diff -Nrcpad gcc-14.2.0/.b4-config gcc-15.1.0/.b4-config
*** gcc-14.2.0/.b4-config	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/.b4-config	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,4 ----
+ [b4]
+     midmask = https://inbox.sourceware.org/%s
+     linkmask = https://inbox.sourceware.org/%s
+     send-series-to = gcc-patches@gcc.gnu.org
diff -Nrcpad gcc-14.2.0/.dir-locals.el gcc-15.1.0/.dir-locals.el
*** gcc-14.2.0/.dir-locals.el	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/.dir-locals.el	Fri Apr 25 08:17:59 2025
***************
*** 18,23 ****
  	      (tcl-continued-indent-level . 4)
  	      (indent-tabs-mode . t)))
   (nil . ((bug-reference-url-format . "https://gcc.gnu.org/PR%s")))
   (c-mode . ((c-file-style . "GNU")
  	    (indent-tabs-mode . t)
! 	    (fill-column . 79))))
--- 18,27 ----
  	      (tcl-continued-indent-level . 4)
  	      (indent-tabs-mode . t)))
   (nil . ((bug-reference-url-format . "https://gcc.gnu.org/PR%s")))
+  ;; Please keep C and C++ in sync.
   (c-mode . ((c-file-style . "GNU")
  	    (indent-tabs-mode . t)
! 	    (fill-column . 79)))
!  (c++-mode . ((c-file-style . "GNU")
! 	      (indent-tabs-mode . t)
! 	      (fill-column . 79))))
diff -Nrcpad gcc-14.2.0/.forgejo/PULL_REQUEST_TEMPLATE.md gcc-15.1.0/.forgejo/PULL_REQUEST_TEMPLATE.md
*** gcc-14.2.0/.forgejo/PULL_REQUEST_TEMPLATE.md	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/.forgejo/PULL_REQUEST_TEMPLATE.md	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,9 ----
+ Thanks for taking the time to contribute to GCC!
+ 
+ Please be advised that https://forge.sourceware.org/ is currently a trial
+ that is being used by the GCC community to experiment with a new workflow
+ based on pull requests.
+ 
+ Pull requests sent here may be forgotten or ignored. Patches that you want to
+ propose for inclusion in GCC should use the existing email-based workflow,
+ see https://gcc.gnu.org/contribute.html
diff -Nrcpad gcc-14.2.0/.gitignore gcc-15.1.0/.gitignore
*** gcc-14.2.0/.gitignore	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/.gitignore	Fri Apr 25 08:17:59 2025
*************** cscope.out
*** 38,43 ****
--- 38,44 ----
  
  .local.vimrc
  .lvimrc
+ .vscode
  
  .clang-format
  .clang-tidy
*************** stamp-*
*** 70,72 ****
--- 71,76 ----
  /gmp*
  /isl*
  /gettext*
+ 
+ # ADDITIONS from GCCRS front-end
+ libgrust/*/target/
diff -Nrcpad gcc-14.2.0/ChangeLog gcc-15.1.0/ChangeLog
*** gcc-14.2.0/ChangeLog	Thu Aug  1 08:18:20 2024
--- gcc-15.1.0/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
--- 1,427 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	Backported from master:
! 	2025-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	PR cobol/119217
! 	* configure.ac: Restrict cobol to aarch64-*-linux*,
! 	x86_64-*-linux*.
! 	Fix indentation.
! 	* configure: Regenerate.
! 
! 2025-04-16  Waffl3x  <waffl3x@baylibre.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-04-02  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Use -B instead of -L to specifiy the C++ runtime
! 	paths on Darwin.
! 
! 2025-03-31  Alice Carlotti  <alice.carlotti@arm.com>
! 
! 	* MAINTAINERS: Update my name.
! 
! 2025-03-28  Richard Biener  <rguenther@suse.de>
! 
! 	PR bootstrap/119513
! 	* configure.ac (compare_exclusions): Add gcc/cobol/parse\$(objext).
! 	* configure: Regenerated.
! 
! 2025-03-25  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR cobol/119244
! 	* Makefile.def: libgcobol configure depends on libquadmath build.
! 	* Makefile.in: Regenerate.
! 
! 2025-03-23  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR libitm/88319
! 	* Makefile.in: Regenerate.
! 	* Makefile.tpl: Add CXX_FOR_TARGET to NORMAL_TARGET_EXPORTS.
! 
! 2025-03-23  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-03-17  Arthur Cohen  <arthur.cohen@embecosm.com>
! 
! 	* .gitignore: Add libgrust target folders to the ignore list.
! 
! 2025-03-14  Thomas Schwinge  <thomas@codesourcery.com>
! 
! 	PR target/92713
! 	PR target/101544
! 	* configure.ac [GCN, nvptx] (noconfigdirs): Don't add
! 	'target-libstdc++-v3'.  Add 'target-libgrust'.
! 	* configure: Regenerate.
! 
! 2025-03-13  Matthias Klose  <doko@ubuntu.com>
! 
! 	* config-ml.in (multi-do): Remove extra argument from subst macro.
! 
! 2025-03-12  Robert Dubner  <rdubner@symas.com>
! 
! 	* MAINTAINERS: Remove extraneous entries for "Robert Dubner"
! 
! 2025-03-11  Bob Dubner  <rdubner@symas.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR cobol/119216
! 	* configure.ac: Check for UNSUPPORTED set by libgcobol/configure.tgt
! 	rather than LIBGCOBOL_SUPPORTED.
! 	* configure: Regenerate.
! 
! 2025-03-11  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Do not build COBOL on Darwin by default,
! 	even for --enable-languages=all.
! 
! 2025-03-11  James K. Lowden  <jklowden@symas.com>
! 
! 	* Makefile.def: Add libgcobol module and cobol language.
! 	* Makefile.in: Regenerate.
! 	* configure.ac: Add libgcobol module and cobol language.
! 	* configure: Regenerate.
! 
! 2025-03-05  Tomasz Kamiński  <tkaminsk@redhat.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-02-28  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
! 
! 	* MAINTAINERS: Added myself as write after approval and DCO.
! 
! 2025-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* configure.ac (unsupported_languages) [GCN, nvptx]: Add 'ada'.
! 	(noconfigdirs) [GCN, nvptx]: Add 'target-libobjc',
! 	'target-libffi', 'target-libgo'.
! 	* configure: Regenerate.
! 
! 2025-02-05  Jin Ma  <jinma@linux.alibaba.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-01-21  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-01-13  Martin Jambor  <mjambor@suse.cz>
! 
! 	* MAINTAINERS: Fix the name order of the Write After Approval section.
! 
! 2024-12-23  Mark Harmstone  <mark@harmstone.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
! 
! 	Revert:
! 	2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
! 		    Matthew Malcolmson  <mmalcolmson@nvidia.com>
! 
! 	PR driver/81358
! 	* Makefile.def: Add dependencies so libatomic is built before target
! 	libraries are configured.
! 	* Makefile.tpl: Export TARGET_CONFIGDIRS.
! 	* configure.ac: Add libatomic to bootstrap_target_libs.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 
! 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
! 	    Matthew Malcolmson  <mmalcolmson@nvidia.com>
! 
! 	PR driver/81358
! 	* Makefile.def: Add dependencies so libatomic is built before target
! 	libraries are configured.
! 	* Makefile.tpl: Export TARGET_CONFIGDIRS.
! 	* configure.ac: Add libatomic to bootstrap_target_libs.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 
! 2024-12-11  Matthieu Longo  <matthieu.longo@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-12-02  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-11-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* configure.ac: Rename "libdiagnostics" to "libgdiagnostics".
! 	* configure: Regenerate.
! 
! 2024-11-29  Yury Khrustalev  <yury.khrustalev@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-11-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* MAINTAINERS: Remove references to nios2.
! 	* configure.ac: Likewise.
! 	* configure: Regenerated.
! 
! 2024-11-22  Sam James  <sam@gentoo.org>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Sync with Binutils.
! 
! 2024-11-22  Evgeny Karpov  <evgeny.karpov@microsoft.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-11-19  Florian Weimer  <fweimer@redhat.com>
! 
! 	* SECURITY.txt: Remove Debian.
! 
! 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* configure.ac (--enable-libdiagnostics): New.
! 	* configure: Regenerate.
! 
! 2024-11-05  Nick Clifton  <nickc@redhat.com>
! 
! 	* configure.ac: Add sim to noconfigdirs for ARM targets.
! 	* configure: Regenerate.
! 
! 2024-10-30  Soumya AR  <soumyaa@nvidia.com>
! 
! 	* MAINTAINERS: Add myself to write after approval and DCO.
! 
! 2024-10-28  Jason Merrill  <jason@redhat.com>
! 
! 	* configure.ac: Update requirement to C++14.
! 	* configure: Regenerate.
! 
! 2024-10-25  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR bootstrap/105474
! 	* configure: Regenerate.
! 	* configure.ac: Error out if libstdc++ is not enabled
! 	with bootstrapping.
! 
! 2024-10-23  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* .forgejo/PULL_REQUEST_TEMPLATE.md: New file.
! 
! 2024-10-18  Alex Coplan  <alex.coplan@arm.com>
! 
! 	* MAINTAINERS (CPU Port Maintainers): Add myself as aarch64 ldp/stp
! 	maintainer.
! 	(Various Maintainers): Add myself as pair fusion maintainer.
! 
! 2024-10-16  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Fix Write After Approval name order.
! 
! 2024-10-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
! 
! 	* MAINTAINERS (s390 port): Add myself.
! 
! 2024-10-13  Josef Melcr  <melcrjos@fit.cvut.cz>
! 
! 	* MAINTAINERS: Add myself to write after approval
! 
! 2024-10-12  Feng Xue  <fxue@os.amperecomputing.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-10-04  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-09-27  Christophe Lyon  <christophe.lyon@arm.com>
! 
! 	* MAINTAINERS: Add myself as MVE Reviewer for the AArch32 (arm)
! 	port.
! 
! 2024-09-25  Sam James  <sam@gentoo.org>
! 
! 	* ltmain.sh (func_mode_link): Allow various flags through filter.
! 
! 2024-09-24  Aldy Hernandez  <aldyh@redhat.com>
! 
! 	* MAINTAINERS: Move my entry in DCO list into alphabetical order.
! 
! 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
! 
! 	* MAINTAINERS: Fix sort order and add username.
! 
! 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2024-09-23  Aldy Hernandez  <aldy@quesejoda.com>
! 
! 	* MAINTAINERS: Update email and add myself to DCO.
! 
! 2024-09-18  Andrew Kreimer  <algonell@gmail.com>
! 
! 	* configure.ac: Fix typos.
! 	* configure: Rebuilt.
! 
! 2024-09-12  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	* .gitignore: Add .vscode.
! 
! 2024-09-04  Marc Poulhiès  <dkm@kataplop.net>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Save LIBS around calls to AC_SEARCH_LIBS.
! 
! 2024-09-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
! 
! 	* MAINTAINERS: Update my email address and add myself to DCO.
! 
! 2024-08-22  Sam James  <sam@gentoo.org>
! 
! 	* Makefile.in: Regenerate.
! 	* Makefile.tpl: Fix whitespace.
! 
! 2024-08-22  Sam James  <sam@gentoo.org>
! 
! 	* Makefile.in: Regenerate.
! 	* Makefile.tpl (STAGE1_CONFIGURE_FLAGS): Remove --disable-intermodule.
! 
! 2024-08-07  navidr  <navidr@gcc.gnu.org>
! 
! 	* MAINTAINERS: Changing my email to gnu email.
! 
! 2024-08-05  Jennifer Schmitz  <jschmitz@nvidia.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-07-31  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* .dir-locals.el: Change c-mode to a list of C, C++ and ObjC
! 	modes that Emacs currently provides.
! 
! 2024-07-28  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* .b4-config: New file.
! 
! 2024-07-26  Sam James  <sam@gentoo.org>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-07-24  Matthew Malcomson  <mmalcomson@nvidia.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2024-07-13  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* MAINTAINERS: Replace tabs with spaces.  Add a bugzilla account
! 	name column to the Write After Approval section.  Line up the
! 	email column and fix an entry that was missing the trailing ">".
! 
! 2024-07-11  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2024-07-05  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Fix order in Contributing under the DCO.
! 
! 2024-07-03  Prathamesh Kulkarni  <prathameshk@nvidia.com>
! 
! 	* MAINTAINERS: Update my email address and add myself to DCO.
! 
! 2024-07-01  Claudiu Zissulescu  <claziss@gmail.com>
! 
! 	* MAINTAINERS: Update claziss email address.
! 
! 2024-06-20  Collin Funk  <collin.funk1@gmail.com>
! 
! 	PR bootstrap/115453
! 	* configure.ac: Quote variable result of AC_SEARCH_LIBS.  Fix
! 	typo ac_cv_search_pthread_crate.
! 	* configure: Regenerate.
! 
! 2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	Revert:
! 	2024-06-19  Collin Funk  <collin.funk1@gmail.com>
! 
! 	* configure.ac: Quote variable result of AC_SEARCH_LIBS.
! 	* configure: Regenerate.
! 
! 2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	Revert:
! 	2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	PR bootstrap/115453
! 	* configure.ac: Fix typo ac_cv_search_pthread_crate.
! 	* configure: Regnerate.
! 
! 2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	PR bootstrap/115453
! 	* configure.ac: Fix typo ac_cv_search_pthread_crate.
! 	* configure: Regnerate.
! 
! 2024-06-19  Collin Funk  <collin.funk1@gmail.com>
! 
! 	* configure.ac: Quote variable result of AC_SEARCH_LIBS.
! 	* configure: Regenerate.
! 
! 2024-06-19  Ramana Radhakrishnan  <ramanara@nvidia.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2024-06-18  Kyrylo Tkachov  <ktkachov@nvidia.com>
! 
! 	* MAINTAINERS (aarch64 port): Update my email address.
! 	(DCO section): Likewise.
! 
! 2024-06-11  Arthur Cohen  <arthur.cohen@embecosm.com>
! 
! 	* Makefile.tpl: Add CRAB1_LIBS variable.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 	* configure.ac: Check if -ldl and -lpthread are needed, and if so, add
! 	them to CRAB1_LIBS.
! 
! 2024-05-31  Pengxuan Zheng  <quic_pzheng@quicinc.com>
! 
! 	* MAINTAINERS: Add myself to Write After Approval and DCO.
! 
! 2024-05-20  Gerald Pfeifer  <gerald@pfeifer.com>
! 
! 	* MAINTAINERS: Move Joern Rennecke from arc and epiphany maintainer
! 	to Write After Approval.
! 
! 2024-05-17  Levy Hsu  <admin@levyhsu.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-05-14  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Use tabs between name and email.
! 
! 2024-05-13  Xiao Zeng  <zengxiao@eswincomputing.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-05-09  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* MAINTAINERS: Add myself to DCO.
! 
! 2024-05-06  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	* config-ml.in: Insert an -B option with multi-os-dir into
! 	compiler commands used to build libraries.
  
  2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
diff -Nrcpad gcc-14.2.0/INSTALL/binaries.html gcc-15.1.0/INSTALL/binaries.html
*** gcc-14.2.0/INSTALL/binaries.html	Thu Aug  1 08:18:45 2024
--- gcc-15.1.0/INSTALL/binaries.html	Fri Apr 25 08:21:30 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** AIX 7.1)</a>.
*** 103,113 ****
  
  </li><li> DOS&mdash;<a href="http://www.delorie.com/djgpp/">DJGPP</a>.
  
- </li><li> HP-UX:
- <ul>
- <li> <a href="http://hpux.connect.org.uk/">HP-UX Porting Center</a>;
- </li></ul>
- 
  </li><li> macOS:
  <ul>
  <li> The <a href="https://brew.sh">Homebrew</a> package manager;
--- 103,108 ----
diff -Nrcpad gcc-14.2.0/INSTALL/build.html gcc-15.1.0/INSTALL/build.html
*** gcc-14.2.0/INSTALL/build.html	Thu Aug  1 08:18:45 2024
--- gcc-15.1.0/INSTALL/build.html	Fri Apr 25 08:21:29 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** memory accesses within the GCC code.  Th
*** 332,337 ****
--- 332,344 ----
  systems that are running Linux kernel version 5.4 or later.
  </p>
  </dd>
+ <dt><span>&lsquo;<samp>bootstrap-ubsan</samp>&rsquo;</span></dt>
+ <dd><p>Compiles GCC itself using Undefined Behavior Sanitization in order to catch
+ undefined behavior within the GCC code.  Note that it does not abort on errors
+ by default.  <code>UBSAN_OPTIONS</code> can be set to change this, like
+ &lsquo;<samp>UBSAN_OPTIONS='abort_on_error=1:halt_on_error=1:print_summary=1:print_stacktrace=1'</samp>&rsquo;.
+ </p>
+ </dd>
  </dl>
  
  </div>
diff -Nrcpad gcc-14.2.0/INSTALL/configure.html gcc-15.1.0/INSTALL/configure.html
*** gcc-14.2.0/INSTALL/configure.html	Thu Aug  1 08:18:44 2024
--- gcc-15.1.0/INSTALL/configure.html	Fri Apr 25 08:21:29 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** hppa64, i486, i686, ia64, iq2000, lm32,
*** 216,222 ****
  mcore, microblaze, microblazeel, mips, mips64, mips64el, mips64octeon,
  mips64orion, mips64vr, mipsel, mipsisa32, mipsisa32r2, mipsisa64, mipsisa64r2,
  mipsisa64r2el, mipsisa64sb1, mipsisa64sr71k, mipstx39, mmix, mn10300, moxie,
! msp430, nds32be, nds32le, nios2, nvptx, or1k, pdp11, powerpc, powerpc64,
  powerpc64le, powerpcle, pru, riscv32, riscv32be, riscv64, riscv64be, rl78, rx,
  s390, s390x, sh, shle, sparc, sparc64, tic6x, v850,
  v850e, v850e1, vax, visium, x86_64, xstormy16, xtensa
--- 216,222 ----
  mcore, microblaze, microblazeel, mips, mips64, mips64el, mips64octeon,
  mips64orion, mips64vr, mipsel, mipsisa32, mipsisa32r2, mipsisa64, mipsisa64r2,
  mipsisa64r2el, mipsisa64sb1, mipsisa64sr71k, mipstx39, mmix, mn10300, moxie,
! msp430, nds32be, nds32le, nvptx, or1k, pdp11, powerpc, powerpc64,
  powerpc64le, powerpcle, pru, riscv32, riscv32be, riscv64, riscv64be, rl78, rx,
  s390, s390x, sh, shle, sparc, sparc64, tic6x, v850,
  v850e, v850e1, vax, visium, x86_64, xstormy16, xtensa
*************** libraries, but yielding a slightly slowe
*** 511,516 ****
--- 511,521 ----
  libraries.
  </p>
  </dd>
+ <dt><span><code>--enable-versioned-jit</code></span></dt>
+ <dd><p>Specify that the &lsquo;<samp>libgccjit</samp>&rsquo; library is built with a soname matching
+ the GCC major version.
+ </p>
+ </dd>
  <dt><span><code>--enable-host-pie</code></span></dt>
  <dd><p>Specify that the <em>host</em> executables should be built into
  position-independent executables (with <samp>-fPIE</samp> and <samp>-pie</samp>),
*************** yielding a slightly slower compiler (but
*** 519,525 ****
  at random addresses each time they are executed, therefore provide additional
  protection against Return Oriented Programming (ROP) attacks.
  </p>
! <p><samp>--enable-host-pie</samp>) may be used with <samp>--enable-host-shared</samp>),
  in which case <samp>-fPIC</samp> is used when compiling, and <samp>-pie</samp> when
  linking.
  </p>
--- 524,530 ----
  at random addresses each time they are executed, therefore provide additional
  protection against Return Oriented Programming (ROP) attacks.
  </p>
! <p><samp>--enable-host-pie</samp> may be used with <samp>--enable-host-shared</samp>,
  in which case <samp>-fPIC</samp> is used when compiling, and <samp>-pie</samp> when
  linking.
  </p>
*************** whether you use the GNU assembler.  On a
*** 547,554 ****
  <samp>--with-gnu-as</samp> has no effect.
  </p>
  <ul>
! <li> &lsquo;<samp>hppa1.0-<var>any</var>-<var>any</var></samp>&rsquo;
! </li><li> &lsquo;<samp>hppa1.1-<var>any</var>-<var>any</var></samp>&rsquo;
  </li><li> &lsquo;<samp>*-*-solaris2.11</samp>&rsquo;
  </li></ul>
  
--- 552,558 ----
  <samp>--with-gnu-as</samp> has no effect.
  </p>
  <ul>
! <li> &lsquo;<samp>hppa*-<var>any</var>-<var>any</var></samp>&rsquo;
  </li><li> &lsquo;<samp>*-*-solaris2.11</samp>&rsquo;
  </li></ul>
  
*************** still be built (see <samp>--disable-libv
*** 639,644 ****
--- 643,662 ----
  <samp>--disable-vtable-verify</samp> is the default.
  </p>
  </dd>
+ <dt><span><code>--enable-libgdiagnostics</code></span></dt>
+ <dd><p>Specify whether to build <code>libgdiagnostics</code>, a shared library exposing
+ GCC&rsquo;s diagnostics capabilities via a C API, and a C++ wrapper API adding
+ &ldquo;syntactic sugar&rdquo;.
+ </p>
+ <p>This option requires <samp>--enable-host-shared</samp> on non-Windows hosts.
+ </p>
+ <p>This option also enables <code>sarif-replay</code>, a command-line tool for
+ viewing <a href="https://sarif.info/">SARIF files</a>.  <code>sarif-replay</code> takes
+ one or more <code>.sarif</code> files as input and attempts to replay any
+ diagnostics within them to stderr (via <code>libgdiagnostics</code>) in the style
+ of GCC&rsquo;s diagnostics.
+ </p>
+ </dd>
  <dt><span><code>--disable-gcov</code></span></dt>
  <dd><p>Specify that the run-time library used for coverage analysis
  and associated host tools should not be built.
*************** sysv, aix.
*** 677,689 ****
  </dl>
  
  </dd>
! <dt><span><code>--with-multilib-list=<var>list</var></code></span></dt>
  <dt><span><code>--without-multilib-list</code></span></dt>
  <dd><p>Specify what multilibs to build.  <var>list</var> is a comma separated list of
  values, possibly consisting of a single value.  Currently only implemented
! for aarch64*-*-*, amdgcn*-*-*, arm*-*-*, loongarch*-*-*, riscv*-*-*, sh*-*-*
! and x86-64-*-linux*.  The accepted values and meaning for each target is given
! below.
  </p>
  <dl compact="compact">
  <dt><span><code>aarch64*-*-*</code></span></dt>
--- 695,707 ----
  </dl>
  
  </dd>
! <dt><span><code><span id="with-multilib-list"></span>--with-multilib-list=<var>list</var></code></span></dt>
  <dt><span><code>--without-multilib-list</code></span></dt>
  <dd><p>Specify what multilibs to build.  <var>list</var> is a comma separated list of
  values, possibly consisting of a single value.  Currently only implemented
! for aarch64*-*-*, amdgcn*-*-*, arm*-*-*, loongarch*-*-*, nvptx-*, riscv*-*-*,
! sh*-*-* and x86-64-*-linux*.
! The accepted values and meaning for each target is given below.
  </p>
  <dl compact="compact">
  <dt><span><code>aarch64*-*-*</code></span></dt>
*************** default set of libraries is selected bas
*** 697,703 ****
  </p>
  </dd>
  <dt><span><code>amdgcn*-*-*</code></span></dt>
! <dd><p><var>list</var> is a comma separated list of ISA names (allowed values: <code>fiji</code>,
  <code>gfx900</code>, <code>gfx906</code>, <code>gfx908</code>, <code>gfx90a</code>, <code>gfx90c</code>, 
  <code>gfx1030</code>, <code>gfx1036</code>, <code>gfx1100</code>, <code>gfx1103</code>).
  It ought not include the name of the default
--- 715,721 ----
  </p>
  </dd>
  <dt><span><code>amdgcn*-*-*</code></span></dt>
! <dd><p><var>list</var> is a comma separated list of ISA names (allowed values:
  <code>gfx900</code>, <code>gfx906</code>, <code>gfx908</code>, <code>gfx90a</code>, <code>gfx90c</code>, 
  <code>gfx1030</code>, <code>gfx1036</code>, <code>gfx1100</code>, <code>gfx1103</code>).
  It ought not include the name of the default
*************** is not specified, then only the default
*** 799,804 ****
--- 817,840 ----
  where the default ABI is implied by the configured target triplet.
  </p>
  </dd>
+ <dt><span><code>nvptx-*</code></span></dt>
+ <dd><p>The target libraries corresponding to the default value of the
+ <samp>-march</samp> option are always built,
+ see
+ <a href="specific.html#nvptx-x-none">host/target specific installation notes</a>.
+ If <var>list</var> is empty, &lsquo;<samp>no</samp>&rsquo;, or <samp>--without-multilib-list</samp>
+ is specified, then no additional multilibs are built.
+ Otherwise, <var>list</var> is a comma separated list specifying which
+ multilibs to build.
+ List items are either &lsquo;<samp>sm_SM</samp>&rsquo;, or &lsquo;<samp>default</samp>&rsquo;, which is a
+ placeholder specifying a default set of multilibs: &lsquo;<samp>sm_52</samp>&rsquo;.
+ Any duplicates are filtered out.
+ If <samp>--with-multilib-list</samp> is not specified, then
+ <samp>--with-multilib-list=default</samp> is assumed.
+ For &lsquo;<samp>sm_30</samp>&rsquo;, &lsquo;<samp>sm_35</samp>&rsquo; target libraries, <samp>-mptx-3.1</samp>
+ sub-variants are additionally built.
+ </p>
+ </dd>
  <dt><span><code>riscv*-*-*</code></span></dt>
  <dd><p><var>list</var> is a single ABI name.  The target architecture must be either
  <code>rv32gc</code> or <code>rv64gc</code>.  This will build a single multilib for the
*************** Currently only implemented for sh*-*-*.
*** 941,946 ****
--- 977,987 ----
  </dl>
  
  </dd>
+ <dt><span><code>--with-cmodel=<var>cmodel</var></code></span></dt>
+ <dd><p>Specify what code model to use by default.
+ Currently only implemented for riscv*-*-*.
+ </p>
+ </dd>
  <dt><span><code>--enable-threads</code></span></dt>
  <dd><p>Specify that the target
  supports threads.  This affects the Objective-C compiler and runtime
*************** The possibilities for <var>ISA-spec-stri
*** 1263,1274 ****
  </p>
  </dd>
  <dt><span><code>--enable-__cxa_atexit</code></span></dt>
! <dd><p>Define if you want to use __cxa_atexit, rather than atexit, to
  register C++ destructors for local statics and global objects.
  This is essential for fully standards-compliant handling of
! destructors, but requires __cxa_atexit in libc.  This option is currently
! only available on systems with GNU libc.  When enabled, this will cause
! <samp>-fuse-cxa-atexit</samp> to be passed by default.
  </p>
  </dd>
  <dt><span><code>--enable-gnu-indirect-function</code></span></dt>
--- 1304,1315 ----
  </p>
  </dd>
  <dt><span><code>--enable-__cxa_atexit</code></span></dt>
! <dd><p>Define if you want to use <code>__cxa_atexit</code>, rather than atexit, to
  register C++ destructors for local statics and global objects.
  This is essential for fully standards-compliant handling of
! destructors, but requires <code>__cxa_atexit</code> in libc.  This option is
! currently only available on systems with GNU libc.  When enabled, this
! will cause <samp>-fuse-cxa-atexit</samp> to be passed by default.
  </p>
  </dd>
  <dt><span><code>--enable-gnu-indirect-function</code></span></dt>
*************** their runtime libraries should be built.
*** 1491,1503 ****
  <pre class="example">grep ^language= */config-lang.in
  </pre></div>
  <p>Currently, you can use any of the following:
! <code>all</code>, <code>default</code>, <code>ada</code>, <code>c</code>, <code>c++</code>, <code>d</code>,
! <code>fortran</code>, <code>go</code>, <code>jit</code>, <code>lto</code>, <code>m2</code>,
! <code>objc</code>, <code>obj-c++</code>.
  Building the Ada compiler has special requirements, see below.
  If you do not pass this flag, or specify the option <code>default</code>, then the
  default languages available in the <samp>gcc</samp> sub-tree will be configured.
! Ada, D, Go, Jit, Objective-C++ and Modula-2 are not default languages.
  LTO is not a
  default language, but is built by default because <samp>--enable-lto</samp> is
  enabled by default.  The other languages are default languages.  If
--- 1532,1544 ----
  <pre class="example">grep ^language= */config-lang.in
  </pre></div>
  <p>Currently, you can use any of the following:
! <code>all</code>, <code>default</code>, <code>ada</code>, <code>c</code>, <code>c++</code>,
! <code>cobol</code>, <code>d</code>, <code>fortran</code>, <code>go</code>, <code>jit</code>,
! <code>lto</code>, <code>m2</code>, <code>objc</code>, <code>obj-c++</code>.
  Building the Ada compiler has special requirements, see below.
  If you do not pass this flag, or specify the option <code>default</code>, then the
  default languages available in the <samp>gcc</samp> sub-tree will be configured.
! Ada, COBOL, D, Go, Jit, Objective-C++ and Modula-2 are not default languages.
  LTO is not a
  default language, but is built by default because <samp>--enable-lto</samp> is
  enabled by default.  The other languages are default languages.  If
*************** canadian cross build.  The <samp>--disab
*** 1748,1754 ****
  <p>Note that this functionality requires either libintl (provided by GNU
  gettext) or C standard library that contains support for gettext (such
  as the GNU C Library).
! See <a href="#with-included-gettext">&ndash;with-included-gettext</a> for more
  information on the conditions required to get gettext support.
  </p>
  </dd>
--- 1789,1795 ----
  <p>Note that this functionality requires either libintl (provided by GNU
  gettext) or C standard library that contains support for gettext (such
  as the GNU C Library).
! See <a href="#with-included-gettext">&ndash;with-included-gettext</a>, for more
  information on the conditions required to get gettext support.
  </p>
  </dd>
*************** omitted from <samp>libgcc.a</samp> on th
*** 2221,2233 ****
  <a name="avr"></a>
  </dd>
  <dt><span><code>--with-avrlibc</code></span></dt>
! <dd><p>Only supported for the AVR target. Specifies that &lsquo;<samp>AVR-Libc</samp>&rsquo; is
! being used as the target C&nbsp; library.  This causes float support
  functions like <code>__addsf3</code> to be omitted from <samp>libgcc.a</samp> on
  the assumption that it will be provided by <samp>libm.a</samp>.  For more
  technical details, cf. <a href="https://gcc.gnu.org/PR54461">PR54461</a>.
  It is not supported for
! RTEMS configurations, which currently use newlib.  The option is
  supported since version 4.7.2 and is the default in 4.8.0 and newer.
  </p>
  </dd>
--- 2262,2275 ----
  <a name="avr"></a>
  </dd>
  <dt><span><code>--with-avrlibc</code></span></dt>
! <dd><p>Only supported for the AVR target. Specifies that
! <a href="https://github.com/avrdudes/avr-libc/">AVR-LibC</a>
! is being used as the target C&nbsp; library.  This causes float support
  functions like <code>__addsf3</code> to be omitted from <samp>libgcc.a</samp> on
  the assumption that it will be provided by <samp>libm.a</samp>.  For more
  technical details, cf. <a href="https://gcc.gnu.org/PR54461">PR54461</a>.
  It is not supported for
! RTEMS configurations, which currently use Newlib.  The option is
  supported since version 4.7.2 and is the default in 4.8.0 and newer.
  </p>
  </dd>
diff -Nrcpad gcc-14.2.0/INSTALL/download.html gcc-15.1.0/INSTALL/download.html
*** gcc-14.2.0/INSTALL/download.html	Thu Aug  1 08:18:44 2024
--- gcc-15.1.0/INSTALL/download.html	Fri Apr 25 08:21:29 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** HTTPS as tarballs compressed with <code>
*** 86,98 ****
  <p>Please refer to the <a href="https://gcc.gnu.org/releases.html">releases web page</a>
  for information on how to obtain GCC.
  </p>
! <p>The source distribution includes the Ada, C, C++, Objective-C, D (GCC 9
! and later), Fortran, Go, and Modula-2 (GCC 13 and later) compilers, as
! well as runtime libraries for C++, Objective-C, and Fortran.
! For previous versions these were downloadable as separate components such
! as the core GCC distribution, which included the C language front end and
! shared components, and language-specific distributions including the
! language front end and the language runtime (where appropriate).
  </p>
  <p>If you also intend to build binutils (either to upgrade an existing
  installation or for use in place of the corresponding tools of your
--- 86,99 ----
  <p>Please refer to the <a href="https://gcc.gnu.org/releases.html">releases web page</a>
  for information on how to obtain GCC.
  </p>
! <p>The source distribution includes the Ada, C, C++, Objective-C, COBOL
! (GCC 15 and later), D (GCC 9 and later), Fortran, Go, and Modula-2
! (GCC 13 and later) compilers, as well as runtime libraries for C++,
! Objective-C, COBOL, and Fortran.  For previous versions these were
! downloadable as separate components such as the core GCC distribution,
! which included the C language front end and shared components, and
! language-specific distributions including the language front end and
! the language runtime (where appropriate).
  </p>
  <p>If you also intend to build binutils (either to upgrade an existing
  installation or for use in place of the corresponding tools of your
diff -Nrcpad gcc-14.2.0/INSTALL/finalinstall.html gcc-15.1.0/INSTALL/finalinstall.html
*** gcc-14.2.0/INSTALL/finalinstall.html	Thu Aug  1 08:18:45 2024
--- gcc-15.1.0/INSTALL/finalinstall.html	Fri Apr 25 08:21:30 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-14.2.0/INSTALL/gfdl.html gcc-15.1.0/INSTALL/gfdl.html
*** gcc-14.2.0/INSTALL/gfdl.html	Thu Aug  1 08:18:45 2024
--- gcc-15.1.0/INSTALL/gfdl.html	Fri Apr 25 08:21:30 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-14.2.0/INSTALL/index.html gcc-15.1.0/INSTALL/index.html
*** gcc-14.2.0/INSTALL/index.html	Thu Aug  1 08:18:43 2024
--- gcc-15.1.0/INSTALL/index.html	Fri Apr 25 08:21:28 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** more binaries exist that use them.
*** 115,121 ****
  <p>
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
! <p>Copyright &copy; 1988-2024 Free Software Foundation, Inc.
  </p><br>
  <p>Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 115,121 ----
  <p>
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
! <p>Copyright &copy; 1988-2025 Free Software Foundation, Inc.
  </p><br>
  <p>Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-14.2.0/INSTALL/prerequisites.html gcc-15.1.0/INSTALL/prerequisites.html
*** gcc-14.2.0/INSTALL/prerequisites.html	Thu Aug  1 08:18:44 2024
--- gcc-15.1.0/INSTALL/prerequisites.html	Fri Apr 25 08:21:28 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** described below.
*** 84,102 ****
  </p>
  <span id="Tools_002fpackages-necessary-for-building-GCC"></span><h3 class="heading">Tools/packages necessary for building GCC</h3>
  <dl compact="compact">
! <dt><span>ISO C++11 compiler</span></dt>
! <dd><p>Necessary to bootstrap GCC.  GCC 4.8.3 or newer has sufficient
! support for used C++11 features, with earlier GCC versions you
! might run into implementation bugs.
  </p>
! <p>Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98
! compiler, versions of GCC prior to 4.8 also allow bootstrapping with a
! ISO C89 compiler, and versions of GCC prior to 3.4 also allow
! bootstrapping with a traditional (K&amp;R) C compiler.
  </p>
  <p>To build all languages in a cross-compiler or other configuration where
  3-stage bootstrap is not performed, you need to start with an existing
! GCC binary (version 4.8.3 or later) because source code for language
  frontends other than C might use GCC extensions.
  </p>
  </dd>
--- 84,106 ----
  </p>
  <span id="Tools_002fpackages-necessary-for-building-GCC"></span><h3 class="heading">Tools/packages necessary for building GCC</h3>
  <dl compact="compact">
! <dt><span>ISO C++14 compiler</span></dt>
! <dd><p>Necessary to bootstrap GCC.  GCC 5.4 or newer has sufficient support
! for used C++14 features.
  </p>
! <p>Versions of GCC prior to 15 allow bootstrapping with an ISO C++11
! compiler, versions prior to 10.5 allow bootstrapping with an ISO C++98
! compiler, and versions prior to 4.8 allow bootstrapping with an ISO
! C89 compiler.
! </p>
! <p>If you need to build an intermediate version of GCC in order to
! bootstrap current GCC, consider GCC 9.5: it can build the current Ada
! and D compilers, and was also the version that declared C++17 support
! stable.
  </p>
  <p>To build all languages in a cross-compiler or other configuration where
  3-stage bootstrap is not performed, you need to start with an existing
! GCC binary (of a new enough version) because source code for language
  frontends other than C might use GCC extensions.
  </p>
  </dd>
*************** Ada runtime libraries. You can check tha
*** 152,163 ****
  by verifying that &lsquo;<samp>gnatls -v</samp>&rsquo; lists only one explicit path in each
  section.
  </p>
  </dd>
  <dt><span><span id="GDC-prerequisite"></span>GDC</span></dt>
  <dd>
! <p>In order to build GDC, the D compiler, you need a working GDC
! compiler (GCC version 9.4 or later) and D runtime library,
! &lsquo;<samp>libphobos</samp>&rsquo;, as the D front end is written in D.
  </p>
  <p>Versions of GDC prior to 12 can be built with an ISO C++11 compiler, which can
  then be installed and used to bootstrap newer versions of the D front end.
--- 156,198 ----
  by verifying that &lsquo;<samp>gnatls -v</samp>&rsquo; lists only one explicit path in each
  section.
  </p>
+ <span id="index-cobol"></span>
+ </dd>
+ <dt><span><span id="GCOBOL-prerequisite"></span>GCOBOL</span></dt>
+ <dd>
+ <p>The COBOL compiler, gcobol, first appeared in GCC 15.  To build the
+ COBOL parser, you need GNU Bison 3.5.1 or later (but not 3.8.0). To build
+ the lexer requires GNU Flex 2.6.4, the current version as of this writing,
+ released on 2017-05-06.
+ </p>
+ <p>The gcobol documentation is maintained as manpages using troff
+ mdoc. GNU groff is required to convert them to PDF format.  Conversion
+ to HTML is done with mandoc, available at
+ <a href="http://mdocml.bsd.lv/">http://mdocml.bsd.lv/</a>.
+ </p>
+ <p>Because ISO COBOL defines strict requirements for numerical precision,
+ gcobol requires hardware with 128-bit computation instructions.  This
+ requirement applies to both host and target. For integer and
+ fixed-point computation, gcobol uses
+ </p><dl class="def">
+ <dt id="index-_005f_005fint128"><span class="category">Data type: </span><span><strong>__int128</strong><a href='#index-_005f_005fint128' class='copiable-anchor'> &para;</a></span></dt>
+ </dl>
+ <p>meaning <code>16 == sizeof(long long int)</code>.
+ For floating point, gcobol uses
+ </p><dl class="def">
+ <dt id="index-_005fFloat128"><span class="category">Data type: </span><span><strong>_Float128</strong><a href='#index-_005fFloat128' class='copiable-anchor'> &para;</a></span></dt>
+ </dl>
+ <p>(On some architectures, GCC supports 128-bit floating point in software.)
+ </p>
+ <p>gcobol has so far been tested on two architectures only: x86_64 and
+ aarch64 with little-endian encoding.
+ </p>
  </dd>
  <dt><span><span id="GDC-prerequisite"></span>GDC</span></dt>
  <dd>
! <p>In order to build GDC, the D compiler, you need a working GDC compiler
! (GCC version 9.4 or later) and D runtime library, &lsquo;<samp>libphobos</samp>&rsquo;, as
! the D front end is written in D.
  </p>
  <p>Versions of GDC prior to 12 can be built with an ISO C++11 compiler, which can
  then be installed and used to bootstrap newer versions of the D front end.
*************** If Python3 is unavailable Modula-2 docum
*** 186,191 ****
--- 221,233 ----
  independent version of the SYSTEM modules.
  </p>
  </dd>
+ <dt><span><span id="gccrs-prerequisite"></span>gccrs</span></dt>
+ <dd>
+ <p>The official Rust compiler and Rust build system (cargo) are required for
+ building various parts of the gccrs frontend, until gccrs can compile them
+ by itself. The minimum supported Rust version is 1.49.
+ </p>
+ </dd>
  <dt><span>A &ldquo;working&rdquo; POSIX compatible shell, or GNU bash</span></dt>
  <dd>
  <p>Necessary when running <code>configure</code> because some
*************** environment to your &ldquo;good&rdquo; s
*** 205,215 ****
  work when configuring GCC.
  </p>
  </dd>
  <dt><span>A POSIX or SVR4 awk</span></dt>
  <dd>
  <p>Necessary for creating some of the generated source files for GCC.
! If in doubt, use a recent GNU awk version, as some of the older ones
! are broken.  GNU awk version 3.1.5 is known to work.
  </p>
  </dd>
  <dt><span>GNU binutils</span></dt>
--- 247,261 ----
  work when configuring GCC.
  </p>
  </dd>
+ <dt><span>GNU flex</span></dt>
+ <dd>
+ <p>Necessary to build the lexical analysis module.
+ </p>
+ </dd>
  <dt><span>A POSIX or SVR4 awk</span></dt>
  <dd>
  <p>Necessary for creating some of the generated source files for GCC.
! If in doubt, use a recent GNU awk version.
  </p>
  </dd>
  <dt><span>GNU binutils</span></dt>
*************** is shown below:
*** 345,350 ****
--- 391,403 ----
  <dd><p><code>gcov</code>, <code>gzip</code>, <code>json</code>, <code>os</code> and <code>pytest</code>.
  </p>
  </dd>
+ <dt><span>SARIF testsuite</span></dt>
+ <dd><p>Tests of SARIF output will use the <code>check-jsonschema</code> program from
+ the <code>check-jsonschema</code> module (if available) to validate generated
+ .sarif files.  If this tool is not found, the validation parts of those
+ tests are skipped.
+ </p>
+ </dd>
  <dt><span>c++ cxx api generation</span></dt>
  <dd><p><code>csv</code>, <code>os</code>, <code>sys</code> and <code>time</code>.
  </p>
*************** details.
*** 444,449 ****
--- 497,511 ----
  </p>
  <p>Necessary to build GCC during development because the generated output
  files are not included in the version-controlled source repository.
+ They are included in releases.
+ </p>
+ </dd>
+ <dt><span>Bison version 3.5.1 or later (but not 3.8.0)</span></dt>
+ <dd>
+ <p>Necessary when modifying <samp>*.y</samp> files in the COBOL front end.
+ </p>
+ <p>Necessary to build GCC during development because the generated output
+ files are not included in the version-controlled source repository.
  They are included in releases.
  </p>
  </dd>
diff -Nrcpad gcc-14.2.0/INSTALL/specific.html gcc-15.1.0/INSTALL/specific.html
*** gcc-14.2.0/INSTALL/specific.html	Thu Aug  1 08:18:44 2024
--- gcc-15.1.0/INSTALL/specific.html	Fri Apr 25 08:21:28 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** information have to.
*** 112,119 ****
  </li><li> <a href="#ft32-x-elf">ft32-*-elf</a>
  </li><li> <a href="#x-x-freebsd">*-*-freebsd*</a>
  </li><li> <a href="#h8300-hms">h8300-hms</a>
! </li><li> <a href="#hppa-hp-hpux">hppa*-hp-hpux*</a>
! </li><li> <a href="#hppa-hp-hpux11">hppa*-hp-hpux11</a>
  </li><li> <a href="#x-x-linux-gnu">*-*-linux-gnu</a>
  </li><li> <a href="#ix86-x-linux">i?86-*-linux*</a>
  </li><li> <a href="#ix86-x-solaris2">i?86-*-solaris2*</a>
--- 112,119 ----
  </li><li> <a href="#ft32-x-elf">ft32-*-elf</a>
  </li><li> <a href="#x-x-freebsd">*-*-freebsd*</a>
  </li><li> <a href="#h8300-hms">h8300-hms</a>
! </li><li> <a href="#hppa-x-linux">hppa-*-linux</a>
! </li><li> <a href="#hppa64-hp-hpux11">hppa64-hp-hpux11*</a>
  </li><li> <a href="#x-x-linux-gnu">*-*-linux-gnu</a>
  </li><li> <a href="#ix86-x-linux">i?86-*-linux*</a>
  </li><li> <a href="#ix86-x-solaris2">i?86-*-solaris2*</a>
*************** information have to.
*** 184,193 ****
  <!-- -------- host/target specific issues start here ---------------- -->
  <hr />
  <span id="aarch64-x-x"></span><span id="aarch64*-*-*"></span><h3 class="heading">aarch64*-*-*</h3>
- <p>Binutils pre 2.24 does not have support for selecting <samp>-mabi</samp> and
- does not support ILP32.  If it is used to build GCC 4.9 or later, GCC will
- not support option <samp>-mabi=ilp32</samp>.
- </p>
  <p>To enable a workaround for the Cortex-A53 erratum number 835769 by default
  (for all CPUs regardless of -mcpu option given) at configure time use the
  <samp>--enable-fix-cortex-a53-835769</samp> option.  This will enable the fix by
--- 184,189 ----
*************** of the options are given at configure ti
*** 227,256 ****
  <span id="amdgcn-x-amdhsa"></span><span id="amdgcn-*-amdhsa"></span><h3 class="heading">amdgcn-*-amdhsa</h3>
  <p>AMD GCN GPU target.
  </p>
! <p>Instead of GNU Binutils, you will need to install LLVM 15, or later, and copy
  <samp>bin/llvm-mc</samp> to <samp>amdgcn-amdhsa/bin/as</samp>,
  <samp>bin/lld</samp> to <samp>amdgcn-amdhsa/bin/ld</samp>,
  <samp>bin/llvm-nm</samp> to <samp>amdgcn-amdhsa/bin/nm</samp>, and
  <samp>bin/llvm-ar</samp> to both <samp>bin/amdgcn-amdhsa-ar</samp> and
! <samp>bin/amdgcn-amdhsa-ranlib</samp>.  Note that LLVM 13.0.1 or LLVM 14 can be used
! by specifying a <code>--with-multilib-list=</code> that does not list <code>gfx1100</code>
! and <code>gfx1103</code>.
  </p>
! <p>Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and git commit
! 7dd4eb1db (2025-03-25, post-4.4.0) fixes device console output for GFX10 and
! GFX11 devices).
  </p>
  <p>To run the binaries, install the HSA Runtime from the
  <a href="https://rocm.docs.amd.com/">ROCm Platform</a>, and use
  <samp>libexec/gcc/amdhsa-amdhsa/<var>version</var>/gcn-run</samp> to launch them
  on the GPU.
  </p>
- <p>To enable support for GCN3 Fiji devices (gfx803), GCC has to be configured with
- <samp>--with-arch=<code>fiji</code></samp> or
- <samp>--with-multilib-list=<code>fiji</code>,...</samp>.  Note that support for Fiji
- devices has been removed in ROCm 4.0 and support in LLVM was deprecated and has
- been removed in LLVM 18.
- </p>
  <hr />
  <span id="arc-x-elf32"></span><span id="arc-*-elf32"></span><h3 class="heading">arc-*-elf32</h3>
  
--- 223,268 ----
  <span id="amdgcn-x-amdhsa"></span><span id="amdgcn-*-amdhsa"></span><h3 class="heading">amdgcn-*-amdhsa</h3>
  <p>AMD GCN GPU target.
  </p>
! <p>Instead of GNU Binutils, you need to install LLVM and copy
  <samp>bin/llvm-mc</samp> to <samp>amdgcn-amdhsa/bin/as</samp>,
  <samp>bin/lld</samp> to <samp>amdgcn-amdhsa/bin/ld</samp>,
  <samp>bin/llvm-nm</samp> to <samp>amdgcn-amdhsa/bin/nm</samp>, and
  <samp>bin/llvm-ar</samp> to both <samp>bin/amdgcn-amdhsa-ar</samp> and
! <samp>bin/amdgcn-amdhsa-ranlib</samp>.
  </p>
! <p>The required version of LLVM depends on the devices that you want to support.
! As the list of ISAs is long, GCC by default only builds a subset of the
! supported ISAs as multilib; use <code>--with-multilib-list=</code> to tailor the built
! multilibs.  Note that mixing ISAs in the same binary is not supported and gives
! a linker error.
! </p>
! <p>By default, multilib support is built for <code>gfx900</code>, <code>gfx906</code>,
! <code>gfx908</code>, <code>gfx90a</code>, <code>gfx90c</code>, <code>gfx1030</code>, <code>gfx1036</code>,
! <code>gfx1100</code> and <code>gfx1103</code>.  The default multilib configuration
! requires LLVM 15 or newer.  LLVM 13.0.1 or LLVM 14 can be used by specifying
! a <code>--with-multilib-list=</code> that does not list any GFX 11 device nor
! <code>gfx1036</code>.  At least LLVM 16 is required for <code>gfx1150</code> and
! <code>gfx1151</code>, LLVM 19 for the generic <code>gfx9-generic</code>,
! <code>gfx10-3-generic</code>, and <code>gfx11-generic</code> targets and for
! <code>gfx1152</code>, while LLVM 20 is required for <code>gfx1153</code>.
! </p>
! <p>The supported ISA architectures are listed in the GCC manual. The generic
! ISA targets <code>gfx9-generic</code>, <code>gfx10-3-generic</code>, and
! <code>gfx11-generic</code> reduce the number of required multilibs but note
! that <code>gfx9-generic</code> does not include <code>gfx908</code> or <code>gfx90a</code>,
! that linking specific ISA code with generic code is currently not supported,
! and that only a future ROCm release (newer than 6.3.3) will be able to execute
! generic code.
! </p>
! <p>Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and 4.5.0 fixes
! the device console output for GFX10 and GFX11 devices; post-4.5.0
! commit 2ef1a37e7 [Mar 25, 2025] fixes a SIMD math issue).
  </p>
  <p>To run the binaries, install the HSA Runtime from the
  <a href="https://rocm.docs.amd.com/">ROCm Platform</a>, and use
  <samp>libexec/gcc/amdhsa-amdhsa/<var>version</var>/gcn-run</samp> to launch them
  on the GPU.
  </p>
  <hr />
  <span id="arc-x-elf32"></span><span id="arc-*-elf32"></span><h3 class="heading">arc-*-elf32</h3>
  
*************** GNAT 4.6, 4.9 or 5 release branches are
*** 273,300 ****
  </p>
  <hr />
  <span id="avr"></span><span id="avr-1"></span><h3 class="heading">avr</h3>
! <p>ATMEL AVR-family micro controllers.  These are used in embedded
  applications.  There are no standard Unix configurations.
! See &ldquo;AVR Options&rdquo; in the main manual
  for the list of supported MCU types.
  </p>
! <p>Use &lsquo;<samp>configure --target=avr --enable-languages=&quot;c&quot;</samp>&rsquo; to configure GCC.
  </p>
  <p>Further installation notes and other useful information about AVR tools
  can also be obtained from:
  </p>
  <ul>
! <li> <a href="http://www.nongnu.org/avr/">http://www.nongnu.org/avr/</a>
! </li><li> <a href="http://www.amelek.gda.pl/avr/">http://www.amelek.gda.pl/avr/</a>
  </li></ul>
  
- <p>The following error:
- </p><div class="example">
- <pre class="example">Error: register required
- </pre></div>
- 
- <p>indicates that you should upgrade to a newer version of the binutils.
- </p>
  <hr />
  <span id="bfin"></span><span id="Blackfin"></span><h3 class="heading">Blackfin</h3>
  <p>The Blackfin processor, an Analog Devices DSP.
--- 285,306 ----
  </p>
  <hr />
  <span id="avr"></span><span id="avr-1"></span><h3 class="heading">avr</h3>
! <p>AVR 8-bit microcontrollers.  These are used in embedded
  applications.  There are no standard Unix configurations.
! See <a href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html">AVR Options</a>
! in the main manual
  for the list of supported MCU types.
  </p>
! <p>Use &lsquo;<samp>configure --target=avr --enable-languages=&quot;c,c++&quot;</samp>&rsquo; to configure GCC.
  </p>
  <p>Further installation notes and other useful information about AVR tools
  can also be obtained from:
  </p>
  <ul>
! <li> <a href="https://avrdudes.github.io/avr-libc/avr-libc-user-manual/install_tools.html">AVR-LibC: Building and Installing the GNU Tool Chain</a>
! </li><li> <a href="https://github.com/sprintersb/atest?tab=readme-ov-file#running-the-avr-gcc-testsuite-using-the-avrtest-simulator">AVRtest: Running the avr-gcc Testsuite</a>
  </li></ul>
  
  <hr />
  <span id="bfin"></span><span id="Blackfin"></span><h3 class="heading">Blackfin</h3>
  <p>The Blackfin processor, an Analog Devices DSP.
*************** This configuration is intended for embed
*** 329,338 ****
  </p>
  <hr />
  <span id="x-x-freebsd"></span><span id="g_t*-*-freebsd*"></span><h3 class="heading">*-*-freebsd*</h3>
! <p>We support FreeBSD using the ELF file format with DWARF 2 debugging
! for all CPU architectures.  There are
! no known issues with mixing object files and libraries with different
! debugging formats.
  </p>
  <p>We recommend bootstrapping against the latest GNU binutils or the
  version found in the <samp>devel/binutils</samp> port. This also has been
--- 335,341 ----
  </p>
  <hr />
  <span id="x-x-freebsd"></span><span id="g_t*-*-freebsd*"></span><h3 class="heading">*-*-freebsd*</h3>
! <p>FreeBSD using the ELF file format with DWARF 2 debugging.
  </p>
  <p>We recommend bootstrapping against the latest GNU binutils or the
  version found in the <samp>devel/binutils</samp> port. This also has been
*************** This configuration is intended for embed
*** 355,517 ****
  <span id="h8300-hms"></span><span id="h8300-hms-1"></span><h3 class="heading">h8300-hms</h3>
  <p>Renesas H8/300 series of processors.
  </p>
- <p>Please have a look at the <a href="binaries.html">binaries page</a>.
- </p>
- <p>The calling convention and structure layout has changed in release 2.6.
- All code must be recompiled.  The calling convention now passes the
- first three arguments in function calls in registers.  Structures are no
- longer a multiple of 2 bytes.
- </p>
  <hr />
! <span id="hppa-hp-hpux"></span><span id="hppa*-hp-hpux*"></span><h3 class="heading">hppa*-hp-hpux*</h3>
! <p>We require using gas on all hppa platforms.  Version 2.19 or
! later is recommended.
  </p>
  <p>It may be helpful to configure GCC with the
  <a href="./configure.html#with-gnu-as"><samp>--with-gnu-as</samp></a> and
  <samp>--with-as=&hellip;</samp> options to ensure that GCC can find GAS.
  </p>
! <p>There are two default scheduling models for instructions.  These are
! PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
! architecture specified for the target machine when configuring.
! PROCESSOR_8000 is the default.  PROCESSOR_7100LC is selected when
! the target is a &lsquo;<samp>hppa1*</samp>&rsquo; machine.
! </p>
! <p>The PROCESSOR_8000 model is not well suited to older processors.  Thus,
! it is important to completely specify the machine architecture when
! configuring if you want a model other than PROCESSOR_8000.  The macro
! TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
! default scheduling model is desired.
! </p>
! <p>As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
! through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
! This namespace change might cause problems when bootstrapping with
! an earlier version of GCC or the HP compiler as essentially the same
! namespace is required for an entire build.  This problem can be avoided
! in a number of ways.  With HP cc, <code>UNIX_STD</code> can be set to &lsquo;<samp>95</samp>&rsquo;
! or &lsquo;<samp>98</samp>&rsquo;.  Another way is to add an appropriate set of predefines
! to <code>CC</code>.  The description for the <samp>munix=</samp> option contains
! a list of the predefines used with each standard.
! </p>
! <p>More specific information to &lsquo;<samp>hppa*-hp-hpux*</samp>&rsquo; targets follows.
! </p>
! <hr />
! <span id="hppa-hp-hpux11"></span><span id="hppa*-hp-hpux11"></span><h3 class="heading">hppa*-hp-hpux11</h3>
! <p>Refer to <a href="binaries.html">binaries</a> for information about obtaining
! precompiled GCC binaries for HP-UX.  Precompiled binaries must be obtained
! to build the Ada language as it cannot be bootstrapped using C.  Ada is
! only available for the 32-bit PA-RISC runtime.
! </p>
! <p>Starting with GCC 3.4 an ISO C compiler is required to bootstrap.  The
! bundled compiler supports only traditional C; you will need either HP&rsquo;s
! unbundled compiler, or a binary distribution of GCC.
! </p>
! <p>It is possible to build GCC 3.3 starting with the bundled HP compiler,
! but the process requires several steps.  GCC 3.3 can then be used to
! build later versions.
! </p>
! <p>There are several possible approaches to building the distribution.
! Binutils can be built first using the HP tools.  Then, the GCC
! distribution can be built.  The second approach is to build GCC
! first using the HP tools, then build binutils, then rebuild GCC.
! There have been problems with various binary distributions, so it
! is best not to start from a binary distribution.
! </p>
! <p>On 64-bit capable systems, there are two distinct targets.  Different
! installation prefixes must be used if both are to be installed on
! the same system.  The &lsquo;<samp>hppa[1-2]*-hp-hpux11*</samp>&rsquo; target generates code
! for the 32-bit PA-RISC runtime architecture and uses the HP linker.
! The &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target generates 64-bit code for the
! PA-RISC 2.0 architecture.
! </p>
! <p>The script config.guess now selects the target type based on the compiler
! detected during configuration.  You must define <code>PATH</code> or <code>CC</code> so
! that configure finds an appropriate compiler for the initial bootstrap.
! When <code>CC</code> is used, the definition should contain the options that are
! needed whenever <code>CC</code> is used.
! </p>
! <p>Specifically, options that determine the runtime architecture must be
! in <code>CC</code> to correctly select the target for the build.  It is also
! convenient to place many other compiler options in <code>CC</code>.  For example,
! <code>CC=&quot;cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE&quot;</code>
! can be used to bootstrap the GCC 3.3 branch with the HP compiler in
! 64-bit K&amp;R/bundled mode.  The <samp>+DA2.0W</samp> option will result in
! the automatic selection of the &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target.  The
! macro definition table of cpp needs to be increased for a successful
! build with the HP compiler.  _CLASSIC_TYPES and _HPUX_SOURCE need to
! be defined when building with the bundled compiler, or when using the
! <samp>-Ac</samp> option.  These defines aren&rsquo;t necessary with <samp>-Ae</samp>.
! </p>
! <p>It is best to explicitly configure the &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target
! with the <samp>--with-ld=&hellip;</samp> option.  This overrides the standard
! search for ld.  The two linkers supported on this target require different
! commands.  The default linker is determined during configuration.  As a
! result, it&rsquo;s not possible to switch linkers in the middle of a GCC build.
! This has been reported to sometimes occur in unified builds of binutils
! and GCC.
! </p>
! <p>A recent linker patch must be installed for the correct operation of
! GCC 3.3 and later.  <code>PHSS_26559</code> and <code>PHSS_24304</code> are the
! oldest linker patches that are known to work.  They are for HP-UX
! 11.00 and 11.11, respectively.  <code>PHSS_24303</code>, the companion to
! <code>PHSS_24304</code>, might be usable but it hasn&rsquo;t been tested.  These
! patches have been superseded.  Consult the HP patch database to obtain
! the currently recommended linker patch for your system.
! </p>
! <p>The patches are necessary for the support of weak symbols on the
! 32-bit port, and for the running of initializers and finalizers.  Weak
! symbols are implemented using SOM secondary definition symbols.  Prior
! to HP-UX 11, there are bugs in the linker support for secondary symbols.
! The patches correct a problem of linker core dumps creating shared
! libraries containing secondary symbols, as well as various other
! linking issues involving secondary symbols.
! </p>
! <p>GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to
! run initializers and finalizers on the 64-bit port.  The 32-bit port
! uses the linker <samp>+init</samp> and <samp>+fini</samp> options for the same
! purpose.  The patches correct various problems with the +init/+fini
! options, including program core dumps.  Binutils 2.14 corrects a
! problem on the 64-bit port resulting from HP&rsquo;s non-standard use of
! the .init and .fini sections for array initializers and finalizers.
! </p>
! <p>Only the HP linker is supported for the &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target.
  </p>
! <p>At this time, the GNU linker does not support the creation of long
! branch stubs.  As a result, it cannot successfully link binaries
! containing branch offsets larger than 8 megabytes.  In addition,
! there are problems linking shared libraries, linking executables
! with <samp>-static</samp>, and with dwarf2 unwind and exception support.
! It also doesn&rsquo;t provide stubs for internal calls to global functions
! in shared libraries, so these calls cannot be overloaded.
  </p>
! <p>The HP dynamic loader does not support GNU symbol versioning, so symbol
! versioning is not supported.  It may be necessary to disable symbol
! versioning with <samp>--disable-symvers</samp> when using GNU ld.
  </p>
! <p>POSIX threads are the default.  The optional DCE thread library is not
! supported, so <samp>--enable-threads=dce</samp> does not work.
  </p>
  <hr />
  <span id="x-x-linux-gnu"></span><span id="g_t*-*-linux-gnu"></span><h3 class="heading">*-*-linux-gnu</h3>
- <p>The <code>.init_array</code> and <code>.fini_array</code> sections are enabled
- unconditionally which requires at least glibc 2.1 and binutils 2.12.
- </p>
  <p>Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
  in glibc 2.2.5 and later.  More information is available in the
  libstdc++-v3 documentation.
  </p>
  <hr />
  <span id="ix86-x-linux"></span><span id="i_003f86-*-linux*"></span><h3 class="heading">i?86-*-linux*</h3>
- <p>As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
- See <a href="https://gcc.gnu.org/PR10877">bug 10877</a> for more information.
- </p>
  <p>If you receive Signal 11 errors when building on GNU/Linux, then it is
  possible you have a hardware problem.  Further information on this can be
  found on <a href="https://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
  </p>
  <hr />
  <span id="ix86-x-solaris2"></span><span id="i_003f86-*-solaris2*"></span><h3 class="heading">i?86-*-solaris2*</h3>
! <p>Use this for Solaris 11.3 or later on x86 and x86-64 systems.  Starting
  with GCC 4.7, there is also a 64-bit &lsquo;<samp>amd64-*-solaris2*</samp>&rsquo; or
  &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo; configuration that corresponds to
  &lsquo;<samp>sparcv9-sun-solaris2*</samp>&rsquo;.
--- 358,401 ----
  <span id="h8300-hms"></span><span id="h8300-hms-1"></span><h3 class="heading">h8300-hms</h3>
  <p>Renesas H8/300 series of processors.
  </p>
  <hr />
! <span id="hppa64-hp-hpux11"></span><span id="hppa64-hp-hpux11*"></span><h3 class="heading">hppa64-hp-hpux11*</h3>
! <p>Only the 64-bit &lsquo;<samp>hppa</samp>&rsquo; target is supported on HP-UX.  Support
! for 32-bit &lsquo;<samp>hppa</samp>&rsquo; was discontinued in GCC 13.
! </p> 
! <p>We require using gas on all hppa platforms.
  </p>
  <p>It may be helpful to configure GCC with the
  <a href="./configure.html#with-gnu-as"><samp>--with-gnu-as</samp></a> and
  <samp>--with-as=&hellip;</samp> options to ensure that GCC can find GAS.
  </p>
! <p>Only the HP linker is supported.  Thus, it is best to explicitly
! configure the target with the <samp>--with-ld=&hellip;</samp> option.
  </p>
! <p>The DCE thread library is not supported, so <samp>--enable-threads=dce</samp>
! does not work.
  </p>
! <p>Currently, there are no precompiled binaries for 64-bit HP-UX.
  </p>
! <p>Binutils and other required tools can be built using the HP tools.
! Then, the GCC distribution can be built.  This is challenging due
! to the many dependencies.
  </p>
  <hr />
  <span id="x-x-linux-gnu"></span><span id="g_t*-*-linux-gnu"></span><h3 class="heading">*-*-linux-gnu</h3>
  <p>Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
  in glibc 2.2.5 and later.  More information is available in the
  libstdc++-v3 documentation.
  </p>
  <hr />
  <span id="ix86-x-linux"></span><span id="i_003f86-*-linux*"></span><h3 class="heading">i?86-*-linux*</h3>
  <p>If you receive Signal 11 errors when building on GNU/Linux, then it is
  possible you have a hardware problem.  Further information on this can be
  found on <a href="https://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
  </p>
  <hr />
  <span id="ix86-x-solaris2"></span><span id="i_003f86-*-solaris2*"></span><h3 class="heading">i?86-*-solaris2*</h3>
! <p>Use this for Solaris 11.4 on x86 and x86-64 systems.  Starting
  with GCC 4.7, there is also a 64-bit &lsquo;<samp>amd64-*-solaris2*</samp>&rsquo; or
  &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo; configuration that corresponds to
  &lsquo;<samp>sparcv9-sun-solaris2*</samp>&rsquo;.
*************** routines is shipped with AIX 4.3.2 and a
*** 669,689 ****
  overflow severe error when the <samp>-bbigtoc</samp> option is used to link
  GCC-produced object files into an executable that overflows the TOC.  A fix
  for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
! available from IBM Customer Support and from its
! <a href="https://techsupport.services.ibm.com/">techsupport.services.ibm.com</a>
! website as PTF U455193.
  </p>
  <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
  with a segmentation fault when invoked by any version of GCC.  A fix for
! APAR IX87327 is available from IBM Customer Support and from its
! <a href="https://techsupport.services.ibm.com/">techsupport.services.ibm.com</a>
! website as PTF U461879.  This fix is incorporated in AIX 4.3.3 and above.
  </p>
  <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object
  files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
! TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
! <a href="https://techsupport.services.ibm.com/">techsupport.services.ibm.com</a>
! website as PTF U453956.  This fix is incorporated in AIX 4.3.1 and above.
  </p>
  <p>AIX provides National Language Support (NLS).  Compilers and assemblers
  use NLS to support locale-specific representations of various data
--- 553,569 ----
  overflow severe error when the <samp>-bbigtoc</samp> option is used to link
  GCC-produced object files into an executable that overflows the TOC.  A fix
  for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
! available as PTF U455193.
  </p>
  <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
  with a segmentation fault when invoked by any version of GCC.  A fix for
! APAR IX87327 is available as PTF U461879.  This fix is incorporated in
! AIX 4.3.3 and above.
  </p>
  <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object
  files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
! TO ASSEMBLE/BIND) is available as PTF U453956. This fix is incorporated in
! AIX 4.3.1 and above.
  </p>
  <p>AIX provides National Language Support (NLS).  Compilers and assemblers
  use NLS to support locale-specific representations of various data
*************** the GCC sources.
*** 879,889 ****
  <p>The <samp>--with-arch</samp> option may be specified to override the
  default value for the <samp>-march</samp> option, and to also build
  corresponding target libraries.
! The default is <samp>--with-arch=sm_30</samp>.
  </p>
  <p>For example, if <samp>--with-arch=sm_70</samp> is specified,
! <samp>-march=sm_30</samp> and <samp>-march=sm_70</samp> target libraries are
! built, and code generation defaults to <samp>-march=sm_70</samp>.
  </p>
  <hr />
  <span id="or1k-x-elf"></span><span id="or1k-*-elf"></span><h3 class="heading">or1k-*-elf</h3>
--- 759,772 ----
  <p>The <samp>--with-arch</samp> option may be specified to override the
  default value for the <samp>-march</samp> option, and to also build
  corresponding target libraries.
! The default is <samp>--with-arch=sm_52</samp>.
  </p>
  <p>For example, if <samp>--with-arch=sm_70</samp> is specified,
! code generation defaults to <samp>-march=sm_70</samp> and
! corresponding target libraries are built, in addition to those
! mandated by <samp>--with-multilib-list</samp>, if any,
! see
! <a href="configure.html#with-multilib-list"><samp>--with-multilib-list</samp></a>.
  </p>
  <hr />
  <span id="or1k-x-elf"></span><span id="or1k-*-elf"></span><h3 class="heading">or1k-*-elf</h3>
*************** supported as cross-compilation target on
*** 995,1009 ****
  </p>
  <hr />
  <span id="x-x-solaris2"></span><span id="g_t*-*-solaris2*"></span><h3 class="heading">*-*-solaris2*</h3>
! <p>Support for Solaris 11.3 and earlier has been obsoleted in GCC 13, but
! can still be enabled by configuring with <samp>--enable-obsolete</samp>.
  Support for Solaris 10 has been removed in GCC 10.  Support for Solaris
  9 has been removed in GCC 5.  Support for Solaris 8 has been removed in
  GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
  </p>
! <p>Solaris 11.3 provides GCC 4.5.2, 4.7.3, and 4.8.2 as
! <code>/usr/gcc/4.5/bin/gcc</code> or similar.  Solaris 11.4
! provides one or more of GCC 5, 7, 9, 10, 11, and 12.
  </p>
  <p>You need to install the <code>system/header</code>, <code>system/linker</code>, and
  <code>developer/assembler</code> packages.
--- 878,889 ----
  </p>
  <hr />
  <span id="x-x-solaris2"></span><span id="g_t*-*-solaris2*"></span><h3 class="heading">*-*-solaris2*</h3>
! <p>Support for Solaris 11.3 and earlier has been removed in GCC 15.
  Support for Solaris 10 has been removed in GCC 10.  Support for Solaris
  9 has been removed in GCC 5.  Support for Solaris 8 has been removed in
  GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
  </p>
! <p>Solaris 11.4 provides one or more of GCC 5, 7, 9, 10, 11, 12, 13, and 14.
  </p>
  <p>You need to install the <code>system/header</code>, <code>system/linker</code>, and
  <code>developer/assembler</code> packages.
*************** of the build.
*** 1021,1040 ****
  <p>We recommend the use of the Solaris assembler or the GNU assembler, in
  conjunction with the Solaris linker.
  </p>
! <p>The GNU <code>as</code> versions included in Solaris 11.3, from GNU
! binutils 2.23.1 or newer (in <samp>/usr/bin/gas</samp> and
  <samp>/usr/gnu/bin/as</samp>), are known to work.  The version from GNU
! binutils 2.40 is known to work as well.  Recent versions of the Solaris
  assembler in <samp>/usr/bin/as</samp> work almost as well, though.  To use GNU
  <code>as</code>, configure with the options <samp>--with-gnu-as
  --with-as=/usr/gnu/bin/as</samp>.
  </p>
  <p>For linking, the Solaris linker is preferred.  If you want to use the
! GNU linker instead, the version in Solaris 11.3, from GNU binutils
! 2.23.1 or newer (in <samp>/usr/gnu/bin/ld</samp> and <samp>/usr/bin/gld</samp>),
! works, as does the version from GNU binutils 2.40.  However, it
  generally lacks platform specific features, so better stay with Solaris
! <code>ld</code>.  To use the LTO linker plugin
  (<samp>-fuse-linker-plugin</samp>) with GNU <code>ld</code>, GNU binutils
  <em>must</em> be configured with <samp>--enable-largefile</samp>.  To use
  Solaris <code>ld</code>, we recommend to configure with
--- 901,923 ----
  <p>We recommend the use of the Solaris assembler or the GNU assembler, in
  conjunction with the Solaris linker.
  </p>
! <p>The GNU <code>as</code> versions included in Solaris 11.4, from GNU
! binutils 2.30.1 or newer (in <samp>/usr/bin/gas</samp> and
  <samp>/usr/gnu/bin/as</samp>), are known to work.  The version from GNU
! binutils 2.44 is known to work as well.  Recent versions of the Solaris
  assembler in <samp>/usr/bin/as</samp> work almost as well, though.  To use GNU
  <code>as</code>, configure with the options <samp>--with-gnu-as
  --with-as=/usr/gnu/bin/as</samp>.
  </p>
  <p>For linking, the Solaris linker is preferred.  If you want to use the
! GNU linker instead, the version in Solaris 11.4, from GNU binutils
! 2.30.1 or newer (in <samp>/usr/gnu/bin/ld</samp> and <samp>/usr/bin/gld</samp>),
! works.  However, it
  generally lacks platform specific features, so better stay with Solaris
! <code>ld</code>.  When using the version from GNU binutils 2.44, there&rsquo;s
! an important caveat: binutils <em>must</em> be configured with
! <code>CONFIG_SHELL=/bin/bash</code>, otherwise the linker&rsquo;s built-in linker
! scripts get corrupted on x86.  To use the LTO linker plugin
  (<samp>-fuse-linker-plugin</samp>) with GNU <code>ld</code>, GNU binutils
  <em>must</em> be configured with <samp>--enable-largefile</samp>.  To use
  Solaris <code>ld</code>, we recommend to configure with
*************** will be disabled if no appropriate versi
*** 1055,1061 ****
  work.
  </p>
  <p>In order to build the GNU Ada compiler, GNAT, a working GNAT is needed.
! Since Solaris 11.4 SRU 39, GNAT 11 or 12 is bundled in the
  <code>developer/gcc/gcc-gnat</code> package.
  </p>
  <p>In order to build the GNU D compiler, GDC, a working &lsquo;<samp>libphobos</samp>&rsquo; is
--- 938,944 ----
  work.
  </p>
  <p>In order to build the GNU Ada compiler, GNAT, a working GNAT is needed.
! Since Solaris 11.4 SRU 39, GNAT 11, 12, 13 or 14 is bundled in the
  <code>developer/gcc/gcc-gnat</code> package.
  </p>
  <p>In order to build the GNU D compiler, GDC, a working &lsquo;<samp>libphobos</samp>&rsquo; is
*************** configuring with <samp>--enable-libphobo
*** 1065,1083 ****
  required on x86, while GDC 9.3.0 is known to work on SPARC.
  </p>
  <p>The versions of the GNU Multiple Precision Library (GMP), the MPFR
! library and the MPC library bundled with Solaris 11.3 and later are
! usually recent enough to match GCC&rsquo;s requirements.  There are two
! caveats:
  </p>
- <ul>
- <li> While the version of the GMP library in Solaris 11.3 works with GCC, you
- need to configure with <samp>--with-gmp-include=/usr/include/gmp</samp>.
- 
- </li><li> The version of the MPFR libary included in Solaris 11.3 is too old; you
- need to provide a more recent one.
- 
- </li></ul>
- 
  <hr />
  <span id="sparc-x-x"></span><span id="sparc*-*-*"></span><h3 class="heading">sparc*-*-*</h3>
  <p>This section contains general configuration information for all
--- 948,956 ----
  required on x86, while GDC 9.3.0 is known to work on SPARC.
  </p>
  <p>The versions of the GNU Multiple Precision Library (GMP), the MPFR
! library and the MPC library bundled with Solaris 11.4 are
! recent enough to match GCC&rsquo;s requirements.
  </p>
  <hr />
  <span id="sparc-x-x"></span><span id="sparc*-*-*"></span><h3 class="heading">sparc*-*-*</h3>
  <p>This section contains general configuration information for all
*************** as the <code>build</code> parameter on t
*** 1139,1145 ****
  
  <hr />
  <span id="c6x-x-x"></span><span id="c6x-*-*"></span><h3 class="heading">c6x-*-*</h3>
! <p>The C6X family of processors. This port requires binutils-2.22 or newer.
  </p>
  <hr />
  <span id="visium-x-elf"></span><span id="visium-*-elf"></span><h3 class="heading">visium-*-elf</h3>
--- 1012,1018 ----
  
  <hr />
  <span id="c6x-x-x"></span><span id="c6x-*-*"></span><h3 class="heading">c6x-*-*</h3>
! <p>The C6X family of processors. This port requires binutils 2.22 or newer.
  </p>
  <hr />
  <span id="visium-x-elf"></span><span id="visium-*-elf"></span><h3 class="heading">visium-*-elf</h3>
*************** both 64-bit x86-64 and 32-bit x86 code (
*** 1188,1196 ****
  </p>
  <hr />
  <span id="x86-64-x-solaris2"></span><span id="x86_005f64-*-solaris2*"></span><h3 class="heading">x86_64-*-solaris2*</h3>
! <p>GCC also supports the x86-64 architecture implemented by the AMD64
! processor (&lsquo;<samp>amd64-*-*</samp>&rsquo; is an alias for &lsquo;<samp>x86_64-*-*</samp>&rsquo;).
! Unlike other systems, without special options a
  bi-arch compiler is built which generates 32-bit code by default, but
  can generate 64-bit x86-64 code with the <samp>-m64</samp> switch.  Since
  GCC 4.7, there is also a configuration that defaults to 64-bit code, but
--- 1061,1067 ----
  </p>
  <hr />
  <span id="x86-64-x-solaris2"></span><span id="x86_005f64-*-solaris2*"></span><h3 class="heading">x86_64-*-solaris2*</h3>
! <p>Unlike other systems, without special options a
  bi-arch compiler is built which generates 32-bit code by default, but
  can generate 64-bit x86-64 code with the <samp>-m64</samp> switch.  Since
  GCC 4.7, there is also a configuration that defaults to 64-bit code, but
*************** SuperH (sh-wince-pe), and MIPS (mips-win
*** 1260,1267 ****
  <span id="Other-Windows-Platforms"></span><h4 class="subheading">Other Windows Platforms</h4>
  <p>GCC no longer supports Windows NT on the Alpha or PowerPC.
  </p>
! <p>GCC no longer supports the Windows POSIX subsystem.  However, it does
! support the Interix subsystem.  See above.
  </p>
  <p>Old target names including *-*-winnt and *-*-windowsnt are no longer used.
  </p>
--- 1131,1137 ----
  <span id="Other-Windows-Platforms"></span><h4 class="subheading">Other Windows Platforms</h4>
  <p>GCC no longer supports Windows NT on the Alpha or PowerPC.
  </p>
! <p>GCC no longer supports the Windows POSIX subsystem.
  </p>
  <p>Old target names including *-*-winnt and *-*-windowsnt are no longer used.
  </p>
*************** support the Interix subsystem.  See abov
*** 1270,1276 ****
  <hr />
  <span id="x-x-cygwin"></span><span id="g_t*-*-cygwin"></span><h3 class="heading">*-*-cygwin</h3>
  <p>Ports of GCC are included with the
! <a href="http://www.cygwin.com/">Cygwin environment</a>.
  </p>
  <p>GCC will build under Cygwin without modification; it does not build
  with Microsoft&rsquo;s C++ compiler and there are no plans to make it do so.
--- 1140,1146 ----
  <hr />
  <span id="x-x-cygwin"></span><span id="g_t*-*-cygwin"></span><h3 class="heading">*-*-cygwin</h3>
  <p>Ports of GCC are included with the
! <a href="https://cygwin.com">Cygwin environment</a>.
  </p>
  <p>GCC will build under Cygwin without modification; it does not build
  with Microsoft&rsquo;s C++ compiler and there are no plans to make it do so.
*************** or version 2.20 or above if building you
*** 1287,1296 ****
  Earlier versions of headers are incompatible with the new default semantics
  of <code>extern inline</code> in <code>-std=c99</code> and <code>-std=gnu99</code> modes.
  </p>
- <p>To support emitting DWARF debugging info you need to use GNU binutils
- version 2.16 or above containing support for the <code>.secrel32</code>
- assembler pseudo-op.
- </p>
  <hr />
  <span id="older"></span><span id="Older-systems"></span><h3 class="heading">Older systems</h3>
  <p>GCC contains support files for many older (1980s and early
--- 1157,1162 ----
*************** version before they were removed), patch
*** 1325,1334 ****
  likely to be accepted, since they should not affect the support for more
  modern targets.
  </p>
- <p>For some systems, old versions of GNU binutils may also be useful,
- and are available from <samp>pub/binutils/old-releases</samp> on
- <a href="https://sourceware.org/mirrors.html">sourceware.org mirror sites</a>.
- </p>
  <p>Some of the information on specific systems above relates to
  such older systems, but much of the information
  about GCC on such systems (which may no longer be applicable to
--- 1191,1196 ----
diff -Nrcpad gcc-14.2.0/INSTALL/test.html gcc-15.1.0/INSTALL/test.html
*** gcc-14.2.0/INSTALL/test.html	Thu Aug  1 08:18:45 2024
--- gcc-15.1.0/INSTALL/test.html	Fri Apr 25 08:21:29 2025
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-14.2.0/LAST_UPDATED gcc-15.1.0/LAST_UPDATED
*** gcc-14.2.0/LAST_UPDATED	Thu Aug  1 08:18:43 2024
--- gcc-15.1.0/LAST_UPDATED	Fri Apr 25 08:21:28 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-14.2.0 revision 04696df09633baf97cdbbdd6e9929b9d472161d3
--- 1 ----
! Obtained from git: releases/gcc-15.1.0 revision 1b306039ac49f8ad91ca71d3de3150a3c9fa792a
diff -Nrcpad gcc-14.2.0/MAINTAINERS gcc-15.1.0/MAINTAINERS
*** gcc-14.2.0/MAINTAINERS	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/MAINTAINERS	Fri Apr 25 08:17:59 2025
*************** To report problems in GCC, please visit:
*** 15,22 ****
  
    http://gcc.gnu.org/bugs/
  
! Note: when adding someone to a more specific section please remove any
! corresponding entry from the Write After Approval list.
  
  Note: please verify that sorting is correct with:
  ./contrib/check-MAINTAINERS.py MAINTAINERS
--- 15,27 ----
  
    http://gcc.gnu.org/bugs/
  
! If you'd like to CC a maintainer in bugzilla, please add @gcc.gnu.org
! to the account name given in the Write After Approval section below.
! Please use the email address given in <...> for direct email communication.
! 
! Note: when adding someone who has commit access to a more specific section,
! please also ensure that there is a corresponding entry in the Write After
! Approval list, since that list contains the gcc.gnu.org account name.
  
  Note: please verify that sorting is correct with:
  ./contrib/check-MAINTAINERS.py MAINTAINERS
*************** Note: please verify that sorting is corr
*** 24,44 ****
  Maintainers
  ===========
  
! 			Global Reviewers
  
! Richard Biener					<rguenther@suse.de>
! Richard Earnshaw				<richard.earnshaw@arm.com>
! Jakub Jelinek					<jakub@redhat.com>
! Richard Kenner					<kenner@nyu.edu>
! Jeff Law					<jlaw@ventanamicro.com>
! Michael Meissner				<gnu@the-meissners.org>
! Jason Merrill					<jason@redhat.com>
! David S. Miller					<davem@redhat.com>
! Joseph Myers					<josmyers@redhat.com>
! Richard Sandiford				<richard.sandiford@arm.com>
! Bernd Schmidt					<bernds_cb1@t-online.de>
! Ian Lance Taylor				<ian@airs.com>
! Jim Wilson					<wilson@tuliptree.org>
  
  Note that while global reviewers can approve changes to any part of
  the compiler or associated libraries, they still need approval for
--- 29,49 ----
  Maintainers
  ===========
  
!                         Global Reviewers
  
! Richard Biener                                  <rguenther@suse.de>
! Richard Earnshaw                                <richard.earnshaw@arm.com>
! Jakub Jelinek                                   <jakub@redhat.com>
! Richard Kenner                                  <kenner@nyu.edu>
! Jeff Law                                        <jlaw@ventanamicro.com>
! Michael Meissner                                <gnu@the-meissners.org>
! Jason Merrill                                   <jason@redhat.com>
! David S. Miller                                 <davem@redhat.com>
! Joseph Myers                                    <josmyers@redhat.com>
! Richard Sandiford                               <richard.sandiford@arm.com>
! Bernd Schmidt                                   <bernds_cb1@t-online.de>
! Ian Lance Taylor                                <ian@airs.com>
! Jim Wilson                                      <wilson@tuliptree.org>
  
  Note that while global reviewers can approve changes to any part of
  the compiler or associated libraries, they still need approval for
*************** their own patches from other maintainers
*** 47,758 ****
  Also note that maintainership of any area covers changes to web pages,
  docs, and the testsuite related to that.
  
! 			CPU Port Maintainers	(CPU alphabetical order)
  
! aarch64 port		Richard Earnshaw	<richard.earnshaw@arm.com>
! aarch64 port		Richard Sandiford	<richard.sandiford@arm.com>
! aarch64 port		Marcus Shawcroft	<marcus.shawcroft@arm.com>
! aarch64 port		Kyrylo Tkachov		<ktkachov@gcc.gnu.org>
! alpha port		Richard Henderson	<rth@gcc.gnu.org>
! amdgcn port		Julian Brown		<julian@codesourcery.com>
! amdgcn port		Andrew Stubbs		<ams@baylibre.com>
! arc port		Joern Rennecke		<gnu@amylaar.uk>
! arc port		Claudiu Zissulescu	<claziss@synopsys.com>
! arm port		Nick Clifton		<nickc@redhat.com>
! arm port		Richard Earnshaw	<richard.earnshaw@arm.com>
! arm port		Ramana Radhakrishnan	<ramana.gcc@gmail.com>
! avr port		Denis Chertykov		<chertykov@gmail.com>
! bfin port		Jie Zhang		<jzhang918@gmail.com>
! bpf port		Jose E. Marchesi	<jose.marchesi@oracle.com>
! c6x port		Bernd Schmidt		<bernds_cb1@t-online.de>
! cris port		Hans-Peter Nilsson	<hp@axis.com>
! c-sky port		Xianmiao Qu		<cooper.qu@linux.alibaba.com>
! c-sky port		Yunhai Shang		<yunhai@linux.alibaba.com>
! epiphany port		Joern Rennecke		<gnu@amylaar.uk>
! fr30 port		Nick Clifton		<nickc@redhat.com>
! frv port		Nick Clifton		<nickc@redhat.com>
! frv port		Alexandre Oliva		<aoliva@gcc.gnu.org>
! ft32 port		James Bowman		<james.bowman@ftdichip.com>
! h8 port			Jeff Law		<jeffreyalaw@gmail.com>
! hppa port		Jeff Law		<jeffreyalaw@gmail.com>
! hppa port		John David Anglin	<dave.anglin@bell.net>
! i386 port		Jan Hubicka		<hubicka@ucw.cz>
! i386 port		Uros Bizjak		<ubizjak@gmail.com>
! i386 vector ISA extns	Kirill Yukhin		<kirill.yukhin@gmail.com>
! i386 vector ISA extns	Hongtao Liu		<hongtao.liu@intel.com>
! iq2000 port		Nick Clifton		<nickc@redhat.com>
! lm32 port		Sebastien Bourdeauducq	<sebastien@milkymist.org>
! LoongArch port		Chenghua Xu		<xuchenghua@loongson.cn>
! LoongArch port		Lulu Cheng		<chenglulu@loongson.cn>
! m32r port		Nick Clifton		<nickc@redhat.com>
! m68k port (?)		Jeff Law		<jeffreyalaw@gmail.com>
! m68k port		Andreas Schwab		<schwab@linux-m68k.org>
! m68k-motorola-sysv port	Philippe De Muyter	<phdm@macqel.be>
! mcore port		Nick Clifton		<nickc@redhat.com>
! microblaze		Michael Eager		<eager@eagercon.com>
! mips port		YunQiang Su		<syq@gcc.gnu.org>
! mmix port		Hans-Peter Nilsson	<hp@bitrange.com>
! mn10300 port		Jeff Law		<jeffreyalaw@gmail.com>
! mn10300 port		Alexandre Oliva		<aoliva@gcc.gnu.org>
! moxie port		Anthony Green		<green@moxielogic.com>
! msp430 port		Nick Clifton		<nickc@redhat.com>
! nds32 port		Chung-Ju Wu		<jasonwucj@gmail.com>
! nds32 port		Shiva Chen		<shiva0217@gmail.com>
! nios2 port		Chung-Lin Tang		<cltang@baylibre.com>
! nios2 port		Sandra Loosemore	<sloosemore@baylibre.com>
! nvptx port		Tom de Vries		<tdevries@suse.de>
! nvptx port		Thomas Schwinge		<tschwinge@baylibre.com>
! or1k port		Stafford Horne		<shorne@gmail.com>
! pdp11 port		Paul Koning		<ni1d@arrl.net>
! powerpcspe port		Andrew Jenner		<andrew@codesourcery.com>
! pru port		Dimitar Dimitrov	<dimitar@dinux.eu>
! riscv port		Kito Cheng		<kito.cheng@gmail.com>
! riscv port		Palmer Dabbelt		<palmer@dabbelt.com>
! riscv port		Andrew Waterman		<andrew@sifive.com>
! riscv port		Jim Wilson		<jim.wilson.gcc@gmail.com>
! rs6000/powerpc port	David Edelsohn		<dje.gcc@gmail.com>
! rs6000/powerpc port	Segher Boessenkool	<segher@kernel.crashing.org>
! rs6000/powerpc port	Kewen Lin		<linkw@gcc.gnu.org>
! rs6000 vector extns	Aldy Hernandez		<aldyh@redhat.com>
! rx port			Nick Clifton		<nickc@redhat.com>
! s390 port		Ulrich Weigand		<uweigand@de.ibm.com>
! s390 port		Andreas Krebbel		<krebbel@linux.ibm.com>
! sh port			Alexandre Oliva		<aoliva@gcc.gnu.org>
! sh port			Oleg Endo		<olegendo@gcc.gnu.org>
! sparc port		David S. Miller		<davem@redhat.com>
! sparc port		Eric Botcazou		<ebotcazou@libertysurf.fr>
! v850 port		Nick Clifton		<nickc@redhat.com>
! vax port		Matt Thomas		<matt@3am-software.com>
! vax port		Maciej W. Rozycki	<macro@orcam.me.uk>
! visium port		Eric Botcazou		<ebotcazou@libertysurf.fr>
! x86-64 port		Jan Hubicka		<hubicka@ucw.cz>
! xstormy16 port		Nick Clifton		<nickc@redhat.com>
! xtensa port		Sterling Augustine	<augustine.sterling@gmail.com>
! xtensa port		Max Filippov		<jcmvbkbc@gmail.com>
  
! 			OS Port Maintainers	(OS alphabetical order)
  
! aix			David Edelsohn		<dje.gcc@gmail.com>
! Android sub-port	Maxim Kuvyrkov		<maxim.kuvyrkov@linaro.org>
! darwin port		Iain Sandoe		<iain@sandoe.co.uk>
! darwin port		Mike Stump		<mikestump@comcast.net>
! DJGPP			DJ Delorie		<dj@delorie.com>
! freebsd			Andreas Tobler		<andreast@gcc.gnu.org>
! GNU/Hurd		Thomas Schwinge		<thomas@schwinge.name>
! hpux			John David Anglin	<dave.anglin@bell.net>
! solaris			Rainer Orth		<ro@CeBiTec.Uni-Bielefeld.DE>
! netbsd			Jason Thorpe		<thorpej@netbsd.org>
! netbsd			Krister Walfridsson	<krister.walfridsson@gmail.com>
! sh-linux-gnu		Kaz Kojima		<kkojima@gcc.gnu.org>
! RTEMS Ports		Joel Sherrill		<joel@oarcorp.com>
! RTEMS Ports		Ralf Corsepius		<ralf.corsepius@rtems.org>
! RTEMS Ports		Sebastian Huber		<sebastian.huber@embedded-brains.de>
! VMS			Douglas Rupp		<douglas.b.rupp@gmail.com>
! VMS			Tristan Gingold		<tgingold@free.fr>
! VxWorks ports		Olivier Hainque		<hainque@adacore.com>
! cygwin, mingw-w64	Jonathan Yong		<10walls@gmail.com>
  
! 			Language Front Ends Maintainers
  
! C front end/ISO C99	Joseph Myers		<josmyers@redhat.com>
! Ada front end		Arnaud Charlet		<charlet@adacore.com>
! Ada front end		Eric Botcazou		<ebotcazou@libertysurf.fr>
! Ada front end		Marc Poulhiès		<poulhies@adacore.com>
! Ada front end		Pierre-Marie de Rodat	<derodat@adacore.com>
! c++			Jason Merrill		<jason@redhat.com>
! c++			Nathan Sidwell		<nathan@acm.org>
! D front end		Iain Buclaw		<ibuclaw@gdcproject.org>
! go			Ian Lance Taylor	<ian@airs.com>
! Modula-2 front end	Gaius Mulley		<gaiusmod2@gmail.com>
! objective-c/c++		Mike Stump		<mikestump@comcast.net>
! objective-c/c++		Iain Sandoe		<iain@sandoe.co.uk>
! Rust			Arthur Cohen		<arthur.cohen@embecosm.com>
! Rust			Philip Herron		<herron.philip@googlemail.com>
  
! 			Various Maintainers
  
! libbacktrace		Ian Lance Taylor	<ian@airs.com>
! libcpp			Per Bothner		<per@bothner.com>
! libcpp			All C and C++ front end maintainers
! libcpp			David Malcolm		<dmalcolm@redhat.com>
! fp-bit			Ian Lance Taylor	<ian@airs.com>
! libgcc			Ian Lance Taylor	<ian@airs.com>
! libgo			Ian Lance Taylor	<ian@airs.com>
! libgomp			Jakub Jelinek		<jakub@redhat.com>
! libgomp			Tobias Burnus		<tburnus@baylibre.com>
! libgomp (OpenACC)	Thomas Schwinge		<tschwinge@baylibre.com>
! libgrust		All Rust front end maintainers
! libiberty		Ian Lance Taylor	<ian@airs.com>
! libitm			Torvald Riegel		<triegel@redhat.com>
! libobjc			Nicola Pero		<nicola.pero@meta-innovation.com>
! libobjc			Andrew Pinski		<pinskia@gmail.com>
! libquadmath		Tobias Burnus		<tburnus@baylibre.com>
! libquadmath		Jakub Jelinek		<jakub@redhat.com>
! libvtv			Caroline Tice		<cmtice@google.com>
! libphobos		Iain Buclaw		<ibuclaw@gdcproject.org>
! line map		Dodji Seketeli		<dodji@redhat.com>
! soft-fp			Joseph Myers		<josmyers@redhat.com>
! scheduler (+ haifa)	Jim Wilson		<wilson@tuliptree.org>
! scheduler (+ haifa)	Michael Meissner	<gnu@the-meissners.org>
! scheduler (+ haifa)	Jeff Law		<jeffreyalaw@gmail.com>
! scheduler (+ haifa)	Vladimir Makarov	<vmakarov@redhat.com>
! modulo-scheduler	Roman Zhuykov		<zhroma@ispras.ru>
! reorg			Jeff Law		<jeffreyalaw@gmail.com>
! caller-save.cc		Jeff Law		<jeffreyalaw@gmail.com>
! callgraph		Jan Hubicka		<hubicka@ucw.cz>
! debugging code		Jim Wilson		<wilson@tuliptree.org>
! dwarf debugging code	Jason Merrill		<jason@redhat.com>
! dwarf debugging code	Cary Coutant		<ccoutant@gmail.com>
! c++ runtime libs	Paolo Carlini		<paolo.carlini@oracle.com>
! c++ runtime libs	Ulrich Drepper		<drepper@gmail.com>
! c++ runtime libs	Benjamin De Kosnik	<bkoz@gnu.org>
! c++ runtime libs	Jonathan Wakely		<jwakely@redhat.com>
! c++ runtime libs special modes		François Dumont		<fdumont@gcc.gnu.org>
! fixincludes		Bruce Korb		<bkorb@gnu.org>
! *gimpl*			Jakub Jelinek		<jakub@redhat.com>
! *gimpl*			Aldy Hernandez		<aldyh@redhat.com>
! *gimpl*			Jason Merrill		<jason@redhat.com>
! gcse.cc			Jeff Law		<jeffreyalaw@gmail.com>
! global opt framework	Jeff Law		<jeffreyalaw@gmail.com>
! jump.cc			David S. Miller		<davem@redhat.com>
! web pages		Gerald Pfeifer		<gerald@pfeifer.com>
! config.sub/config.guess	Ben Elliston		<config-patches@gnu.org>
! i18n			Philipp Thomas		<pth@suse.de>
! i18n			Joseph Myers		<josmyers@redhat.com>
! diagnostic messages	Dodji Seketeli		<dodji@redhat.com>
! diagnostic messages	David Malcolm		<dmalcolm@redhat.com>
! build machinery (*.in)	Paolo Bonzini		<bonzini@gnu.org>
! build machinery (*.in)	Nathanael Nerode	<neroden@gcc.gnu.org>
! build machinery (*.in)	Alexandre Oliva		<aoliva@gcc.gnu.org>
! build machinery (*.in)	Ralf Wildenhues		<Ralf.Wildenhues@gmx.de>
! docs co-maintainer	Gerald Pfeifer		<gerald@pfeifer.com>
! docs co-maintainer	Joseph Myers		<josmyers@redhat.com>
! docs co-maintainer	Sandra Loosemore	<sloosemore@baylibre.com>
! docstring relicensing	Gerald Pfeifer		<gerald@pfeifer.com>
! docstring relicensing	Joseph Myers		<josmyers@redhat.com>
! predict.def		Jan Hubicka		<hubicka@ucw.cz>
! gcov			Jan Hubicka		<hubicka@ucw.cz>
! gcov			Nathan Sidwell		<nathan@acm.org>
! option handling		Joseph Myers		<josmyers@redhat.com>
! middle-end		Jeff Law		<jeffreyalaw@gmail.com>
! middle-end		Ian Lance Taylor	<ian@airs.com>
! middle-end		Richard Biener		<rguenther@suse.de>
! *vrp, ranger		Aldy Hernandez		<aldyh@redhat.com>
! *vrp, ranger		Andrew MacLeod		<amacleod@redhat.com>
! tree-ssa		Andrew MacLeod		<amacleod@redhat.com>
! tree browser/unparser	Sebastian Pop		<sebpop@gmail.com>
! scev, data dependence	Sebastian Pop		<sebpop@gmail.com>
! profile feedback	Jan Hubicka		<hubicka@ucw.cz>
! AutoFDO			Eugene Rozenfeld	<erozen@microsoft.com>
! reload			Ulrich Weigand		<uweigand@de.ibm.com>
! RTL optimizers		Eric Botcazou		<ebotcazou@libertysurf.fr>
! instruction combiner	Segher Boessenkool	<segher@kernel.crashing.org>
! auto-vectorizer		Richard Biener		<rguenther@suse.de>
! auto-vectorizer		Zdenek Dvorak		<ook@ucw.cz>
! loop infrastructure	Zdenek Dvorak		<ook@ucw.cz>
! loop ivopts		Bin Cheng		<bin.cheng@linux.alibaba.com>
! loop optimizer		Bin Cheng		<bin.cheng@linux.alibaba.com>
! OpenACC			Thomas Schwinge		<tschwinge@baylibre.com>
! OpenACC			Tobias Burnus		<tburnus@baylibre.com>
! OpenMP			Jakub Jelinek		<jakub@redhat.com>
! OpenMP			Tobias Burnus		<tburnus@baylibre.com>
! testsuite		Rainer Orth		<ro@CeBiTec.Uni-Bielefeld.DE>
! testsuite		Mike Stump		<mikestump@comcast.net>
! register allocation	Vladimir Makarov	<vmakarov@redhat.com>
! gdbhooks.py		David Malcolm		<dmalcolm@redhat.com>
! jit			David Malcolm		<dmalcolm@redhat.com>
! gen* on machine desc	Richard Sandiford	<rdsandiford@googlemail.com>
! static analyzer		David Malcolm		<dmalcolm@redhat.com>
  
  Note that individuals who maintain parts of the compiler need approval to
  check in changes outside of the parts of the compiler they maintain.
  
! 			Reviewers
  
! arc port		Claudiu Zissulescu	<claziss@synopsys.com>
! callgraph		Martin Jambor		<mjambor@suse.cz>
! C front end		Marek Polacek		<polacek@redhat.com>
! CTF, BTF		Indu Bhagat		<indu.bhagat@oracle.com>
! CTF, BTF, bpf port	David Faust		<david.faust@oracle.com>
! dataflow		Paolo Bonzini		<bonzini@gnu.org>
! dataflow		Seongbae Park		<seongbae.park@gmail.com>
! dataflow		Kenneth Zadeck		<zadeck@naturalbridge.com>
! driver			Joseph Myers		<josmyers@redhat.com>
! Fortran			Harald Anlauf		<anlauf@gmx.de>
! Fortran			Janne Blomqvist		<jb@gcc.gnu.org>
! Fortran			Tobias Burnus		<tburnus@baylibre.com>
! Fortran			François-Xavier Coudert	<fxcoudert@gcc.gnu.org>
! Fortran			Jerry DeLisle		<jvdelisle@gcc.gnu.org>
! Fortran			Erik Edelmann		<erik.edelmann@iki.fi>
! Fortran			Daniel Franke		<franke.daniel@gmail.com>
! Fortran			Thomas König		<tkoenig@gcc.gnu.org>
! Fortran			Daniel Kraft		<d@domob.eu>
! Fortran			Toon Moene		<toon@moene.org>
! Fortran			Mikael Morin		<mikael@gcc.gnu.org>
! Fortran			Tobias Schlüter		<tobias.schlueter@physik.uni-muenchen.de>
! Fortran			Paul Thomas		<pault@gcc.gnu.org>
! Fortran			Janus Weil		<janus@gcc.gnu.org>
! Graphite		Tobias Grosser		<grosser@fim.uni-passau.de>
! Graphite		Sebastian Pop		<sebpop@gmail.com>
! libcpp			Tom Tromey		<tromey@redhat.com>
! libsanitizer, asan.cc	Jakub Jelinek		<jakub@redhat.com>
! libsanitizer, asan.cc	Dodji Seketeli		<dodji@redhat.com>
! libsanitizer, asan.cc	Kostya Serebryany	<kcc@google.com>
! libsanitizer, asan.cc	Dmitry Vyukov		<dvyukov@google.com>
! loop optimizer		Zdenek Dvorak		<ook@ucw.cz>
! LTO			Richard Biener		<rguenther@suse.de>
! LTO plugin		Cary Coutant		<ccoutant@gmail.com>
! Plugin			Le-Chun Wu		<lcwu@google.com>
! register allocation	Peter Bergner		<bergner@linux.ibm.com>
! register allocation	Kenneth Zadeck		<zadeck@naturalbridge.com>
! register allocation	Seongbae Park		<seongbae.park@gmail.com>
! riscv port		Robin Dapp		<rdapp.gcc@gmail.com>
! riscv port		Juzhe Zhong		<juzhe.zhong@rivai.ai>
! RTL optimizers		Steven Bosscher		<steven@gcc.gnu.org>
! selective scheduling	Andrey Belevantsev	<abel@ispras.ru>
! selective scheduling	Alexander Monakov	<amonakov@ispras.ru>
! wide-int		Kenneth Zadeck		<zadeck@naturalbridge.com>
! wide-int		Mike Stump		<mikestump@comcast.net>
! wide-int		Richard Sandiford	<rdsandiford@googlemail.com>
  
  Note that while reviewers can approve changes to parts of the compiler
  that they maintain, they still need approval for their own patches
  from other maintainers or reviewers.
  
! 			Write After Approval	(last name alphabetical order)
  
! Mark G. Adams					<mark.g.adams@sympatico.ca>
! Ajit Kumar Agarwal				<aagarwa1@linux.ibm.com>
! Pedro Alves					<palves@redhat.com>
! Paul-Antoine Arras				<parras@baylibre.com>
! Arsen Arsenović		      	    		<arsen@aarsen.me>
! Raksit Ashok					<raksit@google.com>
! Matt Austern					<austern@google.com>
! David Ayers					<ayers@fsfe.org>
! Prakhar Bahuguna				<prakhar.bahuguna@arm.com>
! Giovanni Bajo					<giovannibajo@gcc.gnu.org>
! Simon Baldwin					<simonb@google.com>
! Richard Ball					<richard.ball@arm.com>
! Scott Bambrough					<scottb@netwinder.org>
! Wolfgang Bangerth				<bangerth@dealii.org>
! Gergö Barany					<gergo@codesourcery.com>
! Charles Baylis					<charles.baylis@linaro.org>
! Tejas Belagod					<tejas.belagod@arm.com>
! Matthew Beliveau				<mbelivea@redhat.com>
! Serge Belyshev					<belyshev@depni.sinp.msu.ru>
! Jon Beniston					<jon@beniston.com>
! Andrew Bennett					<andrew.bennett@imgtec.com>
! Andrew Benson					<abensonca@gmail.com>
! Daniel Berlin					<dberlin@dberlin.org>
! Pat Bernardi					<bernardi@adacore.com>
! Jan Beulich					<jbeulich@suse.com>
! David Billinghurst				<David.Billinghurst@riotinto.com>
! Tomas Bily					<tbily@suse.cz>
! Laurynas Biveinis				<laurynas.biveinis@gmail.com>
! Eric Blake					<ericb@gcc.gnu.org>
! Phil Blundell					<pb@futuretv.com>
! Hans Boehm					<hboehm@gcc.gnu.org>
! Lynn Boger					<laboger@linux.vnet.ibm.com>
! Ian Bolton					<ian.bolton@arm.com>
! Andrea Bona					<andrea.bona@st.com>
! Neil Booth					<neil@daikokuya.co.uk>
! Antoni Boucher					<bouanto@zoho.com>
! Robert Bowdidge					<bowdidge@apple.com>
! Joel Brobecker					<brobecker@gnat.com>
! Dave Brolley					<brolley@redhat.com>
! Christian Bruel					<christian.bruel@st.com>
! Kevin Buettner					<kevinb@redhat.com>
! Andrew Burgess					<aburgess@redhat.com>
! Adam Butcher					<adam@jessamine.co.uk>
! Andrew Cagney					<cagney@gnu.org>
! Andrew Carlotti					<andrew.carlotti@arm.com>
! Daniel Carrera					<dcarrera@gmail.com>
! Stephane Carrez					<stcarrez@nerim.fr>
! Gabriel Charette				<gchare@google.com>
! Chandra Chavva					<cchavva@redhat.com>
! Dehao Chen					<dehao@google.com>
! Fabien Chêne					<fabien@gcc.gnu.org>
! Monk Chiang					<monkchiang@gmail.com>
! Clément Chigot					<chigot@adacore.com>
! Harshit Chopra					<harshit@google.com>
! Juergen Christ					<jchrist@linux.ibm.com>
! Tamar Christina					<tamar.christina@arm.com>
! Eric Christopher				<echristo@gmail.com>
! Paul Clarke					<pc@us.ibm.com>
! William Cohen					<wcohen@redhat.com>
! Michael Collison				<michael.collison@arm.com>
! Josh Conner					<joshconner@google.com>
! R. Kelley Cook					<kcook@gcc.gnu.org>
! Alex Coplan					<alex.coplan@arm.com>
! Andrea Corallo					<andrea.corallo@arm.com>
! Christian Cornelssen				<ccorn@cs.tu-berlin.de>
! Ludovic Courtès					<ludo@gnu.org>
! Lawrence Crowl					<crowl@google.com>
! Lili Cui					<lili.cui@intel.com>
! Ian Dall					<ian@beware.dropbear.id.au>
! David Daney					<david.daney@caviumnetworks.com>
! Simon Dardis					<simon.dardis@gmail.com>
! Sudakshina Das					<sudi.das@arm.com>
! Bud Davis					<jmdavis@link.com>
! Chris Demetriou					<cgd@google.com>
! Sameera Deshpande				<sameera.deshpande@linaro.org>
! Wilco Dijkstra					<wdijkstr@arm.com>
! Benoit Dupont de Dinechin			<benoit.dupont-de-dinechin@st.com>
! Lehua Ding					<lehua.ding@rivai.ai>
! Jason Eckhardt					<jle@rice.edu>
! Bernd Edlinger					<bernd.edlinger@hotmail.de>
! Phil Edwards					<pme@gcc.gnu.org>
! Mark Eggleston					<mark.eggleston@codethink.co.uk>
! Steve Ellcey					<sellcey@caviumnetworks.com>
! Mohan Embar					<gnustuff@thisiscool.com>
! Revital Eres					<eres@il.ibm.com>
! Marc Espie					<espie@cvs.openbsd.org>
! Ansgar Esztermann				<ansgar@thphy.uni-duesseldorf.de>
! Doug Evans					<dje@google.com>
! Chris Fairles					<cfairles@gcc.gnu.org>
! Alessandro Fanfarillo				<fanfarillo.gcc@gmail.com>
! Changpeng Fang					<changpeng.fang@amd.com>
! Sam Feifer					<sfeifer@redhat.com>
! Eric Feng						<ef2648@columbia.edu>
! Li Feng						<nemokingdom@gmail.com>
! Thomas Fitzsimmons				<fitzsim@redhat.com>
! Alexander Fomin					<afomin.mailbox@gmail.com>
! Brian Ford					<ford@vss.fsi.com>
! Matthew Fortune					<mfortune@gmail.com>
! John Freeman					<jfreeman08@gmail.com>
! Nathan Froyd					<froydnj@gcc.gnu.org>
! Chao-ying Fu					<fu@mips.com>
! Gary Funck					<gary@intrepid.com>
! Pompapathi V Gadad				<Pompapathi.V.Gadad@nsc.com>
! Eric Gallager					<egall@gwmail.gwu.edu>
! Gopalasubramanian Ganesh			<Ganesh.Gopalasubramanian@amd.com>
! Fei Gao						<gaofei@eswincomputing.com>
! Kaveh Ghazi					<ghazi@gcc.gnu.org>
! Doug Gilmore					<Doug.Gilmore@imgtec.com>
! Matthew Gingell					<gingell@gnat.com>
! Jan-Benedict Glaw				<jbglaw@lug-owl.de>
! Marc Glisse					<marc.glisse@inria.fr>
! Prachi Godbole					<prachi.godbole@imgtec.com>
! Torbjorn Granlund				<tege@swox.com>
! James Greenhalgh				<james.greenhalgh@arm.com>
! Doug Gregor					<doug.gregor@gmail.com>
! Matthew Gretton-Dann				<matthew.gretton-dann@arm.com>
! Yury Gribov					<tetra2005@gmail.com>
! Jon Grimm					<jgrimm2@us.ibm.com>
! Laurent Guerby					<laurent@guerby.net>
! Haochen Gui					<guihaoc@gcc.gnu.org>
! Jiufu Guo					<guojiufu@linux.ibm.com>
! Xuepeng Guo					<terry.xpguo@gmail.com>
! Wei Guozhi					<carrot@google.com>
! Vineet Gupta					<vineetg@rivosinc.com>
! Naveen H.S					<naveenh@marvell.com>
! Mostafa Hagog					<hagog@gcc.gnu.org>
! Jivan Hakobyan					<jivanhakobyan9@gmail.com>
! Andrew Haley					<aph@redhat.com>
! Demin Han					<demin.han@starfivetech.com>
! Frederik Harwath				<frederik@harwath.name>
! Stuart Hastings					<stuart@apple.com>
! Michael Haubenwallner				<michael.haubenwallner@ssi-schaefer.com>
! Pat Haugen					<pthaugen@us.ibm.com>
! Michael Hayes					<m.hayes@elec.canterbury.ac.nz>
! Alan Hayward					<alan.hayward@arm.com>
! Li Jia He					<helijia@gcc.gnu.org>
! Mark Heffernan					<meheff@google.com>
! George Helffrich				<george@gcc.gnu.org>
! Daniel Hellstrom				<daniel@gaisler.com>
! Fergus Henderson				<fjh@cs.mu.oz.au>
! Stuart Henderson				<shenders@gcc.gnu.org>
! Marius Hillenbrand				<mhillen@linux.ibm.com>
! Matthew Hiller					<hiller@redhat.com>
! Kazu Hirata					<kazu@codesourcery.com>
! Manfred Hollstein				<mh@suse.com>
! Cong Hou					<congh@google.com>
! Lin Hu						<lin1.hu@intel.com>
! Falk Hueffner					<falk@debian.org>
! Andrew John Hughes				<gnu_andrew@member.fsf.org>
! Dominique d'Humieres				<dhumieres.dominique@free.fr>
! Andy Hutchinson					<hutchinsonandy@aim.com>
! Joel Hutton					<joel.hutton@arm.com>
! Lewis Hyatt					<lhyatt@gmail.com>
! Paul Iannetta					<piannetta@kalrayinc.com>
! Roland Illig					<roland.illig@gmx.de>
! Meador Inge					<meadori@codesourcery.com>
! Bernardo Innocenti				<bernie@develer.com>
! Mihail Ionescu					<mihail.ionescu@arm.com>
! Vladislav Ivanishin				<vlad@ispras.ru>
! Alexander Ivchenko				<aivchenk@gmail.com>
! Balaji V. Iyer					<bviyer@gmail.com>
! Pekka Jääskeläinen				<pekka.jaaskelainen@parmance.com>
! Daniel Jacobowitz				<drow@false.org>
! Andreas Jaeger					<aj@suse.de>
! Harsha Jagasia					<harsha.jagasia@amd.com>
! Fariborz Jahanian				<fjahanian@apple.com>
! Surya Kumari Jangala				<jskumari@linux.ibm.com>
! Haochen Jiang					<haochen.jiang@intel.com>
! Qian Jianhua					<qianjh@fujitsu.com>
! Michal Jires					<mjires@suse.cz>
! Janis Johnson					<janis.marie.johnson@gmail.com>
! Teresa Johnson					<tejohnson@google.com>
! Kean Johnston					<jkj@sco.com>
! Phillip Jordan					<phillip.m.jordan@gmail.com>
! Tim Josling					<tej@melbpc.org.au>
! Victor Kaplansky				<victork@il.ibm.com>
! Filip Kastl					<fkastl@suse.cz>
! Geoffrey Keating				<geoffk@geoffk.org>
! Brendan Kehoe					<brendan@zen.org>
! Andi Kleen					<andi@firstfloor.org>
! Matthias Klose					<doko@debian.org>
! Jeff Knaggs					<jknaggs@redhat.com>
! Michael Koch					<konqueror@gmx.de>
! Nicolas Koenig					<koenigni@student.ethz.ch>
! Boris Kolpackov					<boris@codesynthesis.com>
! Lingling Kong					<lingling.kong@intel.com>
! Dave Korn					<dave.korn.cygwin@gmail.com>
! Julia Koval					<julia.koval@intel.com>
! Matt Kraai					<kraai@ftbfs.org>
! Jan Kratochvil					<jan.kratochvil@redhat.com>
! Matthias Kretz					<m.kretz@gsi.de>
! Louis Krupp					<louis.krupp@zoho.com>
! Prathamesh Kulkarni				<prathamesh.kulkarni@linaro.org>
! Venkataramanan Kumar				<venkataramanan.kumar@amd.com>
! Doug Kwan					<dougkwan@google.com>
! Aaron W. LaFramboise				<aaronavay62@aaronwl.com>
! Scott Robert Ladd				<scott.ladd@coyotegulch.com>
! Razya Ladelsky					<razya@gcc.gnu.org>
! Thierry Lafage					<thierry.lafage@inria.fr>
! Rask Ingemann Lambertsen			<ccc94453@vip.cybercity.dk>
! Jerome Lambourg					<lambourg@adacore.com>
! Tim Lange					<mail@tim-lange.me>
! Asher Langton					<langton2@llnl.gov>
! Chris Lattner					<sabre@nondot.org>
! Terry Laurenzo					<tlaurenzo@gmail.com>
! Alan Lawrence					<alan.lawrence@arm.com>
! Jozef Lawrynowicz				<jozef.l@mittosystems.com>
! Georg-Johann Lay				<avr@gjlay.de>
! Vlad Lazar					<vlad.lazar@arm.com>
! Marc Lehmann					<pcg@goof.com>
! James Lemke					<jim@lemke.org>
! Ilya Leoshkevich				<iii@linux.ibm.com>
! Kriang Lerdsuwanakij				<lerdsuwa@users.sourceforge.net>
! Pan Li						<pan2.li@intel.com>
! Renlin Li					<renlin.li@arm.com>
! Xinliang David Li				<davidxl@google.com>
! Chen Liqin					<liqin.gcc@gmail.com>
! Martin Liska					<mliska@suse.cz>
! Hao Liu					<hliu@os.amperecomputing.com>
! Jiangning Liu					<jiangning.liu@arm.com>
! Sa Liu						<saliu@de.ibm.com>
! Ralph Loader					<rcl@ihug.co.nz>
! Sheldon Lobo					<sheldon.lobo@oracle.com
! Gabor Loki					<loki@inf.u-szeged.hu>
! Manuel López-Ibáñez				<manu@gcc.gnu.org>
! Carl Love					<cel@linux.ibm.com>
! Martin v. Löwis					<loewis@informatik.hu-berlin.de>
! Edwin Lu						<ewlu@rivosinc.com>
! H.J. Lu						<hjl.tools@gmail.com>
! Xiong Hu Luo					<luoxhu@gcc.gnu.org>
! Bin Bin Lv					<shlb@linux.ibm.com>
! Christophe Lyon					<christophe.lyon@arm.com>
! Jun Ma						<junma@linux.alibaba.com>
! Luis Machado					<luisgpm@br.ibm.com>
! Ziga Mahkovec					<ziga.mahkovec@klika.si>
! Matthew Malcomson				<matthew.malcomson@arm.com>
! Mikhail Maltsev					<maltsevm@gmail.com>
! Stamatis Markianos-Wright			<stam.markianos-wright@arm.com>
! Patrick Marlier					<patrick.marlier@gmail.com>
! Simon Martin					<simartin@users.sourceforge.net>
! Alejandro Martinez				<alejandro.martinezvicente@arm.com>
! Ranjit Mathew					<rmathew@hotmail.com>
! Paulo Matos					<pmatos@linki.tools>
! Ken Matsui					<kmatsui@gcc.gnu.org>
! Michael Matz					<matz@suse.de>
! Greg McGary					<gkm@gnu.org>
! Roland McGrath					<roland@hack.frob.com>
! Bryce McKinlay					<mckinlay@redhat.com>
! Adam Megacz					<adam@xwt.org>
! Bingfeng Mei					<bmei@broadcom.com>
! Jim Meyering					<jim@meyering.net>
! Martin Michlmayr				<tbm@cyrius.com>
! Lee Millward					<lee.millward@gmail.com>
! Immad Mir					<mir@sourceware.org>
! Cupertino Miranda				<cupertino.miranda@oracle.com>
! Dragan Mladjenovic				<Dragan.Mladjenovic@syrmia.com>
! Alan Modra					<amodra@gmail.com>
! Catherine Moore					<clm@codesourcery.com>
! James A. Morrison				<phython@gcc.gnu.org>
! Brooks Moses					<bmoses@google.com>
! Dirk Mueller					<dmueller@suse.de>
! Phil Muldoon					<pmuldoon@redhat.com>
! Gaius Mulley					<gaiusmod2@gmail.com>
! Christoph Müllner				<christoph.muellner@vrull.eu>
! Steven Munroe					<munroesj52@gmail.com>
! Szabolcs Nagy					<szabolcs.nagy@arm.com>
! Victor Do Nascimento				<victor.donascimento@arm.com>
! Quentin Neill					<quentin.neill.gnu@gmail.com>
! Adam Nemet					<adambnemet@gmail.com>
! Thomas Neumann					<tneumann@users.sourceforge.net>
! Dan Nicolaescu					<dann@ics.uci.edu>
! Kelvin Nilsen					<kelvin.nilsen@gmail.com>
  James Norris
! Diego Novillo					<dnovillo@google.com>
! Dorit Nuzman					<dorit@il.ibm.com>
! David O'Brien					<obrien@FreeBSD.org>
! Carlos O'Donell					<carlos@redhat.com>
! Peter O'Gorman					<pogma@thewrittenword.com>
! Patrick O'Neill					<patrick@rivosinc.com>
! Braden Obrzut					<admin@maniacsvault.net>
! Tsukasa Oi					<research_trasio@irq.a4lg.com>
! Andrea Ornstein					<andrea.ornstein@st.com>
! Maxim Ostapenko					<m.ostapenko@samsung.com>
! Jeevitha Palanisamy				<jeevitha@linux.ibm.com>
! Patrick Palka					<ppalka@gcc.gnu.org>
! Srinath Parvathaneni				<srinath.parvathaneni@arm.com>
! Devang Patel					<dpatel@apple.com>
! Andris Pavenis					<andris.pavenis@iki.fi>
! Fernando Pereira				<pronesto@gmail.com>
! Sebastian Perta					<sebastian.perta@renesas.com>
! Sebastian Peryt					<sebastian.peryt@intel.com>
! Johannes Pfau					<johannespfau@gmail.com>
! Kaushik Phatak					<kaushik.phatak@kpitcummins.com>
! Nicolas Pitre					<nico@cam.org>
! Michael Ploujnikov				<michael.ploujnikov@oracle.com>
! Paul Pluzhnikov					<ppluzhnikov@google.com>
! Antoniu Pop					<antoniu.pop@gmail.com>
! Siddhesh Poyarekar				<siddhesh@gotplt.org>
! Vidya Praveen					<vidyapraveen@arm.com>
! Thomas Preud'homme				<thomas.preudhomme@celest.fr>
! Benjamin Priour					<priour.be@gmail.com>
! Vladimir Prus					<vladimir@codesourcery.com>
! Hafiz Abid Qadeer				<abidh@codesourcery.com>
! Yao Qi						<yao@codesourcery.com>
! Jerry Quinn					<jlquinn@optonline.net>
! Navid Rahimi					<navidrahimi@microsoft.com>
! Rishi Raj						<rishiraj45035@gmail.com>
! Easwaran Raman					<eraman@google.com>
! Joe Ramsay					<joe.ramsay@arm.com>
! Rolf Rasmussen					<rolfwr@gcc.gnu.org>
! Fritz Reese					<fritzoreese@gmail.com>
! Volker Reichelt					<v.reichelt@netcologne.de>
! Bernhard Reutner-Fischer			<rep.dot.nop@gmail.com>
! Tom Rix						<trix@redhat.com>
! Thomas Rodgers					<trodgers@redhat.com>
! Craig Rodrigues					<rodrigc@gcc.gnu.org>
! Erven Rohou					<erven.rohou@inria.fr>
! Ira Rosen					<irar@il.ibm.com>
! Yvan Roux					<yvan.roux@linaro.org>
! Silvius Rus					<rus@google.com>
! Matthew Sachs					<msachs@apple.com>
! Ankur Saini					<arsenic@sourceware.org>
! Hariharan Sandanagobalane			<hariharan.gcc@gmail.com>
! Duncan Sands					<baldrick@gcc.gnu.org>
! Sujoy Saraswati					<sujoy.saraswati@hpe.com>
! Trevor Saunders					<tbsaunde+gcc@tbsaunde.org>
! Aaron Sawdey					<acsawdey@linux.ibm.com>
! Roger Sayle					<roger@nextmovesoftware.com>
! Will Schmidt					<will_schmidt@vnet.ibm.com>
! Stefan Schulze Frielinghaus			<stefansf@linux.ibm.com>
! Tilo Schwarz					<tilo@tilo-schwarz.de>
! Martin Sebor					<msebor@gcc.gnu.org>
! Svein Seldal					<svein@dev.seldal.com>
! Senthil Kumar Selvaraj				<saaadhu@gcc.gnu.org>
! Thiemo Seufer					<ths@networkno.de>
! Bill Seurer					<seurer@linux.vnet.ibm.com>
! Nathaniel Shead					<nathanieloshead@gmail.com>
! Tim Shen					<timshen@google.com>
! David Sherwood					<david.sherwood@arm.com>
! Sharad Singhai					<singhai@google.com>
! Johannes Singler				<singler@kit.edu>
! Franz Sirl					<franz.sirl-kernel@lauterbach.com>
! Jan Sjodin					<jan.sjodin@amd.com>
! Trevor Smigiel					<trevor_smigiel@playstation.sony.com>
! Edward Smith-Rowland				<esmithrowland@gmail.com>
! Anatoly Sokolov					<aesok@dol.ru>
! Michael Sokolov					<msokolov@ivan.Harhan.ORG>
! Jayant Sonar					<rsonar.jayant@gmail.com>
! Fangrui Song	                                <maskray@gcc.gnu.org>
! Richard Stallman				<rms@gnu.org>
! Basile Starynkevitch				<basile@starynkevitch.net>
! Jakub Staszak					<kuba@et.pl>
! Graham Stott					<graham.stott@btinternet.com>
! Jeff Sturm					<jsturm@gcc.gnu.org>
! Robert Suchanek					<rsuchy84@gmail.com>
! Andrew Sutton					<andrew.n.sutton@gmail.com>
! Gabriele Svelto					<gabriele.svelto@st.com>
! Torbjörn Svensson				<torbjorn.svensson@foss.st.com>
! Toma Tabacu					<toma.tabacu@gmail.com>
! Omar Tahir					<omar.tahir@arm.com>
! Sriraman Tallam					<tmsriram@google.com>
! Samuel Tardieu					<sam@rfc1149.net>
! Sam Tebbs					<samuel.tebbs@gmail.com>
! Dinar Temirbulatov				<dtemirbulatov@gmail.com>
! Kresten Krab Thorup				<krab@gcc.gnu.org>
! Kai Tietz					<ktietz70@googlemail.com>
! Ilya Tocar					<tocarip@gmail.com>
! Petter Tomner					<tomner@bahnhof.se>
! Philipp Tomsich					<philipp.tomsich@vrull.eu>
! Daniel Towner					<dant@picochip.com>
! Konrad Trifunovic				<konrad.trifunovic@inria.fr>
! Markus Trippelsdorf				<markus@trippelsdorf.de>
! Sergei Trofimovich				<slyfox@gcc.gnu.org>
! Igor Tsimbalist					<igor.v.tsimbalist@intel.com>
! Martin Uecker					<uecker@gcc.gnu.org>
! David Ung					<davidu@mips.com>
! Neil Vachharajani				<nvachhar@gmail.com>
! Kris Van Hees					<kris.van.hees@oracle.com>
! Joost VandeVondele				<joost.vandevondele@mat.ethz.ch>
! Andre Vehreschild				<vehre@gmx.de>
! Alex Velenko					<alex.velenko@arm.com>
! Ilya Verbin					<iverbin@gmail.com>
! Andre Vieira					<andre.simoesdiasvieira@arm.com>
! Rasmus Villemoes				<rv@rasmusvillemoes.dk>
! Kugan Vivekanandarajah				<kuganv@linaro.org>
! Marcel Vollweiler				<marcel@codesourcery.com>
! Ville Voutilainen				<ville.voutilainen@gmail.com>
! Nenad Vukicevic					<nenad@intrepid.com>
! Feng Wang					<fengwang@nudt.edu.cn>
! Feng Wang					<wangfeng@eswincomputing.com>
! Hongyu Wang					<hongyu.wang@intel.com>
! Jiong Wang					<jiong.wang@arm.com>
! Stephen M. Webb					<stephen.webb@bregmasoft.com>
! John Wehle					<john@feith.com>
! Florian Weimer					<fweimer@redhat.com>
! Zack Weinberg					<zackw@panix.com>
! Alexander Westbrooks			<alexanderw@gcc.gnu.org>
! Mark Wielaard					<mark@gcc.gnu.org>
! Edmar Wienskoski				<edmar@freescale.com>
! Ollie Wild					<aaw@google.com>
! Kevin Williams					<kevin.williams@inria.fr>
! Przemyslaw Wirkus				<przemyslaw.wirkus@arm.com>
! Carlo Wood					<carlo@alinoe.com>
! Jackson Woodruff				<jackson.woodruff@arm.com>
! Jonathan Wright					<jonathan.wright@arm.com>
! Ruoyao Xi					<xry111@xry111.site>
! Mingjie Xing					<mingjie.xing@gmail.com>
! Chenghua Xu					<paul.hua.gm@gmail.com>
! Li Xu						<xuli1@eswincomputing.com>
! Canqun Yang					<canqun@nudt.edu.cn>
! Fei Yang					<felix.yang@huawei.com>
! Jeffrey Yasskin					<jyasskin@google.com>
! Joey Ye						<joey.ye@arm.com>
! Kwok Cheung Yeung				<kcyeung@baylibre.com>
! Greta Yorsh					<greta.yorsh@arm.com>
! David Yuste					<david.yuste@gmail.com>
! Adhemerval Zanella				<azanella@linux.vnet.ibm.com>
! Dennis Zhang					<dennis.zhang@arm.com>
! Yufeng Zhang					<yufeng.zhang@arm.com>
! Qing Zhao					<qing.zhao@oracle.com>
! Shujing Zhao					<pearly.zhao@oracle.com>
! Jon Ziegler					<jonz@apple.com>
! Roman Zippel					<zippel@linux-m68k.org>
! Josef Zlomek					<josef.zlomek@email.cz>
  
! 			Bug database only accounts
  
! James Dennett					<jdennett@acm.org>
! Christian Ehrhardt				<ehrhardt@mathematik.uni-ulm.de>
! Dara Hazeghi					<dhazeghi@yahoo.com>
  
! 			Contributing under the DCO
  
  By adding your name and email to this section, you certify that all your
  subsequent contributions to GCC are made under the terms of the Developer's
--- 52,930 ----
  Also note that maintainership of any area covers changes to web pages,
  docs, and the testsuite related to that.
  
!                         CPU Port Maintainers    (CPU alphabetical order)
  
! aarch64 ldp/stp         Alex Coplan             <alex.coplan@arm.com>
! aarch64 port            Richard Earnshaw        <richard.earnshaw@arm.com>
! aarch64 port            Richard Sandiford       <richard.sandiford@arm.com>
! aarch64 port            Marcus Shawcroft        <marcus.shawcroft@arm.com>
! aarch64 port            Kyrylo Tkachov          <ktkachov@nvidia.com>
! alpha port              Richard Henderson       <rth@gcc.gnu.org>
! amdgcn port             Julian Brown            <julian@codesourcery.com>
! amdgcn port             Andrew Stubbs           <ams@baylibre.com>
! arc port                Claudiu Zissulescu      <claziss@gmail.com>
! arm port                Nick Clifton            <nickc@redhat.com>
! arm port                Richard Earnshaw        <richard.earnshaw@arm.com>
! arm port                Ramana Radhakrishnan    <ramanara@nvidia.com>
! avr port                Denis Chertykov         <chertykov@gmail.com>
! bfin port               Jie Zhang               <jzhang918@gmail.com>
! bpf port                Jose E. Marchesi        <jose.marchesi@oracle.com>
! c6x port                Bernd Schmidt           <bernds_cb1@t-online.de>
! cris port               Hans-Peter Nilsson      <hp@axis.com>
! c-sky port              Xianmiao Qu             <cooper.qu@linux.alibaba.com>
! c-sky port              Yunhai Shang            <yunhai@linux.alibaba.com>
! fr30 port               Nick Clifton            <nickc@redhat.com>
! frv port                Nick Clifton            <nickc@redhat.com>
! frv port                Alexandre Oliva         <aoliva@gcc.gnu.org>
! ft32 port               James Bowman            <james.bowman@ftdichip.com>
! h8 port                 Jeff Law                <jeffreyalaw@gmail.com>
! hppa port               Jeff Law                <jeffreyalaw@gmail.com>
! hppa port               John David Anglin       <dave.anglin@bell.net>
! i386 port               Jan Hubicka             <hubicka@ucw.cz>
! i386 port               Uros Bizjak             <ubizjak@gmail.com>
! i386 vector ISA extns   Kirill Yukhin           <kirill.yukhin@gmail.com>
! i386 vector ISA extns   Hongtao Liu             <hongtao.liu@intel.com>
! iq2000 port             Nick Clifton            <nickc@redhat.com>
! lm32 port               Sebastien Bourdeauducq  <sebastien@milkymist.org>
! LoongArch port          Chenghua Xu             <xuchenghua@loongson.cn>
! LoongArch port          Lulu Cheng              <chenglulu@loongson.cn>
! m32r port               Nick Clifton            <nickc@redhat.com>
! m68k port (?)           Jeff Law                <jeffreyalaw@gmail.com>
! m68k port               Andreas Schwab          <schwab@linux-m68k.org>
! m68k-motorola-sysv port Philippe De Muyter      <phdm@macqel.be>
! mcore port              Nick Clifton            <nickc@redhat.com>
! microblaze              Michael Eager           <eager@eagercon.com>
! mips port               YunQiang Su             <syq@gcc.gnu.org>
! mmix port               Hans-Peter Nilsson      <hp@bitrange.com>
! mn10300 port            Jeff Law                <jeffreyalaw@gmail.com>
! mn10300 port            Alexandre Oliva         <aoliva@gcc.gnu.org>
! moxie port              Anthony Green           <green@moxielogic.com>
! msp430 port             Nick Clifton            <nickc@redhat.com>
! nds32 port              Chung-Ju Wu             <jasonwucj@gmail.com>
! nds32 port              Shiva Chen              <shiva0217@gmail.com>
! nvptx port              Tom de Vries            <tdevries@suse.de>
! nvptx port              Thomas Schwinge         <tschwinge@baylibre.com>
! or1k port               Stafford Horne          <shorne@gmail.com>
! pdp11 port              Paul Koning             <ni1d@arrl.net>
! powerpcspe port         Andrew Jenner           <andrew@codesourcery.com>
! pru port                Dimitar Dimitrov        <dimitar@dinux.eu>
! riscv port              Kito Cheng              <kito.cheng@gmail.com>
! riscv port              Palmer Dabbelt          <palmer@dabbelt.com>
! riscv port              Andrew Waterman         <andrew@sifive.com>
! riscv port              Jim Wilson              <jim.wilson.gcc@gmail.com>
! rs6000/powerpc port     David Edelsohn          <dje.gcc@gmail.com>
! rs6000/powerpc port     Segher Boessenkool      <segher@kernel.crashing.org>
! rs6000/powerpc port     Kewen Lin               <linkw@gcc.gnu.org>
! rs6000 vector extns     Aldy Hernandez          <aldy@quesejoda.com>
! rx port                 Nick Clifton            <nickc@redhat.com>
! s390 port               Ulrich Weigand          <uweigand@de.ibm.com>
! s390 port               Andreas Krebbel         <krebbel@linux.ibm.com>
! s390 port               Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
! sh port                 Alexandre Oliva         <aoliva@gcc.gnu.org>
! sh port                 Oleg Endo               <olegendo@gcc.gnu.org>
! sparc port              David S. Miller         <davem@redhat.com>
! sparc port              Eric Botcazou           <ebotcazou@libertysurf.fr>
! v850 port               Nick Clifton            <nickc@redhat.com>
! vax port                Matt Thomas             <matt@3am-software.com>
! vax port                Maciej W. Rozycki       <macro@orcam.me.uk>
! visium port             Eric Botcazou           <ebotcazou@libertysurf.fr>
! x86-64 port             Jan Hubicka             <hubicka@ucw.cz>
! xstormy16 port          Nick Clifton            <nickc@redhat.com>
! xtensa port             Sterling Augustine      <augustine.sterling@gmail.com>
! xtensa port             Max Filippov            <jcmvbkbc@gmail.com>
  
!                         OS Port Maintainers     (OS alphabetical order)
  
! aix                     David Edelsohn          <dje.gcc@gmail.com>
! Android sub-port        Maxim Kuvyrkov          <maxim.kuvyrkov@linaro.org>
! darwin port             Iain Sandoe             <iain@sandoe.co.uk>
! darwin port             Mike Stump              <mikestump@comcast.net>
! DJGPP                   DJ Delorie              <dj@delorie.com>
! freebsd                 Andreas Tobler          <andreast@gcc.gnu.org>
! GNU/Hurd                Thomas Schwinge         <thomas@schwinge.name>
! hpux                    John David Anglin       <dave.anglin@bell.net>
! solaris                 Rainer Orth             <ro@CeBiTec.Uni-Bielefeld.DE>
! netbsd                  Jason Thorpe            <thorpej@netbsd.org>
! netbsd                  Krister Walfridsson     <krister.walfridsson@gmail.com>
! sh-linux-gnu            Kaz Kojima              <kkojima@gcc.gnu.org>
! RTEMS Ports             Joel Sherrill           <joel@oarcorp.com>
! RTEMS Ports             Ralf Corsepius          <ralf.corsepius@rtems.org>
! RTEMS Ports             Sebastian Huber         <sebastian.huber@embedded-brains.de>
! VMS                     Douglas Rupp            <douglas.b.rupp@gmail.com>
! VMS                     Tristan Gingold         <tgingold@free.fr>
! VxWorks ports           Olivier Hainque         <hainque@adacore.com>
! cygwin, mingw-w64       Jonathan Yong           <10walls@gmail.com>
  
!                         Language Front Ends Maintainers
  
! C front end/ISO C99     Joseph Myers            <josmyers@redhat.com>
! Ada front end           Arnaud Charlet          <charlet@adacore.com>
! Ada front end           Eric Botcazou           <ebotcazou@libertysurf.fr>
! Ada front end           Marc Poulhiès           <poulhies@adacore.com>
! Ada front end           Pierre-Marie de Rodat   <derodat@adacore.com>
! COBOL front end         Robert Dubner           <rdubner@symas.com>
! COBOL front end         James K. Lowden         <jklowden@cobolworx.com>
! c++                     Jason Merrill           <jason@redhat.com>
! c++                     Nathan Sidwell          <nathan@acm.org>
! D front end             Iain Buclaw             <ibuclaw@gdcproject.org>
! go                      Ian Lance Taylor        <ian@airs.com>
! Modula-2 front end      Gaius Mulley            <gaiusmod2@gmail.com>
! objective-c/c++         Mike Stump              <mikestump@comcast.net>
! objective-c/c++         Iain Sandoe             <iain@sandoe.co.uk>
! Rust                    Arthur Cohen            <arthur.cohen@embecosm.com>
! Rust                    Philip Herron           <herron.philip@googlemail.com>
  
!                         Various Maintainers
  
! libbacktrace            Ian Lance Taylor        <ian@airs.com>
! libcpp                  Per Bothner             <per@bothner.com>
! libcpp                  All C and C++ front end maintainers
! libcpp                  David Malcolm           <dmalcolm@redhat.com>
! fp-bit                  Ian Lance Taylor        <ian@airs.com>
! libgcc                  Ian Lance Taylor        <ian@airs.com>
! libgo                   Ian Lance Taylor        <ian@airs.com>
! libgomp                 Jakub Jelinek           <jakub@redhat.com>
! libgomp                 Tobias Burnus           <tburnus@baylibre.com>
! libgomp (OpenACC)       Thomas Schwinge         <tschwinge@baylibre.com>
! libgrust                All Rust front end maintainers
! libiberty               Ian Lance Taylor        <ian@airs.com>
! libitm                  Torvald Riegel          <triegel@redhat.com>
! libobjc                 Nicola Pero             <nicola.pero@meta-innovation.com>
! libobjc                 Andrew Pinski           <pinskia@gmail.com>
! libquadmath             Tobias Burnus           <tburnus@baylibre.com>
! libquadmath             Jakub Jelinek           <jakub@redhat.com>
! libvtv                  Caroline Tice           <cmtice@google.com>
! libphobos               Iain Buclaw             <ibuclaw@gdcproject.org>
! line map                Dodji Seketeli          <dodji@redhat.com>
! soft-fp                 Joseph Myers            <josmyers@redhat.com>
! scheduler (+ haifa)     Jim Wilson              <wilson@tuliptree.org>
! scheduler (+ haifa)     Michael Meissner        <gnu@the-meissners.org>
! scheduler (+ haifa)     Jeff Law                <jeffreyalaw@gmail.com>
! scheduler (+ haifa)     Vladimir Makarov        <vmakarov@redhat.com>
! modulo-scheduler        Roman Zhuykov           <zhroma@ispras.ru>
! reorg                   Jeff Law                <jeffreyalaw@gmail.com>
! caller-save.cc          Jeff Law                <jeffreyalaw@gmail.com>
! callgraph               Jan Hubicka             <hubicka@ucw.cz>
! debugging code          Jim Wilson              <wilson@tuliptree.org>
! dwarf debugging code    Jason Merrill           <jason@redhat.com>
! dwarf debugging code    Cary Coutant            <ccoutant@gmail.com>
! c++ runtime libs        Paolo Carlini           <paolo.carlini@oracle.com>
! c++ runtime libs        Ulrich Drepper          <drepper@gmail.com>
! c++ runtime libs        Benjamin De Kosnik      <bkoz@gnu.org>
! c++ runtime libs        Jonathan Wakely         <jwakely@redhat.com>
! c++ runtime libs special modes  François Dumont <fdumont@gcc.gnu.org>
! fixincludes             Bruce Korb              <bkorb@gnu.org>
! *gimpl*                 Jakub Jelinek           <jakub@redhat.com>
! *gimpl*                 Aldy Hernandez          <aldy@quesejoda.com>
! *gimpl*                 Jason Merrill           <jason@redhat.com>
! gcse.cc                 Jeff Law                <jeffreyalaw@gmail.com>
! global opt framework    Jeff Law                <jeffreyalaw@gmail.com>
! jump.cc                 David S. Miller         <davem@redhat.com>
! web pages               Gerald Pfeifer          <gerald@pfeifer.com>
! config.sub/config.guess Ben Elliston            <config-patches@gnu.org>
! i18n                    Philipp Thomas          <pth@suse.de>
! i18n                    Joseph Myers            <josmyers@redhat.com>
! diagnostic messages     Dodji Seketeli          <dodji@redhat.com>
! diagnostic messages     David Malcolm           <dmalcolm@redhat.com>
! build machinery (*.in)  Paolo Bonzini           <bonzini@gnu.org>
! build machinery (*.in)  Nathanael Nerode        <neroden@gcc.gnu.org>
! build machinery (*.in)  Alexandre Oliva         <aoliva@gcc.gnu.org>
! build machinery (*.in)  Ralf Wildenhues         <Ralf.Wildenhues@gmx.de>
! docs co-maintainer      Gerald Pfeifer          <gerald@pfeifer.com>
! docs co-maintainer      Joseph Myers            <josmyers@redhat.com>
! docs co-maintainer      Sandra Loosemore        <sloosemore@baylibre.com>
! docstring relicensing   Gerald Pfeifer          <gerald@pfeifer.com>
! docstring relicensing   Joseph Myers            <josmyers@redhat.com>
! predict.def             Jan Hubicka             <hubicka@ucw.cz>
! gcov                    Jan Hubicka             <hubicka@ucw.cz>
! gcov                    Nathan Sidwell          <nathan@acm.org>
! option handling         Joseph Myers            <josmyers@redhat.com>
! middle-end              Jeff Law                <jeffreyalaw@gmail.com>
! middle-end              Ian Lance Taylor        <ian@airs.com>
! middle-end              Richard Biener          <rguenther@suse.de>
! *vrp, ranger            Aldy Hernandez          <aldy@quesejoda.com>
! *vrp, ranger            Andrew MacLeod          <amacleod@redhat.com>
! tree-ssa                Andrew MacLeod          <amacleod@redhat.com>
! tree browser/unparser   Sebastian Pop           <sebpop@gmail.com>
! scev, data dependence   Sebastian Pop           <sebpop@gmail.com>
! profile feedback        Jan Hubicka             <hubicka@ucw.cz>
! AutoFDO                 Eugene Rozenfeld        <erozen@microsoft.com>
! reload                  Ulrich Weigand          <uweigand@de.ibm.com>
! RTL optimizers          Eric Botcazou           <ebotcazou@libertysurf.fr>
! instruction combiner    Segher Boessenkool      <segher@kernel.crashing.org>
! pair fusion             Alex Coplan             <alex.coplan@arm.com>
! auto-vectorizer         Richard Biener          <rguenther@suse.de>
! auto-vectorizer         Zdenek Dvorak           <ook@ucw.cz>
! loop infrastructure     Zdenek Dvorak           <ook@ucw.cz>
! loop ivopts             Bin Cheng               <bin.cheng@linux.alibaba.com>
! loop optimizer          Bin Cheng               <bin.cheng@linux.alibaba.com>
! OpenACC                 Thomas Schwinge         <tschwinge@baylibre.com>
! OpenACC                 Tobias Burnus           <tburnus@baylibre.com>
! OpenMP                  Jakub Jelinek           <jakub@redhat.com>
! OpenMP                  Tobias Burnus           <tburnus@baylibre.com>
! testsuite               Rainer Orth             <ro@CeBiTec.Uni-Bielefeld.DE>
! testsuite               Mike Stump              <mikestump@comcast.net>
! register allocation     Vladimir Makarov        <vmakarov@redhat.com>
! gdbhooks.py             David Malcolm           <dmalcolm@redhat.com>
! jit                     David Malcolm           <dmalcolm@redhat.com>
! gen* on machine desc    Richard Sandiford       <rdsandiford@googlemail.com>
! static analyzer         David Malcolm           <dmalcolm@redhat.com>
  
  Note that individuals who maintain parts of the compiler need approval to
  check in changes outside of the parts of the compiler they maintain.
  
!                         Reviewers
  
! arm port (MVE)          Christophe Lyon         <christophe.lyon@arm.com>
! callgraph               Martin Jambor           <mjambor@suse.cz>
! C front end             Marek Polacek           <polacek@redhat.com>
! CTF, BTF                Indu Bhagat             <indu.bhagat@oracle.com>
! CTF, BTF, bpf port      David Faust             <david.faust@oracle.com>
! dataflow                Paolo Bonzini           <bonzini@gnu.org>
! dataflow                Seongbae Park           <seongbae.park@gmail.com>
! dataflow                Kenneth Zadeck          <zadeck@naturalbridge.com>
! driver                  Joseph Myers            <josmyers@redhat.com>
! Fortran                 Harald Anlauf           <anlauf@gmx.de>
! Fortran                 Janne Blomqvist         <jb@gcc.gnu.org>
! Fortran                 Tobias Burnus           <tburnus@baylibre.com>
! Fortran                 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
! Fortran                 Jerry DeLisle           <jvdelisle@gcc.gnu.org>
! Fortran                 Erik Edelmann           <erik.edelmann@iki.fi>
! Fortran                 Daniel Franke           <franke.daniel@gmail.com>
! Fortran                 Thomas König            <tkoenig@gcc.gnu.org>
! Fortran                 Daniel Kraft            <d@domob.eu>
! Fortran                 Toon Moene              <toon@moene.org>
! Fortran                 Mikael Morin            <mikael@gcc.gnu.org>
! Fortran                 Tobias Schlüter         <tobias.schlueter@physik.uni-muenchen.de>
! Fortran                 Paul Thomas             <pault@gcc.gnu.org>
! Fortran                 Janus Weil              <janus@gcc.gnu.org>
! Graphite                Tobias Grosser          <grosser@fim.uni-passau.de>
! Graphite                Sebastian Pop           <sebpop@gmail.com>
! libcpp                  Tom Tromey              <tromey@redhat.com>
! libsanitizer, asan.cc   Jakub Jelinek           <jakub@redhat.com>
! libsanitizer, asan.cc   Dodji Seketeli          <dodji@redhat.com>
! libsanitizer, asan.cc   Kostya Serebryany       <kcc@google.com>
! libsanitizer, asan.cc   Dmitry Vyukov           <dvyukov@google.com>
! loop optimizer          Zdenek Dvorak           <ook@ucw.cz>
! LTO                     Richard Biener          <rguenther@suse.de>
! LTO plugin              Cary Coutant            <ccoutant@gmail.com>
! Plugin                  Le-Chun Wu              <lcwu@google.com>
! register allocation     Peter Bergner           <bergner@linux.ibm.com>
! register allocation     Kenneth Zadeck          <zadeck@naturalbridge.com>
! register allocation     Seongbae Park           <seongbae.park@gmail.com>
! riscv port              Robin Dapp              <rdapp.gcc@gmail.com>
! riscv port              Juzhe Zhong             <juzhe.zhong@rivai.ai>
! RTL optimizers          Steven Bosscher         <steven@gcc.gnu.org>
! selective scheduling    Andrey Belevantsev      <abel@ispras.ru>
! selective scheduling    Alexander Monakov       <amonakov@ispras.ru>
! wide-int                Kenneth Zadeck          <zadeck@naturalbridge.com>
! wide-int                Mike Stump              <mikestump@comcast.net>
! wide-int                Richard Sandiford       <rdsandiford@googlemail.com>
  
  Note that while reviewers can approve changes to parts of the compiler
  that they maintain, they still need approval for their own patches
  from other maintainers or reviewers.
  
!                         Write After Approval    (last name alphabetical order)
  
! Name                            BZ account      Email
! 
! Soumya AR                       soumyaa         <soumyaa@nvidia.com>
! Mark G. Adams                   mgadams         <mark.g.adams@sympatico.ca>
! Ajit Kumar Agarwal              aagarwa         <aagarwa1@linux.ibm.com>
! Pedro Alves                     palves          <palves@redhat.com>
! John David Anglin               danglin         <dave.anglin@bell.net>
! Harald Anlauf                   anlauf          <anlauf@gmx.de>
! Paul-Antoine Arras              parras          <parras@baylibre.com>
! Arsen Arsenović                 arsen           <arsen@aarsen.me>
! Raksit Ashok                    raksit          <raksit@google.com>
! Sterling Augustine              sterling        <augustine.sterling@gmail.com>
! Matt Austern                    austern         <austern@google.com>
! David Ayers                     ayers           <ayers@fsfe.org>
! Prakhar Bahuguna                prakhar         <prakhar.bahuguna@arm.com>
! Giovanni Bajo                   -               <giovannibajo@gcc.gnu.org>
! Simon Baldwin                   simonb          <simonb@google.com>
! Richard Ball                    ricbal02        <richard.ball@arm.com>
! Scott Bambrough                 -               <scottb@netwinder.org>
! Wolfgang Bangerth               -               <bangerth@dealii.org>
! Claudio Bantaloukas             rdfm            <claudio.bantaloukas@arm.com>
! Gergö Barany                    -               <gergo@codesourcery.com>
! Thiago Jung Bauermann           -               <thiago.bauermann@linaro.org>
! Charles Baylis                  cbaylis         <charles.baylis@linaro.org>
! Tejas Belagod                   belagod         <tejas.belagod@arm.com>
! Andrey Belevantsev              abel            <abel@ispras.ru>
! Matthew Beliveau                -               <mbelivea@redhat.com>
! Serge Belyshev                  -               <belyshev@depni.sinp.msu.ru>
! Jon Beniston                    jbeniston       <jon@beniston.com>
! Andrew Bennett                  -               <andrew.bennett@imgtec.com>
! Andrew Benson                   abensonca       <abensonca@gmail.com>
! Peter Bergner                   bergner         <bergner@linux.ibm.com>
! Daniel Berlin                   dberlin         <dberlin@dberlin.org>
! Pat Bernardi                    -               <bernardi@adacore.com>
! Jan Beulich                     -               <jbeulich@suse.com>
! Indu Bhagat                     ibhagat         <indu.bhagat@oracle.com>
! Richard Biener                  rguenth         <rguenther@suse.de>
! David Billinghurst              billingd        <David.Billinghurst@riotinto.com>
! Tomas Bily                      tomby           <tbily@suse.cz>
! Laurynas Biveinis               lauras          <laurynas.biveinis@gmail.com>
! Uros Bizjak                     uros            <ubizjak@gmail.com>
! Eric Blake                      ericb           <ericb@gcc.gnu.org>
! Janne Blomqvist                 jb              <jb@gcc.gnu.org>
! Phil Blundell                   pb              <pb@futuretv.com>
! Hans Boehm                      -               <hboehm@gcc.gnu.org>
! Segher Boessenkool              segher          <segher@kernel.crashing.org>
! Lynn Boger                      boger           <laboger@linux.vnet.ibm.com>
! Ian Bolton                      ibolton         <ian.bolton@arm.com>
! Andrea Bona                     andreabo        <andrea.bona@st.com>
! Paolo Bonzini                   -               <bonzini@gnu.org>
! Neil Booth                      neil            <neil@daikokuya.co.uk>
! Steven Bosscher                 steven          <steven@gcc.gnu.org>
! Eric Botcazou                   ebotcazou       <ebotcazou@libertysurf.fr>
! Per Bothner                     bothner         <per@bothner.com>
! Antoni Boucher                  -               <bouanto@zoho.com>
! Sebastien Bourdeauducq          lekernel        <sebastien@milkymist.org>
! Robert Bowdidge                 bowdidge        <bowdidge@apple.com>
! James Bowman                    -               <james.bowman@ftdichip.com>
! Joel Brobecker                  -               <brobecker@gnat.com>
! Dave Brolley                    -               <brolley@redhat.com>
! Julian Brown                    jules           <julian@codesourcery.com>
! Christian Bruel                 chrbr           <christian.bruel@st.com>
! Iain Buclaw                     ibuclaw         <ibuclaw@gdcproject.org>
! Kevin Buettner                  -               <kevinb@redhat.com>
! Andrew Burgess                  aburgess        <aburgess@redhat.com>
! Tobias Burnus                   burnus          <tburnus@baylibre.com>
! Adam Butcher                    abutcher        <adam@jessamine.co.uk>
! Andrew Cagney                   cagney          <cagney@gnu.org>
! Paolo Carlini                   paolo           <paolo.carlini@oracle.com>
! Alice Carlotti                  acarlotti       <alice.carlotti@arm.com>
! Daniel Carrera                  dcarrera        <dcarrera@gmail.com>
! Stephane Carrez                 ciceron         <stcarrez@nerim.fr>
! Gabriel Charette                gchare          <gchare@google.com>
! Arnaud Charlet                  charlet         <charlet@adacore.com>
! Chandra Chavva                  -               <cchavva@redhat.com>
! Dehao Chen                      dehao           <dehao@google.com>
! Fabien Chêne                    fabien          <fabien@gcc.gnu.org>
! Bin Cheng                       amker           <bin.cheng@linux.alibaba.com>
! Kito Cheng                      kito            <kito.cheng@gmail.com>
! Lulu Cheng                      -               <chenglulu@loongson.cn>
! Denis Chertykov                 denisc          <chertykov@gmail.com>
! Monk Chiang                     -               <monkchiang@gmail.com>
! Clément Chigot                  -               <chigot@adacore.com>
! Harshit Chopra                  harshit         <harshit@google.com>
! Juergen Christ                  -               <jchrist@linux.ibm.com>
! Tamar Christina                 tnfchris        <tamar.christina@arm.com>
! Eric Christopher                echristo        <echristo@gmail.com>
! Paul Clarke                     pc              <pc@us.ibm.com>
! Nick Clifton                    nickc           <nickc@redhat.com>
! Arthur Cohen                    cohenarthur     <arthur.cohen@embecosm.com>
! William Cohen                   -               <wcohen@redhat.com>
! Michael Collison                collison        <michael.collison@arm.com>
! Josh Conner                     jconner         <joshconner@google.com>
! R. Kelley Cook                  kcook           <kcook@gcc.gnu.org>
! Alex Coplan                     acoplan         <alex.coplan@arm.com>
! Andrea Corallo                  akrl            <andrea.corallo@arm.com>
! Christian Cornelssen            ccorn           <ccorn@cs.tu-berlin.de>
! Ralf Corsepius                  corsepiu        <ralf.corsepius@rtems.org>
! François-Xavier Coudert         fxcoudert       <fxcoudert@gcc.gnu.org>
! Ludovic Courtès                 ludo            <ludo@gnu.org>
! Cary Coutant                    -               <ccoutant@gmail.com>
! Lawrence Crowl                  crowl           <crowl@google.com>
! Lili Cui                        -               <lili.cui@intel.com>
! Giuseppe D'Angelo               peppe           <giuseppe.dangelo@kdab.com>
! Palmer Dabbelt                  palmer          <palmer@dabbelt.com>
! Ian Dall                        iandall         <ian@beware.dropbear.id.au>
! David Daney                     daney           <david.daney@caviumnetworks.com>
! Robin Dapp                      rdapp           <rdapp.gcc@gmail.com>
! Simon Dardis                    dardiss         <simon.dardis@gmail.com>
! Sudakshina Das                  sudi            <sudi.das@arm.com>
! Bud Davis                       bdavis          <jmdavis@link.com>
! Jerry DeLisle                   jvdelisle       <jvdelisle@gcc.gnu.org>
! DJ Delorie                      dj              <dj@delorie.com>
! Chris Demetriou                 cgd             <cgd@google.com>
! Sameera Deshpande               sameerad        <sameera.deshpande@linaro.org>
! Wilco Dijkstra                  wilco           <wdijkstr@arm.com>
! Dimitar Dimitrov                dimitar         <dimitar@dinux.eu>
! Benoit Dupont de Dinechin       bd3             <benoit.dupont-de-dinechin@st.com>
! Lehua Ding                      -               <lehua.ding@rivai.ai>
! Ulrich Drepper                  drepper         <drepper@gmail.com>
! François Dumont                 fdumont         <fdumont@gcc.gnu.org>
! Zdenek Dvorak                   rakdver         <ook@ucw.cz>
! Michael Eager                   eager           <eager@eagercon.com>
! Richard Earnshaw                rearnsha        <richard.earnshaw@arm.com>
! Jason Eckhardt                  -               <jle@rice.edu>
! Erik Edelmann                   eedelman        <erik.edelmann@iki.fi>
! David Edelsohn                  dje             <dje.gcc@gmail.com>
! Bernd Edlinger                  edlinger        <bernd.edlinger@hotmail.de>
! Phil Edwards                    pme             <pme@gcc.gnu.org>
! Mark Eggleston                  markeggleston   <mark.eggleston@codethink.co.uk>
! Steve Ellcey                    sje             <sellcey@caviumnetworks.com>
! Ben Elliston                    bje             <config-patches@gnu.org>
! Mohan Embar                     membar          <gnustuff@thisiscool.com>
! Oleg Endo                       olegendo        <olegendo@gcc.gnu.org>
! Revital Eres                    revitale        <eres@il.ibm.com>
! Marc Espie                      -               <espie@cvs.openbsd.org>
! Ansgar Esztermann               -               <ansgar@thphy.uni-duesseldorf.de>
! Doug Evans                      devans          <dje@google.com>
! Chris Fairles                   cfairles        <cfairles@gcc.gnu.org>
! Alessandro Fanfarillo           afanfa          <fanfarillo.gcc@gmail.com>
! Changpeng Fang                  cfang           <changpeng.fang@amd.com>
! David Faust                     -               <david.faust@oracle.com>
! Sam Feifer                      -               <sfeifer@redhat.com>
! Eric Feng                       efric           <ef2648@columbia.edu>
! Li Feng                         lifeng          <nemokingdom@gmail.com>
! Max Filippov                    jcmvbkbc        <jcmvbkbc@gmail.com>
! Thomas Fitzsimmons              fitzsim         <fitzsim@redhat.com>
! Alexander Fomin                 afomin          <afomin.mailbox@gmail.com>
! Brian Ford                      -               <ford@vss.fsi.com>
! Matthew Fortune                 mpf             <mfortune@gmail.com>
! Daniel Franke                   dfranke         <franke.daniel@gmail.com>
! John Freeman                    -               <jfreeman08@gmail.com>
! Nathan Froyd                    froydnj         <froydnj@gcc.gnu.org>
! Chao-ying Fu                    -               <fu@mips.com>
! Gary Funck                      gfunck          <gary@intrepid.com>
! Pompapathi V Gadad              pompa           <Pompapathi.V.Gadad@nsc.com>
! Eric Gallager                   egallager       <egall@gwmail.gwu.edu>
! Gopalasubramanian Ganesh        -               <Ganesh.Gopalasubramanian@amd.com>
! Fei Gao                         -               <gaofei@eswincomputing.com>
! Kaveh Ghazi                     ghazi           <ghazi@gcc.gnu.org>
! Doug Gilmore                    dgilmore        <Doug.Gilmore@imgtec.com>
! Matthew Gingell                 -               <gingell@gnat.com>
! Tristan Gingold                 gingold         <tgingold@free.fr>
! Jan-Benedict Glaw               jbglaw          <jbglaw@lug-owl.de>
! Marc Glisse                     glisse          <marc.glisse@inria.fr>
! Prachi Godbole                  prachigodbole   <prachi.godbole@imgtec.com>
! Torbjorn Granlund               -               <tege@swox.com>
! Anthony Green                   green           <green@moxielogic.com>
! James Greenhalgh                jgreenhalgh     <james.greenhalgh@arm.com>
! Doug Gregor                     dgregor         <doug.gregor@gmail.com>
! Matthew Gretton-Dann            mgretton        <matthew.gretton-dann@arm.com>
! Yury Gribov                     ygribov         <tetra2005@gmail.com>
! Jon Grimm                       jgrimm          <jgrimm2@us.ibm.com>
! Tobias Grosser                  grosser         <grosser@fim.uni-passau.de>
! Laurent Guerby                  guerby          <laurent@guerby.net>
! Haochen Gui                     guihaoc         <guihaoc@gcc.gnu.org>
! Jiufu Guo                       guojiufu        <guojiufu@linux.ibm.com>
! Xuepeng Guo                     xguo            <terry.xpguo@gmail.com>
! Wei Guozhi                      carrot          <carrot@google.com>
! Vineet Gupta                    vineetg         <vineetg@rivosinc.com>
! Naveen H.S                      naveenh         <naveenh@marvell.com>
! Mostafa Hagog                   hagog           <hagog@gcc.gnu.org>
! Olivier Hainque                 hainque         <hainque@adacore.com>
! Jivan Hakobyan                  -               <jivanhakobyan9@gmail.com>
! Andrew Haley                    aph             <aph@redhat.com>
! Demin Han                       deminhan        <demin.han@starfivetech.com>
! Mark Harmstone                  maharmstone     <mark@harmstone.com>
! Frederik Harwath                frederik        <frederik@harwath.name>
! Stuart Hastings                 stuart          <stuart@apple.com>
! Michael Haubenwallner           haubi           <michael.haubenwallner@ssi-schaefer.com>
! Pat Haugen                      pthaugen        <pthaugen@us.ibm.com>
! Michael Hayes                   m.hayes         <m.hayes@elec.canterbury.ac.nz>
! Alan Hayward                    alahay01        <alan.hayward@arm.com>
! Li Jia He                       helijia         <helijia@gcc.gnu.org>
! Mark Heffernan                  meheff          <meheff@google.com>
! George Helffrich                george          <george@gcc.gnu.org>
! Daniel Hellstrom                danielh         <daniel@gaisler.com>
! Fergus Henderson                -               <fjh@cs.mu.oz.au>
! Richard Henderson               rth             <rth@gcc.gnu.org>
! Stuart Henderson                shenders        <shenders@gcc.gnu.org>
! Aldy Hernandez                  aldyh           <aldy@quesejoda.com>
! Philip Herron                   redbrain        <herron.philip@googlemail.com>
! Marius Hillenbrand              -               <mhillen@linux.ibm.com>
! Matthew Hiller                  -               <hiller@redhat.com>
! Kazu Hirata                     kazu            <kazu@codesourcery.com>
! Manfred Hollstein               -               <mh@suse.com>
! Stafford Horne                  shorne          <shorne@gmail.com>
! Cong Hou                        congh           <congh@google.com>
! Levy Hsu                        -               <admin@levyhsu.com>
! Lin Hu                          -               <lin1.hu@intel.com>
! Sebastian Huber                 sh              <sebastian.huber@embedded-brains.de>
! Jan Hubicka                     hubicka         <hubicka@ucw.cz>
! Falk Hueffner                   falk            <falk@debian.org>
! Andrew John Hughes              gandalf         <gnu_andrew@member.fsf.org>
! Dominique d'Humieres            dominiq         <dhumieres.dominique@free.fr>
! Andy Hutchinson                 hutchinsonandy  <hutchinsonandy@aim.com>
! Joel Hutton                     joelh           <joel.hutton@arm.com>
! Lewis Hyatt                     lhyatt          <lhyatt@gmail.com>
! Paul Iannetta                   -               <piannetta@kalrayinc.com>
! Roland Illig                    -               <roland.illig@gmx.de>
! Meador Inge                     meadori         <meadori@codesourcery.com>
! Bernardo Innocenti              -               <bernie@develer.com>
! Mihail Ionescu                  -               <mihail.ionescu@arm.com>
! Vladislav Ivanishin             -               <vlad@ispras.ru>
! Alexander Ivchenko              aivchenk        <aivchenk@gmail.com>
! Balaji V. Iyer                  bviyer          <bviyer@gmail.com>
! Pekka Jääskeläinen              visit0r         <pekka.jaaskelainen@parmance.com>
! Daniel Jacobowitz               drow            <drow@false.org>
! Andreas Jaeger                  aj              <aj@suse.de>
! Harsha Jagasia                  hjagasia        <harsha.jagasia@amd.com>
! Fariborz Jahanian               -               <fjahanian@apple.com>
! Martin Jambor                   jamborm         <mjambor@suse.cz>
! Sam James                       sjames          <sam@gentoo.org>
! Surya Kumari Jangala            jskumari        <jskumari@linux.ibm.com>
! Jakub Jelinek                   jakub           <jakub@redhat.com>
! Andrew Jenner                   andrewjenner    <andrew@codesourcery.com>
! Saurabh Jha                     saurabhjha      <saurabh.jha@arm.com>
! Haochen Jiang                   -               <haochen.jiang@intel.com>
! Qian Jianhua                    -               <qianjh@fujitsu.com>
! Michal Jires                    mjires          <mjires@suse.cz>
! Janis Johnson                   janis           <janis.marie.johnson@gmail.com>
! Teresa Johnson                  tejohnson       <tejohnson@google.com>
! Kean Johnston                   -               <jkj@sco.com>
! Phillip Jordan                  pmj             <phillip.m.jordan@gmail.com>
! Tim Josling                     timjosling      <tej@melbpc.org.au>
! Tomasz Kamiński                 tkaminsk        <tkaminsk@redhat.com>
! Victor Kaplansky                victork         <victork@il.ibm.com>
! Evgeny Karpov                   -               <evgeny.karpov@microsoft.com>
! Filip Kastl                     pheeck          <fkastl@suse.cz>
! Geoffrey Keating                geoffk          <geoffk@geoffk.org>
! Brendan Kehoe                   -               <brendan@zen.org>
! Richard Kenner                  kenner          <kenner@nyu.edu>
! Yury Khrustalev                 ykhrustalev     <yury.khrustalev@arm.com>
! Andi Kleen                      ak              <andi@firstfloor.org>
! Matthias Klose                  doko            <doko@debian.org>
! Jeff Knaggs                     -               <jknaggs@redhat.com>
! Michael Koch                    -               <konqueror@gmx.de>
! Nicolas Koenig                  koenigni        <koenigni@student.ethz.ch>
! Kaz Kojima                      kkojima         <kkojima@gcc.gnu.org>
! Boris Kolpackov                 boris           <boris@codesynthesis.com>
! Lingling Kong                   -               <lingling.kong@intel.com>
! Thomas König                    tkoenig         <tkoenig@gcc.gnu.org>
! Paul Koning                     pkoning         <ni1d@arrl.net>
! Bruce Korb                      korbb           <bkorb@gnu.org>
! Dave Korn                       davek           <dave.korn.cygwin@gmail.com>
! Julia Koval                     jkoval          <julia.koval@intel.com>
! Matt Kraai                      kraai           <kraai@ftbfs.org>
! Daniel Kraft                    domob           <d@domob.eu>
! Jan Kratochvil                  jkratoch        <jan.kratochvil@redhat.com>
! Andreas Krebbel                 krebbel         <krebbel@linux.ibm.com>
! Matthias Kretz                  mkretz          <m.kretz@gsi.de>
! Louis Krupp                     lkrupp          <louis.krupp@zoho.com>
! Prathamesh Kulkarni             prathamesh3492  <prathameshk@nvidia.com>
! Venkataramanan Kumar            vekumar         <venkataramanan.kumar@amd.com>
! Maxim Kuvyrkov                  mkuvyrkov       <maxim.kuvyrkov@linaro.org>
! Doug Kwan                       dougkwan        <dougkwan@google.com>
! Aaron W. LaFramboise            -               <aaronavay62@aaronwl.com>
! Scott Robert Ladd               -               <scott.ladd@coyotegulch.com>
! Razya Ladelsky                  razya           <razya@gcc.gnu.org>
! Thierry Lafage                  tlafage         <thierry.lafage@inria.fr>
! Rask Ingemann Lambertsen        rask            <ccc94453@vip.cybercity.dk>
! Jerome Lambourg                 -               <lambourg@adacore.com>
! Tim Lange                       tlange          <mail@tim-lange.me>
! Asher Langton                   langton         <langton2@llnl.gov>
! Chris Lattner                   sabre           <sabre@nondot.org>
! Terry Laurenzo                  tlaurenzo       <tlaurenzo@gmail.com>
! Jeff Law                        law             <jeffreyalaw@gmail.com>
! Alan Lawrence                   -               <alan.lawrence@arm.com>
! Jozef Lawrynowicz               jozefl          <jozef.l@mittosystems.com>
! Georg-Johann Lay                gjl             <avr@gjlay.de>
! Vlad Lazar                      vladlazar       <vlad.lazar@arm.com>
! Marc Lehmann                    -               <pcg@goof.com>
! James Lemke                     jwlemke         <jim@lemke.org>
! Ilya Leoshkevich                iii             <iii@linux.ibm.com>
! Kriang Lerdsuwanakij            lerdsuwa        <lerdsuwa@users.sourceforge.net>
! Pan Li                          -               <pan2.li@intel.com>
! Renlin Li                       renlin          <renlin.li@arm.com>
! Xinliang David Li               davidxl         <davidxl@google.com>
! Kewen Lin                       linkw           <linkw@gcc.gnu.org>
! Chen Liqin                      liqin           <liqin.gcc@gmail.com>
! Martin Liska                    marxin          <mliska@suse.cz>
! Hao Liu                         -               <hliu@os.amperecomputing.com>
! Hongtao Liu                     liuhongt        <hongtao.liu@intel.com>
! Jiangning Liu                   liujiangning    <jiangning.liu@arm.com>
! Sa Liu                          saliu           <saliu@de.ibm.com>
! Ralph Loader                    ralph           <rcl@ihug.co.nz>
! Sheldon Lobo                    smlobo          <sheldon.lobo@oracle.com>
! Gabor Loki                      loki            <loki@inf.u-szeged.hu>
! Matthieu Longo                  mlongo          <matthieu.longo@arm.com>
! Sandra Loosemore                sandra          <sloosemore@baylibre.com>
! Manuel López-Ibáñez             manu            <manu@gcc.gnu.org>
! Carl Love                       carll           <cel@linux.ibm.com>
! Martin v. Löwis                 loewis          <loewis@informatik.hu-berlin.de>
! Edwin Lu                        -               <ewlu@rivosinc.com>
! H.J. Lu                         hjl             <hjl.tools@gmail.com>
! Xiong Hu Luo                    -               <luoxhu@gcc.gnu.org>
! Bin Bin Lv                      shlb            <shlb@linux.ibm.com>
! Christophe Lyon                 clyon           <christophe.lyon@arm.com>
! Jin Ma                          majin           <jinma@linux.alibaba.com>
! Jun Ma                          junma           <junma@linux.alibaba.com>
! Andrew MacLeod                  -               <amacleod@redhat.com>
! Luis Machado                    luisgpm         <luisgpm@br.ibm.com>
! Ziga Mahkovec                   ziga            <ziga.mahkovec@klika.si>
! Vladimir Makarov                vmakarov        <vmakarov@redhat.com>
! David Malcolm                   dmalcolm        <dmalcolm@redhat.com>
! Matthew Malcomson               matmal01        <mmalcomson@nvidia.com>
! Mikhail Maltsev                 miyuki          <maltsevm@gmail.com>
! Jose E. Marchesi                jemarch         <jose.marchesi@oracle.com>
! Stamatis Markianos-Wright       stammark        <stam.markianos-wright@arm.com>
! Patrick Marlier                 pmarlier        <patrick.marlier@gmail.com>
! Simon Martin                    simartin        <simartin@users.sourceforge.net>
! Alejandro Martinez              alejandro       <alejandro.martinezvicente@arm.com>
! Ranjit Mathew                   rmathew         <rmathew@hotmail.com>
! Paulo Matos                     pmatos          <pmatos@linki.tools>
! Ken Matsui                      kmatsui         <kmatsui@gcc.gnu.org>
! Michael Matz                    matz            <matz@suse.de>
! Greg McGary                     -               <gkm@gnu.org>
! Roland McGrath                  roland          <roland@hack.frob.com>
! Bryce McKinlay                  bryce           <mckinlay@redhat.com>
! Adam Megacz                     -               <adam@xwt.org>
! Bingfeng Mei                    meibf           <bmei@broadcom.com>
! Michael Meissner                meissner        <gnu@the-meissners.org>
! Josef Melcr                     -               <melcrjos@fit.cvut.cz>
! Jason Merrill                   jason           <jason@redhat.com>
! Jim Meyering                    -               <jim@meyering.net>
! Martin Michlmayr                tbm             <tbm@cyrius.com>
! David S. Miller                 davem           <davem@redhat.com>
! Lee Millward                    lmillward       <lee.millward@gmail.com>
! Immad Mir                       mir             <mir@sourceware.org>
! Cupertino Miranda               -               <cupertino.miranda@oracle.com>
! Dragan Mladjenovic              draganm         <Dragan.Mladjenovic@syrmia.com>
! Alan Modra                      amodra          <amodra@gmail.com>
! Toon Moene                      toon            <toon@moene.org>
! Alexander Monakov               amonakov        <amonakov@ispras.ru>
! Catherine Moore                 clm             <clm@codesourcery.com>
! Mikael Morin                    mikael          <mikael@gcc.gnu.org>
! James A. Morrison               phython         <phython@gcc.gnu.org>
! Brooks Moses                    brooks          <bmoses@google.com>
! Dirk Mueller                    mueller         <dmueller@suse.de>
! Phil Muldoon                    pmuldoon        <pmuldoon@redhat.com>
! Gaius Mulley                    gaius           <gaiusmod2@gmail.com>
! Christoph Müllner               cmuellner       <christoph.muellner@vrull.eu>
! Steven Munroe                   munroesj        <munroesj52@gmail.com>
! Philippe De Muyter              -               <phdm@macqel.be>
! Joseph Myers                    jsm28           <josmyers@redhat.com>
! Szabolcs Nagy                   nsz             <nsz@gcc.gnu.org>
! Victor Do Nascimento            victorldn       <victor.donascimento@arm.com>
! Quentin Neill                   qneill          <quentin.neill.gnu@gmail.com>
! Adam Nemet                      nemet           <adambnemet@gmail.com>
! Nathanael Nerode                neroden         <neroden@gcc.gnu.org>
! Thomas Neumann                  tneumann        <tneumann@users.sourceforge.net>
! Dan Nicolaescu                  -               <dann@ics.uci.edu>
! Kelvin Nilsen                   kelvin          <kelvin.nilsen@gmail.com>
! Hans-Peter Nilsson              hp              <hp@axis.com>
  James Norris
! Diego Novillo                   dnovillo        <dnovillo@google.com>
! Dorit Nuzman                    dorit           <dorit@il.ibm.com>
! David O'Brien                   -               <obrien@FreeBSD.org>
! Carlos O'Donell                 carlos          <carlos@redhat.com>
! Peter O'Gorman                  pogma           <pogma@thewrittenword.com>
! Patrick O'Neill                 -               <patrick@rivosinc.com>
! Braden Obrzut                   blzut3          <admin@maniacsvault.net>
! Tsukasa Oi                      -               <research_trasio@irq.a4lg.com>
! Alexandre Oliva                 aoliva          <aoliva@gcc.gnu.org>
! Andrea Ornstein                 andreao         <andrea.ornstein@st.com>
! Rainer Orth                     ro              <ro@CeBiTec.Uni-Bielefeld.DE>
! Maxim Ostapenko                 chefmax         <m.ostapenko@samsung.com>
! Jeevitha Palanisamy             jeevitha        <jeevitha@linux.ibm.com>
! Patrick Palka                   ppalka          <ppalka@gcc.gnu.org>
! Seongbae Park                   spark           <seongbae.park@gmail.com>
! Srinath Parvathaneni            sripar01        <srinath.parvathaneni@arm.com>
! Devang Patel                    dpatel          <dpatel@apple.com>
! Andris Pavenis                  andris          <andris.pavenis@iki.fi>
! Fernando Pereira                pronesto        <pronesto@gmail.com>
! Nicola Pero                     nicola          <nicola.pero@meta-innovation.com>
! Sebastian Perta                 -               <sebastian.perta@renesas.com>
! Sebastian Peryt                 speryt          <sebastian.peryt@intel.com>
! Johannes Pfau                   jpfau           <johannespfau@gmail.com>
! Gerald Pfeifer                  gerald          <gerald@pfeifer.com>
! Kaushik Phatak                  kaushikp        <kaushik.phatak@kpitcummins.com>
! Andrew Pinski                   pinskia         <pinskia@gmail.com>
! Nicolas Pitre                   nico            <nico@cam.org>
! Michael Ploujnikov              plouj           <michael.ploujnikov@oracle.com>
! Paul Pluzhnikov                 ppluzhnikov     <ppluzhnikov@google.com>
! Marek Polacek                   mpolacek        <polacek@redhat.com>
! Antoniu Pop                     apop            <antoniu.pop@gmail.com>
! Sebastian Pop                   spop            <sebpop@gmail.com>
! Marc Poulhiès                   dkm             <poulhies@adacore.com>
! Siddhesh Poyarekar              siddhesh        <siddhesh@gotplt.org>
! Vidya Praveen                   vp              <vidyapraveen@arm.com>
! Thomas Preud'homme              -               <thomas.preudhomme@celest.fr>
! Benjamin Priour                 vultkayn        <priour.be@gmail.com>
! Vladimir Prus                   vprus           <vladimir@codesourcery.com>
! Hafiz Abid Qadeer               abidh           <abidh@codesourcery.com>
! Yao Qi                          qiyao           <yao@codesourcery.com>
! Xianmiao Qu                     -               <cooper.qu@linux.alibaba.com>
! Jerry Quinn                     jlquinn         <jlquinn@optonline.net>
! Ramana Radhakrishnan            ramana          <ramanara@nvidia.com>
! Navid Rahimi                    navidr          <navidr@gcc.gnu.org>
! Rishi Raj                       -               <rishiraj45035@gmail.com>
! Easwaran Raman                  eraman          <eraman@google.com>
! Joe Ramsay                      joeramsay       <joe.ramsay@arm.com>
! Rolf Rasmussen                  -               <rolfwr@gcc.gnu.org>
! Fritz Reese                     foreese         <fritzoreese@gmail.com>
! Volker Reichelt                 reichelt        <v.reichelt@netcologne.de>
! Joern Rennecke                  amylaar         <gnu@amylaar.uk>
! Bernhard Reutner-Fischer        aldot           <rep.dot.nop@gmail.com>
! Alfie Richards                  -               <alfie.richards@arm.com>
! Torvald Riegel                  torvald         <triegel@redhat.com>
! Tom Rix                         -               <trix@redhat.com>
! Pierre-Marie de Rodat           pmderodat       <derodat@adacore.com>
! Thomas Rodgers                  rodgertq        <trodgers@redhat.com>
! Craig Rodrigues                 rodrigc         <rodrigc@gcc.gnu.org>
! Erven Rohou                     erven           <erven.rohou@inria.fr>
! Ira Rosen                       irar            <irar@il.ibm.com>
! Yvan Roux                       yroux           <yvan.roux@linaro.org>
! Eugene Rozenfeld                -               <erozen@microsoft.com>
! Maciej W. Rozycki               -               <macro@orcam.me.uk>
! Douglas Rupp                    -               <douglas.b.rupp@gmail.com>
! Silvius Rus                     rus             <rus@google.com>
! Matthew Sachs                   matthewg        <msachs@apple.com>
! Ankur Saini                     arsenic         <arsenic@sourceware.org>
! Hariharan Sandanagobalane       hariharans      <hariharan.gcc@gmail.com>
! Richard Sandiford               rsandifo        <rdsandiford@googlemail.com>
! Iain Sandoe                     iains           <iain@sandoe.co.uk>
! Duncan Sands                    baldrick        <baldrick@gcc.gnu.org>
! Sujoy Saraswati                 ssaraswati      <sujoy.saraswati@hpe.com>
! Trevor Saunders                 tbsaunde        <tbsaunde+gcc@tbsaunde.org>
! Aaron Sawdey                    acsawdey        <acsawdey@linux.ibm.com>
! Roger Sayle                     sayle           <roger@nextmovesoftware.com>
! Tobias Schlüter                 tobi            <tobias.schlueter@physik.uni-muenchen.de>
! Bernd Schmidt                   bernds          <bernds_cb1@t-online.de>
! Will Schmidt                    willschm        <will_schmidt@vnet.ibm.com>
! Jennifer Schmitz                jschmitz        <jschmitz@nvidia.com>
! Stefan Schulze Frielinghaus     stefansf        <stefansf@linux.ibm.com>
! Andreas Schwab                  schwab          <schwab@linux-m68k.org>
! Tilo Schwarz                    tiloschwarz     <tilo@tilo-schwarz.de>
! Thomas Schwinge                 tschwinge       <thomas@schwinge.name>
! Martin Sebor                    msebor          <msebor@gcc.gnu.org>
! Dodji Seketeli                  dodji           <dodji@redhat.com>
! Svein Seldal                    -               <svein@dev.seldal.com>
! Senthil Kumar Selvaraj          saaadhu         <saaadhu@gcc.gnu.org>
! Kostya Serebryany               kcc             <kcc@google.com>
! Thiemo Seufer                   -               <ths@networkno.de>
! Bill Seurer                     seurer          <seurer@linux.vnet.ibm.com>
! Marcus Shawcroft                mshawcroft      <marcus.shawcroft@arm.com>
! Nathaniel Shead                 nshead          <nathanieloshead@gmail.com>
! Tim Shen                        timshen         <timshen@google.com>
! Joel Sherrill                   joel            <joel@oarcorp.com>
! David Sherwood                  davids          <david.sherwood@arm.com>
! Nathan Sidwell                  nathan          <nathan@acm.org>
! Sharad Singhai                  singhai         <singhai@google.com>
! Johannes Singler                singler         <singler@kit.edu>
! Franz Sirl                      sirl            <franz.sirl-kernel@lauterbach.com>
! Jan Sjodin                      jsjodin         <jan.sjodin@amd.com>
! Trevor Smigiel                  tsmigiel        <trevor_smigiel@playstation.sony.com>
! Edward Smith-Rowland            emsr            <esmithrowland@gmail.com>
! Anatoly Sokolov                 aesok           <aesok@dol.ru>
! Michael Sokolov                 -               <msokolov@ivan.Harhan.ORG>
! Jayant Sonar                    jayants         <rsonar.jayant@gmail.com>
! Fangrui Song                    -               <maskray@gcc.gnu.org>
! Richard Stallman                -               <rms@gnu.org>
! Basile Starynkevitch            bstarynk        <basile@starynkevitch.net>
! Jakub Staszak                   kuba            <kuba@et.pl>
! Graham Stott                    grahams         <graham.stott@btinternet.com>
! Andrew Stubbs                   ams             <ams@baylibre.com>
! Mike Stump                      mrs             <mikestump@comcast.net>
! Jeff Sturm                      jsturm          <jsturm@gcc.gnu.org>
! YunQiang Su                     syq             <syq@gcc.gnu.org>
! Robert Suchanek                 rts             <rsuchy84@gmail.com>
! Andrew Sutton                   asutton         <andrew.n.sutton@gmail.com>
! Gabriele Svelto                 gsvelto         <gabriele.svelto@st.com>
! Torbjörn Svensson               azoff           <torbjorn.svensson@foss.st.com>
! Toma Tabacu                     tomtab          <toma.tabacu@gmail.com>
! Omar Tahir                      -               <omar.tahir@arm.com>
! Sriraman Tallam                 tmsriram        <tmsriram@google.com>
! Chung-Lin Tang                  cltang          <cltang@baylibre.com>
! Samuel Tardieu                  sam             <sam@rfc1149.net>
! Ian Lance Taylor                ian             <ian@airs.com>
! Sam Tebbs                       samtebbs        <samuel.tebbs@gmail.com>
! Dinar Temirbulatov              dinar           <dtemirbulatov@gmail.com>
! Matt Thomas                     matt            <matt@3am-software.com>
! Paul Thomas                     pault           <pault@gcc.gnu.org>
! Philipp Thomas                  -               <pth@suse.de>
! Jason Thorpe                    thorpej         <thorpej@netbsd.org>
! Kresten Krab Thorup             -               <krab@gcc.gnu.org>
! Caroline Tice                   ctice           <cmtice@google.com>
! Kai Tietz                       ktietz          <ktietz70@googlemail.com>
! Kyrylo Tkachov                  ktkachov        <ktkachov@nvidia.com>
! Andreas Tobler                  andreast        <andreast@gcc.gnu.org>
! Ilya Tocar                      tocarip         <tocarip@gmail.com>
! Petter Tomner                   -               <tomner@bahnhof.se>
! Philipp Tomsich                 ptomsich        <philipp.tomsich@vrull.eu>
! Daniel Towner                   -               <dant@picochip.com>
! Konrad Trifunovic               trifunovic      <konrad.trifunovic@inria.fr>
! Markus Trippelsdorf             trippels        <markus@trippelsdorf.de>
! Sergei Trofimovich              slyfox          <slyfox@gcc.gnu.org>
! Tom Tromey                      tromey          <tromey@redhat.com>
! Igor Tsimbalist                 itsimbal        <igor.v.tsimbalist@intel.com>
! Martin Uecker                   uecker          <uecker@gcc.gnu.org>
! David Ung                       davidu          <davidu@mips.com>
! Neil Vachharajani               nvachhar        <nvachhar@gmail.com>
! Kris Van Hees                   -               <kris.van.hees@oracle.com>
! Joost VandeVondele              vondele         <joost.vandevondele@mat.ethz.ch>
! Andre Vehreschild               vehre           <vehre@gmx.de>
! Alex Velenko                    avelenko        <alex.velenko@arm.com>
! Ilya Verbin                     iverbin         <iverbin@gmail.com>
! Andre Vieira                    avieira         <andre.simoesdiasvieira@arm.com>
! Rasmus Villemoes                -               <rv@rasmusvillemoes.dk>
! Kugan Vivekanandarajah          kugan           <kvivekananda@nvidia.com>
! Marcel Vollweiler               -               <marcel@codesourcery.com>
! Ville Voutilainen               ville           <ville.voutilainen@gmail.com>
! Tom de Vries                    vries           <tdevries@suse.de>
! Nenad Vukicevic                 nenadv          <nenad@intrepid.com>
! Dmitry Vyukov                   dvyukov         <dvyukov@google.com>
! Waffl3x                         waffl3x         <waffl3x@baylibre.com>
! Jonathan Wakely                 redi            <jwakely@redhat.com>
! Krister Walfridsson             kristerw        <krister.walfridsson@gmail.com>
! Feng Wang                       -               <wangfeng@eswincomputing.com>
! Feng Wang                       fengwang        <fengwang@nudt.edu.cn>
! Hongyu Wang                     hongyuw         <hongyu.wang@intel.com>
! Jiong Wang                      jiwang          <jiong.wang@arm.com>
! Stephen M. Webb                 smw             <stephen.webb@bregmasoft.com>
! John Wehle                      -               <john@feith.com>
! Ulrich Weigand                  uweigand        <uweigand@de.ibm.com>
! Janus Weil                      janus           <janus@gcc.gnu.org>
! Florian Weimer                  fw              <fweimer@redhat.com>
! Zack Weinberg                   -               <zackw@panix.com>
! Alexander Westbrooks            alexanderw      <alexanderw@gcc.gnu.org>
! Mark Wielaard                   mark            <mark@gcc.gnu.org>
! Edmar Wienskoski                edmarwjr        <edmar@freescale.com>
! Ollie Wild                      -               <aaw@google.com>
! Ralf Wildenhues                 rwild           <Ralf.Wildenhues@gmx.de>
! Kevin Williams                  kwilliam        <kevin.williams@inria.fr>
! Jim Wilson                      wilson          <jim.wilson.gcc@gmail.com>
! Przemyslaw Wirkus               wirkus          <przemyslaw.wirkus@arm.com>
! Carlo Wood                      carlo           <carlo@alinoe.com>
! Jackson Woodruff                jcw             <jackson.woodruff@arm.com>
! Jonathan Wright                 -               <jonathan.wright@arm.com>
! Chung-Ju Wu                     jasonwucj       <jasonwucj@gmail.com>
! Le-Chun Wu                      lcwu            <lcwu@google.com>
! Ruoyao Xi                       xry111          <xry111@xry111.site>
! Mingjie Xing                    xmj             <mingjie.xing@gmail.com>
! Chenghua Xu                     paulhua         <paul.hua.gm@gmail.com>
! Li Xu                           -               <xuli1@eswincomputing.com>
! Feng Xue                        fxue            <fxue@os.amperecomputing.com>
! Canqun Yang                     canqun          <canqun@nudt.edu.cn>
! Fei Yang                        fyang           <felix.yang@huawei.com>
! Jeffrey Yasskin                 jyasskin        <jyasskin@google.com>
! Joey Ye                         jye2            <joey.ye@arm.com>
! Kwok Cheung Yeung               -               <kcyeung@baylibre.com>
! Jonathan Yong                   jyong           <10walls@gmail.com>
! Greta Yorsh                     gretay          <greta.yorsh@arm.com>
! Kirill Yukhin                   kyukhin         <kirill.yukhin@gmail.com>
! David Yuste                     dyuste          <david.yuste@gmail.com>
! Kenneth Zadeck                  zadeck          <zadeck@naturalbridge.com>
! Adhemerval Zanella              -               <azanella@linux.vnet.ibm.com>
! Xiao Zeng                       -               <zengxiao@eswincomputing.com>
! Dennis Zhang                    -               <dennis.zhang@arm.com>
! Jie Zhang                       jiez            <jzhang918@gmail.com>
! Yufeng Zhang                    yufeng          <yufeng.zhang@arm.com>
! Qing Zhao                       qinzhao         <qing.zhao@oracle.com>
! Shujing Zhao                    pzhao           <pearly.zhao@oracle.com>
! Pengxuan Zheng                  pzheng          <quic_pzheng@quicinc.com>
! Juzhe Zhong                     -               <juzhe.zhong@rivai.ai>
! Roman Zhuykov                   zhroma          <zhroma@ispras.ru>
! Jon Ziegler                     jonz            <jonz@apple.com>
! Roman Zippel                    zippel          <zippel@linux-m68k.org>
! Claudiu Zissulescu              claziss         <claziss@gmail.com>
! Josef Zlomek                    zlomek          <josef.zlomek@email.cz>
  
!                         Bug database only accounts
  
! James Dennett                                   <jdennett@acm.org>
! Christian Ehrhardt                              <ehrhardt@mathematik.uni-ulm.de>
! Dara Hazeghi                                    <dhazeghi@yahoo.com>
  
!                         Contributing under the DCO
  
  By adding your name and email to this section, you certify that all your
  subsequent contributions to GCC are made under the terms of the Developer's
*************** Certificate of Origin Version 1.1.  See
*** 760,789 ****
  information.
  
  
  Juergen Christ                                  <jchrist@linux.ibm.com>
! Robin Dapp					<rdapp.gcc@gmail.com>
! Robin Dapp					<rdapp@ventanamicro.com>
! Michal Jires					<mjires@suse.cz>
! Matthias Kretz					<m.kretz@gsi.de>
! Tim Lange					<mail@tim-lange.me>
! Jeff Law					<jeffreyalaw@gmail.com>
! Jeff Law					<jlaw@tachyum.com>
! Jeff Law					<jlaw@ventanamicro.com>
! Immad Mir					<mir@sourceware.org>
! Gaius Mulley					<gaiusmod2@gmail.com>
! Andrew Pinski					<quic_apinski@quicinc.com>
! Siddhesh Poyarekar				<siddhesh@gotplt.org>
! Navid Rahimi					<navidrahimi@microsoft.com>
! Rishi Raj						<rishiraj45035@gmail.com>
! Trevor Saunders					<tbsaunde+gcc@tbsaunde.org>
! Bill Schmidt					<bill.schmidt@fastmail.com>
! Nathaniel Shead					<nathanieloshead@gmail.org>
! Nathan Sidwell					<nathan@acm.org>
! Edward Smith-Rowland				<esmithrowland@gmail.com>
! Fangrui Song	                                <maskray@gcc.gnu.org>
! Kyrylo Tkachov					<ktkachov@gcc.gnu.org>
! Petter Tomner					<tomner@bahnhof.se>
! Martin Uecker					<uecker@gcc.gnu.org>
! Jonathan Wakely					<jwakely@redhat.com>
! Alexander Westbrooks			<alexanderw@gcc.gnu.org>
! Chung-Ju Wu					<jasonwucj@gmail.com>
--- 932,972 ----
  information.
  
  
+ Soumya AR                                       <soumyaa@nvidia.com>
  Juergen Christ                                  <jchrist@linux.ibm.com>
! Giuseppe D'Angelo                               <giuseppe.dangelo@kdab.com>
! Robin Dapp                                      <rdapp.gcc@gmail.com>
! Robin Dapp                                      <rdapp@ventanamicro.com>
! Aldy Hernandez                                  <aldy@quesejoda.com>
! Michal Jires                                    <mjires@suse.cz>
! Matthias Kretz                                  <m.kretz@gsi.de>
! Prathamesh Kulkarni                             <prathameshk@nvidia.com>
! Tim Lange                                       <mail@tim-lange.me>
! Jeff Law                                        <jeffreyalaw@gmail.com>
! Jeff Law                                        <jlaw@tachyum.com>
! Jeff Law                                        <jlaw@ventanamicro.com>
! H.J. Lu                                         <hjl.tools@gmail.com>
! Matthew Malcomson                               <mmalcomson@nvidia.com>
! Immad Mir                                       <mir@sourceware.org>
! Gaius Mulley                                    <gaiusmod2@gmail.com>
! Szabolcs Nagy                                   <nsz@gcc.gnu.org>
! Andrew Pinski                                   <quic_apinski@quicinc.com>
! Siddhesh Poyarekar                              <siddhesh@gotplt.org>
! Ramana Radhakrishnan                            <ramanara@nvidia.com>
! Navid Rahimi                                    <navidr@gcc.gnu.org>
! Rishi Raj                                       <rishiraj45035@gmail.com>
! Trevor Saunders                                 <tbsaunde+gcc@tbsaunde.org>
! Bill Schmidt                                    <bill.schmidt@fastmail.com>
! Jennifer Schmitz                                <jschmitz@nvidia.com>
! Nathaniel Shead                                 <nathanieloshead@gmail.org>
! Nathan Sidwell                                  <nathan@acm.org>
! Edward Smith-Rowland                            <esmithrowland@gmail.com>
! Fangrui Song                                    <maskray@gcc.gnu.org>
! Kyrylo Tkachov                                  <ktkachov@nvidia.com>
! Petter Tomner                                   <tomner@bahnhof.se>
! Martin Uecker                                   <uecker@gcc.gnu.org>
! Kugan Vivekanandarajah                          <kvivekananda@nvidia.com>
! Jonathan Wakely                                 <jwakely@redhat.com>
! Alexander Westbrooks                            <alexanderw@gcc.gnu.org>
! Chung-Ju Wu                                     <jasonwucj@gmail.com>
! Pengxuan Zheng                                  <quic_pzheng@quicinc.com>
diff -Nrcpad gcc-14.2.0/MD5SUMS gcc-15.1.0/MD5SUMS
*** gcc-14.2.0/MD5SUMS	Thu Aug  1 08:46:31 2024
--- gcc-15.1.0/MD5SUMS	Fri Apr 25 08:54:47 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14.2.0.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-15.1.0.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
***************
*** 8,61 ****
  # Suggested usage:
  # md5sum -c MD5SUMS | grep -v "OK$"
  #
! c234515d9056662b94af0653f8562888  .dir-locals.el
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
  b8acb527560fc760209d200fcfab8ff4  .github/PULL_REQUEST_TEMPLATE.md
! b5dd7aa122f477b65a3aa1a980ca55fb  .gitignore
  8c00452ef1e298846493ec8b239f93e2  ABOUT-NLS
  59530bdf33659b29e73d4adb9f9f6552  COPYING
  2d5025d4aa3495befef8f17206a5b0a1  COPYING.LIB
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! ddba67a2d70633fea1f055f0cddbd350  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 650686bb6beb059f5e57b947173082f7  INSTALL/binaries.html
! 6e9944a1862c2b801110ebd4ca766143  INSTALL/build.html
! 5a20d1c379df59b1ac8935094c1b49ba  INSTALL/configure.html
! f499d3f066e2d1bcebd3b75f740fcd90  INSTALL/download.html
! 94b0eab7fcae7533837effd2c162db80  INSTALL/finalinstall.html
! 7b9da5aae9658222aa54b436c5f9a9b2  INSTALL/gfdl.html
! 513e057446ca1541968d5e5041255916  INSTALL/index.html
! 8f19f75a9d521b32f49bc16ac36fdbb8  INSTALL/prerequisites.html
! 4667d0efa8fe5c0f701f752cc0abe34a  INSTALL/specific.html
! 441a8c39e67fdcf481ea4e7fc1035e10  INSTALL/test.html
! aca6f2c78f3cba23aecaa08d852725b4  LAST_UPDATED
! 1671040823f8eb8436a06fdd18065e02  MAINTAINERS
! 304c3887135aefa27c21292ec585b0a3  Makefile.def
! 8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
! 04e7c3cf75f7111c005a8c0dee7adc5c  Makefile.tpl
! 2e0471b94d35ed1e036dac8d20b77bbc  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
! 9379732cf9aa74b691cf12d440536a33  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 759eb5a6d537cc0f6bc79d10bac77a7c  c++tools/ChangeLog
! 754745d9d027da06b78c47e63f95fd12  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! 720de9f56ece10ad41506c5c0bbef155  c++tools/configure
! 72980da88609b8bd1fdfde2ef4068ea1  c++tools/configure.ac
! 9efa666885ee2be7507266db3b697450  c++tools/resolver.cc
! 3e0c57e4a01c27dae380ab89eceb2bbf  c++tools/resolver.h
! c1c818a7803853fba582eae0d29d974d  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
! 0a5df71d999a1a0135a99ab79fb42e4f  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! adf0db7a5e44dd066c6529a0cd8022ca  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
--- 8,63 ----
  # Suggested usage:
  # md5sum -c MD5SUMS | grep -v "OK$"
  #
! e8eeef33ef071516ce3f689e9c71e0b5  .b4-config
! fd78d02fa55fcdb78ddb2f37a7868dbb  .dir-locals.el
! b91d600742b62d1860809cb184055a3d  .forgejo/PULL_REQUEST_TEMPLATE.md
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
  b8acb527560fc760209d200fcfab8ff4  .github/PULL_REQUEST_TEMPLATE.md
! 2d0007f1121f1290ae240115684553d9  .gitignore
  8c00452ef1e298846493ec8b239f93e2  ABOUT-NLS
  59530bdf33659b29e73d4adb9f9f6552  COPYING
  2d5025d4aa3495befef8f17206a5b0a1  COPYING.LIB
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 8375ff90cdddca3fcb23984bb16384d9  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! fd405c846ccc551fd538f086351e8b4d  INSTALL/binaries.html
! 719619be025b3ff297c183d8050cce32  INSTALL/build.html
! 6bb3213d8aa01891cacd0257fc0029f5  INSTALL/configure.html
! 6510474cdb5326698a982992d20c0db1  INSTALL/download.html
! 19efac44f7f6d3cea6ad84b8f145c100  INSTALL/finalinstall.html
! b6b662508594a52af633f115030d93ee  INSTALL/gfdl.html
! 7f7e06836fa4160b29a32af99f826d78  INSTALL/index.html
! 1893d00902918eb6816dd6d32b2841e2  INSTALL/prerequisites.html
! 06f390532b4b096977785cdcbdffc04c  INSTALL/specific.html
! cc2d3449eee770d8cd6f01a13066750c  INSTALL/test.html
! ba9b4200867e82c49104707123ed676a  LAST_UPDATED
! 9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
! b714b83dd28679b75c5fd3e619d35956  Makefile.def
! 9d0808afc70085c5ca8d45062fc59689  Makefile.in
! 7c87bc1ac5389b3184deb34c599d184f  Makefile.tpl
! 890a19244a746d49d3f7262c1ba93fb3  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
! d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 315518c6fe7919681faf8833f9abcc3c  c++tools/ChangeLog
! 772c4970b4827d9e21c892d684ee204e  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! c37ea1a2f77642729239faeefeabadb1  c++tools/configure
! 3da1069979231f8050d8c9dc639a86bf  c++tools/configure.ac
! 56bc2449f31a006b2a31ad68bbe987dc  c++tools/resolver.cc
! 783e8c33837c14035420e0a42451815c  c++tools/resolver.h
! 82a107a3dba74c6c52cfe043ff6e9348  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
! 6bb93e76cc0b109441b59b82215a88ac  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! e9c59d4d5ac1ef99c83703a6f812ffe3  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
*************** babb6167c05386834412652e8b27239e  config
*** 77,82 ****
--- 79,85 ----
  9a194b56c06b616528d1e76306aa78e6  config/bootstrap-debug.mk
  584327e59bbe42cfcf0b041fed0f4526  config/bootstrap-hwasan.mk
  a3bca109766820001668b4d4f41057c6  config/bootstrap-lto-lean.mk
+ c848c13e0ea39451f067f8d1404d9982  config/bootstrap-lto-locality.mk
  33768879cdb11bf946d977ab6632d169  config/bootstrap-lto-noplugin.mk
  ece3bc716fac1aca84326d40b97a4b4b  config/bootstrap-lto.mk
  f466ea6022e6627a2e3d94bb0cc7eeb9  config/bootstrap-time.mk
*************** bd3775977b9abad709ebe3deee24c7ca  config
*** 132,138 ****
  1d7419534d43fda437ce0a4f0719ee5f  config/mt-mips-elfoabi
  8d6647b6e881a11ae46d9bcaeaa0bd0f  config/mt-mips-gnu
  e5f16579c830ccc42e238b49e8409e99  config/mt-mips16-compat
- 01e70ae9c362268b14876c621e650f3d  config/mt-nios2-elf
  c950e3234da1eb9ad5f29bc1c2d2ae74  config/mt-ospace
  612f740b46be9896cc7c4c14c03b5c4e  config/mt-sde
  9af153786999225732c95595da5ebd52  config/mt-spu
--- 135,140 ----
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 160,240 ****
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! eba7e6b872b1e4f0d926b2fd01a5494a  configure
! afe3388411dd3da22291f15b87d9534b  configure.ac
! 704d3bdf92b1a33dbff020999e364709  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
! d18372dbb38568c6e94b1a3262a35d5f  contrib/analyze_brprob.py
! 346825ee231c04045b8c709443798e7e  contrib/analyze_brprob_spec.py
! 671d30df5bf2efc82f1755ee632f2566  contrib/bench-stringop
! d676efe4b1852dfc96eed842f4f65188  contrib/check-MAINTAINERS.py
  14d637c1673ab29eb925fc542cf5955c  contrib/check-internal-format-escaping.py
! 9c8cd85690a951da2e7d9a7e39847fc2  contrib/check-params-in-docs.py
! f7574103d32793b58a35f1ce46202841  contrib/check_GNU_style.py
! 7a514da06a24e3575fba3eb35bf874e6  contrib/check_GNU_style.sh
! 76c1b63852254d20acfd49a27213dd5d  contrib/check_GNU_style_lib.py
! a055a9b0200d9adeaa16fe24a66cb7d4  contrib/check_makefile_deps.sh
! 22f50f71c7d9da7a8cfa8f988392a949  contrib/check_warning_flags.sh
! b77abdb7223e7b1a81c9e27a4d6beffc  contrib/clang-format
! 4f8124ba6fc3f349e7982a71badb812d  contrib/compare-all-tests
! 7a77c3eaedda552e7da7574b0db534cc  contrib/compare-debug
! b6b6f9ea56349ec3e406e245a92f1425  contrib/compare-lto
! 648dd8f20ff837deacfb6a3fdcb784ad  contrib/compareSumTests3
  fc5d12bb94b4667b18df90dda451f776  contrib/compare_tests
! c30bd31956a2d8c50cdf72ff2a1bb369  contrib/compare_two_ftime_report_sets
! 8520d47ad848942cd3e8565705dcc99c  contrib/config-list.mk
! 6e3fc2a628bac9c0b2f3049583c3e106  contrib/dg-cmp-results.sh
! cbf2a4e5a4aaef288c1c65513bfc56bd  contrib/dg-extract-results.py
! f17b9bd5e6023726b04cb908e34155d7  contrib/dg-extract-results.sh
! 0ba0d6aa322decc4f336b7a57ebb0080  contrib/dg-out-generator.pl
! fd28bc6d1830dfda941f2388cae06345  contrib/dglib.pm
! 068c5ed65ed58d963681ed1342e8a823  contrib/download_prerequisites
! 891c58f484e1fa93e58b6ebbdda826b8  contrib/filter-clang-warnings.py
  332fd0835826d637b5b6cf8db14358a5  contrib/filter_gcc_for_doxygen
  db03e57377f9eb202b7b783eb81fe40d  contrib/filter_knr2ansi.pl
  d577ea19d05f19a8364f73c9901223b7  contrib/filter_params.py
! 7da4e25ba1bb553b4302b8d64af15fda  contrib/gcc-changelog/git_check_commit.py
! 9062913257054d9add4c3efa90436780  contrib/gcc-changelog/git_commit.py
! bb86d477e77df1bd6f10ef0e82161e61  contrib/gcc-changelog/git_email.py
! 9678001f8ddc77930c22a434868793f4  contrib/gcc-changelog/git_repository.py
! f6a74f810dc8d58c86a5492bc531a0a6  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
! 2797e6013e6326f2bf9aba63bf02ee8b  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
! 3427bfbcc03306d042726c2ff8a1215d  contrib/gcc-git-customization.sh
  5c76e763f702a9ff0203a12551e348d0  contrib/gcc.doxy
! 8476106e93020bdc9cd6173c00346731  contrib/gcc_build
! 82442fc6741ee2beff3a151b0f05b0cc  contrib/gcc_update
! 35600e627b7bcc10ab0c0bf0d443cb36  contrib/gen_autofdo_event.py
! 208bea31922ba9eb04c6ca1bc4fed3ba  contrib/gennews
  25491ab6a5a68d252f311f5a9c6f4c8f  contrib/git-add-user-branch.sh
  7e5729822d673e846d5ef26e1f1b8591  contrib/git-add-vendor-branch.sh
! 640df94821370581fbacd52eb2a83e59  contrib/git-backport.py
! cf6245464c26132b6548e87147886268  contrib/git-commit-mklog.py
  89713b3aaf65e7ae575e6fe0c0c2adf1  contrib/git-descr.sh
  464e86ccd2b5dee7df40905d86e0be06  contrib/git-fetch-vendor.sh
! 44bbc076f52d8af4c7b1eb08dd5375a4  contrib/git-fix-changelog.py
  5d80e88da5ae83c53513280bcff7c0a1  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! 5de0256dc43b3c3643e2ae8c431052ef  contrib/header-tools/ChangeLog
! 72d70766ec87033813e1378c5697fa87  contrib/header-tools/README
! 05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
! ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
! 220c792fabd90ddca7181ec2b630861f  contrib/header-tools/graph-header-logs
! 975fd0063dccc62255cc64bee460b436  contrib/header-tools/graph-include-web
! b8bfe6ffdd32bd23730587a7aab605b7  contrib/header-tools/headerutils.py
! 58d81110244f05cbdd18dc06316c6519  contrib/header-tools/included-by
! 30133617cb9cb10a2244fbc78c16188b  contrib/header-tools/reduce-headers
! 4997716611d1c3a1dc693e016178cb5d  contrib/header-tools/replace-header
! 7f9fd87ecac948bc070878c70d4f96ce  contrib/header-tools/show-headers
  fa945bac89ee68b410027dcfe1312f4b  contrib/index-prop
! 724a3d58353ad9f6ee8d681871624132  contrib/jit-coverage-report.py
! abd9e34c3552e2241797d3ee4e6d01b3  contrib/legacy/mklog
! 32603c1823660a08611cc2be4fee83e9  contrib/legacy/mklog.pl
  43e3d77ae19b5c6304d6d6846792c173  contrib/make-obstacks-texi.pl
! 51a10ab0d8cd98dded991335a36a61f2  contrib/make_sunver.pl
! b70475d757e276311316ab757d9b3141  contrib/mark_spam.py
  3750caf71c3971f691d15bd3976fc335  contrib/mdcompact/mdcompact-testsuite.el
  2f4682b551593328cd7f8431c1fe497f  contrib/mdcompact/mdcompact.el
  4e0b2ff9279c39804751de6012b9b570  contrib/mdcompact/tests/1.md
--- 162,246 ----
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! 03e84607a1c4478aa65bd53937ed3aea  configure
! a10daf98a334165ec89e62510a1eb0a0  configure.ac
! bb9397cdf3432c97480a4f9e5ababde1  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
! 13605e5ba7b533ecbe3a902b8ebe4079  contrib/analyze_brprob.py
! 86973404e97154e9bd222f7dbfc020e9  contrib/analyze_brprob_spec.py
! 747393d9a58bfa8ee0d2ff474964373b  contrib/bench-stringop
! 204ea6578c424cacd170f7f25cb2917b  contrib/check-MAINTAINERS.py
  14d637c1673ab29eb925fc542cf5955c  contrib/check-internal-format-escaping.py
! 2dcd6c7659cd1198ff7c8da4423dc0dd  contrib/check-params-in-docs.py
! 6b9a7ea20f07df4c70a3c38a7478891a  contrib/check_GNU_style.py
! fa1c4b0172be6c080411619977750edb  contrib/check_GNU_style.sh
! 7d718b91ddde111d30905c2a063bc5b5  contrib/check_GNU_style_lib.py
! 90007bd4812c8bc365b6f0004e86d465  contrib/check_makefile_deps.sh
! 4b4bfb3a8be5ddeae3515ff55c6c1618  contrib/check_warning_flags.sh
! ffab271b81488026969b58ab7dca818a  contrib/clang-format
! b24307ade4ab54c9ef8b4b0739084998  contrib/compare-all-tests
! b4b9188e090097e5889401ebf2b3fc04  contrib/compare-debug
! 510ac61e91e8dd9a7158daacc2d15f81  contrib/compare-lto
! 51679964e74224734e766c8bb5a5d497  contrib/compareSumTests3
  fc5d12bb94b4667b18df90dda451f776  contrib/compare_tests
! 4688ffec8f146aa47298dec84f2cb5cf  contrib/compare_two_ftime_report_sets
! c485b162b84ddd20653d68e483b14f6f  contrib/config-list.mk
! d575264f7a1cdc4afba872bdd7d2e2dd  contrib/dg-cmp-results.sh
! a7bf75440b2b5e23832d4709be97a378  contrib/dg-extract-results.py
! 20da46ad6b1a4d8406632a892673e202  contrib/dg-extract-results.sh
! f0c0df1ce77eb76338f0ef3330293536  contrib/dg-lint/dg-lint
! 82cc672ab1d10c6b0023399b6b0808ba  contrib/dg-lint/libgdiagnostics.py
! c3217001bd26d7357f97d76467773e6d  contrib/dg-lint/test-1.c
! 3676f3483293ec7cf746b0728e85eb3f  contrib/dg-lint/test-2.c
! 5366c5961ca00049e66387009ac4311e  contrib/dg-out-generator.pl
! 8d11d67047d66e5a932dfc9ff91893fa  contrib/dglib.pm
! 5bda781277a8bf1ae8288d346a92cece  contrib/download_prerequisites
! abb4adeec48b5e472bc4fc459600de76  contrib/filter-clang-warnings.py
  332fd0835826d637b5b6cf8db14358a5  contrib/filter_gcc_for_doxygen
  db03e57377f9eb202b7b783eb81fe40d  contrib/filter_knr2ansi.pl
  d577ea19d05f19a8364f73c9901223b7  contrib/filter_params.py
! 1f09615feb91c049cbf46b27ea159c58  contrib/gcc-changelog/git_check_commit.py
! 1c82c39ec07b95e02c998d4285dac60c  contrib/gcc-changelog/git_commit.py
! 6a772ce384751a560f60790681e6fc41  contrib/gcc-changelog/git_email.py
! 039963086e96c2e9fdf8ae5643394a9c  contrib/gcc-changelog/git_repository.py
! dc2794d8add22497f9d729b995f5ef44  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
! 983cf4f7b54ddd2b8962dda15b74d10a  contrib/gcc-git-customization.sh
  5c76e763f702a9ff0203a12551e348d0  contrib/gcc.doxy
! e1a3ba387b3d9bff3516856146cea62d  contrib/gcc_build
! a80a0165b2b8f366a31514e30720bd21  contrib/gcc_update
! 9a64b2964d8a4cc8e2c87ef77c440071  contrib/gen_autofdo_event.py
! 067195076559951eff74b6655837f09f  contrib/gennews
  25491ab6a5a68d252f311f5a9c6f4c8f  contrib/git-add-user-branch.sh
  7e5729822d673e846d5ef26e1f1b8591  contrib/git-add-vendor-branch.sh
! f87a91c941a8aaa300ac60c24979992b  contrib/git-backport.py
! 567d0a5c0c65e90ccfe770dd0308016e  contrib/git-commit-mklog.py
  89713b3aaf65e7ae575e6fe0c0c2adf1  contrib/git-descr.sh
  464e86ccd2b5dee7df40905d86e0be06  contrib/git-fetch-vendor.sh
! 587c829d88826fb8a7d70b7b8aa47a6c  contrib/git-fix-changelog.py
  5d80e88da5ae83c53513280bcff7c0a1  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! 5960586a45ba90cd32e362d2db8bdb54  contrib/header-tools/ChangeLog
! 20f6fa0b5366976230b0538c5b0ae603  contrib/header-tools/README
! a674173d7f8b0f6c7c6cdb9f58e756f3  contrib/header-tools/count-headers
! 8154e483c08f8955698d4e40aa8808ca  contrib/header-tools/gcc-order-headers
! 149a6586fcb7976c5dca39dad0b5d505  contrib/header-tools/graph-header-logs
! 74cd56e691112ff5e19f79030109870b  contrib/header-tools/graph-include-web
! e88d725d3c542201ef5bbe69a031f23e  contrib/header-tools/headerutils.py
! 914b14bd3bb34ff012dcfb60e87b4fd1  contrib/header-tools/included-by
! 1bd5f91c210fd27c2c935f894dfb2698  contrib/header-tools/reduce-headers
! 657d915a87e63e6ded4abbfc7dc32e6f  contrib/header-tools/replace-header
! 6fdf5f561e5f47fb4e70555080869a4e  contrib/header-tools/show-headers
  fa945bac89ee68b410027dcfe1312f4b  contrib/index-prop
! 1dcb81a5c1aa86f52abbd2a21ef5e2ee  contrib/jit-coverage-report.py
! d000cfb483b76d32480107e17380a83a  contrib/legacy/mklog
! cc9b80999f11fa767bff49f1bfec96f8  contrib/legacy/mklog.pl
  43e3d77ae19b5c6304d6d6846792c173  contrib/make-obstacks-texi.pl
! 324958a5ef127a00285c222fa5a25dfe  contrib/make_sunver.pl
! c0cf9fff8c4992dc99634649538d7e14  contrib/mark_spam.py
  3750caf71c3971f691d15bd3976fc335  contrib/mdcompact/mdcompact-testsuite.el
  2f4682b551593328cd7f8431c1fe497f  contrib/mdcompact/mdcompact.el
  4e0b2ff9279c39804751de6012b9b570  contrib/mdcompact/tests/1.md
*************** ef13953e64bd4e093d01aad4a9309c10  contri
*** 251,289 ****
  ef13953e64bd4e093d01aad4a9309c10  contrib/mdcompact/tests/6.md.out
  e4c7c4ac31575610ebd46840cc5d9ac6  contrib/mdcompact/tests/7.md
  bda0e2d8e6960465c7778fe3856cdacc  contrib/mdcompact/tests/7.md.out
! 3a80832f74bf7425748afe44a97fe3c5  contrib/mklog.py
  9bb8c12fc069b7624268da15bd911667  contrib/paranoia.cc
! dbfe7cf00dca8ee18891904128e30197  contrib/patch_tester.sh
! d5890495d38471958819f7ea2d90456b  contrib/prepare-commit-msg
! 5e5c3cf7689ee8774db226fbf3e91064  contrib/prepare_patch.sh
  2809fb88a72709fdece476dcdcb841a4  contrib/prerequisites.md5
  17fac6b39df387ffce2f399bf24a4193  contrib/prerequisites.sha512
! 5fe16cc570c5e3f7135402ef82775abe  contrib/reghunt/ChangeLog
! c38a4226b3d372b76f3108df8248f962  contrib/reghunt/bin/gcc-build-full
! eefa9babb239300ac518b7cff0ede7c7  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
  7e5943aa7b912e06cdb5766905e96eb7  contrib/reghunt/bin/gcc-svn-checkfail
  cd504499b51d378df198fc1c96fed2d9  contrib/reghunt/bin/gcc-svn-ids
! ee0ba5a5ecdc7dfdbf268165cc808a10  contrib/reghunt/bin/gcc-svn-patchlist
  3e86e81ae296e0660fe17fbd507ab006  contrib/reghunt/bin/gcc-svn-recordfail
  7e9c7f64150f74c86a1bfa6bc5823252  contrib/reghunt/bin/gcc-svn-report
! 4890088c0095054b0f96d9dde258ddfe  contrib/reghunt/bin/gcc-svn-update
  50dc103e0edd95d6cde45a9ca782c79a  contrib/reghunt/bin/gcc-svn-update-fix
! 9e38d66dd9b8ebb0c771604553baf889  contrib/reghunt/bin/gcc-test-accepts-invalid
! e29d2905a743063def060066f9481cc4  contrib/reghunt/bin/gcc-test-bogus-warning
! 4f70a81ca32edb1a1721b3241c8a45c4  contrib/reghunt/bin/gcc-test-compiler-hangs
! b0a124da9d2c325f88bf85850c4fd8d4  contrib/reghunt/bin/gcc-test-ice-on-invalid-code
! c3f22aa52cb451a6bce3ebb4e7c609e9  contrib/reghunt/bin/gcc-test-ice-on-valid-code
! 75ad8f60d807fdc026ce30e66a54ed0e  contrib/reghunt/bin/gcc-test-missing-warning
! 51aea00426f9a65de1b8f4dfbb15edff  contrib/reghunt/bin/gcc-test-rejects-valid
! 15589bea14d2029d25205c2695d6f485  contrib/reghunt/bin/gcc-test-segfault-on-valid-code
! 2ca0d0139fc045efa25569277a5fca9e  contrib/reghunt/bin/gcc-test-wrong-code
! c1d9f3622ad12329856b14728cb4d497  contrib/reghunt/bin/reg-hunt
! b1c56a84006e77edad1fb3fe429935e5  contrib/reghunt/bin/reg-newmid
! 94fef7b281eb2e327a2ca5189e9d7b3e  contrib/reghunt/bin/reg-test
  ab31219466ac7df2a1aa15900540bc8a  contrib/reghunt/date_based/README
! 12daec13f0c02b6e9d4cb8cb03652d33  contrib/reghunt/date_based/reg_periodic
! ca231bc9bf9d2217b1ed2c9cc36e4e60  contrib/reghunt/date_based/reg_search
  d3dd0bcec99c2e140b86efb5f63860b4  contrib/reghunt/date_based/reg_test_template
  dacbecec8b04ec121d7f0ae90e0c02e6  contrib/reghunt/examples/28970.c
  54297bd9eb1c9406472def597bbcd0e6  contrib/reghunt/examples/28970.config
--- 257,296 ----
  ef13953e64bd4e093d01aad4a9309c10  contrib/mdcompact/tests/6.md.out
  e4c7c4ac31575610ebd46840cc5d9ac6  contrib/mdcompact/tests/7.md
  bda0e2d8e6960465c7778fe3856cdacc  contrib/mdcompact/tests/7.md.out
! 1ccd71d7893e370e4b3d008255da6087  contrib/mklog.py
  9bb8c12fc069b7624268da15bd911667  contrib/paranoia.cc
! 56f5ae231f8677575e2be3afe11f0bf3  contrib/patch_tester.sh
! 26ca88683b396ae6e8989515fd8a244e  contrib/prepare-commit-msg
! 54a8a1946d9e81a805292deef2e16064  contrib/prepare_patch.sh
  2809fb88a72709fdece476dcdcb841a4  contrib/prerequisites.md5
  17fac6b39df387ffce2f399bf24a4193  contrib/prerequisites.sha512
! f6d7aacca35d091b5c304edef3e4472f  contrib/regenerate-sarif-spec-index.py
! b71a1fe0ab0f6758656bc29595baec62  contrib/reghunt/ChangeLog
! 2f6b6802701c14f9274e2103987932d6  contrib/reghunt/bin/gcc-build-full
! 371554c47a7769f6e4971984f84c5455  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
  7e5943aa7b912e06cdb5766905e96eb7  contrib/reghunt/bin/gcc-svn-checkfail
  cd504499b51d378df198fc1c96fed2d9  contrib/reghunt/bin/gcc-svn-ids
! 1d2f188b35faf801070b6bb647e6fd00  contrib/reghunt/bin/gcc-svn-patchlist
  3e86e81ae296e0660fe17fbd507ab006  contrib/reghunt/bin/gcc-svn-recordfail
  7e9c7f64150f74c86a1bfa6bc5823252  contrib/reghunt/bin/gcc-svn-report
! 48f5aa801deafc880811f8c038fe99f6  contrib/reghunt/bin/gcc-svn-update
  50dc103e0edd95d6cde45a9ca782c79a  contrib/reghunt/bin/gcc-svn-update-fix
! fd82e791f829152957a7a375cb750d69  contrib/reghunt/bin/gcc-test-accepts-invalid
! d51c6989a5ed7d869309acf91262abda  contrib/reghunt/bin/gcc-test-bogus-warning
! 9d8a0893ba77a1d8a966e9abfd5c5896  contrib/reghunt/bin/gcc-test-compiler-hangs
! 33d5b5bf19bb418fe5f46f6f19e33ba6  contrib/reghunt/bin/gcc-test-ice-on-invalid-code
! 78e38ec276420849d863d03d187ba758  contrib/reghunt/bin/gcc-test-ice-on-valid-code
! 311e1b102ee2ac4539dcce772ca57bee  contrib/reghunt/bin/gcc-test-missing-warning
! 576c0784ca588f84bd55d2e82d8b77f3  contrib/reghunt/bin/gcc-test-rejects-valid
! 748df9354af4d13a8827883be0989c66  contrib/reghunt/bin/gcc-test-segfault-on-valid-code
! c873cb402987cec554424ec42b5e7d69  contrib/reghunt/bin/gcc-test-wrong-code
! 460d9f631507fa4dbca45375693b64ac  contrib/reghunt/bin/reg-hunt
! 946b6b16c3ddc277f17d3e565c0aee04  contrib/reghunt/bin/reg-newmid
! b16033c857ff777fd53519d0a0195d76  contrib/reghunt/bin/reg-test
  ab31219466ac7df2a1aa15900540bc8a  contrib/reghunt/date_based/README
! e28f9e98a63074375007936cdc6e7ca0  contrib/reghunt/date_based/reg_periodic
! 3d4735d6152b5a3ceb8f901a4289277d  contrib/reghunt/date_based/reg_search
  d3dd0bcec99c2e140b86efb5f63860b4  contrib/reghunt/date_based/reg_test_template
  dacbecec8b04ec121d7f0ae90e0c02e6  contrib/reghunt/examples/28970.c
  54297bd9eb1c9406472def597bbcd0e6  contrib/reghunt/examples/28970.config
*************** f251d49dd87647250fcd74dd50b7835f  contri
*** 317,373 ****
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! a4982fad931c1999f66de2c9a225b34e  contrib/regression/ChangeLog
  30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
  ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
  777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
  82c9f16421ce2f6efe0ad68151c792a5  contrib/regression/GCC_Regression_Tester.wdgt/de.lproj/InfoPlist.strings
  b017a8530c74c1d79f3b4436169ae9b0  contrib/regression/GCC_Regression_Tester.wdgt/en.lproj/InfoPlist.strings
  3fd4bca42f39c06eff4024376b935265  contrib/regression/GCC_Regression_Tester.wdgt/ja.lproj/InfoPlist.strings
! 3f10135a7836b6bab760c77b884347cc  contrib/regression/GCC_Regression_Tester.wdgt/widget.html
  1e4aedcd2db5dd845a6c778f4ba73b9b  contrib/regression/README
! a6ede3981b504b8b860bc18ae7d42040  contrib/regression/btest-gcc.sh
! 3f62c0d466e0d6560d714e1c51ceb296  contrib/regression/mkindex.pl
! 1bb7458b08f5725e1604f852639fd133  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
  5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
! 19cbdce176a2d448e82dd6c4bd282fae  contrib/test_installed
! 8d6fa639c436b34b63c51bc8020d22c1  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
! 21c26e3ba0bac3540dd6d8954d9dc54e  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
! 0af113ba0e82cc91a10b40011b2eb6eb  contrib/texi2pod.pl
! 265e3427cf2ea76209ca3c861f679ac1  contrib/unicode/DerivedCoreProperties.txt
! cd4c6e7b74b97f4d48ce19916c0d5481  contrib/unicode/DerivedNormalizationProps.txt
! 9fe46fd901e8ae19bdecdbbffca30cdd  contrib/unicode/EastAsianWidth.txt
! 3f0ddaa5693380ea627bfdf0e5c56085  contrib/unicode/GraphemeBreakProperty.txt
! fd2a622f939eeb7bf13341815fd47e19  contrib/unicode/NameAliases.txt
! 23f7d59fe7f04e06fe7dc322d5a4d4bd  contrib/unicode/PropList.txt
! 86fa0ee7a5828a6264bbcf0e00c25b95  contrib/unicode/README
! c94d3d92f1c66e50f750fe84b8055939  contrib/unicode/UnicodeData.txt
! 3ae64df6ebbce8f67ff8730e8cc1e800  contrib/unicode/emoji-data.txt
! a99d204f86250c10e7f692f05d277640  contrib/unicode/from_glibc/unicode_utils.py
! 8047ab496166867f38057d53207dfb07  contrib/unicode/from_glibc/utf8_gen.py
  b43dc8f19341ef09bf927ea0485d2f1a  contrib/unicode/gen-box-drawing-chars.py
  9f1d172363dc56ad17938788adaf02b1  contrib/unicode/gen-combining-chars.py
  bfd0156a35f146cd1fd12934ede7764f  contrib/unicode/gen-printable-chars.py
! bd6a2a1ceecf86b688a1832522e5ce53  contrib/unicode/gen_libstdcxx_unicode_data.py
  8ec0eeb5656a711cd81ffedbb2b98f54  contrib/unicode/gen_wcwidth.py
  8b5fa928c1da8636733a0a76a2da5bc8  contrib/unicode/unicode-license.txt
  93fd39f4c6ff7bf4e5f9e035b65e6e1a  contrib/unicode/utf8-dump.py
  13955dc4ee3f74718a3869155e474db6  contrib/uninclude
! 3dfb7aa9d706ab13dcf998317358e3e9  contrib/unused_functions.py
! 33dbde8d12cd752afb9043716338bddb  contrib/update-copyright.py
  e96e470317bafce43e11f5d3dc027f1c  contrib/vim-gcc-dev/README
! c3dafec11f570f31b4bb1d5158f5a224  contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
! 1232c3e9ce3fb723bacf7828b06cee0c  contrib/vim-gcc-dev/syntax/gcc-match.vim
! 1c9fc4b3d3f44ba667aff50f9b6c0d9c  contrib/vim-gcc-dev/syntax/gcc-rtl.vim
! daaf19e8b17e0a90bee0d82fc8e856c7  contrib/vim-gcc-dev/syntax/gimple.vim
! d0d170da8f721b0a129a75ff9e4e7c8e  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 1c629bdc3bad2edceda87f530786bc52  fixincludes/ChangeLog
  4afe55f959b7cceb7055ff11a9ca0e32  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
--- 324,382 ----
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 112777ac3f65c768701d16b591f23a6c  contrib/regression/ChangeLog
  30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
  ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
  777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
  82c9f16421ce2f6efe0ad68151c792a5  contrib/regression/GCC_Regression_Tester.wdgt/de.lproj/InfoPlist.strings
  b017a8530c74c1d79f3b4436169ae9b0  contrib/regression/GCC_Regression_Tester.wdgt/en.lproj/InfoPlist.strings
  3fd4bca42f39c06eff4024376b935265  contrib/regression/GCC_Regression_Tester.wdgt/ja.lproj/InfoPlist.strings
! 03b68b8ea491d60cbd8ffbd9ea5804ad  contrib/regression/GCC_Regression_Tester.wdgt/widget.html
  1e4aedcd2db5dd845a6c778f4ba73b9b  contrib/regression/README
! 4975a73f4e43cbbfde4113171937beff  contrib/regression/btest-gcc.sh
! 2b98eaace8d24d220c48e7e08826ac42  contrib/regression/mkindex.pl
! 580b6fd7777bf5881a4be9224da2111c  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
+ 0ef1f0f3b8112a12de68f806daf96994  contrib/relpath.sh
  5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
! 5510b9bfcbc746c19c3b2216673da4be  contrib/test_installed
! b60f03a88bd6e5db8ea8361daec256ea  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
! 87fcfdb59ae57b06f61e09e0a513c167  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
! aa32284dbf2dcc9b8d3c233a2a65abc6  contrib/texi2pod.pl
! eac23f9bee857d182ab0d136d225706e  contrib/unicode/DerivedCoreProperties.txt
! 214898dac93f90905c430a09586110ec  contrib/unicode/DerivedGeneralCategory.txt
! 06822305e97615acd40d469d78e58f65  contrib/unicode/DerivedNormalizationProps.txt
! 1035555d8fd32cf8aa48be82e36e42eb  contrib/unicode/EastAsianWidth.txt
! d11a38389c7aa257fb69e565755fe8b9  contrib/unicode/GraphemeBreakProperty.txt
! 0de636d2a6f900f8dfe65cdacc63d59d  contrib/unicode/NameAliases.txt
! af5c8b11b355082a8e512347c38ca4c2  contrib/unicode/PropList.txt
! 9eff13ea98583968fe5449deaad62581  contrib/unicode/README
! f50a0495d2000b7d6dd979cb40e00ba2  contrib/unicode/UnicodeData.txt
! fbeb79b148f8bf9497eb081e3258b4e1  contrib/unicode/emoji-data.txt
! b4f537d24c07acacf99a562dec9c3844  contrib/unicode/from_glibc/unicode_utils.py
! d85bf7c26cbc82a590e488ae41605403  contrib/unicode/from_glibc/utf8_gen.py
  b43dc8f19341ef09bf927ea0485d2f1a  contrib/unicode/gen-box-drawing-chars.py
  9f1d172363dc56ad17938788adaf02b1  contrib/unicode/gen-combining-chars.py
  bfd0156a35f146cd1fd12934ede7764f  contrib/unicode/gen-printable-chars.py
! 19b21b896feb739e5f10476a415eb677  contrib/unicode/gen_libstdcxx_unicode_data.py
  8ec0eeb5656a711cd81ffedbb2b98f54  contrib/unicode/gen_wcwidth.py
  8b5fa928c1da8636733a0a76a2da5bc8  contrib/unicode/unicode-license.txt
  93fd39f4c6ff7bf4e5f9e035b65e6e1a  contrib/unicode/utf8-dump.py
  13955dc4ee3f74718a3869155e474db6  contrib/uninclude
! e13ec08819ec612c7a7ed247d6b5adae  contrib/unused_functions.py
! d6d69185e109949b99399c890206a835  contrib/update-copyright.py
  e96e470317bafce43e11f5d3dc027f1c  contrib/vim-gcc-dev/README
! ca6e3c3fd72ccd91b8ab25e9555f6b42  contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
! f068aafb849bb6af444e7442e70106d7  contrib/vim-gcc-dev/syntax/gcc-match.vim
! 79bd0b30e0e33657c1643fa28b2d0e9d  contrib/vim-gcc-dev/syntax/gcc-rtl.vim
! 0e8d959ad888e8b3579192203b32f6e0  contrib/vim-gcc-dev/syntax/gimple.vim
! 9f709ddf34273ffe202ff79517103dbe  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! fb6064a7fd5431d130f354d05d549a15  fixincludes/ChangeLog
  4afe55f959b7cceb7055ff11a9ca0e32  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
*************** b6ffc204128adbd2c41ac0cb4ce98dc7  fixinc
*** 380,393 ****
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 17e251630d3b32193d301ccac107f85c  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 9a22071077df0449fb7b7a1a2a1d3680  fixincludes/inclhack.def
! dd5ae70d9f725bcaf2a15212782db49a  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
  108a55e8b4bb6f853a21951bc0e9cbde  fixincludes/server.c
--- 389,402 ----
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! b735426413a7cd6dfc49a14edea7ed15  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 86c10da334bb7b92f399ff0157e281e6  fixincludes/inclhack.def
! d820d7184883bda7dd809406f0626d8e  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
  108a55e8b4bb6f853a21951bc0e9cbde  fixincludes/server.c
*************** e1bd28539aceeab13a3028da02f8c4ae  fixinc
*** 437,443 ****
  8ac97a3367b9a99503c5b21430993cd4  fixincludes/tests/base/mach-o/dyld.h
  dbbbc9ead412bbd125f56bc509994066  fixincludes/tests/base/mach-o/swap.h
  c48dea510c587eea0b229def965ef77a  fixincludes/tests/base/malloc.h
! 8caa56e587a1d6f487453f3250c80db8  fixincludes/tests/base/math.h
  d2cbc665e9046f8acb42c1271592be47  fixincludes/tests/base/net/if.h
  98099ff70c675f84c19b58da050f3712  fixincludes/tests/base/net/if_arp.h
  a911f5fbb127353024e77149fcf90596  fixincludes/tests/base/netdnet/dnetdb.h
--- 446,452 ----
  8ac97a3367b9a99503c5b21430993cd4  fixincludes/tests/base/mach-o/dyld.h
  dbbbc9ead412bbd125f56bc509994066  fixincludes/tests/base/mach-o/swap.h
  c48dea510c587eea0b229def965ef77a  fixincludes/tests/base/malloc.h
! ad5c4eac9b5af72ea9c53f3985eb391b  fixincludes/tests/base/math.h
  d2cbc665e9046f8acb42c1271592be47  fixincludes/tests/base/net/if.h
  98099ff70c675f84c19b58da050f3712  fixincludes/tests/base/net/if_arp.h
  a911f5fbb127353024e77149fcf90596  fixincludes/tests/base/netdnet/dnetdb.h
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 510,537 ****
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! baf9b6e2583cff7f3b9de94370dd739e  gcc/ABOUT-GCC-NLS
! 8f4fae146c859853fccafc9af1395726  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! ec67cd6f4d0c2ac3f10568e6b87a8dd9  gcc/ChangeLog
! a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
! d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
! 240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
! 3108f65247b59c9bfd90bd9b36ca93f9  gcc/ChangeLog-2000
! 640c7e28d62363763d1d7675293b7bd1  gcc/ChangeLog-2001
! 602566db2ed4cb01261c30c31f7ee522  gcc/ChangeLog-2002
! 57273340979455283f700dcf459b9a07  gcc/ChangeLog-2003
! eefc3caf39d5417739cb59fc3cc3caf3  gcc/ChangeLog-2004
! 6f5f181154402227464a197b7606f39b  gcc/ChangeLog-2005
! 6137b4ee1a5b6bd74a954e88fc7d503d  gcc/ChangeLog-2006
! 6a15d0efca81983c32baeb449c1f3c01  gcc/ChangeLog-2007
! 1f05dea7208a23f775e66600a57f6b7a  gcc/ChangeLog-2008
! c0210eb463488fb4618d01ec48511b8f  gcc/ChangeLog-2009
! 668998d2e7c50bea65861edbf30091d9  gcc/ChangeLog-2010
! d7a0cc3a75b4ef74f9dd2d3ce074b192  gcc/ChangeLog-2011
  e0b37ac47f082beb219cbc022f0f4ce3  gcc/ChangeLog-2012
  2603591aacf055db366ca80edd2ba6c9  gcc/ChangeLog-2013
  db5115f7e54850a9706e0354d5ae08d4  gcc/ChangeLog-2014
--- 519,546 ----
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! 97329340dfb48ed4683fdb7d3f2f9014  gcc/ABOUT-GCC-NLS
! e77dc171552a84b6f96ce4c3a057d36c  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 78f92e6d52966597e42a16ecf046d7c2  gcc/ChangeLog
! 51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
! f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
! 00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
! 3ff9abc6e7b99a6dc7929070674d32dd  gcc/ChangeLog-2000
! a67c6942381d916548b4a358f6cf08cb  gcc/ChangeLog-2001
! f07d2a48c194ea98d871cd1b5478555e  gcc/ChangeLog-2002
! d06b9048bcfcccd37352e1380381ad08  gcc/ChangeLog-2003
! f5749e2dddce3f1c2f256958052aa57b  gcc/ChangeLog-2004
! 4e8d95ba71db5989cb82cb660bd66c8a  gcc/ChangeLog-2005
! b327b113c82b9e6577b2809e9460d8fc  gcc/ChangeLog-2006
! adb62437af848141594d5a469ce7a01e  gcc/ChangeLog-2007
! acafb353b2f723fd43b6f2491b6f9a60  gcc/ChangeLog-2008
! c01cf28df1b99f4717153bbc96a3b259  gcc/ChangeLog-2009
! 04d52a57ed64a4d789e7b7a49a6e421e  gcc/ChangeLog-2010
! 7c5918ff3b48dd4ba671b9c88bc71ff2  gcc/ChangeLog-2011
  e0b37ac47f082beb219cbc022f0f4ce3  gcc/ChangeLog-2012
  2603591aacf055db366ca80edd2ba6c9  gcc/ChangeLog-2013
  db5115f7e54850a9706e0354d5ae08d4  gcc/ChangeLog-2014
*************** b9daed1dfb9364dc6bd9e4eef70a1681  gcc/Ch
*** 542,549 ****
  e70c675c353dff12c134496566b63c83  gcc/ChangeLog-2019
  a8115a08b5042f830403fa427ce7c243  gcc/ChangeLog-2020
  393ff914a89e665be5638fc0ebce548f  gcc/ChangeLog-2021
! d75beda6756e3fb23a8fe4bce262c38a  gcc/ChangeLog-2022
! c5b3a3e8833087c6316b28685d3d914b  gcc/ChangeLog-2023
  99fbd9e13a4133855332bf21b0e8fc4c  gcc/ChangeLog.dataflow
  e36816ca56b2bbc8bfc358e0185fc1d3  gcc/ChangeLog.gimple-classes
  fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/ChangeLog.graphite
--- 551,559 ----
  e70c675c353dff12c134496566b63c83  gcc/ChangeLog-2019
  a8115a08b5042f830403fa427ce7c243  gcc/ChangeLog-2020
  393ff914a89e665be5638fc0ebce548f  gcc/ChangeLog-2021
! c8a56d14c776a8dfe1b5528f896d891a  gcc/ChangeLog-2022
! f9002213c826f50ef47ddbe3732af2ad  gcc/ChangeLog-2023
! 5de92db9d7ac65980600da22087d71b6  gcc/ChangeLog-2024
  99fbd9e13a4133855332bf21b0e8fc4c  gcc/ChangeLog.dataflow
  e36816ca56b2bbc8bfc358e0185fc1d3  gcc/ChangeLog.gimple-classes
  fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/ChangeLog.graphite
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 552,713 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 6fe7744db9ae130249655da6e6fdafb9  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
! 6560dbdd4b5a35d23087255c9a8b806a  gcc/LANGUAGES
! 31fa1866f3628f064a868ca389570ee9  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
! 0ebb5212dca47eaf22a8c5644c7fb865  gcc/README.Portability
! 4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
! 496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 98932e2c750c856eed728ef04665b11e  gcc/ada/ChangeLog
! 683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
! 7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
! cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
! cb7b55329c6efc06473bf414beb7ac60  gcc/ada/ChangeLog-2004
! 99c131848e3e968482f31f118b634221  gcc/ada/ChangeLog-2005
! 5b2e9dc0c3493205148172656759b49c  gcc/ada/ChangeLog-2006
  0d802541b203f36d11d9d9b080dada52  gcc/ada/ChangeLog-2007
! 40ca30763624aff456a048be21d9842e  gcc/ada/ChangeLog-2008
! 2bc031294789baafa14884f56fc313d2  gcc/ada/ChangeLog-2009
! cb98e18d4548238540bce953ec52f828  gcc/ada/ChangeLog-2010
! 2eb55e6598e5b56afa86277f3476d142  gcc/ada/ChangeLog-2011
  752d6a166d1bd16839da486ff4208440  gcc/ada/ChangeLog-2012
  348dabf8ae12730071db0c78f513ee76  gcc/ada/ChangeLog-2013
  883cd0dde6c0eb2faf9b5b324feed782  gcc/ada/ChangeLog-2014
! 6fc01d1be81d26290529db4473ee527f  gcc/ada/ChangeLog-2015
! 6abffd5f75304a3ab87659193c8422f7  gcc/ada/ChangeLog-2016
  6d0ffa28bd6b6f7eb48826cc418b1033  gcc/ada/ChangeLog-2017
  e1e4800d4922875de1a9dcfaacf7e1fe  gcc/ada/ChangeLog-2018
  e886b111487071a30a52edb616ff7844  gcc/ada/ChangeLog-2019
  25a37c68917fa9927277f5c8fda08d05  gcc/ada/ChangeLog-2020
  eb047ffc35b1d44455bed0519888503c  gcc/ada/ChangeLog-2021
! c81efe8ccbd5f5b8399a3496f5015859  gcc/ada/ChangeLog-2022
! 8705d554e26508f3d915092e70c16245  gcc/ada/ChangeLog-2023
  5598cfcecd6612ea21efddabbbe1ecc0  gcc/ada/ChangeLog.ptr
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  711afb6f8ec14edf7425445a669e85ed  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! d7575f332dc7c663b26141a23cabc413  gcc/ada/Makefile.rtl
! 8fc60e49303a639f7ec7c61a44f3f460  gcc/ada/accessibility.adb
! d19afffa65b63be4a8fd705f4b3f891f  gcc/ada/accessibility.ads
! 14559d7d76c0ae16e72bf37828ab86a6  gcc/ada/ada_get_targ.adb
! d7e80ed6dc120d292c92120a7d566b74  gcc/ada/adabkend.adb
! dacffa0d5abeed22123335e3f6b8e61f  gcc/ada/adabkend.ads
! 0ae00ad41c876f51ffa36e7e0c47f014  gcc/ada/adadecode.c
! 0393ceca2b2879e7848e5b1cf7ad3016  gcc/ada/adadecode.h
! a437dcd18577a150213a4cb353eb578b  gcc/ada/adaint.c
! 8ed92ebba3a19283274f9d3a536e9b7f  gcc/ada/adaint.h
! 53e1b8b954d1909dd54d42f601b58306  gcc/ada/affinity.c
! 23b2f7a3d261df5e4175f459ac3b7fc5  gcc/ada/ali-util.adb
! 4e54741c5a4c8db738b6eb82e4185f60  gcc/ada/ali-util.ads
! 71a93bb85ba9390f30d6ca5565b937f8  gcc/ada/ali.adb
! 861da48ba67934d89099243c96927d45  gcc/ada/ali.ads
! b96da0939c37f28ed77e0e0833dbff48  gcc/ada/alloc.ads
! 9039d38ef7f9661ab737624c4314cb41  gcc/ada/argv-lynxos178-raven-cert.c
! 6f02873d1400e9d25aac2c4930dce3d1  gcc/ada/argv.c
! 13e6f37eee5cc37bd81e0a507dc4598d  gcc/ada/aspects.adb
! 55222eb3e23ad9458ec84f035656a43f  gcc/ada/aspects.ads
! 030ee12ce4187faa21be900d356abc6c  gcc/ada/atree.adb
! abb4c0a33cf7c0c3825b600013fac71f  gcc/ada/atree.ads
! 1126714d933e7968b5a8766ea6de9cc9  gcc/ada/atree.h
! c6031ff93769cc05c899487d6b756c85  gcc/ada/aux-io.c
! 6cc964ebb6ce8a1ff71f2466c8b24eaf  gcc/ada/back_end.adb
! 4a1c33f5f9aefe1f0387ac012b714bd1  gcc/ada/back_end.ads
! dc86ce81f8a924ca72f7e628c94540c3  gcc/ada/backend_utils.adb
! b50377499eee4d5148cf6c9753cedbe6  gcc/ada/backend_utils.ads
! 6d6f95d03aa23a3ab8fe66607b507158  gcc/ada/bcheck.adb
! 15bb227ef924c1d850efb83eab0271a8  gcc/ada/bcheck.ads
! 45713510c927bd6fe676d12b43ff5237  gcc/ada/binde.adb
! 01d2e9d3d36fd97037c6bb112d18bb84  gcc/ada/binde.ads
! a597502120d3ffa33a4cced46596cbcd  gcc/ada/binderr.adb
! a7c916b032cc04eb5c9b6a1188f7852c  gcc/ada/binderr.ads
! c1f429932a0ed757d1ea2690560f7d4b  gcc/ada/bindgen.adb
! 7e569a6cdc985e49741f58ed4038c6e0  gcc/ada/bindgen.ads
! 62cbfc7688050774d9305bf84975cec0  gcc/ada/bindo-augmentors.adb
! 990603d26a5a45cb05af6543bbee105a  gcc/ada/bindo-augmentors.ads
! bab4f611037d5758a7f088abc1dbe57c  gcc/ada/bindo-builders.adb
! 903346e3ed2e08491dc4e734c6d52527  gcc/ada/bindo-builders.ads
! 7e0b9165845b61810c4133cf59f4b4ec  gcc/ada/bindo-diagnostics.adb
! bfff4bfca906cb8b0c2275437907dcef  gcc/ada/bindo-diagnostics.ads
! 329ba4ed3e762230ddf3580816f603fa  gcc/ada/bindo-elaborators.adb
! 9c8469469c846c2c285805cf13cf7672  gcc/ada/bindo-elaborators.ads
! ac2e4849d3d471b6523d07b0cfd21627  gcc/ada/bindo-graphs.adb
! 735d5cb049af010f87dca54653c1d62c  gcc/ada/bindo-graphs.ads
! 95fec47c39776a0c71f160ab49606623  gcc/ada/bindo-units.adb
! 7dbdafeb6da87a5e3034a41f6b43de12  gcc/ada/bindo-units.ads
! d5e26f7990a56a5831b4daf97cdccb49  gcc/ada/bindo-validators.adb
! 9305260a5f68b9f7fd49311e65275c71  gcc/ada/bindo-validators.ads
! ff1f8ccafbb0819543067e468079affc  gcc/ada/bindo-writers.adb
! 0e6021acb6ae3d7135f23cbe7f55a92d  gcc/ada/bindo-writers.ads
! fb242a5e127497ea4fa30f055b8edb56  gcc/ada/bindo.adb
! 2fe8e1daa9692049c486bdba30a8ee4e  gcc/ada/bindo.ads
! a6fed717894a71e220941aa9809dd96d  gcc/ada/bindusg.adb
! 5a5a71da4cf5b6213ef4680fa7775b45  gcc/ada/bindusg.ads
! 79b57e9483df5fe9a24fd56c469a1755  gcc/ada/butil.adb
! 9833e7414ed44bf4fb2779d6961fdd5b  gcc/ada/butil.ads
! a1b3d4925666ff23ae2b7cc9b3415bcb  gcc/ada/cal.c
! 1ae20f90b139a38c5f72632bad8b1df7  gcc/ada/casing.adb
! 655cb5f6b208c82aaf091b3903c19e98  gcc/ada/casing.ads
! 1be77f018d02fc84d1cd6a3ab8489c64  gcc/ada/checks.adb
! 3c5b8d576fde097c5d9cb37f49f2092f  gcc/ada/checks.ads
! 11639d6d0bac4cb0db05e0c49d19d7e8  gcc/ada/cio.c
! 515f27f5d37b34f122272a4bf414667e  gcc/ada/clean.adb
! 65002b8e7ebf0a8700c3c1e9bfb23b9a  gcc/ada/clean.ads
! e8833e852a4f8cd2c92fb2ab9102be30  gcc/ada/comperr.adb
! ab11c4e7baef102649c133f7346bfaf0  gcc/ada/comperr.ads
! 9a33c3c0dcce166b284466b4e55532c5  gcc/ada/config-lang.in
! 50ac21adb9918621d95398e3a3ed5a60  gcc/ada/contracts.adb
! 86c95624c75e51402de26537689a15e3  gcc/ada/contracts.ads
! 3d21484ce8b1a10e7b297ff2166a6be1  gcc/ada/csets.adb
! 5979d342dc64bda13f9d734040747d27  gcc/ada/csets.ads
! fd224eb2cfd9be8c2f3835b7062a99ea  gcc/ada/cstand.adb
! ff766cfc791f11392f0a65dddb87a2e6  gcc/ada/cstand.ads
! 0893e76cdcd2f7b87d63c19c87139921  gcc/ada/cstreams.c
! ea575f92a3cd68521af35bcf22cf6cf4  gcc/ada/ctrl_c.c
! 928132a0506576718b08a0e15549c305  gcc/ada/debug.adb
! 794c3d7c57912db334f2250e032f57ff  gcc/ada/debug.ads
! 5244e3da80206ee1ba3517d56d748af1  gcc/ada/debug_a.adb
! e47e803670118baa1f1e0c65cbb1c84e  gcc/ada/debug_a.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
  a279ed6487990a204e636674f9c44623  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! fd37d182ed90baed06fd8a4ac8a2d79f  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
! 2afac013799ef401d4c876589443dcf3  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 21945a82936c26718c53856e2d96c26d  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! a511a1ae18ac5459a3f2ef89b42375a5  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! d8ba2b080860efc46999a331d3500096  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 6b3c41fd82fa80c15821827892b1abc6  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
! 4c8f34f9d69c20b677b885ec36ef9844  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
! 8ac597e4a14e2e70cf692a87fa810b0a  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
  7f40736efcf972e491a726f58badbb04  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1fb33f7304c23a143fa3a6313055f70b  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
! a6635b66433fe9e3ae9b9aafbbf0c565  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
! 328f91fe087e552ce7ef53d8c1d73e3d  gcc/ada/doc/gnat_rm/standard_library_routines.rst
! c19830e73e611a82a0d522e460290c80  gcc/ada/doc/gnat_rm/the_gnat_library.rst
! d9ab108e6b9f3dc43b31a4d8f99364a4  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
! 39346ce2ba4d43ea4e411fc3a4e06fe7  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! eed47675492f7264c1eec88bddac432e  gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
! 26a89b9a7c38c57de536819af879195e  gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
! c8c5cebc5a8966a6a0b278b30b2f5738  gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
! 329d0c3464eb53db9196226f014d72c9  gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
! e819b7ac0953a501a41ae8e0c7bd5add  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
! e9a0c1404e151eafa5819fbdd74cf6fc  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
! bb8384ade6350af533fa2875e0c29c13  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! 910b34930231998532a4a98eddc7bdb1  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
! 3466b58909c9aa7f040eb5a0ad032939  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
  32b64eb2bfda56adcea7d1f563bee6bb  gcc/ada/doc/share/conf.py
  c7da61a05156d50b4888cdfaae4241d0  gcc/ada/doc/share/copyright.tex
--- 562,744 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 406d7f0c9b643dafa76ca813b622a5e3  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
! 4dc2573d948287a3722ce977490b026c  gcc/LANGUAGES
! 634347bfa52c68c4994c546e87d54cdd  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
! 15d6908b4409b0925d9f1c72b56b5cb7  gcc/README.Portability
! cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
! 18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 6324d1e15a756ef353f5b825c83c76b3  gcc/ada/ChangeLog
! c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
! fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
! 2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
! 89c975004af83fb39e44e33a2e7c7105  gcc/ada/ChangeLog-2004
! 5ebf19fe35485eb1160cefb09e9a2477  gcc/ada/ChangeLog-2005
! 8b872bc6ace25748b8a183ff65be1672  gcc/ada/ChangeLog-2006
  0d802541b203f36d11d9d9b080dada52  gcc/ada/ChangeLog-2007
! d045ae7c87225b3dd6ea6b759d76aed6  gcc/ada/ChangeLog-2008
! 89b2490a3f18e2881807f0dd104a76ae  gcc/ada/ChangeLog-2009
! 5a99417dbd74560852299218b454e25f  gcc/ada/ChangeLog-2010
! 6ffa555d507d5285992ca76ea365e924  gcc/ada/ChangeLog-2011
  752d6a166d1bd16839da486ff4208440  gcc/ada/ChangeLog-2012
  348dabf8ae12730071db0c78f513ee76  gcc/ada/ChangeLog-2013
  883cd0dde6c0eb2faf9b5b324feed782  gcc/ada/ChangeLog-2014
! 62090209d4f99509192e7d7838fc6c3b  gcc/ada/ChangeLog-2015
! 1b7309b5a98b8eba25edcbc22a45474b  gcc/ada/ChangeLog-2016
  6d0ffa28bd6b6f7eb48826cc418b1033  gcc/ada/ChangeLog-2017
  e1e4800d4922875de1a9dcfaacf7e1fe  gcc/ada/ChangeLog-2018
  e886b111487071a30a52edb616ff7844  gcc/ada/ChangeLog-2019
  25a37c68917fa9927277f5c8fda08d05  gcc/ada/ChangeLog-2020
  eb047ffc35b1d44455bed0519888503c  gcc/ada/ChangeLog-2021
! e529e93557ba835a90440062c302bbfe  gcc/ada/ChangeLog-2022
! 2dc2306421af9d88a84e6b007bb85e1b  gcc/ada/ChangeLog-2023
! eea9961506181531b5f7f1a7f62fe428  gcc/ada/ChangeLog-2024
  5598cfcecd6612ea21efddabbbe1ecc0  gcc/ada/ChangeLog.ptr
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  711afb6f8ec14edf7425445a669e85ed  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 4a05b486f053066b497ea899ac3c0485  gcc/ada/Makefile.rtl
! 36ed8f92f8a084af3653ce5eaf0eda34  gcc/ada/accessibility.adb
! fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
! cc3c3e637adb577e88374e9630aa0e54  gcc/ada/ada_get_targ.adb
! a07518144c5203a421dbc45a7b16e04f  gcc/ada/adabkend.adb
! 30e7387695692ce78b78ca8165fa9561  gcc/ada/adabkend.ads
! 3d1fcc88d6e5624970030c0a00ed8653  gcc/ada/adadecode.c
! 066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
! a4539cc4a5028b71e8c3fffdb29ebace  gcc/ada/adaint.c
! f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
! 760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
! a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
! a436320cda5fb678ef608c3511ad8c2a  gcc/ada/ali-util.ads
! b85696b217523a0bfb956e6ae85c879f  gcc/ada/ali.adb
! 7754a9c3f81e37b70201877adf034b01  gcc/ada/ali.ads
! f8207765beac36c54d43698a11140afa  gcc/ada/alloc.ads
! 3150d7e2a4f0018bb92d065ed3aedcc0  gcc/ada/argv-lynxos178-raven-cert.c
! 5470386a6301c0323b6ee66cf06c1e42  gcc/ada/argv.c
! f2493dd09ce42a8a76ba82606b9e20e3  gcc/ada/aspects.adb
! 1b68e92c1f09da6304acd8f4bab75ae1  gcc/ada/aspects.ads
! 71af88eaac340e2660d84b235840a7e7  gcc/ada/atree.adb
! 444c3479171f5761095caa5e0455bc94  gcc/ada/atree.ads
! 1a5f952bcb9d3c3529147729f3c4ef61  gcc/ada/atree.h
! 557d2d802d51833ba752f2b05e30c591  gcc/ada/aux-io.c
! 3ebdc86e765e129f74ed1b9a39f9e4b9  gcc/ada/back_end.adb
! 27dfc96f3c4d1a650404579ef425e6d0  gcc/ada/back_end.ads
! 373b81a0581c930a80df465cb75d360c  gcc/ada/backend_utils.adb
! 5bf299e32b1c9a8f359d599cacadd2bf  gcc/ada/backend_utils.ads
! dd5084d6ee1be9f9dfa2a9efa06dd21a  gcc/ada/bcheck.adb
! 5075bfca607f3f47b5ff9aaa04bdcc7b  gcc/ada/bcheck.ads
! aa738dcebdf52f114dc2973019727da6  gcc/ada/binde.adb
! fac33e7248d1861201371edab993043b  gcc/ada/binde.ads
! ab8fa14bb86df108472a13dcc1b9d70f  gcc/ada/binderr.adb
! 35dbcfe21d4e6360eb7fc5efa66ee28f  gcc/ada/binderr.ads
! e74423c2baea771f87323b4ea8dcda0d  gcc/ada/bindgen.adb
! e426b04a4bf47b1a91e530ac81300e86  gcc/ada/bindgen.ads
! 415056107aa9043be758c707431a6219  gcc/ada/bindo-augmentors.adb
! b64567719158122058df5a1877a7afe9  gcc/ada/bindo-augmentors.ads
! b8cbd2fa15d48d684345e9b68e92716c  gcc/ada/bindo-builders.adb
! b4376940b16f837f1ceaa70480aec20c  gcc/ada/bindo-builders.ads
! 64af9f05e9cc9d1ec066ecd0535af825  gcc/ada/bindo-diagnostics.adb
! 5b0c579701ad26fcb49bd7012668a028  gcc/ada/bindo-diagnostics.ads
! 266b03f97cdabc5758ffe21a5f86f8ed  gcc/ada/bindo-elaborators.adb
! 752abb1688649ddbea100e934ecd0118  gcc/ada/bindo-elaborators.ads
! 94ab545c9f2a4d524d9c7cd03a9ac6f5  gcc/ada/bindo-graphs.adb
! 0159cfe20f38a22ada87a3dfc67f5aa8  gcc/ada/bindo-graphs.ads
! b473f5264e22a00955a16571701b5024  gcc/ada/bindo-units.adb
! 236cd0ee81474fa886a0a4c1f62312d2  gcc/ada/bindo-units.ads
! f6fc19e84e9c8a9d7e950bf5be45d9d7  gcc/ada/bindo-validators.adb
! 8cd793d8fbe53d175bbe8f6b8ce13d89  gcc/ada/bindo-validators.ads
! e534e3e90407ece58cb74fbdc390f33d  gcc/ada/bindo-writers.adb
! 280ef0c801e349d252c3588223bba27b  gcc/ada/bindo-writers.ads
! 986b5b137ad4694ac7f70adb6f49161e  gcc/ada/bindo.adb
! 424dac7159d9daa4d90466407c32f89b  gcc/ada/bindo.ads
! 7b61b4327ab05066c581e76fab71015d  gcc/ada/bindusg.adb
! 7afaa9bd68b3caf3cf5ba8f63025bcfe  gcc/ada/bindusg.ads
! 38226bd2cbf827e12aa65824c4925664  gcc/ada/butil.adb
! ae344bff4834b9e2ef3c07f6dd01b59b  gcc/ada/butil.ads
! 530290230985903c593cb9d92f5b47c8  gcc/ada/cal.c
! 2acfb74c50c4563afcbe6a1bca3912a3  gcc/ada/casing.adb
! c576df64e1d6a2ac70b389cc10a835e6  gcc/ada/casing.ads
! 12b7556401c0d64376ed096d39ad3e89  gcc/ada/checks.adb
! f963647952269416533799c6a5117ea3  gcc/ada/checks.ads
! 4c0942bba88f786dffff9a3575759026  gcc/ada/cio.c
! f14d5e59f3344d9d8ee8a0e5e48a7080  gcc/ada/clean.adb
! 90ca544c6bc4527aa56ac34e3e2ee7bc  gcc/ada/clean.ads
! 78db9cfd345ee93d918787a8dcf8a3db  gcc/ada/comperr.adb
! b819ca6fd93695993d2656d2edc4cc8c  gcc/ada/comperr.ads
! 7f9ac0dab1302fd2696f52755a30ca56  gcc/ada/config-lang.in
! b3f234d93feef083d03df7904e6df0d4  gcc/ada/contracts.adb
! cae81121a4355cb8c6f89e3bf03bdbc3  gcc/ada/contracts.ads
! 09a5213fb46479fc00bc1e507f07c02d  gcc/ada/csets.adb
! c8fc2a7d00b9bdf2dfb05cf0fc1c945f  gcc/ada/csets.ads
! e26f19ce8a64b1575c67a3e1aa517573  gcc/ada/cstand.adb
! df133d3381ee0015f3dc4dfd4524b78e  gcc/ada/cstand.ads
! 1812c1cc859b55d34f8be50223970490  gcc/ada/cstreams.c
! 453f1af3f48533612fca76f44afc9122  gcc/ada/ctrl_c.c
! 28021d5354e21d4cb52c9fbe49bc5822  gcc/ada/debug.adb
! c13504ec17d3c6cecfc69808385f8273  gcc/ada/debug.ads
! 3398a4e389029b7fd2bf6a8164342c1b  gcc/ada/debug_a.adb
! af445affacf9cfc99e3eb8ee82b8b7f0  gcc/ada/debug_a.ads
! bdee5a5b917128a6f1044b7bbf9d9643  gcc/ada/diagnostics-brief_emitter.adb
! 315f0c7ce1142b7f76ad30ec6595109b  gcc/ada/diagnostics-brief_emitter.ads
! 728db385dd3f44d9d962d104d131be1a  gcc/ada/diagnostics-constructors.adb
! b3fe27b580eb33523a99ec3ad3dbbb0e  gcc/ada/diagnostics-constructors.ads
! ca021c3fc0c8548f2b2f8fbb73f7e2f3  gcc/ada/diagnostics-converter.adb
! d60b46ea1befff74b8d5a993ef61b3a8  gcc/ada/diagnostics-converter.ads
! 5764de49dd2d96c530879cbe85fcc0a6  gcc/ada/diagnostics-json_utils.adb
! 4492c90a2e277d56f7e9961140d57c5f  gcc/ada/diagnostics-json_utils.ads
! 4cf02d40eb6da37a37ba443fc087b416  gcc/ada/diagnostics-pretty_emitter.adb
! 290b6ea8dd29bd0cb5239b395d1c5e59  gcc/ada/diagnostics-pretty_emitter.ads
! cb4cc2fa61628ab1df1800a314e45078  gcc/ada/diagnostics-repository.adb
! 4622db16bfdcf24e74877f02a7431076  gcc/ada/diagnostics-repository.ads
! 01419b7eb095b6db6a6a459bad1f9624  gcc/ada/diagnostics-sarif_emitter.adb
! 03ce4e117fc3f6fe7973511965f59147  gcc/ada/diagnostics-sarif_emitter.ads
! 2e0fe99df8eab899c76e138e21cd59c6  gcc/ada/diagnostics-switch_repository.adb
! dc5ee9f3c72b43f97da6ec8683dbcdf8  gcc/ada/diagnostics-switch_repository.ads
! ee142bc1fea57100802feb1efbd2921f  gcc/ada/diagnostics-utils.adb
! 2b3ad4d10caf3985dc891caa7ab1117e  gcc/ada/diagnostics-utils.ads
! 7e54d5a3c614055b5301d2b75c6f9ab2  gcc/ada/diagnostics.adb
! 054f23e66023bfd36a42df01af816ae7  gcc/ada/diagnostics.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
  a279ed6487990a204e636674f9c44623  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! 1088949e7479ebc1ba756442a049c3b3  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
! c2ce843af1cfd3f0c588b2a488ad8d45  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 9841e49a49af522a8041a3b7a4df8b92  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! f86ae33ce6a65bd51309cb1012b055c8  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! bb7b0bdc9f2695b217d3f45b46312a67  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 4e63abb8c6ddce39a9090957c3342242  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
! 0b2c04c089a7da32cee28133b96b2979  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_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
  7f40736efcf972e491a726f58badbb04  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1fb33f7304c23a143fa3a6313055f70b  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
! 3280f0cd5068d9afb4b30c72e74bd637  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
! a8608ebf71444d2564728c8a41283e03  gcc/ada/doc/gnat_rm/standard_library_routines.rst
! 30264209881fd46b2667ef11a91c55d7  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
! 51fc68e006809f4713b28789602dfc35  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
! 39521c37ba9c354cd3fd0a709dd191e4  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
! d05e426d95c24c54af666c18b1fb547c  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
! f7e7179ad111262b98d743c63002bc82  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! 1550414bb7a49b59e5f3355f886df827  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
! b22b25b6bbe956bdaade83d68f531b1a  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
  32b64eb2bfda56adcea7d1f563bee6bb  gcc/ada/doc/share/conf.py
  c7da61a05156d50b4888cdfaae4241d0  gcc/ada/doc/share/copyright.tex
*************** c7da61a05156d50b4888cdfaae4241d0  gcc/ad
*** 715,1330 ****
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! 06e1d5c3732d40f7ffdd5f46e043662e  gcc/ada/einfo-utils.adb
! bee054a7fd2b46f1858b8c09cbd5327e  gcc/ada/einfo-utils.ads
! e4965ab7d5bc3cab910cb38241114ba1  gcc/ada/einfo.adb
! 7ba7ecdfd3b098e4751509ca402c3474  gcc/ada/einfo.ads
! d103f398a963e38c95e99016c43a3ec5  gcc/ada/elists.adb
! b3b089238e6ac65042dea789f7a4f9ab  gcc/ada/elists.ads
! 01274a5e7b9cab74ba8defb0611abcae  gcc/ada/elists.h
! cd8bc89f8e2d3292293b004df77e00d3  gcc/ada/env.c
! 2aaef438a43b355d3965f4a507c0606f  gcc/ada/env.h
! f75cab473271584d576793eb79d5ff8d  gcc/ada/err_vars.ads
! 844cb78da7aaba457bd651c8bf09bcef  gcc/ada/errno.c
! 0a9c8b844c1c86322cf046744cef1c61  gcc/ada/errout.adb
! cfb4683affafca37f8df6339869c22a2  gcc/ada/errout.ads
! d8adfb0e95f6aac26256c1fcf8c3c1ed  gcc/ada/erroutc.adb
! 9863823380aca4a2c042987a5314a2f8  gcc/ada/erroutc.ads
! 2a978d4394111ea731d0b9ab80350b9f  gcc/ada/errutil.adb
! 768c04a40077ca07cde747018a7ac6fd  gcc/ada/errutil.ads
! 5f32ccb930b36ce183bdf1f7fffad9a3  gcc/ada/eval_fat.adb
! bb1ac51d891c2c88e66b325ec4ba37b6  gcc/ada/eval_fat.ads
! 44ff8dcdf3f8afc2d49457f203d317d8  gcc/ada/exit.c
! 37ba832cb8ed6c0dd4e2f6ffa1ca1318  gcc/ada/exp_aggr.adb
! 661b007e75d0a285180124141181edba  gcc/ada/exp_aggr.ads
! 505062d76424b26ea35495f992e978ec  gcc/ada/exp_atag.adb
! f9d94a939aaa986fb1957454afcc5783  gcc/ada/exp_atag.ads
! a1e4480e82cd509ee409e3cb2a1b283d  gcc/ada/exp_attr.adb
! 1f0d00e4f924cd79fcb70a729dcad92f  gcc/ada/exp_attr.ads
! 33fd3e67f2d31ec03f6c604e5824bdfd  gcc/ada/exp_cg.adb
! ac19bd8c659aa1e17cfa0e35d7b09495  gcc/ada/exp_cg.ads
! 2394132d084f49b9aeeccdbd35bb1de0  gcc/ada/exp_ch10.ads
! 89bf98be5d6697dcc41c4a0a3ec837c2  gcc/ada/exp_ch11.adb
! 27998daa1688bace86314478707f6bd2  gcc/ada/exp_ch11.ads
! 9528249aa6a68bb6bd4a3932c338f304  gcc/ada/exp_ch12.adb
! 5c04b41f9e620809675530141c3f64d8  gcc/ada/exp_ch12.ads
! f1bfa2648500a71b4c4c0d24081c9662  gcc/ada/exp_ch13.adb
! 193e648141a05608c24771d4ce12cf91  gcc/ada/exp_ch13.ads
! 9fd3a98ae8c86e7f77cb0056423df3fe  gcc/ada/exp_ch2.adb
! 12ef8e19cc84af2f3c87be58df3f410e  gcc/ada/exp_ch2.ads
! eb689f31705058c27e0703c7b0c51a9e  gcc/ada/exp_ch3.adb
! ecce68e20f7bfd0dacc18bbc60e5fd89  gcc/ada/exp_ch3.ads
! a99675e2905f1fcc975075e8d4d99655  gcc/ada/exp_ch4.adb
! bd7720c5f01afd52050aaa1379d7c41e  gcc/ada/exp_ch4.ads
! 07415781357054497531ab80a03e3e2e  gcc/ada/exp_ch5.adb
! 12989fbdd0324ccca43790feab509aca  gcc/ada/exp_ch5.ads
! ad7056e6b552c5a435d8f718db6cc93d  gcc/ada/exp_ch6.adb
! cd643f66385153e405f6ede55f10df5d  gcc/ada/exp_ch6.ads
! 56e0c1185628456245641b4d83d961ea  gcc/ada/exp_ch7.adb
! 12c7919095c97ce108181b2f43d11e7e  gcc/ada/exp_ch7.ads
! aef4f29eb0abe39c14db4193d48cfd55  gcc/ada/exp_ch8.adb
! 0790a933097e04c804a43cee13174ed0  gcc/ada/exp_ch8.ads
! 34dd907639105c78b6ffd7ae70867a18  gcc/ada/exp_ch9.adb
! 7406623c27ec8e36b2c3790aab6e7b66  gcc/ada/exp_ch9.ads
! 7fbdc7578850772cd1a667b2ed3372db  gcc/ada/exp_code.adb
! 1cb1bc9b93e91c57afabf3614af4ff02  gcc/ada/exp_code.ads
! 967dd7409f0119dea508bd713a320a8a  gcc/ada/exp_dbug.adb
! b5941dea321599607f4d7abf95037644  gcc/ada/exp_dbug.ads
! f9d6a5f02c57f193648fcd6bac625c6c  gcc/ada/exp_disp.adb
! 85a2f816996d5fbf5d5113834f50e609  gcc/ada/exp_disp.ads
! 49e48382206c40fceee0bef3db9f0378  gcc/ada/exp_dist.adb
! 24eda9db83ec4f9a2d32460a05a1cdcb  gcc/ada/exp_dist.ads
! 0477b55ec1fa2e2b3aff22172c0b3490  gcc/ada/exp_fixd.adb
! 1cc7eb6f6350e15a9a7ae37ffcbc115f  gcc/ada/exp_fixd.ads
! 0a7d2c7cd0683895488a973855b037d1  gcc/ada/exp_imgv.adb
! 3770e84a6610132ba36a4f5f67675280  gcc/ada/exp_imgv.ads
! b4aba14df3823919578b6754fd0708bc  gcc/ada/exp_intr.adb
! 8e7b9be42cf34d1333150f01f744e0a3  gcc/ada/exp_intr.ads
! bd4f1c03c993c4ca37db28130e9b0bbf  gcc/ada/exp_pakd.adb
! 51c6fa400b57762c2365f20b291de647  gcc/ada/exp_pakd.ads
! 6c161311e146456028313836e29881df  gcc/ada/exp_prag.adb
! 0971f9b1e57a51d1db3a47da0f3d1bd5  gcc/ada/exp_prag.ads
! 2aecd24b4da332e09368b5fa3cbf2ad3  gcc/ada/exp_put_image.adb
! 7b9a2cd60f2618ab00d81989de782533  gcc/ada/exp_put_image.ads
! 3c5b684e77566520e28fd045e6e2b9ff  gcc/ada/exp_sel.adb
! 11a9d75b785a9d294dab55f9bbbc80d7  gcc/ada/exp_sel.ads
! eca12faeb797ff9211ade8bcb08c649d  gcc/ada/exp_smem.adb
! 053de514a5f6a51b3ab0a14556937160  gcc/ada/exp_smem.ads
! 91be4134519da6e8e1516f6657e9251d  gcc/ada/exp_spark.adb
! dad55e0bcaff99440f8cda8ca100abfc  gcc/ada/exp_spark.ads
! adffaa3044b157bf016186985ffe4837  gcc/ada/exp_strm.adb
! d442a282b5f1e993db71c27a1df66202  gcc/ada/exp_strm.ads
! 44ddb67dcac75511c7cbb41666950fdb  gcc/ada/exp_tss.adb
! efa3416bc0e51f3858a21a466b2c6f6c  gcc/ada/exp_tss.ads
! 2c23d26627b2efe2b7fb5a9bfc93788a  gcc/ada/exp_unst.adb
! dc9d384d2576e406d529076be6d18977  gcc/ada/exp_unst.ads
! 3ac54ef0a2787cebc4feb5f195e1dbe7  gcc/ada/exp_util.adb
! 0b62792097714802891536d3f17a09c9  gcc/ada/exp_util.ads
! 3f1e58cf90baa959ac85bd611acd8c73  gcc/ada/expander.adb
! 64bed4d08afaab7ba62cb23398f322c0  gcc/ada/expander.ads
! 9f5ba096f007d65b66f03084c32cf527  gcc/ada/expect.c
! 999ce44c7856ba83defd8eaec9a5e5ee  gcc/ada/fe.h
! 585cd5ead78adda458b3dd6183463417  gcc/ada/final.c
! 3e1e25815ce1c233199d902c0867f7be  gcc/ada/fmap.adb
! c084e2487fe93f7284abcae81866607d  gcc/ada/fmap.ads
! 20585f9a38926aff1ac6e5cb8bee971d  gcc/ada/fname-sf.adb
! 14d71e6ed78afcfe27153f3cd2d4a3f1  gcc/ada/fname-sf.ads
! c3f0e2c172bb60f503a35585c1009a94  gcc/ada/fname-uf.adb
! 802b5918dd7c805f5baac5d160800259  gcc/ada/fname-uf.ads
! 1728b27f08e91b190f5be52ddbeafe9a  gcc/ada/fname.adb
! 902502fbff76c640c88516162c677345  gcc/ada/fname.ads
! 42e49621271a3098bd9b0d366343e801  gcc/ada/freeze.adb
! 9084f737dc5090b4683febcfab1370c9  gcc/ada/freeze.ads
! 17437eda84b99bfdd095c5860feeedcb  gcc/ada/frontend.adb
! 6e0674dd153e4a2f5f47855c9c4db95c  gcc/ada/frontend.ads
! 65e08c7882cf1efd1525ad29e13c0580  gcc/ada/gcc-interface/Make-lang.in
! e6dedec5b5403c4846bd368c54124a85  gcc/ada/gcc-interface/Makefile.in
! 31af75105a7e50a05c0dd45b031da217  gcc/ada/gcc-interface/ada-builtin-types.def
! eece73bb8df5d8e966ff30b18bc77b4f  gcc/ada/gcc-interface/ada-builtins.def
! 669f7df0837a527e705df1b02478cc32  gcc/ada/gcc-interface/ada-tree.def
! e76788ae5fdae399904afcee294d994e  gcc/ada/gcc-interface/ada-tree.h
! 2d59d22647c9cc2b47b4898c4dd4cb21  gcc/ada/gcc-interface/ada.h
! ace55b710e2eba0e33421198b158de00  gcc/ada/gcc-interface/config-lang.in
! 52ac0b9aec1b1a53cb183788c4a36595  gcc/ada/gcc-interface/cuintp.cc
! 8d265b120e81b75a53d3e1797c5c8a31  gcc/ada/gcc-interface/decl.cc
! e95c0feeaced6a36656b245efe836c63  gcc/ada/gcc-interface/gadaint.h
! f61a98e52a715a073f777f982f1394b7  gcc/ada/gcc-interface/gigi.h
! 0609d8dffb6cdfbd0d07912a8da3038d  gcc/ada/gcc-interface/lang-specs.h
  43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 5cfa9a532dbd072148b16b70e89c9d52  gcc/ada/gcc-interface/lang.opt.urls
! 75f89bd5fd4ae55879dff32371ee01bf  gcc/ada/gcc-interface/misc.cc
! c04f30ccd26df7b20a118015913dc8d1  gcc/ada/gcc-interface/system.ads
! 8abd80bc601182d50d4f835dcfb9350c  gcc/ada/gcc-interface/targtyps.cc
! a2c3d0ea0939d7df537e7b9c557c383b  gcc/ada/gcc-interface/trans.cc
! afc89bcf5977d8ddc4aedf635d18a82d  gcc/ada/gcc-interface/utils.cc
! 24d282dce1b4ea4028f6526a978c21a0  gcc/ada/gcc-interface/utils2.cc
! 436eced51949ed1ca279a6a8745fdc85  gcc/ada/gen_il-fields.ads
! fa8c0b5e369960e72685e36f3adce798  gcc/ada/gen_il-gen-gen_entities.adb
! b971cd9d6daeb70141ca5d4371c2eb79  gcc/ada/gen_il-gen-gen_nodes.adb
! 3e9b72b5ce1ffc2f9899d3dc1db9efa2  gcc/ada/gen_il-gen.adb
! 865585d64c70aaa2d1c570f356780e1b  gcc/ada/gen_il-gen.ads
! 885b152a834686122318c093d8453cfe  gcc/ada/gen_il-internals.adb
! b3e4ebb3a86ee872c9ff924928f8b3ce  gcc/ada/gen_il-internals.ads
! 21ac6e95ac08901d81959028c777cc3f  gcc/ada/gen_il-main.adb
! 2b96292a585591f4bf9b9cc822bdf04b  gcc/ada/gen_il-types.ads
! 3f1e11df434d7c4357dfc22bb2dd02d9  gcc/ada/gen_il.adb
! dd09e9744277c7e59e0ac38351c161fa  gcc/ada/gen_il.ads
! 1b4cfdb5c20d4a2dd573db657ba7d21a  gcc/ada/get_scos.adb
! 24b098da4d453670d2e6cf4b97a9cb6b  gcc/ada/get_scos.ads
! 22ff8ebe416119a979d146dfd1550530  gcc/ada/get_targ.adb
! 8f5d02e010291e5bb7ed6298c90fda9f  gcc/ada/get_targ.ads
! 52d92ad10fa3c06bcd703bc3719d25d4  gcc/ada/ghost.adb
! 45303c79139120daac85ca65b27c2706  gcc/ada/ghost.ads
! c48f92a1ea3d65987688f5dc487e267c  gcc/ada/gnat-style.texi
! 88adcb747b22eae79b5ffba9ceefa93c  gcc/ada/gnat1drv.adb
! cb60394af3c2d8cddeb950f9445854bb  gcc/ada/gnat1drv.ads
! 01597fc77c78f870a5ed60bc5d76f113  gcc/ada/gnat_cuda.adb
! 7381effe82f3258388803c51e46f610a  gcc/ada/gnat_cuda.ads
! 8dc76b09f6f5a60a5b8213567c5c9991  gcc/ada/gnat_rm.texi
! 56216abb93096945f8111763670bb816  gcc/ada/gnat_ugn.texi
! cf071a3273e05083ff14a81710a5fc15  gcc/ada/gnatbind.adb
! 64e08dfea3b1fdb422cfc197cabdda29  gcc/ada/gnatbind.ads
! 1330ad51f5f43a11fb95bcc6c2aa675a  gcc/ada/gnatchop.adb
! 339973abcbb862f6bc5d64cb028616bc  gcc/ada/gnatclean.adb
! d1016529fb2e3b59940aaccc9673969d  gcc/ada/gnatcmd.adb
! afaf7505e39f509606cba378a83cc24a  gcc/ada/gnatcmd.ads
! 40147ea9b746840eb059464ef751928d  gcc/ada/gnatdll.adb
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
! e5e038f5592f759e0233ef2d3d43d557  gcc/ada/gnatkr.adb
! d60e249ac4f00797157e78a0ca353f0c  gcc/ada/gnatkr.ads
! 99a64c02a43f41235647fc41965ddac9  gcc/ada/gnatlink.adb
! 6afb11a86e3ed85d11e53514aeff0a57  gcc/ada/gnatlink.ads
! c23827611ef2cfc28588c09f0e74302d  gcc/ada/gnatls.adb
! 6dcf23bddf565dcb75fb450369b91d92  gcc/ada/gnatls.ads
! a5eebdfd1dee5dc9ab4864d13ed7dea8  gcc/ada/gnatmake.adb
! c95914ca4c6206e0acc3a805a6f4bdae  gcc/ada/gnatmake.ads
! bae131f24de63aaf00d75e2ac6e8b74c  gcc/ada/gnatname.adb
! 3f039579b505d065c01fbb89ba3a886c  gcc/ada/gnatname.ads
! 07d732b935d43f638eca19b6ab2206cb  gcc/ada/gnatprep.adb
! 7ee761db429b57b20ad3d8ca382e6718  gcc/ada/gnatprep.ads
! 8ebc00ffb2ebd4a31184ee5c11f82961  gcc/ada/gnatvsn.adb
! f37cfc06279bbbc49687bc94feeb7c1c  gcc/ada/gnatvsn.ads
! 36ba3bca611526f408579e691fda8e04  gcc/ada/gprep.adb
! 416b39b4f7a8e27257ead408251ef10b  gcc/ada/gprep.ads
! 7d66fbf3936f1aab5920f460ece2fb57  gcc/ada/gsocket.h
! c433adfe12c04cc86b7c1ce133f1992c  gcc/ada/hostparm.ads
! 4c4b315e9e37497e22cc3d292674e911  gcc/ada/impunit.adb
! 2343a064b40f8c5a779af8434a078715  gcc/ada/impunit.ads
! af2a948e5a1bd2486a1c7e10ff19030b  gcc/ada/indepsw-aix.adb
! cf82045d76953b7cd671b96f5c6b6653  gcc/ada/indepsw-darwin.adb
! 562e46df3ffd8ebc812bc7abcaf1c620  gcc/ada/indepsw-gnu.adb
! 96794826d70190599e7fbf7a64d1d4ce  gcc/ada/indepsw.adb
! 6cac7ba8aa98b2851525fc5bbe7ba17c  gcc/ada/indepsw.ads
! 6e21692599afe5be1ba60a60a19b7c02  gcc/ada/init.c
! 14334f97858a9104859a359e6fb6b283  gcc/ada/initialize.c
! b754a9933472bb5ee9364967cbe42205  gcc/ada/inline.adb
! 5b52de15c59dd10c857e4be45b1ad045  gcc/ada/inline.ads
! 9fb39d002e463dc045bace1667ed0182  gcc/ada/itypes.adb
! 1382f5b90cf5991db4c4cd456071aa81  gcc/ada/itypes.ads
! c8a78aea61e1713b8e2e7e36f30e6eae  gcc/ada/krunch.adb
! 7514f81d2b43b46b74151c5739850b91  gcc/ada/krunch.ads
! 5bf6d226f93e975964da1c28c4f578dd  gcc/ada/layout.adb
! d0247a696b4894daa0b4daa6ae1038bf  gcc/ada/layout.ads
! 072a9ca7f6c5530c4083270f14974f37  gcc/ada/lib-list.adb
! 8dd2258de883b9ebde00972738715891  gcc/ada/lib-load.adb
! 6a6c21e9204bac664aabeb685586a75d  gcc/ada/lib-load.ads
! d89f41972a2cd1ca1c5748299ae6acaf  gcc/ada/lib-sort.adb
! 1c09d426d183f911d05f289d2289f76d  gcc/ada/lib-util.adb
! 1eeb1cd17b3f189664941a66ac77542d  gcc/ada/lib-util.ads
! 7e94074eb825fca64b0b2acefe1f17aa  gcc/ada/lib-writ.adb
! 4b5e340f0a9d81db106c83a8cc8a3101  gcc/ada/lib-writ.ads
! b5c074e5213d68d6f765a0df6bf9e308  gcc/ada/lib-xref-spark_specific.adb
! 22c71753c35f70378e51cc26e3ef17ce  gcc/ada/lib-xref.adb
! 7d9421813a19ba8e9934a6c49f5ea6a9  gcc/ada/lib-xref.ads
! 362b9f9a4044d8fc3a9a425c77cdef17  gcc/ada/lib.adb
! e9cb06d0aaa91af69c67b4637881d6a0  gcc/ada/lib.ads
! ea7ac7530a15ffc90ed5d5ad056a6c8d  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
  c4e9620896065355c1895fb26186b8d2  gcc/ada/libgnarl/a-diroro.ads
  d33d03640fb0fae0a821bbeb1be518f7  gcc/ada/libgnarl/a-disedf.ads
! 366239b7830eca266c81e6edda300d6d  gcc/ada/libgnarl/a-dispat.adb
  380695cb64d70014260c4cbc5dc99e54  gcc/ada/libgnarl/a-dispat.ads
! 2d21adb4e68f0f2db4d7b5255c441f23  gcc/ada/libgnarl/a-dynpri.adb
! a2784499cf21750d8840eeaf03b9e700  gcc/ada/libgnarl/a-dynpri.ads
! af8d34ed0a580688313cb7e2c585727c  gcc/ada/libgnarl/a-etgrbu.ads
  3e60794a02e6ff3380c0daf20c7c6bc2  gcc/ada/libgnarl/a-exetim.ads
! 023f1278c43be303273d026c7479c19f  gcc/ada/libgnarl/a-exetim__darwin.adb
! 85855a5d663ed2077a930d2aebf0c77c  gcc/ada/libgnarl/a-exetim__default.ads
! 65759318d43af94523daefee6f1369f8  gcc/ada/libgnarl/a-exetim__mingw.adb
! 10ecc731c71999c7d85017af2f0369ed  gcc/ada/libgnarl/a-exetim__mingw.ads
! 27d33ecaab51623b1d3b04bdec4e33ec  gcc/ada/libgnarl/a-exetim__posix.adb
  8a70e70c5d53efd2ae8de2a025db3217  gcc/ada/libgnarl/a-extiin.ads
  66ba8470ba07e36d23031779e1ebee31  gcc/ada/libgnarl/a-extiti.ads
! 6cd915900e402e52e5f3aa77b71d2c85  gcc/ada/libgnarl/a-interr.adb
! c2805f29e40a7ec209f4b39be45195aa  gcc/ada/libgnarl/a-interr.ads
! 64588a10100930380d4a7a93a93a6b7d  gcc/ada/libgnarl/a-intnam.ads
! ca9ab88fe84f04cdb99aca1e96e20575  gcc/ada/libgnarl/a-intnam__aix.ads
! 8f3db070113175d33d73fd3db9649f4b  gcc/ada/libgnarl/a-intnam__darwin.ads
! 2cea22aeaa7e16df6240b84800049ce4  gcc/ada/libgnarl/a-intnam__dragonfly.ads
! 361c253a844e149be1b84fa2226a54c2  gcc/ada/libgnarl/a-intnam__dummy.ads
! 66df18f56d87f19ea34d371efa3cec78  gcc/ada/libgnarl/a-intnam__freebsd.ads
! 0b0c605cdb3863a723b2c52c6164e552  gcc/ada/libgnarl/a-intnam__hpux.ads
! ea06bca63c1347b9876d19c6d24d745e  gcc/ada/libgnarl/a-intnam__linux.ads
! 315fc1a740c83ec928c18114793fe5be  gcc/ada/libgnarl/a-intnam__lynxos.ads
! 8daaf0d808af1823d112fbad91ed68f6  gcc/ada/libgnarl/a-intnam__mingw.ads
! e06d43667f5ec7be0eb4acfdaeda1952  gcc/ada/libgnarl/a-intnam__qnx.ads
! e85b1bacb205792cf4dac8329e354814  gcc/ada/libgnarl/a-intnam__rtems.ads
! a36a5d6dbc9ca6d389c3c9a6535cda03  gcc/ada/libgnarl/a-intnam__solaris.ads
! 0b93dff3baf67df1a1460a8c16fcb17b  gcc/ada/libgnarl/a-intnam__vxworks.ads
! 59ec4cce77e0c82588b49107b33ec6a4  gcc/ada/libgnarl/a-reatim.adb
! f4ba1228daff76a947b124b92c0652d2  gcc/ada/libgnarl/a-reatim.ads
! 84311b992a27e9c27f6b916bb09936e7  gcc/ada/libgnarl/a-retide.adb
! 489b92aae01d4dd3bbabe5f8f29989da  gcc/ada/libgnarl/a-retide.ads
! a4395fd904cf513275c2ef2b1a2287f0  gcc/ada/libgnarl/a-rttiev.adb
! c5b571b099680988f32475e1588c7373  gcc/ada/libgnarl/a-rttiev.ads
  c04bb8934366f43faa60d914e7ebea7a  gcc/ada/libgnarl/a-stcoed.ads
! 1bd6bf20b8ca715e11600cda65302cc9  gcc/ada/libgnarl/a-synbar.adb
! 6ddb16a3061056e2fb8f7cb642cefe20  gcc/ada/libgnarl/a-synbar.ads
! 3ba7e68ff17d723c759f3ae9428480e2  gcc/ada/libgnarl/a-synbar__posix.adb
! a2ea184853544ecaefcfe68025d421e7  gcc/ada/libgnarl/a-synbar__posix.ads
! f49548fc8bb1f24ea79fab3be990891f  gcc/ada/libgnarl/a-sytaco.adb
! d83cbc6554006a0812c0a1693d735fe0  gcc/ada/libgnarl/a-sytaco.ads
! 34e9ea7e5deef6e519d54239fc48abd5  gcc/ada/libgnarl/a-tasatt.adb
! e16bcc9d9529a5eb8528f71ecbdf822f  gcc/ada/libgnarl/a-tasatt.ads
! e9df3c8701242858b66862a15205bc53  gcc/ada/libgnarl/a-taside.adb
! dad0539c950012ce78fa0a065ec7433c  gcc/ada/libgnarl/a-taside.ads
! 9232a4b705c0314e94d64a923d987f67  gcc/ada/libgnarl/a-tasini.adb
! ccedc9608004256d7d4ee7046321798a  gcc/ada/libgnarl/a-tasini.ads
! 14e3e8d0d2a1c3f2db9c30b107a70779  gcc/ada/libgnarl/a-taster.adb
  281fc9a014bf9c5a3677f1dd38cc9d5d  gcc/ada/libgnarl/a-taster.ads
! ae66e3d596c9f6af13a115abd190b699  gcc/ada/libgnarl/g-boubuf.adb
! a976b2397c78c42aad2ea3813db3bb4d  gcc/ada/libgnarl/g-boubuf.ads
! 0c86c88619b9b33e91f7703a45848a3f  gcc/ada/libgnarl/g-boumai.ads
! af5c24ce98a16a9ffbe95dfedf188e2c  gcc/ada/libgnarl/g-semaph.adb
! 47fce559fa8f3a2d4faf1b95fb9e43e2  gcc/ada/libgnarl/g-semaph.ads
! d7a195b48532a6e484d39613e6219e09  gcc/ada/libgnarl/g-signal.adb
! c0f35e91c409a70e416ed829a976a57d  gcc/ada/libgnarl/g-signal.ads
! 1caa438eaa67c1cc14e52f4a89009660  gcc/ada/libgnarl/g-tastus.ads
! 1a1401a7df9ee22c827c1f28215d9fb0  gcc/ada/libgnarl/g-thread.adb
! 05c316fed817b7fd0bde23c019ad7de5  gcc/ada/libgnarl/g-thread.ads
! 05e6a8bf8be1891c691032263fad9125  gcc/ada/libgnarl/i-vxinco.adb
! bc54f3763ee4910d884b71b13c8d49fd  gcc/ada/libgnarl/i-vxinco.ads
  5cfb9f62dd9599caab03143b5745a967  gcc/ada/libgnarl/libgnarl.gpr
! d6602fcc6d764b63651b447062d52211  gcc/ada/libgnarl/s-inmaop.ads
! abaace9f52ea1878e961a9ace068a40b  gcc/ada/libgnarl/s-inmaop__dummy.adb
! 6ce0b8a7df27628dc2daa64ce68c6b31  gcc/ada/libgnarl/s-inmaop__hwint.adb
! 74c813b161865093ea33371f0afc685a  gcc/ada/libgnarl/s-inmaop__posix.adb
! 1f55dbc42e2599a725ceeac6f2323abd  gcc/ada/libgnarl/s-interr.adb
! f705a3fd946591ff870bdf09180f478c  gcc/ada/libgnarl/s-interr.ads
! 265df40ade63181151201af4fe4a42ee  gcc/ada/libgnarl/s-interr__dummy.adb
! 920fe8ffb2d9d31a5a2693f60c15e3d0  gcc/ada/libgnarl/s-interr__hwint.adb
! e297856945b3cd448debcd5e62aa57cc  gcc/ada/libgnarl/s-interr__sigaction.adb
! ed206b66eb41d9b13f48d4faad497b1a  gcc/ada/libgnarl/s-interr__vxworks.adb
! e8d232f45147f53de1f34e97484b3fba  gcc/ada/libgnarl/s-intman.ads
! 2e58a35cedda6738d9546c669dab9d79  gcc/ada/libgnarl/s-intman__android.adb
! 1ec9d9ebf557ce22529c47e9088dcda6  gcc/ada/libgnarl/s-intman__dummy.adb
! 57934adfb09568afa7c54eedf5216411  gcc/ada/libgnarl/s-intman__lynxos.adb
! 34171eb6fc2813ad2697c21af1fe7f76  gcc/ada/libgnarl/s-intman__mingw.adb
! db873a5be21d454f9e413da9a15d1c5f  gcc/ada/libgnarl/s-intman__posix.adb
! 762cbd0774cad27ace1be3ad6c41e668  gcc/ada/libgnarl/s-intman__qnx.adb
! 717930f0fa4ee242f6f0e5d637c3f843  gcc/ada/libgnarl/s-intman__rtems.adb
! 180671d16582ce745728785e9089fb6e  gcc/ada/libgnarl/s-intman__rtems.ads
! e34440ad612b13a62e51bbc8c04b8b74  gcc/ada/libgnarl/s-intman__solaris.adb
! e486e6792b470c676fe258ce8bf121c4  gcc/ada/libgnarl/s-intman__susv3.adb
! ce2588344ad3e758a548706513cda070  gcc/ada/libgnarl/s-intman__vxworks.adb
! 163b11d4b63ed9b9fceff98034e6db25  gcc/ada/libgnarl/s-intman__vxworks.ads
! b553da4397b986a25d2be43181432a95  gcc/ada/libgnarl/s-linux.ads
! bb09115406eb2a7d69f0d5d9a342f849  gcc/ada/libgnarl/s-linux__alpha.ads
! d2a718eb0df1a4b191296bfb4f24e0f1  gcc/ada/libgnarl/s-linux__android.ads
! a940ed75b25914dbc87f13ad581b11f4  gcc/ada/libgnarl/s-linux__hppa.ads
! 5c90c4804ccd998313aa54aeb7613087  gcc/ada/libgnarl/s-linux__loongarch.ads
! 7d4ea818b25a7d4322e86709ca001666  gcc/ada/libgnarl/s-linux__mips.ads
! f35b7b7b3ad70695a38fcaf10d881fef  gcc/ada/libgnarl/s-linux__riscv.ads
! 07d8a58d2898d88b4bced61e9bf6d6ce  gcc/ada/libgnarl/s-linux__sparc.ads
! 805ac0b558240768cca450400bce8dc4  gcc/ada/libgnarl/s-linux__x32.ads
! 286edefe808d96d4152d639fc242fa0c  gcc/ada/libgnarl/s-mudido.adb
  d3d1bd17a6972764e499389c7f19f407  gcc/ada/libgnarl/s-mudido.ads
! fd9ca68f0d0c4a50564d0cd09b8dcc02  gcc/ada/libgnarl/s-mudido__affinity.adb
! 8397dc2515bd84c931b6605c7720aeb6  gcc/ada/libgnarl/s-osinte__aix.adb
! d2b45c9b6537632f5420295a5a589330  gcc/ada/libgnarl/s-osinte__aix.ads
! 26580ea7c189f59c727a49ec9a78d7de  gcc/ada/libgnarl/s-osinte__android.adb
! b588686897c15797d0a099a0c5f3e85c  gcc/ada/libgnarl/s-osinte__android.ads
! 0b09b49a92f1f25be92b8772ce548fd9  gcc/ada/libgnarl/s-osinte__darwin.adb
! c87eea356358187c9ff4a094db6ae77c  gcc/ada/libgnarl/s-osinte__darwin.ads
! ea2e6e271b50cd28e231b9556a51045d  gcc/ada/libgnarl/s-osinte__dragonfly.adb
! 47e6380b011c1405fc9006a34fd1734c  gcc/ada/libgnarl/s-osinte__dragonfly.ads
! 7cebf73fa94c8d3c9372793aa89ef8f6  gcc/ada/libgnarl/s-osinte__dummy.ads
! 4c3b41b65144fcdcb05d87b8300f5100  gcc/ada/libgnarl/s-osinte__freebsd.adb
! cd9103be4b5f5fe40c9715ba1e03a7e5  gcc/ada/libgnarl/s-osinte__freebsd.ads
! 81f13fa3ea4156267f9cc4da6c5bce6c  gcc/ada/libgnarl/s-osinte__gnu.adb
! 48660e5079e6297a60752446627e2a37  gcc/ada/libgnarl/s-osinte__gnu.ads
! 1d82f8b9b7c0ee089cd579d4fa0d097a  gcc/ada/libgnarl/s-osinte__hpux-dce.adb
! 51783371ea518fe6e398480ce12a2412  gcc/ada/libgnarl/s-osinte__hpux-dce.ads
! 61f89740f00219be2c618b1d0bb81f74  gcc/ada/libgnarl/s-osinte__hpux.ads
! 5915e600081d60c7f0334cb525c8ce1c  gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
! e8f092beb851047d2428960b16cb475a  gcc/ada/libgnarl/s-osinte__linux.ads
! 13006af03b6a0d99230f95b88f98faf2  gcc/ada/libgnarl/s-osinte__lynxos178.adb
! 151cea842ea9b0e0fb49986fb7a7f373  gcc/ada/libgnarl/s-osinte__lynxos178e.ads
! 9a2cd6b8df1c390ad49d3fe5b76b4a4e  gcc/ada/libgnarl/s-osinte__mingw.ads
! 496ec54aaf7aadaf8dee85ed453a02c4  gcc/ada/libgnarl/s-osinte__posix.adb
! 30b178903981ec1e0849448256e0750f  gcc/ada/libgnarl/s-osinte__qnx.adb
! 54633d54c3d375a94eeebcd8671ffafb  gcc/ada/libgnarl/s-osinte__qnx.ads
! 613a7dec4e7a6f38c9a5e3ba98a7a285  gcc/ada/libgnarl/s-osinte__rtems.adb
! 34ab35848312a6df969fff1ed28c9494  gcc/ada/libgnarl/s-osinte__rtems.ads
! 048dd5d248d8a3d451259d7c2e0d8d2b  gcc/ada/libgnarl/s-osinte__solaris.adb
! d1f7be06adea327743aad1caae39f535  gcc/ada/libgnarl/s-osinte__solaris.ads
! e00d51e30312029870d6bcaf3a475123  gcc/ada/libgnarl/s-osinte__vxworks.adb
! 33c6025a183ed40a2f1ea6d563339de0  gcc/ada/libgnarl/s-osinte__vxworks.ads
! c64cee90a2b735582953727449335346  gcc/ada/libgnarl/s-osinte__x32.adb
! a5d9bada85fba18a882aa0b1a32cf9a8  gcc/ada/libgnarl/s-proinf.adb
! 02d7f8852229403da984583f723c292a  gcc/ada/libgnarl/s-proinf.ads
! 0532824e1ebb5000915560c548221f7a  gcc/ada/libgnarl/s-putaim.adb
! c8f36cb2df939264c2bc6b8fb2f7d023  gcc/ada/libgnarl/s-putaim.ads
! 52fc49659ffeffd18ef10ea6500e2f21  gcc/ada/libgnarl/s-qnx.ads
! 43d1175086a52eda7b21361c785fa441  gcc/ada/libgnarl/s-solita.adb
! f84329c3ebb9c6adfacafafd7c2633fb  gcc/ada/libgnarl/s-solita.ads
! a278948f494f3619889d1240cbeda967  gcc/ada/libgnarl/s-stusta.adb
! b75aec5276345bf155b9a7163ef9d017  gcc/ada/libgnarl/s-stusta.ads
! f90fa1abd65ee3e6526aa83effff3441  gcc/ada/libgnarl/s-taasde.adb
! 17cea4b9716fefb9255db62652751364  gcc/ada/libgnarl/s-taasde.ads
! 047e9cf16ab497eb09eebf018cded66c  gcc/ada/libgnarl/s-tadeca.adb
! 195b56598d43b06aa01c086fc70ff966  gcc/ada/libgnarl/s-tadeca.ads
! c63c6d7520703ba73f66b155cfe9738b  gcc/ada/libgnarl/s-tadert.adb
! 3cb29baec9b555267463bec1057f251f  gcc/ada/libgnarl/s-tadert.ads
! a471ac8ecc3915ec24660e7b83a4840f  gcc/ada/libgnarl/s-taenca.adb
! 01934b457e642edd13388e6abf8aa43e  gcc/ada/libgnarl/s-taenca.ads
! c0e44f8cc342d5017ce6aaf549ff19fa  gcc/ada/libgnarl/s-taprob.adb
! 1c639b4bb4462058d433440fc3e2063e  gcc/ada/libgnarl/s-taprob.ads
! 4d1535daf9c79b4663a6d78fa2d868c8  gcc/ada/libgnarl/s-taprop.ads
! d4ce9429d452be45080d4fd8534546c9  gcc/ada/libgnarl/s-taprop__dummy.adb
! 0d68763d381cb293d779c8331d0e2ab3  gcc/ada/libgnarl/s-taprop__hpux-dce.adb
! 7c1ac64170a3c3222f681d97f1c14f39  gcc/ada/libgnarl/s-taprop__linux.adb
! 774d449a15def4974929e9e7bf1aa330  gcc/ada/libgnarl/s-taprop__mingw.adb
! a9955450414a2a90f58a4f453941df0a  gcc/ada/libgnarl/s-taprop__posix.adb
! 02ec4ca4fad6eddf50908475bd0c067a  gcc/ada/libgnarl/s-taprop__qnx.adb
! 7677b3a98c97b7d078da902a656f2315  gcc/ada/libgnarl/s-taprop__rtems.adb
! 4ba78b365784862eb7313d3f64f1a95e  gcc/ada/libgnarl/s-taprop__solaris.adb
! 8939c05b20873dd87a54b1d75f546736  gcc/ada/libgnarl/s-taprop__vxworks.adb
! 215c6c052fb4b7abce0a2503713c41b5  gcc/ada/libgnarl/s-tarest.adb
! 71a624fcd3237f9d2145f28b35b8c868  gcc/ada/libgnarl/s-tarest.ads
! 5b755dc106adba012cc4c1ab7cdbc0de  gcc/ada/libgnarl/s-tasdeb.adb
! d2b213a7d0739560974a0cd4fe6e939c  gcc/ada/libgnarl/s-tasdeb.ads
! 767327c9f0b4796e5229d0a3942902a6  gcc/ada/libgnarl/s-tasinf.adb
! 36a0f486e7192684d1171b4b149b8016  gcc/ada/libgnarl/s-tasinf.ads
! 5090480277c0549682c1854c966a4f9a  gcc/ada/libgnarl/s-tasinf__linux.adb
! 0217820eb22f2d048694c15dc5125c6b  gcc/ada/libgnarl/s-tasinf__linux.ads
! 57ffd67632fe648cecd915315bcb5d23  gcc/ada/libgnarl/s-tasinf__mingw.adb
! a92eec4edb9d855b648cfbd90ab67632  gcc/ada/libgnarl/s-tasinf__mingw.ads
! 4fd4bb13396b244e572356ce8cf03e75  gcc/ada/libgnarl/s-tasinf__solaris.adb
! 63f8143a8c2f7410bd83a5d3e92b47fd  gcc/ada/libgnarl/s-tasinf__solaris.ads
! 9be2f8a7f0c898406ee703fee130527f  gcc/ada/libgnarl/s-tasinf__vxworks.ads
! 006a7055e7158692df36c3135b2aa2d8  gcc/ada/libgnarl/s-tasini.adb
! a1fb9908f3ea0a0b2b89d4ee191acdf3  gcc/ada/libgnarl/s-tasini.ads
! 9e5d737619feee3cea826639581d0b78  gcc/ada/libgnarl/s-taskin.adb
! 49ec3d3a50260a551a2a347afa8fc972  gcc/ada/libgnarl/s-taskin.ads
! adae80212425891555d5e59ee60470cf  gcc/ada/libgnarl/s-taspri__dummy.ads
! 2e549ad3c72fca9cce9a25b8752cd4c1  gcc/ada/libgnarl/s-taspri__hpux-dce.ads
! 379c9ea4c57be573f9b94970b783b663  gcc/ada/libgnarl/s-taspri__lynxos.ads
! 097fb816edee0322c6f2c82ff43e648b  gcc/ada/libgnarl/s-taspri__mingw.ads
! 12648124ffe81cd2b05040ceba78b54a  gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
! 9169419b9fbe7fddd869c42a1416ba18  gcc/ada/libgnarl/s-taspri__posix.ads
! c166d1b8ec47c0c26745c91d97427874  gcc/ada/libgnarl/s-taspri__solaris.ads
! 46b432d0e6aa2a07c64db1dd02af9531  gcc/ada/libgnarl/s-taspri__vxworks.ads
! c364be5f5d25c0d6c748784c7bf183cf  gcc/ada/libgnarl/s-tasque.adb
! f9019ba73336ff5d5486d0b9d06b073c  gcc/ada/libgnarl/s-tasque.ads
! 323530c74bf746c6a2775d6451f63ed2  gcc/ada/libgnarl/s-tasren.adb
! 5813c520113c8b6e75e88c9004f76e48  gcc/ada/libgnarl/s-tasren.ads
! ddb0b6f75282b4a4288d1b5221412f66  gcc/ada/libgnarl/s-tasres.ads
! b9bc32285cae00537b89b7d717ca054f  gcc/ada/libgnarl/s-tassta.adb
! 0eff329810ff540cf2e6ff26dd48d89d  gcc/ada/libgnarl/s-tassta.ads
! d7667bcbc84562d3fed35a97d9b8c408  gcc/ada/libgnarl/s-tasuti.adb
! f879acde8c997ee5c28a0d73980f0630  gcc/ada/libgnarl/s-tasuti.ads
! fdb7f7153ce7d9495d99af3c55c59d41  gcc/ada/libgnarl/s-tataat.adb
! 5d369cfaf57b62c2af25414f9428460f  gcc/ada/libgnarl/s-tataat.ads
! ddbb1882261ed69030105957f5f8276d  gcc/ada/libgnarl/s-tpinop.adb
! 7b52626cf8c22e87cdf19517f39c7150  gcc/ada/libgnarl/s-tpinop.ads
! fc811a701cb69816affc88a2b3469595  gcc/ada/libgnarl/s-tpoaal.adb
! d904b6ede1d01fe1df3549804776573c  gcc/ada/libgnarl/s-tpoben.adb
! 78ef7c819c5717b84b8a31f56ec52493  gcc/ada/libgnarl/s-tpoben.ads
! 1cb0bbe1ea07903e23f80eb4ebf33100  gcc/ada/libgnarl/s-tpobmu.adb
! 9fcd3513ed1682e3c89e37421fdf1b6a  gcc/ada/libgnarl/s-tpobmu.ads
! 9b123f304793dbe95c51b36e8e16c412  gcc/ada/libgnarl/s-tpobop.adb
! 3eb266bf500873b6a7e4785303139c33  gcc/ada/libgnarl/s-tpobop.ads
! 3499c693770560bf438d58a75b2e8ef0  gcc/ada/libgnarl/s-tpopmo.adb
! 275db9d5560588225e84103afa134152  gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
! d32ec8fdc8385a1e7b55dea6189f3b46  gcc/ada/libgnarl/s-tpopsp__posix.adb
! 41033ded44846aef2e4af677c49939ae  gcc/ada/libgnarl/s-tpopsp__solaris.adb
! 32f226b77469ca28fc6957d45271d9bc  gcc/ada/libgnarl/s-tpopsp__tls.adb
! ca43e40973865d56f4e0c841aaf8b480  gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
! 01a1b0f420d07f605e906acdf2e925a3  gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
! 37098b875c3971dca8747c80fc4283cf  gcc/ada/libgnarl/s-tpopsp__vxworks.adb
! 4a5823685f0ad6a20aebb6d8348b3d42  gcc/ada/libgnarl/s-tporft.adb
! f75e20e2a1601987253a09da6aa74d72  gcc/ada/libgnarl/s-tposen.adb
! 3eb8fd545a4daa3a3372319621ef749d  gcc/ada/libgnarl/s-tposen.ads
! 58036df6348123173d9d1eb2e2c653bb  gcc/ada/libgnarl/s-vxwext.adb
! 88f679178ea0eaf12b85c1d173272fb2  gcc/ada/libgnarl/s-vxwext.ads
! 21c0bbbf0bbe4dd597219801c4f400ff  gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
! fa941a6096b97e2288280c108decdf02  gcc/ada/libgnarl/s-vxwext__kernel.adb
! c0dec7a7a5b235561293aa25f241b1db  gcc/ada/libgnarl/s-vxwext__kernel.ads
! f4ba000f966b5569e70bb6cd02936a08  gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
! e6989a74a3390d23db5e14dc5270f52d  gcc/ada/libgnarl/s-vxwext__rtp.adb
! 7078b766be3d586959a04184f217f546  gcc/ada/libgnarl/s-vxwext__rtp.ads
! f20476a63ef82afd41a84941d8bb8168  gcc/ada/libgnarl/s-vxwork__aarch64.ads
! 995b85ef597c416a162d118e6ebf7f05  gcc/ada/libgnarl/s-vxwork__arm.ads
! db62a51345eaf313843c7ca64e233be3  gcc/ada/libgnarl/s-vxwork__ppc.ads
! 1940c39d7fa4f59805f729a8f75c028d  gcc/ada/libgnarl/s-vxwork__x86.ads
! 38d2e33828214a7842315a4b05b811fd  gcc/ada/libgnarl/thread.c
! e71b60c0ad74c8f9e26a5c6040f1d56e  gcc/ada/libgnat/a-assert.adb
! 7d439a40cfcf37e3b054b55107c703ad  gcc/ada/libgnat/a-assert.ads
! 82407b4bf496e0ce28fe9b671eb64cb7  gcc/ada/libgnat/a-btgbso.adb
! 8e5d11f024ff89483870b3f3952b35ee  gcc/ada/libgnat/a-btgbso.ads
! b7389aa5c4c8bb4140a8cf82aab490f1  gcc/ada/libgnat/a-calari.adb
! c828356011d61bd77fcf346d9bf10310  gcc/ada/libgnat/a-calari.ads
! a19daa0dfdbbacfcd6867123008015f9  gcc/ada/libgnat/a-calcon.adb
! 404591d076075291030b958b98eac174  gcc/ada/libgnat/a-calcon.ads
! d537c3de16239e7a2818fc7dde2c89fa  gcc/ada/libgnat/a-caldel.adb
! 3a5049d98d23c0256fc1bea67235db33  gcc/ada/libgnat/a-caldel.ads
! 02f485169286928c5ee04c2abc92103f  gcc/ada/libgnat/a-calend.adb
! a23123ce49befc2e7972149c2e9c48e6  gcc/ada/libgnat/a-calend.ads
! d4c6c81b9cd3648846b6a03383cf91dd  gcc/ada/libgnat/a-calfor.adb
! 6454d9b9d7c608781a324ebe0027410d  gcc/ada/libgnat/a-calfor.ads
! fb7816ce476dcbc9b4ae82e3dc1b6578  gcc/ada/libgnat/a-catizo.adb
  d731f2a00c2328507e1708628b8f8534  gcc/ada/libgnat/a-catizo.ads
! aaf863f690f063f00c3ca29d5270e6b4  gcc/ada/libgnat/a-cbdlli.adb
! 59a333caa760e2ef21cbcc7854eaa503  gcc/ada/libgnat/a-cbdlli.ads
! 35aff0383cb75ab5ed8bd42fdd71333f  gcc/ada/libgnat/a-cbhama.adb
! 876a05f24516996c1d3ed27cb9d299bd  gcc/ada/libgnat/a-cbhama.ads
! e550858620f209c02fbbc52f60d479ba  gcc/ada/libgnat/a-cbhase.adb
! f1915b67b5e692ee6910a08f1b575901  gcc/ada/libgnat/a-cbhase.ads
! 053dc42baaec499c231efbb0f11a6118  gcc/ada/libgnat/a-cbmutr.adb
! 1b954fe6a71af3be6cb1b8f9ae3d2f76  gcc/ada/libgnat/a-cbmutr.ads
! 53c2432b867ae119f7e54b20c66c0067  gcc/ada/libgnat/a-cborma.adb
! 22b3af9603fcd505fbb1260cc3228fed  gcc/ada/libgnat/a-cborma.ads
! 209a0f73ff4251ec0b73c83e7c337b20  gcc/ada/libgnat/a-cborse.adb
! 8ad651e1f29ab026f15c7dff2c51d635  gcc/ada/libgnat/a-cborse.ads
! 3388321af653f8239651ff6ba25ccf67  gcc/ada/libgnat/a-cbprqu.adb
! 1dc5a613a8de0b142ccd486fdde1f44f  gcc/ada/libgnat/a-cbprqu.ads
! 3c2668370e30e1603692d1436d82280a  gcc/ada/libgnat/a-cbsyqu.adb
! 8a83d2103491c0d386be90122a65238c  gcc/ada/libgnat/a-cbsyqu.ads
! 3e7b93110c0e3fa1684c66cbeedf26fb  gcc/ada/libgnat/a-cdlili.adb
! 449a01c3b80aa9228c2affdfe24f1e68  gcc/ada/libgnat/a-cdlili.ads
! c882ed864a83ae893eb0ce6235f5c762  gcc/ada/libgnat/a-cfdlli.ads
! 85969b616e27eec03b85dbc1405eb686  gcc/ada/libgnat/a-cfhama.ads
! e85ac3cbfa16d0722246297f4fa92e1f  gcc/ada/libgnat/a-cfhase.ads
! 9d57c1c0532f29bfb723d749f9bfb7f0  gcc/ada/libgnat/a-cfidll.ads
! 456d3c69000dea491966ea0ed25ab34e  gcc/ada/libgnat/a-cfinse.ads
! 08a1c78b955fc56b8bfea3b1f652fe15  gcc/ada/libgnat/a-cfinve.ads
! da2846052bd7e3ce1b57c8591efe83a9  gcc/ada/libgnat/a-cforma.ads
! 920f1e07ffdb86316233da09dbcbc375  gcc/ada/libgnat/a-cforse.ads
! a0bdc0f46790bfef5a0bcb762481564d  gcc/ada/libgnat/a-cgaaso.adb
! b3d5352c6587c629b20952fed334d1f8  gcc/ada/libgnat/a-cgaaso.ads
! 2e6bf95a3887cf9917a5af13c9a2f9dc  gcc/ada/libgnat/a-cgarso.adb
  ef7fab6c5e61256ac64c9dae1dd27960  gcc/ada/libgnat/a-cgarso.ads
! 5b708a27fc29a034e568bb3cc139c7df  gcc/ada/libgnat/a-cgcaso.adb
  68226484befc5e389cd3dafaab608090  gcc/ada/libgnat/a-cgcaso.ads
! 6fe3a69040dd10521dab0b01fec8dab3  gcc/ada/libgnat/a-chacon.adb
! 3951feafe22eb1589341f4023527cfe3  gcc/ada/libgnat/a-chacon.ads
! 411fd249c83eef701f14cf4015500338  gcc/ada/libgnat/a-chahan.adb
! 6f5a8f2c558f2eab7d37fdeccfd9c1fc  gcc/ada/libgnat/a-chahan.ads
  00b37c98f6f96d2b5499c1f98cb503f0  gcc/ada/libgnat/a-charac.ads
  1e2a45aa2f9324faab423eb0f9a85a8e  gcc/ada/libgnat/a-chlat1.ads
! e3010425ca3b5235ef5092c355bda1e0  gcc/ada/libgnat/a-chlat9.ads
! c9ad5b82c15c93767c5e6a7521811726  gcc/ada/libgnat/a-chtgbk.adb
! 03cf0e615e16c8af7a4f4d4a6b2abfb6  gcc/ada/libgnat/a-chtgbk.ads
! ed50914a5b6bc3b497a9c25c6835eb9e  gcc/ada/libgnat/a-chtgbo.adb
! f3ed6c694e07001befca887d7c3a6651  gcc/ada/libgnat/a-chtgbo.ads
! 789da0a90e12305c41c67c83af30a2d2  gcc/ada/libgnat/a-chtgfk.adb
! 4ae799e6a13ba30dc7d0b23f93b81abf  gcc/ada/libgnat/a-chtgfk.ads
! c99d46fbc75c020fe8fc9fc94975048e  gcc/ada/libgnat/a-chtgfo.adb
! 09ce1790f28e8a78088ae32a258a6707  gcc/ada/libgnat/a-chtgfo.ads
! 89e8f9ed897dc80b5ae9f217f4359eab  gcc/ada/libgnat/a-chtgke.adb
! f22deace96112a61b36b47abf056c317  gcc/ada/libgnat/a-chtgke.ads
! cc0ba4cd000f15cd627055aba4f117c9  gcc/ada/libgnat/a-chtgop.adb
! afb8d959d7208495049b46fc466ee60b  gcc/ada/libgnat/a-chtgop.ads
! c58ae6444607a2d89fcdf1f787dd3798  gcc/ada/libgnat/a-chzla1.ads
! 773da344707d23a45ebe4ab72844c55f  gcc/ada/libgnat/a-chzla9.ads
! dc2470cd41d8fe56bd31e7769d9d7715  gcc/ada/libgnat/a-cidlli.adb
! 2843bd8747c09ea318e4e15cb142cda5  gcc/ada/libgnat/a-cidlli.ads
! c5191e13bb896a98b41379bd032c8bf1  gcc/ada/libgnat/a-cihama.adb
! 9a5d5a8c1bf3bf0f8fed215537ff93d3  gcc/ada/libgnat/a-cihama.ads
! cd091557b7ab32c93ba16818bb712ffe  gcc/ada/libgnat/a-cihase.adb
! 7abc6c241e52501322948f4450c6faac  gcc/ada/libgnat/a-cihase.ads
! ec074a35e1d102af0ef20496e48713b6  gcc/ada/libgnat/a-cimutr.adb
! d63c04bf7169164931f8711657e47009  gcc/ada/libgnat/a-cimutr.ads
! e45eb6e7568090a9abfe9e7178ea40ed  gcc/ada/libgnat/a-ciorma.adb
! 0f60a688324dad292b960c6baf5baaed  gcc/ada/libgnat/a-ciorma.ads
! 42ca048b38ef0eb1e003f12f161ff193  gcc/ada/libgnat/a-ciormu.adb
! 4a3aa378e85343cecf5472e3e5440f6c  gcc/ada/libgnat/a-ciormu.ads
! e0fae559ab3af93898f6b3b72958a811  gcc/ada/libgnat/a-ciorse.adb
! 2197ac171bd63302341ff2bac7cd58b9  gcc/ada/libgnat/a-ciorse.ads
! 200100ff360e3b249aabd426812e2b34  gcc/ada/libgnat/a-clrefi.adb
! 65c322ef3c2ec9427b4b669e38dc9605  gcc/ada/libgnat/a-clrefi.ads
! 95092019844421f13642e1588aa9998f  gcc/ada/libgnat/a-coboho.adb
! a73b9a4a502f15a26fc047f9fe278b06  gcc/ada/libgnat/a-coboho.ads
! d337502c4801073191875ccd610d4840  gcc/ada/libgnat/a-cobove.adb
! 81a55829704d4cec15df32996aee107c  gcc/ada/libgnat/a-cobove.ads
! cb0fdda53808a9cd919c00e56b447c8b  gcc/ada/libgnat/a-cofove.ads
! 8f3b878d8144af522b50a02c39815abe  gcc/ada/libgnat/a-cofuma.ads
! 4b5b09958f4a94ddf84a724cf0416c43  gcc/ada/libgnat/a-cofuse.ads
! ca99b0023188611f412033a621bdd3ea  gcc/ada/libgnat/a-cofuve.ads
! 825f15596126a1804829b0a98ea0c60c  gcc/ada/libgnat/a-cogeso.adb
! 2c1175b3036def493016713041501fda  gcc/ada/libgnat/a-cogeso.ads
! 7ee40a00ec73e2e34407a78178a302c8  gcc/ada/libgnat/a-cohama.adb
! c226e9103a0dbf1e077fdc5b0711cfd5  gcc/ada/libgnat/a-cohama.ads
! 6bd4684f11ecf2b9780cfb853df27a57  gcc/ada/libgnat/a-cohase.adb
! 530bed987f444d90aa6206a46fb7a7ee  gcc/ada/libgnat/a-cohase.ads
! e1edb307c009d849b7ea341e63a5e4b6  gcc/ada/libgnat/a-cohata.ads
! ea8335226dcf00e9293eb40b2a9b60c9  gcc/ada/libgnat/a-coinho.adb
! c4cab110e4cb52248a4fe5f010b07bec  gcc/ada/libgnat/a-coinho.ads
! 88d6ba48ca51dc61278681f9f26b61a9  gcc/ada/libgnat/a-coinho__shared.adb
! d258e57737a62787797db5b8a95b70be  gcc/ada/libgnat/a-coinho__shared.ads
! 333dc4efb7cba8cc4920664cfbd1ff93  gcc/ada/libgnat/a-coinve.adb
! 6e10e44f03cc5344f5de8bf0c6b895f0  gcc/ada/libgnat/a-coinve.ads
! cef2a0b72e3503d5f225a103a76ef530  gcc/ada/libgnat/a-colien.adb
! f5ab03196bd4a7cffda254daf184012e  gcc/ada/libgnat/a-colien.ads
! a7ec723d45c4fbc728a6407c154765b1  gcc/ada/libgnat/a-colire.adb
! 289025749b2b8acb36a9e51528baa514  gcc/ada/libgnat/a-colire.ads
! c9b0d6eb2ad15b629141d56eec01f5e2  gcc/ada/libgnat/a-comlin.adb
! e9e31b99faec357ce052d86cb96ca330  gcc/ada/libgnat/a-comlin.ads
! e0d7a61909c6f0f7f0d7295a15292f31  gcc/ada/libgnat/a-comutr.adb
! 9d173f5e5ad7e7086c2de75eec526eef  gcc/ada/libgnat/a-comutr.ads
! 07effef575708de4390f1805904f5c84  gcc/ada/libgnat/a-conhel.adb
! cbaafd54320538c954dbb4b43581be3d  gcc/ada/libgnat/a-conhel.ads
  38baf99435420fa514890cac49ee9242  gcc/ada/libgnat/a-contai.ads
! eec1e8c817ab4a11e9411e35f5c6047b  gcc/ada/libgnat/a-convec.adb
! 8f22a5b5d33bfe7e8de071b8bac44312  gcc/ada/libgnat/a-convec.ads
! 6f850cc1cac871befc2c456c45cf2684  gcc/ada/libgnat/a-coorma.adb
! a3366894cdbb4237fc61e4a322b8354c  gcc/ada/libgnat/a-coorma.ads
! c28c9b5a598e900069a9c37745a61389  gcc/ada/libgnat/a-coormu.adb
! a6ed1b766c52e96aa20dc807ff18edf8  gcc/ada/libgnat/a-coormu.ads
! 525d5b1081883d445131b101f1d892ab  gcc/ada/libgnat/a-coorse.adb
! f3af98cc43a26567b3c41e7b58bf49de  gcc/ada/libgnat/a-coorse.ads
! e689038dda8708ae7ba417b41219c986  gcc/ada/libgnat/a-coprnu.adb
! efaacb32117b8ecd69c7b3655d03c175  gcc/ada/libgnat/a-coprnu.ads
! c176f1fe80f7ac407d30da9e94c38a84  gcc/ada/libgnat/a-costso.adb
! b04a57bc85aefad6800eb4764166ece0  gcc/ada/libgnat/a-costso.ads
  2399731eabd6e0bbc0a8f28a60d3c3c8  gcc/ada/libgnat/a-coteio.ads
! ca2fcb22cec2126dc81f7e80934f7c11  gcc/ada/libgnat/a-crbltr.ads
! 6de5bf82da1d59ca2002b4789eb3d64b  gcc/ada/libgnat/a-crbtgk.adb
! bc799e2ee8fee7ef39e162f491f9701a  gcc/ada/libgnat/a-crbtgk.ads
! c9c8eb018eb15a50480c80d0a8bc7a50  gcc/ada/libgnat/a-crbtgo.adb
! a3f1c4ae6a6e375805d9534a9ec712c7  gcc/ada/libgnat/a-crbtgo.ads
! 05e6083b4c4555ef6095d8b29d191005  gcc/ada/libgnat/a-crdlli.adb
! 31f304578545ee89bb98513e5cb179ff  gcc/ada/libgnat/a-crdlli.ads
! df05528c6b33ae601cb96b27332771c2  gcc/ada/libgnat/a-csquin.ads
! 2ff6b8aa7748bb153b99b98b692c57b0  gcc/ada/libgnat/a-cuprqu.adb
! a4d098835c898339bc6985f756f4d3ce  gcc/ada/libgnat/a-cuprqu.ads
! 0deed0d41592983442837d29b12116d0  gcc/ada/libgnat/a-cusyqu.adb
! bb7069da9abd781d02913e42197233bf  gcc/ada/libgnat/a-cusyqu.ads
! a114218cdd6241f40062b8838adf9274  gcc/ada/libgnat/a-cwila1.ads
! 4cfd393154caaeeac0456dbe85d25cf9  gcc/ada/libgnat/a-cwila9.ads
! e34e99fcc3c2df54a5bd5d5836fdf248  gcc/ada/libgnat/a-decima.adb
! a23a556a0ad9a82d2376d9648ecb1abb  gcc/ada/libgnat/a-decima.ads
! 6385e5506da73c6f3da06389905016f4  gcc/ada/libgnat/a-decima__128.ads
! 197aa773cd08bdc751df3a787328dfa1  gcc/ada/libgnat/a-dhfina.adb
! 1b83a01697f4ec9b967e47e0d5f0ef1d  gcc/ada/libgnat/a-dhfina.ads
! 77079dc72d4f21ce630f4ef388d63ef4  gcc/ada/libgnat/a-diocst.adb
! 3e3a0403c9ffbfc31f41cc3b858c5c09  gcc/ada/libgnat/a-diocst.ads
! 37b87b22d7b71390380430f62338cf6d  gcc/ada/libgnat/a-direct.adb
! 9ad4da42a9b723ba2d00407b520ee46d  gcc/ada/libgnat/a-direct.ads
! 6daceec63b98c35393d76a2caef756eb  gcc/ada/libgnat/a-direio.adb
! 6a041962f5b4234ba9053c56dac6b6cc  gcc/ada/libgnat/a-direio.ads
! 4346f6cfdfd0d5f41c596c8c60af9c0f  gcc/ada/libgnat/a-dirval.adb
! d0202df6f02857137c8f41222b74749f  gcc/ada/libgnat/a-dirval.ads
! 1fd04b88a99187e14e513407f7eef871  gcc/ada/libgnat/a-dirval__mingw.adb
! 9f249cc0155c694015ab6f2647f00f41  gcc/ada/libgnat/a-einuoc.adb
! 96d3244de10e24414d4ca4fd7546e531  gcc/ada/libgnat/a-einuoc.ads
! e181e59e49d9fd7792887c0bf7433ee6  gcc/ada/libgnat/a-elchha.adb
! d1657015e37c65a841993bed60e2247e  gcc/ada/libgnat/a-elchha.ads
! 5cee3e85a56e2d38a9f82dded99d7b2b  gcc/ada/libgnat/a-envvar.adb
  e77a221e76c3e19394bf433277f04c0f  gcc/ada/libgnat/a-envvar.ads
! 7fb9a040242e68230c7237a599cd19c1  gcc/ada/libgnat/a-excach.adb
! 8f11467b2450719d7a125f0bb0f5d7b5  gcc/ada/libgnat/a-except.adb
! 7018210f210feb48d74789837dccc0a5  gcc/ada/libgnat/a-except.ads
! 52e052126ef740497443a59cffb9ab15  gcc/ada/libgnat/a-exctra.adb
! d12e9b51ceafb00734e819c70a75782d  gcc/ada/libgnat/a-exctra.ads
! 0fb571d414e25383d784be199e0d51a1  gcc/ada/libgnat/a-exexda.adb
! afbc73ad166ca87f7157c67b7682be48  gcc/ada/libgnat/a-exexpr.adb
! c59bd767d3177f2f6b06155b78496b18  gcc/ada/libgnat/a-exextr.adb
! 1fc2acaee31179941a9aec3b6a86ff31  gcc/ada/libgnat/a-exstat.adb
! 81b0dcb30b6a0f0ed52c8676c47d5f27  gcc/ada/libgnat/a-finali.adb
! 92f38793f1a4455a589e45f03418b80d  gcc/ada/libgnat/a-finali.ads
  b6ba93109a253e15591b1eefa685bc24  gcc/ada/libgnat/a-flteio.ads
  f7e337bf223b3a491d58fb6db81ef7b1  gcc/ada/libgnat/a-fwteio.ads
  2bf5d12193c278c4a482ae0dda1129a9  gcc/ada/libgnat/a-fzteio.ads
--- 746,1356 ----
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! b197c097238ab059c90fd0c9452e6a76  gcc/ada/einfo-utils.adb
! 9294b28a2b5738443be8b4fcd83a2391  gcc/ada/einfo-utils.ads
! 4f882a8b5e78253d5838b1a83e4af5bb  gcc/ada/einfo.adb
! 25284f00e37413b69c185f8987a0433c  gcc/ada/einfo.ads
! 9fb4fb23a55081d07dc554eeb3253f91  gcc/ada/elists.adb
! 1d7f8772477453dee268f8697433a589  gcc/ada/elists.ads
! 2d6cb36d45dda0bf32d01725709f0007  gcc/ada/elists.h
! 3ee454270bfb935945b73e4d5397b3ab  gcc/ada/env.c
! 4c5dce869517fc9bf7fc787d64cc9f30  gcc/ada/env.h
! 7160c7331da775e057d2022e905a0767  gcc/ada/err_vars.ads
! 0585186de44d58458e21d420cc29671b  gcc/ada/errno.c
! eb0642ebe2b75475e73f7ae765d24bd2  gcc/ada/errout.adb
! 9be6d4d237e52e2d681aaf01644efe4c  gcc/ada/errout.ads
! 8d5ede703a566f986f11ad39380dac55  gcc/ada/erroutc.adb
! 92a88f0527e3f757aa0f1d7fcdebc8a4  gcc/ada/erroutc.ads
! 245d4b213e46b22ba4daabe3e9eb63de  gcc/ada/errutil.adb
! 67078357e15eaef989cc9c0edaab1d13  gcc/ada/errutil.ads
! b270d994d3afc78b194d5ab9ddd800c0  gcc/ada/eval_fat.adb
! 04c8399e5b8f5b974be325af4fc5793b  gcc/ada/eval_fat.ads
! 5062429d8789169d01db0423985a5e99  gcc/ada/exit.c
! 4cb5493b9dfa39d212c60e93db08ff59  gcc/ada/exp_aggr.adb
! cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
! f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
! 17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! cba30f00b02b8199d4ae5c30b47d421a  gcc/ada/exp_attr.adb
! 16622dd90fd58bfbfa68224d0bfaf8b2  gcc/ada/exp_attr.ads
! 4cb08de59df5f8d0a124038dcbb392f0  gcc/ada/exp_cg.adb
! b18d9873e8e43583acd0e69ba6635023  gcc/ada/exp_cg.ads
! b5c7eb2b5e6d898d5afe2d0e6ae5f382  gcc/ada/exp_ch10.ads
! 0038d7b756beeda8a7855f846018dfee  gcc/ada/exp_ch11.adb
! 60bdf7b43270fd45b2cc28489113a581  gcc/ada/exp_ch11.ads
! bdf1e45828c56644b32ac57ae50d5710  gcc/ada/exp_ch12.adb
! 855ab7be8dea970234057b661c2254a2  gcc/ada/exp_ch12.ads
! fce186389d317dec9c580f569a2a845a  gcc/ada/exp_ch13.adb
! c6728830f0888dc3385e474b5925c01f  gcc/ada/exp_ch13.ads
! d037443d1b61c02110e124f3c701b449  gcc/ada/exp_ch2.adb
! 476e299ea88b583859604d0071046143  gcc/ada/exp_ch2.ads
! 215be17804e2918cd4dd26b52b99ea4b  gcc/ada/exp_ch3.adb
! 53e0d855cd76aedff48a9e6266db49e8  gcc/ada/exp_ch3.ads
! e913cd881168d89aedbd0f61a506d772  gcc/ada/exp_ch4.adb
! 689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
! 1d5085d751944cac335b21919976e3c5  gcc/ada/exp_ch5.adb
! 3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 06f4f0a020f4a47888ba57258de26e6b  gcc/ada/exp_ch6.adb
! c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
! a258092733f3f4dd46ef089b260661fa  gcc/ada/exp_ch7.adb
! 31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
! ff5f2710ba824ff8ef979c388663bac2  gcc/ada/exp_ch8.adb
! c1f464d28d24669bfe156f13cabe5fca  gcc/ada/exp_ch8.ads
! 1b40c4cc65701ad7469641f6ffa19397  gcc/ada/exp_ch9.adb
! 9ab762fdf6b68687829c67eae82562e8  gcc/ada/exp_ch9.ads
! f47ce79d25dbb4d2f5cc6c375ee8c103  gcc/ada/exp_code.adb
! 983664237ff0b38442a164f60d531514  gcc/ada/exp_code.ads
! c5f46927bfde5cfdba7070186c0a3890  gcc/ada/exp_dbug.adb
! 7d55b512bc6b963b537cd44b692b8a54  gcc/ada/exp_dbug.ads
! ad6d5aa3f46cecc1cc7e6f14db186364  gcc/ada/exp_disp.adb
! 00b2b98f2a8868fd7a89f79c72a645ac  gcc/ada/exp_disp.ads
! 86f64ee397ea74ee1712b9a4ac10cf67  gcc/ada/exp_dist.adb
! 116919038aa6e7d0ec9ce9ab609f0bc2  gcc/ada/exp_dist.ads
! c5ca94cffafc304193b3e436bceb3fb3  gcc/ada/exp_fixd.adb
! 9633ee578c6cb9ea5577a5cade68bdcc  gcc/ada/exp_fixd.ads
! 950e359997abe1b839b8fad4caafad05  gcc/ada/exp_imgv.adb
! 9fc56117157205ad4de1209b42148d67  gcc/ada/exp_imgv.ads
! 9f1bbeb12a811457cfb88a7e17ca9740  gcc/ada/exp_intr.adb
! 923affd79668e065bae4808313b11bf9  gcc/ada/exp_intr.ads
! 024b678e3a2ff1002943cfc65d4e3903  gcc/ada/exp_pakd.adb
! 0e4de6363c3876604fc8fa97e180ddcf  gcc/ada/exp_pakd.ads
! d5272b91cd7a6980710ec6f6981d62c1  gcc/ada/exp_prag.adb
! 044c8a4d86db8fbb4eaa241c597290a7  gcc/ada/exp_prag.ads
! e72f0d3871865a20e4168ee757febcf5  gcc/ada/exp_put_image.adb
! c0f39ee1d515a13193e5726a49291c99  gcc/ada/exp_put_image.ads
! e224b65ac653dc73160c1665f825b557  gcc/ada/exp_sel.adb
! adda0da8d4f449351c0486c3277f39bd  gcc/ada/exp_sel.ads
! 624e684a9e8c068e4ad7dc5d3a3eb244  gcc/ada/exp_smem.adb
! 5eb50023abeda9a76f66518671ad1d05  gcc/ada/exp_smem.ads
! 02f00a0f87b66d02878571d0e46a37cf  gcc/ada/exp_spark.adb
! 0365865a8be979f0a1db6a61cadbe940  gcc/ada/exp_spark.ads
! b042ff9582cb94caab7f476203ea6809  gcc/ada/exp_strm.adb
! 772292d8d5c1417fcb3279f7ac312e3a  gcc/ada/exp_strm.ads
! 4ed5d5fe1679b7a931eb261cf15b0622  gcc/ada/exp_tss.adb
! 52a5741c37559d0398594d7baa1c99ac  gcc/ada/exp_tss.ads
! 17c1e6db56a29cef37eb0acfa2e2176f  gcc/ada/exp_unst.adb
! d2f34876e61000e49299ef9b2569cbbf  gcc/ada/exp_unst.ads
! 925b58d121e5076f127426cee27fb35d  gcc/ada/exp_util.adb
! 2c2da3d4030acaa147cdd49b9d8cfa79  gcc/ada/exp_util.ads
! 3bba6a658c16a14ec3297c802dcde881  gcc/ada/expander.adb
! 53bb0eb5c4feebf8b5fbef639f5827bd  gcc/ada/expander.ads
! b38851c9b7a0167a71b96e69b7c86fb1  gcc/ada/expect.c
! 115650d4c9bc8ec2eca6568d8d4e46d3  gcc/ada/fe.h
! e0c5e28f92b1d5fad283ec608aceb807  gcc/ada/final.c
! 43fdec6dde9d9997d9651da910b55df3  gcc/ada/fmap.adb
! fdb9382a8288a3a5b805910a0a3615e8  gcc/ada/fmap.ads
! 13ef835624590a9ba64dd6b4d131c22a  gcc/ada/fname-sf.adb
! 4132ae09b3f8d374f31e34bfa2c3c6a4  gcc/ada/fname-sf.ads
! 6e94430c4c54db5e1074d04facfad06c  gcc/ada/fname-uf.adb
! 576d7463667fc4c859a05f9e19146427  gcc/ada/fname-uf.ads
! ec7cf235c00294fe67198b9bf264f3d9  gcc/ada/fname.adb
! 5ef403dc7e6540ad58ec4ccec10de65c  gcc/ada/fname.ads
! 8d2feb64e9bd970abaffb0c55af6d492  gcc/ada/freeze.adb
! 0cfb73b82bc6277eb801329c392229d2  gcc/ada/freeze.ads
! 94e87c9cab4c338fd7a9cd7f89adbc90  gcc/ada/frontend.adb
! 6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
! 7d09f66d77b747916fdcfbba221e06d4  gcc/ada/gcc-interface/Make-lang.in
! 0a634346a9941ab64b7906cc0cbb449b  gcc/ada/gcc-interface/Makefile.in
! b02134e55a04db5c49a710da26b19be1  gcc/ada/gcc-interface/ada-builtin-types.def
! bc1175cb4ea0b9cb5f8751b3f0da7f74  gcc/ada/gcc-interface/ada-builtins.def
! 9671d558ad879f15e73993538906ebda  gcc/ada/gcc-interface/ada-tree.def
! b5542229d5cce6dd4fff7dc4ba8e789b  gcc/ada/gcc-interface/ada-tree.h
! 9225a8cf7f4c37e1ac2c83d2916a1bdf  gcc/ada/gcc-interface/ada.h
! 910c4ca7f1543916fa6923fa18e926e0  gcc/ada/gcc-interface/config-lang.in
! 27a97efc2691bb0e500931269e932bee  gcc/ada/gcc-interface/cuintp.cc
! 1410ead8845c3bdca36756999821990a  gcc/ada/gcc-interface/decl.cc
! fa1feb51010fc73b933487acbdcf85e8  gcc/ada/gcc-interface/gadaint.h
! 846fe3bd3db6658b85769bf0216e74fb  gcc/ada/gcc-interface/gigi.h
! 8c3391ec25d2f8a3e26b0553d537d3e2  gcc/ada/gcc-interface/lang-specs.h
  43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 9b5bb16ec797188515b64efd5c00378a  gcc/ada/gcc-interface/lang.opt.urls
! e8ba734d63b4001c905ea24a0dc1b6a3  gcc/ada/gcc-interface/misc.cc
! a74b4504c5ad4ed4e963f0691c289b40  gcc/ada/gcc-interface/system.ads
! b350a6fd65cafe8bd47dc42192437310  gcc/ada/gcc-interface/targtyps.cc
! 459f0b99e7a1b0ab35902e89fc170732  gcc/ada/gcc-interface/trans.cc
! 3220b6e793a1a8e961e0a82e74aea4b6  gcc/ada/gcc-interface/utils.cc
! 7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
! e98c75620d0cefed3bc5965c7974b5a9  gcc/ada/gen_il-fields.ads
! 42ea61b238f9b98831503c2afdbad9d3  gcc/ada/gen_il-gen-gen_entities.adb
! ebed5be70c8d5e75b9d3e8ea56e94729  gcc/ada/gen_il-gen-gen_nodes.adb
! fa07e4c6240b8cfff6d7d98112fee236  gcc/ada/gen_il-gen.adb
! c979a98c6b57608c79d578871fa0c58a  gcc/ada/gen_il-gen.ads
! 76bbf6f38878113d65648e887fc2fd72  gcc/ada/gen_il-internals.adb
! df0beb95a99f054fd498bb3fc0b8fccc  gcc/ada/gen_il-internals.ads
! 6f79de1a05bf91310c857e93030b71e6  gcc/ada/gen_il-main.adb
! 49405c2ee5627667a07ba9bf2faf5539  gcc/ada/gen_il-types.ads
! 12828a99220130b97b0ca7738966ce08  gcc/ada/gen_il.adb
! bea2267faa84573ddab9d7c7f7068fb7  gcc/ada/gen_il.ads
! 9dd924342444d7c9c5cf5900eeb4e044  gcc/ada/generate_minimal_reproducer.adb
! 29a4ac8239d62f821245305f947761bf  gcc/ada/get_scos.adb
! 0930ee3acae3e581cd90b4ea71d36c46  gcc/ada/get_scos.ads
! c30d04e8e72b6ecb391a5f74ed43baa6  gcc/ada/get_targ.adb
! 57767f3283884f7a0a2bdfdc92574dca  gcc/ada/get_targ.ads
! ceea56f2846e3f170ecd0707ee0cd771  gcc/ada/ghost.adb
! 169c6bef83eb7711cececa07b3485c6f  gcc/ada/ghost.ads
! 8e8f7e3ee355f63de7863d6e7bd833ca  gcc/ada/gnat-style.texi
! 52f2fb099443750a5fc3ecac2238d604  gcc/ada/gnat1drv.adb
! 9ed317231a93f12d370f13f5070cdaab  gcc/ada/gnat1drv.ads
! 917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
! 49c5329fd360e2bf4e549bc7de93aab7  gcc/ada/gnat_cuda.adb
! de69fc271ce889490809004600fcac0f  gcc/ada/gnat_cuda.ads
! 0a40dfcc8e1b7744d66f0ae1f975124d  gcc/ada/gnat_rm.texi
! ed78f1c8a80ae6943360cd5d22074c2d  gcc/ada/gnat_ugn.texi
! 957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
! fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
! aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
! e7512e43fd2370e49f1edc56ff00f814  gcc/ada/gnatclean.adb
! 89b18e049a1fd18c70b9d115163279a3  gcc/ada/gnatcmd.adb
! 6afc1784ef0e925e97f76e206a607a43  gcc/ada/gnatcmd.ads
! 3be98883e79ac8778761757067407253  gcc/ada/gnatdll.adb
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
! 2eddc8dde06f1e8d1ae7a527fb72c263  gcc/ada/gnatkr.adb
! d7392969bf1bfb1dc263eadee42f41a4  gcc/ada/gnatkr.ads
! 396c7dd9ce4bc049ae401461ae99943a  gcc/ada/gnatlink.adb
! b82b4a0c5285d19d7f428258166a8842  gcc/ada/gnatlink.ads
! e4d52da60b01c43b1314ebb8d2d4d3fd  gcc/ada/gnatls.adb
! e204de79f4f6b64632812ec5d99d0161  gcc/ada/gnatls.ads
! 935368c541333d5578cff90a09b46ea5  gcc/ada/gnatmake.adb
! 822dd99ad504552e2dc5b25c21a83a10  gcc/ada/gnatmake.ads
! 9a61b6686062c9112d5e1cf39bf14634  gcc/ada/gnatname.adb
! 4a7d5ae08e1a94b6b347d409b7e42fee  gcc/ada/gnatname.ads
! 15c858737c65573c5aca2a5cd9f6fa1f  gcc/ada/gnatprep.adb
! d84f29439bcbc88c275e531630e2e14e  gcc/ada/gnatprep.ads
! 0379d608ffd6184838fab6a63cea3bcd  gcc/ada/gnatvsn.adb
! b7b3be950461d385bd4e7a0d094dec50  gcc/ada/gnatvsn.ads
! b06692d44846cc28fe529c1ea2f3ded6  gcc/ada/gprep.adb
! 56f06790ba3f6dfe539fa7f244e80e53  gcc/ada/gprep.ads
! 5092f371a9240b2413cc69a5274d3b71  gcc/ada/gsocket.h
! e4efe68d0e25214fe54b93342a51d8bd  gcc/ada/hostparm.ads
! b18590491ceee0c729cf111d19381239  gcc/ada/impunit.adb
! 7407048c8e72f7cc4527e91ef1efd1c8  gcc/ada/impunit.ads
! 14804d79740943cb179f803307da9e2d  gcc/ada/indepsw-aix.adb
! ee1cd4291748880452771b977bf8cb70  gcc/ada/indepsw-darwin.adb
! ea767dec8fd43eff8cefde339b3a7d04  gcc/ada/indepsw-gnu.adb
! 9ca5d3c618970776de091507be452127  gcc/ada/indepsw.adb
! 8c188167519fcde228e7406b86ad3c4f  gcc/ada/indepsw.ads
! 324bfcf5783f5fe995a7a45585bb4027  gcc/ada/init.c
! c45e7a63e33e0bdb85ff3e50d0220aa4  gcc/ada/initialize.c
! a673ff67b6ae705c38498323facfe913  gcc/ada/inline.adb
! 91cdabaa5b703885dad7b8dc5df17446  gcc/ada/inline.ads
! 8d71a48789cbec10ceabfe68770803c1  gcc/ada/itypes.adb
! f62835b6268c11341ad683753a9d7acd  gcc/ada/itypes.ads
! c36aee8053df31ac269700edd9bb8db0  gcc/ada/krunch.adb
! cb8b4ae7eda616665ff5623008560e83  gcc/ada/krunch.ads
! 972b98804bcc6a31ccbbef2516112a6b  gcc/ada/layout.adb
! b4b99fcd90ad634233395f84a0a1a6eb  gcc/ada/layout.ads
! 3f0bde567ad1e8961d92e121563b097d  gcc/ada/lib-list.adb
! c19c0c49ef73ed8cdf3cee6528add96d  gcc/ada/lib-load.adb
! abb502e358163dc5e01633496a0013fc  gcc/ada/lib-load.ads
! 201c53c6d3da32513befd9354402706e  gcc/ada/lib-sort.adb
! 1700161465ece50ec303564c1d488050  gcc/ada/lib-util.adb
! 1cbf7ce71e82c406e945d0a1195bd1e1  gcc/ada/lib-util.ads
! 032b8ca64ed246437f606200b97362e1  gcc/ada/lib-writ.adb
! b6ab6aa41e1a35af588f7ac62bd68af4  gcc/ada/lib-writ.ads
! 2db0cbf7507c9f00553b185968d7acaa  gcc/ada/lib-xref-spark_specific.adb
! c46c7909c69914753823cfbfb23fa8a4  gcc/ada/lib-xref.adb
! 2011d6e281dc4b4ce8a65a6fbc96b843  gcc/ada/lib-xref.ads
! fc5fc8c03612cddf005a40a6b30b8c26  gcc/ada/lib.adb
! 630811288c9aecb02b5c0a34ba570c9f  gcc/ada/lib.ads
! 2d8ce9872083b9f641e37150d0bb18f1  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
  c4e9620896065355c1895fb26186b8d2  gcc/ada/libgnarl/a-diroro.ads
  d33d03640fb0fae0a821bbeb1be518f7  gcc/ada/libgnarl/a-disedf.ads
! 629ddd1f4717cf0b25b29fc4813dbcb2  gcc/ada/libgnarl/a-dispat.adb
  380695cb64d70014260c4cbc5dc99e54  gcc/ada/libgnarl/a-dispat.ads
! dcfee141406fe7573ddf8574defa5fd6  gcc/ada/libgnarl/a-dynpri.adb
! 337018b2e7333fccdf4c461e42f432af  gcc/ada/libgnarl/a-dynpri.ads
! d0dcad42c7f5527c0d09aa31191ce38e  gcc/ada/libgnarl/a-etgrbu.ads
  3e60794a02e6ff3380c0daf20c7c6bc2  gcc/ada/libgnarl/a-exetim.ads
! 4f7403826558b9ee6619814ebe5f8def  gcc/ada/libgnarl/a-exetim__darwin.adb
! f2529d7d954706cdf38dcf20a54542d7  gcc/ada/libgnarl/a-exetim__default.ads
! 44b1424bb64f2bbef09199c17aef5a81  gcc/ada/libgnarl/a-exetim__mingw.adb
! 3f2dbfd846f53bf0d8341f97fd861b11  gcc/ada/libgnarl/a-exetim__mingw.ads
! 8ca19f8965fe4788269ea0453ba41605  gcc/ada/libgnarl/a-exetim__posix.adb
  8a70e70c5d53efd2ae8de2a025db3217  gcc/ada/libgnarl/a-extiin.ads
  66ba8470ba07e36d23031779e1ebee31  gcc/ada/libgnarl/a-extiti.ads
! 5be8214b69f1a8d9f25fa63bdeca1bd8  gcc/ada/libgnarl/a-interr.adb
! e6a287a75df88defdff2658cd134b9d6  gcc/ada/libgnarl/a-interr.ads
! fbddf70376fbd8225b17e6121af83b06  gcc/ada/libgnarl/a-intnam.ads
! 6eb7816f16a165ccbc4beb28d22ca047  gcc/ada/libgnarl/a-intnam__aix.ads
! 41169eae70ef05cdca7e32e4aa4ecbb7  gcc/ada/libgnarl/a-intnam__bsd.ads
! 5e72dc91a6157317fa4e36c89f156243  gcc/ada/libgnarl/a-intnam__darwin.ads
! a85b0b69ffb06ebc672b1060975d4240  gcc/ada/libgnarl/a-intnam__dummy.ads
! c7cd44a70fce2c44aae5e911bbed05ee  gcc/ada/libgnarl/a-intnam__hpux.ads
! 78fb90293eb8158b06d0f0d54e4e958f  gcc/ada/libgnarl/a-intnam__linux.ads
! 96912936308f076c7b25c460212c69b4  gcc/ada/libgnarl/a-intnam__lynxos.ads
! 759a36c1a613efbcada567867e9ff71a  gcc/ada/libgnarl/a-intnam__mingw.ads
! 17fa42eeecc3c08703a0b6b6ce25f123  gcc/ada/libgnarl/a-intnam__qnx.ads
! 2088e01aff9a37982111f697912627c2  gcc/ada/libgnarl/a-intnam__rtems.ads
! 40db69557cc1eda33c5e3e78513c5f36  gcc/ada/libgnarl/a-intnam__solaris.ads
! 5ec6d0a19b8f9f6b494675f9a0f7f17a  gcc/ada/libgnarl/a-intnam__vxworks.ads
! f626c02c71b19b6863efb092b7b02e5e  gcc/ada/libgnarl/a-reatim.adb
! f5c73cf45a3b76aec3e674c94a8806be  gcc/ada/libgnarl/a-reatim.ads
! 42ef9cfbc1828848acad606286bcf63f  gcc/ada/libgnarl/a-retide.adb
! b5377872c0645a63597ac1d214902206  gcc/ada/libgnarl/a-retide.ads
! 21d4525c155dd31cab4229f7f6c6d2a0  gcc/ada/libgnarl/a-rttiev.adb
! 5e3491343bc03616255b8d5f42a39cb6  gcc/ada/libgnarl/a-rttiev.ads
  c04bb8934366f43faa60d914e7ebea7a  gcc/ada/libgnarl/a-stcoed.ads
! 9c6c5ec608054cb9f8d3e4b7b19c9c97  gcc/ada/libgnarl/a-synbar.adb
! cd98b5f4663e198ab5194e652b7df58c  gcc/ada/libgnarl/a-synbar.ads
! b738e4a9820ed618e004930f19779abd  gcc/ada/libgnarl/a-synbar__posix.adb
! 2e7483c4a6b759489ca9ec6523a9decf  gcc/ada/libgnarl/a-synbar__posix.ads
! 83f1e734ef59514d08f0513f31d67b79  gcc/ada/libgnarl/a-sytaco.adb
! 91b28b3fa128bb6c32dd4c3d9ee4e0fe  gcc/ada/libgnarl/a-sytaco.ads
! 90a1a6010ceb30838371034cddc6b7ef  gcc/ada/libgnarl/a-tasatt.adb
! 0ef8e550e2240913458310113866e236  gcc/ada/libgnarl/a-tasatt.ads
! f0df6fe3230f1805261bec2afdbb09e3  gcc/ada/libgnarl/a-taside.adb
! a2edde7ccca7b55bbfbaea873905280e  gcc/ada/libgnarl/a-taside.ads
! b697f26dec24240b099addc7c217a749  gcc/ada/libgnarl/a-tasini.adb
! 5f03d4b3ec64f9c06b2200813e2a4c0e  gcc/ada/libgnarl/a-tasini.ads
! ca8150ed2a9df0874c37ab8b7b80d8f9  gcc/ada/libgnarl/a-taster.adb
  281fc9a014bf9c5a3677f1dd38cc9d5d  gcc/ada/libgnarl/a-taster.ads
! b570f0242d8b4301b6c195cc51646664  gcc/ada/libgnarl/g-boubuf.adb
! e4a22a7653dda16cf6f3caf2bda5be26  gcc/ada/libgnarl/g-boubuf.ads
! 55d7826e40be62ab1bdce570a7a2f35a  gcc/ada/libgnarl/g-boumai.ads
! cf002063cc9a9c6ce892ebd7ea8b1097  gcc/ada/libgnarl/g-semaph.adb
! 4b24039d96d030ff946ec84ea2910f65  gcc/ada/libgnarl/g-semaph.ads
! f410d7f16c370a92cb7769bc3076c30d  gcc/ada/libgnarl/g-signal.adb
! 2d31d44a6547d7a5d997c430428200eb  gcc/ada/libgnarl/g-signal.ads
! 204da14e3d4ab7f63f3c6d180d66eafb  gcc/ada/libgnarl/g-tastus.ads
! b7fcb6190a7cb246427cc0c391eca9a7  gcc/ada/libgnarl/g-thread.adb
! 1f0e8e8030f540ae15c9ff961bcebe7b  gcc/ada/libgnarl/g-thread.ads
  5cfb9f62dd9599caab03143b5745a967  gcc/ada/libgnarl/libgnarl.gpr
! f08c10f2b986c058293a8947d44a71b1  gcc/ada/libgnarl/s-inmaop.ads
! 08b7b354a85ade80865816207b7d3408  gcc/ada/libgnarl/s-inmaop__dummy.adb
! f8da7386d0ad03df73aabcc8db148ab0  gcc/ada/libgnarl/s-inmaop__hwint.adb
! ee45264973e4002c5cfa72756287bf88  gcc/ada/libgnarl/s-inmaop__posix.adb
! 21c65600c5371e109634e6f29060396d  gcc/ada/libgnarl/s-interr.adb
! a1b0bb6d4e2e22044628dd09ece2baf2  gcc/ada/libgnarl/s-interr.ads
! e14aa658e86eefadb0ca5c98e85d576a  gcc/ada/libgnarl/s-interr__dummy.adb
! 02f986551c30f4736838d302b621797e  gcc/ada/libgnarl/s-interr__hwint.adb
! 1b4a93ea6b28bebcce7a185472d3991d  gcc/ada/libgnarl/s-interr__sigaction.adb
! f0abaaf01f22437430f60e7fcb2cc6fc  gcc/ada/libgnarl/s-interr__vxworks.adb
! 16f70c30222264be54d481f031bcdbc8  gcc/ada/libgnarl/s-interr__vxworks.ads
! dfa57e04275303bad5f7bda982ee5afe  gcc/ada/libgnarl/s-intman.ads
! 7c086f2cb95f8f00345bd85c74efff52  gcc/ada/libgnarl/s-intman__android.adb
! 61ccdf55cf4008f463d7feb72c78f8b6  gcc/ada/libgnarl/s-intman__cheribsd.adb
! 4f75535ce9987b44336ad5c49ec0ca91  gcc/ada/libgnarl/s-intman__dummy.adb
! 3b302d5240a21045f80ad63d7d3f5c94  gcc/ada/libgnarl/s-intman__lynxos.adb
! db693a6c3ad65fcc423e2e0ca390521d  gcc/ada/libgnarl/s-intman__mingw.adb
! df3ab9da38904e0048594bd01424fd30  gcc/ada/libgnarl/s-intman__posix.adb
! cd69e09a25cb6374c8308e8eeb6c2825  gcc/ada/libgnarl/s-intman__qnx.adb
! 94e4b4d8002f0a7f86f137f507df1e89  gcc/ada/libgnarl/s-intman__rtems.adb
! fe5d44bcdcd16cb7254131c05dc8f7e1  gcc/ada/libgnarl/s-intman__rtems.ads
! 0ea6d3a73faf2d38ee399d4f50be678d  gcc/ada/libgnarl/s-intman__solaris.adb
! e2bf398dfdddb692d0fa1eba019712b8  gcc/ada/libgnarl/s-intman__susv3.adb
! 40c4cf2cc30dbdf094af276c8aa467b6  gcc/ada/libgnarl/s-intman__vxworks.adb
! 3f1fb13bf3641685cdebf9e08b0c5a15  gcc/ada/libgnarl/s-intman__vxworks.ads
! cee21258ec217f5bc4c93b53338907fc  gcc/ada/libgnarl/s-linux.ads
! 6d314e92a3b56ca40a8a9e5b6239016f  gcc/ada/libgnarl/s-linux__alpha.ads
! 2066fb7f4547c2b77a477a83ecc3f8fd  gcc/ada/libgnarl/s-linux__android-aarch64.ads
! 8bf90e361befe575c48d29fff4de5299  gcc/ada/libgnarl/s-linux__android-arm.ads
! d22fe1a709ddc4cdc74f74d554f43900  gcc/ada/libgnarl/s-linux__hppa.ads
! 0bd8e0c79a206dbd8f6e3f9f8659dc22  gcc/ada/libgnarl/s-linux__loongarch.ads
! 4c7f49a2160e20a8f2c0f58b19aa6400  gcc/ada/libgnarl/s-linux__mips.ads
! 8d9e9ac6fa18a08ea69f59b5490cef5d  gcc/ada/libgnarl/s-linux__riscv.ads
! 0e84fd9b796f81b071ec2d24c7a6dfa2  gcc/ada/libgnarl/s-linux__sparc.ads
! 23594321753c7f59c7e57162d6efba47  gcc/ada/libgnarl/s-linux__x32.ads
! 364ae12ee38d618d1fc6acff22c96b65  gcc/ada/libgnarl/s-mudido.adb
  d3d1bd17a6972764e499389c7f19f407  gcc/ada/libgnarl/s-mudido.ads
! 31f7763dd12508f385bc86b8eec93ea3  gcc/ada/libgnarl/s-mudido__affinity.adb
! 3becd2c298bd7c470ccc7bf82838d5fb  gcc/ada/libgnarl/s-osinte__aix.adb
! 53bc92ac83a223844c31b801885045e7  gcc/ada/libgnarl/s-osinte__aix.ads
! 25bc7b4a9176142c5dac0efa7169582c  gcc/ada/libgnarl/s-osinte__android.adb
! 9945ea2ec34b570daed42bfca5e308cb  gcc/ada/libgnarl/s-osinte__android.ads
! 9ab06dc131a653e8fa05a0850dde1c78  gcc/ada/libgnarl/s-osinte__cheribsd.ads
! b02df80b976018edcba09beb2acf70c8  gcc/ada/libgnarl/s-osinte__darwin.adb
! 3e2d7674ec46f394cb7b42b0a7c1b777  gcc/ada/libgnarl/s-osinte__darwin.ads
! 7e8a9abab76c014a99b1adc336046c0d  gcc/ada/libgnarl/s-osinte__dragonfly.adb
! ef3ac9294ccb6b56976902644abcb613  gcc/ada/libgnarl/s-osinte__dragonfly.ads
! d0adde9ec7603828a012fdaaadaad630  gcc/ada/libgnarl/s-osinte__dummy.ads
! 0cc8c8f1cced253be31fe712d0436fc2  gcc/ada/libgnarl/s-osinte__freebsd.adb
! bbdfb410b09f4c31e9a5294ff5e89652  gcc/ada/libgnarl/s-osinte__freebsd.ads
! 7fcf464fed12b261cda6a8ae8b930893  gcc/ada/libgnarl/s-osinte__gnu.adb
! 976ea88abc46b277b4e78a061b3408f2  gcc/ada/libgnarl/s-osinte__gnu.ads
! 6f513b2e61a890d10a4148fe02224442  gcc/ada/libgnarl/s-osinte__hpux.ads
! cd8f41a46e05396faff25ff6775ad1c4  gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
! 4b25d1026167e0e767e441aace4d5612  gcc/ada/libgnarl/s-osinte__linux.ads
! e084ee9e953258aab9bff358dd2ff17b  gcc/ada/libgnarl/s-osinte__lynxos178.adb
! 85abe305cc8852f629527536a8f2897b  gcc/ada/libgnarl/s-osinte__lynxos178e.ads
! 97b5f8ffb8f4e099279499b8d8b99045  gcc/ada/libgnarl/s-osinte__mingw.ads
! d65c90a0924d038d91f11b0ae6482c26  gcc/ada/libgnarl/s-osinte__posix.adb
! fa52106df94a5e93578c34e6eb0563ba  gcc/ada/libgnarl/s-osinte__qnx.adb
! 23cdfb245a776851c0c5dd8bbc3e1119  gcc/ada/libgnarl/s-osinte__qnx.ads
! b6af399c7393b6ca3bdcc39db7007ca6  gcc/ada/libgnarl/s-osinte__rtems.adb
! cf413438984dffd7f40f63b4ca904d1e  gcc/ada/libgnarl/s-osinte__rtems.ads
! 52c671a642479c453e5008b6b04a1849  gcc/ada/libgnarl/s-osinte__solaris.adb
! 7802e7b0c0b6e0620b963fae44130d57  gcc/ada/libgnarl/s-osinte__solaris.ads
! cdfc3c84534ebb5e88089f9452c43178  gcc/ada/libgnarl/s-osinte__vxworks.adb
! a331b676d52b1df7647734de25dcb4f3  gcc/ada/libgnarl/s-osinte__vxworks.ads
! 7c9fc37de10c3ce31506deb8d0656582  gcc/ada/libgnarl/s-osinte__x32.adb
! 837352c7f2da9fbf253e7640abc6473d  gcc/ada/libgnarl/s-proinf.adb
! d9322225886886bb45307ab213ae42e8  gcc/ada/libgnarl/s-proinf.ads
! 4122ae8b3a539cc4a29f73174919e9e9  gcc/ada/libgnarl/s-putaim.adb
! 3bd2db7a9f6861677714212e8d84797b  gcc/ada/libgnarl/s-putaim.ads
! c490e53799847d22dca76f3aa82718e7  gcc/ada/libgnarl/s-qnx.ads
! 814bcd91d4b539d7bd20024c8c507881  gcc/ada/libgnarl/s-solita.adb
! 4d820958426efff634a0d493ff53d34a  gcc/ada/libgnarl/s-solita.ads
! 3fcc109ac10c373ba2e23de8fe4368a6  gcc/ada/libgnarl/s-stusta.adb
! b11059929f065d4d1e1b673b9277fa04  gcc/ada/libgnarl/s-stusta.ads
! c89a036a39ffacecc45eb509f8bb6772  gcc/ada/libgnarl/s-taasde.adb
! 3927a6965bb4832625cd9b69d3e143b0  gcc/ada/libgnarl/s-taasde.ads
! 3fb7fcf667b5f1e58ad3bdbe8567f6d4  gcc/ada/libgnarl/s-tadeca.adb
! 68ba5d4bed9383af814d54578a682f11  gcc/ada/libgnarl/s-tadeca.ads
! d475a343d3eed38d614303ac03b832a7  gcc/ada/libgnarl/s-tadert.adb
! 363a9e8c563e893471edc117848f712a  gcc/ada/libgnarl/s-tadert.ads
! 1e899c9fe49c838fe1ecc0947ad2ee2c  gcc/ada/libgnarl/s-taenca.adb
! caca0580484d424b20706cb62d19b724  gcc/ada/libgnarl/s-taenca.ads
! 57e16a30c4f1191e98437b22b4da797a  gcc/ada/libgnarl/s-taprob.adb
! 49a07992177fb6dffe1ac26e70bfb70c  gcc/ada/libgnarl/s-taprob.ads
! b11be01de6f079f6e83c844e9fdaf759  gcc/ada/libgnarl/s-taprop.ads
! 280c57372c08d2232f1f1a417ac07c04  gcc/ada/libgnarl/s-taprop__dummy.adb
! 4dea01d120792b0f35f1aec470e7fdfb  gcc/ada/libgnarl/s-taprop__linux.adb
! 19097481817acd9d3de1ed84aa731c02  gcc/ada/libgnarl/s-taprop__mingw.adb
! 139d97e773970f5955d60a4af95755cb  gcc/ada/libgnarl/s-taprop__posix.adb
! 0b2fc8f721a6a0bc01298150b1c53ce7  gcc/ada/libgnarl/s-taprop__qnx.adb
! eba7cc72920c9e16506a4955d48cb118  gcc/ada/libgnarl/s-taprop__rtems.adb
! 104d07db999e099651f78090c1aba2aa  gcc/ada/libgnarl/s-taprop__solaris.adb
! b39ef266fae76cd2e0212f3614e5df15  gcc/ada/libgnarl/s-taprop__vxworks.adb
! 54f9a84166acb856f39a340a63cbe93d  gcc/ada/libgnarl/s-tarest.adb
! f943e29ed85f640ca38027258124108b  gcc/ada/libgnarl/s-tarest.ads
! c084158198a46d6300e6a017e3230ba1  gcc/ada/libgnarl/s-tasdeb.adb
! 9a6f5efe54f575936ec7afb17a2209f8  gcc/ada/libgnarl/s-tasdeb.ads
! bc1be7ed257dc2bc42b04b39ca2bd2fb  gcc/ada/libgnarl/s-tasinf.adb
! 92b558c45d559fc8ee39f44499f008a3  gcc/ada/libgnarl/s-tasinf.ads
! 8f4495cc96f6d9452aaec62e78c5fda7  gcc/ada/libgnarl/s-tasinf__linux.adb
! 1b00c71f357ec5af83d42fde1159836d  gcc/ada/libgnarl/s-tasinf__linux.ads
! 2bd9080e4ba4ea1766b54084df074c32  gcc/ada/libgnarl/s-tasinf__mingw.adb
! 36ec7aa0fa9bab70aa6060e848751a66  gcc/ada/libgnarl/s-tasinf__mingw.ads
! 77f075c6e56bdca08b741f151f9eb005  gcc/ada/libgnarl/s-tasinf__solaris.adb
! 6d3b4bd0f78a68204164d82adea0aace  gcc/ada/libgnarl/s-tasinf__solaris.ads
! 3f433df8312f68fc2bbd7e62d2becc35  gcc/ada/libgnarl/s-tasinf__vxworks.ads
! 0b8d89b5603a2f2889fd533367bdfacf  gcc/ada/libgnarl/s-tasini.adb
! 99bac631458d5922e3e0dfbfc446d7de  gcc/ada/libgnarl/s-tasini.ads
! b47c7bdcc14eca2ae99c4167907594de  gcc/ada/libgnarl/s-taskin.adb
! 05e470fc3683404131c26ea2204c22d0  gcc/ada/libgnarl/s-taskin.ads
! a52055c2269c1f0aec1997726982cd79  gcc/ada/libgnarl/s-taspri__dummy.ads
! 4e55db4097d62b4fb7fb4ba8157941e9  gcc/ada/libgnarl/s-taspri__lynxos.ads
! 906bfae84e8ffe3ff6c0a68b9e656a52  gcc/ada/libgnarl/s-taspri__mingw.ads
! de6024645e8981661fac17c30b9f9919  gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
! 54de81ebea56ac5e1b987c0400e7d0c8  gcc/ada/libgnarl/s-taspri__posix.ads
! 031c5dca67d492296dad2a7d8e431cef  gcc/ada/libgnarl/s-taspri__solaris.ads
! f0b3eceb2b9265a6b8d06c18e1773ca0  gcc/ada/libgnarl/s-taspri__vxworks.ads
! ac23cdf83e13f4c3400030cce9d6201e  gcc/ada/libgnarl/s-tasque.adb
! ae0a263b4415dd958a4c21f8d7d844d6  gcc/ada/libgnarl/s-tasque.ads
! f92e9f8737cb531736927ccb20d28ad9  gcc/ada/libgnarl/s-tasren.adb
! c697c2af313ddae26a66274f559f1e7a  gcc/ada/libgnarl/s-tasren.ads
! fea46813e8ede9053f553123f1ca243e  gcc/ada/libgnarl/s-tasres.ads
! 58509f748777a96ab1603be7697071de  gcc/ada/libgnarl/s-tassta.adb
! b26d6e71786c33c74864abaef9d24a4a  gcc/ada/libgnarl/s-tassta.ads
! 7ac5d77331db12d14f3b28f0861fc1f6  gcc/ada/libgnarl/s-tasuti.adb
! 7920394e74237db6e4634763a3dd4479  gcc/ada/libgnarl/s-tasuti.ads
! 9b67cc1a8ff31be74f1b20f931319e65  gcc/ada/libgnarl/s-tataat.adb
! 60af2b80bfdc1ed1eb024c0ae678de9b  gcc/ada/libgnarl/s-tataat.ads
! 29fc8c379c92b29214a58b2e8b311250  gcc/ada/libgnarl/s-tpinop.adb
! 07fdf2f2bf99dd6cea088e1f5bd7e56e  gcc/ada/libgnarl/s-tpinop.ads
! 3ec6d8f714739a317b154e899558c242  gcc/ada/libgnarl/s-tpoaal.adb
! aefd5d1e80de6e3dc89dc7112c4f51a3  gcc/ada/libgnarl/s-tpoben.adb
! 26b313bfa89bf0a14e3c545074761fb8  gcc/ada/libgnarl/s-tpoben.ads
! 62b4e52eb7da581de7f79ac7eb8468a6  gcc/ada/libgnarl/s-tpobmu.adb
! ddc67f556f86c19ec24fd9af67430750  gcc/ada/libgnarl/s-tpobmu.ads
! 34a021ea0618b151210bbf3c86eaa86a  gcc/ada/libgnarl/s-tpobop.adb
! 5a8af191f2b87f46b05c86f91bbc0a84  gcc/ada/libgnarl/s-tpobop.ads
! b2484ffb0d51796e099f6b0ccb18fbd8  gcc/ada/libgnarl/s-tpopmo.adb
! 32f7de82b985a0cc7a5444e9c725a42f  gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
! a76b1d1e198b27bddd79aa30ea83e1a6  gcc/ada/libgnarl/s-tpopsp__posix.adb
! bd4a3d0786d1779bbae6d1901ab24a31  gcc/ada/libgnarl/s-tpopsp__solaris.adb
! 12aa8b83a9bfe9c77ed50a19fb270e6b  gcc/ada/libgnarl/s-tpopsp__tls.adb
! 0295e85e9777b0b23eef4f12264f8a91  gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
! f310c0d9018b0da1b7a1f8db30b92cc2  gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
! bd1451aa3970a1daa35ee591b1509555  gcc/ada/libgnarl/s-tpopsp__vxworks.adb
! 07ed9a13044d9c23227fe17ebc75aa80  gcc/ada/libgnarl/s-tporft.adb
! c27e00e69445602d8e7867c8bded6fe1  gcc/ada/libgnarl/s-tposen.adb
! 0458445f7dc10d7e3b11d0a15db0f419  gcc/ada/libgnarl/s-tposen.ads
! 5ac2277eb973100c56534e7f1c879cf9  gcc/ada/libgnarl/s-vxwext.adb
! 849b9e4094cfad502b06b64e340e7d5e  gcc/ada/libgnarl/s-vxwext.ads
! f8152252ae8a5b3304a0f9d685698dcf  gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
! 6a8ce26c96d0d0d309724954cebf8f92  gcc/ada/libgnarl/s-vxwext__kernel.adb
! 9621e2c900bbb9d71a8e0d5ce13e1d09  gcc/ada/libgnarl/s-vxwext__kernel.ads
! be5dfb037725f73d5b258d3c3d23055e  gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
! 9c3d298486139fde6c3156f66c4ceea1  gcc/ada/libgnarl/s-vxwext__rtp.adb
! 39773f3ff2c40b0a39c1139970dc2f51  gcc/ada/libgnarl/s-vxwext__rtp.ads
! f86089c5c888179e84ffdbc8416697e5  gcc/ada/libgnarl/s-vxwork__aarch64.ads
! fa5759b69bc057d7e5e8d5aad253b1d0  gcc/ada/libgnarl/s-vxwork__arm.ads
! a9a44aa79167e735cad6ece94a996cf9  gcc/ada/libgnarl/s-vxwork__ppc.ads
! 8d5d15b126fb1d11ebf8acf8df6fbdb9  gcc/ada/libgnarl/s-vxwork__x86.ads
! ee87be6fd17deeb1044c5571873d8b32  gcc/ada/libgnarl/thread.c
! 19af4cc34bc9c2510af6dad6fa46d0bd  gcc/ada/libgnat/a-assert.adb
! a9e6f8c7ff04b14b73d6100a7f336849  gcc/ada/libgnat/a-assert.ads
! 9f496b671b203e5eb54eb5ed312ffa86  gcc/ada/libgnat/a-btgbso.adb
! c2199f538c7beecff43a816127451ef8  gcc/ada/libgnat/a-btgbso.ads
! 7be8d1ccb6a5f79a0dc5f5547cfa25ac  gcc/ada/libgnat/a-calari.adb
! 6a40876b746e6df54a0e76aa4293700e  gcc/ada/libgnat/a-calari.ads
! b1588f448e1bfcadc0ef11876d9a4198  gcc/ada/libgnat/a-calcon.adb
! 100dc0e25b19b06e674b97a54983a819  gcc/ada/libgnat/a-calcon.ads
! 2548ef7af48aac0031d579e8e93198e4  gcc/ada/libgnat/a-caldel.adb
! f231833a1ff7a48232b1159c51481f11  gcc/ada/libgnat/a-caldel.ads
! 2b2058290cadb2bf1d58e993ef65378f  gcc/ada/libgnat/a-calend.adb
! 58891b8f4212994cc869226814cd8c3f  gcc/ada/libgnat/a-calend.ads
! 255ab4aa146bfc13c622bc430f4cd06d  gcc/ada/libgnat/a-calfor.adb
! 42e2eb28d020217b4a0627bc1cc321ea  gcc/ada/libgnat/a-calfor.ads
! 6f6c9c798d73e0ea29f72d3fa05a0ed3  gcc/ada/libgnat/a-catizo.adb
  d731f2a00c2328507e1708628b8f8534  gcc/ada/libgnat/a-catizo.ads
! 152d7a7e6487f59656c18275fb1019b7  gcc/ada/libgnat/a-cbdlli.adb
! 7e71a77b7ce68633d73f5e8553a7e95b  gcc/ada/libgnat/a-cbdlli.ads
! 95e5eb7a6da0c84ffcf80fd16bec8909  gcc/ada/libgnat/a-cbhama.adb
! 597a8cb501b0d5e9195f714d6f240fc5  gcc/ada/libgnat/a-cbhama.ads
! 9223e8d2808faab558fea487a6f7533a  gcc/ada/libgnat/a-cbhase.adb
! 2618731613309e98934dd5386b4dc20c  gcc/ada/libgnat/a-cbhase.ads
! 47d4b5a405ecab1cb8ba5d73e8fd812f  gcc/ada/libgnat/a-cbmutr.adb
! dde74adfde60cdcf3f792ddea6aad929  gcc/ada/libgnat/a-cbmutr.ads
! f4075ce629781e290f28b39f1b2a6aa9  gcc/ada/libgnat/a-cborma.adb
! 2df8a2fc821610d9db32e1a1852338f7  gcc/ada/libgnat/a-cborma.ads
! ce39f9033205b08c92e449751517c387  gcc/ada/libgnat/a-cborse.adb
! 04148aac156b6b08abc90646342694d7  gcc/ada/libgnat/a-cborse.ads
! c144ddc5a265902a3bde5b45c59f5673  gcc/ada/libgnat/a-cbprqu.adb
! 289739386f4e762d1761b81902c415f4  gcc/ada/libgnat/a-cbprqu.ads
! 77ae402d871ed473b27ebd363a5f9752  gcc/ada/libgnat/a-cbsyqu.adb
! 93c3a22500d5f5f8e7dbc2cbe5f106ed  gcc/ada/libgnat/a-cbsyqu.ads
! aec41d0dc8752a7e61ffd8dbf240eecc  gcc/ada/libgnat/a-cdlili.adb
! feafe0e787115ecf109db021f1f88398  gcc/ada/libgnat/a-cdlili.ads
! d6afdab007e928c0b08ae1b1a6c5f539  gcc/ada/libgnat/a-cfdlli.ads
! 445e0235bde25da54d7d302057d5c9e0  gcc/ada/libgnat/a-cfhama.ads
! 6762ef57046ecf66345ccba7a3361fdd  gcc/ada/libgnat/a-cfhase.ads
! 3242d30b985ac6a6b644cc3839bf01c3  gcc/ada/libgnat/a-cfidll.ads
! e1e84784ac2a9c2d169e07b1b74975e5  gcc/ada/libgnat/a-cfinse.ads
! b5b3d5a8a9a56f322f67299496fc6628  gcc/ada/libgnat/a-cfinve.ads
! 047ffbb4ed2ed1f1b1957de5cb2accfc  gcc/ada/libgnat/a-cforma.ads
! b8e37c0937bd30db3e92dde7b94de453  gcc/ada/libgnat/a-cforse.ads
! 32077c4cfc5a387bbf3c1647a9860a07  gcc/ada/libgnat/a-cgaaso.adb
! a36cea540329498aa8da99d29c9bde7a  gcc/ada/libgnat/a-cgaaso.ads
! 84bf7e7d8e401893e66b049dd3479efb  gcc/ada/libgnat/a-cgarso.adb
  ef7fab6c5e61256ac64c9dae1dd27960  gcc/ada/libgnat/a-cgarso.ads
! 85e9988a777acc7729bd5289f51f088a  gcc/ada/libgnat/a-cgcaso.adb
  68226484befc5e389cd3dafaab608090  gcc/ada/libgnat/a-cgcaso.ads
! a919a98358e91764a388a37495ddea0e  gcc/ada/libgnat/a-chacon.adb
! 8ea1164d448da7fcd6432656d045667e  gcc/ada/libgnat/a-chacon.ads
! 189bf9804e4cd451643f4fde6bd15a56  gcc/ada/libgnat/a-chahan.adb
! 642849a168af2a033fe2ae539152ad9e  gcc/ada/libgnat/a-chahan.ads
  00b37c98f6f96d2b5499c1f98cb503f0  gcc/ada/libgnat/a-charac.ads
  1e2a45aa2f9324faab423eb0f9a85a8e  gcc/ada/libgnat/a-chlat1.ads
! 27eb0add67f3c419caf8b776a1987db3  gcc/ada/libgnat/a-chlat9.ads
! 2f3862fc818dfc9213fffa4a04b28981  gcc/ada/libgnat/a-chtgbk.adb
! f7387caa985fd76710d0a9c73f0019dd  gcc/ada/libgnat/a-chtgbk.ads
! 722f08d68bcf207fea2bb86143ba9f95  gcc/ada/libgnat/a-chtgbo.adb
! a771649ffaedc458cb1b9f0eb1ac1d28  gcc/ada/libgnat/a-chtgbo.ads
! 5c63ee79250d1e91f359a415439dd444  gcc/ada/libgnat/a-chtgke.adb
! d82c227b01d9408d7663b416d6983fdf  gcc/ada/libgnat/a-chtgke.ads
! 87915bfb6171c83df816b30e1a04d61d  gcc/ada/libgnat/a-chtgop.adb
! d1ae04dc56ccbba0038600f2e2bc41fe  gcc/ada/libgnat/a-chtgop.ads
! 5abcb34a79a11c10a83a03e029fff24d  gcc/ada/libgnat/a-chzla1.ads
! 8ec7266ebf791f97610d4686129af100  gcc/ada/libgnat/a-chzla9.ads
! 9698171820e08c7ac92aac12d641f438  gcc/ada/libgnat/a-cidlli.adb
! 6a76ada09f5f7342aa9c1b20bd90b014  gcc/ada/libgnat/a-cidlli.ads
! 8798d5e055eea93eb70b98c62c3fe5c3  gcc/ada/libgnat/a-cihama.adb
! 87c5a25780ccd0405b36eb4ea6b936a7  gcc/ada/libgnat/a-cihama.ads
! b0299538595207b1e6ba4305c043e666  gcc/ada/libgnat/a-cihase.adb
! 85a998bd74a23113ca5d444836595b34  gcc/ada/libgnat/a-cihase.ads
! 15c61d7220f581219c7b8ade1a0894c6  gcc/ada/libgnat/a-cimutr.adb
! 7494b000e700238e5c91db4432c9eac6  gcc/ada/libgnat/a-cimutr.ads
! 662527cf8705f553c701a91ececa7159  gcc/ada/libgnat/a-ciorma.adb
! 0108a581adec1d13bc8d06a1860801a1  gcc/ada/libgnat/a-ciorma.ads
! 798b14d8f6a90bf1279ca929ae95ea7f  gcc/ada/libgnat/a-ciormu.adb
! c9c0116cf4b58e1c591f4ef85dfe487c  gcc/ada/libgnat/a-ciormu.ads
! 9385d5efb9d022151edf1aa7de2e8cc2  gcc/ada/libgnat/a-ciorse.adb
! d83ce64a8cd2a14d638b2f58efffd92c  gcc/ada/libgnat/a-ciorse.ads
! d10cc7fa24959985d0423591d14ade72  gcc/ada/libgnat/a-clrefi.adb
! bb9ecae44d7df045ef196aea619eb80d  gcc/ada/libgnat/a-clrefi.ads
! bb7aa2b8f3fb3f971a1cb27147b3b0a6  gcc/ada/libgnat/a-coboho.adb
! 9d1b1bd680bbc15192e80bcbfdcf1cad  gcc/ada/libgnat/a-coboho.ads
! 56ab40bb18fefd09ea4804521f9fe3fa  gcc/ada/libgnat/a-cobove.adb
! 1472e0702841cb970459016b6f535be4  gcc/ada/libgnat/a-cobove.ads
! 7f386d5d78c80b801499b725681bae4f  gcc/ada/libgnat/a-cofove.ads
! 14e89eeb20a55f732b055a59e4b9a22a  gcc/ada/libgnat/a-cofuma.ads
! 0ed25ff78e09575888ca3ec4ee5846c8  gcc/ada/libgnat/a-cofuse.ads
! f9f0e3e0da83a4ca464cd5f614fc5a5f  gcc/ada/libgnat/a-cofuve.ads
! 7da09f2b2fa733ca057555298977a2e2  gcc/ada/libgnat/a-cogeso.adb
! e5cf8961ebded6ad1a98120dfed5e5aa  gcc/ada/libgnat/a-cogeso.ads
! cccaaa3bdf69bd2091446eba51233ef3  gcc/ada/libgnat/a-cohama.adb
! 1b2a05cda1439d090cbf363478f249b1  gcc/ada/libgnat/a-cohama.ads
! a665e69f5655bef17619a72bf297bfff  gcc/ada/libgnat/a-cohase.adb
! c713fe37aba62a92a697ed573323dc0f  gcc/ada/libgnat/a-cohase.ads
! 8e2fa86f7c968581fd7eeb6a6d275ede  gcc/ada/libgnat/a-cohata.ads
! 2a0cc1e29cefb760cf1677525a312641  gcc/ada/libgnat/a-coinho.adb
! 7a3b5b5597c579484f7bfb2cd3988cf2  gcc/ada/libgnat/a-coinho.ads
! b86e1d0840c66fa3fa373d678cb65a23  gcc/ada/libgnat/a-coinho__shared.adb
! 0fac69b52c6e92d497f8a90fb16fc496  gcc/ada/libgnat/a-coinho__shared.ads
! 2e4fca0cbe872ef19db3ed05e4877243  gcc/ada/libgnat/a-coinve.adb
! 3fbf5912c68e758be395c51bbcd02879  gcc/ada/libgnat/a-coinve.ads
! 6dbaac9b33ce68ee1f07cfd6294d1421  gcc/ada/libgnat/a-colien.adb
! 7faea62ecdcda01e375bf62178021992  gcc/ada/libgnat/a-colien.ads
! 63923dda082059b61686fe49267af1fa  gcc/ada/libgnat/a-colire.adb
! 832829f6fccb40d533732b8457cbe400  gcc/ada/libgnat/a-colire.ads
! a85935467cf30ff32bc26677c0bb63e2  gcc/ada/libgnat/a-comlin.adb
! 16175445e74d542a497bea1c8d6a9ad4  gcc/ada/libgnat/a-comlin.ads
! ae97d474872fe60157fb2d45c33d1ca2  gcc/ada/libgnat/a-comutr.adb
! 7453a3b1ec560bd7f2b84733e1439332  gcc/ada/libgnat/a-comutr.ads
! 39bdaf4aeeed37537b6c19275a89edf7  gcc/ada/libgnat/a-conhel.adb
! c1664afdaf6327fe46438712972cbd75  gcc/ada/libgnat/a-conhel.ads
  38baf99435420fa514890cac49ee9242  gcc/ada/libgnat/a-contai.ads
! 1f06209e0798f824ef446a7ef8ff768f  gcc/ada/libgnat/a-convec.adb
! 4ae2c4f647648dff7fd5cf9fda8493de  gcc/ada/libgnat/a-convec.ads
! 11d4052564ef60377710b3e7dd2112fc  gcc/ada/libgnat/a-coorma.adb
! 60f7f0d2c6cd2a32dc8a482cbcacc717  gcc/ada/libgnat/a-coorma.ads
! 3d29cf2814c39758dd2eb4021a292a8c  gcc/ada/libgnat/a-coormu.adb
! 7893ad6f407973de9406055f93881c52  gcc/ada/libgnat/a-coormu.ads
! 30e205887637465ebffd6709fc8c1292  gcc/ada/libgnat/a-coorse.adb
! 7007fffcc311e643383fd4b8ba020e9c  gcc/ada/libgnat/a-coorse.ads
! 3e21304d42a27e0a9435f0028ce57520  gcc/ada/libgnat/a-coprnu.adb
! 8d84ab325b993703126bdfcdcc246f24  gcc/ada/libgnat/a-coprnu.ads
! 10c28e7b50958e4a543701ca34df692d  gcc/ada/libgnat/a-costso.adb
! 2341b4b7a12ea0a1715aea9d2c9466c5  gcc/ada/libgnat/a-costso.ads
  2399731eabd6e0bbc0a8f28a60d3c3c8  gcc/ada/libgnat/a-coteio.ads
! f9f9d2034bb5075bb47270238b4f2a2f  gcc/ada/libgnat/a-crbltr.ads
! c3978fbabc965b636526808787b27357  gcc/ada/libgnat/a-crbtgk.adb
! d8ee5bd7d48dd3fa84b0f8f4365cd41a  gcc/ada/libgnat/a-crbtgk.ads
! 42723a1e3a1402ed73119bcce29c7ed9  gcc/ada/libgnat/a-crbtgo.adb
! 366efb9963bf1c9b1da806cf29751f3c  gcc/ada/libgnat/a-crbtgo.ads
! 78abd98cd6baffd9c8a424ed597be9bc  gcc/ada/libgnat/a-crdlli.adb
! 2415bf2c24f1b5f47f1147dc70e23da1  gcc/ada/libgnat/a-crdlli.ads
! 9b1a32f85ce6d4faa8f18a330b149ca5  gcc/ada/libgnat/a-csquin.ads
! 1a991b51c6c9ba9594fd2b91cd51ba2b  gcc/ada/libgnat/a-cuprqu.adb
! a7f28d525a8ab9052a770722016188b7  gcc/ada/libgnat/a-cuprqu.ads
! 6a5090c6204bcd6bec924fa27fa1e25c  gcc/ada/libgnat/a-cusyqu.adb
! fe74301659630d75f2b2ebd5a2ab4b07  gcc/ada/libgnat/a-cusyqu.ads
! 77eb237dec27dc0a8eb53dcb2f5c4ad5  gcc/ada/libgnat/a-cwila1.ads
! da623718be6c17a36642dd6b58614918  gcc/ada/libgnat/a-cwila9.ads
! bca003a4234c0a784ad97fbc4495a35d  gcc/ada/libgnat/a-decima.adb
! a577b25011b459fb9c493c3fb7c42acc  gcc/ada/libgnat/a-decima.ads
! 93e0055b978d64b96cb5ed1afe44c2b0  gcc/ada/libgnat/a-decima__128.ads
! 63399d65522e575a8bad7c70bb78b20d  gcc/ada/libgnat/a-dhfina.adb
! 76cf7bdb155d73c27d55f261c8410b84  gcc/ada/libgnat/a-dhfina.ads
! 03514b6bd5f1ec214f60592959cd0297  gcc/ada/libgnat/a-diocst.adb
! 987879c6e68ffd39a268c25e951ce534  gcc/ada/libgnat/a-diocst.ads
! 1f42f876f2396d6c711b3857e1bf0f74  gcc/ada/libgnat/a-direct.adb
! d47a222b8830e48d0dff6115a160803d  gcc/ada/libgnat/a-direct.ads
! 081b6cce907f9b74d8e179c263004f98  gcc/ada/libgnat/a-direio.adb
! 69f8f272db1cbef961dc70db433825ee  gcc/ada/libgnat/a-direio.ads
! 954aa825cb64f8f16015e77b3970f477  gcc/ada/libgnat/a-dirval.adb
! dec657f05b3a7dad71a09bd31b07bf66  gcc/ada/libgnat/a-dirval.ads
! 70a1bd772631b4ce1d76b1ce2f1cce93  gcc/ada/libgnat/a-dirval__mingw.adb
! 59db8d512958d204c0b40c0adb19a60f  gcc/ada/libgnat/a-einuoc.adb
! aadf6444a140a534f0c02420d9a27b68  gcc/ada/libgnat/a-einuoc.ads
! 1f828d393c89e86a4e31054ddd173d5f  gcc/ada/libgnat/a-elchha.adb
! 2ff891aa2c883b588d76c560b129640c  gcc/ada/libgnat/a-elchha.ads
! 67c586988a1ec3b9c9306b5769e7563e  gcc/ada/libgnat/a-envvar.adb
  e77a221e76c3e19394bf433277f04c0f  gcc/ada/libgnat/a-envvar.ads
! a28ab164c9315a2f99e5e7cdbcb088ce  gcc/ada/libgnat/a-excach.adb
! a58922dee9ccaceb21980fc0e868cf8b  gcc/ada/libgnat/a-except.adb
! 8458ba0772e508cedf90ff6af4060974  gcc/ada/libgnat/a-except.ads
! 51066f40c6ed78f2f89ef1ff6e04f9e2  gcc/ada/libgnat/a-exctra.adb
! 085c93c65b54cb02fe4980a58f91e0a7  gcc/ada/libgnat/a-exctra.ads
! 76dd8bbe9707bbf5e7e179719fc30619  gcc/ada/libgnat/a-exexda.adb
! b69a18d23ebf0feabb2efead89bddd14  gcc/ada/libgnat/a-exexpr.adb
! 67afee047f4b2adb3727024dbe969eba  gcc/ada/libgnat/a-exextr.adb
! 4c7402fac37a5941c42b71455dc65f42  gcc/ada/libgnat/a-exstat.adb
! 41fdce3d2f8e027b78067d65497c813a  gcc/ada/libgnat/a-finali.adb
! 2ee2871ad9a06b990b318b0f54f85b13  gcc/ada/libgnat/a-finali.ads
  b6ba93109a253e15591b1eefa685bc24  gcc/ada/libgnat/a-flteio.ads
  f7e337bf223b3a491d58fb6db81ef7b1  gcc/ada/libgnat/a-fwteio.ads
  2bf5d12193c278c4a482ae0dda1129a9  gcc/ada/libgnat/a-fzteio.ads
*************** efa823912da5d16e6f8d4aa6f78b768a  gcc/ad
*** 1350,1384 ****
  d90ff1db87e7c9bf483659701a55671c  gcc/ada/libgnat/a-llltio.ads
  b8fcc586001cbdaddc04c29fc016fa48  gcc/ada/libgnat/a-lllwti.ads
  5faeef2817310c83968117416e0120b0  gcc/ada/libgnat/a-lllzti.ads
! 680bc6047428c03859503c0905b9631e  gcc/ada/libgnat/a-locale.adb
! e9527ec9a38c9e8d3db1ba8f625ed1c3  gcc/ada/libgnat/a-locale.ads
! 7a84de7843a63d673545d5c534e2a074  gcc/ada/libgnat/a-nagefl.ads
! 067aeda528bcdb0d9b2d663b854bb99d  gcc/ada/libgnat/a-naliop.ads
! 01b44341ac28e6df76ef10d1889896cf  gcc/ada/libgnat/a-naliop__nolibm.ads
! d25a379bd277d47b139f93f252bb4e4f  gcc/ada/libgnat/a-nallfl.ads
! bd59393ac7b1c221994e5cc15e083370  gcc/ada/libgnat/a-nallfl__wraplf.ads
! e802c07eaced412176b61fb887c4f499  gcc/ada/libgnat/a-nalofl.ads
! d978c8712860758815c936db2f2e9a7a  gcc/ada/libgnat/a-nalofl__simd.ads
! 03e5e110450b7a64bec1f11484a2c757  gcc/ada/libgnat/a-nashfl.ads
! 764326d786daf000949bbd6d570b2544  gcc/ada/libgnat/a-nashfl__wraplf.ads
! 8d9be783803cfa847db757d391d7740c  gcc/ada/libgnat/a-nbnbig.adb
! 2e36a18953d2b3129a10437c4fda1350  gcc/ada/libgnat/a-nbnbig.ads
! 67e6ae58d18746c9c29f497678098218  gcc/ada/libgnat/a-nbnbin.adb
  e570135fe58307ce95594d2d3e0b85df  gcc/ada/libgnat/a-nbnbin.ads
! 1b72dc6c6d63e71303cf4c6237efbe0e  gcc/ada/libgnat/a-nbnbin__gmp.adb
! 63df1e120a8973b5d63896ca3aee3d93  gcc/ada/libgnat/a-nbnbre.adb
  454fc2632d21666120b10d84b2706b1b  gcc/ada/libgnat/a-nbnbre.ads
  f8a74f5169bf9eba09b0050d2ce025f4  gcc/ada/libgnat/a-ncelfu.ads
! 6dbb7c8c3e345c2811f4be61cd6ee884  gcc/ada/libgnat/a-ngcefu.adb
  2e229d27b615410dbc242fd1d7d4bd98  gcc/ada/libgnat/a-ngcefu.ads
! 015601b9c1b287112832af76e17bd431  gcc/ada/libgnat/a-ngcoar.adb
  03d934454f8cbd5b382c05c95cd2a70a  gcc/ada/libgnat/a-ngcoar.ads
! d558b09e72edbfe0c81ecaee110829c4  gcc/ada/libgnat/a-ngcoty.adb
! 03adbe7d6858a3fc32c40a836f409655  gcc/ada/libgnat/a-ngcoty.ads
! 5c83fc507aa55d76f42664aee84be538  gcc/ada/libgnat/a-ngelfu.adb
! 671a44abe6dbacdccbd0a8bc8d15a8a0  gcc/ada/libgnat/a-ngelfu.ads
! b9367248ed1d98bda2e432051383a8d5  gcc/ada/libgnat/a-ngrear.adb
! 0ab6ea16d15e75a2236a49d9df1db9e0  gcc/ada/libgnat/a-ngrear.ads
  7f894c161f872e68b50172715a8a311e  gcc/ada/libgnat/a-nlcefu.ads
  307582c16af8c2d164031fd8dfb72581  gcc/ada/libgnat/a-nlcoar.ads
  2341d761d1df9c74f5d4396b2a243874  gcc/ada/libgnat/a-nlcoty.ads
--- 1376,1410 ----
  d90ff1db87e7c9bf483659701a55671c  gcc/ada/libgnat/a-llltio.ads
  b8fcc586001cbdaddc04c29fc016fa48  gcc/ada/libgnat/a-lllwti.ads
  5faeef2817310c83968117416e0120b0  gcc/ada/libgnat/a-lllzti.ads
! 469d8b185cb7b87773880691955fa26c  gcc/ada/libgnat/a-locale.adb
! 71961ca8899102b7913179a51efff559  gcc/ada/libgnat/a-locale.ads
! 6c4d9ac9c0a2c4b1925dc729bcae6d42  gcc/ada/libgnat/a-nagefl.ads
! 45100aae44a39a39a821ba40f4f4666d  gcc/ada/libgnat/a-naliop.ads
! 986106bf7e95a7f66496ea53bd45d39f  gcc/ada/libgnat/a-naliop__nolibm.ads
! 6b32a02b2a5130b3f2552c1239c39f11  gcc/ada/libgnat/a-nallfl.ads
! 1fbdd03cff9be6b8b0563d8847a6945f  gcc/ada/libgnat/a-nallfl__wraplf.ads
! 057117dc680628e7e6feedbd267357fc  gcc/ada/libgnat/a-nalofl.ads
! f45be1a6496945c82ff322bbc5771149  gcc/ada/libgnat/a-nalofl__simd.ads
! d2ac918fa9da14a89ed910cabc0d06f0  gcc/ada/libgnat/a-nashfl.ads
! a4820af5d1581fc43b207313677150e3  gcc/ada/libgnat/a-nashfl__wraplf.ads
! 75553fa8353d81043a5bc5c8edf5c33f  gcc/ada/libgnat/a-nbnbig.adb
! dce2dff8e8a98f841a6304bc02ddf8bc  gcc/ada/libgnat/a-nbnbig.ads
! 5f1b23d0cdf03af3be2757e7ce715274  gcc/ada/libgnat/a-nbnbin.adb
  e570135fe58307ce95594d2d3e0b85df  gcc/ada/libgnat/a-nbnbin.ads
! 374be42afcade466168f8b91da7ee3f7  gcc/ada/libgnat/a-nbnbin__gmp.adb
! fa4bf3be20a6a89e4d7b0ce5fe87d456  gcc/ada/libgnat/a-nbnbre.adb
  454fc2632d21666120b10d84b2706b1b  gcc/ada/libgnat/a-nbnbre.ads
  f8a74f5169bf9eba09b0050d2ce025f4  gcc/ada/libgnat/a-ncelfu.ads
! bf618dc592da2c876e8c4dea2ae02005  gcc/ada/libgnat/a-ngcefu.adb
  2e229d27b615410dbc242fd1d7d4bd98  gcc/ada/libgnat/a-ngcefu.ads
! e1ec6c63f08583982ce897634cbf9bf5  gcc/ada/libgnat/a-ngcoar.adb
  03d934454f8cbd5b382c05c95cd2a70a  gcc/ada/libgnat/a-ngcoar.ads
! f26a52f1a6f669dae0765bfac836b6dd  gcc/ada/libgnat/a-ngcoty.adb
! ac73ea5db807f510b48ed2db2f418512  gcc/ada/libgnat/a-ngcoty.ads
! cea6b621dd6e9b66545d8e143aaa80d0  gcc/ada/libgnat/a-ngelfu.adb
! 88711673621a9324fb36e3948569d5be  gcc/ada/libgnat/a-ngelfu.ads
! c39d7e9b845c5ddf841934f051c25f8f  gcc/ada/libgnat/a-ngrear.adb
! eda88c38b09d5d0848cb7aad65b48569  gcc/ada/libgnat/a-ngrear.ads
  7f894c161f872e68b50172715a8a311e  gcc/ada/libgnat/a-nlcefu.ads
  307582c16af8c2d164031fd8dfb72581  gcc/ada/libgnat/a-nlcoar.ads
  2341d761d1df9c74f5d4396b2a243874  gcc/ada/libgnat/a-nlcoty.ads
*************** dc556e736d290554bf97bb7153c2e96b  gcc/ad
*** 1392,5327 ****
  ed8c8d1cff975d8128d8a34e6fa60333  gcc/ada/libgnat/a-nscefu.ads
  ae6657265a333ec061d886c2e0a9be47  gcc/ada/libgnat/a-nscoty.ads
  c7bddd6abb488c8cd0d9982769254df5  gcc/ada/libgnat/a-nselfu.ads
! 428c5fd577bd441513e497dfe168e90e  gcc/ada/libgnat/a-nuauco.ads
! ebdb0116c729fb39ae518d89772f5678  gcc/ada/libgnat/a-nuauco__x86.ads
! 5c71aa7228479be10b30558b33ccb97e  gcc/ada/libgnat/a-nuaufl.ads
! def91b15f7f0d41b7b70de3c8f50b213  gcc/ada/libgnat/a-nuaufl__simd.ads
! 867147001440c22ea0a2b8ec7a181a40  gcc/ada/libgnat/a-nuaufl__wraplf.ads
! 7714df1a41c354211d217f99429093ef  gcc/ada/libgnat/a-nubinu.ads
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
! 5b815eacadaa24069afb638515ff56cf  gcc/ada/libgnat/a-nudira.adb
! 6a2d2875f4fb6a67e16d219ff2736053  gcc/ada/libgnat/a-nudira.ads
  bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
! 8b5d9ba0114dec9fdb0adb13dc67b528  gcc/ada/libgnat/a-nuflra.adb
! 280838bdec1b139d347182b8f2ed3caa  gcc/ada/libgnat/a-nuflra.ads
! eb37a45bc38c1b6fb1758741ed907f7f  gcc/ada/libgnat/a-numaux.ads
! c4d4bea6dcd8066d2ddcb0789ef64586  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
! 28bbe21b96277a215a8e08a55bd06513  gcc/ada/libgnat/a-rbtgbk.adb
! 78c693ee5b71aa295a7687ce4449be77  gcc/ada/libgnat/a-rbtgbk.ads
! 7c1163f4517f637a65af134108cedf9e  gcc/ada/libgnat/a-rbtgbo.adb
! 9ec20b9a3ff44c614779bd7f002d0bae  gcc/ada/libgnat/a-rbtgbo.ads
! 3dddced7b86cc604445199ef17d8dae9  gcc/ada/libgnat/a-rbtgso.adb
! 836eb8bf535eb35736b1d5ad07f16692  gcc/ada/libgnat/a-rbtgso.ads
! 80e24c37f4646a1f4781839e32056d2c  gcc/ada/libgnat/a-sbecin.adb
! 5b6595c16ef3597ab7d9eb1c0339d501  gcc/ada/libgnat/a-sbecin.ads
! 69c8a28ce9c82743ec97ba6c30eb03c4  gcc/ada/libgnat/a-sbhcin.adb
! 3420c65a930da7c01e7ab8f289792d68  gcc/ada/libgnat/a-sbhcin.ads
! e1b33975829d3f24033bbf5028acd054  gcc/ada/libgnat/a-sblcin.adb
! 476572171216d6fa8b21f58e7a12cc03  gcc/ada/libgnat/a-sblcin.ads
  67b280f23d76be962783b397ef7e60c7  gcc/ada/libgnat/a-scteio.ads
! 68f64ef033fceec5be26cb951fe8bdb6  gcc/ada/libgnat/a-secain.adb
! edc774b26cbd2c70c7b4a32c7b8e83e9  gcc/ada/libgnat/a-secain.ads
! 99ac6f432f83ff6faca3a3c5f4d7cb9a  gcc/ada/libgnat/a-sequio.adb
! 90195bc3ad2c091d3b51b673ec61d5f5  gcc/ada/libgnat/a-sequio.ads
! 8fd199f0f5993991d51bcb4c2b635732  gcc/ada/libgnat/a-sfecin.ads
! 205b47364d72976de7aee62033f5a23d  gcc/ada/libgnat/a-sfhcin.ads
! ab7aafb7b58a0edfa49ead1a8b970f86  gcc/ada/libgnat/a-sflcin.ads
  43123af888cd4637ee6a1eaf9dde9e34  gcc/ada/libgnat/a-sfteio.ads
  63d0f0f0aed733a972873cb3a4b767ea  gcc/ada/libgnat/a-sfwtio.ads
  7207d517b5474be90def505e3a2be187  gcc/ada/libgnat/a-sfztio.ads
! 8b95d39800f9eabd3054d96f9af3a7a0  gcc/ada/libgnat/a-shcain.adb
! 97e783d0fa9ca7f81b876ff38593d63c  gcc/ada/libgnat/a-shcain.ads
! 394e0babe15bc9f817b6467c486b5ff6  gcc/ada/libgnat/a-siocst.adb
! 06b0fe1b384543fd81b4a9609eb506ec  gcc/ada/libgnat/a-siocst.ads
  6fce3ea5eecdf93f2ec7d0446ebd14af  gcc/ada/libgnat/a-siteio.ads
  9330fbe80fe3844d3bf5aeb4946381f6  gcc/ada/libgnat/a-siwtio.ads
  c816a5bc136362b2468801e67deb9ae9  gcc/ada/libgnat/a-siztio.ads
! a301367a53819ac7e571546e901e1d4d  gcc/ada/libgnat/a-slcain.adb
! 94e843f13bbdb08b02ce1fc5d199ad99  gcc/ada/libgnat/a-slcain.ads
! 77e3b7b16640a3f6d8f34fb262e7ba6c  gcc/ada/libgnat/a-ssicst.adb
! 665a2dd5384e799945b74ecceabc584c  gcc/ada/libgnat/a-ssicst.ads
  3ec2f925719d14de3a80c38042157f78  gcc/ada/libgnat/a-ssitio.ads
  387afdf3ceb85d07a14d8ae4e2f0eeec  gcc/ada/libgnat/a-ssiwti.ads
  366683e8278e7e71bc63a8c7a3f2238f  gcc/ada/libgnat/a-ssizti.ads
! 0c8b1cbb85cd0b38ab0e734b5105dc86  gcc/ada/libgnat/a-stboha.adb
  8274f77970c3b1ed9a51aa8ddf6a4d0f  gcc/ada/libgnat/a-stboha.ads
! d2c9e8b023ee31561d6c265bec199dd3  gcc/ada/libgnat/a-stbubo.adb
! 3e7f36f19a7dc8483de008d598cb99eb  gcc/ada/libgnat/a-stbubo.ads
! 1011c7ebba9d915d74d4fa65fd5ed87c  gcc/ada/libgnat/a-stbufi.adb
! 7628849e941f7e099780c4222b3c9c71  gcc/ada/libgnat/a-stbufi.ads
! d9154c65101bbc017b76ce3a95984238  gcc/ada/libgnat/a-stbufo.adb
! 7d93995906b8fa2791b2c97016c7686b  gcc/ada/libgnat/a-stbufo.ads
! 3223d1984dd7a6fa8fda5eff43d75bf0  gcc/ada/libgnat/a-stbuun.adb
  1e900014d9809db78ef32d2e97e1531b  gcc/ada/libgnat/a-stbuun.ads
! a88e2d90c95233506a9dd7b00508fa6c  gcc/ada/libgnat/a-stbuut.adb
! 51ed15efe8f1e95a0a0671b379ed9af8  gcc/ada/libgnat/a-stbuut.ads
  756f44b0c7f4483ecd7302aee8bc110a  gcc/ada/libgnat/a-stfiha.ads
! 9c8936502dc0e5a135d049bf1af23b2f  gcc/ada/libgnat/a-stmaco.ads
! ad9e82c5cc289c5bc507b128ad8322bf  gcc/ada/libgnat/a-storio.adb
  34175bb2f712422ab4cfd24b3e452b0d  gcc/ada/libgnat/a-storio.ads
! 5ec3e4e0a4ac3695a20ab6431c2336a2  gcc/ada/libgnat/a-strbou.adb
! 772a161c8facb4ce7786c357579b888b  gcc/ada/libgnat/a-strbou.ads
! a19b96964d2dad6e59bb2a093fd27244  gcc/ada/libgnat/a-stream.adb
! a42e7b3e6a9845bd1446b947f06498d5  gcc/ada/libgnat/a-stream.ads
! 84fe76b4aa3e05fd8073244530c4cfad  gcc/ada/libgnat/a-strfix.adb
! 691efc1db5e10f88c59245ffd0d70083  gcc/ada/libgnat/a-strfix.ads
! 6865cbfe49cc18ac523eb36cacf14e31  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 7d1a662cb8bfdfeb5f1658881b59c87c  gcc/ada/libgnat/a-strmap.adb
! 2432102bec8cef5c5fbc22f4c55bfe7a  gcc/ada/libgnat/a-strmap.ads
! 5d3e7ff29000bd84d27c3787d564aacd  gcc/ada/libgnat/a-strsea.adb
! ada0e861a612c30ddd3e8ca244c2306f  gcc/ada/libgnat/a-strsea.ads
! 6b412ddcf888c236b03e7927aa759f0e  gcc/ada/libgnat/a-strsto.ads
! 319d763f3ee392881d56e3af532200fe  gcc/ada/libgnat/a-strsup.adb
! 66d49c84bd3f966e842f759b68aee2e5  gcc/ada/libgnat/a-strsup.ads
! 4b472d356e690b761660bde5125425c1  gcc/ada/libgnat/a-strunb.adb
! 417c019e1ba0b507c5001e347d9cde60  gcc/ada/libgnat/a-strunb.ads
! 204d9f2302af5761c1fc01dcbba197d2  gcc/ada/libgnat/a-strunb__shared.adb
! f70b082c3f0954a6e469eabcbfe260e2  gcc/ada/libgnat/a-strunb__shared.ads
! 2084558bc946d0216bfbacf593b5f59c  gcc/ada/libgnat/a-ststbo.adb
! d8061f94fc37cbdbabdd708bfe1ad9dd  gcc/ada/libgnat/a-ststbo.ads
! 2b28e88d230ad46deb969a34d843f762  gcc/ada/libgnat/a-ststio.adb
! e6cb66933ae62bc5c124bac71cf5c9c5  gcc/ada/libgnat/a-ststio.ads
! ddb6fecdf48d2bed4b008f8a25ebe700  gcc/ada/libgnat/a-ststun.adb
! 9e2fcdc926d8c9610d2ac6e7fd6318d9  gcc/ada/libgnat/a-ststun.ads
! f5e71451560f60fdbf31b79972311d8f  gcc/ada/libgnat/a-sttebu.adb
  3c26fa3924701bf0fb31cc7ce9580ec6  gcc/ada/libgnat/a-sttebu.ads
! dfad23528e312ac8105cdcc203948663  gcc/ada/libgnat/a-stunau.adb
! dc04fed1e146cd810177ebabc7d574c6  gcc/ada/libgnat/a-stunau.ads
! 23b65feddda8d9b4005d5fcd1d0b4375  gcc/ada/libgnat/a-stunau__shared.adb
! 13e6fb01c283d47d9eded9c6cac1f002  gcc/ada/libgnat/a-stunha.adb
  da4a8d13f76850d714a8213ada7477d2  gcc/ada/libgnat/a-stunha.ads
! c88bff765664344177c994842a186b26  gcc/ada/libgnat/a-stuten.adb
  0f5fe8e890a5c8c46160b756ee5500f3  gcc/ada/libgnat/a-stuten.ads
! 9e73bb874eff6e228f2fec8697dc21ea  gcc/ada/libgnat/a-stwibo.adb
! 503998b50974d9c8e242e967c3a82918  gcc/ada/libgnat/a-stwibo.ads
! 24be37cbaf7d5454f6761a2c730c269b  gcc/ada/libgnat/a-stwifi.adb
  b0cf3f05e49e1640bf231034269cb951  gcc/ada/libgnat/a-stwifi.ads
! c9beca1f4ca01e3062141b576b5b22ed  gcc/ada/libgnat/a-stwiha.adb
  3255ad19d07346032c9d005d6a27475f  gcc/ada/libgnat/a-stwiha.ads
! 1a6ead652bb25638e5addb065cf77a9d  gcc/ada/libgnat/a-stwima.adb
! eaf01e839a1e3b07ff9f71fa33c946cf  gcc/ada/libgnat/a-stwima.ads
! 8e3827f342b4fe92e805121102b0777f  gcc/ada/libgnat/a-stwise.adb
! 3293c7132079f23daf6744a2d5783a97  gcc/ada/libgnat/a-stwise.ads
! 61ea3e995a8fb53d20f263cbee7f8902  gcc/ada/libgnat/a-stwisu.adb
! 6a7619b7bb5138ebecf80b9b6e74a0a6  gcc/ada/libgnat/a-stwisu.ads
! 19772a85bb53d0c24d0c0ec59834e066  gcc/ada/libgnat/a-stwiun.adb
! 36752cb3e685a7d54dcaff1edc54ff80  gcc/ada/libgnat/a-stwiun.ads
! 2d4a330938a01fd942d38936175d29cc  gcc/ada/libgnat/a-stwiun__shared.adb
! 92cd6ee67cc87be2c38332a8cb28750a  gcc/ada/libgnat/a-stwiun__shared.ads
! 3e6b6d6dc7127bc559e44527dcae7140  gcc/ada/libgnat/a-stzbou.adb
! f47e922f73aa07e05dcb9a57d6e65115  gcc/ada/libgnat/a-stzbou.ads
! 08948ddea14bc31f0fd53b0a3aeafc63  gcc/ada/libgnat/a-stzfix.adb
  f3ddc25c20b07c4072918c6c0ea20ff9  gcc/ada/libgnat/a-stzfix.ads
! cfa99c6e152e6459b864d278f6b5cca2  gcc/ada/libgnat/a-stzhas.adb
  41c71febbb354000bccca4ccd3a59c54  gcc/ada/libgnat/a-stzhas.ads
! 6e4cb1664b161d4351b23b2c03fbf4aa  gcc/ada/libgnat/a-stzmap.adb
! ef858637cddc204a3d669852295cb366  gcc/ada/libgnat/a-stzmap.ads
! 9cbe7741e1cf69de23078ad515ed7587  gcc/ada/libgnat/a-stzsea.adb
! d2eaf042baf3ea371acff076bd5aa442  gcc/ada/libgnat/a-stzsea.ads
! e54387077b5ecad358740d37960bf0bb  gcc/ada/libgnat/a-stzsup.adb
! fb55e0e8eb17c7ba98eb892975da71ea  gcc/ada/libgnat/a-stzsup.ads
! 63c96b791481a98184982a1df74d7f92  gcc/ada/libgnat/a-stzunb.adb
! 27ddae91c0158dd89e8ea65ae189d737  gcc/ada/libgnat/a-stzunb.ads
! 92991fea5d8b12b993ca0b26872976e0  gcc/ada/libgnat/a-stzunb__shared.adb
! 1a787fdabcfb168580862bf606fc3950  gcc/ada/libgnat/a-stzunb__shared.ads
! 5e5b32f5e05734ce4b49ebe27ffc6bac  gcc/ada/libgnat/a-suecin.adb
! ca2c1465804ebdc2280ad0e058709c86  gcc/ada/libgnat/a-suecin.ads
! 17a8fd4ba800f999a0e9e9c3007831db  gcc/ada/libgnat/a-suenco.adb
  24c625ef90e191bc1baa69c58ae2600f  gcc/ada/libgnat/a-suenco.ads
! db9f3bb070bbb18ca43f7ea72b39cfcc  gcc/ada/libgnat/a-suenst.adb
  5a81ae9196b241db71c16198169dbed7  gcc/ada/libgnat/a-suenst.ads
! c8fc899440e74ab920a37fae20632de6  gcc/ada/libgnat/a-suewst.adb
  88073629f5531c7f6fba98820112cd02  gcc/ada/libgnat/a-suewst.ads
! 459333818cbb3157a6a55642cc498f0c  gcc/ada/libgnat/a-suezst.adb
  5aaf32a65e951f050f1cbb5adf5af9d2  gcc/ada/libgnat/a-suezst.ads
! 1fa959d3f3934c32452f42bcf653be0c  gcc/ada/libgnat/a-suhcin.adb
! b37ce2b4b9038eb07fb3ecd3c0ac861d  gcc/ada/libgnat/a-suhcin.ads
! 0cb6cd89839ae279a3c37ea7f4e49de3  gcc/ada/libgnat/a-sulcin.adb
! c64493b5896e3181efc277798360a2ba  gcc/ada/libgnat/a-sulcin.ads
! 1b89ada0810dd7756451ecc78a795172  gcc/ada/libgnat/a-suteio.adb
! 35a12b09d6d36d837a5339ec7b5b1f06  gcc/ada/libgnat/a-suteio.ads
! 6e64387ee10a95d9b6a1d3813bedbadd  gcc/ada/libgnat/a-suteio__shared.adb
! 459d8c9971f6bf02d051c73edd712bc5  gcc/ada/libgnat/a-swbwha.adb
  65f3f68c6718760b4c2b0beba2af9f82  gcc/ada/libgnat/a-swbwha.ads
  aaf273ef9a113dedcab8fb87b71b7365  gcc/ada/libgnat/a-swfwha.ads
! 523a2025d5e0c845f353b7606874b04c  gcc/ada/libgnat/a-swmwco.ads
! 42fd1f141952da355a721e2a564da733  gcc/ada/libgnat/a-swunau.adb
! b616ad66f4e5296265480ee57651bf27  gcc/ada/libgnat/a-swunau.ads
! ce55f4855aa6f82e7b19adcaae0612e9  gcc/ada/libgnat/a-swunau__shared.adb
! 801f4ad08567da597de56642fba77cd1  gcc/ada/libgnat/a-swuwha.adb
  45d76b5b911889e181b3717ab6c91651  gcc/ada/libgnat/a-swuwha.ads
! eeda622402e81be24a45253185234928  gcc/ada/libgnat/a-swuwti.adb
! 5d8925a86225ce2f910a9724b8b5a740  gcc/ada/libgnat/a-swuwti.ads
! e642cbb1c0b2b3a29536f9f34899f41e  gcc/ada/libgnat/a-swuwti__shared.adb
! 7f14eef3c04412fca33ab3547c92fb10  gcc/ada/libgnat/a-szbzha.adb
  18b9cf476495930cec4ac3eb881257db  gcc/ada/libgnat/a-szbzha.ads
  32bb3b01e46ff7648c862537bd77aa0d  gcc/ada/libgnat/a-szfzha.ads
! fe3aa03516b7c2e7b39573a528d97756  gcc/ada/libgnat/a-szmzco.ads
! d792e68aa363d2726ac9026546d1fe38  gcc/ada/libgnat/a-szunau.adb
! 50b016487fff87bc4605e1954113c71a  gcc/ada/libgnat/a-szunau.ads
! d6b2c3a59f4571661d32bdc5935b2107  gcc/ada/libgnat/a-szunau__shared.adb
! 10898909c4d46f460c89b63d3896c9e8  gcc/ada/libgnat/a-szuzha.adb
  01cf107c9e66d7e5284c9b7ce2e2ed7e  gcc/ada/libgnat/a-szuzha.ads
! b5f25daac0648a3b98054cadbedd6e4f  gcc/ada/libgnat/a-szuzti.adb
! 3bfd681df9c63243ee907f6bd52fc234  gcc/ada/libgnat/a-szuzti.ads
! 57772eb2074013d73e481b8a2a2421c1  gcc/ada/libgnat/a-szuzti__shared.adb
! 92bce14154c6e851630c24a9e8b9101e  gcc/ada/libgnat/a-tags.adb
! ed534a9df8c89104817a1f43485d5d4a  gcc/ada/libgnat/a-tags.ads
! ff6f3c69227bd610743a4fc0f5390665  gcc/ada/libgnat/a-teioed.adb
! 59e7805e2f26dbbb21e91e1635434712  gcc/ada/libgnat/a-teioed.ads
! 4728bf475f318657868ecd585fec8b81  gcc/ada/libgnat/a-textio.adb
! 03462e58df2c364cc18da54c7dc1435c  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
! 545cb87ac59d7f978d4b25c46af0fab2  gcc/ada/libgnat/a-tiboio.adb
  7b163db9f1467e9392f347bee1400136  gcc/ada/libgnat/a-tiboio.ads
! 9f1923819fa6b27ac1d147a87fb499d4  gcc/ada/libgnat/a-ticoau.adb
! fe23e085b7547c29aec3113d05a88749  gcc/ada/libgnat/a-ticoau.ads
! 686a9d006760b366e3122869ee8571b2  gcc/ada/libgnat/a-ticoio.adb
! 375f6a51e8294a309ccc3abb56f05cad  gcc/ada/libgnat/a-ticoio.ads
! fdd409bab217dced24e5e22424e336ab  gcc/ada/libgnat/a-tideau.adb
! 82e15427d320891618955476db3556e9  gcc/ada/libgnat/a-tideau.ads
! 4c2d78a94690fed4750f8f6f0db4ff3c  gcc/ada/libgnat/a-tideio.adb
! b7aa37b14cc129bea3676bc0d80fce8d  gcc/ada/libgnat/a-tideio.ads
! 8e735adf75b14302b0a0f0ac596058a3  gcc/ada/libgnat/a-tideio__128.adb
! 722c7369b3846ed9e210b8f7ff3e2495  gcc/ada/libgnat/a-tienau.adb
! 21de74bc74b1e97901262b97d50b7bdd  gcc/ada/libgnat/a-tienau.ads
! 46f9d6d7dca791742863224e4ebb2212  gcc/ada/libgnat/a-tienio.adb
  4f45fb79824b66021fe483d1b210e8c9  gcc/ada/libgnat/a-tienio.ads
! 528bb23b65dd6438764f24bde47faed1  gcc/ada/libgnat/a-tifiau.adb
! fd2f7dc457ae6c92c59217a40062ece3  gcc/ada/libgnat/a-tifiau.ads
! 2a601644faf162da265bc9e565439a8e  gcc/ada/libgnat/a-tifiio.adb
  c16ad9374e832bfec80cdb19f8afaa99  gcc/ada/libgnat/a-tifiio.ads
! 17abd360016a3b2588c7a1c60108b288  gcc/ada/libgnat/a-tifiio__128.adb
! 68b3ee7424a8d97d4769665c2826b795  gcc/ada/libgnat/a-tiflau.adb
! 384747149d4883a1a519d30a731b0906  gcc/ada/libgnat/a-tiflau.ads
! 93bb228e671a75dcbbbe9e7a06017d9e  gcc/ada/libgnat/a-tiflio.adb
! 81c93f8f3761b2d146d7be34b5cb5c06  gcc/ada/libgnat/a-tiflio.ads
! 996700904ce84c40425326eada1f0513  gcc/ada/libgnat/a-tigeau.adb
! f34495e684f05ccca0960d265713fc5f  gcc/ada/libgnat/a-tigeau.ads
! 8713a3ed34060068a6f905af9bfb6afb  gcc/ada/libgnat/a-tigeli.adb
! c0bf14d321836115c66d02a8cd7a6f95  gcc/ada/libgnat/a-tiinau.adb
! df63d27846890d30e0ae214dee48a3df  gcc/ada/libgnat/a-tiinau.ads
! 2491bc2e66fa1fd5a7c4f7f3c690a303  gcc/ada/libgnat/a-tiinio.adb
! b6564ed6bebf3e934db41169e00bbbe5  gcc/ada/libgnat/a-tiinio.ads
! 7bb4ff58fcab78206dc9b18312115aa6  gcc/ada/libgnat/a-tiinio__128.adb
! 7f7af8555af25b9f0e88a26e8d56afdb  gcc/ada/libgnat/a-timoio.adb
! f4a9dcc7dfb647e860a89dbd3e8e071b  gcc/ada/libgnat/a-timoio.ads
! 6d1918e6ec35a150c60645af07182bc5  gcc/ada/libgnat/a-timoio__128.adb
! 9a844ee4339dac5c281178b600f2ddae  gcc/ada/libgnat/a-tiocst.adb
! 1d9731d31c4ff6e417216f48a133e3f1  gcc/ada/libgnat/a-tiocst.ads
! 1a29a4e7d45d956380b8f19ceee5230f  gcc/ada/libgnat/a-tirsfi.adb
! 6ebafda6c930954fa8da9e71b7568133  gcc/ada/libgnat/a-tirsfi.ads
! fb5f9a35907ac4ae2416b52d7338b24e  gcc/ada/libgnat/a-titest.adb
  7b71ac41d87e6c43f98663d1d110846c  gcc/ada/libgnat/a-titest.ads
  1a5a51a7ff392f1819e96c8c7b6ba50b  gcc/ada/libgnat/a-tiunio.ads
! ebdefb0717ee54e84334b4468aea7da2  gcc/ada/libgnat/a-unccon.ads
! 8eb8e50901a7293468a57fa9630abb8c  gcc/ada/libgnat/a-uncdea.ads
! b8179dbdeec10d1a04ec32b843d08988  gcc/ada/libgnat/a-undesu.adb
  82a804005be52b8d315b11082ce952d4  gcc/ada/libgnat/a-undesu.ads
! dc5ca808899d51ec791598bb4b6d5817  gcc/ada/libgnat/a-wichha.adb
  bc85d10bd14a8eda24559935a5472a57  gcc/ada/libgnat/a-wichha.ads
! f2eeaac71808ccdd42d33e2a6b628f82  gcc/ada/libgnat/a-wichun.adb
! 4f25854846b8367e575a62564767a54c  gcc/ada/libgnat/a-wichun.ads
  495dc144d91ae1388ae48ceb32e47f91  gcc/ada/libgnat/a-widcha.ads
! 02937f176c4573cdc3316824c973119c  gcc/ada/libgnat/a-witeio.adb
! b0d06d455a59801697f5ee9a12564f9e  gcc/ada/libgnat/a-witeio.ads
! e980c57d63f69202fb8f5c35cddbcb9e  gcc/ada/libgnat/a-wrstfi.adb
! ddb76072c30fb03773e20953eed6131d  gcc/ada/libgnat/a-wrstfi.ads
! 20e482e2c030c6e0ef27b25abd4f2362  gcc/ada/libgnat/a-wtcoau.adb
! 4dcf088ad4dc9e403c79ec90a8f331ae  gcc/ada/libgnat/a-wtcoau.ads
! 21a1dd39c46140773d675929677e682b  gcc/ada/libgnat/a-wtcoio.adb
  d76fe24c6988d732303e4f40830c2082  gcc/ada/libgnat/a-wtcoio.ads
! d1a1503be2321dadf0288130bf55cd88  gcc/ada/libgnat/a-wtcstr.adb
! 2e1342d6b3b892a581614d60b755042d  gcc/ada/libgnat/a-wtcstr.ads
! 0387a219bbfcfcdd604330673cd73ba8  gcc/ada/libgnat/a-wtdeau.adb
! 5189a208d81cdc49316292256a8f69b6  gcc/ada/libgnat/a-wtdeau.ads
! d4de285d229ca8dda3d8bfdf601618bf  gcc/ada/libgnat/a-wtdeio.adb
  20d4a8b1dbec170436bce906004aaac8  gcc/ada/libgnat/a-wtdeio.ads
! 2138a7e14a7436022c6c8d712b614332  gcc/ada/libgnat/a-wtdeio__128.adb
! 90b11e0a6c735104b55b549c0917eb11  gcc/ada/libgnat/a-wtedit.adb
! c82693658838b3c777351c5106f7d05e  gcc/ada/libgnat/a-wtedit.ads
! 03f67daec0b8d93a8dc41c106e870bae  gcc/ada/libgnat/a-wtenau.adb
! fd4014259401cc5b80e3b1840d18235a  gcc/ada/libgnat/a-wtenau.ads
! ff96420380c1b7732681c612edeb68b2  gcc/ada/libgnat/a-wtenio.adb
  fa13b730a5c90ff293982415bf7bcecb  gcc/ada/libgnat/a-wtenio.ads
! ad54fc9b1cb2d7cba818fb44501e3954  gcc/ada/libgnat/a-wtfiau.adb
! 8f5cd8185afd87759f4373bae0b376a8  gcc/ada/libgnat/a-wtfiau.ads
! e8cc815f827131f61a7de2d236482846  gcc/ada/libgnat/a-wtfiio.adb
  495444487be476924785b4b8eff6b910  gcc/ada/libgnat/a-wtfiio.ads
! 77fb7b9dfa5496b26d5c94f2d4ffbac1  gcc/ada/libgnat/a-wtfiio__128.adb
! 885e0e4afba71af4c4a276919725a263  gcc/ada/libgnat/a-wtflau.adb
! b483f21766f203f4d1be8e0abc4d6963  gcc/ada/libgnat/a-wtflau.ads
! 53c2624a90eafec2d0c7e0a512133eeb  gcc/ada/libgnat/a-wtflio.adb
  bb57e8648d7de30496bb43f8a849fc3f  gcc/ada/libgnat/a-wtflio.ads
! 27f578b59abde153477ad39173bd826b  gcc/ada/libgnat/a-wtgeau.adb
! b71695ec28eeee2888340ed84d6513c1  gcc/ada/libgnat/a-wtgeau.ads
! 0901e03b817d137960e69746ce285439  gcc/ada/libgnat/a-wtinau.adb
! 72599650ae5c0db33fe98827b818a89e  gcc/ada/libgnat/a-wtinau.ads
! 4e758b6ff68763fd935ace4ae9a8a7a8  gcc/ada/libgnat/a-wtinio.adb
  62a64f1715aaaa145cf2b6d360381363  gcc/ada/libgnat/a-wtinio.ads
! 93e29634ceb808c0700a3f2b47d3c926  gcc/ada/libgnat/a-wtinio__128.adb
! 4da5b498ff6249b9bce93a8dbf484ed7  gcc/ada/libgnat/a-wtmoio.adb
! db489beafc08a5289914ee29fd589928  gcc/ada/libgnat/a-wtmoio.ads
! 6fb5069e9c02877a999aba442f57e177  gcc/ada/libgnat/a-wtmoio__128.adb
! 3ceb19225a535d6106e2c11eca19867a  gcc/ada/libgnat/a-wttest.adb
  53d3d301f9afb69992013f55fe363511  gcc/ada/libgnat/a-wttest.ads
! 6767dd024a48191dcbf21a911f82d1ca  gcc/ada/libgnat/a-wwboio.adb
  899e14502ec4dedbf4fdb28f8cecfa35  gcc/ada/libgnat/a-wwboio.ads
  1c2480c111fa5b71fca7c67f21525f8f  gcc/ada/libgnat/a-wwunio.ads
  107d2989204d28e32923acc02d444f67  gcc/ada/libgnat/a-zchara.ads
! 27bac228dba617f9c2d6cbe1fade8ad6  gcc/ada/libgnat/a-zchhan.adb
  ce55ee9974e330611ce057d096fe581f  gcc/ada/libgnat/a-zchhan.ads
! aeea6a2cd22640af8abcf1be890a46b6  gcc/ada/libgnat/a-zchuni.adb
! 151e010857e9199afe492e2a5cd42599  gcc/ada/libgnat/a-zchuni.ads
! bf671a07bef572ab6b1624d01e262358  gcc/ada/libgnat/a-zrstfi.adb
! 3ec484fb3d2a0021322e2366af54dce4  gcc/ada/libgnat/a-zrstfi.ads
! 7dc42d0629511c880da19a785c0ba5f0  gcc/ada/libgnat/a-ztcoau.adb
! fe39d89a6c321af618f6fa9308e66666  gcc/ada/libgnat/a-ztcoau.ads
! 0a9a1b8a22262e1927d6f7f642b4f680  gcc/ada/libgnat/a-ztcoio.adb
  7440d81a0d7886b3f76b271c7fcbf8b3  gcc/ada/libgnat/a-ztcoio.ads
! f90a3e944d8f47a3a5091f03194b2d66  gcc/ada/libgnat/a-ztcstr.adb
! d3cc699b9dd5a419c265ef0715c8c83b  gcc/ada/libgnat/a-ztcstr.ads
! b038ddf79e2084ec9bb3a98ae455c2e9  gcc/ada/libgnat/a-ztdeau.adb
! 13ad95669263bf982f61fb91570b2e93  gcc/ada/libgnat/a-ztdeau.ads
! 95d9a99831d144c0c31c626d5b8c1ada  gcc/ada/libgnat/a-ztdeio.adb
  a1457649e626ebf32915696e5afd2ac0  gcc/ada/libgnat/a-ztdeio.ads
! 15b9d37ea8d2aed6afc47ca7988d37b8  gcc/ada/libgnat/a-ztdeio__128.adb
! 83980fc10f1bdf831b0ca5d5e87fb4a5  gcc/ada/libgnat/a-ztedit.adb
! 35c8b2fae5ba44b5391d4e0cc9004418  gcc/ada/libgnat/a-ztedit.ads
! 74a46b15afec4dd262ec04ec2aa08f4e  gcc/ada/libgnat/a-ztenau.adb
! fa93e36d53658bb6955df02f5eb4b1a3  gcc/ada/libgnat/a-ztenau.ads
! 7ccef3bba6244ce60337ce706d32bb7f  gcc/ada/libgnat/a-ztenio.adb
  33aa889d92f43b14a348a444135fc992  gcc/ada/libgnat/a-ztenio.ads
! d75a6c45ec79283f0dba76bb6e131269  gcc/ada/libgnat/a-ztexio.adb
! 90d08b8d4377124c54d0a14313da4661  gcc/ada/libgnat/a-ztexio.ads
! 3add90215550c02d191ded9164c23dbe  gcc/ada/libgnat/a-ztfiau.adb
! 6746a5e00dee535db1e08744f81067e6  gcc/ada/libgnat/a-ztfiau.ads
! 0414c43a56599fc9bccc9f0c669b2163  gcc/ada/libgnat/a-ztfiio.adb
  9e2efe8c1c2d6658a575fbecb5ab1418  gcc/ada/libgnat/a-ztfiio.ads
! 56bbe6a710a9d7be279d90f703ceb624  gcc/ada/libgnat/a-ztfiio__128.adb
! 3ddcba555eb0f620c532840d5f0ef9db  gcc/ada/libgnat/a-ztflau.adb
! f291249a5a273c27822ee310d9f2157c  gcc/ada/libgnat/a-ztflau.ads
! ecf61576718a2e760f325a878e66fcc6  gcc/ada/libgnat/a-ztflio.adb
  7aae0945e67f16f4f77aa54a65552f3e  gcc/ada/libgnat/a-ztflio.ads
! 2caf8e70d7e3f603837ce72dd20cabb7  gcc/ada/libgnat/a-ztgeau.adb
! 7a3082141bebf8c963339b0238597acc  gcc/ada/libgnat/a-ztgeau.ads
! b1ec78a6531b207d13074fa9a066ce1f  gcc/ada/libgnat/a-ztinau.adb
! 671da1011ff50e772cf2ff65ea435471  gcc/ada/libgnat/a-ztinau.ads
! 6da2926bd3968cb08bd8cacc50ce9c53  gcc/ada/libgnat/a-ztinio.adb
  f0456d31ec0aa6f6786e1b635f8023cb  gcc/ada/libgnat/a-ztinio.ads
! 8359e7395eb412335c87d013c5505f86  gcc/ada/libgnat/a-ztinio__128.adb
! 7dfa9761a70c708fec842c07515ad440  gcc/ada/libgnat/a-ztmoio.adb
  9831d312ef279fc55e5e051745be05d2  gcc/ada/libgnat/a-ztmoio.ads
! 35f5f7b3715ef9d0b48cf5200a618c8c  gcc/ada/libgnat/a-ztmoio__128.adb
! c309e6c6d2f9a81a62a7d03169df7ee6  gcc/ada/libgnat/a-zttest.adb
  2caf047380f684add2bd5a35dc4e1091  gcc/ada/libgnat/a-zttest.ads
! 66010f7e960188bd410729da88bbe2c6  gcc/ada/libgnat/a-zzboio.adb
  a80428bcd2bf9ab7214609e68ff1651c  gcc/ada/libgnat/a-zzboio.ads
  a6d7b54a7a1a401188cfe54d1c2bad3b  gcc/ada/libgnat/a-zzunio.ads
! aad41855092e5648dbc6e7ab9d94cda3  gcc/ada/libgnat/ada.ads
  71c71bcd90c113e366bf720c3d886660  gcc/ada/libgnat/calendar.ads
  e150ba4c7f01d70e0086543a96ffd40b  gcc/ada/libgnat/directio.ads
! edee977b5775732f73544a90962141de  gcc/ada/libgnat/g-allein.ads
! 332629bba922b5a55c3c0aabb29c020f  gcc/ada/libgnat/g-alleve.adb
! f6e547dd819f33d0c247ca33853c17b4  gcc/ada/libgnat/g-alleve.ads
! f281acf82c31b0e737121bcf403c0b21  gcc/ada/libgnat/g-alleve__hard.adb
! b7da81e14665227a8a60f80a25667748  gcc/ada/libgnat/g-alleve__hard.ads
! d40709c00c53c52271e7bbdf9f37e244  gcc/ada/libgnat/g-altcon.adb
! 5c4f79682df19aa59647b777f6f99cce  gcc/ada/libgnat/g-altcon.ads
! 43aec925df4886c8c66e93f1eee4b2fa  gcc/ada/libgnat/g-altive.ads
! d3172bda2f6bc9ffa9adec6539900650  gcc/ada/libgnat/g-alveop.adb
! efd149f8ad0517e8233de4401ff11146  gcc/ada/libgnat/g-alveop.ads
! 7ea4fa93d46885913b954bb03f4fcd5e  gcc/ada/libgnat/g-alvety.ads
! 389a45800e6addb603b53dd315712848  gcc/ada/libgnat/g-alvevi.ads
! e11c9cf1b874c8727754d7c10afdf109  gcc/ada/libgnat/g-arrspl.adb
! 8e7528842dd6b0bc267bba131fdbb359  gcc/ada/libgnat/g-arrspl.ads
! ebc0ccf46edb54f6e767353a08266b29  gcc/ada/libgnat/g-awk.adb
! ffc8df7d62aa7c03468ebd9e3ee21d8e  gcc/ada/libgnat/g-awk.ads
! fd1a20f843936409354f215d6f08319b  gcc/ada/libgnat/g-binenv.adb
! 9c8b7af400062c9470d4a9378cfd9869  gcc/ada/libgnat/g-binenv.ads
! 898d3edb4df010685a162f97da0185dc  gcc/ada/libgnat/g-binsea.adb
! 351560b6d7c4a068ec66333220457b66  gcc/ada/libgnat/g-binsea.ads
! 192b7d14e345c62bc3828a862c2115a8  gcc/ada/libgnat/g-brapre.ads
! 02fe4d0bac6650b8c51b9508c033b89c  gcc/ada/libgnat/g-bubsor.adb
! 6303b881905b68eb3df6868efd039731  gcc/ada/libgnat/g-bubsor.ads
! d12c59914b6a7487f7e328144910fa0b  gcc/ada/libgnat/g-busora.adb
! b02b2f534868a54cc649d5e2c185ec09  gcc/ada/libgnat/g-busora.ads
! 341f71fcf8392e2048809bfb31ad4353  gcc/ada/libgnat/g-busorg.adb
! e05df3423b3fbd0dd3e1dfb1315d827e  gcc/ada/libgnat/g-busorg.ads
! 69dc9ff5690cca237c6fca430db9d9cd  gcc/ada/libgnat/g-byorma.adb
! f5922ea5516064cc36ad3b00789c7590  gcc/ada/libgnat/g-byorma.ads
! 0d405e689adbe8d102ba66cd9b90e93e  gcc/ada/libgnat/g-bytswa.adb
! 56cb07fd3b5805daf1ef0d7da8efc8a1  gcc/ada/libgnat/g-bytswa.ads
! c1f7b18e8f3e83f6a70067d6c590f3c8  gcc/ada/libgnat/g-calend.adb
! 10407de6689609bc938c213f504c3831  gcc/ada/libgnat/g-calend.ads
! b69c563986277a84a180e07612cd232c  gcc/ada/libgnat/g-casuti.adb
! 205f573945990a0f7a46a35af32e56fb  gcc/ada/libgnat/g-casuti.ads
! 65dc0465ad53f5b8d87cf52fddc5c789  gcc/ada/libgnat/g-catiio.adb
! 3480e78205503f8625454764a76b3b94  gcc/ada/libgnat/g-catiio.ads
! aa21d42107e8d73840fdc6757045474a  gcc/ada/libgnat/g-cgi.adb
! 294143e03a043c9381ed70d2834ba5c9  gcc/ada/libgnat/g-cgi.ads
! 59b625234d2a888e60275c2fe7db22a6  gcc/ada/libgnat/g-cgicoo.adb
! f9e5143d27c107bfc35fe28d07c13726  gcc/ada/libgnat/g-cgicoo.ads
! 7a779a91b4eaeed64ba0e1a664640077  gcc/ada/libgnat/g-cgideb.adb
! 75d24c18f98fd950cbfa2386a0a03cdd  gcc/ada/libgnat/g-cgideb.ads
! 34ae38adcce11ae6cb18a19ab93b7b8d  gcc/ada/libgnat/g-comlin.adb
! f6bbbd3e5f854e22f0884d8b8c6e8a89  gcc/ada/libgnat/g-comlin.ads
! cd4b87c7e33ac8acb24e4b93386a7e38  gcc/ada/libgnat/g-comver.adb
! 3b4dcc57b0a8f8f3a72ae29b2bb74ed5  gcc/ada/libgnat/g-comver.ads
! ddfc2cfcd95c2d640ee228ac8197e866  gcc/ada/libgnat/g-cppexc.adb
! 9edce2634d3cddfae13f74706697895f  gcc/ada/libgnat/g-cppexc.ads
! c4e65881b4ff192606616100419078fd  gcc/ada/libgnat/g-crc32.adb
! 4009ec335b348ebdf2be3f0ddc7486c3  gcc/ada/libgnat/g-crc32.ads
! 6385810e07def7a207c0f92d64cbc9a5  gcc/ada/libgnat/g-ctrl_c.adb
! eaec660b31a8f8e22109f97756222aa6  gcc/ada/libgnat/g-ctrl_c.ads
! 56ad446e072988546f004cc4cf105574  gcc/ada/libgnat/g-curexc.ads
! 4a5973c520d59ce35d832f56fcf2ddea  gcc/ada/libgnat/g-debpoo.adb
! 7bf14201af766e7a4bac3979c1b94c11  gcc/ada/libgnat/g-debpoo.ads
! b4d629f9d5726f257548863d54b43120  gcc/ada/libgnat/g-debuti.adb
! af78f89535063a5d30afbb26c18bb969  gcc/ada/libgnat/g-debuti.ads
! 2f105d5979ec141350c03f485d1c98fc  gcc/ada/libgnat/g-decstr.adb
! 4c8f89cb72f85116c7b3f666c996da69  gcc/ada/libgnat/g-decstr.ads
! 599918cedafd7d5a8d1df003b2d1357f  gcc/ada/libgnat/g-deutst.ads
! 6b4c894b4615b4194355f47ed75ccfdf  gcc/ada/libgnat/g-diopit.adb
! b6764c73273b705b79b2788055fc8a3a  gcc/ada/libgnat/g-diopit.ads
! 0d282910809fdecad01576482e8f3330  gcc/ada/libgnat/g-dirope.adb
! 4aec264aad55a92d5f6caaa251a07715  gcc/ada/libgnat/g-dirope.ads
! dd53d6cc2996d3fa8565d1a60b825014  gcc/ada/libgnat/g-dynhta.adb
! 18b2121f91362c2b5a21dcb17bde6bca  gcc/ada/libgnat/g-dynhta.ads
! 17be2e54736a8cc2e1e06d9d26999163  gcc/ada/libgnat/g-dyntab.adb
! e3df1974a7a19117a09ffba1d3c9da16  gcc/ada/libgnat/g-dyntab.ads
! fa839ef4134fce660f7e6af6f6b9aaf8  gcc/ada/libgnat/g-eacodu.adb
! 9354092e3283eacbeacf561be0fe58bf  gcc/ada/libgnat/g-encstr.adb
! 5dc7de4ad349e1bf627881a493d044d9  gcc/ada/libgnat/g-encstr.ads
! 4b797b8c1bf57510f04a1f1c0d6a065d  gcc/ada/libgnat/g-enutst.ads
! a033865beb58e8a22546a48e0bed0424  gcc/ada/libgnat/g-excact.adb
! 97fc0ffe2f19e58a5b44440fdc65a05d  gcc/ada/libgnat/g-excact.ads
! 1937ad7805ee4e3e16a868206b2135ce  gcc/ada/libgnat/g-except.ads
! 6600e3d79384599a0439d464285e1633  gcc/ada/libgnat/g-exctra.adb
! b8c726d87c7d5641772f1e5e12af5fa1  gcc/ada/libgnat/g-exctra.ads
! 09d0575777f9e3e4a36b19b4ffc921dc  gcc/ada/libgnat/g-expect.adb
! 52ca00397a0faa83e7dbef73091be2a3  gcc/ada/libgnat/g-expect.ads
! 91ede9c54bf9bc226f568383d3309c36  gcc/ada/libgnat/g-exptty.adb
! 780cf57931008c55f41b457a0ffd08c4  gcc/ada/libgnat/g-exptty.ads
! 3628ded8d684eff5d5468cc707ebd019  gcc/ada/libgnat/g-flocon.ads
! a6f3ebeda47754b7dc82a5572804ae52  gcc/ada/libgnat/g-forstr.adb
! ab3e22da424417a1afd02cbd75f565b2  gcc/ada/libgnat/g-forstr.ads
! c2add6503e264ca4b61629b5fd68279b  gcc/ada/libgnat/g-gfmafu.ads
! 4e7e0453fb5ef2b808679d36d213f4c3  gcc/ada/libgnat/g-graphs.adb
! 52b7851d03604c90ff7d8ae05b9da2e3  gcc/ada/libgnat/g-graphs.ads
! 0626839849499bd0231251d9b7b14a04  gcc/ada/libgnat/g-heasor.adb
! cc1a34fd4c91c66aabf0543be1469fa2  gcc/ada/libgnat/g-heasor.ads
! c36c078a09d8ac3380c2a87d781ba11c  gcc/ada/libgnat/g-hesora.adb
! 5f3a46437738a68e63c5031fb75a4103  gcc/ada/libgnat/g-hesora.ads
! 76b380b5998a66a91eb7560c596473ac  gcc/ada/libgnat/g-hesorg.adb
! 85a83589619552c6becf55509357733c  gcc/ada/libgnat/g-hesorg.ads
! 36169e5083e9819708c425d867242721  gcc/ada/libgnat/g-htable.adb
! afb670dd3c6527bc3c65eb5a0a58875b  gcc/ada/libgnat/g-htable.ads
! b6439388d1c08d5dbe8e4cd8656e833d  gcc/ada/libgnat/g-io.adb
! e4cbd7b69353249829497d9bfb82aa0e  gcc/ada/libgnat/g-io.ads
! 70d17185f5968b662f1de83fafb36a2a  gcc/ada/libgnat/g-io_aux.adb
! b2da47dd3557a8cc231495819350db62  gcc/ada/libgnat/g-io_aux.ads
! a4fa7cc4b4f4a7db53fdf488ada738d4  gcc/ada/libgnat/g-lists.adb
! 5d374b18f0dacd06925b6c28c0c4d75f  gcc/ada/libgnat/g-lists.ads
! d69e5284e2f49e6f8cba6ddae93de38a  gcc/ada/libgnat/g-locfil.adb
! 0cdcb776f0d1ee36dc5fb8a0e828240d  gcc/ada/libgnat/g-locfil.ads
! b4fc3e5312ade7be3b727bf6c6ad6f15  gcc/ada/libgnat/g-mbdira.adb
! 74c4726d9988dd52a5092439e2103f64  gcc/ada/libgnat/g-mbdira.ads
! bddca06480513a640e1b5b6156f3d289  gcc/ada/libgnat/g-mbflra.adb
! 882992ea8b514da7b4d88f40170a7ad2  gcc/ada/libgnat/g-mbflra.ads
! 1fabd50269880c5879db8757d14c4efc  gcc/ada/libgnat/g-md5.adb
! 517e7b37d2b2407c59aba0baea0e6a98  gcc/ada/libgnat/g-md5.ads
! e9b48e35602ce8298f1173b047f64cad  gcc/ada/libgnat/g-memdum.adb
! 273adf622a2e0dff06bf2f70a7faf9a6  gcc/ada/libgnat/g-memdum.ads
! bdeb7aa28daa53809b9c4bfbff8f187a  gcc/ada/libgnat/g-moreex.adb
! 770f10de007050cfee3052358fb106c0  gcc/ada/libgnat/g-moreex.ads
! 89725c66f54634728d1d16d2bf67b229  gcc/ada/libgnat/g-os_lib.adb
! ff677e3ce1a10ed2aca49c182e733e22  gcc/ada/libgnat/g-os_lib.ads
! b4a6b21327d4c6c3f8ef4e5a4c56c8b8  gcc/ada/libgnat/g-pehage.adb
! 05f7e45746f1ad6a57d46c1cf21b1517  gcc/ada/libgnat/g-pehage.ads
! 3f48c662ce0050a4ed18c58a1879536a  gcc/ada/libgnat/g-rannum.adb
! b2d6c7894daa1543260789ad0c73f8f3  gcc/ada/libgnat/g-rannum.ads
! c630865bfe7e1ed42f4759075458be1f  gcc/ada/libgnat/g-regexp.adb
! 12fdfbaf9155134e2f10a06a2f3fbbe2  gcc/ada/libgnat/g-regexp.ads
! 7d20950a6e0dad0d92339aab3677db03  gcc/ada/libgnat/g-regist.adb
! b7e58c910dced22d87a400980de174b4  gcc/ada/libgnat/g-regist.ads
! d756d0528d330eeaea20506da80b1226  gcc/ada/libgnat/g-regpat.adb
! 7c6ebc158defffb7e8735fb5ea3a0e46  gcc/ada/libgnat/g-regpat.ads
! 437444e15dd10accd34f9a19bd80e5c0  gcc/ada/libgnat/g-rewdat.adb
! 6bf34835f5f743661fd577ac96af191c  gcc/ada/libgnat/g-rewdat.ads
! a974bf1561d52157d23c382d081d6ed1  gcc/ada/libgnat/g-sechas.adb
! 63214b428c8fe64889e366c0b8e82d06  gcc/ada/libgnat/g-sechas.ads
! f391e1e16b227ccb7defa5413befee49  gcc/ada/libgnat/g-sehamd.adb
! 8207c76b2665973b9a996045800003f2  gcc/ada/libgnat/g-sehamd.ads
! caf610b055926b3bc7b43d8de6333cb3  gcc/ada/libgnat/g-sehash.adb
! 81f1290522ccf9a0ec2784c7d77fe7a3  gcc/ada/libgnat/g-sehash.ads
! e0de0e88c7169a49f4ce04dfab89e9bc  gcc/ada/libgnat/g-sercom.adb
! a640ec368a8e6ba4d53dd1a10cb7c444  gcc/ada/libgnat/g-sercom.ads
! cb14a3933733fbef5f7a7c81b547e408  gcc/ada/libgnat/g-sercom__linux.adb
! e8531e3f76df341510caea97acaf114f  gcc/ada/libgnat/g-sercom__mingw.adb
! cfcf8ccd59018218c76ad63b54ae6d95  gcc/ada/libgnat/g-sestin.ads
! 8e8a0a7a813b0ec0f5be987061bb1335  gcc/ada/libgnat/g-sets.adb
! 5836e5a66e26a84da519daebeab8343f  gcc/ada/libgnat/g-sets.ads
! 62f13c1355f1b9d76c878045a333a2e8  gcc/ada/libgnat/g-sha1.adb
! d74d0aa62a719c6fc94e6ab404172ac8  gcc/ada/libgnat/g-sha1.ads
! 99ac48dc59f44291a8efb15eca865c69  gcc/ada/libgnat/g-sha224.ads
! 228ec837f9a75940347784b869566d3e  gcc/ada/libgnat/g-sha256.ads
! 320a7a689be666b4527072af23aab2eb  gcc/ada/libgnat/g-sha384.ads
! e1a2ca5e3115d7fb361864b725c287d1  gcc/ada/libgnat/g-sha512.ads
! 7ea654d824a8505367bd255e99de9cd1  gcc/ada/libgnat/g-shsh32.adb
! df3633ec98af718bc575a59e2e6593b1  gcc/ada/libgnat/g-shsh32.ads
! f9f60688fae01597b7f5196436f21bc2  gcc/ada/libgnat/g-shsh64.adb
! 1950a3c1c0185b1c4dd8d72aba5a1b5f  gcc/ada/libgnat/g-shsh64.ads
! a182ca6ef1fb139d19c9b577ff923baf  gcc/ada/libgnat/g-shshco.adb
! 544cea61c13319fe4a7f58ff67298b1e  gcc/ada/libgnat/g-shshco.ads
! 55915021eb095398bdf8fcaa345cc928  gcc/ada/libgnat/g-soccon.ads
! 5c3a2b8d26aae866cf1ecded604b295c  gcc/ada/libgnat/g-socket.adb
! 239fd853a1c1b819a1bd9437226ed279  gcc/ada/libgnat/g-socket.ads
! 2049f06392f7507d7ec56847f8856e12  gcc/ada/libgnat/g-socket__dummy.adb
! a106191b9c4f1030c92fe550145b0ad7  gcc/ada/libgnat/g-socket__dummy.ads
! a588e7c7aa044a0f9f3de747c347e259  gcc/ada/libgnat/g-socpol.adb
! c47405f2432ef6e11cd5b62d4b69349c  gcc/ada/libgnat/g-socpol.ads
! 8bbb5783cdb4cda62b15d1fb66f3532e  gcc/ada/libgnat/g-socpol__dummy.adb
! 0aaec0338c20179f7f76fb880ff86a8c  gcc/ada/libgnat/g-socpol__dummy.ads
! 1851f283baea668cc2dd4d116350dbf7  gcc/ada/libgnat/g-socthi.adb
! 72a87d5f03864d3c119aa3d18a225b94  gcc/ada/libgnat/g-socthi.ads
! c2f61d1f9151c73a4f567261c737eaf3  gcc/ada/libgnat/g-socthi__dummy.adb
! 5b28033646503e5de4ab8d2ef20a82a4  gcc/ada/libgnat/g-socthi__dummy.ads
! 9af3dba66cea775691da0b3c20200293  gcc/ada/libgnat/g-socthi__mingw.adb
! b1314cf6bfe2673443cfb29ae59e2478  gcc/ada/libgnat/g-socthi__mingw.ads
! c86c70290dc931442f02e6e60d0cd795  gcc/ada/libgnat/g-socthi__vxworks.adb
! 094c71d5b9088fe4888731de316efffd  gcc/ada/libgnat/g-socthi__vxworks.ads
! 5f8efd75cb648fe83e52ad7246458917  gcc/ada/libgnat/g-soliop.ads
! faa7522bb37c30b00ce083a7393b31ed  gcc/ada/libgnat/g-soliop__lynxos.ads
! 58c39f843076c39abec9b85c73a62c45  gcc/ada/libgnat/g-soliop__mingw.ads
! 52b9706e920d7e4256bbb0c879d94f29  gcc/ada/libgnat/g-soliop__qnx.ads
! ac946c77347702dcea5a575f0167af54  gcc/ada/libgnat/g-soliop__solaris.ads
! 7adcef1c66b0c666c9fc63b51f858b7a  gcc/ada/libgnat/g-sopowa.adb
! 73627181cbec5087d073fdbed6cacc37  gcc/ada/libgnat/g-sopowa__mingw.adb
! 843a3599f8a8e61a0f210e6026342430  gcc/ada/libgnat/g-sopowa__posix.adb
! 0042bd77c8c4b4c7ad95f138457d9060  gcc/ada/libgnat/g-sothco.adb
! c4ee94ad870688a2831eaa31abd9c985  gcc/ada/libgnat/g-sothco.ads
! 30fe4cced168f5a4fab63d02d871394d  gcc/ada/libgnat/g-sothco__dummy.adb
! f065c1716d9b2e5b8ecde0dc4d9567aa  gcc/ada/libgnat/g-sothco__dummy.ads
! c83bb970dcaa96510e1a94b1b7741c0f  gcc/ada/libgnat/g-souinf.ads
! 8b2f74264dfd7d12ed25f9391449f69f  gcc/ada/libgnat/g-spchge.adb
! 94b4d2d1c0c47e4cd32488cf7e90a1cd  gcc/ada/libgnat/g-spchge.ads
! 0bef2bfe52f08e5a1fb565e8f09710b5  gcc/ada/libgnat/g-speche.adb
! 9e0407047e4d7b33a0f5a8abfa0e700b  gcc/ada/libgnat/g-speche.ads
! 70e056f996c2a9bb642ccf4b3f54afb6  gcc/ada/libgnat/g-spipat.adb
! 4180ade66ffc056d74329dd6f8d3f5e1  gcc/ada/libgnat/g-spipat.ads
! 7ec5e11b5a06e6b66218fd2570be0cd2  gcc/ada/libgnat/g-spitbo.adb
! e9c5bef688d2ead7296fe36c9fe3381a  gcc/ada/libgnat/g-spitbo.ads
! 922f4377829065ca1535f4d8fa77fb2d  gcc/ada/libgnat/g-spogwa.adb
! a78c2e54338777e0f02bef2a6530a3d4  gcc/ada/libgnat/g-spogwa.ads
! 9c9b62d98c1d17d92d6cfe6d02863ef5  gcc/ada/libgnat/g-sptabo.ads
! ff833abfe2e4171a99a58b1da88d8cb1  gcc/ada/libgnat/g-sptain.ads
! 1c1203c8dafd6d947f0aacaf6e9ec8fe  gcc/ada/libgnat/g-sptavs.ads
! 9ec9ff1fb8743bc83852c16d5402dee6  gcc/ada/libgnat/g-sse.ads
! 48dc25385bc0405041e884f6722ef8e7  gcc/ada/libgnat/g-ssvety.ads
! 86417a83aa3e801157f7c030f6bc2209  gcc/ada/libgnat/g-sthcso.adb
! c227a95603af21333c81e1041d210762  gcc/ada/libgnat/g-stheme.adb
! ad0357a23bcd1a2f4017a53f034e1bf5  gcc/ada/libgnat/g-strhas.ads
! 682fe6a868d6179e1c792f998278fe30  gcc/ada/libgnat/g-string.adb
! 4cfbaf461ebca176a36d4b8302f61ebf  gcc/ada/libgnat/g-string.ads
! e5ae190ff7c06c7116f9f66692becd5d  gcc/ada/libgnat/g-strspl.ads
! 458fa59c78d5040b0bed6e17f3ed9f28  gcc/ada/libgnat/g-stseme.adb
! 02073a6526b6700c8e9a7a925731b617  gcc/ada/libgnat/g-stsifd__sockets.adb
! cbde49c445fd7fe520dea1b4defd3d34  gcc/ada/libgnat/g-table.adb
! 110d071774e15c81722f1a809d421a66  gcc/ada/libgnat/g-table.ads
! 61e530dbc4e240e65a851aa088ec2de6  gcc/ada/libgnat/g-tasloc.adb
! cbc1cb587a0dfd99b64833e607732f3f  gcc/ada/libgnat/g-tasloc.ads
! 6d05b61a74f1113ba51743cfd0635342  gcc/ada/libgnat/g-timsta.adb
! e777266d2ace83c73519fb7e97c11648  gcc/ada/libgnat/g-timsta.ads
! 777a9a4496ea9bfbffb05e117409d755  gcc/ada/libgnat/g-traceb.adb
! fd77979fb9ed128f29c881e775419490  gcc/ada/libgnat/g-traceb.ads
! 139d72def4a055fba52e89a1e77860f2  gcc/ada/libgnat/g-trasym.adb
! 3932fdf922641ceee52b9a5788f0344c  gcc/ada/libgnat/g-trasym.ads
! 9a99c8c4b7159d3c3b9d34d33767fcb0  gcc/ada/libgnat/g-tty.adb
! 18a609fa0535c3752e14f99c8bea65b2  gcc/ada/libgnat/g-tty.ads
! 186f865be19b1dd77e027cb1a3a18d64  gcc/ada/libgnat/g-u3spch.adb
! 972a16bb3dce7d4f92262022e0421136  gcc/ada/libgnat/g-u3spch.ads
! caf5ed24dabd312761611a861a55eaf3  gcc/ada/libgnat/g-utf_32.adb
! d6d88308934a7ba0a09c92c63e2df1d8  gcc/ada/libgnat/g-utf_32.ads
! ef6109300d49c6293b40ad13a1db48a6  gcc/ada/libgnat/g-wispch.adb
! 123f89738cff2100197a36b901f7b69a  gcc/ada/libgnat/g-wispch.ads
! 045ef7d217de17547b414ec10516357f  gcc/ada/libgnat/g-wistsp.ads
! 04bdb9a60bb1ffea9f32fb386bc44596  gcc/ada/libgnat/g-zspche.adb
! f1b883794fac0895d10510a0834adc59  gcc/ada/libgnat/g-zspche.ads
! 3dc95335841697d5ea438fdcdeafb861  gcc/ada/libgnat/g-zstspl.ads
! 1cc1b392ef9ee0a64c76d4a060eaac05  gcc/ada/libgnat/gnat.ads
! 8f41dc0c031f528237b9c0a82cb63100  gcc/ada/libgnat/i-c.adb
! 256d7e56ef75329ead6ed484d2552965  gcc/ada/libgnat/i-c.ads
! e48c29105fbff76e8a2d980c7b8761c7  gcc/ada/libgnat/i-cexten.ads
! 8caee3e0d714dfe302d9432421b1d06e  gcc/ada/libgnat/i-cexten__128.ads
! e1bd304475c80884f026d449b905fa69  gcc/ada/libgnat/i-cheri.adb
! f15d217318d74e7dd936768ce9564314  gcc/ada/libgnat/i-cheri.ads
! b3111c6f709db1c59c04d930ec6bc41a  gcc/ada/libgnat/i-cobol.adb
! 44f1edecfebd5319eb7f6cceb975f479  gcc/ada/libgnat/i-cobol.ads
! aac1e82d3a6bb8b47dead83ba29e83e4  gcc/ada/libgnat/i-cpoint.adb
! 20e1081787c3aa5deefb1b57c7d69367  gcc/ada/libgnat/i-cpoint.ads
! 274bb0bdff7cc5f140dfe8f25e8acaa5  gcc/ada/libgnat/i-cstrea.adb
! 13b00471aa432056a3fa0ab9d3d8a3ef  gcc/ada/libgnat/i-cstrea.ads
! 0e417d558af78cfc6160ea735012d0dd  gcc/ada/libgnat/i-cstrin.adb
! c39fe68fe12bd98fff819cad0d86bfdc  gcc/ada/libgnat/i-cstrin.ads
! 22bfaa12e6a53a324312a4e5b8e8b625  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
! f43a70d66548232a7f22ad363b3d4daa  gcc/ada/libgnat/i-pacdec.adb
! 2b7ce2bc0a65b62a2c3e471bda0a68a7  gcc/ada/libgnat/i-pacdec.ads
! a982625a3d743238c405922145c50bfa  gcc/ada/libgnat/i-vxwoio.adb
! dfd948210cbfad22c9bfbd284186fc60  gcc/ada/libgnat/i-vxwoio.ads
! fb0debe7da1fe040973246ccc4168c04  gcc/ada/libgnat/i-vxwork.ads
! a6374d189d0aeb5ca862de748dd996a3  gcc/ada/libgnat/i-vxwork__x86.ads
! a40aebfa2477376f9024c05fa79bb13a  gcc/ada/libgnat/interfac.ads
! e8d0259da95bb7de1eb0013f8f9263f9  gcc/ada/libgnat/interfac__2020.ads
  c2121d458a346c0b9d83825c544b9516  gcc/ada/libgnat/ioexcept.ads
  e793c8df6f0ffab52eef39bb5d82d97f  gcc/ada/libgnat/libada.gpr
  9b37ec6e60899a7dadce7f301acc9eee  gcc/ada/libgnat/libgnat.gpr
  cf5fbbe7ae49ee16e33e55135bc15876  gcc/ada/libgnat/libgnat_common.gpr
! 38f101ad4a6eba55ef694b1ab6315683  gcc/ada/libgnat/machcode.ads
! cfd8de49d8cf078cabd3e7c1057a55bc  gcc/ada/libgnat/memtrack.adb
! 06d02c6402b8801c3db154fe81326847  gcc/ada/libgnat/s-addima.adb
! 379e56c5e8467b9ae6e4c2fbb446e4d1  gcc/ada/libgnat/s-addima.ads
! 122120c5cbb3d5c2642f0837c3def92b  gcc/ada/libgnat/s-addope.adb
! 8aa82af2fac71e158b950974f2f6deb7  gcc/ada/libgnat/s-addope.ads
! a8d561388a4ab03583f1ff365f150f32  gcc/ada/libgnat/s-aoinar.adb
! a3bfea7328546ae6cbe7c1b2e046ef44  gcc/ada/libgnat/s-aoinar.ads
! 45040baa47738efcd08d6d565756a725  gcc/ada/libgnat/s-aomoar.adb
! 149b15f028707fa48cfd1f13e4b7ae52  gcc/ada/libgnat/s-aomoar.ads
! 8297045557517b5d189ae9331d45dad5  gcc/ada/libgnat/s-aotase.adb
! e076e8a8148f8507947a92d0a031e4c8  gcc/ada/libgnat/s-aotase.ads
! 610ac538e9d96625d35b6327183a2fff  gcc/ada/libgnat/s-aridou.adb
! c6b974498bace3a7013b8975ed36cf28  gcc/ada/libgnat/s-aridou.ads
! 6c5a4199db3524d1574a9af127b5cab8  gcc/ada/libgnat/s-arit128.adb
! f856217f7ff0af46d4c6c06770f514b3  gcc/ada/libgnat/s-arit128.ads
! 8830acae01b88d1035ed9b6e39b473e5  gcc/ada/libgnat/s-arit32.adb
! cd97546b936461256976ca2ed5c669a7  gcc/ada/libgnat/s-arit32.ads
! 2f3106e7d7813458e8ce026f7cfef3e2  gcc/ada/libgnat/s-arit64.adb
! ec4bca1d9ac56358a73f836b0860b65a  gcc/ada/libgnat/s-arit64.ads
! 92ed5a9710b2855e953ec7309300d655  gcc/ada/libgnat/s-assert.adb
! eeec5ce85e5a6d214059c8695ac1df74  gcc/ada/libgnat/s-assert.ads
! e41be68b22562e1f84f4810c1fa8ba0f  gcc/ada/libgnat/s-atacco.adb
! d2071af474e6b8d08064a74be637f0ed  gcc/ada/libgnat/s-atacco.ads
! f5eb89dbf032343dbd199dec3e56f5d3  gcc/ada/libgnat/s-atocou.adb
! 02d6c529a9adaa9eb57a973ce258d9af  gcc/ada/libgnat/s-atocou.ads
! add4ce392dada4169c663722789f13c0  gcc/ada/libgnat/s-atocou__builtin.adb
! 2bd70cbc2429a2d5ea6a315632e42368  gcc/ada/libgnat/s-atoope.ads
! f9d9868422dc5d7dba5f4d0691fb994b  gcc/ada/libgnat/s-atopex.adb
! 83586cc46cf8e19b05ca61c3e3a523ab  gcc/ada/libgnat/s-atopex.ads
! 4d15f845d0fd14d1cb1f191ff04e6b20  gcc/ada/libgnat/s-atopri.adb
! d748f445e3fff0e27880b67f40d1e36e  gcc/ada/libgnat/s-atopri.ads
! 40db9dd7ef34f7cdd08a82276692f715  gcc/ada/libgnat/s-atopri__32.ads
! dc5be26e276c81a33cfcbde33e749f32  gcc/ada/libgnat/s-auxdec.adb
! aca8a7e017e6a60df3e8181331ef716e  gcc/ada/libgnat/s-auxdec.ads
! 22037d33e67367d1178b1d68f90d8090  gcc/ada/libgnat/s-bignum.adb
! 02552c0b57206c8797993e58968d806e  gcc/ada/libgnat/s-bignum.ads
! 342747c1fea0755dfce94fe1abd720f2  gcc/ada/libgnat/s-bitfie.ads
! 17432cc032be1108cc4d26ba40463f4c  gcc/ada/libgnat/s-bitops.adb
! b9aceca335170d0ef2f9494000e59c5d  gcc/ada/libgnat/s-bitops.ads
! 3b53cfa0b4f32c1ace0c325ba7e8fc30  gcc/ada/libgnat/s-bituti.adb
! b8945cb69c86fd8c406c645b12c18752  gcc/ada/libgnat/s-bituti.ads
! 626508e80d5d1b434d9ba96d7efcb808  gcc/ada/libgnat/s-boarop.ads
! c07b9ddc570cba6a9759c84fd9b1f6e9  gcc/ada/libgnat/s-boustr.adb
! c220d62e0f4446bf33e93f62ddf72ff8  gcc/ada/libgnat/s-boustr.ads
! 2b0893a2e7b9f2e39a8d2ca557b604d7  gcc/ada/libgnat/s-bytswa.ads
! 840246170b514a4cbba8dddf592ad68a  gcc/ada/libgnat/s-carsi8.adb
! 7167675a9d7bbac721e4f843efa39cca  gcc/ada/libgnat/s-carsi8.ads
! 4c4b801496e5f71fc5000b4d9514fe48  gcc/ada/libgnat/s-carun8.adb
! a5710240a11466af11e4018ac74d90bb  gcc/ada/libgnat/s-carun8.ads
! 887796467df83c0b002637532de27e03  gcc/ada/libgnat/s-casi128.adb
! a717fa16b2e3ae0e980deea1890dfcdc  gcc/ada/libgnat/s-casi128.ads
! f604206aa2fcdadc7e870af80cbabfe5  gcc/ada/libgnat/s-casi16.adb
! df0b1adc4e03673cb73124311fd9fb37  gcc/ada/libgnat/s-casi16.ads
! fd071b0937e15d152af8e6e456728bd5  gcc/ada/libgnat/s-casi32.adb
! c1bc39e209d6f1230a98de192b075757  gcc/ada/libgnat/s-casi32.ads
! 9228342b0036834884f37c13152c0cf5  gcc/ada/libgnat/s-casi64.adb
! acbaa7680201f68cb332961311c0a499  gcc/ada/libgnat/s-casi64.ads
! 725495eb04e6ac4ac37f25c8893f8501  gcc/ada/libgnat/s-casuti.adb
! 52f6df3e53e3060d1a3a7f89cd60055b  gcc/ada/libgnat/s-casuti.ads
! 97ea0c70924832815b9d85e498a66a1f  gcc/ada/libgnat/s-caun128.adb
! efbd20eb1309074449a0c66e0314fa4a  gcc/ada/libgnat/s-caun128.ads
! d9a29a235da47bace7453ad9ec4771aa  gcc/ada/libgnat/s-caun16.adb
! e70b36fcbf52df7c860f8ba1bdae9f4e  gcc/ada/libgnat/s-caun16.ads
! 713699214c0e00cefdaa183aa579b6dc  gcc/ada/libgnat/s-caun32.adb
! 42cb5eb98359948fd53e4b323b9bcfec  gcc/ada/libgnat/s-caun32.ads
! 3e8bd0f9585478abd16f2093b887f947  gcc/ada/libgnat/s-caun64.adb
! 03eedf9ca95b715b2962a3e8cbcceaf7  gcc/ada/libgnat/s-caun64.ads
! 00ae27f87908dc8b2bc7d57d5bb650cd  gcc/ada/libgnat/s-chepoo.ads
! 233961097071aa661d4e715e72716dad  gcc/ada/libgnat/s-commun.adb
! 6df2e98131a8bd60311caaa74dd99804  gcc/ada/libgnat/s-commun.ads
! bb7bdf44de76c7ea7076d7eabe7593b0  gcc/ada/libgnat/s-conca2.adb
! 57abf9f85d4a6f178e93c7a1022236de  gcc/ada/libgnat/s-conca2.ads
! 4dcf400c09ac88740f746e4563780e2b  gcc/ada/libgnat/s-conca3.adb
! 4572f409a074bcc414ee6c3ac1a412de  gcc/ada/libgnat/s-conca3.ads
! 5f23709286394c96364af6cc5aa7c106  gcc/ada/libgnat/s-conca4.adb
! d3bcbc1e33e37a479ff1d433f6f283a5  gcc/ada/libgnat/s-conca4.ads
! 572da306861c82cdcb5dc33d9cccb01a  gcc/ada/libgnat/s-conca5.adb
! 17b0b48c68db336044d737c5cee218b4  gcc/ada/libgnat/s-conca5.ads
! de8492f7751e96f5be58fd606401c9c5  gcc/ada/libgnat/s-conca6.adb
! ec66f78bf07b12763a3d022ac47f7094  gcc/ada/libgnat/s-conca6.ads
! fa53007ec0b5fe0e3b3e2e4b9026b5d8  gcc/ada/libgnat/s-conca7.adb
! 8bc2ce56e40accb4291c35daf9455482  gcc/ada/libgnat/s-conca7.ads
! 2e69b4fc112eb03f124bf04266f2fec0  gcc/ada/libgnat/s-conca8.adb
! 8059be22b657a70c0f6966635aad4a51  gcc/ada/libgnat/s-conca8.ads
! c8d49711d4c6149241b797178092fe39  gcc/ada/libgnat/s-conca9.adb
! 20dea213fdefb01c598ce16c361b818e  gcc/ada/libgnat/s-conca9.ads
! ad715fe0e851557992a62e71c4ad2a8d  gcc/ada/libgnat/s-crc32.adb
! 7ffae1f617d18ad7a271efa2d292bd2e  gcc/ada/libgnat/s-crc32.ads
! 8859ff77b7857ef3ea7aa87c838f545c  gcc/ada/libgnat/s-crtl.ads
! c2e6772988571aae4cbb50fa926d3261  gcc/ada/libgnat/s-dfmkio.ads
! 69a269fba94e1ea1c04d15d0e13558ae  gcc/ada/libgnat/s-dfmopr.ads
! 21c2d1b0f89e01449527354f9d7c8d81  gcc/ada/libgnat/s-dgmgop.ads
! f55c45cf2cb23750b6cd45c4590e6fc5  gcc/ada/libgnat/s-diflio.adb
! b3f2f6022c7a54a3347cba475961876e  gcc/ada/libgnat/s-diflio.ads
! fb43d640c0cd13790ac38f559eaff1e7  gcc/ada/libgnat/s-diflmk.ads
! 46b26087d626c3aac0e246e598f77e3a  gcc/ada/libgnat/s-digemk.ads
! a3c42df0e378e7d387a7a2b5f57dd8d1  gcc/ada/libgnat/s-diinio.adb
! 3a2f85645e3e970d9f7a7d883452066c  gcc/ada/libgnat/s-diinio.ads
! 4ffbda532aeb0b7a02dc66f0d2483aa3  gcc/ada/libgnat/s-dilomk.ads
! 1af668d4530a7c15be2696b4e7ddc3d6  gcc/ada/libgnat/s-dim.ads
! f2dcee22bb65bedc6016dc63c7784029  gcc/ada/libgnat/s-dimkio.ads
! a5ac519ca2d5715593bb40d27f71afae  gcc/ada/libgnat/s-dimmks.ads
! 4da6d8bb11ebd5c02cbdb97169a7afdc  gcc/ada/libgnat/s-direio.adb
! 86cc99c611f42c44ab1755478b717036  gcc/ada/libgnat/s-direio.ads
! cf701fe3a4262464ce11918a1e7c1ac8  gcc/ada/libgnat/s-dlmkio.ads
! 3d96504cc95a777e769049fed212a5c9  gcc/ada/libgnat/s-dlmopr.ads
! 328356701909c0758b7d44f4e0cc2b93  gcc/ada/libgnat/s-dmotpr.ads
! 3b5cd0081f88f550731d7ca672cb51a8  gcc/ada/libgnat/s-dorepr.adb
! 1a7b1d1e3b1948a937b8efd2166afc9b  gcc/ada/libgnat/s-dorepr__fma.adb
! d5c591097a806a2f01001c835f537bee  gcc/ada/libgnat/s-dourea.adb
! e1528dfa862f392276ecb1064b82234f  gcc/ada/libgnat/s-dourea.ads
! 173efe308be0d8ddde3b4f9a767ad7db  gcc/ada/libgnat/s-dsaser.ads
! 27aad1f27d832df576e7fc828d939964  gcc/ada/libgnat/s-dwalin.adb
! 8a73e158aedbb2ea6a7e2e07f583ca2d  gcc/ada/libgnat/s-dwalin.ads
! 68fe25b036f7cb99c4a6bf87dcd62561  gcc/ada/libgnat/s-elaall.adb
! 4a5a45ac7db89fa2f234373753c79803  gcc/ada/libgnat/s-elaall.ads
! e6ef7375bc4b623389356f1b5c5fae7e  gcc/ada/libgnat/s-excdeb.adb
! 95cb16bdf32b50a5313b8a2750a90099  gcc/ada/libgnat/s-excdeb.ads
! 759ffd10f903378ea2892527ed7bfead  gcc/ada/libgnat/s-except.adb
! 24597005442b24efa1647641bafa4fdd  gcc/ada/libgnat/s-except.ads
! 072ff61bdf591c014783bfbe93c6f2bb  gcc/ada/libgnat/s-excmac__arm.adb
! d9012a4a022b5fb499bc496af8bd9a7a  gcc/ada/libgnat/s-excmac__arm.ads
! 3252a8fce432fa9f23a191cdba84656f  gcc/ada/libgnat/s-excmac__gcc.adb
! edff91fc9e53c6afd805021632a248c4  gcc/ada/libgnat/s-excmac__gcc.ads
! 21b9bd59389af7037ddc850c2a432761  gcc/ada/libgnat/s-exctab.adb
! c7c6afd1623020c07983d936a4a6e014  gcc/ada/libgnat/s-exctab.ads
! 50b639f046f1ad51b97a022ce9c5830f  gcc/ada/libgnat/s-exctra.adb
! 0a0b3fdd4f4f226d94a05f61a84a6a5e  gcc/ada/libgnat/s-exctra.ads
! 280ca2f936e96f88faffaf31a5ce63fe  gcc/ada/libgnat/s-exnflt.ads
! 634da5b98384cf808152ee61f30b5222  gcc/ada/libgnat/s-exnint.adb
! 17934e030bc11a0e47754245051f3f3a  gcc/ada/libgnat/s-exnint.ads
! 5c7e9212584382165ca7663350d82366  gcc/ada/libgnat/s-exnlfl.ads
! 5faa18f7e691c7d53bcfcd8bd6cee720  gcc/ada/libgnat/s-exnllf.adb
! fe20f46ba4ef7aa5be5bb9629ea940ca  gcc/ada/libgnat/s-exnllf.ads
! 7cf69de5d04721eb517d1aec3945fcea  gcc/ada/libgnat/s-exnlli.adb
! cad31486e43ad58887072fc4aa41210f  gcc/ada/libgnat/s-exnlli.ads
! b7665214f16c1e689d55cbd220ebd5a3  gcc/ada/libgnat/s-exnllli.ads
! ea967e67909b2a78656f0059c8b34d3e  gcc/ada/libgnat/s-expint.adb
! d2d955ae97ecd2fae284c677ec491e40  gcc/ada/libgnat/s-expint.ads
! 6c1a5b211ce70fd6e4a5cffa2d73d046  gcc/ada/libgnat/s-explli.adb
! c133c650aee41fdea7428892f446446a  gcc/ada/libgnat/s-explli.ads
! fa4799159be57b6faf0748e0aeec6310  gcc/ada/libgnat/s-expllli.ads
! 5a410a924f141c5fd42e558fc0c0e856  gcc/ada/libgnat/s-explllu.ads
! d1a06a3b8fccede1eb7d0ee78e65322d  gcc/ada/libgnat/s-expllu.adb
! 7997293bab6c114ed4df85d85b952226  gcc/ada/libgnat/s-expllu.ads
! 022e1f32657abe67ff753f991788eda5  gcc/ada/libgnat/s-expmod.adb
! 0c160bc94918cb83416111e937ddbad8  gcc/ada/libgnat/s-expmod.ads
! 858ba8963da35bcfe47ed65d1eafd931  gcc/ada/libgnat/s-exponn.adb
! 24295602b648c9d08885a8d2a2463970  gcc/ada/libgnat/s-exponn.ads
! f04a8b6f252fba101258ca3ee221c61e  gcc/ada/libgnat/s-exponr.adb
! b41ab486604053fd38f7925589b7a099  gcc/ada/libgnat/s-exponr.ads
! 4e3cb325139435de998778e92d5c8bc7  gcc/ada/libgnat/s-expont.adb
! 186673a2555fca847eb3e73a73a63923  gcc/ada/libgnat/s-expont.ads
! 7386bb7198c55d59f0b553a0cc5a8cec  gcc/ada/libgnat/s-exponu.adb
! 28d5d1fe2dcacd74ccb5fdb1453840ca  gcc/ada/libgnat/s-exponu.ads
! d03b0c3e47dcab0dba19821c16a84d13  gcc/ada/libgnat/s-expuns.adb
! a5d7b53a95d6ec9d148ff9f1d8b353ab  gcc/ada/libgnat/s-expuns.ads
! a7ea5a81be334d2d09a2facc88008e5e  gcc/ada/libgnat/s-fatflt.ads
! d6299dafdce775b8201ac9fef5beecdb  gcc/ada/libgnat/s-fatgen.adb
! 480ed54cf31550b6c7823fc3bed1a7db  gcc/ada/libgnat/s-fatgen.ads
! 296da519c2dd25994be9a4def49b22a4  gcc/ada/libgnat/s-fatlfl.ads
! 6fba2c564989d54d6c8c37d0ee7a364f  gcc/ada/libgnat/s-fatllf.ads
! 4e8a2d1b50efd2d672f76317c0cfaa92  gcc/ada/libgnat/s-ficobl.ads
! fc7374ecb1e486ccadbe507220ea39ab  gcc/ada/libgnat/s-filatt.ads
! 7cc2596200e72bffc6e08395075a68e9  gcc/ada/libgnat/s-fileio.adb
! e2052f4e8f874b1cc277811abb9b922c  gcc/ada/libgnat/s-fileio.ads
! ddec4d8e36b1871a7ee4d585f5498deb  gcc/ada/libgnat/s-finmas.adb
! 5a75f23d550e4b2c0dee0e40dd626a38  gcc/ada/libgnat/s-finmas.ads
! dbb4943790d31d364ad5b06f2143df8e  gcc/ada/libgnat/s-finroo.adb
! 5f1e91d05f26ab775b2e969cbfa56353  gcc/ada/libgnat/s-finroo.ads
! 01d42d92b3ea592237e95b1e2d07e08a  gcc/ada/libgnat/s-flocon.adb
! 5970eb2a1f8266a368273e777f5bd59d  gcc/ada/libgnat/s-flocon.ads
! 3d0e0b7e026335edf509e6ab0838c0b6  gcc/ada/libgnat/s-flocon__none.adb
! 68ac7358cef263af306dca4b90b0e365  gcc/ada/libgnat/s-fode128.ads
! 80c2b0c571f178924ab2c381e69ae67d  gcc/ada/libgnat/s-fode32.ads
! e914e5a679118ea774d9942be8e9ecb3  gcc/ada/libgnat/s-fode64.ads
! ae4128a443a104b7e715577bed42c326  gcc/ada/libgnat/s-fofi128.ads
! 731857f16695f985589be478754a0b4e  gcc/ada/libgnat/s-fofi32.ads
! 4886b3698ef38a88a20ec3933e93dc4b  gcc/ada/libgnat/s-fofi64.ads
! 9e738b34ed5766e8c77279f1b66ec965  gcc/ada/libgnat/s-fore_d.adb
! 716d033690ba433b355306c7b3d91434  gcc/ada/libgnat/s-fore_d.ads
! b2a9c21a3a5eec5fe7937505a59f8bd3  gcc/ada/libgnat/s-fore_f.adb
! e6f533a142760b2a27ef8d3137fa57c9  gcc/ada/libgnat/s-fore_f.ads
! e3278151cbffbda15622ee6e514feb12  gcc/ada/libgnat/s-forrea.adb
! b657b4be2fa53ecca6ecf74fb822c581  gcc/ada/libgnat/s-forrea.ads
! e202b72f4e41473077da605938fb7d8c  gcc/ada/libgnat/s-gearop.adb
! 955feca07ad547b58b5ea56690826684  gcc/ada/libgnat/s-gearop.ads
! 1a35da100fe688a08f9ed6fff19613be  gcc/ada/libgnat/s-genbig.adb
! c90046860d2f4f880a33b25e10f79245  gcc/ada/libgnat/s-genbig.ads
! daf36f04dced8b04cfe641e1ebfd7fb0  gcc/ada/libgnat/s-geveop.adb
! c9f67439e38700a3542acfbbf92e5cee  gcc/ada/libgnat/s-geveop.ads
! 2804c35e26967fb3888efa18aa25efda  gcc/ada/libgnat/s-gloloc.adb
! f0300b7d6474c53939f23b2ae7814141  gcc/ada/libgnat/s-gloloc.ads
! 96ea9d1c0ca48e1f842a1e3d2102d009  gcc/ada/libgnat/s-gloloc__mingw.adb
! 38942dd86ab640bc607ecd8069ba6250  gcc/ada/libgnat/s-htable.adb
! aef0a2a49025ad28bcde46351f1145fc  gcc/ada/libgnat/s-htable.ads
! 37e9b8234a9bb1502dfe01009035d453  gcc/ada/libgnat/s-imageb.adb
! d53b5de7965833ba4cf8b6b50e85037b  gcc/ada/libgnat/s-imageb.ads
! 305f8cd9a54400c21cedc74232ed40a7  gcc/ada/libgnat/s-imaged.adb
! 4e3f0b04ec79986d07c041e1b4520962  gcc/ada/libgnat/s-imaged.ads
! fe8bcb9aeae0b80694c067e35df73509  gcc/ada/libgnat/s-imagef.adb
! 2961bb27fcaec539a43d4d16af080304  gcc/ada/libgnat/s-imagef.ads
! 841c232277b1305ced903e0863fd9f77  gcc/ada/libgnat/s-imagei.adb
! 24d50687e465622b48ac2d7ab5db27ca  gcc/ada/libgnat/s-imagei.ads
! 3b028cd3f1578050384a0717eb2ef5b7  gcc/ada/libgnat/s-imagen.adb
! 77558e6eaca67bf7fe6de14685ef92a0  gcc/ada/libgnat/s-imagen.ads
! 2a1ef92537a88e61475f1a5aaa8e94ad  gcc/ada/libgnat/s-imager.adb
! 40d720628c728aabb4fe47dad7db7c8c  gcc/ada/libgnat/s-imager.ads
! 52aa60587a9756e4883730d1922750de  gcc/ada/libgnat/s-imageu.adb
! 2b9886a9f67d5353aec5d234973779fe  gcc/ada/libgnat/s-imageu.ads
! 63bc834348e779529bf8a02c358ce2cf  gcc/ada/libgnat/s-imagew.adb
! 67f8a2bd32d639a3f9db02aca1d2ec68  gcc/ada/libgnat/s-imagew.ads
! bfee0f209a1ad30bb77aee43b72edc05  gcc/ada/libgnat/s-imde128.ads
! fbd75bf70a1186e7600c819fd2408481  gcc/ada/libgnat/s-imde32.ads
! ff130566bb41c437ba798ff2dd870df9  gcc/ada/libgnat/s-imde64.ads
! c8ffbc2694be961bb09fa6495922016a  gcc/ada/libgnat/s-imen16.ads
! 78a31182e5057f48e65ca803cac6378b  gcc/ada/libgnat/s-imen32.ads
! 97e66f18ad14604f6dc85a89733833eb  gcc/ada/libgnat/s-imenu8.ads
! b45327dd20408c834974088797eccead  gcc/ada/libgnat/s-imfi128.ads
! 0980c64c6bd95678adb5bdc3115dc1e7  gcc/ada/libgnat/s-imfi32.ads
! 36fee25a5e0fd811cdef04e7e4895a42  gcc/ada/libgnat/s-imfi64.ads
! c0632a420afb54cb236361f3511566e8  gcc/ada/libgnat/s-imgbiu.adb
! 30eaae9bb373b36377b3d2990f279af8  gcc/ada/libgnat/s-imgbiu.ads
! 4cbb810bb25bc3f94b93cfa63afdbb65  gcc/ada/libgnat/s-imgboo.adb
! 38be438637fcae137634fec8097cd822  gcc/ada/libgnat/s-imgboo.ads
! 367e6ddac9d4ecf678d0380d503b3e93  gcc/ada/libgnat/s-imgcha.adb
! 5a7fa4b11be79b4ba548b7acb73759d3  gcc/ada/libgnat/s-imgcha.ads
! 2a77ae9a836812b92a10817832c3a27a  gcc/ada/libgnat/s-imgflt.ads
! df5ca34cf1a71545aad63eacb84119b9  gcc/ada/libgnat/s-imgint.adb
! 13863327eaef9ca3a26dcb2ddbc2387d  gcc/ada/libgnat/s-imgint.ads
! dc9cf08b9be5aa843eb9260ad74100c2  gcc/ada/libgnat/s-imglfl.ads
! 62a4ca6c82ecacff2ea9ff8f32c818d1  gcc/ada/libgnat/s-imgllb.adb
! b0ac4dc5f3ec9cce4aca9596d38597d4  gcc/ada/libgnat/s-imgllb.ads
! c00ba164505b93e7c9ade7ff670b0974  gcc/ada/libgnat/s-imgllf.ads
! d371d16cec7fc3451310e00158c5726d  gcc/ada/libgnat/s-imglli.adb
! ff36e69a6d6c5bbd4e41582ef4a623d9  gcc/ada/libgnat/s-imglli.ads
! 21e84f9fc10100f4f8632fdb804f58f7  gcc/ada/libgnat/s-imglllb.ads
! 503389bbace7c9a2198296c3071bdc4f  gcc/ada/libgnat/s-imgllli.ads
! 492cbc626abf7fbb9d723a10ff961263  gcc/ada/libgnat/s-imglllu.ads
! ef61dac40ef5bbc982e7cb7cbd963604  gcc/ada/libgnat/s-imglllw.ads
! 6a4a2fe84a55aab10c5f43dc7c900393  gcc/ada/libgnat/s-imgllu.adb
! 8a9af68ffb31b88875745d492ff747f1  gcc/ada/libgnat/s-imgllu.ads
! 5c7395548aa9a9b252737ee3da4f7ff3  gcc/ada/libgnat/s-imgllw.adb
! 4250b573f03579a23fdc859a84a5bded  gcc/ada/libgnat/s-imgllw.ads
! d4af37e266d283465da27e44806cb9a3  gcc/ada/libgnat/s-imgrea.adb
! ca5028454c08ed812f3abbe6d4f35754  gcc/ada/libgnat/s-imgrea.ads
! 069d6a270287afb21ec6e829fcb01ed1  gcc/ada/libgnat/s-imguns.adb
! 57d88f69368449d345973d541360eb02  gcc/ada/libgnat/s-imguns.ads
! b558bf6a971a4f74b14b53f9e2e087ae  gcc/ada/libgnat/s-imguti.adb
! e905308d109e2584797f42b2e664aab7  gcc/ada/libgnat/s-imguti.ads
! 811147fbb3ec457ac8db07a6d0c15809  gcc/ada/libgnat/s-imgwch.adb
! 4e6d850570e4dccfaa557332447d0208  gcc/ada/libgnat/s-imgwch.ads
! 9f1e712543a4e0130ad7149be3a881ce  gcc/ada/libgnat/s-imgwiu.adb
! a7a392092bd40f20b51794c2fcd425ea  gcc/ada/libgnat/s-imgwiu.ads
! a5c9f051e6b9dc371562e0d11c937989  gcc/ada/libgnat/s-io.adb
! 44519853f6de29cad8f275ae42645dee  gcc/ada/libgnat/s-io.ads
! 39a82dcee38084ea31055bee40b9e787  gcc/ada/libgnat/s-llflex.ads
! 02d6c91635ea2fddeec13c226ad2dff4  gcc/ada/libgnat/s-maccod.ads
! 9dbe7725698bc9ea149136df2bcaa1ac  gcc/ada/libgnat/s-mantis.adb
! 46ea3fbbff45720bb00b453a0ce8d72f  gcc/ada/libgnat/s-mantis.ads
! fad843ee30cedc46093d405a12261268  gcc/ada/libgnat/s-mastop.adb
! 4e36756e861a918d7928346d82c61552  gcc/ada/libgnat/s-mastop.ads
! 2d32316d1c50812fdd1d1dc3728d10dd  gcc/ada/libgnat/s-memcop.ads
! 1ae26a17759656de84821257c83fce2c  gcc/ada/libgnat/s-memory.adb
! 10c62b4824324f4d21976771c80e1795  gcc/ada/libgnat/s-memory.ads
! ea127da502fd09d1e69e5c0208d28806  gcc/ada/libgnat/s-mmap.adb
! 093b7da6ad9a5d51a1ad5243e9132d9a  gcc/ada/libgnat/s-mmap.ads
! f0b9913677f27ca7bdfb17f50b54dd29  gcc/ada/libgnat/s-mmauni__long.ads
! 5664a648bc3645b7d8141eafd21694c2  gcc/ada/libgnat/s-mmosin__mingw.adb
! a1628ac16457ac9a45809e731f82b9c2  gcc/ada/libgnat/s-mmosin__mingw.ads
! f9c1ff49f3d99a49787937f1a0b78b64  gcc/ada/libgnat/s-mmosin__unix.adb
! ada5b129592ea8089ce9b00a191a116b  gcc/ada/libgnat/s-mmosin__unix.ads
! 4bc906ece1def7c3bf7b15d5bf7edc61  gcc/ada/libgnat/s-multip.adb
! c4045ad22005510940d70e1a445db431  gcc/ada/libgnat/s-multip.ads
! 1957f8332c6b380dd13697800496eb71  gcc/ada/libgnat/s-objrea.adb
! 524f2c88ace3e62eb6bc469b8c744a0d  gcc/ada/libgnat/s-objrea.ads
! f4aff450fee447efc10635391033ac0c  gcc/ada/libgnat/s-optide.adb
! 11c61040951b8cb5d366a12b7843044a  gcc/ada/libgnat/s-os_lib.adb
! 3714033e6dfad5556e5d414bc62d55e1  gcc/ada/libgnat/s-os_lib.ads
! 4edd2db81fe3c385bad052e0350700e6  gcc/ada/libgnat/s-osprim.ads
! 184072be4a075ec5d89e80bc4a13a9a1  gcc/ada/libgnat/s-osprim__darwin.adb
! be04023b47936a4e8a9b0397ffa5d6f6  gcc/ada/libgnat/s-osprim__lynxos.ads
! bd63df2a0d4fe403389c4d6b850d71c7  gcc/ada/libgnat/s-osprim__mingw.adb
! 161cb992aa0a338df36803c6246c1b4d  gcc/ada/libgnat/s-osprim__posix.adb
! 076a80edbad2f7a96174dc8339e0a3f2  gcc/ada/libgnat/s-osprim__posix2008.adb
! 433c2d529a8f05823b8e36cc65578b41  gcc/ada/libgnat/s-osprim__rtems.adb
! 8d3cc033e28323d4286551420a76cb42  gcc/ada/libgnat/s-osprim__solaris.adb
! cf2931b007c1e520a39d884aca6cb6d2  gcc/ada/libgnat/s-osprim__unix.adb
! 17f9713e346a6aa8807497b456d742c6  gcc/ada/libgnat/s-osprim__x32.adb
! 152a9c463684f72b85e33b61522e1c62  gcc/ada/libgnat/s-pack03.adb
! 0b6fa23a42b815946b01fb1c9c2da4aa  gcc/ada/libgnat/s-pack03.ads
! ce6f7338df401f641ac5570a88e7b02b  gcc/ada/libgnat/s-pack05.adb
! 822203995de9da3c93e1832e451ad810  gcc/ada/libgnat/s-pack05.ads
! d35688d6a9cf7f6f944548c3181db85d  gcc/ada/libgnat/s-pack06.adb
! 4f115af80ff5ea77b3a75c75e4c4137c  gcc/ada/libgnat/s-pack06.ads
! fb78afa545c31c40ce89cb13caa3ef0d  gcc/ada/libgnat/s-pack07.adb
! 7e4d4a2f301be95ff015ff81669b3bb9  gcc/ada/libgnat/s-pack07.ads
! 48894e1af1fa697e5d970a44b3162c63  gcc/ada/libgnat/s-pack09.adb
! 2408648e0553b6422d451bbf33186ad7  gcc/ada/libgnat/s-pack09.ads
! cdae9e07c974b33c9db4a8fd072cc003  gcc/ada/libgnat/s-pack10.adb
! c6be6dbe01619af245d3bb3cbf74c30a  gcc/ada/libgnat/s-pack10.ads
! a72023661f350fa7e3116019168bed6b  gcc/ada/libgnat/s-pack100.adb
! aea8f3233cdd1f2b53aab78a82c07bb3  gcc/ada/libgnat/s-pack100.ads
! 9b342906fae4ec570143e5547868e5cb  gcc/ada/libgnat/s-pack101.adb
! 0546194852c39d86d89bf4500204078a  gcc/ada/libgnat/s-pack101.ads
! 66e63545b0e7538384aa3cf62e7de98c  gcc/ada/libgnat/s-pack102.adb
! 87595fd93a52f45a01c92249148df1bf  gcc/ada/libgnat/s-pack102.ads
! fabcc22b37f217cefdb5c6edc2f95a2d  gcc/ada/libgnat/s-pack103.adb
! a2dbf21798c3c126081766538ea452ba  gcc/ada/libgnat/s-pack103.ads
! e8ac1256a822a09811a13cb045fb3342  gcc/ada/libgnat/s-pack104.adb
! 6b18afcd40cfd09071ba3d3d70a2f503  gcc/ada/libgnat/s-pack104.ads
! 02dc37b4af4a8d2578d96c3b0f9064bb  gcc/ada/libgnat/s-pack105.adb
! 7f1e9a06d043a1d1f4dd80481384e2b7  gcc/ada/libgnat/s-pack105.ads
! d579cfad7bf5943102e47775c9868479  gcc/ada/libgnat/s-pack106.adb
! 8b0d92ed18e97943f25119c462d9d641  gcc/ada/libgnat/s-pack106.ads
! 55c16ad6d82eca06caf690fd4cc2b234  gcc/ada/libgnat/s-pack107.adb
! 7dde640d12ce76efc7a9a3688edd2d50  gcc/ada/libgnat/s-pack107.ads
! c50eb9c3d4077c1f6813dc4160dd2124  gcc/ada/libgnat/s-pack108.adb
! b0ae40c8d704fcbd2ce00d5ac54133c5  gcc/ada/libgnat/s-pack108.ads
! a8cdae818faa75a87b44215bdf8ff756  gcc/ada/libgnat/s-pack109.adb
! 506b5c0f0e7d4d64e9630656a8794ef0  gcc/ada/libgnat/s-pack109.ads
! 09d1b0b6a57a9bf2ce4d716a8da0ce6b  gcc/ada/libgnat/s-pack11.adb
! 90390d55d5c7e807cff255b47bc939d9  gcc/ada/libgnat/s-pack11.ads
! 8d8d561cf60975d8ba916f48e42a400c  gcc/ada/libgnat/s-pack110.adb
! 29ad5798702380bad3193a0c7d476bb1  gcc/ada/libgnat/s-pack110.ads
! 312d170305ee524f22f3aa374c77dbf1  gcc/ada/libgnat/s-pack111.adb
! efebe1715ab1830a7e820e43eae1b45c  gcc/ada/libgnat/s-pack111.ads
! 37b9efdcc0849467f8c3241939f49d2b  gcc/ada/libgnat/s-pack112.adb
! a94bbcfb2cb9d8921981dbfbbb7f5490  gcc/ada/libgnat/s-pack112.ads
! 50eea2ce3190a45f9342383c9f72f44d  gcc/ada/libgnat/s-pack113.adb
! be5ec9abc2e1d844d706eda4c982391e  gcc/ada/libgnat/s-pack113.ads
! ba464644ca891ed2748a479fd36fb078  gcc/ada/libgnat/s-pack114.adb
! 7fa147d2acf81c3f87927d782b8eab5f  gcc/ada/libgnat/s-pack114.ads
! d0f50a16481c58edd35b9dee59ffc692  gcc/ada/libgnat/s-pack115.adb
! 90a975e0dddc3aa32fc37e7cd1440db3  gcc/ada/libgnat/s-pack115.ads
! 4e24e6ca787a6797030c5e178716535f  gcc/ada/libgnat/s-pack116.adb
! f391a76b92b31c13458597c4345edfdc  gcc/ada/libgnat/s-pack116.ads
! d0b4fa5715c40a3cd9b8ab2a14376bb7  gcc/ada/libgnat/s-pack117.adb
! 06afb4f99b579423f726e9e472f9d898  gcc/ada/libgnat/s-pack117.ads
! 13de304997b9c5bdd1858ad4f08897fd  gcc/ada/libgnat/s-pack118.adb
! 06c52f2b367fbb5d64713d82485d4a2a  gcc/ada/libgnat/s-pack118.ads
! 78882a27a929eb5384c6d5bf4c35a842  gcc/ada/libgnat/s-pack119.adb
! 89a7e47af0e667d10198a1ad5f8b1c2d  gcc/ada/libgnat/s-pack119.ads
! c60debe8266cf3675323df5731182f6b  gcc/ada/libgnat/s-pack12.adb
! a46b57df5469d8aa37a2d864dfab7217  gcc/ada/libgnat/s-pack12.ads
! fd46be09f9077434673b69570a0d5805  gcc/ada/libgnat/s-pack120.adb
! 14d4b572ee4cacc08e9fb5d38844acd6  gcc/ada/libgnat/s-pack120.ads
! 11c1778005c021ecc3bfc6980cc6e456  gcc/ada/libgnat/s-pack121.adb
! 8888ed2fdd0afe376f7e52510d6d51a8  gcc/ada/libgnat/s-pack121.ads
! c43ccf18e2fa85a93e8762edea3bf60a  gcc/ada/libgnat/s-pack122.adb
! 1728a794062bb498f3e57ea364419aec  gcc/ada/libgnat/s-pack122.ads
! 9b9c390972845511365dfd1e44a237df  gcc/ada/libgnat/s-pack123.adb
! fc31f8d393b1075356dbdeb1b5193a1c  gcc/ada/libgnat/s-pack123.ads
! 498ad2bcf13597e53e62aa9d5f91b043  gcc/ada/libgnat/s-pack124.adb
! 96aabc87d5fae8acfd0692c905da0a5e  gcc/ada/libgnat/s-pack124.ads
! c5da94ea237bc41a4983b89e85cd10d2  gcc/ada/libgnat/s-pack125.adb
! 5c338928c6bde3c16fbb1fb3b7d20318  gcc/ada/libgnat/s-pack125.ads
! 1ed06ab30135fbb1394e89584b68a587  gcc/ada/libgnat/s-pack126.adb
! 40ffa9d954062a4098d69f9e21162bd9  gcc/ada/libgnat/s-pack126.ads
! 0c689da259bfa39a0e4b7412e4de66f9  gcc/ada/libgnat/s-pack127.adb
! 82210269b168c9e74da76b5b8963d7d6  gcc/ada/libgnat/s-pack127.ads
! 4f8a5250ee82a3896e20e45d5878f327  gcc/ada/libgnat/s-pack13.adb
! cf6f80086287d1184481a416bceb8e83  gcc/ada/libgnat/s-pack13.ads
! c8692619137a28190fb2d94f81a09c91  gcc/ada/libgnat/s-pack14.adb
! dbf052db2e66f6091bb229e3a98ad6b6  gcc/ada/libgnat/s-pack14.ads
! 3275c83818e3149efbc17a3d092fa93a  gcc/ada/libgnat/s-pack15.adb
! 7f6887ff0615eec12ff8064ec489978c  gcc/ada/libgnat/s-pack15.ads
! 26ee263a51649967d82acb61e4343ed8  gcc/ada/libgnat/s-pack17.adb
! 3a761f2d98258aa9e4355159445befec  gcc/ada/libgnat/s-pack17.ads
! 0d5a2f89ea1b50c7604a4c18bdc35313  gcc/ada/libgnat/s-pack18.adb
! f7605a4545a83b4d168b1a9740b5a01a  gcc/ada/libgnat/s-pack18.ads
! 2cde7307f4c2d37ce66c59d7f9bd5b7f  gcc/ada/libgnat/s-pack19.adb
! bc221c1025ef2c7f924e2fb0e005082a  gcc/ada/libgnat/s-pack19.ads
! eddc7fcef014c66036540482fed9b25c  gcc/ada/libgnat/s-pack20.adb
! b4d667a31ce5b53b7f93fbc9b6a20b5b  gcc/ada/libgnat/s-pack20.ads
! 594989b51413e059b459921e391cbcde  gcc/ada/libgnat/s-pack21.adb
! 6c7ea01c1927a7e6f6ea2fb3d2520d09  gcc/ada/libgnat/s-pack21.ads
! d805f46f47daa3f3b8557bb1d53ea128  gcc/ada/libgnat/s-pack22.adb
! 498c2ab58eddbb124964ee97001196cc  gcc/ada/libgnat/s-pack22.ads
! 49eb09d74ef6e3b9746ae19553c04970  gcc/ada/libgnat/s-pack23.adb
! 5592c458740b66897a2e223be78cfb40  gcc/ada/libgnat/s-pack23.ads
! c9831ed18ca616c8f76fa96c2b930f88  gcc/ada/libgnat/s-pack24.adb
! fe26707b18c1ea4b29002a1e7e80ffe3  gcc/ada/libgnat/s-pack24.ads
! 6494fcc886b075e4fed0d7c4616a0681  gcc/ada/libgnat/s-pack25.adb
! 573537428f5e72f3e516bf120fc7c238  gcc/ada/libgnat/s-pack25.ads
! 2e2b6d949d7a36c2a52f6dbdbbbd1f4c  gcc/ada/libgnat/s-pack26.adb
! f413f471e2794a8cd0b7411047afaa71  gcc/ada/libgnat/s-pack26.ads
! 0ec26e9ad304af1031438b54a84ef8ba  gcc/ada/libgnat/s-pack27.adb
! a80bce547b416079b83613d439b86340  gcc/ada/libgnat/s-pack27.ads
! 180307ecca488976fe92d5467b08e525  gcc/ada/libgnat/s-pack28.adb
! 9bed5f94b014e0ecc5a3e88456dceac8  gcc/ada/libgnat/s-pack28.ads
! 5865dc80624ee47b706c5f2314677cbb  gcc/ada/libgnat/s-pack29.adb
! 9364ba5765ce791d87a507af580a4a1d  gcc/ada/libgnat/s-pack29.ads
! 16c764fd21e60ab7f0c73280b3a3e4a6  gcc/ada/libgnat/s-pack30.adb
! 92eb057b5ffedfb317fff72f0cf99244  gcc/ada/libgnat/s-pack30.ads
! e3588e30a9c130d0e65cc66aceddb096  gcc/ada/libgnat/s-pack31.adb
! efcb5064d502bd9d0105fb55b0e94759  gcc/ada/libgnat/s-pack31.ads
! cb30f4484fac968a191ca58fabbea1eb  gcc/ada/libgnat/s-pack33.adb
! e275e26c327ea6ceeaad10c970624dde  gcc/ada/libgnat/s-pack33.ads
! 73d86e48dd4c0af45bc38244b44a960c  gcc/ada/libgnat/s-pack34.adb
! 16ede73ed8b9f86234a7702a773218e0  gcc/ada/libgnat/s-pack34.ads
! 47b3752ffeefc2201ea8c789a7a67b9c  gcc/ada/libgnat/s-pack35.adb
! 881eeef522eb205a96058d925cd1c8a5  gcc/ada/libgnat/s-pack35.ads
! a26265e047a2d77ce0cdf1c497135096  gcc/ada/libgnat/s-pack36.adb
! dd0f1ec55ebb57ec487e72b45f400012  gcc/ada/libgnat/s-pack36.ads
! 7b9aa89f5d60af40877c7a584106dd24  gcc/ada/libgnat/s-pack37.adb
! 22366eeeb9ccbf004c03ce13bb96c677  gcc/ada/libgnat/s-pack37.ads
! 9898be77a4d8f1f314689943af09532e  gcc/ada/libgnat/s-pack38.adb
! 2566425e736daf475a4dd97a20234200  gcc/ada/libgnat/s-pack38.ads
! 15bae6f00f86f46cea5dc75717aa542e  gcc/ada/libgnat/s-pack39.adb
! 59a0cadce785a0c8a981b90f128f74ee  gcc/ada/libgnat/s-pack39.ads
! 27311d703227a2d000957713bfb62018  gcc/ada/libgnat/s-pack40.adb
! c2e5d1bc50aa56f46a939462016db2cb  gcc/ada/libgnat/s-pack40.ads
! 15dbc73f93c41ddb90514089e9b9ad84  gcc/ada/libgnat/s-pack41.adb
! bd632bc2d4a98ecba3caaa2a37799e88  gcc/ada/libgnat/s-pack41.ads
! 69f939209f868ee054bf28d8804563cb  gcc/ada/libgnat/s-pack42.adb
! 536606bbefbbe2b1555dec1f253b0d84  gcc/ada/libgnat/s-pack42.ads
! e710a2c9157eba33c037df45524da977  gcc/ada/libgnat/s-pack43.adb
! a26bb810e98010af7d1ccaf78e1cfba6  gcc/ada/libgnat/s-pack43.ads
! 268b85a1c96ed839d6ef0cbfd781a0bc  gcc/ada/libgnat/s-pack44.adb
! d23c501ad6d9877d0715be220b3bd000  gcc/ada/libgnat/s-pack44.ads
! 51e1e31e75fdd1ddd715663d6cee5e7f  gcc/ada/libgnat/s-pack45.adb
! b6d01be5b7aff1057b6f72687ffef77f  gcc/ada/libgnat/s-pack45.ads
! e9d5843c23bcc2ac47fa1030b090bed2  gcc/ada/libgnat/s-pack46.adb
! 74e3ba107796c1fc9d7e582417923094  gcc/ada/libgnat/s-pack46.ads
! 233b7761dbac112f553923bd4c95357a  gcc/ada/libgnat/s-pack47.adb
! 68f4632610264a4f2d51b2d77cb336bc  gcc/ada/libgnat/s-pack47.ads
! db6381a8c77f820567ada810cc606b02  gcc/ada/libgnat/s-pack48.adb
! 7b2301aea863ef593ebf68b84a05e740  gcc/ada/libgnat/s-pack48.ads
! 4e06d332ffb1510d28dc8e278cb81288  gcc/ada/libgnat/s-pack49.adb
! dd020d84f6c4d8e849abc60104ca5f75  gcc/ada/libgnat/s-pack49.ads
! d6fdf9b68dc66809fcf4a0a9ed84fbd8  gcc/ada/libgnat/s-pack50.adb
! 3c53fbb2ad90b64c77b68134cead61bb  gcc/ada/libgnat/s-pack50.ads
! 58f7cb4cc8a2cc09e225f8ef8f89f225  gcc/ada/libgnat/s-pack51.adb
! 91e981d029a88c06ec0686ac2b03756b  gcc/ada/libgnat/s-pack51.ads
! ff24145ce9e1a58c66ee8d95fac83d78  gcc/ada/libgnat/s-pack52.adb
! 27f80bbc3774df2141b6cb43321b3960  gcc/ada/libgnat/s-pack52.ads
! 19ebbb82e2091a5b66a46293a6656690  gcc/ada/libgnat/s-pack53.adb
! 416de4014265e2877486f6f6255ee44d  gcc/ada/libgnat/s-pack53.ads
! 974002cebeab6d31ce550a5a4111f603  gcc/ada/libgnat/s-pack54.adb
! 7dd6815ea00002e657a84664e632bca8  gcc/ada/libgnat/s-pack54.ads
! 661e51ffcbe7dbfa8412cf1b02256d85  gcc/ada/libgnat/s-pack55.adb
! d9e19436df5a7c589c05392e19041db4  gcc/ada/libgnat/s-pack55.ads
! 5e4e4f248488396f2f9121be7b06a9be  gcc/ada/libgnat/s-pack56.adb
! 92968857e976ccfac6effcaf66c60cfb  gcc/ada/libgnat/s-pack56.ads
! 7e0b790a544130df0f858a228e1be676  gcc/ada/libgnat/s-pack57.adb
! d83dd066a335371fbee5d56632ee950e  gcc/ada/libgnat/s-pack57.ads
! 0743bc90b1eb164107e54f4e2035fa81  gcc/ada/libgnat/s-pack58.adb
! 7e912b9eab3a01e14501510c1c68ff40  gcc/ada/libgnat/s-pack58.ads
! f813058bc1904df2d5546cbb6099d68d  gcc/ada/libgnat/s-pack59.adb
! 710ee588186aabf1965a4d731bc81b83  gcc/ada/libgnat/s-pack59.ads
! b67cdbff90e9a836c18355eb4eef8c13  gcc/ada/libgnat/s-pack60.adb
! b655349b00e2338ccb04b5a9c1f781ea  gcc/ada/libgnat/s-pack60.ads
! ca74d9a68acd1037422acf5d6716c7f7  gcc/ada/libgnat/s-pack61.adb
! e1549412055ef7411d614dbd58b76fe9  gcc/ada/libgnat/s-pack61.ads
! e844a122d498a86f0d42a3ee7ad6794f  gcc/ada/libgnat/s-pack62.adb
! 7536e4a66cd8544dec8851ad990a7d4b  gcc/ada/libgnat/s-pack62.ads
! ebd87e707e528027d8fd5fcc5b173454  gcc/ada/libgnat/s-pack63.adb
! d92480671f4bd3a2eec00f708ac7c3ac  gcc/ada/libgnat/s-pack63.ads
! 2d4a396769f99ae3bf9e85ca86e2f4f5  gcc/ada/libgnat/s-pack65.adb
! b9ce1b28c12928a2a4a806cb9c27a680  gcc/ada/libgnat/s-pack65.ads
! a2652efdc47f27a33c8f050788245a9e  gcc/ada/libgnat/s-pack66.adb
! 397dd58cd93fe5690cd50b4e88fd5a90  gcc/ada/libgnat/s-pack66.ads
! 81ba35fc98ae6abbee3258cca4113578  gcc/ada/libgnat/s-pack67.adb
! 9c5bd7c80db398931735aaf6fd167025  gcc/ada/libgnat/s-pack67.ads
! b48bf904c98e4ca5c7ab052b2de0395e  gcc/ada/libgnat/s-pack68.adb
! 8c0e2078ecfc1a5cd25ada0f3b067188  gcc/ada/libgnat/s-pack68.ads
! 7042dd207517fdd96600ccfe01a8248b  gcc/ada/libgnat/s-pack69.adb
! 3b8fc2762b2658a818dfb1c8396abfdb  gcc/ada/libgnat/s-pack69.ads
! d24701cbcaf8f4a437d40a303e0a8d53  gcc/ada/libgnat/s-pack70.adb
! b6e7ebf09862f255471762555f50a1f2  gcc/ada/libgnat/s-pack70.ads
! 717930fb48c9c084a2cc5e7c9496f7da  gcc/ada/libgnat/s-pack71.adb
! 6e1c169931ab3ea101c04bbbc6c785f7  gcc/ada/libgnat/s-pack71.ads
! adf18d98e5902591b9e1678a76a47809  gcc/ada/libgnat/s-pack72.adb
! 93e3f142f79f30c28bfb1cd09b36d7b1  gcc/ada/libgnat/s-pack72.ads
! d45ec7e66f4de1b4be13f39790c67f5c  gcc/ada/libgnat/s-pack73.adb
! 67b1b3a7925cf3766ed24522b67d967b  gcc/ada/libgnat/s-pack73.ads
! b767b9452e5445d3bb09fa231f92c78d  gcc/ada/libgnat/s-pack74.adb
! 6ef4b809a59a2a1c8fae7abf9ec635af  gcc/ada/libgnat/s-pack74.ads
! d8515d6a1ba28e2ceb8b20c885293975  gcc/ada/libgnat/s-pack75.adb
! 5e9861c24ea3c0df061b3f3c0b49a73c  gcc/ada/libgnat/s-pack75.ads
! 1b68cfcd48e4ee4a019c5465f91bbde8  gcc/ada/libgnat/s-pack76.adb
! 4fa069d18687c33f253f7aca0820efff  gcc/ada/libgnat/s-pack76.ads
! 6d0e3f71f2205f589c715a4cac5e5523  gcc/ada/libgnat/s-pack77.adb
! fa5462a62166448dc04c7dad92bc4e47  gcc/ada/libgnat/s-pack77.ads
! ed8b8f2ef925eae83c686895136c70aa  gcc/ada/libgnat/s-pack78.adb
! 721f25ab3b527c7185e23be17cc08cb2  gcc/ada/libgnat/s-pack78.ads
! 667e0c75169be8b4dcb391fbd1a72693  gcc/ada/libgnat/s-pack79.adb
! 75905e73b01cf8bf54dee06da401a5ea  gcc/ada/libgnat/s-pack79.ads
! da4492b054db435b37fe964b83d03269  gcc/ada/libgnat/s-pack80.adb
! adf0e32e14438bd3738b35304251e04e  gcc/ada/libgnat/s-pack80.ads
! 1fe0789496c12ab3e1e298dd90f0a7bf  gcc/ada/libgnat/s-pack81.adb
! 183c6f5b628e466068cbc9ec4c2f3526  gcc/ada/libgnat/s-pack81.ads
! e9ea63f580d8fbe753c44a5a79ce16f2  gcc/ada/libgnat/s-pack82.adb
! 88c727621d7e158b0a77fc1e24fbb5fe  gcc/ada/libgnat/s-pack82.ads
! 5bbfa191f7c91d288056c367b496f912  gcc/ada/libgnat/s-pack83.adb
! dbc92839bd4fe4b4bad581baa878c0a0  gcc/ada/libgnat/s-pack83.ads
! 7ba3212aa1f392891c7ac65974d54ec3  gcc/ada/libgnat/s-pack84.adb
! f71be9be6b5c70435f7f72d0fc77348b  gcc/ada/libgnat/s-pack84.ads
! ecf3f89035ad46547864673f7ed7f7b1  gcc/ada/libgnat/s-pack85.adb
! 5a00159af586bf2be64ff1b136fde790  gcc/ada/libgnat/s-pack85.ads
! c9b8bee895e8051ee2f7ccc95c21de28  gcc/ada/libgnat/s-pack86.adb
! 903bfdd8ddc0fc685eb6660e68d1a218  gcc/ada/libgnat/s-pack86.ads
! 3a947aea7eb92210911ad046d6ebce06  gcc/ada/libgnat/s-pack87.adb
! 36d54cb6b94e79fdc6103c2d3e8505a2  gcc/ada/libgnat/s-pack87.ads
! 354b83d362df257e9b1ed8d352006f4f  gcc/ada/libgnat/s-pack88.adb
! 2950169026676ad3f63e5017c64a2d4f  gcc/ada/libgnat/s-pack88.ads
! ec2c079b217dca48b77f420273ee1413  gcc/ada/libgnat/s-pack89.adb
! 717b4cc356e80b8fb5cc25e476fffb6b  gcc/ada/libgnat/s-pack89.ads
! 1e8ddf038458259abf6e45efbd8b990d  gcc/ada/libgnat/s-pack90.adb
! 4c74340954e4f5f8e3eb60c65ef5e379  gcc/ada/libgnat/s-pack90.ads
! 621907c4f767a5541c5a2b1974fe2f82  gcc/ada/libgnat/s-pack91.adb
! 6496b8cee89bb9655dfc1422f687c0ed  gcc/ada/libgnat/s-pack91.ads
! 8bd8860bb83bb840f63e822664e9101b  gcc/ada/libgnat/s-pack92.adb
! ba7855448670eac6255bc9e9a5c7be42  gcc/ada/libgnat/s-pack92.ads
! 4102687097ce1ef70fe066af0bdf7711  gcc/ada/libgnat/s-pack93.adb
! c703a36a058db1f82d0c2d774a1d6d0a  gcc/ada/libgnat/s-pack93.ads
! 7b83bda559c11790e77a78c24359f14d  gcc/ada/libgnat/s-pack94.adb
! cbe513c0db810380b1dc2f039a5d59a1  gcc/ada/libgnat/s-pack94.ads
! 424faf820cde808f1a662a5621582f5d  gcc/ada/libgnat/s-pack95.adb
! 487cfa289998721cf91f11fb340dd76d  gcc/ada/libgnat/s-pack95.ads
! a3a3f4bc6e997709e27470eebaffdcf7  gcc/ada/libgnat/s-pack96.adb
! d21cb7776cfe586763615ac11c12f3b8  gcc/ada/libgnat/s-pack96.ads
! 0557b878c81391b8fc7e4a96ada65262  gcc/ada/libgnat/s-pack97.adb
! 6f77985edd0b447d5016894dcfcfc41c  gcc/ada/libgnat/s-pack97.ads
! 8ec97dadb69c28f00c96a6865ae2f6f7  gcc/ada/libgnat/s-pack98.adb
! b19b0f0a74ca0c2265207f238dd5e0de  gcc/ada/libgnat/s-pack98.ads
! 5e535389cc1a8231dffeef32cf1788c4  gcc/ada/libgnat/s-pack99.adb
! 0964ce47f6adebfb7114b955c6b63ec0  gcc/ada/libgnat/s-pack99.ads
! e579b8d64b737a8dcffca5193ef42443  gcc/ada/libgnat/s-parame.adb
! 210b516f060d0561bdfc703cd41c4c89  gcc/ada/libgnat/s-parame.ads
! 9ddfcf29b8fd95d5fc75fc366ba2195e  gcc/ada/libgnat/s-parame__hpux.ads
! ff58c199c50ab756d355c657b7be5a25  gcc/ada/libgnat/s-parame__posix2008.ads
! d9f02c054278d9a7cdff7d4b5b3e4043  gcc/ada/libgnat/s-parame__qnx.adb
! 43cb62687195c0f501f2b69d9c10005f  gcc/ada/libgnat/s-parame__rtems.adb
! c2a1d9bde82590b56b225f5c39e2b5e5  gcc/ada/libgnat/s-parame__vxworks.adb
! d983bc0c511dacc5736833f24760e844  gcc/ada/libgnat/s-parame__vxworks.ads
! 734d78cfdb7cc0072132d33cae601b6e  gcc/ada/libgnat/s-parint.adb
! 4b0680d74b8b0b1a0e4529c88e5d5ad6  gcc/ada/libgnat/s-parint.ads
! 65634a265fd45e9fe10624f572ab0f13  gcc/ada/libgnat/s-pehage.adb
! dc042664900dbef40fa612eb22534e46  gcc/ada/libgnat/s-pehage.ads
! ab0742f3ef5faaa8900392805306d191  gcc/ada/libgnat/s-pooglo.adb
! 698c9d5149c3db82d4feb71f3d9fe1b7  gcc/ada/libgnat/s-pooglo.ads
! f1ae3b21b392761c3565a0003ab8f71c  gcc/ada/libgnat/s-pooloc.adb
! d767dd84c05d066cdaa0c641d0c57b65  gcc/ada/libgnat/s-pooloc.ads
! efedbed02b02d450955d83770589ae41  gcc/ada/libgnat/s-poosiz.adb
! 2d43a0b7291718446c1e8e087513b7d1  gcc/ada/libgnat/s-poosiz.ads
! 2c1999d5e8614f23d4ae80c9855080f4  gcc/ada/libgnat/s-powflt.ads
! a6a713a838db708aed28385e51ba5321  gcc/ada/libgnat/s-powlfl.ads
! 2f34246faf4fae139ffcc6fee38924ab  gcc/ada/libgnat/s-powllf.ads
! a360d9ded39d7e9912e7cc3867fc5e3c  gcc/ada/libgnat/s-purexc.ads
! 95933b41da82889e2cda9c6fce2ad424  gcc/ada/libgnat/s-putima.adb
! 9dc59fd7fe2fb4d0fa0e250473b9089f  gcc/ada/libgnat/s-putima.ads
! 6a01270c563f13e8c04fa1d94d601404  gcc/ada/libgnat/s-rannum.adb
! be3a3905a770fc36605b27fb3f3cf908  gcc/ada/libgnat/s-rannum.ads
! 07fda7c2855cfe2c9c52f53aaa4a253e  gcc/ada/libgnat/s-ransee.adb
! d85cfaf7a99e11bc5a242853dc6c14fc  gcc/ada/libgnat/s-ransee.ads
! cbf991fec61bc448b819f3f66edf1c41  gcc/ada/libgnat/s-regexp.adb
! 90d0fc1b354e5ba4be1d755d3d663b17  gcc/ada/libgnat/s-regexp.ads
! c1ed15c0954599d910aaf85613af5bed  gcc/ada/libgnat/s-regpat.adb
! 4a2d38e54304c2694c46dfc32bbc0af6  gcc/ada/libgnat/s-regpat.ads
! df7f2198b0e21503886d6c26e235d67e  gcc/ada/libgnat/s-resfil.adb
! ad4da6585258481d56ca1a698d4d61ce  gcc/ada/libgnat/s-resfil.ads
! 4ba2cbbf8dc61de53427d6f0983bb3c5  gcc/ada/libgnat/s-restri.adb
! 23904fa8e32e26422c3d63bd1d9532a9  gcc/ada/libgnat/s-restri.ads
! 9bed504572d16db019d2b0c1d4400931  gcc/ada/libgnat/s-retsta.ads
! 9d19a9c216b874d4e70cb62693dff93c  gcc/ada/libgnat/s-rident.ads
! 5e3f85c27ca59c38e33aab45df02f5dc  gcc/ada/libgnat/s-rpc.adb
! 46f5da46387e6c54b6b61f13ae455f65  gcc/ada/libgnat/s-rpc.ads
! 52f7e1d5a4598ec008f0359f7cc9792f  gcc/ada/libgnat/s-scaval.adb
! 40b7d74949f63ebaf070c87fe68a7238  gcc/ada/libgnat/s-scaval.ads
! cd7c6438c83689080bb401305d37aedd  gcc/ada/libgnat/s-scaval__128.adb
! 470060fc3c98d0bffe59e81e04b7f950  gcc/ada/libgnat/s-scaval__128.ads
! c6ad07903a3aba6545169b536610109d  gcc/ada/libgnat/s-secsta.adb
! 128f6457bdf798b30f0ac01f651efc74  gcc/ada/libgnat/s-secsta.ads
! 8483e6722e2ff962bd8036d103040add  gcc/ada/libgnat/s-sequio.adb
! 1a54b4e6b1424712cb52ef4d1f5e1d63  gcc/ada/libgnat/s-sequio.ads
! 80b13c5463d11aebd78cf9d1e3f9c5a1  gcc/ada/libgnat/s-shabig.ads
! fefd83949cbfea98b17e0e91076f2f50  gcc/ada/libgnat/s-shasto.adb
! b2e76ba3962abe318b88c9286c65b554  gcc/ada/libgnat/s-shasto.ads
! e4605c43bc054f66ffcfb3b426ed16e6  gcc/ada/libgnat/s-soflin.adb
! a6ab17b13fd2195d74f6f405ca2f8a37  gcc/ada/libgnat/s-soflin.ads
! 145bc7829c6ea8b43f3fced3e4cc41bb  gcc/ada/libgnat/s-soliin.adb
! e0dd23682602f078b36132fca5f1ce09  gcc/ada/libgnat/s-soliin.ads
! 3de05818e947af24d2b69fbfce220618  gcc/ada/libgnat/s-spark.ads
! 3b7f09522697587705dfb4a55967de20  gcc/ada/libgnat/s-spcuop.adb
! 7215f65f62154db649373baec554e6fc  gcc/ada/libgnat/s-spcuop.ads
! 209727fa0945db5414327a0cf1f48952  gcc/ada/libgnat/s-spsufi.adb
! 7c01f35ee6fc678078aa73dd220fd186  gcc/ada/libgnat/s-spsufi.ads
! faefecd9d323d059cb24bd69a820822e  gcc/ada/libgnat/s-stache.adb
! 4c3d6316edb93ef5b74deb77c7aa9000  gcc/ada/libgnat/s-stache.ads
! 3da0a6fb8904a0d3c663bb81383f0b98  gcc/ada/libgnat/s-stalib.adb
! 949bb54af4354b6fabc464ba256dd5f8  gcc/ada/libgnat/s-stalib.ads
! 5f5182d67632070031f785cbf99bfa24  gcc/ada/libgnat/s-statxd.adb
! 100a6b18790851f20393dc8cd2bd6828  gcc/ada/libgnat/s-statxd.ads
! e38133cd6318c0241145a82faa1a2b21  gcc/ada/libgnat/s-stausa.adb
! bb0713a33991773e5d37c1deb980d800  gcc/ada/libgnat/s-stausa.ads
! 18c197de9cca21825575ed9e681a4d32  gcc/ada/libgnat/s-stchop.adb
! a1247c5c4bb9eff5d1a779da67295661  gcc/ada/libgnat/s-stchop.ads
! f8ed5d7de1805f88c616da1fc6db296f  gcc/ada/libgnat/s-stchop__limit.ads
! 0fb874b0d228ecda91d5ba5f34e1fed8  gcc/ada/libgnat/s-stchop__vxworks.adb
! 21e99b0b8967c6befdb117a91a841ad2  gcc/ada/libgnat/s-stoele.adb
! 216cb40a8c5e7320eabd8152c93fe765  gcc/ada/libgnat/s-stoele.ads
! f5282c29a72e62145ea1c266dea51032  gcc/ada/libgnat/s-stopoo.adb
! 1713c674a5ff1626e0cfbf2437051261  gcc/ada/libgnat/s-stopoo.ads
! 04ecd4e8f101e346d98861663bf191bf  gcc/ada/libgnat/s-stposu.adb
! 5058409e38dd0596ecf8ce6aa6b37549  gcc/ada/libgnat/s-stposu.ads
! 5a2a368cfceee81555b6a6fd198d2bcd  gcc/ada/libgnat/s-stratt.adb
! 33547a946aa759d0c95317ff08ede32c  gcc/ada/libgnat/s-stratt.ads
! 6e524b2f4f61612d2eafd6adb2b2cda8  gcc/ada/libgnat/s-stratt__cheri.adb
! 6db6e8b97e6c3127debc2da4293124b8  gcc/ada/libgnat/s-strcom.adb
! 70de557e86c98204caf9ca488a9e83cc  gcc/ada/libgnat/s-strcom.ads
! fafb2fff45b71436cc913200665194f5  gcc/ada/libgnat/s-strhas.adb
! 8a214666f7233c03ae9638734cdf15d2  gcc/ada/libgnat/s-strhas.ads
! 4a746f8297199f4eb8750481eca6c6de  gcc/ada/libgnat/s-string.adb
! 90e9a7523217c2aeb24e9d02826396e0  gcc/ada/libgnat/s-string.ads
! f8ab530112ade8aca9aba8cdd1d1426b  gcc/ada/libgnat/s-ststop.adb
! 4ac27c5b0c6b5cf31d5948c959a6b5fb  gcc/ada/libgnat/s-ststop.ads
! 69db5b49a36b8fb32e1f77ab272c0d37  gcc/ada/libgnat/s-tasloc.adb
! 5517377c7c8d98936ded713dfe322caf  gcc/ada/libgnat/s-tasloc.ads
! 2275ff15a9d4250e46eb5e651dea25e5  gcc/ada/libgnat/s-traceb.adb
! ec7bb71adb0653b849299200c62dbcee  gcc/ada/libgnat/s-traceb.ads
! 7fb78039bed55b3737d17bd8a6c93d28  gcc/ada/libgnat/s-traceb__hpux.adb
! da664a65de870f400d40e8ea14901446  gcc/ada/libgnat/s-traceb__mastop.adb
! c6327702bc0f983080d9796e2bebb69c  gcc/ada/libgnat/s-traent.adb
! 0c9112f56bb121e7576ce16207304e14  gcc/ada/libgnat/s-traent.ads
! 47137d267bd5e658ae6e5d8960ee0a28  gcc/ada/libgnat/s-trasym.adb
! 60c6f0924d9a177cf27a8f7b7a5f0bc3  gcc/ada/libgnat/s-trasym.ads
! c6b10e3ec8fb986cb4d16410e4d6cd3d  gcc/ada/libgnat/s-trasym__dwarf.adb
! 197bc00cddb84e4e9b1375407f52a279  gcc/ada/libgnat/s-tsmona.adb
! 8d38055ee9b048d80016e678c738b571  gcc/ada/libgnat/s-tsmona__linux.adb
! dfc9a8e49789d081b8974d4167668300  gcc/ada/libgnat/s-tsmona__mingw.adb
! f7734aff740e51f23447b563da75e115  gcc/ada/libgnat/s-unstyp.ads
! 30a411e6de9bb90cab8fc158ada9999f  gcc/ada/libgnat/s-utf_32.adb
! 38e12abf262db6aa4a9b47bc821bae9c  gcc/ada/libgnat/s-utf_32.ads
! 0ae5e8232ed5a51cd466bc9aece1ae64  gcc/ada/libgnat/s-vade128.ads
! 51fc7cdac1c0f457301369558cbfa009  gcc/ada/libgnat/s-vade32.ads
! b2171bdb27c370e3a8d895870b9fb2ed  gcc/ada/libgnat/s-vade64.ads
! 84ecd45f64d5358f2c949b4b0e8cf4e7  gcc/ada/libgnat/s-vaen16.ads
! 236c22320515afb08773b25fc3f2ba93  gcc/ada/libgnat/s-vaen32.ads
! 75e1e6938bcfea7ad03672b120c4d06e  gcc/ada/libgnat/s-vaenu8.ads
! 0c5d15bef94eb0d2aed6236c46835102  gcc/ada/libgnat/s-vafi128.ads
! dbbd5f7b35b7738f4875e9bd328355cd  gcc/ada/libgnat/s-vafi32.ads
! 0a376e349aecce448abc0a6b748d2d64  gcc/ada/libgnat/s-vafi64.ads
! 4ebef7065cffd0169af1babbaf3f89fb  gcc/ada/libgnat/s-vaispe.adb
! 1455e08c81e6a53b1f71dcfbe9987815  gcc/ada/libgnat/s-vaispe.ads
! e0817687f423a26facfbd6ef68cfed43  gcc/ada/libgnat/s-valboo.adb
! 5cfc95bdf91b6102e377442036bc422d  gcc/ada/libgnat/s-valboo.ads
! 5825579dbe6a73c331c65071710ae8e5  gcc/ada/libgnat/s-valcha.adb
! cf5da606cc5b6c3a501ee334eaba58d1  gcc/ada/libgnat/s-valcha.ads
! 062c5e1c58646936cdaa14c5e1e470ce  gcc/ada/libgnat/s-valflt.ads
! 95c8dd226e7cccbd269bc69b415bb4ed  gcc/ada/libgnat/s-valint.adb
! 5e6a9251288a6f94bed749141d3ed687  gcc/ada/libgnat/s-valint.ads
! a2b6c28e8d8fe0452d881772230e3701  gcc/ada/libgnat/s-vallfl.ads
! f251efc3575235d0a488a16a3f98d97e  gcc/ada/libgnat/s-valllf.ads
! 9c83e4293277dff770e6a2d19a2af4d4  gcc/ada/libgnat/s-vallli.adb
! 5bdd2dc20fd41e02dc14e8023086b2a5  gcc/ada/libgnat/s-vallli.ads
! 71a6c1dced8f9e7dafbe465b1ed97476  gcc/ada/libgnat/s-valllli.ads
! 48238e17f1405ad20c6873842ccc67d6  gcc/ada/libgnat/s-vallllu.ads
! 38767ba60facca70d9648f110ddfe81d  gcc/ada/libgnat/s-valllu.adb
! 57cef25b2f1647dbc0895b1d058c8774  gcc/ada/libgnat/s-valllu.ads
! 864df128475be4383759a86287088fe5  gcc/ada/libgnat/s-valrea.adb
! 2a41f3f487d1bafa1cf84cb9367d89cd  gcc/ada/libgnat/s-valrea.ads
! 95b12e95dd22e5e4540c6927cbbb2708  gcc/ada/libgnat/s-valspe.adb
! e8f46b602ec60b6526496945b707123b  gcc/ada/libgnat/s-valspe.ads
! c301b9870de28610393218c71233c4b6  gcc/ada/libgnat/s-valued.adb
! 36e45ff6b1615b4d992730bb218d018b  gcc/ada/libgnat/s-valued.ads
! eed9d274e93b78ccf5ef81524c778471  gcc/ada/libgnat/s-valuef.adb
! d28abd543f651a3eb4f8fe135e0cc97e  gcc/ada/libgnat/s-valuef.ads
! b97b2d8cb6ab3ec32c2ed4fa5129753b  gcc/ada/libgnat/s-valuei.adb
! 62ea7a731842e97b662c60f7635445b3  gcc/ada/libgnat/s-valuei.ads
! 25c0ce7e276450904c51b04da764fcbf  gcc/ada/libgnat/s-valuen.adb
! 990f369c497fbde1cb1f6bb8bb03f31b  gcc/ada/libgnat/s-valuen.ads
! bccf81bb7c2810994435b2be4cfa37dc  gcc/ada/libgnat/s-valuer.adb
! 063b9cea2b97264e863c4d10b2c2b5c1  gcc/ada/libgnat/s-valuer.ads
! f79a50be3b36e565b098899bf5f3ddcc  gcc/ada/libgnat/s-valueu.adb
! 13d88c85a6e4f2d6c35aa4267df51fc5  gcc/ada/libgnat/s-valueu.ads
! 2874bd8b302acddb922948b200493346  gcc/ada/libgnat/s-valuns.adb
! 49d90eb3c1b2b19a61c52989a3386195  gcc/ada/libgnat/s-valuns.ads
! 6657d930c89cb16a3a30ed44b0281b11  gcc/ada/libgnat/s-valuti.adb
! e90e51d3214a17ad6167943b72bc19a2  gcc/ada/libgnat/s-valuti.ads
! 002453cf605df6a2b0698276aba534b1  gcc/ada/libgnat/s-valwch.adb
! 024d2b6a784dcf09a5014694d5fccfff  gcc/ada/libgnat/s-valwch.ads
! 9577d71e0c5304cddd9617d945f6d43d  gcc/ada/libgnat/s-vauspe.adb
! 881b6c30fcc1977c4f622b9d973611c7  gcc/ada/libgnat/s-vauspe.ads
! 33fcbe084c6a1df99cbb78cf502101f3  gcc/ada/libgnat/s-veboop.adb
! 84e25b9bf663713abfea88e8a0dffbc2  gcc/ada/libgnat/s-veboop.ads
! a684127db63b5afb65646dbe0325d30b  gcc/ada/libgnat/s-vector.ads
! e0fe502ecab6a08a3d26432a915f7b53  gcc/ada/libgnat/s-vercon.adb
! c19eda1fb9605857931d8ca19e8e72ea  gcc/ada/libgnat/s-vercon.ads
! 804bbf0efa3dce47d7efc0161457b9c0  gcc/ada/libgnat/s-vs_int.ads
! 9aaf1e0cba239ad0c6260c1eb07ef820  gcc/ada/libgnat/s-vs_lli.ads
! c8c279a6b5fb78e941697122bc7fbc7e  gcc/ada/libgnat/s-vs_llu.ads
! aa76e0720c4abb7c36db19addc964c1a  gcc/ada/libgnat/s-vs_uns.ads
! c38038ff5eae58e42922f2ce6a17eaaa  gcc/ada/libgnat/s-vsllli.ads
! bb752f102542423b439f587aeda3b324  gcc/ada/libgnat/s-vslllu.ads
! f1e0da9f9327f3dabf68f788cbcc0c7f  gcc/ada/libgnat/s-wchcnv.adb
! 1420b2feb1fbc2f450a61e31aedb975f  gcc/ada/libgnat/s-wchcnv.ads
! 6e240ad1de2e99eaac273ccf65e73638  gcc/ada/libgnat/s-wchcon.adb
! e6b97ce8a41a30a4224eb92752a35c1b  gcc/ada/libgnat/s-wchcon.ads
! 35d717adbe8fdb3f884890c147b2bc8b  gcc/ada/libgnat/s-wchjis.adb
! 736b890b40f4a0d8f6f42af18dccf3b2  gcc/ada/libgnat/s-wchjis.ads
! f5018624c585e18d870ba464bb108a38  gcc/ada/libgnat/s-wchstw.adb
! 17ab6440f04b41d2d8ec4b4c0e960fd1  gcc/ada/libgnat/s-wchstw.ads
! fcbbe79071cb581e2b6a0fb247c7b7c6  gcc/ada/libgnat/s-wchwts.adb
! 7ad1c910f82152701521b7a7774d5413  gcc/ada/libgnat/s-wchwts.ads
! dbca5c4e316214d8f9b58a711efb783c  gcc/ada/libgnat/s-widboo.adb
! 1e73455104632d7818ba2431f338a5b3  gcc/ada/libgnat/s-widboo.ads
! 4d1f40584d9955e017536f184c4db526  gcc/ada/libgnat/s-widcha.adb
! fb843b64e80eed482f225cc76e3bc7e5  gcc/ada/libgnat/s-widcha.ads
! d4e4916eff6482ab6f93e38ea66be2da  gcc/ada/libgnat/s-widenu.adb
! 724121fdfd3f06f0ea5e1e1a09e67b3e  gcc/ada/libgnat/s-widenu.ads
! 268fceb875435438ae5b3960cd99428c  gcc/ada/libgnat/s-widint.ads
! 0a9aa519feef577318ec1b100df5737d  gcc/ada/libgnat/s-widlli.adb
! 44f48679529388d51d08b73af5ac3e1f  gcc/ada/libgnat/s-widlli.ads
! ed889cd2bb7bbec002cae6227919a775  gcc/ada/libgnat/s-widllli.ads
! d35cb95ba7c9fd94df0abcd66de6454b  gcc/ada/libgnat/s-widlllu.ads
! f88c7f934b91dee49149bf502d1be4a8  gcc/ada/libgnat/s-widllu.adb
! 2dc920fa2bc3f30bc20cae8548f1cbb1  gcc/ada/libgnat/s-widllu.ads
! 5082f0fa3f1e8b3ea7c049098de87788  gcc/ada/libgnat/s-widthi.adb
! 04e171819fc44f5a3dab98b628cd8b16  gcc/ada/libgnat/s-widthi.ads
! 5f47968a8b0f51c5e802ee445c9416dc  gcc/ada/libgnat/s-widthu.adb
! 73b4239e663bb09a5db53829cf4c8c32  gcc/ada/libgnat/s-widthu.ads
! 0cca97d4259134bab42abb9aec1e7dce  gcc/ada/libgnat/s-widuns.ads
! 769c8fbc4cfaa1eb168c2bc5fadac34f  gcc/ada/libgnat/s-widwch.adb
! 9d38ed18c38f834359e4b7bf1857cb77  gcc/ada/libgnat/s-widwch.ads
! fa8cedf59dded05d268d5a7f8cef9c2c  gcc/ada/libgnat/s-win32.ads
! 57ac8cb8de56518667a8b16c6a135959  gcc/ada/libgnat/s-winext.ads
! a08290fd93f982b5e5dd821353744514  gcc/ada/libgnat/s-wwdcha.adb
! e27f67eaa0df7ff0b7c496d99e430508  gcc/ada/libgnat/s-wwdcha.ads
! f194086759ea0972bd810bf1481dcc90  gcc/ada/libgnat/s-wwdenu.adb
! deaf0eb6c61c1f37b86138dc8ad12728  gcc/ada/libgnat/s-wwdenu.ads
! 7ba50ad1582b621b62134fde144e6cf4  gcc/ada/libgnat/s-wwdwch.adb
! e491b86c70489c9368bb40353706e0eb  gcc/ada/libgnat/s-wwdwch.ads
  0f4c21401ad2531f8c5d4010537dc6d2  gcc/ada/libgnat/sequenio.ads
! d6aef4e85ad61137bab701ddf358f7f6  gcc/ada/libgnat/system-aix.ads
! 2495fc92e0b48251905a5fde33b16f93  gcc/ada/libgnat/system-darwin-arm.ads
! a55a033de7cec634074f1e4966097ffb  gcc/ada/libgnat/system-darwin-ppc.ads
! 4389d6d52a9fd971c838180d0bf4c54b  gcc/ada/libgnat/system-darwin-x86.ads
! 52c235a529c602003b9c7f4ee617d266  gcc/ada/libgnat/system-djgpp.ads
! 54d885426027dae25d8fcd9088b3580d  gcc/ada/libgnat/system-dragonfly-x86_64.ads
! e91cb5b4cbdda3a2170805353434e6bb  gcc/ada/libgnat/system-freebsd.ads
! c24d2d1082998743e24cd8a3ab873e51  gcc/ada/libgnat/system-hpux-ia64.ads
! e011173ba679923c76750db7f714b74c  gcc/ada/libgnat/system-hpux.ads
! c3e105b8e4ef476f9504c4bd95b16fc4  gcc/ada/libgnat/system-linux-alpha.ads
! 61438b257972c479df398813ba92da55  gcc/ada/libgnat/system-linux-arm.ads
! 1992f7b8b5a3020137d048d227d492a7  gcc/ada/libgnat/system-linux-hppa.ads
! 452b711e5e523a65b5d694b48cf8de4a  gcc/ada/libgnat/system-linux-ia64.ads
! 7bd9df64099aebfcaba4cc40c9c0ff66  gcc/ada/libgnat/system-linux-loongarch.ads
! 480a61d83eed366cd531010ef5577d62  gcc/ada/libgnat/system-linux-m68k.ads
! 61156ab81207df6fb164a6015040b983  gcc/ada/libgnat/system-linux-mips.ads
! 0654f6fcc824e196149d3a4024203b15  gcc/ada/libgnat/system-linux-ppc.ads
! 2ef1cf4b78c8bd91ab21dec41ca7ffe2  gcc/ada/libgnat/system-linux-riscv.ads
! eedc614b46c79cdb3b9ea74003b7afe5  gcc/ada/libgnat/system-linux-s390.ads
! bba20ce2c6900a95dda7344834fd9c9a  gcc/ada/libgnat/system-linux-sh4.ads
! 95376aa6b08e1585ebfed649e8fd19ea  gcc/ada/libgnat/system-linux-sparc.ads
! c94e08259af70b7a04998461eba72964  gcc/ada/libgnat/system-linux-x86.ads
! 8be3f2fc9a42fccf9850ed4b6e513d97  gcc/ada/libgnat/system-lynxos178-ppc.ads
! 44cc4f2c79f0c9c67301c8a612bf9a57  gcc/ada/libgnat/system-lynxos178-x86.ads
! 72f1dae604fde9d3c8564b309993c94f  gcc/ada/libgnat/system-mingw.ads
! 5505c22d651be55173954946d6a56d40  gcc/ada/libgnat/system-qnx-arm.ads
! 4a047c0bf59d5ae245217b50f5eb0d7a  gcc/ada/libgnat/system-rtems.ads
! aaeca6003231627c17befebdc5b7c035  gcc/ada/libgnat/system-solaris-sparc.ads
! 26dbe4c8db1129ad1f5945a8aa8265e7  gcc/ada/libgnat/system-solaris-x86.ads
! 1ad955b4aa8fd8cc9997986fc640cc7e  gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
! 02d9c0007ed92d56615a98356b8e9356  gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
! 5b76b376d60da85650c4d51922c79ade  gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
! deba84d06c5d25d6f81eeb0cf56839c3  gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
! 0d934e5c0ba0ead2ee63a845867e3076  gcc/ada/libgnat/system-vxworks7-aarch64.ads
! 22a285a7c76f0e7d9027969e3456a1b0  gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
! 7fa9a6702748f1b0ec274fa00f2105a0  gcc/ada/libgnat/system-vxworks7-arm.ads
! 0778e968366bea268906acc6cacd13dc  gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
! 0f27b3b87aa3da7558624faa8737ba33  gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
! a4dfc71376062ef17f1173df8af140b5  gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
! 726cf6538fdd70fe97dbcd9869ecfda2  gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
! 5e75c6818950c125b21b5eea31a642d1  gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
! 299e1dfb2f97b31800485fdaf736879c  gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
! 18355a168147d9ec7e67165be19a14ad  gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
! 013d745eec439420a3e1b0fa19d10db1  gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
! 2dc890e2791f7e9d6e1e9ca1cfb55c71  gcc/ada/libgnat/text_io.ads
! 9a646eb97c6840de5d4bbb081dd2031a  gcc/ada/libgnat/unchconv.ads
! b8b0f9c3471d18ee5ac33521fe6f6d31  gcc/ada/libgnat/unchdeal.ads
! 877c08234ffc2018ef7d67d9b7dbc95f  gcc/ada/link.c
! 90fcf5f48e02467a56b23d9b721abadb  gcc/ada/live.adb
! 6e2cd1d5c8e37677dfbaf599797a5731  gcc/ada/live.ads
! 1ad57fe336db0161dc254f7aace26a82  gcc/ada/local_restrict.adb
! 7825fb8657eda32559da6936561177be  gcc/ada/local_restrict.ads
! 246d6d1052f218822774949c055e6cd9  gcc/ada/locales.c
! 612d2f288b0e2b2eda45f8f30fa4489a  gcc/ada/make.adb
! 5aea75ed3f34d1efe78453b0cbae1029  gcc/ada/make.ads
! 73291579daf56215a7b0b2e0b1be96d8  gcc/ada/make_util.adb
! d7a172b3afb2438fa638d8984b9e40f7  gcc/ada/make_util.ads
! ff88a7fb20ba9dfd49bc710ca195a528  gcc/ada/makeusg.adb
! 6b8fb875f20778489cea07be80757c4d  gcc/ada/makeusg.ads
! 5164be4e2153c8516b3d763215a578e6  gcc/ada/mdll-fil.adb
! 28800cd1cc9b09894c04f19a0adf6132  gcc/ada/mdll-fil.ads
! 060bc69a188825f2def6f4ba1e2f7b41  gcc/ada/mdll-utl.adb
! 43e4f3e1f67af95dc45d1b127d4f4ca1  gcc/ada/mdll-utl.ads
! ca4b9fa8a24cbde0760c5170e4af3d28  gcc/ada/mdll.adb
! 44fbcf0461b391483e3c3f064e9e181b  gcc/ada/mdll.ads
! 4e87ddf1a974325dbd63d18ebd1ba331  gcc/ada/mingw32.h
! 93cb128d897e397c655fa4ba18b89ee7  gcc/ada/mkdir.c
! a65ee226511f7bb3f642182c0c3acd8d  gcc/ada/namet-sp.adb
! 511c8457784ee4d0dc05c9b40380abca  gcc/ada/namet-sp.ads
! 3ac86f9929fe5bfd09e61e5fcaf0da6d  gcc/ada/namet.adb
! f8ed25e218d92778d1f45f3768a9d04b  gcc/ada/namet.ads
! 45f0b224c482523abaecf688d7f527ba  gcc/ada/namet.h
! 115de7b010e83a0a32f4a31f5f5814bf  gcc/ada/nlists.adb
! 604c75ce93b28dc86ef1421c3465da5a  gcc/ada/nlists.ads
! 430f003722e4aa8afac11c03d5c8c4dc  gcc/ada/nlists.h
! 15a04ccda7d3326243591149bdd17e52  gcc/ada/opt.adb
! ed81550ac2f7528b4942f5895f20cbb4  gcc/ada/opt.ads
! 558c65e41018e0a40645062b78a76034  gcc/ada/osint-b.adb
! f0a80b76bb312add9427ae1e9d6df5fe  gcc/ada/osint-b.ads
! a2cc9685b22088859c5b05cdb45106fb  gcc/ada/osint-c.adb
! e5bbf9ee2f492bfda6f88683c095e9c1  gcc/ada/osint-c.ads
! b30ea1d6ad3521f2fd632b1c14919e25  gcc/ada/osint-l.adb
! 6f30732f4c0033f74dca01dfef3a6032  gcc/ada/osint-l.ads
! 2f4f6e0be9d0684388fefbb30f6c2d5b  gcc/ada/osint-m.adb
! 30f109124773df54162ee43866e0bd4a  gcc/ada/osint-m.ads
! eb0e99f7d4195655d16e3d1aed179a04  gcc/ada/osint.adb
! 0f229df84d63f9ab46e9ffb29f3389aa  gcc/ada/osint.ads
! 9be693c7904a2a483574feebfd22c975  gcc/ada/output.adb
! 0fe20dfe7ff6450b0523d5bd60fefc69  gcc/ada/output.ads
! abca320a952939d11da9392ed088afdf  gcc/ada/par-ch10.adb
! 58ec6770f17cde23f3832f3b33dd1a04  gcc/ada/par-ch11.adb
! 7395680f5977b331af5094d48273a391  gcc/ada/par-ch12.adb
! 6098c5c4fb488eee634dbfedb9ebc8b6  gcc/ada/par-ch13.adb
! 5f2212f0bf837728f4b285e9a1aba381  gcc/ada/par-ch2.adb
! c46b248f694ad5443494d5baf9735569  gcc/ada/par-ch3.adb
! 420177d3480ed6aa05b9d663f84e238b  gcc/ada/par-ch4.adb
! d1571d8abf6b6224a890d87b6b610829  gcc/ada/par-ch5.adb
! 163f049cc396e9d54339a1915018d484  gcc/ada/par-ch6.adb
! d56a0f5e4db05c450fc1388ecab31cf9  gcc/ada/par-ch7.adb
! af84882db3654e44318486b4e181caad  gcc/ada/par-ch8.adb
! d7b3f1f6ebf4ee544754316af04cdf85  gcc/ada/par-ch9.adb
! 68501d3e000e71895052bc64c3a45ae1  gcc/ada/par-endh.adb
! cdc5a3f00d02893db02a06dacbb6dc1f  gcc/ada/par-labl.adb
! b00911e51b4af33f8ba0222754c3e1db  gcc/ada/par-load.adb
! 8e71440eab23ccc8bda30699f31b69df  gcc/ada/par-prag.adb
! de488f4e4cf4a4a9d7a18b126fb4db64  gcc/ada/par-sync.adb
! ebbdf3731c159b9fe29de540e6f643d9  gcc/ada/par-tchk.adb
! 77fb52d2c0d30b5b067913ce44d60922  gcc/ada/par-util.adb
! a1cc2a987136edf0c9b0601b9ac03388  gcc/ada/par.adb
! 226e69d29f1c7bb51b76c30f9591b760  gcc/ada/par.ads
! 5c78b45f6f853eb1c89a6c594341dcae  gcc/ada/par_sco.adb
! 3ffef82b581bd09f0e9859d3f3e3a426  gcc/ada/par_sco.ads
! 2ac76b1cec15bf8a7052987f11973681  gcc/ada/pprint.adb
! 31908a9d956e2b94dd9947a4688d9687  gcc/ada/pprint.ads
! c3013ccb862d85e7127a1d4ce2d648aa  gcc/ada/prep.adb
! b094e420f43df27367e769453ccd5f23  gcc/ada/prep.ads
! 4f766332746124b76ef26a9e3d705e2f  gcc/ada/prepcomp.adb
! edc5c30af23ea6d7ebbac7f04dabd43b  gcc/ada/prepcomp.ads
! 0fdc4567257bd25fcb51cfd95cd63bb0  gcc/ada/put_scos.adb
! 64288342d9b62a789bc72c2bd6532571  gcc/ada/put_scos.ads
! 538cea7642e01e5d0cc81e5e276b18e9  gcc/ada/raise-gcc.c
! aacacabf5297becab78d9b540069e63b  gcc/ada/raise.c
! d350fdd4561c8aa6eae5cf8aa75f0a4c  gcc/ada/raise.h
! a1aee0ff70753d2aec4a8b8a7c4d9287  gcc/ada/repinfo-input.adb
! f8b0e08ffea6c8be056ce17592fca6d0  gcc/ada/repinfo-input.ads
! c2fede9a59705b4c1648763ad0c88001  gcc/ada/repinfo.adb
! 858bfe3040e88936263eb5b4c8a92565  gcc/ada/repinfo.ads
! d3f48b24bee1ebb67264130c4bd0bafd  gcc/ada/repinfo.h
! 182ecb32da5e9ddd8620bbf6ad7f0125  gcc/ada/restrict.adb
! 2398960d40b55b16a098cdc034a1915b  gcc/ada/restrict.ads
! 5823921d98d4d8693a49717bce055e83  gcc/ada/rident.ads
! 5cb854430ca251c93cce629f6043d97f  gcc/ada/rtfinal.c
! c074bc8838e7b2082e73a9c79a6c55cf  gcc/ada/rtinit.c
! 52e056d9744a234313c85f9307668b9e  gcc/ada/rtsfind.adb
! 8e8db7d0b4e100232784713ccfa149db  gcc/ada/rtsfind.ads
! e35cd26c1eee4337fb27200b11cc659b  gcc/ada/runtime.h
! d39e11cf20fd39416f0534578faa9e55  gcc/ada/s-oscons-tmplt.c
! c562819ea06cae3ae1729cd348b1ce68  gcc/ada/scans.adb
! 50fdd17de33f3b0c47ed1a003db426c9  gcc/ada/scans.ads
! 4514ab33e82a5d618b7c542299fe44ce  gcc/ada/scil_ll.adb
! 2303c1cccd860afa6bd90d37e274db2e  gcc/ada/scil_ll.ads
! 7f76fc2303fce2c0b7f87a5fb1bf200d  gcc/ada/scn.adb
! 6f736d9993cef6fecf91bc172497f97d  gcc/ada/scn.ads
! 6f83733b0edf1a67bc32968a86df9b25  gcc/ada/scng.adb
! ebb56cca277676baa2675ae9f1e59aca  gcc/ada/scng.ads
! abbd30169b131cbb9ff48b27f543d2d2  gcc/ada/scos.adb
! 70e9d2a24afcf5a685b84e9ec65911e9  gcc/ada/scos.ads
! 509da7078aeb4eb07ffbdd705caa07b1  gcc/ada/scos.h
! ab2c6f8d575dda78302fc8a90f0e58d2  gcc/ada/sdefault.ads
! 18bbadbd501e8cf2230bb502025dd0dc  gcc/ada/seh_init.c
! b933d50718bbf8c37af06c1cabbf8ad7  gcc/ada/sem.adb
! eb5b758ba3e85b8f175dc116b6db80fb  gcc/ada/sem.ads
! ea95f379311ce24cb1270c0f9fd6928e  gcc/ada/sem_aggr.adb
! 436d93842434a4c75c4c10d1c61ecff6  gcc/ada/sem_aggr.ads
! 32d9baf07ef34e059861e3dadfe14678  gcc/ada/sem_attr.adb
! 74003bfd4a4ddc226d22ff250b7311da  gcc/ada/sem_attr.ads
! 8c1e03cef41e17303ae7283fc83878c3  gcc/ada/sem_aux.adb
! 9e1f7aa41949f281c2a8571972eebd97  gcc/ada/sem_aux.ads
! 38951c5c3243d33c39310fa16cc62ff0  gcc/ada/sem_case.adb
! 4720d3b624b67eb8b0bd3ecf72e5036e  gcc/ada/sem_case.ads
! 20e1377be7c164bfe42091d5a2818b12  gcc/ada/sem_cat.adb
! b0afafbff8da051dd403a4a6f0a248ea  gcc/ada/sem_cat.ads
! 71641fe62a5d2820fe4a164acbbd3ab9  gcc/ada/sem_ch10.adb
! bf74f6e2c62b4e2464758bb57dc318f1  gcc/ada/sem_ch10.ads
! 674123905ccf9e89912ba95a9b85b587  gcc/ada/sem_ch11.adb
! a42d1434a6e8051360f7eac7ca8b8621  gcc/ada/sem_ch11.ads
! 9d3c3d7c68d17165313206e05fd13b76  gcc/ada/sem_ch12.adb
! 896f5b203b3fb877f57c4eaf1e9b3c4f  gcc/ada/sem_ch12.ads
! dbd738800bd8d52cac7c0cb6c761558c  gcc/ada/sem_ch13.adb
! d4c2fa9c2e05bd04b3cf5bb65c4bc03c  gcc/ada/sem_ch13.ads
! 2f9b939583011a4cabb6b7a882b61f05  gcc/ada/sem_ch2.adb
! 5d2d57f3675319ba7ce63149ee068264  gcc/ada/sem_ch2.ads
! 74593dfdf373a030889a6173a33fdd99  gcc/ada/sem_ch3.adb
! 9456f998cef130d8f6b828523b5b0232  gcc/ada/sem_ch3.ads
! 6e7ff17b0060274196cbb5251cc9cfb2  gcc/ada/sem_ch4.adb
! 20d172ce6087a2ed238c367af63048b1  gcc/ada/sem_ch4.ads
! b464fa4be903f61deb60ad3d11490581  gcc/ada/sem_ch5.adb
! ee04b8d2a5f54597eff4153a2887d540  gcc/ada/sem_ch5.ads
! f893d6a70323e46d5e03fa8942b54740  gcc/ada/sem_ch6.adb
! 66c8f90b976ab595888d71b7fd917bba  gcc/ada/sem_ch6.ads
! 35275b1571dc88b02116af60cb70334b  gcc/ada/sem_ch7.adb
! e781f781599b524e97c5353fba049e92  gcc/ada/sem_ch7.ads
! 7064ea5cc74129b36132f1f995864c6a  gcc/ada/sem_ch8.adb
! ab048777605cd1eaf9e72d7870a2f0b0  gcc/ada/sem_ch8.ads
! 38d790159e896fd5437c589bb527dae2  gcc/ada/sem_ch9.adb
! 5312c92c9cf432c51de28985511eabb4  gcc/ada/sem_ch9.ads
! ae5a773c940f7d18496faa6dea15ae3a  gcc/ada/sem_dim.adb
! a2d500c96e386078290596a7c11fc749  gcc/ada/sem_dim.ads
! aecb842d76fc399f8fc370849a9d9129  gcc/ada/sem_disp.adb
! fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
! 3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
! 744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
! a5f55e174ef43a753e3e9e06ea83a917  gcc/ada/sem_elab.adb
! 2b5599a6b9e36d4947b2cc6f89c3aa2c  gcc/ada/sem_elab.ads
! 456bc69903dc6e1c39ca009d24433f2f  gcc/ada/sem_elim.adb
! 75977e6ca2d3fa68e4c675ddb42ddcf2  gcc/ada/sem_elim.ads
! d8221b564e90118f68790a70a2c7feb2  gcc/ada/sem_eval.adb
! e077bff526d566aec76757e7eb1a47c0  gcc/ada/sem_eval.ads
! c41ea1eec3b0830963f79c14d063d22f  gcc/ada/sem_intr.adb
! 7215fb58282d8b5a58fb09973fa48d18  gcc/ada/sem_intr.ads
! 93d4c27ed8d2772294665e39fa6b8030  gcc/ada/sem_mech.adb
! 7f1041dd5ba5109f1e6025c630b63adb  gcc/ada/sem_mech.ads
! b3a39b8394fc84cd37d3e086c70d3b2c  gcc/ada/sem_prag.adb
! 63a8f08f2cccf6ee8accd90898431e27  gcc/ada/sem_prag.ads
! a0a4a3ac03b577e670e1c99c5792b906  gcc/ada/sem_res.adb
! eaeb267a8aaf6d54e425b8635c939aa7  gcc/ada/sem_res.ads
! ca7ac9d028d99b2476761193d5918cd2  gcc/ada/sem_scil.adb
! b50105a263aa360fa58f319f08d1922f  gcc/ada/sem_scil.ads
! 0ad5427163863a084e7411c4ab9cc101  gcc/ada/sem_smem.adb
! 6bd2e8a94974ceb68c08e6cef142a5fa  gcc/ada/sem_smem.ads
! 5af54a2100cad73c62a267d810281d3e  gcc/ada/sem_type.adb
! d180f59c47af065a756026f4f995b1dc  gcc/ada/sem_type.ads
! feb52b7d497566740289a7b7a481c494  gcc/ada/sem_util.adb
! 95a3065eb6e04722002d4e0b4bde7609  gcc/ada/sem_util.ads
! 3f55d31239fefc17fdada4ce21ad9679  gcc/ada/sem_warn.adb
! 7d6381ce19ef054f4895df3d06c95bb4  gcc/ada/sem_warn.ads
! 262f60ec5a29ea60af0ecaf4851b7943  gcc/ada/set_targ.adb
! 5ca509de6a4c9a7ac1f6f37309371636  gcc/ada/set_targ.ads
! 1f49a33243899597b1638905b149ddd3  gcc/ada/sfn_scan.adb
! 0f3287f65517ef02e0b47a1e4a82b7ec  gcc/ada/sfn_scan.ads
! 2de74b75aef3cd87a0b6750214a5be5d  gcc/ada/sigtramp-arm-qnx.c
! 8c5df3e79e3ecb684c754766740746ad  gcc/ada/sigtramp-armdroid.c
! dc0dac8acebb5c549fa75a38bd6fbed6  gcc/ada/sigtramp-ios.c
! 8ab2738d49a9b1e379c86de0f6f96cd6  gcc/ada/sigtramp-qnx.c
! 6b53dc0c0c0d3fb544c513dd483d8908  gcc/ada/sigtramp-vxworks-target.h
! 4069522bc0de3158049288368c435ac0  gcc/ada/sigtramp-vxworks.c
! 1acdada36142455bc4f7a3c04b6ba7f6  gcc/ada/sigtramp.h
! 357ee6a49e294c28d4c0fb9aab0b1360  gcc/ada/sinfo-cn.adb
! af6cc4483addbe54d0f3e4f48107ca60  gcc/ada/sinfo-cn.ads
! 847df08e76f8b5dc9516661cd4ed4c64  gcc/ada/sinfo-utils.adb
! 9c572abcf318e9ee814951f36e11a7b0  gcc/ada/sinfo-utils.ads
! 24eda3a2b462b6d8be755512f15543a6  gcc/ada/sinfo.adb
! 24c97835c6a30eb254594c357858947e  gcc/ada/sinfo.ads
! 89d4b31e9e77b9aaad3b086b07a1a257  gcc/ada/sinput-c.adb
! bea97b1a20e52ddd1b3529e0baaebfd4  gcc/ada/sinput-c.ads
! 63764e9118acff5fc4275999a1c0c42b  gcc/ada/sinput-d.adb
! a30ab55fb465c5c7b7fe163f196b8ed4  gcc/ada/sinput-d.ads
! aa8093a41356c7e8343fc93dcdd4723d  gcc/ada/sinput-l.adb
! 37a11f7c32c8bfe46d081330d5927ad5  gcc/ada/sinput-l.ads
! e6c1df9591faaeda9711b0e0bcbd6528  gcc/ada/sinput.adb
! f8794acd86a547fb8df9dd38e68520d2  gcc/ada/sinput.ads
! 6698f2b6b4390b28cec8afbb41ce9015  gcc/ada/snames.adb-tmpl
! d0b360a10865fafdf21558c8a5cafcb2  gcc/ada/snames.ads-tmpl
  b5bad059d1da34b0f6f1f8e3b605f212  gcc/ada/snames.h-tmpl
! 6f8e5dd905cb1dc32e8fe8c2ba02b10b  gcc/ada/socket.c
! 7c064967bea7b065cda88b2461e1e1cc  gcc/ada/spark_xrefs.adb
! d1d6bffcec49964ce0916e3edc0abb93  gcc/ada/spark_xrefs.ads
! 33654dadd3145b3f49f2f55bb823eab9  gcc/ada/sprint.adb
! e97d3fe4c68164e1378a4a7ef0556a91  gcc/ada/sprint.ads
! 563666dffddb25e1e9a39ac26d46c6e5  gcc/ada/stand.ads
! 92510faaca8c15e63e6f22f0b28dbe5f  gcc/ada/standard.ads.h
! 60bc24e30597d482c5161201dcce5182  gcc/ada/stringt.adb
! 763b59c518ddc20da23f0db9ac644149  gcc/ada/stringt.ads
! 09f1b602d82e65c958e0d863fa7cc248  gcc/ada/stringt.h
! 0c97ca46d34d197ba5275a26c4143d46  gcc/ada/strub.adb
! 1c5166edb33673d2ad3708893500eb7c  gcc/ada/strub.ads
! c2bc29385ca1e13a74bdf229ef9cee02  gcc/ada/style.adb
! dccc07f68f909c0e3e59dd132cc17c28  gcc/ada/style.ads
! 953fe6802776d15f68246a3e7c368183  gcc/ada/styleg.adb
! b1ae9e8ffb868110d871cbfca62ff626  gcc/ada/styleg.ads
! a23a94350c8a71f6d9a194bcaa11b961  gcc/ada/stylesw.adb
! 6582aa8b4c06c4ff5940586b82c58482  gcc/ada/stylesw.ads
! a26c6b2c5e4919f8a09fd14740bd696d  gcc/ada/switch-b.adb
! 52aac3ff522ac27564df93514a8d56c2  gcc/ada/switch-b.ads
! 52384b31cf27cb0fac4fda3fba4c2452  gcc/ada/switch-c.adb
! 1a48c7c46e2e6efe503141258b0caac5  gcc/ada/switch-c.ads
! ea1f4fe2e6eaf09268225fa0bb6c0401  gcc/ada/switch-m.adb
! 791b3fa8b385ccda2cf34ef5261af30b  gcc/ada/switch-m.ads
! 2da77f57913d013e2e8b6f315d9bfe91  gcc/ada/switch.adb
! ac5a65704704be77054c89e98fd818b2  gcc/ada/switch.ads
! 912cf41fc9aa449d5ffd33633d19ece7  gcc/ada/sysdep.c
! 964921c1e3531864be36dd4215e7adcb  gcc/ada/table.adb
! 08ceff060ae2c143056936a6b597b92d  gcc/ada/table.ads
! ee14b71704ac79e4345e938b8c168138  gcc/ada/targext.c
! 6cb6e19ddfce93277f7484eaa3ed1e78  gcc/ada/targparm.adb
! 2afbdc1e9f2f31fd907d9518292460c1  gcc/ada/targparm.ads
! 8d619bd7edf18c4a84215d57a77ec7bd  gcc/ada/tbuild.adb
! 26c4d2fb1d0c8b8b84501d3725677f88  gcc/ada/tbuild.ads
! 6e88a2d493326110b7f11802191c80b6  gcc/ada/tempdir.adb
! aac9c9a412725a2305c22fb7867c91ca  gcc/ada/tempdir.ads
! bd818811cd13f60b13b58c4428753070  gcc/ada/terminals.c
! a2e113ceda698cfc47186fa8596aaff8  gcc/ada/tracebak.c
! 86cad840cf859116c5202a3b2e5ee763  gcc/ada/treepr.adb
! 3f7bbb2e3e809100bf61162f1d6a91d4  gcc/ada/treepr.ads
! c00c36893869900968d1ee24a43d6f72  gcc/ada/ttypes.ads
! 624d43c6d31ab09d3178e343e834df92  gcc/ada/types.adb
! 723311bbb78c76a11f7ab20ff527e515  gcc/ada/types.ads
! f9289de53beb73e943f48f0b94d5f2c5  gcc/ada/types.h
! 5e48114658514ef58786fbc0b33964e6  gcc/ada/uintp.adb
! 23fe9a37b63d8a23fcd76f846bd88993  gcc/ada/uintp.ads
! c08e43ceb1c41862d6058d4df0273b5c  gcc/ada/uintp.h
! 60f7383b064453647049e948e0f28330  gcc/ada/uname.adb
! 04e5ed56dcb8dda7f7101c3db5011a57  gcc/ada/uname.ads
! 52abe5731a17ee3ceef15a822e3fdbed  gcc/ada/urealp.adb
! 65705a906f311a560aef93e30981176a  gcc/ada/urealp.ads
! ba57a6a74f16f6540d118d7329f45688  gcc/ada/urealp.h
! 52d03b138f69aff94bce1158558e3694  gcc/ada/usage.adb
! 526f6b8d527494de0a67edaf5d4844ff  gcc/ada/usage.ads
! 9a5c62835667bee09f2f0a44e9cdc395  gcc/ada/validsw.adb
! 505ed1766609d5569dbf894427bf7bb4  gcc/ada/validsw.ads
! f8003e1367912f27d68d015ed53079c4  gcc/ada/vast.adb
! b6d5afd8584b4c7f9b8e17878f13c29b  gcc/ada/vast.ads
! 107a84185fe50c348afd3b9e76042a6e  gcc/ada/version.c
! bc61e4b213a5ee91596d41b17c702a80  gcc/ada/vx_stack_info.c
  230f0a2f69b8ad56cc0d730f9fe0964b  gcc/ada/vxworks-ppc-link.spec
- 745188949cd7ff6df266579735782385  gcc/ada/vxworks-smp-ppc-link.spec
  cf24e76097812a932a26f6600d193208  gcc/ada/vxworks-x86-link.spec
! 66b0eadebdc650ff1e13c4a6b570ef83  gcc/ada/warnsw.adb
! 976b2a80f9c94479381af6e098e020e9  gcc/ada/warnsw.ads
! 9e445b5cf3911f008fc08dab4f17bb81  gcc/ada/widechar.adb
! 8a7ac9c7cdf198d59927b6eadfcbf239  gcc/ada/widechar.ads
! 00631d28189ca185f7c5dd51fba2f021  gcc/ada/xoscons.adb
! 4fd4e3a53700cf179d01e9962ce24416  gcc/ada/xsnamest.adb
! d833b4b6e2dc4e170cf059f5286d55d8  gcc/ada/xutil.adb
! 24eade18dfea4858d18e0befd8b97a7e  gcc/ada/xutil.ads
! 6b61c248d8d365e41e3056a6b692cc1d  gcc/addresses.h
! 85955146c0cd00b4541afc4076fa17b9  gcc/adjust-alignment.cc
! d26f49a857a199a0971344812eeb04c3  gcc/alias.cc
! 0f4702138fd7573d96ae2c8135b41255  gcc/alias.h
! 1cd09d1b18b5ce7d249387ae22ccfaec  gcc/align.h
! 1810c60b7a3a20ff5222ab395bfcb9b8  gcc/alloc-pool.cc
! 70fcb458fbb566795a112c1c4acc6ba3  gcc/alloc-pool.h
! 3ba58863d3df6293785d8b8edb48d64a  gcc/analyzer/ChangeLog
! 40aeba69eba0bc4d03bc49ec82be5dfe  gcc/analyzer/access-diagram.cc
! 288c2e0f18804938ea90737b356795a7  gcc/analyzer/access-diagram.h
! a805619319bbeaf2dfb10570535cc2cf  gcc/analyzer/analysis-plan.cc
! 95534a0d894b4cb68912cc87b7259d28  gcc/analyzer/analysis-plan.h
! 5e452199a8a9c12441a8b4035f53bf41  gcc/analyzer/analyzer-language.cc
! 0a08125de0192ae88eed91f3f75ad8da  gcc/analyzer/analyzer-language.h
! 48e354c9a8f47e1310b04f8f572e82ba  gcc/analyzer/analyzer-logging.cc
! f3d975d9255dfd2642c6fca9603e0f41  gcc/analyzer/analyzer-logging.h
! 4c15ed616eeea02278f3a64eb4bd7a1b  gcc/analyzer/analyzer-pass.cc
! e40bb56e1f69fff7a872df6cea3234ef  gcc/analyzer/analyzer-selftests.cc
! ff08ad6f0b1d9b2e324393af34bfbeec  gcc/analyzer/analyzer-selftests.h
! 5d71ea8ed35f3a4bda8b2c71b159a041  gcc/analyzer/analyzer.cc
! fa750038ac187e5120635a63a535416d  gcc/analyzer/analyzer.h
! cd79961c884548eed0e3e332dde9a943  gcc/analyzer/analyzer.opt
! d1d87fdb2580cd512896acb3d9c8c81a  gcc/analyzer/analyzer.opt.urls
! 283299878a52060b17bf342182984416  gcc/analyzer/bar-chart.cc
! 86d9b2a4e6c8767139221650be3cb7ca  gcc/analyzer/bar-chart.h
! f9976dcd29fbbaccef05f6f324384ce4  gcc/analyzer/bounds-checking.cc
! 229506304a39be61916e3de7fd9fc56c  gcc/analyzer/call-details.cc
! 915249cb2f4702a1bee3a2e610a7d99b  gcc/analyzer/call-details.h
! daaf1cc6f6e9279eddb88c9f0651b865  gcc/analyzer/call-info.cc
! f0e5546fbc2e4c5b971944c642d82296  gcc/analyzer/call-info.h
! d996280ab27dab3779f8774907587f3c  gcc/analyzer/call-string.cc
! 4c0152fd4f54ad3a3f4213ea01d8c6ab  gcc/analyzer/call-string.h
! 93c3d59362cf5d06b307893bc9493769  gcc/analyzer/call-summary.cc
  801d7f3b2433d9aaa117946dd795bcc6  gcc/analyzer/call-summary.h
! 4537d379295b618fc49e66942f386267  gcc/analyzer/checker-event.cc
! b35b14bf4d9b4cb7b91976b387f43996  gcc/analyzer/checker-event.h
! ee8e3f1d9688fc2e035cf55a0507d118  gcc/analyzer/checker-path.cc
! 2e9bdcbd3bd9e03dad1b227eb5e2371a  gcc/analyzer/checker-path.h
! 835d7b61cb9e2a4c7c6c3fd494f5afc7  gcc/analyzer/complexity.cc
! 32167da278bee413f6997f0c75a85d0b  gcc/analyzer/complexity.h
! 2782b0bb760024a8326a01d2db2b4e83  gcc/analyzer/constraint-manager.cc
! 239ef0d7ef112a2d6c211b47e1c8a0bc  gcc/analyzer/constraint-manager.h
! 6fe8946bcc8375661668f6ecb138985c  gcc/analyzer/diagnostic-manager.cc
! 25872feb2982723b6147a15cc2a84ab5  gcc/analyzer/diagnostic-manager.h
! bd2657c18f21942fd1b0be40ad5abe0d  gcc/analyzer/engine.cc
! b48307a7f8ee077e6922aeb7f29d6618  gcc/analyzer/engine.h
! 6b2c1b2f68882278b99b3f91493381cb  gcc/analyzer/exploded-graph.h
! 47d7bb040420d5e3a55bbd7943fff334  gcc/analyzer/feasible-graph.cc
! b5c7602d60f1cd64d1f1d8827158244e  gcc/analyzer/feasible-graph.h
! ea0808521c1a2bb5156369a90b5a6df0  gcc/analyzer/function-set.cc
! db323743e490fc7dd8d8fdb3986f1545  gcc/analyzer/function-set.h
! df30d947215871a127fd15890f273eb5  gcc/analyzer/infinite-loop.cc
! 6779bbc80daa78ce9b4aabbb5507e488  gcc/analyzer/infinite-recursion.cc
! 68ce3e0366fdefd98d9d3cefc83a2d67  gcc/analyzer/inlining-iterator.h
! 6362d54873dfb84284862eddd2149e63  gcc/analyzer/kf-analyzer.cc
! c2dec447021e97891a647eb424018425  gcc/analyzer/kf-lang-cp.cc
! 3e899a0fb5d1905520a616d838ef7327  gcc/analyzer/kf.cc
! 11c16b90e204cbbe7ed3b307c1ac8bf6  gcc/analyzer/known-function-manager.cc
! 1b816e367a768da158950a04cb810bfe  gcc/analyzer/known-function-manager.h
! efa0614f169859c88233e35d4f69e1ea  gcc/analyzer/pending-diagnostic.cc
! cd26ab549ca5ce0a0d93add15fa5fe3d  gcc/analyzer/pending-diagnostic.h
! fe9240e02627da9f1a04f9502b0e101b  gcc/analyzer/program-point.cc
! cf615a93a70e20a3941aaec49d49759d  gcc/analyzer/program-point.h
! 2c3122f7468c85c611c5e92faac4026b  gcc/analyzer/program-state.cc
! 8eccdda5221eb2c8060fe26b0766406a  gcc/analyzer/program-state.h
! 4ffa1b7beefce83299207e70016dfb6f  gcc/analyzer/ranges.cc
! 01c4232699659fd10c321a18ad3bff59  gcc/analyzer/ranges.h
! 03afd945198d4f3f19ce9795c6f4fee9  gcc/analyzer/reachability.h
! 18c4ec5bc768f8d1d87b72a4f4fbe2e4  gcc/analyzer/record-layout.cc
! 14d1b30459774b2c63d91f32a893060d  gcc/analyzer/record-layout.h
! 0aace5709168c543c067e5edcb492878  gcc/analyzer/region-model-asm.cc
! f75532205fa7230f130697e81a4dff6c  gcc/analyzer/region-model-manager.cc
! f727ef6be896fd67165abff1e4c1fc2c  gcc/analyzer/region-model-manager.h
! bd87a2d3a0d61848e578981800e0c24b  gcc/analyzer/region-model-reachability.cc
! ef7ebd6ad0885a5b058756207c2b7c5b  gcc/analyzer/region-model-reachability.h
! bf5a20b6a6249fa9c253572f136a1369  gcc/analyzer/region-model.cc
! 41358a7aae8300539b38bfec294a330b  gcc/analyzer/region-model.h
! 9433dc50b9155dc95ba644291a5122e8  gcc/analyzer/region.cc
! 096796a6ae75267be13c6b646f32fcc7  gcc/analyzer/region.h
! 24a3a1add85c5e316ee6ced613434bce  gcc/analyzer/sm-fd.cc
! 65d0a032934c712a435b7a6bf8f9a59b  gcc/analyzer/sm-fd.dot
! 51955b525626326884c99320457ac55b  gcc/analyzer/sm-file.cc
! 8f75d262878cf57871150d90d72f6099  gcc/analyzer/sm-file.dot
! 2dfcd24a506b93151598474ddfd641d8  gcc/analyzer/sm-malloc.cc
! d414f1d665b7d4356f4c03cd703ee68c  gcc/analyzer/sm-malloc.dot
! 531ce133e3fb2c55671e8ce56da45b7f  gcc/analyzer/sm-pattern-test.cc
! 675d1a6406af078435c07dc0fc8edb5b  gcc/analyzer/sm-sensitive.cc
! 0926349aeb99a7ceefd8b4ee25726457  gcc/analyzer/sm-signal.cc
! 4a979609c63d46506c89c1720f008a9d  gcc/analyzer/sm-taint.cc
! 1289fc8ef9380a243283e2187687dea4  gcc/analyzer/sm.cc
! 557f443a4d1c5aebea0d56322f9a0be9  gcc/analyzer/sm.h
! de07f4cd6759d9ec41ecc33ca1755b38  gcc/analyzer/state-purge.cc
! 8ee0ba14e2a0bb48d147f454f6a7d75b  gcc/analyzer/state-purge.h
! 2063ae9cbedb9570cf91fd3356a445e9  gcc/analyzer/store.cc
! aeac4d272dfb537e2577365aafe8e3a8  gcc/analyzer/store.h
! 6426072b1e97e6646a95bb59c2aa8674  gcc/analyzer/supergraph.cc
! 9adbfdb5ef8595b77e1384e532179872  gcc/analyzer/supergraph.h
! f7dfcf9b1e61b61dd9cf56eca3d5fbc9  gcc/analyzer/svalue.cc
! 91b3771ecdd665f06966cdcfeec4b4e5  gcc/analyzer/svalue.h
! 65ca462b9bb3299b4d0b36f4b20f1130  gcc/analyzer/symbol.cc
! 8390f0f30268a84527a18feed21688ac  gcc/analyzer/symbol.h
! a913bc3600436582a60c6f755a606ab1  gcc/analyzer/trimmed-graph.cc
! ad007817aa7619a468ed1170813b6db5  gcc/analyzer/trimmed-graph.h
! 20cf893a8e7f88fef7aa563cfe69aacf  gcc/analyzer/varargs.cc
! 733d03ce2ca95a5f394a941608eceacd  gcc/analyzer/varargs.dot
! a5d1710bd0815aedfadf000a59e4e6e8  gcc/array-traits.h
! 7907f80d14fdbb34fc467c2e99f22eba  gcc/asan.cc
! 5cd39cb21293297fd59456f58fd96a63  gcc/asan.h
! 41363d1e7b0909805289fb8a9fa0d421  gcc/attr-fnspec.h
! 1db285d3f372c074b1a97d80f047c148  gcc/attribs.cc
! 79fd01c71c9f826c48749a8da876a19f  gcc/attribs.h
! 43aeaa85371b2122d367cdcc7423618d  gcc/auto-inc-dec.cc
! f17ad6a26474d713f8dd17227a30b5b6  gcc/auto-profile.cc
! 519e98c7d5f08eb7388a1580a08ae9ab  gcc/auto-profile.h
! bbcab7e8a779ac71728f53d5deff751c  gcc/backend.h
! f9233c93df43568e7a9582ca3f60f2a5  gcc/basic-block.h
! c7a232d1787a10a989a2a7304616599b  gcc/bb-reorder.cc
! 7bb0b61ab8dab1168e74a22c3a1afab3  gcc/bb-reorder.h
! fdca8fc9a6bbdade1a8aeceee3e00285  gcc/bitmap.cc
! 613a79d403e4a06917c0b556080be284  gcc/bitmap.h
! 46dfb234fa66d9bd9a5e085b662b7c5a  gcc/btfout.cc
! bceab672982ecb211cc6c6ed241b9758  gcc/builtin-attrs.def
! fb5f673cea6166ff90878e05bfa7dfe0  gcc/builtin-types.def
! 3376995555ccaa5150e640e4e7de5766  gcc/builtins.cc
! 7bc731b65a1287130883ea830f32b347  gcc/builtins.def
! 7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! 8861d22d99970aa8707609bee2412ec9  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
! c2468814ee664c882341ab588b896b74  gcc/c-family/c-ada-spec.cc
! ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
! d8e1cd0b904797f173e2493caaa19e03  gcc/c-family/c-attribs.cc
! 368340205e2ea7e32b179e59db0a9b6b  gcc/c-family/c-common.cc
! dcb799a087d0efa961cbccffce4da284  gcc/c-family/c-common.def
! cf7bc96576dd64bbba1e34932aae4320  gcc/c-family/c-common.h
! 3c8c4815be38d874230cadae236be6ce  gcc/c-family/c-cppbuiltin.cc
! 3c51c8a1bf9841ca850a743c9335be7b  gcc/c-family/c-dump.cc
! ed5e4fdaaa3c0c77618731dc0294dbc4  gcc/c-family/c-format.cc
! 4b9c119ce2a0502632ac9f26fe560055  gcc/c-family/c-format.h
! c00ae110f52b414bb327d33bbdd16caa  gcc/c-family/c-gimplify.cc
! a6e23bc5770570ef1db57c75a2b60194  gcc/c-family/c-indentation.cc
! b6f81fd23a6e9c02b80c995f6f92273a  gcc/c-family/c-indentation.h
! 0bc0e96f91611812a0952337bf4c84e7  gcc/c-family/c-lex.cc
! 5ad374072abfc69eec01e0eaaf5c8a77  gcc/c-family/c-objc.h
! 40d12c93ad6d8953e9c812bd9d5ee94c  gcc/c-family/c-omp.cc
! d31dad4343a2bed87bdf228b58ff3a03  gcc/c-family/c-opts.cc
! 0c3c1d36726374f6e5d955fcb4a18a22  gcc/c-family/c-pch.cc
! 0a8959f2536c34a416a77725bcb2af8d  gcc/c-family/c-ppoutput.cc
! 138a619426b26612ba81771556e6958a  gcc/c-family/c-pragma.cc
! eac62bcb56a8ffff45406e9a3475e55a  gcc/c-family/c-pragma.h
! c8bac086b88107bf3f21dbb60036c94d  gcc/c-family/c-pretty-print.cc
! f9af750631f00a2c34617ccfc8f197f7  gcc/c-family/c-pretty-print.h
! b09d9d6aee1af92f8929b0c5b6995d7b  gcc/c-family/c-semantics.cc
! 57ee6735011a3ab79761f06f397f67ac  gcc/c-family/c-spellcheck.cc
! 5ba378263787692abb26c78fca9dfcc4  gcc/c-family/c-spellcheck.h
! 2457327527de3def5270e6006c2a32d8  gcc/c-family/c-target-def.h
! 085724efec485fdc227d010c8a971176  gcc/c-family/c-target.def
! 20902ff635a8cf1f9e1d09ed5b2cf670  gcc/c-family/c-target.h
! bcdb4469cbe287703b77ab4cf0d78130  gcc/c-family/c-ubsan.cc
! b3ac1850d65a4a98a5f313d9b56a64a9  gcc/c-family/c-ubsan.h
! 526bd3627dc19d05c7f29f81de47cbbe  gcc/c-family/c-warn.cc
! 464846e76fe6978c8c3bc9197893af8a  gcc/c-family/c.opt
! 355fc1eed07ec7c32004de75f7931388  gcc/c-family/c.opt.urls
! 673747e9584b022b8413ed211371a1e6  gcc/c-family/cppspec.cc
! 0e0782ccf52413acf84a7e60e2a27dc7  gcc/c-family/known-headers.cc
! 083198bbb0e08402af9e32302cfb13f4  gcc/c-family/known-headers.h
! 889dd6dda61d7bfa71bdc10ce6b98b06  gcc/c-family/name-hint.h
! 65a88820b5866ee19cd29ed45ef95c5c  gcc/c-family/stub-objc.cc
! 54a3ea079ed710e93fe3282e205aba47  gcc/c/ChangeLog
! fb28ab1a3ac7e093beffa6875b5b921b  gcc/c/Make-lang.in
! 6c28a645fc3125bc8a52d498324306de  gcc/c/c-aux-info.cc
! 22456b24e2c3a46534e7f1e7516dae5f  gcc/c/c-convert.cc
! edeff8f22c1a713a6e4717487e84b093  gcc/c/c-decl.cc
! d5abc77cf8004e86fb7798f7912b35da  gcc/c/c-errors.cc
! 3408879c9715f96eff9f06865f32349d  gcc/c/c-fold.cc
! 7e4a9e386e03d8359d4acd839dac46fe  gcc/c/c-lang.cc
! b9bf011e452a601e725ffcb30945779c  gcc/c/c-lang.h
! eab11ca7ce18dcc502177ae41cb79387  gcc/c/c-objc-common.cc
! 635c9f49a64ec06b9d726610e6c1b737  gcc/c/c-objc-common.h
! 660055e5489e649673785ac8de446bc7  gcc/c/c-parser.cc
! 53d5e1e1caa35af2eebf2cc719526fbb  gcc/c/c-parser.h
! ded332de6b113723402269d9adc62136  gcc/c/c-tree.def
! 095efc96d64b8cb2004e84a20f34b0b5  gcc/c/c-tree.h
! 90af8d5ced78ec06064b53c09fa73239  gcc/c/c-typeck.cc
! d0fea54f92cd003f0df6829625314382  gcc/c/config-lang.in
! 29eb0d8b8058ee0c5e7298d3a5a59533  gcc/c/gccspec.cc
! a958b0df2e8852f212af8cf1f793458d  gcc/c/gimple-parser.cc
! 6bcb5ae7ab7f258bd72374da5c85d4ec  gcc/c/gimple-parser.h
! 29212331211477edd46752433ab7d99a  gcc/caller-save.cc
! 786b464eec53dfb78a594916d55beb5a  gcc/calls.cc
! a8816fe40a8499b10062d1940c93b1a9  gcc/calls.h
! 40e220efca37063e9233d3b252dc0daf  gcc/ccmp.cc
! 5bb15c682a088eb8bd641f287acf2c0d  gcc/ccmp.h
! eb10d55eb677cbf88b54b2d97b8f47af  gcc/cfg-flags.def
! d19411e199861a7fc21c15cebcea3078  gcc/cfg.cc
! be68b92865e5332668cf28137b17ffd6  gcc/cfg.h
! f1dd9f1e7ed0fc3ac58021d0ad6463d4  gcc/cfganal.cc
! 2f7d35d9c3142f9c21560ce780ffea54  gcc/cfganal.h
! 8204f7b1147509e33beb341a24d11541  gcc/cfgbuild.cc
! 77b93f18c80b59bdd503ef437d9dcb07  gcc/cfgbuild.h
! a32902aba7ecfc0e993a63acb83b85fa  gcc/cfgcleanup.cc
! adc4224754a28694047a40d09b2406d9  gcc/cfgcleanup.h
! 2c5d37fc9892b259ede336523fb6437d  gcc/cfgexpand.cc
! 0c5481b392d18841208d50dbc003d34c  gcc/cfgexpand.h
! 07458bdd829e0db278bfd80486dc882e  gcc/cfghooks.cc
! 8b8be944d5a2bf93159ccbc273ecc32c  gcc/cfghooks.h
! 0376e5574321c5be3288f74546c2ec9e  gcc/cfgloop.cc
! d2e2dbc63c0154344dea94259ba7515b  gcc/cfgloop.h
! 749499045fcab71473fa7045412d9fec  gcc/cfgloopanal.cc
! 469ed8437e5347547dcc428662491ec7  gcc/cfgloopmanip.cc
! 85d2f4cd89ca64ed13cf1784d099c7ef  gcc/cfgloopmanip.h
! 55ff3fae3774d7d1f4cf793cdc85d36a  gcc/cfgrtl.cc
! 621be2da689efc912f68e163b182acac  gcc/cfgrtl.h
! 2e2ccc28bed3b3e6051ef6575bd5579d  gcc/cgraph.cc
! 18fbe7f9e2b6016552d7ceefd5509ed3  gcc/cgraph.h
! 48d1e1b2c184a043a04232867cbbf4ee  gcc/cgraphbuild.cc
! 4ded5c271370d02b3168ab314ecab5d5  gcc/cgraphclones.cc
! 07ff6a5a4ebc4ee6b81980d65ee65753  gcc/cgraphunit.cc
! aa88558fe6b5f9d16955067b2e0ff1cf  gcc/cif-code.def
! cbd6d8995cfcad18b2f5ae1153282276  gcc/collect-utils.cc
! 5cecb6d65182a6d779f5febcf38866b9  gcc/collect-utils.h
! 39a72e420637d8d62a4a761322b6a7f4  gcc/collect2-aix.cc
! 507dcc356bc65d05654d8a5db5ec144a  gcc/collect2-aix.h
! 2c78af750587fc72be6584523102416f  gcc/collect2.cc
! 607393ed0e257b432264a6620e2a13f1  gcc/collect2.h
! e2a09d84946e20cd6e720937153c454d  gcc/color-macros.h
! b2acfb49d4e75a712a34942113c2d747  gcc/combine-stack-adj.cc
! ded33eb271f2abfd41a62f96ac2e2077  gcc/combine.cc
! cc2f48cb176b5b4703617fb5dfc1acf0  gcc/common.md
! 322473405a30de3627ba85a314faac7d  gcc/common.opt
! 6b452769b5c1240c33daf177e1f3f847  gcc/common.opt.urls
! 65e16747e708ca6a8032646b6bad3107  gcc/common/common-target-def.h
! 494328918548fa6ae675531a47549c3a  gcc/common/common-target.def
! ae83dd37dcce485207f254b6f7f0c1fe  gcc/common/common-target.h
! b1cd121f9b00e063422852ab43d70561  gcc/common/common-targhooks.cc
! cebc8417b8323a81b2fe2ced1006a713  gcc/common/common-targhooks.h
! e001b81d6c5692e6af812c4fce2bf76a  gcc/common/config/aarch64/aarch64-common.cc
! 9615465ef814a79394ab64522b68f5d5  gcc/common/config/aarch64/cpuinfo.h
! 06619ee1718f18e3f29b4d07cb640b2c  gcc/common/config/alpha/alpha-common.cc
! a8c00733608fe1011f08dac2c20a9a1a  gcc/common/config/arc/arc-common.cc
! 1f03e90667938ec56879a963c84fbe92  gcc/common/config/arm/arm-common.cc
! 38421b8fbe371e0bf572fb4d3ec9e7fe  gcc/common/config/avr/avr-common.cc
! 53b34db3ddff4a58abaad22147861801  gcc/common/config/bfin/bfin-common.cc
! ba829c2da1bd58a1a225c367d208474f  gcc/common/config/bpf/bpf-common.cc
! 7e9ee0784a0b7530b09942de3a602e35  gcc/common/config/c6x/c6x-common.cc
! 4b9ab900c9ca4e56f2807a182cf92d48  gcc/common/config/cris/cris-common.cc
! 4f362bc28fba524d85349201a3f43131  gcc/common/config/csky/csky-common.cc
! 1d87b24a15844af422d8032db863548d  gcc/common/config/default-common.cc
! 43e0c81742ad54fbd9290104a72381e1  gcc/common/config/epiphany/epiphany-common.cc
! d51cfdf0046d5f452684fcd4dbb9147d  gcc/common/config/fr30/fr30-common.cc
! 6efbfba6474eda7d8b7b7eb92ba07f9f  gcc/common/config/frv/frv-common.cc
! 06360737e5a8b8b38d12809118809aba  gcc/common/config/gcn/gcn-common.cc
! 7e6c95ae5a1fde71887205a61f27297f  gcc/common/config/h8300/h8300-common.cc
! e9d5fe360025d26eae65ab0811b13678  gcc/common/config/i386/cpuinfo.h
! 1ccd8cd66b7a039d1a3103bed7fc3bde  gcc/common/config/i386/i386-common.cc
! d9e15c7d3a9f13e37e5dfa9c8c2c9225  gcc/common/config/i386/i386-cpuinfo.h
! 880044ce3fca24492c05c68934fa3d12  gcc/common/config/i386/i386-isas.h
! d44a9adc80069a247d14748ba6ca6888  gcc/common/config/ia64/ia64-common.cc
! 2303ddb3efa879de69e9bd6346b75f18  gcc/common/config/iq2000/iq2000-common.cc
! 0b763742ec618db211d103bca2282744  gcc/common/config/lm32/lm32-common.cc
! 592e1c8cb1d212d5a0def93636593aa5  gcc/common/config/loongarch/loongarch-common.cc
! efc146dc586b830b96a99d4f64f32816  gcc/common/config/m32r/m32r-common.cc
! 570a53efbd4e2d15c78e660e888794ce  gcc/common/config/m68k/m68k-common.cc
! b68d66788869e187193b27a55fd0c8d6  gcc/common/config/mcore/mcore-common.cc
! 0bc7e19296232ad76bb60a791f8d8f3e  gcc/common/config/microblaze/microblaze-common.cc
! 5a3d430cfb4478e5b9192a664ed75f98  gcc/common/config/mips/mips-common.cc
! ef5115c89961cb6ae261c353419849d8  gcc/common/config/mmix/mmix-common.cc
! e9aedad082f5b81eb70dbf4eb5cba4b2  gcc/common/config/mn10300/mn10300-common.cc
! 5ee926f32edee28356a51755c8fe4bbd  gcc/common/config/msp430/msp430-common.cc
! 0c7a4ccddf2eaf0c8bf6240d9d9b2c41  gcc/common/config/nds32/nds32-common.cc
! 776024c2279ee1968840f538b65c6bf1  gcc/common/config/nios2/nios2-common.cc
! a0435972f43d7456de4f3ec8914d7238  gcc/common/config/nvptx/nvptx-common.cc
! 0b5c5d487237e1e53499ceb0e77da9ed  gcc/common/config/or1k/or1k-common.cc
! 6b2360ab81b36e9808bfff517a92e09c  gcc/common/config/pa/pa-common.cc
! 53d7a0845ed02b2ad7ab45f42c719ff7  gcc/common/config/pdp11/pdp11-common.cc
! 056ef5a807468c4bdf13bedcc41ae0cb  gcc/common/config/pru/pru-common.cc
! 06214251c53a2d51d8b951a9f0401970  gcc/common/config/riscv/riscv-common.cc
! be688e434793ea02a7f9ee52992ea34d  gcc/common/config/rs6000/rs6000-common.cc
! 8f7c8f341fea33cfb522d49e09a7e8b6  gcc/common/config/rx/rx-common.cc
! 7048a7b17ef73d5039b2aab30cc44200  gcc/common/config/s390/s390-common.cc
! 03a9863bb3a84853b0a6cef91bd0928a  gcc/common/config/sh/sh-common.cc
! 5b51ef1dd642dad520d3bdcb298f4455  gcc/common/config/sparc/sparc-common.cc
! 7e5256811fb3bf667657066c12f0145d  gcc/common/config/v850/v850-common.cc
! 3bfb8401012931705ec6996fde6c8b2f  gcc/common/config/vax/vax-common.cc
! 2887fe7f3666d5820b187a6f9b79b3db  gcc/common/config/visium/visium-common.cc
! 1b35bd9c11ef9334e622f29ff29c2cb1  gcc/common/config/xstormy16/xstormy16-common.cc
! 5489c7a719ceb3faae21ae5014994001  gcc/common/config/xtensa/xtensa-common.cc
! 32188ac2131c770df03339725367ae4e  gcc/compare-elim.cc
! d7b7be0853c1adedc2ef4b171f9d8522  gcc/conditions.h
! ce915e557866ffa3df9a5b35ed401ce0  gcc/config.build
! 08d0316f7392d417c13d6ea29ba090e3  gcc/config.gcc
! a838f308e3dcdd63685c24e6ff2586be  gcc/config.host
! f774419d52770343937c56e283dd570d  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
! 9cdb6f241c973fd5ce4c0b36c5a282c6  gcc/config/aarch64/aarch64-arches.def
! 2a914e8641891915ee49817d1f0c7c8f  gcc/config/aarch64/aarch64-builtins.cc
! 0bb8e93654406d5816462dc1f8842769  gcc/config/aarch64/aarch64-builtins.h
! 494ddd3c679bcdc80a1da0c474a5fcb8  gcc/config/aarch64/aarch64-c.cc
! d3b3f877b2f7ba7842ef909af5fc5c7b  gcc/config/aarch64/aarch64-cc-fusion.cc
! de1e42fd90d2d8173abcb376fa0af850  gcc/config/aarch64/aarch64-cores.def
! d925338e5d17fde6b5de263fd751e66a  gcc/config/aarch64/aarch64-cost-tables.h
! 19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
! 4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
! dcae99023e6292c01fd3e62f3265d3c0  gcc/config/aarch64/aarch64-early-ra.cc
! 4d5e3969a5f34509454d8ae9fb320737  gcc/config/aarch64/aarch64-elf-raw.h
! 216353ccada5a78e01754365c3eb2d77  gcc/config/aarch64/aarch64-elf.h
! a289174b82942eb716cb2570624a336a  gcc/config/aarch64/aarch64-errata.h
! 1f6f229a22614a889abbbb563a8ccf62  gcc/config/aarch64/aarch64-feature-deps.h
! dc342fe54e467ef6273457ac76f1e015  gcc/config/aarch64/aarch64-freebsd.h
! 45a94f4cc4cebd09631e803b24201464  gcc/config/aarch64/aarch64-fusion-pairs.def
! c346ab44a65e934d35c27220462e42d7  gcc/config/aarch64/aarch64-gnu.h
! 2daa8cd364a2d0d83646985eb842ce00  gcc/config/aarch64/aarch64-isa-modes.def
! 845da7fb0a1a94daf21f1c4e9362ec78  gcc/config/aarch64/aarch64-ldp-fusion.cc
! 890b7e64475a75caf55c99b232a18c8a  gcc/config/aarch64/aarch64-ldpstp.md
! 922a07997417e74b4828b4a65c0dc9c6  gcc/config/aarch64/aarch64-linux.h
! c56d40f70ef926ddfb09ae258ccff40b  gcc/config/aarch64/aarch64-modes.def
! e3e9b5f54d74124ed2134ed9adb9cfa2  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
! 1fed0f67de656fe6f3a39a3613f6c151  gcc/config/aarch64/aarch64-netbsd.h
! d1a1d7693a94b8604a3ba47c735ba2ac  gcc/config/aarch64/aarch64-option-extensions.def
! 79e4ec77882101517b089ed6a907d0ae  gcc/config/aarch64/aarch64-opts.h
! d9397260c45e57a1d9da554ae2e2a646  gcc/config/aarch64/aarch64-passes.def
! ebe658cd634657f150db439b419b85fa  gcc/config/aarch64/aarch64-protos.h
! 7c179f0d23167a6411dadbbe19b1adcf  gcc/config/aarch64/aarch64-simd-builtin-types.def
! 7235658ecb695c8e01083f68a4dd0b61  gcc/config/aarch64/aarch64-simd-builtins.def
! ab2cc0ee37102ff7ddca6ea344ec8e39  gcc/config/aarch64/aarch64-simd.md
! 54435c62211d08bd572b8a19fc35dcfc  gcc/config/aarch64/aarch64-sme.md
! 35478e154309fb549cd6bae4d905e2e9  gcc/config/aarch64/aarch64-speculation.cc
! dd27e958bc445d66a2d11f22e4c0d170  gcc/config/aarch64/aarch64-sve-builtins-base.cc
! d395fb78c3aa58cc46156e4ae2ca50ab  gcc/config/aarch64/aarch64-sve-builtins-base.def
! 2b738432736edd4eddd5722e5a062dce  gcc/config/aarch64/aarch64-sve-builtins-base.h
! 6aafb313053814ce802da580b6e77c75  gcc/config/aarch64/aarch64-sve-builtins-functions.h
! 029141cce3292cf34c2d8422c733d6f4  gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
! 7588702da59d40548d6c91889a877747  gcc/config/aarch64/aarch64-sve-builtins-shapes.h
! 232272deb157f5db86fe218568b3be08  gcc/config/aarch64/aarch64-sve-builtins-sme.cc
! 2b63a6f2121fc3cac4ff447fe2815405  gcc/config/aarch64/aarch64-sve-builtins-sme.def
! 4851bb56ed95bc5cb440a54540666b72  gcc/config/aarch64/aarch64-sve-builtins-sme.h
! cd125b9dc0e6daa6b77218f12e2bebe2  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
! 55e8574d48e1b926b77805aa0dd9eadf  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
! 2ec2e73abc3fe528b0fb979e466733aa  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 8685f2862953f3f0d05285bbbaf97f0a  gcc/config/aarch64/aarch64-sve-builtins.cc
! b9d38b6180a44e1f8f6103870af5dba2  gcc/config/aarch64/aarch64-sve-builtins.def
! ef06d72bc9e60ff08580d377b7f8883a  gcc/config/aarch64/aarch64-sve-builtins.h
! 9ee135da8b8ddff1cfee2600c36a8f1a  gcc/config/aarch64/aarch64-sve.md
! b468dce384b89255f8d8759bf45082ff  gcc/config/aarch64/aarch64-sve2.md
! b8ea4d0fbacd00d61908ce1633d440fb  gcc/config/aarch64/aarch64-sys-regs.def
! 9466fb0783e893a1b039fe71007206c6  gcc/config/aarch64/aarch64-tune.md
! 6ede31fb52cae2cf590b667c55706637  gcc/config/aarch64/aarch64-tuning-flags.def
! 93d2ce2396c397f594f146a9d7d80c52  gcc/config/aarch64/aarch64-vxworks.h
! 29ab4085f9d3f07e7ba9b1188d444c4b  gcc/config/aarch64/aarch64.cc
! 0aca8be4d6a6811cd456f3e296d9d08e  gcc/config/aarch64/aarch64.h
! 5520c437745a0fd8768fc0129f3bcaa5  gcc/config/aarch64/aarch64.md
! 3948f2f1b7b27ca528cac06ae5fe36ff  gcc/config/aarch64/aarch64.opt
! 1277617373f7bad91a5af74470db72b3  gcc/config/aarch64/aarch64.opt.urls
! 213d0fc642e1fc76bd3a11f36a6c7ad4  gcc/config/aarch64/arm_acle.h
! c55b48fec74c65f795a066248defd73c  gcc/config/aarch64/arm_bf16.h
! bc7f4369a16c4662b3bddb54d086bbf7  gcc/config/aarch64/arm_fp16.h
! cdbd4445c7cfe7382e25c6b15ce3a42a  gcc/config/aarch64/arm_neon.h
! 8a25682faea76f5f512dadd7e10a9507  gcc/config/aarch64/arm_neon_sve_bridge.h
! 6d4360a2f950b6d97abcb412f6a58c11  gcc/config/aarch64/arm_sme.h
! 707f4351624f520c36ccdd0a16af6a40  gcc/config/aarch64/arm_sve.h
! 264d85eb1bd6cca6b9dc55f3afce4bf3  gcc/config/aarch64/atomics.md
! f264a7cdf39dc7c34215b657ecdab490  gcc/config/aarch64/biarchilp32.h
! 2ab25798b8fa195d30b6330fe6597f14  gcc/config/aarch64/biarchlp64.h
! 593e182d30df91139461ca665ca7384d  gcc/config/aarch64/check-sve-md.awk
! ef02129ad3898185285333aee59a6464  gcc/config/aarch64/constraints.md
! fc92ffdf40d78ec4e4e6f91302316333  gcc/config/aarch64/cortex-a57-fma-steering.cc
! 41b85ca31c1b89a9ea287ee50b6810a3  gcc/config/aarch64/driver-aarch64.cc
! dfe6036ce10136f693830ab9024c93c7  gcc/config/aarch64/falkor-tag-collision-avoidance.cc
! e0d1658875ae28cce6de0a5f4ebaed7c  gcc/config/aarch64/falkor.md
! d0eb4ba200acb78424e4f81fef87ed74  gcc/config/aarch64/fractional-cost.h
! 1e10a63f5542acfb7d0e13c5500255fb  gcc/config/aarch64/geniterators.sh
! 6f921f57310ac8daa6901b15863863df  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! 4836f19222184068a1026cb2dfc66372  gcc/config/aarch64/iterators.md
! 2f7e5ada6f28833a37f9956a0de121a1  gcc/config/aarch64/predicates.md
! e721d5af96cbf8d649cdded53033e622  gcc/config/aarch64/rtems.h
! da189dac438d6c01da7266b02ddb1d2f  gcc/config/aarch64/saphira.md
! f32a20bf4a4a3f99d3148d1fab9767b4  gcc/config/aarch64/t-aarch64
! 62af384f901fee23585178e3ab6b2026  gcc/config/aarch64/t-aarch64-freebsd
! 33e6ecfd143c128e2595d9ceaaa61d2c  gcc/config/aarch64/t-aarch64-linux
! 62af384f901fee23585178e3ab6b2026  gcc/config/aarch64/t-aarch64-netbsd
! b6f016a428d43008eb601016b91c9a91  gcc/config/aarch64/t-aarch64-rtems
! 47eab531fecbeebc6226c468730beca3  gcc/config/aarch64/t-aarch64-vxworks
! 41dc1735d522b4ec3bee241bfd14ef04  gcc/config/aarch64/thunderx.md
! 914790f2817de7c0da7f13d4c2529e12  gcc/config/aarch64/thunderx2t99.md
! 3c89b5b0583f3f57e3cc7fbc2bb23a4a  gcc/config/aarch64/thunderx3t110.md
! b512ee76d71efa7cb556eddfd0f9a231  gcc/config/aarch64/tsv110.md
! 2b124844daed44c398da37619355e4dd  gcc/config/aarch64/tuning_models/a64fx.h
! 1a5ac5cc5d9bb72c861eb73bf0d9d10c  gcc/config/aarch64/tuning_models/ampere1.h
! ed8c412a30c84346b8898013221cfb2b  gcc/config/aarch64/tuning_models/ampere1a.h
! b5b446b4f5ab567677999b4df5c12da9  gcc/config/aarch64/tuning_models/ampere1b.h
! 31b403c21013b0b53f731e5024db4b7e  gcc/config/aarch64/tuning_models/cortexa35.h
! 12fb2bc90d9a09430f9bf17f7e44a3ad  gcc/config/aarch64/tuning_models/cortexa53.h
! 8cf43ce97d38ee60f55b5f5e8d4ff5f0  gcc/config/aarch64/tuning_models/cortexa57.h
! 433ead04c8b58ca35cc4912f0a5a82e2  gcc/config/aarch64/tuning_models/cortexa72.h
! 2150c80bb10731b070aec779100442aa  gcc/config/aarch64/tuning_models/cortexa73.h
! 47293a122bfb8e5f606ae32112950aab  gcc/config/aarch64/tuning_models/emag.h
! 095906d3a43dbf0e13c5471fabcf1473  gcc/config/aarch64/tuning_models/exynosm1.h
! d35355ab4d0ccdea4076688532d48a05  gcc/config/aarch64/tuning_models/generic.h
! 7a9a276714666f9890a3a5d6a980112c  gcc/config/aarch64/tuning_models/generic_armv8_a.h
! 5508125b75bb109851c1d396c106f943  gcc/config/aarch64/tuning_models/generic_armv9_a.h
! d068cb56d5712ac565cc516fc88dba6c  gcc/config/aarch64/tuning_models/neoverse512tvb.h
! 202265af3c034cfb711d38ec66a8be25  gcc/config/aarch64/tuning_models/neoversen1.h
! 3a9dd309e6e618ae56d5a65241605bbd  gcc/config/aarch64/tuning_models/neoversen2.h
! 1addc74594905a7db2b7ba6e9ef31193  gcc/config/aarch64/tuning_models/neoversev1.h
! d18da56e6d51d63a521e85050a5389b3  gcc/config/aarch64/tuning_models/neoversev2.h
! c74a7e43efac10f66f3565dd973b4113  gcc/config/aarch64/tuning_models/qdf24xx.h
! 53dcffa4405eecd1a4c03bcebba27e1d  gcc/config/aarch64/tuning_models/saphira.h
! a4bd942a43f0542e7775e35855d8efdb  gcc/config/aarch64/tuning_models/thunderx.h
! 635814da804b11a94220ca454130bc66  gcc/config/aarch64/tuning_models/thunderx2t99.h
! 974120d8ee032a0637166d79ad0736a3  gcc/config/aarch64/tuning_models/thunderx3t110.h
! c99da0244e34555e6358276097b48a2f  gcc/config/aarch64/tuning_models/thunderxt88.h
! de3cd00ea4f6d4146c133497a83b8e1f  gcc/config/aarch64/tuning_models/tsv110.h
! 5e6074470d9cd46c6069bf714d68bddf  gcc/config/aarch64/tuning_models/xgene1.h
  73f622005e7fda6d36e6cc106567cf33  gcc/config/aarch64/x-aarch64
  a07ee362a4961e9d41cb0ab83553de74  gcc/config/aarch64/x-darwin
! f3ca6af5256c037d24bd7a10318f9f35  gcc/config/alpha/alpha-modes.def
! 6669aea44d3c0a778f776a4cb28bdcea  gcc/config/alpha/alpha-passes.def
! a6df8d0e94b4063991abfd3836987a62  gcc/config/alpha/alpha-protos.h
! 9e628b15a2e46ad70a5a4fd1daff6707  gcc/config/alpha/alpha.cc
! 07bdf82790cf44b31c0c06e20b43eb53  gcc/config/alpha/alpha.h
! 79025c42f4b6b1b59cf9c012a45b7bea  gcc/config/alpha/alpha.md
! e578613421d867f32568b46f25778046  gcc/config/alpha/alpha.opt
! e8b515ecf84b01d28a824731de7b0a20  gcc/config/alpha/alpha.opt.urls
! fde2e1dc002723364c583557b2bc3795  gcc/config/alpha/constraints.md
! 5de1a3be4b332714b57e103f9358c202  gcc/config/alpha/driver-alpha.cc
! b210e4582167467068d11017f94f57a0  gcc/config/alpha/elf.h
! 3913ae446bb7e255d8d619edc879397e  gcc/config/alpha/elf.opt
  9623ffdc7f80c52e1e1e755653229680  gcc/config/alpha/elf.opt.urls
! 0d2e25de5661004b9f1d8f978543907f  gcc/config/alpha/ev4.md
! b90d39bdf5166820773ab1d84defa9e7  gcc/config/alpha/ev5.md
! 792dc802d03f2ad8a2e5954374e5ee88  gcc/config/alpha/ev6.md
! 6eef419773c6de988a66bf7c0ff39226  gcc/config/alpha/linux-elf.h
! 54f9345000e3ee6c6eeb34baaea29898  gcc/config/alpha/linux.h
! b94a67336f3dfd532f50acc84b3eacc8  gcc/config/alpha/netbsd.h
! 96e0dbaf67332f6c471d2784372c1708  gcc/config/alpha/openbsd.h
! 01bf0255df216a559ea54048f948be55  gcc/config/alpha/predicates.md
! dc1ea69550dd202f803df9d4972e812c  gcc/config/alpha/sync.md
! 30cdbfc08b189ee365a4b2bf87762b5f  gcc/config/alpha/t-alpha
  6e8dd648b9668f18b1dfd9f1203c9885  gcc/config/alpha/t-linux
! 1e2b29cae87b16e4647db108a4f929f3  gcc/config/alpha/t-vms
! 159bfd5e986ba4f0e786e4505b1b415d  gcc/config/alpha/vms.h
  b3c50e1f46a9bdacf84333c01cb8ec66  gcc/config/alpha/x-alpha
! a481cd9779183c035238f42e25179a3f  gcc/config/arc/arc-arch.h
! 28a17047ded557d91b68b37d24bd92c3  gcc/config/arc/arc-arches.def
! 76495e1a8a5237342447269dc3453ad2  gcc/config/arc/arc-c.cc
! c49109c649d9ccac6d9c4a95892b8025  gcc/config/arc/arc-c.def
! 6f94e4ba6a83a71fdd2130c37eddef98  gcc/config/arc/arc-cpus.def
! 8843be96d9f744250d49e6f0f66cc7ba  gcc/config/arc/arc-modes.def
! f02c74428913d4eef107d20bdc992f9c  gcc/config/arc/arc-options.def
! c302dcb1d18d806af57c4488494d0edd  gcc/config/arc/arc-opts.h
! 3b9a82ca8089c4303a4fd8fdd03235f0  gcc/config/arc/arc-passes.def
! 0a16ab0964e285661af3d85693c68d65  gcc/config/arc/arc-protos.h
! 99162288a187323ef36a1f091ef0ca94  gcc/config/arc/arc-simd.h
! eb0e88bc37224e30ec0f6e09a6f8c783  gcc/config/arc/arc-tables.opt
  6704645d075bf670b5ed5d77f0a88b86  gcc/config/arc/arc-tables.opt.urls
! 38229ff2dfadd268db531e88050fa307  gcc/config/arc/arc.cc
! 3f1e581466a434d464dd60eb31dfd72b  gcc/config/arc/arc.h
! 38793f52e7b27c5d5d1491686ded8278  gcc/config/arc/arc.md
! 76f1b55707de21b44a6747df9a92820b  gcc/config/arc/arc.opt
  37a4012c7ff454831fdb2049d8fa1e27  gcc/config/arc/arc.opt.urls
! 23ef04c7541599dcd40377bad9039478  gcc/config/arc/arc600.md
! f8090fdaf63808f28e3f7e0dcc205616  gcc/config/arc/arc700.md
! 45f9cfe5a1444a7d242e2f0463398be7  gcc/config/arc/arcEM.md
! 2d697a27f82efb72e7447c11b15a8058  gcc/config/arc/arcHS.md
! f419e7dba2ea323b6c4d98d9c0122704  gcc/config/arc/arcHS4x.md
! d0f004cd487a12b2c2a91c8db6d022ce  gcc/config/arc/atomic.md
! 7dd18bfb77743e6b764aafb84c9fa017  gcc/config/arc/big.h
! e5a4f274ed648d5bcd33bc0914d6f33c  gcc/config/arc/builtins.def
! 72ffe1ab11a5d4f1f3ead71f062dd0c1  gcc/config/arc/constraints.md
! fdcc786cc614240ed88f026c47931680  gcc/config/arc/driver-arc.cc
! 1cf15d140828085fde9df75a5f17324b  gcc/config/arc/elf.h
  255d583e6d23d9cbed1614263d159a1b  gcc/config/arc/fpu.md
! 0c0bc89ed650c8750c9215f25320255e  gcc/config/arc/fpx.md
! 27660b94c348b9f3dcfdf31c75818ce9  gcc/config/arc/genmultilib.awk
! f1dc3042bd66f082283b42bbbc72b1ab  gcc/config/arc/genoptions.awk
! 78d305e4b78b0aaf9c0ab913d87a599c  gcc/config/arc/linux.h
! 2f8f590f400107eae28e04d277456f56  gcc/config/arc/predicates.md
! f82e19abccdfeead6b88e364cf70796a  gcc/config/arc/simdext.md
! 11745c841e02120d54e1f4769ae5d201  gcc/config/arc/t-arc
! 17ec988369ee0402b3b5370d5c7965bc  gcc/config/arc/t-multilib
! e0fd734f31789b0e8e0db9e49078cb20  gcc/config/arc/t-multilib-linux
! 0d410863700122d3dcf4373d14090cea  gcc/config/arm/README-interworking
! e73436aad4ee580322b05e161d62c039  gcc/config/arm/aarch-bti-insert.cc
! 132a9f8d414fadb5e576dff211469a7e  gcc/config/arm/aarch-common-protos.h
! 023f920505875a6cd63456229c3f90b1  gcc/config/arm/aarch-common.cc
! 019fd6d5a8724cad3d9823e3e2f135b6  gcc/config/arm/aarch-common.h
! 77322ef3d70b07c9eb16b41290acceab  gcc/config/arm/aarch-cost-tables.h
! 2a30c4486f093e8e0672b43cf11b697f  gcc/config/arm/aout.h
! e221bd99d5bf28ff8adfe4b0eba9054c  gcc/config/arm/arm-builtins.cc
! 1ea9d0a9de5d22fc0494336ebe428282  gcc/config/arm/arm-builtins.h
! 86abdb4f268415995d24c3cd9820d9ee  gcc/config/arm/arm-c.cc
! 094aa08ccf4d8e8dec4700fa5a81a560  gcc/config/arm/arm-cpus.in
! efe0c3c9cff35dd8af019d3661b44857  gcc/config/arm/arm-d.cc
! 224b3d56f1f141f81ed0f3450c0a5fa1  gcc/config/arm/arm-d.h
! 720914ff96cdd18cb161a2034b829440  gcc/config/arm/arm-fixed.md
! fd0868d0f792ce8ed1427944bd2ceca2  gcc/config/arm/arm-flags.h
! b198d5ef24e633b071c03d3d765e9709  gcc/config/arm/arm-generic.md
! d2d9a3749af7da79ce168a3f9990775b  gcc/config/arm/arm-ldmstm.ml
! ff4c5ba31208e71be409cc2871925fad  gcc/config/arm/arm-mlib.h
! 1af68851ae127354bf0a6e3fdb201bc4  gcc/config/arm/arm-modes.def
! 2ba9e51fa2bbf9a26109f6be6dca9b95  gcc/config/arm/arm-mve-builtins-base.cc
! b4a06503a728cdcee134e582a0aca2fa  gcc/config/arm/arm-mve-builtins-base.def
! 9150aaeecebe73b5bc5cb59ed4084584  gcc/config/arm/arm-mve-builtins-base.h
! 0fd373842b167a33222372bda1f6d096  gcc/config/arm/arm-mve-builtins-functions.h
! 8529402e701c2d3c2275bc21023b05f8  gcc/config/arm/arm-mve-builtins-shapes.cc
! 2258ca7e0ef9f3123f5fd1ff0f62bc0b  gcc/config/arm/arm-mve-builtins-shapes.h
! 409e6aa78b8601e9da7955a8cded794c  gcc/config/arm/arm-mve-builtins.cc
! 66e69097502f0ddb24c2dad1f58994bb  gcc/config/arm/arm-mve-builtins.def
! 5f4e8f9cba29981f3c2e4320930ea3b9  gcc/config/arm/arm-mve-builtins.h
! 00b2a1e9aba44990562b2030df68f43d  gcc/config/arm/arm-opts.h
! a32e244dd629c43a93ec8aadecdbeb14  gcc/config/arm/arm-passes.def
! 6d9a52d20ba58ad12525120cabe90d47  gcc/config/arm/arm-protos.h
! 1385250ce65d1c5197ad0cb0316f0407  gcc/config/arm/arm-simd-builtin-types.def
! 1795b7bf4992d29ce0f407ca9b90a7c3  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
! f68c4ef34df906d99e11d3cda55c8375  gcc/config/arm/arm-tune.md
! 416b549ea32d3e986abc2a7dfa13374c  gcc/config/arm/arm.cc
! d627c9b9062533642a559523336390dc  gcc/config/arm/arm.h
! cacbb60deff2d37bf8d70ad3f494353e  gcc/config/arm/arm.md
! aafba6eef2fa39161c820beb71e74b41  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
! 6fdbac79ee439703b0df3733036e4839  gcc/config/arm/arm1020e.md
! 135fde4ae954083d0da9630aae3a4840  gcc/config/arm/arm1026ejs.md
! 28cf98a0aeecbf6602fd3175362ba063  gcc/config/arm/arm1136jfs.md
! 5ac29a17d2c472f769ae718ec4ebf518  gcc/config/arm/arm926ejs.md
! 4ea300b8db4cc6a86fab2c79cc51f3b4  gcc/config/arm/arm_acle.h
! a267a9f70d5390f6f2840728e8483e35  gcc/config/arm/arm_acle_builtins.def
! 10b4ef3cfc1a7899aa61c8032415f959  gcc/config/arm/arm_bf16.h
! f1e5cd8f3fdc1496e6db0924e5ebfa07  gcc/config/arm/arm_cde.h
! 25dc3670659aea43e555e8f9c15312de  gcc/config/arm/arm_cde_builtins.def
! d3a23e380b7e99d29fe507d5a583e69a  gcc/config/arm/arm_cmse.h
! 89ad5a04bf547798509fe47737d6edce  gcc/config/arm/arm_fp16.h
! 6166a660bef51e6dda45441b0406b653  gcc/config/arm/arm_mve.h
! 5907ff1806ee0c882d86361c6b803784  gcc/config/arm/arm_mve_builtins.def
! e7679b7ff057ea576812ae13466a0c2e  gcc/config/arm/arm_mve_types.h
! cd9de7b16d7d597f6dc6d922bb9ce157  gcc/config/arm/arm_neon.h
! 25edddf23cb1a36b3cc2e7530d1eb1ea  gcc/config/arm/arm_neon_builtins.def
! 79b208f586b8b79a87d0e0d183a9859b  gcc/config/arm/arm_vfp_builtins.def
! 44aabc3fd5a327f292ac676c9f8d4e0f  gcc/config/arm/bpabi.h
! ad6e059da4221423e47cd82a275f8334  gcc/config/arm/common.md
! 4c26e4da16ba5c4fa7ae8557ce0e3ef5  gcc/config/arm/constraints.md
! b7fc6c4cf02e42b67011a38656264b4d  gcc/config/arm/cortex-a15-neon.md
! 95acd1f05e4d798ed609c28a7b3ebd2d  gcc/config/arm/cortex-a15.md
! 02d2088e0a2904b232a292e7102ba647  gcc/config/arm/cortex-a17-neon.md
! 54ec8844f4bbab1aad6a19b77e86fe94  gcc/config/arm/cortex-a17.md
! ed16983e37e12e2bcfbd286cecf929e0  gcc/config/arm/cortex-a5.md
! 7b7e6c271bba5be97b298650832276d7  gcc/config/arm/cortex-a53.md
! 97194490ff41b53110a16bacb58710a0  gcc/config/arm/cortex-a57.md
! b38694c4691a4fb0145bd4c46b4d99c9  gcc/config/arm/cortex-a7.md
! b91f3ba2ee5903ab727cd468c1055fa5  gcc/config/arm/cortex-a8-neon.md
! 9cfeaafe1a6ffe9677f346a0a87d4405  gcc/config/arm/cortex-a8.md
! 480eb617f1e8e05d289a92884d0c952c  gcc/config/arm/cortex-a9-neon.md
! 2b1d9b0180a2fdaa7934bbd5fda209ab  gcc/config/arm/cortex-a9.md
! 2ebe1d437ba64b3a4aa57e344fd64870  gcc/config/arm/cortex-m4-fpu.md
! 3859fda63d32e63c54b8db9cd0af5010  gcc/config/arm/cortex-m4.md
! 3fb3f28654657177173f3865ec014cf9  gcc/config/arm/cortex-m7.md
! 7f525e069b5b2bd27fe90bfe3022b178  gcc/config/arm/cortex-r4.md
! 0e22fd0a345f30d5d5d7cdfbefa67924  gcc/config/arm/cortex-r4f.md
! dbfe2af68927898639ca2e90f92460ba  gcc/config/arm/crypto.def
! e9607182bcee9cb0dac7154b9875eb16  gcc/config/arm/crypto.md
! 435c5ebc91de2b11950f016ea75f0c28  gcc/config/arm/driver-arm.cc
! b3c86771b5ad129c19fe16838cbedd52  gcc/config/arm/elf.h
! 5a57abd04599d4b715f52cbf28a2257a  gcc/config/arm/exynos-m1.md
! e6a1dbfb8a7eecca505bd27f37ae07a7  gcc/config/arm/fa526.md
! c8c9d937960dee413c9acba0a8f7cc78  gcc/config/arm/fa606te.md
! 3c47b9626b791e120d107263a07423d3  gcc/config/arm/fa626te.md
! ac186ce9622e1ec2bc0e4fd950b964f7  gcc/config/arm/fa726te.md
! 3eafe11b597922c9c03e6b6367ef8bb6  gcc/config/arm/fmp626.md
! 0dfee410e6afc16a46514abd0585ef69  gcc/config/arm/freebsd.h
! f544852f5cc21cdf14c2c4c80452bd43  gcc/config/arm/fuchsia-elf.h
! ccf45a55161926b761bda1a860083248  gcc/config/arm/iterators.md
! 330dc477e6373ebe87a836573ea95494  gcc/config/arm/iwmmxt.md
! 24837e6bd27434d2416ff3523490f95f  gcc/config/arm/iwmmxt2.md
! 9fd1f5d2b8da81e36aaf4041624ce375  gcc/config/arm/ldmstm.md
! 66a415207fe43505131a76aa71286c40  gcc/config/arm/ldrdstrd.md
! 5eaabd94e0037b6522ed9a45392cd350  gcc/config/arm/linux-eabi.h
! d64263b134031262a36428a26496f75e  gcc/config/arm/linux-elf.h
! 4ea728222e22c82478cc690594831254  gcc/config/arm/linux-gas.h
! b69614df1cd4256f58e75a572fbda03a  gcc/config/arm/marvell-f-iwmmxt.md
! e8affac9772d93f38b77832072baa1de  gcc/config/arm/marvell-pj4.md
! f95aae25737fa2b67f658ae27a55bf24  gcc/config/arm/mmintrin.h
! 53da1c2f428f37c646ba59bf6c8e0f5b  gcc/config/arm/mve.md
! 90755fdf5049c51974a29f7443aad437  gcc/config/arm/neon.md
! 99dedecb099a6f7fef75514f6cfb51f6  gcc/config/arm/netbsd-eabi.h
! 49dc7f194a7a56dbfa95c9d614987485  gcc/config/arm/netbsd-elf.h
! 07d12636c252e170d71bcadfca2c2538  gcc/config/arm/parsecpu.awk
! 48c4f1278016d74ee1b971b4f0d4ebec  gcc/config/arm/predicates.md
! 8728b87570afb29ed1ff4123e74ac682  gcc/config/arm/rtems.h
! 595836a2cd01d474efb6cc4bd4593be0  gcc/config/arm/semi.h
! 715e3671509e0ab901deaa7531d1788e  gcc/config/arm/symbian.h
! a1cac8cf64891008b3c6ff9b32c35722  gcc/config/arm/sync.md
! 55ef7bf32a729f4cbd815cbee0949fbc  gcc/config/arm/t-aprofile
! 8c12623daa5ae7bb20d91c73e5377c29  gcc/config/arm/t-arm
! feee8c3cd3c05b63765d6d71f43af4ed  gcc/config/arm/t-arm-elf
  4dc427c456af5e56b1ac39bda8969af6  gcc/config/arm/t-bpabi
! c1eb2282a5fbb98209a01a40a162e71d  gcc/config/arm/t-fuchsia
  e3950ec6bd159734835f8f8fb143efc6  gcc/config/arm/t-linux-androideabi
! 0b889c2ad0208e7df84275f7d9e4cd74  gcc/config/arm/t-linux-eabi
! 362e806c9e2ec8bec0cf8bdbd2f72a2c  gcc/config/arm/t-multilib
! 15514d0bc5b01d8402c3136f75eee8d6  gcc/config/arm/t-phoenix
! 1ac5e77816a6484a73a165eeae398cdc  gcc/config/arm/t-rmprofile
! c434e99f4fc47fd32ffab26fbeea8464  gcc/config/arm/t-rtems
! 8c0b4a60653a17f203a5cfb1a8fc002a  gcc/config/arm/t-symbian
! 39be57a549825d2444946fe5f693a90e  gcc/config/arm/t-vxworks
! 87896a997e36e53ebdce8c63842d9282  gcc/config/arm/thumb1.md
! d365e30d51e84eee3d4c690431b36a5b  gcc/config/arm/thumb2.md
! 04f108386512544ce1d6596ad6e66db1  gcc/config/arm/types.md
! 734d555ff2653ad7065e13ddce683abf  gcc/config/arm/uclinux-eabi.h
! 62ee64e5a550f39e265007bb0bbcdd7c  gcc/config/arm/uclinux-elf.h
! 92334ebaffb0d129acfc57fef831f2c6  gcc/config/arm/uclinuxfdpiceabi.h
! 89fac906bcc09977ddb7f431282695ae  gcc/config/arm/unknown-elf.h
! cbf753ccacebb14f1ea069d00bd48785  gcc/config/arm/unspecs.md
! 03d75586d505d936b481025195452fcc  gcc/config/arm/vec-common.md
! 0ecf35b93594826345444b0a0d454df4  gcc/config/arm/vfp.md
! 37331c99c09350c25917558f4d26ecee  gcc/config/arm/vfp11.md
! 7ad219ccd35d0a98f29c2f2a4552334c  gcc/config/arm/vxworks.h
! 0d3ded2f97981b036dd0ae73cfa93a0c  gcc/config/arm/vxworks.opt
  e219596493ffcd798a48b24b22b5e077  gcc/config/arm/vxworks.opt.urls
  8bb1a840fb87b138c620682ccad6aee4  gcc/config/arm/x-arm
! 5374b54e109a19a2feb7bf38477c0f45  gcc/config/arm/xgene1.md
! 872cf59810856b0fb4270b406084d4c1  gcc/config/avr/avr-arch.h
! 979d316e0a30598a6a3d7716a48307bb  gcc/config/avr/avr-c.cc
! bfe56ce9bd6fa014dfb8ec10b0e220e7  gcc/config/avr/avr-devices.cc
! aacc6ecb9694d2f6283dbdfd61c9d0d7  gcc/config/avr/avr-dimode.md
! 7ae67bca77c9ea131be5692c358dda69  gcc/config/avr/avr-fixed.md
! 5ca3add3bb846b864908fa520718a481  gcc/config/avr/avr-log.cc
! b160f53b2566bf5f5e8eb989cd9ca35f  gcc/config/avr/avr-mcus.def
! 8e3ae0ce3a1eb610f878cf19540a249f  gcc/config/avr/avr-modes.def
! e463aeaf15d36b313935a1486e19fe50  gcc/config/avr/avr-passes.def
! 5227d87be2fe7b6b432a7cd09c5e37ed  gcc/config/avr/avr-protos.h
! f6bd61a4d455db58f9425812a337b890  gcc/config/avr/avr-stdint.h
! 95a50993a3b77e41eab9a9251f7ab4e9  gcc/config/avr/avr.cc
! 7cc3c5e2451b04c38f10f0bd06790ba0  gcc/config/avr/avr.h
! 1abdf9e79e7efc4a3ee31f76cb9c0c49  gcc/config/avr/avr.md
! d966b0c41bfba722c0e38c55d7256e8b  gcc/config/avr/avr.opt
! a8f95050d166f48c225a2f8e916c6324  gcc/config/avr/avr.opt.urls
! c303762800db2d03566efcca0c473770  gcc/config/avr/avrlibc.h
! 5f50128af85c97f8a945289b214c6796  gcc/config/avr/builtins.def
! c81342d62b7c673dddb01c2fe022e31c  gcc/config/avr/constraints.md
! 6f86a74aad4c6d406125533121fac7c8  gcc/config/avr/driver-avr.cc
! 1008ab86977d8a828903d64e60330ac1  gcc/config/avr/elf.h
! ca321a5148953102f755e05b59b7bb1a  gcc/config/avr/gen-avr-mmcu-specs.cc
! 18da6b098212aae9f6f9b0200eeb9134  gcc/config/avr/gen-avr-mmcu-texi.cc
! b3573dd42f78369fa82623b922370aa4  gcc/config/avr/genmultilib.awk
! 28e6f4462ed42a18b0270e5755e73dc4  gcc/config/avr/predicates.md
! edcd8c674a9d3952a4c3d848649efd56  gcc/config/avr/specs.h
! b676cbf410071d39adf1d2dbab2defe3  gcc/config/avr/stdfix.h
! 3b770b008cc51d652a8983a5dd8c2597  gcc/config/avr/t-avr
! 8bf2f66c0bc639581bb4cbe96a90c238  gcc/config/bfin/bfin-modes.def
! b4f3b1f587ef61b524e54c9acb05211e  gcc/config/bfin/bfin-opts.h
! 55152b4ad375741227ccc1f34012ad51  gcc/config/bfin/bfin-protos.h
! dec44f55b8f34e9bef0f144e10a0a9c5  gcc/config/bfin/bfin.cc
! a8bd5da1aafd792d991ae73d3aad2c3f  gcc/config/bfin/bfin.h
! c4f0ef96f800f72d31434b3ceba6c9ad  gcc/config/bfin/bfin.md
! 027f822b1d27f541cdc686f505963dde  gcc/config/bfin/bfin.opt
  36e8977d5439597ecb609e7bfb848abb  gcc/config/bfin/bfin.opt.urls
! 1c7c34d2f874d6c30ccceafb16d1d569  gcc/config/bfin/constraints.md
! 751be4cb017f337cfa696fff055dcbbc  gcc/config/bfin/elf.h
! 470b827515c863d7cd9e319ee0c5ea11  gcc/config/bfin/linux.h
! 2414344bf6d37a2fdc1db1909b163d99  gcc/config/bfin/predicates.md
! cb7badc68f9abc97739182f859a0a8b4  gcc/config/bfin/print-sysroot-suffix.sh
! 4db322de6c03491c478ffa3917456fea  gcc/config/bfin/rtems.h
! f4dc2aac34d624bba28c600f04d78f12  gcc/config/bfin/sync.md
! 4866d33c3a4db48fc0be5609ef81278f  gcc/config/bfin/t-bfin-elf
! 0a9ed135e28f4abccac2f36e74c3307b  gcc/config/bfin/t-bfin-linux
! 70e38cfc6b535cf71f38ff5704ce6707  gcc/config/bfin/t-bfin-uclinux
  6f4817f759fcac5ac27233ee451780a6  gcc/config/bfin/t-rtems
! 3c2466fa25071d30bd0049c3d47872ab  gcc/config/bfin/uclinux.h
! 30af6fea6e8c2d633e2104c654ac44de  gcc/config/bpf/atomic.md
! 9aae7b37a9ce4571a9f1af9d87fbee03  gcc/config/bpf/bpf-c.cc
! d073957defda2ef6d4698acc1ede9c21  gcc/config/bpf/bpf-opts.h
! ad036a7c51066866d6c2042bece8aaff  gcc/config/bpf/bpf-passes.def
! 3c86e529f2ab0f01c73c9ad46d43ea5c  gcc/config/bpf/bpf-protos.h
! 55ec3f1d1979d14d5ccda2be6203e892  gcc/config/bpf/bpf.cc
! ffc95b8825c0b30f8090b40bab7a790f  gcc/config/bpf/bpf.h
! 5f9c659b134f914221a2740716326740  gcc/config/bpf/bpf.md
! 3e2b3464e70e61d52865a50b69d995b3  gcc/config/bpf/bpf.opt
! d1646e4aefa23fc8825148057531cb58  gcc/config/bpf/bpf.opt.urls
! c6847c3fbeaac77699a34384af5f211a  gcc/config/bpf/btfext-out.cc
! bc93921573893a20052c4cfa601c4907  gcc/config/bpf/btfext-out.h
! 500ec6ecc6ce37fbf3a76632e3a001c7  gcc/config/bpf/constraints.md
! d61d80dacf05838539fd193e42878560  gcc/config/bpf/core-builtins.cc
  988e922d069a72cea8291afbd9c40fe5  gcc/config/bpf/core-builtins.h
! 21032151b36abbdd530f9b705172ba31  gcc/config/bpf/predicates.md
  3f3bbe48c9291a5679f9d0ecc5c79139  gcc/config/bpf/t-bpf
! 2b62d5e19e5be41f5c261001fe01239b  gcc/config/c6x/c6x-isas.def
! e837e6b64906ae782bbc51f9ecca6cfd  gcc/config/c6x/c6x-modes.def
! a57b309b3c6abd0022d1305a829962c6  gcc/config/c6x/c6x-mult.md
! bfa87b9c49854e18c8d762a1ec2391e2  gcc/config/c6x/c6x-mult.md.in
! 2b448bc460d30389541a8d0275967b66  gcc/config/c6x/c6x-opts.h
! 27834649698ff092b43b012ae8c8ee83  gcc/config/c6x/c6x-protos.h
! 0ebe76e970961c59f49f0a6b35a2ceff  gcc/config/c6x/c6x-sched.md
! dfede4f326c4bef319b83df4a5d97c50  gcc/config/c6x/c6x-sched.md.in
! e3bf3db0e15b192653778d0a30b44ef8  gcc/config/c6x/c6x-tables.opt
  b536f834b2933bc77c0d771ff150df59  gcc/config/c6x/c6x-tables.opt.urls
! 011989932220d540be193906fa3bd119  gcc/config/c6x/c6x.cc
! 0fcdb055431f142927b53bc65a808812  gcc/config/c6x/c6x.h
! 747e9eefb99f273a89c6cbaa5a163513  gcc/config/c6x/c6x.md
! f053b42a1d92b1b4f157463ffaf2cbeb  gcc/config/c6x/c6x.opt
  44c7fa05441dbdf34c81d2027338e38b  gcc/config/c6x/c6x.opt.urls
! 9921ab23db5b8166b1fa0f679aa52525  gcc/config/c6x/c6x_intrinsics.h
! 8a673f0ab42c6c418c6eb6559c87b276  gcc/config/c6x/constraints.md
! 8869c8f74ceb9494469298a3e710ccaa  gcc/config/c6x/elf-common.h
! 38cc40182f20c6560a7710c3c4dfc428  gcc/config/c6x/elf.h
! cefd27242e98039e83505f38c2765980  gcc/config/c6x/genmult.sh
! 9fe95ef4ccff2f22dc95cbb7cf08cb54  gcc/config/c6x/genopt.sh
! f7f5e93d6320cd9874b6f941af78596a  gcc/config/c6x/gensched.sh
! ed53da5acf5ed6acf070d3904faa3c27  gcc/config/c6x/predicates.md
! edf88e19bdeaaaf81f80ef8be6cf0ad3  gcc/config/c6x/sync.md
! 445d1ac9c64ef745d99db7110bb93b5e  gcc/config/c6x/t-c6x
! 01007d918ea0d02b08443ffd7e84f5d3  gcc/config/c6x/t-c6x-elf
  428034a210600b6b423dfadb06636e03  gcc/config/c6x/t-c6x-uclinux
! 931d70ef7996a6552940e9d46b8c885a  gcc/config/c6x/uclinux-elf.h
! 005f83fa19edf0354ca684107337a3fa  gcc/config/cris/constraints.md
! 5f142c1949ce8da332eea5607a8c4f37  gcc/config/cris/cris-modes.def
! a0bb80faafaf545a38eda465247e0e9b  gcc/config/cris/cris-passes.def
! 7354ce7821f395ed6f0d8194904435ad  gcc/config/cris/cris-protos.h
! 58735812bea3f81c8d6ca1d251243db2  gcc/config/cris/cris.cc
! 52d855baa8f9a8ac1699c0c1b8774bd8  gcc/config/cris/cris.h
! 90916a913e9124a347e0725c2b7e1413  gcc/config/cris/cris.md
! c154650d0558060f93f7249e5ba14b3a  gcc/config/cris/cris.opt
  50946b44376ed14014403951a60a6de6  gcc/config/cris/cris.opt.urls
! 7c43b2bc82ab956223b8b5873a0900f6  gcc/config/cris/elf.opt
  b54f8e1c24ac896bed470d9f6cab26fa  gcc/config/cris/elf.opt.urls
! 6cd8d8513a4038e1eba65d38da822e27  gcc/config/cris/predicates.md
! 06352348dfa0f717deb3f593024a8869  gcc/config/cris/sync.md
! 0eb9e810b1721415c8626fd54322c6ac  gcc/config/cris/t-cris
! 6e85d52d90652730b94b405f238c758a  gcc/config/cris/t-elfmulti
! 6f8c80e70045fa129b4e042f00a144e3  gcc/config/csky/constraints.md
! 11778e0c11bee69254735ea03326a947  gcc/config/csky/csky-elf.h
! f002c5e70ac03ad20cc44a1ab0558b47  gcc/config/csky/csky-linux-elf.h
! f1852b47bf68011d40c07d14536be1ff  gcc/config/csky/csky-modes.def
! ad58576b92f05480554c999cccf785b4  gcc/config/csky/csky-protos.h
! 7f6b3235ca180ebbfd698e23e90e9722  gcc/config/csky/csky.cc
! e8e041657bda4e496382a4cc3bcb97f2  gcc/config/csky/csky.h
! fd2882bb73eaba5ceb740d91ec1675a1  gcc/config/csky/csky.md
! 3e42ca6606ada1b3007806e6afe69038  gcc/config/csky/csky.opt
  af957505ebfff6becaa7b030a6aeb610  gcc/config/csky/csky.opt.urls
! 804461fe7dde878376b04c80b34e4f4e  gcc/config/csky/csky_cores.def
! 7bd620dbf40b162c81eb42a231562580  gcc/config/csky/csky_genopt.sh
! 58f05e05d4c1fc6124974d7a296f619f  gcc/config/csky/csky_insn_dsp.md
! 9b64bc5deae7617bb4c71d9adf19fb08  gcc/config/csky/csky_insn_fpu.md
! a25f50472c35e531b9954848c5c0de1b  gcc/config/csky/csky_insn_fpuv2.md
! f391fd00d04ba68605a17824ffcacdff  gcc/config/csky/csky_insn_fpuv3.md
! 49c102c359e989af63d4b550a31a31da  gcc/config/csky/csky_isa.def
! 0729917446768725cbc3f37ff94e6b90  gcc/config/csky/csky_isa.h
! a2b60e2d59a424368c56bd6ce292e990  gcc/config/csky/csky_opts.h
! 25d2f85e606b41fab1e70eb1f6b0450a  gcc/config/csky/csky_pipeline_ck801.md
! 169e8d6b0d2263775839d89d65c67dd4  gcc/config/csky/csky_pipeline_ck802.md
! 98d4be51eaaaac7815a9d4b975dde2ac  gcc/config/csky/csky_pipeline_ck803.md
! 383e2ef6cd47b5090f8621490402575d  gcc/config/csky/csky_pipeline_ck810.md
! 0bcd339163b0663b2b90c0dc73395dd7  gcc/config/csky/csky_tables.opt
  0adb5f079721c7b0bfb6fa5b036fd78f  gcc/config/csky/csky_tables.opt.urls
! 57bd3edcfac082d30efa042ef2361795  gcc/config/csky/predicates.md
! 8204efd28a890ff5d91ce44d4d67c69e  gcc/config/csky/t-csky
! 41d11f8e00eb780dca95b1608c019423  gcc/config/csky/t-csky-elf
! 700a3cbbccd3bfc817d662d80f67144e  gcc/config/csky/t-csky-linux
! 0fff6c806cad8ae8820da65b3d34f043  gcc/config/darwin-c.cc
! 202d5571d888bc2fdb0c2b3fa79c0e18  gcc/config/darwin-d.cc
! 9f65d6371bdae49ecf6c859dac518574  gcc/config/darwin-driver.cc
! d420db205af99a4d1013bc0714bcca16  gcc/config/darwin-f.cc
! 2a2d50ad93e70b1359386c857f4a28d9  gcc/config/darwin-ppc-ldouble-patch.def
! 06eaaa848e93b47187a31f9976509788  gcc/config/darwin-protos.h
! ff647e6851cebecaf394272c183d4020  gcc/config/darwin-rust.cc
! 3026a91e5feb107bf0b1acb32e14cac9  gcc/config/darwin-sections.def
! e55ce9dd176fe3245a6c58be151f15c4  gcc/config/darwin.cc
! 10dd023cb1bdcddc03a3d0c0dfd6d315  gcc/config/darwin.h
! 86b9ccd132e574ef70f04a9d7994048f  gcc/config/darwin.opt
  7c6d1c1425e31bca754e3318d5b15d32  gcc/config/darwin.opt.urls
! 5e5bdc5302018d2fede1c68388c8577a  gcc/config/default-c.cc
! 91aebbe962a774484ef5981872002102  gcc/config/default-d.cc
! 59e9eaab33331d1fcab529682bcfa15d  gcc/config/default-rust.cc
! e1449ff89a8cf8ab62f51999bee3a042  gcc/config/dragonfly-d.cc
! aa757a1cb9f9f9e5ba69f8a37ac9ff6a  gcc/config/dragonfly-rust.cc
! 6815ac0c8d09130897c7c3dc6d6222b3  gcc/config/dragonfly-stdint.h
! 11f81f059970baa8096d3d0762c82f00  gcc/config/dragonfly.h
! 6cb42d4dba3213de03efcdcef372a749  gcc/config/dragonfly.opt
  2d1f27bc790d8994ba813be59ce7072b  gcc/config/dragonfly.opt.urls
! af40ef72cd86da109ced53718ceaddc5  gcc/config/elfos.h
! bfe83331e4962bf356dae34d5c5f5b02  gcc/config/epiphany/constraints.md
! 41df373eeb2600df5a50d90bf95307ad  gcc/config/epiphany/epiphany-modes.def
! a2ae4dd2698e6335c7805ff381404956  gcc/config/epiphany/epiphany-protos.h
! 4605332b94ed895202b9077b2b5f30a6  gcc/config/epiphany/epiphany-sched.md
! 8c973d2578753975e3adf34da3d17976  gcc/config/epiphany/epiphany.cc
! 32858933f0956d2c41b29ab50ddcac94  gcc/config/epiphany/epiphany.h
! 4babae874a893037db77916cb872425f  gcc/config/epiphany/epiphany.md
! 7d248b05c4c084032012021fb6d861eb  gcc/config/epiphany/epiphany.opt
  423f06a3ee40a6b6852e5e21c30b8495  gcc/config/epiphany/epiphany.opt.urls
! f15565d680bf80309b8c9d76e6df3496  gcc/config/epiphany/epiphany_intrinsics.h
! 4b8b915ed4245267256c4ffb39de9c4b  gcc/config/epiphany/mode-switch-use.cc
! fb68388e8b9c8b4833928d8688dac85e  gcc/config/epiphany/predicates.md
! b5c3e72ab01fbcf3b9a8f9f88b1c9069  gcc/config/epiphany/resolve-sw-modes.cc
! b7207984882303a2fde0e0fd145ed291  gcc/config/epiphany/rtems.h
! dc1fbe60b2c529f227ef6d2bd5924e1a  gcc/config/epiphany/t-epiphany
! 2439443a8ae8374d9179f36198c99f04  gcc/config/flat.h
! 332c323bb9e02c752521c6ad7ab06e41  gcc/config/fr30/constraints.md
! c7749fdc2d13bfc8c08441cd012fefe3  gcc/config/fr30/fr30-protos.h
! cf4cc44c50554073f2e0f9f078e7e474  gcc/config/fr30/fr30.cc
! ee2b17673805bc155459e95971c7faa4  gcc/config/fr30/fr30.h
! c32a8a2e315c55d83b34fa55f6399743  gcc/config/fr30/fr30.md
! 5688764057fa0f6690de645fdc8e1610  gcc/config/fr30/fr30.opt
  6492ad033c8269ba2e0093c3a143b1a3  gcc/config/fr30/fr30.opt.urls
! e8cb30a1ddce0656b0818c1eca3926dd  gcc/config/fr30/predicates.md
! 0305b967744c47ced3beab7da8ac51fe  gcc/config/freebsd-d.cc
! c5b689799e3510fee7ee09caf7fbff71  gcc/config/freebsd-nthr.h
! 5d5768235f95e82bcaf0ac9322159fdd  gcc/config/freebsd-rust.cc
! b2d179788773d04e1631d528e1d8c24d  gcc/config/freebsd-spec.h
! 97ab086f049412a904e64541ab485538  gcc/config/freebsd-stdint.h
! 684ab3407a4bc558a107953b03a04478  gcc/config/freebsd.h
! 137529223db62c82b9895c468e3cee8d  gcc/config/freebsd.opt
  b4bfc5fa6c82a78a53970e852b99aded  gcc/config/freebsd.opt.urls
! 92dbee3eea0515594d2ee80a472ecebc  gcc/config/frv/constraints.md
! 16707cf01d678349c8becc98a4ec2250  gcc/config/frv/frv-asm.h
! 0ff8bbb1f1bc5d90c570ee34351dbe05  gcc/config/frv/frv-modes.def
! 224d90766cba20afa322893958edc692  gcc/config/frv/frv-opts.h
! b65f3fc1d0a49976f3d48bfe11fd5d58  gcc/config/frv/frv-protos.h
! 2f89f1a1f3b993dd8a8c14d7821abaac  gcc/config/frv/frv.cc
! 3d4811fbc641013caff87c1c7769e663  gcc/config/frv/frv.h
! 3f34c3906e1c3dd068f168a48b3f141e  gcc/config/frv/frv.md
! 36e7638e6c875772b24425e24be8bf5c  gcc/config/frv/frv.opt
  ef8faf84b26737662fc7790f117b55bc  gcc/config/frv/frv.opt.urls
! 2917f15fb8d9c361ea6dd599806a8fe1  gcc/config/frv/linux.h
! 482e52bf69031733640da496d0a8eb4b  gcc/config/frv/predicates.md
! a5f16d5c4061a48be951ac23b59851fb  gcc/config/frv/t-frv
! c504a61f6051b4badd15961d17492406  gcc/config/frv/t-linux
! 41d6e2ee4a6dd2ae63e3a3f4039c8a6b  gcc/config/ft32/constraints.md
! 296e5c75c4f783baa0ccb1508523e530  gcc/config/ft32/ft32-protos.h
! 14205f30f9d9965fa36e93ab4c759795  gcc/config/ft32/ft32.cc
! 1533ab5fafe4d61d8f2193e92c3f10e4  gcc/config/ft32/ft32.h
! 62fa5c878bf43af9f918882295695a2a  gcc/config/ft32/ft32.md
! 58bb8ca5aab5124d406c8608f1e0461e  gcc/config/ft32/ft32.opt
  8a56d9991bfac628d38e804a277c6568  gcc/config/ft32/ft32.opt.urls
! c8c46138d986db65fbe4fbdbfbe26f7c  gcc/config/ft32/predicates.md
! d2f41f10c6182871c066f8fb9eae4ac2  gcc/config/ft32/t-ft32
! 193bfe87ab220078404db95a7a07f5ef  gcc/config/fuchsia-rust.cc
! e784b211fb0c979def62717e65bb571e  gcc/config/fuchsia.h
! 79b4d331a82a2fccae540e7b73f233af  gcc/config/fused-madd.opt
  45e1c702124918c893e2ef5ca76ae958  gcc/config/fused-madd.opt.urls
! 7c2391e2aad825359d2e6969b9b903c9  gcc/config/g.opt
  96050b4b2455697e8f797ff6286b6575  gcc/config/g.opt.urls
! 8c68d60153a15f9416a0af4d8505094f  gcc/config/gcn/constraints.md
! a4f7963c5a0d63b348fd73289a18b8c5  gcc/config/gcn/gcn-builtins.def
! 53b059d19f799c76a81a028e256e70fe  gcc/config/gcn/gcn-hsa.h
! b6fece4e17a91412293c371d94a475dd  gcc/config/gcn/gcn-modes.def
! 46778452db34cdbc71d9f4a4171c7307  gcc/config/gcn/gcn-opts.h
! 6311f782fb16b86924e7de0897f91839  gcc/config/gcn/gcn-protos.h
! 529601da612d323a28830d974c99a61e  gcc/config/gcn/gcn-run.cc
! d2f77077ece33211873ed1bee31762e3  gcc/config/gcn/gcn-tree.cc
! 12b1c04c3a624aeb5c08755c4b84aecf  gcc/config/gcn/gcn-valu.md
! a074b57c00fa2fc300e5667b3ecbce0f  gcc/config/gcn/gcn.cc
! 75105178902bafa67e5dadcce49fef36  gcc/config/gcn/gcn.h
! c7295aa69d0b641ff0c1160fe52eab43  gcc/config/gcn/gcn.md
! fc07632e306561b078ee9f674f81fa60  gcc/config/gcn/gcn.opt
  6c96a5ccd826ec5a9ddf7ffe7fda572d  gcc/config/gcn/gcn.opt.urls
! 4e7c3dc306bf9e61e07e5492421c482b  gcc/config/gcn/mkoffload.cc
! 400dbdb30861a123f8411f875eef57b1  gcc/config/gcn/offload.h
! 71028715b590f8c58d25025018e50b05  gcc/config/gcn/predicates.md
! 7f81e1a30a365e4ba268ecec3b492df4  gcc/config/gcn/t-gcn-hsa
! 729624f1ab566330d03060a8b4e008f1  gcc/config/gcn/t-omp-device
! 5897a0e6715b7df1ca3c48bfbb1cd6b8  gcc/config/glibc-c.cc
! b278c721aa8368b642ae5cb9a65245e0  gcc/config/glibc-stdint.h
! 9d37b8f32505e9662fa69a166c77c8f0  gcc/config/gnu-d.cc
! 6a696cae7a44d868d78e9cda14336b34  gcc/config/gnu-user.h
! a2273f1834933e181d0f704e3beccddc  gcc/config/gnu-user.opt
  6b439d9b69b8df92af49c7024df0d474  gcc/config/gnu-user.opt.urls
! 71358d5d16455cafedfe6d4610bf04a4  gcc/config/gnu.h
  d0a6e969946f8dfa6f2a114d426de2d5  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
  e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
! f09192fe7bfd79cb52c30c6a49bb4eb1  gcc/config/h8300/constraints.md
  6951bae6ec523668ea56b4c855810ce3  gcc/config/h8300/divmod.md
! 091a4a360ea6a60e2213740571681651  gcc/config/h8300/elf.h
  4664439672c5dddfd6148672f30ab54b  gcc/config/h8300/extensions.md
! d0650fd3777200db4380e421cf08663d  gcc/config/h8300/genmova.sh
! 08141f44826fbf4417b4178c1b12306d  gcc/config/h8300/h8300-modes.def
! 9c537816c6abe6d80ecbf4e812fb3390  gcc/config/h8300/h8300-protos.h
! 2001e280d7b01bfff2179af75e0bb1c4  gcc/config/h8300/h8300.cc
! 84ba8da09d2d9a1784f217ff6e2e4a6f  gcc/config/h8300/h8300.h
! d8378cb8a624cb7616d4726443144caf  gcc/config/h8300/h8300.md
! cf5ffd75faf245561b1f78aa473ee2ff  gcc/config/h8300/h8300.opt
  7950bf0c1ee6b8ccc34ec33806c7b7d9  gcc/config/h8300/h8300.opt.urls
! b5d25924674b9d28333ecf000341f07e  gcc/config/h8300/jumpcall.md
! e6a4e3e6426083b5f5b0e5dfd94cf6ce  gcc/config/h8300/linux.h
! 6a6a1bff12129c7fd3f2ca9dc5bb1fbd  gcc/config/h8300/logical.md
! 5ff40e38576f47b44362c3fbea0c876e  gcc/config/h8300/mova.md
  d329c98204120e78e720acd16234ad63  gcc/config/h8300/movepush.md
  6497e83ede4f1f9ec82eb6a07ba6f856  gcc/config/h8300/multiply.md
  56b9e51103f6a9c3bfc3777663b9a4f7  gcc/config/h8300/other.md
  e673e4aefe8a67834929eb43e99ac3df  gcc/config/h8300/peepholes.md
! 9fca1a21518fef5318a17a3b7a1cdfd6  gcc/config/h8300/predicates.md
  229fc2c8a83deb14625c4ee888cbb642  gcc/config/h8300/proepi.md
  daa266a3eae63ee1e65cb8c441f4c9c2  gcc/config/h8300/shiftrotate.md
! f8e17317f94f734e50b128466865e972  gcc/config/h8300/t-h8300
! 52862a7441b707ea0807addb77df3b6e  gcc/config/h8300/t-linux
! 9608ba7444746bdc63336f311f431044  gcc/config/h8300/testcompare.md
! fe97dee880b98da6aacf2f5a37c03e0f  gcc/config/host-darwin.cc
! 81bcef191edce40c81e1d14cf996bd01  gcc/config/host-darwin.h
! 689db705248decb4b126a84ccd9af71d  gcc/config/host-hpux.cc
! c2a5ce1ee84615aa52b4f799a2145596  gcc/config/host-linux.cc
! 73a66908ad77a38519ea3b39f1d31588  gcc/config/host-netbsd.cc
! 029bc56d5a833600081186db0e79f74d  gcc/config/host-openbsd.cc
! 442cafa83a1e7b89d9064bde491ecef3  gcc/config/host-solaris.cc
  2c191e2d8d033611c6fccc8362d9e8f0  gcc/config/hpux-stdint.h
! 84c2a4a078b712885f38c373ad66b894  gcc/config/hpux11.opt
  6fb8f575d2ba05a77e86b2a4670259bb  gcc/config/hpux11.opt.urls
! ae17e86c8fe5840b6a46050b1cfcfe1e  gcc/config/i386/adxintrin.h
! cec853bfbc05465372e2d9209db77190  gcc/config/i386/ammintrin.h
! 1bec839682bc45593f2151042e170b96  gcc/config/i386/amxbf16intrin.h
! ec029ca822a74239a707f2af46e6fdd8  gcc/config/i386/amxcomplexintrin.h
! 161f86283fe6c5f1fbc3b31b18b55e6c  gcc/config/i386/amxfp16intrin.h
! 75a05cb93c9574d532bd22516622b6b8  gcc/config/i386/amxint8intrin.h
! 93230e68087adc86d3522722f61691de  gcc/config/i386/amxtileintrin.h
! 71924dc46e17c794c14a1714c186e882  gcc/config/i386/athlon.md
! 1137d7b41f29f9980a579371eaf574bf  gcc/config/i386/atom.md
! 7bcdf33d98d5875d2591173680db353e  gcc/config/i386/att.h
! 1038b5753a0fe47ba09718ac78841767  gcc/config/i386/avx2intrin.h
! dfae3d44ec047197c7dbad91eeb5c7c3  gcc/config/i386/avx5124fmapsintrin.h
! a4d9a04f2995bb5ae7c4bd49839ce537  gcc/config/i386/avx5124vnniwintrin.h
! f25fd859b50274239407625a078ccf0f  gcc/config/i386/avx512bf16intrin.h
! 5273416c2e181bfba99f3a83aaa036d4  gcc/config/i386/avx512bf16vlintrin.h
! 655f021e60c686c239cbb65b9483ab03  gcc/config/i386/avx512bitalgintrin.h
! 1655a7c18db9894d92096da3de56444c  gcc/config/i386/avx512bitalgvlintrin.h
! bfe5cb029f9c099d1efdc300367d97c4  gcc/config/i386/avx512bwintrin.h
! 2f8e43414663b99ce8799277aaa90345  gcc/config/i386/avx512cdintrin.h
! 95b77cb586005469724af66c305b19de  gcc/config/i386/avx512dqintrin.h
! 3f87825a9c1021c88b959976b9251b64  gcc/config/i386/avx512erintrin.h
! fb6f85df9cfe5be1e0bfbcf14723c6c6  gcc/config/i386/avx512fintrin.h
! 3bfeb2321bcb9efb7e075c5dcff31ace  gcc/config/i386/avx512fp16intrin.h
! 14f110d99e0fe26055648a1ed606c1d2  gcc/config/i386/avx512fp16vlintrin.h
! 57449d9ba7c9dbb2915dff08916db6da  gcc/config/i386/avx512ifmaintrin.h
! de5b8dbd045cc4244b1450193e9ccd7a  gcc/config/i386/avx512ifmavlintrin.h
! 5be70a34c81c6721b292c012eb4e8d3c  gcc/config/i386/avx512pfintrin.h
! 3b1c599dbbadc37149e57e75e1f8bdd6  gcc/config/i386/avx512vbmi2intrin.h
! b4773de6d23aa684edc8705b5758c8fe  gcc/config/i386/avx512vbmi2vlintrin.h
! ccedc51507a5482495100dc67bc794c8  gcc/config/i386/avx512vbmiintrin.h
! 582996f5d514a502e61f5804f216cfbb  gcc/config/i386/avx512vbmivlintrin.h
! a970305c72f1d067edd7c7b8b01a78f4  gcc/config/i386/avx512vlbwintrin.h
! 79d382d0053b109b779d99ae87657ce0  gcc/config/i386/avx512vldqintrin.h
! 670ac435460076a8832744e79ca2b46f  gcc/config/i386/avx512vlintrin.h
! b27cb6d1c3d937b65768a67547c8a1c2  gcc/config/i386/avx512vnniintrin.h
! b02d09852a2e1b72aaa76ca6813e4cce  gcc/config/i386/avx512vnnivlintrin.h
! 561e769c25b0ba248975986442cb88eb  gcc/config/i386/avx512vp2intersectintrin.h
! 3fc5eb6b0c536e687eb62be270db5fb3  gcc/config/i386/avx512vp2intersectvlintrin.h
! a4f0a50972ce3943af738716a9d12b5c  gcc/config/i386/avx512vpopcntdqintrin.h
! 076063dee54f564c013826a38b947320  gcc/config/i386/avx512vpopcntdqvlintrin.h
! b8915c352e22fcbc38b568229b7adaae  gcc/config/i386/avxifmaintrin.h
! a20749f17c3187210b4248cd39e2b3a8  gcc/config/i386/avxintrin.h
! 8b964d2c350290955b63d21a1246926c  gcc/config/i386/avxmath.h
! eadf2aeb4ef156775cebebbdd9ce8e07  gcc/config/i386/avxneconvertintrin.h
! 4d67fda3bae0c3e49a0f62d31d5d2e13  gcc/config/i386/avxvnniint16intrin.h
! fafbc9e935634c5bbc4d01ca8df1dcc9  gcc/config/i386/avxvnniint8intrin.h
! d532d8f06304b0e50e69ad64dc2fab3d  gcc/config/i386/avxvnniintrin.h
! dc95a331ad1cdbac2276c1e534ae439e  gcc/config/i386/bdver1.md
! 27b91403121c2cb5bfc51080b35c9de3  gcc/config/i386/bdver3.md
! 9686e9deb0d8dbb14151fd5e9d7d0d86  gcc/config/i386/biarch64.h
! 531173fce2568ce8a278a810786cf307  gcc/config/i386/biarchx32.h
! 9f9f3d148439467fd0c8f5f4f197df0e  gcc/config/i386/bmi2intrin.h
! 09256fde3aba34e53121cdb7c14e3172  gcc/config/i386/bmiintrin.h
! d4bebcfda9507eed7f756fb75bc76998  gcc/config/i386/bmmintrin.h
! 20d46ae3b8c26075548e9a40cd9dffd5  gcc/config/i386/bsd.h
! ef437a2578ad242de575fa7082fd86be  gcc/config/i386/btver2.md
! 24f74f6e7a6dae7ae92c93b53fcc4e53  gcc/config/i386/cet.h
! 9b54a36c82177b12c84c9612c94da89e  gcc/config/i386/cetintrin.h
! 3f5fb7795418bdb391322aeb343b0267  gcc/config/i386/cldemoteintrin.h
! 796728b11a1c6045859428f20a29733e  gcc/config/i386/clflushoptintrin.h
! 2acc7cab5a6a7a7d31fc4d2fcb7418e4  gcc/config/i386/clwbintrin.h
! 2fe649ccf51d9c5fee37af3d91d0df7e  gcc/config/i386/clzerointrin.h
! 393a4572dbcbeb8deee71c8f361fa85a  gcc/config/i386/cmpccxaddintrin.h
! 8b61d5367e86f261671bd7ce3204f1be  gcc/config/i386/constraints.md
! d2100b7cb12db9e2b123e2f4857f1f9f  gcc/config/i386/core2.md
! 416fe6d56885fde5d7abef3525e75b5d  gcc/config/i386/cpuid.h
! e649a5071671f0b09c69818c63e149ce  gcc/config/i386/cross-stdarg.h
! 53177dd1a18a859e6140d720710b474f  gcc/config/i386/crtdll.h
! 4ea8b628a10c4ed7d692d2ca98079a65  gcc/config/i386/cygming.h
! b8ebb7fb6c8ee84654d76109914cfda6  gcc/config/i386/cygming.opt
! 0758b6eb9eadc24f211e957805219c45  gcc/config/i386/cygming.opt.urls
! 604bb0a92b37491787dc0f86264b09cf  gcc/config/i386/cygwin-d.cc
! eb6ee0397993d2d4797a360b022f8817  gcc/config/i386/cygwin-stdint.h
! 6de9181d6ed6cd734ad8fd5e0f6b0662  gcc/config/i386/cygwin-w64.h
! eed87f5445a424a9bb2c324af88ffb0e  gcc/config/i386/cygwin.h
! 1fb1a9f845f8ebdf0a468030c408b7ef  gcc/config/i386/cygwin.opt
  3b362955aab83912528fe683b571c289  gcc/config/i386/cygwin.opt.urls
! b1691136f3e6b17e519f0a9e8025aa94  gcc/config/i386/darwin.h
! 590afe4e72b7624170f68ad525edd433  gcc/config/i386/darwin32-biarch.h
! 5ccf0e52eb63cc16cc02f0891043896d  gcc/config/i386/darwin64-biarch.h
! 21fc813ddc7b9185fe5da46704cad167  gcc/config/i386/djgpp-stdint.h
! d8489b835ee31bead8a6e6d69e91f7c3  gcc/config/i386/djgpp.cc
! 866f201519dbe0f0d32348c3a5a28eff  gcc/config/i386/djgpp.h
! 45b973eff75adfbcf46eafe622d51111  gcc/config/i386/djgpp.opt
  1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
! bec83a086bf337dbd2e154506b2602d2  gcc/config/i386/dragonfly.h
! e16fd93f553abeee55010d6aadfbeaf7  gcc/config/i386/driver-i386.cc
! 0eb383b96b421d47115ebf3f8ba6ee3a  gcc/config/i386/driver-mingw32.cc
! e8a9784f37380c5b3dd741023389d394  gcc/config/i386/emmintrin.h
! a25cb50167eb66bf3228ad4aebd5dabf  gcc/config/i386/enqcmdintrin.h
! 20c5d7655eeeb58455eb0dcc6e1d383c  gcc/config/i386/f16cintrin.h
! 5487e634f602e87b08446aebdf507ffd  gcc/config/i386/fma4intrin.h
! df41a10a03dc8fed743ef33faf906abf  gcc/config/i386/fmaintrin.h
! 2ed186ac1343afb57219b1ac244f5eb7  gcc/config/i386/freebsd.h
! af8ac984ffac43ba66af1196609a96a9  gcc/config/i386/freebsd64.h
! 33c77d1d72ac5b5ad5e438483a25157e  gcc/config/i386/fxsrintrin.h
! 42a6a7cdc704d30800bf5e4993b6e1de  gcc/config/i386/gas.h
! 754f42ae9dc9a398157f5aaf58bd20be  gcc/config/i386/gcc-auto-profile
! 916eb971097dcf55a41bcc436c547638  gcc/config/i386/geode.md
! fe49e0109fb4a839773ba145b332c888  gcc/config/i386/gfniintrin.h
! 8e70cd3e550a7dcb6b54db38fb72c6a6  gcc/config/i386/glm.md
! 793a40a496271de053e42b388c296a90  gcc/config/i386/gmm_malloc.h
! 08b346f687189aca4ac44a698e81fc54  gcc/config/i386/gnu-property.cc
! c947356fd5abffc1890c1bb44f7a1272  gcc/config/i386/gnu-user-common.h
! 75fbe311492be729716a433dee0cf82b  gcc/config/i386/gnu-user.h
! aac26e4810ce5cd28b73cf7f6f1668d7  gcc/config/i386/gnu-user64.h
! cb343fc92a4017dd72ecf925e609e5b3  gcc/config/i386/gnu.h
! 88b7dbaed74b324e68398d3a41f01021  gcc/config/i386/gnu64.h
! 99fea335b0d0e75274fb0d332965e1ee  gcc/config/i386/haswell.md
! 9e0c1a273f1b48297e027d2b57fe6a5b  gcc/config/i386/host-cygwin.cc
! 8aa8340199913a36316957cfca64c183  gcc/config/i386/host-i386-darwin.cc
! 9511f2cacd4e3753bbcef34478635941  gcc/config/i386/host-mingw32.cc
! 4e2bbdb4e2a8e4ff852b573efffc33e4  gcc/config/i386/hresetintrin.h
! 2ea007891ddab468cc4699c13996a23c  gcc/config/i386/i386-builtin-types.awk
! c1088807627bcbd8c85a659852f57ce9  gcc/config/i386/i386-builtin-types.def
! aa99f8d58b3da23a2d212df9f67a2d4e  gcc/config/i386/i386-builtin.def
! a2336f4f657548fce5c8c4590f2550ba  gcc/config/i386/i386-builtins.cc
! a4714f98b53e073b615a5d93fe6fdba9  gcc/config/i386/i386-builtins.h
! f8a1590a72967fdf495715278a205905  gcc/config/i386/i386-c.cc
! fbc24076c7e09cff381fd3713e0e35b8  gcc/config/i386/i386-d.cc
! bc57c8d6121c70b7f671f4551d518806  gcc/config/i386/i386-d.h
! 8c827a175de59e1b129009fddf6c06c1  gcc/config/i386/i386-expand.cc
! aad6a1409988666a85b150e3fe82bb3e  gcc/config/i386/i386-expand.h
! f12b061557ea1896d7c1957fb29a0947  gcc/config/i386/i386-features.cc
! fccc6d65638a2ce66ebc6b06766912c2  gcc/config/i386/i386-features.h
! 09f8541e9793b6862628bb28d61bbae8  gcc/config/i386/i386-isa.def
! 071a7048367ae05545447d7afde45633  gcc/config/i386/i386-modes.def
! 27b8d049f6fddc8d196d100393a732e4  gcc/config/i386/i386-options.cc
! 4f9ab098f79123df3e7c4e8beb04a1b3  gcc/config/i386/i386-options.h
! 80b84844305586e681ea93488862a626  gcc/config/i386/i386-opts.h
! 4adde03ac7b7f40e6f38b8fd77beca54  gcc/config/i386/i386-passes.def
! c579dd84c0c0a8efd49f8053e5f9fdc3  gcc/config/i386/i386-protos.h
! 89067df9b8c57e29603ffaca8dcc692b  gcc/config/i386/i386-rust.cc
! 4f7ab8c57b3148a31d24838528313ef2  gcc/config/i386/i386-rust.h
! 96e6cdd5bc2356508910848757b49fcb  gcc/config/i386/i386.cc
! b95db7496ec176786f96efc37dba318e  gcc/config/i386/i386.h
! d2600bb976bf21c58616ff469e2545df  gcc/config/i386/i386.md
! 5ef25b564e1deaeea8d25ba9b4ec10df  gcc/config/i386/i386.opt
! fb32c950c45e643174eb7c58d7f4218f  gcc/config/i386/i386.opt.urls
! 95e430a8a19e9226167376a9a7ca34d9  gcc/config/i386/i386elf.h
! a778500391839a19a544023060ca562f  gcc/config/i386/ia32intrin.h
! c931b8ed7ac9d30859007078440e7f28  gcc/config/i386/iamcu.h
! 8e2d693b62b0a19fd761fdb64d5872fa  gcc/config/i386/immintrin.h
! dba0b9285e7ba81e15db0af9228b0199  gcc/config/i386/k6.md
! 429334866c319f15abbf8c55268ad574  gcc/config/i386/keylockerintrin.h
! 1dd6f42cbbda8221da5aa5ecca56c3d6  gcc/config/i386/kfreebsd-gnu.h
! e5a42d2a0415452056ccdb17e26e1c0b  gcc/config/i386/kfreebsd-gnu64.h
! e33484286fc1b1b7110dab4a298363aa  gcc/config/i386/kopensolaris-gnu.h
! 21b63e4ac3e2259a001dd952cc258fa1  gcc/config/i386/linux-common.h
! 9dd519f4dc93480aa935e2897d3b18c9  gcc/config/i386/linux.h
! 3eb18b0cd5be7d717d62086b8a2e3729  gcc/config/i386/linux64.h
! 773791eb685133455b209f8c0a5704ea  gcc/config/i386/lujiazui.md
! 46928ddbf41c351b51f875eadc3731c1  gcc/config/i386/lwpintrin.h
! f7279e473bb49123162315b4d3b464b3  gcc/config/i386/lynx.h
! c283ecd60cc5b074bd8e3b1b3c566d76  gcc/config/i386/lzcntintrin.h
  fefe46f8b06de933480400b9f58e9d31  gcc/config/i386/mingw-mcfgthread.h
! b271faf9af311b4732077e402a82776b  gcc/config/i386/mingw-pthread.h
! f659c00067444112cc4593f75e7c4436  gcc/config/i386/mingw-stdint.h
! 6aac5e7ce933ca0a3680003e2448bd03  gcc/config/i386/mingw-w64.h
! 76feac032d74842674894ad3420d4e36  gcc/config/i386/mingw-w64.opt
! 64b43591c22a886323b4bdf8f1f34c48  gcc/config/i386/mingw-w64.opt.urls
! 27dbe2c94a340b9cc784d5b925797aaf  gcc/config/i386/mingw.opt
! ba58451441e23c01b6eba20ce3c8eb9b  gcc/config/i386/mingw.opt.urls
! e825582ef5d3d436130e77c41d8d9ff4  gcc/config/i386/mingw32.h
! cc9849ddfde01b94df2eeb13ec5bab0a  gcc/config/i386/mm3dnow.h
! 90b9e7122f60a899bf229dc11f24000d  gcc/config/i386/mmintrin.h
! b4423d9947906a2a03d6518c51f85e89  gcc/config/i386/mmx.md
! ea7d7799efdd0d920495d7aaa4e3b7a2  gcc/config/i386/movdirintrin.h
! e576d2eed73a4571de7093a92f6dd156  gcc/config/i386/msformat-c.cc
! a0576d502ba7007ac2cebdc16b79ea32  gcc/config/i386/mwaitintrin.h
! 14b3e4c251fd9cc1557a9eb151542a1c  gcc/config/i386/mwaitxintrin.h
! 220befe527cd6f3b4ac6df90f018d806  gcc/config/i386/netbsd-elf.h
! 33173246f1d08f8aef1aa03d16d118af  gcc/config/i386/netbsd64.h
! 2e4d402c1703623d71bf29676f57a7c7  gcc/config/i386/nmmintrin.h
! 0f0077c72b9e630ecd5ddba5e7a0de50  gcc/config/i386/nto.h
! 52b89c2bb66cb5c57a9309e391cbffd4  gcc/config/i386/nto.opt
  229c4c48ca14c2b8202dadc4fc13f8d5  gcc/config/i386/nto.opt.urls
! 6312c31f3d88e5264e1f45719c027073  gcc/config/i386/openbsdelf.h
! c802dd0f88fe76d019f606fc3d9c88a4  gcc/config/i386/pconfigintrin.h
! f0fb429281d2972ec6d5b8dfaad99a2e  gcc/config/i386/pentium.md
! 0c7b2ce3f6bec370f1178abe863b0277  gcc/config/i386/pkuintrin.h
! 426d23fde0bd1023818a46682dee73ae  gcc/config/i386/pmm_malloc.h
! 4bcaf59111dff3536a590c7991909507  gcc/config/i386/pmmintrin.h
! e7897c9943ea9d58a20b8308a6a61862  gcc/config/i386/popcntintrin.h
! 6d75ea131db6d3e2bf45e0d22968918a  gcc/config/i386/ppro.md
! 65907170cf827bbb4c0625034d33f1cf  gcc/config/i386/predicates.md
! 3856fc2d4db83e3fbf8fe63969e6c748  gcc/config/i386/prfchiintrin.h
! 544e4357af1c9e5b8b5745552e22ae54  gcc/config/i386/prfchwintrin.h
! 592410101b47be5aa84798707b091e23  gcc/config/i386/raointintrin.h
! a728137ad82eb3f98566a44017f44085  gcc/config/i386/rdos.h
! 0b03bf4a6b171744b238c1b135fdc683  gcc/config/i386/rdos64.h
! 652398f3fb7dc40c4cb35502ce03d54a  gcc/config/i386/rdseedintrin.h
! 08e15c08764b5bee324848cabfc6340b  gcc/config/i386/rtemself.h
! 82c38faf8264df0ded1313e7645de996  gcc/config/i386/rtmintrin.h
! 35051822960712857af0c069286718da  gcc/config/i386/serializeintrin.h
! 60a8629180201056d4fd1968fd7703df  gcc/config/i386/sgxintrin.h
! 2d9f30221686b397a45e8938c51dce40  gcc/config/i386/sha512intrin.h
! 690dd16e9bced3fc3c1369ff2ee4b427  gcc/config/i386/shaintrin.h
! e82f2dd2df5fd204d1c7102be6f29c11  gcc/config/i386/slm.md
! 08d5f13db1cd7c969bb98534dbff9c88  gcc/config/i386/sm3intrin.h
! 70a56f513b7336a41d2b3a23877154f8  gcc/config/i386/sm4intrin.h
! 8fce480b063b9abc4081b814b0fc7e01  gcc/config/i386/smmintrin.h
! fe9eadd749e61a2279304a5617888723  gcc/config/i386/sol2.h
! deafb4fcd18279b019ca3bf59206384c  gcc/config/i386/sse.md
! b415a4e3e2cdd58a97ae395bffcb7e09  gcc/config/i386/ssemath.h
! 618acc597863bc9b3c097b7b7669aed0  gcc/config/i386/stringop.def
! 28492cc506389a3cb120d5d836a2802a  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
! 67cf4f5a13fcf71032df7aa7645b46f4  gcc/config/i386/sync.md
! d1e6b547d4ed10e1c05b4ab91bd946eb  gcc/config/i386/sysv4.h
! c6697a0fb2ad999b8899727db8e3bbf6  gcc/config/i386/t-cygming
  d41d8cd98f00b204e9800998ecf8427e  gcc/config/i386/t-cygwin-w64
  98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin32-biarch
  8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64-biarch
  633a95f7feb14d4eebe0039fa5ef4dec  gcc/config/i386/t-djgpp
! f936343730c9e4d225c56681f26381a4  gcc/config/i386/t-freebsd64
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
! acc7123a965948b0c7f3fa9129cc2586  gcc/config/i386/t-gnu-property
! e6a89c92ca622c81d4150e7d9dab2d49  gcc/config/i386/t-gnu64
! e25adf37a8a322bb645db480d136b8d2  gcc/config/i386/t-i386
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
! f989c724365d2ac7fd3911b3b29a2573  gcc/config/i386/t-linux64
  cd662e746e08a18749e8272fa759278e  gcc/config/i386/t-mingw-w32
  67bcf41f125bbec93a13ad3bd98abaee  gcc/config/i386/t-mingw-w64
  12a68576d3577a8da82089f18d60c613  gcc/config/i386/t-pmm_malloc
! 4f1e64f7cd05bd778dc57738a2c12b23  gcc/config/i386/t-rtems
! 17128865e2c2ba4f110973e67ca608ec  gcc/config/i386/t-sol2
  6c6dc6647856991d7275637384be6c03  gcc/config/i386/t-vxworks
  b80a5a4a8c8fc32ca318158abc98dc20  gcc/config/i386/t-vxworksae
! 21aacf5d3115335f81b6878839d0b070  gcc/config/i386/tbmintrin.h
! 9e74241bdfeb3bc9a030588c28521319  gcc/config/i386/tmmintrin.h
! 120ff8805d63e135ff0f4274cff4ecb4  gcc/config/i386/tsxldtrkintrin.h
! feabc72c91d4148b070d5c62e4de26ab  gcc/config/i386/uintrintrin.h
! a5b0fd352deac130c11b1297495ff74b  gcc/config/i386/unix.h
! 2e3ccd70b54aff3b716cef27e4390708  gcc/config/i386/usermsrintrin.h
  81edd33206e44c8dbcd4165f97407774  gcc/config/i386/utf8-mingw32.rc
! 0ce89504498e5037cc63642e10ce1faa  gcc/config/i386/vaesintrin.h
! 5df90a4f37add0466d180376a8ce8241  gcc/config/i386/vpclmulqdqintrin.h
! c3968df128b11784d828ed1dcd83b6bf  gcc/config/i386/vxworks.h
! c150caa47d0b627b00e8acb663e8e346  gcc/config/i386/vxworksae.h
! 64d64269da749f747dd46a89c792e634  gcc/config/i386/waitpkgintrin.h
! 033f7e15c455574ecfaabd5acc147c44  gcc/config/i386/wbnoinvdintrin.h
! f2357e8cc412988f86c50771bb83c0e6  gcc/config/i386/winnt-cxx.cc
! 876882f242f09c1925675c8c0edf0ea6  gcc/config/i386/winnt-d.cc
! 7af196c5627039797aaf359cfed41250  gcc/config/i386/winnt-stubs.cc
  b60494d53d08e39def55bcf62076b56c  gcc/config/i386/winnt-utf8.manifest
! f305dd16e570bf8b6376c07a4e9fdc49  gcc/config/i386/winnt.cc
! 9c763727a47e4a3314bc11cb35c2ec5b  gcc/config/i386/wmmintrin.h
  b4cde95b709fc93c90bf4d6b3edc7fd0  gcc/config/i386/x-cygwin
  1ab2099a92787dd158135dbcaceb0bf9  gcc/config/i386/x-darwin
  8d6956f3535d501680a321eb01dafb35  gcc/config/i386/x-i386
! 59ddc1a3e9d715cb62fa263ae8b6b7e3  gcc/config/i386/x-mingw32
! 2ae5ffde48dfad335b3a6665b95564e9  gcc/config/i386/x-mingw32-utf8
! d5cdcd16b8897c341f9a386b1f71135f  gcc/config/i386/x86-64.h
! f0a4b6f27d6023120ffbf661e1cb4e64  gcc/config/i386/x86-tune-costs.h
! e5595c37dd7b9ea4344a7be0dc5d9d5a  gcc/config/i386/x86-tune-sched-atom.cc
! 30b9c6f1a4b0b23de02c33b969a71348  gcc/config/i386/x86-tune-sched-bd.cc
! 3a8550d487a86d6a596183d13fdca950  gcc/config/i386/x86-tune-sched-core.cc
! 923f591450eeab1ebffcf2500a4cfa8b  gcc/config/i386/x86-tune-sched.cc
! 5f3a0eb32d94077a19845e2c7b5e4109  gcc/config/i386/x86-tune.def
! 53eb359a7a4854a587b6cf5ddde9a9b2  gcc/config/i386/x86gprintrin.h
! a1d442d51dcc0044d7b3e109d2bff5c2  gcc/config/i386/x86intrin.h
! a616ea353ccf63fc1b6f2254a35ee131  gcc/config/i386/xm-cygwin.h
! 71654b3cde734ebd7421186658d4c1b2  gcc/config/i386/xm-djgpp.h
! f9dfe535e493d0e00708e43ec0926e85  gcc/config/i386/xm-mingw32.h
! e94ce974a9c58f32e2d62503f864c719  gcc/config/i386/xmmintrin.h
! 97ed6bb079056c473a7db3d9dabeefa5  gcc/config/i386/xopintrin.h
! 503dc664e04c155fc074847b20d88e3b  gcc/config/i386/xsavecintrin.h
! 57b8326804a45d16090b1f02f05c36db  gcc/config/i386/xsaveintrin.h
! a19afd6e61736bdb06c67c02fc9d43a1  gcc/config/i386/xsaveoptintrin.h
! 1a0ad2f30b3df696d5d423ea9d6170ae  gcc/config/i386/xsavesintrin.h
! 39f9b78b66e13f0806e960bcb1281dbb  gcc/config/i386/xtestintrin.h
! fee804ad1f929009fe961caaccb573b0  gcc/config/i386/yongfeng.md
! 81aee71a26429b0fb3b36474068b2699  gcc/config/i386/zn4zn5.md
! 4e5576d6fc61e34e89a485dfe1ed9aa9  gcc/config/i386/znver.md
! 054241dcbf3270fcd132647c7217d81d  gcc/config/ia64/constraints.md
! f924e6addb1c14037b5b41cd5d7497a5  gcc/config/ia64/div.md
! f005952611be136b8dda4a7e324980d0  gcc/config/ia64/elf.h
! 3687a183e97f38a4993e77624245445f  gcc/config/ia64/freebsd.h
  89edd175b4bfe583ec3ee965092fd5d0  gcc/config/ia64/hpux-unix2003.h
! 625adb36634c526b802f60ef388d50e9  gcc/config/ia64/hpux.h
! 829002be6e19750576dac89b98dc58a4  gcc/config/ia64/ia64-c.cc
! 22137c93e44a5e8d05e7c03570f91109  gcc/config/ia64/ia64-modes.def
! f0c175a465564f0afd0f04b73576db39  gcc/config/ia64/ia64-opts.h
! 550d9e09ee7a25a4d5213fa294a257ae  gcc/config/ia64/ia64-protos.h
! dd7cdd538c97b343a65f190ee7fca5fe  gcc/config/ia64/ia64.cc
! 0964a742480ec8e98a70edaacb0c53d1  gcc/config/ia64/ia64.h
! 705e63bb3d213be14d286d354162a8d4  gcc/config/ia64/ia64.md
! 9c2b0e1dbb27eaf7efda79db8fe03c70  gcc/config/ia64/ia64.opt
  118eccd8e7953b64c3bbb38384de55db  gcc/config/ia64/ia64.opt.urls
  dcc77d7023d20b64688bf213c2d327b5  gcc/config/ia64/ia64intrin.h
  4b86fa74a7636ffdb9787a8643220eec  gcc/config/ia64/ilp32.opt
  c123eb5a542afae24ac8defb18f961f8  gcc/config/ia64/ilp32.opt.urls
! 922ac1905b0718884e12dbf2d11991a6  gcc/config/ia64/itanium2.md
! 8640d3a8248455c685b847ccb44622f5  gcc/config/ia64/linux.h
! 651df65fbc1ccdf87aaad3f8bacbe812  gcc/config/ia64/predicates.md
! e2b70bd381cdfe5e059ccb040f93d2ce  gcc/config/ia64/sync.md
! a00b4703649b6497dc925c4c5c1e97cb  gcc/config/ia64/sysv4.h
! 3094c1493aaf0854a5927e821ab5448c  gcc/config/ia64/t-hpux
! abbdcb5c18bc42ed83cf449e0d24f86b  gcc/config/ia64/t-ia64
  67736f64800d10923b58be4e448620d6  gcc/config/ia64/t-linux
! 4f358cbbf660825a90f2a3e29c54a026  gcc/config/ia64/vect.md
! b33efcb0e407b2e7e028c3aa80286e3c  gcc/config/ia64/vms.h
! 8c817118934c5fa373f1b0673571e4db  gcc/config/ia64/vms.opt
  58c641df71a1f8993f6e5e1bfaac466d  gcc/config/ia64/vms.opt.urls
! d6b0cc5c26e9dacced5adbacce40b62e  gcc/config/initfini-array.h
! 3b6e1fdcec47d985c8730335bd4b6195  gcc/config/iq2000/abi
! c8fe30f491acad76b1a51d5369fd9862  gcc/config/iq2000/constraints.md
! 0405316c0b0a813075f2ed481959495a  gcc/config/iq2000/iq2000-opts.h
! d403c22abb3904f78677e81d4baeed49  gcc/config/iq2000/iq2000-protos.h
! 2725fa9a68dbb036b665002739634b90  gcc/config/iq2000/iq2000.cc
! 360e7cbea50405e3a389677c1652b04d  gcc/config/iq2000/iq2000.h
! a3d1397ac1c4fa82b40c0960eaf4c9f3  gcc/config/iq2000/iq2000.md
! 30fbedcb0e72529f1c02a13d381633b1  gcc/config/iq2000/iq2000.opt
  5ddaa4d82bc6f1b1e52472e3b03c1f96  gcc/config/iq2000/iq2000.opt.urls
! ae6294f3dc578a4b4feb16410e736a64  gcc/config/iq2000/predicates.md
! d0ddfcd6d84390dcf0b035000cf6baac  gcc/config/kfreebsd-d.cc
! ebf5481d970203557ff589853fa1ec22  gcc/config/kfreebsd-gnu.h
! 42e924f68bd7d6b30a8fab5aca2a9891  gcc/config/kopensolaris-d.cc
! e6afaffab251fb0f8b22cf46304bd6d9  gcc/config/kopensolaris-gnu.h
! dab36a66eb25b8907f0d4457d379f6fd  gcc/config/linux-android.h
! 0ba0a7c656e69579844e6331fd1b65e6  gcc/config/linux-android.opt
  39159899219836ff091187e768ce6675  gcc/config/linux-android.opt.urls
! 829c65e1c72225a75d813a00ad578688  gcc/config/linux-d.cc
! 187746c54042971dbed411c718a6a865  gcc/config/linux-protos.h
! 9eaebc9087d0424e08bc3e99950ff39f  gcc/config/linux-rust.cc
! dc3640377d56fb01499872bc1ecc03f5  gcc/config/linux.cc
! f328a8172c55337baad8c39b82e7d1af  gcc/config/linux.h
! 8b60ef5177a76bae0cfee641ba8b57fd  gcc/config/linux.opt
  0e0d7a8230d05f9b8b796bdcfd935d94  gcc/config/linux.opt.urls
! bd20fcf03872ab6f5de35112dc6ad749  gcc/config/lm32/constraints.md
! 15ab6fbcc94512bb847e9ae65bffdda9  gcc/config/lm32/lm32-protos.h
! b8304fa36ec2e6636fee2333d234d3c4  gcc/config/lm32/lm32.cc
! dbcb159a1a9feb5be616555bac75f2f1  gcc/config/lm32/lm32.h
! c91bf8719ddb26916dc166fb24b92a3f  gcc/config/lm32/lm32.md
! cc68db36c7e26368cce1af309ad2308d  gcc/config/lm32/lm32.opt
  27e82783778bb7f706fa85a3c551f6a2  gcc/config/lm32/lm32.opt.urls
! 854f3eaa3f328d2c01dedd620b74adf2  gcc/config/lm32/predicates.md
! 7d884af9c9abeb9ebfc299ccd2bc9043  gcc/config/lm32/rtems.h
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
! ddefbf04240463de3ebe735c18bd3da8  gcc/config/lm32/uclinux-elf.h
! 8ed53c8d6e2ffd1c4348b1509c392da9  gcc/config/loongarch/constraints.md
! d4a731bdf01a61d063fe5c12e0ae15a3  gcc/config/loongarch/elf.h
! 17e35e205e8d128d6658e239c7abcee0  gcc/config/loongarch/generic.md
! 5fd347c4e7531711abb29b614963da64  gcc/config/loongarch/genopts/gen-evolution.awk
! 8b5533dc044a7f8d01e2c18c5c9be651  gcc/config/loongarch/genopts/genstr.sh
  6c3cb64931933c31d4984eaf2b6f69e2  gcc/config/loongarch/genopts/isa-evolution.in
! 64bc38c6fa0b420896061653328a2e04  gcc/config/loongarch/genopts/loongarch-strings
! ba884745a15d4b194d0ad2e286b0c617  gcc/config/loongarch/genopts/loongarch.opt.in
! 33ffb3b80383744cc4872c3213e50ac5  gcc/config/loongarch/gnu-user.h
! 73cc35d0159715accf631cf5373b9fcf  gcc/config/loongarch/la464.md
! 56be38a805f1110cf87ba4a7105324a5  gcc/config/loongarch/larchintrin.h
! 881d4076cff56aa10f3d974c126dcf16  gcc/config/loongarch/lasx.md
! 5843a3b53f0891806244de2ecc7ec5f8  gcc/config/loongarch/lasxintrin.h
! 82679ddaca16efc485abf4e3b347a3c9  gcc/config/loongarch/linux.h
! c7f68c7b071c7c4551378832cb02001b  gcc/config/loongarch/loongarch-builtins.cc
! c2915ef1c4a97fb652d4f7be5ae9e06b  gcc/config/loongarch/loongarch-c.cc
! fda2bfdc2de3eafec6a40c91767e52d7  gcc/config/loongarch/loongarch-cpu.cc
! 28b82a3dc53ed6429b995a5f0d0c7c4a  gcc/config/loongarch/loongarch-cpu.h
! 66d9b24f384ba4184bf0a381bb1dec9a  gcc/config/loongarch/loongarch-d.cc
! 2d3afabbc0f7ba9387da15e529bdb4dd  gcc/config/loongarch/loongarch-d.h
! 34ceb522909aece43cfb18de874e0862  gcc/config/loongarch/loongarch-def-array.h
! 4f6e1d94a7da4cda9a95e36b76ad0980  gcc/config/loongarch/loongarch-def.cc
! fcb261ab8415277a573edfcf4c726d7a  gcc/config/loongarch/loongarch-def.h
! fc08ad18c12daeb6c459e9a5da085d02  gcc/config/loongarch/loongarch-driver.cc
! 812e559b949ba7a34e3a56087a6eaa21  gcc/config/loongarch/loongarch-driver.h
! 98c48e68e1e9c13958b3b218c3d3a47f  gcc/config/loongarch/loongarch-evolution.cc
! 8bd09542013a17e1ffcdc2ccc1fc3a5c  gcc/config/loongarch/loongarch-evolution.h
! 70eb5ed91f67ab6f78dc1e60a869583b  gcc/config/loongarch/loongarch-ftypes.def
! e79a168e4a8c0322a884b11ed18cf218  gcc/config/loongarch/loongarch-modes.def
! ea6cc43b3fa3313db4228947eed2152e  gcc/config/loongarch/loongarch-opts.cc
! 8869aeb1ace55d4ee67306c723b6069c  gcc/config/loongarch/loongarch-opts.h
! 3ce5af4b5c069929ba519548d5342e90  gcc/config/loongarch/loongarch-protos.h
! 3b7b410fd2ede1c56c692fa390a8d415  gcc/config/loongarch/loongarch-str.h
! 2088d1b3164d3464806a7627d2fd6e52  gcc/config/loongarch/loongarch-tune.h
! 4e25db701943099b9dbd355639325718  gcc/config/loongarch/loongarch.cc
! 39c8662694bff1c4d52f90cba43e5048  gcc/config/loongarch/loongarch.h
! c88b641f0a3549ec0da381782d77362b  gcc/config/loongarch/loongarch.md
! b62396c60e7bd1b4de8956c5869d45f2  gcc/config/loongarch/loongarch.opt
! 93b3f21362e888da73ecb40a067439a3  gcc/config/loongarch/loongarch.opt.urls
! 610d8713bd4eb38abda34a06061ffc4f  gcc/config/loongarch/lsx.md
! eb98ea748bc7c12155011e9bc8010d92  gcc/config/loongarch/lsxintrin.h
! 42270d3318bceb069807243f3475a89f  gcc/config/loongarch/musl.h
! f6fd546f0f47cd5d43b7f1082da4ede6  gcc/config/loongarch/predicates.md
! 138112a675b6ccd0771ba1d45c0ee01e  gcc/config/loongarch/simd.md
! f4de53ee085303195a3c4eb57c3663c6  gcc/config/loongarch/sync.md
! 49279b28d5c2ec9c67b9f93840713af2  gcc/config/loongarch/t-linux
! 88690e1c28b92ae6052572c149de682f  gcc/config/loongarch/t-loongarch
! c66140ad2bf9766f3bfcda799820b9c1  gcc/config/loongarch/t-multilib
! 44737d9371a379fdedc85521d56a26ed  gcc/config/lynx.h
! 2b07db74c2bc46e1c2dc5f7c0dc42dd4  gcc/config/lynx.opt
! afc69cd739436bc4e0717055a4003453  gcc/config/lynx.opt.urls
! cc06558c6d947e120d12951e887f7267  gcc/config/m32c/addsub.md
! ac4741fd79d772d4812570c823378ed9  gcc/config/m32c/bitops.md
! 4d877df7db8df59d9bca882eead13dfb  gcc/config/m32c/blkmov.md
! 0e859ae548d1bb3c612371438fe67b33  gcc/config/m32c/cond.md
! 1444277fa57ed55dd9e3bcf8a6de88b6  gcc/config/m32c/constraints.md
! 138f537070e4aa27912dd751c5911512  gcc/config/m32c/jump.md
! 7d7f337d8d87e2b2b0664563383e85c3  gcc/config/m32c/m32c-modes.def
! c961d4b132cef034bcc20324d1553b83  gcc/config/m32c/m32c-pragma.cc
! afc6bbfc4c3be2328eb4548704590fdf  gcc/config/m32c/m32c-protos.h
! edf1631304088efdfbf28427a3f216ec  gcc/config/m32c/m32c.abi
! da25cede21483b44b595c41a14947b66  gcc/config/m32c/m32c.cc
! d7e53f47b668b894551c734e51c02268  gcc/config/m32c/m32c.h
! 7ac5e8647dca9bac7a89414ce5d84084  gcc/config/m32c/m32c.md
! a1a0658613a42371b176f2a8f1195f56  gcc/config/m32c/m32c.opt
  b6d95155757f26bad53a0223afa9f6f9  gcc/config/m32c/m32c.opt.urls
! 48125469433ab623b4db905f1aaca5a4  gcc/config/m32c/minmax.md
! 281815771bd4806acbd2cc044c64ac6c  gcc/config/m32c/mov.md
! 553379fc1ec3588454b6ece8ad20a95e  gcc/config/m32c/muldiv.md
! 978aa843996e6682395f702983b7ba7b  gcc/config/m32c/predicates.md
! 4f9793f3595ca91ab7b5a8e0a8257251  gcc/config/m32c/prologue.md
! c3187943e5d6adace3f81d1d3b66c5e4  gcc/config/m32c/shift.md
! c9a5aca87fcef30d34b2b4f6b9898fd8  gcc/config/m32c/t-m32c
! 2a1fe32f4862dfe450bbdb57c9fbf4c6  gcc/config/m32r/constraints.md
! 8576b0774063c02d581763d64d26b4c4  gcc/config/m32r/little.h
! bfb5ec1bdc9c8473f672e116db07ac1d  gcc/config/m32r/m32r-opts.h
! d87c49b68c70c42bb6990afd5585e5e2  gcc/config/m32r/m32r-protos.h
! b1f658b2070856edbb6b240088577f3f  gcc/config/m32r/m32r.cc
! c4bcdab9a7277c04a7e5cd20077a51ab  gcc/config/m32r/m32r.h
! 199b017ec186650203e74b87cc758c7f  gcc/config/m32r/m32r.md
! bb3c9b4233d371856654ed885ce36122  gcc/config/m32r/m32r.opt
  1b619e144313c0fbf5062c63561ad744  gcc/config/m32r/m32r.opt.urls
! e4077aae4949243a8492c08db966b441  gcc/config/m32r/predicates.md
! 88b6e4b3f8cf0776d6752c733ec39829  gcc/config/m32r/t-m32r
! 665eae2064c5039aee6c2055e2cdb91c  gcc/config/m68k/cf.md
! ec52555da918ac16e66a80705989a509  gcc/config/m68k/constraints.md
! 154fe6ddfa77a76d99f07b644c370f76  gcc/config/m68k/genopt.sh
! bc7d245e51d920de152b9f0312ca5236  gcc/config/m68k/ieee.opt
  1778e9d0151397001871eb8aa31c7878  gcc/config/m68k/ieee.opt.urls
! b4926b36560a5cf68933841d9e2ea60c  gcc/config/m68k/linux.h
! fcb3de0870049a8bd129cd9686b71c7f  gcc/config/m68k/m68020-elf.h
! d30d0a8c52a44c3ca83028b08f2041ca  gcc/config/m68k/m68k-devices.def
! 7aed6cedb22bdbcef50d06a320782e3c  gcc/config/m68k/m68k-isas.def
! 141df1e269eac47ee3a60f443e966444  gcc/config/m68k/m68k-microarchs.def
! 153c5f8a2cf7147624e85f610e58b018  gcc/config/m68k/m68k-modes.def
! f0050e0578ea248709da0e78aa7ac914  gcc/config/m68k/m68k-none.h
! 2bd01481ef37a4f52b2572481318f922  gcc/config/m68k/m68k-opts.h
! bad20a8b37f052ff97180a14d49f89e4  gcc/config/m68k/m68k-protos.h
! 3929b33774fc15aa7bfe3935cc087d11  gcc/config/m68k/m68k-tables.opt
  76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
! 9feb17e9c8a3c1c0a1eef42622cd102a  gcc/config/m68k/m68k.cc
! f49edd3f675eea03a1051b64ac1a13a8  gcc/config/m68k/m68k.h
! ac686d0bd876ac2a91a65abcd83c0472  gcc/config/m68k/m68k.md
! e33af36900fe32d942453ef989511212  gcc/config/m68k/m68k.opt
! 1b484866a4d9be4c37b6b22672bca525  gcc/config/m68k/m68k.opt.urls
! 937a196ab71b9e1fd6af76c4f77c9e60  gcc/config/m68k/m68kelf.h
! 42b3dc9fd3d8f804df9ad478df82d3d2  gcc/config/m68k/m68kemb.h
  c0472199959f16fcb58702880954da6e  gcc/config/m68k/math-68881.h
! 39f3f5ee61edc0eacda5b42ca506b968  gcc/config/m68k/netbsd-elf.h
! c941afb1ee79c40deb73d109979a4d68  gcc/config/m68k/openbsd.h
! 9b330551bd8a9127046ad45fd3c82170  gcc/config/m68k/predicates.md
! e8319ec86e81de4ed3bd8ef96134de17  gcc/config/m68k/print-sysroot-suffix.sh
! c5b7048a3e46235c2c6cf2b8b6d1cf72  gcc/config/m68k/rtemself.h
! 0cc8fe39827e3c1ce9bcfe9eb3f278e8  gcc/config/m68k/sync.md
  19d5ed41f3394c9423ff3afe64804076  gcc/config/m68k/t-cf
! d14e631e36cc0037efdf0944dbbdd6cf  gcc/config/m68k/t-linux
  baa4595148bafa6426b8d665881ced45  gcc/config/m68k/t-m68k
  c8278c25339f71d746d91a193efd6cea  gcc/config/m68k/t-m68kbare
! 0cd8357c565eddfcca6fc24b205f19ed  gcc/config/m68k/t-mlibs
  0fd519d41689e5af998ca53a2f11e7d2  gcc/config/m68k/t-openbsd
  2919d876e31e6c4e0955d8cd4be5ce28  gcc/config/m68k/t-opts
  2899d62cd61c46fe504594a232959581  gcc/config/m68k/t-rtems
! 83bbc8c6f22b08c0a679258219047091  gcc/config/m68k/t-uclinux
! 94042d0e845f8e39820af6bd9a27fd50  gcc/config/m68k/uclinux.h
! e05601a09cf8d7a4cd79b6f537546b6f  gcc/config/m68k/uclinux.opt
  99a98298f0811865fcd36b2173e92323  gcc/config/m68k/uclinux.opt.urls
! db6705ff0956c05ac15f5da009804f97  gcc/config/mcore/constraints.md
! 5fbb7be0d1a2c09178da102c8d9ec9e8  gcc/config/mcore/mcore-elf.h
! 61a6a8ec74c559870400224c47ef15c4  gcc/config/mcore/mcore-protos.h
! 983c9530b9dcb30f42683908a2274fe6  gcc/config/mcore/mcore.cc
! 6cc29a4e233b55fde35a3855569b3b17  gcc/config/mcore/mcore.h
! 81d7a639bf3bd767d9ff5956f2ca4013  gcc/config/mcore/mcore.md
! 45cd11eb64fb2239a5a8be90327a7cec  gcc/config/mcore/mcore.opt
  cb26f6c0709fd9533aec72a07a36bf8b  gcc/config/mcore/mcore.opt.urls
! 225dc655e791eb82bc0cd5477d84046f  gcc/config/mcore/predicates.md
! 1dd06ef15dd426381100de36055c51d7  gcc/config/mcore/t-mcore
! 82487fb2fbd50cb690ac1b406b085737  gcc/config/microblaze/constraints.md
! 9b8779320526aa5f273de983bdc206ce  gcc/config/microblaze/linux.h
! ef3714e630d226fc9f9a52d072ae6d49  gcc/config/microblaze/microblaze-c.cc
! 5b4dece5790de432c81f12521dc1c3f8  gcc/config/microblaze/microblaze-protos.h
! fe73a15d0d3e7f53d281ee102dfe15fa  gcc/config/microblaze/microblaze.cc
! 15444436357947286ccf30f90e3a28c8  gcc/config/microblaze/microblaze.h
! c16b6c77f514fb5e2247d16dcfcc5b22  gcc/config/microblaze/microblaze.md
! 38180380f0c251974ab87d52c6680c1f  gcc/config/microblaze/microblaze.opt
  ab7ecb87ef3b7a388cab0e4d0d2eb0db  gcc/config/microblaze/microblaze.opt.urls
! 6122aa8145720d14b86bdf0e7a6171f5  gcc/config/microblaze/predicates.md
! 24cc98144fc2514eb9d0a4959efcba46  gcc/config/microblaze/rtems.h
! 8abeae4e9debaaeb4950f5fdff621fbc  gcc/config/microblaze/sync.md
  df031372af9c825d21d2058d266247a0  gcc/config/microblaze/t-microblaze
  63ccba4e7f745d36609d7c129bac6288  gcc/config/microblaze/t-microblaze-linux
  a8b08640136e3e7712d2278eb84c21d9  gcc/config/microblaze/t-rtems
! 17809591fbbce21debf8a6efeab94fdb  gcc/config/mips/10000.md
! 08655b1d4e9446c9e40d04b1d1718d1a  gcc/config/mips/20kc.md
! 8d1cf07185841b9b63f772776c7b3ab6  gcc/config/mips/24k.md
! f0ddcbd409ef1899d431b9de7073d0ba  gcc/config/mips/3000.md
! 3ae467e5d3ca13212fcfafc0989d18fb  gcc/config/mips/4000.md
! 88d1da6fe56e11a7b56e37c0ccf644b8  gcc/config/mips/4100.md
! c98ab5ee95c9c98be3ecb2bcadb44510  gcc/config/mips/4130.md
! 7c276b30041af4c7b9e73ab46bc450f3  gcc/config/mips/4300.md
! 2829c29936971ba12471438afabb3fb5  gcc/config/mips/4600.md
! 9fa7a89c6f61a74625fe4b552b7a99ab  gcc/config/mips/4k.md
! 7bbdeee0a8fa1d592332e09923e7fb91  gcc/config/mips/5000.md
! 3598b04c8f7f7cc4b4544e81aefeb593  gcc/config/mips/5400.md
! 86009bbd1007a3a69da7ec085a5a97b5  gcc/config/mips/5500.md
! a69516fe6f0134c71c551370d44a3cd7  gcc/config/mips/5k.md
! d03f856f14ccca15cbebf4e69f5688ed  gcc/config/mips/6000.md
! 0084d4184d21c90c2a5252b67a18f5d8  gcc/config/mips/7000.md
! 54e28d6f6f74a17487de37a3ff4f09cd  gcc/config/mips/74k.md
! 29ab9120615bd91e4b1fda2132901083  gcc/config/mips/9000.md
! c70e070fe046bb1b573fcd4c3abbb40e  gcc/config/mips/constraints.md
! 3b3fc22ecba65d919ba8842d1eb34f11  gcc/config/mips/driver-native.cc
! 3e5112f2672868f86f0e465215739f51  gcc/config/mips/elf.h
! 3f1661b132c0cf0b53c3c7842b13b817  gcc/config/mips/elfoabi.h
! 3a911d4c9980d24556dd15f8da3481bd  gcc/config/mips/elforion.h
! 3043d7dba47ce25217106dbd1a5c5d2e  gcc/config/mips/frame-header-opt.cc
! aef501feadb06e3cc87199ad5dd56206  gcc/config/mips/generic.md
! 792325924eb1df3a1c45051a775136e6  gcc/config/mips/genopt.sh
! 7e1db6fa14290df1accdb28c892f5bbf  gcc/config/mips/gnu-user.h
! 0652c135f70542b2413a3b14f15ddad8  gcc/config/mips/gs264e.md
! eed7898eef53fd6ff626edb3a7ed4313  gcc/config/mips/gs464.md
! 2ce879d4de2bd31d99f4fa2c846604fe  gcc/config/mips/gs464e.md
! 8f741b9024b10212d8f77662cfeb0968  gcc/config/mips/i6400.md
! 392a0512b858934bda329cd273b93157  gcc/config/mips/linux-common.h
! 70c427f5155e8f11cc5109ad93055ee9  gcc/config/mips/linux.h
! 32946bcb3ab95efaa34b8553f9c875af  gcc/config/mips/loongson-mmi.md
! 6275cffb585afce53102ddc7fe7b9b75  gcc/config/mips/loongson-mmiintrin.h
! 405c8322580020c576a216df475ad9fd  gcc/config/mips/loongson.h
! 5ed0af5b4dcc3451a7481bdf3077d03d  gcc/config/mips/loongson2ef.md
! fb7afe3088913e5894f91f98bb725ba2  gcc/config/mips/m5100.md
! 30fde310cf197e3c03c206113681cf9e  gcc/config/mips/micromips.md
! 5cfff6f5af96d8a1bfb8cbe15b31af6c  gcc/config/mips/mips-cpus.def
! b0483ae8e8a3754819ce55ed750a1122  gcc/config/mips/mips-d.cc
! 3556b331ea1e7e4b0a711c1f4fb24224  gcc/config/mips/mips-d.h
! 6bc23f22218f9dd28ecc8573b85c2654  gcc/config/mips/mips-dsp.md
! a13edb3add986a3d277ff8d9262d2a8b  gcc/config/mips/mips-dspr2.md
! 169f3b68c79c428232d66c5e105684cb  gcc/config/mips/mips-fixed.md
! f2090b05b2caf339e85c589af39b7fa0  gcc/config/mips/mips-ftypes.def
! 5a9d89470d3619ad8152e9ccd8859b68  gcc/config/mips/mips-modes.def
! 8b290236ab9c0b10e041be0026e71955  gcc/config/mips/mips-msa.md
! 2349db6533263c062b2ee9d7dc63d041  gcc/config/mips/mips-opts.h
! 03210467518a18a3616f74b541334ad2  gcc/config/mips/mips-protos.h
! d5588f0317ad62fc020d826f6a2dd0ef  gcc/config/mips/mips-ps-3d.md
! 157df9f74e372fdcbd4d925f0840421c  gcc/config/mips/mips-tables.opt
  216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
! 50975c29bac9e5ed1b435bd4511a5b78  gcc/config/mips/mips.cc
! 4860e4167a0d35efb3d34f92f18ca25e  gcc/config/mips/mips.h
! e77aa0fac9fc66ac733052149481cf85  gcc/config/mips/mips.md
! 921f6350343da4a30cfa791983946fdc  gcc/config/mips/mips.opt
! deba20e974d1341625f1e9dc83a6853e  gcc/config/mips/mips.opt.urls
! 731baf4e2b268d2675c4aa3438b6220f  gcc/config/mips/msa.h
! d9aa2f8e313354d95544c656bf98e206  gcc/config/mips/mti-elf.h
! dc1939cfb14e0a325a67ec85535d32bb  gcc/config/mips/mti-linux.h
! 9502906afc22447f5ec96736b2c43a1d  gcc/config/mips/n32-elf.h
! 112660dd4cda8c99af19b37411256e03  gcc/config/mips/netbsd.h
! 53a7bd62d2b07d1f8cd290d4a7157ab7  gcc/config/mips/octeon.md
! cc1f6f48a2dd1945226eef3a197d007a  gcc/config/mips/p5600.md
! 2639ddd439764882c462d2875be20ecb  gcc/config/mips/p6600.md
! a02cb57b4e272d0955b64817bd3b88e3  gcc/config/mips/predicates.md
! 1957db17f7429ff5c33a19fd20173df5  gcc/config/mips/r3900.h
! 16bb11f026d0645a53108b7ab92a665b  gcc/config/mips/rtems.h
! 148f0a2cd5a5928208012a34231c4aa7  gcc/config/mips/sb1.md
! 3ec93e2f31d733ff8e8c5d1ff271217b  gcc/config/mips/sde.h
! 5ea8040960e3e6c822b3208b9dd7f575  gcc/config/mips/sde.opt
  b071da46f4d4d78223b4f2ecf6d3895c  gcc/config/mips/sde.opt.urls
! 7ff291a027b983a394a130b350642348  gcc/config/mips/sdemtk.h
! d2d45060118750c15fee2316faf3c359  gcc/config/mips/sr71k.md
! 352bc9a44675057accdb27bf999cd151  gcc/config/mips/st.h
! 9a76e8e0c46e7487df53b331efeeed78  gcc/config/mips/sync.md
! d14e00ce2a674f906c7aa45001d83b5a  gcc/config/mips/t-elf
! b62c113c5a89321b53ea16cbd1fd24f1  gcc/config/mips/t-img-elf
! fb89f16c6cfea4421ba1264e91dfc3ad  gcc/config/mips/t-img-linux
  f99fd825138aaee60804b8915e20d22e  gcc/config/mips/t-irix6
! be52788b991afbb8b49a5f28d3db875a  gcc/config/mips/t-isa3264
! 920906125ed0f4025d9d389494799839  gcc/config/mips/t-linux64
! 94873f1ab49e5682319ccfe9de0f4f96  gcc/config/mips/t-mips
! 39b9dab7afd3e88b7a24f391dd0c2478  gcc/config/mips/t-mti-elf
! 672ce6019afdf13b4d8f3f061692fc9c  gcc/config/mips/t-mti-linux
! 3f7118d002598fe152fcc132bf83e591  gcc/config/mips/t-r3900
! 11a5010f087742d3c454da01d1ac48c9  gcc/config/mips/t-rtems
! c32eaa8601ecfdd2c7ccf5e467618a7a  gcc/config/mips/t-sb1
! 84ad794809c2aa903dedb6d2bb7d24d3  gcc/config/mips/t-sde
! 4e8bd34b313d86a66ce1e4dfdc9fca90  gcc/config/mips/t-sdemtk
! 1211b865ae0b0a398bd39600bd76ebe6  gcc/config/mips/t-sr71k
! 49a8ba150f55d77ffb0a41cf8162365f  gcc/config/mips/t-st
! 9da2cc30278f77197243c06680dfdd84  gcc/config/mips/t-vr
! 58419547866099357283a8eb84792dfb  gcc/config/mips/t-vxworks
! 35bb99bca21f62d8ee4c99bdd7ce3b2c  gcc/config/mips/vr.h
! a4e5b4717bd82deb9691ae0adeb9b548  gcc/config/mips/vxworks.h
  06537756ff14579bc850163a24d5a2f8  gcc/config/mips/x-native
! dacd17169d06c28223bad2a385ad9234  gcc/config/mips/xlp.md
! 1c0e2cac386e13f472ae802bd1b93d99  gcc/config/mips/xlr.md
! 3e535f054466cf636d53974ada89f456  gcc/config/mmix/constraints.md
! 40c76434e0fbd451425b228206664b57  gcc/config/mmix/mmix-modes.def
! c29f468c455bed3857ad344f6f42029d  gcc/config/mmix/mmix-protos.h
! 80e2488f394abffd32c728e5cda2cb20  gcc/config/mmix/mmix.cc
! 258ff83c61e745365986d98366ce97bc  gcc/config/mmix/mmix.h
! 0ad7f6a5ef943e2b42930a638bde204e  gcc/config/mmix/mmix.md
! 85ff385860b2f98c4640d416986db785  gcc/config/mmix/mmix.opt
  1fc4fd001702b5999b134c729b9437a5  gcc/config/mmix/mmix.opt.urls
! 8a6e491f3b2592d384dffc171fe24604  gcc/config/mmix/predicates.md
! a31e7d26c011348ab5d8649acd7b0b43  gcc/config/mmix/t-mmix
! 80c0e5a47ffd8c6087df9725b7a7354d  gcc/config/mn10300/constraints.md
! 3bc4caf267e9caf22b2b3bcc1f2ccb87  gcc/config/mn10300/linux.h
! 287e61bd6a9efaacc7dfcd40bd6ab635  gcc/config/mn10300/mn10300-modes.def
! 9c76ca0e2f688b42c0c981d358174f25  gcc/config/mn10300/mn10300-opts.h
! e63de4dd27bde006eff838387dab14b4  gcc/config/mn10300/mn10300-protos.h
! 6955315bcbcdb6dddab26da41b343bcc  gcc/config/mn10300/mn10300.cc
! 1abb3745669199701f801869497c2ba0  gcc/config/mn10300/mn10300.h
! d60ab4f16722ff07d74f5e95f38adc60  gcc/config/mn10300/mn10300.md
! 5ce97afb54839e478bb02b4d1ad4436f  gcc/config/mn10300/mn10300.opt
  84e37d8a4a927311a81a258b6fbb6d2d  gcc/config/mn10300/mn10300.opt.urls
! b64bfbee7c3271ef1bb054fc385e9bdf  gcc/config/mn10300/predicates.md
! 834ab12ce66144e3236e2e9f8c5a337b  gcc/config/mn10300/t-mn10300
! 6438e915e98edbd4ba087b8b0703a136  gcc/config/moxie/constraints.md
! 1f0465f09c78d694d92c92e0a0a9fe31  gcc/config/moxie/moxie-protos.h
! 964aa3119ec82d1ccc84387dd5943790  gcc/config/moxie/moxie.cc
! 9efc4dd203d80e990a7b3168067f472e  gcc/config/moxie/moxie.h
! 6fa70dcf5a4b0e80d3f5d3eb1f6131be  gcc/config/moxie/moxie.md
! 0daf03d5688c9ce42d377b62c1139752  gcc/config/moxie/moxie.opt
  3760ae8613d750b00a08d88bdd2f1ce0  gcc/config/moxie/moxie.opt.urls
! d488239681cf2a8f27d505a580fc3ead  gcc/config/moxie/moxiebox.h
! f40ed67eaeca956649cf553a47ce938a  gcc/config/moxie/predicates.md
! 0c6a6f1485c61719508a1580d6cd16c6  gcc/config/moxie/rtems.h
! 55dca34f9ef7192d4d00e3137cb2190e  gcc/config/moxie/t-moxie
! 54a303974ba00c7699cd8340508ce10c  gcc/config/moxie/uclinux.h
  f276505b774e975b88b6c90362783e73  gcc/config/msp430/README.txt
! 1358a32909e3fe9a8de470e4281e3bdd  gcc/config/msp430/constraints.md
! b85e98cec382a2a80f0b42d81dc6da48  gcc/config/msp430/driver-msp430.cc
! 859de6618bae4bb6933de06fadb77c8f  gcc/config/msp430/msp430-c.cc
! 3f21a07ab45fa4f278a1af580e9dfe19  gcc/config/msp430/msp430-devices.cc
! f3769e3f1b68739dd29c83ffc781fc2a  gcc/config/msp430/msp430-devices.h
  e081143def3cf3a59cd1181fc9162d41  gcc/config/msp430/msp430-modes.def
! 43dce80c06d480124fed813c65928657  gcc/config/msp430/msp430-opts.h
! dc16dc8d8b4d8a079d147e487b3d42f5  gcc/config/msp430/msp430-protos.h
! 001211c171dc9609fe9e2a1bdbbf5138  gcc/config/msp430/msp430.cc
! eb8a46e1e582f089a08db2bbb3b0553b  gcc/config/msp430/msp430.h
! db2ab006f79181b00d56652933080942  gcc/config/msp430/msp430.md
  a20875cf634836537faeacfb5a4f59d1  gcc/config/msp430/msp430.opt
  ffac48d9c1c0b7c08d6358c02254559d  gcc/config/msp430/msp430.opt.urls
! 46f95093b7c8e7cb519a1699be158dde  gcc/config/msp430/predicates.md
! cab42af5db3f8cfb8a6565d40973bb75  gcc/config/msp430/t-msp430
! 5445a1cbd913f532b1f66da9341bb231  gcc/config/nds32/constants.md
! 82ce0c12dbf14d8e57bd246d44a1e029  gcc/config/nds32/constraints.md
! 646ca5feea374809640e179a16a6a9a1  gcc/config/nds32/elf.h
! 598d7054949b1fe7d3269f0d6eb41bd5  gcc/config/nds32/iterators.md
! 47ab76028d47628cf518ae5eb96126d3  gcc/config/nds32/linux.h
! 13204f1c16a06396f6b896e264367ab1  gcc/config/nds32/nds32-cost.cc
! bfdc1bbc075ff8534f3019051574549d  gcc/config/nds32/nds32-doubleword.md
! e4c70889df77b91d82c68251424788d1  gcc/config/nds32/nds32-dspext.md
! 5669a23ba0c4df1f910fbf6f1f2c8526  gcc/config/nds32/nds32-e8.md
  c316334a86026beb55e5c25b4b855f95  gcc/config/nds32/nds32-elf.opt
! f18342139ac271b2b26de15ee1345316  gcc/config/nds32/nds32-elf.opt.urls
! ebe6074fecadba9edb0635584743a1be  gcc/config/nds32/nds32-fp-as-gp.cc
! d9f18cff53430f8b3c92a119fcf088bf  gcc/config/nds32/nds32-fpu.md
! 22ea6fc7d58be484fea0e89740fa0785  gcc/config/nds32/nds32-graywolf.md
! e0c278b22fdfc5f735c5a2dd9676826d  gcc/config/nds32/nds32-intrinsic.cc
! 35e3cd204ff4039aae66502297a8bbea  gcc/config/nds32/nds32-intrinsic.md
! 4c3c4ed9284e35c608c766e7f0a8ee31  gcc/config/nds32/nds32-isr.cc
  d94163fd5e4660359b8b12a0d90ed1bd  gcc/config/nds32/nds32-linux.opt
! 719e4aabef7a328f098e59ff93acec20  gcc/config/nds32/nds32-linux.opt.urls
! 4c649d1c23cea7bb7c497b7bf944a509  gcc/config/nds32/nds32-md-auxiliary.cc
! 242d5cf5641a9ab1d7abb681379bd9f0  gcc/config/nds32/nds32-memory-manipulation.cc
! f5ca243858c6977f061c3b77ffe64b36  gcc/config/nds32/nds32-modes.def
! 780196c4ba58a424968968f944b73fbb  gcc/config/nds32/nds32-multiple.md
! 90df7a8ed408360d3b43c1c8c72ad9c5  gcc/config/nds32/nds32-n10.md
! be4240b3a91be59e7c50138572ab9155  gcc/config/nds32/nds32-n13.md
! 76a2337f60769892ae1dbd020d37ee4b  gcc/config/nds32/nds32-n7.md
! 683ada44ce41c84ecb67a740cbdaf78d  gcc/config/nds32/nds32-n8.md
! bc550973ca1e27fca3363ed86273afd0  gcc/config/nds32/nds32-n9-2r1w.md
! 3976c3fd9a232b6de63b914cba30fc15  gcc/config/nds32/nds32-n9-3r2w.md
! e1bfe6b71c3dfbdbb8ddedd5c7a6741f  gcc/config/nds32/nds32-opts.h
! e8cd28ff7616f6394a9ebd5905081727  gcc/config/nds32/nds32-peephole2.md
! 3817d764cbae9999496694edce2d3f00  gcc/config/nds32/nds32-pipelines-auxiliary.cc
! ef27ac9b2893b44ff08fc310b082ef9e  gcc/config/nds32/nds32-predicates.cc
! 90cf3373424b6f7822cbe45ff10dc93a  gcc/config/nds32/nds32-protos.h
! 0af1f3c3fd4a3db68bb43fcf136cb612  gcc/config/nds32/nds32-relax-opt.cc
! 0b583d4b240716664c4cfe26cdf5dd0b  gcc/config/nds32/nds32-utils.cc
! bba4e7b6f24c91a5c59aa96285fa9f95  gcc/config/nds32/nds32.cc
! f404dc7927596e68c8e205f39023308a  gcc/config/nds32/nds32.h
! 6e4a02350c7d18b551c61ae40579d2d2  gcc/config/nds32/nds32.md
! aebf38af043e0038787a2f648af2be64  gcc/config/nds32/nds32.opt
  0a4b950a741ef3f9364b2178341bf6ae  gcc/config/nds32/nds32.opt.urls
  c09acceb380f58ddb795ee3e973945d7  gcc/config/nds32/nds32_init.inc
! 4625e9f4a74af3711e4c6dd8475e268b  gcc/config/nds32/nds32_intrinsic.h
! 8ebf04fe6544d8d775ca89ba0d46069e  gcc/config/nds32/nds32_isr.h
! 81644572e19bd81e5f9cc5b2762a4074  gcc/config/nds32/pipelines.md
! b3c99a725ab0a1ed9bc8628e004e48e4  gcc/config/nds32/predicates.md
! 9f6f594f1a02037e38476fbdf1dc1333  gcc/config/nds32/t-elf
! a02589bbafcfffa03e40b96741fc841d  gcc/config/nds32/t-linux
! 329bc98ad6347ced89f257cc4c276289  gcc/config/nds32/t-mlibs
! a82aa04e8d61dcb3b79ff4b349893562  gcc/config/nds32/t-nds32
! 0a0f2c7292a8c2541e602f1cdcdc44fa  gcc/config/netbsd-d.cc
! 194bf0cc394eb1d7dbbf0efc01ecab77  gcc/config/netbsd-elf.h
! 39feaa4d276eeaec3dc68ac29e91073c  gcc/config/netbsd-elf.opt
  1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
! dcb36e46a5f7f83ddeb3cd4dc07b426d  gcc/config/netbsd-protos.h
! 271655352eff23eb66b968c7a6bcd74e  gcc/config/netbsd-rust.cc
! 0700808b6ba1440db61f9bf19e2073d8  gcc/config/netbsd-stdint.h
! ccef1440d8b02196f64dd199c872307f  gcc/config/netbsd.cc
! b77fe142b3c34e2ffc032cb177dbecde  gcc/config/netbsd.h
! 5c0d7b5e6159759096192baddff30adc  gcc/config/netbsd.opt
  2d8ddf3cb6445f1f788bf4c1f6f61300  gcc/config/netbsd.opt.urls
! a01bdbfe2529860c96a5588b899676ab  gcc/config/newlib-stdint.h
! a9c0caa5eab21c78dca08b1796cf1b1c  gcc/config/nios2/constraints.md
! dc85b7cfc8e4cba2460de105960dbe42  gcc/config/nios2/elf.h
! 770902e068686f6738be3cf67ded7242  gcc/config/nios2/elf.opt
! 4e415540231006f457c7fc54a6e99816  gcc/config/nios2/elf.opt.urls
! 849cd78aa2cb71df0185558f0fa9cd48  gcc/config/nios2/ldstwm.md
! b5ab281fbe51df5751de03e6ddaa4f62  gcc/config/nios2/linux.h
! 6d9cde397eafabe3919f02702f96590d  gcc/config/nios2/nios2-ldstwm.sml
! 77ef996ea29e1f516f5228866c36db58  gcc/config/nios2/nios2-opts.h
! 1fe008e750b7b153c58205e86087f284  gcc/config/nios2/nios2-protos.h
! dfa96a1763efa79462f4adc2f55671f9  gcc/config/nios2/nios2.cc
! 30c004ffa2de3ae1681a78f01c44c3cd  gcc/config/nios2/nios2.h
! 8cbaa3a6614cb0ad87ca2950d8ec9eed  gcc/config/nios2/nios2.md
! 7f62a6a895a9df2ac222da215d2aa916  gcc/config/nios2/nios2.opt
! 159531fefd516aaea05290c9f1ddbca6  gcc/config/nios2/nios2.opt.urls
! cd1726be72fe694fa4fbcabdc3d4a87d  gcc/config/nios2/predicates.md
! bb676c0ea92e8d245ca93f77ebf10724  gcc/config/nios2/rtems.h
! b7030e57163261f008a7c582240e65fb  gcc/config/nios2/sync.md
! b94ba58d7929315a19f45a1026989c44  gcc/config/nios2/t-nios2
! 3369cb7fd894ad0eaae773a6ab4a00dd  gcc/config/nios2/t-rtems
! 03c23db1a4a517dff10c27da9593d1cf  gcc/config/nvptx/gen-copyright.sh
! dce785a0f9985c1153dc4ed6b0f632dc  gcc/config/nvptx/gen-h.sh
! 53c52fe254ffa5f57da90ac520262852  gcc/config/nvptx/gen-multilib-matches.sh
! 97eab4243fce1294e870085e7b71341d  gcc/config/nvptx/gen-omp-device-properties.sh
! a4c6fd4aaa811c8e040c15c56863e0bf  gcc/config/nvptx/gen-opt.sh
! baddea398212f18b17285b3fcadad0e3  gcc/config/nvptx/mkoffload.cc
! 1e342f11ea167537962a1103cfc6de69  gcc/config/nvptx/nvptx-c.cc
! 0796d961c0a76716c7c10f62c4cb1e0e  gcc/config/nvptx/nvptx-gen.h
! f19f579bcdee26d62bab821d45729ef5  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 2d39d9bb8a06adfa5f063f2273d83530  gcc/config/nvptx/nvptx-opts.h
! 5e5aad03a6e4f52add0dfb3caa22a812  gcc/config/nvptx/nvptx-protos.h
! 7d3534711d4135ef43d3ed23b7b0e862  gcc/config/nvptx/nvptx-sm.def
! 79443a5147b8055edb9512e642b94c62  gcc/config/nvptx/nvptx.cc
! bfec65923e6c17cb359eddfe8b0b41ad  gcc/config/nvptx/nvptx.h
! 2ac86ad52b9353c177b042069552f562  gcc/config/nvptx/nvptx.md
! 8e59803d94be8613c34c8dc2ed71cb57  gcc/config/nvptx/nvptx.opt
! 9f6a6bd81fd60202f0fc899508209227  gcc/config/nvptx/nvptx.opt.urls
! 9e15c83dca398907bd00fa803301d67a  gcc/config/nvptx/offload.h
! 64e41b90884bcc60ef49490cc20e0fc1  gcc/config/nvptx/t-nvptx
! bc001c03517e71a9f90411d80f0f2134  gcc/config/nvptx/t-omp-device
! be403cddc9907da37c08fa6e8daa7de8  gcc/config/openbsd-d.cc
! 8d0b2f528461ac753a0e5bd2ad1d7cde  gcc/config/openbsd-libpthread.h
! 985adf48731900a0cc2bc15179e2b525  gcc/config/openbsd-rust.cc
! 3d4a70d0decf61f1fba17df545cea7f5  gcc/config/openbsd-stdint.h
! 8e72268f56f6e7215f16a8a44f6b678f  gcc/config/openbsd.h
! 839d1656be1c65df8b39bbfe23dc531d  gcc/config/openbsd.opt
  f2528020fcdc72755829904c1e2bd9cd  gcc/config/openbsd.opt.urls
! 93afb5c37280d7057d41f97cb9652303  gcc/config/or1k/constraints.md
! 76f47ee2d2c2043785daa02f69adcd5c  gcc/config/or1k/elf.h
! 1c67560c086aa98832e685647e2b485e  gcc/config/or1k/elf.opt
  8e462ede2b5e4ca4e9b77d96feeea5ff  gcc/config/or1k/elf.opt.urls
! 9487a16b15521782929ca62d7215fc3b  gcc/config/or1k/linux.h
! e271d2b9e84052852ddf7a76210824cd  gcc/config/or1k/or1k-opts.h
! 87161d0800f278ec9f69392c6db1efe3  gcc/config/or1k/or1k-protos.h
! 31c9f76d7248931a07057cd4820a6f89  gcc/config/or1k/or1k.cc
! 8ac271eb3fe5e9df995b0da677e170e4  gcc/config/or1k/or1k.h
! 72f6fbd17f5f3e1bf87370eaebab21dd  gcc/config/or1k/or1k.md
! ec86c2f80af5fabfe38a5550b022de82  gcc/config/or1k/or1k.opt
! a02f9609ab31ebce723e17fcc93e6a1e  gcc/config/or1k/or1k.opt.urls
! c451f136fd38e9eb411ab119f6a03a6f  gcc/config/or1k/predicates.md
! 4f79c9da24a976d0be07c85dda113f97  gcc/config/or1k/rtems.h
! 849e90daceb1e8271155dc46cb3f3b14  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
! c3e8a975864faf6ac01dee27c5efe059  gcc/config/pa/constraints.md
! 7b39cf9e736761c2a549cd91177c34e9  gcc/config/pa/elf.h
! ad209e31a0b7237ec467dd7c032c2d42  gcc/config/pa/pa-64.h
! 4e1207a70de8e601a141a2e7dce62a32  gcc/config/pa/pa-d.cc
! 66b153e75a9aa242f6518cc72a6f371e  gcc/config/pa/pa-d.h
! ece8b499b3bfea4f80635f8ad1838a41  gcc/config/pa/pa-hpux.h
! a85d2a4cf8f325c98182ba077961e5ff  gcc/config/pa/pa-hpux.opt
  c72bd414f990a9fee6e01780673cdd56  gcc/config/pa/pa-hpux.opt.urls
! 7bc01f457922ec3bf22cc5e5bf9939c8  gcc/config/pa/pa-hpux1010.h
! b07c534b1b5f2d8cbe554c71eb2512c5  gcc/config/pa/pa-hpux1010.opt
  e13114ae33cfe970d30b76ba8cd4f419  gcc/config/pa/pa-hpux1010.opt.urls
! d1aa0b2a8d82f96aea295bb82d26f350  gcc/config/pa/pa-hpux11.h
! 5623ce98f2687efed47c5e26d497e97c  gcc/config/pa/pa-hpux1111.h
! 25d152fba9c48ab817249f8f89c15e49  gcc/config/pa/pa-hpux1111.opt
  8442020af66ca252bb847f6f824cb155  gcc/config/pa/pa-hpux1111.opt.urls
! 9b7d1762c668621582b7171e622b85ea  gcc/config/pa/pa-hpux1131.h
! c992e1d21afdfa8a13cb427a468792c4  gcc/config/pa/pa-hpux1131.opt
  43fc590b7aacc54072ef9661be7c024e  gcc/config/pa/pa-hpux1131.opt.urls
! 888855eb499903ed506569992258ed34  gcc/config/pa/pa-linux.h
! 670bfe92433565761112fe829101ccb9  gcc/config/pa/pa-modes.def
! b7669cc185ce4e8fa5543db9fc552fad  gcc/config/pa/pa-netbsd.h
! 961575276a4c92065805fa132d6f96a1  gcc/config/pa/pa-openbsd.h
! 9a661bb63af8309862f216a5145b35ff  gcc/config/pa/pa-opts.h
! 1ab2b014b27f77e96f50795bfab8fcbd  gcc/config/pa/pa-protos.h
! 5e7bd06971fa251b78ada8e4874d9151  gcc/config/pa/pa.cc
! 236e2aa482ef7ba69da0730d16395b1b  gcc/config/pa/pa.h
! cc93dbd91a346e710c0540fa3af718eb  gcc/config/pa/pa.md
! 99a0932bde9ea4de72d6b9b3cb2b2d99  gcc/config/pa/pa.opt
! 8cc2f0b358c76ec2ce7a16d18a9ecdab  gcc/config/pa/pa.opt.urls
! 2a4bf2e386b22bab714abdf5f5712158  gcc/config/pa/pa32-linux.h
! cf244d98954d0ae296af3233559817c9  gcc/config/pa/pa32-netbsd.h
! e13fa24d8035310d9d4cab013259fb09  gcc/config/pa/pa32-openbsd.h
! aeac851d81ac41009ebd6143f1855a70  gcc/config/pa/pa32-regs.h
! 17498f089c9f66743357ceed3d2f4c38  gcc/config/pa/pa64-hpux.h
! b87266431f34c0a5e354637ea22ce4d3  gcc/config/pa/pa64-hpux.opt
  b9670a9aa8c6577d9c71118121d7f9a8  gcc/config/pa/pa64-hpux.opt.urls
! 7b2073c847d6b2d0c525ab1243bd166a  gcc/config/pa/pa64-linux.h
! 4fc050150d7598b1b265cf032a7a201e  gcc/config/pa/pa64-regs.h
  a9a6afd79b827565ffb8de8330b4cfe6  gcc/config/pa/pa64-start.h
! 49c80654e375d305126df871962b0baf  gcc/config/pa/predicates.md
! 6d8fd7158a4616e761bc26cfa7a68457  gcc/config/pa/som.h
  6fd25f8c665d2d7390ea94c01dcb8e34  gcc/config/pa/t-linux
  16f4ce216414d19c044dd93c60d948ae  gcc/config/pa/t-pa
! c1336be70e1617a6776b347c8987311d  gcc/config/pdp11/constraints.md
! 6b630312a3db19867b774b0d92c8969d  gcc/config/pdp11/pdp11-modes.def
! 535d8ae84d3fc97e7ee16cb5d4feb8d3  gcc/config/pdp11/pdp11-protos.h
! f5e5ef5ac6d3ef4ba4c479cd8951d8c1  gcc/config/pdp11/pdp11.cc
! aa21c3037bd3d2fb64a9851d53018271  gcc/config/pdp11/pdp11.h
! 7bef40d73ee841f4b8387eaec8d8c4b8  gcc/config/pdp11/pdp11.md
! 5195cd1530318f685cc9979f02f60656  gcc/config/pdp11/pdp11.opt
  635cae153d933366eee0a122693ed3e9  gcc/config/pdp11/pdp11.opt.urls
! 4ec6dedac3c00f79055307d434e6f3ad  gcc/config/pdp11/predicates.md
! 46645269acdd4dabb5ae1838023cf2ba  gcc/config/pdp11/t-pdp11
! e6b375094e157d50ccf48aea3545eaa0  gcc/config/phoenix.h
! 2d9b05537e5194b675ea88b74550c21c  gcc/config/print-sysroot-suffix.sh
! da8a7f454b699c3b7a86cc0d420bce4c  gcc/config/pru/alu-zext.md
! 71c06c8cccbea7b2419936379102739d  gcc/config/pru/constraints.md
! dcce42c5cbd9b32976bf3427af8f25b3  gcc/config/pru/predicates.md
! 8bd8917c8f24a0cdd090920f27512142  gcc/config/pru/pru-opts.h
! 13ca59b98b5f9bb4f7f6dc773f37b3db  gcc/config/pru/pru-passes.cc
! 46db74b503137d6be9955c243db12812  gcc/config/pru/pru-pragma.cc
! da6d20611081847c6d0a6c074d0295de  gcc/config/pru/pru-protos.h
! 4a12329e5800ba6840ee400076f9c603  gcc/config/pru/pru.cc
! 4239d4a3f648b7ce43e098e684184e10  gcc/config/pru/pru.h
! 8ba1173953866538310a65f551d68d74  gcc/config/pru/pru.md
! 40df1af7d7f36efb4df7dc28f979d2b9  gcc/config/pru/pru.opt
  cd13b51383c99c08d86250b61fed3805  gcc/config/pru/pru.opt.urls
! 925fefbfe10f585ae43a5f536e35ed8e  gcc/config/pru/t-pru
! 36b5239210d6056bc2a9b75ced8628cc  gcc/config/riscv/arch-canonicalize
! bfd0539b34b31ec4b1071313c474c03a  gcc/config/riscv/autovec-opt.md
! 4fa607669809bee744f69392402392a1  gcc/config/riscv/autovec.md
! 6939ffe884d3db7c71c66327a2cbd666  gcc/config/riscv/bitmanip.md
! 9bb0c19bd342a2abfa23fa98af63e67e  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
! 8825a9803873a36f2c4419e121b8704e  gcc/config/riscv/corev.md
! b1c5aa940007c6348dba4f5ddd5777b9  gcc/config/riscv/crypto.md
! 582f873c2a83e3aba075b870df92b1c3  gcc/config/riscv/elf.h
! 397d844e62a131d96eb925bec69f7df4  gcc/config/riscv/freebsd.h
! 67349b6abc9ca0f9462d4a4a4c63ba66  gcc/config/riscv/generic-ooo.md
! 7b21804a866d1aefc8ff9f9f2b799a46  gcc/config/riscv/generic-vector-ooo.md
! e4b06767ed172a173408006bc78fe8b5  gcc/config/riscv/generic.md
! 3327220ba0d914e2bd4a0fb8a1d3c78a  gcc/config/riscv/genrvv-type-indexer.cc
! ba2590081eeaa8b3873bab3d90fdc339  gcc/config/riscv/iterators.md
! 16bfdeebace9106b5638ac710bd0679a  gcc/config/riscv/linux.h
! c3b7fa956c542244a4f14866f3100a36  gcc/config/riscv/multilib-generator
! 350ce079519878cb36e7ba6e6cde1d14  gcc/config/riscv/peephole.md
! f29f2c65dd508b9b9925c7a4adaca3d1  gcc/config/riscv/pic.md
! 8d26720f7035dc4d86aabbeafdfc06e5  gcc/config/riscv/predicates.md
! 95dc36e4fbb7e94d838c02035ddc1127  gcc/config/riscv/riscv-avlprop.cc
! b5f0d6922d5f28d045df03b2e83f9df4  gcc/config/riscv/riscv-builtins.cc
! 70734688110b28c23a889671a758c5cf  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 065e84866de16f19bdf3041a828ffff0  gcc/config/riscv/riscv-cores.def
! b3cc72fa930df5e954eabc6418777fb1  gcc/config/riscv/riscv-d.cc
! 8bc7bbace9a41a7994f08b7175e23f14  gcc/config/riscv/riscv-d.h
! 4aaa2fad5cce26a747bf5143d8b8a6dd  gcc/config/riscv/riscv-ftypes.def
! a0742dc4c1dbbf1c2280dc2fd5cb1b22  gcc/config/riscv/riscv-modes.def
! 97e570bfe440faba5768b82e0ef85530  gcc/config/riscv/riscv-opts.h
! 4ba168676c5142faab20d8549a50c572  gcc/config/riscv/riscv-passes.def
! 4324bd760add95a304531357e6f6d029  gcc/config/riscv/riscv-protos.h
! 47243c088f75032850a676e28848d300  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
! 65eccada1e1fa71149c3e0c4affebc61  gcc/config/riscv/riscv-shorten-memrefs.cc
! 5c3428e560989d67f2ebe3b3ac03eb7b  gcc/config/riscv/riscv-sr.cc
! c4abbcf86352b7dee6f69dedf9777c32  gcc/config/riscv/riscv-string.cc
! 0b914422ef571be4eef516b9db6d74ac  gcc/config/riscv/riscv-subset.h
! f0f40255a2865f32bbc1691a548b97e8  gcc/config/riscv/riscv-target-attr.cc
! bcc7aefb4c5b562401b68b0558ae66a6  gcc/config/riscv/riscv-v.cc
! 06431190e55511329e02b338d789784a  gcc/config/riscv/riscv-vector-builtins-bases.cc
! c34f914da7fbda14b1071fada8f6e6d8  gcc/config/riscv/riscv-vector-builtins-bases.h
! e5994b69fca42473b2755542472e1d36  gcc/config/riscv/riscv-vector-builtins-functions.def
! 0dce25be85c82ec1304867659b573255  gcc/config/riscv/riscv-vector-builtins-shapes.cc
! e7b016b9c4ea7dda4fac519d1b7103b2  gcc/config/riscv/riscv-vector-builtins-shapes.h
! 909b149eb030b1beae6a541cebe19be2  gcc/config/riscv/riscv-vector-builtins-types.def
! a6b183f51e1f34cd2563d7457f285010  gcc/config/riscv/riscv-vector-builtins.cc
! 455f3d7c358009737898d478b2e56191  gcc/config/riscv/riscv-vector-builtins.def
! 79f918a11f4859db5e23443fb384b720  gcc/config/riscv/riscv-vector-builtins.h
! 654f267f76053c5658a1d061ada5ed32  gcc/config/riscv/riscv-vector-costs.cc
! d99509eaecd0c207104902aad225c650  gcc/config/riscv/riscv-vector-costs.h
! dade0b49152a8c59a779044da51013cc  gcc/config/riscv/riscv-vector-switch.def
! aa4c931b38e31aaa41dead9fd1407d7b  gcc/config/riscv/riscv-vsetvl.cc
! e8c3db2e9a3a0a27503c6f22655b68cb  gcc/config/riscv/riscv-vsetvl.def
! 316f0985bb402da8bc619374eb1a533f  gcc/config/riscv/riscv.cc
! 16119f3f181a96d14e1b5d8f95695c89  gcc/config/riscv/riscv.h
! 18b86eb6a9d14f983f52ea232a010bb7  gcc/config/riscv/riscv.md
! 466dbd063f64081534355a7e4b864a81  gcc/config/riscv/riscv.opt
! f6ce058c6efa408fe8c66c420007726f  gcc/config/riscv/riscv.opt.urls
! b665da1fdaa8aa38e828c888fdd4fdf4  gcc/config/riscv/riscv_bitmanip.h
! 0fe261f9efaf4e1ae371c3fb922035e8  gcc/config/riscv/riscv_crypto.h
! 3449e0a67d07de8c9e2692d564ec5286  gcc/config/riscv/riscv_th_vector.h
! be9235fb5c36236ad72b5be803994ce4  gcc/config/riscv/riscv_vector.h
! 71d1a997d7d3a1de8da27230f3a69507  gcc/config/riscv/rtems.h
! 99dd4cb267c57eabec23a59dbd781c96  gcc/config/riscv/sfb.md
  be325acf7e97346df2b332f8be3e7c26  gcc/config/riscv/sifive-7.md
  4bd546da4f447a6411214164ad27c10e  gcc/config/riscv/sifive-p400.md
  573ed3885e39b6ef4cf281949a9762d5  gcc/config/riscv/sifive-p600.md
! b251c573096a206a8933a2bb144cb661  gcc/config/riscv/sync-rvwmo.md
! 2b6b4a116070440fa88e0d9cebb68ed6  gcc/config/riscv/sync-ztso.md
! 9aad0ec1aa271c5e9b9e4aef47a51a60  gcc/config/riscv/sync.md
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
  381cb38e167feed84dad697fce89cabd  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! ec02e967b14debba17bf429a6f0e7914  gcc/config/riscv/t-riscv
! b46131fe425be428d4d66c8f653f3d13  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
! 39d9c3d7ef5259e656441e5a5a5b03b6  gcc/config/riscv/thead-peephole.md
  325f22596295559607b476e5a2a4d491  gcc/config/riscv/thead-vector-builtins-functions.def
! 16054f1c85f94ab69d91cae160575415  gcc/config/riscv/thead-vector.md
! cee5f12dba96bedd20cdaf3774690355  gcc/config/riscv/thead.cc
! c388a1237ba7f2ab12a33cb145f43640  gcc/config/riscv/thead.md
! 07cd95ea9283a84f02a2d51ea74a1069  gcc/config/riscv/vector-crypto.md
! f9eb84aea966e884858c7c21bb5268f8  gcc/config/riscv/vector-iterators.md
! e7774c8520783aa10c7848aae8c99b15  gcc/config/riscv/vector.md
! 7762b3bd400424c958f2f2bdd75ec5b0  gcc/config/riscv/xiangshan.md
! e8a61087443cebc7a9395388b07dd370  gcc/config/riscv/zc.md
! 83f721e7aec94b5267ee044f4e6fdb04  gcc/config/riscv/zicond.md
! af6cda0ae434136d489e94f8cffd7b3d  gcc/config/rl78/constraints.md
! 3b398466474cf0d04e5239e01eb95b1f  gcc/config/rl78/predicates.md
! 108f054db62f647374ffc2dd77df9cdb  gcc/config/rl78/rl78-c.cc
! cf5ddccebe3c9797e9fd4719d5016660  gcc/config/rl78/rl78-expand.md
! c1da1789174e4797422c4cac513a805c  gcc/config/rl78/rl78-opts.h
! abdb6b186a0d88ef64a510725323e98d  gcc/config/rl78/rl78-protos.h
! 83daf1f3c4102a915f91e589dc7ace47  gcc/config/rl78/rl78-real.md
! 721dde7ebcba1925b4e71e9f642699a8  gcc/config/rl78/rl78-virt.md
! dcf9bede185abd61bc0ea9f1df9bcba7  gcc/config/rl78/rl78.cc
! dd9bab3b788041355dea98bc51dc8f5e  gcc/config/rl78/rl78.h
! 1b77929a2941249a9341a7c9a19b5049  gcc/config/rl78/rl78.md
! 9a10fa9de4a5d670cfd0b23f403ef8bb  gcc/config/rl78/rl78.opt
  0b873eb0e14cb2abf80aa2e90955904d  gcc/config/rl78/rl78.opt.urls
! 671528f327e072ccc919eb935bedd63a  gcc/config/rl78/t-rl78
! e930709475e75d9d748409147510767d  gcc/config/rpath.opt
  1ba216c6712cc1a82121154d5193a339  gcc/config/rpath.opt.urls
! 77e9eba3c100980b12089ac899081ac5  gcc/config/rs6000/40x.md
! b9bdee19a6baacad40d1d9f5fd48a03b  gcc/config/rs6000/440.md
! c478bc4056536df202907bbd6487dc7b  gcc/config/rs6000/476.h
! fdc507f1a8dc590fc92e27e8eeca6002  gcc/config/rs6000/476.md
! 31559556f643d02438ef2f3765a5495e  gcc/config/rs6000/476.opt
  e1a9c8119beed7008786bcb91a9dfe0a  gcc/config/rs6000/476.opt.urls
! b90be7241b09b6dba2869ccc3a294c7b  gcc/config/rs6000/601.md
! 2b8590c7183e02d1a09be66458a5f8d1  gcc/config/rs6000/603.md
! 283294f60c6e427747a3e5c29b786a71  gcc/config/rs6000/6xx.md
! ab96e4c20c9c841f1292ab0babbfc0b1  gcc/config/rs6000/7450.md
! ca2b2d3742c347b81fe1aec30d830735  gcc/config/rs6000/7xx.md
! 88bace7f271c41d15e1776ce901c81d4  gcc/config/rs6000/8540.md
! ace447911502244415407168b2b26546  gcc/config/rs6000/a2.md
! 07856219672480d75398d24a15048832  gcc/config/rs6000/aix-stdint.h
! c64df3316d3e58a27e1ab2161d16ba84  gcc/config/rs6000/aix.h
! 715344e1ef4fbd3e74d831e493df765a  gcc/config/rs6000/aix64.opt
! 7ed2003156dc5875ca3b657a11836729  gcc/config/rs6000/aix64.opt.urls
! dc688b5f626585d25113aef49d081f9b  gcc/config/rs6000/aix71.h
! ffc5586f80b9788d4b55d8331f0f850a  gcc/config/rs6000/aix72.h
! 5e8be43368467469a49a8ae25a3a5a99  gcc/config/rs6000/aix73.h
! 5e39c7d6e3640a3400fe9e5bb2a2f131  gcc/config/rs6000/altivec.h
! 666760cb38b8e34ffba833b842c78659  gcc/config/rs6000/altivec.md
! 4c19337be8b22dedef423434cf0a12be  gcc/config/rs6000/amo.h
! 4ceef8d1de734345cc9e53fddee7b98b  gcc/config/rs6000/biarch64.h
! 13c13869e4dd869e54cf393e1c6541c6  gcc/config/rs6000/bmi2intrin.h
! d664ff6b3c4e795d95e67b565ce7e019  gcc/config/rs6000/bmiintrin.h
! 630fb850674d676fdff9b7d8a33e2965  gcc/config/rs6000/cell.md
! 5275dc9a6d237dd6e83496ac3279393f  gcc/config/rs6000/constraints.md
! e9ad3ccad40ce71d5c287bc67e2568e7  gcc/config/rs6000/crypto.md
! 0906c4158948756bc91b43cb97407f48  gcc/config/rs6000/darwin.h
! db031c4dea9e32ea7f2fdb191803529d  gcc/config/rs6000/darwin.md
! f460662c0a0a5cd3d352d9702c731613  gcc/config/rs6000/darwin.opt
  465e67f2fa0bad834639122551e17ab2  gcc/config/rs6000/darwin.opt.urls
! c20a9342c81be3c9f779ce69bae65e30  gcc/config/rs6000/darwin32-biarch.h
! 3f5fcd866bf169a2212ad6bf44edab98  gcc/config/rs6000/darwin64-biarch.h
! d7ae4cfcd5d159cc6e32671d54347485  gcc/config/rs6000/darwin7.h
! 89fb88ea0af9a0acb2082685ea2e53b9  gcc/config/rs6000/default64.h
! 4c13d08e72a1c018f045809bc45e72c5  gcc/config/rs6000/dfp.md
! defd762a5d784d0e554cdc0e9fe6e214  gcc/config/rs6000/driver-rs6000.cc
! 5d2d3bd9094073ca96454ce0517c7f0a  gcc/config/rs6000/e300c2c3.md
! 6bb73bdcf5a4f4dc0d0e67e9dc6ba9d7  gcc/config/rs6000/e500mc.md
! 92d1e6cf753055ddee533b8b900f2c4d  gcc/config/rs6000/e500mc64.md
! 6b25f71ac979f87c9659e1c2fe019455  gcc/config/rs6000/e5500.md
! 6aadb0bcfa0d3c2c4bf6ec198c58b794  gcc/config/rs6000/e6500.md
! ff9a66815b819fcdb63f92c34ac7820d  gcc/config/rs6000/eabi.h
! 2731639d5f800874a5b4e6aae95c5e23  gcc/config/rs6000/eabialtivec.h
! 7eb875fd2fea98c75f8c51787a1e247f  gcc/config/rs6000/eabisim.h
! 10e293b54be24f58c077cdacb044ad45  gcc/config/rs6000/emmintrin.h
! 03a4bcf0998c553f60759c332d12d492  gcc/config/rs6000/freebsd.h
! 055fdb6ca2267d0a927b6d4acbbbe579  gcc/config/rs6000/freebsd64.h
! 7238b035f18e2b88be7a213a4e8d769b  gcc/config/rs6000/fusion.md
! dc817b389ec934f882aca3e82e1257fd  gcc/config/rs6000/genfusion.pl
! a35c0d81ceeda3b23dab305941ec5e4d  gcc/config/rs6000/genopt.sh
! 5fd89d2ec8e0690174b1511be8bd128c  gcc/config/rs6000/host-darwin.cc
! 28aa6941589488591d9d2099fdb46271  gcc/config/rs6000/host-ppc64-darwin.cc
! 19b5909a7f12b0ea57a980055545cd6c  gcc/config/rs6000/htm.md
! ba2ab60fa1318d44abe7a62a5af7de7a  gcc/config/rs6000/htmintrin.h
! 2f77fe2072468445ea21e09ab1b6ff55  gcc/config/rs6000/htmxlintrin.h
! 5c8e9790e53d576531a51205834430a6  gcc/config/rs6000/immintrin.h
! 47fc797e5d41176601b5e4af5d4da834  gcc/config/rs6000/linux.h
! 5ed92819f1bfd485d1c32a1903e4c618  gcc/config/rs6000/linux64.h
! 7202a1aaaa9afe74bef516c05897edcd  gcc/config/rs6000/linux64.opt
! 9fa6a809661bc257a6e01e3906850e3b  gcc/config/rs6000/linux64.opt.urls
! 925c6025f31525580c668151520609b5  gcc/config/rs6000/linuxaltivec.h
! 49b52723f313e95bdc0c09d9dc9442b1  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 6f1746b0c64c9c49742ceedf680dd3af  gcc/config/rs6000/mm_malloc.h
! 31bc734abcc16b9cb17cb59b0d6ea00d  gcc/config/rs6000/mma.md
! f123d353049f070c574461ecb7ab8374  gcc/config/rs6000/mmintrin.h
! 10f9053d0b9848a78d6879c38282fb29  gcc/config/rs6000/mpc.md
! 6bab9f6ddecf1c08f4b86a4afb3a7ecf  gcc/config/rs6000/netbsd.h
! 5f25e02a051c541d6488cdd195a26e7f  gcc/config/rs6000/nmmintrin.h
! a68bea754f3d8e6e116284e4a2722e0f  gcc/config/rs6000/option-defaults.h
! fd37764448313ce587ac1300d6d3a8f6  gcc/config/rs6000/pcrel-opt.md
! 458b3fa53053aa50c066ad35644e12a1  gcc/config/rs6000/pmmintrin.h
! be32291a4ca80b881e69e2f965293955  gcc/config/rs6000/power10.md
! 7a74854f55db27e8268e68a53e668942  gcc/config/rs6000/power4.md
! 32b1aa193db3a4af28cb07edb6858358  gcc/config/rs6000/power5.md
! 01d883a1b0c4989f084fd53fc4be0446  gcc/config/rs6000/power6.md
! 66fd1abf974b6b08386d8ccb343ff6f6  gcc/config/rs6000/power7.md
! be74e9d9f50b113a3b00ed3fe44f930e  gcc/config/rs6000/power8.md
! 58cf9dff2d7dc44c4b5adfa196189b94  gcc/config/rs6000/power9.md
! 4c2392f6eb73f71a6837c4c21dce374c  gcc/config/rs6000/ppc-asm.h
! 3d1e69cbeb5330f895c37e44d0cfe004  gcc/config/rs6000/ppc-auxv.h
! 3a11d74714c9678a757410ec5b83d23c  gcc/config/rs6000/ppu_intrinsics.h
! 85fcbc6c0c464c6e71b27a3656a6d37c  gcc/config/rs6000/predicates.md
! ddc27d9ceea8191a7cbfb42159a56be4  gcc/config/rs6000/rbtree.cc
! 200b6eccb63040bee4a9133bab14bb26  gcc/config/rs6000/rbtree.h
! 540cc4266a457723bf07132ec4c41f5f  gcc/config/rs6000/rs6000-builtin.cc
! c16f627e7bf0fcbd3a7f08aec359a092  gcc/config/rs6000/rs6000-builtins.def
! 85e4ffedd2680d62304c1b35cce0e4cb  gcc/config/rs6000/rs6000-c.cc
! 8119e87823cbb6f1761f91aeb4d3c6ea  gcc/config/rs6000/rs6000-call.cc
! 6d757bc300be00bb395a28d2394f1abd  gcc/config/rs6000/rs6000-cpus.def
! 814d95cd094abacbcf3e466bfdc3646f  gcc/config/rs6000/rs6000-d.cc
! 352434ec043433b9c854bc6a1a5d1c6e  gcc/config/rs6000/rs6000-d.h
! 23ba68557e0e33c576d04fb18233652b  gcc/config/rs6000/rs6000-gen-builtins.cc
! 4e40768415787540c7aed2700bb4ef5c  gcc/config/rs6000/rs6000-internal.h
! 487ad2b30042f0c9269249ccd36f8105  gcc/config/rs6000/rs6000-linux.cc
! 462eb5d954f56676d1a48a9f1736fbbe  gcc/config/rs6000/rs6000-logue.cc
! e05768afb38466ef41729c3114f73bee  gcc/config/rs6000/rs6000-modes.def
! 5955f1d898e13eb24f4c2a785802d5f7  gcc/config/rs6000/rs6000-modes.h
! 18a9547c5e579aa06052d806cc2e3d7a  gcc/config/rs6000/rs6000-opts.h
! 71d27bad6a7f32aa9578e972dc8d2393  gcc/config/rs6000/rs6000-overload.def
! 7c88881b4a1b097a2c671a55c832e5b5  gcc/config/rs6000/rs6000-p8swap.cc
! 06c1fe7d6c0f56d4711c159fcfd5d356  gcc/config/rs6000/rs6000-passes.def
! 373bd99acab7b333130b52f9f3310780  gcc/config/rs6000/rs6000-pcrel-opt.cc
! e99d78e4dd33a6aa584724df90e53b4e  gcc/config/rs6000/rs6000-protos.h
! d1b6440bd517cf225cfb3fc456f4e255  gcc/config/rs6000/rs6000-string.cc
! 85fa108131e3f426fddb02a2b46206ed  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! 50ba0875c687f385d6e65ba4b208350c  gcc/config/rs6000/rs6000.cc
! 1f435f0805c4a7880227fc7bdc020904  gcc/config/rs6000/rs6000.h
! e1c9a3f229209ea8bb9b1c62f3cd35b9  gcc/config/rs6000/rs6000.md
! 0067e312c15743199c1342845f4eed87  gcc/config/rs6000/rs6000.opt
! f041ba7cede4ca8e4e8a9e987adbe629  gcc/config/rs6000/rs6000.opt.urls
! 29600bfcf064db2d3bccf3470cb14924  gcc/config/rs6000/rs64.md
! a3838656dfadaf00ef293f58e605491e  gcc/config/rs6000/rtems.h
! 1359f1feabeda5f4a74fcead3b1b0994  gcc/config/rs6000/secureplt.h
! 85770b6f199946280840cc280a401456  gcc/config/rs6000/si2vmx.h
! ed7737e5c6e8aecacd28f09a01277fbe  gcc/config/rs6000/smmintrin.h
! 1528b21b29064f396157975a02a7479f  gcc/config/rs6000/spu2vmx.h
! 8308c8171c552d27f245f47ca2539277  gcc/config/rs6000/sync.md
! 81d05e7a82179801305ecb2b6cdcc408  gcc/config/rs6000/sysv4.h
! f2bdb7c82db5fc3c5f1e66ff0e995185  gcc/config/rs6000/sysv4.opt
  665ad5fb698deb6ee59b34e0b9f64c6d  gcc/config/rs6000/sysv4.opt.urls
! e026cf1d74bddf541c91afa4a66b9404  gcc/config/rs6000/sysv4le.h
! e5b58900ac0e6ca3f00cfbae643cc420  gcc/config/rs6000/t-aix52
! dea6f314b6c22cad626ad47d6595521e  gcc/config/rs6000/t-aix64
  636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
  f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
! 304201f9b714a743bcb205ee963da887  gcc/config/rs6000/t-fprules
! c93c7c5b0e2b3a623194d9b9419fa41d  gcc/config/rs6000/t-freebsd64
  7708df4fc7a5677f2dd3097c7bb5b338  gcc/config/rs6000/t-linux
! 8ce3d9c33eb5a6b7eb468c5c81c4ab4b  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
  60f26523152f6a061a12cb17e987de12  gcc/config/rs6000/t-linux64lebe
! c5d37f1c886af81f064849e7ae94e5ca  gcc/config/rs6000/t-lynx
! f6cab4f43527986d1fd000c554a8ec01  gcc/config/rs6000/t-netbsd
! 20028a235bbac0e08bbe11df6162c419  gcc/config/rs6000/t-ppccomm
! c9d8c2412eb62bc04bfac20206a1166f  gcc/config/rs6000/t-ppcendian
! 2c4fce738182c1993bcd8af3caa463ad  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
! 82ec18f7e5b77db59003e785be449d70  gcc/config/rs6000/t-rs6000
! 0bfa837dd878560078c9177d7298b9b0  gcc/config/rs6000/t-rtems
! 172ddcfe5b92d548f196a7562ed1024f  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
! 61025a66bc7d58f34a093da601089b32  gcc/config/rs6000/titan.md
! 0a88b1fc4b596cd84e7825b3a5f3b524  gcc/config/rs6000/tmmintrin.h
! 869601137999c1447aaab0b73104dcdb  gcc/config/rs6000/vec_types.h
! 205bbf4f9ece545c1eff934c146a75b2  gcc/config/rs6000/vector.md
! 89c99fdf4bdb74fc0e680b01095eb9d1  gcc/config/rs6000/vsx.md
! 62cd6bf777af9270cbc8947ee14941f1  gcc/config/rs6000/vxworks.h
! 6400c28de85928df70c96f8795d988a1  gcc/config/rs6000/vxworksae.h
! a8c4ccdf64c535c04aea49b25e2edd70  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
  b56ad5be71cef10dc9ee90f9f5577c21  gcc/config/rs6000/x-darwin
  0d6a4902892897c148fbf634ca039f71  gcc/config/rs6000/x-darwin64
  3f42272f4bcf66031ebf71a6c876adb8  gcc/config/rs6000/x-linux-relax
  c8b5860d3a61eeddd3a9790a0f09ed6c  gcc/config/rs6000/x-rs6000
! 4ac749de4ed0465485f641a5969c4fb6  gcc/config/rs6000/x86gprintrin.h
! 3c384b22e5ca6ec3f96781e61c0759f9  gcc/config/rs6000/x86intrin.h
! e93e10f75213bddb7988b6ba5a69547b  gcc/config/rs6000/xcoff.h
! 60441713c16d9e181d94bffc8a54c574  gcc/config/rs6000/xmmintrin.h
! d816cd78e598b739e34366ba99b902ed  gcc/config/rtems.h
! d9d97685dca75857b55e0503c9482223  gcc/config/rtems.opt
  63d27d06289d5f9814baae9a6feaa996  gcc/config/rtems.opt.urls
! 7d23e6c729179711c904c8f9ad0ceea7  gcc/config/rx/constraints.md
! 2868f31c4be2578bcad3ba1e66e3de10  gcc/config/rx/elf.opt
  495c9b539f4b3f5645b59d1084a92957  gcc/config/rx/elf.opt.urls
  84ae77475029b49553276e3d7ed74cec  gcc/config/rx/linux.h
! f54b260bf95c98c583c18c044bb1a5c3  gcc/config/rx/predicates.md
! dd7e1906b465f219c108a458406f9016  gcc/config/rx/rx-modes.def
! 7d635c4fceef1848d8f410ff8210c7c9  gcc/config/rx/rx-opts.h
! eeb42993e9929af42157187c8a48b897  gcc/config/rx/rx-protos.h
! 266b873c0c5fba2f2e5dc02ee3fdd4e0  gcc/config/rx/rx.cc
! 6980625a211f6ecca7acaf222685ddda  gcc/config/rx/rx.h
! 6a6b391a0dad3c2a70ad0537999dadd7  gcc/config/rx/rx.md
! 205d3c953fcff5eb1ce48e1b3aa9c6b5  gcc/config/rx/rx.opt
! c21b979855aa34ddfe209a0d2f136053  gcc/config/rx/rx.opt.urls
  032cf36abc28f171fc24229e32796402  gcc/config/rx/t-linux
! adcd1f6208d250f49c7cfcd08ee8c3de  gcc/config/rx/t-rx
! d507559488bd3c5c6e0ec9d29833a8eb  gcc/config/s390/2064.md
! 02a84a1fe13bb4931bcf228f17e4c754  gcc/config/s390/2084.md
! dc262715c6ab91f98552c369a74102f0  gcc/config/s390/2097.md
! 86a8704f034d2c44794b3c93d0d148fb  gcc/config/s390/2817.md
! 31547f6a09431ad9a1cb6dead135cad0  gcc/config/s390/2827.md
! c47200b02cbde702ea4b20c208b725e9  gcc/config/s390/2964.md
! 78d0febd0a52f646f86f329f32e996e3  gcc/config/s390/3906.md
! ec35d32806c5510f9773e7ba632658f5  gcc/config/s390/3931.md
! 61a73b7f0099c096565b83d1b06d2207  gcc/config/s390/8561.md
! 406f86bedc00d93dc5c2f743a5a006a4  gcc/config/s390/constraints.md
! 2c59003b9ac75dfe25e283763bea8f7c  gcc/config/s390/driver-native.cc
! 481cedb082556ac72a73a0b7af74e1ee  gcc/config/s390/htmintrin.h
! ffbab317936f19aca1d68f20c0b2696d  gcc/config/s390/htmxlintrin.h
! f57dfa1ae7a4511a6ea8f45d0fc4a75a  gcc/config/s390/linux.h
! 08bfeb3f9c213cc2e4548c687891a673  gcc/config/s390/predicates.md
! 6cd2387e492b0d69dba06dc65b54c557  gcc/config/s390/s390-builtin-types.def
! 3b287d76e8155190846b906e785216af  gcc/config/s390/s390-builtins.def
! 5f03c8e163a04a44285cd038001f8c97  gcc/config/s390/s390-builtins.h
! b1fb6cb29d851ddb951ac961314874c7  gcc/config/s390/s390-c.cc
! a5a54c7c2bc12aee90c87a116610c28e  gcc/config/s390/s390-d.cc
! 0c0d77114d0edfb53c43ca9fb02f0fd3  gcc/config/s390/s390-d.h
! 84ef9d31839adb5305d31242ed55dbc8  gcc/config/s390/s390-modes.def
! 962d3918be92ec1c1c3c6ccf426d0053  gcc/config/s390/s390-opts.h
! 7fff0ef02ee685ac6a5d6568faf42497  gcc/config/s390/s390-passes.def
! 26aba6ba6df3d1d10e8da93edc9aaf21  gcc/config/s390/s390-protos.h
! 1e598b93866d9f419ee30ded650b7077  gcc/config/s390/s390.cc
! 147006e730fe3e106809eac19cfd90dc  gcc/config/s390/s390.h
! 1751bf43f15409250bfc7232eaff1079  gcc/config/s390/s390.md
! cb0b2736d73615065dbf9dd10eb64d5a  gcc/config/s390/s390.opt
! 4afe70778cb47f5ab74798a74ebe0ee2  gcc/config/s390/s390.opt.urls
! 2c3dc8c98bc81eca16182e930c08db3b  gcc/config/s390/s390intrin.h
! 33c0241e8b0323ad4b2a880321580239  gcc/config/s390/s390x.h
! 7c2903a3ed9dd4bb72129a8e18967235  gcc/config/s390/subst.md
  551847ee4c38fa1a7e95fd93cdb32f17  gcc/config/s390/t-linux64
! e2e50c477f234875fd9fc66727097083  gcc/config/s390/t-s390
! 6c2551cc1b0ac9eea45ed757850b3247  gcc/config/s390/tpf.h
! 245ffd21c811fd8336b8076ede535179  gcc/config/s390/tpf.md
! 9eb7894e650772c40cbdb9e6ed254142  gcc/config/s390/tpf.opt
  34c54b547202715f11db388829243402  gcc/config/s390/tpf.opt.urls
! 5bac7807db49395d310bdd05b6f88c66  gcc/config/s390/vecintrin.h
! ce9018b612c69c31713faf49d5169464  gcc/config/s390/vector.md
! 634c4f8cae42dd7a7d29a223437ff660  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
! 481e371a2719a54e96d2efd0b7ceb35b  gcc/config/sh/constraints.md
! 2106cd0ab36da57c1f4e4aa2e56b12ce  gcc/config/sh/divcost-analysis
! 548be045b15be59260fa878ca473a1c2  gcc/config/sh/divtab-sh4-300.cc
! f4246f50c0b963ac39a5eef3fb89cfc8  gcc/config/sh/divtab-sh4.cc
! 6bcc5183349ff1464f61dfb2565b25ee  gcc/config/sh/elf.h
! 87e3a3f511a4c2259f113eed3de4d3a0  gcc/config/sh/embed-elf.h
! 155d666f1f144d5facd1b12980708e0c  gcc/config/sh/iterators.md
! 095882f0d9a646f7ea1afb1737a1e0d5  gcc/config/sh/linux.h
! f2fa5782ea1ddc7c99991fb77571725c  gcc/config/sh/little.h
! 44bab739a94d6e46ed440ecc6b1be020  gcc/config/sh/netbsd-elf.h
! 027f1f05d6266b28da1739b2b700fd82  gcc/config/sh/newlib.h
! 5dd21b76c8dc6acbf42b8743ea43150b  gcc/config/sh/predicates.md
! 0d0bc0b9e96318dc92959af7a61058b5  gcc/config/sh/rtems.h
! 65fed04b21602688776ddab6aab970d1  gcc/config/sh/rtemself.h
! ea291a22c5a9f0e90b459897b441efa2  gcc/config/sh/sh-c.cc
! a6a594c6295302a57cf858e9265cb370  gcc/config/sh/sh-mem.cc
! ac44d65003116db3901272a4fa8b0309  gcc/config/sh/sh-modes.def
! 8edf915e1e65aed1ec311841495dad8f  gcc/config/sh/sh-protos.h
! ef313877ba58782843ef89dd323a885d  gcc/config/sh/sh.cc
! 3e0451c8eee2aa905e412b57af6d01f0  gcc/config/sh/sh.h
! 0b28bde6f8a4ffba83d281b8c2646d87  gcc/config/sh/sh.md
! b8302959a6c86dfd0096159f9cae81f9  gcc/config/sh/sh.opt
  670e5840056f2d5bcfb8444910abd200  gcc/config/sh/sh.opt.urls
! 109cd969129cb44d8f08efcf8f899666  gcc/config/sh/sh1.md
! b880a7e6611bef96cc2453141f122b4e  gcc/config/sh/sh4-300.md
! 64fef03208f072bfbf599321b97215bd  gcc/config/sh/sh4.md
! b7bca7e18978781e47a8edd5d3781abe  gcc/config/sh/sh4a.md
! 0325c111e06be4ecf9b09b4208561429  gcc/config/sh/sh_optimize_sett_clrt.cc
! 95ec9d0626a02da1f1b8480e452feea5  gcc/config/sh/sh_treg_combine.cc
! 2eeb100e2dd3dc866b907970930ef05b  gcc/config/sh/superh.h
  06158b0f1e33501120db330d7734228d  gcc/config/sh/superh.opt
  5561a4532b44f8176f955ae87b996363  gcc/config/sh/superh.opt.urls
! 363d0dc00656a0cee1c95681ed9d77f5  gcc/config/sh/sync.md
  88130a11ca77c8572260539cc46ef7ac  gcc/config/sh/t-linux
  ad88281b142c81e6c7017a842c281d5f  gcc/config/sh/t-rtems
! a8edce731d2b90410b5c2af64b803580  gcc/config/sh/t-sh
  9f0e9638f478c08d204c5dce468c95ce  gcc/config/sh/t-vxworks
! 83afaa0cd853afb158b3988e23298493  gcc/config/sh/vxworks.h
! caddfa2a7d278e9f3b4e1701b51b0191  gcc/config/sol2-c.cc
  5c26c2321d68d4724b0d0076803c6b89  gcc/config/sol2-clearcap.map
  73dd11dea23019ab25cbbd70968694e7  gcc/config/sol2-clearcapv2.map
! 1a4c510c6133737b4c2c8e295fb40b34  gcc/config/sol2-cxx.cc
! 5a8a2e1461c47c35dd4ede31e6aabe1a  gcc/config/sol2-d.cc
! def8c84cc2539fd395e9bda344c110db  gcc/config/sol2-protos.h
! 26b7de1960f866d6d75338fc3ab1943c  gcc/config/sol2-rust.cc
! 5d7c42752c0c517166f7371b53d514b7  gcc/config/sol2-stubs.cc
! dba5a070ad8fc2ccebbdf7bc849ed881  gcc/config/sol2.cc
! 0aa93834a08190fefaa4a813d9ad0c28  gcc/config/sol2.h
! 9a5f91f7d83ba3f3e07c061c664c8aa7  gcc/config/sol2.opt
  c9d3baaa833c42e5184e73236cc13b0e  gcc/config/sol2.opt.urls
! 9162ac4dc69ef0534fb00f3022afd9fe  gcc/config/sparc/biarch64.h
! 59421ecac3dff04ee89164eccc39794d  gcc/config/sparc/constraints.md
! 7401b75f3d139a426d598e999f620fda  gcc/config/sparc/cypress.md
! 4e271db7c504056407dbea40269445c8  gcc/config/sparc/default64.h
! 3b897bfdcb1ab019107c66f6aab8cb21  gcc/config/sparc/driver-sparc.cc
! b64ed7da25845d53a93da3eb8ac720e7  gcc/config/sparc/freebsd.h
! 6ed0392c1926378d65a897b1bbb5d9f5  gcc/config/sparc/hypersparc.md
! abb3f02d84ac16a9f2b4231b33e76b4b  gcc/config/sparc/leon.md
! e37eeeff6cd46e70f6cc9064b71ab0e2  gcc/config/sparc/leon5.md
! 2f248231d7403b91da654835fffffe98  gcc/config/sparc/linux.h
! ac337846334b18b42728f65dfb5cc0dd  gcc/config/sparc/linux64.h
! 811c271f3b55974dc53fb35e08fe2b57  gcc/config/sparc/long-double-switch.opt
  4d77ec43ed4c960c7b17df26f8ad8add  gcc/config/sparc/long-double-switch.opt.urls
! c8c0905bdceed192ad11f9e86ff6fac0  gcc/config/sparc/m8.md
! 9953e3969e36f576bf560fff9a36f004  gcc/config/sparc/netbsd-elf.h
! 94c2abd9c15f7485670199bca002bc9e  gcc/config/sparc/niagara.md
! 8a82b332bbc013c31cc7eb407b441f1f  gcc/config/sparc/niagara2.md
! 60e4c2b5461a0ea2fad4c755aaee4906  gcc/config/sparc/niagara4.md
! 52d1609cbd7f6cf3c9dbf5fc9d871da3  gcc/config/sparc/niagara7.md
! 62f64a8c4e67a6530fd67a51ddd35545  gcc/config/sparc/openbsd1-64.h
! 30ddc54788ff260249e4ae0a708ed6a2  gcc/config/sparc/openbsd64.h
! 1f351372b15b4fdd42f048d29701efde  gcc/config/sparc/predicates.md
! c3aa029fbc5144e832940256f57e843b  gcc/config/sparc/rtemself.h
! 3c6b7f1f7d3cc80b808640a5fff2359b  gcc/config/sparc/sol2.h
! ea7c060572f5cda53f7b5f681773cbef  gcc/config/sparc/sp-elf.h
! 77bc90e5747121a86ff382ddcc3413af  gcc/config/sparc/sp64-elf.h
! ba225774269401b258baf40f8ca75eed  gcc/config/sparc/sparc-c.cc
! cdbf21aa342018f3be609a62696b1e4a  gcc/config/sparc/sparc-d.cc
! 2206975a83a06b0c8fca0fb720f87e33  gcc/config/sparc/sparc-d.h
! 0a5a94fed436182aadbeb6edec80b079  gcc/config/sparc/sparc-modes.def
! 0a46c266881c6b089a0c13f7bb221e76  gcc/config/sparc/sparc-opts.h
! 47585d9cf242c19dcaa4cac88df6d2ee  gcc/config/sparc/sparc-passes.def
! 967b50b2cc3de92dfc9a77a27eb5c6c7  gcc/config/sparc/sparc-protos.h
! 90c19f90794989dda232a06e7271b5dc  gcc/config/sparc/sparc.cc
! bc630edf216e7d5fa56151fa03d61099  gcc/config/sparc/sparc.h
! 7cdd94356f8272cfe647f3cd9b45bcc1  gcc/config/sparc/sparc.md
! 4cd38c8baed89225ea5f68a17161078f  gcc/config/sparc/sparc.opt
! 257131c9a74ac7ad36e3198d3a5aac58  gcc/config/sparc/sparc.opt.urls
! 23573c73a64baf0f67814a94adddabc5  gcc/config/sparc/sparclet.md
! 45bc1ed22c3333fc82a24d9f4970d9b3  gcc/config/sparc/supersparc.md
! 8c4ee44378ce424ea1d353d55ffc28d6  gcc/config/sparc/sync.md
! 2b938938938f5126f77fa00cb986b975  gcc/config/sparc/sysv4.h
! 6b7a023b4ebe7f92ecb8131d6bdd65d1  gcc/config/sparc/t-elf
! 42638bf13e3b996153117255d7472a0c  gcc/config/sparc/t-leon
! 33af05df69b4663ede15123a1bc04e78  gcc/config/sparc/t-leon3
  4a7d3f368a24d549fabaafbe44fcb134  gcc/config/sparc/t-linux
! 15a553b92c74c7fd61dc3e97fc86a388  gcc/config/sparc/t-linux64
  75987b7fdc6fa9c9ff2108ff1003e6d2  gcc/config/sparc/t-netbsd64
! 12977f9bcd6e0fc9f8972aee6e1efc5d  gcc/config/sparc/t-rtems
! ba2a973c7a6081814a40120bfc4bd1bb  gcc/config/sparc/t-rtems-64
  511770bb20c2707fabd4f231ce8b83cf  gcc/config/sparc/t-sol2
! f19922cf94584a4860c45de5ac2cf989  gcc/config/sparc/t-sparc
  b04597637b0c08dd3e6d1a40c43e76b4  gcc/config/sparc/t-vxworks
! 292513419e65d73222980b3fe3f0271f  gcc/config/sparc/tso.h
! 7701533048a42c47942b642dcd6e927c  gcc/config/sparc/ultra1_2.md
! f41d52f60183489c85dd21e10db8c182  gcc/config/sparc/ultra3.md
! be5a14a5fc53503e42edef1f3a9c4af3  gcc/config/sparc/visintrin.h
! 7cc5cce4e07a0a13bc1c413355aaf116  gcc/config/sparc/vxworks.h
  5e0da0cb45fdd1424679c054727e1bfd  gcc/config/sparc/x-sparc
! cafe84df6b65f15c8539a13545f2ca05  gcc/config/stormy16/constraints.md
! 2291cb200b15b7c87dca1e1cc6a0ce7b  gcc/config/stormy16/predicates.md
! 8c4538dfc0bbabd0d9e9269363e90257  gcc/config/stormy16/stormy-abi
! 6a27235e0c3c372c473b22b2ce4d6977  gcc/config/stormy16/stormy16-protos.h
! ad75ac7b17c600b2dbe224c63fd83336  gcc/config/stormy16/stormy16.cc
! ef983a61ff43e5b59349adbbfb9bdce0  gcc/config/stormy16/stormy16.h
! c126cdfd3114ce124f4e010ff8f8eb6a  gcc/config/stormy16/stormy16.md
! fb1c7a48495eb895ef9d3c4739fa4387  gcc/config/stormy16/stormy16.opt
  83f5016198e7f4905149f32898b70e29  gcc/config/stormy16/stormy16.opt.urls
! b5fac317b0a7436b269ce4518668b25b  gcc/config/t-darwin
! 783943b0995677e20fbd6de3f884999f  gcc/config/t-dragonfly
! 7c82170e87c833f65c4e597bbc370e23  gcc/config/t-freebsd
! 1008ee7fba1ba0f357025760eaf2755b  gcc/config/t-fuchsia
! 01e0c9fa1c41ffe1152c285d28fdba10  gcc/config/t-glibc
! 3d8ab00c13904963cbf5cc21eb94600f  gcc/config/t-libunwind
! 855a416b04ca86f0bc907eee6efea59b  gcc/config/t-linux
! 4ace3eb7c07193553832b74933fcbc7f  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
! 6b71fc67404b61a7866f634e156a5db3  gcc/config/t-netbsd
  1aacff07575e71ba693f03e992cf4e49  gcc/config/t-openbsd
! 78a587999728f82b55f284e9280476a7  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! 064b7feef3b2abcfb3b62b2d5d9f4ed4  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
! 684916a729da19545f2d9395d0df909f  gcc/config/t-vxworks
! 604881b693eb21794716c60df7ffafe4  gcc/config/t-winnt
  17fd5cabcc31b720b23bad47cf7fe84c  gcc/config/tm-dwarf2.h
! 58d4868e96ba7521b69cf92b2bd4cc02  gcc/config/usegas.h
  a6ae71a556271cc116214b3e9e87d867  gcc/config/usegld.h
! 9b97577f5847d05d3de776f76a6c3f29  gcc/config/v850/constraints.md
! 6f0348c3579f10f1bcfd29d513795dfb  gcc/config/v850/predicates.md
! b864fb4e32d692cd9989685bc69c097c  gcc/config/v850/rtems.h
  41b5d5e91cc905b1e3ba5de47db5f9c6  gcc/config/v850/t-rtems
! 629eda53797596d11d24cf058656fef2  gcc/config/v850/t-v850
! afebbed1bfcb799ea5ae6049355f6956  gcc/config/v850/v850-c.cc
! dd1dd6a8477feed524d79fc588bd183f  gcc/config/v850/v850-modes.def
! 486161e675466e370d33361fa295422e  gcc/config/v850/v850-opts.h
! 077a04a173309ff862a91ecfae835b50  gcc/config/v850/v850-protos.h
! 971b3b0ecc2e800f39f7c06c68a65338  gcc/config/v850/v850.cc
! 2e0ee10ef946f834743deda34269b553  gcc/config/v850/v850.h
! 45b682b6b0002c0c3f6960bd43a7afe1  gcc/config/v850/v850.md
! a5e85ae615ae1b1e4892492efb17eef7  gcc/config/v850/v850.opt
! 75b484ad25f20c81ecb020007eecdd46  gcc/config/v850/v850.opt.urls
! 2a63260658d86ee47dcc5d90d97bd4c1  gcc/config/vax/builtins.md
! c84e93d5750a4bf7d514b69aa2e4ca71  gcc/config/vax/constraints.md
! b2bfb0834329f8d90e4990fe97c6d3f2  gcc/config/vax/elf.h
! 52993ff2886c3c6faa847a636237feac  gcc/config/vax/elf.opt
  ffe8c3dbf2e5ade855212ca387dfd0ac  gcc/config/vax/elf.opt.urls
! 02d80871f0e9373bf179ae868ca86175  gcc/config/vax/linux.h
! a4b4165ed798c295f6efa4bdf2e7d71c  gcc/config/vax/netbsd-elf.h
! fb67acb1d1c2a841747ff4d880477b60  gcc/config/vax/openbsd.h
! 1c189f8fd12eea89b3b6df03a930ad77  gcc/config/vax/openbsd1.h
! ae7d512c89d68a199632c8e4833ec548  gcc/config/vax/predicates.md
! 3c745ec22a34d4db41383e203e8bbc34  gcc/config/vax/vax-modes.def
! a3620453ae83ae76c8d836eb96587391  gcc/config/vax/vax-protos.h
! ae82ae0b00b4637a81eb63fc44c4b4b1  gcc/config/vax/vax.cc
! 229199e643644f927b9e9faee465a1c3  gcc/config/vax/vax.h
! 07c4dbabb21183633592e7b919bba44a  gcc/config/vax/vax.md
! b47cdf79a98e21dfe43144453a5d8ea5  gcc/config/vax/vax.opt
! b1022676f71e609c37ddec4d60517004  gcc/config/vax/vax.opt.urls
! 3a1e13187cbe98f04b0b80554d1b73f7  gcc/config/visium/constraints.md
! 1f937c79277cea58729f2f27ce838c8e  gcc/config/visium/elf.h
! f235846f2fcfe41e3dce0f3d9a404bbf  gcc/config/visium/gr5.md
! 865ad51c0b0006909292c33b46d467de  gcc/config/visium/gr6.md
! e4bd6d753fce5c0a5145835fb25e11f4  gcc/config/visium/predicates.md
! dc9fd0fcdfaf5a7b39301896d07d63c5  gcc/config/visium/t-visium
! 300ebd2886d97dd4826db1b8f3eae627  gcc/config/visium/visium-modes.def
! 4416d4ba39609e521032e32fdf1ad79b  gcc/config/visium/visium-opts.h
! c466f20388471f7f7e805b9ddd205c6c  gcc/config/visium/visium-passes.def
! c8898e904cf5a77ecb86f8663e5a2643  gcc/config/visium/visium-protos.h
! a3ed5beed845f598537471cf79787b58  gcc/config/visium/visium.cc
! 964b91c2ca076676dfc9467ca31c9ccc  gcc/config/visium/visium.h
! 3a74956889365c1915f8c4a3a3471dc4  gcc/config/visium/visium.md
! 94bb52dc27e61c9942f28da2e3d7ad9f  gcc/config/visium/visium.opt
  cb58a5003b350acfc6b46e18686c6041  gcc/config/visium/visium.opt.urls
! 85059e005c9bdc1c65026fdd772d1d14  gcc/config/vms/make-crtlmap.awk
! 437b5ab54e342023c1713152a50b375c  gcc/config/vms/t-vms
! c66ffb181769db908dbf13533e91bcd3  gcc/config/vms/t-vmsnative
! 9615c312d9f90d9bfdba69b4de3917b1  gcc/config/vms/vms-ar.c
! e966e13946fc0a230a63da4296f86378  gcc/config/vms/vms-c.cc
  c4603dec4151d376a2092ed7555c06d7  gcc/config/vms/vms-crtlmap.map
! ca9a560a9acac420159155c3afeaa521  gcc/config/vms/vms-f.cc
! 377e3769b76b968a860d0686e87c45d5  gcc/config/vms/vms-ld.c
! 07b102f0cd1efc7b5fd9128a671e413c  gcc/config/vms/vms-opts.h
! 0abb0a7cb618dd5c090ba286a5b69d2d  gcc/config/vms/vms-protos.h
! 10a224c8c0d79b5b8d8331992535a3b1  gcc/config/vms/vms-stdint.h
! e158ba859a8ee82dc91a2428a091e9a7  gcc/config/vms/vms.cc
! 34781de9668ef256919bf3781601feae  gcc/config/vms/vms.h
! 91d2de1f4ca9c502925acf56627a0d94  gcc/config/vms/vms.opt
  4cc4a480573474816840755220793eea  gcc/config/vms/vms.opt.urls
! 204aca7ef97e50072be42813809420fd  gcc/config/vms/x-vms
! 69354227b078c88a544ec5d767d3133e  gcc/config/vms/xm-vms.h
! a433967073759a090f8b9dfe4edbb2b7  gcc/config/vx-common.h
! 33ee18e29957ada2fd62845ab36ba94f  gcc/config/vxworks-c.cc
! d6fc92f58f938764c127fffbcba25bca  gcc/config/vxworks-driver.cc
! dedceff5b7090c6b80460bcf9c71b36b  gcc/config/vxworks-dummy.h
! 5ef22721a63565cd8368a9486b590980  gcc/config/vxworks-rust.cc
! 290dea54193183025cadd446a805e53d  gcc/config/vxworks-smp.opt
  3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
! db41c3afe6400aa617a29fed939098b3  gcc/config/vxworks-stdint.h
! d116c8735d54ccd8a16dee907edc0d4b  gcc/config/vxworks.cc
! f38dbc9b3f3b1b3b20db584ddc96806d  gcc/config/vxworks.h
! de29289842da20c73d7041c958de931d  gcc/config/vxworks.opt
  3452aecee51149d81f83ff52b39acead  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
  2c7fb7482d87758a9305ce4fec4c94ea  gcc/config/vxworks/_yvals-wrapper.h
--- 1418,5468 ----
  ed8c8d1cff975d8128d8a34e6fa60333  gcc/ada/libgnat/a-nscefu.ads
  ae6657265a333ec061d886c2e0a9be47  gcc/ada/libgnat/a-nscoty.ads
  c7bddd6abb488c8cd0d9982769254df5  gcc/ada/libgnat/a-nselfu.ads
! 53d30a543cb53e68755bc9b098778ed7  gcc/ada/libgnat/a-nuauco.ads
! 5db9f21f259e5304188a23259292c5f7  gcc/ada/libgnat/a-nuauco__x86.ads
! 0bea60858fc2b047601daffc4a171fdd  gcc/ada/libgnat/a-nuaufl.ads
! ee29ca627cfc44f3a2c3dd428d5ec436  gcc/ada/libgnat/a-nuaufl__simd.ads
! 0fab02353093326e9e09c056d7e9a15d  gcc/ada/libgnat/a-nuaufl__wraplf.ads
! 5a6ad8c9c92e0920092dbffc3e5ab744  gcc/ada/libgnat/a-nubinu.ads
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
! 4cfe4bef65a418f6190aa015b9ba4e6a  gcc/ada/libgnat/a-nudira.adb
! 72ce5fa9f1d86518b497c224e4848667  gcc/ada/libgnat/a-nudira.ads
  bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
! 28a2dd2db357161c9a10da52d69e3507  gcc/ada/libgnat/a-nuflra.adb
! 6b8d1dfff2165dd2baf2f6f1ec536d04  gcc/ada/libgnat/a-nuflra.ads
! 824c569c7b0954606b3ac3d9be05e3ac  gcc/ada/libgnat/a-numaux.ads
! 086b7e7e6872b523fe97b68aeaf03e1d  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
! f45795f24c9865c8450098da2b0f78c0  gcc/ada/libgnat/a-rbtgbk.adb
! 2acec5acdf4bd8d446f2825ee2d66cd5  gcc/ada/libgnat/a-rbtgbk.ads
! 5c7a7e20d9bbf683cbd37d8c6e101399  gcc/ada/libgnat/a-rbtgbo.adb
! 1d1a740fea8a93dab32b7adbb2f13d8c  gcc/ada/libgnat/a-rbtgbo.ads
! 126580571fc0d8658b5b843772b19cab  gcc/ada/libgnat/a-rbtgso.adb
! b3ca5b5a14f1d6cc9879e5b9c34130cc  gcc/ada/libgnat/a-rbtgso.ads
! 5e982ac4d843d05486145cfb99553417  gcc/ada/libgnat/a-sbecin.adb
! daa484640aa880f0a6fa9196ae16a6c1  gcc/ada/libgnat/a-sbecin.ads
! 67cfb9f09209bacd5aa3846f87123e5f  gcc/ada/libgnat/a-sbhcin.adb
! b699ed1f6e61d5fa02ac9fe5d12da7c7  gcc/ada/libgnat/a-sbhcin.ads
! be9707032536ad728519739f94448893  gcc/ada/libgnat/a-sblcin.adb
! 01765b2e8502a9dac96d167a817c2a2e  gcc/ada/libgnat/a-sblcin.ads
  67b280f23d76be962783b397ef7e60c7  gcc/ada/libgnat/a-scteio.ads
! df7e4e850e2ebba6850eaf177de8cf83  gcc/ada/libgnat/a-secain.adb
! be7c287bbf6af0e1a78e91f15e312f43  gcc/ada/libgnat/a-secain.ads
! 5176e967e558d7f20704800546e40d67  gcc/ada/libgnat/a-sequio.adb
! fafee04e3fca5f2b4e02a8da4ae5b307  gcc/ada/libgnat/a-sequio.ads
! a3e2fd1236a32dd17b4b286814fa519b  gcc/ada/libgnat/a-sfecin.ads
! 96476e4a3d17059da9233a418ea86255  gcc/ada/libgnat/a-sfhcin.ads
! 94012a0493ea64b82479b5ae9e4e5663  gcc/ada/libgnat/a-sflcin.ads
  43123af888cd4637ee6a1eaf9dde9e34  gcc/ada/libgnat/a-sfteio.ads
  63d0f0f0aed733a972873cb3a4b767ea  gcc/ada/libgnat/a-sfwtio.ads
  7207d517b5474be90def505e3a2be187  gcc/ada/libgnat/a-sfztio.ads
! c4fd360273271c27bbb9c967bd620f04  gcc/ada/libgnat/a-shcain.adb
! e31a6e1590154eeb877bd9fed4ad564d  gcc/ada/libgnat/a-shcain.ads
! ab399ccf17bcc107fae75abf33857d2b  gcc/ada/libgnat/a-siocst.adb
! 90f5c67b3519cca391a0c4e5b4374549  gcc/ada/libgnat/a-siocst.ads
  6fce3ea5eecdf93f2ec7d0446ebd14af  gcc/ada/libgnat/a-siteio.ads
  9330fbe80fe3844d3bf5aeb4946381f6  gcc/ada/libgnat/a-siwtio.ads
  c816a5bc136362b2468801e67deb9ae9  gcc/ada/libgnat/a-siztio.ads
! 6ac793d281940944c6c2e7fbe29224d0  gcc/ada/libgnat/a-slcain.adb
! 22d8b02f2475e13dd61caac14ac7c434  gcc/ada/libgnat/a-slcain.ads
! 8086b3c825a41e8399a8d7b5e6ba0d95  gcc/ada/libgnat/a-ssicst.adb
! f0d8ca0bae95ecac4ee35232a6cd5915  gcc/ada/libgnat/a-ssicst.ads
  3ec2f925719d14de3a80c38042157f78  gcc/ada/libgnat/a-ssitio.ads
  387afdf3ceb85d07a14d8ae4e2f0eeec  gcc/ada/libgnat/a-ssiwti.ads
  366683e8278e7e71bc63a8c7a3f2238f  gcc/ada/libgnat/a-ssizti.ads
! 81a05b2f318dc18007efcefd46712feb  gcc/ada/libgnat/a-stboha.adb
  8274f77970c3b1ed9a51aa8ddf6a4d0f  gcc/ada/libgnat/a-stboha.ads
! f276c6cb10f65eb81f321f7884d0bb2b  gcc/ada/libgnat/a-stbubo.adb
! 5fa31ede26b03197a991b01caac7d673  gcc/ada/libgnat/a-stbubo.ads
! b915c72d266ff1a4b7a0b46f609f1cf9  gcc/ada/libgnat/a-stbufi.adb
! 32764a1c864e178bb024251ad526fcab  gcc/ada/libgnat/a-stbufi.ads
! af291e6e6cf24ca57b16d2ff239e8352  gcc/ada/libgnat/a-stbufo.adb
! 376d9ec9419c7e3733edf81d49db1a49  gcc/ada/libgnat/a-stbufo.ads
! b33aac0ba9c7cbca0a56a407c33db5f1  gcc/ada/libgnat/a-stbuun.adb
  1e900014d9809db78ef32d2e97e1531b  gcc/ada/libgnat/a-stbuun.ads
! b604efb16d7191d08ef6a57b20f590fb  gcc/ada/libgnat/a-stbuut.adb
! 0ce9711433bdb7c8af7cb418025a6888  gcc/ada/libgnat/a-stbuut.ads
  756f44b0c7f4483ecd7302aee8bc110a  gcc/ada/libgnat/a-stfiha.ads
! dccfc9d73f3ca06a3bfb1fa24e86ade7  gcc/ada/libgnat/a-stmaco.ads
! 31c88c099440bfcd3ca7d9a312c79599  gcc/ada/libgnat/a-storio.adb
  34175bb2f712422ab4cfd24b3e452b0d  gcc/ada/libgnat/a-storio.ads
! e93ee3681eede50800c3fa92d80c4241  gcc/ada/libgnat/a-strbou.adb
! 23bd2bd0b77512d8f798aa3f877f0d59  gcc/ada/libgnat/a-strbou.ads
! bdabeea0065dd948161bac7232bb2a65  gcc/ada/libgnat/a-stream.adb
! 9cae22519cbfeb4b6eebe8c68e2cc3b7  gcc/ada/libgnat/a-stream.ads
! 9540dd0f9179fce951ec1c250a31849b  gcc/ada/libgnat/a-strfix.adb
! 772900c294bfa8ad09079e6ddbef7ae9  gcc/ada/libgnat/a-strfix.ads
! 782da4ff715834a4204876023c4565b8  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 193681c63ff6bd184d96d0b156ff150f  gcc/ada/libgnat/a-strmap.adb
! fde87f914a0fb6921988804794d7e36d  gcc/ada/libgnat/a-strmap.ads
! 50a564a9a97383badae9065a09d9d489  gcc/ada/libgnat/a-strsea.adb
! 2a5097c79ed0f127f2c1ed00c49e49a8  gcc/ada/libgnat/a-strsea.ads
! 666d32ee01d180ac98d7063c3dce7b89  gcc/ada/libgnat/a-strsto.ads
! 60c1c557a21155dc89b5481fc60f94fa  gcc/ada/libgnat/a-strsup.adb
! a0e109f345b7bd1042ee73f24b4bea37  gcc/ada/libgnat/a-strsup.ads
! 1c4f67b098ee46e794d0c3a2fe19f206  gcc/ada/libgnat/a-strunb.adb
! ec39f56f954e99f14f687ed0ff26552d  gcc/ada/libgnat/a-strunb.ads
! aa88bcbf41d237d4c910e39e82ad93ea  gcc/ada/libgnat/a-strunb__shared.adb
! ecc2d659a7873d1afdf281494879f5c3  gcc/ada/libgnat/a-strunb__shared.ads
! d8ef923a285047286c910b75d5c2ee5d  gcc/ada/libgnat/a-ststbo.adb
! 6999c77cdf8e7a03349dfff6fe06a9d4  gcc/ada/libgnat/a-ststbo.ads
! 19b63e4da81a2d4211a4320ce3a81c91  gcc/ada/libgnat/a-ststio.adb
! a0c6247a9c476178aa1f87f90fc4c1f1  gcc/ada/libgnat/a-ststio.ads
! f332196b6e7cddd0512326983ce006af  gcc/ada/libgnat/a-ststun.adb
! 04a6393cd83914b796b329768fb924cd  gcc/ada/libgnat/a-ststun.ads
! 8d9e1d6dbecf60964003aae2f207c577  gcc/ada/libgnat/a-sttebu.adb
  3c26fa3924701bf0fb31cc7ce9580ec6  gcc/ada/libgnat/a-sttebu.ads
! 5a86c45dc38b1ea25824bcb3516d9333  gcc/ada/libgnat/a-stunau.adb
! c1962f24a88614e51a72a557fb83d89d  gcc/ada/libgnat/a-stunau.ads
! 2b9d16581498a21f378073fcee90bdb5  gcc/ada/libgnat/a-stunau__shared.adb
! f478dc329471859dd6ec647c1c23f31d  gcc/ada/libgnat/a-stunha.adb
  da4a8d13f76850d714a8213ada7477d2  gcc/ada/libgnat/a-stunha.ads
! 21879cbc54cb6acb1984a59b500bab75  gcc/ada/libgnat/a-stuten.adb
  0f5fe8e890a5c8c46160b756ee5500f3  gcc/ada/libgnat/a-stuten.ads
! 65709c42cccb21102458683b911678c0  gcc/ada/libgnat/a-stwibo.adb
! df504fbfcfa231bc13483c040a1b81a9  gcc/ada/libgnat/a-stwibo.ads
! e577710adb1ca147a6d4248d4b461897  gcc/ada/libgnat/a-stwifi.adb
  b0cf3f05e49e1640bf231034269cb951  gcc/ada/libgnat/a-stwifi.ads
! fb95478bf10a92d004addc6efefe8498  gcc/ada/libgnat/a-stwiha.adb
  3255ad19d07346032c9d005d6a27475f  gcc/ada/libgnat/a-stwiha.ads
! 7e7bfc64dc0e2fec60b9f67450c905e2  gcc/ada/libgnat/a-stwima.adb
! e945e393a0fe2f13b4eefbc3a47e1bd6  gcc/ada/libgnat/a-stwima.ads
! 35b6dee80743d9253ce0f38c7f7545b6  gcc/ada/libgnat/a-stwise.adb
! 17d09294a902d13d57775e8517cc6bf9  gcc/ada/libgnat/a-stwise.ads
! c2869907bc80321b2588ec6a67c5a7e8  gcc/ada/libgnat/a-stwisu.adb
! 8119e9702b937471a8c99dc5d7c3bc26  gcc/ada/libgnat/a-stwisu.ads
! 58d74ad76c30c9e35de3f08902cf507c  gcc/ada/libgnat/a-stwiun.adb
! a9d0860644b353e53a34ff8f1a9a2c87  gcc/ada/libgnat/a-stwiun.ads
! 545b97c3318d2d54867271b3e875fe66  gcc/ada/libgnat/a-stwiun__shared.adb
! 8d4b174d18a374b1b96953857f4a13f4  gcc/ada/libgnat/a-stwiun__shared.ads
! 7136ca9d23d95a4031c76841bdee83ad  gcc/ada/libgnat/a-stzbou.adb
! c891eef849a930cd3a26a0ecc087548c  gcc/ada/libgnat/a-stzbou.ads
! 755318d4bdb172791ac462d8b68d5f0f  gcc/ada/libgnat/a-stzfix.adb
  f3ddc25c20b07c4072918c6c0ea20ff9  gcc/ada/libgnat/a-stzfix.ads
! 844ac7a0c9f79c83b2515f19bc19f9ad  gcc/ada/libgnat/a-stzhas.adb
  41c71febbb354000bccca4ccd3a59c54  gcc/ada/libgnat/a-stzhas.ads
! 12caa9f12fc813c0515d6578e631435a  gcc/ada/libgnat/a-stzmap.adb
! 6a637dcc4ddff32d46868aebf4a91372  gcc/ada/libgnat/a-stzmap.ads
! 5c0f4fd060eb8b0e67d831c2f4385ad0  gcc/ada/libgnat/a-stzsea.adb
! d55d502a6a36904a7cd9e38161c25464  gcc/ada/libgnat/a-stzsea.ads
! 70a5372e0bc6f58f1c6aaa53e7521b54  gcc/ada/libgnat/a-stzsup.adb
! 4c10f504df8a2e33ed3e9bd57b131910  gcc/ada/libgnat/a-stzsup.ads
! 613815a3a9c4c6bb07f7a1485622bdf4  gcc/ada/libgnat/a-stzunb.adb
! 7829bee7b68e11fdf7f2adcb25e4a61f  gcc/ada/libgnat/a-stzunb.ads
! 1e4679365ae1f6fb8dcc0f8bdc5b53bc  gcc/ada/libgnat/a-stzunb__shared.adb
! 56f28386b5394a0b371d3b9aabe1d935  gcc/ada/libgnat/a-stzunb__shared.ads
! e108947880fb3d77a8d0b188b788a9db  gcc/ada/libgnat/a-suecin.adb
! 33c512b32edc0a1de803a7a635cc23ea  gcc/ada/libgnat/a-suecin.ads
! f35ab2c769e794856ef1a63b0b7549f0  gcc/ada/libgnat/a-suenco.adb
  24c625ef90e191bc1baa69c58ae2600f  gcc/ada/libgnat/a-suenco.ads
! c2af4716c03523a7d58d927cb4d4490b  gcc/ada/libgnat/a-suenst.adb
  5a81ae9196b241db71c16198169dbed7  gcc/ada/libgnat/a-suenst.ads
! 6bc1c0cd1777044be6c97f08430e51b1  gcc/ada/libgnat/a-suewst.adb
  88073629f5531c7f6fba98820112cd02  gcc/ada/libgnat/a-suewst.ads
! 812e9247e0d64d4004748ed0771d75b9  gcc/ada/libgnat/a-suezst.adb
  5aaf32a65e951f050f1cbb5adf5af9d2  gcc/ada/libgnat/a-suezst.ads
! 8a8841a2043292185d109961edd8a209  gcc/ada/libgnat/a-suhcin.adb
! f1826087574657bfed0258e776e7b638  gcc/ada/libgnat/a-suhcin.ads
! 00ce93f0d00190c2bcb84656a338d95b  gcc/ada/libgnat/a-sulcin.adb
! d4e52dfe8dafce8dcf674ea425f25bab  gcc/ada/libgnat/a-sulcin.ads
! 430f11f92af14b71ae311bed7c42f085  gcc/ada/libgnat/a-suteio.adb
! 3bac09113604a5d6dcd5565ca06f1241  gcc/ada/libgnat/a-suteio.ads
! 65ebd340242d16bc2ec4304310c0c4aa  gcc/ada/libgnat/a-suteio__shared.adb
! 518287b423edad4c3e1d68182228e20f  gcc/ada/libgnat/a-swbwha.adb
  65f3f68c6718760b4c2b0beba2af9f82  gcc/ada/libgnat/a-swbwha.ads
  aaf273ef9a113dedcab8fb87b71b7365  gcc/ada/libgnat/a-swfwha.ads
! b1225c5e797715d872a1904de2969b06  gcc/ada/libgnat/a-swmwco.ads
! 1c2b10ac7cfd6574c8d0bcf6b1bf4d9e  gcc/ada/libgnat/a-swunau.adb
! 508efdf032c69757de15f3bba61db917  gcc/ada/libgnat/a-swunau.ads
! 34f5e6f05a771150916f0c321c550aef  gcc/ada/libgnat/a-swunau__shared.adb
! c8643f183f59a575eec9c71b527dd6ff  gcc/ada/libgnat/a-swuwha.adb
  45d76b5b911889e181b3717ab6c91651  gcc/ada/libgnat/a-swuwha.ads
! 517418a3149d313f1114a2862d4829b1  gcc/ada/libgnat/a-swuwti.adb
! ed80936f5460ed6aef1b01d681d3a90f  gcc/ada/libgnat/a-swuwti.ads
! e6a11a528fc473d1b0d85a8b2caac5f4  gcc/ada/libgnat/a-swuwti__shared.adb
! bedc62f409fb47a7b2e4b0b48fa7cbbf  gcc/ada/libgnat/a-szbzha.adb
  18b9cf476495930cec4ac3eb881257db  gcc/ada/libgnat/a-szbzha.ads
  32bb3b01e46ff7648c862537bd77aa0d  gcc/ada/libgnat/a-szfzha.ads
! 00f6abaab4c04fe31af76309b7ff4d00  gcc/ada/libgnat/a-szmzco.ads
! 7254491e0fc1437e4e21524144335307  gcc/ada/libgnat/a-szunau.adb
! c23a5ff46800d1274fa4d2955bc3e7f9  gcc/ada/libgnat/a-szunau.ads
! a77570cab286822205ee31647d625966  gcc/ada/libgnat/a-szunau__shared.adb
! 830ddabbb826dcdf1a407125b08bb5b7  gcc/ada/libgnat/a-szuzha.adb
  01cf107c9e66d7e5284c9b7ce2e2ed7e  gcc/ada/libgnat/a-szuzha.ads
! 45a8bb0c0e40f9ddf15a544105c9e438  gcc/ada/libgnat/a-szuzti.adb
! 720d282d8af0d55f18cbc360d1d4e596  gcc/ada/libgnat/a-szuzti.ads
! 446d501a8c389e4424d987f6cf0c2c18  gcc/ada/libgnat/a-szuzti__shared.adb
! b4f8914cdfcfca484cf65104451520e9  gcc/ada/libgnat/a-tags.adb
! ea78bd12964b1dbc00309be1e636481e  gcc/ada/libgnat/a-tags.ads
! a4c59f622240d28aba0aad45bc867251  gcc/ada/libgnat/a-teioed.adb
! e89addfa8ee268683ba2c5b7b7a4ca5c  gcc/ada/libgnat/a-teioed.ads
! 1dc0fed26f7217c217e8f14b172785ac  gcc/ada/libgnat/a-textio.adb
! 7d95dc0e7953a2ef8174adf06a3aa0b1  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
! b585b3ea5b1481d8ed0b724bd0d7263f  gcc/ada/libgnat/a-tiboio.adb
  7b163db9f1467e9392f347bee1400136  gcc/ada/libgnat/a-tiboio.ads
! f03d9561e7f7a844be538f37c867746f  gcc/ada/libgnat/a-ticoau.adb
! 2f847d5e33cc2d83279194f3773ccf79  gcc/ada/libgnat/a-ticoau.ads
! d41d6f48e1c6189440cad7852d2dda0b  gcc/ada/libgnat/a-ticoio.adb
! a71dd241c7c37541444e89ccf4a592cc  gcc/ada/libgnat/a-ticoio.ads
! 0489f638b6f9338ce5b3f60036bafe09  gcc/ada/libgnat/a-tideau.adb
! d4a4696e59ac81a0bb56635113609d6e  gcc/ada/libgnat/a-tideau.ads
! a3fd4cf2c9359e7a850bd1690e9a23b4  gcc/ada/libgnat/a-tideio.adb
! e1d21468d8dbe72facd07c26f37e0916  gcc/ada/libgnat/a-tideio.ads
! 1263cf1893276848fddc9165a8cdf796  gcc/ada/libgnat/a-tideio__128.adb
! 2576e8463e68d56119d3d008e8f80407  gcc/ada/libgnat/a-tienau.adb
! 69d80b780a50f57df1ac8085458a2441  gcc/ada/libgnat/a-tienau.ads
! 0ecd5c18ceb172c37a87774fbd6063ef  gcc/ada/libgnat/a-tienio.adb
  4f45fb79824b66021fe483d1b210e8c9  gcc/ada/libgnat/a-tienio.ads
! 935655d07ba797732316881e1a0504cb  gcc/ada/libgnat/a-tifiau.adb
! fca90994ac67b0cbefa8dc5769ca3557  gcc/ada/libgnat/a-tifiau.ads
! 51b54c994053fb7da65c1c8df89a44db  gcc/ada/libgnat/a-tifiio.adb
  c16ad9374e832bfec80cdb19f8afaa99  gcc/ada/libgnat/a-tifiio.ads
! ccd6e91d128a6b19e876f2bafd80e737  gcc/ada/libgnat/a-tifiio__128.adb
! 9e4762cc610e787acc987fdca0f356a9  gcc/ada/libgnat/a-tiflau.adb
! 9aa4927052385939e731ca88a0f92f8d  gcc/ada/libgnat/a-tiflau.ads
! 30f68c9d52ea481673ff9f6d7627ffb2  gcc/ada/libgnat/a-tiflio.adb
! aacac0f4a1853987a16a6302a427a201  gcc/ada/libgnat/a-tiflio.ads
! 3116d90cca3d2e0c37d13162f1293273  gcc/ada/libgnat/a-tigeau.adb
! daa1ae03c5abdd6f4d628700a5937281  gcc/ada/libgnat/a-tigeau.ads
! bba2723c3d6a426f1ddb8c8d1b2c33fb  gcc/ada/libgnat/a-tigeli.adb
! e0d50f9dfa9452c850d984f3a8adf5ae  gcc/ada/libgnat/a-tiinau.adb
! 8d8dd504f8e7527f274cf760f213555f  gcc/ada/libgnat/a-tiinau.ads
! 3233348b569ae07b1dac346c4b98bdd5  gcc/ada/libgnat/a-tiinio.adb
! 99595a5443334cb1af325f1950b20eb5  gcc/ada/libgnat/a-tiinio.ads
! 281667cb12b6e43691d333983194d134  gcc/ada/libgnat/a-tiinio__128.adb
! 7b23752298b6ec56e8ca100a0976795b  gcc/ada/libgnat/a-timoio.adb
! 2fe607de9808e19daad1b9a6aae68fa6  gcc/ada/libgnat/a-timoio.ads
! af99593e9a9b340e22ea7c93021495a1  gcc/ada/libgnat/a-timoio__128.adb
! 232906192075e076da41c2b54970140c  gcc/ada/libgnat/a-tiocst.adb
! 1f24c1bd7678ef3ddd19e951c6511980  gcc/ada/libgnat/a-tiocst.ads
! d0e9ee64b6b571eae7145ff265e0383d  gcc/ada/libgnat/a-tirsfi.adb
! 734b273d74c28a2c2449be162bb93b39  gcc/ada/libgnat/a-tirsfi.ads
! 7a93139f1ed5bf3111b20154133eebca  gcc/ada/libgnat/a-titest.adb
  7b71ac41d87e6c43f98663d1d110846c  gcc/ada/libgnat/a-titest.ads
  1a5a51a7ff392f1819e96c8c7b6ba50b  gcc/ada/libgnat/a-tiunio.ads
! 421214dfafdf7456f464a1734c797a24  gcc/ada/libgnat/a-unccon.ads
! 620eb548e048c419eb0afa658f132e5c  gcc/ada/libgnat/a-uncdea.ads
! af7e16d5681268206a428d5e0cbca4d8  gcc/ada/libgnat/a-undesu.adb
  82a804005be52b8d315b11082ce952d4  gcc/ada/libgnat/a-undesu.ads
! 8c4e087830ba409611f51449844a8872  gcc/ada/libgnat/a-wichha.adb
  bc85d10bd14a8eda24559935a5472a57  gcc/ada/libgnat/a-wichha.ads
! e0a759fef5ef7204032d4f8143375ddf  gcc/ada/libgnat/a-wichun.adb
! a203bd15a3a7ef001edfcddb932da9b7  gcc/ada/libgnat/a-wichun.ads
  495dc144d91ae1388ae48ceb32e47f91  gcc/ada/libgnat/a-widcha.ads
! a16264b8c448dbe38193d737b6360dbf  gcc/ada/libgnat/a-witeio.adb
! ae6f40246b6ece421ac61deee15507c2  gcc/ada/libgnat/a-witeio.ads
! 3e0a14449a866849bcfa41ddeb17e98a  gcc/ada/libgnat/a-wrstfi.adb
! cefc106d16071ad06c0c29ff357c5f1b  gcc/ada/libgnat/a-wrstfi.ads
! 680bf6a5afcb768dfbeca9bf4fe84963  gcc/ada/libgnat/a-wtcoau.adb
! 8b8333cf55fcc2bc72d1e82e02e4507a  gcc/ada/libgnat/a-wtcoau.ads
! cb15a61fde786d58c403823fe56be3c9  gcc/ada/libgnat/a-wtcoio.adb
  d76fe24c6988d732303e4f40830c2082  gcc/ada/libgnat/a-wtcoio.ads
! e4ef2e721e220882f744c5c685f73294  gcc/ada/libgnat/a-wtcstr.adb
! 15aff54672cc5ce3b183b25e2edf4383  gcc/ada/libgnat/a-wtcstr.ads
! 5b039541598f00090f9495e62aeb454f  gcc/ada/libgnat/a-wtdeau.adb
! da94bbf3c69a729937b7e84209ee4e79  gcc/ada/libgnat/a-wtdeau.ads
! e19f8018adaeb399cf01fd22884e6480  gcc/ada/libgnat/a-wtdeio.adb
  20d4a8b1dbec170436bce906004aaac8  gcc/ada/libgnat/a-wtdeio.ads
! f688e9827d4cfd191a105322f7207bd0  gcc/ada/libgnat/a-wtdeio__128.adb
! e6415f31fb70862d34447f5886857ca8  gcc/ada/libgnat/a-wtedit.adb
! d3eb2ca9cdfe8b54b2263009c5a2b03f  gcc/ada/libgnat/a-wtedit.ads
! 875f1263c858dacd9bb8955cc7b0f51b  gcc/ada/libgnat/a-wtenau.adb
! ac4398c87a170e85d59c963be7af117d  gcc/ada/libgnat/a-wtenau.ads
! 91df544440665eb4c4526e4225ed52c4  gcc/ada/libgnat/a-wtenio.adb
  fa13b730a5c90ff293982415bf7bcecb  gcc/ada/libgnat/a-wtenio.ads
! 3b0674406550c4c28446f9a131b294a4  gcc/ada/libgnat/a-wtfiau.adb
! c20c7b666d2627cca061ca81466a6530  gcc/ada/libgnat/a-wtfiau.ads
! 01b7d5def2bb11475a899a86e4735341  gcc/ada/libgnat/a-wtfiio.adb
  495444487be476924785b4b8eff6b910  gcc/ada/libgnat/a-wtfiio.ads
! 7d6cb373c9d4e36a4ee743b50c79efdd  gcc/ada/libgnat/a-wtfiio__128.adb
! ba793699253bde380b8cff98bb381f4a  gcc/ada/libgnat/a-wtflau.adb
! 2880cfc5b513bda155fe4aa0ff52f782  gcc/ada/libgnat/a-wtflau.ads
! 10b9ebd56179660704a76617c558027e  gcc/ada/libgnat/a-wtflio.adb
  bb57e8648d7de30496bb43f8a849fc3f  gcc/ada/libgnat/a-wtflio.ads
! 066188a11e7b5f8c4144a0a18b221263  gcc/ada/libgnat/a-wtgeau.adb
! dc3f15a1f187799b356db587869f7092  gcc/ada/libgnat/a-wtgeau.ads
! 5818ecf500568d0805b623da8ac0f73d  gcc/ada/libgnat/a-wtinau.adb
! 9dae37b2693708f2328a577fbe72c96e  gcc/ada/libgnat/a-wtinau.ads
! 1fc1ee1b0b947b8494a1ccf43c00b29e  gcc/ada/libgnat/a-wtinio.adb
  62a64f1715aaaa145cf2b6d360381363  gcc/ada/libgnat/a-wtinio.ads
! 663565042ce6002bcf45755d945d9bb6  gcc/ada/libgnat/a-wtinio__128.adb
! f94390a2963ff7c616351688c017d6b5  gcc/ada/libgnat/a-wtmoio.adb
! 3eefe7c1d9673aea64cd6d819b2b4572  gcc/ada/libgnat/a-wtmoio.ads
! 56f6ff8a058e45f480b86c3af71c3604  gcc/ada/libgnat/a-wtmoio__128.adb
! 216dd10923f9627d09b613d054576df0  gcc/ada/libgnat/a-wttest.adb
  53d3d301f9afb69992013f55fe363511  gcc/ada/libgnat/a-wttest.ads
! 6c8efe54829a877892e11f09fbe740d0  gcc/ada/libgnat/a-wwboio.adb
  899e14502ec4dedbf4fdb28f8cecfa35  gcc/ada/libgnat/a-wwboio.ads
  1c2480c111fa5b71fca7c67f21525f8f  gcc/ada/libgnat/a-wwunio.ads
  107d2989204d28e32923acc02d444f67  gcc/ada/libgnat/a-zchara.ads
! d0eb6b2ded9d37b37f2c6e045bff6dd1  gcc/ada/libgnat/a-zchhan.adb
  ce55ee9974e330611ce057d096fe581f  gcc/ada/libgnat/a-zchhan.ads
! 3a8667bb2db99b8cee0e2a5e2f49089a  gcc/ada/libgnat/a-zchuni.adb
! 1fe8068337933a98f6ab0c4e71ab1b80  gcc/ada/libgnat/a-zchuni.ads
! a22f4c40550be7f15b736214800fedc9  gcc/ada/libgnat/a-zrstfi.adb
! c5268ea2f58d3845c975112a58bf4ce1  gcc/ada/libgnat/a-zrstfi.ads
! 3cef975a1d4e5437e66d21ba72f0e34a  gcc/ada/libgnat/a-ztcoau.adb
! 3bd5450b4508e3ee6293ee3a75cffa92  gcc/ada/libgnat/a-ztcoau.ads
! a73030e1168bf96482f81bdbf6267b23  gcc/ada/libgnat/a-ztcoio.adb
  7440d81a0d7886b3f76b271c7fcbf8b3  gcc/ada/libgnat/a-ztcoio.ads
! 038164de2aaff16aac709d31a3159abb  gcc/ada/libgnat/a-ztcstr.adb
! b7bb72f15d2464a3b7a62f161b902b91  gcc/ada/libgnat/a-ztcstr.ads
! fc0fdd523d19809703fdeb1a3bac3979  gcc/ada/libgnat/a-ztdeau.adb
! d7a8e397e90bfd7941a1fe3ce4e7f324  gcc/ada/libgnat/a-ztdeau.ads
! 0a901b176bb73140ba9ea2cca6df8caf  gcc/ada/libgnat/a-ztdeio.adb
  a1457649e626ebf32915696e5afd2ac0  gcc/ada/libgnat/a-ztdeio.ads
! b9b177a88dbc689cd55cad362764e646  gcc/ada/libgnat/a-ztdeio__128.adb
! 90d6de71e8e29064b030b80135094127  gcc/ada/libgnat/a-ztedit.adb
! c0d0333a3492b38f56ff03890dbff60b  gcc/ada/libgnat/a-ztedit.ads
! 0bfe1715be00563ed33ebfebec4985e1  gcc/ada/libgnat/a-ztenau.adb
! d608983b3442eb8f43fd10777b5197fd  gcc/ada/libgnat/a-ztenau.ads
! 5cb433809f3ad45d0d6e6f36db4438fa  gcc/ada/libgnat/a-ztenio.adb
  33aa889d92f43b14a348a444135fc992  gcc/ada/libgnat/a-ztenio.ads
! bee760ec483726e853be1c9ba73e6f84  gcc/ada/libgnat/a-ztexio.adb
! d4cb0c2b9ac1f5a380a0150e914689a4  gcc/ada/libgnat/a-ztexio.ads
! a2e5da06213f425b7f1814cc016f862e  gcc/ada/libgnat/a-ztfiau.adb
! 5adb34460d67ecb22281a37893abf639  gcc/ada/libgnat/a-ztfiau.ads
! a692752939144d77afff4676c843a066  gcc/ada/libgnat/a-ztfiio.adb
  9e2efe8c1c2d6658a575fbecb5ab1418  gcc/ada/libgnat/a-ztfiio.ads
! 3d89f09f3edb9698db7338969a9b40d6  gcc/ada/libgnat/a-ztfiio__128.adb
! 5f083402416ed25187bda81482907afc  gcc/ada/libgnat/a-ztflau.adb
! 1619a0c60fed9a851e9ffea36b409c36  gcc/ada/libgnat/a-ztflau.ads
! 11a5faa9f8cd552dc1118522cd12ea10  gcc/ada/libgnat/a-ztflio.adb
  7aae0945e67f16f4f77aa54a65552f3e  gcc/ada/libgnat/a-ztflio.ads
! 618da48602f1bb498992b9bf9ddd6d5d  gcc/ada/libgnat/a-ztgeau.adb
! 1bc04893951676c088bdfddfce54b70c  gcc/ada/libgnat/a-ztgeau.ads
! c022ad85c7ad2ea915164f4796f6fefd  gcc/ada/libgnat/a-ztinau.adb
! 641b07edb013357f2e8be63159b7b3cb  gcc/ada/libgnat/a-ztinau.ads
! 28706e4e97d6c08ff593c5dda83ed9ed  gcc/ada/libgnat/a-ztinio.adb
  f0456d31ec0aa6f6786e1b635f8023cb  gcc/ada/libgnat/a-ztinio.ads
! ac29d31feaf0fa9dca31483d11e42f0c  gcc/ada/libgnat/a-ztinio__128.adb
! f6770f6da09810224f52e5f20b6da156  gcc/ada/libgnat/a-ztmoio.adb
  9831d312ef279fc55e5e051745be05d2  gcc/ada/libgnat/a-ztmoio.ads
! 0495d822c505bc5c6dfbdc5e2b2c2ea8  gcc/ada/libgnat/a-ztmoio__128.adb
! 62bb137a7e7cccffd19514eabe588660  gcc/ada/libgnat/a-zttest.adb
  2caf047380f684add2bd5a35dc4e1091  gcc/ada/libgnat/a-zttest.ads
! 0eaa9da0169473da51b103d21e0cb192  gcc/ada/libgnat/a-zzboio.adb
  a80428bcd2bf9ab7214609e68ff1651c  gcc/ada/libgnat/a-zzboio.ads
  a6d7b54a7a1a401188cfe54d1c2bad3b  gcc/ada/libgnat/a-zzunio.ads
! 5dc95a6d9c5ec1009529eda3de8c3f8c  gcc/ada/libgnat/ada.ads
  71c71bcd90c113e366bf720c3d886660  gcc/ada/libgnat/calendar.ads
  e150ba4c7f01d70e0086543a96ffd40b  gcc/ada/libgnat/directio.ads
! 3bd0d55614289d73d4a6405e176ed5aa  gcc/ada/libgnat/g-allein.ads
! ef04e4935fa9c76463fbe3ab295f1ba7  gcc/ada/libgnat/g-alleve.adb
! 8db46a8b873e4e07bbc885661c90a580  gcc/ada/libgnat/g-alleve.ads
! 2510c502cc8469726dfc1737644a429b  gcc/ada/libgnat/g-alleve__hard.adb
! e0b6b9a2971035c11f13980f58a2646d  gcc/ada/libgnat/g-alleve__hard.ads
! a3ebc59f119d9810836886c08b8e2905  gcc/ada/libgnat/g-altcon.adb
! 32717619659539e02031f23fd09b369a  gcc/ada/libgnat/g-altcon.ads
! ea8bb8cba7ee43fa2a80742394921aaf  gcc/ada/libgnat/g-altive.ads
! dec8aa4aa12ee6edb74f33db95d1e21a  gcc/ada/libgnat/g-alveop.adb
! c844da62c2c1d42a27874d59921a33b8  gcc/ada/libgnat/g-alveop.ads
! 3204058678e934b5812759872a95415d  gcc/ada/libgnat/g-alvety.ads
! e4e5e67bcc202f2a8de210c51754e72b  gcc/ada/libgnat/g-alvevi.ads
! 880562fee7879246be804c25a2325c72  gcc/ada/libgnat/g-arrspl.adb
! f76088304523385d9b568ca35ae71b91  gcc/ada/libgnat/g-arrspl.ads
! 679000d9f8146705294bb0194d0287d0  gcc/ada/libgnat/g-awk.adb
! d8f597f1a97585e9886f69d61881f8a0  gcc/ada/libgnat/g-awk.ads
! 1e91c5317753bc276b08aca5df85f85c  gcc/ada/libgnat/g-binenv.adb
! c256edd3f231bd937af4e762e2e9dd4f  gcc/ada/libgnat/g-binenv.ads
! e852904b2d75f5db610fa5d875e0ed94  gcc/ada/libgnat/g-binsea.adb
! 04350ba51434504e64d0a52e462ee146  gcc/ada/libgnat/g-binsea.ads
! 6d3e48ee3d106d2eb68610f4dd8cdc52  gcc/ada/libgnat/g-brapre.ads
! a0a56cd0673f787a638db3acb5dc625d  gcc/ada/libgnat/g-bubsor.adb
! 7049a720a514de53a44e6e0b8cc47150  gcc/ada/libgnat/g-bubsor.ads
! 5e149da2c2bd94a88dde56f6a07003b6  gcc/ada/libgnat/g-busora.adb
! 401e7ee9c96328d3dea56b42948dfabd  gcc/ada/libgnat/g-busora.ads
! 9385ba36c03567ccaa1fa8c351b3ef2b  gcc/ada/libgnat/g-busorg.adb
! ba42f57979e85f9332b1abfaaaa87acc  gcc/ada/libgnat/g-busorg.ads
! 573d05d6a51cf7904025fe9a39887992  gcc/ada/libgnat/g-byorma.adb
! 88c79d357cdbd1228d991c58d3abb14b  gcc/ada/libgnat/g-byorma.ads
! 6b4c08a28de128992419116223b49748  gcc/ada/libgnat/g-bytswa.adb
! cfca851f558eff2691d8c4725422f34d  gcc/ada/libgnat/g-bytswa.ads
! e4413ca3f51093a6080d135df52d06a0  gcc/ada/libgnat/g-calend.adb
! 54d472cb4a530e1a3d8f57c5a71eaf9c  gcc/ada/libgnat/g-calend.ads
! 172cbdecdc80b79191b03d1e99bebb5b  gcc/ada/libgnat/g-casuti.adb
! 1bf6a034e019c41d01d146693f15f4da  gcc/ada/libgnat/g-casuti.ads
! 9004c8eb5f66587c112d85fdf8705767  gcc/ada/libgnat/g-catiio.adb
! 08ecd314d04d23faef4bf50b9211f401  gcc/ada/libgnat/g-catiio.ads
! cd5ed1507ed15da465812bff03bdefb6  gcc/ada/libgnat/g-cgi.adb
! 87454623de863bd613abcf50cb4b598b  gcc/ada/libgnat/g-cgi.ads
! ad19ea9e6a633e4d741214ced2e46310  gcc/ada/libgnat/g-cgicoo.adb
! 8af4ec927c7d0db69b73d845228a32da  gcc/ada/libgnat/g-cgicoo.ads
! 88108b95c6a079bc3ce75103bc7bb0cb  gcc/ada/libgnat/g-cgideb.adb
! d7b958128fcc86dfc693f6f63f6d3d08  gcc/ada/libgnat/g-cgideb.ads
! 58c43fc219421757e0553f7ac7b8b8ab  gcc/ada/libgnat/g-comlin.adb
! 27fc353b913cf64eecec2128b4f1a2ae  gcc/ada/libgnat/g-comlin.ads
! edd3c40fbea1ccaeaf948315ca7542ad  gcc/ada/libgnat/g-comver.adb
! fab7f9e01e4cc862fc07ee1ea9b97ef0  gcc/ada/libgnat/g-comver.ads
! b458716ed3a2ca6128d9f4df25135c88  gcc/ada/libgnat/g-cpp.ads
! 5825e3fd507da898b60689144fc5f3b1  gcc/ada/libgnat/g-cppexc.adb
! 151dc239cbb301f9eb9b7f3fd370cba9  gcc/ada/libgnat/g-cppexc.ads
! e8aea660b8e7e260da34ddc3b61dbd84  gcc/ada/libgnat/g-cppstd.adb
! 8bebfb7712db94ac89caccc10594170b  gcc/ada/libgnat/g-cppstd.ads
! 87484df6783835380c75169ece0e16d2  gcc/ada/libgnat/g-crc32.adb
! ac4950d17914825d8c273a996cbeb2f6  gcc/ada/libgnat/g-crc32.ads
! fe7ff5d5bcae48f78fc4e1ecb93bbde5  gcc/ada/libgnat/g-csclex.ads
! cd8c3cd7d59572de2650a3b26c46fd7a  gcc/ada/libgnat/g-cstyin.adb
! 4f41dfe401dd38a15d9156bd507f5a6a  gcc/ada/libgnat/g-cstyin.ads
! acc8c08e86b010b03c92fe834cf8c7a6  gcc/ada/libgnat/g-ctrl_c.adb
! 6e7ef5dc6a98128f856696fb9ca55a1b  gcc/ada/libgnat/g-ctrl_c.ads
! 796a7bf12655e14d8dbebd64a162d51d  gcc/ada/libgnat/g-curexc.ads
! e7993cf0b744d358d36a91c2eeb3943d  gcc/ada/libgnat/g-debpoo.adb
! c528152938d5e63d5cd189dc2d8c34d4  gcc/ada/libgnat/g-debpoo.ads
! b2ebc39df268076472b0e416d59aa179  gcc/ada/libgnat/g-debuti.adb
! d68b0933a4720191ec5bdc6ba5b70f59  gcc/ada/libgnat/g-debuti.ads
! af619e61ee70d8bedf1a4e10616139f8  gcc/ada/libgnat/g-decstr.adb
! e3f53391c37f2cc55a9e33d835d621ec  gcc/ada/libgnat/g-decstr.ads
! 283505508da3305ab7609804422dde2d  gcc/ada/libgnat/g-deutst.ads
! d089a987b85858fcdbeeef14bc570e03  gcc/ada/libgnat/g-diopit.adb
! 2205726a86f5b967cf976d861019b887  gcc/ada/libgnat/g-diopit.ads
! 1ea4850b2f5f7eccbef90d304751afab  gcc/ada/libgnat/g-dirope.adb
! 1201ee24984095961e8e09e208fb1ca4  gcc/ada/libgnat/g-dirope.ads
! d61118e01ae748248016a8b908a2ad99  gcc/ada/libgnat/g-dynhta.adb
! bc9234c4fbecf6e198582a40893e7c7b  gcc/ada/libgnat/g-dynhta.ads
! 5c05437e5d5d7122c2e6909f663a9673  gcc/ada/libgnat/g-dyntab.adb
! 7fe4f79d9cd4ae09de54937cd4cd72a6  gcc/ada/libgnat/g-dyntab.ads
! 854d73f7b898fb4f7d034c39b6adbc70  gcc/ada/libgnat/g-eacodu.adb
! 7fbba175c1cf60fb6cf3025c93ba2394  gcc/ada/libgnat/g-encstr.adb
! 256c732bac4d16fce3c72c0184f11410  gcc/ada/libgnat/g-encstr.ads
! 0c4458742627979b8b3a9a00d8a3d7f5  gcc/ada/libgnat/g-enutst.ads
! 007f85bdb9894e90e87a8bae1f7febc0  gcc/ada/libgnat/g-excact.adb
! db75e18872330b2c07f4a533fc7c3e9a  gcc/ada/libgnat/g-excact.ads
! 71e1e5db96650cac574338c980623bca  gcc/ada/libgnat/g-except.ads
! 905adc523c18bacb86de5a16b4b01be5  gcc/ada/libgnat/g-exctra.adb
! c7eda3bded051d9973da9843ed6acb6d  gcc/ada/libgnat/g-exctra.ads
! e73fec684bb5014bcd8aac4a0cb883f5  gcc/ada/libgnat/g-expect.adb
! b57b7799526bb39de0969cefe6e7a9ec  gcc/ada/libgnat/g-expect.ads
! d419b1809f5c93a39b5dd489df20f195  gcc/ada/libgnat/g-exptty.adb
! 60a71cea8b74143a0dd025312af1eb1b  gcc/ada/libgnat/g-exptty.ads
! 136d33cbe00c32780fed364d22d27aea  gcc/ada/libgnat/g-flocon.ads
! fb6db7f88bd064b259bb2041573b3944  gcc/ada/libgnat/g-forstr.adb
! ceca26e9a7515c22d4ddf377a5e654aa  gcc/ada/libgnat/g-forstr.ads
! e5d0b34e2d87df594de24de2aff59cbf  gcc/ada/libgnat/g-gfmafu.ads
! 1df6eae54bd1d4b41b33e197c25308ee  gcc/ada/libgnat/g-graphs.adb
! 45218e03a624d0e75bca40e11683726f  gcc/ada/libgnat/g-graphs.ads
! d8f9ca5b362ff57b9649b2d36afab67c  gcc/ada/libgnat/g-heasor.adb
! c2ac3473e03e3c53e7223f41cae76ad5  gcc/ada/libgnat/g-heasor.ads
! c8f19cf3e4fe421281e0068833496d2c  gcc/ada/libgnat/g-hesora.adb
! b8e556081a6e92f3cdb27d849dce3705  gcc/ada/libgnat/g-hesora.ads
! d80bde56de7c7198bbd2597c79f20a8f  gcc/ada/libgnat/g-hesorg.adb
! 13fdc12a613e3b618279db6d7419f260  gcc/ada/libgnat/g-hesorg.ads
! 4a8f55dcb21aa3e6569c3e8716644d23  gcc/ada/libgnat/g-htable.adb
! b8ac8c8b7d8ad308a3169c5a1f42396a  gcc/ada/libgnat/g-htable.ads
! 9eada2e51086efff6a7bf3717a708a8f  gcc/ada/libgnat/g-io.adb
! 228ab8a06ac6a7f27cae552852e7af0c  gcc/ada/libgnat/g-io.ads
! 16cb1db0fc3c3a726f2b8ea4c5fe29a6  gcc/ada/libgnat/g-io_aux.adb
! 65190d97a45fee2f1f913b648ff735d6  gcc/ada/libgnat/g-io_aux.ads
! 8effaf6dfa9a967be5bbbb86de83423b  gcc/ada/libgnat/g-lists.adb
! 0d04532908d4632f62a65c37fe54465c  gcc/ada/libgnat/g-lists.ads
! 169e531a0cece0462ae5b835fae4cc6f  gcc/ada/libgnat/g-locfil.adb
! c320d91bb68a0535a9c971f36a79c909  gcc/ada/libgnat/g-locfil.ads
! 6df3749430eee9bbfa53f422aa709e62  gcc/ada/libgnat/g-mbdira.adb
! 8097b37309a9db5815c70cd55cafd162  gcc/ada/libgnat/g-mbdira.ads
! cee568f804f0dc67abdf630d72e2f313  gcc/ada/libgnat/g-mbflra.adb
! 202c08eff54efc148c1b4ad65cdb8b10  gcc/ada/libgnat/g-mbflra.ads
! 24a047e50f08782e14ca98074208e864  gcc/ada/libgnat/g-md5.adb
! 806ae26a2f841bd2a10a8bc8ac9d1e9f  gcc/ada/libgnat/g-md5.ads
! 78c031abbbb2ad7a25c0218a1c7504f1  gcc/ada/libgnat/g-memdum.adb
! 76a92017f7872bf54482c455cc9817a4  gcc/ada/libgnat/g-memdum.ads
! 8c2243b43df7019961123ae97ca34013  gcc/ada/libgnat/g-moreex.adb
! 31db776809377c15aee328e07f72c4e1  gcc/ada/libgnat/g-moreex.ads
! 9b1c167cc6b9d59df800c7afca138cbc  gcc/ada/libgnat/g-os_lib.adb
! 0acec9656bcf7ae9d0af3e8565cb39de  gcc/ada/libgnat/g-os_lib.ads
! 74734f10dd1405838b0bf1e623fb9165  gcc/ada/libgnat/g-pehage.adb
! 1b9184e819eef1a710822b3bceebab7d  gcc/ada/libgnat/g-pehage.ads
! bffa8e904c3bc3fdd350be74922d2746  gcc/ada/libgnat/g-rannum.adb
! 5594cb0c79705da1f0358ed0190d42b4  gcc/ada/libgnat/g-rannum.ads
! e3baf8cd9c57e1c3269c428db50827cb  gcc/ada/libgnat/g-regexp.adb
! a140cc789094c2a566914bd7794b8f44  gcc/ada/libgnat/g-regexp.ads
! e5a8f9458157abc024d4c3b43ab0d32a  gcc/ada/libgnat/g-regist.adb
! 4f688dbdb1b20317df5235b68d52789d  gcc/ada/libgnat/g-regist.ads
! fdaea8fd892d81e7bffad2f60283ec30  gcc/ada/libgnat/g-regpat.adb
! ceee4b15e7976a431ef4954038b2cd39  gcc/ada/libgnat/g-regpat.ads
! 7501299b1539b8879b404015748a7087  gcc/ada/libgnat/g-rewdat.adb
! 709aeff060bb7bf8327bcb6bc484882e  gcc/ada/libgnat/g-rewdat.ads
! e5d14d19cd1be2f2e0fb1d14c51cdfb5  gcc/ada/libgnat/g-sechas.adb
! 9346070a4e1e80c65ce972c254ce8c4f  gcc/ada/libgnat/g-sechas.ads
! 56b25bcb24ac72d1ce203293cce1c741  gcc/ada/libgnat/g-sehamd.adb
! d7c9c9db5444907fe3a45075b37cc708  gcc/ada/libgnat/g-sehamd.ads
! f19013a82d2765daad702dc61d638dd6  gcc/ada/libgnat/g-sehash.adb
! e84f82e3a13a87e4a4237149aaaa7869  gcc/ada/libgnat/g-sehash.ads
! e1a3b7987dc75f4df8c9369c45871cbf  gcc/ada/libgnat/g-sercom.adb
! 01ca0d6fc1c52dbc0963b6554ab24980  gcc/ada/libgnat/g-sercom.ads
! f99abc8c18f2682bf6aab6cf82ac9f28  gcc/ada/libgnat/g-sercom__linux.adb
! 0174ecdcff3ebd2f58ae7863088bd66d  gcc/ada/libgnat/g-sercom__mingw.adb
! d978617cff1d66693831f015a0119d38  gcc/ada/libgnat/g-sestin.ads
! 9e42ea8cc24b925559477df8160e5c56  gcc/ada/libgnat/g-sets.adb
! d6deffa8eb059b10e10f4bfdff1c083a  gcc/ada/libgnat/g-sets.ads
! c44cea323d8edc44d7c047cc40759354  gcc/ada/libgnat/g-sha1.adb
! 7d93c474b36ed405d6383a8a145d81b6  gcc/ada/libgnat/g-sha1.ads
! 2c5f69a332c809e14aff14fd4144c043  gcc/ada/libgnat/g-sha224.ads
! fc0c794fa877abea500e32aba1276de7  gcc/ada/libgnat/g-sha256.ads
! 9209fe66b7358474539e035b6123b2bd  gcc/ada/libgnat/g-sha384.ads
! 5390dc7ec0e279de42979baeed8e7d0d  gcc/ada/libgnat/g-sha512.ads
! df948b2b94202f7180161a7183d183d9  gcc/ada/libgnat/g-shsh32.adb
! f90f07f0a002bea06f0673ff126d8159  gcc/ada/libgnat/g-shsh32.ads
! dbc4de451588eb373a60e95c15a1c7bd  gcc/ada/libgnat/g-shsh64.adb
! e1d19b45765179c36403496818173fe1  gcc/ada/libgnat/g-shsh64.ads
! 8eafdb255d0eafa3f943efc1feff0e4e  gcc/ada/libgnat/g-shshco.adb
! afddbc4dfe9848ead2602333a601e647  gcc/ada/libgnat/g-shshco.ads
! 906d456a919e6eb5a8c2607d82654e13  gcc/ada/libgnat/g-soccon.ads
! 52e2640d46a43ca1f6b97d82de8fba3d  gcc/ada/libgnat/g-socket.adb
! 380817e1240d7c23ab2c9fc61e0b0a34  gcc/ada/libgnat/g-socket.ads
! fa45db9b2f71318e55323cbb90bf74e8  gcc/ada/libgnat/g-socket__dummy.adb
! a1efda814643c7a15fe7c0b0aa7a1b9e  gcc/ada/libgnat/g-socket__dummy.ads
! 77d2f1fc5b10883b1508620d2dcfe948  gcc/ada/libgnat/g-socpol.adb
! 07d9b0d3957e2096ce3d0bae7f8a04f8  gcc/ada/libgnat/g-socpol.ads
! b9a323ee603470e6c992581bec007714  gcc/ada/libgnat/g-socpol__dummy.adb
! 519997a5538be8164f68ff4fe1cd4d83  gcc/ada/libgnat/g-socpol__dummy.ads
! 2623da46791bbfc4c68cd59aa2034685  gcc/ada/libgnat/g-socthi.adb
! ca56a9e356fdcaf2e815b0300289279c  gcc/ada/libgnat/g-socthi.ads
! 58391c383180e91195ef4e60a8425d47  gcc/ada/libgnat/g-socthi__dummy.adb
! 3d99a3c142319603c328d40e9ce79ce8  gcc/ada/libgnat/g-socthi__dummy.ads
! 2eb0cf67f4dc9e598fa1852268b3eea9  gcc/ada/libgnat/g-socthi__mingw.adb
! fdf2cbb077991cc9652488836dd1c251  gcc/ada/libgnat/g-socthi__mingw.ads
! fbad5b9013788506b91f9641cfa5d1ae  gcc/ada/libgnat/g-socthi__vxworks.adb
! e4527726f29121c311ba8fc57b10cedd  gcc/ada/libgnat/g-socthi__vxworks.ads
! 47b96b53fa9ec895d7c571d6312d65c7  gcc/ada/libgnat/g-soliop.ads
! d54dd3aa6d9f7933f653498345089287  gcc/ada/libgnat/g-soliop__lynxos.ads
! 7aba479639c147035e0dcea036cb469b  gcc/ada/libgnat/g-soliop__mingw.ads
! 4053ca70da07a2123cf62273697a14f1  gcc/ada/libgnat/g-soliop__qnx.ads
! 427f9b344bc8d89e702dbe2a90a65c67  gcc/ada/libgnat/g-soliop__solaris.ads
! 053b402231f6de3ccecb641efe9b9630  gcc/ada/libgnat/g-sopowa.adb
! d720db3a6b77047c7a5077ec269a1b14  gcc/ada/libgnat/g-sopowa__mingw.adb
! f080ffcb2495ea02d5d25bb7b8abc45c  gcc/ada/libgnat/g-sopowa__posix.adb
! a6289dcae00fad8a7e9269df307f8ea5  gcc/ada/libgnat/g-sothco.adb
! 801b8f4dbfd1a9644ac56ea177e24160  gcc/ada/libgnat/g-sothco.ads
! 20005a7d3997b72a4839668e0c5af28e  gcc/ada/libgnat/g-sothco__dummy.adb
! 25d40ffe919efb7a44d96a56106f77dc  gcc/ada/libgnat/g-sothco__dummy.ads
! 48a0e0031f1f69f2335c3c344083f99b  gcc/ada/libgnat/g-souinf.ads
! c3261effb3e35696578346eb0ced6859  gcc/ada/libgnat/g-spchge.adb
! 43d35413b8edfe7d17b1246e6d53955c  gcc/ada/libgnat/g-spchge.ads
! 3cec81fe6f348da1bb4f002b9c3b84c0  gcc/ada/libgnat/g-speche.adb
! fe450fa8c2ed2f08d78bf75d7e515a80  gcc/ada/libgnat/g-speche.ads
! 07902c827dbb3a6eed52ae7ee146ac87  gcc/ada/libgnat/g-spipat.adb
! 8234bc78ca9a1fd60eebf96d320de563  gcc/ada/libgnat/g-spipat.ads
! 64d5408adc09b8b167ab5911da61a51e  gcc/ada/libgnat/g-spitbo.adb
! 5b78d3e0c53f453293a756b0cae8ef3e  gcc/ada/libgnat/g-spitbo.ads
! bfcee213fdd8bc473a14e8184028dae6  gcc/ada/libgnat/g-spogwa.adb
! 482a80d734412c8202578bf326ca28fe  gcc/ada/libgnat/g-spogwa.ads
! 699e2875ee39f02987144018d157dfdd  gcc/ada/libgnat/g-sptabo.ads
! 8f0f2285506a9f86482be15f952def96  gcc/ada/libgnat/g-sptain.ads
! 9191f75d7ff4db0ca9428b700d7278ab  gcc/ada/libgnat/g-sptavs.ads
! 4dd6cf00c4fe371ebd42d1b8448c7625  gcc/ada/libgnat/g-sse.ads
! d7d0c53c9c2649942ebc4508884ed940  gcc/ada/libgnat/g-ssvety.ads
! 0a6044062834e013efbb125b396c2ae3  gcc/ada/libgnat/g-sthcso.adb
! 6871bf2e19f430f1223ac4bbbb7b0354  gcc/ada/libgnat/g-stheme.adb
! 322b0a45244c9dec66a0221124e16819  gcc/ada/libgnat/g-strhas.ads
! d8c08883265d1b56a84ff7185a906c95  gcc/ada/libgnat/g-string.adb
! 36ac4c89359b42a1d01460839d5c3f3a  gcc/ada/libgnat/g-string.ads
! 57b861bbbe98ab7e2473b2aebdbcf77b  gcc/ada/libgnat/g-strspl.ads
! c00bf74b5acb28270c5c1033b13a7238  gcc/ada/libgnat/g-stseme.adb
! a39e732a68d78c1874d79a3c1f963498  gcc/ada/libgnat/g-stsifd__sockets.adb
! 0412baef1bfdcd56eb1efe254c205177  gcc/ada/libgnat/g-table.adb
! f1c8437ba03a646448d4aa51ce20142b  gcc/ada/libgnat/g-table.ads
! 53f79d40992f17af18dfeaf6d21becb3  gcc/ada/libgnat/g-tasloc.adb
! 423edfc10be53dcafa34f04a5ecd9782  gcc/ada/libgnat/g-tasloc.ads
! 1039e1092990c74377996f428142d03c  gcc/ada/libgnat/g-timsta.adb
! a4bcff0a4fe5640bcaedaa7980ad7a95  gcc/ada/libgnat/g-timsta.ads
! 487bd90182e6618ba05ca587b2c62c21  gcc/ada/libgnat/g-traceb.adb
! 39dbe2986fce2cd88209490ccaa98de5  gcc/ada/libgnat/g-traceb.ads
! dde02e43d060986cc8a3ac73224613a9  gcc/ada/libgnat/g-trasym.adb
! bd4403ddfa3a022966489bbd0b5c05a0  gcc/ada/libgnat/g-trasym.ads
! 8254c487ff1436f0a6a4d5a96f5b4e7f  gcc/ada/libgnat/g-tty.adb
! 67cf0befd7349f1821b5d4c25f74ce22  gcc/ada/libgnat/g-tty.ads
! 401fba5bcfe6045d46ad7e39fda9faf4  gcc/ada/libgnat/g-u3spch.adb
! 3ac83e25e3c531f86326ede1da142711  gcc/ada/libgnat/g-u3spch.ads
! d4dbf41eb7ee64dd0fbb480989efcff8  gcc/ada/libgnat/g-utf_32.adb
! fad2e5dc29076ada9fdcb754923d7311  gcc/ada/libgnat/g-utf_32.ads
! 9de9b592dda31d1b51afb172ed5bd400  gcc/ada/libgnat/g-wispch.adb
! ed3cf15e98ec8491d6c162b8ffd94e90  gcc/ada/libgnat/g-wispch.ads
! ae459afc4b4b00dd46ffeb5bda93bbd3  gcc/ada/libgnat/g-wistsp.ads
! 276e215ef5bcbdcd64e4b2bc04d3583e  gcc/ada/libgnat/g-zspche.adb
! 70c28c73ed5e23a311c966449afbac69  gcc/ada/libgnat/g-zspche.ads
! eeb91f8e22d3be231178fe226828b57a  gcc/ada/libgnat/g-zstspl.ads
! d9e67392d088be95d8027e3251a3ee89  gcc/ada/libgnat/gnat.ads
! dfb915f82045f4fd972ef4a703dbcac8  gcc/ada/libgnat/i-c.adb
! b0f07de76a00a08b14d027427178df59  gcc/ada/libgnat/i-c.ads
! 4eec987c4098e35fb8ac13024eb48e2b  gcc/ada/libgnat/i-cexten.ads
! cff8dee2c592630c4764985fef999d4d  gcc/ada/libgnat/i-cexten__128.ads
! d2b5ac22236fcd922870df00cdbf5223  gcc/ada/libgnat/i-cheri-exceptions.ads
! 19d3d67cddfd92db2701acc000620f03  gcc/ada/libgnat/i-cheri.adb
! 3d0dea389d95b3ad906faea1de30e2ac  gcc/ada/libgnat/i-cheri.ads
! 5e4322639a89e1c8d6ad573cc90c78d2  gcc/ada/libgnat/i-cobol.adb
! 84003d299b51e75110957816395cead1  gcc/ada/libgnat/i-cobol.ads
! 7a48f9d159f9a5e900433ec1de58c451  gcc/ada/libgnat/i-cpoint.adb
! 77f7e7686074d212957f8d38f73d95e7  gcc/ada/libgnat/i-cpoint.ads
! 9743df732b34e67af4fcde000156ef5a  gcc/ada/libgnat/i-cstrea.adb
! a1f59c1391e76bbb0c315c6ed89d7903  gcc/ada/libgnat/i-cstrea.ads
! cd401d2ec829f2c106debe66080c4745  gcc/ada/libgnat/i-cstrin.adb
! 277e9e53afc63fc7dd17e34975e9376b  gcc/ada/libgnat/i-cstrin.ads
! 7d8297675730ed588134246459d2f63d  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
! 6172ec3f6e14a699701cd6fecbe79259  gcc/ada/libgnat/i-pacdec.adb
! eb97b18579a7b29d8a20e9f8c375c340  gcc/ada/libgnat/i-pacdec.ads
! b9bb11c7b8f7f503b6db12f1f26e260c  gcc/ada/libgnat/i-vxwoio.adb
! 46cde4e552e2135bdf795f1688446ae9  gcc/ada/libgnat/i-vxwoio.ads
! 96ff43b11f31b6f12b8eb9f0e9de138c  gcc/ada/libgnat/i-vxwork.ads
! 3d2f0f955fc06e6ec17a51c1886b15da  gcc/ada/libgnat/i-vxwork__x86.ads
! 7af56cafcf223c0a8528999120317b80  gcc/ada/libgnat/interfac.ads
! 4b1455df29d95e59e19dc77c782a21a3  gcc/ada/libgnat/interfac__2020.ads
  c2121d458a346c0b9d83825c544b9516  gcc/ada/libgnat/ioexcept.ads
  e793c8df6f0ffab52eef39bb5d82d97f  gcc/ada/libgnat/libada.gpr
  9b37ec6e60899a7dadce7f301acc9eee  gcc/ada/libgnat/libgnat.gpr
  cf5fbbe7ae49ee16e33e55135bc15876  gcc/ada/libgnat/libgnat_common.gpr
! ed1b5d3179de47e97e497b15a5367eb3  gcc/ada/libgnat/machcode.ads
! 57942ee5f5dbed0eaf5932ce79184590  gcc/ada/libgnat/memtrack.adb
! 9d0621b81eb60c9bf4c36b1c2ce6fdfd  gcc/ada/libgnat/s-addima.adb
! 2a0d61bf9e0dc97f86d033188ae54837  gcc/ada/libgnat/s-addima.ads
! 2c3d6dde4bfb04a9661fc42265969a7a  gcc/ada/libgnat/s-addope.adb
! 8a416a2b7f8acc27113a42a3d39f6304  gcc/ada/libgnat/s-addope.ads
! 1ed79bd30b4edfc5c6ecbd8ea1672f7b  gcc/ada/libgnat/s-aoinar.adb
! ecc80f4cd741053e2418b4327ff82b53  gcc/ada/libgnat/s-aoinar.ads
! 074fa7664b9e5004498919b5dd024b27  gcc/ada/libgnat/s-aomoar.adb
! 724ff50971da8241c356145fe188a716  gcc/ada/libgnat/s-aomoar.ads
! a0d854ff8c51d889d4edc2ac8232afde  gcc/ada/libgnat/s-aotase.adb
! 6c7bd61842c36ac4ba72a9c5bf833419  gcc/ada/libgnat/s-aotase.ads
! 7041816c06bee211d5e7e0a4f8e71468  gcc/ada/libgnat/s-aridou.adb
! ae56acaefd73d3d2752b4e07bbd8f87d  gcc/ada/libgnat/s-aridou.ads
! b1cc3714e7c06248c73c933c2d10a80e  gcc/ada/libgnat/s-arit128.adb
! a19888a768f86bbf6e883c7d9ffa0de2  gcc/ada/libgnat/s-arit128.ads
! 13004bb77f0aa79be4ae311250b83a21  gcc/ada/libgnat/s-arit32.adb
! f5f28bd9bbacdfe023bdcdffe34417ad  gcc/ada/libgnat/s-arit32.ads
! da38e77c48da5530a56dbeb52b71b950  gcc/ada/libgnat/s-arit64.adb
! 42377015468ca133430862a1a726f5a4  gcc/ada/libgnat/s-arit64.ads
! a46220114d084652d69bfc71cd853baf  gcc/ada/libgnat/s-assert.adb
! 72f1da2c55710dcfe3a42776afa54b9b  gcc/ada/libgnat/s-assert.ads
! 1f673d7d38937f7c6b6bee3c16980971  gcc/ada/libgnat/s-atacco.adb
! 961cba3295399c22b0f50e1140b7753e  gcc/ada/libgnat/s-atacco.ads
! 8f15f74b1cc4e23cbb4ddd23fa0be3ae  gcc/ada/libgnat/s-atocou.adb
! 39c895c0cd3cdfe152ecdb2e682bcf56  gcc/ada/libgnat/s-atocou.ads
! ea977c9ad0e59c1d898deac64009654a  gcc/ada/libgnat/s-atocou__builtin.adb
! b0408a5a1cd606e24c13b1585dbe3740  gcc/ada/libgnat/s-atoope.ads
! 44435980539a669384bc702ced5cfbd2  gcc/ada/libgnat/s-atopex.adb
! f8914cc90fc7473ebd13a01c9a232bf8  gcc/ada/libgnat/s-atopex.ads
! bc03ca7974affacf3dfb34efc88a406a  gcc/ada/libgnat/s-atopri.adb
! 447617576325db65058c833c4aae7524  gcc/ada/libgnat/s-atopri.ads
! 71aa64506d856c1b0a642c6af60b9a8d  gcc/ada/libgnat/s-atopri__32.ads
! d58a6431abe899848a77d91a3e0897ec  gcc/ada/libgnat/s-auxdec.adb
! 10894738ed94ae661e4f75eb0ba515cc  gcc/ada/libgnat/s-auxdec.ads
! cc1edc1b2818d2210853d2dc1cd9092f  gcc/ada/libgnat/s-bignum.adb
! 1ddfba3bbb6e746307466e366312448f  gcc/ada/libgnat/s-bignum.ads
! 42298f577db4499f9d64b5ddb2c9a6dd  gcc/ada/libgnat/s-bitfie.ads
! 8d6275449a0417eef3cbcef28024e177  gcc/ada/libgnat/s-bitops.adb
! 94b330e77787d981d9da64bfb1d9f28f  gcc/ada/libgnat/s-bitops.ads
! 829ade31832254bfdfb0325d282a705c  gcc/ada/libgnat/s-bituti.adb
! 16c5c13b5b202d648f9817fb0084917f  gcc/ada/libgnat/s-bituti.ads
! be184ef55952417a9a6ca5805b930d86  gcc/ada/libgnat/s-boarop.ads
! bb60db53ffb027922331b531cc4aed35  gcc/ada/libgnat/s-boustr.adb
! 212438d63e0a4af68cd8461378fb33d2  gcc/ada/libgnat/s-boustr.ads
! 953cd0626f62a0861039c74bbe53b1c5  gcc/ada/libgnat/s-bytswa.ads
! 3b4bbce3aae12c46b7248d843697e9f2  gcc/ada/libgnat/s-carsi8.adb
! fdcbf949449428c44ba173ecb15d41cd  gcc/ada/libgnat/s-carsi8.ads
! e6b715f0c81125ac15062873814386c1  gcc/ada/libgnat/s-carun8.adb
! a8afc4a239d8715ed53754e866da75d4  gcc/ada/libgnat/s-carun8.ads
! 707b7b9452ff10fcd16641f20157cca8  gcc/ada/libgnat/s-casi128.adb
! 3bb5776d64f725bd7ecc624301686f4e  gcc/ada/libgnat/s-casi128.ads
! b2ff9dee748cae7c3b2d750b0f1a4f6c  gcc/ada/libgnat/s-casi16.adb
! a4b410c9bbb60942b8e9f990139c6dbe  gcc/ada/libgnat/s-casi16.ads
! 4be3ae1e85c0b25125edd638dca7ad9d  gcc/ada/libgnat/s-casi32.adb
! 0bce47676e2d4593d668bba2ee9c2cca  gcc/ada/libgnat/s-casi32.ads
! 0b79bb72575b40e418eff2cbf49acdaa  gcc/ada/libgnat/s-casi64.adb
! 55b10b5d170a4d6980ebf34e70e878a6  gcc/ada/libgnat/s-casi64.ads
! 777e77609ff4de1583d5e1c806e21c56  gcc/ada/libgnat/s-casuti.adb
! 69ec1c56ef16610c08b934adad6a62dc  gcc/ada/libgnat/s-casuti.ads
! 7141b233dcced3ec43f263d8cb618f4d  gcc/ada/libgnat/s-caun128.adb
! b9314f753e77bcf3e8d0c87493822517  gcc/ada/libgnat/s-caun128.ads
! b7c587b6db25297c696f586d8c1ebd3a  gcc/ada/libgnat/s-caun16.adb
! 4d3ec72bf62eaf005a8286b03269405d  gcc/ada/libgnat/s-caun16.ads
! 50c97e17daec42ebaedd528e1bb36f71  gcc/ada/libgnat/s-caun32.adb
! 242f29154cb7d2a0e1031fade98a5e13  gcc/ada/libgnat/s-caun32.ads
! 9581e21d264a73a9a2df0d406f8d0206  gcc/ada/libgnat/s-caun64.adb
! daf3005263e0062e9f39b1cbcaec3e6c  gcc/ada/libgnat/s-caun64.ads
! f37eb5605745956c236087bb0cc23ec4  gcc/ada/libgnat/s-chepoo.ads
! 1f16e853c0747cb01e85deb3bcd51254  gcc/ada/libgnat/s-commun.adb
! aa94f3ce298c910f08d3e2d622d4dfc2  gcc/ada/libgnat/s-commun.ads
! ca39d3bae5009def894fafb72ed87209  gcc/ada/libgnat/s-conca2.adb
! de31c44af8e91064c889102895aa293b  gcc/ada/libgnat/s-conca2.ads
! 96f3d7b2d878c606584c0d985c1c1772  gcc/ada/libgnat/s-conca3.adb
! 474e5a8eaab71ac3252637ab85e81066  gcc/ada/libgnat/s-conca3.ads
! d09cf3beda8030f8c058abe3e89d3f90  gcc/ada/libgnat/s-conca4.adb
! 9b97d76ef9275cc28bc1f50bdc47940d  gcc/ada/libgnat/s-conca4.ads
! 9c4a69bfc33ec0817ab04edf31ee236f  gcc/ada/libgnat/s-conca5.adb
! 6ab361a6669cf5fd51c6d1bb62e3db45  gcc/ada/libgnat/s-conca5.ads
! 3c45044df1bb5ce6dc77a79094903c3c  gcc/ada/libgnat/s-conca6.adb
! 802f9eb1e762eac689433cb711159db0  gcc/ada/libgnat/s-conca6.ads
! fcf0525c86cec0fa1208d966cb2ff7fe  gcc/ada/libgnat/s-conca7.adb
! d30f1b1a746e209f697363d77012f3eb  gcc/ada/libgnat/s-conca7.ads
! a012b416e822e23d09dbf371e0f9287f  gcc/ada/libgnat/s-conca8.adb
! 0af9d9e6587fb36f224ff4826e53d937  gcc/ada/libgnat/s-conca8.ads
! a0d778826462dc19672954a7788b4816  gcc/ada/libgnat/s-conca9.adb
! 886fc855a472f3872522fe088287e2a3  gcc/ada/libgnat/s-conca9.ads
! b2700bc18d559f98a09523df589e2e35  gcc/ada/libgnat/s-crc32.adb
! 448e6f6c90cd6ac5a2f0d9d75c683445  gcc/ada/libgnat/s-crc32.ads
! 0e42e99e5199b92517f25826fecdd824  gcc/ada/libgnat/s-crtl.ads
! 9954732cf02e3893f5e906a819784d74  gcc/ada/libgnat/s-dfmkio.ads
! 640145af1392b22ff81c9ce93ed552c6  gcc/ada/libgnat/s-dfmopr.ads
! 3764e7399da4a9bbd1b205e531348d3b  gcc/ada/libgnat/s-dgmgop.ads
! 3400e542acc89fe67d25f216e1948ad2  gcc/ada/libgnat/s-diflio.adb
! 2e42635e246bacbd53f94fd15642381f  gcc/ada/libgnat/s-diflio.ads
! 5ed9f1b501f2e3df3678cc3dd064ffe7  gcc/ada/libgnat/s-diflmk.ads
! 81fecda3426c73444ddc18cb195666c6  gcc/ada/libgnat/s-digemk.ads
! bd631a3bf3f312f2ae5d06402e92e64f  gcc/ada/libgnat/s-diinio.adb
! d741db0dab582f0a50111d1a39b9d785  gcc/ada/libgnat/s-diinio.ads
! bdf15a14f11f349bd29d872402cf1c21  gcc/ada/libgnat/s-dilomk.ads
! 16f46840b5cbf3290223358037c49cf9  gcc/ada/libgnat/s-dim.ads
! 0f0524f6a4994b2e1f4011bc8fa51374  gcc/ada/libgnat/s-dimkio.ads
! 80762f349ed8ebafe29a9eab5046d78e  gcc/ada/libgnat/s-dimmks.ads
! 897990306abd8d2750e10c34ab637a38  gcc/ada/libgnat/s-direio.adb
! cc5297f972e4a3f07144e2b1bb3733a0  gcc/ada/libgnat/s-direio.ads
! a81631c191854fe1926c005a464af396  gcc/ada/libgnat/s-dlmkio.ads
! 96bff4e524a9236611b7411226602d35  gcc/ada/libgnat/s-dlmopr.ads
! 876a98345bb63026812a2c8e4addb91a  gcc/ada/libgnat/s-dmotpr.ads
! e11206c9f0d02dcd3d94966937eebc40  gcc/ada/libgnat/s-dorepr.adb
! b01c3a0c2539d638203ea1b90e18d64e  gcc/ada/libgnat/s-dorepr__fma.adb
! 7b6f51cb3a109dda2586b064edec48be  gcc/ada/libgnat/s-dourea.adb
! 4763b5f304cf8156e3a866ce4ea1c455  gcc/ada/libgnat/s-dourea.ads
! 2654f7f798aa6b6284b7f6771f4f6d8d  gcc/ada/libgnat/s-dsaser.ads
! 3e781036600adf86098ec5566c389b4d  gcc/ada/libgnat/s-dwalin.adb
! 0373020c8c333bc4c9aff4cdf70eb4bd  gcc/ada/libgnat/s-dwalin.ads
! b0582ed9e0f3716923001a5b20910ff6  gcc/ada/libgnat/s-elaall.adb
! 0914a0a7b14d9140d662a98df793863b  gcc/ada/libgnat/s-elaall.ads
! 1bb9ef349425a303861ca461b9fc43b6  gcc/ada/libgnat/s-excdeb.adb
! ba7e9adf097c1a72bc46bf7f7994c8a4  gcc/ada/libgnat/s-excdeb.ads
! 76bec4072ed3fe2ada147b473e5db4b1  gcc/ada/libgnat/s-except.adb
! 72142b9f69d446f30da5dc3571fecfb5  gcc/ada/libgnat/s-except.ads
! 57f1c3410622a38e5c7e0a0eb2c1adf3  gcc/ada/libgnat/s-excmac__arm.adb
! 7227b4030a4bd3e064e79e5ef8b386a5  gcc/ada/libgnat/s-excmac__arm.ads
! 16a7da4eefee53d84628ca9a1da22cf0  gcc/ada/libgnat/s-excmac__gcc.adb
! 2985c74e002509cf1571e7642bae0741  gcc/ada/libgnat/s-excmac__gcc.ads
! c882ed256400ed4f2dc84894613cfdae  gcc/ada/libgnat/s-exctab.adb
! d3dcbdd73099962ef5241b560e2e345b  gcc/ada/libgnat/s-exctab.ads
! f76326ae3223531cac30a3bed5d1f5e2  gcc/ada/libgnat/s-exctra.adb
! 05b4a311f4b50a32d4f1f3e0155a25f1  gcc/ada/libgnat/s-exctra.ads
! f7180d7c5776d9f33ceb0ec00224c8b8  gcc/ada/libgnat/s-exnflt.ads
! 8d9156ff3577703845f3601040f6b819  gcc/ada/libgnat/s-exnint.adb
! 1f2b7a601e4580c4f71ee0de0dd416cd  gcc/ada/libgnat/s-exnint.ads
! 07592e37b48412fcdf90129473a24b4f  gcc/ada/libgnat/s-exnlfl.ads
! edb59a21ba5b02a6afeb18c838a8a93a  gcc/ada/libgnat/s-exnllf.adb
! cce7e4a11a66adee4324628fc2d38b22  gcc/ada/libgnat/s-exnllf.ads
! f41bdc44f7caed29b411cf8ae02d4148  gcc/ada/libgnat/s-exnlli.adb
! 0de4f4c2244b0735f52fcc4e9b4aff72  gcc/ada/libgnat/s-exnlli.ads
! 1486c693733aaf5f85f18131841bf9b5  gcc/ada/libgnat/s-exnllli.ads
! 91eea476be44ceb3a868b90fefde8bf9  gcc/ada/libgnat/s-expint.adb
! 35464a3cfbe0171074d8dae5fdef529c  gcc/ada/libgnat/s-expint.ads
! 804d00ea9948c1bfdbc27249145f82fb  gcc/ada/libgnat/s-explli.adb
! 8499ff1d7f36e603f01f1702b425b5fe  gcc/ada/libgnat/s-explli.ads
! 0dbb00dae632b2100de2c282914f4bb4  gcc/ada/libgnat/s-expllli.ads
! 480566538bad33d84328bb0f02ccedaf  gcc/ada/libgnat/s-explllu.ads
! dc491c1f8fb62dcd45d373ec01dd84e9  gcc/ada/libgnat/s-expllu.adb
! fea354619b93467f608bbfd59381e3ad  gcc/ada/libgnat/s-expllu.ads
! accd3a18ed5aaeeeb90e4eafb9b6f6d3  gcc/ada/libgnat/s-expmod.adb
! 59f393b13c984ee176f66c218f74f127  gcc/ada/libgnat/s-expmod.ads
! 32c3e4fd456872679a635f7f89b5724e  gcc/ada/libgnat/s-exponn.adb
! f40b48e7d7fbaaf42675b763a54db871  gcc/ada/libgnat/s-exponn.ads
! 6b34184aaa570c66a4c36383d8678e23  gcc/ada/libgnat/s-exponr.adb
! d79a9b11f85737825cc23cbe2188a674  gcc/ada/libgnat/s-exponr.ads
! 4ef85033857d33875b8b9451791794e7  gcc/ada/libgnat/s-expont.adb
! 4403f7fed0744d6abb7ad38702c28a78  gcc/ada/libgnat/s-expont.ads
! 57b6cf2cc0789f1c87b6c37bb983d00f  gcc/ada/libgnat/s-exponu.adb
! 2a8150ac5eecc2e4d9c3f64c59c5f8d5  gcc/ada/libgnat/s-exponu.ads
! 9c8be87272aabf828cd1069b49048acf  gcc/ada/libgnat/s-expuns.adb
! 4b34c2d9389006f83db3cff9eae21112  gcc/ada/libgnat/s-expuns.ads
! 822c64f95e66ff0cc8f3f16feecd14d5  gcc/ada/libgnat/s-fatflt.ads
! 8a49ad816f20947364fb33aae87ac62e  gcc/ada/libgnat/s-fatgen.adb
! 41c2987998c0e67732d92f38dc599e16  gcc/ada/libgnat/s-fatgen.ads
! 3e6fc01f9d1e17ff1c9d29955c605a6f  gcc/ada/libgnat/s-fatlfl.ads
! 2d9b4a1533f740b9f5939d357c05c406  gcc/ada/libgnat/s-fatllf.ads
! 0a0579271562fcf3809ab6354d09c009  gcc/ada/libgnat/s-ficobl.ads
! ab9c5edfb4b2d0a48dc88e1e92caeb79  gcc/ada/libgnat/s-filatt.ads
! affe59b53fe42c5147c0ea6236000db0  gcc/ada/libgnat/s-fileio.adb
! e77366b0b33ee55fbc25335bd7ad0164  gcc/ada/libgnat/s-fileio.ads
! 9f390100851d1d1b0525baf74e0436a8  gcc/ada/libgnat/s-finpri.adb
! 22fa3c38660eeb55376228d6cf326bb7  gcc/ada/libgnat/s-finpri.ads
! af05e70eec054ddc81ba709f1cb7799f  gcc/ada/libgnat/s-finroo.adb
! d208a800d93bc2aa23662eccbfe140d6  gcc/ada/libgnat/s-finroo.ads
! e9ac9736af0efef8925c40617c6299eb  gcc/ada/libgnat/s-flocon.adb
! df1db258156b915e5d35933ada96758a  gcc/ada/libgnat/s-flocon.ads
! 7e9060ca39d11436adbeab3d65594e99  gcc/ada/libgnat/s-flocon__none.adb
! 233dffeed8b8172a47d8549a42e40148  gcc/ada/libgnat/s-fode128.ads
! 48931b5e9435f2997bd9c337ae4f4edf  gcc/ada/libgnat/s-fode32.ads
! 3cb495c4ebcc53ef2f9ee0491d31ec63  gcc/ada/libgnat/s-fode64.ads
! ff0b99d9ee58068c060c23732cbca578  gcc/ada/libgnat/s-fofi128.ads
! f54d590ad4330ed48c8424f5454b3901  gcc/ada/libgnat/s-fofi32.ads
! 73fba4a46e95b5606428beb2ed8de45a  gcc/ada/libgnat/s-fofi64.ads
! 2f9d8d36e273276aa769bba2d4732430  gcc/ada/libgnat/s-fore_d.adb
! 2465259c6e0a0c396eaf9ff8b8bf7591  gcc/ada/libgnat/s-fore_d.ads
! 9ef3a539548e6e7e7ea686e2532b35a0  gcc/ada/libgnat/s-fore_f.adb
! 7290c1c06d6516cfbf8d379367cce8cc  gcc/ada/libgnat/s-fore_f.ads
! ce9d63685950bde4c22b21c81ee87f10  gcc/ada/libgnat/s-forrea.adb
! 3e3d627bde4f659149ea28b1dd9df65f  gcc/ada/libgnat/s-forrea.ads
! 926c6616da8295743b34f040639247a6  gcc/ada/libgnat/s-gearop.adb
! 6e234ce6ded6e03841bcac125cabd200  gcc/ada/libgnat/s-gearop.ads
! d2f81e36dbf4f87959e6ea1d347866e9  gcc/ada/libgnat/s-genbig.adb
! dad5dacde69a548c66911c4c27820786  gcc/ada/libgnat/s-genbig.ads
! f634b0d0730dc8e7cf76569b12756c23  gcc/ada/libgnat/s-geveop.adb
! 6c43097ff5d87f24f861b19d4fd2c60e  gcc/ada/libgnat/s-geveop.ads
! 4f8d7ee02c1b9b2ebd6d284d5e51308e  gcc/ada/libgnat/s-gloloc.adb
! 884a744333f12e5d5ed72f17a3bc66cb  gcc/ada/libgnat/s-gloloc.ads
! de916c1996d8f596eea1b7a0c7a81784  gcc/ada/libgnat/s-gloloc__mingw.adb
! b8fa1ceba90b41e6c1f0077c835f272f  gcc/ada/libgnat/s-htable.adb
! 30bce0fd1a9c9bf027a1b06c90260a95  gcc/ada/libgnat/s-htable.ads
! d338550d4129caf60ad70e71480200f2  gcc/ada/libgnat/s-imad32.ads
! b75405585a7536340b24fbe0150dd44b  gcc/ada/libgnat/s-imad64.ads
! 71c90b69242e91916c596477d8cdb62e  gcc/ada/libgnat/s-imagea.adb
! e94511403bbbc60b1ede942955d87ddd  gcc/ada/libgnat/s-imagea.ads
! cf3f7c11a17f1ffcd34fcfc196d27c43  gcc/ada/libgnat/s-imageb.adb
! 884a928446566ec63db0d4395d30f94b  gcc/ada/libgnat/s-imageb.ads
! 98336b21b44bee33e171e6c9c2b8d9d4  gcc/ada/libgnat/s-imaged.adb
! 4d7ff4af312eb27614f03b6653f6e50d  gcc/ada/libgnat/s-imaged.ads
! 2372262f2e89823901313923263c4e47  gcc/ada/libgnat/s-imagef.adb
! ae39ccca9eb61cd69d6db02cce5b4909  gcc/ada/libgnat/s-imagef.ads
! 595b29c5b28a24a2839cf512c8abf01a  gcc/ada/libgnat/s-imagei.adb
! 33d236b0b6971665b408ea6babc0b231  gcc/ada/libgnat/s-imagei.ads
! 37ae6cff1430ac5e45bfb29796719b20  gcc/ada/libgnat/s-imagen.adb
! cf96472d3c2d5fb274d1aed877bf83b5  gcc/ada/libgnat/s-imagen.ads
! 41c147db7e257aa2d720635f1e8e7d16  gcc/ada/libgnat/s-imager.adb
! 3a97087b3f16b9f64e63510778832c4a  gcc/ada/libgnat/s-imager.ads
! 2c88d08c92ce5a3f36cc07ba2afcc61e  gcc/ada/libgnat/s-imageu.adb
! 970f6972d06a6d99969521badaf4ce40  gcc/ada/libgnat/s-imageu.ads
! 9f133c32062e80b195ab4df85d4a5784  gcc/ada/libgnat/s-imagew.adb
! 4cc5ce64f33c89f2c31b25faf7ace636  gcc/ada/libgnat/s-imagew.ads
! 7952c16e7d94fbb079cb0befb3d8dd55  gcc/ada/libgnat/s-imde128.ads
! 6e16ff4c508031f2fa9fe7f8376546f7  gcc/ada/libgnat/s-imde32.ads
! 4132104de77653fb2364fb353e9dd6d7  gcc/ada/libgnat/s-imde64.ads
! 92f8f2b3a14edd2a53851d1ceb918119  gcc/ada/libgnat/s-imen16.ads
! 54477cf930f2f93faa52fdc1efa143a9  gcc/ada/libgnat/s-imen32.ads
! c45b41a888fae0b58426b766d415daa8  gcc/ada/libgnat/s-imenu8.ads
! a5344a5e1696d435457d33160ce3061a  gcc/ada/libgnat/s-imfi128.ads
! af8273e1a3b2f37afea960248ed1bf86  gcc/ada/libgnat/s-imfi32.ads
! af6224e49a42c0dc4356cbeab76e3710  gcc/ada/libgnat/s-imfi64.ads
! aa07ce5a09e257512911da0ea65852c0  gcc/ada/libgnat/s-imgbiu.adb
! d2dac19cced675750d25b938c8e37086  gcc/ada/libgnat/s-imgbiu.ads
! 9c7d2f8f07dd41805a8af80faca981c0  gcc/ada/libgnat/s-imgboo.adb
! e9c2d4a5d6b2ba62504cafc6ddadd4c2  gcc/ada/libgnat/s-imgboo.ads
! 09b81700f565c8169c32b4814f9d1611  gcc/ada/libgnat/s-imgcha.adb
! 91be02b7f8f6b2cb8c6614549cbf2e54  gcc/ada/libgnat/s-imgcha.ads
! f01ccd07991252b098524f6a21e557f3  gcc/ada/libgnat/s-imgflt.ads
! cc114e5b2cce7864fb28fe420e697fcd  gcc/ada/libgnat/s-imgint.adb
! bfc9ea64b6bf764be0a8051157260363  gcc/ada/libgnat/s-imgint.ads
! 3369a43c5fda6828ad10424fc23e58ae  gcc/ada/libgnat/s-imglfl.ads
! 3bf175f5203b6958574a6e49d858bead  gcc/ada/libgnat/s-imgllb.adb
! bf8ae35f49d0d45ddf194ed5235211d4  gcc/ada/libgnat/s-imgllb.ads
! 0258d10f770149dfd6a9ecfbcdd1cb5d  gcc/ada/libgnat/s-imgllf.ads
! 5b2653f2b8afa4d0823009cac2d580ad  gcc/ada/libgnat/s-imglli.adb
! 165a7c0c6cf484c29f740a3cd71dba97  gcc/ada/libgnat/s-imglli.ads
! 1a67a2ed10d271456e49fe2f484fca98  gcc/ada/libgnat/s-imglllb.ads
! a1340a6b105b0931e6e47f67bdaa9a75  gcc/ada/libgnat/s-imgllli.ads
! c04ca5e4d22373b98d1e0ed1d35bbb17  gcc/ada/libgnat/s-imglllu.ads
! 8c4a166bbad675847c9af4a09db4a176  gcc/ada/libgnat/s-imglllw.ads
! 8e8f487158a83445129cb356b59349f5  gcc/ada/libgnat/s-imgllu.adb
! 8c5f1ed8b98ff659c06d6e63dbaa2b19  gcc/ada/libgnat/s-imgllu.ads
! 4eba300a926223af0c0f9187c803c35c  gcc/ada/libgnat/s-imgllw.adb
! be141a2045387e7f18f4c224457f85d9  gcc/ada/libgnat/s-imgllw.ads
! 91cf627ae96376c6591ca6a76874b0e0  gcc/ada/libgnat/s-imgrea.adb
! af21858ef7052492bf7467c675739900  gcc/ada/libgnat/s-imgrea.ads
! 38cfa78cc8e3190436e2a88f965db54b  gcc/ada/libgnat/s-imguns.adb
! 98ab790b78b9d153043e7d11f08dc2aa  gcc/ada/libgnat/s-imguns.ads
! 34b73eb5ed09b9ca1234596795ad2e97  gcc/ada/libgnat/s-imguti.adb
! 95eb73fad16107d6326e0a05cce7db81  gcc/ada/libgnat/s-imguti.ads
! 52f2012dc3de73a658e002d3d2265483  gcc/ada/libgnat/s-imgwch.adb
! 0db78a46d1f982f3496cd86ddc0b03bc  gcc/ada/libgnat/s-imgwch.ads
! d4c906e89b21a0022e79c2499e682678  gcc/ada/libgnat/s-imgwiu.adb
! 4e719acd8a733beeb9e4f9b37cac8903  gcc/ada/libgnat/s-imgwiu.ads
! 268198ae5d7427b9e9945d57093d2365  gcc/ada/libgnat/s-io.adb
! e49a173c9c3aec5db1e59093e9ee4712  gcc/ada/libgnat/s-io.ads
! 84e1ab8d4cf588dae618ced39f660600  gcc/ada/libgnat/s-llflex.ads
! f2acea4502b30a1b99b72dd29117c776  gcc/ada/libgnat/s-maccod.ads
! 210e4eee60d9d1ca89cbc0c5ee070e16  gcc/ada/libgnat/s-mantis.adb
! adbfb9d1e45c18a84aa50539c1a1600a  gcc/ada/libgnat/s-mantis.ads
! e5a13f845679efabb0e56d648644fc86  gcc/ada/libgnat/s-mastop.adb
! 6be70f0a325c45f914ee6acee9b3d086  gcc/ada/libgnat/s-mastop.ads
! b435cf20d5e39e486110b46ce9e86646  gcc/ada/libgnat/s-memcop.ads
! d83f717c43f7d15ec6e1e43b2135ebec  gcc/ada/libgnat/s-memory.adb
! 18bc0c68ee2582f6805c6c3e773ad21b  gcc/ada/libgnat/s-memory.ads
! 036b78a4d521b2da7813202bfca4c992  gcc/ada/libgnat/s-mmap.adb
! c2abb2aada1e161f2d7b54bddd74c18a  gcc/ada/libgnat/s-mmap.ads
! 86582c7a0ca2d7519130b0d4680377ec  gcc/ada/libgnat/s-mmauni__long.ads
! 91cf7a2eaf3a9cca9eca61329f78f359  gcc/ada/libgnat/s-mmosin__mingw.adb
! 17c152e4b7fd14aa23b2be5ecdb87e28  gcc/ada/libgnat/s-mmosin__mingw.ads
! 7e512e6dbe4997cf330558b483828a3c  gcc/ada/libgnat/s-mmosin__unix.adb
! 07657d5a56034099c91fa0bfa3e9f10a  gcc/ada/libgnat/s-mmosin__unix.ads
! ddce157cf4ea63ecbb5ef0af78862e94  gcc/ada/libgnat/s-multip.adb
! 6e044dda0fdc55ee526d2b32cbef4cdc  gcc/ada/libgnat/s-multip.ads
! d32dab727eb88a9a9718e4c78e1496ec  gcc/ada/libgnat/s-objrea.adb
! e8bfda3d740dfbd8ccf4fc493d8457e1  gcc/ada/libgnat/s-objrea.ads
! fa0d4cc01f2a630943bfb0790f346d9f  gcc/ada/libgnat/s-optide.adb
! cebea250ccdaa20cc6766c78a8157d70  gcc/ada/libgnat/s-os_lib.adb
! 5618e5fb1aebae9bf2a7b4fb5e4fb337  gcc/ada/libgnat/s-os_lib.ads
! ee69d5c31f1534ccc0aa80ab59587249  gcc/ada/libgnat/s-oslock__dummy.ads
! 0b6cb9ac13ab2e70186fe46147ac6343  gcc/ada/libgnat/s-oslock__mingw.ads
! de8b2eecb4d04b82ea732adf1d76550f  gcc/ada/libgnat/s-oslock__posix.ads
! a235a8d563210bf70966b318e3c827fc  gcc/ada/libgnat/s-oslock__solaris.ads
! 8ba7aefa562463d26b65900f7c289b21  gcc/ada/libgnat/s-oslock__vxworks.ads
! fd5e74b3f07515e531cf3881fee5ebd6  gcc/ada/libgnat/s-osprim.ads
! c34b67b08d3cbf32d644196fda029dea  gcc/ada/libgnat/s-osprim__darwin.adb
! 935f3f12650709d7934e19d58a50315e  gcc/ada/libgnat/s-osprim__lynxos.ads
! b7d52cb5fee6fdd2683093b26c4b769e  gcc/ada/libgnat/s-osprim__mingw.adb
! 8eceecc8a11571d23c5287b0fe410a74  gcc/ada/libgnat/s-osprim__posix.adb
! f3c631112f30b734b4f220fb5395f2c6  gcc/ada/libgnat/s-osprim__posix2008.adb
! e873556331ca8438fe71df04cf4f27ef  gcc/ada/libgnat/s-osprim__rtems.adb
! 27e9d0034a6d07de2f0bd8c9ad8a96b0  gcc/ada/libgnat/s-osprim__solaris.adb
! 76b7c78e43eb5d8afa8f9535955c3653  gcc/ada/libgnat/s-osprim__unix.adb
! 929cd38c9931c5a02704d9d00587f5ab  gcc/ada/libgnat/s-osprim__x32.adb
! e7cc005e6dbdd37a3b9e9dec310b6077  gcc/ada/libgnat/s-pack03.adb
! 2673c28fd62a6d56bdfe3589619a1005  gcc/ada/libgnat/s-pack03.ads
! 38eb466d40a15da72b774991993e43bf  gcc/ada/libgnat/s-pack05.adb
! ae3f7d3bbdc8c45b15a9b7a455a83861  gcc/ada/libgnat/s-pack05.ads
! b2827650c8b7afda76c4091956454fd4  gcc/ada/libgnat/s-pack06.adb
! ac5b470a96018edf1f5ba397da761e01  gcc/ada/libgnat/s-pack06.ads
! b253c8753731cc6cedfc872d720cde95  gcc/ada/libgnat/s-pack07.adb
! 1a19d91229c854a673965b439c01ea56  gcc/ada/libgnat/s-pack07.ads
! dc2d14dafa61ac091b828acd2cea9de0  gcc/ada/libgnat/s-pack09.adb
! a1a6968455268038958001a5e304e2be  gcc/ada/libgnat/s-pack09.ads
! 2ef6153ccbfb1daf06dcf4f9785d52d9  gcc/ada/libgnat/s-pack10.adb
! 99a8361162471d821ba2c745f3e6f892  gcc/ada/libgnat/s-pack10.ads
! e8f46ed7ea5c3345465822856fa47239  gcc/ada/libgnat/s-pack100.adb
! dc6ebd27d2ccad02b5fff49a333007dc  gcc/ada/libgnat/s-pack100.ads
! c9b414b38448c6009a1ca5a1a7c083a9  gcc/ada/libgnat/s-pack101.adb
! 5543ac021b7de155131b40ebcc5712d8  gcc/ada/libgnat/s-pack101.ads
! ae1e98e5311081f93083df19b24990ae  gcc/ada/libgnat/s-pack102.adb
! 3f13bbffbde8d439479e2d2a0a65b3ae  gcc/ada/libgnat/s-pack102.ads
! a7ceeced08bfe7beb1b342b58f41c3f4  gcc/ada/libgnat/s-pack103.adb
! 20132bba8b5359bc5af7f833f2d04ac2  gcc/ada/libgnat/s-pack103.ads
! 802fdd97901cdfb9e1e6452723ea2753  gcc/ada/libgnat/s-pack104.adb
! d602d13728844851f19a3d54bbd2e954  gcc/ada/libgnat/s-pack104.ads
! b7ed9cdae703859c67b023e9ac8f7c91  gcc/ada/libgnat/s-pack105.adb
! 2e8b104aafe1808d5e066858e15a9ec8  gcc/ada/libgnat/s-pack105.ads
! 490f29dd8216610291d9f4080ff15917  gcc/ada/libgnat/s-pack106.adb
! 50a295908679c957a977fa7c34bb4205  gcc/ada/libgnat/s-pack106.ads
! ae075e2fa1bcb851febdfd888ffb6bad  gcc/ada/libgnat/s-pack107.adb
! 7fae6e9a679d67fed2e55c80003ae6ab  gcc/ada/libgnat/s-pack107.ads
! 18a4a5cf0fab8b1efbc922a4c2991b67  gcc/ada/libgnat/s-pack108.adb
! 5388a4e3a15a6d0a61cf62894e0028e2  gcc/ada/libgnat/s-pack108.ads
! aed206b6eb4c5bb38e0ffbd699db2688  gcc/ada/libgnat/s-pack109.adb
! 4d87879d7092c2802a554671a2187cef  gcc/ada/libgnat/s-pack109.ads
! 76466ee11ab1c3514e4a8f4c75e97aa9  gcc/ada/libgnat/s-pack11.adb
! 8202f86cfd9fe416a02f083b85f0e1b3  gcc/ada/libgnat/s-pack11.ads
! 1c2bc60242f5720fce3550436f770a6b  gcc/ada/libgnat/s-pack110.adb
! 675b63fab20c21d51c905f72b14cd6d1  gcc/ada/libgnat/s-pack110.ads
! 9c71b0f542c4846f8b44b3e247812ab6  gcc/ada/libgnat/s-pack111.adb
! bc70071040f41db4118de0087af026b9  gcc/ada/libgnat/s-pack111.ads
! cf1f321b2227598b147283c7f28dee9b  gcc/ada/libgnat/s-pack112.adb
! 6a6661fa7b63fbde552710803454c659  gcc/ada/libgnat/s-pack112.ads
! c285aa3cbf111566545cb8206722aea3  gcc/ada/libgnat/s-pack113.adb
! f4ece771bf66aaf6b0a63a975c29a03b  gcc/ada/libgnat/s-pack113.ads
! 4e0fdefa1a06fc58325953688b3afd30  gcc/ada/libgnat/s-pack114.adb
! 8bd07fbba09e93d3f74cb4d49ae1e90f  gcc/ada/libgnat/s-pack114.ads
! b2f616ddb16d397d0e0d6fdcc94ff7c2  gcc/ada/libgnat/s-pack115.adb
! 67bf5622f8bb293d67af813f0cc33299  gcc/ada/libgnat/s-pack115.ads
! 3f9a2665a8a4c4e87054e31507fc3b98  gcc/ada/libgnat/s-pack116.adb
! d2ac3108c3c2de63047bcd06148eeb09  gcc/ada/libgnat/s-pack116.ads
! 0576b1c7deca364010eabac99543ed58  gcc/ada/libgnat/s-pack117.adb
! 022d687f87564db3ab5d4e900037bea2  gcc/ada/libgnat/s-pack117.ads
! 6549e40102d7f341365ce9c52f51de0c  gcc/ada/libgnat/s-pack118.adb
! 2fc82cfa5a9c13622e232edeae42f34f  gcc/ada/libgnat/s-pack118.ads
! 74b41f82fb2219df4e5fedf727b5fa72  gcc/ada/libgnat/s-pack119.adb
! 069da7c9b2e488ca9ef40a3bc9c9772b  gcc/ada/libgnat/s-pack119.ads
! 27eed0e54bb4e12fc6cad2be6f75c8be  gcc/ada/libgnat/s-pack12.adb
! f40c42b81b2cc7aea8c1a521454438c2  gcc/ada/libgnat/s-pack12.ads
! 9c85c55e3c50736b034031c106395875  gcc/ada/libgnat/s-pack120.adb
! 05e489b56caa87d702048accd7c5377b  gcc/ada/libgnat/s-pack120.ads
! b889786e986f502f931a5a2521886d4b  gcc/ada/libgnat/s-pack121.adb
! 12fbb5667f5e91df27bc74d56464c3e5  gcc/ada/libgnat/s-pack121.ads
! 8ea0007e26bd3a835c97ec03dd789ea9  gcc/ada/libgnat/s-pack122.adb
! 6fbed0d3559ee7df5871ee437c6a9485  gcc/ada/libgnat/s-pack122.ads
! d7d07bdf8bf1f47f231aa4b8607ec29c  gcc/ada/libgnat/s-pack123.adb
! c2be0a2910d9d4b01a1e253b8bcea650  gcc/ada/libgnat/s-pack123.ads
! 0cb58c8d166f31438dbdacac27324de3  gcc/ada/libgnat/s-pack124.adb
! 9e1df230eee2469f31e99187bd32f2e3  gcc/ada/libgnat/s-pack124.ads
! 85ec0b2e2cabda48544aa7660a8e7872  gcc/ada/libgnat/s-pack125.adb
! d5277450f9b23ad9698e5c5a3442ce62  gcc/ada/libgnat/s-pack125.ads
! 929c0f0ecd41fa7bbdcf64f808e2a0ef  gcc/ada/libgnat/s-pack126.adb
! a98493a7e3acb0ae311f8c8e2f0a9fc9  gcc/ada/libgnat/s-pack126.ads
! 73eb645a8d2038b7ebc5840cbed12c8b  gcc/ada/libgnat/s-pack127.adb
! 42f0c5810077a891ccd1b316058b35da  gcc/ada/libgnat/s-pack127.ads
! bfe69ff2d1cb8e63a33b7aab3af36a7f  gcc/ada/libgnat/s-pack13.adb
! fd5ab5f523620246d7959cb1b0bb25d6  gcc/ada/libgnat/s-pack13.ads
! b76f00e05f7e7e0e0c2185ffbc5fc9cd  gcc/ada/libgnat/s-pack14.adb
! 019c279640851a3733a88539be284ad6  gcc/ada/libgnat/s-pack14.ads
! d93ea4bb26d137e8153e315d10e3cb4a  gcc/ada/libgnat/s-pack15.adb
! c3723e2fc9202d60142917d713ba5ae5  gcc/ada/libgnat/s-pack15.ads
! 45991221f6b4cb86df4220deb87492bc  gcc/ada/libgnat/s-pack17.adb
! d639f599a1ed8479e1f303d603f6a8ff  gcc/ada/libgnat/s-pack17.ads
! 491f5b8a29aef978872032f7a216930c  gcc/ada/libgnat/s-pack18.adb
! b133c2ecad7d05f90474052cacfc6f28  gcc/ada/libgnat/s-pack18.ads
! 340ead65d716f17f0b1b9a4c4fb93d85  gcc/ada/libgnat/s-pack19.adb
! bfc152846a60b343b09792aa9c71fa21  gcc/ada/libgnat/s-pack19.ads
! b65eb2d670fadd45d75a4a73dde44848  gcc/ada/libgnat/s-pack20.adb
! 9393dea22558b680e5994fadb8d37ba0  gcc/ada/libgnat/s-pack20.ads
! 9466ae6057bfb0c56f9cebf3d5bea0e6  gcc/ada/libgnat/s-pack21.adb
! 6169df17b7911a165c2b808ac6b59859  gcc/ada/libgnat/s-pack21.ads
! e44e7b74c79c4690a119e54fb66e308b  gcc/ada/libgnat/s-pack22.adb
! 9619368edc0fbfb6c9ac4d673c711627  gcc/ada/libgnat/s-pack22.ads
! 6d7535ddfe1ad128691782f9cfcb7696  gcc/ada/libgnat/s-pack23.adb
! b45594a775e9bd2b0a62d5c54aac98b0  gcc/ada/libgnat/s-pack23.ads
! 7f7aca9f5b38729c192f09fce14f03ba  gcc/ada/libgnat/s-pack24.adb
! c1206ff2edcc789ee415bc35ca85e480  gcc/ada/libgnat/s-pack24.ads
! 7b0c9c16cf3b3ed7379588f1be627f96  gcc/ada/libgnat/s-pack25.adb
! c59d60c9a4cf092949f8ef8223eaa1c4  gcc/ada/libgnat/s-pack25.ads
! 4c3beca23122e71f89473e0f53fea0ba  gcc/ada/libgnat/s-pack26.adb
! 83be949d5087808d31b1dd1a7dad1bc5  gcc/ada/libgnat/s-pack26.ads
! 65c864d47683513a850b104eb9946cdc  gcc/ada/libgnat/s-pack27.adb
! 68768da7c897849be9637492568098ef  gcc/ada/libgnat/s-pack27.ads
! 4dbc4500c411f95e1d2da55271a86485  gcc/ada/libgnat/s-pack28.adb
! 9e4c4913e9871db4bd05f12cd2a8c2f6  gcc/ada/libgnat/s-pack28.ads
! 569c5917b95008ff4e135d6b166c0751  gcc/ada/libgnat/s-pack29.adb
! 9801ce985816667c863ce9ed087a32c7  gcc/ada/libgnat/s-pack29.ads
! 9ccb82b238d125547356c99cd342469b  gcc/ada/libgnat/s-pack30.adb
! e183791f04f99e05e3a472bf2940d6b2  gcc/ada/libgnat/s-pack30.ads
! 9d90bb09d6ebc79870fb8905cad95cf9  gcc/ada/libgnat/s-pack31.adb
! 419f5ab759747f2282d1e34131f71555  gcc/ada/libgnat/s-pack31.ads
! b095fa9393dd98a1463da5ad455c61a1  gcc/ada/libgnat/s-pack33.adb
! 61da0bc688ec3229db126ab7d11dda74  gcc/ada/libgnat/s-pack33.ads
! d74e54571fbd39155626a560bf78bbd8  gcc/ada/libgnat/s-pack34.adb
! 1e2449b0da044e8213f15d02dd5f3ffd  gcc/ada/libgnat/s-pack34.ads
! 008319a6b0b9809f3e7810f61fde8bf0  gcc/ada/libgnat/s-pack35.adb
! 7ad5b18a7777a57cd992f9066d2c5d0d  gcc/ada/libgnat/s-pack35.ads
! 6f0b22da0260a8ae31bd350d7c002a72  gcc/ada/libgnat/s-pack36.adb
! f7cf66a8400e2ab2686f04443233a528  gcc/ada/libgnat/s-pack36.ads
! 3d2617c1e5c97fca8c14f04dc7d01b1d  gcc/ada/libgnat/s-pack37.adb
! 48c857f81ee89282a4c9efe5b319e497  gcc/ada/libgnat/s-pack37.ads
! 9ced41051dd382992e2be650754d11f3  gcc/ada/libgnat/s-pack38.adb
! f216a10300b01d46a025b97769bd5b97  gcc/ada/libgnat/s-pack38.ads
! 8a6f2e7311364903dd0bc65a4d88b234  gcc/ada/libgnat/s-pack39.adb
! 817df47d555d9ed5240fb06aff0113e6  gcc/ada/libgnat/s-pack39.ads
! c967fc3e4c60d20fe215d3cc4edc8041  gcc/ada/libgnat/s-pack40.adb
! d447bbbe103432a9555e7f60b3486a07  gcc/ada/libgnat/s-pack40.ads
! 22626fc75e205317c7745208b1206c13  gcc/ada/libgnat/s-pack41.adb
! 3a0542d6ae7588234a74656e2a918c9b  gcc/ada/libgnat/s-pack41.ads
! 9257e0a9431000971fa24e23b873c3e1  gcc/ada/libgnat/s-pack42.adb
! 6e8e4601a19f405c9fce6501e962245f  gcc/ada/libgnat/s-pack42.ads
! 12232164df11eaa595aefa7329ca2067  gcc/ada/libgnat/s-pack43.adb
! 5a5ed6efb3784f8919c94cff5defec3b  gcc/ada/libgnat/s-pack43.ads
! d7471d0b2e25bcb8064d0ac23295910d  gcc/ada/libgnat/s-pack44.adb
! f97a1d40657ddaa0d3c7b44431eba708  gcc/ada/libgnat/s-pack44.ads
! adc9ba8f020f6a64134044d29404a883  gcc/ada/libgnat/s-pack45.adb
! b3f0e3a7db7ce986e45f2ea8496fb93f  gcc/ada/libgnat/s-pack45.ads
! 7c753132ac8d8786f7b8b67fbdead845  gcc/ada/libgnat/s-pack46.adb
! e39cb5a8800941cbaa443b162599ebcb  gcc/ada/libgnat/s-pack46.ads
! c2388d629946cda4c3941fab46a00cff  gcc/ada/libgnat/s-pack47.adb
! b235490f5f58ffef7bc8ad4aef078e1d  gcc/ada/libgnat/s-pack47.ads
! 86bfb8f7c82375c727d5f7f931d30b73  gcc/ada/libgnat/s-pack48.adb
! 39189db406925a0848ea67f8be333388  gcc/ada/libgnat/s-pack48.ads
! f6859c0462c07fd88833d6b8963e87ee  gcc/ada/libgnat/s-pack49.adb
! 5a06d546ee5112ce3c6873d24949f241  gcc/ada/libgnat/s-pack49.ads
! 085c503e553b5dc89d6a363739886ab0  gcc/ada/libgnat/s-pack50.adb
! 87f108206a7fdf6341d68e9ac4b52780  gcc/ada/libgnat/s-pack50.ads
! 3e07b8238968c8f572e28bd8e19e1740  gcc/ada/libgnat/s-pack51.adb
! ee2693f611778611cb0b8b84e5da6edf  gcc/ada/libgnat/s-pack51.ads
! da0fd2d022e1c30316757ee0afe95fa8  gcc/ada/libgnat/s-pack52.adb
! e8b6505f5b2f1abb89f6a381b08ffb65  gcc/ada/libgnat/s-pack52.ads
! 964fa1e6301ea86714beb60934a94465  gcc/ada/libgnat/s-pack53.adb
! b02fdc65ba1254fade75f8debd7a5fec  gcc/ada/libgnat/s-pack53.ads
! 92ff085e569d0a847d7011ba4b3bc2de  gcc/ada/libgnat/s-pack54.adb
! b75c05371df5b09657afa742419e8668  gcc/ada/libgnat/s-pack54.ads
! 0b03d9e5da931c37551da65b14cb5325  gcc/ada/libgnat/s-pack55.adb
! 02d4e6cb998b7c8bd2511bac40340430  gcc/ada/libgnat/s-pack55.ads
! 01b7fac55839a32856dfe07df0b6f17e  gcc/ada/libgnat/s-pack56.adb
! 15bccb61b67e6788e2f0c3ee47110fdc  gcc/ada/libgnat/s-pack56.ads
! 3b0a89080b731730f4266d50442e04d8  gcc/ada/libgnat/s-pack57.adb
! b1a082561b83a67b8220ed7ce6375215  gcc/ada/libgnat/s-pack57.ads
! 0361969687f955fb74aab3e856f7ef26  gcc/ada/libgnat/s-pack58.adb
! 4dc58bd3d21496880b96d764705b6816  gcc/ada/libgnat/s-pack58.ads
! ff330e6517b41e2db70e67e410f4d52f  gcc/ada/libgnat/s-pack59.adb
! 450ec93cfe5423b7298d36a3871c1bc1  gcc/ada/libgnat/s-pack59.ads
! b45a02081ad177665dc798d4b0c303c1  gcc/ada/libgnat/s-pack60.adb
! c787c0945d9f99c9cd89be6501122222  gcc/ada/libgnat/s-pack60.ads
! 56323090c8c963dde64ee7b0f6b793a7  gcc/ada/libgnat/s-pack61.adb
! c9213f199b27272a36ed661f6504a889  gcc/ada/libgnat/s-pack61.ads
! b6fec62f0b45d46826978943a4dfec05  gcc/ada/libgnat/s-pack62.adb
! f0be98f418ccf9a2b1ef68cff0d36019  gcc/ada/libgnat/s-pack62.ads
! ce34a11ad965bef6ffa8af9fa2f30ad0  gcc/ada/libgnat/s-pack63.adb
! ddb05ca1bd823e35d9fd5e1264638a10  gcc/ada/libgnat/s-pack63.ads
! 00ba557a3e9e95a8ac338d4e5efd6811  gcc/ada/libgnat/s-pack65.adb
! 656a626a399771f8923aa2665d906ed6  gcc/ada/libgnat/s-pack65.ads
! fd0cbd669819cd54b3fbd654059b088d  gcc/ada/libgnat/s-pack66.adb
! 142a02d55f48654e715a5a0618dbedfb  gcc/ada/libgnat/s-pack66.ads
! a316f0ee3401da7b0cb8f702e34f465a  gcc/ada/libgnat/s-pack67.adb
! 59c1f19acd86884f4f554c799022ea42  gcc/ada/libgnat/s-pack67.ads
! 386bdd83930078ff56716b62413f4a71  gcc/ada/libgnat/s-pack68.adb
! 40d9a945cc2935a7727c3c3841ebb3f4  gcc/ada/libgnat/s-pack68.ads
! 15fe11fae1c2bb55e17d05f239e1d7be  gcc/ada/libgnat/s-pack69.adb
! e075152921f4f6d4ec35a158a2086808  gcc/ada/libgnat/s-pack69.ads
! 844417428298ac7331ed95d878301fdc  gcc/ada/libgnat/s-pack70.adb
! 406738c47c6a8bb1c6064cc1797770e4  gcc/ada/libgnat/s-pack70.ads
! 86fc6df365adf3e07725da8a7ff13705  gcc/ada/libgnat/s-pack71.adb
! f95cc3aa9e4fd2fc79bc6d2ddd472761  gcc/ada/libgnat/s-pack71.ads
! 8c30a52ccad1c9519b37c6405873571a  gcc/ada/libgnat/s-pack72.adb
! 4c34bbafd07dc7b974e2992fa74cb188  gcc/ada/libgnat/s-pack72.ads
! efc11b619f1a2a24182c79da23ce3d95  gcc/ada/libgnat/s-pack73.adb
! 99ddc13389185775b1979d71a69f0a2e  gcc/ada/libgnat/s-pack73.ads
! a817ba7d760136609573bf0f72a53543  gcc/ada/libgnat/s-pack74.adb
! 41cec2b6fcae450e5568cb2643566e24  gcc/ada/libgnat/s-pack74.ads
! 8b157d878f14ce2a4cdb465794947fd5  gcc/ada/libgnat/s-pack75.adb
! c2000c60d9b7fbcce12678dee11bf471  gcc/ada/libgnat/s-pack75.ads
! e323fd6451c129ad64346de3a841e15a  gcc/ada/libgnat/s-pack76.adb
! ab7dfd81d791fecda4daaeb657371835  gcc/ada/libgnat/s-pack76.ads
! 6f5e3810d6e3fca41c2f03120839de14  gcc/ada/libgnat/s-pack77.adb
! 8f953b121fb80b194887349f2989c7cf  gcc/ada/libgnat/s-pack77.ads
! 682ae4cdea44522478aa8fd9a95ce71a  gcc/ada/libgnat/s-pack78.adb
! 8b2a65c3ac9050f70c1b103ece913e17  gcc/ada/libgnat/s-pack78.ads
! 5bcc87735c9fbb14ffeec6abfa75d81c  gcc/ada/libgnat/s-pack79.adb
! c09f5ffb130e5c0a5023a78798f67fd7  gcc/ada/libgnat/s-pack79.ads
! 5d8bd50d375f599befd143b17b527f7a  gcc/ada/libgnat/s-pack80.adb
! 8385d92d0afa5cdadb60404fbfbab26c  gcc/ada/libgnat/s-pack80.ads
! 5aa287aaa9c5f6e9939a21a66c29f0f8  gcc/ada/libgnat/s-pack81.adb
! b57d7ea285794925ff95b03455e67bd2  gcc/ada/libgnat/s-pack81.ads
! 3e9fb10bfe9ad16ff6d0d549e7ba01eb  gcc/ada/libgnat/s-pack82.adb
! 5c71b4d65416f71172bec8ef079728bd  gcc/ada/libgnat/s-pack82.ads
! 83bfc317cd854a88a641a51ab96334b5  gcc/ada/libgnat/s-pack83.adb
! 5940c540a042f825a8eec30bf07fac80  gcc/ada/libgnat/s-pack83.ads
! e33374b367afb1c3cc597ce9f9f5636c  gcc/ada/libgnat/s-pack84.adb
! cee44f54c0715e0e50ec427cd2da0d86  gcc/ada/libgnat/s-pack84.ads
! 725088895277fc30c305db08faf874dd  gcc/ada/libgnat/s-pack85.adb
! 9ea2f321f7f41cbb54938fb2b012a910  gcc/ada/libgnat/s-pack85.ads
! e3dbb2411dd29d8cbcbf7c39b7c5cc61  gcc/ada/libgnat/s-pack86.adb
! 6673d74881cb64aaf8df04c2e57227ab  gcc/ada/libgnat/s-pack86.ads
! 14350fc47b77b98e1dc999881fb7ed46  gcc/ada/libgnat/s-pack87.adb
! a0074ffdf97b147805cf62e5e77c562a  gcc/ada/libgnat/s-pack87.ads
! 33f7af2f6f54329f0e5b699c65d74439  gcc/ada/libgnat/s-pack88.adb
! edc7589477ade7b116637d8292044397  gcc/ada/libgnat/s-pack88.ads
! de14941f313fe4cd141432b8b0b381ea  gcc/ada/libgnat/s-pack89.adb
! fdadb9231ae63f56105daf1104a5fbb7  gcc/ada/libgnat/s-pack89.ads
! 8fa940d7dee7ea771dda6493ed49d4ac  gcc/ada/libgnat/s-pack90.adb
! af440444f66a2c1fc8cbd11c69d9e16f  gcc/ada/libgnat/s-pack90.ads
! 178b04799ef9050898f2983fb9926a15  gcc/ada/libgnat/s-pack91.adb
! c6f0424ab16bf25820c7bcd44b34978a  gcc/ada/libgnat/s-pack91.ads
! ccbecdb2e7f9acd421c42bd110d07630  gcc/ada/libgnat/s-pack92.adb
! 85019dc0145c22ae94295334e79b3042  gcc/ada/libgnat/s-pack92.ads
! c7a280f05d5340bb9a661acf20f1d257  gcc/ada/libgnat/s-pack93.adb
! 4753812db9f0accfdbf583f9b0efb853  gcc/ada/libgnat/s-pack93.ads
! 7e338e4445d45d339da5cbe96c2c95cc  gcc/ada/libgnat/s-pack94.adb
! 0c6226ad025106156b110c2873f34482  gcc/ada/libgnat/s-pack94.ads
! 3c023145945b3e6080b42a757aa0e767  gcc/ada/libgnat/s-pack95.adb
! 9b069ed0c5eddd3a1292b24b9e541c76  gcc/ada/libgnat/s-pack95.ads
! 1dc581298367c4ee2610163e8137599f  gcc/ada/libgnat/s-pack96.adb
! f861686f2b23a089bb2f0d9f6b1beb96  gcc/ada/libgnat/s-pack96.ads
! 4018c82a57d0671a1ac2bbc273a989ea  gcc/ada/libgnat/s-pack97.adb
! 1af0cf6285868d44f95961c9374138ad  gcc/ada/libgnat/s-pack97.ads
! a88fa999d5af9aa3e8c136505d50827a  gcc/ada/libgnat/s-pack98.adb
! 207f89d974848b693e2c96e4f83ada6a  gcc/ada/libgnat/s-pack98.ads
! 937aeb0b9344d8306f3b33646af1d0c2  gcc/ada/libgnat/s-pack99.adb
! b25b14fa7fb6683639760cb2665e74c8  gcc/ada/libgnat/s-pack99.ads
! b15079c6c3986618e04371bc1fabd398  gcc/ada/libgnat/s-parame.adb
! bff4f85720c58ec8f6fc5594dc3de70a  gcc/ada/libgnat/s-parame.ads
! 31b4a10c185366d3b2aaab807d0ae879  gcc/ada/libgnat/s-parame__aarch64-linux.adb
! b66d49460befc03a51abcbe09d3ad729  gcc/ada/libgnat/s-parame__hpux.ads
! d989a62f0bdeb2dc71bb93160ade93d3  gcc/ada/libgnat/s-parame__posix2008.ads
! 43b0b4dd323144151048d63aa64c7d68  gcc/ada/libgnat/s-parame__qnx.adb
! 906a6474493f5a4e840d575a3159653e  gcc/ada/libgnat/s-parame__rtems.adb
! 4c4cdf83dc3363daecbdc44a85303442  gcc/ada/libgnat/s-parame__vxworks.adb
! 149159a2c6c7fe0a21f9efcd21ce7b6c  gcc/ada/libgnat/s-parame__vxworks.ads
! c73f84c7709f183a0e03a188c7b3524d  gcc/ada/libgnat/s-parint.adb
! 0417f7d80315a2abca26ad03ec395a69  gcc/ada/libgnat/s-parint.ads
! 9975fd3b2e089e1ff6931b2bb3cbe677  gcc/ada/libgnat/s-pehage.adb
! c85f8bd1a8ce39108eb07eb81bddfad9  gcc/ada/libgnat/s-pehage.ads
! 24d9d72076fe46b44f331d4bf7cd4c04  gcc/ada/libgnat/s-pooglo.adb
! 89d4bdcd39adf6bdf879fe081dea1a84  gcc/ada/libgnat/s-pooglo.ads
! f3f783f840aa2e0e8ece5a05eb4bd7c4  gcc/ada/libgnat/s-pooloc.adb
! a0a9715400872df52b15547085cc8939  gcc/ada/libgnat/s-pooloc.ads
! a84046bb98c8b15249c3ee949cc462e5  gcc/ada/libgnat/s-poosiz.adb
! a4ce362e4e0037541dce6e6a86256f67  gcc/ada/libgnat/s-poosiz.ads
! f787fc4fbde9aeca06c03c7d729c2fbf  gcc/ada/libgnat/s-powflt.ads
! 611ce70c934716eac27121006897d4c0  gcc/ada/libgnat/s-powlfl.ads
! 358b9ec846f94c5dea1d62f70b69c6d8  gcc/ada/libgnat/s-powllf.ads
! 892bdf904a5c06dd0985fef405d6f249  gcc/ada/libgnat/s-purexc.ads
! fd1d5765d1530992068389be9ad75633  gcc/ada/libgnat/s-putima.adb
! 8d79796e20d8ed0d9431de996ed5ce50  gcc/ada/libgnat/s-putima.ads
! 097342fdabe0b04f3ed2056878098d0b  gcc/ada/libgnat/s-rannum.adb
! a976e4a4be988927c750123edff633d3  gcc/ada/libgnat/s-rannum.ads
! 8d3735f439d584afcd955aa6b9dbc188  gcc/ada/libgnat/s-ransee.adb
! 547a5125002106a3aff9717dfc043b69  gcc/ada/libgnat/s-ransee.ads
! 9ebdee4af9dce67991cb5ba5cd9d05ad  gcc/ada/libgnat/s-regexp.adb
! c6b932dbd5c5e29989b27b71bf202c5a  gcc/ada/libgnat/s-regexp.ads
! 1410ff14198ad59502a3512d48ae4742  gcc/ada/libgnat/s-regpat.adb
! 05e0e5fc3ddc331651e5128c508cd5f6  gcc/ada/libgnat/s-regpat.ads
! 5f9fd19241654cd7154bb5c45f643bd2  gcc/ada/libgnat/s-resfil.adb
! 1e3f947984dd7e9511055b3a9b3a20cc  gcc/ada/libgnat/s-resfil.ads
! 7a29b8bbeed8466d8c0d52103879a808  gcc/ada/libgnat/s-restri.adb
! 002d79ac216090161cc669016333b109  gcc/ada/libgnat/s-restri.ads
! 76605f90ed4874e91814f56fde257bf9  gcc/ada/libgnat/s-retsta.ads
! 9390741173b3d3756832ec0cd87c756a  gcc/ada/libgnat/s-rident.ads
! 60d043d7761287dbf98a65accf9af0d3  gcc/ada/libgnat/s-rpc.adb
! 597a8c170905413b85aea0a2c10b953b  gcc/ada/libgnat/s-rpc.ads
! fb8ce448fc18100b7ab3696a970cefef  gcc/ada/libgnat/s-scaval.adb
! d7ef7e182a1e37222a10286b201abda7  gcc/ada/libgnat/s-scaval.ads
! 8de14d068ceff95cf4226f50bcfe6a69  gcc/ada/libgnat/s-scaval__128.adb
! faf834df5906c5c44a11bf2e1714010c  gcc/ada/libgnat/s-scaval__128.ads
! 360a0e644022a2ea5c4c1a658e454b7c  gcc/ada/libgnat/s-secsta.adb
! c357811accaff09385431aded29b40aa  gcc/ada/libgnat/s-secsta.ads
! 677f7165ecde0a07422fe01be0e28a48  gcc/ada/libgnat/s-secsta__cheri.adb
! f3707f4d20aaf91eaf7ae4cbf0c0885c  gcc/ada/libgnat/s-sequio.adb
! 63640562aa4ba92f5b0c26c9ab31bde5  gcc/ada/libgnat/s-sequio.ads
! 26cec890209604c8977bd0d2e5a3dd93  gcc/ada/libgnat/s-shabig.ads
! 9e1a35aeeaecc38ae7c97ea2c5823bc2  gcc/ada/libgnat/s-shasto.adb
! 3affd6dd78a121f8c8c2accb4a1edf39  gcc/ada/libgnat/s-shasto.ads
! 32b25674a63e8ca7f631cb5b9727ba70  gcc/ada/libgnat/s-soflin.adb
! 870165ae5b404d6643e814aec6fc19c4  gcc/ada/libgnat/s-soflin.ads
! 97c40f0db4abdd08f2015cf213b93ee2  gcc/ada/libgnat/s-soliin.adb
! 56651c46e0030cf7c6ddb024c07d7e0f  gcc/ada/libgnat/s-soliin.ads
! e9244914ab3a0af42fc682c9905e72e5  gcc/ada/libgnat/s-spark.ads
! 072839c5f70c27da5fe9ff1adf2cf55f  gcc/ada/libgnat/s-spcuop.adb
! dfd44cccbee9a292e4ec3a7eb2210193  gcc/ada/libgnat/s-spcuop.ads
! 134559b65e2149925b3ea7eaf6ce7c1c  gcc/ada/libgnat/s-spsufi.adb
! 8c54d22271fb0eb1ea10be2ad4195437  gcc/ada/libgnat/s-spsufi.ads
! e865d893f0dc5166d74707abd3ccf817  gcc/ada/libgnat/s-stache.adb
! f2e094fd299b7a5a38c0bb95488a9a86  gcc/ada/libgnat/s-stache.ads
! e352a12b4d9f9fa805da7e6f658fdf64  gcc/ada/libgnat/s-stalib.adb
! 96c313f30fdba62de433fb092458877f  gcc/ada/libgnat/s-stalib.ads
! 55323d3e45389ad9fef892d1cd81d1fc  gcc/ada/libgnat/s-statxd.adb
! fafaec7e1407523ff707cd31b2f133b7  gcc/ada/libgnat/s-statxd.ads
! 5a84bd37eebed6a9a806a28b4d867da1  gcc/ada/libgnat/s-stausa.adb
! 6971fc7fe028e094537723058377fbab  gcc/ada/libgnat/s-stausa.ads
! 8807ad512b03355051bfd5fb569a37e3  gcc/ada/libgnat/s-stchop.adb
! 77ae5ab61ffcb4e91b6a831c69bb9008  gcc/ada/libgnat/s-stchop.ads
! cf4e9c9c6b5846a66a92e76ff6939db8  gcc/ada/libgnat/s-stchop__limit.ads
! b15bb19c13bffede52de977ba4d3080c  gcc/ada/libgnat/s-stchop__vxworks.adb
! bda6e6153863f28fe5e93d505727b03b  gcc/ada/libgnat/s-stoele.adb
! 025b925122caa2aa5bbc931abccc32f1  gcc/ada/libgnat/s-stoele.ads
! 0a0b6770f7babc248b2a2f27ab8b52bd  gcc/ada/libgnat/s-stopoo.adb
! 3adae9a9cfd5cb0dc6a87f30a41a32cc  gcc/ada/libgnat/s-stopoo.ads
! 4ca21e4a3c1fea6cfa36b7bc6a6b66b7  gcc/ada/libgnat/s-stposu.adb
! 3de12659c89015b6d86300c9fd13f0c3  gcc/ada/libgnat/s-stposu.ads
! d37cb5009fbf6cc86d2d4380f5882ad9  gcc/ada/libgnat/s-stratt.adb
! ab6a28dbd6b37651186442d1595a4e9d  gcc/ada/libgnat/s-stratt.ads
! 2e6c6d9ef14ea33da34b09de00160ed3  gcc/ada/libgnat/s-stratt__cheri.adb
! a5ac1a661b8910fd3e257096fdbc2b19  gcc/ada/libgnat/s-strcom.adb
! a5962b65b082efdd807e1e78406c8276  gcc/ada/libgnat/s-strcom.ads
! 3c2868bef8c0b5736a45c3827118a72d  gcc/ada/libgnat/s-strhas.adb
! 9862d02cf5dca5667b8fb2264d912400  gcc/ada/libgnat/s-strhas.ads
! 5d7c0d0f8785f080a6ba7da6ca2316ad  gcc/ada/libgnat/s-string.adb
! 063a0a73aa194cc816ec93578f4997c5  gcc/ada/libgnat/s-string.ads
! 37d6a1394bc3521c05cf2656e486a56f  gcc/ada/libgnat/s-ststop.adb
! a6ad25d69c16eba20b5b03e843900f89  gcc/ada/libgnat/s-ststop.ads
! f9a83fd690c9eec69a3953e5c671b16e  gcc/ada/libgnat/s-tasloc.adb
! ea699eaacddd94e44af5fb519361ad4d  gcc/ada/libgnat/s-tasloc.ads
! 78cb86ecc1205fbe8c11fd0b12c555a9  gcc/ada/libgnat/s-traceb.adb
! 4fac25110e662dd9a0a45cf043855ca7  gcc/ada/libgnat/s-traceb.ads
! 329f1393567204f6ecb3e7b3a75dc96a  gcc/ada/libgnat/s-traceb__hpux.adb
! 6a1035fe9e9be79742beda804e67a3f2  gcc/ada/libgnat/s-traceb__mastop.adb
! ed9803237b06bc4a3d390e2358fd3b27  gcc/ada/libgnat/s-traent.adb
! 26134f1dafdbc6f3bfdee2d8a3d691c7  gcc/ada/libgnat/s-traent.ads
! 42dec61edfcb9d86beb94f9f2774d3df  gcc/ada/libgnat/s-trasym.adb
! ba0f0e2b49a2abcb11276ca13680a9ca  gcc/ada/libgnat/s-trasym.ads
! 53e27655cb2d5a7a462d1b0304637779  gcc/ada/libgnat/s-trasym__dwarf.adb
! ae31c644571f5bd80e55212954450689  gcc/ada/libgnat/s-tsmona.adb
! d24397c620e7798c862b39526b3374cd  gcc/ada/libgnat/s-tsmona__linux.adb
! 8991c7832c179d6caa3de959bccd9ca2  gcc/ada/libgnat/s-tsmona__mingw.adb
! 101a432e849fec4249fbb5d248b7704e  gcc/ada/libgnat/s-unstyp.ads
! bc9cf794cd3676f97692af3d2bc9a5e5  gcc/ada/libgnat/s-utf_32.adb
! e8b447e367bf8205851754fb0d292c3b  gcc/ada/libgnat/s-utf_32.ads
! 2c7e35cc8069041301f311b1a86699a1  gcc/ada/libgnat/s-vade128.ads
! 8ee440adad737cf3137d1f28114677da  gcc/ada/libgnat/s-vade32.ads
! 0403664d279f3e52e0ef77ae3b29c740  gcc/ada/libgnat/s-vade64.ads
! 75d45d82769474f83acd719876bcf588  gcc/ada/libgnat/s-vaen16.ads
! 061f0c0a8ef4f685066dda97a512a9f0  gcc/ada/libgnat/s-vaen32.ads
! 36c7ca618282c8b251797e302b8c5c7c  gcc/ada/libgnat/s-vaenu8.ads
! 4e4f501fde79b03325a9d25aa424ad30  gcc/ada/libgnat/s-vafi128.ads
! 33fa912b6e83aee9a3244edfd59cb9b2  gcc/ada/libgnat/s-vafi32.ads
! c6ce2a87517245b2b27cf41ac77b3192  gcc/ada/libgnat/s-vafi64.ads
! bd19dba1bebbf5dab7fdd6043122be84  gcc/ada/libgnat/s-vaispe.adb
! 58844a480c302ea42b0e325e3952b5d6  gcc/ada/libgnat/s-vaispe.ads
! 489672f1804322778f739938dccfce8e  gcc/ada/libgnat/s-valboo.adb
! a6cddda65bfb775e68bccf065b4a0ab0  gcc/ada/libgnat/s-valboo.ads
! 865ed67e2f17553b1372b878d89e6011  gcc/ada/libgnat/s-valcha.adb
! 6a6293a1e74b9a2589fe770644ae7bc7  gcc/ada/libgnat/s-valcha.ads
! e0562a04bacbde441559446993fbd60e  gcc/ada/libgnat/s-valflt.ads
! e06f9b56125d3e138309c9afb78572d1  gcc/ada/libgnat/s-valint.adb
! 378cb14d187daf46c07b71d2617c60be  gcc/ada/libgnat/s-valint.ads
! 487926e06f1eb2002f891823209952e8  gcc/ada/libgnat/s-vallfl.ads
! e3573a331c9da65676bb43b33e41eccd  gcc/ada/libgnat/s-valllf.ads
! 1a279bde042a741973fba3973af36af2  gcc/ada/libgnat/s-vallli.adb
! bcfda185573484775e6741bc5d2fa610  gcc/ada/libgnat/s-vallli.ads
! a4f09fe88a1d33e55aff4a4d3ea2bd29  gcc/ada/libgnat/s-valllli.ads
! 7a10e3a0c125e46b34fcf79980b3b67a  gcc/ada/libgnat/s-vallllu.ads
! ebc5cf7d12e00dad27cc95ef08f3f9ed  gcc/ada/libgnat/s-valllu.adb
! a2d8197866f4a7476bc4264696c711cd  gcc/ada/libgnat/s-valllu.ads
! 7ce9f4a2290eaae020364a5e782ac01f  gcc/ada/libgnat/s-valrea.adb
! fea79505753dcfddbdd4bb7e6c817f95  gcc/ada/libgnat/s-valrea.ads
! 6fd51b685b82a5adb941119c347a1fa5  gcc/ada/libgnat/s-valspe.adb
! 8ead03e5c593fbf235d15e1243889a5e  gcc/ada/libgnat/s-valspe.ads
! ea5e9da8ebce11c805cb17d0f233f416  gcc/ada/libgnat/s-valued.adb
! 6878604d7169687d8b0559a0c882290b  gcc/ada/libgnat/s-valued.ads
! a8ff28e37c96c283d18cc665773d4f7d  gcc/ada/libgnat/s-valuef.adb
! f57876720eb8101aa21c0b11bb083f4d  gcc/ada/libgnat/s-valuef.ads
! 3abbb0b768c2d7b58d661b2608f566aa  gcc/ada/libgnat/s-valuei.adb
! db56addcc91555584e1fc4a035a0314b  gcc/ada/libgnat/s-valuei.ads
! 45d076789f772670210823137d7e95c5  gcc/ada/libgnat/s-valuen.adb
! 085c74c7ed0d273025dda1e9056c2660  gcc/ada/libgnat/s-valuen.ads
! e41e17197bed6190fc6f971c052c2023  gcc/ada/libgnat/s-valuer.adb
! 23b00738ace44d22300c5217e54626db  gcc/ada/libgnat/s-valuer.ads
! 9b85995a468e41d9c21a4297d146eaaa  gcc/ada/libgnat/s-valueu.adb
! a529bdc80faff9bec345ce2ac8173fd4  gcc/ada/libgnat/s-valueu.ads
! 462e5a0207eadc68a181a16d2d3e355f  gcc/ada/libgnat/s-valuns.adb
! f3a430312f2a39b7746559fe6a1e12ba  gcc/ada/libgnat/s-valuns.ads
! 16fc104a427a87f113de3d7f54cedebe  gcc/ada/libgnat/s-valuti.adb
! f61e963f192329ddb54ffe763653b3d8  gcc/ada/libgnat/s-valuti.ads
! ba4c2f32529d0e79da44fc4f70bacf03  gcc/ada/libgnat/s-valwch.adb
! 22cb7235ac47c197e96f0afde7817106  gcc/ada/libgnat/s-valwch.ads
! 04bef13f09687be9b7f3572b300824ba  gcc/ada/libgnat/s-vauspe.adb
! 5a1719dd5227193cda512b08ba549b8d  gcc/ada/libgnat/s-vauspe.ads
! f8088f550846f6b5ec86be03b8443661  gcc/ada/libgnat/s-veboop.adb
! 34027eb69f3d2f324bd016f4faf2402f  gcc/ada/libgnat/s-veboop.ads
! 697ae56080e22092df255b4b20223a53  gcc/ada/libgnat/s-vector.ads
! 4c2c36da0456180bf3dbea82fbdf19d0  gcc/ada/libgnat/s-vercon.adb
! 6807ef9d5192fc782ec5ac2a60577087  gcc/ada/libgnat/s-vercon.ads
! b874cd8c77f4091f8f4c0efc7d229eb9  gcc/ada/libgnat/s-vs_int.ads
! c3acfffe09a3e18f9e1a450e62d20eb7  gcc/ada/libgnat/s-vs_lli.ads
! 971b2014015ae781a028fc10e4cc4360  gcc/ada/libgnat/s-vs_llu.ads
! 6b3b3a7d8f26f2b5d47afc91d1aa9114  gcc/ada/libgnat/s-vs_uns.ads
! 66577c8f80961e28c4c5ee4d99b37e85  gcc/ada/libgnat/s-vsllli.ads
! c56f2c0e72324d4fdadf4497fb8d45ff  gcc/ada/libgnat/s-vslllu.ads
! a17e0ec89843a9562c1edcce8329b6ca  gcc/ada/libgnat/s-wchcnv.adb
! 0bc3cc4614f11f9c05e9c03c3abfce0b  gcc/ada/libgnat/s-wchcnv.ads
! 33e6119333b74923e207e53ebd4ec3ed  gcc/ada/libgnat/s-wchcon.adb
! 6f05d113014eca03391d1f2387d331b8  gcc/ada/libgnat/s-wchcon.ads
! 6b46eb38ba13161ee670b0b0bd581b58  gcc/ada/libgnat/s-wchjis.adb
! 2400e2bb12a736495371174d5dff4b2b  gcc/ada/libgnat/s-wchjis.ads
! 3f0752e16c507dc2f694a50c54cbba6c  gcc/ada/libgnat/s-wchstw.adb
! 8d7b59fd2b8962858d571922e7a86a01  gcc/ada/libgnat/s-wchstw.ads
! 9002485993791790488f475659a1ef3b  gcc/ada/libgnat/s-wchwts.adb
! f8700bd5b4ec5d1a4a7325c3921192dc  gcc/ada/libgnat/s-wchwts.ads
! e0557ea267de30d11a5ddbec4cf5cf5b  gcc/ada/libgnat/s-widboo.adb
! a0a036fee9ee8a24f2a71734dc548c5e  gcc/ada/libgnat/s-widboo.ads
! 586809b6f40b09d9e1f48c3a320b0d6d  gcc/ada/libgnat/s-widcha.adb
! 908c9dc0150281b72d32887f1f95d61e  gcc/ada/libgnat/s-widcha.ads
! d2596f15023ba932727348b12b221716  gcc/ada/libgnat/s-widenu.adb
! 008356cbeb79232035ae194b767441e6  gcc/ada/libgnat/s-widenu.ads
! 4eb7cdf4d27b76c63c965dc890f0e923  gcc/ada/libgnat/s-widint.ads
! bbe7e60031fc02e02f008cfdcbea364a  gcc/ada/libgnat/s-widlli.adb
! 2cf84ba398daaa0f0933e510277da4ce  gcc/ada/libgnat/s-widlli.ads
! c079aba8db0c45ec05c944ea2666a091  gcc/ada/libgnat/s-widllli.ads
! d1fe4791a311bba60c01714f1eca1fb9  gcc/ada/libgnat/s-widlllu.ads
! 93256b1da4ecccc285d3206ad51bf0c5  gcc/ada/libgnat/s-widllu.adb
! f1e9f66c980cd8c5537ecb977f68a1a5  gcc/ada/libgnat/s-widllu.ads
! 191650a86b5449021d618b9495df48b7  gcc/ada/libgnat/s-widthi.adb
! 236974cb335eaa3d544fb00b93d8fc2b  gcc/ada/libgnat/s-widthi.ads
! fe1f73ddcf34beaeceb9248d25333e48  gcc/ada/libgnat/s-widthu.adb
! 6f39428359ec69f79f97bafb328f67b2  gcc/ada/libgnat/s-widthu.ads
! 5bdaa47711ac348b33b126869cdff794  gcc/ada/libgnat/s-widuns.ads
! 13131a015542b41c9cdb4a3cfa0aaac5  gcc/ada/libgnat/s-widwch.adb
! d53faaefa77446c81af8ba6d2fce63bd  gcc/ada/libgnat/s-widwch.ads
! 5c09de2fd484e02df6d31866104f9148  gcc/ada/libgnat/s-win32.ads
! 9698916846a037db93dd26f37da40e05  gcc/ada/libgnat/s-winext.ads
! 97860d23ec66a4710cf955632fab266b  gcc/ada/libgnat/s-wwdcha.adb
! 49bff18c45ebcfcd4a2038e4bf402536  gcc/ada/libgnat/s-wwdcha.ads
! c6c10ad792985ed7eacf2774bbd373fa  gcc/ada/libgnat/s-wwdenu.adb
! d21d3fd6a60f34b05c327d101f8bca11  gcc/ada/libgnat/s-wwdenu.ads
! 332e560a6eabc9c71ba4c886b22f315b  gcc/ada/libgnat/s-wwdwch.adb
! 04d4f7bc9db792c546a576c852103a1f  gcc/ada/libgnat/s-wwdwch.ads
  0f4c21401ad2531f8c5d4010537dc6d2  gcc/ada/libgnat/sequenio.ads
! d44c7c1223d2738a5eba917a7cd5b684  gcc/ada/libgnat/system-aix.ads
! b2fe36cd62e861ffff51e051c5b969cd  gcc/ada/libgnat/system-darwin-arm.ads
! 09d84a25b3e15b5b0b4e9b3137bf330e  gcc/ada/libgnat/system-darwin-ppc.ads
! 5bd08190e2ce1bb50d6c76a516365bd0  gcc/ada/libgnat/system-darwin-x86.ads
! 084e5e256ddfbf3fcdd7abbbdd55c906  gcc/ada/libgnat/system-djgpp.ads
! 6561ec116b1b9c39c8f1719e9b0c5409  gcc/ada/libgnat/system-dragonfly-x86_64.ads
! 97874821ad40bd1cc079f77f348ae35d  gcc/ada/libgnat/system-freebsd.ads
! fdf8b1f34911be9db20f9c5462e8a18f  gcc/ada/libgnat/system-gnu.ads
! 0b0ade525b14a0ca939d6e61238d7772  gcc/ada/libgnat/system-hpux-ia64.ads
! 571a683ee455f94f2759e99dd7a34440  gcc/ada/libgnat/system-hpux.ads
! ca50c109ab873565785735a0fc7b519c  gcc/ada/libgnat/system-linux-alpha.ads
! 6e0df90c197a855b968fcbf7f3b75168  gcc/ada/libgnat/system-linux-arm.ads
! 46c7642eea429c4c381655f00aa89219  gcc/ada/libgnat/system-linux-hppa.ads
! 0ef39f058633550414ed85daf5b0176a  gcc/ada/libgnat/system-linux-ia64.ads
! 53fc71cd1ef500bb36caf52c33ad6d8a  gcc/ada/libgnat/system-linux-loongarch.ads
! 01a608db32885c695a0b8e3d05ec33b5  gcc/ada/libgnat/system-linux-m68k.ads
! 2e6961fb9d192db0300eb43023c51c45  gcc/ada/libgnat/system-linux-mips.ads
! 33193af368f24333f1577b5b11768eb6  gcc/ada/libgnat/system-linux-ppc.ads
! 92bdb98f7542bfa0194fc957151b6360  gcc/ada/libgnat/system-linux-riscv.ads
! 411976034774247d3b8a92b0516bd0f7  gcc/ada/libgnat/system-linux-s390.ads
! 36e059ae7a396591250d878b544dacf8  gcc/ada/libgnat/system-linux-sh4.ads
! 6ba1abfcc8b32f22fd34265196c450da  gcc/ada/libgnat/system-linux-sparc.ads
! fca4509c88506ca0cfe9ba1667b094ab  gcc/ada/libgnat/system-linux-x86.ads
! 3c5fc74240c7c4b4d7a8ed47b7fa051c  gcc/ada/libgnat/system-lynxos178-ppc.ads
! 0dd706e7d0625f1d6c62c2e8007263f4  gcc/ada/libgnat/system-lynxos178-x86.ads
! f10f2cbd5b597081d27e5bcedd3a308f  gcc/ada/libgnat/system-mingw.ads
! ad930b45802d19b47309b670a7ed1459  gcc/ada/libgnat/system-qnx-arm.ads
! c0b158ca5f61ea4833fee6aff18085fc  gcc/ada/libgnat/system-rtems.ads
! 8aab0a699c568ef77d6bb9380ebe7d0b  gcc/ada/libgnat/system-solaris-sparc.ads
! 1e250472114bb4a497fad25e8c85df9c  gcc/ada/libgnat/system-solaris-x86.ads
! 14b2e8838ebde749eb4eb5b2b009662f  gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
! 691f6a5c63cd6a9fba1005dd02d49d9c  gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
! dab5d040270280bd930dd4a44d5992a7  gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
! b637a19b782fe20d3705d61e38553f7c  gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
! 97fc094b38e10f90d55b9699fb30e9e5  gcc/ada/libgnat/system-vxworks7-aarch64.ads
! d8c5108501d7a6e6feda341717b19206  gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
! 2e4bab2ccd0f7992d7a5040f8c2074b4  gcc/ada/libgnat/system-vxworks7-arm.ads
! c50a40d50cc7df2b8bdb525d8da5818b  gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
! faa0e8ae41e212b405545968966d1cfe  gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
! e84c862928872762c8d7e91742e00dfb  gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
! e20c936100098f86c4d9997b00caaca2  gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
! 05c1a1dca202ec90465adc44e7eba04c  gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
! 618afed845446c828d1aa81b8c137be4  gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
! 058334d5919592f62d11ced1c2523b7d  gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
! a2f320f7f0ef571e5f99d0d8f1efa686  gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
! 5b5a0f33d6b1cd316c17c759b05d17b6  gcc/ada/libgnat/text_io.ads
! 22a85f08e1699f308a9b60bf5ce4a6d0  gcc/ada/libgnat/unchconv.ads
! 91a6872657c72c6647e2e8f6edb008ba  gcc/ada/libgnat/unchdeal.ads
! 4e18de9074a949b173179d265c36c9fe  gcc/ada/link.c
! e294448193cb759e4c1e06d820888165  gcc/ada/live.adb
! 3c65af3e1d391a436f644e2be1ba91eb  gcc/ada/live.ads
! a6232c2c6695f3968d72a36b3644872f  gcc/ada/local_restrict.adb
! 5afc39f477386bac6e37e2c654129e5b  gcc/ada/local_restrict.ads
! c0aa0ea596c2f36453ceff3b5fdcd93d  gcc/ada/locales.c
! b3d080be0b0ad10ff0b07cf73c0c08cb  gcc/ada/make.adb
! 69fc7bcba1600b07c089e53bfded4000  gcc/ada/make.ads
! 1788022297483d11a7ac5600bb2b5cf6  gcc/ada/make_util.adb
! cbc35498a96853884a162ba8fa9ef19a  gcc/ada/make_util.ads
! 13662536ce830c6bc9a1475a41eaeed7  gcc/ada/makeusg.adb
! 76fb34cd8d637fbcbdce053afe113d92  gcc/ada/makeusg.ads
! a8999e0eb0ae2cdd975b29810fc9b2c3  gcc/ada/mdll-fil.adb
! a7f930b22c164e386de87a3b8a7dfc79  gcc/ada/mdll-fil.ads
! ab9939b49453725547f3283346e3167e  gcc/ada/mdll-utl.adb
! 1208a3f62534cb0a91c5cb3df8541f12  gcc/ada/mdll-utl.ads
! f1c598b9ed25c6a7f9ca4fe6ae452f22  gcc/ada/mdll.adb
! 751e8542774037ed27a6bc9f4ece18cb  gcc/ada/mdll.ads
! 1c3b6dcadfa6a8c0f677bbc6532e4df4  gcc/ada/mingw32.h
! 204b17cea6ee8ef6f625bdb94e8bea02  gcc/ada/mkdir.c
! df5aa0dd04daf543efbc0f72adda7a9a  gcc/ada/mutably_tagged.adb
! 8b3ea8a8e93333d3199fe382c5a9bb29  gcc/ada/mutably_tagged.ads
! 7f39a63ae2aca38a1e09b830d8298e42  gcc/ada/namet-sp.adb
! 6bcaf8f1c19dc69c747c2d495b341d5f  gcc/ada/namet-sp.ads
! a2481c3bfe8c5089ac1f678f5143f367  gcc/ada/namet.adb
! 274243b06e5aafd9ae09c5d334979394  gcc/ada/namet.ads
! 29e83737754a1fc58d053ff18161216c  gcc/ada/namet.h
! dc90c17405377d786c7b95c06f79dabe  gcc/ada/nlists.adb
! aef70af2835279de8e33b52eb8375d45  gcc/ada/nlists.ads
! 276eb125c0df313227d9ecfb3f38866d  gcc/ada/nlists.h
! e3945121c34a6169efa63d13c280b7e7  gcc/ada/opt.adb
! 6d65789c9b58487a5f6d8172fba262d7  gcc/ada/opt.ads
! fcbd079f712fd349c109f5ecd640096b  gcc/ada/osint-b.adb
! 2604c4a51297a9867c69ce9985c3fb8b  gcc/ada/osint-b.ads
! 4f31614f93bd69a85fe6c1f144e04b37  gcc/ada/osint-c.adb
! 39a1abb2a255f81eaf6338a72145bc2e  gcc/ada/osint-c.ads
! ff58ad534c1d41e61a849480d13ce148  gcc/ada/osint-l.adb
! d0e8a185b784d6fa32d59390c9e8e780  gcc/ada/osint-l.ads
! 4444d9a9330843418fc67a5d03720550  gcc/ada/osint-m.adb
! 22f9062945fcd35f16780a79716b998a  gcc/ada/osint-m.ads
! 5cb0abddd2b8e90b33965e827052dc5c  gcc/ada/osint.adb
! 459fa10421ec39b23d4b3bf5a9af373a  gcc/ada/osint.ads
! b9fd1f536d8f1c867c911cbe2996ebeb  gcc/ada/output.adb
! 57985da6ee6f2d437d610b1b9249f436  gcc/ada/output.ads
! 3f5b95b8fa96ad05275062ec5d9a000e  gcc/ada/par-ch10.adb
! 90ae3c6fcf255101ea0bd2dfc118762f  gcc/ada/par-ch11.adb
! 6af8e838ba0bf469b705a7db82601093  gcc/ada/par-ch12.adb
! a9ac2ac18fbb8924bfd3047c61aa9e87  gcc/ada/par-ch13.adb
! 367c520caf968244162abc3229e0b453  gcc/ada/par-ch2.adb
! a5b0bb97ff5d0883ff6ae65776076e78  gcc/ada/par-ch3.adb
! 26911930ebacfa07a56360e80db1304b  gcc/ada/par-ch4.adb
! dd8d7961fca087943b21edabff41f046  gcc/ada/par-ch5.adb
! 052036b5f26258a601d75e9decb70877  gcc/ada/par-ch6.adb
! 2b201234474be782ce30a79ebe674e81  gcc/ada/par-ch7.adb
! 349dda80fe39ecf9d2b818ec0e769d80  gcc/ada/par-ch8.adb
! 3d5733e116665c179c26e9939a59395e  gcc/ada/par-ch9.adb
! 5b544c2cb89b5cbb3be4b0b11e983323  gcc/ada/par-endh.adb
! 6f12aeb2c6db21d91040dfb1bf2e74ce  gcc/ada/par-labl.adb
! f94c687806a26857ca4b2a93d99b31e1  gcc/ada/par-load.adb
! 338e26ca67fc4d0fd6e853902661853b  gcc/ada/par-prag.adb
! ee1279472214ff7ca5b61685a2ada15f  gcc/ada/par-sync.adb
! 62df590e3ddd37b092c26e4b8b1b684a  gcc/ada/par-tchk.adb
! 4b301bf83a66a95a68b6556cd5b684d9  gcc/ada/par-util.adb
! 95e03c0a3b9e593ef00e6c61d97ae75d  gcc/ada/par.adb
! cc0b4ae85eb0edbcce886d13c925cbf3  gcc/ada/par.ads
! b0a53260cce47acbd0de8d046175c63f  gcc/ada/par_sco.adb
! 2674a374e947c03703d34f6603994424  gcc/ada/par_sco.ads
! 60eed5b3f55a0639b078f452fcdf5cdc  gcc/ada/pprint.adb
! d4e0d990ec706c00861a684898856c8d  gcc/ada/pprint.ads
! 91aac53800a72e557fe679a71ba9085b  gcc/ada/prep.adb
! 6dcc5289c9c7b452765a51d5831985bd  gcc/ada/prep.ads
! 001047fd6d846b04a693b45c46bd9d1b  gcc/ada/prepcomp.adb
! d28fe9bf503081b92048e26c8842b408  gcc/ada/prepcomp.ads
! fcfa33c29572e4f892bd68b226e0184d  gcc/ada/put_scos.adb
! 3b031a53f556fd6a205a13665cd77c74  gcc/ada/put_scos.ads
! 1c959c1df123e69974334a1a27213006  gcc/ada/raise-gcc.c
! 9cefaa2cb724199d75c01c1b71fd92ec  gcc/ada/raise.c
! bb35d323ecf448aa8fb7025a4bc206ac  gcc/ada/raise.h
! 60f15e9242cc708164c2465f35b7bcee  gcc/ada/repinfo-input.adb
! 2068823632327326518141ecef478b56  gcc/ada/repinfo-input.ads
! c03cfc430368506adba96bf2402f38cd  gcc/ada/repinfo.adb
! 2b7ee770fce987fa4a536a7ff6f66d28  gcc/ada/repinfo.ads
! 9f01bfb3f02044d2af9dd8653ff046c7  gcc/ada/repinfo.h
! 3d4a1dc93d967d84654b6489aaf51b1b  gcc/ada/restrict.adb
! 058035f6a217fb7bed8ac566527a2c23  gcc/ada/restrict.ads
! 9d12840e7f4b919f1f71a18a65b3463c  gcc/ada/rident.ads
! 32312ab752a2a0382c9276e387b389e1  gcc/ada/rtfinal.c
! 01263778e97af0ecb135164f1bbfd6ad  gcc/ada/rtinit.c
! b97bb61639a4fbef04ce0a15c662ecbd  gcc/ada/rtsfind.adb
! b33c5657f5f656c345cebf31636501bf  gcc/ada/rtsfind.ads
! 66e987f268458746a6afb190c151af7a  gcc/ada/runtime.h
! b6100bf6eaab78f9424e994302129621  gcc/ada/s-oscons-tmplt.c
! a34bfe2b691bf488816cc77770321ff3  gcc/ada/s-pack.adb.tmpl
! 769f019e3de5c30e3ae7534efbba17df  gcc/ada/s-pack.ads.tmpl
! f2b44210590da3ce7d60699034656b7f  gcc/ada/scans.adb
! 4977672198cb113709dc518f67405d1b  gcc/ada/scans.ads
! 30a091a175c9c634f1db538510dd839b  gcc/ada/scil_ll.adb
! 9a04429f7b2d3e7e0f27b0f4aabff5ff  gcc/ada/scil_ll.ads
! b5f474e08c6b2df506d05fd14238799a  gcc/ada/scn.adb
! d34f4eaf1b942bbe24dfacb3a3f5acc5  gcc/ada/scn.ads
! 3d6844a3d789be74e930244a32d59054  gcc/ada/scng.adb
! 17deda1207575729ca2f490d7931a64b  gcc/ada/scng.ads
! c34ee64559a764f063b49301a7504e82  gcc/ada/scos.adb
! abd831e54ebd759115e62d420bdb5c2f  gcc/ada/scos.ads
! 89b7ed9db10b2220f7130b1d92b0624a  gcc/ada/scos.h
! 1e9843bd9ac3288c126ec7d6727ea8e6  gcc/ada/sdefault.ads
! 3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
! 162cc8e58f789b4cd25dc980dc46398a  gcc/ada/sem.adb
! afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! 94e004b797859a3d3abdda4c00eb0de7  gcc/ada/sem_aggr.adb
! d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! a2c8cab8a69fa886e34c1985158586d7  gcc/ada/sem_attr.adb
! bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
! 4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
! 3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
! 95f5465ee6749d8d7209f2477eaa2b5c  gcc/ada/sem_case.adb
! 88daa5c9b6e135316b52695cae25a496  gcc/ada/sem_case.ads
! 84667b3de209c0b04f82a349c6125ab0  gcc/ada/sem_cat.adb
! e364f4e3ae92066699cc93a8f7b828c1  gcc/ada/sem_cat.ads
! 8eccdd133612c5ef2800235152014280  gcc/ada/sem_ch10.adb
! 14c23ddb8ce8f7ab6478f3aff202d2bf  gcc/ada/sem_ch10.ads
! 5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
! 1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! cbe9f460bd2c7f318044bdf84715739e  gcc/ada/sem_ch12.adb
! b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! 68a4ab355d2e5ec7094e5a397fe51cee  gcc/ada/sem_ch13.adb
! 24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
! 14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
! 2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! f0761776bdaff64b0991990fd9b39545  gcc/ada/sem_ch3.adb
! 5fd10023b617fc61dce7c2801674285d  gcc/ada/sem_ch3.ads
! ba23b73adf13e1aa74891d0c302d9661  gcc/ada/sem_ch4.adb
! adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
! 3d2fb7e75bcf5cb7e2f014691fbc1d87  gcc/ada/sem_ch5.adb
! cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! 7c3b00e7399acf0f697e0caee99f9645  gcc/ada/sem_ch6.adb
! 3adb4dc0d6d1183f0fe82a96638bac4c  gcc/ada/sem_ch6.ads
! 3c7c6e6b95a9cddb1d6f1a42a5962379  gcc/ada/sem_ch7.adb
! 24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
! 3fa2088c8a170324d2bae749a94e32d9  gcc/ada/sem_ch8.adb
! f3965d375e31f991fba42df0595a3470  gcc/ada/sem_ch8.ads
! 8be6bc881183cddc88b43e757a478bc1  gcc/ada/sem_ch9.adb
! 7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
! dea2a3321bde0d3ed6be665ade24a2c6  gcc/ada/sem_dim.adb
! d0ed9c569455451ee26c8e2565b7125b  gcc/ada/sem_dim.ads
! 0b4ce58f68d5aff0988a26cb09840d67  gcc/ada/sem_disp.adb
! 40937cb7584e45e4c545aa3e4c20fbb2  gcc/ada/sem_disp.ads
! 8f677120e0bcecbdcfa5b9c4f44cb282  gcc/ada/sem_dist.adb
! a38c4ce4bc2936bd0a73c28ff1b0df61  gcc/ada/sem_dist.ads
! ea4d856a616d24b9db47871b82e88726  gcc/ada/sem_elab.adb
! c074ec7450863300eff2a21c036a624b  gcc/ada/sem_elab.ads
! 1dcf7c5349839b9e9ab4ee0d1954c7c6  gcc/ada/sem_elim.adb
! c837e01542a712c622bac1cd152fc080  gcc/ada/sem_elim.ads
! 9d6602868f501bc32b05f81cdc622438  gcc/ada/sem_eval.adb
! e0db1a09711cf7617413ca73c539ed67  gcc/ada/sem_eval.ads
! e8e79e2a818321d7816e27eed8d17404  gcc/ada/sem_intr.adb
! 66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
! 4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
! bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! c48b9a5f156d00572d9ac2b90c919eaf  gcc/ada/sem_prag.adb
! 3d4cec1697839c758bf4ee78035143d3  gcc/ada/sem_prag.ads
! ed271da5d1a73a10b18b1b8f2e8f48c8  gcc/ada/sem_res.adb
! bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
! 28d33ede4288814374d1909847798c7d  gcc/ada/sem_scil.adb
! db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
! 224e89cdc39291b2a52f3e96e76cc3aa  gcc/ada/sem_smem.adb
! 89d73c108bd8921f6d6cd84d98726ea5  gcc/ada/sem_smem.ads
! d0a2f5b2f65a874363f7fbe2b9a79f8b  gcc/ada/sem_type.adb
! dee50852181adfada17fb5b7423ed973  gcc/ada/sem_type.ads
! d700532c70ef2f7dae1bd10f1690b0bd  gcc/ada/sem_util.adb
! 907db3161ce24f5c766ff52fc6b8bbd0  gcc/ada/sem_util.ads
! e4e5495b136cf8092bcca5f770b4f9a7  gcc/ada/sem_warn.adb
! e71db5efd6c6d9969e1e7887ebe4e6b5  gcc/ada/sem_warn.ads
! 239ca67ac9aa430abfe5120a8d4302d9  gcc/ada/set_targ.adb
! da11142861c1704e3a61d22e59c50f30  gcc/ada/set_targ.ads
! d677962c5cb91bdfb376118de618c60e  gcc/ada/sfn_scan.adb
! a6f437e146a2424a366c8756e1588bc4  gcc/ada/sfn_scan.ads
! fbcd374b992573a80a2d6f7cbf5beb67  gcc/ada/sigtramp-android-asm.h
! fd4d9f3482192f6e3be236b576b9c7a5  gcc/ada/sigtramp-android.c
! 662d6656603a8f09fe945ac88ade43bc  gcc/ada/sigtramp-arm-qnx.c
! c9a32992d7b0864a447ed2a5c6378f44  gcc/ada/sigtramp-ios.c
! 1e2b391f75fbd0632f61ff7b06af24a5  gcc/ada/sigtramp-qnx.c
! c2541eaa9688774ed19289cfc89625a5  gcc/ada/sigtramp-vxworks-target.h
! 53ac5b33607106f4b49b8fb9d92fd6f6  gcc/ada/sigtramp-vxworks.c
! f32c4d3d5df9ad9663b4978f7f8a2573  gcc/ada/sigtramp.h
! 128a0905adb78c79aa56397a7942e20a  gcc/ada/sinfo-cn.adb
! 2cb93d6ac8ba3beb6fc31af4d97b6fcd  gcc/ada/sinfo-cn.ads
! d78423bdc8b85ab7cdc070996aa4d544  gcc/ada/sinfo-utils.adb
! a279552ee28f4ed267298848351ccbc6  gcc/ada/sinfo-utils.ads
! e6d5c3ccb5893bb3943fbdf529b298d6  gcc/ada/sinfo.adb
! 8e8c42b290106081cdc833dabc5198d0  gcc/ada/sinfo.ads
! ebb37a07fb72782f86b0c141d3f6077c  gcc/ada/sinput-c.adb
! ec9033e4caebeb446063de16e18918f4  gcc/ada/sinput-c.ads
! 2fec6a5fbe7c9e765ea70c82814b0fd3  gcc/ada/sinput-d.adb
! 9e93d3e02fa2cdfac594ebc2f1624daf  gcc/ada/sinput-d.ads
! f6ff4b8bae7d2f10bf04f58ae4efb096  gcc/ada/sinput-l.adb
! 69397f052fca6f376ab0c93aa830f6f5  gcc/ada/sinput-l.ads
! bb43802a54a3cfd9cb953188a875da3d  gcc/ada/sinput.adb
! c0280f6a389a4ab756ec15590c723446  gcc/ada/sinput.ads
! 66e1d7dbeefd14b51758e17a022c2929  gcc/ada/snames.adb-tmpl
! 58b286913f92124f9a66bd8e6c339bd6  gcc/ada/snames.ads-tmpl
  b5bad059d1da34b0f6f1f8e3b605f212  gcc/ada/snames.h-tmpl
! 6a1a72215ac86e7110b29ca0d8fef7f6  gcc/ada/socket.c
! 8bdf1e57c628c071b503b49f5c5078f6  gcc/ada/spark_xrefs.adb
! 2753ed3eddef50a315406d42f653c5d3  gcc/ada/spark_xrefs.ads
! 79f131b16a5cd929ba26cec5480770f1  gcc/ada/sprint.adb
! 3e9a55e0b0a74656ccf4d6b370f9f3b9  gcc/ada/sprint.ads
! ec2c88d86fa3c44323427da53121cd94  gcc/ada/stand.ads
! 995259a03fc6743547480930ff72b93a  gcc/ada/standard.ads.h
! ce066f80c720ae215f49407dbde3b813  gcc/ada/stringt.adb
! ceaa52edf6355622601cd30f7c096b06  gcc/ada/stringt.ads
! 9b1436b62e189c7719fe06539a961935  gcc/ada/stringt.h
! 627ba2b2c1dc5a33ccd14d5a62dad5bc  gcc/ada/strub.adb
! 426fe1648aa969a711bc91b140c31950  gcc/ada/strub.ads
! 8afc1c7d58bdd832cfc07e0b7f154b20  gcc/ada/style.adb
! 47034d64868bf09604f7cf41bfa8f20b  gcc/ada/style.ads
! 13b060cdc887d7f83a4b48f3851e2121  gcc/ada/styleg.adb
! 93df3efe29025f787333e334faf17c55  gcc/ada/styleg.ads
! 2e977ce8e3a4cc0d1344850f639eea97  gcc/ada/stylesw.adb
! 072e20e96999b6e3137326e76e71b03d  gcc/ada/stylesw.ads
! 280b043e991285d0e2dd469546dc80b0  gcc/ada/switch-b.adb
! 564abc18b3d01ff76cff00fcb90fa03f  gcc/ada/switch-b.ads
! eb03882a3fdad0958d30e788471ec8ba  gcc/ada/switch-c.adb
! 276c746b48c55f010cd06e04a2d1ccfb  gcc/ada/switch-c.ads
! 7149d4feea0dd2cd75afe673ce2bb0b2  gcc/ada/switch-m.adb
! 2ee5998b92d56bf9c5cc341e1f1ad78e  gcc/ada/switch-m.ads
! 47cb0867e38b3a29e29843f102979ad0  gcc/ada/switch.adb
! 3ce7cd08e301dd2487e065308c9e9fe9  gcc/ada/switch.ads
! 5a21d65e7171e89ab2717979819a3213  gcc/ada/sysdep.c
! bef209f16c0106f0a9c5255fb6bf96bb  gcc/ada/table.adb
! b1eaff871eb559b799ef7fe2960e86f9  gcc/ada/table.ads
! 9f45bf3ee4cf0a6b06c0b5cc6a4830a7  gcc/ada/targext.c
! 452605cc8bfabb79cb2938ed48290217  gcc/ada/targparm.adb
! d9d7a0f9b8ac29d8f1e477d6b53076c1  gcc/ada/targparm.ads
! 0aa22862767f466615555fb4238ed5c8  gcc/ada/tbuild.adb
! 3820c42d29e72797dcd57daf35fe7e58  gcc/ada/tbuild.ads
! 7180c008001620663d18e4ca13bb09d3  gcc/ada/tempdir.adb
! 6f122fca818bdd0608fc8391dbb411ba  gcc/ada/tempdir.ads
! fb2dbb46dab058293bcd11b4ec94c26f  gcc/ada/terminals.c
! 90388b2ce8b02dc01b5f589caaff07ec  gcc/ada/tracebak.c
! 63162b852775925e856feadfc83f420e  gcc/ada/treepr.adb
! 557c71455af3d957f986d007de0f291a  gcc/ada/treepr.ads
! 6f3fd20323108cb95757cc42a1514191  gcc/ada/ttypes.ads
! e02948c9347a91c37c4f24e7d4356a02  gcc/ada/types.adb
! 088825c27a905ef2e10af9c37dd28496  gcc/ada/types.ads
! 8faf2ecc5e7b7d7bd58fdeacb128597b  gcc/ada/types.h
! 84910d8cb8a78c95f71d4fb477098b2a  gcc/ada/uintp.adb
! 0b30cdf1b20cec3012f43f473fec627b  gcc/ada/uintp.ads
! aa571047977f5d4eede1b3c590cfca1a  gcc/ada/uintp.h
! 1dc0ce12c6e595a777852de3cd1ed7bf  gcc/ada/uname.adb
! 50dcf6258eb74ce8859b9a6c664d1518  gcc/ada/uname.ads
! 3b16fb5a404c2abb2d73de19f67cd9ae  gcc/ada/urealp.adb
! 7c44e3e9dfe3a3602c5e4a0e9f21fc9e  gcc/ada/urealp.ads
! 8da16dc7040064c1822811f3aa2b0741  gcc/ada/urealp.h
! 2207d552bf64c2646f0813e5f7493c77  gcc/ada/usage.adb
! 39aa1ad0590789d255e892abebddfe14  gcc/ada/usage.ads
! 711166db03aab3b4aa42d708e165cdcb  gcc/ada/validsw.adb
! 0fff79e753ec9a011dbe7450d07825bf  gcc/ada/validsw.ads
! af6ae2c76c2d4b18876291284c5b7c1c  gcc/ada/vast.adb
! ba616116b5e9166ecb6f7858c19bb4c2  gcc/ada/vast.ads
! 80a9d1726e421d58c661b761812b04b6  gcc/ada/version.c
! 5eede02cafd21523f38416ab4cbaef34  gcc/ada/vx_stack_info.c
  230f0a2f69b8ad56cc0d730f9fe0964b  gcc/ada/vxworks-ppc-link.spec
  cf24e76097812a932a26f6600d193208  gcc/ada/vxworks-x86-link.spec
! f31cd3d6821e4ceda458182cd764b001  gcc/ada/warnsw.adb
! dc1718429c0246d6ef1c6394e1cbf4dc  gcc/ada/warnsw.ads
! 89c836b1fbdaa8a0866f0c8fc79b2247  gcc/ada/widechar.adb
! 821079b8bfa3e1db58666c3582dfcab9  gcc/ada/widechar.ads
! 237b6b3aac5909198484e94444656bd2  gcc/ada/xoscons.adb
! cc77d76c407f099273c5d6691a91f67a  gcc/ada/xsnamest.adb
! 4c96f820426ef6d6a588bdcdccb59bee  gcc/ada/xspack.py
! 39a642ef0851ed084e6241ce17b0fdd5  gcc/ada/xutil.adb
! a8f3f69de7abdd693a971d4655971bf7  gcc/ada/xutil.ads
! 60f1f34895b64cc9a3b2d590e6cf576f  gcc/addresses.h
! df3f6c6882fc8f715d4cc537af0f6442  gcc/adjust-alignment.cc
! 1d1b5baf1ff7de131233c8f72bb97a14  gcc/alias.cc
! 0d0b7a8d67ab4391dba470baf07f7ad4  gcc/alias.h
! a13250e9011949e791f210139f4c4323  gcc/align.h
! 192d075c6984da6ef1e282fd63829079  gcc/alloc-pool.cc
! b2194a7136db5f26272ca6162d858997  gcc/alloc-pool.h
! 654fc53bc6a57dfe65c252da6fdcda3b  gcc/analyzer/ChangeLog
! 0d3befc0b4bf59d902e1cf42adbe4bbf  gcc/analyzer/access-diagram.cc
! d06b0bdd3e866e801261efae99b70197  gcc/analyzer/access-diagram.h
! 32d9f668dd8c176f7281357c6176be49  gcc/analyzer/analysis-plan.cc
! b5f1385e0b051936dcf6b44d2802237b  gcc/analyzer/analysis-plan.h
! cf32a345f1596c42564e7ca745bd2ccf  gcc/analyzer/analyzer-language.cc
! eef9c09a709dbc60a5046961a17f3e1c  gcc/analyzer/analyzer-language.h
! 51d836e1d69f301e94f2958fbf5168c4  gcc/analyzer/analyzer-logging.cc
! 7fac0aea0c8f0cfd8eb4f7325731f13e  gcc/analyzer/analyzer-logging.h
! 522e433de4b84797e6fc073a4891e139  gcc/analyzer/analyzer-pass.cc
! 5a73d9c5cf1ea8374368b1207eb28b38  gcc/analyzer/analyzer-selftests.cc
! a2da2c4ef5a4fe3acbece54115b2fcd5  gcc/analyzer/analyzer-selftests.h
! 990d1326356487e085c8497598468522  gcc/analyzer/analyzer.cc
! 0075050f7e303cf7dce51eb83b8c1da8  gcc/analyzer/analyzer.h
! a1f71e9b2c9a63b8b9df8b9703d17980  gcc/analyzer/analyzer.opt
! e2c04a9e06f6e123c94a7f0e0ff8d322  gcc/analyzer/analyzer.opt.urls
! 36bb44ed21a23a1a8cfb1813e07e2618  gcc/analyzer/bar-chart.cc
! 632007f36f35e261443f6de2baf0656a  gcc/analyzer/bar-chart.h
! 30292d3e58f5f2e9ca0763348d0165e5  gcc/analyzer/bounds-checking.cc
! 606fe7751bf141b518ca1c372f1c2261  gcc/analyzer/call-details.cc
! 0af33a1f31ec0296f55b8ca98ff2b4d1  gcc/analyzer/call-details.h
! 959e18221ad17780f665cacec3080432  gcc/analyzer/call-info.cc
! 54bed4b5475e46bde4c77d92ef24eaf0  gcc/analyzer/call-info.h
! 7695272717ef062211871c52ab3621f5  gcc/analyzer/call-string.cc
! 269242e7e59c0f923c78aaa080a5ca62  gcc/analyzer/call-string.h
! 2e0c2777a2b5b59494bc722b3921cb6b  gcc/analyzer/call-summary.cc
  801d7f3b2433d9aaa117946dd795bcc6  gcc/analyzer/call-summary.h
! a54d2bc2b995be5999cee85318f333b5  gcc/analyzer/checker-event.cc
! 9458f39486d52aaa79f5931026a21187  gcc/analyzer/checker-event.h
! ec9418bbaec8eb1e4ad09ad35fddb3a4  gcc/analyzer/checker-path.cc
! 23be5fa4f6b3e6dfb0080dde437af84e  gcc/analyzer/checker-path.h
! 1955d91237f257330cbfe73e0a45c86e  gcc/analyzer/complexity.cc
! 9113c9c3a7167f3119fc0552883611b5  gcc/analyzer/complexity.h
! 8b182e65951bd6589ab29ae7ae8d9b88  gcc/analyzer/constraint-manager.cc
! 9dc86085a75f15b5835521817cc833e4  gcc/analyzer/constraint-manager.h
! 164d5f620d3fcaa88ab83cb0b15cbb9d  gcc/analyzer/diagnostic-manager.cc
! 48aacffb676424a892368df75222fd20  gcc/analyzer/diagnostic-manager.h
! 221130e08abfef75b44ee80ac3def106  gcc/analyzer/engine.cc
! acc1f4f20384df654fa365f64ad6a6f9  gcc/analyzer/engine.h
! c31696d47421f74a13cc907d022b3935  gcc/analyzer/event-loc-info.h
! a33eeacc4442a066ad33a0c371a724cf  gcc/analyzer/exploded-graph.h
! 0aa9d5114a424dabe9311f3de3645391  gcc/analyzer/feasible-graph.cc
! af675735c50099e3d3123b9ef8d97dad  gcc/analyzer/feasible-graph.h
! 6b62290e89378d4a19f4db1d7a4fc427  gcc/analyzer/function-set.cc
! 73d77bbed77b45ed4b05881eeccbc992  gcc/analyzer/function-set.h
! 42b2903d70811631baa3bf460ef15677  gcc/analyzer/infinite-loop.cc
! 468ccc09a2fcd1a8cf3a2b32d371fadc  gcc/analyzer/infinite-recursion.cc
! 07eafd27ed9c4ea180d12eb903958401  gcc/analyzer/inlining-iterator.h
! 5ac635ba22ac2e34f0fcf42d4c15c2c5  gcc/analyzer/kf-analyzer.cc
! f527c5f2bff83bae4042247dd8e64fa2  gcc/analyzer/kf-lang-cp.cc
! 637ad4e523b87954b7d0104bd289a8c6  gcc/analyzer/kf.cc
! f0e6b75f0b2f6aacf2e85c64f43b844c  gcc/analyzer/known-function-manager.cc
! 03a32d089b911aa5389a2b9006795f83  gcc/analyzer/known-function-manager.h
! 3d424f30ebe8b86dd6a86ced21249f36  gcc/analyzer/pending-diagnostic.cc
! 8c4506933b8c8798adedf5a429035117  gcc/analyzer/pending-diagnostic.h
! c7bc4d0c3f6d1eecdfc347bbe0721d94  gcc/analyzer/program-point.cc
! f7322383aecfa4152a4484c8cd3b66a1  gcc/analyzer/program-point.h
! 8ac2f667c27504c7be09139e6e14d5d6  gcc/analyzer/program-state.cc
! b815dee920d640968e6b46556555af9f  gcc/analyzer/program-state.h
! 2139b09d3c92c4806e24137c9fba45ba  gcc/analyzer/ranges.cc
! f0acfecca8767075f2b2e9bc04089741  gcc/analyzer/ranges.h
! 58fb7d339e1159812f9592e6de91dfa3  gcc/analyzer/reachability.h
! b10c92c6239ddb913269f044b7d241fa  gcc/analyzer/record-layout.cc
! 137aeb98f719cee5d7abad8c51521e21  gcc/analyzer/record-layout.h
! fa88325d37a8f29becb9c6c05c81e953  gcc/analyzer/region-model-asm.cc
! 0fcb22e93f8816308419a2b4f4da8f86  gcc/analyzer/region-model-manager.cc
! 9195fc0db12dd5628901e3d6615a1f44  gcc/analyzer/region-model-manager.h
! f99e78bf7ad4840c0d8cc59eaf034771  gcc/analyzer/region-model-reachability.cc
! 34ab719ce08057bb88f8bf20e7c3c959  gcc/analyzer/region-model-reachability.h
! 140bad88f5384bce734e81e2ff0444da  gcc/analyzer/region-model.cc
! c216ef12a26b7d69c08a4c5f60470c0d  gcc/analyzer/region-model.h
! 78ee896887a9d4ebd0a256671b8add8e  gcc/analyzer/region.cc
! 6e644055b512784328073293c1d0a0c7  gcc/analyzer/region.h
! d40e9b16bae209b9e678e480084c6389  gcc/analyzer/sm-fd.cc
! 7a28d77074f7b1b5ea7b79aa82f21698  gcc/analyzer/sm-fd.dot
! f2fd8cefd8731ee4de5c55ab4173eb32  gcc/analyzer/sm-file.cc
! 38e55000eed6a24e2db959ceb1b99c4f  gcc/analyzer/sm-file.dot
! bfd229ea5e501665f70427f9be797d74  gcc/analyzer/sm-malloc.cc
! e0c92f0f51c6cc6d8c51b020ac66c866  gcc/analyzer/sm-malloc.dot
! 154bfb4f2fe8d3b6e1937bf720a8c7e0  gcc/analyzer/sm-pattern-test.cc
! 4617ef9f61e22169d003c3b0183e61d0  gcc/analyzer/sm-sensitive.cc
! 78ffefb7590c701c5b270f3ab16f1149  gcc/analyzer/sm-signal.cc
! 364603c57d9b4c8a8252941e7ce6107b  gcc/analyzer/sm-taint.cc
! 32da4c8587b57394dd66254221e4c2d1  gcc/analyzer/sm.cc
! 7f43362b580d5506e1a5c8053dd9761c  gcc/analyzer/sm.h
! 0a07f38b86db8d95b1ff11e7af400d47  gcc/analyzer/state-purge.cc
! 4b6805c85c83335ce9698d34e7bc061c  gcc/analyzer/state-purge.h
! 1be9cc087a25360d211f06302a60c801  gcc/analyzer/store.cc
! 77c872ff55da59aa2dc7c22286a12b69  gcc/analyzer/store.h
! be6ac770801553539c284b77322f6840  gcc/analyzer/supergraph.cc
! 91c09989137b6b8238903647d5b569be  gcc/analyzer/supergraph.h
! b0869c60ddf2efc0377c7e374dc188dc  gcc/analyzer/svalue.cc
! e391e1ce4bcb52a57cd32997f79f5262  gcc/analyzer/svalue.h
! d66051d6d4726405c7d937c66b37a2f4  gcc/analyzer/symbol.cc
! 336e5422328aefad109c05dff847934f  gcc/analyzer/symbol.h
! e93e11f042811778d4ae3733222ab45e  gcc/analyzer/trimmed-graph.cc
! 2d528f5f807adc6941ed2a20cc193c7f  gcc/analyzer/trimmed-graph.h
! 5a17e0622971cd36551275c0f7ce640c  gcc/analyzer/varargs.cc
! cc81acb908eb9d6b13038a95c3a10a9c  gcc/analyzer/varargs.dot
! eeb42b412edc2884a4c60d6f38f7473b  gcc/array-traits.h
! 681a810c8f43296efd3e8f41a56a910d  gcc/asan.cc
! 3b696031376017661bf8d237ffc7c068  gcc/asan.h
! c77616ec7ed7ec81357de9544f955910  gcc/attr-fnspec.h
! 3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
! 05d6a8f61e165cf9438457af9042b98f  gcc/attribs.cc
! 1bdf6723b4c88b5b1495f718e4dd00c7  gcc/attribs.h
! 1c0257185e0c027f8530f132c40515e3  gcc/auto-inc-dec.cc
! 663f5eef44c71382e5058d4894e222b9  gcc/auto-profile.cc
! fe453e02b17197af9a9101edb6590b74  gcc/auto-profile.h
! 229f272a82786f223ff1da6ab8419183  gcc/avoid-store-forwarding.cc
! b187aaef50f37afeeee1f8239d5aa033  gcc/avoid-store-forwarding.h
! db748cbed8c442a442779d8d857a3ae4  gcc/backend.h
! d6b885b0c4ea7cf856ba4b84021613ce  gcc/basic-block.h
! 307c2b5931d2c66758ea6d962278292c  gcc/bb-reorder.cc
! 3e49b0021eba39cbab2bc26d55fde08f  gcc/bb-reorder.h
! 919e197f7b89caf16d31f0882964adfa  gcc/bbitmap.h
! bb79e5d725623239adccc4b97ad421cb  gcc/bitmap.cc
! fe292df4b7f3e3ef7c0b8305084b6844  gcc/bitmap.h
! 7cd04e6f25d02f9f2cecc8ce50e73e76  gcc/btfout.cc
! f808dbcc1ad6add5a0867c4b3e03fc4d  gcc/builtin-attrs.def
! 9b2538f67781c7ccab3891a929caaaf0  gcc/builtin-types.def
! f82fc6b76f1820b69c268916c7fe1bf6  gcc/builtins.cc
! d86baafdac933140bc11c4cbfb28779e  gcc/builtins.def
! bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! 7670ae59c27187e82e152ff0115579d5  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
! 823fe168bb0f63a39de62d9f0251a1b5  gcc/c-family/c-ada-spec.cc
! 4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
! 5a2e850515c6ecb57ffe6c19cadc6656  gcc/c-family/c-attribs.cc
! ef8691fea2743b186609ec02d8c35859  gcc/c-family/c-common.cc
! 7d631d63d02c9fdb7b800977cd8dc894  gcc/c-family/c-common.def
! c6ac8fb15a8d6272184d999f651d660d  gcc/c-family/c-common.h
! 1c57db57b8673a678e1501b694ea87e0  gcc/c-family/c-cppbuiltin.cc
! 01db2d5cca29943c49bb372f2137d874  gcc/c-family/c-dump.cc
! 53e39536dbd251b4c218e15e99f21a0d  gcc/c-family/c-format.cc
! 89a27efffabf06afdd7dee7495d2591c  gcc/c-family/c-format.h
! 33e75548501d8294a77fd654bc8d4d39  gcc/c-family/c-gimplify.cc
! 4d15aede5a4841d6489aa40ad1304c00  gcc/c-family/c-indentation.cc
! a4b7179d2e948bb7586a9143fbe05593  gcc/c-family/c-indentation.h
! 0fcfbb571d07d894c451986f55d04a9b  gcc/c-family/c-lex.cc
! c880dc584a0fd4908e5df33dd81137b8  gcc/c-family/c-objc.h
! 3609801f0f05c77393ed160a1b16d1c8  gcc/c-family/c-omp.cc
! aad839860b28645647c087a4db7b89cb  gcc/c-family/c-opts.cc
! 2f1a14531d3a436ca9f4aad2812c3898  gcc/c-family/c-pch.cc
! 6e53d008a0c4738339154c353a50ff0a  gcc/c-family/c-ppoutput.cc
! c3373b06f8b0f699244a639f7e84c41e  gcc/c-family/c-pragma.cc
! 10932d88b49c31cc0912970b8f153a0f  gcc/c-family/c-pragma.h
! 316c0b17487ed9647912b7b8574b00c0  gcc/c-family/c-pretty-print.cc
! 65ddbb97d9d65906a812f9c61b9ca1d1  gcc/c-family/c-pretty-print.h
! 5da7f0820eba217160736031aeaeabbd  gcc/c-family/c-semantics.cc
! d04c864b0365d3a88d504c664a8b3791  gcc/c-family/c-spellcheck.cc
! fbe4c16a6f553a7307aaae6124921e16  gcc/c-family/c-spellcheck.h
! 8d43b207e3bb38a4d10eb20cdf2a52d5  gcc/c-family/c-target-def.h
! fc808567009babd00ebcf49b5b985691  gcc/c-family/c-target.def
! 5f7fed5b8b1f0adfab1f4d8395a8516e  gcc/c-family/c-target.h
! 3cc58e7c02b9a71a4264944913a66e09  gcc/c-family/c-type-mismatch.cc
! 2716f2dd9d461ac6da32e9185698bbb2  gcc/c-family/c-type-mismatch.h
! 4286e0086805aa55b325f25d060c6003  gcc/c-family/c-ubsan.cc
! a28f2477c85a17e42026521322b3649a  gcc/c-family/c-ubsan.h
! ed4e4a12acd44dcb58dd646d038bc97a  gcc/c-family/c-warn.cc
! f6b6e110510ea514fc4bef91fb4e0a9d  gcc/c-family/c.opt
! d5b8ff413daae8e04d6380b3696fa4c7  gcc/c-family/c.opt.urls
! 22bd7478421befafcfbd805e3ca373ac  gcc/c-family/cppspec.cc
! aaf683e3b02704cfbfab0627d82edf85  gcc/c-family/known-headers.cc
! ce9d2259a1edb5d4b1f728988bd9ef6a  gcc/c-family/known-headers.h
! d1e9802a9c9cc0486941b538aaa07ff3  gcc/c-family/name-hint.h
! d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! f0fd78dadd3eeb7d9e529904e438a9c8  gcc/c/ChangeLog
! b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
! f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
! 178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 68f235c0526998786d952f49f45e9d70  gcc/c/c-decl.cc
! 3601ac6299bb2579fedc2dcf2aba7773  gcc/c/c-errors.cc
! d9b5dea1631cefab5fe5ca3602db30f0  gcc/c/c-fold.cc
! d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
! 5466f6371f54fce4ae89206f7792bd01  gcc/c/c-lang.h
! dec36cf5c6a91b9509a566b6c8625548  gcc/c/c-objc-common.cc
! f9dc3d10fbfaa2d38905bc4e2579ba2b  gcc/c/c-objc-common.h
! a3ff21959d97a5300f5e1ca75766e6f5  gcc/c/c-parser.cc
! 9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
! 9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
! f7331ce09e3bb7374f8cebf0a2195d47  gcc/c/c-tree.h
! 2d4d66d00e3ee7dc993423472ce7918c  gcc/c/c-typeck.cc
! cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
! 1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
! b908dbb3dee5ec448aacc3c5e1e430e7  gcc/c/gimple-parser.cc
! 84e0373f5db72260d34cf125d8587f06  gcc/c/gimple-parser.h
! 137bed6e3e62068dc6a3292ae42a0a4e  gcc/caller-save.cc
! 6d9c4078821fb156ad9b16d924229797  gcc/calls.cc
! 5eea9a238f2c182f5964d1de966e6a34  gcc/calls.h
! f82c34d87e881cc4ed1624968519aa98  gcc/ccmp.cc
! 5d9ee312518a07716ecbfe4b5ec17091  gcc/ccmp.h
! a1a4638e36c119316c54b7f1562d0a16  gcc/cfg-flags.def
! c08ead9db4f4b74ebcdec4329f22b297  gcc/cfg.cc
! 93b330e82630bbea0dcea5c8ab82af45  gcc/cfg.h
! dce5f9aa135bb3752695f3103daa686a  gcc/cfganal.cc
! 64d68bc7e90177c08c433704f20cf2cc  gcc/cfganal.h
! 37793c9f42f028363ee753479b2c9ccb  gcc/cfgbuild.cc
! 0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
! 39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
! 0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! fa259ff7ddd6a4f08948047b834236d1  gcc/cfgexpand.cc
! b0df45fc1562ee51ee67ed5f30feb96e  gcc/cfgexpand.h
! 748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
! bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
! 1103c84ad5690bda0bd6e0c71ea46b93  gcc/cfgloop.cc
! 5b21e1c152c74de1773a6cfb0c115604  gcc/cfgloop.h
! 5ac695878401667aceb491bb5467c2b7  gcc/cfgloopanal.cc
! 0a36fc8e64fdd79bb47a57fa94df4e3f  gcc/cfgloopmanip.cc
! 7c2358ab451ca13a153f64b7682d772a  gcc/cfgloopmanip.h
! c97195f1544d9bfc539271f27e7a26b4  gcc/cfgrtl.cc
! 28d9dedd6044321fe1df02d3575f81e9  gcc/cfgrtl.h
! 5fbe8c411c043738d25dc09283d762fa  gcc/cgraph.cc
! 4d4d851814118549a9483bb3ad7ebdd7  gcc/cgraph.h
! 5fa2e94f261a8a6fc0d80b1c4b227d25  gcc/cgraphbuild.cc
! b9bb70fa06239e8019ed7725a212ecc2  gcc/cgraphclones.cc
! 3be8ee84d005d8a1f5a65ed6a7fce76a  gcc/cgraphunit.cc
! 70fa61377ff65ad3f25778a40159f510  gcc/cif-code.def
! ffabb89b93cc37785f3aa81ac6580151  gcc/cobol/ChangeLog
! deb0e476e1a3ed05018a11cf051df8ca  gcc/cobol/Make-lang.in
! 807541883353c7bbeb202e450714f616  gcc/cobol/cbldiag.h
! 2e07dc0042e68d69fc295c89702266f8  gcc/cobol/cdf-copy.cc
! a0a28893bae264b0c4fcd3ae665bf8ec  gcc/cobol/cdf.cc
! b71704e802b590b15e3f830d3d91f5b5  gcc/cobol/cdf.h
! f6a4da53b4f3a9a2bb01ef798976a717  gcc/cobol/cdf.y
! f0dbfcf1dedffa22b25991dbdc846baf  gcc/cobol/cdfval.h
! 77fc5e59eed5f55ff8b66d9138ca6c18  gcc/cobol/cobol-system.h
! 9730cec0c0f29c48260379a6352beec7  gcc/cobol/cobol1.cc
! 5985e1898b04e553a91bdc474c56311f  gcc/cobol/config-lang.in
! aab9bcdb44bef72e1c3a8cd069bfcccd  gcc/cobol/convert.cc
! 85e293b3cfd63dd6ec31e1b03363d8de  gcc/cobol/copybook.h
! f65d6595cadb8c8279ca44981013ab0c  gcc/cobol/dts.h
! 82b8e55e34100aab5497fe2b06707279  gcc/cobol/except.cc
! d172f085bd37c1917b8d0019edfcfa37  gcc/cobol/exceptg.h
! a582c03845daff3a9fb0e5edba4a14f3  gcc/cobol/gcobc
! ab0636bdd5d2169c3e8d2ed11b1ac692  gcc/cobol/gcobol.1
! 527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
! 6d960c2f767b44b4eb386f424bbe4bd7  gcc/cobol/gcobolspec.cc
! 3630ffde37f1e156570ab13d04b2d17c  gcc/cobol/genapi.cc
! c64386b215dc54b1760982f960d196bf  gcc/cobol/genapi.h
! a4f2cba98579bb43f6c5fe1fd5053772  gcc/cobol/gengen.cc
! 5a15fbb14271aa588750f652642e3b68  gcc/cobol/gengen.h
! ea48e828f98b3272601ba527c745a987  gcc/cobol/genmath.cc
! d44e8c86d57fb704b6c1fbab3464fb9a  gcc/cobol/genmath.h
! 6cf88f8f4e6dd2038edb74db13756dfb  gcc/cobol/genutil.cc
! 73263b6727413c7095ca6a4e16ca88d8  gcc/cobol/genutil.h
! 7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 7b5758bc973cca5cffb0d13f9071a412  gcc/cobol/inspect.h
! 9bff261865a91e8ee85d705fd5bb8143  gcc/cobol/lang-specs.h
! c0074d45ca6599230c4679735132c265  gcc/cobol/lang.opt
! d1170095b14aa5fa21862d07a27e29c8  gcc/cobol/lang.opt.urls
! f940454a6a9bdf88b764018c80d542c0  gcc/cobol/lexio.cc
! eab918ac4f71f5b18770f9dbb8f6b2b3  gcc/cobol/lexio.h
! c86137734145d7b96122fe50d62a7ff0  gcc/cobol/parse.cc
! b597c42e818e97d7de76f9bffa6ad1f0  gcc/cobol/parse.h
! 398d99f5fb4d1f5d49906524c0603428  gcc/cobol/parse.y
! 155650355ceebd00134399952c3b8201  gcc/cobol/parse_ante.h
! 4d55488629c09ff19bd872e7dd9d0fc7  gcc/cobol/parse_util.h
! e3da005fc3c3f7ecef5c0b80b8e0695d  gcc/cobol/scan.cc
! 2d6e3f8957ed74c57219d6716cc6e349  gcc/cobol/scan.l
! 6167e94148de7a36424478c8b5ec44c8  gcc/cobol/scan_ante.h
! 412d402c454f4c3a5364bc98cfcf9096  gcc/cobol/scan_post.h
! 8085c8fff2ef5a491a4102efc3584d9f  gcc/cobol/show_parse.h
! 41da7e221616bf8ad018c4a6f314aa31  gcc/cobol/structs.cc
! 6a12fdf051ff87867b239b5ae272fd55  gcc/cobol/structs.h
! 3a6990c5b27156bdf03ff99b14b95a97  gcc/cobol/symbols.cc
! 0c1d589b57082cf5151b89c35374d3f2  gcc/cobol/symbols.h
! 14044cb9b824e92fc425d1c79db79d48  gcc/cobol/symfind.cc
! 7c1542762ea306322c1babf670d6b0aa  gcc/cobol/token_names.h
! 94ee230280ef44983fee5c81648f8669  gcc/cobol/udf/stored-char-length.cbl
! 32144a84bc901f5ecd6c557dab357b1b  gcc/cobol/util.cc
! 736341eac068276fa296b201670b03de  gcc/cobol/util.h
! 0f3dba102a04da8ca1e45b9b16741bde  gcc/collect-utils.cc
! 6e6685d60444844fecf36350b5956f77  gcc/collect-utils.h
! 30202062ccc5696f6203f07ab6965763  gcc/collect2-aix.cc
! 614352499c1022ed9ffb93cdd4b7daef  gcc/collect2-aix.h
! d0fd2d6b92855f5ea2dcf1212cdff3ec  gcc/collect2.cc
! f55010fab8b9aabea82c3ac50d031028  gcc/collect2.h
! 47b3611844b583f418ce3aaf051c492a  gcc/color-macros.h
! 7041e62f0f582b09331732fef4bb9545  gcc/combine-stack-adj.cc
! de3ef09dcf7fe0dca9ebbf10c83f4681  gcc/combine.cc
! 2b9ccf7fc2473ef7e36aee9bcf170843  gcc/common.md
! 12678e433ce3ad504a9bc371e63681ae  gcc/common.opt
! 310d10d5092de3cf9710fc4c346b1549  gcc/common.opt.urls
! 26050db921f73fd87b026dc950bde97b  gcc/common/common-target-def.h
! dae02ebe59cdaaf21611ad354e939ca5  gcc/common/common-target.def
! 4a00b1cedd9d15d93e32920b16b3c292  gcc/common/common-target.h
! 6a072ad74a92c43b4c4ddaf601c5dba5  gcc/common/common-targhooks.cc
! 053301c186b4ed1dbacedc670026f9cf  gcc/common/common-targhooks.h
! 3fe6c7de4961f6aa3ee001889bd0ea14  gcc/common/config/aarch64/aarch64-common.cc
! 7004f1c8c062f2b3fa9d5a44f86525a9  gcc/common/config/aarch64/cpuinfo.h
! 583d89cf5b4ff63572bfcd107bd598e1  gcc/common/config/alpha/alpha-common.cc
! c54d5f1066ada6f197004c84bc9e6a63  gcc/common/config/arc/arc-common.cc
! a2257a45385715383445b186a608b85d  gcc/common/config/arm/arm-common.cc
! d46d4dd1040566e89c7089c05c95efb6  gcc/common/config/avr/avr-common.cc
! 94fd737b0a4e5a33efec7b5a5e6ba9d1  gcc/common/config/bfin/bfin-common.cc
! 539502c377f03b36d40016cfd9259d53  gcc/common/config/bpf/bpf-common.cc
! e278f87d704fd4b4533b822677f52229  gcc/common/config/c6x/c6x-common.cc
! 2cabc74890b72004acac9e8bf7a15fe5  gcc/common/config/cris/cris-common.cc
! e6e86df919407a02a2bcc6baffb28dd6  gcc/common/config/csky/csky-common.cc
! 64054c93d36705572a29c88b3233e80a  gcc/common/config/default-common.cc
! 13b61dc45366b537aa07612a9f0baf6c  gcc/common/config/epiphany/epiphany-common.cc
! 0f5757dd48f6c434c6a7524916ece749  gcc/common/config/fr30/fr30-common.cc
! e52e97d4d4876d6657fdd48e9f622383  gcc/common/config/frv/frv-common.cc
! 2da12f05a7597886b6b659f44fb2d0b0  gcc/common/config/gcn/gcn-common.cc
! cba8bad9b28e5a0f8934b00becb13d4a  gcc/common/config/h8300/h8300-common.cc
! 7b838bc6221e0cb6ec58686d071843ee  gcc/common/config/i386/cpuinfo.h
! c34d4141d32f1960ba4ad1416b1a74dc  gcc/common/config/i386/i386-common.cc
! 319d43918a10f58e085c55aa15f20b48  gcc/common/config/i386/i386-cpuinfo.h
! 905a09c0cc645c808afd0e7038f31aa3  gcc/common/config/i386/i386-isas.h
! 2a64c5f639b347964e652ebb1add9831  gcc/common/config/ia64/ia64-common.cc
! 94b8ff9b1f75e2aaff5033327ccfb449  gcc/common/config/iq2000/iq2000-common.cc
! fd1d75b5f0b2cfac12e5ed2e83377f77  gcc/common/config/lm32/lm32-common.cc
! 439511d12e6007365989970ce2f30ee7  gcc/common/config/loongarch/loongarch-common.cc
! c274f01e092954a82e2b6a8616fb0f71  gcc/common/config/m32r/m32r-common.cc
! 8d56564b50267e9ff76b19916f360c71  gcc/common/config/m68k/m68k-common.cc
! 95c83c56e3a5eaa677486f6bc6dd8c2b  gcc/common/config/mcore/mcore-common.cc
! e0c1d534c4e842a11c0e0ec9fef96322  gcc/common/config/microblaze/microblaze-common.cc
! a8da6c4a2e1b219fd7e9586291da39e2  gcc/common/config/mips/mips-common.cc
! a0c77fa4eccd294880954d0d3516417d  gcc/common/config/mmix/mmix-common.cc
! 9f83e911d234d61f086c7ccfed180474  gcc/common/config/mn10300/mn10300-common.cc
! 90ec608fc23865b67f6364d5bd977d04  gcc/common/config/msp430/msp430-common.cc
! d0ba90d7997b773bc0cf7b42ec8ca061  gcc/common/config/nds32/nds32-common.cc
! 9d86cc8e98cf9ad5e2fe68513853137c  gcc/common/config/nvptx/nvptx-common.cc
! f842f1b8595f3ac795ba92c2b07085e6  gcc/common/config/or1k/or1k-common.cc
! 03a53ecd36b397fbe0846ead66505e2d  gcc/common/config/pa/pa-common.cc
! 1fbcfc1a92bb13e4405bc75767cf8a36  gcc/common/config/pdp11/pdp11-common.cc
! 7ee5967300d3c96a608eea63008aa893  gcc/common/config/pru/pru-common.cc
! 45a99a200d6d3b8538ce4cc78924c3d6  gcc/common/config/riscv/riscv-common.cc
! 8a5a4ee26b110f44497208d1b31e3503  gcc/common/config/riscv/riscv-ext-bitmask.def
! 08537bef63b33fd56aeb2a292c9a207a  gcc/common/config/rs6000/rs6000-common.cc
! 9ddaceac9f81b4798f64241b273f8e1c  gcc/common/config/rx/rx-common.cc
! 9f21ffc872d6adbeb85ccb70274ae35a  gcc/common/config/s390/s390-common.cc
! de1ae5ce5c3e894036fa8cade7bc756d  gcc/common/config/sh/sh-common.cc
! 785bb4743bcb677dfd61485bf85d62a9  gcc/common/config/sparc/sparc-common.cc
! ce6b1ae2c77ca73c68a8df1e0213728f  gcc/common/config/v850/v850-common.cc
! f34051d595b418fb72b0a8bf14ea6130  gcc/common/config/vax/vax-common.cc
! 6c6df4f6ba9d2aecb4666e013c5a4e5f  gcc/common/config/visium/visium-common.cc
! c2d4a4ed45d3ab265d7eabd3e5571c9c  gcc/common/config/xstormy16/xstormy16-common.cc
! b5a916bb9dd788754ac9e4ad7174ee74  gcc/common/config/xtensa/xtensa-common.cc
! b209201703dd766f76ff5e16b99191e5  gcc/compare-elim.cc
! 618780fbce0ce0cb6f9b86e079ce4e54  gcc/conditions.h
! 1b4bc58c657bf910929d06d51bc8fa6c  gcc/config.build
! 7dc64247aa1da126a700407011f857c1  gcc/config.gcc
! 053bb14b428d0f073932e88b9a29a8bd  gcc/config.host
! 1d528f9807496430cc01191e59f745d3  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
! ddbb7a934f8b8aa068e7b765c4375fbe  gcc/config/aarch64/aarch64-abi-ms.h
! 9ff4e02500f5622983fef95cce7f38fd  gcc/config/aarch64/aarch64-arches.def
! 0746d3771e3a6276fdf28f14cbcb0809  gcc/config/aarch64/aarch64-builtins.cc
! 482530e7572b40bc2ad01bdec0c1b97e  gcc/config/aarch64/aarch64-builtins.h
! d1e3bcda28d89d23e45fed74c629752a  gcc/config/aarch64/aarch64-c.cc
! ba4e797220b33827e769b09447623896  gcc/config/aarch64/aarch64-cc-fusion.cc
! 133f61af7e288fe91ca31c659939c551  gcc/config/aarch64/aarch64-coff.h
! 307dc3ae557921b9ae7ec79c503e3493  gcc/config/aarch64/aarch64-cores.def
! f0a8397b1e293e23f65674cd004845ae  gcc/config/aarch64/aarch64-cost-tables.h
! bef2a61270424fd606c71d78d20ad675  gcc/config/aarch64/aarch64-d.cc
! 36405b6300d5ec6ca8faf17212ad1bc9  gcc/config/aarch64/aarch64-d.h
! d75100bc2f054afcf41a992cdaa5f793  gcc/config/aarch64/aarch64-early-ra.cc
! a626b42ff6790e8447d6f7bf1b19e5fb  gcc/config/aarch64/aarch64-elf-raw.h
! 843882d6c2a5ee474fe70407c459300d  gcc/config/aarch64/aarch64-elf.h
! 6e8efccd687b154a1a7fcc3e9672274f  gcc/config/aarch64/aarch64-errata.h
! 6df4d6606c5577f4c539576fb9118290  gcc/config/aarch64/aarch64-feature-deps.h
! 81054413a10f449c26d39daf0861c255  gcc/config/aarch64/aarch64-freebsd.h
! 28a1c2270ecf37dbbc890a00afce3f18  gcc/config/aarch64/aarch64-fusion-pairs.def
! dd2d88a7586ec30af3a0bb6a01f095f4  gcc/config/aarch64/aarch64-gnu.h
! fd903b38a91407509349790d7c151b7c  gcc/config/aarch64/aarch64-isa-modes.def
! eb027b43f3e6788c44aa2d2b7e11943f  gcc/config/aarch64/aarch64-ldp-fusion.cc
! 7387cc42927b91bf90a7aa8d49a9eff7  gcc/config/aarch64/aarch64-ldpstp.md
! 13f036b6a160cb85ad864e7e475dc552  gcc/config/aarch64/aarch64-linux.h
! 3c95e830c849ee5787b2e1d5128a4bc6  gcc/config/aarch64/aarch64-modes.def
! 64c80b1b7cd981b4fb4b76f7c36c9428  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
! f931bc8e97c2f1358ad3ad91e902d553  gcc/config/aarch64/aarch64-netbsd.h
! c9a52df251f3132f3562d3fffaa39c7b  gcc/config/aarch64/aarch64-option-extensions.def
! eb901cf32e942a31db5999eda012dc00  gcc/config/aarch64/aarch64-opts.h
! b14ff14af09e35148ebaceacc90e59a7  gcc/config/aarch64/aarch64-passes.def
! d9450e0fa15cd8b8f6659555820ec24e  gcc/config/aarch64/aarch64-protos.h
! 7cfa3d0cdd28cdcd73a29c2c8a925548  gcc/config/aarch64/aarch64-simd-builtin-types.def
! f28e7beab7cc8baa0b1a2e5e9efc0597  gcc/config/aarch64/aarch64-simd-builtins.def
! 33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! 289754bc9c6eb2b3ec2ebb609d36de73  gcc/config/aarch64/aarch64-simd.md
! a6b5fef44720ac04efdf50efa092700a  gcc/config/aarch64/aarch64-sme.md
! 221b858bba4517a3871cb07292c6b216  gcc/config/aarch64/aarch64-speculation.cc
! 9ab182bab4cc10bb9676b1309abb562f  gcc/config/aarch64/aarch64-sve-builtins-base.cc
! 35bb69e0b38657d068d103a2da1b8a16  gcc/config/aarch64/aarch64-sve-builtins-base.def
! cdcf6636402c3c91eb0010325542b491  gcc/config/aarch64/aarch64-sve-builtins-base.h
! 7bf84ccc784bb8957d9a6174156cd087  gcc/config/aarch64/aarch64-sve-builtins-functions.h
! 089932b501cb5cd94383201ef2002478  gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
! 88653955c7c15c0ac1d6f1bd1b827641  gcc/config/aarch64/aarch64-sve-builtins-shapes.h
! e055c97bc39ff21701576ecf45b3a7a0  gcc/config/aarch64/aarch64-sve-builtins-sme.cc
! 14751aeef4937155819adeff3187a05d  gcc/config/aarch64/aarch64-sve-builtins-sme.def
! 020b06065c22c51e5b289ef55b54a5b5  gcc/config/aarch64/aarch64-sve-builtins-sme.h
! 6a3e090aa0b4e965d85b3a17bd657513  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
! 5249e3dd61e8bd70c85a23c5711f3ca2  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
! e2d80b89552da0c6b4cb6bede3b2e573  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 2578221253cb8c19e9f778140a8cf9af  gcc/config/aarch64/aarch64-sve-builtins.cc
! 30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
! 5ef25fd86c1c16a4a6fb3f74e12802b4  gcc/config/aarch64/aarch64-sve-builtins.h
! b45f552bc7dc893ae67b3f44db9f0b64  gcc/config/aarch64/aarch64-sve.md
! ba15eac226714e59e1ff1026c4e09ce0  gcc/config/aarch64/aarch64-sve2.md
! 805529fa07916adcabb727f19ebd8dd2  gcc/config/aarch64/aarch64-sys-regs.def
! 065e0643d90a8831e9495b5ce2c12b0d  gcc/config/aarch64/aarch64-tune.md
! 06480b67fa44a0b9fa7de2ed778a3df9  gcc/config/aarch64/aarch64-tuning-flags.def
! a2493e870eb12f5d646c24f2949e4cd3  gcc/config/aarch64/aarch64-vxworks.h
! 8c481269f9f89c56dd1e8f60f29fe226  gcc/config/aarch64/aarch64.cc
! 4c2226a017b612867a61db1f7929ad43  gcc/config/aarch64/aarch64.h
! 6c9bcd8da1f639806492a66eddd368c5  gcc/config/aarch64/aarch64.md
! 84c23cd68c90a9be4b986aa7009ba1c9  gcc/config/aarch64/aarch64.opt
! 21fd50b19307096b8be37549ae0f6f77  gcc/config/aarch64/aarch64.opt.urls
! 99f46f1d591aa221b0c93a221ad9dc43  gcc/config/aarch64/arm_acle.h
! d8c2d46b77748c711b5354380ee49819  gcc/config/aarch64/arm_bf16.h
! f2ed4fb25bb00adfd0045bf870d46e50  gcc/config/aarch64/arm_fp16.h
! a40fb6a3f2f9048ea397a2c0936a4b88  gcc/config/aarch64/arm_neon.h
! a0d3bae82f2abdfc793c0b4f1cae025d  gcc/config/aarch64/arm_neon_sve_bridge.h
! 635773ffc939f0e39ab48ab979839310  gcc/config/aarch64/arm_private_fp8.h
! 0c0f98139cc983bbc7d6e08a92e8e104  gcc/config/aarch64/arm_private_neon_types.h
! e1d5d74f22f34e78527ba51b694c4dbd  gcc/config/aarch64/arm_sme.h
! c61b39c4504a36e5c45cd1e3b64723d7  gcc/config/aarch64/arm_sve.h
! 4be0bf5256965b871b51fd819dc85ed7  gcc/config/aarch64/atomics.md
! 35fa48ff42e4796d58857c4d001d9920  gcc/config/aarch64/biarchilp32.h
! ae88170d2d567105865813bb4b77d91f  gcc/config/aarch64/biarchlp64.h
! 124d7f2adedfdccecd86bb0274dfc7aa  gcc/config/aarch64/check-sve-md.awk
! e1f047783d6854d48a65e26806d1340b  gcc/config/aarch64/constraints.md
! d98f001d9d7b4c0bc18d715b4d512ab9  gcc/config/aarch64/cortex-a57-fma-steering.cc
! 034ef57fb17f601ded123d7a43b51d02  gcc/config/aarch64/cygming.h
! d008e1068480bd3433dc32f0c9200ab1  gcc/config/aarch64/driver-aarch64.cc
! f713d33fdaee532813b56547dd070c8c  gcc/config/aarch64/fractional-cost.h
! dfcdbda4a3bb64a86fdf64ce6fce0ae3  gcc/config/aarch64/geniterators.sh
! bc3b4ebfac8bfd42d3e9098f33585afd  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! abbbbf6a81aacb22ddfd5cf90e09c3fb  gcc/config/aarch64/iterators.md
! 5b5a63a020088c423711fc910c09f55c  gcc/config/aarch64/predicates.md
! a4e902ee1494ba5eee811ea46ecdf995  gcc/config/aarch64/rtems.h
! 9a62f0d5ab77ee226f2c440e8c4d3a1d  gcc/config/aarch64/t-aarch64
! 5a6fa47ba2bb65a12cd953f8edee028d  gcc/config/aarch64/t-aarch64-freebsd
! 7c93b24bd00b44291884d34b3213b75e  gcc/config/aarch64/t-aarch64-linux
! 5a6fa47ba2bb65a12cd953f8edee028d  gcc/config/aarch64/t-aarch64-netbsd
! 49063fb9a5e33f58ac7cc9c641bf10ac  gcc/config/aarch64/t-aarch64-rtems
! d69f3321610d365313a88ad4ad974d87  gcc/config/aarch64/t-aarch64-vxworks
! a40b8d46a9bba2c521b822a618ffab41  gcc/config/aarch64/thunderx.md
! 1f263d211aad08e7724d93ec6ef63ed9  gcc/config/aarch64/thunderx2t99.md
! 01ee7babaa32efd33b82cc9d4e474d91  gcc/config/aarch64/thunderx3t110.md
! a256904bc4af7c0fc078f42f85bcf729  gcc/config/aarch64/tsv110.md
! 370262749f0a8c412bd61b09a4c15825  gcc/config/aarch64/tuning_models/a64fx.h
! 202b8ba341c169bceb93cb89d11d0e0a  gcc/config/aarch64/tuning_models/ampere1.h
! c633e98d62352f61803e2a2dfe93c5a8  gcc/config/aarch64/tuning_models/ampere1a.h
! 7ad1c269acdfee60668f5cb93cc2aeb0  gcc/config/aarch64/tuning_models/ampere1b.h
! 9962430cb6aca61241df5d5b326713d8  gcc/config/aarch64/tuning_models/cortexa35.h
! e09fcbbb84683bbe1da505bf33e22d52  gcc/config/aarch64/tuning_models/cortexa53.h
! a1de86c0a558e79a951a6a24ed1e133a  gcc/config/aarch64/tuning_models/cortexa57.h
! a3ffc0ff21c2d3597768451a5afa4027  gcc/config/aarch64/tuning_models/cortexa72.h
! 95f68b1784447f4df0a62736209bcbe6  gcc/config/aarch64/tuning_models/cortexa73.h
! d88b01ec5c51c0e7e9948b03d926629d  gcc/config/aarch64/tuning_models/cortexx925.h
! a817cc8c0648af85cd26652c17c0f063  gcc/config/aarch64/tuning_models/emag.h
! c414f4f4b0ca18716b952cdc996cd336  gcc/config/aarch64/tuning_models/exynosm1.h
! c20726a55db2926c898f89280cf7b685  gcc/config/aarch64/tuning_models/fujitsu_monaka.h
! 9f73f9910638c9e0a3139320e38ed6f0  gcc/config/aarch64/tuning_models/generic.h
! 3db39fdaa1e6c980b54f842eeff2fa0a  gcc/config/aarch64/tuning_models/generic_armv8_a.h
! cbb7f4c1241626aba880f9f98cf59b4f  gcc/config/aarch64/tuning_models/generic_armv9_a.h
! e3084154e4d8706cd3825dad493faefd  gcc/config/aarch64/tuning_models/neoverse512tvb.h
! ce0f856b5d88ad7f8a33a6e05b88176b  gcc/config/aarch64/tuning_models/neoversen1.h
! a3d9fb503080c4d2fcb58c74d82ef235  gcc/config/aarch64/tuning_models/neoversen2.h
! b78970b203ff4a643967bb24ad8fd280  gcc/config/aarch64/tuning_models/neoversen3.h
! d1b95435bb177952f26d761fee7430d6  gcc/config/aarch64/tuning_models/neoversev1.h
! 067f90a712678085bed8b60608edfc4b  gcc/config/aarch64/tuning_models/neoversev2.h
! 42edc79260b9e5687e2f6d3c54678870  gcc/config/aarch64/tuning_models/neoversev3.h
! 53b5e25dd9d162d4a60fa9c5e2ad104f  gcc/config/aarch64/tuning_models/neoversev3ae.h
! e0ea9a60e19c47697127edd6550da663  gcc/config/aarch64/tuning_models/qdf24xx.h
! 1846be94d3382c182fb7d9a19bc9e042  gcc/config/aarch64/tuning_models/saphira.h
! 9f37e6e78ab3e5e066a76b94257321a5  gcc/config/aarch64/tuning_models/thunderx.h
! 11a566b9faf74fdd3e17cbd8482500fd  gcc/config/aarch64/tuning_models/thunderx2t99.h
! 7136df5699b8b31e7d880f1bfa9ab4f0  gcc/config/aarch64/tuning_models/thunderx3t110.h
! 8a081f4ae895a340c088b28edaca059f  gcc/config/aarch64/tuning_models/thunderxt88.h
! b0a0fde3e8ef96d695ab4fd0033110ea  gcc/config/aarch64/tuning_models/tsv110.h
! ccb8eaf7dbfa9552e6f94bb45cdf4f01  gcc/config/aarch64/tuning_models/xgene1.h
  73f622005e7fda6d36e6cc106567cf33  gcc/config/aarch64/x-aarch64
  a07ee362a4961e9d41cb0ab83553de74  gcc/config/aarch64/x-darwin
! d51a0766c060e725ac291bdfb7029579  gcc/config/alpha/alpha-modes.def
! b2ecc6b45e614eef7e1878acb4c9f345  gcc/config/alpha/alpha-passes.def
! 8b2d685006af3011ecd8b617703ed1ab  gcc/config/alpha/alpha-protos.h
! 35f29212e23d25f0107feff81df73aab  gcc/config/alpha/alpha.cc
! 93511b626141bd2b9f58ecef4371b76e  gcc/config/alpha/alpha.h
! c59dfa45c361244bab962af31c11302c  gcc/config/alpha/alpha.md
! 8845f6e324c252c878acb1b4d26c77ea  gcc/config/alpha/alpha.opt
! 9811885608a0169ea809314a22be6e19  gcc/config/alpha/alpha.opt.urls
! e31dcd453b994d3be486de8f40553e92  gcc/config/alpha/constraints.md
! 2ffb559e7028fd095faa20ffb45bf74d  gcc/config/alpha/driver-alpha.cc
! e75cec79a06a11cdccad1b018a16de9f  gcc/config/alpha/elf.h
! 38f03ba68d5d66622353d7e71cbac1e7  gcc/config/alpha/elf.opt
  9623ffdc7f80c52e1e1e755653229680  gcc/config/alpha/elf.opt.urls
! e72defaf00548bd45802c13828e68538  gcc/config/alpha/ev4.md
! 1515e21890060181f3733d92ad511ba7  gcc/config/alpha/ev5.md
! d95b794c35643e8b38fb31e1b0f29e2c  gcc/config/alpha/ev6.md
! 6e00df8bad1a7e58483ca11c63d50076  gcc/config/alpha/linux-elf.h
! 706de1d7e2cec425714fffd8c194f83a  gcc/config/alpha/linux.h
! 54bb7fc464caa45aa761771c6ddc89c9  gcc/config/alpha/netbsd.h
! 62604c0de27b55bdddf90862e7a9fa68  gcc/config/alpha/openbsd.h
! 4587293e07f41ee2686e0ba5b448c5dc  gcc/config/alpha/predicates.md
! de55ad3d8649327ecdb2af086c76a616  gcc/config/alpha/sync.md
! d4c941e84b2af3e944dacafb290f679c  gcc/config/alpha/t-alpha
  6e8dd648b9668f18b1dfd9f1203c9885  gcc/config/alpha/t-linux
! 23d12cf90d6b539939bc8daa7b8ee55f  gcc/config/alpha/t-vms
! d63ae243e38e76df358ec4e5ac4fc56c  gcc/config/alpha/vms.h
  b3c50e1f46a9bdacf84333c01cb8ec66  gcc/config/alpha/x-alpha
! 0eb56fa80a51cc2e74f3e3202068b03a  gcc/config/arc/arc-arch.h
! b48390d42ed25b5de4f864c39b3032b4  gcc/config/arc/arc-arches.def
! 7fd8ae0f98ae82f40fbf454d13369af4  gcc/config/arc/arc-c.cc
! 3b86b7efc5ce0282ba18f254e565cbc1  gcc/config/arc/arc-c.def
! 8c1288935121a21d6366a02ae45ebb96  gcc/config/arc/arc-cpus.def
! e9f2704f4d533052217498daeb6039e9  gcc/config/arc/arc-modes.def
! 9b5d6d3d6cddb8822caaa79aa80feb3c  gcc/config/arc/arc-options.def
! e568b093a31424a4370af8fa48e7435f  gcc/config/arc/arc-opts.h
! fa51eae4a4a285a91dedb91fc0246a15  gcc/config/arc/arc-passes.def
! ca0f368e9dc0029f1bd04462f37bff1b  gcc/config/arc/arc-protos.h
! e54824657551f1b95cd19d0a50bef8b3  gcc/config/arc/arc-simd.h
! e4a75970451275f37c431cddbd360dce  gcc/config/arc/arc-tables.opt
  6704645d075bf670b5ed5d77f0a88b86  gcc/config/arc/arc-tables.opt.urls
! fa6f1d04bdb6c92abafeb6f1c902ebca  gcc/config/arc/arc.cc
! 7571a4c51258ecb3cc685c010427e67b  gcc/config/arc/arc.h
! 1fa49626336ccb287a77a7c72d57a372  gcc/config/arc/arc.md
! 5e49444e76be2e50b3f491529836f101  gcc/config/arc/arc.opt
  37a4012c7ff454831fdb2049d8fa1e27  gcc/config/arc/arc.opt.urls
! 6501826900ef8a0676f77ac8ebf5ccd9  gcc/config/arc/arc600.md
! 97435838006ef52f7d83f71b4e1df82f  gcc/config/arc/arc700.md
! 69617b2fa1896eca15b1a22469477261  gcc/config/arc/arcEM.md
! 9f81585d2528d878359304d1eb3926cf  gcc/config/arc/arcHS.md
! 24f87f0cf0dc6ab8583da8e9515f8505  gcc/config/arc/arcHS4x.md
! 49f9fe3009ce6bd15448290c1d587784  gcc/config/arc/atomic.md
! 194276594fc7635e6e57a1395de35ff8  gcc/config/arc/big.h
! b691f6a4fed6c15885417095e9f63c2e  gcc/config/arc/builtins.def
! a9fe0abac9b90f9c485da8811cd76bbe  gcc/config/arc/constraints.md
! f669ddf41e66a667f130064e83781f2f  gcc/config/arc/driver-arc.cc
! 8e333384ed8458af908c61aed2e58ae1  gcc/config/arc/elf.h
  255d583e6d23d9cbed1614263d159a1b  gcc/config/arc/fpu.md
! a6c8d11dbc1fab218405531bf2476e24  gcc/config/arc/fpx.md
! ece8354f31c69ce2bad8b1af869d70b7  gcc/config/arc/genmultilib.awk
! af77dcb21d43cb0e647fb24fcba56e57  gcc/config/arc/genoptions.awk
! 47b2c36765c0f4b5eb537a72bc32e9c4  gcc/config/arc/linux.h
! 645b64af66baac819e623f52227d24b3  gcc/config/arc/predicates.md
! cadfbc5633eee7fc0d364e10df21da63  gcc/config/arc/simdext.md
! fe307ea249223c9530e784c8fc5c6fc0  gcc/config/arc/t-arc
! efbc0ac68a9a367ae71e2270f5e67e97  gcc/config/arc/t-multilib
! e8f60792d98bc24662b34c7928104624  gcc/config/arc/t-multilib-linux
! 63b9c725f3edde7fed6ffc49e0227b2e  gcc/config/arm/README-interworking
! c6495aa81de32f973141a776003c7fec  gcc/config/arm/aarch-bti-insert.cc
! 2a910650029579bceccf08fc2394245b  gcc/config/arm/aarch-common-protos.h
! 3bc84026bb8175224a66c8640518b315  gcc/config/arm/aarch-common.cc
! f9afd2ef855bfd549493f6da71fd93b7  gcc/config/arm/aarch-common.h
! 0fcc6a97fcf14fe1517964a09016261f  gcc/config/arm/aarch-cost-tables.h
! 533acf219f4a4bdfb2048b56e22391b7  gcc/config/arm/aout.h
! 229926e0b373df8e18285ef482f7c867  gcc/config/arm/arm-builtins.cc
! 9dd7793ad1cabff379e14aed638e7920  gcc/config/arm/arm-builtins.h
! ce2af5f28c0fb79a346e7f94fc284913  gcc/config/arm/arm-c.cc
! 1300db56f8583f75fbaddf89d82020cb  gcc/config/arm/arm-cpus.in
! 03109585e11f4428b7b8f5ab035aee71  gcc/config/arm/arm-d.cc
! 75c5136295e2dec2fecf9161a8fa122b  gcc/config/arm/arm-d.h
! e0596bbcf922c8720b56f7bf19416d21  gcc/config/arm/arm-fixed.md
! 7eb17427c861cbcd72d8b3b090aa6428  gcc/config/arm/arm-flags.h
! e142e166e7cd04ae80f0ab8164936571  gcc/config/arm/arm-generic.md
! c3db7a7dfc5f086a04da4c1151d755d5  gcc/config/arm/arm-ldmstm.ml
! a7ae9132c9bec5a1cb9d4d193eb9fb9f  gcc/config/arm/arm-mlib.h
! 46b06532a5609675535edd3c09991537  gcc/config/arm/arm-modes.def
! aa383b4f5882eae26cde94f0b22aedd1  gcc/config/arm/arm-mve-builtins-base.cc
! e7b7c026e8534c166c3243388a760db5  gcc/config/arm/arm-mve-builtins-base.def
! f7da1948e1d45b2ba15e1bf69f9fab63  gcc/config/arm/arm-mve-builtins-base.h
! e064d99cd82f974a718dd70c31575709  gcc/config/arm/arm-mve-builtins-functions.h
! cf6db86b33aad410441232cb5e3f30b7  gcc/config/arm/arm-mve-builtins-shapes.cc
! 22b0a5a853f387f3ca45b438b257a19e  gcc/config/arm/arm-mve-builtins-shapes.h
! 682a014f9e1f141dfb4c3d481e890008  gcc/config/arm/arm-mve-builtins.cc
! c7d2396379cbe9f18b9ac7f95b2376f9  gcc/config/arm/arm-mve-builtins.def
! 657d3ecd350c0aab459e5d706a2466b8  gcc/config/arm/arm-mve-builtins.h
! 3324fea779a9e54d498ce895ae9ca8d0  gcc/config/arm/arm-opts.h
! 7172fa6a91c05d4711e3fe34ec3c7d7c  gcc/config/arm/arm-passes.def
! ebac787f4084f83c29a4c53ba6a696c3  gcc/config/arm/arm-protos.h
! eafc8a2abc331243ea846fab22b8aec4  gcc/config/arm/arm-simd-builtin-types.def
! 485d7b0baab6c9abc2c56a9f6c467afb  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
! a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
! 7d95ec920300fa051646557add91f019  gcc/config/arm/arm.cc
! fe5e2b24f803c40d73fe860e114fc6e0  gcc/config/arm/arm.h
! 11e0d112671b369f4d182ac9d5c6066b  gcc/config/arm/arm.md
! a7974fb16c914604eacaf43120b8769f  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
! ccbf8aa9582c7ea8db0ed6a70d1dd691  gcc/config/arm/arm1020e.md
! e8da624def348c2c40197e1b1ad6f812  gcc/config/arm/arm1026ejs.md
! 57398c8303832436651bbcc411bcedbe  gcc/config/arm/arm1136jfs.md
! 03819ad073956605c1724a38b431ce30  gcc/config/arm/arm926ejs.md
! 0058fa336f59dbd94aeac405bfa20da6  gcc/config/arm/arm_acle.h
! 1429866afecf7b0e781da394fd0e483a  gcc/config/arm/arm_acle_builtins.def
! 5fbb91155cbb294e2efad9750bd7d759  gcc/config/arm/arm_bf16.h
! 848a91791ea1709cfcddb073a0450458  gcc/config/arm/arm_cde.h
! b1a24a24b85a7cb705e34642d6262e82  gcc/config/arm/arm_cde_builtins.def
! 97c08aba9b7507a2a727088723d324dd  gcc/config/arm/arm_cmse.h
! 6bca088046fad4a4968ac527476fe0d3  gcc/config/arm/arm_fp16.h
! 3777ecd6cf5b0fe59734ec67479e8c4e  gcc/config/arm/arm_mve.h
! 5e9c8b6c6b107ceb0259919168fcb6ca  gcc/config/arm/arm_mve_builtins.def
! 1f4138dbad069d0f988c5b0ab3f8671b  gcc/config/arm/arm_mve_types.h
! 6e4fbe4ba93f477a89f4979de431397f  gcc/config/arm/arm_neon.h
! cb269e14a0ffcaf48937ea37a588d123  gcc/config/arm/arm_neon_builtins.def
! 130a8fbe50847f964b84dcc079274131  gcc/config/arm/arm_vfp_builtins.def
! ae20ce20f59a062f74bc3e38bfb8e776  gcc/config/arm/bpabi.h
! bbacfe695f3abec9a6aa46cee26c1db4  gcc/config/arm/common.md
! 1e5fd9611ba9a759a35660d0e4c4b3f7  gcc/config/arm/constraints.md
! 583626dca1b07ab1d185bd33be9c755e  gcc/config/arm/cortex-a15-neon.md
! e3f39f090dffb6441661f2735ff625c7  gcc/config/arm/cortex-a15.md
! 2e920cabf1d4fa68e020ec3becbec753  gcc/config/arm/cortex-a17-neon.md
! fc94b10bcb77ab912b7183d5075ffed6  gcc/config/arm/cortex-a17.md
! 57d3a069da76b7ff2f77f73f909b92f6  gcc/config/arm/cortex-a5.md
! 23c243d339b3c6294727c2c3defef261  gcc/config/arm/cortex-a53.md
! 3a53966ae7343c186e51a4f073502072  gcc/config/arm/cortex-a57.md
! 5539f1eb4e650a49f9ca56cde6fae677  gcc/config/arm/cortex-a7.md
! 883406edc5fed0ee97399e6758a8416c  gcc/config/arm/cortex-a8-neon.md
! b23132f226777a0d6df1c05eef4a4b9d  gcc/config/arm/cortex-a8.md
! a2b996236688780cf1b11dc39e691620  gcc/config/arm/cortex-a9-neon.md
! d6f320be73993691866f67821b792665  gcc/config/arm/cortex-a9.md
! 19f06be40f34cba1587d72549feefe59  gcc/config/arm/cortex-m4-fpu.md
! b043c025db353d78b853bbed6e4c9b5e  gcc/config/arm/cortex-m4.md
! 77f8adca8b2d4923a4965bd6bfef4760  gcc/config/arm/cortex-m7.md
! d1b2f4b6c05fb2d5572ec70a892086f1  gcc/config/arm/cortex-r4.md
! 278ca9ffe4af096f966633f992e87838  gcc/config/arm/cortex-r4f.md
! 6c1cfb8ed5f3dd4e34aec31255d6d1d3  gcc/config/arm/crypto.def
! ceb35c7031c6412c355a52d9d4b221d8  gcc/config/arm/crypto.md
! bf64cb06e2658f48c9ee186710ed8522  gcc/config/arm/driver-arm.cc
! da60cd460553a091ccdcaceba06e1588  gcc/config/arm/elf.h
! f6c5fe4f938c4ddf70e9f1677bf35043  gcc/config/arm/exynos-m1.md
! 4133d1a06aa55daf9f43a719d19a6b78  gcc/config/arm/fa526.md
! 1720827d621cc8f678fa8b146718aa02  gcc/config/arm/fa606te.md
! 11efcc4169d83580aa76e09c9922f0da  gcc/config/arm/fa626te.md
! d3258824a869cbf8507cc20b8354d63a  gcc/config/arm/fa726te.md
! 7ce753afcddfce0345d95ad953e5a4b2  gcc/config/arm/fmp626.md
! 2c6206b20ea2631cadbdfaa2019002d1  gcc/config/arm/freebsd.h
! d46e30ed2d47159006a0c4a6dd3bf6ef  gcc/config/arm/fuchsia-elf.h
! 0632ce6b37113785b331e73807d5e0bd  gcc/config/arm/iterators.md
! 78c13c6d4c125cd3779c516e81bcb1ee  gcc/config/arm/iwmmxt.md
! 8a220d94d24f542dbfc8bcf597747268  gcc/config/arm/iwmmxt2.md
! 63f3c7dd672505a59cbe1c24092c9b34  gcc/config/arm/ldmstm.md
! 656971fbf7d46fe2b4389af456f0833b  gcc/config/arm/ldrdstrd.md
! 62b22793d212e34e0864abdd03c8fe68  gcc/config/arm/linux-eabi.h
! b1bb4aedc65a975961957373495f8b3a  gcc/config/arm/linux-elf.h
! e432241ef743dc9fad65a3e982e51711  gcc/config/arm/linux-gas.h
! d790ecc09ebef93e83ed249e4941fda4  gcc/config/arm/marvell-f-iwmmxt.md
! 0143017c5054dbb4839079ed89df7fc4  gcc/config/arm/marvell-pj4.md
! 5b6e3779ce7193a5b2496230da7b4ef7  gcc/config/arm/mmintrin.h
! 2ceb00fd47c9ae2553581737206a0c2f  gcc/config/arm/mve.md
! 4639c23d19b1e88e0d32ef64d889c37e  gcc/config/arm/neon.md
! f208fab795fa9231cb51c748bd50e7e5  gcc/config/arm/netbsd-eabi.h
! 79c1c27fe924ef728f21bd95a8c3ea71  gcc/config/arm/netbsd-elf.h
! 8f026aba2fb3043f536516c1ed3776c7  gcc/config/arm/parsecpu.awk
! 16b1cf453920910923274f7a62e5d3bb  gcc/config/arm/predicates.md
! 1f3ea8d6e519c40935905506e989956d  gcc/config/arm/rtems.h
! 708681c9ad5a879b29922f565c5b60e5  gcc/config/arm/semi.h
! ed31ef487dcad82d59af7752f594a2cf  gcc/config/arm/symbian.h
! afd8337aeda074e9471bdd42d621ac6d  gcc/config/arm/sync.md
! eceb87bcbce63516aae12e907038c15b  gcc/config/arm/t-aprofile
! 5ee5aaf300deeab0c40f2c0cac17287d  gcc/config/arm/t-arm
! ba79dde999c5f8437b1f88f061dba127  gcc/config/arm/t-arm-elf
  4dc427c456af5e56b1ac39bda8969af6  gcc/config/arm/t-bpabi
! e92e481ff0f501bfc2b92b0e571c867b  gcc/config/arm/t-fuchsia
  e3950ec6bd159734835f8f8fb143efc6  gcc/config/arm/t-linux-androideabi
! 3faada9ddef8adb2780b4a5e3bc7a922  gcc/config/arm/t-linux-eabi
! d780e7c4a5698d98d3fe7aabcde0eae3  gcc/config/arm/t-multilib
! dd0f7c2c925bac5a417b0f1c69217cb0  gcc/config/arm/t-phoenix
! e1ce38b9aa9fc3c0d48ad0b487e89539  gcc/config/arm/t-rmprofile
! dc8e1ff924dd1f2699f60837b792825a  gcc/config/arm/t-rtems
! b6434dfdcd32f4ab54f4e1e867cca4d4  gcc/config/arm/t-symbian
! 1484dd700dca665c8ec9c7b42f260359  gcc/config/arm/t-vxworks
! 84d24ab216855ebac94722b5968426ab  gcc/config/arm/thumb1.md
! 504553bf6ec36f1cc61ecf49e4866f0d  gcc/config/arm/thumb2.md
! b39ae9b1d0fd52783888ae034fa27218  gcc/config/arm/types.md
! 22e6583951db6a19df7c215758f2ffbf  gcc/config/arm/uclinux-eabi.h
! 764ee6f9b6836a3b69036da6a49da57e  gcc/config/arm/uclinux-elf.h
! 85ec3386517177a4f52dfe3a6b7424c9  gcc/config/arm/uclinuxfdpiceabi.h
! c15086ec95d044fe59c3f12aa73190d1  gcc/config/arm/unknown-elf.h
! 9c959e58e72273924c71fe16e787590d  gcc/config/arm/unspecs.md
! 73bd6e0ed5faced721e41f90a5d22e64  gcc/config/arm/vec-common.md
! cd17766ff1d7c30a7763b20fd4eef83a  gcc/config/arm/vfp.md
! 97faf501b2f484ffffb0776805ec048c  gcc/config/arm/vfp11.md
! 7103226c96e3a24663955d93879e07b5  gcc/config/arm/vxworks.h
! 2d895654184d467da32c02a44f6598ac  gcc/config/arm/vxworks.opt
  e219596493ffcd798a48b24b22b5e077  gcc/config/arm/vxworks.opt.urls
  8bb1a840fb87b138c620682ccad6aee4  gcc/config/arm/x-arm
! ad0769e595277d36f17947f5c5ac4550  gcc/config/arm/xgene1.md
! 6e4d3b234cfb1e501ed62c37a12d893b  gcc/config/avr/avr-arch.h
! 7ec1071b6a2f5dda8bfa124dd9543e12  gcc/config/avr/avr-c.cc
! fc218940ab265ae323b54d5f007d0d98  gcc/config/avr/avr-devices.cc
! 5ed27daaa89e74cf4016168779065375  gcc/config/avr/avr-dimode.md
! a22b4318830a45fe7c7db53efb64970d  gcc/config/avr/avr-fixed.md
! f43b68e01b2d61fffb5336ef45fa1e7f  gcc/config/avr/avr-log.cc
! 4d906223c63dc375c9525827a70b6a95  gcc/config/avr/avr-mcus.def
! 1db4fe94056a22e92de33b6d365176c6  gcc/config/avr/avr-modes.def
! d37f092206fc4c0379cee5e5fc01b654  gcc/config/avr/avr-passes-fuse-move.h
! 2dc1345b11b865b9969cbb71e749f862  gcc/config/avr/avr-passes.cc
! 0f30b0a73f6c1a84b2ba73050f568645  gcc/config/avr/avr-passes.def
! 5e1a1c5c73b0e9dbabe637fa8700bf6e  gcc/config/avr/avr-protos.h
! eb753641e5bf09dbcc2be97e61be8767  gcc/config/avr/avr-stdint.h
! 42d978d2c17da8893ddecf6e3a4b0b59  gcc/config/avr/avr.cc
! 08a0b2010b152c01b9bb5883c3d62b7f  gcc/config/avr/avr.h
! 8b26b60721069eccc3ed74be41da88d4  gcc/config/avr/avr.md
! 076d1efacbf67abfb55af3f4a6d35b43  gcc/config/avr/avr.opt
! f53384c1aec1ca9f9bbe9dd81baace9a  gcc/config/avr/avr.opt.urls
! e6d58e7505c28a23d3cd4e70e534521e  gcc/config/avr/avrlibc.h
! 441eaa03acda9ba9c8febfe4aab09aaf  gcc/config/avr/builtins.def
! 66196007356392102d57b2751db19590  gcc/config/avr/constraints.md
! c6568ca3d3967dc4577de343df313df3  gcc/config/avr/driver-avr.cc
! 2433491b0fd4d18db35f0d52566471c8  gcc/config/avr/elf.h
! 28aee5cb582edae79e10d384f4fa3141  gcc/config/avr/gen-avr-mmcu-specs.cc
! 16aa5070fa9fc0e8ea08da2e81fa07ed  gcc/config/avr/gen-avr-mmcu-texi.cc
! 6d9c1db61d58bad0e31aa7b00e2e9ffb  gcc/config/avr/genmultilib.awk
! 436f7e20c4996793d1ea94555c59b608  gcc/config/avr/predicates.md
! 3ecab14b4beaf91d8871dc902cee93b0  gcc/config/avr/ranges.h
! 9c5ee1a10c14849bd74a27b425d60a71  gcc/config/avr/specs.h
! 6e6e06457d93dd95436762e8db93c538  gcc/config/avr/stdfix.h
! c9ff75ab151759fe329687b82352f34b  gcc/config/avr/t-avr
! 8936068e99e1a52f6c98d17c9b83df34  gcc/config/bfin/bfin-modes.def
! 1eabce9edbddf4a80ba52e9b6b5fc6f3  gcc/config/bfin/bfin-opts.h
! cfe2bf7471fe9cb6d151fbeb919330d2  gcc/config/bfin/bfin-protos.h
! f619ad67a6ebaab8bd624e9dd4f331c2  gcc/config/bfin/bfin.cc
! 962eaa37f4faa425f050c048e42cb991  gcc/config/bfin/bfin.h
! f489763f8e5a7f88f2a8f5bb135b723d  gcc/config/bfin/bfin.md
! c6cd65b0ab67c5768f013d79632f8052  gcc/config/bfin/bfin.opt
  36e8977d5439597ecb609e7bfb848abb  gcc/config/bfin/bfin.opt.urls
! 460f6f8c7312825e412faf0bfd56a4ab  gcc/config/bfin/constraints.md
! d5e62123c34c059dce5c5fb72b89cc3a  gcc/config/bfin/elf.h
! bb8018aceed3b653702dc189464d5c42  gcc/config/bfin/linux.h
! 5868887b14f0586fe7a4e3be8197e703  gcc/config/bfin/predicates.md
! 13836c1d51e095ec2330f73ccfb57b53  gcc/config/bfin/print-sysroot-suffix.sh
! 2804c129e38a952a955bb65f0fbf280a  gcc/config/bfin/rtems.h
! f74104c47ab7aa711f92e9e302c1d2a1  gcc/config/bfin/sync.md
! 24e9fbdf18db30eca5345a072ce948b8  gcc/config/bfin/t-bfin-elf
! 558801baa644e40cf03dadeea1e470f5  gcc/config/bfin/t-bfin-linux
! fa1d3275341aa178a03037f0fb01436f  gcc/config/bfin/t-bfin-uclinux
  6f4817f759fcac5ac27233ee451780a6  gcc/config/bfin/t-rtems
! 99388ee798eba62368ebffdf24603961  gcc/config/bfin/uclinux.h
! e233187445a3e9d1d96e46d169c4032a  gcc/config/bpf/atomic.md
! f564f4fdf8d82c60a526de3aeb908531  gcc/config/bpf/bpf-c.cc
! 5da1b60956f8f62fccf4b5c5d0e0fe9b  gcc/config/bpf/bpf-opts.h
! 989a5af9790ad469a8ad1954f7b9cbaa  gcc/config/bpf/bpf-passes.def
! 9a5cadb0cb322fae6b6177fc361f00c1  gcc/config/bpf/bpf-protos.h
! 404b12a13069ede5289ad6db734105f1  gcc/config/bpf/bpf.cc
! 88a80edc8d111617067abb5a0b95d469  gcc/config/bpf/bpf.h
! 0e05ae54f1a8ca63ad1533179b4b4571  gcc/config/bpf/bpf.md
! d0866c4d53c2fdcec825b3485236d9a1  gcc/config/bpf/bpf.opt
! 7b6aa42f841abd7c9839fec201bb5ddf  gcc/config/bpf/bpf.opt.urls
! 5642edb6fb9afaa9ee550c880d44906e  gcc/config/bpf/btfext-out.cc
! 782a0494eed8e01e100083c5298ab49b  gcc/config/bpf/btfext-out.h
! df3380b38bcdd8189bd3e4a97be7a85a  gcc/config/bpf/constraints.md
! 866de540cedc4eebb8342424548b0569  gcc/config/bpf/core-builtins.cc
  988e922d069a72cea8291afbd9c40fe5  gcc/config/bpf/core-builtins.h
! 4d1ef936262501457c69779265bf23ef  gcc/config/bpf/predicates.md
  3f3bbe48c9291a5679f9d0ecc5c79139  gcc/config/bpf/t-bpf
! a3c3213fe8883de7b32b7c90ad59deb6  gcc/config/c6x/c6x-isas.def
! 2b0fead05b5fb642a8012aa4bd1611cb  gcc/config/c6x/c6x-modes.def
! 84bb22df337743df89fbcf21eebaca1c  gcc/config/c6x/c6x-mult.md
! 68e393b642fffdc634c9b9059a14785a  gcc/config/c6x/c6x-mult.md.in
! 1d2c4abfa8544769f5cedc222c7edf5c  gcc/config/c6x/c6x-opts.h
! 2b5ba5a9a704ee62d343ad2f5c563c21  gcc/config/c6x/c6x-protos.h
! ad18246e4f84f80e236ae641d17726af  gcc/config/c6x/c6x-sched.md
! 335fabdbef31e3ffd5840adc16f3e127  gcc/config/c6x/c6x-sched.md.in
! c30431427fb0a44fad713fd21a91863d  gcc/config/c6x/c6x-tables.opt
  b536f834b2933bc77c0d771ff150df59  gcc/config/c6x/c6x-tables.opt.urls
! 3173d3dfbee6ec80a2d2a179ed199bfb  gcc/config/c6x/c6x.cc
! 7267b7780ce10c11cb2a6d0cacbc89c1  gcc/config/c6x/c6x.h
! 61064f33aa69b68eeb1b39bdfba53cbc  gcc/config/c6x/c6x.md
! e5bf8a6edeb915072216f3de28271bd8  gcc/config/c6x/c6x.opt
  44c7fa05441dbdf34c81d2027338e38b  gcc/config/c6x/c6x.opt.urls
! 5015692e7e4a606c7b9adab2ec1488a6  gcc/config/c6x/c6x_intrinsics.h
! 0fbbbd475eac8967dd49b5a0bd4f461b  gcc/config/c6x/constraints.md
! 251b553bb51b5e694d05d57fcad6bf7b  gcc/config/c6x/elf-common.h
! d453e7b58f8d0b2082d4a0bd6d458f5d  gcc/config/c6x/elf.h
! 6e009f27815dd7f2aaabe2d51beaa9ab  gcc/config/c6x/genmult.sh
! 5a7aac416db1c0752c81fba980896a40  gcc/config/c6x/genopt.sh
! e757e72f9e3fe101cc1ed9b3baca8f54  gcc/config/c6x/gensched.sh
! 7fbf85091b23357d4fb74a19f98aceb7  gcc/config/c6x/predicates.md
! b1f63758a376782d8b4ec3ce20eb0d6d  gcc/config/c6x/sync.md
! be8b34ad8ffdab9eba5425facc1f7d4d  gcc/config/c6x/t-c6x
! aa43c35c0ae5db419161044c2dd507a8  gcc/config/c6x/t-c6x-elf
  428034a210600b6b423dfadb06636e03  gcc/config/c6x/t-c6x-uclinux
! 3fb8651b818b533909a96cf40b54882d  gcc/config/c6x/uclinux-elf.h
! 041c287f0436925cab86d6e71aae7826  gcc/config/cris/constraints.md
! c8b88ac6c665fd095189745df437cf09  gcc/config/cris/cris-modes.def
! 9e4259629bc50331463e6d4b3dd2abcd  gcc/config/cris/cris-passes.def
! 8df4296499456e2e0541e3686a4574e2  gcc/config/cris/cris-protos.h
! 00722ed1eb61536a1500313d1b88ddea  gcc/config/cris/cris.cc
! 6e63163a3a0583da3f0cde44fbd537c1  gcc/config/cris/cris.h
! 777437c05e0d5c5098624f713e52639b  gcc/config/cris/cris.md
! 0dc2ffb20f6fe00475b86380239022e5  gcc/config/cris/cris.opt
  50946b44376ed14014403951a60a6de6  gcc/config/cris/cris.opt.urls
! 3ca310d45dcfeb840e4527e07bf9925c  gcc/config/cris/elf.opt
  b54f8e1c24ac896bed470d9f6cab26fa  gcc/config/cris/elf.opt.urls
! 082fd55e9b3c978281d42a6e1551ee1d  gcc/config/cris/predicates.md
! b7f18e476adf2a636c6bd805bdbee192  gcc/config/cris/sync.md
! 2949c8dc65f53f5c4edc0d7ebe805270  gcc/config/cris/t-cris
! b7c9f60c6322862466d2e753d04385e3  gcc/config/cris/t-elfmulti
! 77cba94e64cbbfecbbed6a79d529cfcc  gcc/config/csky/constraints.md
! 86008bbd6c9ce43c713699b35f12e6a5  gcc/config/csky/csky-elf.h
! 1ed7ff18fc2781b9ed743aeea9fed8dc  gcc/config/csky/csky-linux-elf.h
! e6669d57ebd0f18245040b982a741f22  gcc/config/csky/csky-modes.def
! 4ae2b931fa26b2e93a823c7535e1d5ac  gcc/config/csky/csky-protos.h
! 0be3d32d7318976ad0320936bf02128f  gcc/config/csky/csky.cc
! 1066c7817dd8d4a7ecc2bbe3b35529f7  gcc/config/csky/csky.h
! ea8649fb89342796285f199c5e07568d  gcc/config/csky/csky.md
! 23b0297f4918f983a81b94097281273f  gcc/config/csky/csky.opt
  af957505ebfff6becaa7b030a6aeb610  gcc/config/csky/csky.opt.urls
! f58d69a4d5e84fcd694b3f4dcab37990  gcc/config/csky/csky_cores.def
! 4ee9f8628dc592e71b88fd7f5338e4f5  gcc/config/csky/csky_genopt.sh
! 5a0f275fcb06654aeed7c892fdccbeed  gcc/config/csky/csky_insn_dsp.md
! 1b86f14618b98568d9e711d7dc8a98c5  gcc/config/csky/csky_insn_fpu.md
! 61a83cea5881c5b5e22af51dc527c179  gcc/config/csky/csky_insn_fpuv2.md
! f84d22f0e5fcd3a053337c428dcf083a  gcc/config/csky/csky_insn_fpuv3.md
! 8fe090093be168f142eba1c7a8256172  gcc/config/csky/csky_isa.def
! 1beb0c5f6b0c4d567640fa314e3b0291  gcc/config/csky/csky_isa.h
! fc6e70323bbe250edb38611e786c309f  gcc/config/csky/csky_opts.h
! c66e345d45755b0e891926c832abd582  gcc/config/csky/csky_pipeline_ck801.md
! 1f17beb03586448c4cf6db772dbdd697  gcc/config/csky/csky_pipeline_ck802.md
! 8ec98255d36c4ed38c14bd2f9bbc1522  gcc/config/csky/csky_pipeline_ck803.md
! ba2424cb61041fcdb0830c4b4745f302  gcc/config/csky/csky_pipeline_ck810.md
! fef90eadb54537d055545abc4dd47f27  gcc/config/csky/csky_tables.opt
  0adb5f079721c7b0bfb6fa5b036fd78f  gcc/config/csky/csky_tables.opt.urls
! 2ad17f6f2f41383ae4e0f62fb885ee44  gcc/config/csky/predicates.md
! 02ae64b29837efadab1a1e3f95e1d4e7  gcc/config/csky/t-csky
! f933c7ba771ce9476d266c70acbf222c  gcc/config/csky/t-csky-elf
! 01730ada4a07f2b6a7b9c6bedbe0ec39  gcc/config/csky/t-csky-linux
! aef9384ae90024aef8126c64c575f49a  gcc/config/darwin-c.cc
! 2dbf19574a93063035f610f6be08f11c  gcc/config/darwin-d.cc
! 2ce45aafed3b2287c666fb70786bdcdc  gcc/config/darwin-driver.cc
! 2a024d19058232321d7a1a03335e9894  gcc/config/darwin-f.cc
! a46b54a8716fb1a2a2bd542f2bfc433f  gcc/config/darwin-ppc-ldouble-patch.def
! 8c4a62d056940f746dc7f1d2bec5d593  gcc/config/darwin-protos.h
! 6b3e8e137075b05d643ef7f3dfcc2ca3  gcc/config/darwin-rust.cc
! eea8df8e72788e523a0ef86b62316db3  gcc/config/darwin-sections.def
! cd72f21aae1fd2cf92d25c2d921ba1f6  gcc/config/darwin.cc
! 050f9a4fa3824ceb9aecdab92f03d602  gcc/config/darwin.h
! 9163d8af5a9b48d24237f1dc7cf67e2d  gcc/config/darwin.opt
  7c6d1c1425e31bca754e3318d5b15d32  gcc/config/darwin.opt.urls
! 3902f6d033f77d702a66827bef035d43  gcc/config/default-c.cc
! aba1db25e935696d05e7edbb92b4a9a5  gcc/config/default-d.cc
! 93cc06be8b9adda76ab5c140eb7862c0  gcc/config/default-rust.cc
! 2f0d2baa8babfd189b8cb7e8c4944493  gcc/config/dragonfly-d.cc
! eb87a0f1a8725005ea681f0478cbb7f6  gcc/config/dragonfly-rust.cc
! 0bd8e2defc45c7f1bbc3502c96d0ab78  gcc/config/dragonfly-stdint.h
! f01fb2b02fd44587cfacf67b0f42dcd0  gcc/config/dragonfly.h
! 84ff93439a967e2af5aa03d97487a4e1  gcc/config/dragonfly.opt
  2d1f27bc790d8994ba813be59ce7072b  gcc/config/dragonfly.opt.urls
! 20ed4d40780c62e66161125f4ad1c684  gcc/config/elfos.h
! 1bf6aa9e2229fd137683af672b57ab08  gcc/config/epiphany/constraints.md
! e45ad8462e6bd37fd5391b27ae4a226f  gcc/config/epiphany/epiphany-modes.def
! a68316e51382508b2d562a6afe5cb729  gcc/config/epiphany/epiphany-protos.h
! 3b8b97ef25d50a778883ba2a5364c4eb  gcc/config/epiphany/epiphany-sched.md
! f63bc078b4d43bf4838b3a7eb5bac4a8  gcc/config/epiphany/epiphany.cc
! 7dfe2cb93a23891c028a120b29585014  gcc/config/epiphany/epiphany.h
! ad8db21c57cea738b7569b3a397f7034  gcc/config/epiphany/epiphany.md
! 0593a72b45a7325ddee9ca1e5a6887ac  gcc/config/epiphany/epiphany.opt
  423f06a3ee40a6b6852e5e21c30b8495  gcc/config/epiphany/epiphany.opt.urls
! 918b8e94f764750eb5ecc6a461644e76  gcc/config/epiphany/epiphany_intrinsics.h
! b100c32a316867d7483ec48a85ca7024  gcc/config/epiphany/mode-switch-use.cc
! 4fd90ed9d239babe05688d8b7cc22b61  gcc/config/epiphany/predicates.md
! 7bf11313092085fcabef4e44aaeeaa28  gcc/config/epiphany/resolve-sw-modes.cc
! 901a869259200b9994e7b5c794ba6ab3  gcc/config/epiphany/rtems.h
! 06996f96e2b70379eb4d27faf5d3bf0a  gcc/config/epiphany/t-epiphany
! 082c28265b512a8daab31e7e4ff1acf3  gcc/config/flat.h
! 415766d540ca9434f97c5e2a1b9849d5  gcc/config/fr30/constraints.md
! 4354ff40d0869ca4a871c040b5a321bd  gcc/config/fr30/fr30-protos.h
! 4e943a3bf40aa7b271590e6be529a7bf  gcc/config/fr30/fr30.cc
! 80a1bd8132914b82d9d916f10cf7b0e9  gcc/config/fr30/fr30.h
! 5872a50078894c460d7fb8686afc9a1f  gcc/config/fr30/fr30.md
! d9e8431f0652287f8958cac770fc5aa5  gcc/config/fr30/fr30.opt
  6492ad033c8269ba2e0093c3a143b1a3  gcc/config/fr30/fr30.opt.urls
! 53d441eec144679c2013424640b67178  gcc/config/fr30/predicates.md
! 2ed2bae66f75332c08c4abe16526f9e9  gcc/config/freebsd-d.cc
! 4850b6ee53fb78f952472d41997fe15c  gcc/config/freebsd-nthr.h
! d234704e1f2f1fdbee350ff771dcb73a  gcc/config/freebsd-rust.cc
! 0020ed008e1ecbc953ab798ba5fabf83  gcc/config/freebsd-spec.h
! 47e1d7337d51e8a60ad2c85c3e5e6535  gcc/config/freebsd-stdint.h
! 01f8f7c24b5b495ccba4a3dd23f01cc0  gcc/config/freebsd.h
! 488e926a3e9b1878001977af8163d08d  gcc/config/freebsd.opt
  b4bfc5fa6c82a78a53970e852b99aded  gcc/config/freebsd.opt.urls
! 56e5ea7e466bb0849ea9bb04316c23d4  gcc/config/frv/constraints.md
! 798c695efc5ba3661f3fd421f239f79d  gcc/config/frv/frv-asm.h
! 504aefe4992dc8ded4a3876f8bae845e  gcc/config/frv/frv-modes.def
! 031bc27687a6c91afb87e0dd064637d3  gcc/config/frv/frv-opts.h
! 783561124f3aba86ff86d0b9fbdf8ec9  gcc/config/frv/frv-protos.h
! 4229f643e80992a0e76c503594b7c47d  gcc/config/frv/frv.cc
! 8216c5e1f565ba24f33985dec6e8c5c7  gcc/config/frv/frv.h
! 029630a9fd4b9c3604a481b7daee2598  gcc/config/frv/frv.md
! 554e7de53e31a91662105c72f48c518f  gcc/config/frv/frv.opt
  ef8faf84b26737662fc7790f117b55bc  gcc/config/frv/frv.opt.urls
! 7e598f3d0d1ad9d35f9a121f698bbe17  gcc/config/frv/linux.h
! b91a8bee346702a930583184a11e7dc1  gcc/config/frv/predicates.md
! 48d8d2894978248e9fda6dbd7907d9fd  gcc/config/frv/t-frv
! 15eb08bd9e39e054b1762f93fc380d25  gcc/config/frv/t-linux
! 3b33de5e444f83ef4f09d877b921483e  gcc/config/ft32/constraints.md
! 51c6988d9de659a78b1de6aac2aeec66  gcc/config/ft32/ft32-protos.h
! e72439c25710010b20defb0763a7307d  gcc/config/ft32/ft32.cc
! f49ecffe4142f010febf335b849f9545  gcc/config/ft32/ft32.h
! 73a8c5dfc5e43050590e6d81a5c31d73  gcc/config/ft32/ft32.md
! 88149622c06fe354098c9168c5f75aa3  gcc/config/ft32/ft32.opt
  8a56d9991bfac628d38e804a277c6568  gcc/config/ft32/ft32.opt.urls
! e61dab5fc418912359507aa3053da250  gcc/config/ft32/predicates.md
! e67c464c5291da429735ab3d29b461b6  gcc/config/ft32/t-ft32
! 590fff54eb9943f0bf7507cc4fb55b6b  gcc/config/fuchsia-rust.cc
! 4faf0976acbbfd47418513c4712f8308  gcc/config/fuchsia.h
! 2391b9f4b804e7a3a191d30f92e94d93  gcc/config/fused-madd.opt
  45e1c702124918c893e2ef5ca76ae958  gcc/config/fused-madd.opt.urls
! 43e52fe9f2c64d00f0f65af5ff10e6f9  gcc/config/g.opt
  96050b4b2455697e8f797ff6286b6575  gcc/config/g.opt.urls
! 9fd698fdcb393c697ca83182cde3834e  gcc/config/gcn/constraints.md
! e89c0c1a7b28f107b53b364765ee06a9  gcc/config/gcn/gcn-builtins.def
! b5a03e1dc768bd3a83c1fcb5fc88e685  gcc/config/gcn/gcn-devices.def
! ff3ae1701a0dc72a48dd18a907796d2e  gcc/config/gcn/gcn-hsa.h
! 491ab7557adb9ed61fba81e4f5b96dc2  gcc/config/gcn/gcn-modes.def
! cb4da1b097a7dc73b9762ae68766cca6  gcc/config/gcn/gcn-opts.h
! b395ed990d9e6d7c2698fdd602685d3f  gcc/config/gcn/gcn-protos.h
! 96a52bdb8005bdd8f36552a27a7234d2  gcc/config/gcn/gcn-run.cc
! dc9cd2299212581b55dc79c754b1f032  gcc/config/gcn/gcn-tables.opt
! ca8c1935ac88d760dc3a5b7e97558f28  gcc/config/gcn/gcn-tables.opt.urls
! 23106fa0b82354400a9c82b82a9af33a  gcc/config/gcn/gcn-tree.cc
! 25e18c4eee940de72eb16aff9b3dba27  gcc/config/gcn/gcn-valu.md
! 08dbf475f72b246fcf2f326412546b15  gcc/config/gcn/gcn.cc
! c588bbc37daa440397eb034026bd06f5  gcc/config/gcn/gcn.h
! 02941219664b5bf4a7b3308e467c4c65  gcc/config/gcn/gcn.md
! ea362cc71f1b9679e105d57822167b51  gcc/config/gcn/gcn.opt
  6c96a5ccd826ec5a9ddf7ffe7fda572d  gcc/config/gcn/gcn.opt.urls
! 6d70e3b6694d21aaf0fc6f1764858c4e  gcc/config/gcn/gen-gcn-device-macros.awk
! 0f69ca445a7459fc69ede078e447dbac  gcc/config/gcn/gen-opt-tables.awk
! 8688ea10d62be0da615360f02a547757  gcc/config/gcn/mkoffload.cc
! d6b10bd17eef3ffa35e47afa3e7b730d  gcc/config/gcn/offload.h
! 37e26d22dbc6d4a9b4ffa33405bf1bd8  gcc/config/gcn/predicates.md
! 3af3e12c81a2c9fdbcea0a9d7411c7bf  gcc/config/gcn/t-gcn-hsa
! 04bf0800e77797d18635b2caace79998  gcc/config/gcn/t-omp-device
! 25338efc6cfff6755ab218957744c7b1  gcc/config/glibc-c.cc
! 3d1e26622417691646a5b93d02b50c7b  gcc/config/glibc-stdint.h
! 2f4783597c98a52f3f28cb32b8d39b5c  gcc/config/gnu-d.cc
! 92be7c164d6a0c28f398bccf2e9074ef  gcc/config/gnu-user.h
! e602557b4e8c89be8ed22b2fc769290f  gcc/config/gnu-user.opt
  6b439d9b69b8df92af49c7024df0d474  gcc/config/gnu-user.opt.urls
! d5c6d059a56ac9976955afc9d6ebeae1  gcc/config/gnu.h
  d0a6e969946f8dfa6f2a114d426de2d5  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
  e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
! b010bad757aa01bd9f92af3564cb6384  gcc/config/h8300/constraints.md
  6951bae6ec523668ea56b4c855810ce3  gcc/config/h8300/divmod.md
! 2b2f418b145adaa7471ec5bc9643e97c  gcc/config/h8300/elf.h
  4664439672c5dddfd6148672f30ab54b  gcc/config/h8300/extensions.md
! ddfe3148d7a5affa40d0bdd16b650c5d  gcc/config/h8300/genmova.sh
! 3a51a2d8d990cd6a1ff86d27c2ce6e4a  gcc/config/h8300/h8300-modes.def
! e1a1dc5e56d3c33f2c8b2ae080bf06c1  gcc/config/h8300/h8300-protos.h
! 19f1eed89faecae047ebe6cbfa6526a5  gcc/config/h8300/h8300.cc
! 5f8540e1b87966089e98fd995ca65310  gcc/config/h8300/h8300.h
! c98efa4d243ed51c1105702ae383adea  gcc/config/h8300/h8300.md
! 9a792c25cddc1e8f38af22104362cb69  gcc/config/h8300/h8300.opt
  7950bf0c1ee6b8ccc34ec33806c7b7d9  gcc/config/h8300/h8300.opt.urls
! 2f960720610566a829f3568d6ffec027  gcc/config/h8300/jumpcall.md
! a6811f2f47d8c10c82edbfe6b0e5d6c1  gcc/config/h8300/linux.h
! 58f7f56ceec868a6a25ba54adaf00b61  gcc/config/h8300/logical.md
! 51d196eafc160208ae48bcb8f79227ab  gcc/config/h8300/mova.md
  d329c98204120e78e720acd16234ad63  gcc/config/h8300/movepush.md
  6497e83ede4f1f9ec82eb6a07ba6f856  gcc/config/h8300/multiply.md
  56b9e51103f6a9c3bfc3777663b9a4f7  gcc/config/h8300/other.md
  e673e4aefe8a67834929eb43e99ac3df  gcc/config/h8300/peepholes.md
! 8523141712a5ab60797f61addcece959  gcc/config/h8300/predicates.md
  229fc2c8a83deb14625c4ee888cbb642  gcc/config/h8300/proepi.md
  daa266a3eae63ee1e65cb8c441f4c9c2  gcc/config/h8300/shiftrotate.md
! 7a8c3fa232e2e4125e6a42ea4a2d1b1d  gcc/config/h8300/t-h8300
! 1e333b71f535dfd65c8d7be9bdcf002e  gcc/config/h8300/t-linux
! 54f7a114e1b52879111da340a224b971  gcc/config/h8300/testcompare.md
! 21ae4d10a5e530ab9d7691bfc15dedda  gcc/config/host-darwin.cc
! 6d5f986a4fee5caa1090486b3900bb8c  gcc/config/host-darwin.h
! 80c78df4abe8b1c2900cd2e52c6a7e07  gcc/config/host-hpux.cc
! 028978e616365d1b3dc31ea38c95c518  gcc/config/host-linux.cc
! 89f66c69d44a40765376105d6e078775  gcc/config/host-netbsd.cc
! a112c8cec7f9205c2bc74b1d6ae537f3  gcc/config/host-openbsd.cc
! de86ea7f8889819b1256ec152b239a8a  gcc/config/host-solaris.cc
  2c191e2d8d033611c6fccc8362d9e8f0  gcc/config/hpux-stdint.h
! dae6c9115b5058fd917b309ee79438a6  gcc/config/hpux11.opt
  6fb8f575d2ba05a77e86b2a4670259bb  gcc/config/hpux11.opt.urls
! 615ede3e03ebc06635041469a862accb  gcc/config/i386/adxintrin.h
! 21cbb29f86ff25a147e5d677cb9053d1  gcc/config/i386/ammintrin.h
! 0f365c56840eb3944f31396f5b334fae  gcc/config/i386/amxavx512intrin.h
! db371b3bae058228fd1afba4355902d7  gcc/config/i386/amxbf16intrin.h
! 7f1c0051b6d17dab9f258187c7b9cc3e  gcc/config/i386/amxcomplexintrin.h
! e881567a284d0c4c6fd23ecaecaa29f7  gcc/config/i386/amxfp16intrin.h
! 0e0ea58145b6e2eb7763bd3455cea60c  gcc/config/i386/amxfp8intrin.h
! 86643835c40c95bff80d14e5c7a39263  gcc/config/i386/amxint8intrin.h
! 19b2b3866a28248586bc8f858adacdd5  gcc/config/i386/amxmovrsintrin.h
! 7627351f7405eceb02c9e7d73da70fa5  gcc/config/i386/amxtf32intrin.h
! 718d242a1b62ceb6aa2c434c663400c4  gcc/config/i386/amxtileintrin.h
! 4739b13293a8cea0e9a3201a3a472ce6  gcc/config/i386/amxtransposeintrin.h
! d5344f5586a4fdddcf32cfad79672651  gcc/config/i386/athlon.md
! c7639653fc509c53955783e5c3d3ed63  gcc/config/i386/atom.md
! e4ad129bfdb387d691c45180574d648e  gcc/config/i386/att.h
! 530845165e814163a34b6e6782763ea6  gcc/config/i386/avx10_2-512bf16intrin.h
! ecc1c16f801882fa2e1ed99c97694993  gcc/config/i386/avx10_2-512convertintrin.h
! 36c896a4416082bcb046eb2b200a71c3  gcc/config/i386/avx10_2-512mediaintrin.h
! c2d107314aa5790478bb819993a09aa9  gcc/config/i386/avx10_2-512minmaxintrin.h
! a9c0fdd5dbcb4b5619b2b59aff7f21ff  gcc/config/i386/avx10_2-512satcvtintrin.h
! d9fb23a5076ec2994e9413c0c6ad9627  gcc/config/i386/avx10_2bf16intrin.h
! c2a3fe52895b1689c1c46af985a10daa  gcc/config/i386/avx10_2convertintrin.h
! 284b65d9f14985fcf610d8d1a59a3b88  gcc/config/i386/avx10_2copyintrin.h
! e982b5c4c994f88d7dbf190bc95d301a  gcc/config/i386/avx10_2mediaintrin.h
! 93ae3650d874a59c2d485f29e70de7c3  gcc/config/i386/avx10_2minmaxintrin.h
! 76fca18019ab697cc45565b2a2943e86  gcc/config/i386/avx10_2satcvtintrin.h
! 3f8272d8581e1bde11dd3f83be612b91  gcc/config/i386/avx2intrin.h
! fe68438cc28695e7cdc08fb1954473a6  gcc/config/i386/avx5124fmapsintrin.h
! 269bc88329fe3299cb64cf24f0f85b4a  gcc/config/i386/avx5124vnniwintrin.h
! 80ead52d90457a96977d9482f1254b8a  gcc/config/i386/avx512bf16intrin.h
! e9b9358b628e4040b334ff032d0cb784  gcc/config/i386/avx512bf16vlintrin.h
! a9963c0b128642f52978c8cb2d32a68c  gcc/config/i386/avx512bitalgintrin.h
! c1fc31ec69b0065086d103b08aca2f23  gcc/config/i386/avx512bitalgvlintrin.h
! 546c407b866a77d9240a3a5727b48ec3  gcc/config/i386/avx512bwintrin.h
! ae1b4c6f7035a7fc66f800cdedd78c5e  gcc/config/i386/avx512cdintrin.h
! fb2e991ddb8de2529d8960917b1cc83d  gcc/config/i386/avx512dqintrin.h
! 05b3938836c9d1ace98da5f3d10ae80b  gcc/config/i386/avx512erintrin.h
! 72a4402f7b627fc345c910ea9995fc17  gcc/config/i386/avx512fintrin.h
! ae7f11115b7c5e36ce7237c09c80809b  gcc/config/i386/avx512fp16intrin.h
! acb15109c41ed9f0e033dcd858cadf41  gcc/config/i386/avx512fp16vlintrin.h
! 647554a4a9e084e9fe896d356d43d103  gcc/config/i386/avx512ifmaintrin.h
! 300920112d2fe5bdee006dddf5624253  gcc/config/i386/avx512ifmavlintrin.h
! 3f0e65318cf0d058fa5cf1169a299797  gcc/config/i386/avx512pfintrin.h
! 33a531dc31ce0d1c85f5f8c22ca63320  gcc/config/i386/avx512vbmi2intrin.h
! 02eabd21f8dab7e2b4b03ff027ae918e  gcc/config/i386/avx512vbmi2vlintrin.h
! a95e559cafcbe1707116b6aaccee4cb7  gcc/config/i386/avx512vbmiintrin.h
! 2df836c25fd2c0499d2ebcc4536111c8  gcc/config/i386/avx512vbmivlintrin.h
! 84d3ca871407c95e349add7bfe30992f  gcc/config/i386/avx512vlbwintrin.h
! be67a6aa9595b3464c385b45434405f6  gcc/config/i386/avx512vldqintrin.h
! 15504f73f1b3d9c979c60a7310d6e49d  gcc/config/i386/avx512vlintrin.h
! fb58bf09bd9dd3cefb0ec1bd2deb7a81  gcc/config/i386/avx512vnniintrin.h
! ce066eeb43746666f7e3e5188c11e95d  gcc/config/i386/avx512vnnivlintrin.h
! ead9494b72066feb1de3238755795127  gcc/config/i386/avx512vp2intersectintrin.h
! f063234c437657749130fe13b8e8abfd  gcc/config/i386/avx512vp2intersectvlintrin.h
! cadf5277c07439c1a3607114fe438249  gcc/config/i386/avx512vpopcntdqintrin.h
! 42dbd0c7fe569ba29707bf1304978d08  gcc/config/i386/avx512vpopcntdqvlintrin.h
! 494d53ace84e57b34fe580b6278043f7  gcc/config/i386/avxifmaintrin.h
! 4816ed469267de0a8cb214de7fe772ff  gcc/config/i386/avxintrin.h
! 37040c1c84cf60b51c61056a8dc8ff8b  gcc/config/i386/avxmath.h
! a2d1a8eab103f83f74bd905fa1ba435c  gcc/config/i386/avxneconvertintrin.h
! 3830ea236dda98396210059e5c4f514a  gcc/config/i386/avxvnniint16intrin.h
! 47375cca9ec6629973b1f3968d0f51f7  gcc/config/i386/avxvnniint8intrin.h
! b8a6517bdcc2b15c57797549c21b9bf3  gcc/config/i386/avxvnniintrin.h
! 511cc3c79d958fc4d7e3b441e7b78132  gcc/config/i386/bdver1.md
! ee7daa62f72913328d9bbce6f6104525  gcc/config/i386/bdver3.md
! 5fba0fb595d4d0be374b5f4c2896bc03  gcc/config/i386/biarch64.h
! 3632b32c4f01f1d1f33d241ed13f6592  gcc/config/i386/biarchx32.h
! 60372a8fd0c1252e6dd354a8f70de946  gcc/config/i386/bmi2intrin.h
! 839adc968e8f8c48054184df9280d70d  gcc/config/i386/bmiintrin.h
! fd2e2448cdce070eb502784965147928  gcc/config/i386/bmmintrin.h
! 949af21b3db1fdcaa9d0734c717e9c23  gcc/config/i386/bsd.h
! 7c0695349cbdcec9d10abf16d9ed2d80  gcc/config/i386/btver2.md
! 0bc98deaf2ca7ae399c3ff90bb6fafe6  gcc/config/i386/cet.h
! 1fd3799a9cce4dbbc1b377737dd0d416  gcc/config/i386/cetintrin.h
! 72275980bf46840ca8c1bee56c3dd7d4  gcc/config/i386/cldemoteintrin.h
! 8b5659d4519e943dc060062a0359ec33  gcc/config/i386/clflushoptintrin.h
! ed2254bdda3903cf7bffcad423af98ae  gcc/config/i386/clwbintrin.h
! 9a1d2d911b83d9db299f15862a91d415  gcc/config/i386/clzerointrin.h
! 5ad53873fee13ffe31a50e133663fd9e  gcc/config/i386/cmpccxaddintrin.h
! 62c57c7c63efd8b0c33fbe1e6fcb5a60  gcc/config/i386/constraints.md
! 4dd937d3024e34071e1f77d6d1cec027  gcc/config/i386/core2.md
! 3880d2a102ee1c35b73e26dea425f8ed  gcc/config/i386/cpuid.h
! f700a1d35423658eaa2b4908da695bda  gcc/config/i386/cross-stdarg.h
! 82964c7428d66bf1874c63a65b858957  gcc/config/i386/crtdll.h
! 9640ba51f41c4a00ab90d86da61ff463  gcc/config/i386/cygming.h
! f2a2f556815a6dc38e47cca165d51ea3  gcc/config/i386/cygwin-stdint.h
! 1868c3b9e51f09941105430ebd8c2286  gcc/config/i386/cygwin-w64.h
! 47570db058e06dc2ab076ed2f9cf4242  gcc/config/i386/cygwin.h
! baccc67bdfa36bfd53f4621698b28cc8  gcc/config/i386/cygwin.opt
  3b362955aab83912528fe683b571c289  gcc/config/i386/cygwin.opt.urls
! 081646c0513bd6db4bc2eb634db5b260  gcc/config/i386/darwin.h
! 1939d9713f504f23430deccb7310c27a  gcc/config/i386/darwin32-biarch.h
! e66c45383bb4c57e5b8db04f93dd63ee  gcc/config/i386/darwin64-biarch.h
! 0eed7e03680cb977f907c30e5e179f47  gcc/config/i386/djgpp-stdint.h
! 5a72872a862d416289988ad13c8dca71  gcc/config/i386/djgpp.cc
! a2bf0873375fc2ab681bcd55a2b23e26  gcc/config/i386/djgpp.h
! a5346c37d189bcadf27fd946fe2c2566  gcc/config/i386/djgpp.opt
  1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
! 0ada511dcea9cb884e7aed714cecb141  gcc/config/i386/dragonfly.h
! fee6d2534a6e114692c649906a840579  gcc/config/i386/driver-i386.cc
! 8db059b2a4621231dcdc591159eace91  gcc/config/i386/driver-mingw32.cc
! 436804c1d1ef71b2a318f01e7e91c190  gcc/config/i386/emmintrin.h
! def0edea16aac07cf3e0e7d2daf27455  gcc/config/i386/enqcmdintrin.h
! 120888bb5b1b1b294c913a6310ec6093  gcc/config/i386/f16cintrin.h
! 165f68798c8a07da59f7d78a25cc37ce  gcc/config/i386/fma4intrin.h
! ddd8f78cd81452b36fe673d9d704bd2b  gcc/config/i386/fmaintrin.h
! e108c439db2df07c2f3568b86334ec16  gcc/config/i386/freebsd.h
! 7bcbd255d807f30c40460ae60fb9ac0c  gcc/config/i386/freebsd64.h
! 33b49ebfc38cdd3aec432be462771030  gcc/config/i386/fxsrintrin.h
! 633192932be295b101e6b91080050160  gcc/config/i386/gas.h
! 23aca983be5fc469ede4a142e9209e33  gcc/config/i386/gcc-auto-profile
! cf7550e185f085130597d96f3f750f56  gcc/config/i386/geode.md
! e3e4c1c0ab1eada4ce85ea1b7027b980  gcc/config/i386/gfniintrin.h
! 880c7b716fd97054162f5aa17551d9fb  gcc/config/i386/glm.md
! e8c6dfb76bfeef3e0c5e0213e90b208e  gcc/config/i386/gmm_malloc.h
! 5b54bf669fa632b792f0126b87c43855  gcc/config/i386/gnu-property.cc
! 3df9fd1f92670c26aadba8ea28e7f507  gcc/config/i386/gnu-user-common.h
! c6e7e046ba08434a7b6853f89a14dc0f  gcc/config/i386/gnu-user.h
! 63a59aaa93827fec9bd814d55ea04d99  gcc/config/i386/gnu-user64.h
! 1e972279ab1e8cc1d1a96a4da75d7317  gcc/config/i386/gnu.h
! c242989ba84f31157338b4714b4248e1  gcc/config/i386/gnu64.h
! 2afb8c15e388bbdb218228ca7c8afb72  gcc/config/i386/haswell.md
! ebf8fdac06861901e2744eb4d97b15c5  gcc/config/i386/host-cygwin.cc
! 3d9c9e8494474be5ac7db986b95cbdcf  gcc/config/i386/host-i386-darwin.cc
! fdf4ae0ccca294b8f1ce4d53f2bbf5fa  gcc/config/i386/host-mingw32.cc
! c527fd639b424e1e0a95494e13e8cad2  gcc/config/i386/hresetintrin.h
! 597ec35a360b8b37f5d1e4483b508834  gcc/config/i386/i386-builtin-types.awk
! 5090ae3207d0bedc79ecdcec7c2cb71b  gcc/config/i386/i386-builtin-types.def
! 5d41403b2bcce8b60a14478d49fc1d63  gcc/config/i386/i386-builtin.def
! e772636bf04161d74c6568f788415fe3  gcc/config/i386/i386-builtins.cc
! d3fb594d11281112ff8d8f304a000c4e  gcc/config/i386/i386-builtins.h
! b1d3b888c9cd80df50837a2c205587f2  gcc/config/i386/i386-c.cc
! 54909bb70e074c14dcf4499a5baedc54  gcc/config/i386/i386-d.cc
! 172dcd61afc5800b61ebb688838d9adc  gcc/config/i386/i386-d.h
! eec975e5d0b28a6fae8c54905cb7ad87  gcc/config/i386/i386-expand.cc
! c9c3969c00808c9b6809fbeab3e4a1d2  gcc/config/i386/i386-expand.h
! ba79dc9cffbca47e10d361aeb3d716f3  gcc/config/i386/i386-features.cc
! 94adc181549d171cf2618530e3b49ff7  gcc/config/i386/i386-features.h
! 6eb6541c33da88d0910200287b50cdff  gcc/config/i386/i386-isa.def
! 795643c7d23acf02568d7fa7acad0138  gcc/config/i386/i386-modes.def
! 2416c5636e515b0240835120ca4cf86e  gcc/config/i386/i386-options.cc
! 08c877d750ab52ddb4fe7c99c90d62de  gcc/config/i386/i386-options.h
! 02c486451c524cfc143358e07b88cd70  gcc/config/i386/i386-opts.h
! 690c3ac09dc36dc8e7f82bad277ec24c  gcc/config/i386/i386-passes.def
! 61be2a2d82505e25cba1c31eb256bf7a  gcc/config/i386/i386-protos.h
! 5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
! b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
! 24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
! 4758fbc45fef6520498368a4f45204ad  gcc/config/i386/i386.cc
! d790ec5beb9150df85ac6b6a2429226d  gcc/config/i386/i386.h
! d4e557b6ba18e231a2dc2ac9d88f69fb  gcc/config/i386/i386.md
! 5a3c6fa6266505bbc0789e269da6e250  gcc/config/i386/i386.opt
! 56dd2039e03b3ae92142eb68be464b98  gcc/config/i386/i386.opt.urls
! f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
! 12088706f0584b21b2bf165c3cde88e8  gcc/config/i386/ia32intrin.h
! 116503ecbb821bb13293049d85a641f9  gcc/config/i386/iamcu.h
! d12d9311d16a9670fc2aedc12471da02  gcc/config/i386/immintrin.h
! 619372cf439740085d314ec3bd4aaef7  gcc/config/i386/k6.md
! f25ac919a919b558d8b3364eb84ea8d0  gcc/config/i386/keylockerintrin.h
! dea7969b20f10da9e23e939ae4566e50  gcc/config/i386/kfreebsd-gnu.h
! 89ff6bc20550167264f7b15cbe50d57f  gcc/config/i386/kfreebsd-gnu64.h
! 74ef553c3461c12497ca6b1098b21980  gcc/config/i386/kopensolaris-gnu.h
! fe09817ef3f09110befc70653a039b66  gcc/config/i386/linux-common.h
! b3c675bf95c4bfb9a44c0f8ba7ee47ae  gcc/config/i386/linux.h
! 9e565c67e5ada35e1219b67a451d7fee  gcc/config/i386/linux64.h
! 08df9142597f87c2379b8226def2de22  gcc/config/i386/lujiazui.md
! c2165a933e72c8ff5930808eb7d4446a  gcc/config/i386/lwpintrin.h
! 7bb5e3a5f2c043588d3866426bab18e0  gcc/config/i386/lynx.h
! ed333f54a6c155e59371a8344665d310  gcc/config/i386/lzcntintrin.h
  fefe46f8b06de933480400b9f58e9d31  gcc/config/i386/mingw-mcfgthread.h
! 02331dcaf7ba9b6bc8ff6c12a49e1a53  gcc/config/i386/mingw-pthread.h
! f15835a52dd9ce3ba6034b7405190710  gcc/config/i386/mingw-w64.h
! a0eef2ed8deb81df9cde53071094d3ff  gcc/config/i386/mingw-w64.opt
! 55b88c976269e37a537664690c4fab53  gcc/config/i386/mingw-w64.opt.urls
! b68f60806cbb24b711d235b8e446a62a  gcc/config/i386/mm3dnow.h
! 783259947fde0f03f564d0e19ad27e23  gcc/config/i386/mmintrin.h
! 9cfe853ffa46db93a7b220aa724b4fbd  gcc/config/i386/mmx.md
! 800d6b8630ece4412e7cc8572552812a  gcc/config/i386/movdirintrin.h
! a60aa400230276b237aace7baf1becdb  gcc/config/i386/movrsintrin.h
! 0a902dd4d4e82e9bf2831a3848a102ed  gcc/config/i386/mwaitintrin.h
! 3d24afa029c875b35b7184a4c6242f1a  gcc/config/i386/mwaitxintrin.h
! 667e4bf502467f0cc5599789876de716  gcc/config/i386/netbsd-elf.h
! f5a1e566d5e493af9985fd48dfc87c0d  gcc/config/i386/netbsd64.h
! f79614e7de80c86279c1542960583d3c  gcc/config/i386/nmmintrin.h
! 7424d213ef1c2d12bfeec0f19037b46a  gcc/config/i386/nto.h
! e30433a428a99531b2e82201b4e4e9c4  gcc/config/i386/nto.opt
  229c4c48ca14c2b8202dadc4fc13f8d5  gcc/config/i386/nto.opt.urls
! fdee55c900828ce2f0e8a624c6f69815  gcc/config/i386/openbsdelf.h
! 37bda6b4a5d668e13d4906c122ea2b58  gcc/config/i386/pconfigintrin.h
! fc41e4ebf77dd1f54ddeec4e60428d5e  gcc/config/i386/pentium.md
! 8802364fedcf1cc582c9892fbb0c3ddb  gcc/config/i386/pkuintrin.h
! 57f70ddf09a0149012e58a9141e0ebcf  gcc/config/i386/pmm_malloc.h
! 1d9e8c2f64fa31f36bfe9ac83a296943  gcc/config/i386/pmmintrin.h
! 62337355ef8c4334a0cc9c1db0cfc0da  gcc/config/i386/popcntintrin.h
! d17b84bc85c341e7f386b3b24b231070  gcc/config/i386/ppro.md
! 10402fb0e9d35e3f08914ef6a684b9c7  gcc/config/i386/predicates.md
! e10e34eef814ce6c5e09777d378d36d3  gcc/config/i386/prfchiintrin.h
! eed7a3601ce61f497dcfc5655e5da7a6  gcc/config/i386/prfchwintrin.h
! bc11b09d2de8ba6b9ec2392f1cebdbd9  gcc/config/i386/raointintrin.h
! b72397d6e45ad1c7091264be575727a8  gcc/config/i386/rdos.h
! 9b1b5d038984ccc3cc39c128d1e9ace1  gcc/config/i386/rdos64.h
! b9f90e1805a2ad84a5660ee99d0048af  gcc/config/i386/rdseedintrin.h
! 4023d47f6950007132f2e1d37779fb93  gcc/config/i386/rtemself.h
! 33619e56d7081b0e013a6c93d92956c6  gcc/config/i386/rtmintrin.h
! 74222fcc3bb803bd4b3c194498102554  gcc/config/i386/serializeintrin.h
! 67891d5ab13e2d1be0e7fe60a8ab94c4  gcc/config/i386/sgxintrin.h
! 072dfc5086009f3aaded6955e7e7fc65  gcc/config/i386/sha512intrin.h
! f079cf31c944955a38bc7ad5b3bdc83f  gcc/config/i386/shaintrin.h
! de4e89bc042c6bc7eb093bda5d33a266  gcc/config/i386/slm.md
! 8de7167e1276b863c6acf2d3e926bc67  gcc/config/i386/sm3intrin.h
! 380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
! a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
! f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! abf173881f0b155f76aebc9287697db8  gcc/config/i386/sse.md
! 7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
! 7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
! 9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
! 2a84ed8a951f2f1e435de73fb73d742a  gcc/config/i386/sync.md
! c9f457d07826bec76777f7d4483326a7  gcc/config/i386/sysv4.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/config/i386/t-cygwin-w64
  98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin32-biarch
  8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64-biarch
  633a95f7feb14d4eebe0039fa5ef4dec  gcc/config/i386/t-djgpp
! bfce0741b4157dab2734c88b0a42a566  gcc/config/i386/t-freebsd64
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
! 8a0703695af84c4d4050ae0c3c47f71f  gcc/config/i386/t-gnu-property
! 5f00ff20927ce5e55e35aa7e7df7168a  gcc/config/i386/t-gnu64
! 1ec007707f7edc0962c92bee11f7c364  gcc/config/i386/t-i386
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
! 2ac3998e22726df7c772f870fe946ff2  gcc/config/i386/t-linux64
  cd662e746e08a18749e8272fa759278e  gcc/config/i386/t-mingw-w32
  67bcf41f125bbec93a13ad3bd98abaee  gcc/config/i386/t-mingw-w64
  12a68576d3577a8da82089f18d60c613  gcc/config/i386/t-pmm_malloc
! 07b4058c2eac74142c40d09b5bfdbe41  gcc/config/i386/t-rtems
! 3bf0a0ed7035ec76fc17ee9bfa631331  gcc/config/i386/t-sol2
  6c6dc6647856991d7275637384be6c03  gcc/config/i386/t-vxworks
  b80a5a4a8c8fc32ca318158abc98dc20  gcc/config/i386/t-vxworksae
! 70b32439cf2aa7cc3fd339a8d3444c02  gcc/config/i386/tbmintrin.h
! dba23b639d302d02c0b068e15112d12c  gcc/config/i386/tmmintrin.h
! 3de3007ae16997294ff5afd9ae9ed1c5  gcc/config/i386/tsxldtrkintrin.h
! a9a16c9a0392331206ab87b0f5ada2a4  gcc/config/i386/uintrintrin.h
! 63bbd60b280c8122cecb0a068842e3a1  gcc/config/i386/unix.h
! 3ac34e7abde394a27cd919a4963c7165  gcc/config/i386/usermsrintrin.h
  81edd33206e44c8dbcd4165f97407774  gcc/config/i386/utf8-mingw32.rc
! bb7fbe1711b8d69830d191e068afd925  gcc/config/i386/vaesintrin.h
! 224c0033cf3aafdb6428207c347474da  gcc/config/i386/vpclmulqdqintrin.h
! 4087526e72b1416518a691cd91b2ccf2  gcc/config/i386/vxworks.h
! 57e5a1fc82f45eb8a7bd1ab0cfdc7da0  gcc/config/i386/vxworksae.h
! 3b21f19e6c48a18aad5fd22fb4332936  gcc/config/i386/waitpkgintrin.h
! 0226255b4141c460aa633af6ffad86fd  gcc/config/i386/wbnoinvdintrin.h
  b60494d53d08e39def55bcf62076b56c  gcc/config/i386/winnt-utf8.manifest
! a4ec2c78b6a1042465b12e36133be24a  gcc/config/i386/wmmintrin.h
  b4cde95b709fc93c90bf4d6b3edc7fd0  gcc/config/i386/x-cygwin
  1ab2099a92787dd158135dbcaceb0bf9  gcc/config/i386/x-darwin
  8d6956f3535d501680a321eb01dafb35  gcc/config/i386/x-i386
! 78c5d4aaa3e531354ff15f5de8bbe5f6  gcc/config/i386/x-mingw32
! 1453972221e67e9b66910b97c6444e98  gcc/config/i386/x-mingw32-utf8
! 458dd4e367214623fc01b5e796d65485  gcc/config/i386/x86-64.h
! d4774d1c1bf66446a29da4693ee53d1e  gcc/config/i386/x86-tune-costs.h
! 17e3f95274600e3d41c671903847d8ec  gcc/config/i386/x86-tune-sched-atom.cc
! acfa3e6ce1f37bbad35e49e06b663ea9  gcc/config/i386/x86-tune-sched-bd.cc
! 13fcb5234b2d8208c12932d96efef72b  gcc/config/i386/x86-tune-sched-core.cc
! 9054e39f9f68ade31cfdeb33e9c905ce  gcc/config/i386/x86-tune-sched.cc
! 9263650597b539b276f42a4e4082c883  gcc/config/i386/x86-tune.def
! 95b91fd21504348ecd2f8510ebab204c  gcc/config/i386/x86gprintrin.h
! 1ef1746c703bfdb9c245f7b7276b7d56  gcc/config/i386/x86intrin.h
! 709155b5a0371d397baf22295493b77b  gcc/config/i386/xm-cygwin.h
! defa9e0464eba862bed3764716650f29  gcc/config/i386/xm-djgpp.h
! bae94af26195c7e64a5f59018ab9df85  gcc/config/i386/xm-mingw32.h
! 9463d0d50e39a1dff707b4a422f44f1d  gcc/config/i386/xmmintrin.h
! 368186e4aee42c25c7031e2fcaa4c3fd  gcc/config/i386/xopintrin.h
! c59d69078b2dfb5edefbca0d79268e54  gcc/config/i386/xsavecintrin.h
! 97f252ad13e5079471073dcf6ad3030c  gcc/config/i386/xsaveintrin.h
! 3f95ba52a660d1b137056744c17aebeb  gcc/config/i386/xsaveoptintrin.h
! 6339604d2cf403dbe55f16cf80e73530  gcc/config/i386/xsavesintrin.h
! e7fb893c4967d4c0cdc656483ad407b0  gcc/config/i386/xtestintrin.h
! 8e1cb71b1f6d11db84cbd3d0122b8dea  gcc/config/i386/yongfeng.md
! 7afd4978f53bac0895b747972a73484d  gcc/config/i386/zn4zn5.md
! 7f597ab7db109270c23145fc7a775d39  gcc/config/i386/znver.md
! dabd46d8d11b582511ab8f2abb3c9a06  gcc/config/ia64/constraints.md
! bc8dd76d852d2ad19d13910bd765c798  gcc/config/ia64/div.md
! bbb558d933142254b80023d99c827218  gcc/config/ia64/elf.h
! a1aa2760dafd21db8bfbe79f8c4bcfa1  gcc/config/ia64/freebsd.h
  89edd175b4bfe583ec3ee965092fd5d0  gcc/config/ia64/hpux-unix2003.h
! 7c85dea21ff54e80ea328592cb27e252  gcc/config/ia64/hpux.h
! 78cbbe243dfaefad0db431df9dcf7a5b  gcc/config/ia64/ia64-c.cc
! 4df0e9ba2dfafa2d5109b39cf13cbd19  gcc/config/ia64/ia64-modes.def
! f3c2c84ac99eb84969bb9952ee3bcb7f  gcc/config/ia64/ia64-opts.h
! 7d7403d445b6f38f01052779ab1aa51f  gcc/config/ia64/ia64-protos.h
! f95256ef643781b06514de24b4796d67  gcc/config/ia64/ia64.cc
! cd2d7209d26cd7cd5a37a4a0d74960c8  gcc/config/ia64/ia64.h
! e7a3136b64591d1141a08e1e05a8b378  gcc/config/ia64/ia64.md
! 867fd3016d695a0a0b9e3a80dffccbff  gcc/config/ia64/ia64.opt
  118eccd8e7953b64c3bbb38384de55db  gcc/config/ia64/ia64.opt.urls
  dcc77d7023d20b64688bf213c2d327b5  gcc/config/ia64/ia64intrin.h
  4b86fa74a7636ffdb9787a8643220eec  gcc/config/ia64/ilp32.opt
  c123eb5a542afae24ac8defb18f961f8  gcc/config/ia64/ilp32.opt.urls
! 38636ddbfb062a023fa513b1f7dc8798  gcc/config/ia64/itanium2.md
! ef2d6c431068cee6bf3bb0c9d24288ff  gcc/config/ia64/linux.h
! 76868d4c5483d5cc465e75fb5fedfa3b  gcc/config/ia64/predicates.md
! 8c93d844105c95d8961cece2866720f4  gcc/config/ia64/sync.md
! 5cf5724863c5dd3324d799d8a15d84c3  gcc/config/ia64/sysv4.h
! ecaa6d1a2c30fba3c56e89ca7d54ae99  gcc/config/ia64/t-hpux
! f727548db89e270dc9ece47dd7d46ddc  gcc/config/ia64/t-ia64
  67736f64800d10923b58be4e448620d6  gcc/config/ia64/t-linux
! b305363f67b7e924adbe9495b6a63c2f  gcc/config/ia64/vect.md
! c59b021857c4ea97ba8f9e0e659750af  gcc/config/ia64/vms.h
! 28bcb4018d74e5422734cd483d8c4af9  gcc/config/ia64/vms.opt
  58c641df71a1f8993f6e5e1bfaac466d  gcc/config/ia64/vms.opt.urls
! 2da74587d87e1dccef4993efcb93596f  gcc/config/initfini-array.h
! 3d4640178f9da2332dfd75f61a73be6c  gcc/config/iq2000/abi
! 685e29733ee61cb8091502f8fa75bcaa  gcc/config/iq2000/constraints.md
! cc9c590380f665609f88de2774148399  gcc/config/iq2000/iq2000-opts.h
! 7c4690861c8e829afa3a9241a82c67e1  gcc/config/iq2000/iq2000-protos.h
! 773cb7e6a0af86b1d554732cc6cd5c6d  gcc/config/iq2000/iq2000.cc
! 5f2958e91ea3e4494be6122d6b4b2005  gcc/config/iq2000/iq2000.h
! 48ab769c30e15efb2fa131e09b879d64  gcc/config/iq2000/iq2000.md
! ef8827efa9627edc117b90b3cf25db4c  gcc/config/iq2000/iq2000.opt
  5ddaa4d82bc6f1b1e52472e3b03c1f96  gcc/config/iq2000/iq2000.opt.urls
! 28baa2d65726a5b628b709990a776a36  gcc/config/iq2000/predicates.md
! 536e98908e0d40432335e897fcfb1aed  gcc/config/kfreebsd-d.cc
! 4eaaa587b73f5a5cab85be8ba3a0fb0d  gcc/config/kfreebsd-gnu.h
! 10efdf6a5ddcaee4d18c8a8e15988c05  gcc/config/kopensolaris-d.cc
! 0db22432bef790a776f7db7c7b682a65  gcc/config/kopensolaris-gnu.h
! ec55fe466be82b76d97c22788d09fb39  gcc/config/linux-android.h
! 06911e4fcf5ef338158760629855eb7c  gcc/config/linux-android.opt
  39159899219836ff091187e768ce6675  gcc/config/linux-android.opt.urls
! 39d832e970d91db45c0daca23a7f22a3  gcc/config/linux-d.cc
! 240996b043fca954003df961bd1128eb  gcc/config/linux-protos.h
! 9b86db34cb2fb3cf57b531b47f6c24c3  gcc/config/linux-rust.cc
! eae6c5f0463f5754dbfeeb9c4e2902f3  gcc/config/linux.cc
! d592e4325cac65e0f5f226e8b606de08  gcc/config/linux.h
! 69861f86f5eeb688a677d111876b6752  gcc/config/linux.opt
  0e0d7a8230d05f9b8b796bdcfd935d94  gcc/config/linux.opt.urls
! 32a51d4cbb5d860eb6b4e577b312e7a5  gcc/config/lm32/constraints.md
! 1c9e54ef491f76e4a9fb84331989b98a  gcc/config/lm32/lm32-protos.h
! 238662a95810a51f01716c18586a8e22  gcc/config/lm32/lm32.cc
! b61c7daa89fcf657c991f7e1ea4f98cc  gcc/config/lm32/lm32.h
! f657f3aa901b2401d8310aedc1086a14  gcc/config/lm32/lm32.md
! 742ab74e9d6a559bcff5bf185413799c  gcc/config/lm32/lm32.opt
  27e82783778bb7f706fa85a3c551f6a2  gcc/config/lm32/lm32.opt.urls
! 4827e7b60ed769433c062a453decf3f2  gcc/config/lm32/predicates.md
! fdc0b83b9dafbea2480c0a1207f45509  gcc/config/lm32/rtems.h
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
! 94943495585177e557d393d4272bec93  gcc/config/lm32/uclinux-elf.h
! 713faf5e5c45f844fbc9ad5551db1456  gcc/config/loongarch/constraints.md
! c34979082425d78409c769a25389d804  gcc/config/loongarch/elf.h
! 8b1c9c004fdbc7f460a64bda0b70f4d6  gcc/config/loongarch/generic.md
! a61fbfd9ac48f94f17ccd936a484b2c8  gcc/config/loongarch/genopts/gen-evolution.awk
! 3f45bbd3523fe62285eaea00e6ca33a5  gcc/config/loongarch/genopts/genstr.sh
  6c3cb64931933c31d4984eaf2b6f69e2  gcc/config/loongarch/genopts/isa-evolution.in
! f53279d5b7e936d4ca79a38f0268b4cd  gcc/config/loongarch/genopts/loongarch-strings
! c69ef27c10b319a5443289af516f40b8  gcc/config/loongarch/genopts/loongarch.opt.in
! dfcc88ca848e0510d6a048cef812a984  gcc/config/loongarch/gnu-user.h
! 0214c19eeeeb90d46d358333d5381814  gcc/config/loongarch/la464.md
! 2da06c6340275c1c0670ab82a7252f77  gcc/config/loongarch/larchintrin.h
! cdc46bd440985e31de830ee818f5019b  gcc/config/loongarch/lasx.md
! 64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
! a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
! ac0512e8b259ed63d386edaa0457a5ad  gcc/config/loongarch/loongarch-builtins.cc
! 514549db1d124f4f93b3859fca40e770  gcc/config/loongarch/loongarch-c.cc
! 59c96fed2f7df8b17e509bfec3c4edcb  gcc/config/loongarch/loongarch-cpu.cc
! 0857d194516733f19458bb44bfdeabc4  gcc/config/loongarch/loongarch-cpu.h
! 7c361340005dd5b26e9175a99e44f1f9  gcc/config/loongarch/loongarch-d.cc
! b9324da4da2e361b6f6b42ab32c89139  gcc/config/loongarch/loongarch-d.h
! 833584d561eee00538a06353674c2923  gcc/config/loongarch/loongarch-def-array.h
! f33b12257452472d47dac65075ab5d62  gcc/config/loongarch/loongarch-def.cc
! 185ea2daeab6458dea2831efe865a9b3  gcc/config/loongarch/loongarch-def.h
! 4a2c4b8277bf78c873773752258854de  gcc/config/loongarch/loongarch-driver.cc
! 9034667d3a99adb6488a0cf70a9c572c  gcc/config/loongarch/loongarch-driver.h
! 3fd647901cdc3e1d254c3b6a55a2fb7e  gcc/config/loongarch/loongarch-evolution.cc
! 50e2e743ee1a4e3501d962e45003c84a  gcc/config/loongarch/loongarch-evolution.h
! ff10ba24a7f588f5d1bfbc386be0a309  gcc/config/loongarch/loongarch-ftypes.def
! d7cf3f5e6d8c9402706533b8bbd7093d  gcc/config/loongarch/loongarch-modes.def
! d3ad067b1fa15bbce42fd3cc4499966e  gcc/config/loongarch/loongarch-opts.cc
! 084ba7e2ad2ac804b5f596bca0df06b3  gcc/config/loongarch/loongarch-opts.h
! 920651b1ba57b9faa704d0ac560b4ea4  gcc/config/loongarch/loongarch-protos.h
! 688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
! a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
! f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! f0a4c6e5a7c0cbc0621c38506eb5fabf  gcc/config/loongarch/loongarch.cc
! cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
! 144c058839db085ef1f40f5de915226d  gcc/config/loongarch/loongarch.md
! bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
! 264f23ee79258ff82bda293d093dd06b  gcc/config/loongarch/loongarch.opt.urls
! 626538aad4ce79c9f33a19821084c1b3  gcc/config/loongarch/lsx.md
! 429434e5f1e9f9afc839f4409102d5ea  gcc/config/loongarch/lsxintrin.h
! 5a232a75001e3db7ee3e491afdfae629  gcc/config/loongarch/musl.h
! e357122938174e9f48e1036cb67c8a21  gcc/config/loongarch/predicates.md
! 3b0d6d8a96b8678da4cf1e596d893d76  gcc/config/loongarch/simd.md
! 8dd632424d9d78f36a7f6de524c32142  gcc/config/loongarch/sync.md
! e2aad9f2fd1ee2a4668948f381da109c  gcc/config/loongarch/t-linux
! 4143126e9ad08f12c1a4555c0f87948d  gcc/config/loongarch/t-loongarch
! b84e97ccf92009e96031fc2edb92dde5  gcc/config/loongarch/t-multilib
! eb87423a8a7ddf65f83a151936c56485  gcc/config/lynx.h
! 40aa671ada85710196f7ba9db2c5f544  gcc/config/lynx.opt
! b49f81320f8c86b222541a2041837390  gcc/config/lynx.opt.urls
! e14112b397b9641f52d406d7ec503aa3  gcc/config/m32c/addsub.md
! 8ba61c1c134881136c16bea62cbb379e  gcc/config/m32c/bitops.md
! 9c6470bc62cc60f34ce6733ffaad9293  gcc/config/m32c/blkmov.md
! ad5925b7f44264e8d51883d3b2346cdd  gcc/config/m32c/cond.md
! 8205954bd73884469157fcbbe724b55e  gcc/config/m32c/constraints.md
! b48a4792e03df9159fae682650593aee  gcc/config/m32c/jump.md
! 8b4a558fea56f9dd307814c61d5a95a5  gcc/config/m32c/m32c-modes.def
! 14b371485499931d1ded01a82de4f3d7  gcc/config/m32c/m32c-pragma.cc
! f658274504f97347556d3daef41a38c5  gcc/config/m32c/m32c-protos.h
! 536af4b7f748ed271b64794bc9bbf979  gcc/config/m32c/m32c.abi
! feea78844f43c2fe024d1660f823d00f  gcc/config/m32c/m32c.cc
! 413f52ab973dfd1d6aaf29595184bc2e  gcc/config/m32c/m32c.h
! 8215ee91906a4d403b3d3767a081b834  gcc/config/m32c/m32c.md
! 6890451beff377059841eedd7fd233a4  gcc/config/m32c/m32c.opt
  b6d95155757f26bad53a0223afa9f6f9  gcc/config/m32c/m32c.opt.urls
! a4f73e01dbf31a10c3ea1b723c70d9cb  gcc/config/m32c/minmax.md
! 860065a07a49f839c2d589e7a7ca8bac  gcc/config/m32c/mov.md
! 757f747168b1e08175d40a851e786e87  gcc/config/m32c/muldiv.md
! 769531459915435fbded45596e9d847c  gcc/config/m32c/predicates.md
! 5aef75f81032d1e3503113b92e8f1bcb  gcc/config/m32c/prologue.md
! 88eced34f73528e800c6a31165c44816  gcc/config/m32c/shift.md
! 86c199035b16b8619b39769351f3a0e4  gcc/config/m32c/t-m32c
! 6a03413941ee862313035895dd17df03  gcc/config/m32r/constraints.md
! 381f7ae32956c45ae1f8aac2c4111c8d  gcc/config/m32r/little.h
! 1a764b5c8c74e3114f0b426347532524  gcc/config/m32r/m32r-opts.h
! 2df0c03d006b179f844ba00be1de673f  gcc/config/m32r/m32r-protos.h
! 4778cb545babb95dd2705345ae086e78  gcc/config/m32r/m32r.cc
! 804754da591a3688e89a687f1dd6067a  gcc/config/m32r/m32r.h
! ca2ef8d7fd1b50c4a4978efa611f7e98  gcc/config/m32r/m32r.md
! f15b71db5e403cb0edd0836e7fd15b15  gcc/config/m32r/m32r.opt
  1b619e144313c0fbf5062c63561ad744  gcc/config/m32r/m32r.opt.urls
! fbc84e3917cc27d064793bd1d5d9c5e9  gcc/config/m32r/predicates.md
! 2f039ecc12320280a168e4c8e6b524c6  gcc/config/m32r/t-m32r
! 060a7e5fadc7cd88cb911d0bd27daeb5  gcc/config/m68k/cf.md
! 90bb32963b4f3a1a5c96c60fbcacc9a3  gcc/config/m68k/constraints.md
! 80f6cadb46e010c6de0e1e31cddca87b  gcc/config/m68k/genopt.sh
! e3e74bb677bc136da4bcae00c7588b8f  gcc/config/m68k/ieee.opt
  1778e9d0151397001871eb8aa31c7878  gcc/config/m68k/ieee.opt.urls
! 8eeeab5a8919574aaa55bd15763101cc  gcc/config/m68k/linux.h
! e103c8ee492d8d86740b76d4234ff468  gcc/config/m68k/m68020-elf.h
! 812cc2962dfc6e42649e714b172c9ea2  gcc/config/m68k/m68k-devices.def
! a0cf19620e49def39482558ca02532cb  gcc/config/m68k/m68k-isas.def
! 4d4463f3eb64034471d08661d1f27e4a  gcc/config/m68k/m68k-microarchs.def
! fd5c21f63f7562ef85f6d3cd072acc59  gcc/config/m68k/m68k-modes.def
! 7c35f1d10eceb5a87ed61848b0cb4ed9  gcc/config/m68k/m68k-none.h
! 9b7e5fa9abdaa1f5c8379affcd249d5f  gcc/config/m68k/m68k-opts.h
! 6cf083651ed03428260b0f2e365a0e2b  gcc/config/m68k/m68k-protos.h
! e237c8634d1f5c3ea463cbfea4dc55e6  gcc/config/m68k/m68k-tables.opt
  76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
! 32b45053a1f55f8d27927a031e15c40d  gcc/config/m68k/m68k.cc
! fb041be1d836d497907055646a167985  gcc/config/m68k/m68k.h
! c2fa3140ba9e1fc36972f82ae7f7c146  gcc/config/m68k/m68k.md
! 1a76a5cfb488f53d1c15e12fd9d5cc7b  gcc/config/m68k/m68k.opt
! 075827f8519c6c5079c5b39aaa1f8d09  gcc/config/m68k/m68k.opt.urls
! cda670c892463bcaa4f341cfef04ad73  gcc/config/m68k/m68kelf.h
! 106584614366afa0b09fd5c99aafff6c  gcc/config/m68k/m68kemb.h
  c0472199959f16fcb58702880954da6e  gcc/config/m68k/math-68881.h
! e027a9506b98c9090d7f472131677560  gcc/config/m68k/netbsd-elf.h
! 596c3082b5f8578ab8f5e6b80a4c28f0  gcc/config/m68k/openbsd.h
! 8126c2c544bdb4aa0ea9d97558051034  gcc/config/m68k/predicates.md
! 4e4f0417d20496b6e5ac0310156fdd15  gcc/config/m68k/print-sysroot-suffix.sh
! ea077660dd4f33cf6644cff204b37273  gcc/config/m68k/rtemself.h
! 0617616589d1ca0ffba97070e2c17c76  gcc/config/m68k/sync.md
  19d5ed41f3394c9423ff3afe64804076  gcc/config/m68k/t-cf
! 9e6cfcd2cba459e9c876e74507d38e4e  gcc/config/m68k/t-linux
  baa4595148bafa6426b8d665881ced45  gcc/config/m68k/t-m68k
  c8278c25339f71d746d91a193efd6cea  gcc/config/m68k/t-m68kbare
! 6adf4a6a3fd4cf61a2570c17f2858a52  gcc/config/m68k/t-mlibs
  0fd519d41689e5af998ca53a2f11e7d2  gcc/config/m68k/t-openbsd
  2919d876e31e6c4e0955d8cd4be5ce28  gcc/config/m68k/t-opts
  2899d62cd61c46fe504594a232959581  gcc/config/m68k/t-rtems
! aa994dab7fcf08931cbe6cf02cfb1e1b  gcc/config/m68k/t-uclinux
! a4d25e80d5a79bcb7df21f3627aef2c8  gcc/config/m68k/uclinux.h
! ebd5336fc66436ca3c7fd92d56080390  gcc/config/m68k/uclinux.opt
  99a98298f0811865fcd36b2173e92323  gcc/config/m68k/uclinux.opt.urls
! b292ff55e6961b62b0716f12e7a7019f  gcc/config/mcore/constraints.md
! d4cdd162c4adbc6358ec05beb7bfce7a  gcc/config/mcore/mcore-elf.h
! 1d01a7813133d99e32b39ada28da6be7  gcc/config/mcore/mcore-protos.h
! 5db9863c4122b1532d8bfeacbc92f426  gcc/config/mcore/mcore.cc
! cfa45e2c04603eb898475f6372afa718  gcc/config/mcore/mcore.h
! 65bd0d0e447aad09484d144ce3dc20f1  gcc/config/mcore/mcore.md
! a6757d8ca2c871b28c76dd89eb4a3b93  gcc/config/mcore/mcore.opt
  cb26f6c0709fd9533aec72a07a36bf8b  gcc/config/mcore/mcore.opt.urls
! d2676839c4d7a7bcd706a386c029aea2  gcc/config/mcore/predicates.md
! 8e427b88391a8cbadd500d5b5c18dd88  gcc/config/mcore/t-mcore
! 899d399d572cb0f5b6983bf29e5f2dc1  gcc/config/microblaze/constraints.md
! cd06662d679aac52aa61b8507723384a  gcc/config/microblaze/linux.h
! 9bc1818e3b430b758bafdf04bac27f5b  gcc/config/microblaze/microblaze-c.cc
! c1cdfa70252d5e45a9df69ddc7a1ddcb  gcc/config/microblaze/microblaze-protos.h
! c10b23d21e0ba84769dd455a1393a6d7  gcc/config/microblaze/microblaze.cc
! 0a4fb603eb9a1c6e31bb8fa7e38b16d1  gcc/config/microblaze/microblaze.h
! b3a2d37f3594f70e239fba70728cc641  gcc/config/microblaze/microblaze.md
! 3da1e85fbc11c0a5b746cb77b96a06f3  gcc/config/microblaze/microblaze.opt
  ab7ecb87ef3b7a388cab0e4d0d2eb0db  gcc/config/microblaze/microblaze.opt.urls
! 0014185f2b662af11e97611027548662  gcc/config/microblaze/predicates.md
! 6440a5281eac59ad82a11734d4e82b80  gcc/config/microblaze/rtems.h
! 17120f7b651cdd7f0ef24e2c1b93b29b  gcc/config/microblaze/sync.md
  df031372af9c825d21d2058d266247a0  gcc/config/microblaze/t-microblaze
  63ccba4e7f745d36609d7c129bac6288  gcc/config/microblaze/t-microblaze-linux
  a8b08640136e3e7712d2278eb84c21d9  gcc/config/microblaze/t-rtems
! bf755d83b5004fb9fff3f5b5a3d04ca2  gcc/config/mingw/cygming.opt
! b509852d4359316090bcd55202a1613c  gcc/config/mingw/cygming.opt.urls
! d697f9dcab04ba2434d7a21bdd7fad59  gcc/config/mingw/cygwin-d.cc
! 86740ad1c195e245467e5a71426dceb0  gcc/config/mingw/mingw-stdint.h
! fd57a92693a8dcf9e4ddd91ee77800d5  gcc/config/mingw/mingw.opt
! 19d5796358fa93b7d6fe22a02604a407  gcc/config/mingw/mingw.opt.urls
! 32fba47e231d8585650326649503072a  gcc/config/mingw/mingw32.h
! 1481c2fe532a4627555acec909c44e93  gcc/config/mingw/msformat-c.cc
! 804488f591e9812eba4596b9f7120153  gcc/config/mingw/t-cygming
! 4b984eaba49cfc32096447ecc8a8d30a  gcc/config/mingw/winnt-cxx.cc
! 51d9fe343ab5e5605c7cbce53c3f14e0  gcc/config/mingw/winnt-d.cc
! 5ac3e65a2b4e8a0e77f19d4d0931ec03  gcc/config/mingw/winnt-dll.cc
! ce9dde5e44ad144027da2e35c7e97ef8  gcc/config/mingw/winnt-dll.h
! e4b2f8fb1d66b9d417e6a49457b25003  gcc/config/mingw/winnt-stubs.cc
! d0040e540d24db37c1679062c0dea169  gcc/config/mingw/winnt.cc
! fb5bca5a3689a97a5ae2f40b7432cfb7  gcc/config/mingw/winnt.h
! 2dad819a1af61bda883b08c7310f4ced  gcc/config/mips/10000.md
! 58b10461c7d9049333ab922d8faba17c  gcc/config/mips/20kc.md
! a07dd57521c3ce510a685b35c79f0bac  gcc/config/mips/24k.md
! 6f53bd2868ccd1e4489822a278aa2547  gcc/config/mips/3000.md
! 2a1c0b4a4d654e916e22a50483306149  gcc/config/mips/4000.md
! 080c0a2a1a57ce97246652a86ee06485  gcc/config/mips/4100.md
! 0f3ba524ea8c50ce799cb623d0cef658  gcc/config/mips/4130.md
! c39cfa14592f34dc658d739505f1ad06  gcc/config/mips/4300.md
! ebc177ad38ae112dc9a61ac885bab4ce  gcc/config/mips/4600.md
! 09b166bec378b4ae42d6ecec99701fe2  gcc/config/mips/4k.md
! 91c1bf7aa6659e0330dc83fe4ef2dd70  gcc/config/mips/5000.md
! 1eda9228fc6046a7f7d68d0ad8f231a8  gcc/config/mips/5400.md
! e000147cd4eeeefd4eb31b258e102c85  gcc/config/mips/5500.md
! b4a431d7607c9f571234d88f648d44f1  gcc/config/mips/5k.md
! 7a4c16bf892f8e16488975593c03ba03  gcc/config/mips/6000.md
! 87860c8dcf108f373c5e2e5e9a29fc1b  gcc/config/mips/7000.md
! e2a629fae8ffebb9adcb726c59c6c4f3  gcc/config/mips/74k.md
! bd4233e399c6ec61b59c82f7de4146c3  gcc/config/mips/9000.md
! b65def5d92f2e10787cafacbb26308b9  gcc/config/mips/constraints.md
! 472030a64d2e9dc5cd4f2f83085093af  gcc/config/mips/driver-native.cc
! 88be1b5da7768e44dad245b313879161  gcc/config/mips/elf.h
! 15bab30b9c271bc22a8731e0487a04b7  gcc/config/mips/elfoabi.h
! f619d92bf09ff0272623531201b34a05  gcc/config/mips/elforion.h
! 34b049b72d1c474680a684248b3a16a9  gcc/config/mips/frame-header-opt.cc
! 556c5b8b1355e35383f8ce533fcd0fa8  gcc/config/mips/generic.md
! f501293987159f655845a60f975c0f12  gcc/config/mips/genopt.sh
! 22edc3e6f38cfa937e8e5a7a55614871  gcc/config/mips/gnu-user.h
! 0c651f97e449c256238fb50fbc5ff692  gcc/config/mips/gs264e.md
! 6dbd9f81fa1e8ac4864cebd29c6a7d40  gcc/config/mips/gs464.md
! 98fe952f8127fe912052d0cfa8fe98bc  gcc/config/mips/gs464e.md
! 854ae093b787b494199af00192979403  gcc/config/mips/i6400.md
! 9f8b1bfe0f73cef31629e017113aeecd  gcc/config/mips/linux-common.h
! f1a0e5567043355bba6aae8f1d7bdc06  gcc/config/mips/linux.h
! a0a79dd66d38aaab624555bac2f88e49  gcc/config/mips/loongson-mmi.md
! 1684fb5c8040df45e81e1fa5e2948975  gcc/config/mips/loongson-mmiintrin.h
! c6303eebdcc28adc0e8dbd36000fd089  gcc/config/mips/loongson.h
! a2f81dceba031fb261df4e6410bc509a  gcc/config/mips/loongson2ef.md
! 8045b6d4622838c816ba7dea0109da26  gcc/config/mips/m5100.md
! f6a5d19bdcd6d9ccdaa46f1823dda2c3  gcc/config/mips/micromips.md
! 7a47ab183716a7dc89e111593d05f17c  gcc/config/mips/mips-cpus.def
! b70722da9a66a8346a6d8a03a411a0fc  gcc/config/mips/mips-d.cc
! 10b1f2f8768b0f8c230eeae08a7b5746  gcc/config/mips/mips-d.h
! dc3ea85b722793c8e4496599acbbe805  gcc/config/mips/mips-dsp.md
! b6ce9d26806c245a583c0283f973dc71  gcc/config/mips/mips-dspr2.md
! beb17256343a6785b55d8fffc3193ce2  gcc/config/mips/mips-fixed.md
! 28ff5fdd839593b384f9fd0286d8147b  gcc/config/mips/mips-ftypes.def
! f973e381561e255314508a55abacf3fa  gcc/config/mips/mips-modes.def
! 9ec3df5cb1532a85080960c69889edaa  gcc/config/mips/mips-msa.md
! 1b87cbf12b808b0145d1c6d1e7380ef8  gcc/config/mips/mips-opts.h
! 3177024ac19b3c284f1f9d889d95f47d  gcc/config/mips/mips-protos.h
! beaf066ed06870bef361adf40e122f78  gcc/config/mips/mips-ps-3d.md
! 453ffe6fe7bd722fe86fcbd20ad8c571  gcc/config/mips/mips-tables.opt
  216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
! aece97ba6f9c88c3a61b43d2e9b0e17b  gcc/config/mips/mips.cc
! 88dd001644c78b094085e14e139cfa6c  gcc/config/mips/mips.h
! e60b3aa2a8b65b4efe7979085ee6e9ad  gcc/config/mips/mips.md
! fe191aedf5f44f1529c770fa027b02bf  gcc/config/mips/mips.opt
! 1f687c2ccb6cc2541cbbbe637fca085e  gcc/config/mips/mips.opt.urls
! d89c4346d4e58dfefe64a850c4bfdbdb  gcc/config/mips/msa.h
! 99697dba04763fc661a97d98e8e8e580  gcc/config/mips/mti-elf.h
! f86af6dede84a266816f8b53c29a3836  gcc/config/mips/mti-linux.h
! 41e632c15c51a245ca0ace584b19de23  gcc/config/mips/n32-elf.h
! 4c4ce8000c50090c65cc2ae64919e028  gcc/config/mips/netbsd.h
! 81a2078d52786e35f4536c6daf4d2270  gcc/config/mips/octeon.md
! 440c50261e1c30d7fe5985092e684e8e  gcc/config/mips/p5600.md
! 30cca39b52275e2642929f3aed00e28e  gcc/config/mips/p6600.md
! a5dcdc4c316db523b9f6e06d5441ed8a  gcc/config/mips/predicates.md
! b982a8322fa1d24bb95e8b8b17cf38ae  gcc/config/mips/r3900.h
! 2e75f6060274f6834d9204caee06f443  gcc/config/mips/rtems.h
! ecb0fc3e5fcb5cf8ab5e75cd8b7f2c8a  gcc/config/mips/sb1.md
! 3723e0ed99d187bbcb3fb0b7fce9902e  gcc/config/mips/sde.h
! cf625630fe5630fd2647a87e9c402b82  gcc/config/mips/sde.opt
  b071da46f4d4d78223b4f2ecf6d3895c  gcc/config/mips/sde.opt.urls
! a7f60d80b98d9cd475e632fa3ceca71f  gcc/config/mips/sdemtk.h
! 8f255b59792d44434e13b7a9d9c4fcff  gcc/config/mips/sr71k.md
! 3e984e2e1ffa3b33bd3f04d20b9bd1f1  gcc/config/mips/st.h
! 811b985095735878ac9af306939abf85  gcc/config/mips/sync.md
! e4bf14020ff982a1564e093a797c4fa8  gcc/config/mips/t-elf
! 1a2549386c3a793c8497003410b47aae  gcc/config/mips/t-img-elf
! 5be0295afbb0d27b4cd6f8ff0cc73002  gcc/config/mips/t-img-linux
  f99fd825138aaee60804b8915e20d22e  gcc/config/mips/t-irix6
! 7402455320f696ad75479b658bfbd20e  gcc/config/mips/t-isa3264
! 3495f627f536a1dbb253d230f41bb950  gcc/config/mips/t-linux64
! d0215df9deaa30853846ed24c6e29cd1  gcc/config/mips/t-mips
! c21ad0c033085a62d2dffce02e14b34e  gcc/config/mips/t-mti-elf
! 92c7343c0ccfa9b3a3113eca6b3a7fbe  gcc/config/mips/t-mti-linux
! 8c50f462e4b32fb5d8e55c23aae226a1  gcc/config/mips/t-r3900
! 1e70831b0fd3e6598f96c8c23bfe26f4  gcc/config/mips/t-rtems
! 9ba6b609994d2df76898045f6390aca7  gcc/config/mips/t-sb1
! c8d66d2178598717c8bd24285719895c  gcc/config/mips/t-sde
! 88208c5815e3edf1cc09b4ba1b1657fd  gcc/config/mips/t-sdemtk
! 4c9ebd6f7ad76850ec6ef46871102710  gcc/config/mips/t-sr71k
! 083d80f1ca8957c8fcf22c7a9a6278aa  gcc/config/mips/t-st
! 0fc67521c1364fcaf77960d4474a75ab  gcc/config/mips/t-vr
! 336d86f8e8163d5b2494e9b16cda0c05  gcc/config/mips/t-vxworks
! cc72236f63ae2be8d7702759d47e724f  gcc/config/mips/vr.h
! e0def687838ffb06159c1f1c713eabde  gcc/config/mips/vxworks.h
  06537756ff14579bc850163a24d5a2f8  gcc/config/mips/x-native
! 8f10f3f40bc43c57f95344fbb768b9b8  gcc/config/mips/xlp.md
! 6ab494343738a838e0d6930a5e1796e1  gcc/config/mips/xlr.md
! 130d859fc0690e522248e868886bb31e  gcc/config/mmix/constraints.md
! 79568dcf6c5ac79a2944a702604eb1b3  gcc/config/mmix/mmix-modes.def
! 0d1fac3ed7908e832771169c2211485d  gcc/config/mmix/mmix-protos.h
! 493cbf1b9db7ed473fdc77b42f00cf37  gcc/config/mmix/mmix.cc
! 876f6219230212ef3080c2c00bb00103  gcc/config/mmix/mmix.h
! 75d895c540f209e357f6f2436b97349a  gcc/config/mmix/mmix.md
! 8d96a8f7512a39594bda492661ca8c2f  gcc/config/mmix/mmix.opt
  1fc4fd001702b5999b134c729b9437a5  gcc/config/mmix/mmix.opt.urls
! 3f7cd7702f1afbaf6ca348966cd68901  gcc/config/mmix/predicates.md
! 9c737f11dce5bd9df5fb51861e174c32  gcc/config/mmix/t-mmix
! f429b684eece399637efa70bdd567978  gcc/config/mn10300/constraints.md
! 58c866df07c60d8fea1316d924b9dc53  gcc/config/mn10300/linux.h
! 82a2dac196cacabef119bae289f70f5f  gcc/config/mn10300/mn10300-modes.def
! b10c1ac8b48afbf54711bdbac03c3a9f  gcc/config/mn10300/mn10300-opts.h
! b3125010c873ef668d056b0187427f4e  gcc/config/mn10300/mn10300-protos.h
! 08a165da7433c53f8f1d87b2435fd360  gcc/config/mn10300/mn10300.cc
! 7240065d0c10b89e9a94d9efab271eab  gcc/config/mn10300/mn10300.h
! 6524f4ee70cebcff2f3a2144c9d45cbe  gcc/config/mn10300/mn10300.md
! a91c18940fd2674f0c8e90ffa4d8528f  gcc/config/mn10300/mn10300.opt
  84e37d8a4a927311a81a258b6fbb6d2d  gcc/config/mn10300/mn10300.opt.urls
! b153be562053b3d1dd6eb457e2ecf5b7  gcc/config/mn10300/predicates.md
! cc43880b3f2f29c0dfadbaa9b5d0f969  gcc/config/mn10300/t-mn10300
! 1f155e4a2d8cbc4536c5ff58db331103  gcc/config/moxie/constraints.md
! 48f3405de2089acf55d89f30493a7a1e  gcc/config/moxie/moxie-protos.h
! 1cf99b2f32579b3c5f2120ca66608726  gcc/config/moxie/moxie.cc
! 6cc9364505c5d13e6d101152c9cb0489  gcc/config/moxie/moxie.h
! 2af3fc323efdb27b1bff10dd7de47e58  gcc/config/moxie/moxie.md
! d389859cd88d11e5bf9e6f63fcb35190  gcc/config/moxie/moxie.opt
  3760ae8613d750b00a08d88bdd2f1ce0  gcc/config/moxie/moxie.opt.urls
! 9ed606fe2b2c5764450b2e5c909098dc  gcc/config/moxie/moxiebox.h
! c6d98e733cdd57519b8cb86126d974ae  gcc/config/moxie/predicates.md
! f343cded05eff3191fc0b0a064b57fbf  gcc/config/moxie/rtems.h
! 81c0f626339c745b698d3c103f705a58  gcc/config/moxie/t-moxie
! fdd80334257bacb34eb75f5d1d988a16  gcc/config/moxie/uclinux.h
  f276505b774e975b88b6c90362783e73  gcc/config/msp430/README.txt
! ebc73f1a48e2a4cabaa49300a5d77e74  gcc/config/msp430/constraints.md
! 3fd55d2eb18c07c39eeb43fac3bf603b  gcc/config/msp430/driver-msp430.cc
! 755dc45f5273b7928fafd47d7b7f8a29  gcc/config/msp430/msp430-c.cc
! 19ca3f326eaf47336041ed6a1588d0b6  gcc/config/msp430/msp430-devices.cc
! 700078b0a4341ba1936543c53cf664d4  gcc/config/msp430/msp430-devices.h
  e081143def3cf3a59cd1181fc9162d41  gcc/config/msp430/msp430-modes.def
! fdd7547be79baafe16c071c2bbb26f12  gcc/config/msp430/msp430-opts.h
! ad27574ff75327ca72c4ad7a382a2667  gcc/config/msp430/msp430-protos.h
! 632deba02b8aac054f33886ad0bbd057  gcc/config/msp430/msp430.cc
! 58df59f286b927594bda75703423fd95  gcc/config/msp430/msp430.h
! d384e284dbef9e0b133a5deb8b8cd873  gcc/config/msp430/msp430.md
  a20875cf634836537faeacfb5a4f59d1  gcc/config/msp430/msp430.opt
  ffac48d9c1c0b7c08d6358c02254559d  gcc/config/msp430/msp430.opt.urls
! 6cd1de7323fd314b9afbe0fc7b1cecc0  gcc/config/msp430/predicates.md
! d0a58eedfc8a59966fa3b22a02d37a42  gcc/config/msp430/t-msp430
! 71561d2e29e0c6922f94af0cbe7a8c42  gcc/config/nds32/constants.md
! 6c8d970cb6dca303d7e40543eb63d95d  gcc/config/nds32/constraints.md
! c76f4f528e35c62767ebdc9cb190515c  gcc/config/nds32/elf.h
! 738ef257faf040182568bde3f8430ba8  gcc/config/nds32/iterators.md
! 73d2d8bef3bffc83f1fa0be5d62df362  gcc/config/nds32/linux.h
! f5b24e86370ad3846d3607a48d1346cc  gcc/config/nds32/nds32-cost.cc
! c6713706090034767576a112fe0cf7b7  gcc/config/nds32/nds32-doubleword.md
! bd9f7696658f146f3c1d058da762b624  gcc/config/nds32/nds32-dspext.md
! 874b67003eb52a15623e9f6f84068eab  gcc/config/nds32/nds32-e8.md
  c316334a86026beb55e5c25b4b855f95  gcc/config/nds32/nds32-elf.opt
! a0b6c727a1380cd674ab75b88947c326  gcc/config/nds32/nds32-elf.opt.urls
! ebf8910d051b106d1df6e35d39dc1eac  gcc/config/nds32/nds32-fp-as-gp.cc
! d80723a846c00c3e96b8a65daaa757f2  gcc/config/nds32/nds32-fpu.md
! a55a211a345737e1f464e576bd9baea5  gcc/config/nds32/nds32-graywolf.md
! 7180d93466f00b5ea58f7b78a553fca0  gcc/config/nds32/nds32-intrinsic.cc
! e9804cf8b4657ba7abfb30a9e23ce032  gcc/config/nds32/nds32-intrinsic.md
! 9ff128391e35cadac99cb2df82942133  gcc/config/nds32/nds32-isr.cc
  d94163fd5e4660359b8b12a0d90ed1bd  gcc/config/nds32/nds32-linux.opt
! a93f916906721665c3595705369b9c96  gcc/config/nds32/nds32-linux.opt.urls
! 2849e8086680c5ea9a73990931fa3d63  gcc/config/nds32/nds32-md-auxiliary.cc
! b306779b5cb5df1392364c2352d95b67  gcc/config/nds32/nds32-memory-manipulation.cc
! 014b6e4a407c1cdfbc1a9a8c27526215  gcc/config/nds32/nds32-modes.def
! 5bec3dc6365e68dfcedeb203625a1721  gcc/config/nds32/nds32-multiple.md
! 93279d8b6b1c6b95c36fac95a07ae8aa  gcc/config/nds32/nds32-n10.md
! 23e21583af3355312dc2ef12b67aa47b  gcc/config/nds32/nds32-n13.md
! 88cdd634f54593de2f86784a363d8991  gcc/config/nds32/nds32-n7.md
! 0c7acd6aca554aedfbb80f0dd944b70e  gcc/config/nds32/nds32-n8.md
! 51e9b12f000c56cd2279d4358d00b242  gcc/config/nds32/nds32-n9-2r1w.md
! aba3255af1dadd043769a0ebb8ec003d  gcc/config/nds32/nds32-n9-3r2w.md
! 538c1f099e98be92ec48475ecf8da027  gcc/config/nds32/nds32-opts.h
! 445f993eaa4692952b1902bed97fc729  gcc/config/nds32/nds32-peephole2.md
! 8633b5a4dd865038f4672e3f9f4285a3  gcc/config/nds32/nds32-pipelines-auxiliary.cc
! efc99629f182694529236f6749d9a0f0  gcc/config/nds32/nds32-predicates.cc
! b310ad23b2862edc66a88cd2711489da  gcc/config/nds32/nds32-protos.h
! 3a2abdcd5071ca63054f7b1bbee5c773  gcc/config/nds32/nds32-relax-opt.cc
! 4c004fee32c0d5edb7b1f5a1cb795808  gcc/config/nds32/nds32-utils.cc
! e19024ff067af518d91272b32e94d78e  gcc/config/nds32/nds32.cc
! 93a06b5b0829d477e5f17d83bc83514f  gcc/config/nds32/nds32.h
! 2dfffb21ec902a3180caacc13ce5c237  gcc/config/nds32/nds32.md
! 91dad34fd2fd0c49ccf03925281af78a  gcc/config/nds32/nds32.opt
  0a4b950a741ef3f9364b2178341bf6ae  gcc/config/nds32/nds32.opt.urls
  c09acceb380f58ddb795ee3e973945d7  gcc/config/nds32/nds32_init.inc
! c3eeea19f863cca6ead645ee6fe0d2fd  gcc/config/nds32/nds32_intrinsic.h
! 48f2329ecdae4069558a16fd72832246  gcc/config/nds32/nds32_isr.h
! 235150c9ecc96ff9c4459b23a529747e  gcc/config/nds32/pipelines.md
! c60502b61c40c73cafb076ca7b7b5a5e  gcc/config/nds32/predicates.md
! 975646be8c033b4e559a6a8d7469ae64  gcc/config/nds32/t-elf
! e5872ccfe71c5c99f9e81177fbab727d  gcc/config/nds32/t-linux
! d91a6c70ac9919bed055da5005a200b3  gcc/config/nds32/t-mlibs
! 65287af7041013c3aa8b78d5998f886a  gcc/config/nds32/t-nds32
! b037e509ddd9b00366df6dd0b8f20034  gcc/config/netbsd-d.cc
! 0a24ae62a388034dd5db8691c5f5c68a  gcc/config/netbsd-elf.h
! f59459a5299ef00c160d1cad890fca5e  gcc/config/netbsd-elf.opt
  1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
! 065485dcae0d1d7c26384e3dfa838ce6  gcc/config/netbsd-protos.h
! fa80ad4d3855bcd4b1424661af33060c  gcc/config/netbsd-rust.cc
! 01bed9ab1ba1927ef5fbc2353d902b66  gcc/config/netbsd-stdint.h
! 20dd5918d453507a3d551fb26ebf2c76  gcc/config/netbsd.cc
! f6e20213bda93fb0f75c911253883236  gcc/config/netbsd.h
! ef36db0d824c1fce287aecb1ac5cb1e1  gcc/config/netbsd.opt
  2d8ddf3cb6445f1f788bf4c1f6f61300  gcc/config/netbsd.opt.urls
! 90d1151ce76e074965b7dd19b41dee77  gcc/config/newlib-stdint.h
! 1d229323b064da931d6ff210f6032910  gcc/config/nvptx/gen-copyright.sh
! 6d78d2b28f8642186a82b3e9097dfab1  gcc/config/nvptx/gen-h.sh
! 5c4eb992f8cc08467bb557015c8edd61  gcc/config/nvptx/gen-multilib-matches-tests
! 2f6253172cebc299090eb3ff21bce59d  gcc/config/nvptx/gen-multilib-matches.sh
! a675b50ac99c3589fbc9347a2c8b267f  gcc/config/nvptx/gen-omp-device-properties.sh
! 4fa4386427965e8b1d155fd9e24a7b2e  gcc/config/nvptx/gen-opt.sh
! 30ef320ec8a8c6a2c2cb2c7249e847d4  gcc/config/nvptx/mkoffload.cc
! 5bdd02ea89901317102b35ecc453fb67  gcc/config/nvptx/nvptx-c.cc
! 1625a257c06503b0e90277a2b1f6bb35  gcc/config/nvptx/nvptx-gen.h
! e3fa2b71ca4e2b274332797169d9cc6b  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 50f24986303ef2c5a2007408005d7c05  gcc/config/nvptx/nvptx-opts.h
! 1f3aa1665145f0388933dc9ee8296ad2  gcc/config/nvptx/nvptx-protos.h
! 4e3e09c3aa0f7484ff7ec5e5138fb4bf  gcc/config/nvptx/nvptx-sm.def
! 8b90c0d2ed6f3be9bd4b29e48c10952e  gcc/config/nvptx/nvptx.cc
! 531b64adb9fcd853596d40ff52c855bd  gcc/config/nvptx/nvptx.h
! 787ea1be2367cf809e1f013766e965cd  gcc/config/nvptx/nvptx.md
! 58c376bb6ed1d0b00c3dfd224327d295  gcc/config/nvptx/nvptx.opt
! 53bbd40023718a97e82988becbb44969  gcc/config/nvptx/nvptx.opt.urls
! d83f4112ba6c9557b88879d66412590e  gcc/config/nvptx/offload.h
! e5b7e572a77f7a504a29fda1e6e163d9  gcc/config/nvptx/t-nvptx
! 0611c8534afbbbca5fe6378a13849c46  gcc/config/nvptx/t-omp-device
! 6378f3c97b2149d60effa14a152e5675  gcc/config/openbsd-d.cc
! 5d06c168282a4da2e5d32e6d4b6fa54a  gcc/config/openbsd-libpthread.h
! 41a7179606daa998f8b19ec60579042d  gcc/config/openbsd-rust.cc
! 9f7ed215196feac2290a9c21bba850c3  gcc/config/openbsd-stdint.h
! 7f32d95215b8cf1d754aa3121f8cee71  gcc/config/openbsd.h
! e05bdb2e10bf411f0bfc7bbedf713577  gcc/config/openbsd.opt
  f2528020fcdc72755829904c1e2bd9cd  gcc/config/openbsd.opt.urls
! 0b04499fc5518af696bc98c6731190c6  gcc/config/or1k/constraints.md
! 92488a7523fc566652ebbb82b1aa8fad  gcc/config/or1k/elf.h
! 1286c65be3e7b36faf01fe2483b4e379  gcc/config/or1k/elf.opt
  8e462ede2b5e4ca4e9b77d96feeea5ff  gcc/config/or1k/elf.opt.urls
! 8975a99baca4214035d5805cff0cbf4c  gcc/config/or1k/linux.h
! 8749d9b447ea37bc29800c0bf265c6e2  gcc/config/or1k/or1k-opts.h
! 97baa752f8b46ebaabe66d92886e19a2  gcc/config/or1k/or1k-protos.h
! 71933f5ebf1d159bc2d354fa61d64560  gcc/config/or1k/or1k.cc
! fcbfb3ff3577f95c15cf20ae1c95b269  gcc/config/or1k/or1k.h
! f5e7694d32cf1092a0353e9cf60d09d4  gcc/config/or1k/or1k.md
! 3f0f02c02d2295376f66ab0666242364  gcc/config/or1k/or1k.opt
! 08881bec5bba093b5cb1eddd91ef4014  gcc/config/or1k/or1k.opt.urls
! e81d7e77c10f88f37fa5c74d54edecf4  gcc/config/or1k/predicates.md
! db8691a94f44f22cd2b192588632bb9b  gcc/config/or1k/rtems.h
! 53bcb430048193eb051a76841ed97244  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
! 25e2bd283e04beb6c0f4ba0bd27d6c21  gcc/config/pa/constraints.md
! 1d95374ccbe6e32fd92df82e8c2d8d45  gcc/config/pa/elf.h
! 42bcbace87662d4e287c97d35ad8a07f  gcc/config/pa/pa-64.h
! e5d0569b6f22fcc3b7c04ffc10f948a8  gcc/config/pa/pa-d.cc
! 9b9d3426728f4e028f0188a35e2f2ce3  gcc/config/pa/pa-d.h
! 2922a5a179fdd7e9f592c1a0705a59ae  gcc/config/pa/pa-hpux.h
! 83160c1e500c5a73ed6a65d83ba1f32d  gcc/config/pa/pa-hpux.opt
  c72bd414f990a9fee6e01780673cdd56  gcc/config/pa/pa-hpux.opt.urls
! f6d8fb7b076da94980d5e21094cad327  gcc/config/pa/pa-hpux1010.h
! 07e67fd79da709b915b39dd4b12a7848  gcc/config/pa/pa-hpux1010.opt
  e13114ae33cfe970d30b76ba8cd4f419  gcc/config/pa/pa-hpux1010.opt.urls
! 8e93fe67d5cb832e01ef1b8d977d36c3  gcc/config/pa/pa-hpux11.h
! 580553a03e61f121acba09ff6b032cd3  gcc/config/pa/pa-hpux1111.h
! f0d600a234edc3cd0b19b062cbd7c4b1  gcc/config/pa/pa-hpux1111.opt
  8442020af66ca252bb847f6f824cb155  gcc/config/pa/pa-hpux1111.opt.urls
! 0c4ff9f1230a7891a31712d61960fe45  gcc/config/pa/pa-hpux1131.h
! 9c6b5b861de702ccdfe41bdef28e8a23  gcc/config/pa/pa-hpux1131.opt
  43fc590b7aacc54072ef9661be7c024e  gcc/config/pa/pa-hpux1131.opt.urls
! ad4daaeda04576cd1c16bcb643a22c4a  gcc/config/pa/pa-linux.h
! 65aad07d622e92a3fb6f014d6edc70f0  gcc/config/pa/pa-modes.def
! c7d4fb30a2fe78bcdb23db8d74da3746  gcc/config/pa/pa-netbsd.h
! ede4cffb79f5496c4063328b9d126f26  gcc/config/pa/pa-openbsd.h
! cd1b48d66fffc5f91a26b160085fbd1e  gcc/config/pa/pa-opts.h
! 596c088c93babeea4848ba2aed2eb6b0  gcc/config/pa/pa-protos.h
! e331e7449b7ec4ba3834db246f482600  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
! b7f09c119e3da135e762b15fc5f8f98e  gcc/config/pa/pa32-linux.h
! 9d886aae4bb3e78b28e25d0bdcbaee9c  gcc/config/pa/pa32-netbsd.h
! 37899b8cab6e8ab2e3f1ccf39e0fdff8  gcc/config/pa/pa32-openbsd.h
! c0794717c39357ab9e610e7c0c1ca309  gcc/config/pa/pa32-regs.h
! 7ba08dc9bce780e30da2b34ef52a325a  gcc/config/pa/pa64-hpux.h
! fc985a35b7add70ae03a7d05339eec97  gcc/config/pa/pa64-hpux.opt
  b9670a9aa8c6577d9c71118121d7f9a8  gcc/config/pa/pa64-hpux.opt.urls
! 6c96c9e2f019106445f9daea51080cc5  gcc/config/pa/pa64-linux.h
! c25212d06bcb9703e26a948fabe2aea1  gcc/config/pa/pa64-regs.h
  a9a6afd79b827565ffb8de8330b4cfe6  gcc/config/pa/pa64-start.h
! d3d274f6434d5ab371ee1c8cbc0092f6  gcc/config/pa/predicates.md
! 28e4e475db88c4ce6bf6aba1dbe447f1  gcc/config/pa/som.h
  6fd25f8c665d2d7390ea94c01dcb8e34  gcc/config/pa/t-linux
  16f4ce216414d19c044dd93c60d948ae  gcc/config/pa/t-pa
! 48cdd37af758c219895a215611e1c21e  gcc/config/pdp11/constraints.md
! fb7e64ef669053479f8452f28b4c6355  gcc/config/pdp11/pdp11-modes.def
! 0d42fd4a1b3066598f451d793058622e  gcc/config/pdp11/pdp11-protos.h
! ce3f16fec4b9d9f3014c1fe7ccb4a913  gcc/config/pdp11/pdp11.cc
! cbdba9df9a494f89762b40dec85f176c  gcc/config/pdp11/pdp11.h
! 21ef45d60a4c7553c109f6a2783b6290  gcc/config/pdp11/pdp11.md
! 8e8ec2d4af4ae870334fc228ff22a585  gcc/config/pdp11/pdp11.opt
  635cae153d933366eee0a122693ed3e9  gcc/config/pdp11/pdp11.opt.urls
! 5cc69e4d7970811930bececce702fa70  gcc/config/pdp11/predicates.md
! 740f78e7670b7c23c5f094ef2b392edd  gcc/config/pdp11/t-pdp11
! b8805afcdac54accbc2845d9afcc06f3  gcc/config/phoenix.h
! 802ed4b6549f307090038d8dc9c59ed9  gcc/config/print-sysroot-suffix.sh
! 923cfef52e048e53d99b17617b12c328  gcc/config/pru/alu-zext.md
! 5da072ab23ad2c00ead12c1904bf931a  gcc/config/pru/constraints.md
! c7d2a0ff524d2118e134910f92d499bc  gcc/config/pru/predicates.md
! ecc43d433158dff36044d7980b74eaea  gcc/config/pru/pru-opts.h
! a47c1d9626258e961f58aaa938dff7c0  gcc/config/pru/pru-passes.cc
! 3806bf704354931780e8f243f2ac4b5b  gcc/config/pru/pru-passes.def
! 600befe49f45ad64d985dc8011379856  gcc/config/pru/pru-pragma.cc
! bd2f18deee7e7457f0e33c0ef25eda80  gcc/config/pru/pru-protos.h
! d7756e2e4a0e124c9cec2515cc7c90e4  gcc/config/pru/pru.cc
! ea166a4ea21e8f1dc577c24b5a24d65c  gcc/config/pru/pru.h
! 147f9818d81f5ecaa02b09824ca89f65  gcc/config/pru/pru.md
! d6da8f84e5835bd14f146fc765bcb39d  gcc/config/pru/pru.opt
  cd13b51383c99c08d86250b61fed3805  gcc/config/pru/pru.opt.urls
! 540013c309ceb3efb2b16d728b1fc726  gcc/config/pru/t-pru
! a5e691ce14017f2a89283ed510bb78fd  gcc/config/riscv/arch-canonicalize
! 81827306988efad07b1063e86fed4fba  gcc/config/riscv/autovec-opt.md
! 4032274539da6915927b3fb611848f38  gcc/config/riscv/autovec.md
! 069baa0b49a6b1f69439f32b53ee5076  gcc/config/riscv/bitmanip.md
! b54febf04241d7f85370879f94688855  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
! d404c19d5b1a2aca0a73917bb692bd96  gcc/config/riscv/corev.md
! a8964e5c7fad78fa42fc5b8f0dc2e91b  gcc/config/riscv/crypto.md
! 70cc6640001ff23ac9b647ea784ffb2b  gcc/config/riscv/elf.h
! 9a5e3c714ef42f079425c3c0af8184dc  gcc/config/riscv/freebsd.h
! fdf40414be0404faa2f689ccff02d68d  gcc/config/riscv/generic-ooo.md
! 21f218660ab980c9d22c28cc5310a52a  gcc/config/riscv/generic-vector-ooo.md
! b7e955ddfed9efbb0296ef639c095e2a  gcc/config/riscv/generic.md
! 83af0f86eac09928b4d64d583aa45869  gcc/config/riscv/genrvv-type-indexer.cc
! 7f6f44ba18fbe0b711e3714cfd11006e  gcc/config/riscv/iterators.md
! 85139511ec0cad0144207dc8efc0ed90  gcc/config/riscv/linux.h
! 52728cfca05017f727570e4e983fc5fa  gcc/config/riscv/multilib-generator
! 80e8994ee9e6abf380e68aca6443d157  gcc/config/riscv/peephole.md
! a3d3fa9142d4e2ed34ead146941c574a  gcc/config/riscv/pic.md
! 3d61850acd950a0bca784aa5c7375de7  gcc/config/riscv/predicates.md
! d7a63bbbf6653fc311084e8bb09d713b  gcc/config/riscv/riscv-avlprop.cc
! 3b5651b95f6a076ccd28e73bae600e52  gcc/config/riscv/riscv-builtins.cc
! 4107a71abfd2e5225d66986a671e05a5  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 08fc3d4342dd32dd9e649003b3140d1f  gcc/config/riscv/riscv-cores.def
! 173996678a5bf2b1b40e30fe260109b4  gcc/config/riscv/riscv-d.cc
! 790bd2a5355776ab5ebf4c7814489760  gcc/config/riscv/riscv-d.h
! 1b0b6b632f747d9387ef25821e8673b4  gcc/config/riscv/riscv-feature-bits.h
! b467d35485b39b25863e918609a322d0  gcc/config/riscv/riscv-ftypes.def
! b1bc6d82a24b7b0e658a43956a37419c  gcc/config/riscv/riscv-modes.def
! 2b3bbaf831944c3ad3b4219f260ade71  gcc/config/riscv/riscv-opts.h
! 028368b39011fff2cdc58337d388aaa8  gcc/config/riscv/riscv-passes.def
! cc4d538f7d66895b427db54b9660a953  gcc/config/riscv/riscv-protos.h
! 446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
! 4c94b064f758f7bdf05e99a02b8e15ed  gcc/config/riscv/riscv-shorten-memrefs.cc
! 62b31689063eeeca8f0e7ae25da92d0a  gcc/config/riscv/riscv-sr.cc
! 5934e743da72bdc74e1d53f049b127fc  gcc/config/riscv/riscv-string.cc
! 6e4e2a0f934c6d930c9d9243d5c89f92  gcc/config/riscv/riscv-subset.h
! a583d4ec085af9e2f577c155bf259caf  gcc/config/riscv/riscv-target-attr.cc
! 3f3495b0b9c514fc429e35f9f53918be  gcc/config/riscv/riscv-v.cc
! 0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
! 8bb68ed754e01cc6cbd31b250968d7f6  gcc/config/riscv/riscv-vector-builtins-bases.cc
! 689f453a4cdf7fa3e64a7f4bfba8f7dd  gcc/config/riscv/riscv-vector-builtins-bases.h
! bdc5f6caf56fd0411faf705e9c32ccd4  gcc/config/riscv/riscv-vector-builtins-functions.def
! 7439c310d1c94dcd962b3e1c3cd5d462  gcc/config/riscv/riscv-vector-builtins-shapes.cc
! 92a4d3a592ebef60b5ed8a2c0963b75a  gcc/config/riscv/riscv-vector-builtins-shapes.h
! 8bb44ae09faa0c992fb3f5abd38f63db  gcc/config/riscv/riscv-vector-builtins-types.def
! 873a88df734d47135f3c07274c42c7c3  gcc/config/riscv/riscv-vector-builtins.cc
! d5729696e4e1e43d59d9a0a80bc8e837  gcc/config/riscv/riscv-vector-builtins.def
! d913150bdc8f6c319cfecb8fb792f47e  gcc/config/riscv/riscv-vector-builtins.h
! 3ab2c03f8df3835afe50fe4842b35c33  gcc/config/riscv/riscv-vector-costs.cc
! bd7a0d0d03ad4788f6cf7579df11a66e  gcc/config/riscv/riscv-vector-costs.h
! f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
! 9a0be0e3c4d4b0eec09eef7dee2a028a  gcc/config/riscv/riscv-vsetvl.cc
! 16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
! 7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 9683aceb419c131edaf7f66f9f9192f0  gcc/config/riscv/riscv.cc
! 1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! 6811c8b1c13206706c4e67c940f93348  gcc/config/riscv/riscv.md
! c799356a57b52ab91ff324ab22516fba  gcc/config/riscv/riscv.opt
! d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
! 374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
! a8044652cefd826404f261518f9e2321  gcc/config/riscv/riscv_crypto.h
! d8773b3aa8a7da49d6ba814f852a218b  gcc/config/riscv/riscv_th_vector.h
! 954334fc674acb3564cd52e1096e1a2b  gcc/config/riscv/riscv_vector.h
! 8ba362048b98a24051cd9ba947957a2a  gcc/config/riscv/rtems.h
! 1a3ca767866d3a3feeab8c89a49e564d  gcc/config/riscv/sfb.md
  be325acf7e97346df2b332f8be3e7c26  gcc/config/riscv/sifive-7.md
  4bd546da4f447a6411214164ad27c10e  gcc/config/riscv/sifive-p400.md
  573ed3885e39b6ef4cf281949a9762d5  gcc/config/riscv/sifive-p600.md
! a1a32736dcb092a13f31062d537619b4  gcc/config/riscv/sifive-vector-builtins-bases.cc
! 1cb9973f0e00ab4093f11354e91a8b59  gcc/config/riscv/sifive-vector-builtins-bases.h
! 819e3241bb1bb454ef57b3b27111fd1f  gcc/config/riscv/sifive-vector-builtins-functions.def
! 999bebabe5b26a26a80bd4f6697de49c  gcc/config/riscv/sifive-vector.md
! b5fb046770f7e60fc485d6092c296c38  gcc/config/riscv/sifive_vector.h
! faca69fa18f3f779cd3ee4d6a53e6193  gcc/config/riscv/sync-rvwmo.md
! 4dff560d8961c6dd9b4dd18c668c629e  gcc/config/riscv/sync-ztso.md
! 08edcccff9f3994996d3970c2a0da726  gcc/config/riscv/sync.md
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
  381cb38e167feed84dad697fce89cabd  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! eeb5331a1eeca9299967d7177826ce33  gcc/config/riscv/t-riscv
! 51c5ea17e60737c695a38285dfce555d  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
! 8bcdf79541abe727e991e00993f379f6  gcc/config/riscv/thead-peephole.md
  325f22596295559607b476e5a2a4d491  gcc/config/riscv/thead-vector-builtins-functions.def
! bcf728ad2379630774fd5bb529d4ee86  gcc/config/riscv/thead-vector.md
! 48f9dcd9a5cd1980bd2db7697cdb717a  gcc/config/riscv/thead.cc
! fd8e9517de64ab23821ea1284ea6d7f6  gcc/config/riscv/thead.md
! b5e46305db1116cc1758b504ea37fe74  gcc/config/riscv/vector-bfloat16.md
! 88f7597398d0c8b8b87baba5fd207996  gcc/config/riscv/vector-crypto.md
! 243d8ebb633382b17c68b2758bbbae23  gcc/config/riscv/vector-iterators.md
! 0177d30f61d7730f86b0c4407ba5dc3f  gcc/config/riscv/vector.md
! 4ffde0be9b9a0efe78c98b4407d00397  gcc/config/riscv/xiangshan.md
! 0f64aaa114ab62a1a46f7ac422d6a129  gcc/config/riscv/zc.md
! 2a87e05e2432e50d410a6b774704755f  gcc/config/riscv/zicond.md
! 484e293fd0201a6e967e08cfb88bfed2  gcc/config/rl78/constraints.md
! 9d19734015ef93ceb13a9ebd14c415b0  gcc/config/rl78/predicates.md
! dd309418062404f78fec5e3e803f51b7  gcc/config/rl78/rl78-c.cc
! b9122124f44b801543f1fce424708a79  gcc/config/rl78/rl78-expand.md
! 3d52502293f2fa1bbb5399b8d3831161  gcc/config/rl78/rl78-opts.h
! 5ce0f6e2936b6ca2e06f1f5c3b8aa23e  gcc/config/rl78/rl78-protos.h
! 8722eeae58af024df4dc732c38cfe74f  gcc/config/rl78/rl78-real.md
! 68d65b724892355f5c1e816036764eee  gcc/config/rl78/rl78-virt.md
! 1e38a765fa78c3f4a4bf5b8d0addee57  gcc/config/rl78/rl78.cc
! 7c0ba4382744bcd815998bfe5a3c115e  gcc/config/rl78/rl78.h
! 53ff11e448f40417f1bcc8c6e41a8d40  gcc/config/rl78/rl78.md
! c65492c90efd2ee7148894f4913c2f9c  gcc/config/rl78/rl78.opt
  0b873eb0e14cb2abf80aa2e90955904d  gcc/config/rl78/rl78.opt.urls
! 07b8288aea62133f48fa550d868a20fa  gcc/config/rl78/t-rl78
! 17d79858bb152c6b9421438bd765a1d6  gcc/config/rpath.opt
  1ba216c6712cc1a82121154d5193a339  gcc/config/rpath.opt.urls
! e19fef0f1a3fd01ea8bbf3c9e2b18502  gcc/config/rs6000/40x.md
! c9a273417b1b0c0a1332a4eb0d25eda0  gcc/config/rs6000/440.md
! 5a4eac410273fae9b8c8b1c30146e0e8  gcc/config/rs6000/476.h
! 9e76e25f1cbf41901226c772f5557675  gcc/config/rs6000/476.md
! 7f16b1adab088d81a6e97dd9d4e62852  gcc/config/rs6000/476.opt
  e1a9c8119beed7008786bcb91a9dfe0a  gcc/config/rs6000/476.opt.urls
! 23764072d1e445adb007f405b1fffd9a  gcc/config/rs6000/601.md
! e2fa67a067644355f3e167e88a52d33b  gcc/config/rs6000/603.md
! c8b4655ebfb9fd26b0c49dc1b1637cde  gcc/config/rs6000/6xx.md
! 8c702297c1bd44d4e6468f1e3d0f23de  gcc/config/rs6000/7450.md
! fe3d972a79442dc1b2043eabe38c2e2f  gcc/config/rs6000/7xx.md
! 32e09b60381687f9cd5b7b33001c3517  gcc/config/rs6000/8540.md
! 4f6028fe108314d2a33f8f7f909a73f7  gcc/config/rs6000/a2.md
! 993b9ee39193c6e1b6fc812856635d87  gcc/config/rs6000/aix-stdint.h
! f52bc10b700a145b797b666c36290d6d  gcc/config/rs6000/aix.h
! 1ca8614596b68cd336ca726ee25990e6  gcc/config/rs6000/aix64.opt
! d70f08b893e019d12b16dc9a70754ef9  gcc/config/rs6000/aix64.opt.urls
! 1429db8f4765ff4aefe82f62895c1013  gcc/config/rs6000/aix71.h
! 7f04e00d7abf437885d57dbffa4d8f4a  gcc/config/rs6000/aix72.h
! c544fe733de647bba75656a097ef5683  gcc/config/rs6000/aix73.h
! 04684068198cd7d4bf973f2cf37245b7  gcc/config/rs6000/altivec.h
! e84127a4493a0433c0798fb72e06f484  gcc/config/rs6000/altivec.md
! 6aae59d4e50476599eca7a9839fcea2a  gcc/config/rs6000/amo.h
! 3bd1c96455c52fa67ad166ee514529f5  gcc/config/rs6000/biarch64.h
! bce756c85740f3f618c107b0cfad6962  gcc/config/rs6000/bmi2intrin.h
! 8539858757dfff91b45d4996c7daef85  gcc/config/rs6000/bmiintrin.h
! b57efddd76c8530f3767811fbb251d76  gcc/config/rs6000/cell.md
! 923f83fa07a0d8aaa96c667c3eaac18a  gcc/config/rs6000/constraints.md
! ab02c096b12770fe689235f39035e667  gcc/config/rs6000/crypto.md
! 3ab6b5c9a83785b585266f4278fea7f4  gcc/config/rs6000/darwin.h
! e0636fb64b4e3d31197214a169251497  gcc/config/rs6000/darwin.md
! 73b25947c170a8567ec2ab34c09a470f  gcc/config/rs6000/darwin.opt
  465e67f2fa0bad834639122551e17ab2  gcc/config/rs6000/darwin.opt.urls
! 84077fee8c79102cc23ce941289fc043  gcc/config/rs6000/darwin32-biarch.h
! 936445587ec9e644bdcf767366e766d5  gcc/config/rs6000/darwin64-biarch.h
! e8dae6ed29467c5d13926773be4fe2e8  gcc/config/rs6000/darwin7.h
! 6150de7f8129fb9a91ae22095b37983e  gcc/config/rs6000/default64.h
! fb5e3cfd1a1857e9006553cf17174fec  gcc/config/rs6000/dfp.md
! 34609f67f7a0948d0f1545507283360f  gcc/config/rs6000/driver-rs6000.cc
! edebf56fc5696a07dbc4b52d975e0c9c  gcc/config/rs6000/e300c2c3.md
! 03e765257e4367981a1cfa7e83d66f6c  gcc/config/rs6000/e500mc.md
! 5d25c2b495a07efe4a2fe1c499b07e20  gcc/config/rs6000/e500mc64.md
! 5f242ab3d728455cc46c189d07433998  gcc/config/rs6000/e5500.md
! 39188116dfe52b1f7b05452ed13bdd5b  gcc/config/rs6000/e6500.md
! 89cad08a45db03c9675794153e0ff3ad  gcc/config/rs6000/eabi.h
! 5ecb53482ec8393e7819f6ae618ade6c  gcc/config/rs6000/eabialtivec.h
! 6f9365ca47c173a194171081bae84794  gcc/config/rs6000/eabisim.h
! b56353d2d649c8d28d3b0aed79a84d16  gcc/config/rs6000/emmintrin.h
! d3acf9f5f5884f4837b2adec49d52e0a  gcc/config/rs6000/freebsd.h
! c9289575f80ce83053b3d53783a327f5  gcc/config/rs6000/freebsd64.h
! 64d541e7ab77d40038b8675d4237b2ea  gcc/config/rs6000/fusion.md
! df5aee4609e79571271b2b8143c3da05  gcc/config/rs6000/genfusion.pl
! 7d2434cc2cebc961fd3a8b272fef1a5a  gcc/config/rs6000/genopt.sh
! 543ccffb8ce040c3d50903cf2051c329  gcc/config/rs6000/host-darwin.cc
! 9ddf991376914ee37c61d683c1066c81  gcc/config/rs6000/host-ppc64-darwin.cc
! 578eb0272d6e7783432b40d42a75cc70  gcc/config/rs6000/htm.md
! 0bc8740ad412516b42dae12750ec5517  gcc/config/rs6000/htmintrin.h
! a95314b79965e9ec77dcc4935df6bab3  gcc/config/rs6000/htmxlintrin.h
! 3ec5e735e81472f0e502d693555f9939  gcc/config/rs6000/immintrin.h
! b7bfdb9e4f9e2fe326a79cb9aa6d3d3d  gcc/config/rs6000/linux.h
! e5873f0d380b8c64d3f92cd66633b673  gcc/config/rs6000/linux64.h
! 227394cb9b2f6a786ccd98adcb768f56  gcc/config/rs6000/linux64.opt
! 22c20fb3b9413357f5d49cd94e483e94  gcc/config/rs6000/linux64.opt.urls
! f0d456d13ca686f2fca52eddbebd20dd  gcc/config/rs6000/linuxaltivec.h
! 0d5433786ba116e393cf9deb517ccd3f  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 839d88a6522e621b3c5f17f9ba176272  gcc/config/rs6000/mm_malloc.h
! 11d22ff285a54af5ed91b8746307a599  gcc/config/rs6000/mma.md
! 6aad66a72986aa33c90e6c75e2fb7e2a  gcc/config/rs6000/mmintrin.h
! 3f53b4c3b5ff3886954bd47d41f115cc  gcc/config/rs6000/mpc.md
! f402c4db3d39c3eccf40a27f583bac39  gcc/config/rs6000/netbsd.h
! f6ce6d702aa4c7c3d40e6e7b6807feda  gcc/config/rs6000/nmmintrin.h
! 2dffbe00b3c9c60bcabcb0000e7a030b  gcc/config/rs6000/option-defaults.h
! 9529c8d1b6fe44531cdf19949397a869  gcc/config/rs6000/pcrel-opt.md
! 191342524c3fee6b7d56253c8b200fd7  gcc/config/rs6000/pmmintrin.h
! 6a31074e97a61fca7ef0c2a7d0d88726  gcc/config/rs6000/power10.md
! 074096c694682876e466ccf7a8ab147c  gcc/config/rs6000/power4.md
! f5af5e3378f166e39816b095eadd02ba  gcc/config/rs6000/power5.md
! fb0d7e79b9e70e304973a35b1b42f3c4  gcc/config/rs6000/power6.md
! 3bab197172990c082f8d8e95a5a01abe  gcc/config/rs6000/power7.md
! ed631983af95aaa8f426a1beee450df8  gcc/config/rs6000/power8.md
! 1d2caa76d9fbc0b72a4efabb3f0a115f  gcc/config/rs6000/power9.md
! bcefe099935dfbd7bc9b6d446d83949a  gcc/config/rs6000/ppc-asm.h
! 6c12e8a06d9542326b7fab89e699855a  gcc/config/rs6000/ppc-auxv.h
! 4d674f911a0915ff1822c3e5b5c7a42e  gcc/config/rs6000/ppu_intrinsics.h
! e8f307427b9691501f617f9921a29126  gcc/config/rs6000/predicates.md
! a1a56cb74b09656a0d65c8351472c0dc  gcc/config/rs6000/rbtree.cc
! 1bf6742f3643571d537df3e6e0603170  gcc/config/rs6000/rbtree.h
! d139903a564018061688043567f8c198  gcc/config/rs6000/rs6000-builtin.cc
! dce39de8bb20b88ffeb8b2073101dcfe  gcc/config/rs6000/rs6000-builtins.def
! 508c2cb53cbe6fe9884e599852ff8143  gcc/config/rs6000/rs6000-c.cc
! 4e26f14a54f324eddc2f83da389b6392  gcc/config/rs6000/rs6000-call.cc
! 1ae7c413b9168d574ebf9cd906badcff  gcc/config/rs6000/rs6000-cpus.def
! 46053ed1e2d7c0404bcfd27015e80dde  gcc/config/rs6000/rs6000-d.cc
! 01270a3a60a0eb1f0a5c90f7e27d04ea  gcc/config/rs6000/rs6000-d.h
! 0dacfd70b28dc547f661598bb32b293a  gcc/config/rs6000/rs6000-gen-builtins.cc
! 629a40b82a3ff1c1a69b19ab984bcb1d  gcc/config/rs6000/rs6000-internal.h
! 10a641083da38d5b8b5f10daa90b6d09  gcc/config/rs6000/rs6000-linux.cc
! 797e75148510c33fe768ee7dd312e3ae  gcc/config/rs6000/rs6000-logue.cc
! 63a0f215a1805d884e96c3aa1c733c66  gcc/config/rs6000/rs6000-modes.def
! 0f4fba999da4fff7c71a19109ae8c775  gcc/config/rs6000/rs6000-opts.h
! 6601dba905de0995380ef3ba402a6212  gcc/config/rs6000/rs6000-overload.def
! 7f3473c369466798b6c37d4c258bc452  gcc/config/rs6000/rs6000-p8swap.cc
! 170ce472910dfa31bbec7b913de1c7e5  gcc/config/rs6000/rs6000-passes.def
! 533b1c41eb2f01d2e2f88b791b39979c  gcc/config/rs6000/rs6000-pcrel-opt.cc
! 9cac1be078f1b1cc7379bf75c3a74ba4  gcc/config/rs6000/rs6000-protos.h
! 5621b2aa0be1c71c3955c4e3bad6cf49  gcc/config/rs6000/rs6000-string.cc
! 062e9e612338d86d0d47a3e1131384fa  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! bbdaf33b2e31d72f3aee72a28a3aae5b  gcc/config/rs6000/rs6000.cc
! 1d91827dae3ab7a332473805ac3cf40c  gcc/config/rs6000/rs6000.h
! ad1b62754d030b34f5ff67d2991b43b1  gcc/config/rs6000/rs6000.md
! 77c1c38e6705e421b8838bf19f938cef  gcc/config/rs6000/rs6000.opt
! 4a3425020b3911aec588774005db5046  gcc/config/rs6000/rs6000.opt.urls
! 73a5440dddc7f25e7daa3b1de22b321f  gcc/config/rs6000/rs64.md
! 92ed5c996125a3c017a74eb932e8df87  gcc/config/rs6000/rtems.h
! 90088a0a328214c98a68273bd2dc3eed  gcc/config/rs6000/secureplt.h
! 10b358a1be6a0dae0450bff647690c8c  gcc/config/rs6000/si2vmx.h
! 3ffeab643f349aa489b41b75480d4b5a  gcc/config/rs6000/smmintrin.h
! a78086db7c3178a044593d53d3ae91c8  gcc/config/rs6000/spu2vmx.h
! 7b451b5476bf2c5f0f7cbcf6ed654e97  gcc/config/rs6000/sync.md
! a6c44a7efa5a28da1ad08586215b51da  gcc/config/rs6000/sysv4.h
! 8627cb0aa19d982ddf843b52c0ab4d9a  gcc/config/rs6000/sysv4.opt
  665ad5fb698deb6ee59b34e0b9f64c6d  gcc/config/rs6000/sysv4.opt.urls
! b90965614b170912031ee318cc0a53b3  gcc/config/rs6000/sysv4le.h
! 893295252d49f9f4e7859af96e9ac056  gcc/config/rs6000/t-aix52
! 4483c8d66ea24dec056de78571536e20  gcc/config/rs6000/t-aix64
  636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
  f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
! 08ce2410dae82493ffe7e09217198ea4  gcc/config/rs6000/t-fprules
! 23d4492ad8f0f60f4a1e0782e3004cfc  gcc/config/rs6000/t-freebsd64
  7708df4fc7a5677f2dd3097c7bb5b338  gcc/config/rs6000/t-linux
! 6e83d4aefb836f56112db34a0fff914b  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
  60f26523152f6a061a12cb17e987de12  gcc/config/rs6000/t-linux64lebe
! 0137751eac0abf25aa1456563fc28330  gcc/config/rs6000/t-lynx
! 91576a6d96c9738d60f19b9b03b3bee2  gcc/config/rs6000/t-netbsd
! 70b655f7285502ac3d470c6de8a99a68  gcc/config/rs6000/t-ppccomm
! e1f60837d596b50aab84acacd8d1245a  gcc/config/rs6000/t-ppcendian
! c67fe1e1c4bab07c3897fca06f4f57a9  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
! b6980d5ebe57142e4fed4c16ae171f5b  gcc/config/rs6000/t-rs6000
! a11475df345f72539e8e1c787bfa4880  gcc/config/rs6000/t-rtems
! 2fb85dd8e42e0cba5468fba8814e57ad  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
! 331890d5e3eb07f6faa47ae64e0684db  gcc/config/rs6000/titan.md
! 821e68180ee418f628021555b9ac4865  gcc/config/rs6000/tmmintrin.h
! 38e93eff3a2b573d1d802ebad267b109  gcc/config/rs6000/vec_types.h
! a5506e6d02e00eca6773ad6611fafec6  gcc/config/rs6000/vector.md
! 92d84780bc97fec043576239dfbc4de4  gcc/config/rs6000/vsx.md
! 476eea9f6c0eb11a85eb0a2c968cdec6  gcc/config/rs6000/vxworks.h
! cd6fbfee7df45bb751e81a607bf1cb7d  gcc/config/rs6000/vxworksae.h
! ec49257e720fea1d0b85265da90de158  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
  b56ad5be71cef10dc9ee90f9f5577c21  gcc/config/rs6000/x-darwin
  0d6a4902892897c148fbf634ca039f71  gcc/config/rs6000/x-darwin64
  3f42272f4bcf66031ebf71a6c876adb8  gcc/config/rs6000/x-linux-relax
  c8b5860d3a61eeddd3a9790a0f09ed6c  gcc/config/rs6000/x-rs6000
! 2d5ec1a0f9022264d15e2a59176498c4  gcc/config/rs6000/x86gprintrin.h
! a52e5f21713beb6e4a1a07f85fc1f2db  gcc/config/rs6000/x86intrin.h
! 991b283d6904c45b9449f34bb2481b7e  gcc/config/rs6000/xcoff.h
! 318c73da8e0019d2da9047422fbcbdd4  gcc/config/rs6000/xmmintrin.h
! bdaa1e95598c5180c9f3eaeb1606eda0  gcc/config/rtems.h
! 729fdf3a52dea9d04e9c6e9678d40ec0  gcc/config/rtems.opt
  63d27d06289d5f9814baae9a6feaa996  gcc/config/rtems.opt.urls
! c79df64d140d58e8d5afa1736ce5c61a  gcc/config/rx/constraints.md
! d5753ef6222ef48e3e8d6732e151ce7f  gcc/config/rx/elf.opt
  495c9b539f4b3f5645b59d1084a92957  gcc/config/rx/elf.opt.urls
  84ae77475029b49553276e3d7ed74cec  gcc/config/rx/linux.h
! e668a66435fb2f99a1efecd42e6e892e  gcc/config/rx/predicates.md
! ebf2af54f6028784eea745f950992c31  gcc/config/rx/rx-modes.def
! 7588eedadbbd5ed60f24dbb89e11a412  gcc/config/rx/rx-opts.h
! 3ef320fc856a179ec483fa45562d0f4e  gcc/config/rx/rx-protos.h
! f5639a8ef8ac0b4ad0f0f8641ce6dda9  gcc/config/rx/rx.cc
! 52f8f701493a3c37b5967c172aa5b1d4  gcc/config/rx/rx.h
! 6cbeff9d3b8aea4288a7a2298b737824  gcc/config/rx/rx.md
! 9bcec54f3194a77effb13d53edaacd37  gcc/config/rx/rx.opt
! a426ed371d1dfa94041a6af161a28a0c  gcc/config/rx/rx.opt.urls
  032cf36abc28f171fc24229e32796402  gcc/config/rx/t-linux
! a193321b7e2ac5b29e6bd2936c9caa7c  gcc/config/rx/t-rx
! 252b842c93c379c8f6ab1aa00dd69074  gcc/config/s390/2064.md
! 6f734b35e9ff7a95c8c87755c5f86407  gcc/config/s390/2084.md
! 4e524b93bc153465085d48e4f9d47815  gcc/config/s390/2097.md
! efaa6982fcce2e51cb2d7c39d6115582  gcc/config/s390/2817.md
! 4fa86f9af5a817adb9df3489baaafc8e  gcc/config/s390/2827.md
! fd01666e46b60a66d6ab0f1179fe8a58  gcc/config/s390/2964.md
! b8a53cbfa42457bbfbffe6175bd0e389  gcc/config/s390/3906.md
! bac301fce59cd5b08790ec495b04aa73  gcc/config/s390/3931.md
! 6e33ab5e1727846afc7e7fe867bbcfe4  gcc/config/s390/8561.md
! c24d103090b6903467518bb52d69c4f8  gcc/config/s390/9175.md
! 6dda8f9d35f0262b7ee24b85d3db2640  gcc/config/s390/constraints.md
! 391d4584a7e554f19827d3b67da1342f  gcc/config/s390/driver-native.cc
! 4145cae576e515bd090d62e91e83bd65  gcc/config/s390/htmintrin.h
! 900cc527e3075aef8f3339d26e632f2c  gcc/config/s390/htmxlintrin.h
! b81d5e116305b17609e882fdbf14dedb  gcc/config/s390/linux.h
! 3c05d04569db91752fffcb62d9973505  gcc/config/s390/predicates.md
! 7db97edf2bb5d34b0718e4cf1b133721  gcc/config/s390/s390-builtin-types.def
! aba1a5da14104eb3051142cfe7938bf1  gcc/config/s390/s390-builtins.def
! f49a58e28f4f1a2915e2b7726b24b3fc  gcc/config/s390/s390-builtins.h
! fe35fbeb73ee590ad5588ef343ec0966  gcc/config/s390/s390-c.cc
! b0ca9ea2b644ed03999193b5d9198f22  gcc/config/s390/s390-d.cc
! d7112093049d4abbc421609d032b7358  gcc/config/s390/s390-d.h
! 107e065c4a74bb968d44f38ee30d0698  gcc/config/s390/s390-modes.def
! 6fdfe66fdde3f81b83dc16c27ac7df3f  gcc/config/s390/s390-opts.h
! 87bca0c72260bdf7b32cbe797e607999  gcc/config/s390/s390-passes.def
! 4bbcb1bde4546fee12249a01f76cb56e  gcc/config/s390/s390-protos.h
! 1d678570b52dcb407791924a92a2f90e  gcc/config/s390/s390.cc
! f162b44703353c72956061efcbe580d7  gcc/config/s390/s390.h
! a71dab2465c50a816144f258baf600b7  gcc/config/s390/s390.md
! fa4475320c7a3767bf9accfa736efcc6  gcc/config/s390/s390.opt
! a70af895ec82511886ce63dc841e63e1  gcc/config/s390/s390.opt.urls
! b9ecea5f97b2e15b60d770050a07f0d1  gcc/config/s390/s390intrin.h
! ae2250a16e4a3a631a5667f95a21e560  gcc/config/s390/s390x.h
! 917857ccaf1e3588432fb2544d87838b  gcc/config/s390/subst.md
  551847ee4c38fa1a7e95fd93cdb32f17  gcc/config/s390/t-linux64
! 0846aa61627e90db964dfc66312f50eb  gcc/config/s390/t-s390
! dfb9fde7c7559a50905b02c01b6d6ee8  gcc/config/s390/tpf.h
! 583b44d020f0d23eed4a710cef41a7bc  gcc/config/s390/tpf.md
! bc0fb519f0c53f7b5e44aadede6fbfad  gcc/config/s390/tpf.opt
  34c54b547202715f11db388829243402  gcc/config/s390/tpf.opt.urls
! d225211a59c66716b9cad3d9a2f13af4  gcc/config/s390/vecintrin.h
! 351ea2661de2b72c12795611857698d3  gcc/config/s390/vector.md
! 8f88205b80cb5c8a16a0f55c1bbc53ab  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
! f9d87cd50e032287752597f9c084e3f5  gcc/config/sh/constraints.md
! 979804b0ff98b144f1afd5ec763892f9  gcc/config/sh/divcost-analysis
! 86ed6deff89e998b26ae0f02a4760f6f  gcc/config/sh/divtab-sh4-300.cc
! c564e87bc5653233dd25793e4493eefc  gcc/config/sh/divtab-sh4.cc
! 8ab918e3ba3f57381b58f3346bfbf961  gcc/config/sh/elf.h
! fb5c204c731fa33dcc092366dc9c07e2  gcc/config/sh/embed-elf.h
! c82e0ae7df11e833c513837779809915  gcc/config/sh/iterators.md
! f4aff59e85baebb07f883ead0d12dd1c  gcc/config/sh/linux.h
! 74546141c87057f1915baa2782f325a9  gcc/config/sh/little.h
! 94e688ac8f591dab9736d19d17dcd2fa  gcc/config/sh/netbsd-elf.h
! 8de2ae34446e2e96bf92675adc06055f  gcc/config/sh/newlib.h
! 3d58429b1c243c741021eb7996e14c18  gcc/config/sh/predicates.md
! 77ab24a699e0e7690716da1cc08c9b83  gcc/config/sh/rtems.h
! e55807da6a1aeac0ce3d312b43660237  gcc/config/sh/rtemself.h
! 2ee2c9da65382f56a7e9adc2e59652e2  gcc/config/sh/sh-c.cc
! 89b99edd25f07e1fb2466c4692b8fbe8  gcc/config/sh/sh-mem.cc
! 7a8e1948683f6e3066304e32abe84988  gcc/config/sh/sh-modes.def
! b21e76d3061916df429b986025c99cd6  gcc/config/sh/sh-protos.h
! 6253fe9b08dd339c658cfa4033464ac3  gcc/config/sh/sh.cc
! bc3cf16ed45eb962cf4f8b13a97b724f  gcc/config/sh/sh.h
! 41f79e8504a610cef908cbc11ec9b1f7  gcc/config/sh/sh.md
! ec5ab32d7efddf71dc540a3ebec3f02c  gcc/config/sh/sh.opt
  670e5840056f2d5bcfb8444910abd200  gcc/config/sh/sh.opt.urls
! f88c001b1bae674e16a4440ff9eba0b6  gcc/config/sh/sh1.md
! 20462ee7070ae303b7ca15b8ae919ce2  gcc/config/sh/sh4-300.md
! 5253bb82afce8c40e61ed02d889b6f33  gcc/config/sh/sh4.md
! fe27a32de15ba8624d20289e40225ecd  gcc/config/sh/sh4a.md
! a50935c18ad173891a79be98c807a7ec  gcc/config/sh/sh_optimize_sett_clrt.cc
! 80445eee0cf04ca8e7ebea39cd797737  gcc/config/sh/sh_treg_combine.cc
! 542715bd128f3da1fc2217d4b84d4ced  gcc/config/sh/superh.h
  06158b0f1e33501120db330d7734228d  gcc/config/sh/superh.opt
  5561a4532b44f8176f955ae87b996363  gcc/config/sh/superh.opt.urls
! 833a17fa0d8c82939c6c6974e6206b93  gcc/config/sh/sync.md
  88130a11ca77c8572260539cc46ef7ac  gcc/config/sh/t-linux
  ad88281b142c81e6c7017a842c281d5f  gcc/config/sh/t-rtems
! 6048febe56ce58bb0f314466a4f432d7  gcc/config/sh/t-sh
  9f0e9638f478c08d204c5dce468c95ce  gcc/config/sh/t-vxworks
! afcb05b4a5376117e105a5f7ee6ec9b4  gcc/config/sh/vxworks.h
! 0ee032baed6cea377f18795634c7d706  gcc/config/sol2-c.cc
  5c26c2321d68d4724b0d0076803c6b89  gcc/config/sol2-clearcap.map
  73dd11dea23019ab25cbbd70968694e7  gcc/config/sol2-clearcapv2.map
! e580c199d31125b230bb2c433094bc3e  gcc/config/sol2-cxx.cc
! 9b9d60602f07d65fc54e93ce5b28f4ff  gcc/config/sol2-d.cc
! 683a2fb15c35f55bd42405af4b95b20e  gcc/config/sol2-protos.h
! f981246401dc02795a6f58eccb1240a8  gcc/config/sol2-rust.cc
! 363aa40b2d2145d97c2b3b23b09d3ed3  gcc/config/sol2-stubs.cc
! a1b33a7b9e5a91f84a66b4e23338c3e1  gcc/config/sol2.cc
! 9c7621492d6ac1dfcccd31b8e7251290  gcc/config/sol2.h
! 4796428cc640a3b87b8371614301a450  gcc/config/sol2.opt
  c9d3baaa833c42e5184e73236cc13b0e  gcc/config/sol2.opt.urls
! c12eeb9c89d82c905c55fe4b468fd9f8  gcc/config/sparc/biarch64.h
! abda8782671a8f7c0ab0426d1e5513fa  gcc/config/sparc/constraints.md
! 763db411442ef8014fc2fc4a3160ae97  gcc/config/sparc/cypress.md
! 0871f7ff91ebaa2244d2492404e66d2a  gcc/config/sparc/default64.h
! cb44da1e5bc99c985a673bc2834a5a1f  gcc/config/sparc/driver-sparc.cc
! f163a3d658cb96ed5913720798fdd79f  gcc/config/sparc/freebsd.h
! a8cc8db0dcbe63fc8e0b5c02ba3cee72  gcc/config/sparc/hypersparc.md
! c6a56f74d25ad0e4f1487046a5ff26f0  gcc/config/sparc/leon.md
! 0bfea0527b07a393da07c9efc53975f3  gcc/config/sparc/leon5.md
! 63864d9b7159d7f2409baa85c57cd02f  gcc/config/sparc/linux.h
! 185bbe71f5b038d19e4f15564929485c  gcc/config/sparc/linux64.h
! c7d2fa113770eb0489893ad38e3eded0  gcc/config/sparc/long-double-switch.opt
  4d77ec43ed4c960c7b17df26f8ad8add  gcc/config/sparc/long-double-switch.opt.urls
! c0d13b848e8cd0fe290f241d40903f43  gcc/config/sparc/m8.md
! c7dc5af2d34836756465438414eda3c9  gcc/config/sparc/netbsd-elf.h
! 16a05eb1dd0ca6c98303f10db7720ac4  gcc/config/sparc/niagara.md
! f3e3fbe21b8ccda5763e605be5c64073  gcc/config/sparc/niagara2.md
! 0098c760a50c613a5019c6eacfa14911  gcc/config/sparc/niagara4.md
! 3146f09db9b87c88ce3e132b947f731c  gcc/config/sparc/niagara7.md
! ecbdfd983044f47fdfdcfd033969d564  gcc/config/sparc/openbsd1-64.h
! 8715ec6c36122d3d59165af3ddc760ae  gcc/config/sparc/openbsd64.h
! a45c575fa02674cf0084efc660f20677  gcc/config/sparc/predicates.md
! e1394032b1fec7cdc6749467afc54d4a  gcc/config/sparc/rtemself.h
! 29370a65606fc9b84ede344281394f7b  gcc/config/sparc/sol2.h
! bf8a2f1403e13fc9157e782582c7d9b3  gcc/config/sparc/sp-elf.h
! 5c39743d5de0cb72c3040a228ad6447d  gcc/config/sparc/sp64-elf.h
! e8ca4f5ac0c8f9928a51a9a82bf0480b  gcc/config/sparc/sparc-c.cc
! 9c843161707650effe9073f7c59915cc  gcc/config/sparc/sparc-d.cc
! 2feb4732622437f62519bad6b92b6de5  gcc/config/sparc/sparc-d.h
! 50d8542a52dd15da5d5737a3f7609fb5  gcc/config/sparc/sparc-modes.def
! e963c6f088ae67780aab309ebb8f2403  gcc/config/sparc/sparc-opts.h
! 9c2d82a06c849db08db3ef02d820ed3b  gcc/config/sparc/sparc-passes.def
! 8e7da647ebac15f0fb906b5d8eabbcae  gcc/config/sparc/sparc-protos.h
! 587e339feba2aacc1d58848678fda4d7  gcc/config/sparc/sparc.cc
! 7b50625b5647706a8b3078662269f0b6  gcc/config/sparc/sparc.h
! ca5d61801e838fb883889cacf84b57b8  gcc/config/sparc/sparc.md
! 6f932c6d3989e90e2e77ce2f623e6e98  gcc/config/sparc/sparc.opt
! cbc85a5ebb7b3a0099441abc8694a822  gcc/config/sparc/sparc.opt.urls
! 058c0b8fd9d648a96b6360d6bb462b5a  gcc/config/sparc/sparclet.md
! 95d9b0938bb19cd4b5184456f3493e75  gcc/config/sparc/supersparc.md
! 62e0cf2435ed415cc9b52698d95a63e0  gcc/config/sparc/sync.md
! 1cafb1557dfca7558d3106b5b85d5b15  gcc/config/sparc/sysv4.h
! 4d81f3e3bd15cb5d10e7428d797bed3c  gcc/config/sparc/t-elf
! f14f176d3752e1da746f706f03c442aa  gcc/config/sparc/t-leon
! e547b37e8313e9d339ca340ddd3e3740  gcc/config/sparc/t-leon3
  4a7d3f368a24d549fabaafbe44fcb134  gcc/config/sparc/t-linux
! d9a6cc353f21af579ed912fc0307f690  gcc/config/sparc/t-linux64
  75987b7fdc6fa9c9ff2108ff1003e6d2  gcc/config/sparc/t-netbsd64
! 38b4e38dfa6632fec08705834d3b2f98  gcc/config/sparc/t-rtems
! e57f3ff7f43733e20e71dcff1fa5453a  gcc/config/sparc/t-rtems-64
  511770bb20c2707fabd4f231ce8b83cf  gcc/config/sparc/t-sol2
! a15fd12f8a837022ff540c915f63eea5  gcc/config/sparc/t-sparc
  b04597637b0c08dd3e6d1a40c43e76b4  gcc/config/sparc/t-vxworks
! 201620100223a313ddf97b0becb46f21  gcc/config/sparc/tso.h
! fae3f6a9928b5e77047c16385fb6eaa2  gcc/config/sparc/ultra1_2.md
! 2dfea21260887aa8b08dc4ac01c624b8  gcc/config/sparc/ultra3.md
! 48cbbba717e7d45a8963f1f991caa2ee  gcc/config/sparc/visintrin.h
! 8c19a00c4c62daa42dea9efc26c2621d  gcc/config/sparc/vxworks.h
  5e0da0cb45fdd1424679c054727e1bfd  gcc/config/sparc/x-sparc
! 8c65cad2ec26adfb80a8411f73245146  gcc/config/stormy16/constraints.md
! 45a3624f7368cee7df854ce0aefc5ec7  gcc/config/stormy16/predicates.md
! 1b17fcb0c5f894e4f9aaa818df62fe9e  gcc/config/stormy16/stormy-abi
! cf8f1ec6b22f77619d0748b31128a406  gcc/config/stormy16/stormy16-protos.h
! 9923e811f86c0571e0f08d84754804e2  gcc/config/stormy16/stormy16.cc
! 434e53667b82e4d41b23c5c07f57efb5  gcc/config/stormy16/stormy16.h
! aad4e1f2824f42f41ba193319785aa8f  gcc/config/stormy16/stormy16.md
! b06d94d851e104bc65bc09aa483e1d6f  gcc/config/stormy16/stormy16.opt
  83f5016198e7f4905149f32898b70e29  gcc/config/stormy16/stormy16.opt.urls
! 71e59a6ba56b820bb01039036499d82b  gcc/config/t-darwin
! 0e2836b856310a2d36d507cd1cfb9c8c  gcc/config/t-dragonfly
! 3a0aff1a84efeb4ba0d2c5abc8a1471f  gcc/config/t-freebsd
! d48572648b8d8b42ce778da16be06ad5  gcc/config/t-fuchsia
! 00559e09228dc130c2e9a220e577885a  gcc/config/t-glibc
! c3e3b396509204abb8707a978479ee73  gcc/config/t-libunwind
! b96f8736e86a58d6598743892940471c  gcc/config/t-linux
! eeafeba7dc7b1e97e043e0ad27d108af  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
! dcf157eed0112dbf67df6297c0f529e4  gcc/config/t-netbsd
  1aacff07575e71ba693f03e992cf4e49  gcc/config/t-openbsd
! 6f89f6cca3c80aa133b52ad5243beaf0  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! b7f4122a2f55943d0695762fa9fae560  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
! 926160c023a90ab686fb3c72192cba08  gcc/config/t-vxworks
! 73c7d281e1aefa4b212e139ac69cc1b3  gcc/config/t-winnt
  17fd5cabcc31b720b23bad47cf7fe84c  gcc/config/tm-dwarf2.h
! ef7e691f110a8f82b4ff41bf98cf76f2  gcc/config/usegas.h
  a6ae71a556271cc116214b3e9e87d867  gcc/config/usegld.h
! 3c862f2da3c6468a7c5e4e1a58e7bc49  gcc/config/v850/constraints.md
! 05bedf8ee27537603700552f055f8e51  gcc/config/v850/predicates.md
! 35c3efadc3f10286dbb7a4c3ee7c4b32  gcc/config/v850/rtems.h
  41b5d5e91cc905b1e3ba5de47db5f9c6  gcc/config/v850/t-rtems
! 25dee5a401ab25fff665b76b834c9de4  gcc/config/v850/t-v850
! cc0f0c6d48a534fffd3a216baaa63aca  gcc/config/v850/v850-c.cc
! 8f11297e77458ea2a866ab741bf45d30  gcc/config/v850/v850-modes.def
! 4fba3794d8f4c996813f3f011b259929  gcc/config/v850/v850-opts.h
! 1fc1c5ef4c01d74432d25fd4c89a159d  gcc/config/v850/v850-protos.h
! c10e2a71a4ff7279d736f979a277f161  gcc/config/v850/v850.cc
! 3475bc333320d4282bd4a4342099b5f6  gcc/config/v850/v850.h
! 93f6d65f25af65f8eeae905c97500497  gcc/config/v850/v850.md
! 1cdff0901df87d09db8ede9707ffe9f6  gcc/config/v850/v850.opt
! a468e17714a27ef6feaa7c153e67907a  gcc/config/v850/v850.opt.urls
! a0e1d91480eb5353c6687b36f64b466e  gcc/config/vax/builtins.md
! 87ee04b425c009755d052b044ea1412a  gcc/config/vax/constraints.md
! afe54b36157b748770a1b69a66810564  gcc/config/vax/elf.h
! 0f8a7de372f323e96417866ceed61aa9  gcc/config/vax/elf.opt
  ffe8c3dbf2e5ade855212ca387dfd0ac  gcc/config/vax/elf.opt.urls
! 326f0fbbb70074b14c90a6de563d27da  gcc/config/vax/linux.h
! 560cf5194fc75b778b1bf7617d23e3ba  gcc/config/vax/netbsd-elf.h
! 017a662e0daa8efd41e3f646816cc960  gcc/config/vax/openbsd.h
! f3ca5a9c7642ccc55bc72ecac38b0312  gcc/config/vax/openbsd1.h
! b626d860c343d873c5c18c343ad30f36  gcc/config/vax/predicates.md
! 2945940128e8576a550b426f957fca2c  gcc/config/vax/vax-modes.def
! d7cb356f9fecd713ff5194865f8d8173  gcc/config/vax/vax-protos.h
! d6ec281776489bd1ad94d64876f5af12  gcc/config/vax/vax.cc
! a51e7b0537c77e3398591603e7748765  gcc/config/vax/vax.h
! d5f8144170270a4d61b1b0c9c662ba34  gcc/config/vax/vax.md
! 84f1233d12afb81233c4aff574547d07  gcc/config/vax/vax.opt
! 6e18ff936a1a9e18a82aaa3e19e5c5fe  gcc/config/vax/vax.opt.urls
! c09f65693ee2b00a2b1f0031654ab7d1  gcc/config/visium/constraints.md
! 9014bc25af2f10953e3b87d03ad35510  gcc/config/visium/elf.h
! eefde807c96dac9d12b68bf5889d8b24  gcc/config/visium/gr5.md
! 80c7e731a84c07c9923100a9d3d1bfed  gcc/config/visium/gr6.md
! d2b2ca416a513fadbb50089b712ef8ec  gcc/config/visium/predicates.md
! 414ab07e7e7e957d25491f78f62fc6b9  gcc/config/visium/t-visium
! 3a04e685f76b7a15ce1b554bffd56026  gcc/config/visium/visium-modes.def
! 4b2d8068c45be7659171eb6f4515cba8  gcc/config/visium/visium-opts.h
! 7805c69e72aaa1250dfd844a06569d0f  gcc/config/visium/visium-passes.def
! 265a4fc2a637836565de42fcdf9e1215  gcc/config/visium/visium-protos.h
! 192c6c111f966145a477d5a7a4d6d957  gcc/config/visium/visium.cc
! 514c12690a4fcb3d37c70519e6234159  gcc/config/visium/visium.h
! 86abede24648c392e9686552bd2c3701  gcc/config/visium/visium.md
! 07ea52f5d9eabaf01dc050e7a8b4d74a  gcc/config/visium/visium.opt
  cb58a5003b350acfc6b46e18686c6041  gcc/config/visium/visium.opt.urls
! ada361ba1541890b3e3b974814270db1  gcc/config/vms/make-crtlmap.awk
! 89f15e26d8046f6bfcafb265ac6dd05b  gcc/config/vms/t-vms
! 3b9ee420c9257ee242c00fd3fc0dd4e0  gcc/config/vms/t-vmsnative
! 950e689541f38c6f1e519a46483fad5f  gcc/config/vms/vms-ar.c
! c1e6425a15684fea342211d5e0e96c5b  gcc/config/vms/vms-c.cc
  c4603dec4151d376a2092ed7555c06d7  gcc/config/vms/vms-crtlmap.map
! 4a50c682bbec41832501d9d2ce1026c5  gcc/config/vms/vms-f.cc
! af0c71e0bebb67af52f06cdf2fdff232  gcc/config/vms/vms-ld.c
! 08f571b21c493a7a95fb8764790a12fc  gcc/config/vms/vms-opts.h
! 5518bc2bf47c81bdab29d8c9f3fd0411  gcc/config/vms/vms-protos.h
! f2420f412861c9121ef9f07067335983  gcc/config/vms/vms-stdint.h
! 2987eed153f6e3f9e0029eaa407a6477  gcc/config/vms/vms.cc
! 93b0af62b5bba135c170480380c8ce10  gcc/config/vms/vms.h
! ca163e6aacb68b0d303adb2981360f75  gcc/config/vms/vms.opt
  4cc4a480573474816840755220793eea  gcc/config/vms/vms.opt.urls
! 09c8effa47ff0e4cc32109ba518d8a43  gcc/config/vms/x-vms
! 8e90c3ca1a1d45b74532d83bed0a8d41  gcc/config/vms/xm-vms.h
! dde527cb9daed6946783daa6a57d6b19  gcc/config/vx-common.h
! 11eb3b40747a96c197b0d1440d75be32  gcc/config/vxworks-c.cc
! ce458f0e313bbc0a1c4256ba2659fed9  gcc/config/vxworks-driver.cc
! d4a88e536b28dddec08e5677992738ee  gcc/config/vxworks-dummy.h
! 7082eb47dfa622b3fb2f2c0e735f2f4f  gcc/config/vxworks-rust.cc
! dc2887d238be0e2e0ae132653120939d  gcc/config/vxworks-smp.opt
  3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
! c273ceef7d1eecc04bc84d30fa76c359  gcc/config/vxworks-stdint.h
! 7226b24af0b3368df3b088e0070d88e3  gcc/config/vxworks.cc
! 783ed805ba2fe5fbdcaa4b3dff922b23  gcc/config/vxworks.h
! f6433daf40a59d3c4d9060ca22e30641  gcc/config/vxworks.opt
  3452aecee51149d81f83ff52b39acead  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
  2c7fb7482d87758a9305ce4fec4c94ea  gcc/config/vxworks/_yvals-wrapper.h
*************** de29289842da20c73d7041c958de931d  gcc/co
*** 5331,5339 ****
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
  e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
! 8711c2f3ac6f9de5d1e4b9fd7f829424  gcc/config/vxworksae.h
! 7e31f0397562aa4fd275cc5478878cf4  gcc/config/winnt-c.cc
! e4d7e2b8e188391ef0b7e3e940fa1be0  gcc/config/winnt-rust.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
--- 5472,5480 ----
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
  e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
! 32caad465ff4d16a65330246fb72e452  gcc/config/vxworksae.h
! 114e66bfd8aaf38be7eb032da92299c1  gcc/config/winnt-c.cc
! d21f09c47f24bd26a51424057a3b5e34  gcc/config/winnt-rust.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
*************** e4d7e2b8e188391ef0b7e3e940fa1be0  gcc/co
*** 5341,5913 ****
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! 3cee7074aa7cddc3462099478016a3c5  gcc/config/xtensa/constraints.md
! 5cc70d16cc6a905eef1510a65ad4f8cb  gcc/config/xtensa/elf.h
! 72c05753254c55dd46fff04894121231  gcc/config/xtensa/elf.opt
  f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
! c62ef8d11e32213a817df50a852a2ce9  gcc/config/xtensa/linux.h
! 286ade1fcd7635429c683a8b6badf124  gcc/config/xtensa/predicates.md
! 354a95df1ae98c2c5f03a62a81aa649d  gcc/config/xtensa/t-xtensa
! e97f5da7184df401d7a5e85122d50beb  gcc/config/xtensa/uclinux.h
! 05655df2f21196b3d68fbeb962af7f56  gcc/config/xtensa/uclinux.opt
  83fbfe1c588f31edbd8e4a77807087fb  gcc/config/xtensa/uclinux.opt.urls
! 0f7ff1053c46d4db57fcd905857db326  gcc/config/xtensa/xtensa-dynconfig.cc
! ada5d66a2369be4a955465a6e4eb8c40  gcc/config/xtensa/xtensa-opts.h
! c6fd7ebf8e5de13b7b86cc752888bbf7  gcc/config/xtensa/xtensa-protos.h
! e39fbc1efc9306edf11feb2c8e574d00  gcc/config/xtensa/xtensa.cc
! 054113e5b6cc1e68c7707bfa666f32d0  gcc/config/xtensa/xtensa.h
! 091e4857c740530a3e86986eb0b00257  gcc/config/xtensa/xtensa.md
! 46e0d23511cfc2a24b12db0a07e39093  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! 77cbf5b464d26a1e0d6a8178adc958ee  gcc/configure
! 7278f1500f288d7fb41158cfb3220e4c  gcc/configure.ac
! 5972b8ff2fe88708ed4ec23776bf1701  gcc/context.cc
! 52b17b28143186732f26298b000bc5bd  gcc/context.h
! ef6eb019220dc23fd0adccd9bdd5c35e  gcc/convert.cc
! b2245059a9571ee7345914f533817909  gcc/convert.h
! 3ec3393ac38dfddb60842d39351b0cd1  gcc/coretypes.h
! d36a2aabdf8da39363d9be0efef739b0  gcc/coroutine-builtins.def
! c59586748f2760da4b4b93526be5cc64  gcc/coroutine-passes.cc
! f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
! bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! af412f04a3ac0c8536c4fee0f5e598ec  gcc/cp/ChangeLog
! d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
! f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
! ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
! ac79d39c8f3c366690783d0bbed06bae  gcc/cp/ChangeLog-1996
! 2b8d2f3eb3ba5be4de98b26d2891ee02  gcc/cp/ChangeLog-1997
! 805b55f1eba88e839a85b3d9a159b21a  gcc/cp/ChangeLog-1998
! 791e6319c71c68b702f214b77c1acf9f  gcc/cp/ChangeLog-1999
! 97cea8486b1016f6e1d07f5af9314e64  gcc/cp/ChangeLog-2000
! 8c90408ac80788ec986beb55935ab06d  gcc/cp/ChangeLog-2001
! a409813e0664f85a4d3091516626eab8  gcc/cp/ChangeLog-2002
! b8b58d8439915c292bbbf5fe60bef761  gcc/cp/ChangeLog-2003
! 5946d5b6fb024325c0b850b4cabecc49  gcc/cp/ChangeLog-2004
! d4bbf60b5084d533b2d05c177f40a3d3  gcc/cp/ChangeLog-2005
! eb1c8093874cfce69a7202559ac071d8  gcc/cp/ChangeLog-2006
! 519184c77e9e33a42056f46256ec06c8  gcc/cp/ChangeLog-2007
! 33cc199ae79a9a09f184ba865378f5aa  gcc/cp/ChangeLog-2008
! 62814140469c0e3a3012e8da1f4953f4  gcc/cp/ChangeLog-2009
! c66a323401bc0a31ded5a36d2a9e5337  gcc/cp/ChangeLog-2010
! 2f5983dfbb74f2ba93b91d31c788cc24  gcc/cp/ChangeLog-2011
  abf2d28a341385ffa71ccdd523c8fb03  gcc/cp/ChangeLog-2012
  345392d9b4fa933b10becc0c92667efb  gcc/cp/ChangeLog-2013
  c9813fd83e5dfd5ed375b072a52db2c4  gcc/cp/ChangeLog-2014
! 495bafb167a5715b4a53a1134343fd92  gcc/cp/ChangeLog-2015
  c70c873ca0345be312457bdc551e3636  gcc/cp/ChangeLog-2016
  965f4de4d6e16d776ab9b1a3e169c08e  gcc/cp/ChangeLog-2017
  f6ebb1c64d8e002666e58a4da0d97ecb  gcc/cp/ChangeLog-2018
  6e4e23f29e05a4d68f00e1e0306fe285  gcc/cp/ChangeLog-2019
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  bb663add91c7d9a78c9ac229a8930cef  gcc/cp/ChangeLog-2021
! cb06dcbb3232403bb30ebd0d7d1feae1  gcc/cp/ChangeLog-2022
! 95a20f9d52a4673ee5505177eed3c42b  gcc/cp/ChangeLog-2023
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 458dd30ec01e1ab016feef4141e9cd70  gcc/cp/Make-lang.in
! da13ce5b639b727927f388b09711aea7  gcc/cp/call.cc
! eb0e2e62caf98260cc2641216d140ae9  gcc/cp/cfns.gperf
! dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
! cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
! c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! 4b6694f8e9aa167c5edfa6a690cf1b83  gcc/cp/constexpr.cc
! 78ef195dda86602dc935e90326bbdb94  gcc/cp/constraint.cc
! c454ea653413867402ff12c6ca04c7ed  gcc/cp/contracts.cc
! bd0b88c1ae53d9b381e7e6ca10b9c7b9  gcc/cp/contracts.h
! 5f6509dae88a775d1985109e454acc42  gcc/cp/coroutines.cc
! fe1a08b54e849498bd3a8aec573a765b  gcc/cp/cp-gimplify.cc
! d3243151c2dc95476f1ffe37daeac128  gcc/cp/cp-lang.cc
! 7c2a3efea776c90aa874253dbc0d63d5  gcc/cp/cp-name-hint.h
! 85e21b04cf2b169a286ee97efb85c1b4  gcc/cp/cp-objcp-common.cc
! 435279c2effa4bff943c983b01d2b6a5  gcc/cp/cp-objcp-common.h
! 821d270a560d4fc013061cdea0f0a956  gcc/cp/cp-trait.def
! a5599d1cd180d05b45d78f09c98ceb60  gcc/cp/cp-tree.def
! 588baeae63cabf348b5317f9665fc203  gcc/cp/cp-tree.h
! e1f1e00efaa3ab325dcde6256bd453ea  gcc/cp/cp-ubsan.cc
! 5836a7129668e078e2db462fc25e3616  gcc/cp/cvt.cc
! 56f39bfaef18eed52575804302d7f065  gcc/cp/cxx-pretty-print.cc
! 08e116dfeec3d3e6814661d5e4274639  gcc/cp/cxx-pretty-print.h
! 8947390d58d06707b7fc5112da286233  gcc/cp/cxxapi-data.csv
! 5fc2d894ffe139fb83f7c71e70460881  gcc/cp/decl.cc
! 1abb8e5bf838320c47bbb41c28ac53c8  gcc/cp/decl.h
! 7f62917ccc32accb948ad878ffb05860  gcc/cp/decl2.cc
! db1260dd767707d8dcbdbdcd7982bfad  gcc/cp/dump.cc
! 59bf1da855227c5935dc3e19aae2d725  gcc/cp/error.cc
! 2bd7d5984b70c2c7549c4af9201f8d2d  gcc/cp/except.cc
! 7dc09b1b70064fa190fd9060df614538  gcc/cp/expr.cc
! a067c19b95bfc08094e338eb152ec647  gcc/cp/friend.cc
! e459328dad760653a7ba4c5c6a0e07b1  gcc/cp/g++spec.cc
! 36027d22493b558f5a557dac9993fd54  gcc/cp/gen-cxxapi-file.py
! 9095eba221a57d9a85f622b01131fc0c  gcc/cp/init.cc
! 429b48aa5d5a613851b461bf01962b31  gcc/cp/lambda.cc
! 66bc6ee758a433ad34ad94d5b839154b  gcc/cp/lang-specs.h
! d12efe90a1bc48c1279579e51d07c2f6  gcc/cp/lex.cc
! c92948054dfa6966f3a6aefc2fe77fef  gcc/cp/logic.cc
! 2a244147f38ac2bf4b4508728fb708e0  gcc/cp/mangle.cc
! 7add7f50dbf2cd5e7154942a14edba9e  gcc/cp/mapper-client.cc
! 7f5ee917afe43784e616d41f8008c5f7  gcc/cp/mapper-client.h
! a5b251983ab6036fe6739433864419c7  gcc/cp/mapper-resolver.cc
! da3c8562ee9142d5a5cd0b76321f3982  gcc/cp/method.cc
! a7607983186f2750214f7b9a88ab3bc7  gcc/cp/module.cc
! 40d7d04afcc94e52f3a500092aa25a5f  gcc/cp/name-lookup.cc
! 4c2302075ee88f154fe1d9d5bc880b38  gcc/cp/name-lookup.h
! 9071e61b746a07f7ae419836317ea8d4  gcc/cp/operators.def
! a5178a17074b2e0f06a19b0af420dbad  gcc/cp/optimize.cc
! 32a26e8733fdff7188117c84f8bccb16  gcc/cp/parser.cc
! 64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! 66d66dda7900566f3b596e4b964eab27  gcc/cp/pt.cc
! c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
! f1b051a1b18a2fb2823f2ca48d577734  gcc/cp/rtti.cc
! 7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
! 0e27254e6b7dc3420341a2919aa3a2d2  gcc/cp/semantics.cc
! ca8df8ebc275aae3373b59e34155cc57  gcc/cp/std-name-hint.gperf
! 94fae0d321122a3989a40631ba86d13b  gcc/cp/std-name-hint.h
! 1a036559dcb5245a9683218a4d662b78  gcc/cp/tree.cc
! ade60cf10e86c87a2d3960a453e78059  gcc/cp/type-utils.h
! 1a63af9a2a9fa4bafe64e9ded8fcfa4f  gcc/cp/typeck.cc
! c63d033454b89a18d34634a17d81d782  gcc/cp/typeck2.cc
! b04e03a3822d8b9ab15575d78d4309f1  gcc/cp/vtable-class-hierarchy.cc
! d9039dac3f86bf082870bf78b964568b  gcc/cppbuiltin.cc
! c2ff7817297154695270be6f932730a6  gcc/cppbuiltin.h
! 191d64b087c6302f97be6681653b1dd0  gcc/cppdefault.cc
! dba9a9584db67bce81cb489ca8b13396  gcc/cppdefault.h
! e507d631984ba5c424cfa8c5586bd54c  gcc/cprop.cc
! 1e9d30c9befb8f20ef42cea7ad665202  gcc/cse.cc
! 6557a89bee5e65b71b1b7c65bc93fff6  gcc/cselib.cc
! 7cb7858299cde7776c4d453abc8d968b  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
! 94a425b811af1e25020f3a86ae78ee7c  gcc/ctfc.h
! 7f33e05a76e2406be70d93293850b281  gcc/ctfout.cc
! 7728bdb608603be5407462bf9b21a545  gcc/d/ChangeLog
! 86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
! 70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
! a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
! a78977a8709e60b2fd0b64d360759abd  gcc/d/ChangeLog-2009
! c4041868131eb1e57a38dfabdc1b2de9  gcc/d/ChangeLog-2010
! db4cc4d60be6279a2f6c49aa5d0b5cd2  gcc/d/ChangeLog-2011
! 7c862b14578b551266631edb0757476b  gcc/d/ChangeLog-2012
! e2757ce417ace40411e582f1892bd621  gcc/d/ChangeLog-2013
! aaed50f554cda133edf7210a7795da61  gcc/d/ChangeLog-2014
! 64fc9f16131ee9ee75ede8ce0a1155fc  gcc/d/ChangeLog-2015
! bceb78f40e91b21668a604125812931c  gcc/d/ChangeLog-2016
! 6a5c0420caa0ca8a0670fcc6768ffad2  gcc/d/ChangeLog-2017
  d46228dde1a38d9a1d640d737074c7c6  gcc/d/ChangeLog-2018
  2bdf87680f3ebc496c728540c3e6d88a  gcc/d/ChangeLog-2019
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
! c7b625d76017d2ec4f8970c167523c57  gcc/d/ChangeLog-2022
! aa32055c6187aaae65fc2885158d5e47  gcc/d/ChangeLog-2023
! a96eb8f711faa206ff585e88316b11d9  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
! f73e07ffa2fced196f38346c405549cb  gcc/d/config-lang.in
! 3ae19f975d50889b5f03df6c38bc0c61  gcc/d/d-attribs.cc
! 15411c6b54ea91d24785d34b3d1671eb  gcc/d/d-builtins.cc
! 39670d0737366b5dde1f601dae52f3a8  gcc/d/d-codegen.cc
! 5a1fb9f5b78bb830327c58023e0a8115  gcc/d/d-compiler.cc
! b61a881ef449869906f48f9dd6b9c591  gcc/d/d-convert.cc
! 1555fa455770d0e0b284cffb87ea144d  gcc/d/d-ctfloat.cc
! 00a34f4c238b4761551445af757ff44b  gcc/d/d-diagnostic.cc
! 10a2bbedfbad177f3e09125ed45b79fc  gcc/d/d-frontend.cc
! 2e5f92187ec88a77ed49ca603eb9b1f3  gcc/d/d-frontend.h
! 8aa70b137bd1c085345321d68708d2bb  gcc/d/d-gimplify.cc
! 53a2becfb65ca792ab570a4c8d909483  gcc/d/d-incpath.cc
! 933fad50b502c1073de1af4c28d29235  gcc/d/d-lang.cc
! 834493e7566d05c07e3987ec8b3c9e3d  gcc/d/d-longdouble.cc
! 9cc6d3e85cc73e5196bb4162bb0673a4  gcc/d/d-port.cc
! f74323ae44ea5fdd0a663d81deb67553  gcc/d/d-spec.cc
! b9c48c809f8cf9c3ab7ae114509d3d1a  gcc/d/d-system.h
! 9aa179202bbb20ad5fdab16cefd7103a  gcc/d/d-target-def.h
! 0f91af6df397b8a405e1868d0435e209  gcc/d/d-target.cc
! 19c6cf49d168af9bf2f674d82cf2e20f  gcc/d/d-target.def
! b19c1c032d04a6e603d0ec0be5eaf210  gcc/d/d-target.h
! b1ac7d5abaf19efc889f97c469081fed  gcc/d/d-tree.def
! b4ed30104da1ee3c62f919545e369805  gcc/d/d-tree.h
! 0ea6a90d5d565d3131100fcb38d9934e  gcc/d/decl.cc
! 9213651de0ab086aa7193a8e1286527d  gcc/d/dmd/MERGE
! 123db03ec877052aff84a8926416b377  gcc/d/dmd/README.md
! 166ecca70dba17c57a2ad2d11c687d71  gcc/d/dmd/VERSION
! a987423a1a73fdf433b3ee00baf12ac7  gcc/d/dmd/access.d
! f44a4c7512fe91b1b1ae9779b613f46d  gcc/d/dmd/aggregate.d
! 17dc2f833e4fef3b10210f1c9f3237d9  gcc/d/dmd/aggregate.h
! 390366a91318aa7fb653d33e7842ab44  gcc/d/dmd/aliasthis.d
! 9f22872279e0b64489b3aa06365945bb  gcc/d/dmd/aliasthis.h
! 8acee6bb28824f71f74ad32624f19b08  gcc/d/dmd/arrayop.d
! 1464679b937b6f791b746f87963a3588  gcc/d/dmd/arraytypes.d
! a8bd8c4e56994404eb995796a56022f8  gcc/d/dmd/arraytypes.h
! 60b849af8e649317918bcbfea8cfb913  gcc/d/dmd/ast_node.d
! 8008dd4d2ef83bdf5fcead561007e915  gcc/d/dmd/ast_node.h
  57cb6c7031a80421f88153e98afe31f3  gcc/d/dmd/astcodegen.d
! b0390ae849327b42b5938fd3bf1d6998  gcc/d/dmd/astenums.d
! 55d5cbbe4b319e66358f69bc52963949  gcc/d/dmd/attrib.d
! e6b6a28cb4122d0e50bdbee424e33b50  gcc/d/dmd/attrib.h
! d703bb43f5ba952027e69f70f56f3cda  gcc/d/dmd/basicmangle.d
! edbc5b2ce719448ee2af00fc2974763e  gcc/d/dmd/blockexit.d
  e4224ccaecb14d942c71d31bef20d78c  gcc/d/dmd/boostlicense.txt
! 7192ab79c26286bf5b98ac72cb8959f1  gcc/d/dmd/builtin.d
! 9babb158322436156ef7d11877b906f0  gcc/d/dmd/canthrow.d
! 24aab4c77056ef8599054d3cc10633eb  gcc/d/dmd/chkformat.d
! fbf76aac4580d4e606f2083c49652ba3  gcc/d/dmd/clone.d
  a439029b15d096cc69638a68c99a808b  gcc/d/dmd/common/README.md
! 02c5d84c2c6f892f4b9867b56720bfba  gcc/d/dmd/common/bitfields.d
! b730f93bd48633323879601a70c975e4  gcc/d/dmd/common/file.d
! da9027fe517ae857f425b5588beb4b4f  gcc/d/dmd/common/outbuffer.d
! b268647fbc0b0d02b48c5ae6c4298428  gcc/d/dmd/common/outbuffer.h
! 3a6cd90da8861ee7f40e28ca02652cc6  gcc/d/dmd/common/smallbuffer.d
! 30a5b23ab4b5b4400e321e4e2e24b74d  gcc/d/dmd/compiler.d
! c5b8b5100cc17c39e00d2396e24a8ae2  gcc/d/dmd/compiler.h
! 2b0f53e98b9a6698789de52cd9bdf871  gcc/d/dmd/cond.d
! 974207d27879534c6d7e8a032b288dd0  gcc/d/dmd/cond.h
! 0e4c95bf22f07d88fd02f7d72e45bdfd  gcc/d/dmd/constfold.d
! 6644633d9ff230fc9ba5d2ed1a557162  gcc/d/dmd/cparse.d
! 90b4c840ccdb055459b804c99a613d42  gcc/d/dmd/cppmangle.d
! 3e88c006bef3b500c752284ebec3a293  gcc/d/dmd/ctfe.h
! 1a70c323aa486fd60b7bf16a27607a05  gcc/d/dmd/ctfeexpr.d
! 29e7dc493c553c183b0d767d03d8c979  gcc/d/dmd/ctorflow.d
! 9372c9d3e300893741c61afdd6c070e5  gcc/d/dmd/cxxfrontend.d
! df13b77ccc39891618c20eda6c4edeef  gcc/d/dmd/dcast.d
! 1544245d410ba0fdfa83a961b693afbf  gcc/d/dmd/dclass.d
! 37cdbfb3b6d7253a6c5a31902fa760ef  gcc/d/dmd/declaration.d
! 3d8c053f8130cecf84fc012d59b4cecd  gcc/d/dmd/declaration.h
! da6642d6bd612f2f1fa0b3b369a5419e  gcc/d/dmd/delegatize.d
! 7142d51c4fb4be8f33c57877d980f065  gcc/d/dmd/denum.d
! 4ca216145037c19c073a8655dbb5127e  gcc/d/dmd/dimport.d
! 6133acf42bf69899f57e8b90aa277237  gcc/d/dmd/dinterpret.d
! db844dbfeca2df65803621a42d10ad80  gcc/d/dmd/dmacro.d
! 8ebafac26283b473944d49249804899d  gcc/d/dmd/dmangle.d
! 7dcd4a414a9bccf848b40bb4a234e780  gcc/d/dmd/dmodule.d
! 7297d74eda1b80ce8e5c34cc0df38c5d  gcc/d/dmd/doc.d
! 47ab6e871a94bda9eb3d31e2e11f4c1c  gcc/d/dmd/doc.h
! fc6b1722c95a2271a9cb8fc0c7a1d18b  gcc/d/dmd/dscope.d
! d5278fe7c5db32975fafc458857667a0  gcc/d/dmd/dstruct.d
! 45ce703f2e906a3f2cfc63433bba850b  gcc/d/dmd/dsymbol.d
! c024d6e2418d3c3ddfc8a840ea249afa  gcc/d/dmd/dsymbol.h
! 75e0928f080208e78efae411ea051454  gcc/d/dmd/dsymbolsem.d
! bd62ca4d64ac29614d9728be703c0e4d  gcc/d/dmd/dtemplate.d
! 6b99b4c1b339fc4ce1cb35a79291b110  gcc/d/dmd/dtoh.d
! 8298ad01471c3284d372e94114af23b0  gcc/d/dmd/dversion.d
! 68eb175e4d77ac80716b7bfa8970dd8a  gcc/d/dmd/entity.d
! 32f72036d1528bec8b9dce327f25db49  gcc/d/dmd/enum.h
! 7f96fc2a0b7feab189b527ad1f4f6243  gcc/d/dmd/enumsem.d
! 4a9d185b789b13f1f2c82f2a6abd3c78  gcc/d/dmd/errors.d
! 102e6b807a3c82ccfc51a847b9d75468  gcc/d/dmd/errors.h
! d8bfad1f5fe27c838b4cab68a6943153  gcc/d/dmd/errorsink.d
! 846ee6361a3e866f039d71eccbbda8af  gcc/d/dmd/escape.d
! f63fadb24d1b9cb950e1372f8814d6db  gcc/d/dmd/expression.d
! ca79875419b22051a83b6396ebae9579  gcc/d/dmd/expression.h
! 0769dbe9f63ffe185672f90f5af026d1  gcc/d/dmd/expressionsem.d
! f2e6b47636d31ff722185a4a4147a10b  gcc/d/dmd/file_manager.d
! 58aa068309aecd228d9c8f3abe090396  gcc/d/dmd/foreachvar.d
! e46a2513798909bcf396a075c0d5f0a6  gcc/d/dmd/func.d
! ebb34eeaa6f7291451d9beeb154f732d  gcc/d/dmd/funcsem.d
! d1d3f3097b83bf7390c42bb079b3e885  gcc/d/dmd/globals.d
! ce2086283fb8a0a28c5b9e97fc41c8ba  gcc/d/dmd/globals.h
! b9e0ec4ab5104a133a782ce6f32b7e0f  gcc/d/dmd/gluelayer.d
! 767a1d80e024def9fed590aaf516c9a7  gcc/d/dmd/hdrgen.d
! 305232ecfeba67978961bd2eb42cafaf  gcc/d/dmd/hdrgen.h
! 93e352c6680f74662ca0c96d2c16cd91  gcc/d/dmd/iasm.d
! 514a02dcc22f4449088037910675d733  gcc/d/dmd/iasmgcc.d
! 680b6cd9a87a2aa1121d417098c976ff  gcc/d/dmd/id.d
! bf5d24f17f3290abd8be02f2cd9f9386  gcc/d/dmd/id.h
! 6f51faa8152ec05696280e38ba2af7d6  gcc/d/dmd/identifier.d
! 606a4cca42596bf840f01601fe84e905  gcc/d/dmd/identifier.h
! 0d98370b22536432224e8706ade72882  gcc/d/dmd/impcnvtab.d
! 05ec9b3e2f7c1f7908a6ed3246c68b5b  gcc/d/dmd/imphint.d
! 6e2a4982c48db2d8dd4d1503ec107528  gcc/d/dmd/import.h
! 867068efa5f631da272b16703a71cfce  gcc/d/dmd/importc.d
! 7d25a27227afa76491c0d53440a74247  gcc/d/dmd/init.d
! 2cc317e1cd7ea958e6b1199fcd35f2e1  gcc/d/dmd/init.h
! 536dec4972f89218d84c8b7e6963bfca  gcc/d/dmd/initsem.d
! 0c268d233e095fe71877679792d5e8a6  gcc/d/dmd/inline.d
! 219c43f8c61d70e6edab432345839030  gcc/d/dmd/intrange.d
! e743c988ad9c0ca61be82e32e4766419  gcc/d/dmd/json.d
! 19fb046e374d97121f32fd573d92dd1c  gcc/d/dmd/json.h
! 213c06b0a7d490cfa22ebd5372ef4286  gcc/d/dmd/lambdacomp.d
! c4d37a3f3987b558c474f5f8e307eb70  gcc/d/dmd/lexer.d
! b0c180ca3f27a9d5e1dd9ff7d70662cd  gcc/d/dmd/location.d
! 49d7550d522bd43c121d62a341eee2a6  gcc/d/dmd/mangle.h
! 455a2f7c2ced69c6c59b404c288eecc5  gcc/d/dmd/module.h
! 02c5741c24e42c39d8c397350def0301  gcc/d/dmd/mtype.d
! 13a9416f5df3a22ae055e99ae2f0f80e  gcc/d/dmd/mtype.h
! 2e1840291c675bcc6d9f0f9f1bde3aa0  gcc/d/dmd/mustuse.d
! ec68729ad43e0b7df527a7d92fb1604a  gcc/d/dmd/nogc.d
! 6c4e1b2f544d387e742044c3ec99c6fa  gcc/d/dmd/nspace.d
! ee4448247382827398a73f9047695d36  gcc/d/dmd/nspace.h
! dfc49c01f706836bfce352a1c4eb7996  gcc/d/dmd/ob.d
! ffda0c60b6e6a3990804304d73572b55  gcc/d/dmd/objc.d
! eedd902ae09754fa0b894e5afadeb116  gcc/d/dmd/objc.h
! b1405b4cc2a48976b4427fd240030dcf  gcc/d/dmd/opover.d
! aa4bde912a8d19f7592e72596fa35617  gcc/d/dmd/optimize.d
! ef2531058f03126388e2c8df27e8c1f9  gcc/d/dmd/parse.d
! 37188684f6bda7dfe1596a265650d6ce  gcc/d/dmd/parsetimevisitor.d
! ee6e0066bd1ecd30866617f68d1387dc  gcc/d/dmd/permissivevisitor.d
! 489ae7e1ce1281935e30b1407ad03c60  gcc/d/dmd/postordervisitor.d
! 85fda4b84e3fb6fd7cddc35febb30070  gcc/d/dmd/pragmasem.d
! fa55c23fcba8a8edf888d8b4efa6cbe5  gcc/d/dmd/printast.d
  f38789894c6b0b28bedba3bb9ec03010  gcc/d/dmd/res/default_ddoc_theme.ddoc
  04f57d64eeeaa73285101503465b193b  gcc/d/dmd/root/README.md
! 0494cc41f0834c1e16f2edb532f30c43  gcc/d/dmd/root/aav.d
! 8a8bd0cd4db43955112c61cc979440a3  gcc/d/dmd/root/array.d
! 2f8ff8269a05d3301afecc9d95a19509  gcc/d/dmd/root/array.h
! ec499e73533d79ab3a0ff52c2c744535  gcc/d/dmd/root/bitarray.d
! c1a102d0a883ad463ec29c9900977bc4  gcc/d/dmd/root/bitarray.h
! ecf15b8fe9be7d5fe86f47cd90aae966  gcc/d/dmd/root/complex.d
! 5437f54b7daee470723f15a0929e1214  gcc/d/dmd/root/complex_t.h
! cc6f9b170f6a187afb1307e38f54fd08  gcc/d/dmd/root/ctfloat.d
! 85f336c3c6118455e79a5bfdb619a321  gcc/d/dmd/root/ctfloat.h
! 8a059b43852f6ea57e7fa76b673d935a  gcc/d/dmd/root/dcompat.h
! a5361b801f63c99fb607d569047bbb17  gcc/d/dmd/root/dsystem.h
! ea2e458c748d8563662c2d890fc9a5a7  gcc/d/dmd/root/file.d
! 63625746081c634015cb3d0a09901293  gcc/d/dmd/root/filename.d
! 3bd0ce7883b8f9db940239244796a1fc  gcc/d/dmd/root/filename.h
! 4ceaa7f126c614f856735b37a89b7984  gcc/d/dmd/root/hash.d
! 9fdcb9f6b0fef4ec2adbbaf5304b248b  gcc/d/dmd/root/longdouble.d
! 0c2a923261f41be786c91f07f102b400  gcc/d/dmd/root/optional.d
! 7f88bdb6743e2cc0ebdec170bf824c62  gcc/d/dmd/root/optional.h
! 12d3bc5e5a5bb76442171e3b4db5c188  gcc/d/dmd/root/port.d
! e9b63fa3371d85ab6a209d680b0728c3  gcc/d/dmd/root/port.h
! 0f3d8809078bbe256bdd3b4a847b15a8  gcc/d/dmd/root/region.d
! 07b6925cd7ffcda9fe4fc19e84d40e85  gcc/d/dmd/root/rmem.d
! ce8c158e63f370c4b0f88b14d2ba6523  gcc/d/dmd/root/rmem.h
! bf218b70d56c662f1dcec8d6091b8cdf  gcc/d/dmd/root/speller.d
! 3d1129e75804006043dda0eb9859ca17  gcc/d/dmd/root/string.d
! 86cdb01679127d59d87186d5815d5ae0  gcc/d/dmd/root/stringtable.d
! a7e02049309f9b84d899f34d6259be9c  gcc/d/dmd/root/utf.d
! 91c3b2c5f62847a41d1c9054d361f3a8  gcc/d/dmd/rootobject.d
! 7de76b389a0e4b6f7c3c1b5840638cfc  gcc/d/dmd/rootobject.h
! 50ba1ef398e2f0578c57157f0bb5a3a8  gcc/d/dmd/safe.d
! 823e07ae34a2f291c21592b53699916e  gcc/d/dmd/sapply.d
! 67c720bf578fc1f9f3a3abbcdc2c148a  gcc/d/dmd/scope.h
! a7162b4a0a706329a7ebaadbd2e25885  gcc/d/dmd/semantic2.d
! 73b9bc474b17d95c3263873cbeb64bff  gcc/d/dmd/semantic3.d
! 6d4b009c41b91fe0dd57e3d680740cda  gcc/d/dmd/sideeffect.d
! 70797cb69ae9ffd9fbf4341b1b8c6f86  gcc/d/dmd/statement.d
! 62683f492278289449727e989068ad76  gcc/d/dmd/statement.h
! 23accd7232594575a824f3243323a62d  gcc/d/dmd/statement_rewrite_walker.d
! 66071432969f30a8c7859013c66049fa  gcc/d/dmd/statementsem.d
! 5726f9d7d67eeceb2049722776b24fd4  gcc/d/dmd/staticassert.d
! 2af57a7fb43bf871584c5f6e456200b6  gcc/d/dmd/staticassert.h
! 6c93c517d0f2fb132c456ba27b0df7a0  gcc/d/dmd/staticcond.d
! bfe456a22457cc257592060ced6c1f49  gcc/d/dmd/stmtstate.d
! f495542fa655e22589b28736db19b83b  gcc/d/dmd/target.d
! cc3c148029fc723feac9e0524b7e2d52  gcc/d/dmd/target.h
! ce1f8faddeade28c5ae62fe74d04909e  gcc/d/dmd/template.h
! dfd91754b0e12f62d723ca1e9f27f74c  gcc/d/dmd/templateparamsem.d
! d74c79ed2b9c547a706fa9ad093296f7  gcc/d/dmd/templatesem.d
! d8bfe1b8a5a24cf5da0e7ae0f25cbdb5  gcc/d/dmd/tokens.d
! efa80649a339ebc0b10baf8b76d01e1e  gcc/d/dmd/tokens.h
! 47c46189231a3db8a52a7b26cb6e63f4  gcc/d/dmd/traits.d
! c0596abbb0c893aeea6daddab486bd7b  gcc/d/dmd/transitivevisitor.d
! a30e9e386ecb4fe657b5d010988f7091  gcc/d/dmd/typesem.d
! 9e2c16e9626c71df74c80633f918f54b  gcc/d/dmd/typinf.d
! fe3adbfe008586887f099739803ad0e9  gcc/d/dmd/typinf.h
! ad0f78ba8b0701a44bdecc5faa124807  gcc/d/dmd/utils.d
! 44c7f391ce2df261118780dad2e204ef  gcc/d/dmd/version.h
! 39f4362c93869c60a676f338ba6aafa1  gcc/d/dmd/visitor.d
! 28ad876b926e1a11eef92fa93a0c76d8  gcc/d/dmd/visitor.h
! 7db0458d8645214b933ab3a59908cc82  gcc/d/expr.cc
! 31c6c893c7016bba33894d4ecb870186  gcc/d/gdc.texi
! b2292b1eddab0999ca356e893894aef3  gcc/d/implement-d.texi
! 6662e24d334b3376f2755f23e6d020ca  gcc/d/imports.cc
! a2a8bcc6e58eb14940ee9d109982d9b8  gcc/d/intrinsics.cc
! a2ff0f8963e08d62bf77e93a1734b6f7  gcc/d/intrinsics.def
! 176d153b406c4fc24092411e1e0a0be6  gcc/d/lang-specs.h
! e92dc5999fefa8bcaa6c0bb0c9e9a040  gcc/d/lang.opt
! 226c02980ab51d1dd3dc58a3bcfb7eaa  gcc/d/lang.opt.urls
! 6077278d139701f464c4824d6a089f2a  gcc/d/longdouble.h
! d70fa556ba3ca62e4b992e91cb0b96d8  gcc/d/modules.cc
! 918b9b087e54573309c3a81fe5289d2a  gcc/d/runtime.cc
! fdd878f60fc02f2c1628ec0b9fc264f0  gcc/d/runtime.def
! d0f4c3717ad53298ccc90fc2ad69bd2d  gcc/d/toir.cc
! ccc865c287ef0afbb841c54b011c8532  gcc/d/typeinfo.cc
! 84818d17e5d943eee7b4ecabe804cb10  gcc/d/types.cc
! 9b691c3fc5f14ea13cd63d6d15b9ea63  gcc/data-streamer-in.cc
! 22fb7e3959d063cf127ad7941fa4f134  gcc/data-streamer-out.cc
! 331b9caf0050578236302ddc6adbad7b  gcc/data-streamer.cc
! ff02ff3d0d4b8770763b7d9ed77d28e9  gcc/data-streamer.h
! f3cf745a34f39f9e0c95baf4079a7db8  gcc/dbgcnt.cc
! 357536e0fbc8d05cd88dda1413131a39  gcc/dbgcnt.def
! af9a57e2d392176d8fa3508c3135fc89  gcc/dbgcnt.h
! 419605ef6575c8c47fda06177aa16ea9  gcc/dce.cc
! dbbdd03d68bb01da86b4972821fbf154  gcc/dce.h
! 26558b6e72f675e3e9b6c786fcc3703c  gcc/ddg.cc
! ad6e5a1af15939d1bb32f846f3eae833  gcc/ddg.h
! 4c00a2f713a54beb04795617a35401c7  gcc/debug.cc
! 6561d9d34899768db205bdfdbaf5424e  gcc/debug.h
! 8ee842646b186eaad9ce169d02e33aa7  gcc/defaults.h
! 0e3c7a5d613039e6be24dbd2420ba7ab  gcc/df-core.cc
! c786d1a48d5a99abb172e621544e16ce  gcc/df-problems.cc
! 6c79a717822b0e865b1d98d9c6f60af9  gcc/df-scan.cc
! e2e02f995d0e8f5573556099f90400eb  gcc/df.h
! 22e6e87c0306a9bbb45eb3924abd96bb  gcc/dfp.cc
! 6639e6fa393d4d695230c8249f7f9cdb  gcc/dfp.h
! 8c7157e2630f68b08b1016a55fbf28a6  gcc/diagnostic-client-data-hooks.h
! 1b2c0bddc4abec6876ffe0c377add384  gcc/diagnostic-color.cc
! eb22ce678f316a3ea10673d9e94ae212  gcc/diagnostic-color.h
! 5d6c5c743c0173fa7b1802a62565d566  gcc/diagnostic-core.h
! 691246fb2a6d6d39ee9fc1050787b7a3  gcc/diagnostic-diagram.h
! e9e04b106b3ea766d0f121755a170a60  gcc/diagnostic-event-id.h
! 4e018c130ecd04c644fe3e84ca7a3895  gcc/diagnostic-format-json.cc
! 92639a7ec6ad112337e7ef016c5060d8  gcc/diagnostic-format-sarif.cc
! 9dab87ebdf87b3b61a07d2b7bdbe3b9d  gcc/diagnostic-format-sarif.h
! a14fcf79c1e70036b39e0dd7547d42a4  gcc/diagnostic-metadata.h
! e8bbee6a5e33ad3d8031cd3af2c03791  gcc/diagnostic-path.h
! 4797c71a20887dd129196931b0cd62a2  gcc/diagnostic-show-locus.cc
! 408fe90eba25ae524e37ff995d545527  gcc/diagnostic-spec.cc
! 8913d6b5f4d620d1cae708e00c4411c3  gcc/diagnostic-spec.h
! c9132e63d297ba23a6f9993e34a99114  gcc/diagnostic-url.h
! 56c14f8de0e7d074d9ebc0a42aa88e2c  gcc/diagnostic.cc
! 66ce1509fa44d91467ea72956bbbeb54  gcc/diagnostic.def
! aa1c9493107eefcfd7a64479fccc57e8  gcc/diagnostic.h
! 1d5406c2c00778685af4d54cedf49ae6  gcc/digraph.cc
! 84e9d01f2dbadb091f992b9902508cb6  gcc/digraph.h
! a84ff6fc2f7744beef98a11d4d3c1c6c  gcc/doc/analyzer.texi
! a665a8e026147fcc1b543c039d9832e4  gcc/doc/avr-mmcu.texi
! b44c0e4fd6840dc6fd667f8f678ef28e  gcc/doc/bugreport.texi
! 40403afec90bef8912a33c829ef123d4  gcc/doc/cfg.texi
! 7c0efad1ccaaaafbfb1dd4b2c3fecaa5  gcc/doc/collect2.texi
! ed484c80158c26981aa92eb9db02bca1  gcc/doc/compat.texi
! 87e175f992cc3447d3ed679343ed51bf  gcc/doc/configfiles.texi
! 8500f86c6eeecad392959c7e0cff5e6e  gcc/doc/configterms.texi
! 4d2454c26871b7e16f203fafd8a16eff  gcc/doc/contrib.texi
! bcb568abf327b00f131bad9c9f7e7bb3  gcc/doc/contribute.texi
! 85d5f69ed6143edf999040961b7d5b01  gcc/doc/cpp.1
! 2292f38ceca98d5bb6aed1df37bbed46  gcc/doc/cpp.info
! aff712138d9414a9fe1716ba2d1587c6  gcc/doc/cpp.texi
! 93589248ae7c20fb580e9f207c4144fc  gcc/doc/cppdiropts.texi
! 0a2477e1c71642a6f431e44b14622752  gcc/doc/cppenv.texi
! bc3b4fb7b90196bb7cb475c648b3430c  gcc/doc/cppinternals.info
! 0d7cad95038d3ab60de21c0b6bf9d5f4  gcc/doc/cppinternals.texi
! 2d634d06b732b28d386a9095438628af  gcc/doc/cppopts.texi
! ac6062ca0cac2513de84bff3633d1352  gcc/doc/cppwarnopts.texi
! 374e4433b1393ee9d91e493fde571373  gcc/doc/extend.texi
! 36d2f8d35ab67c1ac73a3efd75a38aac  gcc/doc/fragments.texi
! b5f11d19f8c6228987f197fa8d65a9a3  gcc/doc/frontends.texi
! b135bee582def994f76f61e38565e256  gcc/doc/fsf-funding.7
! 64ba1bd5aa81b92a866cbeddfca24fb2  gcc/doc/g++.1
! 64ba1bd5aa81b92a866cbeddfca24fb2  gcc/doc/gcc.1
! ec492df3ea4d68c7ffa898cab899d6a3  gcc/doc/gcc.info
! 7040b312fc54f9359916634c463730b1  gcc/doc/gcc.texi
! 238cc6b72f81e7fce93fd0e4e03bec32  gcc/doc/gccinstall.info
! 4c0453ed02c206207590ba8211b9fe2a  gcc/doc/gccint.info
! d2a951eb3484c8af7edaccda1a4be08b  gcc/doc/gccint.texi
! 8b09e771fece174129acceeee7359782  gcc/doc/gcov-dump.1
! 5a424a8818a97ec6666383758d38ebab  gcc/doc/gcov-dump.texi
! 4c1c0a9c4587fa1dca964aba2c720d9f  gcc/doc/gcov-tool.1
! add92879a4857f715951ddaa6e770058  gcc/doc/gcov-tool.texi
! a5c70761a11daa56657d1e3981fa5507  gcc/doc/gcov.1
! 4aab84b1792e1157b40a77e359cbe32a  gcc/doc/gcov.texi
! 7f660598e1931c414df299ccfd785529  gcc/doc/generic.texi
! 24c72e9f6df2e4e1db12a899bd4be68d  gcc/doc/gfdl.7
! 0112d30d7795478cb6adbf2925e80b0d  gcc/doc/gfortran.1
! 48a379c2e4ebafac8675d80865f16aaf  gcc/doc/gimple.texi
! 2bd96cf0123a441f27bd3fccaa7b3dcb  gcc/doc/gm2.texi
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! 633858c8ad11a9fe9092e389f6aad89b  gcc/doc/gpl.7
! 008636cf6a73b2a679e8c8259aec3d79  gcc/doc/gty.texi
! a05b7ba0afedc246e50b186f08721687  gcc/doc/headerdirs.texi
! 7f0c07d5823270acc42cb62767eb4fc1  gcc/doc/hostconfig.texi
! 82bd8ec3630f17b3a124b0f13e276934  gcc/doc/implement-c.texi
! bb6c0501956266c8d43a2c2ecd36941c  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
  8787976f426cd52da24a856cd41d87be  gcc/doc/include/funding.texi
! ef644ebebe5d8bca5dd86653f2a242b7  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 5126a5dbfcf7d299e4747525f51a10c2  gcc/doc/install.texi
! 2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
! 26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! 29d0f9056bdd0c7f613f7c96c4564e88  gcc/doc/invoke.texi
! 4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
! d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
! 1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
! e5f53263e6dd9a4c82de06f4e4219458  gcc/doc/lto-dump.1
! c4c96046878c6a7d1cec0d55bdc1d3c0  gcc/doc/lto-dump.texi
! f7e393ecf55da7875ffe48cf97d93113  gcc/doc/lto.texi
! 3805b40075ad0234e5c1094fb3685065  gcc/doc/makefile.texi
! af3fd517733d45195dea5652ca52345b  gcc/doc/match-and-simplify.texi
! 7e5385442503aff6253445d0dda0eb2a  gcc/doc/md.texi
! f539b10f0713111acf400805382795b6  gcc/doc/objc.texi
! 82f85103d0aa6e6233e9bd8adafb8e9c  gcc/doc/optinfo.texi
! 5be54c7b0f0bbedc905e8331f77cc319  gcc/doc/options.texi
! c8f7d73c0019711303d537b68567d9c3  gcc/doc/passes.texi
! 1eb34e50f7b23e22fe3a9b778b063ffa  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
! ccd9b82bd3e39bc1102ae6658779b9fa  gcc/doc/portability.texi
! b54aca370d7104c8f824313f42db5d88  gcc/doc/rtl.texi
! 1b7d041bff2f4a6d961caaddaaa68e68  gcc/doc/service.texi
! 75ecf124b89bf77ae0337cdf3a0a40ce  gcc/doc/sourcebuild.texi
! 148dbf041706b95032dd58b402f407b1  gcc/doc/standards.texi
! 038a30ce651e170de4f7b22accfbe968  gcc/doc/tm.texi
! 4d9d7c9f4dbdca0202cedd85a4304c0e  gcc/doc/tm.texi.in
! 2278e656d9d5fc3124829fd9596b9e55  gcc/doc/tree-ssa.texi
! 3aac4c714da658c0d252f8b3c337c4a6  gcc/doc/trouble.texi
! a8b6cbb8b63c3454d4dfb39db985f57d  gcc/doc/ux.texi
! 55bb307bece71c6e8d6f5e8e17696671  gcc/dojump.cc
! 68293972ee39d50fee319560b56c3755  gcc/dojump.h
! c1dcd6f3a738eed32cfd895aa1d7c8a6  gcc/dominance.cc
! 6816f4c4e48cab8f520a01146c77ac6e  gcc/dominance.h
! 34a2cd1cfcfdb98613a8202229c4d3cf  gcc/domwalk.cc
! 335a5919c5f3951441bdb1c23a4aec9f  gcc/domwalk.h
! daff71b08321afe3ee27afca24431814  gcc/double-int.cc
! 20c1bf25156bf31a0cc993c6c4f3c197  gcc/double-int.h
! 4dba037c17d097f86cdd7e2a435c7704  gcc/dse.cc
! 4b55186c3cb7afeeef3ef595c7712646  gcc/dump-context.h
! de190af17b56f025e38cc7b80eb99c8b  gcc/dumpfile.cc
! 8d72acdb05890d8e08bdff52e2110299  gcc/dumpfile.h
! bf004846f6a5531c6749cdef5f5e91f6  gcc/dwarf2asm.cc
! ca9033ff37a39734edcb55c478a3a1fa  gcc/dwarf2asm.h
! 40224310d2b6e68a058c4c1079917a1f  gcc/dwarf2cfi.cc
! 163e5e9e8282834ce39f40a4696495a8  gcc/dwarf2ctf.cc
! be8084cbe55394042e43e039c8ed9452  gcc/dwarf2ctf.h
! ac317e8c918731719d2ececb1b5b9db8  gcc/dwarf2out.cc
! 15ac2573846d37a9fc761ca237cfcbb3  gcc/dwarf2out.h
! 949b4f69bfb006cfb1da508bd737e550  gcc/early-remat.cc
! 764b36482faefc5dac455631acf458cb  gcc/edit-context.cc
! 26a88a11700d977deee844d0e5518500  gcc/edit-context.h
! 7f8c1fa82fa9a2f4eaca5b79c5e4dd77  gcc/emit-rtl.cc
! c298cd0daba91db2cd1321da1a414535  gcc/emit-rtl.h
! 188b362c0e3d7ab7be6d688ff0098242  gcc/errors.cc
! af8d2de8b465cb45874825193dc3bf97  gcc/errors.h
! b255d6f4457722f14775f9aa8a929830  gcc/escaped_string.h
! a5fc41cc98ae6fa01564177547cd44a6  gcc/et-forest.cc
! 8fe2b834a1c158abe9a5eeba693f1038  gcc/et-forest.h
! f3cef0b55016dffde8455841d6ffa5a1  gcc/except.cc
! 294743b365febe990dd4a2c96ae3829b  gcc/except.h
! 2372f40e0b8d7fea3f7a324caf3414f6  gcc/exec-tool.in
! 101682a5aeb491e1097d4cc5d2df1a3c  gcc/explow.cc
! 0a8ed642c186cdddebb6a5ab6beeb4fc  gcc/explow.h
! 3f5de924bb9264196d387c8e10be4889  gcc/expmed.cc
! 698a745f400cd248d2a1c1b1bb392dba  gcc/expmed.h
! 4baf1ca324c6784d02f3bc0ed7cc973b  gcc/expr.cc
! b94536f82db12f3d8eb00942b9d6336c  gcc/expr.h
! 0a07d298ca38921bb2e7424255927983  gcc/fibonacci_heap.cc
! 306f3330039cf9bff9d26f3f64465ff4  gcc/fibonacci_heap.h
! a43a9b94e705e86ad90f4a5f91117cc6  gcc/file-find.cc
! 33dc79bb052f00d288904f8f51fe9a56  gcc/file-find.h
! 9ce851f606069da28537ea2610354edb  gcc/file-prefix-map.cc
! 23460e9d5f714b4c92d070ce4e8850d4  gcc/file-prefix-map.h
! 16570c7c41dad556ec5a2d517cfeb4f7  gcc/final.cc
! 417554d2d034fd13b8e584c37694fa49  gcc/fixed-value.cc
! f509ae019760fb711e40cefd2283fb1a  gcc/fixed-value.h
! 93312491577dbdc275772a99528a516a  gcc/flag-types.h
! 4832215f7646ad49b3833ee7b2e3a035  gcc/flags.h
! f6cf52e81c3175f2874b197050a59478  gcc/fold-const-call.cc
! dce7dac7e905ada28c6563d930b531eb  gcc/fold-const-call.h
! 57df4daab059677935679c021394e56a  gcc/fold-const.cc
! 62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
! 5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 6cfaf6517cbaad1395e92e07a55c9aba  gcc/fortran/ChangeLog
! 3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
! d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
! bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
! bf89a0b40cc401b7e1deae956dbf77c3  gcc/fortran/ChangeLog-2005
! 0954c808e15b1f26aa642a7d12da6a51  gcc/fortran/ChangeLog-2006
! f851636001c3cc77afa05855758aa841  gcc/fortran/ChangeLog-2007
! 9011011d24df80cf2a4f7a4d5ec721b6  gcc/fortran/ChangeLog-2008
! 88dba6a69702351f2a811c6e767f4ab4  gcc/fortran/ChangeLog-2009
! 504c2329ea77a97c3258813244207d44  gcc/fortran/ChangeLog-2010
! 97e4d235f1220c0efdf537127b8c4aa6  gcc/fortran/ChangeLog-2011
  2458518b34551ff044d8c22a432c9677  gcc/fortran/ChangeLog-2012
  00850cecb79d4311fae2a48fc37c9017  gcc/fortran/ChangeLog-2013
  b378eb9df97ed252ce2624646d05df15  gcc/fortran/ChangeLog-2014
--- 5482,6112 ----
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! 7c8b0ac3dd0d44b0cb0ad12655327da6  gcc/config/xtensa/constraints.md
! ef292bd063751273e93912005054621c  gcc/config/xtensa/elf.h
! 784e78d129e667eb51b57cd3bb4cf498  gcc/config/xtensa/elf.opt
  f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
! 7d826e1325729fc54de80be38daf7484  gcc/config/xtensa/linux.h
! c62fa42da120431da1d1d60a9a882b80  gcc/config/xtensa/predicates.md
! f3a2992c8e85b13e50b261e26924d83f  gcc/config/xtensa/t-xtensa
! 4cf53f30f4e09026e45f314036f2449e  gcc/config/xtensa/uclinux.h
! 4d05c7a063b0b89e0e6f4cf516e0da92  gcc/config/xtensa/uclinux.opt
  83fbfe1c588f31edbd8e4a77807087fb  gcc/config/xtensa/uclinux.opt.urls
! 87fc5c87547999f715031b4ff99fb67b  gcc/config/xtensa/xtensa-dynconfig.cc
! c7be35a23fd70ac184dd9072319304c7  gcc/config/xtensa/xtensa-opts.h
! e59f31891252abdd41eedc784b25ed6b  gcc/config/xtensa/xtensa-protos.h
! f871bc00d7e05c10ef5277cad8f27aa4  gcc/config/xtensa/xtensa.cc
! 5cb04061b3da377a69382a940d1039cf  gcc/config/xtensa/xtensa.h
! 6c41f581d014120fecf4738375010780  gcc/config/xtensa/xtensa.md
! f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! b31a0fb032d9e72293dcb11bb6da520a  gcc/configure
! 627e2a993a728ff76a6527cfbcb997ce  gcc/configure.ac
! ec3aa966ca3fe9c6f84d4378160541b6  gcc/context.cc
! d1bde52b8dee0c0c5506d7e320b1bb61  gcc/context.h
! a9c3cddee4e237141062720b72fe38cd  gcc/convert.cc
! 0bc6fd549059c635d460ac1b2be648d8  gcc/convert.h
! 9a52d4bcaec7df09971007540ad91f77  gcc/coretypes.h
! 086834dbb33047e862ba6b6171eda392  gcc/coroutine-builtins.def
! 5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
! 2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
! 722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 5e5d9fbe4f972aa51d86b45a39b3745f  gcc/cp/ChangeLog
! 70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
! 7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
! 3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
! 13bbc8ef2fe1653436b3c5e748a5bec6  gcc/cp/ChangeLog-1996
! 9462cec2e3c757d49ae030d347c6a95c  gcc/cp/ChangeLog-1997
! fe4deccdc779a17be03085be1d3da186  gcc/cp/ChangeLog-1998
! 5b133ea32fb6bea8ce77f5915ac9789a  gcc/cp/ChangeLog-1999
! fceefda4f662cd52440b63e54b2ffa6b  gcc/cp/ChangeLog-2000
! 1444d15e048623dc771958cc822c0c40  gcc/cp/ChangeLog-2001
! fb05ce7f4a84a165d8def9e61c3f24df  gcc/cp/ChangeLog-2002
! 20081be21734a23f5f9f96ed8743aef7  gcc/cp/ChangeLog-2003
! 7f1676ef6e33c762d912e36fbf7a73f2  gcc/cp/ChangeLog-2004
! 0dcd7f0376f8ce30e32b4da55abb62c2  gcc/cp/ChangeLog-2005
! 438b50630bd095fcb236c1ec6bf8267f  gcc/cp/ChangeLog-2006
! 107fff1c126e2fcf3aeaa1880cd6815d  gcc/cp/ChangeLog-2007
! 9911de31bd357f7850b1b5ef7c0b47f4  gcc/cp/ChangeLog-2008
! e62d60445cb0ce8d7cdf9903ed269ff8  gcc/cp/ChangeLog-2009
! 79da55cd31ccdb765df65e79b81a93af  gcc/cp/ChangeLog-2010
! a6331cee13958640c261d3624e6e1c63  gcc/cp/ChangeLog-2011
  abf2d28a341385ffa71ccdd523c8fb03  gcc/cp/ChangeLog-2012
  345392d9b4fa933b10becc0c92667efb  gcc/cp/ChangeLog-2013
  c9813fd83e5dfd5ed375b072a52db2c4  gcc/cp/ChangeLog-2014
! 551c0ff4354cd67c64f4f9f363f33c52  gcc/cp/ChangeLog-2015
  c70c873ca0345be312457bdc551e3636  gcc/cp/ChangeLog-2016
  965f4de4d6e16d776ab9b1a3e169c08e  gcc/cp/ChangeLog-2017
  f6ebb1c64d8e002666e58a4da0d97ecb  gcc/cp/ChangeLog-2018
  6e4e23f29e05a4d68f00e1e0306fe285  gcc/cp/ChangeLog-2019
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  bb663add91c7d9a78c9ac229a8930cef  gcc/cp/ChangeLog-2021
! 87139463e5bce001743744309389b657  gcc/cp/ChangeLog-2022
! bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp/ChangeLog-2023
! 127c45265cd7f72c5d2ea0259d4bdb1e  gcc/cp/ChangeLog-2024
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 08c713f559f658009bf94d139a24c2b6  gcc/cp/Make-lang.in
! f8d105353c88fb102e9216372bc4b70c  gcc/cp/call.cc
! fce8de27014c109814b3f69be6a5d4f6  gcc/cp/cfns.gperf
! 68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
! cec7345d7171e235b7f27a238de4fa64  gcc/cp/class.cc
! ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! 31bd06a945e18703b7cc48d3b5609d68  gcc/cp/constexpr.cc
! d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
! a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
! 1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! 0c8a19006662033503ace04c9a20ceae  gcc/cp/coroutines.cc
! 50f398cce18f76ec8d119ddd9d133f78  gcc/cp/coroutines.h
! e74b2ddf1eacc2950a54441a502c96fd  gcc/cp/cp-gimplify.cc
! 3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
! 0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
! a46a06074cd68181251e3541b4689021  gcc/cp/cp-objcp-common.cc
! 7475950f94ad8c7218f451feb5e71424  gcc/cp/cp-objcp-common.h
! 6a7554ee20d49ef2b66e0b7cc2a696a1  gcc/cp/cp-trait.def
! ce9f2ccac9e2657417018bc8f8064421  gcc/cp/cp-tree.def
! 642bce7f232a34002ce8d21cc5a490e3  gcc/cp/cp-tree.h
! e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
! 64450079a2dd9e5a8767bb5e4bf3d904  gcc/cp/cvt.cc
! 29df6edf4122d4be24abc0274514c9bc  gcc/cp/cxx-pretty-print.cc
! 955ecfa636599a39229757737e271819  gcc/cp/cxx-pretty-print.h
! c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
! f581854200ed2ce356fd6d80042ba80a  gcc/cp/decl.cc
! 7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
! e0410cc035ac7d226e68eb3547437d74  gcc/cp/decl2.cc
! 691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! fa4cdfbca134d42fa0239a8533452558  gcc/cp/error.cc
! 86f47b28d673601022d0205cdd718f9d  gcc/cp/except.cc
! f1581b369c1962c764264b1b2af61ca2  gcc/cp/expr.cc
! 3b7c086cfb4ed89e6ae40a09ca796704  gcc/cp/friend.cc
! 3d079dd21f8a1ab95fb2d1f96d799283  gcc/cp/g++spec.cc
! 30b9ed40d39cf78b95792ef5dca2aebb  gcc/cp/gen-cxxapi-file.py
! fcad66262e081d6623d845cd6343e41f  gcc/cp/init.cc
! 3dfd2e1aae6b864c9e67ea611106e2ee  gcc/cp/lambda.cc
! ac5d78393361c1bcb930119a896a14ca  gcc/cp/lang-specs.h
! 81021bc440a536664fa5365b475b36c5  gcc/cp/lex.cc
! aaf76a9b03fd0532d2904aef004fd66a  gcc/cp/logic.cc
! 397b8de2f52e596d7d76347ee016a9b4  gcc/cp/mangle.cc
! 936bd061907a7a899c3285cf17b17674  gcc/cp/mapper-client.cc
! 6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
! 44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
! 2a25642ff43728ad2b4093c3713d76cc  gcc/cp/method.cc
! df6380dbe2392416a3ffc1bebaaa1c58  gcc/cp/module.cc
! 57a2738ac89da7ae1f50d96350c2232e  gcc/cp/name-lookup.cc
! 9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
! e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
! e307cd2481b4d87a27cab40dea7c3afb  gcc/cp/optimize.cc
! 7d0eb319afee7250dc9dac31e77e428e  gcc/cp/parser.cc
! e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 56a29885be36ccf5e72e3baf58deda62  gcc/cp/pt.cc
! a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
! e8d83883ad4ed2c5539f51d578552642  gcc/cp/rtti.cc
! a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
! 5f55e38a4d7eb82749ebcc23ad8f79d9  gcc/cp/semantics.cc
! b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
! 67c8ace75ad63aabe8efb9f9c016b437  gcc/cp/std-name-hint.h
! e3798db73e0b3e892e772acbe569a5b8  gcc/cp/tree.cc
! bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
! 85fae1b0abaa0af8321e22f847ee2fad  gcc/cp/typeck.cc
! 1fea2b59dbf93b59626d7546b3c1f738  gcc/cp/typeck2.cc
! aa6906e22dc44502ca268580e5b8dfdd  gcc/cp/vtable-class-hierarchy.cc
! c74d2f6cc5dcb1bf1953c093eb903b37  gcc/cppbuiltin.cc
! 05a136afb0839d5238cd1390602e748e  gcc/cppbuiltin.h
! 62463b8ce77c96f627912a8ba35acea6  gcc/cppdefault.cc
! eea2c218106edc18c40919ad04f90bf8  gcc/cppdefault.h
! 8608c219e99c630df8a20d1c1136246e  gcc/cprop.cc
! 707af5ebd869ba97993a146f0958c180  gcc/crc-verification.cc
! ec1e9c9456a8530e241079823e2fc126  gcc/crc-verification.h
! 9d3c9741dc7aa7fb63e5b4b472a4feb1  gcc/cse.cc
! 4d2f6ca081e1447a5bc287da4f7f1f06  gcc/cselib.cc
! 44a1aa31be5edacb5f5644352fbb669c  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! 15aef1bfc1d9935a8df200d3827b59c6  gcc/ctfc.cc
! 3df123e84e7c118eb423425f2100e3b5  gcc/ctfc.h
! aec0cd5251de880945c96eb21e97eac9  gcc/ctfout.cc
! 430071212aebef2f9dcc9ce311b81709  gcc/d/ChangeLog
! 94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
! 1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
! 362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
! eb4de9935eb63085c4753d79037d6ab9  gcc/d/ChangeLog-2009
! e26724271a9b90e45ea070ffc7ca94ce  gcc/d/ChangeLog-2010
! 73ebc70f16d0aa507867c2f4e1874784  gcc/d/ChangeLog-2011
! 49f0753cead7cd956ee693b5e4b973ae  gcc/d/ChangeLog-2012
! 3a5edcb407fc78354a753fa2dc2206b4  gcc/d/ChangeLog-2013
! 40c14cb8e9ea0b359b82581018b3c6c3  gcc/d/ChangeLog-2014
! 85742b685bfb7438ba7cf328729f87cb  gcc/d/ChangeLog-2015
! c283522d6f9421905ac52dc74c7d8e31  gcc/d/ChangeLog-2016
! 9df3c71a0067765ee1ff56670b0d8c4a  gcc/d/ChangeLog-2017
  d46228dde1a38d9a1d640d737074c7c6  gcc/d/ChangeLog-2018
  2bdf87680f3ebc496c728540c3e6d88a  gcc/d/ChangeLog-2019
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
! 4c5437f5e539631a8d148cc332eb2c2f  gcc/d/ChangeLog-2022
! 4c7bd4d8dfadc612e88b52f720d6557a  gcc/d/ChangeLog-2023
! 515b6760ee63421bed220a6d374a6795  gcc/d/ChangeLog-2024
! bea890f9a34a3828dac2371f1f1796bf  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
! 477218c51620c217d3332559ce436248  gcc/d/config-lang.in
! 09eb2aeb6f4b5107b4a75f4d41928cf1  gcc/d/d-attribs.cc
! 8592d6b7573b4c1b70a9d87b70dd115a  gcc/d/d-builtins.cc
! 266a80ef78f59a5018f92015cdfb5a0a  gcc/d/d-codegen.cc
! 70ffb6bfceda6c8afd5611f3b4a675cd  gcc/d/d-compiler.cc
! 186086ac63d9d73dbed30ccc75c3ae62  gcc/d/d-convert.cc
! 973d6dc819b7a8aee527f89ad0f00e08  gcc/d/d-ctfloat.cc
! e4a31bc23588216ddf30ac8e625a173f  gcc/d/d-diagnostic.cc
! 949e72b27b36c126d810adb5e31283bb  gcc/d/d-frontend.cc
! 749304aa6de563eed68793be22f7cd6e  gcc/d/d-frontend.h
! b2113d2270102ca524bf783ba0720409  gcc/d/d-gimplify.cc
! b197902ac3f4ed472b28f5e6b7c07aa8  gcc/d/d-incpath.cc
! 9d341fed5cd56d0944d3739952484691  gcc/d/d-lang.cc
! 8e2c018aecf39b4921be7eb633e892bf  gcc/d/d-longdouble.cc
! c804430a913eaec7363c0683fca5b24a  gcc/d/d-port.cc
! 2be676d2b24fad57cc9b6b9cbee736f3  gcc/d/d-spec.cc
! b42111bc83ef5eba5936e92037011166  gcc/d/d-system.h
! 450c5da271da15be56bc4fa871414687  gcc/d/d-target-def.h
! 60f3189e8c693ba0f5e748ca1e14b29f  gcc/d/d-target.cc
! 63f8e6c184a583ac0b634ec720bf6927  gcc/d/d-target.def
! a9a0e94499b8e62705e548d30fa9f8ea  gcc/d/d-target.h
! e7ed7a15a28cf7d93c8a5e3520d4ca4e  gcc/d/d-tree.def
! aee13a120e7caed00b270b16b9d16f5d  gcc/d/d-tree.h
! 356b0733844a963e49711111be346d6b  gcc/d/decl.cc
! e6320d8163671e43446e19cf6b36a9ce  gcc/d/dmd/MERGE
! ed33de5a82bf58502d473e8138f61580  gcc/d/dmd/README.md
! a0b3558bc182f44d37822b5dc59b6307  gcc/d/dmd/VERSION
! b818ddf6a39740acae2eb47295e0f1fb  gcc/d/dmd/access.d
! fb6d738af52d8cad02dcac9315926090  gcc/d/dmd/aggregate.d
! 8b7abca10989b57e2b1a337047b541a9  gcc/d/dmd/aggregate.h
! e944b3cc5977f3146f04cacf8649d8c0  gcc/d/dmd/aliasthis.d
! 21422b359d959535fbad9bf3f51f180b  gcc/d/dmd/aliasthis.h
! 55b4f49be939e30abb173343e03dd335  gcc/d/dmd/arrayop.d
! 5fa512dfd95add6ad41d6efbff2a737a  gcc/d/dmd/arraytypes.d
! cf930f6cc74f2bc7d767e940c2ffd21b  gcc/d/dmd/arraytypes.h
! 01cbde9d907bb77b44dbe04be21a6f71  gcc/d/dmd/ast_node.d
! 70f509253981e582b4624b0083ff0168  gcc/d/dmd/ast_node.h
  57cb6c7031a80421f88153e98afe31f3  gcc/d/dmd/astcodegen.d
! 0760f0c07f9d2cf437bc15301cc8cfdb  gcc/d/dmd/astenums.d
! 933563785c5912a16fce5201dcd5f5fa  gcc/d/dmd/attrib.d
! 1c20c574865b06fa534ff7b176b2b697  gcc/d/dmd/attrib.h
! 943555853b7c59e093cd477cd9794ea8  gcc/d/dmd/attribsem.d
! a09656153939f703358bc0a6c41ef21a  gcc/d/dmd/blockexit.d
  e4224ccaecb14d942c71d31bef20d78c  gcc/d/dmd/boostlicense.txt
! ffbb2d95e81b841ff7bac85a068c0112  gcc/d/dmd/builtin.d
! 1a6ea937a8db72e91d95ff5b34c5ef62  gcc/d/dmd/canthrow.d
! f06dcabf07ca33abd8042db6230fb74d  gcc/d/dmd/chkformat.d
! 2cb1dc7e6ee2505c0c0be7884176359f  gcc/d/dmd/clone.d
  a439029b15d096cc69638a68c99a808b  gcc/d/dmd/common/README.md
! 037a0a18739d15a7b061c28dd94b1b6d  gcc/d/dmd/common/bitfields.d
! 3628ea219c6c040036b67adfa51494c0  gcc/d/dmd/common/charactertables.d
! 6cceed759afed97d547aff75c2c15c79  gcc/d/dmd/common/charactertables.h
! 975edc6df7e6175d4dabacf4ae9d4347  gcc/d/dmd/common/file.d
! 8ff83d9e9276172a609feb344d4d66a6  gcc/d/dmd/common/identifiertables.d
! 7507056373b7526b5c5e404d0a9b15fe  gcc/d/dmd/common/outbuffer.d
! be5d2a22cd7b54b40de5ce69a5cc4e3e  gcc/d/dmd/common/outbuffer.h
! 3477544e923a7b650bb698eb226c8257  gcc/d/dmd/common/smallbuffer.d
! 6f057b8810015d334068d7cbbf962353  gcc/d/dmd/compiler.d
! fbb0ae262e4dd1a6040c572e7821dc73  gcc/d/dmd/compiler.h
! a1a559dd0220e4d7ccfb7fc30f58cf41  gcc/d/dmd/cond.d
! 74929b69e4641ec2be9c8da627c6d8e0  gcc/d/dmd/cond.h
! e09e2817f528e498e2afe76c674d9464  gcc/d/dmd/constfold.d
! 0cf100b027320fe92c77d033f480aff8  gcc/d/dmd/cparse.d
! cb8ca96ec048cb51fb90613655fea60b  gcc/d/dmd/ctfe.h
! dbc7f47a944225ff8b9ebb7faecf4fe5  gcc/d/dmd/ctfeexpr.d
! e8058c4a1e43bd8181d63ea36242b7aa  gcc/d/dmd/ctorflow.d
! 5b942e14b2c08f4e8a1a0c162d11a55d  gcc/d/dmd/cxxfrontend.d
! 3a83643e1fe8bbb21cfe6ce5368545fb  gcc/d/dmd/dcast.d
! 43d7fecf6deb021aa24d8432c93c46dd  gcc/d/dmd/dclass.d
! a48a4ee2cd3540e5c77ea306a2d3846b  gcc/d/dmd/declaration.d
! 24d816a785cadcf068f576433f7a84de  gcc/d/dmd/declaration.h
! 56970f8125d1808817a082af7c0b9f9c  gcc/d/dmd/delegatize.d
! 0ce7e1188ca76c29c36c950566d8d73f  gcc/d/dmd/denum.d
! b7652028ee382a4aaecb375c91e4977e  gcc/d/dmd/deps.d
! e709d6a28beb11f8c651582f70acb0f6  gcc/d/dmd/dimport.d
! 2de665e69f77072b66d454a25089fe1c  gcc/d/dmd/dinterpret.d
! b3d304f752e7ec702c1dd074f2b48ef7  gcc/d/dmd/dmacro.d
! b2b026993f2da0b3e9e7f6290fc8bcb6  gcc/d/dmd/dmodule.d
! 2be8ff7f27948129a43b303b576d07ce  gcc/d/dmd/doc.d
! 195f1b30a72207fedc96bc6e1f7e659d  gcc/d/dmd/doc.h
! 531f0b0dc26d5fa766c1a6ad8fd5c6a1  gcc/d/dmd/dscope.d
! 15e39c85ba0ade700511655050de5a21  gcc/d/dmd/dstruct.d
! eb0aeb1f0ede07f12adcc05cd6cf0744  gcc/d/dmd/dsymbol.d
! ca1a08093ef4a65eb384cd88cc4f8fca  gcc/d/dmd/dsymbol.h
! 73142db8d99a598b158f5124d7cfe32e  gcc/d/dmd/dsymbolsem.d
! e2c508484c40d69a3987f1fdb57bfe37  gcc/d/dmd/dtemplate.d
! 096134456f999372823467d453c441b6  gcc/d/dmd/dtoh.d
! 9b51e5c381ea385410b2e7d3a2b7d7e1  gcc/d/dmd/dversion.d
! 48b7e8ef8c8fb8f90bf8f5c0109396ba  gcc/d/dmd/entity.d
! ff052580ded9445c92fd8a55b6690c37  gcc/d/dmd/enum.h
! ec4304aa83bc81704d89b6a14d71673b  gcc/d/dmd/enumsem.d
! 99564ec2089202a4a13cabcb17caecbb  gcc/d/dmd/errors.d
! c11c5cfd4fdd11b63a4352df36a9ef5f  gcc/d/dmd/errors.h
! 7e088d325b6d26d2f38488fa13bac5e6  gcc/d/dmd/errorsink.d
! f438269b47c2d3efda8470c29ab8ed29  gcc/d/dmd/escape.d
! 9da8f80dd8307a5dfb834dcf6cc54456  gcc/d/dmd/expression.d
! a3dce4bb1f49cc3ab05a60dffee4296e  gcc/d/dmd/expression.h
! 8ecfd89b60aa46ad66146d3fcdbd73b6  gcc/d/dmd/expressionsem.d
! be033e6fad53a08d4db9763e381f7ab9  gcc/d/dmd/file_manager.d
! b350694b946368a7b829819a884d2256  gcc/d/dmd/func.d
! 367d03c9aaa2264acc9c9a79333fc77c  gcc/d/dmd/funcsem.d
! 8f5471686a185426111fe7bad5e7c16f  gcc/d/dmd/globals.d
! 1aff601b9d844aa7c7f172e0326e0a5c  gcc/d/dmd/globals.h
! 2d82a89e8ef7c65cc95cf88a6cf932e9  gcc/d/dmd/gluelayer.d
! bb5ac9d0411e4dcec791ec353f20dd92  gcc/d/dmd/hdrgen.d
! 28b2f516151b8a169e2ddc3380136d36  gcc/d/dmd/hdrgen.h
! 9a798c0a26c7a5dc788fe64bb4a10c2f  gcc/d/dmd/iasm.d
! 3f0d9e5dd9097f9ac6ae960d24e6fdc4  gcc/d/dmd/iasmgcc.d
! 39a2594895da0df639a53a9ce8e212d2  gcc/d/dmd/id.d
! b9968103c21e7625be8785b7233d5458  gcc/d/dmd/id.h
! 85b6e19f3d843166d17225762d1f9551  gcc/d/dmd/identifier.d
! 361dab90a974e3a1568338b6e038361a  gcc/d/dmd/identifier.h
! 69d47c63cbd0c5a1755dc0d9ce0e0f43  gcc/d/dmd/impcnvtab.d
! 9ed00161498e0e88fe43a745daa5ba0b  gcc/d/dmd/imphint.d
! aa787e5b252ffd6599d42b4396eb5f85  gcc/d/dmd/import.h
! ff3aae9ccc633b83b935d92fbc6e64b5  gcc/d/dmd/importc.d
! ebaa8569b51ce450bf547c517fa32112  gcc/d/dmd/init.d
! b1a67469ba80a1b41c849d88c1b56076  gcc/d/dmd/init.h
! 08b5c1f81e2466fec59938b82fde35f0  gcc/d/dmd/initsem.d
! ff633e312d7cee2d4d876ad633695f1a  gcc/d/dmd/inline.d
! cca417e92c8a4a90d788db454961363d  gcc/d/dmd/intrange.d
! 5a6abdcc965745ca7057547bcd91f2dd  gcc/d/dmd/json.d
! 987273b221dd2deeb71b6c3186560a57  gcc/d/dmd/json.h
! 5fc447f9b7821d4a97a41a33a9f30857  gcc/d/dmd/lambdacomp.d
! 2ef9ff81b5bfe38823f36e884bc4a705  gcc/d/dmd/lexer.d
! 39a9c1637884040efe49ada4620a6201  gcc/d/dmd/location.d
! 28fa018da64572c2e2dc65eb4df10f79  gcc/d/dmd/mangle.h
! 435a784d47452f93ee9b3bf600bfa6c8  gcc/d/dmd/mangle/basic.d
! ce74443c05b827b691522d0f218d7e75  gcc/d/dmd/mangle/cpp.d
! e7dcc9989eafae433d0f8702e4dc9d18  gcc/d/dmd/mangle/package.d
! 36c628e36853d4fe1cb6688ba8e28e74  gcc/d/dmd/module.h
! ba24c35b38b66fc3a7dd97153ba75ee7  gcc/d/dmd/mtype.d
! f51b18fe3e0bfc9473eb73697c1b3217  gcc/d/dmd/mtype.h
! f0b76ef08e13c32744e26b71b0149f21  gcc/d/dmd/mustuse.d
! c301fa7382b518a2c84dc5e3ab6d7e0e  gcc/d/dmd/nogc.d
! 1037fb3845c07e23d5bf86d6dcd9b2a4  gcc/d/dmd/nspace.d
! 05fc90e8a6483addc0deab1cc270da9d  gcc/d/dmd/nspace.h
! a16bcb156b728cd5ef64bbb2d71e6ac6  gcc/d/dmd/ob.d
! 11d29276ab54409a37e4600b49b42681  gcc/d/dmd/objc.d
! 3d6c6139ccbadbe77a2bbcc1ae115744  gcc/d/dmd/objc.h
! 70ca32795af16f10e3965ee138dcec7a  gcc/d/dmd/opover.d
! 14cdae4c4c5b15d21b4d2f7a83328620  gcc/d/dmd/optimize.d
! 3d71db68a6ca472193f2d715125efe59  gcc/d/dmd/parse.d
! 80f0858e0622b90b499915c0ba12f30c  gcc/d/dmd/pragmasem.d
! af8f146f317e2645be528c4cd0c2a2c8  gcc/d/dmd/printast.d
  f38789894c6b0b28bedba3bb9ec03010  gcc/d/dmd/res/default_ddoc_theme.ddoc
  04f57d64eeeaa73285101503465b193b  gcc/d/dmd/root/README.md
! 7016ea479a4606b18f1325d8cb8b8dd4  gcc/d/dmd/root/aav.d
! d172a60dd5f3fb0b9d284cd995ca5250  gcc/d/dmd/root/array.d
! 3a41bdad676b84caeb898e9ad930e5f3  gcc/d/dmd/root/array.h
! 0fa1ced8009674df801797bfc9bad57a  gcc/d/dmd/root/bitarray.d
! c4ef4ae6beb95af2dac84081c2254eb4  gcc/d/dmd/root/bitarray.h
! 29b412c675d8c525e044de66f3665708  gcc/d/dmd/root/complex.d
! a16a8a0a72db5419fc4f65cf1e7296f6  gcc/d/dmd/root/complex_t.h
! 13a3bc8b8362286c1b3fc3984f5bb5a4  gcc/d/dmd/root/ctfloat.d
! 9dacfdea29663209087516775689ca39  gcc/d/dmd/root/ctfloat.h
! 90d7b81f18ef716664525dda431ae045  gcc/d/dmd/root/dcompat.h
! 9cdcf4bb946000ffbede4f94bf09c037  gcc/d/dmd/root/dsystem.h
! 51237492c7a6682d3a0fd602a817f605  gcc/d/dmd/root/file.d
! a5933a7c4e4d960242e3c5fdbe722d40  gcc/d/dmd/root/filename.d
! c4f196857093b4920d7e76e2dccfce55  gcc/d/dmd/root/filename.h
! 696a66f062eee480ed2762889c5c4776  gcc/d/dmd/root/hash.d
! fe67c467bebd6ee464deb23a85264c4d  gcc/d/dmd/root/longdouble.d
! 00323e5d7995f24455211f287db2933b  gcc/d/dmd/root/optional.d
! 18757675f78f2f0ef44cf35d70708a95  gcc/d/dmd/root/optional.h
! f975c3bc54608b3a33eefc00f171075f  gcc/d/dmd/root/port.d
! 614f435a172de91c9a8094be94e18bb0  gcc/d/dmd/root/port.h
! 24ea3bf0ca03a4b0ff0ecc07ce5b6745  gcc/d/dmd/root/region.d
! c2b9df8f9b600a71ea5e5bf20e0311e7  gcc/d/dmd/root/rmem.d
! 689a9ecaf1d57bde83bc13e4cadca086  gcc/d/dmd/root/rmem.h
! b9117650575c4354e53bc2c692c5cfe1  gcc/d/dmd/root/speller.d
! 53f0b683ef2c6ef4c1e7d51cd363e9d2  gcc/d/dmd/root/string.d
! 621afdc53c48e845b400be40cd42d7c0  gcc/d/dmd/root/stringtable.d
! 18265bb7937a4657c9b8dcca3a08557f  gcc/d/dmd/root/utf.d
! 4aa5e14d4aef6717daa6346b1e22978b  gcc/d/dmd/rootobject.d
! 35bb066b88f98925eafe80f5ce892847  gcc/d/dmd/rootobject.h
! c6e4bbbfe757057b64a5745846f8ca67  gcc/d/dmd/safe.d
! 8e526100e7bf3490d6aae3b27cd6c64a  gcc/d/dmd/scope.h
! 0f370f208efa374833d9529d5b97e663  gcc/d/dmd/semantic2.d
! 0ec93e93ca84e6d8e6d1782eadeeb3ea  gcc/d/dmd/semantic3.d
! 4f24eea98190d73e27db8d6d7b019ebe  gcc/d/dmd/sideeffect.d
! 674263f7e7411b6eed907302b3d46d4d  gcc/d/dmd/statement.d
! edb6d8223f05ab2864b358638d06ed9a  gcc/d/dmd/statement.h
! 4f9bc15277b3a727096b6b4f22850af7  gcc/d/dmd/statementsem.d
! a7e9cf50e8838033012ebcec68f57592  gcc/d/dmd/staticassert.d
! 999cc27e94e3906d8ed37c8c3c20a7fe  gcc/d/dmd/staticassert.h
! 134f187402100d2906a774b8ab3427b7  gcc/d/dmd/staticcond.d
! 851920b00561bdde300cee788d9492cd  gcc/d/dmd/stmtstate.d
! 7c3c024842bc047e8b7fb73a16b67c2b  gcc/d/dmd/target.d
! de14423883f55275283db320ae89c3e8  gcc/d/dmd/target.h
! 7444c8d8cd3c5fce2d40f15d8dd5bbe8  gcc/d/dmd/template.h
! f8585ff2e05dec64066829cf36679520  gcc/d/dmd/templateparamsem.d
! 4192fc208cd0cc51e50d47b5f0b83c95  gcc/d/dmd/templatesem.d
! 93c08d197b7750e5b8801132db8b7fe4  gcc/d/dmd/timetrace.d
! 77d0ae6e05d855d690e9fb765f09e4ee  gcc/d/dmd/tokens.d
! bc4b3569ee8f00b59569280216e7b102  gcc/d/dmd/tokens.h
! f9b656c3757577132b122ea27cd3a2a1  gcc/d/dmd/traits.d
! e9e71a20188e2dffecc2608e1b4a2e64  gcc/d/dmd/typesem.d
! 025f593bbc65910e06f0e09de2380d1f  gcc/d/dmd/typinf.d
! f372f14ecea0c837d34ff099f7aef870  gcc/d/dmd/typinf.h
! af456a0015267d13132f5795b031b8c6  gcc/d/dmd/utils.d
! f0862f7d5405cfe64d4c8d0d7618be1b  gcc/d/dmd/version.h
! fef5dd05c8434b3837dae89255d97dca  gcc/d/dmd/visitor.h
! 9b26582c9e4a3532010a8d7ae6768aeb  gcc/d/dmd/visitor/foreachvar.d
! a3cd575b3088ab06aa23c81c93ace7e7  gcc/d/dmd/visitor/package.d
! 5b977a7d574f832916a0653671ca2073  gcc/d/dmd/visitor/parsetime.d
! 3db1547c5541dea5b6b7b3580f33c117  gcc/d/dmd/visitor/permissive.d
! 0d315416551f6b73f1ad743aac72797f  gcc/d/dmd/visitor/postorder.d
! 9b22040efac930e873d2a2565a2867da  gcc/d/dmd/visitor/statement_rewrite_walker.d
! 1cbd9c1c0ec261f10e9d9443fc16f987  gcc/d/dmd/visitor/transitive.d
! 148514a7a1077ac4c32e33c4b762e0eb  gcc/d/expr.cc
! 2057d17858e2ef23807352a10a9cda35  gcc/d/gdc.texi
! a12b39ae150ae1bf58a64debe13dee03  gcc/d/implement-d.texi
! 39f5715b0c2d657196f43a31dc6c33fc  gcc/d/imports.cc
! 8556c0c5b483d162e5776100e25f4f68  gcc/d/intrinsics.cc
! a6bd55081c9dd986133bd4ab66befcb0  gcc/d/intrinsics.def
! 9310947fcf561e2c91f967880a87713f  gcc/d/lang-specs.h
! e2a40a3e957a8150f1097f3411f7ff67  gcc/d/lang.opt
! 57dce5bde4c8ba4bc8b1781a96db70bf  gcc/d/lang.opt.urls
! a7bde590e8469b2ffb53fcd2a06033af  gcc/d/longdouble.h
! 532169cc522c2173657371a604a5c583  gcc/d/modules.cc
! 5be4062eb2b710347ff98e3d8c9cfdde  gcc/d/runtime.cc
! 14ab71dfd3fc06afb477ec01aa077f09  gcc/d/runtime.def
! a9fb549193a42256914944461c880024  gcc/d/toir.cc
! 4af3aaebbbb939e7e67ed0f4349a4524  gcc/d/typeinfo.cc
! 6cca916bc4f20b74318d58d6429ce267  gcc/d/types.cc
! 257fb956c4a8d2279293b031e195fdaa  gcc/data-streamer-in.cc
! 80498597d8e433b8a182777985c81a1a  gcc/data-streamer-out.cc
! ef3c86ca257ef8868e25ee7cc2b20076  gcc/data-streamer.cc
! efd0d65352dd9ab950a71198b039f320  gcc/data-streamer.h
! 4b80c7e1ffb2f0e45d378f7e18e22c57  gcc/dbgcnt.cc
! a985f6ee5c2a1e3dee65a0513261d5e9  gcc/dbgcnt.def
! 587fbfaba2ee5beaed87c67ffa68168a  gcc/dbgcnt.h
! 5a524e70afb594c8678644fc35dedbe3  gcc/dce.cc
! 79668c144eb12020025db62fc913959b  gcc/dce.h
! c941c742c1dd89806e98bbaae2f3d552  gcc/ddg.cc
! f37a4f98bbb2210fd8e8fe68925aab73  gcc/ddg.h
! a4c54450630ab4406b2e21b4baa912e2  gcc/debug.cc
! d6389bf409aaa3f1caa9dbe8c1dd3e86  gcc/debug.h
! e4d89cb5b2193b73b577d8871e0d8f3e  gcc/defaults.h
! 5942b7e5a9008e79df837738f0150e56  gcc/df-core.cc
! b9d078b88658c87d713e175705b687be  gcc/df-problems.cc
! 151d675229ec23b6da3f2cc6ee3d7367  gcc/df-scan.cc
! 243e0658083f87e4b05d8914b98053c2  gcc/df.h
! 66523dd93f89ddda9400b525ef7736b9  gcc/dfp.cc
! 3a50d04564ba93f9be134a744fdd40f1  gcc/dfp.h
! aa13c8ce0ee0d35ca8e78fef45b93463  gcc/diagnostic-buffer.h
! 2fa0c5aeaa9f47417aaa1d8823bf1d4d  gcc/diagnostic-client-data-hooks.h
! e0a7cab8692eb3cbd4b00c4494e48d70  gcc/diagnostic-color.cc
! 65522110920a99041a18ed5b093986fd  gcc/diagnostic-color.h
! b14c12c33aee36a4d29601627a1a67da  gcc/diagnostic-core.h
! be405b20597be971120eee5709db8c4a  gcc/diagnostic-diagram.h
! a24233a009f0c9d29e034e6ba63082de  gcc/diagnostic-event-id.h
! 541be36efb19722196822437b834609d  gcc/diagnostic-format-json.cc
! 4820ce24c1774a9e97b247c6f278a014  gcc/diagnostic-format-sarif.cc
! 3bb62254fe1be687eefe0e5a24ac93bd  gcc/diagnostic-format-sarif.h
! 1b2d0d3102cf6a56bdf867930a56be70  gcc/diagnostic-format-text.cc
! 66be909d880de2f75a896a45bf395ab6  gcc/diagnostic-format-text.h
! b5c51195e6a718f41eac587ecac1bc2f  gcc/diagnostic-format.h
! c57536f66ae2965d5f7308e1fe115f1e  gcc/diagnostic-global-context.cc
! ddb5e19e6f3ff8224aedd1a60eaad23e  gcc/diagnostic-highlight-colors.h
! dd85098d241db456b95090aed8ac8026  gcc/diagnostic-label-effects.h
! e472f6066cc64e9f1cee0136404f0751  gcc/diagnostic-macro-unwinding.cc
! 124a9446918f0c1e7a8586ac4aea6729  gcc/diagnostic-macro-unwinding.h
! 065e0c81be159417eacd100742107ecc  gcc/diagnostic-metadata.h
! 82872e2dda4c941f9bea22fb443385d7  gcc/diagnostic-output-file.h
! 94992fc0d21e0b6802109ee5a5c94ff8  gcc/diagnostic-path.cc
! f9aa42c3949fe8350dd491e4c2322156  gcc/diagnostic-path.h
! f076eff7f3e051217ab4840269c685f8  gcc/diagnostic-show-locus.cc
! 81a24429bc8eb52cbe24d574c6ec7e53  gcc/diagnostic-spec.cc
! 375a39d1eff397ae7fcdce6e05c76d50  gcc/diagnostic-spec.h
! dabd477d68c54372f8519e7c917d4a11  gcc/diagnostic-url.h
! c860597ec3a9ac45886199796b826b85  gcc/diagnostic.cc
! 03b04b0fb78353ca76570e5ef92cf756  gcc/diagnostic.def
! c61c4737f1261c516fd04ddbb16c545e  gcc/diagnostic.h
! bec68218d528467fd119bf2cd02bc358  gcc/digraph.cc
! 18e73120a6e21ceac1adce40777000cf  gcc/digraph.h
! bb82bca6383082ead28f6f21f0a6223f  gcc/doc/analyzer.texi
! c3ebdb865864f4dbf15cdac76b30aa00  gcc/doc/avr-mmcu.texi
! 628200aba31497f381052220465b8927  gcc/doc/bugreport.texi
! 4f969d517229b2a96d02a2cc09fb85f1  gcc/doc/cfg.texi
! 5c6f1e0d6b6424f27020c9e5c08807d4  gcc/doc/collect2.texi
! 7e85b41b8bfd83e867fe01211ff8acab  gcc/doc/compat.texi
! 7d96d860669404f29ce2df33edf9bcbb  gcc/doc/configfiles.texi
! 83d0f5c88fe90065e5c5538b9a3f123a  gcc/doc/configterms.texi
! b8ee6e280a9d71c11b682c6942c6bd21  gcc/doc/contrib.texi
! 2bb27ef73a41b4f2fff3dd7b08febbfd  gcc/doc/contribute.texi
! 9e00b4325b75c11f397828136a1f518b  gcc/doc/cpp.1
! d2c9838bd6946464532d21d34dfa8363  gcc/doc/cpp.info
! dc09e43d1d1ebad6e6902b9c5b7aec73  gcc/doc/cpp.texi
! 808d1c20ece40d5e2d9c8daa6cdaabf6  gcc/doc/cppdiropts.texi
! acdfc663791e4321372e79932070d05d  gcc/doc/cppenv.texi
! 0aee3773123bcab3d1c39e9853df34b9  gcc/doc/cppinternals.info
! 81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
! 1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
! 14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! 886e92d86132b8ff4335d6f1b8b8050d  gcc/doc/extend.texi
! ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
! cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
! f6a47702cd8be6f695e48385af1ae5ad  gcc/doc/fsf-funding.7
! f2a76bb83a26690e051f421e9541a453  gcc/doc/g++.1
! f2a76bb83a26690e051f421e9541a453  gcc/doc/gcc.1
! c63506185ed313b2187460cd7496299a  gcc/doc/gcc.info
! a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
! f4a33a7b274aac2029d9ec3084a1237c  gcc/doc/gccgo.1
! 75a0d4256fe63e4647b949bfa82ed3f3  gcc/doc/gccgo.info
! 2dd97214e860d1cd8499e461e3cd48c3  gcc/doc/gccinstall.info
! d5dba9737df6335a8637579c985ee952  gcc/doc/gccint.info
! 5b1e6708c5ac4fb500ef658bfa6fe3d0  gcc/doc/gccint.texi
! 8554133129dddad804248b1d42786fc6  gcc/doc/gcov-dump.1
! 943006b46b746ef59c5c1ab4f334a241  gcc/doc/gcov-dump.texi
! df948b946661dd6107b85a5d415ba876  gcc/doc/gcov-tool.1
! 50c3a263a50fc4688ac3be5e8e8744ba  gcc/doc/gcov-tool.texi
! ad5345d582352d5af0ca1a8ac81d35b2  gcc/doc/gcov.1
! 6662694db9603d95a8c280ab3b6479ea  gcc/doc/gcov.texi
! 4779e2d6b450cc8177af9418313dce20  gcc/doc/gdc.1
! 6398c34d1a61cbf6edde3c35b7c50524  gcc/doc/gdc.info
! cc49c44389e2d6e1bc60b761b5602112  gcc/doc/generic.texi
! 8e87fdd77cc505d84c16bb5b56fa3003  gcc/doc/gfdl.7
! 3ea6addaaedbc7e5a35438bc31e266a8  gcc/doc/gfortran.1
! 6dd13335166acce8e899b838ecbd04bd  gcc/doc/gimple.texi
! ed3b3e651e01baa35a952d3d88e786f8  gcc/doc/gm2.1
! 959d4037cfed9db8dc130d25a00023ed  gcc/doc/gm2.texi
! 60541522b9a2784404182511de4992f1  gcc/doc/gnat-style.info
! 110e1dc695c026cb99ee28106b9ed4ea  gcc/doc/gnat_rm.info
! 114934a5c6da6813e021b44500005633  gcc/doc/gnat_ugn.info
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! d433545d0f2620a04c318de6cb495e65  gcc/doc/gpl.7
! e146722b4ab52551483390772327c93f  gcc/doc/gty.texi
! 27e2895f33fff82c6e13b5b9e7b8df6b  gcc/doc/headerdirs.texi
! ee4c7654f733cefcb73d4fd24f3e1b82  gcc/doc/hostconfig.texi
! 4b440ddccefc912ad5d4547a76852228  gcc/doc/implement-c.texi
! 905955094af017bc0fe064508fd7e578  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
  8787976f426cd52da24a856cd41d87be  gcc/doc/include/funding.texi
! 9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 9452a1b0e4db9a14ba8f8806961ae80b  gcc/doc/install.texi
! 0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 9fe5cf9ed5e602d48b2714317b56dc07  gcc/doc/invoke.texi
! 47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
! 5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
! ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
! 8258127c283eb86e07e4235453e8f336  gcc/doc/libgdiagnostics/conf.py
! ad0e2d047092c8659655e677a43966ee  gcc/doc/libgdiagnostics/index.rst
! 642a964912e66e816e321e71891b81ec  gcc/doc/libgdiagnostics/make.bat
! 6848bc36bd1b675b84d5b8aec59685d8  gcc/doc/libgdiagnostics/topics/diagnostic-manager.rst
! a7bea9ecf04c0cd9ecf9672ecf8322c5  gcc/doc/libgdiagnostics/topics/diagnostics.rst
! 1f63cad855ba6a1f526a9e6f34fad68a  gcc/doc/libgdiagnostics/topics/execution-paths.rst
! 250f44ab2a231fb8b791329c27af8d3f  gcc/doc/libgdiagnostics/topics/fix-it-hints.rst
! ce3511358078b3f41b7c86f1926c6b62  gcc/doc/libgdiagnostics/topics/index.rst
! 40a69a2a595294939ac9d6c444460ced  gcc/doc/libgdiagnostics/topics/logical-locations.rst
! 94567ac644895fb88b40155f06787984  gcc/doc/libgdiagnostics/topics/message-formatting.rst
! 40685321954d4fa5d32a979167f6cb18  gcc/doc/libgdiagnostics/topics/metadata.rst
! 183c104feaddaeab02d7705dce8f67d4  gcc/doc/libgdiagnostics/topics/physical-locations.rst
! 534ab14553cfa381509e11ccaff7c1e7  gcc/doc/libgdiagnostics/topics/retrofitting.rst
! 9bc72c12625c40dd6808a39a5c45edd7  gcc/doc/libgdiagnostics/topics/sarif.rst
! 88d9f17024ba6da5d5e27b7d2e7103e5  gcc/doc/libgdiagnostics/topics/text-output.rst
! 93e163fc2c26860e45d4fcac2f45beb3  gcc/doc/libgdiagnostics/topics/ux.rst
! 08516028c7d3e91946d087b4faeb25e8  gcc/doc/libgdiagnostics/tutorial/01-hello-world.rst
! ed1086c8532b0a9648a631bd118391b9  gcc/doc/libgdiagnostics/tutorial/02-physical-locations.rst
! 6ac592f0851889aa33ad95a188693a87  gcc/doc/libgdiagnostics/tutorial/03-logical-locations.rst
! 5d22b5f5e5f0f4b8fa2e10a3a2fe166b  gcc/doc/libgdiagnostics/tutorial/04-notes.rst
! 082aed6f429f621f1272ece15582d1e6  gcc/doc/libgdiagnostics/tutorial/05-warnings.rst
! 053b367b91dc75073bc9355bae36c16c  gcc/doc/libgdiagnostics/tutorial/06-fix-it-hints.rst
! 232f4480c9f8e69ab71831d39dbbdc27  gcc/doc/libgdiagnostics/tutorial/07-execution-paths.rst
! e0cdf1b3b23ffeebe52940c4ad627db6  gcc/doc/libgdiagnostics/tutorial/example-1.png
! 5402cddcce87202cec6f30b8bb787a75  gcc/doc/libgdiagnostics/tutorial/index.rst
! a1f65f3aec3cc5d5b6505fb976d4c216  gcc/doc/loop.texi
! 4a7d75e67256192dcc744cf8f1c96e17  gcc/doc/lto-dump.1
! 124b06847fae76f01f1c6a0b1adf9a15  gcc/doc/lto-dump.texi
! c98feb0a43876ed3ef2fca3c8448e8f8  gcc/doc/lto.texi
! 8c233b0a7e5fc5a47ac4fe06c6f1dfcb  gcc/doc/m2.info
! 26f08ad01720c082109915a4ec33c80f  gcc/doc/makefile.texi
! 2f8484fc473d3a7141e34a260b920ea3  gcc/doc/match-and-simplify.texi
! 67bc6abc7b2807e12a964e03fe0349ac  gcc/doc/md.texi
! 8836b7001f069e8dead6a4643108258b  gcc/doc/objc.texi
! 9673b2a6dd62d5ac08afb00421e98cdb  gcc/doc/optinfo.texi
! 0ae5c8ef7a8ce01c113543a03df7e0df  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
! 8489e4a02a5daa1d1ae726383b330653  gcc/doc/rtl.texi
! bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
! f9adce8594a3cc85c067479e286bb190  gcc/doc/sourcebuild.texi
! 14e3ed780980c4fff09173b869e850ed  gcc/doc/standards.texi
! bcede1ca08c149d6b7a9ad7cfc846f85  gcc/doc/tm.texi
! 06d0869eb2bec892f989f31bcd7da233  gcc/doc/tm.texi.in
! c4168f9f01adf4dd8adc647c04107142  gcc/doc/tree-ssa.texi
! ae9630d440297a3022b231623c8406fc  gcc/doc/trouble.texi
! f9298f5f9c283444a4eda432afe4cbb4  gcc/doc/ux.texi
! a1be2415e4997dcc307935ed9a162b33  gcc/dojump.cc
! b0e42f8859b351c85a95aef45fde4bb0  gcc/dojump.h
! ec551149b4d908a5cc9e68b1f75c2afa  gcc/dominance.cc
! d63eae7ace3b1bd26b9cabb6fe109eea  gcc/dominance.h
! c2aaa943f52a93ac601eb2571747ce3f  gcc/domwalk.cc
! 8f4782b8e70ef348f013d1ae50051f97  gcc/domwalk.h
! 6ae0851ed68d2cc21f533a4af7284561  gcc/double-int.cc
! 36e421802c745ad35ea5d36bb0f28dce  gcc/double-int.h
! 5bc1432e516f98ab8531edc9619d1085  gcc/dse.cc
! af0971ba9c5420512d37fa9e39c93077  gcc/dump-context.h
! 4f8071a135b293b8a18bd2a9b232b340  gcc/dumpfile.cc
! 8670da1568e881564969be1aa91c7260  gcc/dumpfile.h
! 4adb99499107732ee645c169e7165605  gcc/dwarf2asm.cc
! e518c37d94908385da07142b92ea8cdb  gcc/dwarf2asm.h
! 7efb4f91e749cd2ecf8f4c740fdb13b0  gcc/dwarf2cfi.cc
! 0a3eda9dab4d6f189c8f1075bd4b269a  gcc/dwarf2codeview.cc
! 186b01005d892edba3b03fc17bd0dc8f  gcc/dwarf2codeview.h
! baaae59ceda4df837a6f62ffb0f29ee7  gcc/dwarf2ctf.cc
! 1d0191caafac1774f50a47175d915ea0  gcc/dwarf2ctf.h
! bbf64dab5ed9faf7cd0b8425f2e49347  gcc/dwarf2out.cc
! a37a84426cea5b6f077117901c0cbc81  gcc/dwarf2out.h
! fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
! e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
! 237d0c79a98880d977007c3345019bf8  gcc/edit-context.h
! 017560279e1e8f8d5c27b792341b7961  gcc/emit-rtl.cc
! 958b8dfdb92b879b9cbab057e540c587  gcc/emit-rtl.h
! 22fb4d062235835cdf34b4077884887d  gcc/errors.cc
! 7109c06aed199f804c8906e6febd8c9f  gcc/errors.h
! e67bf1a2587fc7f7361e841145ff4cfb  gcc/escaped_string.h
! 0f7edc740a7778567090fd93180c02f0  gcc/et-forest.cc
! 3e59fa3e669b46ddeef671a16cf79841  gcc/et-forest.h
! 68046084c19e1b2594294e0eb053d39d  gcc/except.cc
! 9c6b987629f8664ff2e311b59a7b90cd  gcc/except.h
! 29b821359071c4aa7e30220d5cb2d580  gcc/exec-tool.in
! 92c5c2d83c0f493838752cabc5c5cb40  gcc/explow.cc
! b5fa845ff578d70e8ceae655d6affc51  gcc/explow.h
! 53e6f2a3611c2bbb776cbe624811431d  gcc/expmed.cc
! dee0d85cc89e81b4cc185f1c3102811e  gcc/expmed.h
! bc438860c6c9b2d1d32fad8eb6040ccd  gcc/expr.cc
! 5480b0f834e382e22c92192d7f5a4744  gcc/expr.h
! 81dcf70fa4896526691f574757c41ad2  gcc/ext-dce.cc
! 2ecf474a8f5380e5027c5b7a745cd736  gcc/fibonacci_heap.cc
! 4e78fbbdb0a8c835b984d732a6d97a7b  gcc/fibonacci_heap.h
! ee644c05e4a3461a8c2f5a4a5ea285bd  gcc/file-find.cc
! 0e60f266755de3aceb6aac0c955d9771  gcc/file-find.h
! 776db52685d2e253eb6227b4cfac0b55  gcc/file-prefix-map.cc
! b0756a8dbbe0b39051dfda2c5e26663f  gcc/file-prefix-map.h
! e7580325e4512cd9f5c2d665b528fa8f  gcc/final.cc
! 28cc3b30502fab34fffa55fd82454e16  gcc/fixed-value.cc
! 7852b04b41add4ad6cc7c7c86cb82658  gcc/fixed-value.h
! 96975c8e38a86e287c8c387deeeda7f0  gcc/flag-types.h
! e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
! a798cdca802a57ffa3473ab610b37c86  gcc/fold-const-call.cc
! 182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! 4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
! f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
! cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 66b8b3ac55e75339ae5e56c069d29a0c  gcc/fortran/ChangeLog
! 083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
! 2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
! e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
! d5b35cce13b8a46025470814167fd17b  gcc/fortran/ChangeLog-2005
! 7a975c8c581b75621d557007059bd3cc  gcc/fortran/ChangeLog-2006
! dbdf10f8a8b3c8c0152d3582679f25b4  gcc/fortran/ChangeLog-2007
! 2e286230da950bec1f28bd3fcd0050a4  gcc/fortran/ChangeLog-2008
! faa8829e270d4f6f1464fb5d499e1ddd  gcc/fortran/ChangeLog-2009
! b26edbbe83358050cc1ef86b0a41d37b  gcc/fortran/ChangeLog-2010
! 047da766fccf096886116c707866a8c9  gcc/fortran/ChangeLog-2011
  2458518b34551ff044d8c22a432c9677  gcc/fortran/ChangeLog-2012
  00850cecb79d4311fae2a48fc37c9017  gcc/fortran/ChangeLog-2013
  b378eb9df97ed252ce2624646d05df15  gcc/fortran/ChangeLog-2014
*************** a71efd3e199a80ee07c7f350cc8fcf91  gcc/fo
*** 5918,6227 ****
  65ff19d3a00eda2236e8a41b7f46ab5a  gcc/fortran/ChangeLog-2019
  d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fortran/ChangeLog-2020
  6c371391409a36c72d51955cc875301c  gcc/fortran/ChangeLog-2021
! 5c5a825ed06bb99f8fc71a6f8d0872ae  gcc/fortran/ChangeLog-2022
! fbb872b566e2ec4cfaf854a2bc7b0670  gcc/fortran/ChangeLog-2023
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
! d2b5e19b5750919b1dc193e2846090e8  gcc/fortran/Make-lang.in
! 628502163ecbbf74cc0f64c524199ed0  gcc/fortran/arith.cc
! 2cc199a14e3d9dcce43322fc86fc1263  gcc/fortran/arith.h
! 52732cfaa58afb755f57e871203c6280  gcc/fortran/array.cc
! c6240012d4d50e01e012119cb17ff776  gcc/fortran/bbt.cc
! 6a6916e85a5a32415c36443edbd50feb  gcc/fortran/check.cc
! 36913a064fdd8132c8fcb8319df754f4  gcc/fortran/class.cc
! 7e9b4fe2af6c413d3294cdd91306351e  gcc/fortran/config-lang.in
! 627377e8cf3bf29504a9be5beebe3381  gcc/fortran/constructor.cc
! c2daec9eb9d9753bcdfcb0b8ef08cd8e  gcc/fortran/constructor.h
! af0d7f72f88d0810924a6a579045eeab  gcc/fortran/convert.cc
! 1207ac9e14b5c8f704156dde571c6559  gcc/fortran/cpp.cc
! 2df1006a61dabc70f90426595056788a  gcc/fortran/cpp.h
! aa3e28e6adf564765577a4f376bb9d05  gcc/fortran/data.cc
! 2a77523a8c759e7a5e480175dfce3e06  gcc/fortran/data.h
! ae30e0a8a750a66670bac15c8a30aa28  gcc/fortran/decl.cc
! dbbc0770ad9027571c63b5d0533e40ec  gcc/fortran/dependency.cc
! 5a69241d57d8b6127ecb02e0a22bee6e  gcc/fortran/dependency.h
! af59533c4bfc13e7b07e6ec1c164832c  gcc/fortran/dump-parse-tree.cc
! eaa509e23c681b4615a43afdbfe3cb0d  gcc/fortran/error.cc
! ddc0015e1cd3c1fa7fa72f9281fcd3ee  gcc/fortran/expr.cc
! 5790e4e2fb5a21288fcb647a0dca23c4  gcc/fortran/f95-lang.cc
! 695ece4eeb62bb39b955ec351fdbd8bf  gcc/fortran/frontend-passes.cc
! f12471f71a85ea43d5295d1190faf890  gcc/fortran/gfc-diagnostic.def
! 21286a817891898ac50a2b843007652d  gcc/fortran/gfc-internals.texi
! ebf8841537d1f5d4f5d902b2421338c9  gcc/fortran/gfortran.h
! 7cff38fc25884efa2cb15745c9502469  gcc/fortran/gfortran.info
! fff36d91835958b7f1df8c7906129b96  gcc/fortran/gfortran.texi
! cc84451cbcaa91ddd59babe04bda0b1a  gcc/fortran/gfortranspec.cc
! 98c31e244971b5a4619e45461dd9f6c2  gcc/fortran/interface.cc
! df46b68ac2bc3086485916347795a6e2  gcc/fortran/intrinsic.cc
! 7c5c308109e781e905a4606be634b46f  gcc/fortran/intrinsic.h
! 3f7081a11cbca781ba26400c16f44044  gcc/fortran/intrinsic.texi
! d02a37f560d24e6c93ca58015c439402  gcc/fortran/invoke.texi
! 0bab6e26e07b4784cc43cb3dc20010dc  gcc/fortran/io.cc
! 93612186f78a67603a9b0339261c2469  gcc/fortran/ioparm.def
! 1600371076a7f3f8d7d872a4a8a6da45  gcc/fortran/iresolve.cc
! 196ec628fe20afcf9090d2f773750a95  gcc/fortran/iso-c-binding.def
! fe42cd7b44c39f11d30fbe2708744a2d  gcc/fortran/iso-fortran-env.def
! f731d32ce05d070f1df4967c2ba8c9c2  gcc/fortran/lang-specs.h
! 9842051e2822d8130f578344e561d394  gcc/fortran/lang.opt
! c90ca625190445c2f9e5014f2643e5f1  gcc/fortran/lang.opt.urls
! 8f70b6af9bb7b493f688d2387ae11bd8  gcc/fortran/libgfortran.h
! d5921591f5cceed6247945a7f1793ef8  gcc/fortran/match.cc
! 79e462d1e87fb685a920318246f348d4  gcc/fortran/match.h
! 5796e2abb1ed0b90aafbca3796a9e5b8  gcc/fortran/matchexp.cc
! 610d97669425c033f4edb591e02b22d3  gcc/fortran/mathbuiltins.def
! 982581c25caf363e8ff4933ece911983  gcc/fortran/misc.cc
! e85c32445c6de7c1d06b379a0d1f12ad  gcc/fortran/module.cc
! 2788da2a93ded20d578d7ac14a5c9d61  gcc/fortran/openmp.cc
! ba11ab9ac11e6a78fa7706263e42f1fc  gcc/fortran/options.cc
! 56af741644ab30aa09221a750079e265  gcc/fortran/parse.cc
! 6afe26dd3f7a33ff8c524687d1958f05  gcc/fortran/parse.h
! 7f2b9626f9b3efccd08957ef77fdcc94  gcc/fortran/primary.cc
! 897224ca7eb714feea321f183a7063a6  gcc/fortran/resolve.cc
! bf73188a78ecc3c99bc6915db827d75f  gcc/fortran/scanner.cc
! 1cfffbabece85f419a6ca2676917e619  gcc/fortran/scanner.h
! bf3941062b53979c5c61599c591f5275  gcc/fortran/simplify.cc
! a0bad1c11baa50813a82d72f738f0872  gcc/fortran/st.cc
! cbbcb9b103e6c3a223ed6521022f0b0c  gcc/fortran/symbol.cc
! 74785cb703ffef31c77a2efb99685bb4  gcc/fortran/target-memory.cc
! d418319a23a87a1e1e8054eaeb5d527b  gcc/fortran/target-memory.h
! 464a713d0406ceedf0c78c7c5b772fb6  gcc/fortran/trans-array.cc
! c0fda053eecaf4f55c32d4fe8c8db3e5  gcc/fortran/trans-array.h
! 700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
! c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
! 5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
! 635805b0ef6e9308a746b8ce715232de  gcc/fortran/trans-decl.cc
! 26423956bbb5025e2bb50457fdcdb5a0  gcc/fortran/trans-expr.cc
! 7cea18402cca280d0ed82eb30178e489  gcc/fortran/trans-intrinsic.cc
! c98d7a82f7c05a8ce2fde2f58a00a4e0  gcc/fortran/trans-io.cc
! be2abe61b914863c8dce5e37cb7f1491  gcc/fortran/trans-openmp.cc
! 0a23775591d7d3e4fdb603d7bd9febb1  gcc/fortran/trans-stmt.cc
! 1b5e4247678ad0441b5b0f26de2ebd4f  gcc/fortran/trans-stmt.h
! 252ce862aacbcb02840933def53353e3  gcc/fortran/trans-types.cc
! 99093042b01c6c4c1ee2c064808bdaa0  gcc/fortran/trans-types.h
! d9d274d783642f6e1749266ab7178b64  gcc/fortran/trans.cc
! 29a1230eb3bca55231d07eb0a5c33e86  gcc/fortran/trans.h
! a5dcb5f38620ab51c2408b1d0fade263  gcc/fortran/trigd_fe.inc
! 14d5ef9c0a16145fc4d821f1a1eaecbb  gcc/fortran/types.def
! 2c61c6deb62c5b2a8f5eb059ac90ed17  gcc/fp-test.cc
! 17acdf4056683086f51937078a1f1d3f  gcc/function-abi.cc
! 93f272a4955c63a9aa6f65f8390b3e0f  gcc/function-abi.h
! b21ae9e84969c22c844658e40c64cc2d  gcc/function-tests.cc
! eca0442b4aeff7cbb48bfb919da8162a  gcc/function.cc
! 2c579d1fa729263df07005d4f111c7c1  gcc/function.h
! 848d42ef9bcae535474b0754f93e4266  gcc/fwprop.cc
! 4cf32700135520df98871f3d7552f316  gcc/gcc-ar.cc
! 53e961fe521d8feb57a1b0245faf9e5b  gcc/gcc-main.cc
! 1c6e5ddd7e0f700d52d0d9a865b7ad0f  gcc/gcc-plugin.h
! 3dad39f67f26a6f0bbf80da8d3103d54  gcc/gcc-rich-location.cc
! 764f54b37cc70ce60f44a442ae90bdcf  gcc/gcc-rich-location.h
! 294688392026dee53e408a238b49be39  gcc/gcc-symtab.h
! a70660922d2da60b8d4fc0ede6dcdf23  gcc/gcc-urlifier.cc
  3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
! 58f2f8eb4a32c8fb8f09057231f8e7d2  gcc/gcc-urlifier.h
! a52089a88e34e02c9d6fa7d1a51b2d88  gcc/gcc.cc
! d5b5fd54cf9d68c3815ec1194c3b85cf  gcc/gcc.h
! 73f1c885562ffae9c54575b89c6b4cfc  gcc/gcov-counter.def
! 24fc8b285d6665cfc61bab91042e6c0a  gcc/gcov-dump.cc
! 23db1422424b0e1d4d37556bdc58de37  gcc/gcov-io.cc
! 30403a012d00bbe1843fb2bec8b4a1c7  gcc/gcov-io.h
! 7a9c1b44557d174a28424309cbf5b5e6  gcc/gcov-tool.cc
! 88f3d3b8a15229118865d8fdfa128f2b  gcc/gcov.cc
! 14708a403e0d2b9f25537c4d7ff7318d  gcc/gcse-common.cc
! c82f8243cb92d3253b4e2abe1dae2bbd  gcc/gcse-common.h
! 2fc559c7cfc202fb9e52c727b82cf60c  gcc/gcse.cc
! 1140c3d8d9f268e72ca97f13ca4fe278  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
! 1bddf8005165ca2ed46592f75cd11393  gcc/gdbhooks.py
! 5b54b542f3673e3cff6d4898c7fcab43  gcc/gdbinit.in
! 686b6016e3f1d123f35ed695dbe783cb  gcc/gen-pass-instances.awk
! ad6f4a5a45c8f57f90d5535fdf2999c0  gcc/genattr-common.cc
! fdf9f5ed875786872dd8158acca7185e  gcc/genattr.cc
! 731b9824ce8662910c9b9b2f8ac315c1  gcc/genattrtab.cc
! 432427c65fa30d8dc6beeba96d3f3862  gcc/genautomata.cc
! b19a98dd3e16714cbada09cd9c65bbdf  gcc/gencfn-macros.cc
! 09a38d7dbd20c5a314082777dfc3f5b8  gcc/gencheck.cc
! 9ef4126a91c733d1d75675e0988f746a  gcc/genchecksum.cc
! 8f4f8c5c59cd63ba3d0e2f8577ab82f7  gcc/gencodes.cc
! 92c6e72a89c97e2ca39b90864b281d46  gcc/genconditions.cc
! bb7378727cbc8346ebdf8cd0176af412  gcc/genconfig.cc
! 9fbc939eb3de1b24e44fe11079188734  gcc/genconstants.cc
! 943979b69fdc9944eca15baf362f98e4  gcc/genemit.cc
! f3a7764a7c793e3d3df9b9acec2f48d0  gcc/genenums.cc
! 2eeedeeeb51c596de137156b7537bbe9  gcc/generic-match-head.cc
! 0c416ac0631bf27d14efb4448314ae77  gcc/generic-match.h
! 1390ddecf16e4f6bd2726bedbabe9efc  gcc/genextract.cc
! b888eb75bc8713a70f6e9c5d97c71dc3  gcc/genflags.cc
! 25d950e53b1556c41c6e8bc0104c131e  gcc/gengenrtl.cc
! d9b7e46a50a720aa9c266efaae05cd23  gcc/gengtype-lex.cc
! 7fa5283075bec5085d8defb3fb49a887  gcc/gengtype-lex.l
! c05467763def60f5f6de8496dc73733d  gcc/gengtype-parse.cc
! f5c84ac923e5a487eff1fc34c4e2a98f  gcc/gengtype-state.cc
! 147d51856ba6175e4753729e9a3189b7  gcc/gengtype.cc
! 13b78a44315249c749513ea759435b1a  gcc/gengtype.h
! 983c5b906ee41223a0aa5f3bdd2ef304  gcc/genhooks.cc
! c95084d8da18da94d8f0abbee35218f8  gcc/genmatch.cc
! aca52652b20f4f0d360efb0c17fdd436  gcc/genmddeps.cc
! 305ec0e8b3735525e349504e235b5bea  gcc/genmddump.cc
! 32bbad1107a5d4b118142c0b17ef7c28  gcc/genmodes.cc
! 5220c3e64350b734aab570a3b1e5ad01  gcc/genmultilib
! 458104bbde5fa748d21d596a0efc0224  gcc/genopinit.cc
! 5556f6c26079f9eb663c96d5969083b2  gcc/genoutput.cc
! 2953bb20e56195a989a9e6d603c38f63  gcc/genpeep.cc
! 04537c2499001ca6c757ff7e682c1b7b  gcc/genpreds.cc
! 8acf4f7cf4ea7aaac50c56bac6d4a1fe  gcc/genrecog.cc
! 13cf1c53f018677c027e413a389ee6c5  gcc/gensupport.cc
! bcd635b9b2a00eee06797a630dec5d54  gcc/gensupport.h
! 622470a844384260886bd3d46d97a2ef  gcc/gentarget-def.cc
! 437e8cfa4923b14e6530be7a3ce936d3  gcc/genversion.cc
! 27094b4c223d1f70a5fd9dac967be0d7  gcc/ggc-common.cc
! d190fdb80afb3e9ef3fe16c71a190a02  gcc/ggc-internal.h
! 761617edf560c2d9dfd5493c0cc187e9  gcc/ggc-none.cc
! da4d6a510a9da09792e7b27a06669f10  gcc/ggc-page.cc
! 1fa6bb5dd1f2db423aee4009f76eb6ab  gcc/ggc-tests.cc
! 331c057efe3b24a3afbddfb840eded2b  gcc/ggc.h
! 9c13538d7916134dba70ee57ee2d9f19  gcc/gimple-array-bounds.cc
! f5fce15ee41886e8fb3da933238d1454  gcc/gimple-array-bounds.h
! c234572876f75890cc99027aed682b90  gcc/gimple-builder.cc
! 422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
! 5183c7d9b67603ffcff52a42af01a19c  gcc/gimple-expr.cc
! 0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! a94566c6e62ecc281fa71bc2e2a44d07  gcc/gimple-fold.cc
! 0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
! 2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
! c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
! 7b9c652a539854b936cc26f338cbb75d  gcc/gimple-if-to-switch.cc
! 43f8b8bf6a49590155c84b07b89f0c6f  gcc/gimple-isel.cc
! a81f7f0172ce4eb3ca285e0cc9ddbd68  gcc/gimple-iterator.cc
! 1a7fa33c9fca25ddfbd2d1424ee5a53a  gcc/gimple-iterator.h
! 15643e1e01d585f6452ec246a61a2053  gcc/gimple-laddress.cc
! e6b2d93b47d32d3548cab7706f1c48ce  gcc/gimple-loop-interchange.cc
! 3550309a8bc7a3d0e32dc53d6843f73e  gcc/gimple-loop-jam.cc
! 9061d044f3fa87c56e4207cfed15dbd4  gcc/gimple-loop-versioning.cc
! 5aa7e08e0bae2dfcbc188dcbbf48e035  gcc/gimple-low.cc
! 1011dfdbac8762024379fe999e10572d  gcc/gimple-low.h
! 1c93fc5a02bffff80f60470cd8a52796  gcc/gimple-lower-bitint.cc
! 30eeb27075ff1c254237317a6afa8a7e  gcc/gimple-lower-bitint.h
! 5c2192ff61d3b830e2f5ccf2825f79ee  gcc/gimple-match-exports.cc
! 52905dc6829d45f26f8fbd85e434b469  gcc/gimple-match-head.cc
! 31611e4e0bafcf373d9ef16549d2068d  gcc/gimple-match.h
! a2774d6e6bb2338986570646e859eda0  gcc/gimple-predicate-analysis.cc
! 8f1e804189ae411c585fe95b40c35b4c  gcc/gimple-predicate-analysis.h
! 557ac74039ee8bf182bd5c956f304f46  gcc/gimple-predict.h
! 9e6e61990fc37ad1d1009514c3f2bff2  gcc/gimple-pretty-print.cc
! 8fc54d5c94a93f0c73258142f7b19655  gcc/gimple-pretty-print.h
! 8a0138aa48c04a1736c9798699d23b34  gcc/gimple-range-cache.cc
! 14d0498976dc3cac161a8fd059e73540  gcc/gimple-range-cache.h
! fd011a3c26857b41c3be519f3bb6bb4c  gcc/gimple-range-edge.cc
! b8854cd80bb187319a41cc07e71d2cd4  gcc/gimple-range-edge.h
! 4481d4ca51c7d1d4fcbf19808bb7da29  gcc/gimple-range-fold.cc
! 69c0c15b77faa32707a4fdbc15e896dd  gcc/gimple-range-fold.h
! 85e4bf91e0170553e3dea12ba3c47fb6  gcc/gimple-range-gori.cc
! 49512dcbe7855a1ca5ed1aa17a3af656  gcc/gimple-range-gori.h
! f94d5d9d416368499396b5af95c640a1  gcc/gimple-range-infer.cc
! 59a4e75211652f0f0985dde451461c62  gcc/gimple-range-infer.h
! 1bdc02d72c591ed0e1c733aea008bf3d  gcc/gimple-range-op.cc
! bf7905528673c9d4ef520313c8ac3341  gcc/gimple-range-op.h
! 87b78f5fbf377f08c8f3c4c1090d85d3  gcc/gimple-range-path.cc
! 8bae8ef4fc63b92a166177f469f16f2f  gcc/gimple-range-path.h
! 0d68662f765d5c8ed416760cd218bb17  gcc/gimple-range-phi.cc
! 1af8cace270071937211e97e8146c0fd  gcc/gimple-range-phi.h
! a8b5cd5c218902eae6bbccc1d0be5b80  gcc/gimple-range-tests.cc
! 52801da01f2d672a48f3a93df4f90cc2  gcc/gimple-range-trace.cc
! 7c3a5fa5a6d53c7365ef04747b3a8581  gcc/gimple-range-trace.h
! 0e07f52eb54f6cbcbdeac9a1da83b2fd  gcc/gimple-range.cc
! b6331fba9cc79c275796150f53d2340e  gcc/gimple-range.h
! 9c513e85c3b5b1ce204b917216c2d278  gcc/gimple-ssa-backprop.cc
! 2ac3ffd7448d9bcad9c65e604172bfed  gcc/gimple-ssa-isolate-paths.cc
! 2fc6c230ffcb053416f70f12a4b75355  gcc/gimple-ssa-nonnull-compare.cc
! b40914c29edd869a996c91db4f4d99d5  gcc/gimple-ssa-sccopy.cc
! 40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
! eed653cc89b2d50ae8546390d2926e4c  gcc/gimple-ssa-sprintf.cc
! ea8b22bc845ea471e570fe227ee4aae7  gcc/gimple-ssa-store-merging.cc
! 0f929c8553845e353809a3143a67930d  gcc/gimple-ssa-strength-reduction.cc
! c031baebcde07641329ebfeed2889138  gcc/gimple-ssa-warn-access.cc
! 972380becf9146f7df932ff8948f87c1  gcc/gimple-ssa-warn-access.h
! 4ad1b8d1dd8be61da151f2622251c3a5  gcc/gimple-ssa-warn-alloca.cc
! d48276e209e6bee6085d686007fc50c7  gcc/gimple-ssa-warn-restrict.cc
! 37f47c5bf9bbf56c75c61460f9397132  gcc/gimple-ssa-warn-restrict.h
! 88802b0b8305e762117a4c688b49ef11  gcc/gimple-ssa.h
! bec30695ff947a8740e932d02c735a56  gcc/gimple-streamer-in.cc
! d7db5d7614e64fb3cbcf1ead13bd832f  gcc/gimple-streamer-out.cc
! fce3e12dc3a84a0fd0785b18d9940c92  gcc/gimple-streamer.h
! 019900f1b40ef3d0d685782c35c7ac03  gcc/gimple-walk.cc
! b13ef89fa355900b2c561e2d521a5b36  gcc/gimple-walk.h
! 6e42f92c5b3058251524074700ae9ef5  gcc/gimple-warn-recursion.cc
! c4e1e930218f4dce5ef2a3a3a6b23b3b  gcc/gimple.cc
! c4df74d81805c4bd5129d36bb2a68562  gcc/gimple.def
! 111dff63f363b5601fa6ea70225f869c  gcc/gimple.h
! 38023efd45885e11111aa624febf5783  gcc/gimplify-me.cc
! 85e953ee7730a9690d8c9449d974b5c9  gcc/gimplify-me.h
! ef801550cfd43de5de507fb82f25dedc  gcc/gimplify.cc
! 8f261c08379d1ad7b5ca607ff26ae1fb  gcc/gimplify.h
! 82fc433faa62fad9f37c79e38dc2bf1c  gcc/ginclude/float.h
! f792d34f340e2e7a7655cf10325a519d  gcc/ginclude/iso646.h
! 10bd6c6ab5d18d7c4359ee18f7a7e4e8  gcc/ginclude/stdalign.h
! 583bb9dc4abce47fb389f60d6dcc07c9  gcc/ginclude/stdarg.h
! e61f7f48b5e505fc054bcb3b838462e3  gcc/ginclude/stdatomic.h
! e41775229e031cf6b904da72157b328f  gcc/ginclude/stdbool.h
! fbf7d548cfb69fda253e93c5e99f5ab6  gcc/ginclude/stdckdint.h
! c72179bc6c3ee46a833feaf09e791166  gcc/ginclude/stddef.h
! c3eea4149dcf122b8de68266ed989192  gcc/ginclude/stdfix.h
! d37a869af0d930a8a0c201d243f6891c  gcc/ginclude/stdint-gcc.h
! f85aa0745c3e9e0d32fa64753089b2f1  gcc/ginclude/stdint-wrap.h
! f29bc8223d79e79c24df8633419aedc0  gcc/ginclude/stdnoreturn.h
! a1de12677e091d55cc4f2cd872cdf135  gcc/ginclude/tgmath.h
! d58161aa8eee5f48836d1bd9f6c6c161  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! 3909afbb81b3a1e02d67d89aaf6c0c11  gcc/glimits.h
! 5aae76141fb420321d3eb9bba79a55d5  gcc/go/ChangeLog
! 1c0876aed1113bbf60fd04709c1af5de  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
! 7eac6a5cdde9ce4bc75625cb22e30fff  gcc/go/config-lang.in
! dc364df356db8bfbe00ced6089b9ad32  gcc/go/gccgo.texi
! 9213dee42c742a937746f6c16b5e7948  gcc/go/go-backend.cc
! 681079fdbb849f75fabe4198e66985fa  gcc/go/go-c.h
! 633857e743fec9bba907bde27d3a063f  gcc/go/go-gcc-diagnostics.cc
! 939988b3eac93f09f1f0a80587162b61  gcc/go/go-gcc.cc
! c13634f2483f567508cf9f253770ce9c  gcc/go/go-gcc.h
! 7e28315e8787230f751e9dd388dc2941  gcc/go/go-lang.cc
  c5d6aaa7e913ef205113a2bba2e5206f  gcc/go/go-linemap.cc
  91c7a6773e207cc086ae0888826cc3c4  gcc/go/go-location.h
! f15c93522cda3277567ba6f80385ffaa  gcc/go/go-sha1.cc
! 3c4c08796339b12605f7651fc32f3775  gcc/go/go-system.h
  5d4950ecb7b26d2c5e4e7b4e0dd74707  gcc/go/gofrontend/LICENSE
! aa015521dde1b82759b846fb4a4a86a5  gcc/go/gofrontend/MERGE
  3a55d95595a6f9e37dee53826b4daff2  gcc/go/gofrontend/PATENTS
  31c16a91d82f8ad3319819ebbba2d17f  gcc/go/gofrontend/README
  f121b2384cf688c9a215cd09a62e60b8  gcc/go/gofrontend/ast-dump.cc
  456b6d4cc785176b6e3eb0c685a93b39  gcc/go/gofrontend/ast-dump.h
  ea386ab9fecd1e6a9d230d51e7190683  gcc/go/gofrontend/backend.h
! a6d0f9cca0bcb0b9a401158ade0d1c83  gcc/go/gofrontend/embed.cc
  7963756a49674b738fac31837f53c23c  gcc/go/gofrontend/escape.cc
  ee8753eb1d8ca2fa168f6a71d3991455  gcc/go/gofrontend/escape.h
  d19c57b193a0d1606e203010b058a7a5  gcc/go/gofrontend/export.cc
  b82ec94338a817bee1d6b0626e47af9d  gcc/go/gofrontend/export.h
! 107557745838a8b3de74e54fa45ef6b4  gcc/go/gofrontend/expressions.cc
  b3e79bc7777f37d0853b1fabe466a800  gcc/go/gofrontend/expressions.h
  bf7f8a519eadaa90804fe15cfa37ba6f  gcc/go/gofrontend/go-diagnostics.cc
  accfd5ea41ee789e6adbaec31a228cfe  gcc/go/gofrontend/go-diagnostics.h
  19e66447fa803385274b4e1a7501a4d5  gcc/go/gofrontend/go-dump.cc
  e3f005ccc40000dcaf14ab6eec979f69  gcc/go/gofrontend/go-dump.h
! c5fba9a845a2d2f13e8459bdec0d6b18  gcc/go/gofrontend/go-encode-id.cc
  d1f133d9f54a935571cc84512acdeb69  gcc/go/gofrontend/go-encode-id.h
  5c3b272e93c618f5e831eccd285ded86  gcc/go/gofrontend/go-linemap.h
  c08c0bc386a3e50faacf99daf94c080f  gcc/go/gofrontend/go-optimize.cc
  ead5ac25b7b99d361225e0fd940e286a  gcc/go/gofrontend/go-optimize.h
  5b59619fab7e543c5bb28dd8a6d62793  gcc/go/gofrontend/go-sha1.h
  8dded449a650e2e8c365f702612afc24  gcc/go/gofrontend/go.cc
! 98289f8a3cecefa4bed2ff3706a65862  gcc/go/gofrontend/gogo.cc
  4b5329e9d8c401009b4b1ca29c4c4c29  gcc/go/gofrontend/gogo.h
  f9015ccccf7764d4c6eeae1bd5e01c7f  gcc/go/gofrontend/import-archive.cc
  e79da7b293afd4faedb3f5e30c60ef51  gcc/go/gofrontend/import.cc
  0a9e27f1c3baa96ef288093aae5e2d3d  gcc/go/gofrontend/import.h
  52b99a209e77281dd06be084c671c85f  gcc/go/gofrontend/lex.cc
! 41a3768614d6403a2d963ff36ad73f66  gcc/go/gofrontend/lex.h
  8c4c336f6edc93802ab60628e46ebf75  gcc/go/gofrontend/names.cc
  98235b1a736055cd6a130337a9ee8e8e  gcc/go/gofrontend/operator.h
! 5bf417fdea85c70cac14a701c4efca27  gcc/go/gofrontend/parse.cc
  d1791687826a1bb33b9681aef8b30dae  gcc/go/gofrontend/parse.h
  efa7d8338e571f0a00ae041e5eba5c4d  gcc/go/gofrontend/runtime.cc
  06ed40caa7a515346c6a4708bc2dd50e  gcc/go/gofrontend/runtime.def
--- 6117,6430 ----
  65ff19d3a00eda2236e8a41b7f46ab5a  gcc/fortran/ChangeLog-2019
  d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fortran/ChangeLog-2020
  6c371391409a36c72d51955cc875301c  gcc/fortran/ChangeLog-2021
! 503f280f125abe2bb4e5bdec5ef74e30  gcc/fortran/ChangeLog-2022
! 0d9eeb9e5186cca702161b2183930d7c  gcc/fortran/ChangeLog-2023
! c38eb0f2f19a6cb4b79be761670131e8  gcc/fortran/ChangeLog-2024
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
! db21881c77a22fd3dbfe253c364af5ee  gcc/fortran/Make-lang.in
! 25a2099206e1596859cfc2d787790f32  gcc/fortran/arith.cc
! 6b01ec523f3bee8e2469370d106896e3  gcc/fortran/arith.h
! 1f47886d616538f880e240f661990624  gcc/fortran/array.cc
! 59221f5e105887dce9d0c1b7694aa86f  gcc/fortran/bbt.cc
! fb69544dfa59c0a3f9d6d83b6de87c9d  gcc/fortran/check.cc
! ec152c8d16c33705590d8b2ddbcad0b7  gcc/fortran/class.cc
! fa8537a408aae39a816c27e78317e1dd  gcc/fortran/coarray.cc
! 6047324cb87b56ae23d2293c5ef13ddb  gcc/fortran/config-lang.in
! 16ea0e15947038265fbb5983b455b7bf  gcc/fortran/constructor.cc
! 85285f438769e841d8dc39fedcd731d5  gcc/fortran/constructor.h
! 8a26ac4e9bbfcee3a5911bf1864ee2e6  gcc/fortran/convert.cc
! e2cec99de05b647cb16807fa80637b97  gcc/fortran/cpp.cc
! b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
! 8f33d3cd143f8abd7293e089afa94452  gcc/fortran/data.cc
! d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! deb1774fa43b021f7fa8fde0fe6642d4  gcc/fortran/decl.cc
! 917fd2716f1eef2f47d4f032e14958ad  gcc/fortran/dependency.cc
! 70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
! 0857a93d2dbec9f98b1f3deba658db4b  gcc/fortran/dump-parse-tree.cc
! 860343539ea7488e7bb44b94ea2b0f77  gcc/fortran/error.cc
! 759f30cf19d12da96ea9f074092f983c  gcc/fortran/expr.cc
! 88fde92a0336c0454c5baa0f3c24888a  gcc/fortran/f95-lang.cc
! 76bb26929c446b45cc1efbf25d27ea82  gcc/fortran/frontend-passes.cc
! a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
! bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 2e086ed22e758f8149858493ef0c88cd  gcc/fortran/gfortran.h
! b69975ab23c5217d7e87f5f7c6b8fc94  gcc/fortran/gfortran.info
! 7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
! af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! 208c95af2cf8c8baaea7c1bf24ffd2d3  gcc/fortran/interface.cc
! e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
! cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
! 5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
! 4a7f5923c18268b245556ded8e9ba554  gcc/fortran/invoke.texi
! a6ef46c79cebcc9bf1786f457fc01c4e  gcc/fortran/io.cc
! d2a28ef98f6f78d1608fb52204e013a5  gcc/fortran/ioparm.def
! 11a18b85b29013791ce49cfdacc46f8b  gcc/fortran/iresolve.cc
! 40087b4e405f3e0f17ebd4f0e9b63f48  gcc/fortran/iso-c-binding.def
! 526bc51ff7ab3f60f1b40c5ed2b4bc3d  gcc/fortran/iso-fortran-env.def
! 5c4523263ea0f1cd46baacba848e1fd5  gcc/fortran/lang-specs.h
! 2e69cb4e17cc2e89fd21228231798659  gcc/fortran/lang.opt
! 9c43410ca32214bfab9763966c01547a  gcc/fortran/lang.opt.urls
! e350765243fa7b881ed82507561870ff  gcc/fortran/libgfortran.h
! a1f8cc4833f8ed003a709afbdc505f8c  gcc/fortran/match.cc
! 047778859aa899389e3b7e65c1439faa  gcc/fortran/match.h
! 8181d5e935b96288d9a51fb8138faefb  gcc/fortran/matchexp.cc
! 297213add624aabc75e1e83d2e504eef  gcc/fortran/mathbuiltins.def
! 70230d28b44bb64fc1df9ae9f4c3282c  gcc/fortran/misc.cc
! 3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
! 50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
! 8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
! 066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
! 09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
! 4cf43e937d07b72966686ce8c895b0da  gcc/fortran/primary.cc
! 77780e16ec97fc141f25407f1b5aedf9  gcc/fortran/resolve.cc
! 8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
! 3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
! c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
! 3255bc920c3609e58d8a01f6464313e8  gcc/fortran/st.cc
! 7fc6fb7f159830fc0d98a9cd72e5cdf9  gcc/fortran/symbol.cc
! c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
! 50451f5a575ab606948f8e72d8cc4721  gcc/fortran/target-memory.h
! 99a62aecb245ac7add34159ffc6cca1d  gcc/fortran/trans-array.cc
! a4f5f15bbfd3cf3b780e3a8875ebf0df  gcc/fortran/trans-array.h
! 134a72b3349d427eccb35198acc48a71  gcc/fortran/trans-common.cc
! d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
! 857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
! afe34dff8f558769f2fa146af53daabf  gcc/fortran/trans-decl.cc
! 63e8d232076a630837407114a2620ede  gcc/fortran/trans-expr.cc
! 244d26b84380f5b1326cc19d384619de  gcc/fortran/trans-intrinsic.cc
! 9cf7c294c06fdaea67dcd2b9ff2cf5ad  gcc/fortran/trans-io.cc
! 0ea370a601d81713b8f4041c3d21cedf  gcc/fortran/trans-openmp.cc
! 03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
! 3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
! 88e47983056bf84e8b7dd5981ac93d41  gcc/fortran/trans-types.cc
! 422959ab20fd75df3766a03597227fd2  gcc/fortran/trans-types.h
! c058a3abcdadde24710d79820f9cfc70  gcc/fortran/trans.cc
! 13445b3cfeaf8978ee1d89a1997de16d  gcc/fortran/trans.h
! 6f893e67fc7e5f247079bd418e61d1e2  gcc/fortran/trigd_fe.inc
! 2ddfa7f2ac232123d67959795d85aaa6  gcc/fortran/types.def
! f574663ce227d0be2e77015c008d708b  gcc/fp-test.cc
! 7d49ef8f960daad31201f864eb1933d9  gcc/function-abi.cc
! 12d3c07e3c878f7237f904820da28c93  gcc/function-abi.h
! 6e9698e4411a03357b6e2b60bc91c827  gcc/function-tests.cc
! 25ebd6ca078bb3bcb357a9009a5a0ec1  gcc/function.cc
! f177e1c4e707bec79d4d662838428852  gcc/function.h
! 3c08c56c1de3b165b954ab5c185284c5  gcc/fwprop.cc
! 261433f3124bfa2a1421c42d657e0560  gcc/gcc-ar.cc
! f646a11fe6d1080a95b097c175a93d61  gcc/gcc-attribute-urlifier.cc
! ff36560b7e36617656e4dc3e8c550bf9  gcc/gcc-main.cc
! d34323b4d6fe1da82a9a4c157463d875  gcc/gcc-plugin.h
! 7363d36fbbd8919e19ab1c637e88d477  gcc/gcc-rich-location.cc
! 93234d5c1bba7882e07ba0a48cf8c8cf  gcc/gcc-rich-location.h
! 63e27f828f6c936425703eb7f757958f  gcc/gcc-symtab.h
! 7554533cf646554f951ac05ad4609005  gcc/gcc-urlifier.cc
  3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
! 7e2f3c81fe7c2381b433886ab2914fa7  gcc/gcc-urlifier.h
! 7ca1dc6e8d0934977e6df717c0fbe13c  gcc/gcc.cc
! 265ae8f124014a92ca7dee798d9c2b46  gcc/gcc.h
! d66e80f2ea9c1b6754479c999040b857  gcc/gcov-counter.def
! c4e07547b91be991d1bed6c22015cec2  gcc/gcov-dump.cc
! a01ec87393c0315f282b6a4f5444012b  gcc/gcov-io.cc
! b9ae583911b0dfc11e96e21548fad63d  gcc/gcov-io.h
! 0fef400d80ba434e449000da71f5b69f  gcc/gcov-tool.cc
! f269d02900a77fe74111832833bf535c  gcc/gcov.cc
! 2a8393570ec2f0f06d815562e3e84f78  gcc/gcse-common.cc
! 592e70d614695b5fba65cd68c9112587  gcc/gcse-common.h
! 7078a71e12a0dab8d83016b3f1948bf4  gcc/gcse.cc
! e5a3a3a1ad466d441c8c2f6c2ac6c208  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
! 73e9039221d34e77933a5626ce0294a5  gcc/gdbhooks.py
! b946235d2457563312c112ed6a14ed7e  gcc/gdbinit.in
! bc7dc03662da0207b2f137311e3d44ff  gcc/gen-pass-instances.awk
! 243e310c8de5ec89a275b8a8fdaa3f23  gcc/genattr-common.cc
! 9609960ab8977cec04088a4a80a047db  gcc/genattr.cc
! 3c37a1af37392b212783e978f3d5f2e5  gcc/genattrtab.cc
! 8dc589887cf1a4215ad887bcc1038d35  gcc/genautomata.cc
! 040bcfd92576d7228e32d71cbf543439  gcc/gencfn-macros.cc
! e931bffabce064f7ea5f757be9effcb4  gcc/gencheck.cc
! 8da60347c5d5827c1d1ec47db5c54426  gcc/genchecksum.cc
! 0bebc79f12491105dc4f02e01405e480  gcc/gencodes.cc
! 81e93c9118ab0d8b2a582d9db5c3a24a  gcc/genconditions.cc
! 94589a8be4e6b4a09f984d7bcb42bd2b  gcc/genconfig.cc
! 6c504c77c2a7c2ccfb6423c4fe6d49f4  gcc/genconstants.cc
! eb8c46fd2d0728996c6e89d89086cac5  gcc/genemit.cc
! b41072b25b108fee0e8173bd0d30f0eb  gcc/genenums.cc
! 9826edc4e3f840e55d31fd99fc05f28c  gcc/generic-match-head.cc
! d9439dc48b1689d02df9d1ee357d9eb7  gcc/generic-match.h
! a5a23bee543191529294d325e1de0424  gcc/genextract.cc
! 695bcd280c318a44bbd0db995e59d905  gcc/genflags.cc
! 446a2730ef08c6f09e7f25d1f7fdb892  gcc/gengenrtl.cc
! 8ce573d826a6f0468c9b34db4278d7e6  gcc/gengtype-lex.cc
! f08758617a3d032ae009840210c23753  gcc/gengtype-lex.l
! 8b99c04e54d5d4377c4fbf3dcab54659  gcc/gengtype-parse.cc
! fc2add74b25837de88ed3c40f4f1193d  gcc/gengtype-state.cc
! f1606c6699e344ee4dc5c689c8bd5c4f  gcc/gengtype.cc
! f8db11f7873a70ad5009e0d6d239f1c8  gcc/gengtype.h
! 874e9cb69e600858eae535758d8a1440  gcc/genhooks.cc
! 8b6d4bd53f3ff2e73681033e6a8f54dd  gcc/genmatch.cc
! a97b3578ac581dcde94c740fbde65486  gcc/genmddeps.cc
! 8c578841175ffc99a0d2e35d5844de5f  gcc/genmddump.cc
! 2d5f79e0543565e8a2c55a08a6ba8393  gcc/genmodes.cc
! 78862d5c4a5e1a707d3e63e4857adb04  gcc/genmultilib
! eb743d2855e55ff1778bae601dc38551  gcc/genopinit.cc
! d23c1b55e0de2e6e8884410e882b1b87  gcc/genoutput.cc
! 29ee68ccc9844e3580e3e9f6da577778  gcc/genpeep.cc
! 28d50caf61c98bed97742228c437ee13  gcc/genpreds.cc
! 7ef07a14a26d6ca95f84a510ac497b42  gcc/genrecog.cc
! b6a642365300b6a950c9eb15a4ecd67e  gcc/gensupport.cc
! b2448ada2a0bff917b804ee48360ab03  gcc/gensupport.h
! 575cd36582b31d032be413d7eb1b6a95  gcc/gentarget-def.cc
! d285de23bd302c6655bc95327336a8ec  gcc/genversion.cc
! c0aa0732013643fc9d7c8fc68bb85d6d  gcc/ggc-common.cc
! 56234852a29fc6118c202cd256865b62  gcc/ggc-internal.h
! 474e70e7a6dcba6240b3fe2511616cfa  gcc/ggc-none.cc
! 8b2e3d5367a7b1cfb44670ac1ff6aa6e  gcc/ggc-page.cc
! f6879ae08660f73788b6b784022ca89a  gcc/ggc-tests.cc
! 2a2d277a27eda24ce951c4e0b47b5201  gcc/ggc.h
! fc01aba2ef6a14714b1f93c8cf4194e4  gcc/gimple-array-bounds.cc
! d6f9bd05a0669c41ec48c604502d60cf  gcc/gimple-array-bounds.h
! da09d1e31d3994eb3d6958074d7b7ce5  gcc/gimple-builder.cc
! 50314e0ad6c6defd28ef9aa5216d4622  gcc/gimple-builder.h
! 613cd84d6a9d33c8a47ce0b484fe65cc  gcc/gimple-crc-optimization.cc
! 1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
! 7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! c7361add0c174a3ee78da3f2dea0f62e  gcc/gimple-fold.cc
! 8780d2011b6a9ef6c285eead522a3286  gcc/gimple-fold.h
! 98652c967ce7f8dda9a1c398caa0996a  gcc/gimple-harden-conditionals.cc
! 34959112cc04df5744be2b160e2f9d80  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
! 468251f890cf1a4c5fb81ecfb55e3356  gcc/gimple-loop-interchange.cc
! 56f0b729528894503e80d9636b3af1c3  gcc/gimple-loop-jam.cc
! 9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
! de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
! a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! d0c07be6406911d79ae5087fbc68d02a  gcc/gimple-lower-bitint.cc
! bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
! da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
! 144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
! 9a17a7550e34f5a6aec955c756b185fc  gcc/gimple-match.h
! 8dfd9f3f97d0202e55771cf7594fbcb3  gcc/gimple-predicate-analysis.cc
! 6c6a46b3936e3dc50695bcab2efd3520  gcc/gimple-predicate-analysis.h
! ef8cac8c03c6284903df21f3faba7014  gcc/gimple-predict.h
! eceaf6fecb6df7f838b427bf4f70eade  gcc/gimple-pretty-print.cc
! 1d0e0766111d9af10f6785e9ad0b3675  gcc/gimple-pretty-print.h
! 7977ff4c44d959a98fbd453b6e23aee0  gcc/gimple-range-cache.cc
! 8c426458ee77fbac2c6b8f813f84b230  gcc/gimple-range-cache.h
! d0e39d30292d3cb008ec7fb9517c3032  gcc/gimple-range-edge.cc
! c8dd21ff63045c1a13e516534e9f26c8  gcc/gimple-range-edge.h
! 59442dfc5a203baf74202d93da2c83ad  gcc/gimple-range-fold.cc
! 6077f71d4f6a79ed60d0e24f247133a3  gcc/gimple-range-fold.h
! 2ab6e680fbd55d50bfc4690e2ecf8a4f  gcc/gimple-range-gori.cc
! db61cb44af184c491426f70b14b72f64  gcc/gimple-range-gori.h
! 12b0f3b16b06728cdeddc2aaee126661  gcc/gimple-range-infer.cc
! d1b8fdd0fd8c738683e5995bf45cda94  gcc/gimple-range-infer.h
! e90a8c8db3c3bb2c54a6618e8ef278c4  gcc/gimple-range-op.cc
! c33a426eeaa6da07a474caf81b43a278  gcc/gimple-range-op.h
! 33d3c148e1b6f1df39688e27f3511fe1  gcc/gimple-range-path.cc
! 55a80a9f04099be643d37e29c9ac7d10  gcc/gimple-range-path.h
! a9d6c3c7c4a345e42e42aabfb7b4981e  gcc/gimple-range-phi.cc
! eb7c233acdcae81b02395e856a9cfa3b  gcc/gimple-range-phi.h
! 8a80a7176e272213da512b76afcab3d7  gcc/gimple-range-tests.cc
! 74bf54ac2be468226c893a76f7919cbf  gcc/gimple-range-trace.cc
! 8c93856aa354b96d19587f0c9e4051a6  gcc/gimple-range-trace.h
! 8eec860f985bd594ff1fcce24b6241c3  gcc/gimple-range.cc
! a4e263e8871b92796b1fb32a725e3eaa  gcc/gimple-range.h
! 0a74fcfb6f542e62384811b3713681ce  gcc/gimple-ssa-backprop.cc
! 3cfaaa2decd6de2542a919cfb8bdb93d  gcc/gimple-ssa-isolate-paths.cc
! b417ca4d3d865879d0e642790dafa8cf  gcc/gimple-ssa-nonnull-compare.cc
! 93101472142eb5910d34b5c961eee66b  gcc/gimple-ssa-sccopy.cc
! b551cb1f1566bf3aa2bca3816f2b1c98  gcc/gimple-ssa-split-paths.cc
! c7ec9ee38b6e99c1260bd3e794ead05f  gcc/gimple-ssa-sprintf.cc
! 827b9a16d251acce8466dcb4fc8420da  gcc/gimple-ssa-store-merging.cc
! 5081e3b07e7210c50573a328ecd9e1b9  gcc/gimple-ssa-strength-reduction.cc
! 7e1a423dea2ff7a1182e9c4fb5227344  gcc/gimple-ssa-warn-access.cc
! 3ae7b597d9d5e0c5ba61dc7ee8a7f2c2  gcc/gimple-ssa-warn-access.h
! 58ebb365eca5688d01bd602f9fb054e2  gcc/gimple-ssa-warn-alloca.cc
! beb3ca2546e044813326413ad5c07630  gcc/gimple-ssa-warn-restrict.cc
! c33f19efabf2e1331a65e467f6a2e7fc  gcc/gimple-ssa-warn-restrict.h
! 5ea6e6b9805f4e86b47aabe82b9d1033  gcc/gimple-ssa.h
! 7f8c492dbd88d8d371f858c251bb8d5c  gcc/gimple-streamer-in.cc
! c46e71acb17764a720ac6a68007b7298  gcc/gimple-streamer-out.cc
! 469e775c51a02638e22300d5645b22ce  gcc/gimple-streamer.h
! fc5706ae421aa8f2f9bba7fe2c637237  gcc/gimple-walk.cc
! 898d5f9cd9c732cb06cb7e84ca28c99b  gcc/gimple-walk.h
! 19e41ad97511268bfc78109e4dbf8065  gcc/gimple-warn-recursion.cc
! 9a2e63724237611a8367c48b2cafed18  gcc/gimple.cc
! 2b31c9448b3ca4914742ffde943425c0  gcc/gimple.def
! 5dad29545d58e66718b3dc5060f127bc  gcc/gimple.h
! 140b5c45a362b9c0c981b683560d4ef8  gcc/gimplify-me.cc
! 84814cb09300f3db388dd0d22133ccb4  gcc/gimplify-me.h
! 8c53ac4f655bf4ed40f3c2f5775f0ba6  gcc/gimplify.cc
! 06f2b5470f6bc6f77e9b7966e34e5785  gcc/gimplify.h
! 7df17d7c2bcdff0a474d633a02195544  gcc/ginclude/float.h
! d22f0a286107015428c4b28c0d17abda  gcc/ginclude/iso646.h
! dbde1f58891027c57962904adf116dea  gcc/ginclude/stdalign.h
! 826c25d764b4b78dde81cb5bdc68a20b  gcc/ginclude/stdarg.h
! 4173972473fe10d5f36d5db6d53656ad  gcc/ginclude/stdatomic.h
! e0c5e6c23e0041bf162651752dfb4a78  gcc/ginclude/stdbool.h
! f56f438b8e888ab0575dc11b4c8a409e  gcc/ginclude/stdckdint.h
! 981a3e9b8b3bb56efa96e85345adcfc2  gcc/ginclude/stddef.h
! 034d0dcdfe0322d31ea3a49ff558e5b7  gcc/ginclude/stdfix.h
! 6717e34f2a0d0ed6b166bb83dcec0b84  gcc/ginclude/stdint-gcc.h
! 86391b65e8323145e75d4643c0318fc4  gcc/ginclude/stdint-wrap.h
! d7408ac6c915c3e2f58cd40bdb6a0671  gcc/ginclude/stdnoreturn.h
! 1445e218a0aaddda35901b1f0b3e9caa  gcc/ginclude/tgmath.h
! 18dd241fd4e77ac61edc90586b9fb2b6  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! b41648f499a7db07e24806aae26998b5  gcc/glimits.h
! 06aebf778e89b3e0b6c86d3535d8ef65  gcc/go/ChangeLog
! e697a6a6e7d6942b7375c665c70d34b4  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
! 88217f68368328f3ce651c46f0830df8  gcc/go/config-lang.in
! 0fa68a0c770d6dbafeed800f679972fd  gcc/go/gccgo.texi
! 2806a5a646e57f531ef5951e0b86a477  gcc/go/go-backend.cc
! dd1cba65631d281511dc79ed9280dafc  gcc/go/go-c.h
! b36b3fa1db505d7b6ef1e18b129035a8  gcc/go/go-gcc-diagnostics.cc
! 43c3ce307d5860ce73ee5069566503db  gcc/go/go-gcc.cc
! a9479832ddc20b2770e829e37ef9f9b4  gcc/go/go-gcc.h
! 8bddedd00bb083ceeba22bff8df6d40c  gcc/go/go-lang.cc
  c5d6aaa7e913ef205113a2bba2e5206f  gcc/go/go-linemap.cc
  91c7a6773e207cc086ae0888826cc3c4  gcc/go/go-location.h
! ec49aa04ab6e271ed2c9c16d80ede5fd  gcc/go/go-sha1.cc
! 9e1f364c7cce987a1ae4edab7aeb4ba7  gcc/go/go-system.h
  5d4950ecb7b26d2c5e4e7b4e0dd74707  gcc/go/gofrontend/LICENSE
! 8eb4f8828f18a24f145c3d9bdd83937c  gcc/go/gofrontend/MERGE
  3a55d95595a6f9e37dee53826b4daff2  gcc/go/gofrontend/PATENTS
  31c16a91d82f8ad3319819ebbba2d17f  gcc/go/gofrontend/README
  f121b2384cf688c9a215cd09a62e60b8  gcc/go/gofrontend/ast-dump.cc
  456b6d4cc785176b6e3eb0c685a93b39  gcc/go/gofrontend/ast-dump.h
  ea386ab9fecd1e6a9d230d51e7190683  gcc/go/gofrontend/backend.h
! 51caf7441396cb14902a79fd2f928ec1  gcc/go/gofrontend/embed.cc
  7963756a49674b738fac31837f53c23c  gcc/go/gofrontend/escape.cc
  ee8753eb1d8ca2fa168f6a71d3991455  gcc/go/gofrontend/escape.h
  d19c57b193a0d1606e203010b058a7a5  gcc/go/gofrontend/export.cc
  b82ec94338a817bee1d6b0626e47af9d  gcc/go/gofrontend/export.h
! 1d6fce2ae2f707fa0d3f6907431ef477  gcc/go/gofrontend/expressions.cc
  b3e79bc7777f37d0853b1fabe466a800  gcc/go/gofrontend/expressions.h
  bf7f8a519eadaa90804fe15cfa37ba6f  gcc/go/gofrontend/go-diagnostics.cc
  accfd5ea41ee789e6adbaec31a228cfe  gcc/go/gofrontend/go-diagnostics.h
  19e66447fa803385274b4e1a7501a4d5  gcc/go/gofrontend/go-dump.cc
  e3f005ccc40000dcaf14ab6eec979f69  gcc/go/gofrontend/go-dump.h
! f316dae04799cc3e4837af05b40e26b3  gcc/go/gofrontend/go-encode-id.cc
  d1f133d9f54a935571cc84512acdeb69  gcc/go/gofrontend/go-encode-id.h
  5c3b272e93c618f5e831eccd285ded86  gcc/go/gofrontend/go-linemap.h
  c08c0bc386a3e50faacf99daf94c080f  gcc/go/gofrontend/go-optimize.cc
  ead5ac25b7b99d361225e0fd940e286a  gcc/go/gofrontend/go-optimize.h
  5b59619fab7e543c5bb28dd8a6d62793  gcc/go/gofrontend/go-sha1.h
  8dded449a650e2e8c365f702612afc24  gcc/go/gofrontend/go.cc
! de2305aa7bc4990b7b5eaeb21c3a856f  gcc/go/gofrontend/gogo.cc
  4b5329e9d8c401009b4b1ca29c4c4c29  gcc/go/gofrontend/gogo.h
  f9015ccccf7764d4c6eeae1bd5e01c7f  gcc/go/gofrontend/import-archive.cc
  e79da7b293afd4faedb3f5e30c60ef51  gcc/go/gofrontend/import.cc
  0a9e27f1c3baa96ef288093aae5e2d3d  gcc/go/gofrontend/import.h
  52b99a209e77281dd06be084c671c85f  gcc/go/gofrontend/lex.cc
! c45499c45a711c76a00335612202d704  gcc/go/gofrontend/lex.h
  8c4c336f6edc93802ab60628e46ebf75  gcc/go/gofrontend/names.cc
  98235b1a736055cd6a130337a9ee8e8e  gcc/go/gofrontend/operator.h
! 9143aab2dbac74f153644716b56c6fc7  gcc/go/gofrontend/parse.cc
  d1791687826a1bb33b9681aef8b30dae  gcc/go/gofrontend/parse.h
  efa7d8338e571f0a00ae041e5eba5c4d  gcc/go/gofrontend/runtime.cc
  06ed40caa7a515346c6a4708bc2dd50e  gcc/go/gofrontend/runtime.def
*************** bfc57c7a1e73452c4b277ad13efbddbd  gcc/go
*** 6233,8109 ****
  b4fcb26168619862a6f0f95ba175db11  gcc/go/gofrontend/types.h
  1a87c48a17e95c935789de3db97a6ba8  gcc/go/gofrontend/unsafe.cc
  2f67448e4d59de193cdd545537d8dd20  gcc/go/gofrontend/wb.cc
! d1c1ab7a29bceba13bd6ea42eddb52d5  gcc/go/gospec.cc
! 5d08c28ed3c939e5793dab2ec4957979  gcc/go/lang-specs.h
! e66f456c6654314ea6294ef8c884a1e4  gcc/go/lang.opt
! 698b4aff5090468be47f0e3149a31d04  gcc/go/lang.opt.urls
! 4693ba34dd7d3f38a7c18b8cf6608f66  gcc/godump.cc
! 424efb8126cfa9a2db8e537dc83f58de  gcc/graph.cc
! 5823256116cdb1c5230bae9c7c88969a  gcc/graph.h
! f7af463c164596fa9feaba6c5a4a55eb  gcc/graphds.cc
! fc49e2a02a8d711e86f13c49e9c229f4  gcc/graphds.h
! 4672212edf2949c8347338930fb56b1e  gcc/graphite-dependences.cc
! dab2060953aedee24ff4c01d57453bf0  gcc/graphite-isl-ast-to-gimple.cc
! 6f77125d90f652f62fc9537fef641a12  gcc/graphite-optimize-isl.cc
! 5ed212b8ec633ef7f1d27da78f1424b7  gcc/graphite-poly.cc
! 2b2ab84134d330d34f83d9872c0de6a5  gcc/graphite-scop-detection.cc
! d44cd125ab3c99d79e8cccbe85fabe5f  gcc/graphite-sese-to-poly.cc
! 7af988fd17a831eed5078a00265a19ee  gcc/graphite.cc
! 708970ae36fc989f26c04929ba44d2cc  gcc/graphite.h
! 2c4da615d43d5ea6b6ae53aea04ff9d7  gcc/graphviz.cc
! 9c8615505c334c613ffe98b2f253e71b  gcc/graphviz.h
! 36511eb1aff7df14b371e2fcf88e6756  gcc/gsstruct.def
! a11da99ea01ab362b42257f23b827fe4  gcc/gsyms.h
! c32a1d882e7039afe158bb9e59b65223  gcc/gsyslimits.h
  053ee4a84e4593c88c088f25e153d1a5  gcc/gtm-builtins.def
! 6551051526f14189daf252eb4fcb22e6  gcc/haifa-sched.cc
! 0a23aa78d1d487c91d9c0be7ccfeb6ec  gcc/hard-reg-set.h
! a99c776880123d6c03746655637ac7c5  gcc/hash-map-tests.cc
! b7231dda969a42fe903b86dee752d776  gcc/hash-map-traits.h
! d38d7d510d3cc5a984c46e816d224fdd  gcc/hash-map.h
! a61e5823195b52c7a55813a8eb445395  gcc/hash-set-tests.cc
! 19d8879272cd350100e858a3305c2b06  gcc/hash-set.h
! ef0ab5d029ce5433ed1e61e1aaf1d5a4  gcc/hash-table.cc
! de85ec660cc6cb3e984099ff8224531c  gcc/hash-table.h
! c1f18fd89ad6f40725143197768caf33  gcc/hash-traits.h
! 579c3975a880d6664e1fd3dfac6df6db  gcc/highlev-plugin-common.h
! d8426e8122d5822d569a2749becaca6d  gcc/hooks.cc
! cd10cba9facb0d8b9435d3db4c8d65d3  gcc/hooks.h
! bbbf3f9f6858b0db0d7fc6a04d2f009b  gcc/host-default.cc
! 8c40e4d87853da9baacc7f25a13a8fbd  gcc/hosthooks-def.h
! e289b6ec067a924d7da1581676f335ef  gcc/hosthooks.h
! b55e1edcda305f1f415ac47b8b849f10  gcc/hw-doloop.cc
! 954d5781f30be200430a90abd354007b  gcc/hw-doloop.h
! 54a3072f556cc43c511f0b254db57f06  gcc/hwint.cc
! 786d547769e850d6dc06e60da7997152  gcc/hwint.h
! 135f1f518d1db915efff619873d97e0e  gcc/ifcvt.cc
! 63147290b491f66fe0c4c2a417c32997  gcc/ifcvt.h
! 5c457f2c6fae9c201fd0f2a86f1f0307  gcc/inchash.cc
! 3722e0f8d58fa8c01a90bf5e51d09c1f  gcc/inchash.h
! a073c4a690942522ba0debda8658e726  gcc/incpath.cc
! d4814465ac14d7688e5370986421b03f  gcc/incpath.h
! 92f6f0b7ead32feeec7df55cdff81096  gcc/init-regs.cc
! f796fb99601d560c4a882b6ecfb1409c  gcc/input.cc
! 944a1d89c513fe3558253d1654d501e0  gcc/input.h
! 740305a2a1342aa8a719f477b11106b3  gcc/insn-addr.h
! fcd61155f90da565ae9b576ee28ece0d  gcc/insn-notes.def
! 73d4978deb1a86ccb6b004d076a2fc87  gcc/int-vector-builder.h
! 6cc45ccaf1a55265f34493f54bd36beb  gcc/internal-fn.cc
! 12b95e305549993d38ac59f46ff13cf7  gcc/internal-fn.def
! 6f5650312adfade2d0fbb8ea6d4334d8  gcc/internal-fn.h
! 5e2086cfd6bea225be01b38fb20580c1  gcc/intl.cc
! 228428e1fe66a4b0575040e005f4176b  gcc/intl.h
! 6fd24145bd08ca12fe502d97a9f5a8e9  gcc/ipa-comdats.cc
! 06f46c6cab0e3253770563c221bed1ef  gcc/ipa-cp.cc
! 4dcb4dc14308e9d673b88c990eda3bd6  gcc/ipa-cp.h
! aa24c8df356279d6ce416fe128425c9b  gcc/ipa-devirt.cc
! 8210f1d996629cd5789d47de6f419385  gcc/ipa-fnsummary.cc
! 4d15933705eb9fb001a9696a66b30b01  gcc/ipa-fnsummary.h
! 117a1658998132095938fbfe9f1c3320  gcc/ipa-free-lang-data.cc
! b08751d59be2adb3cd9916257e43ed2a  gcc/ipa-icf-gimple.cc
! 8a31f5ba39b07e79fd108dc4cf03bc23  gcc/ipa-icf-gimple.h
! aea22aa7dcffc650cbf2b79399d1200b  gcc/ipa-icf.cc
! 4e2b3a6fc92f74f55cb009df722a941b  gcc/ipa-icf.h
! f261bcac4b8cf37d6506afca3539d2ef  gcc/ipa-inline-analysis.cc
! 440986ed37d72e7c0b83b6ff158daea8  gcc/ipa-inline-transform.cc
! 7e839777a9da3c11f968fdfc9d25e2f3  gcc/ipa-inline.cc
! e40310b8dee85f5c92031ddd41ba5409  gcc/ipa-inline.h
! 24222cc83624e3969f2fdf1d33d42339  gcc/ipa-modref-tree.cc
! 903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
! 7df81892ee864e64878a5fc1a7d63fde  gcc/ipa-modref.cc
! b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
! 4c04dbefd668da9c0f1cd206fbd6e755  gcc/ipa-param-manipulation.cc
! c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
! 88cd4aec0f60db7b8e89075516093659  gcc/ipa-polymorphic-call.cc
! dffeb86886059ee4946f5ae58ddc8795  gcc/ipa-predicate.cc
! 101cc03ddf9f9080b5d66b2ce98476fd  gcc/ipa-predicate.h
! f8a371151ca20beb43daef408d2ab8ed  gcc/ipa-profile.cc
! 875533cd21e4a8616af0599e46b2ca99  gcc/ipa-prop.cc
! 1bd79a34546008cc30a65e9f6d6cae56  gcc/ipa-prop.h
! 7ea90675793de5530ec17d25408fee21  gcc/ipa-pure-const.cc
! 0e6ac1c741423dcc48c353e0b21998c8  gcc/ipa-ref.cc
! 353b596d7c17c74dee8e23f51acaeac6  gcc/ipa-ref.h
! 9376c27373880cb1bea1d9575ca5dc47  gcc/ipa-reference.cc
! ac94760a96824c2abcdafd7b64cc5dbe  gcc/ipa-reference.h
! 950232561dc0a0a3a0a60a89388daecb  gcc/ipa-split.cc
! 31b1e7b3fd9784eafa793b81a8ef9afa  gcc/ipa-sra.cc
! 8f04eaf4696591ee502a3fc058df2dab  gcc/ipa-strub.cc
! 493c50dde4490550d357d72ab27de47c  gcc/ipa-strub.h
! 50fd32fe61aaa2784cdbcddf7345a7fc  gcc/ipa-utils.cc
! 62c962a0a6cbd56a5f54a4b8e25dd9d1  gcc/ipa-utils.h
! 035deb24ae18e34e8f84d58b0fa4f4d0  gcc/ipa-visibility.cc
! 031cc0b31d16c0f3d23bd6397d93f926  gcc/ipa.cc
! d2e531da51c3e38dbe8f74af7cbe6b3e  gcc/ira-build.cc
! 9eda69537fecc0407ce4251faa62c6c7  gcc/ira-color.cc
! 18222a9a1caeaa037275da01ec6ee43e  gcc/ira-conflicts.cc
! f54fe1284d8900294436e60d3fd31625  gcc/ira-costs.cc
! 5aac65f304aaaf08d39922717bc7e6fc  gcc/ira-emit.cc
! a30a056dff6af9270f6ae970fb3fb57e  gcc/ira-int.h
! ef0854666cbd038d8209494d1a373c8f  gcc/ira-lives.cc
! 770edb4b350ef11bb833679bd8f9f7a1  gcc/ira.cc
! 5945785e178cc3b55f096cadd208f4b0  gcc/ira.h
! aa966026e2f0035614eccce6be6b0754  gcc/is-a.h
! 01db61d7a85c125188ada2654cab1ff3  gcc/iterator-utils.h
! cfc306fdc9af5c672d1067c22a004574  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
! 70b77cc72d96de381dc9ff7916449297  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
! 346b9a75b88fb6744f12303659db0b13  gcc/jit/config-lang.in
  df53fb6b84c435b56ac2cb2727b62b27  gcc/jit/docs/Makefile
  aefe50c9e37a2e7a06545dbc6b38bbd4  gcc/jit/docs/_build/texinfo/Makefile
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial.png
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial1.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png
! 633f33001ec9d8717b03440ff012370f  gcc/jit/docs/_build/texinfo/libgccjit.texi
! 88dcbb232286eea1c15661dbd70f51c0  gcc/jit/docs/conf.py
! c7c5ed13c2adb0ff0afc7ce09912ae17  gcc/jit/docs/cp/index.rst
! a7c17b4dc3bd4fa8001fb603d3acd04b  gcc/jit/docs/cp/intro/index.rst
! ee5f91fc0728f5524b1b48c4c111eafa  gcc/jit/docs/cp/intro/tutorial01.rst
! 50affcae615855b1e18b3a103161716d  gcc/jit/docs/cp/intro/tutorial02.rst
! 3a9c7cada1bb8528afe371689f38b2ed  gcc/jit/docs/cp/intro/tutorial03.rst
! fd02cbad218ade6e55fd0f10e9e05f23  gcc/jit/docs/cp/intro/tutorial04.rst
! 8011d10dde2813712153f086a250e7d0  gcc/jit/docs/cp/topics/asm.rst
! 7ef0b5f53c0392c86238ac854472bc67  gcc/jit/docs/cp/topics/compilation.rst
! b087e37adf4444fa90cd16564f147742  gcc/jit/docs/cp/topics/contexts.rst
! 9636db9b5aee013f94338be181f54a6d  gcc/jit/docs/cp/topics/expressions.rst
! 8ece987ef87d58436c52ac54efdce3be  gcc/jit/docs/cp/topics/functions.rst
! 84a6ee85f712c190a2d5f5c00f355e1f  gcc/jit/docs/cp/topics/index.rst
! 82815b77f7355e4e3f97b07f3998ab82  gcc/jit/docs/cp/topics/locations.rst
! aef66a357a57f2a400247871c5b29ff5  gcc/jit/docs/cp/topics/objects.rst
! 2315ac160d9ba9fb7bb32808c31fc638  gcc/jit/docs/cp/topics/types.rst
  98a4c0efa41e5eb7177483e4cd99a81e  gcc/jit/docs/examples/emit-alphabet.bf
! e13e019c395259207ee7a703cda87f11  gcc/jit/docs/examples/tut01-hello-world.c
! c9f59c382ce7499f3869bc73773f3f08  gcc/jit/docs/examples/tut01-hello-world.cc
! 9ebaab14af04652cbb2fe7c0e1cc2a51  gcc/jit/docs/examples/tut02-square.c
! 0fb0f77b60d476f4c9f13927e23765fc  gcc/jit/docs/examples/tut02-square.cc
! b925dd23038d44375a7de77509d60dda  gcc/jit/docs/examples/tut03-sum-of-squares.c
! efa39d12c4777eb6dac000dbb49c7621  gcc/jit/docs/examples/tut03-sum-of-squares.cc
  6369d2b07520cb0fc9d14082499f6be2  gcc/jit/docs/examples/tut04-toyvm/Makefile
  999c1d2b92d5d71565c67854aad60e9c  gcc/jit/docs/examples/tut04-toyvm/factorial.toy
  efe1998ded06ac3721d9ced4d96056f0  gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy
! b08a39aa5e0be4da7cb4a5aa059fccf2  gcc/jit/docs/examples/tut04-toyvm/toyvm.c
! ed5ad337b89c9c60b7fec7503067374a  gcc/jit/docs/examples/tut04-toyvm/toyvm.cc
  3cbe9daf70398730ee60aa4caf2fc200  gcc/jit/docs/examples/tut05-bf.c
! ec82879df8383ff5834b6310daaca2ce  gcc/jit/docs/index.rst
! 27f3109f76061f2b9a97607a11ed80d0  gcc/jit/docs/internals/index.rst
  d72502d68617b68873d385bcee6e9c4b  gcc/jit/docs/internals/test-hello-world.exe.log.txt
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/intro/factorial.png
! bfc8f40aa0981c37331b0a6cda614364  gcc/jit/docs/intro/index.rst
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/intro/sum-of-squares.png
! 1936d8719aab9e240bc5f0f983ad1777  gcc/jit/docs/intro/tutorial01.rst
! a39ca9662780850453752e606da0814b  gcc/jit/docs/intro/tutorial02.rst
! 8838f89508b261848687daa2afe573fa  gcc/jit/docs/intro/tutorial03.rst
! 1bf72f5edadaa9cd3e070f966376e4d7  gcc/jit/docs/intro/tutorial04.rst
! 56d1ea2875a2084769ec0194706ba3ae  gcc/jit/docs/intro/tutorial05.rst
! a0c6795f1489fb8721800da09b9e02d7  gcc/jit/docs/topics/asm.rst
! fe6ed4dd33120c08c3b51757a07af6fb  gcc/jit/docs/topics/compatibility.rst
! f54f46a6d6edef24b2d8ae5b7e2ac36d  gcc/jit/docs/topics/compilation.rst
! d63809643e7f2edf603b18d9e7aaf61f  gcc/jit/docs/topics/contexts.rst
! 403825c54dd2973a0e9d83091bbf8e73  gcc/jit/docs/topics/expressions.rst
! df8c18c6224f909c4382954b71b161eb  gcc/jit/docs/topics/function-pointers.rst
! 28e880cee3325ac793edd85d58b723f8  gcc/jit/docs/topics/functions.rst
! e8fd0e2972405b61ec981eaa4b009c58  gcc/jit/docs/topics/index.rst
! dfc024d359bb5095bef5e77df52effe4  gcc/jit/docs/topics/locations.rst
! c9749ce4c8e98d080353efd8b159d911  gcc/jit/docs/topics/objects.rst
! aada83355b14a998761689611d0f7709  gcc/jit/docs/topics/performance.rst
! 75844413eb8a3e7e50d61142f037b95e  gcc/jit/docs/topics/types.rst
! d1819c5f8308cd1b61327e08827405be  gcc/jit/dummy-frontend.cc
! db41fb04e11c07a7d65ba2a125226c46  gcc/jit/jit-builtins.cc
! f33f03d4e1ce029f28052f42352d712e  gcc/jit/jit-builtins.h
! 9ee76ada0ee7f3e0a671b6e7a9cb2c4b  gcc/jit/jit-common.h
! fab58a8ff6203b2894e9fb6b288a1447  gcc/jit/jit-dejagnu.h
! 0f709c95254339252630fbba426f130f  gcc/jit/jit-logging.cc
! 8f3912179e5be27e4ccdcebf61666a84  gcc/jit/jit-logging.h
! 5a37f50700883a51a7343837cc89a02c  gcc/jit/jit-playback.cc
! 37995dea2a14de02f6f1348824a00d96  gcc/jit/jit-playback.h
! 3b4b93c3355527ce665d56ccf7b9f2e4  gcc/jit/jit-recording.cc
! b0c77b313946d5604a09c3dd78c68b8d  gcc/jit/jit-recording.h
! e882618068af539651ecb240fe44f334  gcc/jit/jit-result.cc
! 2329ce8800e6a8caeccf37da53f4e0a4  gcc/jit/jit-result.h
! 2e5089baede413d13113fd9232def90b  gcc/jit/jit-spec.cc
! 1fa77a66351a16ba1ee0c2cba1f11400  gcc/jit/jit-tempdir.cc
! 3cc2b7789edee70a2cce3546d470b0d4  gcc/jit/jit-tempdir.h
! 0503d6abd005001e1a08b8467b2ccd84  gcc/jit/jit-w32.cc
! fa2705c97d7625e301854e0dc322c73d  gcc/jit/jit-w32.h
! d26f451856f27c8fb77a4df97e752c06  gcc/jit/libgccjit++.h
! c5cf3217fe3f5e1401fdb715cf884b6f  gcc/jit/libgccjit.cc
! f7cbb136670c625f0a873b119089206b  gcc/jit/libgccjit.exports
! 7a6126bf797964f077988f19784d70e8  gcc/jit/libgccjit.h
! 352a2ac876cd8350853443f800d51196  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! 8b3f2589f4a18a5ee6ee0a579d9fcbd8  gcc/json.cc
! 116a3a838fad487ce0193d58065f1fd2  gcc/json.h
! 4f99068897aa042b1927410bb6410a28  gcc/jump.cc
! f67bf839aeb30bc257c67e6bf6428204  gcc/langhooks-def.h
! b2ef2f78704bc82654ee06aee1feaf47  gcc/langhooks.cc
! 0ffe3db68a5aa8a605da75d0e570be34  gcc/langhooks.h
! 878e480c910814d2edb966fd0da7014d  gcc/lcm.cc
! ab4586670031f1c5020a6acac7f38b6e  gcc/lcm.h
! cdd40eeb7fd437c3a8c407fc1d078eba  gcc/libfuncs.h
! 996fa0ebf3c49ab92723541ca6677df9  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
! 5d9256897f216818949bf39c29692455  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! a22c6a2b44962887016aec34f8a38d4a  gcc/logical-location.h
! a01300c02d557ff9f18a3bf3166b991f  gcc/loop-doloop.cc
! 5c9db7dde074cd611d88fbe5fb1e0356  gcc/loop-init.cc
! 135be822402b1de4544962776bdd386c  gcc/loop-invariant.cc
! cc450e58fd59be4e3a300ba898d94ee5  gcc/loop-iv.cc
! 5bc24636f3cc35b744d15b92c6ce2683  gcc/loop-unroll.cc
! 8e4e8455b9edf2ef634827624e7c598f  gcc/loop-unroll.h
! 5311260e961dd22d7cec11aeeee45781  gcc/lower-subreg.cc
! 14dd7339d4d9c29f7462a093e4881147  gcc/lower-subreg.h
! de69ffd666d467def1646c24270ea2c9  gcc/lra-assigns.cc
! a62046a3f62b3ccf836000569a375ade  gcc/lra-coalesce.cc
! 0830a4442865705d005e8cf22ff22336  gcc/lra-constraints.cc
! 70a8abdd45bcea7a12630d9341f827e4  gcc/lra-eliminations.cc
! 5534388e8801fd9d3f82413c23fdc5f4  gcc/lra-int.h
! 642aa6eb2e4f0f3bddc8b0c181835618  gcc/lra-lives.cc
! 6a5e600c1b20b3604f6113e15ec9e761  gcc/lra-remat.cc
! f82e226fe4d03cd57487f05c70be1ebd  gcc/lra-spills.cc
! 1548c4418fa356fa5b47b356107dbcbf  gcc/lra.cc
! fa24e9dabcdec01373321b3a591203db  gcc/lra.h
! 24dcf9fecc311d0aa900ca185e76ca47  gcc/lto-cgraph.cc
! ccc034ae6c8dc1fdf91cb51b48df795d  gcc/lto-compress.cc
! ec714077503e5b5e98f20d57a48ded3e  gcc/lto-compress.h
! 87f4357b156f65021eba574aa36f2133  gcc/lto-opts.cc
! ab906c255c72a4bab78c51ebfbed8a52  gcc/lto-section-in.cc
! 1e152d3b953eacf39fda610e419a6e40  gcc/lto-section-names.h
! 781e3721dde5d2c38297cbd12d0bd345  gcc/lto-section-out.cc
! a07c89837c969ab21785ed67be67ad49  gcc/lto-streamer-in.cc
! f41f3240af59c920785f7ad7373f06c9  gcc/lto-streamer-out.cc
! 2916ac789715a6c1398f1322b6b937db  gcc/lto-streamer.cc
! 5c0abe5215dcb405391bf4047b52d8c5  gcc/lto-streamer.h
! 48aebd3d22a8b7467fc98ce90e73cc99  gcc/lto-wrapper.cc
! cc03931a8c620180e0a6a3f6600de08c  gcc/lto/ChangeLog
! b32abe0dfb9c9271f0bda635d92fa0d1  gcc/lto/Make-lang.in
! 9f59490a66de9aa5822b069eef35b0ec  gcc/lto/common.cc
! 770a74217f81f6124a1081aad362ee00  gcc/lto/common.h
! ae0dba9d0013e4c8cedcdd03afa46f86  gcc/lto/config-lang.in
! ca7eb1cb6f46e46d89b0bd2d24fa7224  gcc/lto/lang-specs.h
! 3d17fd327034a3b2340ce163e802bbfc  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! a24f36ddd07ecc2f8d99fe518f7f69c7  gcc/lto/lto-common.cc
! cae920ee0ecb9f75f85298db508074be  gcc/lto/lto-common.h
! 2ff531281d36cf4cb5ebf9d9bfa44d83  gcc/lto/lto-dump.cc
! 9371b719ce0fc231f11fc9f406670e0d  gcc/lto/lto-lang.cc
! 7e0d46f2934717756ee9c73aeb0e9c32  gcc/lto/lto-object.cc
! 139ffa7af7bcb2725f13712054826d61  gcc/lto/lto-partition.cc
! bc2082d166bc49e5fde949d6a3b20250  gcc/lto/lto-partition.h
! 90a6dcec53a9b5d3f7f2164e7f94636e  gcc/lto/lto-symtab.cc
! 1027da9d97d59eb02c9380864aa7f88f  gcc/lto/lto-symtab.h
! b6f8f59d247cdb7bbe7ca9c4e3d5aed5  gcc/lto/lto-tree.h
! 45c9f57e8b2385b28db0bf87f25f8ffb  gcc/lto/lto.cc
! b87a73403ed413be57acb8b88a00edbf  gcc/lto/lto.h
! a12e66ceee57af9bf581b69a6bc80391  gcc/m2/COPYING.FDL
! ddf5e06ee9ecc65f914a821be9c5d30a  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 61c1ea7582c84e44c1e4c6e88335263a  gcc/m2/ChangeLog
! e109a35b7aa7add2680991d40ec5b1d7  gcc/m2/Make-lang.in
! d07ec3c77c38a8256e7022241090ee1e  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
! 1597bf5bb1fef61a647a0212d434d6a9  gcc/m2/config-lang.in
  453bdaa9a532e423fb527f964f5b88d1  gcc/m2/config-make.in
  1fedeef70a344a1d73c4f25535361d16  gcc/m2/configure
! 2644bd3c47f1b20b96236a3631b7a99b  gcc/m2/configure.ac
! c242f8a112215dda7d96953c1f43ed63  gcc/m2/gm2-compiler/CLexBuf.def
! 41174e9c0e13e8353670eef0deb1f074  gcc/m2/gm2-compiler/CLexBuf.mod
! 74e941e55cb45131b7fe9b985f74cb78  gcc/m2/gm2-compiler/DynamicPath.def
! 21349a5fd4ac77e668e50fdcece0cf13  gcc/m2/gm2-compiler/DynamicPath.mod
! c2fc0c672a20cdf11de324f0991a2519  gcc/m2/gm2-compiler/FifoQueue.def
! c121090d338a239856b67ad6257efff5  gcc/m2/gm2-compiler/FifoQueue.mod
! 4a878ef3ce8957f86d3c517cc3b781db  gcc/m2/gm2-compiler/Lists.def
! 541f66585075bc143de1fef1a328a99f  gcc/m2/gm2-compiler/Lists.mod
! 5b2b260d8a3796d9f2e483ac775932c8  gcc/m2/gm2-compiler/M2ALU.def
! 4ec7accb532eb10ae1dcc10d3ebeabb7  gcc/m2/gm2-compiler/M2ALU.mod
! c7b7d5f8b969c19a17d8ab990bed2e35  gcc/m2/gm2-compiler/M2AsmUtil.def
! 69fb068a1df00dacda5fe570e041dbdd  gcc/m2/gm2-compiler/M2AsmUtil.mod
! 0e8537c9eab0bc92c6e0aa2d9475e9ec  gcc/m2/gm2-compiler/M2Base.def
! 04a8355c3a72f01d05f07b33e0797aa4  gcc/m2/gm2-compiler/M2Base.mod
! 853852a68f98c33e8fbf49df200b64b3  gcc/m2/gm2-compiler/M2BasicBlock.def
! cc47691560b29767b1bba9a3df230bb9  gcc/m2/gm2-compiler/M2BasicBlock.mod
! 44435d528c37d7f1251035681f7d05dc  gcc/m2/gm2-compiler/M2Batch.def
! 3c60b3d799dc719833533cce7d9adb7e  gcc/m2/gm2-compiler/M2Batch.mod
! 746921ea3afefdf42ad462f6c86d80e7  gcc/m2/gm2-compiler/M2Bitset.def
! fb7ff8e0d4889ed7d9ea35c6424057bb  gcc/m2/gm2-compiler/M2Bitset.mod
! 35b66531c52f64d53e16ad662b169765  gcc/m2/gm2-compiler/M2CaseList.def
! b6b650ea33dc67e8552bbdcea48dec64  gcc/m2/gm2-compiler/M2CaseList.mod
! 3840dd86e1598597707a18463deac14f  gcc/m2/gm2-compiler/M2Check.def
! e70477328325ca5113f130edb4bd1156  gcc/m2/gm2-compiler/M2Check.mod
! a760424620afd31b9c0b1f70140fa593  gcc/m2/gm2-compiler/M2Code.def
! d86cdd185010f5729efcca5f6aaa1603  gcc/m2/gm2-compiler/M2Code.mod
! 32e057e04912c393f60ca6550a7b1e5b  gcc/m2/gm2-compiler/M2ColorString.def
! 720a33688b9e9926814823746731b115  gcc/m2/gm2-compiler/M2ColorString.mod
! e2a2fbd854ba3dda93745e3a3abec592  gcc/m2/gm2-compiler/M2Comp.def
! 3359fa7eb037a79bac055d026fb3e83a  gcc/m2/gm2-compiler/M2Comp.mod
! 33318154d17ce53775015fb8a90b5af0  gcc/m2/gm2-compiler/M2Const.def
! 1415c87746f9f7cd69a25e7e67b308e0  gcc/m2/gm2-compiler/M2Const.mod
! 778683907322f0a4190a06bde7f3177f  gcc/m2/gm2-compiler/M2Debug.def
! 833834ea9bcbf1706468e29e099c8b15  gcc/m2/gm2-compiler/M2Debug.mod
! 7f32b58decd352b11e40052091047514  gcc/m2/gm2-compiler/M2DebugStack.def
! d6d32e79826a72e4add826cd5ff123bf  gcc/m2/gm2-compiler/M2DebugStack.mod
! 42fd8544caff2da68b266938a9c05acf  gcc/m2/gm2-compiler/M2Defaults.def
! 4bbd72475a9c0bee8e1f1f4e81450909  gcc/m2/gm2-compiler/M2Defaults.mod
! f7d36389b7a337a695b3a1705b0a13b4  gcc/m2/gm2-compiler/M2DriverOptions.def
! c5a8b3af83fccc8888905e8303e0bef2  gcc/m2/gm2-compiler/M2DriverOptions.mod
! 756299c6e3b608626e2ecfe0e73f8cbb  gcc/m2/gm2-compiler/M2Emit.def
! 163303f6f0d4f5dab34ef9195d4259ca  gcc/m2/gm2-compiler/M2Emit.mod
! 1ec0ab3d79d83670a50dc669920bb15d  gcc/m2/gm2-compiler/M2Error.def
! 4702be0551f025994cd104248224628b  gcc/m2/gm2-compiler/M2Error.mod
! 33132d7b732c8b530d29b96189a0add0  gcc/m2/gm2-compiler/M2EvalSym.def
! 2b17151111a033644a413d71861b7105  gcc/m2/gm2-compiler/M2FileName.def
! 6f1d5b5406f193db9117dc0f08d447c3  gcc/m2/gm2-compiler/M2FileName.mod
! 4d81d13a3eb900daa981a466486abeb4  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 4ac7a631e8db4cc0ece3f468fcbce8f6  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 2a4bee6d7053e4f77a1cdff25f0c746c  gcc/m2/gm2-compiler/M2GenGCC.def
! 7935129397672757edcb40d2665a0541  gcc/m2/gm2-compiler/M2GenGCC.mod
! 8dac4ecc2b699bcd668d053b2adfbf07  gcc/m2/gm2-compiler/M2Graph.def
! 1291c11066be829aea2cb7f0ad6869ef  gcc/m2/gm2-compiler/M2Graph.mod
! 16ab6563a2402302c3746ea3f392214c  gcc/m2/gm2-compiler/M2LangDump.def
! 3b7704f1fcf3f8df30220a868abca9e0  gcc/m2/gm2-compiler/M2LangDump.mod
! a8b16cbb7f1dea1e5684bc7fb72e9cc6  gcc/m2/gm2-compiler/M2Lex.def
! 8172950bbbb1f6a5b520f912073d5c42  gcc/m2/gm2-compiler/M2Lex.mod
! e8251c6c45f9274d54a1c634044eb249  gcc/m2/gm2-compiler/M2LexBuf.def
! 61c76d22c0b53b44dc28440a6ca83769  gcc/m2/gm2-compiler/M2LexBuf.mod
! 092f1e43efa453af24323c637eb1eb1b  gcc/m2/gm2-compiler/M2MetaError.def
! af7dc49cb9aad0be9120da15aac5a881  gcc/m2/gm2-compiler/M2MetaError.mod
! f038d2c8d4d8b0d82a0a7766f267f951  gcc/m2/gm2-compiler/M2Optimize.def
! c1cf33ae85635a4deb859551d0d620d4  gcc/m2/gm2-compiler/M2Optimize.mod
! 8030135d43f24d7fdbbd34c1f77615ab  gcc/m2/gm2-compiler/M2Options.def
! fdccce7fe996c02b84734d389c591138  gcc/m2/gm2-compiler/M2Options.mod
! a5d4995c7be30bce7de076224465559f  gcc/m2/gm2-compiler/M2Pass.def
! 77fd2f6857747176d465bce50536f1c5  gcc/m2/gm2-compiler/M2Pass.mod
! 533e6902379e72b468bc2e26cd38533d  gcc/m2/gm2-compiler/M2Preprocess.def
! a281b01eb990dd08e23e712a186c4965  gcc/m2/gm2-compiler/M2Preprocess.mod
! b366f55e1b3608682cb596553a58ad78  gcc/m2/gm2-compiler/M2Printf.def
! ee42654e0778bb52226457d80c2af746  gcc/m2/gm2-compiler/M2Printf.mod
! 2150190063f8a70a2660c6e9a20868a0  gcc/m2/gm2-compiler/M2Quads.def
! 2c5f2c8e79897a345e3290fe518687bd  gcc/m2/gm2-compiler/M2Quads.mod
! 9263a20d2f2a4241178e9bc0e9833867  gcc/m2/gm2-compiler/M2Quiet.def
! 450aa9c2da5d6eb0f6d43cef82ea788c  gcc/m2/gm2-compiler/M2Quiet.mod
! 5cb31805c7e34b82c2792e9237e861d6  gcc/m2/gm2-compiler/M2Range.def
! b7290e6089513132763162c73f289a71  gcc/m2/gm2-compiler/M2Range.mod
! 472012c6145240e6918545942096cd88  gcc/m2/gm2-compiler/M2Reserved.def
! 4b5964db5c79c161474e458b31f0e97c  gcc/m2/gm2-compiler/M2Reserved.mod
  ed9342d46dccb1fef2e7dd1b2a268c89  gcc/m2/gm2-compiler/M2SSA.def
! 352b0466bf14f8dab5ea6f0d5bbc2995  gcc/m2/gm2-compiler/M2SSA.mod
! 91369afea7ba603f2cba2171cb22d408  gcc/m2/gm2-compiler/M2Scaffold.def
! a7e0dbf0314225673299cf6dd4288017  gcc/m2/gm2-compiler/M2Scaffold.mod
! 3b03e1c7f5b4176e1edb213a211dce87  gcc/m2/gm2-compiler/M2Scope.def
! ee3a843b3500e64d6412f59ae2e47142  gcc/m2/gm2-compiler/M2Scope.mod
! 438971afd545c7051a033d0ff4992e0a  gcc/m2/gm2-compiler/M2Search.def
! 21ccff95904db0ce8e673f07380be5ed  gcc/m2/gm2-compiler/M2Search.mod
! 511387729ed007cfc51bacb18a25a284  gcc/m2/gm2-compiler/M2Size.def
! 6eebb13c07050085eaef4c7627daf8a7  gcc/m2/gm2-compiler/M2Size.mod
! b270a814fb9cce65fc1481c41b5ff3e0  gcc/m2/gm2-compiler/M2StackAddress.def
! a59f9cb991f70d33962a907b6d5562e0  gcc/m2/gm2-compiler/M2StackAddress.mod
! 1a1de9fb47d3ca5679d187b4df272f0c  gcc/m2/gm2-compiler/M2StackWord.def
! e7da36b120be5c9d848ee02796a8f56c  gcc/m2/gm2-compiler/M2StackWord.mod
! 580d3e5f6d50231dcd7db9f8406ea6dc  gcc/m2/gm2-compiler/M2Students.def
! 979ad0f74256dd5f84d1367ea6cdb244  gcc/m2/gm2-compiler/M2Students.mod
! 4a458571a74cdd89716fff963f7a1682  gcc/m2/gm2-compiler/M2Swig.def
! fdc12adf2ff51392afcf4eaa7d04d8f3  gcc/m2/gm2-compiler/M2Swig.mod
! 460b6c0971ade68a8dbb6170060bf0c3  gcc/m2/gm2-compiler/M2SymInit.def
! c31036000bec50da1d5b8775c39ae4a6  gcc/m2/gm2-compiler/M2SymInit.mod
! 6246b393c5b92835721e3a8ce7352dcb  gcc/m2/gm2-compiler/M2System.def
! 6b77228ae57987a75738ade84ece207c  gcc/m2/gm2-compiler/M2System.mod
! 5a7e992bd60d8ceac917f3c479ff7dd3  gcc/m2/gm2-compiler/M2Version.def
! 7c9886a293f05596be8582e6358ce6e9  gcc/m2/gm2-compiler/NameKey.def
! 88ed55ad74451dae56d5dfb67e22cf0c  gcc/m2/gm2-compiler/NameKey.mod
! de802378c709d2b9572057469c44c0d5  gcc/m2/gm2-compiler/ObjectFiles.def
! 9cf0129e5f8ce3cf9f1cca02ae0d9a15  gcc/m2/gm2-compiler/ObjectFiles.mod
! 298481e0b67429a7be31018ef72a18a0  gcc/m2/gm2-compiler/Output.def
! 12b3e077e0f5b5ba04e99162ea1804f8  gcc/m2/gm2-compiler/Output.mod
! c9a76efacc302fa403657bdc1fa97cd4  gcc/m2/gm2-compiler/P0SymBuild.def
! fb4c88e4dc095943c13b27269cc221a6  gcc/m2/gm2-compiler/P0SymBuild.mod
! b7fe7733dcbb706ebbb83498f7c6b799  gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
! b1a2b1af054acd7be865a09e7eaf3555  gcc/m2/gm2-compiler/P0SyntaxCheck.def
! f8097c4e2b04781b57bb47b6db3f955b  gcc/m2/gm2-compiler/P1Build.bnf
! 33a74c58f4ecbc58789d9658eb978596  gcc/m2/gm2-compiler/P1Build.def
! a1e00b272a977b6f750aa83463c4e4ed  gcc/m2/gm2-compiler/P1SymBuild.def
! 10b3ae3a3a1fcd62cb5188eafb812946  gcc/m2/gm2-compiler/P1SymBuild.mod
! 7884b1f7bb4d42bf44686e23128e8e1d  gcc/m2/gm2-compiler/P2Build.bnf
! 23753bdf38bd19eb8d323b0770f903d7  gcc/m2/gm2-compiler/P2Build.def
! 549a010738a056d3c025617a2d7d1a3a  gcc/m2/gm2-compiler/P2SymBuild.def
! 91b1a1d4aa6d16d8606db1eb05355da8  gcc/m2/gm2-compiler/P2SymBuild.mod
! 46357e1e5bc5ddf8c150c33321d64172  gcc/m2/gm2-compiler/P3Build.bnf
! db4dbfbc38b13a1d958c8fe6599565c5  gcc/m2/gm2-compiler/P3Build.def
! 68284e06712f161aef4d9bbce6d7b0a7  gcc/m2/gm2-compiler/P3SymBuild.def
! a2a328955d28af69e0025cef9adaa43c  gcc/m2/gm2-compiler/P3SymBuild.mod
! df746463f8a3a7325cb13c84e5396199  gcc/m2/gm2-compiler/PCBuild.bnf
! 13e139c655e7c28ef198c307036ef154  gcc/m2/gm2-compiler/PCBuild.def
! 4f6d88cc54f8e04b5710b6eb4698ad30  gcc/m2/gm2-compiler/PCSymBuild.def
! f2520463dbf279b9db4d7bf32bcdb4fb  gcc/m2/gm2-compiler/PCSymBuild.mod
! 9b609b15afa44a3cce63b967da669da5  gcc/m2/gm2-compiler/PHBuild.bnf
! 6865c2207174163fa18136d225893807  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
  db0fe572d275f12368c3037e218c3bd6  gcc/m2/gm2-compiler/README
! de4abbe13d22c2fbf38a6780a9ae8d0d  gcc/m2/gm2-compiler/Sets.def
! 43abcb072180ab44ffd9739ff1b690ac  gcc/m2/gm2-compiler/Sets.mod
! c3ebcf617650465a92b455b43e92ca80  gcc/m2/gm2-compiler/SymbolConversion.def
! 8126706b7981f1bb400efa0e1cbc0a09  gcc/m2/gm2-compiler/SymbolConversion.mod
! 41972f3f39c091b1c8249219bd0ebf3f  gcc/m2/gm2-compiler/SymbolKey.def
! 8aa6ffb9e49ebeb3d9374af098e95f9b  gcc/m2/gm2-compiler/SymbolKey.mod
! 04d39f5d2b5be70d7ad8e5122124237e  gcc/m2/gm2-compiler/SymbolTable.def
! 535865bc940fd7450cf59446cf538b73  gcc/m2/gm2-compiler/SymbolTable.mod
! 0d97cb56efbe07ec9cb6789be4e6cd49  gcc/m2/gm2-compiler/bnflex.def
! 23301e9e73a50c3c30aa67012bb388d9  gcc/m2/gm2-compiler/bnflex.mod
! 9c7e494a1368a048910ab2bbbadd0930  gcc/m2/gm2-compiler/cflex.def
! 42b4645ade88115524d819c73ca6cadd  gcc/m2/gm2-compiler/gm2.mod
! f80ebf90fc6e7edcac5de6509a588209  gcc/m2/gm2-compiler/gm2lcc.mod
! 4ba96451577f1718512cfafd5970e3df  gcc/m2/gm2-compiler/gm2lgen.mod
! 4191e3f83d6ccddcc65f3cbea8e339da  gcc/m2/gm2-compiler/gm2lorder.mod
! ebfb5f59007045d485d8ea2307ded24b  gcc/m2/gm2-compiler/m2flex.def
! e688304297693e195e6d572673527bff  gcc/m2/gm2-compiler/ppg.mod
  4ff5d76d706ef1de0bbdca3ebaff7877  gcc/m2/gm2-gcc/README
! 49eb0dec7ff84f656800986858ffad19  gcc/m2/gm2-gcc/dynamicstrings.h
! 8fb09c851db6aa1eed7533516c4aeab4  gcc/m2/gm2-gcc/gcc-consolidation.h
! 42dbff9e61e0e96aa196ec925c963e23  gcc/m2/gm2-gcc/init.cc
! 5d782059dc31e4b33f4d834c437a93d4  gcc/m2/gm2-gcc/init.def
! c4112616022628588af3e87a493ddfc4  gcc/m2/gm2-gcc/init.h
! 04e8d7beb2050123fd44439e97fdddf5  gcc/m2/gm2-gcc/m2assert.cc
! 9fb9a31d18e80094d6cf40f96016f9eb  gcc/m2/gm2-gcc/m2assert.h
! 3054424e692a1d437254201dc2a412e1  gcc/m2/gm2-gcc/m2block.cc
! ed9744371d366f0acb1069e738f7e11e  gcc/m2/gm2-gcc/m2block.def
! 5117a5edf14651403ee17e13264e3d52  gcc/m2/gm2-gcc/m2block.h
! 58b00434f469525d03bc1cfa6be7cd0c  gcc/m2/gm2-gcc/m2builtins.cc
! af56d90ba9a8ea1f7aeb0bd57ccd7d99  gcc/m2/gm2-gcc/m2builtins.def
! 71e3134e402e01183c4d3a77bd772fb1  gcc/m2/gm2-gcc/m2builtins.h
! 1b139f52599a15052d2fdabf52223b26  gcc/m2/gm2-gcc/m2color.cc
! a893bfe9ff0514ffedadd60220e47797  gcc/m2/gm2-gcc/m2color.def
! ba30dc00f4a34c0a81cecc55a44d3796  gcc/m2/gm2-gcc/m2color.h
! ae77038c952780616d160d881e302b47  gcc/m2/gm2-gcc/m2configure.cc
! a5878a5e779f39cf985c298d4c530b28  gcc/m2/gm2-gcc/m2configure.def
! 025de9331d8239d4f0916bdce98879bc  gcc/m2/gm2-gcc/m2configure.h
! 0b3a7f703a25810f64829a2004c9b59b  gcc/m2/gm2-gcc/m2convert.cc
! 32dd7d108a7bbc14a660c240e3f2d5e6  gcc/m2/gm2-gcc/m2convert.def
! 1b5f05b99e203b197080beb68f9303de  gcc/m2/gm2-gcc/m2convert.h
! 40b528bf0ec40f4b21ea3b9102aa0efe  gcc/m2/gm2-gcc/m2decl.cc
! dea63dbe29933bb9cc0afa664b06fabc  gcc/m2/gm2-gcc/m2decl.def
! 6763284c824c80add0098f90126cd86a  gcc/m2/gm2-gcc/m2decl.h
! fafc21c3c1b399157c25271e524f82a9  gcc/m2/gm2-gcc/m2except.cc
! 6255efd627d9c07c59f043dc524d52e7  gcc/m2/gm2-gcc/m2except.def
! b7be91a3c825484fbdb172c3aaf2c017  gcc/m2/gm2-gcc/m2except.h
! 396345c2b77018934b7a5a8f99467554  gcc/m2/gm2-gcc/m2expr.cc
! 8f0fc78a74f06da3f843b47cc42312a2  gcc/m2/gm2-gcc/m2expr.def
! ff4f47d1c67ef4783289e8d081747a9e  gcc/m2/gm2-gcc/m2expr.h
! 03ce849ebaf10d66eb34f28e3bca6709  gcc/m2/gm2-gcc/m2langdump.h
! 00b95b65ac2209a80d038f2268000d80  gcc/m2/gm2-gcc/m2linemap.cc
! f1c923c80b7d3d2bb842645a86313295  gcc/m2/gm2-gcc/m2linemap.def
! 821f3e79cedef97f2341696c8cac9832  gcc/m2/gm2-gcc/m2linemap.h
! 82b298da9948eba21cb239124dda0cdf  gcc/m2/gm2-gcc/m2misc.cc
! 659af758aeac63b2609bbc16afbe52a3  gcc/m2/gm2-gcc/m2misc.def
! b23a4eba1479b410d08237d5725b6aef  gcc/m2/gm2-gcc/m2misc.h
! 3f1e60310001d38b77eec62183947cf2  gcc/m2/gm2-gcc/m2options.h
! 2ae88b70d331030ef7b376a44b6cffe7  gcc/m2/gm2-gcc/m2pp.cc
! 8eb4b1e8ef95c08923b8099b647d4437  gcc/m2/gm2-gcc/m2pp.def
! ecc9774820b68f21aca81a338aa465de  gcc/m2/gm2-gcc/m2pp.h
! 38d1aaeb330f781b7ca9c2a7480f6bcf  gcc/m2/gm2-gcc/m2range.h
! 930d1fa08aa084c0997e08ee3250611d  gcc/m2/gm2-gcc/m2search.h
! 368fcca05a9c9b9d16c8cd85ae8809ef  gcc/m2/gm2-gcc/m2statement.cc
! d698bbe28c09131e0ae5a09f38e7b6c4  gcc/m2/gm2-gcc/m2statement.def
! 4e729179a9aa54a17466c102503c964e  gcc/m2/gm2-gcc/m2statement.h
! f3729277db158fdb0c2438bdf3601022  gcc/m2/gm2-gcc/m2top.cc
! ea440cd794f0c6bce030aabc4b6a0871  gcc/m2/gm2-gcc/m2top.def
! f52ee0aa6d372a62b087894ee94ea7c8  gcc/m2/gm2-gcc/m2top.h
! 3b7ce981ea5cab946d204fea02850399  gcc/m2/gm2-gcc/m2tree.cc
! 8a48e41b9caf0b9b977b011463eb4a04  gcc/m2/gm2-gcc/m2tree.def
! 6093d3be2094dcb479ae8a63c121b9b8  gcc/m2/gm2-gcc/m2tree.h
! bcbbaa7833037a89b7459d961ef1ba38  gcc/m2/gm2-gcc/m2treelib.cc
! e47b369773b8a6d9116548bddfe5b284  gcc/m2/gm2-gcc/m2treelib.def
! 3ecec3ce12d16d305f25bab191e132db  gcc/m2/gm2-gcc/m2treelib.h
! 03012e6553a3f7fb5f87b0446985d8b6  gcc/m2/gm2-gcc/m2type.cc
! 060a384708fd2c813b61ef0f09c10b3e  gcc/m2/gm2-gcc/m2type.def
! 9d80268d9fcfee9c35e20cf2b6154b3c  gcc/m2/gm2-gcc/m2type.h
! 7b1594f9ebabeca4b66f9f02d0364af0  gcc/m2/gm2-gcc/rtegraph.cc
! 1e15b65b13560d0746ba3fde8aa4d76e  gcc/m2/gm2-gcc/rtegraph.h
! 29c45d74546a91365fe126f9ce500d7a  gcc/m2/gm2-ici/M2Emit.mod
  d5db4a0704741e24958241fe74fd007c  gcc/m2/gm2-ici/README
! bdbaa6602e8c8e443d023dc1dd0092ab  gcc/m2/gm2-ici/m2linemap.c
! 8a372cb25c6bfd2b8e5f72ceaedad375  gcc/m2/gm2-internals.texi
! 72998f43ba7074a93b3770fa080c218e  gcc/m2/gm2-lang.cc
! f5757166dd928fd51816c6319466f83f  gcc/m2/gm2-lang.h
  2b1d730bdeb600463475d3bb94f17f12  gcc/m2/gm2-libiberty/README
! 2579590dacc71d843c7bab179acdee90  gcc/m2/gm2-libiberty/choosetemp.def
! 78b8677810f6f2fbec52f5eb252d5bc2  gcc/m2/gm2-libiberty/pexecute.def
! 5b18a24843b0d03211cfecad8c73b03e  gcc/m2/gm2-libs-ch/M2LINK.c
  62fbe07131fda60be5a71a8773c3dcd4  gcc/m2/gm2-libs-ch/README
! 8944257b1b8207078a547d1d7ec9efbe  gcc/m2/gm2-libs-ch/RTcodummy.c
! c338a26bca4d1d36ca6cd8ed47d4688d  gcc/m2/gm2-libs-ch/RTintdummy.c
! 78ed9763a9622d1fd4bf018f303963dd  gcc/m2/gm2-libs-ch/Selective.c
! a093305c80b152a0a92a7381b2abacc3  gcc/m2/gm2-libs-ch/SysExceptions.c
! e2b561b05a6040ccc43c658562459986  gcc/m2/gm2-libs-ch/UnixArgs.cc
! 3967385ced4705eb9f766369624f4cfe  gcc/m2/gm2-libs-ch/cgetopt.c
! 9da7b841cd1a1c4137567a80d36237f3  gcc/m2/gm2-libs-ch/choosetemp.c
! fe558d0222c99caf1e1d98386b204df8  gcc/m2/gm2-libs-ch/dtoa.cc
! 50d73dad89b22647f6ad637c0b03ea39  gcc/m2/gm2-libs-ch/errno.c
! afd954422106b3d4a3dbe418d392d8df  gcc/m2/gm2-libs-ch/host.c
! 4386f1fb20b59ed981cf61d2d4513c96  gcc/m2/gm2-libs-ch/ldtoa.cc
! 634e72ed497860bc0bf9c4a5acc1f196  gcc/m2/gm2-libs-ch/m2rts.h
! 67b0e5de5accd1cd69d3f054f8ff4e6a  gcc/m2/gm2-libs-ch/termios.c
! 9d0a8b610aea4a8ce046ad7f12050bd5  gcc/m2/gm2-libs-ch/tools.c
! 13327eeb2966e51b3dc5ded0cb07199b  gcc/m2/gm2-libs-ch/wrapc.c
! 5e00384b96d7bb3b73544a59dbeab737  gcc/m2/gm2-libs-ch/xlibc.c
! 917e8718cb3352511648d2fdfbb52878  gcc/m2/gm2-libs-coroutines/Executive.def
! e86ade288ada7b8018207d0068857ff7  gcc/m2/gm2-libs-coroutines/Executive.mod
! 399664191f335b4e3fe99af3f6b0f903  gcc/m2/gm2-libs-coroutines/KeyBoardLEDs.def
! 3e97822f4d92a1b7c8f106e09d32c6d9  gcc/m2/gm2-libs-coroutines/README.texi
! 3512fb07171ed0c2f52bd2780e16e560  gcc/m2/gm2-libs-coroutines/SYSTEM.def
! f9d911356a396622727ada9aaeecb632  gcc/m2/gm2-libs-coroutines/SYSTEM.mod
! f834514a077bf00a47cf70b1dea7fae1  gcc/m2/gm2-libs-coroutines/TimerHandler.def
! 14bae156268e99035f337a1f18e8e7f3  gcc/m2/gm2-libs-coroutines/TimerHandler.mod
  389f62af2918433359e5d632b9cfa7cb  gcc/m2/gm2-libs-iso/COROUTINES.def
! 7a7e8cf7d96034071a357aa6b659bba1  gcc/m2/gm2-libs-iso/COROUTINES.mod
  b40ce77b637c8356536cc7317b37bd15  gcc/m2/gm2-libs-iso/ChanConsts.def
! 0c398ab14b0e308eeb33d3312d0a1d68  gcc/m2/gm2-libs-iso/ChanConsts.h
! 492f6d39e79878e571ff93ce54bab640  gcc/m2/gm2-libs-iso/ChanConsts.mod
  26d4fa17c751999369c175e64f4db462  gcc/m2/gm2-libs-iso/CharClass.def
! dad0ae56304c74de1fd9b7e5a83e9b2c  gcc/m2/gm2-libs-iso/CharClass.mod
! e738f29bbffe52b20caaf7046b227390  gcc/m2/gm2-libs-iso/ClientSocket.def
! a8c72ee88027749440e5402a23fe770e  gcc/m2/gm2-libs-iso/ClientSocket.mod
  7e412d2d4dd38bc7acae6ef37f58a343  gcc/m2/gm2-libs-iso/ComplexMath.def
! 0ba42583c6e0a527cf3ef8fe5786a0da  gcc/m2/gm2-libs-iso/ComplexMath.mod
! b73bd2e604f679bf8da976f779ca5148  gcc/m2/gm2-libs-iso/ConvStringLong.def
! e6f335c8abe71884192c27bfffecb06e  gcc/m2/gm2-libs-iso/ConvStringLong.mod
! 4b535b3ddebd665f4272044300b25ff0  gcc/m2/gm2-libs-iso/ConvStringReal.def
! ce8366fc009196a9a8b431d63100c0b8  gcc/m2/gm2-libs-iso/ConvStringReal.mod
! 8740457709b99706e0436fdd1a89b065  gcc/m2/gm2-libs-iso/ConvStringShort.def
! 3ec2ea18962ea20c9f180c2b044ef5ff  gcc/m2/gm2-libs-iso/ConvStringShort.mod
  b61783ff6abc22b746e6979c0bcee2dd  gcc/m2/gm2-libs-iso/ConvTypes.def
! c30d50e9235d2916da5d7d302c25843f  gcc/m2/gm2-libs-iso/ConvTypes.mod
  06b39eaf4e88d493000c7360c310ba97  gcc/m2/gm2-libs-iso/EXCEPTIONS.def
! d5db39c949664772b7d556f95e3738ba  gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
! 13ec986a644401a645793d1ac2c61b04  gcc/m2/gm2-libs-iso/ErrnoCategory.def
  c9c5e6e4fbd4b365b1738fb97167c772  gcc/m2/gm2-libs-iso/GeneralUserExceptions.def
! ada30e2beed7d8b57519d9b5298fa5e6  gcc/m2/gm2-libs-iso/GeneralUserExceptions.mod
  3be4b03912f03e5164671e278a4ba6a1  gcc/m2/gm2-libs-iso/IOChan.def
! e76168db9294129a0e367adceae2accc  gcc/m2/gm2-libs-iso/IOChan.mod
  58b81b1b97143b27dfd3d5c225da285c  gcc/m2/gm2-libs-iso/IOConsts.def
! 761851fffbd305f2ae16bdaa8daa1edc  gcc/m2/gm2-libs-iso/IOConsts.mod
  3d1e4b84b179c15fe8b1fc60b7d46e6c  gcc/m2/gm2-libs-iso/IOLink.def
! 7f2bea2d7f738d3ba4645ada6bde2ceb  gcc/m2/gm2-libs-iso/IOLink.mod
  e5ea2ed3bf2ca24aeda732fb92f74111  gcc/m2/gm2-libs-iso/IOResult.def
! 7c677df8bbca9f9541a33d4f9db3a212  gcc/m2/gm2-libs-iso/IOResult.mod
  5c708f49fa403c8243782ec5145e99ca  gcc/m2/gm2-libs-iso/LongComplexMath.def
! 85e3155b47b33e1342f5fbed6b47b390  gcc/m2/gm2-libs-iso/LongComplexMath.mod
  018ee564b5b6d66051cf2ee4c7aea2fc  gcc/m2/gm2-libs-iso/LongConv.def
! e419dc9b8d98621b41d99a3034312a83  gcc/m2/gm2-libs-iso/LongConv.mod
  4869ce48d2aff46481adb5534764774b  gcc/m2/gm2-libs-iso/LongIO.def
  abea376c60e1845bb9f186162416397f  gcc/m2/gm2-libs-iso/LongIO.mod
  33a10b599c8fdf13d8d4e1b9b4a2ffc3  gcc/m2/gm2-libs-iso/LongMath.def
! f51f70d81ab367db518ea77fd05f4966  gcc/m2/gm2-libs-iso/LongMath.mod
  8ad351822e38056538ef1e9efe8b5cac  gcc/m2/gm2-libs-iso/LongStr.def
! 2dd86f5a200e67343ed418f24544a1cc  gcc/m2/gm2-libs-iso/LongStr.mod
! 82f58c612ca6d808e3022c7e70109ee6  gcc/m2/gm2-libs-iso/LongWholeIO.def
! e044babbf25cb1bf57df5ebc37a3cc8e  gcc/m2/gm2-libs-iso/LongWholeIO.mod
  34685287385135c3fbaa60ba1d894854  gcc/m2/gm2-libs-iso/LowLong.def
! 4e755f994548f2d995a6268454892326  gcc/m2/gm2-libs-iso/LowLong.mod
  78be5cf8b1f715e70e0c61838c761d10  gcc/m2/gm2-libs-iso/LowReal.def
! f6035c2b0bdfb123a411bbaed59cb6b9  gcc/m2/gm2-libs-iso/LowReal.mod
! bd69e2dd1171cc9df3974af5e36b8661  gcc/m2/gm2-libs-iso/LowShort.def
! 1351a612de2d86ad0c8646ba8654e9dd  gcc/m2/gm2-libs-iso/LowShort.mod
  e23b19886a6564119fe2b28e7d21f270  gcc/m2/gm2-libs-iso/M2EXCEPTION.def
! 67ed68b82dcc9d46bd0df69ab22cd2dd  gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
! e62f4e21f2f4a222c9c902996036dff8  gcc/m2/gm2-libs-iso/M2RTS.def
! 579a0ac673516eb4738bff2992837ffe  gcc/m2/gm2-libs-iso/M2RTS.mod
! cedbe5b4c9bd950ae468e2208e58bf39  gcc/m2/gm2-libs-iso/MemStream.def
! 3a8fc2ae7c931ceee8ee50b5bca81f00  gcc/m2/gm2-libs-iso/MemStream.mod
! 5ee9a3ad8132c7b058ad480445f6b899  gcc/m2/gm2-libs-iso/Preemptive.def
! 7b87efe7b3f4e18baf339f83e40d68da  gcc/m2/gm2-libs-iso/Preemptive.mod
  617142b6611a41ce58eb9ae27d709342  gcc/m2/gm2-libs-iso/Processes.def
! b39c3b77770823ae95e6d3747550f35e  gcc/m2/gm2-libs-iso/Processes.mod
  f99d0ab4d95b7c909aebc4eee8923beb  gcc/m2/gm2-libs-iso/ProgramArgs.def
! 3c796772134d40cb9daffff4ca0e49bd  gcc/m2/gm2-libs-iso/ProgramArgs.mod
! 01fb40151f8580035d31bc08d924f974  gcc/m2/gm2-libs-iso/README.texi
! 9b6b51a4f57619416f90a8b5a77e5b8b  gcc/m2/gm2-libs-iso/RTco.def
! c43482b7f5ad4fb04d5f7ff955db3c20  gcc/m2/gm2-libs-iso/RTdata.def
! a0a3cf858d45d5f9929af3d960265eab  gcc/m2/gm2-libs-iso/RTdata.mod
! 1670fbe1edbb3f2a294095610be3d1d7  gcc/m2/gm2-libs-iso/RTentity.def
! 0d594cc18834f1fd2748be3eec9994f4  gcc/m2/gm2-libs-iso/RTentity.mod
! 3184a4facbd7f2b340e954001836efb2  gcc/m2/gm2-libs-iso/RTfio.def
! 278b04e7acfa71dc22191a2c063cf59f  gcc/m2/gm2-libs-iso/RTfio.mod
! 028f3183065526b32c790c4565f1cf77  gcc/m2/gm2-libs-iso/RTgen.def
! b1eb1df2fdeeea5cd1d47a23e76fa4ec  gcc/m2/gm2-libs-iso/RTgen.mod
! 7dacd7d9ef4973492fa5d4708ffa49d4  gcc/m2/gm2-libs-iso/RTgenif.def
! ac4aed04ccfd4b06ebfd668748b463cb  gcc/m2/gm2-libs-iso/RTgenif.mod
! 2875647ca35271bc430bf97fe25ab64e  gcc/m2/gm2-libs-iso/RTio.def
! 148b0d70632cc4ddb8670e0bb0082817  gcc/m2/gm2-libs-iso/RTio.mod
! c0d73a6a7839191d16861b03ca7abe8f  gcc/m2/gm2-libs-iso/RandomNumber.def
! b9f082abcaf8c6b653d2f4b4dbb9b0ec  gcc/m2/gm2-libs-iso/RandomNumber.mod
  40277b3de34e1a5d9df0b7cc45c14d15  gcc/m2/gm2-libs-iso/RawIO.def
! f73a64581daaaf58cf995e15bafc7c91  gcc/m2/gm2-libs-iso/RawIO.mod
  df153efe4a594ad9e9d8cca8b83c8df2  gcc/m2/gm2-libs-iso/RealConv.def
! 2d122b82d08c9657c7423b4a2ec75a32  gcc/m2/gm2-libs-iso/RealConv.mod
  eba391eef02297c03d7a651d6073fc82  gcc/m2/gm2-libs-iso/RealIO.def
  948d3d2843eb776e02815d6723d53952  gcc/m2/gm2-libs-iso/RealIO.mod
  26b3c4e00ec2554e4506a35049bc3f0c  gcc/m2/gm2-libs-iso/RealMath.def
! b772e3a33d183a490e9151b6c3f1163a  gcc/m2/gm2-libs-iso/RealMath.mod
  a97765c0f82b53bb50acb8e67e5374e6  gcc/m2/gm2-libs-iso/RealStr.def
! 3b983ab777fbb9c4926f5feef76c044c  gcc/m2/gm2-libs-iso/RealStr.mod
  44b3b908b90d74d002a06bfb54262671  gcc/m2/gm2-libs-iso/RndFile.def
! 1cadf5850187c0e93e12e88b23ba6be9  gcc/m2/gm2-libs-iso/RndFile.mod
  227a83f272114ad4e64c8f3c9ef346fd  gcc/m2/gm2-libs-iso/SIOResult.def
! 98e309180679437ab59c9e06df9b5a42  gcc/m2/gm2-libs-iso/SIOResult.mod
  fd1983de497a0e10765806998b96e7a1  gcc/m2/gm2-libs-iso/SLongIO.def
! d1fb6e1bfaa71b1833541ed5e04fb1ea  gcc/m2/gm2-libs-iso/SLongIO.mod
! 567547a389135dd7266c3c24638ed2a7  gcc/m2/gm2-libs-iso/SLongWholeIO.def
! 0fd7cf9cd4e8fd6aa71483eb8913400b  gcc/m2/gm2-libs-iso/SLongWholeIO.mod
  5d7062666ffc5c5db7890b0b53f21387  gcc/m2/gm2-libs-iso/SRawIO.def
! 4711bec8ab5546070216f6928c5c8332  gcc/m2/gm2-libs-iso/SRawIO.mod
  29dc788abe06750b87ad7f8c7605ddad  gcc/m2/gm2-libs-iso/SRealIO.def
! 18e09f192d5e0021d8762a52a899c622  gcc/m2/gm2-libs-iso/SRealIO.mod
! 9309ea01af132528f1c395f28179c1a7  gcc/m2/gm2-libs-iso/SShortIO.def
! 0e9f30475542efdf2557da1d3d1455f4  gcc/m2/gm2-libs-iso/SShortIO.mod
! 638b30117543c7d6517b865f6d316c25  gcc/m2/gm2-libs-iso/SShortWholeIO.def
! 6bd8691e035e5ef8289f3884e17ca55c  gcc/m2/gm2-libs-iso/SShortWholeIO.mod
  037039b67d035c6da1fe676b93e98273  gcc/m2/gm2-libs-iso/STextIO.def
! 175cfbf516ffd33a5342d34fd57fa48e  gcc/m2/gm2-libs-iso/STextIO.mod
  4806b44e4a85776e1d5015f2013974a3  gcc/m2/gm2-libs-iso/SWholeIO.def
! 2fedcc4e6bfc3ac303ca3d09bde0b7ba  gcc/m2/gm2-libs-iso/SWholeIO.mod
! e40fdae4d0992bbfc83c127235813e82  gcc/m2/gm2-libs-iso/SYSTEM.def
! 6a8ac6ca40b4a23dffd484b358ec8a6b  gcc/m2/gm2-libs-iso/SYSTEM.mod
  cb047c38f5ef851681b19de3902ffebe  gcc/m2/gm2-libs-iso/Semaphores.def
! f792b83f983978b12f8cf69b65a0ca71  gcc/m2/gm2-libs-iso/Semaphores.mod
  0123a3eb7dc065b38800f7157f415c27  gcc/m2/gm2-libs-iso/SeqFile.def
! a2e117c0e61b080bca8a48613791498c  gcc/m2/gm2-libs-iso/SeqFile.mod
! 49f75536b2541752476f8d7751db96a1  gcc/m2/gm2-libs-iso/ShortComplexMath.def
! c2489802766151b8a9fc33d681375211  gcc/m2/gm2-libs-iso/ShortComplexMath.mod
! 1ae1f84986ef62ba40e37999740e3860  gcc/m2/gm2-libs-iso/ShortConv.def
! 6873d3c23e454aa4c3a968a3357363d9  gcc/m2/gm2-libs-iso/ShortConv.mod
! 2b2a75ba14ff32cc6c0f21f385426e60  gcc/m2/gm2-libs-iso/ShortIO.def
! 93d832259cd9e4d55aafa474e8fbe816  gcc/m2/gm2-libs-iso/ShortIO.mod
! 3dd2cc34e8337691823ee9f4f50ffc33  gcc/m2/gm2-libs-iso/ShortMath.def
! d42b9e3560a43f931ebf925ea22bb80b  gcc/m2/gm2-libs-iso/ShortMath.mod
! fef1d150570d2d2ff0327b619281eb6f  gcc/m2/gm2-libs-iso/ShortStr.def
! 1761fa664906977f44d2e40e077b01ff  gcc/m2/gm2-libs-iso/ShortStr.mod
! 781341183ae2f29ab4552f7a46964226  gcc/m2/gm2-libs-iso/ShortWholeIO.def
! 4d3e183fe5b81fa90cf16b09ba952c49  gcc/m2/gm2-libs-iso/ShortWholeIO.mod
! 9035a8b87792b0f0326b2851fe1afc0b  gcc/m2/gm2-libs-iso/SimpleCipher.def
! 7ffdf802471f1f372f8a5c8e01dbe6ce  gcc/m2/gm2-libs-iso/SimpleCipher.mod
  8b8a01b2a2ce71ef914ac2c6cc8c3b75  gcc/m2/gm2-libs-iso/StdChans.def
! f85d387cac8ec5e6416dbf7656de1d35  gcc/m2/gm2-libs-iso/StdChans.mod
  e2ce5b09829edfcec26970649d78d4dc  gcc/m2/gm2-libs-iso/Storage.def
! dee01c5846ade1d7f736195c668a7772  gcc/m2/gm2-libs-iso/Storage.mod
  be819007a2908ba602c8757b5d53a335  gcc/m2/gm2-libs-iso/StreamFile.def
! 4248c701bc5024c4b9a0957d410d925e  gcc/m2/gm2-libs-iso/StreamFile.mod
! d3e76c391607ce516dd8e5015e6a5cf8  gcc/m2/gm2-libs-iso/StringChan.def
! 210d3a3447ccfa971c84c7195a00d986  gcc/m2/gm2-libs-iso/StringChan.mod
  8f11555f792697e6e70bdabf60c96447  gcc/m2/gm2-libs-iso/Strings.def
! fe41ac576410868af95f7c4335eaa269  gcc/m2/gm2-libs-iso/Strings.mod
  decb080d52ed383b759f5da725dcc91f  gcc/m2/gm2-libs-iso/SysClock.def
! ec13af1d0bca481e92b02af5f22dc518  gcc/m2/gm2-libs-iso/SysClock.mod
  62d31afe6dbffd3c51bcaa5af7575bcd  gcc/m2/gm2-libs-iso/TERMINATION.def
! f2ba3fc9a955b27e39df5892db84282c  gcc/m2/gm2-libs-iso/TERMINATION.mod
  665eef372cb297013ff37bc80a4eb66d  gcc/m2/gm2-libs-iso/TermFile.def
! bfb7f2e48836e8d083bec4c63210051b  gcc/m2/gm2-libs-iso/TermFile.mod
  3e80217d87e3e0aa014739829f7cc23a  gcc/m2/gm2-libs-iso/TextIO.def
! 3522a6da2dc75fc751ff9fb35e370bbc  gcc/m2/gm2-libs-iso/TextIO.mod
! aba7908630b2752b9f687cb7a2dc75d5  gcc/m2/gm2-libs-iso/TextUtil.def
! 0d2da739ad81fdb6d74e984578a402b1  gcc/m2/gm2-libs-iso/TextUtil.mod
  63a72ee284f83e558fb34e32fe4cc1fb  gcc/m2/gm2-libs-iso/WholeConv.def
! 4db3698c0570342d8372dbce3743e06c  gcc/m2/gm2-libs-iso/WholeConv.mod
  108023618e22cb8631ac14d0bf21510a  gcc/m2/gm2-libs-iso/WholeIO.def
! 13b19a7c07bbe97bfb3f8f33f3dcbce7  gcc/m2/gm2-libs-iso/WholeIO.mod
  a27fdd32dbd31b2e992eceaf29b2fe76  gcc/m2/gm2-libs-iso/WholeStr.def
! 2e235a83d5b85866208bb12fdfea7c2d  gcc/m2/gm2-libs-iso/WholeStr.mod
! e9f5d571f4badbf526240a3d867b0271  gcc/m2/gm2-libs-iso/wrapclock.def
! dfc99f4084c9b5da1bba23b97a6eb87a  gcc/m2/gm2-libs-iso/wrapsock.def
! ada138109c8afe181ba178c7ad172a55  gcc/m2/gm2-libs-iso/wraptime.def
! 67fa4b953c84ccc752d281c8e01621ed  gcc/m2/gm2-libs-log/BitBlockOps.def
! 6ea96aceef817b55e22583f9e8cbdfaf  gcc/m2/gm2-libs-log/BitBlockOps.mod
! 3a8ab99add93be9e0d6bd71fb37b33c5  gcc/m2/gm2-libs-log/BitByteOps.def
! 4866fd7b4e6da44399d8f6c8b6db5cba  gcc/m2/gm2-libs-log/BitByteOps.mod
! dc176719dd593d5b76b5c44c2aba2b49  gcc/m2/gm2-libs-log/BitWordOps.def
! 6a9f4d0b2ffdb6044fba50fdcffc995e  gcc/m2/gm2-libs-log/BitWordOps.mod
! ba8fbefc8bc8a075a749b4651f773f66  gcc/m2/gm2-libs-log/BlockOps.def
! 7f576f1e3ed711d3536c0e827f168431  gcc/m2/gm2-libs-log/BlockOps.mod
! 064a2f092aa08666442c5cb9af67453a  gcc/m2/gm2-libs-log/Break.c
! 2e1fd0732c7e18b481af70c8cfa13d9b  gcc/m2/gm2-libs-log/Break.def
! fab6685c352f530272e7b0bc0c3c7d19  gcc/m2/gm2-libs-log/CardinalIO.def
! b5f3120cf5db6891d2939b7e591d32fa  gcc/m2/gm2-libs-log/CardinalIO.mod
! f0cce5f4a7d6b63bb2744dface4c6d7c  gcc/m2/gm2-libs-log/Conversions.def
! c42eb02e87304ae2a915ecf8babb5d50  gcc/m2/gm2-libs-log/Conversions.mod
! 34907fa3c9e88d0ecb9d2cdddc96fb52  gcc/m2/gm2-libs-log/DebugPMD.def
! aab99a75b9c10a9d420c5057e698dfd3  gcc/m2/gm2-libs-log/DebugPMD.mod
! 06a4fcbf52b47873c7fad6cdb3f1f080  gcc/m2/gm2-libs-log/DebugTrace.def
! 5ed030c70a9449603fa8454e093ec361  gcc/m2/gm2-libs-log/DebugTrace.mod
! 47024bb3f95469b998a2ca55c568366a  gcc/m2/gm2-libs-log/Delay.def
! 4df2d0b4539c6118ca848e130ab26025  gcc/m2/gm2-libs-log/Delay.mod
! ddc7ee8103ce58e3d3286df4d759c02f  gcc/m2/gm2-libs-log/Display.def
! e108f2366c7aa8ef72eeb45c816bb085  gcc/m2/gm2-libs-log/Display.mod
! e92440fc4c4869de2770a342e6981aee  gcc/m2/gm2-libs-log/ErrorCode.def
! bbc8f400f2f546ed4155cb59ca486f2d  gcc/m2/gm2-libs-log/ErrorCode.mod
! f7a391bde97c191d6375b3e572e4f3f7  gcc/m2/gm2-libs-log/FileSystem.def
! f909d340603f6b8d920cae5b222b0956  gcc/m2/gm2-libs-log/FileSystem.mod
! f78712d14c1e6fa1ceb26defde3fca98  gcc/m2/gm2-libs-log/FloatingUtilities.def
! 34aa6de93c34ebd5a638cf1222a06f4a  gcc/m2/gm2-libs-log/FloatingUtilities.mod
! e5d60dec5cb572b80fd7866f6f295520  gcc/m2/gm2-libs-log/InOut.def
! 8d5753e1e7bb4568bfb035900a88eb25  gcc/m2/gm2-libs-log/InOut.mod
! 469952324daa9541904d56669b70eeec  gcc/m2/gm2-libs-log/Keyboard.def
! b980e67faedb08456b151f8ead2ec2d2  gcc/m2/gm2-libs-log/Keyboard.mod
! 1673119dbacf944243d8e1af343cea02  gcc/m2/gm2-libs-log/LongIO.def
! a3305b7ba3c7fe6c02d61acae675288d  gcc/m2/gm2-libs-log/LongIO.mod
! 9a80a85f5cad091808a20f5624a22c75  gcc/m2/gm2-libs-log/NumberConversion.def
! b406cc24507426b5a2cd121574484add  gcc/m2/gm2-libs-log/NumberConversion.mod
! 9341fc03dcb60026c84628369aabe913  gcc/m2/gm2-libs-log/README.texi
! 797c5479e6942b15738f71b3ca3839e5  gcc/m2/gm2-libs-log/Random.def
! 740f2cbef9fa8185987fa4d7e820bf4c  gcc/m2/gm2-libs-log/Random.mod
! bd448fcfcd6603b13e4e180b97786451  gcc/m2/gm2-libs-log/RealConversions.def
! 71e0ee3cd13e05f220528f635e98a4b5  gcc/m2/gm2-libs-log/RealConversions.mod
! d1e781745a951a548132c7e7a301b207  gcc/m2/gm2-libs-log/RealInOut.def
! 009013bf8a462b5477e8150bbd847a37  gcc/m2/gm2-libs-log/RealInOut.mod
! 43c0627a7b630feeab12d1706b254917  gcc/m2/gm2-libs-log/Strings.def
! 0c6a405b7db5edf7a3a3f9316c8ec3db  gcc/m2/gm2-libs-log/Strings.mod
! 31eef8010048c0d36b4e5c7e51b3a622  gcc/m2/gm2-libs-log/Termbase.def
! 7d2877258b16f2b858d96c3d2174cbbc  gcc/m2/gm2-libs-log/Termbase.mod
! 36235ef63ad79c714a0e9c11e7d3a9c3  gcc/m2/gm2-libs-log/Terminal.def
! 3dd579f6c79759a629ca67dd7aba2b23  gcc/m2/gm2-libs-log/Terminal.mod
! c4669fd4d7387f5139c600673bfbf495  gcc/m2/gm2-libs-log/TimeDate.def
! 5387e883b02e9064a6d54d0e862cb92d  gcc/m2/gm2-libs-log/TimeDate.mod
! b2b7da07974ac17dcdf9b057cdc6a21f  gcc/m2/gm2-libs-min/M2RTS.def
! 20b2f61cb86c8c1bc082536cc527724c  gcc/m2/gm2-libs-min/M2RTS.mod
! 119b2cc97843614cbbaa39e6deb51b8f  gcc/m2/gm2-libs-min/SYSTEM.def
! 778cf0026b8b7676d6b5277860bed6e6  gcc/m2/gm2-libs-min/SYSTEM.mod
! 2e0933b5a54bd86461a331270595b7c6  gcc/m2/gm2-libs-min/libc.c
! 64ffc17f0686d0bfe9d46eeb81f9deb1  gcc/m2/gm2-libs-min/libc.def
! 33a4d295aa441c3cf48196e3a73d34d8  gcc/m2/gm2-libs/ASCII.def
! 93184c88635b4b0a569c7a91c4e51f08  gcc/m2/gm2-libs/ASCII.mod
! 114bc5ad10f83a62f924633402181ae3  gcc/m2/gm2-libs/Args.def
! 21378a4a15c2c673ca200b1df68764c3  gcc/m2/gm2-libs/Args.mod
! a0386d4960d6123b60afdb2492bb214d  gcc/m2/gm2-libs/Assertion.def
! 1404b84f3ada478b7210fd92dc9320d4  gcc/m2/gm2-libs/Assertion.mod
! 0c107692ec4ee4eb8dc417e72916a0fa  gcc/m2/gm2-libs/Break.def
! 9319de5e84b7d3bccec774fc498b30e2  gcc/m2/gm2-libs/Break.mod
! 7ceacb9135c1da23170249ed53d63510  gcc/m2/gm2-libs/Builtins.def
! 3b3e15111ca6b38d09f769444783ae7b  gcc/m2/gm2-libs/Builtins.mod
! f189cad7c401744b8ce03cdd9c7ced91  gcc/m2/gm2-libs/COROUTINES.def
! cb53128d3c7f1f82fa7a4d63554a899c  gcc/m2/gm2-libs/COROUTINES.mod
! 791dc424175ac93931f90fa0b7a92c94  gcc/m2/gm2-libs/CmdArgs.def
! 9d204def58deba7289c1ddd6077d1d5e  gcc/m2/gm2-libs/CmdArgs.mod
! b89ceb0ce6244a9d06718a3061d88767  gcc/m2/gm2-libs/Debug.def
! eecc2b2f7ce08b3cf81337c99f7c3b75  gcc/m2/gm2-libs/Debug.mod
! 565a6538d072fcb9daf00d247273a5d5  gcc/m2/gm2-libs/DynamicStrings.def
! ce6bdd1925b8bdda953ad1a0d85773e6  gcc/m2/gm2-libs/DynamicStrings.mod
! de19b3a4b94a6fcd833a401f34ce9933  gcc/m2/gm2-libs/Environment.def
! f944372939bfd17ab4ee668dcf6781fb  gcc/m2/gm2-libs/Environment.mod
! 6c720696b13f9e1de9d9f106ad64d4d6  gcc/m2/gm2-libs/FIO.def
! a3b97900c6583175d851aa23c77d3f77  gcc/m2/gm2-libs/FIO.mod
! 71d4c036b60591c3b40ff25292ec7033  gcc/m2/gm2-libs/FormatStrings.def
! 2675b713236f8669087ea91fbcecba17  gcc/m2/gm2-libs/FormatStrings.mod
! 91df6849349e0255d7ca55836e7b9b9a  gcc/m2/gm2-libs/FpuIO.def
! 26d85a3dd16ac633ea2161ccb9b4a377  gcc/m2/gm2-libs/FpuIO.mod
! 14a2aa92d9058b57cbbe8f502722dc33  gcc/m2/gm2-libs/GetOpt.def
! c75846c8fb30726cfb1261591913f018  gcc/m2/gm2-libs/GetOpt.mod
! d69247502a00e486c791cdfc1012c8df  gcc/m2/gm2-libs/IO.def
! c855cf57735ae174bb4e6f51b97405e2  gcc/m2/gm2-libs/IO.mod
! a92033683f606be7ecb329010f2cc588  gcc/m2/gm2-libs/Indexing.def
! 9843d2edced0b0bc382b9d9dac96b9ae  gcc/m2/gm2-libs/Indexing.mod
! dffcb70df0520b7dcdce73d6314ec278  gcc/m2/gm2-libs/LMathLib0.def
! c0334f7ef3b21c1a075a63025663be85  gcc/m2/gm2-libs/LMathLib0.mod
! a5a9aa5f69468190237835d594db9ad9  gcc/m2/gm2-libs/LegacyReal.def
! 2690dad370591def9f3663f7a1294807  gcc/m2/gm2-libs/LegacyReal.mod
! 4812aba299c2c0fe0b6a181c4424347f  gcc/m2/gm2-libs/M2Dependent.def
! 34a4a12eb9b56533a0f063068336f96c  gcc/m2/gm2-libs/M2Dependent.mod
! d73be741d481d8bc32941619d02fe337  gcc/m2/gm2-libs/M2EXCEPTION.def
! dee7160724a7fd47902dde4013fd1c6b  gcc/m2/gm2-libs/M2EXCEPTION.mod
! fa5c6e2d1ea0f98787b2f5a5cca43d9c  gcc/m2/gm2-libs/M2RTS.def
! 8dd53ef376858daffd563b097e830be5  gcc/m2/gm2-libs/M2RTS.mod
! 9139e9a93104fdc71ed7372270ae8ce4  gcc/m2/gm2-libs/MathLib0.def
! d68f03321d1279ecfe5125705221ba07  gcc/m2/gm2-libs/MathLib0.mod
! 8e6fae6e9004d54a8cff0b69653c09bb  gcc/m2/gm2-libs/MemUtils.def
! ef0a9453cd573a8573a40c68a8865659  gcc/m2/gm2-libs/MemUtils.mod
! 2b03eccf0ce522c628989752e658dce7  gcc/m2/gm2-libs/NumberIO.def
! f2b354d33259ebe12fcd2c914dc3b3f6  gcc/m2/gm2-libs/NumberIO.mod
! ee3423267b117628e8a4ab2448343672  gcc/m2/gm2-libs/OptLib.def
! be3dad0dbfdda9da66113b37f590a393  gcc/m2/gm2-libs/OptLib.mod
! db325c0f902444e545ae7a2d9e492028  gcc/m2/gm2-libs/PushBackInput.def
! e26bff8875848e66c70b1694dd0633a3  gcc/m2/gm2-libs/PushBackInput.mod
! 606d075705875ff03d52008c94b3fcf5  gcc/m2/gm2-libs/README.texi
! d4c256b93b2c68f755773423056b8d21  gcc/m2/gm2-libs/RTExceptions.def
! 01730727f69d77b52c114c8e6fe10f88  gcc/m2/gm2-libs/RTExceptions.mod
! 378ecd092b95a5048bac0cc8ab9f76bb  gcc/m2/gm2-libs/RTint.def
! 6495b7870ffed08c782fabd044f605d0  gcc/m2/gm2-libs/RTint.mod
! b794872ef8b20330a7eda4ddfae12e41  gcc/m2/gm2-libs/SArgs.def
! 63a8b64ee19348304bb776fc8da6b975  gcc/m2/gm2-libs/SArgs.mod
! ba6cb69be1c15ac2f06502ca3bb1b1f8  gcc/m2/gm2-libs/SCmdArgs.def
! e87ed5ddceb51b07fc56f351b4921454  gcc/m2/gm2-libs/SCmdArgs.mod
! b5d599561573889ddf965b7a8807aaef  gcc/m2/gm2-libs/SEnvironment.def
! 2f46b23b45baa93288b008d55b483e57  gcc/m2/gm2-libs/SEnvironment.mod
! 12f6454ff19e5a0767aa8b8488211d6e  gcc/m2/gm2-libs/SFIO.def
! 7e0423b7083d1cc195874537c532f8c6  gcc/m2/gm2-libs/SFIO.mod
! 50f6471920c99fd99b83c7de47c6981d  gcc/m2/gm2-libs/SMathLib0.def
! afdb73cb2759b06d12dddb85bfbfb66b  gcc/m2/gm2-libs/SMathLib0.mod
! ee5cd7709db2b7d033fa4262cdc09450  gcc/m2/gm2-libs/SYSTEM.def
! 51b7584085989d01a70668895089993d  gcc/m2/gm2-libs/SYSTEM.mod
! f858cc06fd39219d0861f3d331dbd857  gcc/m2/gm2-libs/Scan.def
! 4956bd4e9b7f5bc1c5937a86a325e894  gcc/m2/gm2-libs/Scan.mod
! 4d452dbfff9c8792f1cc3586f634b22b  gcc/m2/gm2-libs/Selective.def
! 079c3f79733f7fd90882a020f8c13d39  gcc/m2/gm2-libs/StdIO.def
! bc7935477005e5d965d513466e94b7f3  gcc/m2/gm2-libs/StdIO.mod
! 1dabb82ae4f2e505c027f2a42ae0c029  gcc/m2/gm2-libs/Storage.def
! 09a5379401ba00a41e251e702eb23c42  gcc/m2/gm2-libs/Storage.mod
! 7e3ad51ee25029867573d29a14d5be50  gcc/m2/gm2-libs/StrCase.def
! 05a86f30e152b7d5fda005a82d1a8e0c  gcc/m2/gm2-libs/StrCase.mod
! ada14f6d9d731c42c343bf89ff792e2b  gcc/m2/gm2-libs/StrIO.def
! e008c7a9c9d4413acecbd2c7b321919f  gcc/m2/gm2-libs/StrIO.mod
! bbdd7a97ac9ea76ff4b3b88e772b0d48  gcc/m2/gm2-libs/StrLib.def
! 8e6fe6410ac63e58bd53b6b176626e86  gcc/m2/gm2-libs/StrLib.mod
! d2bb5ed4921c613360f3cb091776b4d7  gcc/m2/gm2-libs/StringConvert.def
! 311d4c858cbe6137fe117f140bf7fdf8  gcc/m2/gm2-libs/StringConvert.mod
! b57d6a5df376435dad6df3ac04a0e2b5  gcc/m2/gm2-libs/SysExceptions.def
! f5af7ea40ed1966dc80d01474e6e5022  gcc/m2/gm2-libs/SysStorage.def
! bf89869d2c0b2635ae50bfe230db2cc5  gcc/m2/gm2-libs/SysStorage.mod
! 79c9e3576cfbba175248de379d1a0f83  gcc/m2/gm2-libs/TimeString.def
! 838d9deb08feb758474eb422eb814ddb  gcc/m2/gm2-libs/TimeString.mod
! 94844059a6de9d9131bfed0051d60c3e  gcc/m2/gm2-libs/UnixArgs.def
! 63e9df6f607a9cba13b94489e347567e  gcc/m2/gm2-libs/cbuiltin.def
! aa8279e45dca4d7a63f6a9570da67546  gcc/m2/gm2-libs/cgetopt.def
! d6a0e0e278421f2ae9da8f252a98670d  gcc/m2/gm2-libs/config-host
! 408e250abd03bacd01a4350d801956b5  gcc/m2/gm2-libs/config-host.in
! 78500196771bcb43c369f0ccfc7d0a75  gcc/m2/gm2-libs/cxxabi.def
! c879d6ca248cce676d12c0aa12c25c6e  gcc/m2/gm2-libs/dtoa.def
! 6f0119cd8b252237ff3ea6d1065e6f7b  gcc/m2/gm2-libs/errno.def
! a6db0bd134af353ce670bd87d08c6dda  gcc/m2/gm2-libs/gdbif.def
! 080082d75929601d55ad80182776c7b8  gcc/m2/gm2-libs/gdbif.mod
! 76f980ea065548a7a2fb307e0e5b2fe4  gcc/m2/gm2-libs/gm2-libs-host.h.in
! 1377510307dad0be7cdc5dba0c4a88df  gcc/m2/gm2-libs/ldtoa.def
! e02a4fd94e143f8ef7a08b4fb95d96f0  gcc/m2/gm2-libs/libc.def
! e259fa22b3a17a0a8e9d1b9be1930365  gcc/m2/gm2-libs/libm.def
! d14c3ee766ceded0096d7522f0b4c14e  gcc/m2/gm2-libs/sckt.def
! f88ddd7809b97ea79717fcfcdb224f13  gcc/m2/gm2-libs/termios.def
! 11a08a71d01def9db57ee38264276880  gcc/m2/gm2-libs/wrapc.def
  ccaa683ba714cdbeafc186000b6c8dd1  gcc/m2/gm2config.aci.in
! c660b94d96f6c8b4af12e05ee74b6697  gcc/m2/gm2spec.cc
! ce0732101ee4dc423da25d5e816e585f  gcc/m2/gm2version.h
! f9a764a63a215d11be2185dbb7885034  gcc/m2/images/LICENSE.IMG
  28628f59c0ab73240ccd25e2be0bcb6a  gcc/m2/images/gnu.eps
  d41d8cd98f00b204e9800998ecf8427e  gcc/m2/images/gnupng
  d02bb7b852c2149c474702f929b72f2d  gcc/m2/init/README
! a6129befb7e6f3f27ca853e5aae8732d  gcc/m2/init/mcinit
! e12c669985f802264fb12d01111d4043  gcc/m2/init/ppginit
! a4d6463a2e2ce3965cba13f6bec7927f  gcc/m2/lang-specs.h
! d2efdae546f42f848d3838422e97f37e  gcc/m2/lang.opt
! 8d81e56e0f4f2a7799c6d7656039993c  gcc/m2/lang.opt.urls
! f9805d1c105cf62db2a44f68f7fc85a3  gcc/m2/m2-tree.def
! 1e812384100d637e7a6034e8c8decaf6  gcc/m2/m2-tree.h
! a7e6e098e4e73da36b32a6152eee589b  gcc/m2/m2.flex
! aedd266c9df2392e9bfc3748baa6a9a9  gcc/m2/mc-boot-ch/GBuiltins.cc
! 73636955ae1dcd854ea3d47420d1d4aa  gcc/m2/mc-boot-ch/GM2LINK.c
! 7e02d3efe97661f468b79c15a3b0ac42  gcc/m2/mc-boot-ch/GSYSTEM.c
! 6f43b0881624828c2305a297b88452a7  gcc/m2/mc-boot-ch/GSelective.c
! e6ffe225f20acb86d81a3199a04469de  gcc/m2/mc-boot-ch/GSysExceptions.c
! d6ea7ddbe8932e07f238142b8bba213b  gcc/m2/mc-boot-ch/GUnixArgs.cc
! a2d03aa31a6026168ccb468d7430feb2  gcc/m2/mc-boot-ch/Gabort.c
! fc0c6cd43b28d715f9408a2b3d542059  gcc/m2/mc-boot-ch/Gcbuiltin.c
! 224e8549c336e09327beb18ea215af27  gcc/m2/mc-boot-ch/Gdtoa.cc
! eb6a8f45cd40b9762b91375ebc539909  gcc/m2/mc-boot-ch/Gerrno.cc
! 7118693c5d7bf018a4235e312991d961  gcc/m2/mc-boot-ch/Gldtoa.cc
! ca0fd3d5325b919b7ff2def4266aea6a  gcc/m2/mc-boot-ch/Glibc.c
! 07b3bab67c818570d7b72cf284efb376  gcc/m2/mc-boot-ch/Glibm.c
! 11cd8fbee45566aa3822f9e760483001  gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
! b1b61a77d982e07b3a553314966bc2ed  gcc/m2/mc-boot-ch/Gmcrts.c
! 38f1b90202e6b933f1a463ab201671de  gcc/m2/mc-boot-ch/Gmcrts.h
! 0b7dffa7d5f2ae9d4f18c96a02224202  gcc/m2/mc-boot-ch/Gnetwork.h
! 21632b8bbae2544c515f8fbbd825360c  gcc/m2/mc-boot-ch/Gtermios.cc
! 02633ced7d34a7bb4f0f90cc59361574  gcc/m2/mc-boot-ch/Gwrapc.c
  ce2b38596d501052b9fae2df29aafa66  gcc/m2/mc-boot-ch/README
! 798c41485f1e4192fa70dd7a55b238eb  gcc/m2/mc-boot-ch/m2rts.h
! a1ef1b70669c773d3b0c5d5f475c2737  gcc/m2/mc-boot-ch/network.c
! b383d849c70086f1f2218c87e41f2c3c  gcc/m2/mc-boot/GASCII.cc
! e107361daa4cde34e81ea032eed60132  gcc/m2/mc-boot/GASCII.h
! 5a0766afc921a969d595cd49bee88212  gcc/m2/mc-boot/GArgs.cc
! c1db8f872901c6b1b5aca08085c5c7ab  gcc/m2/mc-boot/GArgs.h
! c98031a146bfc20540df3b67f2a4ca88  gcc/m2/mc-boot/GAssertion.cc
! 65936e988ac1f5cad3d2f9b4eabf2fbf  gcc/m2/mc-boot/GAssertion.h
! 645cf9ca93e49482c6f7f707aa0c2aed  gcc/m2/mc-boot/GBreak.cc
! 5b43185ae2fedf4d27f562cdafeddb0e  gcc/m2/mc-boot/GBreak.h
! 8b4a529984bae6f3c2a9e0a2652d51f1  gcc/m2/mc-boot/GCOROUTINES.h
! 561e384f7def1cb8afb56ba0bdd7fc3f  gcc/m2/mc-boot/GCmdArgs.cc
! 9083e15a53c36202bcfea591af4e3663  gcc/m2/mc-boot/GCmdArgs.h
! dfbedce54669ddbb7a0c57b3a65f9f2b  gcc/m2/mc-boot/GDebug.cc
! 7d60c0ee2d3f1711a19287c70d29e6e7  gcc/m2/mc-boot/GDebug.h
! bee09b7110557a212b40a22816ae324f  gcc/m2/mc-boot/GDynamicStrings.cc
! 86c185e2390d041c35f1356cf425df30  gcc/m2/mc-boot/GDynamicStrings.h
! 2f2387ba51264e1a2f535a9b01d87dd5  gcc/m2/mc-boot/GEnvironment.cc
! 615a347ef959c897ca953c9da15c9c01  gcc/m2/mc-boot/GEnvironment.h
! 775e7668debe8e7fe040d80bbab1ecb3  gcc/m2/mc-boot/GFIO.cc
! 6d5588f353da5c6c8985c8e7c34ff454  gcc/m2/mc-boot/GFIO.h
! 6a5113cabf97f037a3605c8b812074e9  gcc/m2/mc-boot/GFormatStrings.cc
! 9084a8064675e64d07718b9023425751  gcc/m2/mc-boot/GFormatStrings.h
! 9eb3b92f9b32e7f29ec8cbffde8daa8d  gcc/m2/mc-boot/GFpuIO.cc
! a8f1c76e8396343b66e5f39a199333f6  gcc/m2/mc-boot/GFpuIO.h
! 5d485516ab64bf0feb09fd9f3e4a7d1d  gcc/m2/mc-boot/GIO.cc
! 0bd8dd1a815b2af698b8c640b776254b  gcc/m2/mc-boot/GIO.h
! 8799d19ecf29c528ebf103a63c2807bb  gcc/m2/mc-boot/GIndexing.cc
! ca9cc2af6d38d4f6eea86dd593c86ac5  gcc/m2/mc-boot/GIndexing.h
! 1d1889465e6b7b8fb86f2500fccdbb3a  gcc/m2/mc-boot/GM2Dependent.cc
! 28b021f230126f01f39cf0a7e83ae855  gcc/m2/mc-boot/GM2Dependent.h
! c25de9aeda0c906145eda2816d249f2c  gcc/m2/mc-boot/GM2EXCEPTION.cc
! dbb4084e7f8d724776409a654d4b5512  gcc/m2/mc-boot/GM2EXCEPTION.h
! 3a93766d82eaf2bedfe295dd2e4ae88b  gcc/m2/mc-boot/GM2RTS.cc
! b55490385a043594c35fdc218335a6ac  gcc/m2/mc-boot/GM2RTS.h
! 90de7f25f17b1d4987705e7a54f9a75c  gcc/m2/mc-boot/GMemUtils.cc
! 6a54d8224c6fe1802c7310aae5729e80  gcc/m2/mc-boot/GMemUtils.h
! dd62fadc506ba3edb54725be5a88b123  gcc/m2/mc-boot/GNumberIO.cc
! 4c9d6555902e3669aecdbeda2497abf1  gcc/m2/mc-boot/GNumberIO.h
! 22f9f7539e20cfb0ebf759107533dff5  gcc/m2/mc-boot/GPushBackInput.cc
! 2e5be0b8081688741243ac72d6112656  gcc/m2/mc-boot/GPushBackInput.h
! f388d33ad16236db0600c082df5b0b13  gcc/m2/mc-boot/GRTExceptions.cc
! 0ff3fefb0e53ac1d1e087509d0e4919e  gcc/m2/mc-boot/GRTExceptions.h
! bf26878ae16f53b8fe8393aa7ab92155  gcc/m2/mc-boot/GRTco.h
! 4b7a5e04c7680504c710ddc7a087a6f9  gcc/m2/mc-boot/GRTentity.h
! 028b033938982a959c1cd9aa2b5a1a88  gcc/m2/mc-boot/GRTint.cc
! 64af1b26ad865d07aa8be4dca8ef8995  gcc/m2/mc-boot/GRTint.h
! 7ac0187b5170edd8ea58476dd4ab611b  gcc/m2/mc-boot/GSArgs.cc
! 8638f2794b3b574b9e66c9417384e1dc  gcc/m2/mc-boot/GSArgs.h
! 3c802f08784c1c23262084688101d660  gcc/m2/mc-boot/GSFIO.cc
! cf09a80513b70680ee17e7edd3ba8ffd  gcc/m2/mc-boot/GSFIO.h
! b5bbf20c76e054bb4d2da529ee7ed195  gcc/m2/mc-boot/GSYSTEM.h
! 3735699bb32353011caea008ebad9b00  gcc/m2/mc-boot/GSelective.h
! 6a95d09700b16d18d1053a63bf181e14  gcc/m2/mc-boot/GStdIO.cc
! 2e88d87ef144bc030c76dfcf28390015  gcc/m2/mc-boot/GStdIO.h
! a8c53384516970ac83fd870bc06e8671  gcc/m2/mc-boot/GStorage.cc
! 95badf1769b547148c7222220d209cf4  gcc/m2/mc-boot/GStorage.h
! f764fceceeb6e90a43260d14c8600d9d  gcc/m2/mc-boot/GStrCase.cc
! 7fa8523d2a2cd2f625a8a803b90a1661  gcc/m2/mc-boot/GStrCase.h
! c638809ee2167dbd76caa91e1f65b3f8  gcc/m2/mc-boot/GStrIO.cc
! 55cdab5615f99ce35571afc6ba0ed05b  gcc/m2/mc-boot/GStrIO.h
! 8c0c001deecb143570891fd23a6c1716  gcc/m2/mc-boot/GStrLib.cc
! de1b0aa21858511ce0c199a3ecf46853  gcc/m2/mc-boot/GStrLib.h
! 8fe42c2ff39410c89d009777feece34b  gcc/m2/mc-boot/GStringConvert.cc
! ab3c520cd0ae1d0bb7dd24c7434d9a11  gcc/m2/mc-boot/GStringConvert.h
! de35ac1a3b562d2f02e2be8cd12d3b53  gcc/m2/mc-boot/GSysExceptions.h
! 82980fdf387f325a6baa43a0a15a678a  gcc/m2/mc-boot/GSysStorage.cc
! 8a070c6e6e6cf47b4ec8b0ecc15cbdc1  gcc/m2/mc-boot/GSysStorage.h
! fb05e6fdfa9fbf498d72df94163d1d18  gcc/m2/mc-boot/GTimeString.cc
! 12f3a1d434b2d79a119e98797845d2ca  gcc/m2/mc-boot/GTimeString.h
! 017d94a38bd512c5c15cdc3091ecebad  gcc/m2/mc-boot/GUnixArgs.h
! 7a34095ffe2aef458f073b10b48acea6  gcc/m2/mc-boot/Galists.cc
! 659ffaab9a93247dceed70add364e78e  gcc/m2/mc-boot/Galists.h
! 802f5e0bb677f5b109277a51e0e4a230  gcc/m2/mc-boot/Gdecl.cc
! 7ac0cf6eb1d8a19c1422c4f677966680  gcc/m2/mc-boot/Gdecl.h
! e8fef2551eedff9e2c8a849c1891cac5  gcc/m2/mc-boot/Gdtoa.h
! 4f27b28a6072e9236bc0f7d281e0788a  gcc/m2/mc-boot/Gerrno.h
! 22ef4c755c523f1ebf033553e1e04041  gcc/m2/mc-boot/Gkeyc.cc
! fab2cf1b0f9500af0eee11436a0cf9c3  gcc/m2/mc-boot/Gkeyc.h
! 68c1d8bd0a5b5ab3ad22b4d2c1b07e93  gcc/m2/mc-boot/Gldtoa.h
! a15316902a3a6a0f25f87e03621b4bff  gcc/m2/mc-boot/Glibc.h
! 1ef97ac3ae2577871f6b0e67ee3c3004  gcc/m2/mc-boot/Glibm.h
! 380441815cd0d51e021899fed83a322b  gcc/m2/mc-boot/Glists.cc
! d2f82d58e030e5b67d02bec06e07a9f8  gcc/m2/mc-boot/Glists.h
! 45c157bcac013558024dd91498e9b573  gcc/m2/mc-boot/GmcComment.cc
! e7cce366dc11b13c417a040d9b91db98  gcc/m2/mc-boot/GmcComment.h
! 75a6983a8771aa158461260975c79b25  gcc/m2/mc-boot/GmcComp.cc
! f86d0a74ed1141dec8728df941e00eff  gcc/m2/mc-boot/GmcComp.h
! 86991f440994fc9f110182c2c3e7645e  gcc/m2/mc-boot/GmcDebug.cc
! 1ce4400abaf2fb1e18bc7ff5eddc9d8a  gcc/m2/mc-boot/GmcDebug.h
! f960f97cab365646aa932127138344e8  gcc/m2/mc-boot/GmcError.cc
! 440ab7bd23f2594c10353383300a5411  gcc/m2/mc-boot/GmcError.h
! 5d85bb47d927f4ca22639c9f2cf2e391  gcc/m2/mc-boot/GmcFileName.cc
! 2b6e0029fc6a2e34c83f183e6e0bf5ff  gcc/m2/mc-boot/GmcFileName.h
! 70edce54272df2706d6beb92f200dc40  gcc/m2/mc-boot/GmcLexBuf.cc
! 06b5db0da9c70670e2ade4bcfe1b0778  gcc/m2/mc-boot/GmcLexBuf.h
! ae4b5f47a79bfc745544cd5f5a2415f9  gcc/m2/mc-boot/GmcMetaError.cc
! 3cc676c0d203d8cb3e0e62cc13d480a2  gcc/m2/mc-boot/GmcMetaError.h
! c95bde84c8237227972b12be3a4cfd2e  gcc/m2/mc-boot/GmcOptions.cc
! 83b9fa497d7a2256de7dcf065bdf78ee  gcc/m2/mc-boot/GmcOptions.h
! 03c7bb4d4d1e7eb24913b650b3df3fdf  gcc/m2/mc-boot/GmcPreprocess.cc
! b10b1a9c720422342363944314ad9588  gcc/m2/mc-boot/GmcPreprocess.h
! 1a459e67174f26c134a9e248876675f8  gcc/m2/mc-boot/GmcPretty.cc
! eb915bfb8eefa3b1f4b4a8cb0676e403  gcc/m2/mc-boot/GmcPretty.h
! 2861b3287a3ed9e1611630a4eec40f4c  gcc/m2/mc-boot/GmcPrintf.cc
! cb44473e1d4b2882cc75fad4dc406989  gcc/m2/mc-boot/GmcPrintf.h
! 9c52779ab3513ce4cdcf8c7754a697a1  gcc/m2/mc-boot/GmcQuiet.cc
! 1eba35d1cce984014cc01d94def05b2d  gcc/m2/mc-boot/GmcQuiet.h
! c885e1f2d8cb12d68b7216d9dd8e81e6  gcc/m2/mc-boot/GmcReserved.cc
! f277205b2740a3663dfbe4527a3ae855  gcc/m2/mc-boot/GmcReserved.h
! 58aeed5456d7409aa931c0f290d6f32e  gcc/m2/mc-boot/GmcSearch.cc
! ef6b2a52caeba457560407d36aeafd9b  gcc/m2/mc-boot/GmcSearch.h
! 4eb1963abe815fce876af61c0e153be2  gcc/m2/mc-boot/GmcStack.cc
! 8d52211b2aba382aa48cf5bdaffe8e74  gcc/m2/mc-boot/GmcStack.h
! 636e38a834f6281284ed742e2dea132f  gcc/m2/mc-boot/GmcStream.cc
! 0cb5fba74502fb9a9b4ddca544eb2fe1  gcc/m2/mc-boot/GmcStream.h
! 166e5689686800425e3a5f71559f5447  gcc/m2/mc-boot/Gmcflex.h
! abda78a072fd56f0b21934799515643c  gcc/m2/mc-boot/Gmcp1.cc
! f1e639d62e89308b6e4651ff7cda6dec  gcc/m2/mc-boot/Gmcp1.h
! 0489e894de9c0303c98ddbf6278c7bb4  gcc/m2/mc-boot/Gmcp2.cc
! ad27e941eef5587d08eb5569813e3cb9  gcc/m2/mc-boot/Gmcp2.h
! 76e50599c41e240c002c7a7639d84492  gcc/m2/mc-boot/Gmcp3.cc
! e607e12d714eccf4b0d05d38f7d7e2db  gcc/m2/mc-boot/Gmcp3.h
! 2b47c3719b4907d4721c2e851d2b66e4  gcc/m2/mc-boot/Gmcp4.cc
! 5801a3a8296a2f0bcf8ac02eb5ea920e  gcc/m2/mc-boot/Gmcp4.h
! 05e9a4785b9fa43bf9e7a102b1514200  gcc/m2/mc-boot/Gmcp5.cc
! 99e3eea1dd94b71fab98e3e891f9db7b  gcc/m2/mc-boot/Gmcp5.h
! 83d133063c39deb51f4433ba9426b0c8  gcc/m2/mc-boot/GnameKey.cc
! 4a22b236ce8ef7b273d2683e244a1477  gcc/m2/mc-boot/GnameKey.h
! a3dacb80605f321da6fa547e376a4846  gcc/m2/mc-boot/GsymbolKey.cc
! 20a6c069519878662c25aa336bd92769  gcc/m2/mc-boot/GsymbolKey.h
! 980a496e63723200cc223b04744cd66b  gcc/m2/mc-boot/Gtermios.h
! 899b5b90fc372aa3c454d8ce14639160  gcc/m2/mc-boot/Gtop.cc
! e83aa35c01e78f8ce91110556f01e8b9  gcc/m2/mc-boot/Gvarargs.cc
! edd9a92e66f34d7d85ddbbdd76ad343d  gcc/m2/mc-boot/Gvarargs.h
! 54ef20356b5bd86eba88578a6b25ad6e  gcc/m2/mc-boot/Gwlists.cc
! 7cb3d341e375a697382d9be36ad145ab  gcc/m2/mc-boot/Gwlists.h
! 5f98fa4970bb3019d1ae1e31cc5f0df7  gcc/m2/mc-boot/Gwrapc.h
  0353f1ec4e4fbfb6eb0e9080da3e5aef  gcc/m2/mc-boot/README
! f905bfc76ea1de5e02b7724cb7637fc4  gcc/m2/mc/Indexing.def
! 0671a9fa3774acdd3c0aa060f53f377f  gcc/m2/mc/Indexing.mod
  f8f98e9ffb642286dd61fd52be017824  gcc/m2/mc/README
! d7957375108d0cc26e8e42c699953a81  gcc/m2/mc/alists.def
! 80049fe3603dbbdd4ca2041b89cedf94  gcc/m2/mc/alists.mod
! a6944bc8b8054688da222277c190ca28  gcc/m2/mc/decl.def
! 97faabbf52ef6a85ca4ad4e65a5b3946  gcc/m2/mc/decl.mod
  73d148ed772aa468cc7657a403f3edc2  gcc/m2/mc/decl.mod-extra
! f1db087273804e7c9a3f2ad28257fc9f  gcc/m2/mc/keyc.def
! b45e6e84a0c5e90da9b62bfebb67ea2e  gcc/m2/mc/keyc.mod
! ed8771c798c3c6a64aa7c07f227fba57  gcc/m2/mc/lists.def
! bb0a2eb8fd8a377ca8140d4d72a2a674  gcc/m2/mc/lists.mod
! 462eb9a7f2f7a3bf1e82d9b405ea398e  gcc/m2/mc/m2flex.def
! 670eca1a5f916cb6f14b6155fdf7af45  gcc/m2/mc/mc.flex
! 5e380b2714f82c15c7615eb66edc9223  gcc/m2/mc/mcComment.def
! 9c0ba80f950c0e50d67eee172868919e  gcc/m2/mc/mcComment.h
! def3b27c0e534510192a552ba140787a  gcc/m2/mc/mcComment.mod
! 2389246152bce3b2c4f010df029e42ca  gcc/m2/mc/mcComp.def
! 1db685db81690a84b4f999b22ca86fc3  gcc/m2/mc/mcComp.mod
! eaca502e99ba357c799a3fcf84abca32  gcc/m2/mc/mcDebug.def
! a0fdd7d8c64e1e743e688c3ab78d3557  gcc/m2/mc/mcDebug.mod
! 55b1c62c577cadc614902f4596390609  gcc/m2/mc/mcError.def
! 1548668d29ead2d275410e38f2e37131  gcc/m2/mc/mcError.mod
! e291043f52df2de041bb4110a357b5c2  gcc/m2/mc/mcFileName.def
! f795b2221811bb138aab27d3199898cb  gcc/m2/mc/mcFileName.mod
! 9bd620f84e7e6a1f07ede243180f3f32  gcc/m2/mc/mcLexBuf.def
! aca8dbac6188dad8a1f937c2cec5b124  gcc/m2/mc/mcLexBuf.h
! 0f0c56d6f6f5309cc570ac75554059b8  gcc/m2/mc/mcLexBuf.mod
! a05155bd7d8a4bd5b26810fcf196dfc5  gcc/m2/mc/mcMetaError.def
! f57e05d6f31e17917763c2154ca92f0e  gcc/m2/mc/mcMetaError.mod
! 7631b23c11d2ad2709434b7c7725558b  gcc/m2/mc/mcOptions.def
! bc28bcae68a56d35351fe2ad25e03531  gcc/m2/mc/mcOptions.mod
! c71c6df2db9b00d0ac5db06e11be2a70  gcc/m2/mc/mcPreprocess.def
! 1833b5df8b299f93daf7a58c9c1670e5  gcc/m2/mc/mcPreprocess.mod
! 65644357f324695450a268ee4ef943b1  gcc/m2/mc/mcPretty.def
! 229470cafd2671dbe5cf75b8cf9ef69c  gcc/m2/mc/mcPretty.mod
! 3193cdc3f4fb076066dd6ba08b0622d7  gcc/m2/mc/mcPrintf.def
! 2843ba839e1ce6c44cdae001de2bf02c  gcc/m2/mc/mcPrintf.mod
! bcc97b3c4da4d82f52af8da11d160ab4  gcc/m2/mc/mcQuiet.def
! 5accea17c2a970d075fef0a32e401485  gcc/m2/mc/mcQuiet.mod
! 806acdd9f5658cc0d35e8a22c1c44e5c  gcc/m2/mc/mcReserved.def
! 403693fac3c61aeaf5fc2292cdfeb993  gcc/m2/mc/mcReserved.h
! 3c554a03d87017b095d99f03ae2f2567  gcc/m2/mc/mcReserved.mod
! 45e52c45be0b26092a64f81758fbabd3  gcc/m2/mc/mcSearch.def
! 8f183d88e4d0bea19f14beab7584e363  gcc/m2/mc/mcSearch.mod
! 35c5e42f56827315ef765e608a10a36e  gcc/m2/mc/mcStack.def
! 72dc663f283e989097ec8a95feee64f3  gcc/m2/mc/mcStack.mod
! 1b2d5d667d6494e79d17a580bea24e20  gcc/m2/mc/mcStream.def
! f88ae8558b0a40b2ee91dcc5e663b07b  gcc/m2/mc/mcStream.mod
! 81d423cfb87ff814477c849c50edd201  gcc/m2/mc/mcflex.def
! 702b531dba9548d85258597b693720ec  gcc/m2/mc/mcp1.bnf
! 7786edd16f80b0699b7713d370efdcfa  gcc/m2/mc/mcp1.def
! 314054d12f0eb05fe1aaa0bffc2ae431  gcc/m2/mc/mcp2.bnf
! e2b39d9bc90e5c599dc154a6e4e1c0ba  gcc/m2/mc/mcp2.def
! 17e629a6ea5a2725ddf79822a0ad2a20  gcc/m2/mc/mcp3.bnf
! b78cfdfa33698afa5d339827ee043c4f  gcc/m2/mc/mcp3.def
! 4b0b23da4b0c87b672c0f710aa8abfd4  gcc/m2/mc/mcp4.bnf
! 12383ef789b9442d643932a160bf24c6  gcc/m2/mc/mcp4.def
! 750138a12a8213bb1d5aa8a9f6a3b5de  gcc/m2/mc/mcp5.bnf
! 6ff2f33cba3fc58fd9dccaec86fb169a  gcc/m2/mc/mcp5.def
! 22df992c34b9061c570d6e12abf41819  gcc/m2/mc/nameKey.def
! 5c1aa13eee7599c06ac56349f0ac3264  gcc/m2/mc/nameKey.mod
! 642db590045ab5e4b8a00fcfede70092  gcc/m2/mc/symbolKey.def
! 2686e06a5571ebd476cd1e4ba6f2e4e2  gcc/m2/mc/symbolKey.mod
! b7f9cff6bee3d48a0a22f7e18de5786f  gcc/m2/mc/top.mod
! 2473c2ca14c7a9580e36680f7f7f8bc8  gcc/m2/mc/varargs.def
! 7056154d7b9ef4b458e8dd54717323e9  gcc/m2/mc/varargs.mod
! 0db7330ab6a5222b576a31425833cb2d  gcc/m2/mc/wlists.def
! 2b2c40f8e7cd694deb8d19caf790ad8c  gcc/m2/mc/wlists.mod
! 615604ea1ee71b456d8d9b7450dc98fb  gcc/m2/pge-boot/GASCII.cc
! e107361daa4cde34e81ea032eed60132  gcc/m2/pge-boot/GASCII.h
! d9154f1676442197765b7c266d7bb445  gcc/m2/pge-boot/GArgs.cc
! c1db8f872901c6b1b5aca08085c5c7ab  gcc/m2/pge-boot/GArgs.h
! 77fb49ab509a14692b8a49b452b3b3f7  gcc/m2/pge-boot/GAssertion.cc
! 65936e988ac1f5cad3d2f9b4eabf2fbf  gcc/m2/pge-boot/GAssertion.h
! 5b43185ae2fedf4d27f562cdafeddb0e  gcc/m2/pge-boot/GBreak.h
! 94c43661f9fe246051ac85d86e197cf6  gcc/m2/pge-boot/GBuiltins.cc
! 9083e15a53c36202bcfea591af4e3663  gcc/m2/pge-boot/GCmdArgs.h
! d8a0d39e74870fb24fd81dadfb74b051  gcc/m2/pge-boot/GDebug.cc
! 7d60c0ee2d3f1711a19287c70d29e6e7  gcc/m2/pge-boot/GDebug.h
! 1698fd9d0768855275d3f3f771200e27  gcc/m2/pge-boot/GDynamicStrings.cc
! 86c185e2390d041c35f1356cf425df30  gcc/m2/pge-boot/GDynamicStrings.h
! 615a347ef959c897ca953c9da15c9c01  gcc/m2/pge-boot/GEnvironment.h
! 7464b80bfbdd85015309574df450fac5  gcc/m2/pge-boot/GFIO.cc
! 6d5588f353da5c6c8985c8e7c34ff454  gcc/m2/pge-boot/GFIO.h
! 9084a8064675e64d07718b9023425751  gcc/m2/pge-boot/GFormatStrings.h
! a8f1c76e8396343b66e5f39a199333f6  gcc/m2/pge-boot/GFpuIO.h
! 2ff8c974d0546aa3a72eb42beaca2a4c  gcc/m2/pge-boot/GIO.cc
! 0bd8dd1a815b2af698b8c640b776254b  gcc/m2/pge-boot/GIO.h
! 1669746f1d35a8605522b13bc7ee7d12  gcc/m2/pge-boot/GIndexing.cc
! 752e1d5c03bcdf7fb2104142b38a2c71  gcc/m2/pge-boot/GIndexing.h
! c3c6bfab16c7a6845fb8545323439eee  gcc/m2/pge-boot/GLists.cc
! f8f8525b9030302b3cc5ce0848319739  gcc/m2/pge-boot/GLists.h
! 4901497750c04ca3aed144ad8a08ac77  gcc/m2/pge-boot/GM2Dependent.cc
! 28b021f230126f01f39cf0a7e83ae855  gcc/m2/pge-boot/GM2Dependent.h
! bb952a5dc2f7e674837cdbb8e6d0989d  gcc/m2/pge-boot/GM2EXCEPTION.cc
! dbb4084e7f8d724776409a654d4b5512  gcc/m2/pge-boot/GM2EXCEPTION.h
! e24d1e00cf405481bd26ee71539ffd44  gcc/m2/pge-boot/GM2RTS.cc
! b55490385a043594c35fdc218335a6ac  gcc/m2/pge-boot/GM2RTS.h
! d29c672550709ebb4a4aa85ead21e71f  gcc/m2/pge-boot/GNameKey.cc
! 1ecab44cc66269b7436f22cf0f866f30  gcc/m2/pge-boot/GNameKey.h
! 5c6d7ce2f8ef4806e4199281be24e71f  gcc/m2/pge-boot/GNumberIO.cc
! 4c9d6555902e3669aecdbeda2497abf1  gcc/m2/pge-boot/GNumberIO.h
! 043456ed2eda28098886bf129f8f695d  gcc/m2/pge-boot/GOutput.cc
! 80d3da51c8fb0cf415a00f88f2922a24  gcc/m2/pge-boot/GOutput.h
! 14d6737faad1a92b552bab1f1ff5bd3e  gcc/m2/pge-boot/GPushBackInput.cc
! 2e5be0b8081688741243ac72d6112656  gcc/m2/pge-boot/GPushBackInput.h
! b6ee5ff63646c420920062c13db568c9  gcc/m2/pge-boot/GRTExceptions.cc
! 0ff3fefb0e53ac1d1e087509d0e4919e  gcc/m2/pge-boot/GRTExceptions.h
! 3d41b1be76034ce5d5f648f0a9f8357c  gcc/m2/pge-boot/GRTco.cc
! 8638f2794b3b574b9e66c9417384e1dc  gcc/m2/pge-boot/GSArgs.h
! 77353ad98567a2a3743dfc3631ddbc65  gcc/m2/pge-boot/GSEnvironment.h
! dd73b6dc1d8659b242db04eae60b3b12  gcc/m2/pge-boot/GSFIO.cc
! cf09a80513b70680ee17e7edd3ba8ffd  gcc/m2/pge-boot/GSFIO.h
! 37974df9c365226b3008165a69609220  gcc/m2/pge-boot/GSYSTEM.cc
! b5bbf20c76e054bb4d2da529ee7ed195  gcc/m2/pge-boot/GSYSTEM.h
! 5cdbbaa4bf3e0888317d5e149166d861  gcc/m2/pge-boot/GScan.h
! 46a3ada94648322c19cfa2a51304bf02  gcc/m2/pge-boot/GSelective.cc
! 1b0d60a2585ef0a3cc3f1bfb3f029540  gcc/m2/pge-boot/GStdIO.cc
! 2e88d87ef144bc030c76dfcf28390015  gcc/m2/pge-boot/GStdIO.h
! e76b8d12035c93ef95f45cbea01a5663  gcc/m2/pge-boot/GStorage.cc
! 95badf1769b547148c7222220d209cf4  gcc/m2/pge-boot/GStorage.h
! 1d692ea342378a7d1d403297ee574c77  gcc/m2/pge-boot/GStrCase.cc
! 7fa8523d2a2cd2f625a8a803b90a1661  gcc/m2/pge-boot/GStrCase.h
! 8fe7c5abb50d28730e03b47184ef09f2  gcc/m2/pge-boot/GStrIO.cc
! 55cdab5615f99ce35571afc6ba0ed05b  gcc/m2/pge-boot/GStrIO.h
! a5646b7d4f8c0b944eb8a65c757a0ce8  gcc/m2/pge-boot/GStrLib.cc
! de1b0aa21858511ce0c199a3ecf46853  gcc/m2/pge-boot/GStrLib.h
! ab3c520cd0ae1d0bb7dd24c7434d9a11  gcc/m2/pge-boot/GStringConvert.h
! 5f63c1fcc9be8ed2fa2379dde045ec7b  gcc/m2/pge-boot/GSymbolKey.cc
! 88d8237c16aa8fe63d2d24112595fcab  gcc/m2/pge-boot/GSymbolKey.h
! d93a4b0c2fa129e4cf8c3ca74d3427c5  gcc/m2/pge-boot/GSysExceptions.cc
! de35ac1a3b562d2f02e2be8cd12d3b53  gcc/m2/pge-boot/GSysExceptions.h
! 7e7c94a1b21e7b81f6998392c48c43cf  gcc/m2/pge-boot/GSysStorage.cc
! 8a070c6e6e6cf47b4ec8b0ecc15cbdc1  gcc/m2/pge-boot/GSysStorage.h
! 12f3a1d434b2d79a119e98797845d2ca  gcc/m2/pge-boot/GTimeString.h
! 56a26f5ad490413a669aca6d98b9a2eb  gcc/m2/pge-boot/GUnixArgs.cc
! 017d94a38bd512c5c15cdc3091ecebad  gcc/m2/pge-boot/GUnixArgs.h
! a2d03aa31a6026168ccb468d7430feb2  gcc/m2/pge-boot/Gabort.cc
! dfc7e09bfb75758831302b65ed3ac992  gcc/m2/pge-boot/Gbnflex.cc
! 6c7a5fd70a4b4e0dbc56990dd2a2a082  gcc/m2/pge-boot/Gbnflex.h
! fc0c6cd43b28d715f9408a2b3d542059  gcc/m2/pge-boot/Gcbuiltin.cc
! e2ac7830e5526702cfb6b0c4713c951d  gcc/m2/pge-boot/Gdtoa.cc
! e8fef2551eedff9e2c8a849c1891cac5  gcc/m2/pge-boot/Gdtoa.h
! 0627dfd18a14bd63fc6206d4e6383681  gcc/m2/pge-boot/Gerrno.cc
! 4f27b28a6072e9236bc0f7d281e0788a  gcc/m2/pge-boot/Gerrno.h
! d6a91d3d4164eea8aff9ce97de8e3cad  gcc/m2/pge-boot/Gldtoa.cc
! 68c1d8bd0a5b5ab3ad22b4d2c1b07e93  gcc/m2/pge-boot/Gldtoa.h
! dcad2ab41e18d028234b9131a3e91b55  gcc/m2/pge-boot/Glibc.cc
! a15316902a3a6a0f25f87e03621b4bff  gcc/m2/pge-boot/Glibc.h
! 07b3bab67c818570d7b72cf284efb376  gcc/m2/pge-boot/Glibm.cc
! 1ef97ac3ae2577871f6b0e67ee3c3004  gcc/m2/pge-boot/Glibm.h
! b1b61a77d982e07b3a553314966bc2ed  gcc/m2/pge-boot/Gmcrts.cc
! 38f1b90202e6b933f1a463ab201671de  gcc/m2/pge-boot/Gmcrts.h
! 0b7dffa7d5f2ae9d4f18c96a02224202  gcc/m2/pge-boot/Gnetwork.h
! 1f14e7ec1b64ac55c4e82124a5bf2936  gcc/m2/pge-boot/Gpge.cc
! 55ef0010913844f4095b606496bbe33f  gcc/m2/pge-boot/Gtermios.cc
! 980a496e63723200cc223b04744cd66b  gcc/m2/pge-boot/Gtermios.h
! 4e4200f5298d5193aa9d73d289563e43  gcc/m2/pge-boot/Gwrapc.cc
! 5f98fa4970bb3019d1ae1e31cc5f0df7  gcc/m2/pge-boot/Gwrapc.h
  32de17e5bdad997b43794d330fc5dae5  gcc/m2/pge-boot/README
! 22957044984baa47bc82413a06f5e1ed  gcc/m2/pge-boot/m2rts.h
  8b33b15307e9ec5d5dc5f5ce40ae479b  gcc/m2/pge-boot/main.cc
! a1ef1b70669c773d3b0c5d5f475c2737  gcc/m2/pge-boot/network.cc
  18840892def349c0982fbe40111d6a91  gcc/m2/plugin/README
! 5ce044bfb5e3411ab967076c6209dbe8  gcc/m2/plugin/m2rte.cc
  b6e5f0da274b54528dae320c9d012d8b  gcc/m2/target-independent/m2/Builtins.texi
  ff2cddc8e82d26e626d51a518f97024d  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  803e2e2c4293fdba546b2340322ba0ce  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 5dc68206c4e1664be03c075b50267b64  gcc/m2/target-independent/m2/gm2-ebnf.texi
! 56a83ebca20a0ed9d23deae7e571a2d5  gcc/m2/target-independent/m2/gm2-libs.texi
  3eed1eee3be7e4c14fa1d8f611ab2c90  gcc/m2/target-independent/m2/gpl_v3_without_node.texi
  90ef5843055db95072a5e0dcaad1e694  gcc/m2/target-independent/readme.txt
  7625da2d2347161386e94664ab2ceac9  gcc/m2/tools-src/README
! d369b27af7cc7038add6b4f28f8dff0e  gcc/m2/tools-src/boilerplate.py
! 2cc4504e625876a826802362c5995dd8  gcc/m2/tools-src/buildpg
! 35f5b7d26de8d8ed5106f6bc8d0243f6  gcc/m2/tools-src/calcpath
! 00d03c3e02aa7863d246d9a48a19ffb2  gcc/m2/tools-src/checkmeta.py
! 8d11aafcef816f8516f6df1494e5bc1a  gcc/m2/tools-src/def2doc.py
! b6a67f19922a7102fda40816c3d79ebb  gcc/m2/tools-src/makeSystem
! 159038cfb96e584e4f21d13d650923f9  gcc/m2/tools-src/mklink.c
! a76a3ee5d817c7e25fc8944cd322de2a  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! ff057624034b9a3f61aa8a7949da456e  gcc/machmode.def
! d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
! db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
! a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! ea155815a917f17148e5234f2513ca85  gcc/match.pd
! 3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
! 258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
! b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
! 5dd21777320d3fbe8ec2d84a97c8690e  gcc/memmodel.h
! 7d51d91a96745b2ebd2e6682080a5fc2  gcc/memory-block.cc
! 622faa99d65a390a0e3b23b7fc488969  gcc/memory-block.h
! 5075ef1302fa68b3b7edb65fc283839e  gcc/mkconfig.sh
! 4d0e7081d2d81e5bfc2fd09f529f24ae  gcc/mode-classes.def
! f6a2d10bc3bc653427266164c36ca1fb  gcc/mode-switching.cc
! 1fda2a05e5fb301f8612f743bfdf3725  gcc/modulo-sched.cc
! c8b16bf852c15e62fcb9a95a643a4e12  gcc/multiple_target.cc
! 2ad914a0ae04e8842e895b012fa51725  gcc/mux-utils.h
! bf9733070ef719cda8e03e0d00456a81  gcc/objc/ChangeLog
! 89d4cda1305ba64b78d7d27fbc514fdf  gcc/objc/Make-lang.in
! 7af4b264a6f750378dcb944f1db5b70f  gcc/objc/config-lang.in
! e7b63a07864cdf1b61ec860b4e8ad30d  gcc/objc/lang-specs.h
! aa48b95777639651e4d69f1e4a81fae8  gcc/objc/objc-act.cc
! 861d66c65dcda03dfbb3187da17f0025  gcc/objc/objc-act.h
! 1142ca4a89f422834e7a9780e7b0b7f0  gcc/objc/objc-encoding.cc
! 4744662e2094fe9a347e08a7e32fd7b3  gcc/objc/objc-encoding.h
! 948880a199ab5e9f783a906ded25ddb0  gcc/objc/objc-gnu-runtime-abi-01.cc
! 65437770f237863f4f2ef95b651fdb30  gcc/objc/objc-lang.cc
! ecbe85ca51c420ffa9c345d6075e8bdd  gcc/objc/objc-map.cc
! db64c5508f618684c2534f17389a5ac2  gcc/objc/objc-map.h
! 6987fb0142c6cf3aeb64808172c92205  gcc/objc/objc-next-metadata-tags.h
! b643b35e4f2fc112d899b4e01469d66f  gcc/objc/objc-next-runtime-abi-01.cc
! 6ed7e09cc4dfd4ac6d86c9cb5a0b9dba  gcc/objc/objc-next-runtime-abi-02.cc
! 3897d144acc90dec7dfd018460bb3394  gcc/objc/objc-runtime-hooks.h
! 8a597cd9913a2375823a51253a8a6748  gcc/objc/objc-runtime-shared-support.cc
! 2d577827d34731720aca2a1a40c83ae4  gcc/objc/objc-runtime-shared-support.h
! 8f2962ebf1c46d64a67fe22dbb553405  gcc/objc/objc-tree.def
! 41e132086425f66faf3ea350e5e321c3  gcc/objcp/ChangeLog
! 70b191ea9ea9340ccaf4db01d4060c32  gcc/objcp/Make-lang.in
! 1e526d82134a4efe3640a7221b9a1edd  gcc/objcp/config-lang.in
! ba9b1a0486a25c7a5e9259900cc2d628  gcc/objcp/lang-specs.h
! db026aa3d5de8a0ccecf492340917f08  gcc/objcp/objcp-decl.cc
! e6f56cf368ed56c2711af5ea822a328a  gcc/objcp/objcp-decl.h
! 28e4bedf187fe8ed31f6a00e11a7a9df  gcc/objcp/objcp-lang.cc
! 68792ecd109c4276bac03d7aa1445ac9  gcc/obstack-utils.h
! 0224aa3be73c07c277f42313228c9cfe  gcc/omp-api.h
! 555473cca6d8dacbe73507cd56b703d4  gcc/omp-builtins.def
! 4505a221f9795254bb65e23ae54d7d38  gcc/omp-expand.cc
! 09db560da111d9a47704f24d99d44b8f  gcc/omp-expand.h
! 6dc86983ab780e52417a5b288e2116d2  gcc/omp-general.cc
! c1ddb0c6305e45221acab4445de3ef3b  gcc/omp-general.h
! 0c08b1d0f299580f571d556e2aee1967  gcc/omp-low.cc
! e3224969a5ed6b10763e81875242df90  gcc/omp-low.h
! c253e58a61787441cc6f3b8bd2362916  gcc/omp-oacc-kernels-decompose.cc
! 76a4931edcf0949a84b213b9f3bebcdc  gcc/omp-oacc-neuter-broadcast.cc
! 28675bde7ee7831b2b35fd97428b34fb  gcc/omp-offload.cc
! da9eb48dbee78766b92e585fe5d31858  gcc/omp-offload.h
! b713a71df97482cf1351f600ef588b28  gcc/omp-selectors.h
! fb72d1c0aef937711537cd08b25d156e  gcc/omp-simd-clone.cc
! d7e20b54dbf41bb5bbc882d887464b90  gcc/omp-simd-clone.h
! 6bfba94b3435f147c15e015b043f1be2  gcc/opt-functions.awk
! b1f6bca1fa112b1a96f89ede62ee9094  gcc/opt-gather.awk
! 1bc73ae47cd5bad28550c54de9c37839  gcc/opt-include.awk
! ca2ad6e321d28485b59d46bc553fddbc  gcc/opt-problem.cc
! 5776bd79f0077017f406b0ed92e37a4f  gcc/opt-problem.h
! 18f91868654d5bee48cf9a65177670cb  gcc/opt-read.awk
! 1d6eb4d6226876ca78b56c338799eb6a  gcc/opt-suggestions.cc
! dd70105f475a52e233b47ff0c616cfc4  gcc/opt-suggestions.h
! ac17789a5ba2d7c429844df0032eac94  gcc/optabs-libfuncs.cc
! eaeaf4fdb3363875b83fc6456140da8a  gcc/optabs-libfuncs.h
! f90689370e66cea8434860b5a2b4ce6d  gcc/optabs-query.cc
! 45ddcc72ac7b1afaa7af97d8bc82c631  gcc/optabs-query.h
! 2621e9c7af560a2b8e74cf60d4b9ad19  gcc/optabs-tree.cc
! 13ecee26d0eed80122b7cdd5558365c0  gcc/optabs-tree.h
! 3c56647b5693fde7662ff144289710ca  gcc/optabs.cc
! 1524c898bb70671cfa4ccd9cda136f8b  gcc/optabs.def
! 043f510a745f66b5001f887999834c82  gcc/optabs.h
! 460fed94230230ee1afb607142c60ed7  gcc/optc-gen.awk
! 480719012c7457f2a1edb9ce2aa5dbcc  gcc/optc-save-gen.awk
! 9b1f8e81711c10b2dc1898cf157947b3  gcc/opth-gen.awk
! df278a9462ca2bff01ec9ff8bf94ad78  gcc/optinfo-emit-json.cc
! ad1716caf45c90d6d9caec724f30d520  gcc/optinfo-emit-json.h
! ef961981623deceff501978a9dae88e1  gcc/optinfo.cc
! d9bacdb6166a27e50029e3182b06a188  gcc/optinfo.h
! 8b4243a3782181679e38ba667cba27eb  gcc/options-urls-cc-gen.awk
! 094845a74c172d6af8b6443b7785b899  gcc/opts-common.cc
! 48bef64d94870bb35654a71f190ac3a7  gcc/opts-diagnostic.h
! e4305e2c4749c00bfeeb8076167b4ad1  gcc/opts-global.cc
! edf438fefa6b7ecb25491b3346160a2f  gcc/opts-jobserver.h
! a425a5c4ce63dc8afe96d8900aef9214  gcc/opts.cc
! 6fedfbfc603ddcae59a0db838b4deb05  gcc/opts.h
! 144db85bc7d88e5bf0e64d74c55c6639  gcc/ordered-hash-map-tests.cc
! 08f16ee6d385da3a7686d42368f8adef  gcc/ordered-hash-map.h
! ff8dbe22f3adcf8d4f2ddf5e6e15cef5  gcc/output.h
! d402ffa218c7ad5bc139d1f83d34d62a  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 31d9108dc941193ce66f84eaef617d79  gcc/pass_manager.h
! fa42e03813ca55c6c23e2e26447b52e3  gcc/passes.cc
! 9aa0f63c797b2b3ceccbee49fb959ae5  gcc/passes.def
! 55035aeed04182e88f902cc211c34b90  gcc/plugin.cc
! 489f30c9e97a908622454bbc5e15a912  gcc/plugin.def
! ff1730806732d68f86a6d695005d5d90  gcc/plugin.h
! dde7480cead2e645901b4a7f7e81a0e6  gcc/po/ChangeLog
! 7bee4123f0d4890b31ea8560606b4030  gcc/po/EXCLUDES
  e4e35545a1fab9b9decbe9b06b468f72  gcc/po/be.gmo
! 4475cda331b74bc699ae1890f257299a  gcc/po/be.po
! 6103dd2da516f605b1702dea8a4f3732  gcc/po/da.gmo
! 3887aad3d1cbc2668228f3e653c47208  gcc/po/da.po
! 3c3d7719c65aca9f5297614fbdbdd215  gcc/po/de.gmo
! 32dbdfdc45ad10593e3edbabe08cb28a  gcc/po/de.po
  189b9d1af87594807b0d0e10036a64c3  gcc/po/el.gmo
! 6d384ad30f056b8695c8a59ff2e4c206  gcc/po/el.po
! aa627d9ebcf746f0f847122b3000960e  gcc/po/es.gmo
! b161076aaedd4ae75afd777e65a6b0a9  gcc/po/es.po
! 6e5dea033f333ed03dd18ee2593a5639  gcc/po/exgettext
! 918fab26e781b1b39586e6fde7ecfd00  gcc/po/fi.gmo
! 7e068f1d332578f8e2663d8e70966817  gcc/po/fi.po
! 849714d70dd62e18cb084ddbd06c9fd0  gcc/po/fr.gmo
! 681f35573724d5a715fe7bdb72be4bf0  gcc/po/fr.po
! ff96200c7524901b13e7f583b756bbd0  gcc/po/gcc.pot
! cd370dc1d81872dd1d045eb91dafa396  gcc/po/hr.gmo
! c39f7d902d1bc9c86c548022754b0ba9  gcc/po/hr.po
! 4fcc507acb1732dfcdfd27f5c6bdb5a9  gcc/po/id.gmo
! 91da80642cdb2df655100fe83a00132e  gcc/po/id.po
! c293745c802e3ecf31bf9a0b7c20cc54  gcc/po/ja.gmo
! cdc0c7ff9a83a82ca8649abf6c0b0a75  gcc/po/ja.po
  0de8f74f2b34971c167300979ff78a8f  gcc/po/nl.gmo
! d6002f5cb9f7ba77e83ae2380bad3553  gcc/po/nl.po
! e3dcddb0a412d39c786c1ff348e946d3  gcc/po/ru.gmo
! c0b76b0ae9cd61301cb8542dacc31310  gcc/po/ru.po
! 35f346f811f8450c31c1d99b447bdc24  gcc/po/sr.gmo
! 175ca5fac668c3125bb0da8961afd5c6  gcc/po/sr.po
! 33f394adba0703e3eff5dc88e82f9eff  gcc/po/sv.gmo
! 781390a396dd0095172de6592fc0125b  gcc/po/sv.po
! ed7288f141febc8565a8a0d96c7b590d  gcc/po/tr.gmo
! b48050ae989780b2d4dc65c6f4d50dd4  gcc/po/tr.po
! c219eab131c5e6aff306d3a15f9b7d04  gcc/po/uk.gmo
! ba925a8024bf0153e96d9bede63dcc11  gcc/po/uk.po
! 499c3f2b25b24bad907563fd31605fd7  gcc/po/vi.gmo
! 98b9cc8403d054428b43babc1578538f  gcc/po/vi.po
! ed3ffb46fa072508376df57a0753437a  gcc/po/zh_CN.gmo
! 320d981806d68e8d7460174733efe542  gcc/po/zh_CN.po
! 6af1eb1cf8849686544835d0594082d2  gcc/po/zh_TW.gmo
! 724bb1154ad7fb175c7f14354a06a487  gcc/po/zh_TW.po
! bab4ec81743409f81b639642d6a470ed  gcc/pointer-query.cc
! 42e14dd49b1893b63eedc00d3fc29b3a  gcc/pointer-query.h
! 1541cce778a3856ff5eb841d6d47ed26  gcc/poly-int-types.h
! e64a8ab864db636576c62983a00f800a  gcc/poly-int.h
! db8b0b44a9c90af8c666f84f5d2d6a15  gcc/postreload-gcse.cc
! 1c235a5437b0276e9e446a5bb154b994  gcc/postreload.cc
! 95c1c2ec2498cb142f61651ceb6c2286  gcc/predict.cc
! d525054b466fef2debef416a9642bd7a  gcc/predict.def
! a1003f0549c779ac813474f838335b35  gcc/predict.h
! f77168801b6d2c6f5c6f36a923fb8531  gcc/prefix.cc
! b917c692952e6c6417d7e2fcc775f08c  gcc/prefix.h
! 6a9d9ca9606d9710240467ac9b986066  gcc/pretty-print-urlifier.h
! 12cecb067933353c570d534992675b13  gcc/pretty-print.cc
! c8aba5622e179deb9d7744c694300bcc  gcc/pretty-print.h
! 9d54d48172fe03ced564a9516b33d426  gcc/print-rtl-function.cc
! 2a8e762e1b9ea8ebabf9ac323c8b810d  gcc/print-rtl.cc
! 9a8a2c8714ae94c3abb6f06641a509e6  gcc/print-rtl.h
! 0733ffc5b9f996c3290b4e8cb495dc04  gcc/print-tree.cc
! 561896afee20135da8210ef0b09aceec  gcc/print-tree.h
! f6a5b259097198d66b14186f87695b46  gcc/profile-count.cc
! 15c1fef5c89feec6af5f61c909e35410  gcc/profile-count.h
! c65c577b485a33a088eeda9f4269a0de  gcc/profile.cc
! d9deb5fb04bc9bc87a486a5ccfbba806  gcc/profile.h
! f29e4c9efdf2dc0f1c85d48990e74081  gcc/range-op-float.cc
! 997ac266d2595ff4eebf8329161f81d8  gcc/range-op-mixed.h
! 8ba824feefe86c2918eab3ecee628a5d  gcc/range-op-ptr.cc
! 8bccc2c44ae6272ee6c9810d418abafb  gcc/range-op.cc
! c27c1c39a9e7582f117a496eb1f6801e  gcc/range-op.h
! db3562fdc44d2731a5d6f79322e63e49  gcc/range.cc
! ab6530a7aba31b6045d649bad558bdd4  gcc/range.h
! d62f21136aedb5de39f00da2ce438022  gcc/read-md.cc
! 7353473e24e9e38faa6d2636c2b852a7  gcc/read-md.h
! ab6d7ad46c79c6922e06b47e127ac0e3  gcc/read-rtl-function.cc
! 05769e0c1dad9db0ecf442e1a710384e  gcc/read-rtl-function.h
! d0e0240ab5898db8d64694626b7a8a98  gcc/read-rtl.cc
! b0a0184b7b9e9c1fb0226f66853445ba  gcc/real.cc
! 9d2922bb55531074a578f60e3963a796  gcc/real.h
! 411b413e1c87bce6c78f6243d9e662b9  gcc/realmpfr.cc
! 2b4c19944566bf27cd500fc1e804e8c1  gcc/realmpfr.h
! 8c789f708b6b3a4a9d30cbabc71c94d9  gcc/recog.cc
! 3601a741d3177b8df9a76bd197eafd72  gcc/recog.h
! 78f7bb4149a60eafba8a5dda7bd80729  gcc/ree.cc
! e3d83ae4baa1d776cf5951923617ec90  gcc/reg-notes.def
! 35723f09766711c71ebef9ec4f7c41fc  gcc/reg-stack.cc
! e95738a65e09b7bd3bbcbbb5467f543c  gcc/regcprop.cc
! a97922db0f92509d800d3f1768f20b7d  gcc/regcprop.h
! e38ad832bcd33ad5c98b699c82482faf  gcc/regenerate-opt-urls.py
! a7d5787d583f54d43ff6842cf943d3ab  gcc/reginfo.cc
! 877700eb4e2ceb5e69292706be5ac56f  gcc/regrename.cc
! de0d2fac734a224f80867bb4a28dc82e  gcc/regrename.h
! c9aa55d7b97d4f98438fe6e8e12fb9bc  gcc/regs.h
! 00696b558f06f68b4a5021e22ca75b8f  gcc/regset.h
! 7ac46b11b533eb7027b31c3250f7eed7  gcc/regstat.cc
! b939a97b23c6a9e507206f88f374e3c7  gcc/reload.cc
! 7975be969706e36978faf51a80b12cc1  gcc/reload.h
! 9a37ec0045e423ece6dad00cd55e74ad  gcc/reload1.cc
! 8206eaad162f902fa167e743b4bb0c51  gcc/reorg.cc
! f823899984928681ad84050b538e2d15  gcc/resource.cc
! babf0178d50c8fdb4f8c6f263e8f7186  gcc/resource.h
! f520567da7bf489847d354df2881eb89  gcc/rtl-error.cc
! c8040ddc1ed0565198cd6c02138ac232  gcc/rtl-error.h
! 322452654eeaa79b28c69feb516575c8  gcc/rtl-iter.h
! 749bc40c9d8fa461f426ffe93825f034  gcc/rtl-ssa.h
! eb56b0393244b4fc25b53c415d1c75a3  gcc/rtl-ssa/access-utils.h
! 543ee94916548806a6fafbb7389902ee  gcc/rtl-ssa/accesses.cc
! 8551adb4a2560e77a0255429281d8e6f  gcc/rtl-ssa/accesses.h
! ce7c6e4a28e77a1ca248140d0f9fb4b4  gcc/rtl-ssa/blocks.cc
! d3cbfebd89086734978180ead25fb5fd  gcc/rtl-ssa/blocks.h
! 1a5d3dfffcd1d8edaab54ae419f8779f  gcc/rtl-ssa/change-utils.h
! c66de656bc10000a243fd2b501303049  gcc/rtl-ssa/changes.cc
! dc48c4f2ecc0c82e92dedd88095af9cb  gcc/rtl-ssa/changes.h
! 27a011a04ed2f2cfcd5c65d4b676d31d  gcc/rtl-ssa/functions.cc
! abeafdf1b3d5c04e302b2511836eaf9b  gcc/rtl-ssa/functions.h
! e86dfe63b497daf3f27ccb60672ed549  gcc/rtl-ssa/insn-utils.h
! f908452caff1936d349d4dc9a69ad4c6  gcc/rtl-ssa/insns.cc
! bee3f5f40260aee46cea4dffae8915cf  gcc/rtl-ssa/insns.h
! c9f63426926da72970b48ccdd174bcfb  gcc/rtl-ssa/internals.h
! c6556f7d4b71e1afe7fd15693cb0330a  gcc/rtl-ssa/internals.inl
! 0db4824244deb6377d1373f8b07c2117  gcc/rtl-ssa/is-a.inl
! a0e946b3c04348d50637a2fecf4c9064  gcc/rtl-ssa/member-fns.inl
! c7cca414fd19d8f2218113f23855cb63  gcc/rtl-ssa/movement.cc
! 98a61c25d101619006f94c9fa6736de0  gcc/rtl-ssa/movement.h
! db324b34f49ff4ae418c636199900535  gcc/rtl-tests.cc
! 3b6f4561994ed417fc3971cf78ec8700  gcc/rtl.cc
! 623faac030cb5c1b7ea631073b55f38b  gcc/rtl.def
! 913186efd19ee01563e3caea005a0e41  gcc/rtl.h
! 4adc116b7e13477a35b3b45f466eb329  gcc/rtlanal.cc
! a1937f17d1d182cb6e258ef408ed99b1  gcc/rtlanal.h
! 7c157970fb7474e6eb205b9b4c8c741d  gcc/rtlhash.cc
! b6a88148e243c3fc69752c9b207db3ec  gcc/rtlhash.h
! b7f34dbe9ce2ba2914d73ac3ab520ec0  gcc/rtlhooks-def.h
! c6f32b9d3d0485c6946acc0450be8744  gcc/rtlhooks.cc
! 5ba2c36a44548c5cc507a84ff1aec54d  gcc/rtx-vector-builder.cc
! da8cc7346087f24fd08a30678bffc803  gcc/rtx-vector-builder.h
! 12e68032aedebab5d0aa3f2383548a66  gcc/run-rtl-passes.cc
! b1fa6cd90c9a8ce5fbd4c6cadcb73b18  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! 910ccc2e57bb6dc63852ce2b5d2a45a0  gcc/rust/ChangeLog
! fe3b0330b60f07917ffd019640594e4f  gcc/rust/Make-lang.in
  f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! 2739eaa6640d146dda975a2994d74982  gcc/rust/ast/rust-ast-builder.cc
! 770e300fd3d8cb69770627e6be0db506  gcc/rust/ast/rust-ast-builder.h
! 5645a4df7352ab41f13bc51ade0e26d2  gcc/rust/ast/rust-ast-collector.cc
! e9f395f82a1567366ad233b46dff328c  gcc/rust/ast/rust-ast-collector.h
! 50cf7bf1cd43523395fb3ac01cba8cbc  gcc/rust/ast/rust-ast-dump.cc
! 996c6b3aa3345e69fb3755c4c4bbfe6f  gcc/rust/ast/rust-ast-dump.h
! 5705439aef0e4682db64bc83c555a0fe  gcc/rust/ast/rust-ast-formatting.cc
! 8d16e8b8dde91909f83ba3762b1633dc  gcc/rust/ast/rust-ast-formatting.h
! f16c7575fd2a9187ef3ecdee58f91466  gcc/rust/ast/rust-ast-fragment.cc
! 1296480bbbd8dda191a44fc3a837742f  gcc/rust/ast/rust-ast-fragment.h
! 493b8ffb6a928e2240e146526033495e  gcc/rust/ast/rust-ast-full-decls.h
! 409e8adec8dbdacf32754ef94c4184d5  gcc/rust/ast/rust-ast-full.h
! 0c306bbdae2043a30bf3a04b22b712a0  gcc/rust/ast/rust-ast-visitor.cc
! 8ff4c135c0e179d436f2ec2e66027de4  gcc/rust/ast/rust-ast-visitor.h
! 6e7bef2b4bfc2dc2c7e7b816a116d9d4  gcc/rust/ast/rust-ast.cc
! 0ddce30c33489d3b61b05d0187601fd0  gcc/rust/ast/rust-ast.h
! b797dbb95105b99fb90b52228f3defc7  gcc/rust/ast/rust-cond-compilation.h
! 398ef2b9d17ac0d29f66b665b5a3bf80  gcc/rust/ast/rust-expr.h
! f6f9ccfd2d63397545267625cf4ef26b  gcc/rust/ast/rust-item.h
! 6618115730a2118dcf05861f2732a66b  gcc/rust/ast/rust-macro.cc
! 5b9aa6d3b93063b63af8a33bd12399e2  gcc/rust/ast/rust-macro.h
! 0ae6d3ca074f7f386f19ffec8c6279d3  gcc/rust/ast/rust-path.cc
! 5ba32efba5ec1836dc4872e6262f5f42  gcc/rust/ast/rust-path.h
! 08e7a831356fbddefe96dbbfd654ba77  gcc/rust/ast/rust-pattern.cc
! 894ba1d5f60f36474dd5c6b2e200be2a  gcc/rust/ast/rust-pattern.h
! 7ecd750419a5aa6e37f4a05885d1fcc0  gcc/rust/ast/rust-stmt.h
! d21a856e04fb0dc517dea450753e9b3e  gcc/rust/ast/rust-type.h
  39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
! 7a03177dadd08e445c7a4662920811a6  gcc/rust/backend/rust-builtins.h
! 16ded9645a90d3b6a057ad2f693efb95  gcc/rust/backend/rust-compile-base.cc
! 7a8ba29963c11429fad9029d042cd634  gcc/rust/backend/rust-compile-base.h
! 6c009da96d7d90578abdb12abe6c3ac0  gcc/rust/backend/rust-compile-block.cc
! 0006ae8ff7c5734343fad08826eb3efb  gcc/rust/backend/rust-compile-block.h
! 4470d15f66e4384b3bdb75a6cf078f45  gcc/rust/backend/rust-compile-context.cc
! 70d8900d37c72cff3b84f56cda9547ed  gcc/rust/backend/rust-compile-context.h
! 906bdb5a47ee2789e42adb47ebc7f695  gcc/rust/backend/rust-compile-expr.cc
! 05357b27d8127485f2ccecb094cb034e  gcc/rust/backend/rust-compile-expr.h
! 3c3fb2a863f6e2c639f414ae304ad139  gcc/rust/backend/rust-compile-extern.h
! 7b9fb3a1653620cae3a1aeac4711956b  gcc/rust/backend/rust-compile-fnparam.cc
! 5b9611628e0434d05498363be7e20c15  gcc/rust/backend/rust-compile-fnparam.h
! 6075420971bc6f9cbf8e087edc63eeb7  gcc/rust/backend/rust-compile-implitem.cc
! 9aac5194bbe828b45ae8d4e8516e0cfd  gcc/rust/backend/rust-compile-implitem.h
! d5da5f731126fa59aec6f4a38d2aed79  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 55fc2e4bb634d7a45f18a92f0a4fdf62  gcc/rust/backend/rust-compile-item.cc
! e74f9987bd188b926bb732c4beb0a342  gcc/rust/backend/rust-compile-item.h
! ef0f5ec355dbb7a085ee43c836a250b9  gcc/rust/backend/rust-compile-pattern.cc
! 341379c462bc26472b5b39558d608a90  gcc/rust/backend/rust-compile-pattern.h
  cd711182d62e81ac9cb36e89d0ab5062  gcc/rust/backend/rust-compile-proc-macro.cc
! 7b14cad8969461457013b3f24219e6a8  gcc/rust/backend/rust-compile-resolve-path.cc
! 27962842ee092c22d0a42b1f9de2ef38  gcc/rust/backend/rust-compile-resolve-path.h
! 774d5d6089e002b1ab32f2297706b8b1  gcc/rust/backend/rust-compile-stmt.cc
! 7b71c3009e78ce4cb8bd5d775fe3f646  gcc/rust/backend/rust-compile-stmt.h
! 18f99673c5fa579faea9c900eaa7e5b6  gcc/rust/backend/rust-compile-struct-field-expr.cc
! 277bddb4618e9f398efa7e75e8b6ae0c  gcc/rust/backend/rust-compile-struct-field-expr.h
! c655d5bf57417329896c6cfe4b04301f  gcc/rust/backend/rust-compile-type.cc
! 8e51b3dc7fbbd109e0544c0193ce6004  gcc/rust/backend/rust-compile-type.h
! 5ed679ead25590e35cf796dc2923daa1  gcc/rust/backend/rust-compile-var-decl.h
! d8f21c3e5073438f7983a81fcdec810b  gcc/rust/backend/rust-compile.cc
! 7be115e3a2e0e325ff40a98c68500885  gcc/rust/backend/rust-compile.h
! 99bbb5038a154a04a575af9e49250e82  gcc/rust/backend/rust-constexpr.cc
  3778b6c3ad2a1fad766013bb9e1d8ea3  gcc/rust/backend/rust-constexpr.h
! d318ae75420f450e99fbc7773953247c  gcc/rust/backend/rust-mangle-legacy.cc
! f4ff8efa3b32e5d0e9f87837b586c2f2  gcc/rust/backend/rust-mangle-v0.cc
! b877ffe1c96401d1f16041b9163ede86  gcc/rust/backend/rust-mangle.cc
  512554d11e53c000f4acc53f4b5c960a  gcc/rust/backend/rust-mangle.h
! b0b62f3739f73bff5eb9e79bb449b9bb  gcc/rust/backend/rust-tree.cc
! ce793ff32ef77f6f23e4f0ae0d10a395  gcc/rust/backend/rust-tree.h
! f47752c311658f017263f4a44060e79d  gcc/rust/checks/errors/borrowck/bir-design-notes.md
  eee383c6d924f06fa96c8f58f21fc6af  gcc/rust/checks/errors/borrowck/dev-notes.md
! f8991fd1a2c9d4399b7eb5a27d1b91b8  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
! 5ef8ebc2ef90e139d5426534241e2d5f  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
! bf3acf72c2856ace9d51062006e5fb19  gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
! 6a3e33d02a55b6fd82140cd88adf8bff  gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
! ee08b212dbb653ad4bdf2ee52bbb4053  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
! 15e8fec16e419d1baf6dfcca4cefc86b  gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
! 0bb69ce07f869f5cadab88674170866c  gcc/rust/checks/errors/borrowck/rust-bir-builder.h
! 9c25b4c9b578d14b51baab2c7c690adf  gcc/rust/checks/errors/borrowck/rust-bir-dump.cc
! 1638ef87fb5c0186deaa23e9a6f3bd53  gcc/rust/checks/errors/borrowck/rust-bir-dump.h
! dedefaff936789760748e51351f6039c  gcc/rust/checks/errors/borrowck/rust-bir-place.h
! 62db62086ec680a8063cf1906997ad8d  gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
! 7f99055019edc67e330726d0eb1aeb8d  gcc/rust/checks/errors/borrowck/rust-bir.h
! 84b39948f1419052d719e58ff8df8e59  gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
! 3ad1f63e58370145f79e4fc69317fa57  gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
! 8c6137afeafddf291705c8a10650a32c  gcc/rust/checks/errors/borrowck/rust-function-collector.h
! 74e2d1a0866565675f02e62afff2654b  gcc/rust/checks/errors/privacy/rust-privacy-check.cc
! cc3159128deaca71054966724965ef1b  gcc/rust/checks/errors/privacy/rust-privacy-check.h
! d3a6ee6ff32097a82f96e0c48cf49a40  gcc/rust/checks/errors/privacy/rust-privacy-common.h
! 1fd04e967ebd0ad2ed3f61ac3782b3bf  gcc/rust/checks/errors/privacy/rust-privacy-ctx.cc
! 222c24dec242318a54add028cac73c2d  gcc/rust/checks/errors/privacy/rust-privacy-ctx.h
! f7a8c2514edf9247c678ee1f003fdbc5  gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
! e58e0c71aa348c5d911d654831112304  gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
! 80e15310cc2ec1a59b83889c7208a30d  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
! 83f32b368a0369f26af8d89cc6d49af1  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
! 83c77698d118b63c0219d3fe50e45f7c  gcc/rust/checks/errors/privacy/rust-reachability.cc
! 426225b30a71b3cbaac662ecd62b9691  gcc/rust/checks/errors/privacy/rust-reachability.h
! cbafc2648c60633fb54b1ac218eec284  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
! 492887b795ae246dc017518967d0b2cf  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 310184bd79fca0ecf68b5da940111141  gcc/rust/checks/errors/rust-ast-validation.cc
! 4703048924351cf2453a1e739f4617e3  gcc/rust/checks/errors/rust-ast-validation.h
! 425c92ab47dc28d2afe5c2c47d6af55a  gcc/rust/checks/errors/rust-const-checker.cc
! 2e3a885ae5c98e1b31fb6fb04d9363cb  gcc/rust/checks/errors/rust-const-checker.h
! 5f0feaf06394dbd13206198291873096  gcc/rust/checks/errors/rust-feature-gate.cc
! 0208b72b247163215a6db5f0aa6e5af9  gcc/rust/checks/errors/rust-feature-gate.h
! 58198c77d289646c5f5c603f69e9c263  gcc/rust/checks/errors/rust-feature.cc
! d96e917daee7b4055673516c50e48db0  gcc/rust/checks/errors/rust-feature.h
! 0c55ae3742f61e51edfcb8891ad0bb91  gcc/rust/checks/errors/rust-readonly-check.cc
! cf1670d2aed567e70f6e5fd890c928c2  gcc/rust/checks/errors/rust-readonly-check.h
! 6bcb6f91a8f8c59121763f1580c26533  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 75fd8619401a967ba5620bb57c041e3e  gcc/rust/checks/errors/rust-unsafe-checker.h
! 54e24d94a4e26b1e5fbe2edba3e723d7  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 15cd282bbe1702aeab52ab9a1accf26a  gcc/rust/checks/lints/rust-lint-marklive.cc
! 2bbcb580709688bfac6b47c06c5f2ec8  gcc/rust/checks/lints/rust-lint-marklive.h
! 05073d080ec1fb206a1174f0fcee33b6  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
! 066897e69250bde55e4b0e2d714e9a0a  gcc/rust/checks/lints/rust-lint-unused-var.cc
! df8c9b74f12db6e599209667360d49ff  gcc/rust/checks/lints/rust-lint-unused-var.h
! 3419933c102584570b6e2fcfdf48420b  gcc/rust/config-lang.in
! e03c2f31f717874df023452bb8caf1f1  gcc/rust/expand/rust-cfg-strip.cc
! 3a14008423a96083a8423249b09dc088  gcc/rust/expand/rust-cfg-strip.h
! ed8dc236f6ae4e029c131cb918f7195e  gcc/rust/expand/rust-derive-clone.cc
! 913f3fd20a269285379d51ec477d522e  gcc/rust/expand/rust-derive-clone.h
! 7f557bc282f6da9e9969a3fbc1006d9a  gcc/rust/expand/rust-derive-copy.cc
! 8f620440497c3674f047df9af4c73d39  gcc/rust/expand/rust-derive-copy.h
! fbc2cd5e1fa9991ede24314701dbb2dd  gcc/rust/expand/rust-derive.cc
! 06cd548fc10775dae7c9cd6323d892aa  gcc/rust/expand/rust-derive.h
! f5c40ad3d40e24ac9fa463f89f20620a  gcc/rust/expand/rust-expand-visitor.cc
! 95c09951821dc913e51fce75086fe1e9  gcc/rust/expand/rust-expand-visitor.h
! 485362b1056feef82ebdd0b97db4bda6  gcc/rust/expand/rust-macro-builtins.cc
! d832ee9a8f0eb071fb83b1d1ac272889  gcc/rust/expand/rust-macro-builtins.h
! d9bf4ac8e5a5fe1ba6e4df1ec25e09dc  gcc/rust/expand/rust-macro-expand.cc
! 197a6ac9c3db38778c69f351a8465b61  gcc/rust/expand/rust-macro-expand.h
! c9a05ccf22c83dcadbfc5d338576812b  gcc/rust/expand/rust-macro-invoc-lexer.cc
! 5485fde17ab40d2a30729ee93d7e0cba  gcc/rust/expand/rust-macro-invoc-lexer.h
! 0622aab798939bd599fc122f5d3be35c  gcc/rust/expand/rust-macro-substitute-ctx.cc
! dee5e42a511858f73132fa0264ea88d3  gcc/rust/expand/rust-macro-substitute-ctx.h
! e6121a2e800281fd70ea371fbb8af9a1  gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
! 0e75d02f1ed30d4d136a46c6d33ff9bc  gcc/rust/expand/rust-proc-macro-invoc-lexer.h
! 923075e64380b2f747578cb52ea999e9  gcc/rust/expand/rust-proc-macro.cc
  0fc794873a4275b45265cfc97fd85f06  gcc/rust/expand/rust-proc-macro.h
! 050c8aa6f90477a7aba9b1ba737812f3  gcc/rust/hir/rust-ast-lower-base.cc
! 87b3482478f75c58c42c49499ca18ceb  gcc/rust/hir/rust-ast-lower-base.h
! 932fae8d3703dc77a4c3ce3e3eb220cc  gcc/rust/hir/rust-ast-lower-block.h
! f8903b2fc4c436ca71d04ac74fbc4524  gcc/rust/hir/rust-ast-lower-enumitem.h
! e4a474a9c7f41ca02edeb3026f2b1d16  gcc/rust/hir/rust-ast-lower-expr.cc
! 71269aed10bf85123b4c3929ddb9ec9a  gcc/rust/hir/rust-ast-lower-expr.h
! 243093d9074c374144ec5e950000ded1  gcc/rust/hir/rust-ast-lower-extern.h
! 5dfd8d71d5dbcc0fb68fd5551c040cdb  gcc/rust/hir/rust-ast-lower-implitem.cc
! 31be5f8b816d80ad331d00fe6ce2e175  gcc/rust/hir/rust-ast-lower-implitem.h
! 6102494cf1a0b2056fcd7ee0f8f91160  gcc/rust/hir/rust-ast-lower-item.cc
! 3090a4742914d74b670bd7a4b9719707  gcc/rust/hir/rust-ast-lower-item.h
! e3aa0f50121dbaec3f5b2afb4a75b547  gcc/rust/hir/rust-ast-lower-pattern.cc
! b21cafeb543f63cc6f747eb9f7734ac8  gcc/rust/hir/rust-ast-lower-pattern.h
! 07b4e570e5664d988c9d8b084587f48e  gcc/rust/hir/rust-ast-lower-stmt.cc
! f240fee6fd4cd0a591f0b134fbec7e87  gcc/rust/hir/rust-ast-lower-stmt.h
! 071fbd004f31547059e4598c6cfc6964  gcc/rust/hir/rust-ast-lower-struct-field-expr.h
! 47fb7eed02b104cb9d7ded6e9aa0ef9a  gcc/rust/hir/rust-ast-lower-type.cc
! 9983330d01a32af8c3c8ab7e85d602c9  gcc/rust/hir/rust-ast-lower-type.h
! 599c6d579e7316d67b428fb236ead11c  gcc/rust/hir/rust-ast-lower.cc
! 2a8562e918c2ddb5150d63bf8bccc1ca  gcc/rust/hir/rust-ast-lower.h
! 4794bbb888b22836751b45b3003e06f3  gcc/rust/hir/rust-hir-dump.cc
! 6ea36485585cd513a9effdd9683fa3fa  gcc/rust/hir/rust-hir-dump.h
! b2adfa8121582206dd3d32d91bb0544a  gcc/rust/hir/tree/rust-hir-expr.h
! c1b358fd4112e6c74ebed650665fab4c  gcc/rust/hir/tree/rust-hir-full-decls.h
! fd3e59f2f29e787b4fe3ba06f0c7c7cf  gcc/rust/hir/tree/rust-hir-full.h
! 9fd204fe848da9583f14aae685fb12c4  gcc/rust/hir/tree/rust-hir-item.h
! 15758cb144d9ee97ee40eac6f2726d8b  gcc/rust/hir/tree/rust-hir-path.h
! bb6a68bfcd27b450c3c0701baf514243  gcc/rust/hir/tree/rust-hir-pattern.h
! ac75bdfc4c8bf7de10e038870f03e65f  gcc/rust/hir/tree/rust-hir-stmt.h
! 0d42839f0743d89dd342d86079c8e091  gcc/rust/hir/tree/rust-hir-type.h
! bd7f7b8fd5d35951a93ac2977bcca443  gcc/rust/hir/tree/rust-hir-visitor.h
! 19466360c5e4dd20aea7db588b5f64fc  gcc/rust/hir/tree/rust-hir.cc
! a1313db29664e2bf43a62d9e173c9012  gcc/rust/hir/tree/rust-hir.h
! 2705d4d944b4c08a8f004a390a9664c8  gcc/rust/lang-specs.h
! f30ef547fe665c69fa67c4351e47983c  gcc/rust/lang.opt
! ef73ba8ae2ece3f6ae86b2674aaa491c  gcc/rust/lang.opt.urls
! a3f4573f8ef39886bccf29b183c3eff7  gcc/rust/lex/rust-input-source.h
! 4112b167891caf87d1bf2396ff068688  gcc/rust/lex/rust-lex.cc
! f40347fe339d2beb33db3a323d2acd1c  gcc/rust/lex/rust-lex.h
! f7d500054dd885e6266b9298767f1153  gcc/rust/lex/rust-token.cc
! 4bb028fbaff35829348b60aa64f7cf31  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
! d273d098c4321db0ba5cfd076291b180  gcc/rust/metadata/rust-export-metadata.cc
! 7480cd5937431f0c8df141d8bd723a4c  gcc/rust/metadata/rust-export-metadata.h
! 77e34b5b4a06bd60bdc841690d3de63c  gcc/rust/metadata/rust-extern-crate.cc
! 4173f8e19a3ac7c57ba1430917c3cc6e  gcc/rust/metadata/rust-extern-crate.h
! 009a7e830da40cd4abb74ab14f9d4b72  gcc/rust/metadata/rust-import-archive.cc
! a535721a6d41cbd2a284ae5074b2a893  gcc/rust/metadata/rust-imports.cc
  0b8b8d52e0311e31fc3bfa30129004bf  gcc/rust/metadata/rust-imports.h
  6157b499aceab0b9b632eea936bc0f0d  gcc/rust/parse/rust-cfg-parser.cc
  e0d1b97260228c2544bb509ee36eb811  gcc/rust/parse/rust-cfg-parser.h
! 9d065e87a8656557ac6a90dbfb008ba4  gcc/rust/parse/rust-parse-impl.h
! 58caa6b14bb0ef2e314b5f61e3ebbc08  gcc/rust/parse/rust-parse.cc
! eb5b04e86a3d06b64c2f8416843ae5e3  gcc/rust/parse/rust-parse.h
! c4a7ed9e761f2ee759252d60439e7885  gcc/rust/resolve/rust-ast-resolve-base.cc
! 9e8d085ae747bcff2ab14ab09f2fe5d7  gcc/rust/resolve/rust-ast-resolve-base.h
! 717d44a205e6692e1dc418c1028b79c9  gcc/rust/resolve/rust-ast-resolve-expr.cc
! 40545b487810460778eb6c9b234da4f0  gcc/rust/resolve/rust-ast-resolve-expr.h
! fcaa3f3c10cd141213e691b706aba952  gcc/rust/resolve/rust-ast-resolve-implitem.h
! 9952ed9189621e2882ab826bc01def70  gcc/rust/resolve/rust-ast-resolve-item.cc
! b80485ef30319a5bceb70f9e1104dc97  gcc/rust/resolve/rust-ast-resolve-item.h
! 5e2f4ae8885f92f1ff5d23a2fd5dc62c  gcc/rust/resolve/rust-ast-resolve-path.cc
! 0af38ffeb137e6676ba5cfeea2d48b6d  gcc/rust/resolve/rust-ast-resolve-path.h
! 6972ea7712ff01fc78b886267a2b66a3  gcc/rust/resolve/rust-ast-resolve-pattern.cc
! 216c2a4694da1d34a2d68aab16b79b9a  gcc/rust/resolve/rust-ast-resolve-pattern.h
! ca029ea18f23c757ce80a6e97f4652c1  gcc/rust/resolve/rust-ast-resolve-stmt.cc
! ce6b16dda82144df375aa02891fca21c  gcc/rust/resolve/rust-ast-resolve-stmt.h
! d15b4d2d95a74d543f343ec6118ad91b  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
! 2b32064859102683e48f1c8573ccb362  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
! 4e43465ccd1d5936ca98c4e569a26cbb  gcc/rust/resolve/rust-ast-resolve-toplevel.h
! bb23ace0db0eed0cdae569c8f1cc937e  gcc/rust/resolve/rust-ast-resolve-type.cc
! 3c71bbd54df4ce6d460248a104314c55  gcc/rust/resolve/rust-ast-resolve-type.h
! f1a9ad66758e6ac41634a194f50e6b17  gcc/rust/resolve/rust-ast-resolve.cc
! d3dcdaa3b958ecd5cfcb4402c1cabb95  gcc/rust/resolve/rust-ast-resolve.h
! d8ea82a7388bc6d76f8a60d247588d58  gcc/rust/resolve/rust-default-resolver.cc
! b758f0f2512f7d3f4c769b303af50af2  gcc/rust/resolve/rust-default-resolver.h
! fbbe7de00ca33cda3d1aecd0d1b57312  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 7af30e4b19365d03445467af76430978  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 1e5f44cdec50b628e049d06a70323206  gcc/rust/resolve/rust-early-name-resolver.cc
! c5f060fa2c17f81e79dd78aa73690329  gcc/rust/resolve/rust-early-name-resolver.h
! 73a51c679a9a5a115922545425301136  gcc/rust/resolve/rust-forever-stack.h
! 8056b3e8d153ef106441b9a23db65a87  gcc/rust/resolve/rust-forever-stack.hxx
! fd7a2189c886807860cc30a41b9061e1  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
! ea4cda0e89937b0609f8798cc93c367a  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! ef91e42d070369e2bbee806ecd4eea31  gcc/rust/resolve/rust-name-resolution-context.cc
! c922677544606bb96cb18152416a5050  gcc/rust/resolve/rust-name-resolution-context.h
! b7a876a8b612683e3b8bcf84f3423d99  gcc/rust/resolve/rust-name-resolver.cc
! 677b72920fdc2f36c5d41260a3d6613d  gcc/rust/resolve/rust-name-resolver.h
! 05f349355b34a70eb20e47390e65e9bb  gcc/rust/resolve/rust-rib.cc
! 125dd03c5fea2696f363276bf1417a1b  gcc/rust/resolve/rust-rib.h
! a504723fb94688a5afba3e2c480a836a  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! c06e9dff294f1d8d130a481d2c116433  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
! 8e5f6246b19569a3d7bf9bb32f84b05a  gcc/rust/rust-attribs.cc
! 51ab251a8ed6e51b8845a8a51e1830b7  gcc/rust/rust-backend.h
! 76e1330399c498a8e1ee3a232a578955  gcc/rust/rust-diagnostics.cc
! 9d3af8a76d6be1465d8eb451118b2519  gcc/rust/rust-diagnostics.h
! 695d778f579284673fb0dfe919ddf8d0  gcc/rust/rust-error-codes.def
! dd3e8be30222e085117089ecc8dcfe1e  gcc/rust/rust-gcc.cc
! a9fdac26c9f35145412b08c40b2debf7  gcc/rust/rust-gcc.h
! 536ee8f1d207a3f5a9620786bf313f61  gcc/rust/rust-lang.cc
! 34131bd5dad1946b8ed71220b96e4102  gcc/rust/rust-linemap.cc
! e1c362ac61c34718882c9e6b3f4c2730  gcc/rust/rust-linemap.h
! c455b2ee2f274a02ad987cbb557da692  gcc/rust/rust-location.h
! 6cf363a7f97078fb77efce17f97c76d6  gcc/rust/rust-object-export.cc
! 09108b14980a274546a9d021ac5c7e30  gcc/rust/rust-object-export.h
! 46e9244dd1191c24e874926f6eb0d898  gcc/rust/rust-session-manager.cc
! b7ecfe531ad5f88ac9c94ff6159e00d2  gcc/rust/rust-session-manager.h
! 6857aed8088dddd0276a07601bdc9006  gcc/rust/rust-system.h
! 82a23b65fc2dca7071faf87c3b53f869  gcc/rust/rust-target-def.h
! e9da8372ad30c849e508c655ae1b6334  gcc/rust/rust-target.def
! 35430084b167aea827965d453f616636  gcc/rust/rust-target.h
! 8b8a123559f6117e482310c438387908  gcc/rust/rustspec.cc
! 1ba1c579b05606605213886417f8b5ed  gcc/rust/typecheck/rust-autoderef.cc
! 75f176765841b62753c581fded50ab1d  gcc/rust/typecheck/rust-autoderef.h
! b6d94060b4530b5fa3f9a8da8abf2090  gcc/rust/typecheck/rust-casts.cc
! d225e96fd43b663fe91cc3d93c865ba8  gcc/rust/typecheck/rust-casts.h
! a0ed4725fcb697c80fab089f6179b039  gcc/rust/typecheck/rust-coercion.cc
! 847e95b81d759d5f1c73c550d8543216  gcc/rust/typecheck/rust-coercion.h
! b7834d7d8becf6ba480cb25ab5c5bc6a  gcc/rust/typecheck/rust-hir-dot-operator.cc
! 3edb984cd891e5de12d47afeb838a911  gcc/rust/typecheck/rust-hir-dot-operator.h
! a41ac9466e9939916330997468f3a8ec  gcc/rust/typecheck/rust-hir-inherent-impl-overlap.h
! 4e1912b88135f2a00ee578ad4e83a0a6  gcc/rust/typecheck/rust-hir-path-probe.cc
! 452f181ae262ec76899980449a632ddf  gcc/rust/typecheck/rust-hir-path-probe.h
! 15d2d085fb63227d0c83a7c298db315f  gcc/rust/typecheck/rust-hir-trait-reference.cc
! 76ccb133ccc5a9aa98ffd4dfafc198cb  gcc/rust/typecheck/rust-hir-trait-reference.h
! 278f62460e5ae4af2fd2bedc24d4c7c7  gcc/rust/typecheck/rust-hir-trait-resolve.cc
! 02192f63abec6589b0d50cd6b02dd135  gcc/rust/typecheck/rust-hir-trait-resolve.h
! f129595d54c426fd571fdbfea36f964c  gcc/rust/typecheck/rust-hir-type-bounds.h
! be1eb30e3391620f696ec7b425d6a56d  gcc/rust/typecheck/rust-hir-type-check-base.cc
! 3f9bdff14ba7600d9c7623f07caafe0e  gcc/rust/typecheck/rust-hir-type-check-base.h
! 435f830487820932059485ed7e22d258  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
! 5f601ee58cffff04f9055240922253c2  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
! 483493b502169b9dd1525e0f7192a13b  gcc/rust/typecheck/rust-hir-type-check-expr.cc
! b5de84c305bb0b48f3e1f8744a7852aa  gcc/rust/typecheck/rust-hir-type-check-expr.h
! e5f738763bc53df22972ea86a40152d4  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
! 3a5d33275ff0ecb2a3cdfecfcdd19e4b  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! 73811f0621c96703ccc4eb1552144e3d  gcc/rust/typecheck/rust-hir-type-check-item.cc
! 2930c234c865b3188f81a0611d0745c0  gcc/rust/typecheck/rust-hir-type-check-item.h
! d2e740217783a5a40174ad8d14f81824  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 942628010d33112ebff76ec8436706c7  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
! 988fbd485660c0e9a49333e7a02782a6  gcc/rust/typecheck/rust-hir-type-check-pattern.h
! cc2566e21af67d8504f07b66a8b08632  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
! 0c8524598138cbe84fce98fc509fcd63  gcc/rust/typecheck/rust-hir-type-check-stmt.h
! 0571131974aaea6d15536857284f8c26  gcc/rust/typecheck/rust-hir-type-check-struct-field.h
! 0b8e3d415d41cf1fefc656afc28d7509  gcc/rust/typecheck/rust-hir-type-check-struct.cc
! f4b79f06b032675aab0000120fc57ebd  gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
! c766c6e78e8f2af99fcd701304c4a6f9  gcc/rust/typecheck/rust-hir-type-check-toplevel.h
! f0b943c5b67efe4443d7af9f3d65510a  gcc/rust/typecheck/rust-hir-type-check-type.cc
! a4745f72610aceb3a3b740970669e9c2  gcc/rust/typecheck/rust-hir-type-check-type.h
! 640f83203faefd01321b1f317b5fb5f2  gcc/rust/typecheck/rust-hir-type-check.cc
! cb2c4492fee3adc8b7fd5ff5ebd93944  gcc/rust/typecheck/rust-hir-type-check.h
! 871116189a418cee6d89872684f2dd96  gcc/rust/typecheck/rust-substitution-mapper.cc
! 05696bc4464c96d49aad3b7683381fa6  gcc/rust/typecheck/rust-substitution-mapper.h
! 08c766727ba6176d50723a568cdf1d8e  gcc/rust/typecheck/rust-type-util.cc
! e65ab4fc0db82367e8998156165aed03  gcc/rust/typecheck/rust-type-util.h
! 3c036c6605444001def5f88af8df755a  gcc/rust/typecheck/rust-typecheck-context.cc
! 8b7684309c0a9bc04e2bf0de2e1b7105  gcc/rust/typecheck/rust-tyty-bounds.cc
! 9be9f67ad205eaf61f6734e6c83ce8e9  gcc/rust/typecheck/rust-tyty-bounds.h
! 7c844691c3030e64aea678b2c67b7fb5  gcc/rust/typecheck/rust-tyty-call.cc
! ff9e57d8f9c91223ccbc22ef22d242ba  gcc/rust/typecheck/rust-tyty-call.h
! 2bb07fb745828388ee7c66c01565b9f5  gcc/rust/typecheck/rust-tyty-cmp.h
  a38838838003c6551067e8b34f582208  gcc/rust/typecheck/rust-tyty-region.h
! f070f5eb92be6cb98d5ab46b8d37efb5  gcc/rust/typecheck/rust-tyty-subst.cc
! ddeca56213bd62bb8fb148d0b6eed76b  gcc/rust/typecheck/rust-tyty-subst.h
! 19da09d8782813ebbe9fc0061352fbfa  gcc/rust/typecheck/rust-tyty-util.cc
! ff270a19d0ce3a509363085113e83862  gcc/rust/typecheck/rust-tyty-util.h
! 69859b7213db0965537ae86ea7704de9  gcc/rust/typecheck/rust-tyty-visitor.h
! 27e6c9fae0be0a3ee556a0cb02a6c93e  gcc/rust/typecheck/rust-tyty.cc
! 8d265100cb6679f5575c20e73caeabee  gcc/rust/typecheck/rust-tyty.h
! 51b4ea492f21dff47bf4f86948a80a85  gcc/rust/typecheck/rust-unify.cc
! 21fa1275da0496f0abcedcc1c917e35a  gcc/rust/typecheck/rust-unify.h
! 3cb8b3a38dfeff142f71ed7764e4ae36  gcc/rust/util/bi-map.h
! ff2ff13a77ee1a34262faea2f0021b92  gcc/rust/util/expected.h
! cd7d21dd3b0190cd8d17388105ecb818  gcc/rust/util/fnv-hash.h
! 80dda527295919aa895a0ebbcad60e32  gcc/rust/util/make-rust-unicode.py
! 0e368ccb3b53ba27b11681b680f6ca87  gcc/rust/util/optional.h
  28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
  11f0015cc8736c6f93529f83c406a684  gcc/rust/util/rust-abi.h
! 45de9c2e51929ed25c25fc227c810430  gcc/rust/util/rust-attribute-values.h
! a39e9ebeb1f8bcca67975b0b1cae3da2  gcc/rust/util/rust-attributes.cc
! 0ace98d0284aad6ad80d7c21e5608cc8  gcc/rust/util/rust-attributes.h
! 7dc0ed07402f905fe3e66e5536dfbb2d  gcc/rust/util/rust-base62.cc
! 8d384c710157c169963be0b3b8bd37c6  gcc/rust/util/rust-base62.h
! ab857fee7047eb700387f1623a61e7a7  gcc/rust/util/rust-buffered-queue.h
! 91685fe3fb5c903d05f1df46dfb8bbd3  gcc/rust/util/rust-canonical-path.h
! c5e3d64397366e978867b0007d51cf3d  gcc/rust/util/rust-codepoint.h
! 72cbf89dee62daf894b11f24bc1af4a4  gcc/rust/util/rust-common.h
! f554597ffd151c31cf1d0ad1ba6afa35  gcc/rust/util/rust-dir-owner.cc
! d73dd769035d251c32b335c4328c791b  gcc/rust/util/rust-dir-owner.h
! c875b24b53eceb31f7824472d8362ece  gcc/rust/util/rust-dump.h
! 2166f52e256803e11a410d92fbbaa935  gcc/rust/util/rust-hir-map.cc
! 03ce9954ac74fd4afe2b44116171f07e  gcc/rust/util/rust-hir-map.h
! 772d5d24cc1a5630ebfefcf4be82f383  gcc/rust/util/rust-identifier.h
! 8c7d6573ba05996d7f89aa060b5b83d4  gcc/rust/util/rust-inline-visitor.h
! 932c2d5262c7f55a4e27297253438490  gcc/rust/util/rust-keyword-values.cc
! 042852065c9d582e734d24cca4ee7ae0  gcc/rust/util/rust-keyword-values.h
! 0e21b6348c301d09f4d07b9adf652847  gcc/rust/util/rust-lang-item.h
! bea3116d897f84397237e34300ea80c9  gcc/rust/util/rust-make-unique.h
! 08499a8a91653d3785982bae240cb881  gcc/rust/util/rust-mapping-common.h
! 0adb2649f8da37aca07fce277c1b6eb9  gcc/rust/util/rust-operators.h
! 8c1a17b6208f0598444e38f798d99ef3  gcc/rust/util/rust-punycode.cc
! de4edd1e615afa0cb7bce863f3c30438  gcc/rust/util/rust-punycode.h
! 455bdc3031eeb71e6055d978de8aa89d  gcc/rust/util/rust-stacked-contexts.h
! ddb81f7913d52ee371d986ca5742ddc1  gcc/rust/util/rust-token-converter.cc
! 93ce188b849939e6541035f997e8c9bf  gcc/rust/util/rust-token-converter.h
! 5245f8858e3706ed13bdaf46fef33b56  gcc/rust/util/rust-unicode-data.h
! 89124b4aef4fcd20f756282d54423810  gcc/rust/util/rust-unicode.cc
! c55ec1e608c6adc0d9fbc660d86b5977  gcc/rust/util/rust-unicode.h
! 284e6c34250bef1ea80cb72e8d66fcc9  gcc/sancov.cc
! 3317f86f9d393cfc6d5ebf671cdbeede  gcc/sanitizer.def
! 83039d6209096e0f4b35fcd3a59b1db6  gcc/sanopt.cc
! 7dea7883876e03db22d0e7cad4858cdc  gcc/sbitmap.cc
! 07790a67b663e7929dfe4c3218bc3444  gcc/sbitmap.h
! ed46a3b5a8cbce6ea24fbfe98f9d1cf5  gcc/sched-deps.cc
! fc037cb9aef3382bc9501df04e326e65  gcc/sched-ebb.cc
! 53bf7fa6a46e53266c7595aa73405ec5  gcc/sched-int.h
! 80cd5e42cef700117eb75e49d9e3df8c  gcc/sched-rgn.cc
! 0f2e1df32661d94bd8561a420904327f  gcc/sel-sched-dump.cc
! 035a0aa98a5451c578f6c9d5f54c4bb5  gcc/sel-sched-dump.h
! 1cb669b1206e5b811e580faf52546d37  gcc/sel-sched-ir.cc
! 15af4647cf18325e57a191a14faded4b  gcc/sel-sched-ir.h
! a7842774b19c2563a668fd65a45eb50a  gcc/sel-sched.cc
! 797586b420ca759350516f7b7a1f4836  gcc/sel-sched.h
! 973279192c8f27407fa5c3149f0d05be  gcc/selftest-diagnostic.cc
! aac656b81689acefbf5551a3075f043a  gcc/selftest-diagnostic.h
! 820315019c1f41324f300da1d529a4b6  gcc/selftest-rtl.cc
! 437061c6872babec4fb7263b12338858  gcc/selftest-rtl.h
! 427d52cde5c62b26f2abc62c7005e0c4  gcc/selftest-run-tests.cc
! a44c96364cd718bce411970db5ed2b7c  gcc/selftest.cc
! 64ea16fbdca060cc48159fbe67389d39  gcc/selftest.h
! 36683613b1b6d02efb264b1892aed022  gcc/sese.cc
! a2a3f0e3131d38c30d76b098723bb843  gcc/sese.h
! 459fd75ccae64847a84626f184208a45  gcc/shortest-paths.h
! fc21d359b4fc285fa55e80fe983bbd5b  gcc/shrink-wrap.cc
! 75e4929caf9ee98e5f424010191d7d24  gcc/shrink-wrap.h
! 503b0b91d6b339b55981d5234b3eca3b  gcc/signop.h
! 8ebd50350fd8be68200f21d5b92f06f0  gcc/simplify-rtx.cc
! 1a91c836cefb9d33835cebbbdccf7a0e  gcc/sort.cc
! 5dc7e2d1b89bf66dfddb78245422f484  gcc/sparseset.cc
! b38d06472711d8792d14fad5fcf6a1a6  gcc/sparseset.h
! 3e52fa376d69f0895ee52663396984d3  gcc/spellcheck-tree.cc
! 2fa83279bf8beaaeb1d8d54dc0386cb8  gcc/spellcheck-tree.h
! f75ba086722bada3328f800de086f862  gcc/spellcheck.cc
! f821ffda4478c4993401e357c9797d1e  gcc/spellcheck.h
! 4fa2d925752f912f93dd6e8407ff7c26  gcc/splay-tree-utils.cc
! 6bab55b49f74d958555c5d47cccfbafa  gcc/splay-tree-utils.h
! f9509fc92bb1706682f1023abc535613  gcc/splay-tree-utils.tcc
! 17345d6ae96b80b621fb987d972b866a  gcc/sreal.cc
! f33bef53faf772e19b4e82da092d20c9  gcc/sreal.h
! a50f455a4da1c5681d83ded216699df8  gcc/ssa-iterators.h
! 0a74c2267dad12591ff2e6826d2848f3  gcc/ssa.h
! d93510bb251b5f9a6a50b05ec4b9ccc2  gcc/stack-ptr-mod.cc
! 37623f9bd5f167d8d4307ef37a646283  gcc/statistics.cc
! 8fa28fa606e2b8ccfa3f6ba31b5988d4  gcc/statistics.h
! b3e3eceb17c661e649bfbf7f2b490888  gcc/stmt.cc
! e7705887682ab75001cd90109f3c1995  gcc/stmt.h
! b5d2f1b4038d7c848bc885f2ca01c733  gcc/stor-layout.cc
! 1320e37c3710789c2f18d411226afad1  gcc/stor-layout.h
! 38dc61d7617907079af8da9c7b5a5b8c  gcc/store-motion.cc
! 870b829faca0dfb76c09e21261fbcd9a  gcc/streamer-hooks.cc
! bf3b4d465a07bffc38e03712b3aca09c  gcc/streamer-hooks.h
! 0cc51672a3f930c93f295f6dc854a98c  gcc/stringpool.cc
! 0302538ceada575620821003f56a7061  gcc/stringpool.h
! c53f389635f40db18f0f5715f52e1dcf  gcc/substring-locations.cc
! e10ed7c8a2aa060a5b876e95a93a1db5  gcc/substring-locations.h
! 3b492b0a024163eb669a907a85360026  gcc/symbol-summary.h
! ec7caf0d071a9fbde35c32276a1e026c  gcc/symtab-clones.cc
! 8d706ce514ef38809f7a93da4545e030  gcc/symtab-clones.h
! ee08df7cdb543dd77698b88c264cf150  gcc/symtab-thunks.cc
! 0ac86f977a6c301d54512f20e93fcbbe  gcc/symtab-thunks.h
! b4bd28274347fdac8fdf9c6568e69c87  gcc/symtab.cc
! 0a5032f258c19c46838a1448b977d799  gcc/sync-builtins.def
! 33180ef51b48cba7cf5b89d130b1764a  gcc/system.h
! 978099dcb9d85382343c1a58af7eb62a  gcc/target-def.h
! 1abe78cf4406a18083c6c29c5432e16d  gcc/target-globals.cc
! 0745369d6e711f2978854379f04976ae  gcc/target-globals.h
! 723cbeb0fef13514fcf066f2ce7a8b3e  gcc/target-hooks-macros.h
! 34f378d0170f55508563f1c6a566b412  gcc/target-insns.def
! 4a23ac037123152878e470fc78ed513f  gcc/target.def
! e8a9eb01b9451a357155e7152df1c669  gcc/target.h
! a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
! 51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! e65f2457e5f433c2c5aa6deaa3295482  gcc/testsuite/ChangeLog
! 862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
! 029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
! 13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
! a5de7448e557b97d2e98fd8e18e9188d  gcc/testsuite/ChangeLog-2010
! 87d5c9e9a1f84f21869245c146f88c3b  gcc/testsuite/ChangeLog-2011
  99c0ce870c05c1ceb99242bf505d50ae  gcc/testsuite/ChangeLog-2012
  92a2f7a1458900664112135670130ad5  gcc/testsuite/ChangeLog-2013
  1572fb02f16ad37c4e102f5d36d946da  gcc/testsuite/ChangeLog-2014
--- 6436,8503 ----
  b4fcb26168619862a6f0f95ba175db11  gcc/go/gofrontend/types.h
  1a87c48a17e95c935789de3db97a6ba8  gcc/go/gofrontend/unsafe.cc
  2f67448e4d59de193cdd545537d8dd20  gcc/go/gofrontend/wb.cc
! 614f0490d9c4e47b1caebcecd04b324d  gcc/go/gospec.cc
! c8bf45fde8efe08641c9932b6615f284  gcc/go/lang-specs.h
! 523a1493b5ff59d32623e9bfb2c0d36a  gcc/go/lang.opt
! de6e70a04d4bd8d0629a07dcbc6d1ec4  gcc/go/lang.opt.urls
! 398b1d230e184ae44ed6524f86bedb73  gcc/godump.cc
! b2382217b0cdd6780d4a73074019478e  gcc/graph.cc
! 24e940a08206105c7347b57a3488ca77  gcc/graph.h
! 0a17f8d61bae01b9b643880f7f2c17b2  gcc/graphds.cc
! 902cd397382b2fcd5c82b58058da5229  gcc/graphds.h
! 002cf4c101220f2b7dbe660b57c4f5d9  gcc/graphite-dependences.cc
! e60b7a14c34b20b6a3f132101d648d09  gcc/graphite-isl-ast-to-gimple.cc
! 376b25a89363d7b098a4c967db2b7b29  gcc/graphite-optimize-isl.cc
! a39be7421a418fc441f0372c3cde3777  gcc/graphite-poly.cc
! b31732d7a4fe3de8e26b483ab3a44651  gcc/graphite-scop-detection.cc
! 068f8a4c769395b6257f3b291f4d170e  gcc/graphite-sese-to-poly.cc
! 5a4c5d1ec85c7a60b7c52eecdf4e0d25  gcc/graphite.cc
! 225ab5e9b9291a8c1b81956566cd8bb7  gcc/graphite.h
! c415894565c165a5a458ae776c1a5bf3  gcc/graphviz.cc
! 2959b9ed699583e57ca24ae210c56aec  gcc/graphviz.h
! c8d4eed5e54638b86c75a8e0332077bc  gcc/gsstruct.def
! 4f9ffef63d4b3ae5c0c7cafc11816ac2  gcc/gsyms.h
! 8585d36b3917e41144ca7ee8a6b5e065  gcc/gsyslimits.h
  053ee4a84e4593c88c088f25e153d1a5  gcc/gtm-builtins.def
! 87cc9d25731e0eb84e214143403050c2  gcc/haifa-sched.cc
! fb7300a4bf6630195c6df11a0a9b4321  gcc/hard-reg-set.h
! d6e4aa327744bebf23d0737d5c4122bc  gcc/hash-map-tests.cc
! a7fb406037fcb6153b3c205f2980edde  gcc/hash-map-traits.h
! 3b1947d84bdddb973b68b5a989911bd2  gcc/hash-map.h
! 5713ef058876250c322f9dd188d4a418  gcc/hash-set-tests.cc
! 9209d46d4c1ce7527cccc6c3fe65d08d  gcc/hash-set.h
! 264b42bba77586ef50898bbc2a2c4805  gcc/hash-table.cc
! 05faf5b4c677908ea390646f27b4bcf3  gcc/hash-table.h
! e531d2d7a846b45997d9ce4da6b88cd0  gcc/hash-traits.h
! 567be238041b4ce45f03c6dbb8e40066  gcc/highlev-plugin-common.h
! 21cb792cdab3c8128e3ba3adde4c897c  gcc/hooks.cc
! c81003797329cf68441e2bed5e76c252  gcc/hooks.h
! 88f38b44d5ea3276b162d5c2a90627e0  gcc/host-default.cc
! 81180ff70e7ab751a0d3a90a29e9a832  gcc/hosthooks-def.h
! 22efb32e9073f3ce01bd24f2d4b37e9a  gcc/hosthooks.h
! 18fe61944e968427f70a2724072c1623  gcc/hw-doloop.cc
! 260dd898f6b9809f71a292b793d67324  gcc/hw-doloop.h
! 4769eb51982f8ccb12764424698b464f  gcc/hwint.cc
! 8826410aae6a5efbb3d335e5e3dceed4  gcc/hwint.h
! cbda0b9f91d4fe712bb30c630b42ef64  gcc/ifcvt.cc
! 1d252ebba03aa858df6822a8b59e1d4e  gcc/ifcvt.h
! 55413f67957a351f7ca1b0a8a2f69a7c  gcc/inchash.cc
! f380ce65b15eedb6d55a9848beb1ec3b  gcc/inchash.h
! a82ca6f10995888441918acc568477fc  gcc/incpath.cc
! 078efe9e89bf7fcd6a66cd085de2d676  gcc/incpath.h
! ab23cbe770ec47ef81d84e5377063f0f  gcc/init-regs.cc
! b3d2e0a4fdb1acc7d7c1d1222ec7077d  gcc/input.cc
! 61ec39febc0596c9836bf3c2bd87907c  gcc/input.h
! 0dc4e5a1c70a5b34153b06594dd3ae85  gcc/insn-addr.h
! eec072fb4c8277a3634cf4cdc0846598  gcc/insn-notes.def
! 769443add1b7187045688cd8b1129647  gcc/int-vector-builder.h
! b0418c0b5b0600719b633f4afcd328ea  gcc/internal-fn.cc
! 0eb0c9844fd70032778f6dc9c246eafd  gcc/internal-fn.def
! 329c266487376ce133d0e9e580fc7a58  gcc/internal-fn.h
! bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
! deb111e00b2b07aa631595045bce5003  gcc/intl.h
! 47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! b9a7757e12f8c050845e66db10081585  gcc/ipa-cp.cc
! b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
! 4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
! 2956ae29acd688fd2229744edabdc027  gcc/ipa-fnsummary.cc
! fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
! 20f61df91290c70df6eccefd8d8c642c  gcc/ipa-free-lang-data.cc
! 151286d02b3d36dcca2a63fe6ae51102  gcc/ipa-icf-gimple.cc
! 9762b96eb0bd1d2d7968b5c2f51e8f43  gcc/ipa-icf-gimple.h
! a6a6dcf1c0478515b4736894afd81c77  gcc/ipa-icf.cc
! 0d3501cfd72e947df44494b671bf9e18  gcc/ipa-icf.h
! afa2616e2d58a9137deaabc102d2d7c1  gcc/ipa-inline-analysis.cc
! 9ce4cb833371986279f26959508efbe1  gcc/ipa-inline-transform.cc
! 349113983ddd4d14064b8f5bac1b62e9  gcc/ipa-inline.cc
! 229bac80ef5400801cf4edfd97790ef8  gcc/ipa-inline.h
! 19c0cbbd70e071bd63dbb0527d02423e  gcc/ipa-locality-cloning.cc
! e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
! 5146e44af36aa042f1e1098a4e796065  gcc/ipa-modref-tree.cc
! 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
! 319746b89d79d8638999fe7b6aad58ef  gcc/ipa-polymorphic-call.cc
! 83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
! 3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
! efab6d5ed309040ea34311e2e35802fe  gcc/ipa-profile.cc
! 503dfb9e665e2a4311f44e83c522b044  gcc/ipa-prop.cc
! 769c7da3be6c74b69be2f9572626e59f  gcc/ipa-prop.h
! 1ab3b52af464e998b39403664a5ee0c4  gcc/ipa-pure-const.cc
! ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
! ee6c4ff9a86c5d0a68fa41c8da2b5c6f  gcc/ipa-ref.h
! 0562ce724bce5cf2fea47f2f0c2e0007  gcc/ipa-reference.cc
! d4930f12a999a28238b013539b631f2f  gcc/ipa-reference.h
! db3094a0c46c1db21262added5d20318  gcc/ipa-split.cc
! 9bd3fd72a1f4a6c2b89af16b25800070  gcc/ipa-sra.cc
! 59810ca6d9f512fe2332a63f844610db  gcc/ipa-strub.cc
! 7441ae66ef417a1eed323b8c98c8e589  gcc/ipa-strub.h
! 15fb2e7205c9068dc163478055d814aa  gcc/ipa-utils.cc
! 3123c1da10da09196605cf2b230afdcd  gcc/ipa-utils.h
! ee440e6aefa2af85a2a7e53c77974413  gcc/ipa-visibility.cc
! 1c6b1bd1032d2a1be3c22a87e0fb2501  gcc/ipa.cc
! c293da53973fb7a7f436f875b73a9753  gcc/ira-build.cc
! b31fd788662b22cb8047b65a9502b4fa  gcc/ira-color.cc
! a6162cabbfeb130d9e619b6dc2676776  gcc/ira-conflicts.cc
! 3191757bb3b47c4b71e2e3b2be1b60e4  gcc/ira-costs.cc
! 8f521d3747eb310bfdf4ffac2035cae9  gcc/ira-emit.cc
! 43cca7ef68de29884afbceb8e3fa19bb  gcc/ira-int.h
! 947f563def1cc07c1f6d1def7fbdf142  gcc/ira-lives.cc
! 358d566ebe4b1bbc1b0d99a8d0092d8a  gcc/ira.cc
! e02a7a08ca9acaac686d9cb897ac121b  gcc/ira.h
! 101bad313081e351312c8d42e0b24b31  gcc/is-a.h
! 4e832d29f0e621d177da3fa9c3e11b69  gcc/iterator-utils.h
! f063ea21177d8112b60143192ec0af1f  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
! 40388d7c9424c7364e6ace25461e381e  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
! 187d1e9017ba4772e2208b643e5ff6d1  gcc/jit/config-lang.in
  df53fb6b84c435b56ac2cb2727b62b27  gcc/jit/docs/Makefile
  aefe50c9e37a2e7a06545dbc6b38bbd4  gcc/jit/docs/_build/texinfo/Makefile
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial.png
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial1.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png
! a08ab945e01b5dd0f8eec5996699a75c  gcc/jit/docs/_build/texinfo/libgccjit.texi
! 14be6b0e821d44cf5f5752c6bece65bb  gcc/jit/docs/conf.py
! 15010eb47b227867bbca423ef7c6d2cf  gcc/jit/docs/cp/index.rst
! 4f36389ecd989ca1c6ae3d890190f480  gcc/jit/docs/cp/intro/index.rst
! 76f77012a337c65921c4f935469b458d  gcc/jit/docs/cp/intro/tutorial01.rst
! fae2b99e85af60c763102a25effc0cf2  gcc/jit/docs/cp/intro/tutorial02.rst
! bf3af5c7bca2b8e4ba12fd62fe571536  gcc/jit/docs/cp/intro/tutorial03.rst
! b89a32c1b8a0b86d4ced6aa6d588b005  gcc/jit/docs/cp/intro/tutorial04.rst
! a634db10c93277906e0c9a723ad6395c  gcc/jit/docs/cp/topics/asm.rst
! 8e93f3dda59057dc205c21d24ce06563  gcc/jit/docs/cp/topics/compilation.rst
! ff84b080064316bb48bc521fe65595c9  gcc/jit/docs/cp/topics/contexts.rst
! 42f9527350a86eb57dde7100e3bd54c8  gcc/jit/docs/cp/topics/expressions.rst
! b8f3620781e02a5dd8ebd40d6f32e2d4  gcc/jit/docs/cp/topics/functions.rst
! 9c553c6d4792127bfaeb1db7d2a4478f  gcc/jit/docs/cp/topics/index.rst
! 728fb4106ac5b330befa282cd8fa09ab  gcc/jit/docs/cp/topics/locations.rst
! 4bfa6315fca03fdb55f3b6ff02cd5e13  gcc/jit/docs/cp/topics/objects.rst
! 30ddf8c0770a25421f68395786d4c1ab  gcc/jit/docs/cp/topics/types.rst
  98a4c0efa41e5eb7177483e4cd99a81e  gcc/jit/docs/examples/emit-alphabet.bf
! 45e689633841d135a52aa74438e244b3  gcc/jit/docs/examples/tut01-hello-world.c
! 0264b342c484f07ee308ac4df5a3204e  gcc/jit/docs/examples/tut01-hello-world.cc
! a5c1b52c07a13ce5240a37e9a1a93f60  gcc/jit/docs/examples/tut02-square.c
! 073c87262a478a2fabdaf985da4b3e50  gcc/jit/docs/examples/tut02-square.cc
! 189189119b05c07c743da8198a089fc3  gcc/jit/docs/examples/tut03-sum-of-squares.c
! 390cba5b6749fa59e3c96939fc9aa05b  gcc/jit/docs/examples/tut03-sum-of-squares.cc
  6369d2b07520cb0fc9d14082499f6be2  gcc/jit/docs/examples/tut04-toyvm/Makefile
  999c1d2b92d5d71565c67854aad60e9c  gcc/jit/docs/examples/tut04-toyvm/factorial.toy
  efe1998ded06ac3721d9ced4d96056f0  gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy
! a499cf1a96a055c8d9a82f9b710d3191  gcc/jit/docs/examples/tut04-toyvm/toyvm.c
! 33986a09f1ed6cc17277dd1b473e39d2  gcc/jit/docs/examples/tut04-toyvm/toyvm.cc
  3cbe9daf70398730ee60aa4caf2fc200  gcc/jit/docs/examples/tut05-bf.c
! 59c6ebde6abd566ee645d09053ec2ad4  gcc/jit/docs/index.rst
! 58dc86ec51ea80bab2202dcf1b06b12f  gcc/jit/docs/internals/index.rst
  d72502d68617b68873d385bcee6e9c4b  gcc/jit/docs/internals/test-hello-world.exe.log.txt
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/intro/factorial.png
! 277ad96a41c137e7916ebfc25b6affd6  gcc/jit/docs/intro/index.rst
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/intro/sum-of-squares.png
! 64926c463936871600e0e8dee6cb2de8  gcc/jit/docs/intro/tutorial01.rst
! 8859570e1ee1d3d3c8a3fad7b9a623bc  gcc/jit/docs/intro/tutorial02.rst
! 95c0244f4d97443322168f8689db366e  gcc/jit/docs/intro/tutorial03.rst
! 714b5bdc4b983f88037beab6a5bf067a  gcc/jit/docs/intro/tutorial04.rst
! 459d2ac14df266cf6e9f4560577d93cd  gcc/jit/docs/intro/tutorial05.rst
! 9c47298a80ce11b0ec5a44a6865d01a1  gcc/jit/docs/topics/asm.rst
! b49ccbdcf50ab92d0d1c4af42a95d1b6  gcc/jit/docs/topics/compatibility.rst
! e3d057a7dbcd95241ed3612a8751c3a4  gcc/jit/docs/topics/compilation.rst
! 2ecaef37ec99aa741104fd6281d1e5bf  gcc/jit/docs/topics/contexts.rst
! 551bc9b9949af18d647bd3b9a759eead  gcc/jit/docs/topics/expressions.rst
! 1676ee49aaba42759a8c782fdd106b78  gcc/jit/docs/topics/function-pointers.rst
! dab4dd8e541f9d4c6422eb806e0bfcec  gcc/jit/docs/topics/functions.rst
! 27fa907b2501b481a19d35c5441a059d  gcc/jit/docs/topics/index.rst
! 26abcbda9aacb6b37f8c7a4653f31213  gcc/jit/docs/topics/locations.rst
! 770a03b89b33245a768643117a02362f  gcc/jit/docs/topics/objects.rst
! 7055e31ff2b8438e10a1c81fa9da98e1  gcc/jit/docs/topics/performance.rst
! fc1e7581ada3a6da480f75ac6b2b475c  gcc/jit/docs/topics/types.rst
! 023ea0f94a07612a4a9a3b9fc4a53195  gcc/jit/dummy-frontend.cc
! 76b7395b4989eb6c5e3bd7902fa470e5  gcc/jit/jit-builtins.cc
! 11f041f38ecb2e1facf846f0441467a3  gcc/jit/jit-builtins.h
! e1c3d6e61769638ca605182151b74fc4  gcc/jit/jit-common.h
! 2cd46a46000f2977ffb0f8cdcedfe27b  gcc/jit/jit-dejagnu.h
! d1ecf9f1fa6c7b403bac530b8d4536ca  gcc/jit/jit-logging.cc
! 45e3e913a08f0789f718ae5e5a0d44c6  gcc/jit/jit-logging.h
! 2b4f980caf34069ceab3005ffee109e9  gcc/jit/jit-playback.cc
! 9f258004ae27b0419c8b3e2feea5d4f3  gcc/jit/jit-playback.h
! e0a4fc4ec36c10b296bd3e4dd66259ae  gcc/jit/jit-recording.cc
! 0136c2352b4d9079f9ba133490e0014d  gcc/jit/jit-recording.h
! 76d67feccd94f3bac32d69f32462dc16  gcc/jit/jit-result.cc
! 960e50ddf361f2740cd045c219e88054  gcc/jit/jit-result.h
! 8c19c143086abda15e96970f8961d231  gcc/jit/jit-spec.cc
! ef404d216f526811757611b8c9b176a2  gcc/jit/jit-tempdir.cc
! b366e1c6e0a173c3872bb22899ef461e  gcc/jit/jit-tempdir.h
! 92ba0bcbd8aaf1c342640355c0689df4  gcc/jit/jit-w32.cc
! 186e597d0319c2cfdf7c102d931c9148  gcc/jit/jit-w32.h
! dd0f6eb04e9df630e28cdd746652fdbc  gcc/jit/libgccjit++.h
! 059abd170756e53fd1d9dea5f9faa3b4  gcc/jit/libgccjit.cc
! 559c7f6bf5b4d73ef3eaae679fc9d94d  gcc/jit/libgccjit.exports
! 41455d426e9513218de823eb74de09d1  gcc/jit/libgccjit.h
! 9ef37172089415f4956a837e8c98c5ed  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! 00b345d2dbb1730ea7764ac2bb3a9c6a  gcc/json-parsing.cc
! 81ace1f55dac7790c08a0af7205755ad  gcc/json-parsing.h
! 677d1a3279edb83da414ccb008aa4288  gcc/json.cc
! aacec8a8d9ba9f3bc7f066ea94cf81d7  gcc/json.h
! 47f18749c5685cd9ae918c4288aa5bf4  gcc/jump.cc
! 83a72f3e6c50fc5ea098d18cc8c61886  gcc/langhooks-def.h
! a3b66c94bb9836451a5a4e7e00d59aea  gcc/langhooks.cc
! 599d97bd29c2fd711d6aba59eeb21211  gcc/langhooks.h
! 75deba840ba0746416d8a7516027f7b7  gcc/late-combine.cc
! 3d90565064721a2ab3d9b441d79d85da  gcc/lazy-diagnostic-path.cc
! dc04255cb4f201884e54c46f65032e74  gcc/lazy-diagnostic-path.h
! 82e3d15b2545a4e7a7397d6396eb74fe  gcc/lcm.cc
! bdf8ae675ae5000d854fe2874116b2f8  gcc/lcm.h
! 027270d0be504f25a7efb49e1e3179bb  gcc/libfuncs.h
! 29ba18b7550c8218f7d3e899f457069e  gcc/libgdiagnostics++.h
! a9d6c3812547309e0f86b60f905232e4  gcc/libgdiagnostics.cc
! aceebd75eec9890570f948ead0434e38  gcc/libgdiagnostics.h
! 24d57ad5e22a72da4b9bea4116a4211d  gcc/libgdiagnostics.map
! b7c7acb6cf6af5e731b554054732c875  gcc/libsarifreplay.cc
! 5e320a3249f5b8b266e2c69c6282315e  gcc/libsarifreplay.h
! 5c6a6e21474ca46c652e3149d4068fe3  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
! 115df2988fa3827586282702360e4b71  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! 7bf480c85a74d6690a5657de1434aef1  gcc/lockfile.cc
! 03fdf33413400a8644c324d657debba0  gcc/lockfile.h
! f8c8e97d4dea2c5c8d278e2d5a3db8dc  gcc/logical-location.h
! ef7626e8221c409d195fdcfa019fb4cd  gcc/loop-doloop.cc
! 154eba32ec80f6804e8861149e26652c  gcc/loop-init.cc
! 6e39bd9aab94c794b8cc992d0cadd9ae  gcc/loop-invariant.cc
! d09474ac29ae534bc531b2fc2c2bd909  gcc/loop-iv.cc
! f9c64428e6259946f3584ad7aa661998  gcc/loop-unroll.cc
! 7f27c43d3045c876fd1f60e2dbdb8bb0  gcc/loop-unroll.h
! ed475e0212369987bb572e7eabb4b4d7  gcc/lower-subreg.cc
! 05bf78e6d3e36587723b1177ffcd9c6e  gcc/lower-subreg.h
! 755a196fed2cd7b5878159035d75b39b  gcc/lra-assigns.cc
! 0232e051e662ebb7fd2fa507d9c581b8  gcc/lra-coalesce.cc
! a6bf1ef46c92902beb3ec28006d6a9ff  gcc/lra-constraints.cc
! 90be6ca8eebfbeae80589ba7a895bf60  gcc/lra-eliminations.cc
! d5aab2fda62b4b8a67dcd1bfeff169f5  gcc/lra-int.h
! 9b39c90253128330d1b238b030a40fce  gcc/lra-lives.cc
! f8f8f93a11e3960a35e56fdfffdf4889  gcc/lra-remat.cc
! d5cf2fbf4d35e8e1f64d1638b2993c85  gcc/lra-spills.cc
! e5fef2ffe59f5bb8bf855af92be9ce6a  gcc/lra.cc
! f34f18b0bf45561aad0763e10bc1ecb1  gcc/lra.h
! c541f395499a535c0ea6a8bffe113196  gcc/lto-cgraph.cc
! 3c0edd5f81587bb2a1bebb7979c19aa8  gcc/lto-compress.cc
! 6081736069853cccad4e30dab7992217  gcc/lto-compress.h
! 85f4f18c0f46c0ae649aceb458fe3ed8  gcc/lto-ltrans-cache.cc
! 59c7dce256dc0c0cea1bdc845a5e487e  gcc/lto-ltrans-cache.h
! 2761a8599f5c743bf4c67dc2c3c2d347  gcc/lto-opts.cc
! 598e2e8346c0154856c5ef27e7649887  gcc/lto-section-in.cc
! f2a9985147f87fd566d4ae2dd8fceabc  gcc/lto-section-names.h
! 92ad85d667fb88ca0d727d1081d5a438  gcc/lto-section-out.cc
! 022eda68922792984b6370af859619e4  gcc/lto-streamer-in.cc
! 6949f7b0408d00da6a8fb188c3d5dcd9  gcc/lto-streamer-out.cc
! 8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
! 89440b8d71857e40c8fa12dd9aa25491  gcc/lto-streamer.h
! 8acdefc9fffd53b3f4f16af933640084  gcc/lto-wrapper.cc
! 4c5f46a1dafc2f4b9ab971a2ddc6e08d  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
! a1977e121a895c3241becf0d3e41bd3a  gcc/lto/lang-specs.h
! d93ec20c141afe4ec8419083e7e5427d  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! e9e3e1c53895933c30b602dfb27942ff  gcc/lto/lto-common.cc
! 1bbd724bce4771513f0a356074d52d51  gcc/lto/lto-common.h
! 24353553f316f6efb9d7f42253a3ec7c  gcc/lto/lto-dump.cc
! 9a5a957f50fd70274ccec05a5ac526f6  gcc/lto/lto-lang.cc
! abba0d56cf42c70d1983f247453576cd  gcc/lto/lto-object.cc
! 38c04a0ddda1a5a40c7fffc7079b0b21  gcc/lto/lto-partition.cc
! 6bdee5523aaa6e7091e15f5270e1ef9f  gcc/lto/lto-partition.h
! 1fe27a12b5a9b027b47f819c6e23ed1c  gcc/lto/lto-symtab.cc
! 37534ae509993637d7af9690433de15c  gcc/lto/lto-symtab.h
! b153638c23972a22ca31986c1b49348d  gcc/lto/lto-tree.h
! e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lto/lto.cc
! 46fbea4008689ba8af9f80d1cdce438a  gcc/lto/lto.h
! 890758104e7697865dd110259fee0af5  gcc/m2/COPYING.FDL
! b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 6a4e412cfbf0861a7aae66989af94f09  gcc/m2/ChangeLog
! 33352ea845a8d2399793299f3e58a218  gcc/m2/Make-lang.in
! 93fe99bf456561cd217f1c93d2ab7da7  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
! 5a6a545a6ba92d36f6f0fa68298c4d7d  gcc/m2/config-lang.in
  453bdaa9a532e423fb527f964f5b88d1  gcc/m2/config-make.in
  1fedeef70a344a1d73c4f25535361d16  gcc/m2/configure
! 6a2f0158f1d10f046625f0754fc39ed1  gcc/m2/configure.ac
! 9bcc200122a7c7c705ab4eace7d6daba  gcc/m2/gm2-compiler/CLexBuf.def
! a020b7778724f9773472fbcdc64655c8  gcc/m2/gm2-compiler/CLexBuf.mod
! 3b18929eb617dd115d0bb031711cf434  gcc/m2/gm2-compiler/DynamicPath.def
! 13da0e3bfbfc4188112578674de7c3de  gcc/m2/gm2-compiler/DynamicPath.mod
! c3a4ba7134ff2dc36867c352458ad71f  gcc/m2/gm2-compiler/FifoQueue.def
! 6535bd9d78c49e773720cb2167e19cfe  gcc/m2/gm2-compiler/FifoQueue.mod
! 64ee122c86e7cb39e1153284889e897f  gcc/m2/gm2-compiler/Lists.def
! b7e8471a0cbebdd6e14d9f090a2f681b  gcc/m2/gm2-compiler/Lists.mod
! 10f4c25426ceaa9804ca951e73b86e8d  gcc/m2/gm2-compiler/M2ALU.def
! 54035683070a509c7d1ce3b706faa628  gcc/m2/gm2-compiler/M2ALU.mod
! 15c2e59090e5a9c43f3ba333a4d5edc6  gcc/m2/gm2-compiler/M2AsmUtil.def
! 157cc69bdf9669f8dea26fe0d28d99ce  gcc/m2/gm2-compiler/M2AsmUtil.mod
! 5662d7b23634f353723a5b2b9ad61ae1  gcc/m2/gm2-compiler/M2Base.def
! 34739c14d3ee7cf7c08286a9a0022a49  gcc/m2/gm2-compiler/M2Base.mod
! 9bbe74980b3d3b1426ae58bcef5e737e  gcc/m2/gm2-compiler/M2BasicBlock.def
! 17bc7901a3742e1d4b5106653c300103  gcc/m2/gm2-compiler/M2BasicBlock.mod
! 39400c03b888a32af5ecb92265fbd08c  gcc/m2/gm2-compiler/M2Batch.def
! 7d7e7eb2fca83fae1a54d54a0f5795aa  gcc/m2/gm2-compiler/M2Batch.mod
! dec6f2aff29cb5fe1427242c7c5e9bd7  gcc/m2/gm2-compiler/M2Bitset.def
! 4fd8de25a94ebe3d7dc535d77d35bcf1  gcc/m2/gm2-compiler/M2Bitset.mod
! d4b939b5e1e8ebd5bbfd57a171da0768  gcc/m2/gm2-compiler/M2CaseList.def
! d7fec62c2b6b02dd7e4572d655ab9df6  gcc/m2/gm2-compiler/M2CaseList.mod
! b6a105b49f033eae03d7e9f503b92233  gcc/m2/gm2-compiler/M2Check.def
! ed6f0468d57fdf7c239cf3172aaaa33f  gcc/m2/gm2-compiler/M2Check.mod
! 478260474362f8756893377722538db4  gcc/m2/gm2-compiler/M2Code.def
! 0737ee73e0c5f6e620bab4cd1e3a96b6  gcc/m2/gm2-compiler/M2Code.mod
! 7ec6d0e1d8778b77940a35fb413cc951  gcc/m2/gm2-compiler/M2ColorString.def
! 01a6ecec3ac51d7fcc8112d095cfd2b2  gcc/m2/gm2-compiler/M2ColorString.mod
! 28e32ddcae091f46980874f0523fa028  gcc/m2/gm2-compiler/M2Comp.def
! 12e002fd4ea56637ab5c5b7d10da694a  gcc/m2/gm2-compiler/M2Comp.mod
! fb9e43e1f35780216ba6b6e360c0e264  gcc/m2/gm2-compiler/M2Const.def
! d48c136acab402fd877d833ead85eb2c  gcc/m2/gm2-compiler/M2Const.mod
! feb013504143369554b5acc90feea3b6  gcc/m2/gm2-compiler/M2Debug.def
! bf0e20ecbf824e3b6bf0ca20254dd411  gcc/m2/gm2-compiler/M2Debug.mod
! 3ae6b07cb2ab0e59b37add9f92a69f3f  gcc/m2/gm2-compiler/M2DebugStack.def
! 86135d414fb4b6407959b5259d3ea061  gcc/m2/gm2-compiler/M2DebugStack.mod
! 400cba05715e206aea049d409c27ce8c  gcc/m2/gm2-compiler/M2Defaults.def
! 2b61e9489209c1379345ecd427269bd4  gcc/m2/gm2-compiler/M2Defaults.mod
! 8096156ffab2ed7723fd5bd85968945a  gcc/m2/gm2-compiler/M2DriverOptions.def
! fb654df9d5b01b8f6938f603dd535968  gcc/m2/gm2-compiler/M2DriverOptions.mod
! 97166c0dc9b86d66390f1042e7c0cf4b  gcc/m2/gm2-compiler/M2Emit.def
! a88bada4bde294ba2d6c281460e7ec5e  gcc/m2/gm2-compiler/M2Emit.mod
! 14926412ceb494a304374da9cb6ee2f0  gcc/m2/gm2-compiler/M2Error.def
! b4e391c1ddae004fac25cedc60eb3925  gcc/m2/gm2-compiler/M2Error.mod
! f2f6ad340399124ac1dd7765e1b675a5  gcc/m2/gm2-compiler/M2EvalSym.def
! 9ef5089ff86e26a81035ec039bdc6650  gcc/m2/gm2-compiler/M2FileName.def
! 742f1dc44d1ac7917fcbaf8704bdb395  gcc/m2/gm2-compiler/M2FileName.mod
! b3c98d490dd50cdd4e4de316e0deca54  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 0334dee0562359e9a335b23e63acc113  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 3d68446acff53fae7c5d6c425f0cf67e  gcc/m2/gm2-compiler/M2GenGCC.def
! 73ed9d0b7f066f5a3b9ab81f63050868  gcc/m2/gm2-compiler/M2GenGCC.mod
! 273c623529a07acbf2f80b58e2d7567e  gcc/m2/gm2-compiler/M2Graph.def
! 4e2b3a2e0b4cc7af0785ab9e41438e6b  gcc/m2/gm2-compiler/M2Graph.mod
! 0d543e40ef3f1bcdf8edf9e06baa1edb  gcc/m2/gm2-compiler/M2LangDump.def
! 4ccd77444d1c4c6a6d41a4c0e32842cc  gcc/m2/gm2-compiler/M2LangDump.mod
! cccf272bab8c31a6af4113dc6a4e7b2d  gcc/m2/gm2-compiler/M2Lex.def
! 0b2e870715b8c61c0f2f872a91124e0f  gcc/m2/gm2-compiler/M2Lex.mod
! a45ab5cf82c6f9afcaac634dd94f9e74  gcc/m2/gm2-compiler/M2LexBuf.def
! b112f4dc73573695c3456ad0128babea  gcc/m2/gm2-compiler/M2LexBuf.mod
! d5e90638a6be76d16e254f2d49424f5a  gcc/m2/gm2-compiler/M2MetaError.def
! e0b507413bb6cd0581c5eae75886518e  gcc/m2/gm2-compiler/M2MetaError.mod
! 30199ab614068ba2ade7649d91420d13  gcc/m2/gm2-compiler/M2Optimize.def
! 6b138f381fa3bee219d0c362567bbcb0  gcc/m2/gm2-compiler/M2Optimize.mod
! d327c19316a54d8729d7a771974b9719  gcc/m2/gm2-compiler/M2Options.def
! 3014d3d6b4d606a0404fc28e9bf73ae1  gcc/m2/gm2-compiler/M2Options.mod
! d4665bec21a330a2ea9d700f430b902c  gcc/m2/gm2-compiler/M2Pass.def
! 27d906feaab7f1e1088a6e5561972605  gcc/m2/gm2-compiler/M2Pass.mod
! ba5338a3d56483c2fe43bb703d68d88a  gcc/m2/gm2-compiler/M2Preprocess.def
! ffffd6bd10c2f3d61aee939845cdb397  gcc/m2/gm2-compiler/M2Preprocess.mod
! 5aae879fe93711ac462b3871f94cfdfb  gcc/m2/gm2-compiler/M2Printf.def
! 2984233cca97a1078980faba9ae9c1c5  gcc/m2/gm2-compiler/M2Printf.mod
! 1f3929030e3dde0bd645746be5c341d3  gcc/m2/gm2-compiler/M2Quads.def
! 0f779d496c4c542ff62b01edf78fd285  gcc/m2/gm2-compiler/M2Quads.mod
! 652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
! fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
! 9f24b5a3c0b7a01ab30febbaab5884ca  gcc/m2/gm2-compiler/M2Range.def
! 3a9db6eb0e2d2ef0279668a4daba0277  gcc/m2/gm2-compiler/M2Range.mod
! 4a2f65e7c18c35e70ddd63bff56f07c8  gcc/m2/gm2-compiler/M2Reserved.def
! dbf158483e30ce2911313b80d3d6c72c  gcc/m2/gm2-compiler/M2Reserved.mod
  ed9342d46dccb1fef2e7dd1b2a268c89  gcc/m2/gm2-compiler/M2SSA.def
! 571617df0c1f7e853f00799ca60d4cd0  gcc/m2/gm2-compiler/M2SSA.mod
! f3b3204e23ba358de564e393130544a1  gcc/m2/gm2-compiler/M2Scaffold.def
! efe5b17016dc6cf4b57d2bbfd813a4f8  gcc/m2/gm2-compiler/M2Scaffold.mod
! ddc0868c3d08b37d27f164abd55990e0  gcc/m2/gm2-compiler/M2Scope.def
! 60c017ae360abf32dd56d5c5fde283ef  gcc/m2/gm2-compiler/M2Scope.mod
! 836fdc04a6d95d458b60251caf74ce1a  gcc/m2/gm2-compiler/M2Search.def
! 93f788ad5cb99aceb834a7d987e424ef  gcc/m2/gm2-compiler/M2Search.mod
! c716fec488e5ec3c78c79fc4f8e9faa4  gcc/m2/gm2-compiler/M2Size.def
! de5d55be0bb19508f67759a6f2ddb70d  gcc/m2/gm2-compiler/M2Size.mod
! 63dd764a7f6117e3e98b0e6dedc18c3b  gcc/m2/gm2-compiler/M2StackAddress.def
! f61208b1b833c0b6155c719142094137  gcc/m2/gm2-compiler/M2StackAddress.mod
! 1bd33fb5e6f93600249af03be22b3520  gcc/m2/gm2-compiler/M2StackWord.def
! d9366c8e64396b3e7db41fa619b4f74f  gcc/m2/gm2-compiler/M2StackWord.mod
! 7f7b8008a87023e5ad507a6b3afe83fd  gcc/m2/gm2-compiler/M2StateCheck.def
! b5c25551d82c953920f3ac7590cf8f2f  gcc/m2/gm2-compiler/M2StateCheck.mod
! f92590ec7ece18bdb2667599df5475c1  gcc/m2/gm2-compiler/M2Students.def
! 62636a385e4ab2847de91a30c0b1ab71  gcc/m2/gm2-compiler/M2Students.mod
! 5ba7d598cce0f234993c775fe9152a3d  gcc/m2/gm2-compiler/M2Swig.def
! 096c079b7feb8e17ededaef3bc43ab8d  gcc/m2/gm2-compiler/M2Swig.mod
! e94ff16aed659065400b9e5347ec7d46  gcc/m2/gm2-compiler/M2SymInit.def
! ea4b4ae9d2ff9437228470ab8bdda761  gcc/m2/gm2-compiler/M2SymInit.mod
! 57573d5d98a2ac1d761d648680e187e5  gcc/m2/gm2-compiler/M2System.def
! a492d30dcb9c55563fde8e6ddc9b0f23  gcc/m2/gm2-compiler/M2System.mod
! 6e0ecd84cbf1155d00d35afd80fd104f  gcc/m2/gm2-compiler/M2Version.def
! e4896d3d06dc2ebb3daf2e17603d8f40  gcc/m2/gm2-compiler/NameKey.def
! f2fd854755d8977e38b8d1a87be9cb6e  gcc/m2/gm2-compiler/NameKey.mod
! 074aa285886cb5e0d0116dcfd71ba9cf  gcc/m2/gm2-compiler/ObjectFiles.def
! 37147b5f1f916db1e737376d3498d472  gcc/m2/gm2-compiler/ObjectFiles.mod
! e985f17d1fb35f0c8a1204f78240c6f3  gcc/m2/gm2-compiler/Output.def
! 7ddd855be77c51595e83e928bec9a4ea  gcc/m2/gm2-compiler/Output.mod
! c29a9335f95f669068e909ae15059311  gcc/m2/gm2-compiler/P0SymBuild.def
! 75d5730c845b3aa2829a8cdb4f568d87  gcc/m2/gm2-compiler/P0SymBuild.mod
! 78893417cbfdb104585ba464af769887  gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
! b347f8b97c2042773c008adffe4e54d9  gcc/m2/gm2-compiler/P0SyntaxCheck.def
! 602cc39ece2e20e647562bea41cf5716  gcc/m2/gm2-compiler/P1Build.bnf
! 7f0d77f27044b69065c97e7e1f2f361b  gcc/m2/gm2-compiler/P1Build.def
! 022dddb1d109a1c84112ee601cb7e4fb  gcc/m2/gm2-compiler/P1SymBuild.def
! f84c328e57949cf1d3f9714ac54e6423  gcc/m2/gm2-compiler/P1SymBuild.mod
! 30a904cfa4fb7521224063ca4cb5db42  gcc/m2/gm2-compiler/P2Build.bnf
! 5d3aa3c32f62966992c31b5bd6fe9bdb  gcc/m2/gm2-compiler/P2Build.def
! 7d034c383eee29111871cfe944a77b96  gcc/m2/gm2-compiler/P2SymBuild.def
! 59bcfdf13f9e458685b5b91da6fc5bdb  gcc/m2/gm2-compiler/P2SymBuild.mod
! 51b57398efecd0faf40087ef1797d3d0  gcc/m2/gm2-compiler/P3Build.bnf
! 41f585d1e8e6fd1786dd36cb69cf3e82  gcc/m2/gm2-compiler/P3Build.def
! ad7a010b25f95dc012f12d3c97133a4b  gcc/m2/gm2-compiler/P3SymBuild.def
! feac1271dd2de34f953140b4b62a2c73  gcc/m2/gm2-compiler/P3SymBuild.mod
! 731c6ffb9b31221c7fee837869eff0a9  gcc/m2/gm2-compiler/PCBuild.bnf
! 428e2092f5708fd9cf986ae14771fff1  gcc/m2/gm2-compiler/PCBuild.def
! 333e3b954ec138cdfb9ac52c7fc37ee9  gcc/m2/gm2-compiler/PCSymBuild.def
! 69db265f935b32813aca3d1a08f68578  gcc/m2/gm2-compiler/PCSymBuild.mod
! 674904f1d941d249c3e960622fc886f7  gcc/m2/gm2-compiler/PHBuild.bnf
! 08361e38dfa7f065be723afaa04d8986  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
  db0fe572d275f12368c3037e218c3bd6  gcc/m2/gm2-compiler/README
! 25e8be2bf0259c769f97264249be9eea  gcc/m2/gm2-compiler/Sets.def
! 6a3f8623f341588f21b4af58e021ac04  gcc/m2/gm2-compiler/Sets.mod
! fabfc816f99fb184266e92ed4a85b7a4  gcc/m2/gm2-compiler/SymbolConversion.def
! 134ce3e4731c6306ad3c640bab2b256d  gcc/m2/gm2-compiler/SymbolConversion.mod
! 7e7c5313b631435b03f974e72c20d104  gcc/m2/gm2-compiler/SymbolKey.def
! be245258e0123a45bbd9a47e859deb50  gcc/m2/gm2-compiler/SymbolKey.mod
! bc0636ddb5133dfe6cca5d8e866a5895  gcc/m2/gm2-compiler/SymbolTable.def
! 3c73b32d216dfcf528e71ac35f4d3290  gcc/m2/gm2-compiler/SymbolTable.mod
! 4e5bbaec9cd1341e4e14b9951485e75b  gcc/m2/gm2-compiler/bnflex.def
! 34956a3ca2f84a677fbf711642452563  gcc/m2/gm2-compiler/bnflex.mod
! 3ba721399af75ed8db2b223d9947d26d  gcc/m2/gm2-compiler/cflex.def
! 2d645aec0a67c594b26e3e42ad91c20f  gcc/m2/gm2-compiler/gm2.mod
! d75f3e5a3d539a150c82ffc398c711f3  gcc/m2/gm2-compiler/gm2lcc.mod
! 81add7a8b101fd939c7e4def13ffbf0e  gcc/m2/gm2-compiler/gm2lgen.mod
! ec0cd4d39af7d4ac5d1e83804e4c7c95  gcc/m2/gm2-compiler/gm2lorder.mod
! b2e693809cf22c251676ff0c113ba9ce  gcc/m2/gm2-compiler/m2flex.def
! 15c0fe8d6fa3e1d755daed77f962e5d5  gcc/m2/gm2-compiler/ppg.mod
! 6b5f850648ba152bfe0764a08b4d0f02  gcc/m2/gm2-gcc/CDataTypes.def
  4ff5d76d706ef1de0bbdca3ebaff7877  gcc/m2/gm2-gcc/README
! 96705d39e32fdbece43fa9709b8bd0fb  gcc/m2/gm2-gcc/dynamicstrings.h
! 3d90da7ad1c376e087ba8db36a95c428  gcc/m2/gm2-gcc/gcc-consolidation.h
! b05bd43836e6e971c7709260655084d0  gcc/m2/gm2-gcc/gcctypes.def
! eccbf55f361081007d58ed797afb1a4f  gcc/m2/gm2-gcc/init.cc
! 6c9d839118c580c09ddcbcf55281e7eb  gcc/m2/gm2-gcc/init.def
! 583ccc19dfc146f1111089c52ee89f24  gcc/m2/gm2-gcc/init.h
! 94b2b062626a7c105ae38e249e59847e  gcc/m2/gm2-gcc/m2assert.cc
! 032d0a5d743cffc1b27457740d50d56f  gcc/m2/gm2-gcc/m2assert.h
! 9d106cc30391f5986f9a41de02e97525  gcc/m2/gm2-gcc/m2block.cc
! feb359721fb6257ba2bf35f3036eb912  gcc/m2/gm2-gcc/m2block.def
! 6546bdcb0f3fe4193c43f9aae400fe17  gcc/m2/gm2-gcc/m2block.h
! 0abd581bbf48e46bf790eb67ffc47ad1  gcc/m2/gm2-gcc/m2builtins.cc
! e06b3bbf4040715ab6ee88cdd17886e4  gcc/m2/gm2-gcc/m2builtins.def
! a1d688331ef6553e581189d32227a73d  gcc/m2/gm2-gcc/m2builtins.h
! bc40b3fb10e0fb263164baa828a91fd1  gcc/m2/gm2-gcc/m2color.cc
! ca132f6d8454bc4c690072b56a3d8eb8  gcc/m2/gm2-gcc/m2color.def
! 6fccaa4515b239badf614b27d2329d95  gcc/m2/gm2-gcc/m2color.h
! 796c2c893ce45917d2edf672f2dc8523  gcc/m2/gm2-gcc/m2configure.cc
! 2feab10b78c0a7841eb842c0fbbfed1a  gcc/m2/gm2-gcc/m2configure.def
! c5ae2e41b6fbe3fcdcd53a5ebc3d7a9f  gcc/m2/gm2-gcc/m2configure.h
! a3dd26cf6a94adad64f1f803ea09e62b  gcc/m2/gm2-gcc/m2convert.cc
! 2a3286aa06ccfbf2dd96f48c6efdfae8  gcc/m2/gm2-gcc/m2convert.def
! 236aa0cb74c6bee7e69693f7ff219e7e  gcc/m2/gm2-gcc/m2convert.h
! 80ba203b94d0ddd9c7c2b54a46bb5cd1  gcc/m2/gm2-gcc/m2decl.cc
! 14f166819af5708bd04099ac2d6575aa  gcc/m2/gm2-gcc/m2decl.def
! be50dca26ad2e7d1d0ce66006ce715e0  gcc/m2/gm2-gcc/m2decl.h
! 502aaa6727a66941d04fa4ebddc0701a  gcc/m2/gm2-gcc/m2except.cc
! fdd277779eb448b1f62c2f31d043a809  gcc/m2/gm2-gcc/m2except.def
! 6548a13ae86ae8f48eac4044cec66f90  gcc/m2/gm2-gcc/m2except.h
! cb45da13a7101c6b9f63499a31c77142  gcc/m2/gm2-gcc/m2expr.cc
! d77ae5a027edcf4593595afe73be800b  gcc/m2/gm2-gcc/m2expr.def
! d3b9f0202b6a0cc04b90bd4efdd4471d  gcc/m2/gm2-gcc/m2expr.h
! 3c3bbf0b28f81bc0a6bb40b29c511e8f  gcc/m2/gm2-gcc/m2langdump.h
! baf94cac8cc605d24a47a02c810f4464  gcc/m2/gm2-gcc/m2linemap.cc
! bac8f292255c366257842d90edd29842  gcc/m2/gm2-gcc/m2linemap.def
! fcea7fa814eb36ddef577d6be2c93e63  gcc/m2/gm2-gcc/m2linemap.h
! 5788cdee0acc63304e8a5005f050e8db  gcc/m2/gm2-gcc/m2misc.cc
! 421b5a035afb6002ff2a6ea75f46fb8b  gcc/m2/gm2-gcc/m2misc.def
! d1b31285582b67ba97d01e8e43b1b2d6  gcc/m2/gm2-gcc/m2misc.h
! 188c054ee4e9d54504fdcc6c5c61012f  gcc/m2/gm2-gcc/m2options.h
! fc9e0e22b8c78d20df127cd19a3d6992  gcc/m2/gm2-gcc/m2pp.cc
! bb3433f39db6f3c3cfdf3511e76c67e0  gcc/m2/gm2-gcc/m2pp.def
! 698b9ffff0556061b1385c89a3262733  gcc/m2/gm2-gcc/m2pp.h
! 4a9453d44aae46763c48dbf47f23fbaf  gcc/m2/gm2-gcc/m2range.h
! 7cbbb73af9c93a479d4665a36639b5f4  gcc/m2/gm2-gcc/m2search.h
! 2c7c2a84e8f9548d9e0cb76c3db5bef9  gcc/m2/gm2-gcc/m2statement.cc
! 7b66ac97ca0b23e969cca6f19af0f520  gcc/m2/gm2-gcc/m2statement.def
! 60036052959e405e25c1d6a4a629dc78  gcc/m2/gm2-gcc/m2statement.h
! d60a887eea920dbaf1a072abd9674cad  gcc/m2/gm2-gcc/m2top.cc
! b58a24d63148afc393a9cfaf34739d5c  gcc/m2/gm2-gcc/m2top.def
! 6a2f35c8d5bc2a38a779d7e9a221ed4a  gcc/m2/gm2-gcc/m2top.h
! 5d626a891ceca8ad9d209e1e9fa59c28  gcc/m2/gm2-gcc/m2tree.cc
! 1ae2c51d29fa8b3414a8e05ca27879c2  gcc/m2/gm2-gcc/m2tree.def
! fa235ac656c58414068acb39a450b98c  gcc/m2/gm2-gcc/m2tree.h
! 45e84cc4ad1206464eebf57d4e5e9b8f  gcc/m2/gm2-gcc/m2treelib.cc
! 916c4209d9f10f650ba7e6882a428d3a  gcc/m2/gm2-gcc/m2treelib.def
! 8784314930694945823670a2b4d7085d  gcc/m2/gm2-gcc/m2treelib.h
! bbeb8468025c6ed85f1eb7d99fd18660  gcc/m2/gm2-gcc/m2type.cc
! 651712327499570038a843c898f0f1c7  gcc/m2/gm2-gcc/m2type.def
! 7214f01ef0c4f2ea27236613dbb9349b  gcc/m2/gm2-gcc/m2type.h
! 106f1b090f7263f437e9846c550f589a  gcc/m2/gm2-gcc/rtegraph.cc
! 65065f39d7a055627ba2d372c1e9cc07  gcc/m2/gm2-gcc/rtegraph.h
! b014a5a5babb9953d9f203bf4fd10046  gcc/m2/gm2-ici/M2Emit.mod
  d5db4a0704741e24958241fe74fd007c  gcc/m2/gm2-ici/README
! 1a509083f6bbab06c5aa4fdf0bcdc613  gcc/m2/gm2-ici/m2linemap.c
! ef5415e8ad71dffb5daf39428970d577  gcc/m2/gm2-internals.texi
! 65582451d93c6fd35f508f86bf2f3258  gcc/m2/gm2-lang.cc
! 9584a98fba37e1f4209b1a26ca795ec0  gcc/m2/gm2-lang.h
  2b1d730bdeb600463475d3bb94f17f12  gcc/m2/gm2-libiberty/README
! 2293cd11c3bafff5a1517363d39a0273  gcc/m2/gm2-libiberty/choosetemp.def
! 190ec9bbdcf994a8e81b62b03c14aa06  gcc/m2/gm2-libiberty/pexecute.def
! 0fceee3eebe9a4f18bd3d9f817941253  gcc/m2/gm2-libs-ch/M2LINK.c
  62fbe07131fda60be5a71a8773c3dcd4  gcc/m2/gm2-libs-ch/README
! 21ea2dbcc4562e6402dcbc7baa457d04  gcc/m2/gm2-libs-ch/RTcodummy.c
! 92624cf9e68f843e1e85995dd731bb34  gcc/m2/gm2-libs-ch/RTintdummy.c
! c91adeae78911b564c219cfaba8637b9  gcc/m2/gm2-libs-ch/Selective.c
! 856f7dfb193e4ed2b3078b084c6f031d  gcc/m2/gm2-libs-ch/SysExceptions.c
! 0fbe158aebefc00be800a9348002bd44  gcc/m2/gm2-libs-ch/UnixArgs.cc
! ab4de4a7e5a432dd0df10eaf3f962e67  gcc/m2/gm2-libs-ch/cgetopt.c
! cb4cf07456459fece515647830a871a9  gcc/m2/gm2-libs-ch/choosetemp.c
! 24fd2463554146c15e0a948f43c8dc70  gcc/m2/gm2-libs-ch/dtoa.cc
! 8526149cbe38de7bc1057bf400821af2  gcc/m2/gm2-libs-ch/errno.c
! 4f132b6734b3452dc6f47383981f340f  gcc/m2/gm2-libs-ch/host.c
! 1e6c48fccc9c4813e0c1265dc1213be1  gcc/m2/gm2-libs-ch/ldtoa.cc
! c0c8dd7d473a09a77344db839f53678e  gcc/m2/gm2-libs-ch/m2rts.h
! 8d7c651444209107ab550e69faa2e156  gcc/m2/gm2-libs-ch/termios.c
! 01cee6b8cb7d6e8383e50c3c2b51cab8  gcc/m2/gm2-libs-ch/tools.c
! 2621d30b532c2eae412519151e877509  gcc/m2/gm2-libs-ch/wrapc.c
! 926d0714bc7eda573d1e073ea0fae6ae  gcc/m2/gm2-libs-ch/xlibc.c
! 3858ce481e7a72f49dc9ee03415ab326  gcc/m2/gm2-libs-coroutines/Executive.def
! 1cd03001e9c637c2edb4d425c55585a9  gcc/m2/gm2-libs-coroutines/Executive.mod
! 5aca4a7b0d66363223a7b1ec487a5edb  gcc/m2/gm2-libs-coroutines/KeyBoardLEDs.def
! 90335f264a0daf055e1c3adf7688f27e  gcc/m2/gm2-libs-coroutines/README.texi
! 7dc332fc2439dd1a739a659391e8c02c  gcc/m2/gm2-libs-coroutines/SYSTEM.def
! 46fefff2e723c547af6a78f1864c491d  gcc/m2/gm2-libs-coroutines/SYSTEM.mod
! b25706de842413acdfe675be2e0627e4  gcc/m2/gm2-libs-coroutines/TimerHandler.def
! 19c3d48c64d18c29b4aed096a30e6fb9  gcc/m2/gm2-libs-coroutines/TimerHandler.mod
  389f62af2918433359e5d632b9cfa7cb  gcc/m2/gm2-libs-iso/COROUTINES.def
! 088c814e053cb882a115208e240be17b  gcc/m2/gm2-libs-iso/COROUTINES.mod
  b40ce77b637c8356536cc7317b37bd15  gcc/m2/gm2-libs-iso/ChanConsts.def
! 2e2da3cd9df1e092b4102fe4e4f04452  gcc/m2/gm2-libs-iso/ChanConsts.h
! 7544c00153eb1bcfc5a1b620ddae6ef8  gcc/m2/gm2-libs-iso/ChanConsts.mod
  26d4fa17c751999369c175e64f4db462  gcc/m2/gm2-libs-iso/CharClass.def
! f0e10860e423116ce920e6a38cd2f4d5  gcc/m2/gm2-libs-iso/CharClass.mod
! d9867e2d62aed88efb885a71671ab380  gcc/m2/gm2-libs-iso/ClientSocket.def
! 173e5a1c7a40d6c6ca3a5986f76425a9  gcc/m2/gm2-libs-iso/ClientSocket.mod
  7e412d2d4dd38bc7acae6ef37f58a343  gcc/m2/gm2-libs-iso/ComplexMath.def
! 219a07f20c1913778bc37cb52cbafe46  gcc/m2/gm2-libs-iso/ComplexMath.mod
! b2ebf41673686bb6b3800e7e8a6582f6  gcc/m2/gm2-libs-iso/ConvStringLong.def
! 55f213342aa2e844ccb7b7d924adbaa1  gcc/m2/gm2-libs-iso/ConvStringLong.mod
! 2f4e3f7e94da859111cd8c263a7aa290  gcc/m2/gm2-libs-iso/ConvStringReal.def
! 9f05bdea89f9df280655ccb4a010f1d0  gcc/m2/gm2-libs-iso/ConvStringReal.mod
! 71638907d53bab83316ddf5a28ae72e4  gcc/m2/gm2-libs-iso/ConvStringShort.def
! cbdb9d03ab811e8136062e2c76ea9108  gcc/m2/gm2-libs-iso/ConvStringShort.mod
  b61783ff6abc22b746e6979c0bcee2dd  gcc/m2/gm2-libs-iso/ConvTypes.def
! f6fc10f5579cc31d9f2fb77bcabdda29  gcc/m2/gm2-libs-iso/ConvTypes.mod
  06b39eaf4e88d493000c7360c310ba97  gcc/m2/gm2-libs-iso/EXCEPTIONS.def
! 937014e99c54b1b4a973e0002077a7ce  gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
! 257dffcc317cf3059f97d63dcd2d9abc  gcc/m2/gm2-libs-iso/ErrnoCategory.def
  c9c5e6e4fbd4b365b1738fb97167c772  gcc/m2/gm2-libs-iso/GeneralUserExceptions.def
! 27e57c815545197925f9000c5be148ab  gcc/m2/gm2-libs-iso/GeneralUserExceptions.mod
  3be4b03912f03e5164671e278a4ba6a1  gcc/m2/gm2-libs-iso/IOChan.def
! d7d18b9eb960d97c1a449517b186fe0b  gcc/m2/gm2-libs-iso/IOChan.mod
  58b81b1b97143b27dfd3d5c225da285c  gcc/m2/gm2-libs-iso/IOConsts.def
! ac7a7f55d14feeed5dab02f4d5f434a3  gcc/m2/gm2-libs-iso/IOConsts.mod
  3d1e4b84b179c15fe8b1fc60b7d46e6c  gcc/m2/gm2-libs-iso/IOLink.def
! 69ca8b0e5d188c23fb7c4b008588660f  gcc/m2/gm2-libs-iso/IOLink.mod
  e5ea2ed3bf2ca24aeda732fb92f74111  gcc/m2/gm2-libs-iso/IOResult.def
! ed4e198b2f04fb3b549b3cfe833e03e7  gcc/m2/gm2-libs-iso/IOResult.mod
  5c708f49fa403c8243782ec5145e99ca  gcc/m2/gm2-libs-iso/LongComplexMath.def
! f9b3322d00724f1a7d9b84b52aa441a4  gcc/m2/gm2-libs-iso/LongComplexMath.mod
  018ee564b5b6d66051cf2ee4c7aea2fc  gcc/m2/gm2-libs-iso/LongConv.def
! bb168bf71dc6972ff52af6ff2f92d546  gcc/m2/gm2-libs-iso/LongConv.mod
  4869ce48d2aff46481adb5534764774b  gcc/m2/gm2-libs-iso/LongIO.def
  abea376c60e1845bb9f186162416397f  gcc/m2/gm2-libs-iso/LongIO.mod
  33a10b599c8fdf13d8d4e1b9b4a2ffc3  gcc/m2/gm2-libs-iso/LongMath.def
! 78a31e51bc086c91d7b86c691aaa14ba  gcc/m2/gm2-libs-iso/LongMath.mod
  8ad351822e38056538ef1e9efe8b5cac  gcc/m2/gm2-libs-iso/LongStr.def
! ccffdbbce1950e746d3047dc391ff54f  gcc/m2/gm2-libs-iso/LongStr.mod
! 579fb6e56a5ec17da3cec4363e62aab5  gcc/m2/gm2-libs-iso/LongWholeIO.def
! 5a9f3cd0ba2a2872446752e3e567cc7d  gcc/m2/gm2-libs-iso/LongWholeIO.mod
  34685287385135c3fbaa60ba1d894854  gcc/m2/gm2-libs-iso/LowLong.def
! 729f01763bba56604b66461b8f7492ac  gcc/m2/gm2-libs-iso/LowLong.mod
  78be5cf8b1f715e70e0c61838c761d10  gcc/m2/gm2-libs-iso/LowReal.def
! 9fe357e86b2fec1c3fbbe55f5882952c  gcc/m2/gm2-libs-iso/LowReal.mod
! 5c5d31d08731855fd5bca67b2b428dff  gcc/m2/gm2-libs-iso/LowShort.def
! 1936cb60fb0028457fe1e70a81569cf5  gcc/m2/gm2-libs-iso/LowShort.mod
  e23b19886a6564119fe2b28e7d21f270  gcc/m2/gm2-libs-iso/M2EXCEPTION.def
! 180e12ea90e1542ad99a96da4fa11282  gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
! 8ed9d6d590dd76c43f6ce41cba77689b  gcc/m2/gm2-libs-iso/M2RTS.def
! 15c44e471a944bcd895f1926bb1f1995  gcc/m2/gm2-libs-iso/M2RTS.mod
! c020eb1b0c4bdcf08858b87ddbef2195  gcc/m2/gm2-libs-iso/MemStream.def
! 765b9e2fb82d7365d27c170eae24d0cb  gcc/m2/gm2-libs-iso/MemStream.mod
! caed20667a6914a56014df7d806766b2  gcc/m2/gm2-libs-iso/Preemptive.def
! 400b01bdb4d379608f43249c59f1bbe4  gcc/m2/gm2-libs-iso/Preemptive.mod
  617142b6611a41ce58eb9ae27d709342  gcc/m2/gm2-libs-iso/Processes.def
! d5e8b849fb0c9abb875833136d7a23a3  gcc/m2/gm2-libs-iso/Processes.mod
  f99d0ab4d95b7c909aebc4eee8923beb  gcc/m2/gm2-libs-iso/ProgramArgs.def
! 083ca95676d95e1fb22909e67c3a4357  gcc/m2/gm2-libs-iso/ProgramArgs.mod
! cce4d4e7c7bd8a9210c1d029891bb400  gcc/m2/gm2-libs-iso/README.texi
! d6f415b69ed3632737742f42dd28af31  gcc/m2/gm2-libs-iso/RTco.def
! f4f35b47bd22bfe8755276ea1611265d  gcc/m2/gm2-libs-iso/RTdata.def
! d808e05b72417800e82a0bb3e9f75fc7  gcc/m2/gm2-libs-iso/RTdata.mod
! 7f9b629b49fe915c8be7390d9196849d  gcc/m2/gm2-libs-iso/RTentity.def
! ff01cffc1bd168452469f4b8d458310b  gcc/m2/gm2-libs-iso/RTentity.mod
! ef6407dbcb1269b777b2b813f33dd3a6  gcc/m2/gm2-libs-iso/RTfio.def
! 6660d05c150cea952d3c89ce619acb91  gcc/m2/gm2-libs-iso/RTfio.mod
! 8ecccf0ac5501ff6ddafd5f56c793a6e  gcc/m2/gm2-libs-iso/RTgen.def
! bc8293e526087a29cc81bd940976d506  gcc/m2/gm2-libs-iso/RTgen.mod
! 19081325943d8b0f74c76812b1e04281  gcc/m2/gm2-libs-iso/RTgenif.def
! 3df3980b62bfff4b5bbee6ca6b27c77e  gcc/m2/gm2-libs-iso/RTgenif.mod
! 5fa7eb076a467749db312ac581d31423  gcc/m2/gm2-libs-iso/RTio.def
! b12f00ed465e9c1051e1063d380fb6d1  gcc/m2/gm2-libs-iso/RTio.mod
! 3e21c5f0f000373aff1857e4546adf2d  gcc/m2/gm2-libs-iso/RandomNumber.def
! b97eb49b43f06c9a96021351594eba9a  gcc/m2/gm2-libs-iso/RandomNumber.mod
  40277b3de34e1a5d9df0b7cc45c14d15  gcc/m2/gm2-libs-iso/RawIO.def
! a4d197c9f11f4f1cce7879c80fa71214  gcc/m2/gm2-libs-iso/RawIO.mod
  df153efe4a594ad9e9d8cca8b83c8df2  gcc/m2/gm2-libs-iso/RealConv.def
! adb1ab3a72f1c42d1412a42188b96ab4  gcc/m2/gm2-libs-iso/RealConv.mod
  eba391eef02297c03d7a651d6073fc82  gcc/m2/gm2-libs-iso/RealIO.def
  948d3d2843eb776e02815d6723d53952  gcc/m2/gm2-libs-iso/RealIO.mod
  26b3c4e00ec2554e4506a35049bc3f0c  gcc/m2/gm2-libs-iso/RealMath.def
! d70e63905b162215452a8c678230fd49  gcc/m2/gm2-libs-iso/RealMath.mod
  a97765c0f82b53bb50acb8e67e5374e6  gcc/m2/gm2-libs-iso/RealStr.def
! dfa16137c9f90fbb628ee063a2728449  gcc/m2/gm2-libs-iso/RealStr.mod
  44b3b908b90d74d002a06bfb54262671  gcc/m2/gm2-libs-iso/RndFile.def
! 525d030dfa53ee9dd213d9581b7128d5  gcc/m2/gm2-libs-iso/RndFile.mod
  227a83f272114ad4e64c8f3c9ef346fd  gcc/m2/gm2-libs-iso/SIOResult.def
! 6da0b7de60fa38afbc165b09291e6d88  gcc/m2/gm2-libs-iso/SIOResult.mod
  fd1983de497a0e10765806998b96e7a1  gcc/m2/gm2-libs-iso/SLongIO.def
! 731dbfd3a7f93dba0140847583fa4328  gcc/m2/gm2-libs-iso/SLongIO.mod
! 81d37b5d18ec88c6f9277745d331b117  gcc/m2/gm2-libs-iso/SLongWholeIO.def
! 215362ed5f0e825231447da67b361d68  gcc/m2/gm2-libs-iso/SLongWholeIO.mod
  5d7062666ffc5c5db7890b0b53f21387  gcc/m2/gm2-libs-iso/SRawIO.def
! c25f01a60aae6d7e2ef7060b35fcfdab  gcc/m2/gm2-libs-iso/SRawIO.mod
  29dc788abe06750b87ad7f8c7605ddad  gcc/m2/gm2-libs-iso/SRealIO.def
! 1effd226ffe37f7a5e1150b2b9d95f6a  gcc/m2/gm2-libs-iso/SRealIO.mod
! facce2bbf92078577aa9c5f36e3a7b1b  gcc/m2/gm2-libs-iso/SShortIO.def
! d93a19cb9be26d9e390162cd1c65e6c0  gcc/m2/gm2-libs-iso/SShortIO.mod
! 40607e69bc2dbb259f7da5204768d456  gcc/m2/gm2-libs-iso/SShortWholeIO.def
! 707bb8a757791dad96788be14646ac69  gcc/m2/gm2-libs-iso/SShortWholeIO.mod
  037039b67d035c6da1fe676b93e98273  gcc/m2/gm2-libs-iso/STextIO.def
! ede8d6839e7701b3a97f79398c90a480  gcc/m2/gm2-libs-iso/STextIO.mod
  4806b44e4a85776e1d5015f2013974a3  gcc/m2/gm2-libs-iso/SWholeIO.def
! d77130cfcc51dcf9a5bb3f81378af542  gcc/m2/gm2-libs-iso/SWholeIO.mod
! f7403e44acd1f85bc5537c14efb61531  gcc/m2/gm2-libs-iso/SYSTEM.def
! a73cd434dee7ae7fc6fbcef01582faaa  gcc/m2/gm2-libs-iso/SYSTEM.mod
  cb047c38f5ef851681b19de3902ffebe  gcc/m2/gm2-libs-iso/Semaphores.def
! 0d96e3c03b075c4173ab26f074d34329  gcc/m2/gm2-libs-iso/Semaphores.mod
  0123a3eb7dc065b38800f7157f415c27  gcc/m2/gm2-libs-iso/SeqFile.def
! 1cca7e951316d135630ba679e42de4eb  gcc/m2/gm2-libs-iso/SeqFile.mod
! f2b7f3015c2dbd25c6cefa5fbc2b2314  gcc/m2/gm2-libs-iso/ShortComplexMath.def
! 156ed7cb74dca60316ab435b06faa497  gcc/m2/gm2-libs-iso/ShortComplexMath.mod
! c4bc9fb38568bbe0020130621d9518a0  gcc/m2/gm2-libs-iso/ShortConv.def
! eece8a8092243b290b0116286060a712  gcc/m2/gm2-libs-iso/ShortConv.mod
! f7946ac34ba987a487217bcd157464fe  gcc/m2/gm2-libs-iso/ShortIO.def
! 289ccdb388443d01d958f10eb587bff8  gcc/m2/gm2-libs-iso/ShortIO.mod
! c12b560db4b23b394547798420053174  gcc/m2/gm2-libs-iso/ShortMath.def
! bcf115a01cf5a03869088638cb0b845f  gcc/m2/gm2-libs-iso/ShortMath.mod
! 88343aebd8175f30d23fbfabbe454fc5  gcc/m2/gm2-libs-iso/ShortStr.def
! e03947676c381fd63e18de7bc3d6dcba  gcc/m2/gm2-libs-iso/ShortStr.mod
! 62549a2f579b7f4a0e81b05f5846820a  gcc/m2/gm2-libs-iso/ShortWholeIO.def
! 160ae3d97d66b849deaa6eeb78f2ffe9  gcc/m2/gm2-libs-iso/ShortWholeIO.mod
! 42a352980968ab01833d8e104c743331  gcc/m2/gm2-libs-iso/SimpleCipher.def
! 25e3e18b91ba50ce3d4a650e9d101e01  gcc/m2/gm2-libs-iso/SimpleCipher.mod
  8b8a01b2a2ce71ef914ac2c6cc8c3b75  gcc/m2/gm2-libs-iso/StdChans.def
! ac39e34312d3a46f826ee6b545336d9c  gcc/m2/gm2-libs-iso/StdChans.mod
  e2ce5b09829edfcec26970649d78d4dc  gcc/m2/gm2-libs-iso/Storage.def
! 319cde4fb3b699a5d5e279d0a26e5d6c  gcc/m2/gm2-libs-iso/Storage.mod
  be819007a2908ba602c8757b5d53a335  gcc/m2/gm2-libs-iso/StreamFile.def
! 2ddf8a48846f33a5bf11b13bb69c7a13  gcc/m2/gm2-libs-iso/StreamFile.mod
! 11fdae0703cb3d72ade2a9475b5e2344  gcc/m2/gm2-libs-iso/StringChan.def
! 940449b86facdbd3eee6ba263fa6f076  gcc/m2/gm2-libs-iso/StringChan.mod
  8f11555f792697e6e70bdabf60c96447  gcc/m2/gm2-libs-iso/Strings.def
! b30d455d287df479ff21cfe8856ea633  gcc/m2/gm2-libs-iso/Strings.mod
  decb080d52ed383b759f5da725dcc91f  gcc/m2/gm2-libs-iso/SysClock.def
! d45bb8df4cd9219b9977a4b41b9de3f3  gcc/m2/gm2-libs-iso/SysClock.mod
  62d31afe6dbffd3c51bcaa5af7575bcd  gcc/m2/gm2-libs-iso/TERMINATION.def
! 9fb590afb08d08bbfe5035816214c44a  gcc/m2/gm2-libs-iso/TERMINATION.mod
  665eef372cb297013ff37bc80a4eb66d  gcc/m2/gm2-libs-iso/TermFile.def
! e9a6d9358fda24424f1dda7820550b7d  gcc/m2/gm2-libs-iso/TermFile.mod
  3e80217d87e3e0aa014739829f7cc23a  gcc/m2/gm2-libs-iso/TextIO.def
! dc5c5c8d8bdff442f4eff20f593e8ce4  gcc/m2/gm2-libs-iso/TextIO.mod
! d70fc3b08c774a1ec1c44838c0516f68  gcc/m2/gm2-libs-iso/TextUtil.def
! eaa68cb067beeb3cc43c1dd31fc723fd  gcc/m2/gm2-libs-iso/TextUtil.mod
  63a72ee284f83e558fb34e32fe4cc1fb  gcc/m2/gm2-libs-iso/WholeConv.def
! e6fd8f518f2a892fc77e6a9f85b0b181  gcc/m2/gm2-libs-iso/WholeConv.mod
  108023618e22cb8631ac14d0bf21510a  gcc/m2/gm2-libs-iso/WholeIO.def
! d16e58cbd0f1e0cb9a1f486d2f2e570b  gcc/m2/gm2-libs-iso/WholeIO.mod
  a27fdd32dbd31b2e992eceaf29b2fe76  gcc/m2/gm2-libs-iso/WholeStr.def
! 1ac4c7e719c418dda8569f987da5ab58  gcc/m2/gm2-libs-iso/WholeStr.mod
! afe572209fc29895589d6dfc9676931c  gcc/m2/gm2-libs-iso/wrapclock.def
! 7b4ee85f7574c08c9fb6eda4fba3af57  gcc/m2/gm2-libs-iso/wrapsock.def
! 9f8a1088283e652aab9cde27a826785c  gcc/m2/gm2-libs-iso/wraptime.def
! 76ae5d888e678f9430a039a05154cbdb  gcc/m2/gm2-libs-log/BitBlockOps.def
! fa91c8d80f67080058ac849f6c4757d6  gcc/m2/gm2-libs-log/BitBlockOps.mod
! 77e7f3b1440407c57adbeec9afb1ea3d  gcc/m2/gm2-libs-log/BitByteOps.def
! 318167acc355a15db78e95606d0973a9  gcc/m2/gm2-libs-log/BitByteOps.mod
! 9673424c0d272a97d9345caad4eb49d0  gcc/m2/gm2-libs-log/BitWordOps.def
! e18bbba5757fe23ce990db3c930e8f84  gcc/m2/gm2-libs-log/BitWordOps.mod
! 7c9450e6829b2f6b514c900ecb2033dd  gcc/m2/gm2-libs-log/BlockOps.def
! ee2be6729648df52faeeaa490f288573  gcc/m2/gm2-libs-log/BlockOps.mod
! 60ff6a72bb9635886b72dfeed8a426ff  gcc/m2/gm2-libs-log/Break.c
! 6ebf9193fae8bd24f5757f20b3fd8c4d  gcc/m2/gm2-libs-log/Break.def
! 9ec920b6a744c5e32236f31042915a02  gcc/m2/gm2-libs-log/CardinalIO.def
! b06b08fa96c4afbd48e783012c546533  gcc/m2/gm2-libs-log/CardinalIO.mod
! 29c96832a58d57d71d9b5d9603146a42  gcc/m2/gm2-libs-log/Conversions.def
! 7b781bf0f9c7bdf4e8d29d584ec07f22  gcc/m2/gm2-libs-log/Conversions.mod
! 397552b96e102adc1a456fc4892b5f5f  gcc/m2/gm2-libs-log/DebugPMD.def
! b9983a019df97168689146e597e45d78  gcc/m2/gm2-libs-log/DebugPMD.mod
! 80dfab2822fa2b039840d2bab28c1099  gcc/m2/gm2-libs-log/DebugTrace.def
! 7be9ba58f6a7fdb91f83072c6c1f0413  gcc/m2/gm2-libs-log/DebugTrace.mod
! 1abbf5edbc4361cf8cd026f0a0fde443  gcc/m2/gm2-libs-log/Delay.def
! a350794ca4c4b323746571b0e676afb6  gcc/m2/gm2-libs-log/Delay.mod
! 56094b5a7ded75eb87ef476acffe8fe5  gcc/m2/gm2-libs-log/Display.def
! f4373a75a461ec7946606dc749454355  gcc/m2/gm2-libs-log/Display.mod
! 5e3e5af0b038ce4ac3ec8d8b92443fdc  gcc/m2/gm2-libs-log/ErrorCode.def
! bcf0466406e2a958f390256fcdb71e90  gcc/m2/gm2-libs-log/ErrorCode.mod
! 2a53ad0bf4ea1e72f00894c372143abd  gcc/m2/gm2-libs-log/FileSystem.def
! 89d69db340acfcc76ec092c2522fc138  gcc/m2/gm2-libs-log/FileSystem.mod
! 8d73e14ade71f4eb2157891f0240fbdb  gcc/m2/gm2-libs-log/FloatingUtilities.def
! c8b643a1644e7213a7a9168f372236e0  gcc/m2/gm2-libs-log/FloatingUtilities.mod
! 54b70a547bf2038b6a26f37ac5a132d4  gcc/m2/gm2-libs-log/InOut.def
! df6d092b094b6bf779c6dce71e8f2ca8  gcc/m2/gm2-libs-log/InOut.mod
! a03e7ac626c4153628f9a55ff67b1414  gcc/m2/gm2-libs-log/Keyboard.def
! 5c23f823ba8713af6603b6786ded29c3  gcc/m2/gm2-libs-log/Keyboard.mod
! 4ca2609946edd2a99dffa88148791946  gcc/m2/gm2-libs-log/LongIO.def
! 8c076480c8f8dc2ed814fbee8c7eb94e  gcc/m2/gm2-libs-log/LongIO.mod
! c81be378ceea4873c2d128a94828d1b5  gcc/m2/gm2-libs-log/NumberConversion.def
! 6aec706d3ebb17006d1cdab16f61d882  gcc/m2/gm2-libs-log/NumberConversion.mod
! 1184b853d16bef07d10160ec0714aa75  gcc/m2/gm2-libs-log/README.texi
! 2010be4d5bec48007ce0492688f7288c  gcc/m2/gm2-libs-log/Random.def
! 55cbaac71cd08eb962c05815d877b3d5  gcc/m2/gm2-libs-log/Random.mod
! dbd2f1220cd00cb166d430e11003798c  gcc/m2/gm2-libs-log/RealConversions.def
! 856bb5f6b8f838bb3b97497fe621a6cc  gcc/m2/gm2-libs-log/RealConversions.mod
! 4f74af695bdb36d6459b399529d1d885  gcc/m2/gm2-libs-log/RealInOut.def
! ce44025754e0820981b9e02283f5870e  gcc/m2/gm2-libs-log/RealInOut.mod
! fe1be55a46a939f7a405a22881b0f687  gcc/m2/gm2-libs-log/Strings.def
! db1694f61023246efd23d237eb996c21  gcc/m2/gm2-libs-log/Strings.mod
! 1d939ca3cbaea49fa509701d1d4b8939  gcc/m2/gm2-libs-log/Termbase.def
! 63ff4644bc359f6d9109230a394d407c  gcc/m2/gm2-libs-log/Termbase.mod
! 42b80fc3e8510dee78249d5e7a87c6db  gcc/m2/gm2-libs-log/Terminal.def
! 0ab8259816f541811c2b3a9bbf621e6b  gcc/m2/gm2-libs-log/Terminal.mod
! 99ccef1b5a16a9fefce95ecfb7335c83  gcc/m2/gm2-libs-log/TimeDate.def
! 31b7741f6b9d873e7529d682cda5ca88  gcc/m2/gm2-libs-log/TimeDate.mod
! e17c46c0ed39c1969d80df24f5774429  gcc/m2/gm2-libs-min/M2RTS.def
! 7b1688fd64db8ac6d509107aef6edbe5  gcc/m2/gm2-libs-min/M2RTS.mod
! bdf8e4e5301538b72767dc22581f3f7f  gcc/m2/gm2-libs-min/SYSTEM.def
! 4a2d9a87b99d093e73909811facfba11  gcc/m2/gm2-libs-min/SYSTEM.mod
! 6066eff2e23b028b779eab8f65a6cdb8  gcc/m2/gm2-libs-min/libc.c
! 28dd7c1333503f47c1b34cbbedb9bd6c  gcc/m2/gm2-libs-min/libc.def
! 0c0b70f740fb2aa15f3cd8ffa440bcad  gcc/m2/gm2-libs/ASCII.def
! 8029a2f255a54f322fdd3b21c36b55f7  gcc/m2/gm2-libs/ASCII.mod
! 68badbf0d3b417721274234d3a599134  gcc/m2/gm2-libs/Args.def
! 6674b91b7efccfe718cf02d990cf3842  gcc/m2/gm2-libs/Args.mod
! a37e5033c9855d1bb38d116cdbe12c15  gcc/m2/gm2-libs/Assertion.def
! aaf3e76436ae06a23600b884df25b479  gcc/m2/gm2-libs/Assertion.mod
! 817f607f50dbc5cf31dec9c32c57d162  gcc/m2/gm2-libs/Break.def
! 0279b6197a1ac8020581bf9617f096c1  gcc/m2/gm2-libs/Break.mod
! 9b18ce2868838c9ac24c173a65f40025  gcc/m2/gm2-libs/Builtins.def
! 2e88c6b3000b5a048142be3323428a9a  gcc/m2/gm2-libs/Builtins.mod
! 093dac02bcfff5dad90c7fceeb93b9d4  gcc/m2/gm2-libs/COROUTINES.def
! 0855cc9b09be34165c84ebe153d5ce0c  gcc/m2/gm2-libs/COROUTINES.mod
! 18d09b4740fb69fea7773f675cc1053d  gcc/m2/gm2-libs/CmdArgs.def
! 90350450d5ec99f0fceb70afcf1a390b  gcc/m2/gm2-libs/CmdArgs.mod
! 1a1f44edc54bfca4aec3f56132670912  gcc/m2/gm2-libs/Debug.def
! d175b1db289f761bef82985010501b08  gcc/m2/gm2-libs/Debug.mod
! 7f42c6b840807a2a9a2cf6d4e2186b18  gcc/m2/gm2-libs/DynamicStrings.def
! d6f94e02e9940d96ad9edcbb3b371f49  gcc/m2/gm2-libs/DynamicStrings.mod
! 336f00218f5e3fff779dccd2a615fa63  gcc/m2/gm2-libs/Environment.def
! 0dde314513020c8101bae6227dc7d4d4  gcc/m2/gm2-libs/Environment.mod
! 34fadb2b6843988e6914d1436e56f4fc  gcc/m2/gm2-libs/FIO.def
! 861b03d675f63653f159204dafbc300f  gcc/m2/gm2-libs/FIO.mod
! 972105c4bd1196ec3fe7f29c84965fb1  gcc/m2/gm2-libs/FormatStrings.def
! d14c8722367f5ef04632449232d6c826  gcc/m2/gm2-libs/FormatStrings.mod
! 41a0e4587ebf7b17402d7378e43a4855  gcc/m2/gm2-libs/FpuIO.def
! b3b9dddea44117df3232749138fef447  gcc/m2/gm2-libs/FpuIO.mod
! 6aa9e97385611e8fe75b90afaefad0d3  gcc/m2/gm2-libs/GetOpt.def
! 2d10057ef912c0097ed5b7caa1376a5f  gcc/m2/gm2-libs/GetOpt.mod
! cd8588baa720ceec229059679f097108  gcc/m2/gm2-libs/IO.def
! 1255e498f82c1201416da43642ea4f47  gcc/m2/gm2-libs/IO.mod
! 04cf4f1e8b54963995b61d969abfe3a9  gcc/m2/gm2-libs/Indexing.def
! 3a129c9c44f637fcff8256ca25a2c66e  gcc/m2/gm2-libs/Indexing.mod
! c87083822a1056feabc55c3fe6091eb2  gcc/m2/gm2-libs/LMathLib0.def
! c7eadbee0c5ae61a47b11bbb7c04941d  gcc/m2/gm2-libs/LMathLib0.mod
! 34ca9c0fd85e47129a60298d28c3f566  gcc/m2/gm2-libs/LegacyReal.def
! 2ea1fe7241596cbea1783a474b980ef5  gcc/m2/gm2-libs/LegacyReal.mod
! 3d47773d0b2a2e842bc90ce1817ec304  gcc/m2/gm2-libs/M2Dependent.def
! 3c65d10228392609f0596c9f655c18aa  gcc/m2/gm2-libs/M2Dependent.mod
! 503afc422ba450b5d8f2bdb4b84b9ada  gcc/m2/gm2-libs/M2EXCEPTION.def
! 8f10171e5a0b0d8546348cb398a55250  gcc/m2/gm2-libs/M2EXCEPTION.mod
! 8cd96743ee1f96df6f01c98df07854c3  gcc/m2/gm2-libs/M2RTS.def
! 12f5ce990d5817b569dc48a1a3d2d37e  gcc/m2/gm2-libs/M2RTS.mod
! 155b41f4ed2007e7f7eeb0df24463acf  gcc/m2/gm2-libs/MathLib0.def
! 63e6da5131bf3d13607e44ee6bbc8d7f  gcc/m2/gm2-libs/MathLib0.mod
! 1bbc3b5736417a1af5f0935364cf08dc  gcc/m2/gm2-libs/MemUtils.def
! 7cc0fc96180eee4338490b2ae05ba492  gcc/m2/gm2-libs/MemUtils.mod
! af7d03f9b5e9c287407ce5df45bebff8  gcc/m2/gm2-libs/NumberIO.def
! 75da06d6dd5ea30f4b395aee9829ae84  gcc/m2/gm2-libs/NumberIO.mod
! 6f4cf0e99c1f2edc9d047340352c61fd  gcc/m2/gm2-libs/OptLib.def
! 096bd4feda47bceee3b555860c9f0dcd  gcc/m2/gm2-libs/OptLib.mod
! 17fe26a1692ef936537615dc2e920305  gcc/m2/gm2-libs/PushBackInput.def
! 3979fe00b08c1e992ff3213a2b7117ea  gcc/m2/gm2-libs/PushBackInput.mod
! 06ba23ad7d9e1e257403fcc4a3a6d815  gcc/m2/gm2-libs/README.texi
! fa51ac66f3ed3fc9d0a9d1dccd21c174  gcc/m2/gm2-libs/RTExceptions.def
! e2c6c079ea5fa69ed7245873a18dfa46  gcc/m2/gm2-libs/RTExceptions.mod
! bcd704d1f3bb20f33fab2069701a2881  gcc/m2/gm2-libs/RTint.def
! a6d6c0a9aa2a967919b23aba657e7163  gcc/m2/gm2-libs/RTint.mod
! f023004475099399a5c7ca0b330eb586  gcc/m2/gm2-libs/SArgs.def
! 98f9b83c24feb19c25bbe8d2e0d79711  gcc/m2/gm2-libs/SArgs.mod
! afec185c1e66724107d47726d26f3ac8  gcc/m2/gm2-libs/SCmdArgs.def
! bd66d44a1bb8a99631155e33ed5ea8cb  gcc/m2/gm2-libs/SCmdArgs.mod
! 843897f2e3c461fb0327fb0c60ac59a6  gcc/m2/gm2-libs/SEnvironment.def
! 6b7065b7f149a2b0d03fffe13bfbdd0a  gcc/m2/gm2-libs/SEnvironment.mod
! d590dd8538572ce2c7231a25b8eeb326  gcc/m2/gm2-libs/SFIO.def
! ea36e7e8b1f3fca86b5a0b2ca1f23ba5  gcc/m2/gm2-libs/SFIO.mod
! 9222eb07c9f464434ed0f4b515cb19be  gcc/m2/gm2-libs/SMathLib0.def
! e17c6bf3bc3dafb2f4245566929a76c2  gcc/m2/gm2-libs/SMathLib0.mod
! 185045150fb7863ccda3dda3df51b72e  gcc/m2/gm2-libs/SYSTEM.def
! 7a8e4002bdc6fce55773724d3d989413  gcc/m2/gm2-libs/SYSTEM.mod
! f20650b19320893d5ef9860cc51d64f9  gcc/m2/gm2-libs/Scan.def
! 48330a60372d20aff4b67c5b9ae732b5  gcc/m2/gm2-libs/Scan.mod
! 9a211bc8a5255b102a6acf931a5df1f6  gcc/m2/gm2-libs/Selective.def
! c8f373bb68c796b1106b80b08a3f7f83  gcc/m2/gm2-libs/StdIO.def
! 8beaa17e6260996e996f67ed2fa272ea  gcc/m2/gm2-libs/StdIO.mod
! 1deced4524e692dd75bcec3c54bcc093  gcc/m2/gm2-libs/Storage.def
! f5f27a5983f141be65a0627b66de7763  gcc/m2/gm2-libs/Storage.mod
! 05780eef382956fb83b29d782a38caed  gcc/m2/gm2-libs/StrCase.def
! 6bcfc58b3f132dbc4632059731ff816e  gcc/m2/gm2-libs/StrCase.mod
! 4f3a1c94954753f6d0bc7f624fae4b4d  gcc/m2/gm2-libs/StrIO.def
! e30a0c0009f59e0d820cabb9ad9c48a9  gcc/m2/gm2-libs/StrIO.mod
! 7234614cffc5479fba49d8079bf71271  gcc/m2/gm2-libs/StrLib.def
! 39540142c68a33e144e9e9a66a8797ae  gcc/m2/gm2-libs/StrLib.mod
! f1d0448dddb0806234b4324974795511  gcc/m2/gm2-libs/StringConvert.def
! 2827fc85c18fb254b57b06d1940f568d  gcc/m2/gm2-libs/StringConvert.mod
! 3602d43cda7124c63c9282bf1c8e57ba  gcc/m2/gm2-libs/SysExceptions.def
! 324436308b22132f485cfe41190a5ffb  gcc/m2/gm2-libs/SysStorage.def
! bcf371a42b660b666ae976ce40ee34ff  gcc/m2/gm2-libs/SysStorage.mod
! 7b3c4c714bad579ba1b51a215b54cfa0  gcc/m2/gm2-libs/TimeString.def
! 8885f853332c8995cdf137651293c031  gcc/m2/gm2-libs/TimeString.mod
! 37b7c2b1f7a27ea053fbd98131a55474  gcc/m2/gm2-libs/UnixArgs.def
! 5d99743b669d98de3a61e1d483fc9ef9  gcc/m2/gm2-libs/cbuiltin.def
! 0550e0665dad3861ed2770e8ce6da518  gcc/m2/gm2-libs/cgetopt.def
! da4047ee9558c2c90df1ab9698f36cdd  gcc/m2/gm2-libs/config-host
! e406b8922a0d6b9abe9f879071cd7ab1  gcc/m2/gm2-libs/config-host.in
! 4c516b4ced20cd7630653249fc47cbfd  gcc/m2/gm2-libs/cxxabi.def
! 6aaf48dd1b60fd963932b7461c99dae0  gcc/m2/gm2-libs/dtoa.def
! 888333ae109fc6b8e987ff48857884a3  gcc/m2/gm2-libs/errno.def
! a3e8f51e85bb972159b3cd0db8d46afb  gcc/m2/gm2-libs/gdbif.def
! 382e4f2935b7582e595ecdfa5b347627  gcc/m2/gm2-libs/gdbif.mod
! d61d5735c0e1025088354bcb36b0f92e  gcc/m2/gm2-libs/gm2-libs-host.h.in
! 9d3fc0eb2f2296a9a09b04f5c0eedbdc  gcc/m2/gm2-libs/ldtoa.def
! f4dbf610a8f3644a9396eeb1d89c9cc7  gcc/m2/gm2-libs/libc.def
! 3a6aa045cfe6896aa279480ed47ae7d5  gcc/m2/gm2-libs/libm.def
! d95a9ac777689fbfc6147dacacf21606  gcc/m2/gm2-libs/sckt.def
! 831498bd2ff2c534dea98eb8eed25c85  gcc/m2/gm2-libs/termios.def
! 01d0120c783135d32abe887d2c25a7d8  gcc/m2/gm2-libs/wrapc.def
  ccaa683ba714cdbeafc186000b6c8dd1  gcc/m2/gm2config.aci.in
! 0c7c8bc279f45fa7ccace62bef8ed40f  gcc/m2/gm2spec.cc
! a1692c9bc067d2f97328c8558f5c7eb9  gcc/m2/gm2version.h
! 4ca73b6d6c8c5ec77b98814115959b79  gcc/m2/images/LICENSE.IMG
  28628f59c0ab73240ccd25e2be0bcb6a  gcc/m2/images/gnu.eps
  d41d8cd98f00b204e9800998ecf8427e  gcc/m2/images/gnupng
  d02bb7b852c2149c474702f929b72f2d  gcc/m2/init/README
! 295651a10667b286ed55c3afdcb0e117  gcc/m2/init/mcinit
! 1926300919acbdbf55ed47c4997a459b  gcc/m2/init/ppginit
! 0a585a032e28317a1dc67efc96504e1f  gcc/m2/lang-specs.h
! 6a1da4229612569b0d4a68e329c901e2  gcc/m2/lang.opt
! b78b0219cda3cd36f38421786dc862e7  gcc/m2/lang.opt.urls
! 36221d63a7a556b1dbbd7b2aa1ddd8fa  gcc/m2/m2-tree.def
! a93d546f180b351bb03d87a0bb03ef2f  gcc/m2/m2-tree.h
! ff4f0e458361e5c529411e0c50f22344  gcc/m2/m2.flex
! 5a746491ae3bf9c7f8e19619535343e5  gcc/m2/mc-boot-ch/GBuiltins.cc
! 1b007418233e66da62b4f51a04213000  gcc/m2/mc-boot-ch/GM2LINK.c
! 83bd33f22f5e24ca4ef0bf03e371711f  gcc/m2/mc-boot-ch/GSYSTEM.c
! c59b18ebf2e9ef7d4d376f446d69c2a4  gcc/m2/mc-boot-ch/GSYSTEM.h
! a971d10de0c6d136c7e1157f479db8c9  gcc/m2/mc-boot-ch/GSelective.c
! 66399d5f00959884e87c2b3f30a8687a  gcc/m2/mc-boot-ch/GSysExceptions.c
! 0fa1c81339169996a6feb3d39050f038  gcc/m2/mc-boot-ch/GSysExceptions.h
! 4d94d09b44990f87ca9ecd1e027f80ec  gcc/m2/mc-boot-ch/GUnixArgs.cc
! 958dcf245a101da5f2c1df1428184160  gcc/m2/mc-boot-ch/Gabort.c
! 446115e7b08499fb383875ae39f80de4  gcc/m2/mc-boot-ch/Gcbuiltin.c
! 4ea3df8d94bd7eeaea939de2f2d8d1c8  gcc/m2/mc-boot-ch/Gdtoa.cc
! 3751486f22f5e0d33e6d98188b441de9  gcc/m2/mc-boot-ch/Gerrno.cc
! ee0e13493436884e27e49f1492a5f0b3  gcc/m2/mc-boot-ch/Gldtoa.cc
! a4b76cdf0d125d419e749c69013703b3  gcc/m2/mc-boot-ch/Glibc.c
! 92678aacb3ec1c4153d3741d2c760123  gcc/m2/mc-boot-ch/Glibm.c
! 514f06024ddf633883581cd441d10032  gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
! ff84dcaced093b9ab969597fb8157237  gcc/m2/mc-boot-ch/Gmcrts.c
! f1a93a27fd575df1d9d063fc5958f887  gcc/m2/mc-boot-ch/Gmcrts.h
! a7f71bd9b880673b18abd6ab022331c1  gcc/m2/mc-boot-ch/Gnetwork.h
! 76f9bbcfcb98670c2efb065004bf0bcc  gcc/m2/mc-boot-ch/Gtermios.cc
! aa387f4a8efa5c14a6c9177ff4855371  gcc/m2/mc-boot-ch/Gtermios.h
! 343f912c432159efa2dcea6262fe8854  gcc/m2/mc-boot-ch/Gwrapc.c
  ce2b38596d501052b9fae2df29aafa66  gcc/m2/mc-boot-ch/README
! c683ab077f2aa842f1e8c1099abcf8c8  gcc/m2/mc-boot-ch/m2rts.h
! cfd0eda3744ba9d00f0c88d3762d7f06  gcc/m2/mc-boot-ch/network.c
! 30e5a3150d21370d6e649c9d259c3400  gcc/m2/mc-boot/GASCII.cc
! 80f3d986634792f4c2e64e84094d9dc5  gcc/m2/mc-boot/GASCII.h
! 4137b3915bc31bec400dc56e27219bc5  gcc/m2/mc-boot/GArgs.cc
! 998ad75d47535c22c2bda898542b88ab  gcc/m2/mc-boot/GArgs.h
! 400ec4f6bab289535f7104ccf09a02ea  gcc/m2/mc-boot/GAssertion.cc
! d822750b4be5c09989f487bdf2a787a1  gcc/m2/mc-boot/GAssertion.h
! c2794bf2975b0fe7d041bc3db1c9ca1d  gcc/m2/mc-boot/GBreak.cc
! c4be3d9fd87b372eaa8e9367742bd10c  gcc/m2/mc-boot/GBreak.h
! 1779cdb40a3686f6110f9eab0f79260d  gcc/m2/mc-boot/GCOROUTINES.h
! e94cf5d57ddb59f9e3cfb96f221b7301  gcc/m2/mc-boot/GCmdArgs.cc
! 7f52ccebb8d1b41a43463bf4967f1fec  gcc/m2/mc-boot/GCmdArgs.h
! c61ef23feb7738abdbadc61056bdde5a  gcc/m2/mc-boot/GDebug.cc
! e299bc380bcaa2cd237ef4a5b903fbd2  gcc/m2/mc-boot/GDebug.h
! 0a1e8afe30350109d852464982a73cad  gcc/m2/mc-boot/GDynamicStrings.cc
! c4d083a40c3d7c91aa80ec2b51dc810c  gcc/m2/mc-boot/GDynamicStrings.h
! b93a2ab4af018c1466c56db0999ec888  gcc/m2/mc-boot/GEnvironment.cc
! 21c20a9ca90f934461e087823e4082dd  gcc/m2/mc-boot/GEnvironment.h
! f7e1b9d6fafe95456e34bbe032a5fe38  gcc/m2/mc-boot/GFIO.cc
! 18dd92e442f483b4b961a067d16415d9  gcc/m2/mc-boot/GFIO.h
! b3dc1b910c1f73cdeff7075b65009cf6  gcc/m2/mc-boot/GFormatStrings.cc
! 6d614c1c7801a94c8bd61fd85a21e363  gcc/m2/mc-boot/GFormatStrings.h
! a96f3a0976b710c6421697e1ba553869  gcc/m2/mc-boot/GFpuIO.cc
! 9eee75e616a1a5a06ac7bb1f072bbdb8  gcc/m2/mc-boot/GFpuIO.h
! 475695dccef828f38eea25237cf73e5e  gcc/m2/mc-boot/GIO.cc
! 186e51e92ddd7009e90095aaeade60d1  gcc/m2/mc-boot/GIO.h
! 8e95a868677d5530318b722590b3cb73  gcc/m2/mc-boot/GIndexing.cc
! 2df8ca48729d075202f7f1332e7a0cf1  gcc/m2/mc-boot/GIndexing.h
! 8bbe564693cbde25d0187f3bb6692221  gcc/m2/mc-boot/GM2Dependent.cc
! 890eca42b5e6e05d345e9154dbdc0d7e  gcc/m2/mc-boot/GM2Dependent.h
! 33c5e837b593dd01282aabeeeca11818  gcc/m2/mc-boot/GM2EXCEPTION.cc
! c8c1f171186d8e862448780b2c03a858  gcc/m2/mc-boot/GM2EXCEPTION.h
! 14556b7b4923159f273974be90e74eae  gcc/m2/mc-boot/GM2RTS.cc
! f5c877ce2fcd2278fb216e231ef69214  gcc/m2/mc-boot/GM2RTS.h
! 1ab7b33ef33cc74dd1e12aa0915a343e  gcc/m2/mc-boot/GMemUtils.cc
! 62b42951aa1772a7ada109839f9edf57  gcc/m2/mc-boot/GMemUtils.h
! 2ebd5b12c803cee083d05cc4598ce395  gcc/m2/mc-boot/GNumberIO.cc
! 76b2a1a36dc2ebe274054bf04b79e9cf  gcc/m2/mc-boot/GNumberIO.h
! ed6480b929c78baa36ef6f9007de0ca3  gcc/m2/mc-boot/GPushBackInput.cc
! fb23e1a7f583859fde59a85e9dca59f5  gcc/m2/mc-boot/GPushBackInput.h
! 315773f32a71bc701106cc7c9a3d5f1a  gcc/m2/mc-boot/GRTExceptions.cc
! 8edbf1e5d0843e53e3b3955c9c48d740  gcc/m2/mc-boot/GRTExceptions.h
! 42553f5e8e6f7b11451f31683059fb3d  gcc/m2/mc-boot/GRTco.h
! 3a8ee612c3e607eea81d32f6c192cce6  gcc/m2/mc-boot/GRTentity.h
! 04038bc007914913b6ab98e921a8e1b2  gcc/m2/mc-boot/GRTint.cc
! 0024b67f6eae592eea97571d29902c4f  gcc/m2/mc-boot/GRTint.h
! 4a68e952fca96988b1268081b5617d81  gcc/m2/mc-boot/GSArgs.cc
! d0e67b6b22e33a1aa995255b428fa01a  gcc/m2/mc-boot/GSArgs.h
! 748d5c4e07fa62f0a1ee345489a92bca  gcc/m2/mc-boot/GSFIO.cc
! 2e581ebff9ed1e2c3d4667ef8f0df811  gcc/m2/mc-boot/GSFIO.h
! c59b18ebf2e9ef7d4d376f446d69c2a4  gcc/m2/mc-boot/GSYSTEM.h
! a3f1f36560169a97a1f9aac43def19a0  gcc/m2/mc-boot/GSelective.h
! 5ccfb6cf1ae691143d3fb0a063ee4495  gcc/m2/mc-boot/GStdIO.cc
! 292ac2346671a70be028afbe94eaa4c4  gcc/m2/mc-boot/GStdIO.h
! beb5d40a30780cfca3a6e0730d73ab94  gcc/m2/mc-boot/GStorage.cc
! aaeed5501648505d364939baaf7d1c1e  gcc/m2/mc-boot/GStorage.h
! e452250734e0dfdbee30d17f0a9c7142  gcc/m2/mc-boot/GStrCase.cc
! b5889b97d511a2b128052a0a308ebe93  gcc/m2/mc-boot/GStrCase.h
! c017dbb45a3f76f06fe78c6e8c05d172  gcc/m2/mc-boot/GStrIO.cc
! 1ea7f27c8961d1ea19bf9c842a39ec09  gcc/m2/mc-boot/GStrIO.h
! 16d81dbc6a4b5757a41728a35778a977  gcc/m2/mc-boot/GStrLib.cc
! c387ac6a700f1e76e34db12abae910f4  gcc/m2/mc-boot/GStrLib.h
! 914368dec24505c73f3931881030fee6  gcc/m2/mc-boot/GStringConvert.cc
! 2c414dfac53c80d2b13868ef8db8e9ea  gcc/m2/mc-boot/GStringConvert.h
! 0fa1c81339169996a6feb3d39050f038  gcc/m2/mc-boot/GSysExceptions.h
! 53fe2b4a18fcfb9ed7c2e36116ebc941  gcc/m2/mc-boot/GSysStorage.cc
! 3290dd9a3f648e09deca5afd570467c0  gcc/m2/mc-boot/GSysStorage.h
! 1a08c87a335bce36e3cc727a3a848f55  gcc/m2/mc-boot/GTimeString.cc
! 58f3ed2afca2ab2c1d85b1eeb4483803  gcc/m2/mc-boot/GTimeString.h
! 8546c5e6f7d221fb063a79933bd9cbc3  gcc/m2/mc-boot/GUnixArgs.h
! 88e246fdd04cc234b6b98208894f4e7b  gcc/m2/mc-boot/Galists.cc
! cd950dafc2b1371c70425cb42cb6675b  gcc/m2/mc-boot/Galists.h
! 21dcc2ad71bba4954aa0e1d21fe128ae  gcc/m2/mc-boot/Gdecl.cc
! 8997143ad57adafcbafa833a129c1cae  gcc/m2/mc-boot/Gdecl.h
! ffdacc65da86969c2d9b9f7f5c7d9518  gcc/m2/mc-boot/Gdtoa.h
! 280caddba3c1161c77fdfc9d439e6848  gcc/m2/mc-boot/Gerrno.h
! 66c163ed4a3124bce2b084da4a86216b  gcc/m2/mc-boot/Gkeyc.cc
! 3b7c5782dc7e2e6d43d08f549f911319  gcc/m2/mc-boot/Gkeyc.h
! c85a3eea775edbfa801b7d0b676c7b5b  gcc/m2/mc-boot/Gldtoa.h
! c789d07c474c46bd005744151657df6e  gcc/m2/mc-boot/Glibc.h
! c2cd2f2546aba8fabafe4cab94cde4ec  gcc/m2/mc-boot/Glibm.h
! 21702d666f3c7f5a429af517bb8d2a41  gcc/m2/mc-boot/Glists.cc
! e3ca1b8f4a3fa6fdc410078245bc7ab7  gcc/m2/mc-boot/Glists.h
! 63d3db4974fa0c3d4a3bc9ca15793a4e  gcc/m2/mc-boot/GmcComment.cc
! 997a7337bee26f6d0afec0bee9c13c7e  gcc/m2/mc-boot/GmcComment.h
! bc1cf82b002e36b3f47bc289cd830a82  gcc/m2/mc-boot/GmcComp.cc
! b93a83d8f0b77967201d6f93dffbce7e  gcc/m2/mc-boot/GmcComp.h
! abfb1bd4a08af042a9cc7c92601550e6  gcc/m2/mc-boot/GmcDebug.cc
! 51a972704f6ec5df1e47d408f9ac7115  gcc/m2/mc-boot/GmcDebug.h
! cabf9dc916f406eed1ffce57a984418b  gcc/m2/mc-boot/GmcError.cc
! 769381ad383fc6ed121dec2ef78e888b  gcc/m2/mc-boot/GmcError.h
! 6c393249329b2d6ea49c26cd1abc74c7  gcc/m2/mc-boot/GmcFileName.cc
! 964100a312a45b6d0a3bbeb64e130c09  gcc/m2/mc-boot/GmcFileName.h
! 597f44f818efc2932dd5daaaeedc5492  gcc/m2/mc-boot/GmcLexBuf.cc
! 49ccfc23cc3f25e807032338b165adca  gcc/m2/mc-boot/GmcLexBuf.h
! 7f4e31af3ae538fa3c05d9dd2e537a78  gcc/m2/mc-boot/GmcMetaError.cc
! 4fe7143b53943704df0b2587f6f078cd  gcc/m2/mc-boot/GmcMetaError.h
! a81e99920f3a3e7b72770d6ec14825bc  gcc/m2/mc-boot/GmcOptions.cc
! 4cd7748b01c5a2877dc9488318dfdc27  gcc/m2/mc-boot/GmcOptions.h
! 296163204ca46015350f6ed430d984e3  gcc/m2/mc-boot/GmcPreprocess.cc
! d000998aaa9e860c2181bfa6846423ff  gcc/m2/mc-boot/GmcPreprocess.h
! a9ab30ef702006041ba0048953d90b31  gcc/m2/mc-boot/GmcPretty.cc
! 83d76402207facab5b71ab630a58f913  gcc/m2/mc-boot/GmcPretty.h
! e3c4ac05481c25f914739ce54ba98276  gcc/m2/mc-boot/GmcPrintf.cc
! b9ba6c783e7917424740b565e8fb2611  gcc/m2/mc-boot/GmcPrintf.h
! 486c3303e25b1688c4109bbc3691515e  gcc/m2/mc-boot/GmcQuiet.cc
! bebfca86f58d1d5f564c07fb20658337  gcc/m2/mc-boot/GmcQuiet.h
! 91f14c83df0ead190a74ce4fb770dcda  gcc/m2/mc-boot/GmcReserved.cc
! 7bec6f724ae0d51e1b9026c0871d16f7  gcc/m2/mc-boot/GmcReserved.h
! d5de53c19e813f7cfbe98bc6740f26e8  gcc/m2/mc-boot/GmcSearch.cc
! 719f6ab011bd1fdac5e3a08c49369297  gcc/m2/mc-boot/GmcSearch.h
! 0aa0d34fc8b201030709e9f7b639558a  gcc/m2/mc-boot/GmcStack.cc
! 4ad985a49f0c45396fcd891a0dca4b0d  gcc/m2/mc-boot/GmcStack.h
! aeb0fbb673a61cbc82495b3810545758  gcc/m2/mc-boot/GmcStream.cc
! 0ea3a934868206ebd861cd873eaabfd7  gcc/m2/mc-boot/GmcStream.h
! e11e3decb4582dc5f9346833d86329c6  gcc/m2/mc-boot/Gmcflex.h
! bee67677a9dd57143bad33cd9ab99a28  gcc/m2/mc-boot/Gmcp1.cc
! 405853e7b3741d328510b867546b9507  gcc/m2/mc-boot/Gmcp1.h
! 1ed533f2a1d3705d65e62fa987820354  gcc/m2/mc-boot/Gmcp2.cc
! 2f16f7d8bd76850f547dc24da8f4a206  gcc/m2/mc-boot/Gmcp2.h
! f2ee3994a6ca0f37af91ef287f126ebc  gcc/m2/mc-boot/Gmcp3.cc
! a1069480dceaf288dea9a43b04389bd7  gcc/m2/mc-boot/Gmcp3.h
! e1ef10391aca4f2fa950c25bb7e73f8a  gcc/m2/mc-boot/Gmcp4.cc
! e46bd88bcbb38a1e8217303984616082  gcc/m2/mc-boot/Gmcp4.h
! dbba02fc3cee1fb6c041a275ef07c2c1  gcc/m2/mc-boot/Gmcp5.cc
! ad8613fb3f78f7ada52e129e17b902b3  gcc/m2/mc-boot/Gmcp5.h
! b83cf11f2568dad5c0b0dfca889ad27c  gcc/m2/mc-boot/GnameKey.cc
! 7e708d6a35cdd0e461955d602883b5b3  gcc/m2/mc-boot/GnameKey.h
! c53d2d60e67e2154d24a0e4f2199084f  gcc/m2/mc-boot/GsymbolKey.cc
! 5ee973a71e5d321e0878684048cac73c  gcc/m2/mc-boot/GsymbolKey.h
! aa387f4a8efa5c14a6c9177ff4855371  gcc/m2/mc-boot/Gtermios.h
! 1590a27bae887aac8f2a97061ad8865f  gcc/m2/mc-boot/Gtop.cc
! 134ca55a6528f91b9f32269e6801738d  gcc/m2/mc-boot/Gvarargs.cc
! c1601cb72d36c496ade30d104fc7456d  gcc/m2/mc-boot/Gvarargs.h
! 53240501af1edea6d96c19077c8e4f24  gcc/m2/mc-boot/Gwlists.cc
! 952568baf33b6815977ced8d7cd4b23b  gcc/m2/mc-boot/Gwlists.h
! a187ef05f529f5d509b478e6ca2335cb  gcc/m2/mc-boot/Gwrapc.h
  0353f1ec4e4fbfb6eb0e9080da3e5aef  gcc/m2/mc-boot/README
! 02e09f7175991dc8707ef8d7690dc314  gcc/m2/mc/Indexing.def
! 3c6fa52f479323853fbab3d1121bc565  gcc/m2/mc/Indexing.mod
  f8f98e9ffb642286dd61fd52be017824  gcc/m2/mc/README
! 5bbad8b259e608eda110215c31ff98c0  gcc/m2/mc/alists.def
! 3ca3c24af5cf436f41b003c7a5b9bb8a  gcc/m2/mc/alists.mod
! 145930d71aaa00587818c9d803265c03  gcc/m2/mc/decl.def
! 34c5c810d7bfef0e04cbcd8f6b911681  gcc/m2/mc/decl.mod
  73d148ed772aa468cc7657a403f3edc2  gcc/m2/mc/decl.mod-extra
! 9c4de6634a4f650f47f5c7a1e182559d  gcc/m2/mc/keyc.def
! 50a6e4ac55ad9a06b8ae18d9313dc37e  gcc/m2/mc/keyc.mod
! 41961c9e46163482d3a0518c0d7da923  gcc/m2/mc/lists.def
! d727f27c628b17bba6da834b88ea2deb  gcc/m2/mc/lists.mod
! 985ac6c6fcd2e1672d4e0c6680dcbaf0  gcc/m2/mc/m2flex.def
! 1f5300a62bc33859e7f5f9a0f3d90ca8  gcc/m2/mc/mc.flex
! cc2f25cb1a667f3d510f9987029eaa72  gcc/m2/mc/mcComment.def
! abadf0601a71029feeb8baa74e9ccb39  gcc/m2/mc/mcComment.h
! f5a42318c0c072da35358cfdb1e8fa8b  gcc/m2/mc/mcComment.mod
! 3219ef01c307e5ccc9c94dd79672f8bd  gcc/m2/mc/mcComp.def
! a3b19f2c165fed12b040c14eedd39076  gcc/m2/mc/mcComp.mod
! 6b39fbc5362c84af28d555396b76e67e  gcc/m2/mc/mcDebug.def
! 095ff2b4420aed8e0e4453569db30d78  gcc/m2/mc/mcDebug.mod
! 3e8931e3af99fe7f509681016401870b  gcc/m2/mc/mcError.def
! 99328743f86a61c39061c7353ee11199  gcc/m2/mc/mcError.mod
! 23dc7bf616b926c31b99afec48efcf88  gcc/m2/mc/mcFileName.def
! 5c1084436bed3177d2e35c523cd6e5c1  gcc/m2/mc/mcFileName.mod
! 5b081c7a8207b34197b7821b7146fc01  gcc/m2/mc/mcLexBuf.def
! 6b4884db82ae3b4cf8917671fe52a71b  gcc/m2/mc/mcLexBuf.h
! 79e8025f790cdd6522c2a66fbc87078e  gcc/m2/mc/mcLexBuf.mod
! 2ced9c86393dcf0b41d125709be5cebe  gcc/m2/mc/mcMetaError.def
! 096377357d5b39ead60e4c5eb99b61d8  gcc/m2/mc/mcMetaError.mod
! f95828a5ef1be9642a831624c7cb0a6a  gcc/m2/mc/mcOptions.def
! cee6ce8f8a0dbb54fd8ee00fdbf01ab3  gcc/m2/mc/mcOptions.mod
! d6ae0405858e4284162a377675a5b335  gcc/m2/mc/mcPreprocess.def
! b2e53da65ee57005b7feb12d28357968  gcc/m2/mc/mcPreprocess.mod
! 4f37f3e2e7b04c518dcfafc3cce7bc9f  gcc/m2/mc/mcPretty.def
! 356dc40304a5d2e772a78b861f9f7329  gcc/m2/mc/mcPretty.mod
! 4acdc036248e23e74bd67595badb0466  gcc/m2/mc/mcPrintf.def
! bdbddc746af6b167017167aacb71c8b1  gcc/m2/mc/mcPrintf.mod
! 4dcac9f90fdd855c2358cafd094ff199  gcc/m2/mc/mcQuiet.def
! e255517c9f8a7ee4f0bd33bc68258bef  gcc/m2/mc/mcQuiet.mod
! da574fa922ff054d26f2a8529a3cee5b  gcc/m2/mc/mcReserved.def
! b2b807d17c36540e3854341c7760942e  gcc/m2/mc/mcReserved.h
! 71256b792d3578e09eca4ee40b5ada6f  gcc/m2/mc/mcReserved.mod
! ff581e92d70cdb4b15bc3b4079c516d0  gcc/m2/mc/mcSearch.def
! 5891caf1899b1cb3c52f0aa50c6658d1  gcc/m2/mc/mcSearch.mod
! 9025b64a8419878fd3c22c9ded014732  gcc/m2/mc/mcStack.def
! a549b80d353e2f3de95c16bef2f6530d  gcc/m2/mc/mcStack.mod
! bfad43b77cdc34bdc650a55a2927847f  gcc/m2/mc/mcStream.def
! a0290510ca64619f911331712b8acbc6  gcc/m2/mc/mcStream.mod
! 1f68c4825f6073dd4111e5707e382fbf  gcc/m2/mc/mcflex.def
! 3572010b5ff35280528d421215a029e3  gcc/m2/mc/mcp1.bnf
! b5fc9268405035d9b07c9ed0a5adbf08  gcc/m2/mc/mcp1.def
! f4b8569c26fb73692733d6d0f170b00c  gcc/m2/mc/mcp2.bnf
! b32c9c8a3b3320dc2169d97038ff7d93  gcc/m2/mc/mcp2.def
! 42d93d97258a21c9e4d4923374539a48  gcc/m2/mc/mcp3.bnf
! d51182fbf2fea5e690d0593e53d755bc  gcc/m2/mc/mcp3.def
! c05cad9a56c38ec99f2db1206a7dc8a5  gcc/m2/mc/mcp4.bnf
! 563d12aa5470f47c41f6e95864c7b43e  gcc/m2/mc/mcp4.def
! b9d146f9131537b74ebe94290a457a9b  gcc/m2/mc/mcp5.bnf
! aab6f579788f5bad104bc32fe7ac3d6f  gcc/m2/mc/mcp5.def
! 7e2ed168649e50a941e40f34c06bdd08  gcc/m2/mc/nameKey.def
! 58cd409c630132c71e320a2725d7ad89  gcc/m2/mc/nameKey.mod
! d8174cc28257b4d85785c61f9de60af8  gcc/m2/mc/symbolKey.def
! e39db8dd9deac4229de2710c30ffbbf4  gcc/m2/mc/symbolKey.mod
! cd38d57d9f168fc9a013624cceed6451  gcc/m2/mc/top.mod
! 81639f00d371158d15af89fbe515bcf3  gcc/m2/mc/varargs.def
! 41561443b327efc499f2ab52acfa79c2  gcc/m2/mc/varargs.mod
! d036f1720f9bd8477e7b84e70797b76b  gcc/m2/mc/wlists.def
! 45396eb1c1ce62e0f71435c4ae3f6f4f  gcc/m2/mc/wlists.mod
! 7e48e85c1c6fdf6742d1ced57c7e26ad  gcc/m2/pge-boot/GASCII.cc
! dae7538e0ff6f8e292bfd0d7933e0cae  gcc/m2/pge-boot/GASCII.h
! c9d5b3d2d4be27e49743168e7b5f7cbb  gcc/m2/pge-boot/GArgs.cc
! 6ebdd0aa4b6ed632f0d40b503a82755a  gcc/m2/pge-boot/GArgs.h
! 0a3b2c3f130cf4151a5022629edc9ac7  gcc/m2/pge-boot/GAssertion.cc
! ce265e27b5c4de994e5509c777836d13  gcc/m2/pge-boot/GAssertion.h
! 468cbc9a438467ac8923779f69f396e2  gcc/m2/pge-boot/GBreak.h
! 741a19bfb941d6acabd0df4f1c6cefd2  gcc/m2/pge-boot/GBuiltins.cc
! 112237cdf3243fbbb15ce7f6945a5ff1  gcc/m2/pge-boot/GCmdArgs.h
! 4146f1c3f9a88e730557dbf2c871bb11  gcc/m2/pge-boot/GDebug.cc
! 26c972464c761b9c22630468c921ba34  gcc/m2/pge-boot/GDebug.h
! 05d779b35ae510786239375036d31db8  gcc/m2/pge-boot/GDynamicStrings.cc
! 599d870083ce9d0bbe2d6148f54c92c3  gcc/m2/pge-boot/GDynamicStrings.h
! c059f1d31f724da54f6fc6c7ff944b6e  gcc/m2/pge-boot/GEnvironment.h
! 830639e1021c711baa1aed971674bebc  gcc/m2/pge-boot/GFIO.cc
! 7e4646bd6b30b47c634983ce99a323f2  gcc/m2/pge-boot/GFIO.h
! 53004350ddcf1fcf59d52b6eeff4532b  gcc/m2/pge-boot/GFormatStrings.h
! 7e28875bcef36e771fc480f202402edf  gcc/m2/pge-boot/GFpuIO.h
! 4c7ce808f78433d712334d093d2fe273  gcc/m2/pge-boot/GIO.cc
! 495be4318fcbb0b3ad7cf41c4f417066  gcc/m2/pge-boot/GIO.h
! 351e4ec4614504e74202b8515fcc5152  gcc/m2/pge-boot/GIndexing.cc
! 441002cea44ec4a21a1d45c5cf626763  gcc/m2/pge-boot/GIndexing.h
! 47d308c369df5dbae7aba6682567c4c7  gcc/m2/pge-boot/GLists.cc
! fbb13f2ac279bebe386406a7ebbafb69  gcc/m2/pge-boot/GLists.h
! 0e695842adf21d3e0621eaa05654a6b0  gcc/m2/pge-boot/GM2Dependent.cc
! 339bd203bb51260bd13c519f73926a5d  gcc/m2/pge-boot/GM2Dependent.h
! 4f1a39d01d4b1bbb6b687f95b4b38640  gcc/m2/pge-boot/GM2EXCEPTION.cc
! 6a254a34976c8e5d0daf1e556d6d82af  gcc/m2/pge-boot/GM2EXCEPTION.h
! f50ea4ecefa457813303d8034b317ebe  gcc/m2/pge-boot/GM2RTS.cc
! ab9b63dd90718cb0305fcbbd5fa4cfda  gcc/m2/pge-boot/GM2RTS.h
! 08351c474b2e210105d583fdb676d769  gcc/m2/pge-boot/GNameKey.cc
! 5e0670978f24a05c9bd5a6a814d528b3  gcc/m2/pge-boot/GNameKey.h
! 69a3097427adbd843129c9ceeb76a8c0  gcc/m2/pge-boot/GNumberIO.cc
! de051a28991fbe2d177f4169f1548752  gcc/m2/pge-boot/GNumberIO.h
! f03a816fe01be0d1ac10805d073aa441  gcc/m2/pge-boot/GOutput.cc
! 10af0aeb5fd121d0cbd2fd18eaa46470  gcc/m2/pge-boot/GOutput.h
! eab408fa516dc82372478f823749f9ce  gcc/m2/pge-boot/GPushBackInput.cc
! 4620a72a368509ce21fdc1d22c572ffa  gcc/m2/pge-boot/GPushBackInput.h
! f3263cb260534ec9357ef3709b64efc9  gcc/m2/pge-boot/GRTExceptions.cc
! 040d08d1b47fc0012e3b1472cc0dc29e  gcc/m2/pge-boot/GRTExceptions.h
! 0d574919ebb1e908d3f48469cdd59ff5  gcc/m2/pge-boot/GRTco.cc
! 4f9085e8adeae2243e8fdea6dd40fbe5  gcc/m2/pge-boot/GSArgs.h
! ce36f9ecae4871ea1857135a772dd02a  gcc/m2/pge-boot/GSEnvironment.h
! 51dc563edb460979e41c6ff8dabb631d  gcc/m2/pge-boot/GSFIO.cc
! 72ee593b0e6284581fe17cde477b3c2e  gcc/m2/pge-boot/GSFIO.h
! 92afc90aab376c8a87c3a59ef55e29de  gcc/m2/pge-boot/GSYSTEM.cc
! 86062fb283d2d9c3968ad502bd6e106b  gcc/m2/pge-boot/GSYSTEM.h
! 092f7718c3330133f781382e9c2b2ef4  gcc/m2/pge-boot/GScan.h
! 0c8d6aa105970ed45c4f4bb7fa3c7cb6  gcc/m2/pge-boot/GSelective.cc
! ee0c4194f7fc010987ae32fec7dfffde  gcc/m2/pge-boot/GStdIO.cc
! bda08699e9f6fb0bee9951454b376c84  gcc/m2/pge-boot/GStdIO.h
! 117717d01eba9e88ec08a46df0e80a98  gcc/m2/pge-boot/GStorage.cc
! 31204abb7f563f3f1e9a8f474bd6c9f2  gcc/m2/pge-boot/GStorage.h
! cf12a58789ee8fc83073839491a7ab67  gcc/m2/pge-boot/GStrCase.cc
! c0a32df341683906ff18e328dd655c7d  gcc/m2/pge-boot/GStrCase.h
! d753817814733e02838a51acf519e8b8  gcc/m2/pge-boot/GStrIO.cc
! 7166fe61cc6462ae6ce2a0302a9c6df7  gcc/m2/pge-boot/GStrIO.h
! e72114806cf57cf69a9b0d0070f0f09b  gcc/m2/pge-boot/GStrLib.cc
! 3ec3c9caff49f22cdee701a26f182b97  gcc/m2/pge-boot/GStrLib.h
! febf966e2780363e5a2bb2e7e3ffd056  gcc/m2/pge-boot/GStringConvert.h
! abb9fe18433f4b5ad5ced2c037f15f0f  gcc/m2/pge-boot/GSymbolKey.cc
! 6f4fae48f624897bc8ab2b7ca122c418  gcc/m2/pge-boot/GSymbolKey.h
! 66399d5f00959884e87c2b3f30a8687a  gcc/m2/pge-boot/GSysExceptions.cc
! 4c4a1b54d960f4d522d58e1790e7b1d8  gcc/m2/pge-boot/GSysExceptions.h
! aa518a6790d834530aae2244374e1206  gcc/m2/pge-boot/GSysStorage.cc
! 1b28770eb0083f51bb7fee98a14836cf  gcc/m2/pge-boot/GSysStorage.h
! 7cc458c97273d29681db9868a7d7346a  gcc/m2/pge-boot/GTimeString.h
! f081db87c2f6d06b1073f9aef7705dd6  gcc/m2/pge-boot/GUnixArgs.cc
! 80e3b8a1bcb148ee12d91b663c133237  gcc/m2/pge-boot/GUnixArgs.h
! 958dcf245a101da5f2c1df1428184160  gcc/m2/pge-boot/Gabort.cc
! 698038afbeb569ebdcac18ef598664ce  gcc/m2/pge-boot/Gbnflex.cc
! 6eb4f5efb1af8ebc6cb375882e7ac927  gcc/m2/pge-boot/Gbnflex.h
! 446115e7b08499fb383875ae39f80de4  gcc/m2/pge-boot/Gcbuiltin.cc
! b5f80b7dd94a87a1dd13aceb90a4e195  gcc/m2/pge-boot/Gdtoa.cc
! 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
! 92678aacb3ec1c4153d3741d2c760123  gcc/m2/pge-boot/Glibm.cc
! 8c231fd518d9827986d861056073f609  gcc/m2/pge-boot/Glibm.h
! ff84dcaced093b9ab969597fb8157237  gcc/m2/pge-boot/Gmcrts.cc
! f1a93a27fd575df1d9d063fc5958f887  gcc/m2/pge-boot/Gmcrts.h
! a7f71bd9b880673b18abd6ab022331c1  gcc/m2/pge-boot/Gnetwork.h
! 608c4c474d2f79d1a1489552730eec5a  gcc/m2/pge-boot/Gpge.cc
! 76f9bbcfcb98670c2efb065004bf0bcc  gcc/m2/pge-boot/Gtermios.cc
! 8414fd972fbac4fee82e5b2ba9bf9df9  gcc/m2/pge-boot/Gtermios.h
! 1a950ced4805d8ed41cfd8f439bd7f0d  gcc/m2/pge-boot/Gwrapc.cc
! 902389cc4ad4ead857ab29bd1d973898  gcc/m2/pge-boot/Gwrapc.h
  32de17e5bdad997b43794d330fc5dae5  gcc/m2/pge-boot/README
! 6556a4176b541bc229c47c196270f98d  gcc/m2/pge-boot/m2rts.h
  8b33b15307e9ec5d5dc5f5ce40ae479b  gcc/m2/pge-boot/main.cc
! cfd0eda3744ba9d00f0c88d3762d7f06  gcc/m2/pge-boot/network.cc
  18840892def349c0982fbe40111d6a91  gcc/m2/plugin/README
! dd0625a7245e019bcefa8581aac88a27  gcc/m2/plugin/m2rte.cc
  b6e5f0da274b54528dae320c9d012d8b  gcc/m2/target-independent/m2/Builtins.texi
  ff2cddc8e82d26e626d51a518f97024d  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  803e2e2c4293fdba546b2340322ba0ce  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 03eaafb97c5c63c6a17ffd76fa52f53c  gcc/m2/target-independent/m2/gm2-ebnf.texi
! 3cf6d843de6e7d2300339c7bf62741b5  gcc/m2/target-independent/m2/gm2-libs.texi
  3eed1eee3be7e4c14fa1d8f611ab2c90  gcc/m2/target-independent/m2/gpl_v3_without_node.texi
  90ef5843055db95072a5e0dcaad1e694  gcc/m2/target-independent/readme.txt
  7625da2d2347161386e94664ab2ceac9  gcc/m2/tools-src/README
! 1abc7bc209d2bcb785386e2a99488f36  gcc/m2/tools-src/boilerplate.py
! 146678ed99c09b83787de95267369333  gcc/m2/tools-src/buildpg
! edda010a61d6e29fa29a5ec2855d3c68  gcc/m2/tools-src/calcpath
! 477b858262d906f76d6e8247f9bc01a9  gcc/m2/tools-src/checkmeta.py
! 8181b673cf0b8b6ba6c61a342e9b1634  gcc/m2/tools-src/def2doc.py
! c68318dec81d9d0316a2b8481fea02b0  gcc/m2/tools-src/makeSystem
! d8c314554dde17baabdee11b802264b3  gcc/m2/tools-src/mklink.c
! ff4d04d0175889f5cc05d2c0c762fe57  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! 88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
! db2ee1a68662c8370d59f7e4f6cf917b  gcc/machmode.h
! 486412acbbb6de10b080e31410a14f33  gcc/main.cc
! d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! 5ff78726c1db0bc193472a8b82102221  gcc/match.pd
! 63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
! 795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
! 295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
! fc3dc6e5e41819d07deeee3b4e112483  gcc/memmodel.h
! a19998c2fc81af5121b51092d91b256b  gcc/memory-block.cc
! ebbe3379528e7b9db85647b877e5b0bb  gcc/memory-block.h
! b82061b2c90528a47ea29b04cf44de77  gcc/mkconfig.sh
! a9772a5a6b37efbf620593d1ecb9a9a2  gcc/mode-classes.def
! 7c54f78fff03db22e0e87662bf5c2ebb  gcc/mode-switching.cc
! dc32936944eec23defd5fd5af215d9ad  gcc/modulo-sched.cc
! 9c6a28ae7944e5f796f3439aa2df1d22  gcc/multiple_target.cc
! cc17503ba43ac2b4a57f3a09d7a25fec  gcc/mux-utils.h
! 8638ca4f5792260da81b3ac2d744e51e  gcc/objc/ChangeLog
! 8d082f55b0cdfd75ea3681dfa074f5b2  gcc/objc/Make-lang.in
! 9afcb04ac4a886901dfab5e553774a8e  gcc/objc/config-lang.in
! 42a524a0868e4113a592235af9fd222a  gcc/objc/lang-specs.h
! 6baa79bd2ba6dc947f4fd01f5657fb85  gcc/objc/objc-act.cc
! 2621911d7ee6c7116fb7e99ba392cf46  gcc/objc/objc-act.h
! 0979f2ea1b2debef9c73e4783d9f2dbd  gcc/objc/objc-encoding.cc
! fcedf976eab08e66a03bab8869eef6ed  gcc/objc/objc-encoding.h
! b37ee7fb7427c5393fbb90e710be4b5d  gcc/objc/objc-gnu-runtime-abi-01.cc
! 5101044dd9a86a1aba2304ec29d7fdef  gcc/objc/objc-lang.cc
! 1e3e99daa8cb60ea49452bc75dc67ce4  gcc/objc/objc-map.cc
! 957f32dce3bffb0f3daa6eccc1a59ee3  gcc/objc/objc-map.h
! d014415973aeadfa317bbf58d7670cb3  gcc/objc/objc-next-metadata-tags.h
! 7cbdf3c9b4fc397101a8b291b594cc23  gcc/objc/objc-next-runtime-abi-01.cc
! 19c994dfbdc61ab50613e0cc2de50674  gcc/objc/objc-next-runtime-abi-02.cc
! 2c7eca271f567ab59472b35b1f924e41  gcc/objc/objc-runtime-hooks.h
! 698aa8c8e68ec8bd5aa475f9a380de0f  gcc/objc/objc-runtime-shared-support.cc
! 5b47b9b3c7bb8072b197715dfe71a9a2  gcc/objc/objc-runtime-shared-support.h
! b648849750be8f504a100c2ba7c790e0  gcc/objc/objc-tree.def
! 050987c418264dabbae277f9450b974e  gcc/objcp/ChangeLog
! 150f27d7488f95ff898f3ff26d4d4973  gcc/objcp/Make-lang.in
! 004fa5a83d6b4ad3094b9b495f104ac6  gcc/objcp/config-lang.in
! b6aaded8e85e2c15678b63196f1010b6  gcc/objcp/lang-specs.h
! 63bf652b425124f1b55134997b32bcb3  gcc/objcp/objcp-decl.cc
! f70c3872b668ba9c99b8d73ab2f9cf79  gcc/objcp/objcp-decl.h
! 127ff083af2dabd45a27016102f6b2ab  gcc/objcp/objcp-lang.cc
! 8d1f0d9303077458b28a80a9546ff2ba  gcc/obstack-utils.h
! c2186582925518f8871bcb0f066553f0  gcc/omp-api.h
! 889315061b61c6bc0cb2f27a4eea3939  gcc/omp-builtins.def
! f441ac6601a5a1f6ba5ca39bef20c13a  gcc/omp-expand.cc
! 286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
! 4690b68c8d78cbea16b05816b53a61cf  gcc/omp-general.cc
! 8da93c6a9f42421b5af39e03da74c94c  gcc/omp-general.h
! 1324f8a540660f2cbdb237493c886d56  gcc/omp-low.cc
! 73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
! bf774332919d8fc6ad76372ccefd0aa2  gcc/omp-oacc-kernels-decompose.cc
! 51e7c46004876244d3f23ab786112c1a  gcc/omp-oacc-neuter-broadcast.cc
! 42390815a426f073b94d3b1ab2aeb263  gcc/omp-offload.cc
! 63335117e85d88f9866c3d00e2c1c163  gcc/omp-offload.h
! d5704680057b6bdba79f8e9d433cc12c  gcc/omp-selectors.h
! c82a0618eb76ff551736f55281d0c66c  gcc/omp-simd-clone.cc
! 9c6e4512e96e68638ec219f56388f10b  gcc/omp-simd-clone.h
! f0f50bc7c73f3271a51064cf4a007466  gcc/opt-functions.awk
! 613f0b49d06b4fd00699b149b1da03a0  gcc/opt-gather.awk
! e66af2a40499b3c7a18910f9d607615e  gcc/opt-include.awk
! 725e32c9ceb14432837b7feaf9e22a30  gcc/opt-problem.cc
! e6dc0a9a9ae7f37bbd800ebc53cbbfb8  gcc/opt-problem.h
! 18be0bf1ec0a8a8a04e10a1689eb2e9f  gcc/opt-read.awk
! b8f8b627140b8daf237cdd93d7acd698  gcc/opt-suggestions.cc
! 23d7d31706fa1ace036f8659d1dcf806  gcc/opt-suggestions.h
! f731cb7ebdb94eb79e6d1f93d1f488ec  gcc/optabs-libfuncs.cc
! 301353d263ba0e1eac3f3242d9e7af47  gcc/optabs-libfuncs.h
! b5fc1a94542b80b1683d2bee465e42be  gcc/optabs-query.cc
! 28bb97827aab6913c7fa55727bd8cea0  gcc/optabs-query.h
! 796aae3e1b58b2fba9ea35dae89dbcd2  gcc/optabs-tree.cc
! 295bbec8fcdeeac30d6f914e52d4adc4  gcc/optabs-tree.h
! 6c91dcd704f35b58dcd74d442e295139  gcc/optabs.cc
! 70d148f0c420cc77d698f1d603fd9671  gcc/optabs.def
! 30d9b07650a135e2e68bbac98a0e0295  gcc/optabs.h
! d272f0cd2742999e36feb3973232a1dc  gcc/optc-gen.awk
! 91c3b3785b12feb3fa4912e114cdd5a0  gcc/optc-save-gen.awk
! 21519acd3156dd76a5986d7456365dc4  gcc/opth-gen.awk
! 735656dff2a0bd83f378c9e8756e0d1a  gcc/optinfo-emit-json.cc
! fcb5b7227342c442bcddbcc06eaddcdc  gcc/optinfo-emit-json.h
! 040a2f6d1fb908c9fb9879dca90e4516  gcc/optinfo.cc
! 58f02a8817c05c6681ba150251b166e8  gcc/optinfo.h
! 1c30e8950551cbe97bda991d288b7bb7  gcc/options-urls-cc-gen.awk
! 06a83d971fd3a11f54c904ab9260cc09  gcc/opts-common.cc
! a7190eaf2af7e4bba4db992cb2b5dc41  gcc/opts-diagnostic.cc
! bd138c731d5ef02ebe19e25375c465c8  gcc/opts-diagnostic.h
! dc49add7ae35ac8842b786b817fd79b3  gcc/opts-global.cc
! 079a115ae417106f3e7f42b0272b866d  gcc/opts-jobserver.h
! 507057260df980c38d2e588bf84b1bd5  gcc/opts.cc
! 367fa9ca17175fb2e8651a43bc0d5ca3  gcc/opts.h
! b7a4b3edfca283f972cdeb23102a28a4  gcc/ordered-hash-map-tests.cc
! fccd951e3de91d49d3824e482c12e070  gcc/ordered-hash-map.h
! c77558a1c1f43463b3acae9243006ef9  gcc/output.h
! c9e6163e1eaa8f82c57f03f76e86da75  gcc/pair-fusion.cc
! b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
! 93d02e5293a47b9d0b0106fabf46e18c  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 82f4a87ff4fd2d77e57f3f46d6e0c197  gcc/pass_manager.h
! 1a496be43b4e534d45cbad96b36be29d  gcc/passes.cc
! 8bef7ffcda2165b2b4a54854eb7ea8b4  gcc/passes.def
! e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
! 57048d71e78511e69e3d39d60cb2f1b7  gcc/plugin.cc
! 995702441547e9826ffaea326d8be617  gcc/plugin.def
! 79cd4ea374ded38e9f3ef38c1624db9e  gcc/plugin.h
! 2ef5ddba0cef84ec435c3339d030f1ce  gcc/po/ChangeLog
! fcae8297fb0c1be8e1502d7ca12c249f  gcc/po/EXCLUDES
  e4e35545a1fab9b9decbe9b06b468f72  gcc/po/be.gmo
! faf83330922a51fe32364e139f58ecb9  gcc/po/be.po
! 2c2ea0e3a2f4f05209b2462f48efcf95  gcc/po/da.gmo
! c6649a8f54df0007e026b59085efb3de  gcc/po/da.po
! 2b217011a0fad5cc53cb4fb4a9feece2  gcc/po/de.gmo
! a73e0b6ea52d6e6d760d761e8868e063  gcc/po/de.po
  189b9d1af87594807b0d0e10036a64c3  gcc/po/el.gmo
! cf8c32a80e8b395aa9480b48f4aee354  gcc/po/el.po
! 7a754fb930c30cf8e51250b382a9991a  gcc/po/es.gmo
! 868d7b3eaa4edc10f2d612aa90ea53d3  gcc/po/es.po
! 748a1d219b34c4206fcf3385510cec82  gcc/po/exgettext
! 2762ecc24ecfc7e9011c49dba61ec8c6  gcc/po/fi.gmo
! 8d6ac681c4cf8c3c3d80721b8144e25e  gcc/po/fi.po
! 38cd049dd76a427057ccb7e4074fb5c3  gcc/po/fr.gmo
! e0aa5c089d28ee557b00e7fabfaf5ad1  gcc/po/fr.po
! 6e4fa7a176dcec44efe73e6aa4c94f3c  gcc/po/gcc.pot
! d5e56d923080b037bcde1bb7e25aa382  gcc/po/hr.gmo
! ae0aa3b4cc6279286d570477fbb93d78  gcc/po/hr.po
! 4848a4683407c2972d525c4d6e39766d  gcc/po/id.gmo
! e98f764f7dbb663820017b65c5169212  gcc/po/id.po
! 8ddc18127bfe8e90ac8dcb2c77e9699f  gcc/po/ja.gmo
! 5922a57ac81609f3c05c095afdf63c44  gcc/po/ja.po
! 26fc9e0770528c19e5a53e914ba5e83b  gcc/po/ka.gmo
! beb93d4c0481902eb5ab6106d0943ff9  gcc/po/ka.po
  0de8f74f2b34971c167300979ff78a8f  gcc/po/nl.gmo
! 0486441feacbced300e4c3fd75b00504  gcc/po/nl.po
! 135e586e67f14d96efc287b07ade799a  gcc/po/ru.gmo
! 06d5d1c486c6643f435ee3976ec4c703  gcc/po/ru.po
! 3e10c91a14b575b8dbbcb945999adcca  gcc/po/sr.gmo
! c9b215f71b18366dd9d40518c51823e0  gcc/po/sr.po
! 284aeabd91a50964039c264502fc928d  gcc/po/sv.gmo
! a2e54f5cdb938892c966f902326fa9fb  gcc/po/sv.po
! 328b858d48b2fac40539c9a86714b992  gcc/po/tr.gmo
! 025b2a760f671d99858cfe1d54c50293  gcc/po/tr.po
! 18a937e8c7ff64f47961a6c07b90a7af  gcc/po/uk.gmo
! c4dc0930fc726047cfc886a66115dfd4  gcc/po/uk.po
! c465805295702ad0a2c41dce26c090de  gcc/po/vi.gmo
! 693811794c25d0c027cc23d732b98261  gcc/po/vi.po
! 20d15acb3c9c6aa37fc7b30708e96b71  gcc/po/zh_CN.gmo
! b01569923f99bd8118695fc203cf85cc  gcc/po/zh_CN.po
! 01928bc0965eef40d2adf3f5e1c5b233  gcc/po/zh_TW.gmo
! 51a664ca805a56056e0ecfa887b21dd8  gcc/po/zh_TW.po
! 449bc0bffc750333208eec740b03a2c4  gcc/pointer-query.cc
! 9e3a1ed4de088e9a46c7b6839471d431  gcc/pointer-query.h
! 91b6348b1e00d92045418095ae4c75b0  gcc/poly-int-types.h
! 49996ef12af53fc104c8c73884c06aa6  gcc/poly-int.h
! 475f722ae164d853cf948309392e72fa  gcc/postreload-gcse.cc
! 1696ccf7c912de56dfdeaaa05e52380e  gcc/postreload.cc
! ee21b4dde2cee6f5b2ad862f20f03f5d  gcc/predict.cc
! a4c4b609df2262702bd9691ce3ef1b39  gcc/predict.def
! 5494603f698198c1a7d327aa6bbdb09a  gcc/predict.h
! 00fb3c12fcc945bd00d0da1986741e41  gcc/prefix.cc
! 5181d614dc205a1b7acf823c34e596ed  gcc/prefix.h
! 0afaaeb5db635f56227acae416021586  gcc/pretty-print-format-impl.h
! ed550d9201c53b2e183ac8da7882fb20  gcc/pretty-print-markup.h
! 445beb21a2f28b79808b2eebd0fe4856  gcc/pretty-print-urlifier.h
! f9aad0eb6fb81b672de9545407ee5f1b  gcc/pretty-print.cc
! b23f4b4985ec787644b4d3dfb04eee2d  gcc/pretty-print.h
! f0f11e9b4d2be4b6e5584d54d8609221  gcc/prime-paths.cc
! a6e4e4fab174379976dcb09269c8de98  gcc/print-rtl-function.cc
! a5461dd81ec55dc6f56817a1f356f345  gcc/print-rtl.cc
! 63499dea0e911b175def4a9153353027  gcc/print-rtl.h
! 25b31c9113a977129e37056b6c5fd751  gcc/print-tree.cc
! 469848c1e480b033f7ee22f68ec05f94  gcc/print-tree.h
! 6dc907415260a6318b7c61c52f2d868b  gcc/profile-count.cc
! abcd9fde490dc73b97b051f02682a850  gcc/profile-count.h
! be294583d74c167da1819e51e9001b52  gcc/profile.cc
! d30f617ac9705fc7dc5d14e744fe4ff0  gcc/profile.h
! 2869a390ab1988f2c3c7f610e74f7025  gcc/range-op-float.cc
! 5ee20dec11c42aba14ee0af712f68d8c  gcc/range-op-mixed.h
! 01058387fc46315c1e48161b3df36a09  gcc/range-op-ptr.cc
! a2017eee1188026abe7d17e1db0fbbda  gcc/range-op.cc
! eee3b15a4ba011e4744a1b724a3820a5  gcc/range-op.h
! e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
! e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
! fbf6cd31aa699eaf7943473f49a25df6  gcc/read-md.cc
! e8038f0b65555e326f704a4460123122  gcc/read-md.h
! 3dd0d65025f58dfce5d6c65cbf460d0a  gcc/read-rtl-function.cc
! cd83aae447be541259a39119965eecb3  gcc/read-rtl-function.h
! 9682aead4a158a567da54b3f2e28b405  gcc/read-rtl.cc
! b92e96443c50a876d7c10ea6563e0e26  gcc/real.cc
! cfd72298c4b4412115571bb0330d1cb4  gcc/real.h
! 45eaf15130a976ff2f72716853fe77c6  gcc/realmpfr.cc
! ec455f45b6b3263f840fb385563308d7  gcc/realmpfr.h
! 449f854c654a1e9f1d268858607c576e  gcc/recog.cc
! d6625bf8e7676e7c0d45da5ca515ab06  gcc/recog.h
! 29f0358d26dd3f8be1417f9a16c71806  gcc/ree.cc
! 40ff12eae68d7c45fee63cfa20a67634  gcc/reg-notes.def
! aa0ee68df72d26f412ede3144ff99d42  gcc/reg-stack.cc
! 326cfd57c1bbde18df46f04749c95d4c  gcc/regcprop.cc
! a15f939ddd4de2fc2a6dc44a5344d39f  gcc/regcprop.h
! fcafe43f1a7955c6e00e7b1301dae7ad  gcc/regenerate-attr-urls.py
! 3779a015e4f5337a24cf38a89c57eea8  gcc/regenerate-opt-urls.py
! d5b28e41783b141f9b3b74b8a70db6cd  gcc/reginfo.cc
! 71590310063b1415890a148c6541c820  gcc/regrename.cc
! eb523c3e4295120bb57eba5d52945a6e  gcc/regrename.h
! cc2f2f430f74c1a27d90af76f5ba9968  gcc/regs.h
! 25e4424fe9a3bd7930fca6d4bcfc41ce  gcc/regset.h
! 5b59a47effade972ba7fb7828523040e  gcc/regstat.cc
! 0a526dff109f2a3a516b7da8c5c62880  gcc/reload.cc
! 07d9f7e7e50f81b7ad3ba330db03ac74  gcc/reload.h
! 0aeada5c5ec7263e68f2ebdeebb80434  gcc/reload1.cc
! 5f98bc970b6b57607551ccefdca5ef67  gcc/reorg.cc
! 94c50f93bf70c1392a5a5101e39945e3  gcc/resource.cc
! 8fa0648a64843c58c93433f33ae94d2b  gcc/resource.h
! ae3ad005e8aa99428875298a3a4a9807  gcc/rtl-error.cc
! 45f3e0a4a568096b755122a59fb9827a  gcc/rtl-error.h
! 7948f19af7c7a128dd0ae8670c3fc343  gcc/rtl-iter.h
! 8c3b34bb9f512d3d639e53c5b1cbb307  gcc/rtl-ssa.h
! 3e123d92454df663839c73fe7db11784  gcc/rtl-ssa/access-utils.h
! 0dc16a95db8ca98a27e3650f6c12ce23  gcc/rtl-ssa/accesses.cc
! 9393072d67f2a5d2fe674ab8fc3d13e9  gcc/rtl-ssa/accesses.h
! 66b4e87db60474417ffffe027ae7f92f  gcc/rtl-ssa/blocks.cc
! 520011b5e2ce3793d91dd754d2a666ee  gcc/rtl-ssa/blocks.h
! 33b2e67a8ebbdcbe29d4b567f6ce3700  gcc/rtl-ssa/change-utils.h
! 3ee3460fd5a8e792c640416c7a25a465  gcc/rtl-ssa/changes.cc
! c607a19c0aef8e5e1a34995205ca21ad  gcc/rtl-ssa/changes.h
! 3247cab7031af7ec0a17f27198004fd5  gcc/rtl-ssa/functions.cc
! ad760b8947b6feeec03df375bb3d68b9  gcc/rtl-ssa/functions.h
! 8fb70f73f287539e8bb51d48119217b1  gcc/rtl-ssa/insn-utils.h
! 4590866ca3f3ab9179e13e7a2579c8d4  gcc/rtl-ssa/insns.cc
! 2de673bc2af519223c6ee41fa85fc95e  gcc/rtl-ssa/insns.h
! 648c7fc39e0055d394896988ef11d87e  gcc/rtl-ssa/internals.h
! 5136fbb71d7242c2a06d636aed232a61  gcc/rtl-ssa/internals.inl
! 6bb489b63ab65065cc9022a40b81603f  gcc/rtl-ssa/is-a.inl
! 932a291a584faefaf799ee16d152449c  gcc/rtl-ssa/member-fns.inl
! 27587bed0648c4e001475b813ac96c46  gcc/rtl-ssa/movement.cc
! 916928447525c25ab8401d122b855b0c  gcc/rtl-ssa/movement.h
! add2ef65d80adc09236eaff62179a1fe  gcc/rtl-ssa/predicates.h
! f39c55472711c984059aff01fd972f31  gcc/rtl-tests.cc
! 1105088521e8de72d332faeda31306c7  gcc/rtl.cc
! 41ece3c6a40e9a14609645318016e228  gcc/rtl.def
! ac204602d4572883fa8bf648dcd15252  gcc/rtl.h
! 4ee5bf7f59df8ad15a444be0bc71cb4e  gcc/rtlanal.cc
! e38f02dbd2d0d8c027ccae4b785f3fb2  gcc/rtlanal.h
! f829c444b36f34672cb4a7b019c4513b  gcc/rtlhash.cc
! ce0129afbbfb3ab85e5bd8ce9672117d  gcc/rtlhash.h
! bf99a07069b9da4b602c2390c1abc7fe  gcc/rtlhooks-def.h
! 1543373668080b6499c41931b1642e3d  gcc/rtlhooks.cc
! c08edc659010d9072c249418c1be7fe6  gcc/rtx-vector-builder.cc
! 1c97cd280a3defa6aeae20133a86a9e8  gcc/rtx-vector-builder.h
! ecb31a48caf7998f695601ec7350bdc0  gcc/run-rtl-passes.cc
! c4bc204b62fdb61848c09abf05a60a9d  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! e378b10ea327a1072182d592f68b0153  gcc/rust/ChangeLog
! c2a8648800b13beaa7b2efef8e94ea6f  gcc/rust/Make-lang.in
  f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! 1bde08bec2946c34ff76bc8cdc25d05c  gcc/rust/ast/rust-ast-builder-type.cc
! 94509d0cc6a70ebadc202f4b2e33ce75  gcc/rust/ast/rust-ast-builder-type.h
! 8d09fe09bee63f4b435cf560a27a1d3b  gcc/rust/ast/rust-ast-builder.cc
! 1dfe41df8bd8578fa0259cc94a95f503  gcc/rust/ast/rust-ast-builder.h
! 9e7d191851e32fe5d8fa94e37e595d59  gcc/rust/ast/rust-ast-collector.cc
! 71498e09dd5cef19196f335a5770128f  gcc/rust/ast/rust-ast-collector.h
! 494672e10e3cd2a3c29f72147b6e42e8  gcc/rust/ast/rust-ast-dump.cc
! 5d47bbb94f2cf0f16b83fb4054240465  gcc/rust/ast/rust-ast-dump.h
! 4b956fa2250010f85282d2ea3339d66f  gcc/rust/ast/rust-ast-formatting.cc
! 78c6042c3319b6662dbb8f1b92501826  gcc/rust/ast/rust-ast-formatting.h
! 1520397870a21ed323db6c2e5d64107e  gcc/rust/ast/rust-ast-fragment.cc
! f419aa5c0c96c075ac096b7fc99ba81a  gcc/rust/ast/rust-ast-fragment.h
! 9963bb21ebe47acb03bb14b68f901ab2  gcc/rust/ast/rust-ast-full-decls.h
! 629186b05e52e76e5b8194df9669607d  gcc/rust/ast/rust-ast-full.h
! cd83708bec330f30d4dcd14f49423360  gcc/rust/ast/rust-ast-visitor.cc
! 3ba85383a59be6c1c15d7a5bc5b5d7f3  gcc/rust/ast/rust-ast-visitor.h
! 08259d1bd7cd3c95b5fb384b329bfdee  gcc/rust/ast/rust-ast.cc
! 80b49ab945eb934286a2a769c01c7898  gcc/rust/ast/rust-ast.h
! b23481ae65d252dc744d6dcf8f792b22  gcc/rust/ast/rust-builtin-ast-nodes.h
! c61139312203210cd2cc8b77a5b9c3e0  gcc/rust/ast/rust-collect-lang-items.cc
! 3a21424b4375cc9f88cc9e3c4f57f551  gcc/rust/ast/rust-collect-lang-items.h
! 5da8bf90d2270ced3c1e9508cf375444  gcc/rust/ast/rust-cond-compilation.h
! 79730a68327bd58994e60f6788e3c04c  gcc/rust/ast/rust-desugar-for-loops.cc
! 35656b2b58f4df7b37f64084a2d9d51a  gcc/rust/ast/rust-desugar-for-loops.h
! 4c0f95ff296a9ea9fd96a32301c5d461  gcc/rust/ast/rust-desugar-question-mark.cc
! 7b084a88cc7ef4a737a87d80ddc81728  gcc/rust/ast/rust-desugar-question-mark.h
! 7260f062d272851e62487f0c3a54a933  gcc/rust/ast/rust-expr.h
! 8431184a8fe616547ba53c4bec69e873  gcc/rust/ast/rust-fmt.cc
! 409a1f7884761d17ab0e43134c206cca  gcc/rust/ast/rust-fmt.h
! b58ddbd1c6babd9c1ab4b4299e7d3f10  gcc/rust/ast/rust-item.h
! a0add5d46488d90a642dd121d6a5676b  gcc/rust/ast/rust-macro.cc
! 91a744d824011f311337b006ddc9379e  gcc/rust/ast/rust-macro.h
! ee17921f160448a02f768c2c9b03bbe0  gcc/rust/ast/rust-path.cc
! cf78dd541e1717e7a58fe7d341ec8969  gcc/rust/ast/rust-path.h
! 50ca776a43c52ab30ed3242021cc6720  gcc/rust/ast/rust-pattern.cc
! c5bb52b763e5556a23de4e286b591d3e  gcc/rust/ast/rust-pattern.h
! ed6c0cb758442b73c02cd2e9b2d457e0  gcc/rust/ast/rust-stmt.h
! a0ff0595e9fa7931ff898d70fb0029a9  gcc/rust/ast/rust-type.h
  39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
! 064ce3571a08f20977f4980b508ce086  gcc/rust/backend/rust-builtins.h
! 559a0ff58613680fc2cd3c9aab25ff80  gcc/rust/backend/rust-compile-asm.cc
! 0d8c8d428e157592b346aa42452954c8  gcc/rust/backend/rust-compile-asm.h
! 7f0d9137cb532f69614fe4f7f6d7b0ea  gcc/rust/backend/rust-compile-base.cc
! 5674eb1368c65d73a832194252ee92b7  gcc/rust/backend/rust-compile-base.h
! 0f15d9ff8da83339f9271db2192d960c  gcc/rust/backend/rust-compile-block.cc
! 73f02b98894b075ed1f938ec75857960  gcc/rust/backend/rust-compile-block.h
! a25938c81b60a7f8f6e33bf3c686761f  gcc/rust/backend/rust-compile-context.cc
! edbc1aef169c9cd16810b1ed3d347834  gcc/rust/backend/rust-compile-context.h
! 1028806b181f12c5d2f2b1a36dbc6502  gcc/rust/backend/rust-compile-expr.cc
! 91a6b1d3cf25bcb7a4c07fa216fbe6e3  gcc/rust/backend/rust-compile-expr.h
! bdd9c27c46d5b67cee4389fee210f33a  gcc/rust/backend/rust-compile-extern.h
! 96023f10d704a5f5aa3aa2126eac4219  gcc/rust/backend/rust-compile-fnparam.cc
! e525943b8d7380cbc76915f9e460adab  gcc/rust/backend/rust-compile-fnparam.h
! 5e852dd899fb991ce93414871ae4df97  gcc/rust/backend/rust-compile-implitem.cc
! ee0054c15512a93ccc6bec6718c95863  gcc/rust/backend/rust-compile-implitem.h
! 8962f46679e95178ebe078779850335e  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! a74b4c7722d676c2b3834c8b7bfbd5bb  gcc/rust/backend/rust-compile-item.cc
! a07b7b58496fec94267e6e16d5511ad7  gcc/rust/backend/rust-compile-item.h
! d145db1014d8176792934905959520a6  gcc/rust/backend/rust-compile-pattern.cc
! cbf73d710f41db2e4ab45ff69859e3b1  gcc/rust/backend/rust-compile-pattern.h
  cd711182d62e81ac9cb36e89d0ab5062  gcc/rust/backend/rust-compile-proc-macro.cc
! 4ac6dde4db7921d9e22e10c954c62588  gcc/rust/backend/rust-compile-resolve-path.cc
! a02df3439a425a492f39168431dbf58b  gcc/rust/backend/rust-compile-resolve-path.h
! db14e90dc56947a84d499e117133e786  gcc/rust/backend/rust-compile-stmt.cc
! 8d042d63efac54929399df3c7b8741f9  gcc/rust/backend/rust-compile-stmt.h
! 943e800783a5c6e0e934066fe1478b65  gcc/rust/backend/rust-compile-struct-field-expr.cc
! 3b61313140b254e7402b2ab5ed53d760  gcc/rust/backend/rust-compile-struct-field-expr.h
! 9bc65a6328d3195fb4601dcbef8c79af  gcc/rust/backend/rust-compile-type.cc
! de64579bb929a578863d6e12c24bf03b  gcc/rust/backend/rust-compile-type.h
! 341ef22504ebd5da76cd4d4e31e4d071  gcc/rust/backend/rust-compile-var-decl.h
! bd5a2dcc98c2d6d545a18d5dc44734f1  gcc/rust/backend/rust-compile.cc
! 0de4696fca9f7f20e245ed49dbd8bed7  gcc/rust/backend/rust-compile.h
! 9b0dd451553fca932db862dafd6865ee  gcc/rust/backend/rust-constexpr.cc
  3778b6c3ad2a1fad766013bb9e1d8ea3  gcc/rust/backend/rust-constexpr.h
! bef8332d7c99228e46b17e35e62ab385  gcc/rust/backend/rust-mangle-legacy.cc
! fd3249cd86e1c67112cdeed5a5067b18  gcc/rust/backend/rust-mangle-v0.cc
! 21b6254246aa6d0468462df2e633b78b  gcc/rust/backend/rust-mangle.cc
  512554d11e53c000f4acc53f4b5c960a  gcc/rust/backend/rust-mangle.h
! 9f7e749dbb134497fdcc9cd05e39a37f  gcc/rust/backend/rust-tree.cc
! 142874544cb904f8757167f9c26b4a2b  gcc/rust/backend/rust-tree.h
! 675e019161664f914b95bbc7799e517c  gcc/rust/checks/errors/borrowck/bir-design-notes.md
  eee383c6d924f06fa96c8f58f21fc6af  gcc/rust/checks/errors/borrowck/dev-notes.md
! 280db2cd4a7844c95895b2a0a282b858  gcc/rust/checks/errors/borrowck/ffi-polonius/Cargo.lock
! 7c76d49bacbdb793a9dd6b84af180822  gcc/rust/checks/errors/borrowck/ffi-polonius/Cargo.toml
! e95d33a11490800e5a24b8eb3b4558ed  gcc/rust/checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs
! 176ad4ad98603108017a56bd46d0ef3a  gcc/rust/checks/errors/borrowck/ffi-polonius/src/gccrs_ffi_generated.rs
! 93aa3f851edadeb0bd109e57bd8a0b4b  gcc/rust/checks/errors/borrowck/ffi-polonius/src/lib.rs
! e073fe16158270bfefc61b71ff1333e4  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/.cargo-checksum.json
! 390cd6e7ba83790bc1239599a33288eb  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/CODE_OF_CONDUCT.md
! 445655f6d9fad74ded8ab537424477c8  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/Cargo.toml
! 1836efb2eb779966696f473ee8540542  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/LICENSE-APACHE
! b377b220f43d747efdec40d69fcaa69d  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/LICENSE-MIT
! d1c5e56174a1f521e627808be866ca4c  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/README.md
! a4bf4f416b8022445c663dc39c45e9b1  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/RELEASES.md
! a7881ae59c226f5a013693d5aa3f5b3f  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/examples/borrow_check.rs
! 17643ec3434a940ba172d0fb61979014  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/examples/graspan1.rs
! 203db0a967fb65b9e35f13cfdb60e1e4  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/join.rs
! bdb2a4587a888c82ae2f20377b4c35f5  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/lib.rs
! 9a70864b006e1874f06e5a331b772261  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/map.rs
! 1dfd466589d2e7386e855d2cdb2e8bbb  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/test.rs
! 098576e8379905086aa93171e756873c  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/treefrog.rs
! 35d114344bf00fa4ad35928d093d6f19  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/.cargo-checksum.json
! e4fddbc1449bbef2b2c0dc975e7de01b  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/CHANGELOG.md
! 7b27d6a1a57b1f127c4c7650133b3801  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/Cargo.toml
! 1836efb2eb779966696f473ee8540542  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/LICENSE-APACHE
! 362255802eb5aa87810d12ddf3cfedb4  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/LICENSE-MIT
! 622c041021f5f628732af39ec784554d  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/README.md
! f9ecbca9723258bf2aaafd8810d7a665  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/benches/value.rs
! 4766041f65dc351b570e71eb46d5ad58  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/__private_api.rs
! 29600674324047a964d5b69d0d817a62  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/error.rs
! ae2cf6d3044de79357a0788741092b40  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/key.rs
! 7abb62faa92b33519e012905c7d967e1  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/mod.rs
! 0bc997c029ec809e0b260152c1dd2aa9  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/source.rs
! c88ec3b2390b9dca6395786ab1f7fb88  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/value.rs
! 3013fe79c37512e111dceaf329b018ae  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/lib.rs
! 6abeebfd0461aae65b77755e0cf2ed98  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/macros.rs
! b1c6a046af14e8719aadedacad40a7fa  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/src/serde.rs
! 187462b06a35e0e4d6fdb0f22ad39817  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/log/triagebot.toml
! 458ffd62f53ad48318a6ff3931b26880  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/.cargo-checksum.json
! 21bd189ad65609f7c20e8729389b8ffb  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/Cargo.toml
! b13b84c9c836129ca1379174b71c4513  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/README.md
! 55ee6c1c56f090da73bbdbf8a8f8f5be  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/facts.rs
! 248e0dcc0e257a6b209895ba62b32316  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/lib.rs
! d76d4edaef66c8f0e4af59fe32f961a5  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/datafrog_opt.rs
! 34e5f3902ee747fcc96fe86ad5cefd64  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/initialization.rs
! 0abc5da594ad2a212d34324a47526b9c  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/liveness.rs
! c228786d19c7e2ef3b4d43662edd5ebc  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/location_insensitive.rs
! 0d651aee02a98fd397018ff6d5a73a5b  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/mod.rs
! 13fad5d1bdd7c77d7a3f00ab23f2b3fa  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/naive.rs
! e6a98217bc70c2064cb3c9a085fbc292  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/.cargo-checksum.json
! 390cd6e7ba83790bc1239599a33288eb  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/CODE_OF_CONDUCT.md
! 7947bfa977c6e31485ca5d418d651138  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/Cargo.toml
! 1836efb2eb779966696f473ee8540542  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/LICENSE-APACHE
! b377b220f43d747efdec40d69fcaa69d  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/LICENSE-MIT
! 3bda73d900dd191dbd91b8abb1afba8f  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/README.md
! bca09e7439e4187f0ea4c60c867580fc  gcc/rust/checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/src/lib.rs
! 63a3c0a3552e5013aac45fb236f9ff6c  gcc/rust/checks/errors/borrowck/polonius/rust-polonius-ffi.h
! ad886f79708dd374dbc6a3e224533e14  gcc/rust/checks/errors/borrowck/polonius/rust-polonius.cc
! eeb84944060c4a1dcb454cd0b5f95123  gcc/rust/checks/errors/borrowck/polonius/rust-polonius.h
! 104c2e35b3b4a9a0567197c60925ba29  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
! ec446229aa86e5dd9174db31d581248f  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
! 24551879cd8a2bc4dd3dac9cf0291ddf  gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
! d48ec596fd5967c76362be849a8ab81a  gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
! aa968f61fed8bd18300146f8fb379145  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.cc
! bbb6b401287aeefeddf82860e011dd85  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
! eef10db006b9e02b15bf32f5538163f7  gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
! 38cef03aee9d5c550a78c56952b2791e  gcc/rust/checks/errors/borrowck/rust-bir-builder.h
! c191f60cd765582e6056c6e2f13b906a  gcc/rust/checks/errors/borrowck/rust-bir-dump.cc
! 3d1d580931425b21ef771bb7fbc06269  gcc/rust/checks/errors/borrowck/rust-bir-dump.h
! ac4645a6b64765a8b1a069123b36a51d  gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h
! 7bad83dd9989404f07d5e701e33f41bc  gcc/rust/checks/errors/borrowck/rust-bir-free-region.h
! 9b90fb36de49b27afbfd8ac510deb304  gcc/rust/checks/errors/borrowck/rust-bir-place.h
! c155995ce485ce0e9a21876183c1a9bb  gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
! 3f3f1b80158f254c3d0e6d9eef3ee77f  gcc/rust/checks/errors/borrowck/rust-bir.h
! 5e2b21dc5728d65e4f86b2b882432ec4  gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
! e30cd7ae36132321a16ee23e46ef569d  gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.h
! 8a4b180b21798e53955cc8d26ee08af1  gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
! 6998d3562ab4b5a22db0a644a774bf34  gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
! d7a0733be1e220dbefb2c62b09a5d793  gcc/rust/checks/errors/borrowck/rust-function-collector.h
! 2b02281b7fb4677b31135f5f48ecd435  gcc/rust/checks/errors/privacy/rust-privacy-check.cc
! 3da657013b217061fe50f867abad385d  gcc/rust/checks/errors/privacy/rust-privacy-check.h
! 41958e3868642abaa915c9f7ce14838f  gcc/rust/checks/errors/privacy/rust-privacy-common.h
! 3a65622c9ada7db251b7cece7376f02b  gcc/rust/checks/errors/privacy/rust-privacy-ctx.cc
! b315059bb0141d7effc2dd66a34088ec  gcc/rust/checks/errors/privacy/rust-privacy-ctx.h
! e45e9a0dee2321113079216e9fa12521  gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
! 2211471b010c2938db7791171f4c4df9  gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
! 7afd2e64866a93982cf63a617444202d  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
! e089325331566be03e4a844c454d02c9  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
! 58208890f92170e89665f57fd9d807f2  gcc/rust/checks/errors/privacy/rust-reachability.cc
! 63ebea218badc639cc7db7df1d604e12  gcc/rust/checks/errors/privacy/rust-reachability.h
! 30ed1a03fdfb65f6b1632f674b10b333  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
! faaa6683b382177d7e39c93079648e98  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 58e655e2eb795a961d43bad8c29f47cb  gcc/rust/checks/errors/rust-ast-validation.cc
! 8b2205953da2f181b2d51187aefbffab  gcc/rust/checks/errors/rust-ast-validation.h
! 461c5e8d02d323d997c9d1c569d16143  gcc/rust/checks/errors/rust-const-checker.cc
! d7aa31cece1c3d51a830c54e837461e1  gcc/rust/checks/errors/rust-const-checker.h
! 770d1eaeae7a9fc7f04ef62e6f33859e  gcc/rust/checks/errors/rust-feature-gate.cc
! 5a932cefc939038ecbf29a5e10b317d5  gcc/rust/checks/errors/rust-feature-gate.h
! 1969763e94159850613cb3a0763e3c21  gcc/rust/checks/errors/rust-feature.cc
! 94ec63b6dec3b278430e4623056b27c0  gcc/rust/checks/errors/rust-feature.h
! 7062d56787f6aab60a5f031ea138af94  gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
! d47614e045258e7d3bb0f3c9d8a4cb01  gcc/rust/checks/errors/rust-hir-pattern-analysis.h
! e030624767cd717222d3626d9d62d9a9  gcc/rust/checks/errors/rust-readonly-check.cc
! 3d9c9e625336a7785ee74c5dc9dbe5db  gcc/rust/checks/errors/rust-readonly-check.h
! d1f288de7a74dbf0ec18777f1f738fb0  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 220e76fa27b08a93a1bde99b81960088  gcc/rust/checks/errors/rust-unsafe-checker.h
! daeb95fb25e32d1dba7a700a5dd542ed  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 372ef6c64dc848ca737e4f258d2e9f32  gcc/rust/checks/lints/rust-lint-marklive.cc
! 1014cd28f28fb3ce945cb34ad0190d8d  gcc/rust/checks/lints/rust-lint-marklive.h
! 3d12ce22fc794ea9c3de54e7ab40bdb9  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
! 4bef68035bce9fbce70787d7b698c305  gcc/rust/checks/lints/rust-lint-unused-var.cc
! 31a28464a707538b3feb2cca81d0baca  gcc/rust/checks/lints/rust-lint-unused-var.h
! fa5872ac507a48a11a82370b396b9110  gcc/rust/config-lang.in
! 52c048f669ce2c7aba467b5d1771e9b4  gcc/rust/expand/rust-cfg-strip.cc
! c9bd9ae0734a5ce623f1f997eb83e551  gcc/rust/expand/rust-cfg-strip.h
! c5328c5afa663c30570fc7e776b9e5ab  gcc/rust/expand/rust-derive-clone.cc
! 0f5f46fbf1d84057b2f5c9675beb103d  gcc/rust/expand/rust-derive-clone.h
! 09be27af0eb6fd26f67529031ae051d6  gcc/rust/expand/rust-derive-copy.cc
! 0184eab6033831cdebc05a747075c108  gcc/rust/expand/rust-derive-copy.h
! 0abf66b4f0b5209cf69bf9a9528b2f46  gcc/rust/expand/rust-derive-debug.cc
! c3e6cc7662d1ef8947fb988077f97569  gcc/rust/expand/rust-derive-debug.h
! 41935d4a796c10ec44c95b51fa744ca7  gcc/rust/expand/rust-derive-default.cc
! df56b23b19c01cfc70d4a9da2069fa56  gcc/rust/expand/rust-derive-default.h
! bdd81cb310436f41c05b43b2080cb63e  gcc/rust/expand/rust-derive-eq.cc
! a62bc3396d4a43c0fa61076121b0ff9f  gcc/rust/expand/rust-derive-eq.h
! 07d3b883d4a122f67c19fc1b8eb2e0de  gcc/rust/expand/rust-derive-hash.cc
! 689d4442cb46daaecafb102576b7dce1  gcc/rust/expand/rust-derive-hash.h
! bb3bce1440cee58a726b2419a9255eaf  gcc/rust/expand/rust-derive-partial-eq.cc
! 41288c848ad18b972a338a5c52966503  gcc/rust/expand/rust-derive-partial-eq.h
! 0bae3bed37f64868ed82da0b13b8dbae  gcc/rust/expand/rust-derive.cc
! c100e6362cfaa3fd7eb02313a6e06359  gcc/rust/expand/rust-derive.h
! ec2b71b0087617d699660612ff25a081  gcc/rust/expand/rust-expand-format-args.cc
! 3212518ba7ade95bb86b3581ea623f4f  gcc/rust/expand/rust-expand-format-args.h
! 930430853d31ee9d2409ffa0a48b705d  gcc/rust/expand/rust-expand-visitor.cc
! c3fed0b6e0546fa753ce93ae999c99c9  gcc/rust/expand/rust-expand-visitor.h
! 07b3f49c9818a257a01b762daa00d400  gcc/rust/expand/rust-macro-builtins-asm.cc
! 929ea90055149506fd577168e982d17d  gcc/rust/expand/rust-macro-builtins-asm.h
! b9023dcf0359d829ece388161af6f414  gcc/rust/expand/rust-macro-builtins-format-args.cc
! 8276fd75598fedaaac9ef533cff23c55  gcc/rust/expand/rust-macro-builtins-helpers.cc
! ea2352973a1587815a8411266f98c016  gcc/rust/expand/rust-macro-builtins-helpers.h
! f813ef580dce9d9b6c9a75e9577bdbe0  gcc/rust/expand/rust-macro-builtins-include.cc
! cfe6beb6d729f4b555ffc6493de34a20  gcc/rust/expand/rust-macro-builtins-location.cc
! 7d4293c5bb91064c3bb11e2ec9bd1893  gcc/rust/expand/rust-macro-builtins-log-debug.cc
! 277542c684eada894583030cf02b7424  gcc/rust/expand/rust-macro-builtins-test-bench.cc
! 277542c684eada894583030cf02b7424  gcc/rust/expand/rust-macro-builtins-trait.cc
! e253e39de6ea2a67018f97fc8e838ef5  gcc/rust/expand/rust-macro-builtins-utility.cc
! 2a9d4162838d944d5b2a1b58b0816b79  gcc/rust/expand/rust-macro-builtins.cc
! 64a01098c871c7f15304c5975faeb258  gcc/rust/expand/rust-macro-builtins.h
! bad6678ecb2befc5f02d38142ed85307  gcc/rust/expand/rust-macro-expand.cc
! e0f7a029dbe434c8fc935166b193348f  gcc/rust/expand/rust-macro-expand.h
! b4b31e238293e868394fdf9247353b30  gcc/rust/expand/rust-macro-invoc-lexer.cc
! df22bd0c18e9d6037a1dbfbd733f009a  gcc/rust/expand/rust-macro-invoc-lexer.h
! 541cc1dc79b19819eb6d74033a8225bc  gcc/rust/expand/rust-macro-substitute-ctx.cc
! fbf525cd3b3ec9396b8c278d2a098d4e  gcc/rust/expand/rust-macro-substitute-ctx.h
! 49dc46efca0e56504ad8787e4548f25f  gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
! 9a7011cdfca3c1d04ffe7ca8cd3a2537  gcc/rust/expand/rust-proc-macro-invoc-lexer.h
! 7faead690d4bd47de7b4b5fe0c4fb7d7  gcc/rust/expand/rust-proc-macro.cc
  0fc794873a4275b45265cfc97fd85f06  gcc/rust/expand/rust-proc-macro.h
! eaa2130ec2dc05936485fdde9dc46178  gcc/rust/expand/rust-token-tree-desugar.cc
! 1dfc5519eea2efbd3f88fa4a265bace7  gcc/rust/expand/rust-token-tree-desugar.h
! 037942d290ca965bb663d38baa78dfc8  gcc/rust/hir/rust-ast-lower-base.cc
! 4959e9f62c2bd49854dd5687a936d1e3  gcc/rust/hir/rust-ast-lower-base.h
! 49ee67f4b7dbf57d3dcc6cc238e66eb1  gcc/rust/hir/rust-ast-lower-block.h
! aad603a39b27fdfad3cc2614aff9e4e4  gcc/rust/hir/rust-ast-lower-enumitem.h
! 2f723b99503644d699490d714c125064  gcc/rust/hir/rust-ast-lower-expr.cc
! 1b6be6cbb701c45040df05d854f4eda2  gcc/rust/hir/rust-ast-lower-expr.h
! ca7b9bf7967f386832b1348f16c194b5  gcc/rust/hir/rust-ast-lower-extern.h
! b4d59b1df9f1d6e27671a9e166c77abb  gcc/rust/hir/rust-ast-lower-format-args.cc
! 1c9070543940e6d4a4dbb4d601d853ae  gcc/rust/hir/rust-ast-lower-format-args.h
! 20b3e5dbdac8bc4474e3c4e641ec9312  gcc/rust/hir/rust-ast-lower-implitem.cc
! 5e7a1a73e8bcdecc0d93cade34ba477b  gcc/rust/hir/rust-ast-lower-implitem.h
! 58388c90013118baa4eb3a6763f11b4e  gcc/rust/hir/rust-ast-lower-item.cc
! bd784e40b163161f50bb84d2cf3d8372  gcc/rust/hir/rust-ast-lower-item.h
! 9ed6a1d743745a3dcef8d01ede5e9953  gcc/rust/hir/rust-ast-lower-pattern.cc
! 9ed55743496bcf0607042817cfa4b0d8  gcc/rust/hir/rust-ast-lower-pattern.h
! 5b0f3b0dffc07b108851141d7b749598  gcc/rust/hir/rust-ast-lower-stmt.cc
! af09b97c0baeff87520d8face05b8f05  gcc/rust/hir/rust-ast-lower-stmt.h
! b86ab6b1f3ddb71091146e2d7265bd7f  gcc/rust/hir/rust-ast-lower-struct-field-expr.h
! f13fb5aa2af843f0b669c783f30c3bdd  gcc/rust/hir/rust-ast-lower-type.cc
! 65a140ce1d80b5f6b1a988af1826981a  gcc/rust/hir/rust-ast-lower-type.h
! 9dfa377d9de5f51b39db1f9d48f2cd44  gcc/rust/hir/rust-ast-lower.cc
! 1556cff9ac2adb6d49ea18702b64a1d6  gcc/rust/hir/rust-ast-lower.h
! e175425d058e25458a6a2d2ef2b0fcc0  gcc/rust/hir/rust-hir-dump.cc
! 4f26839e78e07d7e266bc4bb6cfd882b  gcc/rust/hir/rust-hir-dump.h
! 9ae488c2548387541bb760eaff79fbe9  gcc/rust/hir/tree/rust-hir-attrs.h
! 7703b12f41d395a71eb5420f6c0a7ba7  gcc/rust/hir/tree/rust-hir-bound-abstract.h
! 8f81aae1c3676476d16c5c42bfdc499a  gcc/rust/hir/tree/rust-hir-bound.h
! 7207def4fbc8ee1462cd0c849e680947  gcc/rust/hir/tree/rust-hir-expr-abstract.h
! c817d098305e694a04da84539c2cb36f  gcc/rust/hir/tree/rust-hir-expr.cc
! 275456ca2ccc229487dc125d9a5d2b96  gcc/rust/hir/tree/rust-hir-expr.h
! 277ff9842a229197dd91d2c85e5d740d  gcc/rust/hir/tree/rust-hir-full-decls.h
! e872fd48a9851c4ec4c3171c007d112d  gcc/rust/hir/tree/rust-hir-full.h
! cf64af347e4de1f3259e0ba179d8e53b  gcc/rust/hir/tree/rust-hir-generic-param.cc
! a603bdf4347024ad0958004ae5e1a7fa  gcc/rust/hir/tree/rust-hir-generic-param.h
! d3de8a6802ef88cf0eed5c84357302ad  gcc/rust/hir/tree/rust-hir-item.cc
! d671e61d35d0744baf7ff9a395a3da81  gcc/rust/hir/tree/rust-hir-item.h
! 9f4e7a70392e148fe75decd40598a2d9  gcc/rust/hir/tree/rust-hir-literal.h
! f40fe76efdee3810473f09205ea63119  gcc/rust/hir/tree/rust-hir-node.h
! 46af2c5116f73b3da4d0bc13d9cd86f8  gcc/rust/hir/tree/rust-hir-path.cc
! a830ffa39d8a57080e5768cc2d925911  gcc/rust/hir/tree/rust-hir-path.h
! ee67550806e0bdf8bb66f8d3be82d6fa  gcc/rust/hir/tree/rust-hir-pattern-abstract.h
! 3f30461ef5744eb1db26b7be92030012  gcc/rust/hir/tree/rust-hir-pattern.h
! e55c4f7404915fb3515e09a7441125a5  gcc/rust/hir/tree/rust-hir-simple-path.h
! 22283c03c1dc5ac012096d395c9414c2  gcc/rust/hir/tree/rust-hir-stmt.cc
! d231530a896626f20475091e1168963d  gcc/rust/hir/tree/rust-hir-stmt.h
! 16ef9d998795cd10270b6ad32cd1b2b9  gcc/rust/hir/tree/rust-hir-trait-bound.h
! 684c1af82b6a5ba5dc09a5c6db582394  gcc/rust/hir/tree/rust-hir-type-abstract.cc
! 6562590fe0c6f05e4a87d2a179ac8d87  gcc/rust/hir/tree/rust-hir-type-abstract.h
! 807eed2e2680f94f8f1dcc296c33f695  gcc/rust/hir/tree/rust-hir-type-no-bounds.h
! c143cea24f5c3be477e96312dd276c58  gcc/rust/hir/tree/rust-hir-type.cc
! ba332eda5c2e84ae8a3591891ae7adcd  gcc/rust/hir/tree/rust-hir-type.h
! 06d2fd0a583780c83aad574397d7edc3  gcc/rust/hir/tree/rust-hir-visibility.h
! a9ce4bb18277085ac0f36fce0ab7f87f  gcc/rust/hir/tree/rust-hir-visitable.h
! 936fc7c49648a6bc4cf14bd144e2c1a3  gcc/rust/hir/tree/rust-hir-visitor.h
! 6fec2d1dbb6e420bacfdf0eb31099a67  gcc/rust/hir/tree/rust-hir.cc
! 6ea149cdd32444b93f142193c19c3930  gcc/rust/hir/tree/rust-hir.h
! fa7c267c70f0094382b7b3df35e83412  gcc/rust/lang-specs.h
! ab7027b96b1ba20f2df5ee18fce35421  gcc/rust/lang.opt
! 19c784c2297961588e002876d94ceea4  gcc/rust/lang.opt.urls
! 4f1a01d5a1d9c4db6498642d7194185e  gcc/rust/lex/rust-input-source.h
! bf2d177d2b45b2a33b8b8bb35b034cc0  gcc/rust/lex/rust-lex.cc
! 8905d55a4c4195b8e0317c53d3ae868a  gcc/rust/lex/rust-lex.h
! 154e23941e19751252a592ca74df8d2f  gcc/rust/lex/rust-token.cc
! 8e9cfb15c4d8bf060d797a7195e08417  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
! 4f9fe56fdacb6adaadc51d2f5c45ee38  gcc/rust/metadata/rust-export-metadata.cc
! 12ec7837566ee621427ed56d94422509  gcc/rust/metadata/rust-export-metadata.h
! 2edf1c3452ec2edc627904170818d7fe  gcc/rust/metadata/rust-extern-crate.cc
! 998f5953d66b13c97f7488faa8c315ac  gcc/rust/metadata/rust-extern-crate.h
! 2367a051f65bc9a16ef69d32a8d72b42  gcc/rust/metadata/rust-import-archive.cc
! 8e402bbcc2d35dcfc7d619bb67a37551  gcc/rust/metadata/rust-imports.cc
  0b8b8d52e0311e31fc3bfa30129004bf  gcc/rust/metadata/rust-imports.h
  6157b499aceab0b9b632eea936bc0f0d  gcc/rust/parse/rust-cfg-parser.cc
  e0d1b97260228c2544bb509ee36eb811  gcc/rust/parse/rust-cfg-parser.h
! b72121861f6a3b0ef67b8f0b9f45acdf  gcc/rust/parse/rust-parse-impl.h
! 6731431d9398ba1cb6737e8f226363cc  gcc/rust/parse/rust-parse.cc
! 7fce491e2c96758f0662a09a7249b4a8  gcc/rust/parse/rust-parse.h
! 37ca5ab4f34ef8c0bab5d18827bb7235  gcc/rust/resolve/rust-ast-resolve-base.cc
! 30877a5f16ca4a898a0c715b7347eabd  gcc/rust/resolve/rust-ast-resolve-base.h
! 2850641d20558be869d143bac5044a69  gcc/rust/resolve/rust-ast-resolve-expr.cc
! cb6cbe895d611c30562c30382ab5e4ab  gcc/rust/resolve/rust-ast-resolve-expr.h
! 8f68f019c34cda122cc27f3b94c06274  gcc/rust/resolve/rust-ast-resolve-implitem.h
! 7b1233dbdd87d481a440efd33735d4b5  gcc/rust/resolve/rust-ast-resolve-item.cc
! 2a354a8ebb6ace97ec01a9d5e6d32972  gcc/rust/resolve/rust-ast-resolve-item.h
! 081dad878fff976d1a4ad6c5ba4484ab  gcc/rust/resolve/rust-ast-resolve-path.cc
! a8c2cd13a9e17fcd77075f298ece9bbc  gcc/rust/resolve/rust-ast-resolve-path.h
! ef7e2ecdd75710e6563c88788b5a3e0a  gcc/rust/resolve/rust-ast-resolve-pattern.cc
! cc6a86d6d4f3b82cb0c90909786f72d0  gcc/rust/resolve/rust-ast-resolve-pattern.h
! 6fb9870e2dc236966f72710990ede295  gcc/rust/resolve/rust-ast-resolve-stmt.cc
! 12700483683bf4982843f45e0cbb789d  gcc/rust/resolve/rust-ast-resolve-stmt.h
! 469f217b1a5f7e8b64533a460dd7d1b5  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
! d6e1a39ea6b2856a3ceb1f1ad21da843  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
! ef9539cd1ebecb0d7b169dbc11cd1bda  gcc/rust/resolve/rust-ast-resolve-toplevel.h
! 5061ef72d91033f3e530fbcf12c74a82  gcc/rust/resolve/rust-ast-resolve-type.cc
! fa193dd442b12b6e7f6021808ee9cb99  gcc/rust/resolve/rust-ast-resolve-type.h
! a67cd4aa554b1ba1e3df44a3b11eb284  gcc/rust/resolve/rust-ast-resolve.cc
! d5113906116ffd33fb4c45243a97fb67  gcc/rust/resolve/rust-ast-resolve.h
! d55755dea4a4f8582af0b60f03a8ed11  gcc/rust/resolve/rust-default-resolver.cc
! c3fdedf83805ac7586a2684318abf79c  gcc/rust/resolve/rust-default-resolver.h
! 839774c79ed1b7ad3ff7d9f0728971c4  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 826f4576044fe5d0b0e37101aa34b3bf  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 431fa1500f72db06b9c673038bdbeafc  gcc/rust/resolve/rust-early-name-resolver.cc
! 79f2c9be2fa7e7d9048777ba338a721f  gcc/rust/resolve/rust-early-name-resolver.h
! c30be58eae1b02f0b1deaea06b03d101  gcc/rust/resolve/rust-finalize-imports-2.0.cc
! f181c944f9bbea9c2954427b2334c87a  gcc/rust/resolve/rust-finalize-imports-2.0.h
! dec0e54b8d4239c44cd88b409b7e74c3  gcc/rust/resolve/rust-forever-stack.cc
! 81b93663200f114f9fe30e0b6d7793ac  gcc/rust/resolve/rust-forever-stack.h
! 14dbf878f22d8db9459f8ab306f5ea22  gcc/rust/resolve/rust-forever-stack.hxx
! 5fb949b91154caa7fd14b38ee44c06a8  gcc/rust/resolve/rust-ice-finalizer.cc
! 52b9b9a65bae9a38ed82a218f84f5105  gcc/rust/resolve/rust-ice-finalizer.h
! 98f1d330caf4f27bd13e2a60d632182b  gcc/rust/resolve/rust-immutable-name-resolution-context.cc
! 927471efaee1f85624e6e7eb00584819  gcc/rust/resolve/rust-immutable-name-resolution-context.h
! 891e7144b783ec1dbfbbc98ddc697877  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
! eeb164c7e377bfc637ce2dc97f2b734c  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! 12b1a29d05d94d46ca98aa2c75ea972a  gcc/rust/resolve/rust-name-resolution-context.cc
! 49ee2ab9556a3779f557ce6568088a30  gcc/rust/resolve/rust-name-resolution-context.h
! b6983f07d81272720902833f46969469  gcc/rust/resolve/rust-name-resolver.cc
! be000221300e27326827abc1e0cad277  gcc/rust/resolve/rust-name-resolver.h
! 5bd00178d4bbda0cedb3410c06aa647b  gcc/rust/resolve/rust-rib.cc
! df264ba2847fb2a38b3bb3b4033a197d  gcc/rust/resolve/rust-rib.h
! 7270bcde02842b9fbd8c5bb38b26e12d  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! d779ac3d5d0f6ee1b5f47a4ce0cf1e60  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
! e49a12846f730d069c04127857f8d468  gcc/rust/rust-attribs.cc
! 55479ad90a5fe7884edef780c31833b9  gcc/rust/rust-backend.h
! e4e5aa68cf24f2e0046ae5295d07d56c  gcc/rust/rust-diagnostics.cc
! 5aaf7f890efa698d89b6c1785288f84d  gcc/rust/rust-diagnostics.h
! a29710a52aae45b7a844ae73c125e33f  gcc/rust/rust-error-codes.def
! 53b83ff6736046bf81b42022fc840e5e  gcc/rust/rust-gcc.cc
! 65922743531bd0f8eff57efd205900a9  gcc/rust/rust-gcc.h
! 7e5d8d78ae91ade4523ca87447fedfd0  gcc/rust/rust-lang.cc
! bcf57cedfa84f01311473b51a88f932c  gcc/rust/rust-linemap.cc
! a591947189b9249649cd9d0d05bb6f3b  gcc/rust/rust-linemap.h
! 44c864a134b8524b6fd7e36dc13b1d12  gcc/rust/rust-location.h
! b45417b3f3262f4edcbe101bd348c5a0  gcc/rust/rust-object-export.cc
! 1b26bed54fa5b3bb2c772f7a6da34d38  gcc/rust/rust-object-export.h
! 941bc35d26a27390ef5e9d6d6601d95b  gcc/rust/rust-session-manager.cc
! a7af0a1bf8bdd047d3f547dc06025a7c  gcc/rust/rust-session-manager.h
! a9fda4ada51904c14187c1a3946d14db  gcc/rust/rust-system.h
! ac420eeb07d0fa93baebb7cfaafe3a69  gcc/rust/rust-target-def.h
! 079faeff0bcbd134ce19509fd4a7c49c  gcc/rust/rust-target.def
! 63679c7eca307c9c18f49e9a3354179e  gcc/rust/rust-target.h
! 969d20d0da5b3346de516605617a3bfd  gcc/rust/rustspec.cc
! 9eaa64e5091962b1045f85bddc63b38d  gcc/rust/typecheck/rust-autoderef.cc
! 5e6eda346fc227aa5e228ac35cda0962  gcc/rust/typecheck/rust-autoderef.h
! 27e888a9f2e000d67b390f25f144d6b4  gcc/rust/typecheck/rust-casts.cc
! 822424b8843ea48f9970a1958aa1c573  gcc/rust/typecheck/rust-casts.h
! c3d3d9e9a951f0768e898841a6be73dc  gcc/rust/typecheck/rust-coercion.cc
! e26acd7744fd715da289a7b3b2bd9238  gcc/rust/typecheck/rust-coercion.h
! 71a27a1333be3763aa4f4380e6155757  gcc/rust/typecheck/rust-hir-dot-operator.cc
! 1773e84737ed02ec11bbe4f87fe4a337  gcc/rust/typecheck/rust-hir-dot-operator.h
! d331d3128928728fa7025c2c434fa401  gcc/rust/typecheck/rust-hir-inherent-impl-overlap.h
! b71d1894aee9f6af868a3aef0d8d0031  gcc/rust/typecheck/rust-hir-path-probe.cc
! b661f0e6dfd014248c222b72a297ff16  gcc/rust/typecheck/rust-hir-path-probe.h
! 590ce1abda648d337b04888e4a64df7d  gcc/rust/typecheck/rust-hir-trait-reference.cc
! 3964dbf6fad421c23e77d64191079052  gcc/rust/typecheck/rust-hir-trait-reference.h
! d7135b375abe25eea099c558d0b2eb92  gcc/rust/typecheck/rust-hir-trait-resolve.cc
! 50b4be7ea23eb179a814bfd833fefdf1  gcc/rust/typecheck/rust-hir-trait-resolve.h
! eec3e59a2683fb56b65c91f690e4e3ff  gcc/rust/typecheck/rust-hir-type-bounds.h
! 71041eaedf026839e6f18967af2e62bf  gcc/rust/typecheck/rust-hir-type-check-base.cc
! c596645605903d78c9cea752caa5cdfd  gcc/rust/typecheck/rust-hir-type-check-base.h
! 3d225677bee70890559491e7d40ae60f  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
! 14b730fba367cec7b80f769e886344ae  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
! a90b0d9f3f5526360bb8b2aaaab71bd6  gcc/rust/typecheck/rust-hir-type-check-expr.cc
! 5e5fe530a6b7bb18897405f61ea68252  gcc/rust/typecheck/rust-hir-type-check-expr.h
! 828a94d166508b9f4c30516e90b3b91e  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
! ebae3826def3f8d019935ea950afaf9a  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! f84e112d00a7f93b11cb26d5c2ba5a96  gcc/rust/typecheck/rust-hir-type-check-item.cc
! d54dafd540ca9b9653d2118f81154a3c  gcc/rust/typecheck/rust-hir-type-check-item.h
! 9df01c334e282c40904fdbb525b0fa60  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 098baa621eea0b01c2a3dea4f600eab5  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
! f442f3356acfa69e70087f4d0a915461  gcc/rust/typecheck/rust-hir-type-check-pattern.h
! 4df5a5ce21e1c0d7a39339334871cddc  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
! 8cf233a69b1af8083328209d200778c1  gcc/rust/typecheck/rust-hir-type-check-stmt.h
! ac4bbb10d57df752315fc928eb000138  gcc/rust/typecheck/rust-hir-type-check-struct-field.h
! 157499d97ddc2825b1c669871cc86d1c  gcc/rust/typecheck/rust-hir-type-check-struct.cc
! 6439b4faecca80aa4bf8c7757eea3423  gcc/rust/typecheck/rust-hir-type-check-type.cc
! 4e713ea4973fa9fb07c655c889db01ce  gcc/rust/typecheck/rust-hir-type-check-type.h
! 3d24d22de71b428e0bdf521ca8abe5d4  gcc/rust/typecheck/rust-hir-type-check.cc
! 40ef43d0dc29022475cca03aa08af379  gcc/rust/typecheck/rust-hir-type-check.h
! ba87acd03224b566834708c42b2169c1  gcc/rust/typecheck/rust-substitution-mapper.cc
! 37b3e4dac47e3a433a147442253de982  gcc/rust/typecheck/rust-substitution-mapper.h
! 662bd6ed70977d44ce877576a8c8c7a4  gcc/rust/typecheck/rust-type-util.cc
! d3b79fb01a0fd4bb19b73ee1c016d112  gcc/rust/typecheck/rust-type-util.h
! 70471dc7a8359e001f3683dc9cbc5634  gcc/rust/typecheck/rust-typecheck-context.cc
! 8f217f625ae41436df063f5031c97269  gcc/rust/typecheck/rust-tyty-bounds.cc
! 888c9672c03e4f2a8315512a173265b6  gcc/rust/typecheck/rust-tyty-bounds.h
! 329562ca27b88aee957457b0d5d392a6  gcc/rust/typecheck/rust-tyty-call.cc
! a8f872bb92a2e8a8a702a090668861ea  gcc/rust/typecheck/rust-tyty-call.h
! 30e1a1ba1e6b793720fb14578b21999b  gcc/rust/typecheck/rust-tyty-cmp.h
  a38838838003c6551067e8b34f582208  gcc/rust/typecheck/rust-tyty-region.h
! 0f50d31f0e682ccef5641dc2efb43677  gcc/rust/typecheck/rust-tyty-subst.cc
! 9e117dd771f2b30b525f8a564caa522f  gcc/rust/typecheck/rust-tyty-subst.h
! 4d7d0f4a3bba36d4c21e9caa1c1ac6eb  gcc/rust/typecheck/rust-tyty-util.cc
! 620399e8e1661caca2e2b04745fafe2c  gcc/rust/typecheck/rust-tyty-util.h
! 2d3f92f6487ecb09f07c1fd6acde77bd  gcc/rust/typecheck/rust-tyty-variance-analysis-private.h
! c6badc37da1332bf42bbddb61c5d450f  gcc/rust/typecheck/rust-tyty-variance-analysis.cc
! f6cdbe15ca9ec0060eb65770bd676761  gcc/rust/typecheck/rust-tyty-variance-analysis.h
! 3a8c3ea0e23f92381ea99572cccb9fb6  gcc/rust/typecheck/rust-tyty-visitor.h
! b119c6fa232fcbbfd63dd0d424e6a4c0  gcc/rust/typecheck/rust-tyty.cc
! cd1155d826db78aa2da96c29baa5c47d  gcc/rust/typecheck/rust-tyty.h
! c3208d6c13aecf6b4e214b68f867d845  gcc/rust/typecheck/rust-unify.cc
! a4e6d921b501bb5cd0da6b450fe1fa06  gcc/rust/typecheck/rust-unify.h
! 0d030f94fc3d0037a80c12aee3829760  gcc/rust/util/bi-map.h
! 2293b9580441efb8471b45881435c279  gcc/rust/util/expected.h
! a3d3418d24c9d7a6b012a5f0244c1cc5  gcc/rust/util/fnv-hash.h
! 75694e0b09110145bd844f6fc79dded8  gcc/rust/util/make-rust-unicode.py
! 57af0f7f5350b1109cbe06ab044a60a7  gcc/rust/util/optional.h
  28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
  11f0015cc8736c6f93529f83c406a684  gcc/rust/util/rust-abi.h
! a483117363100e08a3762c90562bad45  gcc/rust/util/rust-attribute-values.h
! ba3e9bab6e6a2bc05e5a27124216587b  gcc/rust/util/rust-attributes.cc
! 15adcd4e073744d16653cab74ced227a  gcc/rust/util/rust-attributes.h
! bca452f773154b078653dfe7acf7df6d  gcc/rust/util/rust-base62.cc
! 4a905a6aca319c88269b29d059013e4b  gcc/rust/util/rust-base62.h
! 52e606eb44d3f26e1fa4e3701bf1ffe8  gcc/rust/util/rust-buffered-queue.h
! 0384207135b7589e52ab79705bc659a5  gcc/rust/util/rust-canonical-path.h
! c07d4ef244db3f6ca995d16a97dde4a4  gcc/rust/util/rust-codepoint.h
! 17f2c1b0a221d2381d5fa03056c86a2a  gcc/rust/util/rust-common.h
! dd3df9586c87ea18be777db0bf7d0cf2  gcc/rust/util/rust-dir-owner.cc
! 56ee8a6fca03a3c26055287185afe008  gcc/rust/util/rust-dir-owner.h
! 48ccf41bdee2df34cf4c36f1b046ff3a  gcc/rust/util/rust-dump.h
! 82c8d06a3e8bcf1b97510bdac619ec0a  gcc/rust/util/rust-edition.cc
! 11e1ff46cabba89ca474d38cdc46bfd0  gcc/rust/util/rust-edition.h
! faa4bb0ae3a88634c57259f525ed8d16  gcc/rust/util/rust-hir-map.cc
! 8774c6d7a9827c9dc74806428dbd9036  gcc/rust/util/rust-hir-map.h
! 88c8ae4d133ecd3a043fc12f4fe69091  gcc/rust/util/rust-identifier.h
! b886fd2a84b8b974a759d58aa85f9868  gcc/rust/util/rust-inline-visitor.h
! c8834665fd10b27b0d346b0feb8e0c75  gcc/rust/util/rust-keyword-values.cc
! 7f475eb9a4edc930747ba73408e45e84  gcc/rust/util/rust-keyword-values.h
! 12f22d88d5d206b938e8165b5975e99b  gcc/rust/util/rust-lang-item.cc
! f1156b2925b7a7097ec4094d5b461ec8  gcc/rust/util/rust-lang-item.h
! aeeace423f6e82b5140b307df087a853  gcc/rust/util/rust-mapping-common.h
! 8efe8f2ae6c529f6e8a316637b23263c  gcc/rust/util/rust-operators.h
! 3ab599b73cd39c762daa8c80df124efe  gcc/rust/util/rust-punycode.cc
! 68b71ecccbabadda5d32ac0934a0e34e  gcc/rust/util/rust-punycode.h
! dd245c43d1c05a09b2ac531b0c8d5e3e  gcc/rust/util/rust-stacked-contexts.h
! 720815a5538cf011b1cdddb23abb4042  gcc/rust/util/rust-token-converter.cc
! 93b250f2f1d1017ab24eebe5321bd9ab  gcc/rust/util/rust-token-converter.h
! e9a5e546c32155ec1d162baf906b3173  gcc/rust/util/rust-unicode-data.h
! 160750d9c11bf6ee2c07a88f6b10326f  gcc/rust/util/rust-unicode.cc
! 4373f635e04e2dd97d27f20b91b8cb58  gcc/rust/util/rust-unicode.h
! 27b9ac229553b9349504ebe465280523  gcc/rust/util/rust-unwrap-segment.cc
! 2d5ca2bf8e53a79096bc14f28759c005  gcc/rust/util/rust-unwrap-segment.h
! 1157834f858df87f4cff12c780fe7030  gcc/sancov.cc
! f47b1babbf39168c2829bbc0997f6b9b  gcc/sanitizer.def
! 1c4a31054492029cadf12999aee53d81  gcc/sanopt.cc
! ffcc8ac34ad1c40fd6aec56f005e22c8  gcc/sarif-replay.cc
! a92419791c8e8d842c6ef029d4537463  gcc/sarif-spec-urls.def
! f222bdd8af567c7806aeb6a3c767cc2c  gcc/sbitmap.cc
! 970d315ce608721d1e10ab704ba7dbf8  gcc/sbitmap.h
! 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
! 4ac31ca7bb0654fbae926ad8ffa23008  gcc/sel-sched-ir.cc
! 8352df111cb1e4c8fe8cbf4b30002511  gcc/sel-sched-ir.h
! 3c55426387224f4699c9d51fdbd5b547  gcc/sel-sched.cc
! 22faf0ae842883b3a08f6e9137ac2315  gcc/sel-sched.h
! abee29b6a59ce7e6267f1c8176e2f57a  gcc/selftest-diagnostic-path.cc
! 506361911aa7f7ba575530bfa2300e7a  gcc/selftest-diagnostic-path.h
! 60a6c5bd5960cea7c7c426b1443c533e  gcc/selftest-diagnostic-show-locus.h
! 9048e12d15abd6e1e6a0bd3415e4c560  gcc/selftest-diagnostic.cc
! 87f7119e7acf5a607a7030767cb8fc78  gcc/selftest-diagnostic.h
! 109061be2ca9df2d7941d134aabdf120  gcc/selftest-json.cc
! 065d0522cc6ea795703e89270514b149  gcc/selftest-json.h
! 0723f123eaa763a79f331e280bc6e392  gcc/selftest-logical-location.cc
! 5aa9370f7781e6117014c2ac08dc7391  gcc/selftest-logical-location.h
! 22224372e5a2696e660289e86b2696a5  gcc/selftest-rtl.cc
! ab96230d11b93b85d4d1b85cc5d494ab  gcc/selftest-rtl.h
! 9c11fdcb0197b171430d85d5acf49bf7  gcc/selftest-run-tests.cc
! 777b0025fe2356f118cb24f2302ae4ff  gcc/selftest-tree.h
! 220320c985328c0546a9a80a7353964e  gcc/selftest.cc
! db4a76b5381c9c4017cdb2459622d0c4  gcc/selftest.h
! 71b83bf173726493d9fee558216a2e02  gcc/sese.cc
! 62e0bec4b0ac9f8e027af35a2c2e2330  gcc/sese.h
! 9123313dafdd85df1e747e738274ee2c  gcc/shortest-paths.h
! cf0f1ba732134068141dc67a09cd47ce  gcc/shrink-wrap.cc
! 125f9b6a6cf86e28e0a76470fb3c1f11  gcc/shrink-wrap.h
! 50d9999185408bcae454174489317b68  gcc/signop.h
! e5d40573610fb7583cb771d99f436041  gcc/simple-diagnostic-path.cc
! c8b2977ee32b0a12bea49921d2ec0c00  gcc/simple-diagnostic-path.h
! ae83e010453a23a26ac39885d9f21d6e  gcc/simplify-rtx.cc
! 456e0937ae4b3a0f49fd44fb0d05eb52  gcc/sort.cc
! 599fc125220850c86939202313a6f733  gcc/sparseset.cc
! 430469e71b555502fe14de847bb52093  gcc/sparseset.h
! 30b258c94e9c5e21b4c84c8f366a0fd7  gcc/spellcheck-tree.cc
! 052441b1bd31b5e7d4cceb37bf2c9826  gcc/spellcheck-tree.h
! ac7c31fb50a4a969a86fb2b70a82b19c  gcc/spellcheck.cc
! b04523a4dcb80da0bc3cf9bc360978f4  gcc/spellcheck.h
! ac49ee54195f30bc26eaa8fcf56ba0b1  gcc/splay-tree-utils.cc
! 866649742d9abe95e754165b1dc31763  gcc/splay-tree-utils.h
! 84bd78cc881371c105169fb8707256d3  gcc/splay-tree-utils.tcc
! a3bbacd1506c9f377db1aaaa81c58912  gcc/sreal.cc
! f5e5ba1329ffae51d286f6c8932308d6  gcc/sreal.h
! 990b638cefb768afd22673a6a7144eea  gcc/ssa-iterators.h
! 3f0c5b46b37a88cbf05365761c63c6cc  gcc/ssa.h
! d0b55fa9a0f86f4f03bdbfcff3e068d8  gcc/stack-ptr-mod.cc
! bbd5abaa55463a5497e6ff9d14de3a1b  gcc/statistics.cc
! 3fc844db346b8f5e70da401bd3f4ad0d  gcc/statistics.h
! 7a7a1a9ae9adfd12a338920b6553fb7c  gcc/stmt.cc
! dbd64f0fc5e750c51b3fae1183025ef5  gcc/stmt.h
! fcae8e98ad3984aaa2c9d5e34c19efb0  gcc/stor-layout.cc
! eb7d04020ade148a4c8969151c6d5478  gcc/stor-layout.h
! 2937cf13aa5116018232748c5e245c4f  gcc/store-motion.cc
! c1c0312db7dfa4c3180e5d38177bfaf0  gcc/streamer-hooks.cc
! 64189c14238c2f2daa94fc4b2270e582  gcc/streamer-hooks.h
! a93a9f9f9c74ce88e3583d057e62fe95  gcc/stringpool.cc
! 457c5c44d4723a6f9aa3647526230be2  gcc/stringpool.h
! 13db2f479822629cb796257a775dddcd  gcc/substring-locations.cc
! b5f0b60c4a11cda62c1fe82b49e1d4f3  gcc/substring-locations.h
! 790f6e7fd4a4a46a0741be9c06b98420  gcc/sym-exec/sym-exec-condition.cc
! a4d1b16964764ca0f824cca665251ba6  gcc/sym-exec/sym-exec-condition.h
! 6203227c10015e98b238eea32aef108d  gcc/sym-exec/sym-exec-expr-is-a-helper.h
! c2a4c926397b9c45abc7f6c490a1d3ab  gcc/sym-exec/sym-exec-expression.cc
! e23fae6befe66c02bc2dc37342008d39  gcc/sym-exec/sym-exec-expression.h
! 03b1ec707497f4165509cdc82e357373  gcc/sym-exec/sym-exec-state.cc
! 0bee91449bc0119e1114bda1a098208e  gcc/sym-exec/sym-exec-state.h
! 0bd3abffcafa07810a5b9d7f99755f21  gcc/symbol-summary.h
! d52852ab0122f14cd4f7658db8b9c6df  gcc/symtab-clones.cc
! 5dcfbac7f32752af3034f02319af81d7  gcc/symtab-clones.h
! f849345d69b622ff9e7b96095bc2c34e  gcc/symtab-thunks.cc
! c9829745147a0b8ec026a3c5029fe2ff  gcc/symtab-thunks.h
! 8a1aae39e11b136fc986f57ee29cbe43  gcc/symtab.cc
! b3a965e425e6cf7888319667faf58da9  gcc/sync-builtins.def
! b1497a03867668af210c32280876fdd7  gcc/system.h
! 480d916fe042a150001ad88e88521c08  gcc/target-def.h
! 7e57ef65e3a1144e28765b6e8d7f6cff  gcc/target-globals.cc
! 32c99c974fd34089d47160168688da1d  gcc/target-globals.h
! 84051f22ca8c9ee213931106395ac151  gcc/target-hooks-macros.h
! 354306a484432bca2f94887455f25599  gcc/target-insns.def
! 4cca9e5e112624b84d2979aee70b79e5  gcc/target.def
! 7945120876914759f582dba50044b18d  gcc/target.h
! b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
! ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 90a5a577c44dc619f50b13602b89df06  gcc/testsuite/ChangeLog
! 47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
! 35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
! 0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
! 686c1bc342b6e57782443a931ba0d810  gcc/testsuite/ChangeLog-2010
! 066c8dd5250e9a805a020d089813c961  gcc/testsuite/ChangeLog-2011
  99c0ce870c05c1ceb99242bf505d50ae  gcc/testsuite/ChangeLog-2012
  92a2f7a1458900664112135670130ad5  gcc/testsuite/ChangeLog-2013
  1572fb02f16ad37c4e102f5d36d946da  gcc/testsuite/ChangeLog-2014
*************** c9ec5aa19ca3c027fb99e61cbe7aff7a  gcc/te
*** 8114,8128 ****
  91a08c35405a286b3ada0b88a667a7e5  gcc/testsuite/ChangeLog-2019
  4b46ab741e570fbea4c5e62643efc2bc  gcc/testsuite/ChangeLog-2020
  befd8924364e1b5fef37bb8113265b1a  gcc/testsuite/ChangeLog-2021
! cf2209a3e7faba16c6291ff4216ded98  gcc/testsuite/ChangeLog-2022
! ec287e6950b56edb5ce9c325ac8c07ce  gcc/testsuite/ChangeLog-2023
  e7518ff11c24876171978acda7f03080  gcc/testsuite/ChangeLog.graphite
  ec409caa3f1727e7dbe6b65dd8df068c  gcc/testsuite/ChangeLog.jit
  4e315f3ead950078f8af109b2d771220  gcc/testsuite/ChangeLog.ptr
  b2adb3e6b3129c9473b7e401edb63a71  gcc/testsuite/ChangeLog.tree-ssa
! 42192b7fdf79bb748c2ca0f23b8b8b96  gcc/testsuite/README
! ab3cc0bd56ceba62d516038be43c7c0d  gcc/testsuite/README.compat
! 76f40f2a3a0ec4e77c562bb695f8b98e  gcc/testsuite/README.gcc
  2ad7c00ea00d78f6d6ee090f7894dadc  gcc/testsuite/ada/.gitignore
  4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats/elabd.lst
  b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats/floatstore.lst
--- 8508,8523 ----
  91a08c35405a286b3ada0b88a667a7e5  gcc/testsuite/ChangeLog-2019
  4b46ab741e570fbea4c5e62643efc2bc  gcc/testsuite/ChangeLog-2020
  befd8924364e1b5fef37bb8113265b1a  gcc/testsuite/ChangeLog-2021
! bad6c61669dc05edc624bab0c252c8f0  gcc/testsuite/ChangeLog-2022
! 6a282e5df3a2ed135e44343b1bfeed8e  gcc/testsuite/ChangeLog-2023
! af39e1d4fe290ba2c5a29ea841c3d227  gcc/testsuite/ChangeLog-2024
  e7518ff11c24876171978acda7f03080  gcc/testsuite/ChangeLog.graphite
  ec409caa3f1727e7dbe6b65dd8df068c  gcc/testsuite/ChangeLog.jit
  4e315f3ead950078f8af109b2d771220  gcc/testsuite/ChangeLog.ptr
  b2adb3e6b3129c9473b7e401edb63a71  gcc/testsuite/ChangeLog.tree-ssa
! bfae96a490c7cba054de8558e4626226  gcc/testsuite/README
! fea5c64eccba058feddfd469dbdc5077  gcc/testsuite/README.compat
! 7a54bd63031c5c648bd6caa0928bacad  gcc/testsuite/README.gcc
  2ad7c00ea00d78f6d6ee090f7894dadc  gcc/testsuite/ada/.gitignore
  4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats/elabd.lst
  b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats/floatstore.lst
*************** c4b3b8c1c9564099bdde092389cc2da4  gcc/te
*** 10440,10446 ****
  edb7feb6536121adfd4fd4a2f3d69a3f  gcc/testsuite/ada/acats/tests/cxa/cxa3002.a
  48392592efa08a198d6e5d7a1a663683  gcc/testsuite/ada/acats/tests/cxa/cxa3003.a
  7eb11ccdd82615be75ded3c2d5c126d1  gcc/testsuite/ada/acats/tests/cxa/cxa3004.a
! 587c9299b8e48a8519d98c13c91ad290  gcc/testsuite/ada/acats/tests/cxa/cxa4001.a
  448cbac61205b8887f79bf74d5666a04  gcc/testsuite/ada/acats/tests/cxa/cxa4002.a
  46d3d97d6347f9b5ec34b3513bcfab40  gcc/testsuite/ada/acats/tests/cxa/cxa4003.a
  76c3b922526644795e2203573ee488e2  gcc/testsuite/ada/acats/tests/cxa/cxa4004.a
--- 10835,10841 ----
  edb7feb6536121adfd4fd4a2f3d69a3f  gcc/testsuite/ada/acats/tests/cxa/cxa3002.a
  48392592efa08a198d6e5d7a1a663683  gcc/testsuite/ada/acats/tests/cxa/cxa3003.a
  7eb11ccdd82615be75ded3c2d5c126d1  gcc/testsuite/ada/acats/tests/cxa/cxa3004.a
! c2cd47ca8ea76b3292a67ce38ad89e35  gcc/testsuite/ada/acats/tests/cxa/cxa4001.a
  448cbac61205b8887f79bf74d5666a04  gcc/testsuite/ada/acats/tests/cxa/cxa4002.a
  46d3d97d6347f9b5ec34b3513bcfab40  gcc/testsuite/ada/acats/tests/cxa/cxa4003.a
  76c3b922526644795e2203573ee488e2  gcc/testsuite/ada/acats/tests/cxa/cxa4004.a
*************** a7634a62a2c327ea1954c160e43b6d3d  gcc/te
*** 10736,10742 ****
  7787aa4bd5844adb5d11c348c47000b2  gcc/testsuite/c-c++-common/Waddress-7.c
  e758e9f4f3e6f53d756360fda966fadd  gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
  76fa33c917471922e94d50763fda451c  gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
! 273f580aad8918060378ff0f64998aa7  gcc/testsuite/c-c++-common/Walloca-larger-than.c
  afef2f2a384ff98fc41df320bb6a2419  gcc/testsuite/c-c++-common/Warray-bounds-10.c
  26f47ca8f4d16158af229f5e0181ba58  gcc/testsuite/c-c++-common/Warray-bounds-2.c
  735f67562fd278388dfba29a23faba55  gcc/testsuite/c-c++-common/Warray-bounds-3.c
--- 11131,11137 ----
  7787aa4bd5844adb5d11c348c47000b2  gcc/testsuite/c-c++-common/Waddress-7.c
  e758e9f4f3e6f53d756360fda966fadd  gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
  76fa33c917471922e94d50763fda451c  gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
! c77c49c6e9741ba649434f0a68e3dcad  gcc/testsuite/c-c++-common/Walloca-larger-than.c
  afef2f2a384ff98fc41df320bb6a2419  gcc/testsuite/c-c++-common/Warray-bounds-10.c
  26f47ca8f4d16158af229f5e0181ba58  gcc/testsuite/c-c++-common/Warray-bounds-2.c
  735f67562fd278388dfba29a23faba55  gcc/testsuite/c-c++-common/Warray-bounds-3.c
*************** c51902099b5071373c02eb23d9a61aab  gcc/te
*** 10745,10755 ****
  1614a81bdc170f1a42520e869c6dd71e  gcc/testsuite/c-c++-common/Warray-bounds-6.c
  9b53f623c31e9c02bcd8e8045056e09d  gcc/testsuite/c-c++-common/Warray-bounds-7.c
  8c8f0a3b217c247195f32bdfc2d93c74  gcc/testsuite/c-c++-common/Warray-bounds-8.c
! 2c4fa0b8c2a4b67bf8ba5136d06f762c  gcc/testsuite/c-c++-common/Warray-bounds-9.c
! 923b706d858a721ad9d14b4f36ff9bf7  gcc/testsuite/c-c++-common/Warray-bounds.c
! 1465c746ce0da634140bd11994689fb1  gcc/testsuite/c-c++-common/Warray-compare-1.c
  86563e27b22c96809703786cd874a440  gcc/testsuite/c-c++-common/Warray-compare-2.c
! 4e5a083c4ba660d982d456bf7982468f  gcc/testsuite/c-c++-common/Warray-compare-3.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/c-c++-common/Wattributes-2.c
  17bdcdb759c07d09c2d4d9895b89253d  gcc/testsuite/c-c++-common/Wattributes-3.c
  ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/c-c++-common/Wattributes.c
--- 11140,11152 ----
  1614a81bdc170f1a42520e869c6dd71e  gcc/testsuite/c-c++-common/Warray-bounds-6.c
  9b53f623c31e9c02bcd8e8045056e09d  gcc/testsuite/c-c++-common/Warray-bounds-7.c
  8c8f0a3b217c247195f32bdfc2d93c74  gcc/testsuite/c-c++-common/Warray-bounds-8.c
! e0bc9b77b911b8bc41df389cb8ecd626  gcc/testsuite/c-c++-common/Warray-bounds-9.c
! eb63e4411fa5f118f473f7bbbd779c54  gcc/testsuite/c-c++-common/Warray-bounds.c
! 3d6725015da365d181c0d8d88ec5ba86  gcc/testsuite/c-c++-common/Warray-compare-1.c
  86563e27b22c96809703786cd874a440  gcc/testsuite/c-c++-common/Warray-compare-2.c
! 45c0e3399ea91ca6c49d4226fd81e277  gcc/testsuite/c-c++-common/Warray-compare-3.c
! e101a17213d004873cb2cf828e8cf270  gcc/testsuite/c-c++-common/Warray-compare-4.c
! b4d0b458459fe75577fa4988141eb3c9  gcc/testsuite/c-c++-common/Warray-compare-5.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/c-c++-common/Wattributes-2.c
  17bdcdb759c07d09c2d4d9895b89253d  gcc/testsuite/c-c++-common/Wattributes-3.c
  ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/c-c++-common/Wattributes.c
*************** da6daa27c49af7ff04e05ae804b39498  gcc/te
*** 10785,10793 ****
  1e2599302495a0ca253f12d48266d41c  gcc/testsuite/c-c++-common/Wbool-operation-1.c
  f2f147da469690b30dd805170ff61ecc  gcc/testsuite/c-c++-common/Wbuiltin-declaration-mismatch-1.c
  61802d2a2cafd866447c5949a369597e  gcc/testsuite/c-c++-common/Wcast-align.c
! 3284d45e5b10b003d6138432e1e5a237  gcc/testsuite/c-c++-common/Wcast-function-type.c
  ca0f9328a3d035930d143d8a411eac87  gcc/testsuite/c-c++-common/Wcast-qual-1.c
! deb892f0207d50337a54adc14936a46b  gcc/testsuite/c-c++-common/Wconversion-1.c
  1d38351fe1071b2ef958b41c05ca820e  gcc/testsuite/c-c++-common/Wconversion-pr40752.c
  2e4a0b1e36380af2fa8d3c763dd4836d  gcc/testsuite/c-c++-common/Wconversion-pr40752a.c
  dc21d1a3f0da436f1e88f7b24881a6aa  gcc/testsuite/c-c++-common/Wconversion-pr40752b.c
--- 11182,11190 ----
  1e2599302495a0ca253f12d48266d41c  gcc/testsuite/c-c++-common/Wbool-operation-1.c
  f2f147da469690b30dd805170ff61ecc  gcc/testsuite/c-c++-common/Wbuiltin-declaration-mismatch-1.c
  61802d2a2cafd866447c5949a369597e  gcc/testsuite/c-c++-common/Wcast-align.c
! 98cecf8090d75699cd8da32680430f0a  gcc/testsuite/c-c++-common/Wcast-function-type.c
  ca0f9328a3d035930d143d8a411eac87  gcc/testsuite/c-c++-common/Wcast-qual-1.c
! c4fe13572fd4a3286d2bb6c0e8c6a08d  gcc/testsuite/c-c++-common/Wconversion-1.c
  1d38351fe1071b2ef958b41c05ca820e  gcc/testsuite/c-c++-common/Wconversion-pr40752.c
  2e4a0b1e36380af2fa8d3c763dd4836d  gcc/testsuite/c-c++-common/Wconversion-pr40752a.c
  dc21d1a3f0da436f1e88f7b24881a6aa  gcc/testsuite/c-c++-common/Wconversion-pr40752b.c
*************** f4c88a37de8b9cf0f4dfe3e1bc876a01  gcc/te
*** 10797,10811 ****
  ea18cf61a2996e250f28de9ce0131778  gcc/testsuite/c-c++-common/Wdangling-else-3.c
  a476cd08d04537a1546143f21ae9ed21  gcc/testsuite/c-c++-common/Wdangling-else-4.c
  89e871dbd34fb7b5d15c84b5480f0075  gcc/testsuite/c-c++-common/Wdangling-pointer-10.c
! 6516d4611bf9348a8fa38ab7ea7e60b1  gcc/testsuite/c-c++-common/Wdangling-pointer-2.c
  f3145c655104e18743ecb5afae49ea1a  gcc/testsuite/c-c++-common/Wdangling-pointer-3.c
! 57948dbb46716b784119183c0ecfc8e6  gcc/testsuite/c-c++-common/Wdangling-pointer-4.c
! c7c3c9c8a8c26d75571dc6b1b5b1587b  gcc/testsuite/c-c++-common/Wdangling-pointer-5.c
  0267389602bccf5974267c04b864b33b  gcc/testsuite/c-c++-common/Wdangling-pointer-6.c
  ff3de265fbccf3612a0ffb10010db450  gcc/testsuite/c-c++-common/Wdangling-pointer-7.c
  d9ebfe45a2e22628c68723c17e000678  gcc/testsuite/c-c++-common/Wdangling-pointer-8.c
  fe17411ea4717b5f12ae0efc348d1a36  gcc/testsuite/c-c++-common/Wdangling-pointer-9.c
! 96a9e6d56248f8f913daf667a15473f1  gcc/testsuite/c-c++-common/Wdangling-pointer.c
  df5ffd2746b9c571dd4ecaec40584254  gcc/testsuite/c-c++-common/Wduplicated-branches-1.c
  36747e99be11c2fa6022dbb012b5e657  gcc/testsuite/c-c++-common/Wduplicated-branches-10.c
  70ec648f5b33b89b0846562e3c43cba7  gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
--- 11194,11208 ----
  ea18cf61a2996e250f28de9ce0131778  gcc/testsuite/c-c++-common/Wdangling-else-3.c
  a476cd08d04537a1546143f21ae9ed21  gcc/testsuite/c-c++-common/Wdangling-else-4.c
  89e871dbd34fb7b5d15c84b5480f0075  gcc/testsuite/c-c++-common/Wdangling-pointer-10.c
! 5b88729a61f1f5b3dea993e74c1fff3c  gcc/testsuite/c-c++-common/Wdangling-pointer-2.c
  f3145c655104e18743ecb5afae49ea1a  gcc/testsuite/c-c++-common/Wdangling-pointer-3.c
! e26a4f7b29db7b7c06b67ea9fd534ca5  gcc/testsuite/c-c++-common/Wdangling-pointer-4.c
! caec7d0477c3ec414d8f142ae0f366bd  gcc/testsuite/c-c++-common/Wdangling-pointer-5.c
  0267389602bccf5974267c04b864b33b  gcc/testsuite/c-c++-common/Wdangling-pointer-6.c
  ff3de265fbccf3612a0ffb10010db450  gcc/testsuite/c-c++-common/Wdangling-pointer-7.c
  d9ebfe45a2e22628c68723c17e000678  gcc/testsuite/c-c++-common/Wdangling-pointer-8.c
  fe17411ea4717b5f12ae0efc348d1a36  gcc/testsuite/c-c++-common/Wdangling-pointer-9.c
! 7d46bd13860656264b65ab6f60040a5f  gcc/testsuite/c-c++-common/Wdangling-pointer.c
  df5ffd2746b9c571dd4ecaec40584254  gcc/testsuite/c-c++-common/Wduplicated-branches-1.c
  36747e99be11c2fa6022dbb012b5e657  gcc/testsuite/c-c++-common/Wduplicated-branches-10.c
  70ec648f5b33b89b0846562e3c43cba7  gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
*************** fff3d649531c83150863cb9215b5f6e0  gcc/te
*** 10827,10833 ****
  ef4f4b5de989d9dc5bddbdc69330bc75  gcc/testsuite/c-c++-common/Wduplicated-cond-4.c
  59751b3dc53f63d60e7442231719d920  gcc/testsuite/c-c++-common/Wfloat-conversion.c
  49b7e0ebbe8f98aaa0546f15e91b002d  gcc/testsuite/c-c++-common/Wformat-pr104148.c
! 856413eebe730a0c7a3ad5fb9397241a  gcc/testsuite/c-c++-common/Wformat-pr84258.c
  312a2ba796d2f8b759556fb3292d0dc4  gcc/testsuite/c-c++-common/Wformat-pr88257.c
  bfab16ac2e29ff30ff0d3dd400e68b04  gcc/testsuite/c-c++-common/Wformat-pr88257.h
  b1fb86620abdfdafc19dc4bc5f4017c5  gcc/testsuite/c-c++-common/Wfree-nonheap-object-2.c
--- 11224,11230 ----
  ef4f4b5de989d9dc5bddbdc69330bc75  gcc/testsuite/c-c++-common/Wduplicated-cond-4.c
  59751b3dc53f63d60e7442231719d920  gcc/testsuite/c-c++-common/Wfloat-conversion.c
  49b7e0ebbe8f98aaa0546f15e91b002d  gcc/testsuite/c-c++-common/Wformat-pr104148.c
! e22e51ddadd6ee3266ac8e6f4edddacc  gcc/testsuite/c-c++-common/Wformat-pr84258.c
  312a2ba796d2f8b759556fb3292d0dc4  gcc/testsuite/c-c++-common/Wformat-pr88257.c
  bfab16ac2e29ff30ff0d3dd400e68b04  gcc/testsuite/c-c++-common/Wformat-pr88257.h
  b1fb86620abdfdafc19dc4bc5f4017c5  gcc/testsuite/c-c++-common/Wfree-nonheap-object-2.c
*************** fce73466e26730317c258d5fc5b3a7c0  gcc/te
*** 10869,10875 ****
  209de9c779ee1c2bb93781cd743aa8e7  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-4.c
  006c2c882c026a00e907e95f539d0817  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-5.c
  35ef745805a62adf180cc3c34449ff39  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c
! 04da5c6a59c11741367cd83d451829d7  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c
  4b64bcc0915807f44996fe6274bf008e  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-8.c
  5e51a81bf671fcaa946052b108021b4f  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-9.c
  3bc8a49cdd575f24293238a96a38940e  gcc/testsuite/c-c++-common/Winit-self1.c
--- 11266,11272 ----
  209de9c779ee1c2bb93781cd743aa8e7  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-4.c
  006c2c882c026a00e907e95f539d0817  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-5.c
  35ef745805a62adf180cc3c34449ff39  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c
! a854da11b644f568fbceaa58ab00aa00  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c
  4b64bcc0915807f44996fe6274bf008e  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-8.c
  5e51a81bf671fcaa946052b108021b4f  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-9.c
  3bc8a49cdd575f24293238a96a38940e  gcc/testsuite/c-c++-common/Winit-self1.c
*************** ccb8ce6afa2243d9aec47e26a1e585f2  gcc/te
*** 10933,10939 ****
  51fdd1aacef3259e17622c73fe086bee  gcc/testsuite/c-c++-common/Wreturn-local-addr.c
  d57f0b6d660c8299b95ba02b346d2d76  gcc/testsuite/c-c++-common/Wsequence-point-1.c
  3831f9cd25e86185c0d7bd260ddc4a22  gcc/testsuite/c-c++-common/Wsequence-point-2.c
! 1b42c3a14a41be6fe27998ddaf0c09fb  gcc/testsuite/c-c++-common/Wshadow-1.c
  76117ab138e7572d8f580b339e5456af  gcc/testsuite/c-c++-common/Wshift-count-negative-1.c
  30f55184465e5031498ef7eb0d2b75e4  gcc/testsuite/c-c++-common/Wshift-count-negative-2.c
  d425900c0046df4dd9d326f6c8eb2d67  gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c
--- 11330,11336 ----
  51fdd1aacef3259e17622c73fe086bee  gcc/testsuite/c-c++-common/Wreturn-local-addr.c
  d57f0b6d660c8299b95ba02b346d2d76  gcc/testsuite/c-c++-common/Wsequence-point-1.c
  3831f9cd25e86185c0d7bd260ddc4a22  gcc/testsuite/c-c++-common/Wsequence-point-2.c
! 74ffffa3ed4d57841f1b49b69fb18416  gcc/testsuite/c-c++-common/Wshadow-1.c
  76117ab138e7572d8f580b339e5456af  gcc/testsuite/c-c++-common/Wshift-count-negative-1.c
  30f55184465e5031498ef7eb0d2b75e4  gcc/testsuite/c-c++-common/Wshift-count-negative-2.c
  d425900c0046df4dd9d326f6c8eb2d67  gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c
*************** baefeae8b123d7fff8e835b68ec75bf4  gcc/te
*** 10965,10974 ****
  40bc1e540d092c06d14dc9842ee9cd03  gcc/testsuite/c-c++-common/Wsign-conversion-1.c
  6df16f069de12c985079e6e69baa8bb0  gcc/testsuite/c-c++-common/Wsizeof-array-div1.c
  60f2f0aa7f30ae4b7fc18937d32ed9b7  gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c
! 268f9f6b5ca637f309e4817c68deddda  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess1.c
! bf0b620625355f346eefd54a379f0ac2  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess2.c
  9435b893d35596d6e6c421a7d0ca6b4e  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess3.c
  c2f8af9a24cbf598244cbdf23a6eb007  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess4.c
  def0eee4b52b80a22825e7e10a92ec0d  gcc/testsuite/c-c++-common/Wstrict-flex-arrays.c
  f65e675073fa6e887cf5c8b46811dbbd  gcc/testsuite/c-c++-common/Wstringop-overflow-2-novec.c
  72b026b6797ea3ac3a7342c55601477c  gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
--- 11362,11372 ----
  40bc1e540d092c06d14dc9842ee9cd03  gcc/testsuite/c-c++-common/Wsign-conversion-1.c
  6df16f069de12c985079e6e69baa8bb0  gcc/testsuite/c-c++-common/Wsizeof-array-div1.c
  60f2f0aa7f30ae4b7fc18937d32ed9b7  gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c
! b5150b1602f399131f4dd9b2dc0b8379  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess1.c
! de61993d506322a4ebcaeb6951f40fff  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess2.c
  9435b893d35596d6e6c421a7d0ca6b4e  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess3.c
  c2f8af9a24cbf598244cbdf23a6eb007  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess4.c
+ af1ddc910423deb7037d0df021bc094d  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c
  def0eee4b52b80a22825e7e10a92ec0d  gcc/testsuite/c-c++-common/Wstrict-flex-arrays.c
  f65e675073fa6e887cf5c8b46811dbbd  gcc/testsuite/c-c++-common/Wstringop-overflow-2-novec.c
  72b026b6797ea3ac3a7342c55601477c  gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
*************** ed599254a04855f3e360dc18fbdba9d9  gcc/te
*** 10976,10982 ****
  b9163d26f5124adacd165e32f8b32a62  gcc/testsuite/c-c++-common/Wstringop-truncation-2.c
  e43106fc454dedd36c41a975a04be5e3  gcc/testsuite/c-c++-common/Wstringop-truncation-3.c
  e80b7aaae365db3fe8339ddc534cc5c0  gcc/testsuite/c-c++-common/Wstringop-truncation-4.c
! 8fbb5eb134edcf2c44483393cbe2582c  gcc/testsuite/c-c++-common/Wstringop-truncation.c
  f60e65a487e1a2bb5e772e685e9e7853  gcc/testsuite/c-c++-common/Wsuggest-attribute-1.c
  02eb68d2e3d4ad8791936378fad680f6  gcc/testsuite/c-c++-common/Wswitch-1.c
  9d794a1763749ee0180f56ce7aed6d0c  gcc/testsuite/c-c++-common/Wswitch-outside-range-1.c
--- 11374,11380 ----
  b9163d26f5124adacd165e32f8b32a62  gcc/testsuite/c-c++-common/Wstringop-truncation-2.c
  e43106fc454dedd36c41a975a04be5e3  gcc/testsuite/c-c++-common/Wstringop-truncation-3.c
  e80b7aaae365db3fe8339ddc534cc5c0  gcc/testsuite/c-c++-common/Wstringop-truncation-4.c
! 63c969dcc3668b345428f4aeda83dd0f  gcc/testsuite/c-c++-common/Wstringop-truncation.c
  f60e65a487e1a2bb5e772e685e9e7853  gcc/testsuite/c-c++-common/Wsuggest-attribute-1.c
  02eb68d2e3d4ad8791936378fad680f6  gcc/testsuite/c-c++-common/Wswitch-1.c
  9d794a1763749ee0180f56ce7aed6d0c  gcc/testsuite/c-c++-common/Wswitch-outside-range-1.c
*************** f7cf252f8fb24838c4491a1b681216d3  gcc/te
*** 11013,11021 ****
  8504217c544401c14012c8e1a1c18970  gcc/testsuite/c-c++-common/Wunused-var-3.c
  43839f1fa5726ea0a0d6e063d7980642  gcc/testsuite/c-c++-common/Wunused-var-4.c
  75fdd7e7424b32b232b6b71167d558aa  gcc/testsuite/c-c++-common/Wunused-var-5.c
! 8e1dc0a024e225de92d2d7abdc4e3583  gcc/testsuite/c-c++-common/Wunused-var-6.c
  3acd34af9a98cb4913d6b6310f170f6c  gcc/testsuite/c-c++-common/Wunused-var-7.c
! 955505dd1a7bcb4ea846ce40b428a43d  gcc/testsuite/c-c++-common/Wunused-var-8.c
  521676114b454f97187cc76d533621e6  gcc/testsuite/c-c++-common/Wunused-var-9.c
  47095408bb7fd6842b216b9c049e5877  gcc/testsuite/c-c++-common/Wuse-after-free-2.c
  5c5a689bbd8d2064a1cf9417c75365db  gcc/testsuite/c-c++-common/Wuse-after-free-3.c
--- 11411,11419 ----
  8504217c544401c14012c8e1a1c18970  gcc/testsuite/c-c++-common/Wunused-var-3.c
  43839f1fa5726ea0a0d6e063d7980642  gcc/testsuite/c-c++-common/Wunused-var-4.c
  75fdd7e7424b32b232b6b71167d558aa  gcc/testsuite/c-c++-common/Wunused-var-5.c
! d67fb11d2c7db6b14c7fce493613a33e  gcc/testsuite/c-c++-common/Wunused-var-6.c
  3acd34af9a98cb4913d6b6310f170f6c  gcc/testsuite/c-c++-common/Wunused-var-7.c
! a246090268978dba24e38ee345e883c0  gcc/testsuite/c-c++-common/Wunused-var-8.c
  521676114b454f97187cc76d533621e6  gcc/testsuite/c-c++-common/Wunused-var-9.c
  47095408bb7fd6842b216b9c049e5877  gcc/testsuite/c-c++-common/Wuse-after-free-2.c
  5c5a689bbd8d2064a1cf9417c75365db  gcc/testsuite/c-c++-common/Wuse-after-free-3.c
*************** c1d4aac82aafc22d1b2884cf0190af84  gcc/te
*** 11025,11031 ****
  5d35423b98da25ba2e8266e892e6fa46  gcc/testsuite/c-c++-common/Wuse-after-free-7.c
  0ebe37f28e2842c7d2c1eb3a5adff498  gcc/testsuite/c-c++-common/Wuse-after-free.c
  65cf5a15ffd224b6b51f7d207aa29f27  gcc/testsuite/c-c++-common/Wvarargs-2.c
! 70d4ab70f79cf2ba91c2d0552436e561  gcc/testsuite/c-c++-common/Wvarargs.c
  ebcd60416bbf75e22b9dd92e228025d6  gcc/testsuite/c-c++-common/Wxor-used-as-pow-1.c
  ad5482751ddf2dc94039803360db239e  gcc/testsuite/c-c++-common/Wxor-used-as-pow-fixits.c
  d53160459fbfc0f3090991a31aba40c4  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-0.c
--- 11423,11429 ----
  5d35423b98da25ba2e8266e892e6fa46  gcc/testsuite/c-c++-common/Wuse-after-free-7.c
  0ebe37f28e2842c7d2c1eb3a5adff498  gcc/testsuite/c-c++-common/Wuse-after-free.c
  65cf5a15ffd224b6b51f7d207aa29f27  gcc/testsuite/c-c++-common/Wvarargs-2.c
! ad2b4c69dbb4bb196ec953e5a1b2bb71  gcc/testsuite/c-c++-common/Wvarargs.c
  ebcd60416bbf75e22b9dd92e228025d6  gcc/testsuite/c-c++-common/Wxor-used-as-pow-1.c
  ad5482751ddf2dc94039803360db239e  gcc/testsuite/c-c++-common/Wxor-used-as-pow-fixits.c
  d53160459fbfc0f3090991a31aba40c4  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-0.c
*************** ca39a9bcc32da0de969872e39eec2dcb  gcc/te
*** 11041,11066 ****
  21ccef1b042617794f28392a02c47c2e  gcc/testsuite/c-c++-common/analyzer/aliasing-2.c
  9083091e04f47ca9db656daa48ead504  gcc/testsuite/c-c++-common/analyzer/aliasing-3.c
  0a67c74034de469201b9301aa31e9b46  gcc/testsuite/c-c++-common/analyzer/aliasing-pr106473.c
! 18fc2a84aecda4ede234a6de9d8690c2  gcc/testsuite/c-c++-common/analyzer/alloca-leak.c
! 04632bdd1de9fa1ee514a17bfc3a7167  gcc/testsuite/c-c++-common/analyzer/allocation-size-1.c
! 465c5d6d5dde5990c5d3c6532b50584e  gcc/testsuite/c-c++-common/analyzer/allocation-size-2.c
! d419150df921fdc0e404ecb1f69d44a2  gcc/testsuite/c-c++-common/analyzer/allocation-size-3.c
! 627c3b44a9540020561139f0c92eaa97  gcc/testsuite/c-c++-common/analyzer/allocation-size-4.c
! e37d985070dd94ef47452c749828094f  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-1.c
! 352d759f11b9dd884acb088a5c362fc0  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-2.c
! 7072e8b4c2914985b889802befe5fbe1  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-3.c
  ff142bf88e41f77d891ef01f35da87a1  gcc/testsuite/c-c++-common/analyzer/allocation-size-pr113654-1.c
  84d8987fac13d5215f5fc055229d77d8  gcc/testsuite/c-c++-common/analyzer/analyzer-debugging-fns-1.c
  1a7053ef4676bb493808df6d87159d0e  gcc/testsuite/c-c++-common/analyzer/analyzer-decls.h
! f2829f45fc88a32b1bc8c2b2d93e3e24  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-0.c
! 2ca65b169e002bdee327306e498b3fcd  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-1.c
! 27d5f3568e32bdeefd3841814ef52b01  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2.c
  6f13c48d287fe59d52b17e51ccd6fca9  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2a.c
! 91e4e93d9c558dc17716787d96646ca6  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3.c
  ddd318f0d7ec18cf56dba10884be8c19  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3a.c
  fc965261104eb781f63faa0fe5a3d7b1  gcc/testsuite/c-c++-common/analyzer/asm-x86-1.c
! 047ffcd0e8ef76428ff17fee37bc32f4  gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c
! c88245c2e2571386053260ec42971533  gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c
  64beb097ecbb7813933aa108da9cbe77  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-haproxy-proxy.c
  c10065d60e1023c004e17517804aca17  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-pr114286.c
  fe45e23d9fc430bbefba272d10b6d6c7  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-qemu-sockets.c
--- 11439,11464 ----
  21ccef1b042617794f28392a02c47c2e  gcc/testsuite/c-c++-common/analyzer/aliasing-2.c
  9083091e04f47ca9db656daa48ead504  gcc/testsuite/c-c++-common/analyzer/aliasing-3.c
  0a67c74034de469201b9301aa31e9b46  gcc/testsuite/c-c++-common/analyzer/aliasing-pr106473.c
! 44e54cc913f508aa4bbbb825465bcd70  gcc/testsuite/c-c++-common/analyzer/alloca-leak.c
! f5daaa51309a09590684e189ca5cef39  gcc/testsuite/c-c++-common/analyzer/allocation-size-1.c
! 27dc00e1de20b70d097540f7d52b4810  gcc/testsuite/c-c++-common/analyzer/allocation-size-2.c
! 811092ddb8059f9af575535372cf4590  gcc/testsuite/c-c++-common/analyzer/allocation-size-3.c
! 3ec0f11a7df9d5469e88d6b74e02f71b  gcc/testsuite/c-c++-common/analyzer/allocation-size-4.c
! 175dcd68173a275185d091a50b960a1e  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-1.c
! e0cb9fd36a45a025e09e801b6c957686  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-2.c
! d5abab57686f3bb67c17fb893fa906c5  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-3.c
  ff142bf88e41f77d891ef01f35da87a1  gcc/testsuite/c-c++-common/analyzer/allocation-size-pr113654-1.c
  84d8987fac13d5215f5fc055229d77d8  gcc/testsuite/c-c++-common/analyzer/analyzer-debugging-fns-1.c
  1a7053ef4676bb493808df6d87159d0e  gcc/testsuite/c-c++-common/analyzer/analyzer-decls.h
! 5ddad3c4a41d4b1a1b4ac83583c6c61b  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-0.c
! af607c3f4c7df33086861aaae66752ce  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-1.c
! a2a78072e3d8b53573e8f00012aa5e02  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2.c
  6f13c48d287fe59d52b17e51ccd6fca9  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2a.c
! 6d64ae2854f0c1c2c817a3832375555f  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3.c
  ddd318f0d7ec18cf56dba10884be8c19  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3a.c
  fc965261104eb781f63faa0fe5a3d7b1  gcc/testsuite/c-c++-common/analyzer/asm-x86-1.c
! 4f3de36e277422446a2a0c8cd3afe090  gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c
! cfc15687f29058760db8cdfd6af9f0d8  gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c
  64beb097ecbb7813933aa108da9cbe77  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-haproxy-proxy.c
  c10065d60e1023c004e17517804aca17  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-pr114286.c
  fe45e23d9fc430bbefba272d10b6d6c7  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-qemu-sockets.c
*************** b4515e65ed785bcd07a7162f6ccb804a  gcc/te
*** 11074,11080 ****
  046d0c0ef6b5715f28a641d19c38b314  gcc/testsuite/c-c++-common/analyzer/attr-malloc-4.c
  52c21034354662dddfd5114d1e6b1126  gcc/testsuite/c-c++-common/analyzer/attr-malloc-5.c
  d934896086d68c1f045a9ea1b1e96cf2  gcc/testsuite/c-c++-common/analyzer/attr-malloc-6.c
! 7bba371881fbb99ea873aec1e121484b  gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c
  bccece796597d19d1f7a0fea1ecd1d5c  gcc/testsuite/c-c++-common/analyzer/attr-malloc-misuses.c
  7c2191ee9eebd812d8c5b7f4e082e616  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-read_write.c
  a8115832b22944d2deedbcf374941673  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-without-size.c
--- 11472,11478 ----
  046d0c0ef6b5715f28a641d19c38b314  gcc/testsuite/c-c++-common/analyzer/attr-malloc-4.c
  52c21034354662dddfd5114d1e6b1126  gcc/testsuite/c-c++-common/analyzer/attr-malloc-5.c
  d934896086d68c1f045a9ea1b1e96cf2  gcc/testsuite/c-c++-common/analyzer/attr-malloc-6.c
! 837c36f7050f30ca663176f6224ea579  gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c
  bccece796597d19d1f7a0fea1ecd1d5c  gcc/testsuite/c-c++-common/analyzer/attr-malloc-misuses.c
  7c2191ee9eebd812d8c5b7f4e082e616  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-read_write.c
  a8115832b22944d2deedbcf374941673  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-without-size.c
*************** cdbc4d03b7c0fff5e790a906b6ff8991  gcc/te
*** 11087,11127 ****
  13ea03e0275293dce13c9983410375cc  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-1.c
  3f7d3cba520a26c38c50f22274b6c413  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-misuses.c
  2a6fd4b0596437c81584911234e358fe  gcc/testsuite/c-c++-common/analyzer/bzip2-arg-parse-1.c
! 768424351f1b238f53407ec9bb29e126  gcc/testsuite/c-c++-common/analyzer/call-summaries-1.c
  1d08e89be2885a0530a8dd0fd33848ce  gcc/testsuite/c-c++-common/analyzer/call-summaries-3.c
  a98652f2d06708729de689f5875dcc2c  gcc/testsuite/c-c++-common/analyzer/call-summaries-asm-x86.c
! 94d24ac7e66620db634c8b7f20be9157  gcc/testsuite/c-c++-common/analyzer/call-summaries-malloc.c
  5fa3304656e624afc166ece61ea179d7  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158-2.c
  4d6505c74afd3254abad2b61a5c32cb5  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158.c
  bce1148a5d77acdf3f4ba57288cc400b  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr114159.c
! a99cd9f5718c9d37aee6aee0294cc872  gcc/testsuite/c-c++-common/analyzer/callbacks-1.c
! 0b7fa83ab4d00972ea110527aa160a26  gcc/testsuite/c-c++-common/analyzer/callbacks-2.c
  054c975de1ad550bc0b3a3000890f5ab  gcc/testsuite/c-c++-common/analyzer/callbacks-3.c
  6a06a08f08bccb3f240f11ccb008ad51  gcc/testsuite/c-c++-common/analyzer/calloc-1.c
! b6351d2afd9a4d77c9de5d35a8fa5124  gcc/testsuite/c-c++-common/analyzer/capacity-1.c
! 2faf3013703b38ccfb3ad2759cb040a3  gcc/testsuite/c-c++-common/analyzer/capacity-2.c
! 0ac37e462c4c78f67a1c354ffba96eaf  gcc/testsuite/c-c++-common/analyzer/capacity-3.c
  66aa74c6297ad1a2026f455611b0a4fc  gcc/testsuite/c-c++-common/analyzer/casts-1.c
  079606c0ec9f4acfbec886c8a9bf1f97  gcc/testsuite/c-c++-common/analyzer/casts-2.c
  cef5e3bcdf11b82aa8bc65b81170878f  gcc/testsuite/c-c++-common/analyzer/clobbers-1.c
! c091195fc590c90c200576468c87d1a6  gcc/testsuite/c-c++-common/analyzer/compound-assignment-1.c
  30287a7a2b8f02421828017087fff16b  gcc/testsuite/c-c++-common/analyzer/compound-assignment-4.c
  3ce1df6bb9d2687cfaea51292b918884  gcc/testsuite/c-c++-common/analyzer/compound-assignment-5.c
  e8c412b9eaf42745a7fc07cc52fd19af  gcc/testsuite/c-c++-common/analyzer/compound-assignment-pr112969.c
  76288e31c6c0d1e9c35771d4cfda7811  gcc/testsuite/c-c++-common/analyzer/computed-goto-1.c
  414c98967b21f8892f6579d63fa90a9e  gcc/testsuite/c-c++-common/analyzer/conditionals-pr111881.c
! c8f5ae8a02f8e56f2c168afcb18dadb2  gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c
! 184b376b07571c9a8411c4f37cc97e7e  gcc/testsuite/c-c++-common/analyzer/coreutils-sum-pr108666.c
  155d36ab3fdd051347569701effe1700  gcc/testsuite/c-c++-common/analyzer/data-model-11.c
! 9117b1e1f037bbea1974142b15b71ebf  gcc/testsuite/c-c++-common/analyzer/data-model-12.c
! 2e73658157673972ef9183ffaef41abf  gcc/testsuite/c-c++-common/analyzer/data-model-14.c
  41986412fcfd0857f096ced958eeadf1  gcc/testsuite/c-c++-common/analyzer/data-model-18.c
  4553c74241f2cd9efbf26371de99807d  gcc/testsuite/c-c++-common/analyzer/data-model-2.c
! 9da32b217a87b907faad7baaa10b76a4  gcc/testsuite/c-c++-common/analyzer/data-model-20.c
  1a7244f30f830702369a54bb48fc8aef  gcc/testsuite/c-c++-common/analyzer/data-model-21.c
  167e706d53055dd18733c241608420b2  gcc/testsuite/c-c++-common/analyzer/data-model-22.c
  a0cd88952248c9e6aeab396421bca6fc  gcc/testsuite/c-c++-common/analyzer/data-model-4.c
! ce3825071f0459fd39e18dc4443bc5a7  gcc/testsuite/c-c++-common/analyzer/data-model-5d.c
  e30a91c7d128ee44d4a195e5868ee03a  gcc/testsuite/c-c++-common/analyzer/data-model-8.c
  e9598af7814c9b574008795653746252  gcc/testsuite/c-c++-common/analyzer/data-model-path-1.c
  c983dc0a3824841a4b277a70d4f30c24  gcc/testsuite/c-c++-common/analyzer/deref-before-check-2.c
--- 11485,11525 ----
  13ea03e0275293dce13c9983410375cc  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-1.c
  3f7d3cba520a26c38c50f22274b6c413  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-misuses.c
  2a6fd4b0596437c81584911234e358fe  gcc/testsuite/c-c++-common/analyzer/bzip2-arg-parse-1.c
! d9ea3addbe933a89458f8582b71b610f  gcc/testsuite/c-c++-common/analyzer/call-summaries-1.c
  1d08e89be2885a0530a8dd0fd33848ce  gcc/testsuite/c-c++-common/analyzer/call-summaries-3.c
  a98652f2d06708729de689f5875dcc2c  gcc/testsuite/c-c++-common/analyzer/call-summaries-asm-x86.c
! 79e057531ef24b5eade74517144287cf  gcc/testsuite/c-c++-common/analyzer/call-summaries-malloc.c
  5fa3304656e624afc166ece61ea179d7  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158-2.c
  4d6505c74afd3254abad2b61a5c32cb5  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158.c
  bce1148a5d77acdf3f4ba57288cc400b  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr114159.c
! a631ca1bf074ef906e8272812d4a37f9  gcc/testsuite/c-c++-common/analyzer/callbacks-1.c
! e58a6b2c9d35a1676e7bd548c4bce3a0  gcc/testsuite/c-c++-common/analyzer/callbacks-2.c
  054c975de1ad550bc0b3a3000890f5ab  gcc/testsuite/c-c++-common/analyzer/callbacks-3.c
  6a06a08f08bccb3f240f11ccb008ad51  gcc/testsuite/c-c++-common/analyzer/calloc-1.c
! f494150b961cf57752f4e6a4ca27ce32  gcc/testsuite/c-c++-common/analyzer/capacity-1.c
! 638a2545d025b68f78c1f3383a8cb3a3  gcc/testsuite/c-c++-common/analyzer/capacity-2.c
! 78e89b1d0fe8698f3fdaf7f470d6bcb8  gcc/testsuite/c-c++-common/analyzer/capacity-3.c
  66aa74c6297ad1a2026f455611b0a4fc  gcc/testsuite/c-c++-common/analyzer/casts-1.c
  079606c0ec9f4acfbec886c8a9bf1f97  gcc/testsuite/c-c++-common/analyzer/casts-2.c
  cef5e3bcdf11b82aa8bc65b81170878f  gcc/testsuite/c-c++-common/analyzer/clobbers-1.c
! c3cc13dab6d2fade664ad81477406518  gcc/testsuite/c-c++-common/analyzer/compound-assignment-1.c
  30287a7a2b8f02421828017087fff16b  gcc/testsuite/c-c++-common/analyzer/compound-assignment-4.c
  3ce1df6bb9d2687cfaea51292b918884  gcc/testsuite/c-c++-common/analyzer/compound-assignment-5.c
  e8c412b9eaf42745a7fc07cc52fd19af  gcc/testsuite/c-c++-common/analyzer/compound-assignment-pr112969.c
  76288e31c6c0d1e9c35771d4cfda7811  gcc/testsuite/c-c++-common/analyzer/computed-goto-1.c
  414c98967b21f8892f6579d63fa90a9e  gcc/testsuite/c-c++-common/analyzer/conditionals-pr111881.c
! 0f5b65fd4ca424ff151315d4a8f2a405  gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c
! fb49552818c54e4c96d31b17246a95ab  gcc/testsuite/c-c++-common/analyzer/coreutils-sum-pr108666.c
  155d36ab3fdd051347569701effe1700  gcc/testsuite/c-c++-common/analyzer/data-model-11.c
! ed3e5f87e61e0018134586c5a1a64feb  gcc/testsuite/c-c++-common/analyzer/data-model-12.c
! 3b6f2946393d384b8f9dc15de19da5b6  gcc/testsuite/c-c++-common/analyzer/data-model-14.c
  41986412fcfd0857f096ced958eeadf1  gcc/testsuite/c-c++-common/analyzer/data-model-18.c
  4553c74241f2cd9efbf26371de99807d  gcc/testsuite/c-c++-common/analyzer/data-model-2.c
! d3ef246c1410f2f451eee532ae6fea58  gcc/testsuite/c-c++-common/analyzer/data-model-20.c
  1a7244f30f830702369a54bb48fc8aef  gcc/testsuite/c-c++-common/analyzer/data-model-21.c
  167e706d53055dd18733c241608420b2  gcc/testsuite/c-c++-common/analyzer/data-model-22.c
  a0cd88952248c9e6aeab396421bca6fc  gcc/testsuite/c-c++-common/analyzer/data-model-4.c
! 7c6e769d3c3191ee2cfb892337383850  gcc/testsuite/c-c++-common/analyzer/data-model-5d.c
  e30a91c7d128ee44d4a195e5868ee03a  gcc/testsuite/c-c++-common/analyzer/data-model-8.c
  e9598af7814c9b574008795653746252  gcc/testsuite/c-c++-common/analyzer/data-model-path-1.c
  c983dc0a3824841a4b277a70d4f30c24  gcc/testsuite/c-c++-common/analyzer/deref-before-check-2.c
*************** f22c1d6f613d0a75782bbe2b9985409c  gcc/te
*** 11138,11147 ****
  9e78ad2b0dc193d5d9ff12c23ed54093  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr114408.c
  7bf4703348c765739d583b7192f279b4  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr77425.c
  d2ac7cdc94dcc7ea5bfd23ed78b9b41a  gcc/testsuite/c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c
! 13ffe607de30212adc9ebda16cc7cbbc  gcc/testsuite/c-c++-common/analyzer/disabling.c
  4ebb603262b29b6eb98d535349c4a447  gcc/testsuite/c-c++-common/analyzer/dot-output.c
! 8ea34a719fd27f31787cfb7f8ff38940  gcc/testsuite/c-c++-common/analyzer/dump-state.c
! 5349560ff6dd31c0631eedd6b00658ee  gcc/testsuite/c-c++-common/analyzer/edges-2.c
  cd58bff2b56161f01ab9307737cbe5dd  gcc/testsuite/c-c++-common/analyzer/equivalence.c
  2d83da4ee4b322aa6495120a44ab4a2c  gcc/testsuite/c-c++-common/analyzer/errno-1.c
  aaadcec13e3fe9bdd8840af607307fe7  gcc/testsuite/c-c++-common/analyzer/errno-___errno.c
--- 11536,11545 ----
  9e78ad2b0dc193d5d9ff12c23ed54093  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr114408.c
  7bf4703348c765739d583b7192f279b4  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr77425.c
  d2ac7cdc94dcc7ea5bfd23ed78b9b41a  gcc/testsuite/c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c
! e72d4d58ac74047ac994b14980352fac  gcc/testsuite/c-c++-common/analyzer/disabling.c
  4ebb603262b29b6eb98d535349c4a447  gcc/testsuite/c-c++-common/analyzer/dot-output.c
! fda96ad160dde929000c954a08b084bf  gcc/testsuite/c-c++-common/analyzer/dump-state.c
! 8f5bbd1307842cd47cd983c589977159  gcc/testsuite/c-c++-common/analyzer/edges-2.c
  cd58bff2b56161f01ab9307737cbe5dd  gcc/testsuite/c-c++-common/analyzer/equivalence.c
  2d83da4ee4b322aa6495120a44ab4a2c  gcc/testsuite/c-c++-common/analyzer/errno-1.c
  aaadcec13e3fe9bdd8840af607307fe7  gcc/testsuite/c-c++-common/analyzer/errno-___errno.c
*************** aaadcec13e3fe9bdd8840af607307fe7  gcc/te
*** 11149,11156 ****
  8d211fca1cbcf4fb7b1bb6346f3a3f6a  gcc/testsuite/c-c++-common/analyzer/errno-global-var.c
  0ab30799aa76ae04b4edb6495e72e92f  gcc/testsuite/c-c++-common/analyzer/errno-pr107777.c
  c5de56a4561f064e270ee358ffb7aa30  gcc/testsuite/c-c++-common/analyzer/error-3.c
  661fbac2bdbb13d6a1616a88998047c7  gcc/testsuite/c-c++-common/analyzer/error-uninit.c
! 7c9d86bc70d7ee70d334e2301e82bba5  gcc/testsuite/c-c++-common/analyzer/escaping-1.c
  288359fc256efd706d000f082cce0974  gcc/testsuite/c-c++-common/analyzer/exec-1.c
  06cdeb40238f1c83c31be9c486c7f990  gcc/testsuite/c-c++-common/analyzer/expect-1.c
  8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/c-c++-common/analyzer/factorial.c
--- 11547,11555 ----
  8d211fca1cbcf4fb7b1bb6346f3a3f6a  gcc/testsuite/c-c++-common/analyzer/errno-global-var.c
  0ab30799aa76ae04b4edb6495e72e92f  gcc/testsuite/c-c++-common/analyzer/errno-pr107777.c
  c5de56a4561f064e270ee358ffb7aa30  gcc/testsuite/c-c++-common/analyzer/error-3.c
+ af5c71db79db8bbfa151cc192fcfe969  gcc/testsuite/c-c++-common/analyzer/error-pr115724.c
  661fbac2bdbb13d6a1616a88998047c7  gcc/testsuite/c-c++-common/analyzer/error-uninit.c
! 93b52f8efb04cbf517b21079a699b3aa  gcc/testsuite/c-c++-common/analyzer/escaping-1.c
  288359fc256efd706d000f082cce0974  gcc/testsuite/c-c++-common/analyzer/exec-1.c
  06cdeb40238f1c83c31be9c486c7f990  gcc/testsuite/c-c++-common/analyzer/expect-1.c
  8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/c-c++-common/analyzer/factorial.c
*************** c5de56a4561f064e270ee358ffb7aa30  gcc/te
*** 11159,11174 ****
  40298520e3317080f9c41cabe4a50544  gcc/testsuite/c-c++-common/analyzer/fd-3.c
  50636a97d77b8f9987955e13d490394f  gcc/testsuite/c-c++-common/analyzer/fd-bind-pr107928.c
  2b4e89d6bd86a237296bded464000d70  gcc/testsuite/c-c++-common/analyzer/fd-connect-pr107928.c
! 3d137581a222ffd748703c7408e260da  gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
! 298b4d5b93112886c089e19a84432d77  gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
! c7ba742da1070128ee5da2decaa2a7c9  gcc/testsuite/c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c
  dcb15e6b7d5c3424f3cb08babe7fb63a  gcc/testsuite/c-c++-common/analyzer/fd-meaning.c
! 420c686f24999848149401ab7c228a3b  gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
! 6168ec8a3c133bb871eb746aaca692d2  gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
  c1e500f74e478290b2358e6a5d237d83  gcc/testsuite/c-c++-common/analyzer/fd-uninit-1.c
  c67fd7150c48c2cbde13c569af42d724  gcc/testsuite/c-c++-common/analyzer/feasibility-1.c
  00d15989662428086fefe3003fd1d85d  gcc/testsuite/c-c++-common/analyzer/feasibility-2.c
! f851fc79d37d750ec6f4b0f427810fbb  gcc/testsuite/c-c++-common/analyzer/feasibility-3.c
  088ec06833570acdc6c6bb265466f91e  gcc/testsuite/c-c++-common/analyzer/feasibility-4.c
  166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/c-c++-common/analyzer/feasibility-pr107948.c
  1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/c-c++-common/analyzer/ferror-1.c
--- 11558,11573 ----
  40298520e3317080f9c41cabe4a50544  gcc/testsuite/c-c++-common/analyzer/fd-3.c
  50636a97d77b8f9987955e13d490394f  gcc/testsuite/c-c++-common/analyzer/fd-bind-pr107928.c
  2b4e89d6bd86a237296bded464000d70  gcc/testsuite/c-c++-common/analyzer/fd-connect-pr107928.c
! 534ed48a7f159a75a800726d25332803  gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
! 70e664750b86ed718173136aa56f69be  gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
! 2a7d531dc598fbf61e8ce805609bcc58  gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c
  dcb15e6b7d5c3424f3cb08babe7fb63a  gcc/testsuite/c-c++-common/analyzer/fd-meaning.c
! 591b3a6ec13f473ada0c9ad8e8cbc607  gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
! a84bc3781d40faab06837267da688461  gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
  c1e500f74e478290b2358e6a5d237d83  gcc/testsuite/c-c++-common/analyzer/fd-uninit-1.c
  c67fd7150c48c2cbde13c569af42d724  gcc/testsuite/c-c++-common/analyzer/feasibility-1.c
  00d15989662428086fefe3003fd1d85d  gcc/testsuite/c-c++-common/analyzer/feasibility-2.c
! 055cf25085da6976392d152d8572d7cf  gcc/testsuite/c-c++-common/analyzer/feasibility-3.c
  088ec06833570acdc6c6bb265466f91e  gcc/testsuite/c-c++-common/analyzer/feasibility-4.c
  166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/c-c++-common/analyzer/feasibility-pr107948.c
  1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/c-c++-common/analyzer/ferror-1.c
*************** e8f2ac5a2eaf583345c763651947c9b5  gcc/te
*** 11182,11209 ****
  89737b51a5c30a4053ff561fafc96a87  gcc/testsuite/c-c++-common/analyzer/file-uninit-1.c
  50e92bcce9bdc748be8e90cf89d2dfc7  gcc/testsuite/c-c++-common/analyzer/fileno-1.c
  a54c5604b047a4dc1ca40c729785be0b  gcc/testsuite/c-c++-common/analyzer/first-field-1.c
! dbc6e6b6bb42c66edb65e000211c36d9  gcc/testsuite/c-c++-common/analyzer/first-field-2.c
! 3395a63e63ad928244dea4f705f50bea  gcc/testsuite/c-c++-common/analyzer/flex-with-call-summaries.c
! 73ebc7c9f7bf6d9a87e3fa060aba2218  gcc/testsuite/c-c++-common/analyzer/flex-without-call-summaries.c
! ebd08a32e2882c02472e4b97bbb990a0  gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
  3a1490518625a0c947e5b6ac2c5401eb  gcc/testsuite/c-c++-common/analyzer/fold-string-to-char.c
  3ca6537a697cd0e749a07d45d59ad24d  gcc/testsuite/c-c++-common/analyzer/fopen-2.c
  97b083fec9e5e444893a944be9076652  gcc/testsuite/c-c++-common/analyzer/fread-1.c
  15585a669be83960f2834520a959fd2a  gcc/testsuite/c-c++-common/analyzer/fread-2.c
  f512dabde9dcd2f000bf124a071e88d4  gcc/testsuite/c-c++-common/analyzer/fread-pr108661.c
  e02f4f3f73df89227f8853a4206f0cad  gcc/testsuite/c-c++-common/analyzer/function-ptr-1.c
! fda2f587f1e8b46fed42f7478b64cddf  gcc/testsuite/c-c++-common/analyzer/function-ptr-2.c
! 6a55e6868fb6e1f3a4844412e8ad9f93  gcc/testsuite/c-c++-common/analyzer/function-ptr-3.c
! b2879bf88ff165ec7fcf358bfa0851f9  gcc/testsuite/c-c++-common/analyzer/function-ptr-4.c
  133a15e1eb3fa132a091d20cbf43f490  gcc/testsuite/c-c++-common/analyzer/function-ptr-5.c
  27e7865f9c71851f26bc947168724ada  gcc/testsuite/c-c++-common/analyzer/getc-1.c
  c8cf12bc01c84a2f2f0cb158bd49aae1  gcc/testsuite/c-c++-common/analyzer/getchar-1.c
  51ff03d45b33716faea24ccb373d44c5  gcc/testsuite/c-c++-common/analyzer/gzio-2.c
  fda86ff25535c945555b6fc4c394a45e  gcc/testsuite/c-c++-common/analyzer/gzio-3.c
  826438f921dddc8033a63027fd6280aa  gcc/testsuite/c-c++-common/analyzer/gzio-3a.c
! 95ad79e96dde48a914a9588f08788b19  gcc/testsuite/c-c++-common/analyzer/gzio.c
  e1b439caf59bbf930791f644cc2c4443  gcc/testsuite/c-c++-common/analyzer/ice-pr112889.c
! d955cf477584528b6187c5f691f398fa  gcc/testsuite/c-c++-common/analyzer/imprecise-floating-point-1.c
  41b87104bc61c7bda741b03025c359b4  gcc/testsuite/c-c++-common/analyzer/infinite-loop-2.c
  963be3f26ca424fe0ab634bc2845072c  gcc/testsuite/c-c++-common/analyzer/infinite-loop-4.c
  2a4284479c76a6fca65b58f07c971c28  gcc/testsuite/c-c++-common/analyzer/infinite-loop-crc32c.c
--- 11581,11608 ----
  89737b51a5c30a4053ff561fafc96a87  gcc/testsuite/c-c++-common/analyzer/file-uninit-1.c
  50e92bcce9bdc748be8e90cf89d2dfc7  gcc/testsuite/c-c++-common/analyzer/fileno-1.c
  a54c5604b047a4dc1ca40c729785be0b  gcc/testsuite/c-c++-common/analyzer/first-field-1.c
! bdefb38ec06fb2e8a965770a1ddea724  gcc/testsuite/c-c++-common/analyzer/first-field-2.c
! fc51afade5f3ca99d0d8c342a92e8b85  gcc/testsuite/c-c++-common/analyzer/flex-with-call-summaries.c
! 511ea7435f4f4c53185e52c527c62a7a  gcc/testsuite/c-c++-common/analyzer/flex-without-call-summaries.c
! 28949d2a04a0d181e2013c7f210560c6  gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
  3a1490518625a0c947e5b6ac2c5401eb  gcc/testsuite/c-c++-common/analyzer/fold-string-to-char.c
  3ca6537a697cd0e749a07d45d59ad24d  gcc/testsuite/c-c++-common/analyzer/fopen-2.c
  97b083fec9e5e444893a944be9076652  gcc/testsuite/c-c++-common/analyzer/fread-1.c
  15585a669be83960f2834520a959fd2a  gcc/testsuite/c-c++-common/analyzer/fread-2.c
  f512dabde9dcd2f000bf124a071e88d4  gcc/testsuite/c-c++-common/analyzer/fread-pr108661.c
  e02f4f3f73df89227f8853a4206f0cad  gcc/testsuite/c-c++-common/analyzer/function-ptr-1.c
! 9c00ba72ba35d3cfe88e864bc262b4ff  gcc/testsuite/c-c++-common/analyzer/function-ptr-2.c
! f8508fca848d250b20e05b612f3614dc  gcc/testsuite/c-c++-common/analyzer/function-ptr-3.c
! dfa949c12bf47e790ca3b0326733b4bd  gcc/testsuite/c-c++-common/analyzer/function-ptr-4.c
  133a15e1eb3fa132a091d20cbf43f490  gcc/testsuite/c-c++-common/analyzer/function-ptr-5.c
  27e7865f9c71851f26bc947168724ada  gcc/testsuite/c-c++-common/analyzer/getc-1.c
  c8cf12bc01c84a2f2f0cb158bd49aae1  gcc/testsuite/c-c++-common/analyzer/getchar-1.c
  51ff03d45b33716faea24ccb373d44c5  gcc/testsuite/c-c++-common/analyzer/gzio-2.c
  fda86ff25535c945555b6fc4c394a45e  gcc/testsuite/c-c++-common/analyzer/gzio-3.c
  826438f921dddc8033a63027fd6280aa  gcc/testsuite/c-c++-common/analyzer/gzio-3a.c
! d1c4ddb727ee01350795c09b131c06df  gcc/testsuite/c-c++-common/analyzer/gzio.c
  e1b439caf59bbf930791f644cc2c4443  gcc/testsuite/c-c++-common/analyzer/ice-pr112889.c
! c0d4ffd8d8a9cd0d270016300da5a4d4  gcc/testsuite/c-c++-common/analyzer/imprecise-floating-point-1.c
  41b87104bc61c7bda741b03025c359b4  gcc/testsuite/c-c++-common/analyzer/infinite-loop-2.c
  963be3f26ca424fe0ab634bc2845072c  gcc/testsuite/c-c++-common/analyzer/infinite-loop-4.c
  2a4284479c76a6fca65b58f07c971c28  gcc/testsuite/c-c++-common/analyzer/infinite-loop-crc32c.c
*************** a105342d3292d355507ab715b3a2ca98  gcc/te
*** 11218,11224 ****
  29e098dde04cb3f8dc4bc4d3e6ecea87  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited-buggy.c
  57e4b763cf0302dace5e4608c7185d85  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited.c
  eecccbd82a0978c6fefd4883a004a5ce  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-5.c
! 5d46cc14809df1773684db513d227c0f  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-alloca.c
  4f74fbc85a1872090b39ede44d71e939  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-inlining.c
  6047a46b4b1e3a1818da6c9ef886d468  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-1.c
  501065cb78c98e2903bf9054434721ec  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-2.c
--- 11617,11623 ----
  29e098dde04cb3f8dc4bc4d3e6ecea87  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited-buggy.c
  57e4b763cf0302dace5e4608c7185d85  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited.c
  eecccbd82a0978c6fefd4883a004a5ce  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-5.c
! 4a35e75e78cf53bf248bf08a1e709427  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-alloca.c
  4f74fbc85a1872090b39ede44d71e939  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-inlining.c
  6047a46b4b1e3a1818da6c9ef886d468  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-1.c
  501065cb78c98e2903bf9054434721ec  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-2.c
*************** f96a5e26ebe3f224244fcc898ace703b  gcc/te
*** 11248,11266 ****
  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
! 3b2442e1fb86e61bdc1f45d8750dd3a2  gcc/testsuite/c-c++-common/analyzer/leak-2.c
! 862c513838cce7710b72958de0e089e7  gcc/testsuite/c-c++-common/analyzer/leak-3.c
! ad7f259d8751ba6a000be5618f70545a  gcc/testsuite/c-c++-common/analyzer/leak-4.c
  fa0f02fc0b9e204f25d1e9fcb7b836e0  gcc/testsuite/c-c++-common/analyzer/leak-pr105906.c
  ff24be99b18d9e9062bfbae34b173cde  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-with-call-summaries.c
  16477abf1a9d42c1e3b9b4a435c1f739  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-without-call-summaries.c
  cba831ccfe6c520cc9d50eb237dc440d  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-1.c
  e8a3ee34295f81927d46b813f1bccd7e  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-2.c
! 84b2993ff3606dbade9fa2092a3b1579  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c
  7885770ebfe09d86442089bd86651335  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1.c
  8c2a26147f66df7eb2ef94470bae77e8  gcc/testsuite/c-c++-common/analyzer/loop-2.c
  d6bb93bd02ecebd1916046e5a2a48d40  gcc/testsuite/c-c++-common/analyzer/loop-2a.c
! 38554e26f0a2347fa36dcc051c5d5320  gcc/testsuite/c-c++-common/analyzer/loop-3.c
  0ee2f8031c238940bd9e987ce44c8fcb  gcc/testsuite/c-c++-common/analyzer/loop-4.c
  c8300e47d2a3531271804a8506b3763e  gcc/testsuite/c-c++-common/analyzer/loop-n-down-to-1-by-1.c
  e2a77424037e3f8e995d18b274bebccc  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-1.c
--- 11647,11665 ----
  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
! 23e360708474aac3fe33c2205e3330d6  gcc/testsuite/c-c++-common/analyzer/leak-3.c
! 63af742871ccaa72cadfd59dc6ea9a9d  gcc/testsuite/c-c++-common/analyzer/leak-4.c
  fa0f02fc0b9e204f25d1e9fcb7b836e0  gcc/testsuite/c-c++-common/analyzer/leak-pr105906.c
  ff24be99b18d9e9062bfbae34b173cde  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-with-call-summaries.c
  16477abf1a9d42c1e3b9b4a435c1f739  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-without-call-summaries.c
  cba831ccfe6c520cc9d50eb237dc440d  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-1.c
  e8a3ee34295f81927d46b813f1bccd7e  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-2.c
! d84e4faf90db15ae62e01e3b04e20bbb  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c
  7885770ebfe09d86442089bd86651335  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1.c
  8c2a26147f66df7eb2ef94470bae77e8  gcc/testsuite/c-c++-common/analyzer/loop-2.c
  d6bb93bd02ecebd1916046e5a2a48d40  gcc/testsuite/c-c++-common/analyzer/loop-2a.c
! 5ecbec4be61d32149dd5b630757ddd4d  gcc/testsuite/c-c++-common/analyzer/loop-3.c
  0ee2f8031c238940bd9e987ce44c8fcb  gcc/testsuite/c-c++-common/analyzer/loop-4.c
  c8300e47d2a3531271804a8506b3763e  gcc/testsuite/c-c++-common/analyzer/loop-n-down-to-1-by-1.c
  e2a77424037e3f8e995d18b274bebccc  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-1.c
*************** f87f14f8a72827b5feee7074a11c8cad  gcc/te
*** 11269,11317 ****
  a7e5a47a1c4034d7e2762efa201bdec0  gcc/testsuite/c-c++-common/analyzer/loop-start-up-to-end-by-1.c
  fbacd9490cdecf026deea8560b5b6b83  gcc/testsuite/c-c++-common/analyzer/loop.c
  64f76515677dddc9e538e1b91b4e1e05  gcc/testsuite/c-c++-common/analyzer/malloc-2.c
! e0ae53de586eac1b51f7ef4ebf8386c1  gcc/testsuite/c-c++-common/analyzer/malloc-3.c
! 42a25f65cb48c251a4ca2b042d1950fc  gcc/testsuite/c-c++-common/analyzer/malloc-5.c
! 089a218821bc78b4449f445d077fe986  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-401-example.c
! 33eb20bdcc22880a94f04f3cf3ce75ac  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-415-examples.c
! ad93a90a150e736e096f90487b8efc05  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-416-examples.c
! bf418ed77263ef23760fccd26443bbd8  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-590-examples.c
! bdb39bc98a9ebc6e3b2972ee67bf1ae1  gcc/testsuite/c-c++-common/analyzer/malloc-callbacks.c
! 212fdabc9998e80319bb376300f15a4c  gcc/testsuite/c-c++-common/analyzer/malloc-dce.c
! a0baef29e471a23f4b1d85765e6c323a  gcc/testsuite/c-c++-common/analyzer/malloc-dedupe-1.c
! 5692e6851cd3a48cde34fbef4fe44a23  gcc/testsuite/c-c++-common/analyzer/malloc-in-loop.c
! 0eb3eab22850b1ee96240fa0f315c8f7  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-1.c
! d079e62118cc134df565e6e8305c0f02  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-10.c
! cc995cddea03c4272c252eeddcce116e  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-11.c
! 9ba47d1cadcdb905818d680ab630fc87  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-12.c
! 040536c40f5543d2f3a0fded49c9f951  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-13a.c
! c975c8677595ca5266f4944072467ac6  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-2.c
! 5a40812b01235635b102868981304a4d  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-3.c
! f540220ba65cd0564922124812272a4d  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-4.c
! a18fcc27c7368d934b0109a63a2fe7d1  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-5.c
! 8c3ed72cdfbd43a79f4a2aafbab9472e  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-6.c
! 69517082dc4ef0e29376e7b276a4f37f  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-7.c
! 509c006d6c5aac648b0185d645bdccb4  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-8-unchecked.c
! 501c9d5c4d00231c3decfa9f95a02441  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-9.c
! 87e1999cf6c969790200a82425ce6d87  gcc/testsuite/c-c++-common/analyzer/malloc-macro-inline-events.c
! 33783cc60291deb3381a32687153564f  gcc/testsuite/c-c++-common/analyzer/malloc-macro-separate-events.c
  13ff782aadb00a0005a902b7a6b47bb3  gcc/testsuite/c-c++-common/analyzer/malloc-macro.h
  0a26b1a6638ad50af7917b694d62f3ca  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-1.c
! 3fa8d16b65385c1f68e354229e9e76d1  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-3.c
! 651998f628e3054917e94d72e1539e23  gcc/testsuite/c-c++-common/analyzer/malloc-meaning-1.c
! 5f1e6465e704334db9b85ba9f9bc5f24  gcc/testsuite/c-c++-common/analyzer/malloc-paths-1.c
! 412aa50e9719b304e4b0af9bf584748c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-2.c
! 9de165979b7aff117a96e54202a9f96c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-3.c
! 217391452ef57cef4db9f027bf139c7c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-4.c
! c0512edf80944ffafce5cf9e1f06c2ee  gcc/testsuite/c-c++-common/analyzer/malloc-paths-5.c
! 54fdccce21f567ce613c24d9a16b1593  gcc/testsuite/c-c++-common/analyzer/malloc-paths-6.c
! 601cd4c7b73ebb6e97b3bda99e6bea6b  gcc/testsuite/c-c++-common/analyzer/malloc-paths-7.c
! 16ddee2fac1ab9a0fbc3731f7cd52b2e  gcc/testsuite/c-c++-common/analyzer/malloc-paths-8.c
! 558a3fb47323df07bdd7db3c09009bb0  gcc/testsuite/c-c++-common/analyzer/malloc-paths-9-noexcept.c
! 9ecbe2ad683ce1fdcb8fb5593096a834  gcc/testsuite/c-c++-common/analyzer/malloc-sarif-1.c
! 8261cb8449d54e0382dc64b74d46d2c0  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1a.c
! b5bb321785e7bea5388cb2b64e173213  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1b.c
! d464c105278a3135eece0b536dfddef1  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-2.c
! d612c4dbe9f34c8b84f01f0c3b2c896f  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-3.c
  6ccd146a06cc2ba54e9f0262c6f28597  gcc/testsuite/c-c++-common/analyzer/many-disabled-diagnostics.c
  a9a24860ed497a76f830a117a460b2ec  gcc/testsuite/c-c++-common/analyzer/many-unused-locals.c
  d4bf17b885958686075a5872643ee9bb  gcc/testsuite/c-c++-common/analyzer/memcpy-2.c
--- 11668,11715 ----
  a7e5a47a1c4034d7e2762efa201bdec0  gcc/testsuite/c-c++-common/analyzer/loop-start-up-to-end-by-1.c
  fbacd9490cdecf026deea8560b5b6b83  gcc/testsuite/c-c++-common/analyzer/loop.c
  64f76515677dddc9e538e1b91b4e1e05  gcc/testsuite/c-c++-common/analyzer/malloc-2.c
! 114a7985336b3fe3ab3c21bda564f04a  gcc/testsuite/c-c++-common/analyzer/malloc-3.c
! 3e77ec3489ac3db49351c1d10657035a  gcc/testsuite/c-c++-common/analyzer/malloc-5.c
! cb40d7d744e0f690c2dc8ae9dae55206  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-401-example.c
! d9505114b912ffa781655567b227ca9c  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-415-examples.c
! 7234c6bb236d2810be3b0599c025c945  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-416-examples.c
! fd5b4569b3327ece67a7d6e4cd1ecc8f  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-590-examples.c
! 5eb345c22cb88b9dabfbebb47fe39b99  gcc/testsuite/c-c++-common/analyzer/malloc-callbacks.c
! ba109b672d3b45fe288d25b24f049436  gcc/testsuite/c-c++-common/analyzer/malloc-dce.c
! fd15a7c5647ef66f939c4b86beb0cd97  gcc/testsuite/c-c++-common/analyzer/malloc-dedupe-1.c
! 30ac20826d8978e00de4e5b2657aec8f  gcc/testsuite/c-c++-common/analyzer/malloc-in-loop.c
! 4e4bdad8278ce7398d4f899a19c566cf  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-1.c
! b292b30fde2cabcc00cb5d5b0a850d7c  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-10.c
! 6be1076250995df3970f51463fd9cedc  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-11.c
! 365ca635df19cd2507c28222aa412c04  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-12.c
! ef5fed1df0cbcd8b1b18f00f9b36e702  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-13a.c
! cb1a8bdc3b80774fc66833d8ff2ce023  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-2.c
! 73fd89cc1f96b783e727a4724803ff80  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-3.c
! 5fc78ee63ddb4b88c847cc64a7ed2924  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-4.c
! e6a346fd5109d1bb762d6b7a609b1f39  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-5.c
! 429675fac70473276e9eb50c17ea3ec7  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-6.c
! 03efdd4b594c5a53afd183cd68964df3  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-7.c
! 97532e76de56fc0dffcf24fd897e55a6  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-9.c
! d1424a74b194e5f2b35600438d9e8612  gcc/testsuite/c-c++-common/analyzer/malloc-macro-inline-events.c
! dec78b8981aa4ee61545d808a6332821  gcc/testsuite/c-c++-common/analyzer/malloc-macro-separate-events.c
  13ff782aadb00a0005a902b7a6b47bb3  gcc/testsuite/c-c++-common/analyzer/malloc-macro.h
  0a26b1a6638ad50af7917b694d62f3ca  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-1.c
! af0efdfa390e139975f4c36de8bd68a4  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-3.c
! 6ac569c373e69540c764b26977348aac  gcc/testsuite/c-c++-common/analyzer/malloc-meaning-1.c
! 0db5cd7a75aad6e9a4e33df9292f8fae  gcc/testsuite/c-c++-common/analyzer/malloc-paths-1.c
! 558ca029fc9b08750a787245a82c15bf  gcc/testsuite/c-c++-common/analyzer/malloc-paths-2.c
! 49d1a2f05e9bfa262b37de800494191a  gcc/testsuite/c-c++-common/analyzer/malloc-paths-3.c
! a110e0739fe4cf65ab6e2e9e86203643  gcc/testsuite/c-c++-common/analyzer/malloc-paths-4.c
! c38f4f92b25d2386ee9e3962bddafaa3  gcc/testsuite/c-c++-common/analyzer/malloc-paths-5.c
! fcd4a44204fdcef9a707187f31ac2cf0  gcc/testsuite/c-c++-common/analyzer/malloc-paths-6.c
! 70b4bcd18fd1354e17527ed98704aecb  gcc/testsuite/c-c++-common/analyzer/malloc-paths-7.c
! 5ebb1de8fcc9cbcc3607dc033450a9ca  gcc/testsuite/c-c++-common/analyzer/malloc-paths-8.c
! 4f4df44de668ac61fe04c07d2f607100  gcc/testsuite/c-c++-common/analyzer/malloc-paths-9-noexcept.c
! a60f0e2e9b5cfaf059fd32b913c9e290  gcc/testsuite/c-c++-common/analyzer/malloc-sarif-1.c
! df6d85078bd02616f1a19a4b3761441a  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1a.c
! 49ad55e15fade53b7fe49ed86366835d  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1b.c
! 946fc3891b3ed361217bca5976843743  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-2.c
! eb3cf0d7d10bf693df6ca55bfac2a236  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-3.c
  6ccd146a06cc2ba54e9f0262c6f28597  gcc/testsuite/c-c++-common/analyzer/many-disabled-diagnostics.c
  a9a24860ed497a76f830a117a460b2ec  gcc/testsuite/c-c++-common/analyzer/many-unused-locals.c
  d4bf17b885958686075a5872643ee9bb  gcc/testsuite/c-c++-common/analyzer/memcpy-2.c
*************** a256b4df4964505fabaddb133153a201  gcc/te
*** 11333,11357 ****
  10ef8fc8fdc0652e0eae180799d486c8  gcc/testsuite/c-c++-common/analyzer/null-terminated-strings-2.c
  0d02ed8e1b5ac37f6e2d0eec884933c1  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-1.c
  43dcd48b6c73f9d8d64b95d20f4581b4  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-get-min.c
! 24b525896646ce149d19292cb7df4b30  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-1.c
! 4a3c49c3c3fea0d14b0c5dc0801e6a24  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-2.c
  010805505962cb3ca5a783127e374794  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-3.c
! bcfef6b80f5f87746412d5248b1181a8  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-5.c
  2c5cd1ccc8e8156dab1bceee1e648188  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-const-fn.c
  2407d9e5c1b1cedd802a676294c32835  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-coreutils.c
  7b37db3cd00928477b112bf00cee7b33  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-curl.c
  c52cf48f8a5b88323363853f697a3f05  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-json.c
  0aa30057e371550257dca5d0ad20d954  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-sarif.c
! f7b26ca3130387e4110cb4ace86b0d88  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-11.c
! 0064bce41cfe4f3baeb3f04829d9b45f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-3.c
! c3496ba2912cc1caed2d2f7e114e017f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-8.c
  24e84fde8769f6b568fbbfd4d1fab8ef  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr110928.c
  4b4040192bf840340d180d48b3baf801  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111305.c
  f6abb46de5e149c3f51e095ebafbfd2c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111441.c
  fd5ff61d7a7a7b916324140fe3cb5d15  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr114899.c
  ddb39f13a9824d6f1b3f6e3508ece447  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat-2.c
  a435090b70c1213b2855e316d7921c1c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat.c
! 18584acce7a716ada0d2beca00fd0156  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr110387.c
  606543af52a81eac809729a52049583c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr111266.c
  fba9c98e5882168b4357947531f5c3b5  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr112792.c
  c8afd3ff3470bbc33ae32b332a3ec376  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr114472.c
--- 11731,11755 ----
  10ef8fc8fdc0652e0eae180799d486c8  gcc/testsuite/c-c++-common/analyzer/null-terminated-strings-2.c
  0d02ed8e1b5ac37f6e2d0eec884933c1  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-1.c
  43dcd48b6c73f9d8d64b95d20f4581b4  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-get-min.c
! eb24e40876713860ca0ac7e931abfc74  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-1.c
! dccaf3f6a5587a149aa108073584f903  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-2.c
  010805505962cb3ca5a783127e374794  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-3.c
! 76447181c8e4ba9f2f4b741530e5f530  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-5.c
  2c5cd1ccc8e8156dab1bceee1e648188  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-const-fn.c
  2407d9e5c1b1cedd802a676294c32835  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-coreutils.c
  7b37db3cd00928477b112bf00cee7b33  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-curl.c
  c52cf48f8a5b88323363853f697a3f05  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-json.c
  0aa30057e371550257dca5d0ad20d954  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-sarif.c
! aa8b4b553cd662957411d18c1af815d7  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-11.c
! f55f42361e188dc552d2949c35266e9f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-3.c
! a4afe75fce610b5b4bf8328a5a6680ba  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-8.c
  24e84fde8769f6b568fbbfd4d1fab8ef  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr110928.c
  4b4040192bf840340d180d48b3baf801  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111305.c
  f6abb46de5e149c3f51e095ebafbfd2c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111441.c
  fd5ff61d7a7a7b916324140fe3cb5d15  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr114899.c
  ddb39f13a9824d6f1b3f6e3508ece447  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat-2.c
  a435090b70c1213b2855e316d7921c1c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat.c
! faf5c64c9f4ef2376b39ca41758cad75  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr110387.c
  606543af52a81eac809729a52049583c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr111266.c
  fba9c98e5882168b4357947531f5c3b5  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr112792.c
  c8afd3ff3470bbc33ae32b332a3ec376  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr114472.c
*************** e089e6b6af2eeb36ade618f602bd67bd  gcc/te
*** 11367,11377 ****
  4d166a6392bd44e453b465258f187cd0  gcc/testsuite/c-c++-common/analyzer/paths-1.c
  25979d0595f5e4da39288a37576604b7  gcc/testsuite/c-c++-common/analyzer/paths-1a.c
  7a5be82eddd4e1df5ecb4f1b14585036  gcc/testsuite/c-c++-common/analyzer/paths-2.c
! db94fe63d590662e55109a2a7e5e8fe8  gcc/testsuite/c-c++-common/analyzer/paths-3.c
  508bc423ef705c0c8789792e35ed3011  gcc/testsuite/c-c++-common/analyzer/paths-4.c
  324a76012fa37a5e46e7862f10d0b4ca  gcc/testsuite/c-c++-common/analyzer/paths-5.c
! e743e8bda033473fcaea2882346cd62e  gcc/testsuite/c-c++-common/analyzer/paths-6.c
! 58de178e30758a2cbc22f446455554a1  gcc/testsuite/c-c++-common/analyzer/paths-7.c
  5d0ae057d107f23b1484b5e6f2032230  gcc/testsuite/c-c++-common/analyzer/paths-8.c
  b818695de20677346ff28a3913c7b163  gcc/testsuite/c-c++-common/analyzer/pattern-test-1.c
  5f92a63a3a47c94b25c8524b202fe4b4  gcc/testsuite/c-c++-common/analyzer/phi-1.c
--- 11765,11775 ----
  4d166a6392bd44e453b465258f187cd0  gcc/testsuite/c-c++-common/analyzer/paths-1.c
  25979d0595f5e4da39288a37576604b7  gcc/testsuite/c-c++-common/analyzer/paths-1a.c
  7a5be82eddd4e1df5ecb4f1b14585036  gcc/testsuite/c-c++-common/analyzer/paths-2.c
! f20f6dbe0a6340dd8819004d19a7464e  gcc/testsuite/c-c++-common/analyzer/paths-3.c
  508bc423ef705c0c8789792e35ed3011  gcc/testsuite/c-c++-common/analyzer/paths-4.c
  324a76012fa37a5e46e7862f10d0b4ca  gcc/testsuite/c-c++-common/analyzer/paths-5.c
! d762e4f29fc0603fdeb824f4133502c6  gcc/testsuite/c-c++-common/analyzer/paths-6.c
! 9c51b1d822f2816c64eebd0d091831df  gcc/testsuite/c-c++-common/analyzer/paths-7.c
  5d0ae057d107f23b1484b5e6f2032230  gcc/testsuite/c-c++-common/analyzer/paths-8.c
  b818695de20677346ff28a3913c7b163  gcc/testsuite/c-c++-common/analyzer/pattern-test-1.c
  5f92a63a3a47c94b25c8524b202fe4b4  gcc/testsuite/c-c++-common/analyzer/phi-1.c
*************** e84f664468060451e3cb304c75cea3d6  gcc/te
*** 11390,11396 ****
  89328508480588c2f80fa5160078a764  gcc/testsuite/c-c++-common/analyzer/pr103217-4.c
  682c85a8b33655e8e6969f2b149c32c6  gcc/testsuite/c-c++-common/analyzer/pr103217-5.c
  04bcadd7568e1d29c9051e32234ee444  gcc/testsuite/c-c++-common/analyzer/pr103217.c
! e8c3b2f2a1bfc4b9192cc58212f3c2f1  gcc/testsuite/c-c++-common/analyzer/pr103526.c
  a392e3d33dcfef1cc73fc89dfebd7d47  gcc/testsuite/c-c++-common/analyzer/pr104029.c
  f711df2b9e4ae64a01d847f0f3b3ad2c  gcc/testsuite/c-c++-common/analyzer/pr104062.c
  b37b97c145c4e03b92cc527ed777ccc3  gcc/testsuite/c-c++-common/analyzer/pr104089.c
--- 11788,11794 ----
  89328508480588c2f80fa5160078a764  gcc/testsuite/c-c++-common/analyzer/pr103217-4.c
  682c85a8b33655e8e6969f2b149c32c6  gcc/testsuite/c-c++-common/analyzer/pr103217-5.c
  04bcadd7568e1d29c9051e32234ee444  gcc/testsuite/c-c++-common/analyzer/pr103217.c
! e32c60b03304c8f44a315b8d755d4484  gcc/testsuite/c-c++-common/analyzer/pr103526.c
  a392e3d33dcfef1cc73fc89dfebd7d47  gcc/testsuite/c-c++-common/analyzer/pr104029.c
  f711df2b9e4ae64a01d847f0f3b3ad2c  gcc/testsuite/c-c++-common/analyzer/pr104062.c
  b37b97c145c4e03b92cc527ed777ccc3  gcc/testsuite/c-c++-common/analyzer/pr104089.c
*************** b37b97c145c4e03b92cc527ed777ccc3  gcc/te
*** 11401,11417 ****
  ff3edd5d7ef8daa0dbc4754f1e087dea  gcc/testsuite/c-c++-common/analyzer/pr105087-1.c
  31e66e50ca6137c903edb9a5f1c33bb8  gcc/testsuite/c-c++-common/analyzer/pr105087-2.c
  7db1771ee016e8eff4a7d43565e82ac4  gcc/testsuite/c-c++-common/analyzer/pr105252.c
! 8dec73992c96852113d32097a035a39c  gcc/testsuite/c-c++-common/analyzer/pr105783.c
  f731f4f8612f8ee22eb1ea13cf0aec0f  gcc/testsuite/c-c++-common/analyzer/pr106394.c
! 8af52372a76611b936c16a76eb1d0104  gcc/testsuite/c-c++-common/analyzer/pr106539.c
  cdc8616a7ffe3b90347da98ea49fbe0c  gcc/testsuite/c-c++-common/analyzer/pr106845.c
  af023122a19de528dafe039ac05f2a3b  gcc/testsuite/c-c++-common/analyzer/pr107345.c
  f4b9205ce0a403e60c39a7ed11a3395c  gcc/testsuite/c-c++-common/analyzer/pr109439.c
  8475e5a36086691568721592e9e0b88a  gcc/testsuite/c-c++-common/analyzer/pr109577-noexcept.c
  038573b03135b2b0b98abfc0f6575ae3  gcc/testsuite/c-c++-common/analyzer/pr110455.c
  a84846a024c9ccf58fb4032be65bcdc9  gcc/testsuite/c-c++-common/analyzer/pr110830.c
  3b715088546567d4c2cc30cc26417f11  gcc/testsuite/c-c++-common/analyzer/pr93032-mztools-simplified.c
! ddd38a6cae93f735290778e9e2854548  gcc/testsuite/c-c++-common/analyzer/pr93290.c
  571c9ec61e278add06ca460a7d410139  gcc/testsuite/c-c++-common/analyzer/pr93352.c
  d4232896f839f8b1b10297172b034331  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-3.c
  bea694320cc00629307db054732ff4f9  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-noexcept.c
--- 11799,11816 ----
  ff3edd5d7ef8daa0dbc4754f1e087dea  gcc/testsuite/c-c++-common/analyzer/pr105087-1.c
  31e66e50ca6137c903edb9a5f1c33bb8  gcc/testsuite/c-c++-common/analyzer/pr105087-2.c
  7db1771ee016e8eff4a7d43565e82ac4  gcc/testsuite/c-c++-common/analyzer/pr105252.c
! d326053c1d359133146ff6033c613ef0  gcc/testsuite/c-c++-common/analyzer/pr105783.c
  f731f4f8612f8ee22eb1ea13cf0aec0f  gcc/testsuite/c-c++-common/analyzer/pr106394.c
! fe560743a286cb44a153c4f4067bba42  gcc/testsuite/c-c++-common/analyzer/pr106539.c
  cdc8616a7ffe3b90347da98ea49fbe0c  gcc/testsuite/c-c++-common/analyzer/pr106845.c
  af023122a19de528dafe039ac05f2a3b  gcc/testsuite/c-c++-common/analyzer/pr107345.c
  f4b9205ce0a403e60c39a7ed11a3395c  gcc/testsuite/c-c++-common/analyzer/pr109439.c
  8475e5a36086691568721592e9e0b88a  gcc/testsuite/c-c++-common/analyzer/pr109577-noexcept.c
  038573b03135b2b0b98abfc0f6575ae3  gcc/testsuite/c-c++-common/analyzer/pr110455.c
  a84846a024c9ccf58fb4032be65bcdc9  gcc/testsuite/c-c++-common/analyzer/pr110830.c
+ e8c7a5791d8b68488c8f87c4b7da17f7  gcc/testsuite/c-c++-common/analyzer/pr119278.c
  3b715088546567d4c2cc30cc26417f11  gcc/testsuite/c-c++-common/analyzer/pr93032-mztools-simplified.c
! a0f232731d2c185572a93b0c1dade431  gcc/testsuite/c-c++-common/analyzer/pr93290.c
  571c9ec61e278add06ca460a7d410139  gcc/testsuite/c-c++-common/analyzer/pr93352.c
  d4232896f839f8b1b10297172b034331  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-3.c
  bea694320cc00629307db054732ff4f9  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-noexcept.c
*************** d562f145d761d598c4cf5d581b61e546  gcc/te
*** 11427,11443 ****
  76559ba88816dd3d385d56090dd3e037  gcc/testsuite/c-c++-common/analyzer/pr94105.c
  4a0882eb0437ed6fd5ca96ab27e0a6ba  gcc/testsuite/c-c++-common/analyzer/pr94362-1.c
  26e11daef97e39d6db3d2431e8863ce9  gcc/testsuite/c-c++-common/analyzer/pr94362-2.c
! 2b860df7bd7544da2d884a29b5b8270b  gcc/testsuite/c-c++-common/analyzer/pr94399.c
  9c96000a1a0a853d0179d8fd11c65e55  gcc/testsuite/c-c++-common/analyzer/pr94447.c
  7fad0567a41ddcb729c78cbf8801e644  gcc/testsuite/c-c++-common/analyzer/pr94596.c
  1be53c5b37cf4078b3541a25345038a4  gcc/testsuite/c-c++-common/analyzer/pr94639.c
  fd0f492f05905f9735a1c3fb5aba65e2  gcc/testsuite/c-c++-common/analyzer/pr94640.c
  6cd931319824cc8853e7a562f4f1b30a  gcc/testsuite/c-c++-common/analyzer/pr94732.c
  fdaa0ecaf535d685940149efac11419b  gcc/testsuite/c-c++-common/analyzer/pr94839.c
! ef42f03d3bb8caac2a24c9aea94f1103  gcc/testsuite/c-c++-common/analyzer/pr94851-1.c
! eae76672134a123479373b9f9bbac641  gcc/testsuite/c-c++-common/analyzer/pr94851-2.c
  9ea2ed915597b6c25fabf8d6beb5fffd  gcc/testsuite/c-c++-common/analyzer/pr94851-3.c
! e91b5892ab788d01d4d0ee03830d6c98  gcc/testsuite/c-c++-common/analyzer/pr94851-4.c
  de6895701db3c05fb80ecd2032f4075f  gcc/testsuite/c-c++-common/analyzer/pr95026.c
  1114dd32582b991ab061e3d0d512fc71  gcc/testsuite/c-c++-common/analyzer/pr95240.c
  d0a6505c532b4244902d3dd3501af977  gcc/testsuite/c-c++-common/analyzer/pr96598.c
--- 11826,11842 ----
  76559ba88816dd3d385d56090dd3e037  gcc/testsuite/c-c++-common/analyzer/pr94105.c
  4a0882eb0437ed6fd5ca96ab27e0a6ba  gcc/testsuite/c-c++-common/analyzer/pr94362-1.c
  26e11daef97e39d6db3d2431e8863ce9  gcc/testsuite/c-c++-common/analyzer/pr94362-2.c
! 7b14821ae094ff6c38d9eb288524fb41  gcc/testsuite/c-c++-common/analyzer/pr94399.c
  9c96000a1a0a853d0179d8fd11c65e55  gcc/testsuite/c-c++-common/analyzer/pr94447.c
  7fad0567a41ddcb729c78cbf8801e644  gcc/testsuite/c-c++-common/analyzer/pr94596.c
  1be53c5b37cf4078b3541a25345038a4  gcc/testsuite/c-c++-common/analyzer/pr94639.c
  fd0f492f05905f9735a1c3fb5aba65e2  gcc/testsuite/c-c++-common/analyzer/pr94640.c
  6cd931319824cc8853e7a562f4f1b30a  gcc/testsuite/c-c++-common/analyzer/pr94732.c
  fdaa0ecaf535d685940149efac11419b  gcc/testsuite/c-c++-common/analyzer/pr94839.c
! 9c0c1d562c5f50e8d71f2cd524d906d8  gcc/testsuite/c-c++-common/analyzer/pr94851-1.c
! 8c6a8bbab3c19db44df94a37114a6bb5  gcc/testsuite/c-c++-common/analyzer/pr94851-2.c
  9ea2ed915597b6c25fabf8d6beb5fffd  gcc/testsuite/c-c++-common/analyzer/pr94851-3.c
! 182b0e5fc0ff1e9e219acc8e4d0f9cef  gcc/testsuite/c-c++-common/analyzer/pr94851-4.c
  de6895701db3c05fb80ecd2032f4075f  gcc/testsuite/c-c++-common/analyzer/pr95026.c
  1114dd32582b991ab061e3d0d512fc71  gcc/testsuite/c-c++-common/analyzer/pr95240.c
  d0a6505c532b4244902d3dd3501af977  gcc/testsuite/c-c++-common/analyzer/pr96598.c
*************** e2da6e0e14d8c8ac966c0b44386c520d  gcc/te
*** 11467,11473 ****
  2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/c-c++-common/analyzer/pr97233.c
  87cd37c72323b82cb97b0d3004f56d53  gcc/testsuite/c-c++-common/analyzer/pr97514.c
  2dc9951decf024baa7aed3a4396b2da7  gcc/testsuite/c-c++-common/analyzer/pr97568.c
! 34f442bdd073980116520abe424e006f  gcc/testsuite/c-c++-common/analyzer/pr97608.c
  2676b5a12adc3dc9e19dd9c888bdf9ce  gcc/testsuite/c-c++-common/analyzer/pr97668.c
  9b541aec01bec34ac52fa0ef2c5131f0  gcc/testsuite/c-c++-common/analyzer/pr98073.c
  b9380bb82c2c184f0d8eb4c299016e6a  gcc/testsuite/c-c++-common/analyzer/pr98564.c
--- 11866,11872 ----
  2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/c-c++-common/analyzer/pr97233.c
  87cd37c72323b82cb97b0d3004f56d53  gcc/testsuite/c-c++-common/analyzer/pr97514.c
  2dc9951decf024baa7aed3a4396b2da7  gcc/testsuite/c-c++-common/analyzer/pr97568.c
! 957204f7b9cdc7247fae06172a267039  gcc/testsuite/c-c++-common/analyzer/pr97608.c
  2676b5a12adc3dc9e19dd9c888bdf9ce  gcc/testsuite/c-c++-common/analyzer/pr97668.c
  9b541aec01bec34ac52fa0ef2c5131f0  gcc/testsuite/c-c++-common/analyzer/pr98073.c
  b9380bb82c2c184f0d8eb4c299016e6a  gcc/testsuite/c-c++-common/analyzer/pr98564.c
*************** b9380bb82c2c184f0d8eb4c299016e6a  gcc/te
*** 11475,11494 ****
  bd0446dc7bfc92ba7fa31dec5245fdc8  gcc/testsuite/c-c++-common/analyzer/pr98580-a.c
  ec3f6b6ab51e286be338a54b446589e9  gcc/testsuite/c-c++-common/analyzer/pr98580-b.c
  b5432845f9f6b11cb824d6de156155cc  gcc/testsuite/c-c++-common/analyzer/pr98628.c
! 03f03f48d408a0bc51dbf2cabb676c1d  gcc/testsuite/c-c++-common/analyzer/pr98918.c
  ceae315c9c06f08d0db10fee78e40833  gcc/testsuite/c-c++-common/analyzer/pr98969.c
  be93403b174680d98cbf78aa01fc24ae  gcc/testsuite/c-c++-common/analyzer/pr99044-2.c
  437d6a0bc7376248d2acc37429376fba  gcc/testsuite/c-c++-common/analyzer/pr99193-1-noexcept.c
  221a6aae862f8b35deb53487a746967f  gcc/testsuite/c-c++-common/analyzer/pr99193-2.c
  410624763fe64534215b090f00fd59b7  gcc/testsuite/c-c++-common/analyzer/pr99193-3.c
  6f8aad1e0907588f705eda19503ee83d  gcc/testsuite/c-c++-common/analyzer/pr99716-1.c
! e0d8ca4cfb2ab1c4a42a62807ee64462  gcc/testsuite/c-c++-common/analyzer/pr99716-2.c
! 0c63418b3608af001507560347c90d57  gcc/testsuite/c-c++-common/analyzer/pr99716-3.c
  6352d57a6346bfd0b199ef72d99f8010  gcc/testsuite/c-c++-common/analyzer/pr99774-1.c
  e7ec58c8488f858c6b9c88105194899a  gcc/testsuite/c-c++-common/analyzer/pr99906.c
! 8c73c87efb75a0bef0c4a982a728d2a5  gcc/testsuite/c-c++-common/analyzer/pragma-1.c
! c302e44e12d48022ecebf9039af2c645  gcc/testsuite/c-c++-common/analyzer/pragma-2.c
! cd07e8e53b2209dcaf10df191dbbb20f  gcc/testsuite/c-c++-common/analyzer/realloc-1.c
  9934b5785f041976924e22e94abcc411  gcc/testsuite/c-c++-common/analyzer/realloc-2.c
  c3ed923d26f47c708b12b964c6261a71  gcc/testsuite/c-c++-common/analyzer/realloc-3.c
  d3fd9e6273dea53493741229b2b67559  gcc/testsuite/c-c++-common/analyzer/realloc-4.c
--- 11874,11897 ----
  bd0446dc7bfc92ba7fa31dec5245fdc8  gcc/testsuite/c-c++-common/analyzer/pr98580-a.c
  ec3f6b6ab51e286be338a54b446589e9  gcc/testsuite/c-c++-common/analyzer/pr98580-b.c
  b5432845f9f6b11cb824d6de156155cc  gcc/testsuite/c-c++-common/analyzer/pr98628.c
! 75e5f564d41546d507331abeb98dc58a  gcc/testsuite/c-c++-common/analyzer/pr98918.c
  ceae315c9c06f08d0db10fee78e40833  gcc/testsuite/c-c++-common/analyzer/pr98969.c
  be93403b174680d98cbf78aa01fc24ae  gcc/testsuite/c-c++-common/analyzer/pr99044-2.c
  437d6a0bc7376248d2acc37429376fba  gcc/testsuite/c-c++-common/analyzer/pr99193-1-noexcept.c
  221a6aae862f8b35deb53487a746967f  gcc/testsuite/c-c++-common/analyzer/pr99193-2.c
  410624763fe64534215b090f00fd59b7  gcc/testsuite/c-c++-common/analyzer/pr99193-3.c
  6f8aad1e0907588f705eda19503ee83d  gcc/testsuite/c-c++-common/analyzer/pr99716-1.c
! 824c9dc5bcdc196880de9f4b079c7589  gcc/testsuite/c-c++-common/analyzer/pr99716-2.c
! 035a5951808d817e741f04ddab72de77  gcc/testsuite/c-c++-common/analyzer/pr99716-3.c
  6352d57a6346bfd0b199ef72d99f8010  gcc/testsuite/c-c++-common/analyzer/pr99774-1.c
  e7ec58c8488f858c6b9c88105194899a  gcc/testsuite/c-c++-common/analyzer/pr99906.c
! 606573ca71b3befc49dfdedc5e6a6866  gcc/testsuite/c-c++-common/analyzer/pragma-1.c
! 67bbc9fd25f640862e813359e87cbb0a  gcc/testsuite/c-c++-common/analyzer/pragma-2.c
! 9430d0208459224bc903d37da0409ad1  gcc/testsuite/c-c++-common/analyzer/ptr-subtraction-1.c
! 02794dd36e015d38e92b34ce4f665725  gcc/testsuite/c-c++-common/analyzer/ptr-subtraction-CWE-469-example.c
! b9dec47fd31ee45dd878530b5a551978  gcc/testsuite/c-c++-common/analyzer/raw-data-cst-pr117262-1.c
! 86f639ec8d0b8277d748c42c89e3cd35  gcc/testsuite/c-c++-common/analyzer/raw-data-cst-pr117262-2.c
! 02fd51676a487d62e3de3243119377b0  gcc/testsuite/c-c++-common/analyzer/realloc-1.c
  9934b5785f041976924e22e94abcc411  gcc/testsuite/c-c++-common/analyzer/realloc-2.c
  c3ed923d26f47c708b12b964c6261a71  gcc/testsuite/c-c++-common/analyzer/realloc-3.c
  d3fd9e6273dea53493741229b2b67559  gcc/testsuite/c-c++-common/analyzer/realloc-4.c
*************** d3fd9e6273dea53493741229b2b67559  gcc/te
*** 11496,11511 ****
  a7c38aafc43d1698b07f6cdb050c22bb  gcc/testsuite/c-c++-common/analyzer/realloc-pr110014.c
  80fa663011e0905b551ff26c0f4ab6aa  gcc/testsuite/c-c++-common/analyzer/refcounting-1.c
  eb90114c90a666d2fc417737f203862d  gcc/testsuite/c-c++-common/analyzer/rhbz1878600.c
  997ad66cb0ac73fff59c8cacc2688689  gcc/testsuite/c-c++-common/analyzer/sarif-pr107366.c
! 4ac3df5f92314d53cb431018754f0682  gcc/testsuite/c-c++-common/analyzer/scope-1.c
! e7f9eca59ab316b75929ea55b5913d11  gcc/testsuite/c-c++-common/analyzer/setjmp-2.c
  b81cc10859189c28863d9b148a72c47a  gcc/testsuite/c-c++-common/analyzer/setjmp-5.c
  773f2c55a24aaf21a6b87ad77c8e3f21  gcc/testsuite/c-c++-common/analyzer/setjmp-9.c
  8588e0ec348d5eef2edf586ce087d26b  gcc/testsuite/c-c++-common/analyzer/setjmp-pr109094.c
- 902422abaea5f2e221ab12c68f90b3b9  gcc/testsuite/c-c++-common/analyzer/signal-4a.c
- 61f787e7800445665427afc95d6b8558  gcc/testsuite/c-c++-common/analyzer/signal-4b.c
  394f49939f98479bfd289eb4607c2d3d  gcc/testsuite/c-c++-common/analyzer/snprintf-concat.c
! 0300cdcdd315d2782b7612ba7d675db3  gcc/testsuite/c-c++-common/analyzer/sock-1.c
  d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/testsuite/c-c++-common/analyzer/sock-2.c
  fa7b1a5831a73be92ea8cf6c3d393f70  gcc/testsuite/c-c++-common/analyzer/sprintf-2.c
  309d9cc36ee0a4b44c86c901368cb298  gcc/testsuite/c-c++-common/analyzer/sprintf-concat.c
--- 11899,11914 ----
  a7c38aafc43d1698b07f6cdb050c22bb  gcc/testsuite/c-c++-common/analyzer/realloc-pr110014.c
  80fa663011e0905b551ff26c0f4ab6aa  gcc/testsuite/c-c++-common/analyzer/refcounting-1.c
  eb90114c90a666d2fc417737f203862d  gcc/testsuite/c-c++-common/analyzer/rhbz1878600.c
+ 1b6422ac347f2b63d7aa05f856a88bf4  gcc/testsuite/c-c++-common/analyzer/sarif-path-role.c
+ 57b7e4d5b029423c618b7a85d74a2f06  gcc/testsuite/c-c++-common/analyzer/sarif-path-role.h
  997ad66cb0ac73fff59c8cacc2688689  gcc/testsuite/c-c++-common/analyzer/sarif-pr107366.c
! 3141ca035110da9ba0c81b5c0026cf01  gcc/testsuite/c-c++-common/analyzer/scope-1.c
! b7e5b77668d1362507d1a42706013692  gcc/testsuite/c-c++-common/analyzer/setjmp-2.c
  b81cc10859189c28863d9b148a72c47a  gcc/testsuite/c-c++-common/analyzer/setjmp-5.c
  773f2c55a24aaf21a6b87ad77c8e3f21  gcc/testsuite/c-c++-common/analyzer/setjmp-9.c
  8588e0ec348d5eef2edf586ce087d26b  gcc/testsuite/c-c++-common/analyzer/setjmp-pr109094.c
  394f49939f98479bfd289eb4607c2d3d  gcc/testsuite/c-c++-common/analyzer/snprintf-concat.c
! 42b00a365def68f85163d4976d2816f8  gcc/testsuite/c-c++-common/analyzer/sock-1.c
  d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/testsuite/c-c++-common/analyzer/sock-2.c
  fa7b1a5831a73be92ea8cf6c3d393f70  gcc/testsuite/c-c++-common/analyzer/sprintf-2.c
  309d9cc36ee0a4b44c86c901368cb298  gcc/testsuite/c-c++-common/analyzer/sprintf-concat.c
*************** a20f56474f9327e4df5f75e759a08cfc  gcc/te
*** 11523,11531 ****
  8f913e3de654aeeed3a380e266f73c9d  gcc/testsuite/c-c++-common/analyzer/strlen-pr111361.c
  c02d2254f7ec2e1d0a71dadd15088d94  gcc/testsuite/c-c++-common/analyzer/strlen-pr112811.c
  3d94f951f5b6fbc3d0844975b793c18e  gcc/testsuite/c-c++-common/analyzer/strlen-pr113999.c
! 38b18abd5aaa2b1fbd6ef4d9391b62fc  gcc/testsuite/c-c++-common/analyzer/strncpy-1.c
  95822937a3320cebcdcd88c927eb703e  gcc/testsuite/c-c++-common/analyzer/strncpy-pr111361.c
! 88e35ed12d2eaf1335c5f8e930e51320  gcc/testsuite/c-c++-common/analyzer/strndup-1.c
  40f952624e2c69da69cf4f71c3709729  gcc/testsuite/c-c++-common/analyzer/strstr-1.c
  e42278d4075df8df53e7bdf029fb1b32  gcc/testsuite/c-c++-common/analyzer/strtok-1.c
  5692f39f9e1eb1d0bffdef5855475c4a  gcc/testsuite/c-c++-common/analyzer/strtok-2.c
--- 11926,11934 ----
  8f913e3de654aeeed3a380e266f73c9d  gcc/testsuite/c-c++-common/analyzer/strlen-pr111361.c
  c02d2254f7ec2e1d0a71dadd15088d94  gcc/testsuite/c-c++-common/analyzer/strlen-pr112811.c
  3d94f951f5b6fbc3d0844975b793c18e  gcc/testsuite/c-c++-common/analyzer/strlen-pr113999.c
! 094be02eb52b4c58b434801cf6dd0582  gcc/testsuite/c-c++-common/analyzer/strncpy-1.c
  95822937a3320cebcdcd88c927eb703e  gcc/testsuite/c-c++-common/analyzer/strncpy-pr111361.c
! ed3ea054e3f77d74f5a3e9a655a63daa  gcc/testsuite/c-c++-common/analyzer/strndup-1.c
  40f952624e2c69da69cf4f71c3709729  gcc/testsuite/c-c++-common/analyzer/strstr-1.c
  e42278d4075df8df53e7bdf029fb1b32  gcc/testsuite/c-c++-common/analyzer/strtok-1.c
  5692f39f9e1eb1d0bffdef5855475c4a  gcc/testsuite/c-c++-common/analyzer/strtok-2.c
*************** d36f5325a7e5fa9b8ac849be4b6b9226  gcc/te
*** 11544,11564 ****
  c65116045ddccfc3f491c0a185fa75ea  gcc/testsuite/c-c++-common/analyzer/symbolic-7.c
  32609711c2e8949725877cdd45605fff  gcc/testsuite/c-c++-common/analyzer/symbolic-8.c
  c2fcb94a2603dbbeaffe0f588f927e6d  gcc/testsuite/c-c++-common/analyzer/symbolic-gt-1.c
! 0a95e52b337b6451feedf049daf4391a  gcc/testsuite/c-c++-common/analyzer/taint-alloc-3.c
  6e87afc5673ae20262e220886767a356  gcc/testsuite/c-c++-common/analyzer/taint-assert-BUG_ON.c
  86e51674ba773c6ee4e40340b9426dfe  gcc/testsuite/c-c++-common/analyzer/taint-divisor-2.c
  3bb40712dc19e9f4a8252502089ea73f  gcc/testsuite/c-c++-common/analyzer/taint-divisor-pr113619.c
  cd3ec43b10b0bcd2be2665d2fc3b1570  gcc/testsuite/c-c++-common/analyzer/taint-index-pr106229.c
  d4da70df696cd060b923bf542a7ddb33  gcc/testsuite/c-c++-common/analyzer/taint-merger.c
  142b7ecd00d0db6c2fd59f9e04c62c92  gcc/testsuite/c-c++-common/analyzer/taint-modulus-1.c
! b62ddaf69bf220a37cab0873e709a1b8  gcc/testsuite/c-c++-common/analyzer/taint-realloc.c
  99429c9d75d55782747b0a4bfd4a43ed  gcc/testsuite/c-c++-common/analyzer/uninit-1.c
  f3b04cae0253d04943b8e3a80f6609c3  gcc/testsuite/c-c++-common/analyzer/uninit-2.c
  5230c72c5072304c5579bb33f03c01e8  gcc/testsuite/c-c++-common/analyzer/uninit-3.c
  12770fc4b4e596f10d34f77417d0a681  gcc/testsuite/c-c++-common/analyzer/uninit-6.c
  dc18b7f43ca34ba2bdcf1f2293ef3567  gcc/testsuite/c-c++-common/analyzer/uninit-6b.c
  60b6279b02ede62acce22b59a1ab91f6  gcc/testsuite/c-c++-common/analyzer/uninit-8.c
! c55c9a8f27f81713b765bc677ecade4b  gcc/testsuite/c-c++-common/analyzer/uninit-alloca.c
  76c4fa43fef5c9ac975c951c831adb52  gcc/testsuite/c-c++-common/analyzer/uninit-pr104576.c
  29ba9a3ce1e65ae0d19ec63085e2d2ef  gcc/testsuite/c-c++-common/analyzer/uninit-pr106204.c
  c98f8534d7e8d5036a05a97de1ee6199  gcc/testsuite/c-c++-common/analyzer/uninit-pr108704.c
--- 11947,11967 ----
  c65116045ddccfc3f491c0a185fa75ea  gcc/testsuite/c-c++-common/analyzer/symbolic-7.c
  32609711c2e8949725877cdd45605fff  gcc/testsuite/c-c++-common/analyzer/symbolic-8.c
  c2fcb94a2603dbbeaffe0f588f927e6d  gcc/testsuite/c-c++-common/analyzer/symbolic-gt-1.c
! b29c456f5de573bca10efffa5f55755e  gcc/testsuite/c-c++-common/analyzer/taint-alloc-3.c
  6e87afc5673ae20262e220886767a356  gcc/testsuite/c-c++-common/analyzer/taint-assert-BUG_ON.c
  86e51674ba773c6ee4e40340b9426dfe  gcc/testsuite/c-c++-common/analyzer/taint-divisor-2.c
  3bb40712dc19e9f4a8252502089ea73f  gcc/testsuite/c-c++-common/analyzer/taint-divisor-pr113619.c
  cd3ec43b10b0bcd2be2665d2fc3b1570  gcc/testsuite/c-c++-common/analyzer/taint-index-pr106229.c
  d4da70df696cd060b923bf542a7ddb33  gcc/testsuite/c-c++-common/analyzer/taint-merger.c
  142b7ecd00d0db6c2fd59f9e04c62c92  gcc/testsuite/c-c++-common/analyzer/taint-modulus-1.c
! d2d14a551b67f871c55a03892dc0bac5  gcc/testsuite/c-c++-common/analyzer/taint-realloc.c
  99429c9d75d55782747b0a4bfd4a43ed  gcc/testsuite/c-c++-common/analyzer/uninit-1.c
  f3b04cae0253d04943b8e3a80f6609c3  gcc/testsuite/c-c++-common/analyzer/uninit-2.c
  5230c72c5072304c5579bb33f03c01e8  gcc/testsuite/c-c++-common/analyzer/uninit-3.c
  12770fc4b4e596f10d34f77417d0a681  gcc/testsuite/c-c++-common/analyzer/uninit-6.c
  dc18b7f43ca34ba2bdcf1f2293ef3567  gcc/testsuite/c-c++-common/analyzer/uninit-6b.c
  60b6279b02ede62acce22b59a1ab91f6  gcc/testsuite/c-c++-common/analyzer/uninit-8.c
! 638b5163056df5101a7ad536d7314f7a  gcc/testsuite/c-c++-common/analyzer/uninit-alloca.c
  76c4fa43fef5c9ac975c951c831adb52  gcc/testsuite/c-c++-common/analyzer/uninit-pr104576.c
  29ba9a3ce1e65ae0d19ec63085e2d2ef  gcc/testsuite/c-c++-common/analyzer/uninit-pr106204.c
  c98f8534d7e8d5036a05a97de1ee6199  gcc/testsuite/c-c++-common/analyzer/uninit-pr108704.c
*************** c1e2ec7b982a6c1d3f3d88277f0a5412  gcc/te
*** 11572,11578 ****
  e660fefe331990592f06c3b2ba0dd30c  gcc/testsuite/c-c++-common/analyzer/untracked-2.c
  33bcbf1ef7e77468ac1cb0eceb5bb7b9  gcc/testsuite/c-c++-common/analyzer/unused-local-1.c
  376fb4403916477fbc28accfb5d269f1  gcc/testsuite/c-c++-common/analyzer/use-after-free-2.c
! f11e97b1fc5ab33807c3c2d2087970e8  gcc/testsuite/c-c++-common/analyzer/use-after-free-3.c
  268d34948669b97e22887b0f3bf297eb  gcc/testsuite/c-c++-common/analyzer/vasprintf-1.c
  f35be136a336489f3bbba4138c71f464  gcc/testsuite/c-c++-common/analyzer/volatile-1.c
  a833a6ad5ab9dc4df4c5628344367514  gcc/testsuite/c-c++-common/analyzer/vsnprintf-1.c
--- 11975,11981 ----
  e660fefe331990592f06c3b2ba0dd30c  gcc/testsuite/c-c++-common/analyzer/untracked-2.c
  33bcbf1ef7e77468ac1cb0eceb5bb7b9  gcc/testsuite/c-c++-common/analyzer/unused-local-1.c
  376fb4403916477fbc28accfb5d269f1  gcc/testsuite/c-c++-common/analyzer/use-after-free-2.c
! 3a7124e6d5e50995938faaebaf9de5c5  gcc/testsuite/c-c++-common/analyzer/use-after-free-3.c
  268d34948669b97e22887b0f3bf297eb  gcc/testsuite/c-c++-common/analyzer/vasprintf-1.c
  f35be136a336489f3bbba4138c71f464  gcc/testsuite/c-c++-common/analyzer/volatile-1.c
  a833a6ad5ab9dc4df4c5628344367514  gcc/testsuite/c-c++-common/analyzer/vsnprintf-1.c
*************** a833a6ad5ab9dc4df4c5628344367514  gcc/te
*** 11580,11589 ****
  259cbbbefa0a9046ba4bd63ad3d99430  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-1.c
  a5e594e65dc9287b46c43c7628de6830  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4-disabled.c
  6661b81049a9d213e962195ff4c8d0ec  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4.c
! 392782a1d8d7111a088f25c5416fe814  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-5.c
  838b90b78b8ec4ed64b4613806941236  gcc/testsuite/c-c++-common/analyzer/zlib-1.c
  57902d5ce798d9c34760d0ab62f511a0  gcc/testsuite/c-c++-common/analyzer/zlib-2.c
! df72c008ff04db0cf35cc53f456d09e9  gcc/testsuite/c-c++-common/analyzer/zlib-4.c
  8c05b90cc0edbdbdb87d92a6ed796f4c  gcc/testsuite/c-c++-common/analyzer/zlib-5.c
  f39ce0b617da5fc9aba69733615ee0de  gcc/testsuite/c-c++-common/array-1.c
  15b241020a9a5497396b58539b2405ba  gcc/testsuite/c-c++-common/array-5.c
--- 11983,11992 ----
  259cbbbefa0a9046ba4bd63ad3d99430  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-1.c
  a5e594e65dc9287b46c43c7628de6830  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4-disabled.c
  6661b81049a9d213e962195ff4c8d0ec  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4.c
! 7ce7e03232df6ca2156fafdded04bfc2  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-5.c
  838b90b78b8ec4ed64b4613806941236  gcc/testsuite/c-c++-common/analyzer/zlib-1.c
  57902d5ce798d9c34760d0ab62f511a0  gcc/testsuite/c-c++-common/analyzer/zlib-2.c
! c02e715268555b4edddf89b50479f954  gcc/testsuite/c-c++-common/analyzer/zlib-4.c
  8c05b90cc0edbdbdb87d92a6ed796f4c  gcc/testsuite/c-c++-common/analyzer/zlib-5.c
  f39ce0b617da5fc9aba69733615ee0de  gcc/testsuite/c-c++-common/array-1.c
  15b241020a9a5497396b58539b2405ba  gcc/testsuite/c-c++-common/array-5.c
*************** cc33621f0af40932dc13ca0bff4d3557  gcc/te
*** 11594,11600 ****
  72de90fafd160e4a777ef19bc09ff0d7  gcc/testsuite/c-c++-common/asan/alloca_big_alignment.c
  2bb6049bc37ecb2ca6971011cbefcc2a  gcc/testsuite/c-c++-common/asan/alloca_detect_custom_size.c
  adeb73c262eb712e84e2823a98c1199c  gcc/testsuite/c-c++-common/asan/alloca_instruments_all_paddings.c
! c85999d97729c4ac43cdb8e1861fcc3b  gcc/testsuite/c-c++-common/asan/alloca_loop_unpoisoning.c
  648add575c0dbd9df398dc0058875eb1  gcc/testsuite/c-c++-common/asan/alloca_overflow_partial.c
  483882054d8d099b9769ca966f926bf0  gcc/testsuite/c-c++-common/asan/alloca_overflow_right.c
  f521c0adacbecee9cbfcbdd089681c95  gcc/testsuite/c-c++-common/asan/alloca_safe_access.c
--- 11997,12003 ----
  72de90fafd160e4a777ef19bc09ff0d7  gcc/testsuite/c-c++-common/asan/alloca_big_alignment.c
  2bb6049bc37ecb2ca6971011cbefcc2a  gcc/testsuite/c-c++-common/asan/alloca_detect_custom_size.c
  adeb73c262eb712e84e2823a98c1199c  gcc/testsuite/c-c++-common/asan/alloca_instruments_all_paddings.c
! a2399a83d9e86c82a597d1510eb9eb8b  gcc/testsuite/c-c++-common/asan/alloca_loop_unpoisoning.c
  648add575c0dbd9df398dc0058875eb1  gcc/testsuite/c-c++-common/asan/alloca_overflow_partial.c
  483882054d8d099b9769ca966f926bf0  gcc/testsuite/c-c++-common/asan/alloca_overflow_right.c
  f521c0adacbecee9cbfcbdd089681c95  gcc/testsuite/c-c++-common/asan/alloca_safe_access.c
*************** b52858b1b0e17f71a6cbfe1dbc98f153  gcc/te
*** 11707,11717 ****
  23fd6d68a2d88cbcf8cd954faf8fb296  gcc/testsuite/c-c++-common/asmgoto-3.c
  dcd81f0d6cf4d767d2d3f42f805b143b  gcc/testsuite/c-c++-common/asmgoto-4.c
  3965a9ab5dc92c92b09bb770bf0f0749  gcc/testsuite/c-c++-common/attr-aligned-1.c
  c8b48ce2fac15a2f605bcd1785482931  gcc/testsuite/c-c++-common/attr-cdtor-1.c
  e923f51b7486cc54ba78d31bc374766a  gcc/testsuite/c-c++-common/attr-copy.c
  7013572d9ddd96911ba5c9684a120afa  gcc/testsuite/c-c++-common/attr-fallthrough-1.c
! 1fd32b4c2291451fdfca75ea5c3368e7  gcc/testsuite/c-c++-common/attr-fallthrough-2.c
  fd41a6e627dfcd947dbd8dd26a44062b  gcc/testsuite/c-c++-common/attr-fd.c
  ecc5351c14d6a9924c9ba3fe13409d1d  gcc/testsuite/c-c++-common/attr-may-alias-1.c
  38e52e11c86808356af8a92c21eed6fb  gcc/testsuite/c-c++-common/attr-may-alias-2.c
  364272519b6085a158e6322027e6e8bc  gcc/testsuite/c-c++-common/attr-mode-1.c
--- 12110,12122 ----
  23fd6d68a2d88cbcf8cd954faf8fb296  gcc/testsuite/c-c++-common/asmgoto-3.c
  dcd81f0d6cf4d767d2d3f42f805b143b  gcc/testsuite/c-c++-common/asmgoto-4.c
  3965a9ab5dc92c92b09bb770bf0f0749  gcc/testsuite/c-c++-common/attr-aligned-1.c
+ 655fbe3931a44b39f1e3b526f7aaee34  gcc/testsuite/c-c++-common/attr-aligned-2.c
  c8b48ce2fac15a2f605bcd1785482931  gcc/testsuite/c-c++-common/attr-cdtor-1.c
  e923f51b7486cc54ba78d31bc374766a  gcc/testsuite/c-c++-common/attr-copy.c
  7013572d9ddd96911ba5c9684a120afa  gcc/testsuite/c-c++-common/attr-fallthrough-1.c
! 4a8d04522c069c4fcf4af8aae8befff3  gcc/testsuite/c-c++-common/attr-fallthrough-2.c
  fd41a6e627dfcd947dbd8dd26a44062b  gcc/testsuite/c-c++-common/attr-fd.c
+ dffe5de68b086f353b509317058ef63a  gcc/testsuite/c-c++-common/attr-flag-enum-1.c
  ecc5351c14d6a9924c9ba3fe13409d1d  gcc/testsuite/c-c++-common/attr-may-alias-1.c
  38e52e11c86808356af8a92c21eed6fb  gcc/testsuite/c-c++-common/attr-may-alias-2.c
  364272519b6085a158e6322027e6e8bc  gcc/testsuite/c-c++-common/attr-mode-1.c
*************** c8b98a656dafef917e51ff4b5433e980  gcc/te
*** 11720,11734 ****
  712e05b8d9078f47150e78b6b8a482d5  gcc/testsuite/c-c++-common/attr-nocf-check-2.c
  c646b644758e950a4110aea0b34c55f2  gcc/testsuite/c-c++-common/attr-nocf-check-3.c
  6e74d4217acfc4ff85814de60a3f7e75  gcc/testsuite/c-c++-common/attr-nonstring-1.c
  8121851e9adc24f2cb9196e1c2dab2ab  gcc/testsuite/c-c++-common/attr-nonstring-2.c
  8934c5fb47a81f2174d60102a8884b02  gcc/testsuite/c-c++-common/attr-nonstring-3.c
  40d520a76461aa407b60693028189473  gcc/testsuite/c-c++-common/attr-nonstring-4.c
  aecf8808dcce2f2171e6ff35d91b4e01  gcc/testsuite/c-c++-common/attr-nonstring-5.c
  1fe056301e1358a5a84901dc70b18ff6  gcc/testsuite/c-c++-common/attr-nonstring-6.c
! 86ea749bcbbf7e6b48a29eb97f3481f0  gcc/testsuite/c-c++-common/attr-nonstring-7.c
  a64bfafada3fcdd3081bfa50b0677966  gcc/testsuite/c-c++-common/attr-nonstring-8.c
  c06eb88500df288f11f2993300d78bfe  gcc/testsuite/c-c++-common/attr-null_terminated_string_arg.c
  98687838cf46c8c28ee0ab7af818dc38  gcc/testsuite/c-c++-common/attr-opt-1.c
  8d1dd31ffd75e182c35879b275b838f6  gcc/testsuite/c-c++-common/attr-retain-1.c
  dbadc777f6538f0c9769931967284aa7  gcc/testsuite/c-c++-common/attr-retain-10.c
  d1109f449ee7186e9a9c70d3dbb8dbd7  gcc/testsuite/c-c++-common/attr-retain-11.c
--- 12125,12149 ----
  712e05b8d9078f47150e78b6b8a482d5  gcc/testsuite/c-c++-common/attr-nocf-check-2.c
  c646b644758e950a4110aea0b34c55f2  gcc/testsuite/c-c++-common/attr-nocf-check-3.c
  6e74d4217acfc4ff85814de60a3f7e75  gcc/testsuite/c-c++-common/attr-nonstring-1.c
+ 3eb3e6cb92b3f9e65766ada7616bf830  gcc/testsuite/c-c++-common/attr-nonstring-10.c
+ 2aba1339c5ab667a885945c3d9faee56  gcc/testsuite/c-c++-common/attr-nonstring-11.c
+ e2cbe9f4457609ca82d5b55e1b950c60  gcc/testsuite/c-c++-common/attr-nonstring-12.c
+ 40db791582810601913356513f3a921d  gcc/testsuite/c-c++-common/attr-nonstring-13.c
+ d8ab3cba4228f57542a5aa5dab241bac  gcc/testsuite/c-c++-common/attr-nonstring-14.c
+ 6fdf0b84e2e12cbc23017a11068cc701  gcc/testsuite/c-c++-common/attr-nonstring-15.c
+ 1aa97ec4d52ed8080cbf3a6ff14d36b1  gcc/testsuite/c-c++-common/attr-nonstring-16.c
  8121851e9adc24f2cb9196e1c2dab2ab  gcc/testsuite/c-c++-common/attr-nonstring-2.c
  8934c5fb47a81f2174d60102a8884b02  gcc/testsuite/c-c++-common/attr-nonstring-3.c
  40d520a76461aa407b60693028189473  gcc/testsuite/c-c++-common/attr-nonstring-4.c
  aecf8808dcce2f2171e6ff35d91b4e01  gcc/testsuite/c-c++-common/attr-nonstring-5.c
  1fe056301e1358a5a84901dc70b18ff6  gcc/testsuite/c-c++-common/attr-nonstring-6.c
! 03648cc44ca85b860aacda5a1ec98e13  gcc/testsuite/c-c++-common/attr-nonstring-7.c
  a64bfafada3fcdd3081bfa50b0677966  gcc/testsuite/c-c++-common/attr-nonstring-8.c
+ cab08165419f3e20f57a5a882b43f172  gcc/testsuite/c-c++-common/attr-nonstring-9.c
  c06eb88500df288f11f2993300d78bfe  gcc/testsuite/c-c++-common/attr-null_terminated_string_arg.c
  98687838cf46c8c28ee0ab7af818dc38  gcc/testsuite/c-c++-common/attr-opt-1.c
+ ba82fa9c5e7219b39c3fc58a5fc3570c  gcc/testsuite/c-c++-common/attr-reproducible-1.c
+ 31dc18dbe2407d805f7386b51c05ee50  gcc/testsuite/c-c++-common/attr-reproducible-2.c
  8d1dd31ffd75e182c35879b275b838f6  gcc/testsuite/c-c++-common/attr-retain-1.c
  dbadc777f6538f0c9769931967284aa7  gcc/testsuite/c-c++-common/attr-retain-10.c
  d1109f449ee7186e9a9c70d3dbb8dbd7  gcc/testsuite/c-c++-common/attr-retain-11.c
*************** a9a489c34a0d2601c46b7482ebd71e9d  gcc/te
*** 11744,11749 ****
--- 12159,12166 ----
  ba228dab53d862be27c7036d86f735eb  gcc/testsuite/c-c++-common/attr-simd-4.c
  8a1a222d75843dbe3f9d7834834cefa3  gcc/testsuite/c-c++-common/attr-simd-5.c
  1cafca2ba73fd84aa440894e83542ca4  gcc/testsuite/c-c++-common/attr-simd.c
+ 5882b557a17aeb83f60f75cd507f162a  gcc/testsuite/c-c++-common/attr-unsequenced-1.c
+ 2bf1164bb8d0dd6315bc90ba79eae004  gcc/testsuite/c-c++-common/attr-unsequenced-2.c
  4a8c900352b41f7f81b5e982203aa47f  gcc/testsuite/c-c++-common/attr-used-2.c
  64568f542038e5966961f07cc96eda3d  gcc/testsuite/c-c++-common/attr-used-3.c
  e627e94303559061b566ee6a67d2e153  gcc/testsuite/c-c++-common/attr-used-4.c
*************** c16cfe2fc05f8ec7fa89428b9e32fef6  gcc/te
*** 11757,11773 ****
  0757d414096e0b54b72399cfd533c8fc  gcc/testsuite/c-c++-common/attributes-1.c
  6d7e356a55667553550e9cd33323e1f5  gcc/testsuite/c-c++-common/attributes-2.c
  7737d14ff3ce9417fd73b9e37262ef58  gcc/testsuite/c-c++-common/attributes-3.c
! 5113c71e64eb505940e6121dbd1b0816  gcc/testsuite/c-c++-common/attributes-4.c
  debeca168f3a9a432da9b7fe19f105d0  gcc/testsuite/c-c++-common/attributes-enum-1.c
  05e6e3f334bd062d9e932f51ca25a73d  gcc/testsuite/c-c++-common/attributes-enum-2.c
  873b9a82d43814c610652065cb27bcd8  gcc/testsuite/c-c++-common/auto-init-1.c
  4b56486d7ec65e9df698bb07a1e1d8d9  gcc/testsuite/c-c++-common/auto-init-10.c
! acc04566cca5062120daa675392bd4ac  gcc/testsuite/c-c++-common/auto-init-11.c
! 1da3b70f4ede84f3f11e966fe4a7fef2  gcc/testsuite/c-c++-common/auto-init-12.c
  8eacc25e3fed8962ea2f13aa9bc87315  gcc/testsuite/c-c++-common/auto-init-13.c
  4449dd9ead5e5cf924df3e11121b5fb4  gcc/testsuite/c-c++-common/auto-init-14.c
! e3b67fbebf6391441124743b1bfc679b  gcc/testsuite/c-c++-common/auto-init-15.c
! 47596b12b605b20b22bcab204cb4ba44  gcc/testsuite/c-c++-common/auto-init-16.c
  6a7c8ad49b94484648c698b40233d42b  gcc/testsuite/c-c++-common/auto-init-2.c
  2e1d05f9bea092be65011bccbd213475  gcc/testsuite/c-c++-common/auto-init-3.c
  db8f56bdf0e9c7f911a1a3a2233a697d  gcc/testsuite/c-c++-common/auto-init-4.c
--- 12174,12190 ----
  0757d414096e0b54b72399cfd533c8fc  gcc/testsuite/c-c++-common/attributes-1.c
  6d7e356a55667553550e9cd33323e1f5  gcc/testsuite/c-c++-common/attributes-2.c
  7737d14ff3ce9417fd73b9e37262ef58  gcc/testsuite/c-c++-common/attributes-3.c
! 66314c395756c6db1528054612afef93  gcc/testsuite/c-c++-common/attributes-4.c
  debeca168f3a9a432da9b7fe19f105d0  gcc/testsuite/c-c++-common/attributes-enum-1.c
  05e6e3f334bd062d9e932f51ca25a73d  gcc/testsuite/c-c++-common/attributes-enum-2.c
  873b9a82d43814c610652065cb27bcd8  gcc/testsuite/c-c++-common/auto-init-1.c
  4b56486d7ec65e9df698bb07a1e1d8d9  gcc/testsuite/c-c++-common/auto-init-10.c
! 9bd51cff4762f60072683939f72e39de  gcc/testsuite/c-c++-common/auto-init-11.c
! b9bbdde51c9bdad699f7aa2f3de84d3d  gcc/testsuite/c-c++-common/auto-init-12.c
  8eacc25e3fed8962ea2f13aa9bc87315  gcc/testsuite/c-c++-common/auto-init-13.c
  4449dd9ead5e5cf924df3e11121b5fb4  gcc/testsuite/c-c++-common/auto-init-14.c
! 1cf3e0d90862a663afbf29f4919ec718  gcc/testsuite/c-c++-common/auto-init-15.c
! e856a6a4188f7a8f1cc4d50a8468d968  gcc/testsuite/c-c++-common/auto-init-16.c
  6a7c8ad49b94484648c698b40233d42b  gcc/testsuite/c-c++-common/auto-init-2.c
  2e1d05f9bea092be65011bccbd213475  gcc/testsuite/c-c++-common/auto-init-3.c
  db8f56bdf0e9c7f911a1a3a2233a697d  gcc/testsuite/c-c++-common/auto-init-4.c
*************** edbcc39f20e5248e2b957a28e01fee51  gcc/te
*** 11787,11793 ****
  05fb6d875f8327310c94ca0a89b53886  gcc/testsuite/c-c++-common/builtin-classify-type-1.c
  16488560f51c9fbb0acea48f3f246dd7  gcc/testsuite/c-c++-common/builtin-clear-padding-1.c
  05a22e0270d8d2693bab4092ee6a1edc  gcc/testsuite/c-c++-common/builtin-clear-padding-2.c
! 0ba3f576ed243d50b6d6f59a8e9daa19  gcc/testsuite/c-c++-common/builtin-clear-padding-3.c
  9db04682d9ed26e120c150f32a81c167  gcc/testsuite/c-c++-common/builtin-convertvector-1.c
  86e09291e64c6f0da9f5f640b3c8b994  gcc/testsuite/c-c++-common/builtin-convertvector-2.c
  4f93f0d47fecc8e0bc7299754ffe6180  gcc/testsuite/c-c++-common/builtin-convertvector-3.c
--- 12204,12210 ----
  05fb6d875f8327310c94ca0a89b53886  gcc/testsuite/c-c++-common/builtin-classify-type-1.c
  16488560f51c9fbb0acea48f3f246dd7  gcc/testsuite/c-c++-common/builtin-clear-padding-1.c
  05a22e0270d8d2693bab4092ee6a1edc  gcc/testsuite/c-c++-common/builtin-clear-padding-2.c
! a3034b7187e6dd82972c541f522ece32  gcc/testsuite/c-c++-common/builtin-clear-padding-3.c
  9db04682d9ed26e120c150f32a81c167  gcc/testsuite/c-c++-common/builtin-convertvector-1.c
  86e09291e64c6f0da9f5f640b3c8b994  gcc/testsuite/c-c++-common/builtin-convertvector-2.c
  4f93f0d47fecc8e0bc7299754ffe6180  gcc/testsuite/c-c++-common/builtin-convertvector-3.c
*************** edbcc39f20e5248e2b957a28e01fee51  gcc/te
*** 11803,11809 ****
  ef95b2391ac4310fde10257ba4f7463b  gcc/testsuite/c-c++-common/builtin-shuffle-1.c
  e05263912b24ac871d65efa4a51d10ea  gcc/testsuite/c-c++-common/builtin-shufflevector-2.c
  3a349fcc5db93dcaf44a93c32735f04a  gcc/testsuite/c-c++-common/builtin_location.c
! 205dae0d408daf2fa5ebf5fa2b945722  gcc/testsuite/c-c++-common/builtins.c
  a15893a996b14e9ab79c08a9d37157ee  gcc/testsuite/c-c++-common/cold-1.c
  856043e4093da5eee730f0219ccb9f99  gcc/testsuite/c-c++-common/cold-2.c
  fc20dcb635dd1e825303cc47593a9155  gcc/testsuite/c-c++-common/conflict-markers-1.c
--- 12220,12226 ----
  ef95b2391ac4310fde10257ba4f7463b  gcc/testsuite/c-c++-common/builtin-shuffle-1.c
  e05263912b24ac871d65efa4a51d10ea  gcc/testsuite/c-c++-common/builtin-shufflevector-2.c
  3a349fcc5db93dcaf44a93c32735f04a  gcc/testsuite/c-c++-common/builtin_location.c
! 828d40699f038c2768f05cfe9201b73d  gcc/testsuite/c-c++-common/builtins.c
  a15893a996b14e9ab79c08a9d37157ee  gcc/testsuite/c-c++-common/cold-1.c
  856043e4093da5eee730f0219ccb9f99  gcc/testsuite/c-c++-common/cold-2.c
  fc20dcb635dd1e825303cc47593a9155  gcc/testsuite/c-c++-common/conflict-markers-1.c
*************** dfcddf8e03e527e614cad79d5530f49e  gcc/te
*** 11818,11839 ****
  fe9ba880903f66a472e33ffd221fe3ee  gcc/testsuite/c-c++-common/conflict-markers-8.c
  60862ce07b266f605ac33d7ec3a6ab37  gcc/testsuite/c-c++-common/conflict-markers-9.c
  2a61ee01bf6046a5b3ebef68f4abffe8  gcc/testsuite/c-c++-common/convert-vec-1.c
! ffe803dd1d6571e5297ec04cfc1c4adf  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c
! a1e90535bc74b54612f33869fbdd1191  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c
! 92866c1a20bedc78e756dd2271f9d11d  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c
  687c1e4592b3188bd13763778302028a  gcc/testsuite/c-c++-common/cpp/Wunknown-pragmas-1.c
! 62a7104f94454920e2aea21e5d85503a  gcc/testsuite/c-c++-common/cpp/counter-2.c
  8685d36e43046dc3ae7ce373aa03821c  gcc/testsuite/c-c++-common/cpp/counter-3.c
  c1ad8045fa5ff78965e7e9224f86ee93  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-1.c
  b090341af8b5d9e1054e1c181b49de0d  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-2.c
! 6def3229fcef1166c92df3bb39e54b95  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c
  9dad1d5a2b5c29da641dddae14ee683a  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-4.c
  1c5e5ab47e2b82328c70acb424564ff8  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-5.c
  8c19a56e6dc4885880619af30aa033b8  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-6.c
  22531253762d0e337d9e77f7f7207100  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-7.c
  192545911c42ddd12e0c3f1f6b9e027d  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-8.c
  b194b95a7c8a94e9f21bdd4c1f564906  gcc/testsuite/c-c++-common/cpp/diagnostic-poison.c
! 7df2c1d437a437ae20fe8cd33d071a1a  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-1.c
  da5e564f6cffb4d2f63384ba5d7351b1  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-2.c
  8135260e5e210166919ed6d24752ad37  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-3.c
  7e07a117bfa1cbd4313441da514b62a7  gcc/testsuite/c-c++-common/cpp/dir-only-1.c
--- 12235,12287 ----
  fe9ba880903f66a472e33ffd221fe3ee  gcc/testsuite/c-c++-common/conflict-markers-8.c
  60862ce07b266f605ac33d7ec3a6ab37  gcc/testsuite/c-c++-common/conflict-markers-9.c
  2a61ee01bf6046a5b3ebef68f4abffe8  gcc/testsuite/c-c++-common/convert-vec-1.c
! a7d1f77fb24fbf1751e168ee56493eb8  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-1.h
! 5e9026ea87bff95510d220a8c0a6d2da  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-10.h
! 32319956993ad8976763ebaf14d4cce3  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-11.h
! 57d78adff33171dc13e72ab67e8eb91e  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-12.h
! bed9afd6e4e164d0abb6609124465fb9  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-2.h
! d693b29d1853fcd9883df973594f8e7b  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-3.h
! d1ecc1fa69e7e7569d2334e298977236  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-4.h
! 71950a4d2c3cae10afa15c519effecb6  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-5.h
! 34e4431a0d9b003cd54fcc28113dc701  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-6.h
! cdfec41e412decbfe9d750d58f0bae12  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-7.h
! 221d299a258f8d66d9c71603990f1518  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-8.h
! 2c5dcd90853edb883a8d18edbed79da0  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1-9.h
! b68db3b410deb6c113d9d1c0f7628750  gcc/testsuite/c-c++-common/cpp/Wheader-guard-1.c
! f368fff089ebcf35f4e0860058a22adf  gcc/testsuite/c-c++-common/cpp/Wheader-guard-2.c
! 6982f3b106b801442c77df5eb74a5103  gcc/testsuite/c-c++-common/cpp/Wheader-guard-2.h
! d12bd562c1d8b50df4d9d158a5bbcfb9  gcc/testsuite/c-c++-common/cpp/Wheader-guard-3.c
! f79323145a4777bf52b78d406a3aa409  gcc/testsuite/c-c++-common/cpp/Wheader-guard-3.h
! f64c6afb1713fa45e5a9db94979508b1  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c
! fb4871b8adfcfaedc5d35fc8d46c5b45  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c
! 8028d7f3650a96f76aa2acf3e3b87211  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c
! 141f004b26889e9041f488b4e71aa18e  gcc/testsuite/c-c++-common/cpp/Wleading-whitespace-1.c
! 8c08c925daf3e5236ff680927af91f39  gcc/testsuite/c-c++-common/cpp/Wleading-whitespace-2.c
! 593a70b253f94aefa28a0118a2225356  gcc/testsuite/c-c++-common/cpp/Wleading-whitespace-3.c
! 52ab5079ac943b7b1fa923863bc52ac3  gcc/testsuite/c-c++-common/cpp/Wleading-whitespace-4.c
! dff503c4ef77d65d857931aa2f6c96eb  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-1.c
! 6446ece62a2b32f91fbc15cd0e336e35  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-10.c
! 54a2fd314f46d844399e8906f954a022  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-2.c
! 14e52672e7ecc28a2c8fd42173b7e132  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-3.c
! a11dc88ba88a53c88ad4b2426007d0b8  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-4.c
! edfa796f706745f2b02a0240d7b0dbd6  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-5.c
! d186e1c5df94ffda50bde50dc37fb0a6  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-6.c
! bcc545fe674e92adb4edf8ad7ebde228  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-7.c
! da9cfacd3cd947bf06e294ae11bb194d  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-8.c
! 8347983d23503f18cfe1e5bbcbc2c205  gcc/testsuite/c-c++-common/cpp/Wtrailing-whitespace-9.c
  687c1e4592b3188bd13763778302028a  gcc/testsuite/c-c++-common/cpp/Wunknown-pragmas-1.c
! 61603a4b8db7dc3eda2fff1611da19b9  gcc/testsuite/c-c++-common/cpp/counter-2.c
  8685d36e43046dc3ae7ce373aa03821c  gcc/testsuite/c-c++-common/cpp/counter-3.c
  c1ad8045fa5ff78965e7e9224f86ee93  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-1.c
  b090341af8b5d9e1054e1c181b49de0d  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-2.c
! ae17141d7c69c66e47a3e93623877680  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c
  9dad1d5a2b5c29da641dddae14ee683a  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-4.c
  1c5e5ab47e2b82328c70acb424564ff8  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-5.c
  8c19a56e6dc4885880619af30aa033b8  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-6.c
  22531253762d0e337d9e77f7f7207100  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-7.c
  192545911c42ddd12e0c3f1f6b9e027d  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-8.c
  b194b95a7c8a94e9f21bdd4c1f564906  gcc/testsuite/c-c++-common/cpp/diagnostic-poison.c
! 88e3153d52fa4dbf46a164ada022d2f6  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-1.c
  da5e564f6cffb4d2f63384ba5d7351b1  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-2.c
  8135260e5e210166919ed6d24752ad37  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-3.c
  7e07a117bfa1cbd4313441da514b62a7  gcc/testsuite/c-c++-common/cpp/dir-only-1.c
*************** f92a7893a9a99e42109477db09c830bd  gcc/te
*** 11848,11868 ****
  e9e3763df2499b30da22eca4c488b15f  gcc/testsuite/c-c++-common/cpp/dir-only-7.c
  2f39366e508484177a054b88deafea45  gcc/testsuite/c-c++-common/cpp/dir-only-8.c
  06653ab873bcbc27520685b703402fc6  gcc/testsuite/c-c++-common/cpp/dir-only-9.c
  24433a4e764e479df8f2b0fafe6a0130  gcc/testsuite/c-c++-common/cpp/endif.c
  65db27307aa0cdf0b3c0323431e08a15  gcc/testsuite/c-c++-common/cpp/endif.h
  d320f7159ec0c49c01579cadb6132ae4  gcc/testsuite/c-c++-common/cpp/eof-1.c
! 6f2f302c190f3a83dc6888390ee3b28c  gcc/testsuite/c-c++-common/cpp/eof-2.c
  6d793027f92f3668bc379d25936d8781  gcc/testsuite/c-c++-common/cpp/eof-2.h
! 5d15dc76c8bd6eb00137bc1aef3eeaa1  gcc/testsuite/c-c++-common/cpp/eof-3.c
  80917e73eda1f9f63bafbcc4d94a0927  gcc/testsuite/c-c++-common/cpp/ffile-prefix-map.c
  e5ed57bfbd2502d615ef60835f1f0352  gcc/testsuite/c-c++-common/cpp/file-name-1.c
  040be3c971d2d342750c402c54b9b869  gcc/testsuite/c-c++-common/cpp/fmacro-prefix-map.c
  1ccb9ebc08e51c65b99fa5f74657100a  gcc/testsuite/c-c++-common/cpp/fmax-include-depth-1a.h
  f7fc996e6cb72eb21ae19ef5b5a25faa  gcc/testsuite/c-c++-common/cpp/fmax-include-depth-1b.h
! bfae689199f4ecb8ef24c9303b60d957  gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c
  ea3e3f0ffc094df5a744f60183e9f81e  gcc/testsuite/c-c++-common/cpp/has-builtin-2.c
  bc23e7fea0a34a28d11356c984dbef26  gcc/testsuite/c-c++-common/cpp/has-builtin-3.c
! 8e94c37617c184f7b783ccc14a832e5a  gcc/testsuite/c-c++-common/cpp/has-builtin.c
  37bbdbbf14bb30fbbe03791b2f676dd0  gcc/testsuite/c-c++-common/cpp/has-include-1-traditional.c
  63f74f9fe01b458a7f669b372a1d3acc  gcc/testsuite/c-c++-common/cpp/has-include-1.c
  3d8adb8da88b722ba2090ec42fef95dd  gcc/testsuite/c-c++-common/cpp/has-include-2.c
--- 12296,12350 ----
  e9e3763df2499b30da22eca4c488b15f  gcc/testsuite/c-c++-common/cpp/dir-only-7.c
  2f39366e508484177a054b88deafea45  gcc/testsuite/c-c++-common/cpp/dir-only-8.c
  06653ab873bcbc27520685b703402fc6  gcc/testsuite/c-c++-common/cpp/dir-only-9.c
+ f00d7d5cd91c94a226b193a89ab2c0e8  gcc/testsuite/c-c++-common/cpp/embed-1.c
+ 61c88dcde0240eca37fbe37e036ba379  gcc/testsuite/c-c++-common/cpp/embed-10.c
+ ed95c4aaf14a6f37cef7c267ce11b6d1  gcc/testsuite/c-c++-common/cpp/embed-11.c
+ 72477e83911c39f613ebaf80375aad5d  gcc/testsuite/c-c++-common/cpp/embed-12.c
+ 23c80cfbc9e76b157cd3aad0d91e0045  gcc/testsuite/c-c++-common/cpp/embed-13.c
+ 2ddd33a56b6e966e0d79388edfaa7216  gcc/testsuite/c-c++-common/cpp/embed-14.c
+ fde879f54ff20a86db30c5a54e0013ec  gcc/testsuite/c-c++-common/cpp/embed-15.c
+ 5eee7c556d80a801b209b0ab02277d11  gcc/testsuite/c-c++-common/cpp/embed-16.c
+ 6743124548c2d87355d326129e97b58b  gcc/testsuite/c-c++-common/cpp/embed-17.c
+ e034e52e70f1a316036addaf07256b28  gcc/testsuite/c-c++-common/cpp/embed-18.c
+ 3203a89e45a4f1940cd8d7a60b04bec7  gcc/testsuite/c-c++-common/cpp/embed-19.c
+ 61810e01d706d1be1a058d6b41e52872  gcc/testsuite/c-c++-common/cpp/embed-2.c
+ 8fe7d13dc25faa0da992a8464c703dd8  gcc/testsuite/c-c++-common/cpp/embed-20.c
+ c47f0e3ee3e4f09e14b2b8d912a35c8d  gcc/testsuite/c-c++-common/cpp/embed-21.c
+ 03bc587dcb444ff6edaa01cf25f481bd  gcc/testsuite/c-c++-common/cpp/embed-22.c
+ 9af894673132a4a50c97d975acb25ba7  gcc/testsuite/c-c++-common/cpp/embed-23.c
+ ec6952d438dcb155e52d713ca80a9b08  gcc/testsuite/c-c++-common/cpp/embed-24.c
+ a931906962f45822da42cdeca7a7ba56  gcc/testsuite/c-c++-common/cpp/embed-25.c
+ af8190ffeffbfac4ac488fab03c9e05a  gcc/testsuite/c-c++-common/cpp/embed-26.c
+ ae401b891476627aa86b19331301d3e5  gcc/testsuite/c-c++-common/cpp/embed-27.c
+ c65a9a33a54904c739a137c0b84dd540  gcc/testsuite/c-c++-common/cpp/embed-28.c
+ 516c2d5a6b7ac5abd2c3a05ec575ebf0  gcc/testsuite/c-c++-common/cpp/embed-29.c
+ 6f69c237604c6e61a8eba09dcfb1b94a  gcc/testsuite/c-c++-common/cpp/embed-3.c
+ c1e3fe80999f021304eb403e93793539  gcc/testsuite/c-c++-common/cpp/embed-4.c
+ 22dc8bec804b80e350367b466cd04fbd  gcc/testsuite/c-c++-common/cpp/embed-5.c
+ bc022e529f684d351ea0258669c4e986  gcc/testsuite/c-c++-common/cpp/embed-6.c
+ 7d1000a0b225a1065b2e47b1320da4df  gcc/testsuite/c-c++-common/cpp/embed-7.c
+ c36840e8ad341dfe781be108d507d55a  gcc/testsuite/c-c++-common/cpp/embed-8.c
+ ef6048d3f307b07c1b6acee2dbda9167  gcc/testsuite/c-c++-common/cpp/embed-9.c
+ 0cc175b9c0f1b6a831c399e269772661  gcc/testsuite/c-c++-common/cpp/embed-dir/embed-1.inc
+ 5015a0186c2caa1f611dbda1d94bf914  gcc/testsuite/c-c++-common/cpp/embed-dir/embed-3.c
+ fe5cb926f9637d69c98ee6dc9f5163d1  gcc/testsuite/c-c++-common/cpp/embed-dir/embed-4.c
+ f3127fbb66f3e123d57a1c3583c09c12  gcc/testsuite/c-c++-common/cpp/embed-dir/magna-carta.txt
  24433a4e764e479df8f2b0fafe6a0130  gcc/testsuite/c-c++-common/cpp/endif.c
  65db27307aa0cdf0b3c0323431e08a15  gcc/testsuite/c-c++-common/cpp/endif.h
  d320f7159ec0c49c01579cadb6132ae4  gcc/testsuite/c-c++-common/cpp/eof-1.c
! eca632dfc938672f4b6f4996a5a595af  gcc/testsuite/c-c++-common/cpp/eof-2.c
  6d793027f92f3668bc379d25936d8781  gcc/testsuite/c-c++-common/cpp/eof-2.h
! 5152396b140b1945c821636070a9a315  gcc/testsuite/c-c++-common/cpp/eof-3.c
  80917e73eda1f9f63bafbcc4d94a0927  gcc/testsuite/c-c++-common/cpp/ffile-prefix-map.c
  e5ed57bfbd2502d615ef60835f1f0352  gcc/testsuite/c-c++-common/cpp/file-name-1.c
  040be3c971d2d342750c402c54b9b869  gcc/testsuite/c-c++-common/cpp/fmacro-prefix-map.c
  1ccb9ebc08e51c65b99fa5f74657100a  gcc/testsuite/c-c++-common/cpp/fmax-include-depth-1a.h
  f7fc996e6cb72eb21ae19ef5b5a25faa  gcc/testsuite/c-c++-common/cpp/fmax-include-depth-1b.h
! f28cf9672a1b1f8010560eab53618768  gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c
  ea3e3f0ffc094df5a744f60183e9f81e  gcc/testsuite/c-c++-common/cpp/has-builtin-2.c
  bc23e7fea0a34a28d11356c984dbef26  gcc/testsuite/c-c++-common/cpp/has-builtin-3.c
! 5808d4ac618f64ec41051e15b6a5c218  gcc/testsuite/c-c++-common/cpp/has-builtin-4.c
! 206dd9a13097f314d9f54e82046f5370  gcc/testsuite/c-c++-common/cpp/has-builtin.c
  37bbdbbf14bb30fbbe03791b2f676dd0  gcc/testsuite/c-c++-common/cpp/has-include-1-traditional.c
  63f74f9fe01b458a7f669b372a1d3acc  gcc/testsuite/c-c++-common/cpp/has-include-1.c
  3d8adb8da88b722ba2090ec42fef95dd  gcc/testsuite/c-c++-common/cpp/has-include-2.c
*************** bc23e7fea0a34a28d11356c984dbef26  gcc/te
*** 11871,11890 ****
  24d5dab6704c718278896e0e7e2fefa6  gcc/testsuite/c-c++-common/cpp/has-include-next-2-dir/has-include-next-2.h
  e90fb8c2050497ca181f90cd569c4d97  gcc/testsuite/c-c++-common/cpp/has-include-next-2.c
  f886530357fac0e7bc06382bcf2120f9  gcc/testsuite/c-c++-common/cpp/line-1.c
! 498650d94405e716977ffcd604ecc7f2  gcc/testsuite/c-c++-common/cpp/line-2.c
  876ace0217b7806955a4e72551b3afbc  gcc/testsuite/c-c++-common/cpp/line-2.h
! f40b0a3b7abee1253efdef9bef3a0b70  gcc/testsuite/c-c++-common/cpp/line-3.c
  e4a82afc909a711b27adb1d72035a0f7  gcc/testsuite/c-c++-common/cpp/line-4.c
  b0dbf2ee0d65771fb476f1bead18e214  gcc/testsuite/c-c++-common/cpp/line-4.h
! 559ecaf03ddd2ab939ae5182bbbd6a3f  gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c
! 1ea6a04229ddcedf5e76f5218e8d0f3d  gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c
! 162443c09391cec65dc4b07cba7a6225  gcc/testsuite/c-c++-common/cpp/macro-ranges.c
  0ffee7384c0f18a8548234a5f32d704b  gcc/testsuite/c-c++-common/cpp/macro-trace-1.c
! 92e278890fa0451d83c7d27defae4895  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c
  204b84f18b5fe895fe56d68b709a82c7  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-2.c
! 06dfdc570cbe7073e409762eb65afda4  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c
! 4cbea41e60bb957213c3c1b18591a00a  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c
! c71b7387bdf03546b02b29790cc1a49f  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c
  f86bebfb846984a477366f8240a2ef94  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-6.c
  5f22002eeb9c67c80c58ab4db595cf15  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-7.c
  38afd926394292efa57d77eed0f14ef2  gcc/testsuite/c-c++-common/cpp/normalize-3.c
--- 12353,12372 ----
  24d5dab6704c718278896e0e7e2fefa6  gcc/testsuite/c-c++-common/cpp/has-include-next-2-dir/has-include-next-2.h
  e90fb8c2050497ca181f90cd569c4d97  gcc/testsuite/c-c++-common/cpp/has-include-next-2.c
  f886530357fac0e7bc06382bcf2120f9  gcc/testsuite/c-c++-common/cpp/line-1.c
! 3cb44f10ac0dc34fbddb71255a26fb01  gcc/testsuite/c-c++-common/cpp/line-2.c
  876ace0217b7806955a4e72551b3afbc  gcc/testsuite/c-c++-common/cpp/line-2.h
! 80a60bac5aad48fcf18fa0c4938a5e31  gcc/testsuite/c-c++-common/cpp/line-3.c
  e4a82afc909a711b27adb1d72035a0f7  gcc/testsuite/c-c++-common/cpp/line-4.c
  b0dbf2ee0d65771fb476f1bead18e214  gcc/testsuite/c-c++-common/cpp/line-4.h
! 39ab17ee6e819b9f3b68f16d435dda17  gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c
! fb9d2dfdeb11d3a1983926da9d6008db  gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c
! 5c183b5f02b158f9a35852f60c9b7f0c  gcc/testsuite/c-c++-common/cpp/macro-ranges.c
  0ffee7384c0f18a8548234a5f32d704b  gcc/testsuite/c-c++-common/cpp/macro-trace-1.c
! bd8c23da1662ba0a7b6d7783429b8f83  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c
  204b84f18b5fe895fe56d68b709a82c7  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-2.c
! 50b7b5b3280f6fc5e866ce3d5cc34490  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c
! c12d2c921beebaba0d31444074037eb5  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c
! c82c7f4a2d9f9cb8aff371a6faad866d  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c
  f86bebfb846984a477366f8240a2ef94  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-6.c
  5f22002eeb9c67c80c58ab4db595cf15  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-7.c
  38afd926394292efa57d77eed0f14ef2  gcc/testsuite/c-c++-common/cpp/normalize-3.c
*************** ac27af3ea0b119b95109334b03d48ca9  gcc/te
*** 11897,11902 ****
--- 12379,12385 ----
  fb93693065e3e66c29a51aa146b3d3fa  gcc/testsuite/c-c++-common/cpp/pr104147.c
  52031f4611a992f3a4ce30bfd206198d  gcc/testsuite/c-c++-common/cpp/pr108244-1.c
  923955687c7d11dfef99d344ff0d96a4  gcc/testsuite/c-c++-common/cpp/pr108244-2.c
+ c9c90fd4b9d3e25d8629a40a44fff10f  gcc/testsuite/c-c++-common/cpp/pr115913.c
  c85025f0def783f70f9bb6a4ea9a23f3  gcc/testsuite/c-c++-common/cpp/pr45457.c
  50c40c5b8912ad75a2e46fd06778339d  gcc/testsuite/c-c++-common/cpp/pr57580.c
  eff73d3df17e8342527c47aee668fc90  gcc/testsuite/c-c++-common/cpp/pr58844-1.c
*************** d7c73a487ec40c8f0189b7cda0611bcb  gcc/te
*** 11911,11917 ****
  a72a693524249dca84528ebc132082b5  gcc/testsuite/c-c++-common/cpp/pr63831-2.c
  fc6312863e2a09e397690651369f617d  gcc/testsuite/c-c++-common/cpp/pr65238-1.c
  abbf11969659f50e6f3cef908d473f64  gcc/testsuite/c-c++-common/cpp/pr67046.c
! 98b26af476c2ea78a482486746564d25  gcc/testsuite/c-c++-common/cpp/pr88974.c
  e221e8f99fff0bbbe3c2eed0fdfdd97d  gcc/testsuite/c-c++-common/cpp/pr90400.c
  b9707fab2c32f9df25c7136a89dceeb4  gcc/testsuite/c-c++-common/cpp/pr91639-one.h
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
--- 12394,12400 ----
  a72a693524249dca84528ebc132082b5  gcc/testsuite/c-c++-common/cpp/pr63831-2.c
  fc6312863e2a09e397690651369f617d  gcc/testsuite/c-c++-common/cpp/pr65238-1.c
  abbf11969659f50e6f3cef908d473f64  gcc/testsuite/c-c++-common/cpp/pr67046.c
! cf3456a2a6c23de3f71f60272abcaba1  gcc/testsuite/c-c++-common/cpp/pr88974.c
  e221e8f99fff0bbbe3c2eed0fdfdd97d  gcc/testsuite/c-c++-common/cpp/pr90400.c
  b9707fab2c32f9df25c7136a89dceeb4  gcc/testsuite/c-c++-common/cpp/pr91639-one.h
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
*************** aa884d944cf2bbf71c7c642a33b7244f  gcc/te
*** 11926,11932 ****
--- 12409,12420 ----
  6409b79dc5abde19a70909f1a884d018  gcc/testsuite/c-c++-common/cpp/pr93545-4.c
  53ddac2799c628f00a456708b4eab264  gcc/testsuite/c-c++-common/cpp/pr96323.c
  7b4c563757483bd5f5e1b37915f01b6d  gcc/testsuite/c-c++-common/cpp/pr97471.c
+ 8778e50ab186dc2b484fc031c674edb6  gcc/testsuite/c-c++-common/cpp/pragma-diagnostic-loc.c
  f2e2a6171e51d284aef6b4356f338ad3  gcc/testsuite/c-c++-common/cpp/pragma-eof.c
+ 63028bbb04748ffeeae9d684a23187c3  gcc/testsuite/c-c++-common/cpp/pragma-push-pop-utf8.c
+ 09ba71bf723164b88140e4ea7f498180  gcc/testsuite/c-c++-common/cpp/pragma-system-header-1.h
+ 73fa4bcc7276b828c99a965fa9569341  gcc/testsuite/c-c++-common/cpp/pragma-system-header-2.h
+ 1ed4ce76124ff5b89e63d525af60be98  gcc/testsuite/c-c++-common/cpp/pragma-system-header.c
  17f09d053664aa8b96634b37ce0988da  gcc/testsuite/c-c++-common/cpp/spaceship-1.c
  027fa50fd78720edd2f51bb22c3bd84f  gcc/testsuite/c-c++-common/cpp/ucnid-2011-1-utf8.c
  3a1169881f0152504462d4376c3b8083  gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c
*************** fd40571567f01233bfa44fa08bec2d16  gcc/te
*** 11939,11946 ****
  f62e2cb62fbc47a02df1795460d7bdf6  gcc/testsuite/c-c++-common/cpp/va-opt-7.c
  b94572e342c8ff13a560de9051372bae  gcc/testsuite/c-c++-common/cpp/va-opt-8.c
  2afcba443f0dcc8170bbf6957a6f9cad  gcc/testsuite/c-c++-common/cpp/va-opt-9.c
! 111311014e0b7d3088a84587438910e7  gcc/testsuite/c-c++-common/cpp/va-opt-error.c
! eea6a019e69d78eae4d98554090253c2  gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c
  170aae082482e5179e2b24f5f07b815a  gcc/testsuite/c-c++-common/cpp/va-opt.c
  7444806716b3bae848d518d64de74d70  gcc/testsuite/c-c++-common/cpp/warning-directive-1.c
  0bc290b1fdfa6458aec0ec7a0e16ca76  gcc/testsuite/c-c++-common/cpp/warning-directive-2.c
--- 12427,12434 ----
  f62e2cb62fbc47a02df1795460d7bdf6  gcc/testsuite/c-c++-common/cpp/va-opt-7.c
  b94572e342c8ff13a560de9051372bae  gcc/testsuite/c-c++-common/cpp/va-opt-8.c
  2afcba443f0dcc8170bbf6957a6f9cad  gcc/testsuite/c-c++-common/cpp/va-opt-9.c
! 8e377917e1038069359df3dd46d0c2d2  gcc/testsuite/c-c++-common/cpp/va-opt-error.c
! 062dca6ae9564acae89504d2eaf96ad3  gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c
  170aae082482e5179e2b24f5f07b815a  gcc/testsuite/c-c++-common/cpp/va-opt.c
  7444806716b3bae848d518d64de74d70  gcc/testsuite/c-c++-common/cpp/warning-directive-1.c
  0bc290b1fdfa6458aec0ec7a0e16ca76  gcc/testsuite/c-c++-common/cpp/warning-directive-2.c
*************** aacf4e026933c0a823e92fc29b27b046  gcc/te
*** 11993,11999 ****
  da3ca94222542571b50c1a531b1963ed  gcc/testsuite/c-c++-common/dfp/convert-int-fold.c
  91313c291d096beb1f07eca5be877ce0  gcc/testsuite/c-c++-common/dfp/convert-int-max-fold.c
  a464be40794f49d894033605c111f996  gcc/testsuite/c-c++-common/dfp/convert-int-max.c
! 55b144de1427c27ee4c070bfbe7cfb4e  gcc/testsuite/c-c++-common/dfp/convert-int-saturate.c
  9469e7fb4da999ec35bd9d69463e50b2  gcc/testsuite/c-c++-common/dfp/convert-int.c
  9a5d41a12f9e914ea3f0b850a3259acf  gcc/testsuite/c-c++-common/dfp/convert.h
  1af0b887011ee85c060e64568403fb9b  gcc/testsuite/c-c++-common/dfp/dfp-dbg.h
--- 12481,12487 ----
  da3ca94222542571b50c1a531b1963ed  gcc/testsuite/c-c++-common/dfp/convert-int-fold.c
  91313c291d096beb1f07eca5be877ce0  gcc/testsuite/c-c++-common/dfp/convert-int-max-fold.c
  a464be40794f49d894033605c111f996  gcc/testsuite/c-c++-common/dfp/convert-int-max.c
! 38fec9d37da8ec51b0d2cdb3b0e98400  gcc/testsuite/c-c++-common/dfp/convert-int-saturate.c
  9469e7fb4da999ec35bd9d69463e50b2  gcc/testsuite/c-c++-common/dfp/convert-int.c
  9a5d41a12f9e914ea3f0b850a3259acf  gcc/testsuite/c-c++-common/dfp/convert.h
  1af0b887011ee85c060e64568403fb9b  gcc/testsuite/c-c++-common/dfp/dfp-dbg.h
*************** e875feed3fbc0c6cae26a5abe73fc228  gcc/te
*** 12042,12055 ****
  457d424c40ab9e4d35fa27b979a24ee1  gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
  996443d0fabc6adf05cf16b92f765f59  gcc/testsuite/c-c++-common/diagnostic-format-json-file-1.c
  2db91f68d9841551bdb688cd339de968  gcc/testsuite/c-c++-common/diagnostic-format-json-stderr-1.c
! 6483737acd2b09472eb0b810ebe7c0c7  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-1.c
  e76f7da3b6ff122b724515225ddc93dc  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-2.c
  c9df2a60be9c299d6875bdd23d7a834e  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-3.c
  abde899158cd8dde619f570e28ece19c  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-4.c
! bc7567f6dad9c6310388c5b03041c3c6  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-Wbidi-chars.c
! 05ec2175ea6dd97bff8a07761d24df05  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c
  eb3b3149b2a64707ddb3ffcb96b11775  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-2.c
! 943c6c886af57e82d1f9be77c286f4a3  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c
  bcf401329f2fa4c728549b6768f24559  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-pr111700.c
  813fee682143a0cfed3586e75887f7bd  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-1.c
  b0c20bcb1205885415e77d5fe7d23a24  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-2.c
--- 12530,12546 ----
  457d424c40ab9e4d35fa27b979a24ee1  gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
  996443d0fabc6adf05cf16b92f765f59  gcc/testsuite/c-c++-common/diagnostic-format-json-file-1.c
  2db91f68d9841551bdb688cd339de968  gcc/testsuite/c-c++-common/diagnostic-format-json-stderr-1.c
! 650e0b7e5a24079a8e87b557dc99fb51  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-1.c
  e76f7da3b6ff122b724515225ddc93dc  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-2.c
  c9df2a60be9c299d6875bdd23d7a834e  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-3.c
  abde899158cd8dde619f570e28ece19c  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-4.c
! 0b86137ea760063c6992bdae50d6a489  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-Wbidi-chars.c
! ee318a3d3f2900f5354f631033004133  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c
  eb3b3149b2a64707ddb3ffcb96b11775  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-2.c
! c96f66a9813277a3d920c9a37c74bee8  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c
! bc66b36359c10637f43d45ca8b1a56f7  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-header-role.c
! c492e71b7006f5c27b214c1cac01750b  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-header-role.h
! eb168bbcd2ddf685137c972b989d202b  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-no-results.c
  bcf401329f2fa4c728549b6768f24559  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-pr111700.c
  813fee682143a0cfed3586e75887f7bd  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-1.c
  b0c20bcb1205885415e77d5fe7d23a24  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-2.c
*************** b402d83321951214957997b5dc7304fe  gcc/te
*** 12080,12097 ****
  f1df0df2ad7a7c91bdb960cb2299854f  gcc/testsuite/c-c++-common/dwarf2/pr113918.c
  022f27c0791fa6cda422c4471a77b995  gcc/testsuite/c-c++-common/dwarf2/pr43190.c
  ec4d1b894c02e9b5b427541048ae2fae  gcc/testsuite/c-c++-common/dwarf2/pr83550.c
! 0b4cca49ee429e207515197a5e44ab19  gcc/testsuite/c-c++-common/dwarf2/vla1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/c-c++-common/empty.h
! a2904e36f4beedc148948a7e131c1ad8  gcc/testsuite/c-c++-common/fcf-protection-1.c
  5c6937e9b12fd38b446d69539264c8a4  gcc/testsuite/c-c++-common/fcf-protection-10.c
  fe40dbd1439fc2f3acb6e6fc7c09857c  gcc/testsuite/c-c++-common/fcf-protection-11.c
  9c9db31f6fd631b02a6750f20ac3e031  gcc/testsuite/c-c++-common/fcf-protection-12.c
! d96b46ab8b01f2a0b9a494f5465a7bcc  gcc/testsuite/c-c++-common/fcf-protection-2.c
! a9d134cf51ea89bfa1cddf566cef9719  gcc/testsuite/c-c++-common/fcf-protection-3.c
! e2b40bf7849aef62ef510d4f0dcb9333  gcc/testsuite/c-c++-common/fcf-protection-4.c
! 90cfa05722a9b8b6cda701a01a6d5d76  gcc/testsuite/c-c++-common/fcf-protection-5.c
! d96b46ab8b01f2a0b9a494f5465a7bcc  gcc/testsuite/c-c++-common/fcf-protection-6.c
! a9d134cf51ea89bfa1cddf566cef9719  gcc/testsuite/c-c++-common/fcf-protection-7.c
  0529456523cbd867abc7a3cc29be6453  gcc/testsuite/c-c++-common/fcf-protection-8.c
  2e3923f154a659f0af49b79512639ffb  gcc/testsuite/c-c++-common/fcf-protection-9.c
  974779861f664167d947e1c8442c6959  gcc/testsuite/c-c++-common/ffile-prefix-map.c
--- 12571,12593 ----
  f1df0df2ad7a7c91bdb960cb2299854f  gcc/testsuite/c-c++-common/dwarf2/pr113918.c
  022f27c0791fa6cda422c4471a77b995  gcc/testsuite/c-c++-common/dwarf2/pr43190.c
  ec4d1b894c02e9b5b427541048ae2fae  gcc/testsuite/c-c++-common/dwarf2/pr83550.c
! 97429dd130e2a831a3f5643ed92516ef  gcc/testsuite/c-c++-common/dwarf2/vla1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/c-c++-common/empty.h
! 3b92fdfa161f9bec8e2914d14a8b16f3  gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c
! b5ca46ae005e7ccf07ed3220148b842d  gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-2.c
! ca9fca718629b818301e8583cc27076d  gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-3.c
! f5e94c8bdeaa3f08473a85439a4e754a  gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-bos-1.c
! 0d6c115a402833d8b708111a1f4b365b  gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-bos.c
! 1ba6cc884153c2b2a09d4f8f472d6d5d  gcc/testsuite/c-c++-common/fcf-protection-1.c
  5c6937e9b12fd38b446d69539264c8a4  gcc/testsuite/c-c++-common/fcf-protection-10.c
  fe40dbd1439fc2f3acb6e6fc7c09857c  gcc/testsuite/c-c++-common/fcf-protection-11.c
  9c9db31f6fd631b02a6750f20ac3e031  gcc/testsuite/c-c++-common/fcf-protection-12.c
! a5be7d929d145bd35bcdd11e5050501d  gcc/testsuite/c-c++-common/fcf-protection-2.c
! ceb07d9e69069baee4abcd6c24d4bace  gcc/testsuite/c-c++-common/fcf-protection-3.c
! 276bf47d08e03debe227bfddb707f025  gcc/testsuite/c-c++-common/fcf-protection-4.c
! 454809183dfe21f4f29d73d16cd3804a  gcc/testsuite/c-c++-common/fcf-protection-5.c
! a5be7d929d145bd35bcdd11e5050501d  gcc/testsuite/c-c++-common/fcf-protection-6.c
! ceb07d9e69069baee4abcd6c24d4bace  gcc/testsuite/c-c++-common/fcf-protection-7.c
  0529456523cbd867abc7a3cc29be6453  gcc/testsuite/c-c++-common/fcf-protection-8.c
  2e3923f154a659f0af49b79512639ffb  gcc/testsuite/c-c++-common/fcf-protection-9.c
  974779861f664167d947e1c8442c6959  gcc/testsuite/c-c++-common/ffile-prefix-map.c
*************** c947aa1374b02237e473f44439370de5  gcc/te
*** 12103,12109 ****
--- 12599,12611 ----
  1cadcee506edea681addead6bbe56db3  gcc/testsuite/c-c++-common/fhardened-13.c
  b818d7f4eb0092cf00e5b50a6f11ec33  gcc/testsuite/c-c++-common/fhardened-14.c
  e563ba96fe7f554fa942b9abac97e88d  gcc/testsuite/c-c++-common/fhardened-15.c
+ a21e43f56b0f4be2b5ba93c06afc0eeb  gcc/testsuite/c-c++-common/fhardened-16.c
+ 73b2ba4b74fb3989b91c4b1cdc3d0306  gcc/testsuite/c-c++-common/fhardened-17.c
+ 3ece09e4a4f17ee2307994cd2a635f1a  gcc/testsuite/c-c++-common/fhardened-18.c
+ 0ed2291518f5e3bfdee057bb42dffdac  gcc/testsuite/c-c++-common/fhardened-19.c
  76c6e5a6db642238d7da0252ca4af663  gcc/testsuite/c-c++-common/fhardened-2.c
+ 8688fc742b4b70c2bdb3d234d934dc65  gcc/testsuite/c-c++-common/fhardened-20.c
+ 6a510233b2b96d8a89291ee8dff13c9d  gcc/testsuite/c-c++-common/fhardened-21.c
  d05d77dd5edb8c1edddcf964a24445ee  gcc/testsuite/c-c++-common/fhardened-3.c
  77699058e4ee32e58ef5461980e98362  gcc/testsuite/c-c++-common/fhardened-4.c
  319c3ca2791a5e5cb27004470c26b0f5  gcc/testsuite/c-c++-common/fhardened-5.c
*************** a485c2cf2b8fb5018ff6ffa1d09b0291  gcc/te
*** 12119,12136 ****
  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
! 8464fa7630cd6bb6fcde3ce9e98ba40e  gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
! b13e8801f9d977c13a72c002dd2c5a6d  gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c
  0c724489142a5ed4513ada6ff6ebaea9  gcc/testsuite/c-c++-common/goacc-gomp/pr93465-1.c
! 318406ae2dc40af036abc40c46d96836  gcc/testsuite/c-c++-common/goacc/Wparentheses-1.c
  38804e577c485537958c84fd18a8c36d  gcc/testsuite/c-c++-common/goacc/acc-icf.c
  400443740bcbd90b6eda42f14ddb292c  gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
  d426111516a83fc5f035da114398322c  gcc/testsuite/c-c++-common/goacc/asyncwait-5.c
  a2cd1716ba4f647ad86a615b0dd86f7e  gcc/testsuite/c-c++-common/goacc/atomic.c
  063beec82d4803f5428815adff355071  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c
! cecb948a9fa279990e4a932593839682  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size.c
  f1fea57305dfe837e7453401fd24f606  gcc/testsuite/c-c++-common/goacc/cache-1.c
! 154e13d09dbd32a818555841bcb2b393  gcc/testsuite/c-c++-common/goacc/cache-2.c
  d520e956ceb1443b8b3d0b100a48fa63  gcc/testsuite/c-c++-common/goacc/cache-3-1.c
  36f9abb3ac94c762f04511594ed7b548  gcc/testsuite/c-c++-common/goacc/cache-3-2.c
  9daa29c22cc0660528399f7d7828729c  gcc/testsuite/c-c++-common/goacc/classify-kernels-parloops.c
--- 12621,12638 ----
  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
  38804e577c485537958c84fd18a8c36d  gcc/testsuite/c-c++-common/goacc/acc-icf.c
  400443740bcbd90b6eda42f14ddb292c  gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
  d426111516a83fc5f035da114398322c  gcc/testsuite/c-c++-common/goacc/asyncwait-5.c
  a2cd1716ba4f647ad86a615b0dd86f7e  gcc/testsuite/c-c++-common/goacc/atomic.c
  063beec82d4803f5428815adff355071  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c
! 3dd709cf9053a917159f758ba74a5c5b  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size.c
  f1fea57305dfe837e7453401fd24f606  gcc/testsuite/c-c++-common/goacc/cache-1.c
! 79cf4f09115a23d38daa740ca4010bbb  gcc/testsuite/c-c++-common/goacc/cache-2.c
  d520e956ceb1443b8b3d0b100a48fa63  gcc/testsuite/c-c++-common/goacc/cache-3-1.c
  36f9abb3ac94c762f04511594ed7b548  gcc/testsuite/c-c++-common/goacc/cache-3-2.c
  9daa29c22cc0660528399f7d7828729c  gcc/testsuite/c-c++-common/goacc/classify-kernels-parloops.c
*************** bc31e2ca37f62f8f279d15468976e7b5  gcc/te
*** 12144,12167 ****
  12f57fec0efb4794655427a484e0ba7c  gcc/testsuite/c-c++-common/goacc/clauses-fail.c
  cf5ecc8bc452e7b741b7532858d5e0fe  gcc/testsuite/c-c++-common/goacc/collapse-1.c
  a29008ff83202ed302993eae2ce59225  gcc/testsuite/c-c++-common/goacc/collapse-2.c
! ca2517a3cc3cd3ae7a63df0a68ad4598  gcc/testsuite/c-c++-common/goacc/combined-directives-2.c
! c4d8a118d81caeb284f473723a6b890f  gcc/testsuite/c-c++-common/goacc/combined-directives-3.c
! 6a3920d3728f9ade384ff4fd7f3a5d2c  gcc/testsuite/c-c++-common/goacc/combined-directives.c
! c68fccfb3ff8b00b01d51396677c6d59  gcc/testsuite/c-c++-common/goacc/combined-reduction.c
  6ff2b7486e948a4634adb071ea7906c0  gcc/testsuite/c-c++-common/goacc/data-1.c
  d5d5af24e4793fb1e9298a4ba6060015  gcc/testsuite/c-c++-common/goacc/data-2.c
  8303b2d602314b7af0f96f923e175484  gcc/testsuite/c-c++-common/goacc/data-clause-1.c
  df0c5b2a3f8fd74e59ef06f3c576902b  gcc/testsuite/c-c++-common/goacc/data-clause-2.c
! 84f08e112686de908716edd944c7dc5b  gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
  df5a4b39ef7dcc3e7884ba93f68ac8fc  gcc/testsuite/c-c++-common/goacc/declare-1.c
  5daae4226662867648597d7cf7b262d2  gcc/testsuite/c-c++-common/goacc/declare-2.c
  fbee36d1c4d6ed4bfdee66194ad75772  gcc/testsuite/c-c++-common/goacc/declare-pr90861.c
  229bed5ef7072db0fa428c10c115e33d  gcc/testsuite/c-c++-common/goacc/declare-pr94120.c
! 17b63246fd51599bad2716165cbcff0d  gcc/testsuite/c-c++-common/goacc/default-1.c
! 8e4b3f87057e886c28e0ca3244adec22  gcc/testsuite/c-c++-common/goacc/default-2.c
! ac0281f09c0d819b2687d6dec5fa6a92  gcc/testsuite/c-c++-common/goacc/default-3.c
! cf4a4c53a3deea0d00ed7478855bf678  gcc/testsuite/c-c++-common/goacc/default-4.c
! 7fa6c60db037b47188f63245bb1df130  gcc/testsuite/c-c++-common/goacc/default-5.c
  791c407a38c6166f9b89d51f465e88af  gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
  1e678e7e2c101c79192a640cd4d2e407  gcc/testsuite/c-c++-common/goacc/deviceptr-2.c
  b2061cbe48e6c36be03418229b1e6c1c  gcc/testsuite/c-c++-common/goacc/deviceptr-3.c
--- 12646,12669 ----
  12f57fec0efb4794655427a484e0ba7c  gcc/testsuite/c-c++-common/goacc/clauses-fail.c
  cf5ecc8bc452e7b741b7532858d5e0fe  gcc/testsuite/c-c++-common/goacc/collapse-1.c
  a29008ff83202ed302993eae2ce59225  gcc/testsuite/c-c++-common/goacc/collapse-2.c
! d6e804e09d520d0511d19e5f86e70300  gcc/testsuite/c-c++-common/goacc/combined-directives-2.c
! 3645a43ed1d91989d20cc922fd0a1c48  gcc/testsuite/c-c++-common/goacc/combined-directives-3.c
! 1b5dcd95d12cddaefcbf63167beac3bd  gcc/testsuite/c-c++-common/goacc/combined-directives.c
! 1526cba07462c6f8367d99a1c22a1250  gcc/testsuite/c-c++-common/goacc/combined-reduction.c
  6ff2b7486e948a4634adb071ea7906c0  gcc/testsuite/c-c++-common/goacc/data-1.c
  d5d5af24e4793fb1e9298a4ba6060015  gcc/testsuite/c-c++-common/goacc/data-2.c
  8303b2d602314b7af0f96f923e175484  gcc/testsuite/c-c++-common/goacc/data-clause-1.c
  df0c5b2a3f8fd74e59ef06f3c576902b  gcc/testsuite/c-c++-common/goacc/data-clause-2.c
! 60188ceaaaf18fbba1956aef5d80a45a  gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
  df5a4b39ef7dcc3e7884ba93f68ac8fc  gcc/testsuite/c-c++-common/goacc/declare-1.c
  5daae4226662867648597d7cf7b262d2  gcc/testsuite/c-c++-common/goacc/declare-2.c
  fbee36d1c4d6ed4bfdee66194ad75772  gcc/testsuite/c-c++-common/goacc/declare-pr90861.c
  229bed5ef7072db0fa428c10c115e33d  gcc/testsuite/c-c++-common/goacc/declare-pr94120.c
! 8023e413d7a635e33023ca9f93963c93  gcc/testsuite/c-c++-common/goacc/default-1.c
! c2e0ee55df77be01596c67e3516d2b21  gcc/testsuite/c-c++-common/goacc/default-2.c
! dcaaa66c17869d24e2cab54d6b02ace7  gcc/testsuite/c-c++-common/goacc/default-3.c
! b20671d6c9bc04b597e42abecf8294f2  gcc/testsuite/c-c++-common/goacc/default-4.c
! d944eeeac53f446367e66bf6faaf0403  gcc/testsuite/c-c++-common/goacc/default-5.c
  791c407a38c6166f9b89d51f465e88af  gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
  1e678e7e2c101c79192a640cd4d2e407  gcc/testsuite/c-c++-common/goacc/deviceptr-2.c
  b2061cbe48e6c36be03418229b1e6c1c  gcc/testsuite/c-c++-common/goacc/deviceptr-3.c
*************** ee2c56a8648c3d2971c138604ce265a2  gcc/te
*** 12173,12180 ****
  c7a7080eb3718456e352647005144afe  gcc/testsuite/c-c++-common/goacc/host_data-1.c
  b7335f0ba13daf3819ec3c7284581ab8  gcc/testsuite/c-c++-common/goacc/host_data-2.c
  af6f402cd44028ad3dbc2c17b6d130ea  gcc/testsuite/c-c++-common/goacc/if-clause-1.c
! d46e5907cd450b0f96c98bf94b0cc536  gcc/testsuite/c-c++-common/goacc/if-clause-2.c
! 35214a1f58c7ba1873cf8c89c85258dd  gcc/testsuite/c-c++-common/goacc/kernels-1.c
  e2a6a7ea3514aa716297087affe838f6  gcc/testsuite/c-c++-common/goacc/kernels-alias-2.c
  32c2fd7fd331413c4271e2034798b5fc  gcc/testsuite/c-c++-common/goacc/kernels-alias-3.c
  9f5046288ada953d6b64653de85b6f3a  gcc/testsuite/c-c++-common/goacc/kernels-alias-4.c
--- 12675,12684 ----
  c7a7080eb3718456e352647005144afe  gcc/testsuite/c-c++-common/goacc/host_data-1.c
  b7335f0ba13daf3819ec3c7284581ab8  gcc/testsuite/c-c++-common/goacc/host_data-2.c
  af6f402cd44028ad3dbc2c17b6d130ea  gcc/testsuite/c-c++-common/goacc/if-clause-1.c
! 0a680bb589321a9a1e59ce145dcf15b3  gcc/testsuite/c-c++-common/goacc/if-clause-2.c
! eda662af30bbd31dcfcc6cb6b71dc78c  gcc/testsuite/c-c++-common/goacc/implied-copy-1.c
! 2161376b6e091a8e6fcea4571483e198  gcc/testsuite/c-c++-common/goacc/implied-copy-2.c
! d50121d6449768c2ab2ee025a04be6b4  gcc/testsuite/c-c++-common/goacc/kernels-1.c
  e2a6a7ea3514aa716297087affe838f6  gcc/testsuite/c-c++-common/goacc/kernels-alias-2.c
  32c2fd7fd331413c4271e2034798b5fc  gcc/testsuite/c-c++-common/goacc/kernels-alias-3.c
  9f5046288ada953d6b64653de85b6f3a  gcc/testsuite/c-c++-common/goacc/kernels-alias-4.c
*************** b3c20783edf8490b5b8bac932315ae0c  gcc/te
*** 12188,12194 ****
  fd810ebe54a80c58e76683e0a559234f  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta.c
  e3a0f1c375f36ae3f072b97ca4be8af8  gcc/testsuite/c-c++-common/goacc/kernels-alias.c
  37219df46c20afb4e83e03c1789b55cd  gcc/testsuite/c-c++-common/goacc/kernels-counter-var-redundant-load.c
! 6aca1c79c10aeafe8ca15c0eb9396cfc  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
--- 12692,12698 ----
  fd810ebe54a80c58e76683e0a559234f  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta.c
  e3a0f1c375f36ae3f072b97ca4be8af8  gcc/testsuite/c-c++-common/goacc/kernels-alias.c
  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
*************** af37b31b976b1c0c41e3db72c626d179  gcc/te
*** 12212,12257 ****
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
  a773e0a329e214183ab547e9c6d55c76  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c
! 06eeddc1679e17d038c8bb495b75e5fd  gcc/testsuite/c-c++-common/goacc/kernels-loop-2.c
! d2b07a035d2f4f2ee747cc05843d4ce6  gcc/testsuite/c-c++-common/goacc/kernels-loop-3.c
! 49eb954cfabd30f0636ae9abb1875da1  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-2.c
! 17467fe536a9144ff0dbead7f957335c  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit-2.c
! 5acde8c588fcb0d3d2b944d98d7640d1  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit.c
! 0ee6c52446e5e9be033fe0f63067d838  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-update.c
! 029002a91886e67008d095aed5db831c  gcc/testsuite/c-c++-common/goacc/kernels-loop-data.c
! 486a4a9e8c8c40ec3fc38c311609fa85  gcc/testsuite/c-c++-common/goacc/kernels-loop-g.c
! 338050b7503da0e58b94bde563138113  gcc/testsuite/c-c++-common/goacc/kernels-loop-mod-not-zero.c
! 1c93a2626e543e6fcc45cb76521bb121  gcc/testsuite/c-c++-common/goacc/kernels-loop-n.c
  0c9100831338aab46723948a495effe2  gcc/testsuite/c-c++-common/goacc/kernels-loop-nest.c
! b65c956e91267b2edf2ea5d4426177f3  gcc/testsuite/c-c++-common/goacc/kernels-loop.c
! ab9791a21ead66f4fa240637df1ecd72  gcc/testsuite/c-c++-common/goacc/kernels-one-counter-var.c
! 1e3218145aed238857cad1b7494531df  gcc/testsuite/c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c
  ad44e931e1431a554772eeb05bb98d85  gcc/testsuite/c-c++-common/goacc/kernels-reduction.c
! 45793754c2adf529b0a269c466ed2761  gcc/testsuite/c-c++-common/goacc/loop-1.c
  be8b041248798e31b7644ec272413df0  gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c
  9375752f093eacc6cc803423cf24de01  gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c
! d8680bac58d645327339827aeb4d6670  gcc/testsuite/c-c++-common/goacc/loop-3.c
  5bfa0f11bffe5460f1cc207c6ccbf887  gcc/testsuite/c-c++-common/goacc/loop-auto-1.c
  22705c9aed14976fcb7e11e5d623dffb  gcc/testsuite/c-c++-common/goacc/loop-auto-2.c
! c6bb19f1b877604f532b3271637f15af  gcc/testsuite/c-c++-common/goacc/loop-clauses.c
  943121f9af2ecdb53cd96ba15a3c0258  gcc/testsuite/c-c++-common/goacc/loop-private-1.c
! c433ed40537345c26ace448f210a1463  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
  f6a8c73e3913a7f2cb2ece39276bbe11  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-routine.c
  7d8ef00ce54017166fe883673f062bb9  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-kernels.c
  6f1876a53c2c7b4b3e4022e32de884cf  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-parallel.c
  b16e0fccadccfbdc8bf18293db61f011  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-routine.c
! 56d9598ce31d50dfd5d178c2bac86589  gcc/testsuite/c-c++-common/goacc/nesting-1.c
! 1bbc8c8f2872cd7f133d840900d4d0d1  gcc/testsuite/c-c++-common/goacc/nesting-data-1.c
! c26dc1ddd2c7cc2e10219fc4c458a65b  gcc/testsuite/c-c++-common/goacc/nesting-fail-1.c
  ec0de1bc2f55f65b60fe6cbda3d62957  gcc/testsuite/c-c++-common/goacc/note-parallelism.c
  738e3396a07667309d4be54f9d34482e  gcc/testsuite/c-c++-common/goacc/orphan-reductions-1.c
  f101d01493fc3da21ffcada3b9fe53f6  gcc/testsuite/c-c++-common/goacc/orphan-reductions-2.c
  f1f64beec003bfdf47a108b0294d1375  gcc/testsuite/c-c++-common/goacc/orphan-reductions-3.c
! 8c7a33093e4b8a8b716fde5f62882b6a  gcc/testsuite/c-c++-common/goacc/parallel-1.c
  a358f6e203ecc7a7968637d8f9a84c44  gcc/testsuite/c-c++-common/goacc/parallel-dims-1.c
  72833bf83f290c33144334e2aaf10a57  gcc/testsuite/c-c++-common/goacc/parallel-dims-2.c
  b21f128f6f33e167b31048385621fc36  gcc/testsuite/c-c++-common/goacc/parallel-reduction.c
--- 12716,12765 ----
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
  a773e0a329e214183ab547e9c6d55c76  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c
! e58f1475451de9f2678269d525f54d61  gcc/testsuite/c-c++-common/goacc/kernels-loop-2.c
! 1d1632b8e1f314d731f7a935bcda689f  gcc/testsuite/c-c++-common/goacc/kernels-loop-3.c
! 913f30fa5cb6f2a1e3bf46febda82d01  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-2.c
! 9c8759fcdb2dae003453088c63ce1150  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit-2.c
! c12027d8e8ea0f60b505dd89d27fe75a  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-enter-exit.c
! e614c474f186786f5cb27b91901db711  gcc/testsuite/c-c++-common/goacc/kernels-loop-data-update.c
! 3f73e7d19d805f48552c9123eb87c17a  gcc/testsuite/c-c++-common/goacc/kernels-loop-data.c
! 4cfb4df4924b690a3ec08d9f6f6897c3  gcc/testsuite/c-c++-common/goacc/kernels-loop-g.c
! 020065454e98018ed8a9f80ad3e375fd  gcc/testsuite/c-c++-common/goacc/kernels-loop-mod-not-zero.c
! 09f01f8c052d1fd21f993cb451ee14af  gcc/testsuite/c-c++-common/goacc/kernels-loop-n.c
  0c9100831338aab46723948a495effe2  gcc/testsuite/c-c++-common/goacc/kernels-loop-nest.c
! 71dd2e15690a7c2bf7cd20420c69357f  gcc/testsuite/c-c++-common/goacc/kernels-loop.c
! 8a86ed58049f933ccf012efde2539812  gcc/testsuite/c-c++-common/goacc/kernels-one-counter-var.c
! 259b25c2a3e8e61d6c80bcd3d8ddc1a5  gcc/testsuite/c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c
  ad44e931e1431a554772eeb05bb98d85  gcc/testsuite/c-c++-common/goacc/kernels-reduction.c
! fcff59f011a449c0e06bd68d1aa6e748  gcc/testsuite/c-c++-common/goacc/loop-1.c
  be8b041248798e31b7644ec272413df0  gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c
  9375752f093eacc6cc803423cf24de01  gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c
! 6361a585165694db3a8155b76e7ed9c0  gcc/testsuite/c-c++-common/goacc/loop-2-serial.c
! 042d8ca1367f43587fe3dbdd6ed50a2f  gcc/testsuite/c-c++-common/goacc/loop-3-parallel.c
! 5c0d1592c0ab74890f0a903e73ef1cca  gcc/testsuite/c-c++-common/goacc/loop-3-serial.c
  5bfa0f11bffe5460f1cc207c6ccbf887  gcc/testsuite/c-c++-common/goacc/loop-auto-1.c
  22705c9aed14976fcb7e11e5d623dffb  gcc/testsuite/c-c++-common/goacc/loop-auto-2.c
! 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
  f6a8c73e3913a7f2cb2ece39276bbe11  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-routine.c
+ b7ebd79547afc3fdd5aec238e5ffcdbb  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-serial.c
  7d8ef00ce54017166fe883673f062bb9  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-kernels.c
  6f1876a53c2c7b4b3e4022e32de884cf  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-parallel.c
  b16e0fccadccfbdc8bf18293db61f011  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-routine.c
! 09fb03c52d4f13039ec837459e2feb90  gcc/testsuite/c-c++-common/goacc/nested-reductions-2-serial.c
! dd2043121a0a4bb283fd9f8de4e4fdca  gcc/testsuite/c-c++-common/goacc/nesting-1.c
! 3d6372f689f11141ea40827d3d31e7d1  gcc/testsuite/c-c++-common/goacc/nesting-data-1.c
! 5795b5030deeb124e62f29a7a505d0b3  gcc/testsuite/c-c++-common/goacc/nesting-fail-1.c
  ec0de1bc2f55f65b60fe6cbda3d62957  gcc/testsuite/c-c++-common/goacc/note-parallelism.c
  738e3396a07667309d4be54f9d34482e  gcc/testsuite/c-c++-common/goacc/orphan-reductions-1.c
  f101d01493fc3da21ffcada3b9fe53f6  gcc/testsuite/c-c++-common/goacc/orphan-reductions-2.c
  f1f64beec003bfdf47a108b0294d1375  gcc/testsuite/c-c++-common/goacc/orphan-reductions-3.c
! 1c96e17ad23a101ba5d04818f4a4bc2f  gcc/testsuite/c-c++-common/goacc/parallel-1.c
  a358f6e203ecc7a7968637d8f9a84c44  gcc/testsuite/c-c++-common/goacc/parallel-dims-1.c
  72833bf83f290c33144334e2aaf10a57  gcc/testsuite/c-c++-common/goacc/parallel-dims-2.c
  b21f128f6f33e167b31048385621fc36  gcc/testsuite/c-c++-common/goacc/parallel-reduction.c
*************** abf2f06821ef83fd68a177bc03b2f19d  gcc/te
*** 12260,12275 ****
  1d90abbfb13aaf9003e6882afdf09ae2  gcc/testsuite/c-c++-common/goacc/pcopyout.c
  e01bc16654eb70269f569e503d5a0905  gcc/testsuite/c-c++-common/goacc/pcreate.c
  68f80b7e6dcd38f96ca6b1b1357fb2e1  gcc/testsuite/c-c++-common/goacc/pr102432.c
! 8813fa952a39d7fcd8c338a20bbf1a30  gcc/testsuite/c-c++-common/goacc/pr69916.c
  d9a74af59f33958cc09a5d325f52f99e  gcc/testsuite/c-c++-common/goacc/pr70688.c
  3cab895fbfe4d9a2a6ee0aceffb2970e  gcc/testsuite/c-c++-common/goacc/pr79428-1.c
  d398b6a88925d39ad550f7a21e489047  gcc/testsuite/c-c++-common/goacc/pr84217.c
  f4e4c18e18f7861d92862c9c4423bf8f  gcc/testsuite/c-c++-common/goacc/pr85782.c
! f7c53b4b7cfca23e012fb42b7951f318  gcc/testsuite/c-c++-common/goacc/pr92793-1.c
  61a570b9f391acfdfb9b0189424a74ee  gcc/testsuite/c-c++-common/goacc/pr93488.c
  77856d506d7addd81bc68f380358627f  gcc/testsuite/c-c++-common/goacc/pragma_context.c
  d76b8ed3ade6794cf7f243b5df9b41cb  gcc/testsuite/c-c++-common/goacc/present-1.c
! fcf3a663cb7ac512b361f5677f5a6fc1  gcc/testsuite/c-c++-common/goacc/private-reduction-1.c
  931bc06e0633f1e9fd8cc4aae5c25437  gcc/testsuite/c-c++-common/goacc/privatization-1-compute-loop.c
  a36d137c61c91eebafe06b69005ed065  gcc/testsuite/c-c++-common/goacc/privatization-1-compute.c
  d901676912c84b1538b682b98df630ac  gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang-loop.c
--- 12768,12783 ----
  1d90abbfb13aaf9003e6882afdf09ae2  gcc/testsuite/c-c++-common/goacc/pcopyout.c
  e01bc16654eb70269f569e503d5a0905  gcc/testsuite/c-c++-common/goacc/pcreate.c
  68f80b7e6dcd38f96ca6b1b1357fb2e1  gcc/testsuite/c-c++-common/goacc/pr102432.c
! 0ee2b952e6214083be877c1d48379f57  gcc/testsuite/c-c++-common/goacc/pr69916.c
  d9a74af59f33958cc09a5d325f52f99e  gcc/testsuite/c-c++-common/goacc/pr70688.c
  3cab895fbfe4d9a2a6ee0aceffb2970e  gcc/testsuite/c-c++-common/goacc/pr79428-1.c
  d398b6a88925d39ad550f7a21e489047  gcc/testsuite/c-c++-common/goacc/pr84217.c
  f4e4c18e18f7861d92862c9c4423bf8f  gcc/testsuite/c-c++-common/goacc/pr85782.c
! 06838c9d568931e009818edca0a28472  gcc/testsuite/c-c++-common/goacc/pr92793-1.c
  61a570b9f391acfdfb9b0189424a74ee  gcc/testsuite/c-c++-common/goacc/pr93488.c
  77856d506d7addd81bc68f380358627f  gcc/testsuite/c-c++-common/goacc/pragma_context.c
  d76b8ed3ade6794cf7f243b5df9b41cb  gcc/testsuite/c-c++-common/goacc/present-1.c
! e720097f4b123b43a3c8b5618464d511  gcc/testsuite/c-c++-common/goacc/private-reduction-1.c
  931bc06e0633f1e9fd8cc4aae5c25437  gcc/testsuite/c-c++-common/goacc/privatization-1-compute-loop.c
  a36d137c61c91eebafe06b69005ed065  gcc/testsuite/c-c++-common/goacc/privatization-1-compute.c
  d901676912c84b1538b682b98df630ac  gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang-loop.c
*************** fdeb18440623ddebb1218a2b4b499f03  gcc/te
*** 12283,12290 ****
  257a77aee12af0f943094c1039f93f8b  gcc/testsuite/c-c++-common/goacc/reduction-6.c
  8f8202b36e2d2898f3e7b96fa620e961  gcc/testsuite/c-c++-common/goacc/reduction-7.c
  1bc48442ca333da4fa8fe84b40f6fe0a  gcc/testsuite/c-c++-common/goacc/reduction-8.c
! 56a2b01609c03c4779369ba70942e140  gcc/testsuite/c-c++-common/goacc/reduction-promotions.c
! b8d1c8e8a6053ab2f232231f687af30c  gcc/testsuite/c-c++-common/goacc/routine-1.c
  44f22249f0b427d35f1430b1608fc033  gcc/testsuite/c-c++-common/goacc/routine-2.c
  b8fe6f4ef7484e937e55940896edeb2c  gcc/testsuite/c-c++-common/goacc/routine-3-extern.c
  91d2db0804978500ca4814a650d91c42  gcc/testsuite/c-c++-common/goacc/routine-3.c
--- 12791,12798 ----
  257a77aee12af0f943094c1039f93f8b  gcc/testsuite/c-c++-common/goacc/reduction-6.c
  8f8202b36e2d2898f3e7b96fa620e961  gcc/testsuite/c-c++-common/goacc/reduction-7.c
  1bc48442ca333da4fa8fe84b40f6fe0a  gcc/testsuite/c-c++-common/goacc/reduction-8.c
! 30e35d3b5cb2c9618721530d271759fc  gcc/testsuite/c-c++-common/goacc/reduction-promotions.c
! 4f11e06dc7d6174037f2a3441c5cbd8d  gcc/testsuite/c-c++-common/goacc/routine-1.c
  44f22249f0b427d35f1430b1608fc033  gcc/testsuite/c-c++-common/goacc/routine-2.c
  b8fe6f4ef7484e937e55940896edeb2c  gcc/testsuite/c-c++-common/goacc/routine-3-extern.c
  91d2db0804978500ca4814a650d91c42  gcc/testsuite/c-c++-common/goacc/routine-3.c
*************** b8fe6f4ef7484e937e55940896edeb2c  gcc/te
*** 12295,12321 ****
  cbd7e5ffbac07cddc3cf1f52861156e9  gcc/testsuite/c-c++-common/goacc/routine-level-of-parallelism-2.c
  a6830a8d2358e26e07f7defa80e922ef  gcc/testsuite/c-c++-common/goacc/routine-nohost-1.c
  b49c7784b16fec25d9d63dff65b06085  gcc/testsuite/c-c++-common/goacc/routine-nohost-2.c
! 71ff1b7541d8c733624f242976e1b747  gcc/testsuite/c-c++-common/goacc/sb-1.c
! 1dde0d0d526302b12c8c22cfe846ddc1  gcc/testsuite/c-c++-common/goacc/sb-2.c
  2e25fe0594ffb9e9a8f935be5d6e9cfa  gcc/testsuite/c-c++-common/goacc/sb-3.c
  0c8c4a56e46ad299cb538982f71356cc  gcc/testsuite/c-c++-common/goacc/self-clause-1.c
  f93f855ce26827da7463d94dd9d892cd  gcc/testsuite/c-c++-common/goacc/self-clause-2.c
  a1aa94a6909f8f48d857ad5a9cd45b61  gcc/testsuite/c-c++-common/goacc/struct-component-kind-1.c
  94af55a13b250c49ee388c813dd285e5  gcc/testsuite/c-c++-common/goacc/struct-enter-exit-data-1.c
  4092d8216e9b7b3df417147586b91195  gcc/testsuite/c-c++-common/goacc/tile-2.c
  a140f15e3d552040b8f3c805cd73f542  gcc/testsuite/c-c++-common/goacc/tile.c
  4f12915b0be66791d61798f30094289c  gcc/testsuite/c-c++-common/goacc/uninit-copy-clause.c
  62ebb0e0b12fea8a81543951d20f1b39  gcc/testsuite/c-c++-common/goacc/uninit-dim-clause.c
! 397767b2d96d3321574bf53ca80f1027  gcc/testsuite/c-c++-common/goacc/uninit-firstprivate-clause.c
! 2245c15bddd4c2a0ca8381dd4baf60d0  gcc/testsuite/c-c++-common/goacc/uninit-if-clause.c
  dc80449bfdca5a99a480536d2e1db33b  gcc/testsuite/c-c++-common/goacc/uninit-use-device-clause.c
  3e0f236b99de22401e18251d5b11c962  gcc/testsuite/c-c++-common/goacc/update-1.c
  1c02e1d791c7d07a364d26261ecfa2fd  gcc/testsuite/c-c++-common/goacc/update-if_present-1.c
! 06778a56b7e33709b030ad02b8e68560  gcc/testsuite/c-c++-common/goacc/update-if_present-2.c
  d8d78230b698b1427515ae7b473eaf5f  gcc/testsuite/c-c++-common/gomp/Wparentheses-1.c
  63761edcc60694bb3443638fd038e6de  gcc/testsuite/c-c++-common/gomp/Wparentheses-2.c
  87caf85546707f566688fc6b60a4d1e9  gcc/testsuite/c-c++-common/gomp/Wparentheses-3.c
  f2eeacd8e01fce5f98daff2393115250  gcc/testsuite/c-c++-common/gomp/Wparentheses-4.c
  5cf6813317fa5ef169d543e63d45b26a  gcc/testsuite/c-c++-common/gomp/affinity-1.c
  d463344100a0478350affbdc29db0366  gcc/testsuite/c-c++-common/gomp/affinity-2.c
  2e8a942227251c348ea0e35322d0512a  gcc/testsuite/c-c++-common/gomp/affinity-3.c
--- 12803,12836 ----
  cbd7e5ffbac07cddc3cf1f52861156e9  gcc/testsuite/c-c++-common/goacc/routine-level-of-parallelism-2.c
  a6830a8d2358e26e07f7defa80e922ef  gcc/testsuite/c-c++-common/goacc/routine-nohost-1.c
  b49c7784b16fec25d9d63dff65b06085  gcc/testsuite/c-c++-common/goacc/routine-nohost-2.c
! 4b00234e2c6a625f90008df77a38ea47  gcc/testsuite/c-c++-common/goacc/sb-1.c
! c38af66c6f82ed7dceb848652f6208db  gcc/testsuite/c-c++-common/goacc/sb-2.c
  2e25fe0594ffb9e9a8f935be5d6e9cfa  gcc/testsuite/c-c++-common/goacc/sb-3.c
  0c8c4a56e46ad299cb538982f71356cc  gcc/testsuite/c-c++-common/goacc/self-clause-1.c
  f93f855ce26827da7463d94dd9d892cd  gcc/testsuite/c-c++-common/goacc/self-clause-2.c
+ 3c943382d04e925bbdddddf7545792c7  gcc/testsuite/c-c++-common/goacc/serial-1.c
  a1aa94a6909f8f48d857ad5a9cd45b61  gcc/testsuite/c-c++-common/goacc/struct-component-kind-1.c
  94af55a13b250c49ee388c813dd285e5  gcc/testsuite/c-c++-common/goacc/struct-enter-exit-data-1.c
  4092d8216e9b7b3df417147586b91195  gcc/testsuite/c-c++-common/goacc/tile-2.c
  a140f15e3d552040b8f3c805cd73f542  gcc/testsuite/c-c++-common/goacc/tile.c
  4f12915b0be66791d61798f30094289c  gcc/testsuite/c-c++-common/goacc/uninit-copy-clause.c
  62ebb0e0b12fea8a81543951d20f1b39  gcc/testsuite/c-c++-common/goacc/uninit-dim-clause.c
! da742c836538bd2e5386edbda7f22172  gcc/testsuite/c-c++-common/goacc/uninit-firstprivate-clause.c
! 8229246b5015cabd1a2f1566bf67c581  gcc/testsuite/c-c++-common/goacc/uninit-if-clause.c
  dc80449bfdca5a99a480536d2e1db33b  gcc/testsuite/c-c++-common/goacc/uninit-use-device-clause.c
  3e0f236b99de22401e18251d5b11c962  gcc/testsuite/c-c++-common/goacc/update-1.c
  1c02e1d791c7d07a364d26261ecfa2fd  gcc/testsuite/c-c++-common/goacc/update-if_present-1.c
! e4c5c5de7badcd203a3ab00f31a22be2  gcc/testsuite/c-c++-common/goacc/update-if_present-2.c
  d8d78230b698b1427515ae7b473eaf5f  gcc/testsuite/c-c++-common/gomp/Wparentheses-1.c
  63761edcc60694bb3443638fd038e6de  gcc/testsuite/c-c++-common/gomp/Wparentheses-2.c
  87caf85546707f566688fc6b60a4d1e9  gcc/testsuite/c-c++-common/gomp/Wparentheses-3.c
  f2eeacd8e01fce5f98daff2393115250  gcc/testsuite/c-c++-common/gomp/Wparentheses-4.c
+ 613c9c963a791186529879c13f8d65f7  gcc/testsuite/c-c++-common/gomp/adjust-args-1.c
+ d8f3b317a2367cb4501c5836ef9b0229  gcc/testsuite/c-c++-common/gomp/adjust-args-2.c
+ 7dd6fe3faa873e77c71096d5649efa63  gcc/testsuite/c-c++-common/gomp/adjust-args-3.c
+ 9a25a612b46bc924570d0e7553997a55  gcc/testsuite/c-c++-common/gomp/adjust-args-4.c
+ b0bdd3295dc12d75c6de7a29c7b0eab9  gcc/testsuite/c-c++-common/gomp/adjust-args-5.c
+ 43cf0fb5b5dbd082ec114c90b24fc30d  gcc/testsuite/c-c++-common/gomp/adjust-args-6.c
  5cf6813317fa5ef169d543e63d45b26a  gcc/testsuite/c-c++-common/gomp/affinity-1.c
  d463344100a0478350affbdc29db0366  gcc/testsuite/c-c++-common/gomp/affinity-2.c
  2e8a942227251c348ea0e35322d0512a  gcc/testsuite/c-c++-common/gomp/affinity-3.c
*************** c8657190839fd03fa2c4693563039a48  gcc/te
*** 12335,12340 ****
--- 12850,12857 ----
  ef64f47f4dc535f39ca0972442dfcf03  gcc/testsuite/c-c++-common/gomp/allocate-15.c
  110530d5e42de42ab74246c1db026fdc  gcc/testsuite/c-c++-common/gomp/allocate-16.c
  100719568d4682b49e6b7ac32a6c6515  gcc/testsuite/c-c++-common/gomp/allocate-17.c
+ fd6a6a087da70dbd39bdfa12e6a8c7cd  gcc/testsuite/c-c++-common/gomp/allocate-18.c
+ a844bf6b78ba9a29d15147a46c7cf098  gcc/testsuite/c-c++-common/gomp/allocate-19.c
  67afa8e9a323740282252dc23a7b959a  gcc/testsuite/c-c++-common/gomp/allocate-2.c
  9caab435288f915f6d7fe59b84b443c9  gcc/testsuite/c-c++-common/gomp/allocate-3.c
  b5cc36629f2af04781e8aa71d6a7ae0b  gcc/testsuite/c-c++-common/gomp/allocate-4.c
*************** c3809265d6de98b36dec2fb830b674d2  gcc/te
*** 12342,12354 ****
  56edad2f1d021dddfe817eecd7e376e2  gcc/testsuite/c-c++-common/gomp/allocate-6.c
  97a0a45a85b1c1938d08e940a662893f  gcc/testsuite/c-c++-common/gomp/allocate-7.c
  bf250503034f83812c610e628563cbe4  gcc/testsuite/c-c++-common/gomp/allocate-8.c
! 83289d3e3741fa4cf5c6b2c699a058e7  gcc/testsuite/c-c++-common/gomp/allocate-9.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
! c878705d315f6cd6fedb47109f8a83c1  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
  32f71a409194e932942c40570b74b4c1  gcc/testsuite/c-c++-common/gomp/assume-4.c
  fe9e9de178a149d4be1130f4bb6a725d  gcc/testsuite/c-c++-common/gomp/assumes-1.c
! 6c5481b2ddc3b2b24b7dd5dfec7b0ccf  gcc/testsuite/c-c++-common/gomp/assumes-2.c
  1e08736ed2274dbfec7f233a154f1bff  gcc/testsuite/c-c++-common/gomp/assumes-3.c
  b51a1e730de3aa872bc687140549694a  gcc/testsuite/c-c++-common/gomp/assumes-4.c
  594f9585c33418a75a6d249f9f52a31b  gcc/testsuite/c-c++-common/gomp/atomic-1.c
--- 12859,12882 ----
  56edad2f1d021dddfe817eecd7e376e2  gcc/testsuite/c-c++-common/gomp/allocate-6.c
  97a0a45a85b1c1938d08e940a662893f  gcc/testsuite/c-c++-common/gomp/allocate-7.c
  bf250503034f83812c610e628563cbe4  gcc/testsuite/c-c++-common/gomp/allocate-8.c
! 125151998b6889fb0dfc50c1f14358f0  gcc/testsuite/c-c++-common/gomp/allocate-9.c
! e291bee8b82341e1a06d332295e2d5e9  gcc/testsuite/c-c++-common/gomp/append-args-1.c
! e16bf197f6a930becbbbe1bce63de40f  gcc/testsuite/c-c++-common/gomp/append-args-2.c
! c1dbdb5751cadbe8956356600fd42d66  gcc/testsuite/c-c++-common/gomp/append-args-3.c
! e39808d0669d6d4fed5b49529c91444a  gcc/testsuite/c-c++-common/gomp/append-args-4.c
! 4bcfc7f1a4d3cc89b7be16f11d5d6dc1  gcc/testsuite/c-c++-common/gomp/append-args-5.c
! 9c3f04a8a91e98833e1ecceafa627787  gcc/testsuite/c-c++-common/gomp/append-args-6.c
! fe6ba0d7acbbc77e0b1c41bbf1c0f42b  gcc/testsuite/c-c++-common/gomp/append-args-7.c
! 20a49d38890639c27d163eb1c9f667ef  gcc/testsuite/c-c++-common/gomp/append-args-8.c
! 7af93e549834027a59335d476b1472cf  gcc/testsuite/c-c++-common/gomp/append-args-9.c
! 47aa5a0d0666ea2f83eec37724fd9a0e  gcc/testsuite/c-c++-common/gomp/append-args-dynamic.c
! 03c0ab4f1537b1970c672419d7a6c113  gcc/testsuite/c-c++-common/gomp/append-args-interop.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
! c4d9ae6f751ee10992c2299294e7de45  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
  32f71a409194e932942c40570b74b4c1  gcc/testsuite/c-c++-common/gomp/assume-4.c
  fe9e9de178a149d4be1130f4bb6a725d  gcc/testsuite/c-c++-common/gomp/assumes-1.c
! 0afd97dba1a0807ea1f3a404c03ee37a  gcc/testsuite/c-c++-common/gomp/assumes-2.c
  1e08736ed2274dbfec7f233a154f1bff  gcc/testsuite/c-c++-common/gomp/assumes-3.c
  b51a1e730de3aa872bc687140549694a  gcc/testsuite/c-c++-common/gomp/assumes-4.c
  594f9585c33418a75a6d249f9f52a31b  gcc/testsuite/c-c++-common/gomp/atomic-1.c
*************** dcd88cf4442d15fe1ee6cf0c65bec7ba  gcc/te
*** 12383,12390 ****
  1b4f8527462b94e090104af54692febb  gcc/testsuite/c-c++-common/gomp/attrs-1.c
  44c94a36e22b6327b21381bcca1c494e  gcc/testsuite/c-c++-common/gomp/attrs-2.c
  b18e853bf462cafe38d3448d58a4e05c  gcc/testsuite/c-c++-common/gomp/attrs-3.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
! f1d749df456a0bcc8ff0fa28513835f3  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
  e60d9448f0f0bde479d4c59ba577deac  gcc/testsuite/c-c++-common/gomp/begin-assumes-4.c
  d9d369b57d2dd28df8efeb2f5ecc9a5f  gcc/testsuite/c-c++-common/gomp/begin-declare-target-1.c
--- 12911,12940 ----
  1b4f8527462b94e090104af54692febb  gcc/testsuite/c-c++-common/gomp/attrs-1.c
  44c94a36e22b6327b21381bcca1c494e  gcc/testsuite/c-c++-common/gomp/attrs-2.c
  b18e853bf462cafe38d3448d58a4e05c  gcc/testsuite/c-c++-common/gomp/attrs-3.c
+ 5f55dd34d269d2c286bae5200e580724  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-1.c
+ e7654509a8694bbd30fb1699591c8a0a  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c
+ 06796489f85a7823fc889bcf3314163b  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-3.c
+ 585d8f7a0b28941f42372f69b9fe2c54  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-4.c
+ 08ed3f839b805c729a22134e3facfc56  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-5.c
+ a7fd5b945698db9b1babd132533f2610  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-6.c
+ 51f16957d5e9241fe903983e153db16c  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-7.c
+ 64f674fd14d4f405b6924bf279681010  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-8.c
+ f5f9cd08befce65860255ab484df2c00  gcc/testsuite/c-c++-common/gomp/attrs-tile-1.c
+ 39c1d1dd8bbf60b694efb0f66e3e7aa6  gcc/testsuite/c-c++-common/gomp/attrs-tile-2.c
+ d9eb61a66b36f7dd001d983593880831  gcc/testsuite/c-c++-common/gomp/attrs-tile-3.c
+ e5b9f0c9cef22472b2a493f1ed2cc4d1  gcc/testsuite/c-c++-common/gomp/attrs-tile-4.c
+ e5b67272239d1a3a9f31236927ce5a9b  gcc/testsuite/c-c++-common/gomp/attrs-tile-5.c
+ 096d44c7bdf8328e1463d76316b660d3  gcc/testsuite/c-c++-common/gomp/attrs-tile-6.c
+ cbaf448d2a20cb311d72f3d8529dd02a  gcc/testsuite/c-c++-common/gomp/attrs-unroll-1.c
+ 2689b414f27b9008f9e0e5b869a7e6a0  gcc/testsuite/c-c++-common/gomp/attrs-unroll-2.c
+ 800074900496e66d74a503dd01db7f66  gcc/testsuite/c-c++-common/gomp/attrs-unroll-3.c
+ 150ba275e084b8fc0ca2a95bdc3546d9  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-1.c
+ b557e6a99583d6053901e1a1297f7494  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-2.c
+ cd3281c05e299a8561bdd4a54afc4344  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-3.c
+ da9e724ebf1cfa046b19721a8b466bb9  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-4.c
+ 5106705e54d915caa043f36d2a6bd90e  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-5.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
! 36d818158bc403b8ef74ae4680093f12  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
  e60d9448f0f0bde479d4c59ba577deac  gcc/testsuite/c-c++-common/gomp/begin-assumes-4.c
  d9d369b57d2dd28df8efeb2f5ecc9a5f  gcc/testsuite/c-c++-common/gomp/begin-declare-target-1.c
*************** c736b176de0876f0cfa7bf6da1edba17  gcc/te
*** 12393,12399 ****
  aa6f51f0ce9ba32480d8b3eddf2e9835  gcc/testsuite/c-c++-common/gomp/begin-declare-target-4.c
  9f730a41da1e4dad0ab17382046a6c23  gcc/testsuite/c-c++-common/gomp/cancel-1.c
  192802715f9a6395e2ccf6ce992c4fee  gcc/testsuite/c-c++-common/gomp/cancel-2.c
! 6f9b225fe1cf719440accba12db2e1a4  gcc/testsuite/c-c++-common/gomp/clause-dups-1.c
  2d100a7efc7458044156ec5ce1b62589  gcc/testsuite/c-c++-common/gomp/clauses-1.c
  d5ffe3929242394b820f074d90b6869f  gcc/testsuite/c-c++-common/gomp/clauses-2.c
  7c761956c0dbf5422d50dece221c9a7f  gcc/testsuite/c-c++-common/gomp/clauses-3.c
--- 12943,12949 ----
  aa6f51f0ce9ba32480d8b3eddf2e9835  gcc/testsuite/c-c++-common/gomp/begin-declare-target-4.c
  9f730a41da1e4dad0ab17382046a6c23  gcc/testsuite/c-c++-common/gomp/cancel-1.c
  192802715f9a6395e2ccf6ce992c4fee  gcc/testsuite/c-c++-common/gomp/cancel-2.c
! ee83cd40d850bc850078e5cf2123b989  gcc/testsuite/c-c++-common/gomp/clause-dups-1.c
  2d100a7efc7458044156ec5ce1b62589  gcc/testsuite/c-c++-common/gomp/clauses-1.c
  d5ffe3929242394b820f074d90b6869f  gcc/testsuite/c-c++-common/gomp/clauses-2.c
  7c761956c0dbf5422d50dece221c9a7f  gcc/testsuite/c-c++-common/gomp/clauses-3.c
*************** bd8b4a8c817f542091fc2d7fded4917a  gcc/te
*** 12413,12433 ****
  a5fd6a4672c9f8415dc9097c3c6acb93  gcc/testsuite/c-c++-common/gomp/declare-target-6.c
  e6d2454095aaf222d75e92fdee506c6e  gcc/testsuite/c-c++-common/gomp/declare-target-7.c
  e38166dd368208c4e65636e5cde6a72b  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-1.c
! e2fb5766584afa5643717362c099037f  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-2.c
! 467befcc9cdf579a3a13897bcf468fd4  gcc/testsuite/c-c++-common/gomp/declare-variant-1.c
! 7f5d7596767c4d11ea513a12caaa9677  gcc/testsuite/c-c++-common/gomp/declare-variant-10.c
  51e43bef12ddebee2151356a6379e207  gcc/testsuite/c-c++-common/gomp/declare-variant-11.c
! a5afca905d34b587b6fd9cf5feeb7b84  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
! 75564d16588312df035165e1f86306ff  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
! 7b7501dcb6205855eeb2eaddad1092d0  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! 9b06e0d2f88ee9fd38146a8320771c3d  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
! 94f924cd613b79f5f8ab07c38cc88b01  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
  31ff49ea5267f602dfb4b11b7b086584  gcc/testsuite/c-c++-common/gomp/declare-variant-6.c
  d029e5eb6faefe6ca785e1b9e12615d3  gcc/testsuite/c-c++-common/gomp/declare-variant-7.c
! ec57ddf60230099a4e71566afe991826  gcc/testsuite/c-c++-common/gomp/declare-variant-8.c
! 97b1f9bfd5c062c5e04176f9ca2486bd  gcc/testsuite/c-c++-common/gomp/declare-variant-9.c
  46626ca4a4cc96a492c7dfc61c291105  gcc/testsuite/c-c++-common/gomp/declare-variant-no-score.c
  0dbf545a4d885c579a6fa72fe4bf8332  gcc/testsuite/c-c++-common/gomp/default-1.c
  5fb2c1ff7f22a7db37e361c51d486872  gcc/testsuite/c-c++-common/gomp/default-2.c
--- 12963,12989 ----
  a5fd6a4672c9f8415dc9097c3c6acb93  gcc/testsuite/c-c++-common/gomp/declare-target-6.c
  e6d2454095aaf222d75e92fdee506c6e  gcc/testsuite/c-c++-common/gomp/declare-target-7.c
  e38166dd368208c4e65636e5cde6a72b  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-1.c
! 53c88933585712758c03a3ca25b828a7  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-2.c
! 603720a33d4bc86371ea0cca28dc76fe  gcc/testsuite/c-c++-common/gomp/declare-variant-1.c
! cb1823c24b3132640f493855244a27f1  gcc/testsuite/c-c++-common/gomp/declare-variant-10.c
  51e43bef12ddebee2151356a6379e207  gcc/testsuite/c-c++-common/gomp/declare-variant-11.c
! 088dc5cb2525b333a6e4b9edd63428ed  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
! 3426413eb6163ee2d46f83ece16a0bc4  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
! 8201a9ce72c161a5bd2784541f8201fa  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! be3f4339fea492cffacf01dd16b4b719  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
! 5783ceed28bdb2e1617af49be1fe4d1d  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
  31ff49ea5267f602dfb4b11b7b086584  gcc/testsuite/c-c++-common/gomp/declare-variant-6.c
  d029e5eb6faefe6ca785e1b9e12615d3  gcc/testsuite/c-c++-common/gomp/declare-variant-7.c
! 22511c9b51ce57c09ad266eab6197162  gcc/testsuite/c-c++-common/gomp/declare-variant-8.c
! 10f2a69383227b55e5c061877d9c3967  gcc/testsuite/c-c++-common/gomp/declare-variant-9.c
! a364b48f0f83ef6701ae70702ba4a122  gcc/testsuite/c-c++-common/gomp/declare-variant-any.c
! 827ea42c0a089134c6e7be212bdb1d45  gcc/testsuite/c-c++-common/gomp/declare-variant-arg-exprs.c
! f7aedbd506bde76ade75ca6704844360  gcc/testsuite/c-c++-common/gomp/declare-variant-dup-match-clause.c
! a989cd00d523d7eb4cc18db2af6030ac  gcc/testsuite/c-c++-common/gomp/declare-variant-duplicates.c
! a43075bfd5e3a19a46ccc11ca1bf4aaa  gcc/testsuite/c-c++-common/gomp/declare-variant-dynamic-1.c
! 56fd7d879d91224acd33dbfed464a855  gcc/testsuite/c-c++-common/gomp/declare-variant-dynamic-2.c
  46626ca4a4cc96a492c7dfc61c291105  gcc/testsuite/c-c++-common/gomp/declare-variant-no-score.c
  0dbf545a4d885c579a6fa72fe4bf8332  gcc/testsuite/c-c++-common/gomp/default-1.c
  5fb2c1ff7f22a7db37e361c51d486872  gcc/testsuite/c-c++-common/gomp/default-2.c
*************** ec57ddf60230099a4e71566afe991826  gcc/te
*** 12435,12442 ****
  210213fef63c2c9f7b4d77ee3540dfd2  gcc/testsuite/c-c++-common/gomp/defaultmap-1.c
  cfe9ce2bee6dfde91d715b2c34a5a896  gcc/testsuite/c-c++-common/gomp/defaultmap-2.c
  5ccd214a0e6437b9a7e3a44ab4d50f74  gcc/testsuite/c-c++-common/gomp/defaultmap-3.c
! 5ccc4786543cb25ceec46edfc609f8a9  gcc/testsuite/c-c++-common/gomp/defaultmap-4.c
! 9f88ffe669afbd71ca43cd0f7944419d  gcc/testsuite/c-c++-common/gomp/defaultmap-5.c
  e89b36d077224fe9d4b4e2b0fb8a6240  gcc/testsuite/c-c++-common/gomp/defaultmap-6.c
  066630abcddd44ac2372567273262326  gcc/testsuite/c-c++-common/gomp/depend-1.c
  4a1085d5478dc95bc2936ae4c0e4c7fd  gcc/testsuite/c-c++-common/gomp/depend-2.c
--- 12991,12998 ----
  210213fef63c2c9f7b4d77ee3540dfd2  gcc/testsuite/c-c++-common/gomp/defaultmap-1.c
  cfe9ce2bee6dfde91d715b2c34a5a896  gcc/testsuite/c-c++-common/gomp/defaultmap-2.c
  5ccd214a0e6437b9a7e3a44ab4d50f74  gcc/testsuite/c-c++-common/gomp/defaultmap-3.c
! 2360d693f87ad48a1fb38a5739f3af5e  gcc/testsuite/c-c++-common/gomp/defaultmap-4.c
! 8ed0886cc8f102288f0fc679b04d8c13  gcc/testsuite/c-c++-common/gomp/defaultmap-5.c
  e89b36d077224fe9d4b4e2b0fb8a6240  gcc/testsuite/c-c++-common/gomp/defaultmap-6.c
  066630abcddd44ac2372567273262326  gcc/testsuite/c-c++-common/gomp/depend-1.c
  4a1085d5478dc95bc2936ae4c0e4c7fd  gcc/testsuite/c-c++-common/gomp/depend-2.c
*************** e89b36d077224fe9d4b4e2b0fb8a6240  gcc/te
*** 12450,12455 ****
--- 13006,13023 ----
  b0614882466e367a20795bf8a724df2a  gcc/testsuite/c-c++-common/gomp/depobj-2.c
  2a1fa5f3e1fe8821515948afb685410b  gcc/testsuite/c-c++-common/gomp/depobj-3.c
  b7a7c883420d18bb6bc689577f080949  gcc/testsuite/c-c++-common/gomp/directive-1.c
+ 9668dafdb6fe222d3cf39e637e5377a8  gcc/testsuite/c-c++-common/gomp/dispatch-1.c
+ ae148a523d43d09e8a93c84e90b05c6c  gcc/testsuite/c-c++-common/gomp/dispatch-10.c
+ 981f90796aa7d4ddd9bf1feb2b6708bd  gcc/testsuite/c-c++-common/gomp/dispatch-11.c
+ e4748656b58f157334ae92549959c36f  gcc/testsuite/c-c++-common/gomp/dispatch-12.c
+ 67a7d18f8e41785fa1aa1321472730b5  gcc/testsuite/c-c++-common/gomp/dispatch-2.c
+ 300b7fb6eb3c1e4344ee28d65a0152f6  gcc/testsuite/c-c++-common/gomp/dispatch-3.c
+ 76dfbdd42018ccd788c6009d9aff91c5  gcc/testsuite/c-c++-common/gomp/dispatch-4.c
+ a226cffa1831fc0ce3e0c1c6e4f6880f  gcc/testsuite/c-c++-common/gomp/dispatch-5.c
+ 2a5dabe915f337b1b99924bf87e98e8f  gcc/testsuite/c-c++-common/gomp/dispatch-6.c
+ cc9e08334390e8c0b03ad99be1fea99d  gcc/testsuite/c-c++-common/gomp/dispatch-7.c
+ 61c50fa564e7da6b2d379762a433dbac  gcc/testsuite/c-c++-common/gomp/dispatch-8.c
+ d81d06c178f40f2114e1b6d432699f5b  gcc/testsuite/c-c++-common/gomp/dispatch-9.c
  389475c8477c859e20aa20be1676dbd0  gcc/testsuite/c-c++-common/gomp/distribute-1.c
  f10bae63863004428ff4b3fbefab335e  gcc/testsuite/c-c++-common/gomp/doacross-1.c
  516128133174c1939bd4cf36e469fb51  gcc/testsuite/c-c++-common/gomp/doacross-2.c
*************** b9f70a44108d3410396c88c5623b3919  gcc/te
*** 12477,12483 ****
  1a907f0d46c82ea2b68fa098d75a6865  gcc/testsuite/c-c++-common/gomp/if-2.c
  71d3b22e0e174e813b323afe92d6f310  gcc/testsuite/c-c++-common/gomp/if-3.c
  5281fe81b3f419fc33159d07429ef65b  gcc/testsuite/c-c++-common/gomp/if-4.c
! 71a3d1d8ffb1d128dd69ad7315575a5c  gcc/testsuite/c-c++-common/gomp/imperfect-attributes.c
  7637f96836b251691c5f33ea2faebdf7  gcc/testsuite/c-c++-common/gomp/imperfect-badloops.c
  080c7cc4432de5c6525ba1ca7a7ed255  gcc/testsuite/c-c++-common/gomp/imperfect-blocks.c
  97c5e0d13b337e6b5751bc18bb4b578b  gcc/testsuite/c-c++-common/gomp/imperfect-extension.c
--- 13045,13051 ----
  1a907f0d46c82ea2b68fa098d75a6865  gcc/testsuite/c-c++-common/gomp/if-2.c
  71d3b22e0e174e813b323afe92d6f310  gcc/testsuite/c-c++-common/gomp/if-3.c
  5281fe81b3f419fc33159d07429ef65b  gcc/testsuite/c-c++-common/gomp/if-4.c
! dd93356c6a9e814687e7a9ec0a03bac7  gcc/testsuite/c-c++-common/gomp/imperfect-attributes.c
  7637f96836b251691c5f33ea2faebdf7  gcc/testsuite/c-c++-common/gomp/imperfect-badloops.c
  080c7cc4432de5c6525ba1ca7a7ed255  gcc/testsuite/c-c++-common/gomp/imperfect-blocks.c
  97c5e0d13b337e6b5751bc18bb4b578b  gcc/testsuite/c-c++-common/gomp/imperfect-extension.c
*************** f1e2872c9870ff3696c124d6645f86df  gcc/te
*** 12485,12497 ****
  0c800b454453bcd0126ecb121f958a3a  gcc/testsuite/c-c++-common/gomp/imperfect-invalid-scope.c
  932adbfb1888fd48d07105139df52082  gcc/testsuite/c-c++-common/gomp/imperfect-labels.c
  ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
  eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
  9b2ae27bbb773d4939edc6ab477ba48d  gcc/testsuite/c-c++-common/gomp/imperfect1.c
  0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
  f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
  537c89654e06278ee903e85a854f5cc5  gcc/testsuite/c-c++-common/gomp/imperfect4.c
  518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
! 2247fde132c8bd3e6a2897e3580872aa  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-1.c
  7a41e9c11639ccee3155f9ff2b1bc60d  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-2.c
  61a5cf3348b2df91e9c5c6dda0024e27  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-3.c
  d173a4359da95b48c8d051a752a820ad  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-4.c
--- 13053,13071 ----
  0c800b454453bcd0126ecb121f958a3a  gcc/testsuite/c-c++-common/gomp/imperfect-invalid-scope.c
  932adbfb1888fd48d07105139df52082  gcc/testsuite/c-c++-common/gomp/imperfect-labels.c
  ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
+ 1c4197447b9674fb1e39072ef393bbc2  gcc/testsuite/c-c++-common/gomp/imperfect-loop-nest.c
  eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
  9b2ae27bbb773d4939edc6ab477ba48d  gcc/testsuite/c-c++-common/gomp/imperfect1.c
  0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
  f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
  537c89654e06278ee903e85a854f5cc5  gcc/testsuite/c-c++-common/gomp/imperfect4.c
  518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
! 34fe8adccacf3cb878c5dc72708a48f9  gcc/testsuite/c-c++-common/gomp/interop-1.c
! 0765b8f778e0167a47937ba5c8c49a9c  gcc/testsuite/c-c++-common/gomp/interop-2.c
! 1347bc0b5f0252435543b1ef2da0c386  gcc/testsuite/c-c++-common/gomp/interop-3.c
! 34a3fc2b7dbdb8a1ee4dad9dc23f38e7  gcc/testsuite/c-c++-common/gomp/interop-4.c
! 4bbc494bd1264803a666067325660a6d  gcc/testsuite/c-c++-common/gomp/interop-5.c
! 93b2a9f91547c3de9e4634da1ae54b2d  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-1.c
  7a41e9c11639ccee3155f9ff2b1bc60d  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-2.c
  61a5cf3348b2df91e9c5c6dda0024e27  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-3.c
  d173a4359da95b48c8d051a752a820ad  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-4.c
*************** cfaa12085558b78e5edbdb4a338479d2  gcc/te
*** 12527,12532 ****
--- 13101,13119 ----
  6e3cc2570637ae982148840ff511645f  gcc/testsuite/c-c++-common/gomp/masked-combined-2.c
  3b2e33f5ff6d1fab628bbc47b669bb42  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
  8fdb590ce90d1a3c558de7dc81a38d89  gcc/testsuite/c-c++-common/gomp/master-combined-2.c
+ 12e47fbbab05145794b374e5016428d4  gcc/testsuite/c-c++-common/gomp/metadirective-1.c
+ c45748d5db81ae8afdbd43b3671480a6  gcc/testsuite/c-c++-common/gomp/metadirective-2.c
+ ab7f63684f93bf69666a570da6e4bc5e  gcc/testsuite/c-c++-common/gomp/metadirective-3.c
+ c4c693d3bd497dda156e8c80f281ec9f  gcc/testsuite/c-c++-common/gomp/metadirective-4.c
+ 41fd3da8d6c55ec28cc82c985ac26db9  gcc/testsuite/c-c++-common/gomp/metadirective-5.c
+ 73bada7c7787403df92d2dfc87280580  gcc/testsuite/c-c++-common/gomp/metadirective-6.c
+ 7b22de52752aa4a8856fe8647b82149d  gcc/testsuite/c-c++-common/gomp/metadirective-7.c
+ c567b86bb1126d3b39271713b71a2141  gcc/testsuite/c-c++-common/gomp/metadirective-8.c
+ cc1a17af4b834e9dce3121d7b1504e85  gcc/testsuite/c-c++-common/gomp/metadirective-construct.c
+ bfe7bd722a9814c4e3724c6c94b3bdc4  gcc/testsuite/c-c++-common/gomp/metadirective-device.c
+ 6b4e94542efc1bd9b8aeafa5fe783d4d  gcc/testsuite/c-c++-common/gomp/metadirective-no-score.c
+ 69c97abaf5f460360c59b85da779c004  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-1.c
+ 19d35171b50642272e61c9f69291eca9  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-2.c
  6fa2115821b7e05f4b4772c894f7cf12  gcc/testsuite/c-c++-common/gomp/nesting-1.c
  499237904b7c8cb28bc8640600ad73ce  gcc/testsuite/c-c++-common/gomp/nesting-2.c
  406abd50996addc0929156835a0b5686  gcc/testsuite/c-c++-common/gomp/nesting-warn-1.c
*************** e8952d612b22320252f24d04beb2a8c4  gcc/te
*** 12548,12553 ****
--- 13135,13141 ----
  ef86bb29dfbea0543e8ca02ce440c823  gcc/testsuite/c-c++-common/gomp/ordered-2.c
  434dac8d4b0c3eac54e134c566fc150e  gcc/testsuite/c-c++-common/gomp/ordered-3.c
  5e682cf26c41baf2449ab35ba5792ab9  gcc/testsuite/c-c++-common/gomp/ordered-4.c
+ 6de5cc795b03e66607152e78a7e74075  gcc/testsuite/c-c++-common/gomp/ordered-5.c
  7c7abae5700e726f7de5bd56574429f5  gcc/testsuite/c-c++-common/gomp/pr100450.c
  6d544b90b3bb63262065e084cddafc04  gcc/testsuite/c-c++-common/gomp/pr100902-1.c
  345ac275dfe65e2e8ba683d2c389ebc3  gcc/testsuite/c-c++-common/gomp/pr101535-1.c
*************** b3c3fe5a4ecc31231711cb240274d62c  gcc/te
*** 12555,12567 ****
  5d5843e74a197943e19c270c43a913e1  gcc/testsuite/c-c++-common/gomp/pr102431.c
  6c331d01569cfa98850571463b5b3cc7  gcc/testsuite/c-c++-common/gomp/pr102432.c
  ef8ec3320ae234be32fcdfc5379eaca2  gcc/testsuite/c-c++-common/gomp/pr102640.c
! 1135dbe7e40a4ceef1023a659000a164  gcc/testsuite/c-c++-common/gomp/pr103642.c
  0e59133481fb703cb575967bddb0ce8e  gcc/testsuite/c-c++-common/gomp/pr103705.c
  0cff3c6576e6db18b71f25c5da8bcbb0  gcc/testsuite/c-c++-common/gomp/pr104968.c
  20a09a854dcd3ce8ca6f7a9db64d35cc  gcc/testsuite/c-c++-common/gomp/pr106836.c
  1164bc26f7382179d1bd6b607af1d336  gcc/testsuite/c-c++-common/gomp/pr106981.c
  8f995161beda01326e712ba172a760f8  gcc/testsuite/c-c++-common/gomp/pr107001.c
  9b182f81cba9d60fb2cbbde45ceae582  gcc/testsuite/c-c++-common/gomp/pr108244-3.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
--- 13143,13160 ----
  5d5843e74a197943e19c270c43a913e1  gcc/testsuite/c-c++-common/gomp/pr102431.c
  6c331d01569cfa98850571463b5b3cc7  gcc/testsuite/c-c++-common/gomp/pr102432.c
  ef8ec3320ae234be32fcdfc5379eaca2  gcc/testsuite/c-c++-common/gomp/pr102640.c
! 09ab6c8f069be5f939d30b02bdac7a35  gcc/testsuite/c-c++-common/gomp/pr103642.c
  0e59133481fb703cb575967bddb0ce8e  gcc/testsuite/c-c++-common/gomp/pr103705.c
  0cff3c6576e6db18b71f25c5da8bcbb0  gcc/testsuite/c-c++-common/gomp/pr104968.c
  20a09a854dcd3ce8ca6f7a9db64d35cc  gcc/testsuite/c-c++-common/gomp/pr106836.c
  1164bc26f7382179d1bd6b607af1d336  gcc/testsuite/c-c++-common/gomp/pr106981.c
  8f995161beda01326e712ba172a760f8  gcc/testsuite/c-c++-common/gomp/pr107001.c
  9b182f81cba9d60fb2cbbde45ceae582  gcc/testsuite/c-c++-common/gomp/pr108244-3.c
+ 80b170be7a344fbbe661e68535fc79c5  gcc/testsuite/c-c++-common/gomp/pr118579.c
+ e8f7b694ebd3603789b6992bc816222d  gcc/testsuite/c-c++-common/gomp/pr118639.c
+ d29126c43ce63e6c41ed6130742b15e2  gcc/testsuite/c-c++-common/gomp/pr118965-1.c
+ 424bcc14d1a0bf87f576aafc485996e9  gcc/testsuite/c-c++-common/gomp/pr118965-2.c
+ c83ce004951a9a0719e190f7457302c7  gcc/testsuite/c-c++-common/gomp/pr119000.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** aae6611cdfa9d295d22870f8c9222f69  gcc/te
*** 12584,12590 ****
  83d8f65d36e02aa02588d7b997bdd269  gcc/testsuite/c-c++-common/gomp/pr60823-4.c
  1610228a9a46a0984cc32fd91d652f9f  gcc/testsuite/c-c++-common/gomp/pr61200.c
  5a77df631a4cbd5ca518a8d11dea1c5c  gcc/testsuite/c-c++-common/gomp/pr61486-1.c
! 28934043880a72198ba5007df167aaf6  gcc/testsuite/c-c++-common/gomp/pr61486-2.c
  2b6ae32069c2763c6ff2b173604cf38c  gcc/testsuite/c-c++-common/gomp/pr63249.c
  301fa510c5c9466fd8fc36226349fc5e  gcc/testsuite/c-c++-common/gomp/pr63326.c
  8c7b7ac1e0fde7a3111b8d330d0914d2  gcc/testsuite/c-c++-common/gomp/pr63328.c
--- 13177,13183 ----
  83d8f65d36e02aa02588d7b997bdd269  gcc/testsuite/c-c++-common/gomp/pr60823-4.c
  1610228a9a46a0984cc32fd91d652f9f  gcc/testsuite/c-c++-common/gomp/pr61200.c
  5a77df631a4cbd5ca518a8d11dea1c5c  gcc/testsuite/c-c++-common/gomp/pr61486-1.c
! a0bcd73ece188f59d460802714ee5067  gcc/testsuite/c-c++-common/gomp/pr61486-2.c
  2b6ae32069c2763c6ff2b173604cf38c  gcc/testsuite/c-c++-common/gomp/pr63249.c
  301fa510c5c9466fd8fc36226349fc5e  gcc/testsuite/c-c++-common/gomp/pr63326.c
  8c7b7ac1e0fde7a3111b8d330d0914d2  gcc/testsuite/c-c++-common/gomp/pr63328.c
*************** a5ab254ee603749ef9330558229e6163  gcc/te
*** 12660,12680 ****
  857f55ab743945a521e3287d1b905b4b  gcc/testsuite/c-c++-common/gomp/reduction-task-1.c
  640bf7069a4c648fde61378b5eae80c8  gcc/testsuite/c-c++-common/gomp/reduction-task-2.c
  6bfb4e8e6e1307990ff6a4535855f6b7  gcc/testsuite/c-c++-common/gomp/reduction-task-3.c
! 510098e898a0bf706702fa24a48e71ac  gcc/testsuite/c-c++-common/gomp/requires-1.c
! 402906410edb43bb1d0515698684f3a6  gcc/testsuite/c-c++-common/gomp/requires-2.c
  dfbc6aca5075a4a318647a3d657b2dd1  gcc/testsuite/c-c++-common/gomp/requires-3.c
! 53176dd60a6d44d8f4bf1f5094f1c246  gcc/testsuite/c-c++-common/gomp/requires-4.c
  207705a65b2e008941a3d3976de7e240  gcc/testsuite/c-c++-common/gomp/requires-5.c
  138b4d3ae4b945a10af58bf56191dc98  gcc/testsuite/c-c++-common/gomp/requires-6.c
  931b4332bd990faa5b9aab4a228ff1f0  gcc/testsuite/c-c++-common/gomp/requires-7.c
  51ad5d5dea3fc1a8b4058a688095449f  gcc/testsuite/c-c++-common/gomp/requires-8.c
! d16b51ef608a08574df6100908654ce0  gcc/testsuite/c-c++-common/gomp/reverse-offload-1.c
  d2b914e7da7d449d03bc2fd5a17d4ac9  gcc/testsuite/c-c++-common/gomp/scan-1.c
  3fb5b28574137ba1aa754466a8ea9a57  gcc/testsuite/c-c++-common/gomp/scan-2.c
  9f76c491a629f3bbd470f28c269ef485  gcc/testsuite/c-c++-common/gomp/scan-3.c
  640bcd6f5cf5af442783c7dc5ad52d3b  gcc/testsuite/c-c++-common/gomp/scan-4.c
  e413f648ce33386781b2b3e3e93cb96b  gcc/testsuite/c-c++-common/gomp/scan-5.c
  4715bbfc6161c4d45a18bbfad6b8d4db  gcc/testsuite/c-c++-common/gomp/scan-6.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
  22fba04602b98c0a4fd88b5b47d5ffee  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  5924e1e32a4e62ad7e1324d01a4ed89e  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-2.c
--- 13253,13274 ----
  857f55ab743945a521e3287d1b905b4b  gcc/testsuite/c-c++-common/gomp/reduction-task-1.c
  640bf7069a4c648fde61378b5eae80c8  gcc/testsuite/c-c++-common/gomp/reduction-task-2.c
  6bfb4e8e6e1307990ff6a4535855f6b7  gcc/testsuite/c-c++-common/gomp/reduction-task-3.c
! 23f0dcf3247f49f9a56d05a4d501d710  gcc/testsuite/c-c++-common/gomp/requires-1.c
! f0cd1ec3aee2299c71240e306f32c183  gcc/testsuite/c-c++-common/gomp/requires-2.c
  dfbc6aca5075a4a318647a3d657b2dd1  gcc/testsuite/c-c++-common/gomp/requires-3.c
! cbab216a8de36785197d4e800a979308  gcc/testsuite/c-c++-common/gomp/requires-4.c
  207705a65b2e008941a3d3976de7e240  gcc/testsuite/c-c++-common/gomp/requires-5.c
  138b4d3ae4b945a10af58bf56191dc98  gcc/testsuite/c-c++-common/gomp/requires-6.c
  931b4332bd990faa5b9aab4a228ff1f0  gcc/testsuite/c-c++-common/gomp/requires-7.c
  51ad5d5dea3fc1a8b4058a688095449f  gcc/testsuite/c-c++-common/gomp/requires-8.c
! fe0a74c5903b31208f01a6cf910a26c4  gcc/testsuite/c-c++-common/gomp/reverse-offload-1.c
  d2b914e7da7d449d03bc2fd5a17d4ac9  gcc/testsuite/c-c++-common/gomp/scan-1.c
  3fb5b28574137ba1aa754466a8ea9a57  gcc/testsuite/c-c++-common/gomp/scan-2.c
  9f76c491a629f3bbd470f28c269ef485  gcc/testsuite/c-c++-common/gomp/scan-3.c
  640bcd6f5cf5af442783c7dc5ad52d3b  gcc/testsuite/c-c++-common/gomp/scan-4.c
  e413f648ce33386781b2b3e3e93cb96b  gcc/testsuite/c-c++-common/gomp/scan-5.c
  4715bbfc6161c4d45a18bbfad6b8d4db  gcc/testsuite/c-c++-common/gomp/scan-6.c
+ 3a5155fae66616b98d3623c835195084  gcc/testsuite/c-c++-common/gomp/scan-7.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
  22fba04602b98c0a4fd88b5b47d5ffee  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  5924e1e32a4e62ad7e1324d01a4ed89e  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-2.c
*************** ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/te
*** 12715,12722 ****
  fdab044e4591c867dbff7d0f2a10a3d4  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  5ffcda40553abef98cacdff0ec06eea2  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
! d84886ef1e121f255fa075c6838ac885  gcc/testsuite/c-c++-common/gomp/target-implicit-map-1.c
! e62da91076a6f8670065d179ab37a9cf  gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
  add511064b968c5d11ab265fa90ad3bc  gcc/testsuite/c-c++-common/gomp/target-in-reduction-1.c
  1a46b3c3357de4a3d24943d0266026f3  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-1.c
  2cfdfdc278ef7c85c5e2ad7e2f1e95be  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-2.c
--- 13309,13316 ----
  fdab044e4591c867dbff7d0f2a10a3d4  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  5ffcda40553abef98cacdff0ec06eea2  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
! 9595c5abb9f5235642349714ba09d690  gcc/testsuite/c-c++-common/gomp/target-implicit-map-1.c
! 1d0d0d7d469cd53fe7b42b2d73a87efb  gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
  add511064b968c5d11ab265fa90ad3bc  gcc/testsuite/c-c++-common/gomp/target-in-reduction-1.c
  1a46b3c3357de4a3d24943d0266026f3  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-1.c
  2cfdfdc278ef7c85c5e2ad7e2f1e95be  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-2.c
*************** bd7a4a612b8188086bf0650fb29a279a  gcc/te
*** 12731,12737 ****
--- 13325,13362 ----
  539c731e3f7fd40b1bf0432a8a02c04f  gcc/testsuite/c-c++-common/gomp/teams-1.c
  3020e821377ef557f546cba8a78f1192  gcc/testsuite/c-c++-common/gomp/teams-2.c
  3f5e45489b8b980cc7ab48dc63fd1c6d  gcc/testsuite/c-c++-common/gomp/teams-3.c
+ 4cf9cfae5e8904faa465b43d9e33100f  gcc/testsuite/c-c++-common/gomp/tile-1.c
+ 0aef92e98c2de136f1fd63b6c7d7efb6  gcc/testsuite/c-c++-common/gomp/tile-10.c
+ 53424a9b24dcbe5434a3b2201d40eca0  gcc/testsuite/c-c++-common/gomp/tile-11.c
+ 007253d5827e5607b3e27e5d0e327dec  gcc/testsuite/c-c++-common/gomp/tile-12.c
+ 2682a718fcd0fa7aa4c505a2cd561419  gcc/testsuite/c-c++-common/gomp/tile-13.c
+ 654f5dc085fbaae173ad4f9854513e6c  gcc/testsuite/c-c++-common/gomp/tile-14.c
+ 4531376f79c112baffb008bfb6ae2ef7  gcc/testsuite/c-c++-common/gomp/tile-15.c
+ 074ad2e2425cef659546a01d980a120f  gcc/testsuite/c-c++-common/gomp/tile-2.c
+ 1a194e12279aded705cb321186eeb1c4  gcc/testsuite/c-c++-common/gomp/tile-3.c
+ 9fa7bd8764a5f4c7d7e80554120ce625  gcc/testsuite/c-c++-common/gomp/tile-4.c
+ 3265692357713b9dfc644db8b9dd4c91  gcc/testsuite/c-c++-common/gomp/tile-5.c
+ 3c60e389fe24c3b11d72d7f41cd9e549  gcc/testsuite/c-c++-common/gomp/tile-6.c
+ 5694eef348aff69292fa5f79290da1ba  gcc/testsuite/c-c++-common/gomp/tile-7.c
+ fdfbe8906693ec0c345cb1dca51640ec  gcc/testsuite/c-c++-common/gomp/tile-8.c
+ 1dd73ecaa600bb24b0b817e90799b5a4  gcc/testsuite/c-c++-common/gomp/tile-9.c
  5e0762ad9f0a708e2bb91ebe98e91915  gcc/testsuite/c-c++-common/gomp/udr-1.c
+ f31e71f07c28912988607bd4d9784cab  gcc/testsuite/c-c++-common/gomp/unroll-1.c
+ df09c8d96912865e3c70aa803cb13081  gcc/testsuite/c-c++-common/gomp/unroll-2.c
+ fddd4060c5bd661e1069f70a757050f7  gcc/testsuite/c-c++-common/gomp/unroll-3.c
+ 5ed30a93efab30e781736d41ac1077c1  gcc/testsuite/c-c++-common/gomp/unroll-4.c
+ 85da897b461dfb251c5c9a2947d611b8  gcc/testsuite/c-c++-common/gomp/unroll-5.c
+ a7d73fd7fd80923edf3548de6f4d5838  gcc/testsuite/c-c++-common/gomp/unroll-6.c
+ 2b200594ca295b7813ddf99613dc6df5  gcc/testsuite/c-c++-common/gomp/unroll-7.c
+ 56ac59af48f80996e8f7f885da00d67c  gcc/testsuite/c-c++-common/gomp/unroll-8.c
+ 89ffa5311ec23698ac7ee48dba933fc6  gcc/testsuite/c-c++-common/gomp/unroll-9.c
+ dbc9807bc9d36dca6cbe7c26bce4a0fd  gcc/testsuite/c-c++-common/gomp/unroll-inner-1.c
+ 30ef53f39d8153283c8f72260cc5c818  gcc/testsuite/c-c++-common/gomp/unroll-inner-2.c
+ 00293fd71984e25494a9f2659c2324e9  gcc/testsuite/c-c++-common/gomp/unroll-inner-3.c
+ 06bf05afb459d5e836e3788c05a5a92c  gcc/testsuite/c-c++-common/gomp/unroll-non-rect-1.c
+ b36b586a036a4dd648a9a73563a1397e  gcc/testsuite/c-c++-common/gomp/unroll-non-rect-2.c
+ ac892fefdc113f9fa56af5822c49d8a0  gcc/testsuite/c-c++-common/gomp/unroll-non-rect-3.c
+ f0fe4ca6700d6810bdfbe42f7a328581  gcc/testsuite/c-c++-common/gomp/unroll-simd-1.c
  ae581c139df3ad068476c3c0011b10df  gcc/testsuite/c-c++-common/guality/Og-dce-1.c
  77dfce37c98a7f3ba9475b987b487300  gcc/testsuite/c-c++-common/guality/Og-dce-2.c
  d8649d74f0435be9dfbda3d78613de4d  gcc/testsuite/c-c++-common/guality/Og-dce-3.c
*************** c5ddd992be61d8712cb3a31ca1f1e0b2  gcc/te
*** 12806,12812 ****
--- 13431,13460 ----
  8f32b18329b5c8dd71fb25378fd948e4  gcc/testsuite/c-c++-common/inc-from-1.c
  04bd9a83f144ae30a025fcacf972dd84  gcc/testsuite/c-c++-common/inc-from-1a.h
  02d78d2beff73feb134e61377926c8c6  gcc/testsuite/c-c++-common/inc-from-1b.h
+ 5c7879b1ad4c9382d6be183321475485  gcc/testsuite/c-c++-common/indirection-fixits.c
+ 526522d14ec287d6153f0b1f740d89f6  gcc/testsuite/c-c++-common/init-1.c
+ 34cc841a0ae0d731278a175afc45b60b  gcc/testsuite/c-c++-common/init-2.c
+ 338759cde27e2c3c20ffced115d7e010  gcc/testsuite/c-c++-common/init-3.c
+ 7c9baab80238855c5083d9d6b6dee0fd  gcc/testsuite/c-c++-common/init-4.c
+ 2d8085e44e6573aaf0bf9652e6bd100f  gcc/testsuite/c-c++-common/init-5.c
+ b5e154fc274cf6b3978a9ecc09a8d2f9  gcc/testsuite/c-c++-common/init-6.c
+ f9bc35e1a49d492dbd36c1e9487ae730  gcc/testsuite/c-c++-common/init-7.c
  efe9ef98b52d49485763af49dfafca8c  gcc/testsuite/c-c++-common/init-vec-1.c
+ 7770a14307c014759014e50815842492  gcc/testsuite/c-c++-common/initpri1-lto-static.c
+ f39ce310274a39627da221c80bf93b80  gcc/testsuite/c-c++-common/initpri1-lto.c
+ 2b2c62802ac6ff0257fbe6a57550f871  gcc/testsuite/c-c++-common/initpri1-split-static.c
+ dd7bafa79a7880a1f469670a8b56bdd6  gcc/testsuite/c-c++-common/initpri1-split.c
+ 753c753b703fe94a68356b35180c52a6  gcc/testsuite/c-c++-common/initpri1-static.c
+ 86dc0f82295a19447e4a2cbee4a148e1  gcc/testsuite/c-c++-common/initpri1.c
+ 2090b673c4ba1d46d1282361795e8730  gcc/testsuite/c-c++-common/initpri1_part_c1.c
+ 223ec349686afcf2b24e94b309035d8b  gcc/testsuite/c-c++-common/initpri1_part_c2.c
+ 98cf1680c6c032699633abc64a1a1e0b  gcc/testsuite/c-c++-common/initpri1_part_c3.c
+ a826ac89aa3de569f4714a3a91b10d5c  gcc/testsuite/c-c++-common/initpri1_part_cd4.c
+ b57bb099e4f80bc116b80bd3a66a1c0b  gcc/testsuite/c-c++-common/initpri1_part_d1.c
+ 07e15899f43517f29faf5cbd7a81b066  gcc/testsuite/c-c++-common/initpri1_part_d2.c
+ 9ca65abf9935fbbf0091d2a320fa7839  gcc/testsuite/c-c++-common/initpri1_part_d3.c
+ c3173e84a073a84eef372e65ff3dab04  gcc/testsuite/c-c++-common/initpri1_part_main.c
+ 9bd02064d15ce16fda01a977c01983d1  gcc/testsuite/c-c++-common/initpri2.c
  ed31996e3dda298f798652d482bc4224  gcc/testsuite/c-c++-common/int128-1.c
  d4e3dc1aa87409198ff78d00e3448b7a  gcc/testsuite/c-c++-common/int128-2.c
  de3dd2daeb344b4e1fbcc4551d6441bc  gcc/testsuite/c-c++-common/int128-types-1.c
*************** a26cac5f6c3bf19d27815db147fb6b76  gcc/te
*** 12820,12825 ****
--- 13468,13500 ----
  a63ae3270acffedc81ca35530fc1d8ea  gcc/testsuite/c-c++-common/missing-header-5.c
  43b0969da91f5c38b8fb0ee512205d1f  gcc/testsuite/c-c++-common/missing-symbol.c
  a68a4cf86f443ff3cc492bde894e586e  gcc/testsuite/c-c++-common/modref-dse.c
+ 4e2a067ab29f18120b0bede028b43a13  gcc/testsuite/c-c++-common/musttail1.c
+ c9a9219124d8f7c1c02217d2c93959b6  gcc/testsuite/c-c++-common/musttail12.c
+ bd69977908c34d29f64c9be660e0bd22  gcc/testsuite/c-c++-common/musttail13.c
+ 5177804438eb833f82ecf6909beb2588  gcc/testsuite/c-c++-common/musttail14.c
+ 58b2fdd71d615294069083acefd37c48  gcc/testsuite/c-c++-common/musttail15.c
+ 419b3d32bec2e7e6e72cef52ee5a3805  gcc/testsuite/c-c++-common/musttail16.c
+ d8ba6ed9874a6dfe99ff6f485c4f6720  gcc/testsuite/c-c++-common/musttail17.c
+ a2d7a1661c57455f54f19604036ba530  gcc/testsuite/c-c++-common/musttail18.c
+ 489a72d2d1692f4a64e1e9075a81744d  gcc/testsuite/c-c++-common/musttail19.c
+ f52bbfb57de896ca81cc16ec3167121f  gcc/testsuite/c-c++-common/musttail2.c
+ e9cf123b2a982ad0b6fde07af7450413  gcc/testsuite/c-c++-common/musttail20.c
+ ef291cb6bc315475ba4f4a438714d081  gcc/testsuite/c-c++-common/musttail21.c
+ a008c1d3e3c348ad8f4d8dc6d1f4f3ac  gcc/testsuite/c-c++-common/musttail22.c
+ f32bcd8a761c46a8c6072db0f4a92841  gcc/testsuite/c-c++-common/musttail23.c
+ 6a74ff68a17ba1a4c84c9a270095f062  gcc/testsuite/c-c++-common/musttail24.c
+ e082a0987ccd7f7c913822d88f1e1290  gcc/testsuite/c-c++-common/musttail25.c
+ 0bc7351b8fdd7ea1e19df3ad65e09162  gcc/testsuite/c-c++-common/musttail26.c
+ 525a869137d4161011533e9ec76d92ef  gcc/testsuite/c-c++-common/musttail27.c
+ 40ccea5d7bf3d8436b8a7e6996bdbdbc  gcc/testsuite/c-c++-common/musttail28.c
+ 1aa61d19498a87262f54a2240dafcbc4  gcc/testsuite/c-c++-common/musttail29.c
+ 766c38292d8ef4c730c998450d7c16c3  gcc/testsuite/c-c++-common/musttail3.c
+ f9c19ca8115104a11cce8d5aa77ed9fd  gcc/testsuite/c-c++-common/musttail30.c
+ 7a71029e737d91fd5e483eb7ebb5b684  gcc/testsuite/c-c++-common/musttail31.c
+ 711d7e1b422d9f9f8abb12fc832e8223  gcc/testsuite/c-c++-common/musttail4.c
+ fe77739c48384f6fcfbdf2de9311cd67  gcc/testsuite/c-c++-common/musttail5.c
+ 078bac0d5a094d7fcf3f9d37b95c1683  gcc/testsuite/c-c++-common/musttail7.c
+ 16ed7642c9e06c6e62ca859868be2a07  gcc/testsuite/c-c++-common/musttail8.c
  1857ca1e2a63fca3b5383864d3c28579  gcc/testsuite/c-c++-common/nonnull-1.c
  a1ccbbeb722e380d831827588c7f4d57  gcc/testsuite/c-c++-common/nonnull-2.c
  56f94db4972b3a054d2adecfd106d42a  gcc/testsuite/c-c++-common/nonnull-3.c
*************** a3a25e292815be4474cfe0c8eb665d70  gcc/te
*** 12830,12843 ****
  8dc709a510615d4b7752427741282b37  gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
  80a177ccd304d62e86cb7f75375f0958  gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
  498ddd8ad30f33954c75dc8c4bb14a15  gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
! 44097af5085c22fdafd236564588816d  gcc/testsuite/c-c++-common/pointer-to-fn1.c
  a6ce976933c82e0ff9cfe2bb28e85af5  gcc/testsuite/c-c++-common/pr100785.c
  05e5f34e1a745d2204989ec4f256e3c7  gcc/testsuite/c-c++-common/pr101537.c
  8709cca98d2978c94addb154e2c7ae32  gcc/testsuite/c-c++-common/pr102281.c
  24cfa37b3314f819eee358a0281492a7  gcc/testsuite/c-c++-common/pr102285.c
  aa3fc5c6f05836355e73da21c4ceac97  gcc/testsuite/c-c++-common/pr103798-1.c
  de10da1e1aec0a1dcb31ef7ac653e978  gcc/testsuite/c-c++-common/pr103798-10.c
! 21dc8cf084d20c568438d7f80c5c271d  gcc/testsuite/c-c++-common/pr103798-2.c
  b3a421701bd54bd29725cf811bcc7bdc  gcc/testsuite/c-c++-common/pr103798-3.c
  fbace92b2eb2c2560edc165a281b8fe0  gcc/testsuite/c-c++-common/pr103798-4.c
  7bcd6e6668dfbb3133dbb22ca4245dfd  gcc/testsuite/c-c++-common/pr103798-5.c
--- 13505,13518 ----
  8dc709a510615d4b7752427741282b37  gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
  80a177ccd304d62e86cb7f75375f0958  gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
  498ddd8ad30f33954c75dc8c4bb14a15  gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
! 06e40a848186c44f76563561856a3ee3  gcc/testsuite/c-c++-common/pointer-to-fn1.c
  a6ce976933c82e0ff9cfe2bb28e85af5  gcc/testsuite/c-c++-common/pr100785.c
  05e5f34e1a745d2204989ec4f256e3c7  gcc/testsuite/c-c++-common/pr101537.c
  8709cca98d2978c94addb154e2c7ae32  gcc/testsuite/c-c++-common/pr102281.c
  24cfa37b3314f819eee358a0281492a7  gcc/testsuite/c-c++-common/pr102285.c
  aa3fc5c6f05836355e73da21c4ceac97  gcc/testsuite/c-c++-common/pr103798-1.c
  de10da1e1aec0a1dcb31ef7ac653e978  gcc/testsuite/c-c++-common/pr103798-10.c
! 032c2a0ecbc90df1ed8a937890d7d665  gcc/testsuite/c-c++-common/pr103798-2.c
  b3a421701bd54bd29725cf811bcc7bdc  gcc/testsuite/c-c++-common/pr103798-3.c
  fbace92b2eb2c2560edc165a281b8fe0  gcc/testsuite/c-c++-common/pr103798-4.c
  7bcd6e6668dfbb3133dbb22ca4245dfd  gcc/testsuite/c-c++-common/pr103798-5.c
*************** e1ef9c58498f72552b0ec84751024b54  gcc/te
*** 12858,12863 ****
--- 13533,13553 ----
  7e6323dd9b11ca893c79859f430b53ed  gcc/testsuite/c-c++-common/pr109884.c
  087cac8a02deb9e6057b84df8a4b50c5  gcc/testsuite/c-c++-common/pr111309-1.c
  eaa6db1ea7ec94af6a5743a71b3c75b4  gcc/testsuite/c-c++-common/pr111309-2.c
+ fd2495c48b560caf7d762a464c77b115  gcc/testsuite/c-c++-common/pr118205.c
+ 7f267008b2230604a2b8a18847bf6734  gcc/testsuite/c-c++-common/pr118430.c
+ 0c3f46dedcdae63c945f3862b8e0e0ed  gcc/testsuite/c-c++-common/pr118442.c
+ 9f9f311706b25a7ff3dc8c24217e450d  gcc/testsuite/c-c++-common/pr119120.c
+ 22363cf3b52c3325225501562eae57e5  gcc/testsuite/c-c++-common/pr119483-1.c
+ e3fe3563b6876205af64f1ab4c219eb3  gcc/testsuite/c-c++-common/pr119483-2.c
+ 199702b7ab03b2cd3224d6a1b33b1295  gcc/testsuite/c-c++-common/pr119484.c
+ e82c7b7752e66456db57ee27e9f0dea7  gcc/testsuite/c-c++-common/pr119535.c
+ 14f61b963ad557a886d164ceedeb8f0f  gcc/testsuite/c-c++-common/pr119537-1.c
+ 2f58f4bd4b0dfc6c569a4596596d1738  gcc/testsuite/c-c++-common/pr119537-2.c
+ 73e5e68e3779cb25e8aa8c8f949d99ff  gcc/testsuite/c-c++-common/pr119614-1.c
+ 61763e9ff21d0b5aa2d9c803e88f04f1  gcc/testsuite/c-c++-common/pr119614-2.c
+ 37cc7dc995f0abf1366c2a87f7cbb453  gcc/testsuite/c-c++-common/pr119614-3.c
+ 8c1cd068c408ff1fcd80c540de835599  gcc/testsuite/c-c++-common/pr119616.c
+ 9032f3bb916ba5c274bdfec86c5c4ef5  gcc/testsuite/c-c++-common/pr119618.c
  f5dce8e27cfb8a6bfffe57596fecb796  gcc/testsuite/c-c++-common/pr19807-1.c
  8a7d9a8dd4af1ada80ca6a4b3201e073  gcc/testsuite/c-c++-common/pr19807-2.c
  39c0873a2c1c7f951e8b2f90ebc9e12d  gcc/testsuite/c-c++-common/pr19807-3.c
*************** a35a58b3b493f052b0bf4ba74eefead5  gcc/te
*** 12876,12882 ****
  34cf6e3a3ee13163cf912fe7228fe32f  gcc/testsuite/c-c++-common/pr36282-2.c
  3066c34876746e18bc19dfa90edf3930  gcc/testsuite/c-c++-common/pr36282-3.c
  af25df4aa640eae33159416614e7be0e  gcc/testsuite/c-c++-common/pr36282-4.c
! 999859dc0856f32f0ffec2abd7a7dcc3  gcc/testsuite/c-c++-common/pr36513-2.c
  861827b51b87f66f3b263d984a144d0c  gcc/testsuite/c-c++-common/pr36513.c
  2d231290c51129fd7985cf8d86b66bd3  gcc/testsuite/c-c++-common/pr37743.c
  4464dff1cb329c1272e3d7e9d3b6d437  gcc/testsuite/c-c++-common/pr41779.c
--- 13566,13572 ----
  34cf6e3a3ee13163cf912fe7228fe32f  gcc/testsuite/c-c++-common/pr36282-2.c
  3066c34876746e18bc19dfa90edf3930  gcc/testsuite/c-c++-common/pr36282-3.c
  af25df4aa640eae33159416614e7be0e  gcc/testsuite/c-c++-common/pr36282-4.c
! 024c8c575178b80d1c668ccdf6f05bf1  gcc/testsuite/c-c++-common/pr36513-2.c
  861827b51b87f66f3b263d984a144d0c  gcc/testsuite/c-c++-common/pr36513.c
  2d231290c51129fd7985cf8d86b66bd3  gcc/testsuite/c-c++-common/pr37743.c
  4464dff1cb329c1272e3d7e9d3b6d437  gcc/testsuite/c-c++-common/pr41779.c
*************** e257567d3e45108aa92c38c2756f8082  gcc/te
*** 12941,12948 ****
  93039c44a01737b0dc6ca34eeea375fc  gcc/testsuite/c-c++-common/pr57371-1.c
  88910d91b58adeb8bf74efa42b6a6a9d  gcc/testsuite/c-c++-common/pr57371-2.c
  d7d4bbcfc6cb3a970e0d8d14ece542b8  gcc/testsuite/c-c++-common/pr57371-3.c
! fd2930d2b601be1780cecd8ea48e3c6d  gcc/testsuite/c-c++-common/pr57371-4.c
! 78a7808315f694542dadb9618ee9cd65  gcc/testsuite/c-c++-common/pr57371-5.c
  d38efef14d0ab2c49efc359e81d86d1c  gcc/testsuite/c-c++-common/pr57653-2.c
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/c-c++-common/pr57653-2.h
  96f621870e8a9d49a5339944dcf7beca  gcc/testsuite/c-c++-common/pr57653.c
--- 13631,13638 ----
  93039c44a01737b0dc6ca34eeea375fc  gcc/testsuite/c-c++-common/pr57371-1.c
  88910d91b58adeb8bf74efa42b6a6a9d  gcc/testsuite/c-c++-common/pr57371-2.c
  d7d4bbcfc6cb3a970e0d8d14ece542b8  gcc/testsuite/c-c++-common/pr57371-3.c
! 225cae5a5327ca74e9c6367b5c8566ce  gcc/testsuite/c-c++-common/pr57371-4.c
! 6b5850b1e3f24754eb733f4abecc5761  gcc/testsuite/c-c++-common/pr57371-5.c
  d38efef14d0ab2c49efc359e81d86d1c  gcc/testsuite/c-c++-common/pr57653-2.c
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/c-c++-common/pr57653-2.h
  96f621870e8a9d49a5339944dcf7beca  gcc/testsuite/c-c++-common/pr57653.c
*************** dfd653501b778d81153304f2a3d6efbb  gcc/te
*** 12984,12990 ****
  23dca67bfaa1aa30c2e47757834eb57c  gcc/testsuite/c-c++-common/pr68657-3.c
  2c2925a98627ca619c82df085f2ce950  gcc/testsuite/c-c++-common/pr68833-1.c
  e48324192b0a8e0c208e13505ede3621  gcc/testsuite/c-c++-common/pr68833-2.c
! 91aef7c6fcd19ff21b9a55c4d938bf1c  gcc/testsuite/c-c++-common/pr68833-3.c
  afc9c0633101c574c7b1e04cac291fa2  gcc/testsuite/c-c++-common/pr69126-2-long.c
  68b62be3d6a119aa4adbf2f0b2a33cdf  gcc/testsuite/c-c++-common/pr69126-2-short.c
  435375785acb2fdf9338ee9c2d6fb56f  gcc/testsuite/c-c++-common/pr69126.c
--- 13674,13680 ----
  23dca67bfaa1aa30c2e47757834eb57c  gcc/testsuite/c-c++-common/pr68657-3.c
  2c2925a98627ca619c82df085f2ce950  gcc/testsuite/c-c++-common/pr68833-1.c
  e48324192b0a8e0c208e13505ede3621  gcc/testsuite/c-c++-common/pr68833-2.c
! 51b24c949efaca289e97a297592daef7  gcc/testsuite/c-c++-common/pr68833-3.c
  afc9c0633101c574c7b1e04cac291fa2  gcc/testsuite/c-c++-common/pr69126-2-long.c
  68b62be3d6a119aa4adbf2f0b2a33cdf  gcc/testsuite/c-c++-common/pr69126-2-short.c
  435375785acb2fdf9338ee9c2d6fb56f  gcc/testsuite/c-c++-common/pr69126.c
*************** beccf70a61209f54795f8cba3ded7086  gcc/te
*** 13012,13019 ****
  ab8ceba35b76e5122ef1d15e5a6d31ba  gcc/testsuite/c-c++-common/pr71372.c
  07afd9785e6f6a5b88f37fbbbfcb056b  gcc/testsuite/c-c++-common/pr71574.c
  f95fcc70982cead8b99c9d37a468918d  gcc/testsuite/c-c++-common/pr71654.c
! 787c05b57b9d12074e10b8dd90f2e31f  gcc/testsuite/c-c++-common/pr72747-1.c
! bc35e63b37b5e5640c983fbf4df0d7b4  gcc/testsuite/c-c++-common/pr72747-2.c
  c17a051b73c64b2e2eabc720f61393fc  gcc/testsuite/c-c++-common/pr77624-1.c
  a1d81aca7925c7555b998187fd9777a8  gcc/testsuite/c-c++-common/pr77624-2.c
  6c6ebe9e94d2f6d6f9e318d4247ea33a  gcc/testsuite/c-c++-common/pr79428-3.c
--- 13702,13709 ----
  ab8ceba35b76e5122ef1d15e5a6d31ba  gcc/testsuite/c-c++-common/pr71372.c
  07afd9785e6f6a5b88f37fbbbfcb056b  gcc/testsuite/c-c++-common/pr71574.c
  f95fcc70982cead8b99c9d37a468918d  gcc/testsuite/c-c++-common/pr71654.c
! f47cc320c015c758ba237bd50346cd90  gcc/testsuite/c-c++-common/pr72747-1.c
! 3e325954a8d3656918d9a0add217676c  gcc/testsuite/c-c++-common/pr72747-2.c
  c17a051b73c64b2e2eabc720f61393fc  gcc/testsuite/c-c++-common/pr77624-1.c
  a1d81aca7925c7555b998187fd9777a8  gcc/testsuite/c-c++-common/pr77624-2.c
  6c6ebe9e94d2f6d6f9e318d4247ea33a  gcc/testsuite/c-c++-common/pr79428-3.c
*************** e53af2aa7d10757161196113a6bde0d9  gcc/te
*** 13073,13079 ****
  ea224ace5832cd0eba6a6d58558ed280  gcc/testsuite/c-c++-common/pr95378.c
  87b3bbe050a2e54c8aa76908ea34822d  gcc/testsuite/c-c++-common/pr95903.c
  418b58eb94ef29a984762e4e81ee2057  gcc/testsuite/c-c++-common/pr96192-1.c
! 0ff677a7f94c47b0db47cc14f3e6f746  gcc/testsuite/c-c++-common/pr96369.c
  e7da4642e25c14b28d3cbf86173d69a5  gcc/testsuite/c-c++-common/pr96545.c
  4fe8ad019b60941d4903ffbf3df4e8dc  gcc/testsuite/c-c++-common/pr97164.c
  81e319f6287462f1138a4fa254bcfda0  gcc/testsuite/c-c++-common/pr97498.c
--- 13763,13769 ----
  ea224ace5832cd0eba6a6d58558ed280  gcc/testsuite/c-c++-common/pr95378.c
  87b3bbe050a2e54c8aa76908ea34822d  gcc/testsuite/c-c++-common/pr95903.c
  418b58eb94ef29a984762e4e81ee2057  gcc/testsuite/c-c++-common/pr96192-1.c
! 52e149d535e76dd20839456d4f2b70fb  gcc/testsuite/c-c++-common/pr96369.c
  e7da4642e25c14b28d3cbf86173d69a5  gcc/testsuite/c-c++-common/pr96545.c
  4fe8ad019b60941d4903ffbf3df4e8dc  gcc/testsuite/c-c++-common/pr97164.c
  81e319f6287462f1138a4fa254bcfda0  gcc/testsuite/c-c++-common/pr97498.c
*************** c03d94813a62c9fafb95c7b8983360ce  gcc/te
*** 13086,13115 ****
  8606dea92dbeabaeabd40009158b7486  gcc/testsuite/c-c++-common/pragma-diag-14.c
  4406cf29b6e608168beb66e51b0828ce  gcc/testsuite/c-c++-common/pragma-diag-15.c
  2f44bc43abfb65e37859c4ba4bba1d3d  gcc/testsuite/c-c++-common/pragma-diag-16.c
  6fbfb0791efb04e7199a6a9e44c1e3c9  gcc/testsuite/c-c++-common/pragma-region.c
  b74aa710dd73be16a516f400b59f4ab4  gcc/testsuite/c-c++-common/pragma-target-1.c
  e08a01190a0adf03b4c03708f6da1223  gcc/testsuite/c-c++-common/pragma-target-2.c
! b0ba836310044e7b419ef679f0b48d6f  gcc/testsuite/c-c++-common/raw-string-1.c
  554e7071d2525351de28445762633866  gcc/testsuite/c-c++-common/raw-string-10.c
! fc54e7227094f307fa566b3a8cd0ba9a  gcc/testsuite/c-c++-common/raw-string-11.c
  36fc0e5938743faa94593b1c507a505d  gcc/testsuite/c-c++-common/raw-string-12.c
! e1e03bbcd5180090470439197165fcf8  gcc/testsuite/c-c++-common/raw-string-13.c
! 8a90c5c0fea70e9939ec5079189a5c4b  gcc/testsuite/c-c++-common/raw-string-14.c
! 17ee2bb32f453315e1e6946fecb9e042  gcc/testsuite/c-c++-common/raw-string-15.c
! c2704c66cab13556f52fe262264620a8  gcc/testsuite/c-c++-common/raw-string-16.c
! b81ba5a5d59db8aba066b1ea5875ae1c  gcc/testsuite/c-c++-common/raw-string-17.c
! f2cf446aee9e562e0f50535d8dc722b8  gcc/testsuite/c-c++-common/raw-string-18.c
! f22b56f7443efc755e1ea54a224e054f  gcc/testsuite/c-c++-common/raw-string-19.c
! 800165e4838b55a02b4e0876d627a84e  gcc/testsuite/c-c++-common/raw-string-2.c
  4363cd68e71914dc9788eb4a02529350  gcc/testsuite/c-c++-common/raw-string-3.c
! e49568f3823955061595d6d2bc00ec34  gcc/testsuite/c-c++-common/raw-string-4.c
! 707043c6192a38d3f235caa32cb05034  gcc/testsuite/c-c++-common/raw-string-5.c
! 35d03227b9135586c8ed98f9dccd5927  gcc/testsuite/c-c++-common/raw-string-6.c
  a183a8ddeb27d5e9654e05ba36537908  gcc/testsuite/c-c++-common/raw-string-7.c
  1be74e84c9b067d6ddd2a8488e5e6019  gcc/testsuite/c-c++-common/raw-string-8.c
  4ff3ed308d8da8d77850a30d4f12d391  gcc/testsuite/c-c++-common/raw-string-9.c
! 9e3a91b7d141874f69445c22a3d74ab6  gcc/testsuite/c-c++-common/raw-string-directive-1.c
  00bb4dd954585ae7c44fc148fcaeff2c  gcc/testsuite/c-c++-common/raw-string-directive-2.c
  27d899fda0e1e6f64fc3f2e0f3e7832e  gcc/testsuite/c-c++-common/restrict-1.c
  d38712ca0af7a9dc1180236b496d6f9f  gcc/testsuite/c-c++-common/restrict-2.c
  b75f32090613560551fe2b3a16a6bddf  gcc/testsuite/c-c++-common/restrict-4.c
--- 13776,13808 ----
  8606dea92dbeabaeabd40009158b7486  gcc/testsuite/c-c++-common/pragma-diag-14.c
  4406cf29b6e608168beb66e51b0828ce  gcc/testsuite/c-c++-common/pragma-diag-15.c
  2f44bc43abfb65e37859c4ba4bba1d3d  gcc/testsuite/c-c++-common/pragma-diag-16.c
+ bac9caa6b04381a94bbf89aaf37887b7  gcc/testsuite/c-c++-common/pragma-diag-17.c
  6fbfb0791efb04e7199a6a9e44c1e3c9  gcc/testsuite/c-c++-common/pragma-region.c
  b74aa710dd73be16a516f400b59f4ab4  gcc/testsuite/c-c++-common/pragma-target-1.c
  e08a01190a0adf03b4c03708f6da1223  gcc/testsuite/c-c++-common/pragma-target-2.c
! b23fb183d0c3689d107233696c311642  gcc/testsuite/c-c++-common/raw-string-1.c
  554e7071d2525351de28445762633866  gcc/testsuite/c-c++-common/raw-string-10.c
! 3cd4dbdeccdecb707f7d24d03e514468  gcc/testsuite/c-c++-common/raw-string-11.c
  36fc0e5938743faa94593b1c507a505d  gcc/testsuite/c-c++-common/raw-string-12.c
! 6fb935c9acc9a907023274a83ad4461b  gcc/testsuite/c-c++-common/raw-string-13.c
! d639c6a0120a18990f656fb14ed75994  gcc/testsuite/c-c++-common/raw-string-14.c
! be9a91dcbff66a579e545e9be0aede62  gcc/testsuite/c-c++-common/raw-string-15.c
! 0fb02637a076a96513ed4841858d0eb6  gcc/testsuite/c-c++-common/raw-string-16.c
! e9fcc5553cb503c55e1f104177cc63ee  gcc/testsuite/c-c++-common/raw-string-17.c
! a6d0157e2549890db0657c889fc3c5be  gcc/testsuite/c-c++-common/raw-string-18.c
! b7b971c326e5616801886f60d50ad153  gcc/testsuite/c-c++-common/raw-string-19.c
! 8dfa1126846e5589db1299c219fe6663  gcc/testsuite/c-c++-common/raw-string-2.c
  4363cd68e71914dc9788eb4a02529350  gcc/testsuite/c-c++-common/raw-string-3.c
! 686f44fc226b339a83f87878dd615f60  gcc/testsuite/c-c++-common/raw-string-4.c
! 61f9e7083f4c0bc5407c01168bcb1ee8  gcc/testsuite/c-c++-common/raw-string-5.c
! 7fa951266804908b34bcd6a6b3a3220b  gcc/testsuite/c-c++-common/raw-string-6.c
  a183a8ddeb27d5e9654e05ba36537908  gcc/testsuite/c-c++-common/raw-string-7.c
  1be74e84c9b067d6ddd2a8488e5e6019  gcc/testsuite/c-c++-common/raw-string-8.c
  4ff3ed308d8da8d77850a30d4f12d391  gcc/testsuite/c-c++-common/raw-string-9.c
! b0b55ab8b53606eec0ee5fabee9aa06a  gcc/testsuite/c-c++-common/raw-string-directive-1.c
  00bb4dd954585ae7c44fc148fcaeff2c  gcc/testsuite/c-c++-common/raw-string-directive-2.c
+ c43e8c2f4e63188c7d29667b185abde0  gcc/testsuite/c-c++-common/raw-string-directive-3.c
+ eef0e9a4755fcdef5bc0aed73aa7dfc5  gcc/testsuite/c-c++-common/raw-string-directive-4.c
  27d899fda0e1e6f64fc3f2e0f3e7832e  gcc/testsuite/c-c++-common/restrict-1.c
  d38712ca0af7a9dc1180236b496d6f9f  gcc/testsuite/c-c++-common/restrict-2.c
  b75f32090613560551fe2b3a16a6bddf  gcc/testsuite/c-c++-common/restrict-4.c
*************** f9ed915fcb0e475845740fa55cfc452e  gcc/te
*** 13137,13146 ****
  48efd205308f2e806dee8335c1cb3983  gcc/testsuite/c-c++-common/simulate-thread/bitfields-1.c
  521750e83ab2df432ecb4a77bd0d5a19  gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c
  a5c60fe52097cec85469622ba5fdb925  gcc/testsuite/c-c++-common/simulate-thread/bitfields-3.c
! ea258fcc065ffda90982abc5cfd1d059  gcc/testsuite/c-c++-common/simulate-thread/bitfields-4.c
! 44e124b6efbd861ac0aa2c9196131cd3  gcc/testsuite/c-c++-common/sizeof-array-argument.c
  3b6b1021a97b044fd6f4d5e187425192  gcc/testsuite/c-c++-common/spec-barrier-1.c
  80f293e41667e8b36f21d7e67a6c70b0  gcc/testsuite/c-c++-common/spec-barrier-2.c
  4877b2bec0428bb3840fadaef2f2974e  gcc/testsuite/c-c++-common/spellcheck-pr107583.c
  8762e925228bbb078bb2ee439d357e84  gcc/testsuite/c-c++-common/spellcheck-reserved.c
  7fa8c2dd64475a70270c4c6d31a181f8  gcc/testsuite/c-c++-common/strub-O0.c
--- 13830,13840 ----
  48efd205308f2e806dee8335c1cb3983  gcc/testsuite/c-c++-common/simulate-thread/bitfields-1.c
  521750e83ab2df432ecb4a77bd0d5a19  gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c
  a5c60fe52097cec85469622ba5fdb925  gcc/testsuite/c-c++-common/simulate-thread/bitfields-3.c
! bb19e02422f4e63ebb2d3ebb0d6b05ca  gcc/testsuite/c-c++-common/simulate-thread/bitfields-4.c
! 3042799d8483811414bfc3b2ceea8f41  gcc/testsuite/c-c++-common/sizeof-array-argument.c
  3b6b1021a97b044fd6f4d5e187425192  gcc/testsuite/c-c++-common/spec-barrier-1.c
  80f293e41667e8b36f21d7e67a6c70b0  gcc/testsuite/c-c++-common/spec-barrier-2.c
+ ab4c5389728f46a1a250e061805ebbf9  gcc/testsuite/c-c++-common/spellcheck-missing-option.c
  4877b2bec0428bb3840fadaef2f2974e  gcc/testsuite/c-c++-common/spellcheck-pr107583.c
  8762e925228bbb078bb2ee439d357e84  gcc/testsuite/c-c++-common/spellcheck-reserved.c
  7fa8c2dd64475a70270c4c6d31a181f8  gcc/testsuite/c-c++-common/strub-O0.c
*************** eacd23e19ac916f62a981dd310f9af30  gcc/te
*** 13168,13173 ****
--- 13862,13868 ----
  d48979861ad05a0e5a69f67b12dc9b32  gcc/testsuite/c-c++-common/strub-parms1.c
  c526ac4a39c55417362bd5fa134cf87b  gcc/testsuite/c-c++-common/strub-parms2.c
  52e472e2817570f853421386658e178e  gcc/testsuite/c-c++-common/strub-parms3.c
+ 522ffa9284d985fca62e8b88d72d84bf  gcc/testsuite/c-c++-common/strub-pr113681.c
  0e1a9a13f439929be2722a0cdf032e81  gcc/testsuite/c-c++-common/strub-relaxed1.c
  76b389cdf80772fdf86731a6d9a4f5c7  gcc/testsuite/c-c++-common/strub-relaxed2.c
  f9cce4fcd1461568efc1efa394c0aef2  gcc/testsuite/c-c++-common/strub-short-O0-exc.c
*************** a4ea85477797866805ea1b7ba50ac38a  gcc/te
*** 13203,13209 ****
  f8244e4647992e9a0345e21a44b31fc3  gcc/testsuite/c-c++-common/tm/inline-asm-2.c
  b69c93424ff2674cf70689a92c46c0d3  gcc/testsuite/c-c++-common/tm/inline-asm.c
  08d397d9c83e4bef2fecf1ac0e08c4b5  gcc/testsuite/c-c++-common/tm/ipa-1.c
! 2ba8b54a665f15db63ba7de21e65fcdb  gcc/testsuite/c-c++-common/tm/malloc.c
  eeedc4e342124b573cee07ce3df192b7  gcc/testsuite/c-c++-common/tm/memcpy-1.c
  32077c16de6ee8727a43fde0685a483e  gcc/testsuite/c-c++-common/tm/omp.c
  f99192805adee98751aaf370a2fc3af0  gcc/testsuite/c-c++-common/tm/outer-1.c
--- 13898,13904 ----
  f8244e4647992e9a0345e21a44b31fc3  gcc/testsuite/c-c++-common/tm/inline-asm-2.c
  b69c93424ff2674cf70689a92c46c0d3  gcc/testsuite/c-c++-common/tm/inline-asm.c
  08d397d9c83e4bef2fecf1ac0e08c4b5  gcc/testsuite/c-c++-common/tm/ipa-1.c
! 8a52cbc7a70d073c53172764d6a06c18  gcc/testsuite/c-c++-common/tm/malloc.c
  eeedc4e342124b573cee07ce3df192b7  gcc/testsuite/c-c++-common/tm/memcpy-1.c
  32077c16de6ee8727a43fde0685a483e  gcc/testsuite/c-c++-common/tm/omp.c
  f99192805adee98751aaf370a2fc3af0  gcc/testsuite/c-c++-common/tm/outer-1.c
*************** e6b8806ad0c5451ea3a2026279567203  gcc/te
*** 13216,13221 ****
--- 13911,13924 ----
  5fd633620b57d8f9514eddc68014f07c  gcc/testsuite/c-c++-common/tm/trxn-expr.c
  0be2a21ad8cc895096a63b0b41046768  gcc/testsuite/c-c++-common/tm/volatile-1.c
  7bca2da5972cb85245dd77174723b039  gcc/testsuite/c-c++-common/tm/wrap-1.c
+ 448252a16bb5e63071078bfe0bdb7c2a  gcc/testsuite/c-c++-common/toplevel-asm-1.c
+ b73c26eee21eb7bfc2ea87f34cea9d7b  gcc/testsuite/c-c++-common/toplevel-asm-2.c
+ 2ebb7767894e4632d51dac30a681fc41  gcc/testsuite/c-c++-common/toplevel-asm-3.c
+ f7e75da1a5cb4453aa124fa22ac57da0  gcc/testsuite/c-c++-common/toplevel-asm-4.c
+ b7f503ea1b7405c820c390c5eba04cb7  gcc/testsuite/c-c++-common/toplevel-asm-5.c
+ 492c0f8041eaf09efdbce2c58dd901a4  gcc/testsuite/c-c++-common/toplevel-asm-6.c
+ 0fa4a0ee5b9d36c2f49914adfda4059b  gcc/testsuite/c-c++-common/toplevel-asm-7.c
+ b9e974e2779e4215afe8a7d06bef5993  gcc/testsuite/c-c++-common/toplevel-asm-8.c
  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
*************** f64e9a0e7b5ee2dca69c8d247f6246ab  gcc/te
*** 13271,13292 ****
  1521bd071912021d30375778ada20c27  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c
  c0ced56aa092fbe05fcfb0400e4a7973  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h
  3cee92adaa1a38086edfab9c3d84f00a  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c
! 1865956f3fc939653de54faba3618b72  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c
  31f715afb9a58cc96ce3fe60e4c8101d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
! 1428b405a26a5320e9400f0d631ac3b9  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
  f1ab5d6173eb9710341597174f8f1538  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
  550bf6a95b93ecdb962dab3cc0becb47  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c
! a7632ded71a08f744f610ec5cebf495e  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
! aa1e8bdc94d5d24f185258290bad8950  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-2.c
  bc76dceb7876987432ddd7a6c1908c45  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-3.c
  255588ac3834ead37b7f36c6b58cd61b  gcc/testsuite/c-c++-common/torture/complex-alias-1.c
  3e1664394a0f8686e51917a957d16eb9  gcc/testsuite/c-c++-common/torture/complex-sign-add.c
! 69c117a5bc6438413306c565d7e6eb33  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
  9637e8ad8a88c84471ef8346032e0db5  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
  95f89ce4264681b6116adf63dd8d978f  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
! 0f001ece20a2af055be37a297cf64ba6  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
  f21dcdf118a5a5859c03e5091efb6825  gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
  40bbe23486172abf16dd9a638cca3a09  gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
  6f069334111c414abe88d8fe092f721d  gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
--- 13974,13995 ----
  1521bd071912021d30375778ada20c27  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c
  c0ced56aa092fbe05fcfb0400e4a7973  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h
  3cee92adaa1a38086edfab9c3d84f00a  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c
! 4feef98dd21c0340ee00611c8c3550d0  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c
  31f715afb9a58cc96ce3fe60e4c8101d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
! d0811ca5b25fbf143e48f74817ee0305  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
  f1ab5d6173eb9710341597174f8f1538  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
  550bf6a95b93ecdb962dab3cc0becb47  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c
! 19c72bc08ef4c37d752d07df9a3a5242  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
! e3a515567e05044a620492cb42e2066e  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-2.c
  bc76dceb7876987432ddd7a6c1908c45  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-3.c
  255588ac3834ead37b7f36c6b58cd61b  gcc/testsuite/c-c++-common/torture/complex-alias-1.c
  3e1664394a0f8686e51917a957d16eb9  gcc/testsuite/c-c++-common/torture/complex-sign-add.c
! 63f5bc19f3ff61efcbfabf83713c950d  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
  9637e8ad8a88c84471ef8346032e0db5  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
  95f89ce4264681b6116adf63dd8d978f  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
! 1e6f2610838371d0fc395e4f3a6dd3f9  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
  f21dcdf118a5a5859c03e5091efb6825  gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
  40bbe23486172abf16dd9a638cca3a09  gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
  6f069334111c414abe88d8fe092f721d  gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
*************** b2f66f84b84ffa548d99c7d1f30b6136  gcc/te
*** 13324,13329 ****
--- 14027,14040 ----
  7a43079b53195516c0a573da0a3b9672  gcc/testsuite/c-c++-common/torture/harden-cond.c
  75b3c9a6df31ced0517c8cbc745ba01b  gcc/testsuite/c-c++-common/torture/pr101636.c
  72a2947bdd50352d6b0c1363882b7249  gcc/testsuite/c-c++-common/torture/pr104497.c
+ 002fc64f1c6639e5d798b8223d5eecc6  gcc/testsuite/c-c++-common/torture/pr113546-1.c
+ d76466e093fe006789ccb59cf89f01bb  gcc/testsuite/c-c++-common/torture/pr116098-1.c
+ 2eaae3452955bd3e50daac3c1f6149f1  gcc/testsuite/c-c++-common/torture/pr116098-2.c
+ 1d3e97280cc487d1ee9f216f91f2f94c  gcc/testsuite/c-c++-common/torture/pr116156-1.c
+ 669d583becd8ce34c50d8bdb30169d9c  gcc/testsuite/c-c++-common/torture/pr116189-1.c
+ 993b07c1c8f1a0db0b2e9956c1045e2c  gcc/testsuite/c-c++-common/torture/pr117912-1.c
+ 457a8eeb2f3d9696c824ae9b75b4c721  gcc/testsuite/c-c++-common/torture/pr117912-2.c
+ 700dd88b5774e08268eb43b2572a7160  gcc/testsuite/c-c++-common/torture/pr117912-3.c
  9f1ae2fa915c5159ec134a1894ad5cf1  gcc/testsuite/c-c++-common/torture/pr42834.c
  675e839574d99a5e8a0446f66b3520ca  gcc/testsuite/c-c++-common/torture/pr46137.c
  dad442c09041500a2c414da240f49b82  gcc/testsuite/c-c++-common/torture/pr53505.c
*************** e5091c416eef26da4472bfe9cf5bf0a4  gcc/te
*** 13366,13376 ****
  cdaece1af41c2c1b516e6faa0825054d  gcc/testsuite/c-c++-common/torture/strub-pure4.c
  ece6fb9201dfd7317265bb4becbec7b6  gcc/testsuite/c-c++-common/torture/strub-run1.c
  17b890022cc1170255c8f5a507a804d7  gcc/testsuite/c-c++-common/torture/strub-run2.c
! 31b8e4399a6d2f99809f6d68b03c69df  gcc/testsuite/c-c++-common/torture/strub-run3.c
! 3afa7f50aa008253ed3d28ebddff7af6  gcc/testsuite/c-c++-common/torture/strub-run4.c
! b3ef25804134647bf211426655e77123  gcc/testsuite/c-c++-common/torture/strub-run4c.c
! ebe7839baacfa8a78dc9b32fd8ac9a3f  gcc/testsuite/c-c++-common/torture/strub-run4d.c
! 5c5dc5c7d23812caae5c8588c38f8124  gcc/testsuite/c-c++-common/torture/strub-run4i.c
  fdeec1e5ecb339bf68961fab033b606e  gcc/testsuite/c-c++-common/torture/vector-compare-1.c
  e098360b3686787abea6589b13d9e806  gcc/testsuite/c-c++-common/torture/vector-compare-2.c
  26c13a49130d1f2d291bea112073585f  gcc/testsuite/c-c++-common/torture/vector-shift.c
--- 14077,14087 ----
  cdaece1af41c2c1b516e6faa0825054d  gcc/testsuite/c-c++-common/torture/strub-pure4.c
  ece6fb9201dfd7317265bb4becbec7b6  gcc/testsuite/c-c++-common/torture/strub-run1.c
  17b890022cc1170255c8f5a507a804d7  gcc/testsuite/c-c++-common/torture/strub-run2.c
! 71adc5704032cf8a09bf265adf97e7f7  gcc/testsuite/c-c++-common/torture/strub-run3.c
! 31cf8f336b74529e5aaa50c5f8388b8d  gcc/testsuite/c-c++-common/torture/strub-run4.c
! 05be928afb88c7a1f858264e5cf291a2  gcc/testsuite/c-c++-common/torture/strub-run4c.c
! c413855d0c2218db551351c63a92ffaf  gcc/testsuite/c-c++-common/torture/strub-run4d.c
! e4ea1005f9e2fd64cfdc8510e7d644f4  gcc/testsuite/c-c++-common/torture/strub-run4i.c
  fdeec1e5ecb339bf68961fab033b606e  gcc/testsuite/c-c++-common/torture/vector-compare-1.c
  e098360b3686787abea6589b13d9e806  gcc/testsuite/c-c++-common/torture/vector-compare-2.c
  26c13a49130d1f2d291bea112073585f  gcc/testsuite/c-c++-common/torture/vector-shift.c
*************** c8736adfa514ce69214538a49b7c88b2  gcc/te
*** 13408,13413 ****
--- 14119,14125 ----
  03862ec23df05c353f1addf0092e0d59  gcc/testsuite/c-c++-common/tsan/func_entry_exit_disabled.c
  5aaa89ef6ecd6d52e014a7dbe6bff4e9  gcc/testsuite/c-c++-common/tsan/inline.c
  9cd9665193a2711474b2d693c1034406  gcc/testsuite/c-c++-common/tsan/mutexset1.c
+ 1c2b0c539fcbe41aa32c5099b107c2db  gcc/testsuite/c-c++-common/tsan/pr119801.c
  52d73498f49b7b249b4b5a5652826619  gcc/testsuite/c-c++-common/tsan/pr65400-1.c
  695efb40d461078d61105c562aeff7de  gcc/testsuite/c-c++-common/tsan/pr65400-2.c
  5a0d8871e2454b025935b73f908b9ea9  gcc/testsuite/c-c++-common/tsan/pr65400-3.c
*************** c16185cce86267ea0c9dd646ac8e24fe  gcc/te
*** 13469,13475 ****
  285be4698e434bd18f676b331d6e34cd  gcc/testsuite/c-c++-common/ubsan/bounds-7.c
  90f168a5463aa68099056b91e086d976  gcc/testsuite/c-c++-common/ubsan/bounds-8.c
  3a43b387bf697f31598729640684400c  gcc/testsuite/c-c++-common/ubsan/bounds-9.c
! ea241630b0a3aed6153f59337a91f543  gcc/testsuite/c-c++-common/ubsan/builtin-1.c
  70def46beb46626b6c3e1f45c5df351a  gcc/testsuite/c-c++-common/ubsan/const-char-1.c
  1b7d27b069201b0a663821b3643c112b  gcc/testsuite/c-c++-common/ubsan/const-expr-1.c
  967a19e8ebcf02886c03bde760bd29d2  gcc/testsuite/c-c++-common/ubsan/div-by-zero-1.c
--- 14181,14188 ----
  285be4698e434bd18f676b331d6e34cd  gcc/testsuite/c-c++-common/ubsan/bounds-7.c
  90f168a5463aa68099056b91e086d976  gcc/testsuite/c-c++-common/ubsan/bounds-8.c
  3a43b387bf697f31598729640684400c  gcc/testsuite/c-c++-common/ubsan/bounds-9.c
! 9d0454d1047ce54b6ef86a87bc1179fd  gcc/testsuite/c-c++-common/ubsan/builtin-1.c
! 924a3a72a4a85c82fb28dec21f429e7c  gcc/testsuite/c-c++-common/ubsan/builtin-2.c
  70def46beb46626b6c3e1f45c5df351a  gcc/testsuite/c-c++-common/ubsan/const-char-1.c
  1b7d27b069201b0a663821b3643c112b  gcc/testsuite/c-c++-common/ubsan/const-expr-1.c
  967a19e8ebcf02886c03bde760bd29d2  gcc/testsuite/c-c++-common/ubsan/div-by-zero-1.c
*************** edf61d9eda5f13ef6802aeed6ada88f8  gcc/te
*** 13497,13507 ****
  4b4093a47a88d4ed45fadb509277b422  gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c
  2dfe9300c7c0663dfcd4b1f1892e2d6e  gcc/testsuite/c-c++-common/ubsan/inline.c
  ff2685208629414a89fbb3161f228476  gcc/testsuite/c-c++-common/ubsan/load-bool-enum.c
! 3c0ae577713ec4c85f5ad514bc7596aa  gcc/testsuite/c-c++-common/ubsan/nonnull-1.c
  5c4f1ab5d64a7368a8615e6b97b39494  gcc/testsuite/c-c++-common/ubsan/nonnull-2.c
  2e3de806982cf99d37072ed04555ac88  gcc/testsuite/c-c++-common/ubsan/nonnull-3.c
  ab3cfaf3576e4a617a126e1901da04f3  gcc/testsuite/c-c++-common/ubsan/nonnull-4.c
  e2015df970a997f64cabe4a791c7016c  gcc/testsuite/c-c++-common/ubsan/nonnull-5.c
  6842fa0a5074224e7bfc1fa8476e9101  gcc/testsuite/c-c++-common/ubsan/null-1.c
  980109fa8241a757eeaa7dd86f275f3c  gcc/testsuite/c-c++-common/ubsan/null-10.c
  18d25a0147190f384aa027237ca4a444  gcc/testsuite/c-c++-common/ubsan/null-11.c
--- 14210,14222 ----
  4b4093a47a88d4ed45fadb509277b422  gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c
  2dfe9300c7c0663dfcd4b1f1892e2d6e  gcc/testsuite/c-c++-common/ubsan/inline.c
  ff2685208629414a89fbb3161f228476  gcc/testsuite/c-c++-common/ubsan/load-bool-enum.c
! b79c4eac5954f98f49d2e45e8f5f2514  gcc/testsuite/c-c++-common/ubsan/nonnull-1.c
  5c4f1ab5d64a7368a8615e6b97b39494  gcc/testsuite/c-c++-common/ubsan/nonnull-2.c
  2e3de806982cf99d37072ed04555ac88  gcc/testsuite/c-c++-common/ubsan/nonnull-3.c
  ab3cfaf3576e4a617a126e1901da04f3  gcc/testsuite/c-c++-common/ubsan/nonnull-4.c
  e2015df970a997f64cabe4a791c7016c  gcc/testsuite/c-c++-common/ubsan/nonnull-5.c
+ 7a621f4d7da946ae138a57d09b0e519f  gcc/testsuite/c-c++-common/ubsan/nonnull-6.c
+ 5dc5ca60e49d92169afd643167cc5738  gcc/testsuite/c-c++-common/ubsan/nonnull-7.c
  6842fa0a5074224e7bfc1fa8476e9101  gcc/testsuite/c-c++-common/ubsan/null-1.c
  980109fa8241a757eeaa7dd86f275f3c  gcc/testsuite/c-c++-common/ubsan/null-10.c
  18d25a0147190f384aa027237ca4a444  gcc/testsuite/c-c++-common/ubsan/null-11.c
*************** bbe0978263ca9b069d3fb387b8d0c2f2  gcc/te
*** 13659,13667 ****
  c36d540bb12d6ab7f9bd3ae9a8a49d0d  gcc/testsuite/c-c++-common/ubsan/undefined-2.c
  4fa5b70771e3ab1b3fa129e028f9eaf0  gcc/testsuite/c-c++-common/ubsan/unreachable-1.c
  44cb470ac496c9104f9ab446b1560e39  gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
! 13bea006ed9d46cd2932f6c49decf35d  gcc/testsuite/c-c++-common/ubsan/unreachable-3.c
  44539a557f6f8816209906c319e60abe  gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
! 13435114dd53bb6c7bd791bff2b1322e  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
--- 14374,14382 ----
  c36d540bb12d6ab7f9bd3ae9a8a49d0d  gcc/testsuite/c-c++-common/ubsan/undefined-2.c
  4fa5b70771e3ab1b3fa129e028f9eaf0  gcc/testsuite/c-c++-common/ubsan/unreachable-1.c
  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
*************** c58be55f0f9b42d63e15276d36dbd399  gcc/te
*** 13722,13728 ****
  5e947ff19698fccb8ffb7ac65277ba5b  gcc/testsuite/c-c++-common/zero-scratch-regs-attr-usages.c
  d61dbb6ecfb4fb8470caab10c945c02e  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-1.c
  db2bfc8380fd1e62f000b54dfdcfd976  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-2.c
! 1307176215ec5174bc6d664a427790b0  gcc/testsuite/config/default.exp
  8024a8d05ac43431e4b1302cfb4f3a39  gcc/testsuite/g++.dg/20090107-1.C
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
--- 14437,14768 ----
  5e947ff19698fccb8ffb7ac65277ba5b  gcc/testsuite/c-c++-common/zero-scratch-regs-attr-usages.c
  d61dbb6ecfb4fb8470caab10c945c02e  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-1.c
  db2bfc8380fd1e62f000b54dfdcfd976  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-2.c
! 51682f3a8bea2ecd76da9c99ab4b19b7  gcc/testsuite/cobol.dg/data1.cob
! f456a5ff39ab3b5cd7b09f407dbc7751  gcc/testsuite/cobol.dg/dg.exp
! a1fc188c12430e21de6bc4300334ed8a  gcc/testsuite/cobol.dg/error-1.cob
! 25cc9f40c748ffa5428ace6fdad21f50  gcc/testsuite/cobol.dg/fail.cob
! d34be5aa4f7d69580259b32b0b88455e  gcc/testsuite/cobol.dg/group1/check_88.cob
! db28dfa30d559599116ed73bed8ba2c7  gcc/testsuite/cobol.dg/group1/comp5.cob
! 8b649e919b79f028012b621f1eb03473  gcc/testsuite/cobol.dg/group1/declarative_1.cob
! a30a2548a358ec40d49dfe00d4ec3eb0  gcc/testsuite/cobol.dg/group1/display.cob
! 4fd2be220262c4a4f7449e21264280fc  gcc/testsuite/cobol.dg/group1/display2.cob
! ff3d9ce537b0e962e3ff423385891362  gcc/testsuite/cobol.dg/group1/escape.cob
! b2937243e44148fb22ebf7e9b52a05aa  gcc/testsuite/cobol.dg/group1/line-sequential.cob
! 28505bae0313c9906ad782ded16bdd42  gcc/testsuite/cobol.dg/group1/multiple-compares.cob
! 76de77745b5818eb05709189f0b00dc8  gcc/testsuite/cobol.dg/group1/multiply2.cob
! 290c4fbaf1acde95e956658ae450fc01  gcc/testsuite/cobol.dg/group1/packed.cob
! d05ac6fedd74d96b8e1466d0110a8fdb  gcc/testsuite/cobol.dg/group1/perform-nested-exit.cob
! 215a2b0959e47205085dc8ab2dea5181  gcc/testsuite/cobol.dg/group1/pointer1.cob
! 763d4c9a2cbca2b2ac0a07933c54862f  gcc/testsuite/cobol.dg/group1/simple-arithmetic.cob
! 9e254bdae56a5c8d106f6559999ae973  gcc/testsuite/cobol.dg/group1/simple-classes.cob
! e6506adcce16e102a54735fb17bb1159  gcc/testsuite/cobol.dg/group1/simple-if.cob
! 352864656e5132dd6192fdb77af9987a  gcc/testsuite/cobol.dg/group1/simple-perform.cob
! 6cb318606836bdff2bd6050ff874a2ca  gcc/testsuite/cobol.dg/group2/ACCEPT_DATE___DAY_and_intrinsic_functions__1_.cob
! 10340b571703d27504a57aa49aab60af  gcc/testsuite/cobol.dg/group2/ACCEPT_DATE___DAY_and_intrinsic_functions__2_.cob
! 21c94051fc5b07016ef525f144877840  gcc/testsuite/cobol.dg/group2/ACCEPT_FROM_TIME___DATE___DAY___DAY-OF-WEEK__1_.cob
! 388034c0665d67367102703c40e60d82  gcc/testsuite/cobol.dg/group2/ACCEPT_FROM_TIME___DATE___DAY___DAY-OF-WEEK__2_.cob
! 5ddb193893e5c3d53c840e244900c4db  gcc/testsuite/cobol.dg/group2/ACCEPT_FROM_TIME___DATE___DAY___DAY-OF-WEEK__2_.out
! f4905b3cede4cad548e4f57e046904d7  gcc/testsuite/cobol.dg/group2/COMP-6_arithmetic.cob
! 4c557552ba46fff61c6bba359bbd2426  gcc/testsuite/cobol.dg/group2/COMP-6_arithmetic.out
! 2060aa8f44c5912adef0f47ec97a60cb  gcc/testsuite/cobol.dg/group2/COMP-6_numeric_test.cob
! c6e915fa6924e48f3c46d0bdd843a479  gcc/testsuite/cobol.dg/group2/COMP-6_numeric_test.out
! 996f47956fad3aa7b01a2633aee055ea  gcc/testsuite/cobol.dg/group2/COMP-6_used_with_DISPLAY.cob
! baa95b2447f116f5a631da79ad316762  gcc/testsuite/cobol.dg/group2/COMP-6_used_with_DISPLAY.out
! 8da03a08de3cc6a81174023d54cd5473  gcc/testsuite/cobol.dg/group2/COMP-6_used_with_MOVE.cob
! e597ad321e86d60527f8c7000011bc2b  gcc/testsuite/cobol.dg/group2/COMP-6_used_with_MOVE.out
! eb99b99c9e6dabc94c8069e3bad4a645  gcc/testsuite/cobol.dg/group2/COMPUTE_multiplication_to_FIX4.cob
! c0496fa7d0e5acfed15b3bde8f302ebc  gcc/testsuite/cobol.dg/group2/COMPUTE_multiplication_to_FIX4.out
! f7e4a3f2c5c85ddeb645aecc5792a186  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__1_.cob
! 770e7f54918037f396938dcd095f8cf0  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__1_.out
! 4ceb6523fae1934daa01b428e6d5b854  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__2_.cob
! 33011658a399a6a9be5c37899eb4a306  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__2_.out
! 4828b4306ea036529b36c0bb44d8b712  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII.cob
! 018756473be729c6950d876365dc573b  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII.out
! e7fe51602fe10ca42c5fe456512ba76c  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII__2_.cob
! 6e6aab814ba43523e2b313c46a3e3780  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII__2_.out
! 9231024e09658f2c0b51c5863c9ff925  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.cob
! 4d861c72470e2812c684041e91621642  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.out
! dc52fd3893842d57477c07b7ab30b016  gcc/testsuite/cobol.dg/group2/EVALUATE_WHEN_NEGATIVE.cob
! 612112a8ffee04167daaa2bc2a1c9631  gcc/testsuite/cobol.dg/group2/EVALUATE_WHEN_NEGATIVE.out
! 2b4e9b7084d7b6f0d982f80f1bc1eca8  gcc/testsuite/cobol.dg/group2/EVALUATE_condition__2_.cob
! 8ec55c13138d1d465a802f052f7cd413  gcc/testsuite/cobol.dg/group2/EVALUATE_condition__2_.out
! 27e762002d03d31938800c8e25088051  gcc/testsuite/cobol.dg/group2/EVALUATE_doubled_WHEN.cob
! 81ce28588b2b73f5386b5a67a8c4983a  gcc/testsuite/cobol.dg/group2/EVALUATE_doubled_WHEN.out
! 6c9a6e7a5666de16640af114337126d9  gcc/testsuite/cobol.dg/group2/EVALUATE_with_WHEN_using_condition-1.cob
! ed5a6aa98312fb3870ac8ff7290b6548  gcc/testsuite/cobol.dg/group2/EVALUATE_with_WHEN_using_condition-1.out
! a5bc55a19aac50fe6e2eab8eeb6db994  gcc/testsuite/cobol.dg/group2/FUNCTION_ABS.cob
! 250ae5f323e99de59af8a58b18f592e9  gcc/testsuite/cobol.dg/group2/FUNCTION_ABS.out
! a9ea9148bd9d7d8e58c2f43b9fb45819  gcc/testsuite/cobol.dg/group2/FUNCTION_ACOS.cob
! 5b85fed2c6b2c8c7ab8d13838e7d34d0  gcc/testsuite/cobol.dg/group2/FUNCTION_ALL_INTRINSIC_simple_test.cob
! d457afafbd4c4c9ac3e7e144edbe7486  gcc/testsuite/cobol.dg/group2/FUNCTION_ALL_INTRINSIC_simple_test.out
! b17f06fdc20f7dfc3ee80c5da698d95b  gcc/testsuite/cobol.dg/group2/FUNCTION_ANNUITY.cob
! b56c5e1be8a6cb77f95437cf7a12651a  gcc/testsuite/cobol.dg/group2/FUNCTION_ASIN.cob
! 2a9daea373abcac58bb9f97087bb09b7  gcc/testsuite/cobol.dg/group2/FUNCTION_ATAN.cob
! 4f7b07dbf577b39a337a57d3ce86080d  gcc/testsuite/cobol.dg/group2/FUNCTION_BIGGER-POINTER.cob
! 05d71561140324804b858b80141cde6b  gcc/testsuite/cobol.dg/group2/FUNCTION_BIGGER-POINTER.out
! 253df571739c11bf5327895c19aab62f  gcc/testsuite/cobol.dg/group2/FUNCTION_BIGGER-POINTER__2_.cob
! 63f4f9d6f35eebf4ace1fc817e4887f6  gcc/testsuite/cobol.dg/group2/FUNCTION_BIGGER-POINTER__2_.out
! 5bd17681bf4a260c5b3f5dd5acd2d2cf  gcc/testsuite/cobol.dg/group2/FUNCTION_BYTE-LENGTH.cob
! 9ce5ee371f9e547d5d97f794145ba306  gcc/testsuite/cobol.dg/group2/FUNCTION_BYTE-LENGTH.out
! 41a2574cdcb5b071753cc781cb098732  gcc/testsuite/cobol.dg/group2/FUNCTION_CHAR.cob
! 468ae862970065532c58aa0bdccd5e4a  gcc/testsuite/cobol.dg/group2/FUNCTION_COMBINED-DATETIME.cob
! d76b3d7c76bf8188c7a40f1ba48918e3  gcc/testsuite/cobol.dg/group2/FUNCTION_CONCAT___CONCATENATE.cob
! 40368fb6ee00e9cf38f6018bf7a3c2c2  gcc/testsuite/cobol.dg/group2/FUNCTION_CONCAT_with_reference_modding.cob
! 087afedc9ff9a726166d414ea47211ee  gcc/testsuite/cobol.dg/group2/FUNCTION_COS.cob
! 6cd7ebc8aedad12736b72743c46b506c  gcc/testsuite/cobol.dg/group2/FUNCTION_CURRENT-DATE.cob
! 354b0f9ee82914d81ffcc8cb34984d3b  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-OF-INTEGER.cob
! c481daf6786a601dbb8ebd9a48ff9322  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-TO-YYYYMMDD.cob
! fa6888626aa5c145142bb07dca431fe0  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob
! 1309189851fee6dc1ba1bebf5399612e  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-OF-INTEGER.cob
! 7183c16a31e41cbf8e027c2e5a6e2d6c  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-TO-YYYYDDD.cob
! 1237c3e824a48b7ee7e38a3d1763dfb0  gcc/testsuite/cobol.dg/group2/FUNCTION_E.cob
! 3a7fff50072d30fe8d9ee6e6e2692ca7  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-FILE.cob
! 7f6a5ab9b73ee4ea4f242169c94ce5af  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-FILE.out
! 8f2d898437de1a0d1795fec14ba69e7b  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-STATEMENT.cob
! 780d60ecb0885c6da43db69ea4e88fd7  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-STATEMENT.out
! e98950a533e652a8ea12acc2b2a28feb  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-STATUS.cob
! 82e19963935b98c6c4d81e9368146497  gcc/testsuite/cobol.dg/group2/FUNCTION_EXCEPTION-STATUS.out
! 652408714e695083e794c7f0d15a2638  gcc/testsuite/cobol.dg/group2/FUNCTION_EXP.cob
! 29f71a8cef2263ee01fb8b6960adb813  gcc/testsuite/cobol.dg/group2/FUNCTION_EXP10.cob
! 9cb89c377ff34fe922432da5af657e93  gcc/testsuite/cobol.dg/group2/FUNCTION_FACTORIAL.cob
! 49af88dd66122b86c276e3bceb647286  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATE.cob
! 554f7e9256e11acf1b7f65b462047437  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATETIME.cob
! 62e21458cc24da84e535afcc83fdcdf2  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATETIME_with_ref_modding.cob
! 0d0242e9c93cdf89c8209ea0d49c30ff  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATE_TIME_DATETIME.cob
! 1b86d4f59576325dbfc62b274f034571  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATE_TIME_DATETIME.out
! e446c66cfe41c6d9aa0e47d77f537e85  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-DATE_with_ref_modding.cob
! a09082d971386df707ad5e77de9d6a5a  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-TIME_DP.COMMA.cob
! bdf8a20efd5f83b08d4535001c298be5  gcc/testsuite/cobol.dg/group2/FUNCTION_FORMATTED-TIME_with_ref_modding.cob
! 90dcd37a9e40e54aaf5f8db43b7fb6f9  gcc/testsuite/cobol.dg/group2/FUNCTION_FRACTION-PART.cob
! b8e78c0c826fdbdd526b7a506b2dc05f  gcc/testsuite/cobol.dg/group2/FUNCTION_HEX-OF.cob
! ac4627e7231dd374c754eaf818758d6c  gcc/testsuite/cobol.dg/group2/FUNCTION_HEX-OF.out
! a5777daf97a065fe0e9911d0319d5f1c  gcc/testsuite/cobol.dg/group2/FUNCTION_HIGHEST-ALGEBRAIC.cob
! 60663e9f408b3c2cb360d82f401c077c  gcc/testsuite/cobol.dg/group2/FUNCTION_INTEGER-OF-DATE.cob
! 40a3b506b13a6a611d46a3c17df4442b  gcc/testsuite/cobol.dg/group2/FUNCTION_INTEGER-OF-DAY.cob
! 63b776dfa409fa2557bc16a809f98b78  gcc/testsuite/cobol.dg/group2/FUNCTION_INTEGER-OF-FORMATTED-DATE.cob
! 18c41a1bb41c88c755efc372f5cf869e  gcc/testsuite/cobol.dg/group2/FUNCTION_INTEGER-PART.cob
! 4adaf79ba47b9ce1862a44c6d1c4a3ee  gcc/testsuite/cobol.dg/group2/FUNCTION_INTEGER.cob
! 9a6210e8b940b061f956c12ac356aad7  gcc/testsuite/cobol.dg/group2/FUNCTION_LENGTH__1_.cob
! ac4de6d622546a684d95ed72672f37b7  gcc/testsuite/cobol.dg/group2/FUNCTION_LENGTH__2_.cob
! 3b8d8b732ae3e9312d97f5cb26c02e26  gcc/testsuite/cobol.dg/group2/FUNCTION_LENGTH__2_.out
! 72e6fb74b2c73ec123c4d88db20176c6  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-COMPARE.cob
! 81b861951ba00fcc961698450128e3f8  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-DATE.cob
! 295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-DATE.out
! 127144f83bfc32a48b53ea76800a7729  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-TIME-FROM-SECONDS.cob
! 295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-TIME-FROM-SECONDS.out
! 33601d5cde1e935dfb89b38bf6d2f8e9  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-TIME.cob
! 295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/FUNCTION_LOCALE-TIME.out
! ac23fbcc049b96b82ff73dd9b085de88  gcc/testsuite/cobol.dg/group2/FUNCTION_LOG.cob
! c0696887b40802e266e931a70370d4a7  gcc/testsuite/cobol.dg/group2/FUNCTION_LOG10.cob
! 7c4a95a6f8faccc14fc7b2effbcac0c7  gcc/testsuite/cobol.dg/group2/FUNCTION_LOWER-CASE.cob
! 70277ce3adc2c00c88bb77f4eedc40a2  gcc/testsuite/cobol.dg/group2/FUNCTION_LOWER-CASE_with_reference_modding.cob
! 7ac9c073abd1a855ebfe74d1c9c75c99  gcc/testsuite/cobol.dg/group2/FUNCTION_LOWEST-ALGEBRAIC.cob
! a425732954534770c050dca1179a8804  gcc/testsuite/cobol.dg/group2/FUNCTION_MAX.cob
! 8690c2c70037c3182d222e3bc009c2ae  gcc/testsuite/cobol.dg/group2/FUNCTION_MAX.out
! 1202a4f283e090339c773154cc6b5796  gcc/testsuite/cobol.dg/group2/FUNCTION_MEAN.cob
! b330f1bfa018201bfd47496d5b1a5116  gcc/testsuite/cobol.dg/group2/FUNCTION_MEAN.out
! cb5f482f8a692512d33b989a20d22de1  gcc/testsuite/cobol.dg/group2/FUNCTION_MEDIAN.cob
! 465981b2c7142b9fb660b39e2de874c1  gcc/testsuite/cobol.dg/group2/FUNCTION_MEDIAN.out
! aa1aedbcf141783b531e18b0dd85275d  gcc/testsuite/cobol.dg/group2/FUNCTION_MIDRANGE.cob
! 6f0af2084c62b80eb4b947549c442759  gcc/testsuite/cobol.dg/group2/FUNCTION_MIDRANGE.out
! 4c533117b9ce0f790419674ad04cdbdb  gcc/testsuite/cobol.dg/group2/FUNCTION_MIN.cob
! acc437055384352bbee961aa59ac5ea5  gcc/testsuite/cobol.dg/group2/FUNCTION_MIN.out
! b6ee26b6f87c1faf8b57ae88cd90b75b  gcc/testsuite/cobol.dg/group2/FUNCTION_MODULE-NAME.cob
! ff6a420a9ff22dd61022b1c93ab785ef  gcc/testsuite/cobol.dg/group2/FUNCTION_MODULE-NAME.out
! e35b13dfad2d36ad9481bd6839c171f5  gcc/testsuite/cobol.dg/group2/FUNCTION_MOD__invalid_.cob
! 179a549a0e3fba28bb5d4dfcca921aed  gcc/testsuite/cobol.dg/group2/FUNCTION_MOD__valid_.cob
! 0d742580765d599d6b200c0a9796aae1  gcc/testsuite/cobol.dg/group2/FUNCTION_NUMVAL-C.cob
! ff93345c4277a724e58efe8b1d6f6b45  gcc/testsuite/cobol.dg/group2/FUNCTION_NUMVAL-C_DP.COMMA.cob
! 604c71fd03e38c2cbc40b49b3adcc508  gcc/testsuite/cobol.dg/group2/FUNCTION_NUMVAL-F.cob
! a91372b5bf586e6975216dbefc23fff5  gcc/testsuite/cobol.dg/group2/FUNCTION_NUMVAL-F.out
! 8501923ecbe903ccc34ff62c42714442  gcc/testsuite/cobol.dg/group2/FUNCTION_NUMVAL.cob
! 3eafd1fd10d94c3094f83f1c239f2fb6  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD-MAX.cob
! 9fa49b1fb0d3945aa282dc0ee88f3774  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD-MAX.out
! b7a850918406f849db1f84e6f4a28439  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD-MIN.cob
! a171dcd1b62582a4b7cb9aff860d3fa2  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD-MIN.out
! 75b7c61ee36e2a00d31a6e998f402f51  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD.cob
! b3517565099ff3d39399d3fc3ba656a9  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD.out
! 203bd165ac909596812d854cd2d159e4  gcc/testsuite/cobol.dg/group2/FUNCTION_PI.cob
! 80443fdd640b34b8f839398844c7db5d  gcc/testsuite/cobol.dg/group2/FUNCTION_PRESENT-VALUE.cob
! bd5f9625cc46f867f87a04048f7e54cd  gcc/testsuite/cobol.dg/group2/FUNCTION_PRESENT-VALUE.out
! c15e20ce4e929759a3b49c3b916a117b  gcc/testsuite/cobol.dg/group2/FUNCTION_RANDOM.cob
! 4e020bff4d0b96a6ad3061fe84dc4343  gcc/testsuite/cobol.dg/group2/FUNCTION_RANGE.cob
! 7db21e5a083520f54f1592af3442bf5c  gcc/testsuite/cobol.dg/group2/FUNCTION_REM__invalid_.cob
! ffdb3a28cbf8051dd2ad3d9d4cc9b068  gcc/testsuite/cobol.dg/group2/FUNCTION_REM__valid_.cob
! 978cc5d403d9a02cfba95e8f210d287a  gcc/testsuite/cobol.dg/group2/FUNCTION_REVERSE.cob
! 56d2954050b04464191cb1d6d0c4d530  gcc/testsuite/cobol.dg/group2/FUNCTION_REVERSE_with_reference_modding.cob
! 8fcdb5e896873626385340b7f6802db6  gcc/testsuite/cobol.dg/group2/FUNCTION_SECONDS-FROM-FORMATTED-TIME.cob
! 579579638ae25b95b278290148265a1d  gcc/testsuite/cobol.dg/group2/FUNCTION_SECONDS-PAST-MIDNIGHT.cob
! 1575a07d330f581a46e89cdf8fdc04a7  gcc/testsuite/cobol.dg/group2/FUNCTION_SIGN.cob
! c1ff3f157967069935826b9d9be10055  gcc/testsuite/cobol.dg/group2/FUNCTION_SIN.cob
! 1fbecd756e0491800acc29e54bb4740a  gcc/testsuite/cobol.dg/group2/FUNCTION_SQRT.cob
! ef4ef5dd7192b580f10056381fb739fa  gcc/testsuite/cobol.dg/group2/FUNCTION_STANDARD-DEVIATION.cob
! f9b9b58c1d970e5ac3ea46939698c0f6  gcc/testsuite/cobol.dg/group2/FUNCTION_SUBSTITUTE-CASE.cob
! 9a30d9649e24eb08874d9513d62dae9c  gcc/testsuite/cobol.dg/group2/FUNCTION_SUBSTITUTE-CASE_with_reference_mod.cob
! 1e14c7d5627610b6d2bff9837ca93e10  gcc/testsuite/cobol.dg/group2/FUNCTION_SUBSTITUTE.cob
! 738d5a1a3096ed803280f6bf7fbbef19  gcc/testsuite/cobol.dg/group2/FUNCTION_SUBSTITUTE.out
! ed88362a597a0897ba208ec85ccb9720  gcc/testsuite/cobol.dg/group2/FUNCTION_SUBSTITUTE_with_reference_modding.cob
! e327ed452cd80f8c8a6259c43682c503  gcc/testsuite/cobol.dg/group2/FUNCTION_SUM.cob
! 47aab10365bae4ae1de233f6f616c131  gcc/testsuite/cobol.dg/group2/FUNCTION_TAN.cob
! 19f042852a5a0a0550a37b3ac397046c  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DATE-YYYYMMDD.cob
! 5e8ff7069fb9ec5cd5ecffd82c3eb3a8  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DATE-YYYYMMDD.out
! 0548b4adf45747f97e7765186cb5f3a6  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DAY-YYYYDDD__1_.cob
! a171dcd1b62582a4b7cb9aff860d3fa2  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DAY-YYYYDDD__1_.out
! 74fb35c35866e2765f09d65eed36f32d  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DAY-YYYYDDD__2_.cob
! f718640fb7b799908acc0c3c609cb953  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_DP.COMMA.cob
! 699ff266c83869611be0a6c08f417c25  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_additional.cob
! d2d4e47ab4b15463020b17f88d268eca  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_with_dates.cob
! 4ba44f2e99e3b0a29889c9aad9ab8cc5  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_with_datetimes.cob
! 5765d13e00522de1277b7e892bca7b8d  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_with_times.cob
! 0e9469e1c9922f9802449c445984793c  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-NUMVAL-C.cob
! 185eb9aaf83ac08ab47b20087c16e2fb  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-NUMVAL-F.cob
! 7f4b9d2fe08f4f6a1753e62ce1e991b3  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-NUMVAL.cob
! 8184043b22e82ab95d6fa5814d9f6358  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM.cob
! 0d1ed3ff5755c0ce7a5b5d081463c10f  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM.out
! da5445b0b5e32621f6b08121b02011fb  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM_with_reference_modding.cob
! c184403404ecf91e26212dbe205a0ede  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM_with_reference_modding.out
! f422d9dd42e0668a122c09c49cedf374  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM_zero_length.cob
! 9e71cae75539324dda49c6e2abff6de7  gcc/testsuite/cobol.dg/group2/FUNCTION_TRIM_zero_length.out
! cf54f65a3660c091ee2ccee0dbf96d9e  gcc/testsuite/cobol.dg/group2/FUNCTION_UPPER-CASE.cob
! 3556e9f14a21953ad1c526fa300ba6b7  gcc/testsuite/cobol.dg/group2/FUNCTION_UPPER-CASE_with_reference_modding.cob
! e20062d5967eee32cece32410ee28ffc  gcc/testsuite/cobol.dg/group2/FUNCTION_VARIANCE.cob
! 820a5c157e8946ab275c372cf4404e06  gcc/testsuite/cobol.dg/group2/FUNCTION_WHEN-COMPILED.cob
! db7ffe2c01cc3731d9709182dc2a2056  gcc/testsuite/cobol.dg/group2/FUNCTION_YEAR-TO-YYYY.cob
! 99f57082b8394f028588ff82c46c39d9  gcc/testsuite/cobol.dg/group2/FUNCTION_as_CALL_parameter_BY_CONTENT.cob
! 607cf19be0770d73f7d3b5ec45f2d2b9  gcc/testsuite/cobol.dg/group2/FUNCTION_as_CALL_parameter_BY_CONTENT.out
! 8bc30bbd5af3931c5987010e1d132185  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.cob
! ba6b3227a078619c9a062cd5ce2edeb7  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.out
! ff665234d4e228729254d9f9088ddf64  gcc/testsuite/cobol.dg/group2/IBM_dialect_COMP_redefined_by_POINTER_as_64-bit.cob
! 6edee3c216c6b5bc598396e40997f632  gcc/testsuite/cobol.dg/group2/IBM_dialect_COMP_redefined_by_POINTER_as_64-bit.out
! 196e1b03222bd46fd53dd357a3d65c2b  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_REPLACING_LEADING.cob
! c9e1ee2ebb1dd12946174ce71a63b78c  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_REPLACING_LEADING.out
! f4446ce1af183bb91d4ece792263d009  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_REPLACING_TRAILING.cob
! 0d7d63b0738a3d77c2df3b5ca67b3993  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_REPLACING_TRAILING.out
! 974f5883266b463ed3610aa7731243b1  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_CONVERTING.cob
! eb33460bdf3340a87d125ee494d431c5  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_CONVERTING.out
! ce3aca7eb6ad3e0560dcbc77d6ec991a  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_REPLACING.cob
! 7c2a9e109b82672817755790a6eb1e33  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_REPLACING.out
! ead1f36f491fbcf2f8c5934348162ae0  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_TALLYING.cob
! 99d55c0be2cdb43ce848d5f01632f68c  gcc/testsuite/cobol.dg/group2/INSPECT_BACKWARD_simple_TALLYING.out
! 058646f1f1ece86ff1566d76196dc06f  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_NULL.cob
! 2fc81b1d02d22ad7740fa1e18f09d394  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constant.cob
! 099cea5849a1b7640f87859d868396ff  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.cob
! 7aa39c6d21d122277fdeefb41ced037a  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.out
! c1c517bbaa6c584a3d715ade80aa18c9  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.cob
! 28b183457c03adb078fa91f4a8150fed  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.out
! df690f4f23ad3fed0c1621643cf6b2ac  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_2.cob
! 08556188ad41151849881b9a6f0d0a33  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_2.out
! 0bfaf296c2fb11b4afa65e0c7798f951  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_3.cob
! fdfb3dc2b9735cbe887d03147369a3cc  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_3.out
! d8504c87ddee0f9c464f5b49fa044eb3  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_4.cob
! 91f5a07cc9b72ec1c09a50a81ae0ffdb  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_4.out
! a00d39f1507b4945dfc43e5b73057885  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5-f.cob
! 2c1d3bb5db82a97ce5d7540ffc67dcbe  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5-f.out
! 52092c9aff24e2f54a8e4535e369a069  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5-r.cob
! 246ed1e6a601496d05efb276f9fdf5da  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5-r.out
! a428833cf91a3ada64cd8637a547c4a9  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5.cob
! dcc2eb016f705df7ad97ebdf85854454  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_5.out
! c94f25f72ca7e9b19b3096c24f8c5df6  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_6.cob
! ff08d1a4483a22fd540f344cadcbfb52  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_6.out
! ee2382fa9d2d416428791140d3099b7d  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_7.cob
! a7910735e17060f2f8ce3d93ff13ca14  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_7.out
! b66f419a027d04379a43e95d166d37b6  gcc/testsuite/cobol.dg/group2/INSPECT_No_repeat_conversion_check.cob
! 9be81b0bf1b87e4506eb4052e7db6289  gcc/testsuite/cobol.dg/group2/INSPECT_REPLACING_LEADING_ZEROS_BY_SPACES.cob
! 0f9d29175b87a61c9f03768d4db03c08  gcc/testsuite/cobol.dg/group2/INSPECT_REPLACING_figurative_constant.cob
! ebff7ab5693c034650e384cd23af0127  gcc/testsuite/cobol.dg/group2/INSPECT_TALLYING_AFTER.cob
! 762e907387da8f25e954f17ac4c42512  gcc/testsuite/cobol.dg/group2/INSPECT_TALLYING_BEFORE.cob
! c7fa947f8d0bc34a12532d5fcd5f2624  gcc/testsuite/cobol.dg/group2/INSPECT_TALLYING_REPLACING_ISO_Example.cob
! 7a9665b9b0209c94433773c7ad518c72  gcc/testsuite/cobol.dg/group2/INSPECT_TALLYING_REPLACING_ISO_Example.out
! 1da66825f23b1fdfdb39ab98eff13f46  gcc/testsuite/cobol.dg/group2/INSPECT_TRAILING.cob
! eac533e1d20c6fc3182209d89d95dce1  gcc/testsuite/cobol.dg/group2/INSPECT_TRAILING.out
! 5f5ef3353680e2b791ea5a108b7f3876  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.cob
! 85a1b4e081b0827d61acd2b576f8e44d  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.out
! bb1ae587bbebd3a1c6a04cf9b5ba7730  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__2_.cob
! 23e5d4acb2cfe1daabc7c1196edf48e9  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.out
! 4ca8d1c9c513d53c80702fd0b0d90ff9  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.cob
! 2cd6ee2c70b0bde53fbe6cac3c8b8bb1  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out
! c37d3a6c238b882f0bdd37216ad6f2e2  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.cob
! 2cd6ee2c70b0bde53fbe6cac3c8b8bb1  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out
! 77cbd02141d431cc038db8d3f0b922a6  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.cob
! 68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.out
! 6d1a930a76d4ab5cc520ba673d35ff38  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.cob
! 68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.out
! 87b0bc0c9121907b31f6ee3692914a41  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.cob
! cf6cb0baac26cccf2005d78a4a1afb78  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.out
! 3a7c9ac63710b9bf9e307d6c2a2e15f2  gcc/testsuite/cobol.dg/group2/Offset_overflow.cob
! 1dcca23355272056f04fe8bf20edfce0  gcc/testsuite/cobol.dg/group2/Offset_overflow.out
! 9c84934cecd7d57e9badb90f27ae5490  gcc/testsuite/cobol.dg/group2/Offset_underflow.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_underflow.out
! 2391a13c48a4188ca206651e9e33fcbb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.cob
! 619cf3092002e36ac56fc9b86c476063  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.out
! 6dd4161b6a5683af405667780e77b3b8  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_basic_comp-3_comp-6__1_.cob
! f0b59ebd7115e16585fd20bed1238194  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_basic_comp-3_comp-6__1_.out
! e8e23746616e9c6098faa4d4421e7100  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_basic_comp-3_comp-6__2_.cob
! 9c5b0e9f36688602ff89d0a162d80974  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_basic_comp-3_comp-6__2_.out
! 8ff60b08a3525b8a34f4254174ba039e  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_dump.cob
! 4d062a5136f3551c200d692b6f7ce6ec  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_dump.out
! 83cc429e231a71bd1dc2602afd5105cc  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_numeric_test__1_.cob
! bcbe3aab73ef38800eac1bcc1e5b0da1  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_numeric_test__1_.out
! 7aeb5de9fbf430a4fc4b18e1f9e9cb62  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_numeric_test__2_.cob
! bcbe3aab73ef38800eac1bcc1e5b0da1  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_numeric_test__2_.out
! e691592de21d3dc2d8393e6cb147049b  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_DISPLAY.cob
! 26201e66cfa4abc48829813da3646802  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_DISPLAY.out
! dcd8593c5a4b24a84b102089db6380bb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_INITIALIZE.cob
! 5896e728b5c04b4052a5b32df688d156  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_INITIALIZE.out
! b300246edd93d2e432dc797364e34d4f  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_MOVE.cob
! ff6a0c9a67d9d8da4dc2990fd3c74ca5  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_used_with_MOVE.out
! f81e4d1631666dc73cab672753a19f96  gcc/testsuite/cobol.dg/group2/POINTER__display.cob
! 1a03d00f7a2dbbf286fe10017695b9e0  gcc/testsuite/cobol.dg/group2/POINTER__display.out
! b998cc667e7bffb26d211ded81f2ea9a  gcc/testsuite/cobol.dg/group2/Program-to-program_parameters_and_retvals.cob
! ae1cac648a1ff6940b99fbaaedea1b6e  gcc/testsuite/cobol.dg/group2/Program-to-program_parameters_and_retvals.out
! e38fa87f68f46664a4a725247faeaab1  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.cob
! 0bba0c9388bb78c11a2533fbadc2974e  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.out
! 2abb04d0384876e94a8ebacbc571d302  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.cob
! ed75a024a3fc8efd498fecff6e287928  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.out
! 7bf14a602d7a0547e0f9f2164a3df0c3  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.cob
! 0a74c346e7576df97fc8cd5eda3c6f43  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.out
! 3a05b449be7a9a0c7692038ca6fa06e2  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.cob
! 295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.out
! 089c486b1d98af62c01e8d392d6bda48  gcc/testsuite/cobol.dg/group2/Simple_floating-point_MOVE.cob
! 0f9c7dc18a0ed01c8e5aaf241723dbb2  gcc/testsuite/cobol.dg/group2/Simple_floating-point_MOVE.out
! 83d33552cd4dabbace4977d9979e39bf  gcc/testsuite/cobol.dg/group2/Simple_floating-point_VALUE_and_MOVE.cob
! f1433e4ad768b452d26c539bc7c90c60  gcc/testsuite/cobol.dg/group2/Simple_floating-point_VALUE_and_MOVE.out
! 7f3d1774a5a66e799e1f242a238d9ead  gcc/testsuite/cobol.dg/group2/Static_reference_modification.cob
! 935e5657c4ee72898cfbc35dcd96645b  gcc/testsuite/cobol.dg/group2/Static_reference_modification.out
! f63ca4b717f71c2f2a1bf43cab87b9fe  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.cob
! 65c9d9840c5da4c3d0e64102c2a20dee  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.out
! d29bb749d19881aed3f136d1f97f8e91  gcc/testsuite/cobol.dg/group2/UDF_fibonacci_recursion.cob
! 0276ea2df9078003e70cd09bf658a188  gcc/testsuite/cobol.dg/group2/UDF_fibonacci_recursion.out
! ec066836b3ad69bb7892cc5d9a34cc93  gcc/testsuite/cobol.dg/group2/UDF_in_COMPUTE.cob
! bf21188860d25a68d2f9c85951bdde9b  gcc/testsuite/cobol.dg/group2/UDF_in_COMPUTE.out
! 491ea987363ee8408cc92ed94c3156c1  gcc/testsuite/cobol.dg/group2/UDF_with_recursion.cob
! 7941221362e9e3a59bf6bc5f15a12beb  gcc/testsuite/cobol.dg/group2/UDF_with_recursion.out
! a75f94d635d6f81fcf6e666df78229f2  gcc/testsuite/cobol.dg/group2/call_subprogram_using_pointer__passing_pointer.cob
! 5bc38b398042105e78868858a0adf5fd  gcc/testsuite/cobol.dg/group2/call_subprogram_using_pointer__passing_pointer.out
! d19aee10ee780d01f992ae8e3163de2c  gcc/testsuite/cobol.dg/group2/floating-point_ADD_FORMAT_1.cob
! 1f4c980c1ffe9180ceedc2adc73a4761  gcc/testsuite/cobol.dg/group2/floating-point_ADD_FORMAT_1.out
! 921b344e7a1d544de6b267024c352bbb  gcc/testsuite/cobol.dg/group2/floating-point_ADD_FORMAT_2.cob
! 61da7e412266ce4442b9fa98bfaf9eed  gcc/testsuite/cobol.dg/group2/floating-point_ADD_FORMAT_2.out
! f23d541adf63b9564f927ea7db47a6fb  gcc/testsuite/cobol.dg/group2/floating-point_DIVIDE_FORMAT_1.cob
! 907c46a2b987ffcfd083a2c931a59a24  gcc/testsuite/cobol.dg/group2/floating-point_DIVIDE_FORMAT_1.out
! c8f91956823837b172f92b5fe72eb69a  gcc/testsuite/cobol.dg/group2/floating-point_DIVIDE_FORMAT_2.cob
! a7b058c3cd1e255958d872660e65c53a  gcc/testsuite/cobol.dg/group2/floating-point_DIVIDE_FORMAT_2.out
! ef019bd00eba44ad2ecd266309340c83  gcc/testsuite/cobol.dg/group2/floating-point_MULTIPLY_FORMAT_1.cob
! 15a4dcf7635d95a4df85e4587869264d  gcc/testsuite/cobol.dg/group2/floating-point_MULTIPLY_FORMAT_1.out
! b5963b02036ff978d27f84401ae9576f  gcc/testsuite/cobol.dg/group2/floating-point_MULTIPLY_FORMAT_2.cob
! 4717abe6b3e732cc15806ce8dbad636e  gcc/testsuite/cobol.dg/group2/floating-point_MULTIPLY_FORMAT_2.out
! dd53d7fb55d0e27adf37351af8df5cf2  gcc/testsuite/cobol.dg/group2/floating-point_SUBTRACT_FORMAT_1.cob
! 862431a534ef3c4c98f706e77178b302  gcc/testsuite/cobol.dg/group2/floating-point_SUBTRACT_FORMAT_1.out
! 6845ceb0330ecee6abcc0934b17a7fd2  gcc/testsuite/cobol.dg/group2/floating-point_SUBTRACT_FORMAT_2.cob
! 9cb056616f86c1cb844545727c347732  gcc/testsuite/cobol.dg/group2/floating-point_SUBTRACT_FORMAT_2.out
! 1c314570f7cbb362dd3e7e739487c960  gcc/testsuite/cobol.dg/group2/floating-point_literals.cob
! 96b2c647c950f5d1637c902171619577  gcc/testsuite/cobol.dg/group2/floating-point_literals.out
! c834ffdd674f78d7b72f01018a77ff6a  gcc/testsuite/cobol.dg/literal1.cob
! 3cc71e02a97975e9e88d7c2952f11912  gcc/testsuite/cobol.dg/output1.cob
! 3615bcff9cca29fcbf752691f3481ef9  gcc/testsuite/cobol.dg/pass.cob
! 0e8414de6bdad0be36fa5537e3256943  gcc/testsuite/cobol.dg/pr119229.cob
! 977b5f3add2848ab82340c2f0b4b9cbb  gcc/testsuite/config/default.exp
  8024a8d05ac43431e4b1302cfb4f3a39  gcc/testsuite/g++.dg/20090107-1.C
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
*************** d228a024fc49b9f546ab5bf20c98a751  gcc/te
*** 13745,13765 ****
  ecb60531b59c45ee70cb0d04f3834e56  gcc/testsuite/g++.dg/DRs/dr2237.C
  59d0a5422a2852dea60867dbf202ce2f  gcc/testsuite/g++.dg/DRs/dr2262.C
  33ccffb334dd7be92e0462b76cdef639  gcc/testsuite/g++.dg/DRs/dr2303.C
  32457cadc360e959790012ac9c4c9724  gcc/testsuite/g++.dg/DRs/dr2392.C
  e9d51aa206280c1effe695077197b752  gcc/testsuite/g++.dg/DRs/dr2406.C
  f9fe886f09e681c9e323402057864ebb  gcc/testsuite/g++.dg/DRs/dr2475.C
! e9d89346fb2fcc510203168c6cbb82be  gcc/testsuite/g++.dg/DRs/dr2478.C
  b26a3cc670cf83b0f26114e5683de2f6  gcc/testsuite/g++.dg/DRs/dr2518.C
  0d6aefe51ff95b342b96bda7d98a079a  gcc/testsuite/g++.dg/DRs/dr2530.C
  ae5152333dd60b40ffb5f5e2fdf63afc  gcc/testsuite/g++.dg/DRs/dr2543.C
  b0dfa04b7b53aefdac18e143994883bd  gcc/testsuite/g++.dg/DRs/dr2583.C
  f2f3b031e1cbc5967efb4a8bda8a5660  gcc/testsuite/g++.dg/DRs/dr2604.C
  fa6e8786f24bf1bbb1ee44a3e494556e  gcc/testsuite/g++.dg/DRs/dr2664.C
  662ef7dab4198df4626e7fdc15e43417  gcc/testsuite/g++.dg/DRs/dr2673.C
  7a4b27e45b2c85a34faf94f75f8945d1  gcc/testsuite/g++.dg/DRs/dr625.C
! 46aa5cf6922b3927601254b8e4e1bb3d  gcc/testsuite/g++.dg/README
! c2db197c9d51ba75cb2475afeb61f7a3  gcc/testsuite/g++.dg/Walloca1.C
! 320b5b68437c4d4f5168230d3d881f16  gcc/testsuite/g++.dg/Walloca2.C
  a41465f245515983bde6bb1167545c97  gcc/testsuite/g++.dg/Wattributes-2.C
  73de463d27b9bdb410c513bf96b2cf52  gcc/testsuite/g++.dg/Wattributes-3.C
  6eca350a065a90ffa5fe1016ff56b35b  gcc/testsuite/g++.dg/Wattributes-4.C
--- 14785,14823 ----
  ecb60531b59c45ee70cb0d04f3834e56  gcc/testsuite/g++.dg/DRs/dr2237.C
  59d0a5422a2852dea60867dbf202ce2f  gcc/testsuite/g++.dg/DRs/dr2262.C
  33ccffb334dd7be92e0462b76cdef639  gcc/testsuite/g++.dg/DRs/dr2303.C
+ cf646511ccdc4785a243d89063108866  gcc/testsuite/g++.dg/DRs/dr2387-aux.cc
+ fc549113cc29534ff8fb0a68c3a2eec0  gcc/testsuite/g++.dg/DRs/dr2387.C
  32457cadc360e959790012ac9c4c9724  gcc/testsuite/g++.dg/DRs/dr2392.C
  e9d51aa206280c1effe695077197b752  gcc/testsuite/g++.dg/DRs/dr2406.C
  f9fe886f09e681c9e323402057864ebb  gcc/testsuite/g++.dg/DRs/dr2475.C
! ef34cc473970260aeeceda700cd7c97b  gcc/testsuite/g++.dg/DRs/dr2478.C
  b26a3cc670cf83b0f26114e5683de2f6  gcc/testsuite/g++.dg/DRs/dr2518.C
+ 2e90769bacb797d8f60d5dcf229e2e60  gcc/testsuite/g++.dg/DRs/dr2521.C
  0d6aefe51ff95b342b96bda7d98a079a  gcc/testsuite/g++.dg/DRs/dr2530.C
  ae5152333dd60b40ffb5f5e2fdf63afc  gcc/testsuite/g++.dg/DRs/dr2543.C
  b0dfa04b7b53aefdac18e143994883bd  gcc/testsuite/g++.dg/DRs/dr2583.C
  f2f3b031e1cbc5967efb4a8bda8a5660  gcc/testsuite/g++.dg/DRs/dr2604.C
+ 725e812bcb1bb89bd0a89930ca5524eb  gcc/testsuite/g++.dg/DRs/dr2627.C
  fa6e8786f24bf1bbb1ee44a3e494556e  gcc/testsuite/g++.dg/DRs/dr2664.C
  662ef7dab4198df4626e7fdc15e43417  gcc/testsuite/g++.dg/DRs/dr2673.C
+ 351c18e7e50aaf58527ac74a651d4010  gcc/testsuite/g++.dg/DRs/dr2728.C
+ d215ccae6d38ffe8952a50ab3d7f9617  gcc/testsuite/g++.dg/DRs/dr2836.C
+ 0847101d96b0209b2a8a04bb4dd88aa1  gcc/testsuite/g++.dg/DRs/dr2855.C
+ 0c113ed3c117c9e10ad6def59f90e0f8  gcc/testsuite/g++.dg/DRs/dr2867-1.C
+ 171004893b30ed1184873699b09be792  gcc/testsuite/g++.dg/DRs/dr2867-2.C
+ 426f73bea4b90c42f042869eefa30f03  gcc/testsuite/g++.dg/DRs/dr2867-3.C
+ a54d8026af685eb4245802f9d393c62f  gcc/testsuite/g++.dg/DRs/dr2867-4.C
+ 013c9530e158b56946bf3a14faead386  gcc/testsuite/g++.dg/DRs/dr2867-5.C
+ 2f97b0625a9f7b8b1153fb617ca34c01  gcc/testsuite/g++.dg/DRs/dr2867-6.C
+ 471fea1b623283a607c5a20d73a7a889  gcc/testsuite/g++.dg/DRs/dr2867-7.C
+ c2020757348be38768a84038f994ef30  gcc/testsuite/g++.dg/DRs/dr2867-8.C
+ 098b67367f9be2c124f0064e61162fa9  gcc/testsuite/g++.dg/DRs/dr2874.C
+ a0e21528a4a4b6c55e3ddacf0a8cf5f7  gcc/testsuite/g++.dg/DRs/dr2918.C
  7a4b27e45b2c85a34faf94f75f8945d1  gcc/testsuite/g++.dg/DRs/dr625.C
! cdd5e29f9e112d6201410809ca83e0d2  gcc/testsuite/g++.dg/DRs/dr882.C
! 4e90ef5fccb128fcc1059f5ff34d2ac8  gcc/testsuite/g++.dg/README
! e8bf67ef94000b454e80c6b1ca4a5715  gcc/testsuite/g++.dg/Walloca1.C
! 41ea7d6ccdba5e37380fb26255042463  gcc/testsuite/g++.dg/Walloca2.C
  a41465f245515983bde6bb1167545c97  gcc/testsuite/g++.dg/Wattributes-2.C
  73de463d27b9bdb410c513bf96b2cf52  gcc/testsuite/g++.dg/Wattributes-3.C
  6eca350a065a90ffa5fe1016ff56b35b  gcc/testsuite/g++.dg/Wattributes-4.C
*************** d5f2ec3f68f58a172b795a7f5deae99f  gcc/te
*** 13788,13794 ****
  d6a3dec90d15ab2e54cbca93322da7ed  gcc/testsuite/g++.dg/abi/abi-tag16a.C
  585a58c93973b99a7cd1f0eb6cfce127  gcc/testsuite/g++.dg/abi/abi-tag17.C
  1f631f103e18b0ae6b6b4b7825a48b7a  gcc/testsuite/g++.dg/abi/abi-tag18.C
! e3c413bf3ccfabd14c4ac28d8ad5b7bd  gcc/testsuite/g++.dg/abi/abi-tag18a.C
  403b13e4e8f4f1a53472f6656f4e9953  gcc/testsuite/g++.dg/abi/abi-tag19.C
  064eba36c22e1b67e37a8c95a5698520  gcc/testsuite/g++.dg/abi/abi-tag2.C
  f19a797248af01c5d5f5921e6516c19a  gcc/testsuite/g++.dg/abi/abi-tag20.C
--- 14846,14852 ----
  d6a3dec90d15ab2e54cbca93322da7ed  gcc/testsuite/g++.dg/abi/abi-tag16a.C
  585a58c93973b99a7cd1f0eb6cfce127  gcc/testsuite/g++.dg/abi/abi-tag17.C
  1f631f103e18b0ae6b6b4b7825a48b7a  gcc/testsuite/g++.dg/abi/abi-tag18.C
! 0bc8fbe13defe41ddb3caeeb0db6a01c  gcc/testsuite/g++.dg/abi/abi-tag18a.C
  403b13e4e8f4f1a53472f6656f4e9953  gcc/testsuite/g++.dg/abi/abi-tag19.C
  064eba36c22e1b67e37a8c95a5698520  gcc/testsuite/g++.dg/abi/abi-tag2.C
  f19a797248af01c5d5f5921e6516c19a  gcc/testsuite/g++.dg/abi/abi-tag20.C
*************** b03e050cd2306239cb18c55acf037ffa  gcc/te
*** 13822,13828 ****
  2c0942760e20e3aa7bbefce17e693447  gcc/testsuite/g++.dg/abi/anon6a.C
  770a1857da6a05380e26eabb7f0ecb92  gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C
  cb4ad686f7564a8666256212398d911d  gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C
! 62499069488aeb166c32135bb590f23e  gcc/testsuite/g++.dg/abi/arm_rtti1.C
  75eaf4809f23fb10dd33b8f862358f9b  gcc/testsuite/g++.dg/abi/arm_va_list.C
  e1aa0c563084dd7030c3c474c45a09dd  gcc/testsuite/g++.dg/abi/arm_va_list2.C
  5d32a57ca7aab107c9dd3260fd19e71e  gcc/testsuite/g++.dg/abi/arm_va_list2.h
--- 14880,14886 ----
  2c0942760e20e3aa7bbefce17e693447  gcc/testsuite/g++.dg/abi/anon6a.C
  770a1857da6a05380e26eabb7f0ecb92  gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C
  cb4ad686f7564a8666256212398d911d  gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C
! 6f92ec87752593189805e0da8ed548dc  gcc/testsuite/g++.dg/abi/arm_rtti1.C
  75eaf4809f23fb10dd33b8f862358f9b  gcc/testsuite/g++.dg/abi/arm_va_list.C
  e1aa0c563084dd7030c3c474c45a09dd  gcc/testsuite/g++.dg/abi/arm_va_list2.C
  5d32a57ca7aab107c9dd3260fd19e71e  gcc/testsuite/g++.dg/abi/arm_va_list2.h
*************** b8aaec32a77e9927231c6c5f3237432f  gcc/te
*** 13837,13842 ****
--- 14895,14902 ----
  14697006c1045d90c0f505dbfc8c5072  gcc/testsuite/g++.dg/abi/bitfield9.C
  104feb47499ce7e6125b3ef0a9ee49f3  gcc/testsuite/g++.dg/abi/comdat1.C
  bc52f8836c83bf95f70976078f1c9616  gcc/testsuite/g++.dg/abi/comdat2.C
+ d4efdf5c223cead8e9524dc4c698fb41  gcc/testsuite/g++.dg/abi/comdat3.C
+ 535dc9a1ae61607620c0607cc9a7072a  gcc/testsuite/g++.dg/abi/comdat4.C
  bb696554d34c85c7a4f3ecf5c800d48e  gcc/testsuite/g++.dg/abi/comdat5.C
  b587f170bbc6f95ef287e408bcafe1e3  gcc/testsuite/g++.dg/abi/cookie1.C
  06ad90a0554de61d87d60dab2a30bf3e  gcc/testsuite/g++.dg/abi/covariant1.C
*************** d06c8255efe2bb66e4bb6606d9fb8b0c  gcc/te
*** 13913,13918 ****
--- 14973,14983 ----
  03d70327fa3bda7dc99d0428b36950bf  gcc/testsuite/g++.dg/abi/lambda-ctx1-18.C
  3da545211dbae3d556aa73401c07bc85  gcc/testsuite/g++.dg/abi/lambda-ctx1-18vs17.C
  3a8a7291b05ddbed1c8540e3f073eca4  gcc/testsuite/g++.dg/abi/lambda-ctx1.h
+ 55ea995b3969dcb6dfe19b01a1b5bf2c  gcc/testsuite/g++.dg/abi/lambda-ctx2-19.C
+ e457d8b6c1d6ca61848c778661ed8e8a  gcc/testsuite/g++.dg/abi/lambda-ctx2-19vs20.C
+ 8562aae8be6ee8153b8ed8c1b606147f  gcc/testsuite/g++.dg/abi/lambda-ctx2-20.C
+ 4fc708a30b7da03a4ab81812efb116da  gcc/testsuite/g++.dg/abi/lambda-ctx2.h
+ 37e50979fe2019438f8215311a171540  gcc/testsuite/g++.dg/abi/lambda-ctx3.C
  debb971cc045e8ae567ecab94e5e9b5e  gcc/testsuite/g++.dg/abi/lambda-defarg1.C
  0273b117000077d70457d264a343c270  gcc/testsuite/g++.dg/abi/lambda-sig1-17.C
  287450c79b6c95084ce1bbe8e888fd16  gcc/testsuite/g++.dg/abi/lambda-sig1-18.C
*************** ad49acfed68f5e9d85c906091a1bec23  gcc/te
*** 13930,13942 ****
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/abi/local1-a.cc
  4ab5160617737559c38e1ffb650b797e  gcc/testsuite/g++.dg/abi/local1.C
  34ecb36205a7c22314ddda92d332a23d  gcc/testsuite/g++.dg/abi/local2.C
! cb778797562a162b72b39cfba0cc3188  gcc/testsuite/g++.dg/abi/macro0.C
  06f0193b05c4ae743af4e38aec8d1122  gcc/testsuite/g++.dg/abi/macro2.C
! 5a637c99e4aa66fa130b6c1d893fc41e  gcc/testsuite/g++.dg/abi/main.C
  2d2735797226ba822f20bc9fdf737f7e  gcc/testsuite/g++.dg/abi/mangle-arm-crypto.C
  8fa1b15f4b3dc6b4e5a254690adfcb61  gcc/testsuite/g++.dg/abi/mangle-concepts1.C
  61e0326c5031ee52c2d6f8ba1dc748dc  gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
  ad92c723d1e80f05d9f35deb51fa2634  gcc/testsuite/g++.dg/abi/mangle-neon.C
  9b8d821e6926cbc69b2464e7016210e6  gcc/testsuite/g++.dg/abi/mangle-regparm.C
  769d9a1ce7dda86bf62f8cceba27216a  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
  683d273f7a4481306d20ed785c1d122f  gcc/testsuite/g++.dg/abi/mangle-ttp1.C
--- 14995,15008 ----
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/abi/local1-a.cc
  4ab5160617737559c38e1ffb650b797e  gcc/testsuite/g++.dg/abi/local1.C
  34ecb36205a7c22314ddda92d332a23d  gcc/testsuite/g++.dg/abi/local2.C
! 6d082f74d9ad8be80b0d564635da6647  gcc/testsuite/g++.dg/abi/macro0.C
  06f0193b05c4ae743af4e38aec8d1122  gcc/testsuite/g++.dg/abi/macro2.C
! 7793e1db493dae674047e2e15147d1ff  gcc/testsuite/g++.dg/abi/main.C
  2d2735797226ba822f20bc9fdf737f7e  gcc/testsuite/g++.dg/abi/mangle-arm-crypto.C
  8fa1b15f4b3dc6b4e5a254690adfcb61  gcc/testsuite/g++.dg/abi/mangle-concepts1.C
  61e0326c5031ee52c2d6f8ba1dc748dc  gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
  ad92c723d1e80f05d9f35deb51fa2634  gcc/testsuite/g++.dg/abi/mangle-neon.C
+ 9d9a916a5f3bfe180ddf1c5a0c929016  gcc/testsuite/g++.dg/abi/mangle-new1.C
  9b8d821e6926cbc69b2464e7016210e6  gcc/testsuite/g++.dg/abi/mangle-regparm.C
  769d9a1ce7dda86bf62f8cceba27216a  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
  683d273f7a4481306d20ed785c1d122f  gcc/testsuite/g++.dg/abi/mangle-ttp1.C
*************** b300099c7e5174547565083d8c78c65a  gcc/te
*** 13967,13977 ****
  ff7a522e4b75ffd7f2c9c22596bb9d35  gcc/testsuite/g++.dg/abi/mangle33.C
  03db5b2978331b389723d875ecce081a  gcc/testsuite/g++.dg/abi/mangle34.C
  58775a282efb6a2018bdf401ea217bd0  gcc/testsuite/g++.dg/abi/mangle35.C
! ae5f2057177a2db77838bf985afe396c  gcc/testsuite/g++.dg/abi/mangle36.C
  acf8d67d245967fdaa95cde8673c4e48  gcc/testsuite/g++.dg/abi/mangle37.C
  3d824624411a63f63d6336ba31f3d22c  gcc/testsuite/g++.dg/abi/mangle39.C
! d1eefd84cf6c9245fb94bb6803eead92  gcc/testsuite/g++.dg/abi/mangle40.C
! 4d733eb555077176700ed4afac5f073b  gcc/testsuite/g++.dg/abi/mangle41.C
  b3b6730af33c92c56cb913746c0fd666  gcc/testsuite/g++.dg/abi/mangle42.C
  1b6cb0839583a17224beec0b38c0bd0b  gcc/testsuite/g++.dg/abi/mangle43.C
  e5ad3d0cdb04a6e6e6d42f21b71736dc  gcc/testsuite/g++.dg/abi/mangle44.C
--- 15033,15043 ----
  ff7a522e4b75ffd7f2c9c22596bb9d35  gcc/testsuite/g++.dg/abi/mangle33.C
  03db5b2978331b389723d875ecce081a  gcc/testsuite/g++.dg/abi/mangle34.C
  58775a282efb6a2018bdf401ea217bd0  gcc/testsuite/g++.dg/abi/mangle35.C
! 5931bb54155f941185e9a32f51bdd151  gcc/testsuite/g++.dg/abi/mangle36.C
  acf8d67d245967fdaa95cde8673c4e48  gcc/testsuite/g++.dg/abi/mangle37.C
  3d824624411a63f63d6336ba31f3d22c  gcc/testsuite/g++.dg/abi/mangle39.C
! abd6054c6faada42a8fe8e50b8b65e3b  gcc/testsuite/g++.dg/abi/mangle40.C
! 3959960759931de3c60806690083fde3  gcc/testsuite/g++.dg/abi/mangle41.C
  b3b6730af33c92c56cb913746c0fd666  gcc/testsuite/g++.dg/abi/mangle42.C
  1b6cb0839583a17224beec0b38c0bd0b  gcc/testsuite/g++.dg/abi/mangle43.C
  e5ad3d0cdb04a6e6e6d42f21b71736dc  gcc/testsuite/g++.dg/abi/mangle44.C
*************** d38901b61d8e8c42e6c0084cde0eaec0  gcc/te
*** 14008,14020 ****
  35cffbd99967a46bf956e73ee1b3f015  gcc/testsuite/g++.dg/abi/mangle71.C
  3203c44de34714bd8a23fd6d2d8afbc6  gcc/testsuite/g++.dg/abi/mangle72.C
  349dbb69d60b741455bdec33b60f07b7  gcc/testsuite/g++.dg/abi/mangle73.C
! 83cb6ef6e231d0e515e9dfb5f237c4b2  gcc/testsuite/g++.dg/abi/mangle74.C
  20b3d9277c53dc12edcc27818e247f14  gcc/testsuite/g++.dg/abi/mangle75.C
  1aaa5a84d891196d161f2e982bf108b2  gcc/testsuite/g++.dg/abi/mangle76.C
  9589ca965734b41ddfa8999e07f25f80  gcc/testsuite/g++.dg/abi/mangle77.C
  8fbd7742a94fa0b7419ef7f21c24dd43  gcc/testsuite/g++.dg/abi/mangle78.C
  d987b63109ee0eb4b7f916f91d8d24be  gcc/testsuite/g++.dg/abi/mangle79.C
  eeee984fc971f0592acc52efb13ea93e  gcc/testsuite/g++.dg/abi/mangle8.C
  8c95c7ea3760b8a1e7954b3da9f45a16  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
--- 15074,15087 ----
  35cffbd99967a46bf956e73ee1b3f015  gcc/testsuite/g++.dg/abi/mangle71.C
  3203c44de34714bd8a23fd6d2d8afbc6  gcc/testsuite/g++.dg/abi/mangle72.C
  349dbb69d60b741455bdec33b60f07b7  gcc/testsuite/g++.dg/abi/mangle73.C
! 76c5ed32d86766727443feaa8b65d4d7  gcc/testsuite/g++.dg/abi/mangle74.C
  20b3d9277c53dc12edcc27818e247f14  gcc/testsuite/g++.dg/abi/mangle75.C
  1aaa5a84d891196d161f2e982bf108b2  gcc/testsuite/g++.dg/abi/mangle76.C
  9589ca965734b41ddfa8999e07f25f80  gcc/testsuite/g++.dg/abi/mangle77.C
  8fbd7742a94fa0b7419ef7f21c24dd43  gcc/testsuite/g++.dg/abi/mangle78.C
  d987b63109ee0eb4b7f916f91d8d24be  gcc/testsuite/g++.dg/abi/mangle79.C
  eeee984fc971f0592acc52efb13ea93e  gcc/testsuite/g++.dg/abi/mangle8.C
+ 91fe59f4b908b8f1ebd09487c43147d8  gcc/testsuite/g++.dg/abi/mangle80.C
  8c95c7ea3760b8a1e7954b3da9f45a16  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
*************** cb81409286cfde0873e944ba80b2826e  gcc/te
*** 14030,14038 ****
  6d86ff25fe0e7bc030ff238bd833862a  gcc/testsuite/g++.dg/abi/noreturn1.C
  c57345fa3b5ca1a7540c77ee0ce25605  gcc/testsuite/g++.dg/abi/noreturn2.C
  6cfa463b31864926599a103492701f5e  gcc/testsuite/g++.dg/abi/nsdmi-aggr1.C
! 4a1564d0fc5555f57e65545a60482540  gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
  39432d801ca8ec61309ef8049d99d222  gcc/testsuite/g++.dg/abi/nullptr-align.C
! 40aa8920043c7a566e640f5317c18f1f  gcc/testsuite/g++.dg/abi/nullptr-align2.C
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
--- 15097,15105 ----
  6d86ff25fe0e7bc030ff238bd833862a  gcc/testsuite/g++.dg/abi/noreturn1.C
  c57345fa3b5ca1a7540c77ee0ce25605  gcc/testsuite/g++.dg/abi/noreturn2.C
  6cfa463b31864926599a103492701f5e  gcc/testsuite/g++.dg/abi/nsdmi-aggr1.C
! 4fd0c0d8ad04635ea42bb465ac9dbaf7  gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
  39432d801ca8ec61309ef8049d99d222  gcc/testsuite/g++.dg/abi/nullptr-align.C
! 7a8c06824c2e6e1a18f9d189ab082959  gcc/testsuite/g++.dg/abi/nullptr-align2.C
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
*************** a612359f7851a82e1755e8a1d7d750c8  gcc/te
*** 14071,14077 ****
  3b08956316b86515387a9ec36363d591  gcc/testsuite/g++.dg/abi/pr98531-3.C
  fcd31b037e301fd0bc75088f33016314  gcc/testsuite/g++.dg/abi/pr98531-4.C
  4a1543932abd77ea1cfba28eecdeeef4  gcc/testsuite/g++.dg/abi/pragma-pack1.C
! 1fe05d7ab8ab4e934af55d25129c75ce  gcc/testsuite/g++.dg/abi/pure-virtual1.C
  07cf3aaffde4420f68a9950d198b9b50  gcc/testsuite/g++.dg/abi/ref-temp1.C
  758c2fd81af2f42665b56b5d21b15e9f  gcc/testsuite/g++.dg/abi/regparm1.C
  d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
--- 15138,15144 ----
  3b08956316b86515387a9ec36363d591  gcc/testsuite/g++.dg/abi/pr98531-3.C
  fcd31b037e301fd0bc75088f33016314  gcc/testsuite/g++.dg/abi/pr98531-4.C
  4a1543932abd77ea1cfba28eecdeeef4  gcc/testsuite/g++.dg/abi/pragma-pack1.C
! 575f2d21b12fa036e43c1bc0a6dc85e3  gcc/testsuite/g++.dg/abi/pure-virtual1.C
  07cf3aaffde4420f68a9950d198b9b50  gcc/testsuite/g++.dg/abi/ref-temp1.C
  758c2fd81af2f42665b56b5d21b15e9f  gcc/testsuite/g++.dg/abi/regparm1.C
  d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
*************** c88701df415b47ac9bf5cba84cf379ab  gcc/te
*** 14102,14134 ****
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
! 8912b54490e20101a190287fddb390f8  gcc/testsuite/g++.dg/analyzer/analyzer.exp
  0918dccee8951925f7bc4640874a6cd3  gcc/testsuite/g++.dg/analyzer/cstdlib-2.C
! b1051c81ee9929eae4057f7d1ce5ecd2  gcc/testsuite/g++.dg/analyzer/cstdlib.C
  7951a855cc080064bcfdf98631e39a2e  gcc/testsuite/g++.dg/analyzer/ctor-dtor-1.C
  d1eaf073a251f60143e80284bc5a504c  gcc/testsuite/g++.dg/analyzer/dyncast-1.C
! b5f7e42a515111c2a2c61cba0b6dc085  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C
! 43d845a88294d03caa424f370bae2ce1  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C
! eed0910feffb5ff8a66dbbd8967034ec  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C
! c930c1631af9c06ed7dbcd2e167abaff  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
  6c9235c35035b59cc0a83132c639d00f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-3.C
! e618363917558f650a6b91cce53eb8d2  gcc/testsuite/g++.dg/analyzer/malloc.C
  172304701d90affbd3b1d50e2367e8f2  gcc/testsuite/g++.dg/analyzer/named-functions.C
  7292fd874dc6a2a17f2f505c44add678  gcc/testsuite/g++.dg/analyzer/new-1.C
  ef1104f0fab7e60076227be92ea94c36  gcc/testsuite/g++.dg/analyzer/new-2.C
! bcda06f94e400d0e9992cb49d4db7fdb  gcc/testsuite/g++.dg/analyzer/new-vs-malloc.C
  0fba7e84073188da184220b270ab31e6  gcc/testsuite/g++.dg/analyzer/noexcept-new.C
  154cef97930d4b392059ba0eb566928e  gcc/testsuite/g++.dg/analyzer/out-of-bounds-placement-new.C
! 4d1b1241e56a2914011d1f6e58139909  gcc/testsuite/g++.dg/analyzer/placement-new-size.C
  4336313eae16e86d135b8982798efa70  gcc/testsuite/g++.dg/analyzer/placement-new.C
  9740438440ab651939b2a10e2a3fb9f1  gcc/testsuite/g++.dg/analyzer/pr100244.C
  d4bc63615a492ebed26cfe6dcaccf3f8  gcc/testsuite/g++.dg/analyzer/pr101522.C
  f196621f1d8a0f8a5cd5899222a61f1b  gcc/testsuite/g++.dg/analyzer/pr102662.C
  73c41bca14462db90e2256a8edfe630e  gcc/testsuite/g++.dg/analyzer/pr108003.C
! 337663ec28ba5178e5e5832bde31b266  gcc/testsuite/g++.dg/analyzer/pr93212.C
  6730f749b069d8ed2ba525a0ff83ad2c  gcc/testsuite/g++.dg/analyzer/pr93288.C
  c12e9b1c9d4173ff464e74ea78ab647e  gcc/testsuite/g++.dg/analyzer/pr93777.C
  a2fd899038ad8292f72a6822b197251e  gcc/testsuite/g++.dg/analyzer/pr93899.C
--- 15169,15204 ----
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
+ bbebf12acd88ceeb72fb99bff77e889b  gcc/testsuite/g++.dg/absvect.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
! 806e88a78438f2d478b5ab1e9caa01f7  gcc/testsuite/g++.dg/alias-checks.C
! 45f080b7b8ebc92ae9b6072bf11d0451  gcc/testsuite/g++.dg/analyzer/analyzer.exp
  0918dccee8951925f7bc4640874a6cd3  gcc/testsuite/g++.dg/analyzer/cstdlib-2.C
! 4eff577cfbafc7e71c5a97654882870b  gcc/testsuite/g++.dg/analyzer/cstdlib.C
  7951a855cc080064bcfdf98631e39a2e  gcc/testsuite/g++.dg/analyzer/ctor-dtor-1.C
  d1eaf073a251f60143e80284bc5a504c  gcc/testsuite/g++.dg/analyzer/dyncast-1.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
! e000c1d398eb170979b06c1a5a317727  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
  6c9235c35035b59cc0a83132c639d00f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-3.C
! 715a17af2dffd8cf140b06abfca9c16a  gcc/testsuite/g++.dg/analyzer/infinite-recursion-pr63388.C
! c57f4182655c02f2e4278cdf3d4f9a33  gcc/testsuite/g++.dg/analyzer/malloc.C
  172304701d90affbd3b1d50e2367e8f2  gcc/testsuite/g++.dg/analyzer/named-functions.C
  7292fd874dc6a2a17f2f505c44add678  gcc/testsuite/g++.dg/analyzer/new-1.C
  ef1104f0fab7e60076227be92ea94c36  gcc/testsuite/g++.dg/analyzer/new-2.C
! 8ad43f6e758f86ed25166bb37472f8d4  gcc/testsuite/g++.dg/analyzer/new-vs-malloc.C
  0fba7e84073188da184220b270ab31e6  gcc/testsuite/g++.dg/analyzer/noexcept-new.C
  154cef97930d4b392059ba0eb566928e  gcc/testsuite/g++.dg/analyzer/out-of-bounds-placement-new.C
! 8413eed4b939dd84aff079c383eb6bb6  gcc/testsuite/g++.dg/analyzer/placement-new-size.C
  4336313eae16e86d135b8982798efa70  gcc/testsuite/g++.dg/analyzer/placement-new.C
  9740438440ab651939b2a10e2a3fb9f1  gcc/testsuite/g++.dg/analyzer/pr100244.C
  d4bc63615a492ebed26cfe6dcaccf3f8  gcc/testsuite/g++.dg/analyzer/pr101522.C
  f196621f1d8a0f8a5cd5899222a61f1b  gcc/testsuite/g++.dg/analyzer/pr102662.C
  73c41bca14462db90e2256a8edfe630e  gcc/testsuite/g++.dg/analyzer/pr108003.C
! aec30a45b96aa55ef794d952423f9861  gcc/testsuite/g++.dg/analyzer/pr93212.C
  6730f749b069d8ed2ba525a0ff83ad2c  gcc/testsuite/g++.dg/analyzer/pr93288.C
  c12e9b1c9d4173ff464e74ea78ab647e  gcc/testsuite/g++.dg/analyzer/pr93777.C
  a2fd899038ad8292f72a6822b197251e  gcc/testsuite/g++.dg/analyzer/pr93899.C
*************** a4e6ecf8eb5d90837d394182e0f66932  gcc/te
*** 14142,14163 ****
  193b3e5ec79d8a574b99f4e8d24f1371  gcc/testsuite/g++.dg/analyzer/pr96643.C
  81f94699d318a0dddde448db3be19c82  gcc/testsuite/g++.dg/analyzer/pr96723.C
  0e3d325deb7c52ea428d98b81934cc8f  gcc/testsuite/g++.dg/analyzer/pr96763.C
! 61469d4979998dc9ab89402985b38608  gcc/testsuite/g++.dg/analyzer/pr97116.C
  fd2e08e4f10e3ceec481fed9289f968c  gcc/testsuite/g++.dg/analyzer/pr97489.C
  db2b7f6c1be40cc086aa678eb7d66cad  gcc/testsuite/g++.dg/analyzer/pr99064.C
  b355f66bf32fab6d4e4348cbfdd707d2  gcc/testsuite/g++.dg/analyzer/vfunc-1.C
! 5eeefd70c9d4493cf685b8eca4313dd4  gcc/testsuite/g++.dg/analyzer/vfunc-2.C
! 13526f89c6948b95aef336c0a8d9d75c  gcc/testsuite/g++.dg/analyzer/vfunc-3.C
  9b9a001e3dcd409dc5312ef55387e581  gcc/testsuite/g++.dg/analyzer/vfunc-4.C
! f211479ac4d0a91cf570369c53463c2d  gcc/testsuite/g++.dg/analyzer/vfunc-5.C
! eb1f04a2f923d17de40d560c0efdda11  gcc/testsuite/g++.dg/asan/asan.exp
  aaab0b483d6b43b9fb8facfcf01ac3b3  gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc
  58f1893fa192cc0429f68ba9628696b9  gcc/testsuite/g++.dg/asan/asan_globals_test.cc
  bb93dc37aa98920c58cec65159b0c54a  gcc/testsuite/g++.dg/asan/asan_mem_test.cc
  122f5443f67e3370b6ab442b4d4f9fae  gcc/testsuite/g++.dg/asan/asan_oob_test.cc
  b62cd97dedd00a9fbbd509c4e3d6264b  gcc/testsuite/g++.dg/asan/asan_str_test.cc
  631e8e57cd8e7aa2135bbcd88e39e92f  gcc/testsuite/g++.dg/asan/asan_test.C
! 2ce06234b99c8ccc82520f6974a4a76b  gcc/testsuite/g++.dg/asan/asan_test.cc
  7b5f694f7ad9cbae4aab558727eaceaf  gcc/testsuite/g++.dg/asan/asan_test_config.h
  a455db6e8dc9b02d6f2c59488f513896  gcc/testsuite/g++.dg/asan/asan_test_utils.h
  5e2fbdaa2b9b39d6bf1f290e581722f4  gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C
--- 15212,15233 ----
  193b3e5ec79d8a574b99f4e8d24f1371  gcc/testsuite/g++.dg/analyzer/pr96643.C
  81f94699d318a0dddde448db3be19c82  gcc/testsuite/g++.dg/analyzer/pr96723.C
  0e3d325deb7c52ea428d98b81934cc8f  gcc/testsuite/g++.dg/analyzer/pr96763.C
! 53b12a163fc148ccfa811ba18531ee17  gcc/testsuite/g++.dg/analyzer/pr97116.C
  fd2e08e4f10e3ceec481fed9289f968c  gcc/testsuite/g++.dg/analyzer/pr97489.C
  db2b7f6c1be40cc086aa678eb7d66cad  gcc/testsuite/g++.dg/analyzer/pr99064.C
  b355f66bf32fab6d4e4348cbfdd707d2  gcc/testsuite/g++.dg/analyzer/vfunc-1.C
! ae4362b6e0f5c4a5254b627bcef29e36  gcc/testsuite/g++.dg/analyzer/vfunc-2.C
! 7af30611c97f31c197651cfc7de2bd24  gcc/testsuite/g++.dg/analyzer/vfunc-3.C
  9b9a001e3dcd409dc5312ef55387e581  gcc/testsuite/g++.dg/analyzer/vfunc-4.C
! a41b1b19f14b71da10081e7bd5698a6f  gcc/testsuite/g++.dg/analyzer/vfunc-5.C
! ac2bbc752ebe23bbf647af1ce0cc445b  gcc/testsuite/g++.dg/asan/asan.exp
  aaab0b483d6b43b9fb8facfcf01ac3b3  gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc
  58f1893fa192cc0429f68ba9628696b9  gcc/testsuite/g++.dg/asan/asan_globals_test.cc
  bb93dc37aa98920c58cec65159b0c54a  gcc/testsuite/g++.dg/asan/asan_mem_test.cc
  122f5443f67e3370b6ab442b4d4f9fae  gcc/testsuite/g++.dg/asan/asan_oob_test.cc
  b62cd97dedd00a9fbbd509c4e3d6264b  gcc/testsuite/g++.dg/asan/asan_str_test.cc
  631e8e57cd8e7aa2135bbcd88e39e92f  gcc/testsuite/g++.dg/asan/asan_test.C
! 8b1aa8c61051ed1cee68c19feebe90b0  gcc/testsuite/g++.dg/asan/asan_test.cc
  7b5f694f7ad9cbae4aab558727eaceaf  gcc/testsuite/g++.dg/asan/asan_test_config.h
  a455db6e8dc9b02d6f2c59488f513896  gcc/testsuite/g++.dg/asan/asan_test_utils.h
  5e2fbdaa2b9b39d6bf1f290e581722f4  gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C
*************** fb777e6427f4a224508112af8340c3d4  gcc/te
*** 14178,14183 ****
--- 15248,15256 ----
  8b04df9268a6b4bf6e32b9647e354fe9  gcc/testsuite/g++.dg/asan/large-func-test-1.C
  ca4a8065918a3119cb5474bacec801f2  gcc/testsuite/g++.dg/asan/pr102656.C
  b03be3a03970717959df65ccdcbebe88  gcc/testsuite/g++.dg/asan/pr104449.C
+ 7998896b5b941ead8835759e67d0fff5  gcc/testsuite/g++.dg/asan/pr117845-2.C
+ bcebd751b296d1287bb9fa7c080ccecb  gcc/testsuite/g++.dg/asan/pr117845.C
+ 350e8cfd78cd243b5ca66f3b0149e4b7  gcc/testsuite/g++.dg/asan/pr118763.C
  e472f2ce37f2b55b1358ec08717d9f08  gcc/testsuite/g++.dg/asan/pr55617.C
  74a04a20e12a8acd0fd7d05742cf8d63  gcc/testsuite/g++.dg/asan/pr62017.C
  505943436d80a41b5e95bf0b67db97cd  gcc/testsuite/g++.dg/asan/pr64937.C
*************** e0fa4a9e3d3debbc97f800a78bdcbfdb  gcc/te
*** 14221,14230 ****
  d0f4a6bb82734b4bff2e3839790242cb  gcc/testsuite/g++.dg/auto-init-uninit-pred-2_a.C
  f7f7c06ac90f234094ae984c3c676df3  gcc/testsuite/g++.dg/auto-init-uninit-pred-3_a.C
  6076d42dd1204b922d5fb0babad714f5  gcc/testsuite/g++.dg/auto-init-uninit-pred-4.C
! 77fb7d687f7d8cd923389754a5007cd5  gcc/testsuite/g++.dg/bprob/bprob.exp
  6683eda46cb30a95dcb3ae310aa86684  gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
  91292dc36de1287d9de59661dd0c8c78  gcc/testsuite/g++.dg/bprob/g++-bprob-2.C
! eb7c2ac5d3e686273e3fe6fe17a3abe4  gcc/testsuite/g++.dg/cdce3.C
  c5de6d694fe6e93fbab2326e46d61f7e  gcc/testsuite/g++.dg/cet-notrack-1.C
  5d6eb1269c8738b70f3d15b9a148001f  gcc/testsuite/g++.dg/charset/asm1.c
  f9a431484c75dceb2b5776a2ec603670  gcc/testsuite/g++.dg/charset/asm2.c
--- 15294,15303 ----
  d0f4a6bb82734b4bff2e3839790242cb  gcc/testsuite/g++.dg/auto-init-uninit-pred-2_a.C
  f7f7c06ac90f234094ae984c3c676df3  gcc/testsuite/g++.dg/auto-init-uninit-pred-3_a.C
  6076d42dd1204b922d5fb0babad714f5  gcc/testsuite/g++.dg/auto-init-uninit-pred-4.C
! 5b45796d1b11fb66c3ed125efb171b1d  gcc/testsuite/g++.dg/bprob/bprob.exp
  6683eda46cb30a95dcb3ae310aa86684  gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
  91292dc36de1287d9de59661dd0c8c78  gcc/testsuite/g++.dg/bprob/g++-bprob-2.C
! 9347369322bf1c542569f9cd4642feb2  gcc/testsuite/g++.dg/cdce3.C
  c5de6d694fe6e93fbab2326e46d61f7e  gcc/testsuite/g++.dg/cet-notrack-1.C
  5d6eb1269c8738b70f3d15b9a148001f  gcc/testsuite/g++.dg/charset/asm1.c
  f9a431484c75dceb2b5776a2ec603670  gcc/testsuite/g++.dg/charset/asm2.c
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 14233,14239 ****
  13aa9df754ce327f35901d755310d167  gcc/testsuite/g++.dg/charset/asm5.c
  188e64ef71cd1832cf590f89eb899d5b  gcc/testsuite/g++.dg/charset/attribute1.c
  5ec905da0c5303d292f6f23f2befdd9b  gcc/testsuite/g++.dg/charset/attribute2.c
! 5360fb8aeacfa43cf97f791f63edb873  gcc/testsuite/g++.dg/charset/charset.exp
  c3f1b1efe5249f47d609a5022d321c0a  gcc/testsuite/g++.dg/charset/extern1.cc
  e00c15044b80ea8ae41ddca791f728b5  gcc/testsuite/g++.dg/charset/extern2.cc
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/g++.dg/charset/extern3.cc
--- 15306,15312 ----
  13aa9df754ce327f35901d755310d167  gcc/testsuite/g++.dg/charset/asm5.c
  188e64ef71cd1832cf590f89eb899d5b  gcc/testsuite/g++.dg/charset/attribute1.c
  5ec905da0c5303d292f6f23f2befdd9b  gcc/testsuite/g++.dg/charset/attribute2.c
! ab64be4d7d6214dee55649a4b2fec095  gcc/testsuite/g++.dg/charset/charset.exp
  c3f1b1efe5249f47d609a5022d321c0a  gcc/testsuite/g++.dg/charset/extern1.cc
  e00c15044b80ea8ae41ddca791f728b5  gcc/testsuite/g++.dg/charset/extern2.cc
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/g++.dg/charset/extern3.cc
*************** f21dc1eb54ea34814c912bb958cc243b  gcc/te
*** 14272,14278 ****
  3e6b5a438641d0fa418b9b6b59dc9ad5  gcc/testsuite/g++.dg/compat/abi/vbase8-4_main.C
  218fc83d35fc2202ce2c23a8d88a2a0e  gcc/testsuite/g++.dg/compat/abi/vbase8-4_x.C
  ad654d45c988963d6d91e514325cd68c  gcc/testsuite/g++.dg/compat/abi/vbase8-4_y.C
! 85459ce70e6c415f10486b56d4754905  gcc/testsuite/g++.dg/compat/break/README
  a1f42f9828f95c9f3dd670a142b67209  gcc/testsuite/g++.dg/compat/break/bitfield5.h
  a4f5bc9b9eeba848df2b3660451312e5  gcc/testsuite/g++.dg/compat/break/bitfield5_main.C
  34a963a4f73f5fc81a2a3c61cb1410b4  gcc/testsuite/g++.dg/compat/break/bitfield5_x.C
--- 15345,15351 ----
  3e6b5a438641d0fa418b9b6b59dc9ad5  gcc/testsuite/g++.dg/compat/abi/vbase8-4_main.C
  218fc83d35fc2202ce2c23a8d88a2a0e  gcc/testsuite/g++.dg/compat/abi/vbase8-4_x.C
  ad654d45c988963d6d91e514325cd68c  gcc/testsuite/g++.dg/compat/abi/vbase8-4_y.C
! 12e62decb0900f4e164faf6deb0d3c19  gcc/testsuite/g++.dg/compat/break/README
  a1f42f9828f95c9f3dd670a142b67209  gcc/testsuite/g++.dg/compat/break/bitfield5.h
  a4f5bc9b9eeba848df2b3660451312e5  gcc/testsuite/g++.dg/compat/break/bitfield5_main.C
  34a963a4f73f5fc81a2a3c61cb1410b4  gcc/testsuite/g++.dg/compat/break/bitfield5_x.C
*************** d9e96ae25c2319373bcfd08d3028762f  gcc/te
*** 14293,14299 ****
  c066ba2e23a50eda1497704cad37719c  gcc/testsuite/g++.dg/compat/break/vbase11_main.C
  cc9fd160c8ac0d554f08ed78757c1ad7  gcc/testsuite/g++.dg/compat/break/vbase11_x.C
  3af15235a86640de95ef01c264b9a669  gcc/testsuite/g++.dg/compat/break/vbase11_y.C
! 954ef8b3e950311bcbe7b7d6486aefb0  gcc/testsuite/g++.dg/compat/compat.exp
  d84d0fab6bdaa40e3302c2dc1bd89d10  gcc/testsuite/g++.dg/compat/decimal/compat-common.h
  5606bac1873edfc020404d944e030ebb  gcc/testsuite/g++.dg/compat/decimal/decimal-dummy.h
  9c52086212425f7532ca661f890d93fc  gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
--- 15366,15372 ----
  c066ba2e23a50eda1497704cad37719c  gcc/testsuite/g++.dg/compat/break/vbase11_main.C
  cc9fd160c8ac0d554f08ed78757c1ad7  gcc/testsuite/g++.dg/compat/break/vbase11_x.C
  3af15235a86640de95ef01c264b9a669  gcc/testsuite/g++.dg/compat/break/vbase11_y.C
! 7b4136599d2e6c228bed307e43b712df  gcc/testsuite/g++.dg/compat/compat.exp
  d84d0fab6bdaa40e3302c2dc1bd89d10  gcc/testsuite/g++.dg/compat/decimal/compat-common.h
  5606bac1873edfc020404d944e030ebb  gcc/testsuite/g++.dg/compat/decimal/decimal-dummy.h
  9c52086212425f7532ca661f890d93fc  gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
*************** f859d46f662f64382fc51406db79b7b9  gcc/te
*** 14395,14401 ****
  2b3d95c509a4be70d740edc005431765  gcc/testsuite/g++.dg/compat/pr102024_test.h
  5a1c23b6f9ed32ad835953cc5de843ad  gcc/testsuite/g++.dg/compat/pr102024_x.C
  9145407f3d1330de95b18aa4b816a2c5  gcc/testsuite/g++.dg/compat/pr102024_y.C
! b7646134046e9cb554a7af7b446654ee  gcc/testsuite/g++.dg/compat/struct-layout-1.exp
  b3150d6e06b56824040f5b2dadcf18ce  gcc/testsuite/g++.dg/compat/struct-layout-1.h
  78cfce9cf8a86fdda9aa267ac227bd42  gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
  e615a3a6c348fc2427a919e6edad325b  gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h
--- 15468,15474 ----
  2b3d95c509a4be70d740edc005431765  gcc/testsuite/g++.dg/compat/pr102024_test.h
  5a1c23b6f9ed32ad835953cc5de843ad  gcc/testsuite/g++.dg/compat/pr102024_x.C
  9145407f3d1330de95b18aa4b816a2c5  gcc/testsuite/g++.dg/compat/pr102024_y.C
! c02bb032bbc319bafb530aace0cf415b  gcc/testsuite/g++.dg/compat/struct-layout-1.exp
  b3150d6e06b56824040f5b2dadcf18ce  gcc/testsuite/g++.dg/compat/struct-layout-1.h
  78cfce9cf8a86fdda9aa267ac227bd42  gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
  e615a3a6c348fc2427a919e6edad325b  gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h
*************** bbe257fc7d17e04ac4c36e490e7b696c  gcc/te
*** 14413,14434 ****
  83ca9e0fd92b3a6de47c569615d1b14a  gcc/testsuite/g++.dg/concepts/abbrev8.C
  f77068318f53312d2455ce0a714f40df  gcc/testsuite/g++.dg/concepts/abbrev9.C
  a54467f50f9862e2fbf96195651a862b  gcc/testsuite/g++.dg/concepts/attrib1.C
! b06fa51c8cf7cd0947dc48ddb8f04762  gcc/testsuite/g++.dg/concepts/auto1.C
! df6a0720deead1507c5a2beb3f89af53  gcc/testsuite/g++.dg/concepts/auto3.C
! 6cf0a17e07d37965e7023adb5e05206b  gcc/testsuite/g++.dg/concepts/auto4.C
! a0aa19106822133d891f4b19cc47c64e  gcc/testsuite/g++.dg/concepts/auto5.C
! 6f61762cc3906c8114555ca94d52f557  gcc/testsuite/g++.dg/concepts/auto6.C
! 18022fa8ea19075f5bc06b317be04b42  gcc/testsuite/g++.dg/concepts/auto7.C
  f65e2142a166da8b2b63447fa4672ef7  gcc/testsuite/g++.dg/concepts/auto7a.C
  6f3883b91a55975c92be121766979e28  gcc/testsuite/g++.dg/concepts/auto8.C
! d0ba5f4eb99a16285f8bffae3a78f09a  gcc/testsuite/g++.dg/concepts/auto8a.C
! 49173b85bb8b75655228f01f64c004ca  gcc/testsuite/g++.dg/concepts/class-deduction1.C
! 5dc917226c72dd84754c3174179aed16  gcc/testsuite/g++.dg/concepts/class5.C
! bd4f86c74afe71fd279bbd2ba2a9a19e  gcc/testsuite/g++.dg/concepts/class6.C
! 87544776ff514211a2d70754b08fc8d9  gcc/testsuite/g++.dg/concepts/debug1.C
! 70c05053ef680b108fa19bc7a1074d20  gcc/testsuite/g++.dg/concepts/decl-diagnose.C
! fb0e2509a1d850376873bcbb2ae7d935  gcc/testsuite/g++.dg/concepts/deduction-constraint1.C
! 57f94573d91a77ea0e676d5b68489a7a  gcc/testsuite/g++.dg/concepts/diagnostic1.C
  fc3e1038d2ddd359b5ea90ab469aed59  gcc/testsuite/g++.dg/concepts/diagnostic10.C
  4844c47d58b026222c294f4a7e10680c  gcc/testsuite/g++.dg/concepts/diagnostic11.C
  9bb84db5ae6efcfe019ccf353b995661  gcc/testsuite/g++.dg/concepts/diagnostic12.C
--- 15486,15504 ----
  83ca9e0fd92b3a6de47c569615d1b14a  gcc/testsuite/g++.dg/concepts/abbrev8.C
  f77068318f53312d2455ce0a714f40df  gcc/testsuite/g++.dg/concepts/abbrev9.C
  a54467f50f9862e2fbf96195651a862b  gcc/testsuite/g++.dg/concepts/attrib1.C
! 2a854d20a12abe650d586d8c015c4c6d  gcc/testsuite/g++.dg/concepts/auto3.C
! 314f4fbb5e53f3fbd3d587c3fc48977f  gcc/testsuite/g++.dg/concepts/auto5.C
! fc455dbc896f2229d1bca77b1dfcea26  gcc/testsuite/g++.dg/concepts/auto7.C
  f65e2142a166da8b2b63447fa4672ef7  gcc/testsuite/g++.dg/concepts/auto7a.C
  6f3883b91a55975c92be121766979e28  gcc/testsuite/g++.dg/concepts/auto8.C
! 45c94ff0eb4f08210476ca0728851014  gcc/testsuite/g++.dg/concepts/auto8a.C
! 37260aa530b0ab2efb34eaf115545be5  gcc/testsuite/g++.dg/concepts/class-deduction1.C
! 3b11372adf58cd0e900f838577b26c96  gcc/testsuite/g++.dg/concepts/class5.C
! d713b9299971abbdb717121805ba53b9  gcc/testsuite/g++.dg/concepts/class6.C
! 725d721491b21adff3cec889a89fc5e4  gcc/testsuite/g++.dg/concepts/debug1.C
! bd31f6ae4a89dcd85ec36898d2091cf8  gcc/testsuite/g++.dg/concepts/decl-diagnose.C
! 267b949e2b5c0eda22e619c81fca4ac7  gcc/testsuite/g++.dg/concepts/deduction-constraint1.C
! 5e10272c682ae67a6458916179ae0f9c  gcc/testsuite/g++.dg/concepts/diagnostic1.C
  fc3e1038d2ddd359b5ea90ab469aed59  gcc/testsuite/g++.dg/concepts/diagnostic10.C
  4844c47d58b026222c294f4a7e10680c  gcc/testsuite/g++.dg/concepts/diagnostic11.C
  9bb84db5ae6efcfe019ccf353b995661  gcc/testsuite/g++.dg/concepts/diagnostic12.C
*************** fc3e1038d2ddd359b5ea90ab469aed59  gcc/te
*** 14440,14523 ****
  5eb8e1c2d451af20c10df785a0b37ff7  gcc/testsuite/g++.dg/concepts/diagnostic18.C
  2c6c2bbb5c70ea0348b7a61cc2466bd0  gcc/testsuite/g++.dg/concepts/diagnostic19.C
  d29d051e5212b88c9a7beafc8f4840ba  gcc/testsuite/g++.dg/concepts/diagnostic2.C
  3b4b10993277ae58d06a6060fa529a40  gcc/testsuite/g++.dg/concepts/diagnostic3.C
  16b69c7102110cf6646baa3518c9f7f6  gcc/testsuite/g++.dg/concepts/diagnostic4.C
  f7fdf5e1ceaf1a59cf71d50d58950a1e  gcc/testsuite/g++.dg/concepts/diagnostic5.C
  b383f5a2190e1234282797b64ffc0dc8  gcc/testsuite/g++.dg/concepts/diagnostic6.C
  27e3f997ced26bbdf184fd5906c3a8dc  gcc/testsuite/g++.dg/concepts/diagnostic7.C
  c9d7cb8a10b8d288002e523cc80a1f58  gcc/testsuite/g++.dg/concepts/diagnostic8.C
! d44301076a2b5c1b6d67f8097ebccdc3  gcc/testsuite/g++.dg/concepts/diagnostic9.C
! 2fbeae90c5dfde2fc92c611a9b91879c  gcc/testsuite/g++.dg/concepts/dr1430.C
! 40f8aaf6fe832364d6fa1bcd7456b7b4  gcc/testsuite/g++.dg/concepts/equiv.C
! b82ca68b7eeed1d49150a0dd5b1d6bfe  gcc/testsuite/g++.dg/concepts/equiv2.C
  777ac81f55c638a07da402594472e54f  gcc/testsuite/g++.dg/concepts/explicit-spec1.C
  54d3adb5daf405d53fb4cae734d0d1a8  gcc/testsuite/g++.dg/concepts/explicit-spec1a.C
! 7f5d026a92bcfb8e0283cb135d8ecaf8  gcc/testsuite/g++.dg/concepts/expression.C
! e36c5676feb6c12dfd3448b7a8dab3c2  gcc/testsuite/g++.dg/concepts/expression2.C
! 5ac938c2d0e7ad0f92550b994d635fc8  gcc/testsuite/g++.dg/concepts/expression3.C
! b972b7176f0432f3a1f0e5d6a7663a52  gcc/testsuite/g++.dg/concepts/fn-concept1.C
! c55402d441ade2cefbc613a396572344  gcc/testsuite/g++.dg/concepts/fn-concept2.C
! 4b67a1c0397746f4aa404e1ce36b23dd  gcc/testsuite/g++.dg/concepts/fn-concept3.C
  43b4b86e8179275233dfe2e409cf5544  gcc/testsuite/g++.dg/concepts/fn-generic-member-ool.C
! d39589e202c896dd2d2153727e5abdd4  gcc/testsuite/g++.dg/concepts/fn1.C
! eac2929e53fdfab51acde27dcbdffd8c  gcc/testsuite/g++.dg/concepts/fn10.C
! f058fc0f8507cc6e6b6372f814aa4511  gcc/testsuite/g++.dg/concepts/fn2.C
! a2b2148d962e6c7c4da8bd48d6aa8e14  gcc/testsuite/g++.dg/concepts/fn3.C
! bf541dcd42665acd7a12041b44640353  gcc/testsuite/g++.dg/concepts/fn4.C
! 2d778319e52d392434f548983647a14b  gcc/testsuite/g++.dg/concepts/fn5.C
! 7acbe626266869bb0462f56e2c7b9d1e  gcc/testsuite/g++.dg/concepts/fn6.C
! 98535529d421332d371f71209699354e  gcc/testsuite/g++.dg/concepts/fn7.C
! 8b60a4c06424ae4fb3dedaf0192bfd07  gcc/testsuite/g++.dg/concepts/fn8.C
! bca40547c8c559123e105d39237def18  gcc/testsuite/g++.dg/concepts/fn9.C
! 4c85de44c202bc240189bba9a780abf6  gcc/testsuite/g++.dg/concepts/generic-fn-err.C
! 4523b016f2bfca5ff6654a7a7a302288  gcc/testsuite/g++.dg/concepts/generic-fn.C
! cc8c224ab43f9e4ebca71a43dc27e74d  gcc/testsuite/g++.dg/concepts/inherit-ctor1.C
! 564d2d12b39a896feab8fb2e5d250a56  gcc/testsuite/g++.dg/concepts/inherit-ctor3.C
! 10a61172003d5ce6858eb50b09671e23  gcc/testsuite/g++.dg/concepts/intro1.C
! 883c287118af0e3e5cf434a46b735885  gcc/testsuite/g++.dg/concepts/intro2.C
! 76b2ab98cba962aebb61ad176f982e23  gcc/testsuite/g++.dg/concepts/intro3.C
! 12703b43f355aebabcba3929f2ed9874  gcc/testsuite/g++.dg/concepts/intro4.C
! 4c0b5a57170a283c075c08de01f80aa7  gcc/testsuite/g++.dg/concepts/intro5.C
! f605a7611a7a2475bdaf828e4702067c  gcc/testsuite/g++.dg/concepts/intro6.C
! 580b6798aae7d948e85fb72c74f0da79  gcc/testsuite/g++.dg/concepts/intro7.C
  29af9c990e1fe56208ba66e5fbe5e9f1  gcc/testsuite/g++.dg/concepts/local-extern.C
! 47780796cedb1e65278def0901f4bfe9  gcc/testsuite/g++.dg/concepts/locations1.C
  8167dac3599949519b5c414584b01961  gcc/testsuite/g++.dg/concepts/no-bool1.C
  a0d717a73a9e41d16aea89209cfa3945  gcc/testsuite/g++.dg/concepts/pack-1.C
! 53bac9dd040aa4f5750be7f25b6d2171  gcc/testsuite/g++.dg/concepts/partial-concept-id1.C
! 6964a9f759681d3c2a5e2f822a4428fa  gcc/testsuite/g++.dg/concepts/partial-concept-id2.C
! 112e5468e59369f6ae2f636024ccb0cb  gcc/testsuite/g++.dg/concepts/partial-spec5.C
! 4d75d939d23320a8b7f41c6271028c71  gcc/testsuite/g++.dg/concepts/placeholder2.C
! b544e7fe3c48b01b30fb34927e5f9848  gcc/testsuite/g++.dg/concepts/placeholder3.C
! 51acda463787e418a6689592a4a053cc  gcc/testsuite/g++.dg/concepts/placeholder4.C
! 29551d7001d012dec20074e9c24e2bc0  gcc/testsuite/g++.dg/concepts/placeholder5.C
! bc54f589790b11d368beabaaf129d68f  gcc/testsuite/g++.dg/concepts/placeholder6.C
  91bbc43bd292628bdbb650fc92890934  gcc/testsuite/g++.dg/concepts/pr105061.C
! 51cd7b02c12dfa0fa5cddb1e25c66822  gcc/testsuite/g++.dg/concepts/pr65634.C
! 89183d758c17d1f0685b9f9f2a98888c  gcc/testsuite/g++.dg/concepts/pr65636.C
! d862ed23d97ceef607c9fad109796972  gcc/testsuite/g++.dg/concepts/pr65681.C
! 7f5e881fc704249ca47de23a2c383e37  gcc/testsuite/g++.dg/concepts/pr65848.C
! 72d24f6494ad1bbf32c8b2d9d70c0ef5  gcc/testsuite/g++.dg/concepts/pr67249.C
  fe07e4925bae0dcfe3312c31c956ea94  gcc/testsuite/g++.dg/concepts/pr67544.C
! 31bc2ca0fcbbd92d9d687c3c84002fbe  gcc/testsuite/g++.dg/concepts/pr67595.C
  362815b654ac87fabacd65452bb918af  gcc/testsuite/g++.dg/concepts/pr67655.C
  6b93c9bfdaa98cfad9237a7e53a8916a  gcc/testsuite/g++.dg/concepts/pr67656.C
! 64ff04fa155e70e8b740fad8342426bd  gcc/testsuite/g++.dg/concepts/pr68434.C
! e13669127295da8317e46010738c9a55  gcc/testsuite/g++.dg/concepts/pr71127.C
! 0ed7ab99c6cbb151b9ffb41541a738a8  gcc/testsuite/g++.dg/concepts/pr71128.C
! 87a3b303a5b3536dab84f5cb6961fe0a  gcc/testsuite/g++.dg/concepts/pr71131.C
! 175cbfd2cf7ab1b3c61c0306b0538783  gcc/testsuite/g++.dg/concepts/pr71385.C
  5081d20c34616376a7e34339192cee7a  gcc/testsuite/g++.dg/concepts/pr84330.C
  80acdea1aca490469567728dd37ac486  gcc/testsuite/g++.dg/concepts/pr84423-1.C
  d3cc382cfea8828e266ca88b690a649f  gcc/testsuite/g++.dg/concepts/pr84423-2.C
  48f51db719dd544c776963adc2fda8f3  gcc/testsuite/g++.dg/concepts/pr84661.C
! 4f6695e6fbb36b5901bc3bb4b5445257  gcc/testsuite/g++.dg/concepts/pr85065.C
  e9278b544de010d993faf3bb25d4fb2f  gcc/testsuite/g++.dg/concepts/pr87768.C
  33fc585ccda01960808b09c3a303a39b  gcc/testsuite/g++.dg/concepts/pr89036.C
  e1a4873d31b9c778075b986c64f0d3f6  gcc/testsuite/g++.dg/concepts/pr91073-1.C
  5b2d5b0dbc0da4fb5cf778c8a4289186  gcc/testsuite/g++.dg/concepts/pr91073-2.C
  fa61e3c373fcba452c87c1104eb24869  gcc/testsuite/g++.dg/concepts/pr92804-1.C
! 98aa97d685d33746362a4796779451ff  gcc/testsuite/g++.dg/concepts/pr92804-2.C
  04a8f3f636785ef43666611471409399  gcc/testsuite/g++.dg/concepts/pr93729.C
  a0d717a73a9e41d16aea89209cfa3945  gcc/testsuite/g++.dg/concepts/pr93933.C
  c30679471840f9e089d6a23a33648b3e  gcc/testsuite/g++.dg/concepts/pr94252.C
--- 15510,15593 ----
  5eb8e1c2d451af20c10df785a0b37ff7  gcc/testsuite/g++.dg/concepts/diagnostic18.C
  2c6c2bbb5c70ea0348b7a61cc2466bd0  gcc/testsuite/g++.dg/concepts/diagnostic19.C
  d29d051e5212b88c9a7beafc8f4840ba  gcc/testsuite/g++.dg/concepts/diagnostic2.C
+ f7af92e48ee386a02c46864cecc0a71c  gcc/testsuite/g++.dg/concepts/diagnostic20.C
  3b4b10993277ae58d06a6060fa529a40  gcc/testsuite/g++.dg/concepts/diagnostic3.C
  16b69c7102110cf6646baa3518c9f7f6  gcc/testsuite/g++.dg/concepts/diagnostic4.C
  f7fdf5e1ceaf1a59cf71d50d58950a1e  gcc/testsuite/g++.dg/concepts/diagnostic5.C
  b383f5a2190e1234282797b64ffc0dc8  gcc/testsuite/g++.dg/concepts/diagnostic6.C
  27e3f997ced26bbdf184fd5906c3a8dc  gcc/testsuite/g++.dg/concepts/diagnostic7.C
  c9d7cb8a10b8d288002e523cc80a1f58  gcc/testsuite/g++.dg/concepts/diagnostic8.C
! 46b9a39e4015efdeb42bee2fa42ea450  gcc/testsuite/g++.dg/concepts/diagnostic9.C
! 3b1d4cbf4da8c6d7af44d6fa83684f27  gcc/testsuite/g++.dg/concepts/dr1430.C
! 0b9e533d35daec3d5522d8d47711bdf5  gcc/testsuite/g++.dg/concepts/equiv.C
! 6d3df43f0dde1c14a63e5340119e8c81  gcc/testsuite/g++.dg/concepts/equiv2.C
  777ac81f55c638a07da402594472e54f  gcc/testsuite/g++.dg/concepts/explicit-spec1.C
  54d3adb5daf405d53fb4cae734d0d1a8  gcc/testsuite/g++.dg/concepts/explicit-spec1a.C
! 6cec2d748c1cf77d99e404f0c11f8f79  gcc/testsuite/g++.dg/concepts/expression.C
! 7817a410ace8acac899b3e31e89caab8  gcc/testsuite/g++.dg/concepts/expression2.C
! 80d0d402d6d2fa2d54585223030af11e  gcc/testsuite/g++.dg/concepts/expression3.C
! 14ecb0c052e7b01b0228fc08bf4b8347  gcc/testsuite/g++.dg/concepts/fn-concept2.C
! fed445cc4e74abd8410a8699831fb41b  gcc/testsuite/g++.dg/concepts/fn-concept3.C
  43b4b86e8179275233dfe2e409cf5544  gcc/testsuite/g++.dg/concepts/fn-generic-member-ool.C
! 99b0a5e532807d2a87c74e40d4b9f0c2  gcc/testsuite/g++.dg/concepts/fn1.C
! c1be4de653c2dedaddfb631323530bb4  gcc/testsuite/g++.dg/concepts/fn10.C
! 312eccff5c5a5c6fa925287df24197c5  gcc/testsuite/g++.dg/concepts/fn2.C
! b68ca3396f93307302e5b16df83033b5  gcc/testsuite/g++.dg/concepts/fn3.C
! e7febe0221db8776ed6c9b715c178a45  gcc/testsuite/g++.dg/concepts/fn4.C
! 2e4a4a086bc91e90e6476f99ee105431  gcc/testsuite/g++.dg/concepts/fn5.C
! dcd9a76e7f43e4ff08ed3ac8e6f8487c  gcc/testsuite/g++.dg/concepts/fn6.C
! 91293276186c61a3df587750940f39a9  gcc/testsuite/g++.dg/concepts/fn7.C
! 3fc3dd372bea808fd4f5feeac2e63fb0  gcc/testsuite/g++.dg/concepts/fn8.C
! 12aabf6e6a4ae85ecb98849f9fc16eb7  gcc/testsuite/g++.dg/concepts/fn9.C
! 5eb5b45c1f53ec643a7ffa39b0c2a297  gcc/testsuite/g++.dg/concepts/generic-fn-err.C
! 6f45fde3f6570b70bc35e6bd6da800e0  gcc/testsuite/g++.dg/concepts/generic-fn.C
! c3d50386d0fb64d527719c9a7fb90858  gcc/testsuite/g++.dg/concepts/inherit-ctor1.C
! 9315a996eb0c3722b36e4f666b11c493  gcc/testsuite/g++.dg/concepts/inherit-ctor3.C
! 40e2b8078eedfa88dbd719016408aebb  gcc/testsuite/g++.dg/concepts/intro1.C
  29af9c990e1fe56208ba66e5fbe5e9f1  gcc/testsuite/g++.dg/concepts/local-extern.C
! 982539c6c2d20eba09c93519124c691e  gcc/testsuite/g++.dg/concepts/locations1.C
! 5fe65ef24a2ed537beccd1e8bc64c63b  gcc/testsuite/g++.dg/concepts/missing-header.C
! 6833db79ddf4a861fbaf5159fa7341d9  gcc/testsuite/g++.dg/concepts/misspelled-concept.C
! fb13a9a9d435756a710424762e0bbafa  gcc/testsuite/g++.dg/concepts/nested-diagnostics-1-truncated.C
! 429863d41ff66e9a27606bfffdf1c28c  gcc/testsuite/g++.dg/concepts/nested-diagnostics-1.C
! 99b54bab865aa98ffcbba14a82aaae85  gcc/testsuite/g++.dg/concepts/nested-diagnostics-2.C
  8167dac3599949519b5c414584b01961  gcc/testsuite/g++.dg/concepts/no-bool1.C
  a0d717a73a9e41d16aea89209cfa3945  gcc/testsuite/g++.dg/concepts/pack-1.C
! 6fe8fe1052352091537091b7f0d70080  gcc/testsuite/g++.dg/concepts/partial-concept-id1.C
! db4ff88a2fde2bf65343ea8c19908190  gcc/testsuite/g++.dg/concepts/partial-concept-id2.C
! 5fb67369ff7a1c61d56409ac47c9ecc9  gcc/testsuite/g++.dg/concepts/partial-spec5.C
! d8072c631ef24a351910d53cf63138af  gcc/testsuite/g++.dg/concepts/placeholder2.C
! 59af355e9b09d16aadb4e3fbb165242a  gcc/testsuite/g++.dg/concepts/placeholder3.C
! dfe35dd56ee2521e84d1e303bbfae2e6  gcc/testsuite/g++.dg/concepts/placeholder4.C
! 61e330822438b8bcd98f912f6f6b4609  gcc/testsuite/g++.dg/concepts/placeholder5.C
! f94bda44b57e3eca7abceac1801f6a89  gcc/testsuite/g++.dg/concepts/placeholder6.C
! a72ced9853beafaaa9dc607bf0968c82  gcc/testsuite/g++.dg/concepts/pr101099.C
  91bbc43bd292628bdbb650fc92890934  gcc/testsuite/g++.dg/concepts/pr105061.C
! 859f5f20c5d30a982ea7c13a56774203  gcc/testsuite/g++.dg/concepts/pr65634.C
! ffe909fc3ac2f31f963535467cb70716  gcc/testsuite/g++.dg/concepts/pr65636.C
! 80c8a6d6dafe1ffb7e0fa3a57cf9e2fe  gcc/testsuite/g++.dg/concepts/pr65681.C
! 6891307358ef66206ba449ebf6f51171  gcc/testsuite/g++.dg/concepts/pr65848.C
! 690771c3708d3656791ac8565b3c177d  gcc/testsuite/g++.dg/concepts/pr67249.C
  fe07e4925bae0dcfe3312c31c956ea94  gcc/testsuite/g++.dg/concepts/pr67544.C
! 652098731e268b9c8b90146cb66412eb  gcc/testsuite/g++.dg/concepts/pr67595.C
  362815b654ac87fabacd65452bb918af  gcc/testsuite/g++.dg/concepts/pr67655.C
  6b93c9bfdaa98cfad9237a7e53a8916a  gcc/testsuite/g++.dg/concepts/pr67656.C
! 8bf6292bcda879741a905cb4de92e3df  gcc/testsuite/g++.dg/concepts/pr68434.C
! e46139cf21450cf6ed71565272a31076  gcc/testsuite/g++.dg/concepts/pr71127.C
! eec48bc4aa3b31184cc956f901045dd9  gcc/testsuite/g++.dg/concepts/pr71128.C
! 60c8d2670c76922ec94b39b86824c758  gcc/testsuite/g++.dg/concepts/pr71131.C
! 0f4e47a29505ebe71acca9f592b6d371  gcc/testsuite/g++.dg/concepts/pr71385.C
  5081d20c34616376a7e34339192cee7a  gcc/testsuite/g++.dg/concepts/pr84330.C
  80acdea1aca490469567728dd37ac486  gcc/testsuite/g++.dg/concepts/pr84423-1.C
  d3cc382cfea8828e266ca88b690a649f  gcc/testsuite/g++.dg/concepts/pr84423-2.C
  48f51db719dd544c776963adc2fda8f3  gcc/testsuite/g++.dg/concepts/pr84661.C
! bc04a8362e092dd24fdacc0b31623030  gcc/testsuite/g++.dg/concepts/pr85065.C
  e9278b544de010d993faf3bb25d4fb2f  gcc/testsuite/g++.dg/concepts/pr87768.C
  33fc585ccda01960808b09c3a303a39b  gcc/testsuite/g++.dg/concepts/pr89036.C
  e1a4873d31b9c778075b986c64f0d3f6  gcc/testsuite/g++.dg/concepts/pr91073-1.C
  5b2d5b0dbc0da4fb5cf778c8a4289186  gcc/testsuite/g++.dg/concepts/pr91073-2.C
  fa61e3c373fcba452c87c1104eb24869  gcc/testsuite/g++.dg/concepts/pr92804-1.C
! 6dc78e19de353b162397873cd972dcab  gcc/testsuite/g++.dg/concepts/pr92804-2.C
  04a8f3f636785ef43666611471409399  gcc/testsuite/g++.dg/concepts/pr93729.C
  a0d717a73a9e41d16aea89209cfa3945  gcc/testsuite/g++.dg/concepts/pr93933.C
  c30679471840f9e089d6a23a33648b3e  gcc/testsuite/g++.dg/concepts/pr94252.C
*************** c30679471840f9e089d6a23a33648b3e  gcc/te
*** 14525,14550 ****
  42fd858d044be8a33f514fa6649f23a7  gcc/testsuite/g++.dg/concepts/pr95181-2.C
  e68480b7ad09bc8b28b4647c839fdc1c  gcc/testsuite/g++.dg/concepts/pr95181.C
  0f1fc57ab3b7de768005bbf852ef84f3  gcc/testsuite/g++.dg/concepts/pr95386.C
! f34c33c4a4203eb1b374766b9436eb12  gcc/testsuite/g++.dg/concepts/template-parm11.C
! fcdfc85740e07281d796512f572f74f6  gcc/testsuite/g++.dg/concepts/template-parm12.C
! 0445f9fed49a5ba7f3c9ac82e22b81fa  gcc/testsuite/g++.dg/concepts/template-parm2.C
! 89861cd14de8deb5030a67bae2ded02c  gcc/testsuite/g++.dg/concepts/template-parm3.C
! 4f69c690473647dab5f5f5070123cd12  gcc/testsuite/g++.dg/concepts/template-parm4.C
! 733665a0da970554221b07285ee67a95  gcc/testsuite/g++.dg/concepts/template-template-parm1.C
! ccf48b433f4802f848268e43e7145638  gcc/testsuite/g++.dg/concepts/var-concept1.C
! 703699d8f1709d1df869a3ea14cad6f1  gcc/testsuite/g++.dg/concepts/var-concept2.C
! c4a2bddd2e1a65963cda9413caa02d2a  gcc/testsuite/g++.dg/concepts/var-concept3.C
! 28e0b2b22fb3022fe838e6b0e8ccdd1f  gcc/testsuite/g++.dg/concepts/var-concept4.C
! f0f37a50e825c23857ec563a647b2e30  gcc/testsuite/g++.dg/concepts/var-concept5.C
! bc053552d16aa28117182a45d21fa3ae  gcc/testsuite/g++.dg/concepts/var-concept6.C
! 2ab6aeb7d76de39f406681828d7810b7  gcc/testsuite/g++.dg/concepts/var-concept7.C
! c2756158292afe7cabf4f389fbd26ef2  gcc/testsuite/g++.dg/concepts/var-templ1.C
! 22c23e3a26e997acb2bb182c531735cf  gcc/testsuite/g++.dg/concepts/var-templ2.C
! d9b6589abec2686c62b1ce96235a75db  gcc/testsuite/g++.dg/concepts/var-templ3.C
! f7d0e5bde25dcd904c54231839fd0f68  gcc/testsuite/g++.dg/concepts/variadic1.C
! c4688de088c9da0ee0d8e779f79ed489  gcc/testsuite/g++.dg/concepts/variadic2.C
! 5400c81023c8ff1f9154110c371e230e  gcc/testsuite/g++.dg/concepts/variadic3.C
! f2bf8e304f4309f9182d76b408c8a7b2  gcc/testsuite/g++.dg/concepts/variadic4.C
  269ac7b99d88175237e466f69cfb1baf  gcc/testsuite/g++.dg/concepts/variadic5.C
  80f790242b0cedc0924485313675abbd  gcc/testsuite/g++.dg/concepts/variadic6.C
  47d50ea9841dfff2e1add4fe21d8cdd8  gcc/testsuite/g++.dg/conflict-markers-1.C
--- 15595,15620 ----
  42fd858d044be8a33f514fa6649f23a7  gcc/testsuite/g++.dg/concepts/pr95181-2.C
  e68480b7ad09bc8b28b4647c839fdc1c  gcc/testsuite/g++.dg/concepts/pr95181.C
  0f1fc57ab3b7de768005bbf852ef84f3  gcc/testsuite/g++.dg/concepts/pr95386.C
! 05b553a44689ac96c4ef4bf0ffc4664a  gcc/testsuite/g++.dg/concepts/template-parm11.C
! 491785ea2ba5ac80acfcbd1a472c13b7  gcc/testsuite/g++.dg/concepts/template-parm12.C
! 58d65ef1fb4bede38b3267b9d6eedcb0  gcc/testsuite/g++.dg/concepts/template-parm2.C
! 68de6366314af8a24b7333be2dcf60a1  gcc/testsuite/g++.dg/concepts/template-parm3.C
! 1d231507c7613ca6b6815242ed5e837b  gcc/testsuite/g++.dg/concepts/template-parm4.C
! f6d94883ab0d4c9f87ff7fc61703f6e3  gcc/testsuite/g++.dg/concepts/template-template-parm1.C
! 3d6bf63ca0a8eba2e92f94a4b2c4d9a4  gcc/testsuite/g++.dg/concepts/var-concept1.C
! 2d45eb37e2daf5ad87a4c8483d98a3e5  gcc/testsuite/g++.dg/concepts/var-concept2.C
! 88cddff5284fbd3eced4a33dce1cdfc4  gcc/testsuite/g++.dg/concepts/var-concept3.C
! afdb768dc1dd1649b7d9647c81e7d2f1  gcc/testsuite/g++.dg/concepts/var-concept4.C
! f60c835329b08988421cea82b2e7c9f9  gcc/testsuite/g++.dg/concepts/var-concept5.C
! 95715e0b34d6b505779c8abf4dc22535  gcc/testsuite/g++.dg/concepts/var-concept6.C
! f8901c8db077b12094eced26c308d162  gcc/testsuite/g++.dg/concepts/var-concept7.C
! df076275b7dc580aacca45408967b9af  gcc/testsuite/g++.dg/concepts/var-templ1.C
! 69bfc41928ee032484bb49a64e3ae44e  gcc/testsuite/g++.dg/concepts/var-templ2.C
! 93391d35b78f87cf9f15e464e8710057  gcc/testsuite/g++.dg/concepts/var-templ3.C
! 9e91d9fe643fe499cf5304f8482252f8  gcc/testsuite/g++.dg/concepts/variadic1.C
! ee72926a8f0f1b79252de22b2a20dd0b  gcc/testsuite/g++.dg/concepts/variadic2.C
! e909e923a92694a7c4ea653b7a071ca6  gcc/testsuite/g++.dg/concepts/variadic3.C
! c55dcfa7cbed9be2ef74cc34caaac38e  gcc/testsuite/g++.dg/concepts/variadic4.C
  269ac7b99d88175237e466f69cfb1baf  gcc/testsuite/g++.dg/concepts/variadic5.C
  80f790242b0cedc0924485313675abbd  gcc/testsuite/g++.dg/concepts/variadic6.C
  47d50ea9841dfff2e1add4fe21d8cdd8  gcc/testsuite/g++.dg/conflict-markers-1.C
*************** bd9982768438a217a3a6ac91276d4897  gcc/te
*** 14557,14572 ****
  899d1249603104cd5fa1439ef9d116ca  gcc/testsuite/g++.dg/contracts/backtrace_handler/example_pretty.txt
  8084cec06f7b5af4e5a2df2d1077d4ee  gcc/testsuite/g++.dg/contracts/backtrace_handler/handle_contract_violation.cpp
  7a12aa0409116279c5d00625b5aaa210  gcc/testsuite/g++.dg/contracts/backtrace_handler/prettytrace.sh
! b2c13d54ae9317e6f65afe3d3e435db0  gcc/testsuite/g++.dg/contracts/contracts-access1.C
  0a33d55a3b2f7a7c17917bd5ec0a460e  gcc/testsuite/g++.dg/contracts/contracts-assume1.C
! 6bbeba4897ac9bfdd83a59f4162336e5  gcc/testsuite/g++.dg/contracts/contracts-assume2.C
! 8a4c5e4d664d69ad2cab3b2f29711b8c  gcc/testsuite/g++.dg/contracts/contracts-assume3.C
! 73d7036054bbee5f2edb34caa395b01c  gcc/testsuite/g++.dg/contracts/contracts-assume4.C
  e1e24cc4bbd3d5ba574a42a8343c7883  gcc/testsuite/g++.dg/contracts/contracts-assume5.C
  b8bf805ee48013f4f7b9de2fc7d93030  gcc/testsuite/g++.dg/contracts/contracts-assume6.C
  bf2dd096ed02f2ae9c83cbdcd1d4faa6  gcc/testsuite/g++.dg/contracts/contracts-comdat1.C
! 4d156b3cca4d9720ed6df166dd581ea6  gcc/testsuite/g++.dg/contracts/contracts-config1.C
! 869c5fd37e964d701bcd36635ceaddcb  gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
  2fe69811cd9254161d24423914330718  gcc/testsuite/g++.dg/contracts/contracts-constexpr2.C
  eccfb2d04c6e65c059f0b070fc3fae96  gcc/testsuite/g++.dg/contracts/contracts-constexpr3.C
  0ca5358b44119fc709ac5f2ab8930d02  gcc/testsuite/g++.dg/contracts/contracts-conversion1.C
--- 15627,15642 ----
  899d1249603104cd5fa1439ef9d116ca  gcc/testsuite/g++.dg/contracts/backtrace_handler/example_pretty.txt
  8084cec06f7b5af4e5a2df2d1077d4ee  gcc/testsuite/g++.dg/contracts/backtrace_handler/handle_contract_violation.cpp
  7a12aa0409116279c5d00625b5aaa210  gcc/testsuite/g++.dg/contracts/backtrace_handler/prettytrace.sh
! b019de57b67d086b5c6474222a756532  gcc/testsuite/g++.dg/contracts/contracts-access1.C
  0a33d55a3b2f7a7c17917bd5ec0a460e  gcc/testsuite/g++.dg/contracts/contracts-assume1.C
! e2d28a1cea50dd15e361ca84882db47e  gcc/testsuite/g++.dg/contracts/contracts-assume2.C
! f9e2c17a3707b45f68640ad9998cd01f  gcc/testsuite/g++.dg/contracts/contracts-assume3.C
! 82182397a5c16b2e826dc4e98ef4f8a6  gcc/testsuite/g++.dg/contracts/contracts-assume4.C
  e1e24cc4bbd3d5ba574a42a8343c7883  gcc/testsuite/g++.dg/contracts/contracts-assume5.C
  b8bf805ee48013f4f7b9de2fc7d93030  gcc/testsuite/g++.dg/contracts/contracts-assume6.C
  bf2dd096ed02f2ae9c83cbdcd1d4faa6  gcc/testsuite/g++.dg/contracts/contracts-comdat1.C
! bf7bda0ef348c705dab77fbe43faaed6  gcc/testsuite/g++.dg/contracts/contracts-config1.C
! f40d5bde7dd94e8c841b9b7479a0b617  gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
  2fe69811cd9254161d24423914330718  gcc/testsuite/g++.dg/contracts/contracts-constexpr2.C
  eccfb2d04c6e65c059f0b070fc3fae96  gcc/testsuite/g++.dg/contracts/contracts-constexpr3.C
  0ca5358b44119fc709ac5f2ab8930d02  gcc/testsuite/g++.dg/contracts/contracts-conversion1.C
*************** eccfb2d04c6e65c059f0b070fc3fae96  gcc/te
*** 14574,14648 ****
  c9db1153e8ee5cb72849f5c0f39cf1e3  gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor2.C
  124d5f0934307b58c175aa152287e8a0  gcc/testsuite/g++.dg/contracts/contracts-cv1.C
  e441ab4fa3cbbe376b99cd549356774a  gcc/testsuite/g++.dg/contracts/contracts-deduced1.C
! fbd7657b66a4ee239d820aa1db889813  gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
  5c9bafac170b07d97ed4eb83dc16ef98  gcc/testsuite/g++.dg/contracts/contracts-err1.C
! c9469e1b27e394f42de38b75be58b492  gcc/testsuite/g++.dg/contracts/contracts-externC.C
! 1ec644dc35302ca0a48e369e525a8b61  gcc/testsuite/g++.dg/contracts/contracts-friend1.C
  52b21bc9c9cad3844d95e311a988d68f  gcc/testsuite/g++.dg/contracts/contracts-ft1.C
  71d1f0701de65c6343284c3a5cbb342f  gcc/testsuite/g++.dg/contracts/contracts-ignore1.C
! 43bf83f69f1424b20113b017efa4d6d5  gcc/testsuite/g++.dg/contracts/contracts-ignore2.C
  bb0dd846252c3c3c1d582fa399b6fd4a  gcc/testsuite/g++.dg/contracts/contracts-large-return.C
! 45cd409571b28e38985f524a392cb715  gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
  93826bdbe09e0a48115b2e9f7dd205d8  gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance1.C
  d647c3628b453645a4980cb2c7de1b6a  gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance2.C
  2f30c236622a9703769ea01c66616f42  gcc/testsuite/g++.dg/contracts/contracts-nested-class1.C
! 36d876bf98e5e599008851bd0a0664f4  gcc/testsuite/g++.dg/contracts/contracts-nested-class2.C
  d61ea23f366dae37350aa0dc5f2b4528  gcc/testsuite/g++.dg/contracts/contracts-nocopy1.C
  01ab4dc999a96e56ee2226ac44bdbf8e  gcc/testsuite/g++.dg/contracts/contracts-override.C
  51d94c6f242297eab641a9cd460f5f37  gcc/testsuite/g++.dg/contracts/contracts-post1.C
! 7e5f283d663f3d43898757853d0ef258  gcc/testsuite/g++.dg/contracts/contracts-post2.C
! 8057083ed10e2755c441ee815a316557  gcc/testsuite/g++.dg/contracts/contracts-post3.C
  fd1ebb08a8584706a94c2f3a8341af7c  gcc/testsuite/g++.dg/contracts/contracts-post4.C
  e2590b46b53ec704324172e6e9b19d6e  gcc/testsuite/g++.dg/contracts/contracts-post5.C
  c20bb9e2f528699a697643b507b9d245  gcc/testsuite/g++.dg/contracts/contracts-post6.C
! fb5284080761ee0d5cbec4a0b0b466ec  gcc/testsuite/g++.dg/contracts/contracts-post7.C
  7116878ea39c2a20c71154e676cbcc1e  gcc/testsuite/g++.dg/contracts/contracts-pre1.C
! cff531ab03f42a3534984cf298438fd8  gcc/testsuite/g++.dg/contracts/contracts-pre10.C
! 87645aaad36fe7c2eb1914d42651396d  gcc/testsuite/g++.dg/contracts/contracts-pre2.C
  44f64673aac65a1ae27a3c101075e216  gcc/testsuite/g++.dg/contracts/contracts-pre2a1.C
! db067f9497ea7309ae348780664f869e  gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
! 52fcb902fd9cb545e7cf00e0f07ddd82  gcc/testsuite/g++.dg/contracts/contracts-pre3.C
! f57c3cc21107d0814caecdf61be722c3  gcc/testsuite/g++.dg/contracts/contracts-pre4.C
! 9ceee62ec96dfdce105470a6e9e047c4  gcc/testsuite/g++.dg/contracts/contracts-pre5.C
  b1e16c42ac54a9ddccdb5e21e4f4f5b3  gcc/testsuite/g++.dg/contracts/contracts-pre6.C
! 1678ab74b61c5ae2274504ae47ae24d6  gcc/testsuite/g++.dg/contracts/contracts-pre7.C
! f212bc9e1eb4f707e6374af8c66629b4  gcc/testsuite/g++.dg/contracts/contracts-pre9.C
  62ba1c4517aa7006be86df32a86b112b  gcc/testsuite/g++.dg/contracts/contracts-redecl1.C
  cb6c3d1131c86c5625a7a5cd72e4eef3  gcc/testsuite/g++.dg/contracts/contracts-redecl2.C
! 0a70fa233dfe13da250bf3b1f479ba43  gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
! 801e45aa969866a7e0dc8a1f3bbdb21a  gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
  82709f66f4af2a21bd6f909183dbac48  gcc/testsuite/g++.dg/contracts/contracts-redecl5.C
! 53417ad0e8b877b94d837bcd61166f76  gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
! 11ce5508b8702e68bc895e366f4e9ef6  gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
  d53c0b0fc368bda6e8adfdda351d531e  gcc/testsuite/g++.dg/contracts/contracts-redecl8.C
  a7f4a2fd7bf07439040a7b09cb4c8072  gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C
! 7c1d45833f1ebd693d4462f114a6d1ca  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
! 8aa21f26589b4e119f0cbb25c9b9363d  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
! 00f7a59ada045702870670d10ee6e9b1  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
  c210cba8e1e324774b6ab401c96deeb0  gcc/testsuite/g++.dg/contracts/contracts1.C
! cec25083828eb115f962e091a8ae65a6  gcc/testsuite/g++.dg/contracts/contracts10.C
  7328aa3328d6837c51d49a379fb578e6  gcc/testsuite/g++.dg/contracts/contracts11.C
  190c759120c67e0575bdf5bdfa24b64a  gcc/testsuite/g++.dg/contracts/contracts12.C
  ee120fc86148dfc73930595c4e310dd5  gcc/testsuite/g++.dg/contracts/contracts13.C
! 5b563cf353f6da573999833a2e79c088  gcc/testsuite/g++.dg/contracts/contracts14.C
! 8e60b1814169be53e6407141d252b774  gcc/testsuite/g++.dg/contracts/contracts15.C
! 23a4f768640a7185c026b8ff7fb25f57  gcc/testsuite/g++.dg/contracts/contracts16.C
! 2406edd9eb09e0dbe32e443cfa740f53  gcc/testsuite/g++.dg/contracts/contracts17.C
! 32e88b8694a0ed5123bb44f3236a7cc9  gcc/testsuite/g++.dg/contracts/contracts18.C
! d79864fe8460f707787b245daf5d0603  gcc/testsuite/g++.dg/contracts/contracts19.C
! f79242a54cea67e662396d7708b1d96a  gcc/testsuite/g++.dg/contracts/contracts2.C
  d854c6c14e50ba3b621cfa5a19c1e835  gcc/testsuite/g++.dg/contracts/contracts20.C
! 7cedd004482213e7ea0d823af3bac482  gcc/testsuite/g++.dg/contracts/contracts22.C
! 48cb5f6f226e76b7341aab81c08f6602  gcc/testsuite/g++.dg/contracts/contracts24.C
! 2b1e3632e05cb51c78ef6c1312be5225  gcc/testsuite/g++.dg/contracts/contracts25.C
! 8399a2b96fe8f2674d0878da924472ff  gcc/testsuite/g++.dg/contracts/contracts3.C
! e33d1aa7631561080624816856ba9afa  gcc/testsuite/g++.dg/contracts/contracts35.C
! ef29c53b1b9f00d76672c93f55d6f649  gcc/testsuite/g++.dg/contracts/contracts4.C
! 73889b3de790f0957f9bc744c5b49b24  gcc/testsuite/g++.dg/contracts/contracts5.C
! 927c495d30669473630db460e0c9b832  gcc/testsuite/g++.dg/contracts/contracts6.C
! e1d6233d79978f9b6aa6354d979510ea  gcc/testsuite/g++.dg/contracts/contracts7.C
  1ab07d07d8710623da3e3582c85a642c  gcc/testsuite/g++.dg/contracts/contracts8.C
! da7e9d42cf35a399a1a7eeaf4d2b278d  gcc/testsuite/g++.dg/contracts/contracts9.C
  460175ab5b30061d80960faa912cdb56  gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile
  43408545b0dc258f8b9f1b20507a7228  gcc/testsuite/g++.dg/contracts/except_preload_handler/README
  898e3ee72371441be6b9914570dd1dba  gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp
--- 15644,15718 ----
  c9db1153e8ee5cb72849f5c0f39cf1e3  gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor2.C
  124d5f0934307b58c175aa152287e8a0  gcc/testsuite/g++.dg/contracts/contracts-cv1.C
  e441ab4fa3cbbe376b99cd549356774a  gcc/testsuite/g++.dg/contracts/contracts-deduced1.C
! bc27327e16d09c0b58bbc1db4cd65827  gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
  5c9bafac170b07d97ed4eb83dc16ef98  gcc/testsuite/g++.dg/contracts/contracts-err1.C
! ce30c4843848edfc9e110e6c39ca4df7  gcc/testsuite/g++.dg/contracts/contracts-externC.C
! ade275b9aabf3ba09153f5426fd4469d  gcc/testsuite/g++.dg/contracts/contracts-friend1.C
  52b21bc9c9cad3844d95e311a988d68f  gcc/testsuite/g++.dg/contracts/contracts-ft1.C
  71d1f0701de65c6343284c3a5cbb342f  gcc/testsuite/g++.dg/contracts/contracts-ignore1.C
! 8539718daca649abdb77245f710ba085  gcc/testsuite/g++.dg/contracts/contracts-ignore2.C
  bb0dd846252c3c3c1d582fa399b6fd4a  gcc/testsuite/g++.dg/contracts/contracts-large-return.C
! caba2cd20ac8020041f7a2732f10f66e  gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
  93826bdbe09e0a48115b2e9f7dd205d8  gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance1.C
  d647c3628b453645a4980cb2c7de1b6a  gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance2.C
  2f30c236622a9703769ea01c66616f42  gcc/testsuite/g++.dg/contracts/contracts-nested-class1.C
! a4baeb8a410dce7664ad2e394fe2b7c3  gcc/testsuite/g++.dg/contracts/contracts-nested-class2.C
  d61ea23f366dae37350aa0dc5f2b4528  gcc/testsuite/g++.dg/contracts/contracts-nocopy1.C
  01ab4dc999a96e56ee2226ac44bdbf8e  gcc/testsuite/g++.dg/contracts/contracts-override.C
  51d94c6f242297eab641a9cd460f5f37  gcc/testsuite/g++.dg/contracts/contracts-post1.C
! 8cc91453a4494a9e20a055ccb5a3652a  gcc/testsuite/g++.dg/contracts/contracts-post2.C
! 6ac97d9fb1ea567bd577d2bd26986c06  gcc/testsuite/g++.dg/contracts/contracts-post3.C
  fd1ebb08a8584706a94c2f3a8341af7c  gcc/testsuite/g++.dg/contracts/contracts-post4.C
  e2590b46b53ec704324172e6e9b19d6e  gcc/testsuite/g++.dg/contracts/contracts-post5.C
  c20bb9e2f528699a697643b507b9d245  gcc/testsuite/g++.dg/contracts/contracts-post6.C
! 25181ce13e844c46905c30af89f284b1  gcc/testsuite/g++.dg/contracts/contracts-post7.C
  7116878ea39c2a20c71154e676cbcc1e  gcc/testsuite/g++.dg/contracts/contracts-pre1.C
! 02c031c79f6b258f76eea9fff6c99437  gcc/testsuite/g++.dg/contracts/contracts-pre10.C
! 59791e2f48309b11f9de135f950ad4ad  gcc/testsuite/g++.dg/contracts/contracts-pre2.C
  44f64673aac65a1ae27a3c101075e216  gcc/testsuite/g++.dg/contracts/contracts-pre2a1.C
! 2cebbfad6426a65b64033ee111bc7347  gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
! 60cfba4c74054ecde5807744d243b794  gcc/testsuite/g++.dg/contracts/contracts-pre3.C
! cb9676b0fa70be7e3ba40ff5faf0e1bf  gcc/testsuite/g++.dg/contracts/contracts-pre4.C
! f07523793b08772dcc3a9117a9a25ce3  gcc/testsuite/g++.dg/contracts/contracts-pre5.C
  b1e16c42ac54a9ddccdb5e21e4f4f5b3  gcc/testsuite/g++.dg/contracts/contracts-pre6.C
! 49d94d00c8c3cd5350ce7b7204825921  gcc/testsuite/g++.dg/contracts/contracts-pre7.C
! f8177f152c297038e62e9d6375bc81dc  gcc/testsuite/g++.dg/contracts/contracts-pre9.C
  62ba1c4517aa7006be86df32a86b112b  gcc/testsuite/g++.dg/contracts/contracts-redecl1.C
  cb6c3d1131c86c5625a7a5cd72e4eef3  gcc/testsuite/g++.dg/contracts/contracts-redecl2.C
! 1cc34b25c3ed2e835e3b2be3f68d1759  gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
! 6711ff60433421a5fa84ccf23b0f9668  gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
  82709f66f4af2a21bd6f909183dbac48  gcc/testsuite/g++.dg/contracts/contracts-redecl5.C
! 339d4a695f67e7ed801145735ee56166  gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
! 9a30d0a146faea929c7751c33f7b9a0e  gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
  d53c0b0fc368bda6e8adfdda351d531e  gcc/testsuite/g++.dg/contracts/contracts-redecl8.C
  a7f4a2fd7bf07439040a7b09cb4c8072  gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C
! 721279ea193dda609e3353e2b96a7c26  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
! 88d05eaa691b32cfa5f038aeea31d090  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
! 334f6845dea633a15c2defb6633ad1af  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
  c210cba8e1e324774b6ab401c96deeb0  gcc/testsuite/g++.dg/contracts/contracts1.C
! ddd72f980540baa9eb39255f045cfe12  gcc/testsuite/g++.dg/contracts/contracts10.C
  7328aa3328d6837c51d49a379fb578e6  gcc/testsuite/g++.dg/contracts/contracts11.C
  190c759120c67e0575bdf5bdfa24b64a  gcc/testsuite/g++.dg/contracts/contracts12.C
  ee120fc86148dfc73930595c4e310dd5  gcc/testsuite/g++.dg/contracts/contracts13.C
! 04ef290a2030d0ce1bc09d20bb533322  gcc/testsuite/g++.dg/contracts/contracts14.C
! b503e106a6e03d050ccdd754ecfac94a  gcc/testsuite/g++.dg/contracts/contracts15.C
! f272cb1fc2dd2dc678e80b0b6f950d0a  gcc/testsuite/g++.dg/contracts/contracts16.C
! 1626437ec76b8b8a5f5d23ca731765fa  gcc/testsuite/g++.dg/contracts/contracts17.C
! c3555a266c38d62dcb08cef1da14ab3e  gcc/testsuite/g++.dg/contracts/contracts18.C
! 2a042b6fab162fd0f27272ae8615e5c0  gcc/testsuite/g++.dg/contracts/contracts19.C
! 11101d9c38f21aadd5b2b2b306b1e6b0  gcc/testsuite/g++.dg/contracts/contracts2.C
  d854c6c14e50ba3b621cfa5a19c1e835  gcc/testsuite/g++.dg/contracts/contracts20.C
! eb1d7b08cf60bf8224289a0c6c131932  gcc/testsuite/g++.dg/contracts/contracts22.C
! 6416219b080b52d3277c5fffb0dc167b  gcc/testsuite/g++.dg/contracts/contracts24.C
! efcc6e14040abed9e611e40ae3d08b8d  gcc/testsuite/g++.dg/contracts/contracts25.C
! b94f325172fd82c853ef28923bbc93b8  gcc/testsuite/g++.dg/contracts/contracts3.C
! 9e0e87df97662b6d32cf0696e0c664ea  gcc/testsuite/g++.dg/contracts/contracts35.C
! ce662f569037891152d7969bec2685cd  gcc/testsuite/g++.dg/contracts/contracts4.C
! 4f473f895a1266b8ce95df2ba872c89b  gcc/testsuite/g++.dg/contracts/contracts5.C
! 205196cb7cfb52db1ff838dfaaea7ea1  gcc/testsuite/g++.dg/contracts/contracts6.C
! 1797d136577437bca9f5032ba326ecc1  gcc/testsuite/g++.dg/contracts/contracts7.C
  1ab07d07d8710623da3e3582c85a642c  gcc/testsuite/g++.dg/contracts/contracts8.C
! 7c4fb137a22208c6e9240f7589edbd63  gcc/testsuite/g++.dg/contracts/contracts9.C
  460175ab5b30061d80960faa912cdb56  gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile
  43408545b0dc258f8b9f1b20507a7228  gcc/testsuite/g++.dg/contracts/except_preload_handler/README
  898e3ee72371441be6b9914570dd1dba  gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp
*************** da7e9d42cf35a399a1a7eeaf4d2b278d  gcc/te
*** 14651,14656 ****
--- 15721,15732 ----
  5b9994a0d41a7ee4e89f793a435c6f57  gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/README
  1eef935e17a9e42132e42fbaf5825bd3  gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/assert_fail.cpp
  976d7e6f6d60f6f3099e288e26993286  gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/handle_contract_violation.cpp
+ addfdc1364048741e22ee32302cdf092  gcc/testsuite/g++.dg/contracts/pr110159.C
+ fad9615e64b4a42988f5ba3d0b6e8552  gcc/testsuite/g++.dg/contracts/pr113968.C
+ f0398ac4aacbf6c27a19e54cbf6a6347  gcc/testsuite/g++.dg/contracts/pr115434.C
+ 70b03c5ba8925c9f03868c4fbe39073a  gcc/testsuite/g++.dg/contracts/pr116490.C
+ 5e66eb4f6b5efc8e23309b95e8176b65  gcc/testsuite/g++.dg/contracts/pr116607.C
+ d5e1613017d3f9eca3ecede804bc0b5b  gcc/testsuite/g++.dg/contracts/pr117579.C
  c81f2cfc289a492c0914488fe8b63c60  gcc/testsuite/g++.dg/contracts/preload_handler/Makefile
  25782949ad51a3e368e55d72b148a8b7  gcc/testsuite/g++.dg/contracts/preload_handler/README
  a20f08cc18eaf6c3032e2d1b9cffe61d  gcc/testsuite/g++.dg/contracts/preload_handler/assert_fail.cpp
*************** abda548f6cf197b5d004afe0b4fa5557  gcc/te
*** 14706,14711 ****
--- 15782,15788 ----
  c0f35a8e0a449b69b0039186b48a3942  gcc/testsuite/g++.dg/conversion/op5.C
  4abc5f18f6f8a1f4d436b8a6b3150df3  gcc/testsuite/g++.dg/conversion/op6.C
  b3506f6da49052d7a7e20089f99f17b7  gcc/testsuite/g++.dg/conversion/op7.C
+ 2604485ee8b846592cab3c3e92579fa1  gcc/testsuite/g++.dg/conversion/op8.C
  9661d2d3622759ea353cb1cafe1633c9  gcc/testsuite/g++.dg/conversion/packed1.C
  5c78730bf80025f457f190a83a71fc4e  gcc/testsuite/g++.dg/conversion/packed2.C
  aadd9c8f0e37dbd4368b036b8516964b  gcc/testsuite/g++.dg/conversion/pr100635.C
*************** aadd9c8f0e37dbd4368b036b8516964b  gcc/te
*** 14715,14720 ****
--- 15792,15798 ----
  7c2baf81a4424b9894f9edf958000455  gcc/testsuite/g++.dg/conversion/pr66211.C
  e6b7c453fcfdf5af281f4aa01491a4be  gcc/testsuite/g++.dg/conversion/pr66895.C
  23830a13c326c99bae67e56e30ebc0b4  gcc/testsuite/g++.dg/conversion/ptrmem1.C
+ 09680563a21c2aa45aa89bb98e19d811  gcc/testsuite/g++.dg/conversion/ptrmem10.C
  669a0fc3874954d521630e2f2403b12c  gcc/testsuite/g++.dg/conversion/ptrmem2.C
  49bc3e172bdc4fac484d34507ab2d1c8  gcc/testsuite/g++.dg/conversion/ptrmem3.C
  17ad39eaf20adaa0ed0d05ef893ab3e3  gcc/testsuite/g++.dg/conversion/ptrmem4.C
*************** ada1ece7347c7f19252ad084712f97d6  gcc/te
*** 14756,14762 ****
  f74a9d1bf6640b367d56a51317dbd163  gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C
  d2633a9d9bd295c903ea6a188821ac3c  gcc/testsuite/g++.dg/coroutines/co-await-syntax-00-needs-expr.C
  cbcf61ac3695e850097b05502475b900  gcc/testsuite/g++.dg/coroutines/co-await-syntax-01-outside-fn.C
! b9cdf449335374fa9e29301f8b540c5e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-02-outside-fn.C
  682b88ecb570c0234a2c2fbefbf37596  gcc/testsuite/g++.dg/coroutines/co-await-syntax-03-auto.C
  57a82b1b4ee08a1b6b36d4bdf52ee97e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-04-ctor-dtor.C
  59640cf5aa96f58eea4bbeb4e90545cf  gcc/testsuite/g++.dg/coroutines/co-await-syntax-05-constexpr.C
--- 15834,15840 ----
  f74a9d1bf6640b367d56a51317dbd163  gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C
  d2633a9d9bd295c903ea6a188821ac3c  gcc/testsuite/g++.dg/coroutines/co-await-syntax-00-needs-expr.C
  cbcf61ac3695e850097b05502475b900  gcc/testsuite/g++.dg/coroutines/co-await-syntax-01-outside-fn.C
! 29f562bc19ebf8b69c6ddeff88679485  gcc/testsuite/g++.dg/coroutines/co-await-syntax-02-outside-fn.C
  682b88ecb570c0234a2c2fbefbf37596  gcc/testsuite/g++.dg/coroutines/co-await-syntax-03-auto.C
  57a82b1b4ee08a1b6b36d4bdf52ee97e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-04-ctor-dtor.C
  59640cf5aa96f58eea4bbeb4e90545cf  gcc/testsuite/g++.dg/coroutines/co-await-syntax-05-constexpr.C
*************** a8b153bbc8ce941d24c7c0e6ab6c5831  gcc/te
*** 14779,14785 ****
  6707f9fc8aacf660ae1beb8d09e4c119  gcc/testsuite/g++.dg/coroutines/co-return-syntax-10-movable.C
  85e7e0815826bd828101765c5fd78a66  gcc/testsuite/g++.dg/coroutines/co-return-warning-1.C
  aa517ad92377039530de5c9dc496beda  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-00-needs-expr.C
! 5e7fab059a6acab2c92b4dbc895ee573  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-01-outside-fn.C
  8aaabb6f3807b758e6042bc711be4dae  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-02-outside-fn.C
  aae3e5eeb2e307720fe200ed5fa7f57e  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-03-auto.C
  a58ce7599a07fb71eceb363e9bf2e1f8  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-04-ctor-dtor.C
--- 15857,15863 ----
  6707f9fc8aacf660ae1beb8d09e4c119  gcc/testsuite/g++.dg/coroutines/co-return-syntax-10-movable.C
  85e7e0815826bd828101765c5fd78a66  gcc/testsuite/g++.dg/coroutines/co-return-warning-1.C
  aa517ad92377039530de5c9dc496beda  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-00-needs-expr.C
! 0abd63fb6f8e1606f97bfe8ff8a599e2  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-01-outside-fn.C
  8aaabb6f3807b758e6042bc711be4dae  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-02-outside-fn.C
  aae3e5eeb2e307720fe200ed5fa7f57e  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-03-auto.C
  a58ce7599a07fb71eceb363e9bf2e1f8  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-04-ctor-dtor.C
*************** ddfd6a90cf32e5a6f5b08574c034f7eb  gcc/te
*** 14789,14801 ****
  55879456948d3178ae65b91b139bfc99  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-08-needs-expr.C
  33768c9fc7ff3892a7bef9483c31549d  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-09-lambda-auto.C
  78af0a6168ada3b1d34931291fa17911  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C
! ffc351894b467f0868dd9e3ff56e8b09  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C
! bcba22803ed3d0f8efcb00d0980effed  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C
! 5905d0bff2fe1daec08474d17a24aec6  gcc/testsuite/g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C
! d0ec9373b7671fe70b47e96812daa568  gcc/testsuite/g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C
! a50880b566fed6d07b909ccdaa5107a7  gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-00-static.C
  bf25ae08316051d9833582ee358711b2  gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-01-grooaf-expected.C
  8e2244c730152e6c96e90cb463a33d11  gcc/testsuite/g++.dg/coroutines/coro-builtins.C
  2ee732d97a353f9dae689cd5e7a0e6bf  gcc/testsuite/g++.dg/coroutines/coro-missing-final-suspend.C
  c650db04adc1ddeff58daa89681ac083  gcc/testsuite/g++.dg/coroutines/coro-missing-gro.C
  d622746579a0968e8d80e69091842263  gcc/testsuite/g++.dg/coroutines/coro-missing-initial-suspend.C
--- 15867,15880 ----
  55879456948d3178ae65b91b139bfc99  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-08-needs-expr.C
  33768c9fc7ff3892a7bef9483c31549d  gcc/testsuite/g++.dg/coroutines/co-yield-syntax-09-lambda-auto.C
  78af0a6168ada3b1d34931291fa17911  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C
! 2f843cea7135807534232957aaf21ba6  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C
! 9aa1ab967ff6d870422c26077cedb0bd  gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C
! d159416db1f8fe9238d3a8d308a07f66  gcc/testsuite/g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C
! 5fe46e59c42d8e2aa7f6be6254b0700e  gcc/testsuite/g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C
! c460f4ef8e2c4347cfa3c06d82869353  gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-00-static.C
  bf25ae08316051d9833582ee358711b2  gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-01-grooaf-expected.C
  8e2244c730152e6c96e90cb463a33d11  gcc/testsuite/g++.dg/coroutines/coro-builtins.C
+ a20d9c7dba9d8ca91ca47515997e5b82  gcc/testsuite/g++.dg/coroutines/coro-function-decl.C
  2ee732d97a353f9dae689cd5e7a0e6bf  gcc/testsuite/g++.dg/coroutines/coro-missing-final-suspend.C
  c650db04adc1ddeff58daa89681ac083  gcc/testsuite/g++.dg/coroutines/coro-missing-gro.C
  d622746579a0968e8d80e69091842263  gcc/testsuite/g++.dg/coroutines/coro-missing-initial-suspend.C
*************** bdf425a510ce924668a7bcbca275f7d7  gcc/te
*** 14808,14865 ****
  bd0ea3710f987fa8b866de1dda671af6  gcc/testsuite/g++.dg/coroutines/coro-missing-ueh-3.C
  1e8c7244ef18cce6ae04d3ba82a340a4  gcc/testsuite/g++.dg/coroutines/coro-missing-ueh.h
  8bb9a557eebbfb2add0de2e6f7f82a62  gcc/testsuite/g++.dg/coroutines/coro-pre-proc.C
! f8ef2c7d9409afc2b9b4e1f2aa9700fd  gcc/testsuite/g++.dg/coroutines/coro.h
  cb41fef7448625fa4e0c8fd96e24fc4d  gcc/testsuite/g++.dg/coroutines/coro1-allocators.h
  478574fcd282b18447d13478fa0bec3f  gcc/testsuite/g++.dg/coroutines/coro1-missing-await-method.C
  6f5627b19b794cfdd383607165c8ad4e  gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h
  6487c0454968e62ff493f215450a35cc  gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h
! 101a458de5b12d6ed22922527d4908a3  gcc/testsuite/g++.dg/coroutines/coroutines.exp
  38480902b130e861149d8b8b006e7e6b  gcc/testsuite/g++.dg/coroutines/pr100127.C
! 98a063ad16e26b41bc64224b581301b8  gcc/testsuite/g++.dg/coroutines/pr100611.C
  46087ea7fe5f7e548d1db1fe2bd1cdf7  gcc/testsuite/g++.dg/coroutines/pr100673.C
  91ac4979abfedd9052be068897dd1477  gcc/testsuite/g++.dg/coroutines/pr100772-a.C
! 7f7430490507ba4fe1e3ba93e6a9e758  gcc/testsuite/g++.dg/coroutines/pr100772-b.C
! 3b360a406ca4de73d3459cedee0d38e5  gcc/testsuite/g++.dg/coroutines/pr101133.C
! 41e3768a7e4c86bb1f5702ed69afe25d  gcc/testsuite/g++.dg/coroutines/pr101367.C
! 3b7900c34ea0474d337aa825a01675c2  gcc/testsuite/g++.dg/coroutines/pr101765.C
! 907876b899af7e13b2655a2ff373099e  gcc/testsuite/g++.dg/coroutines/pr101976.C
! 5a6ab803d16d71889bbcfbe081300785  gcc/testsuite/g++.dg/coroutines/pr102454.C
! fcf423593c66a6801268d44dcd7b6ae1  gcc/testsuite/g++.dg/coroutines/pr102489.C
  85cc1b4c4f0e73f17a81693bed3275fa  gcc/testsuite/g++.dg/coroutines/pr103328.C
! 0e86724aa7dbc01acaa7860397f33bb4  gcc/testsuite/g++.dg/coroutines/pr103868.C
! 4be4670ffeb4857d864cfa5cfa5dc16f  gcc/testsuite/g++.dg/coroutines/pr104051.C
! ec5631ea2eafc2e3ebea58d8b93aa57c  gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
! 27e919b929acdcd5721b1869fde7cbf1  gcc/testsuite/g++.dg/coroutines/pr105287.C
! d790a308ebfc34da4805acce40128a0a  gcc/testsuite/g++.dg/coroutines/pr105301.C
  c5029b3ababd909d21fec108130560c2  gcc/testsuite/g++.dg/coroutines/pr106188.C
  7801d6d5799eadc6c00398b3003e9a6d  gcc/testsuite/g++.dg/coroutines/pr107768.C
  2dcf11bf73d45c90e6be4a5ed46555a5  gcc/testsuite/g++.dg/coroutines/pr115550-preview-this.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
  a692885ae53653cf5947fa818a85f111  gcc/testsuite/g++.dg/coroutines/pr93458-4-bad-coro-handle.C
  45bb42ea728f75ccdc6c21be6a6ee8c3  gcc/testsuite/g++.dg/coroutines/pr93458-5-bad-coro-type.C
! 0af70b4922e5ac7412278825e6452eb8  gcc/testsuite/g++.dg/coroutines/pr94288.C
! 5b804bd8735580b8a8d6c70ec3f70df8  gcc/testsuite/g++.dg/coroutines/pr94528.C
  a3782dccef07620df707f8dac0a7c64a  gcc/testsuite/g++.dg/coroutines/pr94682-preview-this.C
  f94b132c0aae8eaa2355126af9e65707  gcc/testsuite/g++.dg/coroutines/pr94752.C
  c41c0f3460d21e0c4db49f70ce077c29  gcc/testsuite/g++.dg/coroutines/pr94760-mismatched-traits-and-promise-prev.C
  bd516c5865d9e7ccb7376cdd2e004d0f  gcc/testsuite/g++.dg/coroutines/pr94817.C
  80f2ddf6e7fa3b7d98d16dcb37394788  gcc/testsuite/g++.dg/coroutines/pr94829.C
! 05a78501dd3c25375f0da2bfd7901151  gcc/testsuite/g++.dg/coroutines/pr94879-folly-1.C
! 3b2a895d498722a8ce8da6f99f96117e  gcc/testsuite/g++.dg/coroutines/pr94883-folly-2.C
  fa1dba5da47078603d79923b5b343d43  gcc/testsuite/g++.dg/coroutines/pr94886-folly-3.C
  f41f630eebfc858cbd9471df42c4a56a  gcc/testsuite/g++.dg/coroutines/pr95050.C
  9d01ddcc0b1513ede783b802cb9b0351  gcc/testsuite/g++.dg/coroutines/pr95345.C
  8bf205f696ed7639e65915dc4a69b1e6  gcc/testsuite/g++.dg/coroutines/pr95346.C
  5f7f99cdffd231c601cf3a57331ecac7  gcc/testsuite/g++.dg/coroutines/pr95350.C
  ee1e9ba3bc8622e1fe7548c1e6368ec6  gcc/testsuite/g++.dg/coroutines/pr95440.C
! 05100d20f9b9853bd56ead602feb1718  gcc/testsuite/g++.dg/coroutines/pr95477.C
  ad31826ccc407ca77f13ccedabe598c9  gcc/testsuite/g++.dg/coroutines/pr95505.C
  d7c4d12326724992c8854e0b38126068  gcc/testsuite/g++.dg/coroutines/pr95518.C
! 88de21db6a5919870fc423644c307d0f  gcc/testsuite/g++.dg/coroutines/pr95520.C
  c0851b55f1db10d372a842d773d11661  gcc/testsuite/g++.dg/coroutines/pr95591.C
! e73c27407e7a8d493fc1ebdec10d6c87  gcc/testsuite/g++.dg/coroutines/pr95599.C
  8647f401f04a81b704516887be4b28c4  gcc/testsuite/g++.dg/coroutines/pr95616-0-no-exceptions.C
  3fd320156b24d7e2f06d831a9c811848  gcc/testsuite/g++.dg/coroutines/pr95616-0.C
  0fe1b5347f976f18205e87d472712a14  gcc/testsuite/g++.dg/coroutines/pr95616-1-no-exceptions.C
--- 15887,15982 ----
  bd0ea3710f987fa8b866de1dda671af6  gcc/testsuite/g++.dg/coroutines/coro-missing-ueh-3.C
  1e8c7244ef18cce6ae04d3ba82a340a4  gcc/testsuite/g++.dg/coroutines/coro-missing-ueh.h
  8bb9a557eebbfb2add0de2e6f7f82a62  gcc/testsuite/g++.dg/coroutines/coro-pre-proc.C
! 4cd3a4318393e911038536b6ead6b491  gcc/testsuite/g++.dg/coroutines/coro-range-for1.C
! 022bd06252ed95612a4c379cb3d160c6  gcc/testsuite/g++.dg/coroutines/coro.h
  cb41fef7448625fa4e0c8fd96e24fc4d  gcc/testsuite/g++.dg/coroutines/coro1-allocators.h
  478574fcd282b18447d13478fa0bec3f  gcc/testsuite/g++.dg/coroutines/coro1-missing-await-method.C
  6f5627b19b794cfdd383607165c8ad4e  gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h
  6487c0454968e62ff493f215450a35cc  gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h
! 1c56e1e606c086d4fa5237e15e9d14e2  gcc/testsuite/g++.dg/coroutines/coroutines.exp
! 6ece11b45159f25b68242745f908d279  gcc/testsuite/g++.dg/coroutines/maybe-unused-1.C
! de5003b6efc45fbdb82fb3c9a14023b0  gcc/testsuite/g++.dg/coroutines/nodiscard-1.C
  38480902b130e861149d8b8b006e7e6b  gcc/testsuite/g++.dg/coroutines/pr100127.C
! 88574c0dc1395f31dc409f048bf37faf  gcc/testsuite/g++.dg/coroutines/pr100611.C
  46087ea7fe5f7e548d1db1fe2bd1cdf7  gcc/testsuite/g++.dg/coroutines/pr100673.C
  91ac4979abfedd9052be068897dd1477  gcc/testsuite/g++.dg/coroutines/pr100772-a.C
! d322d00cf8d4e375275b3f3b4ce8b290  gcc/testsuite/g++.dg/coroutines/pr100772-b.C
! 1215103fa6f2cc53b4c5757e4b0528ae  gcc/testsuite/g++.dg/coroutines/pr101133.C
! 60a977753fcf80f3a234122a4cebca16  gcc/testsuite/g++.dg/coroutines/pr101367.C
! 2563836474e2e9749d3855d68b4df7d9  gcc/testsuite/g++.dg/coroutines/pr101765.C
! 998dff5ea1d54285979aefe378230a29  gcc/testsuite/g++.dg/coroutines/pr101976.C
! 9c42a83dd6fc49392780ffaa29c32b59  gcc/testsuite/g++.dg/coroutines/pr102051.C
! db554dd8b7e091b17b59c6d8ebf5684e  gcc/testsuite/g++.dg/coroutines/pr102454.C
! ef7a17d165b83f4a1f6f2146ca741d68  gcc/testsuite/g++.dg/coroutines/pr102489.C
  85cc1b4c4f0e73f17a81693bed3275fa  gcc/testsuite/g++.dg/coroutines/pr103328.C
! 858276614776f5f89fec709b05c75e87  gcc/testsuite/g++.dg/coroutines/pr103868.C
! a49dbbbe1c94b2689489e4c418d84316  gcc/testsuite/g++.dg/coroutines/pr104051.C
! b134bf48c5d1c37a3f48e0c7f25bd714  gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
! 9bcaec9fc97ae958d52ca93f20348767  gcc/testsuite/g++.dg/coroutines/pr105287.C
! 3ed2837ec0a605227e3db035996b80d7  gcc/testsuite/g++.dg/coroutines/pr105301.C
! 3736008e5e89f5e62c30e8101e5acef0  gcc/testsuite/g++.dg/coroutines/pr105475-1.C
! 8d0fa780fa98582b56eeda555793b5a4  gcc/testsuite/g++.dg/coroutines/pr105475-2.C
! 92371c0570249bfe00b9ce6c9a9d4b73  gcc/testsuite/g++.dg/coroutines/pr105475-3.C
! 27fa89ff3b58b37e4344c5e638040611  gcc/testsuite/g++.dg/coroutines/pr105475-4.C
! 4fe427417f7f5d8d525b4d0c90beace6  gcc/testsuite/g++.dg/coroutines/pr105475-5.C
! 7357458562c1e0d36e5cb6f67af27450  gcc/testsuite/g++.dg/coroutines/pr105475-6.C
! dc116348933b70af69665c9477f14450  gcc/testsuite/g++.dg/coroutines/pr105475-broken-spec-2.C
! bfb4d4da5fe86af369bbdec84872cc96  gcc/testsuite/g++.dg/coroutines/pr105475-broken-spec.C
! 2d3e12d9f28b3d12f5381192430ca293  gcc/testsuite/g++.dg/coroutines/pr105475.C
  c5029b3ababd909d21fec108130560c2  gcc/testsuite/g++.dg/coroutines/pr106188.C
+ 95d1fc3ce20e1869ccfe0388d864bb6f  gcc/testsuite/g++.dg/coroutines/pr106973.C
  7801d6d5799eadc6c00398b3003e9a6d  gcc/testsuite/g++.dg/coroutines/pr107768.C
+ f0ecdfa3037177a9490a46764f03f03b  gcc/testsuite/g++.dg/coroutines/pr108620.C
+ 3d4d02626804c550ebe1e4cd3be90908  gcc/testsuite/g++.dg/coroutines/pr109682.C
+ e871dade9f29aef626c6c2b971763df6  gcc/testsuite/g++.dg/coroutines/pr110171-1.C
+ 2d41ae2373f79574814b547e58adf65b  gcc/testsuite/g++.dg/coroutines/pr110171.C
+ a9a380461a08693fcb6e2a8d0c088a72  gcc/testsuite/g++.dg/coroutines/pr110635.C
+ 20c31ba7b9813c7592788f115c164999  gcc/testsuite/g++.dg/coroutines/pr110855.C
+ c7e88ac061e6e43895f7a223cb84bef5  gcc/testsuite/g++.dg/coroutines/pr110871.C
+ 36c888e2999e58645eb61e67fe0cb24f  gcc/testsuite/g++.dg/coroutines/pr110872.C
+ dd1706e477862bd429aba56e40a12665  gcc/testsuite/g++.dg/coroutines/pr111728.C
+ bc13f9bef9dfbb9f378794dc144f6b7f  gcc/testsuite/g++.dg/coroutines/pr112341-2.C
+ c30585d33347e6eb25da9da916e1da25  gcc/testsuite/g++.dg/coroutines/pr112341-3.C
+ d94eaf98fb64f996342be49a4c220def  gcc/testsuite/g++.dg/coroutines/pr112341.C
+ 50b0f2e4de017887ae63e20c43f93400  gcc/testsuite/g++.dg/coroutines/pr113457-1.C
+ 9d5fe657327f09951f2ae2d6f6ec210a  gcc/testsuite/g++.dg/coroutines/pr113457.C
  2dcf11bf73d45c90e6be4a5ed46555a5  gcc/testsuite/g++.dg/coroutines/pr115550-preview-this.C
+ d1a28daa3c4755a0f709ca07f8c48994  gcc/testsuite/g++.dg/coroutines/pr115858.C
+ 8496292f23f33e07ff0fe7b9e8f1eb91  gcc/testsuite/g++.dg/coroutines/pr115906-yield.C
+ 9514f224b21eb90bcef5ab37ae609a92  gcc/testsuite/g++.dg/coroutines/pr115906.C
+ b23bcd7c0e520fe5a372838baf5a4e22  gcc/testsuite/g++.dg/coroutines/pr115908.C
+ b75b654187426934820f1e2a8a63aaad  gcc/testsuite/g++.dg/coroutines/pr116327-preview-this.C
+ 36259c7c65f78b7358d2efa4fb0a9e54  gcc/testsuite/g++.dg/coroutines/pr116482.C
+ 808c70848e15a3d82e09b131dabb149b  gcc/testsuite/g++.dg/coroutines/pr116502.C
+ 99fb6f2e5c0e7bc8a3c78cbf8090a91f  gcc/testsuite/g++.dg/coroutines/pr116506.C
+ 59d8e6cfa9a450642b4a378751f44e8a  gcc/testsuite/g++.dg/coroutines/pr116793-1.C
+ 16df01e113e50e8969f23cb32c1ab8fd  gcc/testsuite/g++.dg/coroutines/pr116880.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
  a692885ae53653cf5947fa818a85f111  gcc/testsuite/g++.dg/coroutines/pr93458-4-bad-coro-handle.C
  45bb42ea728f75ccdc6c21be6a6ee8c3  gcc/testsuite/g++.dg/coroutines/pr93458-5-bad-coro-type.C
! b90769c3a7417b0adde5c9f3b39d0437  gcc/testsuite/g++.dg/coroutines/pr94288.C
! 844da37d9c2a92221e79e7ca2f78001b  gcc/testsuite/g++.dg/coroutines/pr94528.C
  a3782dccef07620df707f8dac0a7c64a  gcc/testsuite/g++.dg/coroutines/pr94682-preview-this.C
  f94b132c0aae8eaa2355126af9e65707  gcc/testsuite/g++.dg/coroutines/pr94752.C
  c41c0f3460d21e0c4db49f70ce077c29  gcc/testsuite/g++.dg/coroutines/pr94760-mismatched-traits-and-promise-prev.C
  bd516c5865d9e7ccb7376cdd2e004d0f  gcc/testsuite/g++.dg/coroutines/pr94817.C
  80f2ddf6e7fa3b7d98d16dcb37394788  gcc/testsuite/g++.dg/coroutines/pr94829.C
! ef62b6c91b84ae78415b2ba2e4047e03  gcc/testsuite/g++.dg/coroutines/pr94879-folly-1.C
! 0e8610ea1b9412eeabe69a53328bbbca  gcc/testsuite/g++.dg/coroutines/pr94883-folly-2.C
  fa1dba5da47078603d79923b5b343d43  gcc/testsuite/g++.dg/coroutines/pr94886-folly-3.C
  f41f630eebfc858cbd9471df42c4a56a  gcc/testsuite/g++.dg/coroutines/pr95050.C
  9d01ddcc0b1513ede783b802cb9b0351  gcc/testsuite/g++.dg/coroutines/pr95345.C
  8bf205f696ed7639e65915dc4a69b1e6  gcc/testsuite/g++.dg/coroutines/pr95346.C
  5f7f99cdffd231c601cf3a57331ecac7  gcc/testsuite/g++.dg/coroutines/pr95350.C
  ee1e9ba3bc8622e1fe7548c1e6368ec6  gcc/testsuite/g++.dg/coroutines/pr95440.C
! 2f2bc3bb495b061b617814d883dd3787  gcc/testsuite/g++.dg/coroutines/pr95477.C
  ad31826ccc407ca77f13ccedabe598c9  gcc/testsuite/g++.dg/coroutines/pr95505.C
  d7c4d12326724992c8854e0b38126068  gcc/testsuite/g++.dg/coroutines/pr95518.C
! e0dc96a0b015478ced087be57547dc8b  gcc/testsuite/g++.dg/coroutines/pr95520.C
  c0851b55f1db10d372a842d773d11661  gcc/testsuite/g++.dg/coroutines/pr95591.C
! 708ed65a80a86fecfc6ba86c03ce9b3d  gcc/testsuite/g++.dg/coroutines/pr95599.C
  8647f401f04a81b704516887be4b28c4  gcc/testsuite/g++.dg/coroutines/pr95616-0-no-exceptions.C
  3fd320156b24d7e2f06d831a9c811848  gcc/testsuite/g++.dg/coroutines/pr95616-0.C
  0fe1b5347f976f18205e87d472712a14  gcc/testsuite/g++.dg/coroutines/pr95616-1-no-exceptions.C
*************** a676966bdd400a269c1a1795e2b65c46  gcc/te
*** 14870,14877 ****
  8edab167bf1ac7bc70706dd427ad61f3  gcc/testsuite/g++.dg/coroutines/pr95616-4.C
  d8ffc7c1c2fcbfd4c0bb050517731ff9  gcc/testsuite/g++.dg/coroutines/pr95616-5.C
  6d0115907d0cc08584303902e33744a6  gcc/testsuite/g++.dg/coroutines/pr95616-6.C
! 4e6b40bbd7b9ffb020740b0b4b48256b  gcc/testsuite/g++.dg/coroutines/pr95711.C
! da3e043a65035766965e80d23c99bf52  gcc/testsuite/g++.dg/coroutines/pr95736.C
  e3b448ff619930645332a6a1bf5b3da2  gcc/testsuite/g++.dg/coroutines/pr95813.C
  b221a446db70accee39ff0c2783ab71c  gcc/testsuite/g++.dg/coroutines/pr95822.C
  71e3db62fe8c830866c66122ae3a0b56  gcc/testsuite/g++.dg/coroutines/pr95823.C
--- 15987,15994 ----
  8edab167bf1ac7bc70706dd427ad61f3  gcc/testsuite/g++.dg/coroutines/pr95616-4.C
  d8ffc7c1c2fcbfd4c0bb050517731ff9  gcc/testsuite/g++.dg/coroutines/pr95616-5.C
  6d0115907d0cc08584303902e33744a6  gcc/testsuite/g++.dg/coroutines/pr95616-6.C
! 414878522f0eca6736ba394489780cd0  gcc/testsuite/g++.dg/coroutines/pr95711.C
! 07c539a35fd09df12324fbb771339ee8  gcc/testsuite/g++.dg/coroutines/pr95736.C
  e3b448ff619930645332a6a1bf5b3da2  gcc/testsuite/g++.dg/coroutines/pr95813.C
  b221a446db70accee39ff0c2783ab71c  gcc/testsuite/g++.dg/coroutines/pr95822.C
  71e3db62fe8c830866c66122ae3a0b56  gcc/testsuite/g++.dg/coroutines/pr95823.C
*************** f3711dab25fac8bb7802f39735ea954d  gcc/te
*** 14879,15019 ****
  03aa07b826568c4887ee864d32462f71  gcc/testsuite/g++.dg/coroutines/pr96251.C
  893c1e476cefb7fe09e215a6c634bb61  gcc/testsuite/g++.dg/coroutines/pr96517.C
  09ad0ccdf1203d227f2f6da85d74297c  gcc/testsuite/g++.dg/coroutines/pr96749-1.C
! c9053b02ff32311dfd9d7b646bb29551  gcc/testsuite/g++.dg/coroutines/pr96749-2.C
  0dd229753914401c8af3e84d3934dbfc  gcc/testsuite/g++.dg/coroutines/pr97438.C
! 7f93d96e5cf64c45c34eb259e9bb9c11  gcc/testsuite/g++.dg/coroutines/pr97587.C
! f095b3e5361e6b39aaa76b256225bae8  gcc/testsuite/g++.dg/coroutines/pr98118.C
  13e8e708074a4e784b2756a16cffac95  gcc/testsuite/g++.dg/coroutines/pr98480.C
  e7ca2ef0f0db55f629fcfb4d4227cd60  gcc/testsuite/g++.dg/coroutines/pr99047.C
  609255984b51c63eb216d8341218b2c3  gcc/testsuite/g++.dg/coroutines/pr99575.C
! 28c303ff08aa9b17dc678501b118bb0d  gcc/testsuite/g++.dg/coroutines/pr99576_1.C
! 93d9f5726e45da6ec110bcf19344e5b1  gcc/testsuite/g++.dg/coroutines/pr99576_2.C
  a52a8d452461422c8ad1bacec0e8c15f  gcc/testsuite/g++.dg/coroutines/pr99710.C
! e5855150057a1e681eabe6c4c4c37e4d  gcc/testsuite/g++.dg/coroutines/ramp-return-a.C
! 695b11618163db1e2b396417d78f1fa9  gcc/testsuite/g++.dg/coroutines/ramp-return-b.C
! 91d4b87670d3ca11ec1c3b3225271fc4  gcc/testsuite/g++.dg/coroutines/ramp-return-c.C
  7c8fc2e11a99ae24431837595e7d9cf4  gcc/testsuite/g++.dg/coroutines/ramp-return.h
! 3b3fbc868390abfe839fc513199c7af7  gcc/testsuite/g++.dg/coroutines/symmetric-transfer-00-basic.C
! 09236f4d6e6e8820e87d3b18847c9fb5  gcc/testsuite/g++.dg/coroutines/torture/alloc-00-gro-on-alloc-fail.C
! 1b198208b86ea54d85ea73e583750513  gcc/testsuite/g++.dg/coroutines/torture/alloc-01-overload-newdel.C
! c5ab4cca7557f052db81657084cd47b6  gcc/testsuite/g++.dg/coroutines/torture/alloc-02-fail-new-grooaf-check.C
! 07bd8cf88b91c17f7cf509b755497cf3  gcc/testsuite/g++.dg/coroutines/torture/alloc-03-overload-new-1.C
! 607ba880fbb95e466674ab95cb05a8fe  gcc/testsuite/g++.dg/coroutines/torture/alloc-04-overload-del-use-two-args.C
! e1bbc3834302e5826218b7a49e57e4df  gcc/testsuite/g++.dg/coroutines/torture/call-00-co-aw-arg.C
! e72e85d6a6baacb4b07285689083782c  gcc/testsuite/g++.dg/coroutines/torture/call-01-multiple-co-aw.C
! 907fb8427caa50260a776440e219ff4f  gcc/testsuite/g++.dg/coroutines/torture/call-02-temp-co-aw.C
! 890f9063fe42775525bc8871202662ae  gcc/testsuite/g++.dg/coroutines/torture/call-03-temp-ref-co-aw.C
! 68d2c76a1adcba2f93696ac2b6e79e26  gcc/testsuite/g++.dg/coroutines/torture/class-00-co-ret.C
! 8ca095e5728e7de6d69eaa482659be24  gcc/testsuite/g++.dg/coroutines/torture/class-01-co-ret-parm.C
! 4a072d5861d5ea835ffd3f465df00eb1  gcc/testsuite/g++.dg/coroutines/torture/class-02-templ-parm.C
! d2d9fac5e6e193233d4251d26d327878  gcc/testsuite/g++.dg/coroutines/torture/class-03-operator-templ-parm.C
! 7ec4c6ec7cdd08005dd05a324680c95d  gcc/testsuite/g++.dg/coroutines/torture/class-04-lambda-1.C
! 67cdcc2d5eab8ffbe8e85f680eecb7f4  gcc/testsuite/g++.dg/coroutines/torture/class-05-lambda-capture-copy-local.C
! fc7782c76448e9269d4b939626588a26  gcc/testsuite/g++.dg/coroutines/torture/class-06-lambda-capture-ref.C
! f7cab143f0e4b49230dae85138c09969  gcc/testsuite/g++.dg/coroutines/torture/class-07-data-member.C
! 0b1d9c0e2dbbcbe98f7ff9214ff8ec7e  gcc/testsuite/g++.dg/coroutines/torture/co-await-00-trivial.C
! 11959a0520310f483e381108e47fe87b  gcc/testsuite/g++.dg/coroutines/torture/co-await-01-with-value.C
! 3adda00c8f3603975dd827f122193786  gcc/testsuite/g++.dg/coroutines/torture/co-await-02-xform.C
! 72a98b1ecfdc586657d8ed48e05324d1  gcc/testsuite/g++.dg/coroutines/torture/co-await-03-rhs-op.C
! 42f1b2179ee471f0e43091896e5070c9  gcc/testsuite/g++.dg/coroutines/torture/co-await-04-control-flow.C
! a97da348e884f216fa73bbe96b5a7079  gcc/testsuite/g++.dg/coroutines/torture/co-await-05-loop.C
! 488ab49f0e4a496e94a52d6fbbed2815  gcc/testsuite/g++.dg/coroutines/torture/co-await-06-ovl.C
! db96053eb5b16b3127ad41dc3a34e42f  gcc/testsuite/g++.dg/coroutines/torture/co-await-07-tmpl.C
! e8b90504ac1fe0eae6a35f69be69b7b0  gcc/testsuite/g++.dg/coroutines/torture/co-await-08-cascade.C
! 9f35d6bf73afb711d2f67501d4b52999  gcc/testsuite/g++.dg/coroutines/torture/co-await-09-pair.C
! f0ea2188a943ec2768bffeb066d53489  gcc/testsuite/g++.dg/coroutines/torture/co-await-10-template-fn-arg.C
! e9d857d7174da4b086df2e56b037e637  gcc/testsuite/g++.dg/coroutines/torture/co-await-11-forwarding.C
! 0c7b56aa11d4f80f5483568dfe267926  gcc/testsuite/g++.dg/coroutines/torture/co-await-12-operator-2.C
! 9572c419277d27a1eca8c3967cf51816  gcc/testsuite/g++.dg/coroutines/torture/co-await-13-return-ref.C
! f0cddaea8588469b4485436f28834f3e  gcc/testsuite/g++.dg/coroutines/torture/co-await-14-return-ref-to-auto.C
! d2387597766ee660356c02649984e0dc  gcc/testsuite/g++.dg/coroutines/torture/co-await-15-return-non-triv.C
! 6bde7b59712d6af856262196fb9a2b52  gcc/testsuite/g++.dg/coroutines/torture/co-await-16-template-traits.C
! c13f88b01f2852e4f1a6088a01c71cf3  gcc/testsuite/g++.dg/coroutines/torture/co-await-17-capture-comp-ref.C
! 09c03c80e5ca99e2bedc1d76c6eee8ec  gcc/testsuite/g++.dg/coroutines/torture/co-await-18-if-cond.C
! 6f765328536074b9168af62a54640765  gcc/testsuite/g++.dg/coroutines/torture/co-await-19-while-cond.C
! 195dc488a58ab40254a3bcacd40168dd  gcc/testsuite/g++.dg/coroutines/torture/co-await-20-do-while-cond.C
! 2e753009d4929d1b1234a24a14cd225c  gcc/testsuite/g++.dg/coroutines/torture/co-await-21-switch-value.C
! b259f645eb0e46b33e43ebc5f032a66f  gcc/testsuite/g++.dg/coroutines/torture/co-await-22-truth-and-of-if.C
! ae398afe7ca7e2e4c42066ed58c09d28  gcc/testsuite/g++.dg/coroutines/torture/co-await-24-for-init.C
! 6a27ad319f6d31ae51af8f5ed7000045  gcc/testsuite/g++.dg/coroutines/torture/co-await-25-for-condition.C
! 1713b49a1b25d10f1599d693377b16c3  gcc/testsuite/g++.dg/coroutines/torture/co-await-26-for-iteration-expr.C
! bbc2605673ebcdcf02997a8f627a0451  gcc/testsuite/g++.dg/coroutines/torture/co-ret-00-void-return-is-ready.C
! 70a8bd096c62b9eafed7a35d5cf281a4  gcc/testsuite/g++.dg/coroutines/torture/co-ret-01-void-return-is-suspend.C
! 70220985caa00f582590fefc57d4891d  gcc/testsuite/g++.dg/coroutines/torture/co-ret-03-different-GRO-type.C
! e69102b05a69e87ae008f6818114fbcd  gcc/testsuite/g++.dg/coroutines/torture/co-ret-04-GRO-nontriv.C
! b8b3aadcb3c3d834a7df6d1e385d64dd  gcc/testsuite/g++.dg/coroutines/torture/co-ret-05-return-value.C
! fb780d18887b4ad97987e298b143d7c7  gcc/testsuite/g++.dg/coroutines/torture/co-ret-06-template-promise-val-1.C
! 47dc354bd59f6758a6e96861d39168f3  gcc/testsuite/g++.dg/coroutines/torture/co-ret-07-void-cast-expr.C
! 818b31856f031f12700c12a624c4859e  gcc/testsuite/g++.dg/coroutines/torture/co-ret-08-template-cast-ret.C
! d81b01b58f7f15b0e2f363f8cf1946a0  gcc/testsuite/g++.dg/coroutines/torture/co-ret-09-bool-await-susp.C
! 1f060ecf85dcfe068b0e7ec9caaa5a54  gcc/testsuite/g++.dg/coroutines/torture/co-ret-10-expression-evaluates-once.C
! c41e52fe3a851c57368ddc1b3ad6d9b7  gcc/testsuite/g++.dg/coroutines/torture/co-ret-11-co-ret-co-await.C
! d0d9769c98fd1e7f7b56c782db043cc0  gcc/testsuite/g++.dg/coroutines/torture/co-ret-12-co-ret-fun-co-await.C
! 673b178e156cb558989fe0b7dcd7a615  gcc/testsuite/g++.dg/coroutines/torture/co-ret-13-template-2.C
! c0d39710d34d98497ef837a91cb6a3d0  gcc/testsuite/g++.dg/coroutines/torture/co-ret-14-template-3.C
! 6be5f78d798b1a761b838738e0b61377  gcc/testsuite/g++.dg/coroutines/torture/co-ret-15-default-return_void.C
! 05fc819e556f0b28721524fb06e5fc3f  gcc/testsuite/g++.dg/coroutines/torture/co-ret-16-simple-control-flow.C
! ea04e15128b4f7c9dcd59c8345a9ef96  gcc/testsuite/g++.dg/coroutines/torture/co-ret-17-void-ret-coro.C
! 481e88dcb84e8744e467881b52fdd35e  gcc/testsuite/g++.dg/coroutines/torture/co-yield-00-triv.C
! f798da99709b1e34b10a6c7bc124ae72  gcc/testsuite/g++.dg/coroutines/torture/co-yield-01-multi.C
! 533f6b6779be624c787c3d8224581009  gcc/testsuite/g++.dg/coroutines/torture/co-yield-02-loop.C
! 1a64401f549123a860eb6546ecfc4047  gcc/testsuite/g++.dg/coroutines/torture/co-yield-03-tmpl.C
! 35fdd7c5f62c8ba93820920aed888617  gcc/testsuite/g++.dg/coroutines/torture/co-yield-04-complex-local-state.C
! 7dc5c1c2ec9373380b4639dc7a5afeac  gcc/testsuite/g++.dg/coroutines/torture/co-yield-05-co-aw.C
! 738b0b110abe719b4e3608eabe5486a9  gcc/testsuite/g++.dg/coroutines/torture/co-yield-06-fun-parm.C
! 9c66f147439c5b39e4f53bc72a797dec  gcc/testsuite/g++.dg/coroutines/torture/co-yield-07-template-fn-param.C
! 63d7b744b332efa18cbbbaa42cfdef67  gcc/testsuite/g++.dg/coroutines/torture/co-yield-08-more-refs.C
! ae63d74ff74d24f5617760e03388ac88  gcc/testsuite/g++.dg/coroutines/torture/co-yield-09-more-templ-refs.C
  9d1f555d6612dc78d2e5f1999fa1f2f7  gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp
! 99dab3773a8e1eae30ae15c1cb6bb484  gcc/testsuite/g++.dg/coroutines/torture/exceptions-test-0.C
! 492261ab0a97b265a7926f128a913e51  gcc/testsuite/g++.dg/coroutines/torture/exceptions-test-01-n4849-a.C
! 6c6dba9a908c581c8b205ba76a657348  gcc/testsuite/g++.dg/coroutines/torture/extern-c-coroutine.C
! 9375f5455b11a5f84ff284d0742870fe  gcc/testsuite/g++.dg/coroutines/torture/func-params-00.C
! a934102f958bf0847dcc65b8b814bb06  gcc/testsuite/g++.dg/coroutines/torture/func-params-01.C
! d5b6e925db5e6ba7fa1659ba22bed06e  gcc/testsuite/g++.dg/coroutines/torture/func-params-02.C
! 028fac9944d1ba2f5b09e16830589b66  gcc/testsuite/g++.dg/coroutines/torture/func-params-03.C
! 1f2c6a6a7a0d085194517f9fe9b6beaa  gcc/testsuite/g++.dg/coroutines/torture/func-params-04.C
! 7ea52e357db9c2c3a00fc793aee86f69  gcc/testsuite/g++.dg/coroutines/torture/func-params-05.C
! 40fb60b2ba2fffcd307be3dba2f73dcd  gcc/testsuite/g++.dg/coroutines/torture/func-params-06.C
! f39a32f504887835abf0a5d096197cd9  gcc/testsuite/g++.dg/coroutines/torture/func-params-07.C
! 58ab7ccfbae559fa0f520394969b04bb  gcc/testsuite/g++.dg/coroutines/torture/func-params-08.C
! 695486cc7994cd88a388d2d5de85535b  gcc/testsuite/g++.dg/coroutines/torture/func-params-09-awaitable-parms.C
! 9c0021a6862508e52c469c691312fd90  gcc/testsuite/g++.dg/coroutines/torture/lambda-00-co-ret.C
! 5d7700a35e2895ac9093a40aad334e80  gcc/testsuite/g++.dg/coroutines/torture/lambda-01-co-ret-parm.C
! c068042fd29351854f88260b5b4c63d2  gcc/testsuite/g++.dg/coroutines/torture/lambda-02-co-yield-values.C
! 3706f7bfcc38c97b94f59ab7eabcc48b  gcc/testsuite/g++.dg/coroutines/torture/lambda-03-auto-parm-1.C
! 311c9909f2f35a538a40ccf6781c79ed  gcc/testsuite/g++.dg/coroutines/torture/lambda-04-templ-parm.C
! 48243517507da206283b26b049e3c0f8  gcc/testsuite/g++.dg/coroutines/torture/lambda-05-capture-copy-local.C
! 6fd5fa6ce6d6dbc15ea7c4b65a2d3338  gcc/testsuite/g++.dg/coroutines/torture/lambda-06-multi-capture.C
! 752d684f86999b4b21170e3fc0f15389  gcc/testsuite/g++.dg/coroutines/torture/lambda-07-multi-yield.C
! 44674bf59b612853e53c3ce1dd043f7c  gcc/testsuite/g++.dg/coroutines/torture/lambda-08-co-ret-parm-ref.C
! c99d67d5071a5da2331ba8dccb5c785a  gcc/testsuite/g++.dg/coroutines/torture/lambda-09-init-captures.C
! b980842cc9bcb2b9e860aa2e3af5dc8c  gcc/testsuite/g++.dg/coroutines/torture/lambda-10-mutable.C
! 92558af7e8639c250b80e327fa3fb626  gcc/testsuite/g++.dg/coroutines/torture/local-var-00-const.C
! 2bd4082ef7c609c18af8634a810f913a  gcc/testsuite/g++.dg/coroutines/torture/local-var-01-single.C
! 653386432da78aac81f7a31513de2683  gcc/testsuite/g++.dg/coroutines/torture/local-var-02-conditional.C
! 9f38086eb8db6aacb9fb2cc1f03da885  gcc/testsuite/g++.dg/coroutines/torture/local-var-03-with-awaits.C
! 34ccaec4926a79ee91dcb622b29fd437  gcc/testsuite/g++.dg/coroutines/torture/local-var-04-hiding-nested-scopes.C
! 880e7bddb449e36639d0b28849901bd7  gcc/testsuite/g++.dg/coroutines/torture/local-var-05-awaitable.C
! eda65f9adf2b3b0f2d16abf6d3a3472a  gcc/testsuite/g++.dg/coroutines/torture/local-var-06-structured-binding.C
! 3a086507b4173f7496d1581ef7af0f41  gcc/testsuite/g++.dg/coroutines/torture/mid-suspend-destruction-0.C
  33c54ba08ef1e709e2fb67d90cc048b4  gcc/testsuite/g++.dg/coroutines/torture/pr92933.C
! 308d14f00ca84e328c3f1e144675b59b  gcc/testsuite/g++.dg/coroutines/torture/pr95003.C
! f15d0868b7388079e03b56a95cf11a64  gcc/testsuite/g++.dg/coroutines/torture/pr95519-00-return_void.C
! b1b510867b818d76320b1b17e7d87962  gcc/testsuite/g++.dg/coroutines/torture/pr95519-01-initial-suspend.C
! bc8c0e4347c30987e423c33501ef5d0b  gcc/testsuite/g++.dg/coroutines/torture/pr95519-02-final_suspend.C
! 69c77b7e3b1f0a4591c2ba4940af948a  gcc/testsuite/g++.dg/coroutines/torture/pr95519-03-return-value.C
! 3e69f064fae83c4daf2e900c1560c912  gcc/testsuite/g++.dg/coroutines/torture/pr95519-04-yield-value.C
! 35a31e0a6a5c07d36fcb1b63aa762a65  gcc/testsuite/g++.dg/coroutines/torture/pr95519-05-gro.C
! 77dde2143b4e478a1b87273551b2506d  gcc/testsuite/g++.dg/coroutines/torture/pr95519-06-grooaf.C
! 9b9297459a70238f4fbf5cfc0ed64df3  gcc/testsuite/g++.dg/coroutines/torture/pr95519-07-unhandled-exception.C
! a67c23b7a4297bd4cb0d9a2562f71fb9  gcc/testsuite/g++.dg/coroutines/torture/pr95615-01.C
! 58471daef30985624e1a94ea375801fb  gcc/testsuite/g++.dg/coroutines/torture/pr95615-02.C
! 7982a06adacf383c56f57fa76127583a  gcc/testsuite/g++.dg/coroutines/torture/pr95615-03.C
! 7cf559ee49733e694580f81dae81542c  gcc/testsuite/g++.dg/coroutines/torture/pr95615-04.C
! 4cd16a27e5d6ed11ab1bdcfda0a29351  gcc/testsuite/g++.dg/coroutines/torture/pr95615-05.C
! ab931ef1aae017d49334493d5f8a3df8  gcc/testsuite/g++.dg/coroutines/torture/pr95615.inc
! eeb744d3368ba25e26be1112d9ca230c  gcc/testsuite/g++.dg/coroutines/torture/pr98704.C
  074cd02b7474e8119248041c10f08ad3  gcc/testsuite/g++.dg/cpp/_Pragma1.C
  8ce78309bd631829da82f2798d24d628  gcc/testsuite/g++.dg/cpp/c++98-pedantic.C
  731959b0908b124d4eee4dab104d68bb  gcc/testsuite/g++.dg/cpp/c++98.C
--- 15996,16148 ----
  03aa07b826568c4887ee864d32462f71  gcc/testsuite/g++.dg/coroutines/pr96251.C
  893c1e476cefb7fe09e215a6c634bb61  gcc/testsuite/g++.dg/coroutines/pr96517.C
  09ad0ccdf1203d227f2f6da85d74297c  gcc/testsuite/g++.dg/coroutines/pr96749-1.C
! 5cf51403a7824807d1418e74f843f287  gcc/testsuite/g++.dg/coroutines/pr96749-2.C
  0dd229753914401c8af3e84d3934dbfc  gcc/testsuite/g++.dg/coroutines/pr97438.C
! 8aef66f396fdf25fd226e0130deec8eb  gcc/testsuite/g++.dg/coroutines/pr97587.C
! b1fb25f5e346d416ca26445cdb59a356  gcc/testsuite/g++.dg/coroutines/pr98118.C
  13e8e708074a4e784b2756a16cffac95  gcc/testsuite/g++.dg/coroutines/pr98480.C
+ 130388811ec68458ac2cf04b5e1843cb  gcc/testsuite/g++.dg/coroutines/pr98935.C
  e7ca2ef0f0db55f629fcfb4d4227cd60  gcc/testsuite/g++.dg/coroutines/pr99047.C
  609255984b51c63eb216d8341218b2c3  gcc/testsuite/g++.dg/coroutines/pr99575.C
! 0cec125b267a422a079f909dda92cd2c  gcc/testsuite/g++.dg/coroutines/pr99576_1.C
! e0e80f95fcb4e480b7182ba78ffa650c  gcc/testsuite/g++.dg/coroutines/pr99576_2.C
  a52a8d452461422c8ad1bacec0e8c15f  gcc/testsuite/g++.dg/coroutines/pr99710.C
! e7bb995fa07196c08314fc0081a084b5  gcc/testsuite/g++.dg/coroutines/ramp-return-a.C
! 231dc0079b4e5761aeb42ad29fc8b10f  gcc/testsuite/g++.dg/coroutines/ramp-return-b.C
! b20128a63d58ad415e364a1cb2b42907  gcc/testsuite/g++.dg/coroutines/ramp-return-c.C
  7c8fc2e11a99ae24431837595e7d9cf4  gcc/testsuite/g++.dg/coroutines/ramp-return.h
! 0072292ac35a537d3aa2d5c9d15ee1c4  gcc/testsuite/g++.dg/coroutines/range-for1.C
! 7e8de6b0fc60120c38dc4453ebd5fd4e  gcc/testsuite/g++.dg/coroutines/range-for2.C
! 1b980374c6f94aff240e39c3b70ea778  gcc/testsuite/g++.dg/coroutines/symmetric-transfer-00-basic.C
! 71b2a0b8401f3ca4b821ecde7197bc78  gcc/testsuite/g++.dg/coroutines/torture/alloc-00-gro-on-alloc-fail.C
! 96caf0086e9d08d570e25b6b41bacaa3  gcc/testsuite/g++.dg/coroutines/torture/alloc-01-overload-newdel.C
! c00da3dd4798f90f4038afbf745af168  gcc/testsuite/g++.dg/coroutines/torture/alloc-02-fail-new-grooaf-check.C
! 745829e02de9fcef4dd922b4ed721bdd  gcc/testsuite/g++.dg/coroutines/torture/alloc-03-overload-new-1.C
! 4a70eec86b4ed017b939f4d30dcf115d  gcc/testsuite/g++.dg/coroutines/torture/alloc-04-overload-del-use-two-args.C
! 6fd9fb5d2f6ead0f84fe3a75f6fe2a0a  gcc/testsuite/g++.dg/coroutines/torture/call-00-co-aw-arg.C
! 6c7ccd878e58c99cfd9721ad2127f7cc  gcc/testsuite/g++.dg/coroutines/torture/call-01-multiple-co-aw.C
! 11ffbba47d3731576bb87f7b65e94ca8  gcc/testsuite/g++.dg/coroutines/torture/call-02-temp-co-aw.C
! 32d4124522da0277e07a807efcc3c581  gcc/testsuite/g++.dg/coroutines/torture/call-03-temp-ref-co-aw.C
! 6223ff93025e72037be7b3c837216059  gcc/testsuite/g++.dg/coroutines/torture/class-00-co-ret.C
! ce4cf3f0e8dcc829dc87247c951f5040  gcc/testsuite/g++.dg/coroutines/torture/class-01-co-ret-parm.C
! f313c35e116450592a245ced2ec600f9  gcc/testsuite/g++.dg/coroutines/torture/class-02-templ-parm.C
! f2ac2f602503d09a06e85b8b1d334ca6  gcc/testsuite/g++.dg/coroutines/torture/class-03-operator-templ-parm.C
! f22280d3c7fe62a340c7afeaf9fa3d4f  gcc/testsuite/g++.dg/coroutines/torture/class-04-lambda-1.C
! b43003e5585153ea2aec13a09647b225  gcc/testsuite/g++.dg/coroutines/torture/class-05-lambda-capture-copy-local.C
! e644cdd7cb83d3d8c18d141d5cae961f  gcc/testsuite/g++.dg/coroutines/torture/class-06-lambda-capture-ref.C
! 762262ad8f36215567c6ed012a12ebe7  gcc/testsuite/g++.dg/coroutines/torture/class-07-data-member.C
! 8af45eda7bd655ddcf1b88710c335de7  gcc/testsuite/g++.dg/coroutines/torture/co-await-00-trivial.C
! 40badf026fabd5f72b7b7c19157b9cfc  gcc/testsuite/g++.dg/coroutines/torture/co-await-01-with-value.C
! 11ddfdc42d4340a2933658bb61837811  gcc/testsuite/g++.dg/coroutines/torture/co-await-02-xform.C
! aac708fc526c192b527094d1a6c1f48c  gcc/testsuite/g++.dg/coroutines/torture/co-await-03-rhs-op.C
! 676729b8e19d9960f671a70c951e4deb  gcc/testsuite/g++.dg/coroutines/torture/co-await-04-control-flow.C
! 680f23b2400af60a98f58847bece8bc8  gcc/testsuite/g++.dg/coroutines/torture/co-await-05-loop.C
! 6fb13c09e4c1ea149842baa51e0864ba  gcc/testsuite/g++.dg/coroutines/torture/co-await-06-ovl.C
! f8fc10e9073be88d56ca5f437e2f1098  gcc/testsuite/g++.dg/coroutines/torture/co-await-07-tmpl.C
! 61fc37c223d269f0dea05656826ece48  gcc/testsuite/g++.dg/coroutines/torture/co-await-08-cascade.C
! 9597163fc0a3b9217b7daa38e001c1de  gcc/testsuite/g++.dg/coroutines/torture/co-await-09-pair.C
! eab687f095ef88087eeefc85cc063794  gcc/testsuite/g++.dg/coroutines/torture/co-await-10-template-fn-arg.C
! 7d4c04e2ce26e8ed1ca65a8aebcff05e  gcc/testsuite/g++.dg/coroutines/torture/co-await-11-forwarding.C
! 41a90f77304f7abdf1b6e0fdd4f4cc45  gcc/testsuite/g++.dg/coroutines/torture/co-await-12-operator-2.C
! 7a169d6450a5b5f5156b6b2cd7e1b06b  gcc/testsuite/g++.dg/coroutines/torture/co-await-13-return-ref.C
! 2738480462d8e4f5c585f3f6b87453f7  gcc/testsuite/g++.dg/coroutines/torture/co-await-14-return-ref-to-auto.C
! e5d8bcc4ebd992e146e19b384ed72c1e  gcc/testsuite/g++.dg/coroutines/torture/co-await-15-return-non-triv.C
! 2f64b52a1239d28469df5046cd58afa9  gcc/testsuite/g++.dg/coroutines/torture/co-await-16-template-traits.C
! 0dabc47c07559a986eb65829ab2e7556  gcc/testsuite/g++.dg/coroutines/torture/co-await-17-capture-comp-ref.C
! 7508f58ad4a86798ce66885f7c5a2727  gcc/testsuite/g++.dg/coroutines/torture/co-await-18-if-cond.C
! f408aa2ff283f00ef8b8cf77a6b79e3e  gcc/testsuite/g++.dg/coroutines/torture/co-await-19-while-cond.C
! 43040ab4f81380ec456cd707f0dd1ecc  gcc/testsuite/g++.dg/coroutines/torture/co-await-20-do-while-cond.C
! 83322d91cee913ebca2fd3df60ed1c8a  gcc/testsuite/g++.dg/coroutines/torture/co-await-21-switch-value.C
! f507d3bc3ccecd8cb533256a142de6b1  gcc/testsuite/g++.dg/coroutines/torture/co-await-22-truth-and-of-if.C
! 80822e6dc5e479b6d88d5b158bb4ac6a  gcc/testsuite/g++.dg/coroutines/torture/co-await-24-for-init.C
! e642725ae864e8399eb32e5d5e7fa502  gcc/testsuite/g++.dg/coroutines/torture/co-await-25-for-condition.C
! 16486e219fa0f2090c17f0e64ffe16e7  gcc/testsuite/g++.dg/coroutines/torture/co-await-26-for-iteration-expr.C
! e8288482f0b1f6dd20f1732fee5557d1  gcc/testsuite/g++.dg/coroutines/torture/co-ret-00-void-return-is-ready.C
! 34e6cef5832883ecfa96fce7dedd5587  gcc/testsuite/g++.dg/coroutines/torture/co-ret-01-void-return-is-suspend.C
! 6db769433b982b39dc07a01614a5f799  gcc/testsuite/g++.dg/coroutines/torture/co-ret-03-different-GRO-type.C
! 95122a5c844268f467717fc7c909bf68  gcc/testsuite/g++.dg/coroutines/torture/co-ret-04-GRO-nontriv.C
! f4a7431855f5c20f533250461ccd84b5  gcc/testsuite/g++.dg/coroutines/torture/co-ret-05-return-value.C
! ff759ba6432ae3e9264382787f42ef6e  gcc/testsuite/g++.dg/coroutines/torture/co-ret-06-template-promise-val-1.C
! fd5dc3887c529ca6bba2bc1041837016  gcc/testsuite/g++.dg/coroutines/torture/co-ret-07-void-cast-expr.C
! 5ffa9e39d48009bb1ef08a586d537f0e  gcc/testsuite/g++.dg/coroutines/torture/co-ret-08-template-cast-ret.C
! e53cc99c3426939136a658ce51568894  gcc/testsuite/g++.dg/coroutines/torture/co-ret-09-bool-await-susp.C
! 8faf6c253209d2d687f16ecce3fa1e06  gcc/testsuite/g++.dg/coroutines/torture/co-ret-10-expression-evaluates-once.C
! b309ed152bf904b25d4e1c6fb8df2b9d  gcc/testsuite/g++.dg/coroutines/torture/co-ret-11-co-ret-co-await.C
! a372a0fa116489f901b17b0bbd629cbc  gcc/testsuite/g++.dg/coroutines/torture/co-ret-12-co-ret-fun-co-await.C
! 043e6fd1f8afd3d61703fd7a08354a50  gcc/testsuite/g++.dg/coroutines/torture/co-ret-13-template-2.C
! a3361761be2cd16b6229e8daeccef6f0  gcc/testsuite/g++.dg/coroutines/torture/co-ret-14-template-3.C
! 1b73309fcac82cacfb1eb16a269b27c8  gcc/testsuite/g++.dg/coroutines/torture/co-ret-15-default-return_void.C
! 5f41dcba9095058a2372f348459fcb61  gcc/testsuite/g++.dg/coroutines/torture/co-ret-16-simple-control-flow.C
! d70a84f649e8bb104a7e3e059bed741c  gcc/testsuite/g++.dg/coroutines/torture/co-ret-17-void-ret-coro.C
! a87714db2733a055c5df526258a31ca0  gcc/testsuite/g++.dg/coroutines/torture/co-yield-00-triv.C
! 54f48938ce9940e6e08b2bf1c20c0ad9  gcc/testsuite/g++.dg/coroutines/torture/co-yield-01-multi.C
! 0a8ca3fd78c26b4726a6efcbee52e65f  gcc/testsuite/g++.dg/coroutines/torture/co-yield-02-loop.C
! 4a96bb1ae7d8ea520666e6050245ecdf  gcc/testsuite/g++.dg/coroutines/torture/co-yield-03-tmpl-nondependent.C
! f372d67a0b58fb45718240315e2099b1  gcc/testsuite/g++.dg/coroutines/torture/co-yield-03-tmpl.C
! 75bc058bccfb5a500676475969c2ce75  gcc/testsuite/g++.dg/coroutines/torture/co-yield-04-complex-local-state.C
! 9fbf7cd3912dd38e11d0fb6ef7b5d106  gcc/testsuite/g++.dg/coroutines/torture/co-yield-05-co-aw.C
! 8e6150d22c433db8618edf9b5696ad7a  gcc/testsuite/g++.dg/coroutines/torture/co-yield-06-fun-parm.C
! 0b9a5a6aeafa90ac71a2f9d27fe3d4c3  gcc/testsuite/g++.dg/coroutines/torture/co-yield-07-template-fn-param.C
! 296ac6d204f6e60b5c8f283079630701  gcc/testsuite/g++.dg/coroutines/torture/co-yield-08-more-refs.C
! 2b0277e221c500726b1df485ec71567d  gcc/testsuite/g++.dg/coroutines/torture/co-yield-09-more-templ-refs.C
  9d1f555d6612dc78d2e5f1999fa1f2f7  gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp
! c656373a01d2d2cf10527843be29a524  gcc/testsuite/g++.dg/coroutines/torture/exceptions-test-0.C
! 847f4800535f60d6eb4ee75a5aad3965  gcc/testsuite/g++.dg/coroutines/torture/exceptions-test-01-n4849-a.C
! a4c9a5da02d33e919201998711128157  gcc/testsuite/g++.dg/coroutines/torture/extern-c-coroutine.C
! a3d9ac9625b88808744ed62b0b2908a7  gcc/testsuite/g++.dg/coroutines/torture/func-params-00.C
! a1fa9d0645a01bdafa573341cd00294c  gcc/testsuite/g++.dg/coroutines/torture/func-params-01.C
! c98be24ff3659f0c1eaa8389c0f528c5  gcc/testsuite/g++.dg/coroutines/torture/func-params-02.C
! 44b7827b2af2cc8cb04e3a1ee4180101  gcc/testsuite/g++.dg/coroutines/torture/func-params-03.C
! 208ee10ebd988e12cdd21e4930f7cc46  gcc/testsuite/g++.dg/coroutines/torture/func-params-04.C
! 26feff276ceb104f875fad39f198b112  gcc/testsuite/g++.dg/coroutines/torture/func-params-05.C
! 9fb5b11c62f6b2ada953cc665105e394  gcc/testsuite/g++.dg/coroutines/torture/func-params-06.C
! f3011338b13927fa7d48239a33d56e07  gcc/testsuite/g++.dg/coroutines/torture/func-params-07.C
! 905cf810685f8fcd36ccc39a2e4caa18  gcc/testsuite/g++.dg/coroutines/torture/func-params-08.C
! 171f3de9a41556860c9a0a0155af1b49  gcc/testsuite/g++.dg/coroutines/torture/func-params-09-awaitable-parms.C
! fa4c7be8f1ad0da551ff18d11bce33fc  gcc/testsuite/g++.dg/coroutines/torture/lambda-00-co-ret.C
! c6d0baafe5e4c4efc3977efa5a9b8412  gcc/testsuite/g++.dg/coroutines/torture/lambda-01-co-ret-parm.C
! 471bf9e93d206c9243bd0412ea07a40f  gcc/testsuite/g++.dg/coroutines/torture/lambda-02-co-yield-values.C
! e62bf4c8a5ef60b3f750346d96e97155  gcc/testsuite/g++.dg/coroutines/torture/lambda-03-auto-parm-1.C
! 6c03899c1c302c85e61b77cc3f961d37  gcc/testsuite/g++.dg/coroutines/torture/lambda-04-templ-parm.C
! 982016eae70754a92a8dca2c642cea89  gcc/testsuite/g++.dg/coroutines/torture/lambda-05-capture-copy-local.C
! ca7c2144d30718a244bd35564ad8c4f4  gcc/testsuite/g++.dg/coroutines/torture/lambda-06-multi-capture.C
! ee0df0321c455d21af084552af49e71a  gcc/testsuite/g++.dg/coroutines/torture/lambda-07-multi-yield.C
! e529a0617eb734eac98e3f402327ec89  gcc/testsuite/g++.dg/coroutines/torture/lambda-08-co-ret-parm-ref.C
! 7d3442e459fb73436174a51777d37863  gcc/testsuite/g++.dg/coroutines/torture/lambda-09-init-captures.C
! 3d76d78fea9cac84862e65b1483607d1  gcc/testsuite/g++.dg/coroutines/torture/lambda-10-mutable.C
! 19566fe59ece98c25cea9b52c5dfaead  gcc/testsuite/g++.dg/coroutines/torture/local-var-00-const.C
! a1e493fe52a51c424874f946c2d4dd19  gcc/testsuite/g++.dg/coroutines/torture/local-var-01-single.C
! 50cb303c8917a8979bf361ffff322dc8  gcc/testsuite/g++.dg/coroutines/torture/local-var-02-conditional.C
! 412257ae4c6f163198219d50aa360da8  gcc/testsuite/g++.dg/coroutines/torture/local-var-03-with-awaits.C
! 15bc0b98831763dfb54c0e7a2d288000  gcc/testsuite/g++.dg/coroutines/torture/local-var-04-hiding-nested-scopes.C
! 65ab5ab52798f9e0c1e79f85739017e5  gcc/testsuite/g++.dg/coroutines/torture/local-var-05-awaitable.C
! 64cae1ecb87704f989e3edaeb243c993  gcc/testsuite/g++.dg/coroutines/torture/local-var-06-structured-binding.C
! fbfa3478c3cb149485c72122eda6811b  gcc/testsuite/g++.dg/coroutines/torture/mid-suspend-destruction-0.C
! 071a68722f4173f2f5200bdf87e9aff8  gcc/testsuite/g++.dg/coroutines/torture/pr103953.C
! d70e1067c46528fe83662185c66bef45  gcc/testsuite/g++.dg/coroutines/torture/pr105104.C
! ab314765ac0eb201bb3e11222207ee40  gcc/testsuite/g++.dg/coroutines/torture/pr109867.C
! 25fa35420b604bea9857061f35656b5b  gcc/testsuite/g++.dg/coroutines/torture/pr113773.C
! 90760c8a1f8f820b4edb0f623596ca78  gcc/testsuite/g++.dg/coroutines/torture/pr115905.C
! 980fc5bc26d63a8dc9bc8ac151650f40  gcc/testsuite/g++.dg/coroutines/torture/pr118874.C
  33c54ba08ef1e709e2fb67d90cc048b4  gcc/testsuite/g++.dg/coroutines/torture/pr92933.C
! 56811f88338809bbea0a94b564f9b4da  gcc/testsuite/g++.dg/coroutines/torture/pr95003.C
! 2248a954a08f9c689c19929abad2771e  gcc/testsuite/g++.dg/coroutines/torture/pr95519-00-return_void.C
! 29ad149d6724b1bbacfe3ec610866a95  gcc/testsuite/g++.dg/coroutines/torture/pr95519-01-initial-suspend.C
! 2bb13ed46669abadd646c8d06acc4ee6  gcc/testsuite/g++.dg/coroutines/torture/pr95519-02-final_suspend.C
! 910201bac8dff598a74f2cff117d5910  gcc/testsuite/g++.dg/coroutines/torture/pr95519-03-return-value.C
! 54be61941b6ad6ca32cc6ab90210b927  gcc/testsuite/g++.dg/coroutines/torture/pr95519-04-yield-value.C
! e31d7e9c9741a6022f86423a2dc05bf0  gcc/testsuite/g++.dg/coroutines/torture/pr95519-05-gro.C
! f8ced3c48c7b4157a0ce42b6357a57e1  gcc/testsuite/g++.dg/coroutines/torture/pr95519-06-grooaf.C
! a1d47e00d8d93531524293eaeb79d679  gcc/testsuite/g++.dg/coroutines/torture/pr95519-07-unhandled-exception.C
! c5d894e875c93d964067c3d3f2840963  gcc/testsuite/g++.dg/coroutines/torture/pr95615-01.C
! c4c4d941093caafa7fa4360b5d87ebda  gcc/testsuite/g++.dg/coroutines/torture/pr95615-02.C
! 5530bd9067a590a4775e1e93032ae665  gcc/testsuite/g++.dg/coroutines/torture/pr95615-03.C
! f0b8bd59fbe4178958a8d3d093454011  gcc/testsuite/g++.dg/coroutines/torture/pr95615-04.C
! fbd5b9659b98a2782504a53f6a2ed13a  gcc/testsuite/g++.dg/coroutines/torture/pr95615-05.C
! bc3eb934e3efbca87efc62810de25ebb  gcc/testsuite/g++.dg/coroutines/torture/pr95615.inc
! 0c46a0da3de6e20a370e03838d0a76dd  gcc/testsuite/g++.dg/coroutines/torture/pr98704.C
! 268d67ce285ba96b8d0e8cf7ce79a0c6  gcc/testsuite/g++.dg/coroutines/torture/special-termination-00-sync-completion.C
! 769f8ad9c6a37192347486ae52ba1f81  gcc/testsuite/g++.dg/coroutines/torture/special-termination-01-self-destruct.C
  074cd02b7474e8119248041c10f08ad3  gcc/testsuite/g++.dg/cpp/_Pragma1.C
  8ce78309bd631829da82f2798d24d628  gcc/testsuite/g++.dg/cpp/c++98-pedantic.C
  731959b0908b124d4eee4dab104d68bb  gcc/testsuite/g++.dg/cpp/c++98.C
*************** eeb744d3368ba25e26be1112d9ca230c  gcc/te
*** 15023,15046 ****
  c2644de4e523a3ce340a11a1240a0665  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-2.C
  1cf46e6ce91a8ddaa768b5a2cecff8be  gcc/testsuite/g++.dg/cpp/elifdef-1.C
  f63f3ccc3937a7f431fdcbc3416c5e71  gcc/testsuite/g++.dg/cpp/elifdef-2.C
! 6a7cfe44863944df11dbbc4cc7affa72  gcc/testsuite/g++.dg/cpp/elifdef-3.C
  80d0d42b6e5ad6ddd47755429d2b86da  gcc/testsuite/g++.dg/cpp/elifdef-4.C
! 7d166fd683540bb46bab4f5591f6cb7a  gcc/testsuite/g++.dg/cpp/elifdef-5.C
! a02fdbd418bcf04f05b9c831f60efdff  gcc/testsuite/g++.dg/cpp/elifdef-6.C
! 1494c84b56e510e0fb687cc28d257e80  gcc/testsuite/g++.dg/cpp/elifdef-7.C
  bb3c9b1e81779a43b584dae48604b8d1  gcc/testsuite/g++.dg/cpp/limits.C
  8562d590f29cecfa0e0dc6c51d34a6eb  gcc/testsuite/g++.dg/cpp/named-universal-char-escape-1.C
  a17b4a7c45c8403b31af52f9108997ca  gcc/testsuite/g++.dg/cpp/named-universal-char-escape-2.C
  c41c3c60e8a193075ec6d307d58b6911  gcc/testsuite/g++.dg/cpp/paste1.C
  e9e3011043a9faa30c42b61fa3bdb8a8  gcc/testsuite/g++.dg/cpp/paste2.C
! 5e10de393d1872d51958157aa6257743  gcc/testsuite/g++.dg/cpp/pedantic-errors.C
  e85c00d109986c74039e49eed3ef6e42  gcc/testsuite/g++.dg/cpp/pr103012.C
  ead0211c86f0bdd9b5ba312b097e6661  gcc/testsuite/g++.dg/cpp/pr23827_cxx11.C
  e8c9f921aabceacddf429e950c792f1d  gcc/testsuite/g++.dg/cpp/pr23827_cxx98.C
  b087a7523d0c72cdc440e2fb7cbd71f7  gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C
  2b0b21d8b2fe290be2917f151d4a5783  gcc/testsuite/g++.dg/cpp/pr53690.C
  f56dc61998b2ad3f59d8be4a67961437  gcc/testsuite/g++.dg/cpp/pr64127.C
! 6ed6f17e3b2dc37b32cfd2a923f940fa  gcc/testsuite/g++.dg/cpp/pr80005.C
  1918c3e74bdfae76dc033786056b6c75  gcc/testsuite/g++.dg/cpp/pr83602.C
  3913be0d35b0c2d704cda15ffc55701e  gcc/testsuite/g++.dg/cpp/pragma-float-const-decimal64-1.C
  302c40e56a5f76d394e4c076ca3b63da  gcc/testsuite/g++.dg/cpp/spaceship-1.C
--- 16152,16202 ----
  c2644de4e523a3ce340a11a1240a0665  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-2.C
  1cf46e6ce91a8ddaa768b5a2cecff8be  gcc/testsuite/g++.dg/cpp/elifdef-1.C
  f63f3ccc3937a7f431fdcbc3416c5e71  gcc/testsuite/g++.dg/cpp/elifdef-2.C
! 234f95468b488c1bd50032d50706b14f  gcc/testsuite/g++.dg/cpp/elifdef-3.C
  80d0d42b6e5ad6ddd47755429d2b86da  gcc/testsuite/g++.dg/cpp/elifdef-4.C
! 5b643c3899c56bea21449eba3c495578  gcc/testsuite/g++.dg/cpp/elifdef-5.C
! d1a32968feb4632e72a64a77cae293ad  gcc/testsuite/g++.dg/cpp/elifdef-6.C
! fd43cea2880a9f24e1bc3e1b18ec5f5b  gcc/testsuite/g++.dg/cpp/elifdef-7.C
! 245c5098c06ae7b268c19f22acadcbab  gcc/testsuite/g++.dg/cpp/embed-1.C
! cdd68ae2a2a9fce699aadbf1523e1cd6  gcc/testsuite/g++.dg/cpp/embed-10.C
! 82c31939a97fb97d71d57aba1d2b1a52  gcc/testsuite/g++.dg/cpp/embed-11.C
! 2304d975419d50ba42ffef50a17799b4  gcc/testsuite/g++.dg/cpp/embed-12.C
! 4ae484f0504ce42324fdc764811c52eb  gcc/testsuite/g++.dg/cpp/embed-13.C
! bd4078d7ddd0c703737a6fa687e6f435  gcc/testsuite/g++.dg/cpp/embed-14.C
! aa5acb508981c70b40c28871442b612b  gcc/testsuite/g++.dg/cpp/embed-15.C
! d5b72a5430b51ec644285ffe8bebfc4f  gcc/testsuite/g++.dg/cpp/embed-16.C
! b8d20ab3fff2d35109e30a6a907845f1  gcc/testsuite/g++.dg/cpp/embed-17.C
! 74fbdbe8543b5583d5317278a0a5dd03  gcc/testsuite/g++.dg/cpp/embed-18.C
! 5bf6dc3381a957e063ed536c911c4974  gcc/testsuite/g++.dg/cpp/embed-19.C
! 07f887a29fce456787c070f68e335cf2  gcc/testsuite/g++.dg/cpp/embed-2.C
! 1b240d94d463a5021acc40184b7bd15f  gcc/testsuite/g++.dg/cpp/embed-20.C
! 468dec98dbfe095f12cbce955caa7eb3  gcc/testsuite/g++.dg/cpp/embed-21.C
! 8c4aecb42e87f90a277a52a1905c4c0e  gcc/testsuite/g++.dg/cpp/embed-22.C
! 5b19538b4d10cb291f8f9df8262639bd  gcc/testsuite/g++.dg/cpp/embed-23.C
! 4722600ae996f63d5b716eb7620443ab  gcc/testsuite/g++.dg/cpp/embed-24.C
! 4983500878e03a3abd76e7f7b681a086  gcc/testsuite/g++.dg/cpp/embed-25.C
! 1cd2ff1ccb4cd02ce8ce68e808b8bc3e  gcc/testsuite/g++.dg/cpp/embed-26.C
! 518db3b2c551f0072b476c131c511910  gcc/testsuite/g++.dg/cpp/embed-3.C
! 39e59b8a50db7adc52db30aeffc92f5c  gcc/testsuite/g++.dg/cpp/embed-4.C
! 71d36e829a98f52caa2a8f034296db7c  gcc/testsuite/g++.dg/cpp/embed-5.C
! 46803b17bcf5a02c2e8b41c2931b32b0  gcc/testsuite/g++.dg/cpp/embed-6.C
! 327e95ae0e62aa29c90625c5468c4608  gcc/testsuite/g++.dg/cpp/embed-7.C
! 7022626954950c4268a0caf78a9f4a3b  gcc/testsuite/g++.dg/cpp/embed-8.C
! a742621bd13b9971b106e997d2b9e82c  gcc/testsuite/g++.dg/cpp/embed-9.C
  bb3c9b1e81779a43b584dae48604b8d1  gcc/testsuite/g++.dg/cpp/limits.C
  8562d590f29cecfa0e0dc6c51d34a6eb  gcc/testsuite/g++.dg/cpp/named-universal-char-escape-1.C
  a17b4a7c45c8403b31af52f9108997ca  gcc/testsuite/g++.dg/cpp/named-universal-char-escape-2.C
  c41c3c60e8a193075ec6d307d58b6911  gcc/testsuite/g++.dg/cpp/paste1.C
  e9e3011043a9faa30c42b61fa3bdb8a8  gcc/testsuite/g++.dg/cpp/paste2.C
! 8527d417fa57c842611180642f1fcb7e  gcc/testsuite/g++.dg/cpp/pedantic-errors.C
  e85c00d109986c74039e49eed3ef6e42  gcc/testsuite/g++.dg/cpp/pr103012.C
+ 280c9c07ff5386e71e697435d631d19d  gcc/testsuite/g++.dg/cpp/pr119391.C
  ead0211c86f0bdd9b5ba312b097e6661  gcc/testsuite/g++.dg/cpp/pr23827_cxx11.C
  e8c9f921aabceacddf429e950c792f1d  gcc/testsuite/g++.dg/cpp/pr23827_cxx98.C
  b087a7523d0c72cdc440e2fb7cbd71f7  gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C
  2b0b21d8b2fe290be2917f151d4a5783  gcc/testsuite/g++.dg/cpp/pr53690.C
  f56dc61998b2ad3f59d8be4a67961437  gcc/testsuite/g++.dg/cpp/pr64127.C
! 8ecfab0b8a101a6489b6154edd0f6fb0  gcc/testsuite/g++.dg/cpp/pr80005.C
  1918c3e74bdfae76dc033786056b6c75  gcc/testsuite/g++.dg/cpp/pr83602.C
  3913be0d35b0c2d704cda15ffc55701e  gcc/testsuite/g++.dg/cpp/pragma-float-const-decimal64-1.C
  302c40e56a5f76d394e4c076ca3b63da  gcc/testsuite/g++.dg/cpp/spaceship-1.C
*************** e90e4c82878e84f0f4a744bb7e997868  gcc/te
*** 15052,15058 ****
  7f78c2a96f75c80605950b24c40f72bf  gcc/testsuite/g++.dg/cpp/syshdr3.C
  57c7663de020fb8be24c6eb80efeda0b  gcc/testsuite/g++.dg/cpp/syshdr3.h
  d80eeb1b5ab70a413bed1a37f44a69d6  gcc/testsuite/g++.dg/cpp/truefalse.C
! 2cd39b3f2dd56ebb9d95ad2fc9977e0d  gcc/testsuite/g++.dg/cpp/ucn-1.C
  3e6e35324179b882b0adaa99fb61457d  gcc/testsuite/g++.dg/cpp/ucn-2.C
  6a2a40588f05a7aa42c9288e3695ab25  gcc/testsuite/g++.dg/cpp/ucnid-1-utf8.C
  aed5e9b084469df5f53338297df34ac5  gcc/testsuite/g++.dg/cpp/ucnid-1.C
--- 16208,16214 ----
  7f78c2a96f75c80605950b24c40f72bf  gcc/testsuite/g++.dg/cpp/syshdr3.C
  57c7663de020fb8be24c6eb80efeda0b  gcc/testsuite/g++.dg/cpp/syshdr3.h
  d80eeb1b5ab70a413bed1a37f44a69d6  gcc/testsuite/g++.dg/cpp/truefalse.C
! c0db18355abbf293c66f7aaf20a34b79  gcc/testsuite/g++.dg/cpp/ucn-1.C
  3e6e35324179b882b0adaa99fb61457d  gcc/testsuite/g++.dg/cpp/ucn-2.C
  6a2a40588f05a7aa42c9288e3695ab25  gcc/testsuite/g++.dg/cpp/ucnid-1-utf8.C
  aed5e9b084469df5f53338297df34ac5  gcc/testsuite/g++.dg/cpp/ucnid-1.C
*************** aed5e9b084469df5f53338297df34ac5  gcc/te
*** 15062,15076 ****
  51d5f30d4e9c9d914f798d5d9fd7f0af  gcc/testsuite/g++.dg/cpp/ucnid-3.C
  df09112b080a4f413dd67072191ec1c6  gcc/testsuite/g++.dg/cpp/ucnid-4-utf8.C
  7a8d6ee38bbf6e99549056f57a4b5890  gcc/testsuite/g++.dg/cpp/utf16-pr41698-1.C
! ba2e6aa282515e83442f31449865c8fa  gcc/testsuite/g++.dg/cpp/warning-1.C
! afa6a0a8c3bd21d6f016cc9fd2a96704  gcc/testsuite/g++.dg/cpp/warning-2.C
  abc0779ca1b84f59f57f10508d1c26ba  gcc/testsuite/g++.dg/cpp/warning-3.C
  388f26d66093d4cf51084fa41b5fbe6e  gcc/testsuite/g++.dg/cpp/weak.C
  81d80cdbba7e7386b9ae9e86a8d48685  gcc/testsuite/g++.dg/cpp0x/Wattributes1.C
  6360ff0b8118aea408899a225ba2bda2  gcc/testsuite/g++.dg/cpp0x/Wattributes2.C
  c168789828bc81dfeadd8aeab2bd861e  gcc/testsuite/g++.dg/cpp0x/Wdtor1.C
! c47fe308b23c471e712a22bd21a1aac9  gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.C
! 98759887f3f8f7f488ba1c8ee4bb03fb  gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix2.C
  e17f4f7218a49c4d8a14211f32d8e747  gcc/testsuite/g++.dg/cpp0x/Wnarrowing1.C
  deb6cb3161ca7aaacc743984b6723181  gcc/testsuite/g++.dg/cpp0x/Wnarrowing10.C
  4086ca5298afe1cccfe7d9376409057a  gcc/testsuite/g++.dg/cpp0x/Wnarrowing11.C
--- 16218,16232 ----
  51d5f30d4e9c9d914f798d5d9fd7f0af  gcc/testsuite/g++.dg/cpp/ucnid-3.C
  df09112b080a4f413dd67072191ec1c6  gcc/testsuite/g++.dg/cpp/ucnid-4-utf8.C
  7a8d6ee38bbf6e99549056f57a4b5890  gcc/testsuite/g++.dg/cpp/utf16-pr41698-1.C
! bebf187a80babcfbe27d20f6ac863408  gcc/testsuite/g++.dg/cpp/warning-1.C
! f1b710e52353eea60631e83603f64250  gcc/testsuite/g++.dg/cpp/warning-2.C
  abc0779ca1b84f59f57f10508d1c26ba  gcc/testsuite/g++.dg/cpp/warning-3.C
  388f26d66093d4cf51084fa41b5fbe6e  gcc/testsuite/g++.dg/cpp/weak.C
  81d80cdbba7e7386b9ae9e86a8d48685  gcc/testsuite/g++.dg/cpp0x/Wattributes1.C
  6360ff0b8118aea408899a225ba2bda2  gcc/testsuite/g++.dg/cpp0x/Wattributes2.C
  c168789828bc81dfeadd8aeab2bd861e  gcc/testsuite/g++.dg/cpp0x/Wdtor1.C
! e9f0f635cfcd52b27110b826669e86c7  gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.C
! 6e9e9b8530c2c5957a23cf1f9ec84644  gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix2.C
  e17f4f7218a49c4d8a14211f32d8e747  gcc/testsuite/g++.dg/cpp0x/Wnarrowing1.C
  deb6cb3161ca7aaacc743984b6723181  gcc/testsuite/g++.dg/cpp0x/Wnarrowing10.C
  4086ca5298afe1cccfe7d9376409057a  gcc/testsuite/g++.dg/cpp0x/Wnarrowing11.C
*************** e62a4dedf879dc2231d0301f8e3e4934  gcc/te
*** 15088,15093 ****
--- 16244,16250 ----
  be95df875a5e753c49e7e81f4f8bc5f4  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21b.C
  9ef57d45f139fb425b1c01396aae9019  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21c.C
  2ad64a56567e70f262f5c4b85d33ae93  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21d.C
+ e873a1b707d722041d380b8ce1e55754  gcc/testsuite/g++.dg/cpp0x/Wnarrowing22.C
  74bb2cd707774dcc79b45b939b21d2a8  gcc/testsuite/g++.dg/cpp0x/Wnarrowing3.C
  98f5997ac53fff61b85f99bfe358a506  gcc/testsuite/g++.dg/cpp0x/Wnarrowing4.C
  9f7e6ccafa0bff14072fa13cf9d8fe16  gcc/testsuite/g++.dg/cpp0x/Wnarrowing5.C
*************** e77445122d16af02724b7b51c72087ca  gcc/te
*** 15097,15103 ****
  1ef1874e50512b4092abfc3d9485970d  gcc/testsuite/g++.dg/cpp0x/Wnarrowing9.C
  909d9e8189baf45d0b2efa8c8cd07e68  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move1.C
  be6c655a10f1cf541a9d740b5b63fa2f  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move10.C
! 6cf1c92d7ad9ab97ae87cdd7cbf686d8  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move2.C
  688f96872cdd2d1efca1e3bf68766394  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move3.C
  9ef1f4b39f40753d0d1a24c7162f8a44  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move4.C
  aba8379d171d780d658e34f3d05b5e75  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move5.C
--- 16254,16260 ----
  1ef1874e50512b4092abfc3d9485970d  gcc/testsuite/g++.dg/cpp0x/Wnarrowing9.C
  909d9e8189baf45d0b2efa8c8cd07e68  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move1.C
  be6c655a10f1cf541a9d740b5b63fa2f  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move10.C
! 33765f983062d5e7136402a78a0d349c  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move2.C
  688f96872cdd2d1efca1e3bf68766394  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move3.C
  9ef1f4b39f40753d0d1a24c7162f8a44  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move4.C
  aba8379d171d780d658e34f3d05b5e75  gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move5.C
*************** d4ec52ca85cf03da6e84d3a566290f64  gcc/te
*** 15214,15219 ****
--- 16371,16379 ----
  18986a269f63a5154ee51126f8720a4a  gcc/testsuite/g++.dg/cpp0x/alias-decl-75b.C
  b7603919caddaa5fd970651b9b859a39  gcc/testsuite/g++.dg/cpp0x/alias-decl-76.C
  701cf78941a42c919e4bc50e11b1d350  gcc/testsuite/g++.dg/cpp0x/alias-decl-77.C
+ 11f76a7b51324f997558c4bea365c78b  gcc/testsuite/g++.dg/cpp0x/alias-decl-78.C
+ ecc0ef1a879b400ac24f5ea090a2027c  gcc/testsuite/g++.dg/cpp0x/alias-decl-79.C
+ 82163eb65f3dd2851d5aa67b8d473252  gcc/testsuite/g++.dg/cpp0x/alias-decl-79a.C
  77aa48fcd9f9b9ffab08fa7ebc5d52e2  gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C
  0fea677a266ad89646463d41e4df0566  gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
  2b0ac9ee7e77902ee76b92dfbfcc37b3  gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C
*************** e612eae08131c21ee29889099ea83336  gcc/te
*** 15227,15232 ****
--- 16387,16393 ----
  2bb10f989c487746162ff9b96f780fb1  gcc/testsuite/g++.dg/cpp0x/alias-decl-nontype1.C
  42802675fdf183e36c26b59ce2188fbd  gcc/testsuite/g++.dg/cpp0x/alias-decl-pmf1.C
  276db5de570a4b8f2cfb42b6fc5b0a0b  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1.C
+ 035d1b35c1aef29db6e2a618ee9f17a0  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1a.C
  2a4fbf633a4b91c09573d05167888906  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-2.C
  211b1bb1a33b29cff03e25acefb6f840  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-3.C
  40651f96c24fbc6da71f67630650ea18  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-4.C
*************** ff79517e369278761b322fd3cbfa2dc9  gcc/te
*** 15236,15243 ****
  0bb3f63511b9329ed3397481d34f4eea  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp2.C
  f5ed750984341c509996395f9c245964  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic1.C
  4801ac3f92233a9abd7960d6704f81a5  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C
  5b74a3057c420c4dac9d7faffd0a2d5c  gcc/testsuite/g++.dg/cpp0x/alias-decl-void1.C
! 3160c52a8ac131b03192a1bc86ef7a35  gcc/testsuite/g++.dg/cpp0x/alignas1.C
  4866e3b93b878ee0244a039b009071ca  gcc/testsuite/g++.dg/cpp0x/alignas10.C
  cda964826837ac50113537351c4b8f2b  gcc/testsuite/g++.dg/cpp0x/alignas11.C
  5dc574243b6bd967a468cc95db6946b1  gcc/testsuite/g++.dg/cpp0x/alignas12.C
--- 16397,16405 ----
  0bb3f63511b9329ed3397481d34f4eea  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp2.C
  f5ed750984341c509996395f9c245964  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic1.C
  4801ac3f92233a9abd7960d6704f81a5  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C
+ 706280ea0e15fb25eef3a8036aefd636  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic3.C
  5b74a3057c420c4dac9d7faffd0a2d5c  gcc/testsuite/g++.dg/cpp0x/alias-decl-void1.C
! 40764aefff9b0805c42f9fb31323e6eb  gcc/testsuite/g++.dg/cpp0x/alignas1.C
  4866e3b93b878ee0244a039b009071ca  gcc/testsuite/g++.dg/cpp0x/alignas10.C
  cda964826837ac50113537351c4b8f2b  gcc/testsuite/g++.dg/cpp0x/alignas11.C
  5dc574243b6bd967a468cc95db6946b1  gcc/testsuite/g++.dg/cpp0x/alignas12.C
*************** aebe00f4a175042412bb35a0e940886a  gcc/te
*** 15246,15260 ****
  ff12be74ca1ae28c77d541ad1dc53873  gcc/testsuite/g++.dg/cpp0x/alignas15.C
  6b919a388a7f6ff57c7976486c409fb7  gcc/testsuite/g++.dg/cpp0x/alignas16.C
  d9734e67258a1ae418f1c09c99e52585  gcc/testsuite/g++.dg/cpp0x/alignas17.C
! 5c210fde91e5e95aefb4df1c7ace2980  gcc/testsuite/g++.dg/cpp0x/alignas18.C
  c35ab3d4ee0cd5a668ae4e1f3805363e  gcc/testsuite/g++.dg/cpp0x/alignas19.C
! f1354435b9e53f5c5d923994edebb49f  gcc/testsuite/g++.dg/cpp0x/alignas2.C
  4921e2a7860d2f035f9a655f8aef21fa  gcc/testsuite/g++.dg/cpp0x/alignas20.C
  af0c02bf93d49e5385b61d3e59a21e28  gcc/testsuite/g++.dg/cpp0x/alignas3.C
  4e770e3d245d014c238b07e798e03b36  gcc/testsuite/g++.dg/cpp0x/alignas4.C
  2490568ef637fae72e27c31a035040f2  gcc/testsuite/g++.dg/cpp0x/alignas5.C
  98d93af53a0530bbccdcc33479419fbd  gcc/testsuite/g++.dg/cpp0x/alignas6.C
! 28d7e98b1fb09b72287dd79211925768  gcc/testsuite/g++.dg/cpp0x/alignas7.C
  bbdaf73ad7b33d122b856e24d23ea582  gcc/testsuite/g++.dg/cpp0x/alignas8.C
  38b08021a0932ddf74322773329e94fd  gcc/testsuite/g++.dg/cpp0x/alignas9.C
  dad14da1d0b01a33c9cdabaaf609eb0a  gcc/testsuite/g++.dg/cpp0x/alignof.C
--- 16408,16425 ----
  ff12be74ca1ae28c77d541ad1dc53873  gcc/testsuite/g++.dg/cpp0x/alignas15.C
  6b919a388a7f6ff57c7976486c409fb7  gcc/testsuite/g++.dg/cpp0x/alignas16.C
  d9734e67258a1ae418f1c09c99e52585  gcc/testsuite/g++.dg/cpp0x/alignas17.C
! f7e6d1ef6daba0aa07c8441f46cd0c5f  gcc/testsuite/g++.dg/cpp0x/alignas18.C
  c35ab3d4ee0cd5a668ae4e1f3805363e  gcc/testsuite/g++.dg/cpp0x/alignas19.C
! dfa7add3a6946474911a4355e54f6f8f  gcc/testsuite/g++.dg/cpp0x/alignas2.C
  4921e2a7860d2f035f9a655f8aef21fa  gcc/testsuite/g++.dg/cpp0x/alignas20.C
+ c83bc7f20dd1098f97cb408b9b24574d  gcc/testsuite/g++.dg/cpp0x/alignas21.C
+ 695b3ddd376a0c76e0e8ec1e2a348393  gcc/testsuite/g++.dg/cpp0x/alignas22.C
+ c234dc1d677341200a08ebd49b1d3701  gcc/testsuite/g++.dg/cpp0x/alignas23.C
  af0c02bf93d49e5385b61d3e59a21e28  gcc/testsuite/g++.dg/cpp0x/alignas3.C
  4e770e3d245d014c238b07e798e03b36  gcc/testsuite/g++.dg/cpp0x/alignas4.C
  2490568ef637fae72e27c31a035040f2  gcc/testsuite/g++.dg/cpp0x/alignas5.C
  98d93af53a0530bbccdcc33479419fbd  gcc/testsuite/g++.dg/cpp0x/alignas6.C
! b1ffa076f0bda5c00d988bc48f59bad7  gcc/testsuite/g++.dg/cpp0x/alignas7.C
  bbdaf73ad7b33d122b856e24d23ea582  gcc/testsuite/g++.dg/cpp0x/alignas8.C
  38b08021a0932ddf74322773329e94fd  gcc/testsuite/g++.dg/cpp0x/alignas9.C
  dad14da1d0b01a33c9cdabaaf609eb0a  gcc/testsuite/g++.dg/cpp0x/alignof.C
*************** f6ed96119608d817c8a36a47de91e2bc  gcc/te
*** 15267,15273 ****
--- 16432,16449 ----
  5d890faf4a821ee4240f531a35dde130  gcc/testsuite/g++.dg/cpp0x/alignof8.C
  e679c3ff5560017984a9332e3cd8e485  gcc/testsuite/g++.dg/cpp0x/anon-union1.C
  7b2ba02a276836f1d780b2c828e8dca5  gcc/testsuite/g++.dg/cpp0x/anon-union2.C
+ 2ffd67f90706815bca5e50a7ae3fefb7  gcc/testsuite/g++.dg/cpp0x/attr-assume1.C
  0648a877f5d551cf01873bb0a34a86f8  gcc/testsuite/g++.dg/cpp0x/attr-carries_dependency1.C
+ c74a031b98a9985457fb7e46d43e3403  gcc/testsuite/g++.dg/cpp0x/attr-carries_dependency2.C
+ a9001b17b2fabd2e0b923f6ee1f15bc1  gcc/testsuite/g++.dg/cpp0x/attr-deprecated1.C
+ cf95adc386869ec65ad50be2ca554a82  gcc/testsuite/g++.dg/cpp0x/attr-fallthrough1.C
+ 3e8fa2e76791f751dc38e602ffc6c7dc  gcc/testsuite/g++.dg/cpp0x/attr-fallthrough2.C
+ 3cb463541c587f530b2fe2ed4c7109f0  gcc/testsuite/g++.dg/cpp0x/attr-likely1.C
+ 424974f8c915df0c51232daf4602915e  gcc/testsuite/g++.dg/cpp0x/attr-maybe_unused1.C
+ 0417d076d868ddf9d8aed7b8ef46a65c  gcc/testsuite/g++.dg/cpp0x/attr-no_unique_address1.C
+ 428abc3950a60770507bf08ca2c8f981  gcc/testsuite/g++.dg/cpp0x/attr-nodiscard1.C
+ b03e6a43a7e9cf64dab0d6195147e9b5  gcc/testsuite/g++.dg/cpp0x/attr-noreturn1.C
+ f10d6ce6082c1600b5f039e4611a6f02  gcc/testsuite/g++.dg/cpp0x/attr-unlikely1.C
  2dd5002330171bc4d37d9ba0cc381c6a  gcc/testsuite/g++.dg/cpp0x/attrib54.C
  85e5c6b94c0cc9e87d6a51765c8fc4a4  gcc/testsuite/g++.dg/cpp0x/attrib55.C
  1430719012d4ec7cb7d2aade1a23ef32  gcc/testsuite/g++.dg/cpp0x/attributes-enum-1.C
*************** d420df2f8f923f095a129abfc120b93d  gcc/te
*** 15314,15320 ****
  1ed3bdad79aa7dbba80cabd3681be148  gcc/testsuite/g++.dg/cpp0x/auto40.C
  b5369cf36db60b598de75460558c3937  gcc/testsuite/g++.dg/cpp0x/auto41.C
  ecdd538024a663cec02f196c99cb4f66  gcc/testsuite/g++.dg/cpp0x/auto42.C
! 8b826f0950dbcb62259fc73cff6fb691  gcc/testsuite/g++.dg/cpp0x/auto43.C
  6bbe0a14d0e66a533849c123efd3aa7a  gcc/testsuite/g++.dg/cpp0x/auto44.C
  d9b716e1c070d979f6ba213732af91c4  gcc/testsuite/g++.dg/cpp0x/auto45.C
  19479e39ea80e3649e4b4b41c4c2abeb  gcc/testsuite/g++.dg/cpp0x/auto46.C
--- 16490,16496 ----
  1ed3bdad79aa7dbba80cabd3681be148  gcc/testsuite/g++.dg/cpp0x/auto40.C
  b5369cf36db60b598de75460558c3937  gcc/testsuite/g++.dg/cpp0x/auto41.C
  ecdd538024a663cec02f196c99cb4f66  gcc/testsuite/g++.dg/cpp0x/auto42.C
! fb1c5d4dcf18241c8c17e9c133515f0e  gcc/testsuite/g++.dg/cpp0x/auto43.C
  6bbe0a14d0e66a533849c123efd3aa7a  gcc/testsuite/g++.dg/cpp0x/auto44.C
  d9b716e1c070d979f6ba213732af91c4  gcc/testsuite/g++.dg/cpp0x/auto45.C
  19479e39ea80e3649e4b4b41c4c2abeb  gcc/testsuite/g++.dg/cpp0x/auto46.C
*************** ecc3b96f5ee5f153f34313ef65b34ef6  gcc/te
*** 15374,15380 ****
  f85435e07fb0816e260f85cf4de0ce54  gcc/testsuite/g++.dg/cpp0x/constexpr-54002.C
  f89607f18b0bf238690c5efba99e738c  gcc/testsuite/g++.dg/cpp0x/constexpr-55432.C
  6d4ae475a457ae0681963f8fdc826852  gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C
! 11393018085e26e2369482c620b5f870  gcc/testsuite/g++.dg/cpp0x/constexpr-55708.C
  b32eae8c9ccf574b6deb708c674273b2  gcc/testsuite/g++.dg/cpp0x/constexpr-55942.C
  8e53de6c9b1d404bae439167b0aedfa6  gcc/testsuite/g++.dg/cpp0x/constexpr-56302.C
  bba173777ca4b2aff7fbffb7147bb9df  gcc/testsuite/g++.dg/cpp0x/constexpr-56991.C
--- 16550,16556 ----
  f85435e07fb0816e260f85cf4de0ce54  gcc/testsuite/g++.dg/cpp0x/constexpr-54002.C
  f89607f18b0bf238690c5efba99e738c  gcc/testsuite/g++.dg/cpp0x/constexpr-55432.C
  6d4ae475a457ae0681963f8fdc826852  gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C
! 3d1adb77be14e225252ac6bb8daa3bf8  gcc/testsuite/g++.dg/cpp0x/constexpr-55708.C
  b32eae8c9ccf574b6deb708c674273b2  gcc/testsuite/g++.dg/cpp0x/constexpr-55942.C
  8e53de6c9b1d404bae439167b0aedfa6  gcc/testsuite/g++.dg/cpp0x/constexpr-56302.C
  bba173777ca4b2aff7fbffb7147bb9df  gcc/testsuite/g++.dg/cpp0x/constexpr-56991.C
*************** d5611e2fce29fd70d832ad1caeacb2bf  gcc/te
*** 15399,15405 ****
  9d889c590c21552a82c4176e20c4be44  gcc/testsuite/g++.dg/cpp0x/constexpr-69315.C
  4a75cc4bc0ceaf1f7f97d667630b002d  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-1.C
  c31c54ee094906f9917e908e31bbf1b5  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-2.C
! bf6a1a2ec9530a412bf9a3f7e95df3c8  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-3.C
  0f8db74a4f4db29acf48fd0a0cf80732  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-4.C
  f7b8a5ff4283fd43f4dffd9d5fafd5c9  gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
  6d2a7bdbddfaf87d584b814bf1961f04  gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
--- 16575,16581 ----
  9d889c590c21552a82c4176e20c4be44  gcc/testsuite/g++.dg/cpp0x/constexpr-69315.C
  4a75cc4bc0ceaf1f7f97d667630b002d  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-1.C
  c31c54ee094906f9917e908e31bbf1b5  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-2.C
! ac62208021f9c8ea61838df5e07f1531  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-3.C
  0f8db74a4f4db29acf48fd0a0cf80732  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-4.C
  f7b8a5ff4283fd43f4dffd9d5fafd5c9  gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
  6d2a7bdbddfaf87d584b814bf1961f04  gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
*************** f7b8a5ff4283fd43f4dffd9d5fafd5c9  gcc/te
*** 15411,15416 ****
--- 16587,16593 ----
  7a254b7f189ea361d1834afed4a49a5c  gcc/testsuite/g++.dg/cpp0x/constexpr-77482.C
  8c29c4c2725a7a5c3c2a973d663d5315  gcc/testsuite/g++.dg/cpp0x/constexpr-77771.C
  8a9f91865ab6d92e00b1d78f32c26682  gcc/testsuite/g++.dg/cpp0x/constexpr-79822.C
+ 6f26eddae5fe77c68992a2d3bd6b1a16  gcc/testsuite/g++.dg/cpp0x/constexpr-83144.C
  1e7c8ba8ab02820df5254f7b652cafd5  gcc/testsuite/g++.dg/cpp0x/constexpr-84449.C
  c5c31ddd271a1ea41e1cc0115e3e4305  gcc/testsuite/g++.dg/cpp0x/constexpr-84463.C
  4eed899a9b9206ac736245fb5b88c93e  gcc/testsuite/g++.dg/cpp0x/constexpr-85553.C
*************** f6676b44835c5329c16a5bb57f317adc  gcc/te
*** 15488,15493 ****
--- 16665,16671 ----
  4be3d6eef956cee1b5ae2edcf04a605b  gcc/testsuite/g++.dg/cpp0x/constexpr-base6.C
  096985eadd4b3ef7a0521407d61d2085  gcc/testsuite/g++.dg/cpp0x/constexpr-base6b.C
  cc4e6caab0fb0ed4c0220072c544d36f  gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C
+ 7c0cc8f59b2463aacff8869e6b48ae75  gcc/testsuite/g++.dg/cpp0x/constexpr-base8.C
  e4e15e959aaae288fa7a722d7abb7509  gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C
  18b0f5c8eeb4a3196bc623c2fd1205ee  gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C
  0414f248fbbcd3aa3e94cb525b3e610c  gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C
*************** e4e15e959aaae288fa7a722d7abb7509  gcc/te
*** 15497,15505 ****
  85fdfb48424c10ce307707bc1d85353b  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C
  a3e1dfa48f53c341c8fd1fed39d39593  gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C
  2d072e1c9404478ff6f2aff9be053f5d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
! 2bdc0409678520a9afb35385bbda927d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C
  7cd97e4615765a106cbe7e09df58b19e  gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C
! 14d6b6437490c4a1117958f82618da56  gcc/testsuite/g++.dg/cpp0x/constexpr-cast4.C
  c69a3f036aa1a3b23cdbaaea842e210b  gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
  4c7ae3f55ce6d714d60e08811293b1e3  gcc/testsuite/g++.dg/cpp0x/constexpr-comma1.C
  6fdd84c643464de26956dded064a3489  gcc/testsuite/g++.dg/cpp0x/constexpr-compare1.C
--- 16675,16683 ----
  85fdfb48424c10ce307707bc1d85353b  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C
  a3e1dfa48f53c341c8fd1fed39d39593  gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C
  2d072e1c9404478ff6f2aff9be053f5d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
! aa9b3e4f7c3a95d634bb3966b53cea07  gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C
  7cd97e4615765a106cbe7e09df58b19e  gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C
! e1dfa385453df53d825f01f90b1f856e  gcc/testsuite/g++.dg/cpp0x/constexpr-cast4.C
  c69a3f036aa1a3b23cdbaaea842e210b  gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
  4c7ae3f55ce6d714d60e08811293b1e3  gcc/testsuite/g++.dg/cpp0x/constexpr-comma1.C
  6fdd84c643464de26956dded064a3489  gcc/testsuite/g++.dg/cpp0x/constexpr-compare1.C
*************** dfc43f4a6c6619f77e2370dc3ac7c5bd  gcc/te
*** 15531,15536 ****
--- 16709,16715 ----
  df7772e8bce1917bb8d1e66fcbe1ce31  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor2.C
  50c4fa620f7ec653b83dbc313350ac22  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor20.C
  75570067f1748bbf63ecff0edf089f3f  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor21.C
+ 898892e0dd2add16d81be2af167dd343  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor22.C
  6149d79aef3c5dc04bce76d97b8072e3  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor3.C
  fe03ae0923ec0f159b32d4c95a97afbb  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor4.C
  a15ac39628455598191a6c7526c0ea4b  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor5.C
*************** b862494c2e887a48f868e4cba401545a  gcc/te
*** 15611,15622 ****
  e008ea9800190f5aa711844cfa51e22a  gcc/testsuite/g++.dg/cpp0x/constexpr-ice13.C
  110e9b1c0a4293275ee1db249d4bf74c  gcc/testsuite/g++.dg/cpp0x/constexpr-ice14.C
  c0f1a3ef9d971f6d79f1dd03f5a9d4dd  gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C
! cd2f3fede73e657ca2464928cf75258b  gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C
  cad4897b69a9dcbf2accb6f76dc6142a  gcc/testsuite/g++.dg/cpp0x/constexpr-ice17.C
  50d8cd0efe85812d15921b8d64e4a9a9  gcc/testsuite/g++.dg/cpp0x/constexpr-ice18.C
  8481af89099c4675f2edb61ae5b3d5b5  gcc/testsuite/g++.dg/cpp0x/constexpr-ice19.C
  b9f6048a90a69c192d74f1909302134b  gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
  ab9f33f2432c24146907c124c5aa5f73  gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C
  8338efcd83a2b6552bc4ad1d47c18171  gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C
  a2444cbecc90b8c642eeb0fb89f00654  gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C
  db4c14cc7fdca18c19d67657bdddb5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C
--- 16790,16802 ----
  e008ea9800190f5aa711844cfa51e22a  gcc/testsuite/g++.dg/cpp0x/constexpr-ice13.C
  110e9b1c0a4293275ee1db249d4bf74c  gcc/testsuite/g++.dg/cpp0x/constexpr-ice14.C
  c0f1a3ef9d971f6d79f1dd03f5a9d4dd  gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C
! a1da800fd97b66d6918973f3a17dcafa  gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C
  cad4897b69a9dcbf2accb6f76dc6142a  gcc/testsuite/g++.dg/cpp0x/constexpr-ice17.C
  50d8cd0efe85812d15921b8d64e4a9a9  gcc/testsuite/g++.dg/cpp0x/constexpr-ice18.C
  8481af89099c4675f2edb61ae5b3d5b5  gcc/testsuite/g++.dg/cpp0x/constexpr-ice19.C
  b9f6048a90a69c192d74f1909302134b  gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
  ab9f33f2432c24146907c124c5aa5f73  gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C
+ 4553e1cebbfc69d4a777335cf211603e  gcc/testsuite/g++.dg/cpp0x/constexpr-ice21.C
  8338efcd83a2b6552bc4ad1d47c18171  gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C
  a2444cbecc90b8c642eeb0fb89f00654  gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C
  db4c14cc7fdca18c19d67657bdddb5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C
*************** e30db9bfd86140e4533c65e96fcc3879  gcc/te
*** 15679,15684 ****
--- 16859,16866 ----
  2b6a53b16231810c0a21185dce583796  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi1.C
  d3733d3842be9bb1b1c6c2037b318baa  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi2.C
  5f3fac9ee3cc1ac0d41c5de0b085aa7e  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi3.C
+ d6d57715afaf788ba03b6b074eb1b448  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi4.C
+ cfa07cc5328a54c9723c30e3e2a860e8  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi5.C
  990beb043ae4d800be378b30e8be4884  gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-1.C
  7edfd1f97b60d8d22edb48040aab65ff  gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C
  d4c1a5cc0803346fbc25f7a4d5748fd8  gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C
*************** a5ce11f6f7a1de2ab9382765eaae19a9  gcc/te
*** 15695,15700 ****
--- 16877,16887 ----
  35b3637981f7a87405df79bbf34a383f  gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C
  71bf544adf239f884a43b6d72e78604e  gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C
  e29b90d7c0ad7662446a6055addb6315  gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C
+ 6f4c211240b117e9de9dbd34939b94a3  gcc/testsuite/g++.dg/cpp0x/constexpr-prvalue1.C
+ 616778c5b022f6fa17caaeb03f9b37cf  gcc/testsuite/g++.dg/cpp0x/constexpr-prvalue2.C
+ af394e62c7b95d49434d270174ba12bb  gcc/testsuite/g++.dg/cpp0x/constexpr-prvalue3.C
+ 631ca04dc5fe25b4cdb9da21d0844a7b  gcc/testsuite/g++.dg/cpp0x/constexpr-prvalue4.C
+ 7c9b57bad2989897b7eb993e26970791  gcc/testsuite/g++.dg/cpp0x/constexpr-prvalue5.C
  a82ef0f27014a7256099b10bb3cb2b1a  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrcomp1.C
  e36688d452f93f851f133220f8cfd8b0  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C
  02a38a7d530d4818a0d8dbbb4225efd9  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem2.C
*************** dd168221387ec9a93f3d125cb4241c56  gcc/te
*** 15717,15722 ****
--- 16904,16910 ----
  d9da9cf4bb858e7842583767dee979b2  gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C
  9c027fcd087086f1062a9894fd5f5925  gcc/testsuite/g++.dg/cpp0x/constexpr-ref12.C
  2415e62348bab828aa828cb53b609bbc  gcc/testsuite/g++.dg/cpp0x/constexpr-ref13.C
+ 5220ef3cbb12703c11b91bede4c93fca  gcc/testsuite/g++.dg/cpp0x/constexpr-ref14.C
  ca5d1437cd50e2281c50ed4591dc3713  gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C
  52e47448fe1ed73156ebb657652051d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C
  a8465ccb79db2326e46ace178e06b2d1  gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C
*************** db629678a3f266682c3a566dd37c8b81  gcc/te
*** 15726,15733 ****
  88d7941c296f4e995a894a2cebceb674  gcc/testsuite/g++.dg/cpp0x/constexpr-ref8.C
  99d2ac51d143edf6ad6147fb059396f4  gcc/testsuite/g++.dg/cpp0x/constexpr-ref9.C
  e6b24a1fa37be1dafc5ee591f257fc1a  gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C
! 2837e188d6c2796de22556bf7f21a88d  gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret2.C
! c5fc1b06031517750a628c7785e37445  gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C
  0243ed8d6dc6cc84334b7250ce7437cc  gcc/testsuite/g++.dg/cpp0x/constexpr-sassert.C
  707c661c266e778c1084c105e9d93852  gcc/testsuite/g++.dg/cpp0x/constexpr-self1.C
  f0ab53b23cf8ef048b8891b5ab461a71  gcc/testsuite/g++.dg/cpp0x/constexpr-shift1.C
--- 16914,16921 ----
  88d7941c296f4e995a894a2cebceb674  gcc/testsuite/g++.dg/cpp0x/constexpr-ref8.C
  99d2ac51d143edf6ad6147fb059396f4  gcc/testsuite/g++.dg/cpp0x/constexpr-ref9.C
  e6b24a1fa37be1dafc5ee591f257fc1a  gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C
! 5839e5918cc894b916465814de305fdd  gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret2.C
! 496361637e728cee02ced02f0f2d640a  gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C
  0243ed8d6dc6cc84334b7250ce7437cc  gcc/testsuite/g++.dg/cpp0x/constexpr-sassert.C
  707c661c266e778c1084c105e9d93852  gcc/testsuite/g++.dg/cpp0x/constexpr-self1.C
  f0ab53b23cf8ef048b8891b5ab461a71  gcc/testsuite/g++.dg/cpp0x/constexpr-shift1.C
*************** e0a86859c165bfaac8fd8efd9023935b  gcc/te
*** 15795,15800 ****
--- 16983,16989 ----
  7229788425547bc1befff78305c473c8  gcc/testsuite/g++.dg/cpp0x/constexpr-union7.C
  5d95979f72aa52bb0abbd82d05bf5e53  gcc/testsuite/g++.dg/cpp0x/constexpr-union7a.C
  d4cff4827a96cb7f369a338f6559edd2  gcc/testsuite/g++.dg/cpp0x/constexpr-union8.C
+ 672d560c9bad4c9225e64d802d62bb03  gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C
  9c897128234fa6ab41edf384f11dd381  gcc/testsuite/g++.dg/cpp0x/constexpr-using.C
  7a9a83c41c3d2c5f82ac428442905b65  gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C
  6dc93e335ab58c26289327a9c7e9d042  gcc/testsuite/g++.dg/cpp0x/constexpr-using3.C
*************** ec6bf8354ca1b8834959e856431d6ac4  gcc/te
*** 15813,15818 ****
--- 17002,17008 ----
  58e380f5c0bc16e86009e605e19acb07  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile.C
  5081c9b6e2b0e12bf7d6e127f365efe7  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile2.C
  30ced1e6b63c1eb7ae6b537c9e49bc1f  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C
+ a219624071878a5955efe99a018a2b43  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C
  7bca20d6ac21d6cb78ab16d5c52b7e64  gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C
  b16fc42e77fa07ebcdb1053ea5d24120  gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C
  70dc080523c40a07cec30261f6f7007a  gcc/testsuite/g++.dg/cpp0x/conv-tmpl1.C
*************** c6ed9a173e49cf9b4145563ba4d4d758  gcc/te
*** 15828,15834 ****
  2316af8e56dcf8aca79100a06b89fffa  gcc/testsuite/g++.dg/cpp0x/dc2.C
  c560a5c9ccf40d9f553aca2c54cdbc91  gcc/testsuite/g++.dg/cpp0x/dc3.C
  86a73804c5d75cd770c1b8d72949a84b  gcc/testsuite/g++.dg/cpp0x/dc4.C
! 677f54601e79fdc0353d4b7835f02857  gcc/testsuite/g++.dg/cpp0x/dc5.C
  fc05398acf4b63071f73ac571828a634  gcc/testsuite/g++.dg/cpp0x/dc6.C
  bc4346829b56020609cc74488154f418  gcc/testsuite/g++.dg/cpp0x/dc7.C
  8305b7b7dfca623e4a99cb58ae840958  gcc/testsuite/g++.dg/cpp0x/dc8.C
--- 17018,17024 ----
  2316af8e56dcf8aca79100a06b89fffa  gcc/testsuite/g++.dg/cpp0x/dc2.C
  c560a5c9ccf40d9f553aca2c54cdbc91  gcc/testsuite/g++.dg/cpp0x/dc3.C
  86a73804c5d75cd770c1b8d72949a84b  gcc/testsuite/g++.dg/cpp0x/dc4.C
! cba5fc4f2533e18f5142fa755f1ca011  gcc/testsuite/g++.dg/cpp0x/dc5.C
  fc05398acf4b63071f73ac571828a634  gcc/testsuite/g++.dg/cpp0x/dc6.C
  bc4346829b56020609cc74488154f418  gcc/testsuite/g++.dg/cpp0x/dc7.C
  8305b7b7dfca623e4a99cb58ae840958  gcc/testsuite/g++.dg/cpp0x/dc8.C
*************** f1a18efe6427e0498be3702d4614f0e5  gcc/te
*** 15942,15947 ****
--- 17132,17139 ----
  8b610d64de6905aa68e67fd0017df0c1  gcc/testsuite/g++.dg/cpp0x/decltype81.C
  125001607a53b033384e6681e3e2f378  gcc/testsuite/g++.dg/cpp0x/decltype82.C
  f232fea8c8bb03a69f26cc099a5006df  gcc/testsuite/g++.dg/cpp0x/decltype82a.C
+ 136875c5938a18fcc0d43c81651dec05  gcc/testsuite/g++.dg/cpp0x/decltype83.C
+ 698e0b669734d31960ed3a66f600cad4  gcc/testsuite/g++.dg/cpp0x/decltype83a.C
  037e88423c377bc171f0dea56fb59c12  gcc/testsuite/g++.dg/cpp0x/decltype9.C
  3b20b1750b2ca6ed0f61eed98be9416e  gcc/testsuite/g++.dg/cpp0x/deduce.C
  3187223bdfa9e7cd351538529dc18cf1  gcc/testsuite/g++.dg/cpp0x/defaulted1.C
*************** ed0b7799626b31c5a32ff2aa85aca02b  gcc/te
*** 15949,15955 ****
  c5cfd7dcc71474b03e84af97fcd2efb6  gcc/testsuite/g++.dg/cpp0x/defaulted11.C
  41f6d104077a474730565e678d50c71d  gcc/testsuite/g++.dg/cpp0x/defaulted13.C
  812103a921689b314c1779178055a8f7  gcc/testsuite/g++.dg/cpp0x/defaulted14.C
! e3439744310182654809bf7e7cdf2ee5  gcc/testsuite/g++.dg/cpp0x/defaulted15.C
  8d364de9c1fc13848d0cb11fd0c219bf  gcc/testsuite/g++.dg/cpp0x/defaulted16.C
  117fed6575bb7c2c848426cd4cdad0fc  gcc/testsuite/g++.dg/cpp0x/defaulted17.C
  e428af51adeb48463d87e7d9991db47e  gcc/testsuite/g++.dg/cpp0x/defaulted18.C
--- 17141,17147 ----
  c5cfd7dcc71474b03e84af97fcd2efb6  gcc/testsuite/g++.dg/cpp0x/defaulted11.C
  41f6d104077a474730565e678d50c71d  gcc/testsuite/g++.dg/cpp0x/defaulted13.C
  812103a921689b314c1779178055a8f7  gcc/testsuite/g++.dg/cpp0x/defaulted14.C
! 12fd6230c8a4b68fd2addaf04304d93a  gcc/testsuite/g++.dg/cpp0x/defaulted15.C
  8d364de9c1fc13848d0cb11fd0c219bf  gcc/testsuite/g++.dg/cpp0x/defaulted16.C
  117fed6575bb7c2c848426cd4cdad0fc  gcc/testsuite/g++.dg/cpp0x/defaulted17.C
  e428af51adeb48463d87e7d9991db47e  gcc/testsuite/g++.dg/cpp0x/defaulted18.C
*************** c7e6cc6230f1d5b6c871906050eb4a8e  gcc/te
*** 15990,16008 ****
  f43c03a4784f2f2c60f5f1a33fb05baa  gcc/testsuite/g++.dg/cpp0x/defaulted49.C
  f850ce13cb38dd65e14979303082c6cf  gcc/testsuite/g++.dg/cpp0x/defaulted5.C
  758c3a05ba6b04dec3e4f589bacba06c  gcc/testsuite/g++.dg/cpp0x/defaulted50.C
! 098b49c022529d4c990c1910200506c2  gcc/testsuite/g++.dg/cpp0x/defaulted51.C
! 022529959ad811f17c5383523a77146b  gcc/testsuite/g++.dg/cpp0x/defaulted52.C
! e5de668e4adbcf2c6bd34106e2de2184  gcc/testsuite/g++.dg/cpp0x/defaulted53.C
! 7912075764b3b5a405da67af043c4300  gcc/testsuite/g++.dg/cpp0x/defaulted54.C
  384335ae432ba6751d54746c7c7044be  gcc/testsuite/g++.dg/cpp0x/defaulted55.C
! fbbaccba022f9b3bfdcb72992e27c8e3  gcc/testsuite/g++.dg/cpp0x/defaulted56.C
! 72453ffc587c29d7b9cdcf6b4bee954c  gcc/testsuite/g++.dg/cpp0x/defaulted57.C
! b1be32e4e93e7ecc391775a20237b588  gcc/testsuite/g++.dg/cpp0x/defaulted58.C
! 4634a87a8d7369a910f73efdb58db6d2  gcc/testsuite/g++.dg/cpp0x/defaulted59.C
  1983e4823fae7dc43730a329ff221148  gcc/testsuite/g++.dg/cpp0x/defaulted6.C
  ddf162f93428742a35931467028606d6  gcc/testsuite/g++.dg/cpp0x/defaulted60.C
  c2da4b34ee24f7f426afe3bde8de1d81  gcc/testsuite/g++.dg/cpp0x/defaulted61.C
  468183957200d4cd526f4a049536e8cd  gcc/testsuite/g++.dg/cpp0x/defaulted62.C
  bbb1e584edf09356b8623f522ff03019  gcc/testsuite/g++.dg/cpp0x/defaulted7.C
  cbe0ba147a1df371f25c8ab8623476ef  gcc/testsuite/g++.dg/cpp0x/defaulted8.C
  23094958b5ceda3fdf1d62176d94aabe  gcc/testsuite/g++.dg/cpp0x/defaulted9.C
--- 17182,17207 ----
  f43c03a4784f2f2c60f5f1a33fb05baa  gcc/testsuite/g++.dg/cpp0x/defaulted49.C
  f850ce13cb38dd65e14979303082c6cf  gcc/testsuite/g++.dg/cpp0x/defaulted5.C
  758c3a05ba6b04dec3e4f589bacba06c  gcc/testsuite/g++.dg/cpp0x/defaulted50.C
! e926462fc6768aa751b7f2118d4285a1  gcc/testsuite/g++.dg/cpp0x/defaulted51.C
! f3d49ab44b711666dccaeba5221556c6  gcc/testsuite/g++.dg/cpp0x/defaulted52.C
! 3c4e6840e5ab64aa5f2b9193f6fc9526  gcc/testsuite/g++.dg/cpp0x/defaulted53.C
! d58b6be8b3b759d44390d74f9990552b  gcc/testsuite/g++.dg/cpp0x/defaulted54.C
  384335ae432ba6751d54746c7c7044be  gcc/testsuite/g++.dg/cpp0x/defaulted55.C
! 86568ed0cdc41e178119c55f8bcf2c53  gcc/testsuite/g++.dg/cpp0x/defaulted56.C
! 0f4c07be2972c75efbd7c98f7d454d51  gcc/testsuite/g++.dg/cpp0x/defaulted57.C
! e34c542dd6180cede36a7449b455c84f  gcc/testsuite/g++.dg/cpp0x/defaulted58.C
! 3fd23f2dbacd20dc81a557098cf279d1  gcc/testsuite/g++.dg/cpp0x/defaulted59.C
  1983e4823fae7dc43730a329ff221148  gcc/testsuite/g++.dg/cpp0x/defaulted6.C
  ddf162f93428742a35931467028606d6  gcc/testsuite/g++.dg/cpp0x/defaulted60.C
  c2da4b34ee24f7f426afe3bde8de1d81  gcc/testsuite/g++.dg/cpp0x/defaulted61.C
  468183957200d4cd526f4a049536e8cd  gcc/testsuite/g++.dg/cpp0x/defaulted62.C
+ 1d269df02cd2a45567e39b8643fa22b8  gcc/testsuite/g++.dg/cpp0x/defaulted63.C
+ daa591e12254c313ca26c02da55ef90d  gcc/testsuite/g++.dg/cpp0x/defaulted64.C
+ ddcd28461e906f90904ff163bf970148  gcc/testsuite/g++.dg/cpp0x/defaulted65.C
+ 0d5f0f9f2a0bbb3c036a6e1bafb455ed  gcc/testsuite/g++.dg/cpp0x/defaulted66.C
+ 0f815adf8c8057a9467214e2ec7eca93  gcc/testsuite/g++.dg/cpp0x/defaulted67.C
+ c73d4f9a1e60a9101c9ca8b379538536  gcc/testsuite/g++.dg/cpp0x/defaulted68.C
+ 71064d42dbfc78b3fc659843ba2514a1  gcc/testsuite/g++.dg/cpp0x/defaulted69.C
  bbb1e584edf09356b8623f522ff03019  gcc/testsuite/g++.dg/cpp0x/defaulted7.C
  cbe0ba147a1df371f25c8ab8623476ef  gcc/testsuite/g++.dg/cpp0x/defaulted8.C
  23094958b5ceda3fdf1d62176d94aabe  gcc/testsuite/g++.dg/cpp0x/defaulted9.C
*************** aa85c0553f87574847d97be55cc90542  gcc/te
*** 16082,16089 ****
  24a1cf067e2c2f223e24528a9c725d15  gcc/testsuite/g++.dg/cpp0x/enum32.C
  9b9f33835db7e9e3c1180e39a1e2002a  gcc/testsuite/g++.dg/cpp0x/enum33.C
  cd13bec4a277695c3f0d055601e86cec  gcc/testsuite/g++.dg/cpp0x/enum34.C
! b1410081d8b18a483605fea34ded714b  gcc/testsuite/g++.dg/cpp0x/enum35.C
! 948a96ff04f2a9966e35400fe5a0ae86  gcc/testsuite/g++.dg/cpp0x/enum36.C
  9d78eeec0d8fa324ce972cdd1b925d06  gcc/testsuite/g++.dg/cpp0x/enum37.C
  0c1bd3a6f06a95634ee6e7e1c8cfcb43  gcc/testsuite/g++.dg/cpp0x/enum38.C
  f520b3c677602a9f4bb925811947dd27  gcc/testsuite/g++.dg/cpp0x/enum39.C
--- 17281,17288 ----
  24a1cf067e2c2f223e24528a9c725d15  gcc/testsuite/g++.dg/cpp0x/enum32.C
  9b9f33835db7e9e3c1180e39a1e2002a  gcc/testsuite/g++.dg/cpp0x/enum33.C
  cd13bec4a277695c3f0d055601e86cec  gcc/testsuite/g++.dg/cpp0x/enum34.C
! 25f0b912d4eec78406e02fd5341a3538  gcc/testsuite/g++.dg/cpp0x/enum35.C
! a1c55b05b951f44a006ec3d391248515  gcc/testsuite/g++.dg/cpp0x/enum36.C
  9d78eeec0d8fa324ce972cdd1b925d06  gcc/testsuite/g++.dg/cpp0x/enum37.C
  0c1bd3a6f06a95634ee6e7e1c8cfcb43  gcc/testsuite/g++.dg/cpp0x/enum38.C
  f520b3c677602a9f4bb925811947dd27  gcc/testsuite/g++.dg/cpp0x/enum39.C
*************** a90d02344ce471556a85a9970c53f219  gcc/te
*** 16136,16141 ****
--- 17335,17341 ----
  e69d01a320a7471c0585ac2d75efcac2  gcc/testsuite/g++.dg/cpp0x/extern_template-4.C
  b25800bcf52ab901ab8ddbc9ea153561  gcc/testsuite/g++.dg/cpp0x/extern_template-5.C
  b44ed86d19fab7414d28d1f3fd36a7f9  gcc/testsuite/g++.dg/cpp0x/extern_template-6.C
+ dd03d2c4673edad0d7089bf5e60add24  gcc/testsuite/g++.dg/cpp0x/extern_template-7.C
  592cc710524d5d21c28b065dd6c6de7c  gcc/testsuite/g++.dg/cpp0x/fallthrough1.C
  fabf296040650b16fb1ee761285e2841  gcc/testsuite/g++.dg/cpp0x/fallthrough2.C
  d4e053aec4e8eb7313176419926ab588  gcc/testsuite/g++.dg/cpp0x/fntmp-equiv1.C
*************** aad6a8aa439f69c70399df4d9deb02bc  gcc/te
*** 16157,16163 ****
  04219a822fb4d2864e4d8f972e2e37e4  gcc/testsuite/g++.dg/cpp0x/forw_enum10.C
  2239f6a9c812e24f922b1e66f627e481  gcc/testsuite/g++.dg/cpp0x/forw_enum11.C
  f05e4f658ae1db4e8a9a44d160718471  gcc/testsuite/g++.dg/cpp0x/forw_enum12.C
! 9e09f62ad5729c4827814d5a06b19c09  gcc/testsuite/g++.dg/cpp0x/forw_enum13.C
  ad203ee3143fc82a9b5b3f4ac898c003  gcc/testsuite/g++.dg/cpp0x/forw_enum14.C
  cfb939d8de68b1ee21f8bee910a8ba08  gcc/testsuite/g++.dg/cpp0x/forw_enum15.C
  88ce88296a2ec531e4cd30c6840d0e0b  gcc/testsuite/g++.dg/cpp0x/forw_enum2.C
--- 17357,17363 ----
  04219a822fb4d2864e4d8f972e2e37e4  gcc/testsuite/g++.dg/cpp0x/forw_enum10.C
  2239f6a9c812e24f922b1e66f627e481  gcc/testsuite/g++.dg/cpp0x/forw_enum11.C
  f05e4f658ae1db4e8a9a44d160718471  gcc/testsuite/g++.dg/cpp0x/forw_enum12.C
! 825f401f710c9d9952614f3f8976b6a3  gcc/testsuite/g++.dg/cpp0x/forw_enum13.C
  ad203ee3143fc82a9b5b3f4ac898c003  gcc/testsuite/g++.dg/cpp0x/forw_enum14.C
  cfb939d8de68b1ee21f8bee910a8ba08  gcc/testsuite/g++.dg/cpp0x/forw_enum15.C
  88ce88296a2ec531e4cd30c6840d0e0b  gcc/testsuite/g++.dg/cpp0x/forw_enum2.C
*************** d4322d3a60ab9276cc1264c288db974f  gcc/te
*** 16176,16188 ****
  736bc36c391541a4cfc54f1e72d16923  gcc/testsuite/g++.dg/cpp0x/friend6.C
  e01f2e488294d133656e7be315b4b0b1  gcc/testsuite/g++.dg/cpp0x/friend7.C
  f9dd224cca108136fa4e5142a8eeadcb  gcc/testsuite/g++.dg/cpp0x/friend8.C
! 4ee6b098255abe7601f2a9f6bc71d637  gcc/testsuite/g++.dg/cpp0x/gen-attrs-1.C
  cb97cb3c29926aede38017aa01da015d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-10.C
! 7de2f3d73363a0558cd75484e381dcca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-11.C
  7de2f3d73363a0558cd75484e381dcca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-12.C
! 26cfeb86b211f4560fefec372d117218  gcc/testsuite/g++.dg/cpp0x/gen-attrs-13.C
  107767f67fc933bfee67c216bd7a8bc7  gcc/testsuite/g++.dg/cpp0x/gen-attrs-14.C
! 74244e62676b5bf2159f695b7a73f055  gcc/testsuite/g++.dg/cpp0x/gen-attrs-15.C
  aa97e3d1f293c6ba70681149783f1e75  gcc/testsuite/g++.dg/cpp0x/gen-attrs-16.C
  3d0e74994e5655dc1d4142a3c2938ea4  gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.2.C
  901e9aa464bf529bf9c59b30e0dcad05  gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.C
--- 17376,17388 ----
  736bc36c391541a4cfc54f1e72d16923  gcc/testsuite/g++.dg/cpp0x/friend6.C
  e01f2e488294d133656e7be315b4b0b1  gcc/testsuite/g++.dg/cpp0x/friend7.C
  f9dd224cca108136fa4e5142a8eeadcb  gcc/testsuite/g++.dg/cpp0x/friend8.C
! a7fd4e1c077a4e14752c8bb553c1dba1  gcc/testsuite/g++.dg/cpp0x/gen-attrs-1.C
  cb97cb3c29926aede38017aa01da015d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-10.C
! 941b859042b918347ca3ef0ed5805819  gcc/testsuite/g++.dg/cpp0x/gen-attrs-11.C
  7de2f3d73363a0558cd75484e381dcca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-12.C
! 564f01fc49ae4011f6163d8b1192683d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-13.C
  107767f67fc933bfee67c216bd7a8bc7  gcc/testsuite/g++.dg/cpp0x/gen-attrs-14.C
! 2f5ab688fb7b424cfe395d77044595a5  gcc/testsuite/g++.dg/cpp0x/gen-attrs-15.C
  aa97e3d1f293c6ba70681149783f1e75  gcc/testsuite/g++.dg/cpp0x/gen-attrs-16.C
  3d0e74994e5655dc1d4142a3c2938ea4  gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.2.C
  901e9aa464bf529bf9c59b30e0dcad05  gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.C
*************** b4ff1e96e1436f9ab9b0325baef556eb  gcc/te
*** 16204,16210 ****
  9d9a674c8c3f641dbe8bf237e8c06c75  gcc/testsuite/g++.dg/cpp0x/gen-attrs-30.C
  d464ffbe0c0287db991fc6854490c130  gcc/testsuite/g++.dg/cpp0x/gen-attrs-31.C
  40c67ccfef0cb87d376e264fb6122715  gcc/testsuite/g++.dg/cpp0x/gen-attrs-32.C
! 638cf5d68f2f7ee3d30f801d6ad34021  gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C
  21d78c5d17bae8f1b6bb73945dcd3902  gcc/testsuite/g++.dg/cpp0x/gen-attrs-34.C
  7d665bb78f74cfeda5c7489ccd367115  gcc/testsuite/g++.dg/cpp0x/gen-attrs-35.C
  bcd108fab23ce4022e3dec63114c9ff3  gcc/testsuite/g++.dg/cpp0x/gen-attrs-36-1.C
--- 17404,17410 ----
  9d9a674c8c3f641dbe8bf237e8c06c75  gcc/testsuite/g++.dg/cpp0x/gen-attrs-30.C
  d464ffbe0c0287db991fc6854490c130  gcc/testsuite/g++.dg/cpp0x/gen-attrs-31.C
  40c67ccfef0cb87d376e264fb6122715  gcc/testsuite/g++.dg/cpp0x/gen-attrs-32.C
! 8c36707f50cb42918853df8579bb67e6  gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C
  21d78c5d17bae8f1b6bb73945dcd3902  gcc/testsuite/g++.dg/cpp0x/gen-attrs-34.C
  7d665bb78f74cfeda5c7489ccd367115  gcc/testsuite/g++.dg/cpp0x/gen-attrs-35.C
  bcd108fab23ce4022e3dec63114c9ff3  gcc/testsuite/g++.dg/cpp0x/gen-attrs-36-1.C
*************** bc43ce97e9bc5daf3503a6eb18b5f526  gcc/te
*** 16237,16243 ****
  0b245fbb9cc3ac28a40dc6e149c159ec  gcc/testsuite/g++.dg/cpp0x/gen-attrs-57.C
  5b573ee365932b792233053ff892427d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-58.C
  11bdda69623f08f0fc5831cca0c878f9  gcc/testsuite/g++.dg/cpp0x/gen-attrs-59.C
! d1722efa262e03d4b29a04648feeaa80  gcc/testsuite/g++.dg/cpp0x/gen-attrs-6.C
  c39b7a651d41ae8206e4121d2a561994  gcc/testsuite/g++.dg/cpp0x/gen-attrs-60.C
  7b0e99b02e7789690f20d9d1114188d0  gcc/testsuite/g++.dg/cpp0x/gen-attrs-61.C
  b151953ee723cc3bd3afc60e2ad0e6ad  gcc/testsuite/g++.dg/cpp0x/gen-attrs-62.C
--- 17437,17443 ----
  0b245fbb9cc3ac28a40dc6e149c159ec  gcc/testsuite/g++.dg/cpp0x/gen-attrs-57.C
  5b573ee365932b792233053ff892427d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-58.C
  11bdda69623f08f0fc5831cca0c878f9  gcc/testsuite/g++.dg/cpp0x/gen-attrs-59.C
! 2f30df3e1a3fc12d374bc3059434ccb8  gcc/testsuite/g++.dg/cpp0x/gen-attrs-6.C
  c39b7a651d41ae8206e4121d2a561994  gcc/testsuite/g++.dg/cpp0x/gen-attrs-60.C
  7b0e99b02e7789690f20d9d1114188d0  gcc/testsuite/g++.dg/cpp0x/gen-attrs-61.C
  b151953ee723cc3bd3afc60e2ad0e6ad  gcc/testsuite/g++.dg/cpp0x/gen-attrs-62.C
*************** f55fa66c82d267feca5db82dc835210a  gcc/te
*** 16254,16268 ****
  47cf728d336aa8b06ee1ae9e0421fa73  gcc/testsuite/g++.dg/cpp0x/gen-attrs-72.C
  d7e6d19983fefaaf3bad930060d8d107  gcc/testsuite/g++.dg/cpp0x/gen-attrs-73.C
  b0ab6438c410f443c2791a7956a155dd  gcc/testsuite/g++.dg/cpp0x/gen-attrs-74.C
! 9cfea1f1343dd1303bdb11adb1fa60b4  gcc/testsuite/g++.dg/cpp0x/gen-attrs-75.C
  40583ff2478c6bb2774a2c29c784a097  gcc/testsuite/g++.dg/cpp0x/gen-attrs-76.C
  4333101736491e8179281e3c1c537783  gcc/testsuite/g++.dg/cpp0x/gen-attrs-77.C
  e38875ddde2687b4139330d97e0edf9f  gcc/testsuite/g++.dg/cpp0x/gen-attrs-78.C
  46b8282b71afcc8c97c1b1c6c4666202  gcc/testsuite/g++.dg/cpp0x/gen-attrs-79.C
  29ab98a7b8d445bb51e5069dd98f7cca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
! 40caf35e131e99903b76e36f0e04b2a9  gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C
! 2e2788f974b88f56ceecc2b764d701db  gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C
  3e88c6e173fd3bd44055c2202907f7e1  gcc/testsuite/g++.dg/cpp0x/hog1.C
  9efada2e8cbcac32c0257fef01bf08a7  gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
  3578196fe1bb12cfd012b620ad899751  gcc/testsuite/g++.dg/cpp0x/implicit-delete1.C
--- 17454,17477 ----
  47cf728d336aa8b06ee1ae9e0421fa73  gcc/testsuite/g++.dg/cpp0x/gen-attrs-72.C
  d7e6d19983fefaaf3bad930060d8d107  gcc/testsuite/g++.dg/cpp0x/gen-attrs-73.C
  b0ab6438c410f443c2791a7956a155dd  gcc/testsuite/g++.dg/cpp0x/gen-attrs-74.C
! 1c5e4301b0618c2569969944149d5e2b  gcc/testsuite/g++.dg/cpp0x/gen-attrs-75.C
  40583ff2478c6bb2774a2c29c784a097  gcc/testsuite/g++.dg/cpp0x/gen-attrs-76.C
  4333101736491e8179281e3c1c537783  gcc/testsuite/g++.dg/cpp0x/gen-attrs-77.C
  e38875ddde2687b4139330d97e0edf9f  gcc/testsuite/g++.dg/cpp0x/gen-attrs-78.C
  46b8282b71afcc8c97c1b1c6c4666202  gcc/testsuite/g++.dg/cpp0x/gen-attrs-79.C
  29ab98a7b8d445bb51e5069dd98f7cca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C
+ 4858f37257b6c2cd02e0c1b35cd96a38  gcc/testsuite/g++.dg/cpp0x/gen-attrs-80.C
+ 5d42266970a468c271fd943add48a4ba  gcc/testsuite/g++.dg/cpp0x/gen-attrs-81.C
+ 1314cba2a321e6812dca9d74a5696955  gcc/testsuite/g++.dg/cpp0x/gen-attrs-82.C
+ c82585e1f78689d72ecd7ade6b5aeeb1  gcc/testsuite/g++.dg/cpp0x/gen-attrs-83.C
+ 2b2c06189b3fba6ea0220d5f6b741f49  gcc/testsuite/g++.dg/cpp0x/gen-attrs-84.C
+ 613bc5ccbb6889d780934e211a9ae5e6  gcc/testsuite/g++.dg/cpp0x/gen-attrs-85.C
+ 493eb788170e4254e85e5d4a9a75cb3d  gcc/testsuite/g++.dg/cpp0x/gen-attrs-86.C
+ e85d058a14211dcf2d4a869c0624ffae  gcc/testsuite/g++.dg/cpp0x/gen-attrs-87.C
+ 05a54074cd4251e2ff93c14d568fc89b  gcc/testsuite/g++.dg/cpp0x/gen-attrs-88.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
! 6555e6ec4bda3f0ea419f63e98af0a80  gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C
! 72a234ce75f2f8ec7fd9f0edfc628c19  gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C
  3e88c6e173fd3bd44055c2202907f7e1  gcc/testsuite/g++.dg/cpp0x/hog1.C
  9efada2e8cbcac32c0257fef01bf08a7  gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
  3578196fe1bb12cfd012b620ad899751  gcc/testsuite/g++.dg/cpp0x/implicit-delete1.C
*************** e81473abf06cde0a1694e5af550d221d  gcc/te
*** 16340,16345 ****
--- 17549,17556 ----
  71bdadeb13f30ad3b4398856ca3f01b3  gcc/testsuite/g++.dg/cpp0x/initlist-array20.C
  d3992440eed37bacf3c1b2c2075afeca  gcc/testsuite/g++.dg/cpp0x/initlist-array21.C
  25f21baa02838e20e7b1cb692e279e2f  gcc/testsuite/g++.dg/cpp0x/initlist-array22.C
+ b8d0d7227f1835ae94108da2b2b1d06d  gcc/testsuite/g++.dg/cpp0x/initlist-array23.C
+ 4812e08c472dcdea2ca5a5c09dd6d4fc  gcc/testsuite/g++.dg/cpp0x/initlist-array24.C
  8c888f7ab5cc44480801a14718225380  gcc/testsuite/g++.dg/cpp0x/initlist-array3.C
  6c1907913d332611dd16d03002d759f9  gcc/testsuite/g++.dg/cpp0x/initlist-array4.C
  8758d8464674d29f4276f8d3ebc899c3  gcc/testsuite/g++.dg/cpp0x/initlist-array5.C
*************** be08dc99a94b7b3278c8c66a5274c415  gcc/te
*** 16364,16369 ****
--- 17575,17583 ----
  f469aff688f1646a6d5c53c47c8a27dc  gcc/testsuite/g++.dg/cpp0x/initlist-defarg3.C
  7f34f94c8b3b4fffe98a24b8ebadd5f6  gcc/testsuite/g++.dg/cpp0x/initlist-dr1518.C
  9c4db9fdf51fd774a5ec5e30dd17a631  gcc/testsuite/g++.dg/cpp0x/initlist-eh1.C
+ 4a3d08195af14eab37eabf5465a113f7  gcc/testsuite/g++.dg/cpp0x/initlist-err1.C
+ 560f8b92140784fbc1e25228fb4cf5ea  gcc/testsuite/g++.dg/cpp0x/initlist-err2.C
+ 754ee614141f4d52c85e062b19c16988  gcc/testsuite/g++.dg/cpp0x/initlist-err3.C
  f61f621dcd5efc7adaf806419bd64a07  gcc/testsuite/g++.dg/cpp0x/initlist-explicit-sfinae.C
  f001f383104d84fe6269354c225ca1ec  gcc/testsuite/g++.dg/cpp0x/initlist-explicit1.C
  f8949630a7a02f66d0ceb796b5525cb8  gcc/testsuite/g++.dg/cpp0x/initlist-explicit2.C
*************** c7426143406ef7a62dfbbb6b6ef974ca  gcc/te
*** 16379,16385 ****
  eb8899f6095da627d668fbc099e59316  gcc/testsuite/g++.dg/cpp0x/initlist-new6.C
  99344f656bc7edb059f04cde31dcaa17  gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C
  bcbe398391cda8139c8462f46935b7e2  gcc/testsuite/g++.dg/cpp0x/initlist-opt.C
! 17758d1e1b79cbbb897a8920f4d44cca  gcc/testsuite/g++.dg/cpp0x/initlist-opt1.C
  e572423dbc63856346f68c0f83dab54a  gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C
  a054a7d4e96233b7a3a6591843a8d33f  gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C
  dbae3b7057bbb77c75bce2ef15965ac1  gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C
--- 17593,17605 ----
  eb8899f6095da627d668fbc099e59316  gcc/testsuite/g++.dg/cpp0x/initlist-new6.C
  99344f656bc7edb059f04cde31dcaa17  gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C
  bcbe398391cda8139c8462f46935b7e2  gcc/testsuite/g++.dg/cpp0x/initlist-opt.C
! 0acb1685400f02fbe007454ac83b3db6  gcc/testsuite/g++.dg/cpp0x/initlist-opt1.C
! ecb34d3dfd556525e4e30ffe754be4f4  gcc/testsuite/g++.dg/cpp0x/initlist-opt2.C
! 6975111ebf136e6eee62eff567a1fe7a  gcc/testsuite/g++.dg/cpp0x/initlist-opt3.C
! 45012b37f3f4455d1a5d556d2fbda778  gcc/testsuite/g++.dg/cpp0x/initlist-opt4.C
! ae2d6654fdf2df5202b8fb3d9deb1a5e  gcc/testsuite/g++.dg/cpp0x/initlist-opt5.C
! bf26ed49be83d47fce3230e9968681bb  gcc/testsuite/g++.dg/cpp0x/initlist-opt6.C
! ac3fd6afe641b91802174e24bdc7eac2  gcc/testsuite/g++.dg/cpp0x/initlist-opt7.C
  e572423dbc63856346f68c0f83dab54a  gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C
  a054a7d4e96233b7a3a6591843a8d33f  gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C
  dbae3b7057bbb77c75bce2ef15965ac1  gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C
*************** fab23eb9efdcf1b8c0f8393aa5ad7913  gcc/te
*** 16400,16406 ****
  852f3923a21c10d08b8fe1877de6f216  gcc/testsuite/g++.dg/cpp0x/initlist-value3.C
  0597c71749163f9727f9bfc6f5ddd548  gcc/testsuite/g++.dg/cpp0x/initlist-value4.C
  93763afe3eb7edb5553f76daf0ed0de3  gcc/testsuite/g++.dg/cpp0x/initlist-vect.C
! 72e0844bf4443787fe9b82aa10ad9c44  gcc/testsuite/g++.dg/cpp0x/initlist-vect2.C
  bc81668e2b4c77a6a8c52350eb5f9bc7  gcc/testsuite/g++.dg/cpp0x/initlist1.C
  56eb446b9a79a3e01433eed6090a0b6d  gcc/testsuite/g++.dg/cpp0x/initlist10.C
  d73148d814c47732990b896f4ecdf212  gcc/testsuite/g++.dg/cpp0x/initlist100.C
--- 17620,17626 ----
  852f3923a21c10d08b8fe1877de6f216  gcc/testsuite/g++.dg/cpp0x/initlist-value3.C
  0597c71749163f9727f9bfc6f5ddd548  gcc/testsuite/g++.dg/cpp0x/initlist-value4.C
  93763afe3eb7edb5553f76daf0ed0de3  gcc/testsuite/g++.dg/cpp0x/initlist-vect.C
! 7f7ef067e4f91077ffd6234d07cf8eaf  gcc/testsuite/g++.dg/cpp0x/initlist-vect2.C
  bc81668e2b4c77a6a8c52350eb5f9bc7  gcc/testsuite/g++.dg/cpp0x/initlist1.C
  56eb446b9a79a3e01433eed6090a0b6d  gcc/testsuite/g++.dg/cpp0x/initlist10.C
  d73148d814c47732990b896f4ecdf212  gcc/testsuite/g++.dg/cpp0x/initlist100.C
*************** fe1759287ef65bc9b64a45ce0e53055f  gcc/te
*** 16435,16447 ****
  0cf4db6ce0293c03e6d931e481231301  gcc/testsuite/g++.dg/cpp0x/initlist127.C
  5fb0b35772deba539e69a7869f4312df  gcc/testsuite/g++.dg/cpp0x/initlist128.C
  427ec04d095e40d4e721a366c58d12a9  gcc/testsuite/g++.dg/cpp0x/initlist129.C
! a5e64985a46db12492fa03d5e7dfd347  gcc/testsuite/g++.dg/cpp0x/initlist13.C
  27487438faea4eb30c16f4edf880a9d6  gcc/testsuite/g++.dg/cpp0x/initlist130.C
  c6b59c677bcd1cbdf89e61c5ca831e50  gcc/testsuite/g++.dg/cpp0x/initlist131.C
  f9c9bfbb17863359c1717c757bee25f5  gcc/testsuite/g++.dg/cpp0x/initlist132.C
  6e1221359009ba7551396f68f40ffd89  gcc/testsuite/g++.dg/cpp0x/initlist133.C
  3071307e831ae441c218cbab9dbc1d8f  gcc/testsuite/g++.dg/cpp0x/initlist14.C
! 803cc72c140b1d53ee7a3e50e344d414  gcc/testsuite/g++.dg/cpp0x/initlist15.C
  0cbd5b9635cd71f3d6738db34fe5f5b4  gcc/testsuite/g++.dg/cpp0x/initlist16.C
  a2de6d6fef707d6426afbc2fa06fc026  gcc/testsuite/g++.dg/cpp0x/initlist17.C
  623523766fe125b2dc3781976daf5ac9  gcc/testsuite/g++.dg/cpp0x/initlist18.C
--- 17655,17667 ----
  0cf4db6ce0293c03e6d931e481231301  gcc/testsuite/g++.dg/cpp0x/initlist127.C
  5fb0b35772deba539e69a7869f4312df  gcc/testsuite/g++.dg/cpp0x/initlist128.C
  427ec04d095e40d4e721a366c58d12a9  gcc/testsuite/g++.dg/cpp0x/initlist129.C
! 04b7bc63a08373ce557791890b545a1d  gcc/testsuite/g++.dg/cpp0x/initlist13.C
  27487438faea4eb30c16f4edf880a9d6  gcc/testsuite/g++.dg/cpp0x/initlist130.C
  c6b59c677bcd1cbdf89e61c5ca831e50  gcc/testsuite/g++.dg/cpp0x/initlist131.C
  f9c9bfbb17863359c1717c757bee25f5  gcc/testsuite/g++.dg/cpp0x/initlist132.C
  6e1221359009ba7551396f68f40ffd89  gcc/testsuite/g++.dg/cpp0x/initlist133.C
  3071307e831ae441c218cbab9dbc1d8f  gcc/testsuite/g++.dg/cpp0x/initlist14.C
! 7ba041ddd330ff5d7acc95724e263141  gcc/testsuite/g++.dg/cpp0x/initlist15.C
  0cbd5b9635cd71f3d6738db34fe5f5b4  gcc/testsuite/g++.dg/cpp0x/initlist16.C
  a2de6d6fef707d6426afbc2fa06fc026  gcc/testsuite/g++.dg/cpp0x/initlist17.C
  623523766fe125b2dc3781976daf5ac9  gcc/testsuite/g++.dg/cpp0x/initlist18.C
*************** cca8f0f32efd7aaaf7b91296cf791904  gcc/te
*** 16452,16458 ****
  14c3540aa98f89390f2b8b7ed3442917  gcc/testsuite/g++.dg/cpp0x/initlist22.C
  64364ea12acb4240adbd595c64451aad  gcc/testsuite/g++.dg/cpp0x/initlist23.C
  ab7e6d43c7b15b554e82bf9c1cb322da  gcc/testsuite/g++.dg/cpp0x/initlist24.C
! e9d4087118231da3d279e1d516576092  gcc/testsuite/g++.dg/cpp0x/initlist25.C
  790f2567a3f4ee757eebea15eadb2fee  gcc/testsuite/g++.dg/cpp0x/initlist26.C
  a91da33ee84c2ea78d5b6401d75d528e  gcc/testsuite/g++.dg/cpp0x/initlist27.C
  289479e3cf59a28a7d9e0d3163e1cad5  gcc/testsuite/g++.dg/cpp0x/initlist28.C
--- 17672,17678 ----
  14c3540aa98f89390f2b8b7ed3442917  gcc/testsuite/g++.dg/cpp0x/initlist22.C
  64364ea12acb4240adbd595c64451aad  gcc/testsuite/g++.dg/cpp0x/initlist23.C
  ab7e6d43c7b15b554e82bf9c1cb322da  gcc/testsuite/g++.dg/cpp0x/initlist24.C
! 166d1a0b85c1ec46ec4cc50cc6099ff7  gcc/testsuite/g++.dg/cpp0x/initlist25.C
  790f2567a3f4ee757eebea15eadb2fee  gcc/testsuite/g++.dg/cpp0x/initlist26.C
  a91da33ee84c2ea78d5b6401d75d528e  gcc/testsuite/g++.dg/cpp0x/initlist27.C
  289479e3cf59a28a7d9e0d3163e1cad5  gcc/testsuite/g++.dg/cpp0x/initlist28.C
*************** f3fac88e7a8455137c0751872cb1eb16  gcc/te
*** 16484,16490 ****
  abd2d26d4b777b0c8e12c00766e69a53  gcc/testsuite/g++.dg/cpp0x/initlist51.C
  e1a1ac5d906a6e7358e62d1a8a2ff538  gcc/testsuite/g++.dg/cpp0x/initlist52.C
  5ea7fac5f64593df1c05fa9edb561d6f  gcc/testsuite/g++.dg/cpp0x/initlist53.C
! 3385dd64d1f5429e3ecd215344d5f025  gcc/testsuite/g++.dg/cpp0x/initlist54.C
  7502bae90e2a391c338528fa946a6e37  gcc/testsuite/g++.dg/cpp0x/initlist55.C
  ef6999b241e253a1b3dfd73e5d27940e  gcc/testsuite/g++.dg/cpp0x/initlist56.C
  6396615302ed7c52c80c96234e710ca9  gcc/testsuite/g++.dg/cpp0x/initlist57.C
--- 17704,17710 ----
  abd2d26d4b777b0c8e12c00766e69a53  gcc/testsuite/g++.dg/cpp0x/initlist51.C
  e1a1ac5d906a6e7358e62d1a8a2ff538  gcc/testsuite/g++.dg/cpp0x/initlist52.C
  5ea7fac5f64593df1c05fa9edb561d6f  gcc/testsuite/g++.dg/cpp0x/initlist53.C
! 7b6cf26b3c3c7d818bf1b105cf74666d  gcc/testsuite/g++.dg/cpp0x/initlist54.C
  7502bae90e2a391c338528fa946a6e37  gcc/testsuite/g++.dg/cpp0x/initlist55.C
  ef6999b241e253a1b3dfd73e5d27940e  gcc/testsuite/g++.dg/cpp0x/initlist56.C
  6396615302ed7c52c80c96234e710ca9  gcc/testsuite/g++.dg/cpp0x/initlist57.C
*************** bd9a289d0125621da4bc499b31e3f4dc  gcc/te
*** 16525,16531 ****
  9b12d77819d15cca867962c6c284d597  gcc/testsuite/g++.dg/cpp0x/initlist9.C
  8ac4b7fda1afbabe884fb435e50058e7  gcc/testsuite/g++.dg/cpp0x/initlist90.C
  2246fe95f3db3abaf2aef16782aad4aa  gcc/testsuite/g++.dg/cpp0x/initlist91.C
! 2735af816e973a5554481f3793ff77ad  gcc/testsuite/g++.dg/cpp0x/initlist92.C
  cf8755fd15f43cbec418f59193dc9a93  gcc/testsuite/g++.dg/cpp0x/initlist93.C
  45d64991bc424279411d7f51c978e541  gcc/testsuite/g++.dg/cpp0x/initlist94.C
  c27ca98c8a89c6bae88c1f75ab92d8f2  gcc/testsuite/g++.dg/cpp0x/initlist95.C
--- 17745,17751 ----
  9b12d77819d15cca867962c6c284d597  gcc/testsuite/g++.dg/cpp0x/initlist9.C
  8ac4b7fda1afbabe884fb435e50058e7  gcc/testsuite/g++.dg/cpp0x/initlist90.C
  2246fe95f3db3abaf2aef16782aad4aa  gcc/testsuite/g++.dg/cpp0x/initlist91.C
! 624e24775cec6073550c949d9e4b0732  gcc/testsuite/g++.dg/cpp0x/initlist92.C
  cf8755fd15f43cbec418f59193dc9a93  gcc/testsuite/g++.dg/cpp0x/initlist93.C
  45d64991bc424279411d7f51c978e541  gcc/testsuite/g++.dg/cpp0x/initlist94.C
  c27ca98c8a89c6bae88c1f75ab92d8f2  gcc/testsuite/g++.dg/cpp0x/initlist95.C
*************** dd5a1d8825301f34c70b68766377b76d  gcc/te
*** 16571,16576 ****
--- 17791,17797 ----
  d9b3b9597d3bf51088b71abd8f440104  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-98.C
  220829872340dbf04070c457af860d3c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__.C
  101b0e2a29835d3f460096703091da25  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__2.C
+ d5573134f3ed8e48511793d733f40a70  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__3.C
  46f5a9dec4bdc823522c87c8ca95eac2  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-alias1.C
  c8bb19b0550505147cc17a59ca8b2c5e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-anon1.C
  58b59294830585a10b1de809f94ebe59  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C
*************** de587add0ca42e32537302826d4176cd  gcc/te
*** 16583,16601 ****
  187afac210e9e3812bc885dc82b852c9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto1.C
  c6b435df2e057f17565b118504b3c651  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto2.C
  c5dc01d7b5c6d100481180d9a0f8ce62  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C
! cd0880983dc32cb469f470728ae8b22b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C
! 02227477a33ea3dd52eb99ed93d89ca7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C
  713beed8c11f2a617eb961a3f4b5fee1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-neg.C
  5daa5ce8205d71991f60575fd7e83dd4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-redundancy.C
  15981f001a14c3bb6bb126912c9383e1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-cast1.C
! 22fc25fa709265abbae77ff5d72e72f8  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C
  8fc3ab70c2058568fbe8578145b021ae  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
! 1d85414b94d2d104004fc7341b90a896  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C
  26a3a7d7fa8662de4df1454d0f3eea85  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const10.C
  692c149205d32e7263c8778ba131c9dc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C
  99ebbe9d836593c488474457d9b14620  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C
  64bc761abc3783521fdfb26f930f3410  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C
! e513b4dcc45e6063745c03c7c99151fa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C
  1ced7b3231f38cc9948cc247893ffec1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const4.C
  fc87adf1aa8763a35e80b1067faf9948  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const5.C
  f130e737443b7a01f91ec2fe01f62eff  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const6.C
--- 17804,17822 ----
  187afac210e9e3812bc885dc82b852c9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto1.C
  c6b435df2e057f17565b118504b3c651  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto2.C
  c5dc01d7b5c6d100481180d9a0f8ce62  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C
! 0feefb81d3b8ff04ef6e1b7d8b00dc1e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C
! 2370c54c2c8d7c5b871c46f9b7afa4ef  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C
  713beed8c11f2a617eb961a3f4b5fee1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-neg.C
  5daa5ce8205d71991f60575fd7e83dd4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-redundancy.C
  15981f001a14c3bb6bb126912c9383e1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-cast1.C
! 6afed746324281835aaf6a1b7be64ed4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C
  8fc3ab70c2058568fbe8578145b021ae  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
! ec931fac17f763f1bc84069e03ca53fa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C
  26a3a7d7fa8662de4df1454d0f3eea85  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const10.C
  692c149205d32e7263c8778ba131c9dc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C
  99ebbe9d836593c488474457d9b14620  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C
  64bc761abc3783521fdfb26f930f3410  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C
! 4ab1af5d985b8826bae1c4a9b6996605  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C
  1ced7b3231f38cc9948cc247893ffec1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const4.C
  fc87adf1aa8763a35e80b1067faf9948  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const5.C
  f130e737443b7a01f91ec2fe01f62eff  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const6.C
*************** bdc5867e3c1505d114f4c7cb6fa3b596  gcc/te
*** 16634,16640 ****
  9a9463ed3486e89b0432bdba5e217c4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
  e0fcc12ea86ca07e002f0dd4599d71b4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
  9edc8f5532794fc604ffd377c6d84b82  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C
! 09786f33b21f73e03794802f7bd62377  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C
  4c785ed910596fbd5f6219990b7e64e7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C
  d6d48de10340b22d46f7610d0d311ac9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce3.C
  ed0e57a851ca002b92664b37ce17502b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
--- 17855,17861 ----
  9a9463ed3486e89b0432bdba5e217c4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
  e0fcc12ea86ca07e002f0dd4599d71b4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
  9edc8f5532794fc604ffd377c6d84b82  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C
! 688c5d2783f2abf92fbf8eae1abb3391  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C
  4c785ed910596fbd5f6219990b7e64e7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C
  d6d48de10340b22d46f7610d0d311ac9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce3.C
  ed0e57a851ca002b92664b37ce17502b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
*************** c9399095e908bfb2c338755b0557db76  gcc/te
*** 16692,16699 ****
  84fb395ea0ce708429d5e46ad6a040b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C
  60560b2d57aa4869d76f15699e0c0e71  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice8.C
  8ab4398dfd6ff99c01d2cfea4b66d1fd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice9.C
! fe3bdf7ecef8deed6be35da04882a881  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C
! 0c55d4764b9d8f74d678da2aed357fbb  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C
  34b588eafeb7fbfde4cb23b913bf47b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist1.C
  5bdf6cd7650988d6462347629c7424df  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C
  f33b3ea62d84fcfc133c8244474d4e53  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist3.C
--- 17913,17920 ----
  84fb395ea0ce708429d5e46ad6a040b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C
  60560b2d57aa4869d76f15699e0c0e71  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice8.C
  8ab4398dfd6ff99c01d2cfea4b66d1fd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice9.C
! 7956fd65080af99913944d3269287a34  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C
! 53d73d5a34397be0dea319364e81f98d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C
  34b588eafeb7fbfde4cb23b913bf47b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist1.C
  5bdf6cd7650988d6462347629c7424df  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C
  f33b3ea62d84fcfc133c8244474d4e53  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist3.C
*************** bc4834e829a567ab458b88513efb0adc  gcc/te
*** 16707,16717 ****
  fd4bc46fcec54561fe0bc8e8acbf6434  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle5.C
  6240609c482a5a29a2e64e03e50d440c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle6.C
  bf6de34fde3b86e66f228a0e102a2767  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle7.C
! eeae91bf7da7535c64375c8b6e2ad746  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C
! 3292c801823c4c4aa6fe6e560dd10624  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C
  ed3cffe55f643c172f1955fc59175de2  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C
  13ea6602fce9f939217197c80120c4fd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C
! 0fbe4d111b33c33a5fc7aceb8473746c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C
  c2e13e2fd32e6c9b78dd012726df223a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C
  404693fec002449e01019ebc66a762f7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested3.C
  b4ee4e860077c15b5f446a344ee80eb1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested4.C
--- 17928,17939 ----
  fd4bc46fcec54561fe0bc8e8acbf6434  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle5.C
  6240609c482a5a29a2e64e03e50d440c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle6.C
  bf6de34fde3b86e66f228a0e102a2767  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle7.C
! 86a7390082c9fca88b62f95c3eac6403  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C
! 440a0b5130b281439097e1418b085a2e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C
  ed3cffe55f643c172f1955fc59175de2  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C
  13ea6602fce9f939217197c80120c4fd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C
! 277d3a5092b870944f1d2bb2e148fca1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C
! 1feb9b1338acba6137f69db800d2c84d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested10.C
  c2e13e2fd32e6c9b78dd012726df223a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C
  404693fec002449e01019ebc66a762f7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested3.C
  b4ee4e860077c15b5f446a344ee80eb1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested4.C
*************** b4ee4e860077c15b5f446a344ee80eb1  gcc/te
*** 16721,16729 ****
  39c02f2dc9c62660fbcbb8626a08e194  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested8.C
  549065376847c792966d6df2dbb610c3  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested9.C
  74a6ccc39520b83c4e5f20b47deae002  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested9a.C
! 473ec19f81d0003cf47717bbb9c67549  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C
  13b04ea49dab2a7467a572aa0ce6de66  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-local.C
! fc0cbc487d6a1b6d02de8cbeb0f06f70  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C
  45c8811455b2ff67d0b834d61c336d54  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C
  a50b2f4594cb996e8a25dfe3e8da9a93  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C
  b8cb4ea322362f9ce500dbe9e1e567dd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C
--- 17943,17951 ----
  39c02f2dc9c62660fbcbb8626a08e194  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested8.C
  549065376847c792966d6df2dbb610c3  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested9.C
  74a6ccc39520b83c4e5f20b47deae002  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested9a.C
! aa34c13ad038ae7a50201f105178c836  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C
  13b04ea49dab2a7467a572aa0ce6de66  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-local.C
! 70750c1e2b61ad219af46a9b70fdaf4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C
  45c8811455b2ff67d0b834d61c336d54  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C
  a50b2f4594cb996e8a25dfe3e8da9a93  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C
  b8cb4ea322362f9ce500dbe9e1e567dd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C
*************** ca45ca9d8a4655eee0db3216e32b0aa0  gcc/te
*** 16736,16755 ****
  eb2276f9d1b9a9784472833cd48eeadc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi7.C
  46bfbcea70f3b0f449e970a3f83b69aa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi8.C
  44734208c0e6db46e8b1c46e4ef5dbcd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi9.C
! d99567b8456dc927600ebf819b5a5619  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C
! 8ce61ab8af52090769c40889bd8cdc23  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C
  44fde19ba94c21c85d066294323940c1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C
! 8431be43cec46fd821ea1f42c03098a0  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C
! 1bb60de2eaf34098574b3eed6dd2f5cc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C
! 2df17a76c0fdca2825eaa8de957320d8  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C
  cd133675ffbc6460b5d974d9620d59d5  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref2.C
  8c20100753c25aa9b1b9e7bf49794a6f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-rep1.C
! 1513e36e6bd3517091ebe8591db0f6a9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C
  8055bd5b6e44c886ec71c0ed52b4451c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C
  b91279d49de21edd13a5e72ad91a5008  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow1.C
  63aa45acf8523f89e051425dc0837732  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C
  e81e4a7747008a7958f1b544db0eea2f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow3.C
! adb1d2fb2d918c692d644ded0dc5f428  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C
  b8cc2b4775f53161af6fb5ad8dd9aec9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-stmtexpr1.C
  b5a8c7f6bf983d4b8cd194d08c08cd65  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C
  86e977ceaeb59c6acfa35d4a54405c92  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch2.C
--- 17958,17977 ----
  eb2276f9d1b9a9784472833cd48eeadc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi7.C
  46bfbcea70f3b0f449e970a3f83b69aa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi8.C
  44734208c0e6db46e8b1c46e4ef5dbcd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi9.C
! 6ecf937d7c43db5a83cf0074e7afa975  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C
! 33a2222e4c4783b21611884d91218939  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C
  44fde19ba94c21c85d066294323940c1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C
! 6d4fc41bea985f61aae236c834cfe0bf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C
! 292fedf73879dbf98cc33aee0028affb  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C
! 7dc3056938015ca751628b8b803f91cc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C
  cd133675ffbc6460b5d974d9620d59d5  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref2.C
  8c20100753c25aa9b1b9e7bf49794a6f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-rep1.C
! e01ca0b9a350018e38ca6f09cb7cd8b2  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C
  8055bd5b6e44c886ec71c0ed52b4451c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C
  b91279d49de21edd13a5e72ad91a5008  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow1.C
  63aa45acf8523f89e051425dc0837732  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C
  e81e4a7747008a7958f1b544db0eea2f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow3.C
! 0d6e8eb224ed7e4f0dce5390d2328b7d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C
  b8cc2b4775f53161af6fb5ad8dd9aec9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-stmtexpr1.C
  b5a8c7f6bf983d4b8cd194d08c08cd65  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C
  86e977ceaeb59c6acfa35d4a54405c92  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch2.C
*************** d4a7c0282d34c2c497a49bad70439414  gcc/te
*** 16791,16797 ****
  a1527f0e0a6049284f314faba2a6a27f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this5.C
  60042677ca67131a130d77a6c34d9312  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this6.C
  f517f4e864565aedb390c060b12d8cf1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this7.C
! 893e8b015051297fbd8274b54a45fbaf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C
  147e7a8a96d4de0dcf45268532a86f48  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C
  bb6feb4793b61fdd7abfa89b1284d0ab  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C
  01cb4165f4e2e6762ae855b2e22d8be1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-typedef.C
--- 18013,18019 ----
  a1527f0e0a6049284f314faba2a6a27f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this5.C
  60042677ca67131a130d77a6c34d9312  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this6.C
  f517f4e864565aedb390c060b12d8cf1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this7.C
! 3a599cf0fd14465c3bb43680a9255703  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C
  147e7a8a96d4de0dcf45268532a86f48  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C
  bb6feb4793b61fdd7abfa89b1284d0ab  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C
  01cb4165f4e2e6762ae855b2e22d8be1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-typedef.C
*************** a0e44dc1e8f11505922ef4ad50fc35c3  gcc/te
*** 16895,16901 ****
  b1b3cc04dfcf6553ada859f39dcd345e  gcc/testsuite/g++.dg/cpp0x/noexcept38.C
  6dea5db6ed875362a151c9280769adf1  gcc/testsuite/g++.dg/cpp0x/noexcept39.C
  00ee786b468862b3011b43aa447d4e52  gcc/testsuite/g++.dg/cpp0x/noexcept40.C
! db5f43bf1e7ce7b752d863b6173f4f2f  gcc/testsuite/g++.dg/cpp0x/noexcept41.C
  caef6a4f22b57a3e4218730257cba466  gcc/testsuite/g++.dg/cpp0x/noexcept42.C
  96ae9b41bef770486b5d1a4c340ceb4b  gcc/testsuite/g++.dg/cpp0x/noexcept43.C
  46018fc866e15f240cbaddd67c30c1ca  gcc/testsuite/g++.dg/cpp0x/noexcept44.C
--- 18117,18123 ----
  b1b3cc04dfcf6553ada859f39dcd345e  gcc/testsuite/g++.dg/cpp0x/noexcept38.C
  6dea5db6ed875362a151c9280769adf1  gcc/testsuite/g++.dg/cpp0x/noexcept39.C
  00ee786b468862b3011b43aa447d4e52  gcc/testsuite/g++.dg/cpp0x/noexcept40.C
! 8740922e4e5c5c6c0d18680b97eb9434  gcc/testsuite/g++.dg/cpp0x/noexcept41.C
  caef6a4f22b57a3e4218730257cba466  gcc/testsuite/g++.dg/cpp0x/noexcept42.C
  96ae9b41bef770486b5d1a4c340ceb4b  gcc/testsuite/g++.dg/cpp0x/noexcept43.C
  46018fc866e15f240cbaddd67c30c1ca  gcc/testsuite/g++.dg/cpp0x/noexcept44.C
*************** e944a760f2bcd206b36820c53e03b241  gcc/te
*** 16942,16947 ****
--- 18164,18173 ----
  4396d9cdc2190733e37f41a49051fa92  gcc/testsuite/g++.dg/cpp0x/noexcept84.C
  50112d50509a2d89fff4b693d5850d5d  gcc/testsuite/g++.dg/cpp0x/noexcept85.C
  342bc0f796cebda7581bc83a6c991fb7  gcc/testsuite/g++.dg/cpp0x/noexcept86.C
+ 5e7b582a578fab779f3a75da5c317884  gcc/testsuite/g++.dg/cpp0x/noexcept87.C
+ 573ad180b4337eb14688fd7c74cdeccc  gcc/testsuite/g++.dg/cpp0x/noexcept88.C
+ 6920aaae5ff91adaae9f973d58b99fd0  gcc/testsuite/g++.dg/cpp0x/noexcept89.C
+ 01fdf9b25aed01336395f7314f3b5857  gcc/testsuite/g++.dg/cpp0x/noexcept90.C
  3bf83ccb654cedbb57a45851fb14aa9d  gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
  6b7c91b931bbdacbbffbf9b90a79bc6a  gcc/testsuite/g++.dg/cpp0x/nolinkage1.h
  c92e0eda44dd6b3d74960b249fa5204f  gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
*************** cdc2dd8446367df53617b11c9a86394a  gcc/te
*** 16957,16962 ****
--- 18183,18190 ----
  892e6547a26ec306d14a6ed66d717632  gcc/testsuite/g++.dg/cpp0x/nontype3.C
  0b1d5cff24609f4055f33f510cf5259b  gcc/testsuite/g++.dg/cpp0x/nontype4.C
  31f2b9732c56a8970a3ac0ca38ec1afa  gcc/testsuite/g++.dg/cpp0x/nontype5.C
+ 88b54f257739a36878db77a7db323a44  gcc/testsuite/g++.dg/cpp0x/nontype6.C
+ 5689bac6c6075ecd9380ec707c3a0261  gcc/testsuite/g++.dg/cpp0x/nontype7.C
  cb5b10af278fbafac78a6d53829b3d37  gcc/testsuite/g++.dg/cpp0x/not_special.C
  e950526c0d7127f5718072cb9366641e  gcc/testsuite/g++.dg/cpp0x/nsdmi-aggr1.C
  94c644ef2cfc0af0de150c6699b774ed  gcc/testsuite/g++.dg/cpp0x/nsdmi-anon-struct1.C
*************** f570e39b0271d39d9cdde0565b1fe390  gcc/te
*** 16969,16978 ****
--- 18197,18208 ----
  038b57fc82284f2499013b6711bc0a8e  gcc/testsuite/g++.dg/cpp0x/nsdmi-defer4.C
  171384a7319ac1870302b512ac8be270  gcc/testsuite/g++.dg/cpp0x/nsdmi-defer5.C
  01f9c6930a387a0b45cb4220fc7ec298  gcc/testsuite/g++.dg/cpp0x/nsdmi-defer6.C
+ d5481fd30f66f5324cfb9ec037967222  gcc/testsuite/g++.dg/cpp0x/nsdmi-defer7.C
  9a72677ce49b64f4a0e186df8902abff  gcc/testsuite/g++.dg/cpp0x/nsdmi-dr1397.C
  5af761999024cb836ca412ed02230774  gcc/testsuite/g++.dg/cpp0x/nsdmi-eh1.C
  a10475b2a54810b2909ccfef2102f693  gcc/testsuite/g++.dg/cpp0x/nsdmi-empty1.C
  b8706c4b353788bfe037cbbf67877a76  gcc/testsuite/g++.dg/cpp0x/nsdmi-list1.C
+ 6a58e200c423f61107667482c5ad2900  gcc/testsuite/g++.dg/cpp0x/nsdmi-list10.C
  28861172743173b9d509ef8324377edf  gcc/testsuite/g++.dg/cpp0x/nsdmi-list2.C
  ef20e3e0e53b4fb3163e5066efb89b64  gcc/testsuite/g++.dg/cpp0x/nsdmi-list3.C
  e7c5d3acfd99916be199f83340ddc3b9  gcc/testsuite/g++.dg/cpp0x/nsdmi-list4.C
*************** e7c5d3acfd99916be199f83340ddc3b9  gcc/te
*** 16980,16985 ****
--- 18210,18216 ----
  fa7f946c0cff896c422779a2b5819550  gcc/testsuite/g++.dg/cpp0x/nsdmi-list6.C
  ee42a0aeb16a7131a04999eccc339e5f  gcc/testsuite/g++.dg/cpp0x/nsdmi-list7.C
  c0d475fdef395d626f2b38aa568cbf9e  gcc/testsuite/g++.dg/cpp0x/nsdmi-list8.C
+ ccdd8a27ec0533174a42ba703073e1ce  gcc/testsuite/g++.dg/cpp0x/nsdmi-list9.C
  bb52d0707dea46cd2224e8f36c397c29  gcc/testsuite/g++.dg/cpp0x/nsdmi-local.C
  532b3e2c733c1b03dfa22d18667650fb  gcc/testsuite/g++.dg/cpp0x/nsdmi-sizeof.C
  6a97f223fff723db9f950c32a7828e35  gcc/testsuite/g++.dg/cpp0x/nsdmi-template1.C
*************** d3a9ba2ba0ca938f90a73718215a4848  gcc/te
*** 17057,17063 ****
  4393d7ed2f574b06e7ee71f4bc21db63  gcc/testsuite/g++.dg/cpp0x/nullptr17.C
  95ff09944c5b1a198fb3f1aaf4ce0d31  gcc/testsuite/g++.dg/cpp0x/nullptr18.C
  9c99b127852710c9cde19450bbe37096  gcc/testsuite/g++.dg/cpp0x/nullptr19.C
! f1f210112cd22398f4597d7ad0a84584  gcc/testsuite/g++.dg/cpp0x/nullptr20.C
  3c06870c6a02ab57bc136a872305b5e1  gcc/testsuite/g++.dg/cpp0x/nullptr21.C
  bd7207f5ebefc0564ca4bfcc8bfb3af0  gcc/testsuite/g++.dg/cpp0x/nullptr22.C
  d777236ca68365e8e6a7b45bf4e707fb  gcc/testsuite/g++.dg/cpp0x/nullptr23.C
--- 18288,18294 ----
  4393d7ed2f574b06e7ee71f4bc21db63  gcc/testsuite/g++.dg/cpp0x/nullptr17.C
  95ff09944c5b1a198fb3f1aaf4ce0d31  gcc/testsuite/g++.dg/cpp0x/nullptr18.C
  9c99b127852710c9cde19450bbe37096  gcc/testsuite/g++.dg/cpp0x/nullptr19.C
! a205757e228da001bcf24c9042a7610c  gcc/testsuite/g++.dg/cpp0x/nullptr20.C
  3c06870c6a02ab57bc136a872305b5e1  gcc/testsuite/g++.dg/cpp0x/nullptr21.C
  bd7207f5ebefc0564ca4bfcc8bfb3af0  gcc/testsuite/g++.dg/cpp0x/nullptr22.C
  d777236ca68365e8e6a7b45bf4e707fb  gcc/testsuite/g++.dg/cpp0x/nullptr23.C
*************** fa773bb98628f5c9f0fa9d8d8b29beda  gcc/te
*** 17111,17116 ****
--- 18342,18354 ----
  69f8f66bd163b5bad0e399b5155f053b  gcc/testsuite/g++.dg/cpp0x/pr108698.C
  c25430a477686ad18eb61c047059d523  gcc/testsuite/g++.dg/cpp0x/pr112365.C
  d1bd358aeacbea8bb4acd229e4efd99e  gcc/testsuite/g++.dg/cpp0x/pr113031.C
+ c261319c4540e21ce17bbed8a6a44f40  gcc/testsuite/g++.dg/cpp0x/pr118214.C
+ 928683c38d607a74b416721a5ce0ffae  gcc/testsuite/g++.dg/cpp0x/pr118390.C
+ 081b3b633b3293d02217f35e3a581d76  gcc/testsuite/g++.dg/cpp0x/pr118532.C
+ 81cb1008cd76f745164047f2e464b835  gcc/testsuite/g++.dg/cpp0x/pr118671.C
+ fadcff10fef6007880be1e8b89051f65  gcc/testsuite/g++.dg/cpp0x/pr118923.C
+ c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/testsuite/g++.dg/cpp0x/pr119123.C
+ b4c316ecfeb0a9b078a76b658ed94668  gcc/testsuite/g++.dg/cpp0x/pr119563.C
  26dea799d49ce223a0c4130a3c955271  gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
  4d1da29b669bf3178b3987abce4d58b1  gcc/testsuite/g++.dg/cpp0x/pr31431.C
  d65e06a3830e2b511cc25692b94615a1  gcc/testsuite/g++.dg/cpp0x/pr31432.C
*************** d1c739425392ffcd8a21fd26a2e072bc  gcc/te
*** 17159,17165 ****
  eb4c601755974a6e7e889481cbeb1264  gcc/testsuite/g++.dg/cpp0x/pr51225.C
  52c3fa4409093be55a0c3a1cd28b559c  gcc/testsuite/g++.dg/cpp0x/pr51226.C
  a93d73088837f8413d8c2a2507d41245  gcc/testsuite/g++.dg/cpp0x/pr51313.C
! af1bb7baa5bef0ace0b1cff490132db5  gcc/testsuite/g++.dg/cpp0x/pr51420.C
  2b2586d44aa9c628cb21fbfaac03e1d5  gcc/testsuite/g++.dg/cpp0x/pr51463.C
  28465619fad84c387cade9fc57805304  gcc/testsuite/g++.dg/cpp0x/pr51547.C
  a651fa90dfc4e74e07a59973c08e71cf  gcc/testsuite/g++.dg/cpp0x/pr51619.C
--- 18397,18403 ----
  eb4c601755974a6e7e889481cbeb1264  gcc/testsuite/g++.dg/cpp0x/pr51225.C
  52c3fa4409093be55a0c3a1cd28b559c  gcc/testsuite/g++.dg/cpp0x/pr51226.C
  a93d73088837f8413d8c2a2507d41245  gcc/testsuite/g++.dg/cpp0x/pr51313.C
! 84ec8733c0cd2aace7f1036d8bc0fbd9  gcc/testsuite/g++.dg/cpp0x/pr51420.C
  2b2586d44aa9c628cb21fbfaac03e1d5  gcc/testsuite/g++.dg/cpp0x/pr51463.C
  28465619fad84c387cade9fc57805304  gcc/testsuite/g++.dg/cpp0x/pr51547.C
  a651fa90dfc4e74e07a59973c08e71cf  gcc/testsuite/g++.dg/cpp0x/pr51619.C
*************** b2c6b8e617bc163eb317b7668652e006  gcc/te
*** 17196,17208 ****
  97725be33d84460ca43942d2adc95953  gcc/testsuite/g++.dg/cpp0x/pr59641.C
  9c12f7e3cf9e7442fe342f4be1463b79  gcc/testsuite/g++.dg/cpp0x/pr59816.C
  3d0500d1d666af43dc6c0f875f02c205  gcc/testsuite/g++.dg/cpp0x/pr60047.C
! 21c5cce08d19e74d5ec72d1ac0c6372c  gcc/testsuite/g++.dg/cpp0x/pr60209-neg.C
! a4d3796e26e4be4195bf46b19a76adeb  gcc/testsuite/g++.dg/cpp0x/pr60209.C
  b183a4e80609d3b7c1a96a71d68c8355  gcc/testsuite/g++.dg/cpp0x/pr60215.C
  17a7d3331efe07a3a8ad8feaefd13408  gcc/testsuite/g++.dg/cpp0x/pr60249.C
  ca73bec7f65810c088cc8d85f61a544c  gcc/testsuite/g++.dg/cpp0x/pr60430.C
  afadc39839ba83cfae01b237f8ccdcc8  gcc/testsuite/g++.dg/cpp0x/pr61019.C
! eeb523f167581f8351c6d531dca2372c  gcc/testsuite/g++.dg/cpp0x/pr61038.C
  c1ef2b1e3f9c5996571cb4f587bfb4b0  gcc/testsuite/g++.dg/cpp0x/pr61924.C
  8f244afd8a5ce2775b514cac0bb33b05  gcc/testsuite/g++.dg/cpp0x/pr62024.C
  b77c15f8e47eefdd2c1f1e5cb707a9bf  gcc/testsuite/g++.dg/cpp0x/pr62101.C
--- 18434,18446 ----
  97725be33d84460ca43942d2adc95953  gcc/testsuite/g++.dg/cpp0x/pr59641.C
  9c12f7e3cf9e7442fe342f4be1463b79  gcc/testsuite/g++.dg/cpp0x/pr59816.C
  3d0500d1d666af43dc6c0f875f02c205  gcc/testsuite/g++.dg/cpp0x/pr60047.C
! ddd565df4d5936212efbafb44a0a5df0  gcc/testsuite/g++.dg/cpp0x/pr60209-neg.C
! bbd514438e7c3fb8125a3b8d72fe3071  gcc/testsuite/g++.dg/cpp0x/pr60209.C
  b183a4e80609d3b7c1a96a71d68c8355  gcc/testsuite/g++.dg/cpp0x/pr60215.C
  17a7d3331efe07a3a8ad8feaefd13408  gcc/testsuite/g++.dg/cpp0x/pr60249.C
  ca73bec7f65810c088cc8d85f61a544c  gcc/testsuite/g++.dg/cpp0x/pr60430.C
  afadc39839ba83cfae01b237f8ccdcc8  gcc/testsuite/g++.dg/cpp0x/pr61019.C
! 17b64fed0f9c4bec3891cdaa2a53949f  gcc/testsuite/g++.dg/cpp0x/pr61038.C
  c1ef2b1e3f9c5996571cb4f587bfb4b0  gcc/testsuite/g++.dg/cpp0x/pr61924.C
  8f244afd8a5ce2775b514cac0bb33b05  gcc/testsuite/g++.dg/cpp0x/pr62024.C
  b77c15f8e47eefdd2c1f1e5cb707a9bf  gcc/testsuite/g++.dg/cpp0x/pr62101.C
*************** d584417478a609ab589447aa7e173812  gcc/te
*** 17233,17244 ****
  72ddfeb4cc0f740fe85e9fb11ecf08c6  gcc/testsuite/g++.dg/cpp0x/pr69481.C
  0986c11825f9b8bd879f039e6c19c442  gcc/testsuite/g++.dg/cpp0x/pr69637-1.C
  2617bc1446b0ad928a5375880ac05132  gcc/testsuite/g++.dg/cpp0x/pr69637-2.C
! bd60fe836072299f061fcfbe1692e691  gcc/testsuite/g++.dg/cpp0x/pr70338.C
  735a44cb9485ae979ab8eb92ccba3536  gcc/testsuite/g++.dg/cpp0x/pr70448.C
  4ca96cbe7b69845eba2cf016007957a4  gcc/testsuite/g++.dg/cpp0x/pr70528.C
  e3123e5c3b5b9dd201c7d3cbd878dc2c  gcc/testsuite/g++.dg/cpp0x/pr70538.C
  cf9cf154014255688dedeb39cfe8e73b  gcc/testsuite/g++.dg/cpp0x/pr70869.C
! 3e877be2b896ecc6ed739098ed9b76b9  gcc/testsuite/g++.dg/cpp0x/pr70887.C
  c69896dc2fac3243e492d5e8acf8d0b8  gcc/testsuite/g++.dg/cpp0x/pr71054.C
  9e100f27b95d86b13b775f610f5df142  gcc/testsuite/g++.dg/cpp0x/pr71169-2.C
  e1a511421f654ec5c35e3c8489aa5739  gcc/testsuite/g++.dg/cpp0x/pr71169.C
--- 18471,18482 ----
  72ddfeb4cc0f740fe85e9fb11ecf08c6  gcc/testsuite/g++.dg/cpp0x/pr69481.C
  0986c11825f9b8bd879f039e6c19c442  gcc/testsuite/g++.dg/cpp0x/pr69637-1.C
  2617bc1446b0ad928a5375880ac05132  gcc/testsuite/g++.dg/cpp0x/pr69637-2.C
! feb584c8f7fd51875807a7e8ffa78266  gcc/testsuite/g++.dg/cpp0x/pr70338.C
  735a44cb9485ae979ab8eb92ccba3536  gcc/testsuite/g++.dg/cpp0x/pr70448.C
  4ca96cbe7b69845eba2cf016007957a4  gcc/testsuite/g++.dg/cpp0x/pr70528.C
  e3123e5c3b5b9dd201c7d3cbd878dc2c  gcc/testsuite/g++.dg/cpp0x/pr70538.C
  cf9cf154014255688dedeb39cfe8e73b  gcc/testsuite/g++.dg/cpp0x/pr70869.C
! 4b037880809c6b905d1dc619ca1735cc  gcc/testsuite/g++.dg/cpp0x/pr70887.C
  c69896dc2fac3243e492d5e8acf8d0b8  gcc/testsuite/g++.dg/cpp0x/pr71054.C
  9e100f27b95d86b13b775f610f5df142  gcc/testsuite/g++.dg/cpp0x/pr71169-2.C
  e1a511421f654ec5c35e3c8489aa5739  gcc/testsuite/g++.dg/cpp0x/pr71169.C
*************** ce317b0879de92313ef6b7d499d12986  gcc/te
*** 17302,17308 ****
  662c2eb0632332c0375729eb9c9f926e  gcc/testsuite/g++.dg/cpp0x/pr83919.C
  70a182b3dddc113e81b5322b16298fe4  gcc/testsuite/g++.dg/cpp0x/pr83978.C
  3d3d4cf4662fd6a946d39e4e223bd600  gcc/testsuite/g++.dg/cpp0x/pr83993.C
! 16f7d80402c13f236d29e94d869235c4  gcc/testsuite/g++.dg/cpp0x/pr84497.C
  bb7f83402a9ba07412c928a5c22bdf7d  gcc/testsuite/g++.dg/cpp0x/pr84585.C
  3357d765c2a248307f8a2822fc51cdf5  gcc/testsuite/g++.dg/cpp0x/pr84606.C
  4645cdc10faa1c61c439188409dd5b38  gcc/testsuite/g++.dg/cpp0x/pr84609.C
--- 18540,18546 ----
  662c2eb0632332c0375729eb9c9f926e  gcc/testsuite/g++.dg/cpp0x/pr83919.C
  70a182b3dddc113e81b5322b16298fe4  gcc/testsuite/g++.dg/cpp0x/pr83978.C
  3d3d4cf4662fd6a946d39e4e223bd600  gcc/testsuite/g++.dg/cpp0x/pr83993.C
! cf2a064bd5e1e4683273945a044e83b7  gcc/testsuite/g++.dg/cpp0x/pr84497.C
  bb7f83402a9ba07412c928a5c22bdf7d  gcc/testsuite/g++.dg/cpp0x/pr84585.C
  3357d765c2a248307f8a2822fc51cdf5  gcc/testsuite/g++.dg/cpp0x/pr84606.C
  4645cdc10faa1c61c439188409dd5b38  gcc/testsuite/g++.dg/cpp0x/pr84609.C
*************** cf4d7a0934fa5897248e568b884df620  gcc/te
*** 17349,17354 ****
--- 18587,18593 ----
  b01c3079ace1bdd462b03d3af7906721  gcc/testsuite/g++.dg/cpp0x/pr93905.C
  114fa71f09fe7fd9b70ee4d41e776e26  gcc/testsuite/g++.dg/cpp0x/pr94616.C
  c60c0db646b29d21cd7d61d24670d63e  gcc/testsuite/g++.dg/cpp0x/pr96440.C
+ 7f57e13552a3dc10e25c07f282add219  gcc/testsuite/g++.dg/cpp0x/pr98533.C
  1f725aacb479fe72f5d994446fab5d54  gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C
  0564cc0225d38f734d46986570531094  gcc/testsuite/g++.dg/cpp0x/ptrmem-cst1.C
  6e8e648c26d9bf237cc152180e88c2c2  gcc/testsuite/g++.dg/cpp0x/range-for1.C
*************** f6fdcf88436a7c2de904550e31de7cea  gcc/te
*** 17382,17387 ****
--- 18621,18627 ----
  25f3337d44a7d8ed18822309d42e4d69  gcc/testsuite/g++.dg/cpp0x/range-for36.C
  ebe6353ed28409ce3d4c67ead6be69af  gcc/testsuite/g++.dg/cpp0x/range-for37.C
  36360f237150145a0c5d803753dba7af  gcc/testsuite/g++.dg/cpp0x/range-for38.C
+ 59c66ba2edfd3d42b18800c09e006e88  gcc/testsuite/g++.dg/cpp0x/range-for39.C
  cf3faabae812bd6f8ade13f3c1d36871  gcc/testsuite/g++.dg/cpp0x/range-for4.C
  9d70da20463079b62be580867a3e6601  gcc/testsuite/g++.dg/cpp0x/range-for5.C
  552d6f24d3e88cb9880ea25f37817a81  gcc/testsuite/g++.dg/cpp0x/range-for6.C
*************** ddee5e1bf0ce08cff4566375599c67f1  gcc/te
*** 17458,17464 ****
  5b6ef7b6e035ce04da4a7a9ed3f09464  gcc/testsuite/g++.dg/cpp0x/rv-template1.C
  4cf744a9856d8f6620980a3a442fe6b3  gcc/testsuite/g++.dg/cpp0x/rv-this.C
  779fd2d42bfb701a65f0e9552cb88d65  gcc/testsuite/g++.dg/cpp0x/rv-this2.C
! 35f5356c301b8d554b6ddb747601f71f  gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
  ce88e86fef9026207a379023cb8c2d11  gcc/testsuite/g++.dg/cpp0x/rv10.C
  984f2314039ca0acd236476411e758f0  gcc/testsuite/g++.dg/cpp0x/rv1n.C
  15d87dec28bc2bf07957aa2efac8c5e6  gcc/testsuite/g++.dg/cpp0x/rv1p.C
--- 18698,18704 ----
  5b6ef7b6e035ce04da4a7a9ed3f09464  gcc/testsuite/g++.dg/cpp0x/rv-template1.C
  4cf744a9856d8f6620980a3a442fe6b3  gcc/testsuite/g++.dg/cpp0x/rv-this.C
  779fd2d42bfb701a65f0e9552cb88d65  gcc/testsuite/g++.dg/cpp0x/rv-this2.C
! 5df2ea0cae19ab55d1f8c4b15b0b4032  gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
  ce88e86fef9026207a379023cb8c2d11  gcc/testsuite/g++.dg/cpp0x/rv10.C
  984f2314039ca0acd236476411e758f0  gcc/testsuite/g++.dg/cpp0x/rv1n.C
  15d87dec28bc2bf07957aa2efac8c5e6  gcc/testsuite/g++.dg/cpp0x/rv1p.C
*************** ec1a51ea3fd41e6e61c8f425bde1fd0b  gcc/te
*** 17565,17570 ****
--- 18805,18811 ----
  547894832b1452d5f513938e0cb8a166  gcc/testsuite/g++.dg/cpp0x/sfinae8.C
  03177ceac1dca2efe41bd4b603c2a79e  gcc/testsuite/g++.dg/cpp0x/sfinae9.C
  e629df81396ef9a075b65fd8e5e45646  gcc/testsuite/g++.dg/cpp0x/spaceship-eq1.C
+ b245f4ecc7d451cb0dce0367ba42cb52  gcc/testsuite/g++.dg/cpp0x/static-member-init-1.C
  e3c4cd6748b5a83f7b2c14889d2c4590  gcc/testsuite/g++.dg/cpp0x/static_assert1.C
  b37ccc1795a94faef1d66ac5782dcc39  gcc/testsuite/g++.dg/cpp0x/static_assert10.C
  7aecd80cc0e41c35763816d27e4f0304  gcc/testsuite/g++.dg/cpp0x/static_assert11.C
*************** be87eb6f527a213d6b73c8a9a9d444f5  gcc/te
*** 17583,17596 ****
  55bcfe78cb456d10d487a5d2cb636c1b  gcc/testsuite/g++.dg/cpp0x/static_assert8.C
  4e2bbb9a59c90b11ad60255050db8632  gcc/testsuite/g++.dg/cpp0x/static_assert9.C
  5ecbb1570e344c2a0ac2cf38717a7157  gcc/testsuite/g++.dg/cpp0x/std-layout1.C
! 7191e892f8b8c7d55159c17b4d7637fa  gcc/testsuite/g++.dg/cpp0x/std_fext-numeric-literals.C
! 503a83d0ab836e09fec9e6dea94cff0e  gcc/testsuite/g++.dg/cpp0x/std_fno-ext-numeric-literals.C
  c8339a090dcd3866e3bcee3adaa249a3  gcc/testsuite/g++.dg/cpp0x/stddef.C
  271ca147c68e58fb493c98645f047765  gcc/testsuite/g++.dg/cpp0x/stdint.C
  1045190e7a2a2af12d9111218b20eb11  gcc/testsuite/g++.dg/cpp0x/syntax-err1.C
  20984e5b7381310a8855ddc725729c4a  gcc/testsuite/g++.dg/cpp0x/temp-constructor-bug.C
  2a53ad88d27935cbe876c59fe9bc862e  gcc/testsuite/g++.dg/cpp0x/temp-extend1.C
  0430340587418d0e800795c03d5d2841  gcc/testsuite/g++.dg/cpp0x/temp-extend2.C
  97ab61118de35ac65f81fc7075a15809  gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C
  e2c30c506c227664a12cede2fc526492  gcc/testsuite/g++.dg/cpp0x/temp_default1.C
  b64243df23e4a2b648985cc8fb7842c6  gcc/testsuite/g++.dg/cpp0x/temp_default2.C
--- 18824,18838 ----
  55bcfe78cb456d10d487a5d2cb636c1b  gcc/testsuite/g++.dg/cpp0x/static_assert8.C
  4e2bbb9a59c90b11ad60255050db8632  gcc/testsuite/g++.dg/cpp0x/static_assert9.C
  5ecbb1570e344c2a0ac2cf38717a7157  gcc/testsuite/g++.dg/cpp0x/std-layout1.C
! 2b83425846fa083dfe2fe6eb46aeec30  gcc/testsuite/g++.dg/cpp0x/std_fext-numeric-literals.C
! 4f384120fd8b00433df38d4d1a8aee45  gcc/testsuite/g++.dg/cpp0x/std_fno-ext-numeric-literals.C
  c8339a090dcd3866e3bcee3adaa249a3  gcc/testsuite/g++.dg/cpp0x/stddef.C
  271ca147c68e58fb493c98645f047765  gcc/testsuite/g++.dg/cpp0x/stdint.C
  1045190e7a2a2af12d9111218b20eb11  gcc/testsuite/g++.dg/cpp0x/syntax-err1.C
  20984e5b7381310a8855ddc725729c4a  gcc/testsuite/g++.dg/cpp0x/temp-constructor-bug.C
  2a53ad88d27935cbe876c59fe9bc862e  gcc/testsuite/g++.dg/cpp0x/temp-extend1.C
  0430340587418d0e800795c03d5d2841  gcc/testsuite/g++.dg/cpp0x/temp-extend2.C
+ 985d0f026de22be3285660f8ef47b2c9  gcc/testsuite/g++.dg/cpp0x/temp-extend3.C
  97ab61118de35ac65f81fc7075a15809  gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C
  e2c30c506c227664a12cede2fc526492  gcc/testsuite/g++.dg/cpp0x/temp_default1.C
  b64243df23e4a2b648985cc8fb7842c6  gcc/testsuite/g++.dg/cpp0x/temp_default2.C
*************** f3e1f3a23dff31653517cc48d206fafb  gcc/te
*** 17620,17686 ****
  f36e89f1ae30b44f8903af9195861ef2  gcc/testsuite/g++.dg/cpp0x/trailing8.C
  5bd7d763156f09225be67ac942ecf179  gcc/testsuite/g++.dg/cpp0x/trailing9.C
  d798a81aa9d4e9d94b49083c2c23c772  gcc/testsuite/g++.dg/cpp0x/traits1.C
! d120071db3e271c4dfdd28f3907bc50c  gcc/testsuite/g++.dg/cpp0x/trivial1.C
  7a3cc2e8d978697f65ab19d12c3ae9df  gcc/testsuite/g++.dg/cpp0x/typedef-redecl.C
! 3aaefceebabf704241cd27c1faac7d22  gcc/testsuite/g++.dg/cpp0x/udlit-addr.C
! 25fe729f54c189819e337b722bb25553  gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C
! 9ef0b4dd1199c1515523a2bf4787c7c2  gcc/testsuite/g++.dg/cpp0x/udlit-args.C
! 04115b45331d4f8a8814aa835cc97319  gcc/testsuite/g++.dg/cpp0x/udlit-args2.C
! e72cdfe1a783710b8bb1daec95166456  gcc/testsuite/g++.dg/cpp0x/udlit-clink-neg.C
! be1cf38ee74c1bc061a79ae435242931  gcc/testsuite/g++.dg/cpp0x/udlit-concat-neg.C
! 6260f7d860d2a182d4ee1545400dfef8  gcc/testsuite/g++.dg/cpp0x/udlit-concat.C
! ed0ef4952555cafa9be322b45527bce5  gcc/testsuite/g++.dg/cpp0x/udlit-constexpr.C
! c7c5b85000b7e7393d31feae90eee6d4  gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C
! 057ee217f53c1b7618905a97363b386d  gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C
! b12d8f1a221241fb17100ba981f84473  gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C
! 4b40ba124291d6d9e832a8fedc6747f6  gcc/testsuite/g++.dg/cpp0x/udlit-error1.C
! af8a809f23b49dedbe6e3c997d67063f  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C
  b6b69e87cd068eb186427446cb47cd92  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-2.C
! 0ff68d90d141ce1c3dbedf2060dac955  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C
  0ca0a5a3834c72a0aeae0e654fd11cc7  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-4.C
! 9ed4b25d5489623fb9ff680609b1ec03  gcc/testsuite/g++.dg/cpp0x/udlit-extern-c.C
! e69574b29d74e1b9574f866ac163bf88  gcc/testsuite/g++.dg/cpp0x/udlit-friend.C
! 5a8debc38c45079da0a8f0db33528e46  gcc/testsuite/g++.dg/cpp0x/udlit-general.C
! 5332e0f5d64147f28e21a3affe54b433  gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg-char8_t.C
! 76afb8e2d3b0d7f6b2be2134335c3519  gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg.C
! 326b4054126136857eb96ed0001c43f7  gcc/testsuite/g++.dg/cpp0x/udlit-inline.C
  6d05f0ca69e3af1248dac02fe71e5c37  gcc/testsuite/g++.dg/cpp0x/udlit-linkage-neg.C
  945c01fdb5a4d662e7d47c170e5fd430  gcc/testsuite/g++.dg/cpp0x/udlit-macros.C
! 06ed91853a7b8dc3279cd4ec50e37629  gcc/testsuite/g++.dg/cpp0x/udlit-mangle.C
! 48b9ca12f9827879590ef065dd5d5a49  gcc/testsuite/g++.dg/cpp0x/udlit-member-neg.C
! 965c8fdc0d5cc8cc39876fdca4e84c0a  gcc/testsuite/g++.dg/cpp0x/udlit-namespace-ambiguous.C
  c22929ae134a66f7eeb3de0e9d4754c0  gcc/testsuite/g++.dg/cpp0x/udlit-namespace-using-directive.C
! b8dd562d9fa4097d45afc195d68afb59  gcc/testsuite/g++.dg/cpp0x/udlit-namespace.C
! c080a0215f111b08041a465f8372f6b8  gcc/testsuite/g++.dg/cpp0x/udlit-nofunc-neg.C
! b520ee398b84acd7a5bb1e971c30f63c  gcc/testsuite/g++.dg/cpp0x/udlit-nonempty-str-neg.C
  2ea771abd36fe1e9cd24889a0a651f4b  gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C
! c98f0db41b47932bd855703aa9e6af9f  gcc/testsuite/g++.dg/cpp0x/udlit-nosuffix-neg.C
! 39bbcb13a344635c89b2ac19653abe2d  gcc/testsuite/g++.dg/cpp0x/udlit-nounder-neg.C
! 56ddfcd520d1a267061bac3cb0eda1db  gcc/testsuite/g++.dg/cpp0x/udlit-operator-neg.C
! 344d57aa16c13ef0216283abb5a8b7ca  gcc/testsuite/g++.dg/cpp0x/udlit-overflow-neg.C
! 09869b48168158d559bea6d177938d7e  gcc/testsuite/g++.dg/cpp0x/udlit-overflow.C
! e36b06fea6cc51441ed57d06d38388e7  gcc/testsuite/g++.dg/cpp0x/udlit-preproc-neg.C
! b49dbecba3ef797eceeae3fe86a96622  gcc/testsuite/g++.dg/cpp0x/udlit-raw-length.C
! c0bba2c546aa3f650d69e738211a7b4e  gcc/testsuite/g++.dg/cpp0x/udlit-raw-op-string-neg.C
! 207aa7deaf0ee81a956f5599c30abce2  gcc/testsuite/g++.dg/cpp0x/udlit-raw-op.C
! 21d8f3abb7d65b16b03ff3144fcea486  gcc/testsuite/g++.dg/cpp0x/udlit-raw-str.C
! 83b0d19ed2a52af0e46a713b6f4ef34b  gcc/testsuite/g++.dg/cpp0x/udlit-resolve-char8_t.C
! 66db6abb93529ba90cdfe4e4b42525f8  gcc/testsuite/g++.dg/cpp0x/udlit-resolve.C
  11761d8ff202feddb1cf7a455d6a5512  gcc/testsuite/g++.dg/cpp0x/udlit-sfinae-neg.C
! 3ec6c18837b63f9912c715949577f4f0  gcc/testsuite/g++.dg/cpp0x/udlit-sfinae.C
! ec2d616dd2258bb82da2943a8cbc2999  gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C
! 7ed88f5df044b39c06dd30c049f587a3  gcc/testsuite/g++.dg/cpp0x/udlit-string-length.C
! e4eff855502dea296eb6bc9057513594  gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C
! 6936b5e9fca3eaf5914d66bf5edc59f8  gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h
! 8feb854c21c731e45800e46f10b09d5b  gcc/testsuite/g++.dg/cpp0x/udlit-suffix-neg.C
  ff425f0355a54d312eec6e5a8f284e41  gcc/testsuite/g++.dg/cpp0x/udlit-systemheader.C
! 4860e031a9a55de24fce24715763a3aa  gcc/testsuite/g++.dg/cpp0x/udlit-template.C
! b0d09c427406afa79404ae6e27aa438a  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg.C
! 60b7337e229fffe2601d7f44744c7e45  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg2.C
! ebbb3f1b85b16c5be2a25964d8017ab6  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg.C
! 8b75c806f29e543ce42e4b667ef2fe64  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms-neg.C
! ce9cf1b6176245da0b5eaeddad6f4ec7  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms.C
! 78d986a88c4fb77084876c129d4f1364  gcc/testsuite/g++.dg/cpp0x/udlit_system_header
  334c8dcebc42b37885e8f695c3285534  gcc/testsuite/g++.dg/cpp0x/union1.C
  e5a0ae678823eb39ec542d492d5607d1  gcc/testsuite/g++.dg/cpp0x/union2.C
  39e0408b5a8eba9b12dddc3f82f30f6c  gcc/testsuite/g++.dg/cpp0x/union3.C
--- 18862,18928 ----
  f36e89f1ae30b44f8903af9195861ef2  gcc/testsuite/g++.dg/cpp0x/trailing8.C
  5bd7d763156f09225be67ac942ecf179  gcc/testsuite/g++.dg/cpp0x/trailing9.C
  d798a81aa9d4e9d94b49083c2c23c772  gcc/testsuite/g++.dg/cpp0x/traits1.C
! 3aeba2b3edc02027ae9cca4acd07e061  gcc/testsuite/g++.dg/cpp0x/trivial1.C
  7a3cc2e8d978697f65ab19d12c3ae9df  gcc/testsuite/g++.dg/cpp0x/typedef-redecl.C
! 57ef5db0a6280171ee42bb4f08aa1d4e  gcc/testsuite/g++.dg/cpp0x/udlit-addr.C
! bba92ac71a5b232ae103a81e9e23f14c  gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C
! 11404e05d1340ad6b6fbedfee30b7e3e  gcc/testsuite/g++.dg/cpp0x/udlit-args.C
! 5cd527a937a1c902363601cd222279ce  gcc/testsuite/g++.dg/cpp0x/udlit-args2.C
! 6573e76ecdd77ffe6719690a61cce385  gcc/testsuite/g++.dg/cpp0x/udlit-clink-neg.C
! 14a8315e237738f7e20ba4b43ebb6479  gcc/testsuite/g++.dg/cpp0x/udlit-concat-neg.C
! 8f5c1b6159f7f4233295978ba0e81de4  gcc/testsuite/g++.dg/cpp0x/udlit-concat.C
! f7818b160ce94ffa9a01ce886f1dd34e  gcc/testsuite/g++.dg/cpp0x/udlit-constexpr.C
! e06d60586fd2e1a5436aaf9bb87aa811  gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C
! 2e7ea3f8133a76f16a9ade39407df8b6  gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C
! 7d4c934e377892fbe07a6e55e1f3f4ad  gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C
! 010ef12d0536fc82b82fc2af63eccdf7  gcc/testsuite/g++.dg/cpp0x/udlit-error1.C
! 8a8913888b43ee614bbd86cfc7a04da5  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C
  b6b69e87cd068eb186427446cb47cd92  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-2.C
! c3cc3415402cb87ebd56d4c8eae8f13a  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C
  0ca0a5a3834c72a0aeae0e654fd11cc7  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-4.C
! 91317257ccee65ff058660524f5c5585  gcc/testsuite/g++.dg/cpp0x/udlit-extern-c.C
! 46333ba5fdbfbffce047ec57d50b97aa  gcc/testsuite/g++.dg/cpp0x/udlit-friend.C
! 497bd053c0e94ebe463a68ec6453f3ac  gcc/testsuite/g++.dg/cpp0x/udlit-general.C
! ddbf1604901d6db320d80285c91ea2d9  gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg-char8_t.C
! 9445c47e07fb15ede9ad6966bd37409a  gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg.C
! 0464bfeb7c8d474033d0fb156a2902de  gcc/testsuite/g++.dg/cpp0x/udlit-inline.C
  6d05f0ca69e3af1248dac02fe71e5c37  gcc/testsuite/g++.dg/cpp0x/udlit-linkage-neg.C
  945c01fdb5a4d662e7d47c170e5fd430  gcc/testsuite/g++.dg/cpp0x/udlit-macros.C
! c7aec3bc8b99a2ea7445f3b3985c4c8a  gcc/testsuite/g++.dg/cpp0x/udlit-mangle.C
! 315c49a191b397b92a1618742657a590  gcc/testsuite/g++.dg/cpp0x/udlit-member-neg.C
! 409a7cdaf9f3c46d33692ca8802e2d2c  gcc/testsuite/g++.dg/cpp0x/udlit-namespace-ambiguous.C
  c22929ae134a66f7eeb3de0e9d4754c0  gcc/testsuite/g++.dg/cpp0x/udlit-namespace-using-directive.C
! 2ff0f06c19486ed3f04c5c6cdd407832  gcc/testsuite/g++.dg/cpp0x/udlit-namespace.C
! f297a0cf6b7541c3d102dcbd89645d9f  gcc/testsuite/g++.dg/cpp0x/udlit-nofunc-neg.C
! 6d06748f182816ff3e0905cc930f5b26  gcc/testsuite/g++.dg/cpp0x/udlit-nonempty-str-neg.C
  2ea771abd36fe1e9cd24889a0a651f4b  gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C
! ca8befe3f1fe79850d756f36c287ca19  gcc/testsuite/g++.dg/cpp0x/udlit-nosuffix-neg.C
! 2b0489aeee02835faa031c656cc4b40a  gcc/testsuite/g++.dg/cpp0x/udlit-nounder-neg.C
! c04cc89ddf1b3e09dc4226b9e9eeddfb  gcc/testsuite/g++.dg/cpp0x/udlit-operator-neg.C
! d7f0b6ff8bf7d235b0fc12141b76578f  gcc/testsuite/g++.dg/cpp0x/udlit-overflow-neg.C
! 15d0107fb5d29acdb5820f9f697bb22f  gcc/testsuite/g++.dg/cpp0x/udlit-overflow.C
! f14459ab77fdbbb4f967b8dc31e025c0  gcc/testsuite/g++.dg/cpp0x/udlit-preproc-neg.C
! 24f5991f95a2818bb91be7337d745e59  gcc/testsuite/g++.dg/cpp0x/udlit-raw-length.C
! d3d5313c2f18e0b1a6faa571b16e3693  gcc/testsuite/g++.dg/cpp0x/udlit-raw-op-string-neg.C
! 4ac869425d4cf5d349cac524f5221df9  gcc/testsuite/g++.dg/cpp0x/udlit-raw-op.C
! 3c33bc61cf2dd2171b39ffe3cb29b3a9  gcc/testsuite/g++.dg/cpp0x/udlit-raw-str.C
! e174bc216320d118e51acb9800742dcf  gcc/testsuite/g++.dg/cpp0x/udlit-resolve-char8_t.C
! 1cba5c03d2f1caa849b8fe6a3ff9b826  gcc/testsuite/g++.dg/cpp0x/udlit-resolve.C
  11761d8ff202feddb1cf7a455d6a5512  gcc/testsuite/g++.dg/cpp0x/udlit-sfinae-neg.C
! a12f3645c08cfcf9fa70fe157501f1f7  gcc/testsuite/g++.dg/cpp0x/udlit-sfinae.C
! d9c709afd27b0e25275cdd44005ec841  gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C
! 912b181ed1d7137d4cabc684065ba2a5  gcc/testsuite/g++.dg/cpp0x/udlit-string-length.C
! 283b93ccb56f315f088d77ba4dfe4881  gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C
! 531bc3a68669727965798025d7c7f788  gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h
! f72fa6918b4947d72327bf42c9c1247a  gcc/testsuite/g++.dg/cpp0x/udlit-suffix-neg.C
  ff425f0355a54d312eec6e5a8f284e41  gcc/testsuite/g++.dg/cpp0x/udlit-systemheader.C
! d8be3801ed0fe0c132ee7d6443cf06c6  gcc/testsuite/g++.dg/cpp0x/udlit-template.C
! e0b3f1b56e5152e5d4efc33c0acfc6d3  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg.C
! 63b067d501e91c74437d4ff806fbb0c1  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg2.C
! c356edd2c2bc03f0ec05d9977cb511eb  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg.C
! 40f2b102868307c1ed39ab3e851121ca  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms-neg.C
! 7b5b13150491de321ee0523e3fe39c9a  gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms.C
! 1845fbfbc9545fe11c956f3f06772a16  gcc/testsuite/g++.dg/cpp0x/udlit_system_header
  334c8dcebc42b37885e8f695c3285534  gcc/testsuite/g++.dg/cpp0x/union1.C
  e5a0ae678823eb39ec542d492d5607d1  gcc/testsuite/g++.dg/cpp0x/union2.C
  39e0408b5a8eba9b12dddc3f82f30f6c  gcc/testsuite/g++.dg/cpp0x/union3.C
*************** d628aec947fb9383000669568fb54fe3  gcc/te
*** 17692,17698 ****
  6d6ff5e1107f65ae6fdc850aaada06ea  gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C
  6f9d1985ea073c86a564ef727a7040e8  gcc/testsuite/g++.dg/cpp0x/using-enum-1.C
  254a80107b287ecb07d7172823209c09  gcc/testsuite/g++.dg/cpp0x/using-enum-2.C
! f7ee372a6e85bc9010a49d3d9086a4ff  gcc/testsuite/g++.dg/cpp0x/using-enum-3.C
  c2935d37441711e00030dd4962af84b5  gcc/testsuite/g++.dg/cpp0x/variadic-104.C
  0fa36631e12ec97e9e0d646888cd43ab  gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C
  05f34d2879385095df8946531cb7c747  gcc/testsuite/g++.dg/cpp0x/variadic-alias2.C
--- 18934,18941 ----
  6d6ff5e1107f65ae6fdc850aaada06ea  gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C
  6f9d1985ea073c86a564ef727a7040e8  gcc/testsuite/g++.dg/cpp0x/using-enum-1.C
  254a80107b287ecb07d7172823209c09  gcc/testsuite/g++.dg/cpp0x/using-enum-2.C
! a9d45f23125f8ba75d77d48151655107  gcc/testsuite/g++.dg/cpp0x/using-enum-3.C
! 7a0779f785a5519179782764202fc2de  gcc/testsuite/g++.dg/cpp0x/va-opt1.C
  c2935d37441711e00030dd4962af84b5  gcc/testsuite/g++.dg/cpp0x/variadic-104.C
  0fa36631e12ec97e9e0d646888cd43ab  gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C
  05f34d2879385095df8946531cb7c747  gcc/testsuite/g++.dg/cpp0x/variadic-alias2.C
*************** ca37ddadc3989b47a8f871dbc75cb358  gcc/te
*** 17702,17708 ****
  442ba0256c0aa3571579aa5a4d8d9d46  gcc/testsuite/g++.dg/cpp0x/variadic-alias6.C
  b9f93dd6756e0bd64271c918d2533edc  gcc/testsuite/g++.dg/cpp0x/variadic-alias7.C
  4bffb0d8f2f273875536d279ec5566e7  gcc/testsuite/g++.dg/cpp0x/variadic-alias8.C
! 8eb6bba0c4ef3e1b77151f91ce5ddeb3  gcc/testsuite/g++.dg/cpp0x/variadic-bind.C
  5b99491b1ddd285caf57c8d9cc3a52aa  gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C
  487cbd86a6922cf1b1ed0e770dfe74ee  gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C
  c0422b5906ec9f754211435f9c08f8dd  gcc/testsuite/g++.dg/cpp0x/variadic-crash3.C
--- 18945,18951 ----
  442ba0256c0aa3571579aa5a4d8d9d46  gcc/testsuite/g++.dg/cpp0x/variadic-alias6.C
  b9f93dd6756e0bd64271c918d2533edc  gcc/testsuite/g++.dg/cpp0x/variadic-alias7.C
  4bffb0d8f2f273875536d279ec5566e7  gcc/testsuite/g++.dg/cpp0x/variadic-alias8.C
! 038c8609ce773ad63c91a0cd0d1a1edc  gcc/testsuite/g++.dg/cpp0x/variadic-bind.C
  5b99491b1ddd285caf57c8d9cc3a52aa  gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C
  487cbd86a6922cf1b1ed0e770dfe74ee  gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C
  c0422b5906ec9f754211435f9c08f8dd  gcc/testsuite/g++.dg/cpp0x/variadic-crash3.C
*************** b1ad3f6315dc1b540521f3bee80d1358  gcc/te
*** 17730,17736 ****
  6dfc2680a805f364e5dc93da42871110  gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C
  b7cf6bf476e96d2d1f1916ba806c31c0  gcc/testsuite/g++.dg/cpp0x/variadic-explicit1.C
  0da7e7dea9fa31e0ecb2cc0bfd7f14de  gcc/testsuite/g++.dg/cpp0x/variadic-explicit2.C
! aaa90c1c2261698f9319415498163db1  gcc/testsuite/g++.dg/cpp0x/variadic-function.C
  fb23a824547af5cbc2d6ee6a52d5e3c0  gcc/testsuite/g++.dg/cpp0x/variadic-init.C
  ddacc33e701293e38ffc8bd7ccbb2a2e  gcc/testsuite/g++.dg/cpp0x/variadic-init2.C
  f64443a27f946984ec474714387b99a8  gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C
--- 18973,18979 ----
  6dfc2680a805f364e5dc93da42871110  gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C
  b7cf6bf476e96d2d1f1916ba806c31c0  gcc/testsuite/g++.dg/cpp0x/variadic-explicit1.C
  0da7e7dea9fa31e0ecb2cc0bfd7f14de  gcc/testsuite/g++.dg/cpp0x/variadic-explicit2.C
! 1716ee144138fed51940691b21f5f8fe  gcc/testsuite/g++.dg/cpp0x/variadic-function.C
  fb23a824547af5cbc2d6ee6a52d5e3c0  gcc/testsuite/g++.dg/cpp0x/variadic-init.C
  ddacc33e701293e38ffc8bd7ccbb2a2e  gcc/testsuite/g++.dg/cpp0x/variadic-init2.C
  f64443a27f946984ec474714387b99a8  gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C
*************** efdeb5b65b79fc6ff926b12f711edcb1  gcc/te
*** 17743,17749 ****
  82915557040f48df46fc292a92a536f5  gcc/testsuite/g++.dg/cpp0x/variadic-mangle4.C
  4cfa6d55331cc05e1a93a2795d23ec26  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5.C
  153480cd2490bfce857224bb2b103b5a  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5a.C
! 6c67e276177a53a05508b5e974504d12  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C
  3cb08ca5f565f9984bffaa086cbace20  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C
  08d2bff6abb7f96f072898cb08f80fbc  gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C
  7932640fecd96fc5ff03d9f94a7cf005  gcc/testsuite/g++.dg/cpp0x/variadic-nested2.C
--- 18986,18992 ----
  82915557040f48df46fc292a92a536f5  gcc/testsuite/g++.dg/cpp0x/variadic-mangle4.C
  4cfa6d55331cc05e1a93a2795d23ec26  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5.C
  153480cd2490bfce857224bb2b103b5a  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5a.C
! 10913ad9caaa27ecbec84c80d30df923  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C
  3cb08ca5f565f9984bffaa086cbace20  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C
  08d2bff6abb7f96f072898cb08f80fbc  gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C
  7932640fecd96fc5ff03d9f94a7cf005  gcc/testsuite/g++.dg/cpp0x/variadic-nested2.C
*************** e47543bd9482646c5c0d1023519e7eb1  gcc/te
*** 17753,17758 ****
--- 18996,19002 ----
  9965da4f62ae847ce666120789b29c79  gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce1.C
  1441fa6139ca73d25aa889aafd3b483c  gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce2.C
  7ef2a770be31e4cfad400f2e8df32ae9  gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C
+ b94d2366abd4853b1c047d725841ffdd  gcc/testsuite/g++.dg/cpp0x/variadic-parm2.C
  48eb2c981da41427b39595337f986824  gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C
  b20d8acf670aad710e257d31a6938ec7  gcc/testsuite/g++.dg/cpp0x/variadic-partial2.C
  f7b6e32cbed201fb5448079ea1b77a05  gcc/testsuite/g++.dg/cpp0x/variadic-partial2a.C
*************** d8f2bbdbc756eebd9db522c9d690f9fa  gcc/te
*** 17775,17781 ****
  bee3c5f0bfb165fbfd09c2d4a67d117e  gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C
  8b064910690284395dd07c4eb4749e10  gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C
  fabf432e9369e6fe877e89d0c86c7d57  gcc/testsuite/g++.dg/cpp0x/variadic-ttp9.C
! e2a4f4ebe01d8ef71a8e53427b0ad605  gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C
  eae406793547757d01528d5680162682  gcc/testsuite/g++.dg/cpp0x/variadic-tuple2.C
  9cf2b1705ed83cc74a8a4b9eb2703186  gcc/testsuite/g++.dg/cpp0x/variadic-unify-2.C
  14d049c47cd861f03247bae7077f7a4a  gcc/testsuite/g++.dg/cpp0x/variadic-unify-3.C
--- 19019,19025 ----
  bee3c5f0bfb165fbfd09c2d4a67d117e  gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C
  8b064910690284395dd07c4eb4749e10  gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C
  fabf432e9369e6fe877e89d0c86c7d57  gcc/testsuite/g++.dg/cpp0x/variadic-ttp9.C
! 6c9d19de775c60d233790e0abc387999  gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C
  eae406793547757d01528d5680162682  gcc/testsuite/g++.dg/cpp0x/variadic-tuple2.C
  9cf2b1705ed83cc74a8a4b9eb2703186  gcc/testsuite/g++.dg/cpp0x/variadic-unify-2.C
  14d049c47cd861f03247bae7077f7a4a  gcc/testsuite/g++.dg/cpp0x/variadic-unify-3.C
*************** ef6cd86993fd9e98b5c841e854f1e291  gcc/te
*** 17850,17862 ****
  50631678d1b06531a77d9034af0b9e0e  gcc/testsuite/g++.dg/cpp0x/variadic161.C
  ac35a678008d70435c51c525cbbfce5b  gcc/testsuite/g++.dg/cpp0x/variadic162.C
  75bf9b12f5733e0f78b49d25755e538f  gcc/testsuite/g++.dg/cpp0x/variadic163.C
! 9f90cc97f3cb0b64062016719244c049  gcc/testsuite/g++.dg/cpp0x/variadic164.C
  dde7a4f94fd2f85ccf0ba3cc25781017  gcc/testsuite/g++.dg/cpp0x/variadic165.C
  25f4afea2be8e5932cb9252659a1575a  gcc/testsuite/g++.dg/cpp0x/variadic166.C
  87b254fca5653194e506de7518b27c79  gcc/testsuite/g++.dg/cpp0x/variadic167.C
  d3fd316df69021643c9c08dc4c093e40  gcc/testsuite/g++.dg/cpp0x/variadic168.C
  a28c1ab6cd8292afea0a610ae4fdedcf  gcc/testsuite/g++.dg/cpp0x/variadic169.C
! 3bff3422f4558e688cb85c201d29da39  gcc/testsuite/g++.dg/cpp0x/variadic17.C
  84b1488344a831e41eed0626d0f5ab8d  gcc/testsuite/g++.dg/cpp0x/variadic170.C
  c597501b32c00762874bad3052d9f18d  gcc/testsuite/g++.dg/cpp0x/variadic171.C
  b6c10f547ba95724b8657987c0cf6e0e  gcc/testsuite/g++.dg/cpp0x/variadic172.C
--- 19094,19106 ----
  50631678d1b06531a77d9034af0b9e0e  gcc/testsuite/g++.dg/cpp0x/variadic161.C
  ac35a678008d70435c51c525cbbfce5b  gcc/testsuite/g++.dg/cpp0x/variadic162.C
  75bf9b12f5733e0f78b49d25755e538f  gcc/testsuite/g++.dg/cpp0x/variadic163.C
! 38630a0c0f024ac6516c29c5d31ad165  gcc/testsuite/g++.dg/cpp0x/variadic164.C
  dde7a4f94fd2f85ccf0ba3cc25781017  gcc/testsuite/g++.dg/cpp0x/variadic165.C
  25f4afea2be8e5932cb9252659a1575a  gcc/testsuite/g++.dg/cpp0x/variadic166.C
  87b254fca5653194e506de7518b27c79  gcc/testsuite/g++.dg/cpp0x/variadic167.C
  d3fd316df69021643c9c08dc4c093e40  gcc/testsuite/g++.dg/cpp0x/variadic168.C
  a28c1ab6cd8292afea0a610ae4fdedcf  gcc/testsuite/g++.dg/cpp0x/variadic169.C
! 2fb64ae15bf16ba6ff25bdf758ec38b7  gcc/testsuite/g++.dg/cpp0x/variadic17.C
  84b1488344a831e41eed0626d0f5ab8d  gcc/testsuite/g++.dg/cpp0x/variadic170.C
  c597501b32c00762874bad3052d9f18d  gcc/testsuite/g++.dg/cpp0x/variadic171.C
  b6c10f547ba95724b8657987c0cf6e0e  gcc/testsuite/g++.dg/cpp0x/variadic172.C
*************** a1cfbfd1d513943453ec5c392ec8212f  gcc/te
*** 17873,17878 ****
--- 19117,19126 ----
  908e5186424a59fe18bcd9c5b80473e7  gcc/testsuite/g++.dg/cpp0x/variadic182.C
  92dec087f5d874e0808e9d7331d41987  gcc/testsuite/g++.dg/cpp0x/variadic183.C
  b895096fa1563dd3f9dcf7ad2cda2980  gcc/testsuite/g++.dg/cpp0x/variadic184.C
+ e5b6ed4caa73b15cee9b0b25fb9ba53b  gcc/testsuite/g++.dg/cpp0x/variadic185.C
+ 9c4f520664bcfde8131c7c1a0492fa3b  gcc/testsuite/g++.dg/cpp0x/variadic186.C
+ 24a33871559812490a9a3c674077b48a  gcc/testsuite/g++.dg/cpp0x/variadic187.C
+ 14f32cbff9290ecfbc28530d1f29a750  gcc/testsuite/g++.dg/cpp0x/variadic188.C
  d07d2dff70e4403857f709c6f88dd0d9  gcc/testsuite/g++.dg/cpp0x/variadic19.C
  2fa72711afa172c723554cf582b008c8  gcc/testsuite/g++.dg/cpp0x/variadic2.C
  263ca23f80cf33c1a49a4d4a564e8ac3  gcc/testsuite/g++.dg/cpp0x/variadic20.C
*************** d07d2dff70e4403857f709c6f88dd0d9  gcc/te
*** 17883,17889 ****
  50852853da733d2b91972e9a33c66c45  gcc/testsuite/g++.dg/cpp0x/variadic25.C
  007fa055b4c72f835c7945d7bd2adb58  gcc/testsuite/g++.dg/cpp0x/variadic26.C
  4ebaffc12510aa95c947d617df03243f  gcc/testsuite/g++.dg/cpp0x/variadic27.C
! a9c4af98975cc42fa29cbb53d4aaec26  gcc/testsuite/g++.dg/cpp0x/variadic28.C
  4710b3e65fdc7735948f575588e21df4  gcc/testsuite/g++.dg/cpp0x/variadic29.C
  1fd738469a5027d2f09aa3932e4490d6  gcc/testsuite/g++.dg/cpp0x/variadic3.C
  53e6fde1ee24af6c60d7aaed5d68e021  gcc/testsuite/g++.dg/cpp0x/variadic30.C
--- 19131,19137 ----
  50852853da733d2b91972e9a33c66c45  gcc/testsuite/g++.dg/cpp0x/variadic25.C
  007fa055b4c72f835c7945d7bd2adb58  gcc/testsuite/g++.dg/cpp0x/variadic26.C
  4ebaffc12510aa95c947d617df03243f  gcc/testsuite/g++.dg/cpp0x/variadic27.C
! c630898d7a87496cf2390862e92b9077  gcc/testsuite/g++.dg/cpp0x/variadic28.C
  4710b3e65fdc7735948f575588e21df4  gcc/testsuite/g++.dg/cpp0x/variadic29.C
  1fd738469a5027d2f09aa3932e4490d6  gcc/testsuite/g++.dg/cpp0x/variadic3.C
  53e6fde1ee24af6c60d7aaed5d68e021  gcc/testsuite/g++.dg/cpp0x/variadic30.C
*************** c102f0d85fd6376a485fdc9c34b693bb  gcc/te
*** 17964,17969 ****
--- 19212,19218 ----
  ea442e97957726fe8c0d1140c2aa795e  gcc/testsuite/g++.dg/cpp0x/variadic97.C
  a744c22a317467ee400758a7531d00e1  gcc/testsuite/g++.dg/cpp0x/variadic98.C
  59afc7eeb0a82f753a0f0856b9198ba8  gcc/testsuite/g++.dg/cpp0x/variadic99.C
+ 7c37bbe0f68be2a942e8a7591ac80365  gcc/testsuite/g++.dg/cpp0x/vt-116384.C
  e0bac3d7aa1877d61d0060b5ab51070a  gcc/testsuite/g++.dg/cpp0x/vt-33964.C
  969a83a6dfa95bb86bce932ed8d47004  gcc/testsuite/g++.dg/cpp0x/vt-34050.C
  68f52218bee5ae11a023b9c0fec5106a  gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C
*************** fe10132d07abc445cf58f99300dd5293  gcc/te
*** 18006,18012 ****
  efa56e661c1b93922e31accf4dc07df8  gcc/testsuite/g++.dg/cpp0x/vt-60130.C
  807e377941696e140fbbcccd051a50d1  gcc/testsuite/g++.dg/cpp0x/vt-62276.C
  8ac95c50a3d7168072927406cdd104eb  gcc/testsuite/g++.dg/cpp0x/vt-65071.C
! d8fa3c0c87cf46338e86be98f1bcc123  gcc/testsuite/g++.dg/cpp0x/vt-65790.C
  e7b5b70a40fc46137f51de2cf97bf7cd  gcc/testsuite/g++.dg/cpp0x/vt-88982.C
  f2fd005acb516521f99d057df5d3a68d  gcc/testsuite/g++.dg/cpp0x/warn-ovl1.C
  abea1f5e822e6917069778a5824b4379  gcc/testsuite/g++.dg/cpp0x/warn-ovl2.C
--- 19255,19262 ----
  efa56e661c1b93922e31accf4dc07df8  gcc/testsuite/g++.dg/cpp0x/vt-60130.C
  807e377941696e140fbbcccd051a50d1  gcc/testsuite/g++.dg/cpp0x/vt-62276.C
  8ac95c50a3d7168072927406cdd104eb  gcc/testsuite/g++.dg/cpp0x/vt-65071.C
! f97a721a772efa2fcd34b8e8d1f6d7d6  gcc/testsuite/g++.dg/cpp0x/vt-65790.C
! 17a8be737a7aa10ade56cd59729cc108  gcc/testsuite/g++.dg/cpp0x/vt-82936.C
  e7b5b70a40fc46137f51de2cf97bf7cd  gcc/testsuite/g++.dg/cpp0x/vt-88982.C
  f2fd005acb516521f99d057df5d3a68d  gcc/testsuite/g++.dg/cpp0x/warn-ovl1.C
  abea1f5e822e6917069778a5824b4379  gcc/testsuite/g++.dg/cpp0x/warn-ovl2.C
*************** b823b50bc430c6f0253adad46e2b9fea  gcc/te
*** 18014,18019 ****
--- 19264,19270 ----
  47cd48fad76b6ff749898de2bc0f7698  gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C
  63c4393f0d30cf4ece84ac2fd581cbe0  gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C
  69bce58b3399c242a6128960512da33a  gcc/testsuite/g++.dg/cpp0x/warn_cxx0x4.C
+ 40dd6b1c0109d38a5369c275d56f881d  gcc/testsuite/g++.dg/cpp0x/zero-init1.C
  5e4a99649ec4c892a39fa54f3643eb49  gcc/testsuite/g++.dg/cpp1y/69098-2.C
  c8a2c7e8b1e0cbd3443ab02738d85644  gcc/testsuite/g++.dg/cpp1y/69098.C
  8cb32d00716e6f14136f2c7d256f5456  gcc/testsuite/g++.dg/cpp1y/Wnarrowing1.C
*************** e301f1e1935905abefe3b24b50252da4  gcc/te
*** 18068,18074 ****
  bfd95cceb44d8c47db7bf1a36a86322d  gcc/testsuite/g++.dg/cpp1y/auto-fn42.C
  820221d75273b01d35f807e36bc12523  gcc/testsuite/g++.dg/cpp1y/auto-fn43.C
  9eb7dfe1e7ebd445e055643332f3d209  gcc/testsuite/g++.dg/cpp1y/auto-fn44.C
! 9a22a1737cf17a0ff1bc955329844867  gcc/testsuite/g++.dg/cpp1y/auto-fn45.C
  1559f78df9382ec0e0b1c2f4e7bfbf7d  gcc/testsuite/g++.dg/cpp1y/auto-fn46.C
  dd80de1b70fc9fb6f96337aa98d878ed  gcc/testsuite/g++.dg/cpp1y/auto-fn47.C
  9c209f027427ac6a65af30b753bfd4b7  gcc/testsuite/g++.dg/cpp1y/auto-fn48.C
--- 19319,19325 ----
  bfd95cceb44d8c47db7bf1a36a86322d  gcc/testsuite/g++.dg/cpp1y/auto-fn42.C
  820221d75273b01d35f807e36bc12523  gcc/testsuite/g++.dg/cpp1y/auto-fn43.C
  9eb7dfe1e7ebd445e055643332f3d209  gcc/testsuite/g++.dg/cpp1y/auto-fn44.C
! 187c94bfc3db8c059a739ac2dd410e67  gcc/testsuite/g++.dg/cpp1y/auto-fn45.C
  1559f78df9382ec0e0b1c2f4e7bfbf7d  gcc/testsuite/g++.dg/cpp1y/auto-fn46.C
  dd80de1b70fc9fb6f96337aa98d878ed  gcc/testsuite/g++.dg/cpp1y/auto-fn47.C
  9c209f027427ac6a65af30b753bfd4b7  gcc/testsuite/g++.dg/cpp1y/auto-fn48.C
*************** d67958b896eb1dae6f8862fd59b01c62  gcc/te
*** 18099,18106 ****
  637930aa51b16c9a514c1e2843645f75  gcc/testsuite/g++.dg/cpp1y/builtin_FUNCTION.C
  b95ecf876a00318b8f10685332dab36a  gcc/testsuite/g++.dg/cpp1y/builtin_location.C
  f3e3d98fcbe616df26f26eb779c66c1f  gcc/testsuite/g++.dg/cpp1y/complex_literals.h
! 22aa7b94d36d9e158c5c52dd546a0e7c  gcc/testsuite/g++.dg/cpp1y/complex_literals1.C
! 99847692cf2ccd072e419199625ee070  gcc/testsuite/g++.dg/cpp1y/complex_literals1a.C
  5f47973cdaddb1d27f6ea767e7275723  gcc/testsuite/g++.dg/cpp1y/complex_literals2.C
  a1995c633dded5a3445bad4fcc3b55cf  gcc/testsuite/g++.dg/cpp1y/complex_literals2a.C
  5b687d1f8c5ad813ae1f4dfa3142d5ad  gcc/testsuite/g++.dg/cpp1y/constexpr-101371-2.C
--- 19350,19357 ----
  637930aa51b16c9a514c1e2843645f75  gcc/testsuite/g++.dg/cpp1y/builtin_FUNCTION.C
  b95ecf876a00318b8f10685332dab36a  gcc/testsuite/g++.dg/cpp1y/builtin_location.C
  f3e3d98fcbe616df26f26eb779c66c1f  gcc/testsuite/g++.dg/cpp1y/complex_literals.h
! d2f91a663cdc4465a069fef68982e3ef  gcc/testsuite/g++.dg/cpp1y/complex_literals1.C
! 18b309c2dad00c0e289313af86e9b38e  gcc/testsuite/g++.dg/cpp1y/complex_literals1a.C
  5f47973cdaddb1d27f6ea767e7275723  gcc/testsuite/g++.dg/cpp1y/complex_literals2.C
  a1995c633dded5a3445bad4fcc3b55cf  gcc/testsuite/g++.dg/cpp1y/complex_literals2a.C
  5b687d1f8c5ad813ae1f4dfa3142d5ad  gcc/testsuite/g++.dg/cpp1y/constexpr-101371-2.C
*************** bff4672a992bc57b0432abbc32b3c2c9  gcc/te
*** 18116,18122 ****
  1d40cabd787f31f0fad7fcf842281e0d  gcc/testsuite/g++.dg/cpp1y/constexpr-110382.C
  c0c4053e9d0ac3fdafa8e18c09182922  gcc/testsuite/g++.dg/cpp1y/constexpr-110619.C
  2d72668eefa5659edd32ef8dabc1c48e  gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C
! 9b2030f5f70b0e913feb1b957c799f4f  gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C
  9ecc58eab147adafbf3780c51ed706fc  gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C
  d93e3fd296aeb9e52296327a0f0755cb  gcc/testsuite/g++.dg/cpp1y/constexpr-70265-2.C
  4549cd7ef9ad61651767a36edd2f8190  gcc/testsuite/g++.dg/cpp1y/constexpr-71537.C
--- 19367,19373 ----
  1d40cabd787f31f0fad7fcf842281e0d  gcc/testsuite/g++.dg/cpp1y/constexpr-110382.C
  c0c4053e9d0ac3fdafa8e18c09182922  gcc/testsuite/g++.dg/cpp1y/constexpr-110619.C
  2d72668eefa5659edd32ef8dabc1c48e  gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C
! fd3ea60479a528944a91cfd16e42839f  gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C
  9ecc58eab147adafbf3780c51ed706fc  gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C
  d93e3fd296aeb9e52296327a0f0755cb  gcc/testsuite/g++.dg/cpp1y/constexpr-70265-2.C
  4549cd7ef9ad61651767a36edd2f8190  gcc/testsuite/g++.dg/cpp1y/constexpr-71537.C
*************** ce3d96795da2089956df925a1a9c9815  gcc/te
*** 18173,18189 ****
  a8edd1159f1c66a732eaec9685596ff4  gcc/testsuite/g++.dg/cpp1y/constexpr-array6.C
  fdb8b6b86d13d007f2629fe0e79ef65b  gcc/testsuite/g++.dg/cpp1y/constexpr-array7.C
  212300c9a8da890339615d548652da69  gcc/testsuite/g++.dg/cpp1y/constexpr-array8.C
! 9c189b4b801bac3aaf8dffbbc66e22fc  gcc/testsuite/g++.dg/cpp1y/constexpr-assert1.C
! 717b5c723c35c334359c678ac4628aa8  gcc/testsuite/g++.dg/cpp1y/constexpr-assert2.C
  96e7ff76936ad5471dd6bfb8bb617ccc  gcc/testsuite/g++.dg/cpp1y/constexpr-assign1.C
  e994f9235ea884899f4cb5f923eca140  gcc/testsuite/g++.dg/cpp1y/constexpr-base1.C
  62c9fcd027436752619939db3ffca36e  gcc/testsuite/g++.dg/cpp1y/constexpr-base2.C
  e383dd00754b034ccf88071ffbf49978  gcc/testsuite/g++.dg/cpp1y/constexpr-base2a.C
  443fa5c73bd15f55a6b97bef44b05468  gcc/testsuite/g++.dg/cpp1y/constexpr-complex1.C
  9912061f6e14d9f4a1f557e23a4f89c2  gcc/testsuite/g++.dg/cpp1y/constexpr-copy1.C
  464341f29e9993d1f1a167321ef412cf  gcc/testsuite/g++.dg/cpp1y/constexpr-copy2.C
  e6815ab618d6af99025ddeacf6ab0545  gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C
  88282f8bf693ffa125633a68f4b3c32e  gcc/testsuite/g++.dg/cpp1y/constexpr-diag1.C
  4808950072f67f78922c9046e31e486d  gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C
  1108af7f1a7e79d87b94e4c2b3730c9d  gcc/testsuite/g++.dg/cpp1y/constexpr-elision1.C
  9b6ce1c2202c1ce9ea82fda5f060499b  gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C
--- 19424,19442 ----
  a8edd1159f1c66a732eaec9685596ff4  gcc/testsuite/g++.dg/cpp1y/constexpr-array6.C
  fdb8b6b86d13d007f2629fe0e79ef65b  gcc/testsuite/g++.dg/cpp1y/constexpr-array7.C
  212300c9a8da890339615d548652da69  gcc/testsuite/g++.dg/cpp1y/constexpr-array8.C
! a89279abfab0639143c5a2fe29b21829  gcc/testsuite/g++.dg/cpp1y/constexpr-assert1.C
! 52a229b92919a8cbea59380a1264434c  gcc/testsuite/g++.dg/cpp1y/constexpr-assert2.C
  96e7ff76936ad5471dd6bfb8bb617ccc  gcc/testsuite/g++.dg/cpp1y/constexpr-assign1.C
  e994f9235ea884899f4cb5f923eca140  gcc/testsuite/g++.dg/cpp1y/constexpr-base1.C
  62c9fcd027436752619939db3ffca36e  gcc/testsuite/g++.dg/cpp1y/constexpr-base2.C
  e383dd00754b034ccf88071ffbf49978  gcc/testsuite/g++.dg/cpp1y/constexpr-base2a.C
  443fa5c73bd15f55a6b97bef44b05468  gcc/testsuite/g++.dg/cpp1y/constexpr-complex1.C
+ 57318e47f2033f13a5a726f1bb09a856  gcc/testsuite/g++.dg/cpp1y/constexpr-complex2.C
  9912061f6e14d9f4a1f557e23a4f89c2  gcc/testsuite/g++.dg/cpp1y/constexpr-copy1.C
  464341f29e9993d1f1a167321ef412cf  gcc/testsuite/g++.dg/cpp1y/constexpr-copy2.C
  e6815ab618d6af99025ddeacf6ab0545  gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C
  88282f8bf693ffa125633a68f4b3c32e  gcc/testsuite/g++.dg/cpp1y/constexpr-diag1.C
+ db74236b325c7811e8a54d7701dabb9a  gcc/testsuite/g++.dg/cpp1y/constexpr-diag2.C
  4808950072f67f78922c9046e31e486d  gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C
  1108af7f1a7e79d87b94e4c2b3730c9d  gcc/testsuite/g++.dg/cpp1y/constexpr-elision1.C
  9b6ce1c2202c1ce9ea82fda5f060499b  gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C
*************** af9863e9fca568fa5ae3ad41b051cf84  gcc/te
*** 18196,18201 ****
--- 19449,19455 ----
  3e9dd485a2a6d99132c92a6d04b96ee9  gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C
  ab56709d31a56066e2a96779bd194779  gcc/testsuite/g++.dg/cpp1y/constexpr-instantiate.C
  a3eb2783b3258724406759b817abc91a  gcc/testsuite/g++.dg/cpp1y/constexpr-label.C
+ 883c394dbc545754b070a27214431533  gcc/testsuite/g++.dg/cpp1y/constexpr-lambda1.C
  1297f76fa7088a7c9747166ee879af11  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime1.C
  477f60aba41bed3324625dc7a00211dc  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime2.C
  0937692c52b3c42dcf0f68d41ef28785  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime3.C
*************** b6f3cbabd3fb752ace73590e7135e551  gcc/te
*** 18232,18239 ****
--- 19486,19498 ----
  6990c78a168ceeadf094bc1af7e04a70  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi7b.C
  8e2e9946848c5ffc12f5f2da3fb70c72  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi8.C
  5d70ae105705b7db38c2cb81da31b2fc  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi9.C
+ 91cb162a85f33cacbcd142865aa3c860  gcc/testsuite/g++.dg/cpp1y/constexpr-prvalue1.C
+ 4eae6872a609fdcaac00652522f49eee  gcc/testsuite/g++.dg/cpp1y/constexpr-prvalue1a.C
+ 50a5f46adb4bf1a2656bb5217d508c61  gcc/testsuite/g++.dg/cpp1y/constexpr-prvalue2.C
+ 62f94e4b7bca6fc3f8dd77e6870a7665  gcc/testsuite/g++.dg/cpp1y/constexpr-prvalue3.C
  14a6242de0a2e59abd4b2ccf95495c91  gcc/testsuite/g++.dg/cpp1y/constexpr-ptrsub1.C
  3ebd2f678927c3d6b60ebc749680a96e  gcc/testsuite/g++.dg/cpp1y/constexpr-recursion1.C
+ b3f600f6748096c5ac4271189599f1d0  gcc/testsuite/g++.dg/cpp1y/constexpr-recursion2.C
  777febedb9b77383ec600e70a1668eb9  gcc/testsuite/g++.dg/cpp1y/constexpr-ref1.C
  60f807456796c8ef2678ab89851a8dd9  gcc/testsuite/g++.dg/cpp1y/constexpr-reinterpret3.C
  4f2e969a81be7a57cb28aad1fa0f584e  gcc/testsuite/g++.dg/cpp1y/constexpr-reinterpret4.C
*************** e210eaaa7545615d95f00423c888ec15  gcc/te
*** 18298,18303 ****
--- 19557,19563 ----
  29d019b91f9e9754780b3f7d3b824a43  gcc/testsuite/g++.dg/cpp1y/decltype-auto6.C
  a0963c46378623804788982ece221428  gcc/testsuite/g++.dg/cpp1y/decltype-auto7.C
  6656a414d9dfcfde451bf4c7cda15e23  gcc/testsuite/g++.dg/cpp1y/decltype-auto8.C
+ bdf42806bc072f01f4ad0c2f053df450  gcc/testsuite/g++.dg/cpp1y/decltype-auto9.C
  516d0cef75f4267f67d755a810807bc2  gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C
  689cbb9207e775c0f7572b0587fbd4fd  gcc/testsuite/g++.dg/cpp1y/digit-sep-line-neg.C
  b0b8339395130310f925dd038dff1c6c  gcc/testsuite/g++.dg/cpp1y/digit-sep-line.C
*************** c4436fb0148cf765eb9ae5580af8f058  gcc/te
*** 18310,18316 ****
  f76edece5ff5aa3ce9cb5508f587b65c  gcc/testsuite/g++.dg/cpp1y/feat-cxx11-neg.C
  144ddec296f95158abf3660366239e78  gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
  a3ed2dff5176ed6eef5ae2d57cf13c3c  gcc/testsuite/g++.dg/cpp1y/feat-cxx14-neg.C
! 34f11ea3f7b73182bef821abad7fe1e0  gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C
  780e21a88c3826bf19ae69681b53fa5a  gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C
  6c845bae306091a0871d09eb650f7346  gcc/testsuite/g++.dg/cpp1y/feat-cxx98.C
  8a8b78afcad658910cf21c4e9f8c087b  gcc/testsuite/g++.dg/cpp1y/feat-neg.C
--- 19570,19576 ----
  f76edece5ff5aa3ce9cb5508f587b65c  gcc/testsuite/g++.dg/cpp1y/feat-cxx11-neg.C
  144ddec296f95158abf3660366239e78  gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
  a3ed2dff5176ed6eef5ae2d57cf13c3c  gcc/testsuite/g++.dg/cpp1y/feat-cxx14-neg.C
! d81d9575853f8cf04f34699c180799a9  gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C
  780e21a88c3826bf19ae69681b53fa5a  gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C
  6c845bae306091a0871d09eb650f7346  gcc/testsuite/g++.dg/cpp1y/feat-cxx98.C
  8a8b78afcad658910cf21c4e9f8c087b  gcc/testsuite/g++.dg/cpp1y/feat-neg.C
*************** a5fcad1d0708a6218c6fe69c1871df02  gcc/te
*** 18326,18333 ****
  613f8f1a0e37b58fd3edbb783043189f  gcc/testsuite/g++.dg/cpp1y/lambda-defarg7.C
  0dd8ee41a3d0ab18cecf9a17d6956776  gcc/testsuite/g++.dg/cpp1y/lambda-generic-100362.C
  8323a8b2c633684a23115187598b47d8  gcc/testsuite/g++.dg/cpp1y/lambda-generic-107437.C
  acb467e6576c23ea04ca8d80f1c8a11b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69078-1.C
! fe7ad46667b9e092ad808e656e9427de  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69078-2.C
  b2b66ca7cef468617193eb813e2dac6a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69977.C
  a7934d89f8791f62bbbf0b9d7fa7ece6  gcc/testsuite/g++.dg/cpp1y/lambda-generic-70570.C
  06f1db80f8f19768fce87da177cfc400  gcc/testsuite/g++.dg/cpp1y/lambda-generic-77914.C
--- 19586,19594 ----
  613f8f1a0e37b58fd3edbb783043189f  gcc/testsuite/g++.dg/cpp1y/lambda-defarg7.C
  0dd8ee41a3d0ab18cecf9a17d6956776  gcc/testsuite/g++.dg/cpp1y/lambda-generic-100362.C
  8323a8b2c633684a23115187598b47d8  gcc/testsuite/g++.dg/cpp1y/lambda-generic-107437.C
+ 9b89364ccec98909d6159c17f6a73b89  gcc/testsuite/g++.dg/cpp1y/lambda-generic-117778.C
  acb467e6576c23ea04ca8d80f1c8a11b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69078-1.C
! f2f131a33a6aca97c621e1a2b3dfe1c4  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69078-2.C
  b2b66ca7cef468617193eb813e2dac6a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-69977.C
  a7934d89f8791f62bbbf0b9d7fa7ece6  gcc/testsuite/g++.dg/cpp1y/lambda-generic-70570.C
  06f1db80f8f19768fce87da177cfc400  gcc/testsuite/g++.dg/cpp1y/lambda-generic-77914.C
*************** ea28e7c282edd48828404251cc6bab36  gcc/te
*** 18411,18418 ****
  c0a147006244a6b57ce3f875f94e64bc  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic16.C
  6646d8e79cf76118d275f7a8c0a7f36a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic17.C
  53a8d2745f697c04b4f7684f3bd6da2b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic18.C
! c9ebf7c65d25936f6751b5ecbf146c97  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C
! 723f502d3b40be6c90106e7124cc9e69  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic2.C
  d146dfb92f0c30b11d9e7d20af8428d9  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C
  a85138cb5fc79cb28fc85f398f8a118d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic21.C
  f84ec2eb06c8668cac8178c4a890b764  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic22.C
--- 19672,19679 ----
  c0a147006244a6b57ce3f875f94e64bc  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic16.C
  6646d8e79cf76118d275f7a8c0a7f36a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic17.C
  53a8d2745f697c04b4f7684f3bd6da2b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic18.C
! 94c4d71e5ff441c37057ea2bfa19bb00  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C
! a75b833835454886a420c0def5d3f41e  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic2.C
  d146dfb92f0c30b11d9e7d20af8428d9  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C
  a85138cb5fc79cb28fc85f398f8a118d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic21.C
  f84ec2eb06c8668cac8178c4a890b764  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic22.C
*************** cbfee1b0e8fcb0b13c5522590bdee561  gcc/te
*** 18423,18435 ****
  ce17689f148f7788b7ec7df9e8d690b7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic7.C
  e54efd0318ddcbe724e0d704c7d885ed  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic8.C
  7931e0c4d7613530b24732e5c7c85d2a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic9.C
! 27c0cfb757a137595bb2bce8e13878a3  gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C
! 684ac1c6a7943c840757384c975d02a1  gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C
  cc6586d67eedf5854ebc2931fb7d47a3  gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C
  436f8b79fa87285922038177587ab157  gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C
  946f59c2dd9c3a634f4e09b219af302c  gcc/testsuite/g++.dg/cpp1y/lambda-generic.C
  ca76d1cf09a7e8a0d6dcf484103a301f  gcc/testsuite/g++.dg/cpp1y/lambda-ice1.C
  cf53809dddf10444ecf4edb30fe8fb83  gcc/testsuite/g++.dg/cpp1y/lambda-ice2.C
  a37fb46d4b08c91fb2119f46b9d04ce0  gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C
  cd4be222672b195ed8554a2e99c88e68  gcc/testsuite/g++.dg/cpp1y/lambda-init.C
  92794dd2e4beab250816493d67c15717  gcc/testsuite/g++.dg/cpp1y/lambda-init1.C
--- 19684,19699 ----
  ce17689f148f7788b7ec7df9e8d690b7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic7.C
  e54efd0318ddcbe724e0d704c7d885ed  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic8.C
  7931e0c4d7613530b24732e5c7c85d2a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic9.C
! 9acd765f36c9f3266dd3a67243059b14  gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C
! 633733798deea88355bf8fa3590feb7d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C
  cc6586d67eedf5854ebc2931fb7d47a3  gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C
  436f8b79fa87285922038177587ab157  gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C
  946f59c2dd9c3a634f4e09b219af302c  gcc/testsuite/g++.dg/cpp1y/lambda-generic.C
  ca76d1cf09a7e8a0d6dcf484103a301f  gcc/testsuite/g++.dg/cpp1y/lambda-ice1.C
  cf53809dddf10444ecf4edb30fe8fb83  gcc/testsuite/g++.dg/cpp1y/lambda-ice2.C
+ aa63d1c91d96ce04591ab96d6dbc47fe  gcc/testsuite/g++.dg/cpp1y/lambda-ice3.C
+ ac4bcd3d876c048fddea69e36aa54538  gcc/testsuite/g++.dg/cpp1y/lambda-ice3a.C
+ 3c70c129edf9397287edad85adb5b753  gcc/testsuite/g++.dg/cpp1y/lambda-ice4.C
  a37fb46d4b08c91fb2119f46b9d04ce0  gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C
  cd4be222672b195ed8554a2e99c88e68  gcc/testsuite/g++.dg/cpp1y/lambda-init.C
  92794dd2e4beab250816493d67c15717  gcc/testsuite/g++.dg/cpp1y/lambda-init1.C
*************** f2fd3b3d96f31c07233bb82ba0c0f2f5  gcc/te
*** 18451,18457 ****
  111fa5824efc658c838dda25e7968d0c  gcc/testsuite/g++.dg/cpp1y/lambda-init5.C
  fa5d36139114d3424b46d4a35fdcc931  gcc/testsuite/g++.dg/cpp1y/lambda-init6.C
  41a7469eb46d8fab30de1be7c115e583  gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
! eeda9ed3e95d7a31c74fcdebd07abf15  gcc/testsuite/g++.dg/cpp1y/lambda-init8.C
  c9c747d6c51f186d14465f9e9bb8db01  gcc/testsuite/g++.dg/cpp1y/lambda-init9.C
  1f32958ca3abb177b4b32b06bb770787  gcc/testsuite/g++.dg/cpp1y/lambda-mangle-1-11.C
  9fad1c8434d555bebddc51456281c7ed  gcc/testsuite/g++.dg/cpp1y/lambda-mangle-1-17.C
--- 19715,19721 ----
  111fa5824efc658c838dda25e7968d0c  gcc/testsuite/g++.dg/cpp1y/lambda-init5.C
  fa5d36139114d3424b46d4a35fdcc931  gcc/testsuite/g++.dg/cpp1y/lambda-init6.C
  41a7469eb46d8fab30de1be7c115e583  gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
! 044283609674b748d5e55648001915d5  gcc/testsuite/g++.dg/cpp1y/lambda-init8.C
  c9c747d6c51f186d14465f9e9bb8db01  gcc/testsuite/g++.dg/cpp1y/lambda-init9.C
  1f32958ca3abb177b4b32b06bb770787  gcc/testsuite/g++.dg/cpp1y/lambda-mangle-1-11.C
  9fad1c8434d555bebddc51456281c7ed  gcc/testsuite/g++.dg/cpp1y/lambda-mangle-1-17.C
*************** a0fd7a682321878b07d220b8dae15ac3  gcc/te
*** 18463,18476 ****
  5905dcf4a0cf928e5f5eef8ea574d3ee  gcc/testsuite/g++.dg/cpp1y/left-shift-2.C
  8505d7bc855e9e02e1d7a75fe803d027  gcc/testsuite/g++.dg/cpp1y/mangle1.C
  eb977f661703ff719e16118a8a31d3ea  gcc/testsuite/g++.dg/cpp1y/new1.C
! b7000c26c6ee8cc9d890f03d21c575eb  gcc/testsuite/g++.dg/cpp1y/new2.C
  191394a77e8e6ca6aeea943de1c7aba5  gcc/testsuite/g++.dg/cpp1y/noexcept1.C
  dc85812a9a16f085139b655ebe8b721c  gcc/testsuite/g++.dg/cpp1y/noexcept2.C
  bedfe39f995dd913a1715072975f6a1c  gcc/testsuite/g++.dg/cpp1y/nontype1.C
  4707396951c53026c3f457ecd9db5312  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr1.C
  5326d1798f69e0f75031ab294cf8dd21  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr10.C
  c9dde900e1dd03846724a7195332d8ea  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr11.C
! a145c30f655e3947d4d12895d47f8848  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr12.C
  620462324dd7279425148f8c5c72821a  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C
  e4294373ac83b9285b6aebd856827aa9  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr14.C
  aa7c244500a0cc89941ec9bde7ab3b31  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr15.C
--- 19727,19740 ----
  5905dcf4a0cf928e5f5eef8ea574d3ee  gcc/testsuite/g++.dg/cpp1y/left-shift-2.C
  8505d7bc855e9e02e1d7a75fe803d027  gcc/testsuite/g++.dg/cpp1y/mangle1.C
  eb977f661703ff719e16118a8a31d3ea  gcc/testsuite/g++.dg/cpp1y/new1.C
! 3fa52e92d7b32b973c4d61702e81af05  gcc/testsuite/g++.dg/cpp1y/new2.C
  191394a77e8e6ca6aeea943de1c7aba5  gcc/testsuite/g++.dg/cpp1y/noexcept1.C
  dc85812a9a16f085139b655ebe8b721c  gcc/testsuite/g++.dg/cpp1y/noexcept2.C
  bedfe39f995dd913a1715072975f6a1c  gcc/testsuite/g++.dg/cpp1y/nontype1.C
  4707396951c53026c3f457ecd9db5312  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr1.C
  5326d1798f69e0f75031ab294cf8dd21  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr10.C
  c9dde900e1dd03846724a7195332d8ea  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr11.C
! a062489599b9a90eca19e2ffbffcf893  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr12.C
  620462324dd7279425148f8c5c72821a  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C
  e4294373ac83b9285b6aebd856827aa9  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr14.C
  aa7c244500a0cc89941ec9bde7ab3b31  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr15.C
*************** a4faa7f44f43076a809225334e5cefa5  gcc/te
*** 18481,18486 ****
--- 19745,19752 ----
  6181386fced4d11038690bcc0729a80d  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr2.C
  f044d441fed28ee965359a757ec1cb99  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr20.C
  8ef34326c4d74e3fb9d0c3c36539b046  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr21.C
+ 1ebdc149213f560b270e220d4f66a61a  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr22.C
+ f4d45dac14b0ccdde860246f0da91909  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr23.C
  379f3d0c83382658777fb1c2f47ed88a  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr3.C
  d986a2e035160bd06d7fd81798876e53  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr4.C
  f487f4137e5fa352c9bff3ababd18d3c  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr5.C
*************** f5ccbfc0fb9fd723ce3d0565bf79908b  gcc/te
*** 18501,18507 ****
  a59e5fd28eae5235838080483b6939a6  gcc/testsuite/g++.dg/cpp1y/phoobhar.h
  371feb662742879744f401685dc5a5e0  gcc/testsuite/g++.dg/cpp1y/pr104031.C
  eec419e7e2d598da544dfb7c3d14b09f  gcc/testsuite/g++.dg/cpp1y/pr108606.C
! 7d18afb36bcaa55af2030c6546d5df38  gcc/testsuite/g++.dg/cpp1y/pr57640.C
  854092e98063500453c7c800d8eb73a5  gcc/testsuite/g++.dg/cpp1y/pr57644.C
  247d52471516e4b902d29d652eae1a51  gcc/testsuite/g++.dg/cpp1y/pr58533.C
  fcd7af7fef98efaa8babe7825f41330a  gcc/testsuite/g++.dg/cpp1y/pr58637.C
--- 19767,19775 ----
  a59e5fd28eae5235838080483b6939a6  gcc/testsuite/g++.dg/cpp1y/phoobhar.h
  371feb662742879744f401685dc5a5e0  gcc/testsuite/g++.dg/cpp1y/pr104031.C
  eec419e7e2d598da544dfb7c3d14b09f  gcc/testsuite/g++.dg/cpp1y/pr108606.C
! 979dd4bb4283165eecbfd216d4e3ff52  gcc/testsuite/g++.dg/cpp1y/pr118534.C
! 89d389075a04cc943c2a842b0dbe9bb7  gcc/testsuite/g++.dg/cpp1y/pr118923.C
! 928c4c8be6a37d8563e6e5e9f0f9fe04  gcc/testsuite/g++.dg/cpp1y/pr57640.C
  854092e98063500453c7c800d8eb73a5  gcc/testsuite/g++.dg/cpp1y/pr57644.C
  247d52471516e4b902d29d652eae1a51  gcc/testsuite/g++.dg/cpp1y/pr58533.C
  fcd7af7fef98efaa8babe7825f41330a  gcc/testsuite/g++.dg/cpp1y/pr58637.C
*************** ccdf243ad72b9b0a028429d373468fef  gcc/te
*** 18527,18533 ****
  36ea8d632059da318eba95db916a7d67  gcc/testsuite/g++.dg/cpp1y/pr61636-1.C
  9b956ed4d6ed5d2856ccf34af41742c3  gcc/testsuite/g++.dg/cpp1y/pr61636-2.C
  8b18feb5bcdddcab93132675568377e3  gcc/testsuite/g++.dg/cpp1y/pr61636-3.C
! c3f1913cb028d278739938fb67306ebd  gcc/testsuite/g++.dg/cpp1y/pr63996.C
  2c3711481ac610009a2b6d143c205af4  gcc/testsuite/g++.dg/cpp1y/pr64382.C
  2bf768dd7e19ea1f0872089c05d29aeb  gcc/testsuite/g++.dg/cpp1y/pr64626-1.C
  b82fb5e4a473d7355f2d603a5f9c0809  gcc/testsuite/g++.dg/cpp1y/pr64626-2.C
--- 19795,19801 ----
  36ea8d632059da318eba95db916a7d67  gcc/testsuite/g++.dg/cpp1y/pr61636-1.C
  9b956ed4d6ed5d2856ccf34af41742c3  gcc/testsuite/g++.dg/cpp1y/pr61636-2.C
  8b18feb5bcdddcab93132675568377e3  gcc/testsuite/g++.dg/cpp1y/pr61636-3.C
! 01a9f1499b262b583230e0a52a6bdc8b  gcc/testsuite/g++.dg/cpp1y/pr63996.C
  2c3711481ac610009a2b6d143c205af4  gcc/testsuite/g++.dg/cpp1y/pr64382.C
  2bf768dd7e19ea1f0872089c05d29aeb  gcc/testsuite/g++.dg/cpp1y/pr64626-1.C
  b82fb5e4a473d7355f2d603a5f9c0809  gcc/testsuite/g++.dg/cpp1y/pr64626-2.C
*************** b1dd0e1128f26d2c0df901543e326c60  gcc/te
*** 18555,18561 ****
  c008d1c5e0d0e13a914b30aa87836359  gcc/testsuite/g++.dg/cpp1y/pr77585.C
  327f5c8103ec847a2cb380cd3ea722d2  gcc/testsuite/g++.dg/cpp1y/pr77591.C
  190a08c25c33280883a13789bf3fbdcd  gcc/testsuite/g++.dg/cpp1y/pr77739.C
! cda4d418155a1ac5ba05c018629e6bc3  gcc/testsuite/g++.dg/cpp1y/pr77786.C
  1caca616a7e85ed401c3bf7d9effc478  gcc/testsuite/g++.dg/cpp1y/pr77830.C
  84325df3395b9dd4bfb519eb8c6d5b7c  gcc/testsuite/g++.dg/cpp1y/pr78523.C
  29d67e262203e2ec874f3cd169d02d57  gcc/testsuite/g++.dg/cpp1y/pr78550.C
--- 19823,19829 ----
  c008d1c5e0d0e13a914b30aa87836359  gcc/testsuite/g++.dg/cpp1y/pr77585.C
  327f5c8103ec847a2cb380cd3ea722d2  gcc/testsuite/g++.dg/cpp1y/pr77591.C
  190a08c25c33280883a13789bf3fbdcd  gcc/testsuite/g++.dg/cpp1y/pr77739.C
! cc8048a2bc2f4d2db5244c1d700bbeca  gcc/testsuite/g++.dg/cpp1y/pr77786.C
  1caca616a7e85ed401c3bf7d9effc478  gcc/testsuite/g++.dg/cpp1y/pr77830.C
  84325df3395b9dd4bfb519eb8c6d5b7c  gcc/testsuite/g++.dg/cpp1y/pr78523.C
  29d67e262203e2ec874f3cd169d02d57  gcc/testsuite/g++.dg/cpp1y/pr78550.C
*************** eed72e4e3c9aec24d904cb1baa5f2711  gcc/te
*** 18590,18603 ****
  11abcca649e7c260d96b20dd2bb71bc7  gcc/testsuite/g++.dg/cpp1y/pr85076.C
  e4968a83309cb7b0ed242d3d6971a6a3  gcc/testsuite/g++.dg/cpp1y/pr87322.C
  82895ea6b585468afa3ea096948a4f4d  gcc/testsuite/g++.dg/cpp1y/pr87410.C
! c25e5ab56f549206e3abcdde00c1515e  gcc/testsuite/g++.dg/cpp1y/pr88872.C
  76d3c8355d513d753398e1184e4c4ece  gcc/testsuite/g++.dg/cpp1y/pr89767.C
  c467fa18d9fd990ded06e474c9bddf3b  gcc/testsuite/g++.dg/cpp1y/pr90996.C
  7d645783aac5a4916b59afe86e71ea63  gcc/testsuite/g++.dg/cpp1y/pr91845.C
  00fd55359af11227a5a4b86e14abbb87  gcc/testsuite/g++.dg/cpp1y/pr94066-2.C
  b0cb037b3d1369f48884f81384e62dbb  gcc/testsuite/g++.dg/cpp1y/pr94066-3.C
  bf131a7532349a5471d38a10151a773d  gcc/testsuite/g++.dg/cpp1y/pr94066.C
! ab8012aa0dfa04189dc1ec2234890234  gcc/testsuite/g++.dg/cpp1y/pr95226.C
  ac3a3cc471361b1fc9f3e55ad12dd7a8  gcc/testsuite/g++.dg/cpp1y/regress1.C
  9a759de4b7ac375d3c274acdf73c4fbe  gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C
  aeb199bf9a897359b6d538b5bce4e5ef  gcc/testsuite/g++.dg/cpp1y/sized-dealloc2.C
--- 19858,19871 ----
  11abcca649e7c260d96b20dd2bb71bc7  gcc/testsuite/g++.dg/cpp1y/pr85076.C
  e4968a83309cb7b0ed242d3d6971a6a3  gcc/testsuite/g++.dg/cpp1y/pr87322.C
  82895ea6b585468afa3ea096948a4f4d  gcc/testsuite/g++.dg/cpp1y/pr87410.C
! 52dff2e88ad707a2225508f7e1586839  gcc/testsuite/g++.dg/cpp1y/pr88872.C
  76d3c8355d513d753398e1184e4c4ece  gcc/testsuite/g++.dg/cpp1y/pr89767.C
  c467fa18d9fd990ded06e474c9bddf3b  gcc/testsuite/g++.dg/cpp1y/pr90996.C
  7d645783aac5a4916b59afe86e71ea63  gcc/testsuite/g++.dg/cpp1y/pr91845.C
  00fd55359af11227a5a4b86e14abbb87  gcc/testsuite/g++.dg/cpp1y/pr94066-2.C
  b0cb037b3d1369f48884f81384e62dbb  gcc/testsuite/g++.dg/cpp1y/pr94066-3.C
  bf131a7532349a5471d38a10151a773d  gcc/testsuite/g++.dg/cpp1y/pr94066.C
! e86de4218c5182904517367edd27595d  gcc/testsuite/g++.dg/cpp1y/pr95226.C
  ac3a3cc471361b1fc9f3e55ad12dd7a8  gcc/testsuite/g++.dg/cpp1y/regress1.C
  9a759de4b7ac375d3c274acdf73c4fbe  gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C
  aeb199bf9a897359b6d538b5bce4e5ef  gcc/testsuite/g++.dg/cpp1y/sized-dealloc2.C
*************** cb697dbebf15777f13401f1c939461d2  gcc/te
*** 18609,18621 ****
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/g++.dg/cpp1y/testinc/phoobhar.h
  40e1fb90caf3ae2b835a8a4a619455dc  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C
  45f2b838d7063fd1a73f88697ffb1238  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-sfinae-neg.C
! 3204e0d7a6967bb1fa9b56e97b52be00  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-sfinae.C
! f8c6b3b8e59cc2bba77bfc6edcc4f323  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-vs-std-literal-operator.C
  4411467d48359b52e17668de7646ed54  gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C
  d639da3c607ffc3d48291f9c5c18bc46  gcc/testsuite/g++.dg/cpp1y/udlit-char-template2.C
  1dc9c54a8befc5d2113798e9e09e288e  gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C
  ccacbb847e84ca3cc793998faff8def8  gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C
! 2413c7ebb38fc82e48254c357136c380  gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C
  03a3cb6911276f2352529a6145262827  gcc/testsuite/g++.dg/cpp1y/var-templ-array1.C
  c7fba078751338c05bbce0c8c274e58d  gcc/testsuite/g++.dg/cpp1y/var-templ1.C
  99e14acf4b0584c5405849ca2bac0be8  gcc/testsuite/g++.dg/cpp1y/var-templ10.C
--- 19877,19889 ----
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/g++.dg/cpp1y/testinc/phoobhar.h
  40e1fb90caf3ae2b835a8a4a619455dc  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C
  45f2b838d7063fd1a73f88697ffb1238  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-sfinae-neg.C
! 2bbe05a243b403755b74d9c2d48ef925  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-sfinae.C
! b8349ad8a391a48933067dfcf9f24145  gcc/testsuite/g++.dg/cpp1y/udlit-char-template-vs-std-literal-operator.C
  4411467d48359b52e17668de7646ed54  gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C
  d639da3c607ffc3d48291f9c5c18bc46  gcc/testsuite/g++.dg/cpp1y/udlit-char-template2.C
  1dc9c54a8befc5d2113798e9e09e288e  gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C
  ccacbb847e84ca3cc793998faff8def8  gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C
! ef6398cfc1b9512131b5d944feeaccc3  gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C
  03a3cb6911276f2352529a6145262827  gcc/testsuite/g++.dg/cpp1y/var-templ-array1.C
  c7fba078751338c05bbce0c8c274e58d  gcc/testsuite/g++.dg/cpp1y/var-templ1.C
  99e14acf4b0584c5405849ca2bac0be8  gcc/testsuite/g++.dg/cpp1y/var-templ10.C
*************** c22e1405c91d95d32ec012cae1f23ccc  gcc/te
*** 18708,18720 ****
  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
! f82f70352e70742cc985b48be0774ebe  gcc/testsuite/g++.dg/cpp1y/vla10.C
! e2f6d00be9a775652e1cdb9a3155981c  gcc/testsuite/g++.dg/cpp1y/vla2.C
  f578ef92ec8a79f6e9dc1a030af56203  gcc/testsuite/g++.dg/cpp1y/vla4.C
  3d4e6365785548d4e5835010e60e49e1  gcc/testsuite/g++.dg/cpp1y/vla5.C
! 4afdbc457b568a33cc23a10e3e847f5b  gcc/testsuite/g++.dg/cpp1y/vla6.C
  8e58021161b1a211a4a425dac65708b1  gcc/testsuite/g++.dg/cpp1y/vla7.C
! 3f4d64f9b145e0e7a5baaf745f3c0783  gcc/testsuite/g++.dg/cpp1y/vla8.C
  680fb504e87de1198474240e9f5b0573  gcc/testsuite/g++.dg/cpp1y/vla9.C
  d9d52b8fe2f970e02f1be30318793801  gcc/testsuite/g++.dg/cpp1z/Wpessimizing-move1.C
  03237ed8ef5d96f1a58edcbd6d1c7f00  gcc/testsuite/g++.dg/cpp1z/aggr-base1.C
--- 19976,19988 ----
  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
  3d4e6365785548d4e5835010e60e49e1  gcc/testsuite/g++.dg/cpp1y/vla5.C
! 0991f484e4d12dc3bf62bad573411bc2  gcc/testsuite/g++.dg/cpp1y/vla6.C
  8e58021161b1a211a4a425dac65708b1  gcc/testsuite/g++.dg/cpp1y/vla7.C
! 2df0c8d477cf83c2d77f93f7a00e04a8  gcc/testsuite/g++.dg/cpp1y/vla8.C
  680fb504e87de1198474240e9f5b0573  gcc/testsuite/g++.dg/cpp1y/vla9.C
  d9d52b8fe2f970e02f1be30318793801  gcc/testsuite/g++.dg/cpp1z/Wpessimizing-move1.C
  03237ed8ef5d96f1a58edcbd6d1c7f00  gcc/testsuite/g++.dg/cpp1z/aggr-base1.C
*************** fec5cec13e8a17476aae459e74aa149b  gcc/te
*** 18734,18747 ****
  61c28771270a9d7c9e9c8ad6ed412fd4  gcc/testsuite/g++.dg/cpp1z/aggr-base9.C
  29ef529ef6428e81f6001c7d90042d38  gcc/testsuite/g++.dg/cpp1z/aligned-new1.C
  f874c08bc54ce2c6027cdae5de140198  gcc/testsuite/g++.dg/cpp1z/aligned-new2.C
! 60bc831a68a3e1f3e3007ae876e1d852  gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
  ef7495e58b04450ecb727d071ddfecfa  gcc/testsuite/g++.dg/cpp1z/aligned-new4.C
  ca10f046e47ea09ba5b87084372f1ce2  gcc/testsuite/g++.dg/cpp1z/aligned-new4a.C
  15779dfebe4d18986ed2044d4ec8287b  gcc/testsuite/g++.dg/cpp1z/aligned-new5.C
  4dbddfffb31fb9d4ab9b40b6ac489d84  gcc/testsuite/g++.dg/cpp1z/aligned-new6.C
  c5e8ac858eac19a1f1f10709e9b49389  gcc/testsuite/g++.dg/cpp1z/aligned-new7.C
  1c005f415746635350d5fd1bf3068b93  gcc/testsuite/g++.dg/cpp1z/aligned-new8.C
! 177df6f1f169137815bb6b89c7a72a37  gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
  754a7e408d065704f738891ba703e281  gcc/testsuite/g++.dg/cpp1z/array-prvalue1.C
  dea62fa85e86450c80389ea639cb2473  gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C
  6e5d2ff992223e00df24638490856670  gcc/testsuite/g++.dg/cpp1z/array-prvalue3.C
--- 20002,20015 ----
  61c28771270a9d7c9e9c8ad6ed412fd4  gcc/testsuite/g++.dg/cpp1z/aggr-base9.C
  29ef529ef6428e81f6001c7d90042d38  gcc/testsuite/g++.dg/cpp1z/aligned-new1.C
  f874c08bc54ce2c6027cdae5de140198  gcc/testsuite/g++.dg/cpp1z/aligned-new2.C
! 51db9d7274239450f19a334955f52db4  gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
  ef7495e58b04450ecb727d071ddfecfa  gcc/testsuite/g++.dg/cpp1z/aligned-new4.C
  ca10f046e47ea09ba5b87084372f1ce2  gcc/testsuite/g++.dg/cpp1z/aligned-new4a.C
  15779dfebe4d18986ed2044d4ec8287b  gcc/testsuite/g++.dg/cpp1z/aligned-new5.C
  4dbddfffb31fb9d4ab9b40b6ac489d84  gcc/testsuite/g++.dg/cpp1z/aligned-new6.C
  c5e8ac858eac19a1f1f10709e9b49389  gcc/testsuite/g++.dg/cpp1z/aligned-new7.C
  1c005f415746635350d5fd1bf3068b93  gcc/testsuite/g++.dg/cpp1z/aligned-new8.C
! 2de56761d47d1535eda1147861643dd3  gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
  754a7e408d065704f738891ba703e281  gcc/testsuite/g++.dg/cpp1z/array-prvalue1.C
  dea62fa85e86450c80389ea639cb2473  gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C
  6e5d2ff992223e00df24638490856670  gcc/testsuite/g++.dg/cpp1z/array-prvalue3.C
*************** dea62fa85e86450c80389ea639cb2473  gcc/te
*** 18750,18756 ****
  a6e3099890bf75adfc276a625b3b0e3f  gcc/testsuite/g++.dg/cpp1z/attributes-enum-1a.C
  a88352c069738f54613c17951d635f5e  gcc/testsuite/g++.dg/cpp1z/auto1.C
  1a8594071bf162a6b7ab2b120a5e43d3  gcc/testsuite/g++.dg/cpp1z/bool-increment1.C
! daf6a1ab8d18fad76864f7a9c31adc71  gcc/testsuite/g++.dg/cpp1z/byte1.C
  6da7247a3eb4b4c4507555e38efb303e  gcc/testsuite/g++.dg/cpp1z/byte2.C
  bcbf759bb56ccf456971d10508e36bb1  gcc/testsuite/g++.dg/cpp1z/class-deduction-access1.C
  5ab8afcca29134239a30485b208c8e93  gcc/testsuite/g++.dg/cpp1z/class-deduction-access2.C
--- 20018,20024 ----
  a6e3099890bf75adfc276a625b3b0e3f  gcc/testsuite/g++.dg/cpp1z/attributes-enum-1a.C
  a88352c069738f54613c17951d635f5e  gcc/testsuite/g++.dg/cpp1z/auto1.C
  1a8594071bf162a6b7ab2b120a5e43d3  gcc/testsuite/g++.dg/cpp1z/bool-increment1.C
! 15441de3f10e3345071b45e7b6072bff  gcc/testsuite/g++.dg/cpp1z/byte1.C
  6da7247a3eb4b4c4507555e38efb303e  gcc/testsuite/g++.dg/cpp1z/byte2.C
  bcbf759bb56ccf456971d10508e36bb1  gcc/testsuite/g++.dg/cpp1z/class-deduction-access1.C
  5ab8afcca29134239a30485b208c8e93  gcc/testsuite/g++.dg/cpp1z/class-deduction-access2.C
*************** d16e54a1ce726ad2154c8897b33a76f6  gcc/te
*** 18783,18791 ****
  b00e7a179ab6ea9a18ed7daadbf730c3  gcc/testsuite/g++.dg/cpp1z/class-deduction114.C
  a17619735eec9cdd20de24318e732480  gcc/testsuite/g++.dg/cpp1z/class-deduction115.C
  432d42f8e47774c0da9fcfa0273053f5  gcc/testsuite/g++.dg/cpp1z/class-deduction116.C
  fccf66f75d0bb293e6ce56753e50eeda  gcc/testsuite/g++.dg/cpp1z/class-deduction12.C
  8033f2dbb1dc793a3fea073353a0487a  gcc/testsuite/g++.dg/cpp1z/class-deduction13.C
! f51a81e3b0aa46f289c5ca9d3faaded6  gcc/testsuite/g++.dg/cpp1z/class-deduction14.C
  e3e05c165da411f84f868e0fb1238dca  gcc/testsuite/g++.dg/cpp1z/class-deduction15.C
  fbb6c1ab60b31f4de29b10ba7670767d  gcc/testsuite/g++.dg/cpp1z/class-deduction16.C
  8a5724fdee1d883c2dacfb107f74f4c9  gcc/testsuite/g++.dg/cpp1z/class-deduction17.C
--- 20051,20060 ----
  b00e7a179ab6ea9a18ed7daadbf730c3  gcc/testsuite/g++.dg/cpp1z/class-deduction114.C
  a17619735eec9cdd20de24318e732480  gcc/testsuite/g++.dg/cpp1z/class-deduction115.C
  432d42f8e47774c0da9fcfa0273053f5  gcc/testsuite/g++.dg/cpp1z/class-deduction116.C
+ a57c191ff65947f62c8c80935a968d19  gcc/testsuite/g++.dg/cpp1z/class-deduction117.C
  fccf66f75d0bb293e6ce56753e50eeda  gcc/testsuite/g++.dg/cpp1z/class-deduction12.C
  8033f2dbb1dc793a3fea073353a0487a  gcc/testsuite/g++.dg/cpp1z/class-deduction13.C
! d5e4f42df6fae64c7a7130db7d49a233  gcc/testsuite/g++.dg/cpp1z/class-deduction14.C
  e3e05c165da411f84f868e0fb1238dca  gcc/testsuite/g++.dg/cpp1z/class-deduction15.C
  fbb6c1ab60b31f4de29b10ba7670767d  gcc/testsuite/g++.dg/cpp1z/class-deduction16.C
  8a5724fdee1d883c2dacfb107f74f4c9  gcc/testsuite/g++.dg/cpp1z/class-deduction17.C
*************** e5653327dac59b8fbbaf57941cdf7070  gcc/te
*** 18879,18884 ****
--- 20148,20154 ----
  ee498b90c48803ed7e1e39f604107077  gcc/testsuite/g++.dg/cpp1z/class-deduction98.C
  196827ac69f45d97751bae8af9fb4549  gcc/testsuite/g++.dg/cpp1z/class-deduction99.C
  3e9e676eea887f9924149728080a4174  gcc/testsuite/g++.dg/cpp1z/constexpr-111284.C
+ 44dc55aa88b0ff0d3bd94802f0dc4d4b  gcc/testsuite/g++.dg/cpp1z/constexpr-116676.C
  d09105e6c1f377543e5514e34d2837cd  gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C
  6962bfa121a4383ee0b7a8f045abde3f  gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C
  7417be75f23f5974ec35fe6261395c8c  gcc/testsuite/g++.dg/cpp1z/constexpr-89074-1.C
*************** d09105e6c1f377543e5514e34d2837cd  gcc/te
*** 18887,18892 ****
--- 20157,20167 ----
  731a5da264413704826d204eeb2f2046  gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C
  58f65982ee216b64a2a721ba861c9e63  gcc/testsuite/g++.dg/cpp1z/constexpr-array1.C
  70b535b9e8c7e79ff364a6bca9996aa2  gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C
+ 40e7febb49c5f4a86f2ef2220057ea57  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-1.C
+ eae7b1c5c4d936a1f5c31a1238405ccf  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-2.C
+ 58567f49e40f6546d878effc21628cbf  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-3.C
+ 669420eda8695484550e7cbe4dd7465c  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-4.C
+ 02fbd6631e6ccd875efec6bf745ee02a  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-5.C
  3e441287d887fe3be7eeab84a6b5695f  gcc/testsuite/g++.dg/cpp1z/constexpr-compare1.C
  d309961f0255b13605cf111efa2b095a  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda1.C
  6031d9adb83bdf87e2dd05c8108493d1  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda2.C
*************** d309961f0255b13605cf111efa2b095a  gcc/te
*** 18894,18899 ****
--- 20169,20175 ----
  2746f29337da849f597ad6ce8bbb74c2  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C
  f40b7c3743735802b3e2fa6c768cf560  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C
  ae7754ba50de7c7210949438f1a4a6bc  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C
+ 918a9fb5d2e752a04abc863bea37d864  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda7.C
  b70f4276933d24cd68ae2e047a954ece  gcc/testsuite/g++.dg/cpp1z/constexpr-if1.C
  1e52ede853069710bb8cc3b5b323de8c  gcc/testsuite/g++.dg/cpp1z/constexpr-if10.C
  6ad161b09218162d754ac9e397dad17c  gcc/testsuite/g++.dg/cpp1z/constexpr-if11.C
*************** bca94d5b89a5ff54a9e3c7eed7d82bfe  gcc/te
*** 18979,18985 ****
  3fceb1dad7da2cc8d70fe589c21d3987  gcc/testsuite/g++.dg/cpp1z/decomp13.C
  72b6de75b1c8712c69b2d76eab343f88  gcc/testsuite/g++.dg/cpp1z/decomp14.C
  348d97b211be83206cfabd69ff694805  gcc/testsuite/g++.dg/cpp1z/decomp15.C
! 5743b4a66ab5860bff704b4ad8cbb455  gcc/testsuite/g++.dg/cpp1z/decomp16.C
  82a263eea8fb547cacc2e4a0be1a4298  gcc/testsuite/g++.dg/cpp1z/decomp17.C
  dcc3da5b7257635a1066ddf60a82414c  gcc/testsuite/g++.dg/cpp1z/decomp18.C
  3a83541c5c9cc3f15c6c2a174976bc66  gcc/testsuite/g++.dg/cpp1z/decomp19.C
--- 20255,20261 ----
  3fceb1dad7da2cc8d70fe589c21d3987  gcc/testsuite/g++.dg/cpp1z/decomp13.C
  72b6de75b1c8712c69b2d76eab343f88  gcc/testsuite/g++.dg/cpp1z/decomp14.C
  348d97b211be83206cfabd69ff694805  gcc/testsuite/g++.dg/cpp1z/decomp15.C
! 504e9c2220ada267de86006e436127fd  gcc/testsuite/g++.dg/cpp1z/decomp16.C
  82a263eea8fb547cacc2e4a0be1a4298  gcc/testsuite/g++.dg/cpp1z/decomp17.C
  dcc3da5b7257635a1066ddf60a82414c  gcc/testsuite/g++.dg/cpp1z/decomp18.C
  3a83541c5c9cc3f15c6c2a174976bc66  gcc/testsuite/g++.dg/cpp1z/decomp19.C
*************** d8c2f79ead6e45085eeacf1de30df780  gcc/te
*** 19002,19008 ****
  311b92458eb7f9c0cae926401a1ae0a6  gcc/testsuite/g++.dg/cpp1z/decomp34.C
  ba06c8a3bf8f2e52f493aceba693bb93  gcc/testsuite/g++.dg/cpp1z/decomp35.C
  9a1493475a47a1652d3c7e30fe570be4  gcc/testsuite/g++.dg/cpp1z/decomp36.C
! 46879632da91c8cdf17171b8bd8587eb  gcc/testsuite/g++.dg/cpp1z/decomp37.C
  670d00d1ef3fc36f57bad650a8280a67  gcc/testsuite/g++.dg/cpp1z/decomp38.C
  e0e8000ecd4d352d72b4c6f2f4c59fda  gcc/testsuite/g++.dg/cpp1z/decomp39.C
  ce49e2f7b5f7abba0e02ae207cf19ac7  gcc/testsuite/g++.dg/cpp1z/decomp4.C
--- 20278,20284 ----
  311b92458eb7f9c0cae926401a1ae0a6  gcc/testsuite/g++.dg/cpp1z/decomp34.C
  ba06c8a3bf8f2e52f493aceba693bb93  gcc/testsuite/g++.dg/cpp1z/decomp35.C
  9a1493475a47a1652d3c7e30fe570be4  gcc/testsuite/g++.dg/cpp1z/decomp36.C
! 494c264d7674d110a97d330b602d02f1  gcc/testsuite/g++.dg/cpp1z/decomp37.C
  670d00d1ef3fc36f57bad650a8280a67  gcc/testsuite/g++.dg/cpp1z/decomp38.C
  e0e8000ecd4d352d72b4c6f2f4c59fda  gcc/testsuite/g++.dg/cpp1z/decomp39.C
  ce49e2f7b5f7abba0e02ae207cf19ac7  gcc/testsuite/g++.dg/cpp1z/decomp4.C
*************** b2c624c1eaea788d603bfc8204fdaee7  gcc/te
*** 19028,19033 ****
--- 20304,20313 ----
  055f4b76f99d823ab62ec060da73a672  gcc/testsuite/g++.dg/cpp1z/decomp58.C
  dfd54cc6e7ae91a6a51dbda233f20174  gcc/testsuite/g++.dg/cpp1z/decomp59.C
  1bdca83f97c5e15ddd3eda87ca5353f2  gcc/testsuite/g++.dg/cpp1z/decomp6.C
+ 878b1a45e5c96728ed87ea10e7911c73  gcc/testsuite/g++.dg/cpp1z/decomp60.C
+ 37c39f932f33f540d51f60eb06411c2f  gcc/testsuite/g++.dg/cpp1z/decomp61.C
+ e0c740066bd9b5db23ad119756a191dc  gcc/testsuite/g++.dg/cpp1z/decomp62.C
+ 625fdfbc6a0c9cdfdfa656254c263bc2  gcc/testsuite/g++.dg/cpp1z/decomp63.C
  09468d9aa8e4fe8ac0677b17a3c509a2  gcc/testsuite/g++.dg/cpp1z/decomp7.C
  0d7ba62c8322f4f98a085026e3ac529a  gcc/testsuite/g++.dg/cpp1z/decomp8.C
  20aa008483ed89882491910be20354b8  gcc/testsuite/g++.dg/cpp1z/decomp9.C
*************** e3a88ae9ca562b3c9a47ee98c06e6ded  gcc/te
*** 19044,19050 ****
  4f342bdb0846422506f927d7002f0311  gcc/testsuite/g++.dg/cpp1z/elide8.C
  63be3b6d75aa3c2c8088552683d5245e  gcc/testsuite/g++.dg/cpp1z/eval-order10.C
  3abc6084e572264410718d38beb290bb  gcc/testsuite/g++.dg/cpp1z/eval-order11.C
! bb194d9ce590c9e5e69935ebac0f25e4  gcc/testsuite/g++.dg/cpp1z/eval-order2.C
  8b89dee7164b6f4d992706e5b85433f4  gcc/testsuite/g++.dg/cpp1z/eval-order3.C
  6d8d378fedaf65b4cb89952060799280  gcc/testsuite/g++.dg/cpp1z/eval-order4.C
  56af6596678e014cdf3ef38d1427358f  gcc/testsuite/g++.dg/cpp1z/eval-order5.C
--- 20324,20331 ----
  4f342bdb0846422506f927d7002f0311  gcc/testsuite/g++.dg/cpp1z/elide8.C
  63be3b6d75aa3c2c8088552683d5245e  gcc/testsuite/g++.dg/cpp1z/eval-order10.C
  3abc6084e572264410718d38beb290bb  gcc/testsuite/g++.dg/cpp1z/eval-order11.C
! 2a2d4866a044c20823b5f37f629ac147  gcc/testsuite/g++.dg/cpp1z/eval-order13.C
! ebf7b90ef919b5a31b45b49ad9bd61c9  gcc/testsuite/g++.dg/cpp1z/eval-order2.C
  8b89dee7164b6f4d992706e5b85433f4  gcc/testsuite/g++.dg/cpp1z/eval-order3.C
  6d8d378fedaf65b4cb89952060799280  gcc/testsuite/g++.dg/cpp1z/eval-order4.C
  56af6596678e014cdf3ef38d1427358f  gcc/testsuite/g++.dg/cpp1z/eval-order5.C
*************** b1d46849077c6ddc0bf882ba4c716533  gcc/te
*** 19054,19068 ****
  ac52217413394dc373d70b0ce1022a25  gcc/testsuite/g++.dg/cpp1z/eval-order9.C
  8aee82acb16c495821151939f3d0d794  gcc/testsuite/g++.dg/cpp1z/fallthrough1.C
  3fa16146d012ac31fce940c8a77072a5  gcc/testsuite/g++.dg/cpp1z/fallthrough2.C
! 94fc4260b2d8c506d1ac06cb7d4f1d7f  gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
  ccf8e15dbea694ff2ac1c38763e318b9  gcc/testsuite/g++.dg/cpp1z/fold-ice1.C
  ce2a217eddd91a6985c4920af6223b7f  gcc/testsuite/g++.dg/cpp1z/fold-lambda.C
  d11a817298d2b6e508f52834a1dc54bd  gcc/testsuite/g++.dg/cpp1z/fold-lambda2.C
  1bbf4f67975bc37756736d418385d82a  gcc/testsuite/g++.dg/cpp1z/fold-lambda3.C
  79a45042b6e6a0c0f2a25ce023ac5976  gcc/testsuite/g++.dg/cpp1z/fold-lambda4.C
  a53a61e2c3773add424075de3343c370  gcc/testsuite/g++.dg/cpp1z/fold-mangle.C
! 948a131387412e7ed7b39e35fce2096a  gcc/testsuite/g++.dg/cpp1z/fold1.C
! c74b2113efcb17ebf1be773837691046  gcc/testsuite/g++.dg/cpp1z/fold10.C
  ba52c35faa435abd9cb368147dc00857  gcc/testsuite/g++.dg/cpp1z/fold11.C
  91bd8e80a033defa1c149b412cb7ba1c  gcc/testsuite/g++.dg/cpp1z/fold12.C
  fa4ff7e96ff3b0d8cb7114d58f8127ac  gcc/testsuite/g++.dg/cpp1z/fold13.C
--- 20335,20349 ----
  ac52217413394dc373d70b0ce1022a25  gcc/testsuite/g++.dg/cpp1z/eval-order9.C
  8aee82acb16c495821151939f3d0d794  gcc/testsuite/g++.dg/cpp1z/fallthrough1.C
  3fa16146d012ac31fce940c8a77072a5  gcc/testsuite/g++.dg/cpp1z/fallthrough2.C
! 7b98fdee8a593f5648fe3ff9bb8f77b0  gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
  ccf8e15dbea694ff2ac1c38763e318b9  gcc/testsuite/g++.dg/cpp1z/fold-ice1.C
  ce2a217eddd91a6985c4920af6223b7f  gcc/testsuite/g++.dg/cpp1z/fold-lambda.C
  d11a817298d2b6e508f52834a1dc54bd  gcc/testsuite/g++.dg/cpp1z/fold-lambda2.C
  1bbf4f67975bc37756736d418385d82a  gcc/testsuite/g++.dg/cpp1z/fold-lambda3.C
  79a45042b6e6a0c0f2a25ce023ac5976  gcc/testsuite/g++.dg/cpp1z/fold-lambda4.C
  a53a61e2c3773add424075de3343c370  gcc/testsuite/g++.dg/cpp1z/fold-mangle.C
! c9abc03399c779de98b4f490c394d43f  gcc/testsuite/g++.dg/cpp1z/fold1.C
! e3d115063411bdeab90132718c56dfcc  gcc/testsuite/g++.dg/cpp1z/fold10.C
  ba52c35faa435abd9cb368147dc00857  gcc/testsuite/g++.dg/cpp1z/fold11.C
  91bd8e80a033defa1c149b412cb7ba1c  gcc/testsuite/g++.dg/cpp1z/fold12.C
  fa4ff7e96ff3b0d8cb7114d58f8127ac  gcc/testsuite/g++.dg/cpp1z/fold13.C
*************** e71e6554bb5fba57e95cb9f345190b4e  gcc/te
*** 19106,19112 ****
  e93d37fcb114e8a801c0c349ed865ad0  gcc/testsuite/g++.dg/cpp1z/init-statement3.C
  0d930dc11e6ad8a3eb32c61b2ad837e9  gcc/testsuite/g++.dg/cpp1z/init-statement4.C
  feb5c146f4c48fa67e4c39b7aa2f2132  gcc/testsuite/g++.dg/cpp1z/init-statement5.C
! e2a396456259d8c13a332218a3b3590c  gcc/testsuite/g++.dg/cpp1z/init-statement6.C
  efb0c3ae0359db707086c1750b31b943  gcc/testsuite/g++.dg/cpp1z/init-statement7.C
  913ae34861dabae4df9a51ce8e2fcab5  gcc/testsuite/g++.dg/cpp1z/init-statement8.C
  76b7f341f47dbd5cf84c38d1d2af9229  gcc/testsuite/g++.dg/cpp1z/init-statement9.C
--- 20387,20393 ----
  e93d37fcb114e8a801c0c349ed865ad0  gcc/testsuite/g++.dg/cpp1z/init-statement3.C
  0d930dc11e6ad8a3eb32c61b2ad837e9  gcc/testsuite/g++.dg/cpp1z/init-statement4.C
  feb5c146f4c48fa67e4c39b7aa2f2132  gcc/testsuite/g++.dg/cpp1z/init-statement5.C
! 3672a12046146041b6562f66bdde0604  gcc/testsuite/g++.dg/cpp1z/init-statement6.C
  efb0c3ae0359db707086c1750b31b943  gcc/testsuite/g++.dg/cpp1z/init-statement7.C
  913ae34861dabae4df9a51ce8e2fcab5  gcc/testsuite/g++.dg/cpp1z/init-statement8.C
  76b7f341f47dbd5cf84c38d1d2af9229  gcc/testsuite/g++.dg/cpp1z/init-statement9.C
*************** b2e693257fda5fe10cbb34d955388a18  gcc/te
*** 19134,19146 ****
  5c12f165e35a5895c64e657c52849d04  gcc/testsuite/g++.dg/cpp1z/lambda-this7.C
  fe0e2f145516378207e79accb6ecd2fc  gcc/testsuite/g++.dg/cpp1z/lambda-this8.C
  5e200a2d5bf3f215cbed7959057efae1  gcc/testsuite/g++.dg/cpp1z/launder1.C
! 53bc478df6abc05a4afccaa39805cab4  gcc/testsuite/g++.dg/cpp1z/launder2.C
! ac1986fd8c7fe4bed9f3610b5c780124  gcc/testsuite/g++.dg/cpp1z/launder3.C
! 90d074a1ba6dd339fa80004f9fbe6662  gcc/testsuite/g++.dg/cpp1z/launder4.C
! 47f40cd98d6ffab0ce75c2b30fa956d6  gcc/testsuite/g++.dg/cpp1z/launder5.C
  06a480d159fbbddf472aff62b25a716f  gcc/testsuite/g++.dg/cpp1z/launder5.cc
  bf2c1740cfc229b7a47742a39c42151b  gcc/testsuite/g++.dg/cpp1z/launder5.h
! e0b73494f7b91982a1836c4e948f3eea  gcc/testsuite/g++.dg/cpp1z/launder6.C
  3a812eb8b588d2b291e6a6ba0289d8b3  gcc/testsuite/g++.dg/cpp1z/launder6.cc
  fc7418031e26a28172ef21ddc7c912c4  gcc/testsuite/g++.dg/cpp1z/launder6.h
  487d661499bb066b39b803e765439022  gcc/testsuite/g++.dg/cpp1z/launder7.C
--- 20415,20428 ----
  5c12f165e35a5895c64e657c52849d04  gcc/testsuite/g++.dg/cpp1z/lambda-this7.C
  fe0e2f145516378207e79accb6ecd2fc  gcc/testsuite/g++.dg/cpp1z/lambda-this8.C
  5e200a2d5bf3f215cbed7959057efae1  gcc/testsuite/g++.dg/cpp1z/launder1.C
! a0819960f4050af292fdc0e2b17e1932  gcc/testsuite/g++.dg/cpp1z/launder10.C
! 663be0736ab71ec4ef537c7ec577e306  gcc/testsuite/g++.dg/cpp1z/launder2.C
! dcb5240631df93c5e94f10137bdab52a  gcc/testsuite/g++.dg/cpp1z/launder3.C
! 9f525317e687b3a797199725fae4ead9  gcc/testsuite/g++.dg/cpp1z/launder4.C
! 306c5321e15096c5b141db7189125064  gcc/testsuite/g++.dg/cpp1z/launder5.C
  06a480d159fbbddf472aff62b25a716f  gcc/testsuite/g++.dg/cpp1z/launder5.cc
  bf2c1740cfc229b7a47742a39c42151b  gcc/testsuite/g++.dg/cpp1z/launder5.h
! 89a57b99930b8704b25c9bac77671c39  gcc/testsuite/g++.dg/cpp1z/launder6.C
  3a812eb8b588d2b291e6a6ba0289d8b3  gcc/testsuite/g++.dg/cpp1z/launder6.cc
  fc7418031e26a28172ef21ddc7c912c4  gcc/testsuite/g++.dg/cpp1z/launder6.h
  487d661499bb066b39b803e765439022  gcc/testsuite/g++.dg/cpp1z/launder7.C
*************** e8a13f1ce8e4affd062fe3d20183d9c3  gcc/te
*** 19172,19178 ****
  ea0c97da83eac25a8d15fda4c9024f35  gcc/testsuite/g++.dg/cpp1z/noexcept-type16.C
  babb4e6741de72eddf1366fb0f0e91f5  gcc/testsuite/g++.dg/cpp1z/noexcept-type17.C
  b1e6554e1fa7e1c40ed33a028d6555dc  gcc/testsuite/g++.dg/cpp1z/noexcept-type18.C
! 68cbcc7cbbdd08882ed44e8fb3af49d7  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.C
  33ce675622544b3ea51091070fed1e79  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.h
  e2d27f023f98f0f6d5bbc4b4af73820d  gcc/testsuite/g++.dg/cpp1z/noexcept-type2.C
  b844f1c10ac36bdb44fcc5f47c7ed338  gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C
--- 20454,20460 ----
  ea0c97da83eac25a8d15fda4c9024f35  gcc/testsuite/g++.dg/cpp1z/noexcept-type16.C
  babb4e6741de72eddf1366fb0f0e91f5  gcc/testsuite/g++.dg/cpp1z/noexcept-type17.C
  b1e6554e1fa7e1c40ed33a028d6555dc  gcc/testsuite/g++.dg/cpp1z/noexcept-type18.C
! 7e8f9cf98576c2158ed78f182f7eac9e  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.C
  33ce675622544b3ea51091070fed1e79  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.h
  e2d27f023f98f0f6d5bbc4b4af73820d  gcc/testsuite/g++.dg/cpp1z/noexcept-type2.C
  b844f1c10ac36bdb44fcc5f47c7ed338  gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C
*************** b844f1c10ac36bdb44fcc5f47c7ed338  gcc/te
*** 19183,19188 ****
--- 20465,20471 ----
  c5c848aea6f9a89e57f856a7b0fcfa31  gcc/testsuite/g++.dg/cpp1z/noexcept-type25.C
  e12f74995acc66bd02b8c9f5d34a8f25  gcc/testsuite/g++.dg/cpp1z/noexcept-type26.C
  302828ca56d4a605a4eedc8975baf4ab  gcc/testsuite/g++.dg/cpp1z/noexcept-type27.C
+ 8543fb24e0a022f9d137d2df4f8b17c7  gcc/testsuite/g++.dg/cpp1z/noexcept-type28.C
  a07bd6eee0bbce4f76caa1372e66c614  gcc/testsuite/g++.dg/cpp1z/noexcept-type3.C
  a1507d2a44a55f27a0e7109b7c2a2c43  gcc/testsuite/g++.dg/cpp1z/noexcept-type4.C
  2cbc6352072676c50982358370c66f1e  gcc/testsuite/g++.dg/cpp1z/noexcept-type5.C
*************** d7a225864717dba5339af4608d8e13d4  gcc/te
*** 19207,19212 ****
--- 20490,20497 ----
  a7b34171000020208252212900f8f284  gcc/testsuite/g++.dg/cpp1z/nontype-auto22.C
  97d8079f31cc3712b8772771da1aef29  gcc/testsuite/g++.dg/cpp1z/nontype-auto23.C
  c0ccc113d7cebb8f49a0532a92a7fe6a  gcc/testsuite/g++.dg/cpp1z/nontype-auto24.C
+ 84c3bcb0e6e5796176c169f244e21f18  gcc/testsuite/g++.dg/cpp1z/nontype-auto25.C
+ 29281f328d481246b83a7cf412166e27  gcc/testsuite/g++.dg/cpp1z/nontype-auto26.C
  cd20029423efae4adb87e862f927bf40  gcc/testsuite/g++.dg/cpp1z/nontype-auto3.C
  b7708449a230c66742c4b7273cffd6ff  gcc/testsuite/g++.dg/cpp1z/nontype-auto4.C
  1402258969b8e2de72b5d503776c4a4d  gcc/testsuite/g++.dg/cpp1z/nontype-auto5.C
*************** ae3e1959f85f05c9ec509a6dbdbe24ca  gcc/te
*** 19221,19226 ****
--- 20506,20514 ----
  6459f300d92f04eeb92c53237b82baac  gcc/testsuite/g++.dg/cpp1z/nontype4.C
  2d69a9b79c8f3fadb2bfb68b9d761c49  gcc/testsuite/g++.dg/cpp1z/nontype4a.C
  914a640ece1bdc2a12062de65d60a78d  gcc/testsuite/g++.dg/cpp1z/nontype5.C
+ d8c0c733385ca64144f09cf94dbfc159  gcc/testsuite/g++.dg/cpp1z/nontype6.C
+ 478af4b2682b8500b6d04a7190ab9e4b  gcc/testsuite/g++.dg/cpp1z/nontype6a.C
+ 1a73a13a161c05eab6182bb64cba004b  gcc/testsuite/g++.dg/cpp1z/nontype7.C
  03ca05bf2eccb98d95222a2435a3d9ed  gcc/testsuite/g++.dg/cpp1z/pr110216.C
  86d3c074d77c88bd7ef317faea9d2968  gcc/testsuite/g++.dg/cpp1z/pr115440.C
  e668ace19a2b0d8946e0e19fd8317af1  gcc/testsuite/g++.dg/cpp1z/pr78771.C
*************** e98b7a63d6e3d9d44285db784c6b81cf  gcc/te
*** 19260,19266 ****
  741abbe15f9dce96344af440f71cd51e  gcc/testsuite/g++.dg/cpp1z/using-variadic1c.C
  a09ad82525aa7c9f93cdbaea3b4abc3a  gcc/testsuite/g++.dg/cpp1z/using-variadic2.C
  bb012172207ca9da13842f645907e099  gcc/testsuite/g++.dg/cpp1z/using-variadic3.C
! 3539aa7fb3975221508673bff555cbd4  gcc/testsuite/g++.dg/cpp1z/using1.C
  fc52ea62e2ecaeb1c4cf7f35a542b61c  gcc/testsuite/g++.dg/cpp1z/using2.C
  c5f6b89265916b0fda61728cb9e20fb8  gcc/testsuite/g++.dg/cpp1z/using3.C
  f07c4450546fe355a7c675c46750a186  gcc/testsuite/g++.dg/cpp1z/using4.C
--- 20548,20554 ----
  741abbe15f9dce96344af440f71cd51e  gcc/testsuite/g++.dg/cpp1z/using-variadic1c.C
  a09ad82525aa7c9f93cdbaea3b4abc3a  gcc/testsuite/g++.dg/cpp1z/using-variadic2.C
  bb012172207ca9da13842f645907e099  gcc/testsuite/g++.dg/cpp1z/using-variadic3.C
! 8b42f989b463e7c2006209a46478b1ae  gcc/testsuite/g++.dg/cpp1z/using1.C
  fc52ea62e2ecaeb1c4cf7f35a542b61c  gcc/testsuite/g++.dg/cpp1z/using2.C
  c5f6b89265916b0fda61728cb9e20fb8  gcc/testsuite/g++.dg/cpp1z/using3.C
  f07c4450546fe355a7c675c46750a186  gcc/testsuite/g++.dg/cpp1z/using4.C
*************** fcb976b72ee32e007373a445749a9790  gcc/te
*** 19272,19292 ****
  335634ca6f39db21a4305967e6392c7e  gcc/testsuite/g++.dg/cpp1z/utf8-2.C
  5be5d7f2f40f7aea358f9007942afde2  gcc/testsuite/g++.dg/cpp1z/utf8-2a.C
  f9235da6d6cdb4a1e70b26f15496d72b  gcc/testsuite/g++.dg/cpp1z/utf8-neg.C
! c307915525471ee8f08e6059faf237d8  gcc/testsuite/g++.dg/cpp1z/utf8.C
  f5e5a4ca1e899e3375fda184fe2556a9  gcc/testsuite/g++.dg/cpp1z/variant1.C
! 96100c9c0eee26169c18c9e98c78acae  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C
! ab8d769d7df5db81722e76d1b5e07250  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C
! 219e4c16bcfde896ae8ad8dce8b3e6b0  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C
! 7aceb5085964bd08da1567e7fc2a2258  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C
! 17085ad709b141de0dcd540c1cc2f10c  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C
! b80521bcf8685582dcd5368ebbbfef73  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C
! 83a89de38210e1a961c2699c43eb7739  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C
! 1acfb59d3d55c1e5f48f82edbc444ed8  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C
! aabac47f38012a93ad470d7e41680b5b  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C
! aa30e2b638e1b8a3dba4997c80595495  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C
! 598631386feb4d471266f1247348f456  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C
! b3b323fdea6c9e2f2b6d012d7a438e1f  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C
! 7837f5c32c4b8abc87d95207505bc9e8  gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C
  19e4e3b00944ad3ecd30a121ea178980  gcc/testsuite/g++.dg/cpp23/attr-assume1.C
  50cef13b8381a6236d21785b262b62be  gcc/testsuite/g++.dg/cpp23/attr-assume10.C
  b2bb264b978e8414b90030fb893e3425  gcc/testsuite/g++.dg/cpp23/attr-assume11.C
--- 20560,20582 ----
  335634ca6f39db21a4305967e6392c7e  gcc/testsuite/g++.dg/cpp1z/utf8-2.C
  5be5d7f2f40f7aea358f9007942afde2  gcc/testsuite/g++.dg/cpp1z/utf8-2a.C
  f9235da6d6cdb4a1e70b26f15496d72b  gcc/testsuite/g++.dg/cpp1z/utf8-neg.C
! bd6f7dd47d7e160b87b570f3796785c4  gcc/testsuite/g++.dg/cpp1z/utf8.C
! 731833ba0393525c4fbc9692930d810f  gcc/testsuite/g++.dg/cpp1z/variadic-nontype1.C
! f5f563b29365acf95da0bd0fa48feb43  gcc/testsuite/g++.dg/cpp1z/variadic-nontype2.C
  f5e5a4ca1e899e3375fda184fe2556a9  gcc/testsuite/g++.dg/cpp1z/variant1.C
! a4160e240fae09746fbbbeef229ed748  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C
! f3b082c7d0e95a920beb7a290ba4bb12  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C
! 0f54d76a7514f2cdd3e7476e3a283d04  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C
! 244648f89fd3d9bb177952635b8bad8c  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C
! 93aa510dccc98586c0bed330aa77d18b  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C
! e5c46ca4f431bdcb1bd2895a28b05dcf  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C
! 871bfac089185f8fcab5c1b077ff7fa7  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C
! 135425946200116351141a4b76a0768e  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C
! e41dd533a605cd4d2918926692f9209a  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C
! 6694c843e87b84d01bf594634a7934dd  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C
! 33a8d1d98fdc241b19d300c6f2f33153  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C
! 329510b30fbb39bd2f86f3f16b61ff0a  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C
! 25d6d0b2e1bd0f18a1fe9cecc11ee394  gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C
  19e4e3b00944ad3ecd30a121ea178980  gcc/testsuite/g++.dg/cpp23/attr-assume1.C
  50cef13b8381a6236d21785b262b62be  gcc/testsuite/g++.dg/cpp23/attr-assume10.C
  b2bb264b978e8414b90030fb893e3425  gcc/testsuite/g++.dg/cpp23/attr-assume11.C
*************** bbd34d70bffdb5659d43e105cc5654f0  gcc/te
*** 19326,19338 ****
  fc95968ef690ef967f99e7fc9cf9bb22  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited1.C
  0bfba7997142477c825e6eac0de01c78  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited2.C
  4d439f6f5585d12bf5b651068b33af79  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited3.C
! 6f9da5d74fb47058bea3128a52841272  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
  a5e6981af3e3d461e280ff24cd289402  gcc/testsuite/g++.dg/cpp23/concepts-err1.C
  636155e5662c48788ae52677e22b5249  gcc/testsuite/g++.dg/cpp23/consteval-if1.C
  821ea836b45f7af0a628e6eb278e28f9  gcc/testsuite/g++.dg/cpp23/consteval-if10.C
  ccce1958f813ec9cf507643e2e946897  gcc/testsuite/g++.dg/cpp23/consteval-if11.C
  94117a73f7f1ca683fae64a4bd3c9305  gcc/testsuite/g++.dg/cpp23/consteval-if12.C
! b524c97e391d08f04f730390477b7292  gcc/testsuite/g++.dg/cpp23/consteval-if13.C
  427f3fab3bc31f6206c2cb9401e951f1  gcc/testsuite/g++.dg/cpp23/consteval-if2.C
  909e8ba3173bcd65b84cb0817fc9d921  gcc/testsuite/g++.dg/cpp23/consteval-if3.C
  4dee0d03b04a747975829c69d2be6072  gcc/testsuite/g++.dg/cpp23/consteval-if4.C
--- 20616,20632 ----
  fc95968ef690ef967f99e7fc9cf9bb22  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited1.C
  0bfba7997142477c825e6eac0de01c78  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited2.C
  4d439f6f5585d12bf5b651068b33af79  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited3.C
! 726edadc3f3d862f8f9d5cdbffdc3430  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
! d1816c76dd387be6d07b1763c88d7e12  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited5.C
! 7102bd9f78d9dd5baf868b5867fd00fb  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited6.C
! 1eb71fc21e8ad1d9fc8b9177ae3ff8bd  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited7.C
! b70c43fcf5e919517d07b52eba057f7e  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited8.C
  a5e6981af3e3d461e280ff24cd289402  gcc/testsuite/g++.dg/cpp23/concepts-err1.C
  636155e5662c48788ae52677e22b5249  gcc/testsuite/g++.dg/cpp23/consteval-if1.C
  821ea836b45f7af0a628e6eb278e28f9  gcc/testsuite/g++.dg/cpp23/consteval-if10.C
  ccce1958f813ec9cf507643e2e946897  gcc/testsuite/g++.dg/cpp23/consteval-if11.C
  94117a73f7f1ca683fae64a4bd3c9305  gcc/testsuite/g++.dg/cpp23/consteval-if12.C
! efdb56b73207207ac4e1930a279bc4f0  gcc/testsuite/g++.dg/cpp23/consteval-if13.C
  427f3fab3bc31f6206c2cb9401e951f1  gcc/testsuite/g++.dg/cpp23/consteval-if2.C
  909e8ba3173bcd65b84cb0817fc9d921  gcc/testsuite/g++.dg/cpp23/consteval-if3.C
  4dee0d03b04a747975829c69d2be6072  gcc/testsuite/g++.dg/cpp23/consteval-if4.C
*************** c3433159b2bd23aac24ee2591dc866c3  gcc/te
*** 19344,19356 ****
  48fd48c755d95afe74bea715a263d398  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit1.C
  57a68e125affb9e58476c5c4ece3c3f9  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit10.C
  8637c28807e233cb31091397369d92ce  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit11.C
! 31266ea927ea910e3918941b763c240c  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit12.C
  a490ba11330505f8eec9ed56f81a8c7b  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit13.C
  dca9529d6c16087b7bf6e29013d27746  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit14.C
  bda1d0d9c532526e7ebaa1257a653671  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit15.C
  eae53a55ba0253ab9c5bef343914467a  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit16.C
  b0353739febc6092ffa9cf1b33a7eb82  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit17.C
! b3ca8dd9de1c09728873024fe749e360  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit18.C
  201248a105e514c4c72fbf0a70e36da5  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit2.C
  69428db5b4777bba6d2516a7c86cb724  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit3.C
  95ee7fbe282c20f6111c715f5abb98de  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit4.C
--- 20638,20650 ----
  48fd48c755d95afe74bea715a263d398  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit1.C
  57a68e125affb9e58476c5c4ece3c3f9  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit10.C
  8637c28807e233cb31091397369d92ce  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit11.C
! ee99270d35a83b26c5712c8f07fc6f7d  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit12.C
  a490ba11330505f8eec9ed56f81a8c7b  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit13.C
  dca9529d6c16087b7bf6e29013d27746  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit14.C
  bda1d0d9c532526e7ebaa1257a653671  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit15.C
  eae53a55ba0253ab9c5bef343914467a  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit16.C
  b0353739febc6092ffa9cf1b33a7eb82  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit17.C
! 6713147ad552d4b392f591e195743ecf  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit18.C
  201248a105e514c4c72fbf0a70e36da5  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit2.C
  69428db5b4777bba6d2516a7c86cb724  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit3.C
  95ee7fbe282c20f6111c715f5abb98de  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit4.C
*************** b5ce88b06b4f62273ce5e52103c3e312  gcc/te
*** 19362,19367 ****
--- 20656,20662 ----
  f65bb1e5f66424c13c7860bcbc2f5724  gcc/testsuite/g++.dg/cpp23/cplusplus.C
  00ae59725cb1786e1ee39a6a0679d23b  gcc/testsuite/g++.dg/cpp23/decltype1.C
  ad2798e7c30fce3342d33a7665ce014d  gcc/testsuite/g++.dg/cpp23/decltype2.C
+ a577370e3dc02de6e86cfb88fe97c2c7  gcc/testsuite/g++.dg/cpp23/defaulted1.C
  eb9c16e1c46cc9d0426e008bdad12ca6  gcc/testsuite/g++.dg/cpp23/elision1.C
  a87c887c826d5a234112e3c757dff154  gcc/testsuite/g++.dg/cpp23/elision2.C
  65836bfa1983f40c012a7624048228c8  gcc/testsuite/g++.dg/cpp23/elision3.C
*************** a2fdc3739bd64ad29f9137fab52e1baf  gcc/te
*** 19393,19400 ****
  fd75161e4b8767770d40e22fba5804bf  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics1.C
  c6ea30380d84dd96bf6a1e7bb11a3a1d  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics10.C
  a7f983566962993cd2a57040184db2af  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics11.C
  1748d62c3412cd516cbf34f160fcead9  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics2.C
! 2d14e7695d051e479fc974c15008bdb1  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C
  89179e6262348b2e8636e5896a5c1a91  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics4.C
  9beccc7cd7e6aa9a5683c133222007ba  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics5.C
  c0e5d885fa865eb6022dc0d49f95ccc5  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics6.C
--- 20688,20696 ----
  fd75161e4b8767770d40e22fba5804bf  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics1.C
  c6ea30380d84dd96bf6a1e7bb11a3a1d  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics10.C
  a7f983566962993cd2a57040184db2af  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics11.C
+ fb1ed88d1be03b5046fbad70a2aead71  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics12.C
  1748d62c3412cd516cbf34f160fcead9  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics2.C
! 8ca07536f1a29417e2eb5416339a3abe  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C
  89179e6262348b2e8636e5896a5c1a91  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics4.C
  9beccc7cd7e6aa9a5683c133222007ba  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics5.C
  c0e5d885fa865eb6022dc0d49f95ccc5  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics6.C
*************** bbec4ebaa9eb25cb6f5674378a048924  gcc/te
*** 19403,19412 ****
  91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
  d794673e83c406364ada43bb3424172f  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda1.C
  63a44991fb60332c0389b38376547489  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda10.C
! f7798123f560a2563579e7610c9e701c  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda11.C
  0e2a1aa0d0280f985ada8a4c3cbd2e07  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda12.C
  d74bbc201fde13d804d767363c281130  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda13.C
  ad90458ad42ff08d4a1c948d0770dd89  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda14.C
  87abca8eb660254fbf201e771eef3751  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
  e8adbb443f8b231b244ffbcd64ee7da2  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda3.C
  0a50eb80a181d4196ff68849d37d2615  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda4.C
--- 20699,20709 ----
  91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
  d794673e83c406364ada43bb3424172f  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda1.C
  63a44991fb60332c0389b38376547489  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda10.C
! 0aee297638cbb960b6d7a49303a84770  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda11.C
  0e2a1aa0d0280f985ada8a4c3cbd2e07  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda12.C
  d74bbc201fde13d804d767363c281130  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda13.C
  ad90458ad42ff08d4a1c948d0770dd89  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda14.C
+ 51978f30a781d2e3a3434b8d371737b6  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda15.C
  87abca8eb660254fbf201e771eef3751  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
  e8adbb443f8b231b244ffbcd64ee7da2  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda3.C
  0a50eb80a181d4196ff68849d37d2615  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda4.C
*************** cb28b0e00ad9e531bfec42ab238338ec  gcc/te
*** 19433,19445 ****
  05c5caecbd98fac1ee44d884b0cff074  gcc/testsuite/g++.dg/cpp23/ext-floating1.C
  c72d14ea97191dbb2084a00c896b7069  gcc/testsuite/g++.dg/cpp23/ext-floating10.C
  34ab61b0739accec69a4e37816f69c50  gcc/testsuite/g++.dg/cpp23/ext-floating11.C
! b5eeac4f71c8abf553f730fce34628f1  gcc/testsuite/g++.dg/cpp23/ext-floating12.C
  8cc9d0aee102e32cb9fdbbb7f94b195e  gcc/testsuite/g++.dg/cpp23/ext-floating13.C
  77c1e1529829f7eb3643512344995ae5  gcc/testsuite/g++.dg/cpp23/ext-floating14.C
  2a9ad0ec05ab4b695b06b215a048e7f8  gcc/testsuite/g++.dg/cpp23/ext-floating15.C
  5f6d6376e0db5f076c02a48ff7041f93  gcc/testsuite/g++.dg/cpp23/ext-floating16.C
  5f9467211080e1f72a5a08b73e7a18b2  gcc/testsuite/g++.dg/cpp23/ext-floating17.C
  72810cc66ff000fa577f48bacf4cb603  gcc/testsuite/g++.dg/cpp23/ext-floating18.C
  1ebec45b4e33e270199203eb41a5bd2a  gcc/testsuite/g++.dg/cpp23/ext-floating2.C
  3838622d195bd6b3d3af37d05c8f6e0f  gcc/testsuite/g++.dg/cpp23/ext-floating3.C
  7cf138b5df4746c5a50ddd27889208d6  gcc/testsuite/g++.dg/cpp23/ext-floating4.C
--- 20730,20743 ----
  05c5caecbd98fac1ee44d884b0cff074  gcc/testsuite/g++.dg/cpp23/ext-floating1.C
  c72d14ea97191dbb2084a00c896b7069  gcc/testsuite/g++.dg/cpp23/ext-floating10.C
  34ab61b0739accec69a4e37816f69c50  gcc/testsuite/g++.dg/cpp23/ext-floating11.C
! 74bb8313529bd124a7cb6839aa5738f8  gcc/testsuite/g++.dg/cpp23/ext-floating12.C
  8cc9d0aee102e32cb9fdbbb7f94b195e  gcc/testsuite/g++.dg/cpp23/ext-floating13.C
  77c1e1529829f7eb3643512344995ae5  gcc/testsuite/g++.dg/cpp23/ext-floating14.C
  2a9ad0ec05ab4b695b06b215a048e7f8  gcc/testsuite/g++.dg/cpp23/ext-floating15.C
  5f6d6376e0db5f076c02a48ff7041f93  gcc/testsuite/g++.dg/cpp23/ext-floating16.C
  5f9467211080e1f72a5a08b73e7a18b2  gcc/testsuite/g++.dg/cpp23/ext-floating17.C
  72810cc66ff000fa577f48bacf4cb603  gcc/testsuite/g++.dg/cpp23/ext-floating18.C
+ a1b0cd14234dfa63baac67546deecbb5  gcc/testsuite/g++.dg/cpp23/ext-floating19.C
  1ebec45b4e33e270199203eb41a5bd2a  gcc/testsuite/g++.dg/cpp23/ext-floating2.C
  3838622d195bd6b3d3af37d05c8f6e0f  gcc/testsuite/g++.dg/cpp23/ext-floating3.C
  7cf138b5df4746c5a50ddd27889208d6  gcc/testsuite/g++.dg/cpp23/ext-floating4.C
*************** e4eef3325d652767c4b83b6aed8c24b5  gcc/te
*** 19448,19454 ****
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! 2ea4fd210965e816b517050bf433f476  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
--- 20746,20752 ----
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! 41f6b84af959c52c0015d14c364d9a05  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
*************** b2919427c96be25ae3a72933323c8de1  gcc/te
*** 19459,19466 ****
  0b54a398f8b42d5fc1ce9e8f422c3298  gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C
  7dfb88c8fc8142f5c07fe2c473ad00e1  gcc/testsuite/g++.dg/cpp23/lookup2.C
  9b6a18d5dc65ed2734b38938569e70bd  gcc/testsuite/g++.dg/cpp23/mixed-concat1.C
! 3003437adbf67244dc2361b7be64aa57  gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C
! 51acd3457bdfae84345457c0cb25f5e0  gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C
  687cd081771bc128431790436ec4d97b  gcc/testsuite/g++.dg/cpp23/narrowing-bool1.C
  02ae654405ab40dff13d7bf9efbc86c9  gcc/testsuite/g++.dg/cpp23/normalize1.C
  7aae36e156f721eb96f9f2971ec2efdb  gcc/testsuite/g++.dg/cpp23/normalize2.C
--- 20757,20765 ----
  0b54a398f8b42d5fc1ce9e8f422c3298  gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C
  7dfb88c8fc8142f5c07fe2c473ad00e1  gcc/testsuite/g++.dg/cpp23/lookup2.C
  9b6a18d5dc65ed2734b38938569e70bd  gcc/testsuite/g++.dg/cpp23/mixed-concat1.C
! 1958d6535672071ea07773c7512233af  gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C
! ff0ccd0c3e3a30d6e017143822db6cc5  gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C
! 95cda542d753053efb62bb64405d9254  gcc/testsuite/g++.dg/cpp23/named-universal-char-escape3.C
  687cd081771bc128431790436ec4d97b  gcc/testsuite/g++.dg/cpp23/narrowing-bool1.C
  02ae654405ab40dff13d7bf9efbc86c9  gcc/testsuite/g++.dg/cpp23/normalize1.C
  7aae36e156f721eb96f9f2971ec2efdb  gcc/testsuite/g++.dg/cpp23/normalize2.C
*************** db740268984e13059571b37af26229f7  gcc/te
*** 19469,19474 ****
--- 20768,20783 ----
  5300ced02ead4880cbff47e1d6373999  gcc/testsuite/g++.dg/cpp23/normalize5.C
  8125bd59f190ca2bccecdec26bb94127  gcc/testsuite/g++.dg/cpp23/normalize6.C
  ef7d7c0e26159c8de94fcb3f8aeb2c11  gcc/testsuite/g++.dg/cpp23/normalize7.C
+ 1559cfc237c4cd0b5a977e0a3e97dcef  gcc/testsuite/g++.dg/cpp23/pr117287-attr.C
+ bef1cfaa7a0c843e14d86e3cefd20837  gcc/testsuite/g++.dg/cpp23/range-for1.C
+ 769314536bd2595caab3098e2d27f697  gcc/testsuite/g++.dg/cpp23/range-for2.C
+ 22632bf1d42798a1dc41e4771915e05a  gcc/testsuite/g++.dg/cpp23/range-for3.C
+ d687312a7453171ab6159b043423f880  gcc/testsuite/g++.dg/cpp23/range-for4.C
+ 7140378a66d740832dbcc9b29fb9cd7f  gcc/testsuite/g++.dg/cpp23/range-for5.C
+ d93e1efd2f1f52ac6800725257d72541  gcc/testsuite/g++.dg/cpp23/range-for6.C
+ 7eed32f2fabc3634389ccda4f1b66f36  gcc/testsuite/g++.dg/cpp23/range-for7.C
+ 9c26ce28c1936b765193b10ee0c32139  gcc/testsuite/g++.dg/cpp23/range-for8.C
+ e408b3d8d3b64969041e538afc7dd797  gcc/testsuite/g++.dg/cpp23/range-for9.C
  5fe66da6d2baee159060686defa0e47e  gcc/testsuite/g++.dg/cpp23/size_t-literals.C
  15ad584a4607eb422fa274d5aec5df69  gcc/testsuite/g++.dg/cpp23/static-operator-call1.C
  2fcd37e13aa3cc9c26d3a3e7d923dbab  gcc/testsuite/g++.dg/cpp23/static-operator-call2.C
*************** b3027b59c30da0a8d6f012df421ad0e3  gcc/te
*** 19486,19493 ****
  4fc343553d0042f79bb6999971e7f3f1  gcc/testsuite/g++.dg/cpp23/subscript2.C
  5c1847673786b152609b1696a5e8c094  gcc/testsuite/g++.dg/cpp23/subscript3.C
  1cc2764b96a62eefc30e464e19cc2483  gcc/testsuite/g++.dg/cpp23/subscript4.C
! 80e6dc5c6a33d1b4cff9fb1b2fd780da  gcc/testsuite/g++.dg/cpp23/subscript5.C
! 8fcc8a8ee33aa0447a667acdbe7e96c4  gcc/testsuite/g++.dg/cpp23/subscript6.C
  ac774c183ac6257c45b8fd97824ef1a0  gcc/testsuite/g++.dg/cpp23/subscript7.C
  2429cd1bbca4ddb50fb9b3b4970d1c09  gcc/testsuite/g++.dg/cpp23/subscript8.C
  69f92ba9546206740265c2f12b503d38  gcc/testsuite/g++.dg/cpp23/subscript9.C
--- 20795,20802 ----
  4fc343553d0042f79bb6999971e7f3f1  gcc/testsuite/g++.dg/cpp23/subscript2.C
  5c1847673786b152609b1696a5e8c094  gcc/testsuite/g++.dg/cpp23/subscript3.C
  1cc2764b96a62eefc30e464e19cc2483  gcc/testsuite/g++.dg/cpp23/subscript4.C
! 743c69588df06a3bd20c13749562f48d  gcc/testsuite/g++.dg/cpp23/subscript5.C
! 270840d1db242afa34e09ad2a6151575  gcc/testsuite/g++.dg/cpp23/subscript6.C
  ac774c183ac6257c45b8fd97824ef1a0  gcc/testsuite/g++.dg/cpp23/subscript7.C
  2429cd1bbca4ddb50fb9b3b4970d1c09  gcc/testsuite/g++.dg/cpp23/subscript8.C
  69f92ba9546206740265c2f12b503d38  gcc/testsuite/g++.dg/cpp23/subscript9.C
*************** ac774c183ac6257c45b8fd97824ef1a0  gcc/te
*** 19496,19521 ****
  6bd205e63efa5b2521d156a4976203a2  gcc/testsuite/g++.dg/cpp23/wchar-multi1.C
  d249caf403715041728592d4a4163da2  gcc/testsuite/g++.dg/cpp23/wchar-multi2.C
  60f9d3d6a5d9c7ef12a738913318d3ba  gcc/testsuite/g++.dg/cpp23/whitespace-splice1.C
! 99df97e23e6adba827b26dd28d281b28  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr1.C
  33afee43a2089a3e2bccd50e52d8faa6  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr2.C
  54cc8d4706b3ab357055a709b5800258  gcc/testsuite/g++.dg/cpp26/cplusplus.C
  b835b9bb00c8b448e2ac56df5e6cae60  gcc/testsuite/g++.dg/cpp26/enum-conv1.C
! 2cce13f27ba62ba07a652f3231d22f92  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
  e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
  24ebebb3be412c0e507595cb8c7458f5  gcc/testsuite/g++.dg/cpp26/literals2.C
  1eebd6cbce6cabc0490fdd8bf706934d  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
  4e8e44f517eeede150069458b1132524  gcc/testsuite/g++.dg/cpp26/name-independent-decl2.C
  4327ebfbe5ebdc6dedbf20e479505a60  gcc/testsuite/g++.dg/cpp26/name-independent-decl3.C
  44f4c7cbf1e4a45b5e275e10d9823057  gcc/testsuite/g++.dg/cpp26/name-independent-decl4.C
  f09dc9ea398bb62a535b52948f72e1f0  gcc/testsuite/g++.dg/cpp26/name-independent-decl5.C
  84e871a4b75561cbff5fe117fd5a52e9  gcc/testsuite/g++.dg/cpp26/name-independent-decl6.C
  935218094ce32f7e344f11a3fd203c32  gcc/testsuite/g++.dg/cpp26/pr115754.C
! 7e3e8416e6735f1e27355ec2ccdb2682  gcc/testsuite/g++.dg/cpp26/static_assert1.C
  a4e3473e8199aabb6d134042640d65a2  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop1.C
  75514778d36a15b80b9b9646139f59a7  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop2.C
  b4519bce844d0325d874901a172f6d25  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop3.C
! 8d19346266adba2567e40d4824bbf34c  gcc/testsuite/g++.dg/cpp26/unevalstr1.C
! fa8ccfb2aff45aa2e8fe1ec2e8c7b461  gcc/testsuite/g++.dg/cpp26/unevalstr2.C
  6e521186d896dd387882c734f9554b0d  gcc/testsuite/g++.dg/cpp2a/aggr1.C
  4c16f1196fa5b9ac2fd9ba5882eba51c  gcc/testsuite/g++.dg/cpp2a/aggr2.C
  92044f5b7098db5aa135ac9643297edb  gcc/testsuite/g++.dg/cpp2a/array-conv1.C
--- 20805,20885 ----
  6bd205e63efa5b2521d156a4976203a2  gcc/testsuite/g++.dg/cpp23/wchar-multi1.C
  d249caf403715041728592d4a4163da2  gcc/testsuite/g++.dg/cpp23/wchar-multi2.C
  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
! c3a9b6852b1f09d9ece1fdf2078d65c2  gcc/testsuite/g++.dg/cpp26/constexpr-new1.C
! 92cd7c8e3355d7acc8819940fc96bc7d  gcc/testsuite/g++.dg/cpp26/constexpr-new2.C
! dbe4cf9df545b2cb75b00993e494cc66  gcc/testsuite/g++.dg/cpp26/constexpr-new3.C
! d69dac44671433f94358ee77163aef3c  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr1.C
  33afee43a2089a3e2bccd50e52d8faa6  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr2.C
+ 6a32febab2200bb5e0fe63b6825c4e86  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr3.C
+ 168d651e6bc6e15b97b816ebe762fd50  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr4.C
  54cc8d4706b3ab357055a709b5800258  gcc/testsuite/g++.dg/cpp26/cplusplus.C
+ e6cd912bf923af3add3056c0b7235bab  gcc/testsuite/g++.dg/cpp26/decomp1.C
+ 6404fe1c41bc0435baaae5bf82009d36  gcc/testsuite/g++.dg/cpp26/decomp10.C
+ 0c6fcbc76ec6471803e93062f104892d  gcc/testsuite/g++.dg/cpp26/decomp11.C
+ d01e805b9f6fdb44547d559f5b04ea4a  gcc/testsuite/g++.dg/cpp26/decomp12.C
+ 70cb6b928ead9bbcb58e49f48aac09a0  gcc/testsuite/g++.dg/cpp26/decomp2.C
+ 04625a49d6c21164c6f7e075e578b4d2  gcc/testsuite/g++.dg/cpp26/decomp3.C
+ e0331653ca37862860617d90def1c2d9  gcc/testsuite/g++.dg/cpp26/decomp4.C
+ 2765a6ddd9be5099086c5f772077d8d1  gcc/testsuite/g++.dg/cpp26/decomp5.C
+ cb34c6e9da3ed6ca1a9ebb453abcce46  gcc/testsuite/g++.dg/cpp26/decomp6.C
+ 0c04277c2b1bba5d83f71e32654411e1  gcc/testsuite/g++.dg/cpp26/decomp7.C
+ f76b802f5893de13fc04097bce21f662  gcc/testsuite/g++.dg/cpp26/decomp8.C
+ 78e774c4a0e9bfa34b162b99f73ce6d5  gcc/testsuite/g++.dg/cpp26/decomp9.C
+ 5799d6e6d3432f3121b8c79c8af9accc  gcc/testsuite/g++.dg/cpp26/delete-reason1.C
+ 294ff517a64e51b2725c484dbf398117  gcc/testsuite/g++.dg/cpp26/delete-reason2.C
+ d0519edbdf7be9b73cadd101aebf0d60  gcc/testsuite/g++.dg/cpp26/delete1.C
+ 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
! 3f483bbcb1d535aa9c7cb56cc358f2df  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
  e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
  24ebebb3be412c0e507595cb8c7458f5  gcc/testsuite/g++.dg/cpp26/literals2.C
  1eebd6cbce6cabc0490fdd8bf706934d  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
+ cd432aa62bbbf4b16b93cb38b110d2a5  gcc/testsuite/g++.dg/cpp26/name-independent-decl10.C
  4e8e44f517eeede150069458b1132524  gcc/testsuite/g++.dg/cpp26/name-independent-decl2.C
  4327ebfbe5ebdc6dedbf20e479505a60  gcc/testsuite/g++.dg/cpp26/name-independent-decl3.C
  44f4c7cbf1e4a45b5e275e10d9823057  gcc/testsuite/g++.dg/cpp26/name-independent-decl4.C
  f09dc9ea398bb62a535b52948f72e1f0  gcc/testsuite/g++.dg/cpp26/name-independent-decl5.C
  84e871a4b75561cbff5fe117fd5a52e9  gcc/testsuite/g++.dg/cpp26/name-independent-decl6.C
+ 5f2cde48457586ee466e647dcbc9022e  gcc/testsuite/g++.dg/cpp26/name-independent-decl7.C
+ e21940a9e7b4702fb26f7985bbb70580  gcc/testsuite/g++.dg/cpp26/name-independent-decl8.C
+ 81da95d53df0e0ca295568eaee63ec61  gcc/testsuite/g++.dg/cpp26/name-independent-decl9.C
+ 5ac6464988a493e494d9c6115f66a3ae  gcc/testsuite/g++.dg/cpp26/pack-indexing1.C
+ 3a492a80a8c34d438a39836c2e55496d  gcc/testsuite/g++.dg/cpp26/pack-indexing10.C
+ f9a24ae6dc0bbd835ba2ab3fd47e4dbb  gcc/testsuite/g++.dg/cpp26/pack-indexing11.C
+ cc1bf2a565ba5d8ca3b904469fe97fd2  gcc/testsuite/g++.dg/cpp26/pack-indexing12.C
+ b0f94df77ae1f45f51ea4e2c6bb9691a  gcc/testsuite/g++.dg/cpp26/pack-indexing13.C
+ 2932dc127ada32f6fb144906d4c837c5  gcc/testsuite/g++.dg/cpp26/pack-indexing14.C
+ 42acddf57107ca62daf89ff86652698f  gcc/testsuite/g++.dg/cpp26/pack-indexing15.C
+ 36888ce54ce42641fb6e61af819e4031  gcc/testsuite/g++.dg/cpp26/pack-indexing16.C
+ 49ef5418646a1f810ced7c9ecba2f5a9  gcc/testsuite/g++.dg/cpp26/pack-indexing2.C
+ 01e2e390b9329b3e619416e0bf8b3684  gcc/testsuite/g++.dg/cpp26/pack-indexing3.C
+ 8105a5f8078fd0ba5507cadc224b15ad  gcc/testsuite/g++.dg/cpp26/pack-indexing4.C
+ e23875fe03c3518fda8adb9018cbe078  gcc/testsuite/g++.dg/cpp26/pack-indexing5.C
+ 3a466ff0615f64b4c569586077d58222  gcc/testsuite/g++.dg/cpp26/pack-indexing6.C
+ 5c290feeedde11d0fce582fb0bb4287a  gcc/testsuite/g++.dg/cpp26/pack-indexing7.C
+ a457069f7773dede2d30437b9569df74  gcc/testsuite/g++.dg/cpp26/pack-indexing8.C
+ b149ac22b34abf9137a6e7f290160e13  gcc/testsuite/g++.dg/cpp26/pack-indexing9.C
  935218094ce32f7e344f11a3fd203c32  gcc/testsuite/g++.dg/cpp26/pr115754.C
! e5c8f0eb28524b5990c773f0897c9a82  gcc/testsuite/g++.dg/cpp26/raw-string1.C
! b9789190917641a7dfa95059b0d37281  gcc/testsuite/g++.dg/cpp26/raw-string2.C
! db11150d1a917738248bc001deea4fd4  gcc/testsuite/g++.dg/cpp26/static_assert1.C
  a4e3473e8199aabb6d134042640d65a2  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop1.C
  75514778d36a15b80b9b9646139f59a7  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop2.C
  b4519bce844d0325d874901a172f6d25  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop3.C
! 67dd0d88f5927305cb1388ee2a725071  gcc/testsuite/g++.dg/cpp26/unevalstr1.C
! 198bbad6dbabb78a766fa825c0121c10  gcc/testsuite/g++.dg/cpp26/unevalstr2.C
! 984d3c2a5f2f39372d6a73f8b77bcee1  gcc/testsuite/g++.dg/cpp26/variadic-comma1.C
! 0a7dfb56f23481574c821d16f9fdb270  gcc/testsuite/g++.dg/cpp26/variadic-comma2.C
! 265aebc6808c65f0676108f81b49dfb0  gcc/testsuite/g++.dg/cpp26/variadic-comma3.C
! 5d383c46973350353b641060d830143f  gcc/testsuite/g++.dg/cpp26/variadic-comma4.C
! 4fe3609f7385a1f131df362a10ee6065  gcc/testsuite/g++.dg/cpp26/variadic-comma5.C
! 6ca56d56bbd9d4ac1e7cb5313516359b  gcc/testsuite/g++.dg/cpp26/variadic-friend1.C
! 5bcb9d1194a35cf17a1a88005e7f5d01  gcc/testsuite/g++.dg/cpp2a/abbrev-fn1.C
! 87d838f5781e95bc5519bc5cd029cd32  gcc/testsuite/g++.dg/cpp2a/abbrev-fn2.C
! 2e791b293e77eea479b4f027aa624fcc  gcc/testsuite/g++.dg/cpp2a/abbrev-fn3.C
  6e521186d896dd387882c734f9554b0d  gcc/testsuite/g++.dg/cpp2a/aggr1.C
  4c16f1196fa5b9ac2fd9ba5882eba51c  gcc/testsuite/g++.dg/cpp2a/aggr2.C
  92044f5b7098db5aa135ac9643297edb  gcc/testsuite/g++.dg/cpp2a/array-conv1.C
*************** b21ee39782e659d8a55e03a67e8f3d2a  gcc/te
*** 19554,19560 ****
  1a2fa5e09ce4afea93f8549367941793  gcc/testsuite/g++.dg/cpp2a/bit-cast2.C
  4cd9a6c75b7b9c06d500d33a4b70e045  gcc/testsuite/g++.dg/cpp2a/bit-cast3.C
  43041147b254e878b1962b35b230ff79  gcc/testsuite/g++.dg/cpp2a/bit-cast4.C
! 4088424a41352416e337df3284b9f736  gcc/testsuite/g++.dg/cpp2a/bit-cast5.C
  bcecfdcccf9edb773fbec699fe2b71c0  gcc/testsuite/g++.dg/cpp2a/bit-cast6.C
  61aba0cc52f75cb4ca2c7ffaf33a1406  gcc/testsuite/g++.dg/cpp2a/bit-cast7.C
  39ca439b4e0272dadf02ecf57bd67d4d  gcc/testsuite/g++.dg/cpp2a/bit-cast8.C
--- 20918,20924 ----
  1a2fa5e09ce4afea93f8549367941793  gcc/testsuite/g++.dg/cpp2a/bit-cast2.C
  4cd9a6c75b7b9c06d500d33a4b70e045  gcc/testsuite/g++.dg/cpp2a/bit-cast3.C
  43041147b254e878b1962b35b230ff79  gcc/testsuite/g++.dg/cpp2a/bit-cast4.C
! 036f890da22b0673129142923acd406b  gcc/testsuite/g++.dg/cpp2a/bit-cast5.C
  bcecfdcccf9edb773fbec699fe2b71c0  gcc/testsuite/g++.dg/cpp2a/bit-cast6.C
  61aba0cc52f75cb4ca2c7ffaf33a1406  gcc/testsuite/g++.dg/cpp2a/bit-cast7.C
  39ca439b4e0272dadf02ecf57bd67d4d  gcc/testsuite/g++.dg/cpp2a/bit-cast8.C
*************** d9bcdea082949e0c87b6954f2dd67298  gcc/te
*** 19577,19582 ****
--- 20941,20947 ----
  0a9641e2221694f70c0faa316b9d574d  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr13a.C
  0c4863c9484d9ddbf62739a51c0ef8f1  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr14.C
  240bb2ae9d076fc9f4a16b0517956e25  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr15.C
+ 3242fc057e62c9782d9ae82ffd8d9401  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr16.C
  bfe691406f456aa2bf87cad44ebe9fdf  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr2.C
  874ea45b0464e3169c1d395e9b4c624e  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr3.C
  f664fc9add616872e35649f615430da5  gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr4.C
*************** c9138014de29c4f3857469eb5c4790df  gcc/te
*** 19600,19605 ****
--- 20965,20974 ----
  e7c1279aa8991dc499b516c4e4f56c9c  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias20.C
  d0667262983195a4d3905a0fdb1b97b0  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias21.C
  fbdc0e6797df6f79ec2f98e9681b3df2  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias22.C
+ 3a340376f9f4cedf3824a22334822f4f  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias23.C
+ 041d83d15cbe2f1b6faf8df5779ee617  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias24.C
+ de00e6f50f8aa11ae388287d947cb6dd  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25.C
+ 5ca927feee2c144f300c078175416059  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25a.C
  b5dae7ae7594a42f65f1f8f0f17b30a8  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C
  06de637acc58c0572ef2eb75419e55e3  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C
  0538d499885f751447275fb21053fc26  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C
*************** d19fb841ca3071b5e021ae201278d700  gcc/te
*** 19628,19634 ****
  de871ba0c669234d7775a8dd50e71a82  gcc/testsuite/g++.dg/cpp2a/concepts-class4.C
  4bcd92b6654cddea3350b4d87fd6d146  gcc/testsuite/g++.dg/cpp2a/concepts-class5.C
  e2691e1e7623a7d8148288696c039418  gcc/testsuite/g++.dg/cpp2a/concepts-class5a.C
! 23827376311292569303ff5fd4542c5c  gcc/testsuite/g++.dg/cpp2a/concepts-cmath.C
  d6b4a2062d9072a514a787db6f02cc29  gcc/testsuite/g++.dg/cpp2a/concepts-complete1.C
  cb8668f19e63ee61b88c50eb36fc3645  gcc/testsuite/g++.dg/cpp2a/concepts-complete2.C
  697e220e643e4dd5dbf81947b8621a99  gcc/testsuite/g++.dg/cpp2a/concepts-complete3.C
--- 20997,21003 ----
  de871ba0c669234d7775a8dd50e71a82  gcc/testsuite/g++.dg/cpp2a/concepts-class4.C
  4bcd92b6654cddea3350b4d87fd6d146  gcc/testsuite/g++.dg/cpp2a/concepts-class5.C
  e2691e1e7623a7d8148288696c039418  gcc/testsuite/g++.dg/cpp2a/concepts-class5a.C
! 76dc6502f3e927784b6e441195672a25  gcc/testsuite/g++.dg/cpp2a/concepts-cmath.C
  d6b4a2062d9072a514a787db6f02cc29  gcc/testsuite/g++.dg/cpp2a/concepts-complete1.C
  cb8668f19e63ee61b88c50eb36fc3645  gcc/testsuite/g++.dg/cpp2a/concepts-complete2.C
  697e220e643e4dd5dbf81947b8621a99  gcc/testsuite/g++.dg/cpp2a/concepts-complete3.C
*************** ce0107015099b9bc8bbb6308d69d1335  gcc/te
*** 19648,19653 ****
--- 21017,21023 ----
  bd5315a1ae1bb7ab6b080320eca4e7cc  gcc/testsuite/g++.dg/cpp2a/concepts-decltype4.C
  2ff1559b74cd8147b9de258edac783b1  gcc/testsuite/g++.dg/cpp2a/concepts-defarg1.C
  8b450b687a58857141c45425bdbf8e80  gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C
+ e0a60fccd4fe206005be1e84cfb2682d  gcc/testsuite/g++.dg/cpp2a/concepts-defarg3.C
  c215ebfad2b56bf6dd6b0a287515afa7  gcc/testsuite/g++.dg/cpp2a/concepts-dep1.C
  37eafad18707c0514512d3caa8c07489  gcc/testsuite/g++.dg/cpp2a/concepts-dr1430.C
  b3feeac577b96f98eb5fffae47fd7684  gcc/testsuite/g++.dg/cpp2a/concepts-dr2428.C
*************** a36328931eee1fbab16d05f42eacf4bd  gcc/te
*** 19663,19674 ****
  ec6220905e567a0d8dab4a952fe8c861  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst4.C
  740230459551566f4362724f116bc96e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst5.C
  6d82a90caf0f1273061a731d18cc67e6  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst6.C
! 503fee90026f6e892cef6edc9f26066a  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec1.C
  8c6ce7d3a7a3dd1eadb46601b80f9ab1  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec2.C
  d3c85c507d4288a8286336935645f41c  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec3.C
! 4b80e979535ae4fa609a83187700f5e3  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec4.C
! dfba4781e85f6add0289734b8835a055  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec5.C
  68f3034bcc5d853319e01e07fd096130  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C
  3e23e5ef22d81c4913709b17ced786d1  gcc/testsuite/g++.dg/cpp2a/concepts-feature-macro.C
  33e885426a730901465b983fca026a37  gcc/testsuite/g++.dg/cpp2a/concepts-fn1.C
  a6a50b6488710734804c5c75b79b903a  gcc/testsuite/g++.dg/cpp2a/concepts-fn2.C
--- 21033,21045 ----
  ec6220905e567a0d8dab4a952fe8c861  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst4.C
  740230459551566f4362724f116bc96e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst5.C
  6d82a90caf0f1273061a731d18cc67e6  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst6.C
! 737e3bfb87657608becd57f7242ab1b0  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec1.C
  8c6ce7d3a7a3dd1eadb46601b80f9ab1  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec2.C
  d3c85c507d4288a8286336935645f41c  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec3.C
! d5cc801ed0cf78eb8065de3c288edd6d  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec4.C
! 7547e650efe2ddfbb3a279181644aa44  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec5.C
  68f3034bcc5d853319e01e07fd096130  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C
+ 9fcb175e3730f55dbb6b22a0a0ba6b41  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec7.C
  3e23e5ef22d81c4913709b17ced786d1  gcc/testsuite/g++.dg/cpp2a/concepts-feature-macro.C
  33e885426a730901465b983fca026a37  gcc/testsuite/g++.dg/cpp2a/concepts-fn1.C
  a6a50b6488710734804c5c75b79b903a  gcc/testsuite/g++.dg/cpp2a/concepts-fn2.C
*************** a6a50b6488710734804c5c75b79b903a  gcc/te
*** 19678,19683 ****
--- 21049,21055 ----
  0f1a6b3b582e8d9538428d983f021ba9  gcc/testsuite/g++.dg/cpp2a/concepts-fn6.C
  361e29e28ac51bd246a126bf9582d546  gcc/testsuite/g++.dg/cpp2a/concepts-fn7.C
  d75bf2669acc8817d2d366ec5854068e  gcc/testsuite/g++.dg/cpp2a/concepts-fn8.C
+ 8472df59a6a3b32e9f0dbab39eb749c6  gcc/testsuite/g++.dg/cpp2a/concepts-fn9.C
  54600170a553fbe02a4c3cc4c16271ab  gcc/testsuite/g++.dg/cpp2a/concepts-fnparm1.C
  ddf7b3c6cc5b3127a1fb9f8ada7bd1d3  gcc/testsuite/g++.dg/cpp2a/concepts-friend1.C
  5a78343a21e95f60a8351427c3e14f59  gcc/testsuite/g++.dg/cpp2a/concepts-friend10.C
*************** ac59cd12de1286d61d74c57276a780ba  gcc/te
*** 19700,19705 ****
--- 21072,21078 ----
  99da7c31998a40b6a93d18ba7b0f8b17  gcc/testsuite/g++.dg/cpp2a/concepts-iconv1.C
  1937ae9933c87a03a76c217d414991cf  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor10.C
  fe1e62c95a2bf83c96a7c376426b20ce  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor11.C
+ 633639db0e998407ef8567fdc50dba6e  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor12.C
  3d78675fa4ef2d0ff62dde829e46f274  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor2.C
  e251532eb14b2687c86c2eb70068c425  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor4.C
  c9ef579033e02c74ef195108ea465ecc  gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor5.C
*************** db4d7afa9cc5c159bbf139e868fd3544  gcc/te
*** 19721,19726 ****
--- 21094,21101 ----
  c61f89754bf19eb066c90223050eb1d6  gcc/testsuite/g++.dg/cpp2a/concepts-lambda2.C
  2cdd3df6d70a6187c69e0b2e31916579  gcc/testsuite/g++.dg/cpp2a/concepts-lambda20.C
  4ca9ff6f446b7952827edf777db0b0ea  gcc/testsuite/g++.dg/cpp2a/concepts-lambda21.C
+ f553dcaedc09d2c9050b889d62bcff97  gcc/testsuite/g++.dg/cpp2a/concepts-lambda22.C
+ a33c273c880831d4ae8354f3eae13e25  gcc/testsuite/g++.dg/cpp2a/concepts-lambda23.C
  c1dc95530d3c5579fce346628c40061a  gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C
  6f185f0a7016ab67c7f0d4ffa7012182  gcc/testsuite/g++.dg/cpp2a/concepts-lambda4.C
  86976d8466300862e381a2182c187b35  gcc/testsuite/g++.dg/cpp2a/concepts-lambda5.C
*************** dcc812ca298a6d2d310068abfa0d1270  gcc/te
*** 19731,19740 ****
  512dbb965f20f63bb126b8e5deed8a15  gcc/testsuite/g++.dg/cpp2a/concepts-locations1.C
  866a570be4d1afdfa0c2b5130d439bb2  gcc/testsuite/g++.dg/cpp2a/concepts-member-concept.C
  d12b098e52b49342652a92f712e212d7  gcc/testsuite/g++.dg/cpp2a/concepts-memfun-err.C
! 02865ef6ff74cb9b4108964da2da397f  gcc/testsuite/g++.dg/cpp2a/concepts-memfun.C
  b53c750bcf0863ab645580c6652a2f79  gcc/testsuite/g++.dg/cpp2a/concepts-memfun2.C
  2ac2e46289c1f783563a03c5bceb9513  gcc/testsuite/g++.dg/cpp2a/concepts-memfun3.C
! 2f7cd689bb828533c03441fc7c087192  gcc/testsuite/g++.dg/cpp2a/concepts-memfun4.C
  7f5a683e6cb36d020f2d955fd2b5662a  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl1.C
  e09adbfcc76e9a9b156fb1128f518684  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl2.C
  913d434a43b62d7d2f966fd44a4a141e  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl3.C
--- 21106,21115 ----
  512dbb965f20f63bb126b8e5deed8a15  gcc/testsuite/g++.dg/cpp2a/concepts-locations1.C
  866a570be4d1afdfa0c2b5130d439bb2  gcc/testsuite/g++.dg/cpp2a/concepts-member-concept.C
  d12b098e52b49342652a92f712e212d7  gcc/testsuite/g++.dg/cpp2a/concepts-memfun-err.C
! 4ff6d70597394c14505cdae7c213726a  gcc/testsuite/g++.dg/cpp2a/concepts-memfun.C
  b53c750bcf0863ab645580c6652a2f79  gcc/testsuite/g++.dg/cpp2a/concepts-memfun2.C
  2ac2e46289c1f783563a03c5bceb9513  gcc/testsuite/g++.dg/cpp2a/concepts-memfun3.C
! 9ad2e404f471609db7661e3bade9c43b  gcc/testsuite/g++.dg/cpp2a/concepts-memfun4.C
  7f5a683e6cb36d020f2d955fd2b5662a  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl1.C
  e09adbfcc76e9a9b156fb1128f518684  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl2.C
  913d434a43b62d7d2f966fd44a4a141e  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl3.C
*************** ab8fffd9ad5ab44288587ff17983258d  gcc/te
*** 19790,19798 ****
--- 21165,21175 ----
  004db5f35cbf918a16efca84537ed5a1  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder9.C
  fc797eabdd1dc0d22609e8841d633f99  gcc/testsuite/g++.dg/cpp2a/concepts-pmf1.C
  ca94fb35340cd618ed01f462ef62f3d9  gcc/testsuite/g++.dg/cpp2a/concepts-pr100557.C
+ ebebcf3ee0f1f8f456d97ce908f36eb5  gcc/testsuite/g++.dg/cpp2a/concepts-pr100589.C
  93d1e55f1ec8ecc0589c4cf386fc18c7  gcc/testsuite/g++.dg/cpp2a/concepts-pr104410.C
  d730bf14b7c6a0ff4579eb13739f7d2f  gcc/testsuite/g++.dg/cpp2a/concepts-pr108579.C
  10c26b1079f1b79e271e63ca28b96ecd  gcc/testsuite/g++.dg/cpp2a/concepts-pr112436.C
+ 4b3fe1ba64fb6a81fe92d55b090adf3a  gcc/testsuite/g++.dg/cpp2a/concepts-pr116681.C
  2e23f19968091d773a47c43a32a784ae  gcc/testsuite/g++.dg/cpp2a/concepts-pr58500.C
  07c6a4dff1357ef61c0d30b12db5c948  gcc/testsuite/g++.dg/cpp2a/concepts-pr58534.C
  b6ba42db630bfd3259d65662fc03aaa0  gcc/testsuite/g++.dg/cpp2a/concepts-pr58535.C
*************** e39ee16eeab2a77ec7b432c96ef0dc7b  gcc/te
*** 19806,19882 ****
  a25d60ba8cfc4f8fff17fe07b085bb59  gcc/testsuite/g++.dg/cpp2a/concepts-pr60065.C
  cb815d3a7525bf862890051adf239ce3  gcc/testsuite/g++.dg/cpp2a/concepts-pr60377.C
  a6017b5415fc2bcf7a3df910703e0137  gcc/testsuite/g++.dg/cpp2a/concepts-pr60390.C
! 19ab34c3acffcfac10237d280b6846a3  gcc/testsuite/g++.dg/cpp2a/concepts-pr60391.C
  bc89487bc8fc4fa7edd814ad73b2f5a0  gcc/testsuite/g++.dg/cpp2a/concepts-pr60573.C
  d9e495a50301fc18b6519a58b37f0e75  gcc/testsuite/g++.dg/cpp2a/concepts-pr65552.C
! a37f60c2bf278f20325dbf16793b1252  gcc/testsuite/g++.dg/cpp2a/concepts-pr65575.C
  b6b6ca694f72c96ddf8323f8f47b9a30  gcc/testsuite/g++.dg/cpp2a/concepts-pr65634.C
  419ce7f9a789795063fd527a54b173fc  gcc/testsuite/g++.dg/cpp2a/concepts-pr65636.C
  5a1d2311d59bc80baa4a175fc3e9ac7f  gcc/testsuite/g++.dg/cpp2a/concepts-pr65848.C
  3db889f25404e785557f5d1a8bbd3057  gcc/testsuite/g++.dg/cpp2a/concepts-pr65854.C
! cff9ef71f3d5fa5141efed18dfe765b5  gcc/testsuite/g++.dg/cpp2a/concepts-pr66091.C
  eba6b77b814ef5e75a5d87f2147e2c06  gcc/testsuite/g++.dg/cpp2a/concepts-pr66844.C
  df7a18db64b370a45805fb151fc0de95  gcc/testsuite/g++.dg/cpp2a/concepts-pr66962.C
  eade582d72f3e6b1e06dacf6ee9217ce  gcc/testsuite/g++.dg/cpp2a/concepts-pr67070.C
  d0535f13efe2f4a56e6de25c122b35b9  gcc/testsuite/g++.dg/cpp2a/concepts-pr67147.C
! 0dc83269858647aa5dba5ceae232a823  gcc/testsuite/g++.dg/cpp2a/concepts-pr67148.C
  4c1fab77a146c92c07ea41b30ef32b31  gcc/testsuite/g++.dg/cpp2a/concepts-pr67178.C
  ad609edfa0bd5fd5ce502592f3ed81b2  gcc/testsuite/g++.dg/cpp2a/concepts-pr67210.C
  595458aae83450bc59b1e7ae5d94db55  gcc/testsuite/g++.dg/cpp2a/concepts-pr67217.C
! c1ec010d40ead55576d4d7addbda8b52  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-1.C
! 5d002da99c4a6b7ef703fa8322184a9c  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-2.C
! 82d208b5a8e3c50cb83b1ce6c32add28  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-3.C
! 64f967bcc6d19dcdcfffc4010cdbbc37  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-4.C
! e60b5a476be37b67e2ba6d9688f582d9  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-5.C
! 20a0e46e4470fafd8a7a3ee64fb56102  gcc/testsuite/g++.dg/cpp2a/concepts-pr67319.C
! 1ac710a7d6f69a918425959181873c6d  gcc/testsuite/g++.dg/cpp2a/concepts-pr67427.C
! 9e5b29e90d1b910d2be0707be5929145  gcc/testsuite/g++.dg/cpp2a/concepts-pr67654.C
! ae4d820cd3c3b5bb54ba918fa4d19087  gcc/testsuite/g++.dg/cpp2a/concepts-pr67658.C
! e31e56eb4744ca4b71c65e155a043b5e  gcc/testsuite/g++.dg/cpp2a/concepts-pr67684.C
  52dd16d4b1af9e29eb4c5a67fd65e197  gcc/testsuite/g++.dg/cpp2a/concepts-pr67685.C
  4b970f2783514d7d82a50e089b1c5b09  gcc/testsuite/g++.dg/cpp2a/concepts-pr67692.C
! 87472cb7efb033cc3aa7dcc9f6ad183f  gcc/testsuite/g++.dg/cpp2a/concepts-pr67697.C
! f29981061f8cb438309e69f739004f9f  gcc/testsuite/g++.dg/cpp2a/concepts-pr67719.C
! 4ad1b21aadf3a9dc7c4bb2a7512d513b  gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
! c0cb939993562548cd292abcb4d22fc0  gcc/testsuite/g++.dg/cpp2a/concepts-pr67825.C
! 166fb9af7a7fb60b0b20b50973a7229a  gcc/testsuite/g++.dg/cpp2a/concepts-pr67860.C
! b6411bcfc2057e11162b3a93571a88a5  gcc/testsuite/g++.dg/cpp2a/concepts-pr67862.C
! cc918bd6a04833054ab23f8cf9fc6268  gcc/testsuite/g++.dg/cpp2a/concepts-pr67969.C
  8768fe8868ea59a0dbdcd8a06eeea88b  gcc/testsuite/g++.dg/cpp2a/concepts-pr68093-1.C
! eaf49dffb6a686df128c4d776d9841ee  gcc/testsuite/g++.dg/cpp2a/concepts-pr68093-2.C
! fc66789c1778509f88237d2478ea9fa1  gcc/testsuite/g++.dg/cpp2a/concepts-pr68372.C
  b0179a71ee48b86f61897ec4ceada460  gcc/testsuite/g++.dg/cpp2a/concepts-pr68434.C
  622a93304a713a039d8147084421021d  gcc/testsuite/g++.dg/cpp2a/concepts-pr68683.C
! a626bbc0f760ff0acf7d2e5160a6749f  gcc/testsuite/g++.dg/cpp2a/concepts-pr68812.C
  cead0d53901737495789d54fe5f4a5ee  gcc/testsuite/g++.dg/cpp2a/concepts-pr68828.C
! c13352bf00a96f6833e0036e342966ea  gcc/testsuite/g++.dg/cpp2a/concepts-pr69235.C
  33f2896a6c79cf0c5e5190c14c6aa108  gcc/testsuite/g++.dg/cpp2a/concepts-pr71368.C
  8ca01691ad30f8406d7975eb5174580c  gcc/testsuite/g++.dg/cpp2a/concepts-pr71385.C
  465947a162683479beb8265b8a80b825  gcc/testsuite/g++.dg/cpp2a/concepts-pr71965.C
  f99d03cfb87e520750e7842a753421d3  gcc/testsuite/g++.dg/cpp2a/concepts-pr72415.C
  44dd6e924e6725284b2bd8b2f2730b34  gcc/testsuite/g++.dg/cpp2a/concepts-pr78173.C
! 8e6661d642e235ac93a4dd3480b3f6af  gcc/testsuite/g++.dg/cpp2a/concepts-pr78752-2.C
! 8057eb9ed15291378fc80a4cecabb8ee  gcc/testsuite/g++.dg/cpp2a/concepts-pr78752.C
! d8292402c5e2ddad2ccd2ba6d2e6de42  gcc/testsuite/g++.dg/cpp2a/concepts-pr79759.C
  a9a9b929432f59c2ddc85af61b0f7742  gcc/testsuite/g++.dg/cpp2a/concepts-pr80471.C
! 1f5f2a4d614cd9dcc832af752ec3a60e  gcc/testsuite/g++.dg/cpp2a/concepts-pr80746.C
! 904098607b115169ac11a1741721286f  gcc/testsuite/g++.dg/cpp2a/concepts-pr80773.C
! 9f7fd91ec56fa4cd960eaa63059a5510  gcc/testsuite/g++.dg/cpp2a/concepts-pr82507.C
! f1cbfc7c7a5b436ba46f015490d1f5e3  gcc/testsuite/g++.dg/cpp2a/concepts-pr82740.C
  254ef1258be3b4ea81014ce3f0ff41aa  gcc/testsuite/g++.dg/cpp2a/concepts-pr84140.C
  36d00fa8a1fecaba261bd00d6dd6094e  gcc/testsuite/g++.dg/cpp2a/concepts-pr84551.C
  32711f92204c15d0d19e4313d121f6b8  gcc/testsuite/g++.dg/cpp2a/concepts-pr84810.C
  b162d4e4e006d83510422cfc497d337c  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979-2.C
  e1d69cc096b598b5fdf0c6f74637c141  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979-3.C
  13fe164a5fd78a533b38323a606f025a  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979.C
! c4a0be329501ac323d9af5f4ebe17aeb  gcc/testsuite/g++.dg/cpp2a/concepts-pr84980.C
! a346064e46f9fd63ae127f06df8308b9  gcc/testsuite/g++.dg/cpp2a/concepts-pr85265.C
  27d70640425a392e01875d0ec6be9397  gcc/testsuite/g++.dg/cpp2a/concepts-pr85706.C
! d2442a59cddf2d53ae6261852ada8b20  gcc/testsuite/g++.dg/cpp2a/concepts-pr85808.C
  e39f914372d756386339c8f07831dc72  gcc/testsuite/g++.dg/cpp2a/concepts-pr85846.C
  3ec7fd936ea8f9e5e43d1b44ab8f2317  gcc/testsuite/g++.dg/cpp2a/concepts-pr86002.C
! 80166dc2f827ff198d6fa5167ed0be5f  gcc/testsuite/g++.dg/cpp2a/concepts-pr86269.C
! 3d1ff458b6249f9f9032ae10025f0524  gcc/testsuite/g++.dg/cpp2a/concepts-pr87441.C
  e4824ff4a368f4083c4ab5643225d818  gcc/testsuite/g++.dg/cpp2a/concepts-pr88395.C
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
--- 21183,21260 ----
  a25d60ba8cfc4f8fff17fe07b085bb59  gcc/testsuite/g++.dg/cpp2a/concepts-pr60065.C
  cb815d3a7525bf862890051adf239ce3  gcc/testsuite/g++.dg/cpp2a/concepts-pr60377.C
  a6017b5415fc2bcf7a3df910703e0137  gcc/testsuite/g++.dg/cpp2a/concepts-pr60390.C
! c00ad67fb72d8cddb8f505a48c1d24a5  gcc/testsuite/g++.dg/cpp2a/concepts-pr60391.C
  bc89487bc8fc4fa7edd814ad73b2f5a0  gcc/testsuite/g++.dg/cpp2a/concepts-pr60573.C
  d9e495a50301fc18b6519a58b37f0e75  gcc/testsuite/g++.dg/cpp2a/concepts-pr65552.C
! afef1daa2458d928597c9d7d62031f54  gcc/testsuite/g++.dg/cpp2a/concepts-pr65575.C
  b6b6ca694f72c96ddf8323f8f47b9a30  gcc/testsuite/g++.dg/cpp2a/concepts-pr65634.C
  419ce7f9a789795063fd527a54b173fc  gcc/testsuite/g++.dg/cpp2a/concepts-pr65636.C
  5a1d2311d59bc80baa4a175fc3e9ac7f  gcc/testsuite/g++.dg/cpp2a/concepts-pr65848.C
  3db889f25404e785557f5d1a8bbd3057  gcc/testsuite/g++.dg/cpp2a/concepts-pr65854.C
! 44818b3b3656cd4411280bafb4c4986f  gcc/testsuite/g++.dg/cpp2a/concepts-pr66091.C
  eba6b77b814ef5e75a5d87f2147e2c06  gcc/testsuite/g++.dg/cpp2a/concepts-pr66844.C
  df7a18db64b370a45805fb151fc0de95  gcc/testsuite/g++.dg/cpp2a/concepts-pr66962.C
  eade582d72f3e6b1e06dacf6ee9217ce  gcc/testsuite/g++.dg/cpp2a/concepts-pr67070.C
  d0535f13efe2f4a56e6de25c122b35b9  gcc/testsuite/g++.dg/cpp2a/concepts-pr67147.C
! 8abec1e6199444d8e23f84ea116cf9cc  gcc/testsuite/g++.dg/cpp2a/concepts-pr67148.C
  4c1fab77a146c92c07ea41b30ef32b31  gcc/testsuite/g++.dg/cpp2a/concepts-pr67178.C
  ad609edfa0bd5fd5ce502592f3ed81b2  gcc/testsuite/g++.dg/cpp2a/concepts-pr67210.C
  595458aae83450bc59b1e7ae5d94db55  gcc/testsuite/g++.dg/cpp2a/concepts-pr67217.C
! f4e05a739456bd326c140d043d5c0988  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-1.C
! 970cd0bd8612a342e65960078e300111  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-2.C
! 631d4f505d332b0f5ccdd4659cf2dace  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-3.C
! fb4221b24ffad0bbfa3c18c2045c619c  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-4.C
! c9cb15a3f8dc224ac9ecc23e4e90394f  gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-5.C
! e7c2c9d6d9bf08667ca2cec65db83c99  gcc/testsuite/g++.dg/cpp2a/concepts-pr67319.C
! 809b390e90d41b30410f597d22c297dd  gcc/testsuite/g++.dg/cpp2a/concepts-pr67427.C
! bd3c54ece4139900779c2e69d3f16a39  gcc/testsuite/g++.dg/cpp2a/concepts-pr67654.C
! 6084271945e236050d1fb1eb9b145569  gcc/testsuite/g++.dg/cpp2a/concepts-pr67658.C
! 4b52fd9749814fcfbf87427a0cc08e57  gcc/testsuite/g++.dg/cpp2a/concepts-pr67684.C
  52dd16d4b1af9e29eb4c5a67fd65e197  gcc/testsuite/g++.dg/cpp2a/concepts-pr67685.C
  4b970f2783514d7d82a50e089b1c5b09  gcc/testsuite/g++.dg/cpp2a/concepts-pr67692.C
! 44e79a92bd25fc142996089eca6cfec5  gcc/testsuite/g++.dg/cpp2a/concepts-pr67697.C
! 8057cd5aff0b5ecf25a40ce68ed356da  gcc/testsuite/g++.dg/cpp2a/concepts-pr67719.C
! 253cc24217797e2ac2556b91e1b54e77  gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
! a4c259c02768cd0f8bd885ebdd196388  gcc/testsuite/g++.dg/cpp2a/concepts-pr67825.C
! 74f2d8d13654df44ba00b26a7768fead  gcc/testsuite/g++.dg/cpp2a/concepts-pr67860.C
! bea3a87b181d0398405650f88066f03b  gcc/testsuite/g++.dg/cpp2a/concepts-pr67862.C
! 2b0f2564023062fa83eef46ecf66c8ee  gcc/testsuite/g++.dg/cpp2a/concepts-pr67969.C
  8768fe8868ea59a0dbdcd8a06eeea88b  gcc/testsuite/g++.dg/cpp2a/concepts-pr68093-1.C
! 40702d0a598d7df74c11f2035dbf9c22  gcc/testsuite/g++.dg/cpp2a/concepts-pr68093-2.C
! 44fda84de2b6bdcfc77f7e25e9076818  gcc/testsuite/g++.dg/cpp2a/concepts-pr68372.C
  b0179a71ee48b86f61897ec4ceada460  gcc/testsuite/g++.dg/cpp2a/concepts-pr68434.C
  622a93304a713a039d8147084421021d  gcc/testsuite/g++.dg/cpp2a/concepts-pr68683.C
! cef32256fdc60959b0d842589367700a  gcc/testsuite/g++.dg/cpp2a/concepts-pr68812.C
  cead0d53901737495789d54fe5f4a5ee  gcc/testsuite/g++.dg/cpp2a/concepts-pr68828.C
! a72f01ac4f888aebddb103a1335db79b  gcc/testsuite/g++.dg/cpp2a/concepts-pr69235.C
! b0b764a25e187d7cfc55ba898f71676e  gcc/testsuite/g++.dg/cpp2a/concepts-pr70037.C
  33f2896a6c79cf0c5e5190c14c6aa108  gcc/testsuite/g++.dg/cpp2a/concepts-pr71368.C
  8ca01691ad30f8406d7975eb5174580c  gcc/testsuite/g++.dg/cpp2a/concepts-pr71385.C
  465947a162683479beb8265b8a80b825  gcc/testsuite/g++.dg/cpp2a/concepts-pr71965.C
  f99d03cfb87e520750e7842a753421d3  gcc/testsuite/g++.dg/cpp2a/concepts-pr72415.C
  44dd6e924e6725284b2bd8b2f2730b34  gcc/testsuite/g++.dg/cpp2a/concepts-pr78173.C
! 538d253a1960dd0ac77624cc938675fa  gcc/testsuite/g++.dg/cpp2a/concepts-pr78752-2.C
! 9b7bc604a5583442c818ac972f1750d7  gcc/testsuite/g++.dg/cpp2a/concepts-pr78752.C
! b821d4dd77fe5c4c28726662e92fa66b  gcc/testsuite/g++.dg/cpp2a/concepts-pr79759.C
  a9a9b929432f59c2ddc85af61b0f7742  gcc/testsuite/g++.dg/cpp2a/concepts-pr80471.C
! bac7ba44a71c568018f42545ec7ed059  gcc/testsuite/g++.dg/cpp2a/concepts-pr80746.C
! 32c3f893cb74f357920d55916fab8079  gcc/testsuite/g++.dg/cpp2a/concepts-pr80773.C
! a19a492f16f76ef7cc30a3dd17750aa7  gcc/testsuite/g++.dg/cpp2a/concepts-pr82507.C
! 25fa09a97b45d578a1d6ea6b0b7187da  gcc/testsuite/g++.dg/cpp2a/concepts-pr82740.C
! 091bb23c7fba7791f6dcdbafddbcf428  gcc/testsuite/g++.dg/cpp2a/concepts-pr82794.C
  254ef1258be3b4ea81014ce3f0ff41aa  gcc/testsuite/g++.dg/cpp2a/concepts-pr84140.C
  36d00fa8a1fecaba261bd00d6dd6094e  gcc/testsuite/g++.dg/cpp2a/concepts-pr84551.C
  32711f92204c15d0d19e4313d121f6b8  gcc/testsuite/g++.dg/cpp2a/concepts-pr84810.C
  b162d4e4e006d83510422cfc497d337c  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979-2.C
  e1d69cc096b598b5fdf0c6f74637c141  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979-3.C
  13fe164a5fd78a533b38323a606f025a  gcc/testsuite/g++.dg/cpp2a/concepts-pr84979.C
! 2b0324f2f437d9c3b496615f63d02a0f  gcc/testsuite/g++.dg/cpp2a/concepts-pr84980.C
  27d70640425a392e01875d0ec6be9397  gcc/testsuite/g++.dg/cpp2a/concepts-pr85706.C
! 60f7a33482d7bb76bba8dc85ce255b1a  gcc/testsuite/g++.dg/cpp2a/concepts-pr85808.C
  e39f914372d756386339c8f07831dc72  gcc/testsuite/g++.dg/cpp2a/concepts-pr85846.C
  3ec7fd936ea8f9e5e43d1b44ab8f2317  gcc/testsuite/g++.dg/cpp2a/concepts-pr86002.C
! 36e0e6722f4198fda3fa679f449fa827  gcc/testsuite/g++.dg/cpp2a/concepts-pr86269.C
! 4d3440e675da0a05486ba8d48312bead  gcc/testsuite/g++.dg/cpp2a/concepts-pr87441.C
  e4824ff4a368f4083c4ab5643225d818  gcc/testsuite/g++.dg/cpp2a/concepts-pr88395.C
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
*************** ecb5e52db1e00c05c68ecde56b770c71  gcc/te
*** 19923,19930 ****
  19b91038c075d9236a48f3252add1913  gcc/testsuite/g++.dg/cpp2a/concepts-requires36.C
  32a97011dcfc22819c094bbd757f87e4  gcc/testsuite/g++.dg/cpp2a/concepts-requires37.C
  f29efdf7f24d821ae8f9a5ae1259e44c  gcc/testsuite/g++.dg/cpp2a/concepts-requires38.C
  d3851914c01bf78597e5cb411ed0b3d5  gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C
! 480013be0f806d0b078176447ae77360  gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C
  8ea6ab45de0c359b113c65f1958a54a1  gcc/testsuite/g++.dg/cpp2a/concepts-requires6.C
  d9a49412355c5ed0f91582f1c88c13ff  gcc/testsuite/g++.dg/cpp2a/concepts-requires7.C
  3e6c8a3f7643afee74d038d893eb011f  gcc/testsuite/g++.dg/cpp2a/concepts-requires8.C
--- 21301,21311 ----
  19b91038c075d9236a48f3252add1913  gcc/testsuite/g++.dg/cpp2a/concepts-requires36.C
  32a97011dcfc22819c094bbd757f87e4  gcc/testsuite/g++.dg/cpp2a/concepts-requires37.C
  f29efdf7f24d821ae8f9a5ae1259e44c  gcc/testsuite/g++.dg/cpp2a/concepts-requires38.C
+ f22e232a82f7c1bad4e99814aa64e024  gcc/testsuite/g++.dg/cpp2a/concepts-requires39.C
  d3851914c01bf78597e5cb411ed0b3d5  gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C
! 9ff29a02ca82332b82da206e1f44ad5c  gcc/testsuite/g++.dg/cpp2a/concepts-requires40.C
! d8fb95a7a3f620554c731a49b55c6a41  gcc/testsuite/g++.dg/cpp2a/concepts-requires41.C
! b0543fff3c3bc5fc860ec427d28d248c  gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C
  8ea6ab45de0c359b113c65f1958a54a1  gcc/testsuite/g++.dg/cpp2a/concepts-requires6.C
  d9a49412355c5ed0f91582f1c88c13ff  gcc/testsuite/g++.dg/cpp2a/concepts-requires7.C
  3e6c8a3f7643afee74d038d893eb011f  gcc/testsuite/g++.dg/cpp2a/concepts-requires8.C
*************** ee36c7ebc03385f37bcba1c49e06c808  gcc/te
*** 19952,19969 ****
  39c15f1dc604f714304d144250164089  gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C
  c9a6ab7bc0f1947e843b9c7150ccb98c  gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C
  c7b62b8031571fb8bca4923e94717551  gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
- 82c399ad9b34b095f9489e636de58940  gcc/testsuite/g++.dg/cpp2a/concepts-ts1.C
- 202e848af4b3017e51ab2eb5995fffeb  gcc/testsuite/g++.dg/cpp2a/concepts-ts2.C
- ea441494e2367b584a16520ca6327732  gcc/testsuite/g++.dg/cpp2a/concepts-ts3.C
- ef5b971f899385a069755bce1facefe5  gcc/testsuite/g++.dg/cpp2a/concepts-ts4.C
- 12b763f5c24e003b13c6c0d6a71f4ca6  gcc/testsuite/g++.dg/cpp2a/concepts-ts5.C
- ac4c42a0f2fd071297e154c82dd3e5cc  gcc/testsuite/g++.dg/cpp2a/concepts-ts6.C
  427561cea6003909c32f28fbe3d276c7  gcc/testsuite/g++.dg/cpp2a/concepts-ttp1.C
  e9afe83f998c36b2fb7c1f09347d0bde  gcc/testsuite/g++.dg/cpp2a/concepts-ttp2.C
  61d4933dc5691f3ec1773e39ad6449b4  gcc/testsuite/g++.dg/cpp2a/concepts-ttp3.C
  9fd760dc32683991c1046ee2a7769a0f  gcc/testsuite/g++.dg/cpp2a/concepts-ttp4.C
  88c3dc6cebb92ccd4e70aff54871edad  gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C
  14dc8338f97cc1b6792145fdfa5edade  gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C
  12bfd0f0b99ab93e9f3c3ea3610ad8db  gcc/testsuite/g++.dg/cpp2a/concepts-uneval1.C
  728cf90d57c99021cb85c6b8dd9ffa5e  gcc/testsuite/g++.dg/cpp2a/concepts-uneval2.C
  8ededbbf50406070bfd15b600f7ea746  gcc/testsuite/g++.dg/cpp2a/concepts-uneval3.C
--- 21333,21345 ----
  39c15f1dc604f714304d144250164089  gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C
  c9a6ab7bc0f1947e843b9c7150ccb98c  gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C
  c7b62b8031571fb8bca4923e94717551  gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
  427561cea6003909c32f28fbe3d276c7  gcc/testsuite/g++.dg/cpp2a/concepts-ttp1.C
  e9afe83f998c36b2fb7c1f09347d0bde  gcc/testsuite/g++.dg/cpp2a/concepts-ttp2.C
  61d4933dc5691f3ec1773e39ad6449b4  gcc/testsuite/g++.dg/cpp2a/concepts-ttp3.C
  9fd760dc32683991c1046ee2a7769a0f  gcc/testsuite/g++.dg/cpp2a/concepts-ttp4.C
  88c3dc6cebb92ccd4e70aff54871edad  gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C
  14dc8338f97cc1b6792145fdfa5edade  gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C
+ 2024568d84c5736719a943728b101e39  gcc/testsuite/g++.dg/cpp2a/concepts-ttp7.C
  12bfd0f0b99ab93e9f3c3ea3610ad8db  gcc/testsuite/g++.dg/cpp2a/concepts-uneval1.C
  728cf90d57c99021cb85c6b8dd9ffa5e  gcc/testsuite/g++.dg/cpp2a/concepts-uneval2.C
  8ededbbf50406070bfd15b600f7ea746  gcc/testsuite/g++.dg/cpp2a/concepts-uneval3.C
*************** d29bcca633bb639bebf16b846292cebc  gcc/te
*** 19980,19986 ****
  dcaf7dd2f1e98c3d3da49fbec7b5d2ab  gcc/testsuite/g++.dg/cpp2a/concepts-variadic1.C
  48e56d9773523969e244eb7e1261e6c1  gcc/testsuite/g++.dg/cpp2a/concepts-variadic2.C
  249b3f4302b45c107e3ce9d2aebc31b4  gcc/testsuite/g++.dg/cpp2a/concepts-variadic3.C
! febdd429495dc851f5bbf867e39f3a72  gcc/testsuite/g++.dg/cpp2a/concepts.C
  160297ff756513e092454f628e8488b8  gcc/testsuite/g++.dg/cpp2a/concepts1.C
  1deb98908cc4b11e53587a5a2210f89a  gcc/testsuite/g++.dg/cpp2a/concepts2.C
  26ed9bafd76c7078f0759a783c2be6c1  gcc/testsuite/g++.dg/cpp2a/concepts3.C
--- 21356,21362 ----
  dcaf7dd2f1e98c3d3da49fbec7b5d2ab  gcc/testsuite/g++.dg/cpp2a/concepts-variadic1.C
  48e56d9773523969e244eb7e1261e6c1  gcc/testsuite/g++.dg/cpp2a/concepts-variadic2.C
  249b3f4302b45c107e3ce9d2aebc31b4  gcc/testsuite/g++.dg/cpp2a/concepts-variadic3.C
! 964df1291fcb4864e1cbee5cd3e2daaf  gcc/testsuite/g++.dg/cpp2a/concepts.C
  160297ff756513e092454f628e8488b8  gcc/testsuite/g++.dg/cpp2a/concepts1.C
  1deb98908cc4b11e53587a5a2210f89a  gcc/testsuite/g++.dg/cpp2a/concepts2.C
  26ed9bafd76c7078f0759a783c2be6c1  gcc/testsuite/g++.dg/cpp2a/concepts3.C
*************** a85f735eaeba5ac419aa763ef414d52c  gcc/te
*** 19989,19995 ****
  98213dbb7894e57b6c08cd05928870ac  gcc/testsuite/g++.dg/cpp2a/concepts6.C
  08839525e53c3fc606634abfb05f00d4  gcc/testsuite/g++.dg/cpp2a/cond-triv1.C
  a1c6131537b9b8fdd4e1a9f8ba34bf08  gcc/testsuite/g++.dg/cpp2a/cond-triv1a.C
! b821d53c13959d1237a15620094c9130  gcc/testsuite/g++.dg/cpp2a/cond-triv2.C
  3ac8c234ca8a958a27f5fd69dac43b5e  gcc/testsuite/g++.dg/cpp2a/cond-triv3.C
  32d8d55981aa81f973b7e8fdf83830c7  gcc/testsuite/g++.dg/cpp2a/consteval-defarg1.C
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
--- 21365,21371 ----
  98213dbb7894e57b6c08cd05928870ac  gcc/testsuite/g++.dg/cpp2a/concepts6.C
  08839525e53c3fc606634abfb05f00d4  gcc/testsuite/g++.dg/cpp2a/cond-triv1.C
  a1c6131537b9b8fdd4e1a9f8ba34bf08  gcc/testsuite/g++.dg/cpp2a/cond-triv1a.C
! bb37b7e21277348c6ff1ca2d24833a5f  gcc/testsuite/g++.dg/cpp2a/cond-triv2.C
  3ac8c234ca8a958a27f5fd69dac43b5e  gcc/testsuite/g++.dg/cpp2a/cond-triv3.C
  32d8d55981aa81f973b7e8fdf83830c7  gcc/testsuite/g++.dg/cpp2a/consteval-defarg1.C
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
*************** b965661e32fc1362f3d92da99064a383  gcc/te
*** 20010,20016 ****
  2a6969d9b85c729c0c105b7ce7ca3176  gcc/testsuite/g++.dg/cpp2a/consteval-prop19.C
  98822e15646b47ee3759f2778db19022  gcc/testsuite/g++.dg/cpp2a/consteval-prop2.C
  1b4d66f64e0d9da1150b2334d12045e7  gcc/testsuite/g++.dg/cpp2a/consteval-prop20.C
! 8315267989d7dff3f69808601e899af6  gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C
  a2fca4748948ea570dfa878505f48b25  gcc/testsuite/g++.dg/cpp2a/consteval-prop3.C
  5fe57d13e5473b90306fff8083f24c8d  gcc/testsuite/g++.dg/cpp2a/consteval-prop4.C
  f405fb858a1c83094720da6f69576916  gcc/testsuite/g++.dg/cpp2a/consteval-prop5.C
--- 21386,21392 ----
  2a6969d9b85c729c0c105b7ce7ca3176  gcc/testsuite/g++.dg/cpp2a/consteval-prop19.C
  98822e15646b47ee3759f2778db19022  gcc/testsuite/g++.dg/cpp2a/consteval-prop2.C
  1b4d66f64e0d9da1150b2334d12045e7  gcc/testsuite/g++.dg/cpp2a/consteval-prop20.C
! 7ec989c221141e5269af8c2b39526700  gcc/testsuite/g++.dg/cpp2a/consteval-prop21.C
  a2fca4748948ea570dfa878505f48b25  gcc/testsuite/g++.dg/cpp2a/consteval-prop3.C
  5fe57d13e5473b90306fff8083f24c8d  gcc/testsuite/g++.dg/cpp2a/consteval-prop4.C
  f405fb858a1c83094720da6f69576916  gcc/testsuite/g++.dg/cpp2a/consteval-prop5.C
*************** b62fa034bb46b39a59a7db1a60d3c927  gcc/te
*** 20054,20065 ****
--- 21430,21450 ----
  6590ffde41eddd85c60dfbd7ebcec57f  gcc/testsuite/g++.dg/cpp2a/consteval34.C
  defefd8dd547fd66cedc41bb14383765  gcc/testsuite/g++.dg/cpp2a/consteval35.C
  8b3447609c468820fafe23ed58c806cf  gcc/testsuite/g++.dg/cpp2a/consteval36.C
+ 1ffef602b6b6d9627b0fd2789b0136fa  gcc/testsuite/g++.dg/cpp2a/consteval37.C
+ ec9f0efa4770d04a1dea842b64f19c44  gcc/testsuite/g++.dg/cpp2a/consteval38.C
+ 20ce990eb517154bde9207c8afa6e20d  gcc/testsuite/g++.dg/cpp2a/consteval39.C
  2d6205fea644048201c44086df527c3a  gcc/testsuite/g++.dg/cpp2a/consteval4.C
+ 34ecadb8994bf3d4c005295e95f6f53d  gcc/testsuite/g++.dg/cpp2a/consteval40.C
+ 09d61acf831f6fd33b3695f66ce79b1e  gcc/testsuite/g++.dg/cpp2a/consteval41.C
  e71633ec506016932dc09c057d98c36c  gcc/testsuite/g++.dg/cpp2a/consteval5.C
  f8b2a0016c59d132f059d57a7638806f  gcc/testsuite/g++.dg/cpp2a/consteval6.C
  6517514915e5a24d0ee38257c46994cc  gcc/testsuite/g++.dg/cpp2a/consteval7.C
  72c19713fa49fcd9432f9e2dfe1238e0  gcc/testsuite/g++.dg/cpp2a/consteval8.C
  5e89b48e84d42f47bde9b8254229d2c4  gcc/testsuite/g++.dg/cpp2a/consteval9.C
+ bc9287a9c261c2c6a397e45407917a6d  gcc/testsuite/g++.dg/cpp2a/constexpr-117504.C
+ ae0f76ab894a07c21bf120374821b277  gcc/testsuite/g++.dg/cpp2a/constexpr-117504a.C
+ 6fb81533c7cb2d55e9a6e69ad7c13dd2  gcc/testsuite/g++.dg/cpp2a/constexpr-117775.C
+ 7185f762a196f2a6d81aa713399d33e1  gcc/testsuite/g++.dg/cpp2a/constexpr-86769.C
  5e488850397c427d79cc8ca55254462f  gcc/testsuite/g++.dg/cpp2a/constexpr-98122.C
  d28d3e5520803aa70919b2a4b20e6386  gcc/testsuite/g++.dg/cpp2a/constexpr-99287.C
  2004a926e55a105d0f80db50528a9def  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor1.C
*************** cbf5d5a37bc2a85bde738f9433003a39  gcc/te
*** 20070,20075 ****
--- 21455,21461 ----
  993e4c6829e9ab56db460153dc55bad1  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor14.C
  1020d355cd830dffa45dfd17a95222fa  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor15.C
  5c1e1657b570ae044abc22f9004b6ba5  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor16.C
+ 619af6d01fa79804784a2c8b0c9dcbee  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor17.C
  18ceb8d2ffe5d8e310f40839d2edf0d5  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor2.C
  4161e44d5b894de84f1601dd80255a1b  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C
  780076eefadeb33a1dce586533960b80  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor4.C
*************** fa18d410e4118425de72c6cf57d09982  gcc/te
*** 20110,20116 ****
  19b43f05f30882dc34aa0e5a30033796  gcc/testsuite/g++.dg/cpp2a/constexpr-init19.C
  2865da6445445c4c614b839971af9b90  gcc/testsuite/g++.dg/cpp2a/constexpr-init2.C
  a94c82ed85193a40a70f8909b798a539  gcc/testsuite/g++.dg/cpp2a/constexpr-init20.C
! d36dc1f73de070f083e4540bf2abf1a9  gcc/testsuite/g++.dg/cpp2a/constexpr-init21.C
  9357b169f5b879c1938f2758d0545164  gcc/testsuite/g++.dg/cpp2a/constexpr-init22.C
  f9519154b16ccc5ca1005a36694cb96b  gcc/testsuite/g++.dg/cpp2a/constexpr-init23.C
  c6ad8dd084ea7848f43b81095f5664a0  gcc/testsuite/g++.dg/cpp2a/constexpr-init3.C
--- 21496,21502 ----
  19b43f05f30882dc34aa0e5a30033796  gcc/testsuite/g++.dg/cpp2a/constexpr-init19.C
  2865da6445445c4c614b839971af9b90  gcc/testsuite/g++.dg/cpp2a/constexpr-init2.C
  a94c82ed85193a40a70f8909b798a539  gcc/testsuite/g++.dg/cpp2a/constexpr-init20.C
! d68de83d5a0ba6c5747d6ec4bec7de3b  gcc/testsuite/g++.dg/cpp2a/constexpr-init21.C
  9357b169f5b879c1938f2758d0545164  gcc/testsuite/g++.dg/cpp2a/constexpr-init22.C
  f9519154b16ccc5ca1005a36694cb96b  gcc/testsuite/g++.dg/cpp2a/constexpr-init23.C
  c6ad8dd084ea7848f43b81095f5664a0  gcc/testsuite/g++.dg/cpp2a/constexpr-init3.C
*************** ac9bb69a57b021f97f435bdd64fdc923  gcc/te
*** 20139,20144 ****
--- 21525,21534 ----
  56cf7b227da9e5878b8fab57be913c5e  gcc/testsuite/g++.dg/cpp2a/constexpr-new20.C
  c045618ca4ccc6ddfb47d7c232152a06  gcc/testsuite/g++.dg/cpp2a/constexpr-new21.C
  8f15e7c6c4a56e33628394c948bba9aa  gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C
+ ed4eeb4c49af4e4276eb2fc8c4e22133  gcc/testsuite/g++.dg/cpp2a/constexpr-new23.C
+ 17161417d1b314f548eb76ed51f06d30  gcc/testsuite/g++.dg/cpp2a/constexpr-new24.C
+ 842eb288f31fa0fd04ade7dce7711c8f  gcc/testsuite/g++.dg/cpp2a/constexpr-new25.C
+ 4453daca02fd3621d6cd368e78c3217a  gcc/testsuite/g++.dg/cpp2a/constexpr-new26.C
  facf8a64095f08ebe438ac7a031006a1  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
*************** facf8a64095f08ebe438ac7a031006a1  gcc/te
*** 20146,20151 ****
--- 21536,21542 ----
  c4beb3372cb0e77f36a788efb02031c2  gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C
  d29f558af48deff313645aecd90adb8d  gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C
+ 1d3b0e7bd64b76d92b8ff4d82aba48e9  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue1.C
  081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
  1d1e610556de3295af12cf17177f42b7  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
*************** c0b015cd02e07242444c2700f64e070a  gcc/te
*** 20164,20169 ****
--- 21555,21562 ----
  506a486b7e3cc863b24cd04db4e706cd  gcc/testsuite/g++.dg/cpp2a/constexpr-union5.C
  5fd97c22b2996faaa87a3aa20de08243  gcc/testsuite/g++.dg/cpp2a/constexpr-union6.C
  22d0d1f2f3c677d12d0e844ae12fd688  gcc/testsuite/g++.dg/cpp2a/constexpr-union7.C
+ e94cea4fa4255420603d88768e70b36c  gcc/testsuite/g++.dg/cpp2a/constexpr-union8.C
+ 4e80378ab3af70b20b34dcf87e46941d  gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C
  6d84a7bd78f9867ce0a07e6b0d26241b  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual1.C
  974c3f89c0f3ffa8993db35751b7f993  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual10.C
  90499949f9ce8adc6318bfabadf24305  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual11.C
*************** b41b1406ccaabb57748ecf4f05c3e13b  gcc/te
*** 20178,20183 ****
--- 21571,21577 ----
  8356345162577a74b103ae82b69fde6d  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual2.C
  86447166a312855244c09f8495d3f788  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual20.C
  231e5def1ab26653f262d59a62914c61  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual21.C
+ f435a2ed33541ac90cf1337aa6bbe7b1  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual22.C
  387607aa06c3438be11d475781b728ae  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual3.C
  4d58f9556b7091659bbc5730f1a2697b  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual4.C
  ff80d3043b2e823e497517b5dffee736  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual5.C
*************** b4a46903f1578c613195d03127dbcae5  gcc/te
*** 20197,20202 ****
--- 21591,21597 ----
  5f1a0d190f7b063f2ab37e1844af8991  gcc/testsuite/g++.dg/cpp2a/constinit18.C
  788c9769d26d7dc940ca016c456aa46b  gcc/testsuite/g++.dg/cpp2a/constinit19.C
  9f7da905ea744d36251021c627953aa7  gcc/testsuite/g++.dg/cpp2a/constinit2.C
+ 95455a3427e6e70c4c8f15488c58aaac  gcc/testsuite/g++.dg/cpp2a/constinit20.C
  bfb75b72cdd7648ff4412bc1f4c20b7e  gcc/testsuite/g++.dg/cpp2a/constinit3.C
  ec5836ef75d0047a1e68f87292524d25  gcc/testsuite/g++.dg/cpp2a/constinit4.C
  dedfc59644b0e60dc6b2af2a6aa72984  gcc/testsuite/g++.dg/cpp2a/constinit5.C
*************** b096e4f747004d3775e106436def90fb  gcc/te
*** 20204,20215 ****
  f0123af928ae02ae0fadf251ffb95ffb  gcc/testsuite/g++.dg/cpp2a/constinit7.C
  ea31517e527d7eb88edeeab341ec1a8b  gcc/testsuite/g++.dg/cpp2a/constinit8.C
  6e6e9c5d790a5990689843e6f2ec1722  gcc/testsuite/g++.dg/cpp2a/constinit9.C
! 81af0603de3c4337292c89f54ad9412f  gcc/testsuite/g++.dg/cpp2a/construct_at.h
  7126b921087cb1629e4184935766b627  gcc/testsuite/g++.dg/cpp2a/cplusplus.C
  a36a7ca1d0eff1f81629dd71a462961f  gcc/testsuite/g++.dg/cpp2a/decomp1-aux.cc
  97d028d9e7af8226aa281ebcad5bf29f  gcc/testsuite/g++.dg/cpp2a/decomp1.C
  aad29b064fff817ac1e3a613ef44faf8  gcc/testsuite/g++.dg/cpp2a/decomp2.C
! 3346982296b26f900025d1f7046594b7  gcc/testsuite/g++.dg/cpp2a/decomp3.C
  c45bd99bf81821c6c33a6bec2da4fce3  gcc/testsuite/g++.dg/cpp2a/decomp4.C
  0cbb7f35ec543d54c041228759e5d4b2  gcc/testsuite/g++.dg/cpp2a/decomp5.C
  37c6af01f09276138cc81194ca94d2c2  gcc/testsuite/g++.dg/cpp2a/decomp6.C
--- 21599,21611 ----
  f0123af928ae02ae0fadf251ffb95ffb  gcc/testsuite/g++.dg/cpp2a/constinit7.C
  ea31517e527d7eb88edeeab341ec1a8b  gcc/testsuite/g++.dg/cpp2a/constinit8.C
  6e6e9c5d790a5990689843e6f2ec1722  gcc/testsuite/g++.dg/cpp2a/constinit9.C
! 23919697ecc23c425494d26a226b7f3d  gcc/testsuite/g++.dg/cpp2a/construct_at.h
  7126b921087cb1629e4184935766b627  gcc/testsuite/g++.dg/cpp2a/cplusplus.C
  a36a7ca1d0eff1f81629dd71a462961f  gcc/testsuite/g++.dg/cpp2a/decomp1-aux.cc
  97d028d9e7af8226aa281ebcad5bf29f  gcc/testsuite/g++.dg/cpp2a/decomp1.C
+ 3f0f0087d8090182027f49fb3162aad7  gcc/testsuite/g++.dg/cpp2a/decomp10.C
  aad29b064fff817ac1e3a613ef44faf8  gcc/testsuite/g++.dg/cpp2a/decomp2.C
! 8f3b9a6346c7c909ec6ae92d8da636ac  gcc/testsuite/g++.dg/cpp2a/decomp3.C
  c45bd99bf81821c6c33a6bec2da4fce3  gcc/testsuite/g++.dg/cpp2a/decomp4.C
  0cbb7f35ec543d54c041228759e5d4b2  gcc/testsuite/g++.dg/cpp2a/decomp5.C
  37c6af01f09276138cc81194ca94d2c2  gcc/testsuite/g++.dg/cpp2a/decomp6.C
*************** daa18336bb060cdb7bbf99966d100e43  gcc/te
*** 20240,20248 ****
  e46e47d5fc0146c5f51ff736dc8fc56d  gcc/testsuite/g++.dg/cpp2a/desig29.C
  9f489d7f3f58294a91f5e5ea62989f5c  gcc/testsuite/g++.dg/cpp2a/desig3.C
  f09037b3eb0556853858e907725f304c  gcc/testsuite/g++.dg/cpp2a/desig30.C
! a1e304613b1097092d10ed459e46fe0c  gcc/testsuite/g++.dg/cpp2a/desig4.C
  bf71e77b18ad9c10b7e9f64f07ee9d28  gcc/testsuite/g++.dg/cpp2a/desig5.C
! c9656baaa09fe4a7d5bf855b0e825993  gcc/testsuite/g++.dg/cpp2a/desig6.C
  7982e2341bf3fb4a35f33c5b3d4265d7  gcc/testsuite/g++.dg/cpp2a/desig7.C
  959c102bf551d6792d067544e06b6b06  gcc/testsuite/g++.dg/cpp2a/desig8.C
  e4e06994c2abc2f0b15bad63bc84687d  gcc/testsuite/g++.dg/cpp2a/desig9.C
--- 21636,21644 ----
  e46e47d5fc0146c5f51ff736dc8fc56d  gcc/testsuite/g++.dg/cpp2a/desig29.C
  9f489d7f3f58294a91f5e5ea62989f5c  gcc/testsuite/g++.dg/cpp2a/desig3.C
  f09037b3eb0556853858e907725f304c  gcc/testsuite/g++.dg/cpp2a/desig30.C
! 64deb0959553dcd9bad757f63308b0bc  gcc/testsuite/g++.dg/cpp2a/desig4.C
  bf71e77b18ad9c10b7e9f64f07ee9d28  gcc/testsuite/g++.dg/cpp2a/desig5.C
! 45bcaa7ed67d416d5794a6133c591e81  gcc/testsuite/g++.dg/cpp2a/desig6.C
  7982e2341bf3fb4a35f33c5b3d4265d7  gcc/testsuite/g++.dg/cpp2a/desig7.C
  959c102bf551d6792d067544e06b6b06  gcc/testsuite/g++.dg/cpp2a/desig8.C
  e4e06994c2abc2f0b15bad63bc84687d  gcc/testsuite/g++.dg/cpp2a/desig9.C
*************** e4e06994c2abc2f0b15bad63bc84687d  gcc/te
*** 20250,20256 ****
  5ec493f5d121e6cb1670ef4889b7a1ee  gcc/testsuite/g++.dg/cpp2a/destroying-delete2.C
  cc0268c504556040e78bce5b6a029f64  gcc/testsuite/g++.dg/cpp2a/destroying-delete3.C
  709f9b5a4431b31c6b23bb87e2d889b1  gcc/testsuite/g++.dg/cpp2a/destroying-delete4.C
! d19721429920a1897dfb416d86f876bd  gcc/testsuite/g++.dg/cpp2a/destroying-delete5.C
  95bcd1b1427453dfdb84ee76afa7dba0  gcc/testsuite/g++.dg/cpp2a/destroying-delete6.C
  fe646b9e255c8d870f03e6fec32b7529  gcc/testsuite/g++.dg/cpp2a/enum-conv1.C
  dedca5854b0e7bf2b75e811a11f0a159  gcc/testsuite/g++.dg/cpp2a/enum-conv2.C
--- 21646,21652 ----
  5ec493f5d121e6cb1670ef4889b7a1ee  gcc/testsuite/g++.dg/cpp2a/destroying-delete2.C
  cc0268c504556040e78bce5b6a029f64  gcc/testsuite/g++.dg/cpp2a/destroying-delete3.C
  709f9b5a4431b31c6b23bb87e2d889b1  gcc/testsuite/g++.dg/cpp2a/destroying-delete4.C
! 5ff09e498de8dbff6dd5a6ee5327b8d2  gcc/testsuite/g++.dg/cpp2a/destroying-delete5.C
  95bcd1b1427453dfdb84ee76afa7dba0  gcc/testsuite/g++.dg/cpp2a/destroying-delete6.C
  fe646b9e255c8d870f03e6fec32b7529  gcc/testsuite/g++.dg/cpp2a/enum-conv1.C
  dedca5854b0e7bf2b75e811a11f0a159  gcc/testsuite/g++.dg/cpp2a/enum-conv2.C
*************** ce913ea3fabca8ffd187ffabb084a00b  gcc/te
*** 20267,20272 ****
--- 21663,21669 ----
  6be3c9cb493cf61cf693eedf2068611c  gcc/testsuite/g++.dg/cpp2a/explicit18.C
  08709b8f0b36b23322cf7dc54b58664f  gcc/testsuite/g++.dg/cpp2a/explicit19.C
  8c65d8393a27dc23c675dd59b7ec1209  gcc/testsuite/g++.dg/cpp2a/explicit2.C
+ 172370f83403791d33d595659f3cbc4f  gcc/testsuite/g++.dg/cpp2a/explicit20.C
  e2b8b1544e1a743421685574bc054539  gcc/testsuite/g++.dg/cpp2a/explicit3.C
  7b8cb14575cc7970a40229dcb79d6390  gcc/testsuite/g++.dg/cpp2a/explicit4.C
  a098642c03f840c239b39f6abf7a5a9a  gcc/testsuite/g++.dg/cpp2a/explicit5.C
*************** ffff1f1e5445186cd85fc18de4595b89  gcc/te
*** 20274,20283 ****
  2c9a2b5474c2b3d7b8c260a855385434  gcc/testsuite/g++.dg/cpp2a/explicit7.C
  aa2bb54a77cb3fec28379d767c80f012  gcc/testsuite/g++.dg/cpp2a/explicit8.C
  05f18b846e0e3446396676836acfabc0  gcc/testsuite/g++.dg/cpp2a/explicit9.C
! 01d4ce1c6464eefef526315f4a14ffcb  gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
  1308cad2957585ab947868996b5fa85c  gcc/testsuite/g++.dg/cpp2a/fn-template1.C
  96c4e27953bf932ba7135b847e79207d  gcc/testsuite/g++.dg/cpp2a/fn-template10.C
! 2cbcabc3565e69c4edf1f078a2c0aecc  gcc/testsuite/g++.dg/cpp2a/fn-template11.C
  2f88bd4d4da69730898884d0985169d5  gcc/testsuite/g++.dg/cpp2a/fn-template12.C
  e5c5b8063534735056740b0a92de3a91  gcc/testsuite/g++.dg/cpp2a/fn-template13.C
  c0b0351de70a0a86e1341d6e7ad393dc  gcc/testsuite/g++.dg/cpp2a/fn-template14.C
--- 21671,21680 ----
  2c9a2b5474c2b3d7b8c260a855385434  gcc/testsuite/g++.dg/cpp2a/explicit7.C
  aa2bb54a77cb3fec28379d767c80f012  gcc/testsuite/g++.dg/cpp2a/explicit8.C
  05f18b846e0e3446396676836acfabc0  gcc/testsuite/g++.dg/cpp2a/explicit9.C
! 1968144f97304519267e04441778ada5  gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
  1308cad2957585ab947868996b5fa85c  gcc/testsuite/g++.dg/cpp2a/fn-template1.C
  96c4e27953bf932ba7135b847e79207d  gcc/testsuite/g++.dg/cpp2a/fn-template10.C
! 9fb7897f33c26ed6e7f4871ee208c86a  gcc/testsuite/g++.dg/cpp2a/fn-template11.C
  2f88bd4d4da69730898884d0985169d5  gcc/testsuite/g++.dg/cpp2a/fn-template12.C
  e5c5b8063534735056740b0a92de3a91  gcc/testsuite/g++.dg/cpp2a/fn-template13.C
  c0b0351de70a0a86e1341d6e7ad393dc  gcc/testsuite/g++.dg/cpp2a/fn-template14.C
*************** d7ed0ebf26a6437db2b5aa0d69a1e9d1  gcc/te
*** 20333,20339 ****
  f02e6aefd434d4811321f7875fea5c79  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member8.C
  78d84cdb6c4c5f91546e47eea2a2f29a  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible1.C
  40b9c7b3198914d9138b2e9cb7c85b9e  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible2.C
! fe9035900ea3799e71e327c17aa04831  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible3.C
  087bb26b7fb10078d7689347b3385e63  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-base-of1.C
  82ca9bc7a0479a2d7beaa0abe322c607  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class1.C
  c3fcc7088915b8703f4605aa1eca4ce3  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class2.C
--- 21730,21736 ----
  f02e6aefd434d4811321f7875fea5c79  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member8.C
  78d84cdb6c4c5f91546e47eea2a2f29a  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible1.C
  40b9c7b3198914d9138b2e9cb7c85b9e  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible2.C
! 8af20ff9013991ef0a6f4008d09a3290  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible3.C
  087bb26b7fb10078d7689347b3385e63  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-base-of1.C
  82ca9bc7a0479a2d7beaa0abe322c607  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class1.C
  c3fcc7088915b8703f4605aa1eca4ce3  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class2.C
*************** a32a0480aae35890db6a4b74ebac6bc0  gcc/te
*** 20343,20363 ****
  108a1e84430a208365c8e85df1f93cc2  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class6.C
  32bbeb83d22cbe00809cd7a5d2e40e40  gcc/testsuite/g++.dg/cpp2a/keywords1.C
  f041d92886505f234ae31a1bb66ddb92  gcc/testsuite/g++.dg/cpp2a/keywords2.C
! a3e0a0c57bba12b4b0b150a5a5f1c891  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
! 682ab8e137f7cce11c5afc1c22a9ec49  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
  fb476be2a6013e9c32bc9b8755048f8a  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp1.C
  92ac0cb30c8e41eb043cdb9186a7cc2d  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp2.C
  40ea32951dfb4570c1774e238c30f434  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C
  c1cdf23c08dcb292bbd629847ef95a23  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic21.C
  f3d333d9133ccc3fed58f15dd1e6c1c1  gcc/testsuite/g++.dg/cpp2a/lambda-generic1.C
! 17fc74089a22c362cec8a6606ca6625e  gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C
  d5563aeee3f9b44dbd622e206e23998d  gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C
  101950bd66265e5e952f39292d61abee  gcc/testsuite/g++.dg/cpp2a/lambda-generic2.C
  f3183e909b7fd601906b1f284b8514e9  gcc/testsuite/g++.dg/cpp2a/lambda-generic3.C
  53b70e7bd216f774ecdcfeda866f430c  gcc/testsuite/g++.dg/cpp2a/lambda-generic4.C
  1b8d02a388107dbc70264736d884ce33  gcc/testsuite/g++.dg/cpp2a/lambda-generic5.C
  39b7c67b1277b814bc1960e8dd413aaf  gcc/testsuite/g++.dg/cpp2a/lambda-generic6.C
! eba3722d0e4a07fca1ba3b23f971441e  gcc/testsuite/g++.dg/cpp2a/lambda-generic7.C
  28b7d87a9c0382e6077a9a8f61f3fbbb  gcc/testsuite/g++.dg/cpp2a/lambda-generic8.C
  1a3525c82baa00fdaf939a1cf412b044  gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C
  1932f73cfc280b9b5c5b1f04a277d6b3  gcc/testsuite/g++.dg/cpp2a/lambda-mangle.C
--- 21740,21761 ----
  108a1e84430a208365c8e85df1f93cc2  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class6.C
  32bbeb83d22cbe00809cd7a5d2e40e40  gcc/testsuite/g++.dg/cpp2a/keywords1.C
  f041d92886505f234ae31a1bb66ddb92  gcc/testsuite/g++.dg/cpp2a/keywords2.C
! 067ac88847c346551f65db5a8af3eddd  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
! 245b4863d7ca9e14a1efa7e1fb7bc5d2  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
  fb476be2a6013e9c32bc9b8755048f8a  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp1.C
  92ac0cb30c8e41eb043cdb9186a7cc2d  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp2.C
  40ea32951dfb4570c1774e238c30f434  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C
  c1cdf23c08dcb292bbd629847ef95a23  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic21.C
  f3d333d9133ccc3fed58f15dd1e6c1c1  gcc/testsuite/g++.dg/cpp2a/lambda-generic1.C
! 5e16795c5c53e003581500f9c4ff483b  gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C
  d5563aeee3f9b44dbd622e206e23998d  gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C
+ 7433274dea03813c6594b34574d8d296  gcc/testsuite/g++.dg/cpp2a/lambda-generic12.C
  101950bd66265e5e952f39292d61abee  gcc/testsuite/g++.dg/cpp2a/lambda-generic2.C
  f3183e909b7fd601906b1f284b8514e9  gcc/testsuite/g++.dg/cpp2a/lambda-generic3.C
  53b70e7bd216f774ecdcfeda866f430c  gcc/testsuite/g++.dg/cpp2a/lambda-generic4.C
  1b8d02a388107dbc70264736d884ce33  gcc/testsuite/g++.dg/cpp2a/lambda-generic5.C
  39b7c67b1277b814bc1960e8dd413aaf  gcc/testsuite/g++.dg/cpp2a/lambda-generic6.C
! c244f1ea6f33bde81204a9d28ed16189  gcc/testsuite/g++.dg/cpp2a/lambda-generic7.C
  28b7d87a9c0382e6077a9a8f61f3fbbb  gcc/testsuite/g++.dg/cpp2a/lambda-generic8.C
  1a3525c82baa00fdaf939a1cf412b044  gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C
  1932f73cfc280b9b5c5b1f04a277d6b3  gcc/testsuite/g++.dg/cpp2a/lambda-mangle.C
*************** f50c8e7c7812a7eade38d014e8410110  gcc/te
*** 20369,20380 ****
--- 21767,21793 ----
  05ee01266fc805cc3327ad09e070330c  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C
  135aaa9e481a21f9375ce861b3274c3f  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C
  9f0cb1929455333894b8734212f3d221  gcc/testsuite/g++.dg/cpp2a/lambda-requires1.C
+ e51a1f351d036a98667cf057f185a86f  gcc/testsuite/g++.dg/cpp2a/lambda-requires2.C
+ e20428ff5a78adf274e89831e7262b1f  gcc/testsuite/g++.dg/cpp2a/lambda-requires3.C
+ 6f2b965b53197f3a9b0adbf581dc192a  gcc/testsuite/g++.dg/cpp2a/lambda-requires4.C
+ 145c112a0d5c7f30c64671d3a3f528aa  gcc/testsuite/g++.dg/cpp2a/lambda-requires5.C
  fdacf3bee1e8bb4f226b833e6e15f7e8  gcc/testsuite/g++.dg/cpp2a/lambda-targ1.C
+ 59bfe6cac3c05b4c92f22c84edf21aef  gcc/testsuite/g++.dg/cpp2a/lambda-targ10.C
+ 16d265b51a5898eaf9582d966ea80b3d  gcc/testsuite/g++.dg/cpp2a/lambda-targ11.C
+ bfaa63be16cf92d32c69b36c72e915aa  gcc/testsuite/g++.dg/cpp2a/lambda-targ12.C
+ 7b5ee3bc7139628fd11e7399df817e81  gcc/testsuite/g++.dg/cpp2a/lambda-targ13.C
+ c7b2313c64f226651e97ebc4e634cc95  gcc/testsuite/g++.dg/cpp2a/lambda-targ13a.C
+ fc1805f7c9ae0e0d70715f21f1ab1323  gcc/testsuite/g++.dg/cpp2a/lambda-targ13b.C
+ 7b82b863c8a6f3c30784d618a2e3c535  gcc/testsuite/g++.dg/cpp2a/lambda-targ14.C
  d363d5590bc863dbb1f6bb96bad95b3c  gcc/testsuite/g++.dg/cpp2a/lambda-targ2.C
  d948ecca981f7c5de5ca48afc987ea36  gcc/testsuite/g++.dg/cpp2a/lambda-targ2a.C
  096118fef57f992a05319e3b6f8ba6a7  gcc/testsuite/g++.dg/cpp2a/lambda-targ3.C
  21c4749dcabd9a286db03db935f9cd86  gcc/testsuite/g++.dg/cpp2a/lambda-targ4.C
  1bdabd816102bfabb23374bf0d68c1c1  gcc/testsuite/g++.dg/cpp2a/lambda-targ5.C
+ 0c3e8d283c44c1ced955539b772c1c69  gcc/testsuite/g++.dg/cpp2a/lambda-targ6.C
+ cdfd5d4f5405d532a58794854f989b98  gcc/testsuite/g++.dg/cpp2a/lambda-targ7.C
+ fa760f5c26c36d0c67ddc827d3f5e208  gcc/testsuite/g++.dg/cpp2a/lambda-targ8.C
+ 15b80269879f037a123b86aca4c9b576  gcc/testsuite/g++.dg/cpp2a/lambda-targ9.C
  22ec10632b049637a7cbf82f46eda177  gcc/testsuite/g++.dg/cpp2a/lambda-this1.C
  c09b3406a6984eced941c654f03df8b6  gcc/testsuite/g++.dg/cpp2a/lambda-this2.C
  58b6c8506ae6f77f9498fd7dbed8bdeb  gcc/testsuite/g++.dg/cpp2a/lambda-this3.C
*************** c79632f5b81fdadda65a61ca549d97f6  gcc/te
*** 20387,20393 ****
--- 21800,21816 ----
  53c7dceb19a2ce9e52327177ea4fc212  gcc/testsuite/g++.dg/cpp2a/lambda-uneval15.C
  39a9dd88b9fa47a34b758e6abf328a7a  gcc/testsuite/g++.dg/cpp2a/lambda-uneval16.C
  e1f6714196bc4cc815de786f8301141d  gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C
+ 6187b2722a9ff00a8feba6fed6e21c26  gcc/testsuite/g++.dg/cpp2a/lambda-uneval18.C
+ a08d0bf8552379db7f2a70cc673da42c  gcc/testsuite/g++.dg/cpp2a/lambda-uneval19.C
  e99d0c361f9eaa55d53c9232f30b64cf  gcc/testsuite/g++.dg/cpp2a/lambda-uneval2.C
+ 9b532318349de6d4fbb0b9ff842794c2  gcc/testsuite/g++.dg/cpp2a/lambda-uneval20.C
+ 59274267d93d24cc9c52c89cc268e10a  gcc/testsuite/g++.dg/cpp2a/lambda-uneval21.C
+ 7e74157604e78ef3e7c7e7c1ac2e8781  gcc/testsuite/g++.dg/cpp2a/lambda-uneval22.C
+ 8673bb6ceac7eb0d12e1269d3a4cd70e  gcc/testsuite/g++.dg/cpp2a/lambda-uneval23.C
+ 5f89a0a811ca20d222ad6994a619a023  gcc/testsuite/g++.dg/cpp2a/lambda-uneval24.C
+ c19bd936418c3099cfc71829fa23606a  gcc/testsuite/g++.dg/cpp2a/lambda-uneval25.C
+ e59f63d278e1f049c181594746f34930  gcc/testsuite/g++.dg/cpp2a/lambda-uneval26.C
+ 7bb4a9851f98debfb5698f0c4a582baa  gcc/testsuite/g++.dg/cpp2a/lambda-uneval27.C
  95297857429ac8850dbeb5773639ea6b  gcc/testsuite/g++.dg/cpp2a/lambda-uneval3.C
  2f7bd1774e5f890e65ee937419a29669  gcc/testsuite/g++.dg/cpp2a/lambda-uneval4.C
  8e6b610dd3dab06841943bfa5f325489  gcc/testsuite/g++.dg/cpp2a/lambda-uneval5.C
*************** bff8b5e2df5278f99aa4066a82b1285b  gcc/te
*** 20399,20404 ****
--- 21822,21828 ----
  5237f3fe8ad9a25771fab3b505424daa  gcc/testsuite/g++.dg/cpp2a/lambda-uneval9.h
  ef0d69f00a9d28bc07bc6d0fcbf840b5  gcc/testsuite/g++.dg/cpp2a/lambda1.C
  f227d27229cc4634ccc941c7e033c445  gcc/testsuite/g++.dg/cpp2a/linkage-1.C
+ 91ac4b0652a8dc11a30cd7309352f933  gcc/testsuite/g++.dg/cpp2a/linkage-spec1.C
  dadbd3e108a5f0ebf254744df54b05ab  gcc/testsuite/g++.dg/cpp2a/multiple-deleted-destroying-delete-error-1.C
  47eb51ee8983c1226202a6523dab937c  gcc/testsuite/g++.dg/cpp2a/multiple-deleted-destroying-delete-error-2.C
  0128760d24dbfb958ed58b3a135f5b72  gcc/testsuite/g++.dg/cpp2a/nested-inline-ns1.C
*************** ea2c08e6fd29f54c1a8a5cad0d76f8b2  gcc/te
*** 20462,20469 ****
  663ede0219b81f73cd344c92bdba3d33  gcc/testsuite/g++.dg/cpp2a/nontype-class33.C
  390290377435af19c9336dd8ded3eee0  gcc/testsuite/g++.dg/cpp2a/nontype-class34.C
  5baaa516a91678b2d478b1025e5e52bc  gcc/testsuite/g++.dg/cpp2a/nontype-class35.C
! 35b6337aa2140010aa590e186b8f4246  gcc/testsuite/g++.dg/cpp2a/nontype-class36.C
! ce8d3a2faecdda617d9b5c543a6edcc3  gcc/testsuite/g++.dg/cpp2a/nontype-class37.C
  3c78de97468a94e2bbf8833bd8d31e4f  gcc/testsuite/g++.dg/cpp2a/nontype-class38.C
  fbc9650e318d6a805885ddfe38ff6367  gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
  04b4926c39cc4a59dd76847aa19a2514  gcc/testsuite/g++.dg/cpp2a/nontype-class4.C
--- 21886,21893 ----
  663ede0219b81f73cd344c92bdba3d33  gcc/testsuite/g++.dg/cpp2a/nontype-class33.C
  390290377435af19c9336dd8ded3eee0  gcc/testsuite/g++.dg/cpp2a/nontype-class34.C
  5baaa516a91678b2d478b1025e5e52bc  gcc/testsuite/g++.dg/cpp2a/nontype-class35.C
! 817a9f94782ae9868f9c4c0061fc63c6  gcc/testsuite/g++.dg/cpp2a/nontype-class36.C
! d724c7d5ddcb681381b987091f12008c  gcc/testsuite/g++.dg/cpp2a/nontype-class37.C
  3c78de97468a94e2bbf8833bd8d31e4f  gcc/testsuite/g++.dg/cpp2a/nontype-class38.C
  fbc9650e318d6a805885ddfe38ff6367  gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
  04b4926c39cc4a59dd76847aa19a2514  gcc/testsuite/g++.dg/cpp2a/nontype-class4.C
*************** d5f804b9a165b9a149f8abd1027510b5  gcc/te
*** 20480,20486 ****
  13fa94d1c329c2ec627abeaba905eb8c  gcc/testsuite/g++.dg/cpp2a/nontype-class4a.C
  1724161e3c4a13c45aa669a07a0bf4a5  gcc/testsuite/g++.dg/cpp2a/nontype-class5.C
  f285697eea399206e793409d3e3967ae  gcc/testsuite/g++.dg/cpp2a/nontype-class50.C
! 3d2b8201f489f4abeaf39e7f23050ce6  gcc/testsuite/g++.dg/cpp2a/nontype-class50a.C
  232f7980871c2b37f0c2cb789e4cc1d7  gcc/testsuite/g++.dg/cpp2a/nontype-class51.C
  bbdb1fabe043c15d9231e499a5a3f7b6  gcc/testsuite/g++.dg/cpp2a/nontype-class52.C
  b8792ea2066d991e3f446fc9890163bf  gcc/testsuite/g++.dg/cpp2a/nontype-class52a.C
--- 21904,21910 ----
  13fa94d1c329c2ec627abeaba905eb8c  gcc/testsuite/g++.dg/cpp2a/nontype-class4a.C
  1724161e3c4a13c45aa669a07a0bf4a5  gcc/testsuite/g++.dg/cpp2a/nontype-class5.C
  f285697eea399206e793409d3e3967ae  gcc/testsuite/g++.dg/cpp2a/nontype-class50.C
! 1b9853fecfe82096fcdab345a7fda5e6  gcc/testsuite/g++.dg/cpp2a/nontype-class50a.C
  232f7980871c2b37f0c2cb789e4cc1d7  gcc/testsuite/g++.dg/cpp2a/nontype-class51.C
  bbdb1fabe043c15d9231e499a5a3f7b6  gcc/testsuite/g++.dg/cpp2a/nontype-class52.C
  b8792ea2066d991e3f446fc9890163bf  gcc/testsuite/g++.dg/cpp2a/nontype-class52a.C
*************** fbdae3a522cecf4099889d0118532812  gcc/te
*** 20491,20497 ****
  6ccd34897eb52c520e2152529df77e62  gcc/testsuite/g++.dg/cpp2a/nontype-class57.C
  93dcb9437c81d3d44698eef72b4d4541  gcc/testsuite/g++.dg/cpp2a/nontype-class58.C
  6a5e7871f3abe7fd043ff19cf541ebeb  gcc/testsuite/g++.dg/cpp2a/nontype-class59.C
! 86d91c051a62b8d9f32d57f4047a6534  gcc/testsuite/g++.dg/cpp2a/nontype-class6.C
  1d298af3c122e40178239ab91b7bf87c  gcc/testsuite/g++.dg/cpp2a/nontype-class60.C
  7e5faa11000e061c87ba35da09383a05  gcc/testsuite/g++.dg/cpp2a/nontype-class61.C
  4d07a0b35ca622b38b384c35f09509de  gcc/testsuite/g++.dg/cpp2a/nontype-class62.C
--- 21915,21921 ----
  6ccd34897eb52c520e2152529df77e62  gcc/testsuite/g++.dg/cpp2a/nontype-class57.C
  93dcb9437c81d3d44698eef72b4d4541  gcc/testsuite/g++.dg/cpp2a/nontype-class58.C
  6a5e7871f3abe7fd043ff19cf541ebeb  gcc/testsuite/g++.dg/cpp2a/nontype-class59.C
! 7b958cd7a1dd54ffd9b8774ba49b3ef7  gcc/testsuite/g++.dg/cpp2a/nontype-class6.C
  1d298af3c122e40178239ab91b7bf87c  gcc/testsuite/g++.dg/cpp2a/nontype-class60.C
  7e5faa11000e061c87ba35da09383a05  gcc/testsuite/g++.dg/cpp2a/nontype-class61.C
  4d07a0b35ca622b38b384c35f09509de  gcc/testsuite/g++.dg/cpp2a/nontype-class62.C
*************** fbdae3a522cecf4099889d0118532812  gcc/te
*** 20499,20509 ****
  3fc7fb6608d7ee17cadbee2579efc8e5  gcc/testsuite/g++.dg/cpp2a/nontype-class63a.C
  ae16d93288f613597bc5c6b938f02bca  gcc/testsuite/g++.dg/cpp2a/nontype-class64.C
  4ca3299fda1072e193f91ab932ebdd47  gcc/testsuite/g++.dg/cpp2a/nontype-class65.C
  c78f774590fd68025c389ab4361f5714  gcc/testsuite/g++.dg/cpp2a/nontype-class7.C
  44a04e768668501da12fed78805a7d70  gcc/testsuite/g++.dg/cpp2a/nontype-class8.C
  bae1c36e9d9dcb762070154c47a6b3c3  gcc/testsuite/g++.dg/cpp2a/nontype-class9.C
  be21ab07ff4b8655deffc37a85075c52  gcc/testsuite/g++.dg/cpp2a/nontype-complex1.C
! 59cd71252db72b562133526c9a064fa0  gcc/testsuite/g++.dg/cpp2a/nontype-float1.C
  2f8860b65ba56ff92047be661cd8beb4  gcc/testsuite/g++.dg/cpp2a/nontype-float2.C
  a730b3782d1a47d30c03d5df22dd4c62  gcc/testsuite/g++.dg/cpp2a/nontype-float3.C
  8958094420e548b2425f24fcc5fe5fd3  gcc/testsuite/g++.dg/cpp2a/nontype-subob1.C
--- 21923,21940 ----
  3fc7fb6608d7ee17cadbee2579efc8e5  gcc/testsuite/g++.dg/cpp2a/nontype-class63a.C
  ae16d93288f613597bc5c6b938f02bca  gcc/testsuite/g++.dg/cpp2a/nontype-class64.C
  4ca3299fda1072e193f91ab932ebdd47  gcc/testsuite/g++.dg/cpp2a/nontype-class65.C
+ 1ccec4a33a4f96b97f62bdc64b42a2b3  gcc/testsuite/g++.dg/cpp2a/nontype-class66.C
+ 0ba21d9243c88cd652963451ea7bf101  gcc/testsuite/g++.dg/cpp2a/nontype-class67.C
+ 8180bd03dfbc217a6f5e2570f419a86c  gcc/testsuite/g++.dg/cpp2a/nontype-class68.C
+ 3a3a5165693c87e2ac341dabbe19c156  gcc/testsuite/g++.dg/cpp2a/nontype-class69.C
  c78f774590fd68025c389ab4361f5714  gcc/testsuite/g++.dg/cpp2a/nontype-class7.C
+ 8ea1668bc02fe42ef11298d02a28bb91  gcc/testsuite/g++.dg/cpp2a/nontype-class70.C
+ 506f070d3467e5b0df571bcdbd69aad8  gcc/testsuite/g++.dg/cpp2a/nontype-class71.C
+ 4a2f2d8385e6b854507e3edd81bfde1e  gcc/testsuite/g++.dg/cpp2a/nontype-class72.C
  44a04e768668501da12fed78805a7d70  gcc/testsuite/g++.dg/cpp2a/nontype-class8.C
  bae1c36e9d9dcb762070154c47a6b3c3  gcc/testsuite/g++.dg/cpp2a/nontype-class9.C
  be21ab07ff4b8655deffc37a85075c52  gcc/testsuite/g++.dg/cpp2a/nontype-complex1.C
! 5d491c2c96d7777d68c66bf6de666274  gcc/testsuite/g++.dg/cpp2a/nontype-float1.C
  2f8860b65ba56ff92047be661cd8beb4  gcc/testsuite/g++.dg/cpp2a/nontype-float2.C
  a730b3782d1a47d30c03d5df22dd4c62  gcc/testsuite/g++.dg/cpp2a/nontype-float3.C
  8958094420e548b2425f24fcc5fe5fd3  gcc/testsuite/g++.dg/cpp2a/nontype-subob1.C
*************** ea5c8a084e134dc0226629054f6b8db0  gcc/te
*** 20539,20544 ****
--- 21970,21976 ----
  21e71f3162abd9751094104c0159c323  gcc/testsuite/g++.dg/cpp2a/paren-init35.C
  0ef61146c2fa955bc93665db5f659444  gcc/testsuite/g++.dg/cpp2a/paren-init36.C
  57eb2722cf6f699bdfa2068b9a72dcfb  gcc/testsuite/g++.dg/cpp2a/paren-init37.C
+ 4a5eaffbdd1a6c2242e0ea939159a08e  gcc/testsuite/g++.dg/cpp2a/paren-init38.C
  f917e8e53ce100d9b00585ebdb34ff7a  gcc/testsuite/g++.dg/cpp2a/paren-init4.C
  27b16b7687e7dee72f901646937411af  gcc/testsuite/g++.dg/cpp2a/paren-init5.C
  7b6aa3241d306dea0df872ed947e3df4  gcc/testsuite/g++.dg/cpp2a/paren-init6.C
*************** f917e8e53ce100d9b00585ebdb34ff7a  gcc/te
*** 20546,20551 ****
--- 21978,21985 ----
  ddb0c78842f6b4e3e4606849bc1a4a82  gcc/testsuite/g++.dg/cpp2a/paren-init8.C
  fc8ccbfe7f14dd4a41ff708c5a05b226  gcc/testsuite/g++.dg/cpp2a/paren-init9.C
  475c14632e683c843d48238b8c5514f2  gcc/testsuite/g++.dg/cpp2a/pr114426.C
+ 9d5c0df7ab0b6e3e5ab03bc8eb135452  gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
+ 4b52a1949fed25dc03d5cfb83047e7c5  gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
  7d1c1719a1c3e44cf69662819769f8a5  gcc/testsuite/g++.dg/cpp2a/pr88534.C
  3a4139bbe15eef2dce96cb020b2681f7  gcc/testsuite/g++.dg/cpp2a/pr88537.C
  b94ce4741edeca1190c4590e425522dc  gcc/testsuite/g++.dg/cpp2a/pr89913.C
*************** c7c933568cc5b17f6d8dadb7cec8101f  gcc/te
*** 20582,20588 ****
  279eb9b925ca084c1b6d0115a14ecb82  gcc/testsuite/g++.dg/cpp2a/spaceship-eq12.C
  ae3ef3d8cbf3145fa938c567ccc11530  gcc/testsuite/g++.dg/cpp2a/spaceship-eq13.C
  38fdc580773803f5236af81425b44d75  gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C
! 860fd8754fe18ef03692647820b7142c  gcc/testsuite/g++.dg/cpp2a/spaceship-eq15.C
  4f286359dd97839020e6c19de0f2dd05  gcc/testsuite/g++.dg/cpp2a/spaceship-eq16.C
  466e9895fc63c3cc51f38790018adba9  gcc/testsuite/g++.dg/cpp2a/spaceship-eq17.C
  35b5b00dc11e88e35813caed81c920fc  gcc/testsuite/g++.dg/cpp2a/spaceship-eq1a.C
--- 22016,22022 ----
  279eb9b925ca084c1b6d0115a14ecb82  gcc/testsuite/g++.dg/cpp2a/spaceship-eq12.C
  ae3ef3d8cbf3145fa938c567ccc11530  gcc/testsuite/g++.dg/cpp2a/spaceship-eq13.C
  38fdc580773803f5236af81425b44d75  gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C
! 92abff9a8590216c718989929bf74bf3  gcc/testsuite/g++.dg/cpp2a/spaceship-eq15.C
  4f286359dd97839020e6c19de0f2dd05  gcc/testsuite/g++.dg/cpp2a/spaceship-eq16.C
  466e9895fc63c3cc51f38790018adba9  gcc/testsuite/g++.dg/cpp2a/spaceship-eq17.C
  35b5b00dc11e88e35813caed81c920fc  gcc/testsuite/g++.dg/cpp2a/spaceship-eq1a.C
*************** fec9ec94498ae1aef80337be531cfa79  gcc/te
*** 20599,20608 ****
  f0b381dc1068e13197aafa5434301a0e  gcc/testsuite/g++.dg/cpp2a/spaceship-err3.C
  810bc29b38dab05c72043929f15628b5  gcc/testsuite/g++.dg/cpp2a/spaceship-err4.C
  a23752018562dba0fd625f34b6aaf89b  gcc/testsuite/g++.dg/cpp2a/spaceship-err5.C
! c0498bdab0da3d0f2726f005d8cde8c7  gcc/testsuite/g++.dg/cpp2a/spaceship-err6.C
  fedceca40086cc3551b12c5d92f783ec  gcc/testsuite/g++.dg/cpp2a/spaceship-err7.C
  78202203f70e3f075f22d5801a11c9a2  gcc/testsuite/g++.dg/cpp2a/spaceship-fallback1.C
  ebb778c7a30944f50dc09ed15f9d75bd  gcc/testsuite/g++.dg/cpp2a/spaceship-friend1.C
  e980e1da8fb13bc55d58a2c9c4789bb6  gcc/testsuite/g++.dg/cpp2a/spaceship-p1186.C
  256e727cc84c1b3653dac7bcdf88436a  gcc/testsuite/g++.dg/cpp2a/spaceship-ref1.C
  6a7454e24c41f86327655e4429e94037  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite1.C
--- 22033,22044 ----
  f0b381dc1068e13197aafa5434301a0e  gcc/testsuite/g++.dg/cpp2a/spaceship-err3.C
  810bc29b38dab05c72043929f15628b5  gcc/testsuite/g++.dg/cpp2a/spaceship-err4.C
  a23752018562dba0fd625f34b6aaf89b  gcc/testsuite/g++.dg/cpp2a/spaceship-err5.C
! e89693a070f2b0d3d8bf6ea51e03edc6  gcc/testsuite/g++.dg/cpp2a/spaceship-err6.C
  fedceca40086cc3551b12c5d92f783ec  gcc/testsuite/g++.dg/cpp2a/spaceship-err7.C
  78202203f70e3f075f22d5801a11c9a2  gcc/testsuite/g++.dg/cpp2a/spaceship-fallback1.C
  ebb778c7a30944f50dc09ed15f9d75bd  gcc/testsuite/g++.dg/cpp2a/spaceship-friend1.C
+ d0530dd08caa2b6bc37799ba37ef2070  gcc/testsuite/g++.dg/cpp2a/spaceship-narrowing1.C
+ 8bb4479c0094aafac814b2a4b02615ba  gcc/testsuite/g++.dg/cpp2a/spaceship-narrowing2.C
  e980e1da8fb13bc55d58a2c9c4789bb6  gcc/testsuite/g++.dg/cpp2a/spaceship-p1186.C
  256e727cc84c1b3653dac7bcdf88436a  gcc/testsuite/g++.dg/cpp2a/spaceship-ref1.C
  6a7454e24c41f86327655e4429e94037  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite1.C
*************** e980e1da8fb13bc55d58a2c9c4789bb6  gcc/te
*** 20610,20615 ****
--- 22046,22052 ----
  9b7dacddefd20fb8386155f921a7def1  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite3.C
  04933aadceb65a4efdba3b45f2497b97  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite4.C
  cb19df16f1224508c7ba9152516b87d3  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite5.C
+ 17cdcd998dae0609261fe0246fd520f1  gcc/testsuite/g++.dg/cpp2a/spaceship-rewrite6.C
  63d1925bb0c4627f5897eec1b93f80c2  gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1-neg.C
  d03a0af017f2ed1b2a80044fd5a5cdbb  gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1.C
  ec383069980676d6ec1898483b690eb5  gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1a.C
*************** e6037687c8367081183d5ad6f709b4a7  gcc/te
*** 20623,20629 ****
  f33ebefab5f5462103b17cd15e835bc0  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg3.C
  15bc319256750cf3a9caf5d852b30aa1  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg4.C
  853bb4d901c7e141b3533566d35db6c5  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg5.C
! 11ce883df5bfcdc17848d1a182086ec8  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg6.C
  fbe4f142dfdc31d389f336c3a2132127  gcc/testsuite/g++.dg/cpp2a/spaceship-synth1.C
  56777e80c383d43521bd39e52f0c078c  gcc/testsuite/g++.dg/cpp2a/spaceship-synth10.C
  4631b382efc1b305e76bdb16bb231c7f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth11.C
--- 22060,22067 ----
  f33ebefab5f5462103b17cd15e835bc0  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg3.C
  15bc319256750cf3a9caf5d852b30aa1  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg4.C
  853bb4d901c7e141b3533566d35db6c5  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg5.C
! 1cd3e00f4343084ef284f3a56f95151f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg6.C
! 921ee536aa59447aad0cbdeb6a094cd8  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg7.C
  fbe4f142dfdc31d389f336c3a2132127  gcc/testsuite/g++.dg/cpp2a/spaceship-synth1.C
  56777e80c383d43521bd39e52f0c078c  gcc/testsuite/g++.dg/cpp2a/spaceship-synth10.C
  4631b382efc1b305e76bdb16bb231c7f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth11.C
*************** fbe4f142dfdc31d389f336c3a2132127  gcc/te
*** 20631,20637 ****
  91f2e33001c655b461532a4c839e5957  gcc/testsuite/g++.dg/cpp2a/spaceship-synth13.C
  ea73038f47b70b2d70c4032d05c21938  gcc/testsuite/g++.dg/cpp2a/spaceship-synth14.C
  ccb67d98b82aa9a514ad98e1a5cb8e6f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth15.C
! 40c442f9558d4f78e1642f223634f444  gcc/testsuite/g++.dg/cpp2a/spaceship-synth16.C
  8f91979209d8d288d5c97266ecd046d7  gcc/testsuite/g++.dg/cpp2a/spaceship-synth1a.C
  5daa0011ffb3db93835d71c071ec0d71  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2.C
  6a6f4a83eb2e888266655b23bebfc463  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2a.C
--- 22069,22077 ----
  91f2e33001c655b461532a4c839e5957  gcc/testsuite/g++.dg/cpp2a/spaceship-synth13.C
  ea73038f47b70b2d70c4032d05c21938  gcc/testsuite/g++.dg/cpp2a/spaceship-synth14.C
  ccb67d98b82aa9a514ad98e1a5cb8e6f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth15.C
! 10d4b020615d8e9110adb55252b1dc7f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth16.C
! 29e6203a27c9b6c2abf95b059690e52c  gcc/testsuite/g++.dg/cpp2a/spaceship-synth16a.C
! a998b12049612b4c8580fcfc9322bb6a  gcc/testsuite/g++.dg/cpp2a/spaceship-synth17.C
  8f91979209d8d288d5c97266ecd046d7  gcc/testsuite/g++.dg/cpp2a/spaceship-synth1a.C
  5daa0011ffb3db93835d71c071ec0d71  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2.C
  6a6f4a83eb2e888266655b23bebfc463  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2a.C
*************** c59583697ae95a72f8fdca734e5b4a05  gcc/te
*** 20657,20663 ****
  56a81e759dacca04e0c82bbba386b431  gcc/testsuite/g++.dg/cpp2a/srcloc14.C
  71c58519c119b67982e201d387b37c21  gcc/testsuite/g++.dg/cpp2a/srcloc15.C
  725c5c46c434d5e1d0f5af34104e5583  gcc/testsuite/g++.dg/cpp2a/srcloc16.C
! e13ad9cd7ad81ba583e7c26eafc6ec63  gcc/testsuite/g++.dg/cpp2a/srcloc17.C
  a8ec3f289340278b03ee97c8ebff51ae  gcc/testsuite/g++.dg/cpp2a/srcloc18.C
  c951a3e5bb4bc2d67ee9dcf55822ab1e  gcc/testsuite/g++.dg/cpp2a/srcloc19.C
  73b3d0055024c3e89cf343ad697d921f  gcc/testsuite/g++.dg/cpp2a/srcloc2.C
--- 22097,22103 ----
  56a81e759dacca04e0c82bbba386b431  gcc/testsuite/g++.dg/cpp2a/srcloc14.C
  71c58519c119b67982e201d387b37c21  gcc/testsuite/g++.dg/cpp2a/srcloc15.C
  725c5c46c434d5e1d0f5af34104e5583  gcc/testsuite/g++.dg/cpp2a/srcloc16.C
! 0309736f79cdffed3cbf148ccad99d4a  gcc/testsuite/g++.dg/cpp2a/srcloc17.C
  a8ec3f289340278b03ee97c8ebff51ae  gcc/testsuite/g++.dg/cpp2a/srcloc18.C
  c951a3e5bb4bc2d67ee9dcf55822ab1e  gcc/testsuite/g++.dg/cpp2a/srcloc19.C
  73b3d0055024c3e89cf343ad697d921f  gcc/testsuite/g++.dg/cpp2a/srcloc2.C
*************** d5f9722c983a8693c05cb62cb32deda1  gcc/te
*** 20690,20704 ****
  3804f8b3199ad2e1689f500b100b9c74  gcc/testsuite/g++.dg/cpp2a/typename9.C
  68bb72590987e461c557730fb61a660a  gcc/testsuite/g++.dg/cpp2a/ucn1.C
  98a20c27132c470c3c77e43f34e1378d  gcc/testsuite/g++.dg/cpp2a/ucn2.C
! 0e5c519e73d14664dd7e8b3b68d1c2f4  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C
! ad2201a1b978f4f4fbdb00d19864f54d  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C
! 8a7f7465c6acee0050e7da22ab20d5fc  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad.C
! 4f2ea21c6a4b05f9bb5a6571d4805a8f  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg.C
! f2fa833dd2de8109a1887e708aa4cf5b  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg2.C
! d4af70129929097daef5c738f2508ba5  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp.C
  8b123b46e3ee970336060676f9af3ef4  gcc/testsuite/g++.dg/cpp2a/using-enum-1.C
  332fe0abb17c371daf5592402836a5d0  gcc/testsuite/g++.dg/cpp2a/using-enum-10.C
  08431912d36e32ca7a13f639a84d04d9  gcc/testsuite/g++.dg/cpp2a/using-enum-10a.C
  fd7bc6d132436a68e16dbd3cf7dbe4a1  gcc/testsuite/g++.dg/cpp2a/using-enum-2.C
  22767ec36a28df188bc83c009954898e  gcc/testsuite/g++.dg/cpp2a/using-enum-3.C
  e83eaca9dc6f24d5d311cbc3b0f5e3e8  gcc/testsuite/g++.dg/cpp2a/using-enum-4.C
--- 22130,22145 ----
  3804f8b3199ad2e1689f500b100b9c74  gcc/testsuite/g++.dg/cpp2a/typename9.C
  68bb72590987e461c557730fb61a660a  gcc/testsuite/g++.dg/cpp2a/ucn1.C
  98a20c27132c470c3c77e43f34e1378d  gcc/testsuite/g++.dg/cpp2a/ucn2.C
! 7ff37226e24da102bbb36dd0698bf78d  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C
! a78e2dc27df6c3574e8a7b7711342678  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C
! d93e160cf240a06c6e9f5ae3fe77d11f  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad.C
! f4e82e0f7a0283defda5c2c50dfdb509  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg.C
! d03b00dcea0b220c913ccbbbbc7ef8fa  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg2.C
! ae3e219c41f1ce6914b22512774b3bc0  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp.C
  8b123b46e3ee970336060676f9af3ef4  gcc/testsuite/g++.dg/cpp2a/using-enum-1.C
  332fe0abb17c371daf5592402836a5d0  gcc/testsuite/g++.dg/cpp2a/using-enum-10.C
  08431912d36e32ca7a13f639a84d04d9  gcc/testsuite/g++.dg/cpp2a/using-enum-10a.C
+ 33ab37283ee6dfceb434dc473959f880  gcc/testsuite/g++.dg/cpp2a/using-enum-11.C
  fd7bc6d132436a68e16dbd3cf7dbe4a1  gcc/testsuite/g++.dg/cpp2a/using-enum-2.C
  22767ec36a28df188bc83c009954898e  gcc/testsuite/g++.dg/cpp2a/using-enum-3.C
  e83eaca9dc6f24d5d311cbc3b0f5e3e8  gcc/testsuite/g++.dg/cpp2a/using-enum-4.C
*************** e4aee91d21a8cdbd286094f893319c70  gcc/te
*** 20721,20733 ****
  b196cb4af4d539f545ae961b8905ba24  gcc/testsuite/g++.dg/debug/const4.C
  8c7b9540eb6278b6bd197c3c55ae7945  gcc/testsuite/g++.dg/debug/const5.C
  36f088b22dca6ab78668e7d505839fbd  gcc/testsuite/g++.dg/debug/crash1.C
! 6808284b05be678f4c656d6d695a803b  gcc/testsuite/g++.dg/debug/debug.exp
  2b6f3bdb657c8865549db08f96a15223  gcc/testsuite/g++.dg/debug/debug1.C
  cece96666e504d9287aaadf8a4855138  gcc/testsuite/g++.dg/debug/debug2.C
  b5c1d1e26252e6e306ee37c885cc449b  gcc/testsuite/g++.dg/debug/debug3.C
  aaa5bddbbd1e77e4f951cd3e1e37f5f5  gcc/testsuite/g++.dg/debug/debug4.C
! 9003eeba884903fdf7a27d7b65357020  gcc/testsuite/g++.dg/debug/debug5.C
! b7caea13113bd3088703cc54a7f61b52  gcc/testsuite/g++.dg/debug/debug6.C
  fa08fe949e7e3b814b4413eb1c2e0b1e  gcc/testsuite/g++.dg/debug/debug7.C
  f3e5e740f9e7210ccece705c6d548267  gcc/testsuite/g++.dg/debug/debug8.C
  21cf4d633ed522aaeda6d51af07ab604  gcc/testsuite/g++.dg/debug/debug9.C
--- 22162,22174 ----
  b196cb4af4d539f545ae961b8905ba24  gcc/testsuite/g++.dg/debug/const4.C
  8c7b9540eb6278b6bd197c3c55ae7945  gcc/testsuite/g++.dg/debug/const5.C
  36f088b22dca6ab78668e7d505839fbd  gcc/testsuite/g++.dg/debug/crash1.C
! 11fca17eb550069c22a5e4db77a84281  gcc/testsuite/g++.dg/debug/debug.exp
  2b6f3bdb657c8865549db08f96a15223  gcc/testsuite/g++.dg/debug/debug1.C
  cece96666e504d9287aaadf8a4855138  gcc/testsuite/g++.dg/debug/debug2.C
  b5c1d1e26252e6e306ee37c885cc449b  gcc/testsuite/g++.dg/debug/debug3.C
  aaa5bddbbd1e77e4f951cd3e1e37f5f5  gcc/testsuite/g++.dg/debug/debug4.C
! d8a635e6af7e5d8a716c4330769d87a8  gcc/testsuite/g++.dg/debug/debug5.C
! aae7d3d75005a60ab912ae1b3feefdd9  gcc/testsuite/g++.dg/debug/debug6.C
  fa08fe949e7e3b814b4413eb1c2e0b1e  gcc/testsuite/g++.dg/debug/debug7.C
  f3e5e740f9e7210ccece705c6d548267  gcc/testsuite/g++.dg/debug/debug8.C
  21cf4d633ed522aaeda6d51af07ab604  gcc/testsuite/g++.dg/debug/debug9.C
*************** c20098d8433107f926a8d5fabfb70e3b  gcc/te
*** 20744,20751 ****
  cc8cc227c23048bcf594a85463fd6374  gcc/testsuite/g++.dg/debug/dwarf2/array-0.C
  6d7f704b3fa1c061e5f4bdaffbb7f0e2  gcc/testsuite/g++.dg/debug/dwarf2/array-1.C
  e933397eda73396c9f6bee7892623ab1  gcc/testsuite/g++.dg/debug/dwarf2/array-2.C
! 5ee5d11dca01f0768dca7001112d1492  gcc/testsuite/g++.dg/debug/dwarf2/array-3.C
! aade3ae7d11d61781544debadb9053f1  gcc/testsuite/g++.dg/debug/dwarf2/array-4.C
  894f28c94116458f7bd7826559d185fc  gcc/testsuite/g++.dg/debug/dwarf2/auto1.C
  35cfadb8c5470e8c9b783b410b1ff4ca  gcc/testsuite/g++.dg/debug/dwarf2/block.C
  95d9aa78d366937db2391fe4088ff4eb  gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C
--- 22185,22192 ----
  cc8cc227c23048bcf594a85463fd6374  gcc/testsuite/g++.dg/debug/dwarf2/array-0.C
  6d7f704b3fa1c061e5f4bdaffbb7f0e2  gcc/testsuite/g++.dg/debug/dwarf2/array-1.C
  e933397eda73396c9f6bee7892623ab1  gcc/testsuite/g++.dg/debug/dwarf2/array-2.C
! b11201bb289d72b60d54c374c97bf65e  gcc/testsuite/g++.dg/debug/dwarf2/array-3.C
! f8d265a55aeab35515d38fcae60779c0  gcc/testsuite/g++.dg/debug/dwarf2/array-4.C
  894f28c94116458f7bd7826559d185fc  gcc/testsuite/g++.dg/debug/dwarf2/auto1.C
  35cfadb8c5470e8c9b783b410b1ff4ca  gcc/testsuite/g++.dg/debug/dwarf2/block.C
  95d9aa78d366937db2391fe4088ff4eb  gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C
*************** b68f44c11557e3825fd41d4340b7bf62  gcc/te
*** 20759,20765 ****
  b60cdd725e03d3b1d9c56248e0f623f0  gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
  2d11614b04b4a82a2bd316bf588c7852  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C
  906b48b71d0ea35137dc20a9fd2f8965  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C
! 04de73d5ddefa5742c46f44e4b3f73b7  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
  626624da3f5685a0850aad1b683ac3d4  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-nested.C
  22d59b45b21c13f83b0b24bf88a853bf  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
  1b130ad10876bc9db6cf83c8fa07435f  gcc/testsuite/g++.dg/debug/dwarf2/enum1.C
--- 22200,22206 ----
  b60cdd725e03d3b1d9c56248e0f623f0  gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
  2d11614b04b4a82a2bd316bf588c7852  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C
  906b48b71d0ea35137dc20a9fd2f8965  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C
! 145356f153821f4b5ed93a17c2ef223b  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
  626624da3f5685a0850aad1b683ac3d4  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-nested.C
  22d59b45b21c13f83b0b24bf88a853bf  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
  1b130ad10876bc9db6cf83c8fa07435f  gcc/testsuite/g++.dg/debug/dwarf2/enum1.C
*************** b2bca0913e4135c3359c9933520119f6  gcc/te
*** 20794,20801 ****
  74923529aa2cdbd53ab1fff64ffa48b4  gcc/testsuite/g++.dg/debug/dwarf2/lambda1.C
  c3fa5758249954844813f6f83797cbb6  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp11.C
  b7cb0f476479fbda78bd90153450d0f6  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp14.C
! 84736775aaab673865f2994daaa52e89  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp17.C
! 01ba88f2df292f8690678f5ec8687d78  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp20.C
  9528ad1e140eff24c9bcff8ebae30d9f  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp98.C
  bb6bfe8d0f500af90a0ec5977f5286a2  gcc/testsuite/g++.dg/debug/dwarf2/lineno-array1.C
  8b8e5eddccdaa519cdbef29f72e2fb88  gcc/testsuite/g++.dg/debug/dwarf2/lineno-simple1.C
--- 22235,22243 ----
  74923529aa2cdbd53ab1fff64ffa48b4  gcc/testsuite/g++.dg/debug/dwarf2/lambda1.C
  c3fa5758249954844813f6f83797cbb6  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp11.C
  b7cb0f476479fbda78bd90153450d0f6  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp14.C
! 0e55018a60d7299db83446c8f5dde902  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp17.C
! 5de02c8d272660d6e783e4655baaf331  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp20.C
! 48df2fe6c252c49c46abd343c3c5c7ee  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp23.C
  9528ad1e140eff24c9bcff8ebae30d9f  gcc/testsuite/g++.dg/debug/dwarf2/lang-cpp98.C
  bb6bfe8d0f500af90a0ec5977f5286a2  gcc/testsuite/g++.dg/debug/dwarf2/lineno-array1.C
  8b8e5eddccdaa519cdbef29f72e2fb88  gcc/testsuite/g++.dg/debug/dwarf2/lineno-simple1.C
*************** b4f03dbf34d36476b7a06c85d4c817c1  gcc/te
*** 20862,20868 ****
  7367296324dfab1d94f3d89a91363216  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C
  9b06528a77baecf09f08d8a55b87d05c  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C
  243d1a9770a9a3b276eb304fca89368d  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-6.C
! 3bf8ff280d64dd94e229687de6feb4e5  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C
  c5fcf3615db17768fdb6c2db296fac81  gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C
  f025828d45ecf1da050946f91e12467e  gcc/testsuite/g++.dg/debug/dwarf2/template-params-10.C
  d8801026a3c21d4f9b3876cd5658db4a  gcc/testsuite/g++.dg/debug/dwarf2/template-params-11.C
--- 22304,22310 ----
  7367296324dfab1d94f3d89a91363216  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C
  9b06528a77baecf09f08d8a55b87d05c  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C
  243d1a9770a9a3b276eb304fca89368d  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-6.C
! 646e17fcd5edbdba10a7e9c1cb2528bd  gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C
  c5fcf3615db17768fdb6c2db296fac81  gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C
  f025828d45ecf1da050946f91e12467e  gcc/testsuite/g++.dg/debug/dwarf2/template-params-10.C
  d8801026a3c21d4f9b3876cd5658db4a  gcc/testsuite/g++.dg/debug/dwarf2/template-params-11.C
*************** a0ac13a0885ee162c972f58ffbd934e7  gcc/te
*** 20901,20910 ****
  8d1c97a9b811ba8c9a789baf97c48ce4  gcc/testsuite/g++.dg/debug/namespace1.C
  98d1fa8a42200722f612a8f915bb9673  gcc/testsuite/g++.dg/debug/namespace2.C
  c805656a195d9a98cc7141e7db52d9ef  gcc/testsuite/g++.dg/debug/nullptr01.C
  57e21034689a45ffd010ec86b2596de5  gcc/testsuite/g++.dg/debug/pr106261.C
  19de4ef7373a891f957af0121c166d89  gcc/testsuite/g++.dg/debug/pr108967.C
  553e3d84e73e0efbd2c26b6ea6df2a6c  gcc/testsuite/g++.dg/debug/pr110295.C
! fcdc9d29f34ff56d1b7de0d55a1eaed7  gcc/testsuite/g++.dg/debug/pr15736.cc
  d25b84553c2083b28615202497b8f94a  gcc/testsuite/g++.dg/debug/pr16792.C
  91880dfb66fda0db4ddabf486346b755  gcc/testsuite/g++.dg/debug/pr22514.C
  a9cf363ccde67638eed4148103577d18  gcc/testsuite/g++.dg/debug/pr27657.C
--- 22343,22353 ----
  8d1c97a9b811ba8c9a789baf97c48ce4  gcc/testsuite/g++.dg/debug/namespace1.C
  98d1fa8a42200722f612a8f915bb9673  gcc/testsuite/g++.dg/debug/namespace2.C
  c805656a195d9a98cc7141e7db52d9ef  gcc/testsuite/g++.dg/debug/nullptr01.C
+ 21550e19d69b370b50935c9c58915853  gcc/testsuite/g++.dg/debug/pr101533.C
  57e21034689a45ffd010ec86b2596de5  gcc/testsuite/g++.dg/debug/pr106261.C
  19de4ef7373a891f957af0121c166d89  gcc/testsuite/g++.dg/debug/pr108967.C
  553e3d84e73e0efbd2c26b6ea6df2a6c  gcc/testsuite/g++.dg/debug/pr110295.C
! fcdc9d29f34ff56d1b7de0d55a1eaed7  gcc/testsuite/g++.dg/debug/pr15736.C
  d25b84553c2083b28615202497b8f94a  gcc/testsuite/g++.dg/debug/pr16792.C
  91880dfb66fda0db4ddabf486346b755  gcc/testsuite/g++.dg/debug/pr22514.C
  a9cf363ccde67638eed4148103577d18  gcc/testsuite/g++.dg/debug/pr27657.C
*************** bf050d057433140d0ed2aeeab122c5be  gcc/te
*** 20915,20921 ****
  04c1c1f10e5ac50150955c433bd5f2e1  gcc/testsuite/g++.dg/debug/pr44178.C
  20fe827262881d91cf4f447c1af56cd7  gcc/testsuite/g++.dg/debug/pr44182.C
  5a5294abaaa02cbee89edeef4322e392  gcc/testsuite/g++.dg/debug/pr45660.C
! 6331b60f5ff086abdb1990391e6b4fa9  gcc/testsuite/g++.dg/debug/pr46240.cc
  d3a83dca3a3bea04d76b4bb4e2f85a43  gcc/testsuite/g++.dg/debug/pr46241.C
  8dd40f232ebc9ee935e0a2aa00cf5950  gcc/testsuite/g++.dg/debug/pr46338.C
  5616b4b245c08444651a857fc60e574d  gcc/testsuite/g++.dg/debug/pr46583.C
--- 22358,22364 ----
  04c1c1f10e5ac50150955c433bd5f2e1  gcc/testsuite/g++.dg/debug/pr44178.C
  20fe827262881d91cf4f447c1af56cd7  gcc/testsuite/g++.dg/debug/pr44182.C
  5a5294abaaa02cbee89edeef4322e392  gcc/testsuite/g++.dg/debug/pr45660.C
! 6331b60f5ff086abdb1990391e6b4fa9  gcc/testsuite/g++.dg/debug/pr46240.C
  d3a83dca3a3bea04d76b4bb4e2f85a43  gcc/testsuite/g++.dg/debug/pr46241.C
  8dd40f232ebc9ee935e0a2aa00cf5950  gcc/testsuite/g++.dg/debug/pr46338.C
  5616b4b245c08444651a857fc60e574d  gcc/testsuite/g++.dg/debug/pr46583.C
*************** a864ac9ace6ee08b0ae00899e67445f0  gcc/te
*** 20925,20931 ****
  388712728ce94b3a3628533d73b93f94  gcc/testsuite/g++.dg/debug/pr53466.C
  92838deb61f844cfa8f771fbd40cea5f  gcc/testsuite/g++.dg/debug/pr53860.C
  3a8f6ee436933eb1c17b19d1645af355  gcc/testsuite/g++.dg/debug/pr54499.C
! 21517e22d71d412b5fe08293b2081097  gcc/testsuite/g++.dg/debug/pr54828.C
  5dc7cab98a90e4bc7730b184635619bd  gcc/testsuite/g++.dg/debug/pr54831.C
  6882da3a42d380c184cbe865d79ebd48  gcc/testsuite/g++.dg/debug/pr56294.C
  2ed3351a3873bcdaa2d9a2642c84efbf  gcc/testsuite/g++.dg/debug/pr56819.C
--- 22368,22374 ----
  388712728ce94b3a3628533d73b93f94  gcc/testsuite/g++.dg/debug/pr53466.C
  92838deb61f844cfa8f771fbd40cea5f  gcc/testsuite/g++.dg/debug/pr53860.C
  3a8f6ee436933eb1c17b19d1645af355  gcc/testsuite/g++.dg/debug/pr54499.C
! 4926044cdcc2787b340e6d8bc2ed9ca4  gcc/testsuite/g++.dg/debug/pr54828.C
  5dc7cab98a90e4bc7730b184635619bd  gcc/testsuite/g++.dg/debug/pr54831.C
  6882da3a42d380c184cbe865d79ebd48  gcc/testsuite/g++.dg/debug/pr56294.C
  2ed3351a3873bcdaa2d9a2642c84efbf  gcc/testsuite/g++.dg/debug/pr56819.C
*************** f00dea52c61cb46b3702ed0755e5be94  gcc/te
*** 20973,20979 ****
  5381563d83a802d89887422d01bc17d1  gcc/testsuite/g++.dg/dfp/44473-1.C
  ca2c3afed1d1ac0b4c3f2b2b82264602  gcc/testsuite/g++.dg/dfp/44473-2.C
  694614d4f71e398dcda11523059a774e  gcc/testsuite/g++.dg/dfp/base.C
! 29e8179fb14a5b80b62aa3990ef35e38  gcc/testsuite/g++.dg/dfp/dfp.exp
  b98372f1dd5bbd1ea23e2933d4bdf03a  gcc/testsuite/g++.dg/dfp/mangle-1.C
  c0592e7184d9390b10cd93d3b6f1f7a0  gcc/testsuite/g++.dg/dfp/mangle-2.C
  97de1869469f8592b096b761b6a2cceb  gcc/testsuite/g++.dg/dfp/mangle-3.C
--- 22416,22422 ----
  5381563d83a802d89887422d01bc17d1  gcc/testsuite/g++.dg/dfp/44473-1.C
  ca2c3afed1d1ac0b4c3f2b2b82264602  gcc/testsuite/g++.dg/dfp/44473-2.C
  694614d4f71e398dcda11523059a774e  gcc/testsuite/g++.dg/dfp/base.C
! 8faf8b757e3f94f293a2697c79b8ae78  gcc/testsuite/g++.dg/dfp/dfp.exp
  b98372f1dd5bbd1ea23e2933d4bdf03a  gcc/testsuite/g++.dg/dfp/mangle-1.C
  c0592e7184d9390b10cd93d3b6f1f7a0  gcc/testsuite/g++.dg/dfp/mangle-2.C
  97de1869469f8592b096b761b6a2cceb  gcc/testsuite/g++.dg/dfp/mangle-3.C
*************** becc0e6f064af285a504ff10eaffc525  gcc/te
*** 20984,20990 ****
  3a865b01c504023d0b90b1f055163c6a  gcc/testsuite/g++.dg/dfp/nofields.C
  919ff80bde2b401e1cf10423071bab16  gcc/testsuite/g++.dg/dfp/pr92744.C
  cd0133a632a541db051ef84d53754ac6  gcc/testsuite/g++.dg/dfp/typeid1.C
! ac1525692e246b268a3c3c5dc12f93bd  gcc/testsuite/g++.dg/dg.exp
  acfb4c292cab52af7c96437dfeb91332  gcc/testsuite/g++.dg/diagnostic/aka1.C
  6daf9c84b004ad38b36ca9e885175631  gcc/testsuite/g++.dg/diagnostic/aka2.C
  0aacbf4bd10589d329e7f0a05be533bb  gcc/testsuite/g++.dg/diagnostic/aka3.C
--- 22427,22434 ----
  3a865b01c504023d0b90b1f055163c6a  gcc/testsuite/g++.dg/dfp/nofields.C
  919ff80bde2b401e1cf10423071bab16  gcc/testsuite/g++.dg/dfp/pr92744.C
  cd0133a632a541db051ef84d53754ac6  gcc/testsuite/g++.dg/dfp/typeid1.C
! d7b10c41bed5782388e3e624407cba5c  gcc/testsuite/g++.dg/dg.exp
! d3e5ab0ce001a77dc5362388a8114513  gcc/testsuite/g++.dg/diagnostic/aggr-init1.C
  acfb4c292cab52af7c96437dfeb91332  gcc/testsuite/g++.dg/diagnostic/aka1.C
  6daf9c84b004ad38b36ca9e885175631  gcc/testsuite/g++.dg/diagnostic/aka2.C
  0aacbf4bd10589d329e7f0a05be533bb  gcc/testsuite/g++.dg/diagnostic/aka3.C
*************** ab1030c80f61cc9ef846e7226a802cdf  gcc/te
*** 20996,21004 ****
--- 22440,22451 ----
  e083f6b3ba321e7cdc9c8d54972f027b  gcc/testsuite/g++.dg/diagnostic/alignof2.C
  8dfa99aaf3b734e4b4a8f9dcfbed7cdd  gcc/testsuite/g++.dg/diagnostic/alignof3.C
  eaa93030439fd11d2f5366a3e4eafa8a  gcc/testsuite/g++.dg/diagnostic/alignof4.C
+ 9c7c029cb29fbe9f4347c8e129426cff  gcc/testsuite/g++.dg/diagnostic/arg-pack1.C
  1f68f132aa0d07e47ed9cf254749fe74  gcc/testsuite/g++.dg/diagnostic/array-init1.C
  f468ff0e470b813ba90ab6f552dfbb51  gcc/testsuite/g++.dg/diagnostic/auto-storage-1.C
  d6cd69df86e5ef21af4548c3401c93ba  gcc/testsuite/g++.dg/diagnostic/auto1.C
+ dbe7540d52d144a747767d3100d8dffc  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops-highlight-colors.C
+ a0199877628a1e748c0f7d11f73710a8  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops-no-highlight-colors.C
  2782c3a1ba0fe921f95b73de11d6bf55  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C
  a91bf5789095e7895cce3a68b00c225e  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops2.C
  748783b112c42a8deeb80f2d23c3aa1f  gcc/testsuite/g++.dg/diagnostic/base-operand-non-pointer-1.C
*************** dc2425cff4a0be5961398d082daeeaf5  gcc/te
*** 21014,21021 ****
  13461b7c9b3b8e9d46f44892e6c9d868  gcc/testsuite/g++.dg/diagnostic/constexpr2.C
  730f0d5e9b52ad736c8f168f3c6958ba  gcc/testsuite/g++.dg/diagnostic/constexpr3.C
  5f5c4576dd5f9feb1898ccabe6a8ee2b  gcc/testsuite/g++.dg/diagnostic/constexpr4.C
  e824a88234abd039ffea31d13a8e9e42  gcc/testsuite/g++.dg/diagnostic/delete1.C
! 4a4ed8a805a81f8726e0ba889c68ff19  gcc/testsuite/g++.dg/diagnostic/disable.C
  526efa2a8771e0409f39701dd3fc5953  gcc/testsuite/g++.dg/diagnostic/duplicate1.C
  c3989c492c520c5e5c36e77898e2bd15  gcc/testsuite/g++.dg/diagnostic/enum1.C
  3fd7c0c4c80c4df54c4f6b4749e1ff43  gcc/testsuite/g++.dg/diagnostic/enum2.C
--- 22461,22469 ----
  13461b7c9b3b8e9d46f44892e6c9d868  gcc/testsuite/g++.dg/diagnostic/constexpr2.C
  730f0d5e9b52ad736c8f168f3c6958ba  gcc/testsuite/g++.dg/diagnostic/constexpr3.C
  5f5c4576dd5f9feb1898ccabe6a8ee2b  gcc/testsuite/g++.dg/diagnostic/constexpr4.C
+ 5ac6a7ea1c244eba4dbd769ad67da5b3  gcc/testsuite/g++.dg/diagnostic/decltype1.C
  e824a88234abd039ffea31d13a8e9e42  gcc/testsuite/g++.dg/diagnostic/delete1.C
! 3ad71d97d52556421cf75f4ba47d1be5  gcc/testsuite/g++.dg/diagnostic/disable.C
  526efa2a8771e0409f39701dd3fc5953  gcc/testsuite/g++.dg/diagnostic/duplicate1.C
  c3989c492c520c5e5c36e77898e2bd15  gcc/testsuite/g++.dg/diagnostic/enum1.C
  3fd7c0c4c80c4df54c4f6b4749e1ff43  gcc/testsuite/g++.dg/diagnostic/enum2.C
*************** c3989c492c520c5e5c36e77898e2bd15  gcc/te
*** 21026,21039 ****
  dd6972e7b92113e6456388c099d1d0fc  gcc/testsuite/g++.dg/diagnostic/friend1.C
  2e522d96f1b58403f1cff0bb5e5a64fe  gcc/testsuite/g++.dg/diagnostic/friend2.C
  37831a7ee66693f63547d8f82d1f1e8a  gcc/testsuite/g++.dg/diagnostic/friend3.C
! 67b8fa8160f0cf836bce5843bbb3d7c4  gcc/testsuite/g++.dg/diagnostic/function-color1.C
  3ba4c3c8b2c3fcce20e48ba33926269f  gcc/testsuite/g++.dg/diagnostic/functional-cast-to-array-type-1.C
  69ce128025964839ee0839b726a643f1  gcc/testsuite/g++.dg/diagnostic/incomplete-type-1.C
  b4e50b6bf0aa4ab59b9a9cb6e129a903  gcc/testsuite/g++.dg/diagnostic/inconsistent-deduction-1.C
  35450697df4db69677623dcc4bc44bf5  gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C
  52261a78171046d8af667baa598b3996  gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C
  6d7540ee092b9f6493a209b3d3f89d93  gcc/testsuite/g++.dg/diagnostic/integral-array-size-1.C
  37b0194164dc105d145926e992c5fffa  gcc/testsuite/g++.dg/diagnostic/local1.C
  3cb4de68f3722265cb8bb8c3ec74b8c2  gcc/testsuite/g++.dg/diagnostic/long-short.C
  5e5dde276892455bc269dfa7e14e456a  gcc/testsuite/g++.dg/diagnostic/main1.C
  17ad778ff7ed164cbd2116ff51b37594  gcc/testsuite/g++.dg/diagnostic/main2.C
--- 22474,22489 ----
  dd6972e7b92113e6456388c099d1d0fc  gcc/testsuite/g++.dg/diagnostic/friend1.C
  2e522d96f1b58403f1cff0bb5e5a64fe  gcc/testsuite/g++.dg/diagnostic/friend2.C
  37831a7ee66693f63547d8f82d1f1e8a  gcc/testsuite/g++.dg/diagnostic/friend3.C
! f15a595e6ec58a7465aebec0a57e3df4  gcc/testsuite/g++.dg/diagnostic/function-color1.C
  3ba4c3c8b2c3fcce20e48ba33926269f  gcc/testsuite/g++.dg/diagnostic/functional-cast-to-array-type-1.C
  69ce128025964839ee0839b726a643f1  gcc/testsuite/g++.dg/diagnostic/incomplete-type-1.C
  b4e50b6bf0aa4ab59b9a9cb6e129a903  gcc/testsuite/g++.dg/diagnostic/inconsistent-deduction-1.C
  35450697df4db69677623dcc4bc44bf5  gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C
  52261a78171046d8af667baa598b3996  gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C
  6d7540ee092b9f6493a209b3d3f89d93  gcc/testsuite/g++.dg/diagnostic/integral-array-size-1.C
+ a435c50bbe06411da7ec50c48b8deb26  gcc/testsuite/g++.dg/diagnostic/lang-dump-1.C
  37b0194164dc105d145926e992c5fffa  gcc/testsuite/g++.dg/diagnostic/local1.C
+ 063eace18fe92c580e56e42dca4b02d3  gcc/testsuite/g++.dg/diagnostic/long-short-colorization.C
  3cb4de68f3722265cb8bb8c3ec74b8c2  gcc/testsuite/g++.dg/diagnostic/long-short.C
  5e5dde276892455bc269dfa7e14e456a  gcc/testsuite/g++.dg/diagnostic/main1.C
  17ad778ff7ed164cbd2116ff51b37594  gcc/testsuite/g++.dg/diagnostic/main2.C
*************** f75c82dfbdf0eea67c71d62ca274e22b  gcc/te
*** 21043,21049 ****
  4656c9afc261871baeb12bca5d22f022  gcc/testsuite/g++.dg/diagnostic/member-fn-1.C
  f3b416e81c428ee9582715ac61d2b3d7  gcc/testsuite/g++.dg/diagnostic/method1.C
  67ae67c90098a1f9b487a08f6117d69a  gcc/testsuite/g++.dg/diagnostic/missing-default-args.C
! 71ffe26977e72a4809fd6c57ef40164e  gcc/testsuite/g++.dg/diagnostic/missing-header-pr110164.C
  298c689626ea55a13cf693bf016c5aa9  gcc/testsuite/g++.dg/diagnostic/missing-typename.C
  a57099362f24a92fdb8ee593039405ff  gcc/testsuite/g++.dg/diagnostic/nested-name-1.C
  9d7674eed83757573728bbef236ded56  gcc/testsuite/g++.dg/diagnostic/no-type-1.C
--- 22493,22499 ----
  4656c9afc261871baeb12bca5d22f022  gcc/testsuite/g++.dg/diagnostic/member-fn-1.C
  f3b416e81c428ee9582715ac61d2b3d7  gcc/testsuite/g++.dg/diagnostic/method1.C
  67ae67c90098a1f9b487a08f6117d69a  gcc/testsuite/g++.dg/diagnostic/missing-default-args.C
! 5dc6377e2b322caee257a23af3b988c8  gcc/testsuite/g++.dg/diagnostic/missing-header-pr110164.C
  298c689626ea55a13cf693bf016c5aa9  gcc/testsuite/g++.dg/diagnostic/missing-typename.C
  a57099362f24a92fdb8ee593039405ff  gcc/testsuite/g++.dg/diagnostic/nested-name-1.C
  9d7674eed83757573728bbef236ded56  gcc/testsuite/g++.dg/diagnostic/no-type-1.C
*************** a57099362f24a92fdb8ee593039405ff  gcc/te
*** 21051,21075 ****
  4cb6cc53967decf171949c016ce9e191  gcc/testsuite/g++.dg/diagnostic/not-a-function-template-1.C
  007925d2676b7700dad8049631aae066  gcc/testsuite/g++.dg/diagnostic/nullptr.C
  7c189158703237d2d0c14e780590b5e1  gcc/testsuite/g++.dg/diagnostic/out-of-class-redeclaration.C
! da7cb8a98b805b1c4fd5ad900d59a8b6  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C
  bd4b7e0e3c910f4e6940a6a7cca5b15b  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-3.C
  fdc6714748f5715201fad71a1c77a9eb  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch.C
  87d8d501c7c4afd85a94fca95720d273  gcc/testsuite/g++.dg/diagnostic/parm1.C
! 89cfaafcf845bcadd2f98e3b9ca0c024  gcc/testsuite/g++.dg/diagnostic/pr100716-1.C
! a4c08a9df3d26ab29ba0a94cfdaab5d1  gcc/testsuite/g++.dg/diagnostic/pr100716.C
  b925bc078075ee65909b19494337263e  gcc/testsuite/g++.dg/diagnostic/pr13981.C
  88fee03436512dbcf1e58122fba64aea  gcc/testsuite/g++.dg/diagnostic/pr58979.C
  7447a4913a5c3f623216b378589bebc7  gcc/testsuite/g++.dg/diagnostic/pr59838.C
  4a1d7e4cbcc6e8b23b2be621ad06aef0  gcc/testsuite/g++.dg/diagnostic/pr60862.C
  540fd9b471715b3b82276d5894381428  gcc/testsuite/g++.dg/diagnostic/pr61004.C
! ea253ea1b6f786b57caf50f6d2752f95  gcc/testsuite/g++.dg/diagnostic/pr65923.C
  dccc3b9f5d4b2c546f801065abd5ea31  gcc/testsuite/g++.dg/diagnostic/pr67960-2.C
  bc023a2d856c088d32aa6808456223fb  gcc/testsuite/g++.dg/diagnostic/pr67960.C
! ced8e4f0eaa35fe2ce541d08b43e8097  gcc/testsuite/g++.dg/diagnostic/pr70105.C
  e663fed110055823719b26030cda69ac  gcc/testsuite/g++.dg/diagnostic/pr71075.C
  f1fa5cf0ff0d4ecdd2e636f162a3a570  gcc/testsuite/g++.dg/diagnostic/pr72803.C
  8290b97a7e26b166e998964145f115fe  gcc/testsuite/g++.dg/diagnostic/pr77777.C
! 3991530d258901456aa9f46c176e3156  gcc/testsuite/g++.dg/diagnostic/pr77949.C
  9708862150e6af526a7566a30ec2fdd1  gcc/testsuite/g++.dg/diagnostic/pr79300.C
  29ed80e4986945b87f11fecaa93456ba  gcc/testsuite/g++.dg/diagnostic/pr79304.C
  70f43920199e24ee81a25dfafae68a98  gcc/testsuite/g++.dg/diagnostic/pr80473.C
--- 22501,22526 ----
  4cb6cc53967decf171949c016ce9e191  gcc/testsuite/g++.dg/diagnostic/not-a-function-template-1.C
  007925d2676b7700dad8049631aae066  gcc/testsuite/g++.dg/diagnostic/nullptr.C
  7c189158703237d2d0c14e780590b5e1  gcc/testsuite/g++.dg/diagnostic/out-of-class-redeclaration.C
! 07cc63e11295533a54ddb6941045910a  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C
  bd4b7e0e3c910f4e6940a6a7cca5b15b  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-3.C
  fdc6714748f5715201fad71a1c77a9eb  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch.C
  87d8d501c7c4afd85a94fca95720d273  gcc/testsuite/g++.dg/diagnostic/parm1.C
! c792160926821227b6f62da0a66e2d14  gcc/testsuite/g++.dg/diagnostic/pr100716-1.C
! f314ad9f985a3e7b1b019adba3968d2a  gcc/testsuite/g++.dg/diagnostic/pr100716.C
! 2ce0e2915c2dda991aa17b397ab97b52  gcc/testsuite/g++.dg/diagnostic/pr105483.C
  b925bc078075ee65909b19494337263e  gcc/testsuite/g++.dg/diagnostic/pr13981.C
  88fee03436512dbcf1e58122fba64aea  gcc/testsuite/g++.dg/diagnostic/pr58979.C
  7447a4913a5c3f623216b378589bebc7  gcc/testsuite/g++.dg/diagnostic/pr59838.C
  4a1d7e4cbcc6e8b23b2be621ad06aef0  gcc/testsuite/g++.dg/diagnostic/pr60862.C
  540fd9b471715b3b82276d5894381428  gcc/testsuite/g++.dg/diagnostic/pr61004.C
! e62ab26475b60cd087ddfa7e64e36b64  gcc/testsuite/g++.dg/diagnostic/pr65923.C
  dccc3b9f5d4b2c546f801065abd5ea31  gcc/testsuite/g++.dg/diagnostic/pr67960-2.C
  bc023a2d856c088d32aa6808456223fb  gcc/testsuite/g++.dg/diagnostic/pr67960.C
! b6ec792b4df38e4ceafea9af152538c0  gcc/testsuite/g++.dg/diagnostic/pr70105.C
  e663fed110055823719b26030cda69ac  gcc/testsuite/g++.dg/diagnostic/pr71075.C
  f1fa5cf0ff0d4ecdd2e636f162a3a570  gcc/testsuite/g++.dg/diagnostic/pr72803.C
  8290b97a7e26b166e998964145f115fe  gcc/testsuite/g++.dg/diagnostic/pr77777.C
! cf2e7c10d35b5d105ead045deb8d8116  gcc/testsuite/g++.dg/diagnostic/pr77949.C
  9708862150e6af526a7566a30ec2fdd1  gcc/testsuite/g++.dg/diagnostic/pr79300.C
  29ed80e4986945b87f11fecaa93456ba  gcc/testsuite/g++.dg/diagnostic/pr79304.C
  70f43920199e24ee81a25dfafae68a98  gcc/testsuite/g++.dg/diagnostic/pr80473.C
*************** b366f10d78ca81d757eef37957892a2f  gcc/te
*** 21095,21100 ****
--- 22546,22553 ----
  562879c7f9aec2c2d87cad70518ca469  gcc/testsuite/g++.dg/diagnostic/redeclaration-3.C
  6ba8ddd42905d56aa4169a6f75a2352a  gcc/testsuite/g++.dg/diagnostic/redeclaration-4.C
  c9965ff02480558cef893efd4316a232  gcc/testsuite/g++.dg/diagnostic/redeclaration-5.C
+ b97bbe6d335d7f33e4ae26cec023ad8d  gcc/testsuite/g++.dg/diagnostic/redeclaration-6.C
+ 8b89f091315ee5d72b7a399225d5df33  gcc/testsuite/g++.dg/diagnostic/redeclaration-7.C
  bb193b240fa78433d956d57357da2858  gcc/testsuite/g++.dg/diagnostic/ref1.C
  b70b854343c43b4b0eac609476ee8fc1  gcc/testsuite/g++.dg/diagnostic/ref2.C
  fabec9ff676df7e51a4bfcca57117fa6  gcc/testsuite/g++.dg/diagnostic/ref3.C
*************** e3aa447c8519e3886f54a6a8d59c31c4  gcc/te
*** 21102,21107 ****
--- 22555,22577 ----
  e82e0cd73386b9a56e7277c5d9a4892b  gcc/testsuite/g++.dg/diagnostic/return-type-loc1.C
  ed0a135e3f6f6280fe8fd6ee38207fb6  gcc/testsuite/g++.dg/diagnostic/returning-a-value-1.C
  a05ba839cb9338f35410b986c40f0385  gcc/testsuite/g++.dg/diagnostic/scope1.C
+ 1273a63360878d65d427ff2217ff90ec  gcc/testsuite/g++.dg/diagnostic/semicolon1.C
+ f36a8b09ded513821ff0a89e65b7ece1  gcc/testsuite/g++.dg/diagnostic/semicolon10.C
+ 4733f6557d1c69e1cfdc40c0174f0ab1  gcc/testsuite/g++.dg/diagnostic/semicolon11.C
+ f4a50c3485c0125477a6f4a5ee707647  gcc/testsuite/g++.dg/diagnostic/semicolon12.C
+ e59d58e86cc6098a546bbb492622b84a  gcc/testsuite/g++.dg/diagnostic/semicolon13.C
+ 4e6a553bb7a7446a8ce91628072fa5fb  gcc/testsuite/g++.dg/diagnostic/semicolon14.C
+ 9686f77eb5e85dca72a275122fd495aa  gcc/testsuite/g++.dg/diagnostic/semicolon15.C
+ b8ba6787f766809133b96d8f7242408a  gcc/testsuite/g++.dg/diagnostic/semicolon16.C
+ 63ef768abac6eacaccbcfc5b033ddffe  gcc/testsuite/g++.dg/diagnostic/semicolon17.C
+ b68eccf6d64bc12ea54fc7afbfafcc1e  gcc/testsuite/g++.dg/diagnostic/semicolon2.C
+ 3d5077abeb90cc0c0b02f103f5f6c15f  gcc/testsuite/g++.dg/diagnostic/semicolon3.C
+ 62eee550127d86788cb83053bd4aa0ed  gcc/testsuite/g++.dg/diagnostic/semicolon4.C
+ 9db378b41efaa1c605a37f9bccedb94d  gcc/testsuite/g++.dg/diagnostic/semicolon5.C
+ e2318061695a884542bcee0cc9651488  gcc/testsuite/g++.dg/diagnostic/semicolon6.C
+ 550530f917fc8afcf41998819224f9ce  gcc/testsuite/g++.dg/diagnostic/semicolon7.C
+ ebb39a6c6e3f7d69c68a36cb21614299  gcc/testsuite/g++.dg/diagnostic/semicolon8.C
+ fe7a7c36b09f14aa83b16b80a8baa58e  gcc/testsuite/g++.dg/diagnostic/semicolon9.C
  d625b560f030fba41078f9ffd66c536e  gcc/testsuite/g++.dg/diagnostic/signed-unsigned.C
  56b153bce2ef2880be3f566067731dc9  gcc/testsuite/g++.dg/diagnostic/static-cdtor-1.C
  b754a2ad578f67afe512ad74ff03b31f  gcc/testsuite/g++.dg/diagnostic/static_assert1.C
*************** ecb01c09c49ca387feb23a52c154974e  gcc/te
*** 21126,21143 ****
  6f7f3458ffa289e17679c8ec1f42faef  gcc/testsuite/g++.dg/diagnostic/trailing1.C
  aa6cc7f21e4a9b8011b04ea928f76027  gcc/testsuite/g++.dg/diagnostic/two-or-more-data-types-1.C
  d84401f4f10886da506d8acbdb74a1d9  gcc/testsuite/g++.dg/diagnostic/typedef-initialized.C
! 7e036e85321b20d585371bca79400c51  gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C
  41b891220463d2f235b6aafb7a120598  gcc/testsuite/g++.dg/diagnostic/unclosed-function.C
  1f7945145b6225ba6290bb000423cf46  gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C
  349d7476d1a27bd2806b8e0a3097a511  gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C
  a76cb15a146e724270d69d28ec781710  gcc/testsuite/g++.dg/diagnostic/undeclared1.C
  8acedfa33dd12637c81c13e8c3a04b40  gcc/testsuite/g++.dg/diagnostic/using1.C
  0420bcbb4f7abd68c02f908026ad1f11  gcc/testsuite/g++.dg/diagnostic/variably-modified-type-1.C
  242539537e0b01ca558d91adcac7cb35  gcc/testsuite/g++.dg/diagnostic/variadic1.C
  793d6d70a83796d613da9b245936f84c  gcc/testsuite/g++.dg/diagnostic/virtual-constexpr.C
  3739cab042ccd87763f782d59aa311ec  gcc/testsuite/g++.dg/diagnostic/virtual-friend.C
  0e5fa001ad7da0e3850de27d0c3c2661  gcc/testsuite/g++.dg/diagnostic/virtual-static.C
! c7f8ff703c53611ffdb66eccc4747879  gcc/testsuite/g++.dg/diagnostic/wrong-tag-1.C
  99f14d5ed8c140b0a7c970bb12a4c5f0  gcc/testsuite/g++.dg/eh/080514-1.C
  193547bb91302f954fd632ebd9a73abc  gcc/testsuite/g++.dg/eh/aggregate1.C
  82be37f058a4cec3d7472da4ed601f58  gcc/testsuite/g++.dg/eh/aggregate2.C
--- 22596,22614 ----
  6f7f3458ffa289e17679c8ec1f42faef  gcc/testsuite/g++.dg/diagnostic/trailing1.C
  aa6cc7f21e4a9b8011b04ea928f76027  gcc/testsuite/g++.dg/diagnostic/two-or-more-data-types-1.C
  d84401f4f10886da506d8acbdb74a1d9  gcc/testsuite/g++.dg/diagnostic/typedef-initialized.C
! b3b8b8d6146efdee7373bb3ca45694d2  gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C
  41b891220463d2f235b6aafb7a120598  gcc/testsuite/g++.dg/diagnostic/unclosed-function.C
  1f7945145b6225ba6290bb000423cf46  gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C
  349d7476d1a27bd2806b8e0a3097a511  gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C
  a76cb15a146e724270d69d28ec781710  gcc/testsuite/g++.dg/diagnostic/undeclared1.C
+ 1fb19c26bfac133fa05cd56d87dec92b  gcc/testsuite/g++.dg/diagnostic/used-inline1.C
  8acedfa33dd12637c81c13e8c3a04b40  gcc/testsuite/g++.dg/diagnostic/using1.C
  0420bcbb4f7abd68c02f908026ad1f11  gcc/testsuite/g++.dg/diagnostic/variably-modified-type-1.C
  242539537e0b01ca558d91adcac7cb35  gcc/testsuite/g++.dg/diagnostic/variadic1.C
  793d6d70a83796d613da9b245936f84c  gcc/testsuite/g++.dg/diagnostic/virtual-constexpr.C
  3739cab042ccd87763f782d59aa311ec  gcc/testsuite/g++.dg/diagnostic/virtual-friend.C
  0e5fa001ad7da0e3850de27d0c3c2661  gcc/testsuite/g++.dg/diagnostic/virtual-static.C
! 98453c55533fd5744725bbdcf509e8e4  gcc/testsuite/g++.dg/diagnostic/wrong-tag-1.C
  99f14d5ed8c140b0a7c970bb12a4c5f0  gcc/testsuite/g++.dg/eh/080514-1.C
  193547bb91302f954fd632ebd9a73abc  gcc/testsuite/g++.dg/eh/aggregate1.C
  82be37f058a4cec3d7472da4ed601f58  gcc/testsuite/g++.dg/eh/aggregate2.C
*************** c7f8ff703c53611ffdb66eccc4747879  gcc/te
*** 21146,21152 ****
  48d7d6ffdcfbf80b116c2987f4baf9f2  gcc/testsuite/g++.dg/eh/anon1a.cc
  d6a2edbc35caa25cec47fb759e313e04  gcc/testsuite/g++.dg/eh/anon2.C
  991eb7aeea02d80e000538741bcc1603  gcc/testsuite/g++.dg/eh/arm-iwmmxt-unwind.C
! 9467c9f73786a798fd398340aa3f0748  gcc/testsuite/g++.dg/eh/arm-vfp-unwind.C
  773ab6ae8270305a343dabbcc546689f  gcc/testsuite/g++.dg/eh/array1.C
  f0d5ef741ce578782aaf2af5c75f69f5  gcc/testsuite/g++.dg/eh/array2.C
  772a16028e0ff2c5a37eb8683d338bae  gcc/testsuite/g++.dg/eh/array3.C
--- 22617,22623 ----
  48d7d6ffdcfbf80b116c2987f4baf9f2  gcc/testsuite/g++.dg/eh/anon1a.cc
  d6a2edbc35caa25cec47fb759e313e04  gcc/testsuite/g++.dg/eh/anon2.C
  991eb7aeea02d80e000538741bcc1603  gcc/testsuite/g++.dg/eh/arm-iwmmxt-unwind.C
! b6bb6c21c88a2dc57f022958d9c868fb  gcc/testsuite/g++.dg/eh/arm-vfp-unwind.C
  773ab6ae8270305a343dabbcc546689f  gcc/testsuite/g++.dg/eh/array1.C
  f0d5ef741ce578782aaf2af5c75f69f5  gcc/testsuite/g++.dg/eh/array2.C
  772a16028e0ff2c5a37eb8683d338bae  gcc/testsuite/g++.dg/eh/array3.C
*************** b6cd2e012197b87e353240d0e17623e0  gcc/te
*** 21174,21180 ****
  39018f18e1fc86801376affc388c0539  gcc/testsuite/g++.dg/eh/cleanup2.C
  a779539302385f915a13ecb1283ac58c  gcc/testsuite/g++.dg/eh/cleanup3.C
  fdfb8828613e7c687d87d7facb0e2135  gcc/testsuite/g++.dg/eh/cleanup4.C
! 374e1d6aca3b77423c5ac592a57b451a  gcc/testsuite/g++.dg/eh/cleanup5.C
  d5b4d3665b9fe9add2cf30ed70aa2ebf  gcc/testsuite/g++.dg/eh/cleanup6.C
  5a4cb3c8d739e6d9bde39ba9bebd19e2  gcc/testsuite/g++.dg/eh/comdat1.C
  bd6bd3cc57144658b6137dc9123743ed  gcc/testsuite/g++.dg/eh/cond1.C
--- 22645,22651 ----
  39018f18e1fc86801376affc388c0539  gcc/testsuite/g++.dg/eh/cleanup2.C
  a779539302385f915a13ecb1283ac58c  gcc/testsuite/g++.dg/eh/cleanup3.C
  fdfb8828613e7c687d87d7facb0e2135  gcc/testsuite/g++.dg/eh/cleanup4.C
! aa6038fb3f955b6019e1a056cca60f0c  gcc/testsuite/g++.dg/eh/cleanup5.C
  d5b4d3665b9fe9add2cf30ed70aa2ebf  gcc/testsuite/g++.dg/eh/cleanup6.C
  5a4cb3c8d739e6d9bde39ba9bebd19e2  gcc/testsuite/g++.dg/eh/comdat1.C
  bd6bd3cc57144658b6137dc9123743ed  gcc/testsuite/g++.dg/eh/cond1.C
*************** a52fa6cd93c130963df8e930451d74a1  gcc/te
*** 21185,21191 ****
  e2de0bdd91c75a83e86d8e423986c99d  gcc/testsuite/g++.dg/eh/cond6.C
  43098e3dd291c59e61245771f6e306d0  gcc/testsuite/g++.dg/eh/crash1.C
  5bbc5d24a72f53288620959d714d8145  gcc/testsuite/g++.dg/eh/crash2.C
! 365a9a74302377cb0e82e7f5f1a7bca9  gcc/testsuite/g++.dg/eh/crossjump1.C
  875bba434bfc05ffdb460fdd29bcac68  gcc/testsuite/g++.dg/eh/ctor-fntry1.C
  0aa754d9c4446d12efdfc8a0736605bb  gcc/testsuite/g++.dg/eh/ctor1.C
  1ca64f6d54bb332c6c32d876edf896c0  gcc/testsuite/g++.dg/eh/ctor2.C
--- 22656,22662 ----
  e2de0bdd91c75a83e86d8e423986c99d  gcc/testsuite/g++.dg/eh/cond6.C
  43098e3dd291c59e61245771f6e306d0  gcc/testsuite/g++.dg/eh/crash1.C
  5bbc5d24a72f53288620959d714d8145  gcc/testsuite/g++.dg/eh/crash2.C
! 07399d32b126ca9b02298a9be33be10b  gcc/testsuite/g++.dg/eh/crossjump1.C
  875bba434bfc05ffdb460fdd29bcac68  gcc/testsuite/g++.dg/eh/ctor-fntry1.C
  0aa754d9c4446d12efdfc8a0736605bb  gcc/testsuite/g++.dg/eh/ctor1.C
  1ca64f6d54bb332c6c32d876edf896c0  gcc/testsuite/g++.dg/eh/ctor2.C
*************** aa45348bd5415509c3631ae2cfa5780f  gcc/te
*** 21207,21213 ****
  b0ccd0dda5f78bbdc113e7d64bcbde3c  gcc/testsuite/g++.dg/eh/elide1.C
  4a5da75795bd16f83ee0a55370fa4396  gcc/testsuite/g++.dg/eh/elide2.C
  c6ed6afa9f180a60e542789d58e23a4a  gcc/testsuite/g++.dg/eh/filter1.C
! 12090d44df12e33d62fc4a9cf4bcd257  gcc/testsuite/g++.dg/eh/filter2.C
  b9e40a9f396b0f5897d9a01a383448d0  gcc/testsuite/g++.dg/eh/forced1.C
  c57d00c7e2509174eb67af39ca23acc8  gcc/testsuite/g++.dg/eh/forced2.C
  4b47200e01435896ded16c32f5f815de  gcc/testsuite/g++.dg/eh/forced3.C
--- 22678,22684 ----
  b0ccd0dda5f78bbdc113e7d64bcbde3c  gcc/testsuite/g++.dg/eh/elide1.C
  4a5da75795bd16f83ee0a55370fa4396  gcc/testsuite/g++.dg/eh/elide2.C
  c6ed6afa9f180a60e542789d58e23a4a  gcc/testsuite/g++.dg/eh/filter1.C
! c8864a01bfa9d3a31dc930e9a74d2461  gcc/testsuite/g++.dg/eh/filter2.C
  b9e40a9f396b0f5897d9a01a383448d0  gcc/testsuite/g++.dg/eh/forced1.C
  c57d00c7e2509174eb67af39ca23acc8  gcc/testsuite/g++.dg/eh/forced2.C
  4b47200e01435896ded16c32f5f815de  gcc/testsuite/g++.dg/eh/forced3.C
*************** c8f6f4459095bf15bd799a6d96061277  gcc/te
*** 21227,21235 ****
  addd3f35897f7c52014f1e26226e9219  gcc/testsuite/g++.dg/eh/new1.C
  f30e123e5206b61bc091e205033573e1  gcc/testsuite/g++.dg/eh/new2.C
  026fc217e7b7c636fe94de98de9a0a53  gcc/testsuite/g++.dg/eh/no-exceptions1.C
  02bc77a36c6c86bb6c3fa9d05ed2ca11  gcc/testsuite/g++.dg/eh/nrv1.C
  39b82c2cef9b1e2c8c66b3ae639c6a35  gcc/testsuite/g++.dg/eh/o32-fp.C
! ee5fb539eb5e41ab9f5aa0028f011fce  gcc/testsuite/g++.dg/eh/omit-frame-pointer.C
  dfa0fe611ce9682e5de477f908c0b5c0  gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C
  b0149e5a2fbd5ae0fa0d1eb763a1f18e  gcc/testsuite/g++.dg/eh/partial1.C
  46bfc24a2e5089d869d2a1fe9868e445  gcc/testsuite/g++.dg/eh/pr112619.C
--- 22698,22707 ----
  addd3f35897f7c52014f1e26226e9219  gcc/testsuite/g++.dg/eh/new1.C
  f30e123e5206b61bc091e205033573e1  gcc/testsuite/g++.dg/eh/new2.C
  026fc217e7b7c636fe94de98de9a0a53  gcc/testsuite/g++.dg/eh/no-exceptions1.C
+ dbedf20ea0a6712255d338a4ee121758  gcc/testsuite/g++.dg/eh/noncall-fp-1.C
  02bc77a36c6c86bb6c3fa9d05ed2ca11  gcc/testsuite/g++.dg/eh/nrv1.C
  39b82c2cef9b1e2c8c66b3ae639c6a35  gcc/testsuite/g++.dg/eh/o32-fp.C
! 3d95d9d7a0f20a6119b0034fae44f278  gcc/testsuite/g++.dg/eh/omit-frame-pointer.C
  dfa0fe611ce9682e5de477f908c0b5c0  gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C
  b0149e5a2fbd5ae0fa0d1eb763a1f18e  gcc/testsuite/g++.dg/eh/partial1.C
  46bfc24a2e5089d869d2a1fe9868e445  gcc/testsuite/g++.dg/eh/pr112619.C
*************** fa076f7aee99ba9138c0541bc50c2e01  gcc/te
*** 21239,21247 ****
  4631d5d6abc748783bdb0e5f9c2e827a  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
! d38795dc5765c85251d1b51d2837fa65  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
  d2f32f42086463307f7e482ff09e2a6c  gcc/testsuite/g++.dg/eh/return1.C
  195393f174c1cbb9a64af2efb4ac325f  gcc/testsuite/g++.dg/eh/return2.C
--- 22711,22721 ----
  4631d5d6abc748783bdb0e5f9c2e827a  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
! 9c5d2920df5e7cc1662956187cc0aabc  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
+ b46c96cffc07cf2383e9beefb9dfdac5  gcc/testsuite/g++.dg/eh/ref-temp3.C
+ 9603fc46c04fe83242c168fd338e4660  gcc/testsuite/g++.dg/eh/ref-temp4.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
  d2f32f42086463307f7e482ff09e2a6c  gcc/testsuite/g++.dg/eh/return1.C
  195393f174c1cbb9a64af2efb4ac325f  gcc/testsuite/g++.dg/eh/return2.C
*************** be5af3c4aa82f74a07dbbdc316e9c02c  gcc/te
*** 21252,21259 ****
  0b7f44b1f10ab4162620a92c10798166  gcc/testsuite/g++.dg/eh/sighandle.C
  83a7ff2264ae46e51ffcca7ca6a7cf8c  gcc/testsuite/g++.dg/eh/simd-1.C
  8ca9b346be7f84c368ac74fd74ad5bbf  gcc/testsuite/g++.dg/eh/simd-2.C
! 55e1817e6d2f866b9cd25ef5751e2b9c  gcc/testsuite/g++.dg/eh/simd-3.C
! 8eaf0730198c7e8fe14a657869d38fde  gcc/testsuite/g++.dg/eh/spbp.C
  82939fb6cdaf944681687fca28788638  gcc/testsuite/g++.dg/eh/spec1.C
  3d659e64086eab4c277f68cb3479ada7  gcc/testsuite/g++.dg/eh/spec10.C
  45bfdfe42eb7ac9675e33aa8fc84d845  gcc/testsuite/g++.dg/eh/spec11.C
--- 22726,22733 ----
  0b7f44b1f10ab4162620a92c10798166  gcc/testsuite/g++.dg/eh/sighandle.C
  83a7ff2264ae46e51ffcca7ca6a7cf8c  gcc/testsuite/g++.dg/eh/simd-1.C
  8ca9b346be7f84c368ac74fd74ad5bbf  gcc/testsuite/g++.dg/eh/simd-2.C
! bc20bce8ba2a6faa713ec1cf4a07e164  gcc/testsuite/g++.dg/eh/simd-3.C
! d4607785be17ef7044b09835b608a405  gcc/testsuite/g++.dg/eh/spbp.C
  82939fb6cdaf944681687fca28788638  gcc/testsuite/g++.dg/eh/spec1.C
  3d659e64086eab4c277f68cb3479ada7  gcc/testsuite/g++.dg/eh/spec10.C
  45bfdfe42eb7ac9675e33aa8fc84d845  gcc/testsuite/g++.dg/eh/spec11.C
*************** cd999faba93661e09f1fe3a5853c2fa5  gcc/te
*** 21279,21286 ****
  7f4aab5cdb2954060fab6ebdbf157a33  gcc/testsuite/g++.dg/eh/throw2.C
  45cea983dcee48d4c249758ac270c782  gcc/testsuite/g++.dg/eh/throw3.C
  2d0c14860f41acf7377cc2d392a448aa  gcc/testsuite/g++.dg/eh/throw4.C
! d949616391e9201fe80327c74d26daf0  gcc/testsuite/g++.dg/eh/uncaught1.C
! 0a4a6e449503f9ebd41b838472d08e86  gcc/testsuite/g++.dg/eh/uncaught2.C
  99e4a259aad973b217052ad01fc8c886  gcc/testsuite/g++.dg/eh/uncaught4.C
  ed30e020c0e4d35376ab0ac8ba41cc4a  gcc/testsuite/g++.dg/eh/unexpected1.C
  0dd221086ed06eda43a00693a7ba5e7a  gcc/testsuite/g++.dg/eh/unwind-direct.C
--- 22753,22761 ----
  7f4aab5cdb2954060fab6ebdbf157a33  gcc/testsuite/g++.dg/eh/throw2.C
  45cea983dcee48d4c249758ac270c782  gcc/testsuite/g++.dg/eh/throw3.C
  2d0c14860f41acf7377cc2d392a448aa  gcc/testsuite/g++.dg/eh/throw4.C
! 4a4a4b8c52d1e5806d8cc2c43c7bd4f3  gcc/testsuite/g++.dg/eh/throw5.C
! 97f3a230ac5a2af8087883bdcee9c763  gcc/testsuite/g++.dg/eh/uncaught1.C
! edda568a5cf6b4851d36c99af042bfae  gcc/testsuite/g++.dg/eh/uncaught2.C
  99e4a259aad973b217052ad01fc8c886  gcc/testsuite/g++.dg/eh/uncaught4.C
  ed30e020c0e4d35376ab0ac8ba41cc4a  gcc/testsuite/g++.dg/eh/unexpected1.C
  0dd221086ed06eda43a00693a7ba5e7a  gcc/testsuite/g++.dg/eh/unwind-direct.C
*************** ed30e020c0e4d35376ab0ac8ba41cc4a  gcc/te
*** 21288,21299 ****
  d0664ba773ff7e78659033ad657627df  gcc/testsuite/g++.dg/eh/unwind2.C
  03f11e36f8513bd32a5ba62702e7fb8b  gcc/testsuite/g++.dg/eh/weak1-a.cc
  6cee1c23f0666712b8cdd5e226b7e4c7  gcc/testsuite/g++.dg/eh/weak1.C
! 4cf16a5e56e9a805e8cab8129d3ec12c  gcc/testsuite/g++.dg/expr/anew1.C
! c272c27e69863d4ba063be24a228ce5f  gcc/testsuite/g++.dg/expr/anew2.C
! 88cfba5bf8bdd95998bb48be16446076  gcc/testsuite/g++.dg/expr/anew3.C
! bfeb38eba4e729358fcc5f4cb5c9dd13  gcc/testsuite/g++.dg/expr/anew4.C
  c828541271559a47f4c228c8c370abe4  gcc/testsuite/g++.dg/expr/anew5.C
  b44680673370d5b57a3f488d2078f6b1  gcc/testsuite/g++.dg/expr/anew6.C
  39cb0859475193884781cf1fe587c70e  gcc/testsuite/g++.dg/expr/assign1.C
  1723ce2e07d2ea83eb69de8e2f9b8023  gcc/testsuite/g++.dg/expr/assign2.C
  4e0c5b60b2779b95727ec7ec01b7d7c7  gcc/testsuite/g++.dg/expr/bitfield1.C
--- 22763,22775 ----
  d0664ba773ff7e78659033ad657627df  gcc/testsuite/g++.dg/eh/unwind2.C
  03f11e36f8513bd32a5ba62702e7fb8b  gcc/testsuite/g++.dg/eh/weak1-a.cc
  6cee1c23f0666712b8cdd5e226b7e4c7  gcc/testsuite/g++.dg/eh/weak1.C
! b109edc15e5b5a5a8d08b9ce71acf04a  gcc/testsuite/g++.dg/expr/anew1.C
! adee13d476e733dda58cbcf1e20d9f27  gcc/testsuite/g++.dg/expr/anew2.C
! 0454e60be4c106a52ece155d6da15fef  gcc/testsuite/g++.dg/expr/anew3.C
! 667b042239990753dea4115d039ec20f  gcc/testsuite/g++.dg/expr/anew4.C
  c828541271559a47f4c228c8c370abe4  gcc/testsuite/g++.dg/expr/anew5.C
  b44680673370d5b57a3f488d2078f6b1  gcc/testsuite/g++.dg/expr/anew6.C
+ b693ea4c11f9b9fe8fb7a87d1f514dcc  gcc/testsuite/g++.dg/expr/anew7.C
  39cb0859475193884781cf1fe587c70e  gcc/testsuite/g++.dg/expr/assign1.C
  1723ce2e07d2ea83eb69de8e2f9b8023  gcc/testsuite/g++.dg/expr/assign2.C
  4e0c5b60b2779b95727ec7ec01b7d7c7  gcc/testsuite/g++.dg/expr/bitfield1.C
*************** f131cd45dc233c5c2aea409de5326ad9  gcc/te
*** 21342,21347 ****
--- 22818,22824 ----
  3d3186f9075a514cd76973d347f359da  gcc/testsuite/g++.dg/expr/cond15.C
  f3062d35c6188cd4856b89b8f6662263  gcc/testsuite/g++.dg/expr/cond16.C
  9d08ff6c739f94459e2d407b40fa5667  gcc/testsuite/g++.dg/expr/cond17.C
+ d5ea9c3fa2e535c5b8c4619216b85d73  gcc/testsuite/g++.dg/expr/cond18.C
  8b10df5612f3344d4a62c8ca3d47436f  gcc/testsuite/g++.dg/expr/cond2.C
  0ee447faae923ac2c95505c9d02aa9f9  gcc/testsuite/g++.dg/expr/cond3.C
  d30ef5af28e6363dab6713f12d513bc9  gcc/testsuite/g++.dg/expr/cond4.C
*************** bf7f67a5fc1bd44b05d5e417998e5219  gcc/te
*** 21365,21370 ****
--- 22842,22854 ----
  fd680877ab1cfa7b118501bb1e133e2a  gcc/testsuite/g++.dg/expr/enum1.C
  4d4bd4c17e114aaf9f89d2929fc74cfe  gcc/testsuite/g++.dg/expr/for1.C
  cd7f4946b61f298e733a92601139e8ef  gcc/testsuite/g++.dg/expr/for2.C
+ 18360989c3fc169b2e701dd8dfcd6899  gcc/testsuite/g++.dg/expr/for3.C
+ 10902377ab40cc355697abfa90c7693d  gcc/testsuite/g++.dg/expr/for4.C
+ e8800c3d3298f6f6b41f3e208d0ca496  gcc/testsuite/g++.dg/expr/for5.C
+ 541921263f7d54483e045b47e6105a91  gcc/testsuite/g++.dg/expr/for6.C
+ 4085af9e665070509798cb4c85b5b19e  gcc/testsuite/g++.dg/expr/for7.C
+ d3a2729557e954dd2b3b5dd834d711f7  gcc/testsuite/g++.dg/expr/for8.C
+ fd1d0df4853140248f559a02fb5137c6  gcc/testsuite/g++.dg/expr/for9.C
  a7b2ff0b7e3eb33ae39f51b9c2436899  gcc/testsuite/g++.dg/expr/incomplete1.C
  37a784f394dfd311c58877d862824189  gcc/testsuite/g++.dg/expr/lval1.C
  512351301e4c678c8c359d27dd7ef411  gcc/testsuite/g++.dg/expr/lval2.C
*************** c58cd83dba14fdd69d32822d58dce947  gcc/te
*** 21376,21381 ****
--- 22860,22866 ----
  d1d6d34f10781c55aeb5890ea6052f5e  gcc/testsuite/g++.dg/expr/pmf-1.C
  b1bfb08b8dd0886fd13d34d4e48087cc  gcc/testsuite/g++.dg/expr/pmf-2.C
  25d2470fc9b2a170d6429d0eb09ab6d3  gcc/testsuite/g++.dg/expr/pmf-3.C
+ a777585e4c5deccae4ecf9c2e334927f  gcc/testsuite/g++.dg/expr/pmf-4.C
  e0ba8ce6144da0b9ed7164d2baac70c5  gcc/testsuite/g++.dg/expr/pr19355-1.C
  60bb03281297f707f9874467907ac6cf  gcc/testsuite/g++.dg/expr/pr29066.C
  45c0fe859061b956d94f9743c51c2fa6  gcc/testsuite/g++.dg/expr/ptr-arith1.C
*************** ffd75379d11277c314a7c44c9f8a5129  gcc/te
*** 21419,21424 ****
--- 22904,22912 ----
  e639e926667ce8f9dee4e94ea0269323  gcc/testsuite/g++.dg/expr/volatile1.C
  5f6dc90ecc1bf243ae69988679b96ec4  gcc/testsuite/g++.dg/ext/80654.C
  65fb3808ee44eb4b42097f686dbf1c4e  gcc/testsuite/g++.dg/ext/90532.C
+ 4a221461dbaeefbccaa145fe9878af53  gcc/testsuite/g++.dg/ext/add_lvalue_reference.C
+ d1386dded5604122448e245dca21f0d7  gcc/testsuite/g++.dg/ext/add_pointer.C
+ 52739ea4f38937ebc792b6c53e10959b  gcc/testsuite/g++.dg/ext/add_rvalue_reference.C
  7dfd2972b1402d4103976b061d5cbcd3  gcc/testsuite/g++.dg/ext/alias-canon.C
  d36f9d49ee39bbdeb5dec24146dbdc1d  gcc/testsuite/g++.dg/ext/alias-canon2.C
  d34fa2166247314c56eb1b0cb616d3b4  gcc/testsuite/g++.dg/ext/alias-canon3.C
*************** d34fa2166247314c56eb1b0cb616d3b4  gcc/te
*** 21429,21434 ****
--- 22917,22925 ----
  b7f5975e22585a2f3d80be63f70dccc8  gcc/testsuite/g++.dg/ext/alias-mangle.C
  8086207ba3911ed58a971e642fbfdd29  gcc/testsuite/g++.dg/ext/align1.C
  9b72806f0ff8dd6bff6e2ef84f0ce102  gcc/testsuite/g++.dg/ext/align2.C
+ 5e50cf888b00812b283ba95583f839ba  gcc/testsuite/g++.dg/ext/align3.C
+ 6f7ba55f307a79d28cfb2b77f9dd371c  gcc/testsuite/g++.dg/ext/align4.C
+ 895b5a83eaa9039bd8f84a255dcb0ad1  gcc/testsuite/g++.dg/ext/align5.C
  ae6df71fd3bee2754f2c1b710ca23b88  gcc/testsuite/g++.dg/ext/alignof1.C
  c193f1254c92080bca2fd5ab48c1e175  gcc/testsuite/g++.dg/ext/alignof2.C
  644c5b82757cda2bb4ab9658b9dff77a  gcc/testsuite/g++.dg/ext/always_inline-1.C
*************** d1e93fe1d5f57febc15732f8f13ad24f  gcc/te
*** 21467,21473 ****
  28ced11f571eb53a28e366b2214b64db  gcc/testsuite/g++.dg/ext/array4.C
  d377fb4f9ef6d1ed2029c1551ddf7e3b  gcc/testsuite/g++.dg/ext/asm1.C
  82e001dc60a8f36b8affdc7210de5b60  gcc/testsuite/g++.dg/ext/asm10.C
! 25fbbf0ac13b6baebc40ebabaedfe317  gcc/testsuite/g++.dg/ext/asm11.C
  e44c9c980378260d4b601d86e9cc1197  gcc/testsuite/g++.dg/ext/asm12.C
  8a1c270f6e9e5f738069b9ac0cb76038  gcc/testsuite/g++.dg/ext/asm13.C
  b03656b1cd67c4e115686cb70664ee3b  gcc/testsuite/g++.dg/ext/asm14.C
--- 22958,22964 ----
  28ced11f571eb53a28e366b2214b64db  gcc/testsuite/g++.dg/ext/array4.C
  d377fb4f9ef6d1ed2029c1551ddf7e3b  gcc/testsuite/g++.dg/ext/asm1.C
  82e001dc60a8f36b8affdc7210de5b60  gcc/testsuite/g++.dg/ext/asm10.C
! 39c320550d14a4ec6dbdbc8fae518f5b  gcc/testsuite/g++.dg/ext/asm11.C
  e44c9c980378260d4b601d86e9cc1197  gcc/testsuite/g++.dg/ext/asm12.C
  8a1c270f6e9e5f738069b9ac0cb76038  gcc/testsuite/g++.dg/ext/asm13.C
  b03656b1cd67c4e115686cb70664ee3b  gcc/testsuite/g++.dg/ext/asm14.C
*************** e5f9fb7d1c25afe2ab0823f495d251e5  gcc/te
*** 21481,21487 ****
  0689b61a59bc7c15432dc6d704aebb9f  gcc/testsuite/g++.dg/ext/asm6.C
  8afca39f01d4d9fd0f55e2cf279c5c77  gcc/testsuite/g++.dg/ext/asm7.C
  9c3b7de14ce6ac49627b91e2808376e5  gcc/testsuite/g++.dg/ext/asm8.C
! 80820bd76c1fd511cf9092d43ccb5baf  gcc/testsuite/g++.dg/ext/asm9.C
  168fada4ecf90eb5b3e4cd3b681d8255  gcc/testsuite/g++.dg/ext/asmgoto1.C
  44f206100f55e5fc0a5d84d25bf00ce9  gcc/testsuite/g++.dg/ext/asmspec1.C
  81d7f5132402c3b9c67ba05f4d092697  gcc/testsuite/g++.dg/ext/asmspecInvalid.C
--- 22972,22978 ----
  0689b61a59bc7c15432dc6d704aebb9f  gcc/testsuite/g++.dg/ext/asm6.C
  8afca39f01d4d9fd0f55e2cf279c5c77  gcc/testsuite/g++.dg/ext/asm7.C
  9c3b7de14ce6ac49627b91e2808376e5  gcc/testsuite/g++.dg/ext/asm8.C
! c575140d63a8f4e0709abd1d416b4371  gcc/testsuite/g++.dg/ext/asm9.C
  168fada4ecf90eb5b3e4cd3b681d8255  gcc/testsuite/g++.dg/ext/asmgoto1.C
  44f206100f55e5fc0a5d84d25bf00ce9  gcc/testsuite/g++.dg/ext/asmspec1.C
  81d7f5132402c3b9c67ba05f4d092697  gcc/testsuite/g++.dg/ext/asmspecInvalid.C
*************** aa0f4c78aad650ce464c5b577e8460de  gcc/te
*** 21512,21517 ****
--- 23003,23009 ----
  1572650153b820f3c9451d6bd17e3057  gcc/testsuite/g++.dg/ext/attr-format1.C
  8fe7898f5abe9400c110a95fab49fda6  gcc/testsuite/g++.dg/ext/attr-format2.C
  69eb1d1ddd3db6af8659f02bb2bdf1d5  gcc/testsuite/g++.dg/ext/attr-format3.C
+ 8f0d3bcbe70ef33236ab5f3d1f85006d  gcc/testsuite/g++.dg/ext/attr-format4.C
  15f833ff6cc5435034211a38b2ea30ed  gcc/testsuite/g++.dg/ext/attr-hotness.C
  05a897b022b2892abfd4bc74855a0921  gcc/testsuite/g++.dg/ext/attr-ifunc-1.C
  f6a0b8c7b4c6f39da51366edee2ee37f  gcc/testsuite/g++.dg/ext/attr-ifunc-2.C
*************** a30107bfcab6efaa41ebcfe3f43992ae  gcc/te
*** 21529,21538 ****
  acc1d7954900c420763ff211709670d4  gcc/testsuite/g++.dg/ext/attr-no-dangling3.C
  569338dea924ce80217e1ca0e92ea57d  gcc/testsuite/g++.dg/ext/attr-no-dangling4.C
  e8812aaadec12fdc045edfcd902e4b4d  gcc/testsuite/g++.dg/ext/attr-no-dangling5.C
! 1e79e0293d621745dedc11c95eacd86f  gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
! c40ff9bedf0af230b9da3c5eaa9965bd  gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
! 33372973ef0a50cada0b36b1c8d53cd5  gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
! d4659f35e6004cd98620e8559e921a79  gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
  e838465650dcaf4ebfc99419e88cbd0d  gcc/testsuite/g++.dg/ext/attr-noinline-2.C
  b37c917c3a9e6449d44ee2d37a652ed1  gcc/testsuite/g++.dg/ext/attr-noinline-3.C
  c0753527e7e02acfc0eb52c0c85b43ad  gcc/testsuite/g++.dg/ext/attr-noinline-4.C
--- 23021,23030 ----
  acc1d7954900c420763ff211709670d4  gcc/testsuite/g++.dg/ext/attr-no-dangling3.C
  569338dea924ce80217e1ca0e92ea57d  gcc/testsuite/g++.dg/ext/attr-no-dangling4.C
  e8812aaadec12fdc045edfcd902e4b4d  gcc/testsuite/g++.dg/ext/attr-no-dangling5.C
! d9c9d8a7518043a8a965466d7b96aeec  gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
! ef7a27eaaae64ee5c9641d464b68f702  gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
! d01dc066f08eb46dfbd8ce4a0087aa6d  gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
! 11a017757097a96b6a5dce363a372449  gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
  e838465650dcaf4ebfc99419e88cbd0d  gcc/testsuite/g++.dg/ext/attr-noinline-2.C
  b37c917c3a9e6449d44ee2d37a652ed1  gcc/testsuite/g++.dg/ext/attr-noinline-3.C
  c0753527e7e02acfc0eb52c0c85b43ad  gcc/testsuite/g++.dg/ext/attr-noinline-4.C
*************** ed7c739de707916f3c9f5cc4c86b846a  gcc/te
*** 21560,21565 ****
--- 23052,23058 ----
  363318401f6c24d1fd4eb4b1352223b5  gcc/testsuite/g++.dg/ext/attr-unavailable-10.C
  dcdd1affde3b96d5073c02e9962a3e1f  gcc/testsuite/g++.dg/ext/attr-unavailable-11.C
  22f074679ac3f73f79780146237e49d7  gcc/testsuite/g++.dg/ext/attr-unavailable-12.C
+ b813499357caf8cdbe9a29e67e87622f  gcc/testsuite/g++.dg/ext/attr-unavailable-13.C
  edbfa498035679b0c1142cf98ca9e622  gcc/testsuite/g++.dg/ext/attr-unavailable-2.C
  4e90e81502c480379e69d6b0b0b238aa  gcc/testsuite/g++.dg/ext/attr-unavailable-3.C
  5403ddd4b93109633d19e176e484580f  gcc/testsuite/g++.dg/ext/attr-unavailable-4.C
*************** edbfa498035679b0c1142cf98ca9e622  gcc/te
*** 21568,21573 ****
--- 23061,23067 ----
  422148e5f44383a4df8e2cae532f1eba  gcc/testsuite/g++.dg/ext/attr-unavailable-7.C
  4eae5dbc8f3affa7dfd6b3de039701cd  gcc/testsuite/g++.dg/ext/attr-unavailable-8.C
  1fa294104487a6c17fe32437c2d67db6  gcc/testsuite/g++.dg/ext/attr-unavailable-9.C
+ 6b0fe045ef355df7f01117fe058f5f92  gcc/testsuite/g++.dg/ext/attr-unsequenced-1.C
  5c2088defb983e68f4b6df2ee178d499  gcc/testsuite/g++.dg/ext/attr-used-1.C
  9c0d6d667a50a66a3885e9b069750b72  gcc/testsuite/g++.dg/ext/attr-used-2.C
  758b042dd0d19638f99e51139b65df3d  gcc/testsuite/g++.dg/ext/attr-warning.C
*************** f78a1283d2d4da5ad85040e153e6ee99  gcc/te
*** 21597,21603 ****
  e44d460202c349fcf4bb0de15b410685  gcc/testsuite/g++.dg/ext/attrib30.C
  871bf59c89d9fdf913b212ba40c878a1  gcc/testsuite/g++.dg/ext/attrib31.C
  ffa6560e9bf74deea2432205818736ea  gcc/testsuite/g++.dg/ext/attrib32.C
! 14f34254af296859ff097c2fd17c41ff  gcc/testsuite/g++.dg/ext/attrib33.C
  35fe2d1913ea5e1a7513b62674f89d20  gcc/testsuite/g++.dg/ext/attrib34.C
  d565544bc9cdd84f0740d250884ccd53  gcc/testsuite/g++.dg/ext/attrib35.C
  3a70efd2f6593572ae9fb617a5b327c9  gcc/testsuite/g++.dg/ext/attrib36.C
--- 23091,23097 ----
  e44d460202c349fcf4bb0de15b410685  gcc/testsuite/g++.dg/ext/attrib30.C
  871bf59c89d9fdf913b212ba40c878a1  gcc/testsuite/g++.dg/ext/attrib31.C
  ffa6560e9bf74deea2432205818736ea  gcc/testsuite/g++.dg/ext/attrib32.C
! 9e5cfb5e09f68174ce9a4c4375dd446a  gcc/testsuite/g++.dg/ext/attrib33.C
  35fe2d1913ea5e1a7513b62674f89d20  gcc/testsuite/g++.dg/ext/attrib34.C
  d565544bc9cdd84f0740d250884ccd53  gcc/testsuite/g++.dg/ext/attrib35.C
  3a70efd2f6593572ae9fb617a5b327c9  gcc/testsuite/g++.dg/ext/attrib36.C
*************** e9c8686674fcb227f6d617dace6be79d  gcc/te
*** 21648,21654 ****
  e2de938850cd9962c18c0007baaec934  gcc/testsuite/g++.dg/ext/attribute-test-2.C
  6ed72516e9f4d78a022f1835bdb61857  gcc/testsuite/g++.dg/ext/attribute-test-3.C
  fc54da8c09474e6aa630170df92c6131  gcc/testsuite/g++.dg/ext/attribute-test-4.C
! eaf75750cddfa9e45aeb6ff3b41b6de2  gcc/testsuite/g++.dg/ext/bases.C
  04ec7dfbe34b1cf4d456d6205af4fb8f  gcc/testsuite/g++.dg/ext/bases2.C
  d50bde0e4438bca5f499291e8e266e7c  gcc/testsuite/g++.dg/ext/bases3.C
  541b1b0a262e2b932accd940c0ab744f  gcc/testsuite/g++.dg/ext/bitfield1.C
--- 23142,23148 ----
  e2de938850cd9962c18c0007baaec934  gcc/testsuite/g++.dg/ext/attribute-test-2.C
  6ed72516e9f4d78a022f1835bdb61857  gcc/testsuite/g++.dg/ext/attribute-test-3.C
  fc54da8c09474e6aa630170df92c6131  gcc/testsuite/g++.dg/ext/attribute-test-4.C
! 54a6d69d3d39ccc68f91dfc0820e6059  gcc/testsuite/g++.dg/ext/bases.C
  04ec7dfbe34b1cf4d456d6205af4fb8f  gcc/testsuite/g++.dg/ext/bases2.C
  d50bde0e4438bca5f499291e8e266e7c  gcc/testsuite/g++.dg/ext/bases3.C
  541b1b0a262e2b932accd940c0ab744f  gcc/testsuite/g++.dg/ext/bitfield1.C
*************** c96e03b84c7e1cbbeb5d28b361467e3f  gcc/te
*** 21659,21667 ****
  dcb61316c0f1ade91e6e2073e223bb73  gcc/testsuite/g++.dg/ext/bitfield6.C
  0bb7d7fb8e7941c2b887e97c4e4eaeee  gcc/testsuite/g++.dg/ext/bitfield7.C
  2a578b0c3d2d59e741cf5ff41b1559a2  gcc/testsuite/g++.dg/ext/bitfield8.C
! aee0568fa7f966a2398438c01e48d5d8  gcc/testsuite/g++.dg/ext/bitfield9.C
! b5bb0332e7eaa4be8229d736ebe8683d  gcc/testsuite/g++.dg/ext/bitint1.C
! 5b6603df8488e772f2d00f65405633fb  gcc/testsuite/g++.dg/ext/bitint2.C
  93208b12653ce86fd5a5837ef127d83e  gcc/testsuite/g++.dg/ext/bitint3.C
  8aadb16b7d953d5fa43cb4e8525aa601  gcc/testsuite/g++.dg/ext/bitint4.C
  1371f46aed56d32c7b6433596ea7eacf  gcc/testsuite/g++.dg/ext/boolcomplex-1.C
--- 23153,23161 ----
  dcb61316c0f1ade91e6e2073e223bb73  gcc/testsuite/g++.dg/ext/bitfield6.C
  0bb7d7fb8e7941c2b887e97c4e4eaeee  gcc/testsuite/g++.dg/ext/bitfield7.C
  2a578b0c3d2d59e741cf5ff41b1559a2  gcc/testsuite/g++.dg/ext/bitfield8.C
! 91527803142438c7c311f626619d9630  gcc/testsuite/g++.dg/ext/bitfield9.C
! 67a6754d515a81191219a8eca6d9556b  gcc/testsuite/g++.dg/ext/bitint1.C
! 801b97082217dffdfae6b29419bcca29  gcc/testsuite/g++.dg/ext/bitint2.C
  93208b12653ce86fd5a5837ef127d83e  gcc/testsuite/g++.dg/ext/bitint3.C
  8aadb16b7d953d5fa43cb4e8525aa601  gcc/testsuite/g++.dg/ext/bitint4.C
  1371f46aed56d32c7b6433596ea7eacf  gcc/testsuite/g++.dg/ext/boolcomplex-1.C
*************** e365f8ad6640a0436ca0135ba83acfe3  gcc/te
*** 21676,21696 ****
  361742fc6ad7fab43786bb8676128e52  gcc/testsuite/g++.dg/ext/builtin-dynamic-object-size2.C
  85ee2bb51775678716017f28fed495b0  gcc/testsuite/g++.dg/ext/builtin-has-attribute.C
  282c952c379da688cac62d8eceee8d16  gcc/testsuite/g++.dg/ext/builtin-has-attribute2.C
! 28c9dbe7fd0321641cd617b67234b425  gcc/testsuite/g++.dg/ext/builtin-line1.C
  1fb3cd23a1cc4662177143c94dfd9ee5  gcc/testsuite/g++.dg/ext/builtin-object-size1.C
! 0844ebe6216535744d339f58611b5d2d  gcc/testsuite/g++.dg/ext/builtin-object-size2.C
  dc55e7eba1b2185bc5a3bc7222592855  gcc/testsuite/g++.dg/ext/builtin-object-size3.C
  6e22b34f1a6ac902cba4ecdeb7804089  gcc/testsuite/g++.dg/ext/builtin-offsetof1.C
  681316b793aa237fc32be0fdfa11fd84  gcc/testsuite/g++.dg/ext/builtin-offsetof2.C
  03868b51a83cebe5d5cb047444c07075  gcc/testsuite/g++.dg/ext/builtin-offsetof3.C
  6dd1a0154e492bdda77cc9611fe7f88a  gcc/testsuite/g++.dg/ext/builtin-offsetof4.C
  90c76b7602f9d89b58c1fef8b457695e  gcc/testsuite/g++.dg/ext/builtin-shufflevector-1.C
  af019eee15e37fe7fad2b4c7a1a60836  gcc/testsuite/g++.dg/ext/builtin-shufflevector-2.C
  6fe972cece2d8f6c59ec8928b18ac781  gcc/testsuite/g++.dg/ext/builtin-shufflevector-3.C
  32b975789c82ba65263ea00026cba0f6  gcc/testsuite/g++.dg/ext/builtin-shufflevector-4.C
  223752721fd2dce34453214d206c4038  gcc/testsuite/g++.dg/ext/builtin-shufflevector-5.C
  2688425f4bb09561395ab602acbbe5c1  gcc/testsuite/g++.dg/ext/builtin1.C
! 913f9cc9acadced31bfe1ff51190752e  gcc/testsuite/g++.dg/ext/builtin10.C
  0159469d5f1eba2e6013c4c9e15f33ea  gcc/testsuite/g++.dg/ext/builtin11.C
  37c90bd75d238839255f0ee41d62aaab  gcc/testsuite/g++.dg/ext/builtin12.C
  37b1b92015b909a10a6517be87a9172f  gcc/testsuite/g++.dg/ext/builtin13.C
--- 23170,23193 ----
  361742fc6ad7fab43786bb8676128e52  gcc/testsuite/g++.dg/ext/builtin-dynamic-object-size2.C
  85ee2bb51775678716017f28fed495b0  gcc/testsuite/g++.dg/ext/builtin-has-attribute.C
  282c952c379da688cac62d8eceee8d16  gcc/testsuite/g++.dg/ext/builtin-has-attribute2.C
! b9441184e175222eaa316648d11b9872  gcc/testsuite/g++.dg/ext/builtin-line1.C
  1fb3cd23a1cc4662177143c94dfd9ee5  gcc/testsuite/g++.dg/ext/builtin-object-size1.C
! 32320eb7df5383bf1045b8b62f3b6421  gcc/testsuite/g++.dg/ext/builtin-object-size2.C
  dc55e7eba1b2185bc5a3bc7222592855  gcc/testsuite/g++.dg/ext/builtin-object-size3.C
  6e22b34f1a6ac902cba4ecdeb7804089  gcc/testsuite/g++.dg/ext/builtin-offsetof1.C
  681316b793aa237fc32be0fdfa11fd84  gcc/testsuite/g++.dg/ext/builtin-offsetof2.C
  03868b51a83cebe5d5cb047444c07075  gcc/testsuite/g++.dg/ext/builtin-offsetof3.C
  6dd1a0154e492bdda77cc9611fe7f88a  gcc/testsuite/g++.dg/ext/builtin-offsetof4.C
+ b157cde57efb12410a262d4fa2d6460f  gcc/testsuite/g++.dg/ext/builtin-operator-new-1.C
+ 5e1b7cfbddea26f2d62988a1bd3765b9  gcc/testsuite/g++.dg/ext/builtin-operator-new-2.C
+ a040883dff6b42441bc6d79d43bd85d4  gcc/testsuite/g++.dg/ext/builtin-operator-new-3.C
  90c76b7602f9d89b58c1fef8b457695e  gcc/testsuite/g++.dg/ext/builtin-shufflevector-1.C
  af019eee15e37fe7fad2b4c7a1a60836  gcc/testsuite/g++.dg/ext/builtin-shufflevector-2.C
  6fe972cece2d8f6c59ec8928b18ac781  gcc/testsuite/g++.dg/ext/builtin-shufflevector-3.C
  32b975789c82ba65263ea00026cba0f6  gcc/testsuite/g++.dg/ext/builtin-shufflevector-4.C
  223752721fd2dce34453214d206c4038  gcc/testsuite/g++.dg/ext/builtin-shufflevector-5.C
  2688425f4bb09561395ab602acbbe5c1  gcc/testsuite/g++.dg/ext/builtin1.C
! 98144b066e434870194391993772ca2d  gcc/testsuite/g++.dg/ext/builtin10.C
  0159469d5f1eba2e6013c4c9e15f33ea  gcc/testsuite/g++.dg/ext/builtin11.C
  37c90bd75d238839255f0ee41d62aaab  gcc/testsuite/g++.dg/ext/builtin12.C
  37b1b92015b909a10a6517be87a9172f  gcc/testsuite/g++.dg/ext/builtin13.C
*************** b7c9d67e055f43c68752eb5dee97ef5b  gcc/te
*** 21704,21710 ****
  f75543f5ea1a62d2e49f182ac3ff8f36  gcc/testsuite/g++.dg/ext/builtin7.C
  f5cd77399383b76230ff688140e0b73d  gcc/testsuite/g++.dg/ext/builtin8.C
  9ec34b90151fc823df34413d59729df4  gcc/testsuite/g++.dg/ext/builtin9.C
! a9cd378eba00fd2f7b0c4a161bc3526f  gcc/testsuite/g++.dg/ext/builtin_alloca.C
  0a04688863e54199c13aef02e6227eb3  gcc/testsuite/g++.dg/ext/c99struct1.C
  ea8708497444a8e8d07b540409207c48  gcc/testsuite/g++.dg/ext/case-range1.C
  15cc37625c11442cc0af446e56566bb1  gcc/testsuite/g++.dg/ext/case-range2.C
--- 23201,23207 ----
  f75543f5ea1a62d2e49f182ac3ff8f36  gcc/testsuite/g++.dg/ext/builtin7.C
  f5cd77399383b76230ff688140e0b73d  gcc/testsuite/g++.dg/ext/builtin8.C
  9ec34b90151fc823df34413d59729df4  gcc/testsuite/g++.dg/ext/builtin9.C
! a03f28dbee8bbe4b3aae35ce8f6a66f2  gcc/testsuite/g++.dg/ext/builtin_alloca.C
  0a04688863e54199c13aef02e6227eb3  gcc/testsuite/g++.dg/ext/c99struct1.C
  ea8708497444a8e8d07b540409207c48  gcc/testsuite/g++.dg/ext/case-range1.C
  15cc37625c11442cc0af446e56566bb1  gcc/testsuite/g++.dg/ext/case-range2.C
*************** cfa7768f73d42eab36aac87a1590768a  gcc/te
*** 21737,21757 ****
  0b80df1346518476f3a4df23a3dd9433  gcc/testsuite/g++.dg/ext/char8_t-udl-1.C
  76a79bbe0ac6573e4fc94dc96922d483  gcc/testsuite/g++.dg/ext/char8_t-udl-2.C
  0c56ff67a69ab8b3f9882da4e899114e  gcc/testsuite/g++.dg/ext/cleanup-1.C
! 1cbcac6d3f7b0fb5c37a36a05943edd3  gcc/testsuite/g++.dg/ext/cleanup-10.C
! 6a31c6f005d848df7b29b4df64c898b4  gcc/testsuite/g++.dg/ext/cleanup-11.C
  b225423f348683bb99a438ddffd8532e  gcc/testsuite/g++.dg/ext/cleanup-2.C
  8947a9ede099a6adc4fdf950293341b9  gcc/testsuite/g++.dg/ext/cleanup-3.C
  95a700f1b361b8b7247dd036428905d7  gcc/testsuite/g++.dg/ext/cleanup-4.C
! 1309e668249e2122a3a61a96dc4db3dd  gcc/testsuite/g++.dg/ext/cleanup-5.C
  d9e45b781a97ee5ac71b788011eae52c  gcc/testsuite/g++.dg/ext/cleanup-6.C
! fc9e1cc0855f665bacefa1b241de30ef  gcc/testsuite/g++.dg/ext/cleanup-8.C
! a0c742e6de13ed3078a1cafe0cfbeb58  gcc/testsuite/g++.dg/ext/cleanup-9.C
  c710ca5bf9dfd62c6681f4709fc4d90a  gcc/testsuite/g++.dg/ext/cleanup-dtor.C
  15f53dad7ebd6c04a3f9232631c7a032  gcc/testsuite/g++.dg/ext/complex1.C
  cae7130650411ec19351e5b37b31f71a  gcc/testsuite/g++.dg/ext/complex10.C
  756c2a4b372550f3325f3e64e36de6a3  gcc/testsuite/g++.dg/ext/complex2.C
  fc4c3dfc15df590705add4def1833513  gcc/testsuite/g++.dg/ext/complex3.C
! 35b7aa6c0d6fc7e40536c9546a810234  gcc/testsuite/g++.dg/ext/complex4.C
  053ce94c0ccf34dd5d9b0e28fb917d9b  gcc/testsuite/g++.dg/ext/complex5.C
  468b75000e57b0b297306048d98bbfcd  gcc/testsuite/g++.dg/ext/complex6.C
  a2e70aa0695a209f89997a3a585cda4e  gcc/testsuite/g++.dg/ext/complex7.C
--- 23234,23254 ----
  0b80df1346518476f3a4df23a3dd9433  gcc/testsuite/g++.dg/ext/char8_t-udl-1.C
  76a79bbe0ac6573e4fc94dc96922d483  gcc/testsuite/g++.dg/ext/char8_t-udl-2.C
  0c56ff67a69ab8b3f9882da4e899114e  gcc/testsuite/g++.dg/ext/cleanup-1.C
! 5a464acd12e7960eb43cc4bb3403eaac  gcc/testsuite/g++.dg/ext/cleanup-10.C
! dd14be248f9151ae61da8ca154317722  gcc/testsuite/g++.dg/ext/cleanup-11.C
  b225423f348683bb99a438ddffd8532e  gcc/testsuite/g++.dg/ext/cleanup-2.C
  8947a9ede099a6adc4fdf950293341b9  gcc/testsuite/g++.dg/ext/cleanup-3.C
  95a700f1b361b8b7247dd036428905d7  gcc/testsuite/g++.dg/ext/cleanup-4.C
! 44c257ff8fa8bd9576f00fa64c3ac2e1  gcc/testsuite/g++.dg/ext/cleanup-5.C
  d9e45b781a97ee5ac71b788011eae52c  gcc/testsuite/g++.dg/ext/cleanup-6.C
! 0545b67edfc70f4e1edd36f67c7ac188  gcc/testsuite/g++.dg/ext/cleanup-8.C
! 01051dbcf30fc93199c474358df2c744  gcc/testsuite/g++.dg/ext/cleanup-9.C
  c710ca5bf9dfd62c6681f4709fc4d90a  gcc/testsuite/g++.dg/ext/cleanup-dtor.C
  15f53dad7ebd6c04a3f9232631c7a032  gcc/testsuite/g++.dg/ext/complex1.C
  cae7130650411ec19351e5b37b31f71a  gcc/testsuite/g++.dg/ext/complex10.C
  756c2a4b372550f3325f3e64e36de6a3  gcc/testsuite/g++.dg/ext/complex2.C
  fc4c3dfc15df590705add4def1833513  gcc/testsuite/g++.dg/ext/complex3.C
! f2a0d4f3358f77afd4f6a9a0dd45ac15  gcc/testsuite/g++.dg/ext/complex4.C
  053ce94c0ccf34dd5d9b0e28fb917d9b  gcc/testsuite/g++.dg/ext/complex5.C
  468b75000e57b0b297306048d98bbfcd  gcc/testsuite/g++.dg/ext/complex6.C
  a2e70aa0695a209f89997a3a585cda4e  gcc/testsuite/g++.dg/ext/complex7.C
*************** b1566206f932f28f1735fbaf347ef172  gcc/te
*** 21793,21798 ****
--- 23290,23297 ----
  356f009d32e7c4d124b9aff9f08aa85b  gcc/testsuite/g++.dg/ext/conv1.C
  3bb50ee395de79dadc26789478a32775  gcc/testsuite/g++.dg/ext/conv2.C
  e31f52726c2ed8b87c4299ff89887ff0  gcc/testsuite/g++.dg/ext/conv3.C
+ 394e7305add9f50ea57f5adcd9de0d8c  gcc/testsuite/g++.dg/ext/decay.C
+ 29f600ff9683443a16eb7f3abef891bc  gcc/testsuite/g++.dg/ext/decay1.C
  23a3636722151d503a22f1be497277f0  gcc/testsuite/g++.dg/ext/deprecate-1.C
  d7e31c37139238d965ce29bfb25cd3ce  gcc/testsuite/g++.dg/ext/deprecate-2.C
  739dd1176941bfc4e49f4d7f144da1d3  gcc/testsuite/g++.dg/ext/desig1.C
*************** fd3b6665cd27a15dcd7f9f07ad53481e  gcc/te
*** 21831,21838 ****
--- 23330,23340 ----
  2b3beeb98e4629b876a5c9e1613b55ec  gcc/testsuite/g++.dg/ext/dllimport7.C
  619d91e2e14d184184e55b956ce47635  gcc/testsuite/g++.dg/ext/dllimport8.C
  24e046aee349bd5ae33e22cd21cdfce5  gcc/testsuite/g++.dg/ext/dllimport9.C
+ 112d3ae3e0b07b161ecc1e3b8589d2a7  gcc/testsuite/g++.dg/ext/fimplicit-constexpr1.C
  dba2df84120e79d3695ac23fcaa36a96  gcc/testsuite/g++.dg/ext/fixed1.C
  2dec269695cc75bd9f6561ca76c86464  gcc/testsuite/g++.dg/ext/fixed2.C
+ 1ba652ee6da42059023b5a0246a664e8  gcc/testsuite/g++.dg/ext/flex-array-counted-by-2.C
+ 0f578c6307a026efc1be061d0cd4df6b  gcc/testsuite/g++.dg/ext/flex-array-counted-by.C
  88af3feecdd9869b201068a709831a35  gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C
  31f2a2b3f054574d84fef409981d9033  gcc/testsuite/g++.dg/ext/flexarray-mangle.C
  ca9543e463f123a856578c47bddac0fd  gcc/testsuite/g++.dg/ext/flexarray-subst.C
*************** ca9543e463f123a856578c47bddac0fd  gcc/te
*** 21840,21853 ****
  c0dc41d4a72302e0ac9ef29725c83d30  gcc/testsuite/g++.dg/ext/flexary1.C
  dd7550889cf0d41c9400551794f8692d  gcc/testsuite/g++.dg/ext/flexary10.C
  0b124f63dabdd2f90b8c042c8a233bf5  gcc/testsuite/g++.dg/ext/flexary11.C
! 6a5488720de549743f03ad256dcef6d0  gcc/testsuite/g++.dg/ext/flexary12.C
  cf37bcc8d91bd2f17724afd65572f20f  gcc/testsuite/g++.dg/ext/flexary13.C
  2ea7dcbe16574519f66a2d3f21059b8d  gcc/testsuite/g++.dg/ext/flexary14.C
  05fe822b180be902095b4ddaaa5dfc5e  gcc/testsuite/g++.dg/ext/flexary15.C
  210a2b48daeaa3ac9f1e524b6ea66a8c  gcc/testsuite/g++.dg/ext/flexary16.C
  d8b254d6bddd1ae14566066ddacc1992  gcc/testsuite/g++.dg/ext/flexary18.C
! 8efb2d6774534dd8fdf6746e4e639d04  gcc/testsuite/g++.dg/ext/flexary19.C
! fa0fdbfe242e37c8962c867f656e7e36  gcc/testsuite/g++.dg/ext/flexary2.C
  52fdfd9d508430ef4be1268bb10354c9  gcc/testsuite/g++.dg/ext/flexary20.C
  94b22123d659a86e1e6e93f68598b7f5  gcc/testsuite/g++.dg/ext/flexary21.C
  3348bb484eb10054eb07c59ba6c7b9e5  gcc/testsuite/g++.dg/ext/flexary22.C
--- 23342,23355 ----
  c0dc41d4a72302e0ac9ef29725c83d30  gcc/testsuite/g++.dg/ext/flexary1.C
  dd7550889cf0d41c9400551794f8692d  gcc/testsuite/g++.dg/ext/flexary10.C
  0b124f63dabdd2f90b8c042c8a233bf5  gcc/testsuite/g++.dg/ext/flexary11.C
! 6b2ab657767b6433478cae570398b782  gcc/testsuite/g++.dg/ext/flexary12.C
  cf37bcc8d91bd2f17724afd65572f20f  gcc/testsuite/g++.dg/ext/flexary13.C
  2ea7dcbe16574519f66a2d3f21059b8d  gcc/testsuite/g++.dg/ext/flexary14.C
  05fe822b180be902095b4ddaaa5dfc5e  gcc/testsuite/g++.dg/ext/flexary15.C
  210a2b48daeaa3ac9f1e524b6ea66a8c  gcc/testsuite/g++.dg/ext/flexary16.C
  d8b254d6bddd1ae14566066ddacc1992  gcc/testsuite/g++.dg/ext/flexary18.C
! d6b618f1fdef220b9aad06969a397a0c  gcc/testsuite/g++.dg/ext/flexary19.C
! cd8924ad544071a4591abc993f327f19  gcc/testsuite/g++.dg/ext/flexary2.C
  52fdfd9d508430ef4be1268bb10354c9  gcc/testsuite/g++.dg/ext/flexary20.C
  94b22123d659a86e1e6e93f68598b7f5  gcc/testsuite/g++.dg/ext/flexary21.C
  3348bb484eb10054eb07c59ba6c7b9e5  gcc/testsuite/g++.dg/ext/flexary22.C
*************** c40a26618938bc351d739abd8b281498  gcc/te
*** 21858,21881 ****
  975001b389e49c31b484e83e1162654c  gcc/testsuite/g++.dg/ext/flexary27.C
  c1e635c954030e7a49c5a15d469f0933  gcc/testsuite/g++.dg/ext/flexary28.C
  5c2fc219d05907c7454763144bfc464d  gcc/testsuite/g++.dg/ext/flexary29.C
! 5856020cf5487180f5f3f6e685e229bc  gcc/testsuite/g++.dg/ext/flexary3.C
  4a3b7f4deda6d57018846db88d1d2c1e  gcc/testsuite/g++.dg/ext/flexary30.C
  6543d0e6126e4382512d15ed3c0df76d  gcc/testsuite/g++.dg/ext/flexary31.C
  3622bd11de543347af7ad43a5ee1530d  gcc/testsuite/g++.dg/ext/flexary32.C
  74f6c053c0114f2642098943985dd99c  gcc/testsuite/g++.dg/ext/flexary33.C
  b2c60991d5b6f21b7202a6d5a7c81412  gcc/testsuite/g++.dg/ext/flexary34.C
  17026c219335daa904b63aabf2ba8120  gcc/testsuite/g++.dg/ext/flexary35.C
! da96fc262f063d29280b10e42245318e  gcc/testsuite/g++.dg/ext/flexary36.C
  85a83d39e1773a504a4c9ba024b9a6b9  gcc/testsuite/g++.dg/ext/flexary37.C
  bdc1e53895229e84f994524314021292  gcc/testsuite/g++.dg/ext/flexary38.C
  e3abdb563edb7ccc89af09138c07030d  gcc/testsuite/g++.dg/ext/flexary39.C
! 7c5aa9e0bd6655b7c3b04f320d67e736  gcc/testsuite/g++.dg/ext/flexary4.C
  7b20dd05a975dd9f5eda50838835ac7c  gcc/testsuite/g++.dg/ext/flexary40.C
! 55d07993cbe972abdb053af6f481f34e  gcc/testsuite/g++.dg/ext/flexary5.C
  992897ce6ded0ffee198a5cf85775530  gcc/testsuite/g++.dg/ext/flexary6.C
  df64a969f76ad8dba013343925441866  gcc/testsuite/g++.dg/ext/flexary7.C
! dc0f6d2e287df005968bcbfef6e1f59b  gcc/testsuite/g++.dg/ext/flexary8.C
! f1a1efb795966f0001d11e67610fb784  gcc/testsuite/g++.dg/ext/flexary9.C
  b00280f53981a2f30c8d4b894c33962c  gcc/testsuite/g++.dg/ext/fnname1.C
  a06d181d1f37ed4bbf17112c988f9608  gcc/testsuite/g++.dg/ext/fnname2.C
  9e62aa095a73cd8f1f5e3c31669594cd  gcc/testsuite/g++.dg/ext/fnname3.C
--- 23360,23385 ----
  975001b389e49c31b484e83e1162654c  gcc/testsuite/g++.dg/ext/flexary27.C
  c1e635c954030e7a49c5a15d469f0933  gcc/testsuite/g++.dg/ext/flexary28.C
  5c2fc219d05907c7454763144bfc464d  gcc/testsuite/g++.dg/ext/flexary29.C
! 2c6d6a7bb83e1dccd6cd2534347c4e32  gcc/testsuite/g++.dg/ext/flexary3.C
  4a3b7f4deda6d57018846db88d1d2c1e  gcc/testsuite/g++.dg/ext/flexary30.C
  6543d0e6126e4382512d15ed3c0df76d  gcc/testsuite/g++.dg/ext/flexary31.C
  3622bd11de543347af7ad43a5ee1530d  gcc/testsuite/g++.dg/ext/flexary32.C
  74f6c053c0114f2642098943985dd99c  gcc/testsuite/g++.dg/ext/flexary33.C
  b2c60991d5b6f21b7202a6d5a7c81412  gcc/testsuite/g++.dg/ext/flexary34.C
  17026c219335daa904b63aabf2ba8120  gcc/testsuite/g++.dg/ext/flexary35.C
! 877a48605b6e6963934e1f6235f9233d  gcc/testsuite/g++.dg/ext/flexary36.C
  85a83d39e1773a504a4c9ba024b9a6b9  gcc/testsuite/g++.dg/ext/flexary37.C
  bdc1e53895229e84f994524314021292  gcc/testsuite/g++.dg/ext/flexary38.C
  e3abdb563edb7ccc89af09138c07030d  gcc/testsuite/g++.dg/ext/flexary39.C
! 7fff86f7dfb5210c40026c78697200e0  gcc/testsuite/g++.dg/ext/flexary4.C
  7b20dd05a975dd9f5eda50838835ac7c  gcc/testsuite/g++.dg/ext/flexary40.C
! 4fc22a5841ffba130c1a53f5fda56d6d  gcc/testsuite/g++.dg/ext/flexary41.C
! 07854b3074db2ef67a60726566b41ca4  gcc/testsuite/g++.dg/ext/flexary42.C
! 0efa8706093a359dde24f6da7461a9b9  gcc/testsuite/g++.dg/ext/flexary5.C
  992897ce6ded0ffee198a5cf85775530  gcc/testsuite/g++.dg/ext/flexary6.C
  df64a969f76ad8dba013343925441866  gcc/testsuite/g++.dg/ext/flexary7.C
! cf6db9e83d63eb91c7aa6ddb51a6d45c  gcc/testsuite/g++.dg/ext/flexary8.C
! 751420ea7960824e0dd865fce3451999  gcc/testsuite/g++.dg/ext/flexary9.C
  b00280f53981a2f30c8d4b894c33962c  gcc/testsuite/g++.dg/ext/fnname1.C
  a06d181d1f37ed4bbf17112c988f9608  gcc/testsuite/g++.dg/ext/fnname2.C
  9e62aa095a73cd8f1f5e3c31669594cd  gcc/testsuite/g++.dg/ext/fnname3.C
*************** b4a8192e545a20f5b7dea0d9fb8a6f63  gcc/te
*** 21893,21922 ****
  58f8a0136cdff73766d2255387d3090e  gcc/testsuite/g++.dg/ext/gnu-inline-template-class.C
  df8bb001c84f32307c935ddafd4b28e1  gcc/testsuite/g++.dg/ext/gnu-inline-template-func.C
  adccbbb2dfe79ac5c79fd79702b4ebcb  gcc/testsuite/g++.dg/ext/goto1.C
! 8aeb07af427db57e5b18d4398d7e2afa  gcc/testsuite/g++.dg/ext/has-builtin-1.C
  441e5aa8c33ee5eaec15ff3f27c9061f  gcc/testsuite/g++.dg/ext/has-feature.C
  8784bd586e428a839172997bd8adf401  gcc/testsuite/g++.dg/ext/has-feature2.C
! bc6cd626f7adecd0bd10f33548711cd4  gcc/testsuite/g++.dg/ext/has_nothrow_assign.C
! 48dfd353846908faae48925db69aa5bd  gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
  03de00c47fa1299568fc9448844b0a4a  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-2.C
  260b12684f5d8b208201f15151fd7916  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-3.C
! e1009bf7ec139384e0396f856671e51c  gcc/testsuite/g++.dg/ext/has_nothrow_constructor.C
! 9ab0d0de30743cb9e3866cc5d6e0bea8  gcc/testsuite/g++.dg/ext/has_nothrow_constructor_odr.C
! c2ef1d78f8bd6d3f4d6940f28560390c  gcc/testsuite/g++.dg/ext/has_nothrow_copy-1.C
! 9cf7a87c649f33881c217d698d9d9061  gcc/testsuite/g++.dg/ext/has_nothrow_copy-2.C
! 342fa7cf8c1da3204825904ac42f1aaa  gcc/testsuite/g++.dg/ext/has_nothrow_copy-3.C
! 768c0c47cc83179eab559400c5f2ac62  gcc/testsuite/g++.dg/ext/has_nothrow_copy-4.C
! 6f223fd77a02d3939dc0532ea8126007  gcc/testsuite/g++.dg/ext/has_nothrow_copy-5.C
! 477c808823454790150abda5b3fb0fb7  gcc/testsuite/g++.dg/ext/has_nothrow_copy-6.C
! c7646ae93a88290c62a299a4d43c4250  gcc/testsuite/g++.dg/ext/has_nothrow_copy-7.C
  957a747dcb57b75abba668e22763b617  gcc/testsuite/g++.dg/ext/has_nothrow_copy-8.C
! 326f3135872905cc190039b1e9eb418b  gcc/testsuite/g++.dg/ext/has_nothrow_copy_odr.C
! c6f0545bc1364e6c2ba02db17185d224  gcc/testsuite/g++.dg/ext/has_trivial_assign.C
! 74cd33bd9a4a20798b22a38804c96e73  gcc/testsuite/g++.dg/ext/has_trivial_constructor.C
! d9e0cebda97324fdad74307ae42630de  gcc/testsuite/g++.dg/ext/has_trivial_copy.C
! e08978b76f3cf1a71d470561278cf5c9  gcc/testsuite/g++.dg/ext/has_trivial_destructor-1.C
  a24f991beb2c5296f2e8144630b7bb1a  gcc/testsuite/g++.dg/ext/has_trivial_destructor-2.C
! 1e97ea87cc47ea2540c97f4f9363bd79  gcc/testsuite/g++.dg/ext/has_virtual_destructor.C
  853c0d1bb8c4ec806df7ecfff1c64c10  gcc/testsuite/g++.dg/ext/init1.C
  04cb5500126619139ae126fdc51c8a1f  gcc/testsuite/g++.dg/ext/injected-ttp.C
  f2cf0baaaf489aa15f22210e07d052d1  gcc/testsuite/g++.dg/ext/inline1.C
--- 23397,23426 ----
  58f8a0136cdff73766d2255387d3090e  gcc/testsuite/g++.dg/ext/gnu-inline-template-class.C
  df8bb001c84f32307c935ddafd4b28e1  gcc/testsuite/g++.dg/ext/gnu-inline-template-func.C
  adccbbb2dfe79ac5c79fd79702b4ebcb  gcc/testsuite/g++.dg/ext/goto1.C
! 91b493e659118ac166f0bb0643315332  gcc/testsuite/g++.dg/ext/has-builtin-1.C
  441e5aa8c33ee5eaec15ff3f27c9061f  gcc/testsuite/g++.dg/ext/has-feature.C
  8784bd586e428a839172997bd8adf401  gcc/testsuite/g++.dg/ext/has-feature2.C
! e475c17fe13b1bccb17abe4d4a717f2a  gcc/testsuite/g++.dg/ext/has_nothrow_assign.C
! eed51923b2d198930aca01100a48c643  gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
  03de00c47fa1299568fc9448844b0a4a  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-2.C
  260b12684f5d8b208201f15151fd7916  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-3.C
! 6134d67f915b17f12555d06438526195  gcc/testsuite/g++.dg/ext/has_nothrow_constructor.C
! d8c405708b5b9d46b59e8ba85d6d9c42  gcc/testsuite/g++.dg/ext/has_nothrow_constructor_odr.C
! 377b0a57902f9d7ebf4817e5c67874df  gcc/testsuite/g++.dg/ext/has_nothrow_copy-1.C
! ff9e346d65587d7ce54b90abe1ee0043  gcc/testsuite/g++.dg/ext/has_nothrow_copy-2.C
! e3585818b68ec8a34e2ead027fc2716d  gcc/testsuite/g++.dg/ext/has_nothrow_copy-3.C
! 39cc972a34484b482d3d25484a677374  gcc/testsuite/g++.dg/ext/has_nothrow_copy-4.C
! 7dabc12434f701f0c16a8ac2ab384c5e  gcc/testsuite/g++.dg/ext/has_nothrow_copy-5.C
! c030103218c1cd78e24e432f6b7d48d6  gcc/testsuite/g++.dg/ext/has_nothrow_copy-6.C
! ab9a0af6da4f13574e5b092e3347b5fe  gcc/testsuite/g++.dg/ext/has_nothrow_copy-7.C
  957a747dcb57b75abba668e22763b617  gcc/testsuite/g++.dg/ext/has_nothrow_copy-8.C
! c5ce26e6c0244f8e6b805bdf898d1374  gcc/testsuite/g++.dg/ext/has_nothrow_copy_odr.C
! e4c23ee398340e65901428b7e6770408  gcc/testsuite/g++.dg/ext/has_trivial_assign.C
! ac8ae9af02e9ee2f464c6ba74c3f21d9  gcc/testsuite/g++.dg/ext/has_trivial_constructor.C
! ef7bbe101f86443fe254588a5ca27361  gcc/testsuite/g++.dg/ext/has_trivial_copy.C
! f271483cc849c390e250605e54ae37b8  gcc/testsuite/g++.dg/ext/has_trivial_destructor-1.C
  a24f991beb2c5296f2e8144630b7bb1a  gcc/testsuite/g++.dg/ext/has_trivial_destructor-2.C
! 72069a562c9156e50b3efde0f66048dc  gcc/testsuite/g++.dg/ext/has_virtual_destructor.C
  853c0d1bb8c4ec806df7ecfff1c64c10  gcc/testsuite/g++.dg/ext/init1.C
  04cb5500126619139ae126fdc51c8a1f  gcc/testsuite/g++.dg/ext/injected-ttp.C
  f2cf0baaaf489aa15f22210e07d052d1  gcc/testsuite/g++.dg/ext/inline1.C
*************** eb64fad1b252e9235c6b09d561b8ef2c  gcc/te
*** 21954,21971 ****
  a74d3f8706b1ab40b2cc0403b1110c1a  gcc/testsuite/g++.dg/ext/interface3/interface3b2.cc
  99a548af69d71a6aacd6a89ab7dcd013  gcc/testsuite/g++.dg/ext/interface4.C
  f695844e9b94f9b4c9ed5fec78d4bf27  gcc/testsuite/g++.dg/ext/interface4.h
! 313119f0af11c076d28d9802655e555a  gcc/testsuite/g++.dg/ext/is_abstract.C
! 5fced04844911c2c40c3d916be7d0d6b  gcc/testsuite/g++.dg/ext/is_aggregate.C
  42b2f20fa118bd60afea32bb62088b6e  gcc/testsuite/g++.dg/ext/is_array.C
! f15c22cabbedb731c2f01e04c0fc9309  gcc/testsuite/g++.dg/ext/is_base_of.C
  574b1f21a40a06a23d8cf8a0233b80ed  gcc/testsuite/g++.dg/ext/is_base_of_diagnostic.C
  4d8cb6dc054c0275b7ee9ca0c033fb93  gcc/testsuite/g++.dg/ext/is_base_of_incomplete-2.C
  692933b331734768b72041a3582162cf  gcc/testsuite/g++.dg/ext/is_base_of_incomplete.C
! 25361578b4241ff9aeb10394648c11bc  gcc/testsuite/g++.dg/ext/is_bounded_array.C
! ed1c6dd1affd38da6f57f4982d15f9ec  gcc/testsuite/g++.dg/ext/is_class.C
  00827fb723064c984bd82e533710599b  gcc/testsuite/g++.dg/ext/is_class_error1.C
  77e0f39e9ec441d0aa71b257a152ee9f  gcc/testsuite/g++.dg/ext/is_class_error2.C
  ee0977c1a65488f30ec2671348af96de  gcc/testsuite/g++.dg/ext/is_class_error3.C
  b579998c84a7b6c9374dbdc81f28e45a  gcc/testsuite/g++.dg/ext/is_constructible1.C
  604c689e4f6bdf07da7fd4f5a21aa0a2  gcc/testsuite/g++.dg/ext/is_constructible2.C
  76eb31665e6c2034d39a3a88d38ad3b1  gcc/testsuite/g++.dg/ext/is_constructible3.C
--- 23458,23477 ----
  a74d3f8706b1ab40b2cc0403b1110c1a  gcc/testsuite/g++.dg/ext/interface3/interface3b2.cc
  99a548af69d71a6aacd6a89ab7dcd013  gcc/testsuite/g++.dg/ext/interface4.C
  f695844e9b94f9b4c9ed5fec78d4bf27  gcc/testsuite/g++.dg/ext/interface4.h
! 6a052a700dd27d2e087c7269f94efcf1  gcc/testsuite/g++.dg/ext/is_abstract.C
! 7b4bbb4468597cb28d850e0c03883be2  gcc/testsuite/g++.dg/ext/is_aggregate.C
  42b2f20fa118bd60afea32bb62088b6e  gcc/testsuite/g++.dg/ext/is_array.C
! d94cb7855d511cff1539f26e77d52c7d  gcc/testsuite/g++.dg/ext/is_assignable1.C
! 1b0a6b246515ec52c50e4f6f1dccffd8  gcc/testsuite/g++.dg/ext/is_base_of.C
  574b1f21a40a06a23d8cf8a0233b80ed  gcc/testsuite/g++.dg/ext/is_base_of_diagnostic.C
  4d8cb6dc054c0275b7ee9ca0c033fb93  gcc/testsuite/g++.dg/ext/is_base_of_incomplete-2.C
  692933b331734768b72041a3582162cf  gcc/testsuite/g++.dg/ext/is_base_of_incomplete.C
! e8d962d326168e43735853ffa70583e5  gcc/testsuite/g++.dg/ext/is_bounded_array.C
! 0dfe47c628c1e1501bbfd88640a0d865  gcc/testsuite/g++.dg/ext/is_class.C
  00827fb723064c984bd82e533710599b  gcc/testsuite/g++.dg/ext/is_class_error1.C
  77e0f39e9ec441d0aa71b257a152ee9f  gcc/testsuite/g++.dg/ext/is_class_error2.C
  ee0977c1a65488f30ec2671348af96de  gcc/testsuite/g++.dg/ext/is_class_error3.C
+ cdca1fe397240314079c17a2378bcd67  gcc/testsuite/g++.dg/ext/is_const.C
  b579998c84a7b6c9374dbdc81f28e45a  gcc/testsuite/g++.dg/ext/is_constructible1.C
  604c689e4f6bdf07da7fd4f5a21aa0a2  gcc/testsuite/g++.dg/ext/is_constructible2.C
  76eb31665e6c2034d39a3a88d38ad3b1  gcc/testsuite/g++.dg/ext/is_constructible3.C
*************** dc3385dfd74c1bf2c03d4da78571f637  gcc/te
*** 21974,21991 ****
  9553e2b6c2e80320fe1dbc53bb218083  gcc/testsuite/g++.dg/ext/is_constructible6.C
  c98f87283f462df05d8fe236ed206312  gcc/testsuite/g++.dg/ext/is_constructible8.C
  c9c92d18a37f4f8ede2a39a1b3ad62f6  gcc/testsuite/g++.dg/ext/is_convertible1.C
! 2df355ce84091bec91470e6f49164515  gcc/testsuite/g++.dg/ext/is_convertible2.C
  5ba6edf25552f47c87c7d5735f634b3c  gcc/testsuite/g++.dg/ext/is_convertible3.C
  3a805f1dafea1ecf418ab3dbdb6af96b  gcc/testsuite/g++.dg/ext/is_convertible4.C
  986a829ca110a6da40ad4e40333b4eb5  gcc/testsuite/g++.dg/ext/is_convertible5.C
  d74301fd930f4a488c9e941cdd242900  gcc/testsuite/g++.dg/ext/is_convertible6.C
  ebb1df191bcea60ed6342dad182b8901  gcc/testsuite/g++.dg/ext/is_deducible1.C
! deb5d60ce9955a69d116b30edd2cf933  gcc/testsuite/g++.dg/ext/is_empty.C
  51590a59aaf8715b9fe4a7ae06414cb8  gcc/testsuite/g++.dg/ext/is_empty2.C
! 03f82ac5f5b864878fa0ffa4383fa338  gcc/testsuite/g++.dg/ext/is_enum.C
  9c4168f06e4b4e0721a2821a1bdd02c0  gcc/testsuite/g++.dg/ext/is_enum2.C
  37398fff65ce2d16df6f0cb340b97987  gcc/testsuite/g++.dg/ext/is_final.C
  3702c5ca025df0d43d103161203f0ddf  gcc/testsuite/g++.dg/ext/is_function.C
  d97310b12ece2c21881785f78f44e64a  gcc/testsuite/g++.dg/ext/is_literal_type1.C
  cce82a97f2d80557fc2ee719db6afda2  gcc/testsuite/g++.dg/ext/is_literal_type2.C
  70b8167d4c887f159d75bd15861c519b  gcc/testsuite/g++.dg/ext/is_literal_type3.C
--- 23480,23501 ----
  9553e2b6c2e80320fe1dbc53bb218083  gcc/testsuite/g++.dg/ext/is_constructible6.C
  c98f87283f462df05d8fe236ed206312  gcc/testsuite/g++.dg/ext/is_constructible8.C
  c9c92d18a37f4f8ede2a39a1b3ad62f6  gcc/testsuite/g++.dg/ext/is_convertible1.C
! d84b4e6ad32eec6b47fea11f39244dd7  gcc/testsuite/g++.dg/ext/is_convertible2.C
  5ba6edf25552f47c87c7d5735f634b3c  gcc/testsuite/g++.dg/ext/is_convertible3.C
  3a805f1dafea1ecf418ab3dbdb6af96b  gcc/testsuite/g++.dg/ext/is_convertible4.C
  986a829ca110a6da40ad4e40333b4eb5  gcc/testsuite/g++.dg/ext/is_convertible5.C
  d74301fd930f4a488c9e941cdd242900  gcc/testsuite/g++.dg/ext/is_convertible6.C
  ebb1df191bcea60ed6342dad182b8901  gcc/testsuite/g++.dg/ext/is_deducible1.C
! 9da1ecf7ca599ccc9c1677e62cfc809f  gcc/testsuite/g++.dg/ext/is_empty.C
  51590a59aaf8715b9fe4a7ae06414cb8  gcc/testsuite/g++.dg/ext/is_empty2.C
! 904cd436fd5b5ebe1349610a0aa7c2da  gcc/testsuite/g++.dg/ext/is_enum.C
  9c4168f06e4b4e0721a2821a1bdd02c0  gcc/testsuite/g++.dg/ext/is_enum2.C
  37398fff65ce2d16df6f0cb340b97987  gcc/testsuite/g++.dg/ext/is_final.C
  3702c5ca025df0d43d103161203f0ddf  gcc/testsuite/g++.dg/ext/is_function.C
+ 04356e7583c2b33f9d0c90103c46653f  gcc/testsuite/g++.dg/ext/is_invocable1.C
+ 0da83314cec6d313a123af04a33e386b  gcc/testsuite/g++.dg/ext/is_invocable2.C
+ a880bbf4a2491686f32ef99587f1d5d7  gcc/testsuite/g++.dg/ext/is_invocable3.C
+ 3bff0f23c0ea407c9137e25bbedce11c  gcc/testsuite/g++.dg/ext/is_invocable4.C
  d97310b12ece2c21881785f78f44e64a  gcc/testsuite/g++.dg/ext/is_literal_type1.C
  cce82a97f2d80557fc2ee719db6afda2  gcc/testsuite/g++.dg/ext/is_literal_type2.C
  70b8167d4c887f159d75bd15861c519b  gcc/testsuite/g++.dg/ext/is_literal_type3.C
*************** b85cbea684bb347ceb84b361aaebb088  gcc/te
*** 22004,22014 ****
  d68d55dab0fd8c9b90c94945650d045f  gcc/testsuite/g++.dg/ext/is_nothrow_convertible2.C
  1c60e05c301e80b4bce25c52a32f41de  gcc/testsuite/g++.dg/ext/is_nothrow_convertible3.C
  eaf4aa577e3886ea0be13eb1aa62d230  gcc/testsuite/g++.dg/ext/is_nothrow_convertible4.C
  9c817c3bdc48e772a5151e588f6e79fb  gcc/testsuite/g++.dg/ext/is_object.C
! 23bf9f19377330f98f34038ddb75c870  gcc/testsuite/g++.dg/ext/is_pod.C
  84c3a14b6222536e4f6c6bb7519b5400  gcc/testsuite/g++.dg/ext/is_pod_98.C
  f316c6cb603f1746eab7e3d67e84b5c4  gcc/testsuite/g++.dg/ext/is_pod_incomplete.C
! 27bbb5a6652af10bc63d2ec1a4616b6e  gcc/testsuite/g++.dg/ext/is_polymorphic.C
  dfb458e6ed118ab19a8a7e997bced537  gcc/testsuite/g++.dg/ext/is_reference.C
  939d00f0a292b7100c8e23ee768675e9  gcc/testsuite/g++.dg/ext/is_same.C
  1689a9ae855fd83e83ea228c1be1749b  gcc/testsuite/g++.dg/ext/is_scoped_enum.C
--- 23514,23526 ----
  d68d55dab0fd8c9b90c94945650d045f  gcc/testsuite/g++.dg/ext/is_nothrow_convertible2.C
  1c60e05c301e80b4bce25c52a32f41de  gcc/testsuite/g++.dg/ext/is_nothrow_convertible3.C
  eaf4aa577e3886ea0be13eb1aa62d230  gcc/testsuite/g++.dg/ext/is_nothrow_convertible4.C
+ 3b976d0c26f41f3b07b81115ef53618b  gcc/testsuite/g++.dg/ext/is_nothrow_invocable.C
  9c817c3bdc48e772a5151e588f6e79fb  gcc/testsuite/g++.dg/ext/is_object.C
! 77712f31bbf809ecc5b5ef0e2403bc3b  gcc/testsuite/g++.dg/ext/is_pod.C
  84c3a14b6222536e4f6c6bb7519b5400  gcc/testsuite/g++.dg/ext/is_pod_98.C
  f316c6cb603f1746eab7e3d67e84b5c4  gcc/testsuite/g++.dg/ext/is_pod_incomplete.C
! a15f27d2d1eb1494b02700bd708e7819  gcc/testsuite/g++.dg/ext/is_pointer.C
! a68c78e7175e5a25a51dad3ad3b73b02  gcc/testsuite/g++.dg/ext/is_polymorphic.C
  dfb458e6ed118ab19a8a7e997bced537  gcc/testsuite/g++.dg/ext/is_reference.C
  939d00f0a292b7100c8e23ee768675e9  gcc/testsuite/g++.dg/ext/is_same.C
  1689a9ae855fd83e83ea228c1be1749b  gcc/testsuite/g++.dg/ext/is_scoped_enum.C
*************** dfb458e6ed118ab19a8a7e997bced537  gcc/te
*** 22017,22022 ****
--- 23529,23540 ----
  a6f24db3bde68537e128e8560916a5b9  gcc/testsuite/g++.dg/ext/is_std_layout3.C
  2a79465429389bbd7cccca9a2d4e8ea5  gcc/testsuite/g++.dg/ext/is_std_layout4.C
  708ac5dad6affcf578b23a34f2c8eb93  gcc/testsuite/g++.dg/ext/is_std_layout5.C
+ 8fee514cb673e84675dd4d7a0d078f93  gcc/testsuite/g++.dg/ext/is_trivial1.C
+ 3ab9068394953b1f9c0d514991541202  gcc/testsuite/g++.dg/ext/is_trivial2.C
+ b8aeaad7dfafbe73dcabc2e1412b6fdb  gcc/testsuite/g++.dg/ext/is_trivial3.C
+ 19491c4f3279fde2539026b48c8f7316  gcc/testsuite/g++.dg/ext/is_trivial4.C
+ a563ca29892396f19a346f608dfa798d  gcc/testsuite/g++.dg/ext/is_trivial5.C
+ 7ca9195e6f312cade2c597f83c25b199  gcc/testsuite/g++.dg/ext/is_trivial6.C
  bac13cacbdab60cefc02ded15129f773  gcc/testsuite/g++.dg/ext/is_trivially_constructible1.C
  a9c9c773110bfd7f4dab4894b851f80d  gcc/testsuite/g++.dg/ext/is_trivially_constructible2.C
  c8b5af558a67cf874bb7bd69c49e93fb  gcc/testsuite/g++.dg/ext/is_trivially_constructible3.C
*************** d78a2d4cf0d25d5c41563a855f2655c8  gcc/te
*** 22025,22031 ****
  274ba6a4204132602ce81bb35c3ad2c9  gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C
  c3525831665d7cbb0d4199640426a8c0  gcc/testsuite/g++.dg/ext/is_trivially_constructible7.C
  4595fa7ec3da0916bc04836cb7e0b080  gcc/testsuite/g++.dg/ext/is_trivially_copyable.C
! f68f695366fe576aaf12aeac3127a68d  gcc/testsuite/g++.dg/ext/is_union.C
  db0b295df95be25a97d67c002c45679e  gcc/testsuite/g++.dg/ext/ivdep-1.C
  81d5dcb570c603e51795c99355ec35f2  gcc/testsuite/g++.dg/ext/label1.C
  0c63f572a3749ffbcf4a49d91e923b9c  gcc/testsuite/g++.dg/ext/label10.C
--- 23543,23553 ----
  274ba6a4204132602ce81bb35c3ad2c9  gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C
  c3525831665d7cbb0d4199640426a8c0  gcc/testsuite/g++.dg/ext/is_trivially_constructible7.C
  4595fa7ec3da0916bc04836cb7e0b080  gcc/testsuite/g++.dg/ext/is_trivially_copyable.C
! 357fcc1259ce9ac8cdc0e28cd485e476  gcc/testsuite/g++.dg/ext/is_unbounded_array.C
! dfc5fc4d8610f00c7cd27c7795c3494a  gcc/testsuite/g++.dg/ext/is_union.C
! c5162f49c04a31e896fa6b3b85ddc718  gcc/testsuite/g++.dg/ext/is_virtual_base_of.C
! 75fff22de399b6176636c77897e0835a  gcc/testsuite/g++.dg/ext/is_virtual_base_of_diagnostic.C
! 4f23cfdb876ae1f2a68ee65231f5e7d6  gcc/testsuite/g++.dg/ext/is_volatile.C
  db0b295df95be25a97d67c002c45679e  gcc/testsuite/g++.dg/ext/ivdep-1.C
  81d5dcb570c603e51795c99355ec35f2  gcc/testsuite/g++.dg/ext/label1.C
  0c63f572a3749ffbcf4a49d91e923b9c  gcc/testsuite/g++.dg/ext/label10.C
*************** db0b295df95be25a97d67c002c45679e  gcc/te
*** 22036,22041 ****
--- 23558,23564 ----
  86a98cbefdcb66dd3ccb4b6645bf4cab  gcc/testsuite/g++.dg/ext/label14.C
  fca48c12cc95f5f674e76e404251b67a  gcc/testsuite/g++.dg/ext/label15.C
  6c68bc7323a239fb2cb95c33c95d9d9f  gcc/testsuite/g++.dg/ext/label16.C
+ 1a32a7d7f481d086094a25a58c42ee97  gcc/testsuite/g++.dg/ext/label17.C
  93d49880cc7e06074d40ba2b4a790426  gcc/testsuite/g++.dg/ext/label2.C
  83fe2d77626fcd185f084ed649485bec  gcc/testsuite/g++.dg/ext/label3.C
  745640ccb4853caedd76af8799204a4b  gcc/testsuite/g++.dg/ext/label4.C
*************** c510e07acd289ccbf9cf0ca2264c4ad7  gcc/te
*** 22049,22054 ****
--- 23572,23580 ----
  fc916d98d36fed4d9da40614102d5fdd  gcc/testsuite/g++.dg/ext/max.C
  795ae1f208cf45eeb1332079f2cd73d6  gcc/testsuite/g++.dg/ext/member-attr.C
  8d8589b0df08fd0ae97cc680893df8f1  gcc/testsuite/g++.dg/ext/ms-1.C
+ 74d43773981ec9d3d63d89e78e85878b  gcc/testsuite/g++.dg/ext/musttail1.C
+ f0d7a723064d3193b4c6f6cd11c1002f  gcc/testsuite/g++.dg/ext/musttail2.C
+ 71a908f1e89fcaccc4d735d4b97a01ad  gcc/testsuite/g++.dg/ext/musttail3.C
  54b6adacac34d621ab04c7aa0c6b3bbc  gcc/testsuite/g++.dg/ext/no-asm-1.C
  65500604aa4619c879e00b15d9af5814  gcc/testsuite/g++.dg/ext/no-asm-2.C
  d5f662860124db72994e984fae6aac16  gcc/testsuite/g++.dg/ext/no-gnu-keywords-1.C
*************** bcf9b6873e48870b8f6014b5da708cd3  gcc/te
*** 22071,22076 ****
--- 23597,23603 ----
  8ba16c3bb73d54b943f0a1e2cd811ac3  gcc/testsuite/g++.dg/ext/pr109177.C
  8178424c28bf310e39866a3bc22ccb00  gcc/testsuite/g++.dg/ext/pr114409-2.C
  a17829a2880dfc08bbe88a800e8da670  gcc/testsuite/g++.dg/ext/pr114691.C
+ 8151d79e58fcd890533f5c325f86ae37  gcc/testsuite/g++.dg/ext/pr116545.C
  210171cdbd9571de1bfd894e6c809efa  gcc/testsuite/g++.dg/ext/pr17577.C
  d017f3273bbed79c882146d070c763a4  gcc/testsuite/g++.dg/ext/pr17577.h
  eb1830f7b92ca604956f6b57b3a6d3f4  gcc/testsuite/g++.dg/ext/pr27019.C
*************** eb1830f7b92ca604956f6b57b3a6d3f4  gcc/te
*** 22079,22085 ****
  098b8140ebbd429d9c2b2419717ce9d6  gcc/testsuite/g++.dg/ext/pr53605.C
  30704e7822be1016e413ad1fb6c2e830  gcc/testsuite/g++.dg/ext/pr56790-1.C
  5c17b84b7378b1cb037b186e3716adc2  gcc/testsuite/g++.dg/ext/pr57509.C
! 6a2361cc50a51b407384607368aa4fa9  gcc/testsuite/g++.dg/ext/pr57735.C
  4775bf0d01f776786eed6bd280ef69e1  gcc/testsuite/g++.dg/ext/pr58834.C
  866a91381ea9110f2679a3242dd39d16  gcc/testsuite/g++.dg/ext/pr59378.C
  8a247c6260aa77bd5f5f10a05e13a5eb  gcc/testsuite/g++.dg/ext/pr59706.C
--- 23606,23612 ----
  098b8140ebbd429d9c2b2419717ce9d6  gcc/testsuite/g++.dg/ext/pr53605.C
  30704e7822be1016e413ad1fb6c2e830  gcc/testsuite/g++.dg/ext/pr56790-1.C
  5c17b84b7378b1cb037b186e3716adc2  gcc/testsuite/g++.dg/ext/pr57509.C
! 38b1ef153b1bb5f0a614b0c0c6c9671c  gcc/testsuite/g++.dg/ext/pr57735.C
  4775bf0d01f776786eed6bd280ef69e1  gcc/testsuite/g++.dg/ext/pr58834.C
  866a91381ea9110f2679a3242dd39d16  gcc/testsuite/g++.dg/ext/pr59378.C
  8a247c6260aa77bd5f5f10a05e13a5eb  gcc/testsuite/g++.dg/ext/pr59706.C
*************** d814f6f0836684a40f5b18c632f31b13  gcc/te
*** 22101,22119 ****
  ddac7a382afa64bc6fab7d0e2248ed55  gcc/testsuite/g++.dg/ext/pr84828.C
  fca1fb7faa22e3e4acb26bac8f67ef7a  gcc/testsuite/g++.dg/ext/pr84843-1.C
  33703c3d719b8109639f48b141e6c0d7  gcc/testsuite/g++.dg/ext/pr84843-2.C
! a3a19e204ac6e54df8904525f84903a0  gcc/testsuite/g++.dg/ext/pr85503.C
  a355ef8a91fca7be6ca2387ec0ad27bd  gcc/testsuite/g++.dg/ext/pr93998.C
  0de975ae227332dc92f27d4dc970fa65  gcc/testsuite/g++.dg/ext/pr94197.C
  2e98a912d14514a9d68f342ae3ccc4cd  gcc/testsuite/g++.dg/ext/pr99508.C
  769de1884d220580907e3b4f4ef76d76  gcc/testsuite/g++.dg/ext/pragma1.C
  ad117686eb16e680b29f2f5e45ebe0df  gcc/testsuite/g++.dg/ext/pragmaweak1.C
  ae2794e104309a224e228d70e4cede48  gcc/testsuite/g++.dg/ext/pretty1.C
  faa8333681bedde3ba84daa60ec26ff8  gcc/testsuite/g++.dg/ext/pretty2.C
  4433151c7bac2cb6a0ce24581b48c1e1  gcc/testsuite/g++.dg/ext/pretty3.C
  bce41fa775f2176271e957652f0edf69  gcc/testsuite/g++.dg/ext/reference_constructs_from_temporary1.C
  95d105b089ea555ab8e1c29ce9e1f667  gcc/testsuite/g++.dg/ext/reference_converts_from_temporary1.C
  01789f18bffef5bcf261727b48fc9bb5  gcc/testsuite/g++.dg/ext/remove_cv.C
  9d092236f17635c7e6d0abe935fd348f  gcc/testsuite/g++.dg/ext/remove_cvref.C
  d0de22f2593644ea8f7ed58556b0270f  gcc/testsuite/g++.dg/ext/remove_pointer.C
  fc020aa10be075961f1ed9cc43fa5790  gcc/testsuite/g++.dg/ext/remove_reference.C
  171b60b2dd599842569025ee22f7703a  gcc/testsuite/g++.dg/ext/restrict1.C
--- 23628,23653 ----
  ddac7a382afa64bc6fab7d0e2248ed55  gcc/testsuite/g++.dg/ext/pr84828.C
  fca1fb7faa22e3e4acb26bac8f67ef7a  gcc/testsuite/g++.dg/ext/pr84843-1.C
  33703c3d719b8109639f48b141e6c0d7  gcc/testsuite/g++.dg/ext/pr84843-2.C
! 3c48eb989eaa1ff1d4fb35ea424906bd  gcc/testsuite/g++.dg/ext/pr85503.C
  a355ef8a91fca7be6ca2387ec0ad27bd  gcc/testsuite/g++.dg/ext/pr93998.C
  0de975ae227332dc92f27d4dc970fa65  gcc/testsuite/g++.dg/ext/pr94197.C
  2e98a912d14514a9d68f342ae3ccc4cd  gcc/testsuite/g++.dg/ext/pr99508.C
+ 5e3c7bb53a8e1adeacf0568454cf71ce  gcc/testsuite/g++.dg/ext/pragma-target1.C
+ 91b1b7433c2bf56ffbffab03e9b95707  gcc/testsuite/g++.dg/ext/pragma-target2.C
+ cc1383d1d2b664a2dbbe3aea3b022c88  gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C
+ 23c911d13d1d1f97d5983f9893824572  gcc/testsuite/g++.dg/ext/pragma-unroll-lambda.C
  769de1884d220580907e3b4f4ef76d76  gcc/testsuite/g++.dg/ext/pragma1.C
  ad117686eb16e680b29f2f5e45ebe0df  gcc/testsuite/g++.dg/ext/pragmaweak1.C
  ae2794e104309a224e228d70e4cede48  gcc/testsuite/g++.dg/ext/pretty1.C
  faa8333681bedde3ba84daa60ec26ff8  gcc/testsuite/g++.dg/ext/pretty2.C
  4433151c7bac2cb6a0ce24581b48c1e1  gcc/testsuite/g++.dg/ext/pretty3.C
+ 98638e9fa0777943851858264e4df050  gcc/testsuite/g++.dg/ext/rank.C
  bce41fa775f2176271e957652f0edf69  gcc/testsuite/g++.dg/ext/reference_constructs_from_temporary1.C
  95d105b089ea555ab8e1c29ce9e1f667  gcc/testsuite/g++.dg/ext/reference_converts_from_temporary1.C
+ 5c1bae2a1fbdc59653647bbd49eb336f  gcc/testsuite/g++.dg/ext/remove_all_extents.C
  01789f18bffef5bcf261727b48fc9bb5  gcc/testsuite/g++.dg/ext/remove_cv.C
  9d092236f17635c7e6d0abe935fd348f  gcc/testsuite/g++.dg/ext/remove_cvref.C
+ 0bd6a35f8539f7b0ba03afc36f31b668  gcc/testsuite/g++.dg/ext/remove_extent.C
  d0de22f2593644ea8f7ed58556b0270f  gcc/testsuite/g++.dg/ext/remove_pointer.C
  fc020aa10be075961f1ed9cc43fa5790  gcc/testsuite/g++.dg/ext/remove_reference.C
  171b60b2dd599842569025ee22f7703a  gcc/testsuite/g++.dg/ext/restrict1.C
*************** fe03ec285c8ec98dfe8ce3f8fe391cf8  gcc/te
*** 22121,22127 ****
  9b5ee55248ed64a182e8649894580ade  gcc/testsuite/g++.dg/ext/selectany1.C
  6503e14c7a74af0da6a05c74e7a4ca55  gcc/testsuite/g++.dg/ext/selectany2.C
  e0be742fef2cac09f63674d981302b5c  gcc/testsuite/g++.dg/ext/sizeof-complit.C
- 8edc398347e6e2ab2c7984f05aee328d  gcc/testsuite/g++.dg/ext/spe1.C
  0cc2b837a96214f4ba420513a4d610a8  gcc/testsuite/g++.dg/ext/static1.C
  40ecbac4d27075e4005c73ce57fc001d  gcc/testsuite/g++.dg/ext/stmtexpr1.C
  b1f2237b354111a738a7ac26e40fca77  gcc/testsuite/g++.dg/ext/stmtexpr10.C
--- 23655,23660 ----
*************** e6bc1a09cf3c9d838c7ad4575c3d8740  gcc/te
*** 22141,22146 ****
--- 23674,23682 ----
  08aa6b7926e8190151b8337923a5ece9  gcc/testsuite/g++.dg/ext/stmtexpr23.C
  50b71ec6184b5e6c3e905f0038802697  gcc/testsuite/g++.dg/ext/stmtexpr24.C
  f203a0d905b5296ac5492e53575e933d  gcc/testsuite/g++.dg/ext/stmtexpr25.C
+ fb5464937383d03f7e56903a4aec5a8f  gcc/testsuite/g++.dg/ext/stmtexpr26.C
+ 11def7548cdd94097acc7d018942b6a6  gcc/testsuite/g++.dg/ext/stmtexpr27.C
+ 911917baaaad62c91cea839e307b479a  gcc/testsuite/g++.dg/ext/stmtexpr29.C
  15be25b1a07f94e4d65103bfb52d6406  gcc/testsuite/g++.dg/ext/stmtexpr3.C
  7f4e8ebedb382ebc1349d7067b034121  gcc/testsuite/g++.dg/ext/stmtexpr4.C
  a6cc01634e0bd707301c873f2d35f891  gcc/testsuite/g++.dg/ext/stmtexpr5.C
*************** d104145185fba3180b02bfff96944804  gcc/te
*** 22149,22156 ****
  c24c0fb32082543dfc7b57bd392ba008  gcc/testsuite/g++.dg/ext/stmtexpr8.C
  1a8af85002e8ca32cf0c099dd5920e54  gcc/testsuite/g++.dg/ext/stmtexpr9.C
  e044d983bce8db606bbd21120cc6a77d  gcc/testsuite/g++.dg/ext/strncpy-chk1.C
! 2583fccbb085dee5d8816b78dcb63d74  gcc/testsuite/g++.dg/ext/sve-sizeless-1.C
! ab4033ab3910d6be052cda3605cd92d5  gcc/testsuite/g++.dg/ext/sve-sizeless-2.C
  e4a78d4631d98dda8d34b1baf828c158  gcc/testsuite/g++.dg/ext/sync-1.C
  7d2ab13d9258d8fc570367eacc626bf6  gcc/testsuite/g++.dg/ext/sync-2.C
  96d325d0b1cb729ac3fd1b3d32a6b67b  gcc/testsuite/g++.dg/ext/sync-3.C
--- 23685,23692 ----
  c24c0fb32082543dfc7b57bd392ba008  gcc/testsuite/g++.dg/ext/stmtexpr8.C
  1a8af85002e8ca32cf0c099dd5920e54  gcc/testsuite/g++.dg/ext/stmtexpr9.C
  e044d983bce8db606bbd21120cc6a77d  gcc/testsuite/g++.dg/ext/strncpy-chk1.C
! 385de8b6283f9a733055fd21e48e75a9  gcc/testsuite/g++.dg/ext/sve-sizeless-1.C
! df6cd1e14435b40b03e24081b8702c69  gcc/testsuite/g++.dg/ext/sve-sizeless-2.C
  e4a78d4631d98dda8d34b1baf828c158  gcc/testsuite/g++.dg/ext/sync-1.C
  7d2ab13d9258d8fc570367eacc626bf6  gcc/testsuite/g++.dg/ext/sync-2.C
  96d325d0b1cb729ac3fd1b3d32a6b67b  gcc/testsuite/g++.dg/ext/sync-3.C
*************** ff67a3df89d9e5bed9e2259c840fd1c3  gcc/te
*** 22167,22180 ****
  b2cbeefe0b660f19695decd8817dfef1  gcc/testsuite/g++.dg/ext/tmplattr6.C
  9decda5ea28390f320c0667cbd5b3b8f  gcc/testsuite/g++.dg/ext/tmplattr7.C
  bcdc198bba142d390818f427b8129565  gcc/testsuite/g++.dg/ext/tmplattr8.C
! 6ff796acf64e692b00f5a28e734a6328  gcc/testsuite/g++.dg/ext/tmplattr9.C
  5c82bcad933c856bb7bc2222cad5ff0f  gcc/testsuite/g++.dg/ext/traits1.C
  1b8acb86eb35f02c108334294530bd02  gcc/testsuite/g++.dg/ext/transparent-union.C
  ae748e695a806a3c08cd98b80d3a6d61  gcc/testsuite/g++.dg/ext/type_pack_element1.C
  32fac907aa5a7898341dc6861663a59c  gcc/testsuite/g++.dg/ext/type_pack_element2.C
  3e2684b951b4841461fda801922db4a0  gcc/testsuite/g++.dg/ext/type_pack_element3.C
  3955727ba366c9c64a61b3d8fb17a9b6  gcc/testsuite/g++.dg/ext/type_pack_element4.C
! c2ab0a5977a08b46134ba61eb8b22222  gcc/testsuite/g++.dg/ext/typedef-init.C
  a55635b999e217d4900dcb3975178408  gcc/testsuite/g++.dg/ext/typename1.C
  797d2045e8822a50b44635725cab1028  gcc/testsuite/g++.dg/ext/typeof1.C
  428a557c7b31bfbb8d1d1ff9a0f74017  gcc/testsuite/g++.dg/ext/typeof10.C
--- 23703,23716 ----
  b2cbeefe0b660f19695decd8817dfef1  gcc/testsuite/g++.dg/ext/tmplattr6.C
  9decda5ea28390f320c0667cbd5b3b8f  gcc/testsuite/g++.dg/ext/tmplattr7.C
  bcdc198bba142d390818f427b8129565  gcc/testsuite/g++.dg/ext/tmplattr8.C
! 025a5972f75731b8e82a3214589eeedc  gcc/testsuite/g++.dg/ext/tmplattr9.C
  5c82bcad933c856bb7bc2222cad5ff0f  gcc/testsuite/g++.dg/ext/traits1.C
  1b8acb86eb35f02c108334294530bd02  gcc/testsuite/g++.dg/ext/transparent-union.C
  ae748e695a806a3c08cd98b80d3a6d61  gcc/testsuite/g++.dg/ext/type_pack_element1.C
  32fac907aa5a7898341dc6861663a59c  gcc/testsuite/g++.dg/ext/type_pack_element2.C
  3e2684b951b4841461fda801922db4a0  gcc/testsuite/g++.dg/ext/type_pack_element3.C
  3955727ba366c9c64a61b3d8fb17a9b6  gcc/testsuite/g++.dg/ext/type_pack_element4.C
! 6c910dd20247cd3ad6a37cad80aecc1e  gcc/testsuite/g++.dg/ext/typedef-init.C
  a55635b999e217d4900dcb3975178408  gcc/testsuite/g++.dg/ext/typename1.C
  797d2045e8822a50b44635725cab1028  gcc/testsuite/g++.dg/ext/typeof1.C
  428a557c7b31bfbb8d1d1ff9a0f74017  gcc/testsuite/g++.dg/ext/typeof10.C
*************** a9d136cfb86815cbf4d2e46089c90ce0  gcc/te
*** 22191,22204 ****
  d7e6d10c23ed31b44c2e6c3268ab2b30  gcc/testsuite/g++.dg/ext/typeof9.C
  d3f4de62bf778201235632d82af7d801  gcc/testsuite/g++.dg/ext/unary_trait_incomplete.C
  b56af9a8974b21c26c4d8df3e75c33dd  gcc/testsuite/g++.dg/ext/underlying_type1.C
! 999bb6333438249f93af4d0c7b177d10  gcc/testsuite/g++.dg/ext/underlying_type10.C
  32d08b925dba9e7ca38d9ec9643c84fa  gcc/testsuite/g++.dg/ext/underlying_type11.C
  abfd710e95fdf463d4458ba09797be53  gcc/testsuite/g++.dg/ext/underlying_type12.C
  bac63f65d9af9633a6a709b56e57bc93  gcc/testsuite/g++.dg/ext/underlying_type13.C
  35e4819f2eebc1b3c180bf57753059ae  gcc/testsuite/g++.dg/ext/underlying_type14.C
  cd2c9017532711278e93d2ec37f32659  gcc/testsuite/g++.dg/ext/underlying_type2.C
  c3dc60fecd82cab7b2080a3b42016047  gcc/testsuite/g++.dg/ext/underlying_type3.C
! b7a8ecf75070cdd4647856d3d7028b3d  gcc/testsuite/g++.dg/ext/underlying_type4.C
  210d66722587db657b9dbd70b1b6b6e5  gcc/testsuite/g++.dg/ext/underlying_type5.C
  93e9f91e79578a6b15defdf39e6db298  gcc/testsuite/g++.dg/ext/underlying_type6.C
  d4224ad9debbb9d9c4635068b31a7415  gcc/testsuite/g++.dg/ext/underlying_type7.C
--- 23727,23740 ----
  d7e6d10c23ed31b44c2e6c3268ab2b30  gcc/testsuite/g++.dg/ext/typeof9.C
  d3f4de62bf778201235632d82af7d801  gcc/testsuite/g++.dg/ext/unary_trait_incomplete.C
  b56af9a8974b21c26c4d8df3e75c33dd  gcc/testsuite/g++.dg/ext/underlying_type1.C
! 9b4b7332afc3fd6ce526132d3debf445  gcc/testsuite/g++.dg/ext/underlying_type10.C
  32d08b925dba9e7ca38d9ec9643c84fa  gcc/testsuite/g++.dg/ext/underlying_type11.C
  abfd710e95fdf463d4458ba09797be53  gcc/testsuite/g++.dg/ext/underlying_type12.C
  bac63f65d9af9633a6a709b56e57bc93  gcc/testsuite/g++.dg/ext/underlying_type13.C
  35e4819f2eebc1b3c180bf57753059ae  gcc/testsuite/g++.dg/ext/underlying_type14.C
  cd2c9017532711278e93d2ec37f32659  gcc/testsuite/g++.dg/ext/underlying_type2.C
  c3dc60fecd82cab7b2080a3b42016047  gcc/testsuite/g++.dg/ext/underlying_type3.C
! 88e36c3f7bdfc86961e5fe61486c1ab9  gcc/testsuite/g++.dg/ext/underlying_type4.C
  210d66722587db657b9dbd70b1b6b6e5  gcc/testsuite/g++.dg/ext/underlying_type5.C
  93e9f91e79578a6b15defdf39e6db298  gcc/testsuite/g++.dg/ext/underlying_type6.C
  d4224ad9debbb9d9c4635068b31a7415  gcc/testsuite/g++.dg/ext/underlying_type7.C
*************** ff1db1bf54183447b20849ac3c27f4ab  gcc/te
*** 22294,22299 ****
--- 23830,23837 ----
  7527a84a941056775919388a2f30abe5  gcc/testsuite/g++.dg/ext/vector40.C
  f9d2ebdedaca8d41e448e7a698122e11  gcc/testsuite/g++.dg/ext/vector41.C
  f3747dffb3f04c3dc3d8490b73bc13c6  gcc/testsuite/g++.dg/ext/vector42.C
+ cd3d2d6acfc268fa790a6d2c352d1958  gcc/testsuite/g++.dg/ext/vector43.C
+ 27b982039ea4896a06e1ff7ebe0a38f6  gcc/testsuite/g++.dg/ext/vector44.C
  3231264b4b96091ab8a2351e76707e8d  gcc/testsuite/g++.dg/ext/vector5.C
  f630b6880676201345d2e753913e064c  gcc/testsuite/g++.dg/ext/vector6.C
  499980717843a208168505a264f263e3  gcc/testsuite/g++.dg/ext/vector7.C
*************** dc76fc17bcb2fe7dfe39be101a9bd6b5  gcc/te
*** 22377,22409 ****
  40de40133f2bc2f79491601ee0e6ed42  gcc/testsuite/g++.dg/ext/visibility/warn5.C
  4082034db0092dc3aa5494bbab342da6  gcc/testsuite/g++.dg/ext/visibility/warn6.C
  30bb3952596b6a02b52d5dad8e1de252  gcc/testsuite/g++.dg/ext/vla1.C
! 7967571bc95c3a621226952301d1fbee  gcc/testsuite/g++.dg/ext/vla10.C
! c5bcafe042901a792f46e18883b76b80  gcc/testsuite/g++.dg/ext/vla11.C
! d6ec4274cb64a4db7ca0c60b6cd380b0  gcc/testsuite/g++.dg/ext/vla12.C
  29d6caf5110470674c8b7228eb8626f3  gcc/testsuite/g++.dg/ext/vla13.C
  d064d37eab722d0bbe6af95ae3d5c12d  gcc/testsuite/g++.dg/ext/vla14.C
! 3253440b1682c03d37e9fe0077dc39cb  gcc/testsuite/g++.dg/ext/vla15.C
! 3906162597e70fb55c58c873cfd6d1e2  gcc/testsuite/g++.dg/ext/vla16.C
! 27174f17bf4ed6dc2e7cfe6b2ac58bda  gcc/testsuite/g++.dg/ext/vla17.C
  f964b5b8563862b3b5de4077cc1fb8e4  gcc/testsuite/g++.dg/ext/vla18.C
  1fd16437142527242ed46024008b3c50  gcc/testsuite/g++.dg/ext/vla19.C
  83bf1823c9e81467f20ea26043a713e9  gcc/testsuite/g++.dg/ext/vla2.C
  d35e3d499f9c61083c8cc1857f8e1c17  gcc/testsuite/g++.dg/ext/vla20.C
  9b6080415288de72842bd85208414ade  gcc/testsuite/g++.dg/ext/vla21.C
  0ba2afbdaf6e73dfcd5ff164e2020f97  gcc/testsuite/g++.dg/ext/vla22.C
! 094facd4da54e59d052fc6a3d9479d29  gcc/testsuite/g++.dg/ext/vla23.C
  320764967cdf14eb97d11fff57ae0db4  gcc/testsuite/g++.dg/ext/vla24.C
! 6aaa10f349349a2417e726c48cb7e61e  gcc/testsuite/g++.dg/ext/vla3.C
  8c6804c31fd5e1d419a1fc7a92913eae  gcc/testsuite/g++.dg/ext/vla4.C
  cd0140e3425e97d1c4b919a0ef8b54c3  gcc/testsuite/g++.dg/ext/vla5.C
! d79825729049ae3b1dcd9d8d0f86a9c1  gcc/testsuite/g++.dg/ext/vla6.C
! 6ccbf45d9e21a406e0533379ab46ed68  gcc/testsuite/g++.dg/ext/vla7.C
  ce18ce908630287c7dc7c4377eadc1b0  gcc/testsuite/g++.dg/ext/vla8.C
  9bb5caf7c99329edf52d7e4bc97626a1  gcc/testsuite/g++.dg/ext/vla9.C
  11bcf00b0a6402fad7b9569e02318690  gcc/testsuite/g++.dg/ext/vlm1.C
  678b0a6bbf7e0629efdf82de5e5ed01a  gcc/testsuite/g++.dg/ext/vlm2.C
  8c86ea641b4518800fb5154a1a151e06  gcc/testsuite/g++.dg/ext/weak1.C
! d2a31eb19f78eba07ebeb256b409141a  gcc/testsuite/g++.dg/ext/weak2.C
  1a7816a666c363e8410710411e40ce26  gcc/testsuite/g++.dg/ext/weak3.C
  a90a1ccb44e24f11ce27ee962f1c9c2d  gcc/testsuite/g++.dg/ext/weak4.C
  3966d7feec90bb7ef5f1b9dd00c1f2fb  gcc/testsuite/g++.dg/ext/weak5.C
--- 23915,23947 ----
  40de40133f2bc2f79491601ee0e6ed42  gcc/testsuite/g++.dg/ext/visibility/warn5.C
  4082034db0092dc3aa5494bbab342da6  gcc/testsuite/g++.dg/ext/visibility/warn6.C
  30bb3952596b6a02b52d5dad8e1de252  gcc/testsuite/g++.dg/ext/vla1.C
! 1449869695dee3efea51f4669b837c49  gcc/testsuite/g++.dg/ext/vla10.C
! a727bde8a8bab1594c631e013263e598  gcc/testsuite/g++.dg/ext/vla11.C
! e301c29c014339ad81955e68811b25cf  gcc/testsuite/g++.dg/ext/vla12.C
  29d6caf5110470674c8b7228eb8626f3  gcc/testsuite/g++.dg/ext/vla13.C
  d064d37eab722d0bbe6af95ae3d5c12d  gcc/testsuite/g++.dg/ext/vla14.C
! cb3ddd802b5024fccc3d870164fe1e70  gcc/testsuite/g++.dg/ext/vla15.C
! 31e73b25e41997b0ac0c6c51cfe30e2e  gcc/testsuite/g++.dg/ext/vla16.C
! 812eb35a45a954f99a0c5977b99a8174  gcc/testsuite/g++.dg/ext/vla17.C
  f964b5b8563862b3b5de4077cc1fb8e4  gcc/testsuite/g++.dg/ext/vla18.C
  1fd16437142527242ed46024008b3c50  gcc/testsuite/g++.dg/ext/vla19.C
  83bf1823c9e81467f20ea26043a713e9  gcc/testsuite/g++.dg/ext/vla2.C
  d35e3d499f9c61083c8cc1857f8e1c17  gcc/testsuite/g++.dg/ext/vla20.C
  9b6080415288de72842bd85208414ade  gcc/testsuite/g++.dg/ext/vla21.C
  0ba2afbdaf6e73dfcd5ff164e2020f97  gcc/testsuite/g++.dg/ext/vla22.C
! 064acf415e241c8c3516d9c9bcf4bba8  gcc/testsuite/g++.dg/ext/vla23.C
  320764967cdf14eb97d11fff57ae0db4  gcc/testsuite/g++.dg/ext/vla24.C
! f603634b7e2ab93b87e602f38ebcc397  gcc/testsuite/g++.dg/ext/vla3.C
  8c6804c31fd5e1d419a1fc7a92913eae  gcc/testsuite/g++.dg/ext/vla4.C
  cd0140e3425e97d1c4b919a0ef8b54c3  gcc/testsuite/g++.dg/ext/vla5.C
! 4cff2904bf7edbed976d3dd3f67c25ba  gcc/testsuite/g++.dg/ext/vla6.C
! f339c929810ba11885868c48c99722f6  gcc/testsuite/g++.dg/ext/vla7.C
  ce18ce908630287c7dc7c4377eadc1b0  gcc/testsuite/g++.dg/ext/vla8.C
  9bb5caf7c99329edf52d7e4bc97626a1  gcc/testsuite/g++.dg/ext/vla9.C
  11bcf00b0a6402fad7b9569e02318690  gcc/testsuite/g++.dg/ext/vlm1.C
  678b0a6bbf7e0629efdf82de5e5ed01a  gcc/testsuite/g++.dg/ext/vlm2.C
  8c86ea641b4518800fb5154a1a151e06  gcc/testsuite/g++.dg/ext/weak1.C
! 9b39761fed012d2c6a268f3031216532  gcc/testsuite/g++.dg/ext/weak2.C
  1a7816a666c363e8410710411e40ce26  gcc/testsuite/g++.dg/ext/weak3.C
  a90a1ccb44e24f11ce27ee962f1c9c2d  gcc/testsuite/g++.dg/ext/weak4.C
  3966d7feec90bb7ef5f1b9dd00c1f2fb  gcc/testsuite/g++.dg/ext/weak5.C
*************** e0becb782bb1d8a5f80ddc28f09b76b5  gcc/te
*** 22417,22428 ****
  22fc6504c62d44c9b94fe8d23a3e383f  gcc/testsuite/g++.dg/gcov/gcov-11.C
  c95c4e2bd4e437ad3ff1db17dc98ed8a  gcc/testsuite/g++.dg/gcov/gcov-12.C
  7a1698611acb707485b8f5e55a748337  gcc/testsuite/g++.dg/gcov/gcov-13.C
! be0288522b31602de2c7b3eeb2fb4b18  gcc/testsuite/g++.dg/gcov/gcov-14.C
  56dbe86604b8680b3d2c3f63fd217d0a  gcc/testsuite/g++.dg/gcov/gcov-15.C
  1a43a673011a87c94649d32b935958ea  gcc/testsuite/g++.dg/gcov/gcov-16.C
  c47d97f360807b87a87090dcf2d42054  gcc/testsuite/g++.dg/gcov/gcov-17.C
! 55c2d3c4b619e6431a7c3f998fd62bae  gcc/testsuite/g++.dg/gcov/gcov-18.C
  76d4b63734995c717c5a329c312c8803  gcc/testsuite/g++.dg/gcov/gcov-2.C
  0e241a16c3faf2f0c387bd2978d2b824  gcc/testsuite/g++.dg/gcov/gcov-3.C
  2c83bff9a3f14aa6fc5d7755bf82c9b6  gcc/testsuite/g++.dg/gcov/gcov-3.h
  a7c093e32d8e0cc08e02c3253748979c  gcc/testsuite/g++.dg/gcov/gcov-4.C
--- 23955,23973 ----
  22fc6504c62d44c9b94fe8d23a3e383f  gcc/testsuite/g++.dg/gcov/gcov-11.C
  c95c4e2bd4e437ad3ff1db17dc98ed8a  gcc/testsuite/g++.dg/gcov/gcov-12.C
  7a1698611acb707485b8f5e55a748337  gcc/testsuite/g++.dg/gcov/gcov-13.C
! b3f1c10dff330be02171cdcaa9b964c0  gcc/testsuite/g++.dg/gcov/gcov-14.C
  56dbe86604b8680b3d2c3f63fd217d0a  gcc/testsuite/g++.dg/gcov/gcov-15.C
  1a43a673011a87c94649d32b935958ea  gcc/testsuite/g++.dg/gcov/gcov-16.C
  c47d97f360807b87a87090dcf2d42054  gcc/testsuite/g++.dg/gcov/gcov-17.C
! f4da15088792e97a7ce34471255ac50c  gcc/testsuite/g++.dg/gcov/gcov-18.C
! e3855e6e2ac350c78fb7bd75ab4612e6  gcc/testsuite/g++.dg/gcov/gcov-19.C
  76d4b63734995c717c5a329c312c8803  gcc/testsuite/g++.dg/gcov/gcov-2.C
+ 16195b4a664db68b05b8a54a82560adc  gcc/testsuite/g++.dg/gcov/gcov-20.C
+ 607e163314d276273e41c141faea450e  gcc/testsuite/g++.dg/gcov/gcov-21.C
+ 165abeae2952a999a1ae5519bf3d883d  gcc/testsuite/g++.dg/gcov/gcov-22.C
+ 1640d03782f51bc43a15596b0614cf56  gcc/testsuite/g++.dg/gcov/gcov-23-1.h
+ 167b6b9dc0c8d8fdcd57ab138cca6d8f  gcc/testsuite/g++.dg/gcov/gcov-23-2.h
+ 6dc62067a4a2f3496edde1bd07b54049  gcc/testsuite/g++.dg/gcov/gcov-23.C
  0e241a16c3faf2f0c387bd2978d2b824  gcc/testsuite/g++.dg/gcov/gcov-3.C
  2c83bff9a3f14aa6fc5d7755bf82c9b6  gcc/testsuite/g++.dg/gcov/gcov-3.h
  a7c093e32d8e0cc08e02c3253748979c  gcc/testsuite/g++.dg/gcov/gcov-4.C
*************** a7c093e32d8e0cc08e02c3253748979c  gcc/te
*** 22433,22439 ****
  e60d3e80695d06d312beddeaaaa4af1d  gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
  8d7f3725599edc040c38551cce2d1dfb  gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
  10bbabd8392ab7ee5799bc6a14018686  gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
! d56a4ac600416a83b1df465cfa26fc6a  gcc/testsuite/g++.dg/gcov/gcov.exp
  6a2ed5ca795d47c333efae7c155c43b1  gcc/testsuite/g++.dg/gcov/gcov.py
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  4486858dfdc63ab6e7f3c42c2b6b11ed  gcc/testsuite/g++.dg/gcov/loop.C
--- 23978,23984 ----
  e60d3e80695d06d312beddeaaaa4af1d  gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
  8d7f3725599edc040c38551cce2d1dfb  gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
  10bbabd8392ab7ee5799bc6a14018686  gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
! c17f00247de7271752fc847e6e29bddb  gcc/testsuite/g++.dg/gcov/gcov.exp
  6a2ed5ca795d47c333efae7c155c43b1  gcc/testsuite/g++.dg/gcov/gcov.py
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  4486858dfdc63ab6e7f3c42c2b6b11ed  gcc/testsuite/g++.dg/gcov/loop.C
*************** d56a4ac600416a83b1df465cfa26fc6a  gcc/te
*** 22441,22455 ****
  d7a0158c08e0cb831164f3f727141d1c  gcc/testsuite/g++.dg/gcov/pr16855.C
  62015e4e627cd00c71bb0efd21af8d60  gcc/testsuite/g++.dg/gcov/pr84548.C
  c8c006792fd429653df69e08d74da961  gcc/testsuite/g++.dg/gcov/pr86109.C
! 3c05a5a4b4007f9635bf800d5335487b  gcc/testsuite/g++.dg/gcov/pr88045.C
! 4b51d237aa9bfa5af327e60a92ae443d  gcc/testsuite/g++.dg/gcov/pr88263-2.C
! 2256e0b8d2be05ed34e75663798e12c1  gcc/testsuite/g++.dg/gcov/pr88263.C
  14809830afac2f8e87ac2dfecece2811  gcc/testsuite/g++.dg/gcov/pr97069.C
  a967f09270d7b705a4f98a125b76c7a6  gcc/testsuite/g++.dg/gcov/pr98273.C
  7ad2f2c71c908fc0a03c6dc6be0bbd06  gcc/testsuite/g++.dg/gcov/ternary.C
  d1af8bc5c6a98042b0799693ddd97d27  gcc/testsuite/g++.dg/gcov/test-gcov-17.py
  756bdf5e4081168579b0347da701c42f  gcc/testsuite/g++.dg/gcov/test-pr98273.py
! 3299805de7b8c62cbc3a4d07e8b6a017  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  57aec36453f242d12bf5515cb425f04e  gcc/testsuite/g++.dg/goacc/cache-1.C
  1f2e4a88f87fa010e31b6c237e00aea7  gcc/testsuite/g++.dg/goacc/cache-2.C
  7f9f08a09fc949be2045ab00795bc184  gcc/testsuite/g++.dg/goacc/cache-3-1.C
--- 23986,24000 ----
  d7a0158c08e0cb831164f3f727141d1c  gcc/testsuite/g++.dg/gcov/pr16855.C
  62015e4e627cd00c71bb0efd21af8d60  gcc/testsuite/g++.dg/gcov/pr84548.C
  c8c006792fd429653df69e08d74da961  gcc/testsuite/g++.dg/gcov/pr86109.C
! d2e89a1ccbe138ac6c1ad8359bee03c4  gcc/testsuite/g++.dg/gcov/pr88045.C
! f6e2ac662bfeab361b3abd4ebe560439  gcc/testsuite/g++.dg/gcov/pr88263-2.C
! 35820b0a0f2a5f7f71799be446ead7fe  gcc/testsuite/g++.dg/gcov/pr88263.C
  14809830afac2f8e87ac2dfecece2811  gcc/testsuite/g++.dg/gcov/pr97069.C
  a967f09270d7b705a4f98a125b76c7a6  gcc/testsuite/g++.dg/gcov/pr98273.C
  7ad2f2c71c908fc0a03c6dc6be0bbd06  gcc/testsuite/g++.dg/gcov/ternary.C
  d1af8bc5c6a98042b0799693ddd97d27  gcc/testsuite/g++.dg/gcov/test-gcov-17.py
  756bdf5e4081168579b0347da701c42f  gcc/testsuite/g++.dg/gcov/test-pr98273.py
! 43e67e5747bff990dcdf1da760341232  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  57aec36453f242d12bf5515cb425f04e  gcc/testsuite/g++.dg/goacc/cache-1.C
  1f2e4a88f87fa010e31b6c237e00aea7  gcc/testsuite/g++.dg/goacc/cache-2.C
  7f9f08a09fc949be2045ab00795bc184  gcc/testsuite/g++.dg/goacc/cache-3-1.C
*************** d4df15d043d8968539a88c1beeda4e7e  gcc/te
*** 22460,22482 ****
  ab5a2e3886c2a5718ee179f9c9a446ce  gcc/testsuite/g++.dg/goacc/declare-pr94120.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
  50fb26ed859d201ce4b714967a5c4066  gcc/testsuite/g++.dg/goacc/firstprivate-mappings-1.C
! 8c6077a2523125036cc7e7f5396b292f  gcc/testsuite/g++.dg/goacc/goacc.exp
  584c742e0613158e5e3d528f9ded5463  gcc/testsuite/g++.dg/goacc/mdc.C
  919ddcaeee68dd7dab5e3cf7adf25963  gcc/testsuite/g++.dg/goacc/member-array-acc.C
  d597d4e7ee031afa50fadecd64ddac77  gcc/testsuite/g++.dg/goacc/pr101759.C
  e52e88addea4404d3b276d25b44761c5  gcc/testsuite/g++.dg/goacc/pr107028-1.C
! 850fa88299e8bcfd8762d4f56284ac92  gcc/testsuite/g++.dg/goacc/pr107028-2.C
  e2e937b81f60d45e6f0fbe6cdc7207e4  gcc/testsuite/g++.dg/goacc/reference.C
  18b27d379a2a779f530009ced1114ae3  gcc/testsuite/g++.dg/goacc/routine-1.C
  9be1fd00ad32c627f4396d3b564fad56  gcc/testsuite/g++.dg/goacc/routine-2.C
! 09546a7023f0a91753083cc3cbcd8a3d  gcc/testsuite/g++.dg/goacc/template.C
  63c7a5fb86ca9e170a766952f0dda797  gcc/testsuite/g++.dg/goacc/tile-1.C
  0ef19812fd033ce3e1a7b3f619639bc6  gcc/testsuite/g++.dg/gomp/all-memory-1.C
  95770641a336700c84cdc07f3cba2ea1  gcc/testsuite/g++.dg/gomp/all-memory-2.C
  e741249479c6c7025b48c7e503fcff98  gcc/testsuite/g++.dg/gomp/allocate-1.C
  49202612ed526412e25f866f82bd0573  gcc/testsuite/g++.dg/gomp/allocate-2.C
  0c676d0276d06d9e6ec17a845969619a  gcc/testsuite/g++.dg/gomp/allocate-3.C
  88f1b88f618e371fa510de1faa5e2ba9  gcc/testsuite/g++.dg/gomp/allocate-4.C
  a5e156d12a28581babb7f17d06d081b0  gcc/testsuite/g++.dg/gomp/array-section-1.C
  9dc67ccab8b4be9f97d8aa37c9f1070b  gcc/testsuite/g++.dg/gomp/array-section-2.C
  0f8c6d06e1f378355b0404338dbd037b  gcc/testsuite/g++.dg/gomp/atomic-14.C
--- 24005,24041 ----
  ab5a2e3886c2a5718ee179f9c9a446ce  gcc/testsuite/g++.dg/goacc/declare-pr94120.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
  50fb26ed859d201ce4b714967a5c4066  gcc/testsuite/g++.dg/goacc/firstprivate-mappings-1.C
! af06faa72f57b0b47a6f79e4c9799a32  gcc/testsuite/g++.dg/goacc/goacc.exp
! ba83af77fe8815dad9c311986752e8e6  gcc/testsuite/g++.dg/goacc/implied-copy.C
  584c742e0613158e5e3d528f9ded5463  gcc/testsuite/g++.dg/goacc/mdc.C
  919ddcaeee68dd7dab5e3cf7adf25963  gcc/testsuite/g++.dg/goacc/member-array-acc.C
  d597d4e7ee031afa50fadecd64ddac77  gcc/testsuite/g++.dg/goacc/pr101759.C
  e52e88addea4404d3b276d25b44761c5  gcc/testsuite/g++.dg/goacc/pr107028-1.C
! 176c488257a73025f617d42c7d96d97e  gcc/testsuite/g++.dg/goacc/pr107028-2.C
! 91d9384703986e459702bbc6ba03ac37  gcc/testsuite/g++.dg/goacc/pr118590.C
  e2e937b81f60d45e6f0fbe6cdc7207e4  gcc/testsuite/g++.dg/goacc/reference.C
  18b27d379a2a779f530009ced1114ae3  gcc/testsuite/g++.dg/goacc/routine-1.C
  9be1fd00ad32c627f4396d3b564fad56  gcc/testsuite/g++.dg/goacc/routine-2.C
! e4b426a9d04e362864d65e9a4b709654  gcc/testsuite/g++.dg/goacc/template.C
  63c7a5fb86ca9e170a766952f0dda797  gcc/testsuite/g++.dg/goacc/tile-1.C
+ facf37a5278f79c198442762a7fad733  gcc/testsuite/g++.dg/gomp/adjust-args-1.C
+ 73c60a001ee959ddad8b531e6bcd2a41  gcc/testsuite/g++.dg/gomp/adjust-args-2.C
+ 5555a7fe188cb01de67cbb2396fa0881  gcc/testsuite/g++.dg/gomp/adjust-args-3.C
+ 1f78fc170dcd2b7deca0c3271e02aa83  gcc/testsuite/g++.dg/gomp/adjust-args-4.C
  0ef19812fd033ce3e1a7b3f619639bc6  gcc/testsuite/g++.dg/gomp/all-memory-1.C
  95770641a336700c84cdc07f3cba2ea1  gcc/testsuite/g++.dg/gomp/all-memory-2.C
  e741249479c6c7025b48c7e503fcff98  gcc/testsuite/g++.dg/gomp/allocate-1.C
  49202612ed526412e25f866f82bd0573  gcc/testsuite/g++.dg/gomp/allocate-2.C
  0c676d0276d06d9e6ec17a845969619a  gcc/testsuite/g++.dg/gomp/allocate-3.C
  88f1b88f618e371fa510de1faa5e2ba9  gcc/testsuite/g++.dg/gomp/allocate-4.C
+ 860ec74e962f604e234ee0887b6ef08c  gcc/testsuite/g++.dg/gomp/append-args-1.C
+ f8841da56b2cbd119a595eb97825e49a  gcc/testsuite/g++.dg/gomp/append-args-2.C
+ ae35638d6021101a691c39c642eea0bc  gcc/testsuite/g++.dg/gomp/append-args-3.C
+ 998c80f290a35bb40316517040590318  gcc/testsuite/g++.dg/gomp/append-args-4.C
+ 8aac80a176910d82c910d22060cd22c8  gcc/testsuite/g++.dg/gomp/append-args-5.C
+ 549b4226f99a3ec2e4e33efc57cd4ce4  gcc/testsuite/g++.dg/gomp/append-args-6.C
+ 5bb47181463ddde8e34cd86a5bf3fae1  gcc/testsuite/g++.dg/gomp/append-args-7.C
+ 35d72bdb8232973de4865e26ba729e4f  gcc/testsuite/g++.dg/gomp/append-args-8.C
  a5e156d12a28581babb7f17d06d081b0  gcc/testsuite/g++.dg/gomp/array-section-1.C
  9dc67ccab8b4be9f97d8aa37c9f1070b  gcc/testsuite/g++.dg/gomp/array-section-2.C
  0f8c6d06e1f378355b0404338dbd037b  gcc/testsuite/g++.dg/gomp/atomic-14.C
*************** ae22cf8f9031f97be08e4ee31a2b0046  gcc/te
*** 22500,22507 ****
  d10183d866c921ee1102edf9ffd437b0  gcc/testsuite/g++.dg/gomp/attrs-2.C
  965283315c2f10741b7faeb5a0a8aaaf  gcc/testsuite/g++.dg/gomp/attrs-20.C
  216c00f775326d2b972b2fba2e4f78bf  gcc/testsuite/g++.dg/gomp/attrs-21.C
! afb240a82f143b0c0fd381b905ad9012  gcc/testsuite/g++.dg/gomp/attrs-3.C
! f6f7f13d6edea5043634dbe54727d513  gcc/testsuite/g++.dg/gomp/attrs-4.C
  87087766f29fa1ed6f5e1834dc53e8e6  gcc/testsuite/g++.dg/gomp/attrs-5.C
  768e4f024ce850867145580f3410ade0  gcc/testsuite/g++.dg/gomp/attrs-6.C
  7e432872df1fa2926d351f6505b74cf5  gcc/testsuite/g++.dg/gomp/attrs-7.C
--- 24059,24066 ----
  d10183d866c921ee1102edf9ffd437b0  gcc/testsuite/g++.dg/gomp/attrs-2.C
  965283315c2f10741b7faeb5a0a8aaaf  gcc/testsuite/g++.dg/gomp/attrs-20.C
  216c00f775326d2b972b2fba2e4f78bf  gcc/testsuite/g++.dg/gomp/attrs-21.C
! a0d49eb317e2a3fc6166b88527bd7202  gcc/testsuite/g++.dg/gomp/attrs-3.C
! a4b430bf429ba39a09c902c162007710  gcc/testsuite/g++.dg/gomp/attrs-4.C
  87087766f29fa1ed6f5e1834dc53e8e6  gcc/testsuite/g++.dg/gomp/attrs-5.C
  768e4f024ce850867145580f3410ade0  gcc/testsuite/g++.dg/gomp/attrs-6.C
  7e432872df1fa2926d351f6505b74cf5  gcc/testsuite/g++.dg/gomp/attrs-7.C
*************** afbb2c51ce08bb72df769bd10e2948b8  gcc/te
*** 22561,22573 ****
  9479e2595bf2b81d58fa940437142278  gcc/testsuite/g++.dg/gomp/declare-target-3.C
  8dd796e15f21bd038ce2a7f7b865f164  gcc/testsuite/g++.dg/gomp/declare-target-indirect-1.C
  661796737d5bdc4f428545f6e32f9ac2  gcc/testsuite/g++.dg/gomp/declare-variant-1.C
  14f834df1acdef3ccbee41dbf18da40d  gcc/testsuite/g++.dg/gomp/declare-variant-2.C
! 61438eb8a5d5231221ac5015a580d002  gcc/testsuite/g++.dg/gomp/declare-variant-3.C
  cbaf9e309016625d6201bbda7a36b3bd  gcc/testsuite/g++.dg/gomp/declare-variant-4.C
! a3f2e52db25001dd2c0c657370103181  gcc/testsuite/g++.dg/gomp/declare-variant-5.C
  123fa55359a62c8d9629112336b31c22  gcc/testsuite/g++.dg/gomp/declare-variant-6.C
  dab31b3a40ca29ce009cab53890820ab  gcc/testsuite/g++.dg/gomp/declare-variant-7.C
  f1c961906365e69ec5d85efca251f7e0  gcc/testsuite/g++.dg/gomp/declare-variant-8.C
  0ee7395de6f3410cc3e0730f18e4a8f6  gcc/testsuite/g++.dg/gomp/default-1.C
  7051d268375289f1835cdff78728de81  gcc/testsuite/g++.dg/gomp/depend-1.C
  5ed836221748ac8946497bda6d311d53  gcc/testsuite/g++.dg/gomp/depend-2.C
--- 24120,24137 ----
  9479e2595bf2b81d58fa940437142278  gcc/testsuite/g++.dg/gomp/declare-target-3.C
  8dd796e15f21bd038ce2a7f7b865f164  gcc/testsuite/g++.dg/gomp/declare-target-indirect-1.C
  661796737d5bdc4f428545f6e32f9ac2  gcc/testsuite/g++.dg/gomp/declare-variant-1.C
+ 825bbebb080617f8bbb522a6cba06855  gcc/testsuite/g++.dg/gomp/declare-variant-10.C
+ 8c5c1fb82e121fce4fafd8f8b6d5df86  gcc/testsuite/g++.dg/gomp/declare-variant-11.C
  14f834df1acdef3ccbee41dbf18da40d  gcc/testsuite/g++.dg/gomp/declare-variant-2.C
! 697b8d514b0b24b3f52795d7ba9cae75  gcc/testsuite/g++.dg/gomp/declare-variant-3.C
  cbaf9e309016625d6201bbda7a36b3bd  gcc/testsuite/g++.dg/gomp/declare-variant-4.C
! 3ad4410e65a8fae033d233c8b1137a78  gcc/testsuite/g++.dg/gomp/declare-variant-5.C
  123fa55359a62c8d9629112336b31c22  gcc/testsuite/g++.dg/gomp/declare-variant-6.C
  dab31b3a40ca29ce009cab53890820ab  gcc/testsuite/g++.dg/gomp/declare-variant-7.C
  f1c961906365e69ec5d85efca251f7e0  gcc/testsuite/g++.dg/gomp/declare-variant-8.C
+ 584101602ca9c8a69cf06d4ad4fe9e7a  gcc/testsuite/g++.dg/gomp/declare-variant-9.C
+ 286892e393f01ad35a3d223d7ea77283  gcc/testsuite/g++.dg/gomp/declare-variant-class-1.C
+ 7b91164e0a121872e8cc5b15d80ca903  gcc/testsuite/g++.dg/gomp/declare-variant-class-2.C
  0ee7395de6f3410cc3e0730f18e4a8f6  gcc/testsuite/g++.dg/gomp/default-1.C
  7051d268375289f1835cdff78728de81  gcc/testsuite/g++.dg/gomp/depend-1.C
  5ed836221748ac8946497bda6d311d53  gcc/testsuite/g++.dg/gomp/depend-2.C
*************** fb99d6d7d52ead46e97905bf42cf8877  gcc/te
*** 22575,22586 ****
  55e3a09904888da975d3d4b76f18d294  gcc/testsuite/g++.dg/gomp/depend-iterator-2.C
  e7b69c86d16171732a1c9ef74218d864  gcc/testsuite/g++.dg/gomp/depend-iterator-3.C
  c88ca9ee83e21423c9398c9f32d372a8  gcc/testsuite/g++.dg/gomp/depobj-1.C
  b3a64480fb5bca64c20c44719293a088  gcc/testsuite/g++.dg/gomp/doacross-1.C
  bed93c8af3078a414d71ee17e30cb559  gcc/testsuite/g++.dg/gomp/doacross-2.C
  a641b3c27a53d1c10c399e1d07c6aaba  gcc/testsuite/g++.dg/gomp/error-1.C
  e4901d684aa3fbe52403cc2e9ed392dd  gcc/testsuite/g++.dg/gomp/flush-1.C
  ef2c50dfa26076520b9b148afd7e6d6b  gcc/testsuite/g++.dg/gomp/flush-2.C
! c997d28408785fd402deed9c757ec3b2  gcc/testsuite/g++.dg/gomp/for-1.C
  1aec673db23320e0cbf990aab75fecf4  gcc/testsuite/g++.dg/gomp/for-10.C
  7b60b57825223f2168d68cd5239c7972  gcc/testsuite/g++.dg/gomp/for-11.C
  960deaf5aecaf20f0fe9fe964a0fda95  gcc/testsuite/g++.dg/gomp/for-12.C
--- 24139,24158 ----
  55e3a09904888da975d3d4b76f18d294  gcc/testsuite/g++.dg/gomp/depend-iterator-2.C
  e7b69c86d16171732a1c9ef74218d864  gcc/testsuite/g++.dg/gomp/depend-iterator-3.C
  c88ca9ee83e21423c9398c9f32d372a8  gcc/testsuite/g++.dg/gomp/depobj-1.C
+ a93deb73566f880b8420dd06c26750b5  gcc/testsuite/g++.dg/gomp/dispatch-1.C
+ 6a401190e5aa4ea61651f1080bd57637  gcc/testsuite/g++.dg/gomp/dispatch-2.C
+ 04a22e19298efac2e169e318609a8961  gcc/testsuite/g++.dg/gomp/dispatch-3.C
+ 194e19ef5cde750ddcbd34f9ea6b2740  gcc/testsuite/g++.dg/gomp/dispatch-4.C
+ 3f33233c5f6b4928667ae8b74fc81ad1  gcc/testsuite/g++.dg/gomp/dispatch-5.C
+ 5666590bfa364d6311c30fafadf2e21f  gcc/testsuite/g++.dg/gomp/dispatch-6.C
+ b3f41c0c1381b2bae198c4ab1e38b649  gcc/testsuite/g++.dg/gomp/dispatch-7.C
+ 4a5e8d5627864d7862c4aef870dd82b1  gcc/testsuite/g++.dg/gomp/dispatch-8.C
  b3a64480fb5bca64c20c44719293a088  gcc/testsuite/g++.dg/gomp/doacross-1.C
  bed93c8af3078a414d71ee17e30cb559  gcc/testsuite/g++.dg/gomp/doacross-2.C
  a641b3c27a53d1c10c399e1d07c6aaba  gcc/testsuite/g++.dg/gomp/error-1.C
  e4901d684aa3fbe52403cc2e9ed392dd  gcc/testsuite/g++.dg/gomp/flush-1.C
  ef2c50dfa26076520b9b148afd7e6d6b  gcc/testsuite/g++.dg/gomp/flush-2.C
! 8f2e698665543992cfe8d7b3e19dbb17  gcc/testsuite/g++.dg/gomp/for-1.C
  1aec673db23320e0cbf990aab75fecf4  gcc/testsuite/g++.dg/gomp/for-10.C
  7b60b57825223f2168d68cd5239c7972  gcc/testsuite/g++.dg/gomp/for-11.C
  960deaf5aecaf20f0fe9fe964a0fda95  gcc/testsuite/g++.dg/gomp/for-12.C
*************** be30540ffa5cb139e4f1f5ae1c518fe1  gcc/te
*** 22602,22610 ****
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/g++.dg/gomp/for-7.C
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/g++.dg/gomp/for-8.C
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/g++.dg/gomp/for-9.C
! 7dc85cc76c63ff56559ee1bee2c70c5c  gcc/testsuite/g++.dg/gomp/gomp.exp
! ed8c8d7e49d44c56a03dadda1967afe4  gcc/testsuite/g++.dg/gomp/has_device_addr-non-lvalue-1.C
! ae3b38797a8d064130fa00c791c04c53  gcc/testsuite/g++.dg/gomp/ind-base-3.C
  eb763d050fd680e1a3302fbda441475d  gcc/testsuite/g++.dg/gomp/lastprivate-1.C
  7f682781cd88149270eb73eb44f419f7  gcc/testsuite/g++.dg/gomp/linear-1.C
  2fe09fbd7df28122d262deb35faa2ae9  gcc/testsuite/g++.dg/gomp/linear-2.C
--- 24174,24183 ----
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/g++.dg/gomp/for-7.C
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/g++.dg/gomp/for-8.C
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/g++.dg/gomp/for-9.C
! ca133d5331151195fe83821418918120  gcc/testsuite/g++.dg/gomp/gomp.exp
! 5ba807a5630d6b67e06971a0b91ca947  gcc/testsuite/g++.dg/gomp/has_device_addr-non-lvalue-1.C
! 6f31af1c2ea2f93713b63640ff4b8e57  gcc/testsuite/g++.dg/gomp/ind-base-3.C
! 84e8c7f5cf2d79dc03b900128ace9599  gcc/testsuite/g++.dg/gomp/interop-5.C
  eb763d050fd680e1a3302fbda441475d  gcc/testsuite/g++.dg/gomp/lastprivate-1.C
  7f682781cd88149270eb73eb44f419f7  gcc/testsuite/g++.dg/gomp/linear-1.C
  2fe09fbd7df28122d262deb35faa2ae9  gcc/testsuite/g++.dg/gomp/linear-2.C
*************** eabb0107af4ef893414bb3cef506ad03  gcc/te
*** 22626,22638 ****
  2a90373b9280848f40b1036e42fdd914  gcc/testsuite/g++.dg/gomp/map-1.C
  cd955c2057012ba387a6b029e23c0d53  gcc/testsuite/g++.dg/gomp/map-2.C
  9dfc87617a82c07e89fab7b80d5eaf22  gcc/testsuite/g++.dg/gomp/map-3.C
! e5b189ee4a3bb6f9f0205103fd6fba94  gcc/testsuite/g++.dg/gomp/map-assignment-1.C
  e12974abf2bb742407d18e9d07505400  gcc/testsuite/g++.dg/gomp/map-inc-1.C
! 8190d5faefb46e7b70becb75fcefc77f  gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C
! f57437c250b2b182f84dd0d1d9d7b341  gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
! b23797814a760dc59cc9f9f8d2365817  gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
! 9f02446fbbdade1e09ad37d65edd643f  gcc/testsuite/g++.dg/gomp/map-static-cast-lvalue-1.C
! 534443dfdc7d6b84174e8df644ea72dd  gcc/testsuite/g++.dg/gomp/map-ternary-1.C
  c0b53dcb8d3f8e31c7445987d35c43e7  gcc/testsuite/g++.dg/gomp/masked-1.C
  9dff449fe2d97c4b3ade07b982e69364  gcc/testsuite/g++.dg/gomp/master-1.C
  c6830eca56ca17885a14ffa21aeb16c4  gcc/testsuite/g++.dg/gomp/master-2.C
--- 24199,24211 ----
  2a90373b9280848f40b1036e42fdd914  gcc/testsuite/g++.dg/gomp/map-1.C
  cd955c2057012ba387a6b029e23c0d53  gcc/testsuite/g++.dg/gomp/map-2.C
  9dfc87617a82c07e89fab7b80d5eaf22  gcc/testsuite/g++.dg/gomp/map-3.C
! 2fd2c913b551d0babeb55eaa546298d3  gcc/testsuite/g++.dg/gomp/map-assignment-1.C
  e12974abf2bb742407d18e9d07505400  gcc/testsuite/g++.dg/gomp/map-inc-1.C
! ebd0af100c738096180052a774559603  gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C
! b43bc449348b8a49a2fd8eaeea028d67  gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
! 8e85b0c099213636ef4b6011f0b1ba8c  gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
! 150dbb1ed7f7addc7f90aa669a7813c5  gcc/testsuite/g++.dg/gomp/map-static-cast-lvalue-1.C
! 8f59cb3d015ee89e45d623e205a09a5b  gcc/testsuite/g++.dg/gomp/map-ternary-1.C
  c0b53dcb8d3f8e31c7445987d35c43e7  gcc/testsuite/g++.dg/gomp/masked-1.C
  9dff449fe2d97c4b3ade07b982e69364  gcc/testsuite/g++.dg/gomp/master-1.C
  c6830eca56ca17885a14ffa21aeb16c4  gcc/testsuite/g++.dg/gomp/master-2.C
*************** aec913fefeac6132003dfcbe3fd035eb  gcc/te
*** 22641,22651 ****
  fc63cfdc56a33b15fa4d063e5ef655b2  gcc/testsuite/g++.dg/gomp/member-2.C
  57b9a2c844df3931aacf1c2702dc3ebe  gcc/testsuite/g++.dg/gomp/member-3.C
  135dd9ca392aa9976b7a20570053aa68  gcc/testsuite/g++.dg/gomp/member-4.C
! cf4f908d9d115e619d064cf64d29b98c  gcc/testsuite/g++.dg/gomp/member-array-2.C
  b04637997ce93ec04bd981d2cda2f110  gcc/testsuite/g++.dg/gomp/member-array-omp.C
  40ddfb4cf46a4ea2a28ece501a9d1b2b  gcc/testsuite/g++.dg/gomp/method-1.C
  d829c2c1f9a522a97ec0370c1f67a993  gcc/testsuite/g++.dg/gomp/num-teams-1.C
  ebf6d36088516c323fa66747a975021b  gcc/testsuite/g++.dg/gomp/num-teams-2.C
  76682136fc1c0725cd4472b43ebc8e34  gcc/testsuite/g++.dg/gomp/ompx-attrs-1.C
  badbf609721acd5ee04999023c4af494  gcc/testsuite/g++.dg/gomp/openmp-simd-1.C
  2e7e4a5c79eb8fe54062fed88c9a9fa3  gcc/testsuite/g++.dg/gomp/openmp-simd-2.C
--- 24214,24226 ----
  fc63cfdc56a33b15fa4d063e5ef655b2  gcc/testsuite/g++.dg/gomp/member-2.C
  57b9a2c844df3931aacf1c2702dc3ebe  gcc/testsuite/g++.dg/gomp/member-3.C
  135dd9ca392aa9976b7a20570053aa68  gcc/testsuite/g++.dg/gomp/member-4.C
! c1d74700c9732009a221d3e853e0d1a3  gcc/testsuite/g++.dg/gomp/member-array-2.C
  b04637997ce93ec04bd981d2cda2f110  gcc/testsuite/g++.dg/gomp/member-array-omp.C
+ ab2ceb1dedc2f10e9f7e407653985ce1  gcc/testsuite/g++.dg/gomp/metadirective-template-1.C
  40ddfb4cf46a4ea2a28ece501a9d1b2b  gcc/testsuite/g++.dg/gomp/method-1.C
  d829c2c1f9a522a97ec0370c1f67a993  gcc/testsuite/g++.dg/gomp/num-teams-1.C
  ebf6d36088516c323fa66747a975021b  gcc/testsuite/g++.dg/gomp/num-teams-2.C
+ 7cab62d4597c7508602b2872985c06f6  gcc/testsuite/g++.dg/gomp/omp-constexpr.C
  76682136fc1c0725cd4472b43ebc8e34  gcc/testsuite/g++.dg/gomp/ompx-attrs-1.C
  badbf609721acd5ee04999023c4af494  gcc/testsuite/g++.dg/gomp/openmp-simd-1.C
  2e7e4a5c79eb8fe54062fed88c9a9fa3  gcc/testsuite/g++.dg/gomp/openmp-simd-2.C
*************** b2b4c495143bcddf8d93ab8981f20a56  gcc/te
*** 22671,22678 ****
  bd9556c57358bc478181fd7105e19b2f  gcc/testsuite/g++.dg/gomp/pr106829.C
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
  641b551c65455ce91907afab3c572a40  gcc/testsuite/g++.dg/gomp/pr108503.C
! e6195ed8251ecef3da90dc8d0e37ed89  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
  539bba6df5330b7a6631eca5665a0899  gcc/testsuite/g++.dg/gomp/pr24849.C
  78ea34fd7a1a2767f61a703271e7070a  gcc/testsuite/g++.dg/gomp/pr25874.C
  93a85a09acfdf011a86ff95fc9184a94  gcc/testsuite/g++.dg/gomp/pr25996.C
--- 24246,24255 ----
  bd9556c57358bc478181fd7105e19b2f  gcc/testsuite/g++.dg/gomp/pr106829.C
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
  641b551c65455ce91907afab3c572a40  gcc/testsuite/g++.dg/gomp/pr108503.C
! a8cfc657234f5f421b289d2fa6196965  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
+ 26a3372fea4c1feb18b0081e1b3f169f  gcc/testsuite/g++.dg/gomp/pr118876.C
+ d03592521d487e264b0b5e3ef6f3dfb8  gcc/testsuite/g++.dg/gomp/pr119370.C
  539bba6df5330b7a6631eca5665a0899  gcc/testsuite/g++.dg/gomp/pr24849.C
  78ea34fd7a1a2767f61a703271e7070a  gcc/testsuite/g++.dg/gomp/pr25874.C
  93a85a09acfdf011a86ff95fc9184a94  gcc/testsuite/g++.dg/gomp/pr25996.C
*************** ac4d6ed4fa7dd3fbe3400c186a7c46d8  gcc/te
*** 22761,22767 ****
  69587a534832b53372f1e04087c04986  gcc/testsuite/g++.dg/gomp/pr67514.C
  ecf41756ab01cb83fcaacdb5ebfe43a5  gcc/testsuite/g++.dg/gomp/pr67522.C
  1c935120e3c1e7d165ea068f57519a6e  gcc/testsuite/g++.dg/gomp/pr67523.C
! 1e46e97dc4fca9257e078353e30f0add  gcc/testsuite/g++.dg/gomp/pr71910.C
  79e222486ea33d87026b4ecac4bb3593  gcc/testsuite/g++.dg/gomp/pr71941.C
  5e66dc6a8c97cb2d52f6d3a0491d0e75  gcc/testsuite/g++.dg/gomp/pr77578.C
  e517132ae674bc848e5ee4b0da030545  gcc/testsuite/g++.dg/gomp/pr78363-1.C
--- 24338,24344 ----
  69587a534832b53372f1e04087c04986  gcc/testsuite/g++.dg/gomp/pr67514.C
  ecf41756ab01cb83fcaacdb5ebfe43a5  gcc/testsuite/g++.dg/gomp/pr67522.C
  1c935120e3c1e7d165ea068f57519a6e  gcc/testsuite/g++.dg/gomp/pr67523.C
! b428c7f93716fb0816637554558e5f4e  gcc/testsuite/g++.dg/gomp/pr71910.C
  79e222486ea33d87026b4ecac4bb3593  gcc/testsuite/g++.dg/gomp/pr71941.C
  5e66dc6a8c97cb2d52f6d3a0491d0e75  gcc/testsuite/g++.dg/gomp/pr77578.C
  e517132ae674bc848e5ee4b0da030545  gcc/testsuite/g++.dg/gomp/pr78363-1.C
*************** f0ca29d7ad7cbea99e20dbbd47fccc3a  gcc/te
*** 22772,22778 ****
  07a5c3f588f1e61335a990d16052ec53  gcc/testsuite/g++.dg/gomp/pr78363-6.C
  de66b2101b13469eca3715a5cc2415c6  gcc/testsuite/g++.dg/gomp/pr78363-7.C
  b818df42e2e83be27f8843cc160f0681  gcc/testsuite/g++.dg/gomp/pr79429.C
! 0f6fd45a68cfb01a2272d6d06a62c821  gcc/testsuite/g++.dg/gomp/pr79664.C
  61f6175348fda4d4917305d233417a28  gcc/testsuite/g++.dg/gomp/pr80141.C
  ba547a4dc52e5fa57b7cf7b21dfac263  gcc/testsuite/g++.dg/gomp/pr81011.C
  002e68c629105684ed6e09f1c3c9f806  gcc/testsuite/g++.dg/gomp/pr81154.C
--- 24349,24355 ----
  07a5c3f588f1e61335a990d16052ec53  gcc/testsuite/g++.dg/gomp/pr78363-6.C
  de66b2101b13469eca3715a5cc2415c6  gcc/testsuite/g++.dg/gomp/pr78363-7.C
  b818df42e2e83be27f8843cc160f0681  gcc/testsuite/g++.dg/gomp/pr79429.C
! 03a632d72ed79c2b1b1996781b77b41c  gcc/testsuite/g++.dg/gomp/pr79664.C
  61f6175348fda4d4917305d233417a28  gcc/testsuite/g++.dg/gomp/pr80141.C
  ba547a4dc52e5fa57b7cf7b21dfac263  gcc/testsuite/g++.dg/gomp/pr81011.C
  002e68c629105684ed6e09f1c3c9f806  gcc/testsuite/g++.dg/gomp/pr81154.C
*************** f4af350e7c840b674d4df142d3432e80  gcc/te
*** 22791,22809 ****
  4b42a7fda8d3ea41699780101b9c6384  gcc/testsuite/g++.dg/gomp/pr88949.C
  c1464987d35d87dd8f66e42e5434dd87  gcc/testsuite/g++.dg/gomp/pr89796.C
  4d6a970762eba274ac2fc9b9d39029e5  gcc/testsuite/g++.dg/gomp/pr91110.C
! 3ceb435fbb695a14bdd86c4f3ecd2307  gcc/testsuite/g++.dg/gomp/pr91118-1.C
  bc8b7b694dfa419e9a5ac679bb294b77  gcc/testsuite/g++.dg/gomp/pr91118-2.C
  ebf8a1329362091236a2248545e72ed3  gcc/testsuite/g++.dg/gomp/pr92084.C
  32a827a0f114f3ea9fa6a18789870b5a  gcc/testsuite/g++.dg/gomp/pr92504.C
  e80a40859e24951bb463534000ef38b8  gcc/testsuite/g++.dg/gomp/pr94477.C
! 357f11d1519441281479c8d4810b10f7  gcc/testsuite/g++.dg/gomp/pr94512.C
  ece594bf6d3e6ff699a427e6b710a3e9  gcc/testsuite/g++.dg/gomp/pr95063.C
  7faadc6618faa24df7ab4f7cc242a698  gcc/testsuite/g++.dg/gomp/pr98383.C
  7526d50396828b70db2a5c6c2e0c06f1  gcc/testsuite/g++.dg/gomp/pr99007.C
  950c91c8fcc43774b39c6a0d1739e526  gcc/testsuite/g++.dg/gomp/predetermined-1.C
  a6479847f9d522f85cbd16a46d7f9698  gcc/testsuite/g++.dg/gomp/private-1.C
  d447246d410ae61ed9f733998e77b958  gcc/testsuite/g++.dg/gomp/reference-1.C
! 4afe79565f9f5122ef9e82d486550a31  gcc/testsuite/g++.dg/gomp/requires-1.C
  ffadc8e40c091c0d15ed95d26b29e5a6  gcc/testsuite/g++.dg/gomp/requires-2.C
  a041602adc6954974b227cecf103a64b  gcc/testsuite/g++.dg/gomp/scan-1.C
  536359d59fc418a1570a6d8574a66ca1  gcc/testsuite/g++.dg/gomp/sections-1.C
--- 24368,24386 ----
  4b42a7fda8d3ea41699780101b9c6384  gcc/testsuite/g++.dg/gomp/pr88949.C
  c1464987d35d87dd8f66e42e5434dd87  gcc/testsuite/g++.dg/gomp/pr89796.C
  4d6a970762eba274ac2fc9b9d39029e5  gcc/testsuite/g++.dg/gomp/pr91110.C
! cd480ac7c6ec75b5c415bce7a22c2d2c  gcc/testsuite/g++.dg/gomp/pr91118-1.C
  bc8b7b694dfa419e9a5ac679bb294b77  gcc/testsuite/g++.dg/gomp/pr91118-2.C
  ebf8a1329362091236a2248545e72ed3  gcc/testsuite/g++.dg/gomp/pr92084.C
  32a827a0f114f3ea9fa6a18789870b5a  gcc/testsuite/g++.dg/gomp/pr92504.C
  e80a40859e24951bb463534000ef38b8  gcc/testsuite/g++.dg/gomp/pr94477.C
! 21ac9533c0a9f9aabd2376182901e7ab  gcc/testsuite/g++.dg/gomp/pr94512.C
  ece594bf6d3e6ff699a427e6b710a3e9  gcc/testsuite/g++.dg/gomp/pr95063.C
  7faadc6618faa24df7ab4f7cc242a698  gcc/testsuite/g++.dg/gomp/pr98383.C
  7526d50396828b70db2a5c6c2e0c06f1  gcc/testsuite/g++.dg/gomp/pr99007.C
  950c91c8fcc43774b39c6a0d1739e526  gcc/testsuite/g++.dg/gomp/predetermined-1.C
  a6479847f9d522f85cbd16a46d7f9698  gcc/testsuite/g++.dg/gomp/private-1.C
  d447246d410ae61ed9f733998e77b958  gcc/testsuite/g++.dg/gomp/reference-1.C
! 0b52f9ed20fd78b770c761b4e1c0dced  gcc/testsuite/g++.dg/gomp/requires-1.C
  ffadc8e40c091c0d15ed95d26b29e5a6  gcc/testsuite/g++.dg/gomp/requires-2.C
  a041602adc6954974b227cecf103a64b  gcc/testsuite/g++.dg/gomp/scan-1.C
  536359d59fc418a1570a6d8574a66ca1  gcc/testsuite/g++.dg/gomp/sections-1.C
*************** f97f1706978c263c63bb1cf7a9b02300  gcc/te
*** 22816,22835 ****
  02e91fef2b3e3caf9b1f7f5696c2c507  gcc/testsuite/g++.dg/gomp/simd-2.C
  2b624343bfc79fe101d846a4291f71c8  gcc/testsuite/g++.dg/gomp/simd-3.C
  459676a4eb36be81f7a549bd53ee45ab  gcc/testsuite/g++.dg/gomp/sink-1.C
! 0412fd9af76a7ee57249908358bbd69e  gcc/testsuite/g++.dg/gomp/sink-2.C
  4700c4fd7a0a53bd064b879e10cad37f  gcc/testsuite/g++.dg/gomp/sink-3.C
  4541b6dd317dc0f0bacd5159c57858da  gcc/testsuite/g++.dg/gomp/static-component-1.C
  d5056d7847f2753ff16e19275fe96735  gcc/testsuite/g++.dg/gomp/target-1.C
  8c284b2db0213aba2b9a945275ec6d74  gcc/testsuite/g++.dg/gomp/target-2.C
  e9b0e4dd4a2b6b1859c38faf273fc7ed  gcc/testsuite/g++.dg/gomp/target-3.C
! 0af399d08e71042cdbc9609c343d255c  gcc/testsuite/g++.dg/gomp/target-lambda-2.C
  cb5219ee6745fc371bfbb0e484f3205e  gcc/testsuite/g++.dg/gomp/target-simd-clone-1.C
  e033ffcb572e3c374bf58a0eebd43584  gcc/testsuite/g++.dg/gomp/target-simd-clone-2.C
  2948a42eb9b2368cd175c4e97e1ec30e  gcc/testsuite/g++.dg/gomp/target-teams-1.C
  bcd255e2d0e26acf60901103fc4678cc  gcc/testsuite/g++.dg/gomp/target-this-1.C
  cbbe10902855a271b9728e1fc6174c53  gcc/testsuite/g++.dg/gomp/target-this-2.C
! 2a44d8c1d41013b395d193ec94b2beaf  gcc/testsuite/g++.dg/gomp/target-this-3.C
! 717b2e043a5bda67763b3e13f2df048c  gcc/testsuite/g++.dg/gomp/target-this-4.C
  0ff4f4ce212c8528a4be5b080fdf156c  gcc/testsuite/g++.dg/gomp/target-this-5.C
  926d8449d7242be3abf0b04b4f5a0201  gcc/testsuite/g++.dg/gomp/task-1.C
  dd317148fbd7859764db9b7028cfa23d  gcc/testsuite/g++.dg/gomp/task-detach-1.C
--- 24393,24412 ----
  02e91fef2b3e3caf9b1f7f5696c2c507  gcc/testsuite/g++.dg/gomp/simd-2.C
  2b624343bfc79fe101d846a4291f71c8  gcc/testsuite/g++.dg/gomp/simd-3.C
  459676a4eb36be81f7a549bd53ee45ab  gcc/testsuite/g++.dg/gomp/sink-1.C
! ace106d74abcf8296a991293066c7c51  gcc/testsuite/g++.dg/gomp/sink-2.C
  4700c4fd7a0a53bd064b879e10cad37f  gcc/testsuite/g++.dg/gomp/sink-3.C
  4541b6dd317dc0f0bacd5159c57858da  gcc/testsuite/g++.dg/gomp/static-component-1.C
  d5056d7847f2753ff16e19275fe96735  gcc/testsuite/g++.dg/gomp/target-1.C
  8c284b2db0213aba2b9a945275ec6d74  gcc/testsuite/g++.dg/gomp/target-2.C
  e9b0e4dd4a2b6b1859c38faf273fc7ed  gcc/testsuite/g++.dg/gomp/target-3.C
! 1b305722cc5c4a70d422333277766f99  gcc/testsuite/g++.dg/gomp/target-lambda-2.C
  cb5219ee6745fc371bfbb0e484f3205e  gcc/testsuite/g++.dg/gomp/target-simd-clone-1.C
  e033ffcb572e3c374bf58a0eebd43584  gcc/testsuite/g++.dg/gomp/target-simd-clone-2.C
  2948a42eb9b2368cd175c4e97e1ec30e  gcc/testsuite/g++.dg/gomp/target-teams-1.C
  bcd255e2d0e26acf60901103fc4678cc  gcc/testsuite/g++.dg/gomp/target-this-1.C
  cbbe10902855a271b9728e1fc6174c53  gcc/testsuite/g++.dg/gomp/target-this-2.C
! 1ea95fd2d354c89d4bed13b84496ed98  gcc/testsuite/g++.dg/gomp/target-this-3.C
! d72a2468e540ea752d7c7d28b798724f  gcc/testsuite/g++.dg/gomp/target-this-4.C
  0ff4f4ce212c8528a4be5b080fdf156c  gcc/testsuite/g++.dg/gomp/target-this-5.C
  926d8449d7242be3abf0b04b4f5a0201  gcc/testsuite/g++.dg/gomp/task-1.C
  dd317148fbd7859764db9b7028cfa23d  gcc/testsuite/g++.dg/gomp/task-detach-1.C
*************** dd317148fbd7859764db9b7028cfa23d  gcc/te
*** 22837,22842 ****
--- 24414,24421 ----
  104e3fe5ad79c64aa1ed9ae097073285  gcc/testsuite/g++.dg/gomp/teams-1.C
  a547c8ef2e75bfdc4d85b287f9987f7e  gcc/testsuite/g++.dg/gomp/this-1.C
  e21ee3fa41dbe8ceab108966a5db5da1  gcc/testsuite/g++.dg/gomp/this-2.C
+ d33157bf093fa9416ea59275786be06a  gcc/testsuite/g++.dg/gomp/tile-1.C
+ 3252943f02588e7632c064514c967ab0  gcc/testsuite/g++.dg/gomp/tile-2.C
  e413a547924c043723b9ade8080ee072  gcc/testsuite/g++.dg/gomp/tls-1.C
  cd8b1db623a07d865bb9a34cd8affe37  gcc/testsuite/g++.dg/gomp/tls-2.C
  b3697ff885906cda6a552df791bb35c6  gcc/testsuite/g++.dg/gomp/tls-3.C
*************** a10dd83ffd8fea8213e9a3713b91277f  gcc/te
*** 22868,22883 ****
  cbb9b7e93953b72bbadec7a3dd5d1de0  gcc/testsuite/g++.dg/gomp/udr-5.C
  432e931e22639a849a7183275e9c7582  gcc/testsuite/g++.dg/gomp/udr-6.C
  f0d6ccb51f8211f0c1ac5d76df91ff55  gcc/testsuite/g++.dg/gomp/unmappable-1.C
! 5debcf376e56fd8e6ce1155466484efc  gcc/testsuite/g++.dg/graphite/graphite.exp
! de81689ffe7845348fd7504b61336c82  gcc/testsuite/g++.dg/graphite/id-1.C
  5c6a1178f4fd620e8792644c534c29f8  gcc/testsuite/g++.dg/graphite/pr39447.C
  266d67267efa84e1ec7b55b895fd2442  gcc/testsuite/g++.dg/graphite/pr41305.C
  fd544ccfba918ae9d4f2fae95e8a9d6f  gcc/testsuite/g++.dg/graphite/pr41562.C
! dcecc8a81073a9824c153ff083f81a4a  gcc/testsuite/g++.dg/graphite/pr42130.C
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! 940a5693e15b3e164b2a48f0352f797d  gcc/testsuite/g++.dg/guality/guality.exp
  2e0a2ac35d8a11426ad1e59f818a5d03  gcc/testsuite/g++.dg/guality/guality.h
  9f6bd16255ea79978f41ff1fd8300ddc  gcc/testsuite/g++.dg/guality/pr46815.C
  be57153d0806c5827262dfc205d1ddd5  gcc/testsuite/g++.dg/guality/pr55541.C
--- 24447,24465 ----
  cbb9b7e93953b72bbadec7a3dd5d1de0  gcc/testsuite/g++.dg/gomp/udr-5.C
  432e931e22639a849a7183275e9c7582  gcc/testsuite/g++.dg/gomp/udr-6.C
  f0d6ccb51f8211f0c1ac5d76df91ff55  gcc/testsuite/g++.dg/gomp/unmappable-1.C
! d3840191ee9d2327dc2c3db177e73ca9  gcc/testsuite/g++.dg/gomp/unroll-1.C
! 37bc05caa8b8c6ca83c1173ea97e8834  gcc/testsuite/g++.dg/gomp/unroll-2.C
! cb34036a86169db3ce69df129f34b2aa  gcc/testsuite/g++.dg/gomp/unroll-3.C
! 10460bd293a45b31d22000255f88f03a  gcc/testsuite/g++.dg/graphite/graphite.exp
! d3199be15373325638c3f80cd3a60955  gcc/testsuite/g++.dg/graphite/id-1.C
  5c6a1178f4fd620e8792644c534c29f8  gcc/testsuite/g++.dg/graphite/pr39447.C
  266d67267efa84e1ec7b55b895fd2442  gcc/testsuite/g++.dg/graphite/pr41305.C
  fd544ccfba918ae9d4f2fae95e8a9d6f  gcc/testsuite/g++.dg/graphite/pr41562.C
! b37a08c48590ee57a45669e3a61fc899  gcc/testsuite/g++.dg/graphite/pr42130.C
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! 08dc2a58649d3fc498035d86e6f73fde  gcc/testsuite/g++.dg/guality/guality.exp
  2e0a2ac35d8a11426ad1e59f818a5d03  gcc/testsuite/g++.dg/guality/guality.h
  9f6bd16255ea79978f41ff1fd8300ddc  gcc/testsuite/g++.dg/guality/pr46815.C
  be57153d0806c5827262dfc205d1ddd5  gcc/testsuite/g++.dg/guality/pr55541.C
*************** b86ad3775871c742d34f5c09175822b1  gcc/te
*** 22891,22897 ****
  64b4188a8fadfd37f8f555f77b722749  gcc/testsuite/g++.dg/harden-cfr-throw-returning-O0.C
  b0909d978d1d7cd3ffc96fd125549ee4  gcc/testsuite/g++.dg/harden-cfr-throw-returning-enabled-O0.C
  d4b1aa612cf9b628d986d19617ad2770  gcc/testsuite/g++.dg/header.C
! 8d88b65ffe537632e403db97bf2b6015  gcc/testsuite/g++.dg/hwasan/hwasan.exp
  da4fad928e1600184552de0820443fc5  gcc/testsuite/g++.dg/hwasan/rvo-handled.C
  176e66df5d6aa9dd76c8fe406b78a370  gcc/testsuite/g++.dg/inherit/access1.C
  06874da0f9322a8d8220986c9c167391  gcc/testsuite/g++.dg/inherit/access2.C
--- 24473,24479 ----
  64b4188a8fadfd37f8f555f77b722749  gcc/testsuite/g++.dg/harden-cfr-throw-returning-O0.C
  b0909d978d1d7cd3ffc96fd125549ee4  gcc/testsuite/g++.dg/harden-cfr-throw-returning-enabled-O0.C
  d4b1aa612cf9b628d986d19617ad2770  gcc/testsuite/g++.dg/header.C
! ed5e6c1e3a198f4949eaab046d1811ec  gcc/testsuite/g++.dg/hwasan/hwasan.exp
  da4fad928e1600184552de0820443fc5  gcc/testsuite/g++.dg/hwasan/rvo-handled.C
  176e66df5d6aa9dd76c8fe406b78a370  gcc/testsuite/g++.dg/inherit/access1.C
  06874da0f9322a8d8220986c9c167391  gcc/testsuite/g++.dg/inherit/access2.C
*************** b7f032736331f1ff851d46fe5aef118a  gcc/te
*** 23008,23014 ****
  96de23b6f959c8b18d4f5e0f021ad980  gcc/testsuite/g++.dg/inherit/virtual5.C
  b3a302411cd7b45b85975ae0f8b1d8fb  gcc/testsuite/g++.dg/inherit/virtual6.C
  b9460b0712e4342a9676337f00a986b0  gcc/testsuite/g++.dg/inherit/virtual7.C
! 0838d6de2324f8b6f1982b4845383b8c  gcc/testsuite/g++.dg/inherit/virtual8.C
  15c5d549c6058aabc078c6039ea6cea3  gcc/testsuite/g++.dg/inherit/virtual9.C
  768bdcc7042d268b87a11846a928e38c  gcc/testsuite/g++.dg/inherit/volatile1.C
  835b43db313003f4551ea74731f1362c  gcc/testsuite/g++.dg/init/addr-const1.C
--- 24590,24596 ----
  96de23b6f959c8b18d4f5e0f021ad980  gcc/testsuite/g++.dg/inherit/virtual5.C
  b3a302411cd7b45b85975ae0f8b1d8fb  gcc/testsuite/g++.dg/inherit/virtual6.C
  b9460b0712e4342a9676337f00a986b0  gcc/testsuite/g++.dg/inherit/virtual7.C
! e16f9cb79a12bd024c4e51d3b55e8422  gcc/testsuite/g++.dg/inherit/virtual8.C
  15c5d549c6058aabc078c6039ea6cea3  gcc/testsuite/g++.dg/inherit/virtual9.C
  768bdcc7042d268b87a11846a928e38c  gcc/testsuite/g++.dg/inherit/volatile1.C
  835b43db313003f4551ea74731f1362c  gcc/testsuite/g++.dg/init/addr-const1.C
*************** fa5767203bb04480dc89d15d55d04ad1  gcc/te
*** 23047,23053 ****
  82e7666faf93a80c3bc11a5a97422e83  gcc/testsuite/g++.dg/init/array21.C
  7f0b825cc0a026b71572eb45075bdc8a  gcc/testsuite/g++.dg/init/array22.C
  f0e89231608afe1f19e238d482a1753c  gcc/testsuite/g++.dg/init/array23.C
! cf7a09cc35d90ab53aa78b61324a89ff  gcc/testsuite/g++.dg/init/array24.C
  cd3850e151894462d2f417f022f58b7c  gcc/testsuite/g++.dg/init/array25.C
  5f26b794d27564d1f002c6a0cd333681  gcc/testsuite/g++.dg/init/array26.C
  30e0ae9123ab7bb807c4503c3a24b828  gcc/testsuite/g++.dg/init/array27.C
--- 24629,24635 ----
  82e7666faf93a80c3bc11a5a97422e83  gcc/testsuite/g++.dg/init/array21.C
  7f0b825cc0a026b71572eb45075bdc8a  gcc/testsuite/g++.dg/init/array22.C
  f0e89231608afe1f19e238d482a1753c  gcc/testsuite/g++.dg/init/array23.C
! 80e4fac735593ad1904fa8ac57d7e763  gcc/testsuite/g++.dg/init/array24.C
  cd3850e151894462d2f417f022f58b7c  gcc/testsuite/g++.dg/init/array25.C
  5f26b794d27564d1f002c6a0cd333681  gcc/testsuite/g++.dg/init/array26.C
  30e0ae9123ab7bb807c4503c3a24b828  gcc/testsuite/g++.dg/init/array27.C
*************** f39111fa11b0d25bd84e443cd5df726a  gcc/te
*** 23063,23069 ****
  19db4c9c603da402ed789531b2bde44e  gcc/testsuite/g++.dg/init/array37.C
  13b72fbb067df53b72897d23c0b09bc3  gcc/testsuite/g++.dg/init/array38.C
  20a0a07b0a16e0d3394815c93cf1ae55  gcc/testsuite/g++.dg/init/array39.C
! a82da606f2deae46784697a2e5730d6b  gcc/testsuite/g++.dg/init/array4.C
  c78f890c91fdf049382c54b81829036e  gcc/testsuite/g++.dg/init/array40.C
  3069a9d1d08fb86eb0dacb7754298c53  gcc/testsuite/g++.dg/init/array41.C
  981886d230cde6a03b9761f020440f4b  gcc/testsuite/g++.dg/init/array41a.C
--- 24645,24651 ----
  19db4c9c603da402ed789531b2bde44e  gcc/testsuite/g++.dg/init/array37.C
  13b72fbb067df53b72897d23c0b09bc3  gcc/testsuite/g++.dg/init/array38.C
  20a0a07b0a16e0d3394815c93cf1ae55  gcc/testsuite/g++.dg/init/array39.C
! 8dfb30841810bc824d422fa198073955  gcc/testsuite/g++.dg/init/array4.C
  c78f890c91fdf049382c54b81829036e  gcc/testsuite/g++.dg/init/array40.C
  3069a9d1d08fb86eb0dacb7754298c53  gcc/testsuite/g++.dg/init/array41.C
  981886d230cde6a03b9761f020440f4b  gcc/testsuite/g++.dg/init/array41a.C
*************** ec4202dd3ca86defec9ba3dfe4bfdad4  gcc/te
*** 23080,23086 ****
  2b3f1fea4a90425e57445a215e670919  gcc/testsuite/g++.dg/init/array51.C
  9c10f5904419056635d57eef17d71f07  gcc/testsuite/g++.dg/init/array52.C
  a701d12a48efcb4c04b1d49b009e3518  gcc/testsuite/g++.dg/init/array53.C
! 0d4a0941d019e3c6cbc439a320a0e1b8  gcc/testsuite/g++.dg/init/array54.C
  7a6b8f6bf545e055ab066cc6bc5e869b  gcc/testsuite/g++.dg/init/array55.C
  e7a4920eaa905e671e74b6482c654721  gcc/testsuite/g++.dg/init/array56.C
  0f351bb088edbe4064e046219a7bb9f8  gcc/testsuite/g++.dg/init/array57.C
--- 24662,24668 ----
  2b3f1fea4a90425e57445a215e670919  gcc/testsuite/g++.dg/init/array51.C
  9c10f5904419056635d57eef17d71f07  gcc/testsuite/g++.dg/init/array52.C
  a701d12a48efcb4c04b1d49b009e3518  gcc/testsuite/g++.dg/init/array53.C
! 440ac649b15e668fbfdc411d3b36fdab  gcc/testsuite/g++.dg/init/array54.C
  7a6b8f6bf545e055ab066cc6bc5e869b  gcc/testsuite/g++.dg/init/array55.C
  e7a4920eaa905e671e74b6482c654721  gcc/testsuite/g++.dg/init/array56.C
  0f351bb088edbe4064e046219a7bb9f8  gcc/testsuite/g++.dg/init/array57.C
*************** e7a4920eaa905e671e74b6482c654721  gcc/te
*** 23089,23098 ****
  12f516d0ef7088644b46185bbd83ef4d  gcc/testsuite/g++.dg/init/array6.C
  c083b6ec43687658fab80f7d11038fb8  gcc/testsuite/g++.dg/init/array60.C
  8f1cbb3eca47b9c2626ec2b222c22fd9  gcc/testsuite/g++.dg/init/array61.C
! e95776ced975cd6f2bf17087db50aed5  gcc/testsuite/g++.dg/init/array62.C
! a904eca6183b12fdb7eb945fc2e99935  gcc/testsuite/g++.dg/init/array63.C
! c8dd496296b65cf2539e5cecfa7e9993  gcc/testsuite/g++.dg/init/array64.C
  94a7e987319d08f023e937de3e12d0d8  gcc/testsuite/g++.dg/init/array65.C
  02cf876b0b0d2594118addc046b9112a  gcc/testsuite/g++.dg/init/array7.C
  4ab5bb9dc38b78d749ba584adefbdc33  gcc/testsuite/g++.dg/init/array8.C
  b1c2a3438d19ab4734ef026ce6aba7fa  gcc/testsuite/g++.dg/init/array9.C
--- 24671,24682 ----
  12f516d0ef7088644b46185bbd83ef4d  gcc/testsuite/g++.dg/init/array6.C
  c083b6ec43687658fab80f7d11038fb8  gcc/testsuite/g++.dg/init/array60.C
  8f1cbb3eca47b9c2626ec2b222c22fd9  gcc/testsuite/g++.dg/init/array61.C
! 87d7f4ee8bf97e2abe7c8658f64affa7  gcc/testsuite/g++.dg/init/array62.C
! a6ad805aa4ca927da605193ee132e4c9  gcc/testsuite/g++.dg/init/array63.C
! 98296d8817cca058048874e8f3e4714f  gcc/testsuite/g++.dg/init/array64.C
  94a7e987319d08f023e937de3e12d0d8  gcc/testsuite/g++.dg/init/array65.C
+ 6dacb8601d29390665707d5d3244c16d  gcc/testsuite/g++.dg/init/array66.C
+ 565294bed4047ecbc96e954cfc86f9cf  gcc/testsuite/g++.dg/init/array67.C
  02cf876b0b0d2594118addc046b9112a  gcc/testsuite/g++.dg/init/array7.C
  4ab5bb9dc38b78d749ba584adefbdc33  gcc/testsuite/g++.dg/init/array8.C
  b1c2a3438d19ab4734ef026ce6aba7fa  gcc/testsuite/g++.dg/init/array9.C
*************** fa25c5dda11ffc85ea36955456c3fbe8  gcc/te
*** 23113,23119 ****
  c67cb693c501dfa41dcf719d6d7498f1  gcc/testsuite/g++.dg/init/brace5.C
  3c99fa7837c175468c8ed27550f871ae  gcc/testsuite/g++.dg/init/brace6.C
  8878c87dba0d0dc5af8198636c9944bc  gcc/testsuite/g++.dg/init/byval1.C
! 37e3aaafda06e7a49338706d936ff70f  gcc/testsuite/g++.dg/init/call1.C
  0f1ff9d8ddbbe6eb6b3651aa40fa79db  gcc/testsuite/g++.dg/init/cleanup1.C
  7d94225f3f0c383bec9dd200a01a0b33  gcc/testsuite/g++.dg/init/cleanup2.C
  509f15d49c50b3d63a59c36aae604afa  gcc/testsuite/g++.dg/init/cleanup3.C
--- 24697,24703 ----
  c67cb693c501dfa41dcf719d6d7498f1  gcc/testsuite/g++.dg/init/brace5.C
  3c99fa7837c175468c8ed27550f871ae  gcc/testsuite/g++.dg/init/brace6.C
  8878c87dba0d0dc5af8198636c9944bc  gcc/testsuite/g++.dg/init/byval1.C
! 202d92fb826dad456ba5f41fdf4c86fd  gcc/testsuite/g++.dg/init/call1.C
  0f1ff9d8ddbbe6eb6b3651aa40fa79db  gcc/testsuite/g++.dg/init/cleanup1.C
  7d94225f3f0c383bec9dd200a01a0b33  gcc/testsuite/g++.dg/init/cleanup2.C
  509f15d49c50b3d63a59c36aae604afa  gcc/testsuite/g++.dg/init/cleanup3.C
*************** a0407d922750e957b395ce4c7537f3f8  gcc/te
*** 23138,23144 ****
  c268699333b239c371d1bdc906ea54ad  gcc/testsuite/g++.dg/init/copy2.C
  b1621eba456847890f47b791fa8f9656  gcc/testsuite/g++.dg/init/copy3.C
  28ced8869a7baac26a49e3084bf7d851  gcc/testsuite/g++.dg/init/copy4.C
! 02c689a173b02b7312d282add8f14591  gcc/testsuite/g++.dg/init/copy5.C
  5d48182e8fa2907f420bf1ef3d67dba3  gcc/testsuite/g++.dg/init/copy6.C
  401730d1bb87c3edf85010755fe8a2ff  gcc/testsuite/g++.dg/init/copy7.C
  77ceed5edeb6a109374c44ef23679bef  gcc/testsuite/g++.dg/init/ctor1.C
--- 24722,24728 ----
  c268699333b239c371d1bdc906ea54ad  gcc/testsuite/g++.dg/init/copy2.C
  b1621eba456847890f47b791fa8f9656  gcc/testsuite/g++.dg/init/copy3.C
  28ced8869a7baac26a49e3084bf7d851  gcc/testsuite/g++.dg/init/copy4.C
! 121eb86cdfd31d67b5343cfef37574ac  gcc/testsuite/g++.dg/init/copy5.C
  5d48182e8fa2907f420bf1ef3d67dba3  gcc/testsuite/g++.dg/init/copy6.C
  401730d1bb87c3edf85010755fe8a2ff  gcc/testsuite/g++.dg/init/copy7.C
  77ceed5edeb6a109374c44ef23679bef  gcc/testsuite/g++.dg/init/ctor1.C
*************** ecc9c501210a7d0fcb63a6b4e75e71ee  gcc/te
*** 23154,23164 ****
  2c3e5a9bb93285c3f11607173fad5f0e  gcc/testsuite/g++.dg/init/ctor7.C
  67dca0fc005a3bf84868664f2897a92e  gcc/testsuite/g++.dg/init/ctor8.C
  c55d67e7ef83de8fc0fa30f01b68f5f7  gcc/testsuite/g++.dg/init/ctor9.C
! 4252d0c5002398ece95fee29e3cd2c0e  gcc/testsuite/g++.dg/init/delete1.C
  468ee3e464fecbec120056e490e0ffe4  gcc/testsuite/g++.dg/init/delete2.C
  1e8eac418e9a6794591435e6f4346a97  gcc/testsuite/g++.dg/init/delete3.C
  1023849b0213da9de86c24654d2012f0  gcc/testsuite/g++.dg/init/delete4.C
! 89aed537008012b0c5e151436e317c90  gcc/testsuite/g++.dg/init/delete5.C
  6397e70e81dad7f42c086d6457110fb8  gcc/testsuite/g++.dg/init/dso_handle1.C
  247663aa181cc3911b484b28ff590334  gcc/testsuite/g++.dg/init/dso_handle2.C
  0282b33cfb0b201499908c95a2e9b57d  gcc/testsuite/g++.dg/init/dtor1.C
--- 24738,24748 ----
  2c3e5a9bb93285c3f11607173fad5f0e  gcc/testsuite/g++.dg/init/ctor7.C
  67dca0fc005a3bf84868664f2897a92e  gcc/testsuite/g++.dg/init/ctor8.C
  c55d67e7ef83de8fc0fa30f01b68f5f7  gcc/testsuite/g++.dg/init/ctor9.C
! 2aabaf79f29c962f222ba187b1a97097  gcc/testsuite/g++.dg/init/delete1.C
  468ee3e464fecbec120056e490e0ffe4  gcc/testsuite/g++.dg/init/delete2.C
  1e8eac418e9a6794591435e6f4346a97  gcc/testsuite/g++.dg/init/delete3.C
  1023849b0213da9de86c24654d2012f0  gcc/testsuite/g++.dg/init/delete4.C
! c13d1066376e14cc8f0213043badbf0b  gcc/testsuite/g++.dg/init/delete5.C
  6397e70e81dad7f42c086d6457110fb8  gcc/testsuite/g++.dg/init/dso_handle1.C
  247663aa181cc3911b484b28ff590334  gcc/testsuite/g++.dg/init/dso_handle2.C
  0282b33cfb0b201499908c95a2e9b57d  gcc/testsuite/g++.dg/init/dtor1.C
*************** f9ead90e4d5cffd123ae313927303782  gcc/te
*** 23203,23221 ****
  0867c022db8ad55482b727ba001b7cf2  gcc/testsuite/g++.dg/init/lifetime1.C
  9a639b6aec30981f552d544b9c3373f3  gcc/testsuite/g++.dg/init/lifetime2.C
  b280d60771fc613f6363c55c8137a4b8  gcc/testsuite/g++.dg/init/lifetime3.C
! 328a37bf513e700d237e7863d45e0ec7  gcc/testsuite/g++.dg/init/lifetime4.C
  0160b85e4a1a6610929a08c40f60df4d  gcc/testsuite/g++.dg/init/member1.C
  bdc0a28e899cdd6a24fc02b81555168a  gcc/testsuite/g++.dg/init/mutable1.C
  3dd2b2682d04e72fb7a9a8d137ec7e9d  gcc/testsuite/g++.dg/init/new1.C
  99032474a76d34492ef006f7c9ae5a81  gcc/testsuite/g++.dg/init/new10.C
! ebbaa62ec522ec3c21865701b3d83447  gcc/testsuite/g++.dg/init/new11.C
  bd503383d6a9825355b68023ee042168  gcc/testsuite/g++.dg/init/new12.C
  53245465d7a93d8be157009d4de60ae1  gcc/testsuite/g++.dg/init/new13.C
  f61f4940bc97502688606d4b7f1701a2  gcc/testsuite/g++.dg/init/new14.C
  675e2069fd4b702f2d78c2cfd416d065  gcc/testsuite/g++.dg/init/new15.C
  c52e42cacc9e8e4d847ceae5031544ca  gcc/testsuite/g++.dg/init/new16.C
  946a0ab6c75da67700a0c85a5b7be291  gcc/testsuite/g++.dg/init/new17.C
! 38fe190a252623fccf88545c8d610a3c  gcc/testsuite/g++.dg/init/new18.C
  fc83be635626d62edf6199ab442d0651  gcc/testsuite/g++.dg/init/new19.C
  7502916c49c92544e10e7a1d3ce41eea  gcc/testsuite/g++.dg/init/new2.C
  9b183ec2b575bdf5465306fc4e259b43  gcc/testsuite/g++.dg/init/new20.C
--- 24787,24805 ----
  0867c022db8ad55482b727ba001b7cf2  gcc/testsuite/g++.dg/init/lifetime1.C
  9a639b6aec30981f552d544b9c3373f3  gcc/testsuite/g++.dg/init/lifetime2.C
  b280d60771fc613f6363c55c8137a4b8  gcc/testsuite/g++.dg/init/lifetime3.C
! b4bd194d19e228ece65d471b67c91793  gcc/testsuite/g++.dg/init/lifetime4.C
  0160b85e4a1a6610929a08c40f60df4d  gcc/testsuite/g++.dg/init/member1.C
  bdc0a28e899cdd6a24fc02b81555168a  gcc/testsuite/g++.dg/init/mutable1.C
  3dd2b2682d04e72fb7a9a8d137ec7e9d  gcc/testsuite/g++.dg/init/new1.C
  99032474a76d34492ef006f7c9ae5a81  gcc/testsuite/g++.dg/init/new10.C
! 3155f19f146138339834ccfdc1bd0bec  gcc/testsuite/g++.dg/init/new11.C
  bd503383d6a9825355b68023ee042168  gcc/testsuite/g++.dg/init/new12.C
  53245465d7a93d8be157009d4de60ae1  gcc/testsuite/g++.dg/init/new13.C
  f61f4940bc97502688606d4b7f1701a2  gcc/testsuite/g++.dg/init/new14.C
  675e2069fd4b702f2d78c2cfd416d065  gcc/testsuite/g++.dg/init/new15.C
  c52e42cacc9e8e4d847ceae5031544ca  gcc/testsuite/g++.dg/init/new16.C
  946a0ab6c75da67700a0c85a5b7be291  gcc/testsuite/g++.dg/init/new17.C
! e5ea6aa6b87e24194f9e7b1691eb07de  gcc/testsuite/g++.dg/init/new18.C
  fc83be635626d62edf6199ab442d0651  gcc/testsuite/g++.dg/init/new19.C
  7502916c49c92544e10e7a1d3ce41eea  gcc/testsuite/g++.dg/init/new2.C
  9b183ec2b575bdf5465306fc4e259b43  gcc/testsuite/g++.dg/init/new20.C
*************** b00cbbf0a7198ffe55206723b3837c1a  gcc/te
*** 23238,23264 ****
  9a5926ac1fac1582a28a1430529e44de  gcc/testsuite/g++.dg/init/new36.C
  015fe68d7de8b61ed6109a20dcfe0d37  gcc/testsuite/g++.dg/init/new37.C
  e657ff4a616d1d27cf871f4da9462ee0  gcc/testsuite/g++.dg/init/new38.C
! 7f288a4718c1a7dd30315c4183a1b0c1  gcc/testsuite/g++.dg/init/new39.C
  19dcda79922ea7017c7e260394e77415  gcc/testsuite/g++.dg/init/new4.C
! 5820f2c8665ae379ada4b0966210eb15  gcc/testsuite/g++.dg/init/new40.C
  cbd73e68a7e047fb1fead38045398b76  gcc/testsuite/g++.dg/init/new41.C
  d11503933ddf4a9a5fa720f05ff832e4  gcc/testsuite/g++.dg/init/new42.C
  4c322b0cc937d75127552f528e31fbab  gcc/testsuite/g++.dg/init/new43.C
  72d8c3ceba95e9c90600792a0e8fcf8e  gcc/testsuite/g++.dg/init/new44.C
  d2d77d6c719441f941b5b510dcb137a2  gcc/testsuite/g++.dg/init/new45.C
  d15f6f1dc25618b84c64325897aefd35  gcc/testsuite/g++.dg/init/new46.C
! 578919234003568d10881d031eee7b19  gcc/testsuite/g++.dg/init/new47.C
  ece146914185349992892b6c7e289bb0  gcc/testsuite/g++.dg/init/new48.C
  9ca5511847720382b5f5eb6e481a9a08  gcc/testsuite/g++.dg/init/new49.C
  165b53a00e07117f81b4b42f0b88ed5c  gcc/testsuite/g++.dg/init/new5.C
  28c8b93bf9233d503208c75095d2b4ab  gcc/testsuite/g++.dg/init/new50.C
  a4b98677dbbd3e890175c95b258e0111  gcc/testsuite/g++.dg/init/new51.C
  6142030ce76d1ab9453ff0a223722577  gcc/testsuite/g++.dg/init/new6.C
  625c88e7ce2f57c2f27e69085c8278eb  gcc/testsuite/g++.dg/init/new7.C
  9e9ce794649ccc9a4507b42cb8c4c0d0  gcc/testsuite/g++.dg/init/new8.C
  d9b779b618b81e9ea527baf5e2af4c4e  gcc/testsuite/g++.dg/init/new9.C
  ad6fea2e4a044bf966634965459eed1f  gcc/testsuite/g++.dg/init/no-elide1.C
  2524b7f075542480f2a1e27b01b7f04d  gcc/testsuite/g++.dg/init/no-elide2.C
  6e78c514e0d930771bc8bc83b1d03c3f  gcc/testsuite/g++.dg/init/null1.C
  ef95eb29955e54a2310be36a0828b0cb  gcc/testsuite/g++.dg/init/placement1.C
  9c2843f3878e7468a19ecfaa90c8bf5f  gcc/testsuite/g++.dg/init/placement2.C
--- 24822,24853 ----
  9a5926ac1fac1582a28a1430529e44de  gcc/testsuite/g++.dg/init/new36.C
  015fe68d7de8b61ed6109a20dcfe0d37  gcc/testsuite/g++.dg/init/new37.C
  e657ff4a616d1d27cf871f4da9462ee0  gcc/testsuite/g++.dg/init/new38.C
! ab330973eaf08710061b5a1a4802334c  gcc/testsuite/g++.dg/init/new39.C
  19dcda79922ea7017c7e260394e77415  gcc/testsuite/g++.dg/init/new4.C
! 0243db134a843bf5363380648b64eba2  gcc/testsuite/g++.dg/init/new40.C
  cbd73e68a7e047fb1fead38045398b76  gcc/testsuite/g++.dg/init/new41.C
  d11503933ddf4a9a5fa720f05ff832e4  gcc/testsuite/g++.dg/init/new42.C
  4c322b0cc937d75127552f528e31fbab  gcc/testsuite/g++.dg/init/new43.C
  72d8c3ceba95e9c90600792a0e8fcf8e  gcc/testsuite/g++.dg/init/new44.C
  d2d77d6c719441f941b5b510dcb137a2  gcc/testsuite/g++.dg/init/new45.C
  d15f6f1dc25618b84c64325897aefd35  gcc/testsuite/g++.dg/init/new46.C
! 92f9a4a5c99df62b928e07de2269fcc8  gcc/testsuite/g++.dg/init/new47.C
  ece146914185349992892b6c7e289bb0  gcc/testsuite/g++.dg/init/new48.C
  9ca5511847720382b5f5eb6e481a9a08  gcc/testsuite/g++.dg/init/new49.C
  165b53a00e07117f81b4b42f0b88ed5c  gcc/testsuite/g++.dg/init/new5.C
  28c8b93bf9233d503208c75095d2b4ab  gcc/testsuite/g++.dg/init/new50.C
  a4b98677dbbd3e890175c95b258e0111  gcc/testsuite/g++.dg/init/new51.C
+ e8ce128f527b593ec03d55b2e9bdb232  gcc/testsuite/g++.dg/init/new52.C
+ f4506cff7ada8d7588bd30480f6dc5d9  gcc/testsuite/g++.dg/init/new53.C
+ f864035fb61c839bcf16a2e9bdd6ea40  gcc/testsuite/g++.dg/init/new54.C
  6142030ce76d1ab9453ff0a223722577  gcc/testsuite/g++.dg/init/new6.C
  625c88e7ce2f57c2f27e69085c8278eb  gcc/testsuite/g++.dg/init/new7.C
  9e9ce794649ccc9a4507b42cb8c4c0d0  gcc/testsuite/g++.dg/init/new8.C
  d9b779b618b81e9ea527baf5e2af4c4e  gcc/testsuite/g++.dg/init/new9.C
  ad6fea2e4a044bf966634965459eed1f  gcc/testsuite/g++.dg/init/no-elide1.C
  2524b7f075542480f2a1e27b01b7f04d  gcc/testsuite/g++.dg/init/no-elide2.C
+ 8b6f2e546a5e05b44967bc52c725613d  gcc/testsuite/g++.dg/init/no-elide3.C
+ 118c26546b792dcadfcf2c6ef07582a9  gcc/testsuite/g++.dg/init/no-elide4.C
  6e78c514e0d930771bc8bc83b1d03c3f  gcc/testsuite/g++.dg/init/null1.C
  ef95eb29955e54a2310be36a0828b0cb  gcc/testsuite/g++.dg/init/placement1.C
  9c2843f3878e7468a19ecfaa90c8bf5f  gcc/testsuite/g++.dg/init/placement2.C
*************** b25b382db37739c81869b75df02687cf  gcc/te
*** 23291,23297 ****
  f660de16a9cf160558064bb92eb21901  gcc/testsuite/g++.dg/init/pr44086.C
  880ee6b08cc835f2a1db0bae613e7a23  gcc/testsuite/g++.dg/init/pr48859.C
  326a48b27d057d316de2e35aec05d132  gcc/testsuite/g++.dg/init/pr53932.C
! aa6fb39dc7128d68580ac96eb833e456  gcc/testsuite/g++.dg/init/pr55497.C
  c835d50eaf5fe1a2b052a1579b5ce77f  gcc/testsuite/g++.dg/init/pr58811.C
  f25ce72283c3004e08c0df4685ca2469  gcc/testsuite/g++.dg/init/pr60572.C
  14b8558990190d2eb7bc7f8d10c40bd9  gcc/testsuite/g++.dg/init/pr64527.C
--- 24880,24886 ----
  f660de16a9cf160558064bb92eb21901  gcc/testsuite/g++.dg/init/pr44086.C
  880ee6b08cc835f2a1db0bae613e7a23  gcc/testsuite/g++.dg/init/pr48859.C
  326a48b27d057d316de2e35aec05d132  gcc/testsuite/g++.dg/init/pr53932.C
! 72601c1b850b49dd7447dc271d916d5a  gcc/testsuite/g++.dg/init/pr55497.C
  c835d50eaf5fe1a2b052a1579b5ce77f  gcc/testsuite/g++.dg/init/pr58811.C
  f25ce72283c3004e08c0df4685ca2469  gcc/testsuite/g++.dg/init/pr60572.C
  14b8558990190d2eb7bc7f8d10c40bd9  gcc/testsuite/g++.dg/init/pr64527.C
*************** ded575d1c35757dbf89f635e5a86910d  gcc/te
*** 23338,23344 ****
  17e490cb39fc984204cd22db2b70a409  gcc/testsuite/g++.dg/init/reference2.C
  f6b622b8df1f9be4adbfe05e8d8ddbdc  gcc/testsuite/g++.dg/init/reference3.C
  7d8b7ff14410173fd3e1cb0594f72583  gcc/testsuite/g++.dg/init/save1.C
! a48726a2b65855eb8c52e41df2fe8018  gcc/testsuite/g++.dg/init/self1.C
  2a42575dd60850d9698f7e2aff939d1e  gcc/testsuite/g++.dg/init/static-cdtor1.C
  3590ad5754f93f2ab00974878ace368e  gcc/testsuite/g++.dg/init/static-init1.C
  c0a507cb8b6bf9a5448427e537d93531  gcc/testsuite/g++.dg/init/static-init2.C
--- 24927,24933 ----
  17e490cb39fc984204cd22db2b70a409  gcc/testsuite/g++.dg/init/reference2.C
  f6b622b8df1f9be4adbfe05e8d8ddbdc  gcc/testsuite/g++.dg/init/reference3.C
  7d8b7ff14410173fd3e1cb0594f72583  gcc/testsuite/g++.dg/init/save1.C
! 0c85a4cfeaca3360034e6078ef956fab  gcc/testsuite/g++.dg/init/self1.C
  2a42575dd60850d9698f7e2aff939d1e  gcc/testsuite/g++.dg/init/static-cdtor1.C
  3590ad5754f93f2ab00974878ace368e  gcc/testsuite/g++.dg/init/static-init1.C
  c0a507cb8b6bf9a5448427e537d93531  gcc/testsuite/g++.dg/init/static-init2.C
*************** ab02e565927ee50b37c774159922e9d9  gcc/te
*** 23367,23373 ****
  3b22bec2d49caa4a26b00f16c19566a8  gcc/testsuite/g++.dg/init/value1.C
  801e7374b2202b97ebe96c32d0c8ad82  gcc/testsuite/g++.dg/init/value10.C
  a827a35dd447a4d79aa21373dc3c82c4  gcc/testsuite/g++.dg/init/value2.C
! f5892df2ecb52226b652c40258f42f73  gcc/testsuite/g++.dg/init/value3.C
  90318580a1a76223ffd321c5049365e7  gcc/testsuite/g++.dg/init/value4.C
  a07f29cc13922f46ee402c672bab1763  gcc/testsuite/g++.dg/init/value5.C
  ca385abd9d6b36d0667c2ad521a0233e  gcc/testsuite/g++.dg/init/value6.C
--- 24956,24962 ----
  3b22bec2d49caa4a26b00f16c19566a8  gcc/testsuite/g++.dg/init/value1.C
  801e7374b2202b97ebe96c32d0c8ad82  gcc/testsuite/g++.dg/init/value10.C
  a827a35dd447a4d79aa21373dc3c82c4  gcc/testsuite/g++.dg/init/value2.C
! 898317b0dcb8bbe7998bc8e12ff16da2  gcc/testsuite/g++.dg/init/value3.C
  90318580a1a76223ffd321c5049365e7  gcc/testsuite/g++.dg/init/value4.C
  a07f29cc13922f46ee402c672bab1763  gcc/testsuite/g++.dg/init/value5.C
  ca385abd9d6b36d0667c2ad521a0233e  gcc/testsuite/g++.dg/init/value6.C
*************** a3ef5649648039007c89bf5cb9fe814b  gcc/te
*** 23398,23410 ****
  67e019ff1f3d279e2c6b5f223b061ebc  gcc/testsuite/g++.dg/ipa/devirt-21.C
  ef2c20211e1e4ece4ec9e3d8ea3d585f  gcc/testsuite/g++.dg/ipa/devirt-22.C
  e4bbbef263835020ccf2c62595fa7b76  gcc/testsuite/g++.dg/ipa/devirt-23.C
! 672d0d9d8ecb7dcfdbe42192d19e0a68  gcc/testsuite/g++.dg/ipa/devirt-24.C
  8e1a95281390a20596d1470878312533  gcc/testsuite/g++.dg/ipa/devirt-25.C
  abf9c5109aa819804228db274d44a58c  gcc/testsuite/g++.dg/ipa/devirt-26.C
  c5e9a1f0512a55d50ec7174c592a3022  gcc/testsuite/g++.dg/ipa/devirt-27.C
  2b330cf04d6b17872bbb07949255c753  gcc/testsuite/g++.dg/ipa/devirt-28.C
  77908bcdaa6ee0b0884937f4fc037497  gcc/testsuite/g++.dg/ipa/devirt-28a.C
! 31f84d40ad557791781d8a441ce8fb42  gcc/testsuite/g++.dg/ipa/devirt-29.C
  9dd5078c7a7370b392bfd2ffd23e912b  gcc/testsuite/g++.dg/ipa/devirt-3.C
  8de6c7fe80e8b9f4c766e5a1ce2720da  gcc/testsuite/g++.dg/ipa/devirt-30.C
  0dd4eb7b025da88a7c86dca21a19aec9  gcc/testsuite/g++.dg/ipa/devirt-31.C
--- 24987,24999 ----
  67e019ff1f3d279e2c6b5f223b061ebc  gcc/testsuite/g++.dg/ipa/devirt-21.C
  ef2c20211e1e4ece4ec9e3d8ea3d585f  gcc/testsuite/g++.dg/ipa/devirt-22.C
  e4bbbef263835020ccf2c62595fa7b76  gcc/testsuite/g++.dg/ipa/devirt-23.C
! 1452587dc751d6f5ca96dbe317eb41db  gcc/testsuite/g++.dg/ipa/devirt-24.C
  8e1a95281390a20596d1470878312533  gcc/testsuite/g++.dg/ipa/devirt-25.C
  abf9c5109aa819804228db274d44a58c  gcc/testsuite/g++.dg/ipa/devirt-26.C
  c5e9a1f0512a55d50ec7174c592a3022  gcc/testsuite/g++.dg/ipa/devirt-27.C
  2b330cf04d6b17872bbb07949255c753  gcc/testsuite/g++.dg/ipa/devirt-28.C
  77908bcdaa6ee0b0884937f4fc037497  gcc/testsuite/g++.dg/ipa/devirt-28a.C
! 36f6531ed0da5ebb2c3c188eeb625fc7  gcc/testsuite/g++.dg/ipa/devirt-29.C
  9dd5078c7a7370b392bfd2ffd23e912b  gcc/testsuite/g++.dg/ipa/devirt-3.C
  8de6c7fe80e8b9f4c766e5a1ce2720da  gcc/testsuite/g++.dg/ipa/devirt-30.C
  0dd4eb7b025da88a7c86dca21a19aec9  gcc/testsuite/g++.dg/ipa/devirt-31.C
*************** c43cd4a90674d630795e0323738e0460  gcc/te
*** 23490,23495 ****
--- 25079,25086 ----
  9cf2cc98e56a48a7332ea02be0425960  gcc/testsuite/g++.dg/ipa/pr108830.C
  c4e9e836f72626730cc2876443c9d998  gcc/testsuite/g++.dg/ipa/pr110378-1.C
  e66c84f48f938ed2bb548ce51957afce  gcc/testsuite/g++.dg/ipa/pr113757.C
+ d248bf5deb963f7dfbec9babb6fb70df  gcc/testsuite/g++.dg/ipa/pr116572.C
+ 9183db2978d574bc26d43a0d942ec920  gcc/testsuite/g++.dg/ipa/pr118243.C
  02f3704c0511b2d171c55dbf09c64325  gcc/testsuite/g++.dg/ipa/pr43695.C
  5345293723ad062b59b168c319738e1e  gcc/testsuite/g++.dg/ipa/pr43812.C
  b001cbe3dfdeb7d2a1061f024aa08ea4  gcc/testsuite/g++.dg/ipa/pr44372.C
*************** d31daabe5d2bb29c818c1bbbe31a5a4b  gcc/te
*** 23590,23597 ****
  89c35bb41f6079175e75624ae113f0c2  gcc/testsuite/g++.dg/ipa/pr84825.C
  7a74ca095291672fedb99619674166cc  gcc/testsuite/g++.dg/ipa/pr85421.C
  aae51c901115904a7775a689bfba23d3  gcc/testsuite/g++.dg/ipa/pr85447.C
! 0a73df0f8f21e4039f7d63b15167994d  gcc/testsuite/g++.dg/ipa/pr85549.C
! cd5254858476ec247aca4d27527b17f9  gcc/testsuite/g++.dg/ipa/pr85607.C
  e39fe3f406dc8a6c2f6d511afd6e032c  gcc/testsuite/g++.dg/ipa/pr86323.C
  e4c5ea0b15c77ead9c9fe9212738b9ec  gcc/testsuite/g++.dg/ipa/pr86529.C
  29db8a93c552179e2118ba4096879c15  gcc/testsuite/g++.dg/ipa/pr88235.C
--- 25181,25188 ----
  89c35bb41f6079175e75624ae113f0c2  gcc/testsuite/g++.dg/ipa/pr84825.C
  7a74ca095291672fedb99619674166cc  gcc/testsuite/g++.dg/ipa/pr85421.C
  aae51c901115904a7775a689bfba23d3  gcc/testsuite/g++.dg/ipa/pr85447.C
! 801ff45286344d67b021bf47afdb774e  gcc/testsuite/g++.dg/ipa/pr85549.C
! e60b563990c829ed9633bfefe545ca74  gcc/testsuite/g++.dg/ipa/pr85607.C
  e39fe3f406dc8a6c2f6d511afd6e032c  gcc/testsuite/g++.dg/ipa/pr86323.C
  e4c5ea0b15c77ead9c9fe9212738b9ec  gcc/testsuite/g++.dg/ipa/pr86529.C
  29db8a93c552179e2118ba4096879c15  gcc/testsuite/g++.dg/ipa/pr88235.C
*************** ae00f300fcb65b82231e34cb12efb4fd  gcc/te
*** 23609,23614 ****
--- 25200,25206 ----
  3d99a30891927744757482e357f847ea  gcc/testsuite/g++.dg/ipa/pr93763.C
  dfc539d5b0e398accca796ab3e0f2a78  gcc/testsuite/g++.dg/ipa/pr94856.C
  ea65f96a07ad0a1b72deeb1386d1979e  gcc/testsuite/g++.dg/ipa/pr96806.C
+ a5af83b5b4175978fa4eb1b6ad9375c8  gcc/testsuite/g++.dg/ipa/pr98000.C
  8275998d07d56e45576d3c7e02c0aa4c  gcc/testsuite/g++.dg/ipa/pr98057.C
  e2988362ecb41c55df743fe23666ff05  gcc/testsuite/g++.dg/ipa/pr98075.C
  67ce956b024be06467602bda94a08aa7  gcc/testsuite/g++.dg/ipa/pr98690.C
*************** f81aac5278aa8141c0b1aedacbd46e7c  gcc/te
*** 23763,23769 ****
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/g++.dg/lookup/missing-std-include-10.h
  0a27fbf25062d8b94cfcffbfb481b8b7  gcc/testsuite/g++.dg/lookup/missing-std-include-11.C
  337a8ee8ffe09fdf48a9812b1f9de526  gcc/testsuite/g++.dg/lookup/missing-std-include-2.C
! 603464b520f70e80ebfeebb342ec0ff7  gcc/testsuite/g++.dg/lookup/missing-std-include-3.C
  2089959ff25a41b6553e2e30bcdab132  gcc/testsuite/g++.dg/lookup/missing-std-include-4.C
  8c9e7cd6068948fc3bc9f18fb4358bbc  gcc/testsuite/g++.dg/lookup/missing-std-include-5.C
  c066de1957c465319a8a9b9654bcc653  gcc/testsuite/g++.dg/lookup/missing-std-include-6.C
--- 25355,25361 ----
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/g++.dg/lookup/missing-std-include-10.h
  0a27fbf25062d8b94cfcffbfb481b8b7  gcc/testsuite/g++.dg/lookup/missing-std-include-11.C
  337a8ee8ffe09fdf48a9812b1f9de526  gcc/testsuite/g++.dg/lookup/missing-std-include-2.C
! 71927c4e231c21c3cb71a2c6cb63372a  gcc/testsuite/g++.dg/lookup/missing-std-include-3.C
  2089959ff25a41b6553e2e30bcdab132  gcc/testsuite/g++.dg/lookup/missing-std-include-4.C
  8c9e7cd6068948fc3bc9f18fb4358bbc  gcc/testsuite/g++.dg/lookup/missing-std-include-5.C
  c066de1957c465319a8a9b9654bcc653  gcc/testsuite/g++.dg/lookup/missing-std-include-6.C
*************** f73a831dbfcd6430b723ed4198037c98  gcc/te
*** 23797,23803 ****
  326caa0ef916da51fec348c662a91f18  gcc/testsuite/g++.dg/lookup/ns3.C
  b16d2b44bfa0aeed86e99a04f412703d  gcc/testsuite/g++.dg/lookup/ns4.C
  03c780f0918b370b2240f09b83a68b35  gcc/testsuite/g++.dg/lookup/operator-1.C
! 6c03273d407e5d6de3e0a600b18d65db  gcc/testsuite/g++.dg/lookup/operator-2.C
  4ac40a808fc6626ca65568a08429f7c3  gcc/testsuite/g++.dg/lookup/operator-3-ops.h
  ded80207a3c202999aba8a023d8f0516  gcc/testsuite/g++.dg/lookup/operator-3.C
  c3f226bb4eb9d68500427ac361b3969b  gcc/testsuite/g++.dg/lookup/operator-3a.C
--- 25389,25395 ----
  326caa0ef916da51fec348c662a91f18  gcc/testsuite/g++.dg/lookup/ns3.C
  b16d2b44bfa0aeed86e99a04f412703d  gcc/testsuite/g++.dg/lookup/ns4.C
  03c780f0918b370b2240f09b83a68b35  gcc/testsuite/g++.dg/lookup/operator-1.C
! 1a82bd5887ee3a8f77f66ec56c837ffe  gcc/testsuite/g++.dg/lookup/operator-2.C
  4ac40a808fc6626ca65568a08429f7c3  gcc/testsuite/g++.dg/lookup/operator-3-ops.h
  ded80207a3c202999aba8a023d8f0516  gcc/testsuite/g++.dg/lookup/operator-3.C
  c3f226bb4eb9d68500427ac361b3969b  gcc/testsuite/g++.dg/lookup/operator-3a.C
*************** a1ec3c39e5a1beac0e1f9dbbc1635692  gcc/te
*** 23808,23814 ****
  f5603b028cb5e4f040fc3af7776ea00e  gcc/testsuite/g++.dg/lookup/operator-6.C
  60fb08261559503592bcae8f4f347885  gcc/testsuite/g++.dg/lookup/operator-7.C
  8a4bc664943ba55e02c1041859cf9c36  gcc/testsuite/g++.dg/lookup/operator-8.C
! 87eba878015147f0a75c48fd47e42fbb  gcc/testsuite/g++.dg/lookup/pr21802.C
  2378e813c805e961b5f594f4a76ec56d  gcc/testsuite/g++.dg/lookup/pr60994.C
  e8c219b570d08e589efca8f832a6b0b3  gcc/testsuite/g++.dg/lookup/pr67074.C
  3717c2026453719d4d718f3e8061ba28  gcc/testsuite/g++.dg/lookup/pr70205.C
--- 25400,25406 ----
  f5603b028cb5e4f040fc3af7776ea00e  gcc/testsuite/g++.dg/lookup/operator-6.C
  60fb08261559503592bcae8f4f347885  gcc/testsuite/g++.dg/lookup/operator-7.C
  8a4bc664943ba55e02c1041859cf9c36  gcc/testsuite/g++.dg/lookup/operator-8.C
! ed588fcfdd755a45d961e507c96ba9e2  gcc/testsuite/g++.dg/lookup/pr21802.C
  2378e813c805e961b5f594f4a76ec56d  gcc/testsuite/g++.dg/lookup/pr60994.C
  e8c219b570d08e589efca8f832a6b0b3  gcc/testsuite/g++.dg/lookup/pr67074.C
  3717c2026453719d4d718f3e8061ba28  gcc/testsuite/g++.dg/lookup/pr70205.C
*************** ed8fbd78bcc2e25f56f4b46841242626  gcc/te
*** 23819,23825 ****
  f1733e79f7cd811d7c156dc2ca948be1  gcc/testsuite/g++.dg/lookup/pr80891-2.C
  4225629262d07739e4d67b593b2c11fe  gcc/testsuite/g++.dg/lookup/pr80891-3.C
  fea53cc76bc6dd15d6953532a0def9eb  gcc/testsuite/g++.dg/lookup/pr80891-4.C
! 6e22b6f91085f0d1b544ce1da248e04c  gcc/testsuite/g++.dg/lookup/pr80891-5.C
  e39913eb836c105e19f8a2ef46a2702f  gcc/testsuite/g++.dg/lookup/pr80913.C
  26ef1fd7163e6344bfb894634f561ab2  gcc/testsuite/g++.dg/lookup/pr80979.C
  d342db9fb18156df9393faba58928d3b  gcc/testsuite/g++.dg/lookup/pr81124.C
--- 25411,25417 ----
  f1733e79f7cd811d7c156dc2ca948be1  gcc/testsuite/g++.dg/lookup/pr80891-2.C
  4225629262d07739e4d67b593b2c11fe  gcc/testsuite/g++.dg/lookup/pr80891-3.C
  fea53cc76bc6dd15d6953532a0def9eb  gcc/testsuite/g++.dg/lookup/pr80891-4.C
! 5d3bb642cca53d777884e166629275b9  gcc/testsuite/g++.dg/lookup/pr80891-5.C
  e39913eb836c105e19f8a2ef46a2702f  gcc/testsuite/g++.dg/lookup/pr80913.C
  26ef1fd7163e6344bfb894634f561ab2  gcc/testsuite/g++.dg/lookup/pr80979.C
  d342db9fb18156df9393faba58928d3b  gcc/testsuite/g++.dg/lookup/pr81124.C
*************** b0d2b85719be4698bf6dbe4c553cb0fc  gcc/te
*** 23839,23856 ****
  6b555b80311b62daa1ffa5ce1810a621  gcc/testsuite/g++.dg/lookup/pr85634-2.C
  506978ed752f3a82436436e374de9f31  gcc/testsuite/g++.dg/lookup/pr85634.C
  3ccd58b6028d69a000f334fac1ef2942  gcc/testsuite/g++.dg/lookup/pr86329.C
! 30904d79842d6ee7159bef7c4eceb509  gcc/testsuite/g++.dg/lookup/pr87269.C
  92d8ca6e3168a7b42ef20361e76d5bd7  gcc/testsuite/g++.dg/lookup/pr87531-2.C
  d85c77d90a65a6ab99636a50096dd54e  gcc/testsuite/g++.dg/lookup/pr87531.C
  830dbad0afb086773b9afc3c031a5be1  gcc/testsuite/g++.dg/lookup/pr87904.C
  ce3cad33334f23d34dc1c7641daaf22a  gcc/testsuite/g++.dg/lookup/pr90754.C
! 3d384542a620fae8987b3de3d5ed239f  gcc/testsuite/g++.dg/lookup/pr91826.C
  c0d5ffeb75a35d8442846603fb55dbb5  gcc/testsuite/g++.dg/lookup/pr94257.C
  6f2568fcabfc17df94621b4396ce6485  gcc/testsuite/g++.dg/lookup/pr97877.C
  a08f7a8ee36ffedf58d45cdd0bea310c  gcc/testsuite/g++.dg/lookup/pr97905.C
  f7f019c20c4a98b96f2eecf985428f03  gcc/testsuite/g++.dg/lookup/pr99030.C
  a4d811ecd0c3887d68812c42b8d16691  gcc/testsuite/g++.dg/lookup/pr99039.C
! f3f1703b34389748bf54d9576b9b99a7  gcc/testsuite/g++.dg/lookup/pr99116-1.C
  cba7f8d0ef2bdfaf7627f1941b7dcd57  gcc/testsuite/g++.dg/lookup/pr99116-2.C
  9fc063d780e4510399927cfe832e8770  gcc/testsuite/g++.dg/lookup/pretty1.C
  f30dda31dee159f3aebbbc269a5fd8e4  gcc/testsuite/g++.dg/lookup/ptrmem1.C
--- 25431,25448 ----
  6b555b80311b62daa1ffa5ce1810a621  gcc/testsuite/g++.dg/lookup/pr85634-2.C
  506978ed752f3a82436436e374de9f31  gcc/testsuite/g++.dg/lookup/pr85634.C
  3ccd58b6028d69a000f334fac1ef2942  gcc/testsuite/g++.dg/lookup/pr86329.C
! 1ecd4877a0b49ecf38d935744fc67c62  gcc/testsuite/g++.dg/lookup/pr87269.C
  92d8ca6e3168a7b42ef20361e76d5bd7  gcc/testsuite/g++.dg/lookup/pr87531-2.C
  d85c77d90a65a6ab99636a50096dd54e  gcc/testsuite/g++.dg/lookup/pr87531.C
  830dbad0afb086773b9afc3c031a5be1  gcc/testsuite/g++.dg/lookup/pr87904.C
  ce3cad33334f23d34dc1c7641daaf22a  gcc/testsuite/g++.dg/lookup/pr90754.C
! d80eabde42c5822c221ecf680ee7bfcf  gcc/testsuite/g++.dg/lookup/pr91826.C
  c0d5ffeb75a35d8442846603fb55dbb5  gcc/testsuite/g++.dg/lookup/pr94257.C
  6f2568fcabfc17df94621b4396ce6485  gcc/testsuite/g++.dg/lookup/pr97877.C
  a08f7a8ee36ffedf58d45cdd0bea310c  gcc/testsuite/g++.dg/lookup/pr97905.C
  f7f019c20c4a98b96f2eecf985428f03  gcc/testsuite/g++.dg/lookup/pr99030.C
  a4d811ecd0c3887d68812c42b8d16691  gcc/testsuite/g++.dg/lookup/pr99039.C
! bfaf930bf878b1d2b2edff1232d8f515  gcc/testsuite/g++.dg/lookup/pr99116-1.C
  cba7f8d0ef2bdfaf7627f1941b7dcd57  gcc/testsuite/g++.dg/lookup/pr99116-2.C
  9fc063d780e4510399927cfe832e8770  gcc/testsuite/g++.dg/lookup/pretty1.C
  f30dda31dee159f3aebbbc269a5fd8e4  gcc/testsuite/g++.dg/lookup/ptrmem1.C
*************** aff7de7adc795eb143921ae465b9ec0f  gcc/te
*** 23914,23920 ****
  a6328d8566e02a3202b9b3286fb4e02e  gcc/testsuite/g++.dg/lookup/using26.C
  37ed5e841d52c7a968b6808018f1412b  gcc/testsuite/g++.dg/lookup/using27.C
  c327a4c816ef51deda0133814e487924  gcc/testsuite/g++.dg/lookup/using28.C
! 41083ecc0cd067bef02bf05dcac8caa3  gcc/testsuite/g++.dg/lookup/using29.C
  d56f4b6d96d8a5c73deddb44f985b2b0  gcc/testsuite/g++.dg/lookup/using3.C
  7d6d732595d94cc02fac2e99d8cddfe3  gcc/testsuite/g++.dg/lookup/using30.C
  e9c04992b07ac04f995f7a908689c1c1  gcc/testsuite/g++.dg/lookup/using31.C
--- 25506,25512 ----
  a6328d8566e02a3202b9b3286fb4e02e  gcc/testsuite/g++.dg/lookup/using26.C
  37ed5e841d52c7a968b6808018f1412b  gcc/testsuite/g++.dg/lookup/using27.C
  c327a4c816ef51deda0133814e487924  gcc/testsuite/g++.dg/lookup/using28.C
! f1b9c7a1ca12c9b847dd17cb693f80ff  gcc/testsuite/g++.dg/lookup/using29.C
  d56f4b6d96d8a5c73deddb44f985b2b0  gcc/testsuite/g++.dg/lookup/using3.C
  7d6d732595d94cc02fac2e99d8cddfe3  gcc/testsuite/g++.dg/lookup/using30.C
  e9c04992b07ac04f995f7a908689c1c1  gcc/testsuite/g++.dg/lookup/using31.C
*************** e6b9eddad8d672688c883ca8af446a66  gcc/te
*** 23940,23952 ****
  389a92cf6aacf98eb4b24781b6ec7ebc  gcc/testsuite/g++.dg/lookup/using50.C
  f987ef07d14ec2f00187c4c84c596777  gcc/testsuite/g++.dg/lookup/using51.C
  c215c3d00f87b59d1c59614eaf8713ea  gcc/testsuite/g++.dg/lookup/using52.C
! f49c14d03d35e01b6261427790692a09  gcc/testsuite/g++.dg/lookup/using53.C
  9650e8814f13fa13eae326438a1fdf61  gcc/testsuite/g++.dg/lookup/using54.C
  2c031b9dc98ae61c00b9677b6ad27297  gcc/testsuite/g++.dg/lookup/using55.C
  9ab8d14e576848ca2e357e33a402d9d8  gcc/testsuite/g++.dg/lookup/using56.C
  3c8ccd91a0814d9df33574c35fc4046a  gcc/testsuite/g++.dg/lookup/using57.C
  9c4ca42a89732005156a8d395323eb68  gcc/testsuite/g++.dg/lookup/using58.C
! 55c859b1787a2ae794328cb76d82d129  gcc/testsuite/g++.dg/lookup/using59.C
  8db693e8a73657ac0a6ba980e910013c  gcc/testsuite/g++.dg/lookup/using6.C
  1326174db9cb7a0642c670ad6288426d  gcc/testsuite/g++.dg/lookup/using60.C
  e0b7621e55bc08def1537fb40f4102ca  gcc/testsuite/g++.dg/lookup/using61.C
--- 25532,25544 ----
  389a92cf6aacf98eb4b24781b6ec7ebc  gcc/testsuite/g++.dg/lookup/using50.C
  f987ef07d14ec2f00187c4c84c596777  gcc/testsuite/g++.dg/lookup/using51.C
  c215c3d00f87b59d1c59614eaf8713ea  gcc/testsuite/g++.dg/lookup/using52.C
! ec44169651a3398299170a7252581c8a  gcc/testsuite/g++.dg/lookup/using53.C
  9650e8814f13fa13eae326438a1fdf61  gcc/testsuite/g++.dg/lookup/using54.C
  2c031b9dc98ae61c00b9677b6ad27297  gcc/testsuite/g++.dg/lookup/using55.C
  9ab8d14e576848ca2e357e33a402d9d8  gcc/testsuite/g++.dg/lookup/using56.C
  3c8ccd91a0814d9df33574c35fc4046a  gcc/testsuite/g++.dg/lookup/using57.C
  9c4ca42a89732005156a8d395323eb68  gcc/testsuite/g++.dg/lookup/using58.C
! 6323a62a87fe06b56b85bad7ca24672e  gcc/testsuite/g++.dg/lookup/using59.C
  8db693e8a73657ac0a6ba980e910013c  gcc/testsuite/g++.dg/lookup/using6.C
  1326174db9cb7a0642c670ad6288426d  gcc/testsuite/g++.dg/lookup/using60.C
  e0b7621e55bc08def1537fb40f4102ca  gcc/testsuite/g++.dg/lookup/using61.C
*************** e0b7621e55bc08def1537fb40f4102ca  gcc/te
*** 23957,23963 ****
--- 25549,25559 ----
  d858e2316bc63bb7df9c94f3a0c89324  gcc/testsuite/g++.dg/lookup/using66.C
  94a4a82a6b18ee96914050ff567910de  gcc/testsuite/g++.dg/lookup/using66a.C
  301c23408aa2bf860b1394d2de53d104  gcc/testsuite/g++.dg/lookup/using67.C
+ 45c770cbfdfc877ba6650869c4ba58c3  gcc/testsuite/g++.dg/lookup/using68.C
+ b5b84ec6282dcc8a563b1a7d5eea690d  gcc/testsuite/g++.dg/lookup/using69.C
  9be044a2ccf500ea6536f0f7ccbdef45  gcc/testsuite/g++.dg/lookup/using7.C
+ 3c3e96157af5c32b4257bf97ed0ec198  gcc/testsuite/g++.dg/lookup/using70.C
+ ed066cff396def925b9c569de675faf5  gcc/testsuite/g++.dg/lookup/using71.C
  05105c11218492c8a6c6943b32a316ec  gcc/testsuite/g++.dg/lookup/using8.C
  94092d782dab067a9255cde42b45a3bf  gcc/testsuite/g++.dg/lookup/using9.C
  7f8c2990649e6e5c111c1d4314e97286  gcc/testsuite/g++.dg/lto/20080709_0.C
*************** c6f32b33e84f3bfb06660b7dee175d23  gcc/te
*** 24049,24062 ****
  95f1267a216caf98bd99298c998cd58e  gcc/testsuite/g++.dg/lto/20091004-3_0.C
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
! dae8d29a4481b18cab90252e7c78ea53  gcc/testsuite/g++.dg/lto/20091022-2_0.C
  b4849d6e46f2aa7820d2480e9eb53129  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
  0981cf0352d8578e32f0ec1c4499a5a7  gcc/testsuite/g++.dg/lto/20091210-1_0.C
  0d8576140ac50fc7649bb65a88d3f42e  gcc/testsuite/g++.dg/lto/20091210-1_0.h
  e5e25bc32bb88fc22d2586e2e9ce5ea6  gcc/testsuite/g++.dg/lto/20091210-1_1.C
! cc1ff528fda236c61039ea14f75992d1  gcc/testsuite/g++.dg/lto/20091219_0.C
  33b3117a2f14f456dd4030b0aa927b8f  gcc/testsuite/g++.dg/lto/20100302.h
  770a4d607fc3a285446ae2f9d75d9fb1  gcc/testsuite/g++.dg/lto/20100302_0.C
  bd7e5b360aaa69ca4182436b84c325ff  gcc/testsuite/g++.dg/lto/20100302_1.C
--- 25645,25658 ----
  95f1267a216caf98bd99298c998cd58e  gcc/testsuite/g++.dg/lto/20091004-3_0.C
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
! 2a8de4646e0a4664b55fcd4e9d826897  gcc/testsuite/g++.dg/lto/20091022-2_0.C
  b4849d6e46f2aa7820d2480e9eb53129  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
  0981cf0352d8578e32f0ec1c4499a5a7  gcc/testsuite/g++.dg/lto/20091210-1_0.C
  0d8576140ac50fc7649bb65a88d3f42e  gcc/testsuite/g++.dg/lto/20091210-1_0.h
  e5e25bc32bb88fc22d2586e2e9ce5ea6  gcc/testsuite/g++.dg/lto/20091210-1_1.C
! 790e71afdd9c0b582f883c9b08ae1c74  gcc/testsuite/g++.dg/lto/20091219_0.C
  33b3117a2f14f456dd4030b0aa927b8f  gcc/testsuite/g++.dg/lto/20100302.h
  770a4d607fc3a285446ae2f9d75d9fb1  gcc/testsuite/g++.dg/lto/20100302_0.C
  bd7e5b360aaa69ca4182436b84c325ff  gcc/testsuite/g++.dg/lto/20100302_1.C
*************** a44566d13ced1a79770276fc437e80d4  gcc/te
*** 24113,24119 ****
  62ce00e27e2297def984a00e603cd45f  gcc/testsuite/g++.dg/lto/inline-crossmodule-1.h
  273363ca2008480021c43eee5962f85c  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_0.C
  a9aa6c16f15dfad712dab4d5e34d1ad3  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_1.C
! 5555fa9b00ba86281770f77134382f1f  gcc/testsuite/g++.dg/lto/lto.exp
  51384f349888b259f190c2e578232db0  gcc/testsuite/g++.dg/lto/odr-1_0.C
  d2314a32a8cfaa76cd78c66c44bfc35a  gcc/testsuite/g++.dg/lto/odr-1_1.C
  5c6ba6285c9f905aad689d0df9b3b508  gcc/testsuite/g++.dg/lto/odr-2_0.C
--- 25709,25715 ----
  62ce00e27e2297def984a00e603cd45f  gcc/testsuite/g++.dg/lto/inline-crossmodule-1.h
  273363ca2008480021c43eee5962f85c  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_0.C
  a9aa6c16f15dfad712dab4d5e34d1ad3  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_1.C
! 58a1b5e0bb6a9281fe0f154bfa457d8c  gcc/testsuite/g++.dg/lto/lto.exp
  51384f349888b259f190c2e578232db0  gcc/testsuite/g++.dg/lto/odr-1_0.C
  d2314a32a8cfaa76cd78c66c44bfc35a  gcc/testsuite/g++.dg/lto/odr-1_1.C
  5c6ba6285c9f905aad689d0df9b3b508  gcc/testsuite/g++.dg/lto/odr-2_0.C
*************** cac1beb5973f2ae7f413286aea273726  gcc/te
*** 24133,24142 ****
--- 25729,25744 ----
  8b0aae3760bbbdbb56a12a24c02e7d7e  gcc/testsuite/g++.dg/lto/pr101396_0.C
  ac5555b4df88275d04e41aa95b0aca9a  gcc/testsuite/g++.dg/lto/pr101396_1.C
  57e4a1572912531a0ef7ae5e66a36910  gcc/testsuite/g++.dg/lto/pr105399_0.C
+ 6e7e7fc204b3df6d8de9823aac948376  gcc/testsuite/g++.dg/lto/pr107467_0.C
  0a39d2e9c16962015b5adf8bff3214c8  gcc/testsuite/g++.dg/lto/pr108772_0.C
  f1d9eed0025353353019a54838c87ed9  gcc/testsuite/g++.dg/lto/pr113208.h
  22230575f68a36106d16454407701753  gcc/testsuite/g++.dg/lto/pr113208_0.C
  36a6b4f47dbbdcca4469926f1398a598  gcc/testsuite/g++.dg/lto/pr113208_1.C
+ 09299bd83d910caa117e38cf3391ebd9  gcc/testsuite/g++.dg/lto/pr118785_0.C
+ 50e4e380af101cf3819f543c64d428ba  gcc/testsuite/g++.dg/lto/pr118817_0.C
+ 170fab8219ca5d2db78f5026f9bf82c8  gcc/testsuite/g++.dg/lto/pr119067_0.C
+ c2fbc4281a4940f3ba50c956b391e55a  gcc/testsuite/g++.dg/lto/pr119067_1.C
+ f8d194a431c9313cc0e794b5fcc15ac6  gcc/testsuite/g++.dg/lto/pr119614_0.C
  ba9b686c163762488051ec4094a838b2  gcc/testsuite/g++.dg/lto/pr40818_0.C
  08a786b250f802e56e458c7d60a358fc  gcc/testsuite/g++.dg/lto/pr42987_0.C
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/lto/pr42987_1.C
*************** ed2299062ba04c6aedaee44243854103  gcc/te
*** 24148,24154 ****
  89f1db6bd7ddb730227984b76cc5d1e1  gcc/testsuite/g++.dg/lto/pr45679-2_0.C
  eb977e11accaf5ceaed39ff5df8e4abd  gcc/testsuite/g++.dg/lto/pr45679-2_1.C
  dea28ab6f6b16a4fe65dafffe3df1f3d  gcc/testsuite/g++.dg/lto/pr45983_0.C
- 8b6ed0febb7b8cb0b71d1abbb9768498  gcc/testsuite/g++.dg/lto/pr47333.C
  3faf46c32b940ecbfb444b65c6869c27  gcc/testsuite/g++.dg/lto/pr48042_0.C
  a7a28bfa3ecbd16048176050bdad64bd  gcc/testsuite/g++.dg/lto/pr48207-2_0.C
  dc37f7a73a48e669903030d4f7f26b07  gcc/testsuite/g++.dg/lto/pr48207-3_0.C
--- 25750,25755 ----
*************** d8c212e858167f20da34f48ece091836  gcc/te
*** 24171,24186 ****
  05d66d3b91c45cd54dcaf71c78635301  gcc/testsuite/g++.dg/lto/pr52400_0.C
  0b8cd619eccd9ac6f32d145111bcb551  gcc/testsuite/g++.dg/lto/pr52605_0.C
  75277aaca640889b23c288c9d8090dc1  gcc/testsuite/g++.dg/lto/pr53470_0.C
! fe44176e972735b6c37fd68b63109239  gcc/testsuite/g++.dg/lto/pr54625-1_0.c
  81fc0009050d4f11ee2f0adb0bebea9f  gcc/testsuite/g++.dg/lto/pr54625-1_1.C
! b88e6ad9b6e83a25b88c786ae50b043f  gcc/testsuite/g++.dg/lto/pr54625-2_0.c
  379ba463157e17f963883a2f93daddfd  gcc/testsuite/g++.dg/lto/pr54625-2_1.C
  e322526c296977cb7c4900d2a133c3c4  gcc/testsuite/g++.dg/lto/pr60150.H
  cbee807af28f014c203c54ab80ff50a2  gcc/testsuite/g++.dg/lto/pr60150_0.C
  eb989cca62b61ae260c43eec2e863f53  gcc/testsuite/g++.dg/lto/pr60150_1.C
  4545a0f5287e3787b44c5f09c746b2c5  gcc/testsuite/g++.dg/lto/pr60336_0.C
  539839d2d7b449fce8fb3b3226460f52  gcc/testsuite/g++.dg/lto/pr60567_0.C
! 425b7b8581eca331e9b1c2befa39962b  gcc/testsuite/g++.dg/lto/pr62026.C
  c3c4967cb8c2c452928945c0ccd6989d  gcc/testsuite/g++.dg/lto/pr63166_0.ii
  0b63c925f1273abcd9e9c38bcd437701  gcc/testsuite/g++.dg/lto/pr63166_1.ii
  55437e8d287eedf3fff9dd4b6ab2781a  gcc/testsuite/g++.dg/lto/pr63270.h
--- 25772,25787 ----
  05d66d3b91c45cd54dcaf71c78635301  gcc/testsuite/g++.dg/lto/pr52400_0.C
  0b8cd619eccd9ac6f32d145111bcb551  gcc/testsuite/g++.dg/lto/pr52605_0.C
  75277aaca640889b23c288c9d8090dc1  gcc/testsuite/g++.dg/lto/pr53470_0.C
! 0a1583883e53e88e15e675521936d26f  gcc/testsuite/g++.dg/lto/pr54625-1_0.c
  81fc0009050d4f11ee2f0adb0bebea9f  gcc/testsuite/g++.dg/lto/pr54625-1_1.C
! 63f3b603801e83c0c1edd28b989b7917  gcc/testsuite/g++.dg/lto/pr54625-2_0.c
  379ba463157e17f963883a2f93daddfd  gcc/testsuite/g++.dg/lto/pr54625-2_1.C
  e322526c296977cb7c4900d2a133c3c4  gcc/testsuite/g++.dg/lto/pr60150.H
  cbee807af28f014c203c54ab80ff50a2  gcc/testsuite/g++.dg/lto/pr60150_0.C
  eb989cca62b61ae260c43eec2e863f53  gcc/testsuite/g++.dg/lto/pr60150_1.C
  4545a0f5287e3787b44c5f09c746b2c5  gcc/testsuite/g++.dg/lto/pr60336_0.C
  539839d2d7b449fce8fb3b3226460f52  gcc/testsuite/g++.dg/lto/pr60567_0.C
! b0b88b6e1ea73332e8af7ec97db10850  gcc/testsuite/g++.dg/lto/pr62026_0.C
  c3c4967cb8c2c452928945c0ccd6989d  gcc/testsuite/g++.dg/lto/pr63166_0.ii
  0b63c925f1273abcd9e9c38bcd437701  gcc/testsuite/g++.dg/lto/pr63166_1.ii
  55437e8d287eedf3fff9dd4b6ab2781a  gcc/testsuite/g++.dg/lto/pr63270.h
*************** a8d79eafba6d19cc77d3447c4e964c71  gcc/te
*** 24205,24211 ****
  b0be053370eef0727a9bc5a52471bfd8  gcc/testsuite/g++.dg/lto/pr65475c_0.C
  e8cf2a3b6fd4daf5bb8b404d59602d2f  gcc/testsuite/g++.dg/lto/pr65475c_1.C
  4b27326200ddb5b6cebf69d6dcc7bd0f  gcc/testsuite/g++.dg/lto/pr65549_0.C
! 98ff31b886562e851e98d8334aedbbc7  gcc/testsuite/g++.dg/lto/pr66180_0.C
  0c6775ecdbe88bd8a80496ac9b9da9d4  gcc/testsuite/g++.dg/lto/pr66180_1.C
  72e85fbc08f8bedf04821f048d2e6f83  gcc/testsuite/g++.dg/lto/pr66705_0.C
  cf9e790af49da7d67cd62aee68380d10  gcc/testsuite/g++.dg/lto/pr68057_0.C
--- 25806,25812 ----
  b0be053370eef0727a9bc5a52471bfd8  gcc/testsuite/g++.dg/lto/pr65475c_0.C
  e8cf2a3b6fd4daf5bb8b404d59602d2f  gcc/testsuite/g++.dg/lto/pr65475c_1.C
  4b27326200ddb5b6cebf69d6dcc7bd0f  gcc/testsuite/g++.dg/lto/pr65549_0.C
! 6c076b9733d60be5ba6b22aa314c8e64  gcc/testsuite/g++.dg/lto/pr66180_0.C
  0c6775ecdbe88bd8a80496ac9b9da9d4  gcc/testsuite/g++.dg/lto/pr66180_1.C
  72e85fbc08f8bedf04821f048d2e6f83  gcc/testsuite/g++.dg/lto/pr66705_0.C
  cf9e790af49da7d67cd62aee68380d10  gcc/testsuite/g++.dg/lto/pr68057_0.C
*************** e2b3ea5caae8976b182bb721752f096a  gcc/te
*** 24229,24235 ****
  5f96f0a8bac431f1df417d8fee7e0bd8  gcc/testsuite/g++.dg/lto/pr79050_0.C
  fc5790b972183d141230e551e9de78a5  gcc/testsuite/g++.dg/lto/pr79671_0.C
  2b83a5f8260536dd9d7e43db9852168b  gcc/testsuite/g++.dg/lto/pr79671_1.c
! e818718060d8a56058024842b3c50923  gcc/testsuite/g++.dg/lto/pr80287_0.C
  ccdae431579a6d857d9b594afc510a82  gcc/testsuite/g++.dg/lto/pr81940_0.C
  624412255e2abaa13ccef9a7f1504fff  gcc/testsuite/g++.dg/lto/pr82027_0.C
  54baa4b9b6d57d56799e3b3555ffb066  gcc/testsuite/g++.dg/lto/pr82414_0.C
--- 25830,25836 ----
  5f96f0a8bac431f1df417d8fee7e0bd8  gcc/testsuite/g++.dg/lto/pr79050_0.C
  fc5790b972183d141230e551e9de78a5  gcc/testsuite/g++.dg/lto/pr79671_0.C
  2b83a5f8260536dd9d7e43db9852168b  gcc/testsuite/g++.dg/lto/pr79671_1.c
! 6ce7e49a58102cc9ed856fb3584ab3c8  gcc/testsuite/g++.dg/lto/pr80287_0.C
  ccdae431579a6d857d9b594afc510a82  gcc/testsuite/g++.dg/lto/pr81940_0.C
  624412255e2abaa13ccef9a7f1504fff  gcc/testsuite/g++.dg/lto/pr82027_0.C
  54baa4b9b6d57d56799e3b3555ffb066  gcc/testsuite/g++.dg/lto/pr82414_0.C
*************** a154c230ca678644ced231367fd697d3  gcc/te
*** 24263,24270 ****
  ea4edae735415c73e2a3055e504105dc  gcc/testsuite/g++.dg/lto/pr89330_0.C
  68d5a7d425f219b1683f4ca9cf340fbb  gcc/testsuite/g++.dg/lto/pr89330_1.C
  21c634d1187733a8392b17ae99b4cd06  gcc/testsuite/g++.dg/lto/pr89335_0.C
! cb782e35cc277d1b7be31cdb2b766e39  gcc/testsuite/g++.dg/lto/pr89358_0.C
! 4f6e362a864f5ac4f9b9b99e660e0674  gcc/testsuite/g++.dg/lto/pr89358_1.C
  71c4e0358186a48bc58fd216bc445a9a  gcc/testsuite/g++.dg/lto/pr90939_0.C
  52ac5c759138b17ea3fb0b5c2ad3e41c  gcc/testsuite/g++.dg/lto/pr90939_1.C
  445d2551442bc685a2e12fdc8173874f  gcc/testsuite/g++.dg/lto/pr90990_0.C
--- 25864,25871 ----
  ea4edae735415c73e2a3055e504105dc  gcc/testsuite/g++.dg/lto/pr89330_0.C
  68d5a7d425f219b1683f4ca9cf340fbb  gcc/testsuite/g++.dg/lto/pr89330_1.C
  21c634d1187733a8392b17ae99b4cd06  gcc/testsuite/g++.dg/lto/pr89335_0.C
! f087207369821d14736504a2bf0da31d  gcc/testsuite/g++.dg/lto/pr89358_0.C
! 1bcfca37dc3ed7efe5d74955ad59a2d8  gcc/testsuite/g++.dg/lto/pr89358_1.C
  71c4e0358186a48bc58fd216bc445a9a  gcc/testsuite/g++.dg/lto/pr90939_0.C
  52ac5c759138b17ea3fb0b5c2ad3e41c  gcc/testsuite/g++.dg/lto/pr90939_1.C
  445d2551442bc685a2e12fdc8173874f  gcc/testsuite/g++.dg/lto/pr90990_0.C
*************** ce8be172edac90152397f5825f64ab68  gcc/te
*** 24275,24281 ****
  f3edef1ce387276626f5233209353c56  gcc/testsuite/g++.dg/lto/pr92609_0.C
  42d332f131b2a45f8c5d542d547db308  gcc/testsuite/g++.dg/lto/pr92609_1.C
  2d449b278a535f9f851a800e453b07a6  gcc/testsuite/g++.dg/lto/pr93166_0.C
- 2ddbed867f8a06e5917b4b7dd8594763  gcc/testsuite/g++.dg/lto/pr95677.C
  d92f918a28c68fc934d26fc7ceb822b5  gcc/testsuite/g++.dg/lto/pr96591_0.C
  b8735311421a9557b475c780e1712295  gcc/testsuite/g++.dg/lto/pr96690_0.C
  1fa0bf497eddaf27bc8b579ea2b690fc  gcc/testsuite/g++.dg/lto/pr97565_0.C
--- 25876,25881 ----
*************** cb6fd3c7fff8631ed4460da9de6e631e  gcc/te
*** 24291,24297 ****
  09b5b33549e0fae8241fc5c1e511aa94  gcc/testsuite/g++.dg/modules/access-1_b.C
  3530117fb493e047e12aef4eb9b47cdb  gcc/testsuite/g++.dg/modules/access-1_c.C
  5d129e8bc113c7e51cafe5981b65f2b7  gcc/testsuite/g++.dg/modules/adhoc-1_a.C
! 16c64a2c2890011c1485d5a569134ad9  gcc/testsuite/g++.dg/modules/adhoc-1_b.C
  9c824c1a28f6bcf79fd72186d79fe93c  gcc/testsuite/g++.dg/modules/adl-1_a.C
  3bb31e23ac383185d41cda2c5fcbdaf3  gcc/testsuite/g++.dg/modules/adl-1_b.C
  46103f57f3287176308fc33634d7da8e  gcc/testsuite/g++.dg/modules/adl-1_c.C
--- 25891,25897 ----
  09b5b33549e0fae8241fc5c1e511aa94  gcc/testsuite/g++.dg/modules/access-1_b.C
  3530117fb493e047e12aef4eb9b47cdb  gcc/testsuite/g++.dg/modules/access-1_c.C
  5d129e8bc113c7e51cafe5981b65f2b7  gcc/testsuite/g++.dg/modules/adhoc-1_a.C
! 3317b0bbfaacf10662d5994de76ea820  gcc/testsuite/g++.dg/modules/adhoc-1_b.C
  9c824c1a28f6bcf79fd72186d79fe93c  gcc/testsuite/g++.dg/modules/adl-1_a.C
  3bb31e23ac383185d41cda2c5fcbdaf3  gcc/testsuite/g++.dg/modules/adl-1_b.C
  46103f57f3287176308fc33634d7da8e  gcc/testsuite/g++.dg/modules/adl-1_c.C
*************** a259a9b00d1160c845c55e9291b4a06b  gcc/te
*** 24303,24312 ****
  c6bae9ebe0d151a4e90da3eb0190d6c9  gcc/testsuite/g++.dg/modules/adl-3_c.C
  2db95f9305aa7836803dc6e9c51e92fb  gcc/testsuite/g++.dg/modules/adl-4_a.C
  35342463b6e2512152cf33f494607043  gcc/testsuite/g++.dg/modules/adl-4_b.C
! c03085d054b414379e2393c066d0d997  gcc/testsuite/g++.dg/modules/adl-5_a.c
  acda5ed59aa700353a640d4574448925  gcc/testsuite/g++.dg/modules/adl-5_b.C
  3b266e88f18eff80afa4008e92a1178c  gcc/testsuite/g++.dg/modules/adl-5_c.C
! ecc4cdff1fc19f2bbddbccb4517d4d32  gcc/testsuite/g++.dg/modules/adl-5_d.C
  84f5dc8c8fe19d892ed655362cbbabc1  gcc/testsuite/g++.dg/modules/alias-1_a.H
  e5d48a6cbbf612860c500056802a4d9e  gcc/testsuite/g++.dg/modules/alias-1_b.C
  87bfff6916b05ac863e65eb34d2f39c5  gcc/testsuite/g++.dg/modules/alias-1_c.C
--- 25903,25912 ----
  c6bae9ebe0d151a4e90da3eb0190d6c9  gcc/testsuite/g++.dg/modules/adl-3_c.C
  2db95f9305aa7836803dc6e9c51e92fb  gcc/testsuite/g++.dg/modules/adl-4_a.C
  35342463b6e2512152cf33f494607043  gcc/testsuite/g++.dg/modules/adl-4_b.C
! c03085d054b414379e2393c066d0d997  gcc/testsuite/g++.dg/modules/adl-5_a.C
  acda5ed59aa700353a640d4574448925  gcc/testsuite/g++.dg/modules/adl-5_b.C
  3b266e88f18eff80afa4008e92a1178c  gcc/testsuite/g++.dg/modules/adl-5_c.C
! 2cb62ac99daf97aae2cbc73fc371b247  gcc/testsuite/g++.dg/modules/adl-5_d.C
  84f5dc8c8fe19d892ed655362cbbabc1  gcc/testsuite/g++.dg/modules/alias-1_a.H
  e5d48a6cbbf612860c500056802a4d9e  gcc/testsuite/g++.dg/modules/alias-1_b.C
  87bfff6916b05ac863e65eb34d2f39c5  gcc/testsuite/g++.dg/modules/alias-1_c.C
*************** fba23da3f9ec6a6b93d60f4ef252481e  gcc/te
*** 24318,24323 ****
--- 25918,25925 ----
  0f37e2e98366e55c9539dfead51cb028  gcc/testsuite/g++.dg/modules/align-type-1_b.C
  6e36c74fc6da256a9a69d602eaf80799  gcc/testsuite/g++.dg/modules/ambig-1_a.C
  cc8a24e3071762db42b8cc93b84bc218  gcc/testsuite/g++.dg/modules/ambig-1_b.C
+ c8ca3884f418128e6bdf73e5e09a0b0a  gcc/testsuite/g++.dg/modules/ambig-2_a.C
+ 1e70a031083e8fb8898bd0cf3ca5ae76  gcc/testsuite/g++.dg/modules/ambig-2_b.C
  2a95a2f6f71a0ac30f32466820d2a814  gcc/testsuite/g++.dg/modules/anon-1_a.C
  b57fe141e2fed60dcd3525891f099585  gcc/testsuite/g++.dg/modules/anon-1_b.C
  f2f40d23b84601853ad5eb408b4167d4  gcc/testsuite/g++.dg/modules/anon-1_c.C
*************** f86a9d1e34660cdc674d9ad30862970e  gcc/te
*** 24329,24347 ****
  a7104a7f65a894a81867f80af8612399  gcc/testsuite/g++.dg/modules/atom-decl-0_a.C
  bb5c4cd9a7635fa1f03740e04c841427  gcc/testsuite/g++.dg/modules/atom-decl-0_b.C
  264f336f97e542ff429a149616ccd617  gcc/testsuite/g++.dg/modules/atom-decl-0_c.C
! 5fe01ffbb194d47bd597f946d31eda44  gcc/testsuite/g++.dg/modules/atom-decl-2.C
  cbcaa228a99405e9d30bda5bc62e67ff  gcc/testsuite/g++.dg/modules/atom-decl-3.C
  8248fdb627967da2d022688e25d50185  gcc/testsuite/g++.dg/modules/atom-pragma-1.C
! 847140d0ba90e454b64518cf34e0df81  gcc/testsuite/g++.dg/modules/atom-pragma-3.C
  0ca64939ad66eb60fdbc6abbae2de084  gcc/testsuite/g++.dg/modules/atom-preamble-1.C
! fa0b1f89a565691ef90d71ff4335f004  gcc/testsuite/g++.dg/modules/atom-preamble-2_a.C
  ff6388df65ce7040fcb3fed7c265c6b3  gcc/testsuite/g++.dg/modules/atom-preamble-2_b.C
  35c4a0f83a6a20cd4877f80ff98aea13  gcc/testsuite/g++.dg/modules/atom-preamble-2_c.C
  6a377a656bec55ca6faa7f5c34a54514  gcc/testsuite/g++.dg/modules/atom-preamble-2_d.C
  78b6cd37597e8bead1d104e4543b02fe  gcc/testsuite/g++.dg/modules/atom-preamble-2_e.C
! 8814ec06b94adb7091c1b98e0948bae5  gcc/testsuite/g++.dg/modules/atom-preamble-2_f.C
  f401bc7b53e7de843d517ee0ad528749  gcc/testsuite/g++.dg/modules/atom-preamble-3.C
! 374551efb5c4f0de442b7a47ff980083  gcc/testsuite/g++.dg/modules/atom-preamble-4.C
  81c0c5e828fc012cafc9fa3658ffa887  gcc/testsuite/g++.dg/modules/auto-1.h
  29e4a658cd6f3050ca87707ca8d0bd7b  gcc/testsuite/g++.dg/modules/auto-1_a.H
  1e77f8d752cd0eeb7af8d66ff149dcec  gcc/testsuite/g++.dg/modules/auto-1_b.C
--- 25931,25956 ----
  a7104a7f65a894a81867f80af8612399  gcc/testsuite/g++.dg/modules/atom-decl-0_a.C
  bb5c4cd9a7635fa1f03740e04c841427  gcc/testsuite/g++.dg/modules/atom-decl-0_b.C
  264f336f97e542ff429a149616ccd617  gcc/testsuite/g++.dg/modules/atom-decl-0_c.C
! 25ff659fb2c559fa2558996da8d0a7c7  gcc/testsuite/g++.dg/modules/atom-decl-2.C
  cbcaa228a99405e9d30bda5bc62e67ff  gcc/testsuite/g++.dg/modules/atom-decl-3.C
  8248fdb627967da2d022688e25d50185  gcc/testsuite/g++.dg/modules/atom-pragma-1.C
! 7b877c61c738d5c2ab1783c30b800a89  gcc/testsuite/g++.dg/modules/atom-pragma-3.C
  0ca64939ad66eb60fdbc6abbae2de084  gcc/testsuite/g++.dg/modules/atom-preamble-1.C
! 054ca669f0d35e96b646090fd30f621c  gcc/testsuite/g++.dg/modules/atom-preamble-2_a.C
  ff6388df65ce7040fcb3fed7c265c6b3  gcc/testsuite/g++.dg/modules/atom-preamble-2_b.C
  35c4a0f83a6a20cd4877f80ff98aea13  gcc/testsuite/g++.dg/modules/atom-preamble-2_c.C
  6a377a656bec55ca6faa7f5c34a54514  gcc/testsuite/g++.dg/modules/atom-preamble-2_d.C
  78b6cd37597e8bead1d104e4543b02fe  gcc/testsuite/g++.dg/modules/atom-preamble-2_e.C
! cc18a8174c21f77ee9e229f9f7197320  gcc/testsuite/g++.dg/modules/atom-preamble-2_f.C
  f401bc7b53e7de843d517ee0ad528749  gcc/testsuite/g++.dg/modules/atom-preamble-3.C
! b22d2b6e547d595e6f203ba3eea35a3b  gcc/testsuite/g++.dg/modules/atom-preamble-4.C
! b792de1e3ae7c85a9e3e74862c4efdaf  gcc/testsuite/g++.dg/modules/atom-preamble-5.C
! 470282a3350ba66647c007c3e5b6ac50  gcc/testsuite/g++.dg/modules/attrib-1_a.C
! 0e1deb419c58e4ead0f48549da78c66a  gcc/testsuite/g++.dg/modules/attrib-1_b.C
! 8cc363276dc684eac6fc394c48c1ac46  gcc/testsuite/g++.dg/modules/attrib-2_a.C
! cb60536799a89ad1dffce0a15c88b2d7  gcc/testsuite/g++.dg/modules/attrib-2_b.C
! f0e89ff7d2d836ff7ecd36d27bbacb19  gcc/testsuite/g++.dg/modules/attrib-3_a.H
! 3c275da25d7ace4b3ea9ba624f120c0c  gcc/testsuite/g++.dg/modules/attrib-3_b.C
  81c0c5e828fc012cafc9fa3658ffa887  gcc/testsuite/g++.dg/modules/auto-1.h
  29e4a658cd6f3050ca87707ca8d0bd7b  gcc/testsuite/g++.dg/modules/auto-1_a.H
  1e77f8d752cd0eeb7af8d66ff149dcec  gcc/testsuite/g++.dg/modules/auto-1_b.C
*************** f07c72ff8379fda058ae5d0a9875b722  gcc/te
*** 24353,24358 ****
--- 25962,25972 ----
  2f977bb348df94188e29c8c1aa8088bf  gcc/testsuite/g++.dg/modules/auto-3_b.C
  d67bb58fd3f1d37f733f2b4918afd0fc  gcc/testsuite/g++.dg/modules/auto-4_a.H
  a44f6544a1a4f2fd76efb8c84e669266  gcc/testsuite/g++.dg/modules/auto-4_b.C
+ e4bb490211a91185a882222ab1624bdc  gcc/testsuite/g++.dg/modules/auto-5_a.C
+ a8636939c5d030916bbdc239d5e9e9a3  gcc/testsuite/g++.dg/modules/auto-5_b.C
+ 040be8991ebd5f345ea015fd8710afd5  gcc/testsuite/g++.dg/modules/auto-5_c.C
+ b68df902c6a54181691939a43b2744d7  gcc/testsuite/g++.dg/modules/auto-6_a.H
+ 427dcd6424cdaf1a044b4b2d5267cbf7  gcc/testsuite/g++.dg/modules/auto-6_b.C
  53bbe2f7c4d5079131e5a6dea8da20db  gcc/testsuite/g++.dg/modules/bad-mapper-1.C
  429207e0eb777b4a43a566e8777f6503  gcc/testsuite/g++.dg/modules/bad-mapper-2.C
  457c206081cc6757683b25dc791287cd  gcc/testsuite/g++.dg/modules/bad-mapper-3.C
*************** ad57e7a7e7d0763a5d7b53eebeef2326  gcc/te
*** 24364,24376 ****
  8fe510d9d635ecd99e7dfc62a2cd5b10  gcc/testsuite/g++.dg/modules/bfield-2_a.C
  6cb146eb2d95ac9baf9b3e5d650677c7  gcc/testsuite/g++.dg/modules/bfield-2_b.C
  ba25c98b700e39b48711b141af6b8d5f  gcc/testsuite/g++.dg/modules/bfield-3.H
! 9175185dccd187937b7ecfd1e08a2f53  gcc/testsuite/g++.dg/modules/binding-1_a.H
! 3c5dfe77c841814ff90a0546f7aa6f24  gcc/testsuite/g++.dg/modules/binding-1_b.H
  942ce8ea8cdc38780ea8e94d33cfd1d3  gcc/testsuite/g++.dg/modules/binding-1_c.C
  6247234e10229fe1f007fb7ebce8baae  gcc/testsuite/g++.dg/modules/binding-2.H
  474334daa9212f5c47f087ebca25b52a  gcc/testsuite/g++.dg/modules/block-decl-1_a.C
  d04ea5ff4edaac312d2301e012cfc77c  gcc/testsuite/g++.dg/modules/block-decl-1_b.C
! 357ab74c58f2ff85b46e82b943800e2e  gcc/testsuite/g++.dg/modules/block-decl-2.C
  34e4da9a694367e86e7f35eb06709bfe  gcc/testsuite/g++.dg/modules/block-decl-3.h
  203934cacd5033145b085ef1a55f02ab  gcc/testsuite/g++.dg/modules/block-decl-3_a.C
  88b54e881629545fb6ed4f4df979f36d  gcc/testsuite/g++.dg/modules/block-decl-3_b.C
--- 25978,25990 ----
  8fe510d9d635ecd99e7dfc62a2cd5b10  gcc/testsuite/g++.dg/modules/bfield-2_a.C
  6cb146eb2d95ac9baf9b3e5d650677c7  gcc/testsuite/g++.dg/modules/bfield-2_b.C
  ba25c98b700e39b48711b141af6b8d5f  gcc/testsuite/g++.dg/modules/bfield-3.H
! 4a7457f9275421613e2b5312ffceb356  gcc/testsuite/g++.dg/modules/binding-1_a.H
! 71b78bdf069682ca166d849007f1bb61  gcc/testsuite/g++.dg/modules/binding-1_b.H
  942ce8ea8cdc38780ea8e94d33cfd1d3  gcc/testsuite/g++.dg/modules/binding-1_c.C
  6247234e10229fe1f007fb7ebce8baae  gcc/testsuite/g++.dg/modules/binding-2.H
  474334daa9212f5c47f087ebca25b52a  gcc/testsuite/g++.dg/modules/block-decl-1_a.C
  d04ea5ff4edaac312d2301e012cfc77c  gcc/testsuite/g++.dg/modules/block-decl-1_b.C
! 8d1e25ec9839bbf91f9a1e74e505fdf5  gcc/testsuite/g++.dg/modules/block-decl-2.C
  34e4da9a694367e86e7f35eb06709bfe  gcc/testsuite/g++.dg/modules/block-decl-3.h
  203934cacd5033145b085ef1a55f02ab  gcc/testsuite/g++.dg/modules/block-decl-3_a.C
  88b54e881629545fb6ed4f4df979f36d  gcc/testsuite/g++.dg/modules/block-decl-3_b.C
*************** d30b2aaa5892cbc8534763261c64ebf0  gcc/te
*** 24394,24399 ****
--- 26008,26014 ----
  96da7af5dda2de67510ad6fbe4f0dd18  gcc/testsuite/g++.dg/modules/builtin-6_b.C
  5b3d707477991d6e1a4567469533efd8  gcc/testsuite/g++.dg/modules/builtin-7_a.H
  76a5f994255832c37033d000bf5a15c2  gcc/testsuite/g++.dg/modules/builtin-7_b.C
+ 9a54c1b4b76940fc134470af4ebd9072  gcc/testsuite/g++.dg/modules/builtin-8.C
  c260a7dd28df40b7c5b61dcd0901fff3  gcc/testsuite/g++.dg/modules/by-name-1.C
  0b5e2f8be888204ea96851f7d171ff72  gcc/testsuite/g++.dg/modules/cexpr-1_a.C
  6f4f6f034ae6c6f611a1b844eb7146ed  gcc/testsuite/g++.dg/modules/cexpr-1_b.C
*************** eca65e3a9db1fb6ccbd70d53907f93dd  gcc/te
*** 24403,24412 ****
--- 26018,26031 ----
  0ba4469c7ee995cd2bd01f3ea2decfd5  gcc/testsuite/g++.dg/modules/cexpr-3_b.C
  7607a539ad640abf8fb8e5858286c209  gcc/testsuite/g++.dg/modules/cexpr-4_a.C
  1aeadcc3bec5669f7f1f0491153950a8  gcc/testsuite/g++.dg/modules/cexpr-4_b.C
+ a5dea2e74f2c8c8639f84dc0e84112a1  gcc/testsuite/g++.dg/modules/cexpr-5_a.C
+ 843f2b9623af987c9a85bd4cc2de4466  gcc/testsuite/g++.dg/modules/cexpr-5_b.C
  9e8b6b97c14fc8ba72560634615d4fbe  gcc/testsuite/g++.dg/modules/circ-1_a.C
  98607f9dff6572a0baa9956e2dd1be8c  gcc/testsuite/g++.dg/modules/circ-1_b.C
  e7d806e1771c11cb72e41af12e6d57e4  gcc/testsuite/g++.dg/modules/circ-1_c.C
  cedd15f6c5ea2087db7309f8e58574a4  gcc/testsuite/g++.dg/modules/circ-1_d.C
+ 188cf637178b71d74de58bdbada43b0d  gcc/testsuite/g++.dg/modules/class-10_a.H
+ de9e83ce6d7d5406399b3d0d434e98a7  gcc/testsuite/g++.dg/modules/class-10_b.C
  86586d456dae6a665b6dc0eea845c1d2  gcc/testsuite/g++.dg/modules/class-1_a.C
  52c0c896346bdeeeb006d315251b80a8  gcc/testsuite/g++.dg/modules/class-1_b.C
  10b7bdfdbc0bf357572444729f4dafc4  gcc/testsuite/g++.dg/modules/class-1_c.C
*************** bc38928c9f8a6800dafc162f6e6f58fb  gcc/te
*** 24429,24436 ****
--- 26048,26062 ----
  928857b618d675c87816a776ca3df35b  gcc/testsuite/g++.dg/modules/class-7_c.C
  7b6003994dfc085b0c0b40260c5903bf  gcc/testsuite/g++.dg/modules/class-8_a.C
  4cda6e81598164c1353e6d8587668d7d  gcc/testsuite/g++.dg/modules/class-8_b.C
+ 9a40295b4a00f16692a24e36675f272b  gcc/testsuite/g++.dg/modules/class-9_a.H
+ fddd8f40a7321e1f9eae3f84076aa16d  gcc/testsuite/g++.dg/modules/class-9_b.H
+ 794a6e564f1eb40945ca175d2083e2d2  gcc/testsuite/g++.dg/modules/class-9_c.C
  2b3f45f6e4c8ec8128239deb281b75bd  gcc/testsuite/g++.dg/modules/clone-1_a.C
  9f5521e5bd740049dc967e0822fcb6ba  gcc/testsuite/g++.dg/modules/clone-1_b.C
+ 10dc1d8caaf21e3d254f20f071e9e668  gcc/testsuite/g++.dg/modules/clone-2_a.C
+ 2d9f4b9c8b6b22468a70e970295d675b  gcc/testsuite/g++.dg/modules/clone-2_b.C
+ f4151476d383dfa58ec57d84af229960  gcc/testsuite/g++.dg/modules/clone-3_a.C
+ 43bdc6e1ffd552c18c3f46ba0d9b6353  gcc/testsuite/g++.dg/modules/clone-3_b.C
  a7ee3a8d76bc139c4cf52d3492a2aff4  gcc/testsuite/g++.dg/modules/concept-10_a.H
  2006efa004cac463749325d18b100fdd  gcc/testsuite/g++.dg/modules/concept-10_b.C
  b82e625ae44f653d9caf5a917ed2565a  gcc/testsuite/g++.dg/modules/concept-1_a.C
*************** f53bcb0c9c85ef8761e7817041703172  gcc/te
*** 24454,24489 ****
  76538765d3a6759d13a6368499e66ee6  gcc/testsuite/g++.dg/modules/concept-9.h
  557dd473cb2b97c4d7aedc161724bd00  gcc/testsuite/g++.dg/modules/concept-9_a.C
  21fd0ecb7f424f56c190111aa18973d7  gcc/testsuite/g++.dg/modules/concept-9_b.C
  065c21c126c925a3e00aca89ecd68082  gcc/testsuite/g++.dg/modules/constrained-partial-1_a.C
  36ec67bdeefa980122cd592ead6b309b  gcc/testsuite/g++.dg/modules/constrained-partial-1_b.C
! fe18f4f4c09fb184532b102f0aeda85d  gcc/testsuite/g++.dg/modules/contracts-1_a.C
! 456f6aa18c7514e2a5ffaf6cf04cbe70  gcc/testsuite/g++.dg/modules/contracts-1_b.C
! 6bf40954c16493c98ae7c2b50db160e6  gcc/testsuite/g++.dg/modules/contracts-2_a.C
! 812c9cd73cfe1e6c3922242459752611  gcc/testsuite/g++.dg/modules/contracts-2_b.C
  c3aa378b4d40c2a73a91d1ed014b3379  gcc/testsuite/g++.dg/modules/contracts-2_c.C
! 950674e05462156e3ea3ffab3c3be974  gcc/testsuite/g++.dg/modules/contracts-3_a.C
! 94a991fcd30c1ab95611ab716567cf38  gcc/testsuite/g++.dg/modules/contracts-3_b.C
! 4de82f7ace840ca0d8b4b3c5c83bc79b  gcc/testsuite/g++.dg/modules/contracts-4_a.C
  ce1ebf06dbe7cdae676970830da2a4e7  gcc/testsuite/g++.dg/modules/contracts-4_b.C
  f536f28baebb566f8e0524872a79e757  gcc/testsuite/g++.dg/modules/contracts-4_c.C
! 56e90f154098eafee99bcdb1253eba61  gcc/testsuite/g++.dg/modules/contracts-4_d.C
  8924e09c1bf99205db3bf2a95baa7701  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_a.C
  0a66e0a40527f0507cceaeb322c91a15  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_b.C
  097ffafa56bf8b6bcbb8f85c58b0e187  gcc/testsuite/g++.dg/modules/convop-1_a.C
  02940f3eec05ab2c1e44ea29d72255b6  gcc/testsuite/g++.dg/modules/convop-1_b.C
  ac21ba6dd7a4b896ded96e6d9d998074  gcc/testsuite/g++.dg/modules/cpp-1.C
  7df70a1a3701f4e80b19b9464ac25c08  gcc/testsuite/g++.dg/modules/cpp-2_a.H
  783ab638033bc17058b529268c3f6d93  gcc/testsuite/g++.dg/modules/cpp-2_b.H
! 5f27c96b6732cdc8b9d48c67932295fc  gcc/testsuite/g++.dg/modules/cpp-2_c.C
  c2a9522111346f993bfbf518c09ba47e  gcc/testsuite/g++.dg/modules/cpp-3.C
  ce30e0cf66d2582f7002c6e0c0db5c23  gcc/testsuite/g++.dg/modules/cpp-4.C
  06dff50a736dc7a8b9894fc499b7e4e4  gcc/testsuite/g++.dg/modules/cpp-4.h
  b1f03c901247645230e4966afda6e912  gcc/testsuite/g++.dg/modules/cpp-5_a.H
  fbe86dd2a8732d33bad7bda15fc0e2db  gcc/testsuite/g++.dg/modules/cpp-5_b.C
! 61e65380bfb3781f18a612e670d9cddb  gcc/testsuite/g++.dg/modules/cpp-5_c.C
  dc18c9abbb7b929baad44d4d17cf481c  gcc/testsuite/g++.dg/modules/cpp-6_a.H
  a74bddfbe727d105bb545eedc62f745d  gcc/testsuite/g++.dg/modules/cpp-6_b.H
  b7c85df7a8c7f3b394c7bbf4ed268587  gcc/testsuite/g++.dg/modules/cpp-6_c.C
  3f48d0308ff4b07b3b669154768b92a9  gcc/testsuite/g++.dg/modules/debug-1_a.C
  cc14e75db917eabf9a773192831be701  gcc/testsuite/g++.dg/modules/debug-1_b.C
  f6a9b0b6b1254dcce4baeb1bb3164800  gcc/testsuite/g++.dg/modules/debug-2_a.C
--- 26080,26135 ----
  76538765d3a6759d13a6368499e66ee6  gcc/testsuite/g++.dg/modules/concept-9.h
  557dd473cb2b97c4d7aedc161724bd00  gcc/testsuite/g++.dg/modules/concept-9_a.C
  21fd0ecb7f424f56c190111aa18973d7  gcc/testsuite/g++.dg/modules/concept-9_b.C
+ c39c3f7a341b146e69c63c081b322363  gcc/testsuite/g++.dg/modules/constexpr-if-1_a.C
+ 01798381571908b0203cb2b810de2362  gcc/testsuite/g++.dg/modules/constexpr-if-1_b.C
  065c21c126c925a3e00aca89ecd68082  gcc/testsuite/g++.dg/modules/constrained-partial-1_a.C
  36ec67bdeefa980122cd592ead6b309b  gcc/testsuite/g++.dg/modules/constrained-partial-1_b.C
! 9df1ea9ca907c8f2312f674344fbc6da  gcc/testsuite/g++.dg/modules/contracts-1_a.C
! 7de452dd7c2dfe577b17d75b29cb4846  gcc/testsuite/g++.dg/modules/contracts-1_b.C
! f4deac9dd3dcb31606cfdadfcbb2b9fb  gcc/testsuite/g++.dg/modules/contracts-2_a.C
! 72311670b9ce8066ef64e3ff97af5c05  gcc/testsuite/g++.dg/modules/contracts-2_b.C
  c3aa378b4d40c2a73a91d1ed014b3379  gcc/testsuite/g++.dg/modules/contracts-2_c.C
! b472dba3fdf2a7c27b19a89b32625c82  gcc/testsuite/g++.dg/modules/contracts-3_a.C
! 022a467cbf4db8e57f28e8d77795ece8  gcc/testsuite/g++.dg/modules/contracts-3_b.C
! de63e89e94e5fff1212510906c8fadba  gcc/testsuite/g++.dg/modules/contracts-4_a.C
  ce1ebf06dbe7cdae676970830da2a4e7  gcc/testsuite/g++.dg/modules/contracts-4_b.C
  f536f28baebb566f8e0524872a79e757  gcc/testsuite/g++.dg/modules/contracts-4_c.C
! 628e576ce9c14f472e2d338d1fab5bd5  gcc/testsuite/g++.dg/modules/contracts-4_d.C
! fae22c7cff0bae185284077ff2e72523  gcc/testsuite/g++.dg/modules/contracts-5_a.C
! 50b224246269cbd9bd90fb85b667536a  gcc/testsuite/g++.dg/modules/contracts-5_b.C
  8924e09c1bf99205db3bf2a95baa7701  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_a.C
  0a66e0a40527f0507cceaeb322c91a15  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_b.C
  097ffafa56bf8b6bcbb8f85c58b0e187  gcc/testsuite/g++.dg/modules/convop-1_a.C
  02940f3eec05ab2c1e44ea29d72255b6  gcc/testsuite/g++.dg/modules/convop-1_b.C
  ac21ba6dd7a4b896ded96e6d9d998074  gcc/testsuite/g++.dg/modules/cpp-1.C
+ 3bb7a96e17349f006fdc91b7d33ece61  gcc/testsuite/g++.dg/modules/cpp-10.C
+ 2d36bf18c705bff96fbeefdaf66de03e  gcc/testsuite/g++.dg/modules/cpp-11.C
+ 1c1ccb7e3d0b88bc9ac80c8c8ade95b4  gcc/testsuite/g++.dg/modules/cpp-12.C
+ 528f7791be37df2239586166d8afa1ae  gcc/testsuite/g++.dg/modules/cpp-13.C
+ 08a6c9f034722e0be0a00e9a5cdc02a9  gcc/testsuite/g++.dg/modules/cpp-14.C
+ d35c4ba42a40c90525ba6fdc0e2639be  gcc/testsuite/g++.dg/modules/cpp-15.C
+ 24a9c87d4284e96f209ba3a8916298a5  gcc/testsuite/g++.dg/modules/cpp-16.C
+ 3fab91d2cd73dae4fd63995add4a91a5  gcc/testsuite/g++.dg/modules/cpp-17.C
+ 4eba97bb9fb87086def101e7b749a77b  gcc/testsuite/g++.dg/modules/cpp-18.C
+ c0ef2b8d52cd62eb091cd6a8355a3f55  gcc/testsuite/g++.dg/modules/cpp-19.C
+ d3b0a55e79b15e865f383cb22a8e75f3  gcc/testsuite/g++.dg/modules/cpp-20.C
  7df70a1a3701f4e80b19b9464ac25c08  gcc/testsuite/g++.dg/modules/cpp-2_a.H
  783ab638033bc17058b529268c3f6d93  gcc/testsuite/g++.dg/modules/cpp-2_b.H
! e1048ef57be07983f84fafa8dc76318c  gcc/testsuite/g++.dg/modules/cpp-2_c.C
  c2a9522111346f993bfbf518c09ba47e  gcc/testsuite/g++.dg/modules/cpp-3.C
  ce30e0cf66d2582f7002c6e0c0db5c23  gcc/testsuite/g++.dg/modules/cpp-4.C
  06dff50a736dc7a8b9894fc499b7e4e4  gcc/testsuite/g++.dg/modules/cpp-4.h
  b1f03c901247645230e4966afda6e912  gcc/testsuite/g++.dg/modules/cpp-5_a.H
  fbe86dd2a8732d33bad7bda15fc0e2db  gcc/testsuite/g++.dg/modules/cpp-5_b.C
! 15b0ffabb0eb55dbe4a0aff4a199fe58  gcc/testsuite/g++.dg/modules/cpp-5_c.C
  dc18c9abbb7b929baad44d4d17cf481c  gcc/testsuite/g++.dg/modules/cpp-6_a.H
  a74bddfbe727d105bb545eedc62f745d  gcc/testsuite/g++.dg/modules/cpp-6_b.H
  b7c85df7a8c7f3b394c7bbf4ed268587  gcc/testsuite/g++.dg/modules/cpp-6_c.C
+ 278bed42459a0d06f4c269d86d93b9ef  gcc/testsuite/g++.dg/modules/cpp-7.C
+ 0942c4f0ede2714c1fa46d5db7910a51  gcc/testsuite/g++.dg/modules/cpp-8.C
+ 68ff3729b41f1e83d94568eaba1bcc20  gcc/testsuite/g++.dg/modules/cpp-9.C
+ 72b2661518bd8a74a3442f4d192571cf  gcc/testsuite/g++.dg/modules/dashinclude-1_a.H
+ 2a047f1c294e3a1792166e0949fa6f96  gcc/testsuite/g++.dg/modules/dashinclude-1_b.C
  3f48d0308ff4b07b3b669154768b92a9  gcc/testsuite/g++.dg/modules/debug-1_a.C
  cc14e75db917eabf9a773192831be701  gcc/testsuite/g++.dg/modules/debug-1_b.C
  f6a9b0b6b1254dcce4baeb1bb3164800  gcc/testsuite/g++.dg/modules/debug-2_a.C
*************** f4c3800d8807defb0ce3ca9404918405  gcc/te
*** 24495,24507 ****
  f7f95fed5d0d33909268846fb74099c4  gcc/testsuite/g++.dg/modules/decltype-1_b.C
  b1f1d5b00d4a65d0a4d2f96f3fe4003f  gcc/testsuite/g++.dg/modules/decomp-1_a.C
  92f4e44ce0c072d5153a2b467bb8dad0  gcc/testsuite/g++.dg/modules/decomp-1_b.C
  ea68e74f44f4c82e8ae6f2c690b55c60  gcc/testsuite/g++.dg/modules/deferred-1.h
  57e2a4b0e73953c7ade22c1689af65d7  gcc/testsuite/g++.dg/modules/deferred-1_a.H
  3eb6987f167a4bbf09756b47c0721723  gcc/testsuite/g++.dg/modules/deferred-1_b.C
! d5627ec2e4dc9b1ef99e54bdc03e1c7a  gcc/testsuite/g++.dg/modules/dep-1_a.C
! 63bbbccfef2a3fd41022bb0a4b4f8eb5  gcc/testsuite/g++.dg/modules/dep-1_b.C
! 128e76c43221794f4f3e993541e871cc  gcc/testsuite/g++.dg/modules/dep-2.C
  cb642b297719a8133fff6a8330998c3d  gcc/testsuite/g++.dg/modules/dep-3.C
  a523b04ab1811e6a7b5c26428897e155  gcc/testsuite/g++.dg/modules/depflags-f-MD.C
  c8a1eb4ced10a42d80ad249e890f366e  gcc/testsuite/g++.dg/modules/depflags-f.C
  80d9bef84b86ef3877494d9ab5a6045f  gcc/testsuite/g++.dg/modules/depflags-fi.C
--- 26141,26165 ----
  f7f95fed5d0d33909268846fb74099c4  gcc/testsuite/g++.dg/modules/decltype-1_b.C
  b1f1d5b00d4a65d0a4d2f96f3fe4003f  gcc/testsuite/g++.dg/modules/decomp-1_a.C
  92f4e44ce0c072d5153a2b467bb8dad0  gcc/testsuite/g++.dg/modules/decomp-1_b.C
+ 5426078ff3b9d3e23b55af0747c5e212  gcc/testsuite/g++.dg/modules/decomp-2_a.H
+ 14b0e4bcf5f2f112ef246f62b7c8edea  gcc/testsuite/g++.dg/modules/decomp-2_b.C
+ 92c843167f2cdfb5ebc2b3a4104ad75a  gcc/testsuite/g++.dg/modules/decomp-3_a.H
+ 42bb8942729f8f688f4b72f8c010eed2  gcc/testsuite/g++.dg/modules/decomp-3_b.C
+ 8635139731e5fd7887584788e9b2d532  gcc/testsuite/g++.dg/modules/default-arg-1_a.H
+ a016afd83ff8628a76ca1feb679ba84c  gcc/testsuite/g++.dg/modules/default-arg-1_b.C
+ 6ba96f214838bfcd3179c07617e3f3d1  gcc/testsuite/g++.dg/modules/default-arg-2_a.H
+ 99910b89b1b9de94240c0242f3809a0f  gcc/testsuite/g++.dg/modules/default-arg-2_b.C
+ 6f4e4852d988f4a84a288c2583c6c9ae  gcc/testsuite/g++.dg/modules/default-arg-3.h
+ 88324748ff967fdba289a780d7a504a6  gcc/testsuite/g++.dg/modules/default-arg-3_a.H
+ c33aa5d0342c08adc3d6989bf1a5008d  gcc/testsuite/g++.dg/modules/default-arg-3_b.C
  ea68e74f44f4c82e8ae6f2c690b55c60  gcc/testsuite/g++.dg/modules/deferred-1.h
  57e2a4b0e73953c7ade22c1689af65d7  gcc/testsuite/g++.dg/modules/deferred-1_a.H
  3eb6987f167a4bbf09756b47c0721723  gcc/testsuite/g++.dg/modules/deferred-1_b.C
! c00c06950f2ab5091059c09b8c43e900  gcc/testsuite/g++.dg/modules/dep-1_a.C
! 61a154d55a7bc7c9fa2be0492b2eecb1  gcc/testsuite/g++.dg/modules/dep-1_b.C
! 14781acb506b320e2bc37afd020463b6  gcc/testsuite/g++.dg/modules/dep-2.C
  cb642b297719a8133fff6a8330998c3d  gcc/testsuite/g++.dg/modules/dep-3.C
+ 687e578a797b430dd89299946b47eb21  gcc/testsuite/g++.dg/modules/dep-4.H
  a523b04ab1811e6a7b5c26428897e155  gcc/testsuite/g++.dg/modules/depflags-f-MD.C
  c8a1eb4ced10a42d80ad249e890f366e  gcc/testsuite/g++.dg/modules/depflags-f.C
  80d9bef84b86ef3877494d9ab5a6045f  gcc/testsuite/g++.dg/modules/depflags-fi.C
*************** c404dc519fbe79b908ef867c4b738599  gcc/te
*** 24523,24541 ****
  cf93795f387694eb17d06e889faa1ea9  gcc/testsuite/g++.dg/modules/depreport-2.modmap
  24a96c7b463ab4c895201843554d8cc0  gcc/testsuite/g++.dg/modules/depreport-2_a.C
  76c057e80975e170bb82aa1f5a4f86ae  gcc/testsuite/g++.dg/modules/depreport-2_b.C
  27fe0d89834d0c4dccb54eb85dcb2b1e  gcc/testsuite/g++.dg/modules/dir-only-1.C
  3b6b2231ee799128ed7e8abf8e4bd8ca  gcc/testsuite/g++.dg/modules/dir-only-2_a.H
! ad46cfa347da4b007f1c2c702b1424e5  gcc/testsuite/g++.dg/modules/dir-only-2_b.C
! 98e286748a71de409ea8ea91c61bff89  gcc/testsuite/g++.dg/modules/dir-only-3.C
! 751bc164d219ba7ac2c0a5df96b7e328  gcc/testsuite/g++.dg/modules/dir-only-4.C
  7e9a537d2bfa5adb9b6da64d83a6f631  gcc/testsuite/g++.dg/modules/dir-recovery.C
  a76835e47b764922b013544f6f8353a4  gcc/testsuite/g++.dg/modules/enum-10_a.H
  44320dac8e952abf4ec85406d1ed45ac  gcc/testsuite/g++.dg/modules/enum-10_b.C
  98303daeb2784eff9b49fb8941d26be4  gcc/testsuite/g++.dg/modules/enum-11_a.H
  7844e14a6778ebcc4e48b8a1fc722798  gcc/testsuite/g++.dg/modules/enum-11_b.C
! 2ba851970d9c0c5ba6fab5ce79330e40  gcc/testsuite/g++.dg/modules/enum-12.C
  24b8ba2a7538d07a4fc4f431958768d0  gcc/testsuite/g++.dg/modules/enum-13_a.C
  fad9da7f923843ef1e884b9b71612f1b  gcc/testsuite/g++.dg/modules/enum-13_b.C
  02bf8548b63223a7f975e8051966d186  gcc/testsuite/g++.dg/modules/enum-1_a.C
  07cd39c397707ffd7ecad5f19200c483  gcc/testsuite/g++.dg/modules/enum-1_b.C
  930da5cebd5959d9a725229b25f0d412  gcc/testsuite/g++.dg/modules/enum-2_a.C
--- 26181,26227 ----
  cf93795f387694eb17d06e889faa1ea9  gcc/testsuite/g++.dg/modules/depreport-2.modmap
  24a96c7b463ab4c895201843554d8cc0  gcc/testsuite/g++.dg/modules/depreport-2_a.C
  76c057e80975e170bb82aa1f5a4f86ae  gcc/testsuite/g++.dg/modules/depreport-2_b.C
+ 3a11bb3566cac49dfe7af85d62522017  gcc/testsuite/g++.dg/modules/dguide-1_a.C
+ 6e91986259d6dfab551452209559d5f5  gcc/testsuite/g++.dg/modules/dguide-1_b.C
+ 330ff6aab84a6ebf242d63dc414e13ae  gcc/testsuite/g++.dg/modules/dguide-2_a.C
+ 28c05a6a87ee6e34cddebe0cc70b5e75  gcc/testsuite/g++.dg/modules/dguide-2_b.C
+ c4258bf05900da6cc704eb4bb4f5842a  gcc/testsuite/g++.dg/modules/dguide-3_a.C
+ d970b00c4f93cdcf62b381e7b3a6273c  gcc/testsuite/g++.dg/modules/dguide-3_b.C
+ 5d8b2e34b3a51f7ae437fb4081ac9181  gcc/testsuite/g++.dg/modules/dguide-3_c.C
+ 58c1c933a2bbdf2877d78f34c9f4e688  gcc/testsuite/g++.dg/modules/dguide-3_d.C
+ b20b5dbdb886a0f7a80d9887e84f48af  gcc/testsuite/g++.dg/modules/dguide-4_a.C
+ f0bd234a5d772c0cef57a199c6a3dd9b  gcc/testsuite/g++.dg/modules/dguide-4_b.C
+ 54125ad61e53476f0171c2f2fd11c72c  gcc/testsuite/g++.dg/modules/dguide-4_c.C
+ fab8398543af4d95e84b07cabe843896  gcc/testsuite/g++.dg/modules/dguide-5_a.H
+ d780fc0d1b5ed6395c3319ad06485a0f  gcc/testsuite/g++.dg/modules/dguide-5_b.H
+ b96a4367c83474ea2271a1e3ab8ab1ba  gcc/testsuite/g++.dg/modules/dguide-5_c.H
+ e56e677533fef08aa8455292d18064a3  gcc/testsuite/g++.dg/modules/dguide-6.h
+ 0a3e26aa2059edaaa444d371bb100889  gcc/testsuite/g++.dg/modules/dguide-6_a.C
+ d9f23acc45dc0a9a68c468b5db018fcd  gcc/testsuite/g++.dg/modules/dguide-6_b.C
+ ae13b5b93603eb09fd86166e308eb0a9  gcc/testsuite/g++.dg/modules/dguide-6_c.C
  27fe0d89834d0c4dccb54eb85dcb2b1e  gcc/testsuite/g++.dg/modules/dir-only-1.C
  3b6b2231ee799128ed7e8abf8e4bd8ca  gcc/testsuite/g++.dg/modules/dir-only-2_a.H
! 83c55ee8acd437a102714f704d72d0fc  gcc/testsuite/g++.dg/modules/dir-only-2_b.C
! 2d0cffcd57e65a07d8e37e5b9620ae89  gcc/testsuite/g++.dg/modules/dir-only-3.C
! 8b6bbf558c6a9a246787a3b66da0ff04  gcc/testsuite/g++.dg/modules/dir-only-4.C
! e5585889c4ecf6fc10788c0d96cad14d  gcc/testsuite/g++.dg/modules/dir-only-5.C
  7e9a537d2bfa5adb9b6da64d83a6f631  gcc/testsuite/g++.dg/modules/dir-recovery.C
+ 6f8cad925364e5c3bad67d25e22a7e05  gcc/testsuite/g++.dg/modules/dr2867-1_a.H
+ aeb6f9ef409061328fac3e77ae247d1e  gcc/testsuite/g++.dg/modules/dr2867-1_b.C
+ 38f56a5190f43046d84d3843e54f1246  gcc/testsuite/g++.dg/modules/dr2867-2_a.H
+ 58c586384f716df71a1f460e54c835e1  gcc/testsuite/g++.dg/modules/dr2867-2_b.C
+ 1e2d3d255bbea86e4693a17c0f9cd554  gcc/testsuite/g++.dg/modules/dr2867-3_a.H
+ c99a1cc60984b0d9d0d1d7c81e3be597  gcc/testsuite/g++.dg/modules/dr2867-3_b.C
+ ef0b129d070046b63671544a4a42147c  gcc/testsuite/g++.dg/modules/dr2867-4_a.H
+ 99624ea36a26c688af3e15036d3c2cc0  gcc/testsuite/g++.dg/modules/dr2867-4_b.C
  a76835e47b764922b013544f6f8353a4  gcc/testsuite/g++.dg/modules/enum-10_a.H
  44320dac8e952abf4ec85406d1ed45ac  gcc/testsuite/g++.dg/modules/enum-10_b.C
  98303daeb2784eff9b49fb8941d26be4  gcc/testsuite/g++.dg/modules/enum-11_a.H
  7844e14a6778ebcc4e48b8a1fc722798  gcc/testsuite/g++.dg/modules/enum-11_b.C
! 134d473f5e12ece99553cc5b7eecd215  gcc/testsuite/g++.dg/modules/enum-12.C
  24b8ba2a7538d07a4fc4f431958768d0  gcc/testsuite/g++.dg/modules/enum-13_a.C
  fad9da7f923843ef1e884b9b71612f1b  gcc/testsuite/g++.dg/modules/enum-13_b.C
+ a9c7b176dfd42f0506b014195d1f1d07  gcc/testsuite/g++.dg/modules/enum-14.C
  02bf8548b63223a7f975e8051966d186  gcc/testsuite/g++.dg/modules/enum-1_a.C
  07cd39c397707ffd7ecad5f19200c483  gcc/testsuite/g++.dg/modules/enum-1_b.C
  930da5cebd5959d9a725229b25f0d412  gcc/testsuite/g++.dg/modules/enum-2_a.C
*************** f2791267d753e8cd1679a1f96c9cc5da  gcc/te
*** 24556,24566 ****
  85cc3a9695cb145885ebe00ddf36c43c  gcc/testsuite/g++.dg/modules/enum-9_a.H
  79dafa8e89f57987a0cffa7ce6435a3e  gcc/testsuite/g++.dg/modules/enum-9_b.C
  3d6c6246260d49fb3e01cfbc543f50c3  gcc/testsuite/g++.dg/modules/enum-bad-1_a.H
! fe3b83716afeebfb21410e24299a7c65  gcc/testsuite/g++.dg/modules/enum-bad-1_b.C
  4d9c4e0b2fc2a89e93b40dfbcd287523  gcc/testsuite/g++.dg/modules/err-1_a.C
  472f7f080b5984583da1c960bfd14348  gcc/testsuite/g++.dg/modules/err-1_b.C
! 56a139aeedfaff3f9087f35d8d3c7921  gcc/testsuite/g++.dg/modules/err-1_c.C
! 276b778c799ba4a791a9558677c94b74  gcc/testsuite/g++.dg/modules/err-1_d.C
  c311149a0a6563fecde09d7efca30c49  gcc/testsuite/g++.dg/modules/except-1.C
  58ba527eabeb40387b7a87e17acde97e  gcc/testsuite/g++.dg/modules/except-2.h
  42fe73c6e9bb38516c0e64b82241e406  gcc/testsuite/g++.dg/modules/except-2_a.H
--- 26242,26252 ----
  85cc3a9695cb145885ebe00ddf36c43c  gcc/testsuite/g++.dg/modules/enum-9_a.H
  79dafa8e89f57987a0cffa7ce6435a3e  gcc/testsuite/g++.dg/modules/enum-9_b.C
  3d6c6246260d49fb3e01cfbc543f50c3  gcc/testsuite/g++.dg/modules/enum-bad-1_a.H
! 0582338907c88aa42f20d0d0d8adb7b3  gcc/testsuite/g++.dg/modules/enum-bad-1_b.C
  4d9c4e0b2fc2a89e93b40dfbcd287523  gcc/testsuite/g++.dg/modules/err-1_a.C
  472f7f080b5984583da1c960bfd14348  gcc/testsuite/g++.dg/modules/err-1_b.C
! 7007d4812373b5182bb154c7cd91fb37  gcc/testsuite/g++.dg/modules/err-1_c.C
! 207f81163f8c6e4bc1fc855d84a8fadb  gcc/testsuite/g++.dg/modules/err-1_d.C
  c311149a0a6563fecde09d7efca30c49  gcc/testsuite/g++.dg/modules/except-1.C
  58ba527eabeb40387b7a87e17acde97e  gcc/testsuite/g++.dg/modules/except-2.h
  42fe73c6e9bb38516c0e64b82241e406  gcc/testsuite/g++.dg/modules/except-2_a.H
*************** c311149a0a6563fecde09d7efca30c49  gcc/te
*** 24569,24580 ****
  9b91cb67ef3997e6e6510055696fea36  gcc/testsuite/g++.dg/modules/except-3_a.H
  3bad6e7573d6b5409a829e01d0ffe5b0  gcc/testsuite/g++.dg/modules/except-3_b.C
  cb17af4e1eb66bb3cb7788a721007fca  gcc/testsuite/g++.dg/modules/exp-xlate-1_a.H
! 0dbb925b1876b5a9913a4082238721d7  gcc/testsuite/g++.dg/modules/exp-xlate-1_b.C
  0b4b4c74e5b9f066dfdcb2869b1d2d2d  gcc/testsuite/g++.dg/modules/explicit-bool-1_a.H
  2ea5f84f7b8269aa96541a6b022b47ac  gcc/testsuite/g++.dg/modules/explicit-bool-1_b.C
! c437720340fe1e93a6f982bca007d82c  gcc/testsuite/g++.dg/modules/export-1.C
  3b2093f208a74196b1c3df74b350fc7a  gcc/testsuite/g++.dg/modules/export-2_a.C
  d2954530a1b1620eafdf1930e958ce30  gcc/testsuite/g++.dg/modules/export-2_b.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
--- 26255,26272 ----
  9b91cb67ef3997e6e6510055696fea36  gcc/testsuite/g++.dg/modules/except-3_a.H
  3bad6e7573d6b5409a829e01d0ffe5b0  gcc/testsuite/g++.dg/modules/except-3_b.C
  cb17af4e1eb66bb3cb7788a721007fca  gcc/testsuite/g++.dg/modules/exp-xlate-1_a.H
! 0e00742a0ceb0cbe8e12a741416004b9  gcc/testsuite/g++.dg/modules/exp-xlate-1_b.C
  0b4b4c74e5b9f066dfdcb2869b1d2d2d  gcc/testsuite/g++.dg/modules/explicit-bool-1_a.H
  2ea5f84f7b8269aa96541a6b022b47ac  gcc/testsuite/g++.dg/modules/explicit-bool-1_b.C
! 9858491ee89c02ce46be236674043d0d  gcc/testsuite/g++.dg/modules/export-1.C
  3b2093f208a74196b1c3df74b350fc7a  gcc/testsuite/g++.dg/modules/export-2_a.C
  d2954530a1b1620eafdf1930e958ce30  gcc/testsuite/g++.dg/modules/export-2_b.C
+ c46255bb51de7ad96b62c94e9c472cb4  gcc/testsuite/g++.dg/modules/export-3.C
+ 5aac460f4d0fed5d16c06954a4775acb  gcc/testsuite/g++.dg/modules/export-4_a.C
+ 6605e93c514f5b264684d955cfcc96e1  gcc/testsuite/g++.dg/modules/export-4_b.C
+ c60ce9cb77aee4deb3090704e1db970f  gcc/testsuite/g++.dg/modules/export-5_a.C
+ 475cd1f0fba2791b43a510dd62919021  gcc/testsuite/g++.dg/modules/export-5_b.C
+ 301c08d49a4d86740c0af5dc3a234f66  gcc/testsuite/g++.dg/modules/export-6.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
*************** bf65bbda1f86c67b51592fc4c909ce07  gcc/te
*** 24582,24587 ****
--- 26274,26284 ----
  aeceb1a41cd15ae9c0195c66b2cb26db  gcc/testsuite/g++.dg/modules/extern-tpl-2_b.H
  dcb3e2331eb2684a6500c6dc16130b98  gcc/testsuite/g++.dg/modules/extern-tpl-2_c.C
  aa899969e8b42307961a751a6ebd8f1a  gcc/testsuite/g++.dg/modules/extern-tpl-2_d.C
+ c239060f4b55790f581970ba091f83ec  gcc/testsuite/g++.dg/modules/extern-tpl-3_a.C
+ 505193a3ce88e68b5f834fb9847eb4ed  gcc/testsuite/g++.dg/modules/extern-tpl-3_b.C
+ 2e54f3aeb443efd5720288b7789d788b  gcc/testsuite/g++.dg/modules/extern-tpl-4_a.H
+ 0695e4ba7a748f42991ab2b277ae3e34  gcc/testsuite/g++.dg/modules/extern-tpl-4_b.C
+ 50ad870298b92af46df9a290fea56b02  gcc/testsuite/g++.dg/modules/extern-tpl-4_c.C
  d71dc02e0dccd34f57e09aa796289c04  gcc/testsuite/g++.dg/modules/flag-1_a.C
  c24d799e9fbfec25ec3006fa0b94eb6e  gcc/testsuite/g++.dg/modules/flag-1_b.C
  d0e66028f7bb2b6764d1f42f5dd90fb0  gcc/testsuite/g++.dg/modules/fn-inline-1_a.C
*************** b1593a47c024d179302751243a0ddf7e  gcc/te
*** 24596,24623 ****
  7cf2445dd7db33a1920c890fa101e827  gcc/testsuite/g++.dg/modules/friend-1_c.C
  1de0e6bd5a1abd176a55c2c53039e473  gcc/testsuite/g++.dg/modules/friend-2_a.C
  66ca5339eb38056f3413040ff9a486a9  gcc/testsuite/g++.dg/modules/friend-2_b.C
! dcfbb296e393fdde1324f08c7b97a38a  gcc/testsuite/g++.dg/modules/friend-3.C
  fe8d8abf0fe0d8513419931c2b196435  gcc/testsuite/g++.dg/modules/friend-4_a.C
  bea28bf2d0c8e81e2aa1b15bb16a1ff4  gcc/testsuite/g++.dg/modules/friend-4_b.C
  40fe25738c2ab0fc4119c06009d85558  gcc/testsuite/g++.dg/modules/friend-5_a.C
! 19c6d4d329b8f09ba2d37aec5d51539f  gcc/testsuite/g++.dg/modules/friend-5_b.C
  e1703b7e06347c11dbbc67583900d2f6  gcc/testsuite/g++.dg/modules/friend-6_a.C
  8c5d759d60ab186fd6caf45e143b5593  gcc/testsuite/g++.dg/modules/friend-7.h
  142c45e9bfe86b221cc4af8f3ac96962  gcc/testsuite/g++.dg/modules/friend-7_a.H
  ea3e8125da31265d1aca176f5e1d6f8c  gcc/testsuite/g++.dg/modules/friend-7_b.C
  298e147794388c005416e40afb1e8f11  gcc/testsuite/g++.dg/modules/friend-8_a.H
  d6122241f7fbe7b4597637333cf37915  gcc/testsuite/g++.dg/modules/friend-8_b.C
  b09c70e919f5f68af6dd16c29a5ce19d  gcc/testsuite/g++.dg/modules/gc-1_a.C
  c540f5ea9f060fd57192bf19deceb485  gcc/testsuite/g++.dg/modules/gc-1_b.C
  55edcdc178b3faf5ab15daa299ad7892  gcc/testsuite/g++.dg/modules/gc-1_c.C
  66209067910bf13a3f4f69f6cb86d362  gcc/testsuite/g++.dg/modules/gc-1_d.C
  7e55fb2b58ae21062a1aae92abeddaee  gcc/testsuite/g++.dg/modules/gc-2.map
  cef172cd93d1a6e052c327bd27330206  gcc/testsuite/g++.dg/modules/gc-2_a.C
  1b9f3db57d9d19197198678b0148167e  gcc/testsuite/g++.dg/modules/global-1_a.C
  74c104e0382f51c3e4731f87bfb1d6ff  gcc/testsuite/g++.dg/modules/global-1_b.C
  2d5deee114e6afcfeb0a9e6710b404c3  gcc/testsuite/g++.dg/modules/global-2_a.C
  8b05414fb29bffae2691f34c67b57ffa  gcc/testsuite/g++.dg/modules/global-2_b.C
! 225b520af368cd219a447b9f12978218  gcc/testsuite/g++.dg/modules/global-3_a.C
  cacc2b46a47db294c8b68d4d9a2920ea  gcc/testsuite/g++.dg/modules/global-3_b.C
  6f3ceb7882156071a42db084f3053be2  gcc/testsuite/g++.dg/modules/gmf-1_a.C
  7852b7d8e4cb76520db9b88648925e58  gcc/testsuite/g++.dg/modules/gmf-1_b.C
--- 26293,26324 ----
  7cf2445dd7db33a1920c890fa101e827  gcc/testsuite/g++.dg/modules/friend-1_c.C
  1de0e6bd5a1abd176a55c2c53039e473  gcc/testsuite/g++.dg/modules/friend-2_a.C
  66ca5339eb38056f3413040ff9a486a9  gcc/testsuite/g++.dg/modules/friend-2_b.C
! e943bfb188bc59d2996fb9ae2e762db8  gcc/testsuite/g++.dg/modules/friend-3.C
  fe8d8abf0fe0d8513419931c2b196435  gcc/testsuite/g++.dg/modules/friend-4_a.C
  bea28bf2d0c8e81e2aa1b15bb16a1ff4  gcc/testsuite/g++.dg/modules/friend-4_b.C
  40fe25738c2ab0fc4119c06009d85558  gcc/testsuite/g++.dg/modules/friend-5_a.C
! 8115db3f9777ddda3c9570a79d6b10ee  gcc/testsuite/g++.dg/modules/friend-5_b.C
  e1703b7e06347c11dbbc67583900d2f6  gcc/testsuite/g++.dg/modules/friend-6_a.C
  8c5d759d60ab186fd6caf45e143b5593  gcc/testsuite/g++.dg/modules/friend-7.h
  142c45e9bfe86b221cc4af8f3ac96962  gcc/testsuite/g++.dg/modules/friend-7_a.H
  ea3e8125da31265d1aca176f5e1d6f8c  gcc/testsuite/g++.dg/modules/friend-7_b.C
  298e147794388c005416e40afb1e8f11  gcc/testsuite/g++.dg/modules/friend-8_a.H
  d6122241f7fbe7b4597637333cf37915  gcc/testsuite/g++.dg/modules/friend-8_b.C
+ 63d45677a075161b4439258911b73798  gcc/testsuite/g++.dg/modules/friend-9_a.C
+ 01bd27fc21cd469bed6b3d025420deeb  gcc/testsuite/g++.dg/modules/friend-9_b.C
  b09c70e919f5f68af6dd16c29a5ce19d  gcc/testsuite/g++.dg/modules/gc-1_a.C
  c540f5ea9f060fd57192bf19deceb485  gcc/testsuite/g++.dg/modules/gc-1_b.C
  55edcdc178b3faf5ab15daa299ad7892  gcc/testsuite/g++.dg/modules/gc-1_c.C
  66209067910bf13a3f4f69f6cb86d362  gcc/testsuite/g++.dg/modules/gc-1_d.C
  7e55fb2b58ae21062a1aae92abeddaee  gcc/testsuite/g++.dg/modules/gc-2.map
  cef172cd93d1a6e052c327bd27330206  gcc/testsuite/g++.dg/modules/gc-2_a.C
+ d1e054b8de608f66182bb45bf5c42334  gcc/testsuite/g++.dg/modules/gc-3_a.C
+ a7f1e74c9d05b1d618f1ed4bec72026d  gcc/testsuite/g++.dg/modules/gc-3_b.C
  1b9f3db57d9d19197198678b0148167e  gcc/testsuite/g++.dg/modules/global-1_a.C
  74c104e0382f51c3e4731f87bfb1d6ff  gcc/testsuite/g++.dg/modules/global-1_b.C
  2d5deee114e6afcfeb0a9e6710b404c3  gcc/testsuite/g++.dg/modules/global-2_a.C
  8b05414fb29bffae2691f34c67b57ffa  gcc/testsuite/g++.dg/modules/global-2_b.C
! e1ab390c1861e1ba7b48db49a5da0cc1  gcc/testsuite/g++.dg/modules/global-3_a.C
  cacc2b46a47db294c8b68d4d9a2920ea  gcc/testsuite/g++.dg/modules/global-3_b.C
  6f3ceb7882156071a42db084f3053be2  gcc/testsuite/g++.dg/modules/gmf-1_a.C
  7852b7d8e4cb76520db9b88648925e58  gcc/testsuite/g++.dg/modules/gmf-1_b.C
*************** cacc2b46a47db294c8b68d4d9a2920ea  gcc/te
*** 24625,24644 ****
  31c5551d44ce3f70f0f22d8d576e2b75  gcc/testsuite/g++.dg/modules/gmf-2_b.C
  1ca2ba5ea79ef736f484295d9da304f2  gcc/testsuite/g++.dg/modules/gmf-2_c.C
  4dc3b222271da4959eeb5cfa26310bee  gcc/testsuite/g++.dg/modules/gmf-2_d.C
  1cf97d32b82f47a801cd23d81c8f0f95  gcc/testsuite/g++.dg/modules/gvar_a.C
  afaed3ac146cb32fc66a243b79a7697e  gcc/testsuite/g++.dg/modules/gvar_b.C
  980aa97f168b883404fa30d8d0df5514  gcc/testsuite/g++.dg/modules/hdr-1_a.H
  4d9686b932f0f4de142816c77188a269  gcc/testsuite/g++.dg/modules/hdr-1_b.H
  a019a46920ed46fd8bfa291454b001fd  gcc/testsuite/g++.dg/modules/hdr-1_c.C
  07b2bcafac3586c586137ef7eea059a8  gcc/testsuite/g++.dg/modules/hdr-init-1_a.H
  07b2bcafac3586c586137ef7eea059a8  gcc/testsuite/g++.dg/modules/hdr-init-1_b.H
  411e1bc5a4b64167fd35549890849c60  gcc/testsuite/g++.dg/modules/hdr-init-1_c.C
! 179a1e853888e51aa1eb1b83369b18ab  gcc/testsuite/g++.dg/modules/hello-1_a.C
  0d1f1f8b1a13cb592cc7a12aeddcdd2a  gcc/testsuite/g++.dg/modules/hello-1_b.C
! d4e8b13ce29feda8c335dd85e6c5959d  gcc/testsuite/g++.dg/modules/hello-2_a.C
! ca4d73bb3bf6e0a633d22dd3434ddacb  gcc/testsuite/g++.dg/modules/hello-2_b.C
! 5b2fd64582759540fd82f5d665aa8e8b  gcc/testsuite/g++.dg/modules/horcrux-1_a.C
! 788de7c389f8b3a13de07086529b3b5e  gcc/testsuite/g++.dg/modules/horcrux-1_b.C
  ea76c720a8e24b78691dffa2eef6d22d  gcc/testsuite/g++.dg/modules/ice-1.C
  69549d9d0cd6cda0e027ab2de29bb818  gcc/testsuite/g++.dg/modules/imp-inline-1_a.C
  9f2f3c61195a26f3fa5aaccee82d8a0b  gcc/testsuite/g++.dg/modules/imp-inline-1_b.C
--- 26326,26355 ----
  31c5551d44ce3f70f0f22d8d576e2b75  gcc/testsuite/g++.dg/modules/gmf-2_b.C
  1ca2ba5ea79ef736f484295d9da304f2  gcc/testsuite/g++.dg/modules/gmf-2_c.C
  4dc3b222271da4959eeb5cfa26310bee  gcc/testsuite/g++.dg/modules/gmf-2_d.C
+ 1bd7a655531ac448585db06200fbbb28  gcc/testsuite/g++.dg/modules/gmf-3.C
+ 5acba4ad7210cf8ea467e74a6aac477c  gcc/testsuite/g++.dg/modules/gmf-4.C
+ 85e7697f00731f1c965a4728832ffc16  gcc/testsuite/g++.dg/modules/gmf-xtreme.C
+ 9cc5403f7ab7363b8ad062d46c71d88c  gcc/testsuite/g++.dg/modules/gnu-inline-1_a.C
+ 406a898983a86aba6f1a446a6930c7d2  gcc/testsuite/g++.dg/modules/gnu-inline-1_b.C
+ d3c95c56a79cc6f5aa1d67c8a8ecffbe  gcc/testsuite/g++.dg/modules/gnu-inline-1_c.C
+ 6ef372409a478b3ac5a4cf68d6539079  gcc/testsuite/g++.dg/modules/gnu-inline-1_d.C
+ 426341d38a5eca25cdd5ca7e37ee1bef  gcc/testsuite/g++.dg/modules/gnu-inline-2_a.C
+ 810eaecb7110a4d6e82bdf773387c4a6  gcc/testsuite/g++.dg/modules/gnu-inline-2_b.C
  1cf97d32b82f47a801cd23d81c8f0f95  gcc/testsuite/g++.dg/modules/gvar_a.C
  afaed3ac146cb32fc66a243b79a7697e  gcc/testsuite/g++.dg/modules/gvar_b.C
  980aa97f168b883404fa30d8d0df5514  gcc/testsuite/g++.dg/modules/hdr-1_a.H
  4d9686b932f0f4de142816c77188a269  gcc/testsuite/g++.dg/modules/hdr-1_b.H
  a019a46920ed46fd8bfa291454b001fd  gcc/testsuite/g++.dg/modules/hdr-1_c.C
+ ee475265f6f523e3d2430299a04c50e4  gcc/testsuite/g++.dg/modules/hdr-2.H
  07b2bcafac3586c586137ef7eea059a8  gcc/testsuite/g++.dg/modules/hdr-init-1_a.H
  07b2bcafac3586c586137ef7eea059a8  gcc/testsuite/g++.dg/modules/hdr-init-1_b.H
  411e1bc5a4b64167fd35549890849c60  gcc/testsuite/g++.dg/modules/hdr-init-1_c.C
! 240792ae8e1d3f49eb08be6f25b9209a  gcc/testsuite/g++.dg/modules/hello-1_a.C
  0d1f1f8b1a13cb592cc7a12aeddcdd2a  gcc/testsuite/g++.dg/modules/hello-1_b.C
! 0238720edc22178744652927dcd6c770  gcc/testsuite/g++.dg/modules/hello-2_a.C
! 7a78176977e51df7ceef533d628f4934  gcc/testsuite/g++.dg/modules/hello-2_b.C
! 168f133631c32ddc77179ba24c0e60c8  gcc/testsuite/g++.dg/modules/horcrux-1_a.C
! 2ab1576d93c99154f433c081caaeb53b  gcc/testsuite/g++.dg/modules/horcrux-1_b.C
  ea76c720a8e24b78691dffa2eef6d22d  gcc/testsuite/g++.dg/modules/ice-1.C
  69549d9d0cd6cda0e027ab2de29bb818  gcc/testsuite/g++.dg/modules/imp-inline-1_a.C
  9f2f3c61195a26f3fa5aaccee82d8a0b  gcc/testsuite/g++.dg/modules/imp-inline-1_b.C
*************** b4d53c10532737d55c31b6daeea36cb7  gcc/te
*** 24661,24671 ****
  750579c756e3c94a08cc23dcfda0b714  gcc/testsuite/g++.dg/modules/import-2.C
  ff98048b9b36b54c9905a7a1eb0d5f49  gcc/testsuite/g++.dg/modules/inc-xlate-1.map
  b7927bd395b5232680f2db58be05462a  gcc/testsuite/g++.dg/modules/inc-xlate-1_a.H
! 3b005c8cf012fd1acb3ecdbc8aadc695  gcc/testsuite/g++.dg/modules/inc-xlate-1_b.H
  9a9415510743e8b7e83b4f6ab1babf0e  gcc/testsuite/g++.dg/modules/inc-xlate-1_c.C
! 95b490b14ab67d7ecf7ab92c74cf2316  gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
  f66ca65219477c8d92b6f467b65e6d70  gcc/testsuite/g++.dg/modules/indirect-1_a.C
! 5d95ce4ae95070795dba665c853d9e2b  gcc/testsuite/g++.dg/modules/indirect-1_b.C
  7c36188e4acba1e72c8dddc700665c0a  gcc/testsuite/g++.dg/modules/indirect-1_c.C
  7959f43a638872f72358f6afd3921aeb  gcc/testsuite/g++.dg/modules/indirect-2_a.C
  474b3e754edf7a5118ddc7591eb04416  gcc/testsuite/g++.dg/modules/indirect-2_b.C
--- 26372,26389 ----
  750579c756e3c94a08cc23dcfda0b714  gcc/testsuite/g++.dg/modules/import-2.C
  ff98048b9b36b54c9905a7a1eb0d5f49  gcc/testsuite/g++.dg/modules/inc-xlate-1.map
  b7927bd395b5232680f2db58be05462a  gcc/testsuite/g++.dg/modules/inc-xlate-1_a.H
! 69660b6585b73f0ced702fb903e109c8  gcc/testsuite/g++.dg/modules/inc-xlate-1_b.H
  9a9415510743e8b7e83b4f6ab1babf0e  gcc/testsuite/g++.dg/modules/inc-xlate-1_c.C
! 7f5b41650cf6d46fefe4d7e9838f0f3b  gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
! dad3801c1fe7f20ae27751c66f6d750e  gcc/testsuite/g++.dg/modules/inc-xlate-2_a.H
! d2fb3c536a80f29b4690ddf00d478814  gcc/testsuite/g++.dg/modules/inc-xlate-2_b.H
! 1e701212ffa341894b54ffb3ca9a3467  gcc/testsuite/g++.dg/modules/inc-xlate-3.h
! 25b6192a5875597a8946af2e0cfffe0b  gcc/testsuite/g++.dg/modules/inc-xlate-3_a.H
! 509099ab8890246c0ebbda5c61655c57  gcc/testsuite/g++.dg/modules/inc-xlate-4_a.H
! 52278f75969bb9fb9847e6acb09d156e  gcc/testsuite/g++.dg/modules/inc-xlate-4_b.H
! e5dc285fb213986d29d3c1e188277609  gcc/testsuite/g++.dg/modules/inc-xlate-4_c.H
  f66ca65219477c8d92b6f467b65e6d70  gcc/testsuite/g++.dg/modules/indirect-1_a.C
! bc8dc8965ea50f549d16db1ef5c1297a  gcc/testsuite/g++.dg/modules/indirect-1_b.C
  7c36188e4acba1e72c8dddc700665c0a  gcc/testsuite/g++.dg/modules/indirect-1_c.C
  7959f43a638872f72358f6afd3921aeb  gcc/testsuite/g++.dg/modules/indirect-2_a.C
  474b3e754edf7a5118ddc7591eb04416  gcc/testsuite/g++.dg/modules/indirect-2_b.C
*************** f2271c8b45164814b0166596da0ad6a7  gcc/te
*** 24697,24702 ****
--- 26415,26422 ----
  25b8db60bb7b9d0dbe9e0776a89e513e  gcc/testsuite/g++.dg/modules/init-6_b.C
  cde88381b648ca388094d436f6491fc7  gcc/testsuite/g++.dg/modules/init-7_a.H
  aa9990e199a4ca7bcea61cc9ef2c7056  gcc/testsuite/g++.dg/modules/init-7_b.C
+ e46f6de7f74585cce611bff70b637ed9  gcc/testsuite/g++.dg/modules/inline-1_a.C
+ aee9db0889b7fd5e3f8598900d34fd85  gcc/testsuite/g++.dg/modules/inline-1_b.C
  30908e323612f1e35765a18cc68bc403  gcc/testsuite/g++.dg/modules/inst-1_a.C
  c1563babb7ad3b33d7a48b6846276373  gcc/testsuite/g++.dg/modules/inst-1_b.C
  3a7d1df29e3e9ca965b7f8c21b60b189  gcc/testsuite/g++.dg/modules/inst-2_a.C
*************** b97855be7b5eed58d6034ad47a8bfd75  gcc/te
*** 24704,24721 ****
  3fa2472ee15d859201bd85231c9186e8  gcc/testsuite/g++.dg/modules/inst-3_a.C
  f85ebf4b2077209c911f242b12a9af86  gcc/testsuite/g++.dg/modules/inst-3_b.C
  c8f6159c50d59c6586f5797b42391c86  gcc/testsuite/g++.dg/modules/inst-4_a.C
! 1f7270dae43f8a3ccf80c77bbaa1fa4d  gcc/testsuite/g++.dg/modules/inst-4_b.C
  9c1e5aa4fca91a8158a8ba8a5acab036  gcc/testsuite/g++.dg/modules/inst-5_a.H
  45ff01b5a1d0276885e30fb3445f5ed3  gcc/testsuite/g++.dg/modules/inst-5_b.C
! 74b37c982e91a9398109704457f7d69c  gcc/testsuite/g++.dg/modules/internal-1.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
! 20bf75fd153c12a7ca095561b3087399  gcc/testsuite/g++.dg/modules/iostream-1_a.H
  d78c1de0f7d9cac90e50c0208adc2926  gcc/testsuite/g++.dg/modules/iostream-1_b.C
  1cdaea6816310f2f6af91d7384b2267b  gcc/testsuite/g++.dg/modules/isalnum.H
  51d6cd56760e51f42b0853dc49c9bf77  gcc/testsuite/g++.dg/modules/keyword-1_a.C
  37de4dbdbe8e0e57b0f65d374829f234  gcc/testsuite/g++.dg/modules/keyword-1_b.C
  d40eb3b191ce03c71ec885f4126c9c01  gcc/testsuite/g++.dg/modules/lambda-1_a.C
  0c208993fd82c4dab83fb16f53f43099  gcc/testsuite/g++.dg/modules/lambda-1_b.C
  0b364ead1b387b5505e2f7bf2e5dc3b5  gcc/testsuite/g++.dg/modules/lambda-2.h
--- 26424,26458 ----
  3fa2472ee15d859201bd85231c9186e8  gcc/testsuite/g++.dg/modules/inst-3_a.C
  f85ebf4b2077209c911f242b12a9af86  gcc/testsuite/g++.dg/modules/inst-3_b.C
  c8f6159c50d59c6586f5797b42391c86  gcc/testsuite/g++.dg/modules/inst-4_a.C
! 1e129f71b6c51e2bb4325ececab6e9d0  gcc/testsuite/g++.dg/modules/inst-4_b.C
  9c1e5aa4fca91a8158a8ba8a5acab036  gcc/testsuite/g++.dg/modules/inst-5_a.H
  45ff01b5a1d0276885e30fb3445f5ed3  gcc/testsuite/g++.dg/modules/inst-5_b.C
! a345a5bfe397e84c45d084024a9acbf2  gcc/testsuite/g++.dg/modules/internal-1.C
! e6b16a33fb2c85abf4f99ad0d5ad33bb  gcc/testsuite/g++.dg/modules/internal-10.C
! 8fe7459b1e2ebdf33715cdab3dbafaf9  gcc/testsuite/g++.dg/modules/internal-11.C
! f521d5e26375a6db232f71e6ef7b21f5  gcc/testsuite/g++.dg/modules/internal-12_a.C
! 271d623e43c91425c2bf224100933996  gcc/testsuite/g++.dg/modules/internal-12_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
! 88545b05c1d1edd1f0ed03982b1c6b8b  gcc/testsuite/g++.dg/modules/internal-3.C
! 79a13568f2e78729ac0b18766bb9763e  gcc/testsuite/g++.dg/modules/internal-4_a.H
! 57bf39ca055d921b446f37e378ccde61  gcc/testsuite/g++.dg/modules/internal-4_b.C
! c82fc11a682b784c1f7e442d87402c8d  gcc/testsuite/g++.dg/modules/internal-5_a.C
! 03bd624923c85327bacab539f1b93dde  gcc/testsuite/g++.dg/modules/internal-5_b.C
! 69f6d36160149649b264e2494c9ddfd1  gcc/testsuite/g++.dg/modules/internal-6.C
! d617fb9dffd161671fe14965d78e1fb9  gcc/testsuite/g++.dg/modules/internal-7_a.C
! 9ad0e57696755adde44da0feec1d19ce  gcc/testsuite/g++.dg/modules/internal-7_b.C
! e2c19ce6fc3c949918bfd7e564b44bea  gcc/testsuite/g++.dg/modules/internal-8_a.C
! 25cd28d76877d95ac2a3d8df6d421472  gcc/testsuite/g++.dg/modules/internal-9_a.H
! 0885828abc3ab86347385a1fd89d4760  gcc/testsuite/g++.dg/modules/internal-9_b.C
! 123f5696fef541dbebe5918d031d6e7d  gcc/testsuite/g++.dg/modules/iostream-1_a.H
  d78c1de0f7d9cac90e50c0208adc2926  gcc/testsuite/g++.dg/modules/iostream-1_b.C
  1cdaea6816310f2f6af91d7384b2267b  gcc/testsuite/g++.dg/modules/isalnum.H
  51d6cd56760e51f42b0853dc49c9bf77  gcc/testsuite/g++.dg/modules/keyword-1_a.C
  37de4dbdbe8e0e57b0f65d374829f234  gcc/testsuite/g++.dg/modules/keyword-1_b.C
+ 827c75baa7a6aa915ca300a3b69c2249  gcc/testsuite/g++.dg/modules/lambda-10_a.H
+ 19a555ec51a2362dce69d5e03c7b04a9  gcc/testsuite/g++.dg/modules/lambda-10_b.C
  d40eb3b191ce03c71ec885f4126c9c01  gcc/testsuite/g++.dg/modules/lambda-1_a.C
  0c208993fd82c4dab83fb16f53f43099  gcc/testsuite/g++.dg/modules/lambda-1_b.C
  0b364ead1b387b5505e2f7bf2e5dc3b5  gcc/testsuite/g++.dg/modules/lambda-2.h
*************** d30c873b55b93fa8afc633ee0ae189de  gcc/te
*** 24733,24745 ****
  ae9a3af4df170ef073f8bd08fed6b35c  gcc/testsuite/g++.dg/modules/lambda-5_b.C
  29dcd71cd48f007a0bad4adf3a97f976  gcc/testsuite/g++.dg/modules/lambda-6_a.C
  e9fdcf0fa0065362d2797bb17a15c71d  gcc/testsuite/g++.dg/modules/lambda-6_b.C
! 1dd0b81eeecb45a50fb94f0940704c22  gcc/testsuite/g++.dg/modules/lambda-7.h
  3345057ab60674f5c399532abf09150c  gcc/testsuite/g++.dg/modules/lambda-7_a.H
! 5be1ae47b01607dac87360aded4edc07  gcc/testsuite/g++.dg/modules/lambda-7_b.C
  33861865626324fceeda2c2492590473  gcc/testsuite/g++.dg/modules/lambda-7_c.C
  339bacba8e80ec5eeefc4bb1a3dba7ba  gcc/testsuite/g++.dg/modules/lang-1_a.H
  6340d54fa6505dc3e1f348d4eb7c40ff  gcc/testsuite/g++.dg/modules/lang-1_b.C
! 59ccc3469393fd4a35b408bbf78b94d9  gcc/testsuite/g++.dg/modules/lang-1_c.C
  2b3081d597950e3beb85661a683d44a1  gcc/testsuite/g++.dg/modules/lang-2_a.C
  34287388d4e4550523525c1fcb12f18e  gcc/testsuite/g++.dg/modules/lang-2_b.C
  f691889108c3ab41c26b216899719992  gcc/testsuite/g++.dg/modules/lang-3_a.C
--- 26470,26488 ----
  ae9a3af4df170ef073f8bd08fed6b35c  gcc/testsuite/g++.dg/modules/lambda-5_b.C
  29dcd71cd48f007a0bad4adf3a97f976  gcc/testsuite/g++.dg/modules/lambda-6_a.C
  e9fdcf0fa0065362d2797bb17a15c71d  gcc/testsuite/g++.dg/modules/lambda-6_b.C
! 77bb510654099b8f7f454add4c6b4226  gcc/testsuite/g++.dg/modules/lambda-7.h
  3345057ab60674f5c399532abf09150c  gcc/testsuite/g++.dg/modules/lambda-7_a.H
! 1834bc92100ee6e2b60ecafe3e6dcea0  gcc/testsuite/g++.dg/modules/lambda-7_b.C
  33861865626324fceeda2c2492590473  gcc/testsuite/g++.dg/modules/lambda-7_c.C
+ 7a4296d602d7d2141e37260fc87900f8  gcc/testsuite/g++.dg/modules/lambda-8.h
+ b1a49545d6e27194ab795382e008a184  gcc/testsuite/g++.dg/modules/lambda-8_a.H
+ e019a8261349a7dab593f059127fa87c  gcc/testsuite/g++.dg/modules/lambda-8_b.C
+ 1458dc249e5e0a4b9780c84f9ef0e146  gcc/testsuite/g++.dg/modules/lambda-9.h
+ af6d95558f78c3e075b95990aacc9535  gcc/testsuite/g++.dg/modules/lambda-9_a.H
+ 449e442bfe2dc7d77c564a6be4dfde68  gcc/testsuite/g++.dg/modules/lambda-9_b.C
  339bacba8e80ec5eeefc4bb1a3dba7ba  gcc/testsuite/g++.dg/modules/lang-1_a.H
  6340d54fa6505dc3e1f348d4eb7c40ff  gcc/testsuite/g++.dg/modules/lang-1_b.C
! e3f1bd8fef51acc6ca737521f975ab1c  gcc/testsuite/g++.dg/modules/lang-1_c.C
  2b3081d597950e3beb85661a683d44a1  gcc/testsuite/g++.dg/modules/lang-2_a.C
  34287388d4e4550523525c1fcb12f18e  gcc/testsuite/g++.dg/modules/lang-2_b.C
  f691889108c3ab41c26b216899719992  gcc/testsuite/g++.dg/modules/lang-3_a.C
*************** dd92d85eeb5c04f6fec2b384b49b0a07  gcc/te
*** 24752,24757 ****
--- 26495,26502 ----
  ad4492ce734ab625ca31a8dcc2cfe939  gcc/testsuite/g++.dg/modules/late-ret-3_a.H
  1cf6300ea570cf6c3e8fa7e76d33804c  gcc/testsuite/g++.dg/modules/late-ret-3_b.H
  276da43d466a2829c1bdbe61d568e6cc  gcc/testsuite/g++.dg/modules/late-ret-3_c.C
+ c5775cba25f4ad0346ebb8c37187fb17  gcc/testsuite/g++.dg/modules/late-ret-4_a.H
+ 58a30a7fa14cc33fd5e58e740b7a646d  gcc/testsuite/g++.dg/modules/late-ret-4_b.C
  739350acfa3eb5d0429706893705d31b  gcc/testsuite/g++.dg/modules/lazy-1_a.C
  874867dd9f2863a33cff5a80f9a8c6fa  gcc/testsuite/g++.dg/modules/lazy-1_b.C
  5ad3883c603e1646226b91fad2ac09e3  gcc/testsuite/g++.dg/modules/leg-merge-1_a.H
*************** b2c17820c6eb74bc0c247b9a0bb2327b  gcc/te
*** 24767,24773 ****
  7c3c74506283c34f6427541f9006c2a9  gcc/testsuite/g++.dg/modules/leg-merge-3_d.C
  4232f2218c15b8a16a02c41973dd0ca7  gcc/testsuite/g++.dg/modules/leg-merge-4_a.H
  13dd572cc0d008ab2434d77217ad1e47  gcc/testsuite/g++.dg/modules/leg-merge-4_b.H
! 2ce68f7ec77a0950fb1ec3c4f8856601  gcc/testsuite/g++.dg/modules/leg-merge-4_c.C
  60d15d1c50e0c3bd81c29cfe58067e8e  gcc/testsuite/g++.dg/modules/leg-merge-5_a.H
  cb9a9dc8e64a6564d7273e98a4a18a05  gcc/testsuite/g++.dg/modules/leg-merge-5_b.H
  b1944004cbb1647ce96543281f848308  gcc/testsuite/g++.dg/modules/leg-merge-5_c.C
--- 26512,26518 ----
  7c3c74506283c34f6427541f9006c2a9  gcc/testsuite/g++.dg/modules/leg-merge-3_d.C
  4232f2218c15b8a16a02c41973dd0ca7  gcc/testsuite/g++.dg/modules/leg-merge-4_a.H
  13dd572cc0d008ab2434d77217ad1e47  gcc/testsuite/g++.dg/modules/leg-merge-4_b.H
! 5b693fea72cb3abc11f7af5d9565409a  gcc/testsuite/g++.dg/modules/leg-merge-4_c.C
  60d15d1c50e0c3bd81c29cfe58067e8e  gcc/testsuite/g++.dg/modules/leg-merge-5_a.H
  cb9a9dc8e64a6564d7273e98a4a18a05  gcc/testsuite/g++.dg/modules/leg-merge-5_b.H
  b1944004cbb1647ce96543281f848308  gcc/testsuite/g++.dg/modules/leg-merge-5_c.C
*************** e67c086978b2e3cb0c3873c56a04d2ca  gcc/te
*** 24794,24801 ****
  5acca7c06d669d87a8e3d6aad304d652  gcc/testsuite/g++.dg/modules/legacy-2_d.C
  0beb887bfa01dea335fad0e226f7b040  gcc/testsuite/g++.dg/modules/legacy-3.h
  d9533adea02d81b5f7caa581e917ada6  gcc/testsuite/g++.dg/modules/legacy-3_a.H
! 9e120706ec106f55f2cbcb0722fffff5  gcc/testsuite/g++.dg/modules/legacy-3_b.H
! be0289470123d9ff0bce2d230229248d  gcc/testsuite/g++.dg/modules/legacy-3_c.H
  bdd4d508ee0bf1bbb17be17e8c636dd8  gcc/testsuite/g++.dg/modules/legacy-6.map
  fdead5385bc3d506ead01a41a926db48  gcc/testsuite/g++.dg/modules/legacy-6_a.H
  46b103796536647590e870edc876e248  gcc/testsuite/g++.dg/modules/legacy-6_b.H
--- 26539,26546 ----
  5acca7c06d669d87a8e3d6aad304d652  gcc/testsuite/g++.dg/modules/legacy-2_d.C
  0beb887bfa01dea335fad0e226f7b040  gcc/testsuite/g++.dg/modules/legacy-3.h
  d9533adea02d81b5f7caa581e917ada6  gcc/testsuite/g++.dg/modules/legacy-3_a.H
! 27b04195006e56c362dbde9aeed1608d  gcc/testsuite/g++.dg/modules/legacy-3_b.H
! 4e6515767626f3c4733db968477b1770  gcc/testsuite/g++.dg/modules/legacy-3_c.H
  bdd4d508ee0bf1bbb17be17e8c636dd8  gcc/testsuite/g++.dg/modules/legacy-6.map
  fdead5385bc3d506ead01a41a926db48  gcc/testsuite/g++.dg/modules/legacy-6_a.H
  46b103796536647590e870edc876e248  gcc/testsuite/g++.dg/modules/legacy-6_b.H
*************** d7d7e27d0e139fa841601b198a24f426  gcc/te
*** 24812,24821 ****
  6be71fb1f101e2854eadfb51e10a3f21  gcc/testsuite/g++.dg/modules/legacy-8_e.C
  0feb5f91ea1d83dc6a56699a6cf47e4f  gcc/testsuite/g++.dg/modules/libfn-1_a.C
  de079e1ffd5d086ec2d06480cd780d88  gcc/testsuite/g++.dg/modules/libfn-1_b.C
! be49fa67b6c176809aff326be6b0f237  gcc/testsuite/g++.dg/modules/linkage-1_a.C
! f7e0589fd2609f4ab4f76fefd8e718d0  gcc/testsuite/g++.dg/modules/linkage-1_b.C
! 94e231dd113d90f12e5fb7bc94289744  gcc/testsuite/g++.dg/modules/linkage-1_c.C
! b2bf69e312cc78a8948c5368973e086e  gcc/testsuite/g++.dg/modules/linkage-2.C
  ff959189b1f27ff5d9f9973b727b39fb  gcc/testsuite/g++.dg/modules/literals-1_a.C
  6c8bcc94aaf7310fc4d5df2b8e2e6426  gcc/testsuite/g++.dg/modules/literals-1_b.C
  a1c73182260914d493b7e86a0a904c5b  gcc/testsuite/g++.dg/modules/loc-1_a.C
--- 26557,26568 ----
  6be71fb1f101e2854eadfb51e10a3f21  gcc/testsuite/g++.dg/modules/legacy-8_e.C
  0feb5f91ea1d83dc6a56699a6cf47e4f  gcc/testsuite/g++.dg/modules/libfn-1_a.C
  de079e1ffd5d086ec2d06480cd780d88  gcc/testsuite/g++.dg/modules/libfn-1_b.C
! 153ed53086fe3c0a849dd10d6116b723  gcc/testsuite/g++.dg/modules/linkage-1_a.C
! 13eb45995514a04eaf9ac50b6736a822  gcc/testsuite/g++.dg/modules/linkage-1_b.C
! ab3afa6229cb54c113f0e6d1fd7bdb3f  gcc/testsuite/g++.dg/modules/linkage-1_c.C
! cd2b8ca0829bf0a62faa4b4113c7ed53  gcc/testsuite/g++.dg/modules/linkage-2.C
! f6ad7c4b644f93b287cebfb1921f32c2  gcc/testsuite/g++.dg/modules/linkage-3_a.C
! eb16edeab09b0422107a891cc8fccc4c  gcc/testsuite/g++.dg/modules/linkage-3_b.C
  ff959189b1f27ff5d9f9973b727b39fb  gcc/testsuite/g++.dg/modules/literals-1_a.C
  6c8bcc94aaf7310fc4d5df2b8e2e6426  gcc/testsuite/g++.dg/modules/literals-1_b.C
  a1c73182260914d493b7e86a0a904c5b  gcc/testsuite/g++.dg/modules/loc-1_a.C
*************** d924cff1bbe926b1f17e1167003881bb  gcc/te
*** 24830,24845 ****
  60cb604832901841e94298c6bdd70f38  gcc/testsuite/g++.dg/modules/loc-prune-1.C
  779fbd57bbb7905c8d8fb676c59cdd20  gcc/testsuite/g++.dg/modules/loc-prune-2.C
  d234e2fa234dbe6bc35c0d449aa99716  gcc/testsuite/g++.dg/modules/loc-prune-3.C
! 1b650053fc88a374645a2e82bd7313a2  gcc/testsuite/g++.dg/modules/loc-prune-4.C
  6531454223747b5248efd268335cd69f  gcc/testsuite/g++.dg/modules/loc-wrapper-1.h
  084b7fe112f0f51317dca6c0aab9cc6d  gcc/testsuite/g++.dg/modules/loc-wrapper-1_a.H
  8cdd1ec4497b754d0e88faf6273069e8  gcc/testsuite/g++.dg/modules/loc-wrapper-1_b.C
  fa425b904c91756156e90fa502c1823a  gcc/testsuite/g++.dg/modules/local-1_a.C
  7a9670a2e6d1da0523bb31034ed44eb4  gcc/testsuite/g++.dg/modules/local-1_b.C
! ce65ab4cb05b352f2419532c262ce8a7  gcc/testsuite/g++.dg/modules/local-extern-1.C
  1359e279796b01a08c62b123c58ff722  gcc/testsuite/g++.dg/modules/local-extern-2.H
  d5075b90a1d0dfe23d60cb4ab1413d7b  gcc/testsuite/g++.dg/modules/local-struct-1_a.C
  97a25b386cbb06eb1a298409eccbcc0e  gcc/testsuite/g++.dg/modules/local-struct-1_b.C
  16c505e7ec3f958c4b72ee9779d716a2  gcc/testsuite/g++.dg/modules/macloc-1_a.C
  d5fee47db8f5a2cba3951a9d1bca86e8  gcc/testsuite/g++.dg/modules/macloc-1_b.C
  2a85bdb214d9bf838d19743ae52a8eb1  gcc/testsuite/g++.dg/modules/macloc-1_c.C
--- 26577,26600 ----
  60cb604832901841e94298c6bdd70f38  gcc/testsuite/g++.dg/modules/loc-prune-1.C
  779fbd57bbb7905c8d8fb676c59cdd20  gcc/testsuite/g++.dg/modules/loc-prune-2.C
  d234e2fa234dbe6bc35c0d449aa99716  gcc/testsuite/g++.dg/modules/loc-prune-3.C
! 3ef4bae1a00c7d9be3c1a95fc3ae07fe  gcc/testsuite/g++.dg/modules/loc-prune-4.C
  6531454223747b5248efd268335cd69f  gcc/testsuite/g++.dg/modules/loc-wrapper-1.h
  084b7fe112f0f51317dca6c0aab9cc6d  gcc/testsuite/g++.dg/modules/loc-wrapper-1_a.H
  8cdd1ec4497b754d0e88faf6273069e8  gcc/testsuite/g++.dg/modules/loc-wrapper-1_b.C
  fa425b904c91756156e90fa502c1823a  gcc/testsuite/g++.dg/modules/local-1_a.C
  7a9670a2e6d1da0523bb31034ed44eb4  gcc/testsuite/g++.dg/modules/local-1_b.C
! 0e4cc0ca4ccc89a560dfdd4ece9a54e1  gcc/testsuite/g++.dg/modules/local-extern-1.C
  1359e279796b01a08c62b123c58ff722  gcc/testsuite/g++.dg/modules/local-extern-2.H
  d5075b90a1d0dfe23d60cb4ab1413d7b  gcc/testsuite/g++.dg/modules/local-struct-1_a.C
  97a25b386cbb06eb1a298409eccbcc0e  gcc/testsuite/g++.dg/modules/local-struct-1_b.C
+ 0453cd6aed99671f33e68b44b6ade07a  gcc/testsuite/g++.dg/modules/lto-1.h
+ 4c219d48b9ef884e7623c35d36b82342  gcc/testsuite/g++.dg/modules/lto-1_a.H
+ 551f8c8bbd5af143d00ba7554c75dc7f  gcc/testsuite/g++.dg/modules/lto-1_b.C
+ 87cba4398d2152b433d17b4e341eac3b  gcc/testsuite/g++.dg/modules/lto-1_c.C
+ 6401126dddb754e5b65a3c842daa228d  gcc/testsuite/g++.dg/modules/lto-2_a.H
+ 39816ae89e53f3a7efa8b229509ef25c  gcc/testsuite/g++.dg/modules/lto-2_b.C
+ 1590072f5e6f147b1a0b412f0c3a37f9  gcc/testsuite/g++.dg/modules/lto-3_a.H
+ 9da9e8d56d8e1f9eeaf9a5d409c93b0b  gcc/testsuite/g++.dg/modules/lto-3_b.C
  16c505e7ec3f958c4b72ee9779d716a2  gcc/testsuite/g++.dg/modules/macloc-1_a.C
  d5fee47db8f5a2cba3951a9d1bca86e8  gcc/testsuite/g++.dg/modules/macloc-1_b.C
  2a85bdb214d9bf838d19743ae52a8eb1  gcc/testsuite/g++.dg/modules/macloc-1_c.C
*************** d80de6ae02a5d31f77df78abda5b58c1  gcc/te
*** 24857,24863 ****
  c66dbbdd25ccc73ad806cf31aaa568b5  gcc/testsuite/g++.dg/modules/macro-3_c.C
  4a3be8a8ce5681cab24a6d51ace8d81c  gcc/testsuite/g++.dg/modules/macro-4_a.H
  1f055816afac8ef651a33ab24e05921e  gcc/testsuite/g++.dg/modules/macro-4_b.H
! 9086d5303c6f219bd968dda5ad61758b  gcc/testsuite/g++.dg/modules/macro-4_c.H
  86afff851b74d928589f5531a924b270  gcc/testsuite/g++.dg/modules/macro-4_d.C
  3ef16c87fa2ac3c47f4edded1af714c9  gcc/testsuite/g++.dg/modules/macro-4_e.C
  a4bc36e1ccc6f99b35c4c9c711fa9b5e  gcc/testsuite/g++.dg/modules/macro-4_f.C
--- 26612,26618 ----
  c66dbbdd25ccc73ad806cf31aaa568b5  gcc/testsuite/g++.dg/modules/macro-3_c.C
  4a3be8a8ce5681cab24a6d51ace8d81c  gcc/testsuite/g++.dg/modules/macro-4_a.H
  1f055816afac8ef651a33ab24e05921e  gcc/testsuite/g++.dg/modules/macro-4_b.H
! b405b590e7814102cd11aa0e7b4de292  gcc/testsuite/g++.dg/modules/macro-4_c.H
  86afff851b74d928589f5531a924b270  gcc/testsuite/g++.dg/modules/macro-4_d.C
  3ef16c87fa2ac3c47f4edded1af714c9  gcc/testsuite/g++.dg/modules/macro-4_e.C
  a4bc36e1ccc6f99b35c4c9c711fa9b5e  gcc/testsuite/g++.dg/modules/macro-4_f.C
*************** c91fa85cc31942f800f328b891ae9ba3  gcc/te
*** 24871,24889 ****
  2bd361d4f6eec647962dbe8cc178ec00  gcc/testsuite/g++.dg/modules/macro-7_a.C
  2a5934442c1460d97e29bcd00434e81d  gcc/testsuite/g++.dg/modules/macro-7_b.C
  9b3c96f28175168f6817a4665a02d2cb  gcc/testsuite/g++.dg/modules/macro-7_c.C
  7e55fb2b58ae21062a1aae92abeddaee  gcc/testsuite/g++.dg/modules/map-1.map
  4937456105df94b310b2e5b07d99684e  gcc/testsuite/g++.dg/modules/map-1_a.C
  47dd78dbe2bd86b2a089fcb4568428b6  gcc/testsuite/g++.dg/modules/map-1_b.C
  a97222399bb913d6fd1cb08089f15ea2  gcc/testsuite/g++.dg/modules/map-1_b.map
! 5df73d307105f16991d7470834d8cd0d  gcc/testsuite/g++.dg/modules/map-2.C
  8549e2f90bc7f7a37a2a8e9658f48fe5  gcc/testsuite/g++.dg/modules/map-2.map
  4a4216d7255a9fd278a06e19d4b0de0d  gcc/testsuite/g++.dg/modules/member-def-1_a.C
  1dc6340e7ef11f58a5cf3b15c433d2d9  gcc/testsuite/g++.dg/modules/member-def-1_b.C
! 3cdaaf54e8ba823f68b82fe18413bc7c  gcc/testsuite/g++.dg/modules/member-def-1_c.C
  f691c09989d6058636ac0eaed83e2c4a  gcc/testsuite/g++.dg/modules/member-def-1_d.C
  fead4c02dd484c1c8c2a14069d7982f9  gcc/testsuite/g++.dg/modules/member-def-2_a.C
  5ca5c0fd9d2d85af88b312ba816fa0f3  gcc/testsuite/g++.dg/modules/member-def-2_b.C
! 8bc88cbbe340174776ec829fdbb0755b  gcc/testsuite/g++.dg/modules/member-def-2_c.C
  c9dc3bdcba22a854a006e06947118350  gcc/testsuite/g++.dg/modules/member-def-2_d.C
  2d4e1648bccbafb604c116d49a74a799  gcc/testsuite/g++.dg/modules/memref-1_a.C
  f3e7b8f4ecec1dcfedf0461f3acc9e3e  gcc/testsuite/g++.dg/modules/memref-1_b.C
--- 26626,26649 ----
  2bd361d4f6eec647962dbe8cc178ec00  gcc/testsuite/g++.dg/modules/macro-7_a.C
  2a5934442c1460d97e29bcd00434e81d  gcc/testsuite/g++.dg/modules/macro-7_b.C
  9b3c96f28175168f6817a4665a02d2cb  gcc/testsuite/g++.dg/modules/macro-7_c.C
+ e4b77c409215a0a9d2fc97a366631d1c  gcc/testsuite/g++.dg/modules/macro-8_a.H
+ 2f294ea01c8c6117d37cc0b562c8e885  gcc/testsuite/g++.dg/modules/macro-8_b.C
+ 9199065b138fb1fc3c53d3868d5c9458  gcc/testsuite/g++.dg/modules/macro-8_c.C
+ 48c9a496c5ee8fe511785ca4a81e2f1c  gcc/testsuite/g++.dg/modules/macro-8_d.C
+ 3834a2aa6874a40737004684bed293ba  gcc/testsuite/g++.dg/modules/main-1.C
  7e55fb2b58ae21062a1aae92abeddaee  gcc/testsuite/g++.dg/modules/map-1.map
  4937456105df94b310b2e5b07d99684e  gcc/testsuite/g++.dg/modules/map-1_a.C
  47dd78dbe2bd86b2a089fcb4568428b6  gcc/testsuite/g++.dg/modules/map-1_b.C
  a97222399bb913d6fd1cb08089f15ea2  gcc/testsuite/g++.dg/modules/map-1_b.map
! 2e803d384b857708e8123604c1c595ca  gcc/testsuite/g++.dg/modules/map-2.C
  8549e2f90bc7f7a37a2a8e9658f48fe5  gcc/testsuite/g++.dg/modules/map-2.map
  4a4216d7255a9fd278a06e19d4b0de0d  gcc/testsuite/g++.dg/modules/member-def-1_a.C
  1dc6340e7ef11f58a5cf3b15c433d2d9  gcc/testsuite/g++.dg/modules/member-def-1_b.C
! aa2d7e265e7dc9e4829dfc679a452d28  gcc/testsuite/g++.dg/modules/member-def-1_c.C
  f691c09989d6058636ac0eaed83e2c4a  gcc/testsuite/g++.dg/modules/member-def-1_d.C
  fead4c02dd484c1c8c2a14069d7982f9  gcc/testsuite/g++.dg/modules/member-def-2_a.C
  5ca5c0fd9d2d85af88b312ba816fa0f3  gcc/testsuite/g++.dg/modules/member-def-2_b.C
! a080084961eeabd1b2754a8cacfc1c67  gcc/testsuite/g++.dg/modules/member-def-2_c.C
  c9dc3bdcba22a854a006e06947118350  gcc/testsuite/g++.dg/modules/member-def-2_d.C
  2d4e1648bccbafb604c116d49a74a799  gcc/testsuite/g++.dg/modules/memref-1_a.C
  f3e7b8f4ecec1dcfedf0461f3acc9e3e  gcc/testsuite/g++.dg/modules/memref-1_b.C
*************** f78c4751cda567492334856a2806075f  gcc/te
*** 24911,24916 ****
--- 26671,26679 ----
  e59422752a14e36da270e2aba8678686  gcc/testsuite/g++.dg/modules/merge-17.h
  74c4a79c9fdf8835ff2b792d3255ac02  gcc/testsuite/g++.dg/modules/merge-17_a.H
  a86953a3ff1628b1d63b12ffe6288868  gcc/testsuite/g++.dg/modules/merge-17_b.C
+ 2991f7376dac2c4c117eb1695b965df2  gcc/testsuite/g++.dg/modules/merge-18_a.H
+ 6c422e6c5277ccdfb90784932bec2657  gcc/testsuite/g++.dg/modules/merge-18_b.H
+ b96974b9a375faece8796bfa8110e67f  gcc/testsuite/g++.dg/modules/merge-18_c.C
  c55f90e5ef6f7ab3992f6606da04c6d7  gcc/testsuite/g++.dg/modules/merge-1_a.C
  8dfdc3716d1dda6833ec359936a84a2c  gcc/testsuite/g++.dg/modules/merge-1_b.C
  4f1ab1a658f8fe8b82d453787cd70235  gcc/testsuite/g++.dg/modules/merge-2_a.H
*************** b1edad776f663405432e237b01562da9  gcc/te
*** 24937,24949 ****
  386f61018ee7c77f24d006af7906190f  gcc/testsuite/g++.dg/modules/merge-9_b.C
  b81fed6364eb58ee2407877494605bcd  gcc/testsuite/g++.dg/modules/mod-decl-0-2a.C
  d18ea4b05b1e0f0d55713abe96ac2a67  gcc/testsuite/g++.dg/modules/mod-decl-0.C
! bffbee8b2f9944d25a80d0749b305404  gcc/testsuite/g++.dg/modules/mod-decl-1.C
  2ab7e1970f6fdd4ecc60b34844bd2ce3  gcc/testsuite/g++.dg/modules/mod-decl-2_a.C
  b490c4db8daf8e9d41aeffc432a9e3f2  gcc/testsuite/g++.dg/modules/mod-decl-2_b.C
  659c2ac0c2c7658f7b01141e2c497180  gcc/testsuite/g++.dg/modules/mod-decl-2_c.C
! 932436868c6d9c9ecc0ea5e8e79e686f  gcc/testsuite/g++.dg/modules/mod-decl-3.C
  edf99b9cce0faf25cf9ad4ef1969818c  gcc/testsuite/g++.dg/modules/mod-decl-5_a.C
  0ff713ecebca50c06b239bfa600db209  gcc/testsuite/g++.dg/modules/mod-decl-5_b.C
  7f70d1873bf472647d158f20402bd01c  gcc/testsuite/g++.dg/modules/mod-exp-1_a.C
  974215233d26b773e6a1ff1cfa4a376e  gcc/testsuite/g++.dg/modules/mod-exp-1_b.C
  618ce9aafa84ba02f10e1688dfda7ce4  gcc/testsuite/g++.dg/modules/mod-imp-1_a.C
--- 26700,26715 ----
  386f61018ee7c77f24d006af7906190f  gcc/testsuite/g++.dg/modules/merge-9_b.C
  b81fed6364eb58ee2407877494605bcd  gcc/testsuite/g++.dg/modules/mod-decl-0-2a.C
  d18ea4b05b1e0f0d55713abe96ac2a67  gcc/testsuite/g++.dg/modules/mod-decl-0.C
! 183f57c1fd74b230d207e0a4271d18df  gcc/testsuite/g++.dg/modules/mod-decl-1.C
  2ab7e1970f6fdd4ecc60b34844bd2ce3  gcc/testsuite/g++.dg/modules/mod-decl-2_a.C
  b490c4db8daf8e9d41aeffc432a9e3f2  gcc/testsuite/g++.dg/modules/mod-decl-2_b.C
  659c2ac0c2c7658f7b01141e2c497180  gcc/testsuite/g++.dg/modules/mod-decl-2_c.C
! e9631cc2802ad91a3b7db2f86a6ceb02  gcc/testsuite/g++.dg/modules/mod-decl-3.C
  edf99b9cce0faf25cf9ad4ef1969818c  gcc/testsuite/g++.dg/modules/mod-decl-5_a.C
  0ff713ecebca50c06b239bfa600db209  gcc/testsuite/g++.dg/modules/mod-decl-5_b.C
+ 546af556546895b3c543b80b12eba73f  gcc/testsuite/g++.dg/modules/mod-decl-6.C
+ c1c449e221588ea7607436af471fcef1  gcc/testsuite/g++.dg/modules/mod-decl-7.C
+ 30d804005dedccc8094253a21fd112d6  gcc/testsuite/g++.dg/modules/mod-decl-8.C
  7f70d1873bf472647d158f20402bd01c  gcc/testsuite/g++.dg/modules/mod-exp-1_a.C
  974215233d26b773e6a1ff1cfa4a376e  gcc/testsuite/g++.dg/modules/mod-exp-1_b.C
  618ce9aafa84ba02f10e1688dfda7ce4  gcc/testsuite/g++.dg/modules/mod-imp-1_a.C
*************** de6660e4acc49035a9e5e9821835deb7  gcc/te
*** 24967,24978 ****
  2129e3bf78fea701d2748fc468af1932  gcc/testsuite/g++.dg/modules/mod-sym-1.C
  075fd04762fcd0609fc02a557a3afa98  gcc/testsuite/g++.dg/modules/mod-sym-2.C
  e803cdb19c3e7f7d188196d7bb80cb80  gcc/testsuite/g++.dg/modules/mod-sym-3.C
! 67ae9499e9f454de7e7171e4336a9d7c  gcc/testsuite/g++.dg/modules/mod-sym-4.C
  b66a905fae26f7efc4eaf3f3c60a6b65  gcc/testsuite/g++.dg/modules/mod-tpl-1_a.C
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! a9732c80a74f11e7e1348abaa79600f6  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
--- 26733,26744 ----
  2129e3bf78fea701d2748fc468af1932  gcc/testsuite/g++.dg/modules/mod-sym-1.C
  075fd04762fcd0609fc02a557a3afa98  gcc/testsuite/g++.dg/modules/mod-sym-2.C
  e803cdb19c3e7f7d188196d7bb80cb80  gcc/testsuite/g++.dg/modules/mod-sym-3.C
! af57be18dfccb232e9e6e8635289e71c  gcc/testsuite/g++.dg/modules/mod-sym-4.C
  b66a905fae26f7efc4eaf3f3c60a6b65  gcc/testsuite/g++.dg/modules/mod-tpl-1_a.C
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! bbb42c3f40f239c2fad38126884d3bfd  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
*************** c49d957a7756803ada5b07b344a17582  gcc/te
*** 24989,24994 ****
--- 26755,26762 ----
  e3b26cd297bbf629e08e59f458ba2887  gcc/testsuite/g++.dg/modules/namespace-5_c.C
  c7ee628b9bb8433e87d87a5ed98d0da6  gcc/testsuite/g++.dg/modules/namespace-6_a.H
  f11bca3804e59924f208cd381adb0539  gcc/testsuite/g++.dg/modules/namespace-6_b.C
+ a23c2aab0228579e73d832a7bd5fe6fb  gcc/testsuite/g++.dg/modules/namespace-7_a.C
+ a2648578444af56ac1e9d70da075b223  gcc/testsuite/g++.dg/modules/namespace-7_b.C
  df4019992d5e5a1273b138d6bd686af4  gcc/testsuite/g++.dg/modules/nest-1_a.C
  4473568de7cd981f9865964a715d52c9  gcc/testsuite/g++.dg/modules/nest-1_b.C
  30dd50d7bea9010cc0f08e61a8de0daa  gcc/testsuite/g++.dg/modules/nest-1_c.C
*************** a45746b328dd43b264fcb7f8e47d5d2f  gcc/te
*** 25008,25013 ****
--- 26776,26788 ----
  fe2be001ff06f90ddf69de49281c1f9e  gcc/testsuite/g++.dg/modules/noexcept-1.h
  27450e98b9802ab246c93b1b673cef1d  gcc/testsuite/g++.dg/modules/noexcept-1_a.H
  1ff638d2682442bf8bf5d274ec557894  gcc/testsuite/g++.dg/modules/noexcept-1_b.C
+ b94ea1395cb7c27b9de61b589d1dd6bb  gcc/testsuite/g++.dg/modules/noexcept-2_a.H
+ 0fa8de349c98951f006282c42535d811  gcc/testsuite/g++.dg/modules/noexcept-2_b.C
+ e6bfbee7a6233fc9b0494b98eda3da99  gcc/testsuite/g++.dg/modules/noexcept-3_a.C
+ fce3f558aeb8001c53b2a58bdd35b90c  gcc/testsuite/g++.dg/modules/noexcept-3_b.C
+ 29e61ee340b5bc3a7d8a0ba7a9b97160  gcc/testsuite/g++.dg/modules/noexcept-3_c.C
+ 3352ecf52d4c372d9299b5562e3d2bc1  gcc/testsuite/g++.dg/modules/noexcept-4_a.H
+ 1f41c550595320f883deb0c9cafc27d7  gcc/testsuite/g++.dg/modules/noexcept-4_b.C
  5267120dfe33094309707a439761d2ad  gcc/testsuite/g++.dg/modules/ns-alias-1_a.C
  5c1f7c01d38a7bbf2a7cb1627d2269cb  gcc/testsuite/g++.dg/modules/ns-alias-1_b.C
  35b6f149929214b0f06a476383cbce84  gcc/testsuite/g++.dg/modules/ns-alias-1_c.C
*************** a2aa06a6dcdfe826f8453f44b86ccdb9  gcc/te
*** 25024,25045 ****
  3d00837382b2eca4c90e4c08b1ea1938  gcc/testsuite/g++.dg/modules/nsdmi-1_a.C
  6cb7d26fcc0836ec3d62ff53322af1a3  gcc/testsuite/g++.dg/modules/nsdmi-1_b.C
  431c9b35843130b9d9e5706eb1d8a1a0  gcc/testsuite/g++.dg/modules/nsdmi-2.C
  0e6bcf468ade208270e53b7ab784a34d  gcc/testsuite/g++.dg/modules/omp-1_a.C
  c637ff229e67ef7204c508f84142a2dc  gcc/testsuite/g++.dg/modules/omp-1_b.C
  b9e7ffb3665e3229bd0c8486736caacd  gcc/testsuite/g++.dg/modules/omp-1_c.C
  1f9e12bed1e68eab92d1c7932b4539b7  gcc/testsuite/g++.dg/modules/omp-2_a.C
  df0879669024f953e4247de3f790c925  gcc/testsuite/g++.dg/modules/omp-2_b.C
  34456a885afd5a670c7b1b36d6100de6  gcc/testsuite/g++.dg/modules/only-1.C
  457cc97eb504e8bcc8d9e91eb9ca090c  gcc/testsuite/g++.dg/modules/only-2.C
  05f020b885cb1696012f8f737d88e9c5  gcc/testsuite/g++.dg/modules/only-3.C
  f393f31348fe15bf7b4624e5ca1f4f88  gcc/testsuite/g++.dg/modules/operator-1_a.C
  5c06e271381a24e83bfc8cee53a57923  gcc/testsuite/g++.dg/modules/operator-1_b.C
  6fb875df6869ba99b747dcf36b733deb  gcc/testsuite/g++.dg/modules/p0713-1.C
  ff696e0f510ea557c23989199362bba3  gcc/testsuite/g++.dg/modules/p0713-2.C
  cc14aa73d152fe3714edc19282ab0a15  gcc/testsuite/g++.dg/modules/p0713-3.C
  3b484fdb158da6ff7334dcf3ba688006  gcc/testsuite/g++.dg/modules/p1689-1.C
  b5d39611c8637e80d31860bfe009f26d  gcc/testsuite/g++.dg/modules/p1689-1.exp.ddi
! a4dd29d184113b2c73c0e43ace85188f  gcc/testsuite/g++.dg/modules/p1689-2.C
  72ba6c808a154fbd541553054955180f  gcc/testsuite/g++.dg/modules/p1689-2.exp.ddi
  9447608405834c91ea1f192df53f1980  gcc/testsuite/g++.dg/modules/p1689-3.C
  64457d26de118f8fec988c1c17ab1e41  gcc/testsuite/g++.dg/modules/p1689-3.exp.ddi
--- 26799,26829 ----
  3d00837382b2eca4c90e4c08b1ea1938  gcc/testsuite/g++.dg/modules/nsdmi-1_a.C
  6cb7d26fcc0836ec3d62ff53322af1a3  gcc/testsuite/g++.dg/modules/nsdmi-1_b.C
  431c9b35843130b9d9e5706eb1d8a1a0  gcc/testsuite/g++.dg/modules/nsdmi-2.C
+ 2e6298dd2a48f93e15823219f6e541bf  gcc/testsuite/g++.dg/modules/oacc-1_a.C
+ 22958042ef339321f53070f93cdb179c  gcc/testsuite/g++.dg/modules/oacc-1_b.C
+ 4c5c1d2ced88d689a59294749d6781d7  gcc/testsuite/g++.dg/modules/oacc-1_c.C
  0e6bcf468ade208270e53b7ab784a34d  gcc/testsuite/g++.dg/modules/omp-1_a.C
  c637ff229e67ef7204c508f84142a2dc  gcc/testsuite/g++.dg/modules/omp-1_b.C
  b9e7ffb3665e3229bd0c8486736caacd  gcc/testsuite/g++.dg/modules/omp-1_c.C
  1f9e12bed1e68eab92d1c7932b4539b7  gcc/testsuite/g++.dg/modules/omp-2_a.C
  df0879669024f953e4247de3f790c925  gcc/testsuite/g++.dg/modules/omp-2_b.C
+ 1565cbb6b05ff4f38e780431b5deffd6  gcc/testsuite/g++.dg/modules/omp-3_a.C
+ d9a6c5d8375c344c11b3ea27d7cb5ca4  gcc/testsuite/g++.dg/modules/omp-3_b.C
+ c637ff229e67ef7204c508f84142a2dc  gcc/testsuite/g++.dg/modules/omp-3_c.C
+ 5a7d66e0fa187aa2373add6275fa34cc  gcc/testsuite/g++.dg/modules/omp-3_d.C
  34456a885afd5a670c7b1b36d6100de6  gcc/testsuite/g++.dg/modules/only-1.C
  457cc97eb504e8bcc8d9e91eb9ca090c  gcc/testsuite/g++.dg/modules/only-2.C
  05f020b885cb1696012f8f737d88e9c5  gcc/testsuite/g++.dg/modules/only-3.C
  f393f31348fe15bf7b4624e5ca1f4f88  gcc/testsuite/g++.dg/modules/operator-1_a.C
  5c06e271381a24e83bfc8cee53a57923  gcc/testsuite/g++.dg/modules/operator-1_b.C
+ 649426acee362ea5158fa798c70173ca  gcc/testsuite/g++.dg/modules/operator-2_a.C
+ 6930f57b5a49eb9fe06bbfbeddfe754b  gcc/testsuite/g++.dg/modules/operator-2_b.C
  6fb875df6869ba99b747dcf36b733deb  gcc/testsuite/g++.dg/modules/p0713-1.C
  ff696e0f510ea557c23989199362bba3  gcc/testsuite/g++.dg/modules/p0713-2.C
  cc14aa73d152fe3714edc19282ab0a15  gcc/testsuite/g++.dg/modules/p0713-3.C
  3b484fdb158da6ff7334dcf3ba688006  gcc/testsuite/g++.dg/modules/p1689-1.C
  b5d39611c8637e80d31860bfe009f26d  gcc/testsuite/g++.dg/modules/p1689-1.exp.ddi
! 1fb7837acb5532e4a86d1e004a918b3a  gcc/testsuite/g++.dg/modules/p1689-2.C
  72ba6c808a154fbd541553054955180f  gcc/testsuite/g++.dg/modules/p1689-2.exp.ddi
  9447608405834c91ea1f192df53f1980  gcc/testsuite/g++.dg/modules/p1689-3.C
  64457d26de118f8fec988c1c17ab1e41  gcc/testsuite/g++.dg/modules/p1689-3.exp.ddi
*************** a528ddb3fc05758fe7f1cc43eec09f7d  gcc/te
*** 25051,25056 ****
--- 26835,26842 ----
  9aa108d57c61ba6306b9d22f539b1204  gcc/testsuite/g++.dg/modules/p1689-file-default.exp.ddi
  e957d0bb77992ee1df76972e1b650438  gcc/testsuite/g++.dg/modules/p1689-target-default.C
  b526eccf4125841f7887f3c52a4ad9c3  gcc/testsuite/g++.dg/modules/p1689-target-default.exp.ddi
+ a3be9aad9d10fc377af4164832c226c3  gcc/testsuite/g++.dg/modules/pack-index-1_a.C
+ 7b28120ef6b48516bc33d430f719231f  gcc/testsuite/g++.dg/modules/pack-index-1_b.C
  c05001e1ed1bc8701ae61710ad3585cd  gcc/testsuite/g++.dg/modules/part-1_a.C
  8cc6c00af73d534c5bcd66d9d7757f8c  gcc/testsuite/g++.dg/modules/part-1_b.C
  103cfc3318415410b659f66bfb16f1bf  gcc/testsuite/g++.dg/modules/part-1_c.C
*************** e23e53ed0c89c7bdae023f3dc51bad4c  gcc/te
*** 25068,25074 ****
  062ebeb76530614073ca97e94ab0a295  gcc/testsuite/g++.dg/modules/part-4_c.C
  93fc73e421646b1788b2eeb0cf13e19d  gcc/testsuite/g++.dg/modules/part-5_a.C
  e115c186406e6dac67acb8502b56f4b9  gcc/testsuite/g++.dg/modules/part-5_b.C
! 7137e917a5e942ab77d964f57997ede2  gcc/testsuite/g++.dg/modules/part-5_c.C
  37080fa8f1c26d23eb1e433852ba75d2  gcc/testsuite/g++.dg/modules/part-6_a.C
  aa59d18b5e4ed41a1d66cc83fb3166df  gcc/testsuite/g++.dg/modules/part-6_b.C
  af38ea18433a4e188e95c6a0a1b7184e  gcc/testsuite/g++.dg/modules/part-6_c.C
--- 26854,26860 ----
  062ebeb76530614073ca97e94ab0a295  gcc/testsuite/g++.dg/modules/part-4_c.C
  93fc73e421646b1788b2eeb0cf13e19d  gcc/testsuite/g++.dg/modules/part-5_a.C
  e115c186406e6dac67acb8502b56f4b9  gcc/testsuite/g++.dg/modules/part-5_b.C
! 54666445d006e678fdbc5f4e020ac642  gcc/testsuite/g++.dg/modules/part-5_c.C
  37080fa8f1c26d23eb1e433852ba75d2  gcc/testsuite/g++.dg/modules/part-6_a.C
  aa59d18b5e4ed41a1d66cc83fb3166df  gcc/testsuite/g++.dg/modules/part-6_b.C
  af38ea18433a4e188e95c6a0a1b7184e  gcc/testsuite/g++.dg/modules/part-6_c.C
*************** eb2a1afb9a4c89e577b3c59dcae4271d  gcc/te
*** 25080,25085 ****
--- 26866,26874 ----
  ed4009acfaafc72a9c17c6bede9da165  gcc/testsuite/g++.dg/modules/part-8_a.C
  3fba23720bf7956014d4f5c1c5b9f528  gcc/testsuite/g++.dg/modules/part-8_b.C
  d46b72bf5f8745e2b9ee6e10e2abe85e  gcc/testsuite/g++.dg/modules/part-8_c.C
+ 266efd21f2fbf625f38f824321d47c11  gcc/testsuite/g++.dg/modules/part-9_a.C
+ 25846cf51b5d41974b0bfea11a256a6e  gcc/testsuite/g++.dg/modules/part-9_b.C
+ ee27c7ca863764bda9ca75f60daace16  gcc/testsuite/g++.dg/modules/part-9_c.C
  4a63ea2156774361bdb95ea0657e42a8  gcc/testsuite/g++.dg/modules/part-hdr-1_a.H
  f81067b696c43b08df9acdf613c63e43  gcc/testsuite/g++.dg/modules/part-hdr-1_b.C
  f8c7b9c77a2d78922944e4a890104ea9  gcc/testsuite/g++.dg/modules/part-hdr-1_c.C
*************** b2fb0f46e6523102943cfe6dbc9c3ed9  gcc/te
*** 25095,25100 ****
--- 26884,26904 ----
  d3641c8abf72c10ec23d46781c9d5f8a  gcc/testsuite/g++.dg/modules/partial-2_b.C
  3dd14e8c2254c8393506e24a4461ff8d  gcc/testsuite/g++.dg/modules/partial-2_c.H
  8dfb68f84283ac3fbafa6b39844969e3  gcc/testsuite/g++.dg/modules/partial-2_d.C
+ ae93dd1560d721746c59db88810d9f19  gcc/testsuite/g++.dg/modules/partial-3.C
+ 5ed6f3f19aad2cef57bebe9082ead6e6  gcc/testsuite/g++.dg/modules/partial-4_a.C
+ 4cf3edfa735739688c771b44f804ae4e  gcc/testsuite/g++.dg/modules/partial-4_b.C
+ 14058202aed4020f2a73c7de26697742  gcc/testsuite/g++.dg/modules/partial-5_a.C
+ 2dde8c6bed79840de175428d520507d7  gcc/testsuite/g++.dg/modules/partial-5_b.C
+ c0af73d2336a3d5ad3f8c4248a0a62ed  gcc/testsuite/g++.dg/modules/partial-6.h
+ 8cf763d5cff86fcaa49aa49f42994fe0  gcc/testsuite/g++.dg/modules/partial-6_a.H
+ 2b9d2d45473bbcbe117cfaafa0c29cc0  gcc/testsuite/g++.dg/modules/partial-6_b.H
+ 3e277e333e9d4d8d9984efd1224e07c6  gcc/testsuite/g++.dg/modules/partial-6_c.C
+ 772583e8ec8478d46b8914298408eb4f  gcc/testsuite/g++.dg/modules/partial-7.h
+ 76389676e30dfd9baea1facee1c76338  gcc/testsuite/g++.dg/modules/partial-7_a.C
+ 0e06abecc27bb525f46512eb0f119c6e  gcc/testsuite/g++.dg/modules/partial-7_b.C
+ 79e8587ffd09f98267eba54d1d413d9a  gcc/testsuite/g++.dg/modules/partial-7_c.C
+ 91b28374e0dcc1b056ae3f976924d231  gcc/testsuite/g++.dg/modules/permissive-error-1.C
+ 48bb134ee9b868f8ffdcdf7732bb8fee  gcc/testsuite/g++.dg/modules/permissive-error-2.C
  fbd0b1dab6ed1e2ae131e2b1eb041193  gcc/testsuite/g++.dg/modules/pmf-1.h
  27588c87bfcbced49f086af1780f7380  gcc/testsuite/g++.dg/modules/pmf-1_a.H
  f9973f82fe827543518c93e5883577cf  gcc/testsuite/g++.dg/modules/pmf-1_b.C
*************** f979d20df148ee22f4beaaca4b13ab43  gcc/te
*** 25105,25113 ****
  807404dae49679f55eec9277e3160153  gcc/testsuite/g++.dg/modules/pmp-1_b.C
  2234c7539ce1ba0ef576226e3393ce3e  gcc/testsuite/g++.dg/modules/pmp-2.C
  3a56ec9de09c0aba7fb1a5e3c762e714  gcc/testsuite/g++.dg/modules/pmp-3.C
  f015c0ff1908f1befd40f6bb952b56db  gcc/testsuite/g++.dg/modules/pr100881_a.C
  2ff43efd5d5b4f73c0b91816abf2d46e  gcc/testsuite/g++.dg/modules/pr100881_b.C
! 16afad71e1a1a8502b6e6aec951409cc  gcc/testsuite/g++.dg/modules/pr101582-1.C
  db0f88a1a0903d3b5720c3d056d72619  gcc/testsuite/g++.dg/modules/pr102576_a.H
  d63d1b5264d1459902abfe8a3c7f8963  gcc/testsuite/g++.dg/modules/pr102576_b.C
  7131d1d83ecb1f6b0a4b29dd2af3c2d0  gcc/testsuite/g++.dg/modules/pr103499_a.C
--- 26909,26920 ----
  807404dae49679f55eec9277e3160153  gcc/testsuite/g++.dg/modules/pmp-1_b.C
  2234c7539ce1ba0ef576226e3393ce3e  gcc/testsuite/g++.dg/modules/pmp-2.C
  3a56ec9de09c0aba7fb1a5e3c762e714  gcc/testsuite/g++.dg/modules/pmp-3.C
+ b098fdc9b7ab5a54598a5b710ca0a645  gcc/testsuite/g++.dg/modules/pmp-4.C
+ 4e8381ac992fb0bc6860e870bb0ae71a  gcc/testsuite/g++.dg/modules/pmp-5.C
+ 1d52def246b8b966d5ca9f203eeb441b  gcc/testsuite/g++.dg/modules/pmp-6.C
  f015c0ff1908f1befd40f6bb952b56db  gcc/testsuite/g++.dg/modules/pr100881_a.C
  2ff43efd5d5b4f73c0b91816abf2d46e  gcc/testsuite/g++.dg/modules/pr100881_b.C
! f95d684f48ff6a4b378975fde1191b26  gcc/testsuite/g++.dg/modules/pr101582-1.C
  db0f88a1a0903d3b5720c3d056d72619  gcc/testsuite/g++.dg/modules/pr102576_a.H
  d63d1b5264d1459902abfe8a3c7f8963  gcc/testsuite/g++.dg/modules/pr102576_b.C
  7131d1d83ecb1f6b0a4b29dd2af3c2d0  gcc/testsuite/g++.dg/modules/pr103499_a.C
*************** bfdd6003f0822a40b3e827ec67fc868a  gcc/te
*** 25124,25130 ****
  b178cbe194a890f4a6a1b16757fa4baf  gcc/testsuite/g++.dg/modules/pr106304_b.C
  13c31cf51702e0b82e7cd4ca1759f765  gcc/testsuite/g++.dg/modules/pr106363_a.C
  d4bc0532ad3d38a5d2f6b3437a5054df  gcc/testsuite/g++.dg/modules/pr106363_b.C
! bb0626047fc0ed25b166e49e15e90815  gcc/testsuite/g++.dg/modules/pr106761.h
  d71ad1e42d5edd10bf65dd64c81a4107  gcc/testsuite/g++.dg/modules/pr106761_a.H
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
  ce1fbbd73d685e48bf6b219484083996  gcc/testsuite/g++.dg/modules/pr106820_a.H
--- 26931,26937 ----
  b178cbe194a890f4a6a1b16757fa4baf  gcc/testsuite/g++.dg/modules/pr106304_b.C
  13c31cf51702e0b82e7cd4ca1759f765  gcc/testsuite/g++.dg/modules/pr106363_a.C
  d4bc0532ad3d38a5d2f6b3437a5054df  gcc/testsuite/g++.dg/modules/pr106363_b.C
! 9f59bd13ea44f0f40e0315d0f180716a  gcc/testsuite/g++.dg/modules/pr106761.h
  d71ad1e42d5edd10bf65dd64c81a4107  gcc/testsuite/g++.dg/modules/pr106761_a.H
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
  ce1fbbd73d685e48bf6b219484083996  gcc/testsuite/g++.dg/modules/pr106820_a.H
*************** d6c4487b2cdfe513fca59a9da2b03d10  gcc/te
*** 25136,25144 ****
--- 26943,26979 ----
  2d13920b57e09bfba57cfacc02b5548b  gcc/testsuite/g++.dg/modules/pr113580_b.C
  b0187e4110d3e1feaedea59af55274e1  gcc/testsuite/g++.dg/modules/pr114005_a.C
  9a830736ad4852377f9505b91e245a59  gcc/testsuite/g++.dg/modules/pr114005_b.C
+ 7e0d36f253cdcbe87b58f352b661186b  gcc/testsuite/g++.dg/modules/pr114630.h
+ 81b29fdfc0bb6c449e75a35975b88265  gcc/testsuite/g++.dg/modules/pr114630_a.C
+ f1be59ab96fc18a8784df0f9ae0c566c  gcc/testsuite/g++.dg/modules/pr114630_b.C
+ ffdbcc6a19c48b978e809b2be2b8c6f2  gcc/testsuite/g++.dg/modules/pr114630_c.C
  f57619b6cf6236682565b0678e432d70  gcc/testsuite/g++.dg/modules/pr114856.h
  124cec581b39e9969cbadf84949dc258  gcc/testsuite/g++.dg/modules/pr114856_a.H
  08602645658476bcd9c3647365f92356  gcc/testsuite/g++.dg/modules/pr114856_b.C
+ a99749491ca87a0bed2366741598ba97  gcc/testsuite/g++.dg/modules/pr114954.C
+ 09fc428362cc79eb94cc4dfe6d4b338b  gcc/testsuite/g++.dg/modules/pr115020_a.C
+ 0be5f71dc738d0d5ec9f6e80fface6d9  gcc/testsuite/g++.dg/modules/pr115020_b.C
+ d87c2bb94ca8c26f7432b8023dfe0590  gcc/testsuite/g++.dg/modules/pr115062_a.H
+ b0539cc59517cbf45c94b8d349a8e9be  gcc/testsuite/g++.dg/modules/pr115062_b.H
+ 0e9d5bd6a14ae8a2f081861d894d8048  gcc/testsuite/g++.dg/modules/pr115062_c.C
+ 6b2767ddf5e3de42ae4bac7b11f9b9ad  gcc/testsuite/g++.dg/modules/pr118582_a.H
+ 93de1e69fec2105b17833dd70f336bf3  gcc/testsuite/g++.dg/modules/pr118582_b.H
+ 27b4ace6e430585d989ca1fb0a6ebbf9  gcc/testsuite/g++.dg/modules/pr118582_c.H
+ 26296a8e06a5ba220aea83970c225771  gcc/testsuite/g++.dg/modules/pr118807.C
+ 3fb3ba5c7a2e7d6e2aac29e21f5c983c  gcc/testsuite/g++.dg/modules/pr118846_a.C
+ 5cb9357080f1aebad3a91b728daf6466  gcc/testsuite/g++.dg/modules/pr118846_b.C
+ bbf979f881cc042b389c359b03190fe5  gcc/testsuite/g++.dg/modules/pr118920.h
+ 373b7796d0fc617afb3250aaba566091  gcc/testsuite/g++.dg/modules/pr118920_a.H
+ 2ead8c1d0104ddd1a970e1157a49fb98  gcc/testsuite/g++.dg/modules/pr118920_b.H
+ 25d5e1c20f67c08cfdb51f73820201d4  gcc/testsuite/g++.dg/modules/pr118920_c.C
+ de0d91ebfdffde39e44d6d5ef3dcf298  gcc/testsuite/g++.dg/modules/pr119076-1_a.H
+ a18bc38ad28442fe4c3c76368f6900e5  gcc/testsuite/g++.dg/modules/pr119076-1_b.C
+ 4357270ad6457a2e915f37c97433bb8f  gcc/testsuite/g++.dg/modules/pr119076-2_a.H
+ f73bc7f106ebdb92b08807565655a1b9  gcc/testsuite/g++.dg/modules/pr119076-2_b.C
+ d684f71f3f20bed75ccc9aecab05ecdb  gcc/testsuite/g++.dg/modules/pr119102_a.H
+ af1e9e3b0cc46e0d597048ea5dda7431  gcc/testsuite/g++.dg/modules/pr119102_b.C
+ d1e2592670bcdeda87ffce22aa27ec30  gcc/testsuite/g++.dg/modules/pr119608_a.C
+ 42f7d0ad39e2bd3aa2ca1c1f2e1b0410  gcc/testsuite/g++.dg/modules/pr119608_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
*************** eb2e34a90bfcd64a24bb7caeac5dab34  gcc/te
*** 25158,25170 ****
  869fc90d53adfa09653d469b08728a3b  gcc/testsuite/g++.dg/modules/pr98770_a.C
  064b887ff00dbba6de1c8842987607c0  gcc/testsuite/g++.dg/modules/pr98770_b.C
  eef775ab5fb3f5f47aeb09bf155720ca  gcc/testsuite/g++.dg/modules/pr98843_a.C
! 5a474079fb15623d60d2da66d7a004f1  gcc/testsuite/g++.dg/modules/pr98843_b.H
  dcba3385a9d6327598512baf6ae5d4b5  gcc/testsuite/g++.dg/modules/pr98843_c.C
  ba54387ee46c4fb19a3ab9a4844cfd61  gcc/testsuite/g++.dg/modules/pr98944_a.C
  ffae0410baa0cf1f144b964387bfbcfe  gcc/testsuite/g++.dg/modules/pr98944_b.C
  701cfcc8c357aa094f34aa029490f60d  gcc/testsuite/g++.dg/modules/pr98944_c.C
  a3323ba22bbfa9772b24db538aeb6eed  gcc/testsuite/g++.dg/modules/pr98944_d.C
! 6138ea4be8c21ded43ebed9e16839cee  gcc/testsuite/g++.dg/modules/pr99023_a.X
  b00fa9b712233a2723b7b98c8afa7030  gcc/testsuite/g++.dg/modules/pr99023_b.X
  fa6f37da884582c7c5b2c64f3ff374c1  gcc/testsuite/g++.dg/modules/pr99039_a.C
  a44f9dc7dfc41fee43a04d3fce2ab510  gcc/testsuite/g++.dg/modules/pr99039_b.C
--- 26993,27007 ----
  869fc90d53adfa09653d469b08728a3b  gcc/testsuite/g++.dg/modules/pr98770_a.C
  064b887ff00dbba6de1c8842987607c0  gcc/testsuite/g++.dg/modules/pr98770_b.C
  eef775ab5fb3f5f47aeb09bf155720ca  gcc/testsuite/g++.dg/modules/pr98843_a.C
! 4605824ccf3cedff32bc4baa54b25fc1  gcc/testsuite/g++.dg/modules/pr98843_b.H
  dcba3385a9d6327598512baf6ae5d4b5  gcc/testsuite/g++.dg/modules/pr98843_c.C
+ 5253fd6d14cc0a40d4567e5c44c02e8d  gcc/testsuite/g++.dg/modules/pr98893_a.H
+ 314c64499b20688aa41527f17a5391af  gcc/testsuite/g++.dg/modules/pr98893_b.C
  ba54387ee46c4fb19a3ab9a4844cfd61  gcc/testsuite/g++.dg/modules/pr98944_a.C
  ffae0410baa0cf1f144b964387bfbcfe  gcc/testsuite/g++.dg/modules/pr98944_b.C
  701cfcc8c357aa094f34aa029490f60d  gcc/testsuite/g++.dg/modules/pr98944_c.C
  a3323ba22bbfa9772b24db538aeb6eed  gcc/testsuite/g++.dg/modules/pr98944_d.C
! fa79d328754cb13590cd6ed47a214f4d  gcc/testsuite/g++.dg/modules/pr99023_a.X
  b00fa9b712233a2723b7b98c8afa7030  gcc/testsuite/g++.dg/modules/pr99023_b.X
  fa6f37da884582c7c5b2c64f3ff374c1  gcc/testsuite/g++.dg/modules/pr99039_a.C
  a44f9dc7dfc41fee43a04d3fce2ab510  gcc/testsuite/g++.dg/modules/pr99039_b.C
*************** d3922fc29d0463ecc831e46bc974d5b3  gcc/te
*** 25173,25186 ****
  5356f9e2ae897594a6208b1434be2f97  gcc/testsuite/g++.dg/modules/pr99040_c.C
  35199cd634cc47ab3b3b8eab2c0d35b0  gcc/testsuite/g++.dg/modules/pr99040_d.C
  179c3c1db04e0b42e76277c62e5f3932  gcc/testsuite/g++.dg/modules/pr99050_a.H
! b7e1d9ff3c0fc1cb573ab8564f4c775d  gcc/testsuite/g++.dg/modules/pr99050_b.C
  c6bc457ee1bf928a28da74304e251a1e  gcc/testsuite/g++.dg/modules/pr99071_a.H
  98ad7aa1471ca9b20c8c4b0d5a818f49  gcc/testsuite/g++.dg/modules/pr99071_b.H
  3c266365d8c07b76c7d1dd8ca292ac37  gcc/testsuite/g++.dg/modules/pr99072.H
  08c41f579dbe003c5b812c3a9ec75877  gcc/testsuite/g++.dg/modules/pr99153_a.H
  558328a4bbfde4537ee9b51c8eff91a2  gcc/testsuite/g++.dg/modules/pr99153_b.H
! 9aa6a2b7ce69815ae65132a4db04c6df  gcc/testsuite/g++.dg/modules/pr99166_a.X
! f00811cd6f66f9ba8824caabcce7d87f  gcc/testsuite/g++.dg/modules/pr99166_b.C
  3b1682f83f9f4ee5ae2514c9275174ce  gcc/testsuite/g++.dg/modules/pr99166_c.C
  1e04c4a89d2ebc9776d85bc1a364e425  gcc/testsuite/g++.dg/modules/pr99166_d.C
  05c8debf789c168791df08687c30468a  gcc/testsuite/g++.dg/modules/pr99170-1_a.H
--- 27010,27023 ----
  5356f9e2ae897594a6208b1434be2f97  gcc/testsuite/g++.dg/modules/pr99040_c.C
  35199cd634cc47ab3b3b8eab2c0d35b0  gcc/testsuite/g++.dg/modules/pr99040_d.C
  179c3c1db04e0b42e76277c62e5f3932  gcc/testsuite/g++.dg/modules/pr99050_a.H
! f0840ce249cf1d9e2dba5db04070c44c  gcc/testsuite/g++.dg/modules/pr99050_b.C
  c6bc457ee1bf928a28da74304e251a1e  gcc/testsuite/g++.dg/modules/pr99071_a.H
  98ad7aa1471ca9b20c8c4b0d5a818f49  gcc/testsuite/g++.dg/modules/pr99071_b.H
  3c266365d8c07b76c7d1dd8ca292ac37  gcc/testsuite/g++.dg/modules/pr99072.H
  08c41f579dbe003c5b812c3a9ec75877  gcc/testsuite/g++.dg/modules/pr99153_a.H
  558328a4bbfde4537ee9b51c8eff91a2  gcc/testsuite/g++.dg/modules/pr99153_b.H
! 8e6959a8410a8be76abf2739402d89be  gcc/testsuite/g++.dg/modules/pr99166_a.X
! e98b218270c1bc92185f977d138ffdc8  gcc/testsuite/g++.dg/modules/pr99166_b.C
  3b1682f83f9f4ee5ae2514c9275174ce  gcc/testsuite/g++.dg/modules/pr99166_c.C
  1e04c4a89d2ebc9776d85bc1a364e425  gcc/testsuite/g++.dg/modules/pr99166_d.C
  05c8debf789c168791df08687c30468a  gcc/testsuite/g++.dg/modules/pr99170-1_a.H
*************** b203d4c40a623398d42b8317bb02be40  gcc/te
*** 25193,25199 ****
  fcd1d8752bf031b8281ba50f1df03921  gcc/testsuite/g++.dg/modules/pr99174-1_a.C
  f6ff77ccf9f6f071738a6e9b57b6c50c  gcc/testsuite/g++.dg/modules/pr99174-1_b.C
  c72f8c02b8850ae0ab3c120cd41906d9  gcc/testsuite/g++.dg/modules/pr99174-1_c.C
! 65fd975813cd4e8941155001c2700bf0  gcc/testsuite/g++.dg/modules/pr99174.H
  9bd074c360bd29524e20b4eaa803a41f  gcc/testsuite/g++.dg/modules/pr99187.C
  9f93a8608e38c668198868d8ea01a717  gcc/testsuite/g++.dg/modules/pr99208_a.C
  bd48a321958cd7a20645f65f2d7dc5bb  gcc/testsuite/g++.dg/modules/pr99208_b.C
--- 27030,27036 ----
  fcd1d8752bf031b8281ba50f1df03921  gcc/testsuite/g++.dg/modules/pr99174-1_a.C
  f6ff77ccf9f6f071738a6e9b57b6c50c  gcc/testsuite/g++.dg/modules/pr99174-1_b.C
  c72f8c02b8850ae0ab3c120cd41906d9  gcc/testsuite/g++.dg/modules/pr99174-1_c.C
! 7b4190744054d7227b920ab111bb7e2f  gcc/testsuite/g++.dg/modules/pr99174.H
  9bd074c360bd29524e20b4eaa803a41f  gcc/testsuite/g++.dg/modules/pr99187.C
  9f93a8608e38c668198868d8ea01a717  gcc/testsuite/g++.dg/modules/pr99208_a.C
  bd48a321958cd7a20645f65f2d7dc5bb  gcc/testsuite/g++.dg/modules/pr99208_b.C
*************** ce7cd849a44e48fa8e8bd6c2d9e3e67d  gcc/te
*** 25264,25272 ****
  47ee279973d36a0112cfffaf385ea5c1  gcc/testsuite/g++.dg/modules/pr99425-1_a.H
  0707226aa7dbd8302f7b69ba303ac4ec  gcc/testsuite/g++.dg/modules/pr99425-1_b.H
  de4c9079b3ad276f569faf6a0394e836  gcc/testsuite/g++.dg/modules/pr99425-1_c.C
! d4766744800e02903dd697bb7711d230  gcc/testsuite/g++.dg/modules/pr99425-2_a.X
! d28b40c4a9fe5f71617519108d0959da  gcc/testsuite/g++.dg/modules/pr99425-2_b.X
! 1dd229997f3c4f33c4b9ccf63293ea5f  gcc/testsuite/g++.dg/modules/pr99468.H
  525fd39d717ca8cbe85d5f0646b1f0fe  gcc/testsuite/g++.dg/modules/pr99480_a.H
  150436f2c80061db0e2f96239df8bcf7  gcc/testsuite/g++.dg/modules/pr99480_b.H
  75b0e6da75d4ada78ac3a76e0da8440c  gcc/testsuite/g++.dg/modules/pr99496_a.H
--- 27101,27109 ----
  47ee279973d36a0112cfffaf385ea5c1  gcc/testsuite/g++.dg/modules/pr99425-1_a.H
  0707226aa7dbd8302f7b69ba303ac4ec  gcc/testsuite/g++.dg/modules/pr99425-1_b.H
  de4c9079b3ad276f569faf6a0394e836  gcc/testsuite/g++.dg/modules/pr99425-1_c.C
! 0b08ce4ae701f7e6398980ae80060e73  gcc/testsuite/g++.dg/modules/pr99425-2_a.X
! 7e500595922140ec9687c9836c48a4ba  gcc/testsuite/g++.dg/modules/pr99425-2_b.X
! 0913e925f24d9744bc19315b59ce87c3  gcc/testsuite/g++.dg/modules/pr99468.H
  525fd39d717ca8cbe85d5f0646b1f0fe  gcc/testsuite/g++.dg/modules/pr99480_a.H
  150436f2c80061db0e2f96239df8bcf7  gcc/testsuite/g++.dg/modules/pr99480_b.H
  75b0e6da75d4ada78ac3a76e0da8440c  gcc/testsuite/g++.dg/modules/pr99496_a.H
*************** b47420b7ee24177c7d40855900ab6d71  gcc/te
*** 25275,25281 ****
  1d7633fa59fefa7eb2756c186fdb9112  gcc/testsuite/g++.dg/modules/pr99528_a.H
  e443dec27e206b005f0646d1e22e3875  gcc/testsuite/g++.dg/modules/pr99528_b.H
  8ff032db27c049d7b01ae81e7d746c4c  gcc/testsuite/g++.dg/modules/pr99528_c.C
! 3270e81c8805ada5e5597b402fd0be41  gcc/testsuite/g++.dg/modules/pragma-1_a.H
  c2a457efea6d0cdb629c5997577c1bec  gcc/testsuite/g++.dg/modules/pragma-1_b.C
  d4bc751ae09414f1a933d682c0a1d50b  gcc/testsuite/g++.dg/modules/predef-1.C
  9e88b85c21c1edb3dcbb16d96a3b463a  gcc/testsuite/g++.dg/modules/predef-1.h
--- 27112,27118 ----
  1d7633fa59fefa7eb2756c186fdb9112  gcc/testsuite/g++.dg/modules/pr99528_a.H
  e443dec27e206b005f0646d1e22e3875  gcc/testsuite/g++.dg/modules/pr99528_b.H
  8ff032db27c049d7b01ae81e7d746c4c  gcc/testsuite/g++.dg/modules/pr99528_c.C
! b25420345cbc3bf37c74363cefa38f45  gcc/testsuite/g++.dg/modules/pragma-1_a.H
  c2a457efea6d0cdb629c5997577c1bec  gcc/testsuite/g++.dg/modules/pragma-1_b.C
  d4bc751ae09414f1a933d682c0a1d50b  gcc/testsuite/g++.dg/modules/predef-1.C
  9e88b85c21c1edb3dcbb16d96a3b463a  gcc/testsuite/g++.dg/modules/predef-1.h
*************** c6e1edb52b5891ae1f08bf6d3cf18168  gcc/te
*** 25289,25295 ****
  9c1772c0b13c48601f0ed1233cc497f1  gcc/testsuite/g++.dg/modules/printf-1_b.C
  5cd56fd1bbc5b89cb15ebc8d548cfaa0  gcc/testsuite/g++.dg/modules/reparent-1_a.C
  da0cfcb5ac1aec80b1194aff6f469086  gcc/testsuite/g++.dg/modules/reparent-1_b.C
! 4a1010d46cad7859a223396bd885c740  gcc/testsuite/g++.dg/modules/reparent-1_c.C
  3d89e9cad1a7ef5ee12611c1eda68591  gcc/testsuite/g++.dg/modules/scc-1.C
  381497aeb07dcdcf0ac1dff8bae080e4  gcc/testsuite/g++.dg/modules/scc-2.C
  1ea36c9c27e88f193688e35c7e951ff1  gcc/testsuite/g++.dg/modules/shadow-1_a.C
--- 27126,27132 ----
  9c1772c0b13c48601f0ed1233cc497f1  gcc/testsuite/g++.dg/modules/printf-1_b.C
  5cd56fd1bbc5b89cb15ebc8d548cfaa0  gcc/testsuite/g++.dg/modules/reparent-1_a.C
  da0cfcb5ac1aec80b1194aff6f469086  gcc/testsuite/g++.dg/modules/reparent-1_b.C
! 80377818c6b4a03409e16213b4ffc90a  gcc/testsuite/g++.dg/modules/reparent-1_c.C
  3d89e9cad1a7ef5ee12611c1eda68591  gcc/testsuite/g++.dg/modules/scc-1.C
  381497aeb07dcdcf0ac1dff8bae080e4  gcc/testsuite/g++.dg/modules/scc-2.C
  1ea36c9c27e88f193688e35c7e951ff1  gcc/testsuite/g++.dg/modules/shadow-1_a.C
*************** c080c59625958504bf04e1d791f2e185  gcc/te
*** 25303,25308 ****
--- 27140,27147 ----
  ccd007366f5705a31d52fe9c5bab9141  gcc/testsuite/g++.dg/modules/static-1_c.C
  d222ec618defd74eb51edcc421e095c8  gcc/testsuite/g++.dg/modules/static-2_a.H
  3f8e91a21c5b2617780c3d92a627f9b2  gcc/testsuite/g++.dg/modules/static-2_b.C
+ de3d196a044520320f82cd9ad0c4fc23  gcc/testsuite/g++.dg/modules/static-3_a.H
+ ea2a049a487174487c03be388f8dff86  gcc/testsuite/g++.dg/modules/static-3_b.C
  ead144c6dd6a554943704f3fcabf2981  gcc/testsuite/g++.dg/modules/std-1_a.C
  44eb33e5fba5df9a2f785daa5a7a97df  gcc/testsuite/g++.dg/modules/std-1_b.C
  f2f914e81d0e558e16d8c2b531a02840  gcc/testsuite/g++.dg/modules/std-subst-2.C
*************** bec32861cc98aa5a0e141a075afc4d0b  gcc/te
*** 25310,25322 ****
  340ce8cf3bf0e1640f62280dab48c289  gcc/testsuite/g++.dg/modules/std-subst-4_a.C
  1e084f664fd944fcee6a6a2215258bf7  gcc/testsuite/g++.dg/modules/std-subst-4_b.C
  6fdedd7882608c63b53359f6e630bebc  gcc/testsuite/g++.dg/modules/std-subst-4_c.C
! 4a699eee76dc46f6a20c7f5f5797357c  gcc/testsuite/g++.dg/modules/stdio-1_a.H
  37612669466de5cfca7ce69e87c24b51  gcc/testsuite/g++.dg/modules/stdio-1_b.C
  ca9003bc2800bcf7617b612f1b9ccade  gcc/testsuite/g++.dg/modules/stdns_a.C
  d61afed1706378021acddadc6fd9432c  gcc/testsuite/g++.dg/modules/stdns_b.C
! 29f650af8bf97d32458f05b06959b26d  gcc/testsuite/g++.dg/modules/string-1_a.H
! ef28b2634fdf892dda62a1cb87d77d5b  gcc/testsuite/g++.dg/modules/string-1_b.C
! 70a29e6bbd2f4f11f62cb744ff25ea8f  gcc/testsuite/g++.dg/modules/string-view1.C
  7875dbb1e2099c8c43b6076bd5e803d8  gcc/testsuite/g++.dg/modules/string-view2.C
  807dee9ffcea2ce4eaf5377a88b1a0d1  gcc/testsuite/g++.dg/modules/sv-1.h
  ccd47d1ef1d5748e9fa9556e5be38e88  gcc/testsuite/g++.dg/modules/sv-1_a.C
--- 27149,27161 ----
  340ce8cf3bf0e1640f62280dab48c289  gcc/testsuite/g++.dg/modules/std-subst-4_a.C
  1e084f664fd944fcee6a6a2215258bf7  gcc/testsuite/g++.dg/modules/std-subst-4_b.C
  6fdedd7882608c63b53359f6e630bebc  gcc/testsuite/g++.dg/modules/std-subst-4_c.C
! 40fea806ba448a7ef162e45d1932b9b2  gcc/testsuite/g++.dg/modules/stdio-1_a.H
  37612669466de5cfca7ce69e87c24b51  gcc/testsuite/g++.dg/modules/stdio-1_b.C
  ca9003bc2800bcf7617b612f1b9ccade  gcc/testsuite/g++.dg/modules/stdns_a.C
  d61afed1706378021acddadc6fd9432c  gcc/testsuite/g++.dg/modules/stdns_b.C
! 9c6b1f71318242e7ff7b6922aa1344af  gcc/testsuite/g++.dg/modules/string-1_a.H
! 1f8fd7882b0a3287e17f0aa6827bdbe3  gcc/testsuite/g++.dg/modules/string-1_b.C
! c229ee86c6d327073f438811c3667e8d  gcc/testsuite/g++.dg/modules/string-view1.C
  7875dbb1e2099c8c43b6076bd5e803d8  gcc/testsuite/g++.dg/modules/string-view2.C
  807dee9ffcea2ce4eaf5377a88b1a0d1  gcc/testsuite/g++.dg/modules/sv-1.h
  ccd47d1ef1d5748e9fa9556e5be38e88  gcc/testsuite/g++.dg/modules/sv-1_a.C
*************** bcb4b8223c944a14f1f870d40de0d7c5  gcc/te
*** 25376,25393 ****
  68312439b323001d7c4e11ee418456ec  gcc/testsuite/g++.dg/modules/tmpl-part-req-2_b.C
  4731c735e39a1345013d1243efba68a0  gcc/testsuite/g++.dg/modules/tname-spec-1_a.H
  e4105c5cabf673c67794d0aaca132595  gcc/testsuite/g++.dg/modules/tname-spec-1_b.C
! c79b3ebf5076ccdcf99975ff06d0b3f9  gcc/testsuite/g++.dg/modules/token-1.C
  b73a077a0ab38a01c81ddb318de1bfe3  gcc/testsuite/g++.dg/modules/token-2_a.C
  3a031f8e927948f37292e40a3900b922  gcc/testsuite/g++.dg/modules/token-2_b.C
! 26f2981a4a196c42d43d44e594789469  gcc/testsuite/g++.dg/modules/token-3.C
! 49975dbba17cade48151fd60bf99176f  gcc/testsuite/g++.dg/modules/token-4.C
! 9608f5db1e481a09223505097802644d  gcc/testsuite/g++.dg/modules/token-5.C
  e94085704a235d4ed1f290404d2dd7e2  gcc/testsuite/g++.dg/modules/tpl-alias-1.h
  3e9f055ddbe0631b95e360bc056b6c09  gcc/testsuite/g++.dg/modules/tpl-alias-1_a.H
  9b18f4bfd07781fe50356e9a44c31ca2  gcc/testsuite/g++.dg/modules/tpl-alias-1_b.C
  b80595610952ed1f147e0e18bd0f9820  gcc/testsuite/g++.dg/modules/tpl-alias-2_a.H
  8811f1465e89a7e3068fd7e1e0fefcb2  gcc/testsuite/g++.dg/modules/tpl-alias-2_b.C
! 65517e84ed3e59784e4372c3dc247bcd  gcc/testsuite/g++.dg/modules/tpl-ary-1.h
  5fa04fc801d430e5dbd1dab1459cca84  gcc/testsuite/g++.dg/modules/tpl-ary-1_a.H
  d3a54a49a1ba81d237d4bf20e66aac82  gcc/testsuite/g++.dg/modules/tpl-ary-1_b.C
  568c1cd88ad3a69ad031b2c7fd81a128  gcc/testsuite/g++.dg/modules/tpl-extern-fn-1_a.H
--- 27215,27243 ----
  68312439b323001d7c4e11ee418456ec  gcc/testsuite/g++.dg/modules/tmpl-part-req-2_b.C
  4731c735e39a1345013d1243efba68a0  gcc/testsuite/g++.dg/modules/tname-spec-1_a.H
  e4105c5cabf673c67794d0aaca132595  gcc/testsuite/g++.dg/modules/tname-spec-1_b.C
! 046d193b4906b3c7dbdf9f4a47911b77  gcc/testsuite/g++.dg/modules/token-1.C
! 2d074f305a3ee16e17175cbea4b89d75  gcc/testsuite/g++.dg/modules/token-10.C
! 6b8c9433692a0ea2b2c6d78372b95dd6  gcc/testsuite/g++.dg/modules/token-11.C
! 1297547b76d660ac0631ebd2c5eec052  gcc/testsuite/g++.dg/modules/token-12.C
! 6d5e7365bd182a307669a1e1f06f3d92  gcc/testsuite/g++.dg/modules/token-13.C
! 4bcf40f25bf3f98684d357efab099058  gcc/testsuite/g++.dg/modules/token-14.C
! 834e78f465699c26859e57b30695dec0  gcc/testsuite/g++.dg/modules/token-15.C
! 5f264552a17b1804405fe638d3898d0c  gcc/testsuite/g++.dg/modules/token-16.C
  b73a077a0ab38a01c81ddb318de1bfe3  gcc/testsuite/g++.dg/modules/token-2_a.C
  3a031f8e927948f37292e40a3900b922  gcc/testsuite/g++.dg/modules/token-2_b.C
! 4ff32ddf56e33f7a59707d1cae721b5b  gcc/testsuite/g++.dg/modules/token-3.C
! 5091bb25142c9cdb9fecd0a73c1d7cb7  gcc/testsuite/g++.dg/modules/token-4.C
! 95fb9e700b3068366a7bf4a066ebb7a8  gcc/testsuite/g++.dg/modules/token-5.C
! 747c1ec1e3a4ee22e282a5332caeed6d  gcc/testsuite/g++.dg/modules/token-6.C
! 22ddc46a17b435595df0dd8a294ef6fc  gcc/testsuite/g++.dg/modules/token-7.C
! aca38097f210e9b39d7f2714175e41eb  gcc/testsuite/g++.dg/modules/token-8.C
! 99793db46ddd6042751a05ad01791b56  gcc/testsuite/g++.dg/modules/token-9.C
  e94085704a235d4ed1f290404d2dd7e2  gcc/testsuite/g++.dg/modules/tpl-alias-1.h
  3e9f055ddbe0631b95e360bc056b6c09  gcc/testsuite/g++.dg/modules/tpl-alias-1_a.H
  9b18f4bfd07781fe50356e9a44c31ca2  gcc/testsuite/g++.dg/modules/tpl-alias-1_b.C
  b80595610952ed1f147e0e18bd0f9820  gcc/testsuite/g++.dg/modules/tpl-alias-2_a.H
  8811f1465e89a7e3068fd7e1e0fefcb2  gcc/testsuite/g++.dg/modules/tpl-alias-2_b.C
! 8264697089e7cf400e2f33e8472faaa1  gcc/testsuite/g++.dg/modules/tpl-ary-1.h
  5fa04fc801d430e5dbd1dab1459cca84  gcc/testsuite/g++.dg/modules/tpl-ary-1_a.H
  d3a54a49a1ba81d237d4bf20e66aac82  gcc/testsuite/g++.dg/modules/tpl-ary-1_b.C
  568c1cd88ad3a69ad031b2c7fd81a128  gcc/testsuite/g++.dg/modules/tpl-extern-fn-1_a.H
*************** ee50caa400b6da974709c6d8df14e1c0  gcc/te
*** 25410,25422 ****
  12285f2a46a9a97602cf88588524a9ff  gcc/testsuite/g++.dg/modules/tpl-friend-13_b.C
  71b12aecc2f5d176835d335229b4c504  gcc/testsuite/g++.dg/modules/tpl-friend-13_c.C
  ec8de7ae36c08956779d153d94da8dc9  gcc/testsuite/g++.dg/modules/tpl-friend-13_d.C
! 7cf58fdb49263ed4e5732aa0f3d57a5f  gcc/testsuite/g++.dg/modules/tpl-friend-13_e.C
  8d3b112ff5746b1c57a0328cea6a8d0b  gcc/testsuite/g++.dg/modules/tpl-friend-13_f.C
  85522460ac4bbfb739bea6c65c9970d4  gcc/testsuite/g++.dg/modules/tpl-friend-13_g.C
  0f94156fffb1bdeb8c18af0e7eebb9ce  gcc/testsuite/g++.dg/modules/tpl-friend-14_a.C
  35a88eca66b8ee30475bb7d43148f37a  gcc/testsuite/g++.dg/modules/tpl-friend-14_b.C
  dbd764c2ec8519f9d0a390ec0d7a9f9f  gcc/testsuite/g++.dg/modules/tpl-friend-14_c.C
  0cdd3d391be55218f2dd3ce463fffd08  gcc/testsuite/g++.dg/modules/tpl-friend-14_d.C
  051a2753ec2e8d615e18875ab2746fa8  gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
  2d9be0b173bceba0cbfd5a1ee4909f4c  gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C
  d36e0a1f34b1d7f2cacd00844d768335  gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
--- 27260,27281 ----
  12285f2a46a9a97602cf88588524a9ff  gcc/testsuite/g++.dg/modules/tpl-friend-13_b.C
  71b12aecc2f5d176835d335229b4c504  gcc/testsuite/g++.dg/modules/tpl-friend-13_c.C
  ec8de7ae36c08956779d153d94da8dc9  gcc/testsuite/g++.dg/modules/tpl-friend-13_d.C
! b7aa4809e6e4df6cf42f07fd1678d631  gcc/testsuite/g++.dg/modules/tpl-friend-13_e.C
  8d3b112ff5746b1c57a0328cea6a8d0b  gcc/testsuite/g++.dg/modules/tpl-friend-13_f.C
  85522460ac4bbfb739bea6c65c9970d4  gcc/testsuite/g++.dg/modules/tpl-friend-13_g.C
  0f94156fffb1bdeb8c18af0e7eebb9ce  gcc/testsuite/g++.dg/modules/tpl-friend-14_a.C
  35a88eca66b8ee30475bb7d43148f37a  gcc/testsuite/g++.dg/modules/tpl-friend-14_b.C
  dbd764c2ec8519f9d0a390ec0d7a9f9f  gcc/testsuite/g++.dg/modules/tpl-friend-14_c.C
  0cdd3d391be55218f2dd3ce463fffd08  gcc/testsuite/g++.dg/modules/tpl-friend-14_d.C
+ 4d362b8d7209ae0c95b84846088ace6e  gcc/testsuite/g++.dg/modules/tpl-friend-15.h
+ c27a26056ff907258a413952cfd16ab4  gcc/testsuite/g++.dg/modules/tpl-friend-15_a.C
+ 0c5b40a3fe4ff5e375c55fe33c4b1a2e  gcc/testsuite/g++.dg/modules/tpl-friend-15_b.C
+ 625ac52751a772b5a15a31f371e17c2d  gcc/testsuite/g++.dg/modules/tpl-friend-15_c.C
+ 8e5841a2c4114125fe5cfb929cc13c32  gcc/testsuite/g++.dg/modules/tpl-friend-16_a.C
+ 10076866281c7c03157182c178265917  gcc/testsuite/g++.dg/modules/tpl-friend-16_b.C
+ 20c5cd743f4dc113147373aaeba0bb49  gcc/testsuite/g++.dg/modules/tpl-friend-17.h
+ 90203c603769659686b7cd82d29441b2  gcc/testsuite/g++.dg/modules/tpl-friend-17_a.C
+ a77c891669f0a055187ee6fa412c556b  gcc/testsuite/g++.dg/modules/tpl-friend-17_b.C
  051a2753ec2e8d615e18875ab2746fa8  gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
  2d9be0b173bceba0cbfd5a1ee4909f4c  gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C
  d36e0a1f34b1d7f2cacd00844d768335  gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
*************** c3a597a86ab8aea976e73b9fb71e8904  gcc/te
*** 25442,25447 ****
--- 27301,27308 ----
  bfcdf70f7788a8dca2494d7d8d98cf17  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1_d.C
  2f2e36fe2c5786eb40d564742c4b2b2d  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1_e.C
  29059418af14e2e24bbe106c907ce051  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1_f.C
+ 3817a65b18e7d78a32a0412318722bef  gcc/testsuite/g++.dg/modules/tpl-nttp-1_a.C
+ ba5f93c702c55020390e3cdd4e0009b1  gcc/testsuite/g++.dg/modules/tpl-nttp-1_b.C
  a2ef21998bce68180a4877e9083a344b  gcc/testsuite/g++.dg/modules/tpl-spec-1_a.C
  a27985b4d2c331b6fd3664ba0db91db0  gcc/testsuite/g++.dg/modules/tpl-spec-1_b.C
  fca545a9a5246c83ffa778552ee9c057  gcc/testsuite/g++.dg/modules/tpl-spec-2_a.C
*************** fca545a9a5246c83ffa778552ee9c057  gcc/te
*** 25449,25464 ****
  5393afd28f9dc22b5680b318763bc052  gcc/testsuite/g++.dg/modules/tpl-spec-2_c.C
  fae4c4164e213525bbfe21c8f21b0935  gcc/testsuite/g++.dg/modules/tpl-spec-2_d.C
  359406cd3ddc352ad7ebb3359e4438dc  gcc/testsuite/g++.dg/modules/tpl-spec-3_a.C
! 0f7ebd9f663a5f2653614fca8ecc80b7  gcc/testsuite/g++.dg/modules/tpl-spec-3_b.C
  0b779eb3f6cd92dc02ef75401fecfcea  gcc/testsuite/g++.dg/modules/tpl-spec-4_a.C
! bf06ee8fbede92aacd5ecf4a5c769327  gcc/testsuite/g++.dg/modules/tpl-spec-4_b.C
  438281eba29eb7b032b6d0ad195492b6  gcc/testsuite/g++.dg/modules/tpl-spec-5_a.C
! 294267a65afa0341d609ba402ab7898b  gcc/testsuite/g++.dg/modules/tpl-spec-5_b.C
  ba47118b706b0830fd726f1ab7253614  gcc/testsuite/g++.dg/modules/tpl-spec-6_a.C
  ad09111c5e018f53c8a715b8bdcfb7ad  gcc/testsuite/g++.dg/modules/tpl-spec-6_b.C
  bd4d984a60145ba6156e8fc50d4f5ed0  gcc/testsuite/g++.dg/modules/tpl-spec-7.C
  f0cc5cf43618d482e8ca98a94e909fbb  gcc/testsuite/g++.dg/modules/tpl-spec-8_a.H
  d8cb88d2afe20155da288978d93ad470  gcc/testsuite/g++.dg/modules/tpl-spec-8_b.C
  e98a12b4ae46870b0643fa1223fdc3b4  gcc/testsuite/g++.dg/modules/tpl-tpl-friend-1_a.C
  3dd3da204a400133a64f0d5961a045af  gcc/testsuite/g++.dg/modules/tpl-tpl-friend-1_b.C
  cc129c773de8f392f991d9083e48611b  gcc/testsuite/g++.dg/modules/tpl-tpl-mem-1_a.C
--- 27310,27328 ----
  5393afd28f9dc22b5680b318763bc052  gcc/testsuite/g++.dg/modules/tpl-spec-2_c.C
  fae4c4164e213525bbfe21c8f21b0935  gcc/testsuite/g++.dg/modules/tpl-spec-2_d.C
  359406cd3ddc352ad7ebb3359e4438dc  gcc/testsuite/g++.dg/modules/tpl-spec-3_a.C
! 2af99f660160ee7a91ccaed1956be9fd  gcc/testsuite/g++.dg/modules/tpl-spec-3_b.C
  0b779eb3f6cd92dc02ef75401fecfcea  gcc/testsuite/g++.dg/modules/tpl-spec-4_a.C
! cb5f4185b200341a2820f5a232a642e1  gcc/testsuite/g++.dg/modules/tpl-spec-4_b.C
  438281eba29eb7b032b6d0ad195492b6  gcc/testsuite/g++.dg/modules/tpl-spec-5_a.C
! 751d4dc10aeabe75576ad8b37b52420b  gcc/testsuite/g++.dg/modules/tpl-spec-5_b.C
  ba47118b706b0830fd726f1ab7253614  gcc/testsuite/g++.dg/modules/tpl-spec-6_a.C
  ad09111c5e018f53c8a715b8bdcfb7ad  gcc/testsuite/g++.dg/modules/tpl-spec-6_b.C
  bd4d984a60145ba6156e8fc50d4f5ed0  gcc/testsuite/g++.dg/modules/tpl-spec-7.C
  f0cc5cf43618d482e8ca98a94e909fbb  gcc/testsuite/g++.dg/modules/tpl-spec-8_a.H
  d8cb88d2afe20155da288978d93ad470  gcc/testsuite/g++.dg/modules/tpl-spec-8_b.C
+ aa362c7e7aba5ce7380fe1b6b82ef536  gcc/testsuite/g++.dg/modules/tpl-spec-9_a.C
+ b5e84f07c0ea1e1568d62bb890233438  gcc/testsuite/g++.dg/modules/tpl-spec-9_b.C
+ fdd2132c725e1ee7d5bcdeb38ad57bb8  gcc/testsuite/g++.dg/modules/tpl-spec-9_c.C
  e98a12b4ae46870b0643fa1223fdc3b4  gcc/testsuite/g++.dg/modules/tpl-tpl-friend-1_a.C
  3dd3da204a400133a64f0d5961a045af  gcc/testsuite/g++.dg/modules/tpl-tpl-friend-1_b.C
  cc129c773de8f392f991d9083e48611b  gcc/testsuite/g++.dg/modules/tpl-tpl-mem-1_a.C
*************** b56edd1f3ed182e1e681ca48a66740bf  gcc/te
*** 25498,25508 ****
  e4a6306468bce09f1c68b8841c79217d  gcc/testsuite/g++.dg/modules/used-1_a.H
  59b1ee96e3967482f0bbb3d3c8233b09  gcc/testsuite/g++.dg/modules/used-1_b.H
  0931ec969846c0231395079d6d6cd55b  gcc/testsuite/g++.dg/modules/used-1_c.C
! 0bf75c05effb09fd29cf1c480d742cc0  gcc/testsuite/g++.dg/modules/using-10.C
  e18d2e409af4520a277a35cdf050fa61  gcc/testsuite/g++.dg/modules/using-11.h
  7cf2b3d332cc7d477ff702d517bd17aa  gcc/testsuite/g++.dg/modules/using-11_a.C
  62cde381c22cbe98c472b1ef67c37920  gcc/testsuite/g++.dg/modules/using-11_b.C
! 4c02f9e241ce572193ccf35ac585b6f2  gcc/testsuite/g++.dg/modules/using-12.C
  d78fb48d71dc2651bcc90b816c61d8cf  gcc/testsuite/g++.dg/modules/using-13.h
  027b7ba92f2e8c367c741de9b5173d48  gcc/testsuite/g++.dg/modules/using-13_a.C
  8131ac12982c54b20f20025b68f7fb63  gcc/testsuite/g++.dg/modules/using-13_b.C
--- 27362,27372 ----
  e4a6306468bce09f1c68b8841c79217d  gcc/testsuite/g++.dg/modules/used-1_a.H
  59b1ee96e3967482f0bbb3d3c8233b09  gcc/testsuite/g++.dg/modules/used-1_b.H
  0931ec969846c0231395079d6d6cd55b  gcc/testsuite/g++.dg/modules/used-1_c.C
! 572cacbe81186b228625237ee49afd7f  gcc/testsuite/g++.dg/modules/using-10.C
  e18d2e409af4520a277a35cdf050fa61  gcc/testsuite/g++.dg/modules/using-11.h
  7cf2b3d332cc7d477ff702d517bd17aa  gcc/testsuite/g++.dg/modules/using-11_a.C
  62cde381c22cbe98c472b1ef67c37920  gcc/testsuite/g++.dg/modules/using-11_b.C
! 532e72b06207f97110d7176ba4702212  gcc/testsuite/g++.dg/modules/using-12.C
  d78fb48d71dc2651bcc90b816c61d8cf  gcc/testsuite/g++.dg/modules/using-13.h
  027b7ba92f2e8c367c741de9b5173d48  gcc/testsuite/g++.dg/modules/using-13_a.C
  8131ac12982c54b20f20025b68f7fb63  gcc/testsuite/g++.dg/modules/using-13_b.C
*************** d78fb48d71dc2651bcc90b816c61d8cf  gcc/te
*** 25510,25522 ****
  24c7e3279eea92bb3bfaef119a53b89b  gcc/testsuite/g++.dg/modules/using-15_a.C
  2460c90f660b8719ce7313dd78df49ac  gcc/testsuite/g++.dg/modules/using-15_b.C
  aefa0329f058c93fd239749a75e7976e  gcc/testsuite/g++.dg/modules/using-15_c.C
  d1bb4b9f574e484059e6aed78c592b09  gcc/testsuite/g++.dg/modules/using-1_a.C
  9117c391ec874e241340d0076cae8490  gcc/testsuite/g++.dg/modules/using-1_b.C
  fb3dbacda6463c6d08dd383a53fee3f7  gcc/testsuite/g++.dg/modules/using-1_c.C
  4598c7be99880404501401a922992bd6  gcc/testsuite/g++.dg/modules/using-2_a.C
  6b4b2d371a744b85199cac5287239fec  gcc/testsuite/g++.dg/modules/using-2_b.C
  261f659bf38a6f29853351db24461fae  gcc/testsuite/g++.dg/modules/using-2_c.C
! 659d4832d90f6414eef1fdc13dd63d76  gcc/testsuite/g++.dg/modules/using-3.C
  bcc6cc64890192d647d85da41996ed1e  gcc/testsuite/g++.dg/modules/using-4_a.C
  f7d6d7386bd922589ea2e579fdd741e5  gcc/testsuite/g++.dg/modules/using-4_b.C
  0650e45892eb431529641f277d164339  gcc/testsuite/g++.dg/modules/using-5_a.C
--- 27374,27415 ----
  24c7e3279eea92bb3bfaef119a53b89b  gcc/testsuite/g++.dg/modules/using-15_a.C
  2460c90f660b8719ce7313dd78df49ac  gcc/testsuite/g++.dg/modules/using-15_b.C
  aefa0329f058c93fd239749a75e7976e  gcc/testsuite/g++.dg/modules/using-15_c.C
+ 0c276630a79d008f0dfd3ebca330a0b9  gcc/testsuite/g++.dg/modules/using-16_a.C
+ f52accba7fe9ab08765953d4c1c4bcf1  gcc/testsuite/g++.dg/modules/using-16_b.C
+ c157a4c702f2fc94096443ef5563ddff  gcc/testsuite/g++.dg/modules/using-16_c.C
+ b8fc6ea4172ffb51986d4bb08ea519de  gcc/testsuite/g++.dg/modules/using-17_a.C
+ bbd852e5ec58920276360b7d8d613edd  gcc/testsuite/g++.dg/modules/using-17_b.C
+ 34f10f8ded60b7c75380abb72b095edd  gcc/testsuite/g++.dg/modules/using-18_a.C
+ cab114998729544988c945943d9f78ac  gcc/testsuite/g++.dg/modules/using-18_b.C
+ 9afe274afdeb28da9a73a151088d839c  gcc/testsuite/g++.dg/modules/using-19_a.C
+ 85f961e20201dbab8c11246da77e3131  gcc/testsuite/g++.dg/modules/using-19_b.C
  d1bb4b9f574e484059e6aed78c592b09  gcc/testsuite/g++.dg/modules/using-1_a.C
  9117c391ec874e241340d0076cae8490  gcc/testsuite/g++.dg/modules/using-1_b.C
  fb3dbacda6463c6d08dd383a53fee3f7  gcc/testsuite/g++.dg/modules/using-1_c.C
+ 62e6906464c8d23f612c6a5b95bcc1bb  gcc/testsuite/g++.dg/modules/using-20_a.C
+ 4061b16a03971bb1fd6e3915e9828cb5  gcc/testsuite/g++.dg/modules/using-21_a.C
+ 5ecb0dc6c967fef0cd7f8e42e6819a76  gcc/testsuite/g++.dg/modules/using-22_a.C
+ c16c384c4476c4516a7c17416d15bc35  gcc/testsuite/g++.dg/modules/using-22_b.C
+ 686b8144a56e3f66abb35abac4aa5dfa  gcc/testsuite/g++.dg/modules/using-23_a.C
+ 93c8f6cdf568be2659b62bbd754948dd  gcc/testsuite/g++.dg/modules/using-23_b.C
+ 4122b87e8c50500b868cf69ee6eb5777  gcc/testsuite/g++.dg/modules/using-24_a.C
+ 0a6488076a71e75c5e5acff06e96db47  gcc/testsuite/g++.dg/modules/using-24_b.C
+ 7318c32fa26eb0854ff53b9264946974  gcc/testsuite/g++.dg/modules/using-25_a.C
+ 10847ef47350ebac53dfcc841ee159f6  gcc/testsuite/g++.dg/modules/using-25_b.C
+ a205ac449478fd91dd896cdb3f2be5f9  gcc/testsuite/g++.dg/modules/using-26_a.C
+ e9383b1e9f49283414d8fdfb0d790e62  gcc/testsuite/g++.dg/modules/using-26_b.C
+ f8c7e831ab6a2e058ca3ca6e207fe0f3  gcc/testsuite/g++.dg/modules/using-26_c.C
+ 8ed76ef13743a2e846366ddaf90104ef  gcc/testsuite/g++.dg/modules/using-27.C
+ 5b27c629d2198d3cd19dfe6ffe9da934  gcc/testsuite/g++.dg/modules/using-28_a.C
+ 6323eef9afab6407256732995cc48316  gcc/testsuite/g++.dg/modules/using-28_b.C
+ 08e8981812acf895484136d0e68f8e4e  gcc/testsuite/g++.dg/modules/using-29.H
  4598c7be99880404501401a922992bd6  gcc/testsuite/g++.dg/modules/using-2_a.C
  6b4b2d371a744b85199cac5287239fec  gcc/testsuite/g++.dg/modules/using-2_b.C
  261f659bf38a6f29853351db24461fae  gcc/testsuite/g++.dg/modules/using-2_c.C
! dec77c25254c2de5dab4763d264bd88b  gcc/testsuite/g++.dg/modules/using-3.C
! a6538f381f12a0cd3a9e46e8089d2b15  gcc/testsuite/g++.dg/modules/using-30_a.C
! 8ab0f479bce8892363e18d66cc9e7ba3  gcc/testsuite/g++.dg/modules/using-30_b.C
! d2536d9ce980b930e5bd5e99319d1f01  gcc/testsuite/g++.dg/modules/using-30_c.C
  bcc6cc64890192d647d85da41996ed1e  gcc/testsuite/g++.dg/modules/using-4_a.C
  f7d6d7386bd922589ea2e579fdd741e5  gcc/testsuite/g++.dg/modules/using-4_b.C
  0650e45892eb431529641f277d164339  gcc/testsuite/g++.dg/modules/using-5_a.C
*************** bbdcba8100255b764adf52e756836716  gcc/te
*** 25526,25537 ****
  2dc02daab2156be8c7218e8e03460a83  gcc/testsuite/g++.dg/modules/using-7.C
  f4344ac47fb7c4a34242c5b78f6b9c9e  gcc/testsuite/g++.dg/modules/using-8_a.C
  397b69c332ef27a5d426c8de689490c8  gcc/testsuite/g++.dg/modules/using-8_b.C
! 7cdec0711625e20d314e39e376f6482c  gcc/testsuite/g++.dg/modules/using-9.C
  049f8f601c4bdc1afd389a14a09a4c68  gcc/testsuite/g++.dg/modules/using-enum-1_a.H
  c9f2d72a8dee37071e77211f901a236f  gcc/testsuite/g++.dg/modules/using-enum-1_b.C
! f3175a3819fd4a141016271039342e36  gcc/testsuite/g++.dg/modules/using-enum-2.C
  963194864ffbe8cc506f54a697186555  gcc/testsuite/g++.dg/modules/using-enum-3_a.C
  07e71289e0706a93e9337880ac07ac85  gcc/testsuite/g++.dg/modules/using-enum-3_b.C
  5bb95ddb69a1aaef4a3d6c5521bc7637  gcc/testsuite/g++.dg/modules/var-1_a.C
  efdc24cd50e9b94c305919ac428b2a71  gcc/testsuite/g++.dg/modules/var-1_b.C
  e89823e1ba3dc96a18ef91f3e9ee167c  gcc/testsuite/g++.dg/modules/var-tpl-1_a.C
--- 27419,27433 ----
  2dc02daab2156be8c7218e8e03460a83  gcc/testsuite/g++.dg/modules/using-7.C
  f4344ac47fb7c4a34242c5b78f6b9c9e  gcc/testsuite/g++.dg/modules/using-8_a.C
  397b69c332ef27a5d426c8de689490c8  gcc/testsuite/g++.dg/modules/using-8_b.C
! c5c41703ca78a00029138648e8a02728  gcc/testsuite/g++.dg/modules/using-9.C
  049f8f601c4bdc1afd389a14a09a4c68  gcc/testsuite/g++.dg/modules/using-enum-1_a.H
  c9f2d72a8dee37071e77211f901a236f  gcc/testsuite/g++.dg/modules/using-enum-1_b.C
! 8c27c5258dc0407cb1877efa0e71cdde  gcc/testsuite/g++.dg/modules/using-enum-2.C
  963194864ffbe8cc506f54a697186555  gcc/testsuite/g++.dg/modules/using-enum-3_a.C
  07e71289e0706a93e9337880ac07ac85  gcc/testsuite/g++.dg/modules/using-enum-3_b.C
+ f3103f483d6038654accb4a9649ad6a5  gcc/testsuite/g++.dg/modules/using-enum-4_a.C
+ 0ae4d90ccaa47f8875ad0042a86beec2  gcc/testsuite/g++.dg/modules/using-enum-4_b.C
+ 899e785adb65d6d9937f21eb6cbfc026  gcc/testsuite/g++.dg/modules/using-enum-4_c.C
  5bb95ddb69a1aaef4a3d6c5521bc7637  gcc/testsuite/g++.dg/modules/var-1_a.C
  efdc24cd50e9b94c305919ac428b2a71  gcc/testsuite/g++.dg/modules/var-1_b.C
  e89823e1ba3dc96a18ef91f3e9ee167c  gcc/testsuite/g++.dg/modules/var-tpl-1_a.C
*************** adc4f32bd70209871e3deed494628f03  gcc/te
*** 25543,25555 ****
  5363cb6d035a0839de3364cef17f901a  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_b.C
  c1b40f22d6234f4c5283687a112d1f6e  gcc/testsuite/g++.dg/modules/virt-1_a.C
  ef900fef308d0ecbd503017332905389  gcc/testsuite/g++.dg/modules/virt-1_b.C
! 6647f96807ca5ce9d3943016c54e5327  gcc/testsuite/g++.dg/modules/virt-2_a.C
! 512211d9976ebb89fa5cb142e8574a92  gcc/testsuite/g++.dg/modules/virt-2_b.C
! 04591658e0d8d0795e7f23f57ba2c242  gcc/testsuite/g++.dg/modules/virt-2_c.C
  dac30a6fe7993dd8c5e9fc062114cd76  gcc/testsuite/g++.dg/modules/virt-3_a.C
  722cad797d5d2f02d667f40e39cd583e  gcc/testsuite/g++.dg/modules/virt-3_b.C
  688ee6b33e2ac7189d6e391adeba19a6  gcc/testsuite/g++.dg/modules/virt-3_c.C
  b633f8aea8cc6476c03a37035a26af77  gcc/testsuite/g++.dg/modules/virt-3_d.C
  1127461faa60a09d4c3f0ce98cd9d08b  gcc/testsuite/g++.dg/modules/vmort-1_a.C
  e4510618d0f219adedac6528c5d88023  gcc/testsuite/g++.dg/modules/vmort-1_b.C
  fd51a80db9cdb5d0aca98cd21e6b7bb6  gcc/testsuite/g++.dg/modules/vmort-2_a.C
--- 27439,27457 ----
  5363cb6d035a0839de3364cef17f901a  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_b.C
  c1b40f22d6234f4c5283687a112d1f6e  gcc/testsuite/g++.dg/modules/virt-1_a.C
  ef900fef308d0ecbd503017332905389  gcc/testsuite/g++.dg/modules/virt-1_b.C
! e0772c636c0bb479773598528943bc1c  gcc/testsuite/g++.dg/modules/virt-2_a.C
! b56c60a0d527e15c5a0aabd7f133d2c8  gcc/testsuite/g++.dg/modules/virt-2_b.C
! f14d96fea505795e8f91a846dad4dab4  gcc/testsuite/g++.dg/modules/virt-2_c.C
  dac30a6fe7993dd8c5e9fc062114cd76  gcc/testsuite/g++.dg/modules/virt-3_a.C
  722cad797d5d2f02d667f40e39cd583e  gcc/testsuite/g++.dg/modules/virt-3_b.C
  688ee6b33e2ac7189d6e391adeba19a6  gcc/testsuite/g++.dg/modules/virt-3_c.C
  b633f8aea8cc6476c03a37035a26af77  gcc/testsuite/g++.dg/modules/virt-3_d.C
+ 0fe1ed0eab842b49482185f1f84bd1d4  gcc/testsuite/g++.dg/modules/virt-4_a.C
+ 14aa272c681188b1e07f93ac4f33566b  gcc/testsuite/g++.dg/modules/virt-4_b.C
+ 6f7a125146325d07d4481e6b89e10057  gcc/testsuite/g++.dg/modules/virt-5_a.C
+ 426560bbd5cbc0054f3a45a2a0cbe930  gcc/testsuite/g++.dg/modules/virt-5_b.C
+ c6c93dd670ceabd62c528496ad00eeca  gcc/testsuite/g++.dg/modules/virt-6_a.C
+ c68a49d9c8bf2967de795730443eeb4c  gcc/testsuite/g++.dg/modules/virt-6_b.C
  1127461faa60a09d4c3f0ce98cd9d08b  gcc/testsuite/g++.dg/modules/vmort-1_a.C
  e4510618d0f219adedac6528c5d88023  gcc/testsuite/g++.dg/modules/vmort-1_b.C
  fd51a80db9cdb5d0aca98cd21e6b7bb6  gcc/testsuite/g++.dg/modules/vmort-2_a.C
*************** fb2dff43314c2b3715f353986395f3c8  gcc/te
*** 25561,25598 ****
  61a0de9a0b291c9828e798d288cd1d63  gcc/testsuite/g++.dg/modules/vtt-2.h
  1f7a42538a18498e42ad3605fc45068e  gcc/testsuite/g++.dg/modules/vtt-2_a.H
  b9e6dd7232aadc013278f66fb1b6943a  gcc/testsuite/g++.dg/modules/vtt-2_b.C
  1f4f7d511678a6fe4008c486952c066e  gcc/testsuite/g++.dg/modules/xtreme-header-1.h
! 98f4134fbdf70aa52f8b7485cc2b7bee  gcc/testsuite/g++.dg/modules/xtreme-header-1_a.H
! 0192d2cf9b607dfc75c5ec8ccf0ab892  gcc/testsuite/g++.dg/modules/xtreme-header-1_b.C
  bed7f5d7a3cc0e071270be9feca8f82d  gcc/testsuite/g++.dg/modules/xtreme-header-1_c.C
  65565b8b88947a9cd7d21a03e63bfbda  gcc/testsuite/g++.dg/modules/xtreme-header-2.h
! 808f4bde53dc63bf027df7f3f42c142d  gcc/testsuite/g++.dg/modules/xtreme-header-2_a.H
! 1a0932537d7d7b9406b78d1164a48f5b  gcc/testsuite/g++.dg/modules/xtreme-header-2_b.C
  ae606742eb915a1cb398dcbbce5c625d  gcc/testsuite/g++.dg/modules/xtreme-header-2_c.C
  3a9936d16689abac86f0b68ea78e28f7  gcc/testsuite/g++.dg/modules/xtreme-header-3.h
! e808cf676980441a0c5c2009e77a4968  gcc/testsuite/g++.dg/modules/xtreme-header-3_a.H
! e3f6e6e8e6976ab3351dcb353813117d  gcc/testsuite/g++.dg/modules/xtreme-header-3_b.C
  e3f46a4d08250c04de34d13c77cc9b82  gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C
  46dd41193a40d53f540694c2ba8fcd0a  gcc/testsuite/g++.dg/modules/xtreme-header-4.h
! 24ab9d562e5e2b3930fcb012396d6306  gcc/testsuite/g++.dg/modules/xtreme-header-4_a.H
! a2b734b7b5d6a9c62113cd806de11bfc  gcc/testsuite/g++.dg/modules/xtreme-header-4_b.C
  76e936c3575d46324e5f96282702e11e  gcc/testsuite/g++.dg/modules/xtreme-header-4_c.C
  e8228349c15997bd101dce93d255e164  gcc/testsuite/g++.dg/modules/xtreme-header-5.h
! d17e82ac87ed66555ffde8058e4d0c76  gcc/testsuite/g++.dg/modules/xtreme-header-5_a.H
! 39cf119bbb49dcf4fec1fe451ffa231b  gcc/testsuite/g++.dg/modules/xtreme-header-5_b.C
  c3636cf9dd8b860418b1ec20eca2fcfa  gcc/testsuite/g++.dg/modules/xtreme-header-5_c.C
  25a7ffd38933a2b162a4845c90bab5b7  gcc/testsuite/g++.dg/modules/xtreme-header-6.h
! 85dfd677144240809d1219f05d17f8ab  gcc/testsuite/g++.dg/modules/xtreme-header-6_a.H
! dafc999dc77232ecf4da841ea0785153  gcc/testsuite/g++.dg/modules/xtreme-header-6_b.C
  63b82749637ed6fb8c7c3635237b5133  gcc/testsuite/g++.dg/modules/xtreme-header-6_c.C
! 17ec177cae98b9faed2d659aff2838fc  gcc/testsuite/g++.dg/modules/xtreme-header-7_a.H
! 7338a7ef617c71253ec289504c03eb22  gcc/testsuite/g++.dg/modules/xtreme-header-7_b.C
  8d28abdd4430cf521ed158aa2999d543  gcc/testsuite/g++.dg/modules/xtreme-header.h
! 17ec177cae98b9faed2d659aff2838fc  gcc/testsuite/g++.dg/modules/xtreme-header_a.H
! 5c6d89fdd3100b17ff424aaee91d841b  gcc/testsuite/g++.dg/modules/xtreme-header_b.C
  275063e55db5497a82b6a8afb6b265f0  gcc/testsuite/g++.dg/modules/xtreme-tr1.h
! 6df9a71a58dbf8146adfa33a7c18858e  gcc/testsuite/g++.dg/modules/xtreme-tr1_a.H
! 847138241047c39840018b1c3eb8bd7d  gcc/testsuite/g++.dg/modules/xtreme-tr1_b.C
  328d5426468f09a9a108df6191684b78  gcc/testsuite/g++.dg/no-stack-protector-attr-2.C
  eb2e0f01c9a4d46c1646751931cacef7  gcc/testsuite/g++.dg/no-stack-protector-attr-3.C
  020cc92178f45d27f797218781bfe02c  gcc/testsuite/g++.dg/no-stack-protector-attr.C
--- 27463,27514 ----
  61a0de9a0b291c9828e798d288cd1d63  gcc/testsuite/g++.dg/modules/vtt-2.h
  1f7a42538a18498e42ad3605fc45068e  gcc/testsuite/g++.dg/modules/vtt-2_a.H
  b9e6dd7232aadc013278f66fb1b6943a  gcc/testsuite/g++.dg/modules/vtt-2_b.C
+ 3d043c63d5084f569e5780ab69b650f2  gcc/testsuite/g++.dg/modules/warn-spec-1_a.C
+ 770da3c5d8d08b57e3bb7638ced6ddac  gcc/testsuite/g++.dg/modules/warn-spec-1_b.C
+ 08df26e13ad9bcaf7746d9df14f81fcb  gcc/testsuite/g++.dg/modules/warn-spec-2_a.C
+ 4b28eae84d0803976da47dbc16d446fd  gcc/testsuite/g++.dg/modules/warn-spec-2_b.C
  1f4f7d511678a6fe4008c486952c066e  gcc/testsuite/g++.dg/modules/xtreme-header-1.h
! 5884b00638991ff8efb1f358bc696bca  gcc/testsuite/g++.dg/modules/xtreme-header-1_a.H
! 2f9d3bf7b6222aa9a7879d98c3921af8  gcc/testsuite/g++.dg/modules/xtreme-header-1_b.C
  bed7f5d7a3cc0e071270be9feca8f82d  gcc/testsuite/g++.dg/modules/xtreme-header-1_c.C
  65565b8b88947a9cd7d21a03e63bfbda  gcc/testsuite/g++.dg/modules/xtreme-header-2.h
! 620877508d9ef3e74da4dbd88756f1a8  gcc/testsuite/g++.dg/modules/xtreme-header-2_a.H
! 961d24f3ddf4567f3821db81859e212a  gcc/testsuite/g++.dg/modules/xtreme-header-2_b.C
  ae606742eb915a1cb398dcbbce5c625d  gcc/testsuite/g++.dg/modules/xtreme-header-2_c.C
  3a9936d16689abac86f0b68ea78e28f7  gcc/testsuite/g++.dg/modules/xtreme-header-3.h
! 864d34aed572c1140d9688a9d60f5866  gcc/testsuite/g++.dg/modules/xtreme-header-3_a.H
! 51dc4f8068d6f40f8fa5623bbab8a63c  gcc/testsuite/g++.dg/modules/xtreme-header-3_b.C
  e3f46a4d08250c04de34d13c77cc9b82  gcc/testsuite/g++.dg/modules/xtreme-header-3_c.C
  46dd41193a40d53f540694c2ba8fcd0a  gcc/testsuite/g++.dg/modules/xtreme-header-4.h
! 56756b02a03757852a4ef764e27f9130  gcc/testsuite/g++.dg/modules/xtreme-header-4_a.H
! c3a6afb1314acfc5d14191c0057a3c6c  gcc/testsuite/g++.dg/modules/xtreme-header-4_b.C
  76e936c3575d46324e5f96282702e11e  gcc/testsuite/g++.dg/modules/xtreme-header-4_c.C
  e8228349c15997bd101dce93d255e164  gcc/testsuite/g++.dg/modules/xtreme-header-5.h
! cd3c5d612905ea9574eb58592b4345c7  gcc/testsuite/g++.dg/modules/xtreme-header-5_a.H
! 90dd6f0d1305053b27df27930092da0c  gcc/testsuite/g++.dg/modules/xtreme-header-5_b.C
  c3636cf9dd8b860418b1ec20eca2fcfa  gcc/testsuite/g++.dg/modules/xtreme-header-5_c.C
  25a7ffd38933a2b162a4845c90bab5b7  gcc/testsuite/g++.dg/modules/xtreme-header-6.h
! c0d1a6ee00e1dc4eeb05f10852825815  gcc/testsuite/g++.dg/modules/xtreme-header-6_a.H
! ff334232cd6b06ca02860f7d9e35573b  gcc/testsuite/g++.dg/modules/xtreme-header-6_b.C
  63b82749637ed6fb8c7c3635237b5133  gcc/testsuite/g++.dg/modules/xtreme-header-6_c.C
! 4ad6625199c4cfe730671a26a7fe5682  gcc/testsuite/g++.dg/modules/xtreme-header-7_a.H
! bd8f06257bf103f736f4f4a11f1d5694  gcc/testsuite/g++.dg/modules/xtreme-header-7_b.C
! d672f59602e40a1fc40d57ce912e8a7e  gcc/testsuite/g++.dg/modules/xtreme-header-8.C
  8d28abdd4430cf521ed158aa2999d543  gcc/testsuite/g++.dg/modules/xtreme-header.h
! 4ad6625199c4cfe730671a26a7fe5682  gcc/testsuite/g++.dg/modules/xtreme-header_a.H
! 1d3cf642f68c9c90bcb6a7b44de3b836  gcc/testsuite/g++.dg/modules/xtreme-header_b.C
  275063e55db5497a82b6a8afb6b265f0  gcc/testsuite/g++.dg/modules/xtreme-tr1.h
! 39666aa61bc92dcaa9ce23c48932f35e  gcc/testsuite/g++.dg/modules/xtreme-tr1_a.H
! f92828b4bd51fc3a46d4dbb3ef9b65a8  gcc/testsuite/g++.dg/modules/xtreme-tr1_b.C
! 009490e7fc3d34c77d93f977922c3055  gcc/testsuite/g++.dg/musttail10.C
! 507768a54edcff446e13f4cdeaae16d1  gcc/testsuite/g++.dg/musttail11.C
! 63db3eea8da1222b7d4c9baa82bda686  gcc/testsuite/g++.dg/musttail12.C
! f676f1263407b9de534eb36cbb67fc3f  gcc/testsuite/g++.dg/musttail13.C
! 9cfea6bd54523dac2d912c5139815bcb  gcc/testsuite/g++.dg/musttail14.C
! bc6a20391fb03a102361a1ef161f36c9  gcc/testsuite/g++.dg/musttail6.C
! c869389871d17ef78c3e0d5f69924366  gcc/testsuite/g++.dg/musttail7.C
! f7c5f2e38ae261923d12ca63eef96247  gcc/testsuite/g++.dg/musttail8.C
! e4e352e0179585bbf00ed223aad82e10  gcc/testsuite/g++.dg/musttail9.C
  328d5426468f09a9a108df6191684b78  gcc/testsuite/g++.dg/no-stack-protector-attr-2.C
  eb2e0f01c9a4d46c1646751931cacef7  gcc/testsuite/g++.dg/no-stack-protector-attr-3.C
  020cc92178f45d27f797218781bfe02c  gcc/testsuite/g++.dg/no-stack-protector-attr.C
*************** eb2e0f01c9a4d46c1646751931cacef7  gcc/te
*** 25602,25607 ****
--- 27518,27524 ----
  15bcb0db43b0a7c6f0b1a4ff014da35d  gcc/testsuite/g++.dg/opt/alias2.C
  91fe29b9b1f08a3ca87595896db03497  gcc/testsuite/g++.dg/opt/alias3.C
  d1eee6f7ae11e9a1e85a05197e331926  gcc/testsuite/g++.dg/opt/alias4.C
+ 8fc3fdde63f5daa22482a16d86de3ee9  gcc/testsuite/g++.dg/opt/always_inline1.C
  76a1ade7c3b02a35300f798365e098d3  gcc/testsuite/g++.dg/opt/anchor1.C
  a20397e7aec19ce67e72ee637a08a416  gcc/testsuite/g++.dg/opt/anonunion1.C
  f5855f61cbf9d400a44f276598a5db21  gcc/testsuite/g++.dg/opt/array1.C
*************** c9481d742a48253660d16743a6beecf9  gcc/te
*** 25611,25617 ****
  cd9d658bcc74632f8c5f64180e52c3e8  gcc/testsuite/g++.dg/opt/bitfield1.C
  2196be4aeda3f2fca55756098ae04451  gcc/testsuite/g++.dg/opt/bool1.C
  15dd66151b129bfdbe9cd873521b3467  gcc/testsuite/g++.dg/opt/builtins1.C
! 658263688b08330a026e1ad24c8f9b8f  gcc/testsuite/g++.dg/opt/builtins2.C
  def63acb8ef99a4c443fc492c744024e  gcc/testsuite/g++.dg/opt/call1.C
  1eba3f96de4bd15ebff2723155f41e53  gcc/testsuite/g++.dg/opt/call2.C
  85b07614ef2e4e3618196014b1b6b6dc  gcc/testsuite/g++.dg/opt/call3.C
--- 27528,27534 ----
  cd9d658bcc74632f8c5f64180e52c3e8  gcc/testsuite/g++.dg/opt/bitfield1.C
  2196be4aeda3f2fca55756098ae04451  gcc/testsuite/g++.dg/opt/bool1.C
  15dd66151b129bfdbe9cd873521b3467  gcc/testsuite/g++.dg/opt/builtins1.C
! baea8ce2442c8e0efc842043935d4f7b  gcc/testsuite/g++.dg/opt/builtins2.C
  def63acb8ef99a4c443fc492c744024e  gcc/testsuite/g++.dg/opt/call1.C
  1eba3f96de4bd15ebff2723155f41e53  gcc/testsuite/g++.dg/opt/call2.C
  85b07614ef2e4e3618196014b1b6b6dc  gcc/testsuite/g++.dg/opt/call3.C
*************** c4554b5d4200bad32c81fd1af4c0f3de  gcc/te
*** 25632,25637 ****
--- 27549,27555 ----
  d596297fb4b8cfc0dbc45507354819a3  gcc/testsuite/g++.dg/opt/cond1.C
  b879c3972fcf09a0bef4781d973dea10  gcc/testsuite/g++.dg/opt/conj1.C
  14ee709f09c311be02b0626ca4909c28  gcc/testsuite/g++.dg/opt/conj2.C
+ 229398c890a6c914e53114390a895756  gcc/testsuite/g++.dg/opt/const-builtin1.C
  815190a461caeca9af90923572df6303  gcc/testsuite/g++.dg/opt/const1.C
  4bcc868b38c719f7e50e39d9f302169b  gcc/testsuite/g++.dg/opt/const2.C
  9ccc1a8633e5cf3c51fd3491baa248ec  gcc/testsuite/g++.dg/opt/const3.C
*************** fbb5c12014513d08b8407fc9c374876b  gcc/te
*** 25656,25674 ****
  18b2fa315be06497f45250bc6b3d0343  gcc/testsuite/g++.dg/opt/devirt3.C
  207e50e59cdb4ce8249ec5731fee1bc4  gcc/testsuite/g++.dg/opt/devirt4.C
  ec5d9f18fc8e4f5f3d400f893f659f25  gcc/testsuite/g++.dg/opt/devirt5.C
  efd4841018dde44e1a577570a64e42de  gcc/testsuite/g++.dg/opt/dtor1.C
  ed3d92d5cb7b1f5ae5f34d6c508c8b1b  gcc/testsuite/g++.dg/opt/dtor2-aux.cc
  1746b14290a8e8010d79689c8f79394b  gcc/testsuite/g++.dg/opt/dtor2.C
  55a56e7b92dedcd007fc09dfbe61cee7  gcc/testsuite/g++.dg/opt/dtor2.h
  b38ce2cc80cbd8da836a5faae6d33aff  gcc/testsuite/g++.dg/opt/dtor3.C
! 76e33d670a50db6c3e799393d2903f1b  gcc/testsuite/g++.dg/opt/dtor4-aux.cc
! 901c1f4a3e8f81d1bc0f7a633ce9b6be  gcc/testsuite/g++.dg/opt/dtor4.C
  1224352d3dfac75031ae528b98238fad  gcc/testsuite/g++.dg/opt/dtor4.h
  150e576fe8287592fe2a0105f26b37f5  gcc/testsuite/g++.dg/opt/dump1.C
  c65684013d98188fa96db47010840657  gcc/testsuite/g++.dg/opt/eh1.C
  4bc90d9400a86fd4bca87067006586da  gcc/testsuite/g++.dg/opt/eh2.C
  18b23691d6af0cdfab89ec422af1cdb1  gcc/testsuite/g++.dg/opt/eh3.C
! 30ed6168995f605f504dbbdc5887b067  gcc/testsuite/g++.dg/opt/eh4.C
  357f6793be1e4f02ea1767644836f548  gcc/testsuite/g++.dg/opt/eh5.C
  d4a3cae21366e7a978e0f1b8371a6543  gcc/testsuite/g++.dg/opt/empty1.C
  d1d055611bb2998e370992816712eb3a  gcc/testsuite/g++.dg/opt/empty2.C
--- 27574,27593 ----
  18b2fa315be06497f45250bc6b3d0343  gcc/testsuite/g++.dg/opt/devirt3.C
  207e50e59cdb4ce8249ec5731fee1bc4  gcc/testsuite/g++.dg/opt/devirt4.C
  ec5d9f18fc8e4f5f3d400f893f659f25  gcc/testsuite/g++.dg/opt/devirt5.C
+ d8027858dedcab4c8e6bbad1670d118b  gcc/testsuite/g++.dg/opt/devirt6.C
  efd4841018dde44e1a577570a64e42de  gcc/testsuite/g++.dg/opt/dtor1.C
  ed3d92d5cb7b1f5ae5f34d6c508c8b1b  gcc/testsuite/g++.dg/opt/dtor2-aux.cc
  1746b14290a8e8010d79689c8f79394b  gcc/testsuite/g++.dg/opt/dtor2.C
  55a56e7b92dedcd007fc09dfbe61cee7  gcc/testsuite/g++.dg/opt/dtor2.h
  b38ce2cc80cbd8da836a5faae6d33aff  gcc/testsuite/g++.dg/opt/dtor3.C
! 2021aa4eefe3fdb25dae3f766a03787b  gcc/testsuite/g++.dg/opt/dtor4-aux.cc
! 0cfb3f5ce141a8a48938767b13ac6c03  gcc/testsuite/g++.dg/opt/dtor4.C
  1224352d3dfac75031ae528b98238fad  gcc/testsuite/g++.dg/opt/dtor4.h
  150e576fe8287592fe2a0105f26b37f5  gcc/testsuite/g++.dg/opt/dump1.C
  c65684013d98188fa96db47010840657  gcc/testsuite/g++.dg/opt/eh1.C
  4bc90d9400a86fd4bca87067006586da  gcc/testsuite/g++.dg/opt/eh2.C
  18b23691d6af0cdfab89ec422af1cdb1  gcc/testsuite/g++.dg/opt/eh3.C
! aac40ab0fc552d212330efec0fb7377b  gcc/testsuite/g++.dg/opt/eh4.C
  357f6793be1e4f02ea1767644836f548  gcc/testsuite/g++.dg/opt/eh5.C
  d4a3cae21366e7a978e0f1b8371a6543  gcc/testsuite/g++.dg/opt/empty1.C
  d1d055611bb2998e370992816712eb3a  gcc/testsuite/g++.dg/opt/empty2.C
*************** b7cb98f473e1920797490085dbf7bb94  gcc/te
*** 25721,25726 ****
--- 27640,27646 ----
  519840c294d6b87811a202c0881051a4  gcc/testsuite/g++.dg/opt/is_constant_evaluated1.C
  f1b0fb8d0e48803f4a6ff987db38f6ce  gcc/testsuite/g++.dg/opt/is_constant_evaluated2.C
  6c66d424a35a016d39db48a6c24aa0d5  gcc/testsuite/g++.dg/opt/is_constant_evaluated3.C
+ c9411e9577ca2c8a8af93248a6b9a3d5  gcc/testsuite/g++.dg/opt/is_constant_evaluated4.C
  d3914504bba83652fe1a238821c3dea2  gcc/testsuite/g++.dg/opt/life1.C
  e9d20e766af5e3640a5fe827cb945f15  gcc/testsuite/g++.dg/opt/local1.C
  74049e3e36b5fbdab2f271b70320a6d8  gcc/testsuite/g++.dg/opt/longbranch1.C
*************** c11dcb63c226e2ccd7df1403d7c85717  gcc/te
*** 25731,25736 ****
--- 27651,27661 ----
  7f1c978b1a5b6150f90040d9f4d954fb  gcc/testsuite/g++.dg/opt/mmx1.C
  88e99b8c59ed29dc8cf42de21a90ef82  gcc/testsuite/g++.dg/opt/mmx2.C
  3a3099818facb90281fb9d64bda62586  gcc/testsuite/g++.dg/opt/mpx.C
+ 48f5588e7762def5a628cec018cfc8bc  gcc/testsuite/g++.dg/opt/musttail1.C
+ 3dc23d9a26bb23d2b377a5113858afef  gcc/testsuite/g++.dg/opt/musttail2.C
+ 7feb4b7f4a1ac7356665698663979d9d  gcc/testsuite/g++.dg/opt/musttail3.C
+ c184e95f6f137c3742fc31f07098c767  gcc/testsuite/g++.dg/opt/musttail4.C
+ a989a2fcdd11be4967492ae66879c5cf  gcc/testsuite/g++.dg/opt/musttail5.C
  920ff5ca5b8524e1c39af98faca027a3  gcc/testsuite/g++.dg/opt/new1.C
  308684750b3331a0bd4600b55958faea  gcc/testsuite/g++.dg/opt/noreturn-1.C
  25116c5b072e5f10df5bd837649e0e1d  gcc/testsuite/g++.dg/opt/nothrow1.C
*************** d5f357808f48740f1a8daa2f2ab904da  gcc/te
*** 25742,25748 ****
  f527f51fa4c8b92a4d9374e96752d73a  gcc/testsuite/g++.dg/opt/nrv14.C
  4ed264b192fadaa6f3076ca27b4fc086  gcc/testsuite/g++.dg/opt/nrv15.C
  e94377182a1dedb230f53db874897364  gcc/testsuite/g++.dg/opt/nrv16.C
! 3bf30be38f5aa46b2a1c3f22d55000d4  gcc/testsuite/g++.dg/opt/nrv17.C
  3a570f71e0d06b55d991f8cab4b017d2  gcc/testsuite/g++.dg/opt/nrv18.C
  b5ea3678b95f88606bb0d37ee1f58a68  gcc/testsuite/g++.dg/opt/nrv19.C
  360692bdb55de35cb68717ceb6c51fd7  gcc/testsuite/g++.dg/opt/nrv2.C
--- 27667,27673 ----
  f527f51fa4c8b92a4d9374e96752d73a  gcc/testsuite/g++.dg/opt/nrv14.C
  4ed264b192fadaa6f3076ca27b4fc086  gcc/testsuite/g++.dg/opt/nrv15.C
  e94377182a1dedb230f53db874897364  gcc/testsuite/g++.dg/opt/nrv16.C
! 01bc189b79d9034519317c2e258abe4d  gcc/testsuite/g++.dg/opt/nrv17.C
  3a570f71e0d06b55d991f8cab4b017d2  gcc/testsuite/g++.dg/opt/nrv18.C
  b5ea3678b95f88606bb0d37ee1f58a68  gcc/testsuite/g++.dg/opt/nrv19.C
  360692bdb55de35cb68717ceb6c51fd7  gcc/testsuite/g++.dg/opt/nrv2.C
*************** b2773b15109a2fc43572a97edf29b236  gcc/te
*** 25761,25767 ****
  cc4e1f139fd98494395c4313684fa753  gcc/testsuite/g++.dg/opt/nrv6.C
  b16ae5b90244df2461a7c023c7f3c88e  gcc/testsuite/g++.dg/opt/nrv7.C
  9c5e38c55eeddc0823123dbfd92e48e8  gcc/testsuite/g++.dg/opt/nrv8.C
! 572452f9faebdba95cc03bfba39f6879  gcc/testsuite/g++.dg/opt/nrv9.C
  5778a352c750259fe850421e364893fa  gcc/testsuite/g++.dg/opt/operator1.C
  1b20239db4498d5cce85a900755fb433  gcc/testsuite/g++.dg/opt/placeholder1.C
  cf9e1c6c02a4aee1d10b86325166de66  gcc/testsuite/g++.dg/opt/pmf1.C
--- 27686,27692 ----
  cc4e1f139fd98494395c4313684fa753  gcc/testsuite/g++.dg/opt/nrv6.C
  b16ae5b90244df2461a7c023c7f3c88e  gcc/testsuite/g++.dg/opt/nrv7.C
  9c5e38c55eeddc0823123dbfd92e48e8  gcc/testsuite/g++.dg/opt/nrv8.C
! 90aa1875983c968e67423e883b10f65a  gcc/testsuite/g++.dg/opt/nrv9.C
  5778a352c750259fe850421e364893fa  gcc/testsuite/g++.dg/opt/operator1.C
  1b20239db4498d5cce85a900755fb433  gcc/testsuite/g++.dg/opt/placeholder1.C
  cf9e1c6c02a4aee1d10b86325166de66  gcc/testsuite/g++.dg/opt/pmf1.C
*************** ff7512105427d8f290f51b22d0cae001  gcc/te
*** 25773,25785 ****
  31aad10c0131b0e4e3859efb82f712ed  gcc/testsuite/g++.dg/opt/pr100852.C
  49c1ecbb3aacea3160338db0218e73d2  gcc/testsuite/g++.dg/opt/pr101162.C
  dca6feccf1e7e07ee6370b06a42e6810  gcc/testsuite/g++.dg/opt/pr101597.C
! 42a75325fdbce13b49d3755c902bfa38  gcc/testsuite/g++.dg/opt/pr102970.C
  abd8b7af1368e21ac1e33d4374b73a24  gcc/testsuite/g++.dg/opt/pr103742.C
  102b63bfa00dba7950bea333464a023e  gcc/testsuite/g++.dg/opt/pr103756.C
  d136e38dee13129995acfc6e78e53437  gcc/testsuite/g++.dg/opt/pr103842.C
  5df975dd16407b09ce95f607721a896a  gcc/testsuite/g++.dg/opt/pr103984.C
! e141ab3f56d2a4720067fd492381fe2e  gcc/testsuite/g++.dg/opt/pr103989.C
  b503536c5b760d3b8bf52f3b09253012  gcc/testsuite/g++.dg/opt/pr104334.C
  4821bda808ec2c117c297e4f155752e3  gcc/testsuite/g++.dg/opt/pr104681.C
  a05f3fe9e917eacdb552f9ade1d73f34  gcc/testsuite/g++.dg/opt/pr104880.C
  bad9496f071793031ea4ab93b911a483  gcc/testsuite/g++.dg/opt/pr105235-1.C
--- 27698,27711 ----
  31aad10c0131b0e4e3859efb82f712ed  gcc/testsuite/g++.dg/opt/pr100852.C
  49c1ecbb3aacea3160338db0218e73d2  gcc/testsuite/g++.dg/opt/pr101162.C
  dca6feccf1e7e07ee6370b06a42e6810  gcc/testsuite/g++.dg/opt/pr101597.C
! a7510e65203e1ef4ddf2076a268d0d1b  gcc/testsuite/g++.dg/opt/pr102970.C
  abd8b7af1368e21ac1e33d4374b73a24  gcc/testsuite/g++.dg/opt/pr103742.C
  102b63bfa00dba7950bea333464a023e  gcc/testsuite/g++.dg/opt/pr103756.C
  d136e38dee13129995acfc6e78e53437  gcc/testsuite/g++.dg/opt/pr103842.C
  5df975dd16407b09ce95f607721a896a  gcc/testsuite/g++.dg/opt/pr103984.C
! d6ec8512f5a1e34e7906eed12da4ba3d  gcc/testsuite/g++.dg/opt/pr103989.C
  b503536c5b760d3b8bf52f3b09253012  gcc/testsuite/g++.dg/opt/pr104334.C
+ fb1736849e3ca82d6870f75abb9c5be7  gcc/testsuite/g++.dg/opt/pr104515.C
  4821bda808ec2c117c297e4f155752e3  gcc/testsuite/g++.dg/opt/pr104681.C
  a05f3fe9e917eacdb552f9ade1d73f34  gcc/testsuite/g++.dg/opt/pr104880.C
  bad9496f071793031ea4ab93b911a483  gcc/testsuite/g++.dg/opt/pr105235-1.C
*************** ebbec8ff132c1bf960fba8ddac82480e  gcc/te
*** 25791,25809 ****
  401696a6d7ff91be17e1e28685ccdbaf  gcc/testsuite/g++.dg/opt/pr108253.C
  0fd8014a8bf41063904c9006c6d3f334  gcc/testsuite/g++.dg/opt/pr108365.C
  2613159e61afceaa9e7ace58beef53f4  gcc/testsuite/g++.dg/opt/pr108854.C
! fc956d5d39ddca9870d1a2fca7df287d  gcc/testsuite/g++.dg/opt/pr109434.C
  b66c56d1ba4ee568e881df0560f18827  gcc/testsuite/g++.dg/opt/pr109462.C
  b8fef9a1bd09e90415f3e35f5466c85c  gcc/testsuite/g++.dg/opt/pr110515.C
! ee83980c52efcd311fdf334e2fd23f42  gcc/testsuite/g++.dg/opt/pr110879.C
  383812316cf5b10e019a5e8d837955b5  gcc/testsuite/g++.dg/opt/pr111601.C
  6b9ff4b9b47e58f0f5a801795c933b05  gcc/testsuite/g++.dg/opt/pr112374.C
  825c715cc564416b76db4cdff16d60ca  gcc/testsuite/g++.dg/opt/pr113705.C
  2896f5b1a96dd9fabb1dbb65cb4c5921  gcc/testsuite/g++.dg/opt/pr13066-1.C
  4f87f86b9f018cae74888e97468b2fe0  gcc/testsuite/g++.dg/opt/pr14029.C
  8fb7e68e9e9b5eb02628e03f5333e645  gcc/testsuite/g++.dg/opt/pr14888.C
  e528f6bb2289dcc1c6827539dc3dc194  gcc/testsuite/g++.dg/opt/pr15054-2.C
  ce93d5cdf106ea7731b61f4421ac7fd8  gcc/testsuite/g++.dg/opt/pr15054.C
! 680ea3809743d092ac547ddcbaa16a89  gcc/testsuite/g++.dg/opt/pr15551.C
  9d59acc2f3b8629051cb020f4bf9a8c6  gcc/testsuite/g++.dg/opt/pr16372-1.C
  5464d960c9f938a5db5e2ec3cd1657fd  gcc/testsuite/g++.dg/opt/pr16693-1.C
  b33d962f4d889b6838bfcd5d254ef7bb  gcc/testsuite/g++.dg/opt/pr16693-2.C
--- 27717,27740 ----
  401696a6d7ff91be17e1e28685ccdbaf  gcc/testsuite/g++.dg/opt/pr108253.C
  0fd8014a8bf41063904c9006c6d3f334  gcc/testsuite/g++.dg/opt/pr108365.C
  2613159e61afceaa9e7ace58beef53f4  gcc/testsuite/g++.dg/opt/pr108854.C
! f95bee7213ea2f6b6e3b2ab894f58b22  gcc/testsuite/g++.dg/opt/pr109434.C
  b66c56d1ba4ee568e881df0560f18827  gcc/testsuite/g++.dg/opt/pr109462.C
  b8fef9a1bd09e90415f3e35f5466c85c  gcc/testsuite/g++.dg/opt/pr110515.C
! 8af61698c633188e5351a6670004c10e  gcc/testsuite/g++.dg/opt/pr110879.C
  383812316cf5b10e019a5e8d837955b5  gcc/testsuite/g++.dg/opt/pr111601.C
  6b9ff4b9b47e58f0f5a801795c933b05  gcc/testsuite/g++.dg/opt/pr112374.C
  825c715cc564416b76db4cdff16d60ca  gcc/testsuite/g++.dg/opt/pr113705.C
+ 0324d31ab64ecdfb74347e2e96dd74d2  gcc/testsuite/g++.dg/opt/pr117439.C
+ 94387ea7c9e026ad351c421a15f8fd93  gcc/testsuite/g++.dg/opt/pr119274.C
+ f974ff4ce09c3f50fcec3f4ce9c39925  gcc/testsuite/g++.dg/opt/pr119518.C
+ c2e43e3226b99fa6ecf149ed5d036d49  gcc/testsuite/g++.dg/opt/pr119613.C
+ 8ae5f63f132f2e69255225e052069238  gcc/testsuite/g++.dg/opt/pr119614.C
  2896f5b1a96dd9fabb1dbb65cb4c5921  gcc/testsuite/g++.dg/opt/pr13066-1.C
  4f87f86b9f018cae74888e97468b2fe0  gcc/testsuite/g++.dg/opt/pr14029.C
  8fb7e68e9e9b5eb02628e03f5333e645  gcc/testsuite/g++.dg/opt/pr14888.C
  e528f6bb2289dcc1c6827539dc3dc194  gcc/testsuite/g++.dg/opt/pr15054-2.C
  ce93d5cdf106ea7731b61f4421ac7fd8  gcc/testsuite/g++.dg/opt/pr15054.C
! 4314f23a39a63707fb2777e5212d5d56  gcc/testsuite/g++.dg/opt/pr15551.C
  9d59acc2f3b8629051cb020f4bf9a8c6  gcc/testsuite/g++.dg/opt/pr16372-1.C
  5464d960c9f938a5db5e2ec3cd1657fd  gcc/testsuite/g++.dg/opt/pr16693-1.C
  b33d962f4d889b6838bfcd5d254ef7bb  gcc/testsuite/g++.dg/opt/pr16693-2.C
*************** ca5cdb74119d9bef0cb07e16f7c3c88e  gcc/te
*** 25847,25853 ****
  a14d9fe93da583646bae33534e888ae6  gcc/testsuite/g++.dg/opt/pr27826.C
  fab88c0645bc906fcbd7a8fc1c71987b  gcc/testsuite/g++.dg/opt/pr28116.C
  547e4433462a6d07971ee26bc624a941  gcc/testsuite/g++.dg/opt/pr30590.C
! 833a6f14703da3525c9c9f80d2de7dfe  gcc/testsuite/g++.dg/opt/pr30965.C
  e2528624f74d72e058180aa73e89ab6b  gcc/testsuite/g++.dg/opt/pr32383.C
  71842297f556c714fefadf55ceea6dde  gcc/testsuite/g++.dg/opt/pr34036.C
  e3e63ced4f57071fce511810c74aa7be  gcc/testsuite/g++.dg/opt/pr36185.C
--- 27778,27784 ----
  a14d9fe93da583646bae33534e888ae6  gcc/testsuite/g++.dg/opt/pr27826.C
  fab88c0645bc906fcbd7a8fc1c71987b  gcc/testsuite/g++.dg/opt/pr28116.C
  547e4433462a6d07971ee26bc624a941  gcc/testsuite/g++.dg/opt/pr30590.C
! 99c659ceedbcf8882cd3f4779a2f1323  gcc/testsuite/g++.dg/opt/pr30965.C
  e2528624f74d72e058180aa73e89ab6b  gcc/testsuite/g++.dg/opt/pr32383.C
  71842297f556c714fefadf55ceea6dde  gcc/testsuite/g++.dg/opt/pr34036.C
  e3e63ced4f57071fce511810c74aa7be  gcc/testsuite/g++.dg/opt/pr36185.C
*************** cd9ce81573f1dd55ed9926ad0afbe423  gcc/te
*** 25924,25938 ****
  70b8c5fe5271089bc9d959cdb9d64688  gcc/testsuite/g++.dg/opt/pr64338.C
  3c1b1ad139bebd3635dac55af68bc9b3  gcc/testsuite/g++.dg/opt/pr64411.C
  64757e568a9c597885a2ba3732520fb6  gcc/testsuite/g++.dg/opt/pr65003.C
! b945a12f6d1f23ffaf6b58c4a52a828d  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! fda0ae8a2c9826bc1333004b721b07fc  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
  d9dcdebd2e533801353507a3a0763dba  gcc/testsuite/g++.dg/opt/pr69164.C
! b3da8230dcce277c8f625318691e7b00  gcc/testsuite/g++.dg/opt/pr69175.C
  c4127c6a85a5245c22454473a56da2d4  gcc/testsuite/g++.dg/opt/pr69211.C
  1ab089b76d9babf3dc96eebadc69802a  gcc/testsuite/g++.dg/opt/pr69213.C
  6fc53b9bb1732aa5522e355f3cad7458  gcc/testsuite/g++.dg/opt/pr69432.C
--- 27855,27869 ----
  70b8c5fe5271089bc9d959cdb9d64688  gcc/testsuite/g++.dg/opt/pr64338.C
  3c1b1ad139bebd3635dac55af68bc9b3  gcc/testsuite/g++.dg/opt/pr64411.C
  64757e568a9c597885a2ba3732520fb6  gcc/testsuite/g++.dg/opt/pr65003.C
! 839e4041ddf7b91f61617c551027273b  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! 44b3ec812920b25a36c3ab1d5fcdf7ff  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
  d9dcdebd2e533801353507a3a0763dba  gcc/testsuite/g++.dg/opt/pr69164.C
! 973385ab664b6de66a57e4622cd1abe5  gcc/testsuite/g++.dg/opt/pr69175.C
  c4127c6a85a5245c22454473a56da2d4  gcc/testsuite/g++.dg/opt/pr69211.C
  1ab089b76d9babf3dc96eebadc69802a  gcc/testsuite/g++.dg/opt/pr69213.C
  6fc53b9bb1732aa5522e355f3cad7458  gcc/testsuite/g++.dg/opt/pr69432.C
*************** ea8361ea831bc7d6110a725ab74d2721  gcc/te
*** 25953,25960 ****
  a380c45913d5ec3d5feed82fd2ba5c78  gcc/testsuite/g++.dg/opt/pr71528.C
  f635f5c3eb615c7f94a708ab4fea5e47  gcc/testsuite/g++.dg/opt/pr71643.C
  90bdbfd9313461944756a9e9f01ce788  gcc/testsuite/g++.dg/opt/pr7503-1.C
! 58cb76fcc2b144e9636ff71add09df4e  gcc/testsuite/g++.dg/opt/pr77844.C
! 66d50c67e8f64c992c151821ad52a1ca  gcc/testsuite/g++.dg/opt/pr78201.C
  f3dcf4259204b530cc008e72440bfe32  gcc/testsuite/g++.dg/opt/pr78373.C
  b8ca536d41e8477bd6c838e3069600de  gcc/testsuite/g++.dg/opt/pr78901.C
  4aecaf86eb3f2b59e22e6b9a2883dad9  gcc/testsuite/g++.dg/opt/pr79085.C
--- 27884,27891 ----
  a380c45913d5ec3d5feed82fd2ba5c78  gcc/testsuite/g++.dg/opt/pr71528.C
  f635f5c3eb615c7f94a708ab4fea5e47  gcc/testsuite/g++.dg/opt/pr71643.C
  90bdbfd9313461944756a9e9f01ce788  gcc/testsuite/g++.dg/opt/pr7503-1.C
! 070b5413005d8c99cdb659b462c6aab4  gcc/testsuite/g++.dg/opt/pr77844.C
! 2b6feebad4b0325edc22f61d348816ca  gcc/testsuite/g++.dg/opt/pr78201.C
  f3dcf4259204b530cc008e72440bfe32  gcc/testsuite/g++.dg/opt/pr78373.C
  b8ca536d41e8477bd6c838e3069600de  gcc/testsuite/g++.dg/opt/pr78901.C
  4aecaf86eb3f2b59e22e6b9a2883dad9  gcc/testsuite/g++.dg/opt/pr79085.C
*************** a9fbf233b631f1d45170b9aacad1f922  gcc/te
*** 25966,25972 ****
  20c2c502d1d361bf9d054c354df3ea06  gcc/testsuite/g++.dg/opt/pr80032.C
  13b71144779d58d731a538c93535bbc5  gcc/testsuite/g++.dg/opt/pr80102.C
  82f0bf4cb38579cf06831526624b0a6e  gcc/testsuite/g++.dg/opt/pr80275.C
! 3793c7fdebffcc14d6e627f6ab5cdb04  gcc/testsuite/g++.dg/opt/pr80385.C
  6f2ff952423a3011c52cacf4acb601f1  gcc/testsuite/g++.dg/opt/pr80436.C
  97574f7cfa38ba2094043dc3a7f02589  gcc/testsuite/g++.dg/opt/pr81715.C
  2b4d4f8e6529784b4ac0ea783ee0f03d  gcc/testsuite/g++.dg/opt/pr82159-2.C
--- 27897,27903 ----
  20c2c502d1d361bf9d054c354df3ea06  gcc/testsuite/g++.dg/opt/pr80032.C
  13b71144779d58d731a538c93535bbc5  gcc/testsuite/g++.dg/opt/pr80102.C
  82f0bf4cb38579cf06831526624b0a6e  gcc/testsuite/g++.dg/opt/pr80275.C
! 56ed25303fe7249131f0cbe0f18889ce  gcc/testsuite/g++.dg/opt/pr80385.C
  6f2ff952423a3011c52cacf4acb601f1  gcc/testsuite/g++.dg/opt/pr80436.C
  97574f7cfa38ba2094043dc3a7f02589  gcc/testsuite/g++.dg/opt/pr81715.C
  2b4d4f8e6529784b4ac0ea783ee0f03d  gcc/testsuite/g++.dg/opt/pr82159-2.C
*************** ef14b1c0d0459097940d563471958957  gcc/te
*** 25983,25989 ****
  b1f567104f98b61d3068d7b7f076ad11  gcc/testsuite/g++.dg/opt/pr84272.C
  0141330ed5da9040d3c1eb2279fd6786  gcc/testsuite/g++.dg/opt/pr85196.C
  6f3ad08af0bde9a7f6cd19695967eedd  gcc/testsuite/g++.dg/opt/pr85393-aux.cc
! e7a93fead9e89e9926c6bc67249dc6b8  gcc/testsuite/g++.dg/opt/pr85393.C
  8e42d22577fcba7db7375bfc7538a252  gcc/testsuite/g++.dg/opt/pr86214-1.C
  5403f85157bedfc2573b4017f847c4dd  gcc/testsuite/g++.dg/opt/pr86214-2.C
  04068c57cba4335147af1eb35680de4a  gcc/testsuite/g++.dg/opt/pr86738.C
--- 27914,27920 ----
  b1f567104f98b61d3068d7b7f076ad11  gcc/testsuite/g++.dg/opt/pr84272.C
  0141330ed5da9040d3c1eb2279fd6786  gcc/testsuite/g++.dg/opt/pr85196.C
  6f3ad08af0bde9a7f6cd19695967eedd  gcc/testsuite/g++.dg/opt/pr85393-aux.cc
! eee2a83edcfa8890f7a7201c455392c6  gcc/testsuite/g++.dg/opt/pr85393.C
  8e42d22577fcba7db7375bfc7538a252  gcc/testsuite/g++.dg/opt/pr86214-1.C
  5403f85157bedfc2573b4017f847c4dd  gcc/testsuite/g++.dg/opt/pr86214-2.C
  04068c57cba4335147af1eb35680de4a  gcc/testsuite/g++.dg/opt/pr86738.C
*************** ff54f63e52e3444bd7aedf460b32bbed  gcc/te
*** 26008,26028 ****
  b03c5d0e937da578dd550b5d84ff402f  gcc/testsuite/g++.dg/opt/pr93187.C
  3cef04dbbe89228e489325998f3a9b32  gcc/testsuite/g++.dg/opt/pr93210.C
  f75f3f4635c40b43f89ebcbc943c4cac  gcc/testsuite/g++.dg/opt/pr93292.C
! 8c9f6ff817f97b4a9a7a5efc31b4c885  gcc/testsuite/g++.dg/opt/pr94223.C
  ead957b0577914db81f592ac5a260cc6  gcc/testsuite/g++.dg/opt/pr94441.C
  6df5004704796dc776e18fced94a434f  gcc/testsuite/g++.dg/opt/pr94468.C
  37bafc89b07fae686fd0375c877bb6ec  gcc/testsuite/g++.dg/opt/pr94589-1.C
  058fea5f8549aa92b69d316fbec84f04  gcc/testsuite/g++.dg/opt/pr94589-2.C
  fbf31592874c852b0610411198cae900  gcc/testsuite/g++.dg/opt/pr94589-3.C
  c8d100425b84f9c19e66b664f68a043b  gcc/testsuite/g++.dg/opt/pr94589-4.C
  dacd41d6dbf618fb881768d6a068d7f1  gcc/testsuite/g++.dg/opt/pr94618.C
  68efdf843522ab51908aa0aba5c03000  gcc/testsuite/g++.dg/opt/pr95080.C
  676550989cb8fb3f894f5522d6476c32  gcc/testsuite/g++.dg/opt/pr95528.C
  2ae3bd1284401f329edadc0752cf28be  gcc/testsuite/g++.dg/opt/pr96194.C
  2f5723dc00ebdebb54dc9e15de17ee39  gcc/testsuite/g++.dg/opt/pr96354.C
  dcb0e957efba822ddb1534eef4cc12de  gcc/testsuite/g++.dg/opt/pr96722.C
! 499506770018be9affe6ec8762622f4c  gcc/testsuite/g++.dg/opt/pr96780.C
! 4b753129b68995eae44509f12e5d1b7f  gcc/testsuite/g++.dg/opt/pr97315-1.C
  79549a33c6d768c44bac8faf72935e35  gcc/testsuite/g++.dg/opt/pr97767.C
  4ef3daa69807c9e8a0d77dc39f9f81d5  gcc/testsuite/g++.dg/opt/pr98130.C
  74487436d9724e422f05da3a16a1c6fe  gcc/testsuite/g++.dg/opt/pr98282.C
--- 27939,27961 ----
  b03c5d0e937da578dd550b5d84ff402f  gcc/testsuite/g++.dg/opt/pr93187.C
  3cef04dbbe89228e489325998f3a9b32  gcc/testsuite/g++.dg/opt/pr93210.C
  f75f3f4635c40b43f89ebcbc943c4cac  gcc/testsuite/g++.dg/opt/pr93292.C
! df22a0849cfa952e5be5abf4e29d5831  gcc/testsuite/g++.dg/opt/pr94223.C
  ead957b0577914db81f592ac5a260cc6  gcc/testsuite/g++.dg/opt/pr94441.C
  6df5004704796dc776e18fced94a434f  gcc/testsuite/g++.dg/opt/pr94468.C
  37bafc89b07fae686fd0375c877bb6ec  gcc/testsuite/g++.dg/opt/pr94589-1.C
  058fea5f8549aa92b69d316fbec84f04  gcc/testsuite/g++.dg/opt/pr94589-2.C
  fbf31592874c852b0610411198cae900  gcc/testsuite/g++.dg/opt/pr94589-3.C
  c8d100425b84f9c19e66b664f68a043b  gcc/testsuite/g++.dg/opt/pr94589-4.C
+ 773505f38171e49de90c7709bc3fe5a4  gcc/testsuite/g++.dg/opt/pr94589-5.C
+ ac325b8a5465a9069dcb40f706f71e15  gcc/testsuite/g++.dg/opt/pr94589-6.C
  dacd41d6dbf618fb881768d6a068d7f1  gcc/testsuite/g++.dg/opt/pr94618.C
  68efdf843522ab51908aa0aba5c03000  gcc/testsuite/g++.dg/opt/pr95080.C
  676550989cb8fb3f894f5522d6476c32  gcc/testsuite/g++.dg/opt/pr95528.C
  2ae3bd1284401f329edadc0752cf28be  gcc/testsuite/g++.dg/opt/pr96194.C
  2f5723dc00ebdebb54dc9e15de17ee39  gcc/testsuite/g++.dg/opt/pr96354.C
  dcb0e957efba822ddb1534eef4cc12de  gcc/testsuite/g++.dg/opt/pr96722.C
! 19a7ef730f644c2da2b365f4a10de104  gcc/testsuite/g++.dg/opt/pr96780.C
! 3bf961a4520c48f07218697246838038  gcc/testsuite/g++.dg/opt/pr97315-1.C
  79549a33c6d768c44bac8faf72935e35  gcc/testsuite/g++.dg/opt/pr97767.C
  4ef3daa69807c9e8a0d77dc39f9f81d5  gcc/testsuite/g++.dg/opt/pr98130.C
  74487436d9724e422f05da3a16a1c6fe  gcc/testsuite/g++.dg/opt/pr98282.C
*************** dcb0e957efba822ddb1534eef4cc12de  gcc/te
*** 26030,26036 ****
  1feebed1bf569600f59cb65977c1a897  gcc/testsuite/g++.dg/opt/pr98403.C
  f891e81674aaa6ff000b9d68221e0a78  gcc/testsuite/g++.dg/opt/pr98464.C
  c0b1b7801571c037b0d819bb1b2fd897  gcc/testsuite/g++.dg/opt/pr98550.C
! c053dc5cfc80e82d4a13e2b993212e58  gcc/testsuite/g++.dg/opt/pr98743.C
  4ac62e4a2244c1f9840d274f8c85a2d7  gcc/testsuite/g++.dg/opt/pr98834.C
  841b31767df25235634c79f15b505601  gcc/testsuite/g++.dg/opt/pr99034.C
  ddf3cfcb6556d3f65d76b61d63c8f12d  gcc/testsuite/g++.dg/opt/pr99305.C
--- 27963,27969 ----
  1feebed1bf569600f59cb65977c1a897  gcc/testsuite/g++.dg/opt/pr98403.C
  f891e81674aaa6ff000b9d68221e0a78  gcc/testsuite/g++.dg/opt/pr98464.C
  c0b1b7801571c037b0d819bb1b2fd897  gcc/testsuite/g++.dg/opt/pr98550.C
! 37e797fe21e7fb9531e0127f82844cbb  gcc/testsuite/g++.dg/opt/pr98743.C
  4ac62e4a2244c1f9840d274f8c85a2d7  gcc/testsuite/g++.dg/opt/pr98834.C
  841b31767df25235634c79f15b505601  gcc/testsuite/g++.dg/opt/pr99034.C
  ddf3cfcb6556d3f65d76b61d63c8f12d  gcc/testsuite/g++.dg/opt/pr99305.C
*************** e269c16ecf97c6c4ed676a410b5ddf4a  gcc/te
*** 26053,26062 ****
  db27c1fd21ac905678bdd2950b920236  gcc/testsuite/g++.dg/opt/reg-stack4.C
  25e9962e240d8c8ed05cecb4820f38d3  gcc/testsuite/g++.dg/opt/reload1.C
  eea08af86e12b2945858317c96c4626e  gcc/testsuite/g++.dg/opt/reload2.C
! 956e06e814d6206eb0d5c45bb49e6d91  gcc/testsuite/g++.dg/opt/reload3.C
  a4e2bdb9174507bf70f14cd4c90d78d0  gcc/testsuite/g++.dg/opt/return-slot1.C
  823775aaa479e3ad245323d4d8a2605c  gcc/testsuite/g++.dg/opt/rtti1.C
  86f37428153f2503110eee8bbb401a58  gcc/testsuite/g++.dg/opt/rtti2.C
  64cddd41580d4c444ced76036ddd036a  gcc/testsuite/g++.dg/opt/stack1.C
  397b0ee96b240fd68f4c0aade2337049  gcc/testsuite/g++.dg/opt/stack2.C
  58e8dee52431dafad875b7e31ec97e9b  gcc/testsuite/g++.dg/opt/static1.C
--- 27986,27996 ----
  db27c1fd21ac905678bdd2950b920236  gcc/testsuite/g++.dg/opt/reg-stack4.C
  25e9962e240d8c8ed05cecb4820f38d3  gcc/testsuite/g++.dg/opt/reload1.C
  eea08af86e12b2945858317c96c4626e  gcc/testsuite/g++.dg/opt/reload2.C
! 8a0354791346ff997ee5bfd985a5650a  gcc/testsuite/g++.dg/opt/reload3.C
  a4e2bdb9174507bf70f14cd4c90d78d0  gcc/testsuite/g++.dg/opt/return-slot1.C
  823775aaa479e3ad245323d4d8a2605c  gcc/testsuite/g++.dg/opt/rtti1.C
  86f37428153f2503110eee8bbb401a58  gcc/testsuite/g++.dg/opt/rtti2.C
+ 637a853b4243b313e907d6aba5b07b4d  gcc/testsuite/g++.dg/opt/shrink-wrapping-vector-1.C
  64cddd41580d4c444ced76036ddd036a  gcc/testsuite/g++.dg/opt/stack1.C
  397b0ee96b240fd68f4c0aade2337049  gcc/testsuite/g++.dg/opt/stack2.C
  58e8dee52431dafad875b7e31ec97e9b  gcc/testsuite/g++.dg/opt/static1.C
*************** a0196ebfddfdcb265613530b34c75302  gcc/te
*** 26113,26118 ****
--- 28047,28054 ----
  662c11d709b6ca85c73287be5207f3ac  gcc/testsuite/g++.dg/other/anon-union3.C
  7ea92f81a45b2537512cf880ee35fe92  gcc/testsuite/g++.dg/other/anon-union4.C
  d0b5965b4982fc2453056380914a719f  gcc/testsuite/g++.dg/other/anon-union5.C
+ 498c728995604cce6cd6fb0603cfbad8  gcc/testsuite/g++.dg/other/anon-union6.C
+ 4f90ececca3ff47581ca71749fda9c86  gcc/testsuite/g++.dg/other/anon-union7.C
  25bec11b40119085408d52eaa5b86f6e  gcc/testsuite/g++.dg/other/anon2.C
  ac03cab67f2c4f5731d36b19f2ee4f42  gcc/testsuite/g++.dg/other/anon3.C
  735bc52cab8eca56a711c2c10845c981  gcc/testsuite/g++.dg/other/anon4.C
*************** ede64dddd03466b447936e432e790490  gcc/te
*** 26251,26260 ****
  923deeaf0bd20d47af409e023b97927b  gcc/testsuite/g++.dg/other/final4.C
  f26cb43d368c3a14e3fa451efed565f3  gcc/testsuite/g++.dg/other/final5.C
  c041149378c552e9874a0374f62ad31c  gcc/testsuite/g++.dg/other/final6.C
! 2fc9738a73e4f8b916debc589b866f17  gcc/testsuite/g++.dg/other/final7.C
  163bcd4bd01f89ac47b4d7dc46f284e0  gcc/testsuite/g++.dg/other/final8.C
  455aeb7100537f75958e97507174848d  gcc/testsuite/g++.dg/other/first-global.C
! 271ede665ea53aa90acbfcebfe14c997  gcc/testsuite/g++.dg/other/fold1.C
  4e454805fdba784ccf383bf015fee2fc  gcc/testsuite/g++.dg/other/friend1.C
  05c180668843d022a8a9eb75a81b00da  gcc/testsuite/g++.dg/other/friend10.C
  23b3bc92900f21dac6ad12f2b3733908  gcc/testsuite/g++.dg/other/friend11.C
--- 28187,28196 ----
  923deeaf0bd20d47af409e023b97927b  gcc/testsuite/g++.dg/other/final4.C
  f26cb43d368c3a14e3fa451efed565f3  gcc/testsuite/g++.dg/other/final5.C
  c041149378c552e9874a0374f62ad31c  gcc/testsuite/g++.dg/other/final6.C
! 8643c802d71c37a4afd26ed023470e83  gcc/testsuite/g++.dg/other/final7.C
  163bcd4bd01f89ac47b4d7dc46f284e0  gcc/testsuite/g++.dg/other/final8.C
  455aeb7100537f75958e97507174848d  gcc/testsuite/g++.dg/other/first-global.C
! faf161256e00475aabf52967849c4ffa  gcc/testsuite/g++.dg/other/fold1.C
  4e454805fdba784ccf383bf015fee2fc  gcc/testsuite/g++.dg/other/friend1.C
  05c180668843d022a8a9eb75a81b00da  gcc/testsuite/g++.dg/other/friend10.C
  23b3bc92900f21dac6ad12f2b3733908  gcc/testsuite/g++.dg/other/friend11.C
*************** bc5371eb8e8dcf79efb0889828991560  gcc/te
*** 26281,26294 ****
  47195a1b7ad4c24c5ccc7cbf50e26bb0  gcc/testsuite/g++.dg/other/gc5.C
  a526cd2f6c0f7190ee33480a675c4cfc  gcc/testsuite/g++.dg/other/gc6.C
  eda67a8394a25b381e47971e78264eba  gcc/testsuite/g++.dg/other/gc7.C
! 3ca5017faf45f39326ff4e30a1ec1ba8  gcc/testsuite/g++.dg/other/i386-1.C
  9913a24914ce11f6a0606c70ed58cb96  gcc/testsuite/g++.dg/other/i386-10.C
! 8925c3efd781e76570846cfd6f817fd2  gcc/testsuite/g++.dg/other/i386-11.C
! afb86d6e25534682d37c3f9e1e46c7b3  gcc/testsuite/g++.dg/other/i386-2.C
! 367a4d9b2b3341b710aec876bfcdbf08  gcc/testsuite/g++.dg/other/i386-3.C
! a4ad4c2cb3c1448496351241a77aedb7  gcc/testsuite/g++.dg/other/i386-4.C
! a32a5af1b4c57aabcbdaa817835a698d  gcc/testsuite/g++.dg/other/i386-7.C
! b3ef431f4cf4776208d7042aff2ddb83  gcc/testsuite/g++.dg/other/i386-8.C
  afdbb57e3b1e56a7ebb77163f47c43be  gcc/testsuite/g++.dg/other/i386-9.C
  cc1ca2bf9b477d018fa43d900031841d  gcc/testsuite/g++.dg/other/incomplete1.C
  bee055c5d0b0529b757a3e92819face1  gcc/testsuite/g++.dg/other/incomplete2.C
--- 28217,28230 ----
  47195a1b7ad4c24c5ccc7cbf50e26bb0  gcc/testsuite/g++.dg/other/gc5.C
  a526cd2f6c0f7190ee33480a675c4cfc  gcc/testsuite/g++.dg/other/gc6.C
  eda67a8394a25b381e47971e78264eba  gcc/testsuite/g++.dg/other/gc7.C
! 1dbd130359f81ed3f6a910388f6256c8  gcc/testsuite/g++.dg/other/i386-1.C
  9913a24914ce11f6a0606c70ed58cb96  gcc/testsuite/g++.dg/other/i386-10.C
! 3dd6e4901e3efacc8cfe5e0a42c2f8ea  gcc/testsuite/g++.dg/other/i386-11.C
! 428d502c55ed43d8e03f5b179d89fe39  gcc/testsuite/g++.dg/other/i386-2.C
! 0a01ada008d71334088a63f04f1023c2  gcc/testsuite/g++.dg/other/i386-3.C
! 790380b4fd2857df28a8cc91aee8e723  gcc/testsuite/g++.dg/other/i386-4.C
! a47898b2c05fe055ea86fee50e074f30  gcc/testsuite/g++.dg/other/i386-7.C
! d92b54f21af3cda5d260ebf4a5d1b347  gcc/testsuite/g++.dg/other/i386-8.C
  afdbb57e3b1e56a7ebb77163f47c43be  gcc/testsuite/g++.dg/other/i386-9.C
  cc1ca2bf9b477d018fa43d900031841d  gcc/testsuite/g++.dg/other/incomplete1.C
  bee055c5d0b0529b757a3e92819face1  gcc/testsuite/g++.dg/other/incomplete2.C
*************** a9c2bd4786300d7cf805e7ef57335a2c  gcc/te
*** 26307,26313 ****
  7603e3e5185c1b4aaf6b806ea7dc4dee  gcc/testsuite/g++.dg/other/main1.C
  f90c8d6149f32ba2d05926d185233e6f  gcc/testsuite/g++.dg/other/main2.C
  452d570f73a334919cfa670c983dc7af  gcc/testsuite/g++.dg/other/main3.C
! 688ada87fb447bcc4f314e612d65b84b  gcc/testsuite/g++.dg/other/mmintrin.C
  abd91675832288668edaa0df6a506f18  gcc/testsuite/g++.dg/other/mult-stor1.C
  ebb91c2b0072fbe70f09b0fb26a8cb70  gcc/testsuite/g++.dg/other/nested-extern-1.C
  d32079973d903931a6a5e3a3f13eb2c2  gcc/testsuite/g++.dg/other/nested-extern-1.cc
--- 28243,28249 ----
  7603e3e5185c1b4aaf6b806ea7dc4dee  gcc/testsuite/g++.dg/other/main1.C
  f90c8d6149f32ba2d05926d185233e6f  gcc/testsuite/g++.dg/other/main2.C
  452d570f73a334919cfa670c983dc7af  gcc/testsuite/g++.dg/other/main3.C
! f998a3fa8f2c84f76b882dddd6d005d6  gcc/testsuite/g++.dg/other/mmintrin.C
  abd91675832288668edaa0df6a506f18  gcc/testsuite/g++.dg/other/mult-stor1.C
  ebb91c2b0072fbe70f09b0fb26a8cb70  gcc/testsuite/g++.dg/other/nested-extern-1.C
  d32079973d903931a6a5e3a3f13eb2c2  gcc/testsuite/g++.dg/other/nested-extern-1.cc
*************** cb516f165c38ec2709ca2cb55d0361de  gcc/te
*** 26328,26338 ****
  37c7e11e9af894214a6a28291192882d  gcc/testsuite/g++.dg/other/offsetof8.C
  d1890389f5f562271d7e893ae4fd7589  gcc/testsuite/g++.dg/other/offsetof9.C
  9577356b5786a4ceb413af9744855254  gcc/testsuite/g++.dg/other/old-style-cast-fixits.C
- cac3a2322a3125e5a823dc9f229c758f  gcc/testsuite/g++.dg/other/opaque-1.C
- 7a5dbd4caee5a237ac3f6d7a6f714ae4  gcc/testsuite/g++.dg/other/opaque-2.C
- 65ca5d2233ccb3f4a0b5a56b450d91f9  gcc/testsuite/g++.dg/other/opaque-3.C
  9bd2a3c1afdd7e84e6e2de30de18d305  gcc/testsuite/g++.dg/other/operator1.C
! 5aee1ce1a5ded079aafc86ef8d346c95  gcc/testsuite/g++.dg/other/operator2.C
  da1ba255024d00bac0a97620f4ffaba7  gcc/testsuite/g++.dg/other/operator3.C
  983bbfea996145b298440ca410c9fb19  gcc/testsuite/g++.dg/other/operator4.C
  6be92beab52e0fd0c83b0cabc3f7e83a  gcc/testsuite/g++.dg/other/packed1.C
--- 28264,28271 ----
  37c7e11e9af894214a6a28291192882d  gcc/testsuite/g++.dg/other/offsetof8.C
  d1890389f5f562271d7e893ae4fd7589  gcc/testsuite/g++.dg/other/offsetof9.C
  9577356b5786a4ceb413af9744855254  gcc/testsuite/g++.dg/other/old-style-cast-fixits.C
  9bd2a3c1afdd7e84e6e2de30de18d305  gcc/testsuite/g++.dg/other/operator1.C
! a2c9db1513f9db5ef5160c0eb7d9c637  gcc/testsuite/g++.dg/other/operator2.C
  da1ba255024d00bac0a97620f4ffaba7  gcc/testsuite/g++.dg/other/operator3.C
  983bbfea996145b298440ca410c9fb19  gcc/testsuite/g++.dg/other/operator4.C
  6be92beab52e0fd0c83b0cabc3f7e83a  gcc/testsuite/g++.dg/other/packed1.C
*************** a7f0f2c1d80a46d3283257e09b5b8611  gcc/te
*** 26341,26346 ****
--- 28274,28280 ----
  c5b17ec8776b6efea2d581feee1eee63  gcc/testsuite/g++.dg/other/pr113617-aux.cc
  7f6f8196eb6eae36b43ff96f94e48737  gcc/testsuite/g++.dg/other/pr113617.C
  a9facf6d9509cb68d6b2b62cd3645688  gcc/testsuite/g++.dg/other/pr113617.h
+ f4bb431c848d4b8591c30c861f41d6cd  gcc/testsuite/g++.dg/other/pr117516.C
  f43f96bf3c378817b959c22aee3466c0  gcc/testsuite/g++.dg/other/pr20366.C
  972110c0d861ecae87ae8ad4d861dd0f  gcc/testsuite/g++.dg/other/pr22003.C
  57901344b69ec7b216bf1128cc5a7242  gcc/testsuite/g++.dg/other/pr22358.C
*************** be1a24b0d870b3d97b309bf9cf454383  gcc/te
*** 26355,26361 ****
  0f2a7bff0be04943ce8d960d7d18c321  gcc/testsuite/g++.dg/other/pr33558-2.C
  cdb0690d5ccabd89d3f2a5358e496e8f  gcc/testsuite/g++.dg/other/pr33558.C
  47c3e5b8844cd1d867dcffd6b821201f  gcc/testsuite/g++.dg/other/pr33601.C
! 47a370bdf6f3680e4929c23a0cdc94af  gcc/testsuite/g++.dg/other/pr34435.C
  0a4dec0aed98e1bcb431b3643ea74a56  gcc/testsuite/g++.dg/other/pr35504.C
  8063a4cb70e924f46779754da6c98175  gcc/testsuite/g++.dg/other/pr36944.C
  29dc51371e7e218914330b55739b55e1  gcc/testsuite/g++.dg/other/pr37394.C
--- 28289,28295 ----
  0f2a7bff0be04943ce8d960d7d18c321  gcc/testsuite/g++.dg/other/pr33558-2.C
  cdb0690d5ccabd89d3f2a5358e496e8f  gcc/testsuite/g++.dg/other/pr33558.C
  47c3e5b8844cd1d867dcffd6b821201f  gcc/testsuite/g++.dg/other/pr33601.C
! 6d1e102b432f26b747aa84094bd1e973  gcc/testsuite/g++.dg/other/pr34435.C
  0a4dec0aed98e1bcb431b3643ea74a56  gcc/testsuite/g++.dg/other/pr35504.C
  8063a4cb70e924f46779754da6c98175  gcc/testsuite/g++.dg/other/pr36944.C
  29dc51371e7e218914330b55739b55e1  gcc/testsuite/g++.dg/other/pr37394.C
*************** cdb0690d5ccabd89d3f2a5358e496e8f  gcc/te
*** 26363,26370 ****
  e7318945c51d3bbaf1fa1d922b1661f3  gcc/testsuite/g++.dg/other/pr38706.C
  79b61aece5527446fb2380d475ff596b  gcc/testsuite/g++.dg/other/pr39060.C
  14cd5913702333a4982d44b3769179f0  gcc/testsuite/g++.dg/other/pr39496.C
! 7a396754c07c42c3d37a44d7027e240e  gcc/testsuite/g++.dg/other/pr40446.C
! 5c8c2604c08c57cb2c21770bf3b416bf  gcc/testsuite/g++.dg/other/pr40561.C
  2592103add791544a014ef659863288e  gcc/testsuite/g++.dg/other/pr42645-1.C
  872da29cdd0560a269022123df0043b7  gcc/testsuite/g++.dg/other/pr42645-2.C
  17309afbd34e4b010edce7cdf8af0393  gcc/testsuite/g++.dg/other/pr42685.C
--- 28297,28304 ----
  e7318945c51d3bbaf1fa1d922b1661f3  gcc/testsuite/g++.dg/other/pr38706.C
  79b61aece5527446fb2380d475ff596b  gcc/testsuite/g++.dg/other/pr39060.C
  14cd5913702333a4982d44b3769179f0  gcc/testsuite/g++.dg/other/pr39496.C
! 0ddef0bde58e2128b2f8b06534bb13b3  gcc/testsuite/g++.dg/other/pr40446.C
! e84cfd219729be4da8f87509b508dee9  gcc/testsuite/g++.dg/other/pr40561.C
  2592103add791544a014ef659863288e  gcc/testsuite/g++.dg/other/pr42645-1.C
  872da29cdd0560a269022123df0043b7  gcc/testsuite/g++.dg/other/pr42645-2.C
  17309afbd34e4b010edce7cdf8af0393  gcc/testsuite/g++.dg/other/pr42685.C
*************** d1a876567d4315b25ada60d25ecbd98f  gcc/te
*** 26374,26380 ****
  e0e06cbf9366681f45c99562c024c9a4  gcc/testsuite/g++.dg/other/pr47218-1.C
  541332783e0ab904e2f5e71e9eeba0e2  gcc/testsuite/g++.dg/other/pr47218.C
  ef38f5b3be38fda6179b64ceb2f6abc8  gcc/testsuite/g++.dg/other/pr47218.h
! bbfdbf39dac3f32203388a2dad06f24a  gcc/testsuite/g++.dg/other/pr49133.C
  3f80d803f33ca352a2d86ba6db9d48fe  gcc/testsuite/g++.dg/other/pr49912.C
  ac3ba0e4d0da02a871ab3d83b9cc0bf2  gcc/testsuite/g++.dg/other/pr50212.C
  36a8c3554403443884b8a9901e71ac7e  gcc/testsuite/g++.dg/other/pr50464.C
--- 28308,28314 ----
  e0e06cbf9366681f45c99562c024c9a4  gcc/testsuite/g++.dg/other/pr47218-1.C
  541332783e0ab904e2f5e71e9eeba0e2  gcc/testsuite/g++.dg/other/pr47218.C
  ef38f5b3be38fda6179b64ceb2f6abc8  gcc/testsuite/g++.dg/other/pr47218.h
! e80023e857ece3edbc7d1773dfefc39b  gcc/testsuite/g++.dg/other/pr49133.C
  3f80d803f33ca352a2d86ba6db9d48fe  gcc/testsuite/g++.dg/other/pr49912.C
  ac3ba0e4d0da02a871ab3d83b9cc0bf2  gcc/testsuite/g++.dg/other/pr50212.C
  36a8c3554403443884b8a9901e71ac7e  gcc/testsuite/g++.dg/other/pr50464.C
*************** a858eb635022d11c2de48befef4bc9c9  gcc/te
*** 26385,26392 ****
  1c3d9bf135ffc7cc603bc74e12c322d8  gcc/testsuite/g++.dg/other/pr55073.C
  b0b6f71b5ed6569f39d6b7acb7d497be  gcc/testsuite/g++.dg/other/pr55650.C
  0da6ae1a686a791137078c463ee29dd7  gcc/testsuite/g++.dg/other/pr55650.cc
! 7fd36ebe5cb7da0f081971db0688d294  gcc/testsuite/g++.dg/other/pr56184.C
! 6f940fbc89f075c25fd1be89c0f9184e  gcc/testsuite/g++.dg/other/pr59985.C
  fa29a2b92ef22dfc72f3bdb43569f4a3  gcc/testsuite/g++.dg/other/pr60675.C
  b9797df675e666346a70acacf8fbe0b5  gcc/testsuite/g++.dg/other/pr61753.C
  3634dbc3147618af0685ced6e33189ea  gcc/testsuite/g++.dg/other/pr63815.C
--- 28319,28326 ----
  1c3d9bf135ffc7cc603bc74e12c322d8  gcc/testsuite/g++.dg/other/pr55073.C
  b0b6f71b5ed6569f39d6b7acb7d497be  gcc/testsuite/g++.dg/other/pr55650.C
  0da6ae1a686a791137078c463ee29dd7  gcc/testsuite/g++.dg/other/pr55650.cc
! c3501dbe2fc3804a70d3677d75b7170d  gcc/testsuite/g++.dg/other/pr56184.C
! 8c1c44f838026a43e3fda895556460f7  gcc/testsuite/g++.dg/other/pr59985.C
  fa29a2b92ef22dfc72f3bdb43569f4a3  gcc/testsuite/g++.dg/other/pr60675.C
  b9797df675e666346a70acacf8fbe0b5  gcc/testsuite/g++.dg/other/pr61753.C
  3634dbc3147618af0685ced6e33189ea  gcc/testsuite/g++.dg/other/pr63815.C
*************** a0e823e69e02d21c09fddd6ef53d51e3  gcc/te
*** 26421,26427 ****
  3db2eb8b4ba6c11f00978ab4a8a8a0a7  gcc/testsuite/g++.dg/other/pr95231.C
  2b96e0cda3aaa703c284fca6a0dd72c9  gcc/testsuite/g++.dg/other/pragma-re-1.C
  bdec0c9208af6ee3a9ab1f2c07d3ba19  gcc/testsuite/g++.dg/other/pragma-re-2.C
! f804e6064a0c7cd94d73f58ba8f6e5e0  gcc/testsuite/g++.dg/other/profile1.C
  aeacbd129aa91e6acca9b9022f8e03ba  gcc/testsuite/g++.dg/other/ptrmem1.C
  b0c8ed8d1b0b33a4572119b47d6bf3a1  gcc/testsuite/g++.dg/other/ptrmem10.C
  b60b1ce8e8447af806ecec748ab8bea1  gcc/testsuite/g++.dg/other/ptrmem11.C
--- 28355,28361 ----
  3db2eb8b4ba6c11f00978ab4a8a8a0a7  gcc/testsuite/g++.dg/other/pr95231.C
  2b96e0cda3aaa703c284fca6a0dd72c9  gcc/testsuite/g++.dg/other/pragma-re-1.C
  bdec0c9208af6ee3a9ab1f2c07d3ba19  gcc/testsuite/g++.dg/other/pragma-re-2.C
! 9f6f838bef1e7f23f30e26cc8dd0de5d  gcc/testsuite/g++.dg/other/profile1.C
  aeacbd129aa91e6acca9b9022f8e03ba  gcc/testsuite/g++.dg/other/ptrmem1.C
  b0c8ed8d1b0b33a4572119b47d6bf3a1  gcc/testsuite/g++.dg/other/ptrmem10.C
  b60b1ce8e8447af806ecec748ab8bea1  gcc/testsuite/g++.dg/other/ptrmem11.C
*************** c1ee7e4e5d2dfa36042c3417fffae465  gcc/te
*** 26438,26448 ****
  fa56113db0f4a64e5dd4543612cc1522  gcc/testsuite/g++.dg/other/redecl2.C
  b5daabfae1afe27bec64ee89277ba4ec  gcc/testsuite/g++.dg/other/redecl3.C
  c5fc831f4230513b5f02a1aad917c686  gcc/testsuite/g++.dg/other/return1.C
! 7e22b1a979aeafeba7f3a176d2f3a57d  gcc/testsuite/g++.dg/other/return2.C
  6c164a00f937e457895437563cb4fbc2  gcc/testsuite/g++.dg/other/s390-1.C
  97e48186eadf96baa75dab50f7628d6a  gcc/testsuite/g++.dg/other/scope1.C
  a2a80603fcddfe63208d0fe7940f2149  gcc/testsuite/g++.dg/other/semicolon.C
! 4db8e5745090b406932240672ccb8e5c  gcc/testsuite/g++.dg/other/sse2-pr85572-1.C
  7101dd3d8948d81899593208c95009c1  gcc/testsuite/g++.dg/other/sse2-pr85572-2.C
  f9ca50b6e63332cd9218b158f25436d8  gcc/testsuite/g++.dg/other/sse4-pr85572-1.C
  2224c373f6ef60421d14c9389ef3412d  gcc/testsuite/g++.dg/other/static1.C
--- 28372,28382 ----
  fa56113db0f4a64e5dd4543612cc1522  gcc/testsuite/g++.dg/other/redecl2.C
  b5daabfae1afe27bec64ee89277ba4ec  gcc/testsuite/g++.dg/other/redecl3.C
  c5fc831f4230513b5f02a1aad917c686  gcc/testsuite/g++.dg/other/return1.C
! 52ba4e4732110ea7b666a80cbd41e83b  gcc/testsuite/g++.dg/other/return2.C
  6c164a00f937e457895437563cb4fbc2  gcc/testsuite/g++.dg/other/s390-1.C
  97e48186eadf96baa75dab50f7628d6a  gcc/testsuite/g++.dg/other/scope1.C
  a2a80603fcddfe63208d0fe7940f2149  gcc/testsuite/g++.dg/other/semicolon.C
! 21211dc1a2fc73ebecce062818a7e65b  gcc/testsuite/g++.dg/other/sse2-pr85572-1.C
  7101dd3d8948d81899593208c95009c1  gcc/testsuite/g++.dg/other/sse2-pr85572-2.C
  f9ca50b6e63332cd9218b158f25436d8  gcc/testsuite/g++.dg/other/sse4-pr85572-1.C
  2224c373f6ef60421d14c9389ef3412d  gcc/testsuite/g++.dg/other/static1.C
*************** f8dc723a51d7ae25d4c82158123aefaf  gcc/te
*** 26467,26474 ****
  2ae83dd33030d45c71b8674e327b61aa  gcc/testsuite/g++.dg/other/typedef2.C
  63b5dd85a5674b05a85ae628679572b0  gcc/testsuite/g++.dg/other/typedef3.C
  b69dc2479f4dab741a9c03d2e626d4ea  gcc/testsuite/g++.dg/other/typedef4.C
! 80842e6946e12093d9a73745126f1781  gcc/testsuite/g++.dg/other/ucnid-1-utf8.C
! 6633cdd77727369dd2174edb120422bb  gcc/testsuite/g++.dg/other/ucnid-1.C
  5c2adc76f21ce8f7182fe1930db8db73  gcc/testsuite/g++.dg/other/unreachable1.C
  54c43007c45d973d99536b40a21a0a10  gcc/testsuite/g++.dg/other/unused1.C
  d94dedac2a05c257cba7f3d7bb2287f4  gcc/testsuite/g++.dg/other/var_copy-1.C
--- 28401,28408 ----
  2ae83dd33030d45c71b8674e327b61aa  gcc/testsuite/g++.dg/other/typedef2.C
  63b5dd85a5674b05a85ae628679572b0  gcc/testsuite/g++.dg/other/typedef3.C
  b69dc2479f4dab741a9c03d2e626d4ea  gcc/testsuite/g++.dg/other/typedef4.C
! 6ab71d716eff91168f2540e1d6e06c2b  gcc/testsuite/g++.dg/other/ucnid-1-utf8.C
! 3f9c232389a707da2566efc5788dcf7b  gcc/testsuite/g++.dg/other/ucnid-1.C
  5c2adc76f21ce8f7182fe1930db8db73  gcc/testsuite/g++.dg/other/unreachable1.C
  54c43007c45d973d99536b40a21a0a10  gcc/testsuite/g++.dg/other/unused1.C
  d94dedac2a05c257cba7f3d7bb2287f4  gcc/testsuite/g++.dg/other/var_copy-1.C
*************** de750a0f45576779662c617a85381256  gcc/te
*** 26489,26494 ****
--- 28423,28429 ----
  e01d22af2bf54a4df755dfb677defefb  gcc/testsuite/g++.dg/overload/VLA.C
  e8ac1525d5c9d5904705096271ad2901  gcc/testsuite/g++.dg/overload/addr1.C
  e78713a0179131f593c8dd8fb9214bc5  gcc/testsuite/g++.dg/overload/addr2.C
+ 3fb9937f2fc9c0caadc37acb9e5e2f44  gcc/testsuite/g++.dg/overload/addr3.C
  7237d5fda21efc2bec2c4dd99601723c  gcc/testsuite/g++.dg/overload/ambig1.C
  ea3127f4b42d821f844905a93809eb92  gcc/testsuite/g++.dg/overload/ambig2.C
  c654c01b17fc05917f1abb232a0a09ba  gcc/testsuite/g++.dg/overload/ambig3.C
*************** d1a1ae034c8d636e8ede4eed33a0e5e4  gcc/te
*** 26534,26542 ****
  e7b133e82eab6d91b1329d9db63c31d1  gcc/testsuite/g++.dg/overload/error3.C
  c6bbd5bf2d956f4a548a5178e8bdea85  gcc/testsuite/g++.dg/overload/error4.C
  177f474d29f340331f0fae671ce7d40c  gcc/testsuite/g++.dg/overload/error5.C
! 167f3cd1c28cc9d1bbc81614032303f3  gcc/testsuite/g++.dg/overload/error6.C
  c9a8856c03a5dac0a653d66debb7f620  gcc/testsuite/g++.dg/overload/error6a.C
  76d0ebf8b14713547ead34542e9932da  gcc/testsuite/g++.dg/overload/error7.C
  a251cb5e0f82a981b3f2cd7163bc4253  gcc/testsuite/g++.dg/overload/extern-C-1.C
  799b32bc675b693f7b09c8e88e1f6ff9  gcc/testsuite/g++.dg/overload/extern-C-2.C
  f0855d927ec9333de2c98f144b697be2  gcc/testsuite/g++.dg/overload/koenig1.C
--- 28469,28478 ----
  e7b133e82eab6d91b1329d9db63c31d1  gcc/testsuite/g++.dg/overload/error3.C
  c6bbd5bf2d956f4a548a5178e8bdea85  gcc/testsuite/g++.dg/overload/error4.C
  177f474d29f340331f0fae671ce7d40c  gcc/testsuite/g++.dg/overload/error5.C
! 90b1bcabcba722e092de22ce65363671  gcc/testsuite/g++.dg/overload/error6.C
  c9a8856c03a5dac0a653d66debb7f620  gcc/testsuite/g++.dg/overload/error6a.C
  76d0ebf8b14713547ead34542e9932da  gcc/testsuite/g++.dg/overload/error7.C
+ 6de0359fad95f3149755d22cc5e54b00  gcc/testsuite/g++.dg/overload/error8.C
  a251cb5e0f82a981b3f2cd7163bc4253  gcc/testsuite/g++.dg/overload/extern-C-1.C
  799b32bc675b693f7b09c8e88e1f6ff9  gcc/testsuite/g++.dg/overload/extern-C-2.C
  f0855d927ec9333de2c98f144b697be2  gcc/testsuite/g++.dg/overload/koenig1.C
*************** d0aceebd661652ccdb057c8c6f6fd73d  gcc/te
*** 26576,26590 ****
  0754a190fef2a21fdbda686ffce41834  gcc/testsuite/g++.dg/overload/using2.C
  b056b1147dbd8a1797c665b614c55cca  gcc/testsuite/g++.dg/overload/using3.C
  6f4c92c56af54928e54e1b8adadcbe74  gcc/testsuite/g++.dg/overload/using4.C
! dfb3cd39ebc182dbb4338773db282413  gcc/testsuite/g++.dg/overload/using5.C
  f0e44977493ab0fe59f740f65a694211  gcc/testsuite/g++.dg/overload/virtual1.C
  f95f2ce9408aae34f003cb20506e3a38  gcc/testsuite/g++.dg/overload/virtual2.C
  3f87cd37c202a0979133731ac14c1301  gcc/testsuite/g++.dg/overload/volatile1.C
  41352a2a4cc8c007e49113d208fc4fac  gcc/testsuite/g++.dg/parse/access1.C
  16ade0f8aea6447dcee481171623cf6b  gcc/testsuite/g++.dg/parse/access10.C
  540a07a7ab8558b0f45439640f7704e6  gcc/testsuite/g++.dg/parse/access11.C
  6046a3158ae016cd50c3a9dee9e2807a  gcc/testsuite/g++.dg/parse/access12.C
! 571c9cf3e6332700b4fa76472b38cffe  gcc/testsuite/g++.dg/parse/access13.C
  d8cbb3cc14ea7990e2d09f744bfd4d37  gcc/testsuite/g++.dg/parse/access14.C
  f1ac82a9ba8ce5b8b202ad832e593845  gcc/testsuite/g++.dg/parse/access2.C
  752b3707237c1f83483b50a66bf06844  gcc/testsuite/g++.dg/parse/access3.C
--- 28512,28528 ----
  0754a190fef2a21fdbda686ffce41834  gcc/testsuite/g++.dg/overload/using2.C
  b056b1147dbd8a1797c665b614c55cca  gcc/testsuite/g++.dg/overload/using3.C
  6f4c92c56af54928e54e1b8adadcbe74  gcc/testsuite/g++.dg/overload/using4.C
! c4141e2f44078db7734aa9e8128eee82  gcc/testsuite/g++.dg/overload/using5.C
! e102471fa5e53488b79fa3b8d690fd60  gcc/testsuite/g++.dg/overload/using6.C
  f0e44977493ab0fe59f740f65a694211  gcc/testsuite/g++.dg/overload/virtual1.C
  f95f2ce9408aae34f003cb20506e3a38  gcc/testsuite/g++.dg/overload/virtual2.C
  3f87cd37c202a0979133731ac14c1301  gcc/testsuite/g++.dg/overload/volatile1.C
+ 8ce681877affa6bc81ead370acfbf17c  gcc/testsuite/g++.dg/overload/volatile2.C
  41352a2a4cc8c007e49113d208fc4fac  gcc/testsuite/g++.dg/parse/access1.C
  16ade0f8aea6447dcee481171623cf6b  gcc/testsuite/g++.dg/parse/access10.C
  540a07a7ab8558b0f45439640f7704e6  gcc/testsuite/g++.dg/parse/access11.C
  6046a3158ae016cd50c3a9dee9e2807a  gcc/testsuite/g++.dg/parse/access12.C
! ca6a4990e25db5da74bb16a7c4cf9d70  gcc/testsuite/g++.dg/parse/access13.C
  d8cbb3cc14ea7990e2d09f744bfd4d37  gcc/testsuite/g++.dg/parse/access14.C
  f1ac82a9ba8ce5b8b202ad832e593845  gcc/testsuite/g++.dg/parse/access2.C
  752b3707237c1f83483b50a66bf06844  gcc/testsuite/g++.dg/parse/access3.C
*************** bc8c4ed875b2c4b0e6b1ec9bcec25d41  gcc/te
*** 26615,26623 ****
  daf5f5fa938643351cbd008ccc3bb60f  gcc/testsuite/g++.dg/parse/array-size1.C
  80091bf5d1cd8a833fc214914fce1ada  gcc/testsuite/g++.dg/parse/array-size2.C
  caa2ee43dfe02eccbe80ecf8b55cbfc5  gcc/testsuite/g++.dg/parse/array-size3.C
! 765f7e5bc908ac50e66bdeeac57851f0  gcc/testsuite/g++.dg/parse/asm1.C
! 16b06ccce5dbf6640797da7bada365f5  gcc/testsuite/g++.dg/parse/asm2.C
! 231816ebf0d1f8c23a7446536f02f2fa  gcc/testsuite/g++.dg/parse/asm3.C
  16ab27522509db313d86948554946c2e  gcc/testsuite/g++.dg/parse/assign1.C
  c51ee1846816a95e9af6e3d6b9e65695  gcc/testsuite/g++.dg/parse/attr-ctor1.C
  98a4778cf32d8f5a1026962fa6d1ac00  gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C
--- 28553,28561 ----
  daf5f5fa938643351cbd008ccc3bb60f  gcc/testsuite/g++.dg/parse/array-size1.C
  80091bf5d1cd8a833fc214914fce1ada  gcc/testsuite/g++.dg/parse/array-size2.C
  caa2ee43dfe02eccbe80ecf8b55cbfc5  gcc/testsuite/g++.dg/parse/array-size3.C
! f848d39feffa699ea376d24225325b0d  gcc/testsuite/g++.dg/parse/asm1.C
! f070cdc403f0f28907b3a172cc94bc66  gcc/testsuite/g++.dg/parse/asm2.C
! 509ba0dd4f17472046edc833bf23edb0  gcc/testsuite/g++.dg/parse/asm3.C
  16ab27522509db313d86948554946c2e  gcc/testsuite/g++.dg/parse/assign1.C
  c51ee1846816a95e9af6e3d6b9e65695  gcc/testsuite/g++.dg/parse/attr-ctor1.C
  98a4778cf32d8f5a1026962fa6d1ac00  gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C
*************** e773e9fc506890dda1d6fbb37fd77ae4  gcc/te
*** 26672,26678 ****
--- 28610,28619 ----
  8079503763f87550059a8ccbd0832bdd  gcc/testsuite/g++.dg/parse/constructor1.C
  daa44ad455520bf96ee9cf29ebd65e7d  gcc/testsuite/g++.dg/parse/constructor2.C
  d9621983a7cb4db7ed484bed67203810  gcc/testsuite/g++.dg/parse/constructor3.C
+ 72f03474d9b8cdf6f70fc3a8bb3bd186  gcc/testsuite/g++.dg/parse/constructor4.C
+ 4e5acb8aef668b425e143c97feb580d3  gcc/testsuite/g++.dg/parse/constructor5.C
  5a399fbfb7b6718be8ad9eb3ea24af68  gcc/testsuite/g++.dg/parse/conv_op1.C
+ e75d954738d5cad6738a470ad2fca883  gcc/testsuite/g++.dg/parse/conv_op2.C
  721a281ff33124a1c49ed8d68d2419fb  gcc/testsuite/g++.dg/parse/crash1.C
  34cd5b83c8bcc14f4d86f10a3b62817a  gcc/testsuite/g++.dg/parse/crash10.C
  4435ac4f24fa5731340d43e4ff33bb31  gcc/testsuite/g++.dg/parse/crash11.C
*************** bb6ac4a17ab02af350881f64213ce26e  gcc/te
*** 26742,26747 ****
--- 28683,28698 ----
  34393b72e5dec85fca930dee15e2f669  gcc/testsuite/g++.dg/parse/crash7.C
  73b1cabb6ebba6515fc142024f664fa3  gcc/testsuite/g++.dg/parse/crash70.C
  78546442b1a4a93b74bc9a74697998e4  gcc/testsuite/g++.dg/parse/crash71.C
+ 46552d76123c234500ce2c55a1c9b0b1  gcc/testsuite/g++.dg/parse/crash72.C
+ ba5e03bbf97d2ae6122f86971620e4af  gcc/testsuite/g++.dg/parse/crash73.C
+ 8741e986b638a82fa5f9e2addc7b2d13  gcc/testsuite/g++.dg/parse/crash74.C
+ 876a6f96cfa349dad1a77ec16d0fe0d2  gcc/testsuite/g++.dg/parse/crash75.C
+ 4bd424cd7922d46704fd0b046d39ba0a  gcc/testsuite/g++.dg/parse/crash76.C
+ c3945b36146c7d629c7336eb3f9329fe  gcc/testsuite/g++.dg/parse/crash77.C
+ 931418d6431c1e898fb506ff19bcacc3  gcc/testsuite/g++.dg/parse/crash78.C
+ 758a5593fac9b92bf48e5bc6573d64dd  gcc/testsuite/g++.dg/parse/crash78a.C
+ 37c0cb89d800249b63e524b045e2782b  gcc/testsuite/g++.dg/parse/crash79.C
+ 8192e78f11aebd3019eab4fc03de8002  gcc/testsuite/g++.dg/parse/crash80.C
  5818f331167c496db06ad694932a1beb  gcc/testsuite/g++.dg/parse/crash9.C
  5940e29a523673e2c47048c21c11d678  gcc/testsuite/g++.dg/parse/ctor1.C
  6a4d22d64949d622a19d9e79684aad65  gcc/testsuite/g++.dg/parse/ctor10.C
*************** c4144e09bf19fa4b0932506c5eb3e8ee  gcc/te
*** 26765,26770 ****
--- 28716,28724 ----
  940fdfa84af569b5525f54e635438b5b  gcc/testsuite/g++.dg/parse/defarg15.C
  10563fde273c2fb4f6e0c4a5a9f5b387  gcc/testsuite/g++.dg/parse/defarg16.C
  2b9f9e058b527917bc68c93c960d7e24  gcc/testsuite/g++.dg/parse/defarg17.C
+ 3eb9cb8b002266b811e0bd8b20124807  gcc/testsuite/g++.dg/parse/defarg18.C
+ 4ed8de70cfd1762fc0699616785fe265  gcc/testsuite/g++.dg/parse/defarg18a.C
+ 5bdfd56298ee8adf145a54351ba8a1cb  gcc/testsuite/g++.dg/parse/defarg19.C
  1bff48df8c11aeda15e3471bf1a33226  gcc/testsuite/g++.dg/parse/defarg2.C
  09fddda5e825bb04b1493087728c9162  gcc/testsuite/g++.dg/parse/defarg3.C
  0385e46623d8f7f6c4993e05a03c73fd  gcc/testsuite/g++.dg/parse/defarg4.C
*************** c4144e09bf19fa4b0932506c5eb3e8ee  gcc/te
*** 26773,26778 ****
--- 28727,28733 ----
  df79a42075eeb5573f55e49dcd6c933e  gcc/testsuite/g++.dg/parse/defarg7.C
  2ddc96ad19034a90f65c85271f14ae72  gcc/testsuite/g++.dg/parse/defarg8.C
  1098b1d3a2b2d9ed73e976190957b19d  gcc/testsuite/g++.dg/parse/defarg9.C
+ 05468f5848390a067a8079ef559b3575  gcc/testsuite/g++.dg/parse/default_to_int.C
  a406f4dfcc4d1199effdd47c1f57d137  gcc/testsuite/g++.dg/parse/direct-initialization-2.C
  3ec69cf5f36af365858f3b505931800b  gcc/testsuite/g++.dg/parse/dot1.C
  c8d90b5459dbdf7bf29e5b2a79f38d17  gcc/testsuite/g++.dg/parse/dtor1.C
*************** fcc7067db6d7eed3ba1b2cf0727c1769  gcc/te
*** 26801,26810 ****
  c22d9f4a49cae5dbae1b167a7d5b6aa5  gcc/testsuite/g++.dg/parse/else.C
  bffa59fb0720de69133074cfe6a10f52  gcc/testsuite/g++.dg/parse/enum1.C
  bf7b37ee4a0b5b5d026b319a00e70924  gcc/testsuite/g++.dg/parse/enum10.C
! 62ddef96cf0aa4902abbd5301a5d6e0d  gcc/testsuite/g++.dg/parse/enum11.C
  82a3873f5aec50e90ac9dc9b389b47d7  gcc/testsuite/g++.dg/parse/enum12.C
  e921222a9bac0af666c333368c4a788d  gcc/testsuite/g++.dg/parse/enum13.C
  5fe8b8b7ec17ec83b548eb941c6bc323  gcc/testsuite/g++.dg/parse/enum14.C
  7db35a121c5e06c218be6e74693c8270  gcc/testsuite/g++.dg/parse/enum2.C
  695a33ed7b16712f818c64312f7da6e6  gcc/testsuite/g++.dg/parse/enum3.C
  37fc43724f8801d8874bb3001647ef4f  gcc/testsuite/g++.dg/parse/enum4.C
--- 28756,28766 ----
  c22d9f4a49cae5dbae1b167a7d5b6aa5  gcc/testsuite/g++.dg/parse/else.C
  bffa59fb0720de69133074cfe6a10f52  gcc/testsuite/g++.dg/parse/enum1.C
  bf7b37ee4a0b5b5d026b319a00e70924  gcc/testsuite/g++.dg/parse/enum10.C
! af82b52d532398318a2f6102871f5835  gcc/testsuite/g++.dg/parse/enum11.C
  82a3873f5aec50e90ac9dc9b389b47d7  gcc/testsuite/g++.dg/parse/enum12.C
  e921222a9bac0af666c333368c4a788d  gcc/testsuite/g++.dg/parse/enum13.C
  5fe8b8b7ec17ec83b548eb941c6bc323  gcc/testsuite/g++.dg/parse/enum14.C
+ ebf91b190601bc35bc6ac00456f3e4aa  gcc/testsuite/g++.dg/parse/enum15.C
  7db35a121c5e06c218be6e74693c8270  gcc/testsuite/g++.dg/parse/enum2.C
  695a33ed7b16712f818c64312f7da6e6  gcc/testsuite/g++.dg/parse/enum3.C
  37fc43724f8801d8874bb3001647ef4f  gcc/testsuite/g++.dg/parse/enum4.C
*************** b14e8b97a8342f70111f73990af8baef  gcc/te
*** 26843,26849 ****
  29e0fb0205aa305fb6c13cb45b7e5a0b  gcc/testsuite/g++.dg/parse/error33.C
  aa5cf2a4e64629f94de3077bdf380a72  gcc/testsuite/g++.dg/parse/error34.C
  adbc0dcb8db3dcf042a3fc8340a835ef  gcc/testsuite/g++.dg/parse/error35.C
! bc676204e93dcf8837534e35a5bed395  gcc/testsuite/g++.dg/parse/error36.C
  882092dbe71ac5ba94aa530da454dca1  gcc/testsuite/g++.dg/parse/error37.C
  a5c4f0b49b0574ea999f9047daeea726  gcc/testsuite/g++.dg/parse/error38.C
  9ce4240430acb6de0c83e5272759d9b2  gcc/testsuite/g++.dg/parse/error39.C
--- 28799,28805 ----
  29e0fb0205aa305fb6c13cb45b7e5a0b  gcc/testsuite/g++.dg/parse/error33.C
  aa5cf2a4e64629f94de3077bdf380a72  gcc/testsuite/g++.dg/parse/error34.C
  adbc0dcb8db3dcf042a3fc8340a835ef  gcc/testsuite/g++.dg/parse/error35.C
! e9ff5305058b23959dc25cdab3de64bb  gcc/testsuite/g++.dg/parse/error36.C
  882092dbe71ac5ba94aa530da454dca1  gcc/testsuite/g++.dg/parse/error37.C
  a5c4f0b49b0574ea999f9047daeea726  gcc/testsuite/g++.dg/parse/error38.C
  9ce4240430acb6de0c83e5272759d9b2  gcc/testsuite/g++.dg/parse/error39.C
*************** c3815b12d6adb1ac6f7c8f2379deb21d  gcc/te
*** 26874,26882 ****
  1c27b0becdebc68ee67aaab409111d9b  gcc/testsuite/g++.dg/parse/error62.C
  39157b5f9d86e45cb8d1abe69a66ad29  gcc/testsuite/g++.dg/parse/error63.C
  2c8451fa3eaf0641deecb9d15392bf3a  gcc/testsuite/g++.dg/parse/error64.C
! fe1aa482b375da0c2605e0e40d251ec5  gcc/testsuite/g++.dg/parse/error65.C
  69f9cb5c7beb27587f6ec060eeafc314  gcc/testsuite/g++.dg/parse/error7.C
! a9b4e068ec9bd53e03eab1f20b49779f  gcc/testsuite/g++.dg/parse/error8.C
  645fd7881b9edb38e573c6cc40ee26e9  gcc/testsuite/g++.dg/parse/error9.C
  f290af7231cc5e56195c68bf02c7fc6a  gcc/testsuite/g++.dg/parse/explicit1.C
  d5e1867a018baeb589c4bfc1ab21e892  gcc/testsuite/g++.dg/parse/expr1.C
--- 28830,28839 ----
  1c27b0becdebc68ee67aaab409111d9b  gcc/testsuite/g++.dg/parse/error62.C
  39157b5f9d86e45cb8d1abe69a66ad29  gcc/testsuite/g++.dg/parse/error63.C
  2c8451fa3eaf0641deecb9d15392bf3a  gcc/testsuite/g++.dg/parse/error64.C
! 47d57e81afcab3b993f0b1f9afc67b98  gcc/testsuite/g++.dg/parse/error65.C
! 9149c73ac315aeae14dfbbcc3148e2d4  gcc/testsuite/g++.dg/parse/error66.C
  69f9cb5c7beb27587f6ec060eeafc314  gcc/testsuite/g++.dg/parse/error7.C
! a6cd2049389a20105dedd9711e20bccb  gcc/testsuite/g++.dg/parse/error8.C
  645fd7881b9edb38e573c6cc40ee26e9  gcc/testsuite/g++.dg/parse/error9.C
  f290af7231cc5e56195c68bf02c7fc6a  gcc/testsuite/g++.dg/parse/explicit1.C
  d5e1867a018baeb589c4bfc1ab21e892  gcc/testsuite/g++.dg/parse/expr1.C
*************** a2fa8a0dd7deb88a1e01c25b61d481cf  gcc/te
*** 26921,26930 ****
  f925dbe1528712dd5921699a83e6b23c  gcc/testsuite/g++.dg/parse/linkage1.C
  1f0cba57d6bb8594c938edf51e17e937  gcc/testsuite/g++.dg/parse/linkage2.C
  f860807cf54031b8df626f746711d411  gcc/testsuite/g++.dg/parse/linkage3.C
  1f60e536555694022c574aff0f464e09  gcc/testsuite/g++.dg/parse/local-class1.C
  d1474e603dfda7a944b4131661d47d65  gcc/testsuite/g++.dg/parse/local1.C
  8af90d5b10beafe61974e1e52c872741  gcc/testsuite/g++.dg/parse/long1.C
! 86c78a03857a188fc9175d78d5d62c34  gcc/testsuite/g++.dg/parse/lookup1.C
  467d03fdcc01cdf24c21d2264e026db6  gcc/testsuite/g++.dg/parse/lookup2.C
  8b453ceddcbffd0e3d6527b5b989a6e3  gcc/testsuite/g++.dg/parse/lookup3.C
  0df586078c3c48e038440a354879ed6a  gcc/testsuite/g++.dg/parse/lookup4.C
--- 28878,28890 ----
  f925dbe1528712dd5921699a83e6b23c  gcc/testsuite/g++.dg/parse/linkage1.C
  1f0cba57d6bb8594c938edf51e17e937  gcc/testsuite/g++.dg/parse/linkage2.C
  f860807cf54031b8df626f746711d411  gcc/testsuite/g++.dg/parse/linkage3.C
+ 8104de8c0208b62f2ca257fc4c007f84  gcc/testsuite/g++.dg/parse/linkage4.C
+ b5e2a28d131d33946e3dc97e9b47d7bf  gcc/testsuite/g++.dg/parse/linkage5.C
+ ea86d1a073f0bda0eeb3149364adc0f4  gcc/testsuite/g++.dg/parse/linkage6.C
  1f60e536555694022c574aff0f464e09  gcc/testsuite/g++.dg/parse/local-class1.C
  d1474e603dfda7a944b4131661d47d65  gcc/testsuite/g++.dg/parse/local1.C
  8af90d5b10beafe61974e1e52c872741  gcc/testsuite/g++.dg/parse/long1.C
! c2146a2701f4546b21b7b54e7d448cba  gcc/testsuite/g++.dg/parse/lookup1.C
  467d03fdcc01cdf24c21d2264e026db6  gcc/testsuite/g++.dg/parse/lookup2.C
  8b453ceddcbffd0e3d6527b5b989a6e3  gcc/testsuite/g++.dg/parse/lookup3.C
  0df586078c3c48e038440a354879ed6a  gcc/testsuite/g++.dg/parse/lookup4.C
*************** b394ce2720021514bd9dfa2cf49588f9  gcc/te
*** 26993,26999 ****
  0b60dfafca867d56068025a0cd9cee2d  gcc/testsuite/g++.dg/parse/parse2.C
  ff890ffbfd3db90a7d3926194ad4927e  gcc/testsuite/g++.dg/parse/parse3.C
  a14487514c96c75316c03639ab23dab9  gcc/testsuite/g++.dg/parse/parse4.C
! 932a4203218fac5bad85207fda4db468  gcc/testsuite/g++.dg/parse/parse5.C
  6f332b616f8c038758d35e02dd2d6de3  gcc/testsuite/g++.dg/parse/parse6.C
  c203de39cbb4bd246d0e315aa6662a15  gcc/testsuite/g++.dg/parse/parse7.C
  3dc9f90d48dd411fea57be7de299a941  gcc/testsuite/g++.dg/parse/parser-pr14875-2.C
--- 28953,28959 ----
  0b60dfafca867d56068025a0cd9cee2d  gcc/testsuite/g++.dg/parse/parse2.C
  ff890ffbfd3db90a7d3926194ad4927e  gcc/testsuite/g++.dg/parse/parse3.C
  a14487514c96c75316c03639ab23dab9  gcc/testsuite/g++.dg/parse/parse4.C
! 62fa00c596597d33bf9d8bb0fe81d080  gcc/testsuite/g++.dg/parse/parse5.C
  6f332b616f8c038758d35e02dd2d6de3  gcc/testsuite/g++.dg/parse/parse6.C
  c203de39cbb4bd246d0e315aa6662a15  gcc/testsuite/g++.dg/parse/parse7.C
  3dc9f90d48dd411fea57be7de299a941  gcc/testsuite/g++.dg/parse/parser-pr14875-2.C
*************** a0fee4f3ee4678b54afd993b619baa05  gcc/te
*** 27003,27008 ****
--- 28963,28969 ----
  19f7d11d9ad101a38756eab150921947  gcc/testsuite/g++.dg/parse/pr101783.C
  45c8a98fb67b502b90968b85f37350fd  gcc/testsuite/g++.dg/parse/pr113788.C
  4f1090730a2c9b918d79fed001575a31  gcc/testsuite/g++.dg/parse/pr113929.C
+ dfa745316c10162491bb418266c2b932  gcc/testsuite/g++.dg/parse/pr116071.C
  2dde7d845edb3fc1b6b06c1f7c1d71f6  gcc/testsuite/g++.dg/parse/pr16696-permissive.C
  f8326578679fecd658e1bec2d3ed7654  gcc/testsuite/g++.dg/parse/pr16696.C
  29f6ba15da1283765b5179abe6707d09  gcc/testsuite/g++.dg/parse/pr18770.C
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 27186,27202 ****
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
  736c76aa75561ebe78be5895bc205db9  gcc/testsuite/g++.dg/pch/main-file-warnings.C
  0694410f427657d40670c2499c1ff27c  gcc/testsuite/g++.dg/pch/main-file-warnings.Hs
! f9271dce9d7980fa8b426246ec2b9126  gcc/testsuite/g++.dg/pch/operator-1.C
  4a61ad56a41cb4cbee40e9821143277c  gcc/testsuite/g++.dg/pch/operator-1.Hs
  4d2177c4bbf97c75693219b0d4c149ae  gcc/testsuite/g++.dg/pch/pch-string-nulls.C
  1d2691135fb8c5529b20585ff62273d6  gcc/testsuite/g++.dg/pch/pch-string-nulls.Hs
  a42f209088bbce8d3650be5966861b6b  gcc/testsuite/g++.dg/pch/pch.C
  95603c8965412870090ed14011f4b123  gcc/testsuite/g++.dg/pch/pch.Hs
! 3235b1e9bd699ce0b86b6aef83e850c7  gcc/testsuite/g++.dg/pch/pch.exp
  be7aa28d312b3dda8b4373107a328580  gcc/testsuite/g++.dg/pch/pr112319.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/pr112319.Hs
  7fe04ea153ef338282a4c00152ebac88  gcc/testsuite/g++.dg/pch/pr115312.C
  1fe57ca71fb1be3b62b98479bfbb3fdb  gcc/testsuite/g++.dg/pch/pr115312.Hs
  3215c00ed48ccc8affffc97036ff1083  gcc/testsuite/g++.dg/pch/pr36887.C
  c2fea8ab1d413fef949b1a8e8bc4986d  gcc/testsuite/g++.dg/pch/pr36887.Hs
  a79b4c14973bc580e45325abf4c19b72  gcc/testsuite/g++.dg/pch/pr90326.C
--- 29147,29165 ----
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
  736c76aa75561ebe78be5895bc205db9  gcc/testsuite/g++.dg/pch/main-file-warnings.C
  0694410f427657d40670c2499c1ff27c  gcc/testsuite/g++.dg/pch/main-file-warnings.Hs
! 77eba18ba3d102e87b6b9a9f32c37766  gcc/testsuite/g++.dg/pch/operator-1.C
  4a61ad56a41cb4cbee40e9821143277c  gcc/testsuite/g++.dg/pch/operator-1.Hs
  4d2177c4bbf97c75693219b0d4c149ae  gcc/testsuite/g++.dg/pch/pch-string-nulls.C
  1d2691135fb8c5529b20585ff62273d6  gcc/testsuite/g++.dg/pch/pch-string-nulls.Hs
  a42f209088bbce8d3650be5966861b6b  gcc/testsuite/g++.dg/pch/pch.C
  95603c8965412870090ed14011f4b123  gcc/testsuite/g++.dg/pch/pch.Hs
! 7eb299388fe5d1925fd157f9022c35f9  gcc/testsuite/g++.dg/pch/pch.exp
  be7aa28d312b3dda8b4373107a328580  gcc/testsuite/g++.dg/pch/pr112319.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/pr112319.Hs
  7fe04ea153ef338282a4c00152ebac88  gcc/testsuite/g++.dg/pch/pr115312.C
  1fe57ca71fb1be3b62b98479bfbb3fdb  gcc/testsuite/g++.dg/pch/pr115312.Hs
+ 701ddf43779acb92e6520109011cd4c3  gcc/testsuite/g++.dg/pch/pr116847.C
+ f817cda92c588524a1eb2cd4371af8b2  gcc/testsuite/g++.dg/pch/pr116847.Hs
  3215c00ed48ccc8affffc97036ff1083  gcc/testsuite/g++.dg/pch/pr36887.C
  c2fea8ab1d413fef949b1a8e8bc4986d  gcc/testsuite/g++.dg/pch/pr36887.Hs
  a79b4c14973bc580e45325abf4c19b72  gcc/testsuite/g++.dg/pch/pr90326.C
*************** f820a691997c43f0fd5a910e8712635b  gcc/te
*** 27205,27216 ****
  e9ae8a849e2de0433a9a6c5964f76889  gcc/testsuite/g++.dg/pch/pr92458.Hs
  c4ed7c5c1b5c91bb4573097f617b5fa9  gcc/testsuite/g++.dg/pch/pr98343.C
  a66d3ab2fd678cd355efddf18299c45d  gcc/testsuite/g++.dg/pch/pr98343.Hs
  73dd9e7d0e0351552a2f49cc0882db47  gcc/testsuite/g++.dg/pch/static-1.C
  4aaad0cfa4436b8cd8b37b1bf218edc8  gcc/testsuite/g++.dg/pch/static-1.Hs
! a5379c2bad433698a01b3bc2d5473a2e  gcc/testsuite/g++.dg/pch/system-1.C
! 826eb942010cef35c80c43298382814f  gcc/testsuite/g++.dg/pch/system-1.Hs
! 7daf10e506bd5381e81d1d9326cb6047  gcc/testsuite/g++.dg/pch/system-2.C
! 0c6d2560d6750bc4e884ee3e3fd8cb98  gcc/testsuite/g++.dg/pch/system-2.Hs
  0088d888a13d8099ceb6530a15ff9c5e  gcc/testsuite/g++.dg/pch/template-1.C
  12ae59d5c16085cecbd53897079ca9d5  gcc/testsuite/g++.dg/pch/template-1.Hs
  5e2076ec1abc6d548370361f9390b543  gcc/testsuite/g++.dg/pch/uninst.C
--- 29168,29181 ----
  e9ae8a849e2de0433a9a6c5964f76889  gcc/testsuite/g++.dg/pch/pr92458.Hs
  c4ed7c5c1b5c91bb4573097f617b5fa9  gcc/testsuite/g++.dg/pch/pr98343.C
  a66d3ab2fd678cd355efddf18299c45d  gcc/testsuite/g++.dg/pch/pr98343.Hs
+ 714b1f195e50a3ab5503863598728727  gcc/testsuite/g++.dg/pch/pushpop-2.C
+ fa3fd4ac35ffdf1f9530b566ed80f01b  gcc/testsuite/g++.dg/pch/pushpop-2.Hs
  73dd9e7d0e0351552a2f49cc0882db47  gcc/testsuite/g++.dg/pch/static-1.C
  4aaad0cfa4436b8cd8b37b1bf218edc8  gcc/testsuite/g++.dg/pch/static-1.Hs
! e7727bba8443c9ff861c03410c25abdf  gcc/testsuite/g++.dg/pch/system-1.C
! 44b8449e4f6fe3c18cff806ae154c3a3  gcc/testsuite/g++.dg/pch/system-1.Hs
! b7d97b8f67f65ae1e90b8db3474b6e48  gcc/testsuite/g++.dg/pch/system-2.C
! 115154caa1eef0f3f3011ec50fdd38c0  gcc/testsuite/g++.dg/pch/system-2.Hs
  0088d888a13d8099ceb6530a15ff9c5e  gcc/testsuite/g++.dg/pch/template-1.C
  12ae59d5c16085cecbd53897079ca9d5  gcc/testsuite/g++.dg/pch/template-1.Hs
  5e2076ec1abc6d548370361f9390b543  gcc/testsuite/g++.dg/pch/uninst.C
*************** a5379c2bad433698a01b3bc2d5473a2e  gcc/te
*** 27218,27256 ****
  3c027648f765cf5846e0b1be267760f6  gcc/testsuite/g++.dg/pch/wchar-1.C
  67d1ff82e247bea84a92bc888972c000  gcc/testsuite/g++.dg/pch/wchar-1.Hs
  bf3ea5727f0cfbee03093d92618c2de5  gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C
! c278391c6b14a59edfbbfe24959e4347  gcc/testsuite/g++.dg/plugin/attribute_plugin.c
! 79eca0fcf45122c77f8b1c62b1121ee0  gcc/testsuite/g++.dg/plugin/comment_plugin.c
  f0cc8f775d1ccf181ce69d11d09e4285  gcc/testsuite/g++.dg/plugin/comments-1.C
  f368c2dc2c8c1266d4d8818bb13e9118  gcc/testsuite/g++.dg/plugin/decl-plugin-test.C
! d48932e126573eb4d5278c326a4af0e8  gcc/testsuite/g++.dg/plugin/decl_plugin.c
  9880cec200dc03944e221b5ce5bc6af7  gcc/testsuite/g++.dg/plugin/def-plugin-test.C
! e3ad892294170cf17b98bdad69100bf4  gcc/testsuite/g++.dg/plugin/def_plugin.c
  6652a1da9c3cb05ec0bc5f50dd31c065  gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
  253c4ed5efcbc1a8dd179a32c3c99365  gcc/testsuite/g++.dg/plugin/diagnostic-test-inlining-1.C
  eee78b3feee80f24a70dface0869a07e  gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C
! 3f89fe2cf6d913c11fe72de567ff1303  gcc/testsuite/g++.dg/plugin/dumb_plugin.c
  b393922db8d338bed7f3bcf037edd19c  gcc/testsuite/g++.dg/plugin/header-plugin-test.C
! 3a80079be7a0bfd6f8efce4de8795fcb  gcc/testsuite/g++.dg/plugin/header_plugin.c
  1c30a8080468929a3cbbc7a4ef384c4c  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr100796.c
  0422777feb5bb202ec0e53d6551fe397  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr96391.c
! d6f632cb00559b864a83bdb74827de62  gcc/testsuite/g++.dg/plugin/plugin.exp
  0555e81b1b7c9c8e06b4e9d9ffccb7ff  gcc/testsuite/g++.dg/plugin/pragma_plugin-test-1.C
! bb9719af4ef365b9625ed93e9794b8b2  gcc/testsuite/g++.dg/plugin/pragma_plugin.c
  503f96544096dfaa1ea93338e21923ff  gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
  436d3d1e052b227d2661a53bc1d71e69  gcc/testsuite/g++.dg/plugin/self-assign-test-2.C
  e051d5cb1d92744fe18b74552249a54e  gcc/testsuite/g++.dg/plugin/self-assign-test-3.C
! 5f9b6973b5f55304febb17e03d56165d  gcc/testsuite/g++.dg/plugin/selfassign.c
! 84294469facc088b7f5a63c985cf91b3  gcc/testsuite/g++.dg/plugin/show-template-tree-color-labels.C
! 21bdec26dd354f6ec8377f10495a1e22  gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-elide-type.C
! 34171c7d3f22062d3826646c0e5f1f9d  gcc/testsuite/g++.dg/plugin/show-template-tree-color.C
! d5c95752248e97b6d3f892a10f16b22d  gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c
! 2e53d96b8ba6ffa8b9414775da7e87f3  gcc/testsuite/g++.dg/pr100253.C
  8565710d6f77641a38bd4e09919a3fb2  gcc/testsuite/g++.dg/pr100574.C
  fff532cdcec98c1dd1cffeb35a951441  gcc/testsuite/g++.dg/pr100774.C
  f236ce0dc0fda54ce2f7cf384f1dc29b  gcc/testsuite/g++.dg/pr101331.C
  6f0617957144c31d2d94ce32f70bb279  gcc/testsuite/g++.dg/pr101511.C
  15e96bcd73215914d723945f149e608e  gcc/testsuite/g++.dg/pr102359_1.C
! cc3e8e8053f6b7384a5d0ce0ba47bac4  gcc/testsuite/g++.dg/pr102359_2.C
  e7c6b568866644a62567cfa02de05df6  gcc/testsuite/g++.dg/pr102360.C
  d6cfdbfe5d49594a720e546a2e274747  gcc/testsuite/g++.dg/pr102796.C
  a51427a30f77979c20dee7e511f9b370  gcc/testsuite/g++.dg/pr102955.C
--- 29183,29222 ----
  3c027648f765cf5846e0b1be267760f6  gcc/testsuite/g++.dg/pch/wchar-1.C
  67d1ff82e247bea84a92bc888972c000  gcc/testsuite/g++.dg/pch/wchar-1.Hs
  bf3ea5727f0cfbee03093d92618c2de5  gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C
! c278391c6b14a59edfbbfe24959e4347  gcc/testsuite/g++.dg/plugin/attribute_plugin.cc
! 79eca0fcf45122c77f8b1c62b1121ee0  gcc/testsuite/g++.dg/plugin/comment_plugin.cc
  f0cc8f775d1ccf181ce69d11d09e4285  gcc/testsuite/g++.dg/plugin/comments-1.C
  f368c2dc2c8c1266d4d8818bb13e9118  gcc/testsuite/g++.dg/plugin/decl-plugin-test.C
! d48932e126573eb4d5278c326a4af0e8  gcc/testsuite/g++.dg/plugin/decl_plugin.cc
  9880cec200dc03944e221b5ce5bc6af7  gcc/testsuite/g++.dg/plugin/def-plugin-test.C
! e3ad892294170cf17b98bdad69100bf4  gcc/testsuite/g++.dg/plugin/def_plugin.cc
  6652a1da9c3cb05ec0bc5f50dd31c065  gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
  253c4ed5efcbc1a8dd179a32c3c99365  gcc/testsuite/g++.dg/plugin/diagnostic-test-inlining-1.C
  eee78b3feee80f24a70dface0869a07e  gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C
! 3f89fe2cf6d913c11fe72de567ff1303  gcc/testsuite/g++.dg/plugin/dumb_plugin.cc
  b393922db8d338bed7f3bcf037edd19c  gcc/testsuite/g++.dg/plugin/header-plugin-test.C
! 3a80079be7a0bfd6f8efce4de8795fcb  gcc/testsuite/g++.dg/plugin/header_plugin.cc
  1c30a8080468929a3cbbc7a4ef384c4c  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr100796.c
  0422777feb5bb202ec0e53d6551fe397  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr96391.c
! 80b793bd64952e9185817f992d47a6dd  gcc/testsuite/g++.dg/plugin/plugin.exp
  0555e81b1b7c9c8e06b4e9d9ffccb7ff  gcc/testsuite/g++.dg/plugin/pragma_plugin-test-1.C
! bb9719af4ef365b9625ed93e9794b8b2  gcc/testsuite/g++.dg/plugin/pragma_plugin.cc
  503f96544096dfaa1ea93338e21923ff  gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
  436d3d1e052b227d2661a53bc1d71e69  gcc/testsuite/g++.dg/plugin/self-assign-test-2.C
  e051d5cb1d92744fe18b74552249a54e  gcc/testsuite/g++.dg/plugin/self-assign-test-3.C
! 5f9b6973b5f55304febb17e03d56165d  gcc/testsuite/g++.dg/plugin/selfassign.cc
! ec7d7e2e0cb8ea0be53af452dbc8214c  gcc/testsuite/g++.dg/plugin/show-template-tree-color-labels.C
! 669d6447cc7cb76ea3787b8008016b3f  gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-elide-type.C
! 6a6dbcbab6d373e63c771d4d3f143ebb  gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-highlight-colors.C
! 946f03549b5d21aa38c5f97b1f198eac  gcc/testsuite/g++.dg/plugin/show-template-tree-color.C
! e5eb25915d90be387b16fee31586067e  gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.cc
! d52f4cb5f64b45258d5b1297ad88b4d1  gcc/testsuite/g++.dg/pr100253.C
  8565710d6f77641a38bd4e09919a3fb2  gcc/testsuite/g++.dg/pr100574.C
  fff532cdcec98c1dd1cffeb35a951441  gcc/testsuite/g++.dg/pr100774.C
  f236ce0dc0fda54ce2f7cf384f1dc29b  gcc/testsuite/g++.dg/pr101331.C
  6f0617957144c31d2d94ce32f70bb279  gcc/testsuite/g++.dg/pr101511.C
  15e96bcd73215914d723945f149e608e  gcc/testsuite/g++.dg/pr102359_1.C
! f117e2737c38b5cb03d5ffef3411ac86  gcc/testsuite/g++.dg/pr102359_2.C
  e7c6b568866644a62567cfa02de05df6  gcc/testsuite/g++.dg/pr102360.C
  d6cfdbfe5d49594a720e546a2e274747  gcc/testsuite/g++.dg/pr102796.C
  a51427a30f77979c20dee7e511f9b370  gcc/testsuite/g++.dg/pr102955.C
*************** bc073049efd8de31a04ecce7e05f88df  gcc/te
*** 27262,27268 ****
  3fc694d366af647e9b78c02133e52da4  gcc/testsuite/g++.dg/pr103326.C
  46f210b54d7564e698736b4e327a2037  gcc/testsuite/g++.dg/pr103530.C
  c1251c5de07903c2976e214b0ce9b893  gcc/testsuite/g++.dg/pr103856.C
! cc1a227a8a28a04643333f8b99a2571f  gcc/testsuite/g++.dg/pr104547.C
  cb3b0d87ebb06649d90f205f72680272  gcc/testsuite/g++.dg/pr104648.C
  3952aaa4194d56b25f454ad787ae0377  gcc/testsuite/g++.dg/pr104869.C
  3e13592e1bcac294620a0d0d8e6eb8a1  gcc/testsuite/g++.dg/pr104992-1.C
--- 29228,29234 ----
  3fc694d366af647e9b78c02133e52da4  gcc/testsuite/g++.dg/pr103326.C
  46f210b54d7564e698736b4e327a2037  gcc/testsuite/g++.dg/pr103530.C
  c1251c5de07903c2976e214b0ce9b893  gcc/testsuite/g++.dg/pr103856.C
! d5b0525445cafe8698499f267d99e2de  gcc/testsuite/g++.dg/pr104547.C
  cb3b0d87ebb06649d90f205f72680272  gcc/testsuite/g++.dg/pr104648.C
  3952aaa4194d56b25f454ad787ae0377  gcc/testsuite/g++.dg/pr104869.C
  3e13592e1bcac294620a0d0d8e6eb8a1  gcc/testsuite/g++.dg/pr104992-1.C
*************** e42dabbcc9a6dac71e9f86241b509a36  gcc/te
*** 27272,27278 ****
  957aa933e540cb2a85c915d2cd613984  gcc/testsuite/g++.dg/pr106474.C
  ed6854773d2f95643fb418f5d4eba091  gcc/testsuite/g++.dg/pr106687.C
  bc18d70f903aab9f389e7209d70b2c1f  gcc/testsuite/g++.dg/pr106824.C
! 30757e76cae5b927b5cfc74519b751b6  gcc/testsuite/g++.dg/pr107087.C
  615e8d0a920faf7e9bbd4ba42d211158  gcc/testsuite/g++.dg/pr107411.C
  acecb79ae369db01a54d35302ff8bac3  gcc/testsuite/g++.dg/pr107803.C
  c555871eebd38318d08e6231eacd3642  gcc/testsuite/g++.dg/pr107867.C
--- 29238,29244 ----
  957aa933e540cb2a85c915d2cd613984  gcc/testsuite/g++.dg/pr106474.C
  ed6854773d2f95643fb418f5d4eba091  gcc/testsuite/g++.dg/pr106687.C
  bc18d70f903aab9f389e7209d70b2c1f  gcc/testsuite/g++.dg/pr106824.C
! a3f8b9d4fac832279fa9690ec0cea71c  gcc/testsuite/g++.dg/pr107087.C
  615e8d0a920faf7e9bbd4ba42d211158  gcc/testsuite/g++.dg/pr107411.C
  acecb79ae369db01a54d35302ff8bac3  gcc/testsuite/g++.dg/pr107803.C
  c555871eebd38318d08e6231eacd3642  gcc/testsuite/g++.dg/pr107867.C
*************** fd6634de9e7bec1226bf7939736dd6a2  gcc/te
*** 27280,27289 ****
  9f85b642c872ce476b819232071a1f96  gcc/testsuite/g++.dg/pr108520.C
  f678b424d2148346313809851fbbe611  gcc/testsuite/g++.dg/pr109524.C
  06c46a1028b77aaa9feeb07c561f352b  gcc/testsuite/g++.dg/pr110249.C
! f8af5a3ff0e8db0aafa763ddf859fdf4  gcc/testsuite/g++.dg/pr112822.C
  6aff6ca7cddcaa75a97c54158353102d  gcc/testsuite/g++.dg/pr113217.C
  adfc90a4ec5f7e6acacbdafc592a2862  gcc/testsuite/g++.dg/pr113673.C
  ad9259e6bdf3bdde202871cc62bd27bb  gcc/testsuite/g++.dg/pr115232.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
--- 29246,29258 ----
  9f85b642c872ce476b819232071a1f96  gcc/testsuite/g++.dg/pr108520.C
  f678b424d2148346313809851fbbe611  gcc/testsuite/g++.dg/pr109524.C
  06c46a1028b77aaa9feeb07c561f352b  gcc/testsuite/g++.dg/pr110249.C
! 665d46641e66feec86e6007d6a6a9128  gcc/testsuite/g++.dg/pr112822.C
  6aff6ca7cddcaa75a97c54158353102d  gcc/testsuite/g++.dg/pr113217.C
  adfc90a4ec5f7e6acacbdafc592a2862  gcc/testsuite/g++.dg/pr113673.C
+ 6431e5522e8138d482199836afdeb823  gcc/testsuite/g++.dg/pr114501_0.C
  ad9259e6bdf3bdde202871cc62bd27bb  gcc/testsuite/g++.dg/pr115232.C
+ af4c6212c5e52bf135c1867c6656d88b  gcc/testsuite/g++.dg/pr117222.C
+ 907af190ec2f3efd086d2b352c9934cd  gcc/testsuite/g++.dg/pr117919.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
*************** c1dfe66a41c2a01c9391cc0b19068630  gcc/te
*** 27302,27308 ****
  9c1057b2baef3c7b14a3990a7dab5c62  gcc/testsuite/g++.dg/pr47053.C
  7d415c3f086a787fac9c43c2198e69a2  gcc/testsuite/g++.dg/pr47589.C
  c6570d38e7ef08be1d7d0b9a1b133bfe  gcc/testsuite/g++.dg/pr48484.C
! e384db5ab7dd22da4d2f37d7651bb107  gcc/testsuite/g++.dg/pr48633.C
  91af1bf8e0bef02ef0fdef13fea1c20e  gcc/testsuite/g++.dg/pr48660.C
  eb8473dadb424bb65d0d3d0b5588e217  gcc/testsuite/g++.dg/pr48772.C
  6dcfc0220336a51517b7c74c7a9ea7c8  gcc/testsuite/g++.dg/pr49718.C
--- 29271,29277 ----
  9c1057b2baef3c7b14a3990a7dab5c62  gcc/testsuite/g++.dg/pr47053.C
  7d415c3f086a787fac9c43c2198e69a2  gcc/testsuite/g++.dg/pr47589.C
  c6570d38e7ef08be1d7d0b9a1b133bfe  gcc/testsuite/g++.dg/pr48484.C
! bca02158b60c1b624a10ba281777ee96  gcc/testsuite/g++.dg/pr48633.C
  91af1bf8e0bef02ef0fdef13fea1c20e  gcc/testsuite/g++.dg/pr48660.C
  eb8473dadb424bb65d0d3d0b5588e217  gcc/testsuite/g++.dg/pr48772.C
  6dcfc0220336a51517b7c74c7a9ea7c8  gcc/testsuite/g++.dg/pr49718.C
*************** eb8473dadb424bb65d0d3d0b5588e217  gcc/te
*** 27311,27317 ****
  8f978b129c00656332f9143a976ac2a6  gcc/testsuite/g++.dg/pr50763-3.C
  687fcdd96edb8d9d6910173004998886  gcc/testsuite/g++.dg/pr50763-4.C
  cea7cdabebcdd0a13585c5a24f935537  gcc/testsuite/g++.dg/pr51264-4.C
! f1579266bed8aff77e6a7423b465785d  gcc/testsuite/g++.dg/pr53037-1.C
  686be698d314dfb4322fe619611e65e9  gcc/testsuite/g++.dg/pr53037-2.C
  6103233ea86140f70422ab0834b1c3b8  gcc/testsuite/g++.dg/pr53037-3.C
  1fad21ebd3029aa083079a53f62c0826  gcc/testsuite/g++.dg/pr53037-4.C
--- 29280,29286 ----
  8f978b129c00656332f9143a976ac2a6  gcc/testsuite/g++.dg/pr50763-3.C
  687fcdd96edb8d9d6910173004998886  gcc/testsuite/g++.dg/pr50763-4.C
  cea7cdabebcdd0a13585c5a24f935537  gcc/testsuite/g++.dg/pr51264-4.C
! af5d29f4fec4a3837969db6d6fa71677  gcc/testsuite/g++.dg/pr53037-1.C
  686be698d314dfb4322fe619611e65e9  gcc/testsuite/g++.dg/pr53037-2.C
  6103233ea86140f70422ab0834b1c3b8  gcc/testsuite/g++.dg/pr53037-3.C
  1fad21ebd3029aa083079a53f62c0826  gcc/testsuite/g++.dg/pr53037-4.C
*************** c196198d50bad93b87f24ccaf1c0ee15  gcc/te
*** 27357,27365 ****
  0f0d9bb4908d6bdb56109652b1ef4e88  gcc/testsuite/g++.dg/pr65032.C
  2a99023224d23b7b4c2df438196b9877  gcc/testsuite/g++.dg/pr65049.C
  c987d521d6ec4222a0bbaff58ae0df77  gcc/testsuite/g++.dg/pr65295.C
! 20bcb78b164336c6b42304de362d905a  gcc/testsuite/g++.dg/pr66655.C
  575d8cfa0f7cc7a30ac74c14eec274d2  gcc/testsuite/g++.dg/pr66655.h
! 9b717eabe7d22f65a71673e3ffc1470b  gcc/testsuite/g++.dg/pr66655_1.cc
  c014278b0e7c6cf72bd8834b1b9d6631  gcc/testsuite/g++.dg/pr66866.C
  54fc8bd86f8a81eead6183ed98044e5e  gcc/testsuite/g++.dg/pr67351.C
  c15a8cc45a8eaf8903cfaae658dc8822  gcc/testsuite/g++.dg/pr67405.C
--- 29326,29335 ----
  0f0d9bb4908d6bdb56109652b1ef4e88  gcc/testsuite/g++.dg/pr65032.C
  2a99023224d23b7b4c2df438196b9877  gcc/testsuite/g++.dg/pr65049.C
  c987d521d6ec4222a0bbaff58ae0df77  gcc/testsuite/g++.dg/pr65295.C
! 2909098d71cb5efcd254025c0c520d24  gcc/testsuite/g++.dg/pr66279.C
! e34c587181b4316bd27095db9878b334  gcc/testsuite/g++.dg/pr66655.C
  575d8cfa0f7cc7a30ac74c14eec274d2  gcc/testsuite/g++.dg/pr66655.h
! 9b717eabe7d22f65a71673e3ffc1470b  gcc/testsuite/g++.dg/pr66655_1.C
  c014278b0e7c6cf72bd8834b1b9d6631  gcc/testsuite/g++.dg/pr66866.C
  54fc8bd86f8a81eead6183ed98044e5e  gcc/testsuite/g++.dg/pr67351.C
  c15a8cc45a8eaf8903cfaae658dc8822  gcc/testsuite/g++.dg/pr67405.C
*************** b76c7ee65b34b2377285a776d351781b  gcc/te
*** 27379,27385 ****
  29300174b10233fd47c932d1ffd4c3bf  gcc/testsuite/g++.dg/pr69123.C
  72bb8a9ea548aaaada55dbcdb8d6a802  gcc/testsuite/g++.dg/pr69338.C
  07ceb93faa4d6543359b7c47e9a5e94a  gcc/testsuite/g++.dg/pr69379.C
! 7362dd0b1096c0c8b6477f78b2c52a68  gcc/testsuite/g++.dg/pr69667.C
  1b19e570cc03e72ec7115cbf16663717  gcc/testsuite/g++.dg/pr69697.C
  6574022bacba25e4efad4b7c4931c69a  gcc/testsuite/g++.dg/pr70098.C
  52e836d540fc39ce14dbc3124fd1ad8e  gcc/testsuite/g++.dg/pr70590-2.C
--- 29349,29355 ----
  29300174b10233fd47c932d1ffd4c3bf  gcc/testsuite/g++.dg/pr69123.C
  72bb8a9ea548aaaada55dbcdb8d6a802  gcc/testsuite/g++.dg/pr69338.C
  07ceb93faa4d6543359b7c47e9a5e94a  gcc/testsuite/g++.dg/pr69379.C
! d41336208cbd6d11840408cdba88b03d  gcc/testsuite/g++.dg/pr69667.C
  1b19e570cc03e72ec7115cbf16663717  gcc/testsuite/g++.dg/pr69697.C
  6574022bacba25e4efad4b7c4931c69a  gcc/testsuite/g++.dg/pr70098.C
  52e836d540fc39ce14dbc3124fd1ad8e  gcc/testsuite/g++.dg/pr70590-2.C
*************** d8fba4e6baf8e0880ae882765e1135b4  gcc/te
*** 27387,27394 ****
  5c6cf3e2bb082400e2ca3d17973fdd4b  gcc/testsuite/g++.dg/pr70965.C
  0b728dae13a5f48195e47018a83c4f35  gcc/testsuite/g++.dg/pr71184.C
  f16de79e4d58f2cc3e59dec4e4bdcce4  gcc/testsuite/g++.dg/pr71389.C
! 6b1ee9b05340152c90e7c09d5b9eb5c2  gcc/testsuite/g++.dg/pr71488.C
! c31e2e223082d89e965cb706ebd83efc  gcc/testsuite/g++.dg/pr71655.C
  059c43e4ec808c046b8c56faee04d189  gcc/testsuite/g++.dg/pr71694.C
  1202ce040862ab92e1f0e7f8da8f372a  gcc/testsuite/g++.dg/pr71973-1.C
  723e9507a3916605af59b5df349ee3e5  gcc/testsuite/g++.dg/pr71973-2.C
--- 29357,29364 ----
  5c6cf3e2bb082400e2ca3d17973fdd4b  gcc/testsuite/g++.dg/pr70965.C
  0b728dae13a5f48195e47018a83c4f35  gcc/testsuite/g++.dg/pr71184.C
  f16de79e4d58f2cc3e59dec4e4bdcce4  gcc/testsuite/g++.dg/pr71389.C
! f3f51b1f7162ed4e7912c89459035cc8  gcc/testsuite/g++.dg/pr71488.C
! 042686360700ee84015cf9ac8396dff9  gcc/testsuite/g++.dg/pr71655.C
  059c43e4ec808c046b8c56faee04d189  gcc/testsuite/g++.dg/pr71694.C
  1202ce040862ab92e1f0e7f8da8f372a  gcc/testsuite/g++.dg/pr71973-1.C
  723e9507a3916605af59b5df349ee3e5  gcc/testsuite/g++.dg/pr71973-2.C
*************** c95367f1eb1ebd4dbc41e5d48df64517  gcc/te
*** 27405,27417 ****
  fb18b3815ef681abb5d2644371daf2dd  gcc/testsuite/g++.dg/pr79091.C
  01e875a4545c8fe83ebaf96bf95a3420  gcc/testsuite/g++.dg/pr79095-1.C
  2787a2b67dcc28775cca21c78f828999  gcc/testsuite/g++.dg/pr79095-2.C
! bee8b26ef225678f65e45458f23ce109  gcc/testsuite/g++.dg/pr79095-3.C
  7793f5ae83c6d8ec736e595035f4ad54  gcc/testsuite/g++.dg/pr79095-5.C
  1873733a2a789a90d63399342ef33a77  gcc/testsuite/g++.dg/pr80222.C
  2887077fc314d48e5fd771dc936c02a9  gcc/testsuite/g++.dg/pr80287.C
  212275758392d3afcc7ab9c8fa2c4987  gcc/testsuite/g++.dg/pr80374.C
  2660aa92b1a63a63921a3a56ac90f79d  gcc/testsuite/g++.dg/pr80463.C
! d4e34cf7b26c9e38024dd84c1c36a062  gcc/testsuite/g++.dg/pr80481.C
  914b9d1358e92d529a3e1887bc7efeed  gcc/testsuite/g++.dg/pr80707.C
  b5452fdc9af692c5acb4d9af45519954  gcc/testsuite/g++.dg/pr81007.C
  e9006c7bfc034d54a14402a2a461f286  gcc/testsuite/g++.dg/pr81194.C
--- 29375,29387 ----
  fb18b3815ef681abb5d2644371daf2dd  gcc/testsuite/g++.dg/pr79091.C
  01e875a4545c8fe83ebaf96bf95a3420  gcc/testsuite/g++.dg/pr79095-1.C
  2787a2b67dcc28775cca21c78f828999  gcc/testsuite/g++.dg/pr79095-2.C
! 6cd6cfcfa6dddfc7de04e8ff4acfddff  gcc/testsuite/g++.dg/pr79095-3.C
  7793f5ae83c6d8ec736e595035f4ad54  gcc/testsuite/g++.dg/pr79095-5.C
  1873733a2a789a90d63399342ef33a77  gcc/testsuite/g++.dg/pr80222.C
  2887077fc314d48e5fd771dc936c02a9  gcc/testsuite/g++.dg/pr80287.C
  212275758392d3afcc7ab9c8fa2c4987  gcc/testsuite/g++.dg/pr80374.C
  2660aa92b1a63a63921a3a56ac90f79d  gcc/testsuite/g++.dg/pr80463.C
! e97dd565451b4575f01812b4efa41b32  gcc/testsuite/g++.dg/pr80481.C
  914b9d1358e92d529a3e1887bc7efeed  gcc/testsuite/g++.dg/pr80707.C
  b5452fdc9af692c5acb4d9af45519954  gcc/testsuite/g++.dg/pr81007.C
  e9006c7bfc034d54a14402a2a461f286  gcc/testsuite/g++.dg/pr81194.C
*************** f8418c6f8a6bbeb32b7b4b87b05ee7c1  gcc/te
*** 27423,27433 ****
  843b6d8f1ea4146d4715d9929bded743  gcc/testsuite/g++.dg/pr82413.C
  9458a9d71c656889a5451865dac2313a  gcc/testsuite/g++.dg/pr82836.C
  4b4fc14dd13047efb646fa51bb68756a  gcc/testsuite/g++.dg/pr82899.C
! bf14562b088e1e4c01e4050adbd18394  gcc/testsuite/g++.dg/pr83239.C
  136beb2446d7ea3b218dd029e09e25bd  gcc/testsuite/g++.dg/pr83541.C
! a8cae2d227c02ee5705e9b5b205bb1d1  gcc/testsuite/g++.dg/pr83979.C
  8528aaf5d93c3e6771dcc4828d7264b5  gcc/testsuite/g++.dg/pr84231.C
! fcd3d77f2c884effb0321a5b04ff8ca6  gcc/testsuite/g++.dg/pr84492.C
  ebc2502b64fbdf6e7c61b806ec979487  gcc/testsuite/g++.dg/pr84729.C
  75d741968e42202427b6e9c163e5c326  gcc/testsuite/g++.dg/pr84821.C
  7d7a517b4c7f29f290c497586f9e3065  gcc/testsuite/g++.dg/pr84933.C
--- 29393,29403 ----
  843b6d8f1ea4146d4715d9929bded743  gcc/testsuite/g++.dg/pr82413.C
  9458a9d71c656889a5451865dac2313a  gcc/testsuite/g++.dg/pr82836.C
  4b4fc14dd13047efb646fa51bb68756a  gcc/testsuite/g++.dg/pr82899.C
! e546d943ce4b8b7a12fc595c098204ff  gcc/testsuite/g++.dg/pr83239.C
  136beb2446d7ea3b218dd029e09e25bd  gcc/testsuite/g++.dg/pr83541.C
! d4954fbff70ec9fad534472ecbc38049  gcc/testsuite/g++.dg/pr83979.C
  8528aaf5d93c3e6771dcc4828d7264b5  gcc/testsuite/g++.dg/pr84231.C
! 0960fafd5899f1456d200d3989608cdb  gcc/testsuite/g++.dg/pr84492.C
  ebc2502b64fbdf6e7c61b806ec979487  gcc/testsuite/g++.dg/pr84729.C
  75d741968e42202427b6e9c163e5c326  gcc/testsuite/g++.dg/pr84821.C
  7d7a517b4c7f29f290c497586f9e3065  gcc/testsuite/g++.dg/pr84933.C
*************** fdf3135e57da2e320f80a80723315d9f  gcc/te
*** 27489,27495 ****
  c8b1af02d3cb9597c3a59dc9de1fb3e3  gcc/testsuite/g++.dg/pr94920.C
  a9ce4502f1b279312e1fdca7af49461c  gcc/testsuite/g++.dg/pr95768.C
  5fa1238dc25e63c91396c8b3a76f125d  gcc/testsuite/g++.dg/pr96308.C
! ffcc5666b0bec69ad84fdd0dbbd00e5f  gcc/testsuite/g++.dg/pr96707.C
  d7c3ed7863806da0874952af08162681  gcc/testsuite/g++.dg/pr96818.C
  c228b3ed01594ed861f4cadcaf972679  gcc/testsuite/g++.dg/pr97538.C
  54b7e9e284a4bb84b630d364fb0bcec9  gcc/testsuite/g++.dg/pr97560.C
--- 29459,29465 ----
  c8b1af02d3cb9597c3a59dc9de1fb3e3  gcc/testsuite/g++.dg/pr94920.C
  a9ce4502f1b279312e1fdca7af49461c  gcc/testsuite/g++.dg/pr95768.C
  5fa1238dc25e63c91396c8b3a76f125d  gcc/testsuite/g++.dg/pr96308.C
! 0f98e094aa56199583b79bb8f67ace32  gcc/testsuite/g++.dg/pr96707.C
  d7c3ed7863806da0874952af08162681  gcc/testsuite/g++.dg/pr96818.C
  c228b3ed01594ed861f4cadcaf972679  gcc/testsuite/g++.dg/pr97538.C
  54b7e9e284a4bb84b630d364fb0bcec9  gcc/testsuite/g++.dg/pr97560.C
*************** c228b3ed01594ed861f4cadcaf972679  gcc/te
*** 27504,27510 ****
  4c8ee28b75b6181d48b6370da1d724c1  gcc/testsuite/g++.dg/pr98499.C
  b9c413e1dc01687c00feebd03ca30772  gcc/testsuite/g++.dg/pr99165.C
  26d6cca564c83a4cd20ad0860975aebe  gcc/testsuite/g++.dg/pr99218.C
! 16f6e7673b8c261b994bffd31df6eaca  gcc/testsuite/g++.dg/pr99966.C
  184e70d5635b77134bb901b25ccd4c61  gcc/testsuite/g++.dg/predict-1.C
  df9c1f0040c84d9c37fd8d281618f2df  gcc/testsuite/g++.dg/predict-2.C
  9eaee03e6354eabcc7fc34abc5cc11db  gcc/testsuite/g++.dg/predict-3.C
--- 29474,29480 ----
  4c8ee28b75b6181d48b6370da1d724c1  gcc/testsuite/g++.dg/pr98499.C
  b9c413e1dc01687c00feebd03ca30772  gcc/testsuite/g++.dg/pr99165.C
  26d6cca564c83a4cd20ad0860975aebe  gcc/testsuite/g++.dg/pr99218.C
! 38c671e5cdf90747c4a4ec7d8b5aa46f  gcc/testsuite/g++.dg/pr99966.C
  184e70d5635b77134bb901b25ccd4c61  gcc/testsuite/g++.dg/predict-1.C
  df9c1f0040c84d9c37fd8d281618f2df  gcc/testsuite/g++.dg/predict-2.C
  9eaee03e6354eabcc7fc34abc5cc11db  gcc/testsuite/g++.dg/predict-3.C
*************** c13886fc7e0e1c4f2f10e10b0cf68ec5  gcc/te
*** 27530,27535 ****
--- 29500,29506 ----
  3ab9a09d47a84110ec4939e3b62f240f  gcc/testsuite/g++.dg/rtti/dyncast5.C
  913bb84a51e6bd8906f5724a1477e5bc  gcc/testsuite/g++.dg/rtti/dyncast6.C
  6b7b9abdef581b0443a6c95803780913  gcc/testsuite/g++.dg/rtti/dyncast7.C
+ 16397f4e9708ba83d435335e48146387  gcc/testsuite/g++.dg/rtti/dyncast8.C
  df8a805281a95c255d57e5562a0c9c03  gcc/testsuite/g++.dg/rtti/fn-quals.C
  b5e04568d275d9d8237df66b459409ef  gcc/testsuite/g++.dg/rtti/incomplete1.C
  c27356ab2343f10d43b1a2e8626535be  gcc/testsuite/g++.dg/rtti/missing-typeinfo-include.C
*************** cd6d28f14e82cd6834a0a7c95a1ef1ee  gcc/te
*** 27549,27555 ****
  0a59597df37c7c17707fce47de09aef7  gcc/testsuite/g++.dg/rtti/typeid13.C
  f03a5377eca516c74e77fcf76b40f948  gcc/testsuite/g++.dg/rtti/typeid2.C
  3e23755748cd7e94d3bc13c5d2f78cc9  gcc/testsuite/g++.dg/rtti/typeid3.C
! f45226306cb853d7f47a657db3e4f853  gcc/testsuite/g++.dg/rtti/typeid4.C
  81cc751e8ba06b5401bbaef96e3aa2e4  gcc/testsuite/g++.dg/rtti/typeid5.C
  616525b35dd387c88ca7d48f832dadbb  gcc/testsuite/g++.dg/rtti/typeid6.C
  b0c0786c803eaf05e6755f729c87257e  gcc/testsuite/g++.dg/rtti/typeid7.C
--- 29520,29526 ----
  0a59597df37c7c17707fce47de09aef7  gcc/testsuite/g++.dg/rtti/typeid13.C
  f03a5377eca516c74e77fcf76b40f948  gcc/testsuite/g++.dg/rtti/typeid2.C
  3e23755748cd7e94d3bc13c5d2f78cc9  gcc/testsuite/g++.dg/rtti/typeid3.C
! 834ce48627988fb72d9a138ddedfdee8  gcc/testsuite/g++.dg/rtti/typeid4.C
  81cc751e8ba06b5401bbaef96e3aa2e4  gcc/testsuite/g++.dg/rtti/typeid5.C
  616525b35dd387c88ca7d48f832dadbb  gcc/testsuite/g++.dg/rtti/typeid6.C
  b0c0786c803eaf05e6755f729c87257e  gcc/testsuite/g++.dg/rtti/typeid7.C
*************** aee2d86d69331bf86f4fc179eaf2f8aa  gcc/te
*** 27561,27567 ****
  3357bf9a2204710e948cb278fb4c4266  gcc/testsuite/g++.dg/simulate-thread/atomics-2.C
  0f9193c70bd9c12ca05e5645fdd35442  gcc/testsuite/g++.dg/simulate-thread/bitfields-2.C
  f9a70819a6e534b6c462618926ea0a80  gcc/testsuite/g++.dg/simulate-thread/bitfields.C
! 0113e555f00ab8c2932657a69eb89519  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp
  c6cf9552e831a422e53a8ee8d8817449  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.gdb
  8ed1bb09d81129e522f6ac6dce99d52a  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.h
  2a467b197d39f6d623192355bbc4b5d3  gcc/testsuite/g++.dg/special/conpr-1.C
--- 29532,29538 ----
  3357bf9a2204710e948cb278fb4c4266  gcc/testsuite/g++.dg/simulate-thread/atomics-2.C
  0f9193c70bd9c12ca05e5645fdd35442  gcc/testsuite/g++.dg/simulate-thread/bitfields-2.C
  f9a70819a6e534b6c462618926ea0a80  gcc/testsuite/g++.dg/simulate-thread/bitfields.C
! ea108f0ab72c70f332dce43a5f7d6e1b  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp
  c6cf9552e831a422e53a8ee8d8817449  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.gdb
  8ed1bb09d81129e522f6ac6dce99d52a  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.h
  2a467b197d39f6d623192355bbc4b5d3  gcc/testsuite/g++.dg/special/conpr-1.C
*************** ce313483756ae4ae75458a512a089656  gcc/te
*** 27571,27591 ****
  09034a812fccea6ecaa6edd2f8089fc9  gcc/testsuite/g++.dg/special/conpr-3a.cc
  0d5597e1f29008b02b626a0d09bf9c34  gcc/testsuite/g++.dg/special/conpr-3b.cc
  a0eb468046d5e36275ade20495e2f0c4  gcc/testsuite/g++.dg/special/conpr-4.C
! 822e23fe1604bd0dce9cf1bdb4d10c6e  gcc/testsuite/g++.dg/special/ecos.exp
! d646642e04b6f7a6bb987dddc08a0268  gcc/testsuite/g++.dg/special/initp1.C
! ae5f6e9b349b6bd54b510d6f4e11eab0  gcc/testsuite/g++.dg/special/initpri1.C
! 495d2d9e552898de91e04d1536c2d0bc  gcc/testsuite/g++.dg/special/initpri2.C
  9475eac5ac93b56d08b936bbdc28bd93  gcc/testsuite/g++.dg/special/initpri3.C
  0bf488203688cc3a8da411c5dff908ce  gcc/testsuite/g++.dg/spellcheck-c++-11-keyword.C
  c1046dd316dec6f0b685aa481a1b9387  gcc/testsuite/g++.dg/spellcheck-fields-2.C
  b57591402d64bc0218597be33d025525  gcc/testsuite/g++.dg/spellcheck-fields.C
  10062571e916c88fbeb05d689547ddb5  gcc/testsuite/g++.dg/spellcheck-identifiers-2.C
  328a465a44edb7f7e2aea06d3d34791d  gcc/testsuite/g++.dg/spellcheck-identifiers.C
! f81c775a7fe1bc9a4d8635ab063fdd94  gcc/testsuite/g++.dg/spellcheck-inttypes.C
  c0c20230f9ca78ee531a757fe9c20cdc  gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C
  fd46030babeb665cfa8bb982f32c5409  gcc/testsuite/g++.dg/spellcheck-macro-ordering.C
  138b26dd96477d5ca37e93e1baad9a7f  gcc/testsuite/g++.dg/spellcheck-ns.C
  dea81150700765a4bf726fcbf91fe264  gcc/testsuite/g++.dg/spellcheck-pr104806.C
  e0b7add2701cd70f88a83a0d885fe339  gcc/testsuite/g++.dg/spellcheck-pr77565.C
  bec792904e3254c1f1b123d9654da558  gcc/testsuite/g++.dg/spellcheck-pr77829.C
  8917eaf0965b3d85de7008f1d17dee06  gcc/testsuite/g++.dg/spellcheck-pr78313.C
--- 29542,29561 ----
  09034a812fccea6ecaa6edd2f8089fc9  gcc/testsuite/g++.dg/special/conpr-3a.cc
  0d5597e1f29008b02b626a0d09bf9c34  gcc/testsuite/g++.dg/special/conpr-3b.cc
  a0eb468046d5e36275ade20495e2f0c4  gcc/testsuite/g++.dg/special/conpr-4.C
! 06c7f626d1a9589267161ef1a2503d0f  gcc/testsuite/g++.dg/special/ecos.exp
! f38eb1c2119073e3ada6329eac7bb68c  gcc/testsuite/g++.dg/special/initp1.C
  9475eac5ac93b56d08b936bbdc28bd93  gcc/testsuite/g++.dg/special/initpri3.C
  0bf488203688cc3a8da411c5dff908ce  gcc/testsuite/g++.dg/spellcheck-c++-11-keyword.C
  c1046dd316dec6f0b685aa481a1b9387  gcc/testsuite/g++.dg/spellcheck-fields-2.C
  b57591402d64bc0218597be33d025525  gcc/testsuite/g++.dg/spellcheck-fields.C
  10062571e916c88fbeb05d689547ddb5  gcc/testsuite/g++.dg/spellcheck-identifiers-2.C
  328a465a44edb7f7e2aea06d3d34791d  gcc/testsuite/g++.dg/spellcheck-identifiers.C
! ed04381b1414fba11a65bc4061a4f08e  gcc/testsuite/g++.dg/spellcheck-inttypes.C
  c0c20230f9ca78ee531a757fe9c20cdc  gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C
  fd46030babeb665cfa8bb982f32c5409  gcc/testsuite/g++.dg/spellcheck-macro-ordering.C
  138b26dd96477d5ca37e93e1baad9a7f  gcc/testsuite/g++.dg/spellcheck-ns.C
  dea81150700765a4bf726fcbf91fe264  gcc/testsuite/g++.dg/spellcheck-pr104806.C
+ 8c9fa8d98b15675b278e1c8a8a159bfa  gcc/testsuite/g++.dg/spellcheck-pr116771.C
  e0b7add2701cd70f88a83a0d885fe339  gcc/testsuite/g++.dg/spellcheck-pr77565.C
  bec792904e3254c1f1b123d9654da558  gcc/testsuite/g++.dg/spellcheck-pr77829.C
  8917eaf0965b3d85de7008f1d17dee06  gcc/testsuite/g++.dg/spellcheck-pr78313.C
*************** f5d8d2f92f0dbaa3ca7558a778137fb3  gcc/te
*** 27595,27607 ****
  569260f7b52f8c920f20c7151931a919  gcc/testsuite/g++.dg/spellcheck-reswords.C
  a450a634e49ab2a381246a13bda48525  gcc/testsuite/g++.dg/spellcheck-single-vs-multiple.C
  454263f21a26f7f73f48676987f8e867  gcc/testsuite/g++.dg/spellcheck-stdint.C
! 9aff84f363671662ec5dfc896edd6582  gcc/testsuite/g++.dg/spellcheck-stdlib.C
  7eb03d350a29bce257b72d771d908294  gcc/testsuite/g++.dg/spellcheck-typenames.C
  9ad7d6448de7763f41feba51662efa9e  gcc/testsuite/g++.dg/sso-1.C
  3effe360372112f0a4945b07676db736  gcc/testsuite/g++.dg/sso-2.C
  fa011470540ad9d82ce9256acb7c4e4e  gcc/testsuite/g++.dg/stackprotectexplicit2.C
  818e836e9afe37ef1ccf1f438b5cf602  gcc/testsuite/g++.dg/strict-flex-array-1.C
! 157d3f0c534e49c591c432027d5bcb8b  gcc/testsuite/g++.dg/strub-internal-pr112938.cc
  5e439908573db43929c1f7391d7edaa9  gcc/testsuite/g++.dg/strub-run1.C
  17ca6638f0ceb63bdd6e6d79da598160  gcc/testsuite/g++.dg/system-binary-constants-1.C
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/g++.dg/system-binary-constants-1.h
--- 29565,29577 ----
  569260f7b52f8c920f20c7151931a919  gcc/testsuite/g++.dg/spellcheck-reswords.C
  a450a634e49ab2a381246a13bda48525  gcc/testsuite/g++.dg/spellcheck-single-vs-multiple.C
  454263f21a26f7f73f48676987f8e867  gcc/testsuite/g++.dg/spellcheck-stdint.C
! 8b916c1ac05677182e533b45eff19bf9  gcc/testsuite/g++.dg/spellcheck-stdlib.C
  7eb03d350a29bce257b72d771d908294  gcc/testsuite/g++.dg/spellcheck-typenames.C
  9ad7d6448de7763f41feba51662efa9e  gcc/testsuite/g++.dg/sso-1.C
  3effe360372112f0a4945b07676db736  gcc/testsuite/g++.dg/sso-2.C
  fa011470540ad9d82ce9256acb7c4e4e  gcc/testsuite/g++.dg/stackprotectexplicit2.C
  818e836e9afe37ef1ccf1f438b5cf602  gcc/testsuite/g++.dg/strict-flex-array-1.C
! 5ae572fc7ba2fc76c79211b3e649a0cd  gcc/testsuite/g++.dg/strub-internal-pr112938.C
  5e439908573db43929c1f7391d7edaa9  gcc/testsuite/g++.dg/strub-run1.C
  17ca6638f0ceb63bdd6e6d79da598160  gcc/testsuite/g++.dg/system-binary-constants-1.C
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/g++.dg/system-binary-constants-1.h
*************** dd2defc24babdb2f3aa8673df9c6f9ee  gcc/te
*** 27613,27619 ****
  0af74303a4251b24669c368429e4af91  gcc/testsuite/g++.dg/tc1/dr135.C
  99d9baa145878193d96bb8fdf40450f8  gcc/testsuite/g++.dg/tc1/dr137.C
  3744495bca19f5bc07f054153fed1b2d  gcc/testsuite/g++.dg/tc1/dr142.C
! 4293e24bf448b6ddc91f799f06874284  gcc/testsuite/g++.dg/tc1/dr147.C
  db994e5b10fcb3e8ba3d62cd17b3ae65  gcc/testsuite/g++.dg/tc1/dr152.C
  9b56ad73b780b825e0de60463c83386f  gcc/testsuite/g++.dg/tc1/dr159.C
  62aa8921c6705fdab59b10a7be7f39b9  gcc/testsuite/g++.dg/tc1/dr161.C
--- 29583,29589 ----
  0af74303a4251b24669c368429e4af91  gcc/testsuite/g++.dg/tc1/dr135.C
  99d9baa145878193d96bb8fdf40450f8  gcc/testsuite/g++.dg/tc1/dr137.C
  3744495bca19f5bc07f054153fed1b2d  gcc/testsuite/g++.dg/tc1/dr142.C
! 611125eb2635750b8a465f217194f61c  gcc/testsuite/g++.dg/tc1/dr147.C
  db994e5b10fcb3e8ba3d62cd17b3ae65  gcc/testsuite/g++.dg/tc1/dr152.C
  9b56ad73b780b825e0de60463c83386f  gcc/testsuite/g++.dg/tc1/dr159.C
  62aa8921c6705fdab59b10a7be7f39b9  gcc/testsuite/g++.dg/tc1/dr161.C
*************** d1ab3a2909d9d576c5dfa94f007a2714  gcc/te
*** 27680,27685 ****
--- 29650,29657 ----
  5428fd71694c60d17f4ec642a0d2f66b  gcc/testsuite/g++.dg/template/access40a.C
  70ca1a844bab441488d753b92bdb5b0a  gcc/testsuite/g++.dg/template/access41.C
  546a46c71775301a03f3deb4b60d4aad  gcc/testsuite/g++.dg/template/access41a.C
+ 7b80fa9125b48cb8cc6fddc40f053fa4  gcc/testsuite/g++.dg/template/access42.C
+ 60292ba816a340e604583c5f2ea60c97  gcc/testsuite/g++.dg/template/access43.C
  043c53bbc7cad60a3c72bfa79987f011  gcc/testsuite/g++.dg/template/access5.C
  3f2e5ae210f767c1589637afbcf45353  gcc/testsuite/g++.dg/template/access6.C
  974ff59cea85bedc028eb1bc9e350cc5  gcc/testsuite/g++.dg/template/access7.C
*************** b8d7ae2a709e06f2d49e19cfb00e77d3  gcc/te
*** 27755,27760 ****
--- 29727,29749 ----
  fc503a6c4d63b92622d495b917629877  gcc/testsuite/g++.dg/template/bitfield2.C
  8a0fec8b2c65fed33977466ab46bb239  gcc/testsuite/g++.dg/template/bitfield3.C
  3beaec71f8c3eee7f77d4f01acdfd9c8  gcc/testsuite/g++.dg/template/bitfield4.C
+ dfa641076fcfa6f7c53b7912218f4c62  gcc/testsuite/g++.dg/template/builtin-atomic-overloads.def
+ 3271fe47f6cc8b603c5a72148c24c04c  gcc/testsuite/g++.dg/template/builtin-atomic-overloads1.C
+ f86dd5e826edf7434db390f559e0c24b  gcc/testsuite/g++.dg/template/builtin-atomic-overloads2.C
+ 8890baf8e512933cb2cd848e57123192  gcc/testsuite/g++.dg/template/builtin-atomic-overloads3.C
+ 1d686621bf02f82a9455f41cd3717537  gcc/testsuite/g++.dg/template/builtin-atomic-overloads4.C
+ 487850e658d674265bc3c2cea97f1704  gcc/testsuite/g++.dg/template/builtin-atomic-overloads5.C
+ e71211a8509cb9bd1d99a9d80549646c  gcc/testsuite/g++.dg/template/builtin-atomic-overloads6.C
+ c81d1ab429b6b7e6b96fd5b6fdf1f952  gcc/testsuite/g++.dg/template/builtin-atomic-overloads7.C
+ 54081d8a9bf8401cc31eb17dd346824c  gcc/testsuite/g++.dg/template/builtin-atomic-overloads8.C
+ 361c89aa7b0037ed4958ed6075065a23  gcc/testsuite/g++.dg/template/builtin-sfinae-check-function-arguments.C
+ 6472bc5c5aabaeb77fc684cbf10fa11c  gcc/testsuite/g++.dg/template/builtin-speculation-overloads.def
+ 5261a5b03d6b41d5bb09eab658430793  gcc/testsuite/g++.dg/template/builtin-speculation-overloads1.C
+ a338dafe8982e554d1a96ee99d8055ee  gcc/testsuite/g++.dg/template/builtin-speculation-overloads2.C
+ bbf58d2c1de84d183218c7990c0a94bd  gcc/testsuite/g++.dg/template/builtin-speculation-overloads3.C
+ 1be40867a9222e4a8f73be2bf184cee1  gcc/testsuite/g++.dg/template/builtin-speculation-overloads4.C
+ 27895f89342f0dec59f10be4bbd0234f  gcc/testsuite/g++.dg/template/builtin-speculation-overloads5.C
+ e90b2dadd605ff25a792da3c8534060a  gcc/testsuite/g++.dg/template/builtin-validate-nargs.C
  479ce6c62d0ab31928edd3bcef27bd5c  gcc/testsuite/g++.dg/template/builtin1.C
  2f695f5e6701fd2021f98c6f4737f36a  gcc/testsuite/g++.dg/template/builtin2.C
  11d89720e8ea4a5f11553338c13ffab9  gcc/testsuite/g++.dg/template/call1.C
*************** c96fbe06df46f858258f3ea5558788f1  gcc/te
*** 27830,27835 ****
--- 29819,29825 ----
  bd99141c68d90e04855763e3f2bfa63a  gcc/testsuite/g++.dg/template/conv19.C
  383f6618c1ccaddea23b36ff23d6d35e  gcc/testsuite/g++.dg/template/conv2.C
  7007296b331c98d850f1256174a2f610  gcc/testsuite/g++.dg/template/conv20.C
+ 05f9ba85749887a212abad39f1a3aabf  gcc/testsuite/g++.dg/template/conv21.C
  be5017725e9889a47d07ba0d3a3464ff  gcc/testsuite/g++.dg/template/conv3.C
  53aab59e272fd22ef1ad191d0f31e01d  gcc/testsuite/g++.dg/template/conv4.C
  65388659b6ed4f0befbd55edf3402b26  gcc/testsuite/g++.dg/template/conv5.C
*************** c46bfc45cf117d650bdd4a356b6c84a3  gcc/te
*** 27864,27871 ****
  230fdf28e2679badd4d1e2ada88965a3  gcc/testsuite/g++.dg/template/crash120.C
  df0ba8413403f6b40fdb4cf483e8ae03  gcc/testsuite/g++.dg/template/crash121.C
  b1116241a73655533d853dad64261e36  gcc/testsuite/g++.dg/template/crash122.C
! 6c76fd060efb8d3d16a5ce603ea37df4  gcc/testsuite/g++.dg/template/crash123.C
! c081ec235535cb35db6b7c0cf3a35a8a  gcc/testsuite/g++.dg/template/crash124.C
  f3479c12a0b2990faeabcc639e8885b8  gcc/testsuite/g++.dg/template/crash125.C
  7453dcdcd734927985213354703f9e57  gcc/testsuite/g++.dg/template/crash126.C
  e76932a50076b6ac19d84f78bd166451  gcc/testsuite/g++.dg/template/crash127.C
--- 29854,29861 ----
  230fdf28e2679badd4d1e2ada88965a3  gcc/testsuite/g++.dg/template/crash120.C
  df0ba8413403f6b40fdb4cf483e8ae03  gcc/testsuite/g++.dg/template/crash121.C
  b1116241a73655533d853dad64261e36  gcc/testsuite/g++.dg/template/crash122.C
! 904d74d869ce748911221889bbd2443d  gcc/testsuite/g++.dg/template/crash123.C
! e712f965fc211a235e6109635cf95417  gcc/testsuite/g++.dg/template/crash124.C
  f3479c12a0b2990faeabcc639e8885b8  gcc/testsuite/g++.dg/template/crash125.C
  7453dcdcd734927985213354703f9e57  gcc/testsuite/g++.dg/template/crash126.C
  e76932a50076b6ac19d84f78bd166451  gcc/testsuite/g++.dg/template/crash127.C
*************** e29b7df66408269c2eaea4100f6227cf  gcc/te
*** 27935,27943 ****
  4d18a79ebe27fdc9fc1cfb181d77510d  gcc/testsuite/g++.dg/template/crash67.C
  c1f00d9dd86a49d2de34225f9a691ce2  gcc/testsuite/g++.dg/template/crash68.C
  2b646bf21413c604275237ba8401ba2d  gcc/testsuite/g++.dg/template/crash69.C
! 06046d22cf3c22ee7b43a28ededa385e  gcc/testsuite/g++.dg/template/crash7.C
  c85f4fa8150e192f434daf84a485d751  gcc/testsuite/g++.dg/template/crash70.C
! 0b285f2f1b009c729f52a24b788c7519  gcc/testsuite/g++.dg/template/crash71.C
  5af3f62d9558cd52f4d5aa70db89dd19  gcc/testsuite/g++.dg/template/crash72.C
  b6d335f5ace93b3d4a0fd5d2614a2df2  gcc/testsuite/g++.dg/template/crash73.C
  1363ef4acbdebfd7f9100d267a7e11ab  gcc/testsuite/g++.dg/template/crash74.C
--- 29925,29933 ----
  4d18a79ebe27fdc9fc1cfb181d77510d  gcc/testsuite/g++.dg/template/crash67.C
  c1f00d9dd86a49d2de34225f9a691ce2  gcc/testsuite/g++.dg/template/crash68.C
  2b646bf21413c604275237ba8401ba2d  gcc/testsuite/g++.dg/template/crash69.C
! b9b97840c78d09c7328f95ea18a0b630  gcc/testsuite/g++.dg/template/crash7.C
  c85f4fa8150e192f434daf84a485d751  gcc/testsuite/g++.dg/template/crash70.C
! 83b08ef2408859f469d7d32c88e46508  gcc/testsuite/g++.dg/template/crash71.C
  5af3f62d9558cd52f4d5aa70db89dd19  gcc/testsuite/g++.dg/template/crash72.C
  b6d335f5ace93b3d4a0fd5d2614a2df2  gcc/testsuite/g++.dg/template/crash73.C
  1363ef4acbdebfd7f9100d267a7e11ab  gcc/testsuite/g++.dg/template/crash74.C
*************** f64b5dcbfa3d3051a358c8d1c1e8a878  gcc/te
*** 28022,28027 ****
--- 30012,30019 ----
  ba2918f2d50d14da19e142ac392345e1  gcc/testsuite/g++.dg/template/dependent-base1.C
  2cfeba0039a93060ff77245f34166e52  gcc/testsuite/g++.dg/template/dependent-base2.C
  1ea2af4911d47cd67d9e3ab837ef48bc  gcc/testsuite/g++.dg/template/dependent-base3.C
+ d84a51031591e89db0598597a16e9314  gcc/testsuite/g++.dg/template/dependent-base4.C
+ 1b766fbec06df8398c3415a9e993d06e  gcc/testsuite/g++.dg/template/dependent-base5.C
  d06a8849a0e0df87f9e222f08a6f4852  gcc/testsuite/g++.dg/template/dependent-expr1.C
  10b3f1b7a34c9d4e9be1e9844babd34d  gcc/testsuite/g++.dg/template/dependent-expr10.C
  6b486f8c9b9b318c76811eb21046957f  gcc/testsuite/g++.dg/template/dependent-expr2.C
*************** da49e3bfe08f2e0003c1ae998fbe1341  gcc/te
*** 28065,28075 ****
  c10faccbba72797e793c4697fe233f9c  gcc/testsuite/g++.dg/template/dtor1.C
  1884ceace01fa586f2b2e401389c4d6c  gcc/testsuite/g++.dg/template/dtor10.C
  9114f16f9adb7110272b71b98727d1a0  gcc/testsuite/g++.dg/template/dtor11.C
  9fd7932701e6809fa0bec2f61112a78d  gcc/testsuite/g++.dg/template/dtor2.C
  1a5ba691093323438c61f31621e88355  gcc/testsuite/g++.dg/template/dtor3.C
  30baa920951cc8b6314c9d2634a73d46  gcc/testsuite/g++.dg/template/dtor4.C
  f506b1031f9f0a990434e45230ea7a0e  gcc/testsuite/g++.dg/template/dtor5.C
! 7c26bce0e147a736ed5e0ed0993c315e  gcc/testsuite/g++.dg/template/dtor6.C
  4a814bc6794f74cc5cd4043a45a39370  gcc/testsuite/g++.dg/template/dtor7.C
  742d7a2b91f4f06a277defe5ec77d638  gcc/testsuite/g++.dg/template/dtor8.C
  b9b01dec580fb1da9d89837046c6a698  gcc/testsuite/g++.dg/template/dtor9.C
--- 30057,30068 ----
  c10faccbba72797e793c4697fe233f9c  gcc/testsuite/g++.dg/template/dtor1.C
  1884ceace01fa586f2b2e401389c4d6c  gcc/testsuite/g++.dg/template/dtor10.C
  9114f16f9adb7110272b71b98727d1a0  gcc/testsuite/g++.dg/template/dtor11.C
+ b2d140f7174d8a9fe2fa6d736a298a47  gcc/testsuite/g++.dg/template/dtor12.C
  9fd7932701e6809fa0bec2f61112a78d  gcc/testsuite/g++.dg/template/dtor2.C
  1a5ba691093323438c61f31621e88355  gcc/testsuite/g++.dg/template/dtor3.C
  30baa920951cc8b6314c9d2634a73d46  gcc/testsuite/g++.dg/template/dtor4.C
  f506b1031f9f0a990434e45230ea7a0e  gcc/testsuite/g++.dg/template/dtor5.C
! 196f81469779763d40d77d58e49f8194  gcc/testsuite/g++.dg/template/dtor6.C
  4a814bc6794f74cc5cd4043a45a39370  gcc/testsuite/g++.dg/template/dtor7.C
  742d7a2b91f4f06a277defe5ec77d638  gcc/testsuite/g++.dg/template/dtor8.C
  b9b01dec580fb1da9d89837046c6a698  gcc/testsuite/g++.dg/template/dtor9.C
*************** c141fe6a264c757500f6ee4ed30842f6  gcc/te
*** 28104,28113 ****
  269f5e4cc9b32dd8bffd5303b263175b  gcc/testsuite/g++.dg/template/error2.C
  c76b01c2f7357d4400cd8e049826cc38  gcc/testsuite/g++.dg/template/error20.C
  d8c534ccbad9bbbc650685d274b0d2ca  gcc/testsuite/g++.dg/template/error21.C
! 0410b7c7bd9073553278277bf23f74ff  gcc/testsuite/g++.dg/template/error22.C
  fa7f4116ebf37e2b57813ba48500f497  gcc/testsuite/g++.dg/template/error23.C
  6c54776e760954055280860b689859b0  gcc/testsuite/g++.dg/template/error24.C
! 71733e631fa8818c87871de65f8e6b9d  gcc/testsuite/g++.dg/template/error25.C
  4193d6f584da90f2fe4c2e4cc8ef6c43  gcc/testsuite/g++.dg/template/error26.C
  d94402fce12c3debaa6aa7a22d0d5261  gcc/testsuite/g++.dg/template/error27.C
  a687552bc36835830b1f2af841f44459  gcc/testsuite/g++.dg/template/error28.C
--- 30097,30106 ----
  269f5e4cc9b32dd8bffd5303b263175b  gcc/testsuite/g++.dg/template/error2.C
  c76b01c2f7357d4400cd8e049826cc38  gcc/testsuite/g++.dg/template/error20.C
  d8c534ccbad9bbbc650685d274b0d2ca  gcc/testsuite/g++.dg/template/error21.C
! b206d52585232106614eda031f09f888  gcc/testsuite/g++.dg/template/error22.C
  fa7f4116ebf37e2b57813ba48500f497  gcc/testsuite/g++.dg/template/error23.C
  6c54776e760954055280860b689859b0  gcc/testsuite/g++.dg/template/error24.C
! 68b978c58b7dec4d6f82b6a19c844661  gcc/testsuite/g++.dg/template/error25.C
  4193d6f584da90f2fe4c2e4cc8ef6c43  gcc/testsuite/g++.dg/template/error26.C
  d94402fce12c3debaa6aa7a22d0d5261  gcc/testsuite/g++.dg/template/error27.C
  a687552bc36835830b1f2af841f44459  gcc/testsuite/g++.dg/template/error28.C
*************** d7dd197474ca91bf31cfac374404267d  gcc/te
*** 28146,28153 ****
  07b03a083081547de28e0a1afd970688  gcc/testsuite/g++.dg/template/error58.C
  4077977a426a678e1310042bae833fd5  gcc/testsuite/g++.dg/template/error59.C
  8f931fa8690071fcefc2b1d1d7483bfc  gcc/testsuite/g++.dg/template/error6.C
! 872318a2899c309f5bb451d2a7b17e38  gcc/testsuite/g++.dg/template/error60.C
! 304cb66563db90634c10605cf1335586  gcc/testsuite/g++.dg/template/error60a.C
  3eacbecd65bcd0b71a23a9e2127f6e27  gcc/testsuite/g++.dg/template/error7.C
  c9b240f0c05d21fb3eecb76bae171790  gcc/testsuite/g++.dg/template/error8.C
  140297b8d72a104b762af1a4e390e9ec  gcc/testsuite/g++.dg/template/error9.C
--- 30139,30146 ----
  07b03a083081547de28e0a1afd970688  gcc/testsuite/g++.dg/template/error58.C
  4077977a426a678e1310042bae833fd5  gcc/testsuite/g++.dg/template/error59.C
  8f931fa8690071fcefc2b1d1d7483bfc  gcc/testsuite/g++.dg/template/error6.C
! 3200285966b87a57d2047217f7a90e2f  gcc/testsuite/g++.dg/template/error60.C
! efe40679a658e385490c611f86d0647f  gcc/testsuite/g++.dg/template/error60a.C
  3eacbecd65bcd0b71a23a9e2127f6e27  gcc/testsuite/g++.dg/template/error7.C
  c9b240f0c05d21fb3eecb76bae171790  gcc/testsuite/g++.dg/template/error8.C
  140297b8d72a104b762af1a4e390e9ec  gcc/testsuite/g++.dg/template/error9.C
*************** e55630cc11be91571d5b580292e51090  gcc/te
*** 28160,28166 ****
  231648bc12e1dfdeee041e3845e82de6  gcc/testsuite/g++.dg/template/explicit-args3.C
  423c767a5a26b27f06ba2a9e2443961a  gcc/testsuite/g++.dg/template/explicit-args4.C
  ebbbdf155c7037b83cc023e3e0fdf4e2  gcc/testsuite/g++.dg/template/explicit-args5.C
! 758a90528ad869ffc7b6c7723faf93ad  gcc/testsuite/g++.dg/template/explicit-args6.C
  c516af6d3dbacce330102f6926ee7107  gcc/testsuite/g++.dg/template/explicit-args7.C
  740f8870f14cf5cb47de273475c965b1  gcc/testsuite/g++.dg/template/explicit-instantiation.C
  6335a6cb9fd88717c1c31d2bc8b80c3e  gcc/testsuite/g++.dg/template/explicit-instantiation2.C
--- 30153,30159 ----
  231648bc12e1dfdeee041e3845e82de6  gcc/testsuite/g++.dg/template/explicit-args3.C
  423c767a5a26b27f06ba2a9e2443961a  gcc/testsuite/g++.dg/template/explicit-args4.C
  ebbbdf155c7037b83cc023e3e0fdf4e2  gcc/testsuite/g++.dg/template/explicit-args5.C
! d8b1825c4d2e40e3cc4894f817f4c339  gcc/testsuite/g++.dg/template/explicit-args6.C
  c516af6d3dbacce330102f6926ee7107  gcc/testsuite/g++.dg/template/explicit-args7.C
  740f8870f14cf5cb47de273475c965b1  gcc/testsuite/g++.dg/template/explicit-instantiation.C
  6335a6cb9fd88717c1c31d2bc8b80c3e  gcc/testsuite/g++.dg/template/explicit-instantiation2.C
*************** c516af6d3dbacce330102f6926ee7107  gcc/te
*** 28169,28174 ****
--- 30162,30169 ----
  2272cd92b5c114b457626eb6e3f44b3c  gcc/testsuite/g++.dg/template/explicit-instantiation5.C
  c6a14388529e88398ceff5e475585175  gcc/testsuite/g++.dg/template/explicit-instantiation6.C
  edbb068b5e160bf72ca66e43d8adde70  gcc/testsuite/g++.dg/template/explicit-instantiation7.C
+ cd59b83738231d65f6e81bfdcafe5ed8  gcc/testsuite/g++.dg/template/explicit-instantiation8.C
+ 9f2fe063cb376a7d8e7132c2abb44026  gcc/testsuite/g++.dg/template/explicit-instantiation9.C
  610a5ce174887479710ddef7e050b0e9  gcc/testsuite/g++.dg/template/explicit1.C
  44f3a8f925589bae9dc773b19a3fd2de  gcc/testsuite/g++.dg/template/explicit2.C
  3b0207ca15de6320946949f657d95b9a  gcc/testsuite/g++.dg/template/explicit3.C
*************** d48db96d165a20e7398ea0f7e9cd00c3  gcc/te
*** 28187,28193 ****
--- 30182,30191 ----
  b705911769b4dedde26fc55666525547  gcc/testsuite/g++.dg/template/fn-ptr3a.C
  b21023a383690906d31ed5c2f45cd122  gcc/testsuite/g++.dg/template/fn-ptr3b.C
  2137f89260c82e219c89d76cc24abafa  gcc/testsuite/g++.dg/template/fn-ptr4.C
+ 15c91b52ba262150255ee24fc766130a  gcc/testsuite/g++.dg/template/fn-ptr5.C
  636ef7c6b9de68376146848db023fb19  gcc/testsuite/g++.dg/template/fn-ref1.C
+ 596e9a4df3c6eb243de897242ff62dbc  gcc/testsuite/g++.dg/template/fn-template1.C
+ 23367d7920fcc837c585070555323a03  gcc/testsuite/g++.dg/template/fn-template2.C
  f85ab66eeb2b191e2fee2b0b5013d956  gcc/testsuite/g++.dg/template/fn.C
  1581f9141ad183d6d31a009275ebf7a4  gcc/testsuite/g++.dg/template/fnspec1.C
  b3daac63a206f01addf077a8790a86dc  gcc/testsuite/g++.dg/template/fnspec2.C
*************** b3daac63a206f01addf077a8790a86dc  gcc/te
*** 28195,28201 ****
  8f101d84c90c958381606b762e3df298  gcc/testsuite/g++.dg/template/fntry1.C
  c3025665d58f3b1443b5cbb53b5bd0f6  gcc/testsuite/g++.dg/template/fntype1.C
  7ac174f3aacd8bf0e65398beb7becf93  gcc/testsuite/g++.dg/template/friend.C
! bdf8365204c19eeb87434d85b7139d2d  gcc/testsuite/g++.dg/template/friend10.C
  c1eab5b806b63596b0fa26a471273823  gcc/testsuite/g++.dg/template/friend11.C
  b0a401cf45ed38cceaf9b0b254083c87  gcc/testsuite/g++.dg/template/friend12.C
  443d8784ec310c25ee130df06beefdd0  gcc/testsuite/g++.dg/template/friend13.C
--- 30193,30199 ----
  8f101d84c90c958381606b762e3df298  gcc/testsuite/g++.dg/template/fntry1.C
  c3025665d58f3b1443b5cbb53b5bd0f6  gcc/testsuite/g++.dg/template/fntype1.C
  7ac174f3aacd8bf0e65398beb7becf93  gcc/testsuite/g++.dg/template/friend.C
! ae85e668ff346bde02abf586810bc78c  gcc/testsuite/g++.dg/template/friend10.C
  c1eab5b806b63596b0fa26a471273823  gcc/testsuite/g++.dg/template/friend11.C
  b0a401cf45ed38cceaf9b0b254083c87  gcc/testsuite/g++.dg/template/friend12.C
  443d8784ec310c25ee130df06beefdd0  gcc/testsuite/g++.dg/template/friend13.C
*************** e99bfe98523cadafac68ba8e9e8c8f35  gcc/te
*** 28273,28278 ****
--- 30271,30285 ----
  5ded44dad812054a2b06422df4b95665  gcc/testsuite/g++.dg/template/friend78.C
  4dc437715a142713343f675e0a33aa94  gcc/testsuite/g++.dg/template/friend79.C
  ceb858e95982ac0af2e9168f31aea229  gcc/testsuite/g++.dg/template/friend8.C
+ d8f7b87db1014927f2070e74b2efaaf2  gcc/testsuite/g++.dg/template/friend80.C
+ 439001b603c80fcd808f101cf38fcfec  gcc/testsuite/g++.dg/template/friend81.C
+ 5960be7ee000af985534bf9ae84e9615  gcc/testsuite/g++.dg/template/friend81a.C
+ 1260f694dc3dd451cfc4b810d0c71c4f  gcc/testsuite/g++.dg/template/friend82.C
+ 0ee02a7e012c3cfebd86e5d4a80d3cd0  gcc/testsuite/g++.dg/template/friend83.C
+ ae55d6e48a2ac8b72c938dc82c696408  gcc/testsuite/g++.dg/template/friend84.C
+ 7b1e5908f61421fb93ba70039b7baafb  gcc/testsuite/g++.dg/template/friend85.C
+ 40f2052ca29ac45703070d7e1c57ce4d  gcc/testsuite/g++.dg/template/friend86.C
+ ab0d4ef98f5934bea97966eb11b99f85  gcc/testsuite/g++.dg/template/friend87.C
  59b5bf61b7f6210d3cf3b9b45692794a  gcc/testsuite/g++.dg/template/friend9.C
  d5d24fc94d133229a10c5b13f44c253b  gcc/testsuite/g++.dg/template/func1.C
  1959538a6f69b747e873f9e029cc6fa6  gcc/testsuite/g++.dg/template/func2.C
*************** d220f34a4df308614ca3763082657ded  gcc/te
*** 28344,28349 ****
--- 30351,30358 ----
  f2d064e0f1029527b659311fe92ff1bc  gcc/testsuite/g++.dg/template/linkage4.C
  482f9bc740469050d0b48a40a8ec0627  gcc/testsuite/g++.dg/template/linkage4a.C
  922a9805f247c92f5a1c8841d7e7adbe  gcc/testsuite/g++.dg/template/linkage5.C
+ 77b7fd8eb81dd1ea5c4e273a67a20269  gcc/testsuite/g++.dg/template/linkage6.C
+ 5b110d47aad7aa5f68d36f43dcb115fe  gcc/testsuite/g++.dg/template/linkage7.C
  29182ba864d966fb7660afbfb5b53867  gcc/testsuite/g++.dg/template/local-fn1.C
  5c91f2205ed2a7f3fb059e7ae61d14a0  gcc/testsuite/g++.dg/template/local-fn2.C
  0a5354fadb501a8e2beb59a5fee1674a  gcc/testsuite/g++.dg/template/local-fn3.C
*************** d32b0f4cfabbf7cf6a3f55db155096d2  gcc/te
*** 28355,28361 ****
  e254df20b082728d0e04a8e1b3b18557  gcc/testsuite/g++.dg/template/local3.C
  a014c1dc8c12fc5b1125d98db2cd0ca2  gcc/testsuite/g++.dg/template/local4.C
  cdb30bf1f7ce096f5aff97aa15fa35ce  gcc/testsuite/g++.dg/template/local5.C
! db3d0b652cfc094848e74f8c98356f92  gcc/testsuite/g++.dg/template/local6.C
  e8013d76ce3f8f9574197fee5026c527  gcc/testsuite/g++.dg/template/local7.C
  4b8e232e3f151333498020bca196e50d  gcc/testsuite/g++.dg/template/local8.C
  8ba073bcaa2c38a5aee5b8aec702eed2  gcc/testsuite/g++.dg/template/local9.C
--- 30364,30370 ----
  e254df20b082728d0e04a8e1b3b18557  gcc/testsuite/g++.dg/template/local3.C
  a014c1dc8c12fc5b1125d98db2cd0ca2  gcc/testsuite/g++.dg/template/local4.C
  cdb30bf1f7ce096f5aff97aa15fa35ce  gcc/testsuite/g++.dg/template/local5.C
! a378fd5a9bb9f67d0f184d49c826af49  gcc/testsuite/g++.dg/template/local6.C
  e8013d76ce3f8f9574197fee5026c527  gcc/testsuite/g++.dg/template/local7.C
  4b8e232e3f151333498020bca196e50d  gcc/testsuite/g++.dg/template/local8.C
  8ba073bcaa2c38a5aee5b8aec702eed2  gcc/testsuite/g++.dg/template/local9.C
*************** bff165ca22463894c2709efc7a2bb28a  gcc/te
*** 28485,28490 ****
--- 30494,30501 ----
  908381d5e34f27621eda71696a2c9bdc  gcc/testsuite/g++.dg/template/non-dependent31.C
  9f020e70a17822cbbec68bd2bd4ef868  gcc/testsuite/g++.dg/template/non-dependent32.C
  894bde5373b01d069b2f9aac23e0b2ed  gcc/testsuite/g++.dg/template/non-dependent33.C
+ 9cfef24f457bfcfd36ab139919a814d2  gcc/testsuite/g++.dg/template/non-dependent34.C
+ 71ddc650371fc5c08e555a30e3c3457c  gcc/testsuite/g++.dg/template/non-dependent35.C
  c74bd06e4f01d82b6dffe8568a9f9286  gcc/testsuite/g++.dg/template/non-dependent4.C
  7e000c3eaeb33b0cda5191bb78ee313d  gcc/testsuite/g++.dg/template/non-dependent5.C
  45dd220f658e86742366772757b041e2  gcc/testsuite/g++.dg/template/non-dependent6.C
*************** af2b317af1f920fbca6b70a32297df09  gcc/te
*** 28609,28615 ****
--- 30620,30632 ----
  27869f98e951e86a28a79500f1a221da  gcc/testsuite/g++.dg/template/partial7.C
  2b23d416282107a906fcf6e2b3a898e7  gcc/testsuite/g++.dg/template/partial8.C
  9fc092b7f4cd096177059593553e523e  gcc/testsuite/g++.dg/template/partial9.C
+ e9eecc4e36093cbeffd87b5fc1d838c5  gcc/testsuite/g++.dg/template/permissive-error1.C
+ eb665dfa7b7ea47842e7a0ca1a4046e2  gcc/testsuite/g++.dg/template/permissive-error1a.C
+ 5617adf87656fe7cb0eff6a0b9c0033c  gcc/testsuite/g++.dg/template/permissive-error1b.C
+ 6cdb652b5984198200693a1bd0d70d93  gcc/testsuite/g++.dg/template/permissive-error1c.C
+ 28d3f4512b4406102180ca1103ff1454  gcc/testsuite/g++.dg/template/permissive-error2.C
  14967698fd85bf0506454b2df17f8d2a  gcc/testsuite/g++.dg/template/pr108206.C
+ 47c32753e30b4754695e8eabfcc1e9f5  gcc/testsuite/g++.dg/template/pr119138.C
  1cb28c70209f6da9c6fd5dc25fde1e1a  gcc/testsuite/g++.dg/template/pr16564.C
  ada1f30ea7c959c2a12b240ba308c1bf  gcc/testsuite/g++.dg/template/pr17410.C
  d87951fd4d4a384028f64a2c9e34ee94  gcc/testsuite/g++.dg/template/pr18969-2.C
*************** a28a4941fa94389caaf911a2fcb4d409  gcc/te
*** 28655,28661 ****
  dc596bbe718062e4efd87fdbfac8a395  gcc/testsuite/g++.dg/template/pr68948.C
  d61719a4c95fa31a2f3b02de9b02129f  gcc/testsuite/g++.dg/template/pr68978.C
  af6d997be6d23572000a1f53fb362c54  gcc/testsuite/g++.dg/template/pr69091.C
! 74c16422bfee14becfdab59426868fb7  gcc/testsuite/g++.dg/template/pr69961a.C
  2bb8ec1b3640d593c78682666bf1f95a  gcc/testsuite/g++.dg/template/pr69961b.C
  fd9d0d596049d0cdf35f01b62e86ae81  gcc/testsuite/g++.dg/template/pr70466-1.C
  a351a9dbecc556fb14937111d4035d00  gcc/testsuite/g++.dg/template/pr70466-2.C
--- 30672,30678 ----
  dc596bbe718062e4efd87fdbfac8a395  gcc/testsuite/g++.dg/template/pr68948.C
  d61719a4c95fa31a2f3b02de9b02129f  gcc/testsuite/g++.dg/template/pr68978.C
  af6d997be6d23572000a1f53fb362c54  gcc/testsuite/g++.dg/template/pr69091.C
! b8e8da2c5814707417a40ff4eb4a052e  gcc/testsuite/g++.dg/template/pr69961a.C
  2bb8ec1b3640d593c78682666bf1f95a  gcc/testsuite/g++.dg/template/pr69961b.C
  fd9d0d596049d0cdf35f01b62e86ae81  gcc/testsuite/g++.dg/template/pr70466-1.C
  a351a9dbecc556fb14937111d4035d00  gcc/testsuite/g++.dg/template/pr70466-2.C
*************** ef46096422fcafeef03840d9589d3c80  gcc/te
*** 28706,28711 ****
--- 30723,30729 ----
  b2d3a32829fc6808db1b3b6f0e96ef74  gcc/testsuite/g++.dg/template/pseudodtor4.C
  bb39ba4948ed54bad8f9e9fc8e3fbb26  gcc/testsuite/g++.dg/template/pseudodtor5.C
  3db5c6a0f3565dd475506157d06e140a  gcc/testsuite/g++.dg/template/pseudodtor6.C
+ 9569a07ea59ad051fd14466945310cca  gcc/testsuite/g++.dg/template/pseudodtor7.C
  30d2a35742944aa3c421d0b6d2b41781  gcc/testsuite/g++.dg/template/ptrmem1.C
  aa534276e0095c6eef1fe985651eee58  gcc/testsuite/g++.dg/template/ptrmem10.C
  2733fb0b367677a0d0e425dcfc181dd9  gcc/testsuite/g++.dg/template/ptrmem11.C
*************** a9f3ce4ee662be853b285ba58e2dfe52  gcc/te
*** 28842,28848 ****
  80100adb7d1a8e87190128c3325860b9  gcc/testsuite/g++.dg/template/shadow3.C
  429c749d4a969d6e6782e2108d66cc72  gcc/testsuite/g++.dg/template/shift1.C
  5664cd51517905bbc52f63fe0838b133  gcc/testsuite/g++.dg/template/show-template-tree-2.C
! d9dae838c40af5175f21e20ff53de34e  gcc/testsuite/g++.dg/template/show-template-tree-3.C
  d877f1c36160b725fc3f9f90ef621cf5  gcc/testsuite/g++.dg/template/show-template-tree-4.C
  867d87de9574acb1f1fc4a93cc164842  gcc/testsuite/g++.dg/template/show-template-tree-no-elide-type.C
  5e99130628ae881b7184e2f80c2a042f  gcc/testsuite/g++.dg/template/show-template-tree.C
--- 30860,30866 ----
  80100adb7d1a8e87190128c3325860b9  gcc/testsuite/g++.dg/template/shadow3.C
  429c749d4a969d6e6782e2108d66cc72  gcc/testsuite/g++.dg/template/shift1.C
  5664cd51517905bbc52f63fe0838b133  gcc/testsuite/g++.dg/template/show-template-tree-2.C
! e5026baabc81a7cca3a32f3750945c18  gcc/testsuite/g++.dg/template/show-template-tree-3.C
  d877f1c36160b725fc3f9f90ef621cf5  gcc/testsuite/g++.dg/template/show-template-tree-4.C
  867d87de9574acb1f1fc4a93cc164842  gcc/testsuite/g++.dg/template/show-template-tree-no-elide-type.C
  5e99130628ae881b7184e2f80c2a042f  gcc/testsuite/g++.dg/template/show-template-tree.C
*************** fba856a61db5644cba94060c62cec29f  gcc/te
*** 28902,28907 ****
--- 30920,30927 ----
  2a1077a58e27e49e8f92e9122c330685  gcc/testsuite/g++.dg/template/spec4.C
  db248bf3385995858dfa9699c65edbc1  gcc/testsuite/g++.dg/template/spec40.C
  da5f0a5054c4116cf98816d81b2705a5  gcc/testsuite/g++.dg/template/spec41.C
+ 3096b5adcfef5c5512433cf9fefc11d0  gcc/testsuite/g++.dg/template/spec42.C
+ 2bf86b8fede59fb746a1c0276acc0933  gcc/testsuite/g++.dg/template/spec43.C
  ac4700345bbf0d5aafda66965305864b  gcc/testsuite/g++.dg/template/spec5.C
  2fc2335d45186d3c105fae00aac3b8b3  gcc/testsuite/g++.dg/template/spec6.C
  b5c9ce57ec18ecb1da9249a4839466d0  gcc/testsuite/g++.dg/template/spec7.C
*************** bae55093a55e080f11929eea52536a38  gcc/te
*** 28931,28937 ****
  3f4fc4769c54c1f623ff36f774008e54  gcc/testsuite/g++.dg/template/static28.C
  e9b1989c04a7b26eeb97573f87c42c52  gcc/testsuite/g++.dg/template/static29.C
  7df73f11db0cd12460178945538e192f  gcc/testsuite/g++.dg/template/static3.C
! 0f679908d97cd1314de7de48e6a366cf  gcc/testsuite/g++.dg/template/static30.C
  0a00544e785dd73fd42954ca54bb51e0  gcc/testsuite/g++.dg/template/static31.C
  ddaf68e1fab11516ec3373cfa6be7fd8  gcc/testsuite/g++.dg/template/static32.C
  be10cab7b5da25690bdabe2a885d3ae2  gcc/testsuite/g++.dg/template/static33.C
--- 30951,30957 ----
  3f4fc4769c54c1f623ff36f774008e54  gcc/testsuite/g++.dg/template/static28.C
  e9b1989c04a7b26eeb97573f87c42c52  gcc/testsuite/g++.dg/template/static29.C
  7df73f11db0cd12460178945538e192f  gcc/testsuite/g++.dg/template/static3.C
! 41141ddee19466096bbd077dae614500  gcc/testsuite/g++.dg/template/static30.C
  0a00544e785dd73fd42954ca54bb51e0  gcc/testsuite/g++.dg/template/static31.C
  ddaf68e1fab11516ec3373cfa6be7fd8  gcc/testsuite/g++.dg/template/static32.C
  be10cab7b5da25690bdabe2a885d3ae2  gcc/testsuite/g++.dg/template/static33.C
*************** ca96406a9cd1404a4e23708265f75dad  gcc/te
*** 29004,29009 ****
--- 31024,31030 ----
  307ac70d42ff48737c71c93fbc066685  gcc/testsuite/g++.dg/template/ttp41.C
  3ea490dfdd044ad1cf48f323172947cf  gcc/testsuite/g++.dg/template/ttp42.C
  c5aea4afefdc8bcc616b22f367a4518f  gcc/testsuite/g++.dg/template/ttp43.C
+ b18d75f47d65f902ecd8c50d41d56abe  gcc/testsuite/g++.dg/template/ttp44.C
  786176b167efb2fb05f5876afccf4ea7  gcc/testsuite/g++.dg/template/ttp5.C
  ede8e95c1aeeeb0cf1c4cfb0fd860e07  gcc/testsuite/g++.dg/template/ttp6.C
  a523aab467e9f1ab808cb852a6429393  gcc/testsuite/g++.dg/template/ttp7.C
*************** a991f3b843fb36ef428fd3261f7cd8d6  gcc/te
*** 29085,29090 ****
--- 31106,31112 ----
  450c0b9e346d4201c85d9055f20ebf1a  gcc/testsuite/g++.dg/template/unify1.C
  c0294c255af8599c061bc4b5b4fc75ca  gcc/testsuite/g++.dg/template/unify10.C
  09af30adee47658569e7245f1283085e  gcc/testsuite/g++.dg/template/unify11.C
+ 6484985420755de208356ab2d23add2d  gcc/testsuite/g++.dg/template/unify12.C
  4559d27962ac65b887c6f4a3a42dc70f  gcc/testsuite/g++.dg/template/unify2.C
  16808e8b62429d390bc5719fd2009b5c  gcc/testsuite/g++.dg/template/unify3.C
  314446f36deb8f9d24cf095763c83315  gcc/testsuite/g++.dg/template/unify4.C
*************** a356fc4e8d85f399c730f255f0823551  gcc/te
*** 29092,29098 ****
  4f7c0b92332817c8e7965630e3a101f5  gcc/testsuite/g++.dg/template/unify6.C
  0bf2ccb908b646b5845b2419e28d80c8  gcc/testsuite/g++.dg/template/unify7.C
  d04f9d4f8d36c0325245fb8a7df506ad  gcc/testsuite/g++.dg/template/unify8.C
! 9b08ce427529a05bbb60c897ef470094  gcc/testsuite/g++.dg/template/unify9.C
  b60b7ba97d84900a03ad818e8de4f60d  gcc/testsuite/g++.dg/template/union1.C
  c2e897b56a387a0b82db1f4b163a868c  gcc/testsuite/g++.dg/template/union2.C
  36bc33b0a7d4f4c6efc1f83c1b6bf13b  gcc/testsuite/g++.dg/template/using1.C
--- 31114,31120 ----
  4f7c0b92332817c8e7965630e3a101f5  gcc/testsuite/g++.dg/template/unify6.C
  0bf2ccb908b646b5845b2419e28d80c8  gcc/testsuite/g++.dg/template/unify7.C
  d04f9d4f8d36c0325245fb8a7df506ad  gcc/testsuite/g++.dg/template/unify8.C
! d2d96fe3e4ffae0fa0b444a94eca2390  gcc/testsuite/g++.dg/template/unify9.C
  b60b7ba97d84900a03ad818e8de4f60d  gcc/testsuite/g++.dg/template/union1.C
  c2e897b56a387a0b82db1f4b163a868c  gcc/testsuite/g++.dg/template/union2.C
  36bc33b0a7d4f4c6efc1f83c1b6bf13b  gcc/testsuite/g++.dg/template/using1.C
*************** e7c05aafe76cbbce1b0b4f8e3a864522  gcc/te
*** 29134,29140 ****
  e8e64daa7b3951eb853a386477a44c63  gcc/testsuite/g++.dg/template/virtual4.C
  2a442923796333395eb52b82acbe22e1  gcc/testsuite/g++.dg/template/virtual5.C
  45c16592a226e36762e5e87feec97055  gcc/testsuite/g++.dg/template/vla1.C
! 2379342eeb740123159168a074641754  gcc/testsuite/g++.dg/template/vla2.C
  23655735fa447bdfd2100e025e21ee03  gcc/testsuite/g++.dg/template/void1.C
  b98f8ca68199027ec91aea21199d5807  gcc/testsuite/g++.dg/template/void10.C
  334f2b6dd7bbf1694010e0f30e5058f9  gcc/testsuite/g++.dg/template/void11.C
--- 31156,31162 ----
  e8e64daa7b3951eb853a386477a44c63  gcc/testsuite/g++.dg/template/virtual4.C
  2a442923796333395eb52b82acbe22e1  gcc/testsuite/g++.dg/template/virtual5.C
  45c16592a226e36762e5e87feec97055  gcc/testsuite/g++.dg/template/vla1.C
! 90a46ed40bed54c5195c9fe7b289492d  gcc/testsuite/g++.dg/template/vla2.C
  23655735fa447bdfd2100e025e21ee03  gcc/testsuite/g++.dg/template/void1.C
  b98f8ca68199027ec91aea21199d5807  gcc/testsuite/g++.dg/template/void10.C
  334f2b6dd7bbf1694010e0f30e5058f9  gcc/testsuite/g++.dg/template/void11.C
*************** cf26e329259baed2e3c2675d10b71343  gcc/te
*** 29220,29226 ****
  3aecfa587091ae9e3524d10e3013ccf0  gcc/testsuite/g++.dg/tls/thread_local7g.C
  9399e18da7889fb7fc5333e641e339e4  gcc/testsuite/g++.dg/tls/thread_local8.C
  46eb3382c1226c7ec68020221453058a  gcc/testsuite/g++.dg/tls/thread_local9.C
! ad2b1c068368202e2bbfc4003482360a  gcc/testsuite/g++.dg/tls/tls.exp
  86479ffee518e8ec862d5e9dcaa9866f  gcc/testsuite/g++.dg/tls/tls_model1.C
  7212556766805451a098e554a8ab648e  gcc/testsuite/g++.dg/tls/trivial.C
  debf53c602437e43da099fa943834a84  gcc/testsuite/g++.dg/tm/20100429.C
--- 31242,31248 ----
  3aecfa587091ae9e3524d10e3013ccf0  gcc/testsuite/g++.dg/tls/thread_local7g.C
  9399e18da7889fb7fc5333e641e339e4  gcc/testsuite/g++.dg/tls/thread_local8.C
  46eb3382c1226c7ec68020221453058a  gcc/testsuite/g++.dg/tls/thread_local9.C
! c9b244aef669a4b7cdc34ac98a06843c  gcc/testsuite/g++.dg/tls/tls.exp
  86479ffee518e8ec862d5e9dcaa9866f  gcc/testsuite/g++.dg/tls/tls_model1.C
  7212556766805451a098e554a8ab648e  gcc/testsuite/g++.dg/tls/trivial.C
  debf53c602437e43da099fa943834a84  gcc/testsuite/g++.dg/tm/20100429.C
*************** b4d9d66549182e06b5e9ff2861010156  gcc/te
*** 29237,29243 ****
  e7ac1fbc7bbdfa0754921c8933a12002  gcc/testsuite/g++.dg/tm/dynamic2.C
  1caf5063be1ab535e40aefa7b9cd867d  gcc/testsuite/g++.dg/tm/fatomic-1.C
  d3c5e44e88d7c6db3c096fd6f7ee700f  gcc/testsuite/g++.dg/tm/inherit1.C
! 00b2c3ab16f7f24d4ef90cb327b8c62c  gcc/testsuite/g++.dg/tm/inherit2.C
  f998f0f5c7644d7092979cb106ddd9c0  gcc/testsuite/g++.dg/tm/jump1.C
  ec88f0f4e35e3f0f1a00afeb7ac5fdf4  gcc/testsuite/g++.dg/tm/keyword1.C
  1b6440e012a31a0930bec047419e1189  gcc/testsuite/g++.dg/tm/lambda1.C
--- 31259,31265 ----
  e7ac1fbc7bbdfa0754921c8933a12002  gcc/testsuite/g++.dg/tm/dynamic2.C
  1caf5063be1ab535e40aefa7b9cd867d  gcc/testsuite/g++.dg/tm/fatomic-1.C
  d3c5e44e88d7c6db3c096fd6f7ee700f  gcc/testsuite/g++.dg/tm/inherit1.C
! 3896405094eb73c38271cfa6e52a32a9  gcc/testsuite/g++.dg/tm/inherit2.C
  f998f0f5c7644d7092979cb106ddd9c0  gcc/testsuite/g++.dg/tm/jump1.C
  ec88f0f4e35e3f0f1a00afeb7ac5fdf4  gcc/testsuite/g++.dg/tm/keyword1.C
  1b6440e012a31a0930bec047419e1189  gcc/testsuite/g++.dg/tm/lambda1.C
*************** ab1fc8e002302cf3993d553b5114313e  gcc/te
*** 29262,29268 ****
  4b37e2fdb701495ef95a9c34c6bdb6dc  gcc/testsuite/g++.dg/tm/pr45940-4.C
  8a918c273faad4dc77bb42e983cbdb84  gcc/testsuite/g++.dg/tm/pr45940.C
  9d73dbf45829a3887d224a610714fe31  gcc/testsuite/g++.dg/tm/pr46269.C
! 54a13919282f59216cf9daa0d9673f43  gcc/testsuite/g++.dg/tm/pr46270.C
  4b6db556a8e3d45e2e01c92800fdd59c  gcc/testsuite/g++.dg/tm/pr46300.C
  70fe4817ba2f24556c641274822a4472  gcc/testsuite/g++.dg/tm/pr46567.C
  bb3dfa1492a9ed1f8ea1e71e74649e1d  gcc/testsuite/g++.dg/tm/pr46646.C
--- 31284,31290 ----
  4b37e2fdb701495ef95a9c34c6bdb6dc  gcc/testsuite/g++.dg/tm/pr45940-4.C
  8a918c273faad4dc77bb42e983cbdb84  gcc/testsuite/g++.dg/tm/pr45940.C
  9d73dbf45829a3887d224a610714fe31  gcc/testsuite/g++.dg/tm/pr46269.C
! 65ed5ca24f4c5e2a6e210c16d45c76c8  gcc/testsuite/g++.dg/tm/pr46270.C
  4b6db556a8e3d45e2e01c92800fdd59c  gcc/testsuite/g++.dg/tm/pr46300.C
  70fe4817ba2f24556c641274822a4472  gcc/testsuite/g++.dg/tm/pr46567.C
  bb3dfa1492a9ed1f8ea1e71e74649e1d  gcc/testsuite/g++.dg/tm/pr46646.C
*************** b8417aa0335eeb4b3381d508ea7f5c38  gcc/te
*** 29300,29306 ****
  8ee54951fa048ab382ca2cdb618a0489  gcc/testsuite/g++.dg/tm/template-3.C
  90fa076ea202f452e01e1b4dcbe98e33  gcc/testsuite/g++.dg/tm/template-4.C
  0b77afa8d842f0a0b08d94321879afc3  gcc/testsuite/g++.dg/tm/template-5.C
! 5739366165e49d6586c6bd49c493321f  gcc/testsuite/g++.dg/tm/tm.exp
  74d340d87dae689e01101883f8aa0e51  gcc/testsuite/g++.dg/tm/unsafe1.C
  21a5d2c89779740daec0728828afc1e7  gcc/testsuite/g++.dg/tm/unsafe2.C
  6c44d3ee04abacf4b43b2418345ac8d3  gcc/testsuite/g++.dg/tm/vector-1.C
--- 31322,31328 ----
  8ee54951fa048ab382ca2cdb618a0489  gcc/testsuite/g++.dg/tm/template-3.C
  90fa076ea202f452e01e1b4dcbe98e33  gcc/testsuite/g++.dg/tm/template-4.C
  0b77afa8d842f0a0b08d94321879afc3  gcc/testsuite/g++.dg/tm/template-5.C
! 482514713e4794cff359265297b58fa6  gcc/testsuite/g++.dg/tm/tm.exp
  74d340d87dae689e01101883f8aa0e51  gcc/testsuite/g++.dg/tm/unsafe1.C
  21a5d2c89779740daec0728828afc1e7  gcc/testsuite/g++.dg/tm/unsafe2.C
  6c44d3ee04abacf4b43b2418345ac8d3  gcc/testsuite/g++.dg/tm/vector-1.C
*************** cba46ba0e799162dc4863891ff25ded3  gcc/te
*** 29317,29324 ****
  817906803d35f56621dc188401ae1c1b  gcc/testsuite/g++.dg/torture/20180705-1.C
  1fde243d05b2be503da4fa14df055b7e  gcc/testsuite/g++.dg/torture/20230313.C
  080ecc95e15ea3b4ed02e0e24c727d53  gcc/testsuite/g++.dg/torture/PR58294.C
! fcec9f16b462c0dbbbf999c903573c12  gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C
! e0639b0af892e171cf6f37f580a2f9fc  gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C
  a355b5babe57316222353d49f4f77705  gcc/testsuite/g++.dg/torture/aarch64-vect-init-1.C
  3f917b76ecc29754d6290571f9e5d95f  gcc/testsuite/g++.dg/torture/accessor-fixits-1.C
  569e15f12e6edb3871caa313c9b90918  gcc/testsuite/g++.dg/torture/accessor-fixits-2.C
--- 31339,31346 ----
  817906803d35f56621dc188401ae1c1b  gcc/testsuite/g++.dg/torture/20180705-1.C
  1fde243d05b2be503da4fa14df055b7e  gcc/testsuite/g++.dg/torture/20230313.C
  080ecc95e15ea3b4ed02e0e24c727d53  gcc/testsuite/g++.dg/torture/PR58294.C
! 0f1a7d45fa7ada640b2d82733db47185  gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C
! 067436a1e8811ff626bb4860e12f120f  gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C
  a355b5babe57316222353d49f4f77705  gcc/testsuite/g++.dg/torture/aarch64-vect-init-1.C
  3f917b76ecc29754d6290571f9e5d95f  gcc/testsuite/g++.dg/torture/accessor-fixits-1.C
  569e15f12e6edb3871caa313c9b90918  gcc/testsuite/g++.dg/torture/accessor-fixits-2.C
*************** e8df79dfae7c9da7b00835c990c545ce  gcc/te
*** 29330,29346 ****
  bbb4b68b2b55f3e5d143dfc3cb49196e  gcc/testsuite/g++.dg/torture/accessor-fixits-8.C
  82d01a451edd1bfe567e3b3dc077d586  gcc/testsuite/g++.dg/torture/accessor-fixits-9-xobj.C
  7748c98522dde244b68d92ecd7ac7b3e  gcc/testsuite/g++.dg/torture/accessor-fixits-9.C
! 1902630dcd0f17977840257dac9bf162  gcc/testsuite/g++.dg/torture/alias-1.C
! 00be4e22c0324902fc2682eb7eb97766  gcc/testsuite/g++.dg/torture/builtin-clear-padding-1.C
! 0d7497eea071865e0a522c601884bc48  gcc/testsuite/g++.dg/torture/builtin-clear-padding-2.C
! bea4ac8fffc99273818cdff738206eea  gcc/testsuite/g++.dg/torture/builtin-clear-padding-3.C
! a311bc7bf2311aa8855ffbd171dc6632  gcc/testsuite/g++.dg/torture/builtin-clear-padding-4.C
! 43e2079cc83a48891834b215ce568e6b  gcc/testsuite/g++.dg/torture/builtin-clear-padding-5.C
! 318bc94e0ad549681cfaba4d1ff517f8  gcc/testsuite/g++.dg/torture/builtin-location.C
  12bbc31ebdb5389852fb19dbc0efd9b4  gcc/testsuite/g++.dg/torture/covariant-1.C
  ce4f8106ed96ef070bead8ca0df02eea  gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
  4a0b418d1bbb783ee191f2d05263d191  gcc/testsuite/g++.dg/torture/dg-torture.exp
  2fcf42acf195dc5d57cc2374b8d8baa8  gcc/testsuite/g++.dg/torture/except-1.C
  b976c4507dfca27bee8399d9cc160c84  gcc/testsuite/g++.dg/torture/harden-cfr-noret-always-no-nothrow.C
  527760077ac41ebcd0be7848023c2c8b  gcc/testsuite/g++.dg/torture/harden-cfr-noret-never-no-nothrow.C
  fd4de6289746348d64723eedebf1865f  gcc/testsuite/g++.dg/torture/harden-cfr-noret-no-nothrow.C
--- 31352,31369 ----
  bbb4b68b2b55f3e5d143dfc3cb49196e  gcc/testsuite/g++.dg/torture/accessor-fixits-8.C
  82d01a451edd1bfe567e3b3dc077d586  gcc/testsuite/g++.dg/torture/accessor-fixits-9-xobj.C
  7748c98522dde244b68d92ecd7ac7b3e  gcc/testsuite/g++.dg/torture/accessor-fixits-9.C
! 981d088ff0d75aec891b09dde0542e07  gcc/testsuite/g++.dg/torture/alias-1.C
! 541a2d967f7aa75abe81da4a3fcb3dd4  gcc/testsuite/g++.dg/torture/builtin-clear-padding-1.C
! 73978f51d52fcd294cb7f0ba636df03b  gcc/testsuite/g++.dg/torture/builtin-clear-padding-2.C
! 3bc33d2de76e206b59872a4845623dd9  gcc/testsuite/g++.dg/torture/builtin-clear-padding-3.C
! 97ef4f6f25849f38d5acde0c73dafd1f  gcc/testsuite/g++.dg/torture/builtin-clear-padding-4.C
! 1c599d4e9b7b870f42dcad1b710627ad  gcc/testsuite/g++.dg/torture/builtin-clear-padding-5.C
! 4400de5dd1af7d389d53a0ca1efbd198  gcc/testsuite/g++.dg/torture/builtin-location.C
  12bbc31ebdb5389852fb19dbc0efd9b4  gcc/testsuite/g++.dg/torture/covariant-1.C
  ce4f8106ed96ef070bead8ca0df02eea  gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
  4a0b418d1bbb783ee191f2d05263d191  gcc/testsuite/g++.dg/torture/dg-torture.exp
  2fcf42acf195dc5d57cc2374b8d8baa8  gcc/testsuite/g++.dg/torture/except-1.C
+ 3a95b4fcbc68ee5191f15c2049ea9f7f  gcc/testsuite/g++.dg/torture/except-2.C
  b976c4507dfca27bee8399d9cc160c84  gcc/testsuite/g++.dg/torture/harden-cfr-noret-always-no-nothrow.C
  527760077ac41ebcd0be7848023c2c8b  gcc/testsuite/g++.dg/torture/harden-cfr-noret-never-no-nothrow.C
  fd4de6289746348d64723eedebf1865f  gcc/testsuite/g++.dg/torture/harden-cfr-noret-no-nothrow.C
*************** fd4de6289746348d64723eedebf1865f  gcc/te
*** 29352,29360 ****
  b931a980765738dfeb91c55227e1c3c3  gcc/testsuite/g++.dg/torture/harden-cfr-throw-nothrow.C
  864d2835b713e812d3b523e5b6450d3f  gcc/testsuite/g++.dg/torture/harden-cfr-throw-returning.C
  3918aacd3a95dd4542067c2ec7a91dbc  gcc/testsuite/g++.dg/torture/harden-cfr-throw.C
! 4f516f4df9cf606d1d874b3d79b8ea00  gcc/testsuite/g++.dg/torture/harden-comp-pr111520.cc
  fab1470d87fc879a4a285622c057b736  gcc/testsuite/g++.dg/torture/init-list1.C
  4054dd6c177ca7971902e3ac60e34695  gcc/testsuite/g++.dg/torture/ipa-cp-1.C
  f7837cd1e7b0fe610ef272ba2fc3896b  gcc/testsuite/g++.dg/torture/phi-1.C
  dd60ebe4e09cf5edd91dd360bcbcba8e  gcc/testsuite/g++.dg/torture/ppc-ldst-array.C
  3a32f1508211597859da662863730a83  gcc/testsuite/g++.dg/torture/pr100303.C
--- 31375,31384 ----
  b931a980765738dfeb91c55227e1c3c3  gcc/testsuite/g++.dg/torture/harden-cfr-throw-nothrow.C
  864d2835b713e812d3b523e5b6450d3f  gcc/testsuite/g++.dg/torture/harden-cfr-throw-returning.C
  3918aacd3a95dd4542067c2ec7a91dbc  gcc/testsuite/g++.dg/torture/harden-cfr-throw.C
! 4f516f4df9cf606d1d874b3d79b8ea00  gcc/testsuite/g++.dg/torture/harden-comp-pr111520.C
  fab1470d87fc879a4a285622c057b736  gcc/testsuite/g++.dg/torture/init-list1.C
  4054dd6c177ca7971902e3ac60e34695  gcc/testsuite/g++.dg/torture/ipa-cp-1.C
+ bd0969231961b642349fe4e7a69ad17b  gcc/testsuite/g++.dg/torture/musttail1.C
  f7837cd1e7b0fe610ef272ba2fc3896b  gcc/testsuite/g++.dg/torture/phi-1.C
  dd60ebe4e09cf5edd91dd360bcbcba8e  gcc/testsuite/g++.dg/torture/ppc-ldst-array.C
  3a32f1508211597859da662863730a83  gcc/testsuite/g++.dg/torture/pr100303.C
*************** bcfa60433b43854760763807c6d1e968  gcc/te
*** 29362,29368 ****
  b80fd1ce24b9c442efd24bda5db1ee9e  gcc/testsuite/g++.dg/torture/pr100925.C
  463e24c083efbd763eb3e56fc9eaa555  gcc/testsuite/g++.dg/torture/pr101256.C
  cc991354162e81cb56e6ccfbbe5bef30  gcc/testsuite/g++.dg/torture/pr101373.C
! ae9c2124c5383beeccdcf4ac2d3bcbd0  gcc/testsuite/g++.dg/torture/pr10148.C
  6817e09401c09e0c069effadf7724cdb  gcc/testsuite/g++.dg/torture/pr102142.C
  3fd9794b761154c19e5b03ca7b0727a1  gcc/testsuite/g++.dg/torture/pr102505.C
  5b67d5f4102db3f2190bc079135ed8cb  gcc/testsuite/g++.dg/torture/pr102581.C
--- 31386,31392 ----
  b80fd1ce24b9c442efd24bda5db1ee9e  gcc/testsuite/g++.dg/torture/pr100925.C
  463e24c083efbd763eb3e56fc9eaa555  gcc/testsuite/g++.dg/torture/pr101256.C
  cc991354162e81cb56e6ccfbbe5bef30  gcc/testsuite/g++.dg/torture/pr101373.C
! 263ee6681a67921ea3e782d57f286584  gcc/testsuite/g++.dg/torture/pr10148.C
  6817e09401c09e0c069effadf7724cdb  gcc/testsuite/g++.dg/torture/pr102142.C
  3fd9794b761154c19e5b03ca7b0727a1  gcc/testsuite/g++.dg/torture/pr102505.C
  5b67d5f4102db3f2190bc079135ed8cb  gcc/testsuite/g++.dg/torture/pr102581.C
*************** ae9c2124c5383beeccdcf4ac2d3bcbd0  gcc/te
*** 29371,29385 ****
  f5a9c12e412c8a93a448f288800780b5  gcc/testsuite/g++.dg/torture/pr103266.C
  085ab0f1d4d5f66a379f44a3891724c4  gcc/testsuite/g++.dg/torture/pr103351.C
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
! 98b99f62694b7e1a1f93baf61144a7e7  gcc/testsuite/g++.dg/torture/pr103669.C
  e4fcffb0dc348c47faab30b8fa077a54  gcc/testsuite/g++.dg/torture/pr104450.C
! 42d264636feb96af52706ba33ad11a00  gcc/testsuite/g++.dg/torture/pr104601.C
  ccefc659a7c47911812c4aa74e717a3c  gcc/testsuite/g++.dg/torture/pr104679.C
  e0f2cfb1a1f922a19280efa88e1e5f1c  gcc/testsuite/g++.dg/torture/pr105142.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
  2f5be7c92fa23dea959ab17d5b766c87  gcc/testsuite/g++.dg/torture/pr105577.C
  42b175a7c38d6a15012b0e11d9e7457d  gcc/testsuite/g++.dg/torture/pr106131.C
! 1228ad580702a357697ae9eabad4f2be  gcc/testsuite/g++.dg/torture/pr106922.C
  969b42bbb4cb9492e8474f8e7a941812  gcc/testsuite/g++.dg/torture/pr107029.C
  fa23934e49741783f674026ff5030aff  gcc/testsuite/g++.dg/torture/pr108166.C
  60b41cff18886e9134d2385735087ca2  gcc/testsuite/g++.dg/torture/pr108647.C
--- 31395,31410 ----
  f5a9c12e412c8a93a448f288800780b5  gcc/testsuite/g++.dg/torture/pr103266.C
  085ab0f1d4d5f66a379f44a3891724c4  gcc/testsuite/g++.dg/torture/pr103351.C
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
! 52c0296d98c00f66a7e3332c409aed93  gcc/testsuite/g++.dg/torture/pr103669.C
  e4fcffb0dc348c47faab30b8fa077a54  gcc/testsuite/g++.dg/torture/pr104450.C
! 8e292f9457508092d94b95c112368df9  gcc/testsuite/g++.dg/torture/pr104601.C
  ccefc659a7c47911812c4aa74e717a3c  gcc/testsuite/g++.dg/torture/pr104679.C
  e0f2cfb1a1f922a19280efa88e1e5f1c  gcc/testsuite/g++.dg/torture/pr105142.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
  2f5be7c92fa23dea959ab17d5b766c87  gcc/testsuite/g++.dg/torture/pr105577.C
+ e104405906378279d06ac0141c114191  gcc/testsuite/g++.dg/torture/pr105769-1.C
  42b175a7c38d6a15012b0e11d9e7457d  gcc/testsuite/g++.dg/torture/pr106131.C
! 606eb4fbdb11ed8e8de47cb3c7218dff  gcc/testsuite/g++.dg/torture/pr106922.C
  969b42bbb4cb9492e8474f8e7a941812  gcc/testsuite/g++.dg/torture/pr107029.C
  fa23934e49741783f674026ff5030aff  gcc/testsuite/g++.dg/torture/pr108166.C
  60b41cff18886e9134d2385735087ca2  gcc/testsuite/g++.dg/torture/pr108647.C
*************** e8eff4c0ef885b002db007e536bb99f2  gcc/te
*** 29391,29401 ****
  c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/testsuite/g++.dg/torture/pr110308.C
  7237bc51ae9e8262024927b5dc5fe13f  gcc/testsuite/g++.dg/torture/pr110332.C
  5a55d60594e2810570c6ea414b1f54fd  gcc/testsuite/g++.dg/torture/pr110742.C
! 4b7c75dc51b97d5dc81c7e936ff3b460  gcc/testsuite/g++.dg/torture/pr111019.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
--- 31416,31448 ----
  c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/testsuite/g++.dg/torture/pr110308.C
  7237bc51ae9e8262024927b5dc5fe13f  gcc/testsuite/g++.dg/torture/pr110332.C
  5a55d60594e2810570c6ea414b1f54fd  gcc/testsuite/g++.dg/torture/pr110742.C
! 80a0034de7ce4f114ada91702d67b3c7  gcc/testsuite/g++.dg/torture/pr111019.C
! 6766aa21b009a63d71d22aa6baba228d  gcc/testsuite/g++.dg/torture/pr111245.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
+ c9d2586b0e3709f19a931052b6c72363  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
+ f6eeba4d9d64b6d90ec9cc9a6571f0f9  gcc/testsuite/g++.dg/torture/pr115785.C
+ ef236de4cb2953e4ae9611ca82a811cd  gcc/testsuite/g++.dg/torture/pr115916.C
+ 696b18cb2751957122c0655625ba8e7a  gcc/testsuite/g++.dg/torture/pr115961-run-1.C
+ 37159e5713686265e83cfd5cfb251a57  gcc/testsuite/g++.dg/torture/pr116098-1.C
+ 8a5551a839a0c7832584191b3f99dc68  gcc/testsuite/g++.dg/torture/pr116120-1.C
+ fa3eb49d141be82f24a5e8e56a15924e  gcc/testsuite/g++.dg/torture/pr116120-2.C
+ 27830acd09936c62cc82cadee63f07f4  gcc/testsuite/g++.dg/torture/pr116179-1.C
+ fd07ffe5c1e039cfac5f0e7fcc3190eb  gcc/testsuite/g++.dg/torture/pr116460.C
+ 9e718d66b3d12dbf53df81ed7a04ddbb  gcc/testsuite/g++.dg/torture/pr116783.C
+ e8b09238e87e73505d31392aeef0e4b5  gcc/testsuite/g++.dg/torture/pr116814-1.C
+ 786d0a5ec87e00507e8d07cca9bb139c  gcc/testsuite/g++.dg/torture/pr116842.C
+ 1e0447a2dc08b798ed33be384cdea31a  gcc/testsuite/g++.dg/torture/pr116902.C
+ f052d3af1586cf42bf5ec8d92e1621ac  gcc/testsuite/g++.dg/torture/pr116927-1.C
+ 17ed764fa5d3f0ee6d17ed54d9664c47  gcc/testsuite/g++.dg/torture/pr117341-1.C
+ 372a5372bc2611240b35fde2512f27e9  gcc/testsuite/g++.dg/torture/pr118320.C
+ ae883844cdffe266994223192fd8cd35  gcc/testsuite/g++.dg/torture/pr118521.C
+ 2bffdcc852269ef39931c90697749c65  gcc/testsuite/g++.dg/torture/pr118795.C
+ 63536614f7fbde6017f097b11aa3e6d9  gcc/testsuite/g++.dg/torture/pr118973.C
+ f298eddbaaad3dfdc15f6cf9683ff08a  gcc/testsuite/g++.dg/torture/pr11911.C
+ 9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
*************** e9780c172c681062c7a2b35fc6317156  gcc/te
*** 29408,29423 ****
  61a41127865c15f172eb94912777d1f6  gcc/testsuite/g++.dg/torture/pr32950.C
  8514fb7c00c97a04578fd24b093b0617  gcc/testsuite/g++.dg/torture/pr33134.C
  ac8b5a65cdb69dd227a5608cb6c4edff  gcc/testsuite/g++.dg/torture/pr33340.C
! 1ff9a441e72af794c225a9c8a66c5a14  gcc/testsuite/g++.dg/torture/pr33572.C
  2398667e5078f8e7f3b3ca7e16893791  gcc/testsuite/g++.dg/torture/pr33589-1.C
  49a9ebbf21acce6fcc392bc19ee94d44  gcc/testsuite/g++.dg/torture/pr33589-2.C
  dbaf8ecef268838e14bab15f88365290  gcc/testsuite/g++.dg/torture/pr33627.C
! a5cfb04004f59a611e1b6efa6796b3ca  gcc/testsuite/g++.dg/torture/pr33735.C
  efb566f0ac18dfe0860d475880f8bae3  gcc/testsuite/g++.dg/torture/pr33819.C
  d3c8ab54a210cf43bc90436168df7276  gcc/testsuite/g++.dg/torture/pr33887-1.C
  ac9b9ea255f72e7339eeaf103a832da5  gcc/testsuite/g++.dg/torture/pr33887-2.C
  537dd6ad14d9bd3e4fe18b40c792c0fa  gcc/testsuite/g++.dg/torture/pr33887-3.C
! 746d247dbba7ad5322d6f842b465f70e  gcc/testsuite/g++.dg/torture/pr34099.C
  14c55feaed358b412b860a9e9092a6a0  gcc/testsuite/g++.dg/torture/pr34222.C
  a236f1d6b976dcdc6d96e37d197d8bba  gcc/testsuite/g++.dg/torture/pr34235.C
  4d3937e73b843fa062f46a8e5db013c3  gcc/testsuite/g++.dg/torture/pr34241.C
--- 31455,31470 ----
  61a41127865c15f172eb94912777d1f6  gcc/testsuite/g++.dg/torture/pr32950.C
  8514fb7c00c97a04578fd24b093b0617  gcc/testsuite/g++.dg/torture/pr33134.C
  ac8b5a65cdb69dd227a5608cb6c4edff  gcc/testsuite/g++.dg/torture/pr33340.C
! c947bad9a25748291d6eddfb887b9b39  gcc/testsuite/g++.dg/torture/pr33572.C
  2398667e5078f8e7f3b3ca7e16893791  gcc/testsuite/g++.dg/torture/pr33589-1.C
  49a9ebbf21acce6fcc392bc19ee94d44  gcc/testsuite/g++.dg/torture/pr33589-2.C
  dbaf8ecef268838e14bab15f88365290  gcc/testsuite/g++.dg/torture/pr33627.C
! 7c0a6e499a5b9cba04e569f48ed84cef  gcc/testsuite/g++.dg/torture/pr33735.C
  efb566f0ac18dfe0860d475880f8bae3  gcc/testsuite/g++.dg/torture/pr33819.C
  d3c8ab54a210cf43bc90436168df7276  gcc/testsuite/g++.dg/torture/pr33887-1.C
  ac9b9ea255f72e7339eeaf103a832da5  gcc/testsuite/g++.dg/torture/pr33887-2.C
  537dd6ad14d9bd3e4fe18b40c792c0fa  gcc/testsuite/g++.dg/torture/pr33887-3.C
! 31421b307f70ff19c0fc30760ab607a2  gcc/testsuite/g++.dg/torture/pr34099.C
  14c55feaed358b412b860a9e9092a6a0  gcc/testsuite/g++.dg/torture/pr34222.C
  a236f1d6b976dcdc6d96e37d197d8bba  gcc/testsuite/g++.dg/torture/pr34235.C
  4d3937e73b843fa062f46a8e5db013c3  gcc/testsuite/g++.dg/torture/pr34241.C
*************** b40a32ddc241492f6a395ad16cd948ee  gcc/te
*** 29453,29459 ****
  1d870df7afc3c1bee9a83985d78555da  gcc/testsuite/g++.dg/torture/pr39002.C
  f9460d2eec98500885b88a6a391adc63  gcc/testsuite/g++.dg/torture/pr39259.C
  b23e406253f16e513278f5f78c136f2d  gcc/testsuite/g++.dg/torture/pr39362.C
! 232e15df51e39649346853a5c935ff90  gcc/testsuite/g++.dg/torture/pr39417.C
  505f48097bb932b0861f32000e2c985b  gcc/testsuite/g++.dg/torture/pr39678.C
  d85efea6bf5e227cbfe01031a191490d  gcc/testsuite/g++.dg/torture/pr39713.C
  2c3695433a8680532f4cb19853a6f738  gcc/testsuite/g++.dg/torture/pr39732.C
--- 31500,31506 ----
  1d870df7afc3c1bee9a83985d78555da  gcc/testsuite/g++.dg/torture/pr39002.C
  f9460d2eec98500885b88a6a391adc63  gcc/testsuite/g++.dg/torture/pr39259.C
  b23e406253f16e513278f5f78c136f2d  gcc/testsuite/g++.dg/torture/pr39362.C
! 3ac52350b40584cfa43b52ab86438d29  gcc/testsuite/g++.dg/torture/pr39417.C
  505f48097bb932b0861f32000e2c985b  gcc/testsuite/g++.dg/torture/pr39678.C
  d85efea6bf5e227cbfe01031a191490d  gcc/testsuite/g++.dg/torture/pr39713.C
  2c3695433a8680532f4cb19853a6f738  gcc/testsuite/g++.dg/torture/pr39732.C
*************** b40bbd38e5725b10a9230bce491b9b0c  gcc/te
*** 29513,29519 ****
  e5466946d96ec5f4b66f422d588cbd27  gcc/testsuite/g++.dg/torture/pr44826.C
  80fcfe9886663365f369187444388b20  gcc/testsuite/g++.dg/torture/pr44900.C
  dc744dc373dfd8c3c33963f78a643762  gcc/testsuite/g++.dg/torture/pr44915.C
! 9fdafaff42cd2c762720eba07a457ce9  gcc/testsuite/g++.dg/torture/pr44972.C
  f330bdf5883a6d3381a5cd9e818fa037  gcc/testsuite/g++.dg/torture/pr45393.C
  79b3c30791ea89fbaab5c00801b2c126  gcc/testsuite/g++.dg/torture/pr45580.C
  8522ec70c8ce30caf355cc42899c3552  gcc/testsuite/g++.dg/torture/pr45699.C
--- 31560,31566 ----
  e5466946d96ec5f4b66f422d588cbd27  gcc/testsuite/g++.dg/torture/pr44826.C
  80fcfe9886663365f369187444388b20  gcc/testsuite/g++.dg/torture/pr44900.C
  dc744dc373dfd8c3c33963f78a643762  gcc/testsuite/g++.dg/torture/pr44915.C
! 25a325fcda3a85df1039be2ba58e5637  gcc/testsuite/g++.dg/torture/pr44972.C
  f330bdf5883a6d3381a5cd9e818fa037  gcc/testsuite/g++.dg/torture/pr45393.C
  79b3c30791ea89fbaab5c00801b2c126  gcc/testsuite/g++.dg/torture/pr45580.C
  8522ec70c8ce30caf355cc42899c3552  gcc/testsuite/g++.dg/torture/pr45699.C
*************** ddc7d43b0451e3b3394574ac366e5622  gcc/te
*** 29529,29540 ****
  02d684eb83ab100608e69960f657a0e0  gcc/testsuite/g++.dg/torture/pr46149.C
  5291edcd81854b99025f2cc89d71cd8d  gcc/testsuite/g++.dg/torture/pr46154.C
  53103bc6b95cbce9b824c821ba63074f  gcc/testsuite/g++.dg/torture/pr46287.C
! 641b97c1e34594ce5d7fa2536628ddf0  gcc/testsuite/g++.dg/torture/pr46364.C
  e798c66b9b0abf667d1ffe31c31394e5  gcc/testsuite/g++.dg/torture/pr46367.C
  9a5575ce7a07d7deb12c30aa2cd009f0  gcc/testsuite/g++.dg/torture/pr46383.C
  bb9d7276700bae19865678a9e9faff24  gcc/testsuite/g++.dg/torture/pr46469.C
  5dde3d0578e1439d9d3996d53c5837d5  gcc/testsuite/g++.dg/torture/pr47290.C
  d7405396eb2a53d9ca62c35764221977  gcc/testsuite/g++.dg/torture/pr47313.C
  c2620174c12bbff392c51fb1170c0929  gcc/testsuite/g++.dg/torture/pr47382.C
  2875f29910a1c9fceb2c3abacae94988  gcc/testsuite/g++.dg/torture/pr47541.C
  76848843bf5ed9a6d83a170499d76c64  gcc/testsuite/g++.dg/torture/pr47559.C
--- 31576,31588 ----
  02d684eb83ab100608e69960f657a0e0  gcc/testsuite/g++.dg/torture/pr46149.C
  5291edcd81854b99025f2cc89d71cd8d  gcc/testsuite/g++.dg/torture/pr46154.C
  53103bc6b95cbce9b824c821ba63074f  gcc/testsuite/g++.dg/torture/pr46287.C
! eca24d7627697b5f5c7671ac8c57174e  gcc/testsuite/g++.dg/torture/pr46364.C
  e798c66b9b0abf667d1ffe31c31394e5  gcc/testsuite/g++.dg/torture/pr46367.C
  9a5575ce7a07d7deb12c30aa2cd009f0  gcc/testsuite/g++.dg/torture/pr46383.C
  bb9d7276700bae19865678a9e9faff24  gcc/testsuite/g++.dg/torture/pr46469.C
  5dde3d0578e1439d9d3996d53c5837d5  gcc/testsuite/g++.dg/torture/pr47290.C
  d7405396eb2a53d9ca62c35764221977  gcc/testsuite/g++.dg/torture/pr47313.C
+ 9083d39712c3ea9284c62beb56140f6a  gcc/testsuite/g++.dg/torture/pr47333.C
  c2620174c12bbff392c51fb1170c0929  gcc/testsuite/g++.dg/torture/pr47382.C
  2875f29910a1c9fceb2c3abacae94988  gcc/testsuite/g++.dg/torture/pr47541.C
  76848843bf5ed9a6d83a170499d76c64  gcc/testsuite/g++.dg/torture/pr47559.C
*************** a19a960df4a90e813925ed2bffee64b3  gcc/te
*** 29550,29560 ****
  5acc44972b497ec217b87c1f085f5c24  gcc/testsuite/g++.dg/torture/pr49394.C
  cffdc9798a9b714a7acb5448aee49c12  gcc/testsuite/g++.dg/torture/pr49519.C
  fb6d1315d0bb0a6ecaaa982300921ad0  gcc/testsuite/g++.dg/torture/pr49615.C
! 0a508430aa4eff5b532a237388ea0851  gcc/testsuite/g++.dg/torture/pr49628.C
  70ba1d6e65ff77ad5205e068917704ba  gcc/testsuite/g++.dg/torture/pr49644.C
  7dd611bbf63323f0b35b857a27dd4dfc  gcc/testsuite/g++.dg/torture/pr49720.C
  ffecf18f597b8141390a450ec0253f1b  gcc/testsuite/g++.dg/torture/pr49770.C
! 5076fcca9e6633afe1eeea93bfaf817d  gcc/testsuite/g++.dg/torture/pr49938.C
  5c00c9b8fdccd7fc9f1cbaf152f74745  gcc/testsuite/g++.dg/torture/pr50189.C
  ce1cdfddb6a49b62f6948eebbab0fa93  gcc/testsuite/g++.dg/torture/pr50672.C
  ee8375d5f72145ceeddc40d924396c8f  gcc/testsuite/g++.dg/torture/pr51198.C
--- 31598,31608 ----
  5acc44972b497ec217b87c1f085f5c24  gcc/testsuite/g++.dg/torture/pr49394.C
  cffdc9798a9b714a7acb5448aee49c12  gcc/testsuite/g++.dg/torture/pr49519.C
  fb6d1315d0bb0a6ecaaa982300921ad0  gcc/testsuite/g++.dg/torture/pr49615.C
! cd11d76b42c8fce6ed0db5f41c723513  gcc/testsuite/g++.dg/torture/pr49628.C
  70ba1d6e65ff77ad5205e068917704ba  gcc/testsuite/g++.dg/torture/pr49644.C
  7dd611bbf63323f0b35b857a27dd4dfc  gcc/testsuite/g++.dg/torture/pr49720.C
  ffecf18f597b8141390a450ec0253f1b  gcc/testsuite/g++.dg/torture/pr49770.C
! 1cbac53c3a39477819b91d9df2b2dc41  gcc/testsuite/g++.dg/torture/pr49938.C
  5c00c9b8fdccd7fc9f1cbaf152f74745  gcc/testsuite/g++.dg/torture/pr50189.C
  ce1cdfddb6a49b62f6948eebbab0fa93  gcc/testsuite/g++.dg/torture/pr50672.C
  ee8375d5f72145ceeddc40d924396c8f  gcc/testsuite/g++.dg/torture/pr51198.C
*************** f12a51ed402174a6e7f165aae6f052d9  gcc/te
*** 29563,29569 ****
  1e766e36197d15cc741b6e608eefb0e2  gcc/testsuite/g++.dg/torture/pr51482.C
  cde8ed97b7e6c3d7806a00c88c273ad4  gcc/testsuite/g++.dg/torture/pr51600.C
  b6fc13d45ec068ac13fe83d71ab6e393  gcc/testsuite/g++.dg/torture/pr51737.C
! c26e5af08201d96e59522545f827c5f6  gcc/testsuite/g++.dg/torture/pr51903.C
  0c5c9eb265d682d5c807c0e2ce37756a  gcc/testsuite/g++.dg/torture/pr51959.C
  cd96fe61efcf38e530d000644545eb65  gcc/testsuite/g++.dg/torture/pr52582.C
  03a3dc586d0df58e2804f83d50c76c21  gcc/testsuite/g++.dg/torture/pr52638.C
--- 31611,31617 ----
  1e766e36197d15cc741b6e608eefb0e2  gcc/testsuite/g++.dg/torture/pr51482.C
  cde8ed97b7e6c3d7806a00c88c273ad4  gcc/testsuite/g++.dg/torture/pr51600.C
  b6fc13d45ec068ac13fe83d71ab6e393  gcc/testsuite/g++.dg/torture/pr51737.C
! 9e22539e8df8451670acac62a663bef4  gcc/testsuite/g++.dg/torture/pr51903.C
  0c5c9eb265d682d5c807c0e2ce37756a  gcc/testsuite/g++.dg/torture/pr51959.C
  cd96fe61efcf38e530d000644545eb65  gcc/testsuite/g++.dg/torture/pr52582.C
  03a3dc586d0df58e2804f83d50c76c21  gcc/testsuite/g++.dg/torture/pr52638.C
*************** dad5f6df8311295c4832533334c84d00  gcc/te
*** 29580,29586 ****
  9a98404f2bdaa970f43c1300bb87cc27  gcc/testsuite/g++.dg/torture/pr53693.C
  ff4072f62ae5ddefa538d5777a2ff63c  gcc/testsuite/g++.dg/torture/pr53752.C
  fbe94bcf48ad5e7374ea220cc3ae42c0  gcc/testsuite/g++.dg/torture/pr53970.C
! 4ffbd8e21d67aeb78f41df023d61e307  gcc/testsuite/g++.dg/torture/pr54498.C
  223cbe0817bf9dd882b64bfda782f806  gcc/testsuite/g++.dg/torture/pr54563.C
  dc106f856185dd3ee7cfdb5a86571091  gcc/testsuite/g++.dg/torture/pr54647.C
  dedc14a5f4caa87ea494123f2002de83  gcc/testsuite/g++.dg/torture/pr54684.C
--- 31628,31634 ----
  9a98404f2bdaa970f43c1300bb87cc27  gcc/testsuite/g++.dg/torture/pr53693.C
  ff4072f62ae5ddefa538d5777a2ff63c  gcc/testsuite/g++.dg/torture/pr53752.C
  fbe94bcf48ad5e7374ea220cc3ae42c0  gcc/testsuite/g++.dg/torture/pr53970.C
! f3decdf1098c089b165a3762238f65ee  gcc/testsuite/g++.dg/torture/pr54498.C
  223cbe0817bf9dd882b64bfda782f806  gcc/testsuite/g++.dg/torture/pr54563.C
  dc106f856185dd3ee7cfdb5a86571091  gcc/testsuite/g++.dg/torture/pr54647.C
  dedc14a5f4caa87ea494123f2002de83  gcc/testsuite/g++.dg/torture/pr54684.C
*************** ce5bd74dda85ecae08b1e79c21fc231c  gcc/te
*** 29638,29644 ****
  6b298d33b9334bec62dcb66cd3e6a52c  gcc/testsuite/g++.dg/torture/pr60648.C
  8c2dc2c3e3d744280501f821dd5cfb10  gcc/testsuite/g++.dg/torture/pr60659.C
  7a509be3dc016f40754742509473d5fa  gcc/testsuite/g++.dg/torture/pr60746.C
! 5f42e568cc105049d43016ffc65ea36f  gcc/testsuite/g++.dg/torture/pr60750.C
  2cd5e243f12b5ca6cf66ca1966b24a84  gcc/testsuite/g++.dg/torture/pr60854.C
  bf1571ea2878b71f037f210093cd3932  gcc/testsuite/g++.dg/torture/pr60871.C
  ea51728c5e2ae154940893c6ccb374f8  gcc/testsuite/g++.dg/torture/pr60895.C
--- 31686,31692 ----
  6b298d33b9334bec62dcb66cd3e6a52c  gcc/testsuite/g++.dg/torture/pr60648.C
  8c2dc2c3e3d744280501f821dd5cfb10  gcc/testsuite/g++.dg/torture/pr60659.C
  7a509be3dc016f40754742509473d5fa  gcc/testsuite/g++.dg/torture/pr60746.C
! 638b4e65c19959e0b146b009af618977  gcc/testsuite/g++.dg/torture/pr60750.C
  2cd5e243f12b5ca6cf66ca1966b24a84  gcc/testsuite/g++.dg/torture/pr60854.C
  bf1571ea2878b71f037f210093cd3932  gcc/testsuite/g++.dg/torture/pr60871.C
  ea51728c5e2ae154940893c6ccb374f8  gcc/testsuite/g++.dg/torture/pr60895.C
*************** a7a4f733c1ff07bc95f3f3bb578ef917  gcc/te
*** 29647,29653 ****
  0c928e529190490eee6ccc0f6325b8e5  gcc/testsuite/g++.dg/torture/pr61558.C
  4911986338db4a40f38685a96d77ae91  gcc/testsuite/g++.dg/torture/pr61848.C
  af2ab3b9ceedb2dbeb48d6c62a313372  gcc/testsuite/g++.dg/torture/pr62121.C
! 4861bba426409b55c13e82f0b44891e7  gcc/testsuite/g++.dg/torture/pr62127.C
  d07b743bd2e667fec2eed8f9e3dea4b4  gcc/testsuite/g++.dg/torture/pr62164.C
  2dab7d0ec5bd96c1fc2d49137dd14a65  gcc/testsuite/g++.dg/torture/pr62175.C
  e5c82b189f972c2c834eb829496bf82d  gcc/testsuite/g++.dg/torture/pr63237.C
--- 31695,31701 ----
  0c928e529190490eee6ccc0f6325b8e5  gcc/testsuite/g++.dg/torture/pr61558.C
  4911986338db4a40f38685a96d77ae91  gcc/testsuite/g++.dg/torture/pr61848.C
  af2ab3b9ceedb2dbeb48d6c62a313372  gcc/testsuite/g++.dg/torture/pr62121.C
! cb865df813388db75d6864456500fe1c  gcc/testsuite/g++.dg/torture/pr62127.C
  d07b743bd2e667fec2eed8f9e3dea4b4  gcc/testsuite/g++.dg/torture/pr62164.C
  2dab7d0ec5bd96c1fc2d49137dd14a65  gcc/testsuite/g++.dg/torture/pr62175.C
  e5c82b189f972c2c834eb829496bf82d  gcc/testsuite/g++.dg/torture/pr63237.C
*************** f80d9affd14e7f4b6a5110b9ff496100  gcc/te
*** 29657,29663 ****
  fe25e4f1a3010bc02be756af7df1df8d  gcc/testsuite/g++.dg/torture/pr63512.C
  7d49b0384f2408757a5389f68ff1ff8e  gcc/testsuite/g++.dg/torture/pr63632.C
  83d06145b111792c36237c11502a97dc  gcc/testsuite/g++.dg/torture/pr64139.C
! 06139e2d04b24cf5cdf4bb8039dcf8f1  gcc/testsuite/g++.dg/torture/pr64280.C
  36a83a61233f38d6c4eeb27c1e50e097  gcc/testsuite/g++.dg/torture/pr64282.C
  5f5c7f43583f78d4db884e35079b34ad  gcc/testsuite/g++.dg/torture/pr64312.C
  a7bf10a33ecfa0bbf6675f583f6f47be  gcc/testsuite/g++.dg/torture/pr64378.C
--- 31705,31711 ----
  fe25e4f1a3010bc02be756af7df1df8d  gcc/testsuite/g++.dg/torture/pr63512.C
  7d49b0384f2408757a5389f68ff1ff8e  gcc/testsuite/g++.dg/torture/pr63632.C
  83d06145b111792c36237c11502a97dc  gcc/testsuite/g++.dg/torture/pr64139.C
! de910d9f2cae633de2a0f280fc5d0abf  gcc/testsuite/g++.dg/torture/pr64280.C
  36a83a61233f38d6c4eeb27c1e50e097  gcc/testsuite/g++.dg/torture/pr64282.C
  5f5c7f43583f78d4db884e35079b34ad  gcc/testsuite/g++.dg/torture/pr64312.C
  a7bf10a33ecfa0bbf6675f583f6f47be  gcc/testsuite/g++.dg/torture/pr64378.C
*************** a87f1be3c65a5aed90d14e12a23c676d  gcc/te
*** 29681,29691 ****
  baf5d2ae206f7c666a10ccd2d6d58d09  gcc/testsuite/g++.dg/torture/pr66280-2.C
  117ca514f551d13ac5a24003524bfb34  gcc/testsuite/g++.dg/torture/pr66280.C
  4a8a063c8dffe35bf8a063c635bac9c1  gcc/testsuite/g++.dg/torture/pr66752-2.C
! dec81fd16db4998e9762020f35359f3e  gcc/testsuite/g++.dg/torture/pr67055.C
  69e76c4a08260b15627abd2bb95467cd  gcc/testsuite/g++.dg/torture/pr67133.C
  56227ef023257f5b07928f86bd0a4471  gcc/testsuite/g++.dg/torture/pr67191.C
  9fe18ea54e017b08af376aa0379be44e  gcc/testsuite/g++.dg/torture/pr67581.C
! 9e74caef3e2229e913023613957f9cf8  gcc/testsuite/g++.dg/torture/pr67600.C
  ffea96650489328bbd2b2b1bab33a124  gcc/testsuite/g++.dg/torture/pr68064.C
  346f676cb6eadd42bf541771cf8eea46  gcc/testsuite/g++.dg/torture/pr68184.C
  ff1c25011b35b7d40c5d1c450677ac84  gcc/testsuite/g++.dg/torture/pr68220.C
--- 31729,31739 ----
  baf5d2ae206f7c666a10ccd2d6d58d09  gcc/testsuite/g++.dg/torture/pr66280-2.C
  117ca514f551d13ac5a24003524bfb34  gcc/testsuite/g++.dg/torture/pr66280.C
  4a8a063c8dffe35bf8a063c635bac9c1  gcc/testsuite/g++.dg/torture/pr66752-2.C
! 2dd80dfdabe9773001a7e327158a635e  gcc/testsuite/g++.dg/torture/pr67055.C
  69e76c4a08260b15627abd2bb95467cd  gcc/testsuite/g++.dg/torture/pr67133.C
  56227ef023257f5b07928f86bd0a4471  gcc/testsuite/g++.dg/torture/pr67191.C
  9fe18ea54e017b08af376aa0379be44e  gcc/testsuite/g++.dg/torture/pr67581.C
! 0ebdb7dc6a7cea2b60a1ba888de42dcb  gcc/testsuite/g++.dg/torture/pr67600.C
  ffea96650489328bbd2b2b1bab33a124  gcc/testsuite/g++.dg/torture/pr68064.C
  346f676cb6eadd42bf541771cf8eea46  gcc/testsuite/g++.dg/torture/pr68184.C
  ff1c25011b35b7d40c5d1c450677ac84  gcc/testsuite/g++.dg/torture/pr68220.C
*************** e7b6b1b081a787e4e53586f0eb586432  gcc/te
*** 29735,29741 ****
  cde8a6692b03d3f9200ac398c7f1e30f  gcc/testsuite/g++.dg/torture/pr79180.C
  cb9b70d9fd5cd4be6b35325ba8585094  gcc/testsuite/g++.dg/torture/pr79410.C
  a74b702150e2440ab44ee64832045035  gcc/testsuite/g++.dg/torture/pr79671.C
! e2fc1650fd0ae5155b78467314f4d7dd  gcc/testsuite/g++.dg/torture/pr79905.C
  e2feecde27b238c3295769ac065f5fca  gcc/testsuite/g++.dg/torture/pr80054.C
  5f30adb3e661ee47f5fadbbad3ee23c1  gcc/testsuite/g++.dg/torture/pr80075.C
  7ca5ee7afef7aee7488a8e0511740522  gcc/testsuite/g++.dg/torture/pr80129.C
--- 31783,31789 ----
  cde8a6692b03d3f9200ac398c7f1e30f  gcc/testsuite/g++.dg/torture/pr79180.C
  cb9b70d9fd5cd4be6b35325ba8585094  gcc/testsuite/g++.dg/torture/pr79410.C
  a74b702150e2440ab44ee64832045035  gcc/testsuite/g++.dg/torture/pr79671.C
! 2ff4b9618d431632c70b1c8b261d2ab4  gcc/testsuite/g++.dg/torture/pr79905.C
  e2feecde27b238c3295769ac065f5fca  gcc/testsuite/g++.dg/torture/pr80054.C
  5f30adb3e661ee47f5fadbbad3ee23c1  gcc/testsuite/g++.dg/torture/pr80075.C
  7ca5ee7afef7aee7488a8e0511740522  gcc/testsuite/g++.dg/torture/pr80129.C
*************** c4901bbe41ce1310894b59ad5e94230b  gcc/te
*** 29749,29761 ****
  2ea00b74c66f7b415383da9b9e2d1015  gcc/testsuite/g++.dg/torture/pr81365.C
  3b3a07eb1cd5bd893a2cd5e7522dd666  gcc/testsuite/g++.dg/torture/pr81462.C
  06c8ed447e11354d4a95ce6c21d10111  gcc/testsuite/g++.dg/torture/pr81659.C
! 48162199f246f0afced679d08e6befd4  gcc/testsuite/g++.dg/torture/pr81812.C
  8a5f9f9294cebeb70876c5b1c9ea7cfd  gcc/testsuite/g++.dg/torture/pr81877.C
  51ad14f7722c92d3074ceddad1e864f0  gcc/testsuite/g++.dg/torture/pr81884.C
  bff863905887579e8aac699fddb4b928  gcc/testsuite/g++.dg/torture/pr81977.C
  22414dc3cabbf804f8f8f89b0d5c45b5  gcc/testsuite/g++.dg/torture/pr81987.C
  56f289074e2ec405f84e8945ba2fd8e7  gcc/testsuite/g++.dg/torture/pr82060.C
! 5c1263a91ff6c6cd35d7064c44081a27  gcc/testsuite/g++.dg/torture/pr82084.C
  5432e74411bf9828af77fa6e1ac39706  gcc/testsuite/g++.dg/torture/pr82154.C
  464b46d5d33b83e255dda6cc6950001a  gcc/testsuite/g++.dg/torture/pr82823.C
  7b31d7e6cf7338af5c217f792e597cec  gcc/testsuite/g++.dg/torture/pr82902.C
--- 31797,31809 ----
  2ea00b74c66f7b415383da9b9e2d1015  gcc/testsuite/g++.dg/torture/pr81365.C
  3b3a07eb1cd5bd893a2cd5e7522dd666  gcc/testsuite/g++.dg/torture/pr81462.C
  06c8ed447e11354d4a95ce6c21d10111  gcc/testsuite/g++.dg/torture/pr81659.C
! 8011f046bcdeeefb752734291ddc032e  gcc/testsuite/g++.dg/torture/pr81812.C
  8a5f9f9294cebeb70876c5b1c9ea7cfd  gcc/testsuite/g++.dg/torture/pr81877.C
  51ad14f7722c92d3074ceddad1e864f0  gcc/testsuite/g++.dg/torture/pr81884.C
  bff863905887579e8aac699fddb4b928  gcc/testsuite/g++.dg/torture/pr81977.C
  22414dc3cabbf804f8f8f89b0d5c45b5  gcc/testsuite/g++.dg/torture/pr81987.C
  56f289074e2ec405f84e8945ba2fd8e7  gcc/testsuite/g++.dg/torture/pr82060.C
! df73cdccb651e27cc027bb92ea5bb56e  gcc/testsuite/g++.dg/torture/pr82084.C
  5432e74411bf9828af77fa6e1ac39706  gcc/testsuite/g++.dg/torture/pr82154.C
  464b46d5d33b83e255dda6cc6950001a  gcc/testsuite/g++.dg/torture/pr82823.C
  7b31d7e6cf7338af5c217f792e597cec  gcc/testsuite/g++.dg/torture/pr82902.C
*************** ebccddf8491308f2f5774f0f5bc65c1b  gcc/te
*** 29781,29787 ****
  cbc6cd52e3c07bb0cbd331817134fe42  gcc/testsuite/g++.dg/torture/pr85496.C
  d48bc96de30ff7301bec70de3d32353a  gcc/testsuite/g++.dg/torture/pr85627.C
  fb93ade12d8ff260e9f5a9d1c6a8acbb  gcc/testsuite/g++.dg/torture/pr85834.C
! c004bb94adc4b3e0994cc5b6d5ebfb2c  gcc/testsuite/g++.dg/torture/pr86763.C
  678452d4d3341493bf50bbe67e365727  gcc/testsuite/g++.dg/torture/pr86816.C
  7f01f3aa3a86678c9ff69f4ecb09c5c8  gcc/testsuite/g++.dg/torture/pr87014.C
  d1b878a0538cc40530c3ecf9a0d7407f  gcc/testsuite/g++.dg/torture/pr87124.C
--- 31829,31835 ----
  cbc6cd52e3c07bb0cbd331817134fe42  gcc/testsuite/g++.dg/torture/pr85496.C
  d48bc96de30ff7301bec70de3d32353a  gcc/testsuite/g++.dg/torture/pr85627.C
  fb93ade12d8ff260e9f5a9d1c6a8acbb  gcc/testsuite/g++.dg/torture/pr85834.C
! 6ef67367de3d2b01793bc6adb8fa422a  gcc/testsuite/g++.dg/torture/pr86763.C
  678452d4d3341493bf50bbe67e365727  gcc/testsuite/g++.dg/torture/pr86816.C
  7f01f3aa3a86678c9ff69f4ecb09c5c8  gcc/testsuite/g++.dg/torture/pr87014.C
  d1b878a0538cc40530c3ecf9a0d7407f  gcc/testsuite/g++.dg/torture/pr87124.C
*************** dbe58e15424b476b932c58cb5bc16046  gcc/te
*** 29792,29806 ****
  28251f0199f94a1606cac696e1db484b  gcc/testsuite/g++.dg/torture/pr89303.C
  6295f2521ee059610fe7d8e12800e20b  gcc/testsuite/g++.dg/torture/pr89698.C
  922274fa2bea46eb7cee843b1f139ab8  gcc/testsuite/g++.dg/torture/pr90194.C
! 38d5ed9578a5910b56d57c30c896f01f  gcc/testsuite/g++.dg/torture/pr90313.cc
  8f37bcbeb67682110bfb7b989631551a  gcc/testsuite/g++.dg/torture/pr90982.C
  bd0e252d81e8fe6df182d804fa7e51d1  gcc/testsuite/g++.dg/torture/pr90994.C
  c09ff981d388790529f959a054685551  gcc/testsuite/g++.dg/torture/pr91155.C
  25acdead98815c5c152ccee9449f6ab0  gcc/testsuite/g++.dg/torture/pr91270.C
  8512e0d79849c3153a1290024a552a14  gcc/testsuite/g++.dg/torture/pr91280.C
! 93d55ecf83df005a34b578b2cdbb5930  gcc/testsuite/g++.dg/torture/pr91334.C
  7782e7a66949621445617364c753a54f  gcc/testsuite/g++.dg/torture/pr91355.C
! 3d0408f32ee832d98bd0325169fc1951  gcc/testsuite/g++.dg/torture/pr91606.C
  012536b5aeeb81c62c942db315ce8848  gcc/testsuite/g++.dg/torture/pr91680.C
  176182a6555162b35b97697d2d133df3  gcc/testsuite/g++.dg/torture/pr92152.C
  1779028417f5f8e86e290051fd916516  gcc/testsuite/g++.dg/torture/pr92384.C
--- 31840,31854 ----
  28251f0199f94a1606cac696e1db484b  gcc/testsuite/g++.dg/torture/pr89303.C
  6295f2521ee059610fe7d8e12800e20b  gcc/testsuite/g++.dg/torture/pr89698.C
  922274fa2bea46eb7cee843b1f139ab8  gcc/testsuite/g++.dg/torture/pr90194.C
! 38d5ed9578a5910b56d57c30c896f01f  gcc/testsuite/g++.dg/torture/pr90313.C
  8f37bcbeb67682110bfb7b989631551a  gcc/testsuite/g++.dg/torture/pr90982.C
  bd0e252d81e8fe6df182d804fa7e51d1  gcc/testsuite/g++.dg/torture/pr90994.C
  c09ff981d388790529f959a054685551  gcc/testsuite/g++.dg/torture/pr91155.C
  25acdead98815c5c152ccee9449f6ab0  gcc/testsuite/g++.dg/torture/pr91270.C
  8512e0d79849c3153a1290024a552a14  gcc/testsuite/g++.dg/torture/pr91280.C
! 4e2ef88024e234fead951a74d4ba3756  gcc/testsuite/g++.dg/torture/pr91334.C
  7782e7a66949621445617364c753a54f  gcc/testsuite/g++.dg/torture/pr91355.C
! 6c0871819ee3b85e2d7fee264cafc71f  gcc/testsuite/g++.dg/torture/pr91606.C
  012536b5aeeb81c62c942db315ce8848  gcc/testsuite/g++.dg/torture/pr91680.C
  176182a6555162b35b97697d2d133df3  gcc/testsuite/g++.dg/torture/pr92152.C
  1779028417f5f8e86e290051fd916516  gcc/testsuite/g++.dg/torture/pr92384.C
*************** a5f9935d95a8b379688d9d02f216eee4  gcc/te
*** 29815,29823 ****
  bdad2a22da5e508fb04f59e1ed5f7372  gcc/testsuite/g++.dg/torture/pr95268.C
  d7b24817b654bd26f83a7a25390ba85e  gcc/testsuite/g++.dg/torture/pr95284.C
  a799c054c48a1adfe45dbd068b878bcf  gcc/testsuite/g++.dg/torture/pr95308.C
! e81182d941656df2cf9317a908d63c3a  gcc/testsuite/g++.dg/torture/pr95493-1.C
  3162c3dc7f72a4b2566d143f27e1095d  gcc/testsuite/g++.dg/torture/pr95493.C
  881563a4734c7bc6a542eac2ffa6e78b  gcc/testsuite/g++.dg/torture/pr95548.C
  b8b82b8b079f8b69e6feb08f5f8b6787  gcc/testsuite/g++.dg/torture/pr95717.C
  c7e4af5b1c1eda54df07de9a87086f1e  gcc/testsuite/g++.dg/torture/pr96881-1.C
  05680818103b97772c2350c75cd2fca7  gcc/testsuite/g++.dg/torture/pr96881-2.C
--- 31863,31872 ----
  bdad2a22da5e508fb04f59e1ed5f7372  gcc/testsuite/g++.dg/torture/pr95268.C
  d7b24817b654bd26f83a7a25390ba85e  gcc/testsuite/g++.dg/torture/pr95284.C
  a799c054c48a1adfe45dbd068b878bcf  gcc/testsuite/g++.dg/torture/pr95308.C
! b9cde9814d1c95110a2ec31bd626c2e6  gcc/testsuite/g++.dg/torture/pr95493-1.C
  3162c3dc7f72a4b2566d143f27e1095d  gcc/testsuite/g++.dg/torture/pr95493.C
  881563a4734c7bc6a542eac2ffa6e78b  gcc/testsuite/g++.dg/torture/pr95548.C
+ d6b85cefbff7a44f6aa6f132556ef0e4  gcc/testsuite/g++.dg/torture/pr95677.C
  b8b82b8b079f8b69e6feb08f5f8b6787  gcc/testsuite/g++.dg/torture/pr95717.C
  c7e4af5b1c1eda54df07de9a87086f1e  gcc/testsuite/g++.dg/torture/pr96881-1.C
  05680818103b97772c2350c75cd2fca7  gcc/testsuite/g++.dg/torture/pr96881-2.C
*************** e4a2806756d77b77d7647a06211473a0  gcc/te
*** 29828,29842 ****
  e47702cb1ff0caccc17257524e8667dc  gcc/testsuite/g++.dg/torture/predcom-1.C
  d28910105d9c9253d94d70eacd5e19d4  gcc/testsuite/g++.dg/torture/pushpop_macro.C
  a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/g++.dg/torture/stackalign/check.h
! 714fa47ec3e1b559fd96ca98ccc1fda7  gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C
  f901926c5a1ac060933c9852ce091ab1  gcc/testsuite/g++.dg/torture/stackalign/eh-fastcall-1.C
  911f5840ca951dfba6f210ed99decf1c  gcc/testsuite/g++.dg/torture/stackalign/eh-global-1.C
  35cde9d7c491fd52c0f077812a425a5b  gcc/testsuite/g++.dg/torture/stackalign/eh-inline-1.C
! cae456330f7461197045e0a2f5fa12ce  gcc/testsuite/g++.dg/torture/stackalign/eh-inline-2.C
  798d1fe29ec407f8783626ddb0d01446  gcc/testsuite/g++.dg/torture/stackalign/eh-thiscall-1.C
! ac2b625997ec285af8b6598167ada1fa  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-1.C
! 5e58161ad482c690ceda702d708037b4  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-2.C
! 1f76a4886fa9a8455fa38439465cc994  gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
  b1433c47f1b3510e41343cb1176ab88e  gcc/testsuite/g++.dg/torture/stackalign/stdcall-1.C
  b01a92d8302c9dc593001dd53f236dcf  gcc/testsuite/g++.dg/torture/stackalign/test-unwind.h
  46c8c72894cd196236d1548df5c8b779  gcc/testsuite/g++.dg/torture/stackalign/throw-1.C
--- 31877,31891 ----
  e47702cb1ff0caccc17257524e8667dc  gcc/testsuite/g++.dg/torture/predcom-1.C
  d28910105d9c9253d94d70eacd5e19d4  gcc/testsuite/g++.dg/torture/pushpop_macro.C
  a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/g++.dg/torture/stackalign/check.h
! 119038d58c76a2ab6c454bd52bbfa47a  gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C
  f901926c5a1ac060933c9852ce091ab1  gcc/testsuite/g++.dg/torture/stackalign/eh-fastcall-1.C
  911f5840ca951dfba6f210ed99decf1c  gcc/testsuite/g++.dg/torture/stackalign/eh-global-1.C
  35cde9d7c491fd52c0f077812a425a5b  gcc/testsuite/g++.dg/torture/stackalign/eh-inline-1.C
! 64783e5e399372142568c43573f0e5a2  gcc/testsuite/g++.dg/torture/stackalign/eh-inline-2.C
  798d1fe29ec407f8783626ddb0d01446  gcc/testsuite/g++.dg/torture/stackalign/eh-thiscall-1.C
! af36f1d78ec1008bfdb5c0491c571648  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-1.C
! f9da67a92e57ce551b0c95095994f957  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-2.C
! 9bcecbbecf6250c162c620cf661634fb  gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
  b1433c47f1b3510e41343cb1176ab88e  gcc/testsuite/g++.dg/torture/stackalign/stdcall-1.C
  b01a92d8302c9dc593001dd53f236dcf  gcc/testsuite/g++.dg/torture/stackalign/test-unwind.h
  46c8c72894cd196236d1548df5c8b779  gcc/testsuite/g++.dg/torture/stackalign/throw-1.C
*************** d934d416b21e41c4d519752f3b17dd8c  gcc/te
*** 29857,29862 ****
--- 31906,31912 ----
  42e128b3145495bd2df35c3cdcc684ac  gcc/testsuite/g++.dg/torture/tail-padding1.C
  0b01f7feb325a8c1dfd3c796eab53860  gcc/testsuite/g++.dg/torture/type-generic-1.C
  5182a6176977a80003d5f64a5f01e78c  gcc/testsuite/g++.dg/torture/uninit-pr112766.C
+ 578b102f9caacae988fc6b469dc3f9c1  gcc/testsuite/g++.dg/torture/vect-absu-1.C
  b8295c0e8f03c64f84bf748a57947283  gcc/testsuite/g++.dg/torture/vector-struct-1.C
  451c0082f351cdec594741735d086495  gcc/testsuite/g++.dg/torture/vector-subaccess-1.C
  164b3eb60b0c717428d0673a23922dfc  gcc/testsuite/g++.dg/torture/vshuf-16.inc
*************** e5c358735afed9e9c54950b2b1516563  gcc/te
*** 29897,29925 ****
  3e4967b80142545b6a4d840a9e18f3b3  gcc/testsuite/g++.dg/tree-prof/reorder.C
  45ee371a772198109e5e2acb3f7c0f0b  gcc/testsuite/g++.dg/tree-prof/reorder_class1.h
  3dacd3cf3baf954cf35437e3859e7171  gcc/testsuite/g++.dg/tree-prof/reorder_class2.h
! 7b82400f76ccd56a239cf5065f252d32  gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
  2a1f9c8b1ccb241e4745f1e06c56fac3  gcc/testsuite/g++.dg/tree-ssa/20040317-1.C
  7dda69fb98d47a720fec9044146ebd16  gcc/testsuite/g++.dg/tree-ssa/aggregate1.C
  9b3694af0b6195c5c10b4b0caa6af5a4  gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C
! 724dacb248d037e68c27d421773545f1  gcc/testsuite/g++.dg/tree-ssa/allocator-opt1.C
  2beabec34d757a40497771a8e2204be6  gcc/testsuite/g++.dg/tree-ssa/array-temp1.C
  08d69e786b9ad4d3160a39a0d5e489fa  gcc/testsuite/g++.dg/tree-ssa/block1.C
  92014ea122d687546fe3649560d8b2a7  gcc/testsuite/g++.dg/tree-ssa/builtin1.C
  713d6b942f1fdfec168122607d26adf6  gcc/testsuite/g++.dg/tree-ssa/calloc.C
  77eae20bc535d63c8ba5e78f1753ad4f  gcc/testsuite/g++.dg/tree-ssa/cond-temp1.C
  96f78e0eceff770431ee91e38866bb06  gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C
! 976b25599ddf8018c866aa1c66d6dba9  gcc/testsuite/g++.dg/tree-ssa/copyprop.C
  87d33077dde5db2d1e9e001bd82dc9cd  gcc/testsuite/g++.dg/tree-ssa/counts-1.C
  6c20484753d2fb5081463a83f21e1f85  gcc/testsuite/g++.dg/tree-ssa/cprop-vcond.C
  ac99be7ada2631c077352f322dd05ca0  gcc/testsuite/g++.dg/tree-ssa/deleted-label1.C
! d3a37f7513c9a97518fe0c3bb452d2f1  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-1.C
! 39adfc7544c3535174b9962a3e018f7f  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-2.C
  ef3a26a28db0f953ec307b6c4c4b973b  gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C
  f47eaa2d8002496a7b4b7724ca81009b  gcc/testsuite/g++.dg/tree-ssa/ehcleanup-1.C
  7a59e09c4cb65bda7874f5d6af01a6f5  gcc/testsuite/g++.dg/tree-ssa/empty-1.C
  6ca719a4fb53798313a64270ae55a047  gcc/testsuite/g++.dg/tree-ssa/empty-2.C
  5496cb6269663cf7b6e1734a3a939fd8  gcc/testsuite/g++.dg/tree-ssa/empty-3.C
! 9682f3c6e0f5c89f14e2a48000e526eb  gcc/testsuite/g++.dg/tree-ssa/empty-loop.C
  87bbb4a55dd7abc95e6b9094f8fa9d5c  gcc/testsuite/g++.dg/tree-ssa/final1.C
  e7acf0a7b027c556c76317572440f052  gcc/testsuite/g++.dg/tree-ssa/final2.C
  3c696786eeb4bd40f02526c5787fb676  gcc/testsuite/g++.dg/tree-ssa/final3.C
--- 31947,31985 ----
  3e4967b80142545b6a4d840a9e18f3b3  gcc/testsuite/g++.dg/tree-prof/reorder.C
  45ee371a772198109e5e2acb3f7c0f0b  gcc/testsuite/g++.dg/tree-prof/reorder_class1.h
  3dacd3cf3baf954cf35437e3859e7171  gcc/testsuite/g++.dg/tree-prof/reorder_class2.h
! 3ba8baf13416fb1b91711362bded194e  gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
  2a1f9c8b1ccb241e4745f1e06c56fac3  gcc/testsuite/g++.dg/tree-ssa/20040317-1.C
  7dda69fb98d47a720fec9044146ebd16  gcc/testsuite/g++.dg/tree-ssa/aggregate1.C
  9b3694af0b6195c5c10b4b0caa6af5a4  gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C
! 6745c817520fbb3c0baa82d27c1852e4  gcc/testsuite/g++.dg/tree-ssa/allocator-opt1.C
  2beabec34d757a40497771a8e2204be6  gcc/testsuite/g++.dg/tree-ssa/array-temp1.C
  08d69e786b9ad4d3160a39a0d5e489fa  gcc/testsuite/g++.dg/tree-ssa/block1.C
  92014ea122d687546fe3649560d8b2a7  gcc/testsuite/g++.dg/tree-ssa/builtin1.C
+ 48f8a1a8175e84a3573f187b018b2269  gcc/testsuite/g++.dg/tree-ssa/bvector-3.C
  713d6b942f1fdfec168122607d26adf6  gcc/testsuite/g++.dg/tree-ssa/calloc.C
  77eae20bc535d63c8ba5e78f1753ad4f  gcc/testsuite/g++.dg/tree-ssa/cond-temp1.C
  96f78e0eceff770431ee91e38866bb06  gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C
! 0c4762d5d27af6f799c16c66b7dd5692  gcc/testsuite/g++.dg/tree-ssa/copyprop.C
  87d33077dde5db2d1e9e001bd82dc9cd  gcc/testsuite/g++.dg/tree-ssa/counts-1.C
  6c20484753d2fb5081463a83f21e1f85  gcc/testsuite/g++.dg/tree-ssa/cprop-vcond.C
+ e839ec81426b140ca13726e25c99138a  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-1.C
+ 66e4bde98cbee7bd23264483e5ef71cd  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-2.C
+ 30afa65875baa79df26509c2a82b9498  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-3.C
+ e0604388882a46e9407a0d05776d16b0  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-4.C
+ 909c0f6b061a1cc89541769b9c3ea665  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-5.C
+ 455b3771f33a9617ffa9985bcb1194d3  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C
+ 1c0fdcaed89b57202587a0633c039bd2  gcc/testsuite/g++.dg/tree-ssa/dce-1.C
  ac99be7ada2631c077352f322dd05ca0  gcc/testsuite/g++.dg/tree-ssa/deleted-label1.C
! 278aa733a9d93708c883e0a1c2f93c8e  gcc/testsuite/g++.dg/tree-ssa/deque-1.C
! abb492602541457e4aba2ed909965bda  gcc/testsuite/g++.dg/tree-ssa/deque-2.C
! 3d03c195106b9dca6ef1e559e1c02837  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-1.C
! 15796713f99d392ab08637a25729b3d9  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-2.C
  ef3a26a28db0f953ec307b6c4c4b973b  gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C
  f47eaa2d8002496a7b4b7724ca81009b  gcc/testsuite/g++.dg/tree-ssa/ehcleanup-1.C
  7a59e09c4cb65bda7874f5d6af01a6f5  gcc/testsuite/g++.dg/tree-ssa/empty-1.C
  6ca719a4fb53798313a64270ae55a047  gcc/testsuite/g++.dg/tree-ssa/empty-2.C
  5496cb6269663cf7b6e1734a3a939fd8  gcc/testsuite/g++.dg/tree-ssa/empty-3.C
! a1b4fd04487b59dc3466af4f137aa5e8  gcc/testsuite/g++.dg/tree-ssa/empty-loop.C
  87bbb4a55dd7abc95e6b9094f8fa9d5c  gcc/testsuite/g++.dg/tree-ssa/final1.C
  e7acf0a7b027c556c76317572440f052  gcc/testsuite/g++.dg/tree-ssa/final2.C
  3c696786eeb4bd40f02526c5787fb676  gcc/testsuite/g++.dg/tree-ssa/final3.C
*************** bca63426f4323897c7869d093f089d80  gcc/te
*** 29928,29939 ****
  9c918af3cab5a77ccdb922ddbdb9c126  gcc/testsuite/g++.dg/tree-ssa/forwprop-switch.C
  64c09190e248a41f55f2136c28fdea69  gcc/testsuite/g++.dg/tree-ssa/fwprop-align.C
  8bb6414e80e2b42a36361d40348b3534  gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C
! 9c860c59e311ec723e48287cbf69e92f  gcc/testsuite/g++.dg/tree-ssa/initlist-opt1.C
! a744d003f306505805ec4ee725fa7587  gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C
! d12a46c580eb9d4dc235d3622d0f89b4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C
  344af76d3b15e1c2e76b8f3ad2b88ab4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt4.C
! 0a86e852f7127e501b49c29fb075da42  gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
  e6020c0bcc63f86c01753979ab959e9c  gcc/testsuite/g++.dg/tree-ssa/initlist-opt6.C
  127599cd2fc99b9d009cc2cd103b0b2e  gcc/testsuite/g++.dg/tree-ssa/inline-1.C
  05007feb9baa282cc5097a6f8208ee56  gcc/testsuite/g++.dg/tree-ssa/inline-2.C
  dc09af43ca9827d657db7f2b91897bea  gcc/testsuite/g++.dg/tree-ssa/inline-3.C
--- 31988,32001 ----
  9c918af3cab5a77ccdb922ddbdb9c126  gcc/testsuite/g++.dg/tree-ssa/forwprop-switch.C
  64c09190e248a41f55f2136c28fdea69  gcc/testsuite/g++.dg/tree-ssa/fwprop-align.C
  8bb6414e80e2b42a36361d40348b3534  gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C
! 829843ec1433f009b82cca8967522aa5  gcc/testsuite/g++.dg/tree-ssa/ifcombine-ccmp-1.C
! c67c5557f292a4815216b54525e0139f  gcc/testsuite/g++.dg/tree-ssa/initlist-opt1.C
! f5314dcb544183eeec3980dfa70471b5  gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C
! 23f2ba59a842b3c33ee60bbdba3c855d  gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C
  344af76d3b15e1c2e76b8f3ad2b88ab4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt4.C
! 2a21cdb45e7d915cda3cec7dcf1b8d05  gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
  e6020c0bcc63f86c01753979ab959e9c  gcc/testsuite/g++.dg/tree-ssa/initlist-opt6.C
+ f1286ac97f93f603a960ccbf41fec9e9  gcc/testsuite/g++.dg/tree-ssa/initlist-opt7.C
  127599cd2fc99b9d009cc2cd103b0b2e  gcc/testsuite/g++.dg/tree-ssa/inline-1.C
  05007feb9baa282cc5097a6f8208ee56  gcc/testsuite/g++.dg/tree-ssa/inline-2.C
  dc09af43ca9827d657db7f2b91897bea  gcc/testsuite/g++.dg/tree-ssa/inline-3.C
*************** d049885f4d053577c545356b2aed7783  gcc/te
*** 29943,29950 ****
  76675e93b5dd4eea682fcfa8d0151f77  gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C
  7f7f7d6d353f34c98889acc527e3e195  gcc/testsuite/g++.dg/tree-ssa/ldist-1.C
  e48684fba8399ff995984d71ebc63e26  gcc/testsuite/g++.dg/tree-ssa/lifetime-dse1.C
! 9899faa1c78631285ecad43af2fa053d  gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
! 22002bea0053b52eb32ccf47d51c83da  gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
  8a88746bf26b483b92bb27194cb12cb4  gcc/testsuite/g++.dg/tree-ssa/modref-1.C
  c60f58c35051bdf33475572fe6676ded  gcc/testsuite/g++.dg/tree-ssa/new1.C
  15ab0ba34272a9b9cb6f26af6f24d6be  gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C
--- 32005,32012 ----
  76675e93b5dd4eea682fcfa8d0151f77  gcc/testsuite/g++.dg/tree-ssa/ivopts-3.C
  7f7f7d6d353f34c98889acc527e3e195  gcc/testsuite/g++.dg/tree-ssa/ldist-1.C
  e48684fba8399ff995984d71ebc63e26  gcc/testsuite/g++.dg/tree-ssa/lifetime-dse1.C
! 8751bd4974a7134cbf8b6b4fa30f58e3  gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
! eefc6e776fd9a44ba50cd61cd76f04e8  gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
  8a88746bf26b483b92bb27194cb12cb4  gcc/testsuite/g++.dg/tree-ssa/modref-1.C
  c60f58c35051bdf33475572fe6676ded  gcc/testsuite/g++.dg/tree-ssa/new1.C
  15ab0ba34272a9b9cb6f26af6f24d6be  gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C
*************** c8003cf8b272bb11f8a21275b9e5c595  gcc/te
*** 29955,29978 ****
  6474aef48daec343e8355cccf7ae5d56  gcc/testsuite/g++.dg/tree-ssa/phiopt-1.C
  daf046d4911258823d8a9f8947354f8c  gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C
  38a84cee75caf37cd532dd21e3d1fc85  gcc/testsuite/g++.dg/tree-ssa/pr101769.C
! 8b1686b7e8a4861fed6d268a9cf3cf19  gcc/testsuite/g++.dg/tree-ssa/pr101839.C
  7837e8067b44742d47649f2f8b536584  gcc/testsuite/g++.dg/tree-ssa/pr102216-1.C
! 1a99806d72062cb909c91fe385b75643  gcc/testsuite/g++.dg/tree-ssa/pr102216-2.C
  b43892ed3a0294f440ccfdc4017d74ed  gcc/testsuite/g++.dg/tree-ssa/pr103168.C
! 4f4b9d993ed3cb39bcc4613af0e55332  gcc/testsuite/g++.dg/tree-ssa/pr104529.C
! 0da5cc881991f624b7192f3ce86049c0  gcc/testsuite/g++.dg/tree-ssa/pr105820.c
  20608e2a01aa2fdaa469216feb542314  gcc/testsuite/g++.dg/tree-ssa/pr106077.C
  125bd6cdf57dfa5b982bd279950874f3  gcc/testsuite/g++.dg/tree-ssa/pr106922.C
  f95e009eb80810faddca573e232d899e  gcc/testsuite/g++.dg/tree-ssa/pr106936.C
  473b75bc40f72c03a042a150d43cb69b  gcc/testsuite/g++.dg/tree-ssa/pr107206.C
  5f9aef2211a5b0981f2a79d22debe366  gcc/testsuite/g++.dg/tree-ssa/pr107876.C
! 5d7cb9ecbb6b984aec18369389c1a95e  gcc/testsuite/g++.dg/tree-ssa/pr109849.C
  6251f80b5a27a83b79ac65cc3a6f662b  gcc/testsuite/g++.dg/tree-ssa/pr112711.C
  482a64ed60783060cd1097d55e09aa68  gcc/testsuite/g++.dg/tree-ssa/pr13146.C
  e92faf794746371f0e92e8a68244ff5e  gcc/testsuite/g++.dg/tree-ssa/pr13954.C
! 316b32deb2433fa7d0e4ad1c5a62804b  gcc/testsuite/g++.dg/tree-ssa/pr14703.C
  476b36f29595110e4a1f8f94b1ddb030  gcc/testsuite/g++.dg/tree-ssa/pr14814.C
! 62600822d88828e393d9efe9f65e0fb1  gcc/testsuite/g++.dg/tree-ssa/pr15791-1.C
  44258efc32e7a0390a4fd5cba4148adc  gcc/testsuite/g++.dg/tree-ssa/pr15791-2.C
  16e20f08db0193d791f4de44a8b9973c  gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C
  4deb8b39309f986a2d3d6334eff1c343  gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C
--- 32017,32057 ----
  6474aef48daec343e8355cccf7ae5d56  gcc/testsuite/g++.dg/tree-ssa/phiopt-1.C
  daf046d4911258823d8a9f8947354f8c  gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C
  38a84cee75caf37cd532dd21e3d1fc85  gcc/testsuite/g++.dg/tree-ssa/pr101769.C
! e1e50852a924e34754c40ffd1bfd3ac2  gcc/testsuite/g++.dg/tree-ssa/pr101839.C
  7837e8067b44742d47649f2f8b536584  gcc/testsuite/g++.dg/tree-ssa/pr102216-1.C
! d2fe655319e66549e851038b8f2adea5  gcc/testsuite/g++.dg/tree-ssa/pr102216-2.C
  b43892ed3a0294f440ccfdc4017d74ed  gcc/testsuite/g++.dg/tree-ssa/pr103168.C
! 515b311fdb2349e9422a451e2350a9a4  gcc/testsuite/g++.dg/tree-ssa/pr103660-0.C
! 2e4b8a6e19a3166c4f751c477ca5b9a5  gcc/testsuite/g++.dg/tree-ssa/pr103660-1.C
! 13f07b9cc8fcef1042cdd7b40e9f79e4  gcc/testsuite/g++.dg/tree-ssa/pr103660-2.C
! 246e2447a2b4014772a9ae0f683b3eae  gcc/testsuite/g++.dg/tree-ssa/pr103660-3.C
! 9c09679d2eae46eaa87a80564c7490ab  gcc/testsuite/g++.dg/tree-ssa/pr103660-4.C
! a311d1ab8635e5105a1bbfc32c26cf9c  gcc/testsuite/g++.dg/tree-ssa/pr104529.C
! 41cafe0b3f22925ff5a32faaefb86140  gcc/testsuite/g++.dg/tree-ssa/pr105820.C
  20608e2a01aa2fdaa469216feb542314  gcc/testsuite/g++.dg/tree-ssa/pr106077.C
  125bd6cdf57dfa5b982bd279950874f3  gcc/testsuite/g++.dg/tree-ssa/pr106922.C
  f95e009eb80810faddca573e232d899e  gcc/testsuite/g++.dg/tree-ssa/pr106936.C
  473b75bc40f72c03a042a150d43cb69b  gcc/testsuite/g++.dg/tree-ssa/pr107206.C
  5f9aef2211a5b0981f2a79d22debe366  gcc/testsuite/g++.dg/tree-ssa/pr107876.C
! 5aa48176958fe3f1351032947028928b  gcc/testsuite/g++.dg/tree-ssa/pr109442.C
! f4f07a8666ff936288fa407bf0fed911  gcc/testsuite/g++.dg/tree-ssa/pr109849.C
! 4ddff8593905cb178eb50a3ea8c2e777  gcc/testsuite/g++.dg/tree-ssa/pr110137-1.C
! 355027cc58503e05e29800bf7c36a1a4  gcc/testsuite/g++.dg/tree-ssa/pr110137-2.C
! dc6a238805ecdc2ab0fc81b61b0d8518  gcc/testsuite/g++.dg/tree-ssa/pr110137-3.C
! 9f8efa56edaac04ff0c8319a7ad0f3a7  gcc/testsuite/g++.dg/tree-ssa/pr110137-4.C
! a29ee53ea6083d50477755543cd9a114  gcc/testsuite/g++.dg/tree-ssa/pr110819.C
! a96998418d91d4b5dc3f731cea3de4a2  gcc/testsuite/g++.dg/tree-ssa/pr111150.C
  6251f80b5a27a83b79ac65cc3a6f662b  gcc/testsuite/g++.dg/tree-ssa/pr112711.C
+ 8e86c1b355d9ed5ad78d7f6211d5f327  gcc/testsuite/g++.dg/tree-ssa/pr114589.C
+ 1ed2f7f5509c5567092c5b86b727d17e  gcc/testsuite/g++.dg/tree-ssa/pr115275.C
+ 1865c2c1e91d7842887b0fbc0a5a8cbc  gcc/testsuite/g++.dg/tree-ssa/pr116868.C
+ 0c911fc6a4e7b6d42fea1d5986454ce2  gcc/testsuite/g++.dg/tree-ssa/pr117123.C
+ 284302237efd60e1d517c0925cad7644  gcc/testsuite/g++.dg/tree-ssa/pr118924.C
  482a64ed60783060cd1097d55e09aa68  gcc/testsuite/g++.dg/tree-ssa/pr13146.C
  e92faf794746371f0e92e8a68244ff5e  gcc/testsuite/g++.dg/tree-ssa/pr13954.C
! 8027add8ad61fc532147eff30549380f  gcc/testsuite/g++.dg/tree-ssa/pr14703.C
  476b36f29595110e4a1f8f94b1ddb030  gcc/testsuite/g++.dg/tree-ssa/pr14814.C
! 54ed58bfffb76dadc37e11ecb4017d02  gcc/testsuite/g++.dg/tree-ssa/pr15791-1.C
  44258efc32e7a0390a4fd5cba4148adc  gcc/testsuite/g++.dg/tree-ssa/pr15791-2.C
  16e20f08db0193d791f4de44a8b9973c  gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C
  4deb8b39309f986a2d3d6334eff1c343  gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C
*************** f33ac668c143cc57d14f63e38f6b08a7  gcc/te
*** 29982,30000 ****
  84bb302e221d8cd2317c6c09441d615f  gcc/testsuite/g++.dg/tree-ssa/pr17400.C
  3f50ad6afe1400d17f21f8b61d4be1a6  gcc/testsuite/g++.dg/tree-ssa/pr17517.C
  277913d3349eb1a5dc1fe50184cf0314  gcc/testsuite/g++.dg/tree-ssa/pr18178.C
! cf874b908cc81a330bf1dc8d82ad702f  gcc/testsuite/g++.dg/tree-ssa/pr19476-1.C
! f53945060478df53259a791ba3db44ad  gcc/testsuite/g++.dg/tree-ssa/pr19476-2.C
! c43cfad32e1f95b62f07c0a51ef32767  gcc/testsuite/g++.dg/tree-ssa/pr19476-3.C
! 0c8ffb47341559e8e0a617883de34f18  gcc/testsuite/g++.dg/tree-ssa/pr19476-4.C
  fc543c41c4e9412257ec7327d35091bd  gcc/testsuite/g++.dg/tree-ssa/pr19476-5.C
  453082794159c88431f6e48f0da2aea3  gcc/testsuite/g++.dg/tree-ssa/pr19476-6.C
  aebde03bd95152e23e293110d01cc55f  gcc/testsuite/g++.dg/tree-ssa/pr19476-7.C
  7faa1b335a071fd2ae1fc67590ce21d7  gcc/testsuite/g++.dg/tree-ssa/pr19637.C
! a425019d3ee630ab12baac6d527c530b  gcc/testsuite/g++.dg/tree-ssa/pr19786.C
  284eaec9bac51536b4d1aad2a6ae64fb  gcc/testsuite/g++.dg/tree-ssa/pr19807.C
  f05b30134e85add64a7b367e35828cf5  gcc/testsuite/g++.dg/tree-ssa/pr19952.C
  22324561762dc41c7dbd5cf1400cfe5b  gcc/testsuite/g++.dg/tree-ssa/pr20280.C
! 41846b62265c3bb2f5a736155a172f33  gcc/testsuite/g++.dg/tree-ssa/pr20458.C
  ebc744114f159114473ef7dfa2b07535  gcc/testsuite/g++.dg/tree-ssa/pr20489.C
  40a4cb93d3e506b171fb153b32fdf949  gcc/testsuite/g++.dg/tree-ssa/pr20920.C
  c6f234d3623212f40d78fad6b87310ad  gcc/testsuite/g++.dg/tree-ssa/pr20963.C
--- 32061,32079 ----
  84bb302e221d8cd2317c6c09441d615f  gcc/testsuite/g++.dg/tree-ssa/pr17400.C
  3f50ad6afe1400d17f21f8b61d4be1a6  gcc/testsuite/g++.dg/tree-ssa/pr17517.C
  277913d3349eb1a5dc1fe50184cf0314  gcc/testsuite/g++.dg/tree-ssa/pr18178.C
! 58a608a1f99176f442187ce8736cee3d  gcc/testsuite/g++.dg/tree-ssa/pr19476-1.C
! a31fc5d06b7ea5654723591cffa4ce28  gcc/testsuite/g++.dg/tree-ssa/pr19476-2.C
! 94048f582477843fdce4b5f5dfd75e55  gcc/testsuite/g++.dg/tree-ssa/pr19476-3.C
! 75b0b92ac2cd649fd9044e7e4edb528e  gcc/testsuite/g++.dg/tree-ssa/pr19476-4.C
  fc543c41c4e9412257ec7327d35091bd  gcc/testsuite/g++.dg/tree-ssa/pr19476-5.C
  453082794159c88431f6e48f0da2aea3  gcc/testsuite/g++.dg/tree-ssa/pr19476-6.C
  aebde03bd95152e23e293110d01cc55f  gcc/testsuite/g++.dg/tree-ssa/pr19476-7.C
  7faa1b335a071fd2ae1fc67590ce21d7  gcc/testsuite/g++.dg/tree-ssa/pr19637.C
! 6fb9988bc3f8e3408a261f73359f4ed1  gcc/testsuite/g++.dg/tree-ssa/pr19786.C
  284eaec9bac51536b4d1aad2a6ae64fb  gcc/testsuite/g++.dg/tree-ssa/pr19807.C
  f05b30134e85add64a7b367e35828cf5  gcc/testsuite/g++.dg/tree-ssa/pr19952.C
  22324561762dc41c7dbd5cf1400cfe5b  gcc/testsuite/g++.dg/tree-ssa/pr20280.C
! 854f9e1092f75741f13e7c3d9eeb9517  gcc/testsuite/g++.dg/tree-ssa/pr20458.C
  ebc744114f159114473ef7dfa2b07535  gcc/testsuite/g++.dg/tree-ssa/pr20489.C
  40a4cb93d3e506b171fb153b32fdf949  gcc/testsuite/g++.dg/tree-ssa/pr20920.C
  c6f234d3623212f40d78fad6b87310ad  gcc/testsuite/g++.dg/tree-ssa/pr20963.C
*************** e2c24d55a6b2e21cfe1781dded2f3465  gcc/te
*** 30073,30079 ****
  bf024d05ee739cc11776ea4df13e3e55  gcc/testsuite/g++.dg/tree-ssa/pr44914.C
  96a471b3606608b932016a19f1c0ba4f  gcc/testsuite/g++.dg/tree-ssa/pr45453.C
  4cba7d5b509352db7bc78ba73db61313  gcc/testsuite/g++.dg/tree-ssa/pr45605.C
! b9485492461c48ebd2bb0ed7c80fca4e  gcc/testsuite/g++.dg/tree-ssa/pr46228.C
  7b0e4882ed9e6e78fb17c21e24090631  gcc/testsuite/g++.dg/tree-ssa/pr46734.C
  248739916e15886a0a5ff7d34a13f30e  gcc/testsuite/g++.dg/tree-ssa/pr46987.C
  17b2dd8d2a9a3ac4de6f0295ef166de9  gcc/testsuite/g++.dg/tree-ssa/pr47707.C
--- 32152,32158 ----
  bf024d05ee739cc11776ea4df13e3e55  gcc/testsuite/g++.dg/tree-ssa/pr44914.C
  96a471b3606608b932016a19f1c0ba4f  gcc/testsuite/g++.dg/tree-ssa/pr45453.C
  4cba7d5b509352db7bc78ba73db61313  gcc/testsuite/g++.dg/tree-ssa/pr45605.C
! 82b6734cfeb0093904545dc62dc70442  gcc/testsuite/g++.dg/tree-ssa/pr46228.C
  7b0e4882ed9e6e78fb17c21e24090631  gcc/testsuite/g++.dg/tree-ssa/pr46734.C
  248739916e15886a0a5ff7d34a13f30e  gcc/testsuite/g++.dg/tree-ssa/pr46987.C
  17b2dd8d2a9a3ac4de6f0295ef166de9  gcc/testsuite/g++.dg/tree-ssa/pr47707.C
*************** deec61f943ce8761e57e704eca7387bf  gcc/te
*** 30085,30103 ****
  a82ef6cbe78155176eca6d640870c3a5  gcc/testsuite/g++.dg/tree-ssa/pr54515.C
  593421a5d3ebb23b2a8557b822cdedc8  gcc/testsuite/g++.dg/tree-ssa/pr57380.C
  aede2b8b0e588c69fda0fe198997fde3  gcc/testsuite/g++.dg/tree-ssa/pr58404.C
  91a1f7d15ec818113b5e750ce336fdfe  gcc/testsuite/g++.dg/tree-ssa/pr61009.C
  71bb74bb806493b58a3b664f2347b63c  gcc/testsuite/g++.dg/tree-ssa/pr61034.C
! 3ab3bdd688450569b259541fd67518e3  gcc/testsuite/g++.dg/tree-ssa/pr63841.C
  a8fec5c2428ff5aa3f865ba34c0b76b8  gcc/testsuite/g++.dg/tree-ssa/pr66726.C
  38167f9e66a260f81d2c2398bff67d4d  gcc/testsuite/g++.dg/tree-ssa/pr68760.C
! 28e3b48a8266ba33af53cb3d6bf4fa32  gcc/testsuite/g++.dg/tree-ssa/pr69336.C
  5d11e3a7158850be133a6ba2be17a10b  gcc/testsuite/g++.dg/tree-ssa/pr69547.C
  29a716065afe126c9fcc9a895a941c26  gcc/testsuite/g++.dg/tree-ssa/pr70171.C
  815c193d3fa9c0ad974dcb886f636cf1  gcc/testsuite/g++.dg/tree-ssa/pr77943.C
! 0c275c07554a7eb95a28910de6641cec  gcc/testsuite/g++.dg/tree-ssa/pr78687.C
! a51f5b92849ce1d0cdf4ba95ddc138d6  gcc/testsuite/g++.dg/tree-ssa/pr78847.C
  4dd9b463d938a2a49979c117342e2bdd  gcc/testsuite/g++.dg/tree-ssa/pr79159.C
  d3522c1a0ee5ce4a75cee9a89f394737  gcc/testsuite/g++.dg/tree-ssa/pr80293.C
  f8e59bfb825e83395c2fc6015cf29cbe  gcc/testsuite/g++.dg/tree-ssa/pr81408.C
  8b26e12d4d19370d3975bee970535253  gcc/testsuite/g++.dg/tree-ssa/pr81702.C
  07328ee6469ac64e4bd4807c2a72bd66  gcc/testsuite/g++.dg/tree-ssa/pr81719.C
--- 32164,32184 ----
  a82ef6cbe78155176eca6d640870c3a5  gcc/testsuite/g++.dg/tree-ssa/pr54515.C
  593421a5d3ebb23b2a8557b822cdedc8  gcc/testsuite/g++.dg/tree-ssa/pr57380.C
  aede2b8b0e588c69fda0fe198997fde3  gcc/testsuite/g++.dg/tree-ssa/pr58404.C
+ a29ee53ea6083d50477755543cd9a114  gcc/testsuite/g++.dg/tree-ssa/pr58483.C
  91a1f7d15ec818113b5e750ce336fdfe  gcc/testsuite/g++.dg/tree-ssa/pr61009.C
  71bb74bb806493b58a3b664f2347b63c  gcc/testsuite/g++.dg/tree-ssa/pr61034.C
! 553408007ce5848f01d3beaeaaf68f8f  gcc/testsuite/g++.dg/tree-ssa/pr63841.C
  a8fec5c2428ff5aa3f865ba34c0b76b8  gcc/testsuite/g++.dg/tree-ssa/pr66726.C
  38167f9e66a260f81d2c2398bff67d4d  gcc/testsuite/g++.dg/tree-ssa/pr68760.C
! 6361658af7734c662fe7f8dae220f19c  gcc/testsuite/g++.dg/tree-ssa/pr69336.C
  5d11e3a7158850be133a6ba2be17a10b  gcc/testsuite/g++.dg/tree-ssa/pr69547.C
  29a716065afe126c9fcc9a895a941c26  gcc/testsuite/g++.dg/tree-ssa/pr70171.C
  815c193d3fa9c0ad974dcb886f636cf1  gcc/testsuite/g++.dg/tree-ssa/pr77943.C
! d76420e1226aa1468c75b30c5f6c8137  gcc/testsuite/g++.dg/tree-ssa/pr78687.C
! c495609cd191f9864eec82a6009c7c1b  gcc/testsuite/g++.dg/tree-ssa/pr78847.C
  4dd9b463d938a2a49979c117342e2bdd  gcc/testsuite/g++.dg/tree-ssa/pr79159.C
  d3522c1a0ee5ce4a75cee9a89f394737  gcc/testsuite/g++.dg/tree-ssa/pr80293.C
+ b76ee331aeace06b4b2afd3606f96c82  gcc/testsuite/g++.dg/tree-ssa/pr80331.C
  f8e59bfb825e83395c2fc6015cf29cbe  gcc/testsuite/g++.dg/tree-ssa/pr81408.C
  8b26e12d4d19370d3975bee970535253  gcc/testsuite/g++.dg/tree-ssa/pr81702.C
  07328ee6469ac64e4bd4807c2a72bd66  gcc/testsuite/g++.dg/tree-ssa/pr81719.C
*************** c0b65a34728bd0641ed11250d156dd96  gcc/te
*** 30109,30123 ****
  33c3ca116bd47b630a440a6f2c7764db  gcc/testsuite/g++.dg/tree-ssa/pr86544.C
  b275e1ed3abd90cc7e8e421e8c6062b9  gcc/testsuite/g++.dg/tree-ssa/pr87008.C
  cfcb017784f2c8d78d4dc8299526d486  gcc/testsuite/g++.dg/tree-ssa/pr87436.C
  ea4e143932bfcde8a35c6a9f47ca6cde  gcc/testsuite/g++.dg/tree-ssa/pr87686.C
  3994473d87cf2cf8e4060f87f4631734  gcc/testsuite/g++.dg/tree-ssa/pr8781.C
! 4587cee8b1ec1890d7b35d05a9b89cad  gcc/testsuite/g++.dg/tree-ssa/pr88152-1.C
  17e69860f1e7b4c26b8a5dbaecf9adb8  gcc/testsuite/g++.dg/tree-ssa/pr88152-2.C
! 9412ad3ca0bc1c10ab0199a2871662d1  gcc/testsuite/g++.dg/tree-ssa/pr88797.C
  2650e6ee3cdee1000d24ba2bb4b5fc07  gcc/testsuite/g++.dg/tree-ssa/pr89698.C
  1f998bcf66238aaf5155a2aca15ee3b0  gcc/testsuite/g++.dg/tree-ssa/pr89802.C
  b866758c2fd516b4dacfd775ceebf59a  gcc/testsuite/g++.dg/tree-ssa/pr90078.C
! d9e572ac70847e4ef80b8b3b7e595d60  gcc/testsuite/g++.dg/tree-ssa/pr90883.C
  9c68536b936415a2c855dd49016280dc  gcc/testsuite/g++.dg/tree-ssa/pr92751.C
  f7f91db98b82775383e3b70a8d3b498d  gcc/testsuite/g++.dg/tree-ssa/pr93516.C
  b510682a84117ab69d6d6fc7663c13eb  gcc/testsuite/g++.dg/tree-ssa/pr93667.C
--- 32190,32205 ----
  33c3ca116bd47b630a440a6f2c7764db  gcc/testsuite/g++.dg/tree-ssa/pr86544.C
  b275e1ed3abd90cc7e8e421e8c6062b9  gcc/testsuite/g++.dg/tree-ssa/pr87008.C
  cfcb017784f2c8d78d4dc8299526d486  gcc/testsuite/g++.dg/tree-ssa/pr87436.C
+ cf6d7cf613841934a0f174773729fec8  gcc/testsuite/g++.dg/tree-ssa/pr87502.C
  ea4e143932bfcde8a35c6a9f47ca6cde  gcc/testsuite/g++.dg/tree-ssa/pr87686.C
  3994473d87cf2cf8e4060f87f4631734  gcc/testsuite/g++.dg/tree-ssa/pr8781.C
! 34be04a2a8ccec91647967353a92f38e  gcc/testsuite/g++.dg/tree-ssa/pr88152-1.C
  17e69860f1e7b4c26b8a5dbaecf9adb8  gcc/testsuite/g++.dg/tree-ssa/pr88152-2.C
! f7ebb73b88a3c39c92da3ddb3316bc02  gcc/testsuite/g++.dg/tree-ssa/pr88797.C
  2650e6ee3cdee1000d24ba2bb4b5fc07  gcc/testsuite/g++.dg/tree-ssa/pr89698.C
  1f998bcf66238aaf5155a2aca15ee3b0  gcc/testsuite/g++.dg/tree-ssa/pr89802.C
  b866758c2fd516b4dacfd775ceebf59a  gcc/testsuite/g++.dg/tree-ssa/pr90078.C
! 9dd91fa513212bd9185801abe298b687  gcc/testsuite/g++.dg/tree-ssa/pr90883.C
  9c68536b936415a2c855dd49016280dc  gcc/testsuite/g++.dg/tree-ssa/pr92751.C
  f7f91db98b82775383e3b70a8d3b498d  gcc/testsuite/g++.dg/tree-ssa/pr93516.C
  b510682a84117ab69d6d6fc7663c13eb  gcc/testsuite/g++.dg/tree-ssa/pr93667.C
*************** b510682a84117ab69d6d6fc7663c13eb  gcc/te
*** 30125,30135 ****
  3d6952e95a1d28016364fe2ef5108b78  gcc/testsuite/g++.dg/tree-ssa/pr93940.C
  e3fc8e52e34eeab2a0ee22888a080920  gcc/testsuite/g++.dg/tree-ssa/pr94224.C
  6fb2fc9390aae4ab8ae1323b158d6706  gcc/testsuite/g++.dg/tree-ssa/pr94403.C
! 898168c15a8e46be3b42ea4b0dae43a7  gcc/testsuite/g++.dg/tree-ssa/pr95638.C
  8cb82713ae80f84d454074acf0670135  gcc/testsuite/g++.dg/tree-ssa/pr95649.C
  e53cec97097a9dc8117c2effbf4ea8d5  gcc/testsuite/g++.dg/tree-ssa/pr96930.C
  632b446e932f27efac2329d2234eb487  gcc/testsuite/g++.dg/tree-ssa/pr96979.C
  070d15097a92bcf12a8f98ecaa8b021c  gcc/testsuite/g++.dg/tree-ssa/pr97736.C
  b8201bfa7e55c2eb8fbf876e25c8e4a4  gcc/testsuite/g++.dg/tree-ssa/pred-1.C
  03a91158b9e309f0b4795ad80f62f016  gcc/testsuite/g++.dg/tree-ssa/pta-delete-1.C
  cbfe7d75cb5b5c7850564b006625c5e3  gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
--- 32207,32219 ----
  3d6952e95a1d28016364fe2ef5108b78  gcc/testsuite/g++.dg/tree-ssa/pr93940.C
  e3fc8e52e34eeab2a0ee22888a080920  gcc/testsuite/g++.dg/tree-ssa/pr94224.C
  6fb2fc9390aae4ab8ae1323b158d6706  gcc/testsuite/g++.dg/tree-ssa/pr94403.C
! e00458ee3b348a8ddb1466158e1af7b0  gcc/testsuite/g++.dg/tree-ssa/pr95638.C
  8cb82713ae80f84d454074acf0670135  gcc/testsuite/g++.dg/tree-ssa/pr95649.C
  e53cec97097a9dc8117c2effbf4ea8d5  gcc/testsuite/g++.dg/tree-ssa/pr96930.C
+ 877a6ef766f79122bfeafff1d9e68c6e  gcc/testsuite/g++.dg/tree-ssa/pr96945.C
  632b446e932f27efac2329d2234eb487  gcc/testsuite/g++.dg/tree-ssa/pr96979.C
  070d15097a92bcf12a8f98ecaa8b021c  gcc/testsuite/g++.dg/tree-ssa/pr97736.C
+ a9b57d67f7b86dda8e925205f9d81b12  gcc/testsuite/g++.dg/tree-ssa/pr98265.C
  b8201bfa7e55c2eb8fbf876e25c8e4a4  gcc/testsuite/g++.dg/tree-ssa/pred-1.C
  03a91158b9e309f0b4795ad80f62f016  gcc/testsuite/g++.dg/tree-ssa/pta-delete-1.C
  cbfe7d75cb5b5c7850564b006625c5e3  gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
*************** cbba22e9568932c7e9798b4143e8babf  gcc/te
*** 30147,30152 ****
--- 32231,32237 ----
  96f8700e9d4c1998c5e9b1d7fb20edd1  gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C
  3fc97853b7f5a33a82d43b9c8b97e80a  gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C
  21d667243f1873cc74a1060b9e5a0f15  gcc/testsuite/g++.dg/tree-ssa/ssa-store-ccp-1.C
+ 953a8a51c8a8a352b27ca078389cd3a7  gcc/testsuite/g++.dg/tree-ssa/string-1.C
  23df56c1ec29f9a5d4f481355d17c3dc  gcc/testsuite/g++.dg/tree-ssa/strlenopt-1.C
  948d00fc979cc2bd7b0f86e83a4eb496  gcc/testsuite/g++.dg/tree-ssa/strlenopt-2.C
  2a5935f325533fa199bc7f5e3b2b36d5  gcc/testsuite/g++.dg/tree-ssa/tail-call-1.C
*************** cd932ca55aa9252a2188bb383ac82ed7  gcc/te
*** 30167,30173 ****
  96f255f38a0cb7c1f48e01e6e96d0abf  gcc/testsuite/g++.dg/tsan/pr80110.C
  ba8b56e337f98c3bdfc0402e0dac484a  gcc/testsuite/g++.dg/tsan/pr88018.C
  c94bb7f244d0c463a178069456ab95ef  gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
! eee06508377c6ba62ec60f9c504fd84f  gcc/testsuite/g++.dg/tsan/tsan.exp
  1048d0e6a3ca80d3b4720a445847e7cb  gcc/testsuite/g++.dg/tsan/tsan_barrier.h
  4a8a525549940ddd77b19875ffb1bcc6  gcc/testsuite/g++.dg/tsan/vptr_benign_race.C
  580f9f0da39034a82858b2ac3acfb1dc  gcc/testsuite/g++.dg/tsan/vptr_harmful_race.C
--- 32252,32258 ----
  96f255f38a0cb7c1f48e01e6e96d0abf  gcc/testsuite/g++.dg/tsan/pr80110.C
  ba8b56e337f98c3bdfc0402e0dac484a  gcc/testsuite/g++.dg/tsan/pr88018.C
  c94bb7f244d0c463a178069456ab95ef  gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
! d48a28dd6350e949b9aaf79a30ed8a0a  gcc/testsuite/g++.dg/tsan/tsan.exp
  1048d0e6a3ca80d3b4720a445847e7cb  gcc/testsuite/g++.dg/tsan/tsan_barrier.h
  4a8a525549940ddd77b19875ffb1bcc6  gcc/testsuite/g++.dg/tsan/vptr_benign_race.C
  580f9f0da39034a82858b2ac3acfb1dc  gcc/testsuite/g++.dg/tsan/vptr_harmful_race.C
*************** ebc4dd8d7b9c346d612ab748d0d8bda0  gcc/te
*** 30197,30202 ****
--- 32282,32289 ----
  80dcb1a17f65b63cbfe2e3509439563c  gcc/testsuite/g++.dg/ubsan/pr101210.C
  ad6c0b4132032f21f64bfdd4836d3313  gcc/testsuite/g++.dg/ubsan/pr105093.C
  59f2687e6719ef7d3d19b4de0e99a075  gcc/testsuite/g++.dg/ubsan/pr105729.C
+ 06fb5e3c91f4d1b4f58ee978dd2b4b30  gcc/testsuite/g++.dg/ubsan/pr116449.C
+ a9c7210a5fb28a26cd54ad5ce0872a53  gcc/testsuite/g++.dg/ubsan/pr117259.C
  a654df71119821a4303cc9fe0501191b  gcc/testsuite/g++.dg/ubsan/pr59250.C
  420a6623146bb014dc1310134356d81f  gcc/testsuite/g++.dg/ubsan/pr59306.C
  79755a51c3cbb97ff48bd411272f6b08  gcc/testsuite/g++.dg/ubsan/pr59331.C
*************** f79c5c3fe416583c001d6aaea7674732  gcc/te
*** 30206,30212 ****
  69f588f67ecc143557f50a8f217e20fc  gcc/testsuite/g++.dg/ubsan/pr61272.C
  f9e7d9219975e0613b7d53ed55c87efe  gcc/testsuite/g++.dg/ubsan/pr63813.C
  a84e2582a036f0562ca82b54e5c2ead4  gcc/testsuite/g++.dg/ubsan/pr63913.C
! c0d7412ee5785e88307a89ffd90e53be  gcc/testsuite/g++.dg/ubsan/pr63956.C
  905e96bca11e38275e3c78595acfb8bc  gcc/testsuite/g++.dg/ubsan/pr64632.C
  ce25b7039c57de8705414023fc9b982c  gcc/testsuite/g++.dg/ubsan/pr64717-1.C
  831fc21e28710642f430322c48eabad9  gcc/testsuite/g++.dg/ubsan/pr64717-2.C
--- 32293,32299 ----
  69f588f67ecc143557f50a8f217e20fc  gcc/testsuite/g++.dg/ubsan/pr61272.C
  f9e7d9219975e0613b7d53ed55c87efe  gcc/testsuite/g++.dg/ubsan/pr63813.C
  a84e2582a036f0562ca82b54e5c2ead4  gcc/testsuite/g++.dg/ubsan/pr63913.C
! 00da5a8ddb28b487aedff69e0961aa22  gcc/testsuite/g++.dg/ubsan/pr63956.C
  905e96bca11e38275e3c78595acfb8bc  gcc/testsuite/g++.dg/ubsan/pr64632.C
  ce25b7039c57de8705414023fc9b982c  gcc/testsuite/g++.dg/ubsan/pr64717-1.C
  831fc21e28710642f430322c48eabad9  gcc/testsuite/g++.dg/ubsan/pr64717-2.C
*************** ceefdce8629af65f842f11d82ad86264  gcc/te
*** 30274,30280 ****
  a512113af0ac3172f2466ee3a8c93259  gcc/testsuite/g++.dg/ubsan/static-init-1.C
  b1a38b150fef25f02239b481561ad148  gcc/testsuite/g++.dg/ubsan/static-init-2.C
  76c5d965e0f0683fddef3a001be6193c  gcc/testsuite/g++.dg/ubsan/static-init-3.C
! a6ef945ff3afb135bba3fbb8243b3822  gcc/testsuite/g++.dg/ubsan/ubsan.exp
  cc0dd6c9b1afc04ca7636be396fec990  gcc/testsuite/g++.dg/ubsan/vla-1.C
  f36d3df10de7d616fdeaf6bd08060535  gcc/testsuite/g++.dg/ubsan/vla-2.C
  5217088a7dd4248f6e9f0170ee0f262b  gcc/testsuite/g++.dg/ubsan/vptr-1.C
--- 32361,32367 ----
  a512113af0ac3172f2466ee3a8c93259  gcc/testsuite/g++.dg/ubsan/static-init-1.C
  b1a38b150fef25f02239b481561ad148  gcc/testsuite/g++.dg/ubsan/static-init-2.C
  76c5d965e0f0683fddef3a001be6193c  gcc/testsuite/g++.dg/ubsan/static-init-3.C
! e701f657e1f1ad66dd8c6ac21f685208  gcc/testsuite/g++.dg/ubsan/ubsan.exp
  cc0dd6c9b1afc04ca7636be396fec990  gcc/testsuite/g++.dg/ubsan/vla-1.C
  f36d3df10de7d616fdeaf6bd08060535  gcc/testsuite/g++.dg/ubsan/vla-2.C
  5217088a7dd4248f6e9f0170ee0f262b  gcc/testsuite/g++.dg/ubsan/vptr-1.C
*************** be256b721153266207c19c200b69e403  gcc/te
*** 30296,30302 ****
  46d3d7c5be428e6ff1218aa017f38d54  gcc/testsuite/g++.dg/ubsan/vptr-8.C
  d84ccb64e326e6f939102655055da75e  gcc/testsuite/g++.dg/ubsan/vptr-9.C
  edb153ed13cda8739722c1dec0db46c7  gcc/testsuite/g++.dg/uninit-pr105646.C
! 38ddc42ac8ea24c4180b07e3b5b6c41b  gcc/testsuite/g++.dg/uninit-pr105937.C
  e56682f2381efdb19cee3b25fd54bb34  gcc/testsuite/g++.dg/uninit-pr106722-1.C
  d2e64a4a0ecb590f25f40402647fb5a3  gcc/testsuite/g++.dg/uninit-pr74762.C
  bc857364cab52e462e2e718cd7fefaa8  gcc/testsuite/g++.dg/uninit-pred-1_a.C
--- 32383,32389 ----
  46d3d7c5be428e6ff1218aa017f38d54  gcc/testsuite/g++.dg/ubsan/vptr-8.C
  d84ccb64e326e6f939102655055da75e  gcc/testsuite/g++.dg/ubsan/vptr-9.C
  edb153ed13cda8739722c1dec0db46c7  gcc/testsuite/g++.dg/uninit-pr105646.C
! aab67a3c11bb378e55d401bcd975c4d4  gcc/testsuite/g++.dg/uninit-pr105937.C
  e56682f2381efdb19cee3b25fd54bb34  gcc/testsuite/g++.dg/uninit-pr106722-1.C
  d2e64a4a0ecb590f25f40402647fb5a3  gcc/testsuite/g++.dg/uninit-pr74762.C
  bc857364cab52e462e2e718cd7fefaa8  gcc/testsuite/g++.dg/uninit-pred-1_a.C
*************** f3b08920b6f4d781731cb5137313588c  gcc/te
*** 30314,30325 ****
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
  ec1873d6dd21d2c7cc0b6215931efed0  gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
  bb3b906322f73b1bfddaab3658a0314e  gcc/testsuite/g++.dg/vect/pr102226.cc
! 091450be1a744e77a7f8e0ccd877203d  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
  5297a137025a3614c26b3000c88e12ab  gcc/testsuite/g++.dg/vect/pr102696.cc
  3b8bafeb14080227c305e21d48736908  gcc/testsuite/g++.dg/vect/pr102788.cc
  31e8975bb6e0a9a4f2dbd4cf496dbc6b  gcc/testsuite/g++.dg/vect/pr103494.cc
! 5cc7bcb3384dda5ac9ed1595171888bf  gcc/testsuite/g++.dg/vect/pr105053.cc
  333be91f77cee11284aa46108024ad5e  gcc/testsuite/g++.dg/vect/pr105254.cc
  13bc7912af5a3fc0b482bebcd1a313b8  gcc/testsuite/g++.dg/vect/pr105437.cc
  9228e757c42c560668ce2fcc584c6768  gcc/testsuite/g++.dg/vect/pr106794.cc
--- 32401,32412 ----
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
  ec1873d6dd21d2c7cc0b6215931efed0  gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
  bb3b906322f73b1bfddaab3658a0314e  gcc/testsuite/g++.dg/vect/pr102226.cc
! fe723c4381a898f584795d9e20c58d72  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
  5297a137025a3614c26b3000c88e12ab  gcc/testsuite/g++.dg/vect/pr102696.cc
  3b8bafeb14080227c305e21d48736908  gcc/testsuite/g++.dg/vect/pr102788.cc
  31e8975bb6e0a9a4f2dbd4cf496dbc6b  gcc/testsuite/g++.dg/vect/pr103494.cc
! 7f2d8f603657344874f2c41c32e72a47  gcc/testsuite/g++.dg/vect/pr105053.cc
  333be91f77cee11284aa46108024ad5e  gcc/testsuite/g++.dg/vect/pr105254.cc
  13bc7912af5a3fc0b482bebcd1a313b8  gcc/testsuite/g++.dg/vect/pr105437.cc
  9228e757c42c560668ce2fcc584c6768  gcc/testsuite/g++.dg/vect/pr106794.cc
*************** c378ba928bee729112b705d875e7738f  gcc/te
*** 30330,30336 ****
  a774f9ba94df372c6d30a93f182668b8  gcc/testsuite/g++.dg/vect/pr112793.cc
  917d9d7e1f7b3dec4bc3be8a0e121df9  gcc/testsuite/g++.dg/vect/pr112961.cc
  856046a2a1b7cbd5bfc1768e434b4a1d  gcc/testsuite/g++.dg/vect/pr114464.cc
! 773e298ee48c5b2d8b3d3e61d26d271e  gcc/testsuite/g++.dg/vect/pr115278.cc
  02ab0e7dea4c30ddeaecb971c0b8241e  gcc/testsuite/g++.dg/vect/pr19951.cc
  e7c5a636a280962b70166d1494223f9c  gcc/testsuite/g++.dg/vect/pr21218.cc
  9a0a6f56bdb2cc697abc78c901418a19  gcc/testsuite/g++.dg/vect/pr21734_1.cc
--- 32417,32428 ----
  a774f9ba94df372c6d30a93f182668b8  gcc/testsuite/g++.dg/vect/pr112793.cc
  917d9d7e1f7b3dec4bc3be8a0e121df9  gcc/testsuite/g++.dg/vect/pr112961.cc
  856046a2a1b7cbd5bfc1768e434b4a1d  gcc/testsuite/g++.dg/vect/pr114464.cc
! 53f2f1665d0bd22cbc1735b16ee8dc34  gcc/testsuite/g++.dg/vect/pr115278.cc
! b7574f2c87be7256484ba89a7bb8ec06  gcc/testsuite/g++.dg/vect/pr116241.cc
! 896318e85fcfc326b7db9e92a3e3f106  gcc/testsuite/g++.dg/vect/pr116658.cc
! 1e03af311dcaa23b477b4a5718d84d03  gcc/testsuite/g++.dg/vect/pr116674.cc
! 0ce4b36a20f45df8b6cff16c2a001cca  gcc/testsuite/g++.dg/vect/pr116817.cc
! db187ae2fd0c35306cac339c19f6fcf6  gcc/testsuite/g++.dg/vect/pr117776.cc
  02ab0e7dea4c30ddeaecb971c0b8241e  gcc/testsuite/g++.dg/vect/pr19951.cc
  e7c5a636a280962b70166d1494223f9c  gcc/testsuite/g++.dg/vect/pr21218.cc
  9a0a6f56bdb2cc697abc78c901418a19  gcc/testsuite/g++.dg/vect/pr21734_1.cc
*************** ab2ed8f8903ce284c8fae4fd5c3fc623  gcc/te
*** 30338,30344 ****
  64678e82148d6ddd615a2f78c5736bbf  gcc/testsuite/g++.dg/vect/pr22543.cc
  316093142a5fba134bf3b94e8d8854e8  gcc/testsuite/g++.dg/vect/pr33426-ivdep-2.cc
  7707162cfa9dc8631360eee5e8fd4654  gcc/testsuite/g++.dg/vect/pr33426-ivdep-3.cc
! 04b28cc712f234f7c0ba2a719d1e33a6  gcc/testsuite/g++.dg/vect/pr33426-ivdep-4.cc
  0cd22b69709896e4b5cb7b935cb35945  gcc/testsuite/g++.dg/vect/pr33426-ivdep.cc
  b9654cf3094250bbfcbf3eb545179ab8  gcc/testsuite/g++.dg/vect/pr33834_1.cc
  815cf21933de0776ea2de22d80f904aa  gcc/testsuite/g++.dg/vect/pr33834_2.cc
--- 32430,32436 ----
  64678e82148d6ddd615a2f78c5736bbf  gcc/testsuite/g++.dg/vect/pr22543.cc
  316093142a5fba134bf3b94e8d8854e8  gcc/testsuite/g++.dg/vect/pr33426-ivdep-2.cc
  7707162cfa9dc8631360eee5e8fd4654  gcc/testsuite/g++.dg/vect/pr33426-ivdep-3.cc
! c122c9018c94553a728a76828044ae1f  gcc/testsuite/g++.dg/vect/pr33426-ivdep-4.cc
  0cd22b69709896e4b5cb7b935cb35945  gcc/testsuite/g++.dg/vect/pr33426-ivdep.cc
  b9654cf3094250bbfcbf3eb545179ab8  gcc/testsuite/g++.dg/vect/pr33834_1.cc
  815cf21933de0776ea2de22d80f904aa  gcc/testsuite/g++.dg/vect/pr33834_2.cc
*************** b9654cf3094250bbfcbf3eb545179ab8  gcc/te
*** 30346,30352 ****
  2e2b8dd8b937805b7fd60158c01a2598  gcc/testsuite/g++.dg/vect/pr33860.cc
  f7e00c99dfe5247d1f4e09d61bbe7662  gcc/testsuite/g++.dg/vect/pr33860a.cc
  6527716303c478d80f2e0f2615cd227f  gcc/testsuite/g++.dg/vect/pr36648.cc
! 773b9686259a86422856a8bcf252cee5  gcc/testsuite/g++.dg/vect/pr37143.C
  df0a8be418558aea938e13b5f6a34f0f  gcc/testsuite/g++.dg/vect/pr37174.cc
  89b57c9cc24aec3cfe0e8765cda781bf  gcc/testsuite/g++.dg/vect/pr43771.cc
  a258bcb9560aa25b760a5b93656e7e4e  gcc/testsuite/g++.dg/vect/pr44861.cc
--- 32438,32444 ----
  2e2b8dd8b937805b7fd60158c01a2598  gcc/testsuite/g++.dg/vect/pr33860.cc
  f7e00c99dfe5247d1f4e09d61bbe7662  gcc/testsuite/g++.dg/vect/pr33860a.cc
  6527716303c478d80f2e0f2615cd227f  gcc/testsuite/g++.dg/vect/pr36648.cc
! 773b9686259a86422856a8bcf252cee5  gcc/testsuite/g++.dg/vect/pr37143.cc
  df0a8be418558aea938e13b5f6a34f0f  gcc/testsuite/g++.dg/vect/pr37174.cc
  89b57c9cc24aec3cfe0e8765cda781bf  gcc/testsuite/g++.dg/vect/pr43771.cc
  a258bcb9560aa25b760a5b93656e7e4e  gcc/testsuite/g++.dg/vect/pr44861.cc
*************** f9ec9f29d29198d0fd2269ad44e55b21  gcc/te
*** 30362,30370 ****
  4665de842fe7961eed5fad345695a420  gcc/testsuite/g++.dg/vect/pr60836.cc
  b7b79e1c6424f4373d8f860593191fd9  gcc/testsuite/g++.dg/vect/pr60896.cc
  2de94c5a0cf4dc2ff2b7fb5f335afddf  gcc/testsuite/g++.dg/vect/pr61171.cc
! 353dacc50249784b051638a414829e4c  gcc/testsuite/g++.dg/vect/pr64410.cc
! be3798224f4845a3175e6668c613f712  gcc/testsuite/g++.dg/vect/pr68145.cc
! 6888446339ac8d82c16a8c1d1ff2253f  gcc/testsuite/g++.dg/vect/pr68762-1.cc
  5c7fd9083bc5eecf88828a3e8041163f  gcc/testsuite/g++.dg/vect/pr68762-2.cc
  d09670c30fbad6b7f0837b7f7af80847  gcc/testsuite/g++.dg/vect/pr68762.h
  82eabbc7d36851332f92ee1b37756964  gcc/testsuite/g++.dg/vect/pr70726.cc
--- 32454,32462 ----
  4665de842fe7961eed5fad345695a420  gcc/testsuite/g++.dg/vect/pr60836.cc
  b7b79e1c6424f4373d8f860593191fd9  gcc/testsuite/g++.dg/vect/pr60896.cc
  2de94c5a0cf4dc2ff2b7fb5f335afddf  gcc/testsuite/g++.dg/vect/pr61171.cc
! 90c3df8d099150c61766d6e8aeff0718  gcc/testsuite/g++.dg/vect/pr64410.cc
! 13783ab06d92e72061bad5e947c2f942  gcc/testsuite/g++.dg/vect/pr68145.cc
! 6600a6f2c35c0e029bfea60c0a597d46  gcc/testsuite/g++.dg/vect/pr68762-1.cc
  5c7fd9083bc5eecf88828a3e8041163f  gcc/testsuite/g++.dg/vect/pr68762-2.cc
  d09670c30fbad6b7f0837b7f7af80847  gcc/testsuite/g++.dg/vect/pr68762.h
  82eabbc7d36851332f92ee1b37756964  gcc/testsuite/g++.dg/vect/pr70726.cc
*************** e13bcab5554300f88fc649bd78d61877  gcc/te
*** 30373,30386 ****
  dc35acb0f3b80c07fb4789cb89eb09b2  gcc/testsuite/g++.dg/vect/pr70944.cc
  0258e5eedd1d313ba5369d22c0225708  gcc/testsuite/g++.dg/vect/pr71483.cc
  6fd4436b3a842028430df081b867cc96  gcc/testsuite/g++.dg/vect/pr84362.cc
! ebb58e0381694c0c214da29d423ba8a9  gcc/testsuite/g++.dg/vect/pr84556.cc
! 179d2cf91ba3eb321a9c8dc0e19457fc  gcc/testsuite/g++.dg/vect/pr87621.cc
  6f2e63784179305f0c880851e4919fe0  gcc/testsuite/g++.dg/vect/pr87914.cc
  404f245256bcbfa4c6c43189ad964b2a  gcc/testsuite/g++.dg/vect/pr89653.cc
  e3c0964a70677f56a2eccf0db300d710  gcc/testsuite/g++.dg/vect/pr92595.cc
  61256228c999b0fe6df91a3666bfd697  gcc/testsuite/g++.dg/vect/pr95290.cc
  76acf1f17c191c2e7f29bb8bfda15df9  gcc/testsuite/g++.dg/vect/pr95297.cc
! 955af9691b3585e5265111804390ac00  gcc/testsuite/g++.dg/vect/pr95401.cc
  fd07a827606ccd02203378d37b593056  gcc/testsuite/g++.dg/vect/pr95401a.cc
  cbe0abb42f5376d089dc918e9d8f8188  gcc/testsuite/g++.dg/vect/pr95487.cc
  c66ee3a2b6a8151f02527a038fc39dc7  gcc/testsuite/g++.dg/vect/pr95576.cc
--- 32465,32478 ----
  dc35acb0f3b80c07fb4789cb89eb09b2  gcc/testsuite/g++.dg/vect/pr70944.cc
  0258e5eedd1d313ba5369d22c0225708  gcc/testsuite/g++.dg/vect/pr71483.cc
  6fd4436b3a842028430df081b867cc96  gcc/testsuite/g++.dg/vect/pr84362.cc
! e38c58e7e58fe0a7b87b491555fc061f  gcc/testsuite/g++.dg/vect/pr84556.cc
! 61b5dc2fa1ae5c701d6d8cfc80e6277b  gcc/testsuite/g++.dg/vect/pr87621.cc
  6f2e63784179305f0c880851e4919fe0  gcc/testsuite/g++.dg/vect/pr87914.cc
  404f245256bcbfa4c6c43189ad964b2a  gcc/testsuite/g++.dg/vect/pr89653.cc
  e3c0964a70677f56a2eccf0db300d710  gcc/testsuite/g++.dg/vect/pr92595.cc
  61256228c999b0fe6df91a3666bfd697  gcc/testsuite/g++.dg/vect/pr95290.cc
  76acf1f17c191c2e7f29bb8bfda15df9  gcc/testsuite/g++.dg/vect/pr95297.cc
! 45b7dd1daf67d7e8cfd59d9b8946ba6e  gcc/testsuite/g++.dg/vect/pr95401.cc
  fd07a827606ccd02203378d37b593056  gcc/testsuite/g++.dg/vect/pr95401a.cc
  cbe0abb42f5376d089dc918e9d8f8188  gcc/testsuite/g++.dg/vect/pr95487.cc
  c66ee3a2b6a8151f02527a038fc39dc7  gcc/testsuite/g++.dg/vect/pr95576.cc
*************** b83eac59b493f9c580ee676cf4be54bc  gcc/te
*** 30408,30417 ****
  60c78be6738c5a1041dce7fc1657bcf0  gcc/testsuite/g++.dg/vect/simd-clone-1.cc
  50771750517ac1626ff4b6ef18bc52e4  gcc/testsuite/g++.dg/vect/simd-clone-2.cc
  1e46ffbb22cd461029c69c481084f9fc  gcc/testsuite/g++.dg/vect/simd-clone-2.h
! af7f6d5e825e23ddb64f4928bc24e570  gcc/testsuite/g++.dg/vect/simd-clone-3.cc
  98d320060b90cb4d7efb2ca7dd9ca6a7  gcc/testsuite/g++.dg/vect/simd-clone-4.cc
  4147d578711be9e486c8907900862fdd  gcc/testsuite/g++.dg/vect/simd-clone-4.h
! c3079a303a422fbdcc1f72b0e2a98a47  gcc/testsuite/g++.dg/vect/simd-clone-5.cc
  e0f6d3736914a93338f16db9c5870cd0  gcc/testsuite/g++.dg/vect/simd-clone-6.cc
  781254f2b1a514c9ba0f4e29b2e8d1a3  gcc/testsuite/g++.dg/vect/simd-clone-7.cc
  76efe246291fd426ffddd2ad9aba280b  gcc/testsuite/g++.dg/vect/simd-complex-num-null-node.cc
--- 32500,32509 ----
  60c78be6738c5a1041dce7fc1657bcf0  gcc/testsuite/g++.dg/vect/simd-clone-1.cc
  50771750517ac1626ff4b6ef18bc52e4  gcc/testsuite/g++.dg/vect/simd-clone-2.cc
  1e46ffbb22cd461029c69c481084f9fc  gcc/testsuite/g++.dg/vect/simd-clone-2.h
! 8489aae7fc51533a56976b95147bf0a8  gcc/testsuite/g++.dg/vect/simd-clone-3.cc
  98d320060b90cb4d7efb2ca7dd9ca6a7  gcc/testsuite/g++.dg/vect/simd-clone-4.cc
  4147d578711be9e486c8907900862fdd  gcc/testsuite/g++.dg/vect/simd-clone-4.h
! 8e0a6e22b50986dde8d13d6b07a75bb7  gcc/testsuite/g++.dg/vect/simd-clone-5.cc
  e0f6d3736914a93338f16db9c5870cd0  gcc/testsuite/g++.dg/vect/simd-clone-6.cc
  781254f2b1a514c9ba0f4e29b2e8d1a3  gcc/testsuite/g++.dg/vect/simd-clone-7.cc
  76efe246291fd426ffddd2ad9aba280b  gcc/testsuite/g++.dg/vect/simd-complex-num-null-node.cc
*************** e0f6d3736914a93338f16db9c5870cd0  gcc/te
*** 30419,30428 ****
  470e82597279413bc82b08b1c7f1a530  gcc/testsuite/g++.dg/vect/slp-pr50413.cc
  11df4aee7aba1f03c88e69e2642c282a  gcc/testsuite/g++.dg/vect/slp-pr50819.cc
  65d174ec4c50c0d41899b909f7c4c318  gcc/testsuite/g++.dg/vect/slp-pr56812.cc
! b1384b6e904e48f36da95b938168ecf1  gcc/testsuite/g++.dg/vect/slp-pr87105.cc
  0b813e60a26de881560d29211902ec5c  gcc/testsuite/g++.dg/vect/slp-pr92516.cc
  575eb20a7046f483778f87a8b184d092  gcc/testsuite/g++.dg/vect/slp-pr97636.cc
! 06bbcfadea2fee02b417d4dadcb3d241  gcc/testsuite/g++.dg/vect/slp-pr98855.cc
  cd8c6e5cf62f7909f63f4516114ba39c  gcc/testsuite/g++.dg/vect/slp-pr99971.cc
  474ba1e8afc259a33d5d37ef2c18cf22  gcc/testsuite/g++.dg/vect/vec-cond-expr-eh.C
  d5f45690807f08a2a0090e727170476f  gcc/testsuite/g++.dg/vect/vect-early-break_1.cc
--- 32511,32520 ----
  470e82597279413bc82b08b1c7f1a530  gcc/testsuite/g++.dg/vect/slp-pr50413.cc
  11df4aee7aba1f03c88e69e2642c282a  gcc/testsuite/g++.dg/vect/slp-pr50819.cc
  65d174ec4c50c0d41899b909f7c4c318  gcc/testsuite/g++.dg/vect/slp-pr56812.cc
! 3baa0fd8d2922754b74c12c089338243  gcc/testsuite/g++.dg/vect/slp-pr87105.cc
  0b813e60a26de881560d29211902ec5c  gcc/testsuite/g++.dg/vect/slp-pr92516.cc
  575eb20a7046f483778f87a8b184d092  gcc/testsuite/g++.dg/vect/slp-pr97636.cc
! d02ecb7053397e79a8984071d1e7624c  gcc/testsuite/g++.dg/vect/slp-pr98855.cc
  cd8c6e5cf62f7909f63f4516114ba39c  gcc/testsuite/g++.dg/vect/slp-pr99971.cc
  474ba1e8afc259a33d5d37ef2c18cf22  gcc/testsuite/g++.dg/vect/vec-cond-expr-eh.C
  d5f45690807f08a2a0090e727170476f  gcc/testsuite/g++.dg/vect/vect-early-break_1.cc
*************** d5f45690807f08a2a0090e727170476f  gcc/te
*** 30430,30438 ****
  c344792dcd15e12c998f5c8a2cf536b7  gcc/testsuite/g++.dg/vect/vect-early-break_3.cc
  4abd314e372c2d0fa4867f80fd7c0686  gcc/testsuite/g++.dg/vect/vect-early-break_4-pr113137.cc
  bb04402a5286da0c2b2bd970e15a7c0a  gcc/testsuite/g++.dg/vect/vect-early-break_5-pr113137.cc
! b6caf6f101001c6910cc31f5b3060f43  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
! ec9e8967aa427e1f1135e2213c4f06d7  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
--- 32522,32531 ----
  c344792dcd15e12c998f5c8a2cf536b7  gcc/testsuite/g++.dg/vect/vect-early-break_3.cc
  4abd314e372c2d0fa4867f80fd7c0686  gcc/testsuite/g++.dg/vect/vect-early-break_4-pr113137.cc
  bb04402a5286da0c2b2bd970e15a7c0a  gcc/testsuite/g++.dg/vect/vect-early-break_5-pr113137.cc
! 7509f0d1c7df2744d657804a467cd882  gcc/testsuite/g++.dg/vect/vect-early-break_6.cc
! 750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
! f8c767a314721a1883abbb6a43baf1b2  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
*************** b40dbeaf2e568c93093f4ad87f6ac81c  gcc/te
*** 30457,30475 ****
  28b860c60ef771ec7e50f1e3d59c34d7  gcc/testsuite/g++.dg/warn/Warray-bounds-13.C
  751a532e4227b40e2fb6a1e86824d452  gcc/testsuite/g++.dg/warn/Warray-bounds-14.C
  572a6d7fa549dc456ad9ccafcd0de9c3  gcc/testsuite/g++.dg/warn/Warray-bounds-15.C
! 8f5c02cdd45c1c3c413d6acbed9a3818  gcc/testsuite/g++.dg/warn/Warray-bounds-16.C
  2cd766446f96df7744ae53d65c7724fd  gcc/testsuite/g++.dg/warn/Warray-bounds-17.C
  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
! d1fa658cfb569518415ea697c27200c3  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
  a0e826a4537965b07b3880791c956f9a  gcc/testsuite/g++.dg/warn/Warray-bounds-24.C
  774ed8eb93b664b475eb1981665963a0  gcc/testsuite/g++.dg/warn/Warray-bounds-25.C
  5d0c7eff938b7dc66c372a0ec11956e7  gcc/testsuite/g++.dg/warn/Warray-bounds-26.C
! ab97df5ad2431719f3fb0cd4fdf111d8  gcc/testsuite/g++.dg/warn/Warray-bounds-27.C
  de22eb15ae2420b77fbb90f3b584c785  gcc/testsuite/g++.dg/warn/Warray-bounds-3.C
  44982cde6de999156b24ac5b0d41b330  gcc/testsuite/g++.dg/warn/Warray-bounds-4.C
  843811e9e3bbecf56a84c608e9fd1073  gcc/testsuite/g++.dg/warn/Warray-bounds-5.C
--- 32550,32568 ----
  28b860c60ef771ec7e50f1e3d59c34d7  gcc/testsuite/g++.dg/warn/Warray-bounds-13.C
  751a532e4227b40e2fb6a1e86824d452  gcc/testsuite/g++.dg/warn/Warray-bounds-14.C
  572a6d7fa549dc456ad9ccafcd0de9c3  gcc/testsuite/g++.dg/warn/Warray-bounds-15.C
! a51e59121ac395643cb3896da790dc94  gcc/testsuite/g++.dg/warn/Warray-bounds-16.C
  2cd766446f96df7744ae53d65c7724fd  gcc/testsuite/g++.dg/warn/Warray-bounds-17.C
  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
! 3da4d5bfddf26b93a099c1b5754d50ea  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
  a0e826a4537965b07b3880791c956f9a  gcc/testsuite/g++.dg/warn/Warray-bounds-24.C
  774ed8eb93b664b475eb1981665963a0  gcc/testsuite/g++.dg/warn/Warray-bounds-25.C
  5d0c7eff938b7dc66c372a0ec11956e7  gcc/testsuite/g++.dg/warn/Warray-bounds-26.C
! b90198b13547e872c994e256215f0e64  gcc/testsuite/g++.dg/warn/Warray-bounds-27.C
  de22eb15ae2420b77fbb90f3b584c785  gcc/testsuite/g++.dg/warn/Warray-bounds-3.C
  44982cde6de999156b24ac5b0d41b330  gcc/testsuite/g++.dg/warn/Warray-bounds-4.C
  843811e9e3bbecf56a84c608e9fd1073  gcc/testsuite/g++.dg/warn/Warray-bounds-5.C
*************** d53003b93dc25906e11f3f1291fb8a1d  gcc/te
*** 30478,30485 ****
--- 32571,32580 ----
  d7cbf62602ce3f0fa143eaedf4981bb9  gcc/testsuite/g++.dg/warn/Warray-bounds-8.C
  6eeb1f365add4be4bdb7ddd36c65ac44  gcc/testsuite/g++.dg/warn/Warray-bounds-9.C
  404736f3786e412f10598b365ba4917e  gcc/testsuite/g++.dg/warn/Warray-bounds-pr104165-1.C
+ 976766fc4d364b8c40253058ab6b6a10  gcc/testsuite/g++.dg/warn/Warray-bounds-pr92539.C
  2d6a670b4e83bb7433e838e5b33398be  gcc/testsuite/g++.dg/warn/Warray-bounds.C
  060f3f7d5c9e12d3ee82fa6b0a768523  gcc/testsuite/g++.dg/warn/Warray-bounds15.C
+ 428e5a5df724b170dd6bf4200458c46b  gcc/testsuite/g++.dg/warn/Warray-compare-1.C
  d9be18151631c99a55837fcc6f6ada21  gcc/testsuite/g++.dg/warn/Wbool-operation-1.C
  d489a76c7b7ab5b0e165f2342a4e6974  gcc/testsuite/g++.dg/warn/Wbraces1.C
  61b34d5718e2ced8ea67aec611b5a81e  gcc/testsuite/g++.dg/warn/Wbraces2.C
*************** a870375da7bcd4c5c455867aab227d04  gcc/te
*** 30503,30510 ****
  4ba67574e50be395fe4f4c58eaac86a7  gcc/testsuite/g++.dg/warn/Wclass-memaccess-5.C
  b0d394df2af420d13fbc302b3902dc22  gcc/testsuite/g++.dg/warn/Wclass-memaccess-6.C
  a1de6b04521ef70bac619958562f4c5c  gcc/testsuite/g++.dg/warn/Wclass-memaccess-7.C
! 0c178f0e8203956145410ea9b44f7409  gcc/testsuite/g++.dg/warn/Wclass-memaccess.C
! 91fa9d535a67070a0cbd4728cca02222  gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C
  0a5318e679484e4c698dc3557ca77477  gcc/testsuite/g++.dg/warn/Wconversion-integer.C
  6cdba00d4fc0e7d2742e63c92a31a3df  gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
  b256e2e86a0c654704aeae4db0b68327  gcc/testsuite/g++.dg/warn/Wconversion-null-3.C
--- 32598,32605 ----
  4ba67574e50be395fe4f4c58eaac86a7  gcc/testsuite/g++.dg/warn/Wclass-memaccess-5.C
  b0d394df2af420d13fbc302b3902dc22  gcc/testsuite/g++.dg/warn/Wclass-memaccess-6.C
  a1de6b04521ef70bac619958562f4c5c  gcc/testsuite/g++.dg/warn/Wclass-memaccess-7.C
! f1e5bb888ee2d1bc775a71d685900f67  gcc/testsuite/g++.dg/warn/Wclass-memaccess.C
! b812be334eaa3a473abfff0d3d229e17  gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C
  0a5318e679484e4c698dc3557ca77477  gcc/testsuite/g++.dg/warn/Wconversion-integer.C
  6cdba00d4fc0e7d2742e63c92a31a3df  gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
  b256e2e86a0c654704aeae4db0b68327  gcc/testsuite/g++.dg/warn/Wconversion-null-3.C
*************** bc62ca5d41c48fc463c9f801cf992f38  gcc/te
*** 30515,30521 ****
  66a4d02772540ffde95b6db60a129d05  gcc/testsuite/g++.dg/warn/Wconversion-pr91993.C
  576bee0a7ec892ed245bd67b3471168c  gcc/testsuite/g++.dg/warn/Wconversion-pr94067.C
  6187fc4b2bc68062cfde710d71cc6791  gcc/testsuite/g++.dg/warn/Wconversion-real-integer-3.C
! 83f25a4a0c15a025b671a5728685be6c  gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C
  96a09f4a9ebc0fd0302d137947776a1d  gcc/testsuite/g++.dg/warn/Wconversion-real-integer2.C
  d10152133e840d3699814c5271083357  gcc/testsuite/g++.dg/warn/Wconversion1.C
  aeadbc7507b32cb0295c0b4fb7b26084  gcc/testsuite/g++.dg/warn/Wconversion2.C
--- 32610,32616 ----
  66a4d02772540ffde95b6db60a129d05  gcc/testsuite/g++.dg/warn/Wconversion-pr91993.C
  576bee0a7ec892ed245bd67b3471168c  gcc/testsuite/g++.dg/warn/Wconversion-pr94067.C
  6187fc4b2bc68062cfde710d71cc6791  gcc/testsuite/g++.dg/warn/Wconversion-real-integer-3.C
! 2ff9c7fdbb604b4585b54bfe4eba8b45  gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C
  96a09f4a9ebc0fd0302d137947776a1d  gcc/testsuite/g++.dg/warn/Wconversion-real-integer2.C
  d10152133e840d3699814c5271083357  gcc/testsuite/g++.dg/warn/Wconversion1.C
  aeadbc7507b32cb0295c0b4fb7b26084  gcc/testsuite/g++.dg/warn/Wconversion2.C
*************** ac355f312027ebf3e91d21475ab4e796  gcc/te
*** 30534,30563 ****
  04389df734f9e345759f783a9ae88097  gcc/testsuite/g++.dg/warn/Wdangling-pointer-4.C
  7665878652e47fd15f97fc1fbda21d1e  gcc/testsuite/g++.dg/warn/Wdangling-pointer-5.C
  50d0cc7c4a63b7eca1ce1af43573c771  gcc/testsuite/g++.dg/warn/Wdangling-pointer-6.C
! 7fbf215310e2d3c9ad1600c045b28810  gcc/testsuite/g++.dg/warn/Wdangling-pointer-pr110055.C
  086c0900031416d8c18a5290f0242617  gcc/testsuite/g++.dg/warn/Wdangling-pointer.C
! a5c82e451d68d995d7f3bdc2c840dc43  gcc/testsuite/g++.dg/warn/Wdangling-reference1.C
! 9d04fe182e8e2bb211d04ab0870e673d  gcc/testsuite/g++.dg/warn/Wdangling-reference10.C
  bf07c61e5674247801eb597fb9faca8a  gcc/testsuite/g++.dg/warn/Wdangling-reference11.C
  1845787c3d3902f727e3dad43e0fb5ac  gcc/testsuite/g++.dg/warn/Wdangling-reference12.C
  2d915975d6fb252477607edc21231585  gcc/testsuite/g++.dg/warn/Wdangling-reference13.C
! 703f4ef8f00f6e7d4dd8e257078988f4  gcc/testsuite/g++.dg/warn/Wdangling-reference14.C
  b9c9d077eb5f22e37263ac134625dc1a  gcc/testsuite/g++.dg/warn/Wdangling-reference15.C
  f88847e6c95fe68014b2950977544e30  gcc/testsuite/g++.dg/warn/Wdangling-reference16.C
! afd02579968786266ff487da5d7bd388  gcc/testsuite/g++.dg/warn/Wdangling-reference17.C
  3af7a9c77bf18269ddd4a6662307f44f  gcc/testsuite/g++.dg/warn/Wdangling-reference18.C
  17760a9bed0f01282702f8f29c915938  gcc/testsuite/g++.dg/warn/Wdangling-reference19.C
! 340821be1cf2e197db157ef7a58a35ba  gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
  27575f70885dc6eb0f272b98527a9e6d  gcc/testsuite/g++.dg/warn/Wdangling-reference20.C
  2123d1e51e28665fb322c984a15dd48c  gcc/testsuite/g++.dg/warn/Wdangling-reference21.C
! a66ef981e5fcee8dcf90b28fd2b221d9  gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
! 4515bab7ba1ef52bd87e0ce661302dfd  gcc/testsuite/g++.dg/warn/Wdangling-reference4.C
! b1f9e5d8557cc56fdb7bd124ce3a6809  gcc/testsuite/g++.dg/warn/Wdangling-reference5.C
  74d5c1dd927763dbe99c2c6b4dba16b6  gcc/testsuite/g++.dg/warn/Wdangling-reference6.C
  e4a55c27577ae3c13d1a7268aff3715f  gcc/testsuite/g++.dg/warn/Wdangling-reference7.C
  50deb62e7d1f43a62e3c3a7761443e32  gcc/testsuite/g++.dg/warn/Wdangling-reference8.C
  bdb93627691324f8e89a3fc0c3b3d6b4  gcc/testsuite/g++.dg/warn/Wdangling-reference9.C
! 81f664dba5a025cdc726a4ce39403653  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-1.C
  e5cc13e8f74ebb47c678a7c5745e57a8  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-2.C
  1a61a88751379aff79eff4189d8d053d  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C
  6b81ba9d76007bb24d88eea808849526  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C
--- 32629,32660 ----
  04389df734f9e345759f783a9ae88097  gcc/testsuite/g++.dg/warn/Wdangling-pointer-4.C
  7665878652e47fd15f97fc1fbda21d1e  gcc/testsuite/g++.dg/warn/Wdangling-pointer-5.C
  50d0cc7c4a63b7eca1ce1af43573c771  gcc/testsuite/g++.dg/warn/Wdangling-pointer-6.C
! 5d82d2176a24ce5346137c04f7d569ac  gcc/testsuite/g++.dg/warn/Wdangling-pointer-pr110055.C
  086c0900031416d8c18a5290f0242617  gcc/testsuite/g++.dg/warn/Wdangling-pointer.C
! 51b360cad92d7daa4ccf3f0809f79ed0  gcc/testsuite/g++.dg/warn/Wdangling-reference1.C
! 8f1dd8f58f34566f5f9f810bd6cafb57  gcc/testsuite/g++.dg/warn/Wdangling-reference10.C
  bf07c61e5674247801eb597fb9faca8a  gcc/testsuite/g++.dg/warn/Wdangling-reference11.C
  1845787c3d3902f727e3dad43e0fb5ac  gcc/testsuite/g++.dg/warn/Wdangling-reference12.C
  2d915975d6fb252477607edc21231585  gcc/testsuite/g++.dg/warn/Wdangling-reference13.C
! db066d4bfcd266664bfdc4d6b41efdb9  gcc/testsuite/g++.dg/warn/Wdangling-reference14.C
  b9c9d077eb5f22e37263ac134625dc1a  gcc/testsuite/g++.dg/warn/Wdangling-reference15.C
  f88847e6c95fe68014b2950977544e30  gcc/testsuite/g++.dg/warn/Wdangling-reference16.C
! 6f3db003770be5903677d9d49165a462  gcc/testsuite/g++.dg/warn/Wdangling-reference17.C
  3af7a9c77bf18269ddd4a6662307f44f  gcc/testsuite/g++.dg/warn/Wdangling-reference18.C
  17760a9bed0f01282702f8f29c915938  gcc/testsuite/g++.dg/warn/Wdangling-reference19.C
! 4ffdbd8e109454447e45355d9b722ca1  gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
  27575f70885dc6eb0f272b98527a9e6d  gcc/testsuite/g++.dg/warn/Wdangling-reference20.C
  2123d1e51e28665fb322c984a15dd48c  gcc/testsuite/g++.dg/warn/Wdangling-reference21.C
! cad9113205e07d8d481b0d8a5bbc2f9b  gcc/testsuite/g++.dg/warn/Wdangling-reference22.C
! aef34a7aea4dfa3a524cf246af8373b9  gcc/testsuite/g++.dg/warn/Wdangling-reference23.C
! bdbb49788a126734d379de464f060102  gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
! 0b09ba2e0144e45bd9b09ecb178682b2  gcc/testsuite/g++.dg/warn/Wdangling-reference4.C
! e141f05722dd9ba56627d8de1bba08ba  gcc/testsuite/g++.dg/warn/Wdangling-reference5.C
  74d5c1dd927763dbe99c2c6b4dba16b6  gcc/testsuite/g++.dg/warn/Wdangling-reference6.C
  e4a55c27577ae3c13d1a7268aff3715f  gcc/testsuite/g++.dg/warn/Wdangling-reference7.C
  50deb62e7d1f43a62e3c3a7761443e32  gcc/testsuite/g++.dg/warn/Wdangling-reference8.C
  bdb93627691324f8e89a3fc0c3b3d6b4  gcc/testsuite/g++.dg/warn/Wdangling-reference9.C
! 915a89c4180bae1b3f3033eb0b8a8799  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-1.C
  e5cc13e8f74ebb47c678a7c5745e57a8  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-2.C
  1a61a88751379aff79eff4189d8d053d  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C
  6b81ba9d76007bb24d88eea808849526  gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C
*************** ece1d03dfdd44a22781b77ed9ec271d4  gcc/te
*** 30575,30580 ****
--- 32672,32678 ----
  c32e2d9c26f73ceab75448129f154a62  gcc/testsuite/g++.dg/warn/Wduplicated-branches5.C
  c1c94fbed68712c556c47675075fab08  gcc/testsuite/g++.dg/warn/Wduplicated-branches6.C
  df34a3119747a72018c056305c89abd6  gcc/testsuite/g++.dg/warn/Wduplicated-branches7.C
+ b9cda5e4dff795d15eaf9fe9108df523  gcc/testsuite/g++.dg/warn/Wduplicated-branches8.C
  53e8ba692e810326b135e28115da516a  gcc/testsuite/g++.dg/warn/Wduplicated-cond1.C
  aee46bcb7031162dcee9c8ebe1228c6f  gcc/testsuite/g++.dg/warn/Wduplicated-cond2.C
  3fd71ef4467ff2d96bedfb8624c9f6c9  gcc/testsuite/g++.dg/warn/Wduplicated-cond3.C
*************** fd872aba23fcbd09e4b5cb3b61dbaadf  gcc/te
*** 30594,30606 ****
  a2a1c47c22d508bea7ea5f6ecfa4f8e0  gcc/testsuite/g++.dg/warn/Wfloat-equal-1.C
  eccc2b2ed947b72890c78d9f36703c07  gcc/testsuite/g++.dg/warn/Wformat-1.C
  410904ada3f7963a6e257984ca090127  gcc/testsuite/g++.dg/warn/Wformat-2.C
  7176ad1e7207328b46fc3387dcae316c  gcc/testsuite/g++.dg/warn/Wformat-char8_t-1.C
  c051125966f7b3d00fdd612ba7549043  gcc/testsuite/g++.dg/warn/Wformat-method.C
  9af8ba70e2572530afefa641561d5f5c  gcc/testsuite/g++.dg/warn/Wformat-pr71863.C
  2f32a8a1e61e4b8d8e49fa51a8336602  gcc/testsuite/g++.dg/warn/Wformat-ranges-c++11.C
  13806d7523b42aa362c0431d74bdaf85  gcc/testsuite/g++.dg/warn/Wformat-ranges.C
  1f088fdb5ad33a236b6a530b858d7816  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-2.C
! 1aa6546fa5ce8c8ed4a822cce70a4601  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C
  55d500ce55b0e7b9f2e52d00593782d8  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-4.C
  f25961c7b179af7200015aeb505d51e6  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C
  7f075bbcdd22ad2928b9576d6849509e  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-6.C
--- 32692,32708 ----
  a2a1c47c22d508bea7ea5f6ecfa4f8e0  gcc/testsuite/g++.dg/warn/Wfloat-equal-1.C
  eccc2b2ed947b72890c78d9f36703c07  gcc/testsuite/g++.dg/warn/Wformat-1.C
  410904ada3f7963a6e257984ca090127  gcc/testsuite/g++.dg/warn/Wformat-2.C
+ 043066dc34a8f88f0f8349d9f0370f8a  gcc/testsuite/g++.dg/warn/Wformat-3.C
  7176ad1e7207328b46fc3387dcae316c  gcc/testsuite/g++.dg/warn/Wformat-char8_t-1.C
+ 16e302f8777aca3c182e6d73f8bce59b  gcc/testsuite/g++.dg/warn/Wformat-gcc_diag-1.C
+ 6ef49309d5c20d13e1ea70fc21d3b4af  gcc/testsuite/g++.dg/warn/Wformat-gcc_diag-2.C
+ beb2a2fbca8c29444f6e9ca9eb833c61  gcc/testsuite/g++.dg/warn/Wformat-gcc_diag-3.C
  c051125966f7b3d00fdd612ba7549043  gcc/testsuite/g++.dg/warn/Wformat-method.C
  9af8ba70e2572530afefa641561d5f5c  gcc/testsuite/g++.dg/warn/Wformat-pr71863.C
  2f32a8a1e61e4b8d8e49fa51a8336602  gcc/testsuite/g++.dg/warn/Wformat-ranges-c++11.C
  13806d7523b42aa362c0431d74bdaf85  gcc/testsuite/g++.dg/warn/Wformat-ranges.C
  1f088fdb5ad33a236b6a530b858d7816  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-2.C
! f090cb4af95494d232546cce93a42569  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-3.C
  55d500ce55b0e7b9f2e52d00593782d8  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-4.C
  f25961c7b179af7200015aeb505d51e6  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C
  7f075bbcdd22ad2928b9576d6849509e  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-6.C
*************** be08197ff1e9fe131158c9e64ecfcf10  gcc/te
*** 30631,30637 ****
  6a51f790f1905c68f12c2109638c7edb  gcc/testsuite/g++.dg/warn/Winit-self.C
  99a0635e430cefd28c2908b5aaf4a487  gcc/testsuite/g++.dg/warn/Winline-1.C
  0e30443ee25811cad88723354c525b24  gcc/testsuite/g++.dg/warn/Winline-2.C
! e5e6d08567eb0a03fffadca1da754cde  gcc/testsuite/g++.dg/warn/Winline-3.C
  401a1cfacaa701f3e1459d7dcaf225d9  gcc/testsuite/g++.dg/warn/Winline-4.C
  b383f047a6af35035ecd836253175c30  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-1.C
  ae2abc2a5a067a849f424b7aee4a38f1  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-2.C
--- 32733,32739 ----
  6a51f790f1905c68f12c2109638c7edb  gcc/testsuite/g++.dg/warn/Winit-self.C
  99a0635e430cefd28c2908b5aaf4a487  gcc/testsuite/g++.dg/warn/Winline-1.C
  0e30443ee25811cad88723354c525b24  gcc/testsuite/g++.dg/warn/Winline-2.C
! b70d756a0a86e842f6ab1a8fd14569f7  gcc/testsuite/g++.dg/warn/Winline-3.C
  401a1cfacaa701f3e1459d7dcaf225d9  gcc/testsuite/g++.dg/warn/Winline-4.C
  b383f047a6af35035ecd836253175c30  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-1.C
  ae2abc2a5a067a849f424b7aee4a38f1  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-2.C
*************** c84bc79847f1966edf2b1f4b3b013e19  gcc/te
*** 30639,30650 ****
  7a5fabbcc3f8e983ae01b4963469c94a  gcc/testsuite/g++.dg/warn/Winterference.C
  f1360330e2c03adfb9e1efd9136d3f31  gcc/testsuite/g++.dg/warn/Winterference.H
  617b1baf48ffae995c6198567500b3c3  gcc/testsuite/g++.dg/warn/Winvalid-memory-model-2.C
! 507bac8cb77177c06aaebaae13d81c2a  gcc/testsuite/g++.dg/warn/Winvalid-memory-model.C
  90a871726cae9dea93ce0da4b5bb7b2c  gcc/testsuite/g++.dg/warn/Wlogical-op-1.C
  13ee95f1cd2836b595541e2a9917c06d  gcc/testsuite/g++.dg/warn/Wlogical-op-2.C
  73a4aa4570ee8ec2a83f04a672162a02  gcc/testsuite/g++.dg/warn/Wlogical-op-3.C
  868d012a31fa22c4f94b06695961a1bd  gcc/testsuite/g++.dg/warn/Wlogical-op-4.C
! 0d474dffc39eac06f1ef0fff37a5792f  gcc/testsuite/g++.dg/warn/Wmemset-elt-size1.C
  640ad4c16d17c7bf605e6b30568da488  gcc/testsuite/g++.dg/warn/Wmemset-transposed-args-1.C
  1184b1df4ae243b5ab6917e0e3b219b6  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-2.C
  beb0dbeb6a47cd7fb34d04b431670905  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-3.C
--- 32741,32752 ----
  7a5fabbcc3f8e983ae01b4963469c94a  gcc/testsuite/g++.dg/warn/Winterference.C
  f1360330e2c03adfb9e1efd9136d3f31  gcc/testsuite/g++.dg/warn/Winterference.H
  617b1baf48ffae995c6198567500b3c3  gcc/testsuite/g++.dg/warn/Winvalid-memory-model-2.C
! 6cb792f5a5a29a4931676fce151db135  gcc/testsuite/g++.dg/warn/Winvalid-memory-model.C
  90a871726cae9dea93ce0da4b5bb7b2c  gcc/testsuite/g++.dg/warn/Wlogical-op-1.C
  13ee95f1cd2836b595541e2a9917c06d  gcc/testsuite/g++.dg/warn/Wlogical-op-2.C
  73a4aa4570ee8ec2a83f04a672162a02  gcc/testsuite/g++.dg/warn/Wlogical-op-3.C
  868d012a31fa22c4f94b06695961a1bd  gcc/testsuite/g++.dg/warn/Wlogical-op-4.C
! a5706ac002500d657b5e8cd77cc6c62e  gcc/testsuite/g++.dg/warn/Wmemset-elt-size1.C
  640ad4c16d17c7bf605e6b30568da488  gcc/testsuite/g++.dg/warn/Wmemset-transposed-args-1.C
  1184b1df4ae243b5ab6917e0e3b219b6  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-2.C
  beb0dbeb6a47cd7fb34d04b431670905  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-3.C
*************** f53b1f90733acd430c8cdf6142c6d0ae  gcc/te
*** 30656,30661 ****
--- 32758,32764 ----
  8afe47a7579150c18e697be841db6df5  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-6.C
  c6df77cbbce60aad70c6bc987ecd4bd2  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-7.C
  42429ebb9efa51a442c7b9c8a566923a  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-8.C
+ ff3cdbb8d397351bf57dfbcf103f1088  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-9.C
  3089b7e4a074a4993652acd742390397  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete.C
  7729ea0086a47fb6cab7bd9640283fcd  gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C
  67285d97432f227bc5e4c7e66666868f  gcc/testsuite/g++.dg/warn/Wmismatched-tags-11.C
*************** c6df77cbbce60aad70c6bc987ecd4bd2  gcc/te
*** 30665,30671 ****
  b963046db4cfda2a26e48a50fb49dc9f  gcc/testsuite/g++.dg/warn/Wmismatched-tags-5.C
  b306962faed01d9c7837f5c94d8fd54b  gcc/testsuite/g++.dg/warn/Wmismatched-tags-6.C
  4f4a6f65343802e0a210fb251cbdaaae  gcc/testsuite/g++.dg/warn/Wmismatched-tags-7.C
! 51f559879287437f7bafa0b16b7ec7f3  gcc/testsuite/g++.dg/warn/Wmismatched-tags-8.C
  dd271ecca0fa5146b807a1a4a7593846  gcc/testsuite/g++.dg/warn/Wmismatched-tags-9.C
  8bb91ffb5e984d7b02129f07fd4bd69c  gcc/testsuite/g++.dg/warn/Wmismatched-tags.C
  d3017d025f43f9093bf016847e418a34  gcc/testsuite/g++.dg/warn/Wmissing-declarations-1.C
--- 32768,32774 ----
  b963046db4cfda2a26e48a50fb49dc9f  gcc/testsuite/g++.dg/warn/Wmismatched-tags-5.C
  b306962faed01d9c7837f5c94d8fd54b  gcc/testsuite/g++.dg/warn/Wmismatched-tags-6.C
  4f4a6f65343802e0a210fb251cbdaaae  gcc/testsuite/g++.dg/warn/Wmismatched-tags-7.C
! 0b13664c7cfd24dc11b3572476748e26  gcc/testsuite/g++.dg/warn/Wmismatched-tags-8.C
  dd271ecca0fa5146b807a1a4a7593846  gcc/testsuite/g++.dg/warn/Wmismatched-tags-9.C
  8bb91ffb5e984d7b02129f07fd4bd69c  gcc/testsuite/g++.dg/warn/Wmismatched-tags.C
  d3017d025f43f9093bf016847e418a34  gcc/testsuite/g++.dg/warn/Wmissing-declarations-1.C
*************** d3017d025f43f9093bf016847e418a34  gcc/te
*** 30673,30681 ****
  4e9d814761a91eb81f95a59e1186b932  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-2.C
  fe0b1389c16833bcff81c329b45bc027  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-3.C
  df77bef9a13ed28df97e854b2336076a  gcc/testsuite/g++.dg/warn/Wmultistatement-macros-1.C
! c70f598a83c875afdb2013de4797fd86  gcc/testsuite/g++.dg/warn/Wno-attributes-1.C
  13048d07bf8630f21562df0b77b67343  gcc/testsuite/g++.dg/warn/Wno-div-by-zero.C
  7c3ea8d27e4d862f83fc6998269f6f42  gcc/testsuite/g++.dg/warn/Wno-narrowing1.C
  d024a70ad0eccd6ae1e4af09f6ff03b0  gcc/testsuite/g++.dg/warn/Wno-return-local-addr.C
  3de680abd7e614dc06f9edcb6f087cfc  gcc/testsuite/g++.dg/warn/Wnoexcept1.C
  924ad5e5caf7a53b9f4294c66b631c00  gcc/testsuite/g++.dg/warn/Wnoexcept1.h
--- 32776,32785 ----
  4e9d814761a91eb81f95a59e1186b932  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-2.C
  fe0b1389c16833bcff81c329b45bc027  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-3.C
  df77bef9a13ed28df97e854b2336076a  gcc/testsuite/g++.dg/warn/Wmultistatement-macros-1.C
! d9ccce04788303798396dd5173836a8c  gcc/testsuite/g++.dg/warn/Wno-attributes-1.C
  13048d07bf8630f21562df0b77b67343  gcc/testsuite/g++.dg/warn/Wno-div-by-zero.C
  7c3ea8d27e4d862f83fc6998269f6f42  gcc/testsuite/g++.dg/warn/Wno-narrowing1.C
+ 6da3e74df431b4cf87e7745beb48f2cf  gcc/testsuite/g++.dg/warn/Wno-pragma-once-outside-header.C
  d024a70ad0eccd6ae1e4af09f6ff03b0  gcc/testsuite/g++.dg/warn/Wno-return-local-addr.C
  3de680abd7e614dc06f9edcb6f087cfc  gcc/testsuite/g++.dg/warn/Wnoexcept1.C
  924ad5e5caf7a53b9f4294c66b631c00  gcc/testsuite/g++.dg/warn/Wnoexcept1.h
*************** ec8a63d1096101cfc1e23b18809d3a81  gcc/te
*** 30696,30701 ****
--- 32800,32806 ----
  79c4530f6268ff652e31d35b8619734e  gcc/testsuite/g++.dg/warn/Wnonnull13.C
  397a6e983cc8e40dbd3bdbfbc9b54f20  gcc/testsuite/g++.dg/warn/Wnonnull14.C
  7371ee970e0d911157d8d8775e551941  gcc/testsuite/g++.dg/warn/Wnonnull15.C
+ 0157ebc36e373fd017c351117c4c3d54  gcc/testsuite/g++.dg/warn/Wnonnull16.C
  d38c5795330625342ab67317e9b6f464  gcc/testsuite/g++.dg/warn/Wnonnull2.C
  2c88984bc06322d15c6f4f0922d037dc  gcc/testsuite/g++.dg/warn/Wnonnull3.C
  2a01811fb8cc7758c4e764c1092e0006  gcc/testsuite/g++.dg/warn/Wnonnull4.C
*************** c8cfeb1be8b9ab6b1a5bf044e67e73e2  gcc/te
*** 30716,30726 ****
  4d3b7ed38b5e078db7e76014e7eab321  gcc/testsuite/g++.dg/warn/Woverloaded-1.C
  ed471db2dd6df6116f741f1749004495  gcc/testsuite/g++.dg/warn/Woverloaded-2.C
  5ae40f7ac8f48b19db8ffbb07808fafd  gcc/testsuite/g++.dg/warn/Woverloaded-2.h
! f4d4031ba7d932297f959823933e17d3  gcc/testsuite/g++.dg/warn/Woverloaded-virt1.C
  01c26c72a37db8f84c645c213cfb0f2a  gcc/testsuite/g++.dg/warn/Woverloaded-virt2.C
  4e0440348e49e1e429dbe6184e03e6d8  gcc/testsuite/g++.dg/warn/Woverloaded-virt3.C
  f16dd3eaabb61969a14adb68eccfc1d1  gcc/testsuite/g++.dg/warn/Woverloaded-virt4.C
! 5433407ca1a050560b08f45d03fdef67  gcc/testsuite/g++.dg/warn/Wpadded-1.C
  d1f22f759809f81b1b677be34f938b02  gcc/testsuite/g++.dg/warn/Wparentheses-1.C
  1fd66bda07d0d1a8f1625c816b321aae  gcc/testsuite/g++.dg/warn/Wparentheses-10.C
  593d167a09cfa3cfdaaf95d5d0955105  gcc/testsuite/g++.dg/warn/Wparentheses-11.C
--- 32821,32840 ----
  4d3b7ed38b5e078db7e76014e7eab321  gcc/testsuite/g++.dg/warn/Woverloaded-1.C
  ed471db2dd6df6116f741f1749004495  gcc/testsuite/g++.dg/warn/Woverloaded-2.C
  5ae40f7ac8f48b19db8ffbb07808fafd  gcc/testsuite/g++.dg/warn/Woverloaded-2.h
! 983fcfe4f449a30f0b92097091222c7b  gcc/testsuite/g++.dg/warn/Woverloaded-virt1.C
! 04e3fd76a1932e38ce845ed890c08baa  gcc/testsuite/g++.dg/warn/Woverloaded-virt10.C
! 07f753b35fbb3b37c69acb4b8d698cbf  gcc/testsuite/g++.dg/warn/Woverloaded-virt11.C
! b5912d0c2ac7064b6541a23a77b6fbcf  gcc/testsuite/g++.dg/warn/Woverloaded-virt12.C
! 062c1a03b94e8a73fb30e7925dd8b05e  gcc/testsuite/g++.dg/warn/Woverloaded-virt13.C
  01c26c72a37db8f84c645c213cfb0f2a  gcc/testsuite/g++.dg/warn/Woverloaded-virt2.C
  4e0440348e49e1e429dbe6184e03e6d8  gcc/testsuite/g++.dg/warn/Woverloaded-virt3.C
  f16dd3eaabb61969a14adb68eccfc1d1  gcc/testsuite/g++.dg/warn/Woverloaded-virt4.C
! a27770bd8f1fbf5d26d73bb2f34ad805  gcc/testsuite/g++.dg/warn/Woverloaded-virt5.C
! 456d1e96288704f230be116b87fd7d3c  gcc/testsuite/g++.dg/warn/Woverloaded-virt6.C
! a76f8c011f7ddc2da0e95c7f262c054c  gcc/testsuite/g++.dg/warn/Woverloaded-virt7.C
! ed47b8c395cb945f2a2c64f647e4116d  gcc/testsuite/g++.dg/warn/Woverloaded-virt8.C
! 1dd1e24513e3914c8a29b8cf3066d721  gcc/testsuite/g++.dg/warn/Woverloaded-virt9.C
! 80f3b5e026bd80f49e3cbfe73b1ed30c  gcc/testsuite/g++.dg/warn/Wpadded-1.C
  d1f22f759809f81b1b677be34f938b02  gcc/testsuite/g++.dg/warn/Wparentheses-1.C
  1fd66bda07d0d1a8f1625c816b321aae  gcc/testsuite/g++.dg/warn/Wparentheses-10.C
  593d167a09cfa3cfdaaf95d5d0955105  gcc/testsuite/g++.dg/warn/Wparentheses-11.C
*************** f54d3fb57e7ea75f1954d2671e769fd5  gcc/te
*** 30748,30754 ****
  e954d97d020134ab9743dd967500c3cf  gcc/testsuite/g++.dg/warn/Wparentheses-31.C
  20703e90b4d44787f4cb34f98f073efd  gcc/testsuite/g++.dg/warn/Wparentheses-32.C
  bb6a49b1d36e22b7925a075c706ebb2b  gcc/testsuite/g++.dg/warn/Wparentheses-33.C
! 5715add77608a997144c58745e404bf2  gcc/testsuite/g++.dg/warn/Wparentheses-34.C
  5cb9671988084dbee7c5cdf77fbbfa0c  gcc/testsuite/g++.dg/warn/Wparentheses-4.C
  2e05be0ce305723a94a4113e02835003  gcc/testsuite/g++.dg/warn/Wparentheses-5.C
  83fcd8ddf744b31d0e06101be5cc47fe  gcc/testsuite/g++.dg/warn/Wparentheses-6.C
--- 32862,32868 ----
  e954d97d020134ab9743dd967500c3cf  gcc/testsuite/g++.dg/warn/Wparentheses-31.C
  20703e90b4d44787f4cb34f98f073efd  gcc/testsuite/g++.dg/warn/Wparentheses-32.C
  bb6a49b1d36e22b7925a075c706ebb2b  gcc/testsuite/g++.dg/warn/Wparentheses-33.C
! 9cf0326730c6ef69782863643aeac359  gcc/testsuite/g++.dg/warn/Wparentheses-34.C
  5cb9671988084dbee7c5cdf77fbbfa0c  gcc/testsuite/g++.dg/warn/Wparentheses-4.C
  2e05be0ce305723a94a4113e02835003  gcc/testsuite/g++.dg/warn/Wparentheses-5.C
  83fcd8ddf744b31d0e06101be5cc47fe  gcc/testsuite/g++.dg/warn/Wparentheses-6.C
*************** bdd877cb0a1d1ac83c428e67ad0a5b39  gcc/te
*** 30761,30775 ****
  cdbb40e0e6f99e726332c11579b1d822  gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C
  d384bb1bb46e31c69b6a5c612b417019  gcc/testsuite/g++.dg/warn/Wplacement-new-size-3.C
  175ea195dd8d43c87f6e9050006ff679  gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C
! e191e992bff7bfd6c86ad6a14042ebe0  gcc/testsuite/g++.dg/warn/Wplacement-new-size-5.C
  ff02dfdca5384a6dba041d67fc7df02c  gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C
  0710efa8038e519865c2476304e6c15a  gcc/testsuite/g++.dg/warn/Wplacement-new-size-7.C
  0fb3af2ed13e25ac0782b4803b5b4512  gcc/testsuite/g++.dg/warn/Wplacement-new-size-8.C
  edc0bf3eb4f335c840738a8fe1732279  gcc/testsuite/g++.dg/warn/Wplacement-new-size-9.C
  378993931f53f053e2168ddac044d56f  gcc/testsuite/g++.dg/warn/Wplacement-new-size.C
  f828038b7b0977748fac3e57cac5a3da  gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C
  1d9458fc60d7d418323599b03b1bdb66  gcc/testsuite/g++.dg/warn/Wrange-loop-construct.C
  68ce3ed4f1a0e041fcb5b20b12b8ba42  gcc/testsuite/g++.dg/warn/Wrange-loop-construct2.C
  bc5f141d5ba64d906981c425b810d3ed  gcc/testsuite/g++.dg/warn/Wredundant-decls-spec.C
  f03226124ff1dcc1fed0a1fa8c9a335c  gcc/testsuite/g++.dg/warn/Wredundant-tags-2.C
  0369ff7656e712932961336c9fab1a58  gcc/testsuite/g++.dg/warn/Wredundant-tags-3.C
--- 32875,32891 ----
  cdbb40e0e6f99e726332c11579b1d822  gcc/testsuite/g++.dg/warn/Wplacement-new-size-2.C
  d384bb1bb46e31c69b6a5c612b417019  gcc/testsuite/g++.dg/warn/Wplacement-new-size-3.C
  175ea195dd8d43c87f6e9050006ff679  gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C
! c5797aa6c670c13e9af0d85adac2723b  gcc/testsuite/g++.dg/warn/Wplacement-new-size-5.C
  ff02dfdca5384a6dba041d67fc7df02c  gcc/testsuite/g++.dg/warn/Wplacement-new-size-6.C
  0710efa8038e519865c2476304e6c15a  gcc/testsuite/g++.dg/warn/Wplacement-new-size-7.C
  0fb3af2ed13e25ac0782b4803b5b4512  gcc/testsuite/g++.dg/warn/Wplacement-new-size-8.C
  edc0bf3eb4f335c840738a8fe1732279  gcc/testsuite/g++.dg/warn/Wplacement-new-size-9.C
  378993931f53f053e2168ddac044d56f  gcc/testsuite/g++.dg/warn/Wplacement-new-size.C
  f828038b7b0977748fac3e57cac5a3da  gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C
+ 814d61226c1854694a724faea030acbb  gcc/testsuite/g++.dg/warn/Wpragma-once-outside-header.C
  1d9458fc60d7d418323599b03b1bdb66  gcc/testsuite/g++.dg/warn/Wrange-loop-construct.C
  68ce3ed4f1a0e041fcb5b20b12b8ba42  gcc/testsuite/g++.dg/warn/Wrange-loop-construct2.C
+ 5bc140087fad838f5c93ce13d319a48e  gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C
  bc5f141d5ba64d906981c425b810d3ed  gcc/testsuite/g++.dg/warn/Wredundant-decls-spec.C
  f03226124ff1dcc1fed0a1fa8c9a335c  gcc/testsuite/g++.dg/warn/Wredundant-tags-2.C
  0369ff7656e712932961336c9fab1a58  gcc/testsuite/g++.dg/warn/Wredundant-tags-3.C
*************** ac4f08dd2a157d7c72adbbb04354e082  gcc/te
*** 30808,30813 ****
--- 32924,32930 ----
  ea532b8d02c84e413fb770ee0fdd34c7  gcc/testsuite/g++.dg/warn/Wreturn-type-8.C
  11c96d177204bba0d28acdba72d60115  gcc/testsuite/g++.dg/warn/Wreturn-type-9.C
  a7a9ceb17bae1bbfcadb47638a8de51c  gcc/testsuite/g++.dg/warn/Wself-move1.C
+ 82d1ceaea71f1c7588778233c158e40b  gcc/testsuite/g++.dg/warn/Wself-move2.C
  78a781a7fee9227b3174b6dee0ac20b3  gcc/testsuite/g++.dg/warn/Wsequence-point-1.C
  d0d6c5fe9b201bcd8b68523fbf3f0ce2  gcc/testsuite/g++.dg/warn/Wsequence-point-2.C
  21e8a0380962b41685ed2da030d6e679  gcc/testsuite/g++.dg/warn/Wsequence-point-3.C
*************** a230b0e143737a3bc87d7817fba9ff35  gcc/te
*** 30858,30864 ****
  292abb1414ad9c9591d43a1af528efb7  gcc/testsuite/g++.dg/warn/Wsizeof-array-div1.C
  cbcfc6b4d8223d306b12e82d62c0edd3  gcc/testsuite/g++.dg/warn/Wsizeof-array-div2.C
  4c64aadd127b32ed81f393d85d72b672  gcc/testsuite/g++.dg/warn/Wsizeof-array-div3.C
! e0c1598f06e0781562c2dec6e2bc4c5a  gcc/testsuite/g++.dg/warn/Wsizeof-pointer-memaccess-1.C
  44dc4b5572b60846a2322e12b0510783  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C
  414da1b51217d31e1c2f4c076e8fe650  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C
  c99391b2f8a50e512108d98c5c776a47  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C
--- 32975,32981 ----
  292abb1414ad9c9591d43a1af528efb7  gcc/testsuite/g++.dg/warn/Wsizeof-array-div1.C
  cbcfc6b4d8223d306b12e82d62c0edd3  gcc/testsuite/g++.dg/warn/Wsizeof-array-div2.C
  4c64aadd127b32ed81f393d85d72b672  gcc/testsuite/g++.dg/warn/Wsizeof-array-div3.C
! 45c81ce5b14cd87fe2504a702f1e4d6a  gcc/testsuite/g++.dg/warn/Wsizeof-pointer-memaccess-1.C
  44dc4b5572b60846a2322e12b0510783  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C
  414da1b51217d31e1c2f4c076e8fe650  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C
  c99391b2f8a50e512108d98c5c776a47  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C
*************** de6922f52681362a988b2a9e27c6e865  gcc/te
*** 30871,30879 ****
  d4573ac3640698442e2e693aacce94bb  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-char-1.C
  3ffa7e28e44cfc51fc6cff4c0ab7f94b  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-char-2.C
  ac260e0cd387ad68b172cae5830684be  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-const.C
! 7d718e1471f9c88db63a362d36027ca2  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape-2.C
  ef9cbc9a3736627428296e32dffe78fd  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape-3.C
! fd3e58149ce1fbe517a6bbeb205ae2d9  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape.C
  b84015e5a6773bd08e2a0f87ad5c4641  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-nested-arrays.C
  f345b06fca626501d991adc9447c18e0  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-placement-new.C
  466955c9310c236c76f3bbc5582969f8  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-signed-unsigned.C
--- 32988,32996 ----
  d4573ac3640698442e2e693aacce94bb  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-char-1.C
  3ffa7e28e44cfc51fc6cff4c0ab7f94b  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-char-2.C
  ac260e0cd387ad68b172cae5830684be  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-const.C
! 0a92d441db5c75d80cd71d844c758d20  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape-2.C
  ef9cbc9a3736627428296e32dffe78fd  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape-3.C
! 635b0131d11f8ff62e62c5020dc61f01  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape.C
  b84015e5a6773bd08e2a0f87ad5c4641  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-nested-arrays.C
  f345b06fca626501d991adc9447c18e0  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-placement-new.C
  466955c9310c236c76f3bbc5582969f8  gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-signed-unsigned.C
*************** a0b497dc1f8dc8ce49f81bc391f0deb1  gcc/te
*** 30890,30900 ****
  bab7e5656bf0736ab8cd5ae9256981d6  gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C
  38d9e0f462fe42c6229028728971ef78  gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C
  f78d73eca38df524917fc26885dc60f7  gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
! d1f308b2ce4d89fda2347e839404f085  gcc/testsuite/g++.dg/warn/Wstringop-overflow-5.C
! 1bab351a542f6d244c9a83d65c6f27d4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-6.C
  ea32c8c8b42add7fd76338f37d3b13e0  gcc/testsuite/g++.dg/warn/Wstringop-overflow-7.C
! 6375de29cae890fc7943bd82832a3c88  gcc/testsuite/g++.dg/warn/Wstringop-overflow-8.C
! d82f666f00c8743076b52f2debf12c0a  gcc/testsuite/g++.dg/warn/Wstringop-overread-1.C
  ac765247730b2bbd6e40254f091bba3e  gcc/testsuite/g++.dg/warn/Wstringop-truncation-1.C
  230957fbfce5bfd1d8785c192acd0be6  gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C
  4aec9a180c35fbd202eef17e2e9d1652  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
--- 33007,33017 ----
  bab7e5656bf0736ab8cd5ae9256981d6  gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C
  38d9e0f462fe42c6229028728971ef78  gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C
  f78d73eca38df524917fc26885dc60f7  gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
! 192adafcd56afe075dc85849e9365297  gcc/testsuite/g++.dg/warn/Wstringop-overflow-5.C
! f5063392391771bc6746e4f27242e3c7  gcc/testsuite/g++.dg/warn/Wstringop-overflow-6.C
  ea32c8c8b42add7fd76338f37d3b13e0  gcc/testsuite/g++.dg/warn/Wstringop-overflow-7.C
! 3905347263c3ef6314ee427c46f9f75c  gcc/testsuite/g++.dg/warn/Wstringop-overflow-8.C
! 9da93024fe1bbaf9dbebed8188388efb  gcc/testsuite/g++.dg/warn/Wstringop-overread-1.C
  ac765247730b2bbd6e40254f091bba3e  gcc/testsuite/g++.dg/warn/Wstringop-truncation-1.C
  230957fbfce5bfd1d8785c192acd0be6  gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C
  4aec9a180c35fbd202eef17e2e9d1652  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
*************** ec17a45e76ade076a9d23dd01ca9751f  gcc/te
*** 30914,30923 ****
  2908bb9b9b3a7ea3f41f0effd0934ce0  gcc/testsuite/g++.dg/warn/Wswitch-default-2.C
  cdae88e68f83f9f05a5c79241d1c14e0  gcc/testsuite/g++.dg/warn/Wswitch-unreachable-1.C
  f3c1709df3ec4758357725f37f37a661  gcc/testsuite/g++.dg/warn/Wsystem-headers1.C
! b59dc530212e2b55715a884d39fa09dc  gcc/testsuite/g++.dg/warn/Wsystem-headers1a.C
  2ecf88082b48d7df37c9334c2844b614  gcc/testsuite/g++.dg/warn/Wtautological-compare.C
  239ced8be8851ec6043b4692f9b00ec1  gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
  6a0a00683f536a5822e62da415a84001  gcc/testsuite/g++.dg/warn/Wtautological-compare3.C
  c6c7ba2f206cc6d9ca4eb83b5ab9c4b5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-1.C
  e8e6d8b58bf8e28b159fbd79ac34b0e1  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-2.C
  f97d8dbd17bfd6ac46b084f656cd92f5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-3.C
--- 33031,33041 ----
  2908bb9b9b3a7ea3f41f0effd0934ce0  gcc/testsuite/g++.dg/warn/Wswitch-default-2.C
  cdae88e68f83f9f05a5c79241d1c14e0  gcc/testsuite/g++.dg/warn/Wswitch-unreachable-1.C
  f3c1709df3ec4758357725f37f37a661  gcc/testsuite/g++.dg/warn/Wsystem-headers1.C
! cfe2f16b030c38774f87e1875c65810a  gcc/testsuite/g++.dg/warn/Wsystem-headers1a.C
  2ecf88082b48d7df37c9334c2844b614  gcc/testsuite/g++.dg/warn/Wtautological-compare.C
  239ced8be8851ec6043b4692f9b00ec1  gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
  6a0a00683f536a5822e62da415a84001  gcc/testsuite/g++.dg/warn/Wtautological-compare3.C
+ 10afe25bc196e1d35a2e801587319ce9  gcc/testsuite/g++.dg/warn/Wtautological-compare4.C
  c6c7ba2f206cc6d9ca4eb83b5ab9c4b5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-1.C
  e8e6d8b58bf8e28b159fbd79ac34b0e1  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-2.C
  f97d8dbd17bfd6ac46b084f656cd92f5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-3.C
*************** ff7e55750a566580a7e5b746cf7dfa22  gcc/te
*** 30959,30965 ****
  39f7eedf0fd2f2f37ba740674e0e8b37  gcc/testsuite/g++.dg/warn/Wuninitialized-30.C
  d6ab64b605a24d07d95eb4282b431dac  gcc/testsuite/g++.dg/warn/Wuninitialized-31.C
  396db29dd4ffacf13fccefd03552734c  gcc/testsuite/g++.dg/warn/Wuninitialized-32.C
! e78084d6db2698f85d0e705a603998fa  gcc/testsuite/g++.dg/warn/Wuninitialized-33.C
  954ee8a8c8588bbf10d0e828d4c5c2f7  gcc/testsuite/g++.dg/warn/Wuninitialized-34.C
  be5b47714ba41b25933660896d6c7427  gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
  1f013ef9d737e679cea70e842d47a7ce  gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
--- 33077,33083 ----
  39f7eedf0fd2f2f37ba740674e0e8b37  gcc/testsuite/g++.dg/warn/Wuninitialized-30.C
  d6ab64b605a24d07d95eb4282b431dac  gcc/testsuite/g++.dg/warn/Wuninitialized-31.C
  396db29dd4ffacf13fccefd03552734c  gcc/testsuite/g++.dg/warn/Wuninitialized-32.C
! 29d21222d7cb71568891661c219f4c98  gcc/testsuite/g++.dg/warn/Wuninitialized-33.C
  954ee8a8c8588bbf10d0e828d4c5c2f7  gcc/testsuite/g++.dg/warn/Wuninitialized-34.C
  be5b47714ba41b25933660896d6c7427  gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
  1f013ef9d737e679cea70e842d47a7ce  gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
*************** be5b47714ba41b25933660896d6c7427  gcc/te
*** 30967,30974 ****
  39473618f9d65a4934a59f824d12279a  gcc/testsuite/g++.dg/warn/Wuninitialized-7.C
  9499c4dafb0ba272277b5ed41c0cf76b  gcc/testsuite/g++.dg/warn/Wuninitialized-8.C
  cbc63320f1b9587eb653a962d61c8945  gcc/testsuite/g++.dg/warn/Wuninitialized-9.C
! 0882591d7986fa7a13117b45f37daa8d  gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
! 03352e975df734d6adc83d356f8c2add  gcc/testsuite/g++.dg/warn/Wuninitialized-pr111123-1.C
  d08f8f4d2f55349741193b20c16afa1a  gcc/testsuite/g++.dg/warn/Wunused-1.C
  09723811a7331dcc7580068bdfe05710  gcc/testsuite/g++.dg/warn/Wunused-10.C
  509e856e0fc2084da098b641f1d63e89  gcc/testsuite/g++.dg/warn/Wunused-11.C
--- 33085,33092 ----
  39473618f9d65a4934a59f824d12279a  gcc/testsuite/g++.dg/warn/Wuninitialized-7.C
  9499c4dafb0ba272277b5ed41c0cf76b  gcc/testsuite/g++.dg/warn/Wuninitialized-8.C
  cbc63320f1b9587eb653a962d61c8945  gcc/testsuite/g++.dg/warn/Wuninitialized-9.C
! 3f1d008635671f4ca156987bbb52df4f  gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
! e8651e5eee4fc815deb4568177437a39  gcc/testsuite/g++.dg/warn/Wuninitialized-pr111123-1.C
  d08f8f4d2f55349741193b20c16afa1a  gcc/testsuite/g++.dg/warn/Wunused-1.C
  09723811a7331dcc7580068bdfe05710  gcc/testsuite/g++.dg/warn/Wunused-10.C
  509e856e0fc2084da098b641f1d63e89  gcc/testsuite/g++.dg/warn/Wunused-11.C
*************** aa054897a9a999252af634fb37c47a72  gcc/te
*** 30981,30986 ****
--- 33099,33105 ----
  33878a9da8e50ae35fbb0fff902b70f9  gcc/testsuite/g++.dg/warn/Wunused-18.C
  488569a164e9095f261a293811daf94b  gcc/testsuite/g++.dg/warn/Wunused-19.C
  b2e5b74ee5fb6060bcc71f2dc3c382d1  gcc/testsuite/g++.dg/warn/Wunused-2.C
+ 1543a2c294ddaa2bc5b395afa718639a  gcc/testsuite/g++.dg/warn/Wunused-20.C
  100b96f03eb66e7fa747a34b5fb876bb  gcc/testsuite/g++.dg/warn/Wunused-3.C
  2a408c99296d8b89eff20f87c2ea2d51  gcc/testsuite/g++.dg/warn/Wunused-4.C
  a1eac98a6496704d61be03bb58327d0f  gcc/testsuite/g++.dg/warn/Wunused-5.C
*************** b34fd3a8e6fc2ca19e369ffca3d3e57c  gcc/te
*** 30995,31000 ****
--- 33114,33120 ----
  35cb7d556d19aea81d449a8565f7e5db  gcc/testsuite/g++.dg/warn/Wunused-label-1.C
  0c7d97044e723227e4b7e6aaa771fe52  gcc/testsuite/g++.dg/warn/Wunused-label-2.C
  9253c84c85578a9be7b3d8ee8473bfbe  gcc/testsuite/g++.dg/warn/Wunused-label-3.C
+ 03b2a3e3d087dfdf248d0f1842d37ace  gcc/testsuite/g++.dg/warn/Wunused-label-4.C
  7d58f0ddeddeb6ad8bef3afe3558df88  gcc/testsuite/g++.dg/warn/Wunused-local-typedefs-2.C
  96299d5e038999c130b95569f8d19fd5  gcc/testsuite/g++.dg/warn/Wunused-local-typedefs-3.C
  3335023097e79a638c6beb852ffb673c  gcc/testsuite/g++.dg/warn/Wunused-local-typedefs-4.C
*************** fba202d17d94d19c21e05a678c6a5ab1  gcc/te
*** 31022,31028 ****
  9dc537daf68b0277551461969cabca13  gcc/testsuite/g++.dg/warn/Wunused-var-15.C
  66a1e17af38ca1ea6cfca09567fa2508  gcc/testsuite/g++.dg/warn/Wunused-var-16.C
  26afd4814c461a850bb5b98f2faac581  gcc/testsuite/g++.dg/warn/Wunused-var-17.C
! b44ce135d8c96099ca5e30272b8ceaa0  gcc/testsuite/g++.dg/warn/Wunused-var-18.C
  aabf762ebe53d9bdf29cd7607fc1fe32  gcc/testsuite/g++.dg/warn/Wunused-var-19.C
  6f250a1bec102f3ef4c4450109985c6c  gcc/testsuite/g++.dg/warn/Wunused-var-2.C
  e7274165f26fc70eff73fddbd77e3811  gcc/testsuite/g++.dg/warn/Wunused-var-20.C
--- 33142,33148 ----
  9dc537daf68b0277551461969cabca13  gcc/testsuite/g++.dg/warn/Wunused-var-15.C
  66a1e17af38ca1ea6cfca09567fa2508  gcc/testsuite/g++.dg/warn/Wunused-var-16.C
  26afd4814c461a850bb5b98f2faac581  gcc/testsuite/g++.dg/warn/Wunused-var-17.C
! e7d34b3674b2f48e1e13a1327b53930d  gcc/testsuite/g++.dg/warn/Wunused-var-18.C
  aabf762ebe53d9bdf29cd7607fc1fe32  gcc/testsuite/g++.dg/warn/Wunused-var-19.C
  6f250a1bec102f3ef4c4450109985c6c  gcc/testsuite/g++.dg/warn/Wunused-var-2.C
  e7274165f26fc70eff73fddbd77e3811  gcc/testsuite/g++.dg/warn/Wunused-var-20.C
*************** e458d0fab0b37edff03370ba4ad52623  gcc/te
*** 31062,31067 ****
--- 33182,33188 ----
  ff8ed0a4ce8ad573aa89f6b015e4a122  gcc/testsuite/g++.dg/warn/Wuseless-cast2.C
  9accdd115e85d99f4c1e968e50ca384c  gcc/testsuite/g++.dg/warn/Wuseless-cast3.C
  9de23321d5ac135de5ba8afa251a359a  gcc/testsuite/g++.dg/warn/Wvexing-parse.C
+ 3a85416d9831102f6f2a2f0ece36f71c  gcc/testsuite/g++.dg/warn/Wvexing-parse10.C
  47c8ae3dc7144acf6191de59ea2930a1  gcc/testsuite/g++.dg/warn/Wvexing-parse2.C
  8a7c0f92b372b8761c8b842613d7c6a2  gcc/testsuite/g++.dg/warn/Wvexing-parse3.C
  3fac6f840c6c078c1a73ebf0a6226bc0  gcc/testsuite/g++.dg/warn/Wvexing-parse4.C
*************** f2bb4485db599cd0184c6c1cef7cf684  gcc/te
*** 31070,31078 ****
  19bd8d58d1a88735a0180d4b273d11aa  gcc/testsuite/g++.dg/warn/Wvexing-parse7.C
  d9a45a5f137b824cf2e42d19538b272c  gcc/testsuite/g++.dg/warn/Wvexing-parse8.C
  a62668dfe3d8bd1ab5ff6a40912827c3  gcc/testsuite/g++.dg/warn/Wvexing-parse9.C
! 1ba3b36134af7d809fb68326b89b016f  gcc/testsuite/g++.dg/warn/Wvla-1.C
  e0a59089f41c9b702723e5c098e4302b  gcc/testsuite/g++.dg/warn/Wvla-2.C
! f5b2f2c118a7c1b3e90a8636387dc180  gcc/testsuite/g++.dg/warn/Wvla-3.C
  4b86ec96b8c58e1bbabfdf20ce1ca6c0  gcc/testsuite/g++.dg/warn/Wwrite-strings-1.C
  b28bf2e46803ce42c611388236ffeabb  gcc/testsuite/g++.dg/warn/Wwrite-strings-10.C
  981dbe53220f3659fdc8fce245892cbb  gcc/testsuite/g++.dg/warn/Wwrite-strings-11.C
--- 33191,33199 ----
  19bd8d58d1a88735a0180d4b273d11aa  gcc/testsuite/g++.dg/warn/Wvexing-parse7.C
  d9a45a5f137b824cf2e42d19538b272c  gcc/testsuite/g++.dg/warn/Wvexing-parse8.C
  a62668dfe3d8bd1ab5ff6a40912827c3  gcc/testsuite/g++.dg/warn/Wvexing-parse9.C
! 997e1a10b9bebdb79dcda4d37b36c1af  gcc/testsuite/g++.dg/warn/Wvla-1.C
  e0a59089f41c9b702723e5c098e4302b  gcc/testsuite/g++.dg/warn/Wvla-2.C
! 43ab54c8c4c6f2ba5ea4192d282a669e  gcc/testsuite/g++.dg/warn/Wvla-3.C
  4b86ec96b8c58e1bbabfdf20ce1ca6c0  gcc/testsuite/g++.dg/warn/Wwrite-strings-1.C
  b28bf2e46803ce42c611388236ffeabb  gcc/testsuite/g++.dg/warn/Wwrite-strings-10.C
  981dbe53220f3659fdc8fce245892cbb  gcc/testsuite/g++.dg/warn/Wwrite-strings-11.C
*************** c935eb4f9165b002b3615d052e7ee8db  gcc/te
*** 31134,31140 ****
--- 33255,33264 ----
  d5e518a89029e53244731ceed8c64fc4  gcc/testsuite/g++.dg/warn/deprecated-16.C
  0fb7e93661517b2d46da504d60c18ce0  gcc/testsuite/g++.dg/warn/deprecated-17.C
  5ba17fcb74188f6bd8e6e540093b8cd8  gcc/testsuite/g++.dg/warn/deprecated-18.C
+ 9d49cad4f7ce388a9d0cdf8f5f5621fb  gcc/testsuite/g++.dg/warn/deprecated-19.C
  26bafcbe2a9f3729e0b0e2ff8ccf5317  gcc/testsuite/g++.dg/warn/deprecated-2.C
+ a0b26ea4922bc88a4f4ca39b3ee18d6f  gcc/testsuite/g++.dg/warn/deprecated-20.C
+ d49d9ec1f461eba29eaa5264d9b35572  gcc/testsuite/g++.dg/warn/deprecated-21.C
  482df2a6c06bdf9046c6729484298715  gcc/testsuite/g++.dg/warn/deprecated-3.C
  98c2c2dc0644115f45902f826dc56a04  gcc/testsuite/g++.dg/warn/deprecated-4.C
  9fb0087e50484de53d979d8e849be2eb  gcc/testsuite/g++.dg/warn/deprecated-5.C
*************** ea529389c86d5a43c531a82630dfde8b  gcc/te
*** 31150,31156 ****
  4a0f0aecda6783c6d0892554af1a77e3  gcc/testsuite/g++.dg/warn/effc4.C
  e23a1b891d60e3aeee8455c892107582  gcc/testsuite/g++.dg/warn/effc5.C
  9362e9b4176e1dea1998f49b49d8bbcc  gcc/testsuite/g++.dg/warn/empty-body.C
! 931d147f4baed695f1a67ae899cebd03  gcc/testsuite/g++.dg/warn/format1.C
  77cfd7b8f34afd97ff68bc102b6c6fc6  gcc/testsuite/g++.dg/warn/format2.C
  449301e4fc095134d15ba50f081d6eb2  gcc/testsuite/g++.dg/warn/format3.C
  127a75cc2feba3be6bc12b766e660668  gcc/testsuite/g++.dg/warn/format4.C
--- 33274,33280 ----
  4a0f0aecda6783c6d0892554af1a77e3  gcc/testsuite/g++.dg/warn/effc4.C
  e23a1b891d60e3aeee8455c892107582  gcc/testsuite/g++.dg/warn/effc5.C
  9362e9b4176e1dea1998f49b49d8bbcc  gcc/testsuite/g++.dg/warn/empty-body.C
! 325694ab9629de82b625e481c46c8fef  gcc/testsuite/g++.dg/warn/format1.C
  77cfd7b8f34afd97ff68bc102b6c6fc6  gcc/testsuite/g++.dg/warn/format2.C
  449301e4fc095134d15ba50f081d6eb2  gcc/testsuite/g++.dg/warn/format3.C
  127a75cc2feba3be6bc12b766e660668  gcc/testsuite/g++.dg/warn/format4.C
*************** cf1e5660ee1cd060f1bf1da012306d6b  gcc/te
*** 31160,31172 ****
  73f4dcb572247643b18b851965928450  gcc/testsuite/g++.dg/warn/format8.C
  b54db3adf6b298085f3c9eaca4c15e9d  gcc/testsuite/g++.dg/warn/forward-inner.C
  0163a6a329fdf7f5efa7b908b04848a0  gcc/testsuite/g++.dg/warn/friend.C
! e81d20f2a65cb672129118ceab24cd3e  gcc/testsuite/g++.dg/warn/huge-val1.C
  450618a497d9ab1567d9bc1ed188ded4  gcc/testsuite/g++.dg/warn/if-empty-1.C
  8ab4f00d5edff6f6c7baa38049347237  gcc/testsuite/g++.dg/warn/ignored_typedef.C
  d75c242679a546679f0392d6a34e741e  gcc/testsuite/g++.dg/warn/implicit-typename1.C
  f69540cf16bb392d5bf1e5edfc8e067e  gcc/testsuite/g++.dg/warn/implicit-typename2.C
  5d559af51cd6e5fbe0dbb5a62a5d3366  gcc/testsuite/g++.dg/warn/implicit-typename3.C
! 94ca8d468cd6c83f22a979c88ee9fbd4  gcc/testsuite/g++.dg/warn/incomplete1.C
  91c62256f30105a26fc3b802f591bfa5  gcc/testsuite/g++.dg/warn/incomplete2.C
  766fc32fbc1f9be1188efd240c05e45d  gcc/testsuite/g++.dg/warn/inline1.C
  7c84293b9be13f3fdd30d3803765a5c4  gcc/testsuite/g++.dg/warn/inline2.C
--- 33284,33296 ----
  73f4dcb572247643b18b851965928450  gcc/testsuite/g++.dg/warn/format8.C
  b54db3adf6b298085f3c9eaca4c15e9d  gcc/testsuite/g++.dg/warn/forward-inner.C
  0163a6a329fdf7f5efa7b908b04848a0  gcc/testsuite/g++.dg/warn/friend.C
! ea8f671b2bb3779aa95332d127cb7dc4  gcc/testsuite/g++.dg/warn/huge-val1.C
  450618a497d9ab1567d9bc1ed188ded4  gcc/testsuite/g++.dg/warn/if-empty-1.C
  8ab4f00d5edff6f6c7baa38049347237  gcc/testsuite/g++.dg/warn/ignored_typedef.C
  d75c242679a546679f0392d6a34e741e  gcc/testsuite/g++.dg/warn/implicit-typename1.C
  f69540cf16bb392d5bf1e5edfc8e067e  gcc/testsuite/g++.dg/warn/implicit-typename2.C
  5d559af51cd6e5fbe0dbb5a62a5d3366  gcc/testsuite/g++.dg/warn/implicit-typename3.C
! 56caa21384c9c869f0e151d737bbe953  gcc/testsuite/g++.dg/warn/incomplete1.C
  91c62256f30105a26fc3b802f591bfa5  gcc/testsuite/g++.dg/warn/incomplete2.C
  766fc32fbc1f9be1188efd240c05e45d  gcc/testsuite/g++.dg/warn/inline1.C
  7c84293b9be13f3fdd30d3803765a5c4  gcc/testsuite/g++.dg/warn/inline2.C
*************** de1b2bdd382eea21689902d72c1f4f75  gcc/te
*** 31202,31208 ****
  40efbe938691eeff621e7ef02235827f  gcc/testsuite/g++.dg/warn/nonnull1.C
  a04c9228fbe9bbea934a717a02c80bc8  gcc/testsuite/g++.dg/warn/nonnull2.C
  1f84f6d442742321f3079f1e43f01a09  gcc/testsuite/g++.dg/warn/nonnull3.C
! acf9323dc369473d47e1a02ca5461933  gcc/testsuite/g++.dg/warn/noreturn-1.C
  6853d83a67277d2e262a9cc7a92b57a1  gcc/testsuite/g++.dg/warn/noreturn-10.C
  dee7ca3d06c66c6545e0c12f82bad272  gcc/testsuite/g++.dg/warn/noreturn-11.C
  10a2dc88ff4acf5169ed37d5b483050b  gcc/testsuite/g++.dg/warn/noreturn-2.C
--- 33326,33332 ----
  40efbe938691eeff621e7ef02235827f  gcc/testsuite/g++.dg/warn/nonnull1.C
  a04c9228fbe9bbea934a717a02c80bc8  gcc/testsuite/g++.dg/warn/nonnull2.C
  1f84f6d442742321f3079f1e43f01a09  gcc/testsuite/g++.dg/warn/nonnull3.C
! f7a95b94bfa504f55a2051960a30b1ad  gcc/testsuite/g++.dg/warn/noreturn-1.C
  6853d83a67277d2e262a9cc7a92b57a1  gcc/testsuite/g++.dg/warn/noreturn-10.C
  dee7ca3d06c66c6545e0c12f82bad272  gcc/testsuite/g++.dg/warn/noreturn-11.C
  10a2dc88ff4acf5169ed37d5b483050b  gcc/testsuite/g++.dg/warn/noreturn-2.C
*************** cc35779b6305bb8c111aecea1f3f7d25  gcc/te
*** 31232,31239 ****
--- 33356,33365 ----
  edc1a994e1246279f2c5c7c45650e061  gcc/testsuite/g++.dg/warn/pr104492.C
  41723c6a15ab6dfc9c0db2c118c357a5  gcc/testsuite/g++.dg/warn/pr108285.C
  1ba5741dd0aa023aa23edc39041b235e  gcc/testsuite/g++.dg/warn/pr108365.C
+ 11a8103cb14f7884046d2050f6dec14e  gcc/testsuite/g++.dg/warn/pr109224.C
  adea0a023eba0c3c51b6a4894014d35a  gcc/testsuite/g++.dg/warn/pr11159.C
  f257fca4d00c8c67aa2b9d6e43ee906f  gcc/testsuite/g++.dg/warn/pr11492.C
+ b095255e81269c7739d80713d78edfb0  gcc/testsuite/g++.dg/warn/pr117825.C
  5fab7f879534ef351718dc73d825b667  gcc/testsuite/g++.dg/warn/pr12242.C
  5ea14e490362652b825c770f9d00d814  gcc/testsuite/g++.dg/warn/pr13358-2.C
  5af7a1b2eded6ae8e6b38e3c1b5e15a6  gcc/testsuite/g++.dg/warn/pr13358-3.C
*************** a7158d5a1d0acfa018bf80fecfe8aa6e  gcc/te
*** 31251,31257 ****
  2335a6a13a3634cd31c8940df29ec229  gcc/testsuite/g++.dg/warn/pr30551.C
  40f3a713eb0d35566b12333645fb0772  gcc/testsuite/g++.dg/warn/pr30636.C
  e8794ff206600f5a49415327a54a5bf8  gcc/testsuite/g++.dg/warn/pr33160.C
! ef9d28c7b4fdb258a14e4c63ce80a6a4  gcc/testsuite/g++.dg/warn/pr33738.C
  78c676c6637b4d7cf784aaf33aaa6b18  gcc/testsuite/g++.dg/warn/pr34985.C
  50363ca948a4d64c43b9acf226a68ae9  gcc/testsuite/g++.dg/warn/pr35602.C
  7ac0e2111d98cd66ad3f9dbe115e7700  gcc/testsuite/g++.dg/warn/pr35635.C
--- 33377,33384 ----
  2335a6a13a3634cd31c8940df29ec229  gcc/testsuite/g++.dg/warn/pr30551.C
  40f3a713eb0d35566b12333645fb0772  gcc/testsuite/g++.dg/warn/pr30636.C
  e8794ff206600f5a49415327a54a5bf8  gcc/testsuite/g++.dg/warn/pr33160.C
! 3e13ab71a3afa293d8362ca5e0e44af2  gcc/testsuite/g++.dg/warn/pr33738-2.C
! 5623e66f6f3f91268ffcc07a22237e70  gcc/testsuite/g++.dg/warn/pr33738.C
  78c676c6637b4d7cf784aaf33aaa6b18  gcc/testsuite/g++.dg/warn/pr34985.C
  50363ca948a4d64c43b9acf226a68ae9  gcc/testsuite/g++.dg/warn/pr35602.C
  7ac0e2111d98cd66ad3f9dbe115e7700  gcc/testsuite/g++.dg/warn/pr35635.C
*************** fb0ed1392cbdeb787735900d17b8c33a  gcc/te
*** 31262,31268 ****
  b731b5d32c1f477ed23555d37dcf870a  gcc/testsuite/g++.dg/warn/pr36999.C
  89c64e7b581401ee2f6738f0d18e7483  gcc/testsuite/g++.dg/warn/pr5310.C
  6421a1ed78a5d7624b4d5f88e8d92add  gcc/testsuite/g++.dg/warn/pr5645.C
! 72fb841aa429f78f0934f4bc0bd3edc1  gcc/testsuite/g++.dg/warn/pr61945.C
  70f21eda14d944ba09e0f2a624291f2f  gcc/testsuite/g++.dg/warn/pr77496.C
  62fde56fd55223e0af2436edca399912  gcc/testsuite/g++.dg/warn/pr79290.C
  a57e4640a3dda500c8eb3374c6e1ae4c  gcc/testsuite/g++.dg/warn/pr80635-1.C
--- 33389,33395 ----
  b731b5d32c1f477ed23555d37dcf870a  gcc/testsuite/g++.dg/warn/pr36999.C
  89c64e7b581401ee2f6738f0d18e7483  gcc/testsuite/g++.dg/warn/pr5310.C
  6421a1ed78a5d7624b4d5f88e8d92add  gcc/testsuite/g++.dg/warn/pr5645.C
! 6d18889ce20c74b729987356a757888e  gcc/testsuite/g++.dg/warn/pr61945.C
  70f21eda14d944ba09e0f2a624291f2f  gcc/testsuite/g++.dg/warn/pr77496.C
  62fde56fd55223e0af2436edca399912  gcc/testsuite/g++.dg/warn/pr79290.C
  a57e4640a3dda500c8eb3374c6e1ae4c  gcc/testsuite/g++.dg/warn/pr80635-1.C
*************** ad593aaafdf4b211b08e5be6b3abc282  gcc/te
*** 31316,31329 ****
  df6eec31c99dfed294a6e4192dd69f3f  gcc/testsuite/g++.dg/warn/sequence-pt-pr17880.C
  67a0e31346c32b568b1d0584a5c6a3bc  gcc/testsuite/g++.dg/warn/skip-1.C
  4bf091c9b94c31660c0d977448470862  gcc/testsuite/g++.dg/warn/skip-2.C
! 7378ed0e14c995a8280ca89ec8d80e8f  gcc/testsuite/g++.dg/warn/string1.C
  cbeb61a079567f59bdce9faa40877398  gcc/testsuite/g++.dg/warn/switch1.C
  6f90eb3a0f4a4e7f096197fba7797aff  gcc/testsuite/g++.dg/warn/template-1.C
  70adf2e2f20bd052cfca2787bd225b0c  gcc/testsuite/g++.dg/warn/template-2.C
  6f5999bf56f2861a257750422cda17b6  gcc/testsuite/g++.dg/warn/translate-ice-1.C
  81ccb812ec92857cf80d860b4ffa0d31  gcc/testsuite/g++.dg/warn/undefined1.C
  338b16478b2b401f31f40a2d7b08dfb1  gcc/testsuite/g++.dg/warn/uninit-1.C
! c439e6ca6ae1ca3377fa6507bf891b6c  gcc/testsuite/g++.dg/warn/uninit-pr105562.C
  69c608be9c8c02e5a60a4342603a5fac  gcc/testsuite/g++.dg/warn/uninit-pr48483.C
  75fa85b1e27813223938d58d1e38e67f  gcc/testsuite/g++.dg/warn/uninit-pr55288.C
  f3fc1f6861ab16ba7eaf8a5da2bda79e  gcc/testsuite/g++.dg/warn/uninit-pr55881.C
--- 33443,33457 ----
  df6eec31c99dfed294a6e4192dd69f3f  gcc/testsuite/g++.dg/warn/sequence-pt-pr17880.C
  67a0e31346c32b568b1d0584a5c6a3bc  gcc/testsuite/g++.dg/warn/skip-1.C
  4bf091c9b94c31660c0d977448470862  gcc/testsuite/g++.dg/warn/skip-2.C
! 2624dd92c71c1c36984bc6829e0b0aa9  gcc/testsuite/g++.dg/warn/string1.C
  cbeb61a079567f59bdce9faa40877398  gcc/testsuite/g++.dg/warn/switch1.C
  6f90eb3a0f4a4e7f096197fba7797aff  gcc/testsuite/g++.dg/warn/template-1.C
  70adf2e2f20bd052cfca2787bd225b0c  gcc/testsuite/g++.dg/warn/template-2.C
  6f5999bf56f2861a257750422cda17b6  gcc/testsuite/g++.dg/warn/translate-ice-1.C
  81ccb812ec92857cf80d860b4ffa0d31  gcc/testsuite/g++.dg/warn/undefined1.C
+ ea3b303b6284894a2a7543bc63c639eb  gcc/testsuite/g++.dg/warn/undefined2.C
  338b16478b2b401f31f40a2d7b08dfb1  gcc/testsuite/g++.dg/warn/uninit-1.C
! 5b9925eda3d5e95c28b41c88e9f476ab  gcc/testsuite/g++.dg/warn/uninit-pr105562.C
  69c608be9c8c02e5a60a4342603a5fac  gcc/testsuite/g++.dg/warn/uninit-pr48483.C
  75fa85b1e27813223938d58d1e38e67f  gcc/testsuite/g++.dg/warn/uninit-pr55288.C
  f3fc1f6861ab16ba7eaf8a5da2bda79e  gcc/testsuite/g++.dg/warn/uninit-pr55881.C
*************** cb2dc9676afd95b7735a016564c8fd0c  gcc/te
*** 31332,31338 ****
  28f5cbc738c708f5e12210ff79249ce5  gcc/testsuite/g++.dg/warn/uninit-pr93100.C
  f61b425b296038544edfc817dc29fd84  gcc/testsuite/g++.dg/warn/unit-1.C
  b90595080713a3c154e188ca44093e52  gcc/testsuite/g++.dg/warn/unused-fn1.C
! d10b13b30c4f610f231317924054b5ee  gcc/testsuite/g++.dg/warn/unused-result1-Werror.c
  c3c7b4b0c968cb9b44b95aca9b7f230c  gcc/testsuite/g++.dg/warn/unused-result1.C
  60e5107e15d044700e3bfc98d2aeddb0  gcc/testsuite/g++.dg/warn/unused-variable-1.C
  615616e30d583e5408398e8cd71ab579  gcc/testsuite/g++.dg/warn/unused-variable-2.C
--- 33460,33466 ----
  28f5cbc738c708f5e12210ff79249ce5  gcc/testsuite/g++.dg/warn/uninit-pr93100.C
  f61b425b296038544edfc817dc29fd84  gcc/testsuite/g++.dg/warn/unit-1.C
  b90595080713a3c154e188ca44093e52  gcc/testsuite/g++.dg/warn/unused-fn1.C
! d10b13b30c4f610f231317924054b5ee  gcc/testsuite/g++.dg/warn/unused-result1-Werror.C
  c3c7b4b0c968cb9b44b95aca9b7f230c  gcc/testsuite/g++.dg/warn/unused-result1.C
  60e5107e15d044700e3bfc98d2aeddb0  gcc/testsuite/g++.dg/warn/unused-variable-1.C
  615616e30d583e5408398e8cd71ab579  gcc/testsuite/g++.dg/warn/unused-variable-2.C
*************** b7f5a1ba1143dce1dc12328785c4adc2  gcc/te
*** 31356,31365 ****
  e0f22f49342e56e463159c6afc905367  gcc/testsuite/g++.dg/wrappers/wrapper-around-type-pack-expansion.C
  1cdb371f2e69de6a5ce47c572f798792  gcc/testsuite/g++.old-deja/g++.abi/aggregates.C
  ce9ca8f244fec164cb519029110d5c74  gcc/testsuite/g++.old-deja/g++.abi/align.C
! c64fc2b155672121ad97bcef7f926939  gcc/testsuite/g++.old-deja/g++.abi/arraynew.C
  811b66f6f326ad47076d1bf6651e452c  gcc/testsuite/g++.old-deja/g++.abi/bitfields.C
  cadb8d830b6294a594d395f81b7e01d7  gcc/testsuite/g++.old-deja/g++.abi/crash1.C
! 06bd32f5e9ea8b68ebc38fb4d69b5464  gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
  0986f0fa6e2b1e040a29e2f45b5ad7ab  gcc/testsuite/g++.old-deja/g++.abi/empty.C
  29fb727b0033afcb4e2ef33e88bc3cc3  gcc/testsuite/g++.old-deja/g++.abi/empty2.C
  3008954886dc6032553976cfe7d8866b  gcc/testsuite/g++.old-deja/g++.abi/empty3.C
--- 33484,33493 ----
  e0f22f49342e56e463159c6afc905367  gcc/testsuite/g++.dg/wrappers/wrapper-around-type-pack-expansion.C
  1cdb371f2e69de6a5ce47c572f798792  gcc/testsuite/g++.old-deja/g++.abi/aggregates.C
  ce9ca8f244fec164cb519029110d5c74  gcc/testsuite/g++.old-deja/g++.abi/align.C
! 89baf1078d3472a899dcd673d84d03dc  gcc/testsuite/g++.old-deja/g++.abi/arraynew.C
  811b66f6f326ad47076d1bf6651e452c  gcc/testsuite/g++.old-deja/g++.abi/bitfields.C
  cadb8d830b6294a594d395f81b7e01d7  gcc/testsuite/g++.old-deja/g++.abi/crash1.C
! 2853e9ad7a782e74e085163b6e99d810  gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
  0986f0fa6e2b1e040a29e2f45b5ad7ab  gcc/testsuite/g++.old-deja/g++.abi/empty.C
  29fb727b0033afcb4e2ef33e88bc3cc3  gcc/testsuite/g++.old-deja/g++.abi/empty2.C
  3008954886dc6032553976cfe7d8866b  gcc/testsuite/g++.old-deja/g++.abi/empty3.C
*************** aa70acbcac721d041f597b57b2ec733b  gcc/te
*** 31383,31389 ****
  55753064a6448159c52e77b933d914df  gcc/testsuite/g++.old-deja/g++.abi/vbase8-9.C
  445d95964ba4a777690cdf56c7f1bcb7  gcc/testsuite/g++.old-deja/g++.abi/vmihint.C
  305181b858f05a2e683bd7322f635642  gcc/testsuite/g++.old-deja/g++.abi/vtable.C
! 9401b9deb87c23e3079e9ee11f103908  gcc/testsuite/g++.old-deja/g++.abi/vtable2.C
  f43645b177185eca1785bb1bc24abcc7  gcc/testsuite/g++.old-deja/g++.abi/vtable3.h
  335628c4bb776c7871e9beac4869bf89  gcc/testsuite/g++.old-deja/g++.abi/vtable3a.C
  56ddac7d105a11ccda8236145c04d603  gcc/testsuite/g++.old-deja/g++.abi/vtable3b.C
--- 33511,33517 ----
  55753064a6448159c52e77b933d914df  gcc/testsuite/g++.old-deja/g++.abi/vbase8-9.C
  445d95964ba4a777690cdf56c7f1bcb7  gcc/testsuite/g++.old-deja/g++.abi/vmihint.C
  305181b858f05a2e683bd7322f635642  gcc/testsuite/g++.old-deja/g++.abi/vtable.C
! 2458491fca77d8225b6a78f696b11eea  gcc/testsuite/g++.old-deja/g++.abi/vtable2.C
  f43645b177185eca1785bb1bc24abcc7  gcc/testsuite/g++.old-deja/g++.abi/vtable3.h
  335628c4bb776c7871e9beac4869bf89  gcc/testsuite/g++.old-deja/g++.abi/vtable3a.C
  56ddac7d105a11ccda8236145c04d603  gcc/testsuite/g++.old-deja/g++.abi/vtable3b.C
*************** d6f0470ac6fca8cc091e4f0cc4733335  gcc/te
*** 31403,31409 ****
  e62c55b6d5bb49ff0c0f8278531c188c  gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C
  d5029d042a715327d7d9c5244b1f6ed8  gcc/testsuite/g++.old-deja/g++.benjamin/14687.C
  cd82f5ef71fe2b5c2d726edde7e3f65c  gcc/testsuite/g++.old-deja/g++.benjamin/15054.C
! 789ddec926eff48703b703ecafe1fee5  gcc/testsuite/g++.old-deja/g++.benjamin/15071.C
  d0f47415efc4de81e9b3a94bb2f2d30b  gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C
  1860c693f6bc8ef1270ecab41ecc9551  gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C
  f1c5bd18516555fb9dc6c76ab8e05414  gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
--- 33531,33537 ----
  e62c55b6d5bb49ff0c0f8278531c188c  gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C
  d5029d042a715327d7d9c5244b1f6ed8  gcc/testsuite/g++.old-deja/g++.benjamin/14687.C
  cd82f5ef71fe2b5c2d726edde7e3f65c  gcc/testsuite/g++.old-deja/g++.benjamin/15054.C
! fad860276bf5d089d6f1f0bd82344bf3  gcc/testsuite/g++.old-deja/g++.benjamin/15071.C
  d0f47415efc4de81e9b3a94bb2f2d30b  gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C
  1860c693f6bc8ef1270ecab41ecc9551  gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C
  f1c5bd18516555fb9dc6c76ab8e05414  gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
*************** e0ff2e1f9c178c852486b8819018bb9d  gcc/te
*** 31428,31434 ****
  d3a1d8c5e1eb5bb34389eea5ab4ba473  gcc/testsuite/g++.old-deja/g++.benjamin/tem02.C
  97a10e6982474aa06325d46338269c90  gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C
  898ec4dc9b1d602b0e28c4916e1c7a53  gcc/testsuite/g++.old-deja/g++.benjamin/tem04.C
! 1b14068d5cd59524944ff0e4282e9230  gcc/testsuite/g++.old-deja/g++.benjamin/tem05.C
  41b0c9f614d7008ceae61fc6d2fea5ad  gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C
  7925d70b3542542fe6133d14532c6e4a  gcc/testsuite/g++.old-deja/g++.benjamin/tem07.C
  9bcd614aebf8f071c1cc9aef7541ffe7  gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C
--- 33556,33562 ----
  d3a1d8c5e1eb5bb34389eea5ab4ba473  gcc/testsuite/g++.old-deja/g++.benjamin/tem02.C
  97a10e6982474aa06325d46338269c90  gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C
  898ec4dc9b1d602b0e28c4916e1c7a53  gcc/testsuite/g++.old-deja/g++.benjamin/tem04.C
! 8d9942a325299e36ebe2ce6fd155d913  gcc/testsuite/g++.old-deja/g++.benjamin/tem05.C
  41b0c9f614d7008ceae61fc6d2fea5ad  gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C
  7925d70b3542542fe6133d14532c6e4a  gcc/testsuite/g++.old-deja/g++.benjamin/tem07.C
  9bcd614aebf8f071c1cc9aef7541ffe7  gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C
*************** da80b7e97d4e9ee67decc3ead64065ff  gcc/te
*** 31456,31462 ****
  320f3eae6dc6bbd5aa64e7a285f758f7  gcc/testsuite/g++.old-deja/g++.bob/template2.C
  d3aa332b02a50a2c976fd3acd8f16058  gcc/testsuite/g++.old-deja/g++.bob/template3.C
  aeb5818b98767c6df0e85e3dd85f0da7  gcc/testsuite/g++.old-deja/g++.bob/template4.C
! abdab164e24b9268bf397687ba63f2ec  gcc/testsuite/g++.old-deja/g++.brendan/README
  ae92d366fb4b1fb345a39cf07442d5f1  gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C
  fc6063368e5474a8653856d27762de94  gcc/testsuite/g++.old-deja/g++.brendan/access1.C
  cd7e52b4b869a50f1833437935e02700  gcc/testsuite/g++.old-deja/g++.brendan/alignof.C
--- 33584,33590 ----
  320f3eae6dc6bbd5aa64e7a285f758f7  gcc/testsuite/g++.old-deja/g++.bob/template2.C
  d3aa332b02a50a2c976fd3acd8f16058  gcc/testsuite/g++.old-deja/g++.bob/template3.C
  aeb5818b98767c6df0e85e3dd85f0da7  gcc/testsuite/g++.old-deja/g++.bob/template4.C
! 4eaa7ad5bd3af1e0885fea7b1e919bfe  gcc/testsuite/g++.old-deja/g++.brendan/README
  ae92d366fb4b1fb345a39cf07442d5f1  gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C
  fc6063368e5474a8653856d27762de94  gcc/testsuite/g++.old-deja/g++.brendan/access1.C
  cd7e52b4b869a50f1833437935e02700  gcc/testsuite/g++.old-deja/g++.brendan/alignof.C
*************** a9b230fa3f6f281be0b5d7c1b0744eeb  gcc/te
*** 31485,31503 ****
  4b2ab58d3d7e3f0db2cd9c43e232e05b  gcc/testsuite/g++.old-deja/g++.brendan/copy6.C
  696c1f641ba8cf4c76eea17b05a68e7c  gcc/testsuite/g++.old-deja/g++.brendan/copy7.C
  330313d34e8179459b8d6fdbca0b4371  gcc/testsuite/g++.old-deja/g++.brendan/copy8.C
! fa9b0c176a8d00e45a03ab6644d2b0fc  gcc/testsuite/g++.old-deja/g++.brendan/copy9.C
  62172a7e4c59ed5aa0aa705ae8090fe0  gcc/testsuite/g++.old-deja/g++.brendan/crash1.C
  9bb5650319b1cbd73f548bcbcadbf2b4  gcc/testsuite/g++.old-deja/g++.brendan/crash10.C
  cd4e6c94edc7344f866733e2c178caa0  gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
  c487c2f1d306c4b5ffd996ab598aac07  gcc/testsuite/g++.old-deja/g++.brendan/crash12.C
  440a4666ca3b9be9549267d67d3e2987  gcc/testsuite/g++.old-deja/g++.brendan/crash13.C
  4b3db8cbbfa7bf87638bbbff3162da29  gcc/testsuite/g++.old-deja/g++.brendan/crash14.C
! 7529342852a16fca993789714b764021  gcc/testsuite/g++.old-deja/g++.brendan/crash15.C
  e329dd05eed7cc8038f086397f67e997  gcc/testsuite/g++.old-deja/g++.brendan/crash16.C
  bde6a8384e3bb59092d0c83de1fed4cf  gcc/testsuite/g++.old-deja/g++.brendan/crash17.C
  fcffcc0ad91a1fb9bad3181202303e3f  gcc/testsuite/g++.old-deja/g++.brendan/crash18.C
  3f31ad7a3d6312a1259fb61edfad7bec  gcc/testsuite/g++.old-deja/g++.brendan/crash2.C
! 53a2dd1bdf710845adc926626d619e59  gcc/testsuite/g++.old-deja/g++.brendan/crash20.C
  8f5a87bc4275f06bf72a82731457722d  gcc/testsuite/g++.old-deja/g++.brendan/crash22.C
  b49b5855846639a3157202180959a35a  gcc/testsuite/g++.old-deja/g++.brendan/crash23.C
  f1d0f9a4e3705c747965388c45172a52  gcc/testsuite/g++.old-deja/g++.brendan/crash24.C
--- 33613,33631 ----
  4b2ab58d3d7e3f0db2cd9c43e232e05b  gcc/testsuite/g++.old-deja/g++.brendan/copy6.C
  696c1f641ba8cf4c76eea17b05a68e7c  gcc/testsuite/g++.old-deja/g++.brendan/copy7.C
  330313d34e8179459b8d6fdbca0b4371  gcc/testsuite/g++.old-deja/g++.brendan/copy8.C
! c1a3cd7dce8a554ddee7a729d1789989  gcc/testsuite/g++.old-deja/g++.brendan/copy9.C
  62172a7e4c59ed5aa0aa705ae8090fe0  gcc/testsuite/g++.old-deja/g++.brendan/crash1.C
  9bb5650319b1cbd73f548bcbcadbf2b4  gcc/testsuite/g++.old-deja/g++.brendan/crash10.C
  cd4e6c94edc7344f866733e2c178caa0  gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
  c487c2f1d306c4b5ffd996ab598aac07  gcc/testsuite/g++.old-deja/g++.brendan/crash12.C
  440a4666ca3b9be9549267d67d3e2987  gcc/testsuite/g++.old-deja/g++.brendan/crash13.C
  4b3db8cbbfa7bf87638bbbff3162da29  gcc/testsuite/g++.old-deja/g++.brendan/crash14.C
! 649c29d937e26e72b3d6e217c18a3a0b  gcc/testsuite/g++.old-deja/g++.brendan/crash15.C
  e329dd05eed7cc8038f086397f67e997  gcc/testsuite/g++.old-deja/g++.brendan/crash16.C
  bde6a8384e3bb59092d0c83de1fed4cf  gcc/testsuite/g++.old-deja/g++.brendan/crash17.C
  fcffcc0ad91a1fb9bad3181202303e3f  gcc/testsuite/g++.old-deja/g++.brendan/crash18.C
  3f31ad7a3d6312a1259fb61edfad7bec  gcc/testsuite/g++.old-deja/g++.brendan/crash2.C
! a2a065df3037950b044abdde44b7266e  gcc/testsuite/g++.old-deja/g++.brendan/crash20.C
  8f5a87bc4275f06bf72a82731457722d  gcc/testsuite/g++.old-deja/g++.brendan/crash22.C
  b49b5855846639a3157202180959a35a  gcc/testsuite/g++.old-deja/g++.brendan/crash23.C
  f1d0f9a4e3705c747965388c45172a52  gcc/testsuite/g++.old-deja/g++.brendan/crash24.C
*************** bc249c935459f8b928782161b15f47b8  gcc/te
*** 31507,31513 ****
  3acae1cd69bb3c31d731fd11d5c3b288  gcc/testsuite/g++.old-deja/g++.brendan/crash28.C
  a0918515a81d38b16589f78f96887b7d  gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
  509e32a23f0fa15e85d26c26684c4a3c  gcc/testsuite/g++.old-deja/g++.brendan/crash3.C
! d09610f03864daed6e9a2f6492204235  gcc/testsuite/g++.old-deja/g++.brendan/crash30.C
  6922fd3ce96d0c6d55aa7e22ca9ea835  gcc/testsuite/g++.old-deja/g++.brendan/crash31.C
  89408b609531415622dd2a89bcc6cf45  gcc/testsuite/g++.old-deja/g++.brendan/crash32.C
  33c3ae35e83af61bf06ee581e97f8dab  gcc/testsuite/g++.old-deja/g++.brendan/crash33.C
--- 33635,33641 ----
  3acae1cd69bb3c31d731fd11d5c3b288  gcc/testsuite/g++.old-deja/g++.brendan/crash28.C
  a0918515a81d38b16589f78f96887b7d  gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
  509e32a23f0fa15e85d26c26684c4a3c  gcc/testsuite/g++.old-deja/g++.brendan/crash3.C
! 930963034fbd13f3839d248fc549b500  gcc/testsuite/g++.old-deja/g++.brendan/crash30.C
  6922fd3ce96d0c6d55aa7e22ca9ea835  gcc/testsuite/g++.old-deja/g++.brendan/crash31.C
  89408b609531415622dd2a89bcc6cf45  gcc/testsuite/g++.old-deja/g++.brendan/crash32.C
  33c3ae35e83af61bf06ee581e97f8dab  gcc/testsuite/g++.old-deja/g++.brendan/crash33.C
*************** d09610f03864daed6e9a2f6492204235  gcc/te
*** 31515,31522 ****
  4223de66df390e48223befc3091d9953  gcc/testsuite/g++.old-deja/g++.brendan/crash35.C
  de445257f614defad41bbc90815c0723  gcc/testsuite/g++.old-deja/g++.brendan/crash36.C
  80e5a4815f34399009395248c62241a4  gcc/testsuite/g++.old-deja/g++.brendan/crash37.C
! 9a365f2dc5bc82428d2fc83004ca21a9  gcc/testsuite/g++.old-deja/g++.brendan/crash38.C
! 2e312fb3ecdee7d2802bc5d63bafaf95  gcc/testsuite/g++.old-deja/g++.brendan/crash39.C
  549525d98ff3703d364f494aff337190  gcc/testsuite/g++.old-deja/g++.brendan/crash4.C
  3b168f8ca606522149df9bdb8d936a0e  gcc/testsuite/g++.old-deja/g++.brendan/crash40.C
  d5ee940012af3122df1f0a9b46ec0691  gcc/testsuite/g++.old-deja/g++.brendan/crash41.C
--- 33643,33650 ----
  4223de66df390e48223befc3091d9953  gcc/testsuite/g++.old-deja/g++.brendan/crash35.C
  de445257f614defad41bbc90815c0723  gcc/testsuite/g++.old-deja/g++.brendan/crash36.C
  80e5a4815f34399009395248c62241a4  gcc/testsuite/g++.old-deja/g++.brendan/crash37.C
! a096022b19df55cb6c4beba836743e0c  gcc/testsuite/g++.old-deja/g++.brendan/crash38.C
! b9e525d1a4b33fedeec653dbf7d4ffb9  gcc/testsuite/g++.old-deja/g++.brendan/crash39.C
  549525d98ff3703d364f494aff337190  gcc/testsuite/g++.old-deja/g++.brendan/crash4.C
  3b168f8ca606522149df9bdb8d936a0e  gcc/testsuite/g++.old-deja/g++.brendan/crash40.C
  d5ee940012af3122df1f0a9b46ec0691  gcc/testsuite/g++.old-deja/g++.brendan/crash41.C
*************** b3f82f6878ee2ffff7531e7210f68017  gcc/te
*** 31527,31537 ****
  04ce4fbaa4f8ef72247f66f12db00ef1  gcc/testsuite/g++.old-deja/g++.brendan/crash46.C
  d94800227b9326614c08ee7405b8e23b  gcc/testsuite/g++.old-deja/g++.brendan/crash47.C
  07585c8f85051f585bf0c08f20ee8f66  gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
! efe4265b25ae54dbf04cfbbd033499c1  gcc/testsuite/g++.old-deja/g++.brendan/crash49.C
  318cf0dc34fa93fdba1f0e7691d777a5  gcc/testsuite/g++.old-deja/g++.brendan/crash5.C
  2c7f8a7eb2573701d3b0b03c69b5be88  gcc/testsuite/g++.old-deja/g++.brendan/crash50.C
  405f96434188666195e1798efc513146  gcc/testsuite/g++.old-deja/g++.brendan/crash51.C
! e1871547e771dae40fb84cc4ec409e44  gcc/testsuite/g++.old-deja/g++.brendan/crash52.C
  0d23b5f837eca50d6659a9747fa8e8bd  gcc/testsuite/g++.old-deja/g++.brendan/crash53.C
  76cab97db1c153ad14cd499c7d483fa7  gcc/testsuite/g++.old-deja/g++.brendan/crash54.C
  500303a028abe89e3a0f3faa0ec009e1  gcc/testsuite/g++.old-deja/g++.brendan/crash55.C
--- 33655,33665 ----
  04ce4fbaa4f8ef72247f66f12db00ef1  gcc/testsuite/g++.old-deja/g++.brendan/crash46.C
  d94800227b9326614c08ee7405b8e23b  gcc/testsuite/g++.old-deja/g++.brendan/crash47.C
  07585c8f85051f585bf0c08f20ee8f66  gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
! 686f521831265b8e3a16e611c63e2857  gcc/testsuite/g++.old-deja/g++.brendan/crash49.C
  318cf0dc34fa93fdba1f0e7691d777a5  gcc/testsuite/g++.old-deja/g++.brendan/crash5.C
  2c7f8a7eb2573701d3b0b03c69b5be88  gcc/testsuite/g++.old-deja/g++.brendan/crash50.C
  405f96434188666195e1798efc513146  gcc/testsuite/g++.old-deja/g++.brendan/crash51.C
! edb6eee2edfee29b7da009bd168b02e6  gcc/testsuite/g++.old-deja/g++.brendan/crash52.C
  0d23b5f837eca50d6659a9747fa8e8bd  gcc/testsuite/g++.old-deja/g++.brendan/crash53.C
  76cab97db1c153ad14cd499c7d483fa7  gcc/testsuite/g++.old-deja/g++.brendan/crash54.C
  500303a028abe89e3a0f3faa0ec009e1  gcc/testsuite/g++.old-deja/g++.brendan/crash55.C
*************** f99628dfc0766d237ee572c05c96f5ef  gcc/te
*** 31541,31547 ****
  fe6ac67b99c1ddd7b2d92896792a2eea  gcc/testsuite/g++.old-deja/g++.brendan/crash6.C
  d995e343cb6f6d3f31cff4bb747358ad  gcc/testsuite/g++.old-deja/g++.brendan/crash60.C
  cdbb9c9cfe241a7d44af748e52523748  gcc/testsuite/g++.old-deja/g++.brendan/crash61.C
! 75b73030bfec1570c06879b52ebb4bb3  gcc/testsuite/g++.old-deja/g++.brendan/crash62.C
  b5e65de5c1bb4027ac6b7ddc11ee87e4  gcc/testsuite/g++.old-deja/g++.brendan/crash63.C
  000a3c8e442d1855953d0177f586ff4d  gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
  fef44fa88ae32d141b474c51a371aa94  gcc/testsuite/g++.old-deja/g++.brendan/crash65.C
--- 33669,33675 ----
  fe6ac67b99c1ddd7b2d92896792a2eea  gcc/testsuite/g++.old-deja/g++.brendan/crash6.C
  d995e343cb6f6d3f31cff4bb747358ad  gcc/testsuite/g++.old-deja/g++.brendan/crash60.C
  cdbb9c9cfe241a7d44af748e52523748  gcc/testsuite/g++.old-deja/g++.brendan/crash61.C
! cb10b5f22a134ffb35d6c6004dcb7541  gcc/testsuite/g++.old-deja/g++.brendan/crash62.C
  b5e65de5c1bb4027ac6b7ddc11ee87e4  gcc/testsuite/g++.old-deja/g++.brendan/crash63.C
  000a3c8e442d1855953d0177f586ff4d  gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
  fef44fa88ae32d141b474c51a371aa94  gcc/testsuite/g++.old-deja/g++.brendan/crash65.C
*************** c0a2b50ea86ab426c9d4711ee448dd07  gcc/te
*** 31554,31560 ****
  ef0c32aa9cb62fa23978bbf6604a9c13  gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C
  b976465fc875e08dc788220e951e9f2b  gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C
  c4ac1885be2041f32f4b901e3e8a6128  gcc/testsuite/g++.old-deja/g++.brendan/ctors3.C
! 907c310b4820c37a529248243bf29d51  gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C
  d2732754499fdd0622ea76207723c993  gcc/testsuite/g++.old-deja/g++.brendan/cvt2.C
  b86fc6824995e59b195405110d1df47f  gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
  b55c1b74f8a3feaa1feafbc831245fdc  gcc/testsuite/g++.old-deja/g++.brendan/cvt4.C
--- 33682,33688 ----
  ef0c32aa9cb62fa23978bbf6604a9c13  gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C
  b976465fc875e08dc788220e951e9f2b  gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C
  c4ac1885be2041f32f4b901e3e8a6128  gcc/testsuite/g++.old-deja/g++.brendan/ctors3.C
! 3c2971f2bd6edc1ad5ae1e81e2dd0041  gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C
  d2732754499fdd0622ea76207723c993  gcc/testsuite/g++.old-deja/g++.brendan/cvt2.C
  b86fc6824995e59b195405110d1df47f  gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
  b55c1b74f8a3feaa1feafbc831245fdc  gcc/testsuite/g++.old-deja/g++.brendan/cvt4.C
*************** a161c6c5bf5aa66fdbebd524763c816f  gcc/te
*** 31587,31593 ****
  70928bc1145c0aa7a1949b5c0215c27b  gcc/testsuite/g++.old-deja/g++.brendan/err-msg11.C
  73c1bfcf937197fbbb2fa6b4fceb6d08  gcc/testsuite/g++.old-deja/g++.brendan/err-msg12.C
  31f487fac028affda10935beee342b67  gcc/testsuite/g++.old-deja/g++.brendan/err-msg2.C
! d467baa58472c5539a8d54137ae9fd90  gcc/testsuite/g++.old-deja/g++.brendan/err-msg3.C
  574b1869eeecbbe7e35891192119aae1  gcc/testsuite/g++.old-deja/g++.brendan/err-msg4.C
  b32d6df87f959a7345d00f8ae908a68d  gcc/testsuite/g++.old-deja/g++.brendan/err-msg5.C
  00afba961ae25414c47ec5c93e6b54e1  gcc/testsuite/g++.old-deja/g++.brendan/err-msg6.C
--- 33715,33721 ----
  70928bc1145c0aa7a1949b5c0215c27b  gcc/testsuite/g++.old-deja/g++.brendan/err-msg11.C
  73c1bfcf937197fbbb2fa6b4fceb6d08  gcc/testsuite/g++.old-deja/g++.brendan/err-msg12.C
  31f487fac028affda10935beee342b67  gcc/testsuite/g++.old-deja/g++.brendan/err-msg2.C
! d5446906621f6c5fdd48431e272b4452  gcc/testsuite/g++.old-deja/g++.brendan/err-msg3.C
  574b1869eeecbbe7e35891192119aae1  gcc/testsuite/g++.old-deja/g++.brendan/err-msg4.C
  b32d6df87f959a7345d00f8ae908a68d  gcc/testsuite/g++.old-deja/g++.brendan/err-msg5.C
  00afba961ae25414c47ec5c93e6b54e1  gcc/testsuite/g++.old-deja/g++.brendan/err-msg6.C
*************** af8abd37d8c348f3e90a688f87da5c28  gcc/te
*** 31644,31650 ****
  45f38e149ffb5039ba9a88a9ef169674  gcc/testsuite/g++.old-deja/g++.brendan/nest19.C
  a19881ab8fa85bcc5df938e0dbfdd9f4  gcc/testsuite/g++.old-deja/g++.brendan/nest2.C
  4c77edec6f7551e4309e6dec07951f06  gcc/testsuite/g++.old-deja/g++.brendan/nest20.C
! 693ba8ff2344c35725152e19ccf93570  gcc/testsuite/g++.old-deja/g++.brendan/nest21.C
  ba9215faa6624ffed1978907c5ea0d15  gcc/testsuite/g++.old-deja/g++.brendan/nest22.C
  fba04cbf985f18cbd964bbcbd904749d  gcc/testsuite/g++.old-deja/g++.brendan/nest23.C
  cd228511a48f71249c67e69f03d3d6fc  gcc/testsuite/g++.old-deja/g++.brendan/nest24.C
--- 33772,33778 ----
  45f38e149ffb5039ba9a88a9ef169674  gcc/testsuite/g++.old-deja/g++.brendan/nest19.C
  a19881ab8fa85bcc5df938e0dbfdd9f4  gcc/testsuite/g++.old-deja/g++.brendan/nest2.C
  4c77edec6f7551e4309e6dec07951f06  gcc/testsuite/g++.old-deja/g++.brendan/nest20.C
! 98ef37df41c019a023a3cd78e60822e2  gcc/testsuite/g++.old-deja/g++.brendan/nest21.C
  ba9215faa6624ffed1978907c5ea0d15  gcc/testsuite/g++.old-deja/g++.brendan/nest22.C
  fba04cbf985f18cbd964bbcbd904749d  gcc/testsuite/g++.old-deja/g++.brendan/nest23.C
  cd228511a48f71249c67e69f03d3d6fc  gcc/testsuite/g++.old-deja/g++.brendan/nest24.C
*************** cd228511a48f71249c67e69f03d3d6fc  gcc/te
*** 31653,31659 ****
  ce18ed55b4cb7e1075e495fefce8d00f  gcc/testsuite/g++.old-deja/g++.brendan/new-array.C
  718799fe9f078dd0e2bedf0e9597bd91  gcc/testsuite/g++.old-deja/g++.brendan/new1.C
  46f8297d90cafbb23e2ae0bf3a52be6f  gcc/testsuite/g++.old-deja/g++.brendan/new2.C
! 8c4ab768e2c9e181979ff5844bc09b51  gcc/testsuite/g++.old-deja/g++.brendan/new3.C
  8a70a49dd8f898539a46d196782e0fe5  gcc/testsuite/g++.old-deja/g++.brendan/ns1.C
  2af972e38ef7cf8be77bddab49ea6e6b  gcc/testsuite/g++.old-deja/g++.brendan/operators1.C
  4ac6cb421f470728cde116dd27d0a9b5  gcc/testsuite/g++.old-deja/g++.brendan/operators2.C
--- 33781,33787 ----
  ce18ed55b4cb7e1075e495fefce8d00f  gcc/testsuite/g++.old-deja/g++.brendan/new-array.C
  718799fe9f078dd0e2bedf0e9597bd91  gcc/testsuite/g++.old-deja/g++.brendan/new1.C
  46f8297d90cafbb23e2ae0bf3a52be6f  gcc/testsuite/g++.old-deja/g++.brendan/new2.C
! 2297254a3303bcfb99011a903c3776bb  gcc/testsuite/g++.old-deja/g++.brendan/new3.C
  8a70a49dd8f898539a46d196782e0fe5  gcc/testsuite/g++.old-deja/g++.brendan/ns1.C
  2af972e38ef7cf8be77bddab49ea6e6b  gcc/testsuite/g++.old-deja/g++.brendan/operators1.C
  4ac6cb421f470728cde116dd27d0a9b5  gcc/testsuite/g++.old-deja/g++.brendan/operators2.C
*************** b43936b6abd4d40567c033f09683b3bb  gcc/te
*** 31685,31691 ****
  21f183f55cc84ac75b1310cbb6c444a6  gcc/testsuite/g++.old-deja/g++.brendan/prepost3.C
  91a11c1cbb6524eed619fc6f76db67c2  gcc/testsuite/g++.old-deja/g++.brendan/prepost4.C
  c8d9f333e6678f961092c204706b1072  gcc/testsuite/g++.old-deja/g++.brendan/ptolemy1.C
! cd6b194c7bc5cf94285bc6cd0a157e70  gcc/testsuite/g++.old-deja/g++.brendan/ptolemy2.C
  9393209c77dd45bd002437c27c5920e4  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem1.C
  7a7306f6328f57ef001c6f5ba4e22fa9  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem2.C
  93bc75083ebf8ae5a37fd6ac51d10e9a  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem3.C
--- 33813,33819 ----
  21f183f55cc84ac75b1310cbb6c444a6  gcc/testsuite/g++.old-deja/g++.brendan/prepost3.C
  91a11c1cbb6524eed619fc6f76db67c2  gcc/testsuite/g++.old-deja/g++.brendan/prepost4.C
  c8d9f333e6678f961092c204706b1072  gcc/testsuite/g++.old-deja/g++.brendan/ptolemy1.C
! 3729a4b59cf55c43e1e1cc4edc053b3f  gcc/testsuite/g++.old-deja/g++.brendan/ptolemy2.C
  9393209c77dd45bd002437c27c5920e4  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem1.C
  7a7306f6328f57ef001c6f5ba4e22fa9  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem2.C
  93bc75083ebf8ae5a37fd6ac51d10e9a  gcc/testsuite/g++.old-deja/g++.brendan/ptrmem3.C
*************** c79225efeb1b5372067c4742a363bd3b  gcc/te
*** 31822,31828 ****
  a6ad70bbfac742846a7f5068bc830b87  gcc/testsuite/g++.old-deja/g++.bugs/900324_06.C
  63f3022e6a8a4aa50e06adc840f4717d  gcc/testsuite/g++.old-deja/g++.bugs/900325_01.C
  955efbafb82b241dd6d4ba712693276f  gcc/testsuite/g++.old-deja/g++.bugs/900330_01.C
! 02234a04640a629f03242a7fd85f08c8  gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
  d581b2639f5bf26e22714a3e979dc43c  gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C
  4f31c4bcb0fc662ba06aa9b872dfd7a3  gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C
  49d0547019a4a915bdd9b4f5f87b134c  gcc/testsuite/g++.old-deja/g++.bugs/900331_04.C
--- 33950,33956 ----
  a6ad70bbfac742846a7f5068bc830b87  gcc/testsuite/g++.old-deja/g++.bugs/900324_06.C
  63f3022e6a8a4aa50e06adc840f4717d  gcc/testsuite/g++.old-deja/g++.bugs/900325_01.C
  955efbafb82b241dd6d4ba712693276f  gcc/testsuite/g++.old-deja/g++.bugs/900330_01.C
! 64034f1a051eaa9a06991e66681c13d4  gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
  d581b2639f5bf26e22714a3e979dc43c  gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C
  4f31c4bcb0fc662ba06aa9b872dfd7a3  gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C
  49d0547019a4a915bdd9b4f5f87b134c  gcc/testsuite/g++.old-deja/g++.bugs/900331_04.C
*************** aafbe08bde2c86ffa855c88d6df524dc  gcc/te
*** 31838,31844 ****
  3aa3b22817d9f6db7acec24197a9f449  gcc/testsuite/g++.old-deja/g++.bugs/900404_07.C
  4df342af36e75b7594742a38d8d90ee7  gcc/testsuite/g++.old-deja/g++.bugs/900405_01.C
  56b3109f93c4aee9592ddbf3c51a1730  gcc/testsuite/g++.old-deja/g++.bugs/900406_01.C
! 91c5f6fa069ce699055f60aff08860cb  gcc/testsuite/g++.old-deja/g++.bugs/900406_02.C
  98b233cef5cf2faa9c7403a4afd54462  gcc/testsuite/g++.old-deja/g++.bugs/900407_01.C
  4254712d86c1247e0bb7a4a557701342  gcc/testsuite/g++.old-deja/g++.bugs/900428_01.C
  ef11e6253209effe38033f3513d92382  gcc/testsuite/g++.old-deja/g++.bugs/900428_02.C
--- 33966,33972 ----
  3aa3b22817d9f6db7acec24197a9f449  gcc/testsuite/g++.old-deja/g++.bugs/900404_07.C
  4df342af36e75b7594742a38d8d90ee7  gcc/testsuite/g++.old-deja/g++.bugs/900405_01.C
  56b3109f93c4aee9592ddbf3c51a1730  gcc/testsuite/g++.old-deja/g++.bugs/900406_01.C
! 42e7360e4d890644f248769ba6561523  gcc/testsuite/g++.old-deja/g++.bugs/900406_02.C
  98b233cef5cf2faa9c7403a4afd54462  gcc/testsuite/g++.old-deja/g++.bugs/900407_01.C
  4254712d86c1247e0bb7a4a557701342  gcc/testsuite/g++.old-deja/g++.bugs/900428_01.C
  ef11e6253209effe38033f3513d92382  gcc/testsuite/g++.old-deja/g++.bugs/900428_02.C
*************** a645bf290df2e30cf8156ca9495e95cd  gcc/te
*** 31856,31862 ****
  0171afa2bbd54b64c0abb778faf7da6b  gcc/testsuite/g++.old-deja/g++.bugs/900519_07.C
  d00253d70a14469314393d169bec2c0e  gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C
  ac9a5240763e641aff84b4edf13031ce  gcc/testsuite/g++.old-deja/g++.bugs/900519_12.C
! a5d8af920912a29d9471383754871192  gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C
  a5736dbc59be59b038f9329cd74bd79a  gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
  b00d2568b245f9e277d20be1b4b10a71  gcc/testsuite/g++.old-deja/g++.bugs/900520_03.C
  32f9838a2677f4322d6422963ad75321  gcc/testsuite/g++.old-deja/g++.bugs/900520_04.C
--- 33984,33990 ----
  0171afa2bbd54b64c0abb778faf7da6b  gcc/testsuite/g++.old-deja/g++.bugs/900519_07.C
  d00253d70a14469314393d169bec2c0e  gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C
  ac9a5240763e641aff84b4edf13031ce  gcc/testsuite/g++.old-deja/g++.bugs/900519_12.C
! 54d7e112f4769509b51d1a3242d960ec  gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C
  a5736dbc59be59b038f9329cd74bd79a  gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
  b00d2568b245f9e277d20be1b4b10a71  gcc/testsuite/g++.old-deja/g++.bugs/900520_03.C
  32f9838a2677f4322d6422963ad75321  gcc/testsuite/g++.old-deja/g++.bugs/900520_04.C
*************** c80d5660b1728bc2ac055847f51343bc  gcc/te
*** 31900,31907 ****
  a9f648d8da78dd871addee9542a65e72  gcc/testsuite/g++.old-deja/g++.eh/ia64-1.C
  039eb5ce59747bf780d3040d05a5b84f  gcc/testsuite/g++.old-deja/g++.eh/inline1.C
  1f10a9c93f1ab6845ba1a02819abf154  gcc/testsuite/g++.old-deja/g++.eh/inline2.C
! ec48f1b1b9cb65b917450299c74f997e  gcc/testsuite/g++.old-deja/g++.eh/new1.C
! f228ba1c359613e7881a9b7112b4d9ec  gcc/testsuite/g++.old-deja/g++.eh/new2.C
  dcd0f11cabbfb7e54d51c61ccdd6c00e  gcc/testsuite/g++.old-deja/g++.eh/pdel1.C
  e1c4cc132ea9728d91e30c0754ea6300  gcc/testsuite/g++.old-deja/g++.eh/pdel2.C
  b785622dc330cbfc73460329d254e2ed  gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
--- 34028,34035 ----
  a9f648d8da78dd871addee9542a65e72  gcc/testsuite/g++.old-deja/g++.eh/ia64-1.C
  039eb5ce59747bf780d3040d05a5b84f  gcc/testsuite/g++.old-deja/g++.eh/inline1.C
  1f10a9c93f1ab6845ba1a02819abf154  gcc/testsuite/g++.old-deja/g++.eh/inline2.C
! bdeaa78b3257660fdb7a0bc654ea94c9  gcc/testsuite/g++.old-deja/g++.eh/new1.C
! cd2291adc01fe001ddf163291ebe6fa6  gcc/testsuite/g++.old-deja/g++.eh/new2.C
  dcd0f11cabbfb7e54d51c61ccdd6c00e  gcc/testsuite/g++.old-deja/g++.eh/pdel1.C
  e1c4cc132ea9728d91e30c0754ea6300  gcc/testsuite/g++.old-deja/g++.eh/pdel2.C
  b785622dc330cbfc73460329d254e2ed  gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
*************** bd0efa0a1fe0ed98636fcebbc5fd05e3  gcc/te
*** 31942,31948 ****
  6ce37734760abfd9bd961226e88f2716  gcc/testsuite/g++.old-deja/g++.ext/anon2.C
  6dc1c08f311f5bdbef96fd9a1f96e2ea  gcc/testsuite/g++.old-deja/g++.ext/anon3.C
  340befe3f02d37b2d57ea1892d46d175  gcc/testsuite/g++.old-deja/g++.ext/array1.C
! 6d5e5c16bb1c19ffedd5ac387698d679  gcc/testsuite/g++.old-deja/g++.ext/array2.C
  0358c365e76d6d31e6b0d88db4a8b90b  gcc/testsuite/g++.old-deja/g++.ext/array3.C
  b2f69c1973b3d4b6b9e01df5ce3b43ba  gcc/testsuite/g++.old-deja/g++.ext/array4.C
  60de5c23c65fe5ebd8cb2707b86aa75a  gcc/testsuite/g++.old-deja/g++.ext/arrnew.C
--- 34070,34076 ----
  6ce37734760abfd9bd961226e88f2716  gcc/testsuite/g++.old-deja/g++.ext/anon2.C
  6dc1c08f311f5bdbef96fd9a1f96e2ea  gcc/testsuite/g++.old-deja/g++.ext/anon3.C
  340befe3f02d37b2d57ea1892d46d175  gcc/testsuite/g++.old-deja/g++.ext/array1.C
! 70a0389ce8c471f6a0bd878ddc94a9d4  gcc/testsuite/g++.old-deja/g++.ext/array2.C
  0358c365e76d6d31e6b0d88db4a8b90b  gcc/testsuite/g++.old-deja/g++.ext/array3.C
  b2f69c1973b3d4b6b9e01df5ce3b43ba  gcc/testsuite/g++.old-deja/g++.ext/array4.C
  60de5c23c65fe5ebd8cb2707b86aa75a  gcc/testsuite/g++.old-deja/g++.ext/arrnew.C
*************** ae9068ea19cc94f508bcfca599cf3160  gcc/te
*** 31955,31961 ****
  4e51fb5cf85b5f790f1be106d234035f  gcc/testsuite/g++.old-deja/g++.ext/attrib5.C
  4a3cb5f4907fc2dd61b5a428d6f2a5eb  gcc/testsuite/g++.old-deja/g++.ext/attrib6.C
  3319bbc157c0ea8b1ee782f722a5788a  gcc/testsuite/g++.old-deja/g++.ext/bound1.C
! ce47863dfa64e2683d36211825821dc6  gcc/testsuite/g++.old-deja/g++.ext/constructor.C
  09e867b0fab670965c20be371975da13  gcc/testsuite/g++.old-deja/g++.ext/default.C
  04aaaf608d3428b0ce27c992835dd4ca  gcc/testsuite/g++.old-deja/g++.ext/delvoid.C
  b6418b336a13fd226ab5d32e33b8f7a6  gcc/testsuite/g++.old-deja/g++.ext/jump1.C
--- 34083,34089 ----
  4e51fb5cf85b5f790f1be106d234035f  gcc/testsuite/g++.old-deja/g++.ext/attrib5.C
  4a3cb5f4907fc2dd61b5a428d6f2a5eb  gcc/testsuite/g++.old-deja/g++.ext/attrib6.C
  3319bbc157c0ea8b1ee782f722a5788a  gcc/testsuite/g++.old-deja/g++.ext/bound1.C
! ad172c8bc2165070a5d3928129972139  gcc/testsuite/g++.old-deja/g++.ext/constructor.C
  09e867b0fab670965c20be371975da13  gcc/testsuite/g++.old-deja/g++.ext/default.C
  04aaaf608d3428b0ce27c992835dd4ca  gcc/testsuite/g++.old-deja/g++.ext/delvoid.C
  b6418b336a13fd226ab5d32e33b8f7a6  gcc/testsuite/g++.old-deja/g++.ext/jump1.C
*************** bb9e514ad1e581841027a696c4bf8e47  gcc/te
*** 31992,31998 ****
  e5d1da0f71c705fa50bd4da154277f8a  gcc/testsuite/g++.old-deja/g++.gb/scope11.C
  32a45a0b56c8fcf1bb6bf90a706fa9b3  gcc/testsuite/g++.old-deja/g++.gb/scope12.C
  c4d0daf10d710e65ae6ea4021b2c12b1  gcc/testsuite/g++.old-deja/g++.gb/scope13.C
! f864717479387b2c1ef761870928e97e  gcc/testsuite/g++.old-deja/g++.jason/2371.C
  3c25148320e99f6c4530d8657360c9e9  gcc/testsuite/g++.old-deja/g++.jason/3523.C
  3b66cda9337b6d5f44c3eec45af64472  gcc/testsuite/g++.old-deja/g++.jason/access1.C
  19664a186dd5faf025cae18124258b74  gcc/testsuite/g++.old-deja/g++.jason/access10.C
--- 34120,34126 ----
  e5d1da0f71c705fa50bd4da154277f8a  gcc/testsuite/g++.old-deja/g++.gb/scope11.C
  32a45a0b56c8fcf1bb6bf90a706fa9b3  gcc/testsuite/g++.old-deja/g++.gb/scope12.C
  c4d0daf10d710e65ae6ea4021b2c12b1  gcc/testsuite/g++.old-deja/g++.gb/scope13.C
! d3bdfa7b796c868c9c3a4e019447bf31  gcc/testsuite/g++.old-deja/g++.jason/2371.C
  3c25148320e99f6c4530d8657360c9e9  gcc/testsuite/g++.old-deja/g++.jason/3523.C
  3b66cda9337b6d5f44c3eec45af64472  gcc/testsuite/g++.old-deja/g++.jason/access1.C
  19664a186dd5faf025cae18124258b74  gcc/testsuite/g++.old-deja/g++.jason/access10.C
*************** beb07d7e7193d5b20c559e39f9f833bb  gcc/te
*** 32171,32177 ****
  190eaf169c3c8d34166229478918fdae  gcc/testsuite/g++.old-deja/g++.jason/opeq4.C
  5292a09a4c6bef333b385323117453e7  gcc/testsuite/g++.old-deja/g++.jason/opeq5.C
  1477d34b82967d572fc358778ff2b504  gcc/testsuite/g++.old-deja/g++.jason/opeq6.C
! 6be222f8defae5c87eeedcd68b249b66  gcc/testsuite/g++.old-deja/g++.jason/operator.C
  185eea2532af5023b78f9ce2e69cbacf  gcc/testsuite/g++.old-deja/g++.jason/operator2.C
  fa239349b87333357926a294a44fee03  gcc/testsuite/g++.old-deja/g++.jason/opover.C
  50849d785fd4c47ffa71357f340f5f0e  gcc/testsuite/g++.old-deja/g++.jason/optimize.C
--- 34299,34305 ----
  190eaf169c3c8d34166229478918fdae  gcc/testsuite/g++.old-deja/g++.jason/opeq4.C
  5292a09a4c6bef333b385323117453e7  gcc/testsuite/g++.old-deja/g++.jason/opeq5.C
  1477d34b82967d572fc358778ff2b504  gcc/testsuite/g++.old-deja/g++.jason/opeq6.C
! 1e2ffc21751f241951f1a7c90d466d04  gcc/testsuite/g++.old-deja/g++.jason/operator.C
  185eea2532af5023b78f9ce2e69cbacf  gcc/testsuite/g++.old-deja/g++.jason/operator2.C
  fa239349b87333357926a294a44fee03  gcc/testsuite/g++.old-deja/g++.jason/opover.C
  50849d785fd4c47ffa71357f340f5f0e  gcc/testsuite/g++.old-deja/g++.jason/optimize.C
*************** c3f50a3355c9c6700f6263d388a0d1b5  gcc/te
*** 32334,32340 ****
  af56ec09ac43a5f4664be1870d1f7820  gcc/testsuite/g++.old-deja/g++.jason/template21.C
  2f3651d76c789297326057ff5b1d0bbf  gcc/testsuite/g++.old-deja/g++.jason/template22.C
  17d21442206f559b41c86a494675f0a6  gcc/testsuite/g++.old-deja/g++.jason/template23.C
! 0095813e8809c346cf2bf57814a3b7e8  gcc/testsuite/g++.old-deja/g++.jason/template24.C
  f99f8582ab403089e9e338e2a37e5eda  gcc/testsuite/g++.old-deja/g++.jason/template25.C
  b9e4c85b77c73c73d4a668ac75ec5db0  gcc/testsuite/g++.old-deja/g++.jason/template26.C
  6e91adcf7521dd4621b538d210111b67  gcc/testsuite/g++.old-deja/g++.jason/template27.C
--- 34462,34468 ----
  af56ec09ac43a5f4664be1870d1f7820  gcc/testsuite/g++.old-deja/g++.jason/template21.C
  2f3651d76c789297326057ff5b1d0bbf  gcc/testsuite/g++.old-deja/g++.jason/template22.C
  17d21442206f559b41c86a494675f0a6  gcc/testsuite/g++.old-deja/g++.jason/template23.C
! b00e29aff6b6840001961e1469c8e4bc  gcc/testsuite/g++.old-deja/g++.jason/template24.C
  f99f8582ab403089e9e338e2a37e5eda  gcc/testsuite/g++.old-deja/g++.jason/template25.C
  b9e4c85b77c73c73d4a668ac75ec5db0  gcc/testsuite/g++.old-deja/g++.jason/template26.C
  6e91adcf7521dd4621b538d210111b67  gcc/testsuite/g++.old-deja/g++.jason/template27.C
*************** b9e4c85b77c73c73d4a668ac75ec5db0  gcc/te
*** 32342,32348 ****
  df154678c22816af85a841d67d2cbe30  gcc/testsuite/g++.old-deja/g++.jason/template29.C
  04bedf6df6ecdffcb63b9a43eb255c70  gcc/testsuite/g++.old-deja/g++.jason/template3.C
  003a4862e83ec5f36d09577526120edb  gcc/testsuite/g++.old-deja/g++.jason/template30.C
! 1b0ebe91aa68fdfb45280fb9a08e7c53  gcc/testsuite/g++.old-deja/g++.jason/template31.C
  ad2c663d36d9a0f17dc938a311946155  gcc/testsuite/g++.old-deja/g++.jason/template32.C
  088a934dd8a70a8383d8a361fa4f4a53  gcc/testsuite/g++.old-deja/g++.jason/template33.C
  50a283de5b9bae6b741e94ab5099764a  gcc/testsuite/g++.old-deja/g++.jason/template34.C
--- 34470,34476 ----
  df154678c22816af85a841d67d2cbe30  gcc/testsuite/g++.old-deja/g++.jason/template29.C
  04bedf6df6ecdffcb63b9a43eb255c70  gcc/testsuite/g++.old-deja/g++.jason/template3.C
  003a4862e83ec5f36d09577526120edb  gcc/testsuite/g++.old-deja/g++.jason/template30.C
! 53edf9a741978bb7205ae359b5372a37  gcc/testsuite/g++.old-deja/g++.jason/template31.C
  ad2c663d36d9a0f17dc938a311946155  gcc/testsuite/g++.old-deja/g++.jason/template32.C
  088a934dd8a70a8383d8a361fa4f4a53  gcc/testsuite/g++.old-deja/g++.jason/template33.C
  50a283de5b9bae6b741e94ab5099764a  gcc/testsuite/g++.old-deja/g++.jason/template34.C
*************** e6113f8014999e52216f910eba291de1  gcc/te
*** 32354,32360 ****
  06612c475479383f58b655c5b6f0dad6  gcc/testsuite/g++.old-deja/g++.jason/template41.C
  a38dfe63aedc2cf73a44464a7ca9b564  gcc/testsuite/g++.old-deja/g++.jason/template42.C
  876bcb7f013c3c4f518818e6eb52f39c  gcc/testsuite/g++.old-deja/g++.jason/template43.C
! ecfeb6f4c557a3805c2c0e4e96424ca0  gcc/testsuite/g++.old-deja/g++.jason/template44.C
  1c153dc25602cb13a7bd443db69588bf  gcc/testsuite/g++.old-deja/g++.jason/template5.C
  fe7efb4be97a1c7553a5496a0ab7646a  gcc/testsuite/g++.old-deja/g++.jason/template6.C
  ebdf62f7f3836654110fa87cfd57eb7f  gcc/testsuite/g++.old-deja/g++.jason/template7.C
--- 34482,34488 ----
  06612c475479383f58b655c5b6f0dad6  gcc/testsuite/g++.old-deja/g++.jason/template41.C
  a38dfe63aedc2cf73a44464a7ca9b564  gcc/testsuite/g++.old-deja/g++.jason/template42.C
  876bcb7f013c3c4f518818e6eb52f39c  gcc/testsuite/g++.old-deja/g++.jason/template43.C
! 18f016e6a583324983c85218d83dab0f  gcc/testsuite/g++.old-deja/g++.jason/template44.C
  1c153dc25602cb13a7bd443db69588bf  gcc/testsuite/g++.old-deja/g++.jason/template5.C
  fe7efb4be97a1c7553a5496a0ab7646a  gcc/testsuite/g++.old-deja/g++.jason/template6.C
  ebdf62f7f3836654110fa87cfd57eb7f  gcc/testsuite/g++.old-deja/g++.jason/template7.C
*************** e4681da1536da14176b6242aa0cde9a4  gcc/te
*** 32374,32380 ****
  40fcdd9ac5d7df502c6154f385d814a8  gcc/testsuite/g++.old-deja/g++.jason/this.C
  9c846445e2018745dcc34b2f1642858c  gcc/testsuite/g++.old-deja/g++.jason/thunk1.C
  be291c15304c06200056b75e15bc43e8  gcc/testsuite/g++.old-deja/g++.jason/thunk2.C
! 050d480fa5d286b20bb24dfe16b45512  gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
  776a6eba4666d06b4325a2d0850afe81  gcc/testsuite/g++.old-deja/g++.jason/tredecl.C
  bed2e0f518532685396e3880a1588ea1  gcc/testsuite/g++.old-deja/g++.jason/tredecl2.C
  bb1e0f3963c848d63c1da72405f295ce  gcc/testsuite/g++.old-deja/g++.jason/tredecl3.C
--- 34502,34508 ----
  40fcdd9ac5d7df502c6154f385d814a8  gcc/testsuite/g++.old-deja/g++.jason/this.C
  9c846445e2018745dcc34b2f1642858c  gcc/testsuite/g++.old-deja/g++.jason/thunk1.C
  be291c15304c06200056b75e15bc43e8  gcc/testsuite/g++.old-deja/g++.jason/thunk2.C
! c6e663ccc3d9ac3e252e49d45519d342  gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
  776a6eba4666d06b4325a2d0850afe81  gcc/testsuite/g++.old-deja/g++.jason/tredecl.C
  bed2e0f518532685396e3880a1588ea1  gcc/testsuite/g++.old-deja/g++.jason/tredecl2.C
  bb1e0f3963c848d63c1da72405f295ce  gcc/testsuite/g++.old-deja/g++.jason/tredecl3.C
*************** bb1e0f3963c848d63c1da72405f295ce  gcc/te
*** 32384,32390 ****
  ec9838215847693501802a19873c81e4  gcc/testsuite/g++.old-deja/g++.jason/typedef.C
  cf1a7cacf2b35b222f770fcbbdb14cc9  gcc/testsuite/g++.old-deja/g++.jason/typedef2.C
  19a2f7b346b6515ddde5ce656b1b2981  gcc/testsuite/g++.old-deja/g++.jason/typedef3.C
! 188c8510bf00a86d5eafaf2d0bc5eb8a  gcc/testsuite/g++.old-deja/g++.jason/typeid1.C
  bc885562c630090d460d3a7b10e34c16  gcc/testsuite/g++.old-deja/g++.jason/typeid2.C
  2c801d3a7bbe264195737c67cdcac8fd  gcc/testsuite/g++.old-deja/g++.jason/union.C
  e53f8b117ecf4eba5c6610643b9c8d37  gcc/testsuite/g++.old-deja/g++.jason/vecdel.C
--- 34512,34518 ----
  ec9838215847693501802a19873c81e4  gcc/testsuite/g++.old-deja/g++.jason/typedef.C
  cf1a7cacf2b35b222f770fcbbdb14cc9  gcc/testsuite/g++.old-deja/g++.jason/typedef2.C
  19a2f7b346b6515ddde5ce656b1b2981  gcc/testsuite/g++.old-deja/g++.jason/typedef3.C
! 8c4c70fa1541cb6d26382f232c0d1066  gcc/testsuite/g++.old-deja/g++.jason/typeid1.C
  bc885562c630090d460d3a7b10e34c16  gcc/testsuite/g++.old-deja/g++.jason/typeid2.C
  2c801d3a7bbe264195737c67cdcac8fd  gcc/testsuite/g++.old-deja/g++.jason/union.C
  e53f8b117ecf4eba5c6610643b9c8d37  gcc/testsuite/g++.old-deja/g++.jason/vecdel.C
*************** a527d9d80c0f8b1b8cc068fbe97dd294  gcc/te
*** 32405,32411 ****
  600cbff068bad85a667a7c3b74fcda09  gcc/testsuite/g++.old-deja/g++.law/access3.C
  10444249acdf836bb22ce92cd613c0fa  gcc/testsuite/g++.old-deja/g++.law/access4.C
  a899855ccf854a1622bf92c1ca44ce9c  gcc/testsuite/g++.old-deja/g++.law/access5.C
! 6228c9473c663871bdfef1ec7076da53  gcc/testsuite/g++.old-deja/g++.law/arg1.C
  abee0cae5523dfb95a0555bdeda523be  gcc/testsuite/g++.old-deja/g++.law/arg10.C
  4142e7b505ce434e609d1be8f2e872e9  gcc/testsuite/g++.old-deja/g++.law/arg11.C
  58bbec3d47e3c1093dc15fd38738d280  gcc/testsuite/g++.old-deja/g++.law/arg2.C
--- 34533,34539 ----
  600cbff068bad85a667a7c3b74fcda09  gcc/testsuite/g++.old-deja/g++.law/access3.C
  10444249acdf836bb22ce92cd613c0fa  gcc/testsuite/g++.old-deja/g++.law/access4.C
  a899855ccf854a1622bf92c1ca44ce9c  gcc/testsuite/g++.old-deja/g++.law/access5.C
! c8f9e4888cd4ff0d3c8c345f377656e6  gcc/testsuite/g++.old-deja/g++.law/arg1.C
  abee0cae5523dfb95a0555bdeda523be  gcc/testsuite/g++.old-deja/g++.law/arg10.C
  4142e7b505ce434e609d1be8f2e872e9  gcc/testsuite/g++.old-deja/g++.law/arg11.C
  58bbec3d47e3c1093dc15fd38738d280  gcc/testsuite/g++.old-deja/g++.law/arg2.C
*************** e7a24e4040e7c2420672577d30863369  gcc/te
*** 32414,32426 ****
  b0f9075e05d637f35c3bd890e20791bf  gcc/testsuite/g++.old-deja/g++.law/arg5.C
  f28b31a8801c7e65bbdbcc76c8f2ee8f  gcc/testsuite/g++.old-deja/g++.law/arg6.C
  54cf11556d5c2c44c534aea0527d0782  gcc/testsuite/g++.old-deja/g++.law/arg7.C
! 5c91652b075ce38aa0f796399b9b8a0e  gcc/testsuite/g++.old-deja/g++.law/arg8.C
  65c54722723fd259d59b8ad9e1a54ea4  gcc/testsuite/g++.old-deja/g++.law/arg9.C
  423460a9aa0433071409edc0bb9877b2  gcc/testsuite/g++.old-deja/g++.law/arm1.C
  9ac5b9af9bf7f58a3a9618dde4a508e9  gcc/testsuite/g++.old-deja/g++.law/arm10.C
  587c835fb12312b7730448ae3399fdb6  gcc/testsuite/g++.old-deja/g++.law/arm11.C
! 6deaaf89b25433c3e7611015496a2b22  gcc/testsuite/g++.old-deja/g++.law/arm12.C
! c05c2f1ee3a19b333421bc4f4791b463  gcc/testsuite/g++.old-deja/g++.law/arm13.C
  3a1d89be762f8e568230a1fe016f12cd  gcc/testsuite/g++.old-deja/g++.law/arm14.C
  6b9d818d286e7fcc3181ecc976c5356c  gcc/testsuite/g++.old-deja/g++.law/arm15.C
  057e61f135edc44d894404532230c505  gcc/testsuite/g++.old-deja/g++.law/arm16.C
--- 34542,34554 ----
  b0f9075e05d637f35c3bd890e20791bf  gcc/testsuite/g++.old-deja/g++.law/arg5.C
  f28b31a8801c7e65bbdbcc76c8f2ee8f  gcc/testsuite/g++.old-deja/g++.law/arg6.C
  54cf11556d5c2c44c534aea0527d0782  gcc/testsuite/g++.old-deja/g++.law/arg7.C
! 4fea92656edc4c298557f2164a994f14  gcc/testsuite/g++.old-deja/g++.law/arg8.C
  65c54722723fd259d59b8ad9e1a54ea4  gcc/testsuite/g++.old-deja/g++.law/arg9.C
  423460a9aa0433071409edc0bb9877b2  gcc/testsuite/g++.old-deja/g++.law/arm1.C
  9ac5b9af9bf7f58a3a9618dde4a508e9  gcc/testsuite/g++.old-deja/g++.law/arm10.C
  587c835fb12312b7730448ae3399fdb6  gcc/testsuite/g++.old-deja/g++.law/arm11.C
! aae9e6966e3877ba5d86b955cbeb74d9  gcc/testsuite/g++.old-deja/g++.law/arm12.C
! c28a57405910ef01e65ac5eb083b29ea  gcc/testsuite/g++.old-deja/g++.law/arm13.C
  3a1d89be762f8e568230a1fe016f12cd  gcc/testsuite/g++.old-deja/g++.law/arm14.C
  6b9d818d286e7fcc3181ecc976c5356c  gcc/testsuite/g++.old-deja/g++.law/arm15.C
  057e61f135edc44d894404532230c505  gcc/testsuite/g++.old-deja/g++.law/arm16.C
*************** e6aef9a0b701d0c55caae8e224ae447e  gcc/te
*** 32431,32466 ****
  a68ae1accdd8bf6e6fc405b3f7a0dfb5  gcc/testsuite/g++.old-deja/g++.law/arm6.C
  945a0be661f253e32d06947b00b5a957  gcc/testsuite/g++.old-deja/g++.law/arm7.C
  21b61c04c0e58d22e2aad4f662ab134d  gcc/testsuite/g++.old-deja/g++.law/arm8.C
! c7f6e43594112233c39993ee69cd80a1  gcc/testsuite/g++.old-deja/g++.law/arm9.C
  638fa4956e56c7fb5934d5d519cc118f  gcc/testsuite/g++.old-deja/g++.law/array1.C
  6bc074f7a7bf9185ae1b60e830527648  gcc/testsuite/g++.old-deja/g++.law/array2.C
  f2868f3b6bc1abc6a8713d93271caa60  gcc/testsuite/g++.old-deja/g++.law/bad-error1.C
  d577d8c55e685042d83bba698f01886b  gcc/testsuite/g++.old-deja/g++.law/bad-error3.C
  934b6723375a87f52becce540f07892b  gcc/testsuite/g++.old-deja/g++.law/bad-error4.C
  822533128eb0e0a4bcaef22a20c38fad  gcc/testsuite/g++.old-deja/g++.law/bad-error6.C
! daaf68975d20f0ba1af45a1786dabcfb  gcc/testsuite/g++.old-deja/g++.law/bad-error7.C
  cc941aafb35ee4370727338c862b89a3  gcc/testsuite/g++.old-deja/g++.law/bit-fields1.C
  7ab1463bb9a9f728a498ebcdbbede8f9  gcc/testsuite/g++.old-deja/g++.law/bit-fields2.C
  0367f254f4f882067f24c4d417963ff3  gcc/testsuite/g++.old-deja/g++.law/bit-fields3.C
! a88a4a91b7b48ab1e60ad13961259b4e  gcc/testsuite/g++.old-deja/g++.law/builtin1.C
  d064abffb69b49b904a86972c9b22300  gcc/testsuite/g++.old-deja/g++.law/casts1.C
  5e96fdf64986b7604ef1cbfb2a62765f  gcc/testsuite/g++.old-deja/g++.law/casts2.C
  37d297edaf905e63dbdf9877939b5652  gcc/testsuite/g++.old-deja/g++.law/casts3.C
  50fdf8bb033d29c31bc7614b91ecbcbd  gcc/testsuite/g++.old-deja/g++.law/code-gen1.C
  7b8aed78776df3b5447bad3ab2124a53  gcc/testsuite/g++.old-deja/g++.law/code-gen2.C
  886f82bebaa2deb6160aeb372904ca7c  gcc/testsuite/g++.old-deja/g++.law/code-gen4.C
! 487411f4f4e244f536f57f235040951b  gcc/testsuite/g++.old-deja/g++.law/code-gen5.C
  5a49ca31665ab166f9c7f325e494e17c  gcc/testsuite/g++.old-deja/g++.law/copy1.C
  29d3471a87868e8920c62fa56566e9ee  gcc/testsuite/g++.old-deja/g++.law/copy2.C
  ddd94f6a966c58c0d4cb276a337f304f  gcc/testsuite/g++.old-deja/g++.law/ctors1.C
! 7a3469597d71dca36d051be33105b52a  gcc/testsuite/g++.old-deja/g++.law/ctors10.C
  a45d391e647a27d74e3e32bd396ae739  gcc/testsuite/g++.old-deja/g++.law/ctors11.C
! 696279d94532f23faaf6dbad6ee673b8  gcc/testsuite/g++.old-deja/g++.law/ctors12.C
! 0b0cdcae93cc7c8a064b5678606e0ba0  gcc/testsuite/g++.old-deja/g++.law/ctors13.C
  0ba2fb7388850829ec3b09582a604416  gcc/testsuite/g++.old-deja/g++.law/ctors14.C
  547a4a89b8882a89408c4da563c2cf13  gcc/testsuite/g++.old-deja/g++.law/ctors15.C
  7f2178002dceafebd3b7ea2554c8f683  gcc/testsuite/g++.old-deja/g++.law/ctors16.C
! 0d2f06f3d6bc21cfee70a7ffe2697023  gcc/testsuite/g++.old-deja/g++.law/ctors17.C
  a5b63aa60cdf98f11396c1db1f6cd89f  gcc/testsuite/g++.old-deja/g++.law/ctors18.C
  a3655db48ce5aa14618d4b6b4c59c540  gcc/testsuite/g++.old-deja/g++.law/ctors19.C
  83c05fe0aab282ba59289316d36fc8ae  gcc/testsuite/g++.old-deja/g++.law/ctors2.C
--- 34559,34594 ----
  a68ae1accdd8bf6e6fc405b3f7a0dfb5  gcc/testsuite/g++.old-deja/g++.law/arm6.C
  945a0be661f253e32d06947b00b5a957  gcc/testsuite/g++.old-deja/g++.law/arm7.C
  21b61c04c0e58d22e2aad4f662ab134d  gcc/testsuite/g++.old-deja/g++.law/arm8.C
! 4d3265ecd2e789a82ba36adb05c58077  gcc/testsuite/g++.old-deja/g++.law/arm9.C
  638fa4956e56c7fb5934d5d519cc118f  gcc/testsuite/g++.old-deja/g++.law/array1.C
  6bc074f7a7bf9185ae1b60e830527648  gcc/testsuite/g++.old-deja/g++.law/array2.C
  f2868f3b6bc1abc6a8713d93271caa60  gcc/testsuite/g++.old-deja/g++.law/bad-error1.C
  d577d8c55e685042d83bba698f01886b  gcc/testsuite/g++.old-deja/g++.law/bad-error3.C
  934b6723375a87f52becce540f07892b  gcc/testsuite/g++.old-deja/g++.law/bad-error4.C
  822533128eb0e0a4bcaef22a20c38fad  gcc/testsuite/g++.old-deja/g++.law/bad-error6.C
! 53a2f1098f75f557b2bc7bd76f4352e8  gcc/testsuite/g++.old-deja/g++.law/bad-error7.C
  cc941aafb35ee4370727338c862b89a3  gcc/testsuite/g++.old-deja/g++.law/bit-fields1.C
  7ab1463bb9a9f728a498ebcdbbede8f9  gcc/testsuite/g++.old-deja/g++.law/bit-fields2.C
  0367f254f4f882067f24c4d417963ff3  gcc/testsuite/g++.old-deja/g++.law/bit-fields3.C
! 1b158e67ad01762f07ee73fc715bc77f  gcc/testsuite/g++.old-deja/g++.law/builtin1.C
  d064abffb69b49b904a86972c9b22300  gcc/testsuite/g++.old-deja/g++.law/casts1.C
  5e96fdf64986b7604ef1cbfb2a62765f  gcc/testsuite/g++.old-deja/g++.law/casts2.C
  37d297edaf905e63dbdf9877939b5652  gcc/testsuite/g++.old-deja/g++.law/casts3.C
  50fdf8bb033d29c31bc7614b91ecbcbd  gcc/testsuite/g++.old-deja/g++.law/code-gen1.C
  7b8aed78776df3b5447bad3ab2124a53  gcc/testsuite/g++.old-deja/g++.law/code-gen2.C
  886f82bebaa2deb6160aeb372904ca7c  gcc/testsuite/g++.old-deja/g++.law/code-gen4.C
! dfb589a39244dc757107943d73654943  gcc/testsuite/g++.old-deja/g++.law/code-gen5.C
  5a49ca31665ab166f9c7f325e494e17c  gcc/testsuite/g++.old-deja/g++.law/copy1.C
  29d3471a87868e8920c62fa56566e9ee  gcc/testsuite/g++.old-deja/g++.law/copy2.C
  ddd94f6a966c58c0d4cb276a337f304f  gcc/testsuite/g++.old-deja/g++.law/ctors1.C
! 061e01db6dac057464bf2af4807149ec  gcc/testsuite/g++.old-deja/g++.law/ctors10.C
  a45d391e647a27d74e3e32bd396ae739  gcc/testsuite/g++.old-deja/g++.law/ctors11.C
! cc78dfe2f935b7bbe3ca4f88aa4b0dff  gcc/testsuite/g++.old-deja/g++.law/ctors12.C
! 257b6dc6257f3b3c631d2a5defb505cf  gcc/testsuite/g++.old-deja/g++.law/ctors13.C
  0ba2fb7388850829ec3b09582a604416  gcc/testsuite/g++.old-deja/g++.law/ctors14.C
  547a4a89b8882a89408c4da563c2cf13  gcc/testsuite/g++.old-deja/g++.law/ctors15.C
  7f2178002dceafebd3b7ea2554c8f683  gcc/testsuite/g++.old-deja/g++.law/ctors16.C
! 635fbc894a6bbf0160e037de8f72edb5  gcc/testsuite/g++.old-deja/g++.law/ctors17.C
  a5b63aa60cdf98f11396c1db1f6cd89f  gcc/testsuite/g++.old-deja/g++.law/ctors18.C
  a3655db48ce5aa14618d4b6b4c59c540  gcc/testsuite/g++.old-deja/g++.law/ctors19.C
  83c05fe0aab282ba59289316d36fc8ae  gcc/testsuite/g++.old-deja/g++.law/ctors2.C
*************** dc32c6d12d1a1b5cd5bb38c3c95f7d21  gcc/te
*** 32469,32475 ****
  7fca46a172e3bee134b4a9f9b5e04bad  gcc/testsuite/g++.old-deja/g++.law/ctors3.C
  06ecb0ea3c8fc37c696d9abb04e7f082  gcc/testsuite/g++.old-deja/g++.law/ctors4.C
  9e5674e58e1f4e089d887d719f784045  gcc/testsuite/g++.old-deja/g++.law/ctors5.C
! 3c88f551fae35afe3700c32a9b86ba3b  gcc/testsuite/g++.old-deja/g++.law/ctors6.C
  6ccdf846deed077c0368e1979b098c62  gcc/testsuite/g++.old-deja/g++.law/ctors7.C
  1c153aca2432c068fe35c65ebd6b24b9  gcc/testsuite/g++.old-deja/g++.law/ctors8.C
  a8b29a91d8bc8d2b85a1630e2f4a9b4a  gcc/testsuite/g++.old-deja/g++.law/ctors9.C
--- 34597,34603 ----
  7fca46a172e3bee134b4a9f9b5e04bad  gcc/testsuite/g++.old-deja/g++.law/ctors3.C
  06ecb0ea3c8fc37c696d9abb04e7f082  gcc/testsuite/g++.old-deja/g++.law/ctors4.C
  9e5674e58e1f4e089d887d719f784045  gcc/testsuite/g++.old-deja/g++.law/ctors5.C
! dd8259bc32f56144911d4386c67ad69a  gcc/testsuite/g++.old-deja/g++.law/ctors6.C
  6ccdf846deed077c0368e1979b098c62  gcc/testsuite/g++.old-deja/g++.law/ctors7.C
  1c153aca2432c068fe35c65ebd6b24b9  gcc/testsuite/g++.old-deja/g++.law/ctors8.C
  a8b29a91d8bc8d2b85a1630e2f4a9b4a  gcc/testsuite/g++.old-deja/g++.law/ctors9.C
*************** f6b6504a942b7a3076ae456211b1217b  gcc/te
*** 32480,32490 ****
  b6252956b6b17df232f650c3bd42b803  gcc/testsuite/g++.old-deja/g++.law/cvt13.C
  477dfc95263afcb90b213932001f322b  gcc/testsuite/g++.old-deja/g++.law/cvt14.C
  cbae2bf0ce3e57fc66439d36da03e0d5  gcc/testsuite/g++.old-deja/g++.law/cvt15.C
! 8aa22627fdc9a22b8eef20f4fdcb3a12  gcc/testsuite/g++.old-deja/g++.law/cvt16.C
  9a6a4b84f0461a6a230340a55aa24a13  gcc/testsuite/g++.old-deja/g++.law/cvt17.C
  1f68fb21dd289bc6d6073480ead2ce03  gcc/testsuite/g++.old-deja/g++.law/cvt18.C
  59c4dcdbd25a43a3d1379b1156ae3c08  gcc/testsuite/g++.old-deja/g++.law/cvt19.C
! 15d1e6d8211f9560955e7b29645c20ea  gcc/testsuite/g++.old-deja/g++.law/cvt2.C
  75c676b922c0ef4b5ccd3184c55cfc75  gcc/testsuite/g++.old-deja/g++.law/cvt20.C
  f4d804181feaef36ad9e9c57d9ace840  gcc/testsuite/g++.old-deja/g++.law/cvt21.C
  9f4049af50feb8fc2d762b8fb72e4db2  gcc/testsuite/g++.old-deja/g++.law/cvt22.C
--- 34608,34618 ----
  b6252956b6b17df232f650c3bd42b803  gcc/testsuite/g++.old-deja/g++.law/cvt13.C
  477dfc95263afcb90b213932001f322b  gcc/testsuite/g++.old-deja/g++.law/cvt14.C
  cbae2bf0ce3e57fc66439d36da03e0d5  gcc/testsuite/g++.old-deja/g++.law/cvt15.C
! cb03a21e266a2928177273d42936eb7e  gcc/testsuite/g++.old-deja/g++.law/cvt16.C
  9a6a4b84f0461a6a230340a55aa24a13  gcc/testsuite/g++.old-deja/g++.law/cvt17.C
  1f68fb21dd289bc6d6073480ead2ce03  gcc/testsuite/g++.old-deja/g++.law/cvt18.C
  59c4dcdbd25a43a3d1379b1156ae3c08  gcc/testsuite/g++.old-deja/g++.law/cvt19.C
! da16fa0a125618b2df74b17d5ae01c7a  gcc/testsuite/g++.old-deja/g++.law/cvt2.C
  75c676b922c0ef4b5ccd3184c55cfc75  gcc/testsuite/g++.old-deja/g++.law/cvt20.C
  f4d804181feaef36ad9e9c57d9ace840  gcc/testsuite/g++.old-deja/g++.law/cvt21.C
  9f4049af50feb8fc2d762b8fb72e4db2  gcc/testsuite/g++.old-deja/g++.law/cvt22.C
*************** f4d804181feaef36ad9e9c57d9ace840  gcc/te
*** 32493,32499 ****
  dc37134dafaeeab47e6be2a9391cdd90  gcc/testsuite/g++.old-deja/g++.law/cvt4.C
  0a0df1b8d53bb1f1473e61fac304a29e  gcc/testsuite/g++.old-deja/g++.law/cvt5.C
  ff6b0fa6a62a37fa613449af33cbdea8  gcc/testsuite/g++.old-deja/g++.law/cvt6.C
! 74e29b644a4c72c033604e00a32a038c  gcc/testsuite/g++.old-deja/g++.law/cvt7.C
  5544958900d2ad38f3227e493b473950  gcc/testsuite/g++.old-deja/g++.law/cvt8.C
  408b88e03a9cc8b9e299cd21a7a0b57b  gcc/testsuite/g++.old-deja/g++.law/cvt9.C
  8ccd1e790f8112ea7cb62ae884f3b194  gcc/testsuite/g++.old-deja/g++.law/dossier1.C
--- 34621,34627 ----
  dc37134dafaeeab47e6be2a9391cdd90  gcc/testsuite/g++.old-deja/g++.law/cvt4.C
  0a0df1b8d53bb1f1473e61fac304a29e  gcc/testsuite/g++.old-deja/g++.law/cvt5.C
  ff6b0fa6a62a37fa613449af33cbdea8  gcc/testsuite/g++.old-deja/g++.law/cvt6.C
! 6ff24a01fba4f121dfc54dbab5fbada9  gcc/testsuite/g++.old-deja/g++.law/cvt7.C
  5544958900d2ad38f3227e493b473950  gcc/testsuite/g++.old-deja/g++.law/cvt8.C
  408b88e03a9cc8b9e299cd21a7a0b57b  gcc/testsuite/g++.old-deja/g++.law/cvt9.C
  8ccd1e790f8112ea7cb62ae884f3b194  gcc/testsuite/g++.old-deja/g++.law/dossier1.C
*************** c4d9da2c6fb576556019102312954241  gcc/te
*** 32513,32519 ****
  78fafdc2ce65c395103fb31e50e03979  gcc/testsuite/g++.old-deja/g++.law/except2.C
  17776f2c63dce2c00f74aaf5401f88e3  gcc/testsuite/g++.old-deja/g++.law/except3.C
  9f5fd5a9c0d286a6da07b43ffdab9523  gcc/testsuite/g++.old-deja/g++.law/except4.C
! 8d6be9ca065c2ea51a648e772196fb09  gcc/testsuite/g++.old-deja/g++.law/except5.C
  2c9505d31f11fedc1ea3c45d6d817fd4  gcc/testsuite/g++.old-deja/g++.law/except6.C
  5011d6417e25d1f2e0b0a0fb38d33773  gcc/testsuite/g++.old-deja/g++.law/friend1.C
  01820d5f43051fc079e1496a888f6b61  gcc/testsuite/g++.old-deja/g++.law/friend4.C
--- 34641,34647 ----
  78fafdc2ce65c395103fb31e50e03979  gcc/testsuite/g++.old-deja/g++.law/except2.C
  17776f2c63dce2c00f74aaf5401f88e3  gcc/testsuite/g++.old-deja/g++.law/except3.C
  9f5fd5a9c0d286a6da07b43ffdab9523  gcc/testsuite/g++.old-deja/g++.law/except4.C
! 4e57e420a9d215c7c0cd9546dc0d6e2b  gcc/testsuite/g++.old-deja/g++.law/except5.C
  2c9505d31f11fedc1ea3c45d6d817fd4  gcc/testsuite/g++.old-deja/g++.law/except6.C
  5011d6417e25d1f2e0b0a0fb38d33773  gcc/testsuite/g++.old-deja/g++.law/friend1.C
  01820d5f43051fc079e1496a888f6b61  gcc/testsuite/g++.old-deja/g++.law/friend4.C
*************** d621cc9a35c3180103ded4695025f3cb  gcc/te
*** 32538,32549 ****
  2983fb2df63a87b23801a2e31f0fd6ea  gcc/testsuite/g++.old-deja/g++.law/inline7.C
  c19fee3a5e6a2b1bb1ddf308671313bf  gcc/testsuite/g++.old-deja/g++.law/mentor1.C
  4412eb140fc4d53d0e79cc7b9c480177  gcc/testsuite/g++.old-deja/g++.law/missed-error1.C
! dbe57536ce9b753bd04e630d155a6ea2  gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
  148550d0fadd59c32845caec87bce551  gcc/testsuite/g++.old-deja/g++.law/missed-error3.C
  9f60400f904c292745b6a579c3b0857c  gcc/testsuite/g++.old-deja/g++.law/missing1.C
  21dbe19532a5dba9213a523d74ea1bb4  gcc/testsuite/g++.old-deja/g++.law/nest1.C
  0e841c8579dbf3f077a536abcaf5bbba  gcc/testsuite/g++.old-deja/g++.law/nest2.C
! c47e91e5ce6ff2031199530ac45527c6  gcc/testsuite/g++.old-deja/g++.law/nest3.C
  5c6b35283eff7477cf49c096a29df5f4  gcc/testsuite/g++.old-deja/g++.law/nest4.C
  3a28e8608852c676107da2157b8bcf50  gcc/testsuite/g++.old-deja/g++.law/nest5.C
  b91033cea46793dace64923d9eb6d3e9  gcc/testsuite/g++.old-deja/g++.law/operators10.C
--- 34666,34677 ----
  2983fb2df63a87b23801a2e31f0fd6ea  gcc/testsuite/g++.old-deja/g++.law/inline7.C
  c19fee3a5e6a2b1bb1ddf308671313bf  gcc/testsuite/g++.old-deja/g++.law/mentor1.C
  4412eb140fc4d53d0e79cc7b9c480177  gcc/testsuite/g++.old-deja/g++.law/missed-error1.C
! b5a7737d1aa315c5debded831e6927d7  gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
  148550d0fadd59c32845caec87bce551  gcc/testsuite/g++.old-deja/g++.law/missed-error3.C
  9f60400f904c292745b6a579c3b0857c  gcc/testsuite/g++.old-deja/g++.law/missing1.C
  21dbe19532a5dba9213a523d74ea1bb4  gcc/testsuite/g++.old-deja/g++.law/nest1.C
  0e841c8579dbf3f077a536abcaf5bbba  gcc/testsuite/g++.old-deja/g++.law/nest2.C
! 6ea46a0f25c240a0a8c7f29f8ec791b9  gcc/testsuite/g++.old-deja/g++.law/nest3.C
  5c6b35283eff7477cf49c096a29df5f4  gcc/testsuite/g++.old-deja/g++.law/nest4.C
  3a28e8608852c676107da2157b8bcf50  gcc/testsuite/g++.old-deja/g++.law/nest5.C
  b91033cea46793dace64923d9eb6d3e9  gcc/testsuite/g++.old-deja/g++.law/operators10.C
*************** f92d76b909469e15341b42f75160dc0f  gcc/te
*** 32551,32557 ****
  84a049468c8e1f578316b778e2a4a269  gcc/testsuite/g++.old-deja/g++.law/operators12.C
  8a50c19c0775dd6c081574f2fe4a4617  gcc/testsuite/g++.old-deja/g++.law/operators13.C
  b6a5e16654c8a404c920290086ad4e19  gcc/testsuite/g++.old-deja/g++.law/operators14.C
! 06776eb2fb48141d4042c0f36e3d7340  gcc/testsuite/g++.old-deja/g++.law/operators15.C
  a2ad1fc1ffe77ce7c03c4bd15ba450ad  gcc/testsuite/g++.old-deja/g++.law/operators16.C
  383d1f9e7a38d4fee3871e8dae108b89  gcc/testsuite/g++.old-deja/g++.law/operators17.C
  851c5232212f96b8f53783fa25fb13c0  gcc/testsuite/g++.old-deja/g++.law/operators18.C
--- 34679,34685 ----
  84a049468c8e1f578316b778e2a4a269  gcc/testsuite/g++.old-deja/g++.law/operators12.C
  8a50c19c0775dd6c081574f2fe4a4617  gcc/testsuite/g++.old-deja/g++.law/operators13.C
  b6a5e16654c8a404c920290086ad4e19  gcc/testsuite/g++.old-deja/g++.law/operators14.C
! bdcb5aa5e290152d8583ae00b9df66fb  gcc/testsuite/g++.old-deja/g++.law/operators15.C
  a2ad1fc1ffe77ce7c03c4bd15ba450ad  gcc/testsuite/g++.old-deja/g++.law/operators16.C
  383d1f9e7a38d4fee3871e8dae108b89  gcc/testsuite/g++.old-deja/g++.law/operators17.C
  851c5232212f96b8f53783fa25fb13c0  gcc/testsuite/g++.old-deja/g++.law/operators18.C
*************** f91c5a2f03f5949157b6ef9b260ea969  gcc/te
*** 32568,32577 ****
  422bdebc048dd2cd33dc7f5239729aeb  gcc/testsuite/g++.old-deja/g++.law/operators3.C
  cc101c050ea10c9be6d9b5ddaa8d4986  gcc/testsuite/g++.old-deja/g++.law/operators30.C
  137bc288c72aa898b2ca9453751cf6e6  gcc/testsuite/g++.old-deja/g++.law/operators31.C
! c4789e17d02e5d86387e80d818889ddf  gcc/testsuite/g++.old-deja/g++.law/operators32.C
  f240605f2293a1088aa4b41a32d367f7  gcc/testsuite/g++.old-deja/g++.law/operators33.C
  3d610b4d60d2487ef7c73865ca625dc2  gcc/testsuite/g++.old-deja/g++.law/operators34.C
! f2eea3bb65e7af345d839d7fa8280b56  gcc/testsuite/g++.old-deja/g++.law/operators4.C
  55b05d62217b8d49e3417722b1406cea  gcc/testsuite/g++.old-deja/g++.law/operators6.C
  9dd866325635f38988914adf0a344f74  gcc/testsuite/g++.old-deja/g++.law/operators8.C
  0834ce1dacd36db9f293dc39443ca95e  gcc/testsuite/g++.old-deja/g++.law/operators9.C
--- 34696,34705 ----
  422bdebc048dd2cd33dc7f5239729aeb  gcc/testsuite/g++.old-deja/g++.law/operators3.C
  cc101c050ea10c9be6d9b5ddaa8d4986  gcc/testsuite/g++.old-deja/g++.law/operators30.C
  137bc288c72aa898b2ca9453751cf6e6  gcc/testsuite/g++.old-deja/g++.law/operators31.C
! abcb2d5a3f67825464634ac3e3072517  gcc/testsuite/g++.old-deja/g++.law/operators32.C
  f240605f2293a1088aa4b41a32d367f7  gcc/testsuite/g++.old-deja/g++.law/operators33.C
  3d610b4d60d2487ef7c73865ca625dc2  gcc/testsuite/g++.old-deja/g++.law/operators34.C
! 7772856ab07d3b7b5519a94d7d11a991  gcc/testsuite/g++.old-deja/g++.law/operators4.C
  55b05d62217b8d49e3417722b1406cea  gcc/testsuite/g++.old-deja/g++.law/operators6.C
  9dd866325635f38988914adf0a344f74  gcc/testsuite/g++.old-deja/g++.law/operators8.C
  0834ce1dacd36db9f293dc39443ca95e  gcc/testsuite/g++.old-deja/g++.law/operators9.C
*************** b13e21bd4f45e20bd28833048a99706f  gcc/te
*** 32594,32600 ****
  ba81cc1584de7e22a78f9d7c3c75a0bb  gcc/testsuite/g++.old-deja/g++.law/refs3.C
  71295388bb61bdec03ad31726c0b9282  gcc/testsuite/g++.old-deja/g++.law/refs4.C
  46a6e26271d3f0d8ac451258913ab825  gcc/testsuite/g++.old-deja/g++.law/scope1.C
! 06d0dda96e5115c8db9f563ca5ce7dcf  gcc/testsuite/g++.old-deja/g++.law/scope2.C
  30ade8dcbeee835295128ff793fbf57f  gcc/testsuite/g++.old-deja/g++.law/scope3.C
  973ba91fa12691d7e643d2a9ca540fe9  gcc/testsuite/g++.old-deja/g++.law/scope4.C
  6cb4f5b7e9f7233b21e596a38ac08812  gcc/testsuite/g++.old-deja/g++.law/scope5.C
--- 34722,34728 ----
  ba81cc1584de7e22a78f9d7c3c75a0bb  gcc/testsuite/g++.old-deja/g++.law/refs3.C
  71295388bb61bdec03ad31726c0b9282  gcc/testsuite/g++.old-deja/g++.law/refs4.C
  46a6e26271d3f0d8ac451258913ab825  gcc/testsuite/g++.old-deja/g++.law/scope1.C
! 61496a4054815da49def11441d2d108d  gcc/testsuite/g++.old-deja/g++.law/scope2.C
  30ade8dcbeee835295128ff793fbf57f  gcc/testsuite/g++.old-deja/g++.law/scope3.C
  973ba91fa12691d7e643d2a9ca540fe9  gcc/testsuite/g++.old-deja/g++.law/scope4.C
  6cb4f5b7e9f7233b21e596a38ac08812  gcc/testsuite/g++.old-deja/g++.law/scope5.C
*************** fb72e0d2fea16c73ec4fddda21e15df1  gcc/te
*** 32623,32650 ****
  8fb9d7411a8b891ecdcfaa7c306a0390  gcc/testsuite/g++.old-deja/g++.law/union4.C
  7e48a824266024bbb564141961124a61  gcc/testsuite/g++.old-deja/g++.law/unsorted1.C
  380881aebe61094f4df13be7d32eb06f  gcc/testsuite/g++.old-deja/g++.law/unsorted2.C
! b670a00f5a22d3c4393b7380abc9bb6f  gcc/testsuite/g++.old-deja/g++.law/vbase1.C
  f06f47a235e63776d0557c606f366d12  gcc/testsuite/g++.old-deja/g++.law/virtual1.C
  b0021e7056bc3ffa8c7abf02d43c8a27  gcc/testsuite/g++.old-deja/g++.law/virtual2.C
! bf2c9b06556999dd1a62fb7f0b8a0cbc  gcc/testsuite/g++.old-deja/g++.law/virtual3.C
  262bdcf37f1f8e0e4ab1e2307a42eb36  gcc/testsuite/g++.old-deja/g++.law/virtual4.C
! de29ab2e92616aa500d00dccc5c13384  gcc/testsuite/g++.old-deja/g++.law/visibility1.C
! f0172f6ae49ffde513b6ca7a5245ae8b  gcc/testsuite/g++.old-deja/g++.law/visibility10.C
  a25826be78810e5dc71078f5af23ec75  gcc/testsuite/g++.old-deja/g++.law/visibility11.C
  ad7c4fefca597101b93106d397f18f11  gcc/testsuite/g++.old-deja/g++.law/visibility12.C
! 078e450db48872ef44e7b3927f9ff1cc  gcc/testsuite/g++.old-deja/g++.law/visibility13.C
  dce4661dcbcb694a1167a86aab76bfea  gcc/testsuite/g++.old-deja/g++.law/visibility14.C
  19496a95dc9ffcac0325b3637ab1e8da  gcc/testsuite/g++.old-deja/g++.law/visibility15.C
  c9c2a549861d8a208f184106543ab0b4  gcc/testsuite/g++.old-deja/g++.law/visibility16.C
! 967b2039085ac1d15a574dbd03029cc4  gcc/testsuite/g++.old-deja/g++.law/visibility17.C
  2c5b2be9e3d6d347165ac641d49143ce  gcc/testsuite/g++.old-deja/g++.law/visibility18.C
  3b7a4c6c33435fb412b40e43b04d2fbb  gcc/testsuite/g++.old-deja/g++.law/visibility19.C
! 3aedc5971e8aa2703881ee564d90b111  gcc/testsuite/g++.old-deja/g++.law/visibility2.C
  b19ed60c5958aaf968f5997681d3f850  gcc/testsuite/g++.old-deja/g++.law/visibility20.C
  0f54cf25fe9ffa9c20c118c520ab7d24  gcc/testsuite/g++.old-deja/g++.law/visibility21.C
! 2e8a20cca66e2d0bbd58a5543fffaad3  gcc/testsuite/g++.old-deja/g++.law/visibility22.C
  a505ef1b0b2091ccaa4f56ca47fc3434  gcc/testsuite/g++.old-deja/g++.law/visibility24.C
! c42ec3a1df1d4b0130e39689ff6061cc  gcc/testsuite/g++.old-deja/g++.law/visibility25.C
  ea7844806f8312d4dc27b0469a993bba  gcc/testsuite/g++.old-deja/g++.law/visibility26.C
  5bf028a54c42be753c5a70a61ce49abc  gcc/testsuite/g++.old-deja/g++.law/visibility27.C
  a24bfda97e2b33d0ab14a8f7ba45e74a  gcc/testsuite/g++.old-deja/g++.law/visibility28.C
--- 34751,34778 ----
  8fb9d7411a8b891ecdcfaa7c306a0390  gcc/testsuite/g++.old-deja/g++.law/union4.C
  7e48a824266024bbb564141961124a61  gcc/testsuite/g++.old-deja/g++.law/unsorted1.C
  380881aebe61094f4df13be7d32eb06f  gcc/testsuite/g++.old-deja/g++.law/unsorted2.C
! 5cd8444df88870c2b778c4ed0cac7286  gcc/testsuite/g++.old-deja/g++.law/vbase1.C
  f06f47a235e63776d0557c606f366d12  gcc/testsuite/g++.old-deja/g++.law/virtual1.C
  b0021e7056bc3ffa8c7abf02d43c8a27  gcc/testsuite/g++.old-deja/g++.law/virtual2.C
! 6b188818357bc9f40cd2ffb01a96ab0a  gcc/testsuite/g++.old-deja/g++.law/virtual3.C
  262bdcf37f1f8e0e4ab1e2307a42eb36  gcc/testsuite/g++.old-deja/g++.law/virtual4.C
! 1df0dcd0ee7fa2280a0a43d39fff4835  gcc/testsuite/g++.old-deja/g++.law/visibility1.C
! e1f130449ef5a2c33ac442c3895444bf  gcc/testsuite/g++.old-deja/g++.law/visibility10.C
  a25826be78810e5dc71078f5af23ec75  gcc/testsuite/g++.old-deja/g++.law/visibility11.C
  ad7c4fefca597101b93106d397f18f11  gcc/testsuite/g++.old-deja/g++.law/visibility12.C
! ac8d114c4e9d623c9435ae70289f1cce  gcc/testsuite/g++.old-deja/g++.law/visibility13.C
  dce4661dcbcb694a1167a86aab76bfea  gcc/testsuite/g++.old-deja/g++.law/visibility14.C
  19496a95dc9ffcac0325b3637ab1e8da  gcc/testsuite/g++.old-deja/g++.law/visibility15.C
  c9c2a549861d8a208f184106543ab0b4  gcc/testsuite/g++.old-deja/g++.law/visibility16.C
! dc1f10ae3c62c83a995078b3fd99e1b3  gcc/testsuite/g++.old-deja/g++.law/visibility17.C
  2c5b2be9e3d6d347165ac641d49143ce  gcc/testsuite/g++.old-deja/g++.law/visibility18.C
  3b7a4c6c33435fb412b40e43b04d2fbb  gcc/testsuite/g++.old-deja/g++.law/visibility19.C
! e17e35ab1726fd7b03aa3605a5a47bf6  gcc/testsuite/g++.old-deja/g++.law/visibility2.C
  b19ed60c5958aaf968f5997681d3f850  gcc/testsuite/g++.old-deja/g++.law/visibility20.C
  0f54cf25fe9ffa9c20c118c520ab7d24  gcc/testsuite/g++.old-deja/g++.law/visibility21.C
! 466b5262265fc26ac48af3f5e8117600  gcc/testsuite/g++.old-deja/g++.law/visibility22.C
  a505ef1b0b2091ccaa4f56ca47fc3434  gcc/testsuite/g++.old-deja/g++.law/visibility24.C
! 502b795856c533857c711ca8f08bb758  gcc/testsuite/g++.old-deja/g++.law/visibility25.C
  ea7844806f8312d4dc27b0469a993bba  gcc/testsuite/g++.old-deja/g++.law/visibility26.C
  5bf028a54c42be753c5a70a61ce49abc  gcc/testsuite/g++.old-deja/g++.law/visibility27.C
  a24bfda97e2b33d0ab14a8f7ba45e74a  gcc/testsuite/g++.old-deja/g++.law/visibility28.C
*************** a24bfda97e2b33d0ab14a8f7ba45e74a  gcc/te
*** 32652,32664 ****
  a282846406efaa1627dbbb3b4bf1c5e5  gcc/testsuite/g++.old-deja/g++.law/visibility4.C
  0044a4d62dfe2cacb9a0fb82f9dc6fbc  gcc/testsuite/g++.old-deja/g++.law/visibility5.C
  3a5f90628d111f3e2ca93e98f0d232cd  gcc/testsuite/g++.old-deja/g++.law/visibility6.C
! 1488ef54e32cd312ecec7c1d429f5990  gcc/testsuite/g++.old-deja/g++.law/visibility7.C
  4f213ed76214c30e54bfd2d2b2aaee66  gcc/testsuite/g++.old-deja/g++.law/visibility8.C
  73f0dee638ec0f7c42ea7c319c1aeb8d  gcc/testsuite/g++.old-deja/g++.law/visibility9.C
  f3059608a1f797e501185505c8997b6d  gcc/testsuite/g++.old-deja/g++.law/vtable1.C
  248e82b0d6c1c80f463a405ecdc6ed4a  gcc/testsuite/g++.old-deja/g++.law/vtable2.C
  2ce54c476e19764bdebe4ac6fc7d64f7  gcc/testsuite/g++.old-deja/g++.law/vtable3.C
! ed4d03048f05abfe0d8f682b3921c375  gcc/testsuite/g++.old-deja/g++.law/weak.C
  99f229ca2e8b470ed7c34283d8fc4e1a  gcc/testsuite/g++.old-deja/g++.martin/access1.C
  e713a98f853afc3952b263f5b9a2624f  gcc/testsuite/g++.old-deja/g++.martin/ambig1.C
  bbcf18896f3a1d744cf356a0a66cd95a  gcc/testsuite/g++.old-deja/g++.martin/bitset1.C
--- 34780,34792 ----
  a282846406efaa1627dbbb3b4bf1c5e5  gcc/testsuite/g++.old-deja/g++.law/visibility4.C
  0044a4d62dfe2cacb9a0fb82f9dc6fbc  gcc/testsuite/g++.old-deja/g++.law/visibility5.C
  3a5f90628d111f3e2ca93e98f0d232cd  gcc/testsuite/g++.old-deja/g++.law/visibility6.C
! 37d1636d62d3fada046ebe7724e7f11d  gcc/testsuite/g++.old-deja/g++.law/visibility7.C
  4f213ed76214c30e54bfd2d2b2aaee66  gcc/testsuite/g++.old-deja/g++.law/visibility8.C
  73f0dee638ec0f7c42ea7c319c1aeb8d  gcc/testsuite/g++.old-deja/g++.law/visibility9.C
  f3059608a1f797e501185505c8997b6d  gcc/testsuite/g++.old-deja/g++.law/vtable1.C
  248e82b0d6c1c80f463a405ecdc6ed4a  gcc/testsuite/g++.old-deja/g++.law/vtable2.C
  2ce54c476e19764bdebe4ac6fc7d64f7  gcc/testsuite/g++.old-deja/g++.law/vtable3.C
! 5845158604d36d485568be4f7d34e17f  gcc/testsuite/g++.old-deja/g++.law/weak.C
  99f229ca2e8b470ed7c34283d8fc4e1a  gcc/testsuite/g++.old-deja/g++.martin/access1.C
  e713a98f853afc3952b263f5b9a2624f  gcc/testsuite/g++.old-deja/g++.martin/ambig1.C
  bbcf18896f3a1d744cf356a0a66cd95a  gcc/testsuite/g++.old-deja/g++.martin/bitset1.C
*************** bbcf18896f3a1d744cf356a0a66cd95a  gcc/te
*** 32666,32672 ****
  35f6ed93fa63b9db22cde011b976421d  gcc/testsuite/g++.old-deja/g++.martin/crash1.C
  1fcbe469d9287f683e48ab8325c6dc60  gcc/testsuite/g++.old-deja/g++.martin/eval1.C
  f7c3c07528a0fc1e61c6d947e61d78ac  gcc/testsuite/g++.old-deja/g++.martin/lookup1.C
! 856d44bd56cbf26344be69730323a1f3  gcc/testsuite/g++.old-deja/g++.martin/new1.C
  cbc1074c24be7acf9a3d5e06f47f9987  gcc/testsuite/g++.old-deja/g++.martin/overload1.C
  48a5f2cf28d6fed53bd37f93a37d127f  gcc/testsuite/g++.old-deja/g++.martin/pmf1.C
  45900dcbe065b97983fa9607056287f8  gcc/testsuite/g++.old-deja/g++.martin/pmf2.C
--- 34794,34800 ----
  35f6ed93fa63b9db22cde011b976421d  gcc/testsuite/g++.old-deja/g++.martin/crash1.C
  1fcbe469d9287f683e48ab8325c6dc60  gcc/testsuite/g++.old-deja/g++.martin/eval1.C
  f7c3c07528a0fc1e61c6d947e61d78ac  gcc/testsuite/g++.old-deja/g++.martin/lookup1.C
! 2ce40c7df99e7e8c362753cb0204a3c5  gcc/testsuite/g++.old-deja/g++.martin/new1.C
  cbc1074c24be7acf9a3d5e06f47f9987  gcc/testsuite/g++.old-deja/g++.martin/overload1.C
  48a5f2cf28d6fed53bd37f93a37d127f  gcc/testsuite/g++.old-deja/g++.martin/pmf1.C
  45900dcbe065b97983fa9607056287f8  gcc/testsuite/g++.old-deja/g++.martin/pmf2.C
*************** ace99590d34eb0094953512378201308  gcc/te
*** 32693,32713 ****
  52c9112b967757746faf0c3e16c2465a  gcc/testsuite/g++.old-deja/g++.mike/dyncast4.C
  85f0e8d1ccc85a511c10e149de6699ef  gcc/testsuite/g++.old-deja/g++.mike/dyncast5.C
  e9b0560fbe893157bec31312a0b9e4a2  gcc/testsuite/g++.old-deja/g++.mike/dyncast6.C
! fb9b779da9bd2d460c71d8c0f1f6d090  gcc/testsuite/g++.old-deja/g++.mike/dyncast7.C
  cdcf7943e31dae20cf4b2ef4c0f6436c  gcc/testsuite/g++.old-deja/g++.mike/dyncast8.C
  dc0842e0e7b05c40ec3e0d4c4870e146  gcc/testsuite/g++.old-deja/g++.mike/dyncast9.C
  d42326fdd7867d78740150eea99b0d45  gcc/testsuite/g++.old-deja/g++.mike/eh1.C
  757cf9f0bef24c5b012e3b3ab399cb2b  gcc/testsuite/g++.old-deja/g++.mike/eh10.C
  1fb9ab6ee027cdbda2a3e1ad7937488f  gcc/testsuite/g++.old-deja/g++.mike/eh11.C
  3fbd53f3e50679f0a3c1aa9139a4d4dd  gcc/testsuite/g++.old-deja/g++.mike/eh12.C
! 052c725042273d3e4efce31e2789fbbf  gcc/testsuite/g++.old-deja/g++.mike/eh13.C
  1fe4fb4231b46caade9d671e6932e03b  gcc/testsuite/g++.old-deja/g++.mike/eh14.C
  da84a8300bb6cd4e56541200a189230b  gcc/testsuite/g++.old-deja/g++.mike/eh15.C
  061a4d8cc35637c39c8fbb38d8573b6d  gcc/testsuite/g++.old-deja/g++.mike/eh16.C
  48aa24b95774906e55648b923f456c52  gcc/testsuite/g++.old-deja/g++.mike/eh17.C
  dd1383b0cb6f173f9f961cead9f6f5ba  gcc/testsuite/g++.old-deja/g++.mike/eh18.C
  8721262eddd81a7ccc7e7ef297cd63b1  gcc/testsuite/g++.old-deja/g++.mike/eh19.C
! 8643820af1e98f7a2ae932c5f123bebf  gcc/testsuite/g++.old-deja/g++.mike/eh2.C
  22c7d47e61ba6ed7efac218cd89e0a85  gcc/testsuite/g++.old-deja/g++.mike/eh20.C
  87b62fe8d84f0f5c6961199d325e43fe  gcc/testsuite/g++.old-deja/g++.mike/eh21.C
  0a85555067e5d79a96060f6df5e89f5d  gcc/testsuite/g++.old-deja/g++.mike/eh23.C
--- 34821,34841 ----
  52c9112b967757746faf0c3e16c2465a  gcc/testsuite/g++.old-deja/g++.mike/dyncast4.C
  85f0e8d1ccc85a511c10e149de6699ef  gcc/testsuite/g++.old-deja/g++.mike/dyncast5.C
  e9b0560fbe893157bec31312a0b9e4a2  gcc/testsuite/g++.old-deja/g++.mike/dyncast6.C
! 0668464ea0c5a6ca005eda28672bd749  gcc/testsuite/g++.old-deja/g++.mike/dyncast7.C
  cdcf7943e31dae20cf4b2ef4c0f6436c  gcc/testsuite/g++.old-deja/g++.mike/dyncast8.C
  dc0842e0e7b05c40ec3e0d4c4870e146  gcc/testsuite/g++.old-deja/g++.mike/dyncast9.C
  d42326fdd7867d78740150eea99b0d45  gcc/testsuite/g++.old-deja/g++.mike/eh1.C
  757cf9f0bef24c5b012e3b3ab399cb2b  gcc/testsuite/g++.old-deja/g++.mike/eh10.C
  1fb9ab6ee027cdbda2a3e1ad7937488f  gcc/testsuite/g++.old-deja/g++.mike/eh11.C
  3fbd53f3e50679f0a3c1aa9139a4d4dd  gcc/testsuite/g++.old-deja/g++.mike/eh12.C
! 5001b20a85b0c215a973d269ee2bb4ef  gcc/testsuite/g++.old-deja/g++.mike/eh13.C
  1fe4fb4231b46caade9d671e6932e03b  gcc/testsuite/g++.old-deja/g++.mike/eh14.C
  da84a8300bb6cd4e56541200a189230b  gcc/testsuite/g++.old-deja/g++.mike/eh15.C
  061a4d8cc35637c39c8fbb38d8573b6d  gcc/testsuite/g++.old-deja/g++.mike/eh16.C
  48aa24b95774906e55648b923f456c52  gcc/testsuite/g++.old-deja/g++.mike/eh17.C
  dd1383b0cb6f173f9f961cead9f6f5ba  gcc/testsuite/g++.old-deja/g++.mike/eh18.C
  8721262eddd81a7ccc7e7ef297cd63b1  gcc/testsuite/g++.old-deja/g++.mike/eh19.C
! e38f84fd141060310cc0e1b8c2132aa8  gcc/testsuite/g++.old-deja/g++.mike/eh2.C
  22c7d47e61ba6ed7efac218cd89e0a85  gcc/testsuite/g++.old-deja/g++.mike/eh20.C
  87b62fe8d84f0f5c6961199d325e43fe  gcc/testsuite/g++.old-deja/g++.mike/eh21.C
  0a85555067e5d79a96060f6df5e89f5d  gcc/testsuite/g++.old-deja/g++.mike/eh23.C
*************** c57b3f69b4396a7bd59c0659cac52b65  gcc/te
*** 32735,32741 ****
  deef1561fc322e65c7cadc2c4e9c3724  gcc/testsuite/g++.old-deja/g++.mike/eh44.C
  52098c9dc07ae7ac2528293e3260932a  gcc/testsuite/g++.old-deja/g++.mike/eh45.C
  09994354da7a9b3105293572024caf07  gcc/testsuite/g++.old-deja/g++.mike/eh46.C
! be155d22320e9da21c546ff91ca2290c  gcc/testsuite/g++.old-deja/g++.mike/eh47.C
  5083cf45dcc8da838129224b25d5bb9a  gcc/testsuite/g++.old-deja/g++.mike/eh48.C
  56edd02b7784e92a67033d6faa6ca9c3  gcc/testsuite/g++.old-deja/g++.mike/eh49.C
  e8830fa94b8e95afd3d97b061a114384  gcc/testsuite/g++.old-deja/g++.mike/eh5.C
--- 34863,34869 ----
  deef1561fc322e65c7cadc2c4e9c3724  gcc/testsuite/g++.old-deja/g++.mike/eh44.C
  52098c9dc07ae7ac2528293e3260932a  gcc/testsuite/g++.old-deja/g++.mike/eh45.C
  09994354da7a9b3105293572024caf07  gcc/testsuite/g++.old-deja/g++.mike/eh46.C
! e0ff93424b69d17649efb72d755f0247  gcc/testsuite/g++.old-deja/g++.mike/eh47.C
  5083cf45dcc8da838129224b25d5bb9a  gcc/testsuite/g++.old-deja/g++.mike/eh48.C
  56edd02b7784e92a67033d6faa6ca9c3  gcc/testsuite/g++.old-deja/g++.mike/eh49.C
  e8830fa94b8e95afd3d97b061a114384  gcc/testsuite/g++.old-deja/g++.mike/eh5.C
*************** eff2bb764ea2c7cafbf8e9fbb3474976  gcc/te
*** 32810,32816 ****
  8eba26f3f24ac2280d1e1f07222fb6db  gcc/testsuite/g++.old-deja/g++.mike/net30.C
  32b00c1da192aaeef7f837921759cea3  gcc/testsuite/g++.old-deja/g++.mike/net31.C
  a7fc8e240ffcfa37fe311d49d32622c9  gcc/testsuite/g++.old-deja/g++.mike/net32.C
! 0b99d5ae3cfcaf801570bec710c47ef5  gcc/testsuite/g++.old-deja/g++.mike/net34.C
  b5504155ff1821c6557f9abab72f6d79  gcc/testsuite/g++.old-deja/g++.mike/net35.C
  28f8a18b6b7101562538aef8da543777  gcc/testsuite/g++.old-deja/g++.mike/net36.C
  d1b3cca7d3e88d90568183aebdc6db21  gcc/testsuite/g++.old-deja/g++.mike/net37.C
--- 34938,34944 ----
  8eba26f3f24ac2280d1e1f07222fb6db  gcc/testsuite/g++.old-deja/g++.mike/net30.C
  32b00c1da192aaeef7f837921759cea3  gcc/testsuite/g++.old-deja/g++.mike/net31.C
  a7fc8e240ffcfa37fe311d49d32622c9  gcc/testsuite/g++.old-deja/g++.mike/net32.C
! a57b03e7905f1d6988a2dd343ccff675  gcc/testsuite/g++.old-deja/g++.mike/net34.C
  b5504155ff1821c6557f9abab72f6d79  gcc/testsuite/g++.old-deja/g++.mike/net35.C
  28f8a18b6b7101562538aef8da543777  gcc/testsuite/g++.old-deja/g++.mike/net36.C
  d1b3cca7d3e88d90568183aebdc6db21  gcc/testsuite/g++.old-deja/g++.mike/net37.C
*************** bff1e48fcafb1ef983be4b8a95f47c87  gcc/te
*** 32822,32828 ****
  4f61ec7d766463300ed40fbe4c73980e  gcc/testsuite/g++.old-deja/g++.mike/net42.C
  229e54a7410e211caac4f800912d7ba2  gcc/testsuite/g++.old-deja/g++.mike/net44.C
  b4a7322753a54bde5aeda77887a9e4d4  gcc/testsuite/g++.old-deja/g++.mike/net45.C
! 693654781a04b93e6cd44c4144a745d6  gcc/testsuite/g++.old-deja/g++.mike/net46.C
  680f0a5fda4b00207904e39749fd360d  gcc/testsuite/g++.old-deja/g++.mike/net47.C
  dadac6fa9e24251d158f96ac4af69dbf  gcc/testsuite/g++.old-deja/g++.mike/net48.C
  e07d88b8b2e772bacad1496d54044434  gcc/testsuite/g++.old-deja/g++.mike/net6.C
--- 34950,34956 ----
  4f61ec7d766463300ed40fbe4c73980e  gcc/testsuite/g++.old-deja/g++.mike/net42.C
  229e54a7410e211caac4f800912d7ba2  gcc/testsuite/g++.old-deja/g++.mike/net44.C
  b4a7322753a54bde5aeda77887a9e4d4  gcc/testsuite/g++.old-deja/g++.mike/net45.C
! 7e0d1767a16285969ebf066bf0430224  gcc/testsuite/g++.old-deja/g++.mike/net46.C
  680f0a5fda4b00207904e39749fd360d  gcc/testsuite/g++.old-deja/g++.mike/net47.C
  dadac6fa9e24251d158f96ac4af69dbf  gcc/testsuite/g++.old-deja/g++.mike/net48.C
  e07d88b8b2e772bacad1496d54044434  gcc/testsuite/g++.old-deja/g++.mike/net6.C
*************** bececf06bce4b261ae8fcfd6da928cff  gcc/te
*** 32835,32841 ****
  bbb693427523d00af2fdf69c55f7c100  gcc/testsuite/g++.old-deja/g++.mike/ns12.C
  b0789f1b98268e2d7f80d5b25c929e42  gcc/testsuite/g++.old-deja/g++.mike/ns13.C
  075f2dbb8b6d85c4822f746063384fdb  gcc/testsuite/g++.old-deja/g++.mike/ns14.C
! 9bc886d80eaef88382a6488c34b38ac3  gcc/testsuite/g++.old-deja/g++.mike/ns15.C
  9be7d6e725403b1902c85e3e64c44b8a  gcc/testsuite/g++.old-deja/g++.mike/ns2.C
  ad7e7ff96ee25569c612972fdbc0b0f2  gcc/testsuite/g++.old-deja/g++.mike/ns3.C
  dbf61afb40127648f192a500027fa778  gcc/testsuite/g++.old-deja/g++.mike/ns4.C
--- 34963,34969 ----
  bbb693427523d00af2fdf69c55f7c100  gcc/testsuite/g++.old-deja/g++.mike/ns12.C
  b0789f1b98268e2d7f80d5b25c929e42  gcc/testsuite/g++.old-deja/g++.mike/ns13.C
  075f2dbb8b6d85c4822f746063384fdb  gcc/testsuite/g++.old-deja/g++.mike/ns14.C
! de273afa2829815a42f846d3008eb42c  gcc/testsuite/g++.old-deja/g++.mike/ns15.C
  9be7d6e725403b1902c85e3e64c44b8a  gcc/testsuite/g++.old-deja/g++.mike/ns2.C
  ad7e7ff96ee25569c612972fdbc0b0f2  gcc/testsuite/g++.old-deja/g++.mike/ns3.C
  dbf61afb40127648f192a500027fa778  gcc/testsuite/g++.old-deja/g++.mike/ns4.C
*************** fbbf837d570b0f07c0c996cdd3246525  gcc/te
*** 32859,32865 ****
  b5b4f062ee7ca457204aa955b5a85d9a  gcc/testsuite/g++.old-deja/g++.mike/p11144.C
  804e792bd736163a5b79b4ccb2b2b5d6  gcc/testsuite/g++.old-deja/g++.mike/p11482.C
  30520ec507faa045cd8d09733f3870e7  gcc/testsuite/g++.old-deja/g++.mike/p11667.C
! 80d65a0823d659c44ac2db3201ac83cd  gcc/testsuite/g++.old-deja/g++.mike/p12306.C
  c4dcd550948be751ed2cff210eb115fc  gcc/testsuite/g++.old-deja/g++.mike/p12306a.C
  9653441fa46b854dd109cbd4c3270f47  gcc/testsuite/g++.old-deja/g++.mike/p1248.C
  b66461e3466bfee2d64e7eea6102171f  gcc/testsuite/g++.old-deja/g++.mike/p1567.C
--- 34987,34993 ----
  b5b4f062ee7ca457204aa955b5a85d9a  gcc/testsuite/g++.old-deja/g++.mike/p11144.C
  804e792bd736163a5b79b4ccb2b2b5d6  gcc/testsuite/g++.old-deja/g++.mike/p11482.C
  30520ec507faa045cd8d09733f3870e7  gcc/testsuite/g++.old-deja/g++.mike/p11667.C
! 7f38356cf0031eda49ed95eb9342bdf7  gcc/testsuite/g++.old-deja/g++.mike/p12306.C
  c4dcd550948be751ed2cff210eb115fc  gcc/testsuite/g++.old-deja/g++.mike/p12306a.C
  9653441fa46b854dd109cbd4c3270f47  gcc/testsuite/g++.old-deja/g++.mike/p1248.C
  b66461e3466bfee2d64e7eea6102171f  gcc/testsuite/g++.old-deja/g++.mike/p1567.C
*************** f8e1370e29d3532e48d29f7659a4a571  gcc/te
*** 32931,32937 ****
  31d4b934b63d1ccd3fce41f3cdd4ee83  gcc/testsuite/g++.old-deja/g++.mike/p6311.C
  05e8c7b1970fa70f65e311dfe64f4800  gcc/testsuite/g++.old-deja/g++.mike/p646.C
  6305cff2956e86afbcf693994724bcc8  gcc/testsuite/g++.old-deja/g++.mike/p6578.C
! 83a903f8fd2b690b4b0bc4571e32e26c  gcc/testsuite/g++.old-deja/g++.mike/p658.C
  c08220ad297c848fcc61433677ce38a7  gcc/testsuite/g++.old-deja/g++.mike/p6610a.C
  1d9b4b88ab42fb70b17b3240da3263ef  gcc/testsuite/g++.old-deja/g++.mike/p6610b.C
  3140578e9dcaa7d7356d613cbcfdc303  gcc/testsuite/g++.old-deja/g++.mike/p6611.C
--- 35059,35065 ----
  31d4b934b63d1ccd3fce41f3cdd4ee83  gcc/testsuite/g++.old-deja/g++.mike/p6311.C
  05e8c7b1970fa70f65e311dfe64f4800  gcc/testsuite/g++.old-deja/g++.mike/p646.C
  6305cff2956e86afbcf693994724bcc8  gcc/testsuite/g++.old-deja/g++.mike/p6578.C
! db1ddbc9de6c645088f4c85964a0ce47  gcc/testsuite/g++.old-deja/g++.mike/p658.C
  c08220ad297c848fcc61433677ce38a7  gcc/testsuite/g++.old-deja/g++.mike/p6610a.C
  1d9b4b88ab42fb70b17b3240da3263ef  gcc/testsuite/g++.old-deja/g++.mike/p6610b.C
  3140578e9dcaa7d7356d613cbcfdc303  gcc/testsuite/g++.old-deja/g++.mike/p6611.C
*************** f2c302be5b4bfcfe6a838f96e32fd4d4  gcc/te
*** 32940,32946 ****
  866dc96069d3e273437caf99e8bb5c1c  gcc/testsuite/g++.old-deja/g++.mike/p6927.C
  d1ef9c53f29b6743afa8e3587d292d27  gcc/testsuite/g++.old-deja/g++.mike/p700.C
  f43a0dd80f368bc325088dcdf5b1f017  gcc/testsuite/g++.old-deja/g++.mike/p701.C
! e7b146af94ac9a8c09caf0f119938b97  gcc/testsuite/g++.old-deja/g++.mike/p710.C
  4f1b7fceb4b2604eeaa908c9d14306de  gcc/testsuite/g++.old-deja/g++.mike/p7180.C
  afcb13de882f46e5fc73a90a8651b383  gcc/testsuite/g++.old-deja/g++.mike/p7476.C
  8803cf6c10b127dce849e86a3a7fcd39  gcc/testsuite/g++.old-deja/g++.mike/p755.C
--- 35068,35074 ----
  866dc96069d3e273437caf99e8bb5c1c  gcc/testsuite/g++.old-deja/g++.mike/p6927.C
  d1ef9c53f29b6743afa8e3587d292d27  gcc/testsuite/g++.old-deja/g++.mike/p700.C
  f43a0dd80f368bc325088dcdf5b1f017  gcc/testsuite/g++.old-deja/g++.mike/p701.C
! 857812408218efc5195a5a111d78a6fe  gcc/testsuite/g++.old-deja/g++.mike/p710.C
  4f1b7fceb4b2604eeaa908c9d14306de  gcc/testsuite/g++.old-deja/g++.mike/p7180.C
  afcb13de882f46e5fc73a90a8651b383  gcc/testsuite/g++.old-deja/g++.mike/p7476.C
  8803cf6c10b127dce849e86a3a7fcd39  gcc/testsuite/g++.old-deja/g++.mike/p755.C
*************** ea6f77e23475c14b010ae9424b10cf2c  gcc/te
*** 32963,32969 ****
  9652714c748d854dfe7bfb32c4f790f1  gcc/testsuite/g++.old-deja/g++.mike/p8039.C
  45afff2caee269dcedbefd9be511cc46  gcc/testsuite/g++.old-deja/g++.mike/p807.C
  7d7a4a9dca8893c67590fc6203f02948  gcc/testsuite/g++.old-deja/g++.mike/p807a.C
! 78496e7d2dcb63754427b878521b8dfe  gcc/testsuite/g++.old-deja/g++.mike/p811.C
  9b2f7221b1057f9366eef01c11cf09cd  gcc/testsuite/g++.old-deja/g++.mike/p8154.C
  cbdb4e245f3353232e9b4d18983cdeea  gcc/testsuite/g++.old-deja/g++.mike/p8155.C
  96f6e9e43b5a2118bfbd47489b1c0a5b  gcc/testsuite/g++.old-deja/g++.mike/p8175.C
--- 35091,35097 ----
  9652714c748d854dfe7bfb32c4f790f1  gcc/testsuite/g++.old-deja/g++.mike/p8039.C
  45afff2caee269dcedbefd9be511cc46  gcc/testsuite/g++.old-deja/g++.mike/p807.C
  7d7a4a9dca8893c67590fc6203f02948  gcc/testsuite/g++.old-deja/g++.mike/p807a.C
! 0ed0deb9fca403708bbcf74aeff8df96  gcc/testsuite/g++.old-deja/g++.mike/p811.C
  9b2f7221b1057f9366eef01c11cf09cd  gcc/testsuite/g++.old-deja/g++.mike/p8154.C
  cbdb4e245f3353232e9b4d18983cdeea  gcc/testsuite/g++.old-deja/g++.mike/p8155.C
  96f6e9e43b5a2118bfbd47489b1c0a5b  gcc/testsuite/g++.old-deja/g++.mike/p8175.C
*************** fc62e8b9edb86d2587ebe5d1bdc7dbd4  gcc/te
*** 32974,32984 ****
  8856a44a30fe6484fa001b3ed5121e1f  gcc/testsuite/g++.old-deja/g++.mike/p8786.C
  1004649e4f7df3cafa990e7bef0051b9  gcc/testsuite/g++.old-deja/g++.mike/p8804.C
  c72a798543e6c81aadc0d950380daad4  gcc/testsuite/g++.old-deja/g++.mike/p8825.C
! 9de02e37337fabc87151db56c9f918a8  gcc/testsuite/g++.old-deja/g++.mike/p9068.C
  f91ed64334b058e6d71346ddb0fd2b21  gcc/testsuite/g++.old-deja/g++.mike/p9129.C
  597cdf446ddcb87d616b76140812c601  gcc/testsuite/g++.old-deja/g++.mike/p9206.C
  2115f5454cb4bb8648c598ba29092659  gcc/testsuite/g++.old-deja/g++.mike/p9506.C
! 477e5601067b35a4b0eb32aa141b908c  gcc/testsuite/g++.old-deja/g++.mike/p9706.C
  a0952ba86801c96af79b501d48bc6bba  gcc/testsuite/g++.old-deja/g++.mike/p9732a.C
  2fde43f9124d8f51d94916f78ae76d1a  gcc/testsuite/g++.old-deja/g++.mike/p9732b.C
  1cc6cc7d49719bb2d06f90bd80a8c7ae  gcc/testsuite/g++.old-deja/g++.mike/p9732c.C
--- 35102,35112 ----
  8856a44a30fe6484fa001b3ed5121e1f  gcc/testsuite/g++.old-deja/g++.mike/p8786.C
  1004649e4f7df3cafa990e7bef0051b9  gcc/testsuite/g++.old-deja/g++.mike/p8804.C
  c72a798543e6c81aadc0d950380daad4  gcc/testsuite/g++.old-deja/g++.mike/p8825.C
! 61bd865c999e312f93602e551fe23f47  gcc/testsuite/g++.old-deja/g++.mike/p9068.C
  f91ed64334b058e6d71346ddb0fd2b21  gcc/testsuite/g++.old-deja/g++.mike/p9129.C
  597cdf446ddcb87d616b76140812c601  gcc/testsuite/g++.old-deja/g++.mike/p9206.C
  2115f5454cb4bb8648c598ba29092659  gcc/testsuite/g++.old-deja/g++.mike/p9506.C
! 9d7e39a43d2ae0cfb4e39f9d8b8d1a11  gcc/testsuite/g++.old-deja/g++.mike/p9706.C
  a0952ba86801c96af79b501d48bc6bba  gcc/testsuite/g++.old-deja/g++.mike/p9732a.C
  2fde43f9124d8f51d94916f78ae76d1a  gcc/testsuite/g++.old-deja/g++.mike/p9732b.C
  1cc6cc7d49719bb2d06f90bd80a8c7ae  gcc/testsuite/g++.old-deja/g++.mike/p9732c.C
*************** bf1759a2afdf502ed48c5eaa28f88d1f  gcc/te
*** 32998,33004 ****
  f71b53c5caf650079e9909fe6d45c0a7  gcc/testsuite/g++.old-deja/g++.mike/pt3.C
  88b4a8bb3105a05c27aabf0c65e6b717  gcc/testsuite/g++.old-deja/g++.mike/pt4.C
  4c170a948c69e24330fb57e109664614  gcc/testsuite/g++.old-deja/g++.mike/ref1.C
! 578df3f8b89228bbd34cb1e4afdc89c4  gcc/testsuite/g++.old-deja/g++.mike/rtti1.C
  2513b099c9e2ec37fc88cbfeebdf00dc  gcc/testsuite/g++.old-deja/g++.mike/rtti2.C
  6333d51732f347371e88b98280b27571  gcc/testsuite/g++.old-deja/g++.mike/rtti3.C
  d98aace07ae1f94f01edf1afec351d59  gcc/testsuite/g++.old-deja/g++.mike/s24939.C
--- 35126,35132 ----
  f71b53c5caf650079e9909fe6d45c0a7  gcc/testsuite/g++.old-deja/g++.mike/pt3.C
  88b4a8bb3105a05c27aabf0c65e6b717  gcc/testsuite/g++.old-deja/g++.mike/pt4.C
  4c170a948c69e24330fb57e109664614  gcc/testsuite/g++.old-deja/g++.mike/ref1.C
! 8447aec1c2c7d158cd2e444dc1930a36  gcc/testsuite/g++.old-deja/g++.mike/rtti1.C
  2513b099c9e2ec37fc88cbfeebdf00dc  gcc/testsuite/g++.old-deja/g++.mike/rtti2.C
  6333d51732f347371e88b98280b27571  gcc/testsuite/g++.old-deja/g++.mike/rtti3.C
  d98aace07ae1f94f01edf1afec351d59  gcc/testsuite/g++.old-deja/g++.mike/s24939.C
*************** b866b17ce69a0cb16a715346957182de  gcc/te
*** 33141,33149 ****
  b0d977f7849d8a44750909027e43b53f  gcc/testsuite/g++.old-deja/g++.ns/using14.C
  c0116d02edfe6d83a6e0319b7ae43310  gcc/testsuite/g++.old-deja/g++.ns/using2.C
  122a4ea21ae440e6b703061102e0c7a2  gcc/testsuite/g++.old-deja/g++.ns/using3.C
! 55a6f7a2805429769338bfc315e29145  gcc/testsuite/g++.old-deja/g++.ns/using4.C
  153674baa1aaa794e45086f74ebc1719  gcc/testsuite/g++.old-deja/g++.ns/using5.C
! 61181fe4d561761dfd5906a6a77203a2  gcc/testsuite/g++.old-deja/g++.ns/using6.C
  ea73badcef0f5166a559e07a0c263a92  gcc/testsuite/g++.old-deja/g++.ns/using7.C
  e592ac6b9789af1e806b4791c984da05  gcc/testsuite/g++.old-deja/g++.ns/using8.C
  10a3890377e72341f4119f4affe2c8cb  gcc/testsuite/g++.old-deja/g++.ns/using9.C
--- 35269,35277 ----
  b0d977f7849d8a44750909027e43b53f  gcc/testsuite/g++.old-deja/g++.ns/using14.C
  c0116d02edfe6d83a6e0319b7ae43310  gcc/testsuite/g++.old-deja/g++.ns/using2.C
  122a4ea21ae440e6b703061102e0c7a2  gcc/testsuite/g++.old-deja/g++.ns/using3.C
! 3cf444150197f543145adb7d1898eefd  gcc/testsuite/g++.old-deja/g++.ns/using4.C
  153674baa1aaa794e45086f74ebc1719  gcc/testsuite/g++.old-deja/g++.ns/using5.C
! f94d5444b3683b116a03c46e779f6e56  gcc/testsuite/g++.old-deja/g++.ns/using6.C
  ea73badcef0f5166a559e07a0c263a92  gcc/testsuite/g++.old-deja/g++.ns/using7.C
  e592ac6b9789af1e806b4791c984da05  gcc/testsuite/g++.old-deja/g++.ns/using8.C
  10a3890377e72341f4119f4affe2c8cb  gcc/testsuite/g++.old-deja/g++.ns/using9.C
*************** a48a17255f32b3a66ffe19bec30a72f3  gcc/te
*** 33165,33171 ****
  a8c9e5697cb58c77260d29a245371e15  gcc/testsuite/g++.old-deja/g++.oliva/linkage1.C
  69215fbecec36d0d43ce029276a62a42  gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C
  94eaec0c74125950c2b514a5d563e875  gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C
! 3d2970abfa048bad4c4b489daa7ae29b  gcc/testsuite/g++.old-deja/g++.oliva/new1.C
  ad3eac5cce6247b57053146272ad863a  gcc/testsuite/g++.old-deja/g++.oliva/ns1.C
  6145af5e9f76316b1d149f4bc47f97db  gcc/testsuite/g++.old-deja/g++.oliva/ns2.C
  9909ce1d76f79ca2d7e88855206eeffd  gcc/testsuite/g++.old-deja/g++.oliva/ns3.C
--- 35293,35299 ----
  a8c9e5697cb58c77260d29a245371e15  gcc/testsuite/g++.old-deja/g++.oliva/linkage1.C
  69215fbecec36d0d43ce029276a62a42  gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C
  94eaec0c74125950c2b514a5d563e875  gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C
! e1a5c07fb134c9fe7f9b1ef4f442d673  gcc/testsuite/g++.old-deja/g++.oliva/new1.C
  ad3eac5cce6247b57053146272ad863a  gcc/testsuite/g++.old-deja/g++.oliva/ns1.C
  6145af5e9f76316b1d149f4bc47f97db  gcc/testsuite/g++.old-deja/g++.oliva/ns2.C
  9909ce1d76f79ca2d7e88855206eeffd  gcc/testsuite/g++.old-deja/g++.oliva/ns3.C
*************** d7423d0670f9d8abf6b30397edaa1235  gcc/te
*** 33289,33295 ****
  66eee4c58815f6a823b95d58d2fd4a78  gcc/testsuite/g++.old-deja/g++.other/crash1.C
  a60d440d97e27b06efd91dce983278ee  gcc/testsuite/g++.old-deja/g++.other/crash10.C
  476429a62cb15b3c9ee8c125027e40c3  gcc/testsuite/g++.old-deja/g++.other/crash11.C
! 7904ea22b4922e5a07cfa109f388cb3b  gcc/testsuite/g++.old-deja/g++.other/crash12.C
  b0a2fa7128614543dd35f84eefd11f1a  gcc/testsuite/g++.old-deja/g++.other/crash13.C
  a41c516fa6d4cda9be81fec03b88b214  gcc/testsuite/g++.old-deja/g++.other/crash14.C
  86b31fd7ce431a2d82f09b6039da031c  gcc/testsuite/g++.old-deja/g++.other/crash15.C
--- 35417,35423 ----
  66eee4c58815f6a823b95d58d2fd4a78  gcc/testsuite/g++.old-deja/g++.other/crash1.C
  a60d440d97e27b06efd91dce983278ee  gcc/testsuite/g++.old-deja/g++.other/crash10.C
  476429a62cb15b3c9ee8c125027e40c3  gcc/testsuite/g++.old-deja/g++.other/crash11.C
! 1ecd49225243c3c830fc3dc18bf42f4f  gcc/testsuite/g++.old-deja/g++.other/crash12.C
  b0a2fa7128614543dd35f84eefd11f1a  gcc/testsuite/g++.old-deja/g++.other/crash13.C
  a41c516fa6d4cda9be81fec03b88b214  gcc/testsuite/g++.old-deja/g++.other/crash14.C
  86b31fd7ce431a2d82f09b6039da031c  gcc/testsuite/g++.old-deja/g++.other/crash15.C
*************** ce3c15e4b9c0fc4646ac8142395acc53  gcc/te
*** 33347,33353 ****
  589daf00ab11a288c7fe3c5d5b24404c  gcc/testsuite/g++.old-deja/g++.other/decl2.C
  7969b9ed0fc55d3bfa3b62b98a9911f0  gcc/testsuite/g++.old-deja/g++.other/decl3.C
  87f1ee2bbfeb5481b12d8c5030343b02  gcc/testsuite/g++.old-deja/g++.other/decl4.C
! 3ccfd73bbc4074f9cb1cf40feeda16de  gcc/testsuite/g++.old-deja/g++.other/decl5.C
  033a1c9932a565526b522af53e4e58b8  gcc/testsuite/g++.old-deja/g++.other/decl6.C
  b7922b62c66771d84dbb60a4b1b4545c  gcc/testsuite/g++.old-deja/g++.other/decl7.C
  b15c94d17715a47983f0e773d7e3e2c2  gcc/testsuite/g++.old-deja/g++.other/decl8.C
--- 35475,35481 ----
  589daf00ab11a288c7fe3c5d5b24404c  gcc/testsuite/g++.old-deja/g++.other/decl2.C
  7969b9ed0fc55d3bfa3b62b98a9911f0  gcc/testsuite/g++.old-deja/g++.other/decl3.C
  87f1ee2bbfeb5481b12d8c5030343b02  gcc/testsuite/g++.old-deja/g++.other/decl4.C
! fefc890310ca46eba11ee3984a39084a  gcc/testsuite/g++.old-deja/g++.other/decl5.C
  033a1c9932a565526b522af53e4e58b8  gcc/testsuite/g++.old-deja/g++.other/decl6.C
  b7922b62c66771d84dbb60a4b1b4545c  gcc/testsuite/g++.old-deja/g++.other/decl7.C
  b15c94d17715a47983f0e773d7e3e2c2  gcc/testsuite/g++.old-deja/g++.other/decl8.C
*************** e9dc61c83b948a4d158bfdb94b298963  gcc/te
*** 33357,33363 ****
  66bed1c478469224297df66607f38744  gcc/testsuite/g++.old-deja/g++.other/defarg3.C
  710632e062afe5e9c781e28d1840cdbf  gcc/testsuite/g++.old-deja/g++.other/defarg4.C
  c8d9865e55428fe9bef770d7cf7a264d  gcc/testsuite/g++.old-deja/g++.other/defarg5.C
! 2bf46981883d131190ab94087d53bafe  gcc/testsuite/g++.old-deja/g++.other/defarg6.C
  c60e35453aa201f9a53cebeea1e937f0  gcc/testsuite/g++.old-deja/g++.other/defarg7.C
  56c31a277d90ddf2a30fb0acb32b386a  gcc/testsuite/g++.old-deja/g++.other/defarg8.C
  f7f9c2f14ef416153be680c07c0850ff  gcc/testsuite/g++.old-deja/g++.other/defarg9.C
--- 35485,35491 ----
  66bed1c478469224297df66607f38744  gcc/testsuite/g++.old-deja/g++.other/defarg3.C
  710632e062afe5e9c781e28d1840cdbf  gcc/testsuite/g++.old-deja/g++.other/defarg4.C
  c8d9865e55428fe9bef770d7cf7a264d  gcc/testsuite/g++.old-deja/g++.other/defarg5.C
! 756dd6598fe4dc519d8527469ae23d90  gcc/testsuite/g++.old-deja/g++.other/defarg6.C
  c60e35453aa201f9a53cebeea1e937f0  gcc/testsuite/g++.old-deja/g++.other/defarg7.C
  56c31a277d90ddf2a30fb0acb32b386a  gcc/testsuite/g++.old-deja/g++.other/defarg8.C
  f7f9c2f14ef416153be680c07c0850ff  gcc/testsuite/g++.old-deja/g++.other/defarg9.C
*************** b453de23a9a42236701db32f7c39cd5c  gcc/te
*** 33368,33374 ****
  f2e3e23b1fda185e1f462c9e3bf913e6  gcc/testsuite/g++.old-deja/g++.other/delete5.C
  42474a42e66c8ef05d564e7ef0187b76  gcc/testsuite/g++.old-deja/g++.other/delete6.C
  db00ad7b8cb4aebea3e6520ea992edfe  gcc/testsuite/g++.old-deja/g++.other/delete7.C
! 84bdff781f1a6fd221ea3dfef103b8d4  gcc/testsuite/g++.old-deja/g++.other/delete8.C
  253dbe9e0bf5dc174a8b76ce5a433857  gcc/testsuite/g++.old-deja/g++.other/deref1.C
  a9067192357860945ae88185ed54ec2c  gcc/testsuite/g++.old-deja/g++.other/dll-1.C
  d967c7f394d25e627016c2e15ede2890  gcc/testsuite/g++.old-deja/g++.other/dll-2.C
--- 35496,35502 ----
  f2e3e23b1fda185e1f462c9e3bf913e6  gcc/testsuite/g++.old-deja/g++.other/delete5.C
  42474a42e66c8ef05d564e7ef0187b76  gcc/testsuite/g++.old-deja/g++.other/delete6.C
  db00ad7b8cb4aebea3e6520ea992edfe  gcc/testsuite/g++.old-deja/g++.other/delete7.C
! 02675b647dd7b07955cded03f491223b  gcc/testsuite/g++.old-deja/g++.other/delete8.C
  253dbe9e0bf5dc174a8b76ce5a433857  gcc/testsuite/g++.old-deja/g++.other/deref1.C
  a9067192357860945ae88185ed54ec2c  gcc/testsuite/g++.old-deja/g++.other/dll-1.C
  d967c7f394d25e627016c2e15ede2890  gcc/testsuite/g++.old-deja/g++.other/dll-2.C
*************** e7ae9ecae1158825c61dc13b8aa8b855  gcc/te
*** 33398,33404 ****
  0268c0e962508ed426bff1e44757f34b  gcc/testsuite/g++.old-deja/g++.other/eh.C
  af4bf43b1d12ba745d0006242f963725  gcc/testsuite/g++.old-deja/g++.other/eh1.C
  fff040d0461db3bb906852d2efd56a9d  gcc/testsuite/g++.old-deja/g++.other/eh2.C
! 564d088226a7fa3ae5aef236d7e7e477  gcc/testsuite/g++.old-deja/g++.other/eh3.C
  0e4cdc96271eaf0009e927797d8bc4e3  gcc/testsuite/g++.old-deja/g++.other/eh4.C
  50ccfaa907c448bee3f02ccdb3da5d91  gcc/testsuite/g++.old-deja/g++.other/eh5.C
  9f23ed7eff018ebe271c3b47018e5592  gcc/testsuite/g++.old-deja/g++.other/elab1.C
--- 35526,35532 ----
  0268c0e962508ed426bff1e44757f34b  gcc/testsuite/g++.old-deja/g++.other/eh.C
  af4bf43b1d12ba745d0006242f963725  gcc/testsuite/g++.old-deja/g++.other/eh1.C
  fff040d0461db3bb906852d2efd56a9d  gcc/testsuite/g++.old-deja/g++.other/eh2.C
! a6dfaba8467dc5b33698b1c84f5a3467  gcc/testsuite/g++.old-deja/g++.other/eh3.C
  0e4cdc96271eaf0009e927797d8bc4e3  gcc/testsuite/g++.old-deja/g++.other/eh4.C
  50ccfaa907c448bee3f02ccdb3da5d91  gcc/testsuite/g++.old-deja/g++.other/eh5.C
  9f23ed7eff018ebe271c3b47018e5592  gcc/testsuite/g++.old-deja/g++.other/elab1.C
*************** a64b18f5e241c9cd94e6366c4fa85f1c  gcc/te
*** 33437,33443 ****
  72371ac4585f8b9c70feb54fea8e821c  gcc/testsuite/g++.old-deja/g++.other/goto2.C
  bd5b81d4c4b836d3bdbc6d772bebd8fc  gcc/testsuite/g++.old-deja/g++.other/goto3.C
  3b16032627e4a56483ab6c1a869fba90  gcc/testsuite/g++.old-deja/g++.other/goto4.C
! b8e82e677a564e8f59b1b3efcf52cfc8  gcc/testsuite/g++.old-deja/g++.other/headers1.C
  a205961184154e0f11f4ee8ee8f2d5bc  gcc/testsuite/g++.old-deja/g++.other/incomplete.C
  a5b35401aabff5d46ee703160a256207  gcc/testsuite/g++.old-deja/g++.other/init1.C
  c65ae1dbb01e95dc5e6b68b729c7b6a6  gcc/testsuite/g++.old-deja/g++.other/init10.C
--- 35565,35571 ----
  72371ac4585f8b9c70feb54fea8e821c  gcc/testsuite/g++.old-deja/g++.other/goto2.C
  bd5b81d4c4b836d3bdbc6d772bebd8fc  gcc/testsuite/g++.old-deja/g++.other/goto3.C
  3b16032627e4a56483ab6c1a869fba90  gcc/testsuite/g++.old-deja/g++.other/goto4.C
! 581fc6be38081bad3b44217fd08adf16  gcc/testsuite/g++.old-deja/g++.other/headers1.C
  a205961184154e0f11f4ee8ee8f2d5bc  gcc/testsuite/g++.old-deja/g++.other/incomplete.C
  a5b35401aabff5d46ee703160a256207  gcc/testsuite/g++.old-deja/g++.other/init1.C
  c65ae1dbb01e95dc5e6b68b729c7b6a6  gcc/testsuite/g++.old-deja/g++.other/init10.C
*************** ed2cf04edb9bfa17f33eb839d466104d  gcc/te
*** 33457,33476 ****
  ef17244e8beb00b8e2b159085fa4524c  gcc/testsuite/g++.old-deja/g++.other/init6.C
  218366b1db7ad573de9089b8dc32b49f  gcc/testsuite/g++.old-deja/g++.other/init7.C
  8f1fad4a3628e33ecda8e9b1d591d956  gcc/testsuite/g++.old-deja/g++.other/init8.C
! 741bd57b64c903b8834ee199682614d9  gcc/testsuite/g++.old-deja/g++.other/init9.C
  8aea0874ae47ec6f53fb668325fd6e48  gcc/testsuite/g++.old-deja/g++.other/initstring.C
  5841802bbaf58c45a8be3d0bc688eae3  gcc/testsuite/g++.old-deja/g++.other/inline1.C
  50d7ee902563f62414c3d4e1c3e2be49  gcc/testsuite/g++.old-deja/g++.other/inline10.C
  3bd78b7aee29c89595c18932ab7c6ff7  gcc/testsuite/g++.old-deja/g++.other/inline11.C
  83e5590d5100240c5024930a3fff8632  gcc/testsuite/g++.old-deja/g++.other/inline12.C
  6d138e6b605ced1518ce48da2e4a8313  gcc/testsuite/g++.old-deja/g++.other/inline13.C
! 5048bcdb68a786e7e91b6c13276ea7d9  gcc/testsuite/g++.old-deja/g++.other/inline14.C
  6e7ab2cff90e716850f612d2d61e68a4  gcc/testsuite/g++.old-deja/g++.other/inline15.C
  94a6d3c26b108e05298c1283ec8a85a9  gcc/testsuite/g++.old-deja/g++.other/inline16.C
  71248f6786229af294e1836c18601abb  gcc/testsuite/g++.old-deja/g++.other/inline17.C
  69da7d680ad5e7376411f896aed134fa  gcc/testsuite/g++.old-deja/g++.other/inline18.C
  3557e3ebfc86655982c4c545a8a9f0ad  gcc/testsuite/g++.old-deja/g++.other/inline19.C
! cdf515ec26e7beadbb14fdea9061b732  gcc/testsuite/g++.old-deja/g++.other/inline2.C
  afc3a04b959aae42619cd9d21f7dbd19  gcc/testsuite/g++.old-deja/g++.other/inline20.C
  7a3ef5192a33feec85ef28205357b71b  gcc/testsuite/g++.old-deja/g++.other/inline21.C
  f1224fb4be126166d0a579ea0dc6acc8  gcc/testsuite/g++.old-deja/g++.other/inline23.C
--- 35585,35604 ----
  ef17244e8beb00b8e2b159085fa4524c  gcc/testsuite/g++.old-deja/g++.other/init6.C
  218366b1db7ad573de9089b8dc32b49f  gcc/testsuite/g++.old-deja/g++.other/init7.C
  8f1fad4a3628e33ecda8e9b1d591d956  gcc/testsuite/g++.old-deja/g++.other/init8.C
! fa26b3b4374538f7aeb90b70ca5aad80  gcc/testsuite/g++.old-deja/g++.other/init9.C
  8aea0874ae47ec6f53fb668325fd6e48  gcc/testsuite/g++.old-deja/g++.other/initstring.C
  5841802bbaf58c45a8be3d0bc688eae3  gcc/testsuite/g++.old-deja/g++.other/inline1.C
  50d7ee902563f62414c3d4e1c3e2be49  gcc/testsuite/g++.old-deja/g++.other/inline10.C
  3bd78b7aee29c89595c18932ab7c6ff7  gcc/testsuite/g++.old-deja/g++.other/inline11.C
  83e5590d5100240c5024930a3fff8632  gcc/testsuite/g++.old-deja/g++.other/inline12.C
  6d138e6b605ced1518ce48da2e4a8313  gcc/testsuite/g++.old-deja/g++.other/inline13.C
! bf37d23aafde3b99b6d13bad62909d6b  gcc/testsuite/g++.old-deja/g++.other/inline14.C
  6e7ab2cff90e716850f612d2d61e68a4  gcc/testsuite/g++.old-deja/g++.other/inline15.C
  94a6d3c26b108e05298c1283ec8a85a9  gcc/testsuite/g++.old-deja/g++.other/inline16.C
  71248f6786229af294e1836c18601abb  gcc/testsuite/g++.old-deja/g++.other/inline17.C
  69da7d680ad5e7376411f896aed134fa  gcc/testsuite/g++.old-deja/g++.other/inline18.C
  3557e3ebfc86655982c4c545a8a9f0ad  gcc/testsuite/g++.old-deja/g++.other/inline19.C
! 79546313c8a93098b1c150e68b020a7b  gcc/testsuite/g++.old-deja/g++.other/inline2.C
  afc3a04b959aae42619cd9d21f7dbd19  gcc/testsuite/g++.old-deja/g++.other/inline20.C
  7a3ef5192a33feec85ef28205357b71b  gcc/testsuite/g++.old-deja/g++.other/inline21.C
  f1224fb4be126166d0a579ea0dc6acc8  gcc/testsuite/g++.old-deja/g++.other/inline23.C
*************** f1224fb4be126166d0a579ea0dc6acc8  gcc/te
*** 33478,33485 ****
  28e4cd2fa1658df97a354ad0f586f2a8  gcc/testsuite/g++.old-deja/g++.other/inline4.C
  ccfaa381b4b7ddc2ae21136f982f0584  gcc/testsuite/g++.old-deja/g++.other/inline5.C
  4b2c8697535041bce609a3148c50d503  gcc/testsuite/g++.old-deja/g++.other/inline6.C
! 468b20436781dab1f31e82d9b9c7f756  gcc/testsuite/g++.old-deja/g++.other/inline7.C
! c6b3fa00cf108cf19a444d52bb108901  gcc/testsuite/g++.old-deja/g++.other/inline8.C
  4ff7844073d913c0d5099f3c5a9d1905  gcc/testsuite/g++.old-deja/g++.other/inline9.C
  024add5304c41b827990193948da5b1f  gcc/testsuite/g++.old-deja/g++.other/instan1.C
  7c7aaab427900113172f72ddcd0b0c5e  gcc/testsuite/g++.old-deja/g++.other/lex1.C
--- 35606,35613 ----
  28e4cd2fa1658df97a354ad0f586f2a8  gcc/testsuite/g++.old-deja/g++.other/inline4.C
  ccfaa381b4b7ddc2ae21136f982f0584  gcc/testsuite/g++.old-deja/g++.other/inline5.C
  4b2c8697535041bce609a3148c50d503  gcc/testsuite/g++.old-deja/g++.other/inline6.C
! 6a5239dc27cf720442a7d0a16be402f3  gcc/testsuite/g++.old-deja/g++.other/inline7.C
! 1fc1a9311dbca89871fc757d8776da9b  gcc/testsuite/g++.old-deja/g++.other/inline8.C
  4ff7844073d913c0d5099f3c5a9d1905  gcc/testsuite/g++.old-deja/g++.other/inline9.C
  024add5304c41b827990193948da5b1f  gcc/testsuite/g++.old-deja/g++.other/instan1.C
  7c7aaab427900113172f72ddcd0b0c5e  gcc/testsuite/g++.old-deja/g++.other/lex1.C
*************** efc771b4a76d0c053b9d50fa8846a444  gcc/te
*** 33547,33553 ****
  39bfb5ff695929d899d5e0a61a26167a  gcc/testsuite/g++.old-deja/g++.other/op2.C
  7f0f2835698d0b670a7025708a71bdcd  gcc/testsuite/g++.old-deja/g++.other/op3.C
  2767ef2c41b48fe7c46c35b7eab0ccec  gcc/testsuite/g++.old-deja/g++.other/optimize1.C
! d5d37e6cb7f00378dcaaddfcc4604637  gcc/testsuite/g++.old-deja/g++.other/optimize2.C
  b76250225ce6553674e4a57a86b2db26  gcc/testsuite/g++.old-deja/g++.other/optimize3.C
  3ad5f2e897d7d4d13ab5589141121099  gcc/testsuite/g++.old-deja/g++.other/optimize4.C
  85b2e733960278035f693286903dd300  gcc/testsuite/g++.old-deja/g++.other/overcnv1.C
--- 35675,35681 ----
  39bfb5ff695929d899d5e0a61a26167a  gcc/testsuite/g++.old-deja/g++.other/op2.C
  7f0f2835698d0b670a7025708a71bdcd  gcc/testsuite/g++.old-deja/g++.other/op3.C
  2767ef2c41b48fe7c46c35b7eab0ccec  gcc/testsuite/g++.old-deja/g++.other/optimize1.C
! 54bac15759505604f2414c1b1ce867b8  gcc/testsuite/g++.old-deja/g++.other/optimize2.C
  b76250225ce6553674e4a57a86b2db26  gcc/testsuite/g++.old-deja/g++.other/optimize3.C
  3ad5f2e897d7d4d13ab5589141121099  gcc/testsuite/g++.old-deja/g++.other/optimize4.C
  85b2e733960278035f693286903dd300  gcc/testsuite/g++.old-deja/g++.other/overcnv1.C
*************** a9cc0e1c16e568172282adb889a34614  gcc/te
*** 33616,33622 ****
  2fc4734e1062da92300b8aa3641fcc10  gcc/testsuite/g++.old-deja/g++.other/sc1.C
  4cc954ede319c027e8493b724ffe5c42  gcc/testsuite/g++.old-deja/g++.other/scope1.C
  1f1e919597a50858bc10855c813640fc  gcc/testsuite/g++.old-deja/g++.other/shadow1.C
! df2e977a7fb4fb0bc14455136a875f07  gcc/testsuite/g++.old-deja/g++.other/sibcall1.C
  4bad359f7d21b4dc141fcb698ae426a1  gcc/testsuite/g++.old-deja/g++.other/sibcall2.C
  75a099ea3dd81f52fe5c8a7f4baa9726  gcc/testsuite/g++.old-deja/g++.other/signed.C
  3b3f003bf4668f29ca853eeb7fb0819d  gcc/testsuite/g++.old-deja/g++.other/singleton.C
--- 35744,35750 ----
  2fc4734e1062da92300b8aa3641fcc10  gcc/testsuite/g++.old-deja/g++.other/sc1.C
  4cc954ede319c027e8493b724ffe5c42  gcc/testsuite/g++.old-deja/g++.other/scope1.C
  1f1e919597a50858bc10855c813640fc  gcc/testsuite/g++.old-deja/g++.other/shadow1.C
! f0dcca23d4c2e7eed3726f968bfc257a  gcc/testsuite/g++.old-deja/g++.other/sibcall1.C
  4bad359f7d21b4dc141fcb698ae426a1  gcc/testsuite/g++.old-deja/g++.other/sibcall2.C
  75a099ea3dd81f52fe5c8a7f4baa9726  gcc/testsuite/g++.old-deja/g++.other/signed.C
  3b3f003bf4668f29ca853eeb7fb0819d  gcc/testsuite/g++.old-deja/g++.other/singleton.C
*************** ea0aa7ca8d71e498d340c85c8bcc2ddf  gcc/te
*** 33668,33676 ****
  0651678ecc52b4445e30f811ecc33835  gcc/testsuite/g++.old-deja/g++.other/typedef8.C
  1d27cd1e6509508bee24a6470a13c2ee  gcc/testsuite/g++.old-deja/g++.other/typeid1.C
  b484a46bc776173d0149a8e516119f33  gcc/testsuite/g++.old-deja/g++.other/typeinfo1.C
! 41daa445b62439e6642717169dd2a2f9  gcc/testsuite/g++.old-deja/g++.other/typename1.C
  5ada46d551dbf758c5f205a1191c4e09  gcc/testsuite/g++.old-deja/g++.other/typename2.C
! b62e589f26ea50c3e520fbd34f0dfe9d  gcc/testsuite/g++.old-deja/g++.other/unchanging1.C
  538a4c98eca920ebe7c798e2fbfca3d4  gcc/testsuite/g++.old-deja/g++.other/union1.C
  de2953c02f20c253d55673ce9923a7ab  gcc/testsuite/g++.old-deja/g++.other/union2.C
  ec9963b19a70446506c638f4004a4f77  gcc/testsuite/g++.old-deja/g++.other/union3.C
--- 35796,35804 ----
  0651678ecc52b4445e30f811ecc33835  gcc/testsuite/g++.old-deja/g++.other/typedef8.C
  1d27cd1e6509508bee24a6470a13c2ee  gcc/testsuite/g++.old-deja/g++.other/typeid1.C
  b484a46bc776173d0149a8e516119f33  gcc/testsuite/g++.old-deja/g++.other/typeinfo1.C
! 30a838d9fa1ede3f21c5334ecc002dfc  gcc/testsuite/g++.old-deja/g++.other/typename1.C
  5ada46d551dbf758c5f205a1191c4e09  gcc/testsuite/g++.old-deja/g++.other/typename2.C
! c296c2fed94cd1e84aaacd6f260b049c  gcc/testsuite/g++.old-deja/g++.other/unchanging1.C
  538a4c98eca920ebe7c798e2fbfca3d4  gcc/testsuite/g++.old-deja/g++.other/union1.C
  de2953c02f20c253d55673ce9923a7ab  gcc/testsuite/g++.old-deja/g++.other/union2.C
  ec9963b19a70446506c638f4004a4f77  gcc/testsuite/g++.old-deja/g++.other/union3.C
*************** d83edbe52eb7bc716fbb4d703952fd5c  gcc/te
*** 33718,33724 ****
  9fd025f924b46fb426c34d473551f300  gcc/testsuite/g++.old-deja/g++.pt/array3.C
  3dc91c580932e390a62ef6101ac9bcf4  gcc/testsuite/g++.old-deja/g++.pt/array4.C
  d54d7f76b19f79dd290e5553a5679f48  gcc/testsuite/g++.old-deja/g++.pt/array5.C
! 322dc1e374f2b865f57328f50145b042  gcc/testsuite/g++.old-deja/g++.pt/array6.C
  0bf7b9320971f79173514bee96bfc707  gcc/testsuite/g++.old-deja/g++.pt/array7.C
  20f25304c5f86830f4bad8aaef0823cd  gcc/testsuite/g++.old-deja/g++.pt/asm1.C
  a50c1e209893f43959322c9e8e755aef  gcc/testsuite/g++.old-deja/g++.pt/asm2.C
--- 35846,35852 ----
  9fd025f924b46fb426c34d473551f300  gcc/testsuite/g++.old-deja/g++.pt/array3.C
  3dc91c580932e390a62ef6101ac9bcf4  gcc/testsuite/g++.old-deja/g++.pt/array4.C
  d54d7f76b19f79dd290e5553a5679f48  gcc/testsuite/g++.old-deja/g++.pt/array5.C
! 9deafe0c23dcd9d4742de631c72fa4d3  gcc/testsuite/g++.old-deja/g++.pt/array6.C
  0bf7b9320971f79173514bee96bfc707  gcc/testsuite/g++.old-deja/g++.pt/array7.C
  20f25304c5f86830f4bad8aaef0823cd  gcc/testsuite/g++.old-deja/g++.pt/asm1.C
  a50c1e209893f43959322c9e8e755aef  gcc/testsuite/g++.old-deja/g++.pt/asm2.C
*************** d074aa627e88ef4cee6ecc88d370b805  gcc/te
*** 33785,33791 ****
  e3287bda1a9a60c1052e85ec61c1a31e  gcc/testsuite/g++.old-deja/g++.pt/crash49.C
  e68988007739c2e9ddee5744984d1a58  gcc/testsuite/g++.old-deja/g++.pt/crash5.C
  32a247728ae8abdf4928dbe880ec7941  gcc/testsuite/g++.old-deja/g++.pt/crash50.C
! be55e2194ca68fe3f42466daee65f998  gcc/testsuite/g++.old-deja/g++.pt/crash51.C
  591fbda8670d791612ad69788de74af5  gcc/testsuite/g++.old-deja/g++.pt/crash52.C
  9a724df4741a6fe90242a34a989f24e6  gcc/testsuite/g++.old-deja/g++.pt/crash53.C
  ebfd66f22ee0c6dde20bb0c2daa37dd9  gcc/testsuite/g++.old-deja/g++.pt/crash54.C
--- 35913,35919 ----
  e3287bda1a9a60c1052e85ec61c1a31e  gcc/testsuite/g++.old-deja/g++.pt/crash49.C
  e68988007739c2e9ddee5744984d1a58  gcc/testsuite/g++.old-deja/g++.pt/crash5.C
  32a247728ae8abdf4928dbe880ec7941  gcc/testsuite/g++.old-deja/g++.pt/crash50.C
! a363552fdde03a9607581889070b2274  gcc/testsuite/g++.old-deja/g++.pt/crash51.C
  591fbda8670d791612ad69788de74af5  gcc/testsuite/g++.old-deja/g++.pt/crash52.C
  9a724df4741a6fe90242a34a989f24e6  gcc/testsuite/g++.old-deja/g++.pt/crash53.C
  ebfd66f22ee0c6dde20bb0c2daa37dd9  gcc/testsuite/g++.old-deja/g++.pt/crash54.C
*************** c123d0b9a12303c4b06fb3047614c601  gcc/te
*** 33803,33809 ****
  54f18649dccd8fb2a677fa9d37d8916c  gcc/testsuite/g++.old-deja/g++.pt/crash65.C
  1a9c4871548707b67769bd59919e484e  gcc/testsuite/g++.old-deja/g++.pt/crash66.C
  f22cf44c7dbbb47eb64c9173b3afe6c9  gcc/testsuite/g++.old-deja/g++.pt/crash67.C
! 3854df7d687f6b27c1a8728b646f4944  gcc/testsuite/g++.old-deja/g++.pt/crash68.C
  21e63e2b294b7398e7c7f5acd5839428  gcc/testsuite/g++.old-deja/g++.pt/crash7.C
  ad3d46649e47e04d7a041e7e1644c382  gcc/testsuite/g++.old-deja/g++.pt/crash8.C
  bacabf0a4a53038418059a8709d926f4  gcc/testsuite/g++.old-deja/g++.pt/crash9.C
--- 35931,35937 ----
  54f18649dccd8fb2a677fa9d37d8916c  gcc/testsuite/g++.old-deja/g++.pt/crash65.C
  1a9c4871548707b67769bd59919e484e  gcc/testsuite/g++.old-deja/g++.pt/crash66.C
  f22cf44c7dbbb47eb64c9173b3afe6c9  gcc/testsuite/g++.old-deja/g++.pt/crash67.C
! 52f73e3459d9234f327499fae3b3c447  gcc/testsuite/g++.old-deja/g++.pt/crash68.C
  21e63e2b294b7398e7c7f5acd5839428  gcc/testsuite/g++.old-deja/g++.pt/crash7.C
  ad3d46649e47e04d7a041e7e1644c382  gcc/testsuite/g++.old-deja/g++.pt/crash8.C
  bacabf0a4a53038418059a8709d926f4  gcc/testsuite/g++.old-deja/g++.pt/crash9.C
*************** e9e4ffab1856eb43275fed8552ccdd51  gcc/te
*** 33838,33844 ****
  4a7bcf0e69407234143b8788e32f2b6c  gcc/testsuite/g++.old-deja/g++.pt/derived1.C
  b9e028a460d0b89de8720a32a624294e  gcc/testsuite/g++.old-deja/g++.pt/derived2.C
  741859656e0df7350bf09949ed93e660  gcc/testsuite/g++.old-deja/g++.pt/derived3.C
! d09cd3f242245f604acbf805b1b7f4c3  gcc/testsuite/g++.old-deja/g++.pt/dynarray.C
  5ffddc707b760295b1bc319fda0770fa  gcc/testsuite/g++.old-deja/g++.pt/ehspec1.C
  27f2ac161e4df5610b1e51676a20752a  gcc/testsuite/g++.old-deja/g++.pt/eichin01.C
  5c9ac24285bce54d4230b3f47a4e03b1  gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C
--- 35966,35972 ----
  4a7bcf0e69407234143b8788e32f2b6c  gcc/testsuite/g++.old-deja/g++.pt/derived1.C
  b9e028a460d0b89de8720a32a624294e  gcc/testsuite/g++.old-deja/g++.pt/derived2.C
  741859656e0df7350bf09949ed93e660  gcc/testsuite/g++.old-deja/g++.pt/derived3.C
! 5b8f05849adf02df49d6c7a143da6dd0  gcc/testsuite/g++.old-deja/g++.pt/dynarray.C
  5ffddc707b760295b1bc319fda0770fa  gcc/testsuite/g++.old-deja/g++.pt/ehspec1.C
  27f2ac161e4df5610b1e51676a20752a  gcc/testsuite/g++.old-deja/g++.pt/eichin01.C
  5c9ac24285bce54d4230b3f47a4e03b1  gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C
*************** a0032889c996056c4231f106c2bfc43d  gcc/te
*** 33936,33942 ****
  a026eff7f55e0343c0d357e41998e870  gcc/testsuite/g++.old-deja/g++.pt/explicit81.C
  4be526353ade77179b9091ca5fdb9cf1  gcc/testsuite/g++.old-deja/g++.pt/explicit82.C
  2048df52f559bb2dad17983568c0d774  gcc/testsuite/g++.old-deja/g++.pt/explicit9.C
! 3487b9fe1bb9aa4e0f54026d6d5d5a26  gcc/testsuite/g++.old-deja/g++.pt/export1.C
  937b47082e0e5b8b777a193c2045c361  gcc/testsuite/g++.old-deja/g++.pt/expr1.C
  6e923ae90d71123ba677ec0a36384ed7  gcc/testsuite/g++.old-deja/g++.pt/expr2.C
  404a0a471a1caad24684b4d52de19172  gcc/testsuite/g++.old-deja/g++.pt/expr3.C
--- 36064,36070 ----
  a026eff7f55e0343c0d357e41998e870  gcc/testsuite/g++.old-deja/g++.pt/explicit81.C
  4be526353ade77179b9091ca5fdb9cf1  gcc/testsuite/g++.old-deja/g++.pt/explicit82.C
  2048df52f559bb2dad17983568c0d774  gcc/testsuite/g++.old-deja/g++.pt/explicit9.C
! 93c49979b32a21e2652ac339b287936e  gcc/testsuite/g++.old-deja/g++.pt/export1.C
  937b47082e0e5b8b777a193c2045c361  gcc/testsuite/g++.old-deja/g++.pt/expr1.C
  6e923ae90d71123ba677ec0a36384ed7  gcc/testsuite/g++.old-deja/g++.pt/expr2.C
  404a0a471a1caad24684b4d52de19172  gcc/testsuite/g++.old-deja/g++.pt/expr3.C
*************** fb1c43d527fbf3e2151303ec6ec25eb0  gcc/te
*** 34070,34076 ****
  fa42ab5756ba6106b506e9c1fb45aceb  gcc/testsuite/g++.old-deja/g++.pt/memclass9.C
  7c9ff7b48f36a935cfbb8498fa18c47f  gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C
  4ec5b1638579f803a480fb71c9d548b4  gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C
! 1bef8782d08b3c6de2bab59c7370d8e2  gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C
  9dc3b3369aa7e0765d33c2633d91e958  gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C
  c49d75255634dd1d38c00b4ccd12186f  gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C
  ac3321d3cb14c1f85dd1cfa9d38df694  gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C
--- 36198,36204 ----
  fa42ab5756ba6106b506e9c1fb45aceb  gcc/testsuite/g++.old-deja/g++.pt/memclass9.C
  7c9ff7b48f36a935cfbb8498fa18c47f  gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C
  4ec5b1638579f803a480fb71c9d548b4  gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C
! 70e10dd251697223013a28884723afc7  gcc/testsuite/g++.old-deja/g++.pt/memtemp100.C
  9dc3b3369aa7e0765d33c2633d91e958  gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C
  c49d75255634dd1d38c00b4ccd12186f  gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C
  ac3321d3cb14c1f85dd1cfa9d38df694  gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C
*************** e4bacbe47abba3ebf1104b50d7cf9249  gcc/te
*** 34449,34455 ****
  e890a612b46d6c7b501609a21a4674a8  gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C
  e26ad5718ff51449da03b8b3023ebab1  gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C
  18090564deaeabb2833db724176f5e3e  gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C
! c3df08d89fbbacdad6cc60f76ebdc308  gcc/testsuite/g++.old-deja/g++.robertl/README
  7043c0e8dd58f93b9ec2d562d4af77b8  gcc/testsuite/g++.old-deja/g++.robertl/eb10.C
  ee83a1efbd7590614fbf204920c56047  gcc/testsuite/g++.old-deja/g++.robertl/eb102.C
  16b83875b8a1cbbdb43a0c94bc18228d  gcc/testsuite/g++.old-deja/g++.robertl/eb103.C
--- 36577,36583 ----
  e890a612b46d6c7b501609a21a4674a8  gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C
  e26ad5718ff51449da03b8b3023ebab1  gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C
  18090564deaeabb2833db724176f5e3e  gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C
! d4a090ef1774e616054329b4aae35743  gcc/testsuite/g++.old-deja/g++.robertl/README
  7043c0e8dd58f93b9ec2d562d4af77b8  gcc/testsuite/g++.old-deja/g++.robertl/eb10.C
  ee83a1efbd7590614fbf204920c56047  gcc/testsuite/g++.old-deja/g++.robertl/eb102.C
  16b83875b8a1cbbdb43a0c94bc18228d  gcc/testsuite/g++.old-deja/g++.robertl/eb103.C
*************** d0815bd10637ef31f290d081ddbda880  gcc/te
*** 34458,34471 ****
  5ef889682d511f0ac101f0885f5a3831  gcc/testsuite/g++.old-deja/g++.robertl/eb106.C
  3e53dc52c997be42c47ab4e29c760531  gcc/testsuite/g++.old-deja/g++.robertl/eb107.C
  a3612f3f68ec2ae185d88189192c82c3  gcc/testsuite/g++.old-deja/g++.robertl/eb108.C
! 58ffba5403cd0872f89b0bf73bd08879  gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
  cefd72ccf9ccca809d4dc7746e56f11f  gcc/testsuite/g++.old-deja/g++.robertl/eb11.C
  4e0fb43b2a17ed42c66d97c75cbcff3b  gcc/testsuite/g++.old-deja/g++.robertl/eb110.C
  389459a1b35359ae0a53adadeb39890c  gcc/testsuite/g++.old-deja/g++.robertl/eb111.C
  37147a8b03ef1cf59825839e29b88142  gcc/testsuite/g++.old-deja/g++.robertl/eb112.C
! dda1730a666d8970244424705aa4b904  gcc/testsuite/g++.old-deja/g++.robertl/eb113.C
  3cfd21e032a7b6c6168c382e3a96ce06  gcc/testsuite/g++.old-deja/g++.robertl/eb114.C
! 239088e4929f8dedbfa1d468b3145a0e  gcc/testsuite/g++.old-deja/g++.robertl/eb115.C
  518101006f1cba51035f142508d3c90a  gcc/testsuite/g++.old-deja/g++.robertl/eb116.C
  78aa4c3808ed8fed0ae2cdfee22baa05  gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
  8a824bc1662e2bc1e829ee6e0d13c4c1  gcc/testsuite/g++.old-deja/g++.robertl/eb12.C
--- 36586,36599 ----
  5ef889682d511f0ac101f0885f5a3831  gcc/testsuite/g++.old-deja/g++.robertl/eb106.C
  3e53dc52c997be42c47ab4e29c760531  gcc/testsuite/g++.old-deja/g++.robertl/eb107.C
  a3612f3f68ec2ae185d88189192c82c3  gcc/testsuite/g++.old-deja/g++.robertl/eb108.C
! 2cb00c65a036089bf7eadb6cd1790e6e  gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
  cefd72ccf9ccca809d4dc7746e56f11f  gcc/testsuite/g++.old-deja/g++.robertl/eb11.C
  4e0fb43b2a17ed42c66d97c75cbcff3b  gcc/testsuite/g++.old-deja/g++.robertl/eb110.C
  389459a1b35359ae0a53adadeb39890c  gcc/testsuite/g++.old-deja/g++.robertl/eb111.C
  37147a8b03ef1cf59825839e29b88142  gcc/testsuite/g++.old-deja/g++.robertl/eb112.C
! 6e0446b514eb2f2f71111edf1930a7fd  gcc/testsuite/g++.old-deja/g++.robertl/eb113.C
  3cfd21e032a7b6c6168c382e3a96ce06  gcc/testsuite/g++.old-deja/g++.robertl/eb114.C
! 93b4a0a667950fe53907884e39a09032  gcc/testsuite/g++.old-deja/g++.robertl/eb115.C
  518101006f1cba51035f142508d3c90a  gcc/testsuite/g++.old-deja/g++.robertl/eb116.C
  78aa4c3808ed8fed0ae2cdfee22baa05  gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
  8a824bc1662e2bc1e829ee6e0d13c4c1  gcc/testsuite/g++.old-deja/g++.robertl/eb12.C
*************** b0b80d381a13416603feedf9611b816d  gcc/te
*** 34473,34556 ****
  6875edf27d4ff79c6949fbd17e5b1ed6  gcc/testsuite/g++.old-deja/g++.robertl/eb121.C
  6cea022036005800b290af273d7eb4f5  gcc/testsuite/g++.old-deja/g++.robertl/eb122.C
  17f39505b12e2718e0623a1f9acbf086  gcc/testsuite/g++.old-deja/g++.robertl/eb123.C
! 41102a1c99ea009d5ff0a3074bf4f821  gcc/testsuite/g++.old-deja/g++.robertl/eb124.C
  20bc0ea9e2cf52f325b3824da6e490ff  gcc/testsuite/g++.old-deja/g++.robertl/eb125.C
  8a691bca88fb3b558c8cbbbcd9c83824  gcc/testsuite/g++.old-deja/g++.robertl/eb126.C
! b8c55e6c915ce77498d2870d52cdec65  gcc/testsuite/g++.old-deja/g++.robertl/eb127.C
  06b76b4bfa648bedcd960d0535aba50f  gcc/testsuite/g++.old-deja/g++.robertl/eb128.C
! 30a21438ecfe9e0f459cab89b9dd1811  gcc/testsuite/g++.old-deja/g++.robertl/eb129.C
! 5666cf4d08a8de56d848e0d8ce3d8202  gcc/testsuite/g++.old-deja/g++.robertl/eb129a.C
  651675d5ae1c0851fec63f19ff07b36f  gcc/testsuite/g++.old-deja/g++.robertl/eb13.C
! 5d3026759b3ae4dd8c91afde6283714e  gcc/testsuite/g++.old-deja/g++.robertl/eb130.C
  39c6b6a1b56e5203f60d318a9c7b6c52  gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
! 12e85338a8aa2928e7419fdeed2e93a9  gcc/testsuite/g++.old-deja/g++.robertl/eb132.C
  bc4689e554f4823c5225c057950715a7  gcc/testsuite/g++.old-deja/g++.robertl/eb133a.C
  9f0d61586077774e5485a9825b097a4c  gcc/testsuite/g++.old-deja/g++.robertl/eb133b.C
  848e82d17c868821c10f0a107104e2c7  gcc/testsuite/g++.old-deja/g++.robertl/eb133c.C
  f0055ccdf10889b518a9ab6870864ee4  gcc/testsuite/g++.old-deja/g++.robertl/eb14.C
! e1cc4c0a26466bcb288ed01f4b1e02c6  gcc/testsuite/g++.old-deja/g++.robertl/eb15.C
  3b4d8fa7337c0e5185b2f196534753bd  gcc/testsuite/g++.old-deja/g++.robertl/eb16.C
  25673e9695aa96e1359ed114838592b2  gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
  53d207d7ba57cee093db93337912bde1  gcc/testsuite/g++.old-deja/g++.robertl/eb18.C
  9b0fe19732508a1447e5f3d5af4674fa  gcc/testsuite/g++.old-deja/g++.robertl/eb19.C
  8767b204079f14a768b1e30e16817c5c  gcc/testsuite/g++.old-deja/g++.robertl/eb2.C
  b8297fbb8ea21dd74224c4f583013d82  gcc/testsuite/g++.old-deja/g++.robertl/eb20.C
! dfa1bab9d1d1dbb5b57ebf2c698892d7  gcc/testsuite/g++.old-deja/g++.robertl/eb21.C
  7f38749dbbd1e2f4229e16088d66af7e  gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
  9d707a3f73b9ac5715f144793aab4cf0  gcc/testsuite/g++.old-deja/g++.robertl/eb23.C
! 6746831f359d3159b992e820ac0aa390  gcc/testsuite/g++.old-deja/g++.robertl/eb24.C
  bfed9395e04ba5cc65f81b655ac0007e  gcc/testsuite/g++.old-deja/g++.robertl/eb26.C
! 6b11589b6124db13df6ce690ffc10020  gcc/testsuite/g++.old-deja/g++.robertl/eb27.C
! dc881655a5dcfa0cdbdd902204cb69d8  gcc/testsuite/g++.old-deja/g++.robertl/eb28.C
! 2d148cfc1aef7e73c84dde3cfba1ce8c  gcc/testsuite/g++.old-deja/g++.robertl/eb29.C
! 0164d1f50c2dd32169fccc50aa1a7e01  gcc/testsuite/g++.old-deja/g++.robertl/eb3.C
! a7dc048c55c4684fe2a1abc5448c3dee  gcc/testsuite/g++.old-deja/g++.robertl/eb30.C
! d7b3e4fda9dff8856f7aff223775823f  gcc/testsuite/g++.old-deja/g++.robertl/eb31.C
  f4a4e96a12a4cb6184f2d8656b2d77b1  gcc/testsuite/g++.old-deja/g++.robertl/eb32.C
! ef46f07e495b4e06388c1bda41791a72  gcc/testsuite/g++.old-deja/g++.robertl/eb33.C
  66189ab4fa15789bd8c06637aab5a9a7  gcc/testsuite/g++.old-deja/g++.robertl/eb34.C
  022bceee6bb804935953e550cbad5afc  gcc/testsuite/g++.old-deja/g++.robertl/eb35.C
! d220747503f1cae3d8e04233dceb1d48  gcc/testsuite/g++.old-deja/g++.robertl/eb36.C
  d58ae7b46abd9e5199b3fb1440309bb9  gcc/testsuite/g++.old-deja/g++.robertl/eb37.C
  db68a817c3bdd5f97fe7e97593e0eee4  gcc/testsuite/g++.old-deja/g++.robertl/eb38.C
! b92d300c6fe701dce20422ebf6b69f31  gcc/testsuite/g++.old-deja/g++.robertl/eb39.C
! c170abbc78a34e272358a4329e335d08  gcc/testsuite/g++.old-deja/g++.robertl/eb4.C
! a2554475431f18dfadd63645b06b9130  gcc/testsuite/g++.old-deja/g++.robertl/eb41.C
! 7c85eb0f79d89ec346f7a92efcd4204a  gcc/testsuite/g++.old-deja/g++.robertl/eb43.C
! cf5b525b1de75ecc4865c73f60df5ba9  gcc/testsuite/g++.old-deja/g++.robertl/eb44.C
  ef8dd1079f1a0fbed1487226cb19d1f4  gcc/testsuite/g++.old-deja/g++.robertl/eb45.C
! 162242e8a8ce35ee0319175bf101e399  gcc/testsuite/g++.old-deja/g++.robertl/eb46.C
  4f65e058476e0d5ee95cecfc25d27593  gcc/testsuite/g++.old-deja/g++.robertl/eb48.C
  262caaf3359d2027128ac4b4da113886  gcc/testsuite/g++.old-deja/g++.robertl/eb49.C
  587cf27a8a6445ee8c78cc92cf59b65f  gcc/testsuite/g++.old-deja/g++.robertl/eb5.C
  1ad3ceecd4112409b4be018f32d260b2  gcc/testsuite/g++.old-deja/g++.robertl/eb50.C
  6d4a283105be144be9d12b5a24a173c7  gcc/testsuite/g++.old-deja/g++.robertl/eb51.C
  ad16b6909db3b254930c04fed0ec8d0f  gcc/testsuite/g++.old-deja/g++.robertl/eb52.C
! f81c5754161a5ff2ebd2406bece56fd1  gcc/testsuite/g++.old-deja/g++.robertl/eb54.C
! 515d9f8631388b57acb4079b3ad6e1d9  gcc/testsuite/g++.old-deja/g++.robertl/eb55.C
  62fa73b17247c1714c275a963fa7328a  gcc/testsuite/g++.old-deja/g++.robertl/eb56.C
  0777d21b3dd550747ecc5bbf0087c1fc  gcc/testsuite/g++.old-deja/g++.robertl/eb57.C
  ae46e078954256bdbe67e9f8d2c6f181  gcc/testsuite/g++.old-deja/g++.robertl/eb58.C
! 0a93ceef805435716e94c493f877f9c7  gcc/testsuite/g++.old-deja/g++.robertl/eb59.C
  1a1f9e745e06ee3866366991f2da25eb  gcc/testsuite/g++.old-deja/g++.robertl/eb6.C
! 9ec1bcc10a422ce1681840b226b2e797  gcc/testsuite/g++.old-deja/g++.robertl/eb60.C
  e79679e8d57af97c777b23ef2b290a90  gcc/testsuite/g++.old-deja/g++.robertl/eb61.C
! 4bb576d55e0e1e12e3e9ceeebef0ceec  gcc/testsuite/g++.old-deja/g++.robertl/eb62.C
  6eb7ce0adf67ed69b5d47720c1b1fb00  gcc/testsuite/g++.old-deja/g++.robertl/eb63.C
  b6595ba27fd258c0900d7e3a4566c9ca  gcc/testsuite/g++.old-deja/g++.robertl/eb64.C
  de75043540ca4e516fe1727234b3000e  gcc/testsuite/g++.old-deja/g++.robertl/eb65.C
! e728f40777563cb885cfa405a188c976  gcc/testsuite/g++.old-deja/g++.robertl/eb66.C
  fda2b9a8051809962b59e6ca5f79964f  gcc/testsuite/g++.old-deja/g++.robertl/eb67.C
  57aadaffc24026eadafd94df1bd3b9e2  gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
! eed0467f169c7a3a218649fd1bb443d9  gcc/testsuite/g++.old-deja/g++.robertl/eb7.C
  559dc3f40084aebeeb2d90d1fb731ed3  gcc/testsuite/g++.old-deja/g++.robertl/eb70.C
  ace655424d8104d76d1f908b54d8526d  gcc/testsuite/g++.old-deja/g++.robertl/eb71.C
! cadd13ad50ffcc1ec9077249dc0d84c6  gcc/testsuite/g++.old-deja/g++.robertl/eb73.C
  be75e16bfbc653f4918a04c9b9ffb7ea  gcc/testsuite/g++.old-deja/g++.robertl/eb74.C
  055def38a375aca3237eeade062815d5  gcc/testsuite/g++.old-deja/g++.robertl/eb75.C
  2e30effa3d0f0268cf014677f519ff37  gcc/testsuite/g++.old-deja/g++.robertl/eb76.C
! 349f93b6aba01075501dbe0c1897a06a  gcc/testsuite/g++.old-deja/g++.robertl/eb77.C
! a3fc556e3505fac837f3d398e1d92829  gcc/testsuite/g++.old-deja/g++.robertl/eb79.C
  a085e6cf1eca394616113132643a792e  gcc/testsuite/g++.old-deja/g++.robertl/eb8.C
  1eb9a1d899e84b46785ab32efead0469  gcc/testsuite/g++.old-deja/g++.robertl/eb80.C
  78c03dfd8616d6624f4aa754373b8727  gcc/testsuite/g++.old-deja/g++.robertl/eb81.C
--- 36601,36684 ----
  6875edf27d4ff79c6949fbd17e5b1ed6  gcc/testsuite/g++.old-deja/g++.robertl/eb121.C
  6cea022036005800b290af273d7eb4f5  gcc/testsuite/g++.old-deja/g++.robertl/eb122.C
  17f39505b12e2718e0623a1f9acbf086  gcc/testsuite/g++.old-deja/g++.robertl/eb123.C
! f1246e764ed930958ce66ad4f791c7c6  gcc/testsuite/g++.old-deja/g++.robertl/eb124.C
  20bc0ea9e2cf52f325b3824da6e490ff  gcc/testsuite/g++.old-deja/g++.robertl/eb125.C
  8a691bca88fb3b558c8cbbbcd9c83824  gcc/testsuite/g++.old-deja/g++.robertl/eb126.C
! 52b36ff5a8331951c793948531acd009  gcc/testsuite/g++.old-deja/g++.robertl/eb127.C
  06b76b4bfa648bedcd960d0535aba50f  gcc/testsuite/g++.old-deja/g++.robertl/eb128.C
! d939afa40b9fe7673ac8587aa7aa5fe0  gcc/testsuite/g++.old-deja/g++.robertl/eb129.C
! 30d5e74db9ee0ef1d19f3eb2eb3db601  gcc/testsuite/g++.old-deja/g++.robertl/eb129a.C
  651675d5ae1c0851fec63f19ff07b36f  gcc/testsuite/g++.old-deja/g++.robertl/eb13.C
! 00a46f00619db90408a86fc3e9182be4  gcc/testsuite/g++.old-deja/g++.robertl/eb130.C
  39c6b6a1b56e5203f60d318a9c7b6c52  gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
! 55eb969379a61417d62ccf1c11289d57  gcc/testsuite/g++.old-deja/g++.robertl/eb132.C
  bc4689e554f4823c5225c057950715a7  gcc/testsuite/g++.old-deja/g++.robertl/eb133a.C
  9f0d61586077774e5485a9825b097a4c  gcc/testsuite/g++.old-deja/g++.robertl/eb133b.C
  848e82d17c868821c10f0a107104e2c7  gcc/testsuite/g++.old-deja/g++.robertl/eb133c.C
  f0055ccdf10889b518a9ab6870864ee4  gcc/testsuite/g++.old-deja/g++.robertl/eb14.C
! 47c7c308975fc035cfb1b4ff0b6d2cba  gcc/testsuite/g++.old-deja/g++.robertl/eb15.C
  3b4d8fa7337c0e5185b2f196534753bd  gcc/testsuite/g++.old-deja/g++.robertl/eb16.C
  25673e9695aa96e1359ed114838592b2  gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
  53d207d7ba57cee093db93337912bde1  gcc/testsuite/g++.old-deja/g++.robertl/eb18.C
  9b0fe19732508a1447e5f3d5af4674fa  gcc/testsuite/g++.old-deja/g++.robertl/eb19.C
  8767b204079f14a768b1e30e16817c5c  gcc/testsuite/g++.old-deja/g++.robertl/eb2.C
  b8297fbb8ea21dd74224c4f583013d82  gcc/testsuite/g++.old-deja/g++.robertl/eb20.C
! 0fdd294287bf705e6a5b362c4f866191  gcc/testsuite/g++.old-deja/g++.robertl/eb21.C
  7f38749dbbd1e2f4229e16088d66af7e  gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
  9d707a3f73b9ac5715f144793aab4cf0  gcc/testsuite/g++.old-deja/g++.robertl/eb23.C
! 8a591d70353fa0d2cacdc84a93b2b475  gcc/testsuite/g++.old-deja/g++.robertl/eb24.C
  bfed9395e04ba5cc65f81b655ac0007e  gcc/testsuite/g++.old-deja/g++.robertl/eb26.C
! 49ae285e77c8be61551475d11461df5b  gcc/testsuite/g++.old-deja/g++.robertl/eb27.C
! 8918d6361f2fa261fb1d5358f297eea8  gcc/testsuite/g++.old-deja/g++.robertl/eb28.C
! 9245d2bf16c9c772525674ff7b78cc90  gcc/testsuite/g++.old-deja/g++.robertl/eb29.C
! a4e1db40e4ef2c6ca1b2e9f6f3cf9858  gcc/testsuite/g++.old-deja/g++.robertl/eb3.C
! 720d1c7adea71b40f42437a7f998a7eb  gcc/testsuite/g++.old-deja/g++.robertl/eb30.C
! 14243b48b9739e74bd19d8ebb573ee80  gcc/testsuite/g++.old-deja/g++.robertl/eb31.C
  f4a4e96a12a4cb6184f2d8656b2d77b1  gcc/testsuite/g++.old-deja/g++.robertl/eb32.C
! f6bc8012321c4b36bcb99003dbb9f8b4  gcc/testsuite/g++.old-deja/g++.robertl/eb33.C
  66189ab4fa15789bd8c06637aab5a9a7  gcc/testsuite/g++.old-deja/g++.robertl/eb34.C
  022bceee6bb804935953e550cbad5afc  gcc/testsuite/g++.old-deja/g++.robertl/eb35.C
! cb028b225b8712ac244312f6b63bf808  gcc/testsuite/g++.old-deja/g++.robertl/eb36.C
  d58ae7b46abd9e5199b3fb1440309bb9  gcc/testsuite/g++.old-deja/g++.robertl/eb37.C
  db68a817c3bdd5f97fe7e97593e0eee4  gcc/testsuite/g++.old-deja/g++.robertl/eb38.C
! 6540dac975c7edfce174085935ae95f1  gcc/testsuite/g++.old-deja/g++.robertl/eb39.C
! bc6ff920bb76511346e57ad4ff6ff3d8  gcc/testsuite/g++.old-deja/g++.robertl/eb4.C
! f1165fb7d7bc239a210aea71b4211545  gcc/testsuite/g++.old-deja/g++.robertl/eb41.C
! 2872a6ef48ac22f6b2d19ce320f97122  gcc/testsuite/g++.old-deja/g++.robertl/eb43.C
! d3fa0a4c4c9441444004160c9de6eed0  gcc/testsuite/g++.old-deja/g++.robertl/eb44.C
  ef8dd1079f1a0fbed1487226cb19d1f4  gcc/testsuite/g++.old-deja/g++.robertl/eb45.C
! 38d58f3225a828519db80587411b1001  gcc/testsuite/g++.old-deja/g++.robertl/eb46.C
  4f65e058476e0d5ee95cecfc25d27593  gcc/testsuite/g++.old-deja/g++.robertl/eb48.C
  262caaf3359d2027128ac4b4da113886  gcc/testsuite/g++.old-deja/g++.robertl/eb49.C
  587cf27a8a6445ee8c78cc92cf59b65f  gcc/testsuite/g++.old-deja/g++.robertl/eb5.C
  1ad3ceecd4112409b4be018f32d260b2  gcc/testsuite/g++.old-deja/g++.robertl/eb50.C
  6d4a283105be144be9d12b5a24a173c7  gcc/testsuite/g++.old-deja/g++.robertl/eb51.C
  ad16b6909db3b254930c04fed0ec8d0f  gcc/testsuite/g++.old-deja/g++.robertl/eb52.C
! f813d0171719cd82bba2b0af0e078914  gcc/testsuite/g++.old-deja/g++.robertl/eb54.C
! d89d3e8d98cfc3e0c7379bd99c5a3007  gcc/testsuite/g++.old-deja/g++.robertl/eb55.C
  62fa73b17247c1714c275a963fa7328a  gcc/testsuite/g++.old-deja/g++.robertl/eb56.C
  0777d21b3dd550747ecc5bbf0087c1fc  gcc/testsuite/g++.old-deja/g++.robertl/eb57.C
  ae46e078954256bdbe67e9f8d2c6f181  gcc/testsuite/g++.old-deja/g++.robertl/eb58.C
! ea3953684445363069525ba093109b53  gcc/testsuite/g++.old-deja/g++.robertl/eb59.C
  1a1f9e745e06ee3866366991f2da25eb  gcc/testsuite/g++.old-deja/g++.robertl/eb6.C
! 4820adac3ee7ae8660cab55991d16438  gcc/testsuite/g++.old-deja/g++.robertl/eb60.C
  e79679e8d57af97c777b23ef2b290a90  gcc/testsuite/g++.old-deja/g++.robertl/eb61.C
! 9a8950fe088bc06c59aa3312d87fe357  gcc/testsuite/g++.old-deja/g++.robertl/eb62.C
  6eb7ce0adf67ed69b5d47720c1b1fb00  gcc/testsuite/g++.old-deja/g++.robertl/eb63.C
  b6595ba27fd258c0900d7e3a4566c9ca  gcc/testsuite/g++.old-deja/g++.robertl/eb64.C
  de75043540ca4e516fe1727234b3000e  gcc/testsuite/g++.old-deja/g++.robertl/eb65.C
! dab09239672c41acb39c60e94a78328b  gcc/testsuite/g++.old-deja/g++.robertl/eb66.C
  fda2b9a8051809962b59e6ca5f79964f  gcc/testsuite/g++.old-deja/g++.robertl/eb67.C
  57aadaffc24026eadafd94df1bd3b9e2  gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
! 8b60cd2a8e84769ee3a5423c700abafd  gcc/testsuite/g++.old-deja/g++.robertl/eb7.C
  559dc3f40084aebeeb2d90d1fb731ed3  gcc/testsuite/g++.old-deja/g++.robertl/eb70.C
  ace655424d8104d76d1f908b54d8526d  gcc/testsuite/g++.old-deja/g++.robertl/eb71.C
! d514e0afccfb90e87c39d37a875855b6  gcc/testsuite/g++.old-deja/g++.robertl/eb73.C
  be75e16bfbc653f4918a04c9b9ffb7ea  gcc/testsuite/g++.old-deja/g++.robertl/eb74.C
  055def38a375aca3237eeade062815d5  gcc/testsuite/g++.old-deja/g++.robertl/eb75.C
  2e30effa3d0f0268cf014677f519ff37  gcc/testsuite/g++.old-deja/g++.robertl/eb76.C
! 2235b2ae1e2832b3e568b3039701a2c8  gcc/testsuite/g++.old-deja/g++.robertl/eb77.C
! 262fe0e17330b763e4615db4382d936d  gcc/testsuite/g++.old-deja/g++.robertl/eb79.C
  a085e6cf1eca394616113132643a792e  gcc/testsuite/g++.old-deja/g++.robertl/eb8.C
  1eb9a1d899e84b46785ab32efead0469  gcc/testsuite/g++.old-deja/g++.robertl/eb80.C
  78c03dfd8616d6624f4aa754373b8727  gcc/testsuite/g++.old-deja/g++.robertl/eb81.C
*************** f6e9ca10dae6185d4eea5862e8d53b07  gcc/te
*** 34588,34601 ****
  f0d75f94742cf514d429d51c4d4df58c  gcc/testsuite/g++.old-deja/g++.warn/impint.C
  4331e954dcb709dcbbc35224b3be85da  gcc/testsuite/g++.old-deja/g++.warn/impint2.C
  a885b90302ee9e0cb5c2e13efa009de3  gcc/testsuite/g++.old-deja/g++.warn/inline.C
! d53cb2073c8f36697f63dfe19779eb13  gcc/testsuite/g++.old-deja/g++.warn/iomanip.C
  0c1003d602150141b4f4705044d2624f  gcc/testsuite/g++.old-deja/g++.warn/virt1.C
! 3c288b92cea5f162d6c4b5905d1270d8  gcc/testsuite/g++.old-deja/old-deja.exp
! 68398547fd8cc1a3231e084958851ea3  gcc/testsuite/g++.target/aarch64/aarch64.exp
! 23050f198d6953d86e6b1dcf58d5be7d  gcc/testsuite/g++.target/aarch64/acle/acle.exp
  0c47cb2c5527e312fc7aa61cb990aca3  gcc/testsuite/g++.target/aarch64/acle/ls64.C
  74ed4871401ccfa96602343217748d58  gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C
! 5bb6fc22d59aab37d7df75591025529e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
  323c7e5c5fbc1e627c7630bec9c0ce5c  gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C
  00828ba2141dc2185601894f83428c75  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
--- 36716,36729 ----
  f0d75f94742cf514d429d51c4d4df58c  gcc/testsuite/g++.old-deja/g++.warn/impint.C
  4331e954dcb709dcbbc35224b3be85da  gcc/testsuite/g++.old-deja/g++.warn/impint2.C
  a885b90302ee9e0cb5c2e13efa009de3  gcc/testsuite/g++.old-deja/g++.warn/inline.C
! f1e99cf70d8b2152946089f90f51ac09  gcc/testsuite/g++.old-deja/g++.warn/iomanip.C
  0c1003d602150141b4f4705044d2624f  gcc/testsuite/g++.old-deja/g++.warn/virt1.C
! 8e1f1e7d694836aa7b6fd95e27cbcb32  gcc/testsuite/g++.old-deja/old-deja.exp
! 648141f4c3361d5d72cf5d154c2c3688  gcc/testsuite/g++.target/aarch64/aarch64.exp
! 6bdc3bf4e18a17169f486608658fe238  gcc/testsuite/g++.target/aarch64/acle/acle.exp
  0c47cb2c5527e312fc7aa61cb990aca3  gcc/testsuite/g++.target/aarch64/acle/ls64.C
  74ed4871401ccfa96602343217748d58  gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C
! 4f035317e893d83ba293c8bb5ca0cf7d  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
  323c7e5c5fbc1e627c7630bec9c0ce5c  gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C
  00828ba2141dc2185601894f83428c75  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
*************** cbb30a4d3c73f183db77e6da8a13e3a9  gcc/te
*** 34606,34622 ****
  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
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
! 1523e6ba24b79e403ea7663afe5c1dfa  gcc/testsuite/g++.target/aarch64/mv-1.C
! 745abe274e13fcf82b8d32023c43155a  gcc/testsuite/g++.target/aarch64/mv-symbols1.C
! aab9e274c610457133c00ee4bdd6b7fb  gcc/testsuite/g++.target/aarch64/mv-symbols2.C
! 7ad546399ef3ff4b6797acd27325bea5  gcc/testsuite/g++.target/aarch64/mv-symbols3.C
! ed22ad98c3a390b98fe83f44f3d32e32  gcc/testsuite/g++.target/aarch64/mv-symbols4.C
! f8afa4519e961339073a068036d67207  gcc/testsuite/g++.target/aarch64/mv-symbols5.C
! 4efebffa315440fbfcc099a15970e251  gcc/testsuite/g++.target/aarch64/mvc-symbols1.C
! 9b82c13ebfb83bbf05485deaba395be3  gcc/testsuite/g++.target/aarch64/mvc-symbols2.C
! 5efe35f76246efd767400fa265567924  gcc/testsuite/g++.target/aarch64/mvc-symbols3.C
! 894c3e02c93fdfa48d0fdbd4a413958d  gcc/testsuite/g++.target/aarch64/mvc-symbols4.C
  4d5fd415b9746bcd53f093e8282fb37d  gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
  20b857cf626aad749264f74e19d94347  gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
  ff91378a7ee794cf81b35b9b219bd4b2  gcc/testsuite/g++.target/aarch64/pr103147-1.C
--- 36734,36756 ----
  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
+ 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
! 277b5d3e6c910137a4093c33ad09513e  gcc/testsuite/g++.target/aarch64/lane-bound-1.C
! 32454f8b53eb88a62fd52c8ef8787a0d  gcc/testsuite/g++.target/aarch64/mv-1.C
! 38810b08abce980f7f945577bf5d7cda  gcc/testsuite/g++.target/aarch64/mv-pragma.C
! 3f3392f2e48050ab54f5d990f1d4fe2f  gcc/testsuite/g++.target/aarch64/mv-symbols1.C
! 5f1e60b72fb9c2d51a355fba7056a615  gcc/testsuite/g++.target/aarch64/mv-symbols2.C
! 8a825e45355fad6891eed9d4742ce94f  gcc/testsuite/g++.target/aarch64/mv-symbols3.C
! 4b66ce68ce05acc58db1f4d02906d94b  gcc/testsuite/g++.target/aarch64/mv-symbols4.C
! eb7f5d564a95eeabaabdc65d61d5e059  gcc/testsuite/g++.target/aarch64/mv-symbols5.C
! 92f1cf8a2598c437c67c9108ec35da66  gcc/testsuite/g++.target/aarch64/mv-warning1.C
! 9ddc27a2766539d6b6133e03f6dd33a1  gcc/testsuite/g++.target/aarch64/mvc-symbols1.C
! d245d7e3c3c19d3d947fc20f92df0eb2  gcc/testsuite/g++.target/aarch64/mvc-symbols2.C
! 57979ff34aa2692a7065daec33c925fc  gcc/testsuite/g++.target/aarch64/mvc-symbols3.C
! f25a95bd3fd87aae03957cba4cb83752  gcc/testsuite/g++.target/aarch64/mvc-symbols4.C
! b3ffd91f5d27a6d5714e2d8b581ac471  gcc/testsuite/g++.target/aarch64/mvc-warning1.C
  4d5fd415b9746bcd53f093e8282fb37d  gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
  20b857cf626aad749264f74e19d94347  gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
  ff91378a7ee794cf81b35b9b219bd4b2  gcc/testsuite/g++.target/aarch64/pr103147-1.C
*************** b3f9da722f5270cda4a26396283bbbe9  gcc/te
*** 34634,34661 ****
  3dce24cbf6e8a9d6b104a5174b42ccf6  gcc/testsuite/g++.target/aarch64/pr109661-2.C
  af15d8508e94dffd343c693011e63fd4  gcc/testsuite/g++.target/aarch64/pr109661-3.C
  9b78f2399b3493ce846b6fb03c77ee6c  gcc/testsuite/g++.target/aarch64/pr109661-4.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
! af40dade74feb71f52277a623af87930  gcc/testsuite/g++.target/aarch64/pr94515-1.C
! 2d1f8d2fa70c2b254972cb8fdfbdf71e  gcc/testsuite/g++.target/aarch64/pr94515-2.C
  56e1fb5ac93105ccd085e98d790ec76d  gcc/testsuite/g++.target/aarch64/pr95114.C
  716e0dc0f2b0b7fa20373a1a78ece033  gcc/testsuite/g++.target/aarch64/pr95726.C
! 1ce9a3af843eab0dca2dbb5193fb0db2  gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
  1649b9447d9bcb87e619e52bd2ad8119  gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
! 9c4fecbe2d2cee96685a3512c97d13a1  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 9bc4378bb4b7e82cfeba2d15e0421591  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme.exp
  3de0947a17512aedda9a0acc7bcb39ed  gcc/testsuite/g++.target/aarch64/sme/exceptions_1.C
  79243c6f16baddd2d73325ca3aa928e2  gcc/testsuite/g++.target/aarch64/sme/exceptions_2.C
  6617c08f1c35a7b00949b2a7c76d1e15  gcc/testsuite/g++.target/aarch64/sme/keyword_macros_1.C
  7c9f331f9af372aa80eabfedf84ae4d1  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_1.C
  7fce27ec45311cf4d170ad324de8da10  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_2.C
! c5a724ac5d50e2883deaaee052d9855e  gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
! f35ce73c8457468f115da361f25bc455  gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
! 39bf604f3d2280bd3c04473193fb26a5  gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
  a6360472eed92aa68d9de7e0dcbbc077  gcc/testsuite/g++.target/aarch64/sve/abd_1.C
! e1a3acb34dab385adec66961b6022416  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 70fa3921474649ba7eb56e21723e31a3  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
  a4694db6f43496d141f7d03b0bad5454  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.C
  c9bec53dca7f345d3812bc87a82ac56e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.h
  c264d7575a5c60660881b415fc9e52ba  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_2.C
--- 36768,36797 ----
  3dce24cbf6e8a9d6b104a5174b42ccf6  gcc/testsuite/g++.target/aarch64/pr109661-2.C
  af15d8508e94dffd343c693011e63fd4  gcc/testsuite/g++.target/aarch64/pr109661-3.C
  9b78f2399b3493ce846b6fb03c77ee6c  gcc/testsuite/g++.target/aarch64/pr109661-4.C
+ c30fa1a8e837444d0a3e1e6be628b06d  gcc/testsuite/g++.target/aarch64/pr116074.C
+ c8698b784efebd06777683e03d5bbfc7  gcc/testsuite/g++.target/aarch64/pr117048.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
! 3d79dd5ca8eb31355f11eb302971bd62  gcc/testsuite/g++.target/aarch64/pr94515-1.C
! 15940bdcafa90b150c18d16ff93419f1  gcc/testsuite/g++.target/aarch64/pr94515-2.C
  56e1fb5ac93105ccd085e98d790ec76d  gcc/testsuite/g++.target/aarch64/pr95114.C
  716e0dc0f2b0b7fa20373a1a78ece033  gcc/testsuite/g++.target/aarch64/pr95726.C
! 811eeb9a5c5b4481e4d6ff82a1e11e57  gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
  1649b9447d9bcb87e619e52bd2ad8119  gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
! 692f1917397dce7abb80ab8433546d09  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 6e3b3c98c4e43ee149b5414468dda77b  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme.exp
  3de0947a17512aedda9a0acc7bcb39ed  gcc/testsuite/g++.target/aarch64/sme/exceptions_1.C
  79243c6f16baddd2d73325ca3aa928e2  gcc/testsuite/g++.target/aarch64/sme/exceptions_2.C
  6617c08f1c35a7b00949b2a7c76d1e15  gcc/testsuite/g++.target/aarch64/sme/keyword_macros_1.C
  7c9f331f9af372aa80eabfedf84ae4d1  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_1.C
  7fce27ec45311cf4d170ad324de8da10  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_2.C
! d50d2632d11f285298dab758e5afed2c  gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
! f306fd9e340499b92901b7c7db96b401  gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
! 243903983ff26d8462ce1d4bf87d9b3d  gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
  a6360472eed92aa68d9de7e0dcbbc077  gcc/testsuite/g++.target/aarch64/sve/abd_1.C
! 5a99ffa00ad67719f89ed2f569ad46b3  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 7195a2cb2fbfeba70c8530ebfb309ff2  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
  a4694db6f43496d141f7d03b0bad5454  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.C
  c9bec53dca7f345d3812bc87a82ac56e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.h
  c264d7575a5c60660881b415fc9e52ba  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_2.C
*************** c618c140432439db6335a96f19594f3c  gcc/te
*** 34665,34671 ****
  0c928c97924422178666cd4bde39a47a  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/asrd_2.C
  428ee93be46b9776c30119306d6084d5  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/asrd_3.C
  28a29c3c10881ef8e6b6ae7c52fe8942  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/attributes_1.C
! 4ff6bf0656a891ec58da82ea4409ae9e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/attributes_2.C
  d9ff398f186161148a0964c0ca3544fd  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/cntb_pat.c
  3df9c708e938188843faf8ca7a1df4c8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/conversion_1.C
  5d6e37dfd6b22e3822381e6f179d8656  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/create2_1.C
--- 36801,36807 ----
  0c928c97924422178666cd4bde39a47a  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/asrd_2.C
  428ee93be46b9776c30119306d6084d5  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/asrd_3.C
  28a29c3c10881ef8e6b6ae7c52fe8942  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/attributes_1.C
! 4386a48672426c7b7b1a4feaac4e72db  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/attributes_2.C
  d9ff398f186161148a0964c0ca3544fd  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/cntb_pat.c
  3df9c708e938188843faf8ca7a1df4c8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/conversion_1.C
  5d6e37dfd6b22e3822381e6f179d8656  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/create2_1.C
*************** cd7682bd90a892784fc019e3e84ef480  gcc/te
*** 34692,34706 ****
  ee26ccb05d313a2a210ca66f5435de9e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get4_1.C
  80fec46112a1e3aa54175ac1fa6929ca  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get4_2.C
  e1aa0b4c7b2d19b8884dbe1e3cd6fb3c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gimplify_1.C
! 7c9bb3d0684b092962cca1aff7e408ca  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C
! 8149763dda87a9702db0a8660e5e42c1  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C
  bf079e3eef75eeeac3ff827b3a8624f0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_3.C
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_4.C
  8e22ba35c57dee2de3fb760d237e58d8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_1.C
  d28dd1409891eabe4b8db56809af8535  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_2.C
! 90c4caae69f11d70945900a8ac0c67d9  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_1.C
  2323815da83fe3b75dcd4e7e9e174f69  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_10.C
! 67f7897db03ad439dc5262840610a248  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_2.C
  aa5ae7dedc3137f2bc59209d71b89d2c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_3.C
  aca4d0c6e319097278c90dee3556a543  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_4.C
  fe57505c46b08e38df135a955ead2a35  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_5.C
--- 36828,36842 ----
  ee26ccb05d313a2a210ca66f5435de9e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get4_1.C
  80fec46112a1e3aa54175ac1fa6929ca  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get4_2.C
  e1aa0b4c7b2d19b8884dbe1e3cd6fb3c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gimplify_1.C
! db2ae8f63276334e3a7e0a10648b3c5f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C
! 308f3c240b5c210387e7254157288972  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C
  bf079e3eef75eeeac3ff827b3a8624f0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_3.C
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_4.C
  8e22ba35c57dee2de3fb760d237e58d8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_1.C
  d28dd1409891eabe4b8db56809af8535  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_2.C
! fd781106015aa6f32bb0ad12d1e80935  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_1.C
  2323815da83fe3b75dcd4e7e9e174f69  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_10.C
! 7b30fde3730816af5ad53763f001bd2f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_2.C
  aa5ae7dedc3137f2bc59209d71b89d2c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_3.C
  aca4d0c6e319097278c90dee3556a543  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_4.C
  fe57505c46b08e38df135a955ead2a35  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_5.C
*************** cdabe3aee66dacd2306a52f295e6ad65  gcc/te
*** 34774,34779 ****
--- 36910,36916 ----
  420dc885d52b3e17151a1b0a15ce1f69  gcc/testsuite/g++.target/aarch64/sve/const_pred_2.C
  2dba13f0e9fa8960c67039c6e7e63f04  gcc/testsuite/g++.target/aarch64/sve/const_pred_3.C
  2ff1d00daea48a3f7479dd34071b1ef8  gcc/testsuite/g++.target/aarch64/sve/const_pred_4.C
+ f515b18aeb1d66984b8b5d71e9fc0b3c  gcc/testsuite/g++.target/aarch64/sve/constexpr-add-1.C
  73cfacee85072786e0a2b61b2f86fde7  gcc/testsuite/g++.target/aarch64/sve/dup_sel_1.C
  6862e49f6ff7a5e747153281ab79e076  gcc/testsuite/g++.target/aarch64/sve/dup_sel_2.C
  3d2cb44e0de08181f655152208b361fb  gcc/testsuite/g++.target/aarch64/sve/dup_sel_3.C
*************** f3ce91773bd0b4a3127c481ccd50f20e  gcc/te
*** 34782,34789 ****
--- 36919,36929 ----
  9e6f261244b524db00958d47111eef62  gcc/testsuite/g++.target/aarch64/sve/dup_sel_6.C
  57a0aa7896383cbb0273342d58a4a7b5  gcc/testsuite/g++.target/aarch64/sve/max_1.C
  ab6c5e333d0a740ae5ecff69966813a2  gcc/testsuite/g++.target/aarch64/sve/min_1.C
+ 2ff8eb172904381922581e6d91f913e4  gcc/testsuite/g++.target/aarch64/sve/noncall-eh-fp-1.C
  6bb662ee32d75fad86cbbcc07aab9998  gcc/testsuite/g++.target/aarch64/sve/pr102252.C
  0dc60096927b240a4fb696311ad6b402  gcc/testsuite/g++.target/aarch64/sve/pr107920.C
+ 420c5e0492e7721ea27176c74cff65f5  gcc/testsuite/g++.target/aarch64/sve/pr116595.C
+ 48b79fc3f836bb02ceace04c37ddd7c4  gcc/testsuite/g++.target/aarch64/sve/pr119706.C
  29fcc7f7695fcab2e4779698100f3053  gcc/testsuite/g++.target/aarch64/sve/pr96974.C
  6c0e94c363caf9e62df35ea98b4918ed  gcc/testsuite/g++.target/aarch64/sve/pr98177-1.C
  e64000c150bb204c31dca884ee33dd4f  gcc/testsuite/g++.target/aarch64/sve/pr98177-2.C
*************** eb290283439217e61bf7146ea947386f  gcc/te
*** 34795,34839 ****
  221b0724e04f13318fe418921311ae33  gcc/testsuite/g++.target/aarch64/sve/tls_2.C
  a107043aa6d78c7f248ca1ffca6ac183  gcc/testsuite/g++.target/aarch64/sve/vcond_1.C
  aa928203aafdb1f6793fe73d77390fc9  gcc/testsuite/g++.target/aarch64/sve/vcond_1_run.C
! ea5d8d5501446dd496c6d4e48d4daa3a  gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 1ad0b299831e6087899f585d670f1b10  gcc/testsuite/g++.target/arm/arm.exp
  99b5cde1aa5ba8d3c40ce3af92ef40f5  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
  1be043d5daf902730f5c770ee4bbe8f1  gcc/testsuite/g++.target/arm/bti_thunk.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
! 6d63d1caa83914a419a43483efbf308d  gcc/testsuite/g++.target/arm/mve.exp
! 903873830d006192cee8a7147405dfab  gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
  173a3784153178b563544bb404ea5d2c  gcc/testsuite/g++.target/arm/mve/general-c++/vreinterpretq_1.C
  fefb1ea34abe2e49510cd8293f8c14e5  gcc/testsuite/g++.target/arm/no_unique_address_1.C
  bb7292912fa6d506586421d0df58412b  gcc/testsuite/g++.target/arm/no_unique_address_2.C
! 191b23294c5891b3d18d01e5979a706f  gcc/testsuite/g++.target/arm/pac-1.C
  4c06abe7b8d5bd183704907c3993392c  gcc/testsuite/g++.target/arm/pr102842.C
! 5d0bfb5484f8db2f1a2556bb0ea6394b  gcc/testsuite/g++.target/arm/pr103676.C
  d8845d0576030f586cc8563067a1c9ed  gcc/testsuite/g++.target/arm/pr107080.C
  86ce099311b8a462979885c1f82c41db  gcc/testsuite/g++.target/arm/pr81497.C
  c66ac2233f3efac56ec64b9294b3708d  gcc/testsuite/g++.target/arm/pr95726.C
  881bcc41183f756e0d7cbda13b2b51df  gcc/testsuite/g++.target/arm/pr99593.C
  af3c38f63117225abea203946d38310c  gcc/testsuite/g++.target/i386/avx-check.h
  0c5eaeccd7cb858b14466a66a9848484  gcc/testsuite/g++.target/i386/avx-os-support.h
! d01c52e5837b17bc9fa153504ea3aaff  gcc/testsuite/g++.target/i386/avx-pr54700-1.C
! a4d5da9937e99905b3690c88b7431aa7  gcc/testsuite/g++.target/i386/avx-pr54700-2.C
  16aa802b1a9f81b592b5893f84f37c44  gcc/testsuite/g++.target/i386/avx2-check.h
! 074d2a8f9ad1c4fb9c585d003bcc655f  gcc/testsuite/g++.target/i386/avx2-pr54700-1.C
! bb1656a836158ee012bbed4bc10d85f0  gcc/testsuite/g++.target/i386/avx2-pr54700-2.C
  734b3ce37270b7f5daf230629716c5c2  gcc/testsuite/g++.target/i386/avx512bw-pr96246-1.C
! 2caa88a24107fa33264fd116f453ae5e  gcc/testsuite/g++.target/i386/avx512bw-pr96246-2.C
  4a44f470ea24c20123902146bd5273ad  gcc/testsuite/g++.target/i386/avx512bw-pr98537-1.C
  3ec2a7fddbb432f8b259b0ada49c99a8  gcc/testsuite/g++.target/i386/avx512f-helper.h
  cbe0c3947d51802a4bf66ce01377fb64  gcc/testsuite/g++.target/i386/avx512f-pr96891-1.C
  c89ba9cfe468937652adb223c2fe88f9  gcc/testsuite/g++.target/i386/avx512fp16-vcondmn-minmax.C
  d5287c6ed2bebf01314526c64e9b26ba  gcc/testsuite/g++.target/i386/avx512fp16-vcondmn-vec.C
  5df96b365d4dc9fff3b4d57ee1d9f8e5  gcc/testsuite/g++.target/i386/avx512vl-pr100738-1.C
! ac447501e5a00129c3467a59a4c9c737  gcc/testsuite/g++.target/i386/avx512vl-pr54700-1a.C
! 7fca2d9a501da9a8639dc4c73aa19924  gcc/testsuite/g++.target/i386/avx512vl-pr54700-1b.C
! 9da4ce54e9e834858c102fdf8215f14b  gcc/testsuite/g++.target/i386/avx512vl-pr54700-2a.C
! f82cbff6e1260c85aa901dd233997fb8  gcc/testsuite/g++.target/i386/avx512vl-pr54700-2b.C
  c174ff7705931b0de0e317387956baa9  gcc/testsuite/g++.target/i386/avx512vl-pr96246-1.C
! 989085cee5b240a6124a1eb805392cfd  gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C
  4b4064fa7873d4cb7157ac2a64b60aa1  gcc/testsuite/g++.target/i386/avx512vl-pr98537-1.C
  6fb49c93f0095a942a2bf1dd276425d5  gcc/testsuite/g++.target/i386/avx512vl-pr98537-2.C
  faaf8cb88bea0613c5676fb7a19296ed  gcc/testsuite/g++.target/i386/bfloat_cpp_typecheck.C
--- 36935,36997 ----
  221b0724e04f13318fe418921311ae33  gcc/testsuite/g++.target/aarch64/sve/tls_2.C
  a107043aa6d78c7f248ca1ffca6ac183  gcc/testsuite/g++.target/aarch64/sve/vcond_1.C
  aa928203aafdb1f6793fe73d77390fc9  gcc/testsuite/g++.target/aarch64/sve/vcond_1_run.C
! 909fc314136664c317df5b6968da7f07  gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 2db1f141b171b343da3bcd8a1f111fd8  gcc/testsuite/g++.target/aarch64/vect-simd-clone-1.C
! f89c5da906414e7c52ffb7bb0ab2b800  gcc/testsuite/g++.target/aarch64/vect_cmp-1.C
! cd7f71199c7444b1ce9488ac14f59b43  gcc/testsuite/g++.target/arm/arm.exp
  99b5cde1aa5ba8d3c40ce3af92ef40f5  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
  1be043d5daf902730f5c770ee4bbe8f1  gcc/testsuite/g++.target/arm/bti_thunk.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
! 34056a6f91190556f714d2205e45e695  gcc/testsuite/g++.target/arm/mve.exp
! fbd0705656c7aac934e685df748ed167  gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
  173a3784153178b563544bb404ea5d2c  gcc/testsuite/g++.target/arm/mve/general-c++/vreinterpretq_1.C
  fefb1ea34abe2e49510cd8293f8c14e5  gcc/testsuite/g++.target/arm/no_unique_address_1.C
  bb7292912fa6d506586421d0df58412b  gcc/testsuite/g++.target/arm/no_unique_address_2.C
! f113072427101a2b7f160db112a1f54f  gcc/testsuite/g++.target/arm/pac-1.C
  4c06abe7b8d5bd183704907c3993392c  gcc/testsuite/g++.target/arm/pr102842.C
! 94ea7d9cba55dd53f98f172e81e0c7ad  gcc/testsuite/g++.target/arm/pr103676.C
  d8845d0576030f586cc8563067a1c9ed  gcc/testsuite/g++.target/arm/pr107080.C
+ 98e5c3b96316f917c107a3470b80e1ac  gcc/testsuite/g++.target/arm/pr115485.C
  86ce099311b8a462979885c1f82c41db  gcc/testsuite/g++.target/arm/pr81497.C
  c66ac2233f3efac56ec64b9294b3708d  gcc/testsuite/g++.target/arm/pr95726.C
  881bcc41183f756e0d7cbda13b2b51df  gcc/testsuite/g++.target/arm/pr99593.C
+ d855fe9c5039d607e334ca569cafc197  gcc/testsuite/g++.target/gcn/exceptions-bad_cast-1.C
+ 2e727ce0cadc9820dc0a0363f1cc76b1  gcc/testsuite/g++.target/gcn/exceptions-bad_cast-2.C
+ bc4a29c61f59519e4726ef2a83ac1f68  gcc/testsuite/g++.target/gcn/exceptions-bad_cast-2_-mfake-exceptions.C
+ 64a8ea812c74bfac64d9d78df041104d  gcc/testsuite/g++.target/gcn/exceptions-bad_cast-3.C
+ d02392cd1a56306516b8b223b24d91b7  gcc/testsuite/g++.target/gcn/exceptions-pr118794-1.C
+ 18811e13a53410af4e1de7ebd6c4db2c  gcc/testsuite/g++.target/gcn/exceptions-pr118794-1_-mfake-exceptions.C
+ f99409e2780aca9ffc3ba3b9dbfcaef8  gcc/testsuite/g++.target/gcn/exceptions-throw-1.C
+ 5c1debe15761672c5855a303c5cbe73d  gcc/testsuite/g++.target/gcn/exceptions-throw-2.C
+ a3d7b988359ec430778c2ee9cbba9dfd  gcc/testsuite/g++.target/gcn/exceptions-throw-2_-mfake-exceptions.C
+ cdcbe745705dbecf46bdf64b92a1b80b  gcc/testsuite/g++.target/gcn/exceptions-throw-3.C
+ 2990a21b362c09bdbc88e56f1ebc6655  gcc/testsuite/g++.target/gcn/gcn.exp
+ 9a8f1292f181726bb854767fb26dcec1  gcc/testsuite/g++.target/gcn/pr119692-1-1.C
  af3c38f63117225abea203946d38310c  gcc/testsuite/g++.target/i386/avx-check.h
  0c5eaeccd7cb858b14466a66a9848484  gcc/testsuite/g++.target/i386/avx-os-support.h
! ad00a8cc62ecfefcf40ffdd913683d6a  gcc/testsuite/g++.target/i386/avx-pr116925.C
! 5365846f323b41fabfdd7b839c4f74b2  gcc/testsuite/g++.target/i386/avx-pr54700-1.C
! 487bc7de1d2e2f3eb58c9cc6090c58df  gcc/testsuite/g++.target/i386/avx-pr54700-2.C
  16aa802b1a9f81b592b5893f84f37c44  gcc/testsuite/g++.target/i386/avx2-check.h
! e7211c828135e4ab4ce9ebe66058eea0  gcc/testsuite/g++.target/i386/avx2-pr115517.C
! ca0bd49ed993de454aefcc3d00bc2b01  gcc/testsuite/g++.target/i386/avx2-pr54700-1.C
! 79f312558051b9ebb3cdeaed37f41da0  gcc/testsuite/g++.target/i386/avx2-pr54700-2.C
! c20792613e2de72bf223a9deb9981150  gcc/testsuite/g++.target/i386/avx512-pr115517.C
  734b3ce37270b7f5daf230629716c5c2  gcc/testsuite/g++.target/i386/avx512bw-pr96246-1.C
! b55cebf22ef53505e15f00d8c547efc0  gcc/testsuite/g++.target/i386/avx512bw-pr96246-2.C
  4a44f470ea24c20123902146bd5273ad  gcc/testsuite/g++.target/i386/avx512bw-pr98537-1.C
  3ec2a7fddbb432f8b259b0ada49c99a8  gcc/testsuite/g++.target/i386/avx512f-helper.h
  cbe0c3947d51802a4bf66ce01377fb64  gcc/testsuite/g++.target/i386/avx512f-pr96891-1.C
  c89ba9cfe468937652adb223c2fe88f9  gcc/testsuite/g++.target/i386/avx512fp16-vcondmn-minmax.C
  d5287c6ed2bebf01314526c64e9b26ba  gcc/testsuite/g++.target/i386/avx512fp16-vcondmn-vec.C
  5df96b365d4dc9fff3b4d57ee1d9f8e5  gcc/testsuite/g++.target/i386/avx512vl-pr100738-1.C
! 7e4ea52cd34a29e3d425ea2aa28e9524  gcc/testsuite/g++.target/i386/avx512vl-pr54700-1a.C
! 431e941af19fe41fac02bf86e19ca008  gcc/testsuite/g++.target/i386/avx512vl-pr54700-1b.C
! 9b3f60f3323115924ad2c159a8a8871e  gcc/testsuite/g++.target/i386/avx512vl-pr54700-2a.C
! 0331177117f2211041c614a443d21f28  gcc/testsuite/g++.target/i386/avx512vl-pr54700-2b.C
  c174ff7705931b0de0e317387956baa9  gcc/testsuite/g++.target/i386/avx512vl-pr96246-1.C
! c43ec17ecd6eea23639c975ca544d15b  gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C
  4b4064fa7873d4cb7157ac2a64b60aa1  gcc/testsuite/g++.target/i386/avx512vl-pr98537-1.C
  6fb49c93f0095a942a2bf1dd276425d5  gcc/testsuite/g++.target/i386/avx512vl-pr98537-2.C
  faaf8cb88bea0613c5676fb7a19296ed  gcc/testsuite/g++.target/i386/bfloat_cpp_typecheck.C
*************** ce8e2501180e952788ad7bfbfebcd617  gcc/te
*** 34853,34862 ****
  d8ba4090976aa85f574f622bc3ac9d1f  gcc/testsuite/g++.target/i386/float16-1.C
  9925d7b9c6c837b57951d0f9591f8d67  gcc/testsuite/g++.target/i386/float16-2.C
  4e150fddd678b3b96442fa875ac8becb  gcc/testsuite/g++.target/i386/float16-3.C
! c038ffe80081ef9b3b64300150bd14b9  gcc/testsuite/g++.target/i386/i386.exp
  f23b91fd4df934b4b8cb89c14e082b05  gcc/testsuite/g++.target/i386/interference.C
  0ec10c6dd8c46db7332b15201fba84ba  gcc/testsuite/g++.target/i386/m128-check.h
  a1f73425439294ed2e5c470eb6a67f31  gcc/testsuite/g++.target/i386/m256-check.h
  d9283642c1e353810c049d439e8f3c60  gcc/testsuite/g++.target/i386/mv1.C
  c996cc7c2a4c7d02d3a6fcb89d3bc8db  gcc/testsuite/g++.target/i386/mv10.C
  5dc72e87fb3dc9a6c73b652710d87007  gcc/testsuite/g++.target/i386/mv11.C
--- 37011,37021 ----
  d8ba4090976aa85f574f622bc3ac9d1f  gcc/testsuite/g++.target/i386/float16-1.C
  9925d7b9c6c837b57951d0f9591f8d67  gcc/testsuite/g++.target/i386/float16-2.C
  4e150fddd678b3b96442fa875ac8becb  gcc/testsuite/g++.target/i386/float16-3.C
! 13f5caf607c95321385bf38c2c038cc4  gcc/testsuite/g++.target/i386/i386.exp
  f23b91fd4df934b4b8cb89c14e082b05  gcc/testsuite/g++.target/i386/interference.C
  0ec10c6dd8c46db7332b15201fba84ba  gcc/testsuite/g++.target/i386/m128-check.h
  a1f73425439294ed2e5c470eb6a67f31  gcc/testsuite/g++.target/i386/m256-check.h
+ ae8574e23abf3d9af1504b3bec6f9ec6  gcc/testsuite/g++.target/i386/mangling-alias1.C
  d9283642c1e353810c049d439e8f3c60  gcc/testsuite/g++.target/i386/mv1.C
  c996cc7c2a4c7d02d3a6fcb89d3bc8db  gcc/testsuite/g++.target/i386/mv10.C
  5dc72e87fb3dc9a6c73b652710d87007  gcc/testsuite/g++.target/i386/mv11.C
*************** d7d81744846ecefe8f7677db1eb870be  gcc/te
*** 34866,34872 ****
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! f5cb04bcf2fd8009dd6e02d7537d09c9  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
--- 37025,37031 ----
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! b1a1a720453738aacc7a693bb2965f80  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
*************** bc255ba4628b94d5377f0ba915ad26da  gcc/te
*** 34879,34911 ****
  3d9d0eab236b8df9ede7facb39d0db68  gcc/testsuite/g++.target/i386/mv25.C
  c3abd0fb44ca490064aaa6988814d40c  gcc/testsuite/g++.target/i386/mv26.C
  203c2fb05767e713a362682a2dcedfc7  gcc/testsuite/g++.target/i386/mv27.C
! 015182fced49b5ec2160104b1e1fcfd5  gcc/testsuite/g++.target/i386/mv28.C
  f1dcd0f047238a664c71844662594d0b  gcc/testsuite/g++.target/i386/mv29.C
  bad9a677892adffe2c45653797aad55c  gcc/testsuite/g++.target/i386/mv3.C
  8e16cb4ef8b3ee3b728e21112c7331d1  gcc/testsuite/g++.target/i386/mv30.C
  6c2437562ef96defbdcf21aa49f5676f  gcc/testsuite/g++.target/i386/mv31.C
! 1bfb9714d97d8fcf6000bd7c6408fb63  gcc/testsuite/g++.target/i386/mv32.C
  253207ecb3f4d04076efa9253026fa4c  gcc/testsuite/g++.target/i386/mv4.C
  dc39143004995c38b524d1b929c9c96c  gcc/testsuite/g++.target/i386/mv5.C
  01094409b78d48ec67bbf367448ecc93  gcc/testsuite/g++.target/i386/mv6.C
  3b58c2bbe7b4b5baffcd354353b6daef  gcc/testsuite/g++.target/i386/mv7.C
  c2d5d87b3488ab338dcccb9091181331  gcc/testsuite/g++.target/i386/mv8.C
  95cfb2367a4c0ee22bbee8a3f260ef2f  gcc/testsuite/g++.target/i386/mv9.C
! 4eea29b6b7fb566bfa08715f978dc08b  gcc/testsuite/g++.target/i386/mvc1.C
  d6311a7425b0ffbce5c97b4589a89b54  gcc/testsuite/g++.target/i386/mvc2.C
  3d6e618a583f6dcb9bd35e6148518988  gcc/testsuite/g++.target/i386/mvc3.C
! 4b58a8b362895e2d3227500db9f7df3f  gcc/testsuite/g++.target/i386/mvc4.C
  f54715b69e94d57745e9643d09b61df1  gcc/testsuite/g++.target/i386/part-vect-vcondhf.C
  9a0d428fd560d4c3147d5fbc1f53faf7  gcc/testsuite/g++.target/i386/pr100581.C
! e0917eeb573b58e334ffa0538638b3a0  gcc/testsuite/g++.target/i386/pr100637-1b.C
! b0cba5b3c1e414b000bad882628ff2ed  gcc/testsuite/g++.target/i386/pr100637-1w.C
  a277103a707b6f5b5719538a812d00f4  gcc/testsuite/g++.target/i386/pr100738-1.C
! 1c0fbaabc2aefc10da9582b80f11789c  gcc/testsuite/g++.target/i386/pr100885.C
  a1f1d426b1b50862a624c700e26cea03  gcc/testsuite/g++.target/i386/pr101023a.C
  06163cba2fd3bcf61e06ef2a745befdb  gcc/testsuite/g++.target/i386/pr101023b.C
  10ea5542036caa6579f738f91b2b2e45  gcc/testsuite/g++.target/i386/pr101180.C
  63229803684ae696a4d865ddf1758e61  gcc/testsuite/g++.target/i386/pr102024.C
! 945955607a22f7b849c624a91c2f5c9d  gcc/testsuite/g++.target/i386/pr102166.C
  186a4f48c778c8bfd308076ed5277d77  gcc/testsuite/g++.target/i386/pr102295.C
  6d6c399b53fe1c3078aa132a559fe2ab  gcc/testsuite/g++.target/i386/pr102548.C
  ebe6429ff62615172a441fe393a00b47  gcc/testsuite/g++.target/i386/pr102566-1.C
--- 37038,37070 ----
  3d9d0eab236b8df9ede7facb39d0db68  gcc/testsuite/g++.target/i386/mv25.C
  c3abd0fb44ca490064aaa6988814d40c  gcc/testsuite/g++.target/i386/mv26.C
  203c2fb05767e713a362682a2dcedfc7  gcc/testsuite/g++.target/i386/mv27.C
! 40932b515fb9f24850535ab3021f3da7  gcc/testsuite/g++.target/i386/mv28.C
  f1dcd0f047238a664c71844662594d0b  gcc/testsuite/g++.target/i386/mv29.C
  bad9a677892adffe2c45653797aad55c  gcc/testsuite/g++.target/i386/mv3.C
  8e16cb4ef8b3ee3b728e21112c7331d1  gcc/testsuite/g++.target/i386/mv30.C
  6c2437562ef96defbdcf21aa49f5676f  gcc/testsuite/g++.target/i386/mv31.C
! 7ad5e74b4e62aeee372128b50434de84  gcc/testsuite/g++.target/i386/mv32.C
  253207ecb3f4d04076efa9253026fa4c  gcc/testsuite/g++.target/i386/mv4.C
  dc39143004995c38b524d1b929c9c96c  gcc/testsuite/g++.target/i386/mv5.C
  01094409b78d48ec67bbf367448ecc93  gcc/testsuite/g++.target/i386/mv6.C
  3b58c2bbe7b4b5baffcd354353b6daef  gcc/testsuite/g++.target/i386/mv7.C
  c2d5d87b3488ab338dcccb9091181331  gcc/testsuite/g++.target/i386/mv8.C
  95cfb2367a4c0ee22bbee8a3f260ef2f  gcc/testsuite/g++.target/i386/mv9.C
! 563c9aefd1fd3be06389622e7e8a4a9e  gcc/testsuite/g++.target/i386/mvc1.C
  d6311a7425b0ffbce5c97b4589a89b54  gcc/testsuite/g++.target/i386/mvc2.C
  3d6e618a583f6dcb9bd35e6148518988  gcc/testsuite/g++.target/i386/mvc3.C
! 8233484f02207bcc9618367f9d03e34f  gcc/testsuite/g++.target/i386/mvc4.C
  f54715b69e94d57745e9643d09b61df1  gcc/testsuite/g++.target/i386/part-vect-vcondhf.C
  9a0d428fd560d4c3147d5fbc1f53faf7  gcc/testsuite/g++.target/i386/pr100581.C
! 2e7ab43c2f69e22aef3fd7a3f2d75def  gcc/testsuite/g++.target/i386/pr100637-1b.C
! 04ec71677091cfa2016522b69e05f42a  gcc/testsuite/g++.target/i386/pr100637-1w.C
  a277103a707b6f5b5719538a812d00f4  gcc/testsuite/g++.target/i386/pr100738-1.C
! 1a346dfbbf9839d8667ff2f90a9fc20b  gcc/testsuite/g++.target/i386/pr100885.C
  a1f1d426b1b50862a624c700e26cea03  gcc/testsuite/g++.target/i386/pr101023a.C
  06163cba2fd3bcf61e06ef2a745befdb  gcc/testsuite/g++.target/i386/pr101023b.C
  10ea5542036caa6579f738f91b2b2e45  gcc/testsuite/g++.target/i386/pr101180.C
  63229803684ae696a4d865ddf1758e61  gcc/testsuite/g++.target/i386/pr102024.C
! 35540fb3df76c3a6d1fe564203535943  gcc/testsuite/g++.target/i386/pr102166.C
  186a4f48c778c8bfd308076ed5277d77  gcc/testsuite/g++.target/i386/pr102295.C
  6d6c399b53fe1c3078aa132a559fe2ab  gcc/testsuite/g++.target/i386/pr102548.C
  ebe6429ff62615172a441fe393a00b47  gcc/testsuite/g++.target/i386/pr102566-1.C
*************** e7c4ad8e3b4d2a6588c231359cacaffb  gcc/te
*** 34920,34929 ****
  5bf0e7dd3443f6ba12f2fc4e9513d0d5  gcc/testsuite/g++.target/i386/pr102639.C
  2a03baff08b5b7bdeb8d3633c49032bb  gcc/testsuite/g++.target/i386/pr103012.C
  d14b3d4a9b5fcacba2b980352b05c8e3  gcc/testsuite/g++.target/i386/pr103696.C
! e15d8bcd429002b90cd8c1aedf71247c  gcc/testsuite/g++.target/i386/pr103750-fwprop-1.C
  a87febe2b07ccee6b99d32890b389fd3  gcc/testsuite/g++.target/i386/pr103861-1-sse4.C
  37faebe0845bea899c8c08c800497d7a  gcc/testsuite/g++.target/i386/pr103861-1-xop.C
! cb51cbf5595e7107c9dcac8259bccec4  gcc/testsuite/g++.target/i386/pr103861-1.C
  0621f08ee0ccea43d3165f4cbee54aa3  gcc/testsuite/g++.target/i386/pr103973-1.C
  9b42fb5b27cfa547195c05eb253364a2  gcc/testsuite/g++.target/i386/pr103973-10.C
  ae52cea3b81b61d3e836bd051d8fd995  gcc/testsuite/g++.target/i386/pr103973-11.C
--- 37079,37088 ----
  5bf0e7dd3443f6ba12f2fc4e9513d0d5  gcc/testsuite/g++.target/i386/pr102639.C
  2a03baff08b5b7bdeb8d3633c49032bb  gcc/testsuite/g++.target/i386/pr103012.C
  d14b3d4a9b5fcacba2b980352b05c8e3  gcc/testsuite/g++.target/i386/pr103696.C
! d0389546e76e0d125a747ec062584763  gcc/testsuite/g++.target/i386/pr103750-fwprop-1.C
  a87febe2b07ccee6b99d32890b389fd3  gcc/testsuite/g++.target/i386/pr103861-1-sse4.C
  37faebe0845bea899c8c08c800497d7a  gcc/testsuite/g++.target/i386/pr103861-1-xop.C
! 647572387f8f768cf1afdecc5deeb027  gcc/testsuite/g++.target/i386/pr103861-1.C
  0621f08ee0ccea43d3165f4cbee54aa3  gcc/testsuite/g++.target/i386/pr103973-1.C
  9b42fb5b27cfa547195c05eb253364a2  gcc/testsuite/g++.target/i386/pr103973-10.C
  ae52cea3b81b61d3e836bd051d8fd995  gcc/testsuite/g++.target/i386/pr103973-11.C
*************** a180acec30b50a433b12979e550fdfba  gcc/te
*** 34946,34973 ****
  a87c63cefd62030b99bd90bcd75c66f2  gcc/testsuite/g++.target/i386/pr103973-9.C
  528fa6bfe03c4eae15918407205bb139  gcc/testsuite/g++.target/i386/pr104533.C
  e22bf5b2b8a89ad669b8340531ba8f41  gcc/testsuite/g++.target/i386/pr104540.C
! 54c71772157350cf9e34459b4fae5d2b  gcc/testsuite/g++.target/i386/pr105593.C
! af5455e94a9a32cc87a26feeea2d2288  gcc/testsuite/g++.target/i386/pr105638.C
! 2764c2246b3d183e94097026d61a69a1  gcc/testsuite/g++.target/i386/pr105953.C
  b745a307c6018d88262928962e2684e9  gcc/testsuite/g++.target/i386/pr105980.C
  8aa5b61e36e8dac3c3e9d70c6f0edadc  gcc/testsuite/g++.target/i386/pr106180-1.C
  8b43a5abf835a65b01bede55be8dd67a  gcc/testsuite/g++.target/i386/pr106627.C
  e10a0652aff7df3b5d31aabc5b83fc4e  gcc/testsuite/g++.target/i386/pr106875.C
  591a879661c63273581e832f22c0f96e  gcc/testsuite/g++.target/i386/pr107404.C
  67d8378f149029e8703f825a6227065a  gcc/testsuite/g++.target/i386/pr108711.C
  198bde5a37731f00084d791cde389e8b  gcc/testsuite/g++.target/i386/pr108934.C
  2a4ccb802022f75d63eec8145d6f1f29  gcc/testsuite/g++.target/i386/pr109676.C
! 393e85e87cdfc4b9fb1ff5c320ec0d91  gcc/testsuite/g++.target/i386/pr110170.C
  a47169fc44b57b7b3d6ec05df74c336a  gcc/testsuite/g++.target/i386/pr110792.C
  ad4c12cbdeae1f798d84fc1e51955bc4  gcc/testsuite/g++.target/i386/pr111497.C
  51556317586878910157bab09d18703d  gcc/testsuite/g++.target/i386/pr111822.C
! f0bd5d5c6a67d4e72ffa0abde025c525  gcc/testsuite/g++.target/i386/pr112443.C
  5d6b65e74ad6d774f3c3ba927501e59d  gcc/testsuite/g++.target/i386/pr112824-1.C
  5571ccf83a637118ffbd77008f68ffc1  gcc/testsuite/g++.target/i386/pr112904.C
! 625edab04fa23d61cbbe8b32e8624b41  gcc/testsuite/g++.target/i386/pr113560.C
  aa1fa5c91fdecbdc2a47df1fff1bf867  gcc/testsuite/g++.target/i386/pr114187.C
  c0a91cb95c28284467d6172e3d18f9a2  gcc/testsuite/g++.target/i386/pr114810.C
  3ccb97fa4243cd6093fd83a5bf2d35fb  gcc/testsuite/g++.target/i386/pr115351.C
  55fb67abf6517f92b1a0240d2c06b5c5  gcc/testsuite/g++.target/i386/pr35513-1.C
  14dde546e4eefec7aa6d1ac41261cb16  gcc/testsuite/g++.target/i386/pr35513-2.C
  1c706f97b6d93c0124dc4a203c98f6d2  gcc/testsuite/g++.target/i386/pr57362.C
--- 37105,37142 ----
  a87c63cefd62030b99bd90bcd75c66f2  gcc/testsuite/g++.target/i386/pr103973-9.C
  528fa6bfe03c4eae15918407205bb139  gcc/testsuite/g++.target/i386/pr104533.C
  e22bf5b2b8a89ad669b8340531ba8f41  gcc/testsuite/g++.target/i386/pr104540.C
! 798d58f5b3cfe36c5b39a846e77298ac  gcc/testsuite/g++.target/i386/pr105593.C
! dbe620f93530bbd32a8f37b08b960088  gcc/testsuite/g++.target/i386/pr105638.C
! 906a2106cb441b20db0ae0b7bff975cd  gcc/testsuite/g++.target/i386/pr105953.C
  b745a307c6018d88262928962e2684e9  gcc/testsuite/g++.target/i386/pr105980.C
  8aa5b61e36e8dac3c3e9d70c6f0edadc  gcc/testsuite/g++.target/i386/pr106180-1.C
  8b43a5abf835a65b01bede55be8dd67a  gcc/testsuite/g++.target/i386/pr106627.C
  e10a0652aff7df3b5d31aabc5b83fc4e  gcc/testsuite/g++.target/i386/pr106875.C
  591a879661c63273581e832f22c0f96e  gcc/testsuite/g++.target/i386/pr107404.C
+ 9056cfcb67fde8dc959682d76365d9e8  gcc/testsuite/g++.target/i386/pr107563-a.C
+ 431deabcaf4118339f2e463337ec1e78  gcc/testsuite/g++.target/i386/pr107563-b.C
  67d8378f149029e8703f825a6227065a  gcc/testsuite/g++.target/i386/pr108711.C
  198bde5a37731f00084d791cde389e8b  gcc/testsuite/g++.target/i386/pr108934.C
  2a4ccb802022f75d63eec8145d6f1f29  gcc/testsuite/g++.target/i386/pr109676.C
! af4d69efa38e1aeea2d205f4d3797020  gcc/testsuite/g++.target/i386/pr110170.C
  a47169fc44b57b7b3d6ec05df74c336a  gcc/testsuite/g++.target/i386/pr110792.C
  ad4c12cbdeae1f798d84fc1e51955bc4  gcc/testsuite/g++.target/i386/pr111497.C
  51556317586878910157bab09d18703d  gcc/testsuite/g++.target/i386/pr111822.C
! fd59bd55c8af155357d422bd60744790  gcc/testsuite/g++.target/i386/pr112443.C
  5d6b65e74ad6d774f3c3ba927501e59d  gcc/testsuite/g++.target/i386/pr112824-1.C
  5571ccf83a637118ffbd77008f68ffc1  gcc/testsuite/g++.target/i386/pr112904.C
! 2d12346b9d876784bbcc5cc97c19fd9f  gcc/testsuite/g++.target/i386/pr113560.C
  aa1fa5c91fdecbdc2a47df1fff1bf867  gcc/testsuite/g++.target/i386/pr114187.C
  c0a91cb95c28284467d6172e3d18f9a2  gcc/testsuite/g++.target/i386/pr114810.C
  3ccb97fa4243cd6093fd83a5bf2d35fb  gcc/testsuite/g++.target/i386/pr115351.C
+ 93554b42645208a5ec6f23e871dd36d6  gcc/testsuite/g++.target/i386/pr115982.C
+ e84930e3a4494e01d92931359babe0e9  gcc/testsuite/g++.target/i386/pr116275-2.C
+ 3eacd4d39a73ed034e4f340cd3d71117  gcc/testsuite/g++.target/i386/pr116275.C
+ 9a1806e19845666b8547ae3d2af626e5  gcc/testsuite/g++.target/i386/pr116896-1.C
+ b74251af1154060812e45ff5697e903e  gcc/testsuite/g++.target/i386/pr116896-2.C
+ 9e6057d653e40c53fabdac3cf7cf9dfd  gcc/testsuite/g++.target/i386/pr116896-3.C
+ c6fc9957abb94d73bf6685e341312513  gcc/testsuite/g++.target/i386/pr118068.C
+ 309d3ebda65ef0d79e21d0a9c0310055  gcc/testsuite/g++.target/i386/pr119689.C
  55fb67abf6517f92b1a0240d2c06b5c5  gcc/testsuite/g++.target/i386/pr35513-1.C
  14dde546e4eefec7aa6d1ac41261cb16  gcc/testsuite/g++.target/i386/pr35513-2.C
  1c706f97b6d93c0124dc4a203c98f6d2  gcc/testsuite/g++.target/i386/pr57362.C
*************** e8a006e5050e191010d1a6ecff4873a3  gcc/te
*** 34976,34983 ****
  a9182e6d928d363b56a91bded6231bb9  gcc/testsuite/g++.target/i386/pr59492.C
  43859c370dc310a07fe27e045648c6cd  gcc/testsuite/g++.target/i386/pr61747.C
  012e05b29975321373f213709028cdd2  gcc/testsuite/g++.target/i386/pr79173-1.C
! 4ec9a5753441130dc533fd918508a7c7  gcc/testsuite/g++.target/i386/pr80566-1.C
! 86d74fadde941f269d85c201b35ecf20  gcc/testsuite/g++.target/i386/pr80566-2.C
  819ecf07fe897248c2153cdb9dee2292  gcc/testsuite/g++.target/i386/pr82625.C
  1356c14cb02d7fb590d2c63c2aabdd63  gcc/testsuite/g++.target/i386/pr85048.C
  595e95a52a8e7241531daede25387052  gcc/testsuite/g++.target/i386/pr85329-2.C
--- 37145,37152 ----
  a9182e6d928d363b56a91bded6231bb9  gcc/testsuite/g++.target/i386/pr59492.C
  43859c370dc310a07fe27e045648c6cd  gcc/testsuite/g++.target/i386/pr61747.C
  012e05b29975321373f213709028cdd2  gcc/testsuite/g++.target/i386/pr79173-1.C
! 92bfd1274dc31d83a99a0adf29a6639f  gcc/testsuite/g++.target/i386/pr80566-1.C
! 416c15961210911f05403163d661a2e5  gcc/testsuite/g++.target/i386/pr80566-2.C
  819ecf07fe897248c2153cdb9dee2292  gcc/testsuite/g++.target/i386/pr82625.C
  1356c14cb02d7fb590d2c63c2aabdd63  gcc/testsuite/g++.target/i386/pr85048.C
  595e95a52a8e7241531daede25387052  gcc/testsuite/g++.target/i386/pr85329-2.C
*************** a9182e6d928d363b56a91bded6231bb9  gcc/te
*** 34986,34996 ****
  5721d1e0778ed4e6cfb2c0ec826eac4c  gcc/testsuite/g++.target/i386/pr85334-2.C
  e39ce20fb6740b051ab3ab6677fa1d98  gcc/testsuite/g++.target/i386/pr87299-1.C
  db4e39ddff19e7c7c94ce6bcf3f8d05c  gcc/testsuite/g++.target/i386/pr87299-2.C
! 64e5aae7c0b5f4496c111c1ea220cc12  gcc/testsuite/g++.target/i386/pr88152.C
  aed6e5e76d30c7296815bcff247c5b1d  gcc/testsuite/g++.target/i386/pr88587.C
  69ffb8145d9e913332fee168bb43ffef  gcc/testsuite/g++.target/i386/pr88636.C
  8f56043123a282d1dc4be518a19a6696  gcc/testsuite/g++.target/i386/pr88785.C
! 1ddc9bacc27eb449c9bc8f0b3034db52  gcc/testsuite/g++.target/i386/pr88998.C
  8ee9a51e8ef3a8d3fafbe808d7afe49b  gcc/testsuite/g++.target/i386/pr89105.C
  a77db4384baaa525af8995a7932cd034  gcc/testsuite/g++.target/i386/pr89316.C
  e42b1e4bae5852d02674a9f5a44931b3  gcc/testsuite/g++.target/i386/pr89630.C
--- 37155,37165 ----
  5721d1e0778ed4e6cfb2c0ec826eac4c  gcc/testsuite/g++.target/i386/pr85334-2.C
  e39ce20fb6740b051ab3ab6677fa1d98  gcc/testsuite/g++.target/i386/pr87299-1.C
  db4e39ddff19e7c7c94ce6bcf3f8d05c  gcc/testsuite/g++.target/i386/pr87299-2.C
! d6c98eed6550850a6c47b9d0c925d50c  gcc/testsuite/g++.target/i386/pr88152.C
  aed6e5e76d30c7296815bcff247c5b1d  gcc/testsuite/g++.target/i386/pr88587.C
  69ffb8145d9e913332fee168bb43ffef  gcc/testsuite/g++.target/i386/pr88636.C
  8f56043123a282d1dc4be518a19a6696  gcc/testsuite/g++.target/i386/pr88785.C
! a4bcb0e18f608c3da70b0dadcdcb1bf8  gcc/testsuite/g++.target/i386/pr88998.C
  8ee9a51e8ef3a8d3fafbe808d7afe49b  gcc/testsuite/g++.target/i386/pr89105.C
  a77db4384baaa525af8995a7932cd034  gcc/testsuite/g++.target/i386/pr89316.C
  e42b1e4bae5852d02674a9f5a44931b3  gcc/testsuite/g++.target/i386/pr89630.C
*************** dfc04a3ac4026ae2ece42bfe273b5aff  gcc/te
*** 35004,35015 ****
  776455f9c7adca8d6d30440fad19263f  gcc/testsuite/g++.target/i386/pr92354.C
  b36d1f7d78bc796a0f4968f5bb51711a  gcc/testsuite/g++.target/i386/pr92788.C
  ce4ef4a52cb8cca61d3ad37ccd43c5c3  gcc/testsuite/g++.target/i386/pr93828.C
! 706d6ce9a5089e7aa1faffbd83f7723b  gcc/testsuite/g++.target/i386/pr94046-1.C
! 9d95623392a0cfa69554963dbae983f2  gcc/testsuite/g++.target/i386/pr94046-2.C
  ba6d7ab9bcf9d2c19d1b8ac3ed405800  gcc/testsuite/g++.target/i386/pr94185.C
  bb6e47e037c6eb9a5503116730814d59  gcc/testsuite/g++.target/i386/pr94866.C
  64e33a95d43ea5ee0af2cfdcb318bf00  gcc/testsuite/g++.target/i386/pr95229.C
! bdb455b2331ad2932c1fc9e92219df39  gcc/testsuite/g++.target/i386/pr97054.C
  d000551f0144506c6c541d980aa84d65  gcc/testsuite/g++.target/i386/pr98218-1.C
  afb8b6ab7d54fa8eab8865a52a46caa4  gcc/testsuite/g++.target/i386/pr98335.C
  12b9e7025b922a770edbd85b09d3b099  gcc/testsuite/g++.target/i386/pr98847.C
--- 37173,37184 ----
  776455f9c7adca8d6d30440fad19263f  gcc/testsuite/g++.target/i386/pr92354.C
  b36d1f7d78bc796a0f4968f5bb51711a  gcc/testsuite/g++.target/i386/pr92788.C
  ce4ef4a52cb8cca61d3ad37ccd43c5c3  gcc/testsuite/g++.target/i386/pr93828.C
! 499a3e66f4cfca59ba37f6b52cbffe74  gcc/testsuite/g++.target/i386/pr94046-1.C
! d15d097d67eff11d8d0db791234f8461  gcc/testsuite/g++.target/i386/pr94046-2.C
  ba6d7ab9bcf9d2c19d1b8ac3ed405800  gcc/testsuite/g++.target/i386/pr94185.C
  bb6e47e037c6eb9a5503116730814d59  gcc/testsuite/g++.target/i386/pr94866.C
  64e33a95d43ea5ee0af2cfdcb318bf00  gcc/testsuite/g++.target/i386/pr95229.C
! b4fc947f8f52100b6fa7991d63b5591e  gcc/testsuite/g++.target/i386/pr97054.C
  d000551f0144506c6c541d980aa84d65  gcc/testsuite/g++.target/i386/pr98218-1.C
  afb8b6ab7d54fa8eab8865a52a46caa4  gcc/testsuite/g++.target/i386/pr98335.C
  12b9e7025b922a770edbd85b09d3b099  gcc/testsuite/g++.target/i386/pr98847.C
*************** eafc363e633aef7542e621d7ecaa914e  gcc/te
*** 35017,35026 ****
  3660db29974db1f63f1a1f458c8894db  gcc/testsuite/g++.target/i386/pr99679-1.C
  b3fdfe2866e1905292894d815f1fa291  gcc/testsuite/g++.target/i386/pr99679-2.C
  a621b799eff193996043d9d5462e5c27  gcc/testsuite/g++.target/i386/sse4_1-check.h
! 821d1f6cc7812ffc5220fc45c484c00f  gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C
! 05e47f652ea4bc7c8df9bae20aaaa2b4  gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C
  6d0d9132ecd5c558bd1ec20dcee32d5d  gcc/testsuite/g++.target/i386/vec-tmpl1.C
  d4dcded6122bb77c0450fd18568c030b  gcc/testsuite/g++.target/i386/vect-bfloat16-1.C
  8df5f1183de744dc2a3a0c11278caec6  gcc/testsuite/g++.target/loongarch/atomic-cas-int.C
  f8bc85022b7adc985d76ed2766575abb  gcc/testsuite/g++.target/loongarch/bstrins-compile.C
  3d24eccefdd318d1bf2770dde9f60a08  gcc/testsuite/g++.target/loongarch/bstrins-run.C
--- 37186,37199 ----
  3660db29974db1f63f1a1f458c8894db  gcc/testsuite/g++.target/i386/pr99679-1.C
  b3fdfe2866e1905292894d815f1fa291  gcc/testsuite/g++.target/i386/pr99679-2.C
  a621b799eff193996043d9d5462e5c27  gcc/testsuite/g++.target/i386/sse4_1-check.h
! 8ac3bf43a1ce0277ed295c7ff1cc85fc  gcc/testsuite/g++.target/i386/sse4_1-pr100637-1b.C
! c06ceb436623685585c49fb701481265  gcc/testsuite/g++.target/i386/sse4_1-pr100637-1w.C
! 718c150599e50b3bfefdde0609b2efbc  gcc/testsuite/g++.target/i386/sse4_1-pr103861-1.C
! 0075c91be1a09c4b8c6dd09095d2bc82  gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C
! 56ca6a5c3971a2e06c404268c951016e  gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C
  6d0d9132ecd5c558bd1ec20dcee32d5d  gcc/testsuite/g++.target/i386/vec-tmpl1.C
  d4dcded6122bb77c0450fd18568c030b  gcc/testsuite/g++.target/i386/vect-bfloat16-1.C
+ b7eeb348c339c03fc0e89fe6ef631f76  gcc/testsuite/g++.target/i386/vect-cmp.C
  8df5f1183de744dc2a3a0c11278caec6  gcc/testsuite/g++.target/loongarch/atomic-cas-int.C
  f8bc85022b7adc985d76ed2766575abb  gcc/testsuite/g++.target/loongarch/bstrins-compile.C
  3d24eccefdd318d1bf2770dde9f60a08  gcc/testsuite/g++.target/loongarch/bstrins-run.C
*************** f8bc85022b7adc985d76ed2766575abb  gcc/te
*** 35028,35082 ****
  3e98c3e373244fc322de192a26daa1fc  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-1.C
  1569918169b163a9e6e0ed19b0336f2e  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-2.C
  dfaa547e8fb7df38c4d964cefef4b708  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-3.C
  5214c6c826b3d987e041fc28a0ba7a29  gcc/testsuite/g++.target/loongarch/got-load.C
! 73c620e4381452d87e16e3a0110f4413  gcc/testsuite/g++.target/loongarch/loongarch.exp
  3e379ce66f2b5fd83481c50aad661033  gcc/testsuite/g++.target/loongarch/pr106096.C
! 93be464703e23aa90bcb86e5faf6250d  gcc/testsuite/g++.target/loongarch/pr106828.C
  f13d97450413e73ef42096f6d86f33b9  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst-run.C
  20d9436c682a4415acafb5c98046ba99  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst.C
  0326a0afb833c5dbd49b5d623c8dd93b  gcc/testsuite/g++.target/mips/cxx17_empty_base.C
! 3cc39d3830e2ae020ff3397896837b16  gcc/testsuite/g++.target/mips/mips.exp
  dcd3af289f36f150df28be99b5efc7ed  gcc/testsuite/g++.target/mips/pr102024.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
! 7e17ead5717b38857874391e3e4c1c96  gcc/testsuite/g++.target/msp430/msp430.exp
! 5848d6741a53192ff50fe53e91b24df1  gcc/testsuite/g++.target/nios2/hello-pie.C
! 6d24bc9cab62180feb891fd1182b2445  gcc/testsuite/g++.target/nios2/nios2.exp
  8ef783bc1cb8c25df9c7d22a2af859eb  gcc/testsuite/g++.target/nvptx/abi-nrv1.C
  1da1691da429c2dee8694a433e01b52a  gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C
! e5e4fa89d7ae04c84f910c3f7073268c  gcc/testsuite/g++.target/nvptx/nvptx.exp
! 866ae57bf40de984200cce23327a2675  gcc/testsuite/g++.target/powerpc/altivec-1.C
! b4f090ce0f4d5a698db06ef3858c0a8b  gcc/testsuite/g++.target/powerpc/altivec-10.C
! b42156baabeb4c76393e9c82a906d6ac  gcc/testsuite/g++.target/powerpc/altivec-11.C
! a1293ea68a65df3ef70a69b5ec3515eb  gcc/testsuite/g++.target/powerpc/altivec-12.C
! 2cd2c60716d54d147d5c2d0537aa2441  gcc/testsuite/g++.target/powerpc/altivec-13.C
! a4e096ed0dab9358413f64b1ae0f3131  gcc/testsuite/g++.target/powerpc/altivec-14.C
! 3f6e7e18594ff429135bf8ea589ffab2  gcc/testsuite/g++.target/powerpc/altivec-15.C
! 44ff306fe2c3a37c20e6d609d95bf3a4  gcc/testsuite/g++.target/powerpc/altivec-16.C
! 0f5d326347940ec031d3fd5119be1160  gcc/testsuite/g++.target/powerpc/altivec-17.C
! 8388b9f21951bbfa78d96488ec44e03f  gcc/testsuite/g++.target/powerpc/altivec-18.C
! 223333a6601d309c1901498eb3181cf7  gcc/testsuite/g++.target/powerpc/altivec-19.C
! 6a9b08511f4acfbbde92fc75cf25a6bc  gcc/testsuite/g++.target/powerpc/altivec-2.C
! c8a44f6657e28782a0d9ee917a7e73a6  gcc/testsuite/g++.target/powerpc/altivec-3.C
! 04d5a6e0ef6cf6b17430721bd094fb87  gcc/testsuite/g++.target/powerpc/altivec-4.C
! 7068d53209da74ea98e7f05584f28362  gcc/testsuite/g++.target/powerpc/altivec-5.C
! e8f89178dc03b33f6a56ccc87a42db92  gcc/testsuite/g++.target/powerpc/altivec-6.C
! 8dc6c909b0579c6e8745bcda10fbf664  gcc/testsuite/g++.target/powerpc/altivec-7.C
! 3729abf89d9980d3b0950cc261a38820  gcc/testsuite/g++.target/powerpc/altivec-8.C
! eca9601265fbca8acc9aaff26f88f9f1  gcc/testsuite/g++.target/powerpc/altivec-9.C
! 7dc54f771a13e8640cbf1db9253b7fe1  gcc/testsuite/g++.target/powerpc/altivec-cell-1.C
! 492478d99aec611a136a0ebbd8b73db0  gcc/testsuite/g++.target/powerpc/altivec-cell-2.C
! 52b0b0261face2abf0f1751190d54d1d  gcc/testsuite/g++.target/powerpc/altivec-cell-3.C
! 29628f23515c39abd41a7827a9353c78  gcc/testsuite/g++.target/powerpc/altivec-cell-4.C
! ace1668590f04da8d87791b2b820e239  gcc/testsuite/g++.target/powerpc/altivec-cell-5.C
! 172c900209f03cd3eebf87a1a14ed373  gcc/testsuite/g++.target/powerpc/altivec-types-1.C
! 0329087cfb60fb1c40bc010bb96a9e26  gcc/testsuite/g++.target/powerpc/altivec-types-2.C
! 07dcb539e4083f18ecc3ba6a00a64cc4  gcc/testsuite/g++.target/powerpc/altivec-types-3.C
! 672bbca6e5a2428df4bd9349a317ae28  gcc/testsuite/g++.target/powerpc/altivec-types-4.C
! e70f88144abfc6a69a1241301a9b5e68  gcc/testsuite/g++.target/powerpc/const2.C
  bd1c35be302338df14b1aa330813797d  gcc/testsuite/g++.target/powerpc/darwin-minversion-1.C
! 6a6dc8f9480751ca2b3fb6cebb16aeeb  gcc/testsuite/g++.target/powerpc/powerpc.exp
  bafc15005abdfe9131f6074efde175eb  gcc/testsuite/g++.target/powerpc/ppc64-sighandle-cr.C
! ca310178fe7c147ffe915bbd9c124ee3  gcc/testsuite/g++.target/powerpc/pr101168.C
  a873678a5188427c7ceb88e3a408ce84  gcc/testsuite/g++.target/powerpc/pr101322.C
  bac7601eaf931ebd7c595a2dc9672d64  gcc/testsuite/g++.target/powerpc/pr102024.C
  52ec25547d922533a11b2b87bda1ef47  gcc/testsuite/g++.target/powerpc/pr105325.C
--- 37201,37271 ----
  3e98c3e373244fc322de192a26daa1fc  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-1.C
  1569918169b163a9e6e0ed19b0336f2e  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-2.C
  dfaa547e8fb7df38c4d964cefef4b708  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-3.C
+ 5a04ec9c381363b4fb2fb2f2d3fc61ab  gcc/testsuite/g++.target/loongarch/crc-scan.C
+ 068f4d2aa43f4cb0f840066ea19bc476  gcc/testsuite/g++.target/loongarch/crc.C
  5214c6c826b3d987e041fc28a0ba7a29  gcc/testsuite/g++.target/loongarch/got-load.C
! 868a134a1623856acf8457d0e3e79317  gcc/testsuite/g++.target/loongarch/loongarch.exp
  3e379ce66f2b5fd83481c50aad661033  gcc/testsuite/g++.target/loongarch/pr106096.C
! 91c50652b11a6f7dde25e6d7bba552c9  gcc/testsuite/g++.target/loongarch/pr106828.C
! 70627fc5a9aed381933cfeb46e0cafe1  gcc/testsuite/g++.target/loongarch/vect-ashr-lshr.C
  f13d97450413e73ef42096f6d86f33b9  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst-run.C
  20d9436c682a4415acafb5c98046ba99  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst.C
+ e955a58000d134cabde59ec691f4da15  gcc/testsuite/g++.target/m68k/m68k.exp
+ a1d5220e55816987e989ecef9b9914ad  gcc/testsuite/g++.target/m68k/pr116244.C
  0326a0afb833c5dbd49b5d623c8dd93b  gcc/testsuite/g++.target/mips/cxx17_empty_base.C
! 473a68ed92689e2d9fa7d3386b6f5709  gcc/testsuite/g++.target/mips/mips.exp
  dcd3af289f36f150df28be99b5efc7ed  gcc/testsuite/g++.target/mips/pr102024.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
! f1e7d97aadca006c1331bf164f5cdcd4  gcc/testsuite/g++.target/msp430/msp430.exp
  8ef783bc1cb8c25df9c7d22a2af859eb  gcc/testsuite/g++.target/nvptx/abi-nrv1.C
  1da1691da429c2dee8694a433e01b52a  gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C
! 302176c1967acd410b89c203bef01da7  gcc/testsuite/g++.target/nvptx/alias-g++.dg_init_dtor2-1.C
! 84384fe8be586b0f065085923bdcf8f1  gcc/testsuite/g++.target/nvptx/alias-g++.dg_init_dtor2-2.C
! d855fe9c5039d607e334ca569cafc197  gcc/testsuite/g++.target/nvptx/exceptions-bad_cast-1.C
! 2e727ce0cadc9820dc0a0363f1cc76b1  gcc/testsuite/g++.target/nvptx/exceptions-bad_cast-2.C
! 90af4627afbdc8ede648e5684018b5d4  gcc/testsuite/g++.target/nvptx/exceptions-bad_cast-2_-mfake-exceptions.C
! 64a8ea812c74bfac64d9d78df041104d  gcc/testsuite/g++.target/nvptx/exceptions-bad_cast-3.C
! d02392cd1a56306516b8b223b24d91b7  gcc/testsuite/g++.target/nvptx/exceptions-pr118794-1.C
! 18811e13a53410af4e1de7ebd6c4db2c  gcc/testsuite/g++.target/nvptx/exceptions-pr118794-1_-mfake-exceptions.C
! f99409e2780aca9ffc3ba3b9dbfcaef8  gcc/testsuite/g++.target/nvptx/exceptions-throw-1.C
! 5c1debe15761672c5855a303c5cbe73d  gcc/testsuite/g++.target/nvptx/exceptions-throw-2.C
! a3d7b988359ec430778c2ee9cbba9dfd  gcc/testsuite/g++.target/nvptx/exceptions-throw-2_-mfake-exceptions.C
! cdcbe745705dbecf46bdf64b92a1b80b  gcc/testsuite/g++.target/nvptx/exceptions-throw-3.C
! de39bb0a9353dfe56529c8cd46e86946  gcc/testsuite/g++.target/nvptx/nvptx.exp
! 9a8f1292f181726bb854767fb26dcec1  gcc/testsuite/g++.target/nvptx/pr119692-1-1.C
! 0334d27927593ac431f1bc4d8e043a9e  gcc/testsuite/g++.target/powerpc/altivec-1.C
! 4d8e5b945dde41b0f8a2c3f0c0f10a10  gcc/testsuite/g++.target/powerpc/altivec-10.C
! 72427f51f19b4fdf88071ca153bc2426  gcc/testsuite/g++.target/powerpc/altivec-11.C
! ccee748398fb8b69c8c661691dcefd3a  gcc/testsuite/g++.target/powerpc/altivec-12.C
! e0ca7910ebb71b19962bddcb176dad4e  gcc/testsuite/g++.target/powerpc/altivec-13.C
! e7be2a440689f85cf744bb009eb1a3d9  gcc/testsuite/g++.target/powerpc/altivec-14.C
! 23d8803d99e115064db280557382c798  gcc/testsuite/g++.target/powerpc/altivec-15.C
! d8d63cb46e0c426f6506335259103711  gcc/testsuite/g++.target/powerpc/altivec-16.C
! c45b9a2e2492bba0c942eb069bd0d95d  gcc/testsuite/g++.target/powerpc/altivec-17.C
! 3e3438c78ce53284a5471882c81e7de2  gcc/testsuite/g++.target/powerpc/altivec-18.C
! 56ef6a7953d08b9e73432104a17fcbd1  gcc/testsuite/g++.target/powerpc/altivec-19.C
! f7c17ae238cf151f02aa5328470d954c  gcc/testsuite/g++.target/powerpc/altivec-2.C
! eeb735056f5d2f5a74646e16eb5a18b1  gcc/testsuite/g++.target/powerpc/altivec-3.C
! 15962cfca7bc71026a652e4933f838a8  gcc/testsuite/g++.target/powerpc/altivec-4.C
! ee83376b17f6636ddbdf4a9bf4bb99f7  gcc/testsuite/g++.target/powerpc/altivec-5.C
! bc0e30406675dcababbbff2cf43e4380  gcc/testsuite/g++.target/powerpc/altivec-6.C
! 259de1d77aa9b0ca2e69ac7f2a001b63  gcc/testsuite/g++.target/powerpc/altivec-7.C
! 1dc4ed2a576a93c63a8936c3f83ad5b0  gcc/testsuite/g++.target/powerpc/altivec-8.C
! 18510cc5199590e942776fcf655891be  gcc/testsuite/g++.target/powerpc/altivec-9.C
! 3b14d9ef0a0d66012c5d1b89fcd80d31  gcc/testsuite/g++.target/powerpc/altivec-cell-1.C
! 93ba24054d6d850065c765ec9a9095a2  gcc/testsuite/g++.target/powerpc/altivec-cell-2.C
! 92f09f211a063d0c3fa2aa08746b6b03  gcc/testsuite/g++.target/powerpc/altivec-cell-3.C
! ac49cc2a622b01c5caa9253f83c5bdee  gcc/testsuite/g++.target/powerpc/altivec-cell-4.C
! 26b6dc79e7db10bba799b6518668e6d2  gcc/testsuite/g++.target/powerpc/altivec-cell-5.C
! 7b10964d03769b8c0328349aebcda392  gcc/testsuite/g++.target/powerpc/altivec-types-1.C
! 3d15fbde8c27df3d2c35271424fc726f  gcc/testsuite/g++.target/powerpc/altivec-types-2.C
! 61885ec5f7aeddc6e8ff43d8746946ba  gcc/testsuite/g++.target/powerpc/altivec-types-3.C
! 3ab7d6c274311edec73365c855c97595  gcc/testsuite/g++.target/powerpc/altivec-types-4.C
! 1dcc294b786a601d5c1b5d4178563803  gcc/testsuite/g++.target/powerpc/const2.C
  bd1c35be302338df14b1aa330813797d  gcc/testsuite/g++.target/powerpc/darwin-minversion-1.C
! d424a431fe3d449ee6974b8ea63bbdab  gcc/testsuite/g++.target/powerpc/powerpc.exp
  bafc15005abdfe9131f6074efde175eb  gcc/testsuite/g++.target/powerpc/ppc64-sighandle-cr.C
! e20e538d4bb1e80f32276f6a48219247  gcc/testsuite/g++.target/powerpc/pr101168.C
  a873678a5188427c7ceb88e3a408ce84  gcc/testsuite/g++.target/powerpc/pr101322.C
  bac7601eaf931ebd7c595a2dc9672d64  gcc/testsuite/g++.target/powerpc/pr102024.C
  52ec25547d922533a11b2b87bda1ef47  gcc/testsuite/g++.target/powerpc/pr105325.C
*************** ea50428d09d0e781698b21023398bfee  gcc/te
*** 35087,35106 ****
  92cbd869a66e265db57a505d568038a0  gcc/testsuite/g++.target/powerpc/pr111367.C
  d2c732bc509e2385a06f111c954c2700  gcc/testsuite/g++.target/powerpc/pr111828-1.C
  d573b767c2de9d8c280bc5d867cf8c50  gcc/testsuite/g++.target/powerpc/pr111828-2.C
! 9c74007c234a12d4c947bb4d6e55c63b  gcc/testsuite/g++.target/powerpc/pr65240-1.C
! 436918461ef83adf9e3f0a761f3eab86  gcc/testsuite/g++.target/powerpc/pr65240-2.C
! 1e1aa0282e8b112947082f2503881b91  gcc/testsuite/g++.target/powerpc/pr65240-3.C
! 180cb7fcfd4966da44b92f60ec09c0c1  gcc/testsuite/g++.target/powerpc/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.target/powerpc/pr65240.h
! 6021f137c3825b6d61a94c0dd8db9645  gcc/testsuite/g++.target/powerpc/pr65242.C
! 0bb06e3925c31ccdde723131951dac9e  gcc/testsuite/g++.target/powerpc/pr67211.C
! f6aa3029495bc112ac44057629d1de0f  gcc/testsuite/g++.target/powerpc/pr71294.C
  454b0f87867ea7aa84d83652eeff7620  gcc/testsuite/g++.target/powerpc/pr83660.C
  29c053c9691c1bec01703b8e94dfa7ca  gcc/testsuite/g++.target/powerpc/pr84264.C
! c8d07685a1972b4cddd635a8958b9ce2  gcc/testsuite/g++.target/powerpc/pr84279.C
  c6d8b59232f195f134f195c54026fd69  gcc/testsuite/g++.target/powerpc/pr85657.C
  9755e5a0fd101c2554c1d3cb3fa79a6c  gcc/testsuite/g++.target/powerpc/pr90259.C
! 2d57cbe3a723e0b235d20ff0cacb42cd  gcc/testsuite/g++.target/powerpc/pr93974.C
  63b698681e4a076eb88feccb3e6373df  gcc/testsuite/g++.target/powerpc/pr94707-1.C
  75c93ba90b3ca18a6d5c5264e2816651  gcc/testsuite/g++.target/powerpc/pr94707-2.C
  a63f2ade84bc38838f3986dfc4bc9d85  gcc/testsuite/g++.target/powerpc/pr94707-3.C
--- 37276,37295 ----
  92cbd869a66e265db57a505d568038a0  gcc/testsuite/g++.target/powerpc/pr111367.C
  d2c732bc509e2385a06f111c954c2700  gcc/testsuite/g++.target/powerpc/pr111828-1.C
  d573b767c2de9d8c280bc5d867cf8c50  gcc/testsuite/g++.target/powerpc/pr111828-2.C
! 4ab48f85c0cc8642ccec86fab32865fd  gcc/testsuite/g++.target/powerpc/pr65240-1.C
! a65ca9dbc571190bf38872af7eb88b05  gcc/testsuite/g++.target/powerpc/pr65240-2.C
! a8c6dc89f2afd69a0ed5e88d861a88be  gcc/testsuite/g++.target/powerpc/pr65240-3.C
! 6a1f83102aad758cc05682b64cae6ae3  gcc/testsuite/g++.target/powerpc/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.target/powerpc/pr65240.h
! c84a9076474d4dd643d0e56aef690a7a  gcc/testsuite/g++.target/powerpc/pr65242.C
! 432e8761c0793b3377c2880715f8f0a4  gcc/testsuite/g++.target/powerpc/pr67211.C
! 2281d5638a2d8d665e7c86d09382e67a  gcc/testsuite/g++.target/powerpc/pr71294.C
  454b0f87867ea7aa84d83652eeff7620  gcc/testsuite/g++.target/powerpc/pr83660.C
  29c053c9691c1bec01703b8e94dfa7ca  gcc/testsuite/g++.target/powerpc/pr84264.C
! 17a7f109e1fc0074e7e5ce16b8823733  gcc/testsuite/g++.target/powerpc/pr84279.C
  c6d8b59232f195f134f195c54026fd69  gcc/testsuite/g++.target/powerpc/pr85657.C
  9755e5a0fd101c2554c1d3cb3fa79a6c  gcc/testsuite/g++.target/powerpc/pr90259.C
! 72f26ff6e548a6d5565a6b568b0d510b  gcc/testsuite/g++.target/powerpc/pr93974.C
  63b698681e4a076eb88feccb3e6373df  gcc/testsuite/g++.target/powerpc/pr94707-1.C
  75c93ba90b3ca18a6d5c5264e2816651  gcc/testsuite/g++.target/powerpc/pr94707-2.C
  a63f2ade84bc38838f3986dfc4bc9d85  gcc/testsuite/g++.target/powerpc/pr94707-3.C
*************** a71a068de2c137d6ff37cfba20e45e06  gcc/te
*** 35111,35155 ****
  4aa850893daf75099b810c7d79530d83  gcc/testsuite/g++.target/powerpc/pr99041.C
  ec9d88502adf58241b652d1155cafc87  gcc/testsuite/g++.target/powerpc/pr99842.C
  7b5177c75ebae506d562d994be186761  gcc/testsuite/g++.target/powerpc/simd-4.C
- 7bbbffa771c48a85ca22cc69554f7cc4  gcc/testsuite/g++.target/powerpc/simd-5.C
  dc88c4a16670b88873deaa496d62f7e0  gcc/testsuite/g++.target/powerpc/spu2vmx-1.C
  d524c0f12362d29431b637fe039b54af  gcc/testsuite/g++.target/powerpc/uncaught3.C
! 36d64226b0cf06f34f4cc117335fae5d  gcc/testsuite/g++.target/powerpc/undef-bool-1.C
  fb915623fe5d0c1208c53c6de33e722a  gcc/testsuite/g++.target/powerpc/undef-bool-3.C
  4b11a77cc6e6a6d127ce6f11252f605a  gcc/testsuite/g++.target/riscv/_Float16.C
  84541f8edc35b61b62256dbd71b731b8  gcc/testsuite/g++.target/riscv/call-with-empty-struct-float.C
  0224a15f72de72af47e3eeb572c2d4eb  gcc/testsuite/g++.target/riscv/call-with-empty-struct-int.C
  13fbd035f1483c414ba4dab326db8f4e  gcc/testsuite/g++.target/riscv/call-with-empty-struct.H
  bda24fd764e95be6398892d48adf8be7  gcc/testsuite/g++.target/riscv/frflags.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
  ac37e529bda1269045c3681cc4b425dd  gcc/testsuite/g++.target/riscv/pr97682.C
! 2a9c6586ee584715fe05091ad7b38284  gcc/testsuite/g++.target/riscv/riscv.exp
  33bc1e793360d958223c97bd0dd123ad  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-1.C
  bbffb78a05c981886c82c4d7bb1ab46a  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-2.C
  b073f099736b28c243e723ac86cb8fd5  gcc/testsuite/g++.target/riscv/rvv/base/attribute-riscv_vector_cc-error.C
  1b1bc5039f56e1bab95c9773c435167c  gcc/testsuite/g++.target/riscv/rvv/base/bug-1.C
! a9f8f7f709e90bb091acda48cbbacae5  gcc/testsuite/g++.target/riscv/rvv/base/bug-10.C
! 97d97cf535ac0cb743ec6fd73751f129  gcc/testsuite/g++.target/riscv/rvv/base/bug-11.C
! 8c92c6d7687d5639f6a7ec9ab2bbd3c9  gcc/testsuite/g++.target/riscv/rvv/base/bug-12.C
! dbb7fdc0b05878f7e0ccd7a16428b3ac  gcc/testsuite/g++.target/riscv/rvv/base/bug-13.C
! ba97c61913e93b734f51ad8dbfa9ec20  gcc/testsuite/g++.target/riscv/rvv/base/bug-14.C
! 893c0abf462f46eb605d9b0b78db9ea5  gcc/testsuite/g++.target/riscv/rvv/base/bug-15.C
! b6e9fc8d533bca4081cec66125991dff  gcc/testsuite/g++.target/riscv/rvv/base/bug-16.C
! d5e74fe577d9103126c9b69f39913b8e  gcc/testsuite/g++.target/riscv/rvv/base/bug-17.C
  1161e424273cc9d3e514f033d34f9861  gcc/testsuite/g++.target/riscv/rvv/base/bug-18.C
  cb1f86abc385aec2286e503ef46a48e0  gcc/testsuite/g++.target/riscv/rvv/base/bug-19.C
! 1007d2e0269decb78c01e2b76cc6986e  gcc/testsuite/g++.target/riscv/rvv/base/bug-2.C
  63275b6972650f8e8d2e61dc23766d49  gcc/testsuite/g++.target/riscv/rvv/base/bug-20.C
  5d9473ea1d4945475937817dd7e48a0f  gcc/testsuite/g++.target/riscv/rvv/base/bug-21.C
  4a98d8f6cafe33b976f6645b3542270f  gcc/testsuite/g++.target/riscv/rvv/base/bug-22.C
! 302a025c132540fe93d98433ec5074f9  gcc/testsuite/g++.target/riscv/rvv/base/bug-23.C
! 2c9cbdcd1a64289ee969ee2082587492  gcc/testsuite/g++.target/riscv/rvv/base/bug-3.C
! bc05dcacc47c667f18b7e139543a941d  gcc/testsuite/g++.target/riscv/rvv/base/bug-4.C
! e6d394efcdc185c7fa8f55225ba55a22  gcc/testsuite/g++.target/riscv/rvv/base/bug-5.C
! 74931d30f314dec5a5a91d3bd9dbb8a0  gcc/testsuite/g++.target/riscv/rvv/base/bug-6.C
! cb2b5469f62604a8e4e726399f523ff8  gcc/testsuite/g++.target/riscv/rvv/base/bug-7.C
! f5e68802fc05a6fd1f11481e8a18cf0f  gcc/testsuite/g++.target/riscv/rvv/base/bug-8.C
! fc0ce518453148de9582d1ac8c2f1c5f  gcc/testsuite/g++.target/riscv/rvv/base/bug-9.C
  52fb0d5342b2dcbc51ecf7bc9b7daff3  gcc/testsuite/g++.target/riscv/rvv/base/exception-1.C
  33fe4f27a4106e9aec819d1ad6cea265  gcc/testsuite/g++.target/riscv/rvv/base/pr109244.C
  71cf9f616a0dcc2f3110d2537d0ee191  gcc/testsuite/g++.target/riscv/rvv/base/pr109535.C
--- 37300,37364 ----
  4aa850893daf75099b810c7d79530d83  gcc/testsuite/g++.target/powerpc/pr99041.C
  ec9d88502adf58241b652d1155cafc87  gcc/testsuite/g++.target/powerpc/pr99842.C
  7b5177c75ebae506d562d994be186761  gcc/testsuite/g++.target/powerpc/simd-4.C
  dc88c4a16670b88873deaa496d62f7e0  gcc/testsuite/g++.target/powerpc/spu2vmx-1.C
  d524c0f12362d29431b637fe039b54af  gcc/testsuite/g++.target/powerpc/uncaught3.C
! a013abe8fae4a331d6bd7bef946524f1  gcc/testsuite/g++.target/powerpc/undef-bool-1.C
  fb915623fe5d0c1208c53c6de33e722a  gcc/testsuite/g++.target/powerpc/undef-bool-3.C
+ 42d8d99a0e73a3a6d3751b7543369b21  gcc/testsuite/g++.target/pru/minrt-1.cc
+ 87e159b16768d67c3f3c34b2ba3b8354  gcc/testsuite/g++.target/pru/minrt-2.cc
+ 3c447d71c9dbea654422b220051c773d  gcc/testsuite/g++.target/pru/minrt-3.cc
+ 609362d8197d8c5fa5f35cfe90497bd5  gcc/testsuite/g++.target/pru/pru.exp
  4b11a77cc6e6a6d127ce6f11252f605a  gcc/testsuite/g++.target/riscv/_Float16.C
  84541f8edc35b61b62256dbd71b731b8  gcc/testsuite/g++.target/riscv/call-with-empty-struct-float.C
  0224a15f72de72af47e3eeb572c2d4eb  gcc/testsuite/g++.target/riscv/call-with-empty-struct-int.C
  13fbd035f1483c414ba4dab326db8f4e  gcc/testsuite/g++.target/riscv/call-with-empty-struct.H
  bda24fd764e95be6398892d48adf8be7  gcc/testsuite/g++.target/riscv/frflags.C
+ 8c94273bff4b0e14c18fa3beda218be6  gcc/testsuite/g++.target/riscv/mv-symbols1.C
+ af4c0a0f5ed69a8450f83634f706f725  gcc/testsuite/g++.target/riscv/mv-symbols2.C
+ 6c1a41a6c4e93f333009da1e5a752f6c  gcc/testsuite/g++.target/riscv/mv-symbols3.C
+ 04c331f574d60d386cdb704652c9b8ca  gcc/testsuite/g++.target/riscv/mv-symbols4.C
+ 154191254928bf4fc4658db636778670  gcc/testsuite/g++.target/riscv/mv-symbols5.C
+ 4d73c9b3272819998cb87dbace9b7ef3  gcc/testsuite/g++.target/riscv/mvc-symbols1.C
+ 2957c21b7adcadad9bd18515b4488d37  gcc/testsuite/g++.target/riscv/mvc-symbols2.C
+ 70b97714537133ddff4da9419b8fa1ff  gcc/testsuite/g++.target/riscv/mvc-symbols3.C
+ e24f0e502cef393d2dbeeea684980651  gcc/testsuite/g++.target/riscv/mvc-symbols4.C
+ 6ccfbdc79a3df2fd72928d9b5b8e49eb  gcc/testsuite/g++.target/riscv/pr115458.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
  ac37e529bda1269045c3681cc4b425dd  gcc/testsuite/g++.target/riscv/pr97682.C
! 6e6f612caa7b4f4e5eea9cd6bba4227b  gcc/testsuite/g++.target/riscv/redundant-bitmap-1.C
! 7079827a2e9106d7dd26baf0312903e6  gcc/testsuite/g++.target/riscv/redundant-bitmap-2.C
! 5e656f7ba916750fdf3fd708236e7e9a  gcc/testsuite/g++.target/riscv/redundant-bitmap-3.C
! 005a07d6ed445202a5333c84693b6d73  gcc/testsuite/g++.target/riscv/redundant-bitmap-4.C
! 80ae0326fddeb5164903866ac677522c  gcc/testsuite/g++.target/riscv/riscv.exp
  33bc1e793360d958223c97bd0dd123ad  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-1.C
  bbffb78a05c981886c82c4d7bb1ab46a  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-2.C
+ 7744443172f2d7cb1157b8661f646acc  gcc/testsuite/g++.target/riscv/rvv/autovec/pr116595.C
+ 65e822c3566d2be95d4e4a1852d2d11e  gcc/testsuite/g++.target/riscv/rvv/autovec/pr119547-2.C
+ e0fcda19753adb81a996dcb37c1e40f0  gcc/testsuite/g++.target/riscv/rvv/autovec/pr119547.C
  b073f099736b28c243e723ac86cb8fd5  gcc/testsuite/g++.target/riscv/rvv/base/attribute-riscv_vector_cc-error.C
  1b1bc5039f56e1bab95c9773c435167c  gcc/testsuite/g++.target/riscv/rvv/base/bug-1.C
! 23e072f75d6f4f14b994051bd34559a4  gcc/testsuite/g++.target/riscv/rvv/base/bug-10.C
! 0d49d040ce8462739b221955825e325b  gcc/testsuite/g++.target/riscv/rvv/base/bug-11.C
! 4c14d5412667f567f1d4b8aa25cee58e  gcc/testsuite/g++.target/riscv/rvv/base/bug-12.C
! 119f468d4c4219d1c717cfb5528f749f  gcc/testsuite/g++.target/riscv/rvv/base/bug-13.C
! e1a1dc10b5ebfb5cffac881120a67c89  gcc/testsuite/g++.target/riscv/rvv/base/bug-14.C
! 2fa5a43fd36e2a45d24d244d81f0cadc  gcc/testsuite/g++.target/riscv/rvv/base/bug-15.C
! 80c0f2d5f935bc2a0b5393bb64a3c74f  gcc/testsuite/g++.target/riscv/rvv/base/bug-16.C
! bac30d816f31b49f7cfbdfa9ed924e44  gcc/testsuite/g++.target/riscv/rvv/base/bug-17.C
  1161e424273cc9d3e514f033d34f9861  gcc/testsuite/g++.target/riscv/rvv/base/bug-18.C
  cb1f86abc385aec2286e503ef46a48e0  gcc/testsuite/g++.target/riscv/rvv/base/bug-19.C
! b8ecc134f843389d76ca7caab94bfbc2  gcc/testsuite/g++.target/riscv/rvv/base/bug-2.C
  63275b6972650f8e8d2e61dc23766d49  gcc/testsuite/g++.target/riscv/rvv/base/bug-20.C
  5d9473ea1d4945475937817dd7e48a0f  gcc/testsuite/g++.target/riscv/rvv/base/bug-21.C
  4a98d8f6cafe33b976f6645b3542270f  gcc/testsuite/g++.target/riscv/rvv/base/bug-22.C
! 228c11aec3c2f13355aa89b6fd4d6ab4  gcc/testsuite/g++.target/riscv/rvv/base/bug-23.C
! f1021457a784be5dc1dc10428ec0874f  gcc/testsuite/g++.target/riscv/rvv/base/bug-3.C
! 5765dba64b12535dfbcc1d1acef88bf3  gcc/testsuite/g++.target/riscv/rvv/base/bug-4.C
! 3204407a631552a2995db098f775de56  gcc/testsuite/g++.target/riscv/rvv/base/bug-5.C
! 867ef183547edaab7527c1f7f9f54195  gcc/testsuite/g++.target/riscv/rvv/base/bug-6.C
! 94daf3ef449c9498103b5cf31210eb24  gcc/testsuite/g++.target/riscv/rvv/base/bug-7.C
! e00c73d81d3bafb53e833d959e3c3bdd  gcc/testsuite/g++.target/riscv/rvv/base/bug-8.C
! e296551bbee90148974ff78d5066caf7  gcc/testsuite/g++.target/riscv/rvv/base/bug-9.C
  52fb0d5342b2dcbc51ecf7bc9b7daff3  gcc/testsuite/g++.target/riscv/rvv/base/exception-1.C
  33fe4f27a4106e9aec819d1ad6cea265  gcc/testsuite/g++.target/riscv/rvv/base/pr109244.C
  71cf9f616a0dcc2f3110d2537d0ee191  gcc/testsuite/g++.target/riscv/rvv/base/pr109535.C
*************** fc0ce518453148de9582d1ac8c2f1c5f  gcc/te
*** 35157,35164 ****
  4508daf9f8ca24d9229ec2c2d5c69c81  gcc/testsuite/g++.target/riscv/rvv/base/pr114639-1.C
  a6a5d652323c20e5b2bbc8ea9dc8f4d7  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-1.C
  49cbe2dffc749d3ef1398685b035f4c9  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-2.C
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/g++.target/riscv/rvv/base/riscv_vector.h
! 4a272ef5d4099af064913acf6b4054db  gcc/testsuite/g++.target/riscv/rvv/rvv.exp
  737eebb4901981753937ddcc65184708  gcc/testsuite/g++.target/s390/atomic-align-1.C
  74f02d12b4213817c3460e1eebfa9eae  gcc/testsuite/g++.target/s390/mi-thunk.C
  93b786c04aacd9a92606e85c55410461  gcc/testsuite/g++.target/s390/pr100281-1.C
--- 37366,37375 ----
  4508daf9f8ca24d9229ec2c2d5c69c81  gcc/testsuite/g++.target/riscv/rvv/base/pr114639-1.C
  a6a5d652323c20e5b2bbc8ea9dc8f4d7  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-1.C
  49cbe2dffc749d3ef1398685b035f4c9  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-2.C
+ c358c32e7ca409abcc867a3b5248f5bd  gcc/testsuite/g++.target/riscv/rvv/base/pr116883.C
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/g++.target/riscv/rvv/base/riscv_vector.h
! 4a3be4db135c0350e87b0abdf4ca1ca8  gcc/testsuite/g++.target/riscv/rvv/rvv.exp
! c7172cd9252e12b67637bd9c4179611f  gcc/testsuite/g++.target/riscv/rvv/xtheadvector/pr116593.C
  737eebb4901981753937ddcc65184708  gcc/testsuite/g++.target/s390/atomic-align-1.C
  74f02d12b4213817c3460e1eebfa9eae  gcc/testsuite/g++.target/s390/mi-thunk.C
  93b786c04aacd9a92606e85c55410461  gcc/testsuite/g++.target/s390/pr100281-1.C
*************** a6a5d652323c20e5b2bbc8ea9dc8f4d7  gcc/te
*** 35169,35183 ****
  1f98b1d1757ebed2e4df3c91f91846f5  gcc/testsuite/g++.target/s390/pr102024-4.C
  f0a679d402cd83e81a6efa4bbb02d02b  gcc/testsuite/g++.target/s390/pr102024-5.C
  f65e23ee2638d7bc7c063a2f41350d9c  gcc/testsuite/g++.target/s390/pr102024-6.C
  63c9cacf807bdee09a1606a202373f30  gcc/testsuite/g++.target/s390/pr94704-1.C
  f536562eba9a9954ace3a616ac52f438  gcc/testsuite/g++.target/s390/pr94704-2.C
  673a3b45283bd1b872f1b198781a14a3  gcc/testsuite/g++.target/s390/pr94704-3.C
  0a3c74a94606c9870a40fec1d0577aa8  gcc/testsuite/g++.target/s390/pr94704-4.C
  c0aa169f53b6c831c9c42b449fec63b6  gcc/testsuite/g++.target/s390/pr98722.C
! fe646f555f53ce861aeecbd7df55f61b  gcc/testsuite/g++.target/s390/s390.exp
  9ff1a8d8d1c6f294a317244992dec97a  gcc/testsuite/g++.target/s390/zvec-templ-1.C
  9ec75dfed03d43e4480e98ac02f604a7  gcc/testsuite/g++.target/xtensa/pr95571.C
! 17ac35c0076da490d7320f7ad18e8fe3  gcc/testsuite/g++.target/xtensa/xtensa.exp
  ab411a7e60cfec57473a2cab3ecc3197  gcc/testsuite/gcc.c-torture/ChangeLog.0
  84740fd4194274c1fbddfa5575623a40  gcc/testsuite/gcc.c-torture/compat/strct-layout.c
  3bb9d56b7cd137b146d286534c43ff8c  gcc/testsuite/gcc.c-torture/compat/struct-align.c
--- 37380,37396 ----
  1f98b1d1757ebed2e4df3c91f91846f5  gcc/testsuite/g++.target/s390/pr102024-4.C
  f0a679d402cd83e81a6efa4bbb02d02b  gcc/testsuite/g++.target/s390/pr102024-5.C
  f65e23ee2638d7bc7c063a2f41350d9c  gcc/testsuite/g++.target/s390/pr102024-6.C
+ 377180e93d364db46b93992e870cdab7  gcc/testsuite/g++.target/s390/pr119834.C
  63c9cacf807bdee09a1606a202373f30  gcc/testsuite/g++.target/s390/pr94704-1.C
  f536562eba9a9954ace3a616ac52f438  gcc/testsuite/g++.target/s390/pr94704-2.C
  673a3b45283bd1b872f1b198781a14a3  gcc/testsuite/g++.target/s390/pr94704-3.C
  0a3c74a94606c9870a40fec1d0577aa8  gcc/testsuite/g++.target/s390/pr94704-4.C
+ dde91892495d17ce2df23f544a2d14fa  gcc/testsuite/g++.target/s390/pr95782.C
  c0aa169f53b6c831c9c42b449fec63b6  gcc/testsuite/g++.target/s390/pr98722.C
! c203475d88ea00f74316e4db91a6246f  gcc/testsuite/g++.target/s390/s390.exp
  9ff1a8d8d1c6f294a317244992dec97a  gcc/testsuite/g++.target/s390/zvec-templ-1.C
  9ec75dfed03d43e4480e98ac02f604a7  gcc/testsuite/g++.target/xtensa/pr95571.C
! eb2628e873513195d3a2fe71344ac7d4  gcc/testsuite/g++.target/xtensa/xtensa.exp
  ab411a7e60cfec57473a2cab3ecc3197  gcc/testsuite/gcc.c-torture/ChangeLog.0
  84740fd4194274c1fbddfa5575623a40  gcc/testsuite/gcc.c-torture/compat/strct-layout.c
  3bb9d56b7cd137b146d286534c43ff8c  gcc/testsuite/gcc.c-torture/compat/struct-align.c
*************** ac01d71fcbc92c609cbf00b9a9c8b025  gcc/te
*** 35232,35238 ****
  798ad95bcb3c0ac618dd80ee18912645  gcc/testsuite/gcc.c-torture/compile/20000825-1.c
  6c54d5e909022b02771b10d881dba9b0  gcc/testsuite/gcc.c-torture/compile/20000827-1.c
  ce39b4d06388030803b332cdd7ffa388  gcc/testsuite/gcc.c-torture/compile/20000922-1.c
! 7147081b30725c084ec967cca3f2795a  gcc/testsuite/gcc.c-torture/compile/20000923-1.c
  615425c9767e3f016a8be91b201d6e4e  gcc/testsuite/gcc.c-torture/compile/20001018-1.c
  0ff31924d5aad8a7a8763b5a5f60d096  gcc/testsuite/gcc.c-torture/compile/20001024-1.c
  3346600028152a1223005207cfba943c  gcc/testsuite/gcc.c-torture/compile/20001109-1.c
--- 37445,37451 ----
  798ad95bcb3c0ac618dd80ee18912645  gcc/testsuite/gcc.c-torture/compile/20000825-1.c
  6c54d5e909022b02771b10d881dba9b0  gcc/testsuite/gcc.c-torture/compile/20000827-1.c
  ce39b4d06388030803b332cdd7ffa388  gcc/testsuite/gcc.c-torture/compile/20000922-1.c
! 274dc6620f97e836091352951757c4c0  gcc/testsuite/gcc.c-torture/compile/20000923-1.c
  615425c9767e3f016a8be91b201d6e4e  gcc/testsuite/gcc.c-torture/compile/20001018-1.c
  0ff31924d5aad8a7a8763b5a5f60d096  gcc/testsuite/gcc.c-torture/compile/20001024-1.c
  3346600028152a1223005207cfba943c  gcc/testsuite/gcc.c-torture/compile/20001109-1.c
*************** bc73cb8df3b277f4a2684bccb8bdc314  gcc/te
*** 35243,35249 ****
  52e1fa4920386653722712ce935958a1  gcc/testsuite/gcc.c-torture/compile/20001123-2.c
  b4043c1fb51131895a89abd42bb3c773  gcc/testsuite/gcc.c-torture/compile/20001205-1.c
  47698e5c103095b52ddeebe9c18e4261  gcc/testsuite/gcc.c-torture/compile/20001212-1.c
! d9cdb320d7111c1d168a3b55d9be0022  gcc/testsuite/gcc.c-torture/compile/20001221-1.c
  fac92293ee460b9a9edfbba167f26474  gcc/testsuite/gcc.c-torture/compile/20001222-1.c
  30e34f095a173baa550caa5f4cae9da7  gcc/testsuite/gcc.c-torture/compile/20001226-1.c
  c0ba5625247a9fad2ea7be846e7ec8b5  gcc/testsuite/gcc.c-torture/compile/200031109-1.c
--- 37456,37462 ----
  52e1fa4920386653722712ce935958a1  gcc/testsuite/gcc.c-torture/compile/20001123-2.c
  b4043c1fb51131895a89abd42bb3c773  gcc/testsuite/gcc.c-torture/compile/20001205-1.c
  47698e5c103095b52ddeebe9c18e4261  gcc/testsuite/gcc.c-torture/compile/20001212-1.c
! 39d2a632defe498a75094cdcec3e30fa  gcc/testsuite/gcc.c-torture/compile/20001221-1.c
  fac92293ee460b9a9edfbba167f26474  gcc/testsuite/gcc.c-torture/compile/20001222-1.c
  30e34f095a173baa550caa5f4cae9da7  gcc/testsuite/gcc.c-torture/compile/20001226-1.c
  c0ba5625247a9fad2ea7be846e7ec8b5  gcc/testsuite/gcc.c-torture/compile/200031109-1.c
*************** b964252ee92d9352e59b5da7b8f5ba3a  gcc/te
*** 35349,35355 ****
  00c94c0a76a5dd546f2fe6e22ebf0bba  gcc/testsuite/gcc.c-torture/compile/20020709-1.c
  e5c25a378cf4f4a754c59da105af6d56  gcc/testsuite/gcc.c-torture/compile/20020710-1.c
  bc26e141c2a1c6f93bdf7d85d62fd35f  gcc/testsuite/gcc.c-torture/compile/20020715-1.c
! b073b631176fe9350a960871f2576ece  gcc/testsuite/gcc.c-torture/compile/20020807-1.c
  91002046d8281f1eaa3ebdc3959648f8  gcc/testsuite/gcc.c-torture/compile/20020910-1.c
  8b66b6b4fa1a6945ccda4e274db8b532  gcc/testsuite/gcc.c-torture/compile/20020926-1.c
  2fbb6db915e4766194ae0e07ca5e7d6e  gcc/testsuite/gcc.c-torture/compile/20020927-1.c
--- 37562,37568 ----
  00c94c0a76a5dd546f2fe6e22ebf0bba  gcc/testsuite/gcc.c-torture/compile/20020709-1.c
  e5c25a378cf4f4a754c59da105af6d56  gcc/testsuite/gcc.c-torture/compile/20020710-1.c
  bc26e141c2a1c6f93bdf7d85d62fd35f  gcc/testsuite/gcc.c-torture/compile/20020715-1.c
! a3c6367d399edb7ee7b57a792aa5c241  gcc/testsuite/gcc.c-torture/compile/20020807-1.c
  91002046d8281f1eaa3ebdc3959648f8  gcc/testsuite/gcc.c-torture/compile/20020910-1.c
  8b66b6b4fa1a6945ccda4e274db8b532  gcc/testsuite/gcc.c-torture/compile/20020926-1.c
  2fbb6db915e4766194ae0e07ca5e7d6e  gcc/testsuite/gcc.c-torture/compile/20020927-1.c
*************** afcafea038b7b943927285bb1f62bc60  gcc/te
*** 35377,35383 ****
  9aefbd156be3da7baea3bca4be48bbaa  gcc/testsuite/gcc.c-torture/compile/20030216-1.c
  c30f1cac9cc5f1765ffbbed5a74d7609  gcc/testsuite/gcc.c-torture/compile/20030219-1.c
  14a347277f72d1afe029475ad3e8f032  gcc/testsuite/gcc.c-torture/compile/20030220-1.c
! e13ab7f340a062e5d8ad725673b9b11e  gcc/testsuite/gcc.c-torture/compile/20030224-1.c
  00abc61da030c97b90aaaa615cc1eb1f  gcc/testsuite/gcc.c-torture/compile/20030305-1.c
  074f41310e1519169fe94916aedb4285  gcc/testsuite/gcc.c-torture/compile/20030310-1.c
  f6669c2a749498d487e22ebfc2435eba  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
--- 37590,37596 ----
  9aefbd156be3da7baea3bca4be48bbaa  gcc/testsuite/gcc.c-torture/compile/20030216-1.c
  c30f1cac9cc5f1765ffbbed5a74d7609  gcc/testsuite/gcc.c-torture/compile/20030219-1.c
  14a347277f72d1afe029475ad3e8f032  gcc/testsuite/gcc.c-torture/compile/20030220-1.c
! d95d3791be79edb41b4192d2696815fb  gcc/testsuite/gcc.c-torture/compile/20030224-1.c
  00abc61da030c97b90aaaa615cc1eb1f  gcc/testsuite/gcc.c-torture/compile/20030305-1.c
  074f41310e1519169fe94916aedb4285  gcc/testsuite/gcc.c-torture/compile/20030310-1.c
  f6669c2a749498d487e22ebfc2435eba  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
*************** de6073265c2a42796519903a441152d3  gcc/te
*** 35448,35454 ****
  953cb1c8d3976e4726412911fcef7e4f  gcc/testsuite/gcc.c-torture/compile/20040202-1.c
  c783a4af3f2b6435cbc085881df31670  gcc/testsuite/gcc.c-torture/compile/20040209-1.c
  2007e088b687d647ae32990ead820391  gcc/testsuite/gcc.c-torture/compile/20040214-1.c
! dd14cd7290887c4bcd0fcc90ee4c855d  gcc/testsuite/gcc.c-torture/compile/20040214-2.c
  4844394352db1681059dbadd54ce2854  gcc/testsuite/gcc.c-torture/compile/20040216-1.c
  5b70c083e89d32d775bc626e4f095e19  gcc/testsuite/gcc.c-torture/compile/20040219-1.c
  8191d898bc37c912367b8eb0cd2f4ed7  gcc/testsuite/gcc.c-torture/compile/20040220-1.c
--- 37661,37667 ----
  953cb1c8d3976e4726412911fcef7e4f  gcc/testsuite/gcc.c-torture/compile/20040202-1.c
  c783a4af3f2b6435cbc085881df31670  gcc/testsuite/gcc.c-torture/compile/20040209-1.c
  2007e088b687d647ae32990ead820391  gcc/testsuite/gcc.c-torture/compile/20040214-1.c
! e44993dcda77bfc0e36818ee729ec885  gcc/testsuite/gcc.c-torture/compile/20040214-2.c
  4844394352db1681059dbadd54ce2854  gcc/testsuite/gcc.c-torture/compile/20040216-1.c
  5b70c083e89d32d775bc626e4f095e19  gcc/testsuite/gcc.c-torture/compile/20040219-1.c
  8191d898bc37c912367b8eb0cd2f4ed7  gcc/testsuite/gcc.c-torture/compile/20040220-1.c
*************** a816a3df2d39eb4ceb20a875cba755d0  gcc/te
*** 35513,35519 ****
  1eb52f6308f83a217fed56a95f864e36  gcc/testsuite/gcc.c-torture/compile/20050622-1.c
  cd696bb4502a71449edff79a3a650cae  gcc/testsuite/gcc.c-torture/compile/20050721-1.c
  bed189b7c49420f6844654bc1da1484b  gcc/testsuite/gcc.c-torture/compile/20050801-1.c
! 00e1ecde6357f02d3643c21f1630daaa  gcc/testsuite/gcc.c-torture/compile/20050801-2.c
  166955f19b3a7c94ddbffc8e22d575d5  gcc/testsuite/gcc.c-torture/compile/20051207-1.c
  c4213cc481bcf324f0de6c500c49e5f4  gcc/testsuite/gcc.c-torture/compile/20051216-1.c
  f6a56bd7074e02e35caef0cba6f35b58  gcc/testsuite/gcc.c-torture/compile/20051228-1.c
--- 37726,37732 ----
  1eb52f6308f83a217fed56a95f864e36  gcc/testsuite/gcc.c-torture/compile/20050622-1.c
  cd696bb4502a71449edff79a3a650cae  gcc/testsuite/gcc.c-torture/compile/20050721-1.c
  bed189b7c49420f6844654bc1da1484b  gcc/testsuite/gcc.c-torture/compile/20050801-1.c
! be54057347132d24dfe8f4084f55651e  gcc/testsuite/gcc.c-torture/compile/20050801-2.c
  166955f19b3a7c94ddbffc8e22d575d5  gcc/testsuite/gcc.c-torture/compile/20051207-1.c
  c4213cc481bcf324f0de6c500c49e5f4  gcc/testsuite/gcc.c-torture/compile/20051216-1.c
  f6a56bd7074e02e35caef0cba6f35b58  gcc/testsuite/gcc.c-torture/compile/20051228-1.c
*************** b91f20dd6916e2c6d04a490d7fa34c91  gcc/te
*** 35554,35562 ****
  1013b465af9c38b5c22712a1be4121ee  gcc/testsuite/gcc.c-torture/compile/20071102-1.c
  a6c79b80c47a2df06ed032e1e82bb6c0  gcc/testsuite/gcc.c-torture/compile/20071105-1.c
  2189d262ba850147b65d72f3b70d8556  gcc/testsuite/gcc.c-torture/compile/20071107-1.c
! 73afc1d1ee6777af4556046c9dc546a1  gcc/testsuite/gcc.c-torture/compile/20071108-1.c
  cb0c97ecda7753c08ad624d5fc3a1c1a  gcc/testsuite/gcc.c-torture/compile/20071114-1.c
! 97e49239221633511a290d3777ab59ca  gcc/testsuite/gcc.c-torture/compile/20071117-1.c
  bfb94911d43e0749bdf2ec92f4ef459e  gcc/testsuite/gcc.c-torture/compile/20071118-1.c
  44628fe26b4923ef6ec28c86d8b2dd9f  gcc/testsuite/gcc.c-torture/compile/20071128-1.c
  2fab25083a86a197b7535a0de01a0ca1  gcc/testsuite/gcc.c-torture/compile/20071203-1.c
--- 37767,37775 ----
  1013b465af9c38b5c22712a1be4121ee  gcc/testsuite/gcc.c-torture/compile/20071102-1.c
  a6c79b80c47a2df06ed032e1e82bb6c0  gcc/testsuite/gcc.c-torture/compile/20071105-1.c
  2189d262ba850147b65d72f3b70d8556  gcc/testsuite/gcc.c-torture/compile/20071107-1.c
! 64b0440e17a853fd1f883a66a359e4df  gcc/testsuite/gcc.c-torture/compile/20071108-1.c
  cb0c97ecda7753c08ad624d5fc3a1c1a  gcc/testsuite/gcc.c-torture/compile/20071114-1.c
! 1c4ed593ffffe3b6a16dd69f7cff2247  gcc/testsuite/gcc.c-torture/compile/20071117-1.c
  bfb94911d43e0749bdf2ec92f4ef459e  gcc/testsuite/gcc.c-torture/compile/20071118-1.c
  44628fe26b4923ef6ec28c86d8b2dd9f  gcc/testsuite/gcc.c-torture/compile/20071128-1.c
  2fab25083a86a197b7535a0de01a0ca1  gcc/testsuite/gcc.c-torture/compile/20071203-1.c
*************** e271d873b1dc0a1a124a5e2603fb3043  gcc/te
*** 35569,35575 ****
  3fb219c85b0ca0fa91a2c16f6371ee75  gcc/testsuite/gcc.c-torture/compile/20080625-1.c
  87adab3cffabaeaf5f2c5ae78eb46e04  gcc/testsuite/gcc.c-torture/compile/20080628-1.c
  834cceb6053819b8a4045ed4dd667202  gcc/testsuite/gcc.c-torture/compile/20080704-1.c
! 25669d36d52316cd0cd6a5b518d00e96  gcc/testsuite/gcc.c-torture/compile/20080721-1.c
  1092a44864a482a69cfcf4926cbc1c25  gcc/testsuite/gcc.c-torture/compile/20080806-1.c
  f1b3e5835ed0ba4c6da0de667672e132  gcc/testsuite/gcc.c-torture/compile/20080812-1.c
  b4e4403eade2bc7731d63b46e2a41ab9  gcc/testsuite/gcc.c-torture/compile/20080820-1.c
--- 37782,37788 ----
  3fb219c85b0ca0fa91a2c16f6371ee75  gcc/testsuite/gcc.c-torture/compile/20080625-1.c
  87adab3cffabaeaf5f2c5ae78eb46e04  gcc/testsuite/gcc.c-torture/compile/20080628-1.c
  834cceb6053819b8a4045ed4dd667202  gcc/testsuite/gcc.c-torture/compile/20080704-1.c
! 4eb11ecd6c7f30de8a596782ff11ee6e  gcc/testsuite/gcc.c-torture/compile/20080721-1.c
  1092a44864a482a69cfcf4926cbc1c25  gcc/testsuite/gcc.c-torture/compile/20080806-1.c
  f1b3e5835ed0ba4c6da0de667672e132  gcc/testsuite/gcc.c-torture/compile/20080812-1.c
  b4e4403eade2bc7731d63b46e2a41ab9  gcc/testsuite/gcc.c-torture/compile/20080820-1.c
*************** a395fbe29f0c2fd7d7bd7cdeed61ed03  gcc/te
*** 35652,35658 ****
  c40fe2c892a13a47e35f3a421f0a3bdb  gcc/testsuite/gcc.c-torture/compile/86.c
  ab32e65ea5976f9083dc8234dae65343  gcc/testsuite/gcc.c-torture/compile/900116-1.c
  ffbcb174ccee57e24e8ff6916f8be73f  gcc/testsuite/gcc.c-torture/compile/900216-1.c
! 3dc49ab553ddbb32d00810ba8ef275c0  gcc/testsuite/gcc.c-torture/compile/900313-1.c
  79026aaee0f43ae9a67ab8b2e64cccb9  gcc/testsuite/gcc.c-torture/compile/900407-1.c
  a02364b749e287c7ed217cb15e6941ae  gcc/testsuite/gcc.c-torture/compile/900516-1.c
  0fae76138fbb514d67fafe81bce955d8  gcc/testsuite/gcc.c-torture/compile/920301-1.c
--- 37865,37871 ----
  c40fe2c892a13a47e35f3a421f0a3bdb  gcc/testsuite/gcc.c-torture/compile/86.c
  ab32e65ea5976f9083dc8234dae65343  gcc/testsuite/gcc.c-torture/compile/900116-1.c
  ffbcb174ccee57e24e8ff6916f8be73f  gcc/testsuite/gcc.c-torture/compile/900216-1.c
! 3330a6e9933cb35e521ce05aa314c123  gcc/testsuite/gcc.c-torture/compile/900313-1.c
  79026aaee0f43ae9a67ab8b2e64cccb9  gcc/testsuite/gcc.c-torture/compile/900407-1.c
  a02364b749e287c7ed217cb15e6941ae  gcc/testsuite/gcc.c-torture/compile/900516-1.c
  0fae76138fbb514d67fafe81bce955d8  gcc/testsuite/gcc.c-torture/compile/920301-1.c
*************** aeafe2d9c30382e2802215889558839f  gcc/te
*** 35666,35672 ****
  2263b18cffcfc2c714b44ee12e735085  gcc/testsuite/gcc.c-torture/compile/920428-1.c
  96e36fcdc4db17c2eb3e6be9b29bb5ea  gcc/testsuite/gcc.c-torture/compile/920428-2.c
  f7885c4f83452a5ca80935f907381a4c  gcc/testsuite/gcc.c-torture/compile/920428-3.c
! f886f6f3229f98f60b5fadd708f9009d  gcc/testsuite/gcc.c-torture/compile/920428-4.c
  0c8b2f809207fa49123103e74899a50c  gcc/testsuite/gcc.c-torture/compile/920428-5.c
  eecf565315f5f6b7f87919ef37893a50  gcc/testsuite/gcc.c-torture/compile/920428-6.c
  64a77943abb44f78ac61c448aba4d43d  gcc/testsuite/gcc.c-torture/compile/920428-7.c
--- 37879,37885 ----
  2263b18cffcfc2c714b44ee12e735085  gcc/testsuite/gcc.c-torture/compile/920428-1.c
  96e36fcdc4db17c2eb3e6be9b29bb5ea  gcc/testsuite/gcc.c-torture/compile/920428-2.c
  f7885c4f83452a5ca80935f907381a4c  gcc/testsuite/gcc.c-torture/compile/920428-3.c
! c7721566913afa785b94c64518f68393  gcc/testsuite/gcc.c-torture/compile/920428-4.c
  0c8b2f809207fa49123103e74899a50c  gcc/testsuite/gcc.c-torture/compile/920428-5.c
  eecf565315f5f6b7f87919ef37893a50  gcc/testsuite/gcc.c-torture/compile/920428-6.c
  64a77943abb44f78ac61c448aba4d43d  gcc/testsuite/gcc.c-torture/compile/920428-7.c
*************** b9e847994b53ca110e153b3b0b77a857  gcc/te
*** 35686,35692 ****
  f599a4a9777ec26a5ab144487036cb94  gcc/testsuite/gcc.c-torture/compile/920501-22.c
  c8069affa941653c8a1b82111277f1b4  gcc/testsuite/gcc.c-torture/compile/920501-23.c
  a683c6866fdbf89d24fdbac6e09f760e  gcc/testsuite/gcc.c-torture/compile/920501-3.c
! 7a1507f7627cc39808868eaa2a68ec5f  gcc/testsuite/gcc.c-torture/compile/920501-4.c
  442fe9e77a0a5c45092b332eb6564f5b  gcc/testsuite/gcc.c-torture/compile/920501-6.c
  e980af28b8d20ec40068b5acaba560b6  gcc/testsuite/gcc.c-torture/compile/920501-7.c
  b5325659690cfe9c53901212b657f5f1  gcc/testsuite/gcc.c-torture/compile/920501-8.c
--- 37899,37905 ----
  f599a4a9777ec26a5ab144487036cb94  gcc/testsuite/gcc.c-torture/compile/920501-22.c
  c8069affa941653c8a1b82111277f1b4  gcc/testsuite/gcc.c-torture/compile/920501-23.c
  a683c6866fdbf89d24fdbac6e09f760e  gcc/testsuite/gcc.c-torture/compile/920501-3.c
! 4c84ccb3523bb6a16a4360ba1357e62a  gcc/testsuite/gcc.c-torture/compile/920501-4.c
  442fe9e77a0a5c45092b332eb6564f5b  gcc/testsuite/gcc.c-torture/compile/920501-6.c
  e980af28b8d20ec40068b5acaba560b6  gcc/testsuite/gcc.c-torture/compile/920501-7.c
  b5325659690cfe9c53901212b657f5f1  gcc/testsuite/gcc.c-torture/compile/920501-8.c
*************** f95d1bc7b947261fe13ac831b93e9f0f  gcc/te
*** 35737,35744 ****
  67f9a365ebb48363f8c36e3453da902a  gcc/testsuite/gcc.c-torture/compile/920928-5.c
  642c7bc08299762b523fc3b821b5c9f7  gcc/testsuite/gcc.c-torture/compile/920928-6.c
  f4fa1bbf462edd563b8b4325def214ab  gcc/testsuite/gcc.c-torture/compile/921004-1.c
! a2ac01569de5c161cfcf92f5aae83ba4  gcc/testsuite/gcc.c-torture/compile/921011-1.c
! 353c7e3e934aca89ca4522ff059e329d  gcc/testsuite/gcc.c-torture/compile/921011-2.c
  3c0977eae8eb617f31c1c8a2569cb179  gcc/testsuite/gcc.c-torture/compile/921012-1.c
  809a60440e40f5097a6a40e708e91841  gcc/testsuite/gcc.c-torture/compile/921012-2.c
  47ac9a48337b195857dba336e88503c9  gcc/testsuite/gcc.c-torture/compile/921013-1.c
--- 37950,37957 ----
  67f9a365ebb48363f8c36e3453da902a  gcc/testsuite/gcc.c-torture/compile/920928-5.c
  642c7bc08299762b523fc3b821b5c9f7  gcc/testsuite/gcc.c-torture/compile/920928-6.c
  f4fa1bbf462edd563b8b4325def214ab  gcc/testsuite/gcc.c-torture/compile/921004-1.c
! 18964657fc9e9f392727c13634c3bb8a  gcc/testsuite/gcc.c-torture/compile/921011-1.c
! 2bf7d0f29a633c8ec02ec8943ab5cf87  gcc/testsuite/gcc.c-torture/compile/921011-2.c
  3c0977eae8eb617f31c1c8a2569cb179  gcc/testsuite/gcc.c-torture/compile/921012-1.c
  809a60440e40f5097a6a40e708e91841  gcc/testsuite/gcc.c-torture/compile/921012-2.c
  47ac9a48337b195857dba336e88503c9  gcc/testsuite/gcc.c-torture/compile/921013-1.c
*************** eed54627931a39322edded86090db05c  gcc/te
*** 35803,35809 ****
  d187434c58ba9d3d4b3cefa9badc6ed6  gcc/testsuite/gcc.c-torture/compile/931013-3.c
  544c01642e23c4661305dc928dfb10a0  gcc/testsuite/gcc.c-torture/compile/931018-1.c
  3cc7f660200a057c1bb859455113134b  gcc/testsuite/gcc.c-torture/compile/931031-1.c
! 72f019edaa6bfbb471f7de69e5fe7b72  gcc/testsuite/gcc.c-torture/compile/931102-1.c
  ec9a9191f11da24ee6b0f4eae8ecfbfe  gcc/testsuite/gcc.c-torture/compile/931102-2.c
  c0133a0e229f4a2b73f5525157b1a1e5  gcc/testsuite/gcc.c-torture/compile/931203-1.c
  09748da21353bd3000f020b1966d985b  gcc/testsuite/gcc.c-torture/compile/940611-1.c
--- 38016,38022 ----
  d187434c58ba9d3d4b3cefa9badc6ed6  gcc/testsuite/gcc.c-torture/compile/931013-3.c
  544c01642e23c4661305dc928dfb10a0  gcc/testsuite/gcc.c-torture/compile/931018-1.c
  3cc7f660200a057c1bb859455113134b  gcc/testsuite/gcc.c-torture/compile/931031-1.c
! 5ccb18eabe9a468d81c20c5b2eb3d5d6  gcc/testsuite/gcc.c-torture/compile/931102-1.c
  ec9a9191f11da24ee6b0f4eae8ecfbfe  gcc/testsuite/gcc.c-torture/compile/931102-2.c
  c0133a0e229f4a2b73f5525157b1a1e5  gcc/testsuite/gcc.c-torture/compile/931203-1.c
  09748da21353bd3000f020b1966d985b  gcc/testsuite/gcc.c-torture/compile/940611-1.c
*************** df05d0f55028e7fa162dc58e4639e07f  gcc/te
*** 35891,35897 ****
  0674ec0f5994212a8cd07bf8e449dd13  gcc/testsuite/gcc.c-torture/compile/990617-1.c
  73340ccf38a461307f82af1e389cb124  gcc/testsuite/gcc.c-torture/compile/990625-1.c
  55737caea9b320ea1ab2f34c3695b9b6  gcc/testsuite/gcc.c-torture/compile/990625-2.c
! 882fc59712bab5c1ab6f749079bfb1b3  gcc/testsuite/gcc.c-torture/compile/990801-1.c
  1187937588621fe024abda4066f9e15c  gcc/testsuite/gcc.c-torture/compile/990801-2.c
  05154cc921fa0b6e99d0e7dc2ac7f0dc  gcc/testsuite/gcc.c-torture/compile/990829-1.c
  9a0d5b59eebd3265e17986808012fa60  gcc/testsuite/gcc.c-torture/compile/990913-1.c
--- 38104,38110 ----
  0674ec0f5994212a8cd07bf8e449dd13  gcc/testsuite/gcc.c-torture/compile/990617-1.c
  73340ccf38a461307f82af1e389cb124  gcc/testsuite/gcc.c-torture/compile/990625-1.c
  55737caea9b320ea1ab2f34c3695b9b6  gcc/testsuite/gcc.c-torture/compile/990625-2.c
! 36e64831aaec47062cc3fba6c15312a4  gcc/testsuite/gcc.c-torture/compile/990801-1.c
  1187937588621fe024abda4066f9e15c  gcc/testsuite/gcc.c-torture/compile/990801-2.c
  05154cc921fa0b6e99d0e7dc2ac7f0dc  gcc/testsuite/gcc.c-torture/compile/990829-1.c
  9a0d5b59eebd3265e17986808012fa60  gcc/testsuite/gcc.c-torture/compile/990913-1.c
*************** c110a0e097184d9410d001051c6a502c  gcc/te
*** 35967,35974 ****
  44775d2c2c8031eaffd51797729f6b78  gcc/testsuite/gcc.c-torture/compile/asmgoto-4.c
  7ce7e7b468cce96a009cfdffb99bccdf  gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
  152fb49f88b02373c2259108a6512933  gcc/testsuite/gcc.c-torture/compile/asmgoto-6.c
! 7f74f43595550070a844def607abe69b  gcc/testsuite/gcc.c-torture/compile/attr-complex-method-2.c
! 6cceb06a530ca6cf611287cae72b0437  gcc/testsuite/gcc.c-torture/compile/attr-complex-method.c
  518904c535699cbcecc96482c0284cbe  gcc/testsuite/gcc.c-torture/compile/attr-retain-1.c
  5a438692e9c3f90679360b39bf72aa6d  gcc/testsuite/gcc.c-torture/compile/attr-retain-2.c
  16c9fd8e3aabf68056e65c3fde97fd4c  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-1.c
--- 38180,38187 ----
  44775d2c2c8031eaffd51797729f6b78  gcc/testsuite/gcc.c-torture/compile/asmgoto-4.c
  7ce7e7b468cce96a009cfdffb99bccdf  gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
  152fb49f88b02373c2259108a6512933  gcc/testsuite/gcc.c-torture/compile/asmgoto-6.c
! 6e9cb7f7a352ebadff4fcfa5eac8ef03  gcc/testsuite/gcc.c-torture/compile/attr-complex-method-2.c
! f25a713313e0a0629373dc1bb59fb576  gcc/testsuite/gcc.c-torture/compile/attr-complex-method.c
  518904c535699cbcecc96482c0284cbe  gcc/testsuite/gcc.c-torture/compile/attr-retain-1.c
  5a438692e9c3f90679360b39bf72aa6d  gcc/testsuite/gcc.c-torture/compile/attr-retain-2.c
  16c9fd8e3aabf68056e65c3fde97fd4c  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-1.c
*************** c037cb218a407576629fa49b2d51de87  gcc/te
*** 36024,36030 ****
  2db408a5885d812f5975ff6d22d8deb5  gcc/testsuite/gcc.c-torture/compile/cn1.c
  36de65380f2874dfd18759a9177a5288  gcc/testsuite/gcc.c-torture/compile/comb.c
  646c27d881cf11bdfb63a423ffd3b604  gcc/testsuite/gcc.c-torture/compile/combine-hang.c
! 37845fada48b50629297ae7551cf0ec2  gcc/testsuite/gcc.c-torture/compile/compile.exp
  a87e64aae03ac41e010753e916d8ee6d  gcc/testsuite/gcc.c-torture/compile/complex-1.c
  9d993598ddcfa7b7cd841fe5a114cec2  gcc/testsuite/gcc.c-torture/compile/complex-2.c
  e78988c1feb46a12813cd47feaaab89f  gcc/testsuite/gcc.c-torture/compile/complex-3.c
--- 38237,38243 ----
  2db408a5885d812f5975ff6d22d8deb5  gcc/testsuite/gcc.c-torture/compile/cn1.c
  36de65380f2874dfd18759a9177a5288  gcc/testsuite/gcc.c-torture/compile/comb.c
  646c27d881cf11bdfb63a423ffd3b604  gcc/testsuite/gcc.c-torture/compile/combine-hang.c
! ba98f5e328ae3958ef32803863a1e21a  gcc/testsuite/gcc.c-torture/compile/compile.exp
  a87e64aae03ac41e010753e916d8ee6d  gcc/testsuite/gcc.c-torture/compile/complex-1.c
  9d993598ddcfa7b7cd841fe5a114cec2  gcc/testsuite/gcc.c-torture/compile/complex-2.c
  e78988c1feb46a12813cd47feaaab89f  gcc/testsuite/gcc.c-torture/compile/complex-3.c
*************** e5e909189675ca6cb666ee2344ef6dff  gcc/te
*** 36052,36058 ****
  3fdc86f0bcaebaddae6a03d0b118be65  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-2.c
  a0d28e889a387eda899e0088f7054f39  gcc/testsuite/gcc.c-torture/compile/ddd.c
  8b9dfe193253e50240d7b6e0ce4cae88  gcc/testsuite/gcc.c-torture/compile/dead.c
! a0cfda0503e80c3ab337b8cd51778fc5  gcc/testsuite/gcc.c-torture/compile/debugvlafunction-1.c
  7f42a6b0c9b7e2103480f9c422fe5371  gcc/testsuite/gcc.c-torture/compile/delay.c
  66705753f91364feebcabf81a6342ddb  gcc/testsuite/gcc.c-torture/compile/di.c
  f1264d2daacc48775411bd4bf222ad2a  gcc/testsuite/gcc.c-torture/compile/dic.c
--- 38265,38271 ----
  3fdc86f0bcaebaddae6a03d0b118be65  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-2.c
  a0d28e889a387eda899e0088f7054f39  gcc/testsuite/gcc.c-torture/compile/ddd.c
  8b9dfe193253e50240d7b6e0ce4cae88  gcc/testsuite/gcc.c-torture/compile/dead.c
! d2420f8ca584a85da6fe0b3af29bca3c  gcc/testsuite/gcc.c-torture/compile/debugvlafunction-1.c
  7f42a6b0c9b7e2103480f9c422fe5371  gcc/testsuite/gcc.c-torture/compile/delay.c
  66705753f91364feebcabf81a6342ddb  gcc/testsuite/gcc.c-torture/compile/di.c
  f1264d2daacc48775411bd4bf222ad2a  gcc/testsuite/gcc.c-torture/compile/dic.c
*************** afe4aef5d3378c3de0bf57047eb44e18  gcc/te
*** 36123,36129 ****
  5b7186b86538dc952f4c95318fdce09c  gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
  7f007616a05afcbae38d8344cd9cbeb5  gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
  36d72264f5e696b511dde1637d841085  gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
! 55cfdb5990e20b1be0681fb2deba1a7e  gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
  e654525b67ca3025d522d3690364a827  gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
  8e1beed96cc2ce74ced2ed0fb7ca7126  gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c
  23cd80613f5e759de2773be4b23d4989  gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
--- 38336,38342 ----
  5b7186b86538dc952f4c95318fdce09c  gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
  7f007616a05afcbae38d8344cd9cbeb5  gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
  36d72264f5e696b511dde1637d841085  gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
! 7a6a2f182b9f4c8c27139a56019d2cf2  gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
  e654525b67ca3025d522d3690364a827  gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
  8e1beed96cc2ce74ced2ed0fb7ca7126  gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c
  23cd80613f5e759de2773be4b23d4989  gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
*************** b6d624af992868a3efe632ab9eac9a01  gcc/te
*** 36174,36180 ****
  46f79a3685f6d7a59fe50915d52da2fc  gcc/testsuite/gcc.c-torture/compile/n1.c
  a54d529b53ec5142d62b0d6c4f76f5df  gcc/testsuite/gcc.c-torture/compile/nand.c
  e4beb78486cac2a3afdbabec697f516e  gcc/testsuite/gcc.c-torture/compile/neg.c
! 83ac972512e83676cd85d42fdef09dc3  gcc/testsuite/gcc.c-torture/compile/nested-1.c
  b8de7b703904b672e38064eeb7129e9b  gcc/testsuite/gcc.c-torture/compile/nested-2.c
  6ff0aa732e1e6e0cc9296a00829c8895  gcc/testsuite/gcc.c-torture/compile/nested-3.c
  cdc3153ef0b80bd69492d90e9aeda8f9  gcc/testsuite/gcc.c-torture/compile/o.c
--- 38387,38393 ----
  46f79a3685f6d7a59fe50915d52da2fc  gcc/testsuite/gcc.c-torture/compile/n1.c
  a54d529b53ec5142d62b0d6c4f76f5df  gcc/testsuite/gcc.c-torture/compile/nand.c
  e4beb78486cac2a3afdbabec697f516e  gcc/testsuite/gcc.c-torture/compile/neg.c
! 9a2116004689053566ee8eefab25743f  gcc/testsuite/gcc.c-torture/compile/nested-1.c
  b8de7b703904b672e38064eeb7129e9b  gcc/testsuite/gcc.c-torture/compile/nested-2.c
  6ff0aa732e1e6e0cc9296a00829c8895  gcc/testsuite/gcc.c-torture/compile/nested-3.c
  cdc3153ef0b80bd69492d90e9aeda8f9  gcc/testsuite/gcc.c-torture/compile/o.c
*************** d46fb19abc958fb1b3c13ff252355ef1  gcc/te
*** 36186,36199 ****
  307a929234d4cfaf21c627a7e4bddf05  gcc/testsuite/gcc.c-torture/compile/p.c
  4af82ad4eaf6c4e58ebbbc0eaa3c98b9  gcc/testsuite/gcc.c-torture/compile/packed-1.c
  8aa034128a6f591af42b1b7a04651f2c  gcc/testsuite/gcc.c-torture/compile/packed-aligned-1.c
! f0d450c44cd489a586cf544551d4568d  gcc/testsuite/gcc.c-torture/compile/parms.c
  66d06b5592982de1f6835d9bb7e40e61  gcc/testsuite/gcc.c-torture/compile/pass.c
  c2d707fb16737ce0242127be84e3ed5a  gcc/testsuite/gcc.c-torture/compile/pc44485.c
  6a87e81aa60353be798e48130f2c4ca2  gcc/testsuite/gcc.c-torture/compile/pmt.c
  048ad13954512f77d283379cc894eaed  gcc/testsuite/gcc.c-torture/compile/poor.c
  3cde6591b96b860386d7a3279c0b7928  gcc/testsuite/gcc.c-torture/compile/pp.c
  5e2710168af4ad47d5838cfdfc0a5ecd  gcc/testsuite/gcc.c-torture/compile/pr100106.c
! a542de03bbd3e4126e78e5767194e993  gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
  9dcc503ae55f6c0f214640860f3e5ff3  gcc/testsuite/gcc.c-torture/compile/pr100278.c
  ede20faf9b203e25b39b7032970f58be  gcc/testsuite/gcc.c-torture/compile/pr100305.c
  dcaa1bc6d2f365241f63a018eb986a02  gcc/testsuite/gcc.c-torture/compile/pr100316.c
--- 38399,38412 ----
  307a929234d4cfaf21c627a7e4bddf05  gcc/testsuite/gcc.c-torture/compile/p.c
  4af82ad4eaf6c4e58ebbbc0eaa3c98b9  gcc/testsuite/gcc.c-torture/compile/packed-1.c
  8aa034128a6f591af42b1b7a04651f2c  gcc/testsuite/gcc.c-torture/compile/packed-aligned-1.c
! b7f4db70058f2bbed4c9aa90228fa2be  gcc/testsuite/gcc.c-torture/compile/parms.c
  66d06b5592982de1f6835d9bb7e40e61  gcc/testsuite/gcc.c-torture/compile/pass.c
  c2d707fb16737ce0242127be84e3ed5a  gcc/testsuite/gcc.c-torture/compile/pc44485.c
  6a87e81aa60353be798e48130f2c4ca2  gcc/testsuite/gcc.c-torture/compile/pmt.c
  048ad13954512f77d283379cc894eaed  gcc/testsuite/gcc.c-torture/compile/poor.c
  3cde6591b96b860386d7a3279c0b7928  gcc/testsuite/gcc.c-torture/compile/pp.c
  5e2710168af4ad47d5838cfdfc0a5ecd  gcc/testsuite/gcc.c-torture/compile/pr100106.c
! 6e0beabaadfe149f625e1b6995679f27  gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
  9dcc503ae55f6c0f214640860f3e5ff3  gcc/testsuite/gcc.c-torture/compile/pr100278.c
  ede20faf9b203e25b39b7032970f58be  gcc/testsuite/gcc.c-torture/compile/pr100305.c
  dcaa1bc6d2f365241f63a018eb986a02  gcc/testsuite/gcc.c-torture/compile/pr100316.c
*************** a2656a59d00f50e3a24dc4e71bfb3973  gcc/te
*** 36219,36225 ****
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
! 3a972fb6843fac5fd85dc4f4a75d9d5f  gcc/testsuite/gcc.c-torture/compile/pr106101.c
  8087b95cf7fb99e888039a48ff88ff60  gcc/testsuite/gcc.c-torture/compile/pr106433.c
  a8f07a6ed2db26f43f2c811cc025880c  gcc/testsuite/gcc.c-torture/compile/pr106537-1.c
  06637ec03dd435f0593fbc4ea0fbe9ea  gcc/testsuite/gcc.c-torture/compile/pr106537-2.c
--- 38432,38438 ----
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
! 9314144aad47aa807ff2bbd298e98a39  gcc/testsuite/gcc.c-torture/compile/pr106101.c
  8087b95cf7fb99e888039a48ff88ff60  gcc/testsuite/gcc.c-torture/compile/pr106433.c
  a8f07a6ed2db26f43f2c811cc025880c  gcc/testsuite/gcc.c-torture/compile/pr106537-1.c
  06637ec03dd435f0593fbc4ea0fbe9ea  gcc/testsuite/gcc.c-torture/compile/pr106537-2.c
*************** b7b98ba4ebc436aaffc17c2db6a66875  gcc/te
*** 36280,36292 ****
  4bcce0dfd94023e3636b6a532d8d4de4  gcc/testsuite/gcc.c-torture/compile/pr113228.c
  a9d589b4ef5406d1fedd32cb046b9e79  gcc/testsuite/gcc.c-torture/compile/pr113322-1.c
  597d2b1dda1b08561fbe83f15c76f510  gcc/testsuite/gcc.c-torture/compile/pr113603.c
! 1a7448487530f0fec94499f40fa81340  gcc/testsuite/gcc.c-torture/compile/pr113616.c
  7ef1724fcd81ffe7c8df3ed4c66d5576  gcc/testsuite/gcc.c-torture/compile/pr113623.c
  43e7330e295ee3a8b072d1e81eecfc77  gcc/testsuite/gcc.c-torture/compile/pr113759.c
  cddb5f327c3c1dc3f843d95d86f7f6a9  gcc/testsuite/gcc.c-torture/compile/pr115143-1.c
  ece87744c4e664bf39922d9937465df1  gcc/testsuite/gcc.c-torture/compile/pr115143-2.c
  14405634ff4726e79f727af592887eec  gcc/testsuite/gcc.c-torture/compile/pr115143-3.c
! a374b3675317752237cc478b2e662a04  gcc/testsuite/gcc.c-torture/compile/pr115277.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
--- 38493,38514 ----
  4bcce0dfd94023e3636b6a532d8d4de4  gcc/testsuite/gcc.c-torture/compile/pr113228.c
  a9d589b4ef5406d1fedd32cb046b9e79  gcc/testsuite/gcc.c-torture/compile/pr113322-1.c
  597d2b1dda1b08561fbe83f15c76f510  gcc/testsuite/gcc.c-torture/compile/pr113603.c
! 06b9053dabd63b21c6694579f5f47bde  gcc/testsuite/gcc.c-torture/compile/pr113616.c
  7ef1724fcd81ffe7c8df3ed4c66d5576  gcc/testsuite/gcc.c-torture/compile/pr113623.c
  43e7330e295ee3a8b072d1e81eecfc77  gcc/testsuite/gcc.c-torture/compile/pr113759.c
  cddb5f327c3c1dc3f843d95d86f7f6a9  gcc/testsuite/gcc.c-torture/compile/pr115143-1.c
  ece87744c4e664bf39922d9937465df1  gcc/testsuite/gcc.c-torture/compile/pr115143-2.c
  14405634ff4726e79f727af592887eec  gcc/testsuite/gcc.c-torture/compile/pr115143-3.c
! eea87d83e17b279b87e26692758e741d  gcc/testsuite/gcc.c-torture/compile/pr115881.c
! 55a54152820578acabaf82298af82f50  gcc/testsuite/gcc.c-torture/compile/pr116009.c
! a36b5332929fccce3ba46aacdd6e1984  gcc/testsuite/gcc.c-torture/compile/pr116348.c
! 49d6139389714e075cde88f08d4d1f2e  gcc/testsuite/gcc.c-torture/compile/pr116516.c
! 0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
! 50f2676721fef746c58625b6346f5755  gcc/testsuite/gcc.c-torture/compile/pr117449.c
! 7885242b11fb54f407c5b67910c8c93a  gcc/testsuite/gcc.c-torture/compile/pr118362.c
! ae878ea349c8f9f2a197bf59dcff9d3a  gcc/testsuite/gcc.c-torture/compile/pr118429.c
! 6d7416e999725c0f023c4322893b1214  gcc/testsuite/gcc.c-torture/compile/pr118501.c
! 4e917b913d6f56bf343a7bff79797c93  gcc/testsuite/gcc.c-torture/compile/pr119226.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
*************** c26a1a26e168c4a347da48f6a832b074  gcc/te
*** 36302,36308 ****
  2c599088952b8e02e3867682a915ab48  gcc/testsuite/gcc.c-torture/compile/pr16808.c
  8bda599709a248b2744792626c3ae96d  gcc/testsuite/gcc.c-torture/compile/pr17119.c
  bf9f2dd1b8103e560516d22c57e90963  gcc/testsuite/gcc.c-torture/compile/pr17273.c
! e25060bc2a7a7b7489b8d1c74f22cf39  gcc/testsuite/gcc.c-torture/compile/pr17397.c
  922eec36854cc0b0cae5adbd68b4fa1f  gcc/testsuite/gcc.c-torture/compile/pr17407.c
  c4b53f384064b9c670cd6ad8af6fb50e  gcc/testsuite/gcc.c-torture/compile/pr17408.c
  28eac5f57a069e485059b40ffe2a14bf  gcc/testsuite/gcc.c-torture/compile/pr17529.c
--- 38524,38530 ----
  2c599088952b8e02e3867682a915ab48  gcc/testsuite/gcc.c-torture/compile/pr16808.c
  8bda599709a248b2744792626c3ae96d  gcc/testsuite/gcc.c-torture/compile/pr17119.c
  bf9f2dd1b8103e560516d22c57e90963  gcc/testsuite/gcc.c-torture/compile/pr17273.c
! 2885dec162e0b9c9ba65738db3d0d7ed  gcc/testsuite/gcc.c-torture/compile/pr17397.c
  922eec36854cc0b0cae5adbd68b4fa1f  gcc/testsuite/gcc.c-torture/compile/pr17407.c
  c4b53f384064b9c670cd6ad8af6fb50e  gcc/testsuite/gcc.c-torture/compile/pr17408.c
  28eac5f57a069e485059b40ffe2a14bf  gcc/testsuite/gcc.c-torture/compile/pr17529.c
*************** bab8139e533ede12957fdeb26f785f9b  gcc/te
*** 36441,36447 ****
  def8d929397c0c021287ef20deb7731f  gcc/testsuite/gcc.c-torture/compile/pr34113.c
  4eb74fc2ac93513f6232b50c4ded653a  gcc/testsuite/gcc.c-torture/compile/pr34127.c
  8196ab1fc82a93b4de14f67802f63a92  gcc/testsuite/gcc.c-torture/compile/pr34138.c
! 5b6de986f827b23ff87bf57021152caa  gcc/testsuite/gcc.c-torture/compile/pr34334.c
  2f7922c2d0a8b5c86d353c6149f7df7a  gcc/testsuite/gcc.c-torture/compile/pr34448.c
  d21ddc645e6974801d9ee9549c197483  gcc/testsuite/gcc.c-torture/compile/pr34458.c
  a62824fba46ee18577ada84a7ef15012  gcc/testsuite/gcc.c-torture/compile/pr34648.c
--- 38663,38669 ----
  def8d929397c0c021287ef20deb7731f  gcc/testsuite/gcc.c-torture/compile/pr34113.c
  4eb74fc2ac93513f6232b50c4ded653a  gcc/testsuite/gcc.c-torture/compile/pr34127.c
  8196ab1fc82a93b4de14f67802f63a92  gcc/testsuite/gcc.c-torture/compile/pr34138.c
! 88f424e2150f55990341fddcce14d5ee  gcc/testsuite/gcc.c-torture/compile/pr34334.c
  2f7922c2d0a8b5c86d353c6149f7df7a  gcc/testsuite/gcc.c-torture/compile/pr34448.c
  d21ddc645e6974801d9ee9549c197483  gcc/testsuite/gcc.c-torture/compile/pr34458.c
  a62824fba46ee18577ada84a7ef15012  gcc/testsuite/gcc.c-torture/compile/pr34648.c
*************** e99a39e13086a19999f30cdaee8b0209  gcc/te
*** 36451,36457 ****
  90843d5d26ada6fb25259805974d4fbe  gcc/testsuite/gcc.c-torture/compile/pr34885.c
  0a16781b1ade1ffae0526b7cbe58552f  gcc/testsuite/gcc.c-torture/compile/pr34966.c
  0e21455d38d4535c52b2aaa7fbedd74a  gcc/testsuite/gcc.c-torture/compile/pr34993.c
! ffd10c61fdcad70dbf057edb0a1f1f8a  gcc/testsuite/gcc.c-torture/compile/pr35006.c
  a4327eb545b3dce495f11857bcda25fd  gcc/testsuite/gcc.c-torture/compile/pr35043.c
  3f5634d37754a1bbe5c1bfb62791811b  gcc/testsuite/gcc.c-torture/compile/pr35171.c
  47802deb4d8181e4991bd58970a74efd  gcc/testsuite/gcc.c-torture/compile/pr35318.c
--- 38673,38679 ----
  90843d5d26ada6fb25259805974d4fbe  gcc/testsuite/gcc.c-torture/compile/pr34885.c
  0a16781b1ade1ffae0526b7cbe58552f  gcc/testsuite/gcc.c-torture/compile/pr34966.c
  0e21455d38d4535c52b2aaa7fbedd74a  gcc/testsuite/gcc.c-torture/compile/pr34993.c
! e9598e0427757b1563b4b16f502c40fc  gcc/testsuite/gcc.c-torture/compile/pr35006.c
  a4327eb545b3dce495f11857bcda25fd  gcc/testsuite/gcc.c-torture/compile/pr35043.c
  3f5634d37754a1bbe5c1bfb62791811b  gcc/testsuite/gcc.c-torture/compile/pr35171.c
  47802deb4d8181e4991bd58970a74efd  gcc/testsuite/gcc.c-torture/compile/pr35318.c
*************** c159db3cb804c886bf4d0632f8853f8f  gcc/te
*** 36473,36479 ****
  66f9c1d56473df6427510e6cfc0210e9  gcc/testsuite/gcc.c-torture/compile/pr36817.c
  c208504ce5d43cf5690c9765600de072  gcc/testsuite/gcc.c-torture/compile/pr36988.c
  4229e1984b443504d9ae02d641f8c6ff  gcc/testsuite/gcc.c-torture/compile/pr37026.c
! 10037c09ddb99d5c9a2218ec7c8d98cd  gcc/testsuite/gcc.c-torture/compile/pr37056.c
  c5b42e26aff2cce00bbf9fa14cf09d96  gcc/testsuite/gcc.c-torture/compile/pr37078.c
  c72dbae746881b9aa9dd0ef83eb5c61c  gcc/testsuite/gcc.c-torture/compile/pr37207.c
  952f5c3a33aa0c49515ecdae9eead22d  gcc/testsuite/gcc.c-torture/compile/pr37258.c
--- 38695,38701 ----
  66f9c1d56473df6427510e6cfc0210e9  gcc/testsuite/gcc.c-torture/compile/pr36817.c
  c208504ce5d43cf5690c9765600de072  gcc/testsuite/gcc.c-torture/compile/pr36988.c
  4229e1984b443504d9ae02d641f8c6ff  gcc/testsuite/gcc.c-torture/compile/pr37026.c
! f011c6231f655b6945c1a8c80270ba87  gcc/testsuite/gcc.c-torture/compile/pr37056.c
  c5b42e26aff2cce00bbf9fa14cf09d96  gcc/testsuite/gcc.c-torture/compile/pr37078.c
  c72dbae746881b9aa9dd0ef83eb5c61c  gcc/testsuite/gcc.c-torture/compile/pr37207.c
  952f5c3a33aa0c49515ecdae9eead22d  gcc/testsuite/gcc.c-torture/compile/pr37258.c
*************** b3a19ce1e6ed7869eb9ad92dbb3aa8bb  gcc/te
*** 36531,36537 ****
  e1d96bb4ce2cd9a4d9f1b8b4c38b7b16  gcc/testsuite/gcc.c-torture/compile/pr39202.c
  3d26cb19558b31e1a119787f84efdeeb  gcc/testsuite/gcc.c-torture/compile/pr39360.c
  f13d8c4277f2685ae3c6685a0a4e4218  gcc/testsuite/gcc.c-torture/compile/pr39394.c
! 78fc7128f3054233c51255d238f01f20  gcc/testsuite/gcc.c-torture/compile/pr39423-1.c
  b0fa55e28e4acfe375953c316bca4cfc  gcc/testsuite/gcc.c-torture/compile/pr39423-2.c
  5188475230dc5afbc89fc2ef831e2da1  gcc/testsuite/gcc.c-torture/compile/pr39614-1.c
  b06fe2cbbc1b7635a25ddc344a4f4705  gcc/testsuite/gcc.c-torture/compile/pr39614-2.c
--- 38753,38759 ----
  e1d96bb4ce2cd9a4d9f1b8b4c38b7b16  gcc/testsuite/gcc.c-torture/compile/pr39202.c
  3d26cb19558b31e1a119787f84efdeeb  gcc/testsuite/gcc.c-torture/compile/pr39360.c
  f13d8c4277f2685ae3c6685a0a4e4218  gcc/testsuite/gcc.c-torture/compile/pr39394.c
! 5cbede65563957d77e4bf0497fa94929  gcc/testsuite/gcc.c-torture/compile/pr39423-1.c
  b0fa55e28e4acfe375953c316bca4cfc  gcc/testsuite/gcc.c-torture/compile/pr39423-2.c
  5188475230dc5afbc89fc2ef831e2da1  gcc/testsuite/gcc.c-torture/compile/pr39614-1.c
  b06fe2cbbc1b7635a25ddc344a4f4705  gcc/testsuite/gcc.c-torture/compile/pr39614-2.c
*************** b573e8b4252567df50cb08f6e5a5d335  gcc/te
*** 36582,36588 ****
  c9fb9c78f3f29c4cb7ea685ce7dfd98b  gcc/testsuite/gcc.c-torture/compile/pr41181.c
  35b056a51d001d3e435b108f7ecc0082  gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
  68971be1b3a07dafd36a6967684bd97e  gcc/testsuite/gcc.c-torture/compile/pr41282.c
! 0c3626fdb0cd286f76f5fabca2112f6e  gcc/testsuite/gcc.c-torture/compile/pr41469.c
  d01a2b137559bd26c8359756dba6457d  gcc/testsuite/gcc.c-torture/compile/pr41634.c
  72670e4370c1e6875c04a7e99763444c  gcc/testsuite/gcc.c-torture/compile/pr41646.c
  702e420628ea37ef1bc8c3e0acc5dcb1  gcc/testsuite/gcc.c-torture/compile/pr41661.c
--- 38804,38810 ----
  c9fb9c78f3f29c4cb7ea685ce7dfd98b  gcc/testsuite/gcc.c-torture/compile/pr41181.c
  35b056a51d001d3e435b108f7ecc0082  gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
  68971be1b3a07dafd36a6967684bd97e  gcc/testsuite/gcc.c-torture/compile/pr41282.c
! dd8ca0f16dcb2e778c2d98320d552e08  gcc/testsuite/gcc.c-torture/compile/pr41469.c
  d01a2b137559bd26c8359756dba6457d  gcc/testsuite/gcc.c-torture/compile/pr41634.c
  72670e4370c1e6875c04a7e99763444c  gcc/testsuite/gcc.c-torture/compile/pr41646.c
  702e420628ea37ef1bc8c3e0acc5dcb1  gcc/testsuite/gcc.c-torture/compile/pr41661.c
*************** cc02982a768ef376bb5b625c481ada2e  gcc/te
*** 36611,36617 ****
  cee69619caa9666102d6672ef44dc238  gcc/testsuite/gcc.c-torture/compile/pr42730.c
  ecb5439125a9127a3294acfa7d2780f4  gcc/testsuite/gcc.c-torture/compile/pr42749.c
  c5120bf1af38535196ef2bde7295a8b2  gcc/testsuite/gcc.c-torture/compile/pr42927.c
! 4de772c108dab451abdf982fc283c410  gcc/testsuite/gcc.c-torture/compile/pr42956.c
  10f2ac7f6a0e2b70d2fddff7defbd100  gcc/testsuite/gcc.c-torture/compile/pr42998.c
  78af6a67a364e64fb8c6acaf6f0af1c1  gcc/testsuite/gcc.c-torture/compile/pr43066.c
  bd01c709e631437b671f4bff04b131d2  gcc/testsuite/gcc.c-torture/compile/pr43164.c
--- 38833,38839 ----
  cee69619caa9666102d6672ef44dc238  gcc/testsuite/gcc.c-torture/compile/pr42730.c
  ecb5439125a9127a3294acfa7d2780f4  gcc/testsuite/gcc.c-torture/compile/pr42749.c
  c5120bf1af38535196ef2bde7295a8b2  gcc/testsuite/gcc.c-torture/compile/pr42927.c
! a450b257d48f47f5614f854bfeff1b47  gcc/testsuite/gcc.c-torture/compile/pr42956.c
  10f2ac7f6a0e2b70d2fddff7defbd100  gcc/testsuite/gcc.c-torture/compile/pr42998.c
  78af6a67a364e64fb8c6acaf6f0af1c1  gcc/testsuite/gcc.c-torture/compile/pr43066.c
  bd01c709e631437b671f4bff04b131d2  gcc/testsuite/gcc.c-torture/compile/pr43164.c
*************** bc7952c9f1a35ff2d21a78e0b71cbbdf  gcc/te
*** 36666,36672 ****
  4abfafd39eb3e2c8ab6f3308b1efb389  gcc/testsuite/gcc.c-torture/compile/pr46360.c
  45151fdd5e68bed416b3b0589e3edee5  gcc/testsuite/gcc.c-torture/compile/pr46388.c
  6d35d1410ba90bfec7f47c5f310cb9d0  gcc/testsuite/gcc.c-torture/compile/pr46461.c
! 479c5a5cd22a98f0a4751ee69bea2ed3  gcc/testsuite/gcc.c-torture/compile/pr46534.c
  36d04fc43ead7dde287d23d5918e89c0  gcc/testsuite/gcc.c-torture/compile/pr46547-1.c
  325896b6579d584049aea2ec436cab7c  gcc/testsuite/gcc.c-torture/compile/pr46637.c
  b70e5c59221a0b298f000ed1dc9bb385  gcc/testsuite/gcc.c-torture/compile/pr46832.c
--- 38888,38894 ----
  4abfafd39eb3e2c8ab6f3308b1efb389  gcc/testsuite/gcc.c-torture/compile/pr46360.c
  45151fdd5e68bed416b3b0589e3edee5  gcc/testsuite/gcc.c-torture/compile/pr46388.c
  6d35d1410ba90bfec7f47c5f310cb9d0  gcc/testsuite/gcc.c-torture/compile/pr46461.c
! 3e54d7de1160d25832b8a47030e96ff1  gcc/testsuite/gcc.c-torture/compile/pr46534.c
  36d04fc43ead7dde287d23d5918e89c0  gcc/testsuite/gcc.c-torture/compile/pr46547-1.c
  325896b6579d584049aea2ec436cab7c  gcc/testsuite/gcc.c-torture/compile/pr46637.c
  b70e5c59221a0b298f000ed1dc9bb385  gcc/testsuite/gcc.c-torture/compile/pr46832.c
*************** a1051ce960e8eddd712e6488636cbdb0  gcc/te
*** 36683,36689 ****
  774effe7375ad468fd79633c66d4044a  gcc/testsuite/gcc.c-torture/compile/pr47364-2.c
  cce12758af736907ac0762a5a1890088  gcc/testsuite/gcc.c-torture/compile/pr47427.c
  4324356f98a43a3bed555406f8c9c747  gcc/testsuite/gcc.c-torture/compile/pr47428.c
! e7d59dbc8b7b26ec012e63912c55ce82  gcc/testsuite/gcc.c-torture/compile/pr47967.c
  9d1c78d08ef275b5a06953b0ef35bff0  gcc/testsuite/gcc.c-torture/compile/pr48136.c
  80bef8bd436aad903e556834e25c94b2  gcc/testsuite/gcc.c-torture/compile/pr48161.c
  6845f722339469eacbab99454fd2f2a7  gcc/testsuite/gcc.c-torture/compile/pr48305.c
--- 38905,38911 ----
  774effe7375ad468fd79633c66d4044a  gcc/testsuite/gcc.c-torture/compile/pr47364-2.c
  cce12758af736907ac0762a5a1890088  gcc/testsuite/gcc.c-torture/compile/pr47427.c
  4324356f98a43a3bed555406f8c9c747  gcc/testsuite/gcc.c-torture/compile/pr47428.c
! 85ee34e6a483c2a2b7da89e352896f5b  gcc/testsuite/gcc.c-torture/compile/pr47967.c
  9d1c78d08ef275b5a06953b0ef35bff0  gcc/testsuite/gcc.c-torture/compile/pr48136.c
  80bef8bd436aad903e556834e25c94b2  gcc/testsuite/gcc.c-torture/compile/pr48161.c
  6845f722339469eacbab99454fd2f2a7  gcc/testsuite/gcc.c-torture/compile/pr48305.c
*************** b6084ecc1ba47bd2b16435acc7eb5346  gcc/te
*** 36697,36703 ****
  61df81a3aeced9e4cde7b22ed139d7bb  gcc/testsuite/gcc.c-torture/compile/pr48767.c
  8b5866a81e72fd7b89852f6f9109e94a  gcc/testsuite/gcc.c-torture/compile/pr48929.c
  857ab39aa623d7ed99df95c70cd6885d  gcc/testsuite/gcc.c-torture/compile/pr49029.c
! 8ab9fc100459e7da07555cbb7fd731f2  gcc/testsuite/gcc.c-torture/compile/pr49049.c
  0ad89b9e1119bd87c0d192b079bd4997  gcc/testsuite/gcc.c-torture/compile/pr49145.c
  5a369e66116e331a45c1e09e15159a6d  gcc/testsuite/gcc.c-torture/compile/pr49163.c
  174b16295354bbade0047f478a49bad4  gcc/testsuite/gcc.c-torture/compile/pr49206.c
--- 38919,38925 ----
  61df81a3aeced9e4cde7b22ed139d7bb  gcc/testsuite/gcc.c-torture/compile/pr48767.c
  8b5866a81e72fd7b89852f6f9109e94a  gcc/testsuite/gcc.c-torture/compile/pr48929.c
  857ab39aa623d7ed99df95c70cd6885d  gcc/testsuite/gcc.c-torture/compile/pr49029.c
! c85d1b1f58ece9bb9e0ef61c2f1ea2c0  gcc/testsuite/gcc.c-torture/compile/pr49049.c
  0ad89b9e1119bd87c0d192b079bd4997  gcc/testsuite/gcc.c-torture/compile/pr49145.c
  5a369e66116e331a45c1e09e15159a6d  gcc/testsuite/gcc.c-torture/compile/pr49163.c
  174b16295354bbade0047f478a49bad4  gcc/testsuite/gcc.c-torture/compile/pr49206.c
*************** e52cdfcf170396785521dec3a2dd2045  gcc/te
*** 36715,36723 ****
  9bb3edd1c8648f4ed1c226835eb83320  gcc/testsuite/gcc.c-torture/compile/pr51077.c
  68250b09d24f8d90cb4ddc8c6b1a87bf  gcc/testsuite/gcc.c-torture/compile/pr51246.c
  e4d02352bffbec19e7e0b947c567bc07  gcc/testsuite/gcc.c-torture/compile/pr51247.c
! 023da9a8a0e593379eab260dbc812399  gcc/testsuite/gcc.c-torture/compile/pr51354.c
  8eb316610fd7408f0c9652f2290e7dc2  gcc/testsuite/gcc.c-torture/compile/pr51495.c
! 143df58cd1448da620347a7810a7f347  gcc/testsuite/gcc.c-torture/compile/pr51694.c
  40138bc7985a6e36ee17a72a8ca8f0ef  gcc/testsuite/gcc.c-torture/compile/pr51761.c
  16b0c8db61d740e42ea3bee30160d1f0  gcc/testsuite/gcc.c-torture/compile/pr51767.c
  ffbeb306bf0153ef05a7391ecb9b76a0  gcc/testsuite/gcc.c-torture/compile/pr51856.c
--- 38937,38945 ----
  9bb3edd1c8648f4ed1c226835eb83320  gcc/testsuite/gcc.c-torture/compile/pr51077.c
  68250b09d24f8d90cb4ddc8c6b1a87bf  gcc/testsuite/gcc.c-torture/compile/pr51246.c
  e4d02352bffbec19e7e0b947c567bc07  gcc/testsuite/gcc.c-torture/compile/pr51247.c
! b3532401a056da7c77a34ba4c8251d70  gcc/testsuite/gcc.c-torture/compile/pr51354.c
  8eb316610fd7408f0c9652f2290e7dc2  gcc/testsuite/gcc.c-torture/compile/pr51495.c
! c3967ca9d7029f26269696336ff0258b  gcc/testsuite/gcc.c-torture/compile/pr51694.c
  40138bc7985a6e36ee17a72a8ca8f0ef  gcc/testsuite/gcc.c-torture/compile/pr51761.c
  16b0c8db61d740e42ea3bee30160d1f0  gcc/testsuite/gcc.c-torture/compile/pr51767.c
  ffbeb306bf0153ef05a7391ecb9b76a0  gcc/testsuite/gcc.c-torture/compile/pr51856.c
*************** bbf65f290039d153091c61f016fd6162  gcc/te
*** 36733,36739 ****
  99d2d6a8b6d442e231ee0248d24f8f36  gcc/testsuite/gcc.c-torture/compile/pr52437.c
  1fb1316540df656fd57099d4cee66824  gcc/testsuite/gcc.c-torture/compile/pr52533.c
  716b2f7c97cc1b20a40ac4f40de018d0  gcc/testsuite/gcc.c-torture/compile/pr52555.c
! 937cda1461b621c61c4c9d1fbe01fe2a  gcc/testsuite/gcc.c-torture/compile/pr52714.c
  240c5b9e14ef6fc0bf1bb4470e5f0489  gcc/testsuite/gcc.c-torture/compile/pr52750.c
  959079aacfff9362616ed418c530c367  gcc/testsuite/gcc.c-torture/compile/pr52773.c
  e1cbe4a49192a04fc8b19290e956f704  gcc/testsuite/gcc.c-torture/compile/pr52891-1.c
--- 38955,38961 ----
  99d2d6a8b6d442e231ee0248d24f8f36  gcc/testsuite/gcc.c-torture/compile/pr52437.c
  1fb1316540df656fd57099d4cee66824  gcc/testsuite/gcc.c-torture/compile/pr52533.c
  716b2f7c97cc1b20a40ac4f40de018d0  gcc/testsuite/gcc.c-torture/compile/pr52555.c
! 4970302eb2d35b0e36f7a7eda9449d66  gcc/testsuite/gcc.c-torture/compile/pr52714.c
  240c5b9e14ef6fc0bf1bb4470e5f0489  gcc/testsuite/gcc.c-torture/compile/pr52750.c
  959079aacfff9362616ed418c530c367  gcc/testsuite/gcc.c-torture/compile/pr52773.c
  e1cbe4a49192a04fc8b19290e956f704  gcc/testsuite/gcc.c-torture/compile/pr52891-1.c
*************** dbeb2d5879e34cafdc80fa8281851406  gcc/te
*** 36771,36777 ****
  e64bc95a135f8e235fd32f21277cc950  gcc/testsuite/gcc.c-torture/compile/pr55350.c
  a8971663560b4b43261f7d80595b1b0f  gcc/testsuite/gcc.c-torture/compile/pr55569.c
  84272a401c04656e02e545b4399da048  gcc/testsuite/gcc.c-torture/compile/pr55832.c
! a40caa4ac9e2126163813ba3ac4e6539  gcc/testsuite/gcc.c-torture/compile/pr55851.c
  1d3e5275039b357339d3c9811b014ec7  gcc/testsuite/gcc.c-torture/compile/pr55920.c
  b2e96fda3034293c3cad2dbaa9ba1de3  gcc/testsuite/gcc.c-torture/compile/pr55921.c
  075c05fd71e90323959b2d1b133b6ab4  gcc/testsuite/gcc.c-torture/compile/pr55955.c
--- 38993,38999 ----
  e64bc95a135f8e235fd32f21277cc950  gcc/testsuite/gcc.c-torture/compile/pr55350.c
  a8971663560b4b43261f7d80595b1b0f  gcc/testsuite/gcc.c-torture/compile/pr55569.c
  84272a401c04656e02e545b4399da048  gcc/testsuite/gcc.c-torture/compile/pr55832.c
! 144896c2a68d3ce95e1aac15e45c1456  gcc/testsuite/gcc.c-torture/compile/pr55851.c
  1d3e5275039b357339d3c9811b014ec7  gcc/testsuite/gcc.c-torture/compile/pr55920.c
  b2e96fda3034293c3cad2dbaa9ba1de3  gcc/testsuite/gcc.c-torture/compile/pr55921.c
  075c05fd71e90323959b2d1b133b6ab4  gcc/testsuite/gcc.c-torture/compile/pr55955.c
*************** e29782a795d7cfad500f87976ba060a2  gcc/te
*** 36806,36812 ****
  e25dc1c0538b3f50149de1d75bf5445c  gcc/testsuite/gcc.c-torture/compile/pr59322.c
  281d9c7686306959b5b18e7a449ced24  gcc/testsuite/gcc.c-torture/compile/pr59362.c
  922268f4c45ae8092f27beceaa3035ad  gcc/testsuite/gcc.c-torture/compile/pr59386.c
! 2b3d3e59849f7f47dd0f2aee9557394c  gcc/testsuite/gcc.c-torture/compile/pr59417.c
  518588300998092d042a5ea77228e1ac  gcc/testsuite/gcc.c-torture/compile/pr59569-1.c
  a1b6634fb5e0352a122b432d28d850f9  gcc/testsuite/gcc.c-torture/compile/pr59569-2.c
  99d83e78fb44d8865e03f459744948e5  gcc/testsuite/gcc.c-torture/compile/pr59743.c
--- 39028,39034 ----
  e25dc1c0538b3f50149de1d75bf5445c  gcc/testsuite/gcc.c-torture/compile/pr59322.c
  281d9c7686306959b5b18e7a449ced24  gcc/testsuite/gcc.c-torture/compile/pr59362.c
  922268f4c45ae8092f27beceaa3035ad  gcc/testsuite/gcc.c-torture/compile/pr59386.c
! 6a1ab1e599bb1a31e604540f82ac4a21  gcc/testsuite/gcc.c-torture/compile/pr59417.c
  518588300998092d042a5ea77228e1ac  gcc/testsuite/gcc.c-torture/compile/pr59569-1.c
  a1b6634fb5e0352a122b432d28d850f9  gcc/testsuite/gcc.c-torture/compile/pr59569-2.c
  99d83e78fb44d8865e03f459744948e5  gcc/testsuite/gcc.c-torture/compile/pr59743.c
*************** e0d6dae3e4ec80a7af59c5a2351d64cd  gcc/te
*** 36867,36873 ****
  37c76943f2ee5558a09545bc1b17b89d  gcc/testsuite/gcc.c-torture/compile/pr70355.c
  86500b6aaf9f75325f0cad332855ed1b  gcc/testsuite/gcc.c-torture/compile/pr70633.c
  6aa2a7d0fe94be24238130841efe702b  gcc/testsuite/gcc.c-torture/compile/pr70916.c
! 3a7ef784565bfc2f1fffd2117b711d9a  gcc/testsuite/gcc.c-torture/compile/pr71109.c
  329f204bcd03c83da441493cb753c554  gcc/testsuite/gcc.c-torture/compile/pr71112.c
  25ea11998401d4aac4c189df9a53715b  gcc/testsuite/gcc.c-torture/compile/pr71272.c
  5dd5f6724944ca1e08ed8793f7052be3  gcc/testsuite/gcc.c-torture/compile/pr71295.c
--- 39089,39095 ----
  37c76943f2ee5558a09545bc1b17b89d  gcc/testsuite/gcc.c-torture/compile/pr70355.c
  86500b6aaf9f75325f0cad332855ed1b  gcc/testsuite/gcc.c-torture/compile/pr70633.c
  6aa2a7d0fe94be24238130841efe702b  gcc/testsuite/gcc.c-torture/compile/pr70916.c
! 491c738bde6a27d6f87aebd0974d8706  gcc/testsuite/gcc.c-torture/compile/pr71109.c
  329f204bcd03c83da441493cb753c554  gcc/testsuite/gcc.c-torture/compile/pr71112.c
  25ea11998401d4aac4c189df9a53715b  gcc/testsuite/gcc.c-torture/compile/pr71272.c
  5dd5f6724944ca1e08ed8793f7052be3  gcc/testsuite/gcc.c-torture/compile/pr71295.c
*************** d2abfdabdbeb6670f7a517aaa74714b3  gcc/te
*** 36880,36896 ****
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
  bdbdeaadd16a5dbb94b29786151e3dfd  gcc/testsuite/gcc.c-torture/compile/pr72802.c
! 7d904fe97d42498971eb0d620486104c  gcc/testsuite/gcc.c-torture/compile/pr77754-1.c
! 883465795cbe470b151417529338b34c  gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
! 71449498a587a66ed522b938c34d0c11  gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
! f6d6eac3e91151b87a4b8c39d621ccdd  gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
! 32b53cff7ff24ce8d13f6404eb82073c  gcc/testsuite/gcc.c-torture/compile/pr77754-5.c
! 50d21a3b05ff246326a2a384c8047495  gcc/testsuite/gcc.c-torture/compile/pr77754-6.c
  69f131eecfe2e8d743fa8534acd3d542  gcc/testsuite/gcc.c-torture/compile/pr77901.c
  1b4de683f3cdcab42ba24cd8b0866196  gcc/testsuite/gcc.c-torture/compile/pr77929.c
  aadd21b68c00eaa36b449d0c7b5c4a14  gcc/testsuite/gcc.c-torture/compile/pr78162.c
  bd4cddfcd16ae75a54f2022a108c60e0  gcc/testsuite/gcc.c-torture/compile/pr78362.c
! 4234a4c5c9e9cb9b5dbc9afd171351f0  gcc/testsuite/gcc.c-torture/compile/pr78439.c
  e033e2ae59200c5699b43c4e686d0146  gcc/testsuite/gcc.c-torture/compile/pr78527.c
  dc5c6326e95f06d7b503deff11034cf8  gcc/testsuite/gcc.c-torture/compile/pr78574.c
  3eba6ee7dae58e68cadd2b3b00bd5904  gcc/testsuite/gcc.c-torture/compile/pr78607.c
--- 39102,39118 ----
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
  bdbdeaadd16a5dbb94b29786151e3dfd  gcc/testsuite/gcc.c-torture/compile/pr72802.c
! af2f3dca71271ca17fad3ee6de341ac5  gcc/testsuite/gcc.c-torture/compile/pr77754-1.c
! afc8e913ec326906a2a5963cb07433ec  gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
! f3f02299966ddcfc2b8e005a10c16f2f  gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
! c0ee7293a7635e088ba4c6e8e513a709  gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
! f20382e626d5ffddfd78f1328f472ead  gcc/testsuite/gcc.c-torture/compile/pr77754-5.c
! 7754a29d822a9308e5aa298054c40e99  gcc/testsuite/gcc.c-torture/compile/pr77754-6.c
  69f131eecfe2e8d743fa8534acd3d542  gcc/testsuite/gcc.c-torture/compile/pr77901.c
  1b4de683f3cdcab42ba24cd8b0866196  gcc/testsuite/gcc.c-torture/compile/pr77929.c
  aadd21b68c00eaa36b449d0c7b5c4a14  gcc/testsuite/gcc.c-torture/compile/pr78162.c
  bd4cddfcd16ae75a54f2022a108c60e0  gcc/testsuite/gcc.c-torture/compile/pr78362.c
! 2ce98f1515de974e1f1555c50bf7920c  gcc/testsuite/gcc.c-torture/compile/pr78439.c
  e033e2ae59200c5699b43c4e686d0146  gcc/testsuite/gcc.c-torture/compile/pr78527.c
  dc5c6326e95f06d7b503deff11034cf8  gcc/testsuite/gcc.c-torture/compile/pr78574.c
  3eba6ee7dae58e68cadd2b3b00bd5904  gcc/testsuite/gcc.c-torture/compile/pr78607.c
*************** acdc08164c23b435072fe8414b04e0fa  gcc/te
*** 36903,36909 ****
  2e2e23d9e69cff1c45a22068b4cc9338  gcc/testsuite/gcc.c-torture/compile/pr79284.c
  79e37fa8d08b2e5f2f9eefe94b54336b  gcc/testsuite/gcc.c-torture/compile/pr79386.c
  8d2b886d2a6084528abb808154bd0d6b  gcc/testsuite/gcc.c-torture/compile/pr79411.c
! cf68f880656a00af0352883adceb1618  gcc/testsuite/gcc.c-torture/compile/pr79413.c
  f4b249b36b9bee9f40c078c27d1258ea  gcc/testsuite/gcc.c-torture/compile/pr79621.c
  288c3014a0ccd28ddecbabe76fe9939e  gcc/testsuite/gcc.c-torture/compile/pr79780.c
  7e14c1d045c106f97ccef1ff99b365eb  gcc/testsuite/gcc.c-torture/compile/pr80216.c
--- 39125,39131 ----
  2e2e23d9e69cff1c45a22068b4cc9338  gcc/testsuite/gcc.c-torture/compile/pr79284.c
  79e37fa8d08b2e5f2f9eefe94b54336b  gcc/testsuite/gcc.c-torture/compile/pr79386.c
  8d2b886d2a6084528abb808154bd0d6b  gcc/testsuite/gcc.c-torture/compile/pr79411.c
! 5cc951178b35aed54cc45f3a20bf9d6c  gcc/testsuite/gcc.c-torture/compile/pr79413.c
  f4b249b36b9bee9f40c078c27d1258ea  gcc/testsuite/gcc.c-torture/compile/pr79621.c
  288c3014a0ccd28ddecbabe76fe9939e  gcc/testsuite/gcc.c-torture/compile/pr79780.c
  7e14c1d045c106f97ccef1ff99b365eb  gcc/testsuite/gcc.c-torture/compile/pr80216.c
*************** ddef63778a2af17c7b6719d4b60a0a60  gcc/te
*** 36924,36936 ****
  b1098cab2c4a8035c39450c097800ad2  gcc/testsuite/gcc.c-torture/compile/pr82381.c
  6aed60c7fe6168de20a35f4a98d9d306  gcc/testsuite/gcc.c-torture/compile/pr82389.c
  793a4f5f0940ddfbb7bf0f7247486342  gcc/testsuite/gcc.c-torture/compile/pr82549.c
! a08af5da6dce88ef7b897f14c7b60b04  gcc/testsuite/gcc.c-torture/compile/pr82564.c
  4dde9199e05d97c3a12279fc4df006c5  gcc/testsuite/gcc.c-torture/compile/pr82816.c
  9416bba195d787f52104d55d5ba32f3c  gcc/testsuite/gcc.c-torture/compile/pr82838.c
  cf75d7c413d3d683bf4554c4893b52b8  gcc/testsuite/gcc.c-torture/compile/pr82875.c
  c0e8c2714ac70d507f78a1178adf86cd  gcc/testsuite/gcc.c-torture/compile/pr82879.c
  27e740102c35556b9e44b4dca0223a85  gcc/testsuite/gcc.c-torture/compile/pr82913.c
! 5d0467079bb8f8d3020a8245cbbff662  gcc/testsuite/gcc.c-torture/compile/pr83051-2.c
  7836a61d000aaaa21cb999e1d2d86bfa  gcc/testsuite/gcc.c-torture/compile/pr83051.c
  5eda9df2bbaeab95e5faf93c4ce3be6e  gcc/testsuite/gcc.c-torture/compile/pr83069.c
  3548758183b01e15047e314437b617fe  gcc/testsuite/gcc.c-torture/compile/pr83104.c
--- 39146,39158 ----
  b1098cab2c4a8035c39450c097800ad2  gcc/testsuite/gcc.c-torture/compile/pr82381.c
  6aed60c7fe6168de20a35f4a98d9d306  gcc/testsuite/gcc.c-torture/compile/pr82389.c
  793a4f5f0940ddfbb7bf0f7247486342  gcc/testsuite/gcc.c-torture/compile/pr82549.c
! c8303b375c20607cdf8ee1a36cc49002  gcc/testsuite/gcc.c-torture/compile/pr82564.c
  4dde9199e05d97c3a12279fc4df006c5  gcc/testsuite/gcc.c-torture/compile/pr82816.c
  9416bba195d787f52104d55d5ba32f3c  gcc/testsuite/gcc.c-torture/compile/pr82838.c
  cf75d7c413d3d683bf4554c4893b52b8  gcc/testsuite/gcc.c-torture/compile/pr82875.c
  c0e8c2714ac70d507f78a1178adf86cd  gcc/testsuite/gcc.c-torture/compile/pr82879.c
  27e740102c35556b9e44b4dca0223a85  gcc/testsuite/gcc.c-torture/compile/pr82913.c
! def230f5a2a2de3abe704bf97f9fe257  gcc/testsuite/gcc.c-torture/compile/pr83051-2.c
  7836a61d000aaaa21cb999e1d2d86bfa  gcc/testsuite/gcc.c-torture/compile/pr83051.c
  5eda9df2bbaeab95e5faf93c4ce3be6e  gcc/testsuite/gcc.c-torture/compile/pr83069.c
  3548758183b01e15047e314437b617fe  gcc/testsuite/gcc.c-torture/compile/pr83104.c
*************** b19a849e34a33352c83a0c6f5e6b9e64  gcc/te
*** 36960,36966 ****
  5dd45a90553a7fcc8b9c40eaa8d7e73b  gcc/testsuite/gcc.c-torture/compile/pr86637-1.c
  e21d117b7796661b2537e6b2ea45bdee  gcc/testsuite/gcc.c-torture/compile/pr86637-2.c
  9d57165aed11623f85a2ed7a98df7e49  gcc/testsuite/gcc.c-torture/compile/pr86637-3.c
! d5f6bb185ba51679ace4594e6942f735  gcc/testsuite/gcc.c-torture/compile/pr87110.c
  ae1b6145cd78efa9b0735491a394ee54  gcc/testsuite/gcc.c-torture/compile/pr87468.c
  c07cb6bbf144841ec62369603efc6e0b  gcc/testsuite/gcc.c-torture/compile/pr87473.c
  7bb746aff7daab01a69c68ac718afce2  gcc/testsuite/gcc.c-torture/compile/pr87647.c
--- 39182,39188 ----
  5dd45a90553a7fcc8b9c40eaa8d7e73b  gcc/testsuite/gcc.c-torture/compile/pr86637-1.c
  e21d117b7796661b2537e6b2ea45bdee  gcc/testsuite/gcc.c-torture/compile/pr86637-2.c
  9d57165aed11623f85a2ed7a98df7e49  gcc/testsuite/gcc.c-torture/compile/pr86637-3.c
! 38122e1c8ca1485b2972a95fe82aa7d4  gcc/testsuite/gcc.c-torture/compile/pr87110.c
  ae1b6145cd78efa9b0735491a394ee54  gcc/testsuite/gcc.c-torture/compile/pr87468.c
  c07cb6bbf144841ec62369603efc6e0b  gcc/testsuite/gcc.c-torture/compile/pr87473.c
  7bb746aff7daab01a69c68ac718afce2  gcc/testsuite/gcc.c-torture/compile/pr87647.c
*************** ef075b9205f28b968b8202a82de7d8d8  gcc/te
*** 36972,36978 ****
  361fbc1308c9fae317298dd7c88c44ed  gcc/testsuite/gcc.c-torture/compile/pr89399.c
  d16a0436ee4e7c019d745cad343ff18b  gcc/testsuite/gcc.c-torture/compile/pr89412.c
  7e90de04544a1d8e3c372e47c2627c60  gcc/testsuite/gcc.c-torture/compile/pr89655.c
! 342a9c93bd17aa2f6e2ee789a10d35c6  gcc/testsuite/gcc.c-torture/compile/pr89663-1.c
  ae377dc5bfe4399808db661879decd39  gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
  85c74cdcb2f35d038f3606a817979061  gcc/testsuite/gcc.c-torture/compile/pr89703-1.c
  834bb0f0fe637b3f72cd75082e139b0a  gcc/testsuite/gcc.c-torture/compile/pr89703-2.c
--- 39194,39200 ----
  361fbc1308c9fae317298dd7c88c44ed  gcc/testsuite/gcc.c-torture/compile/pr89399.c
  d16a0436ee4e7c019d745cad343ff18b  gcc/testsuite/gcc.c-torture/compile/pr89412.c
  7e90de04544a1d8e3c372e47c2627c60  gcc/testsuite/gcc.c-torture/compile/pr89655.c
! 50c28cc4ab87d163bf8376d9ea0c2afa  gcc/testsuite/gcc.c-torture/compile/pr89663-1.c
  ae377dc5bfe4399808db661879decd39  gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
  85c74cdcb2f35d038f3606a817979061  gcc/testsuite/gcc.c-torture/compile/pr89703-1.c
  834bb0f0fe637b3f72cd75082e139b0a  gcc/testsuite/gcc.c-torture/compile/pr89703-2.c
*************** ce8f26361632de54e40e79ca199af7f8  gcc/te
*** 37007,37024 ****
  22928b66796dd98928bd0441207dfe65  gcc/testsuite/gcc.c-torture/compile/pr93949.c
  de4db7d25d60ec296f99e887f50cb7f7  gcc/testsuite/gcc.c-torture/compile/pr94144.c
  9cf3f1022d9eebe7dfea91334fb15ee5  gcc/testsuite/gcc.c-torture/compile/pr94179.c
! b3a704fac8cecd376eb8ca7ae5d594e3  gcc/testsuite/gcc.c-torture/compile/pr94238.c
  b592aab14164964644385997ee799b46  gcc/testsuite/gcc.c-torture/compile/pr94488.c
  93952665a8b02a3a49c7d7c5bc5f1a97  gcc/testsuite/gcc.c-torture/compile/pr94621.c
  7dbeb8aaf9175e2573e86afe5b6d8d82  gcc/testsuite/gcc.c-torture/compile/pr94686.c
  16fd51446f612721c10c4614ccead58a  gcc/testsuite/gcc.c-torture/compile/pr96426.c
! 3e4db4272cd801797d862bfd8bbc7079  gcc/testsuite/gcc.c-torture/compile/pr96796.c
  20924a82616e145cfa02d32f61cf6d09  gcc/testsuite/gcc.c-torture/compile/pr96998.c
  35e9b69fa6a8536400fd234999bb050c  gcc/testsuite/gcc.c-torture/compile/pr97141.c
  9877434a52aaa17b1ab89487f9497639  gcc/testsuite/gcc.c-torture/compile/pr97144.c
  c9ed8216d07e31f7a802eeba042e1179  gcc/testsuite/gcc.c-torture/compile/pr97205.c
  cc5e48690516796c192d2b020ebc6353  gcc/testsuite/gcc.c-torture/compile/pr97243.c
! d94e8dba114bf6c1428ecd7c7475f51e  gcc/testsuite/gcc.c-torture/compile/pr97576.c
  c78cceed0dd8426d7c1d6f399fa3390e  gcc/testsuite/gcc.c-torture/compile/pr97578.c
  835f7a3d701aaaa1a2985c869be63315  gcc/testsuite/gcc.c-torture/compile/pr97979.c
  1ecd4c9d478fb14673cceb746a00bead  gcc/testsuite/gcc.c-torture/compile/pr98087.c
--- 39229,39246 ----
  22928b66796dd98928bd0441207dfe65  gcc/testsuite/gcc.c-torture/compile/pr93949.c
  de4db7d25d60ec296f99e887f50cb7f7  gcc/testsuite/gcc.c-torture/compile/pr94144.c
  9cf3f1022d9eebe7dfea91334fb15ee5  gcc/testsuite/gcc.c-torture/compile/pr94179.c
! caccb27408b5fedd3b689da004fd26e2  gcc/testsuite/gcc.c-torture/compile/pr94238.c
  b592aab14164964644385997ee799b46  gcc/testsuite/gcc.c-torture/compile/pr94488.c
  93952665a8b02a3a49c7d7c5bc5f1a97  gcc/testsuite/gcc.c-torture/compile/pr94621.c
  7dbeb8aaf9175e2573e86afe5b6d8d82  gcc/testsuite/gcc.c-torture/compile/pr94686.c
  16fd51446f612721c10c4614ccead58a  gcc/testsuite/gcc.c-torture/compile/pr96426.c
! cee150efedb107769fb5483885268a04  gcc/testsuite/gcc.c-torture/compile/pr96796.c
  20924a82616e145cfa02d32f61cf6d09  gcc/testsuite/gcc.c-torture/compile/pr96998.c
  35e9b69fa6a8536400fd234999bb050c  gcc/testsuite/gcc.c-torture/compile/pr97141.c
  9877434a52aaa17b1ab89487f9497639  gcc/testsuite/gcc.c-torture/compile/pr97144.c
  c9ed8216d07e31f7a802eeba042e1179  gcc/testsuite/gcc.c-torture/compile/pr97205.c
  cc5e48690516796c192d2b020ebc6353  gcc/testsuite/gcc.c-torture/compile/pr97243.c
! cf544ab3127df02b3b49c75aaf1fb27f  gcc/testsuite/gcc.c-torture/compile/pr97576.c
  c78cceed0dd8426d7c1d6f399fa3390e  gcc/testsuite/gcc.c-torture/compile/pr97578.c
  835f7a3d701aaaa1a2985c869be63315  gcc/testsuite/gcc.c-torture/compile/pr97979.c
  1ecd4c9d478fb14673cceb746a00bead  gcc/testsuite/gcc.c-torture/compile/pr98087.c
*************** cd903132649fbefa350b8179bddd0078  gcc/te
*** 37033,37039 ****
  96a2bedeedcefc8923dc44147661604e  gcc/testsuite/gcc.c-torture/compile/pr99225.c
  11bf664a070ad544ff6eddf359ebb9d0  gcc/testsuite/gcc.c-torture/compile/pr99324.c
  7e408a9bcbb29363eda9fb015d8d84f3  gcc/testsuite/gcc.c-torture/compile/pr99647.c
! f817865c153b0e9e863b52705bdba23c  gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
  e69d829e7459addd09ce31c5321dc0c0  gcc/testsuite/gcc.c-torture/compile/pr99822.c
  5948bf3fda5cbef009791d4134c0d2d1  gcc/testsuite/gcc.c-torture/compile/pret-arg.c
  554bb1e8a9da058c129438ee67eeacaa  gcc/testsuite/gcc.c-torture/compile/pta-1.c
--- 39255,39261 ----
  96a2bedeedcefc8923dc44147661604e  gcc/testsuite/gcc.c-torture/compile/pr99225.c
  11bf664a070ad544ff6eddf359ebb9d0  gcc/testsuite/gcc.c-torture/compile/pr99324.c
  7e408a9bcbb29363eda9fb015d8d84f3  gcc/testsuite/gcc.c-torture/compile/pr99647.c
! eefb107b065d4b66a569afab25c5272a  gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
  e69d829e7459addd09ce31c5321dc0c0  gcc/testsuite/gcc.c-torture/compile/pr99822.c
  5948bf3fda5cbef009791d4134c0d2d1  gcc/testsuite/gcc.c-torture/compile/pret-arg.c
  554bb1e8a9da058c129438ee67eeacaa  gcc/testsuite/gcc.c-torture/compile/pta-1.c
*************** cb390e8a024c191804076580e9f61f83  gcc/te
*** 37119,37125 ****
  4302abbf3d54b15c2bf82ee3a5edb560  gcc/testsuite/gcc.c-torture/compile/trunctfdf.c
  de022ab35a3dc15f95e8e1bfeb1c1505  gcc/testsuite/gcc.c-torture/compile/u.c
  532f6bad09c5871261ff7151b3c75d77  gcc/testsuite/gcc.c-torture/compile/udconvert.c
! 85f6133740c4afe1d2653876be670398  gcc/testsuite/gcc.c-torture/compile/udivmod4.c
  1525d44018a74c32485274dbb29c0e94  gcc/testsuite/gcc.c-torture/compile/unalign-1.c
  65e0f6e55b7de37bb749e6de7f98e42d  gcc/testsuite/gcc.c-torture/compile/uns.c
  b3ed8a026c33f0ead2921fe76be1324b  gcc/testsuite/gcc.c-torture/compile/uns_tst.c
--- 39341,39347 ----
  4302abbf3d54b15c2bf82ee3a5edb560  gcc/testsuite/gcc.c-torture/compile/trunctfdf.c
  de022ab35a3dc15f95e8e1bfeb1c1505  gcc/testsuite/gcc.c-torture/compile/u.c
  532f6bad09c5871261ff7151b3c75d77  gcc/testsuite/gcc.c-torture/compile/udconvert.c
! 7979d66dd4a319d9bea42870f062d764  gcc/testsuite/gcc.c-torture/compile/udivmod4.c
  1525d44018a74c32485274dbb29c0e94  gcc/testsuite/gcc.c-torture/compile/unalign-1.c
  65e0f6e55b7de37bb749e6de7f98e42d  gcc/testsuite/gcc.c-torture/compile/uns.c
  b3ed8a026c33f0ead2921fe76be1324b  gcc/testsuite/gcc.c-torture/compile/uns_tst.c
*************** e73d1e5098133f5d8bf19fd63aa2e341  gcc/te
*** 37134,37141 ****
  f22fa3d40420e1d3face4986ae537c69  gcc/testsuite/gcc.c-torture/compile/vector-align-1.c
  157b51d7ce9c15037387105cd05282b6  gcc/testsuite/gcc.c-torture/compile/vector-dup-1.c
  9c09e33d4176dbc5b3ff3d2143a003f0  gcc/testsuite/gcc.c-torture/compile/vector-shift-1.c
! d15bacdeb3488c9844bef78c3669d147  gcc/testsuite/gcc.c-torture/compile/vla-const-1.c
! 967fa88da6ed3bc1aed48cc1d0645240  gcc/testsuite/gcc.c-torture/compile/vla-const-2.c
  04b2737b3df76aa6529bf6c98beb714d  gcc/testsuite/gcc.c-torture/compile/volatile-1.c
  2d2b762be5e099983e223b762c364368  gcc/testsuite/gcc.c-torture/compile/w.c
  f8c15eb492bac5ea155e2d9410ca8ad0  gcc/testsuite/gcc.c-torture/compile/widechar-1.c
--- 39356,39363 ----
  f22fa3d40420e1d3face4986ae537c69  gcc/testsuite/gcc.c-torture/compile/vector-align-1.c
  157b51d7ce9c15037387105cd05282b6  gcc/testsuite/gcc.c-torture/compile/vector-dup-1.c
  9c09e33d4176dbc5b3ff3d2143a003f0  gcc/testsuite/gcc.c-torture/compile/vector-shift-1.c
! 117c0444f99f69ab07d917f032bf93a6  gcc/testsuite/gcc.c-torture/compile/vla-const-1.c
! a2cb3d9feb329822aa79717fac8c2c9c  gcc/testsuite/gcc.c-torture/compile/vla-const-2.c
  04b2737b3df76aa6529bf6c98beb714d  gcc/testsuite/gcc.c-torture/compile/volatile-1.c
  2d2b762be5e099983e223b762c364368  gcc/testsuite/gcc.c-torture/compile/w.c
  f8c15eb492bac5ea155e2d9410ca8ad0  gcc/testsuite/gcc.c-torture/compile/widechar-1.c
*************** ded96a46b3297222413ab7c2cd5e4e0c  gcc/te
*** 37262,37268 ****
  66edac85dc40f361e98d26e0a4b7decd  gcc/testsuite/gcc.c-torture/execute/20010123-1.c
  9140e4c8f5a2d7aaff8db3e98ff5cd36  gcc/testsuite/gcc.c-torture/execute/20010129-1.c
  d2a7ad63ad72c8b647cb51c13c843fba  gcc/testsuite/gcc.c-torture/execute/20010206-1.c
! d6d30746057e5248c5d69fc3a335decb  gcc/testsuite/gcc.c-torture/execute/20010209-1.c
  e67e38fc37453f0fbbd1a8b50e8f0a40  gcc/testsuite/gcc.c-torture/execute/20010221-1.c
  e941d803d1cfca217191a89bfadc4c42  gcc/testsuite/gcc.c-torture/execute/20010222-1.c
  6b3f56a019a8286ca6be121d681a23cc  gcc/testsuite/gcc.c-torture/execute/20010224-1.c
--- 39484,39490 ----
  66edac85dc40f361e98d26e0a4b7decd  gcc/testsuite/gcc.c-torture/execute/20010123-1.c
  9140e4c8f5a2d7aaff8db3e98ff5cd36  gcc/testsuite/gcc.c-torture/execute/20010129-1.c
  d2a7ad63ad72c8b647cb51c13c843fba  gcc/testsuite/gcc.c-torture/execute/20010206-1.c
! 24e0fb0963dcad350727c918e0c01050  gcc/testsuite/gcc.c-torture/execute/20010209-1.c
  e67e38fc37453f0fbbd1a8b50e8f0a40  gcc/testsuite/gcc.c-torture/execute/20010221-1.c
  e941d803d1cfca217191a89bfadc4c42  gcc/testsuite/gcc.c-torture/execute/20010222-1.c
  6b3f56a019a8286ca6be121d681a23cc  gcc/testsuite/gcc.c-torture/execute/20010224-1.c
*************** eea861d95fec8e72c7ac80ab6e178301  gcc/te
*** 37276,37282 ****
  74eb8c9ae2d82465a32727083e45386e  gcc/testsuite/gcc.c-torture/execute/20010520-1.c
  8c6f73d347dd44c96f56ae832578ad8c  gcc/testsuite/gcc.c-torture/execute/20010604-1.c
  5bc96e1e637a3d7b2220054d285affca  gcc/testsuite/gcc.c-torture/execute/20010605-1.c
! 8bf8587b0373e15f31127b17fa8d3b00  gcc/testsuite/gcc.c-torture/execute/20010605-2.c
  863777eee6b1d2487b7f874dff301630  gcc/testsuite/gcc.c-torture/execute/20010711-1.c
  7f4ea0a812a4de88b8ae52bfa28840c4  gcc/testsuite/gcc.c-torture/execute/20010717-1.c
  5f3e496b316d8274e0abdb33ee4516c4  gcc/testsuite/gcc.c-torture/execute/20010723-1.c
--- 39498,39504 ----
  74eb8c9ae2d82465a32727083e45386e  gcc/testsuite/gcc.c-torture/execute/20010520-1.c
  8c6f73d347dd44c96f56ae832578ad8c  gcc/testsuite/gcc.c-torture/execute/20010604-1.c
  5bc96e1e637a3d7b2220054d285affca  gcc/testsuite/gcc.c-torture/execute/20010605-1.c
! d6cae07f22180e00fb85657ca391e7a9  gcc/testsuite/gcc.c-torture/execute/20010605-2.c
  863777eee6b1d2487b7f874dff301630  gcc/testsuite/gcc.c-torture/execute/20010711-1.c
  7f4ea0a812a4de88b8ae52bfa28840c4  gcc/testsuite/gcc.c-torture/execute/20010717-1.c
  5f3e496b316d8274e0abdb33ee4516c4  gcc/testsuite/gcc.c-torture/execute/20010723-1.c
*************** ac01481b3223714f91b9753c6d745c48  gcc/te
*** 37319,37335 ****
  076e9af35223645a6592f67099ae2b8b  gcc/testsuite/gcc.c-torture/execute/20020226-1.c
  36ccb7ce2ed65a3414d0a06682ac8c22  gcc/testsuite/gcc.c-torture/execute/20020227-1.c
  11944ca287ee5411e3b6a2d925fa77ee  gcc/testsuite/gcc.c-torture/execute/20020307-1.c
! 7a1a5856f88b6b43bedf36fff357e1d0  gcc/testsuite/gcc.c-torture/execute/20020314-1.c
  a455f61709435004a057458df1666c32  gcc/testsuite/gcc.c-torture/execute/20020320-1.c
  48585df5243f9cac516eeef8ba4d0f7d  gcc/testsuite/gcc.c-torture/execute/20020321-1.c
  7232be577a1f2ebebc53ed88d0f19db6  gcc/testsuite/gcc.c-torture/execute/20020328-1.c
  87e635efbe283c3806b83774891cc524  gcc/testsuite/gcc.c-torture/execute/20020402-1.c
  00970a7aaaaa060f83760a13e8d1dfc2  gcc/testsuite/gcc.c-torture/execute/20020402-2.c
  02269773fdb8be5a9c6f5d008a96b4a3  gcc/testsuite/gcc.c-torture/execute/20020402-3.c
! 388ff40d24b6695122dc0bbc759fa171  gcc/testsuite/gcc.c-torture/execute/20020404-1.c
  52507f140b3cc72a9bac8f7c6994e2c2  gcc/testsuite/gcc.c-torture/execute/20020406-1.c
  844df3b97111f6ac1b0a7121302f83ec  gcc/testsuite/gcc.c-torture/execute/20020411-1.c
! e8d7875d7898227ea964bf4bd056d101  gcc/testsuite/gcc.c-torture/execute/20020412-1.c
  f6287140843aa812a2c3fec1d2411984  gcc/testsuite/gcc.c-torture/execute/20020413-1.c
  7c58b6e71b5d8bdfcaddad22ed6bd60d  gcc/testsuite/gcc.c-torture/execute/20020418-1.c
  2e13a10b4c41908834dda5baab3bdfaa  gcc/testsuite/gcc.c-torture/execute/20020423-1.c
--- 39541,39557 ----
  076e9af35223645a6592f67099ae2b8b  gcc/testsuite/gcc.c-torture/execute/20020226-1.c
  36ccb7ce2ed65a3414d0a06682ac8c22  gcc/testsuite/gcc.c-torture/execute/20020227-1.c
  11944ca287ee5411e3b6a2d925fa77ee  gcc/testsuite/gcc.c-torture/execute/20020307-1.c
! d1b894bfd50d5ae8fa7086fd450e0883  gcc/testsuite/gcc.c-torture/execute/20020314-1.c
  a455f61709435004a057458df1666c32  gcc/testsuite/gcc.c-torture/execute/20020320-1.c
  48585df5243f9cac516eeef8ba4d0f7d  gcc/testsuite/gcc.c-torture/execute/20020321-1.c
  7232be577a1f2ebebc53ed88d0f19db6  gcc/testsuite/gcc.c-torture/execute/20020328-1.c
  87e635efbe283c3806b83774891cc524  gcc/testsuite/gcc.c-torture/execute/20020402-1.c
  00970a7aaaaa060f83760a13e8d1dfc2  gcc/testsuite/gcc.c-torture/execute/20020402-2.c
  02269773fdb8be5a9c6f5d008a96b4a3  gcc/testsuite/gcc.c-torture/execute/20020402-3.c
! 785ccb94be1021a0c9ac8c1f673b8fcd  gcc/testsuite/gcc.c-torture/execute/20020404-1.c
  52507f140b3cc72a9bac8f7c6994e2c2  gcc/testsuite/gcc.c-torture/execute/20020406-1.c
  844df3b97111f6ac1b0a7121302f83ec  gcc/testsuite/gcc.c-torture/execute/20020411-1.c
! ea217a7d70d1817d15d3e7985890f80a  gcc/testsuite/gcc.c-torture/execute/20020412-1.c
  f6287140843aa812a2c3fec1d2411984  gcc/testsuite/gcc.c-torture/execute/20020413-1.c
  7c58b6e71b5d8bdfcaddad22ed6bd60d  gcc/testsuite/gcc.c-torture/execute/20020418-1.c
  2e13a10b4c41908834dda5baab3bdfaa  gcc/testsuite/gcc.c-torture/execute/20020423-1.c
*************** f6287140843aa812a2c3fec1d2411984  gcc/te
*** 37339,37345 ****
  d01404bcff9f62cb69ac7e15de728e3e  gcc/testsuite/gcc.c-torture/execute/20020508-2.c
  63c1b7cee0632d3aa8bd5e51bbf3659b  gcc/testsuite/gcc.c-torture/execute/20020508-3.c
  96339a02e9e36ee9f85d0371347ef9f5  gcc/testsuite/gcc.c-torture/execute/20020510-1.c
! c32dd714128c3bc76f3c63e76da55cd2  gcc/testsuite/gcc.c-torture/execute/20020529-1.c
  357ddb9bc128cbcfc12508fbe71f8c81  gcc/testsuite/gcc.c-torture/execute/20020611-1.c
  89b321e3b7d2897085313a540e5ff04c  gcc/testsuite/gcc.c-torture/execute/20020614-1.c
  916459f6dea793fb3fa9edfedf84ee1f  gcc/testsuite/gcc.c-torture/execute/20020615-1.c
--- 39561,39567 ----
  d01404bcff9f62cb69ac7e15de728e3e  gcc/testsuite/gcc.c-torture/execute/20020508-2.c
  63c1b7cee0632d3aa8bd5e51bbf3659b  gcc/testsuite/gcc.c-torture/execute/20020508-3.c
  96339a02e9e36ee9f85d0371347ef9f5  gcc/testsuite/gcc.c-torture/execute/20020510-1.c
! 3f30a7e9adc68a6d51e8006715674a1c  gcc/testsuite/gcc.c-torture/execute/20020529-1.c
  357ddb9bc128cbcfc12508fbe71f8c81  gcc/testsuite/gcc.c-torture/execute/20020611-1.c
  89b321e3b7d2897085313a540e5ff04c  gcc/testsuite/gcc.c-torture/execute/20020614-1.c
  916459f6dea793fb3fa9edfedf84ee1f  gcc/testsuite/gcc.c-torture/execute/20020615-1.c
*************** e6cdd500d62c42bcae64a5625a5e1a04  gcc/te
*** 37359,37370 ****
  7999c64515d7281ff4bbbe445b03ad5d  gcc/testsuite/gcc.c-torture/execute/20021015-1.c
  858e87a3c29ecb49271284de3c6e306d  gcc/testsuite/gcc.c-torture/execute/20021024-1.c
  1160af4b3fdee19614fd317bca08d84a  gcc/testsuite/gcc.c-torture/execute/20021111-1.c
! 40838cd0c2d0d7a1ddac17a60d2a3cdb  gcc/testsuite/gcc.c-torture/execute/20021113-1.c
  f5d6f9a4674c4ba8efb0ed0240f17f2a  gcc/testsuite/gcc.c-torture/execute/20021118-1.c
  301159066e78c05967bd2eba363a7bf7  gcc/testsuite/gcc.c-torture/execute/20021118-2.c
  028286a64da857532691502377b59871  gcc/testsuite/gcc.c-torture/execute/20021118-3.c
  e2af54f1f351f789666bd02d6b6badc8  gcc/testsuite/gcc.c-torture/execute/20021119-1.c
! da4d86fdf2b051264230d4307ee68bb1  gcc/testsuite/gcc.c-torture/execute/20021120-1.c
  fb84a2fd11d86e90438d77d7bd5702bc  gcc/testsuite/gcc.c-torture/execute/20021120-2.c
  57c1eba300d715eec79955579d908c55  gcc/testsuite/gcc.c-torture/execute/20021120-3.c
  8263e9811a4a695c69b878be62a82939  gcc/testsuite/gcc.c-torture/execute/20021127-1.c
--- 39581,39592 ----
  7999c64515d7281ff4bbbe445b03ad5d  gcc/testsuite/gcc.c-torture/execute/20021015-1.c
  858e87a3c29ecb49271284de3c6e306d  gcc/testsuite/gcc.c-torture/execute/20021024-1.c
  1160af4b3fdee19614fd317bca08d84a  gcc/testsuite/gcc.c-torture/execute/20021111-1.c
! ba59d00488e67e085ab03508328292fb  gcc/testsuite/gcc.c-torture/execute/20021113-1.c
  f5d6f9a4674c4ba8efb0ed0240f17f2a  gcc/testsuite/gcc.c-torture/execute/20021118-1.c
  301159066e78c05967bd2eba363a7bf7  gcc/testsuite/gcc.c-torture/execute/20021118-2.c
  028286a64da857532691502377b59871  gcc/testsuite/gcc.c-torture/execute/20021118-3.c
  e2af54f1f351f789666bd02d6b6badc8  gcc/testsuite/gcc.c-torture/execute/20021119-1.c
! e31073c911694dec8ea54e45e2cddc57  gcc/testsuite/gcc.c-torture/execute/20021120-1.c
  fb84a2fd11d86e90438d77d7bd5702bc  gcc/testsuite/gcc.c-torture/execute/20021120-2.c
  57c1eba300d715eec79955579d908c55  gcc/testsuite/gcc.c-torture/execute/20021120-3.c
  8263e9811a4a695c69b878be62a82939  gcc/testsuite/gcc.c-torture/execute/20021127-1.c
*************** e10a4af19d16e3fc352bd76e7e43ce13  gcc/te
*** 37398,37404 ****
  6e6c62a56db47bac30ea6d336496052b  gcc/testsuite/gcc.c-torture/execute/20030613-1.c
  131227f1fe8e52cd86b7a3ac8ea8f33f  gcc/testsuite/gcc.c-torture/execute/20030626-1.c
  067b7ded39308e072ce06fae93b35b13  gcc/testsuite/gcc.c-torture/execute/20030626-2.c
! d63fa0e84624272e6f2ad8419616fc9b  gcc/testsuite/gcc.c-torture/execute/20030714-1.c
  2dc2fe75113c64a03881dc429aa3d44c  gcc/testsuite/gcc.c-torture/execute/20030715-1.c
  b9c9e263d4826af2bdd8bb43ff57c005  gcc/testsuite/gcc.c-torture/execute/20030717-1.c
  c9e6e83c42fda89ad40f269108f25f4e  gcc/testsuite/gcc.c-torture/execute/20030718-1.c
--- 39620,39626 ----
  6e6c62a56db47bac30ea6d336496052b  gcc/testsuite/gcc.c-torture/execute/20030613-1.c
  131227f1fe8e52cd86b7a3ac8ea8f33f  gcc/testsuite/gcc.c-torture/execute/20030626-1.c
  067b7ded39308e072ce06fae93b35b13  gcc/testsuite/gcc.c-torture/execute/20030626-2.c
! bfe89def85a6b2c9b8b3d745e588951e  gcc/testsuite/gcc.c-torture/execute/20030714-1.c
  2dc2fe75113c64a03881dc429aa3d44c  gcc/testsuite/gcc.c-torture/execute/20030715-1.c
  b9c9e263d4826af2bdd8bb43ff57c005  gcc/testsuite/gcc.c-torture/execute/20030717-1.c
  c9e6e83c42fda89ad40f269108f25f4e  gcc/testsuite/gcc.c-torture/execute/20030718-1.c
*************** b7e2c5b26e1fd74b8e3267942f6ef9f3  gcc/te
*** 37415,37421 ****
  7f9877735bc2a10ff8c071799aa2dbfa  gcc/testsuite/gcc.c-torture/execute/20030916-1.c
  957ac496a085ef963a4d641eae099951  gcc/testsuite/gcc.c-torture/execute/20030920-1.c
  285e3016d230806fef6881321bce92d9  gcc/testsuite/gcc.c-torture/execute/20030928-1.c
! 90922bc1369cccc337da8d38e2c42221  gcc/testsuite/gcc.c-torture/execute/20031003-1.c
  39804cc5c015e189d6ebdf598acc0a98  gcc/testsuite/gcc.c-torture/execute/20031010-1.c
  658d7b3b078715acc0fd17343437d0c8  gcc/testsuite/gcc.c-torture/execute/20031011-1.c
  53a66e7116eed75c77b618dde5de05fb  gcc/testsuite/gcc.c-torture/execute/20031012-1.c
--- 39637,39643 ----
  7f9877735bc2a10ff8c071799aa2dbfa  gcc/testsuite/gcc.c-torture/execute/20030916-1.c
  957ac496a085ef963a4d641eae099951  gcc/testsuite/gcc.c-torture/execute/20030920-1.c
  285e3016d230806fef6881321bce92d9  gcc/testsuite/gcc.c-torture/execute/20030928-1.c
! 0f1b9168b10779df27355d8ca4f7a768  gcc/testsuite/gcc.c-torture/execute/20031003-1.c
  39804cc5c015e189d6ebdf598acc0a98  gcc/testsuite/gcc.c-torture/execute/20031010-1.c
  658d7b3b078715acc0fd17343437d0c8  gcc/testsuite/gcc.c-torture/execute/20031011-1.c
  53a66e7116eed75c77b618dde5de05fb  gcc/testsuite/gcc.c-torture/execute/20031012-1.c
*************** d3180d60caa9c649e766c97c43c27e7d  gcc/te
*** 37429,37438 ****
  1bfa072efe73cd1c9cb9c4b1b05dc50b  gcc/testsuite/gcc.c-torture/execute/20031216-1.c
  93f2c485575911b733ee54a8dfea765e  gcc/testsuite/gcc.c-torture/execute/20040208-1.c
  966af08e5f50178a52e0620d09258e6c  gcc/testsuite/gcc.c-torture/execute/20040218-1.c
! 98ab80ef92bb1bffb21e5e0b450456fc  gcc/testsuite/gcc.c-torture/execute/20040223-1.c
  f06d9ad089b622231299d688271388e6  gcc/testsuite/gcc.c-torture/execute/20040302-1.c
  c5c8d184976a5a644d004664597d8470  gcc/testsuite/gcc.c-torture/execute/20040307-1.c
! 63840c495b2d5c509c67d490fcf648c0  gcc/testsuite/gcc.c-torture/execute/20040308-1.c
  04256d17aeb67607ff04cde51744b4a0  gcc/testsuite/gcc.c-torture/execute/20040309-1.c
  7e4b8938e9221a488d2eab7cfc75da92  gcc/testsuite/gcc.c-torture/execute/20040311-1.c
  60f74a250af358450582e43f4cfa84e1  gcc/testsuite/gcc.c-torture/execute/20040313-1.c
--- 39651,39660 ----
  1bfa072efe73cd1c9cb9c4b1b05dc50b  gcc/testsuite/gcc.c-torture/execute/20031216-1.c
  93f2c485575911b733ee54a8dfea765e  gcc/testsuite/gcc.c-torture/execute/20040208-1.c
  966af08e5f50178a52e0620d09258e6c  gcc/testsuite/gcc.c-torture/execute/20040218-1.c
! ec552391f559a32b08c6f9d2ec23d674  gcc/testsuite/gcc.c-torture/execute/20040223-1.c
  f06d9ad089b622231299d688271388e6  gcc/testsuite/gcc.c-torture/execute/20040302-1.c
  c5c8d184976a5a644d004664597d8470  gcc/testsuite/gcc.c-torture/execute/20040307-1.c
! 5ce54217010bef24e3f3e1f75ba0d5b3  gcc/testsuite/gcc.c-torture/execute/20040308-1.c
  04256d17aeb67607ff04cde51744b4a0  gcc/testsuite/gcc.c-torture/execute/20040309-1.c
  7e4b8938e9221a488d2eab7cfc75da92  gcc/testsuite/gcc.c-torture/execute/20040311-1.c
  60f74a250af358450582e43f4cfa84e1  gcc/testsuite/gcc.c-torture/execute/20040313-1.c
*************** a7b258810fe0d84039610650ff52c8d0  gcc/te
*** 37459,37465 ****
  4c3391745b81160c6956ea5a444c9741  gcc/testsuite/gcc.c-torture/execute/20040709-2.c
  60afe4e2e2885d5ea2eb6fb8faee4070  gcc/testsuite/gcc.c-torture/execute/20040709-3.c
  5d35651cff21592320269061c056fbfd  gcc/testsuite/gcc.c-torture/execute/20040805-1.c
! 4e1698f0365b941664586df69c03e4cf  gcc/testsuite/gcc.c-torture/execute/20040811-1.c
  8447ba9c7e53c35ad32e5bab75dd5a68  gcc/testsuite/gcc.c-torture/execute/20040820-1.c
  dc8ef6a2f62bcfea90605a1500ebf16b  gcc/testsuite/gcc.c-torture/execute/20040823-1.c
  695236bbd612182e45f7e5b53bd4ed87  gcc/testsuite/gcc.c-torture/execute/20040831-1.c
--- 39681,39687 ----
  4c3391745b81160c6956ea5a444c9741  gcc/testsuite/gcc.c-torture/execute/20040709-2.c
  60afe4e2e2885d5ea2eb6fb8faee4070  gcc/testsuite/gcc.c-torture/execute/20040709-3.c
  5d35651cff21592320269061c056fbfd  gcc/testsuite/gcc.c-torture/execute/20040805-1.c
! 4c0d0f31d6da2d235c1d67e0e705b49e  gcc/testsuite/gcc.c-torture/execute/20040811-1.c
  8447ba9c7e53c35ad32e5bab75dd5a68  gcc/testsuite/gcc.c-torture/execute/20040820-1.c
  dc8ef6a2f62bcfea90605a1500ebf16b  gcc/testsuite/gcc.c-torture/execute/20040823-1.c
  695236bbd612182e45f7e5b53bd4ed87  gcc/testsuite/gcc.c-torture/execute/20040831-1.c
*************** e118a7323d7587cd507e6973401b9320  gcc/te
*** 37505,37511 ****
  661e59505790be2bb55f7f51fab3feaf  gcc/testsuite/gcc.c-torture/execute/20050826-1.c
  c249e43f9cc645254347f5276ac72a88  gcc/testsuite/gcc.c-torture/execute/20050826-2.c
  1528b8471b0b7d00bef4bc8f31c93567  gcc/testsuite/gcc.c-torture/execute/20050929-1.c
! e86b7b0ac9c367f10645e42689dcd82b  gcc/testsuite/gcc.c-torture/execute/20051012-1.c
  a5b818e2cd3207c10ff476ecc5f7fdd9  gcc/testsuite/gcc.c-torture/execute/20051021-1.c
  a21c0acdfd2c46a5a8dda42081b74612  gcc/testsuite/gcc.c-torture/execute/20051104-1.c
  50a41c72f1ededc87d59dc531aaead94  gcc/testsuite/gcc.c-torture/execute/20051110-1.c
--- 39727,39733 ----
  661e59505790be2bb55f7f51fab3feaf  gcc/testsuite/gcc.c-torture/execute/20050826-1.c
  c249e43f9cc645254347f5276ac72a88  gcc/testsuite/gcc.c-torture/execute/20050826-2.c
  1528b8471b0b7d00bef4bc8f31c93567  gcc/testsuite/gcc.c-torture/execute/20050929-1.c
! cdcebe606ad424f42a991d7680c56984  gcc/testsuite/gcc.c-torture/execute/20051012-1.c
  a5b818e2cd3207c10ff476ecc5f7fdd9  gcc/testsuite/gcc.c-torture/execute/20051021-1.c
  a21c0acdfd2c46a5a8dda42081b74612  gcc/testsuite/gcc.c-torture/execute/20051104-1.c
  50a41c72f1ededc87d59dc531aaead94  gcc/testsuite/gcc.c-torture/execute/20051110-1.c
*************** f3eed1078ff5f6d2dcf58b8017d389a8  gcc/te
*** 37536,37543 ****
  e5b4685ba40ad7e05f982d75ff7896cb  gcc/testsuite/gcc.c-torture/execute/20070614-1.c
  d1c3d9af8c5a7c388205d8ff82d8ad6b  gcc/testsuite/gcc.c-torture/execute/20070623-1.c
  cd59ed61715f9880c9feff51a8c64b4c  gcc/testsuite/gcc.c-torture/execute/20070724-1.c
! 3b790b1b0446243ca7f61a8613c3451e  gcc/testsuite/gcc.c-torture/execute/20070824-1.c
! c7cef83b6fc9e552eefc154b20a4373e  gcc/testsuite/gcc.c-torture/execute/20070919-1.c
  0c3cbd713b37dda3a59f379c8f9500d0  gcc/testsuite/gcc.c-torture/execute/20071011-1.c
  6e5749856298a2cd3baf3e8a977a9833  gcc/testsuite/gcc.c-torture/execute/20071018-1.c
  87e4989b0aa343ebfe832ea9f0d34329  gcc/testsuite/gcc.c-torture/execute/20071029-1.c
--- 39758,39765 ----
  e5b4685ba40ad7e05f982d75ff7896cb  gcc/testsuite/gcc.c-torture/execute/20070614-1.c
  d1c3d9af8c5a7c388205d8ff82d8ad6b  gcc/testsuite/gcc.c-torture/execute/20070623-1.c
  cd59ed61715f9880c9feff51a8c64b4c  gcc/testsuite/gcc.c-torture/execute/20070724-1.c
! a1b0de0bd80eb6108be1436636670889  gcc/testsuite/gcc.c-torture/execute/20070824-1.c
! 1b039e095a2b260d2e2ea0a971cfb119  gcc/testsuite/gcc.c-torture/execute/20070919-1.c
  0c3cbd713b37dda3a59f379c8f9500d0  gcc/testsuite/gcc.c-torture/execute/20071011-1.c
  6e5749856298a2cd3baf3e8a977a9833  gcc/testsuite/gcc.c-torture/execute/20071018-1.c
  87e4989b0aa343ebfe832ea9f0d34329  gcc/testsuite/gcc.c-torture/execute/20071029-1.c
*************** a1ec6e4bfca597b6bc8fae57d3b60211  gcc/te
*** 37588,37594 ****
  3f1ed16a9981583ab732d7dcc00acbdd  gcc/testsuite/gcc.c-torture/execute/20100708-1.c
  04279b759ce025eb37d017bc0bfe6d2f  gcc/testsuite/gcc.c-torture/execute/20100805-1.c
  94262b3a70161a035a289e60d6b39c44  gcc/testsuite/gcc.c-torture/execute/20100827-1.c
! 20ff4f6eb188fabe2719318756b95769  gcc/testsuite/gcc.c-torture/execute/20101011-1.c
  2753f885fabef60aad30c05f7d0a42a8  gcc/testsuite/gcc.c-torture/execute/20101013-1.c
  05051ad168544241157b674fe2d97381  gcc/testsuite/gcc.c-torture/execute/20101025-1.c
  25e8df034740874c03a94dd4abc11ebe  gcc/testsuite/gcc.c-torture/execute/20110418-1.c
--- 39810,39816 ----
  3f1ed16a9981583ab732d7dcc00acbdd  gcc/testsuite/gcc.c-torture/execute/20100708-1.c
  04279b759ce025eb37d017bc0bfe6d2f  gcc/testsuite/gcc.c-torture/execute/20100805-1.c
  94262b3a70161a035a289e60d6b39c44  gcc/testsuite/gcc.c-torture/execute/20100827-1.c
! 661bc38941bdefcbfbd626aad950ea4b  gcc/testsuite/gcc.c-torture/execute/20101011-1.c
  2753f885fabef60aad30c05f7d0a42a8  gcc/testsuite/gcc.c-torture/execute/20101013-1.c
  05051ad168544241157b674fe2d97381  gcc/testsuite/gcc.c-torture/execute/20101025-1.c
  25e8df034740874c03a94dd4abc11ebe  gcc/testsuite/gcc.c-torture/execute/20110418-1.c
*************** a024382373a506e7761148108043c429  gcc/te
*** 37627,37633 ****
  09507ca98613870c046de0e4814d1831  gcc/testsuite/gcc.c-torture/execute/20180921-1.c
  03e6abf4c7580822fb8fcbb32c3bb34a  gcc/testsuite/gcc.c-torture/execute/20181120-1.c
  ecbbfd4b186a0dd8448d96f39a543fb4  gcc/testsuite/gcc.c-torture/execute/20190228-1.c
! 493547677da2253a099f6a5a237a59b1  gcc/testsuite/gcc.c-torture/execute/20190820-1.c
  8476af17c3a5d7a639fdbdcad1641482  gcc/testsuite/gcc.c-torture/execute/20190901-1.c
  2e368329bfad3d99e406eade7d55032d  gcc/testsuite/gcc.c-torture/execute/20191023-1.c
  b4ae081235a5dc1e90b1adea7befe6cf  gcc/testsuite/gcc.c-torture/execute/20210505-1.c
--- 39849,39855 ----
  09507ca98613870c046de0e4814d1831  gcc/testsuite/gcc.c-torture/execute/20180921-1.c
  03e6abf4c7580822fb8fcbb32c3bb34a  gcc/testsuite/gcc.c-torture/execute/20181120-1.c
  ecbbfd4b186a0dd8448d96f39a543fb4  gcc/testsuite/gcc.c-torture/execute/20190228-1.c
! 3bf74092e8da609b8688da0cf7384a7d  gcc/testsuite/gcc.c-torture/execute/20190820-1.c
  8476af17c3a5d7a639fdbdcad1641482  gcc/testsuite/gcc.c-torture/execute/20190901-1.c
  2e368329bfad3d99e406eade7d55032d  gcc/testsuite/gcc.c-torture/execute/20191023-1.c
  b4ae081235a5dc1e90b1adea7befe6cf  gcc/testsuite/gcc.c-torture/execute/20210505-1.c
*************** c152b22273bc18a4c77712056ad155b2  gcc/te
*** 37639,37644 ****
--- 39861,39867 ----
  912059e83a735f932b9b42d00fb0c7d8  gcc/testsuite/gcc.c-torture/execute/20230630-3.c
  0185fecb4499ba1382514035b9f9e8e3  gcc/testsuite/gcc.c-torture/execute/20230630-4.c
  5f8dc3073ddb17faad8fe6299ce34fb7  gcc/testsuite/gcc.c-torture/execute/20230802-1.c
+ b1b4e62be38d27a57c83e464074430c1  gcc/testsuite/gcc.c-torture/execute/20241029-1.c
  edfe80eb63973b65777d4b076b020069  gcc/testsuite/gcc.c-torture/execute/900409-1.c
  bef8356f0725f59a5b641e06f11e10c0  gcc/testsuite/gcc.c-torture/execute/920202-1.c
  da34b8c23c4d6092ccb4bc50e1842302  gcc/testsuite/gcc.c-torture/execute/920302-1.c
*************** c807cd4552b4c2e21da54fe3969ebb98  gcc/te
*** 37662,37675 ****
  133b93ac05ce9cc77e7e50e5ffa79bbf  gcc/testsuite/gcc.c-torture/execute/920520-1.c
  84cfabce66b17bbab824e5a6cbeb3d8d  gcc/testsuite/gcc.c-torture/execute/920603-1.c
  4643ea7aecaf04e4abd28020d7ad2740  gcc/testsuite/gcc.c-torture/execute/920604-1.c
! 2603675161614674c793620ef61c57d6  gcc/testsuite/gcc.c-torture/execute/920612-1.c
  7487f781526c9ca3759552ea185f5401  gcc/testsuite/gcc.c-torture/execute/920612-2.c
  95454344ca09595aa0e160ea1aa46dbe  gcc/testsuite/gcc.c-torture/execute/920618-1.c
  ff523baef823a92dc716243bddc02db7  gcc/testsuite/gcc.c-torture/execute/920625-1.c
  b129224eadd2d6e97c69bea530680e92  gcc/testsuite/gcc.c-torture/execute/920710-1.c
  935f2ebde080a2ed34e886958029138f  gcc/testsuite/gcc.c-torture/execute/920711-1.c
  8bf6321ba971ba934770b93e4d262cc5  gcc/testsuite/gcc.c-torture/execute/920721-1.c
! fa0f65935f7c08c30c51b8ca56de83cf  gcc/testsuite/gcc.c-torture/execute/920721-2.c
  83246cb9c8e8c0ddafe9b76807fd0288  gcc/testsuite/gcc.c-torture/execute/920721-3.c
  83f55b273a8b515f8f7446dd7fdf8dec  gcc/testsuite/gcc.c-torture/execute/920721-4.c
  a80b4e49c7d9d81a116d0356dc2e3024  gcc/testsuite/gcc.c-torture/execute/920726-1.c
--- 39885,39898 ----
  133b93ac05ce9cc77e7e50e5ffa79bbf  gcc/testsuite/gcc.c-torture/execute/920520-1.c
  84cfabce66b17bbab824e5a6cbeb3d8d  gcc/testsuite/gcc.c-torture/execute/920603-1.c
  4643ea7aecaf04e4abd28020d7ad2740  gcc/testsuite/gcc.c-torture/execute/920604-1.c
! 1b6bc0f37d277fda9edc86e1362508fe  gcc/testsuite/gcc.c-torture/execute/920612-1.c
  7487f781526c9ca3759552ea185f5401  gcc/testsuite/gcc.c-torture/execute/920612-2.c
  95454344ca09595aa0e160ea1aa46dbe  gcc/testsuite/gcc.c-torture/execute/920618-1.c
  ff523baef823a92dc716243bddc02db7  gcc/testsuite/gcc.c-torture/execute/920625-1.c
  b129224eadd2d6e97c69bea530680e92  gcc/testsuite/gcc.c-torture/execute/920710-1.c
  935f2ebde080a2ed34e886958029138f  gcc/testsuite/gcc.c-torture/execute/920711-1.c
  8bf6321ba971ba934770b93e4d262cc5  gcc/testsuite/gcc.c-torture/execute/920721-1.c
! 0852fc157d5851103daa9b3c0c0da0d5  gcc/testsuite/gcc.c-torture/execute/920721-2.c
  83246cb9c8e8c0ddafe9b76807fd0288  gcc/testsuite/gcc.c-torture/execute/920721-3.c
  83f55b273a8b515f8f7446dd7fdf8dec  gcc/testsuite/gcc.c-torture/execute/920721-4.c
  a80b4e49c7d9d81a116d0356dc2e3024  gcc/testsuite/gcc.c-torture/execute/920726-1.c
*************** a80b4e49c7d9d81a116d0356dc2e3024  gcc/te
*** 37683,37694 ****
  f152ed1163afd79580773b3cb62f0f60  gcc/testsuite/gcc.c-torture/execute/920908-2.c
  7ba03003a270a537f3e44fee570d6379  gcc/testsuite/gcc.c-torture/execute/920909-1.c
  67710536da1867de99f71deb7d01126e  gcc/testsuite/gcc.c-torture/execute/920922-1.c
! 8730bcba222606c29bf19354a3415708  gcc/testsuite/gcc.c-torture/execute/920929-1.c
  692e28a7b3513b3e034046e32c072842  gcc/testsuite/gcc.c-torture/execute/921006-1.c
  f1c5e845af644547821f7339d634fea5  gcc/testsuite/gcc.c-torture/execute/921007-1.c
  3cc72e38f9d25f7a0860d03dd1be2da2  gcc/testsuite/gcc.c-torture/execute/921013-1.c
  ffe3b600c6e78fdeb1f995c3cb829cd5  gcc/testsuite/gcc.c-torture/execute/921016-1.c
! e8a0b8a409a0144212183b036d26388f  gcc/testsuite/gcc.c-torture/execute/921017-1.c
  299f50cd42b6a5ada0c3b1316b9d946c  gcc/testsuite/gcc.c-torture/execute/921019-1.c
  40cd5ca54f9ba0126eb44965fab1bf94  gcc/testsuite/gcc.c-torture/execute/921019-2.c
  13acec7278653c964bab2effd1894a5c  gcc/testsuite/gcc.c-torture/execute/921029-1.c
--- 39906,39917 ----
  f152ed1163afd79580773b3cb62f0f60  gcc/testsuite/gcc.c-torture/execute/920908-2.c
  7ba03003a270a537f3e44fee570d6379  gcc/testsuite/gcc.c-torture/execute/920909-1.c
  67710536da1867de99f71deb7d01126e  gcc/testsuite/gcc.c-torture/execute/920922-1.c
! e58d872927d512ffbc519a418a1281b8  gcc/testsuite/gcc.c-torture/execute/920929-1.c
  692e28a7b3513b3e034046e32c072842  gcc/testsuite/gcc.c-torture/execute/921006-1.c
  f1c5e845af644547821f7339d634fea5  gcc/testsuite/gcc.c-torture/execute/921007-1.c
  3cc72e38f9d25f7a0860d03dd1be2da2  gcc/testsuite/gcc.c-torture/execute/921013-1.c
  ffe3b600c6e78fdeb1f995c3cb829cd5  gcc/testsuite/gcc.c-torture/execute/921016-1.c
! 8e8842419ff71706db6dad31cf00c12b  gcc/testsuite/gcc.c-torture/execute/921017-1.c
  299f50cd42b6a5ada0c3b1316b9d946c  gcc/testsuite/gcc.c-torture/execute/921019-1.c
  40cd5ca54f9ba0126eb44965fab1bf94  gcc/testsuite/gcc.c-torture/execute/921019-2.c
  13acec7278653c964bab2effd1894a5c  gcc/testsuite/gcc.c-torture/execute/921029-1.c
*************** c9bddda9d0b04fe2c935fe41d75f9617  gcc/te
*** 37727,37733 ****
  3a417c03d2d7ebc97f35d5ba76914ec6  gcc/testsuite/gcc.c-torture/execute/930603-1.c
  d49643b46d476992ef08c3165531bb27  gcc/testsuite/gcc.c-torture/execute/930603-2.c
  133d2c9cc266440944c18a01b642ff42  gcc/testsuite/gcc.c-torture/execute/930603-3.c
! c3b83fcbdda798d14d7c64a1c033bebf  gcc/testsuite/gcc.c-torture/execute/930608-1.c
  558ef2702ca27a8bac255e1835302765  gcc/testsuite/gcc.c-torture/execute/930614-1.c
  c867d1f0be43c421cbad940f9e2b4b97  gcc/testsuite/gcc.c-torture/execute/930614-2.c
  bbf9534b30832c743dd73a9367cc46dd  gcc/testsuite/gcc.c-torture/execute/930621-1.c
--- 39950,39956 ----
  3a417c03d2d7ebc97f35d5ba76914ec6  gcc/testsuite/gcc.c-torture/execute/930603-1.c
  d49643b46d476992ef08c3165531bb27  gcc/testsuite/gcc.c-torture/execute/930603-2.c
  133d2c9cc266440944c18a01b642ff42  gcc/testsuite/gcc.c-torture/execute/930603-3.c
! 86d5b32aeceeca0886b3ef0a2f674e80  gcc/testsuite/gcc.c-torture/execute/930608-1.c
  558ef2702ca27a8bac255e1835302765  gcc/testsuite/gcc.c-torture/execute/930614-1.c
  c867d1f0be43c421cbad940f9e2b4b97  gcc/testsuite/gcc.c-torture/execute/930614-2.c
  bbf9534b30832c743dd73a9367cc46dd  gcc/testsuite/gcc.c-torture/execute/930621-1.c
*************** fb682984ea6f0ad46fefedd8b9d15b63  gcc/te
*** 37783,37789 ****
  ca63b807749bece282772e73e4730dbf  gcc/testsuite/gcc.c-torture/execute/941031-1.c
  bd33abb314ba00401b203cb55aaa1fed  gcc/testsuite/gcc.c-torture/execute/941101-1.c
  76a0cf7db227260ae79d077e57ec08db  gcc/testsuite/gcc.c-torture/execute/941110-1.c
! d173c69f9008284c5c6d475384c3ad30  gcc/testsuite/gcc.c-torture/execute/941202-1.c
  d702d99a5fde727b5cfeaa4819f1b620  gcc/testsuite/gcc.c-torture/execute/950221-1.c
  c921891c7b56247aa8ebe117a75ca50c  gcc/testsuite/gcc.c-torture/execute/950322-1.c
  ee6e1976a46aba5ab97761fc4f78b99c  gcc/testsuite/gcc.c-torture/execute/950426-1.c
--- 40006,40012 ----
  ca63b807749bece282772e73e4730dbf  gcc/testsuite/gcc.c-torture/execute/941031-1.c
  bd33abb314ba00401b203cb55aaa1fed  gcc/testsuite/gcc.c-torture/execute/941101-1.c
  76a0cf7db227260ae79d077e57ec08db  gcc/testsuite/gcc.c-torture/execute/941110-1.c
! 5f65750fba0d98a59337032f04a74c35  gcc/testsuite/gcc.c-torture/execute/941202-1.c
  d702d99a5fde727b5cfeaa4819f1b620  gcc/testsuite/gcc.c-torture/execute/950221-1.c
  c921891c7b56247aa8ebe117a75ca50c  gcc/testsuite/gcc.c-torture/execute/950322-1.c
  ee6e1976a46aba5ab97761fc4f78b99c  gcc/testsuite/gcc.c-torture/execute/950426-1.c
*************** a08a51349679ce3a52d27a9b315e7750  gcc/te
*** 37934,37941 ****
  36577c3d6d1b6c7018583b2e11f6df26  gcc/testsuite/gcc.c-torture/execute/align-1.c
  1049308ac91b1a14ecb57a81edf264b7  gcc/testsuite/gcc.c-torture/execute/align-2.c
  583ae43bda2e69e5c769adaf26b03fd2  gcc/testsuite/gcc.c-torture/execute/align-3.c
! ddf28eee61ee7c96a733b2d3efb869bb  gcc/testsuite/gcc.c-torture/execute/align-nest.c
! 1984a0bea0627cdbfc4ddc53a1fcd5b5  gcc/testsuite/gcc.c-torture/execute/alloca-1.c
  3e4cb3c786052d471ccfb6cc7b29dafc  gcc/testsuite/gcc.c-torture/execute/anon-1.c
  d14f192541c8e0dccbf3b955d3567ff2  gcc/testsuite/gcc.c-torture/execute/arith-1.c
  f75e046a0d7deb83c36549d24e8259a9  gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
--- 40157,40164 ----
  36577c3d6d1b6c7018583b2e11f6df26  gcc/testsuite/gcc.c-torture/execute/align-1.c
  1049308ac91b1a14ecb57a81edf264b7  gcc/testsuite/gcc.c-torture/execute/align-2.c
  583ae43bda2e69e5c769adaf26b03fd2  gcc/testsuite/gcc.c-torture/execute/align-3.c
! 6ce1aa70a7979dab482294b9d6ecd025  gcc/testsuite/gcc.c-torture/execute/align-nest.c
! a128c2c9a520319b19d1e4f482e0ae86  gcc/testsuite/gcc.c-torture/execute/alloca-1.c
  3e4cb3c786052d471ccfb6cc7b29dafc  gcc/testsuite/gcc.c-torture/execute/anon-1.c
  d14f192541c8e0dccbf3b955d3567ff2  gcc/testsuite/gcc.c-torture/execute/arith-1.c
  f75e046a0d7deb83c36549d24e8259a9  gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
*************** a32c6024c984133a94e1152142534dbe  gcc/te
*** 37963,37972 ****
  8f6d019c36fbdfbd20c5b71194cf624b  gcc/testsuite/gcc.c-torture/execute/bswap-1.c
  b348ec55a6a8ab8bbe20373c45483e58  gcc/testsuite/gcc.c-torture/execute/bswap-2.c
  5458bb83bb95be0456cadd66afc8a351  gcc/testsuite/gcc.c-torture/execute/bswap-3.c
! 65faa00e26dc1990e5abe71f54ec433d  gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c
  488768e52a3e5be315892a84997b411f  gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
  e4a3e3dfcd13646798700bb0b6291695  gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
! fbff19130837ebb4af596f36ea339d53  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
  b7077a5eeb953bb1c3b11555f2712ae9  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
  82f043d47a571f7b3fb99f8b4928402f  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
  90935ff71d6f1a7c99387dc7fcdf9e3d  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
--- 40186,40195 ----
  8f6d019c36fbdfbd20c5b71194cf624b  gcc/testsuite/gcc.c-torture/execute/bswap-1.c
  b348ec55a6a8ab8bbe20373c45483e58  gcc/testsuite/gcc.c-torture/execute/bswap-2.c
  5458bb83bb95be0456cadd66afc8a351  gcc/testsuite/gcc.c-torture/execute/bswap-3.c
! d52cc8ab1cfa04ce44b3294534df9ff5  gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c
  488768e52a3e5be315892a84997b411f  gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
  e4a3e3dfcd13646798700bb0b6291695  gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
! 8cd22ed9561cd512da91d71e1027ae69  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
  b7077a5eeb953bb1c3b11555f2712ae9  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
  82f043d47a571f7b3fb99f8b4928402f  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
  90935ff71d6f1a7c99387dc7fcdf9e3d  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
*************** caa74354806f94b1777d3d438547d909  gcc/te
*** 37983,37989 ****
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! f6e7eed8bcd226da6fe4470cfdc08923  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
--- 40206,40212 ----
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! 7d02f5cd109af7e7922715ddcb02b825  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
*************** a2c6a368bc2b14728093f3e15b60bca2  gcc/te
*** 37993,37999 ****
  1af9602d427715e3713392fb8629dbb4  gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c
  0599acacff76d8f472235de0aa117335  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x
! 2ac6f3be9fb3e03f958363fe6feb5ddd  gcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c
  203feadf3b2ef38b39a672ad869b3593  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bfill.c
  b8037fc112af35d75cbef5e2f265e838  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bzero.c
  6bc0f24320e5a407205ec2036abe6eeb  gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c
--- 40216,40222 ----
  1af9602d427715e3713392fb8629dbb4  gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c
  0599acacff76d8f472235de0aa117335  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x
! 4486f71728d0d200a41914fc78d3811b  gcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c
  203feadf3b2ef38b39a672ad869b3593  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bfill.c
  b8037fc112af35d75cbef5e2f265e838  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bzero.c
  6bc0f24320e5a407205ec2036abe6eeb  gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c
*************** bb7f149cfe551a03856591be0fdfcef5  gcc/te
*** 38130,38135 ****
--- 40353,40367 ----
  d5b51664c6ca431aadc9eb21024bcb22  gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.x
  2c4aa3d41b1deee5941ae83f5b8a1b8e  gcc/testsuite/gcc.c-torture/execute/builtins/strstr-lib.c
  0bbef83f84e8387e587a22ccb8ec867f  gcc/testsuite/gcc.c-torture/execute/builtins/strstr.c
+ 4ad93817ce1efe6df723a957d236e2d3  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1-lib.c
+ 73ffeeeaa59098c9654f03f9866eb272  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.c
+ 70e44937d70013463e95e43d0985bcc3  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-1.x
+ 1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2-lib.c
+ ab857a7dcf5c494ff956997d617ead31  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.c
+ 81c56b90c5387ea8263f4780ff15f697  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-2.x
+ 1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3-lib.c
+ 1079fb0a1658ecbe4fca4bbc913cbb26  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.c
+ 81c56b90c5387ea8263f4780ff15f697  gcc/testsuite/gcc.c-torture/execute/builtins/uabs-3.x
  8e258d2fc5daa60d7007d842cf555b36  gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c
  e78c1c5d2377acab6d348a2fd72b2f87  gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.c
  19772f2588ea94132a01a02822e64568  gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x
*************** c64db10abf8774c6bcba1b9c87d9cb39  gcc/te
*** 38142,38148 ****
  9d07b50578c954955dcffed6472bd294  gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
  f161e9de9b41e57283c7a250ce6f004b  gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
  9091dc7e5b1a8df7d33c0fe27e253dc7  gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
! b9fcc2622f4ca20446ccd88cf97dfd90  gcc/testsuite/gcc.c-torture/execute/comp-goto-1.c
  485b8d95d1ebf43268b77ddc506a872a  gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c
  f085b9359ce3c84fa1ab085ae3431f33  gcc/testsuite/gcc.c-torture/execute/compare-1.c
  78ba559f49bac44634d2e1dead363844  gcc/testsuite/gcc.c-torture/execute/compare-2.c
--- 40374,40380 ----
  9d07b50578c954955dcffed6472bd294  gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
  f161e9de9b41e57283c7a250ce6f004b  gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
  9091dc7e5b1a8df7d33c0fe27e253dc7  gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
! cf7f9f91d58d81b1f927cdb3f8dd7441  gcc/testsuite/gcc.c-torture/execute/comp-goto-1.c
  485b8d95d1ebf43268b77ddc506a872a  gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c
  f085b9359ce3c84fa1ab085ae3431f33  gcc/testsuite/gcc.c-torture/execute/compare-1.c
  78ba559f49bac44634d2e1dead363844  gcc/testsuite/gcc.c-torture/execute/compare-2.c
*************** e329c7fca0108570e81273f5b62d90e0  gcc/te
*** 38174,38180 ****
  a6b308419fd50f1c9431e404ccfc3c3f  gcc/testsuite/gcc.c-torture/execute/enum-1.c
  13a82975b119197695ece083661c3653  gcc/testsuite/gcc.c-torture/execute/enum-2.c
  91b8922c3b6304ab6ab99942dbca6c66  gcc/testsuite/gcc.c-torture/execute/enum-3.c
! cd16361a595e3f324036cadbc92364bc  gcc/testsuite/gcc.c-torture/execute/execute.exp
  ff6f0be0ecfab0c79d835c0bc61a8f5c  gcc/testsuite/gcc.c-torture/execute/extzvsi.c
  d2dbbb18d94c0dbb1f03952bbd682bdc  gcc/testsuite/gcc.c-torture/execute/ffs-1.c
  59890cc9fc7ac6d103d95e083b353cd1  gcc/testsuite/gcc.c-torture/execute/ffs-2.c
--- 40406,40412 ----
  a6b308419fd50f1c9431e404ccfc3c3f  gcc/testsuite/gcc.c-torture/execute/enum-1.c
  13a82975b119197695ece083661c3653  gcc/testsuite/gcc.c-torture/execute/enum-2.c
  91b8922c3b6304ab6ab99942dbca6c66  gcc/testsuite/gcc.c-torture/execute/enum-3.c
! bc67830cf202f25f5d6336a23f829e94  gcc/testsuite/gcc.c-torture/execute/execute.exp
  ff6f0be0ecfab0c79d835c0bc61a8f5c  gcc/testsuite/gcc.c-torture/execute/extzvsi.c
  d2dbbb18d94c0dbb1f03952bbd682bdc  gcc/testsuite/gcc.c-torture/execute/ffs-1.c
  59890cc9fc7ac6d103d95e083b353cd1  gcc/testsuite/gcc.c-torture/execute/ffs-2.c
*************** e6628636bb1d3f6060c0f3fa545ec244  gcc/te
*** 38205,38211 ****
--- 40437,40445 ----
  1cf021216f4a92e1821d49d3e50471b9  gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
  a1ea960717201196b74eeb896ca4f445  gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c
  0012f310d4823bfb3b3732351eed8bd1  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkd.c
+ a18ee7d0d611e1d83f7144216d9d9940  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkd.x
  9c211c1532c221cc389836a7d4bda339  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkf.c
+ a18ee7d0d611e1d83f7144216d9d9940  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkf.x
  50551bee34b1d2c64c8b9748f44348f9  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.c
  a0b00affcad7636a7e7f4586907299b7  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.x
  f0eeef1d82cfa9d661c40547e550431b  gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.c
*************** fee97375f1852586391d62e54dbf07b6  gcc/te
*** 38217,38231 ****
  84a2ad7f3e1d4204c4a3a4c30b64c884  gcc/testsuite/gcc.c-torture/execute/ieee/copysign1.c
  a73aaa3087d645f7a2031b0393cbc54e  gcc/testsuite/gcc.c-torture/execute/ieee/copysign2.c
  cee982633d8c6497025b26266493c30d  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
! 8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.x
  f2cad81a497ddc97905f9b6b23306fb8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
! 8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x
  e4eeadaaefd09a4f2fce9123d6786f0c  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
! 8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.x
  e4c5097d8984afd46708b110fbfef4b9  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
  63eaf5e65da59266cdf1ee61a6f0e4cb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4e.c
  b4829a5beb2ba9c854289ed59b149c87  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.c
  84acc8b1076b65bc49262020bd723f48  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4l.c
  fb28173770b549d5a756232501915e9f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
  8120ee2cfdab77581a18e37b536833bb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
  9e43c27455c7096b6dbc2d64603291f8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.x
--- 40451,40468 ----
  84a2ad7f3e1d4204c4a3a4c30b64c884  gcc/testsuite/gcc.c-torture/execute/ieee/copysign1.c
  a73aaa3087d645f7a2031b0393cbc54e  gcc/testsuite/gcc.c-torture/execute/ieee/copysign2.c
  cee982633d8c6497025b26266493c30d  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
! ae1b0bc6b3d9a82b42d4b86278b91fcd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.x
  f2cad81a497ddc97905f9b6b23306fb8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
! ae1b0bc6b3d9a82b42d4b86278b91fcd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x
  e4eeadaaefd09a4f2fce9123d6786f0c  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
! ae1b0bc6b3d9a82b42d4b86278b91fcd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.x
  e4c5097d8984afd46708b110fbfef4b9  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
+ a1704e30b41702d95d414f3fd1993cbd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.x
  63eaf5e65da59266cdf1ee61a6f0e4cb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4e.c
  b4829a5beb2ba9c854289ed59b149c87  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.c
+ a1704e30b41702d95d414f3fd1993cbd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.x
  84acc8b1076b65bc49262020bd723f48  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4l.c
+ a1704e30b41702d95d414f3fd1993cbd  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4l.x
  fb28173770b549d5a756232501915e9f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
  8120ee2cfdab77581a18e37b536833bb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
  9e43c27455c7096b6dbc2d64603291f8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.x
*************** c70578fda10ba34906c056f0cfa7d7f4  gcc/te
*** 38240,38246 ****
  3843677f51ff2d4396417f474e39606f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-cond-1.c
  fc7f4f92037630d4fe8a9d712a20313b  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
  89328c997b5c856595f8abbea69ad47a  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.x
! 9503148678fe67d55464e4308f45e544  gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
  becc504a322770453dcee9cedb700b2a  gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c
  455ba77f92be22cda1b657fc7de869ac  gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c
  2b23329ee0437a7e47b835bee3d9d3e1  gcc/testsuite/gcc.c-torture/execute/ieee/inf-3.c
--- 40477,40483 ----
  3843677f51ff2d4396417f474e39606f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-cond-1.c
  fc7f4f92037630d4fe8a9d712a20313b  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
  89328c997b5c856595f8abbea69ad47a  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.x
! 2a988b0fce62b096bb5a35a05a3b6e8d  gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
  becc504a322770453dcee9cedb700b2a  gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c
  455ba77f92be22cda1b657fc7de869ac  gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c
  2b23329ee0437a7e47b835bee3d9d3e1  gcc/testsuite/gcc.c-torture/execute/ieee/inf-3.c
*************** fb7fd7f587429cecf628de689fba7cff  gcc/te
*** 38254,38263 ****
  ca24b3bde293e0dc51664263dfbd7596  gcc/testsuite/gcc.c-torture/execute/ieee/mzero4.c
  2f16e3ea4441edcda4f549c1594bcab6  gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
  0ce3760920cb01c837823823f594fe72  gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
! 1d16dce456c4134583b993567f1ead0f  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-1.c
  d4e8f56755c1913d6081dfe8d0242da6  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-2.c
  a45b4760120c88edd8ca57835c941a19  gcc/testsuite/gcc.c-torture/execute/ieee/pr109008.c
  85a7ab9e9a70d0f0bc5caeb1e1f43644  gcc/testsuite/gcc.c-torture/execute/ieee/pr109386.c
  22adfe20f392496218ec0bcb6d9c2d4f  gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
  d8612b7bdffc24880131ef35f74be2d6  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.c
  34f935573c831edc6e12782ff995e44a  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.x
--- 40491,40502 ----
  ca24b3bde293e0dc51664263dfbd7596  gcc/testsuite/gcc.c-torture/execute/ieee/mzero4.c
  2f16e3ea4441edcda4f549c1594bcab6  gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
  0ce3760920cb01c837823823f594fe72  gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
! 34523b51abd16b4a9cfe2d6665a01c0f  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-1.c
! da00733dc97188b969a529cd8b392e3b  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-1.x
  d4e8f56755c1913d6081dfe8d0242da6  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-2.c
  a45b4760120c88edd8ca57835c941a19  gcc/testsuite/gcc.c-torture/execute/ieee/pr109008.c
  85a7ab9e9a70d0f0bc5caeb1e1f43644  gcc/testsuite/gcc.c-torture/execute/ieee/pr109386.c
+ 509562e2a0d5bb96ed308f334c168baa  gcc/testsuite/gcc.c-torture/execute/ieee/pr119002.c
  22adfe20f392496218ec0bcb6d9c2d4f  gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
  d8612b7bdffc24880131ef35f74be2d6  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.c
  34f935573c831edc6e12782ff995e44a  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.x
*************** c4da49c47f6f97e95bad1aef18f204ea  gcc/te
*** 38306,38312 ****
  ae7ed5d9639784fd3b77a385029c4483  gcc/testsuite/gcc.c-torture/execute/loop-6.c
  52ef3ec1a2bf71515971531c1ce85d1b  gcc/testsuite/gcc.c-torture/execute/loop-7.c
  f364c4fba1cf527876750203584b5627  gcc/testsuite/gcc.c-torture/execute/loop-8.c
! bde52ca8cfd224ec9a5a4b7ca60611ce  gcc/testsuite/gcc.c-torture/execute/loop-9.c
  02f28a11f4d2f3a015c8945152defd9d  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
  462bac74cce6bcaf4babe1d60ee0dc37  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
  2d39990f0058bb53e42ac0a0e3af5944  gcc/testsuite/gcc.c-torture/execute/lshrdi-1.c
--- 40545,40551 ----
  ae7ed5d9639784fd3b77a385029c4483  gcc/testsuite/gcc.c-torture/execute/loop-6.c
  52ef3ec1a2bf71515971531c1ce85d1b  gcc/testsuite/gcc.c-torture/execute/loop-7.c
  f364c4fba1cf527876750203584b5627  gcc/testsuite/gcc.c-torture/execute/loop-8.c
! 9d1fd0809073b93479ebbc2e7a224d7d  gcc/testsuite/gcc.c-torture/execute/loop-9.c
  02f28a11f4d2f3a015c8945152defd9d  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
  462bac74cce6bcaf4babe1d60ee0dc37  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
  2d39990f0058bb53e42ac0a0e3af5944  gcc/testsuite/gcc.c-torture/execute/lshrdi-1.c
*************** fc7ff12f9a631694f1405c85c8acdbe8  gcc/te
*** 38316,38329 ****
--- 40555,40575 ----
  f08201ddad8e116d00963e214b8f1f67  gcc/testsuite/gcc.c-torture/execute/mayalias-3.c
  4b947eae575a6a921be4eb4213bba3d3  gcc/testsuite/gcc.c-torture/execute/medce-1.c
  4b3141dc2b1f2efe4f4174e391935366  gcc/testsuite/gcc.c-torture/execute/memchr-1.c
+ 574cc590166ff51458291ecfaefde90d  gcc/testsuite/gcc.c-torture/execute/memclr.c
  36f16b3c64bf7291524154e754599fbd  gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
  e59c33dc7e0cf0b7efe9b5de279fcf0a  gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
+ 1a5fda2af50df1abc101248f5eccb98e  gcc/testsuite/gcc.c-torture/execute/memcpy-a1.c
+ 730c86b90f1630ca89799a9371954ddb  gcc/testsuite/gcc.c-torture/execute/memcpy-a2.c
+ 4e13d814f0883d4b942e929e23851b37  gcc/testsuite/gcc.c-torture/execute/memcpy-a4.c
+ 3b727726fef9455e49d60fe1cdb829d0  gcc/testsuite/gcc.c-torture/execute/memcpy-a8.c
+ 3b36dfa15eed6140cbdfe879d7c0b518  gcc/testsuite/gcc.c-torture/execute/memcpy-ax.h
  3672d081a1175750b5a7b0b134e8f9fe  gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
  0f7dd15ba812d0e419e16f90e50333c7  gcc/testsuite/gcc.c-torture/execute/memset-1.c
  ae7f210a28f6df09ce475144a9115adf  gcc/testsuite/gcc.c-torture/execute/memset-2.c
  7c0301058c1b44756040ec5d53a6be74  gcc/testsuite/gcc.c-torture/execute/memset-3.c
  cd68c635f7ee7b9d61cd6fb30e11f695  gcc/testsuite/gcc.c-torture/execute/memset-4.c
  4e44e439ba03cef67bfaeec3bb6251ca  gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c
+ 65d5954a128bd52759aa7ddb38ba59fb  gcc/testsuite/gcc.c-torture/execute/misalign.c
  5602ed212c10ba805f0e4a980b8bdbd2  gcc/testsuite/gcc.c-torture/execute/mod-1.c
  c36723455fcef225d099e9718b35749b  gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
  557fcf228c206c15ef609901f05ab9dc  gcc/testsuite/gcc.c-torture/execute/mul-sext.c
*************** c7ba109d05a44d042e8aab99539859f4  gcc/te
*** 38349,38355 ****
  859a8616bb39c775a0c9e44482a3e048  gcc/testsuite/gcc.c-torture/execute/pr101335.c
  a2175770e21b82966738b5577f0fae06  gcc/testsuite/gcc.c-torture/execute/pr102134.c
  6f562291c92a478431678da451525a90  gcc/testsuite/gcc.c-torture/execute/pr103052.c
! 7db85911509669346107156f80cd36a2  gcc/testsuite/gcc.c-torture/execute/pr103209.c
  a5b5957138d71ec5e7dbb1056f5b6cf4  gcc/testsuite/gcc.c-torture/execute/pr103255.c
  c679b2f93e28cfb99a26c4bdafb29492  gcc/testsuite/gcc.c-torture/execute/pr103376.c
  804ac46703f97fd2be64ffb507261f8f  gcc/testsuite/gcc.c-torture/execute/pr103405.c
--- 40595,40601 ----
  859a8616bb39c775a0c9e44482a3e048  gcc/testsuite/gcc.c-torture/execute/pr101335.c
  a2175770e21b82966738b5577f0fae06  gcc/testsuite/gcc.c-torture/execute/pr102134.c
  6f562291c92a478431678da451525a90  gcc/testsuite/gcc.c-torture/execute/pr103052.c
! 739e9b9c996657bf3fec290fb207f3ed  gcc/testsuite/gcc.c-torture/execute/pr103209.c
  a5b5957138d71ec5e7dbb1056f5b6cf4  gcc/testsuite/gcc.c-torture/execute/pr103255.c
  c679b2f93e28cfb99a26c4bdafb29492  gcc/testsuite/gcc.c-torture/execute/pr103376.c
  804ac46703f97fd2be64ffb507261f8f  gcc/testsuite/gcc.c-torture/execute/pr103405.c
*************** eefdaed8e6e57c688553667e395d78d3  gcc/te
*** 38398,38403 ****
--- 40644,40650 ----
  9db3e649786fc47229bef9b14997489f  gcc/testsuite/gcc.c-torture/execute/pr111422.c
  b40075382f21fb5da6917397258b180a  gcc/testsuite/gcc.c-torture/execute/pr111431-1.c
  1a4186e263d70a2500468acc38758893  gcc/testsuite/gcc.c-torture/execute/pr111469-1.c
+ 07f86784b33bd8594d929a8762bcc758  gcc/testsuite/gcc.c-torture/execute/pr111613.c
  4d49fe69373e12bad98a811d032b7738  gcc/testsuite/gcc.c-torture/execute/pr111863-1.c
  dc84ceb83455f22083f7cfb4532cf34e  gcc/testsuite/gcc.c-torture/execute/pr112581-1.c
  ecdedbf463fcb6869d2dcb4d5a4b2376  gcc/testsuite/gcc.c-torture/execute/pr112758.c
*************** ce292472e176af7e97b5cfeddc436247  gcc/te
*** 38408,38413 ****
--- 40655,40672 ----
  7ae9a3b1d760fa818cb4c06f937f3d43  gcc/testsuite/gcc.c-torture/execute/pr114552.c
  c9d7810fb25abff9e36f2472a26b7432  gcc/testsuite/gcc.c-torture/execute/pr114965.c
  70ba48592053a7f5813dc5b2438d1c9d  gcc/testsuite/gcc.c-torture/execute/pr115033.c
+ a374b3675317752237cc478b2e662a04  gcc/testsuite/gcc.c-torture/execute/pr115277.c
+ c79311114bc2631215d25bfb45117788  gcc/testsuite/gcc.c-torture/execute/pr116799.c
+ 5ddda4b8eb54ab388a566dc4456abe06  gcc/testsuite/gcc.c-torture/execute/pr117095.c
+ f5da9bf880d676396bd364e51f41c600  gcc/testsuite/gcc.c-torture/execute/pr117432.c
+ 5ea8b1886f746d04f95ef6475b79bbac  gcc/testsuite/gcc.c-torture/execute/pr117498.c
+ abc98cdd2ec724c17d58a00efc56816b  gcc/testsuite/gcc.c-torture/execute/pr118623.c
+ a1b7f9f7cdc342ff771a30f551e3bc3b  gcc/testsuite/gcc.c-torture/execute/pr118638.c
+ 5802f1a3b7f07033d3e5c9e6bc333779  gcc/testsuite/gcc.c-torture/execute/pr118915.c
+ cf63bfb7d81a1506c5a7f642d12550d0  gcc/testsuite/gcc.c-torture/execute/pr119030.c
+ fd7185346c3b94c0a7f7afba7b6bc241  gcc/testsuite/gcc.c-torture/execute/pr119071.c
+ b7150a91a8e64c0a2f8d47a9f857fd6e  gcc/testsuite/gcc.c-torture/execute/pr119291.c
+ e88a36f4cba0e85d5491d4b566b19508  gcc/testsuite/gcc.c-torture/execute/pr119428.c
  80c02c70a0b6b91b06942e395c34960f  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
  987c511633ad57d9f08d352eb9512819  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
  f7f514cfbd791b0c828e0710493b0910  gcc/testsuite/gcc.c-torture/execute/pr15262.c
*************** affcc44de516e8e0c367fc2a2571d57d  gcc/te
*** 38432,38441 ****
  d0b7114647f223fd5d76807fabb2b2f4  gcc/testsuite/gcc.c-torture/execute/pr21173.c
  44c9aad0871d262574dd8b14388a60e6  gcc/testsuite/gcc.c-torture/execute/pr21331.c
  42d761ddc0f15cd378b9ff7f9f52c82f  gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
! c48a8e3c1c90e05d60edc158edc7b177  gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
  3c7445bc8ed1b837f928ea7b79ec7f1c  gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
  91cad344e10128162675c8f55dad450e  gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
! 3667dd5c8f2c34c48aea1dc78d1a499b  gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
  0229bbfb2ea9e215d7a7137688c4a382  gcc/testsuite/gcc.c-torture/execute/pr22098-1.c
  ef80f84383e037e1c4a197edd7101c80  gcc/testsuite/gcc.c-torture/execute/pr22098-2.c
  f90db7eb416ec19429913e03df787d2e  gcc/testsuite/gcc.c-torture/execute/pr22098-3.c
--- 40691,40700 ----
  d0b7114647f223fd5d76807fabb2b2f4  gcc/testsuite/gcc.c-torture/execute/pr21173.c
  44c9aad0871d262574dd8b14388a60e6  gcc/testsuite/gcc.c-torture/execute/pr21331.c
  42d761ddc0f15cd378b9ff7f9f52c82f  gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
! eff69a59e63dc469fd9fa3df76d4b574  gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
  3c7445bc8ed1b837f928ea7b79ec7f1c  gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
  91cad344e10128162675c8f55dad450e  gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
! 2efb03507ec771f92f0640b73af67590  gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
  0229bbfb2ea9e215d7a7137688c4a382  gcc/testsuite/gcc.c-torture/execute/pr22098-1.c
  ef80f84383e037e1c4a197edd7101c80  gcc/testsuite/gcc.c-torture/execute/pr22098-2.c
  f90db7eb416ec19429913e03df787d2e  gcc/testsuite/gcc.c-torture/execute/pr22098-3.c
*************** ded864f2b5106a9ea954aee75aed4024  gcc/te
*** 38463,38469 ****
  1d5786147aaf52e74a0ffe68429e72ee  gcc/testsuite/gcc.c-torture/execute/pr27285.c
  47c5885d9d51d0994a6afaeb6e3a791d  gcc/testsuite/gcc.c-torture/execute/pr27364.c
  ca7aec10b75863d165f7a9085a40342e  gcc/testsuite/gcc.c-torture/execute/pr27671-1.c
! f41d8caa66b63ff232795983f577cb63  gcc/testsuite/gcc.c-torture/execute/pr28289.c
  2d9a0bc0f61fc311ee744c81dc6dc946  gcc/testsuite/gcc.c-torture/execute/pr28403.c
  2d25b0d74ce14db538d434829c27a72e  gcc/testsuite/gcc.c-torture/execute/pr28651.c
  fd0d0270a488f75fe62ed4aff01662f0  gcc/testsuite/gcc.c-torture/execute/pr28778.c
--- 40722,40728 ----
  1d5786147aaf52e74a0ffe68429e72ee  gcc/testsuite/gcc.c-torture/execute/pr27285.c
  47c5885d9d51d0994a6afaeb6e3a791d  gcc/testsuite/gcc.c-torture/execute/pr27364.c
  ca7aec10b75863d165f7a9085a40342e  gcc/testsuite/gcc.c-torture/execute/pr27671-1.c
! b9bb32868a6bfdaf571615ad4fd6eb14  gcc/testsuite/gcc.c-torture/execute/pr28289.c
  2d9a0bc0f61fc311ee744c81dc6dc946  gcc/testsuite/gcc.c-torture/execute/pr28403.c
  2d25b0d74ce14db538d434829c27a72e  gcc/testsuite/gcc.c-torture/execute/pr28651.c
  fd0d0270a488f75fe62ed4aff01662f0  gcc/testsuite/gcc.c-torture/execute/pr28778.c
*************** f082000e8da2a29dea5b1beb62b98858  gcc/te
*** 38509,38515 ****
  01aa598710310e5a7b6317dd682b7ff3  gcc/testsuite/gcc.c-torture/execute/pr34768-1.c
  8613ebbe9a1d857ff130cabe7d53ee16  gcc/testsuite/gcc.c-torture/execute/pr34768-2.c
  04a5d2f3ffba95ecece5e9c58218589d  gcc/testsuite/gcc.c-torture/execute/pr34971.c
! e9cb1c2432ef0f9ea44768c623c37161  gcc/testsuite/gcc.c-torture/execute/pr34982.c
  442add07b12adb32c053e1e1e2d6991b  gcc/testsuite/gcc.c-torture/execute/pr35163.c
  b78603bc3447c6c89f181b7f41b467de  gcc/testsuite/gcc.c-torture/execute/pr35231.c
  d231870739dd1d3df241989cecfa0bdd  gcc/testsuite/gcc.c-torture/execute/pr35390.c
--- 40768,40774 ----
  01aa598710310e5a7b6317dd682b7ff3  gcc/testsuite/gcc.c-torture/execute/pr34768-1.c
  8613ebbe9a1d857ff130cabe7d53ee16  gcc/testsuite/gcc.c-torture/execute/pr34768-2.c
  04a5d2f3ffba95ecece5e9c58218589d  gcc/testsuite/gcc.c-torture/execute/pr34971.c
! 670395f7d059300d97aaca5bf70b4062  gcc/testsuite/gcc.c-torture/execute/pr34982.c
  442add07b12adb32c053e1e1e2d6991b  gcc/testsuite/gcc.c-torture/execute/pr35163.c
  b78603bc3447c6c89f181b7f41b467de  gcc/testsuite/gcc.c-torture/execute/pr35231.c
  d231870739dd1d3df241989cecfa0bdd  gcc/testsuite/gcc.c-torture/execute/pr35390.c
*************** e2e618ea38dca1617acc5a2fda1306c3  gcc/te
*** 38520,38526 ****
  c36176ca013c416b13caea628d33c739  gcc/testsuite/gcc.c-torture/execute/pr36034-2.c
  84c4f0c948073b60906c7e4e1c16a2eb  gcc/testsuite/gcc.c-torture/execute/pr36038.c
  404e0d0562d2bb840ac9493e4142a462  gcc/testsuite/gcc.c-torture/execute/pr36077.c
! 0db31669569f6d3cf134ab206b46cd16  gcc/testsuite/gcc.c-torture/execute/pr36321.c
  2bff4fb950576927ddd23367c027b002  gcc/testsuite/gcc.c-torture/execute/pr36339.c
  e937f92fb1f2d65532c4c7deeea7ebff  gcc/testsuite/gcc.c-torture/execute/pr36343.c
  76f557725957061ad4bf2125569e0bee  gcc/testsuite/gcc.c-torture/execute/pr36691.c
--- 40779,40785 ----
  c36176ca013c416b13caea628d33c739  gcc/testsuite/gcc.c-torture/execute/pr36034-2.c
  84c4f0c948073b60906c7e4e1c16a2eb  gcc/testsuite/gcc.c-torture/execute/pr36038.c
  404e0d0562d2bb840ac9493e4142a462  gcc/testsuite/gcc.c-torture/execute/pr36077.c
! d298166c87e680a6036719fa6fa00a69  gcc/testsuite/gcc.c-torture/execute/pr36321.c
  2bff4fb950576927ddd23367c027b002  gcc/testsuite/gcc.c-torture/execute/pr36339.c
  e937f92fb1f2d65532c4c7deeea7ebff  gcc/testsuite/gcc.c-torture/execute/pr36343.c
  76f557725957061ad4bf2125569e0bee  gcc/testsuite/gcc.c-torture/execute/pr36691.c
*************** e27fc6f01b031517f7551f12ec3da5da  gcc/te
*** 38581,38587 ****
  9fcdb1a88bbe84e741f8bce1871cc5bf  gcc/testsuite/gcc.c-torture/execute/pr42721.c
  56c5f3aa089000e9e79fa6c9dd8f035b  gcc/testsuite/gcc.c-torture/execute/pr42833.c
  7ae180c70149626d057190fa00abbd06  gcc/testsuite/gcc.c-torture/execute/pr43008.c
! cd3c47793cec4f6f1818d37a5f87e12f  gcc/testsuite/gcc.c-torture/execute/pr43220.c
  51b92484fa29778699470f521a6edd16  gcc/testsuite/gcc.c-torture/execute/pr43236.c
  8bd2ecc7fe2b1287915eca13b75bc2a4  gcc/testsuite/gcc.c-torture/execute/pr43269.c
  4df6b2992e927a8a2c5dcb54b91c7269  gcc/testsuite/gcc.c-torture/execute/pr43385.c
--- 40840,40846 ----
  9fcdb1a88bbe84e741f8bce1871cc5bf  gcc/testsuite/gcc.c-torture/execute/pr42721.c
  56c5f3aa089000e9e79fa6c9dd8f035b  gcc/testsuite/gcc.c-torture/execute/pr42833.c
  7ae180c70149626d057190fa00abbd06  gcc/testsuite/gcc.c-torture/execute/pr43008.c
! 77ebcd28bed44e8725e37b995c420012  gcc/testsuite/gcc.c-torture/execute/pr43220.c
  51b92484fa29778699470f521a6edd16  gcc/testsuite/gcc.c-torture/execute/pr43236.c
  8bd2ecc7fe2b1287915eca13b75bc2a4  gcc/testsuite/gcc.c-torture/execute/pr43269.c
  4df6b2992e927a8a2c5dcb54b91c7269  gcc/testsuite/gcc.c-torture/execute/pr43385.c
*************** e763b176bcaa84e63102add66d6a12e4  gcc/te
*** 38612,38618 ****
  471322f15c2f1dcda01def19d1a660fc  gcc/testsuite/gcc.c-torture/execute/pr46909-2.c
  66c6a913b510e010bc621bef1cad1324  gcc/testsuite/gcc.c-torture/execute/pr47148.c
  b4a273d42b3a6389d4b6280f692937a1  gcc/testsuite/gcc.c-torture/execute/pr47155.c
! 407d66c47dcd664af0dc6605bb5a06c6  gcc/testsuite/gcc.c-torture/execute/pr47237.c
  a06a9a127d8beee5a22482326b40e6a2  gcc/testsuite/gcc.c-torture/execute/pr47299.c
  85069ce3a2a71852fc8b4f9ca5d420f7  gcc/testsuite/gcc.c-torture/execute/pr47337.c
  d99a0e97eb5fc22626c506a705b1db3f  gcc/testsuite/gcc.c-torture/execute/pr47538.c
--- 40871,40877 ----
  471322f15c2f1dcda01def19d1a660fc  gcc/testsuite/gcc.c-torture/execute/pr46909-2.c
  66c6a913b510e010bc621bef1cad1324  gcc/testsuite/gcc.c-torture/execute/pr47148.c
  b4a273d42b3a6389d4b6280f692937a1  gcc/testsuite/gcc.c-torture/execute/pr47155.c
! 2129ae079f0b3b7e3746ebf75df35fe3  gcc/testsuite/gcc.c-torture/execute/pr47237.c
  a06a9a127d8beee5a22482326b40e6a2  gcc/testsuite/gcc.c-torture/execute/pr47299.c
  85069ce3a2a71852fc8b4f9ca5d420f7  gcc/testsuite/gcc.c-torture/execute/pr47337.c
  d99a0e97eb5fc22626c506a705b1db3f  gcc/testsuite/gcc.c-torture/execute/pr47538.c
*************** e6c3b91f3f0906ae521d79d14987052d  gcc/te
*** 38650,38656 ****
  249058277e15712c14bf1f67f58a4465  gcc/testsuite/gcc.c-torture/execute/pr51933.c
  f83b0f7d2f04307562d4a5d0153f2798  gcc/testsuite/gcc.c-torture/execute/pr52129.c
  63d7f65d6f5ad1df1f79c25da155d3e4  gcc/testsuite/gcc.c-torture/execute/pr52209.c
! 786b5fcaefcaf81d136d2c8fa5206f59  gcc/testsuite/gcc.c-torture/execute/pr52286.c
  9f617dcb041fd2c2ab735a72d9f6626f  gcc/testsuite/gcc.c-torture/execute/pr52760.c
  9e5b3f41457066713358b42a897a29cf  gcc/testsuite/gcc.c-torture/execute/pr52979-1.c
  772cde02ee485740624a62585a77fec6  gcc/testsuite/gcc.c-torture/execute/pr52979-2.c
--- 40909,40915 ----
  249058277e15712c14bf1f67f58a4465  gcc/testsuite/gcc.c-torture/execute/pr51933.c
  f83b0f7d2f04307562d4a5d0153f2798  gcc/testsuite/gcc.c-torture/execute/pr52129.c
  63d7f65d6f5ad1df1f79c25da155d3e4  gcc/testsuite/gcc.c-torture/execute/pr52209.c
! 3581be57ddbe32b0ba4341aaad28abd4  gcc/testsuite/gcc.c-torture/execute/pr52286.c
  9f617dcb041fd2c2ab735a72d9f6626f  gcc/testsuite/gcc.c-torture/execute/pr52760.c
  9e5b3f41457066713358b42a897a29cf  gcc/testsuite/gcc.c-torture/execute/pr52979-1.c
  772cde02ee485740624a62585a77fec6  gcc/testsuite/gcc.c-torture/execute/pr52979-2.c
*************** cde16ef96523d1e125a7267b5c4fe19c  gcc/te
*** 38773,38779 ****
  0bcb3f8d1ea99f15e2b0397f60b43c6a  gcc/testsuite/gcc.c-torture/execute/pr66556.c
  dbe44800ce7e371ee2e3a6d02966a77a  gcc/testsuite/gcc.c-torture/execute/pr66757.c
  74704f186d0cdf5d9f19b0d2003d12b4  gcc/testsuite/gcc.c-torture/execute/pr66940.c
! bde573a038beddcffeec20c14f6d7a95  gcc/testsuite/gcc.c-torture/execute/pr67037.c
  3cccc8a5b80b9b4ce09e356395f7d9b3  gcc/testsuite/gcc.c-torture/execute/pr67226.c
  12b6d9a6c5757acbd15344f7ab84d1e2  gcc/testsuite/gcc.c-torture/execute/pr67714.c
  efa89e125a9677fb3985040dcc5db4c2  gcc/testsuite/gcc.c-torture/execute/pr67781.c
--- 41032,41038 ----
  0bcb3f8d1ea99f15e2b0397f60b43c6a  gcc/testsuite/gcc.c-torture/execute/pr66556.c
  dbe44800ce7e371ee2e3a6d02966a77a  gcc/testsuite/gcc.c-torture/execute/pr66757.c
  74704f186d0cdf5d9f19b0d2003d12b4  gcc/testsuite/gcc.c-torture/execute/pr66940.c
! a99976c3e0fbfae52b818b014f3d57ee  gcc/testsuite/gcc.c-torture/execute/pr67037.c
  3cccc8a5b80b9b4ce09e356395f7d9b3  gcc/testsuite/gcc.c-torture/execute/pr67226.c
  12b6d9a6c5757acbd15344f7ab84d1e2  gcc/testsuite/gcc.c-torture/execute/pr67714.c
  efa89e125a9677fb3985040dcc5db4c2  gcc/testsuite/gcc.c-torture/execute/pr67781.c
*************** a3668023bbf40452e1d0a33bfb6710f1  gcc/te
*** 38861,38867 ****
  6477b94998805ccc2d01eb6a5264be86  gcc/testsuite/gcc.c-torture/execute/pr81588.c
  e53d5310cfe056bf19e8aa67ec8d5059  gcc/testsuite/gcc.c-torture/execute/pr81913.c
  82ecaeaef4478746e0f34cb881ad4e74  gcc/testsuite/gcc.c-torture/execute/pr82192.c
! 45051ac07e539ca44b85ede7f2e9260f  gcc/testsuite/gcc.c-torture/execute/pr82210.c
  7c1d22ab2ef05e68b368bc0c6eeb122f  gcc/testsuite/gcc.c-torture/execute/pr82387.c
  d1484d0db710d37c40c482f2b08c98f1  gcc/testsuite/gcc.c-torture/execute/pr82388.c
  a9b36d09db3e98d889d5dabebaac9c84  gcc/testsuite/gcc.c-torture/execute/pr82524.c
--- 41120,41126 ----
  6477b94998805ccc2d01eb6a5264be86  gcc/testsuite/gcc.c-torture/execute/pr81588.c
  e53d5310cfe056bf19e8aa67ec8d5059  gcc/testsuite/gcc.c-torture/execute/pr81913.c
  82ecaeaef4478746e0f34cb881ad4e74  gcc/testsuite/gcc.c-torture/execute/pr82192.c
! e813fc4c1416ba3b1d94f39c21be3db4  gcc/testsuite/gcc.c-torture/execute/pr82210.c
  7c1d22ab2ef05e68b368bc0c6eeb122f  gcc/testsuite/gcc.c-torture/execute/pr82387.c
  d1484d0db710d37c40c482f2b08c98f1  gcc/testsuite/gcc.c-torture/execute/pr82388.c
  a9b36d09db3e98d889d5dabebaac9c84  gcc/testsuite/gcc.c-torture/execute/pr82524.c
*************** c7f70c7d3f0cf1b55bb6fd43c9215d8c  gcc/te
*** 38889,38895 ****
  6e8477cb0ff3bc19b36452d812c5b7d1  gcc/testsuite/gcc.c-torture/execute/pr85756.c
  0973b26cedccdd58261cc1118fec11c9  gcc/testsuite/gcc.c-torture/execute/pr86231.c
  9962443edc9e4d534999b42860119666  gcc/testsuite/gcc.c-torture/execute/pr86492.c
! aa90d8a7e5b415bb1656b6c9fabcfc6b  gcc/testsuite/gcc.c-torture/execute/pr86528.c
  cbfa3911b2a33d5b5e9f69be2ed35e93  gcc/testsuite/gcc.c-torture/execute/pr86659-1.c
  a9417181fd445468afe8ecbc65aa5e90  gcc/testsuite/gcc.c-torture/execute/pr86659-2.c
  64dde4d035420c2dd8ca50f4309d00e5  gcc/testsuite/gcc.c-torture/execute/pr86714.c
--- 41148,41154 ----
  6e8477cb0ff3bc19b36452d812c5b7d1  gcc/testsuite/gcc.c-torture/execute/pr85756.c
  0973b26cedccdd58261cc1118fec11c9  gcc/testsuite/gcc.c-torture/execute/pr86231.c
  9962443edc9e4d534999b42860119666  gcc/testsuite/gcc.c-torture/execute/pr86492.c
! fae43e8bf2e2c0420f081d6fb88baf15  gcc/testsuite/gcc.c-torture/execute/pr86528.c
  cbfa3911b2a33d5b5e9f69be2ed35e93  gcc/testsuite/gcc.c-torture/execute/pr86659-1.c
  a9417181fd445468afe8ecbc65aa5e90  gcc/testsuite/gcc.c-torture/execute/pr86659-2.c
  64dde4d035420c2dd8ca50f4309d00e5  gcc/testsuite/gcc.c-torture/execute/pr86714.c
*************** f4f2930202484cfce2950cfa08ed6346  gcc/te
*** 38965,38973 ****
  9778e9dbac722a3f0e3643e7322e5a78  gcc/testsuite/gcc.c-torture/execute/pr98853-2.c
  68a00a5f6197b192d0a9ba3b1f2f4938  gcc/testsuite/gcc.c-torture/execute/pr99079.c
  1ff23ec06c77aefc42faa46db9f3fa0d  gcc/testsuite/gcc.c-torture/execute/pr99751.c
! 8587088d2eab0e974762ba6cd20b4f04  gcc/testsuite/gcc.c-torture/execute/printf-1.c
  79145d19a453735bfef1e243d8a7b11a  gcc/testsuite/gcc.c-torture/execute/printf-2.c
! 9e89c9802e280d635a7bc6756bbaf6e6  gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
  f397d221ccf3a7ce631cf42078dfadb5  gcc/testsuite/gcc.c-torture/execute/pta-field-1.c
  559d28c240437de1613fea4a132f68c1  gcc/testsuite/gcc.c-torture/execute/pta-field-2.c
  5a0affac4045ec02306c971dfcd2b9db  gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
--- 41224,41232 ----
  9778e9dbac722a3f0e3643e7322e5a78  gcc/testsuite/gcc.c-torture/execute/pr98853-2.c
  68a00a5f6197b192d0a9ba3b1f2f4938  gcc/testsuite/gcc.c-torture/execute/pr99079.c
  1ff23ec06c77aefc42faa46db9f3fa0d  gcc/testsuite/gcc.c-torture/execute/pr99751.c
! 22c7c1a9b23a4af84afe64da5f7a7c30  gcc/testsuite/gcc.c-torture/execute/printf-1.c
  79145d19a453735bfef1e243d8a7b11a  gcc/testsuite/gcc.c-torture/execute/printf-2.c
! f767f9ad62b9044638c491c6cce10d2c  gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
  f397d221ccf3a7ce631cf42078dfadb5  gcc/testsuite/gcc.c-torture/execute/pta-field-1.c
  559d28c240437de1613fea4a132f68c1  gcc/testsuite/gcc.c-torture/execute/pta-field-2.c
  5a0affac4045ec02306c971dfcd2b9db  gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
*************** cc8bb1a13e4b77ae0d5e7f59f43d1baa  gcc/te
*** 39040,39046 ****
  a61ada576cecab7b907eee29af5d2957  gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
  654761b5acda29361970baca4cd609bb  gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
  75f92f792efcb4d3ebc6625f17c8f999  gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
! aa8125bc168ddecae1049b86c0a10782  gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
  d1385e90aa37f9c7866db364353b6c30  gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
  a725852feeaa4044c15de4d1cda1e42a  gcc/testsuite/gcc.c-torture/execute/va-arg-21.c
  047dfdad84a6cf61fd75aacb78168fcc  gcc/testsuite/gcc.c-torture/execute/va-arg-22.c
--- 41299,41305 ----
  a61ada576cecab7b907eee29af5d2957  gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
  654761b5acda29361970baca4cd609bb  gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
  75f92f792efcb4d3ebc6625f17c8f999  gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
! 53f822fb968ae7f2ab06748e96a70275  gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
  d1385e90aa37f9c7866db364353b6c30  gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
  a725852feeaa4044c15de4d1cda1e42a  gcc/testsuite/gcc.c-torture/execute/va-arg-21.c
  047dfdad84a6cf61fd75aacb78168fcc  gcc/testsuite/gcc.c-torture/execute/va-arg-22.c
*************** e2b06df6fab5cee9f8a8ab82d03e295d  gcc/te
*** 39057,39065 ****
  5ebd9e4486259525f013e70fc19f0113  gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
  5361fa7e3ede321780803507c15aa560  gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c
  a04e8b16b77b1b3b51daa1a58e5f9cd6  gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c
! f47f7a3569137c2edccd9e5a8dd5d950  gcc/testsuite/gcc.c-torture/execute/vla-dealloc-1.c
! 50ffeb5fdea1225f5cafa83938afce72  gcc/testsuite/gcc.c-torture/execute/vprintf-1.c
! 48a31c7ebf47207441a6b3989447c914  gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c
  ed64944e564f00f8df6474093f67d9fc  gcc/testsuite/gcc.c-torture/execute/vrp-1.c
  2da1a102082270984ab32a4e84f53749  gcc/testsuite/gcc.c-torture/execute/vrp-2.c
  5904f2ff54ef6eaa41bb216faeaad8f6  gcc/testsuite/gcc.c-torture/execute/vrp-3.c
--- 41316,41324 ----
  5ebd9e4486259525f013e70fc19f0113  gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
  5361fa7e3ede321780803507c15aa560  gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c
  a04e8b16b77b1b3b51daa1a58e5f9cd6  gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c
! ab1dffc2e379e926514fca63f5518b95  gcc/testsuite/gcc.c-torture/execute/vla-dealloc-1.c
! 95bacc90d186424b40a6d6847056e1bb  gcc/testsuite/gcc.c-torture/execute/vprintf-1.c
! e068e1c5b89eb30cf9c7ac15ba99b3da  gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c
  ed64944e564f00f8df6474093f67d9fc  gcc/testsuite/gcc.c-torture/execute/vrp-1.c
  2da1a102082270984ab32a4e84f53749  gcc/testsuite/gcc.c-torture/execute/vrp-2.c
  5904f2ff54ef6eaa41bb216faeaad8f6  gcc/testsuite/gcc.c-torture/execute/vrp-3.c
*************** cb0b728c50be57775ce5c56aa25f4545  gcc/te
*** 39075,39085 ****
  05aae0dbb71b992a2f163bf1d0a24045  gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c
  540bc182381f68374a6cb9c7f45dd001  gcc/testsuite/gcc.c-torture/execute/zerolen-1.c
  5d8fbb34f7ad51fedc394527a5885d4d  gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
- 07f86784b33bd8594d929a8762bcc758  gcc/testsuite/gcc.c-torture/pr111613.c
  44c6ad090d3f06206aa54f59582ae32c  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.c
  76a05adc513bcf00de7e94465ef0bc6d  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x
! aae58a8365625bb1d19cdca329c9140d  gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
! 1a4342a88a87cd00a249d8e78bd0f7b7  gcc/testsuite/gcc.dg-selftests/dg-final.exp
  d0289bfc068c575e2168df7bc156b45a  gcc/testsuite/gcc.dg/20000108-1.c
  586ef49702317acb226ba076aeea11ee  gcc/testsuite/gcc.dg/20000111-1.c
  d8a5405adb98e221c4fa41ce145177c6  gcc/testsuite/gcc.dg/20000623-1.c
--- 41334,41343 ----
  05aae0dbb71b992a2f163bf1d0a24045  gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c
  540bc182381f68374a6cb9c7f45dd001  gcc/testsuite/gcc.c-torture/execute/zerolen-1.c
  5d8fbb34f7ad51fedc394527a5885d4d  gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
  44c6ad090d3f06206aa54f59582ae32c  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.c
  76a05adc513bcf00de7e94465ef0bc6d  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x
! 2407f50d5a78aef649798d298b900277  gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
! c8d518204e886bae43f079f662b70f81  gcc/testsuite/gcc.dg-selftests/dg-final.exp
  d0289bfc068c575e2168df7bc156b45a  gcc/testsuite/gcc.dg/20000108-1.c
  586ef49702317acb226ba076aeea11ee  gcc/testsuite/gcc.dg/20000111-1.c
  d8a5405adb98e221c4fa41ce145177c6  gcc/testsuite/gcc.dg/20000623-1.c
*************** d1a693baca2cba572e7105df5dd48125  gcc/te
*** 39089,39102 ****
  869fca07ec5441c44909675586820df3  gcc/testsuite/gcc.dg/20000926-1.c
  108cd8996f408f991a90e65687ee71d9  gcc/testsuite/gcc.dg/20001009-1.c
  9106d47272a80e03226cea5cc0adfa7b  gcc/testsuite/gcc.dg/20001012-1.c
! 38e4497135b8a39eb6701495d7d07aae  gcc/testsuite/gcc.dg/20001012-2.c
  5c2b616a946147d2f06759dbf8254b56  gcc/testsuite/gcc.dg/20001023-1.c
  81f87b072c64c409d2f7527acc93d771  gcc/testsuite/gcc.dg/20001108-1.c
  f4ba27d4725c1be404ec024bf3c6305c  gcc/testsuite/gcc.dg/20001116-1.c
  de473ebee2ec623b696947c06dad85f2  gcc/testsuite/gcc.dg/20001117-1.c
  f73c7ca8a6110c492ac08c3f2ef16d98  gcc/testsuite/gcc.dg/20001201-1.c
  b48bdb28ef372dfc058cdb2dbbe3e480  gcc/testsuite/gcc.dg/20001228-1.c
! a86f72db8437d94f8b14e039906b9b2e  gcc/testsuite/gcc.dg/20010202-1.c
  1fcd3f666246e3e65b27ca65e0a2c7ba  gcc/testsuite/gcc.dg/20010405-1.c
  90165f2e99cfb4f21bd02b1d54186d23  gcc/testsuite/gcc.dg/20010516-1.c
  0a64d1b22ab6fdd4e7634f6a2606d7b1  gcc/testsuite/gcc.dg/20010622-1.c
--- 41347,41360 ----
  869fca07ec5441c44909675586820df3  gcc/testsuite/gcc.dg/20000926-1.c
  108cd8996f408f991a90e65687ee71d9  gcc/testsuite/gcc.dg/20001009-1.c
  9106d47272a80e03226cea5cc0adfa7b  gcc/testsuite/gcc.dg/20001012-1.c
! a29985d9c54fe9527d760b404f7fd92f  gcc/testsuite/gcc.dg/20001012-2.c
  5c2b616a946147d2f06759dbf8254b56  gcc/testsuite/gcc.dg/20001023-1.c
  81f87b072c64c409d2f7527acc93d771  gcc/testsuite/gcc.dg/20001108-1.c
  f4ba27d4725c1be404ec024bf3c6305c  gcc/testsuite/gcc.dg/20001116-1.c
  de473ebee2ec623b696947c06dad85f2  gcc/testsuite/gcc.dg/20001117-1.c
  f73c7ca8a6110c492ac08c3f2ef16d98  gcc/testsuite/gcc.dg/20001201-1.c
  b48bdb28ef372dfc058cdb2dbbe3e480  gcc/testsuite/gcc.dg/20001228-1.c
! a8e9dff11c91ee1d3df7dc65fdea1bdd  gcc/testsuite/gcc.dg/20010202-1.c
  1fcd3f666246e3e65b27ca65e0a2c7ba  gcc/testsuite/gcc.dg/20010405-1.c
  90165f2e99cfb4f21bd02b1d54186d23  gcc/testsuite/gcc.dg/20010516-1.c
  0a64d1b22ab6fdd4e7634f6a2606d7b1  gcc/testsuite/gcc.dg/20010622-1.c
*************** a314ab9d8d3e4818826dc35a5aed87e4  gcc/te
*** 39126,39140 ****
  867102925c30a3ad5b40eaa96c7bebcf  gcc/testsuite/gcc.dg/20020222-1.c
  b50d600af07c946c10a573622c1b53a1  gcc/testsuite/gcc.dg/20020310-1.c
  f624e0acdc4cf507ceeea3c01ebd027f  gcc/testsuite/gcc.dg/20020312-1.c
! 289751de732eae37756971f54183f5be  gcc/testsuite/gcc.dg/20020312-2.c
  0bc0a613df9e226c6994a04c3f7c16d7  gcc/testsuite/gcc.dg/20020319-1.c
  f43235cff626421b3780c396317263aa  gcc/testsuite/gcc.dg/20020411-1.c
! 07a34c6b31217ca7e5b642784943f7a6  gcc/testsuite/gcc.dg/20020415-1.c
  e868e94f8247acbab93c62754668bf14  gcc/testsuite/gcc.dg/20020418-1.c
  208e9bbfd0159d9a096ccd1fbc3060a2  gcc/testsuite/gcc.dg/20020418-2.c
  ce207448761f35f27d916772755b3de5  gcc/testsuite/gcc.dg/20020425-1.c
  2897a8b735d64f2ef9ec621850263cb7  gcc/testsuite/gcc.dg/20020426-2.c
! 88b6cf31a2dd36b7067e4bb9d29b9ee5  gcc/testsuite/gcc.dg/20020430-1.c
  fa756da3e22f27194d049e84d3b4bda4  gcc/testsuite/gcc.dg/20020503-1.c
  e5b9e6b18d6f985bd160016d435c6273  gcc/testsuite/gcc.dg/20020517-1.c
  38d21cc31f8e604491f4bf2679d3a411  gcc/testsuite/gcc.dg/20020525-1.c
--- 41384,41398 ----
  867102925c30a3ad5b40eaa96c7bebcf  gcc/testsuite/gcc.dg/20020222-1.c
  b50d600af07c946c10a573622c1b53a1  gcc/testsuite/gcc.dg/20020310-1.c
  f624e0acdc4cf507ceeea3c01ebd027f  gcc/testsuite/gcc.dg/20020312-1.c
! 85b6fc890224b3e88259240c19eb697a  gcc/testsuite/gcc.dg/20020312-2.c
  0bc0a613df9e226c6994a04c3f7c16d7  gcc/testsuite/gcc.dg/20020319-1.c
  f43235cff626421b3780c396317263aa  gcc/testsuite/gcc.dg/20020411-1.c
! b82efecd155412cde71b56c7917b355b  gcc/testsuite/gcc.dg/20020415-1.c
  e868e94f8247acbab93c62754668bf14  gcc/testsuite/gcc.dg/20020418-1.c
  208e9bbfd0159d9a096ccd1fbc3060a2  gcc/testsuite/gcc.dg/20020418-2.c
  ce207448761f35f27d916772755b3de5  gcc/testsuite/gcc.dg/20020425-1.c
  2897a8b735d64f2ef9ec621850263cb7  gcc/testsuite/gcc.dg/20020426-2.c
! 7424aec1936b493a95e2284da40ccf39  gcc/testsuite/gcc.dg/20020430-1.c
  fa756da3e22f27194d049e84d3b4bda4  gcc/testsuite/gcc.dg/20020503-1.c
  e5b9e6b18d6f985bd160016d435c6273  gcc/testsuite/gcc.dg/20020517-1.c
  38d21cc31f8e604491f4bf2679d3a411  gcc/testsuite/gcc.dg/20020525-1.c
*************** eba89ad67022c84bc992baf8fd3f5a6b  gcc/te
*** 39143,39153 ****
  da093a504dd5180ba0a2d674a33283b6  gcc/testsuite/gcc.dg/20020607-1.c
  9460cc0e67fb619fc3dd04804f75c660  gcc/testsuite/gcc.dg/20020607-2.c
  b540c59b566647ef61a8c9670457783b  gcc/testsuite/gcc.dg/20020919-1.c
! f73b8f76b68c625111a3567ed0b32593  gcc/testsuite/gcc.dg/20021006-1.c
  db4ae37e58ac25724070033d60b98346  gcc/testsuite/gcc.dg/20021014-1.c
  e0a338b56ef60f7330376e2cca8ee295  gcc/testsuite/gcc.dg/20021018-1.c
  a80fc1e3c09e8ce28290a89b6310c081  gcc/testsuite/gcc.dg/20021023-1.c
! 26c7395b78bdf87b2ae61e6fb80cf279  gcc/testsuite/gcc.dg/20021029-1.c
  dbac8533c2d035b1062c392d57919926  gcc/testsuite/gcc.dg/20021029-2.c
  9614eaf8aeab9dce78f299f486339133  gcc/testsuite/gcc.dg/20021116-1.c
  352f6d00f9872a03fa995703402ca5f6  gcc/testsuite/gcc.dg/20030107-1.c
--- 41401,41411 ----
  da093a504dd5180ba0a2d674a33283b6  gcc/testsuite/gcc.dg/20020607-1.c
  9460cc0e67fb619fc3dd04804f75c660  gcc/testsuite/gcc.dg/20020607-2.c
  b540c59b566647ef61a8c9670457783b  gcc/testsuite/gcc.dg/20020919-1.c
! 00c4bd06c0cec25940b5ddd95e12906c  gcc/testsuite/gcc.dg/20021006-1.c
  db4ae37e58ac25724070033d60b98346  gcc/testsuite/gcc.dg/20021014-1.c
  e0a338b56ef60f7330376e2cca8ee295  gcc/testsuite/gcc.dg/20021018-1.c
  a80fc1e3c09e8ce28290a89b6310c081  gcc/testsuite/gcc.dg/20021023-1.c
! e0d3e010baaffb9e233555a5e987890f  gcc/testsuite/gcc.dg/20021029-1.c
  dbac8533c2d035b1062c392d57919926  gcc/testsuite/gcc.dg/20021029-2.c
  9614eaf8aeab9dce78f299f486339133  gcc/testsuite/gcc.dg/20021116-1.c
  352f6d00f9872a03fa995703402ca5f6  gcc/testsuite/gcc.dg/20030107-1.c
*************** cbde639b603bc8481f09b366d5af77f1  gcc/te
*** 39159,39165 ****
  aa5307e5f09db838f8029c4749d5b39d  gcc/testsuite/gcc.dg/20030321-1.c
  63be60a223d3a2ddec09968065c4fd69  gcc/testsuite/gcc.dg/20030323-1.c
  fb8e19f630a58be9d2b01baffc65b9c6  gcc/testsuite/gcc.dg/20030324-1.c
! 63be3d4977c217ea009b7d459597aed7  gcc/testsuite/gcc.dg/20030331-2.c
  5d54150f39cbb4e9b9985ecf99c5ef74  gcc/testsuite/gcc.dg/20030414-1.c
  6c9b33a7b2a588e199ea141abf4ad4b6  gcc/testsuite/gcc.dg/20030414-2.c
  85f2c8aad52295fc0347fe9d298fa10c  gcc/testsuite/gcc.dg/20030612-1.c
--- 41417,41423 ----
  aa5307e5f09db838f8029c4749d5b39d  gcc/testsuite/gcc.dg/20030321-1.c
  63be60a223d3a2ddec09968065c4fd69  gcc/testsuite/gcc.dg/20030323-1.c
  fb8e19f630a58be9d2b01baffc65b9c6  gcc/testsuite/gcc.dg/20030324-1.c
! 39af42b2234f1eeb26edf952df5c89f2  gcc/testsuite/gcc.dg/20030331-2.c
  5d54150f39cbb4e9b9985ecf99c5ef74  gcc/testsuite/gcc.dg/20030414-1.c
  6c9b33a7b2a588e199ea141abf4ad4b6  gcc/testsuite/gcc.dg/20030414-2.c
  85f2c8aad52295fc0347fe9d298fa10c  gcc/testsuite/gcc.dg/20030612-1.c
*************** e5905e58808b60f82c500a1cf2131150  gcc/te
*** 39172,39178 ****
  27ef1cc4029750023fba3b42f83a1423  gcc/testsuite/gcc.dg/20030708-1.c
  93849c86e275714d814d100c03072d4c  gcc/testsuite/gcc.dg/20030711-1.c
  ac938414908af64d993e7eb4c23921a8  gcc/testsuite/gcc.dg/20030717-1.c
! 4d37c7f496e294a2df11087c63c6b60f  gcc/testsuite/gcc.dg/20030721-1.c
  f081843dc1b013a9073e9f5ccbe9ccd8  gcc/testsuite/gcc.dg/20030804-1.c
  db140937a7f9e0854508c97898d65c0d  gcc/testsuite/gcc.dg/20030805-1.c
  ce0f92cef90bc8790dc8f531382e80ff  gcc/testsuite/gcc.dg/20030815-1.c
--- 41430,41436 ----
  27ef1cc4029750023fba3b42f83a1423  gcc/testsuite/gcc.dg/20030708-1.c
  93849c86e275714d814d100c03072d4c  gcc/testsuite/gcc.dg/20030711-1.c
  ac938414908af64d993e7eb4c23921a8  gcc/testsuite/gcc.dg/20030717-1.c
! b1ebbce3dd8b812dacba5532057a2ae8  gcc/testsuite/gcc.dg/20030721-1.c
  f081843dc1b013a9073e9f5ccbe9ccd8  gcc/testsuite/gcc.dg/20030804-1.c
  db140937a7f9e0854508c97898d65c0d  gcc/testsuite/gcc.dg/20030805-1.c
  ce0f92cef90bc8790dc8f531382e80ff  gcc/testsuite/gcc.dg/20030815-1.c
*************** b7bd984eb5b7d4b89a35583b6c25f974  gcc/te
*** 39193,39206 ****
  6cf9c79b68d9e3c49a851fec31ded1f8  gcc/testsuite/gcc.dg/20031216-1.c
  914fb59271e3c601cb2e5e610f32a7b5  gcc/testsuite/gcc.dg/20031218-1.c
  0e31f15cce2c41678fc3e7f76a6d7da2  gcc/testsuite/gcc.dg/20031218-2.c
! d88f26e336c418f871b1a921ead6b08a  gcc/testsuite/gcc.dg/20031218-3.c
  9fe96201a56e928b8136e3d47faf364d  gcc/testsuite/gcc.dg/20031222-1.c
  f9266fb2a711d07c8fd9b9bd8e584e54  gcc/testsuite/gcc.dg/20031223-1.c
  a9c8dcbd471f438d0945eb02ab3198fb  gcc/testsuite/gcc.dg/20040123-1.c
! 7e2e1a54addca114c33bf6ca2ba82886  gcc/testsuite/gcc.dg/20040127-1.c
  082c5fc10d174cbd05a8f07b9af453fa  gcc/testsuite/gcc.dg/20040127-2.c
  66a1048126ecd634e1e4f71263be239e  gcc/testsuite/gcc.dg/20040202-1.c
! c98d25247d7774da4966675b06433f10  gcc/testsuite/gcc.dg/20040203-1.c
  344176b47ecb9bbaa6063647cdda4c21  gcc/testsuite/gcc.dg/20040206-1.c
  2e026d33dbf5598aa7cd5b06ef0cd913  gcc/testsuite/gcc.dg/20040217-1.c
  51687c8357f1f03c29ebffdd118d68dd  gcc/testsuite/gcc.dg/20040219-1.c
--- 41451,41464 ----
  6cf9c79b68d9e3c49a851fec31ded1f8  gcc/testsuite/gcc.dg/20031216-1.c
  914fb59271e3c601cb2e5e610f32a7b5  gcc/testsuite/gcc.dg/20031218-1.c
  0e31f15cce2c41678fc3e7f76a6d7da2  gcc/testsuite/gcc.dg/20031218-2.c
! a0d5cf7e203806bd0cff12048eef3552  gcc/testsuite/gcc.dg/20031218-3.c
  9fe96201a56e928b8136e3d47faf364d  gcc/testsuite/gcc.dg/20031222-1.c
  f9266fb2a711d07c8fd9b9bd8e584e54  gcc/testsuite/gcc.dg/20031223-1.c
  a9c8dcbd471f438d0945eb02ab3198fb  gcc/testsuite/gcc.dg/20040123-1.c
! f61da2e2ac29204f05e4a941cae89ed8  gcc/testsuite/gcc.dg/20040127-1.c
  082c5fc10d174cbd05a8f07b9af453fa  gcc/testsuite/gcc.dg/20040127-2.c
  66a1048126ecd634e1e4f71263be239e  gcc/testsuite/gcc.dg/20040202-1.c
! 4e7776cc5557762b0b79bc9ad6b12d65  gcc/testsuite/gcc.dg/20040203-1.c
  344176b47ecb9bbaa6063647cdda4c21  gcc/testsuite/gcc.dg/20040206-1.c
  2e026d33dbf5598aa7cd5b06ef0cd913  gcc/testsuite/gcc.dg/20040217-1.c
  51687c8357f1f03c29ebffdd118d68dd  gcc/testsuite/gcc.dg/20040219-1.c
*************** cbc66fee494d1a2762b59ab750e035f9  gcc/te
*** 39220,39229 ****
  f6b89935794e56059d42e599dba92ec2  gcc/testsuite/gcc.dg/20040910-1.c
  e41c70826d2d2e86d16c489f982a0f1a  gcc/testsuite/gcc.dg/20040916-1.c
  b83c307108e223d5dad2856b28ee3386  gcc/testsuite/gcc.dg/20040920-1.c
! 5ae27069454d88f776d9b0d3129d529d  gcc/testsuite/gcc.dg/20041014-1.c
  407551e532a5b62584f51ad6cb2a66e3  gcc/testsuite/gcc.dg/20041104-1.c
  1f041d30a5a2c228e86bc8571a35ffd8  gcc/testsuite/gcc.dg/20041106-1.c
! 6deaaeec70976a13a24834812011ac25  gcc/testsuite/gcc.dg/20041122-1.c
  ee28ee06af1da501336f2f38e98910b4  gcc/testsuite/gcc.dg/20041213-1.c
  8dbd236699adecb76664deb4da4d423f  gcc/testsuite/gcc.dg/20041219-1.c
  5515310fb97cb2e7009a3e2145b93fd3  gcc/testsuite/gcc.dg/20050105-1.c
--- 41478,41487 ----
  f6b89935794e56059d42e599dba92ec2  gcc/testsuite/gcc.dg/20040910-1.c
  e41c70826d2d2e86d16c489f982a0f1a  gcc/testsuite/gcc.dg/20040916-1.c
  b83c307108e223d5dad2856b28ee3386  gcc/testsuite/gcc.dg/20040920-1.c
! 229495704e7495f293fdddb489cf83ff  gcc/testsuite/gcc.dg/20041014-1.c
  407551e532a5b62584f51ad6cb2a66e3  gcc/testsuite/gcc.dg/20041104-1.c
  1f041d30a5a2c228e86bc8571a35ffd8  gcc/testsuite/gcc.dg/20041106-1.c
! 04042bf79015726b4868b5976e40fd7e  gcc/testsuite/gcc.dg/20041122-1.c
  ee28ee06af1da501336f2f38e98910b4  gcc/testsuite/gcc.dg/20041213-1.c
  8dbd236699adecb76664deb4da4d423f  gcc/testsuite/gcc.dg/20041219-1.c
  5515310fb97cb2e7009a3e2145b93fd3  gcc/testsuite/gcc.dg/20050105-1.c
*************** ee28ee06af1da501336f2f38e98910b4  gcc/te
*** 39233,39240 ****
  19f002d300e2858722e171996c132ba1  gcc/testsuite/gcc.dg/20050121-1.c
  6b4801db99785258ad0d6fdf2df389d8  gcc/testsuite/gcc.dg/20050121-2.c
  d75e2e831928738c29dcbe7834ecb877  gcc/testsuite/gcc.dg/20050209-1.c
! 964311fd8cdd1cfcbd7fef202a610618  gcc/testsuite/gcc.dg/20050307-1.c
! 3152c06dfe5bf9ec9ee012e85723b174  gcc/testsuite/gcc.dg/20050309-1.c
  794073a0382a8f5c15194266b69dcd3d  gcc/testsuite/gcc.dg/20050321-1.c
  59646d64504cf906a39c6d5ba82813c5  gcc/testsuite/gcc.dg/20050321-2.c
  da88b6e0b854e098e447144a91edc9c5  gcc/testsuite/gcc.dg/20050325-1.c
--- 41491,41498 ----
  19f002d300e2858722e171996c132ba1  gcc/testsuite/gcc.dg/20050121-1.c
  6b4801db99785258ad0d6fdf2df389d8  gcc/testsuite/gcc.dg/20050121-2.c
  d75e2e831928738c29dcbe7834ecb877  gcc/testsuite/gcc.dg/20050209-1.c
! 63ee9c0528eb9d5d8ea6faac5ed71276  gcc/testsuite/gcc.dg/20050307-1.c
! 4adb64606371f4d895e533a3e5217065  gcc/testsuite/gcc.dg/20050309-1.c
  794073a0382a8f5c15194266b69dcd3d  gcc/testsuite/gcc.dg/20050321-1.c
  59646d64504cf906a39c6d5ba82813c5  gcc/testsuite/gcc.dg/20050321-2.c
  da88b6e0b854e098e447144a91edc9c5  gcc/testsuite/gcc.dg/20050325-1.c
*************** fa18390f14716298dbf37d393e23050e  gcc/te
*** 39245,39251 ****
  5029962048f7aace95dae87c8a0af5bc  gcc/testsuite/gcc.dg/20050527-1.c
  f65d4c9b7df168b8cc05a4328ce5ff26  gcc/testsuite/gcc.dg/20050603-2.c
  428426894bbe10b286f72706a5f1f366  gcc/testsuite/gcc.dg/20050607-1.c
! 88f2729d9953416d678abe7e7978fdaf  gcc/testsuite/gcc.dg/20050620-1.c
  83d401ca941d63f7878020c705b4835a  gcc/testsuite/gcc.dg/20050629-1.c
  2ed1ce2798eb27c99e53c945096a6bcb  gcc/testsuite/gcc.dg/20050702-1.c
  b8df937ab613bd7816abd65ceeaeba01  gcc/testsuite/gcc.dg/20050811-1.c
--- 41503,41509 ----
  5029962048f7aace95dae87c8a0af5bc  gcc/testsuite/gcc.dg/20050527-1.c
  f65d4c9b7df168b8cc05a4328ce5ff26  gcc/testsuite/gcc.dg/20050603-2.c
  428426894bbe10b286f72706a5f1f366  gcc/testsuite/gcc.dg/20050607-1.c
! abbd65f92d13e46bf5abcded6a390523  gcc/testsuite/gcc.dg/20050620-1.c
  83d401ca941d63f7878020c705b4835a  gcc/testsuite/gcc.dg/20050629-1.c
  2ed1ce2798eb27c99e53c945096a6bcb  gcc/testsuite/gcc.dg/20050702-1.c
  b8df937ab613bd7816abd65ceeaeba01  gcc/testsuite/gcc.dg/20050811-1.c
*************** f0b8684a8c3558155b34abc46a79ff50  gcc/te
*** 39262,39268 ****
  245705ef27ff67618c0c8bc6c4d7baae  gcc/testsuite/gcc.dg/20060425-1.c
  1a2c3678e6693767637d072aef3fe990  gcc/testsuite/gcc.dg/20060425-2.c
  e5927b8d3e808b5e3fbbefc6a58e4ead  gcc/testsuite/gcc.dg/20060801-1.c
! 35fbfa3aa059b7f01d3bea85d173c352  gcc/testsuite/gcc.dg/20061026.c
  586c156e128af772913452794391eef5  gcc/testsuite/gcc.dg/20061109-1.c
  67c0fd31ad9163380a48ff7ba7b222d8  gcc/testsuite/gcc.dg/20061109-2.c
  8665ed13a9555580a27b1b1240e4a0e3  gcc/testsuite/gcc.dg/20061124-1.c
--- 41520,41526 ----
  245705ef27ff67618c0c8bc6c4d7baae  gcc/testsuite/gcc.dg/20060425-1.c
  1a2c3678e6693767637d072aef3fe990  gcc/testsuite/gcc.dg/20060425-2.c
  e5927b8d3e808b5e3fbbefc6a58e4ead  gcc/testsuite/gcc.dg/20060801-1.c
! 48ab230f859f391f971742ab5d67010d  gcc/testsuite/gcc.dg/20061026.c
  586c156e128af772913452794391eef5  gcc/testsuite/gcc.dg/20061109-1.c
  67c0fd31ad9163380a48ff7ba7b222d8  gcc/testsuite/gcc.dg/20061109-2.c
  8665ed13a9555580a27b1b1240e4a0e3  gcc/testsuite/gcc.dg/20061124-1.c
*************** f5144c55ebdb85bad93da0391b111815  gcc/te
*** 39276,39282 ****
  171e18b2e97e6576eae0c250be3be983  gcc/testsuite/gcc.dg/20090902-1.c
  18402f9894276538053e06dfd05f7626  gcc/testsuite/gcc.dg/20090922-1.c
  2ac0a7ff2231abb079330d62ff1760ec  gcc/testsuite/gcc.dg/20100906-1.c
! 9bf92d85c8432b74ac0e08baaf7cfbc6  gcc/testsuite/gcc.dg/20101010-1.c
  5769543fe926bde317279f8aeb64fe85  gcc/testsuite/gcc.dg/20101013-1.c
  fe7b509fe777f9db4442a69447be8cc1  gcc/testsuite/gcc.dg/20111216-1.c
  f3ff9c25c53e0a1385b90b0f5dd8b2bf  gcc/testsuite/gcc.dg/20111227-2.c
--- 41534,41540 ----
  171e18b2e97e6576eae0c250be3be983  gcc/testsuite/gcc.dg/20090902-1.c
  18402f9894276538053e06dfd05f7626  gcc/testsuite/gcc.dg/20090922-1.c
  2ac0a7ff2231abb079330d62ff1760ec  gcc/testsuite/gcc.dg/20100906-1.c
! 68695eaedab13f856befbbc40d7f14d9  gcc/testsuite/gcc.dg/20101010-1.c
  5769543fe926bde317279f8aeb64fe85  gcc/testsuite/gcc.dg/20101013-1.c
  fe7b509fe777f9db4442a69447be8cc1  gcc/testsuite/gcc.dg/20111216-1.c
  f3ff9c25c53e0a1385b90b0f5dd8b2bf  gcc/testsuite/gcc.dg/20111227-2.c
*************** ee2d8c111bbe5182fac502406519d8b3  gcc/te
*** 39290,39298 ****
  67ff2d10f8ca1f6f7b43fa8b66852e19  gcc/testsuite/gcc.dg/54455.c
  9500956aecfc4a665ee21c237f095e5c  gcc/testsuite/gcc.dg/920413-1.c
  f0c1e347ff19d725e2d77496718dee0c  gcc/testsuite/gcc.dg/940409-1.c
! d9fc0efd6dae0b18108da6130ceb23d5  gcc/testsuite/gcc.dg/940510-1.c
  24a85b1944314d5648711e4b975d408d  gcc/testsuite/gcc.dg/951130-1.c
! 1a127e4f296e269ea42463b73bf0d0aa  gcc/testsuite/gcc.dg/980502-1.c
  e4f3da4a7c4fb13970f2ef9f442d1e10  gcc/testsuite/gcc.dg/980523-1.c
  91784c0f726084719af9100536fcb41a  gcc/testsuite/gcc.dg/980526-1.c
  b1d13cdf0a8bd9121f3e4be9c2d8aa62  gcc/testsuite/gcc.dg/980816-1.c
--- 41548,41556 ----
  67ff2d10f8ca1f6f7b43fa8b66852e19  gcc/testsuite/gcc.dg/54455.c
  9500956aecfc4a665ee21c237f095e5c  gcc/testsuite/gcc.dg/920413-1.c
  f0c1e347ff19d725e2d77496718dee0c  gcc/testsuite/gcc.dg/940409-1.c
! 03e409e3fa247c6b6ce8e530f20a2232  gcc/testsuite/gcc.dg/940510-1.c
  24a85b1944314d5648711e4b975d408d  gcc/testsuite/gcc.dg/951130-1.c
! 146b4389c607c1111501f0a811db0caa  gcc/testsuite/gcc.dg/980502-1.c
  e4f3da4a7c4fb13970f2ef9f442d1e10  gcc/testsuite/gcc.dg/980523-1.c
  91784c0f726084719af9100536fcb41a  gcc/testsuite/gcc.dg/980526-1.c
  b1d13cdf0a8bd9121f3e4be9c2d8aa62  gcc/testsuite/gcc.dg/980816-1.c
*************** cda741cce59ba0dcd70871f300400003  gcc/te
*** 39301,39307 ****
  eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
  509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
  5572aaa0a05957fff2416d1f5f7c0cc6  gcc/testsuite/gcc.dg/PR68002.c
! 9951c06fa033a6e02af56cdf2461de33  gcc/testsuite/gcc.dg/README
  bd2b0579d869dd45682e46db89fcdb4f  gcc/testsuite/gcc.dg/Wabsolute-value.c
  3b152bda38c8adacaa17cce7b0cf4e42  gcc/testsuite/gcc.dg/Waddress-2.c
  c24bef0f408b6e43c19ee75c1ce7717a  gcc/testsuite/gcc.dg/Waddress-3.c
--- 41559,41565 ----
  eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
  509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
  5572aaa0a05957fff2416d1f5f7c0cc6  gcc/testsuite/gcc.dg/PR68002.c
! a0cf1aac484a702db329b0ae4cd06c76  gcc/testsuite/gcc.dg/README
  bd2b0579d869dd45682e46db89fcdb4f  gcc/testsuite/gcc.dg/Wabsolute-value.c
  3b152bda38c8adacaa17cce7b0cf4e42  gcc/testsuite/gcc.dg/Waddress-2.c
  c24bef0f408b6e43c19ee75c1ce7717a  gcc/testsuite/gcc.dg/Waddress-3.c
*************** c143a2e5b3c091bca208b2ee65084704  gcc/te
*** 39331,39357 ****
  b580d6c39293c3a9a94690d5dfc0c878  gcc/testsuite/gcc.dg/Walloc-size-larger-than-8.c
  9a97a011793c5a7247611e2bc518f6f5  gcc/testsuite/gcc.dg/Walloc-size-larger-than-9.c
  273a2c834452fc45390aa6d1a81ea2f2  gcc/testsuite/gcc.dg/Walloc-size-larger-than.c
! d264d25955b548eb2c7066d1fc44c895  gcc/testsuite/gcc.dg/Walloca-1.c
! 538a90f3521bf6b465ebbc392080610e  gcc/testsuite/gcc.dg/Walloca-10.c
! bb3fac63e26e1a1793361a553f83b373  gcc/testsuite/gcc.dg/Walloca-11.c
! 55dc1f00b00f6e508fe83fc8f64b989f  gcc/testsuite/gcc.dg/Walloca-12.c
! 06881e25661efe6dec49f921a736851e  gcc/testsuite/gcc.dg/Walloca-13.c
! a45991d123a68aa2f15e19f083b52c6b  gcc/testsuite/gcc.dg/Walloca-14.c
! e5cdd59c60a14eb884306afcedf7c6f6  gcc/testsuite/gcc.dg/Walloca-15.c
  49fa808f10f6cbd4c7788eebd86de9fd  gcc/testsuite/gcc.dg/Walloca-16.c
! cbbef569089fee4566079038d91ab85b  gcc/testsuite/gcc.dg/Walloca-2.c
! 04f1b6d386a6d8d9db3395b82964428c  gcc/testsuite/gcc.dg/Walloca-3.c
! 36f55471d7b2e97ecb15bfc57d7392da  gcc/testsuite/gcc.dg/Walloca-4.c
! 570dc925a559b3fc45d262becb2674fb  gcc/testsuite/gcc.dg/Walloca-5.c
! 6c3b2ffab9934f7d398b2209ab129de9  gcc/testsuite/gcc.dg/Walloca-6.c
! 086edff3c013c97671a563687ca84f55  gcc/testsuite/gcc.dg/Walloca-7.c
! a08c361f7c9eede0b13d3d1b3cfd2040  gcc/testsuite/gcc.dg/Walloca-8.c
! f4ae192745e9cc38db12b7ac4545d0fa  gcc/testsuite/gcc.dg/Walloca-9.c
! 2c9d0a685e423262c1e6e00284417c7a  gcc/testsuite/gcc.dg/Walloca-larger-than-2.c
! 0d9c9d66e7b54246cbb26dbd25282aea  gcc/testsuite/gcc.dg/Walloca-larger-than-3.c
  3712b4a261ff2fa5613a6b7873d33ad2  gcc/testsuite/gcc.dg/Walloca-larger-than-3.h
! 7f7694b5b535b8aa43e585d3d2846fe5  gcc/testsuite/gcc.dg/Walloca-larger-than-4.c
! cb4200f2eb907130481e17db75d38aed  gcc/testsuite/gcc.dg/Walloca-larger-than.c
  e0f03fe3585a327467250a2ec39fc2be  gcc/testsuite/gcc.dg/Walways-true-1.c
  e0eaa51369369eede5d7e28a789540d5  gcc/testsuite/gcc.dg/Walways-true-2.c
  33a98cba1121b42ccbc1b9ea87c0a5e2  gcc/testsuite/gcc.dg/Warray-bounds-10.c
--- 41589,41615 ----
  b580d6c39293c3a9a94690d5dfc0c878  gcc/testsuite/gcc.dg/Walloc-size-larger-than-8.c
  9a97a011793c5a7247611e2bc518f6f5  gcc/testsuite/gcc.dg/Walloc-size-larger-than-9.c
  273a2c834452fc45390aa6d1a81ea2f2  gcc/testsuite/gcc.dg/Walloc-size-larger-than.c
! c36c67fa903b45f5ef019e31a58f0853  gcc/testsuite/gcc.dg/Walloca-1.c
! c1ad20efe1de677ca30eea3067c0c6da  gcc/testsuite/gcc.dg/Walloca-10.c
! 3344394fe33b180ac726729459461c92  gcc/testsuite/gcc.dg/Walloca-11.c
! ef8a1e1ba43ec577788d9d5051a6b801  gcc/testsuite/gcc.dg/Walloca-12.c
! 9e7aa923abf2ae13c1abe33f0ce11c7e  gcc/testsuite/gcc.dg/Walloca-13.c
! a302f5547c18b292f48a74d2f1ac2312  gcc/testsuite/gcc.dg/Walloca-14.c
! c9711f084b8c410403b8251cf9ac43d7  gcc/testsuite/gcc.dg/Walloca-15.c
  49fa808f10f6cbd4c7788eebd86de9fd  gcc/testsuite/gcc.dg/Walloca-16.c
! 07d3767eb2240ee74ab1ed1a6b9e2abe  gcc/testsuite/gcc.dg/Walloca-2.c
! 5d4e96632cbd8b2115a54e84c5481cbc  gcc/testsuite/gcc.dg/Walloca-3.c
! e1911f93fc59ef403b49edc02420e49d  gcc/testsuite/gcc.dg/Walloca-4.c
! 7f0a61e6bd102997fac9d7b2f1062e1f  gcc/testsuite/gcc.dg/Walloca-5.c
! 9170e6ca7a28b9f9fc797a3a0c148a3c  gcc/testsuite/gcc.dg/Walloca-6.c
! c4cbdbb5a88bceddada9ea0dcc618679  gcc/testsuite/gcc.dg/Walloca-7.c
! 8fd5329082b4247f698e7bc16a0aa507  gcc/testsuite/gcc.dg/Walloca-8.c
! 75669965c1a664be25aa5940fbfb2fd3  gcc/testsuite/gcc.dg/Walloca-9.c
! 7a68860013efed458f1c66078186d3a0  gcc/testsuite/gcc.dg/Walloca-larger-than-2.c
! 76a798f308f696f3996c76351672427d  gcc/testsuite/gcc.dg/Walloca-larger-than-3.c
  3712b4a261ff2fa5613a6b7873d33ad2  gcc/testsuite/gcc.dg/Walloca-larger-than-3.h
! ce6052ad06e5e1217a6a12d516bdbd09  gcc/testsuite/gcc.dg/Walloca-larger-than-4.c
! e44fa8031299cbd8858d87f5ac919020  gcc/testsuite/gcc.dg/Walloca-larger-than.c
  e0f03fe3585a327467250a2ec39fc2be  gcc/testsuite/gcc.dg/Walways-true-1.c
  e0eaa51369369eede5d7e28a789540d5  gcc/testsuite/gcc.dg/Walways-true-2.c
  33a98cba1121b42ccbc1b9ea87c0a5e2  gcc/testsuite/gcc.dg/Warray-bounds-10.c
*************** e6a50ca3e265c311be7baeba51136d84  gcc/te
*** 39367,39373 ****
  798433d4099cd8d7572fde802e640896  gcc/testsuite/gcc.dg/Warray-bounds-2.c
  251c1639092217dd2bd41397e4d9ecc6  gcc/testsuite/gcc.dg/Warray-bounds-20.c
  e1fcb1470f6b09d31f8fcd1d46d20be8  gcc/testsuite/gcc.dg/Warray-bounds-21.c
! be946b96ee7ca07b3a6a6d6a8de9c217  gcc/testsuite/gcc.dg/Warray-bounds-22.c
  d2f56b9715cb8023695707222ab645ea  gcc/testsuite/gcc.dg/Warray-bounds-23.c
  b4a524baa9581904a5f7b7e0d7ca6a76  gcc/testsuite/gcc.dg/Warray-bounds-24.c
  13c775a01e9f3125fa844f38909ab8ac  gcc/testsuite/gcc.dg/Warray-bounds-25.c
--- 41625,41631 ----
  798433d4099cd8d7572fde802e640896  gcc/testsuite/gcc.dg/Warray-bounds-2.c
  251c1639092217dd2bd41397e4d9ecc6  gcc/testsuite/gcc.dg/Warray-bounds-20.c
  e1fcb1470f6b09d31f8fcd1d46d20be8  gcc/testsuite/gcc.dg/Warray-bounds-21.c
! df9867ccf077bddc03010307e6225990  gcc/testsuite/gcc.dg/Warray-bounds-22.c
  d2f56b9715cb8023695707222ab645ea  gcc/testsuite/gcc.dg/Warray-bounds-23.c
  b4a524baa9581904a5f7b7e0d7ca6a76  gcc/testsuite/gcc.dg/Warray-bounds-24.c
  13c775a01e9f3125fa844f38909ab8ac  gcc/testsuite/gcc.dg/Warray-bounds-25.c
*************** db89bc16bba99d1896fd369f83d6a7b5  gcc/te
*** 39379,39385 ****
  8081619aca0555d94a4544dbea2ea790  gcc/testsuite/gcc.dg/Warray-bounds-30.c
  8b65ddd6aa612fd11722b98bcdac2196  gcc/testsuite/gcc.dg/Warray-bounds-31.c
  81bd321922b3694940694510b0d8d0c4  gcc/testsuite/gcc.dg/Warray-bounds-32.c
! 0bb08064836aff8fecf3c18b34b7c99b  gcc/testsuite/gcc.dg/Warray-bounds-33.c
  6a03e7b93f4fe957d581eba158780e50  gcc/testsuite/gcc.dg/Warray-bounds-34.c
  70792e0f2bd388c08d846ece8c1a9894  gcc/testsuite/gcc.dg/Warray-bounds-35.c
  53cf522d5540d20053932c1c37e42025  gcc/testsuite/gcc.dg/Warray-bounds-36.c
--- 41637,41643 ----
  8081619aca0555d94a4544dbea2ea790  gcc/testsuite/gcc.dg/Warray-bounds-30.c
  8b65ddd6aa612fd11722b98bcdac2196  gcc/testsuite/gcc.dg/Warray-bounds-31.c
  81bd321922b3694940694510b0d8d0c4  gcc/testsuite/gcc.dg/Warray-bounds-32.c
! c5fddcebb4bd4364c8c93e0a78795507  gcc/testsuite/gcc.dg/Warray-bounds-33.c
  6a03e7b93f4fe957d581eba158780e50  gcc/testsuite/gcc.dg/Warray-bounds-34.c
  70792e0f2bd388c08d846ece8c1a9894  gcc/testsuite/gcc.dg/Warray-bounds-35.c
  53cf522d5540d20053932c1c37e42025  gcc/testsuite/gcc.dg/Warray-bounds-36.c
*************** e7237b88231aff2adb46cd199c02550b  gcc/te
*** 39388,39405 ****
  f1d188ca73d565a2f5f0ef5ac4da7de3  gcc/testsuite/gcc.dg/Warray-bounds-39.c
  84a306ba6a47b60426131bffe9ec7a0c  gcc/testsuite/gcc.dg/Warray-bounds-4.c
  a24dbf2381bca49baad37bd9894a1364  gcc/testsuite/gcc.dg/Warray-bounds-40.c
! ade1fdd3e190a5dcc364ebe1609610ba  gcc/testsuite/gcc.dg/Warray-bounds-41.c
  f789b1e7b8becd79f38feadd4851b46e  gcc/testsuite/gcc.dg/Warray-bounds-42.c
  45fb1915bf22caaa2b57cbdd7672682d  gcc/testsuite/gcc.dg/Warray-bounds-43.c
  bcfdc1bd403c9aafe13abbe133808f9a  gcc/testsuite/gcc.dg/Warray-bounds-44.c
  f3112cdf9edbe2af3277d38e4643af1f  gcc/testsuite/gcc.dg/Warray-bounds-45.c
! 6e95be44603cc2f0f4a1e04edd5ae3c4  gcc/testsuite/gcc.dg/Warray-bounds-46.c
  cb64293b7b9a92cb5cd94dedde913801  gcc/testsuite/gcc.dg/Warray-bounds-47.c
! cab2ba3eb9cf90b242a46a6d6d8d3bcb  gcc/testsuite/gcc.dg/Warray-bounds-48-novec.c
! c2dd7440bf90485b0a38150b662da025  gcc/testsuite/gcc.dg/Warray-bounds-48.c
  071125faa618b3594b1be7b6a1046661  gcc/testsuite/gcc.dg/Warray-bounds-49.c
  6a53ea6731c8e33605392ac843284e1c  gcc/testsuite/gcc.dg/Warray-bounds-5.c
! 99ca661fd44c871abb678e58007bc467  gcc/testsuite/gcc.dg/Warray-bounds-50.c
  80b1ec0f5441fed204561ea4b998732e  gcc/testsuite/gcc.dg/Warray-bounds-51-novec.c
  76dcbe5fc7b7946795b40b27b4583187  gcc/testsuite/gcc.dg/Warray-bounds-51.c
  15c7895556ea2629cf8862e23dc46a97  gcc/testsuite/gcc.dg/Warray-bounds-52.c
--- 41646,41663 ----
  f1d188ca73d565a2f5f0ef5ac4da7de3  gcc/testsuite/gcc.dg/Warray-bounds-39.c
  84a306ba6a47b60426131bffe9ec7a0c  gcc/testsuite/gcc.dg/Warray-bounds-4.c
  a24dbf2381bca49baad37bd9894a1364  gcc/testsuite/gcc.dg/Warray-bounds-40.c
! 7cc1665aca9263096d76d9b2b7fa63bc  gcc/testsuite/gcc.dg/Warray-bounds-41.c
  f789b1e7b8becd79f38feadd4851b46e  gcc/testsuite/gcc.dg/Warray-bounds-42.c
  45fb1915bf22caaa2b57cbdd7672682d  gcc/testsuite/gcc.dg/Warray-bounds-43.c
  bcfdc1bd403c9aafe13abbe133808f9a  gcc/testsuite/gcc.dg/Warray-bounds-44.c
  f3112cdf9edbe2af3277d38e4643af1f  gcc/testsuite/gcc.dg/Warray-bounds-45.c
! 9f26e58de02997a62838c6a4e0c5e939  gcc/testsuite/gcc.dg/Warray-bounds-46.c
  cb64293b7b9a92cb5cd94dedde913801  gcc/testsuite/gcc.dg/Warray-bounds-47.c
! 651248b45dcbd1ba5f3f3abba9830aa4  gcc/testsuite/gcc.dg/Warray-bounds-48-novec.c
! f7d383f91a15c1b20ff9684facf878e3  gcc/testsuite/gcc.dg/Warray-bounds-48.c
  071125faa618b3594b1be7b6a1046661  gcc/testsuite/gcc.dg/Warray-bounds-49.c
  6a53ea6731c8e33605392ac843284e1c  gcc/testsuite/gcc.dg/Warray-bounds-5.c
! 76a2757b12530b21cccc5dd788dc15ee  gcc/testsuite/gcc.dg/Warray-bounds-50.c
  80b1ec0f5441fed204561ea4b998732e  gcc/testsuite/gcc.dg/Warray-bounds-51-novec.c
  76dcbe5fc7b7946795b40b27b4583187  gcc/testsuite/gcc.dg/Warray-bounds-51.c
  15c7895556ea2629cf8862e23dc46a97  gcc/testsuite/gcc.dg/Warray-bounds-52.c
*************** fcd274aa9e98ef2eed6f4ff3d3a74b4c  gcc/te
*** 39413,39423 ****
  80c3d31a9d8de2d05bed1c5c1e97d4c5  gcc/testsuite/gcc.dg/Warray-bounds-6.c
  1b21b1f193ad0d2c647f55a9a290acf2  gcc/testsuite/gcc.dg/Warray-bounds-61.c
  c78bbb71f763798ca7a0fb499b6de460  gcc/testsuite/gcc.dg/Warray-bounds-62.c
! 9799710c9e895f3ddbad63b12f0e1886  gcc/testsuite/gcc.dg/Warray-bounds-63.c
  9ea4759a96c75558f69e6cce54c34eb3  gcc/testsuite/gcc.dg/Warray-bounds-64.c
  1df7f806db7a39bd9829ad74b9781b37  gcc/testsuite/gcc.dg/Warray-bounds-65.c
! 64c0f3d72e38d983c88ebd5b09eb3ae2  gcc/testsuite/gcc.dg/Warray-bounds-66.c
! 2131e610c7552a866719b6f05200b219  gcc/testsuite/gcc.dg/Warray-bounds-67.c
  51359502b5a5964989bb9a3452967e27  gcc/testsuite/gcc.dg/Warray-bounds-68.c
  437c9dd07c10a3a3666af06f7ed40442  gcc/testsuite/gcc.dg/Warray-bounds-69.c
  5be3608072cf842ac1c1ee348830d85a  gcc/testsuite/gcc.dg/Warray-bounds-7.c
--- 41671,41681 ----
  80c3d31a9d8de2d05bed1c5c1e97d4c5  gcc/testsuite/gcc.dg/Warray-bounds-6.c
  1b21b1f193ad0d2c647f55a9a290acf2  gcc/testsuite/gcc.dg/Warray-bounds-61.c
  c78bbb71f763798ca7a0fb499b6de460  gcc/testsuite/gcc.dg/Warray-bounds-62.c
! ce896a75014d06ce0ca041baba249515  gcc/testsuite/gcc.dg/Warray-bounds-63.c
  9ea4759a96c75558f69e6cce54c34eb3  gcc/testsuite/gcc.dg/Warray-bounds-64.c
  1df7f806db7a39bd9829ad74b9781b37  gcc/testsuite/gcc.dg/Warray-bounds-65.c
! f3fd7533759b1b91a93ea6b7dd8116ad  gcc/testsuite/gcc.dg/Warray-bounds-66.c
! f09603b4439bb0f94fdb3f82c122bb94  gcc/testsuite/gcc.dg/Warray-bounds-67.c
  51359502b5a5964989bb9a3452967e27  gcc/testsuite/gcc.dg/Warray-bounds-68.c
  437c9dd07c10a3a3666af06f7ed40442  gcc/testsuite/gcc.dg/Warray-bounds-69.c
  5be3608072cf842ac1c1ee348830d85a  gcc/testsuite/gcc.dg/Warray-bounds-7.c
*************** bd5d161ada67db246eb1ad520d4f5497  gcc/te
*** 39430,39436 ****
  2f820dd9ae62a618464d666f0d5bca08  gcc/testsuite/gcc.dg/Warray-bounds-75.c
  9b4b6adb0a2122a06351c5ff7ff8931a  gcc/testsuite/gcc.dg/Warray-bounds-76.c
  4fa750669c47097c048bcb3a10f141ab  gcc/testsuite/gcc.dg/Warray-bounds-77.c
! 81fdef5c5772a853c20fe673e3d4deff  gcc/testsuite/gcc.dg/Warray-bounds-78.c
  facb4afb751b21f95cf5def2ba3c699c  gcc/testsuite/gcc.dg/Warray-bounds-79.c
  21d65e4a3ed9e583a7990c62514f991a  gcc/testsuite/gcc.dg/Warray-bounds-8.c
  f9c24f7db5aa32c862de15d58154effa  gcc/testsuite/gcc.dg/Warray-bounds-80.c
--- 41688,41694 ----
  2f820dd9ae62a618464d666f0d5bca08  gcc/testsuite/gcc.dg/Warray-bounds-75.c
  9b4b6adb0a2122a06351c5ff7ff8931a  gcc/testsuite/gcc.dg/Warray-bounds-76.c
  4fa750669c47097c048bcb3a10f141ab  gcc/testsuite/gcc.dg/Warray-bounds-77.c
! 1503c4cad68575de1bee46f29b026792  gcc/testsuite/gcc.dg/Warray-bounds-78.c
  facb4afb751b21f95cf5def2ba3c699c  gcc/testsuite/gcc.dg/Warray-bounds-79.c
  21d65e4a3ed9e583a7990c62514f991a  gcc/testsuite/gcc.dg/Warray-bounds-8.c
  f9c24f7db5aa32c862de15d58154effa  gcc/testsuite/gcc.dg/Warray-bounds-80.c
*************** ed0be1b0dbc4d096cf7420e0e0916ba7  gcc/te
*** 39446,39464 ****
  34a2f1dde5b0d1ece3145392c920538a  gcc/testsuite/gcc.dg/Warray-bounds-90.c
  597845c74f9e6de5ac325edc29f2ac80  gcc/testsuite/gcc.dg/Warray-bounds-91.c
  aaf0c5347a83074f9bddec09f86caea5  gcc/testsuite/gcc.dg/Warray-bounds-92.c
! 7c9c0c1abf3d9df51afd1db2b855f4c1  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-1.c
  00be1a979d840338be862131d5c5dc07  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-2.c
  3edd4fd8bd087a91e9563e27a8776177  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-3.c
  91ae71bfd2be2b5916fc12d4d1933c27  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-4.c
  595e624169c103a98c1cdb039d81b59d  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-5.c
  6d136ca32fc39f8f1b4263d21e962dea  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-6.c
  0b85a8646c05f520e95768e6d605a0dd  gcc/testsuite/gcc.dg/Warray-bounds.c
! 02492a8b231edd0a885fae4c951d176c  gcc/testsuite/gcc.dg/Warray-parameter-10.c
  3ea5d5a49094bf793c5897fff9d315be  gcc/testsuite/gcc.dg/Warray-parameter-11.c
  08e3a5d407e0fc2dbcabe26ce368584d  gcc/testsuite/gcc.dg/Warray-parameter-2.c
  0dd43a716376c38d59b0b101465ce325  gcc/testsuite/gcc.dg/Warray-parameter-3-novec.c
  d0ad662b4441fbb80442aa49c085713b  gcc/testsuite/gcc.dg/Warray-parameter-3.c
! 9d5c473fe24359cf5dc7d2cd313b459c  gcc/testsuite/gcc.dg/Warray-parameter-4.c
  63747ac1f532ee92e6bae2bb3c3536d9  gcc/testsuite/gcc.dg/Warray-parameter-5.c
  afd1e9e12b9f03d47bc7d0a07df0c5d5  gcc/testsuite/gcc.dg/Warray-parameter-6.c
  8062c6aa0e8bde1eb625eb32bf6be129  gcc/testsuite/gcc.dg/Warray-parameter-7.c
--- 41704,41722 ----
  34a2f1dde5b0d1ece3145392c920538a  gcc/testsuite/gcc.dg/Warray-bounds-90.c
  597845c74f9e6de5ac325edc29f2ac80  gcc/testsuite/gcc.dg/Warray-bounds-91.c
  aaf0c5347a83074f9bddec09f86caea5  gcc/testsuite/gcc.dg/Warray-bounds-92.c
! 6913914fd22db02e96c1c8e01194ee9d  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-1.c
  00be1a979d840338be862131d5c5dc07  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-2.c
  3edd4fd8bd087a91e9563e27a8776177  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-3.c
  91ae71bfd2be2b5916fc12d4d1933c27  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-4.c
  595e624169c103a98c1cdb039d81b59d  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-5.c
  6d136ca32fc39f8f1b4263d21e962dea  gcc/testsuite/gcc.dg/Warray-bounds-flex-arrays-6.c
  0b85a8646c05f520e95768e6d605a0dd  gcc/testsuite/gcc.dg/Warray-bounds.c
! bd8fcc3340628b2614b8f8c6561f0e86  gcc/testsuite/gcc.dg/Warray-parameter-10.c
  3ea5d5a49094bf793c5897fff9d315be  gcc/testsuite/gcc.dg/Warray-parameter-11.c
  08e3a5d407e0fc2dbcabe26ce368584d  gcc/testsuite/gcc.dg/Warray-parameter-2.c
  0dd43a716376c38d59b0b101465ce325  gcc/testsuite/gcc.dg/Warray-parameter-3-novec.c
  d0ad662b4441fbb80442aa49c085713b  gcc/testsuite/gcc.dg/Warray-parameter-3.c
! 2d243ba896d054138ee7e1ba81413bd3  gcc/testsuite/gcc.dg/Warray-parameter-4.c
  63747ac1f532ee92e6bae2bb3c3536d9  gcc/testsuite/gcc.dg/Warray-parameter-5.c
  afd1e9e12b9f03d47bc7d0a07df0c5d5  gcc/testsuite/gcc.dg/Warray-parameter-6.c
  8062c6aa0e8bde1eb625eb32bf6be129  gcc/testsuite/gcc.dg/Warray-parameter-7.c
*************** fa34af530f0819d48745f85d1a99fb6d  gcc/te
*** 39481,39499 ****
  1d4e59d5d533ad0cefc0a93ca198f44e  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-11.c
  3ad436c194d434c9b9c50e5bb370b32a  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-12.c
  7566692ce56f5d8e565c6c8843c8cbd4  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-13.c
! ab52664274ba5b752e4f5ce0bd3d96cf  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-14.c
! c36a96f0a2054d693f222a7f39b91b3b  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-15.c
  52b67d3eb6e8eef443e0a3f92d94b4d3  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-16.c
! 2bb84c00111f6527a9304d59b8a154e2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-2.c
! e3580f831824d02ace6134fa02f3fe3c  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
! 170a588446cae3e8cc514828ad956e96  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-4.c
! 6ac379a9179bcb846ad2589dfa8985b4  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-5.c
  5202898a25df5cc8ec38caa2f601f70f  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-6.c
  a4be043f27e0d83678af2c268d64edab  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-7.c
  87df707b31832d3a13ac5b7916a7f705  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-8.c
  db72e09dd94975a6718281d04e933951  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
  9b33351e5312ae176453336710b80112  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-ignore.c
! 3c23d0d31c840616639418091650b2b2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch.c
  3987306283bace0fc6f28fca72555786  gcc/testsuite/gcc.dg/Wc++-compat.c
  f2b65bca6e66a382f6b71bfb0da71f93  gcc/testsuite/gcc.dg/Wc90-c99-compat-1.c
  6c239ef70ec77017d307f2b2331f81af  gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
--- 41739,41757 ----
  1d4e59d5d533ad0cefc0a93ca198f44e  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-11.c
  3ad436c194d434c9b9c50e5bb370b32a  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-12.c
  7566692ce56f5d8e565c6c8843c8cbd4  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-13.c
! c96a7ca7c50f21ff2995c87ce412ea04  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-14.c
! 1a2448351e4ec1a836819c3b97949cb6  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-15.c
  52b67d3eb6e8eef443e0a3f92d94b4d3  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-16.c
! 96ffb0070c06384d64a0d2b9aa4fa9a3  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-2.c
! fc2e77e75a6a9ec99e2253df570d3f79  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
! 40b1d7251e232bd5b73cf087d59b2c13  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-4.c
! 65c7e51268249c3069a569584b8bd066  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-5.c
  5202898a25df5cc8ec38caa2f601f70f  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-6.c
  a4be043f27e0d83678af2c268d64edab  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-7.c
  87df707b31832d3a13ac5b7916a7f705  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-8.c
  db72e09dd94975a6718281d04e933951  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
  9b33351e5312ae176453336710b80112  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-ignore.c
! 7240c5fb370ac7dfc870cbb8cf130bff  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch.c
  3987306283bace0fc6f28fca72555786  gcc/testsuite/gcc.dg/Wc++-compat.c
  f2b65bca6e66a382f6b71bfb0da71f93  gcc/testsuite/gcc.dg/Wc90-c99-compat-1.c
  6c239ef70ec77017d307f2b2331f81af  gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
*************** dcf05f4b5ebc0230435c5511bc2e8d08  gcc/te
*** 39525,39551 ****
  f0d04eb2a12065ae8325119e1af32b99  gcc/testsuite/gcc.dg/Wconversion-3.c
  8a5a51de19f67fc1ef77567aa32604bd  gcc/testsuite/gcc.dg/Wconversion-4.c
  b0d43f24b4e69291ba84c8f5b49e90c7  gcc/testsuite/gcc.dg/Wconversion-5.c
! 5129591d97b9b3204397d44d84756ac2  gcc/testsuite/gcc.dg/Wconversion-complex-c99.c
  7e892af9112ccd6f6dd5c1efcf3aca2f  gcc/testsuite/gcc.dg/Wconversion-complex-gnu.c
  cb00bf783b6d1a74b061b7dd940d9ff1  gcc/testsuite/gcc.dg/Wconversion-integer-no-sign.c
  a987748348709242aab4506d01f5ceb3  gcc/testsuite/gcc.dg/Wconversion-integer.c
  0b27b2866e43c765ad41ebbe31db8db7  gcc/testsuite/gcc.dg/Wconversion-pr34389.c
! 8b7bfe33993112a1d44ddb7b80807a7c  gcc/testsuite/gcc.dg/Wconversion-real-integer.c
  377d3c875e9bff82de566d6dbd148d53  gcc/testsuite/gcc.dg/Wcxx-compat-1.c
  e9acb9c0a217791f9046f3c08b929a02  gcc/testsuite/gcc.dg/Wcxx-compat-10.c
  acb91636b208332f1aa0989285332589  gcc/testsuite/gcc.dg/Wcxx-compat-11.c
  a87aef168306072ac0e71bb7691de1cb  gcc/testsuite/gcc.dg/Wcxx-compat-12.c
  4192dcadf0b7703f083b2f93d3c9ff5b  gcc/testsuite/gcc.dg/Wcxx-compat-13.c
! ab9f39f4724f1d26f0ea82d91fef5e73  gcc/testsuite/gcc.dg/Wcxx-compat-14.c
  cf6cb27f9a56b0e1f85650b548129174  gcc/testsuite/gcc.dg/Wcxx-compat-15.c
  b72196f96eebc9f44ca92ad02347ac14  gcc/testsuite/gcc.dg/Wcxx-compat-16.c
  5cc63922b3e93f3147d3233632b6aac1  gcc/testsuite/gcc.dg/Wcxx-compat-17.c
  81cbda55107b6e20e7535be40bd52d7e  gcc/testsuite/gcc.dg/Wcxx-compat-18.c
  577d10014c597da147f69438f3a4b207  gcc/testsuite/gcc.dg/Wcxx-compat-19.c
! 94a1a2c9d90548be7ad75d1a1121a6ae  gcc/testsuite/gcc.dg/Wcxx-compat-2.c
  c38816b8f93cd6d9447c85c804586410  gcc/testsuite/gcc.dg/Wcxx-compat-20.c
  e309dd4f8a5603158246eb6cd302b4bc  gcc/testsuite/gcc.dg/Wcxx-compat-21.c
  e30c655105453062112de9c7e9443274  gcc/testsuite/gcc.dg/Wcxx-compat-22.c
  37212bba10666ec303d70ce98d36f6e3  gcc/testsuite/gcc.dg/Wcxx-compat-3.c
  9243e464ef6391910e1933f27ced7008  gcc/testsuite/gcc.dg/Wcxx-compat-4.c
  45332d017f55b3e16cb9068902e741f7  gcc/testsuite/gcc.dg/Wcxx-compat-5.c
--- 41783,41811 ----
  f0d04eb2a12065ae8325119e1af32b99  gcc/testsuite/gcc.dg/Wconversion-3.c
  8a5a51de19f67fc1ef77567aa32604bd  gcc/testsuite/gcc.dg/Wconversion-4.c
  b0d43f24b4e69291ba84c8f5b49e90c7  gcc/testsuite/gcc.dg/Wconversion-5.c
! 30538cb25595494526996415c756407c  gcc/testsuite/gcc.dg/Wconversion-complex-c99.c
  7e892af9112ccd6f6dd5c1efcf3aca2f  gcc/testsuite/gcc.dg/Wconversion-complex-gnu.c
  cb00bf783b6d1a74b061b7dd940d9ff1  gcc/testsuite/gcc.dg/Wconversion-integer-no-sign.c
  a987748348709242aab4506d01f5ceb3  gcc/testsuite/gcc.dg/Wconversion-integer.c
  0b27b2866e43c765ad41ebbe31db8db7  gcc/testsuite/gcc.dg/Wconversion-pr34389.c
! 76ad1f30ae7bb3f53b63f9f340b3d605  gcc/testsuite/gcc.dg/Wconversion-real-integer.c
  377d3c875e9bff82de566d6dbd148d53  gcc/testsuite/gcc.dg/Wcxx-compat-1.c
  e9acb9c0a217791f9046f3c08b929a02  gcc/testsuite/gcc.dg/Wcxx-compat-10.c
  acb91636b208332f1aa0989285332589  gcc/testsuite/gcc.dg/Wcxx-compat-11.c
  a87aef168306072ac0e71bb7691de1cb  gcc/testsuite/gcc.dg/Wcxx-compat-12.c
  4192dcadf0b7703f083b2f93d3c9ff5b  gcc/testsuite/gcc.dg/Wcxx-compat-13.c
! 14cea5cba3a9a9ab49924736c0d3d38c  gcc/testsuite/gcc.dg/Wcxx-compat-14.c
  cf6cb27f9a56b0e1f85650b548129174  gcc/testsuite/gcc.dg/Wcxx-compat-15.c
  b72196f96eebc9f44ca92ad02347ac14  gcc/testsuite/gcc.dg/Wcxx-compat-16.c
  5cc63922b3e93f3147d3233632b6aac1  gcc/testsuite/gcc.dg/Wcxx-compat-17.c
  81cbda55107b6e20e7535be40bd52d7e  gcc/testsuite/gcc.dg/Wcxx-compat-18.c
  577d10014c597da147f69438f3a4b207  gcc/testsuite/gcc.dg/Wcxx-compat-19.c
! 64bf0a57a2bdba9bfe9f35fbe336d953  gcc/testsuite/gcc.dg/Wcxx-compat-2.c
  c38816b8f93cd6d9447c85c804586410  gcc/testsuite/gcc.dg/Wcxx-compat-20.c
  e309dd4f8a5603158246eb6cd302b4bc  gcc/testsuite/gcc.dg/Wcxx-compat-21.c
  e30c655105453062112de9c7e9443274  gcc/testsuite/gcc.dg/Wcxx-compat-22.c
+ 841abec603aef7ff1d04763ed7d99e4e  gcc/testsuite/gcc.dg/Wcxx-compat-23.c
+ b29b8f040a1a27f4ade907e7e0c44310  gcc/testsuite/gcc.dg/Wcxx-compat-24.c
  37212bba10666ec303d70ce98d36f6e3  gcc/testsuite/gcc.dg/Wcxx-compat-3.c
  9243e464ef6391910e1933f27ced7008  gcc/testsuite/gcc.dg/Wcxx-compat-4.c
  45332d017f55b3e16cb9068902e741f7  gcc/testsuite/gcc.dg/Wcxx-compat-5.c
*************** e30c655105453062112de9c7e9443274  gcc/te
*** 39557,39570 ****
  b2580351ea9d40e4accaa522c5d2f399  gcc/testsuite/gcc.dg/Wdangling-pointer-3.c
  316f1623e5acd83274de418921892a69  gcc/testsuite/gcc.dg/Wdangling-pointer-4.c
  18ba0a492210455e75913512789ce9fe  gcc/testsuite/gcc.dg/Wdangling-pointer-pr106868.c
! ec2abae8e4d243e4139a0b6f517f7f0f  gcc/testsuite/gcc.dg/Wdangling-pointer.c
  01f0cbfc5de1ea87105985bb541819fb  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-1.c
  2da9aabb3c1d80fdd6cd7e866760fe3d  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-2.c
  347b0f043a7fbcf5f80c2e080c648104  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-3.c
  f8e0507acf1da471f9078e673cd34f50  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-4.c
  7929f22a4e631866685ffbcf83fe6de6  gcc/testsuite/gcc.dg/Wdesignated-init-2.c
  49177ef77099fc022a700d8577598a0f  gcc/testsuite/gcc.dg/Wdesignated-init.c
! 99d428c7a997058a53671eed66793964  gcc/testsuite/gcc.dg/Wdouble-promotion.c
  2e86a126d454ea24161510c1d11b0fab  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier-c11.c
  80c0ca28edb638295458740c9ed660b2  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier.c
  1c2b759be94c4194b01f7ab821cdbd76  gcc/testsuite/gcc.dg/Wenum-compare-1.c
--- 41817,41834 ----
  b2580351ea9d40e4accaa522c5d2f399  gcc/testsuite/gcc.dg/Wdangling-pointer-3.c
  316f1623e5acd83274de418921892a69  gcc/testsuite/gcc.dg/Wdangling-pointer-4.c
  18ba0a492210455e75913512789ce9fe  gcc/testsuite/gcc.dg/Wdangling-pointer-pr106868.c
! b49c769d947710bae84e4a5ec61c0b03  gcc/testsuite/gcc.dg/Wdangling-pointer.c
  01f0cbfc5de1ea87105985bb541819fb  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-1.c
  2da9aabb3c1d80fdd6cd7e866760fe3d  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-2.c
  347b0f043a7fbcf5f80c2e080c648104  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-3.c
  f8e0507acf1da471f9078e673cd34f50  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-4.c
+ 9903808cfbde012d6c50b8ea56147ee1  gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-1.c
+ 8efb6297e02533cf0675e999d59cfd22  gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-2.c
+ 27c4dc4a5d5cceb63e98ff9d18a69060  gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-3.c
+ 361244e98a5aa655bb702c901a203431  gcc/testsuite/gcc.dg/Wdeprecated-non-prototype-4.c
  7929f22a4e631866685ffbcf83fe6de6  gcc/testsuite/gcc.dg/Wdesignated-init-2.c
  49177ef77099fc022a700d8577598a0f  gcc/testsuite/gcc.dg/Wdesignated-init.c
! 1d41eb4285603abaa2b5f0a778ebef1a  gcc/testsuite/gcc.dg/Wdouble-promotion.c
  2e86a126d454ea24161510c1d11b0fab  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier-c11.c
  80c0ca28edb638295458740c9ed660b2  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier.c
  1c2b759be94c4194b01f7ab821cdbd76  gcc/testsuite/gcc.dg/Wenum-compare-1.c
*************** fadf7514e1bb63b4a5e988ce51700510  gcc/te
*** 39588,39593 ****
--- 41852,41858 ----
  881085bd4b3b94b552885bfa744d749f  gcc/testsuite/gcc.dg/Werror-8.c
  8d0a69a79251eae375ee3aae51d76668  gcc/testsuite/gcc.dg/Werror-implicit-function-declaration.c
  666446ea2e19372ed246f3e20a0224ef  gcc/testsuite/gcc.dg/Wfatal-2.c
+ 7f43c2d46ab898f2f1a8ad9610c08be6  gcc/testsuite/gcc.dg/Wfatal-bad-attr-pr119366.c
  afffd7f8af0ccf26ac1db7d5fdb87aed  gcc/testsuite/gcc.dg/Wfatal.c
  bf6eefaa01d8a709541da7a1b2e3b6ba  gcc/testsuite/gcc.dg/Wfloat-equal-1.c
  3a39ab97dad869f58efdf9325f7af3d2  gcc/testsuite/gcc.dg/Wformat-overflow1.c
*************** a3fccbf1a7232687802f00c0e1f6aa94  gcc/te
*** 39596,39608 ****
  8d0791011fc11919d43bcce331d009ee  gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
  ef08bcadd8d487914acf2e600b7cdba9  gcc/testsuite/gcc.dg/Wframe-larger-than-3.c
  c0d5151a121a2bf7d609671e32fa7369  gcc/testsuite/gcc.dg/Wframe-larger-than.c
! 3a0f812d190477f907dda347762facc8  gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c
  e273443a6f4eccf5890b6c4d46998324  gcc/testsuite/gcc.dg/Wfree-nonheap-object-3.c
  1f871dc63d9bfee79601f4586343f709  gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c
  469e7b8c90d9b200ae40cccf77711ce5  gcc/testsuite/gcc.dg/Wfree-nonheap-object-5.c
  c19a454bcf29265915e365069507e42a  gcc/testsuite/gcc.dg/Wfree-nonheap-object-6.c
! 21ef9c0c9671240c9210998eee95b1d8  gcc/testsuite/gcc.dg/Wfree-nonheap-object-7.c
! 0e3385327ea6f047857fb850694856e1  gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
  cb738b6ee3ce33cfd417ae097ee81f56  gcc/testsuite/gcc.dg/Wimplicit-fallthrough-1.c
  ae92a1d93725fe1a5989579c55f7c873  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-default.c
  b2f857eeba51813f44aa61785c849357  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-pedantic.c
--- 41861,41876 ----
  8d0791011fc11919d43bcce331d009ee  gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
  ef08bcadd8d487914acf2e600b7cdba9  gcc/testsuite/gcc.dg/Wframe-larger-than-3.c
  c0d5151a121a2bf7d609671e32fa7369  gcc/testsuite/gcc.dg/Wframe-larger-than.c
! d8b94e3a491981cae5612f578aafc1c6  gcc/testsuite/gcc.dg/Wfree-labels-1.c
! 7e5c2ada73ae4103317a9bf96599ffb1  gcc/testsuite/gcc.dg/Wfree-labels-2.c
! c1c5d32e6ce2c290b107066c3f6a2967  gcc/testsuite/gcc.dg/Wfree-labels-3.c
! 365f71571991e314eabd0f00666ccb6a  gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c
  e273443a6f4eccf5890b6c4d46998324  gcc/testsuite/gcc.dg/Wfree-nonheap-object-3.c
  1f871dc63d9bfee79601f4586343f709  gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c
  469e7b8c90d9b200ae40cccf77711ce5  gcc/testsuite/gcc.dg/Wfree-nonheap-object-5.c
  c19a454bcf29265915e365069507e42a  gcc/testsuite/gcc.dg/Wfree-nonheap-object-6.c
! bb4a35893662603238e7abc5960c29ba  gcc/testsuite/gcc.dg/Wfree-nonheap-object-7.c
! fe4ed699656be3ddc184ce9ba5f5dc5f  gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
  cb738b6ee3ce33cfd417ae097ee81f56  gcc/testsuite/gcc.dg/Wimplicit-fallthrough-1.c
  ae92a1d93725fe1a5989579c55f7c873  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-default.c
  b2f857eeba51813f44aa61785c849357  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-pedantic.c
*************** e1774554778a57412ba37170551b5a8e  gcc/te
*** 39610,39622 ****
  8cd6df9578986c904ce511ca2a3d537d  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-2.c
  63feb173084183c9ae42867951584c0e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-pedantic.c
  16bf62c6a496c59cc6209df1f9b18bc2  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99.c
! 674aab1d6c3ba0ee4b92140736e54a75  gcc/testsuite/gcc.dg/Wimplicit-int-1.c
! 79088f90d36e9f8455f25fe8704d6397  gcc/testsuite/gcc.dg/Wimplicit-int-1a.c
! ac1d198e2464fa90c280daa6cf4b9d41  gcc/testsuite/gcc.dg/Wimplicit-int-2.c
! 74aefd7d6111a48e8fd77ecaaf64feb0  gcc/testsuite/gcc.dg/Wimplicit-int-3.c
! 9b52a946fff2d8acef1ffba484b5e4cf  gcc/testsuite/gcc.dg/Wimplicit-int-4.c
! ce4d219563b9a733e8fc6c7ed439cad8  gcc/testsuite/gcc.dg/Wimplicit-int-4a.c
! 02fa446835e68b1fee242baf645a5191  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-1.c
  3504b1245c894f0af43c67b0873a7d62  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-2.c
  7b85da6a1ebcd5381457130257511192  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-3.c
  8ac9d5e2f90fa4fcad14a8008c98fb5e  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-4.c
--- 41878,41890 ----
  8cd6df9578986c904ce511ca2a3d537d  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-2.c
  63feb173084183c9ae42867951584c0e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-pedantic.c
  16bf62c6a496c59cc6209df1f9b18bc2  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99.c
! 62b226361b997bc12f796c8c89dd04ab  gcc/testsuite/gcc.dg/Wimplicit-int-1.c
! 77966db59ccc20124c5d884bc583eb8a  gcc/testsuite/gcc.dg/Wimplicit-int-1a.c
! 75d91f19f734f88ee1da5be17a4f0503  gcc/testsuite/gcc.dg/Wimplicit-int-2.c
! e507bf7a85a7e68ab8f43938c6512fa6  gcc/testsuite/gcc.dg/Wimplicit-int-3.c
! 8fef5ef16767a5627e6614063d5de756  gcc/testsuite/gcc.dg/Wimplicit-int-4.c
! 7110f6a4849b8a13c7467e667e92f6e0  gcc/testsuite/gcc.dg/Wimplicit-int-4a.c
! 4b7062222ef9cc3f3ddbf5900d099e9a  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-1.c
  3504b1245c894f0af43c67b0873a7d62  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-2.c
  7b85da6a1ebcd5381457130257511192  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-3.c
  8ac9d5e2f90fa4fcad14a8008c98fb5e  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-4.c
*************** a97f092c5509b2033f63d1931d689d9c  gcc/te
*** 39649,39654 ****
--- 41917,41925 ----
  153aab7b0e84ebd7b4f208653536d446  gcc/testsuite/gcc.dg/Wmissing-field-initializers-3.c
  7b242b0345ec0eeeffd2597e35af130b  gcc/testsuite/gcc.dg/Wmissing-field-initializers-4.c
  e029e709c13e38db907896dd09de24a0  gcc/testsuite/gcc.dg/Wmissing-field-initializers-5.c
+ 025bb4029f7fb2bcf4d19fd8cc828599  gcc/testsuite/gcc.dg/Wmissing-parameter-name-1.c
+ abbcba4c5d2305aa09c626f226cec5c5  gcc/testsuite/gcc.dg/Wmissing-parameter-name-2.c
+ 08b885c4f1d9d4056ec90c02845638b8  gcc/testsuite/gcc.dg/Wmissing-parameter-name-3.c
  63358b81808f25e51d2c7c98a25b748c  gcc/testsuite/gcc.dg/Wmissing-parameter-type-Wextra.c
  fe1b12514d94c73791e0a965cfc2a6ce  gcc/testsuite/gcc.dg/Wmissing-parameter-type-no.c
  d2ae1e4b2fef59498e152708d155c0ae  gcc/testsuite/gcc.dg/Wmissing-parameter-type.c
*************** f273410ff764324a50afef028667ebe5  gcc/te
*** 39661,39668 ****
  d45570f5347d0d2fceb2f46d5bb28195  gcc/testsuite/gcc.dg/Wno-c++-compat.c
  6e383e84d7ec6abc4d8c5e07b2ccde58  gcc/testsuite/gcc.dg/Wno-frame-address.c
  78b26e55f8111808885390fc48d39f07  gcc/testsuite/gcc.dg/Wno-pointer-sign.c
! 86e970a811686b96a8c946217879e0b6  gcc/testsuite/gcc.dg/Wnonnull-2.c
! 359b700d31704492b8af3694547fa2b7  gcc/testsuite/gcc.dg/Wnonnull-3.c
  a5d9b1cfc52a9ede3d7a6d4f1213c894  gcc/testsuite/gcc.dg/Wnonnull-4.c
  122d168a76610b5995ed8402529d4c4d  gcc/testsuite/gcc.dg/Wnonnull-5.c
  349ca7e23fb9ac66e9d5e90eeec2b9bc  gcc/testsuite/gcc.dg/Wnonnull-6.c
--- 41932,41939 ----
  d45570f5347d0d2fceb2f46d5bb28195  gcc/testsuite/gcc.dg/Wno-c++-compat.c
  6e383e84d7ec6abc4d8c5e07b2ccde58  gcc/testsuite/gcc.dg/Wno-frame-address.c
  78b26e55f8111808885390fc48d39f07  gcc/testsuite/gcc.dg/Wno-pointer-sign.c
! 6d95980aecdac8446d00e9214cde295b  gcc/testsuite/gcc.dg/Wnonnull-2.c
! 4c327d4422d95e3d9eae28144063cfe4  gcc/testsuite/gcc.dg/Wnonnull-3.c
  a5d9b1cfc52a9ede3d7a6d4f1213c894  gcc/testsuite/gcc.dg/Wnonnull-4.c
  122d168a76610b5995ed8402529d4c4d  gcc/testsuite/gcc.dg/Wnonnull-5.c
  349ca7e23fb9ac66e9d5e90eeec2b9bc  gcc/testsuite/gcc.dg/Wnonnull-6.c
*************** be349c0f6745f738b75eebe351eb5ce7  gcc/te
*** 39728,39736 ****
  96c634fc42f32d2a1dc101e8a5820792  gcc/testsuite/gcc.dg/Wrestrict-14.c
  edb85a6dc78ac1a3ce7b7783eff620d4  gcc/testsuite/gcc.dg/Wrestrict-15.c
  375f73dc8d1a814c402536f915fe15e0  gcc/testsuite/gcc.dg/Wrestrict-16.c
! 97e08088b69177fcbeb3c277becf5c53  gcc/testsuite/gcc.dg/Wrestrict-17.c
  cbcad025f9db9dd9bc691ef7d570b45a  gcc/testsuite/gcc.dg/Wrestrict-18.c
! 70ecf655c00694ff06c8f6c7a32a0162  gcc/testsuite/gcc.dg/Wrestrict-19.c
  7d01961948e81451fba10af184d093f0  gcc/testsuite/gcc.dg/Wrestrict-2.c
  43d30678ba33cddb6c841bf40dfdd00d  gcc/testsuite/gcc.dg/Wrestrict-20.c
  430fc6af8946de5e86d8f7257f6fd392  gcc/testsuite/gcc.dg/Wrestrict-21.c
--- 41999,42007 ----
  96c634fc42f32d2a1dc101e8a5820792  gcc/testsuite/gcc.dg/Wrestrict-14.c
  edb85a6dc78ac1a3ce7b7783eff620d4  gcc/testsuite/gcc.dg/Wrestrict-15.c
  375f73dc8d1a814c402536f915fe15e0  gcc/testsuite/gcc.dg/Wrestrict-16.c
! e3e6b8f5a8570c0e3ef3d19ecf22e2d9  gcc/testsuite/gcc.dg/Wrestrict-17.c
  cbcad025f9db9dd9bc691ef7d570b45a  gcc/testsuite/gcc.dg/Wrestrict-18.c
! facd33bdbd2cee4f31b1afdcb5902beb  gcc/testsuite/gcc.dg/Wrestrict-19.c
  7d01961948e81451fba10af184d093f0  gcc/testsuite/gcc.dg/Wrestrict-2.c
  43d30678ba33cddb6c841bf40dfdd00d  gcc/testsuite/gcc.dg/Wrestrict-20.c
  430fc6af8946de5e86d8f7257f6fd392  gcc/testsuite/gcc.dg/Wrestrict-21.c
*************** d52443fd255ba4011445ce61fb9d6e29  gcc/te
*** 39740,39770 ****
  ac1f8ff9be1acf21428383a159986b27  gcc/testsuite/gcc.dg/Wrestrict-25.c
  8650fb8e7b4b34475fe966856795bda4  gcc/testsuite/gcc.dg/Wrestrict-26.c
  8419743602ff50406cde80f5966c551d  gcc/testsuite/gcc.dg/Wrestrict-3.c
! f2eda54521742f896f2566e9eb58a04d  gcc/testsuite/gcc.dg/Wrestrict-4.c
! 7962e4d8ff558ef76441a3f9855c5bca  gcc/testsuite/gcc.dg/Wrestrict-5.c
  36417853230ae255ba34aed0d26d7ce9  gcc/testsuite/gcc.dg/Wrestrict-6.c
  fe0626428135706f333c543b692a92d1  gcc/testsuite/gcc.dg/Wrestrict-7.c
  6bb8b2cd496b8f89601290a8c4df6b12  gcc/testsuite/gcc.dg/Wrestrict-8.c
  cea920b3a29300c471794198f93fc0a4  gcc/testsuite/gcc.dg/Wrestrict-9.c
! 700e83815b3577c72420082462c3b61b  gcc/testsuite/gcc.dg/Wrestrict.c
  a03f514f500af8001574fcd81565c4f3  gcc/testsuite/gcc.dg/Wreturn-local-addr-10.c
! 558cdcfdbcea2e951ca16bb9dc822999  gcc/testsuite/gcc.dg/Wreturn-local-addr-2.c
! ba93ea27d2cd79e4a77d24e7eb571ed7  gcc/testsuite/gcc.dg/Wreturn-local-addr-3.c
! 448c664bb6cb77859bafe80c20d85ff8  gcc/testsuite/gcc.dg/Wreturn-local-addr-4.c
  7c92cb5dc7fd32304a6c5b0aa3389f7e  gcc/testsuite/gcc.dg/Wreturn-local-addr-5.c
! a0209913132e94c550d86d3ec5c6a0d1  gcc/testsuite/gcc.dg/Wreturn-local-addr-6.c
  fa730b9c27f8bb9bf2ffba2e5f5eb6b3  gcc/testsuite/gcc.dg/Wreturn-local-addr-7.c
  5abe9ee55436dc7786de8e7b8e103f35  gcc/testsuite/gcc.dg/Wreturn-local-addr-8.c
  1710ae940d1c034fe8d203bc32766332  gcc/testsuite/gcc.dg/Wreturn-local-addr-9.c
  273fe6c85c6f362c0ae3de1a2bf4755f  gcc/testsuite/gcc.dg/Wreturn-local-addr.c
  3db3d23177caeb428024e79f3ea0c249  gcc/testsuite/gcc.dg/Wreturn-mismatch-1.c
  fc2c3f694bc06efbd1718e0e1906cf5d  gcc/testsuite/gcc.dg/Wreturn-mismatch-1a.c
! 5a252e831f7669fc74da96b02e280ca6  gcc/testsuite/gcc.dg/Wreturn-mismatch-2.c
! b06394273fd4367158e7dea544a8766d  gcc/testsuite/gcc.dg/Wreturn-mismatch-2a.c
  b4cc34b145ee2695a25e012a95c4991b  gcc/testsuite/gcc.dg/Wreturn-mismatch-3.c
  617d532fb1eddbd793d9f4f0f742e63c  gcc/testsuite/gcc.dg/Wreturn-mismatch-4.c
  7aa7c48f8cb83fb4ebee162da3c9b985  gcc/testsuite/gcc.dg/Wreturn-mismatch-5.c
! 3cbacea3635ebeb02fee33cba4d8290e  gcc/testsuite/gcc.dg/Wreturn-mismatch-6.c
  6fe9a73749a8da4ecb255e790a1cc26f  gcc/testsuite/gcc.dg/Wreturn-type.c
  13346214a933b039e18e4797462ec5c7  gcc/testsuite/gcc.dg/Wreturn-type2.c
  1566816b16d321a8375c1a99ca768245  gcc/testsuite/gcc.dg/Wreturn-type3.c
--- 42011,42041 ----
  ac1f8ff9be1acf21428383a159986b27  gcc/testsuite/gcc.dg/Wrestrict-25.c
  8650fb8e7b4b34475fe966856795bda4  gcc/testsuite/gcc.dg/Wrestrict-26.c
  8419743602ff50406cde80f5966c551d  gcc/testsuite/gcc.dg/Wrestrict-3.c
! 44be6232ed8a8d2cff63c586896de7c3  gcc/testsuite/gcc.dg/Wrestrict-4.c
! 0144a793237861a98d341d7d0a3254c7  gcc/testsuite/gcc.dg/Wrestrict-5.c
  36417853230ae255ba34aed0d26d7ce9  gcc/testsuite/gcc.dg/Wrestrict-6.c
  fe0626428135706f333c543b692a92d1  gcc/testsuite/gcc.dg/Wrestrict-7.c
  6bb8b2cd496b8f89601290a8c4df6b12  gcc/testsuite/gcc.dg/Wrestrict-8.c
  cea920b3a29300c471794198f93fc0a4  gcc/testsuite/gcc.dg/Wrestrict-9.c
! 688538042a01164e277436b5c3d536e2  gcc/testsuite/gcc.dg/Wrestrict.c
  a03f514f500af8001574fcd81565c4f3  gcc/testsuite/gcc.dg/Wreturn-local-addr-10.c
! a930dfc9679e654bd31bd4321b2dc728  gcc/testsuite/gcc.dg/Wreturn-local-addr-2.c
! 6ed12063a65902ff8f5eab321628ddc8  gcc/testsuite/gcc.dg/Wreturn-local-addr-3.c
! 622525bc9beb11b0683de98635e99f3d  gcc/testsuite/gcc.dg/Wreturn-local-addr-4.c
  7c92cb5dc7fd32304a6c5b0aa3389f7e  gcc/testsuite/gcc.dg/Wreturn-local-addr-5.c
! d95ad8c1dd5967bdc9c5dddf2ced088f  gcc/testsuite/gcc.dg/Wreturn-local-addr-6.c
  fa730b9c27f8bb9bf2ffba2e5f5eb6b3  gcc/testsuite/gcc.dg/Wreturn-local-addr-7.c
  5abe9ee55436dc7786de8e7b8e103f35  gcc/testsuite/gcc.dg/Wreturn-local-addr-8.c
  1710ae940d1c034fe8d203bc32766332  gcc/testsuite/gcc.dg/Wreturn-local-addr-9.c
  273fe6c85c6f362c0ae3de1a2bf4755f  gcc/testsuite/gcc.dg/Wreturn-local-addr.c
  3db3d23177caeb428024e79f3ea0c249  gcc/testsuite/gcc.dg/Wreturn-mismatch-1.c
  fc2c3f694bc06efbd1718e0e1906cf5d  gcc/testsuite/gcc.dg/Wreturn-mismatch-1a.c
! 3e237d79f5bc93bd6ee708afe3efa052  gcc/testsuite/gcc.dg/Wreturn-mismatch-2.c
! 727bf01c2d6faad666c5211f586df645  gcc/testsuite/gcc.dg/Wreturn-mismatch-2a.c
  b4cc34b145ee2695a25e012a95c4991b  gcc/testsuite/gcc.dg/Wreturn-mismatch-3.c
  617d532fb1eddbd793d9f4f0f742e63c  gcc/testsuite/gcc.dg/Wreturn-mismatch-4.c
  7aa7c48f8cb83fb4ebee162da3c9b985  gcc/testsuite/gcc.dg/Wreturn-mismatch-5.c
! efccecaeed935b96702d1ddfa3df8c13  gcc/testsuite/gcc.dg/Wreturn-mismatch-6.c
  6fe9a73749a8da4ecb255e790a1cc26f  gcc/testsuite/gcc.dg/Wreturn-type.c
  13346214a933b039e18e4797462ec5c7  gcc/testsuite/gcc.dg/Wreturn-type2.c
  1566816b16d321a8375c1a99ca768245  gcc/testsuite/gcc.dg/Wreturn-type3.c
*************** cc7f39c7e255ea356ff676dbdce55538  gcc/te
*** 39780,39787 ****
  c12d0314b764a8bf5274d839b36d0546  gcc/testsuite/gcc.dg/Wshadow-local-3.c
  cf54ea7bbdd51f8c8836196a2245b7a3  gcc/testsuite/gcc.dg/Wsign-compare-1.c
  237f1b26e4102299eec1e1bba599997e  gcc/testsuite/gcc.dg/Wsign-conversion.c
! 76d5ef4f4368a8a8e196627028eff45e  gcc/testsuite/gcc.dg/Wsizeof-pointer-memaccess1.c
! 598e33a7a2676c8ca6803c6d453487ea  gcc/testsuite/gcc.dg/Wstack-usage.c
  3a7ae7960ae82ab1685a31948e9dec07  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-const-ptr-nonconst-ptr.c
  9016254766f4f60f27ba7db959765253  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-never-dereferenced.c
  11133e767498d2c300e770ea51fbecd5  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c
--- 42051,42058 ----
  c12d0314b764a8bf5274d839b36d0546  gcc/testsuite/gcc.dg/Wshadow-local-3.c
  cf54ea7bbdd51f8c8836196a2245b7a3  gcc/testsuite/gcc.dg/Wsign-compare-1.c
  237f1b26e4102299eec1e1bba599997e  gcc/testsuite/gcc.dg/Wsign-conversion.c
! 7646f3dc3a92fdf1256b7ee0c6800b30  gcc/testsuite/gcc.dg/Wsizeof-pointer-memaccess1.c
! d0d0077384ea3d376bc5c7ec94859407  gcc/testsuite/gcc.dg/Wstack-usage.c
  3a7ae7960ae82ab1685a31948e9dec07  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-const-ptr-nonconst-ptr.c
  9016254766f4f60f27ba7db959765253  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-never-dereferenced.c
  11133e767498d2c300e770ea51fbecd5  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-pta-1.c
*************** eb6f77cdcf6feacc5a799af27c78f878  gcc/te
*** 39789,39795 ****
  d0997c5fed01cd2efc214b96c6556a71  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all.c
  3ac29da988040023b0dafa874e9983d2  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-struct-included.c
  a720e12b1f8a73dbb4efab1524044f53  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-upcast.c
! e4fa08748fb198fefd089310c5cc45b3  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
  3eb7b891e18663975849bd38a63be2b8  gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c
  96b75b2ab89861b0b841292bd711f135  gcc/testsuite/gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c
  f84a62b2c04fd0a9824305fdbf33ca9a  gcc/testsuite/gcc.dg/Wstrict-aliasing-struct-with-char-member.c
--- 42060,42066 ----
  d0997c5fed01cd2efc214b96c6556a71  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all.c
  3ac29da988040023b0dafa874e9983d2  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-struct-included.c
  a720e12b1f8a73dbb4efab1524044f53  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-upcast.c
! 1545ca240f4614ac8a8de951fe61aacf  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
  3eb7b891e18663975849bd38a63be2b8  gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c
  96b75b2ab89861b0b841292bd711f135  gcc/testsuite/gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c
  f84a62b2c04fd0a9824305fdbf33ca9a  gcc/testsuite/gcc.dg/Wstrict-aliasing-struct-with-char-member.c
*************** d073c2038b51bc8c9fff723efab10eaa  gcc/te
*** 39808,39821 ****
  534fab5c92abaf3acf41c21b886e30d2  gcc/testsuite/gcc.dg/Wstrict-overflow-18.c
  b52d121e1316dbd9e52693b569b05bc6  gcc/testsuite/gcc.dg/Wstrict-overflow-19.c
  9391f3a448b1237ff2144b2525ab77a0  gcc/testsuite/gcc.dg/Wstrict-overflow-2.c
! b4fa8ef0543e57cfa53079c5788efd7b  gcc/testsuite/gcc.dg/Wstrict-overflow-20.c
  167ebb1c270e158c31f713ca1543922e  gcc/testsuite/gcc.dg/Wstrict-overflow-21.c
  c6b34215adb77d2d1d506195471e2c42  gcc/testsuite/gcc.dg/Wstrict-overflow-22.c
  bfc663ffe6e57f766fa3d5ea61094f45  gcc/testsuite/gcc.dg/Wstrict-overflow-23.c
  3b6ef5e52e800d297a469573a036037e  gcc/testsuite/gcc.dg/Wstrict-overflow-24.c
  1183e3a61062495f2a2c7d53c3304fc4  gcc/testsuite/gcc.dg/Wstrict-overflow-25.c
  2ae95adea145503dd29f9ab2e813f13e  gcc/testsuite/gcc.dg/Wstrict-overflow-26.c
! a06e16e230ac019477b77494aeb0fec0  gcc/testsuite/gcc.dg/Wstrict-overflow-27.c
  bb2099f1da2a18a8306bbf5e15b7e411  gcc/testsuite/gcc.dg/Wstrict-overflow-3.c
  43d27c6b3c5f95da1becd819eb01bc7c  gcc/testsuite/gcc.dg/Wstrict-overflow-4.c
  9ca3aae585d863804dc429242e24bdea  gcc/testsuite/gcc.dg/Wstrict-overflow-5.c
--- 42079,42092 ----
  534fab5c92abaf3acf41c21b886e30d2  gcc/testsuite/gcc.dg/Wstrict-overflow-18.c
  b52d121e1316dbd9e52693b569b05bc6  gcc/testsuite/gcc.dg/Wstrict-overflow-19.c
  9391f3a448b1237ff2144b2525ab77a0  gcc/testsuite/gcc.dg/Wstrict-overflow-2.c
! ee8039d5d07f67c24878cd6c0c5c5feb  gcc/testsuite/gcc.dg/Wstrict-overflow-20.c
  167ebb1c270e158c31f713ca1543922e  gcc/testsuite/gcc.dg/Wstrict-overflow-21.c
  c6b34215adb77d2d1d506195471e2c42  gcc/testsuite/gcc.dg/Wstrict-overflow-22.c
  bfc663ffe6e57f766fa3d5ea61094f45  gcc/testsuite/gcc.dg/Wstrict-overflow-23.c
  3b6ef5e52e800d297a469573a036037e  gcc/testsuite/gcc.dg/Wstrict-overflow-24.c
  1183e3a61062495f2a2c7d53c3304fc4  gcc/testsuite/gcc.dg/Wstrict-overflow-25.c
  2ae95adea145503dd29f9ab2e813f13e  gcc/testsuite/gcc.dg/Wstrict-overflow-26.c
! 1e3318a6af245b949f1c505b7e8b1ab4  gcc/testsuite/gcc.dg/Wstrict-overflow-27.c
  bb2099f1da2a18a8306bbf5e15b7e411  gcc/testsuite/gcc.dg/Wstrict-overflow-3.c
  43d27c6b3c5f95da1becd819eb01bc7c  gcc/testsuite/gcc.dg/Wstrict-overflow-4.c
  9ca3aae585d863804dc429242e24bdea  gcc/testsuite/gcc.dg/Wstrict-overflow-5.c
*************** b2ac295c001e28b6659dd1cbaecfc2a9  gcc/te
*** 39830,39842 ****
  c608f5d02a06d2e24d8ab0ca0d977f67  gcc/testsuite/gcc.dg/Wstring-literal-comparison-2.c
  a0b497dc1f8dc8ce49f81bc391f0deb1  gcc/testsuite/gcc.dg/Wstring-literal-comparison-3.c
  839fdbb04e93708d893f0f0e3f961ef5  gcc/testsuite/gcc.dg/Wstring-literal-comparison-4.c
! 633e342b1f1848dfffdc4e7671a9e67d  gcc/testsuite/gcc.dg/Wstringop-overflow-10.c
  d4ebbcbb33a270d753f43e4012923260  gcc/testsuite/gcc.dg/Wstringop-overflow-11.c
  706f9847f02771a60abbc137daf8355c  gcc/testsuite/gcc.dg/Wstringop-overflow-12.c
! 0dad25eefbadf96fb8f6f363c5c14619  gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
  0179c40004be5b59c9a4f748ff9661b6  gcc/testsuite/gcc.dg/Wstringop-overflow-14-novec.c
  186ad80a8f095556d07bc00e83284cde  gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
! 188155d1d6f3e8cc47dbcf006992cf66  gcc/testsuite/gcc.dg/Wstringop-overflow-15.c
  e2fac449ae832c81aae5b9abe7514224  gcc/testsuite/gcc.dg/Wstringop-overflow-16.c
  d366ca5d83db48731bafe29064edaa87  gcc/testsuite/gcc.dg/Wstringop-overflow-17.c
  0a51125b45f5bb7eef06d222d474237a  gcc/testsuite/gcc.dg/Wstringop-overflow-18.c
--- 42101,42113 ----
  c608f5d02a06d2e24d8ab0ca0d977f67  gcc/testsuite/gcc.dg/Wstring-literal-comparison-2.c
  a0b497dc1f8dc8ce49f81bc391f0deb1  gcc/testsuite/gcc.dg/Wstring-literal-comparison-3.c
  839fdbb04e93708d893f0f0e3f961ef5  gcc/testsuite/gcc.dg/Wstring-literal-comparison-4.c
! 123f7522fa33c06f0d09d3693659feef  gcc/testsuite/gcc.dg/Wstringop-overflow-10.c
  d4ebbcbb33a270d753f43e4012923260  gcc/testsuite/gcc.dg/Wstringop-overflow-11.c
  706f9847f02771a60abbc137daf8355c  gcc/testsuite/gcc.dg/Wstringop-overflow-12.c
! 8f7a16ccc0ac239de0dbfd95d5a15ab2  gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
  0179c40004be5b59c9a4f748ff9661b6  gcc/testsuite/gcc.dg/Wstringop-overflow-14-novec.c
  186ad80a8f095556d07bc00e83284cde  gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
! b8c5bc322dcac7c604f6bbcd22c3a6bd  gcc/testsuite/gcc.dg/Wstringop-overflow-15.c
  e2fac449ae832c81aae5b9abe7514224  gcc/testsuite/gcc.dg/Wstringop-overflow-16.c
  d366ca5d83db48731bafe29064edaa87  gcc/testsuite/gcc.dg/Wstringop-overflow-17.c
  0a51125b45f5bb7eef06d222d474237a  gcc/testsuite/gcc.dg/Wstringop-overflow-18.c
*************** af4e5809f9266e2fb666c9460e41953b  gcc/te
*** 39846,39859 ****
  921a284bdb6779ad1d578d5c39075d94  gcc/testsuite/gcc.dg/Wstringop-overflow-21-novec.c
  28c96f106316d71c7dd5095af52b221b  gcc/testsuite/gcc.dg/Wstringop-overflow-21.c
  d00eef9d0aed77761b640addfc8fd749  gcc/testsuite/gcc.dg/Wstringop-overflow-22.c
! 1f59494ebaecbe071a2c01d2905e2063  gcc/testsuite/gcc.dg/Wstringop-overflow-23.c
  c5b2dc2356fd5ccabe71e439d6ef62df  gcc/testsuite/gcc.dg/Wstringop-overflow-24.c
! b3c7a2a93013311f2a1426d17d94074d  gcc/testsuite/gcc.dg/Wstringop-overflow-25.c
  a12f3d3cadf20e360082b45e4281ddf9  gcc/testsuite/gcc.dg/Wstringop-overflow-26.c
! d75556624422f599c13c9d1a65bd84fb  gcc/testsuite/gcc.dg/Wstringop-overflow-27.c
  bdc5f8ac56024c46170185bd122c67f5  gcc/testsuite/gcc.dg/Wstringop-overflow-28.c
  d66169d9c9200a12f5a885f937a1f21c  gcc/testsuite/gcc.dg/Wstringop-overflow-29.c
! 5d48ea7df70ba4f96d66951fae7159f6  gcc/testsuite/gcc.dg/Wstringop-overflow-3.c
  7c84e0c01a5c5e3d3007bf94ba654a0f  gcc/testsuite/gcc.dg/Wstringop-overflow-30.c
  cc8e118f33fe820b55d7576cd6e8fb7d  gcc/testsuite/gcc.dg/Wstringop-overflow-31.c
  668a5a1b6231cf303a907b7876c1f9af  gcc/testsuite/gcc.dg/Wstringop-overflow-32.c
--- 42117,42130 ----
  921a284bdb6779ad1d578d5c39075d94  gcc/testsuite/gcc.dg/Wstringop-overflow-21-novec.c
  28c96f106316d71c7dd5095af52b221b  gcc/testsuite/gcc.dg/Wstringop-overflow-21.c
  d00eef9d0aed77761b640addfc8fd749  gcc/testsuite/gcc.dg/Wstringop-overflow-22.c
! ebcff349b33d9402b9e39b41d61f3bbc  gcc/testsuite/gcc.dg/Wstringop-overflow-23.c
  c5b2dc2356fd5ccabe71e439d6ef62df  gcc/testsuite/gcc.dg/Wstringop-overflow-24.c
! 49889cdfe24a6e86dbe04e2d7fd2c8af  gcc/testsuite/gcc.dg/Wstringop-overflow-25.c
  a12f3d3cadf20e360082b45e4281ddf9  gcc/testsuite/gcc.dg/Wstringop-overflow-26.c
! 9ee3a8f2322afd7d2add18255ebfcd05  gcc/testsuite/gcc.dg/Wstringop-overflow-27.c
  bdc5f8ac56024c46170185bd122c67f5  gcc/testsuite/gcc.dg/Wstringop-overflow-28.c
  d66169d9c9200a12f5a885f937a1f21c  gcc/testsuite/gcc.dg/Wstringop-overflow-29.c
! c4197ff3d2ca30f9ebcf31c3bb9930e6  gcc/testsuite/gcc.dg/Wstringop-overflow-3.c
  7c84e0c01a5c5e3d3007bf94ba654a0f  gcc/testsuite/gcc.dg/Wstringop-overflow-30.c
  cc8e118f33fe820b55d7576cd6e8fb7d  gcc/testsuite/gcc.dg/Wstringop-overflow-31.c
  668a5a1b6231cf303a907b7876c1f9af  gcc/testsuite/gcc.dg/Wstringop-overflow-32.c
*************** cc8e118f33fe820b55d7576cd6e8fb7d  gcc/te
*** 39863,39869 ****
  5716c2c5f024632a181daf9fa118beda  gcc/testsuite/gcc.dg/Wstringop-overflow-36.c
  a9379e3d73fc65bf48db2f440d0394fb  gcc/testsuite/gcc.dg/Wstringop-overflow-37.c
  e75c1027bb0b8f2c2697b6cee86bfd67  gcc/testsuite/gcc.dg/Wstringop-overflow-38.c
! ba118a95c99308209283d1459a41d71c  gcc/testsuite/gcc.dg/Wstringop-overflow-39.c
  975f320b4cadb606592c196f32d08f02  gcc/testsuite/gcc.dg/Wstringop-overflow-4.c
  8182dad90dacc6c637bf4dd3472dfc48  gcc/testsuite/gcc.dg/Wstringop-overflow-40.c
  f5a92a0de23b213fa01a61cf7fe1ae34  gcc/testsuite/gcc.dg/Wstringop-overflow-41.c
--- 42134,42140 ----
  5716c2c5f024632a181daf9fa118beda  gcc/testsuite/gcc.dg/Wstringop-overflow-36.c
  a9379e3d73fc65bf48db2f440d0394fb  gcc/testsuite/gcc.dg/Wstringop-overflow-37.c
  e75c1027bb0b8f2c2697b6cee86bfd67  gcc/testsuite/gcc.dg/Wstringop-overflow-38.c
! d31deb61936f6fe1c5624f71b26c9859  gcc/testsuite/gcc.dg/Wstringop-overflow-39.c
  975f320b4cadb606592c196f32d08f02  gcc/testsuite/gcc.dg/Wstringop-overflow-4.c
  8182dad90dacc6c637bf4dd3472dfc48  gcc/testsuite/gcc.dg/Wstringop-overflow-40.c
  f5a92a0de23b213fa01a61cf7fe1ae34  gcc/testsuite/gcc.dg/Wstringop-overflow-41.c
*************** f5a92a0de23b213fa01a61cf7fe1ae34  gcc/te
*** 39872,39878 ****
  855fbbdc3d5be4f2d0684e44e4fec515  gcc/testsuite/gcc.dg/Wstringop-overflow-44.c
  d4f0d56a7c087ab9e26e9e5b226957e0  gcc/testsuite/gcc.dg/Wstringop-overflow-45.c
  c491d7d16a5eccfc3aa26cb9789fb97e  gcc/testsuite/gcc.dg/Wstringop-overflow-46.c
! 95eada244d6386991197fa4a5056ebf9  gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
  e47b31031fbcddf0625b2f4928216e92  gcc/testsuite/gcc.dg/Wstringop-overflow-49.c
  b6e551c9441e53cd1be6e84faec996ed  gcc/testsuite/gcc.dg/Wstringop-overflow-5.c
  8f7f0322c20d1913c505cfa93fc16056  gcc/testsuite/gcc.dg/Wstringop-overflow-50.c
--- 42143,42149 ----
  855fbbdc3d5be4f2d0684e44e4fec515  gcc/testsuite/gcc.dg/Wstringop-overflow-44.c
  d4f0d56a7c087ab9e26e9e5b226957e0  gcc/testsuite/gcc.dg/Wstringop-overflow-45.c
  c491d7d16a5eccfc3aa26cb9789fb97e  gcc/testsuite/gcc.dg/Wstringop-overflow-46.c
! 5f6864c29b96decf9d7d12324b2d6be0  gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
  e47b31031fbcddf0625b2f4928216e92  gcc/testsuite/gcc.dg/Wstringop-overflow-49.c
  b6e551c9441e53cd1be6e84faec996ed  gcc/testsuite/gcc.dg/Wstringop-overflow-5.c
  8f7f0322c20d1913c505cfa93fc16056  gcc/testsuite/gcc.dg/Wstringop-overflow-50.c
*************** c815b2efdf55c4de505762685ef71bc5  gcc/te
*** 39881,39890 ****
  3b40f9fa6398b4ac96d54b52985854c7  gcc/testsuite/gcc.dg/Wstringop-overflow-53.c
  0f7f0c6fd8115112808853d1769b2b23  gcc/testsuite/gcc.dg/Wstringop-overflow-54.c
  d6150f5ba1aef3514d38e7a5a01653ad  gcc/testsuite/gcc.dg/Wstringop-overflow-55.c
! 905be5d529064227d2e09ad10a38f398  gcc/testsuite/gcc.dg/Wstringop-overflow-56.c
! 840970aec727bc77fadcd0bad194a8a0  gcc/testsuite/gcc.dg/Wstringop-overflow-57.c
  def8fa5a7aa6b0a519559905119bf281  gcc/testsuite/gcc.dg/Wstringop-overflow-58.c
! 22613036e156958906f37596c26645e1  gcc/testsuite/gcc.dg/Wstringop-overflow-59.c
  3ed0228ee42fdeeee600954a398a1234  gcc/testsuite/gcc.dg/Wstringop-overflow-6.c
  7bbffc672c74ca8a522c2041f9deb5ee  gcc/testsuite/gcc.dg/Wstringop-overflow-60.c
  6939fabd511eb9944599e0b4a108d8a0  gcc/testsuite/gcc.dg/Wstringop-overflow-61.c
--- 42152,42161 ----
  3b40f9fa6398b4ac96d54b52985854c7  gcc/testsuite/gcc.dg/Wstringop-overflow-53.c
  0f7f0c6fd8115112808853d1769b2b23  gcc/testsuite/gcc.dg/Wstringop-overflow-54.c
  d6150f5ba1aef3514d38e7a5a01653ad  gcc/testsuite/gcc.dg/Wstringop-overflow-55.c
! 69fe355ae220e5f0eb451b036a3e7945  gcc/testsuite/gcc.dg/Wstringop-overflow-56.c
! c3428e5083743bc319eaa32eaa6d9a6a  gcc/testsuite/gcc.dg/Wstringop-overflow-57.c
  def8fa5a7aa6b0a519559905119bf281  gcc/testsuite/gcc.dg/Wstringop-overflow-58.c
! abb9d405f9f542e5a1d19378a6407392  gcc/testsuite/gcc.dg/Wstringop-overflow-59.c
  3ed0228ee42fdeeee600954a398a1234  gcc/testsuite/gcc.dg/Wstringop-overflow-6.c
  7bbffc672c74ca8a522c2041f9deb5ee  gcc/testsuite/gcc.dg/Wstringop-overflow-60.c
  6939fabd511eb9944599e0b4a108d8a0  gcc/testsuite/gcc.dg/Wstringop-overflow-61.c
*************** ef583556aa2b7f02fad61624a0a3f35d  gcc/te
*** 39893,39904 ****
  ca15ac122386ace1c5f64e5fc3ed9352  gcc/testsuite/gcc.dg/Wstringop-overflow-64.c
  ba09b89eacd1a1f030c52761621d27c3  gcc/testsuite/gcc.dg/Wstringop-overflow-65.c
  a8fd1d734e0d0078a564b6c6951f3f06  gcc/testsuite/gcc.dg/Wstringop-overflow-66.c
! f8d04ac3706f96af6c35deaaed75b392  gcc/testsuite/gcc.dg/Wstringop-overflow-67.c
  4069be3dcec9446339f381f22f938667  gcc/testsuite/gcc.dg/Wstringop-overflow-68.c
  636cb80b9a0d85ca751860a46b67e5bc  gcc/testsuite/gcc.dg/Wstringop-overflow-69.c
  11b9e3955ab46194825fbf5d88ba5648  gcc/testsuite/gcc.dg/Wstringop-overflow-7.c
  bbb13453f29603d2c3faec7a3eb4e8fd  gcc/testsuite/gcc.dg/Wstringop-overflow-70.c
! e3d97a6508f4d604d5441795f29782a1  gcc/testsuite/gcc.dg/Wstringop-overflow-71.c
  098d5d40b31a6f640a37dfafc9993954  gcc/testsuite/gcc.dg/Wstringop-overflow-72.c
  14383b1a9ab3a03c52886c4a40773d53  gcc/testsuite/gcc.dg/Wstringop-overflow-73.c
  b0f972d926e2d6705f2ea47fe4b1bd7b  gcc/testsuite/gcc.dg/Wstringop-overflow-74.c
--- 42164,42175 ----
  ca15ac122386ace1c5f64e5fc3ed9352  gcc/testsuite/gcc.dg/Wstringop-overflow-64.c
  ba09b89eacd1a1f030c52761621d27c3  gcc/testsuite/gcc.dg/Wstringop-overflow-65.c
  a8fd1d734e0d0078a564b6c6951f3f06  gcc/testsuite/gcc.dg/Wstringop-overflow-66.c
! 5b4c7639060680dc33aa26bde46c220b  gcc/testsuite/gcc.dg/Wstringop-overflow-67.c
  4069be3dcec9446339f381f22f938667  gcc/testsuite/gcc.dg/Wstringop-overflow-68.c
  636cb80b9a0d85ca751860a46b67e5bc  gcc/testsuite/gcc.dg/Wstringop-overflow-69.c
  11b9e3955ab46194825fbf5d88ba5648  gcc/testsuite/gcc.dg/Wstringop-overflow-7.c
  bbb13453f29603d2c3faec7a3eb4e8fd  gcc/testsuite/gcc.dg/Wstringop-overflow-70.c
! 94fb93413e6910767837fff6dd4e9e5b  gcc/testsuite/gcc.dg/Wstringop-overflow-71.c
  098d5d40b31a6f640a37dfafc9993954  gcc/testsuite/gcc.dg/Wstringop-overflow-72.c
  14383b1a9ab3a03c52886c4a40773d53  gcc/testsuite/gcc.dg/Wstringop-overflow-73.c
  b0f972d926e2d6705f2ea47fe4b1bd7b  gcc/testsuite/gcc.dg/Wstringop-overflow-74.c
*************** e6ffe67eda73c279da81f2954d29f8b8  gcc/te
*** 39907,39915 ****
  8b9ee3f9b5ed6110014ee270714b2b8b  gcc/testsuite/gcc.dg/Wstringop-overflow-76.c
  03a0b9ce98ddbe5e0acbb8161687a53f  gcc/testsuite/gcc.dg/Wstringop-overflow-77.c
  c5c975f39605e4a85aa40a031219c01d  gcc/testsuite/gcc.dg/Wstringop-overflow-78.c
! 0cba250ab4526ce5b454dda455c90a6a  gcc/testsuite/gcc.dg/Wstringop-overflow-79.c
  739ccb86ac13fef9cbd1d60df950a4b5  gcc/testsuite/gcc.dg/Wstringop-overflow-8.c
! de67b32c723a15710d834418c5cd7e3f  gcc/testsuite/gcc.dg/Wstringop-overflow-80.c
  da2a9adabc979c4b3274e86fe4a6b9cf  gcc/testsuite/gcc.dg/Wstringop-overflow-81.c
  4d6b890161ef28d985439a82be4ea78b  gcc/testsuite/gcc.dg/Wstringop-overflow-82.c
  3cdf77bf40b7e45ac8eea773999e5b9b  gcc/testsuite/gcc.dg/Wstringop-overflow-83.c
--- 42178,42186 ----
  8b9ee3f9b5ed6110014ee270714b2b8b  gcc/testsuite/gcc.dg/Wstringop-overflow-76.c
  03a0b9ce98ddbe5e0acbb8161687a53f  gcc/testsuite/gcc.dg/Wstringop-overflow-77.c
  c5c975f39605e4a85aa40a031219c01d  gcc/testsuite/gcc.dg/Wstringop-overflow-78.c
! 24037a8c4c50c619df691256105d123f  gcc/testsuite/gcc.dg/Wstringop-overflow-79.c
  739ccb86ac13fef9cbd1d60df950a4b5  gcc/testsuite/gcc.dg/Wstringop-overflow-8.c
! c2ab377b6d68ca665911606aa5ccf790  gcc/testsuite/gcc.dg/Wstringop-overflow-80.c
  da2a9adabc979c4b3274e86fe4a6b9cf  gcc/testsuite/gcc.dg/Wstringop-overflow-81.c
  4d6b890161ef28d985439a82be4ea78b  gcc/testsuite/gcc.dg/Wstringop-overflow-82.c
  3cdf77bf40b7e45ac8eea773999e5b9b  gcc/testsuite/gcc.dg/Wstringop-overflow-83.c
*************** ce1a42317ef0bc7599074fc1fe734a77  gcc/te
*** 39929,39935 ****
  2a60502d5e73aa4d4f7ef9b994688f46  gcc/testsuite/gcc.dg/Wstringop-overread-6.c
  e75257ba3bef975cc6ef932c937358fd  gcc/testsuite/gcc.dg/Wstringop-overread.c
  77f8b46e5b817f35a15c273b28d5ea1d  gcc/testsuite/gcc.dg/Wstringop-truncation-2.c
! 123dc9f0fa7c858d0a700362851787d2  gcc/testsuite/gcc.dg/Wstringop-truncation-3.c
  ac58f2a58734d632defb053d4fc5cd8d  gcc/testsuite/gcc.dg/Wstringop-truncation-4.c
  d340fb2bff4bae993fdc64a768dad9a1  gcc/testsuite/gcc.dg/Wstringop-truncation-5.c
  3c1253e8229d27969906a7fa1ae6cdb1  gcc/testsuite/gcc.dg/Wstringop-truncation-6.c
--- 42200,42206 ----
  2a60502d5e73aa4d4f7ef9b994688f46  gcc/testsuite/gcc.dg/Wstringop-overread-6.c
  e75257ba3bef975cc6ef932c937358fd  gcc/testsuite/gcc.dg/Wstringop-overread.c
  77f8b46e5b817f35a15c273b28d5ea1d  gcc/testsuite/gcc.dg/Wstringop-truncation-2.c
! f17cfc88b2749d484122a6e960a5414b  gcc/testsuite/gcc.dg/Wstringop-truncation-3.c
  ac58f2a58734d632defb053d4fc5cd8d  gcc/testsuite/gcc.dg/Wstringop-truncation-4.c
  d340fb2bff4bae993fdc64a768dad9a1  gcc/testsuite/gcc.dg/Wstringop-truncation-5.c
  3c1253e8229d27969906a7fa1ae6cdb1  gcc/testsuite/gcc.dg/Wstringop-truncation-6.c
*************** d0cf5da873f60ffed04db27addaddbc2  gcc/te
*** 39956,39961 ****
--- 42227,42234 ----
  699eed729600169487107a0dd08366fe  gcc/testsuite/gcc.dg/Wtype-limits2.c
  211ba6d855caf3581533e541e32864dc  gcc/testsuite/gcc.dg/Wunknownprag.c
  65fc7f97926a779cfa732a95ca3629e4  gcc/testsuite/gcc.dg/Wunsuffixed-float-constants-1.c
+ 48f1489927bd6348be930a14de4bda62  gcc/testsuite/gcc.dg/Wunterminated-string-initialization-2.c
+ 40cafc0de3d5eb84eb2b7741704ac896  gcc/testsuite/gcc.dg/Wunterminated-string-initialization.c
  b253477a3902ebd779d9157f874209db  gcc/testsuite/gcc.dg/Wunused-function.c
  a26163cac9d2b7f9af5ad4374cec57b0  gcc/testsuite/gcc.dg/Wunused-label-1.c
  4a11600660260a54a1edb6ab26868a8d  gcc/testsuite/gcc.dg/Wunused-local-typedefs.c
*************** e84c031d0cb7a11693c4b37f0142bded  gcc/te
*** 39972,39978 ****
  6a41e2bb8df7e9d9c2dc7b7aa9fa559f  gcc/testsuite/gcc.dg/Wunused-var-6.c
  e069e831ec812b42fbe698791b4eccc8  gcc/testsuite/gcc.dg/Wuse-after-free-2.c
  1451aa756e6066ce78c4abc8cdd5081c  gcc/testsuite/gcc.dg/Wuse-after-free-3.c
! ea478d2a0d932457ff9d136b5f1a897c  gcc/testsuite/gcc.dg/Wuse-after-free-pr109123.c
  8a2b1e7c915347ce1f16658af4e1d253  gcc/testsuite/gcc.dg/Wuse-after-free-pr109170.c
  e6fbb87a8003326f83f635271804917e  gcc/testsuite/gcc.dg/Wuse-after-free.c
  4c6bd72643ac036f9df31c2faf5f97f2  gcc/testsuite/gcc.dg/Wuseless-cast.c
--- 42245,42251 ----
  6a41e2bb8df7e9d9c2dc7b7aa9fa559f  gcc/testsuite/gcc.dg/Wunused-var-6.c
  e069e831ec812b42fbe698791b4eccc8  gcc/testsuite/gcc.dg/Wuse-after-free-2.c
  1451aa756e6066ce78c4abc8cdd5081c  gcc/testsuite/gcc.dg/Wuse-after-free-3.c
! 1cef59db4264b3abc1c1fabeb80609f1  gcc/testsuite/gcc.dg/Wuse-after-free-pr109123.c
  8a2b1e7c915347ce1f16658af4e1d253  gcc/testsuite/gcc.dg/Wuse-after-free-pr109170.c
  e6fbb87a8003326f83f635271804917e  gcc/testsuite/gcc.dg/Wuse-after-free.c
  4c6bd72643ac036f9df31c2faf5f97f2  gcc/testsuite/gcc.dg/Wuseless-cast.c
*************** e6fbb87a8003326f83f635271804917e  gcc/te
*** 39983,39999 ****
  6feaa8c13489fc8f1b5ec9f340969b25  gcc/testsuite/gcc.dg/Wvla-5.c
  3dcd82b8bf10367d8a50030a2aaf75e4  gcc/testsuite/gcc.dg/Wvla-6.c
  f6407be4600095686ecc96595d2738b5  gcc/testsuite/gcc.dg/Wvla-7.c
! d82ccf26405a48ba48cf01a532ba9660  gcc/testsuite/gcc.dg/Wvla-larger-than-1.c
! c8849c136769b4d5fe441ab284b49719  gcc/testsuite/gcc.dg/Wvla-larger-than-2.c
! cfa79c0ccdb4661ab37d8dd91c0b69c2  gcc/testsuite/gcc.dg/Wvla-larger-than-3.c
! 93fd4352fb385bc1039adcaf51e1723d  gcc/testsuite/gcc.dg/Wvla-larger-than-4.c
! 5cef60daebea549d1b0f5a44f8b69841  gcc/testsuite/gcc.dg/Wvla-larger-than-5.c
  85cf0a2e624dc3a384b0942d83569c18  gcc/testsuite/gcc.dg/Wvla-parameter-10.c
  10b737bfd12274eb6cf36110efb425e3  gcc/testsuite/gcc.dg/Wvla-parameter-11.c
  d8079498555414ed8e20a1866a122002  gcc/testsuite/gcc.dg/Wvla-parameter-12.c
  b0cbf3f973ac6c7f66e3eabc7286596e  gcc/testsuite/gcc.dg/Wvla-parameter-13.c
! d78811fe7cce70276c7b5e1eff5af29e  gcc/testsuite/gcc.dg/Wvla-parameter-2.c
! 84426447172d5f7e335b761dafb7aa5a  gcc/testsuite/gcc.dg/Wvla-parameter-3.c
  cad5bfe43dc49afaa2dd6d38f08c60e9  gcc/testsuite/gcc.dg/Wvla-parameter-4.c
  c0135afc5269c6f871dc2d0d446ace02  gcc/testsuite/gcc.dg/Wvla-parameter-5.c
  9816fc98d7e0e6bfff4591725207d6f3  gcc/testsuite/gcc.dg/Wvla-parameter-6.c
--- 42256,42272 ----
  6feaa8c13489fc8f1b5ec9f340969b25  gcc/testsuite/gcc.dg/Wvla-5.c
  3dcd82b8bf10367d8a50030a2aaf75e4  gcc/testsuite/gcc.dg/Wvla-6.c
  f6407be4600095686ecc96595d2738b5  gcc/testsuite/gcc.dg/Wvla-7.c
! 609dacc729b49381f3a30a6f7b14899b  gcc/testsuite/gcc.dg/Wvla-larger-than-1.c
! 782f3eca7f6288bc010d7a4b32efd002  gcc/testsuite/gcc.dg/Wvla-larger-than-2.c
! e407611babd0ab9789f5b3c83a1e7fc6  gcc/testsuite/gcc.dg/Wvla-larger-than-3.c
! 02125afc896e3f1ed299eb0397d78be0  gcc/testsuite/gcc.dg/Wvla-larger-than-4.c
! 83a4f55788c13e80f01203c7160b055e  gcc/testsuite/gcc.dg/Wvla-larger-than-5.c
  85cf0a2e624dc3a384b0942d83569c18  gcc/testsuite/gcc.dg/Wvla-parameter-10.c
  10b737bfd12274eb6cf36110efb425e3  gcc/testsuite/gcc.dg/Wvla-parameter-11.c
  d8079498555414ed8e20a1866a122002  gcc/testsuite/gcc.dg/Wvla-parameter-12.c
  b0cbf3f973ac6c7f66e3eabc7286596e  gcc/testsuite/gcc.dg/Wvla-parameter-13.c
! f2b2e55fa7c8e6d1a353afccb5af3047  gcc/testsuite/gcc.dg/Wvla-parameter-2.c
! 455be41344364442b706cedc60e4b910  gcc/testsuite/gcc.dg/Wvla-parameter-3.c
  cad5bfe43dc49afaa2dd6d38f08c60e9  gcc/testsuite/gcc.dg/Wvla-parameter-4.c
  c0135afc5269c6f871dc2d0d446ace02  gcc/testsuite/gcc.dg/Wvla-parameter-5.c
  9816fc98d7e0e6bfff4591725207d6f3  gcc/testsuite/gcc.dg/Wvla-parameter-6.c
*************** c0135afc5269c6f871dc2d0d446ace02  gcc/te
*** 40003,40008 ****
--- 42276,42282 ----
  719e8d0d3ef2404f3da8959ccf484f95  gcc/testsuite/gcc.dg/Wvla-parameter.c
  5fffb57610eb1fa0134cbf5e15786d2f  gcc/testsuite/gcc.dg/Wwrite-strings-1.c
  7f88aa93488ad4e1763464c4f0d4cb1c  gcc/testsuite/gcc.dg/Wxor-used-as-pow-pr106830.c
+ 890a67ef7501b53433f05a33ed18c806  gcc/testsuite/gcc.dg/Wzero-as-null-pointer-constant.c
  2c1df90fdfff3161d9b25eb34c52ba47  gcc/testsuite/gcc.dg/Wzero-length-array-bounds-2-novec.c
  32e100d01495383efc8b112a434d69df  gcc/testsuite/gcc.dg/Wzero-length-array-bounds-2.c
  45daea5245c80442c211f21720675880  gcc/testsuite/gcc.dg/Wzero-length-array-bounds-3.c
*************** f69e8cd9fd4e56cc65e71a4dfef997a4  gcc/te
*** 40043,40051 ****
  d396ac30a4549605a8b91e88fb32d4e3  gcc/testsuite/gcc.dg/analyzer/SARD-tc841-basic-00182-min.c
  ae69c46005567e7d1eb865066adcb226  gcc/testsuite/gcc.dg/analyzer/abs-1.c
  2fbe7c43718aa946f2698455261a0c9f  gcc/testsuite/gcc.dg/analyzer/allocation-size-5.c
  a1175daef070a7eaed078acb4c54a18e  gcc/testsuite/gcc.dg/analyzer/analyzer-decls.h
! d05510da895df92f398f9f2a3ab3daf7  gcc/testsuite/gcc.dg/analyzer/analyzer.exp
! 7145b6f3637a739ae894c4e1ebe7ee08  gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c
  d780518e28005b87079c2be1a96dab0e  gcc/testsuite/gcc.dg/analyzer/asm-x86-lp64-1.c
  0dedf67a08edba5166d29489ccfd969c  gcc/testsuite/gcc.dg/analyzer/atomic-builtins-1.c
  f0f367208592d7230b3e5a8859fcdc2b  gcc/testsuite/gcc.dg/analyzer/atomic-types-1.c
--- 42317,42326 ----
  d396ac30a4549605a8b91e88fb32d4e3  gcc/testsuite/gcc.dg/analyzer/SARD-tc841-basic-00182-min.c
  ae69c46005567e7d1eb865066adcb226  gcc/testsuite/gcc.dg/analyzer/abs-1.c
  2fbe7c43718aa946f2698455261a0c9f  gcc/testsuite/gcc.dg/analyzer/allocation-size-5.c
+ ec878e263cce5a120872d1d5af92099c  gcc/testsuite/gcc.dg/analyzer/allocation-size-multiline-4.c
  a1175daef070a7eaed078acb4c54a18e  gcc/testsuite/gcc.dg/analyzer/analyzer-decls.h
! bb69f65fee7b59150ff696d1052e9897  gcc/testsuite/gcc.dg/analyzer/analyzer.exp
! c8fea92fbe2674fd004d27f275db2d9f  gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c
  d780518e28005b87079c2be1a96dab0e  gcc/testsuite/gcc.dg/analyzer/asm-x86-lp64-1.c
  0dedf67a08edba5166d29489ccfd969c  gcc/testsuite/gcc.dg/analyzer/atomic-builtins-1.c
  f0f367208592d7230b3e5a8859fcdc2b  gcc/testsuite/gcc.dg/analyzer/atomic-types-1.c
*************** e335d916bb1026d6d9d508119e1eb9e8  gcc/te
*** 40055,40064 ****
  9424116fb3a7804ff0f4eac8cf131a38  gcc/testsuite/gcc.dg/analyzer/attr-nonnull-pr106325.c
  c480119897bf409501913cf24fea555c  gcc/testsuite/gcc.dg/analyzer/attribute-nonnull.c
  215f65c0f414779a43cca081e7a96b0b  gcc/testsuite/gcc.dg/analyzer/bitfields-1.c
! 1ed6352fec1a6ed0761dbc4f0c5a428d  gcc/testsuite/gcc.dg/analyzer/boxed-malloc-1.c
  b079556a417329a74b2a9c1f780cc54d  gcc/testsuite/gcc.dg/analyzer/builtins-pr107565.c
  de1c3d5d0b46c866fdd4ebeca363175b  gcc/testsuite/gcc.dg/analyzer/bzero-1.c
! 722fc329175bc9af28757071b8488205  gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
  6958986d14e5b5d82a6e5d8d1a4253fe  gcc/testsuite/gcc.dg/analyzer/call-summaries-errno.c
  48f9ab28bf911414a190e81a25e1b72b  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107072.c
  e26be91157108de0adb52b0969803be1  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr114473.c
--- 42330,42339 ----
  9424116fb3a7804ff0f4eac8cf131a38  gcc/testsuite/gcc.dg/analyzer/attr-nonnull-pr106325.c
  c480119897bf409501913cf24fea555c  gcc/testsuite/gcc.dg/analyzer/attribute-nonnull.c
  215f65c0f414779a43cca081e7a96b0b  gcc/testsuite/gcc.dg/analyzer/bitfields-1.c
! ca380f35a64a019f903bd8407f96ece4  gcc/testsuite/gcc.dg/analyzer/boxed-malloc-1.c
  b079556a417329a74b2a9c1f780cc54d  gcc/testsuite/gcc.dg/analyzer/builtins-pr107565.c
  de1c3d5d0b46c866fdd4ebeca363175b  gcc/testsuite/gcc.dg/analyzer/bzero-1.c
! 929911e4a102bf1cb165411be8d2c77e  gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
  6958986d14e5b5d82a6e5d8d1a4253fe  gcc/testsuite/gcc.dg/analyzer/call-summaries-errno.c
  48f9ab28bf911414a190e81a25e1b72b  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107072.c
  e26be91157108de0adb52b0969803be1  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr114473.c
*************** ea761a32a87e7dd14f7f4d83472c0e79  gcc/te
*** 40070,40076 ****
  a9211e3f54bc8dd31aed70c7c3f9b905  gcc/testsuite/gcc.dg/analyzer/conditionals-3.c
  1c0a20304d7da2a80255211819446599  gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c
  8cfdc88c0b5a96aa0b303a5409085dfc  gcc/testsuite/gcc.dg/analyzer/conditionals-trans.c
! d83495ad9038167f7d08af314e7244a4  gcc/testsuite/gcc.dg/analyzer/data-model-1.c
  fbf171c2475c36b54306b4fa689eee97  gcc/testsuite/gcc.dg/analyzer/data-model-10.c
  01dd89f886f8267655367177e67d8a7f  gcc/testsuite/gcc.dg/analyzer/data-model-13.c
  1360165d72546f0514e05f720ac9fe62  gcc/testsuite/gcc.dg/analyzer/data-model-15.c
--- 42345,42351 ----
  a9211e3f54bc8dd31aed70c7c3f9b905  gcc/testsuite/gcc.dg/analyzer/conditionals-3.c
  1c0a20304d7da2a80255211819446599  gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c
  8cfdc88c0b5a96aa0b303a5409085dfc  gcc/testsuite/gcc.dg/analyzer/conditionals-trans.c
! 5a80a69ad88fabd8a766dfa2bcbc0313  gcc/testsuite/gcc.dg/analyzer/data-model-1.c
  fbf171c2475c36b54306b4fa689eee97  gcc/testsuite/gcc.dg/analyzer/data-model-10.c
  01dd89f886f8267655367177e67d8a7f  gcc/testsuite/gcc.dg/analyzer/data-model-13.c
  1360165d72546f0514e05f720ac9fe62  gcc/testsuite/gcc.dg/analyzer/data-model-15.c
*************** be7aafbe051db1d04fdb6dda26644e29  gcc/te
*** 40086,40127 ****
  2c7de07861c307654f6b81f8ba0df5ff  gcc/testsuite/gcc.dg/analyzer/data-model-9.c
  7cecbe3ff8f0a8faf72f48437253394d  gcc/testsuite/gcc.dg/analyzer/deref-before-check-1.c
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
! c8a73f41d46e8981bed6ba7c504f0911  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr113253.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
! 5a46fc2ecfd967da0040babb4bca6499  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
! bade44d286b4a4530bb4f6218960f1cc  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
  9bd730005568e90798a30108ba063dd2  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1.h
  83e8dbac3cd269425993b4f899d4c990  gcc/testsuite/gcc.dg/analyzer/edges-1.c
  f72a12c23bbd71391c3777d721ec95a8  gcc/testsuite/gcc.dg/analyzer/error-1.c
  959242e188dc1726d5f00627897522c2  gcc/testsuite/gcc.dg/analyzer/error-2.c
  fb6027da0380d31038644ba5db02fce8  gcc/testsuite/gcc.dg/analyzer/explode-1.c
  10d31dc45c3f21fbd96aa46492473138  gcc/testsuite/gcc.dg/analyzer/explode-2.c
  6e0e82d3dccb93752bd0cdb45f686bd1  gcc/testsuite/gcc.dg/analyzer/explode-2a.c
  e42c67081cc782a2fbf78edf4ad1187f  gcc/testsuite/gcc.dg/analyzer/explode-3.c
  8f62b5cf7a905c691d35760f70585093  gcc/testsuite/gcc.dg/analyzer/explode-4.c
  2389d74c6edc9a181e7bb75a5f9b3f82  gcc/testsuite/gcc.dg/analyzer/fd-4.c
! 0d04c4d3de4bc53762475856773f6133  gcc/testsuite/gcc.dg/analyzer/fd-accept.c
  2530d550c40182f2e415566420f1903a  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-enum.c
  489459d5b157c16e319b14cb96bdac2f  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-macros.c
! fb2336d2294d7acc31095f5698a0c26e  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c
  e0d317f9564c9d7710b164d6bc0c000f  gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
  8b8d424acc5a75744eb578979a50851e  gcc/testsuite/gcc.dg/analyzer/fd-bind.c
! 33b580122bdc1cca2f8b3460eee00433  gcc/testsuite/gcc.dg/analyzer/fd-connect.c
! 0980fe4947e8f74eb52680d0e4f9341d  gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c
  827dcc603f79b7aa5453b7b4dfba4665  gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c
! 2aa220f1632b76ede443d444df0e74a5  gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c
  294212571841a3f55e9a889a083d28d1  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-client.c
  e68d45a98a5c9f2419bc2200bddf6f57  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-socket.c
  983aa8eb3b385c301b0f38e058072ad2  gcc/testsuite/gcc.dg/analyzer/fd-glibc-make_named_socket.h
  dfec44c9516f74c36a586e4fcca16e64  gcc/testsuite/gcc.dg/analyzer/fd-leak-pr108252.c
! be1f00da98063e80bf865fc3bf3217d5  gcc/testsuite/gcc.dg/analyzer/fd-listen.c
  8fb341e8fe6909ce190ae756b2789975  gcc/testsuite/gcc.dg/analyzer/fd-pr108633.c
! 7b3c7fef6ff15a6a638b021a5da600ce  gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c
! 3c85fffa40e34938dec98e6387305881  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c
! 0b203af45cd2a629ff9c71166bfa1c2a  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c
! 39625ad9e0d7a4ba548df24a4eb70bd5  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c
  0fec3e8bbcc3a193f4e6d57c5f2d57b5  gcc/testsuite/gcc.dg/analyzer/fdump-analyzer-1.c
  1761d210a631bde55c4d4207134fd68c  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-1.c
  e3febbf18f1dc3e8c6dbca7b8d1ca64a  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-2.c
--- 42361,42406 ----
  2c7de07861c307654f6b81f8ba0df5ff  gcc/testsuite/gcc.dg/analyzer/data-model-9.c
  7cecbe3ff8f0a8faf72f48437253394d  gcc/testsuite/gcc.dg/analyzer/deref-before-check-1.c
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
! 452ca8a442483b2507962d0dd1d5efdc  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr113253.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
! c6d390a6ed3129e4137ef35e430de0fa  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
! e06553b08f3bbcc4d5c771278bf35853  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
  9bd730005568e90798a30108ba063dd2  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1.h
  83e8dbac3cd269425993b4f899d4c990  gcc/testsuite/gcc.dg/analyzer/edges-1.c
  f72a12c23bbd71391c3777d721ec95a8  gcc/testsuite/gcc.dg/analyzer/error-1.c
  959242e188dc1726d5f00627897522c2  gcc/testsuite/gcc.dg/analyzer/error-2.c
+ 0a00c8290d653a2fbc3a892b2d4adeca  gcc/testsuite/gcc.dg/analyzer/event-links-ascii.c
+ a88abb3e8857bf920a4e7c428e97db2d  gcc/testsuite/gcc.dg/analyzer/event-links-color.c
+ e6bc4fed874db05f3443af4850c6afe2  gcc/testsuite/gcc.dg/analyzer/event-links-disabled.c
+ 1a591c30c1046ec5f0fabf382eb15991  gcc/testsuite/gcc.dg/analyzer/event-links-unicode.c
  fb6027da0380d31038644ba5db02fce8  gcc/testsuite/gcc.dg/analyzer/explode-1.c
  10d31dc45c3f21fbd96aa46492473138  gcc/testsuite/gcc.dg/analyzer/explode-2.c
  6e0e82d3dccb93752bd0cdb45f686bd1  gcc/testsuite/gcc.dg/analyzer/explode-2a.c
  e42c67081cc782a2fbf78edf4ad1187f  gcc/testsuite/gcc.dg/analyzer/explode-3.c
  8f62b5cf7a905c691d35760f70585093  gcc/testsuite/gcc.dg/analyzer/explode-4.c
  2389d74c6edc9a181e7bb75a5f9b3f82  gcc/testsuite/gcc.dg/analyzer/fd-4.c
! eb732176063553022105ab04a11a5ed8  gcc/testsuite/gcc.dg/analyzer/fd-accept.c
  2530d550c40182f2e415566420f1903a  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-enum.c
  489459d5b157c16e319b14cb96bdac2f  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-macros.c
! bc582825362c52d624022049329ae632  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c
  e0d317f9564c9d7710b164d6bc0c000f  gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
  8b8d424acc5a75744eb578979a50851e  gcc/testsuite/gcc.dg/analyzer/fd-bind.c
! 1ce706255384902da6b0d763f37ba1be  gcc/testsuite/gcc.dg/analyzer/fd-connect.c
! a1c3193ee692d0cd360e69c2c3b706b2  gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c
  827dcc603f79b7aa5453b7b4dfba4665  gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c
! efc81058ea92b79e379abeca1e290ab2  gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c
  294212571841a3f55e9a889a083d28d1  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-client.c
  e68d45a98a5c9f2419bc2200bddf6f57  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-socket.c
  983aa8eb3b385c301b0f38e058072ad2  gcc/testsuite/gcc.dg/analyzer/fd-glibc-make_named_socket.h
  dfec44c9516f74c36a586e4fcca16e64  gcc/testsuite/gcc.dg/analyzer/fd-leak-pr108252.c
! a6c2c6cbd200de5abc7c929fe49fe265  gcc/testsuite/gcc.dg/analyzer/fd-listen.c
  8fb341e8fe6909ce190ae756b2789975  gcc/testsuite/gcc.dg/analyzer/fd-pr108633.c
! ebabbb9693ff5ff6e0081d269f719eeb  gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c
! 733c0a2c7f420da2e8b9bf01f57cbf4a  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c
! 07f34eebab8484e5762c26b69d53c6cb  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c
! 95d86f305b7a5284ec095700a6efc4a8  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c
  0fec3e8bbcc3a193f4e6d57c5f2d57b5  gcc/testsuite/gcc.dg/analyzer/fdump-analyzer-1.c
  1761d210a631bde55c4d4207134fd68c  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-1.c
  e3febbf18f1dc3e8c6dbca7b8d1ca64a  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-2.c
*************** b29483f2758f47b95759473be5a64ba6  gcc/te
*** 40131,40137 ****
  75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
  9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
  155a92eb05a1d79d891ec61b021a400d  gcc/testsuite/gcc.dg/analyzer/infinite-loop-1.c
! 2c26e875d8930244d13ad21ae7f0ac85  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
  ad7c2c590985fadaba524fa5f6d48979  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
  865e5f8c81482626d2e9eae5344bcf6e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13.c
  f0aff4423fc2056f3172a11bb1c0157f  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
--- 42410,42416 ----
  75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
  9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
  155a92eb05a1d79d891ec61b021a400d  gcc/testsuite/gcc.dg/analyzer/infinite-loop-1.c
! 336ac9df29867210512a658abd35e646  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
  ad7c2c590985fadaba524fa5f6d48979  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
  865e5f8c81482626d2e9eae5344bcf6e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13.c
  f0aff4423fc2056f3172a11bb1c0157f  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
*************** bcfb83da5d02ca988bcaa7b692b3f47d  gcc/te
*** 40139,40153 ****
  f4e3e9fe67ce001d0a4d83f475ee2e1e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-b.c
  8046594199f747ea766d853de506a64d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-c.c
  fe31474c1de3fcecf8fc2126e5d77be5  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto.h
  c70af2073448635855d144cc02268df7  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-2.c
  8d7ccfbc02f689c8b6b79362b9c9cf06  gcc/testsuite/gcc.dg/analyzer/malloc-paths-10.c
! 16dcf08d021fcb4f5535d74c805f3ba6  gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
! e73a0522f7f81259b897de6b7881df57  gcc/testsuite/gcc.dg/analyzer/malloc-reuse.c
  79dc7e451e8ed0274f282b8d09979e95  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-4.c
  ac65547952c25ba221985e37016c6fb2  gcc/testsuite/gcc.dg/analyzer/memcpy-1.c
  9c02a73028cac042acd872f0880e838c  gcc/testsuite/gcc.dg/analyzer/memmove-1.c
  3a40f2fbe201a2ed74b291bb546e345d  gcc/testsuite/gcc.dg/analyzer/memset-CVE-2017-18549-1.c
! b867e2dbe9886d21b384558c692736d3  gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c
  249e92fa7bb08b66f184515348adf910  gcc/testsuite/gcc.dg/analyzer/named-constants-via-command-line.c
  0605ec7df17825d30fe4f6374f77bbe9  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum-and-macro.c
  2452e15cec3740876b29d1965e9493ef  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum.c
--- 42418,42433 ----
  f4e3e9fe67ce001d0a4d83f475ee2e1e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-b.c
  8046594199f747ea766d853de506a64d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-c.c
  fe31474c1de3fcecf8fc2126e5d77be5  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto.h
+ 445025d0a8e54231442bf13a76943047  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
  c70af2073448635855d144cc02268df7  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-2.c
  8d7ccfbc02f689c8b6b79362b9c9cf06  gcc/testsuite/gcc.dg/analyzer/malloc-paths-10.c
! eb32855db8ce74c6ae3cd2497c4c7908  gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
! 4e1f867b8b324692ba44394ad4676874  gcc/testsuite/gcc.dg/analyzer/malloc-reuse.c
  79dc7e451e8ed0274f282b8d09979e95  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-4.c
  ac65547952c25ba221985e37016c6fb2  gcc/testsuite/gcc.dg/analyzer/memcpy-1.c
  9c02a73028cac042acd872f0880e838c  gcc/testsuite/gcc.dg/analyzer/memmove-1.c
  3a40f2fbe201a2ed74b291bb546e345d  gcc/testsuite/gcc.dg/analyzer/memset-CVE-2017-18549-1.c
! 5c81fadcddee7a5b13a23be5cad6701d  gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c
  249e92fa7bb08b66f184515348adf910  gcc/testsuite/gcc.dg/analyzer/named-constants-via-command-line.c
  0605ec7df17825d30fe4f6374f77bbe9  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum-and-macro.c
  2452e15cec3740876b29d1965e9493ef  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum.c
*************** aaddc4b9a407ce80be75f1c757af9df4  gcc/te
*** 40162,40171 ****
  51ae5882c3c42881ceafdbf1a92e54c3  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-container_of.c
  c3c3c0b1c78522f1ea066085de181f5f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-ascii.c
  610ce7a6c49571d957c6eaeec5443c26  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-debug.c
! 6c7305d705a9e0fa2bcb0a6e56ab035d  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-emoji.c
! 933a0769ec4cd6ac6ec3db018f72a371  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-unicode.c
! 6ccd61113cd70f391253a61148d49302  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-10.c
! 7c716586558d488853245df59e4f9ee2  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-12.c
  970c182d84888950b554d6040e57406a  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-13.c
  7cf7e60a0a90caa8a3f35f06e1f6b389  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-14.c
  479243786654d63f489e5484f213d7e4  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-15.c
--- 42442,42451 ----
  51ae5882c3c42881ceafdbf1a92e54c3  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-container_of.c
  c3c3c0b1c78522f1ea066085de181f5f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-ascii.c
  610ce7a6c49571d957c6eaeec5443c26  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-debug.c
! dda30cd044349ee501c693f82f3da35f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-emoji.c
! 65a02d5b5994428f75e63585105269d5  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-unicode.c
! 0fadb1938eef78e492a293b4a6842905  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-10.c
! 7c102e98d96b239b09101d24370bf17b  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-12.c
  970c182d84888950b554d6040e57406a  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-13.c
  7cf7e60a0a90caa8a3f35f06e1f6b389  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-14.c
  479243786654d63f489e5484f213d7e4  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-15.c
*************** dd9bd714ddf00836a965698479925913  gcc/te
*** 40182,40190 ****
  246ff89fe6afc90e0f35238247b22481  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-9.c
  2eba6a9f9fe68062d9314fe95a5fd289  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-pr113222.c
  4cf772bd692044b2e359f8ec7ce1b3ee  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-1.c
! 6dfa34d80808ee7889c5d826e5e205b8  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-2.c
  8e72b3602a293395949616541ab8ff04  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-realloc-grow.c
! f860abacfff9f0f438125c3b6af20e40  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-zero.c
  7cc16c21f19526f1926009cff6d0e22f  gcc/testsuite/gcc.dg/analyzer/params.c
  d49ce5897cbcdce03de2c289368308f7  gcc/testsuite/gcc.dg/analyzer/pattern-test-2.c
  08c8643d827be311b98875441004c1ab  gcc/testsuite/gcc.dg/analyzer/phi-2.c
--- 42462,42470 ----
  246ff89fe6afc90e0f35238247b22481  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-9.c
  2eba6a9f9fe68062d9314fe95a5fd289  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-pr113222.c
  4cf772bd692044b2e359f8ec7ce1b3ee  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-1.c
! 2a04a3ba94acde5e8db5002075d23921  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-2.c
  8e72b3602a293395949616541ab8ff04  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-realloc-grow.c
! 0655fc71aabf87c28f353365964a3f8f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-zero.c
  7cc16c21f19526f1926009cff6d0e22f  gcc/testsuite/gcc.dg/analyzer/params.c
  d49ce5897cbcdce03de2c289368308f7  gcc/testsuite/gcc.dg/analyzer/pattern-test-2.c
  08c8643d827be311b98875441004c1ab  gcc/testsuite/gcc.dg/analyzer/phi-2.c
*************** faa7ff928bbead8437bd5382e61c0356  gcc/te
*** 40196,40202 ****
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
  62c29c74bff34938d246ad62ccf4f5ac  gcc/testsuite/gcc.dg/analyzer/pr101143.c
  71129fa06e1b067223c303245054200a  gcc/testsuite/gcc.dg/analyzer/pr101547.c
! 8e16196108463716a2cfc4f344af5d64  gcc/testsuite/gcc.dg/analyzer/pr101837.c
  8e41b138580137917cf3c8483f35abbb  gcc/testsuite/gcc.dg/analyzer/pr101875.c
  60b2a5e408979c204812ee09c755be9d  gcc/testsuite/gcc.dg/analyzer/pr101983-main.c
  9af3fc4e1a3e5925599c434e4d8ec749  gcc/testsuite/gcc.dg/analyzer/pr101983-not-main.c
--- 42476,42482 ----
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
  62c29c74bff34938d246ad62ccf4f5ac  gcc/testsuite/gcc.dg/analyzer/pr101143.c
  71129fa06e1b067223c303245054200a  gcc/testsuite/gcc.dg/analyzer/pr101547.c
! 5bfcb45d166e8b77e269dc76c9015767  gcc/testsuite/gcc.dg/analyzer/pr101837.c
  8e41b138580137917cf3c8483f35abbb  gcc/testsuite/gcc.dg/analyzer/pr101875.c
  60b2a5e408979c204812ee09c755be9d  gcc/testsuite/gcc.dg/analyzer/pr101983-main.c
  9af3fc4e1a3e5925599c434e4d8ec749  gcc/testsuite/gcc.dg/analyzer/pr101983-not-main.c
*************** bd08c3118e654f97ec8726f35f798dfe  gcc/te
*** 40215,40234 ****
  c5aaf610718cba5c59ae6937f43eb7db  gcc/testsuite/gcc.dg/analyzer/pr105366.c
  148ff0f73f935f255a7bb3cd60ddbf95  gcc/testsuite/gcc.dg/analyzer/pr106181.c
  858a5fcecf63e716063ce04728f4c6c8  gcc/testsuite/gcc.dg/analyzer/pr108171.c
! 5f690f31ecdd04e8b4a52d7afa696adf  gcc/testsuite/gcc.dg/analyzer/pr109577.c
  12cfe5485a3c7938cc01216a44d4866e  gcc/testsuite/gcc.dg/analyzer/pr110882.c
  64c9d1e955b493cfb0d775e89b36b0d6  gcc/testsuite/gcc.dg/analyzer/pr113505.c
  d69ed87a55d888352718347a2a8941ed  gcc/testsuite/gcc.dg/analyzer/pr61861.c
! bea5e1dc273c2c35efdd7fe483c5eeb7  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
! 4dda248e2d5bde780958b3dcce453f02  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
  08d223b73454ba39d78dde2d881e87c2  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-2.c
  f89e5ecde804b807979bb260986f6283  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility.c
! 0ddb73cbb7d38d16a36e6ec4f7fc183e  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias.c
! a593341d1b08c788e70141f3755b74a7  gcc/testsuite/gcc.dg/analyzer/pr93375.c
  021f43de56975850b127f298839bb9f5  gcc/testsuite/gcc.dg/analyzer/pr93382.c
  e5b15ee45fe6adafc7624ced3274120b  gcc/testsuite/gcc.dg/analyzer/pr94458.c
  92ed6522f4d8b7a542dd38a2a929c2e4  gcc/testsuite/gcc.dg/analyzer/pr94579.c
! 56c1f50d865617c930add2c80cf10965  gcc/testsuite/gcc.dg/analyzer/pr94688.c
  746bbf11842faa157eaa0c33fef10249  gcc/testsuite/gcc.dg/analyzer/pr94689.c
  0026c538f0e20f37842630fe25b7d4c0  gcc/testsuite/gcc.dg/analyzer/pr94754.c
  5706bdced6988827930712af70d3cd5c  gcc/testsuite/gcc.dg/analyzer/pr94858-1.c
--- 42495,42514 ----
  c5aaf610718cba5c59ae6937f43eb7db  gcc/testsuite/gcc.dg/analyzer/pr105366.c
  148ff0f73f935f255a7bb3cd60ddbf95  gcc/testsuite/gcc.dg/analyzer/pr106181.c
  858a5fcecf63e716063ce04728f4c6c8  gcc/testsuite/gcc.dg/analyzer/pr108171.c
! 53ebe0b137942a3e44f4b84257d9084e  gcc/testsuite/gcc.dg/analyzer/pr109577.c
  12cfe5485a3c7938cc01216a44d4866e  gcc/testsuite/gcc.dg/analyzer/pr110882.c
  64c9d1e955b493cfb0d775e89b36b0d6  gcc/testsuite/gcc.dg/analyzer/pr113505.c
  d69ed87a55d888352718347a2a8941ed  gcc/testsuite/gcc.dg/analyzer/pr61861.c
! f05661ae53ad21f734f847c2376cac51  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
! 0610ebeeaa663c5f4caa9cff3d1948b5  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
  08d223b73454ba39d78dde2d881e87c2  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-2.c
  f89e5ecde804b807979bb260986f6283  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility.c
! b3398b69050f63db2f31393433360469  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias.c
! 28bffa1aa880310d0b489566f5e5ed3c  gcc/testsuite/gcc.dg/analyzer/pr93375.c
  021f43de56975850b127f298839bb9f5  gcc/testsuite/gcc.dg/analyzer/pr93382.c
  e5b15ee45fe6adafc7624ced3274120b  gcc/testsuite/gcc.dg/analyzer/pr94458.c
  92ed6522f4d8b7a542dd38a2a929c2e4  gcc/testsuite/gcc.dg/analyzer/pr94579.c
! 7306644baea64e11ac3966e765e05738  gcc/testsuite/gcc.dg/analyzer/pr94688.c
  746bbf11842faa157eaa0c33fef10249  gcc/testsuite/gcc.dg/analyzer/pr94689.c
  0026c538f0e20f37842630fe25b7d4c0  gcc/testsuite/gcc.dg/analyzer/pr94754.c
  5706bdced6988827930712af70d3cd5c  gcc/testsuite/gcc.dg/analyzer/pr94858-1.c
*************** dc948ef5af4dbb9b2512860f38fde8ed  gcc/te
*** 40249,40257 ****
  cbb6adcc2621ebf0e7bda4537a8d8250  gcc/testsuite/gcc.dg/analyzer/pr99771-1.c
  eed361a309e3745bd4ef7b47ad455045  gcc/testsuite/gcc.dg/analyzer/pr99774-2.c
  999daf76457c2842454c315884e1181c  gcc/testsuite/gcc.dg/analyzer/pr99886.c
! fe1b75742aa575cd80df355ca8abede1  gcc/testsuite/gcc.dg/analyzer/putenv-1.c
  ee803c3283890e05fed6552fbff9532c  gcc/testsuite/gcc.dg/analyzer/read-pr108661.c
! a3e079fdb0af6c6373526bb5b0925662  gcc/testsuite/gcc.dg/analyzer/sensitive-1.c
  235b23e579165b5bc29ded1884282ac0  gcc/testsuite/gcc.dg/analyzer/setjmp-1.c
  179069b5df1a39fd4f81202fade56325  gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
  fc3a3a42af2e0edb17f7af2cf30f4343  gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
--- 42529,42537 ----
  cbb6adcc2621ebf0e7bda4537a8d8250  gcc/testsuite/gcc.dg/analyzer/pr99771-1.c
  eed361a309e3745bd4ef7b47ad455045  gcc/testsuite/gcc.dg/analyzer/pr99774-2.c
  999daf76457c2842454c315884e1181c  gcc/testsuite/gcc.dg/analyzer/pr99886.c
! ee83b0853d986fe0890fb91652c83334  gcc/testsuite/gcc.dg/analyzer/putenv-1.c
  ee803c3283890e05fed6552fbff9532c  gcc/testsuite/gcc.dg/analyzer/read-pr108661.c
! 3594d7bfa2b29dcb6db7f3fa6fbd4c2a  gcc/testsuite/gcc.dg/analyzer/sensitive-1.c
  235b23e579165b5bc29ded1884282ac0  gcc/testsuite/gcc.dg/analyzer/setjmp-1.c
  179069b5df1a39fd4f81202fade56325  gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
  fc3a3a42af2e0edb17f7af2cf30f4343  gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
*************** c04d5fc1dea77f1e99f32e5ee47e000f  gcc/te
*** 40263,40268 ****
--- 42543,42550 ----
  0cb4c7a3599bf002d40a3b5ac76644aa  gcc/testsuite/gcc.dg/analyzer/signal-1.c
  a6cb10f4e6f6aa799d4c4c4aea433d9d  gcc/testsuite/gcc.dg/analyzer/signal-2.c
  e98f83f7b7082df7aa09ee75584ec411  gcc/testsuite/gcc.dg/analyzer/signal-3.c
+ b92479ab41efc6b50f1c4bdcc4bcb1ea  gcc/testsuite/gcc.dg/analyzer/signal-4a.c
+ 52bc1db675e6380e3b0460d0531891be  gcc/testsuite/gcc.dg/analyzer/signal-4b.c
  e9a1ff715baaef06ea9e16086ff0f48c  gcc/testsuite/gcc.dg/analyzer/signal-5.c
  c3d6877dc6b6aaf933b97e6748b315cc  gcc/testsuite/gcc.dg/analyzer/signal-6.c
  7c0bf2888cac40134f61a3ceca65cf6c  gcc/testsuite/gcc.dg/analyzer/signal-exit.c
*************** b76452713c6522655217df51194d0da5  gcc/te
*** 40282,40288 ****
  222b11a7c333c892c49c4acf13282013  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1.h
  7c34f9a3c92ba106a890f78970e8464a  gcc/testsuite/gcc.dg/analyzer/stdarg-types-1.c
  72744cf5b7689b54300874e863c831d8  gcc/testsuite/gcc.dg/analyzer/strcat-1.c
! 01bd75b47a7f944939fdbb0eec054c78  gcc/testsuite/gcc.dg/analyzer/strchr-1.c
  5c824937a2b8b50d8d983130fccd4e81  gcc/testsuite/gcc.dg/analyzer/strcmp-1.c
  e60a87e3a024c5578ef6e9aceae4ee4c  gcc/testsuite/gcc.dg/analyzer/strcpy-1.c
  6e61416a1a965596212f4c4d92797b7c  gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
--- 42564,42570 ----
  222b11a7c333c892c49c4acf13282013  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1.h
  7c34f9a3c92ba106a890f78970e8464a  gcc/testsuite/gcc.dg/analyzer/stdarg-types-1.c
  72744cf5b7689b54300874e863c831d8  gcc/testsuite/gcc.dg/analyzer/strcat-1.c
! 3b3103ec896230fe0439cf8388c47089  gcc/testsuite/gcc.dg/analyzer/strchr-1.c
  5c824937a2b8b50d8d983130fccd4e81  gcc/testsuite/gcc.dg/analyzer/strcmp-1.c
  e60a87e3a024c5578ef6e9aceae4ee4c  gcc/testsuite/gcc.dg/analyzer/strcpy-1.c
  6e61416a1a965596212f4c4d92797b7c  gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
*************** c8bc6833de96ea946301995b38dec3db  gcc/te
*** 40302,40310 ****
  d3672c86889d469bbd43ac562f0ca1a4  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
  f0c19beaa4ab5f22b4038bc32c4e0c96  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-2.c
  856006f625511b0fb030bcf227a26492  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143.h
! c5c7393cc16b8890b6a0d5784de8ccb5  gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
  7ff85aae29338f9915d524f985bfff7c  gcc/testsuite/gcc.dg/analyzer/taint-alloc-2.c
! 1cfdd34d5780908ee592093b5595d490  gcc/testsuite/gcc.dg/analyzer/taint-alloc-4.c
  fc3cb70c2399af08002b58c02ec7dc52  gcc/testsuite/gcc.dg/analyzer/taint-alloc-5.c
  71e14b0eb6517785cd3528d5ac0105a8  gcc/testsuite/gcc.dg/analyzer/taint-assert-macro-expansion.c
  790595ae06a5a0381144fc786922f71e  gcc/testsuite/gcc.dg/analyzer/taint-assert-system-header.c
--- 42584,42592 ----
  d3672c86889d469bbd43ac562f0ca1a4  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
  f0c19beaa4ab5f22b4038bc32c4e0c96  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-2.c
  856006f625511b0fb030bcf227a26492  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143.h
! e370b2c1ca83908aff0be583210c4d95  gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
  7ff85aae29338f9915d524f985bfff7c  gcc/testsuite/gcc.dg/analyzer/taint-alloc-2.c
! d573cbba3ca2a25fc89d2a7473c5f423  gcc/testsuite/gcc.dg/analyzer/taint-alloc-4.c
  fc3cb70c2399af08002b58c02ec7dc52  gcc/testsuite/gcc.dg/analyzer/taint-alloc-5.c
  71e14b0eb6517785cd3528d5ac0105a8  gcc/testsuite/gcc.dg/analyzer/taint-assert-macro-expansion.c
  790595ae06a5a0381144fc786922f71e  gcc/testsuite/gcc.dg/analyzer/taint-assert-system-header.c
*************** df0366e06e6b9d19dce5a23691e50271  gcc/te
*** 40321,40337 ****
  bd601748927d5c75feb46ce9e4546e5e  gcc/testsuite/gcc.dg/analyzer/test-setjmp.h
  c4ea4a7111cad6e2223b4b4e23b1fd95  gcc/testsuite/gcc.dg/analyzer/test-uaccess.h
  1044a7408c5d7630501b02b9726d7b8b  gcc/testsuite/gcc.dg/analyzer/torture/20060625-1.c
! 62d8cdca6550cdc87caeefbf61b00eee  gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
  ab8b5fe6003e8ef4d2d1b26e247a6207  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c
  9e0121dee23fed15f762b03898392c8a  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c
  144d9ec1f7cc82583ee9bca4b319b24c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c
  f4d4fea634dc4622b9b5fbdcd6172a9b  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c
  954891c1f34c5e5273d262c42ae87034  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c
  adcdfc937d1369e1864074215a1cd12c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c
! 3bfae08026199f9f4606002978937612  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c
  8953ab993ff3c153bc51dfb30b99bf7e  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c
  85b99739a5a3b9e52c0675cb96b6e1bd  gcc/testsuite/gcc.dg/analyzer/torture/boxed-int-1.c
! c4652807434ba6ccf4a2477242729b0a  gcc/testsuite/gcc.dg/analyzer/torture/boxed-ptr-1.c
  6600a700d9c3d03886029438e22848f6  gcc/testsuite/gcc.dg/analyzer/torture/conditionals-2.c
  f51fae0e8d61e76c5a00d9a7a8e4a3f3  gcc/testsuite/gcc.dg/analyzer/torture/conftest-1.c
  e85d83557fa692d7016e4622b85ca975  gcc/testsuite/gcc.dg/analyzer/torture/empty-struct-1.c
--- 42603,42619 ----
  bd601748927d5c75feb46ce9e4546e5e  gcc/testsuite/gcc.dg/analyzer/test-setjmp.h
  c4ea4a7111cad6e2223b4b4e23b1fd95  gcc/testsuite/gcc.dg/analyzer/test-uaccess.h
  1044a7408c5d7630501b02b9726d7b8b  gcc/testsuite/gcc.dg/analyzer/torture/20060625-1.c
! aa426e1e52fbd54c771ff312c25b2f4d  gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
  ab8b5fe6003e8ef4d2d1b26e247a6207  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c
  9e0121dee23fed15f762b03898392c8a  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c
  144d9ec1f7cc82583ee9bca4b319b24c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c
  f4d4fea634dc4622b9b5fbdcd6172a9b  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c
  954891c1f34c5e5273d262c42ae87034  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c
  adcdfc937d1369e1864074215a1cd12c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c
! 39a8fcab847d51fb725151bf5e3edb92  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c
  8953ab993ff3c153bc51dfb30b99bf7e  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c
  85b99739a5a3b9e52c0675cb96b6e1bd  gcc/testsuite/gcc.dg/analyzer/torture/boxed-int-1.c
! 15fbb57b4e698f5e11d27a7072dec72f  gcc/testsuite/gcc.dg/analyzer/torture/boxed-ptr-1.c
  6600a700d9c3d03886029438e22848f6  gcc/testsuite/gcc.dg/analyzer/torture/conditionals-2.c
  f51fae0e8d61e76c5a00d9a7a8e4a3f3  gcc/testsuite/gcc.dg/analyzer/torture/conftest-1.c
  e85d83557fa692d7016e4622b85ca975  gcc/testsuite/gcc.dg/analyzer/torture/empty-struct-1.c
*************** b8568508a8d8d6b0005149ac11f93783  gcc/te
*** 40344,40362 ****
  707a0e095b5e167db1cb6f2fa2cad4da  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-3.c
  52faf878195ceb4ad78e8c760c4f86f4  gcc/testsuite/gcc.dg/analyzer/torture/poc.c
  01f1ac31cf3854d0ce20abbf6cc01ad2  gcc/testsuite/gcc.dg/analyzer/torture/pr102225.c
! a939a37317deb3e080ba6ccd04ffd0a8  gcc/testsuite/gcc.dg/analyzer/torture/pr102692.c
  f220df257b7652557308a81a18da555f  gcc/testsuite/gcc.dg/analyzer/torture/pr103685.c
! 6df37e6fa084973f15534b808bc30ec4  gcc/testsuite/gcc.dg/analyzer/torture/pr104159.c
! 64067e2ef0854aeb2bb753c24f92b356  gcc/testsuite/gcc.dg/analyzer/torture/pr104863.c
  db6ef5fe16ec292bdaca4046678b6f0c  gcc/testsuite/gcc.dg/analyzer/torture/pr51628-30.c
  ca62b5bdb1c5cf71cd203f8d475fbcdc  gcc/testsuite/gcc.dg/analyzer/torture/pr59037.c
  46c9c74b1f40499fc80ecfe6126ffee2  gcc/testsuite/gcc.dg/analyzer/torture/pr93349.c
  304166ab1304d8ee2d62c62d4aecf6f0  gcc/testsuite/gcc.dg/analyzer/torture/pr93350.c
  caf07d8cfdac2dc0343b0db220cb61e8  gcc/testsuite/gcc.dg/analyzer/torture/pr93356.c
! 20199aab77dedf4bd975525d873e3d5a  gcc/testsuite/gcc.dg/analyzer/torture/pr93373.c
  29510929c207c18e72e3098e56473e27  gcc/testsuite/gcc.dg/analyzer/torture/pr93374.c
  80be356bca9c329740dc2d87d8c74c76  gcc/testsuite/gcc.dg/analyzer/torture/pr93379-2.c
! d1e99649276949170dff59fc147716f5  gcc/testsuite/gcc.dg/analyzer/torture/pr93379.c
  9b48e1c683a3576d5b6aeaae504b75d0  gcc/testsuite/gcc.dg/analyzer/torture/pr93438-2.c
  d0497e5c33b1ac1c4a394d71fab98cc8  gcc/testsuite/gcc.dg/analyzer/torture/pr93438.c
  46baa544a269e09c2b193d9afa13e792  gcc/testsuite/gcc.dg/analyzer/torture/pr93450.c
--- 42626,42644 ----
  707a0e095b5e167db1cb6f2fa2cad4da  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-3.c
  52faf878195ceb4ad78e8c760c4f86f4  gcc/testsuite/gcc.dg/analyzer/torture/poc.c
  01f1ac31cf3854d0ce20abbf6cc01ad2  gcc/testsuite/gcc.dg/analyzer/torture/pr102225.c
! 12eb1f6a5793f5099b6673deaf8f4c08  gcc/testsuite/gcc.dg/analyzer/torture/pr102692.c
  f220df257b7652557308a81a18da555f  gcc/testsuite/gcc.dg/analyzer/torture/pr103685.c
! 4a16b16700d3ee75097ab63f73ac9c6c  gcc/testsuite/gcc.dg/analyzer/torture/pr104159.c
! 8a79fabf611b40678797144c3c75ab90  gcc/testsuite/gcc.dg/analyzer/torture/pr104863.c
  db6ef5fe16ec292bdaca4046678b6f0c  gcc/testsuite/gcc.dg/analyzer/torture/pr51628-30.c
  ca62b5bdb1c5cf71cd203f8d475fbcdc  gcc/testsuite/gcc.dg/analyzer/torture/pr59037.c
  46c9c74b1f40499fc80ecfe6126ffee2  gcc/testsuite/gcc.dg/analyzer/torture/pr93349.c
  304166ab1304d8ee2d62c62d4aecf6f0  gcc/testsuite/gcc.dg/analyzer/torture/pr93350.c
  caf07d8cfdac2dc0343b0db220cb61e8  gcc/testsuite/gcc.dg/analyzer/torture/pr93356.c
! 2a78ac6277fe064dd23c3f8e05c58092  gcc/testsuite/gcc.dg/analyzer/torture/pr93373.c
  29510929c207c18e72e3098e56473e27  gcc/testsuite/gcc.dg/analyzer/torture/pr93374.c
  80be356bca9c329740dc2d87d8c74c76  gcc/testsuite/gcc.dg/analyzer/torture/pr93379-2.c
! 767ca691132ff87cb30f787a3ebbcf72  gcc/testsuite/gcc.dg/analyzer/torture/pr93379.c
  9b48e1c683a3576d5b6aeaae504b75d0  gcc/testsuite/gcc.dg/analyzer/torture/pr93438-2.c
  d0497e5c33b1ac1c4a394d71fab98cc8  gcc/testsuite/gcc.dg/analyzer/torture/pr93438.c
  46baa544a269e09c2b193d9afa13e792  gcc/testsuite/gcc.dg/analyzer/torture/pr93450.c
*************** edff473b255c0dea0c18477a32ff789c  gcc/te
*** 40367,40373 ****
  049209558c45a95b2d1cfb0369c75138  gcc/testsuite/gcc.dg/analyzer/torture/pr93947.c
  33cfe031089e835f2fd40516d6f10e97  gcc/testsuite/gcc.dg/analyzer/torture/stdarg-4.c
  9ad091485049c3474ef15f305054d030  gcc/testsuite/gcc.dg/analyzer/torture/switch-2.c
! 5d72557f7c8e1ba44690dbc97eaf218d  gcc/testsuite/gcc.dg/analyzer/torture/switch-3.c
  395de16f08102a554c60112d9f79a4ac  gcc/testsuite/gcc.dg/analyzer/torture/switch-4.c
  d395542cab6151e7cd1ab370ab6a6181  gcc/testsuite/gcc.dg/analyzer/torture/switch-5.c
  c6607cf8f0a83f57db4d5d7e2592d22d  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-doom-p_floor.c
--- 42649,42655 ----
  049209558c45a95b2d1cfb0369c75138  gcc/testsuite/gcc.dg/analyzer/torture/pr93947.c
  33cfe031089e835f2fd40516d6f10e97  gcc/testsuite/gcc.dg/analyzer/torture/stdarg-4.c
  9ad091485049c3474ef15f305054d030  gcc/testsuite/gcc.dg/analyzer/torture/switch-2.c
! 25003174501570b799d3e3a948c66f5f  gcc/testsuite/gcc.dg/analyzer/torture/switch-3.c
  395de16f08102a554c60112d9f79a4ac  gcc/testsuite/gcc.dg/analyzer/torture/switch-4.c
  d395542cab6151e7cd1ab370ab6a6181  gcc/testsuite/gcc.dg/analyzer/torture/switch-5.c
  c6607cf8f0a83f57db4d5d7e2592d22d  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-doom-p_floor.c
*************** fee376fc039217ac8eadbd50e48b7797  gcc/te
*** 40376,40382 ****
  1fae21b0c67b5b679beeecb28014ef75  gcc/testsuite/gcc.dg/analyzer/torture/symbolic-10.c
  6318ccac17dcb5d98f57f236599b7adb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-2.c
  230b0e2946fe052bea2eb4cd586765eb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-3.c
! b2b79a31b8a0345532a9a02fa98d668f  gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
  46dca54a13d3ed78a493a176a50d867e  gcc/testsuite/gcc.dg/analyzer/torture/uninit-bit-field-ref.c
  9a20e5bda2c613c6f8637d84ed00559c  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr106204.c
  7b2a710ab3259fd2f60c4c147318dcea  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr108725.c
--- 42658,42664 ----
  1fae21b0c67b5b679beeecb28014ef75  gcc/testsuite/gcc.dg/analyzer/torture/symbolic-10.c
  6318ccac17dcb5d98f57f236599b7adb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-2.c
  230b0e2946fe052bea2eb4cd586765eb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-3.c
! b74da7ec0a5b07d30381c1625d314fce  gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
  46dca54a13d3ed78a493a176a50d867e  gcc/testsuite/gcc.dg/analyzer/torture/uninit-bit-field-ref.c
  9a20e5bda2c613c6f8637d84ed00559c  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr106204.c
  7b2a710ab3259fd2f60c4c147318dcea  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr108725.c
*************** d05a3955306cf8591941d3856debd78b  gcc/te
*** 40386,40398 ****
  4b038f337620ba8e85c0752005cb1818  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-uninitialized.c
  cc641b4453a1b743c66c43ea1c92e357  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-zero.c
  0305098634ca2cb3c30ead28e44c8416  gcc/testsuite/gcc.dg/analyzer/torture/vector-extract-1.c
  547ceffa8e845c31d902790c7e0e3057  gcc/testsuite/gcc.dg/analyzer/uninit-4.c
  8c87a229f0dd190ba422467801b8229b  gcc/testsuite/gcc.dg/analyzer/uninit-7.c
  541b34b1ad44afd6ca6d0a768db2946a  gcc/testsuite/gcc.dg/analyzer/uninit-CWE-457-examples.c
  b06ba7887a4ece7ea7f11a9caf8e97b4  gcc/testsuite/gcc.dg/analyzer/unknown-fns.c
  087460b24b93f2716c1d11c02d30965e  gcc/testsuite/gcc.dg/analyzer/untracked-1.c
  f38862cc1b9a2bfc4028d7aaf8b1e0eb  gcc/testsuite/gcc.dg/analyzer/use-after-free.c
! 102385c780a6490b1bab8dac593cbd07  gcc/testsuite/gcc.dg/analyzer/vla-1.c
  d23060d9617d607793c74626be7479fe  gcc/testsuite/gcc.dg/analyzer/write-to-const-2.c
  1fa3c19e4371898a9f78cb50d95028b8  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
--- 42668,42682 ----
  4b038f337620ba8e85c0752005cb1818  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-uninitialized.c
  cc641b4453a1b743c66c43ea1c92e357  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-zero.c
  0305098634ca2cb3c30ead28e44c8416  gcc/testsuite/gcc.dg/analyzer/torture/vector-extract-1.c
+ 7cbf5c3e60e6e7d2f24e687830ae53de  gcc/testsuite/gcc.dg/analyzer/ubsan-pr118300.c
  547ceffa8e845c31d902790c7e0e3057  gcc/testsuite/gcc.dg/analyzer/uninit-4.c
  8c87a229f0dd190ba422467801b8229b  gcc/testsuite/gcc.dg/analyzer/uninit-7.c
  541b34b1ad44afd6ca6d0a768db2946a  gcc/testsuite/gcc.dg/analyzer/uninit-CWE-457-examples.c
  b06ba7887a4ece7ea7f11a9caf8e97b4  gcc/testsuite/gcc.dg/analyzer/unknown-fns.c
  087460b24b93f2716c1d11c02d30965e  gcc/testsuite/gcc.dg/analyzer/untracked-1.c
  f38862cc1b9a2bfc4028d7aaf8b1e0eb  gcc/testsuite/gcc.dg/analyzer/use-after-free.c
! 328944439dc2fafc8d890d246e441f93  gcc/testsuite/gcc.dg/analyzer/vla-1.c
! fb819ef6855781fb4db0ecfb14c5998d  gcc/testsuite/gcc.dg/analyzer/warning-emoji.c
  d23060d9617d607793c74626be7479fe  gcc/testsuite/gcc.dg/analyzer/write-to-const-2.c
  1fa3c19e4371898a9f78cb50d95028b8  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
*************** b83db629f91a7356b28b31cfbbc330ad  gcc/te
*** 40438,40446 ****
  c11a907de50c52966dc3fac763e376b5  gcc/testsuite/gcc.dg/array-init-1.c
  f5a2800fc5f21185bd9bdbd69e270c10  gcc/testsuite/gcc.dg/array-init-2.c
  16599e9681376bb41e697edb0bca5c78  gcc/testsuite/gcc.dg/array-quals-1.c
! 142997aec138f2b5487250ef14d6de54  gcc/testsuite/gcc.dg/array-quals-2.c
  889ad8871787262fb9533d339c717e6a  gcc/testsuite/gcc.dg/aru-2.c
! f4574483cf373610e6fdac72391101fc  gcc/testsuite/gcc.dg/asan/asan.exp
  eecad27701ac211149a09a067279d393  gcc/testsuite/gcc.dg/asan/has-feature-asan.c
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
--- 42722,42730 ----
  c11a907de50c52966dc3fac763e376b5  gcc/testsuite/gcc.dg/array-init-1.c
  f5a2800fc5f21185bd9bdbd69e270c10  gcc/testsuite/gcc.dg/array-init-2.c
  16599e9681376bb41e697edb0bca5c78  gcc/testsuite/gcc.dg/array-quals-1.c
! 01c412c33251aced84f6f15e9bb2a7e5  gcc/testsuite/gcc.dg/array-quals-2.c
  889ad8871787262fb9533d339c717e6a  gcc/testsuite/gcc.dg/aru-2.c
! 1dfd00783e706bdef788a25a1b21e8fb  gcc/testsuite/gcc.dg/asan/asan.exp
  eecad27701ac211149a09a067279d393  gcc/testsuite/gcc.dg/asan/has-feature-asan.c
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
*************** c712bebc72e1dc5a56ae1f93009d40b0  gcc/te
*** 40463,40468 ****
--- 42747,42754 ----
  e6fb871193af3e998394dba285a504b4  gcc/testsuite/gcc.dg/asan/pr114687.c
  335e527788f5fd39d280e244ac17b3ef  gcc/testsuite/gcc.dg/asan/pr114956.c
  7945c329a8682648ec766560d0d91934  gcc/testsuite/gcc.dg/asan/pr115172.c
+ c3ea87da60c15db26ad3d91106651fc4  gcc/testsuite/gcc.dg/asan/pr117209.c
+ c3e4c8b02647243ec96367bcfe4e9bc0  gcc/testsuite/gcc.dg/asan/pr119582.c
  82ef53c3f981dc7824247ad98871d787  gcc/testsuite/gcc.dg/asan/pr56417.c
  0c13e4008bb665f05b030eb42e43183f  gcc/testsuite/gcc.dg/asan/pr63845.c
  9a45b4bebab3901180dbe2a44efcd070  gcc/testsuite/gcc.dg/asan/pr64170.c
*************** e370903640e76bf4ef407aafe0286689  gcc/te
*** 40526,40531 ****
--- 42812,42818 ----
  bb1414d3448a4d73560e8bf9f884913a  gcc/testsuite/gcc.dg/asm-qual-1.c
  dca9a54735325b919335c863e6e479ea  gcc/testsuite/gcc.dg/asm-qual-2.c
  3319a351e393bcc9ae1fa119f0f275af  gcc/testsuite/gcc.dg/asm-qual-3.c
+ f4e8b2d03da597fa6bbdbc9113fc44e2  gcc/testsuite/gcc.dg/asm-redzone-1.c
  b2f25c9a2aff5b8452e5978350a5d567  gcc/testsuite/gcc.dg/asm-scope-1.c
  5dabbc1d9f243b039dcdfade6279ce98  gcc/testsuite/gcc.dg/asm-wide-1.c
  085c27a754d9d7ab0376729bd31a4ffe  gcc/testsuite/gcc.dg/asr_div1.c
*************** b6d936bcef333630cc9629b477556dad  gcc/te
*** 40577,40583 ****
  cfbaa184996beeec40d054222582f88d  gcc/testsuite/gcc.dg/atomic-store-4.c
  46ad754bc98b69bc0f3db1488d026dc2  gcc/testsuite/gcc.dg/atomic-store-5.c
  ce7e52f61e6fb003d8ae0bf9772503eb  gcc/testsuite/gcc.dg/atomic-store-6.c
! 5b5cf6a6128558583eca3025d35d625b  gcc/testsuite/gcc.dg/atomic/atomic.exp
  c341a56eb40ffc48dba93161f0413185  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-1.c
  fc7bfd846491d840116f75940e9fa4d5  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-2.c
  26c96c849ea8b781c5176b22d3ae0f3f  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-3.c
--- 42864,42870 ----
  cfbaa184996beeec40d054222582f88d  gcc/testsuite/gcc.dg/atomic-store-4.c
  46ad754bc98b69bc0f3db1488d026dc2  gcc/testsuite/gcc.dg/atomic-store-5.c
  ce7e52f61e6fb003d8ae0bf9772503eb  gcc/testsuite/gcc.dg/atomic-store-6.c
! 0d41954d5339fb75b9db1d26cd65fbe1  gcc/testsuite/gcc.dg/atomic/atomic.exp
  c341a56eb40ffc48dba93161f0413185  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-1.c
  fc7bfd846491d840116f75940e9fa4d5  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-2.c
  26c96c849ea8b781c5176b22d3ae0f3f  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-3.c
*************** c104d4bbbf393aecc426659f83432644  gcc/te
*** 40588,40594 ****
  1554e4e42e4b429ec2da41c28328ef8c  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-lockfree-char8_t.c
  834a59cbb64f0968668c34fbe8f37609  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-var-init-1.c
  0a46c7647e3b737949ff39771cc900da  gcc/testsuite/gcc.dg/atomic/gnu23-stdatomic-lockfree-char8_t.c
! c130cbfd55eeb7a9e065d9b93d8876cb  gcc/testsuite/gcc.dg/atomic/pr65345-4.c
  81f6a9440e5c693903c6f41e0cf1d7f4  gcc/testsuite/gcc.dg/atomic/pr71675.c
  7f735c85c899d82ef58271a29282b6ea  gcc/testsuite/gcc.dg/atomic/pr80640-2.c
  c907f9793c458fd060bd9d17d9727a13  gcc/testsuite/gcc.dg/atomic/pr80640.c
--- 42875,42882 ----
  1554e4e42e4b429ec2da41c28328ef8c  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-lockfree-char8_t.c
  834a59cbb64f0968668c34fbe8f37609  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-var-init-1.c
  0a46c7647e3b737949ff39771cc900da  gcc/testsuite/gcc.dg/atomic/gnu23-stdatomic-lockfree-char8_t.c
! fc6b89e13b7bbcdca884e924f55b7c57  gcc/testsuite/gcc.dg/atomic/pr118137.c
! f08363cd3c0adb88a1e585271eb6d92a  gcc/testsuite/gcc.dg/atomic/pr65345-4.c
  81f6a9440e5c693903c6f41e0cf1d7f4  gcc/testsuite/gcc.dg/atomic/pr71675.c
  7f735c85c899d82ef58271a29282b6ea  gcc/testsuite/gcc.dg/atomic/pr80640-2.c
  c907f9793c458fd060bd9d17d9727a13  gcc/testsuite/gcc.dg/atomic/pr80640.c
*************** cf011205fa8585115ba0b4456ca190b2  gcc/te
*** 40624,40630 ****
  1bcea72621449b18af70432182bb3a94  gcc/testsuite/gcc.dg/atomic/stdatomic-store-2.c
  59364eb5ee91b59390edeb4b4d0da025  gcc/testsuite/gcc.dg/atomic/stdatomic-store-3.c
  c5eb132664fcdccfe3b42e49e06fba83  gcc/testsuite/gcc.dg/atomic/stdatomic-store-4.c
! c89f0e1e985d6078d674e80e7ee5d409  gcc/testsuite/gcc.dg/atomic/stdatomic-vm.c
  ac031b731ade11227cad49839195a986  gcc/testsuite/gcc.dg/attr-access-2.c
  980513435d8c2f32d3b2d0a40cbcb6e6  gcc/testsuite/gcc.dg/attr-access-3.c
  3188310f8a182999a87b02cda61cacb6  gcc/testsuite/gcc.dg/attr-access-4.c
--- 42912,42918 ----
  1bcea72621449b18af70432182bb3a94  gcc/testsuite/gcc.dg/atomic/stdatomic-store-2.c
  59364eb5ee91b59390edeb4b4d0da025  gcc/testsuite/gcc.dg/atomic/stdatomic-store-3.c
  c5eb132664fcdccfe3b42e49e06fba83  gcc/testsuite/gcc.dg/atomic/stdatomic-store-4.c
! 10068247729e9cd3aff521270899182f  gcc/testsuite/gcc.dg/atomic/stdatomic-vm.c
  ac031b731ade11227cad49839195a986  gcc/testsuite/gcc.dg/attr-access-2.c
  980513435d8c2f32d3b2d0a40cbcb6e6  gcc/testsuite/gcc.dg/attr-access-3.c
  3188310f8a182999a87b02cda61cacb6  gcc/testsuite/gcc.dg/attr-access-4.c
*************** a40448e5fa79d5f463c4408a645a3bb7  gcc/te
*** 40650,40666 ****
  20673f6fc38505564ee86bd12ff52bee  gcc/testsuite/gcc.dg/attr-alloc_align-4.c
  97a9f10f1ebd5c89262aa838eb08f235  gcc/testsuite/gcc.dg/attr-alloc_align-5.c
  a2b6348e7f085fa83db64bd978c4e56c  gcc/testsuite/gcc.dg/attr-alloc_size-10.c
! 1f4671134603de0f0fd161afa7e62be4  gcc/testsuite/gcc.dg/attr-alloc_size-11.c
  95ee9b201db957fb93ce07864f13b9b4  gcc/testsuite/gcc.dg/attr-alloc_size-12.c
  be16f6b71bd68991024f0ec321092a06  gcc/testsuite/gcc.dg/attr-alloc_size-13.c
  6e7b391534abc17673b1ce896f7c3a66  gcc/testsuite/gcc.dg/attr-alloc_size-2.c
  ea7bcf6a72a5617495c3e237cdd515f8  gcc/testsuite/gcc.dg/attr-alloc_size-3.c
  027fba1dfd863548c3847f174d9efa33  gcc/testsuite/gcc.dg/attr-alloc_size-4.c
  8fe98d8f29faaf86e7e02595bfad1421  gcc/testsuite/gcc.dg/attr-alloc_size-5.c
! 767a30d6428950ef69a57ad5db4e931a  gcc/testsuite/gcc.dg/attr-alloc_size-6.c
! 23b09b9aeeccc2a31c5003324f6f3944  gcc/testsuite/gcc.dg/attr-alloc_size-7.c
! 9b25919a3b9b3cc4bad7ac332956db18  gcc/testsuite/gcc.dg/attr-alloc_size-8.c
! 52c6f276a374df0f896123bfcbe0aaaa  gcc/testsuite/gcc.dg/attr-alloc_size-9.c
  905e80d8b2e439cd15ed0597458ce2ec  gcc/testsuite/gcc.dg/attr-alloc_size.c
  bff5bf12c7a752b89f17af335428c788  gcc/testsuite/gcc.dg/attr-alwaysinline.c
  ef6d131706645894bf2f103f1aaf2b23  gcc/testsuite/gcc.dg/attr-assume-1.c
--- 42938,42954 ----
  20673f6fc38505564ee86bd12ff52bee  gcc/testsuite/gcc.dg/attr-alloc_align-4.c
  97a9f10f1ebd5c89262aa838eb08f235  gcc/testsuite/gcc.dg/attr-alloc_align-5.c
  a2b6348e7f085fa83db64bd978c4e56c  gcc/testsuite/gcc.dg/attr-alloc_size-10.c
! c950b593ec7fd961a82b986a93037711  gcc/testsuite/gcc.dg/attr-alloc_size-11.c
  95ee9b201db957fb93ce07864f13b9b4  gcc/testsuite/gcc.dg/attr-alloc_size-12.c
  be16f6b71bd68991024f0ec321092a06  gcc/testsuite/gcc.dg/attr-alloc_size-13.c
  6e7b391534abc17673b1ce896f7c3a66  gcc/testsuite/gcc.dg/attr-alloc_size-2.c
  ea7bcf6a72a5617495c3e237cdd515f8  gcc/testsuite/gcc.dg/attr-alloc_size-3.c
  027fba1dfd863548c3847f174d9efa33  gcc/testsuite/gcc.dg/attr-alloc_size-4.c
  8fe98d8f29faaf86e7e02595bfad1421  gcc/testsuite/gcc.dg/attr-alloc_size-5.c
! bc69489c14bf4d9d80591b6e59ba2e52  gcc/testsuite/gcc.dg/attr-alloc_size-6.c
! 001c50f0f78eb2a744d66ec55f4abec9  gcc/testsuite/gcc.dg/attr-alloc_size-7.c
! d5054f93e0018b24b4d8033b1380b4e8  gcc/testsuite/gcc.dg/attr-alloc_size-8.c
! 2e0a8f467c0f09ad404eaafebc209272  gcc/testsuite/gcc.dg/attr-alloc_size-9.c
  905e80d8b2e439cd15ed0597458ce2ec  gcc/testsuite/gcc.dg/attr-alloc_size.c
  bff5bf12c7a752b89f17af335428c788  gcc/testsuite/gcc.dg/attr-alwaysinline.c
  ef6d131706645894bf2f103f1aaf2b23  gcc/testsuite/gcc.dg/attr-assume-1.c
*************** fdff5507603fa1993842a13ecf8090c5  gcc/te
*** 40691,40697 ****
  3a27931f692fe525c56be1e29c403c5b  gcc/testsuite/gcc.dg/attr-ifunc-3.c
  dfcbcb413d45b799130076be29aefda8  gcc/testsuite/gcc.dg/attr-ifunc-4.c
  691220b853ff6986c4b9f90caaeb2008  gcc/testsuite/gcc.dg/attr-ifunc-5.c
! ba4bb570d75087182c6efb61a9373abf  gcc/testsuite/gcc.dg/attr-invalid.c
  2ce7fcf0401eadd3f754af0e964c56d5  gcc/testsuite/gcc.dg/attr-malloc.c
  dda577a8db5a9ac846b12e6d6d62a0dd  gcc/testsuite/gcc.dg/attr-may-alias-1.c
  f298b442f1417f4a5a952b04dbe114b5  gcc/testsuite/gcc.dg/attr-mode-1.c
--- 42979,42985 ----
  3a27931f692fe525c56be1e29c403c5b  gcc/testsuite/gcc.dg/attr-ifunc-3.c
  dfcbcb413d45b799130076be29aefda8  gcc/testsuite/gcc.dg/attr-ifunc-4.c
  691220b853ff6986c4b9f90caaeb2008  gcc/testsuite/gcc.dg/attr-ifunc-5.c
! 21f1b8411bae70388b4ef5c6e5b19236  gcc/testsuite/gcc.dg/attr-invalid.c
  2ce7fcf0401eadd3f754af0e964c56d5  gcc/testsuite/gcc.dg/attr-malloc.c
  dda577a8db5a9ac846b12e6d6d62a0dd  gcc/testsuite/gcc.dg/attr-may-alias-1.c
  f298b442f1417f4a5a952b04dbe114b5  gcc/testsuite/gcc.dg/attr-mode-1.c
*************** e02ec6b9f7fd9ab37c02f7efd3c1f1d5  gcc/te
*** 40701,40707 ****
  9e7fc795bb3ac25b7fa1884e4ee68d5b  gcc/testsuite/gcc.dg/attr-ms_struct-packed1.c
  2e8d579abde3b50be916cdcd11691f06  gcc/testsuite/gcc.dg/attr-nest.c
  09064ad2ea81b8688ea9d81edf13c136  gcc/testsuite/gcc.dg/attr-noinline.c
! 23420c6eb2e3bb0c1cccb8e5b6e5547c  gcc/testsuite/gcc.dg/attr-noipa.c
  012b47b0fef60d80ee7071e833bb6f47  gcc/testsuite/gcc.dg/attr-nonstring-2.c
  bb1973e41826aae1a7a467d0b6906cab  gcc/testsuite/gcc.dg/attr-nonstring-3.c
  ae3bdda9f1b989c7eed8752994cdb481  gcc/testsuite/gcc.dg/attr-nonstring-4.c
--- 42989,42995 ----
  9e7fc795bb3ac25b7fa1884e4ee68d5b  gcc/testsuite/gcc.dg/attr-ms_struct-packed1.c
  2e8d579abde3b50be916cdcd11691f06  gcc/testsuite/gcc.dg/attr-nest.c
  09064ad2ea81b8688ea9d81edf13c136  gcc/testsuite/gcc.dg/attr-noinline.c
! 03e6090e6dbeea7db1971cfa38294e3b  gcc/testsuite/gcc.dg/attr-noipa.c
  012b47b0fef60d80ee7071e833bb6f47  gcc/testsuite/gcc.dg/attr-nonstring-2.c
  bb1973e41826aae1a7a467d0b6906cab  gcc/testsuite/gcc.dg/attr-nonstring-3.c
  ae3bdda9f1b989c7eed8752994cdb481  gcc/testsuite/gcc.dg/attr-nonstring-4.c
*************** fa7929b130df76e25cb947b7f8fdc470  gcc/te
*** 40720,40726 ****
  db8374eda20551d6cd60bccb85b32576  gcc/testsuite/gcc.dg/attr-weak-hidden-1.c
  9d67dfe9d24216b60cb82426bce86193  gcc/testsuite/gcc.dg/attr-weak-hidden-1a.c
  9ae36569202bfebd5eef9afc2457f445  gcc/testsuite/gcc.dg/attr-weakref-1-darwin.c
! b22f1e0f9e7cb37d1f43ed156f4751f7  gcc/testsuite/gcc.dg/attr-weakref-1.c
  f348c9eb66b29ddb21e87abea341a730  gcc/testsuite/gcc.dg/attr-weakref-1a.c
  b32f0ffe033e8bca2840070b64fc6314  gcc/testsuite/gcc.dg/attr-weakref-1b.c
  b192f8a885f9deddc53ade0456fd18cb  gcc/testsuite/gcc.dg/attr-weakref-2.c
--- 43008,43014 ----
  db8374eda20551d6cd60bccb85b32576  gcc/testsuite/gcc.dg/attr-weak-hidden-1.c
  9d67dfe9d24216b60cb82426bce86193  gcc/testsuite/gcc.dg/attr-weak-hidden-1a.c
  9ae36569202bfebd5eef9afc2457f445  gcc/testsuite/gcc.dg/attr-weakref-1-darwin.c
! 5ee28c0505fe17cf79856de75a0f0d8a  gcc/testsuite/gcc.dg/attr-weakref-1.c
  f348c9eb66b29ddb21e87abea341a730  gcc/testsuite/gcc.dg/attr-weakref-1a.c
  b32f0ffe033e8bca2840070b64fc6314  gcc/testsuite/gcc.dg/attr-weakref-1b.c
  b192f8a885f9deddc53ade0456fd18cb  gcc/testsuite/gcc.dg/attr-weakref-2.c
*************** ff24f696dd1bd0ee47e96489441f7eff  gcc/te
*** 40756,40777 ****
  ff36cf2d1e5cc98fdfc0014952134d30  gcc/testsuite/gcc.dg/auto-init-uninit-26.c
  75e1b810f480ea436751b6b3f5b0d15e  gcc/testsuite/gcc.dg/auto-init-uninit-3.c
  435dbe3319fe05124c4fb1e67bdc2670  gcc/testsuite/gcc.dg/auto-init-uninit-34.c
! 1af6dcdbc28166879752747d6ba19c93  gcc/testsuite/gcc.dg/auto-init-uninit-36.c
  1746a4b77df05a5a2abae884f2e7de59  gcc/testsuite/gcc.dg/auto-init-uninit-37.c
  f13eb37d5824220df4ae25a6d2accb9b  gcc/testsuite/gcc.dg/auto-init-uninit-4.c
  b2d3b93f1ce6a31029e471bbe42f94ce  gcc/testsuite/gcc.dg/auto-init-uninit-5.c
  ef1038696edf0ae2c16b23b22287d830  gcc/testsuite/gcc.dg/auto-init-uninit-6.c
  ed2f587db175738c9860acd6b53ab7a7  gcc/testsuite/gcc.dg/auto-init-uninit-8.c
! 707c74b1f65e2977a7cc93c87073c0c2  gcc/testsuite/gcc.dg/auto-init-uninit-9.c
! b6bd1800be7011feea42a9717b529669  gcc/testsuite/gcc.dg/auto-init-uninit-A.c
  da68ac31262c3fbaefafb059699ba37f  gcc/testsuite/gcc.dg/auto-init-uninit-B.c
  6491a264d2cddc0eaf16befd84a7a690  gcc/testsuite/gcc.dg/auto-init-uninit-C.c
  502bde940d7765e100ed9e9fd499e134  gcc/testsuite/gcc.dg/auto-init-uninit-H.c
  8d9520bfb4ebbd2f6a732b6469a0a7f9  gcc/testsuite/gcc.dg/auto-init-uninit-I.c
  763f5a680b343d517c92f9c6b593a423  gcc/testsuite/gcc.dg/auto-init-unused-1.c
! 728ad18ac3017195abfa17386cbb7a12  gcc/testsuite/gcc.dg/auto-type-1.c
! c5e609e52b13380aa093916bc7d09fce  gcc/testsuite/gcc.dg/auto-type-2.c
! 5276382cbc141e3aa317d3f2b608087b  gcc/testsuite/gcc.dg/autopar/autopar.exp
  aa4d5a35793f7cfe360cd57078e1adc3  gcc/testsuite/gcc.dg/autopar/outer-1.c
  025c98b5845d57489814930464df1724  gcc/testsuite/gcc.dg/autopar/outer-2.c
  89a6c222b7a3ca9428f07d4ea8489cee  gcc/testsuite/gcc.dg/autopar/outer-3.c
--- 43044,43065 ----
  ff36cf2d1e5cc98fdfc0014952134d30  gcc/testsuite/gcc.dg/auto-init-uninit-26.c
  75e1b810f480ea436751b6b3f5b0d15e  gcc/testsuite/gcc.dg/auto-init-uninit-3.c
  435dbe3319fe05124c4fb1e67bdc2670  gcc/testsuite/gcc.dg/auto-init-uninit-34.c
! a64662e44001b9d684ec59842b1c5d8b  gcc/testsuite/gcc.dg/auto-init-uninit-36.c
  1746a4b77df05a5a2abae884f2e7de59  gcc/testsuite/gcc.dg/auto-init-uninit-37.c
  f13eb37d5824220df4ae25a6d2accb9b  gcc/testsuite/gcc.dg/auto-init-uninit-4.c
  b2d3b93f1ce6a31029e471bbe42f94ce  gcc/testsuite/gcc.dg/auto-init-uninit-5.c
  ef1038696edf0ae2c16b23b22287d830  gcc/testsuite/gcc.dg/auto-init-uninit-6.c
  ed2f587db175738c9860acd6b53ab7a7  gcc/testsuite/gcc.dg/auto-init-uninit-8.c
! 8fe26c7dd84acb86436c716df1b4ae8a  gcc/testsuite/gcc.dg/auto-init-uninit-9.c
! 72867ec498e0823501b4b1bde13ef509  gcc/testsuite/gcc.dg/auto-init-uninit-A.c
  da68ac31262c3fbaefafb059699ba37f  gcc/testsuite/gcc.dg/auto-init-uninit-B.c
  6491a264d2cddc0eaf16befd84a7a690  gcc/testsuite/gcc.dg/auto-init-uninit-C.c
  502bde940d7765e100ed9e9fd499e134  gcc/testsuite/gcc.dg/auto-init-uninit-H.c
  8d9520bfb4ebbd2f6a732b6469a0a7f9  gcc/testsuite/gcc.dg/auto-init-uninit-I.c
  763f5a680b343d517c92f9c6b593a423  gcc/testsuite/gcc.dg/auto-init-unused-1.c
! edc3b7aab1bcbab73026e05f09edb2fe  gcc/testsuite/gcc.dg/auto-type-1.c
! cfdd6574addab0f7b54e1afd0ac4c2db  gcc/testsuite/gcc.dg/auto-type-2.c
! df46525ad2d4e8c49d41cec1bc755883  gcc/testsuite/gcc.dg/autopar/autopar.exp
  aa4d5a35793f7cfe360cd57078e1adc3  gcc/testsuite/gcc.dg/autopar/outer-1.c
  025c98b5845d57489814930464df1724  gcc/testsuite/gcc.dg/autopar/outer-2.c
  89a6c222b7a3ca9428f07d4ea8489cee  gcc/testsuite/gcc.dg/autopar/outer-3.c
*************** a72aed4598b891bea75a07eca33210c9  gcc/te
*** 40834,40839 ****
--- 43122,43129 ----
  f55a1275009ff460210d4b9c67a189a3  gcc/testsuite/gcc.dg/autopar/uns-outer-4.c
  0e589f3e4ce3143c9d88fb74f872e3fe  gcc/testsuite/gcc.dg/autopar/uns-outer-5.c
  f5e8e01c793a266fa480ec93df8de475  gcc/testsuite/gcc.dg/autopar/uns-outer-6.c
+ 9a764ae28675016de8dd9f39b7d74baf  gcc/testsuite/gcc.dg/bad-binary-ops-highlight-colors.c
+ 4e6b4fa1db2abdf58b19d9c6c2ea54e3  gcc/testsuite/gcc.dg/bad-binary-ops-no-highlight-colors.c
  66a2373ba20bd9b0ef16c05942372b8b  gcc/testsuite/gcc.dg/bad-binary-ops.c
  c3ec1cf03ff502f2425714ca80d1c941  gcc/testsuite/gcc.dg/bad-dereference.c
  3ed234e057083db19f4c210ea0092fa9  gcc/testsuite/gcc.dg/bad-pragma-locations.c
*************** c3ec1cf03ff502f2425714ca80d1c941  gcc/te
*** 40841,40847 ****
  5e5285944749a753ae7cfa3cc1c2f6fd  gcc/testsuite/gcc.dg/bconstp-2.c
  9c81bf8464f7d045404719b2b619049c  gcc/testsuite/gcc.dg/bconstp-3.c
  2db175b798b402db35943965c06a4682  gcc/testsuite/gcc.dg/bconstp-4.c
! 7f7aae3bd63cae70040336ac1dbebcaa  gcc/testsuite/gcc.dg/bf-ms-attrib.c
  79b44f068e39c7246d2a4c7d88da33b8  gcc/testsuite/gcc.dg/bf-ms-layout-2.c
  6349854c3bffc8279c90be107e93a21f  gcc/testsuite/gcc.dg/bf-ms-layout-3.c
  bed618cfd7222010217a3fe29f1175a8  gcc/testsuite/gcc.dg/bf-ms-layout-4.c
--- 43131,43137 ----
  5e5285944749a753ae7cfa3cc1c2f6fd  gcc/testsuite/gcc.dg/bconstp-2.c
  9c81bf8464f7d045404719b2b619049c  gcc/testsuite/gcc.dg/bconstp-3.c
  2db175b798b402db35943965c06a4682  gcc/testsuite/gcc.dg/bconstp-4.c
! 46972b636a5dacc26754e8757acd94f1  gcc/testsuite/gcc.dg/bf-ms-attrib.c
  79b44f068e39c7246d2a4c7d88da33b8  gcc/testsuite/gcc.dg/bf-ms-layout-2.c
  6349854c3bffc8279c90be107e93a21f  gcc/testsuite/gcc.dg/bf-ms-layout-3.c
  bed618cfd7222010217a3fe29f1175a8  gcc/testsuite/gcc.dg/bf-ms-layout-4.c
*************** b253b577b50b503239b7ab43dc7d80ee  gcc/te
*** 40864,40870 ****
  f4bf2e19a922fd5744282ba866d43442  gcc/testsuite/gcc.dg/binary-constants-1.c
  f46831295fd7c887c6e3a0019af1c330  gcc/testsuite/gcc.dg/binary-constants-2.c
  1f084b806aa281e3847fed817a3cc746  gcc/testsuite/gcc.dg/binary-constants-3.c
! 16e2db9209248819980447a37415a521  gcc/testsuite/gcc.dg/binary-constants-4.c
  528a6ca53d505cabbcde1bf4e702abf5  gcc/testsuite/gcc.dg/binop-andeq1.c
  1757063091a3425aa096840d2358d076  gcc/testsuite/gcc.dg/binop-andeq2.c
  a86091ec273ff27540aaaa095b9a958c  gcc/testsuite/gcc.dg/binop-notand1.c
--- 43154,43160 ----
  f4bf2e19a922fd5744282ba866d43442  gcc/testsuite/gcc.dg/binary-constants-1.c
  f46831295fd7c887c6e3a0019af1c330  gcc/testsuite/gcc.dg/binary-constants-2.c
  1f084b806aa281e3847fed817a3cc746  gcc/testsuite/gcc.dg/binary-constants-3.c
! 0aaadef88a6a3a03eaf9bb6d7988273c  gcc/testsuite/gcc.dg/binary-constants-4.c
  528a6ca53d505cabbcde1bf4e702abf5  gcc/testsuite/gcc.dg/binop-andeq1.c
  1757063091a3425aa096840d2358d076  gcc/testsuite/gcc.dg/binop-andeq2.c
  a86091ec273ff27540aaaa095b9a958c  gcc/testsuite/gcc.dg/binop-notand1.c
*************** b71c538a1f7051f92330848d2a3d460a  gcc/te
*** 40923,40930 ****
--- 43213,43234 ----
  c4b034982de8b58ed8336d820c8bb976  gcc/testsuite/gcc.dg/bitint-106.c
  60c7ac39e79328f3bbc2f99c4f05036f  gcc/testsuite/gcc.dg/bitint-107.c
  26391ae32dae95a426db744f28b97cf9  gcc/testsuite/gcc.dg/bitint-108.c
+ e047bfd8166efd7aeacd6d0e2ca478c5  gcc/testsuite/gcc.dg/bitint-109.c
  bb7d4e0bf6a65f0461a509285654b4ec  gcc/testsuite/gcc.dg/bitint-11.c
+ 11494fc6c38784c099e85db8e3d0003f  gcc/testsuite/gcc.dg/bitint-110.c
+ 3c1686869e2109f149f07db3b9f3b7d7  gcc/testsuite/gcc.dg/bitint-111.c
+ ed35526a0c7955eff2a06c83df4cf2fb  gcc/testsuite/gcc.dg/bitint-112.c
+ 6ac7a682b8f146ce6ecadfcc5c6a98d7  gcc/testsuite/gcc.dg/bitint-113.c
+ c891d3ae04e746705209a5901c6a9460  gcc/testsuite/gcc.dg/bitint-114.c
+ 915b23e604f6233edcba524aed2e6a69  gcc/testsuite/gcc.dg/bitint-115.c
+ 0aa060045d6f8f391e34272bd2aee2a5  gcc/testsuite/gcc.dg/bitint-116.c
+ 51f97fedee3af9e915578dd4ed74cc35  gcc/testsuite/gcc.dg/bitint-117.c
+ be147aec3abbd5b08f579a216734b619  gcc/testsuite/gcc.dg/bitint-118.c
+ ee58dd68bb9d5173ea956cafee1273d9  gcc/testsuite/gcc.dg/bitint-119.c
  c18469175af3ebdf263d34347ebe2d40  gcc/testsuite/gcc.dg/bitint-12.c
+ d217543f954eb3f31e246355824f653a  gcc/testsuite/gcc.dg/bitint-120.c
+ 2cdc0474f10fd564ead32c0c64a2d7c8  gcc/testsuite/gcc.dg/bitint-121.c
+ 43db7c5f800ce763fcf885501389882a  gcc/testsuite/gcc.dg/bitint-122.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** fb2deb63f2c015cb881ba1519e9cf788  gcc/te
*** 41023,41033 ****
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
  7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
! bc286f4ff365c89c597fd19aa53a46c4  gcc/testsuite/gcc.dg/builtin-alloc-size.c
  fef5a8d7a1f7cdc1db96edce26047f61  gcc/testsuite/gcc.dg/builtin-apply1.c
  db9849e61a5589377bb913beb6893b0f  gcc/testsuite/gcc.dg/builtin-apply2.c
  3069593d5aa8b2583eff321d60dc7b4e  gcc/testsuite/gcc.dg/builtin-apply3.c
  1ab7dfa5500ec9743d2bf32364da86ec  gcc/testsuite/gcc.dg/builtin-apply4.c
  ba28fc0bde6fe3759423e5308218c5de  gcc/testsuite/gcc.dg/builtin-arith-overflow-1.c
  2f5a429e4857e305cbaaea57ef8fce49  gcc/testsuite/gcc.dg/builtin-arith-overflow-2.c
  d040792d1dd4c9dd03defd6b33b73ca3  gcc/testsuite/gcc.dg/builtin-arith-overflow-3.c
--- 43327,43338 ----
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
  7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
! 07ae5d953b8a952e06d71f2bf7374b7d  gcc/testsuite/gcc.dg/builtin-alloc-size.c
  fef5a8d7a1f7cdc1db96edce26047f61  gcc/testsuite/gcc.dg/builtin-apply1.c
  db9849e61a5589377bb913beb6893b0f  gcc/testsuite/gcc.dg/builtin-apply2.c
  3069593d5aa8b2583eff321d60dc7b4e  gcc/testsuite/gcc.dg/builtin-apply3.c
  1ab7dfa5500ec9743d2bf32364da86ec  gcc/testsuite/gcc.dg/builtin-apply4.c
+ c8507bf8bed53ccce7a0d1fda4f4f0a3  gcc/testsuite/gcc.dg/builtin-apply5.c
  ba28fc0bde6fe3759423e5308218c5de  gcc/testsuite/gcc.dg/builtin-arith-overflow-1.c
  2f5a429e4857e305cbaaea57ef8fce49  gcc/testsuite/gcc.dg/builtin-arith-overflow-2.c
  d040792d1dd4c9dd03defd6b33b73ca3  gcc/testsuite/gcc.dg/builtin-arith-overflow-3.c
*************** c6a37c3fb0f3d639949b2fd86c91eb1e  gcc/te
*** 41045,41051 ****
  ffc151478579fb7668adfc666bae4351  gcc/testsuite/gcc.dg/builtin-bswap-2.c
  8ccef9903c65aa8a5c0f7230fad726cd  gcc/testsuite/gcc.dg/builtin-bswap-3.c
  7c810cf00f9d6aa8115b2f0dbc13b483  gcc/testsuite/gcc.dg/builtin-bswap-4.c
! 7551adc7fc5d3c7b6b00084e454dbb2b  gcc/testsuite/gcc.dg/builtin-bswap-5.c
  e726e37e1e11c8196b19d2e74be26ceb  gcc/testsuite/gcc.dg/builtin-bswap-6.c
  ecffd294105471e159e662a7ea58716e  gcc/testsuite/gcc.dg/builtin-bswap-6a.c
  a13510f16ad9b40d3bed7d9e1467102f  gcc/testsuite/gcc.dg/builtin-bswap-7.c
--- 43350,43356 ----
  ffc151478579fb7668adfc666bae4351  gcc/testsuite/gcc.dg/builtin-bswap-2.c
  8ccef9903c65aa8a5c0f7230fad726cd  gcc/testsuite/gcc.dg/builtin-bswap-3.c
  7c810cf00f9d6aa8115b2f0dbc13b483  gcc/testsuite/gcc.dg/builtin-bswap-4.c
! 3dc85f2203073f00fd6053dc83b2c38d  gcc/testsuite/gcc.dg/builtin-bswap-5.c
  e726e37e1e11c8196b19d2e74be26ceb  gcc/testsuite/gcc.dg/builtin-bswap-6.c
  ecffd294105471e159e662a7ea58716e  gcc/testsuite/gcc.dg/builtin-bswap-6a.c
  a13510f16ad9b40d3bed7d9e1467102f  gcc/testsuite/gcc.dg/builtin-bswap-7.c
*************** a13510f16ad9b40d3bed7d9e1467102f  gcc/te
*** 41053,41068 ****
  dee8624db42c149e727e832415aa5090  gcc/testsuite/gcc.dg/builtin-bswap-8.c
  547dc816e801f8746cd259482702fa77  gcc/testsuite/gcc.dg/builtin-bswap-9.c
  0eecd573e98a27ed33860504d72d4c26  gcc/testsuite/gcc.dg/builtin-choose-expr-2.c
! fa0708362233291f1148a615c4b1f287  gcc/testsuite/gcc.dg/builtin-choose-expr.c
  e06f17cf5efaf35f17f6b7f50a5fd9e0  gcc/testsuite/gcc.dg/builtin-classify-type-1.c
  a38873fa20580cba65903a262d4fd423  gcc/testsuite/gcc.dg/builtin-clear-padding-1.c
  dc15cf451146f969eb7aa4813cfbaac9  gcc/testsuite/gcc.dg/builtin-clear-padding-2.c
  b152d7b3044cd4c130385716be2c314d  gcc/testsuite/gcc.dg/builtin-complex-err-1.c
  8a5469840816c0e59551cba587e09908  gcc/testsuite/gcc.dg/builtin-complex-err-2.c
  0c222cc6e71e46ddf388523376157d29  gcc/testsuite/gcc.dg/builtin-constant_p-1.c
! 9f503648a269c2cbb13ec94b04dd3900  gcc/testsuite/gcc.dg/builtin-dynamic-alloc-size.c
  b5e0d93d5da24ec95b6eeda2aaf3b953  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
! 4d08dd03e287c8a9ba9515b8eb3d36bb  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-1.c
  1ff75aa914f15c33a68e1cc40479cd14  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-10.c
  6728d15f57ec5dc1e75076fc95a6ef24  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-11.c
  9f8620548cc565190f9195dc5ccf4a96  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-12.c
--- 43358,43375 ----
  dee8624db42c149e727e832415aa5090  gcc/testsuite/gcc.dg/builtin-bswap-8.c
  547dc816e801f8746cd259482702fa77  gcc/testsuite/gcc.dg/builtin-bswap-9.c
  0eecd573e98a27ed33860504d72d4c26  gcc/testsuite/gcc.dg/builtin-choose-expr-2.c
! 8cbe5bec73c7a57b00dafc1ec03dd1cd  gcc/testsuite/gcc.dg/builtin-choose-expr.c
  e06f17cf5efaf35f17f6b7f50a5fd9e0  gcc/testsuite/gcc.dg/builtin-classify-type-1.c
  a38873fa20580cba65903a262d4fd423  gcc/testsuite/gcc.dg/builtin-clear-padding-1.c
  dc15cf451146f969eb7aa4813cfbaac9  gcc/testsuite/gcc.dg/builtin-clear-padding-2.c
  b152d7b3044cd4c130385716be2c314d  gcc/testsuite/gcc.dg/builtin-complex-err-1.c
  8a5469840816c0e59551cba587e09908  gcc/testsuite/gcc.dg/builtin-complex-err-2.c
  0c222cc6e71e46ddf388523376157d29  gcc/testsuite/gcc.dg/builtin-constant_p-1.c
! 387e90c0b80f8a296e3621fb7797c353  gcc/testsuite/gcc.dg/builtin-counted-by-ref-1.c
! f184e997083dfa86eca32313b72f8b50  gcc/testsuite/gcc.dg/builtin-counted-by-ref.c
! d1414ef65f6a2d155a41237b7842f724  gcc/testsuite/gcc.dg/builtin-dynamic-alloc-size.c
  b5e0d93d5da24ec95b6eeda2aaf3b953  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
! 753afbc92600e784e26a9f4fe767a63a  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-1.c
  1ff75aa914f15c33a68e1cc40479cd14  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-10.c
  6728d15f57ec5dc1e75076fc95a6ef24  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-11.c
  9f8620548cc565190f9195dc5ccf4a96  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-12.c
*************** b5e0d93d5da24ec95b6eeda2aaf3b953  gcc/te
*** 41072,41082 ****
  c20cea884b6dfc628cdcbf331fdb46b7  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-16.c
  26c61662e9f84f77446c307aac0fc969  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-17.c
  7ba18a78460ef2def96b42cf9b6bcbea  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-18.c
! 350c4a053d83646c38a9aab653275ba5  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-19.c
! 9696eab0e73ff6414ac28cfa07b0f60f  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-2.c
  7d5e7cb2f631513f4ad805a020ca50d0  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-20.c
! a72fb18ffd9b0e44cf5c6e959ec0bf06  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-3.c
! ca52ca43688db6c78826936e428a022a  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-4.c
  6a3bd76db06e1cef893e79790a2fbaf9  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5-main.c
  aa300b6138aca54a87382d73d77b9afd  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5.c
  a5e27521e31c487bc91f8281068f33c3  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-6.c
--- 43379,43389 ----
  c20cea884b6dfc628cdcbf331fdb46b7  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-16.c
  26c61662e9f84f77446c307aac0fc969  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-17.c
  7ba18a78460ef2def96b42cf9b6bcbea  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-18.c
! 420ca703f0b4d66d1755d3afe8bf9698  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-19.c
! d73809487a6380e4bf5ee924a6d4694e  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-2.c
  7d5e7cb2f631513f4ad805a020ca50d0  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-20.c
! 001c24b070f852293e5cd274e34c3f23  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-3.c
! 91201ec88edc61c263359c07559700ed  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-4.c
  6a3bd76db06e1cef893e79790a2fbaf9  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5-main.c
  aa300b6138aca54a87382d73d77b9afd  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5.c
  a5e27521e31c487bc91f8281068f33c3  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-6.c
*************** d02094a46939c99eb39495aef7c0d8a1  gcc/te
*** 41086,41098 ****
  03141515e920f2326efdd83f7b0681fd  gcc/testsuite/gcc.dg/builtin-ffs-1.c
  919180fc1760483ded11685f7fb367c7  gcc/testsuite/gcc.dg/builtin-has-attribute.c
  accf3598507b8caeb30c44d0552888e4  gcc/testsuite/gcc.dg/builtin-inf-1.c
  38e3fce76d6a329bdf859566063e041c  gcc/testsuite/gcc.dg/builtin-memchr-2.c
  198907886f9baf1bf3b3a41257261e20  gcc/testsuite/gcc.dg/builtin-memchr-3.c
  055e540871b62fb5331ed78a77cd4465  gcc/testsuite/gcc.dg/builtin-memchr-4.c
  297482280bba1db1aca62784fdb79b21  gcc/testsuite/gcc.dg/builtin-memchr.c
  a44ac88aa8a6da31cb9b33133af1f622  gcc/testsuite/gcc.dg/builtin-memcpy-2.c
  8f379b287c70f375ef6c56e42f7b980a  gcc/testsuite/gcc.dg/builtin-memcpy.c
! 405e1541c1dc182bb64f6f2b3304dd15  gcc/testsuite/gcc.dg/builtin-object-size-1.c
  03a590dda2c435b8a60eaa573bd785b0  gcc/testsuite/gcc.dg/builtin-object-size-10.c
  f122f7a281486824649a6f822f81d9d0  gcc/testsuite/gcc.dg/builtin-object-size-11.c
  1301b9ef334b8c60b50816cdcfd0ee2c  gcc/testsuite/gcc.dg/builtin-object-size-12.c
--- 43393,43406 ----
  03141515e920f2326efdd83f7b0681fd  gcc/testsuite/gcc.dg/builtin-ffs-1.c
  919180fc1760483ded11685f7fb367c7  gcc/testsuite/gcc.dg/builtin-has-attribute.c
  accf3598507b8caeb30c44d0552888e4  gcc/testsuite/gcc.dg/builtin-inf-1.c
+ a37e8165a7b80993768f3ffd60f970d1  gcc/testsuite/gcc.dg/builtin-iseqsig-1.c
  38e3fce76d6a329bdf859566063e041c  gcc/testsuite/gcc.dg/builtin-memchr-2.c
  198907886f9baf1bf3b3a41257261e20  gcc/testsuite/gcc.dg/builtin-memchr-3.c
  055e540871b62fb5331ed78a77cd4465  gcc/testsuite/gcc.dg/builtin-memchr-4.c
  297482280bba1db1aca62784fdb79b21  gcc/testsuite/gcc.dg/builtin-memchr.c
  a44ac88aa8a6da31cb9b33133af1f622  gcc/testsuite/gcc.dg/builtin-memcpy-2.c
  8f379b287c70f375ef6c56e42f7b980a  gcc/testsuite/gcc.dg/builtin-memcpy.c
! e0000c5cec883d5b01ff1c7565b4f460  gcc/testsuite/gcc.dg/builtin-object-size-1.c
  03a590dda2c435b8a60eaa573bd785b0  gcc/testsuite/gcc.dg/builtin-object-size-10.c
  f122f7a281486824649a6f822f81d9d0  gcc/testsuite/gcc.dg/builtin-object-size-11.c
  1301b9ef334b8c60b50816cdcfd0ee2c  gcc/testsuite/gcc.dg/builtin-object-size-12.c
*************** e7c8a252f15b5c173ffc0402b3789d2a  gcc/te
*** 41102,41127 ****
  bd55267dc409bf4cd73fc7fdf17926e1  gcc/testsuite/gcc.dg/builtin-object-size-16.c
  d729b9d6db81d465a307ade374f42256  gcc/testsuite/gcc.dg/builtin-object-size-17.c
  869d1b49b0a28836ddaebf74d3462566  gcc/testsuite/gcc.dg/builtin-object-size-18.c
! 581a4845d9f8f961c091eaf11a4010f0  gcc/testsuite/gcc.dg/builtin-object-size-19.c
! 106f6d499d4fa46bd909c23da9c19554  gcc/testsuite/gcc.dg/builtin-object-size-2.c
  cf6f2769bab5f5e06b9751f69afb0b75  gcc/testsuite/gcc.dg/builtin-object-size-20.c
  6866a8187425ffe835c719a45992dae9  gcc/testsuite/gcc.dg/builtin-object-size-21.c
  cebfc0e53c1528723fa6284f1a8cafa1  gcc/testsuite/gcc.dg/builtin-object-size-22.c
! 6d4f3e86947696f4e54141784ea7552c  gcc/testsuite/gcc.dg/builtin-object-size-3.c
! 52c6be897393e50dfe9096a5175bd1c0  gcc/testsuite/gcc.dg/builtin-object-size-4.c
  1154c87579fbeba4e04c1f1b8d7bc0f1  gcc/testsuite/gcc.dg/builtin-object-size-5.c
  03cc40092ecce666556484e4a8b00248  gcc/testsuite/gcc.dg/builtin-object-size-6.c
  199b74c72225c5f24af2cf2a68908cd0  gcc/testsuite/gcc.dg/builtin-object-size-7.c
  4725b486a35b6e155ddee3262897bb30  gcc/testsuite/gcc.dg/builtin-object-size-8.c
  7c3e911f08750fc7d2d79ad0e689c38a  gcc/testsuite/gcc.dg/builtin-object-size-9.c
! e1e33044d82e82f1585b2419c3ca5cf2  gcc/testsuite/gcc.dg/builtin-object-size-common.h
  16a15f1bdfd91051bdc9308d552e86b5  gcc/testsuite/gcc.dg/builtin-object-size-pr101832.c
! 8a97ebf058fb89f3b374807943c1fa63  gcc/testsuite/gcc.dg/builtin-prefetch-1.c
  9592adb58bb664e7d9b8270d44906bb8  gcc/testsuite/gcc.dg/builtin-protos-1.c
! 7055e4f194f8b19010df4b10556a64bf  gcc/testsuite/gcc.dg/builtin-redefine.c
  246bb70bfe2055226e4764a8be22bdb1  gcc/testsuite/gcc.dg/builtin-return-1.c
  3bb136f402d795adbeb8ffae4b5cc046  gcc/testsuite/gcc.dg/builtin-stdc-bit-1.c
  90a16deb753105b3ee10f1ba254778b4  gcc/testsuite/gcc.dg/builtin-stdc-bit-2.c
  66732ebd5af8dead0fcb2edc10124f5c  gcc/testsuite/gcc.dg/builtin-stpncpy.c
  641e02f6eead02fdda4581c9a18073ef  gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
  ed1656f783d92fedc726aeba8e49f03a  gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
--- 43410,43440 ----
  bd55267dc409bf4cd73fc7fdf17926e1  gcc/testsuite/gcc.dg/builtin-object-size-16.c
  d729b9d6db81d465a307ade374f42256  gcc/testsuite/gcc.dg/builtin-object-size-17.c
  869d1b49b0a28836ddaebf74d3462566  gcc/testsuite/gcc.dg/builtin-object-size-18.c
! dd6697e01a598903168e2a57e6ab7ba3  gcc/testsuite/gcc.dg/builtin-object-size-19.c
! 080bc2bad3ab17754eee2dabe6dbb329  gcc/testsuite/gcc.dg/builtin-object-size-2.c
  cf6f2769bab5f5e06b9751f69afb0b75  gcc/testsuite/gcc.dg/builtin-object-size-20.c
  6866a8187425ffe835c719a45992dae9  gcc/testsuite/gcc.dg/builtin-object-size-21.c
  cebfc0e53c1528723fa6284f1a8cafa1  gcc/testsuite/gcc.dg/builtin-object-size-22.c
! 9c4af0611294f721a379c54693c0a30b  gcc/testsuite/gcc.dg/builtin-object-size-3.c
! f93ef0cccc28030d91ef7db3de43152e  gcc/testsuite/gcc.dg/builtin-object-size-4.c
  1154c87579fbeba4e04c1f1b8d7bc0f1  gcc/testsuite/gcc.dg/builtin-object-size-5.c
  03cc40092ecce666556484e4a8b00248  gcc/testsuite/gcc.dg/builtin-object-size-6.c
  199b74c72225c5f24af2cf2a68908cd0  gcc/testsuite/gcc.dg/builtin-object-size-7.c
  4725b486a35b6e155ddee3262897bb30  gcc/testsuite/gcc.dg/builtin-object-size-8.c
  7c3e911f08750fc7d2d79ad0e689c38a  gcc/testsuite/gcc.dg/builtin-object-size-9.c
! 12a9076c6bbb2deafcab94f9a0dbcbbe  gcc/testsuite/gcc.dg/builtin-object-size-common.h
  16a15f1bdfd91051bdc9308d552e86b5  gcc/testsuite/gcc.dg/builtin-object-size-pr101832.c
! 88d31525d60ce24c71262ebda987ef3a  gcc/testsuite/gcc.dg/builtin-prefetch-1.c
  9592adb58bb664e7d9b8270d44906bb8  gcc/testsuite/gcc.dg/builtin-protos-1.c
! 3806bed440e718e6edf07514d052df9a  gcc/testsuite/gcc.dg/builtin-redefine.c
  246bb70bfe2055226e4764a8be22bdb1  gcc/testsuite/gcc.dg/builtin-return-1.c
  3bb136f402d795adbeb8ffae4b5cc046  gcc/testsuite/gcc.dg/builtin-stdc-bit-1.c
  90a16deb753105b3ee10f1ba254778b4  gcc/testsuite/gcc.dg/builtin-stdc-bit-2.c
+ e63661178c9e2059aa6202e11fdcc53a  gcc/testsuite/gcc.dg/builtin-stdc-bit-3.c
+ 21738c966f4d73c031343f15b6bc4d60  gcc/testsuite/gcc.dg/builtin-stdc-rotate-1.c
+ 79dd58d7d0e4ad8538b64a90eedfe4c3  gcc/testsuite/gcc.dg/builtin-stdc-rotate-2.c
+ 354b35cbb0ba653ef3c20d62cc9121e3  gcc/testsuite/gcc.dg/builtin-stdc-rotate-3.c
+ 5cc9e301fb32e93348db14e20e1f55c7  gcc/testsuite/gcc.dg/builtin-stdc-rotate-4.c
  66732ebd5af8dead0fcb2edc10124f5c  gcc/testsuite/gcc.dg/builtin-stpncpy.c
  641e02f6eead02fdda4581c9a18073ef  gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
  ed1656f783d92fedc726aeba8e49f03a  gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
*************** e6fb34d9dcc3e8d3fb2c859d542bd34b  gcc/te
*** 41137,41143 ****
  9dc9676d48f7e9a36fc5b0a46d64ef0d  gcc/testsuite/gcc.dg/builtin-tgmath-1.c
  06344ebcad12736ac392ff342cc2c519  gcc/testsuite/gcc.dg/builtin-tgmath-2.c
  4b99d532b7edf9641c752bcd626cd64e  gcc/testsuite/gcc.dg/builtin-tgmath-3.c
! 8f15e791651aca2683649f498455ef1e  gcc/testsuite/gcc.dg/builtin-tgmath-err-1.c
  e06e75338accc1d77eb96706931ab719  gcc/testsuite/gcc.dg/builtin-tgmath-err-2.c
  2aff03ba9fa42e64dea658c79ad816e6  gcc/testsuite/gcc.dg/builtin-unreachable-1.c
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
--- 43450,43456 ----
  9dc9676d48f7e9a36fc5b0a46d64ef0d  gcc/testsuite/gcc.dg/builtin-tgmath-1.c
  06344ebcad12736ac392ff342cc2c519  gcc/testsuite/gcc.dg/builtin-tgmath-2.c
  4b99d532b7edf9641c752bcd626cd64e  gcc/testsuite/gcc.dg/builtin-tgmath-3.c
! 4631e54efa84fb12484930ece9deba30  gcc/testsuite/gcc.dg/builtin-tgmath-err-1.c
  e06e75338accc1d77eb96706931ab719  gcc/testsuite/gcc.dg/builtin-tgmath-err-2.c
  2aff03ba9fa42e64dea658c79ad816e6  gcc/testsuite/gcc.dg/builtin-unreachable-1.c
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
*************** e80778ffff168210f09c92c87c4d7965  gcc/te
*** 41166,41172 ****
  d05514a9f3c1d7b070ed85d1cd775e1b  gcc/testsuite/gcc.dg/builtins-26.c
  59babf06575d8142516915a3253f4dc3  gcc/testsuite/gcc.dg/builtins-27.c
  62b577dbe3bd44452c9adbe58857ab03  gcc/testsuite/gcc.dg/builtins-28.c
! a656425f2d2f13a6f797832d28b59a88  gcc/testsuite/gcc.dg/builtins-30.c
  55b2d153e6c018c68549899385ae1a39  gcc/testsuite/gcc.dg/builtins-31.c
  2b1de2c23ba33a40a108c3a2d860e115  gcc/testsuite/gcc.dg/builtins-32.c
  0d7fe370a8eba51bb8a7df86a88e0598  gcc/testsuite/gcc.dg/builtins-33.c
--- 43479,43485 ----
  d05514a9f3c1d7b070ed85d1cd775e1b  gcc/testsuite/gcc.dg/builtins-26.c
  59babf06575d8142516915a3253f4dc3  gcc/testsuite/gcc.dg/builtins-27.c
  62b577dbe3bd44452c9adbe58857ab03  gcc/testsuite/gcc.dg/builtins-28.c
! 83b2e65e270dd0f07e7d1619699ce54c  gcc/testsuite/gcc.dg/builtins-30.c
  55b2d153e6c018c68549899385ae1a39  gcc/testsuite/gcc.dg/builtins-31.c
  2b1de2c23ba33a40a108c3a2d860e115  gcc/testsuite/gcc.dg/builtins-32.c
  0d7fe370a8eba51bb8a7df86a88e0598  gcc/testsuite/gcc.dg/builtins-33.c
*************** e117d3f67eb42d03a289c1d34e679eef  gcc/te
*** 41199,41209 ****
  dd63fad7038500ee3f4abaf363e276c5  gcc/testsuite/gcc.dg/builtins-61.c
  ab158036f2c9da0a0828e28f9822b6b5  gcc/testsuite/gcc.dg/builtins-62.c
  8744296887bde1d26b2b3add3397da57  gcc/testsuite/gcc.dg/builtins-63.c
! a0f58bd25ab1fc622fbd0c9ff5659536  gcc/testsuite/gcc.dg/builtins-64.c
  ca6f678477db46c57462ab1cc0d3bd29  gcc/testsuite/gcc.dg/builtins-65.c
  e99f948a2420290f76df40092a42fab0  gcc/testsuite/gcc.dg/builtins-66.c
  2735fd083d99b4e8efe6fb8bea07f329  gcc/testsuite/gcc.dg/builtins-67.c
! 3a4118157005aab9c57cd3714270e0b2  gcc/testsuite/gcc.dg/builtins-68.c
  4222329b6ef240dae3e2a48b58251a4c  gcc/testsuite/gcc.dg/builtins-69.c
  1863267706e2e098673111de96a7b9c7  gcc/testsuite/gcc.dg/builtins-7.c
  e75838cbd7442b0b3e01123b50e4cc85  gcc/testsuite/gcc.dg/builtins-70.c
--- 43512,43522 ----
  dd63fad7038500ee3f4abaf363e276c5  gcc/testsuite/gcc.dg/builtins-61.c
  ab158036f2c9da0a0828e28f9822b6b5  gcc/testsuite/gcc.dg/builtins-62.c
  8744296887bde1d26b2b3add3397da57  gcc/testsuite/gcc.dg/builtins-63.c
! 3918548029d6ca63825fed90305b9d80  gcc/testsuite/gcc.dg/builtins-64.c
  ca6f678477db46c57462ab1cc0d3bd29  gcc/testsuite/gcc.dg/builtins-65.c
  e99f948a2420290f76df40092a42fab0  gcc/testsuite/gcc.dg/builtins-66.c
  2735fd083d99b4e8efe6fb8bea07f329  gcc/testsuite/gcc.dg/builtins-67.c
! f91794c4598fd0990a8d69e73d900439  gcc/testsuite/gcc.dg/builtins-68.c
  4222329b6ef240dae3e2a48b58251a4c  gcc/testsuite/gcc.dg/builtins-69.c
  1863267706e2e098673111de96a7b9c7  gcc/testsuite/gcc.dg/builtins-7.c
  e75838cbd7442b0b3e01123b50e4cc85  gcc/testsuite/gcc.dg/builtins-70.c
*************** e75838cbd7442b0b3e01123b50e4cc85  gcc/te
*** 41212,41218 ****
  6364406d43c3bf3c1af19d21027e1a8a  gcc/testsuite/gcc.dg/builtins-9.c
  be349ba730e7260c88bbd352536f9994  gcc/testsuite/gcc.dg/builtins-config.h
  d02a55d128f246861a5c923d33a6f9ab  gcc/testsuite/gcc.dg/builtins-error.c
! 048bf75527c537def0289b22acc7f5f4  gcc/testsuite/gcc.dg/builtins-nonnull.c
  518a512e7ba00c065bf9d0b179728153  gcc/testsuite/gcc.dg/c11-align-1.c
  cb1acb90e96c07c37d3fbd481db36ef4  gcc/testsuite/gcc.dg/c11-align-2.c
  2e85aa9232c9807927b9486b8f1a8466  gcc/testsuite/gcc.dg/c11-align-3.c
--- 43525,43531 ----
  6364406d43c3bf3c1af19d21027e1a8a  gcc/testsuite/gcc.dg/builtins-9.c
  be349ba730e7260c88bbd352536f9994  gcc/testsuite/gcc.dg/builtins-config.h
  d02a55d128f246861a5c923d33a6f9ab  gcc/testsuite/gcc.dg/builtins-error.c
! 01f9180dfc507f2a58f78303c7bf3df8  gcc/testsuite/gcc.dg/builtins-nonnull.c
  518a512e7ba00c065bf9d0b179728153  gcc/testsuite/gcc.dg/c11-align-1.c
  cb1acb90e96c07c37d3fbd481db36ef4  gcc/testsuite/gcc.dg/c11-align-2.c
  2e85aa9232c9807927b9486b8f1a8466  gcc/testsuite/gcc.dg/c11-align-3.c
*************** fb15d13b559e6ed4b77b925f2174bd6b  gcc/te
*** 41289,41295 ****
--- 43602,43611 ----
  bd510e212640224d22dba81f49c4b9e7  gcc/testsuite/gcc.dg/c11-noreturn-3.c
  d8272e1d572d33a852614f0a74a31345  gcc/testsuite/gcc.dg/c11-noreturn-4.c
  f9262f126c900d76cdb16f0afbfc600f  gcc/testsuite/gcc.dg/c11-noreturn-5.c
+ 96df779bf45fc66fdfa10ef90501ce52  gcc/testsuite/gcc.dg/c11-null-pointer-constant-1.c
  abfbae98d3f37ff0d3a2b7bda81a856c  gcc/testsuite/gcc.dg/c11-nullptr-1.c
+ e57b3c2af1d5057fb8ef0ebab8627f45  gcc/testsuite/gcc.dg/c11-nullptr-2.c
+ a6daa59632aadec499cff5af205d421c  gcc/testsuite/gcc.dg/c11-nullptr-3.c
  26c6f6017d071e0f6332c8a8302c319e  gcc/testsuite/gcc.dg/c11-old-style-definition-1.c
  1fff561a5101a4713958b047c7f8aa8d  gcc/testsuite/gcc.dg/c11-old-style-definition-2.c
  76c61754cd6702dd0aa8c96472ab6679  gcc/testsuite/gcc.dg/c11-parm-omit-1.c
*************** fcd4572df13af248f922ae7a7c77e6a8  gcc/te
*** 41342,41347 ****
--- 43658,43664 ----
  aeb16ae2682d8d01a1d6120c9de5edfd  gcc/testsuite/gcc.dg/c18-version-1.c
  cd00c6feebac836c0ec488202c21d6a7  gcc/testsuite/gcc.dg/c18-version-2.c
  ad86091aa7960dc75364deba125beaee  gcc/testsuite/gcc.dg/c23-align-1.c
+ b608d4025d1e8801c524fe26c24dd21a  gcc/testsuite/gcc.dg/c23-align-10.c
  7d97eccbea2d467efb88d5df79faefc5  gcc/testsuite/gcc.dg/c23-align-6.c
  56a76c282330c2c4b41a50ff88a0fbe2  gcc/testsuite/gcc.dg/c23-attr-deprecated-1.c
  53adbd495ae22c30a0897a05151c5708  gcc/testsuite/gcc.dg/c23-attr-deprecated-2.c
*************** d46efb32b91a30b4232b53dd17aa1b47  gcc/te
*** 41364,41369 ****
--- 43681,43692 ----
  7a37e4a5284324e117f553b76e7daf4c  gcc/testsuite/gcc.dg/c23-attr-noreturn-1.c
  5e01117ba1a805a5246b5fc8cea88275  gcc/testsuite/gcc.dg/c23-attr-noreturn-2.c
  0c0ddc18ed8f3c87fc798987338e11ea  gcc/testsuite/gcc.dg/c23-attr-noreturn-3.c
+ 0b00a617cbf4b769e08c5364befb6634  gcc/testsuite/gcc.dg/c23-attr-reproducible-1.c
+ b8c4337bc815813c8cffced54cf10dc2  gcc/testsuite/gcc.dg/c23-attr-reproducible-2.c
+ f1336b454d3c13a26e0b78bb8e0fd819  gcc/testsuite/gcc.dg/c23-attr-reproducible-3.c
+ 953b5b68df7fd22edd131385725f9b1b  gcc/testsuite/gcc.dg/c23-attr-reproducible-4.c
+ 321379679b519c61fe3692d67a957339  gcc/testsuite/gcc.dg/c23-attr-reproducible-5-aux.c
+ e8f58dbbfb83be247111a3f5787823b9  gcc/testsuite/gcc.dg/c23-attr-reproducible-5.c
  25899d7a9c3961478ff21e311132bcd7  gcc/testsuite/gcc.dg/c23-attr-syntax-1.c
  37d6cdc1b9ba625569bf6e4478b55b40  gcc/testsuite/gcc.dg/c23-attr-syntax-2.c
  eaec7e8d3dab1a92f077a291b2a45008  gcc/testsuite/gcc.dg/c23-attr-syntax-3.c
*************** f0cb85efadba331ca2d15c7afc61de69  gcc/te
*** 41372,41379 ****
  8d8bd6b11899a4d0c712a623707fb636  gcc/testsuite/gcc.dg/c23-attr-syntax-6.c
  269bd414ba4d7be15bc3a152cb9cb3bd  gcc/testsuite/gcc.dg/c23-attr-syntax-7.c
  1f0cc4ddd44ec4024c75890aef2076e2  gcc/testsuite/gcc.dg/c23-attr-syntax-8.c
  cd94229fae02eab25071a924439318fb  gcc/testsuite/gcc.dg/c23-auto-1.c
! 25b95ae1961a5aa1bd3b209c048f077d  gcc/testsuite/gcc.dg/c23-auto-2.c
  121eb149d07e8a0a554af2bcd0b0874a  gcc/testsuite/gcc.dg/c23-auto-3.c
  f726c91921ed21b77521046200d5f8be  gcc/testsuite/gcc.dg/c23-auto-4.c
  607308013668cf1dd82b75f61930f483  gcc/testsuite/gcc.dg/c23-binary-constants-1.c
--- 43695,43708 ----
  8d8bd6b11899a4d0c712a623707fb636  gcc/testsuite/gcc.dg/c23-attr-syntax-6.c
  269bd414ba4d7be15bc3a152cb9cb3bd  gcc/testsuite/gcc.dg/c23-attr-syntax-7.c
  1f0cc4ddd44ec4024c75890aef2076e2  gcc/testsuite/gcc.dg/c23-attr-syntax-8.c
+ bdd1f3beb5b450c2acc292424c3871f5  gcc/testsuite/gcc.dg/c23-attr-unsequenced-1.c
+ 4ece12af0afcee657b90389c6cb176c8  gcc/testsuite/gcc.dg/c23-attr-unsequenced-2.c
+ e2afecb69f7870aefebb99da149ded18  gcc/testsuite/gcc.dg/c23-attr-unsequenced-3.c
+ 2fd49b06092274efe34509ef7c1e024c  gcc/testsuite/gcc.dg/c23-attr-unsequenced-4.c
+ 0c126862dc70eb6f4431af910dcc269e  gcc/testsuite/gcc.dg/c23-attr-unsequenced-5-aux.c
+ 199ffd7e0898192f463dc6a29e073e63  gcc/testsuite/gcc.dg/c23-attr-unsequenced-5.c
  cd94229fae02eab25071a924439318fb  gcc/testsuite/gcc.dg/c23-auto-1.c
! b13cb50d289511e2d69295e618fc31f9  gcc/testsuite/gcc.dg/c23-auto-2.c
  121eb149d07e8a0a554af2bcd0b0874a  gcc/testsuite/gcc.dg/c23-auto-3.c
  f726c91921ed21b77521046200d5f8be  gcc/testsuite/gcc.dg/c23-auto-4.c
  607308013668cf1dd82b75f61930f483  gcc/testsuite/gcc.dg/c23-binary-constants-1.c
*************** f726c91921ed21b77521046200d5f8be  gcc/te
*** 41381,41388 ****
--- 43710,43724 ----
  fb0d8c79395398894b33cd8f6cbc8fab  gcc/testsuite/gcc.dg/c23-binary-constants-3.c
  b57bd54293ea9a73c52f35e6cd0dd0dc  gcc/testsuite/gcc.dg/c23-bool-1.c
  fd92418c98ab7a53a0f7ffab5cc23336  gcc/testsuite/gcc.dg/c23-bool-2.c
+ 8fb559de7a9496682e6aff820021b2e6  gcc/testsuite/gcc.dg/c23-bool-errors-1.c
+ d78f07969ec6b48e627880dcbf2ebbf7  gcc/testsuite/gcc.dg/c23-bool-errors-2.c
+ c503e7627ed11952c3dc4dc68f955202  gcc/testsuite/gcc.dg/c23-bool-errors-3.c
  77471931d0204c573a350c351c2e1ce0  gcc/testsuite/gcc.dg/c23-bool-limits-1.c
  866b47f8f73f8bfdd37396b36c3ea22c  gcc/testsuite/gcc.dg/c23-builtins-1.c
+ ea28e7a810518599a40cac7b4aded33e  gcc/testsuite/gcc.dg/c23-complex-1.c
+ 53dce82967e39c3c6175870d30cb7c8e  gcc/testsuite/gcc.dg/c23-complex-2.c
+ b1e2e9397fe2c3008781a60be90c84b0  gcc/testsuite/gcc.dg/c23-complex-3.c
+ ecb095e7f028bf6440dfcc44d479912f  gcc/testsuite/gcc.dg/c23-complex-4.c
  c02273493fb42f9c962949fc0541b14d  gcc/testsuite/gcc.dg/c23-complit-1.c
  b39690af9ffd34d34f7698e3bcf9fe11  gcc/testsuite/gcc.dg/c23-complit-2.c
  fca4c7f52a46ab4ff35166ad34a2092f  gcc/testsuite/gcc.dg/c23-complit-3.c
*************** c4253823407e42b2041cd4f87c079b68  gcc/te
*** 41393,41399 ****
  6c015cd3478782c8fdd2dd00957cdea2  gcc/testsuite/gcc.dg/c23-complit-8.c
  7d184166c5e693fa68ced1095002174d  gcc/testsuite/gcc.dg/c23-concat-1.c
  e25f5029937f09bdae8538ceadd8a34a  gcc/testsuite/gcc.dg/c23-constexpr-1.c
! 78c3fd17e008c1fad38d71746ebb0d45  gcc/testsuite/gcc.dg/c23-constexpr-2a.c
  78959769b2466f0e3c8bbcd38b9723c9  gcc/testsuite/gcc.dg/c23-constexpr-2b.c
  8f9a1b3570b59c3e55dd0ce0f93e0a28  gcc/testsuite/gcc.dg/c23-constexpr-3.c
  559517d7bb334aa29e5dee65a4e0f4c6  gcc/testsuite/gcc.dg/c23-constexpr-4.c
--- 43729,43736 ----
  6c015cd3478782c8fdd2dd00957cdea2  gcc/testsuite/gcc.dg/c23-complit-8.c
  7d184166c5e693fa68ced1095002174d  gcc/testsuite/gcc.dg/c23-concat-1.c
  e25f5029937f09bdae8538ceadd8a34a  gcc/testsuite/gcc.dg/c23-constexpr-1.c
! 5c0096f09bfd4e58c211727c4673cff6  gcc/testsuite/gcc.dg/c23-constexpr-10.c
! 71335808bc2e2be83d3d88d21d7165cf  gcc/testsuite/gcc.dg/c23-constexpr-2a.c
  78959769b2466f0e3c8bbcd38b9723c9  gcc/testsuite/gcc.dg/c23-constexpr-2b.c
  8f9a1b3570b59c3e55dd0ce0f93e0a28  gcc/testsuite/gcc.dg/c23-constexpr-3.c
  559517d7bb334aa29e5dee65a4e0f4c6  gcc/testsuite/gcc.dg/c23-constexpr-4.c
*************** bb56dd984fa295edce9f4acd8f786ed8  gcc/te
*** 41402,41413 ****
  21a51b8dff07ea2a3986b817d9de1099  gcc/testsuite/gcc.dg/c23-constexpr-7.c
  1f372e95fe24503c741cf6f468466ba8  gcc/testsuite/gcc.dg/c23-constexpr-8.c
  b567907221cd47d14e103cd70dae4da4  gcc/testsuite/gcc.dg/c23-constexpr-9.c
! 3597a19d3f7a65a20022ababc79ff5d3  gcc/testsuite/gcc.dg/c23-digit-separators-1.c
  b1212370623c7157a79943899435ccb5  gcc/testsuite/gcc.dg/c23-digit-separators-2.c
  ffaf2de00670ec1bcfd9c05f306e16c3  gcc/testsuite/gcc.dg/c23-digit-separators-3.c
  1a9c21c1d3fb7ce104315577cd8a8648  gcc/testsuite/gcc.dg/c23-empty-init-1.c
  0c38fbf1607df971691b3b1d456a802c  gcc/testsuite/gcc.dg/c23-empty-init-2.c
  1116de49b5f2a7c0923551f1b58a18a9  gcc/testsuite/gcc.dg/c23-empty-init-3.c
  dc52d4a4df4bc142bba5c3beadd4981f  gcc/testsuite/gcc.dg/c23-enum-1.c
  2ca675c75231eb5ade1153c0b8b0d32a  gcc/testsuite/gcc.dg/c23-enum-10.c
  ed9819fd2268c8f2f24fef8c006f9fbf  gcc/testsuite/gcc.dg/c23-enum-2.c
--- 43739,43752 ----
  21a51b8dff07ea2a3986b817d9de1099  gcc/testsuite/gcc.dg/c23-constexpr-7.c
  1f372e95fe24503c741cf6f468466ba8  gcc/testsuite/gcc.dg/c23-constexpr-8.c
  b567907221cd47d14e103cd70dae4da4  gcc/testsuite/gcc.dg/c23-constexpr-9.c
! 46477d39cefaebae0a0b415979c1881d  gcc/testsuite/gcc.dg/c23-digit-separators-1.c
  b1212370623c7157a79943899435ccb5  gcc/testsuite/gcc.dg/c23-digit-separators-2.c
  ffaf2de00670ec1bcfd9c05f306e16c3  gcc/testsuite/gcc.dg/c23-digit-separators-3.c
  1a9c21c1d3fb7ce104315577cd8a8648  gcc/testsuite/gcc.dg/c23-empty-init-1.c
  0c38fbf1607df971691b3b1d456a802c  gcc/testsuite/gcc.dg/c23-empty-init-2.c
  1116de49b5f2a7c0923551f1b58a18a9  gcc/testsuite/gcc.dg/c23-empty-init-3.c
+ e97a636eb53553266b792d09229136cd  gcc/testsuite/gcc.dg/c23-empty-init-4.c
+ 52dd98b39f09f54981f1349463ec1b2d  gcc/testsuite/gcc.dg/c23-empty-init-5.c
  dc52d4a4df4bc142bba5c3beadd4981f  gcc/testsuite/gcc.dg/c23-enum-1.c
  2ca675c75231eb5ade1153c0b8b0d32a  gcc/testsuite/gcc.dg/c23-enum-10.c
  ed9819fd2268c8f2f24fef8c006f9fbf  gcc/testsuite/gcc.dg/c23-enum-2.c
*************** a7b361e75440ab576ebe9cc1a6a27519  gcc/te
*** 41449,41469 ****
  878ccb350d4274f7dd3f1853c2a42c12  gcc/testsuite/gcc.dg/c23-fordecl-2.c
  526d0ed6d610e0be452c0a4b48af0c31  gcc/testsuite/gcc.dg/c23-fordecl-3.c
  b94ccd6ce9c4a0b2a1a7a61567fb29d6  gcc/testsuite/gcc.dg/c23-fordecl-4.c
  f2852ff896f993059a55e6dd5b1a501f  gcc/testsuite/gcc.dg/c23-has-c-attribute-1.c
! 590b9e6fad4497d80406c10b381a66a5  gcc/testsuite/gcc.dg/c23-has-c-attribute-2.c
  6052e65f849468bab88f6bb89894f2be  gcc/testsuite/gcc.dg/c23-has-c-attribute-3.c
  574c18bfc665490a3756f6752a450e0e  gcc/testsuite/gcc.dg/c23-has-c-attribute-4.c
  7111f8b5ea26f12db5228f72efdde79c  gcc/testsuite/gcc.dg/c23-labels-1.c
  ae562be53251d621831c177e0e8480cc  gcc/testsuite/gcc.dg/c23-labels-2.c
  5695ab5488ac5b615bee767303feecd8  gcc/testsuite/gcc.dg/c23-labels-3.c
  8457f3a053b24748a1159ab31bad49ae  gcc/testsuite/gcc.dg/c23-limits-1.c
  dd04bee5ff3c35fe05a9082f06488d4b  gcc/testsuite/gcc.dg/c23-no-dfp-1.c
  a251b8fbb1a1e2de01f33345da5b30aa  gcc/testsuite/gcc.dg/c23-nullptr-1.c
  b2aa5b3a2a0f10db7caf478ebc09b44c  gcc/testsuite/gcc.dg/c23-nullptr-2.c
  36399b68ea5d874fde458587f0ba2b77  gcc/testsuite/gcc.dg/c23-nullptr-3.c
  b13c0b54398a41730d1b0d365be527c7  gcc/testsuite/gcc.dg/c23-nullptr-4.c
! 1013bb9aa45492104083c39c9719c82d  gcc/testsuite/gcc.dg/c23-nullptr-5.c
  278232c9a9da5255a6b7d2b384aa248b  gcc/testsuite/gcc.dg/c23-nullptr-6.c
  fec206552f7b87dc03e6ed2623c2411f  gcc/testsuite/gcc.dg/c23-old-style-definition-1.c
  7b38b60fb455309e43c976cf4c0a6489  gcc/testsuite/gcc.dg/c23-old-style-definition-2.c
  f0201051a573c3f639abc3f544ae860d  gcc/testsuite/gcc.dg/c23-old-style-definition-3.c
--- 43788,43833 ----
  878ccb350d4274f7dd3f1853c2a42c12  gcc/testsuite/gcc.dg/c23-fordecl-2.c
  526d0ed6d610e0be452c0a4b48af0c31  gcc/testsuite/gcc.dg/c23-fordecl-3.c
  b94ccd6ce9c4a0b2a1a7a61567fb29d6  gcc/testsuite/gcc.dg/c23-fordecl-4.c
+ b1e829d25f4878e349058ba7965d3339  gcc/testsuite/gcc.dg/c23-generic-1.c
+ 495eee3771f1407ae59f679575ac3276  gcc/testsuite/gcc.dg/c23-generic-2.c
+ fcf09d266929fdcdccb0bcc7095d69c5  gcc/testsuite/gcc.dg/c23-generic-3.c
+ b27babd53d2337881eb070e149f6863b  gcc/testsuite/gcc.dg/c23-generic-4.c
  f2852ff896f993059a55e6dd5b1a501f  gcc/testsuite/gcc.dg/c23-has-c-attribute-1.c
! 8d95d9a1bfffcaf9033707a3fd022e49  gcc/testsuite/gcc.dg/c23-has-c-attribute-2.c
  6052e65f849468bab88f6bb89894f2be  gcc/testsuite/gcc.dg/c23-has-c-attribute-3.c
  574c18bfc665490a3756f6752a450e0e  gcc/testsuite/gcc.dg/c23-has-c-attribute-4.c
+ ba141abd9185fb6d1feeb773eedde8cc  gcc/testsuite/gcc.dg/c23-if-decls-1.c
+ 56db949de62b19fad168abf2ddab719d  gcc/testsuite/gcc.dg/c23-if-decls-2.c
+ be581d9614659bf79b89ed949fccefc1  gcc/testsuite/gcc.dg/c23-imaginary-constants-1.c
+ b299892c9c31c5cc57bbd83755874940  gcc/testsuite/gcc.dg/c23-imaginary-constants-10.c
+ 409cda30dd7dffbd7239f9ddfd4104ac  gcc/testsuite/gcc.dg/c23-imaginary-constants-2.c
+ 1bb16e26bc2ff4ed66e425d99f7edf4e  gcc/testsuite/gcc.dg/c23-imaginary-constants-3.c
+ fc575a5e2ca3d86ae0c6eb831f7164d9  gcc/testsuite/gcc.dg/c23-imaginary-constants-4.c
+ 4501bb91ba42480950892b26c56c554e  gcc/testsuite/gcc.dg/c23-imaginary-constants-5.c
+ b0d1ce51d648932c87697a86eb202ce9  gcc/testsuite/gcc.dg/c23-imaginary-constants-6.c
+ b08395c5bb05824d4216a4910c4d5675  gcc/testsuite/gcc.dg/c23-imaginary-constants-7.c
+ d8291c9e0816347133d2388bfe4181a2  gcc/testsuite/gcc.dg/c23-imaginary-constants-8.c
+ 28464a4aeb3c2ef3eed6abd09c9cd6fe  gcc/testsuite/gcc.dg/c23-imaginary-constants-9.c
  7111f8b5ea26f12db5228f72efdde79c  gcc/testsuite/gcc.dg/c23-labels-1.c
  ae562be53251d621831c177e0e8480cc  gcc/testsuite/gcc.dg/c23-labels-2.c
  5695ab5488ac5b615bee767303feecd8  gcc/testsuite/gcc.dg/c23-labels-3.c
  8457f3a053b24748a1159ab31bad49ae  gcc/testsuite/gcc.dg/c23-limits-1.c
+ 652815415599bcd01e5a71a5185477e1  gcc/testsuite/gcc.dg/c23-mismatching-fn-ptr-a52dec.c
+ 107cacc64894dc6386ef5c63264d8974  gcc/testsuite/gcc.dg/c23-mismatching-fn-ptr-alsatools.c
+ 164ab2f0dc569a6c7d475621af866529  gcc/testsuite/gcc.dg/c23-mismatching-fn-ptr.c
+ 70c9479d06b36d73c72dd9a130c3541d  gcc/testsuite/gcc.dg/c23-named-loops-1.c
+ 1198d8af24e06b45f96607212c633481  gcc/testsuite/gcc.dg/c23-named-loops-5.c
  dd04bee5ff3c35fe05a9082f06488d4b  gcc/testsuite/gcc.dg/c23-no-dfp-1.c
+ 95762836148a81f6c1880fa0e0aed8e9  gcc/testsuite/gcc.dg/c23-null-pointer-constant-1.c
  a251b8fbb1a1e2de01f33345da5b30aa  gcc/testsuite/gcc.dg/c23-nullptr-1.c
  b2aa5b3a2a0f10db7caf478ebc09b44c  gcc/testsuite/gcc.dg/c23-nullptr-2.c
  36399b68ea5d874fde458587f0ba2b77  gcc/testsuite/gcc.dg/c23-nullptr-3.c
  b13c0b54398a41730d1b0d365be527c7  gcc/testsuite/gcc.dg/c23-nullptr-4.c
! 4398a44c6d652cdd79f8632d10970345  gcc/testsuite/gcc.dg/c23-nullptr-5.c
  278232c9a9da5255a6b7d2b384aa248b  gcc/testsuite/gcc.dg/c23-nullptr-6.c
+ 1e1a08da031951a5f01b247c9e0e7a5c  gcc/testsuite/gcc.dg/c23-nullptr-7.c
+ 89537cc8f3354097e9bef919b7ea03c1  gcc/testsuite/gcc.dg/c23-octal-constants-1.c
+ 2d08ebc2aef7a391f73ce4da7eb3615a  gcc/testsuite/gcc.dg/c23-octal-constants-2.c
  fec206552f7b87dc03e6ed2623c2411f  gcc/testsuite/gcc.dg/c23-old-style-definition-1.c
  7b38b60fb455309e43c976cf4c0a6489  gcc/testsuite/gcc.dg/c23-old-style-definition-2.c
  f0201051a573c3f639abc3f544ae860d  gcc/testsuite/gcc.dg/c23-old-style-definition-3.c
*************** bc1e9282cce3b4231a088bf436fc52ad  gcc/te
*** 41491,41513 ****
  e76c7613e08d9be9fd22a634a8e630c2  gcc/testsuite/gcc.dg/c23-static-assert-3.c
  375ec5c262f63ebb0db351c9dfa205d6  gcc/testsuite/gcc.dg/c23-static-assert-4.c
  e2f7b6f80f4e3f26cdae30d836c2bd71  gcc/testsuite/gcc.dg/c23-stdarg-1.c
  b4df46eb0ac4934c16cabe34c2ed3b00  gcc/testsuite/gcc.dg/c23-stdarg-2.c
  5a3cfd608769a99eedc1577c6e3d487d  gcc/testsuite/gcc.dg/c23-stdarg-3.c
! 8e65fcc6348600570b6c648d47503338  gcc/testsuite/gcc.dg/c23-stdarg-4.c
  8c7bd1eb3a41e9c01555826fc97a12d7  gcc/testsuite/gcc.dg/c23-stdarg-5.c
! 1a42ae411efcfd7c7f694de7f2a00f16  gcc/testsuite/gcc.dg/c23-stdarg-6.c
! c07858bd7c1474859397eb2642c434d2  gcc/testsuite/gcc.dg/c23-stdarg-7.c
! 11d2b9d47ac705152edabbf71afc71b0  gcc/testsuite/gcc.dg/c23-stdarg-8.c
! 7df6b6bfef21b28d25bf0e69c37511bf  gcc/testsuite/gcc.dg/c23-stdarg-9.c
  7514e7564d94faa015d33b9c79079a0d  gcc/testsuite/gcc.dg/c23-stdatomic-1.c
  271bf1ff6599fb893b0b44cbcf58ee86  gcc/testsuite/gcc.dg/c23-stddef-1.c
  07d702ddfa215e1acf54255a4b36cfbb  gcc/testsuite/gcc.dg/c23-stdint-1.c
  0fa100ac71d07136c86f4081dba3d8cb  gcc/testsuite/gcc.dg/c23-tag-1.c
  a37afd5767ec0322656c9bffa259c962  gcc/testsuite/gcc.dg/c23-tag-2.c
  28c17b111090bf1699e468ec151c4176  gcc/testsuite/gcc.dg/c23-tag-3.c
  607bc6afc7e342f82c33a83174e557d9  gcc/testsuite/gcc.dg/c23-tag-4.c
  612ea901fdf2797f1aeb933094f0a79b  gcc/testsuite/gcc.dg/c23-tag-5.c
! c10fa58067c939762fed3dfda22e623f  gcc/testsuite/gcc.dg/c23-tag-6.c
  dc96f49fba6ef2f3728a67ba3d88bd7b  gcc/testsuite/gcc.dg/c23-tag-7.c
  5b0f7efa111be1fd26b02c7fa0bdbbba  gcc/testsuite/gcc.dg/c23-tag-8.c
  4999199b16103189846b64b0523897fb  gcc/testsuite/gcc.dg/c23-tag-9.c
--- 43855,43881 ----
  e76c7613e08d9be9fd22a634a8e630c2  gcc/testsuite/gcc.dg/c23-static-assert-3.c
  375ec5c262f63ebb0db351c9dfa205d6  gcc/testsuite/gcc.dg/c23-static-assert-4.c
  e2f7b6f80f4e3f26cdae30d836c2bd71  gcc/testsuite/gcc.dg/c23-stdarg-1.c
+ 4adf5b256bfda9a8b69296115e125d44  gcc/testsuite/gcc.dg/c23-stdarg-10.c
+ 522c6f2f0e0582bfdffa2f93a5852e3a  gcc/testsuite/gcc.dg/c23-stdarg-11.c
  b4df46eb0ac4934c16cabe34c2ed3b00  gcc/testsuite/gcc.dg/c23-stdarg-2.c
  5a3cfd608769a99eedc1577c6e3d487d  gcc/testsuite/gcc.dg/c23-stdarg-3.c
! b9fefef92735ca1dcf45edf63d3d00c2  gcc/testsuite/gcc.dg/c23-stdarg-4.c
  8c7bd1eb3a41e9c01555826fc97a12d7  gcc/testsuite/gcc.dg/c23-stdarg-5.c
! 3856bb95ca65f3263dd5af168d0ffb69  gcc/testsuite/gcc.dg/c23-stdarg-6.c
! 6d6a8eb65e2b7a74dc56b51b5a6fa533  gcc/testsuite/gcc.dg/c23-stdarg-7.c
! a88c127703f802836eec0bd7b26bc8da  gcc/testsuite/gcc.dg/c23-stdarg-8.c
! 8a9f62ed47133553c9427f882a2160d2  gcc/testsuite/gcc.dg/c23-stdarg-9.c
  7514e7564d94faa015d33b9c79079a0d  gcc/testsuite/gcc.dg/c23-stdatomic-1.c
  271bf1ff6599fb893b0b44cbcf58ee86  gcc/testsuite/gcc.dg/c23-stddef-1.c
+ 362ad57e19592a4626baf326dec3862d  gcc/testsuite/gcc.dg/c23-stddef-2.c
  07d702ddfa215e1acf54255a4b36cfbb  gcc/testsuite/gcc.dg/c23-stdint-1.c
+ 0f7b90cec83489a7eeafe0b598d8cd08  gcc/testsuite/gcc.dg/c23-switch-1.c
  0fa100ac71d07136c86f4081dba3d8cb  gcc/testsuite/gcc.dg/c23-tag-1.c
  a37afd5767ec0322656c9bffa259c962  gcc/testsuite/gcc.dg/c23-tag-2.c
  28c17b111090bf1699e468ec151c4176  gcc/testsuite/gcc.dg/c23-tag-3.c
  607bc6afc7e342f82c33a83174e557d9  gcc/testsuite/gcc.dg/c23-tag-4.c
  612ea901fdf2797f1aeb933094f0a79b  gcc/testsuite/gcc.dg/c23-tag-5.c
! 2e741e5a353c3a2de00db69c56b55b5c  gcc/testsuite/gcc.dg/c23-tag-6.c
  dc96f49fba6ef2f3728a67ba3d88bd7b  gcc/testsuite/gcc.dg/c23-tag-7.c
  5b0f7efa111be1fd26b02c7fa0bdbbba  gcc/testsuite/gcc.dg/c23-tag-8.c
  4999199b16103189846b64b0523897fb  gcc/testsuite/gcc.dg/c23-tag-9.c
*************** ff5384288c8208d16e9d7fe9139c7935  gcc/te
*** 41518,41525 ****
--- 43886,43895 ----
  4a04fdc1b2917688f9ec19c051438142  gcc/testsuite/gcc.dg/c23-tag-alias-5.c
  403de40172cd77f39c6fc6a5b3f3852c  gcc/testsuite/gcc.dg/c23-tag-alias-6.c
  a87ef7a1a722c98afd5f9801e0d34bb0  gcc/testsuite/gcc.dg/c23-tag-alias-7.c
+ 028d21f3d7f1eec0ee043b26ab74c740  gcc/testsuite/gcc.dg/c23-tag-bitfields-1.c
  6ce48d9bfd7059f46d0c4cb22fa9409c  gcc/testsuite/gcc.dg/c23-tag-composite-1.c
  7df05bff8ea0914e43dc9d1a7bcfaf30  gcc/testsuite/gcc.dg/c23-tag-composite-10.c
+ 30810890524a83d41bae89727530ef96  gcc/testsuite/gcc.dg/c23-tag-composite-11.c
  2a3be2ea00f41c2bbd3e06492418c748  gcc/testsuite/gcc.dg/c23-tag-composite-2.c
  9ae658bfe6665d9265d63ae484d0d33d  gcc/testsuite/gcc.dg/c23-tag-composite-3.c
  f50f21736653282270339fa44e90aff6  gcc/testsuite/gcc.dg/c23-tag-composite-4.c
*************** f925d06fc9124ac699ada0a9108d874b  gcc/te
*** 41533,41545 ****
--- 43903,43920 ----
  0389a93e0f1a3d1fac4509f5740d5da6  gcc/testsuite/gcc.dg/c23-tag-enum-3.c
  0055b19c65db8c4a7153ac49409a9909  gcc/testsuite/gcc.dg/c23-tag-enum-4.c
  5cae518453c91095f981d0cea74e2ba4  gcc/testsuite/gcc.dg/c23-tag-enum-5.c
+ 1def4d8fb7175e1b55fd309155837757  gcc/testsuite/gcc.dg/c23-tag-enum-6.c
+ 883efe0095e7f5d90eb9511bfa49d488  gcc/testsuite/gcc.dg/c23-tag-enum-7.c
  3e98315cb95a832891cdfa8d8e10e249  gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c
  0b596bd7e1bec3783e0fdd36504109fa  gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c
+ fd633f2c8a4b49b0ff2fa654c7a385c8  gcc/testsuite/gcc.dg/c23-tag-incomplete-alias-1.c
  f9d9a6aa528a2d63b05c515515d24aa3  gcc/testsuite/gcc.dg/c23-thread-local-1.c
  72df3a86b0e765f89476624c72c5159e  gcc/testsuite/gcc.dg/c23-thread-local-2.c
  c71ad9293ce1f47a6a055d337c7a269d  gcc/testsuite/gcc.dg/c23-typeof-1.c
  7a5e3bdcd485d74b2a14369256295d4f  gcc/testsuite/gcc.dg/c23-typeof-2.c
  5fed9898a658430519e4f3ca5fee04bf  gcc/testsuite/gcc.dg/c23-typeof-3.c
+ 2163095ba5f70105dd4aa5329a020654  gcc/testsuite/gcc.dg/c23-typeof-4.c
+ f4672a0fa296ff1f230afb575ea7b370  gcc/testsuite/gcc.dg/c23-typeof-5.c
  39a77c32e060a8257be1b663a9aff54d  gcc/testsuite/gcc.dg/c23-unproto-1.c
  0a82dbcd3d8522f7eb27c32dd76251a2  gcc/testsuite/gcc.dg/c23-unproto-2.c
  2a322bc0f9bd9664b58e0beaa0745bb5  gcc/testsuite/gcc.dg/c23-unproto-3.c
*************** ca88e7a72529e8e7e74573b91cdf1529  gcc/te
*** 41550,41555 ****
--- 43925,43980 ----
  8c1287aaf48b051bc9180e7b383efa5d  gcc/testsuite/gcc.dg/c23-utf8char-3.c
  662e4b4e31fb660658c6ab71bbeb001d  gcc/testsuite/gcc.dg/c23-utf8str-type.c
  f2a4898d3ca2464c3600e2f890f8307c  gcc/testsuite/gcc.dg/c23-utf8str.c
+ 3bd76821440f3b720a59e2121bad385e  gcc/testsuite/gcc.dg/c23-version-1.c
+ 0ed09c36b7f29978fac9dcb2332979a9  gcc/testsuite/gcc.dg/c23-version-2.c
+ 61a95731fffe1417c8142841180bafdf  gcc/testsuite/gcc.dg/c2y-align-1.c
+ a3e9b1a0ce807ace8388f49427e9ce2e  gcc/testsuite/gcc.dg/c2y-align-2.c
+ 6e0a8941af72f8d447e2231ec0d5c8ee  gcc/testsuite/gcc.dg/c2y-byte-alias-1.c
+ bc33f75b7f1800ec5ea5cb736ab1b650  gcc/testsuite/gcc.dg/c2y-byte-alias-2.c
+ 554f63fb011f73f9810c6958f04a6d55  gcc/testsuite/gcc.dg/c2y-byte-alias-3.c
+ af5ca76c94efb603f97f680a99e2c6c4  gcc/testsuite/gcc.dg/c2y-complex-1.c
+ 3ea866667ec9b0c47610e82703f851f1  gcc/testsuite/gcc.dg/c2y-complex-2.c
+ 7b04326f2e32f7eb21eef12ae77cd93b  gcc/testsuite/gcc.dg/c2y-digit-separators-1.c
+ 71ddc5448879ef67db87428dd3f8e299  gcc/testsuite/gcc.dg/c2y-digit-separators-2.c
+ f2a473638b83447f8d1205f5d6251d92  gcc/testsuite/gcc.dg/c2y-generic-1.c
+ 33ed56b095cc441bd571917111dfb781  gcc/testsuite/gcc.dg/c2y-generic-2.c
+ bd62c1a3c1c53d4d56eb3dfc2e6fe27c  gcc/testsuite/gcc.dg/c2y-generic-3.c
+ 98704a88665294812bcac95656b06058  gcc/testsuite/gcc.dg/c2y-if-decls-1.c
+ 48d839375c465a02424ec02f3ce5039e  gcc/testsuite/gcc.dg/c2y-if-decls-10.c
+ 2b576c06f00d531cb0473cc879db458c  gcc/testsuite/gcc.dg/c2y-if-decls-11.c
+ 3801119be470b7c421c91b0e324140cb  gcc/testsuite/gcc.dg/c2y-if-decls-2.c
+ e28ad5da0686efc5da25a7f1b5540d2b  gcc/testsuite/gcc.dg/c2y-if-decls-3.c
+ 3ded6d59fe9bf0b73734dd5f4d19bed3  gcc/testsuite/gcc.dg/c2y-if-decls-4.c
+ 4c017c94a239f2a24341ba195d98669f  gcc/testsuite/gcc.dg/c2y-if-decls-5.c
+ 3ce50142de0bab5449eb37ec1a7a3ea0  gcc/testsuite/gcc.dg/c2y-if-decls-6.c
+ 6a9a283f52601887705f3df90ca3d527  gcc/testsuite/gcc.dg/c2y-if-decls-7.c
+ eab42fdeb9600976ccee8124c3b66528  gcc/testsuite/gcc.dg/c2y-if-decls-8.c
+ 4326b63e41f50eed649ab1636d1760dd  gcc/testsuite/gcc.dg/c2y-if-decls-9.c
+ ddb816692dba06249da05fcbf8b1c1ef  gcc/testsuite/gcc.dg/c2y-imaginary-constants-1.c
+ 09bddd5258cac47e68a0430850f0fa2d  gcc/testsuite/gcc.dg/c2y-imaginary-constants-10.c
+ 997cbbfbf46cb80020294b7660abe871  gcc/testsuite/gcc.dg/c2y-imaginary-constants-11.c
+ d5f937f979c417b0cbad2bd476535266  gcc/testsuite/gcc.dg/c2y-imaginary-constants-12.c
+ 3465a894ddfba50d4d7c3f738ad07b5c  gcc/testsuite/gcc.dg/c2y-imaginary-constants-2.c
+ d59baa3110c0a7afc494f61122c272e9  gcc/testsuite/gcc.dg/c2y-imaginary-constants-3.c
+ 5dfa26d715a8daea8bf8032cfe306b90  gcc/testsuite/gcc.dg/c2y-imaginary-constants-4.c
+ 1e347587401fd5605a69ef662ff7ce02  gcc/testsuite/gcc.dg/c2y-imaginary-constants-5.c
+ e0c7fb6332e3fb8d44fbd96d709b0f77  gcc/testsuite/gcc.dg/c2y-imaginary-constants-6.c
+ e29dfebcc91efb4a6141cc6831d3fb23  gcc/testsuite/gcc.dg/c2y-imaginary-constants-7.c
+ 28796811a466a9b84dc89c824a73962a  gcc/testsuite/gcc.dg/c2y-imaginary-constants-8.c
+ 9116eeb1193a8e8b6e721056e96f1ba0  gcc/testsuite/gcc.dg/c2y-imaginary-constants-9.c
+ f2024c93b6b3c3dea4d2faccbd83aa2e  gcc/testsuite/gcc.dg/c2y-named-loops-1.c
+ 46a3a94067e0f11e00c1bd23bc2786dd  gcc/testsuite/gcc.dg/c2y-named-loops-2.c
+ 34b7b4b191cc4cee19b53b5b78ec89c5  gcc/testsuite/gcc.dg/c2y-named-loops-4.c
+ 9048b7b38c2a423f2b6fcb28a15b2ae6  gcc/testsuite/gcc.dg/c2y-named-loops-5.c
+ aaf00b0923bb4100806f079ea45da0c9  gcc/testsuite/gcc.dg/c2y-named-loops-6.c
+ 8242604bc85835eaa9f260b919f5df74  gcc/testsuite/gcc.dg/c2y-named-loops-7.c
+ 0fb86b403b879d89c2f8e529504192b3  gcc/testsuite/gcc.dg/c2y-octal-constants-1.c
+ 97003c946037ba2af991d25bbc61847a  gcc/testsuite/gcc.dg/c2y-octal-constants-2.c
+ 5c671034e5295261824f901786e5eb97  gcc/testsuite/gcc.dg/c2y-octal-constants-3.c
+ 7b91caa232dcb33030877f5bf290f5da  gcc/testsuite/gcc.dg/c2y-switch-1.c
+ 7c1a09cbecfd008dbe8308919ad52ff9  gcc/testsuite/gcc.dg/c2y-switch-2.c
+ 11574f2264dab8c604726d84b221eb44  gcc/testsuite/gcc.dg/c2y-switch-3.c
+ 122ac86f7af12d25e48c9c772f6db9f1  gcc/testsuite/gcc.dg/c2y-void-parm-1.c
  0908655191bb29a30d0b1908b3cf088e  gcc/testsuite/gcc.dg/c90-align-1.c
  8caa60cd18ee5b631b7c2b11150305a4  gcc/testsuite/gcc.dg/c90-anon-struct-1.c
  65e495bcc821b0c04c03e8e7c871913c  gcc/testsuite/gcc.dg/c90-array-lval-1.c
*************** a280eed8597072a3f733e19d295636fa  gcc/te
*** 41570,41576 ****
  02b876e31ac73f3090f510253f1048f1  gcc/testsuite/gcc.dg/c90-complit-2.c
  44572329674d37dc562af967e34d6aa9  gcc/testsuite/gcc.dg/c90-const-expr-1.c
  650fc9a34b50bcabf5a98414ca62bd2b  gcc/testsuite/gcc.dg/c90-const-expr-10.c
! 32894fa79593617ac1a94e3402e828d8  gcc/testsuite/gcc.dg/c90-const-expr-11.c
  7c75015fa11f3a39bc4a71cc2b084faf  gcc/testsuite/gcc.dg/c90-const-expr-2.c
  95cb318eabac70d57a2cb2bcb10495e2  gcc/testsuite/gcc.dg/c90-const-expr-3.c
  30d113d3c9e064035e3f9dbed7c9792d  gcc/testsuite/gcc.dg/c90-const-expr-4.c
--- 43995,44001 ----
  02b876e31ac73f3090f510253f1048f1  gcc/testsuite/gcc.dg/c90-complit-2.c
  44572329674d37dc562af967e34d6aa9  gcc/testsuite/gcc.dg/c90-const-expr-1.c
  650fc9a34b50bcabf5a98414ca62bd2b  gcc/testsuite/gcc.dg/c90-const-expr-10.c
! d38e0497a270a0f676cbe3e15201c17f  gcc/testsuite/gcc.dg/c90-const-expr-11.c
  7c75015fa11f3a39bc4a71cc2b084faf  gcc/testsuite/gcc.dg/c90-const-expr-2.c
  95cb318eabac70d57a2cb2bcb10495e2  gcc/testsuite/gcc.dg/c90-const-expr-3.c
  30d113d3c9e064035e3f9dbed7c9792d  gcc/testsuite/gcc.dg/c90-const-expr-4.c
*************** a702c8b267bd2fbef0921f46eb89d918  gcc/te
*** 41631,41636 ****
--- 44056,44062 ----
  d1d4b66fc7108d6a2b6ba190627c8747  gcc/testsuite/gcc.dg/c99-arraydecl-1.c
  7478141a3142498a969c4b60d0c04bc8  gcc/testsuite/gcc.dg/c99-arraydecl-2.c
  40b6185dca437ca18f60c7abc52aa771  gcc/testsuite/gcc.dg/c99-arraydecl-3.c
+ 71460b636bd24bff5d376691e383cb17  gcc/testsuite/gcc.dg/c99-arraydecl-4.c
  e674ac9efc9bb122bb40176f2984342b  gcc/testsuite/gcc.dg/c99-atomic-1.c
  6dd4518038be6ff0567ac664d6a0d8be  gcc/testsuite/gcc.dg/c99-bool-1.c
  08b21a580456edf9041b31d597756025  gcc/testsuite/gcc.dg/c99-bool-2.c
*************** ba2db177292eaaf55d14598ece867f4d  gcc/te
*** 41648,41654 ****
  75959a61145abfe0ad77766e727d8815  gcc/testsuite/gcc.dg/c99-const-expr-10.c
  966bc28102c30791e42b769d5e804878  gcc/testsuite/gcc.dg/c99-const-expr-11.c
  351160cb991a2541a836d78ff5a3d7a7  gcc/testsuite/gcc.dg/c99-const-expr-12.c
! be44655002ff53b455ed10f2b01571fe  gcc/testsuite/gcc.dg/c99-const-expr-13.c
  601921df5dca967e56d6ff0c58d11e1a  gcc/testsuite/gcc.dg/c99-const-expr-14.c
  59aa40df8c80917e30f6ec6cca1ecd5b  gcc/testsuite/gcc.dg/c99-const-expr-15.c
  2b0ea14af55d8b5c0efa00351b0200a5  gcc/testsuite/gcc.dg/c99-const-expr-2.c
--- 44074,44080 ----
  75959a61145abfe0ad77766e727d8815  gcc/testsuite/gcc.dg/c99-const-expr-10.c
  966bc28102c30791e42b769d5e804878  gcc/testsuite/gcc.dg/c99-const-expr-11.c
  351160cb991a2541a836d78ff5a3d7a7  gcc/testsuite/gcc.dg/c99-const-expr-12.c
! ae4bc61700adf457ddd9a954d9cb7fa1  gcc/testsuite/gcc.dg/c99-const-expr-13.c
  601921df5dca967e56d6ff0c58d11e1a  gcc/testsuite/gcc.dg/c99-const-expr-14.c
  59aa40df8c80917e30f6ec6cca1ecd5b  gcc/testsuite/gcc.dg/c99-const-expr-15.c
  2b0ea14af55d8b5c0efa00351b0200a5  gcc/testsuite/gcc.dg/c99-const-expr-2.c
*************** aefe6fda64bad8d6ce6d860092bdd719  gcc/te
*** 41745,41751 ****
  4b5cb651177d17b152a4ab42c191b5de  gcc/testsuite/gcc.dg/c99-typedef-1.c
  9ac77a67b2a3e6238d10fab59bc80485  gcc/testsuite/gcc.dg/c99-typespec-1.c
  d461daca8eddd027e830b294312b4984  gcc/testsuite/gcc.dg/c99-version-1.c
! 11e7929fcfa5b4a250763e3a851fed1f  gcc/testsuite/gcc.dg/c99-vla-1.c
  2b529356b58e4e9de40ac06b091dd665  gcc/testsuite/gcc.dg/c99-vla-2.c
  d39ebdb10e7e93cf876b502cf1c69e94  gcc/testsuite/gcc.dg/c99-vla-jump-1.c
  dea4e1df7916adbc67c06017f76448cf  gcc/testsuite/gcc.dg/c99-vla-jump-2.c
--- 44171,44177 ----
  4b5cb651177d17b152a4ab42c191b5de  gcc/testsuite/gcc.dg/c99-typedef-1.c
  9ac77a67b2a3e6238d10fab59bc80485  gcc/testsuite/gcc.dg/c99-typespec-1.c
  d461daca8eddd027e830b294312b4984  gcc/testsuite/gcc.dg/c99-version-1.c
! 72af0c29affd552a74e75f8aa9c9a0df  gcc/testsuite/gcc.dg/c99-vla-1.c
  2b529356b58e4e9de40ac06b091dd665  gcc/testsuite/gcc.dg/c99-vla-2.c
  d39ebdb10e7e93cf876b502cf1c69e94  gcc/testsuite/gcc.dg/c99-vla-jump-1.c
  dea4e1df7916adbc67c06017f76448cf  gcc/testsuite/gcc.dg/c99-vla-jump-2.c
*************** e78729c56e303315c992707b363e6724  gcc/te
*** 41754,41759 ****
--- 44180,44186 ----
  70444dc038fc4042bd0c84c555d0266c  gcc/testsuite/gcc.dg/c99-vla-jump-5.c
  2fb763f089e4a2ddb040f662340d12aa  gcc/testsuite/gcc.dg/call-diag-1.c
  9a6f0f5dac79bc4f319cc629a3c594b5  gcc/testsuite/gcc.dg/call-diag-2.c
+ 0dc21f1d4c48f19f3d03623c527d969a  gcc/testsuite/gcc.dg/callgraph-info-1.c
  5730e89a4479609571b44079ae874508  gcc/testsuite/gcc.dg/case-bogus-1.c
  49439e2403d12792811837f5d084f5d6  gcc/testsuite/gcc.dg/case-const-1.c
  9f50fca2bb570c1249a68d22661a874b  gcc/testsuite/gcc.dg/case-const-2.c
*************** f58931af8311670f4e7ca6c218de61e8  gcc/te
*** 41762,41768 ****
  24214b7fcdc8d76c4a3777cb6d362a60  gcc/testsuite/gcc.dg/cast-2.c
  1a0f14eb008f2ba92c5a7a26d2c56282  gcc/testsuite/gcc.dg/cast-3.c
  0820817e68c6e18b2fc1e4b46cce70f9  gcc/testsuite/gcc.dg/cast-4.c
! 83e9582f6195874aa67985e3774e3b48  gcc/testsuite/gcc.dg/cast-function-1.c
  244fc61256640916f7aa9f3db53968f7  gcc/testsuite/gcc.dg/cast-lvalue-1.c
  64a3303f073dc01e8a0b85ebc661dc6e  gcc/testsuite/gcc.dg/cast-lvalue-2.c
  1034415e9e0336fe063d109c74a55d2c  gcc/testsuite/gcc.dg/cast-pretty-print-1.c
--- 44189,44195 ----
  24214b7fcdc8d76c4a3777cb6d362a60  gcc/testsuite/gcc.dg/cast-2.c
  1a0f14eb008f2ba92c5a7a26d2c56282  gcc/testsuite/gcc.dg/cast-3.c
  0820817e68c6e18b2fc1e4b46cce70f9  gcc/testsuite/gcc.dg/cast-4.c
! 1f850ed2c623cc4ed1219d9afbf3f145  gcc/testsuite/gcc.dg/cast-function-1.c
  244fc61256640916f7aa9f3db53968f7  gcc/testsuite/gcc.dg/cast-lvalue-1.c
  64a3303f073dc01e8a0b85ebc661dc6e  gcc/testsuite/gcc.dg/cast-lvalue-2.c
  1034415e9e0336fe063d109c74a55d2c  gcc/testsuite/gcc.dg/cast-pretty-print-1.c
*************** f58931af8311670f4e7ca6c218de61e8  gcc/te
*** 41771,41777 ****
  b19d1feeef4110bea875a543dbbe5ef2  gcc/testsuite/gcc.dg/cast-qual-3.c
  7cf8e5bafba14ba705d72e0297e402d0  gcc/testsuite/gcc.dg/cdce1.c
  11ec8737ce99297ae6e2f4ec003ccd1f  gcc/testsuite/gcc.dg/cdce2.c
! 1488f440ee8aa97877192c9f0d525bf4  gcc/testsuite/gcc.dg/cdce3.c
  c8850be7a0e22bf2e52b8e88bb01c409  gcc/testsuite/gcc.dg/char-compare.c
  9c1af6a5f1547d7888309e68fa1e645e  gcc/testsuite/gcc.dg/charset/asm1.c
  de11a3779b8f68e37026c0989fe00062  gcc/testsuite/gcc.dg/charset/asm2.c
--- 44198,44204 ----
  b19d1feeef4110bea875a543dbbe5ef2  gcc/testsuite/gcc.dg/cast-qual-3.c
  7cf8e5bafba14ba705d72e0297e402d0  gcc/testsuite/gcc.dg/cdce1.c
  11ec8737ce99297ae6e2f4ec003ccd1f  gcc/testsuite/gcc.dg/cdce2.c
! 693a889675d3cabbd08922c5d11d486e  gcc/testsuite/gcc.dg/cdce3.c
  c8850be7a0e22bf2e52b8e88bb01c409  gcc/testsuite/gcc.dg/char-compare.c
  9c1af6a5f1547d7888309e68fa1e645e  gcc/testsuite/gcc.dg/charset/asm1.c
  de11a3779b8f68e37026c0989fe00062  gcc/testsuite/gcc.dg/charset/asm2.c
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 41783,41801 ****
  7bcfb1562ffc5ec66175fdcc52054745  gcc/testsuite/gcc.dg/charset/attribute2.c
  d256d028f437be7e103b223e7c20fe96  gcc/testsuite/gcc.dg/charset/builtin1.c
  a00066d47a6f8dc20ebf4861a2541212  gcc/testsuite/gcc.dg/charset/builtin2.c
! c5ff5e484aaffd5e51d007f001ae44df  gcc/testsuite/gcc.dg/charset/charset.exp
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/gcc.dg/charset/extern.c
  5314225894f8ef8a8d8249f4a0973380  gcc/testsuite/gcc.dg/charset/function.c
  a59f9cb8c1327a655a207f133f19d6fb  gcc/testsuite/gcc.dg/charset/string.c
! 61d2a59a89884119b3c99b8290689bf2  gcc/testsuite/gcc.dg/cleanup-1.c
  0ae922071b912ca26621cc61987c07b6  gcc/testsuite/gcc.dg/cleanup-10.c
  d7691ea78eb37229233915a20b69b353  gcc/testsuite/gcc.dg/cleanup-11.c
! a0ff63bff744b6d65be67afd83b12109  gcc/testsuite/gcc.dg/cleanup-12.c
! ce7d26611551540012f35355f0f9567f  gcc/testsuite/gcc.dg/cleanup-13.c
  78bae3132e2068a254f88515c6bf0640  gcc/testsuite/gcc.dg/cleanup-2.c
  c2a1d7446900f7baf929104c039559f3  gcc/testsuite/gcc.dg/cleanup-3.c
  fc4b23c0fc21775250b7d884eb0fe56e  gcc/testsuite/gcc.dg/cleanup-4.c
! e132b2e5a0d90cfe22ca0777fe83b2dc  gcc/testsuite/gcc.dg/cleanup-5.c
  d9e45b781a97ee5ac71b788011eae52c  gcc/testsuite/gcc.dg/cleanup-6.c
  63f9f4f172f1c35d6e9325335509bbae  gcc/testsuite/gcc.dg/cleanup-7.c
  4b3f3381c96015f94c259a34b69db093  gcc/testsuite/gcc.dg/cleanup-8.c
--- 44210,44228 ----
  7bcfb1562ffc5ec66175fdcc52054745  gcc/testsuite/gcc.dg/charset/attribute2.c
  d256d028f437be7e103b223e7c20fe96  gcc/testsuite/gcc.dg/charset/builtin1.c
  a00066d47a6f8dc20ebf4861a2541212  gcc/testsuite/gcc.dg/charset/builtin2.c
! d1aed59a6f4591f3e75b8e511759a166  gcc/testsuite/gcc.dg/charset/charset.exp
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/gcc.dg/charset/extern.c
  5314225894f8ef8a8d8249f4a0973380  gcc/testsuite/gcc.dg/charset/function.c
  a59f9cb8c1327a655a207f133f19d6fb  gcc/testsuite/gcc.dg/charset/string.c
! e7b6f2e086464a9d3796e4f816d102dc  gcc/testsuite/gcc.dg/cleanup-1.c
  0ae922071b912ca26621cc61987c07b6  gcc/testsuite/gcc.dg/cleanup-10.c
  d7691ea78eb37229233915a20b69b353  gcc/testsuite/gcc.dg/cleanup-11.c
! 1347ce78af9fa25714349fa1d92c58c1  gcc/testsuite/gcc.dg/cleanup-12.c
! 0d5464377ab7c00e3938d05a3bad6f46  gcc/testsuite/gcc.dg/cleanup-13.c
  78bae3132e2068a254f88515c6bf0640  gcc/testsuite/gcc.dg/cleanup-2.c
  c2a1d7446900f7baf929104c039559f3  gcc/testsuite/gcc.dg/cleanup-3.c
  fc4b23c0fc21775250b7d884eb0fe56e  gcc/testsuite/gcc.dg/cleanup-4.c
! a335851c038863d6811fa2982950fc53  gcc/testsuite/gcc.dg/cleanup-5.c
  d9e45b781a97ee5ac71b788011eae52c  gcc/testsuite/gcc.dg/cleanup-6.c
  63f9f4f172f1c35d6e9325335509bbae  gcc/testsuite/gcc.dg/cleanup-7.c
  4b3f3381c96015f94c259a34b69db093  gcc/testsuite/gcc.dg/cleanup-8.c
*************** c7cb5e1831bea1746c3a206e4c26e3ec  gcc/te
*** 41829,41835 ****
  ed52253f6b0d3e0e42d8c7d911691e47  gcc/testsuite/gcc.dg/compare8.c
  e505e91e0c3898015606540b084a3cf3  gcc/testsuite/gcc.dg/compare9.c
  320a670a68ed763f73f02634dc198ac9  gcc/testsuite/gcc.dg/compat/compat-common.h
! 9f8c9c9f452a9946cc3fcdc10da7aaf9  gcc/testsuite/gcc.dg/compat/compat.exp
  24894b4e4b3498731affefac610f0a05  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_main.c
  fe9eda5144c4b80c732bde86debf0550  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_x.c
  564c8abb5b6fdd9d796e4c9983416c75  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_y.c
--- 44256,44262 ----
  ed52253f6b0d3e0e42d8c7d911691e47  gcc/testsuite/gcc.dg/compare8.c
  e505e91e0c3898015606540b084a3cf3  gcc/testsuite/gcc.dg/compare9.c
  320a670a68ed763f73f02634dc198ac9  gcc/testsuite/gcc.dg/compat/compat-common.h
! 36eccda1a7f6f6bac4e45186f8367e0d  gcc/testsuite/gcc.dg/compat/compat.exp
  24894b4e4b3498731affefac610f0a05  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_main.c
  fe9eda5144c4b80c732bde86debf0550  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_x.c
  564c8abb5b6fdd9d796e4c9983416c75  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_y.c
*************** bd89a986baa3ba1a22c4ebeceedf0b08  gcc/te
*** 41964,41970 ****
  a6131c0890dbfb7b2249131495762f84  gcc/testsuite/gcc.dg/compat/struct-by-value-21_main.c
  104a9e2f1328c06c43946eda39dbddcd  gcc/testsuite/gcc.dg/compat/struct-by-value-21_x.c
  d072570141ae7fb3f41bb5ece9c427b6  gcc/testsuite/gcc.dg/compat/struct-by-value-21_y.c
! 9e3061e0241ffd84d95aee884ee8adba  gcc/testsuite/gcc.dg/compat/struct-by-value-22_main.c
  119fb658d2c729f89fe3956b714545f1  gcc/testsuite/gcc.dg/compat/struct-by-value-22_x.c
  b41894ee37660e085d1315862c4f0121  gcc/testsuite/gcc.dg/compat/struct-by-value-22_y.c
  845a7147dd1c882491cbb6e531765091  gcc/testsuite/gcc.dg/compat/struct-by-value-2_main.c
--- 44391,44397 ----
  a6131c0890dbfb7b2249131495762f84  gcc/testsuite/gcc.dg/compat/struct-by-value-21_main.c
  104a9e2f1328c06c43946eda39dbddcd  gcc/testsuite/gcc.dg/compat/struct-by-value-21_x.c
  d072570141ae7fb3f41bb5ece9c427b6  gcc/testsuite/gcc.dg/compat/struct-by-value-21_y.c
! 92f98f353edc336539f967b5f19b53ea  gcc/testsuite/gcc.dg/compat/struct-by-value-22_main.c
  119fb658d2c729f89fe3956b714545f1  gcc/testsuite/gcc.dg/compat/struct-by-value-22_x.c
  b41894ee37660e085d1315862c4f0121  gcc/testsuite/gcc.dg/compat/struct-by-value-22_y.c
  845a7147dd1c882491cbb6e531765091  gcc/testsuite/gcc.dg/compat/struct-by-value-2_main.c
*************** e3a24eb035a465068c223e42da9b918c  gcc/te
*** 42002,42014 ****
  27d31c8434ac7b20af0c6ab64bcc9e67  gcc/testsuite/gcc.dg/compat/struct-by-value-9_y.c
  b13ce33543763e05e497e6e9b0b06afc  gcc/testsuite/gcc.dg/compat/struct-complex-1.h
  1f597ca9134ff15cdb56349490c465e5  gcc/testsuite/gcc.dg/compat/struct-complex-1_main.c
! 74378db46482482f9a2e4053b9181abd  gcc/testsuite/gcc.dg/compat/struct-complex-1_x.c
  693895d45dc01aca454e1031aaf023bc  gcc/testsuite/gcc.dg/compat/struct-complex-1_y.c
  9df88c783c291efaab2378ca7f8bff70  gcc/testsuite/gcc.dg/compat/struct-complex-2.h
  b2ee80d950ef18b6d552d6f80b1ea7ec  gcc/testsuite/gcc.dg/compat/struct-complex-2_main.c
! a03c72d9882332482357735b2b82316a  gcc/testsuite/gcc.dg/compat/struct-complex-2_x.c
  8797a70232b48157299f45876cf6b247  gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c
! 2b7cb37330ebef4b7f2394b6b010d436  gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
  63acee7a9bb7d9a457beb370e4beede2  gcc/testsuite/gcc.dg/compat/struct-layout-1.h
  d628ab6f03137145384ca913f20d6ac3  gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
  997082aeb20119519c8c3e77ee7f6cd1  gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c
--- 44429,44441 ----
  27d31c8434ac7b20af0c6ab64bcc9e67  gcc/testsuite/gcc.dg/compat/struct-by-value-9_y.c
  b13ce33543763e05e497e6e9b0b06afc  gcc/testsuite/gcc.dg/compat/struct-complex-1.h
  1f597ca9134ff15cdb56349490c465e5  gcc/testsuite/gcc.dg/compat/struct-complex-1_main.c
! a2b373d1eb2ec6aa198281313f6c7dad  gcc/testsuite/gcc.dg/compat/struct-complex-1_x.c
  693895d45dc01aca454e1031aaf023bc  gcc/testsuite/gcc.dg/compat/struct-complex-1_y.c
  9df88c783c291efaab2378ca7f8bff70  gcc/testsuite/gcc.dg/compat/struct-complex-2.h
  b2ee80d950ef18b6d552d6f80b1ea7ec  gcc/testsuite/gcc.dg/compat/struct-complex-2_main.c
! b76eea380861b699c71f6d4e5fa918a8  gcc/testsuite/gcc.dg/compat/struct-complex-2_x.c
  8797a70232b48157299f45876cf6b247  gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c
! e55d0e6cbefc0fc5a3986678888295fd  gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
  63acee7a9bb7d9a457beb370e4beede2  gcc/testsuite/gcc.dg/compat/struct-layout-1.h
  d628ab6f03137145384ca913f20d6ac3  gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
  997082aeb20119519c8c3e77ee7f6cd1  gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c
*************** eb267873b81efdb29f2e973998cda2d0  gcc/te
*** 42045,42051 ****
  bbac606ab4bf05fb0344b3f2c3fbb45b  gcc/testsuite/gcc.dg/compat/union-init.h
  628b90f6dbcdc364b1b13508c725e200  gcc/testsuite/gcc.dg/compat/union-m128-1.h
  e07673682d6c9c85ae75ebc8fb029d04  gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
! 4926d32bdcbafe27cc379f1f55b8f7d9  gcc/testsuite/gcc.dg/compat/union-m128-1_x.c
  61d59afb74085346642ba28e622df5fc  gcc/testsuite/gcc.dg/compat/union-m128-1_y.c
  e4449019b1294664801d1ef336214885  gcc/testsuite/gcc.dg/compat/union-return-1_main.c
  2530a9695c00ab01e9f58fa0aa5c4a32  gcc/testsuite/gcc.dg/compat/union-return-1_x.c
--- 44472,44478 ----
  bbac606ab4bf05fb0344b3f2c3fbb45b  gcc/testsuite/gcc.dg/compat/union-init.h
  628b90f6dbcdc364b1b13508c725e200  gcc/testsuite/gcc.dg/compat/union-m128-1.h
  e07673682d6c9c85ae75ebc8fb029d04  gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
! 566e48488357ad9b4bc5ea33cdc6a0f1  gcc/testsuite/gcc.dg/compat/union-m128-1_x.c
  61d59afb74085346642ba28e622df5fc  gcc/testsuite/gcc.dg/compat/union-m128-1_y.c
  e4449019b1294664801d1ef336214885  gcc/testsuite/gcc.dg/compat/union-return-1_main.c
  2530a9695c00ab01e9f58fa0aa5c4a32  gcc/testsuite/gcc.dg/compat/union-return-1_x.c
*************** c82752836e1d5d6a5f58b9bf26e9abf6  gcc/te
*** 42073,42079 ****
  93bfc276687385df73f4ce6a198252ef  gcc/testsuite/gcc.dg/compat/vector-setup.h
  66b4de358b94a61c9a5ebac5a5372393  gcc/testsuite/gcc.dg/complete-port.c
  d05bdce55447fc39d09a1133e04e88b4  gcc/testsuite/gcc.dg/completion-1.c
! 0ecae1a6ee91c5e0f624feb0fe698592  gcc/testsuite/gcc.dg/completion-2.c
  897186ef1eff2a496337a6959d7a5d3d  gcc/testsuite/gcc.dg/completion-3.c
  45e735b0d33fac192a119347115d5b0c  gcc/testsuite/gcc.dg/completion-4.c
  649ce6d53eeda31c7cb4947fab7ac38f  gcc/testsuite/gcc.dg/completion-5.c
--- 44500,44506 ----
  93bfc276687385df73f4ce6a198252ef  gcc/testsuite/gcc.dg/compat/vector-setup.h
  66b4de358b94a61c9a5ebac5a5372393  gcc/testsuite/gcc.dg/complete-port.c
  d05bdce55447fc39d09a1133e04e88b4  gcc/testsuite/gcc.dg/completion-1.c
! 6e73c2567aaa056c43a185690e967aa0  gcc/testsuite/gcc.dg/completion-2.c
  897186ef1eff2a496337a6959d7a5d3d  gcc/testsuite/gcc.dg/completion-3.c
  45e735b0d33fac192a119347115d5b0c  gcc/testsuite/gcc.dg/completion-4.c
  649ce6d53eeda31c7cb4947fab7ac38f  gcc/testsuite/gcc.dg/completion-5.c
*************** fd87d37c0d8c780e43c22463e7f47466  gcc/te
*** 42112,42118 ****
  774aca589d2053b28218f676881669bf  gcc/testsuite/gcc.dg/cpp/19940712-1.h
  aa9731c7fab940ed529ffa5748e897e5  gcc/testsuite/gcc.dg/cpp/19940712-1a.h
  d2cb31e53c80a723fcf645091264b661  gcc/testsuite/gcc.dg/cpp/19940712-1b.h
! 573d6dc5f60ee5a29cd5264cb0641e00  gcc/testsuite/gcc.dg/cpp/19951025-1.c
  9924671630201db187f8e6a15ee1ac91  gcc/testsuite/gcc.dg/cpp/19951227-1.c
  e75f13a1d98942713890a087ba6d6788  gcc/testsuite/gcc.dg/cpp/19960224-1.c
  8baf8902791d208099e48c458107bb61  gcc/testsuite/gcc.dg/cpp/19990119-1.c
--- 44539,44545 ----
  774aca589d2053b28218f676881669bf  gcc/testsuite/gcc.dg/cpp/19940712-1.h
  aa9731c7fab940ed529ffa5748e897e5  gcc/testsuite/gcc.dg/cpp/19940712-1a.h
  d2cb31e53c80a723fcf645091264b661  gcc/testsuite/gcc.dg/cpp/19940712-1b.h
! 60a31f24faffba63eed41853252fe6a8  gcc/testsuite/gcc.dg/cpp/19951025-1.c
  9924671630201db187f8e6a15ee1ac91  gcc/testsuite/gcc.dg/cpp/19951227-1.c
  e75f13a1d98942713890a087ba6d6788  gcc/testsuite/gcc.dg/cpp/19960224-1.c
  8baf8902791d208099e48c458107bb61  gcc/testsuite/gcc.dg/cpp/19990119-1.c
*************** d6fdc59bae27f9e3097840361d13c67a  gcc/te
*** 42160,42166 ****
  342b42bbace19c658aff4b38bba906c3  gcc/testsuite/gcc.dg/cpp/_Pragma7.c
  5d435e2d88987bbe8d9e62951d0d9d04  gcc/testsuite/gcc.dg/cpp/arith-1.c
  55fe1a813facb5ba765d096c8e745fa1  gcc/testsuite/gcc.dg/cpp/arith-3.c
! 98c321843f4efbd8423c0107fb84eb2e  gcc/testsuite/gcc.dg/cpp/assembl2.S
  d2ceecccef1772ada3beff72d6faed3e  gcc/testsuite/gcc.dg/cpp/assembler.S
  9ca3af4c8a508d8e50858641266fef9f  gcc/testsuite/gcc.dg/cpp/assert1.c
  5e115586c68bc98bb44755b93dcf7068  gcc/testsuite/gcc.dg/cpp/assert2.c
--- 44587,44593 ----
  342b42bbace19c658aff4b38bba906c3  gcc/testsuite/gcc.dg/cpp/_Pragma7.c
  5d435e2d88987bbe8d9e62951d0d9d04  gcc/testsuite/gcc.dg/cpp/arith-1.c
  55fe1a813facb5ba765d096c8e745fa1  gcc/testsuite/gcc.dg/cpp/arith-3.c
! 0e47a0aeb0461326ad030909d28a1b1d  gcc/testsuite/gcc.dg/cpp/assembl2.S
  d2ceecccef1772ada3beff72d6faed3e  gcc/testsuite/gcc.dg/cpp/assembler.S
  9ca3af4c8a508d8e50858641266fef9f  gcc/testsuite/gcc.dg/cpp/assert1.c
  5e115586c68bc98bb44755b93dcf7068  gcc/testsuite/gcc.dg/cpp/assert2.c
*************** c7a189aca9e28ef213e587486efddd56  gcc/te
*** 42170,42197 ****
  127f0aa0b3c3af7297abd95719b83459  gcc/testsuite/gcc.dg/cpp/avoidpaste2.c
  496fd661182992891454e1a97f9e8da3  gcc/testsuite/gcc.dg/cpp/backslash.c
  518079f5bd3713c612d16067f74f29b2  gcc/testsuite/gcc.dg/cpp/backslash2.c
! 8f51f2bf3c9792e415bae62650028376  gcc/testsuite/gcc.dg/cpp/builtin-macro-1.c
  37d5a2a32c5264c67c0b77cd9832e868  gcc/testsuite/gcc.dg/cpp/c11-elifdef-1.c
  fcc0ebd873adc208f52d57df24688339  gcc/testsuite/gcc.dg/cpp/c11-scope-1.c
  4a111c6234dcf4e8ec0ae015130cc011  gcc/testsuite/gcc.dg/cpp/c11-trigraphs-1.c
  10cd08bea3ecf287dbd9876702ff1d3a  gcc/testsuite/gcc.dg/cpp/c11-vararg-1.c
! f64fee5a7a7bd4a8660ecf2603ddea4e  gcc/testsuite/gcc.dg/cpp/c11-warning-1.c
! c4cbaf0a4576fecd1fff07af3c803dd4  gcc/testsuite/gcc.dg/cpp/c11-warning-2.c
! 075e9a268fb059bb861a24a6813a7cfd  gcc/testsuite/gcc.dg/cpp/c11-warning-3.c
  084d78e1dcad7fb9fe18a53e093e651e  gcc/testsuite/gcc.dg/cpp/c11-warning-4.c
  51e01528783cda46e99a6baa7fb77e34  gcc/testsuite/gcc.dg/cpp/c17-scope-1.c
  362072560151717e750b865d5be20d37  gcc/testsuite/gcc.dg/cpp/c23-elifdef-1.c
! f24acbada96d10bec85a472b37571c61  gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c
  7373b49b84dffe2e4b5a0154c878373e  gcc/testsuite/gcc.dg/cpp/c23-scope-1.c
  a10ccedb1b38cdf1a0bc3ce16e7dae95  gcc/testsuite/gcc.dg/cpp/c23-scope-2.c
  0bf4cb02c48e7e2ffd7b2f09c54cd542  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-1.c
  69447a117d2ccce43779b1b5225a6b43  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-2.c
! be3c460c0098e94c006fb156340fafa9  gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
  f9090b1e74ab40bdc1f405da87a0b268  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1-utf8.c
  7025ef766c4500cead86027d84ce9cc0  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1.c
  21e6b934f55d60531851ec4b425a56bd  gcc/testsuite/gcc.dg/cpp/c23-va-opt-1.c
  2ec588253fa67f809fb2eab5cf4a22ff  gcc/testsuite/gcc.dg/cpp/c23-warning-1.c
! 6a17d3a3097e59dd2e797631602ca1be  gcc/testsuite/gcc.dg/cpp/c23-warning-2.c
  bbda00c98c81c2379844c5d755ee7246  gcc/testsuite/gcc.dg/cpp/c89-pedantic.c
  454bc7f11a8d465fec35fbb6f78621f6  gcc/testsuite/gcc.dg/cpp/c89.c
  84d144adb20df1d5fe899a811b56fca7  gcc/testsuite/gcc.dg/cpp/c90-empty-macro-args.c
--- 44597,44636 ----
  127f0aa0b3c3af7297abd95719b83459  gcc/testsuite/gcc.dg/cpp/avoidpaste2.c
  496fd661182992891454e1a97f9e8da3  gcc/testsuite/gcc.dg/cpp/backslash.c
  518079f5bd3713c612d16067f74f29b2  gcc/testsuite/gcc.dg/cpp/backslash2.c
! 775ef0c8393ed949ad8d5f8b993d91e2  gcc/testsuite/gcc.dg/cpp/builtin-macro-1.c
  37d5a2a32c5264c67c0b77cd9832e868  gcc/testsuite/gcc.dg/cpp/c11-elifdef-1.c
  fcc0ebd873adc208f52d57df24688339  gcc/testsuite/gcc.dg/cpp/c11-scope-1.c
  4a111c6234dcf4e8ec0ae015130cc011  gcc/testsuite/gcc.dg/cpp/c11-trigraphs-1.c
  10cd08bea3ecf287dbd9876702ff1d3a  gcc/testsuite/gcc.dg/cpp/c11-vararg-1.c
! 3e783114396374a74ac83309e7187431  gcc/testsuite/gcc.dg/cpp/c11-warning-1.c
! 32f593d9f08e3cd5c392a092c5e056d8  gcc/testsuite/gcc.dg/cpp/c11-warning-2.c
! 9567b62ce079d64a297ec8c97dd5895f  gcc/testsuite/gcc.dg/cpp/c11-warning-3.c
  084d78e1dcad7fb9fe18a53e093e651e  gcc/testsuite/gcc.dg/cpp/c11-warning-4.c
  51e01528783cda46e99a6baa7fb77e34  gcc/testsuite/gcc.dg/cpp/c17-scope-1.c
+ 758422adeb766d1f06c0d3e2ae70eb80  gcc/testsuite/gcc.dg/cpp/c17-ucn-1.c
+ 69953c43cf65526cb375d99a9a7afc49  gcc/testsuite/gcc.dg/cpp/c17-ucn-2.c
+ 2e581df844e80f1b5bb64b3038db4648  gcc/testsuite/gcc.dg/cpp/c17-ucn-3.c
+ add56838a0e248fd9e33dd6b6c1a0a9f  gcc/testsuite/gcc.dg/cpp/c17-ucn-4.c
+ 0e64d4298fa4944c8584067ec2243dd0  gcc/testsuite/gcc.dg/cpp/c23-delimited-escape-seq-1.c
+ aa2effb405c57e88ec0852e722794276  gcc/testsuite/gcc.dg/cpp/c23-delimited-escape-seq-2.c
  362072560151717e750b865d5be20d37  gcc/testsuite/gcc.dg/cpp/c23-elifdef-1.c
! b54182820643ad5a65c3042567ef08d0  gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c
  7373b49b84dffe2e4b5a0154c878373e  gcc/testsuite/gcc.dg/cpp/c23-scope-1.c
  a10ccedb1b38cdf1a0bc3ce16e7dae95  gcc/testsuite/gcc.dg/cpp/c23-scope-2.c
  0bf4cb02c48e7e2ffd7b2f09c54cd542  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-1.c
  69447a117d2ccce43779b1b5225a6b43  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-2.c
! 0f4da0e6f2392c8e06ab4f0b1b0e3130  gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
! 9096d054a878ab14e1f2d7d83224ab32  gcc/testsuite/gcc.dg/cpp/c23-ucn-2.c
  f9090b1e74ab40bdc1f405da87a0b268  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1-utf8.c
  7025ef766c4500cead86027d84ce9cc0  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1.c
+ d68bbbb751c339c43ba063269cc07d20  gcc/testsuite/gcc.dg/cpp/c23-ucnid-2.c
  21e6b934f55d60531851ec4b425a56bd  gcc/testsuite/gcc.dg/cpp/c23-va-opt-1.c
  2ec588253fa67f809fb2eab5cf4a22ff  gcc/testsuite/gcc.dg/cpp/c23-warning-1.c
! 6fbb76c4dbec9161430ed59b5bc0b602  gcc/testsuite/gcc.dg/cpp/c23-warning-2.c
! 55dceb8dbaf418509a6149c53fdeb88c  gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-1.c
! 38efc9147c012f1834345dd2feb38000  gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-2.c
! 7b153f4efd47530f1b935aa5c44e5869  gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-3.c
! 69961e929599c830cbb39b8cb4a3851a  gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-4.c
  bbda00c98c81c2379844c5d755ee7246  gcc/testsuite/gcc.dg/cpp/c89-pedantic.c
  454bc7f11a8d465fec35fbb6f78621f6  gcc/testsuite/gcc.dg/cpp/c89.c
  84d144adb20df1d5fe899a811b56fca7  gcc/testsuite/gcc.dg/cpp/c90-empty-macro-args.c
*************** cda0f2056759a55b2de15925fdb49edb  gcc/te
*** 42209,42215 ****
  6aeefe038405f4b4392f3b34d612915d  gcc/testsuite/gcc.dg/cpp/c99-scope-1.c
  aeac316eab59c566dcc054fa1448d931  gcc/testsuite/gcc.dg/cpp/c99.c
  d7fe9b5439dff2d4320ac5fa9fed372b  gcc/testsuite/gcc.dg/cpp/charconst-2.c
! b8f19314e3816f9e972f0bd68cec0211  gcc/testsuite/gcc.dg/cpp/charconst-3.c
  2b7d103d320f20431a7e0e4055a7b4c0  gcc/testsuite/gcc.dg/cpp/charconst-4.c
  babb6f4b38be8c05212f251ed23289ca  gcc/testsuite/gcc.dg/cpp/charconst.c
  fb746197b268341775148b17b72a697b  gcc/testsuite/gcc.dg/cpp/cmdlne-C.c
--- 44648,44654 ----
  6aeefe038405f4b4392f3b34d612915d  gcc/testsuite/gcc.dg/cpp/c99-scope-1.c
  aeac316eab59c566dcc054fa1448d931  gcc/testsuite/gcc.dg/cpp/c99.c
  d7fe9b5439dff2d4320ac5fa9fed372b  gcc/testsuite/gcc.dg/cpp/charconst-2.c
! 21befdacf79a23d435d7bee182665b03  gcc/testsuite/gcc.dg/cpp/charconst-3.c
  2b7d103d320f20431a7e0e4055a7b4c0  gcc/testsuite/gcc.dg/cpp/charconst-4.c
  babb6f4b38be8c05212f251ed23289ca  gcc/testsuite/gcc.dg/cpp/charconst.c
  fb746197b268341775148b17b72a697b  gcc/testsuite/gcc.dg/cpp/cmdlne-C.c
*************** b5f53aa87c6330e31e1a0ae71c50d4ee  gcc/te
*** 42226,42232 ****
  8a23b0bd0f3ce0c6110eee912776f8ea  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h
  0188eb4f40a32487c10275cdd7abf228  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c
  b0997e7f7cec95ce9ff0334b42c79e0c  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.h
! 940d78a060f2ed11b8c8c355375940d3  gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c
  8df5a6d36c5eb27b5f778393fb7570b2  gcc/testsuite/gcc.dg/cpp/cmdlne-dM-dD.c
  9054bed6dd6f843abaff9a999a9af050  gcc/testsuite/gcc.dg/cpp/cmdlne-dM.c
  28012c6f5ac33cf77e3fcde2c39cd4f9  gcc/testsuite/gcc.dg/cpp/cmdlne-dN-M.c
--- 44665,44671 ----
  8a23b0bd0f3ce0c6110eee912776f8ea  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h
  0188eb4f40a32487c10275cdd7abf228  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c
  b0997e7f7cec95ce9ff0334b42c79e0c  gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.h
! eabf603c91ccad9bf688cec476c36bf5  gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c
  8df5a6d36c5eb27b5f778393fb7570b2  gcc/testsuite/gcc.dg/cpp/cmdlne-dM-dD.c
  9054bed6dd6f843abaff9a999a9af050  gcc/testsuite/gcc.dg/cpp/cmdlne-dM.c
  28012c6f5ac33cf77e3fcde2c39cd4f9  gcc/testsuite/gcc.dg/cpp/cmdlne-dN-M.c
*************** d62663c6040cd44ce9ceaef5ef47e6be  gcc/te
*** 42254,42260 ****
  0afc77e6745b381c2db4e3eb47069397  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-8.c
  dc9eac76c9e4283c4325c2a6c902a00b  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-9.c
  d698e775932010971513c46f0883bce0  gcc/testsuite/gcc.dg/cpp/counter-1.c
! ee97a07ac4ab9b7eb00f48de66395860  gcc/testsuite/gcc.dg/cpp/cpp.exp
  a4207c77f8d160b9e8cfe0b186630d5a  gcc/testsuite/gcc.dg/cpp/cxxcom1.c
  d77a661fbfed762f6397bfd3581e855e  gcc/testsuite/gcc.dg/cpp/cxxcom2.c
  8af19f954e4c7d8397aa53ac210b124e  gcc/testsuite/gcc.dg/cpp/cxxcom2.h
--- 44693,44699 ----
  0afc77e6745b381c2db4e3eb47069397  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-8.c
  dc9eac76c9e4283c4325c2a6c902a00b  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-9.c
  d698e775932010971513c46f0883bce0  gcc/testsuite/gcc.dg/cpp/counter-1.c
! 9c19817d5f829cfe09e01762dc607e87  gcc/testsuite/gcc.dg/cpp/cpp.exp
  a4207c77f8d160b9e8cfe0b186630d5a  gcc/testsuite/gcc.dg/cpp/cxxcom1.c
  d77a661fbfed762f6397bfd3581e855e  gcc/testsuite/gcc.dg/cpp/cxxcom2.c
  8af19f954e4c7d8397aa53ac210b124e  gcc/testsuite/gcc.dg/cpp/cxxcom2.h
*************** bf045943a2d5a26c348f90867fab375a  gcc/te
*** 42272,42277 ****
--- 44711,44733 ----
  fa408884a98e264adfa272034313c93c  gcc/testsuite/gcc.dg/cpp/direct2.c
  c2372ef669c7156fb94e3b2282a17de7  gcc/testsuite/gcc.dg/cpp/direct2s.c
  f7d33748385116eadf13c192e8243ef5  gcc/testsuite/gcc.dg/cpp/directiv.c
+ 486b74dadad7d33179cb5e9c5ecfdf71  gcc/testsuite/gcc.dg/cpp/embed-1.c
+ 8b0113be2d4baba37c2ee0e114188f88  gcc/testsuite/gcc.dg/cpp/embed-10.c
+ 217004055b70862e38cbbef04bbe90e8  gcc/testsuite/gcc.dg/cpp/embed-11.c
+ eb7831a52cafd954345d189819ae3e1a  gcc/testsuite/gcc.dg/cpp/embed-12.c
+ e878fdb130a1361965dd3437f5afb484  gcc/testsuite/gcc.dg/cpp/embed-13.c
+ e44aeb95ccde6144d2bccbb24fa9b34c  gcc/testsuite/gcc.dg/cpp/embed-14.c
+ deabce0632ea37d3bf44ac09d843e499  gcc/testsuite/gcc.dg/cpp/embed-15.c
+ 5c05b78c00d79c4cecd292e838b8d0f5  gcc/testsuite/gcc.dg/cpp/embed-16.c
+ db916ebac312aadbd2b157316ab4df76  gcc/testsuite/gcc.dg/cpp/embed-17.c
+ 00b6ce6803185bd7c8cf39e2da749e84  gcc/testsuite/gcc.dg/cpp/embed-2.c
+ 8bbc21b066f60f862c63a97a999375fe  gcc/testsuite/gcc.dg/cpp/embed-3.c
+ a97fea518d943810e2dc2b1a2c27197d  gcc/testsuite/gcc.dg/cpp/embed-4.c
+ fe2898299fd32af7b4084b31e84d1106  gcc/testsuite/gcc.dg/cpp/embed-5.c
+ 1ca520271e306d81fe47832cabfbe43c  gcc/testsuite/gcc.dg/cpp/embed-6.c
+ 9bb933fb36a0c07f064be17e7d822258  gcc/testsuite/gcc.dg/cpp/embed-7.c
+ 6060b898518636196e29366bb865bd34  gcc/testsuite/gcc.dg/cpp/embed-8.c
+ a2084a537bb4f951050c78e04ba9fcf6  gcc/testsuite/gcc.dg/cpp/embed-9.c
  fc3e59a3f9e82902fa08c3a03f5d0783  gcc/testsuite/gcc.dg/cpp/empty-include.c
  af960c05f0a6ab2d5eb3aa99551fa658  gcc/testsuite/gcc.dg/cpp/endif-pedantic1.c
  7c382a782b850e952b48792d8a3d1526  gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c
*************** b7bb414df09ccb2077133b21ba630ce8  gcc/te
*** 42280,42286 ****
  3f966d736c5e8d8df46521821e7b2f3c  gcc/testsuite/gcc.dg/cpp/escape-2.c
  7e09acd41fc89861253e4344afbcbae7  gcc/testsuite/gcc.dg/cpp/escape.c
  98feceff95879f1cf8369acd89081e91  gcc/testsuite/gcc.dg/cpp/expr-overflow-1.c
! bba01df515f0f42ab95c944f550b6677  gcc/testsuite/gcc.dg/cpp/expr.c
  0542adabc404b395be7ed16807470105  gcc/testsuite/gcc.dg/cpp/extratokens.c
  aadc860548db8dcbd94288e8fb40080f  gcc/testsuite/gcc.dg/cpp/extratokens2.c
  0db3f308d305a4799ae225cb2bde1618  gcc/testsuite/gcc.dg/cpp/fpreprocessed.c
--- 44736,44742 ----
  3f966d736c5e8d8df46521821e7b2f3c  gcc/testsuite/gcc.dg/cpp/escape-2.c
  7e09acd41fc89861253e4344afbcbae7  gcc/testsuite/gcc.dg/cpp/escape.c
  98feceff95879f1cf8369acd89081e91  gcc/testsuite/gcc.dg/cpp/expr-overflow-1.c
! f6fb6c393146f1f70bf2f1d93f98bff3  gcc/testsuite/gcc.dg/cpp/expr.c
  0542adabc404b395be7ed16807470105  gcc/testsuite/gcc.dg/cpp/extratokens.c
  aadc860548db8dcbd94288e8fb40080f  gcc/testsuite/gcc.dg/cpp/extratokens2.c
  0db3f308d305a4799ae225cb2bde1618  gcc/testsuite/gcc.dg/cpp/fpreprocessed.c
*************** b28d91565a9d3d3c36d42433a970d0a8  gcc/te
*** 42289,42305 ****
  5d89d576a9968b776fdfc226c6bffeab  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h
  25ec68dbc03a8ee15912e94f21b09aad  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h
  31a98b1f75602e672e6eca9762dc9036  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-1.c
! f63929b880f2dbd68851c905df23edf9  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c
! 8d6e0c9932340f0cc43c127e44cf2eab  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c
! 4e8fa6e82a3331379478635fec8533fd  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c
  249f8cef8b8882e23c64416d1b349d1b  gcc/testsuite/gcc.dg/cpp/gnu11-scope-1.c
! fa98804dc69308d154b28474112c3557  gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c
! 6a3b1797b76f0b554513523ef48ab6bb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c
! a15ff48cbedf97e231b6c456ce585602  gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c
  95d44f2973728b81efec2487fbdd65fb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-4.c
  387a38d01596b5031e131434b9e77173  gcc/testsuite/gcc.dg/cpp/gnu17-scope-1.c
  bd6c7731ce5799d9a9381b1ab1680843  gcc/testsuite/gcc.dg/cpp/gnu23-warning-1.c
! 7faab0f42e496175c388267b32a205b1  gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c
  a2441b4fd086f33f11e77efdec935c19  gcc/testsuite/gcc.dg/cpp/gnu89-scope-1.c
  afa46c476e52e14bfced96dc51f6c635  gcc/testsuite/gcc.dg/cpp/gnu99-scope-1.c
  6f35c1e2a6a28e958dce46f047684778  gcc/testsuite/gcc.dg/cpp/gnuc89-pedantic.c
--- 44745,44761 ----
  5d89d576a9968b776fdfc226c6bffeab  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h
  25ec68dbc03a8ee15912e94f21b09aad  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h
  31a98b1f75602e672e6eca9762dc9036  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-1.c
! 76384733c67b35bd4d40d7caa108e6ab  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c
! b0826d7ccb17ed3fdb017a6ed53aed4c  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c
! caa73df70878b32c5e9e7269caf57444  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c
  249f8cef8b8882e23c64416d1b349d1b  gcc/testsuite/gcc.dg/cpp/gnu11-scope-1.c
! 23284eb13bf3f8830856ba3d06bff964  gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c
! e26e5997c8bc896a51c1dcaa55be6466  gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c
! 82b387108b6fbe28b0cd9c670430c696  gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c
  95d44f2973728b81efec2487fbdd65fb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-4.c
  387a38d01596b5031e131434b9e77173  gcc/testsuite/gcc.dg/cpp/gnu17-scope-1.c
  bd6c7731ce5799d9a9381b1ab1680843  gcc/testsuite/gcc.dg/cpp/gnu23-warning-1.c
! 9bd8b388c90d295a2ecf57ca57382715  gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c
  a2441b4fd086f33f11e77efdec935c19  gcc/testsuite/gcc.dg/cpp/gnu89-scope-1.c
  afa46c476e52e14bfced96dc51f6c635  gcc/testsuite/gcc.dg/cpp/gnu99-scope-1.c
  6f35c1e2a6a28e958dce46f047684778  gcc/testsuite/gcc.dg/cpp/gnuc89-pedantic.c
*************** c546f1768d535d878d67ff19fdcb3df9  gcc/te
*** 42339,42345 ****
  b1294c835a9b544482538708e224cd87  gcc/testsuite/gcc.dg/cpp/include3.c
  fefb3e35a8a1d6bc164a6eb33d7fdbb6  gcc/testsuite/gcc.dg/cpp/include4.c
  99a74985c69613ac4a42ee34fb74051f  gcc/testsuite/gcc.dg/cpp/include5.c
! 407474d1770120e01043176212576177  gcc/testsuite/gcc.dg/cpp/include6.c
  b169efc722fc4f26173ce092c4172e89  gcc/testsuite/gcc.dg/cpp/include7.c
  d5a926e3d208d77f347b69e459787e36  gcc/testsuite/gcc.dg/cpp/isysroot-1.c
  d2356c14719220729fca6a1807576fd6  gcc/testsuite/gcc.dg/cpp/isysroot-2.c
--- 44795,44801 ----
  b1294c835a9b544482538708e224cd87  gcc/testsuite/gcc.dg/cpp/include3.c
  fefb3e35a8a1d6bc164a6eb33d7fdbb6  gcc/testsuite/gcc.dg/cpp/include4.c
  99a74985c69613ac4a42ee34fb74051f  gcc/testsuite/gcc.dg/cpp/include5.c
! 2de698b2807d37128218d1e50f2d6b99  gcc/testsuite/gcc.dg/cpp/include6.c
  b169efc722fc4f26173ce092c4172e89  gcc/testsuite/gcc.dg/cpp/include7.c
  d5a926e3d208d77f347b69e459787e36  gcc/testsuite/gcc.dg/cpp/isysroot-1.c
  d2356c14719220729fca6a1807576fd6  gcc/testsuite/gcc.dg/cpp/isysroot-2.c
*************** dbed9ae96a21fcde41cfdad7cf866745  gcc/te
*** 42459,42464 ****
--- 44915,44921 ----
  df4a6f060fa69f67fe9841571f51274c  gcc/testsuite/gcc.dg/cpp/pr101638.c
  916c80ba82cc36c5de23aec6f1ebffc5  gcc/testsuite/gcc.dg/cpp/pr111965-1.c
  57dc0b002ec7c6d73e75b1ecbfbd4c4c  gcc/testsuite/gcc.dg/cpp/pr111965-2.c
+ 0eb409602f94a06c93c8466242ccd40d  gcc/testsuite/gcc.dg/cpp/pr118674.c
  5f42a9dd480e45f484f3827b3aadb3e4  gcc/testsuite/gcc.dg/cpp/pr20348.c
  7c61ccd7a1cbc88526a3a1ae591f54b6  gcc/testsuite/gcc.dg/cpp/pr20348.h
  57a7826d3185767b0a94a4f1c482ddd4  gcc/testsuite/gcc.dg/cpp/pr20356.c
*************** c9b9dfe0b779d5cedb0e269704e88355  gcc/te
*** 42484,42490 ****
  73f299ee15936bdac54067aead691e79  gcc/testsuite/gcc.dg/cpp/pr34692.c
  c91822df8000f6656b2e707c3c4b9776  gcc/testsuite/gcc.dg/cpp/pr34859.c
  bd82104282e72a261de145d68de5bf94  gcc/testsuite/gcc.dg/cpp/pr35313.c
! e8275b98f7dac285fdf1f522490ac193  gcc/testsuite/gcc.dg/cpp/pr35322.c
  cd284656aaf570a6f621480512077abd  gcc/testsuite/gcc.dg/cpp/pr36320.c
  b50aa89102a7000c9f6a19cd08edb5b2  gcc/testsuite/gcc.dg/cpp/pr36674.i
  305ae9c95b1a4224816adfdc5af2f157  gcc/testsuite/gcc.dg/cpp/pr43195.c
--- 44941,44947 ----
  73f299ee15936bdac54067aead691e79  gcc/testsuite/gcc.dg/cpp/pr34692.c
  c91822df8000f6656b2e707c3c4b9776  gcc/testsuite/gcc.dg/cpp/pr34859.c
  bd82104282e72a261de145d68de5bf94  gcc/testsuite/gcc.dg/cpp/pr35313.c
! 67a7898c1ca67039c34609f9181a51ee  gcc/testsuite/gcc.dg/cpp/pr35322.c
  cd284656aaf570a6f621480512077abd  gcc/testsuite/gcc.dg/cpp/pr36320.c
  b50aa89102a7000c9f6a19cd08edb5b2  gcc/testsuite/gcc.dg/cpp/pr36674.i
  305ae9c95b1a4224816adfdc5af2f157  gcc/testsuite/gcc.dg/cpp/pr43195.c
*************** ccafc4946ad9ce38c1a2ab5e01405542  gcc/te
*** 42517,42523 ****
  bc4aa62d83dfd42a64f58676ac47bef2  gcc/testsuite/gcc.dg/cpp/pr71681-2.c
  42fbee43776f4bbc8b500ac03c292eab  gcc/testsuite/gcc.dg/cpp/pr7263-2.c
  03d16051004a87d22afbae42047a8255  gcc/testsuite/gcc.dg/cpp/pr7263-2.h
! 40691d8c192e544c8c6f5b4e0ac55f49  gcc/testsuite/gcc.dg/cpp/pr7263-3.c
  4dcc5471dd1f7e43b320e12621a537bb  gcc/testsuite/gcc.dg/cpp/pr7263-3.h
  327d70bade94ee7a0d7a74a6cb47c306  gcc/testsuite/gcc.dg/cpp/pr97989-1.c
  7c965cf710addd2ef52c87e2a8dcbc6a  gcc/testsuite/gcc.dg/cpp/pr97989-2.c
--- 44974,44980 ----
  bc4aa62d83dfd42a64f58676ac47bef2  gcc/testsuite/gcc.dg/cpp/pr71681-2.c
  42fbee43776f4bbc8b500ac03c292eab  gcc/testsuite/gcc.dg/cpp/pr7263-2.c
  03d16051004a87d22afbae42047a8255  gcc/testsuite/gcc.dg/cpp/pr7263-2.h
! e50fe7e6696a976325050d74468340b0  gcc/testsuite/gcc.dg/cpp/pr7263-3.c
  4dcc5471dd1f7e43b320e12621a537bb  gcc/testsuite/gcc.dg/cpp/pr7263-3.h
  327d70bade94ee7a0d7a74a6cb47c306  gcc/testsuite/gcc.dg/cpp/pr97989-1.c
  7c965cf710addd2ef52c87e2a8dcbc6a  gcc/testsuite/gcc.dg/cpp/pr97989-2.c
*************** a761c4210317baf7c84815ede8d4d163  gcc/te
*** 42577,42583 ****
  0abc421e1d8703abf2b0f8fb128d9128  gcc/testsuite/gcc.dg/cpp/tr-warn3.c
  2e1cf4a34cda10297548ff2d40af6249  gcc/testsuite/gcc.dg/cpp/tr-warn4.c
  a8bcd0c178f857b6623a8312356bbfa8  gcc/testsuite/gcc.dg/cpp/tr-warn5.c
! 5a5b15514d0b9f93627a1b3b237d42f0  gcc/testsuite/gcc.dg/cpp/tr-warn6.c
  c7f1039761b7dad00dd66874c56d4e0e  gcc/testsuite/gcc.dg/cpp/trad/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/trad/Wunused.h
  5e9de5515fe4a8824fbca4d07e421417  gcc/testsuite/gcc.dg/cpp/trad/__STDC__.c
--- 45034,45040 ----
  0abc421e1d8703abf2b0f8fb128d9128  gcc/testsuite/gcc.dg/cpp/tr-warn3.c
  2e1cf4a34cda10297548ff2d40af6249  gcc/testsuite/gcc.dg/cpp/tr-warn4.c
  a8bcd0c178f857b6623a8312356bbfa8  gcc/testsuite/gcc.dg/cpp/tr-warn5.c
! 043a27902d04ab400ded8d0a0fc2886f  gcc/testsuite/gcc.dg/cpp/tr-warn6.c
  c7f1039761b7dad00dd66874c56d4e0e  gcc/testsuite/gcc.dg/cpp/trad/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/trad/Wunused.h
  5e9de5515fe4a8824fbca4d07e421417  gcc/testsuite/gcc.dg/cpp/trad/__STDC__.c
*************** fb8d966edc2bb4f9de1858ef3f07c225  gcc/te
*** 42652,42658 ****
  c1aa9faf5b39d1bba0aeaa85934f3e1a  gcc/testsuite/gcc.dg/cpp/trad/redef1.c
  d02c582ddc7f3e7e944d26e530487750  gcc/testsuite/gcc.dg/cpp/trad/redef2.c
  98ee20f87a972bda969b7109dd4c69d2  gcc/testsuite/gcc.dg/cpp/trad/strify.c
! 2691f31b699bf7c476fcb5e293b3ef22  gcc/testsuite/gcc.dg/cpp/trad/trad.exp
  4934795b44ee5b4d4a100c69ae18a71a  gcc/testsuite/gcc.dg/cpp/trad/uchar.c
  9741e04a76510827749554c1610f8b02  gcc/testsuite/gcc.dg/cpp/trad/xwin1.c
  1cd5384614e3226fa238ee19dd09ecce  gcc/testsuite/gcc.dg/cpp/trigraphs.c
--- 45109,45115 ----
  c1aa9faf5b39d1bba0aeaa85934f3e1a  gcc/testsuite/gcc.dg/cpp/trad/redef1.c
  d02c582ddc7f3e7e944d26e530487750  gcc/testsuite/gcc.dg/cpp/trad/redef2.c
  98ee20f87a972bda969b7109dd4c69d2  gcc/testsuite/gcc.dg/cpp/trad/strify.c
! c0abc5fa2138db4650f8bb25261f3e91  gcc/testsuite/gcc.dg/cpp/trad/trad.exp
  4934795b44ee5b4d4a100c69ae18a71a  gcc/testsuite/gcc.dg/cpp/trad/uchar.c
  9741e04a76510827749554c1610f8b02  gcc/testsuite/gcc.dg/cpp/trad/xwin1.c
  1cd5384614e3226fa238ee19dd09ecce  gcc/testsuite/gcc.dg/cpp/trigraphs.c
*************** e774025e676a5ba24033d7695eb66167  gcc/te
*** 42686,42698 ****
  fe82f155f148a27e0e5e22f4daa9c8a9  gcc/testsuite/gcc.dg/cpp/ucnid-7.c
  61c56edc15a32ccdde33a9edfa0ce52a  gcc/testsuite/gcc.dg/cpp/ucnid-9-utf8.c
  3a60bfbca52807a70e98675905f3dff4  gcc/testsuite/gcc.dg/cpp/ucnid-9.c
! f88a7cceb445a1a8bd921ab18c9b29d9  gcc/testsuite/gcc.dg/cpp/ucs.c
  88c569be154e0e70cfbf086f33d7230c  gcc/testsuite/gcc.dg/cpp/unc1.c
  8d8bb2f1961112449dfe64b4d3e31170  gcc/testsuite/gcc.dg/cpp/unc2.c
  24e8bbf6a63455e62f7395086eb33b20  gcc/testsuite/gcc.dg/cpp/unc3.c
  3c434fbf69ab63118b91a596ff524ca3  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
! adeef518d993b6df61782e7d4c8e5372  gcc/testsuite/gcc.dg/cpp/undef2.c
  b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/example.h
  4899fc09b42f0a436755005aadbdedf5  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
--- 45143,45155 ----
  fe82f155f148a27e0e5e22f4daa9c8a9  gcc/testsuite/gcc.dg/cpp/ucnid-7.c
  61c56edc15a32ccdde33a9edfa0ce52a  gcc/testsuite/gcc.dg/cpp/ucnid-9-utf8.c
  3a60bfbca52807a70e98675905f3dff4  gcc/testsuite/gcc.dg/cpp/ucnid-9.c
! e96bea3176303843c487a83a5ae1eafa  gcc/testsuite/gcc.dg/cpp/ucs.c
  88c569be154e0e70cfbf086f33d7230c  gcc/testsuite/gcc.dg/cpp/unc1.c
  8d8bb2f1961112449dfe64b4d3e31170  gcc/testsuite/gcc.dg/cpp/unc2.c
  24e8bbf6a63455e62f7395086eb33b20  gcc/testsuite/gcc.dg/cpp/unc3.c
  3c434fbf69ab63118b91a596ff524ca3  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
! d835a5dc5f922d3cdf4c6be573af217d  gcc/testsuite/gcc.dg/cpp/undef2.c
  b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/example.h
  4899fc09b42f0a436755005aadbdedf5  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
*************** b580fc14655d151bc7323c9844094653  gcc/te
*** 42700,42733 ****
  a3782e0d4f1f64cc38d0f1089ba6e34f  gcc/testsuite/gcc.dg/cpp/vararg3.c
  1f3cdc616d49ac4ff4c799c4ba90fff5  gcc/testsuite/gcc.dg/cpp/vararg4.c
  d0e4924e25980b474b5bf55a4f7705a2  gcc/testsuite/gcc.dg/cpp/very-long-comment.c
! 6d5876204b477e68abe9cd9cf2f80a5c  gcc/testsuite/gcc.dg/cpp/warn-comments-2.c
! 58ac186d36d884571b7e23e65e59492d  gcc/testsuite/gcc.dg/cpp/warn-comments-3.c
! 13891141ae3a8bdc3443b66339a4ede6  gcc/testsuite/gcc.dg/cpp/warn-comments.c
! 22430a282249f4c223ae949c3a24969f  gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c
! 9d9c96e342ecfdfcb032ce820db710df  gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c
! b60882f19a9ffb20fe947d5e53d0d6b4  gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c
! 6b5118ec0826009759c237ccff0b99f5  gcc/testsuite/gcc.dg/cpp/warn-deprecated.c
! 6537710ca16e5b80f8070cf41e2a697b  gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c
! 32c2c0af2dcc9b21738f5b34defcb759  gcc/testsuite/gcc.dg/cpp/warn-long-long.c
  2281a106f6e6829f82254de78e0c375d  gcc/testsuite/gcc.dg/cpp/warn-multichar-2.c
  4fe28788646ba46d0daf8a0bcff54483  gcc/testsuite/gcc.dg/cpp/warn-multichar.c
! 2917a8d69c01cecc2307903c89c0b267  gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c
! 8b5c03d398ab39b3f8b4852e9ee558eb  gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c
! 2e4eeb34f8c1173370ed379e8f6b92ab  gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c
! 27a335c51ae04665c1b65b5a817d5d7b  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
! 5bad521b05a8accaf66ae2372bde2cff  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
! c4feb4e6a53f43509982daf8d4b99180  gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
! 5e6f0c5ab0398a8cec40318a9f414d30  gcc/testsuite/gcc.dg/cpp/warn-redefined.c
! 8f65efe0d0f7e1137ad1eefd5d7153e9  gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c
! acb39207e85f00c00516969802a94dd7  gcc/testsuite/gcc.dg/cpp/warn-traditional.c
! 9f458e13f96adf10171bbd70bf73580c  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c
! 406c93a60b532835b628d35073796c9e  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c
! 1faa19a68eeb4725d563611aa91ee270  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c
! 808d1fc9010b656c12cb30049a3b2b55  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c
! e4c533a80bf3b78a131bcc3e2cc187ae  gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
! dafecc042eba4cfb6758a4da33515721  gcc/testsuite/gcc.dg/cpp/warn-undef.c
! b29af0238f544e211877e0b6d26255c5  gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c
! 04c561a178ebbbdd2809c1d5273feb2d  gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c
  d6455bd7d39e63a6ebb49f2bee334872  gcc/testsuite/gcc.dg/cpp/warn-variadic-2.c
  61dfbff4afe62aa7a02208ce123aedcf  gcc/testsuite/gcc.dg/cpp/warn-variadic.c
  119dbe9f5b0669d707007ae0787f4fe6  gcc/testsuite/gcc.dg/cpp/wchar-1.c
--- 45157,45190 ----
  a3782e0d4f1f64cc38d0f1089ba6e34f  gcc/testsuite/gcc.dg/cpp/vararg3.c
  1f3cdc616d49ac4ff4c799c4ba90fff5  gcc/testsuite/gcc.dg/cpp/vararg4.c
  d0e4924e25980b474b5bf55a4f7705a2  gcc/testsuite/gcc.dg/cpp/very-long-comment.c
! 39f56756651c159661c373c4344cbb19  gcc/testsuite/gcc.dg/cpp/warn-comments-2.c
! 4e64f47116f0dad97fb117481f8ecb7d  gcc/testsuite/gcc.dg/cpp/warn-comments-3.c
! b67965a5ee8499bc6eb05cc0e1632512  gcc/testsuite/gcc.dg/cpp/warn-comments.c
! 34dff9cc7b05b676114ba14851a960e3  gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c
! ae13f1b08ba3962735214e022a95eb99  gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c
! 0d0c64e9a8d7e47cdecc4096883dcc31  gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c
! 53a55b8d616f19d88a9b95eb2c05dd1e  gcc/testsuite/gcc.dg/cpp/warn-deprecated.c
! f35edf9031414186fba9c6a3f77c02b6  gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c
! e151ade00db8237f580770f412641243  gcc/testsuite/gcc.dg/cpp/warn-long-long.c
  2281a106f6e6829f82254de78e0c375d  gcc/testsuite/gcc.dg/cpp/warn-multichar-2.c
  4fe28788646ba46d0daf8a0bcff54483  gcc/testsuite/gcc.dg/cpp/warn-multichar.c
! c775d0a2013bf9ac342f0be615c003b0  gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c
! 7de6074189456a92e5326cac67996c0d  gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c
! fbc20d0348ac278ddabc31a6ab5a15e9  gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c
! a8af0dd951637ea0865ceb05c81256d3  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
! 054c61d983741d02260a0e56ef0b8cbe  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
! 6adbe8fafcd85996d2492d812865e74c  gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
! 5cca8a58f688db1473fa1d920927b387  gcc/testsuite/gcc.dg/cpp/warn-redefined.c
! 3cfeebb1b19f796e8a6aa0a3235f6aa2  gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c
! 79ffe74975880cf0f6aa8e62cd30eaf1  gcc/testsuite/gcc.dg/cpp/warn-traditional.c
! 3a65a14ef9b354fb94e9beb00b85a344  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c
! bf3547c6575266e5fc7688cd0c21bb0d  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c
! 2a620b0fc5601a0cc05224b99e31a3f6  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c
! 3771ef27011a573b56a963cd8e6119bb  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c
! 268f14ee6abf0df665d7f94c7204fdf5  gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
! 6cff209d4737c79f9f8219b4ee4beef7  gcc/testsuite/gcc.dg/cpp/warn-undef.c
! 11afab0d0e61bfd5fe86c936cf3a56ef  gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c
! b3c83a469bec7b46e2802f891215117f  gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c
  d6455bd7d39e63a6ebb49f2bee334872  gcc/testsuite/gcc.dg/cpp/warn-variadic-2.c
  61dfbff4afe62aa7a02208ce123aedcf  gcc/testsuite/gcc.dg/cpp/warn-variadic.c
  119dbe9f5b0669d707007ae0787f4fe6  gcc/testsuite/gcc.dg/cpp/wchar-1.c
*************** febe83ee27f0e3494e3bd4484d6a7d21  gcc/te
*** 42735,42740 ****
--- 45192,45258 ----
  e283abc5c7ec3171392ff96f4b1a8745  gcc/testsuite/gcc.dg/cr-decimal-dig-1.c
  14e08c1242ea5fbad863730494e299f5  gcc/testsuite/gcc.dg/cr-decimal-dig-2.c
  5b0486b5bce3482ffaecc4ab080f8c83  gcc/testsuite/gcc.dg/cr-decimal-dig-3.c
+ 29ba17c70baec8c0bf1a40c905efbb46  gcc/testsuite/gcc.dg/crc-builtin-rev-target32.c
+ 090b514113adbe98ef82447a705bf772  gcc/testsuite/gcc.dg/crc-builtin-rev-target64.c
+ 80c36f9259c16cb249337830f67459c6  gcc/testsuite/gcc.dg/crc-builtin-target32.c
+ c16e6539fd7b8905741473868caceef9  gcc/testsuite/gcc.dg/crc-builtin-target64.c
+ eaa0b5d40e0a3c148ebc883fbc9dc31d  gcc/testsuite/gcc.dg/crc-from-fedora-packages-1.c
+ 5db4d6854c73b340a89b7c6c113c06d6  gcc/testsuite/gcc.dg/crc-from-fedora-packages-10.c
+ 1b9291f10661f836b145cc283d06af52  gcc/testsuite/gcc.dg/crc-from-fedora-packages-11.c
+ c764f2580cd573f5c9db1a07dd2bf9e3  gcc/testsuite/gcc.dg/crc-from-fedora-packages-12.c
+ 39eb47b10e98109df1639eee6c5c31e4  gcc/testsuite/gcc.dg/crc-from-fedora-packages-13.c
+ 6c3b1658270025f0f12c12291e6d9c6e  gcc/testsuite/gcc.dg/crc-from-fedora-packages-14.c
+ c4e13b5483f82ef8a8bfc6a123123386  gcc/testsuite/gcc.dg/crc-from-fedora-packages-15.c
+ 6873bae20bc49579f7969eda546240cf  gcc/testsuite/gcc.dg/crc-from-fedora-packages-16.c
+ 0ffda1296585f6aecf175ce1a53e2ac0  gcc/testsuite/gcc.dg/crc-from-fedora-packages-17.c
+ 3386565e238c2d70da49d5a3d736e2e1  gcc/testsuite/gcc.dg/crc-from-fedora-packages-18.c
+ d71dd53e683f4ee67abfda70097c7221  gcc/testsuite/gcc.dg/crc-from-fedora-packages-19.c
+ f07576f48a934546f77560d0e594d484  gcc/testsuite/gcc.dg/crc-from-fedora-packages-2.c
+ cff3b29e41409c34d3c1a8fa67bdfa39  gcc/testsuite/gcc.dg/crc-from-fedora-packages-20.c
+ 010ca364ee37c7f46a63254de9a97650  gcc/testsuite/gcc.dg/crc-from-fedora-packages-21.c
+ e960891388d2c2f67e8749d14e601a13  gcc/testsuite/gcc.dg/crc-from-fedora-packages-22.c
+ e3eea0ffd149c4982b7185828efea435  gcc/testsuite/gcc.dg/crc-from-fedora-packages-23.c
+ 0891be9459d41c8e879b24ac2e40a522  gcc/testsuite/gcc.dg/crc-from-fedora-packages-24.c
+ 1bedbd8992b02b8458d38a16e3f09464  gcc/testsuite/gcc.dg/crc-from-fedora-packages-25.c
+ 95351c2b8729ff3f09159f4f54708c7a  gcc/testsuite/gcc.dg/crc-from-fedora-packages-26.c
+ ec8c2af71d9c66caeefbf486026a435c  gcc/testsuite/gcc.dg/crc-from-fedora-packages-27.c
+ b09d6525cf0f8ca1a7dd5d5b3b007553  gcc/testsuite/gcc.dg/crc-from-fedora-packages-28.c
+ 8e63d8e26349d64ab8a06e3218e4f1bd  gcc/testsuite/gcc.dg/crc-from-fedora-packages-29.c
+ 7131634822eb81049478b978d25ce7e6  gcc/testsuite/gcc.dg/crc-from-fedora-packages-3.c
+ 8657587e1792f2669ba67358a62868a8  gcc/testsuite/gcc.dg/crc-from-fedora-packages-30.c
+ b4cf5328f5061a0c6907bf12e519722f  gcc/testsuite/gcc.dg/crc-from-fedora-packages-31.c
+ cabb595f4acc85e4a9d4f98eaefdb783  gcc/testsuite/gcc.dg/crc-from-fedora-packages-32.c
+ cd7e1393f86e16932f88281f0cf7179c  gcc/testsuite/gcc.dg/crc-from-fedora-packages-4.c
+ 13c0fea69a40bf4f75fa2914d8bf9a20  gcc/testsuite/gcc.dg/crc-from-fedora-packages-5.c
+ 6262bfb1f27abfeed724c0e6774c7b0f  gcc/testsuite/gcc.dg/crc-from-fedora-packages-6.c
+ fc4acd5b10b8ffd5f7d85c70f8612075  gcc/testsuite/gcc.dg/crc-from-fedora-packages-7.c
+ e5458520823e4db0844fa819e683dcc1  gcc/testsuite/gcc.dg/crc-from-fedora-packages-8.c
+ 06cd581bcc64f0bc0cbda9ac9a995745  gcc/testsuite/gcc.dg/crc-from-fedora-packages-9.c
+ 2eb411ae3a297c956cb543ee15b86d4b  gcc/testsuite/gcc.dg/crc-not-crc-1.c
+ 58b7470978bfd2b8501ae0e58aaa708f  gcc/testsuite/gcc.dg/crc-not-crc-10.c
+ faa8d6691182cb654da70f6633cff01b  gcc/testsuite/gcc.dg/crc-not-crc-11.c
+ a260a347cc1a7813bdab609e9bf3208c  gcc/testsuite/gcc.dg/crc-not-crc-12.c
+ af4c26eb27832bdbf9778d166429b7d9  gcc/testsuite/gcc.dg/crc-not-crc-13.c
+ f8bcdfff10e37f7a432559b9b7606637  gcc/testsuite/gcc.dg/crc-not-crc-14.c
+ d1262790243f904a3b6251bf08ffc869  gcc/testsuite/gcc.dg/crc-not-crc-16.c
+ dfdb8438643b09456e399d184fe01c7d  gcc/testsuite/gcc.dg/crc-not-crc-17.c
+ ec40808df5c42202a491c1da9ea6dffc  gcc/testsuite/gcc.dg/crc-not-crc-18.c
+ c30791cfca4fe40e4ed33dc7b5287ee3  gcc/testsuite/gcc.dg/crc-not-crc-19.c
+ 6c39a8c858f0bac9ffd48284595d8d8d  gcc/testsuite/gcc.dg/crc-not-crc-2.c
+ bed47d6806cea46dd86e9280598926f7  gcc/testsuite/gcc.dg/crc-not-crc-20.c
+ 7f8e8b10545e8f3e40a04807611255db  gcc/testsuite/gcc.dg/crc-not-crc-21.c
+ 3b73d39a30fe662291572f47ffdaa2b7  gcc/testsuite/gcc.dg/crc-not-crc-22.c
+ 4fb12239937b11e3218dfce09f72a0a7  gcc/testsuite/gcc.dg/crc-not-crc-23.c
+ 2015a123287b45c3b2390e84ac0c7df4  gcc/testsuite/gcc.dg/crc-not-crc-24.c
+ 0f0da94ac03329296fedff4c498ea5ad  gcc/testsuite/gcc.dg/crc-not-crc-25.c
+ 34aa96a8b06b183e86c2fca3dcf874bf  gcc/testsuite/gcc.dg/crc-not-crc-26.c
+ e395e1798710340edc4e1db41d1eec63  gcc/testsuite/gcc.dg/crc-not-crc-3.c
+ 0631502764bf6d4e49d84ffc21f162c6  gcc/testsuite/gcc.dg/crc-not-crc-4.c
+ e5f14eb8be2009f288842c984fd1575c  gcc/testsuite/gcc.dg/crc-not-crc-5.c
+ fd9d03a320e2a11199e5218bf88706b0  gcc/testsuite/gcc.dg/crc-not-crc-6.c
+ ddbb4c428a1399bf8a6f61e6246bd347  gcc/testsuite/gcc.dg/crc-not-crc-7.c
+ 19e27b5877df6c66fd5c19e606945d1c  gcc/testsuite/gcc.dg/crc-not-crc-8.c
+ 0a142db011cef0e3c8f1d72b8a9db283  gcc/testsuite/gcc.dg/crc-not-crc-9.c
  ea8e81ccf9b0e8a7d31a02ddf10f3ae7  gcc/testsuite/gcc.dg/cse_recip.c
  dc6685bcab4cd7ed276483fd8d031507  gcc/testsuite/gcc.dg/ctor1.c
  13a7eb422d70031061c88832496b4b3b  gcc/testsuite/gcc.dg/cwsc0.c
*************** ee94511375797117140ca777fd1695b1  gcc/te
*** 42768,42780 ****
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
! 956d9c5ca31de05aa49da3cb99f3d4ef  gcc/testsuite/gcc.dg/darwin-minversion-link.c
  b66bb093837bda7692b73c8aa9711e00  gcc/testsuite/gcc.dg/darwin-sections.c
  f7857b3d082c7452ee5a60411d5f02bc  gcc/testsuite/gcc.dg/darwin-segaddr.c
  e3d2d2840d7d23dee7e2cd94e097a114  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
! 616f3eafcf2947e4dd54e569654c0721  gcc/testsuite/gcc.dg/darwin-weakimport-3.c
  d8aef0c8953934ea061fdce6e985cdf1  gcc/testsuite/gcc.dg/darwin-weakref-1.c
  4e2720fdf9f84481a42dcd33f4b6d7a5  gcc/testsuite/gcc.dg/debug/20000503-1.c
  eeacdefaf2f5fad28609bc9a156918cb  gcc/testsuite/gcc.dg/debug/20010207-1.c
--- 45286,45298 ----
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
! b663e3641887fa62bae033abee133eae  gcc/testsuite/gcc.dg/darwin-minversion-link.c
  b66bb093837bda7692b73c8aa9711e00  gcc/testsuite/gcc.dg/darwin-sections.c
  f7857b3d082c7452ee5a60411d5f02bc  gcc/testsuite/gcc.dg/darwin-segaddr.c
  e3d2d2840d7d23dee7e2cd94e097a114  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
! 2159b9cf4a4c0b124461d3f02ab3a17a  gcc/testsuite/gcc.dg/darwin-weakimport-3.c
  d8aef0c8953934ea061fdce6e985cdf1  gcc/testsuite/gcc.dg/darwin-weakref-1.c
  4e2720fdf9f84481a42dcd33f4b6d7a5  gcc/testsuite/gcc.dg/debug/20000503-1.c
  eeacdefaf2f5fad28609bc9a156918cb  gcc/testsuite/gcc.dg/debug/20010207-1.c
*************** aa1824da5d04e6736c2ab0b97a0e0a33  gcc/te
*** 42792,42804 ****
  d7ad03b2a6b8077164c037f53a4ee77c  gcc/testsuite/gcc.dg/debug/btf/btf-2.c
  5aaed6d6016f0c49f14674bd90cf3ebd  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c
  ac31b35aa716e7b4916790a4e47741f5  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c
! 72752135dd00d9bdcb3cf26f2cadbb88  gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c
! 0ebc1e42923703f8675ccf5d9a8fdae3  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c
! b52aedcd1402818686408458b56f5c0f  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c
  292d000dd3eab6de9d662d8b2f17af21  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c
  78fce882253fa3c81340c67ee3c2e898  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c
  5f5852d99d062b23cbdfe5c227efbf3a  gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c
! 9a9e37184c0bf1352f5ae0597bb3dee6  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c
  37f5c1016c4b1890e5ed498542466546  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-2.c
  39a083dfb1359588f392f1c1d7545bcd  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c
  ce8db6beea057b08db18a29b3b5f953c  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
--- 45310,45322 ----
  d7ad03b2a6b8077164c037f53a4ee77c  gcc/testsuite/gcc.dg/debug/btf/btf-2.c
  5aaed6d6016f0c49f14674bd90cf3ebd  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c
  ac31b35aa716e7b4916790a4e47741f5  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c
! f162a42b8f08517c2ce9a6d4bd11cf84  gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c
! c96e3c21321d56aede07abd31354a939  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c
! 12ffed607e5b04a48e06e5ce709efbfc  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c
  292d000dd3eab6de9d662d8b2f17af21  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c
  78fce882253fa3c81340c67ee3c2e898  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c
  5f5852d99d062b23cbdfe5c227efbf3a  gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c
! 72128c1fb2b25c90fc9fe8c580a50843  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c
  37f5c1016c4b1890e5ed498542466546  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-2.c
  39a083dfb1359588f392f1c1d7545bcd  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c
  ce8db6beea057b08db18a29b3b5f953c  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
*************** cf0b4c9be3c8476832c7ec447eb4158a  gcc/te
*** 42818,42878 ****
  9add398e62a5500cd4625eb7933bfa97  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c
  d88796e35daf5eabf6a8ee3cc6c5e9b7  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c
  0fc14f989a11c1da40e2efd5fc238275  gcc/testsuite/gcc.dg/debug/btf/btf-pr106773.c
  ced909b2cb649c5711c59e6dcb7a9f2f  gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c
  24e60713195a1ffe04be1a29e25919c5  gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c
  43537545dd21111d6eb487f2b781510d  gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c
! e975b176473e24d590c791f7aa030bcd  gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c
  281323338c27bb9ebb8c195e6d2852b1  gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c
  66ab0bef2f7acc8d76cd701bcff40a18  gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c
  3fe28c927bc21d0392a705f27a1bedd7  gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c
  198737d371e3f3b460d9af3de3021afc  gcc/testsuite/gcc.dg/debug/btf/btf-variables-4.c
! 54f24ed7c216c0ab89c174fe96c566c4  gcc/testsuite/gcc.dg/debug/btf/btf-variables-5.c
! 69dc2bb6532bb1c60a9f44005bf29c1a  gcc/testsuite/gcc.dg/debug/btf/btf.exp
  43b79cd3ca67853ae15362a1eb8e3d6a  gcc/testsuite/gcc.dg/debug/const-1.c
  b436f74276be886856059b6d921c0daf  gcc/testsuite/gcc.dg/debug/const-2.c
  17393d7ba43c4bb0cb2f02b8906f09ea  gcc/testsuite/gcc.dg/debug/const-3.c
  6a0b65a849bdc8acdd72456e4313ca33  gcc/testsuite/gcc.dg/debug/crash1.c
  91f89462bef54de7cb8e26b2bf29ef43  gcc/testsuite/gcc.dg/debug/ctf/ctf-1.c
  4b57ba7c9a4afde6867fb14ac626fa41  gcc/testsuite/gcc.dg/debug/ctf/ctf-2.c
! d590e0475a9b94477644be3c299e63d7  gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-struct-1.c
! b3dfd97b3b7835041ecf0cff0079343b  gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-union-1.c
! ddb651d4136ac7342c8724c7cbda42aa  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-1.c
! cff7b2e146b8563dac7e20caf96cd2fd  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c
  446fb6602d17553e9759034e73e07b58  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c
! 16fdae08216e80bec0325ad0306d9281  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c
! c16f16e7207594dd861f602118df4a28  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-5.c
! 00acac1a1cd343645751fc7dd5b8d705  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-6.c
! e38408e94a60581c143bd47bc2f2585c  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-mode-1.c
! f3bfbefc74808effb826ba673d68da20  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
! 937ee8a589dd26e52a1517b439e68005  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
! d41b96a64d3ca7af1a197f5150af5084  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
! bdd351306f463f39d05101125d2bd16a  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
! db0188d69141484062b52438e40ce060  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
  21583e135f77113c75ff68854820f8ec  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-5.c
! becb843df83e1e41dee2bcdafbe0068b  gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
! 80a2388c58f3df114d49a2361b291fe4  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-1.c
! 00ac7ee4d3c23da2e40c4deb67169366  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-2.c
! 8b98063e87fd84f837a1ccebd3e08073  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-3.c
! 26a6eeaf54aa265d2048704d72bad95a  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-4.c
  a423dc356cd7db3b21398d719072c60e  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-1.c
  e331f12f5b3afb5162356a3d888c5031  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c
! 255a053f7b8d6d458d457c001a38369a  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c
! 0c9e631069c15793c19286bdb7069767  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c
! 1e13ca3cd52af0159687955f30c2df72  gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c
! 4be0a57b9c2cfebf80c8efd2590d76ba  gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c
! a38016ede493493a9c78272c11708caf  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c
! 9babdbf56a6936df0e5e9070390dbb0e  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c
! af965f44ea6f03451a58be523ab13103  gcc/testsuite/gcc.dg/debug/ctf/ctf-func-index-1.c
! b3dfcec3be7ab9e5e766437f25a88f30  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-1.c
! e0203612db8dcf608ddb289c29889ff4  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c
! c6932d672282861d6a16f5a4d9dd5692  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-3.c
! f6438ca72d2042332d59b27282f33fda  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-4.c
! 60fb0536450f80c958c2503ed90731c9  gcc/testsuite/gcc.dg/debug/ctf/ctf-functions-1.c
! c4cd7d936bb77f4a6712af613367f783  gcc/testsuite/gcc.dg/debug/ctf/ctf-int-1.c
! c6381830652bc5708f42fde82ceb0138  gcc/testsuite/gcc.dg/debug/ctf/ctf-objt-index-1.c
! 7a7fd28bcbd840e71e3a634d212cb121  gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-1.c
! ee4d32b284e9a030ed8606108e7db766  gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-2.c
! 10d28aba4e2e20ef9c3f8d05e45022a4  gcc/testsuite/gcc.dg/debug/ctf/ctf-preamble-1.c
  24a2d3d703862a3a6001d9bda3b1dbe9  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-1.c
  b139f4c1ce5aa61fd102ff6744a7d946  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-2.c
  e11e903bf0c5b074fbb71146db15d440  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-3.c
--- 45336,45402 ----
  9add398e62a5500cd4625eb7933bfa97  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c
  d88796e35daf5eabf6a8ee3cc6c5e9b7  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c
  0fc14f989a11c1da40e2efd5fc238275  gcc/testsuite/gcc.dg/debug/btf/btf-pr106773.c
+ 6d21f21985c2d4715c08e36712a34aec  gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c
+ 7ff8f5f895cbb1b4f721960ab07a3416  gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c
+ bdee9d0b19533d1dd82979282e07138e  gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c
+ 0b440f56eed18e1c3b4168dcff147fd6  gcc/testsuite/gcc.dg/debug/btf/btf-prune-maps.c
  ced909b2cb649c5711c59e6dcb7a9f2f  gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c
  24e60713195a1ffe04be1a29e25919c5  gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c
  43537545dd21111d6eb487f2b781510d  gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c
! 29e3386c555e4f1277040a3587d3fc6c  gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c
  281323338c27bb9ebb8c195e6d2852b1  gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c
  66ab0bef2f7acc8d76cd701bcff40a18  gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c
  3fe28c927bc21d0392a705f27a1bedd7  gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c
  198737d371e3f3b460d9af3de3021afc  gcc/testsuite/gcc.dg/debug/btf/btf-variables-4.c
! 8d946fd9fd8ff7366391d9ca157c91e6  gcc/testsuite/gcc.dg/debug/btf/btf-variables-5.c
! c7ceb2b561a85824da306c572b6f4208  gcc/testsuite/gcc.dg/debug/btf/btf.exp
! 5ecf1b1eaf3904ce2c2a142f45569a49  gcc/testsuite/gcc.dg/debug/codeview/codeview-1.c
! 26a306cfa599e4901fd7f36280e90e1e  gcc/testsuite/gcc.dg/debug/codeview/codeview.exp
  43b79cd3ca67853ae15362a1eb8e3d6a  gcc/testsuite/gcc.dg/debug/const-1.c
  b436f74276be886856059b6d921c0daf  gcc/testsuite/gcc.dg/debug/const-2.c
  17393d7ba43c4bb0cb2f02b8906f09ea  gcc/testsuite/gcc.dg/debug/const-3.c
  6a0b65a849bdc8acdd72456e4313ca33  gcc/testsuite/gcc.dg/debug/crash1.c
  91f89462bef54de7cb8e26b2bf29ef43  gcc/testsuite/gcc.dg/debug/ctf/ctf-1.c
  4b57ba7c9a4afde6867fb14ac626fa41  gcc/testsuite/gcc.dg/debug/ctf/ctf-2.c
! c6b05190c288855a8d7de00f5084b520  gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-struct-1.c
! 8363ac43ec27123a6dc26a108a9faa46  gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-union-1.c
! 0b9d4089f5d2fd511fa1a06e9a2ca34d  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-1.c
! da5f00c608fbf4af0b9daad6f59e1bbe  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c
  446fb6602d17553e9759034e73e07b58  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c
! faf63500f0d33b2fccc7d8e5218dc6b7  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c
! 01bbb3816496e458a1609f8ffd51cbd8  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-5.c
! 4f0da61c08c5e84caf0f9150cbdc9bec  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-6.c
! cf111ef8df94d8890401a187eda44ecf  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-mode-1.c
! f564c6bf6e627218a15d1dca68379b72  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
! 723beb2229407183028f21d19a7bc698  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
! c5df10e225f51993952e25c8ef14a412  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
! 6fbff40622fdbf03fa2c40f284cbeaf8  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
! 471a71b5cad90554ce1db3c0bf02fd0c  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
  21583e135f77113c75ff68854820f8ec  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-5.c
! 8257cbdf2381e1ddbfcc341305c187d9  gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
! 92b8ae18746e7f629a4f20c8c8cda066  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-1.c
! d8479f892592ddbd02a133f9d766457a  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-2.c
! c0d039a95e585c41b8569a928fd651b2  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-3.c
! 6bb3a0c29ab0fdfd19ebbc9d9ddca843  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-4.c
  a423dc356cd7db3b21398d719072c60e  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-1.c
  e331f12f5b3afb5162356a3d888c5031  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c
! 4486892b732f92a61700b2fc3576e503  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c
! 8e3a6b50a38d04865f980920ae60d7a6  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c
! 3e319734256e4d087e0dfeaf1f86d180  gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c
! 9c3851ad9aa0c38b77ea08090f976795  gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c
! 34aa8f35ac3f753e392a9ec974bc5645  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c
! 46cd659bbfe2cd9892d7b3791cd92a3d  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c
! 9fd6dbcdbfb268cca8fbcc4a11defe01  gcc/testsuite/gcc.dg/debug/ctf/ctf-func-index-1.c
! 0ef5082d646ebdd3c5003c82508700b4  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-1.c
! 2758bd94a248108e3b31876d55ae979a  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c
! 40c353abd5b7c4acdcff33f968c29d09  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-3.c
! 6143504faaa9cd6b93c757fdcb740080  gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-4.c
! 43e75ba180a9c85c1b5f73b324d98a71  gcc/testsuite/gcc.dg/debug/ctf/ctf-functions-1.c
! 50d1d9e0aa7bf982796ba0a22364676d  gcc/testsuite/gcc.dg/debug/ctf/ctf-int-1.c
! 6c036ccc5667ba08d7fd78b2eda067ca  gcc/testsuite/gcc.dg/debug/ctf/ctf-objt-index-1.c
! 7c955c45f023e98a5e784dab6ae4a8b9  gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-1.c
! f92c25d8501a2a591dfde71c54f81d97  gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-2.c
! c488aabe09edede9cce1c640c8c6cbad  gcc/testsuite/gcc.dg/debug/ctf/ctf-preamble-1.c
  24a2d3d703862a3a6001d9bda3b1dbe9  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-1.c
  b139f4c1ce5aa61fd102ff6744a7d946  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-2.c
  e11e903bf0c5b074fbb71146db15d440  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-3.c
*************** bc7cde4fa3112ed76b62dd49676af591  gcc/te
*** 42881,42904 ****
  efebf04cf16ec8fb6723eb4cbe6e92d0  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-6.c
  dbdc60fc0f8ccd43b4da19d00c56e508  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-7.c
  ea3e1069a2acd8e148e4906ca26ae173  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-8.c
! f1031a66a00f13889d8aaaad5adf2a1c  gcc/testsuite/gcc.dg/debug/ctf/ctf-str-table-1.c
! 5a77430dafb4f618b3638e9f29b185e5  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-1.c
! 289e6dd5467e5455278c86ecde42c157  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-2.c
! 1d70a36cc1bd3d18bf99066c015cbfa6  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-1.c
! 3de01187922019e790aa59a9efda9941  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-2.c
  9bbcc422ad724f07ae3292136bbac03e  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-1.c
  27e5ed4fd7b1e833869ba371cd93d8dd  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-2.c
! f8dc5b4e8a7550234494ce573d0d2dcb  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-1.c
! d2f681e4f5704b341738729dea82c1a7  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-2.c
! 44dd31be122d4e6579b85a1d572d6797  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-3.c
! 7a5679ca249793d97b78dae2df5c4f8f  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-1.c
! 71f0914b3c6208437609b99192645bd9  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-2.c
! 3a267f03b887faa7ed54e49e8869eb00  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-3.c
! ec2103f2d7a749a23acc0690e8c18f4e  gcc/testsuite/gcc.dg/debug/ctf/ctf-union-1.c
! 8cd93c9afbb749f3453147c93d84a731  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c
! b8f9de531119631c3459a93c1fdfd186  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c
! e542a430adb55cd8f70ef3fd306d241a  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-3.c
! 0bab5663cbbe41a898cbd5b6bbf80953  gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
  c5ce68d6bc614fe16f32816d6e22ce66  gcc/testsuite/gcc.dg/debug/debug-1.c
  c17982bc9ca8dd7ebe9f41677e7982f9  gcc/testsuite/gcc.dg/debug/debug-2.c
  ea7172af490d3fb85bddeb7037fddc2e  gcc/testsuite/gcc.dg/debug/debug-3.c
--- 45405,45428 ----
  efebf04cf16ec8fb6723eb4cbe6e92d0  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-6.c
  dbdc60fc0f8ccd43b4da19d00c56e508  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-7.c
  ea3e1069a2acd8e148e4906ca26ae173  gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-8.c
! b77d791a28ef5d0af46671c58409355e  gcc/testsuite/gcc.dg/debug/ctf/ctf-str-table-1.c
! c1be64540be9cfe2909b07831696618c  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-1.c
! 65b8ee1c1897762047de95af4287e494  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-2.c
! ea229c904eba75c54706af2f3c69fbbf  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-1.c
! 1968cb16e47a83d7c5abd48f8e51519e  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-2.c
  9bbcc422ad724f07ae3292136bbac03e  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-1.c
  27e5ed4fd7b1e833869ba371cd93d8dd  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-2.c
! ff354d6b8de48ce3f40b96d8f0932aa5  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-1.c
! 46c1eaab52e6a54719335c6ae31b43af  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-2.c
! 8e6d39936ba9d5e3dec7fa9e8d49a5ca  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-3.c
! e5ab4b56f82bcf66134bbcc69f57ab18  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-1.c
! 544847ef2cabd565a5ede880274d6b89  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-2.c
! 791e2e00311727c584076d9e1fe8a73c  gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-3.c
! 41082bb8e9c7fdf0bfb87271852bb573  gcc/testsuite/gcc.dg/debug/ctf/ctf-union-1.c
! 2a4d79b29cc09e14367284ddde668d59  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c
! 0c5419b7befd462b7334927d776677ac  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c
! a8844a4586dc351acfbb3807c507565e  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-3.c
! 295ad3ce356d8777535262386c9994f2  gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
  c5ce68d6bc614fe16f32816d6e22ce66  gcc/testsuite/gcc.dg/debug/debug-1.c
  c17982bc9ca8dd7ebe9f41677e7982f9  gcc/testsuite/gcc.dg/debug/debug-2.c
  ea7172af490d3fb85bddeb7037fddc2e  gcc/testsuite/gcc.dg/debug/debug-3.c
*************** ea7172af490d3fb85bddeb7037fddc2e  gcc/te
*** 42906,42912 ****
  16edfbc8489f8d2648184f4d56272f9a  gcc/testsuite/gcc.dg/debug/debug-5.c
  3a93989c56d211b178b4ce1cb7b8db55  gcc/testsuite/gcc.dg/debug/debug-6.c
  92ca009107fd3047af0ed6bffbcf92f2  gcc/testsuite/gcc.dg/debug/debug-7.c
! 7ad01894880d626cc5c6da20cbac8b77  gcc/testsuite/gcc.dg/debug/debug.exp
  900fe69daa3b56214378610d534c3e53  gcc/testsuite/gcc.dg/debug/dwarf2-1.c
  9cf87b67a0fe641563a13455b49c7154  gcc/testsuite/gcc.dg/debug/dwarf2-2.c
  0b09f7a5e1f45f894f8df2a63437e7c8  gcc/testsuite/gcc.dg/debug/dwarf2/align-1.c
--- 45430,45436 ----
  16edfbc8489f8d2648184f4d56272f9a  gcc/testsuite/gcc.dg/debug/debug-5.c
  3a93989c56d211b178b4ce1cb7b8db55  gcc/testsuite/gcc.dg/debug/debug-6.c
  92ca009107fd3047af0ed6bffbcf92f2  gcc/testsuite/gcc.dg/debug/debug-7.c
! 4816e21c61126dfb69130ea0cb266929  gcc/testsuite/gcc.dg/debug/debug.exp
  900fe69daa3b56214378610d534c3e53  gcc/testsuite/gcc.dg/debug/dwarf2-1.c
  9cf87b67a0fe641563a13455b49c7154  gcc/testsuite/gcc.dg/debug/dwarf2-2.c
  0b09f7a5e1f45f894f8df2a63437e7c8  gcc/testsuite/gcc.dg/debug/dwarf2/align-1.c
*************** e898af150e57dd7954d947894917b696  gcc/te
*** 42924,42930 ****
  8cc6fb816730c11f809e5cba3b6d5fd4  gcc/testsuite/gcc.dg/debug/dwarf2/asm-line1.c
  82c2b5501555b8cf310ac6a2ff79d0ca  gcc/testsuite/gcc.dg/debug/dwarf2/atomic.c
  7daec8af89f4336866b06386f75d4bc4  gcc/testsuite/gcc.dg/debug/dwarf2/c99-typedef1.c
! db6996b9f252ec9046440b1efd526c21  gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c
  941206f699cfffad06e26a28ba648021  gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c
  b7cc1fa0904bcda319bf91dbe2a3a4fe  gcc/testsuite/gcc.dg/debug/dwarf2/discriminator.c
  bdc28ca82c4aedd54c51bdc86bec14a5  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c
--- 45448,45454 ----
  8cc6fb816730c11f809e5cba3b6d5fd4  gcc/testsuite/gcc.dg/debug/dwarf2/asm-line1.c
  82c2b5501555b8cf310ac6a2ff79d0ca  gcc/testsuite/gcc.dg/debug/dwarf2/atomic.c
  7daec8af89f4336866b06386f75d4bc4  gcc/testsuite/gcc.dg/debug/dwarf2/c99-typedef1.c
! 8494b31ec6de4fd1f145e576af799f69  gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c
  941206f699cfffad06e26a28ba648021  gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c
  b7cc1fa0904bcda319bf91dbe2a3a4fe  gcc/testsuite/gcc.dg/debug/dwarf2/discriminator.c
  bdc28ca82c4aedd54c51bdc86bec14a5  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c
*************** fbe375bf9288bf092b7cef1996c14a1f  gcc/te
*** 42945,42951 ****
  41463d28a9bbf97a554feb4c959fed01  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h
  9e89388c0e1fb3e82696e9c739160c92  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
  eec651e182274afc1200132346cdf1ed  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro2.c
! 3b271ae74ac6098b46f4d8ddf155b4d3  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp
  362aa298514051f8a5b0ce8f2e1ee91a  gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c
  59c839cb709f2082c72d622c16f665f4  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
  f7dc86f08b2d23f2ec144956f62a155d  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h
--- 45469,45475 ----
  41463d28a9bbf97a554feb4c959fed01  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h
  9e89388c0e1fb3e82696e9c739160c92  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
  eec651e182274afc1200132346cdf1ed  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro2.c
! 57a7219c5dd82dd6725cd6a479487eba  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp
  362aa298514051f8a5b0ce8f2e1ee91a  gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c
  59c839cb709f2082c72d622c16f665f4  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
  f7dc86f08b2d23f2ec144956f62a155d  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h
*************** f7dc86f08b2d23f2ec144956f62a155d  gcc/te
*** 42960,42970 ****
  70fb7d2db15a4cf8bf70176e041f380f  gcc/testsuite/gcc.dg/debug/dwarf2/fesd.h
  f30a377973368d1a41bc4f8e2a0e33e9  gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c
  f9ab56344241c22521f8d9245e677c22  gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c
! 47291ca2a7f639676f2662f2d578253f  gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c
  8580bd27cd825c8d49e674c9f31c683c  gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c
  975fb826cc6035cfef2a1cad545f8110  gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c
  a3e8aa555fa5d72262541274a23f93de  gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c
! 40c9e189b7b61e8f4d69ce3f98f98206  gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c
  e7c46c2fc25b3773b6adcbd27af4b924  gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c
  fa5aff1721ed3bcbbc6a8566df69c415  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11-d4-strict.c
  2fb82c8ff39c218a50492de7eb131b5b  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11.c
--- 45484,45495 ----
  70fb7d2db15a4cf8bf70176e041f380f  gcc/testsuite/gcc.dg/debug/dwarf2/fesd.h
  f30a377973368d1a41bc4f8e2a0e33e9  gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c
  f9ab56344241c22521f8d9245e677c22  gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c
! e50a77c774c2c6871a6051e0764da9c7  gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c
  8580bd27cd825c8d49e674c9f31c683c  gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c
  975fb826cc6035cfef2a1cad545f8110  gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c
  a3e8aa555fa5d72262541274a23f93de  gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c
! cfed07f7aa5816674fe17fb806b6ba60  gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c
! c15f0884a11f32ac5afc0b0bc33cd8cd  gcc/testsuite/gcc.dg/debug/dwarf2/inline7.c
  e7c46c2fc25b3773b6adcbd27af4b924  gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c
  fa5aff1721ed3bcbbc6a8566df69c415  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11-d4-strict.c
  2fb82c8ff39c218a50492de7eb131b5b  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11.c
*************** a43a2bd52a28383da5023600b52ef8ae  gcc/te
*** 43003,43009 ****
  52797ccb92aabdf0dd45b603b1eeb64a  gcc/testsuite/gcc.dg/debug/dwarf2/pr49871.c
  94f8101679e6cc4b9fabcf3f776ded40  gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
  cfefd61a4eb768d07be5d7d9490c6bd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c
! eb3e8d32cc98a65b9bf903f485425719  gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c
  3aefd6c464c0631839d12e370ea3b504  gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
  adcb04100f301278ba60a4cc3b3966e4  gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
  1cf911d01bc2c994d2a07f737953584a  gcc/testsuite/gcc.dg/debug/dwarf2/pr82718-1.c
--- 45528,45534 ----
  52797ccb92aabdf0dd45b603b1eeb64a  gcc/testsuite/gcc.dg/debug/dwarf2/pr49871.c
  94f8101679e6cc4b9fabcf3f776ded40  gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
  cfefd61a4eb768d07be5d7d9490c6bd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c
! 6f33b925b5da754a105f4f3764eaea13  gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c
  3aefd6c464c0631839d12e370ea3b504  gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
  adcb04100f301278ba60a4cc3b3966e4  gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
  1cf911d01bc2c994d2a07f737953584a  gcc/testsuite/gcc.dg/debug/dwarf2/pr82718-1.c
*************** ba7e6f4007944b95dbec857fc6c74794  gcc/te
*** 43126,43132 ****
  8ef0c97da538b257ef5b6ce351017585  gcc/testsuite/gcc.dg/devnull-dump.c
  bd803fab76b770802d951e70b61c9696  gcc/testsuite/gcc.dg/dfp/Wbad-function-cast-1.c
  d898987e43ad43f22c65725bb92ec24f  gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c
! 8dfa85ff2d4eb5d9335903160b756d39  gcc/testsuite/gcc.dg/dfp/altivec-types.c
  011b9cd7c8787515c37942fedebf7853  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
  90afe52e8ef8a9f0b8971e0d2fe61c3f  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
  d06487264057fc4acced89ea2b94ba1e  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
--- 45651,45657 ----
  8ef0c97da538b257ef5b6ce351017585  gcc/testsuite/gcc.dg/devnull-dump.c
  bd803fab76b770802d951e70b61c9696  gcc/testsuite/gcc.dg/dfp/Wbad-function-cast-1.c
  d898987e43ad43f22c65725bb92ec24f  gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c
! afc5653b66833dbd134905a65313e825  gcc/testsuite/gcc.dg/dfp/altivec-types.c
  011b9cd7c8787515c37942fedebf7853  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
  90afe52e8ef8a9f0b8971e0d2fe61c3f  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
  d06487264057fc4acced89ea2b94ba1e  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
*************** c468bc46d49a90772b63f81541d1cdf0  gcc/te
*** 43135,43148 ****
  250788b94b94e938b707c55fd4d64272  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
  707a475740543f28e7d4a1a1c6dd5e2a  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
  e9e3452e14dfbc6213d63bbc19163128  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
! 0d635b8ca4b67cf7e028abe96d7d8040  gcc/testsuite/gcc.dg/dfp/bitint-1.c
! 414a321d64714fe3be448102cb005e09  gcc/testsuite/gcc.dg/dfp/bitint-2.c
! ad33d2cf22fb59092bf9e1c000ea0030  gcc/testsuite/gcc.dg/dfp/bitint-3.c
! 0c1d838b29aab0ee3c50e46966b6c652  gcc/testsuite/gcc.dg/dfp/bitint-4.c
! c55b156c142f8f4672565244e7c0895f  gcc/testsuite/gcc.dg/dfp/bitint-5.c
! 563460c01a4dd08dcda56d615b1cbd80  gcc/testsuite/gcc.dg/dfp/bitint-6.c
! b08dab0e4e62a437ff7739271c7154ba  gcc/testsuite/gcc.dg/dfp/bitint-7.c
! f892b84adc78d9841b4c69a387a90a88  gcc/testsuite/gcc.dg/dfp/bitint-8.c
  2d5128bddc0d69a547254935ce84b555  gcc/testsuite/gcc.dg/dfp/builtin-complex.c
  bbb3a4b9649cd82ff38969cb002504a5  gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
  d52de125edb1b6785a1995c8d138b9f0  gcc/testsuite/gcc.dg/dfp/builtin-snan-2.c
--- 45660,45673 ----
  250788b94b94e938b707c55fd4d64272  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
  707a475740543f28e7d4a1a1c6dd5e2a  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
  e9e3452e14dfbc6213d63bbc19163128  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
! 98a1035165205102450c094d1127f8ea  gcc/testsuite/gcc.dg/dfp/bitint-1.c
! 025dfa34516086fff4ea86cbff142e28  gcc/testsuite/gcc.dg/dfp/bitint-2.c
! ccb86bca1db885e54fa8d30063aa6a9a  gcc/testsuite/gcc.dg/dfp/bitint-3.c
! 58ba588e40d3099aca918042db7c5f24  gcc/testsuite/gcc.dg/dfp/bitint-4.c
! 80b16ec728ac57940978036dd0e7313f  gcc/testsuite/gcc.dg/dfp/bitint-5.c
! 730ddc96d99e6d801906d63d8ae43c42  gcc/testsuite/gcc.dg/dfp/bitint-6.c
! 0abc14c0fc9758db1fca1a924c745023  gcc/testsuite/gcc.dg/dfp/bitint-7.c
! 66591ab0e72f12a0113129becb17a7f0  gcc/testsuite/gcc.dg/dfp/bitint-8.c
  2d5128bddc0d69a547254935ce84b555  gcc/testsuite/gcc.dg/dfp/builtin-complex.c
  bbb3a4b9649cd82ff38969cb002504a5  gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
  d52de125edb1b6785a1995c8d138b9f0  gcc/testsuite/gcc.dg/dfp/builtin-snan-2.c
*************** d52de125edb1b6785a1995c8d138b9f0  gcc/te
*** 43150,43162 ****
--- 45675,45697 ----
  5b5acca06abc5b0fb9669eab190f458a  gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
  663481c9fda4c10b41862534fb893ac7  gcc/testsuite/gcc.dg/dfp/c11-constants-1.c
  01385be2251b8f1bfe8d9a82eb8fee35  gcc/testsuite/gcc.dg/dfp/c11-constants-2.c
+ 3b172a43d59da6582638103cc3bf8dc0  gcc/testsuite/gcc.dg/dfp/c11-constants-3.c
+ 9eb8eabbe752c95710c653b40146e3ef  gcc/testsuite/gcc.dg/dfp/c11-constants-4.c
+ 37a2b246b5bf5a43159177b70b84bf5b  gcc/testsuite/gcc.dg/dfp/c11-decimal64x-1.c
+ f88cecdc5429eed7230ea2e50fcd1686  gcc/testsuite/gcc.dg/dfp/c11-decimal64x-2.c
  1a562bd8085040570e6cc2e227128694  gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c
  cf8bc786843fa5b2fd0c45ad86131bbb  gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c
  08bcd09b7218d6be0b64929811806715  gcc/testsuite/gcc.dg/dfp/c23-builtins-dfp-1.c
  60d2c5b881bdc0b85c1823650efc19b5  gcc/testsuite/gcc.dg/dfp/c23-constants-1.c
  eee1d7140b9e220024b97259fff1671e  gcc/testsuite/gcc.dg/dfp/c23-constants-2.c
+ a090c33bcd231aab578d44d3bed73e2c  gcc/testsuite/gcc.dg/dfp/c23-constants-3.c
+ 533fe8c38ac516bd166c804d75403192  gcc/testsuite/gcc.dg/dfp/c23-constants-4.c
  a79e167314cedeceb805cf8e16ef1904  gcc/testsuite/gcc.dg/dfp/c23-constexpr-dfp-1.c
  fa1ee9ea37cb0592a8545cd263b87726  gcc/testsuite/gcc.dg/dfp/c23-constexpr-dfp-2.c
+ f5c2ce88a4ab718beff91e8e996ad2bf  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-1.c
+ 3008ddb0f8396353a207aa7e1689f7af  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-2.c
+ 0e7ec9b35d73b3b8183966afa6a64fa5  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-3.c
+ 40be9f3b43d11b1e66a0318aa51f97ac  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-4.c
  90c9069e9d0641ae269b5d957d930267  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-1.c
  0bda1158e597d21cdea7c674df4e24f8  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-2.c
  cab4c4dbbb2c6dcb34a8111a65bfbd12  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-3.c
*************** f7ae9f5431d50f9fe819110c177a5cdb  gcc/te
*** 43168,43175 ****
  44c356d7e959f3bc06eab09ea08d8960  gcc/testsuite/gcc.dg/dfp/c23-keywords-1.c
  5ae7c09d48538e971c25785698b20a13  gcc/testsuite/gcc.dg/dfp/c23-keywords-2.c
  8d5e21e8c81c2782dea6a23e88335770  gcc/testsuite/gcc.dg/dfp/cast-bad.c
! 94575665ea4cf62caa5e9ec3744c8bd9  gcc/testsuite/gcc.dg/dfp/composite-type-2.c
! 5ec77c1e16af2d43256cc3fc08a1d3c3  gcc/testsuite/gcc.dg/dfp/composite-type.c
  3c65f46a3ffe17287ae9c6467e54c161  gcc/testsuite/gcc.dg/dfp/constants-c99.c
  e17bcd0ca787144bf6d3f3bd95a2efdd  gcc/testsuite/gcc.dg/dfp/constants-hex.c
  ec5db797a6d479c94676e08b15363f07  gcc/testsuite/gcc.dg/dfp/constants-pedantic.c
--- 45703,45710 ----
  44c356d7e959f3bc06eab09ea08d8960  gcc/testsuite/gcc.dg/dfp/c23-keywords-1.c
  5ae7c09d48538e971c25785698b20a13  gcc/testsuite/gcc.dg/dfp/c23-keywords-2.c
  8d5e21e8c81c2782dea6a23e88335770  gcc/testsuite/gcc.dg/dfp/cast-bad.c
! a8a83798732e0470013b25c5abb33416  gcc/testsuite/gcc.dg/dfp/composite-type-2.c
! 717f9dc592c4603ee5badf6825e9e410  gcc/testsuite/gcc.dg/dfp/composite-type.c
  3c65f46a3ffe17287ae9c6467e54c161  gcc/testsuite/gcc.dg/dfp/constants-c99.c
  e17bcd0ca787144bf6d3f3bd95a2efdd  gcc/testsuite/gcc.dg/dfp/constants-hex.c
  ec5db797a6d479c94676e08b15363f07  gcc/testsuite/gcc.dg/dfp/constants-pedantic.c
*************** dfe075c7272c802e4c6f44b1a66f1302  gcc/te
*** 43185,43191 ****
  4004acaaacb54ecad2e0c6ee8e8224d5  gcc/testsuite/gcc.dg/dfp/dfp-dbg.h
  b0c002cff8051f24b9c9db05f3062f21  gcc/testsuite/gcc.dg/dfp/dfp-except.h
  aadafbfd9e0540666c99d31e72e91f96  gcc/testsuite/gcc.dg/dfp/dfp-round.h
! 026b84a1e9bcd7bba6ff6811e93a0ef9  gcc/testsuite/gcc.dg/dfp/dfp.exp
  0daf957dbef663389abca329acc1d74c  gcc/testsuite/gcc.dg/dfp/fe-binop.c
  dc5f56a82263868da11e7d3a3e80a8c8  gcc/testsuite/gcc.dg/dfp/fe-check.h
  e014b3254e79531d97833550fdb2486d  gcc/testsuite/gcc.dg/dfp/fe-convert-1.c
--- 45720,45726 ----
  4004acaaacb54ecad2e0c6ee8e8224d5  gcc/testsuite/gcc.dg/dfp/dfp-dbg.h
  b0c002cff8051f24b9c9db05f3062f21  gcc/testsuite/gcc.dg/dfp/dfp-except.h
  aadafbfd9e0540666c99d31e72e91f96  gcc/testsuite/gcc.dg/dfp/dfp-round.h
! ab63b3a3517df3823abaacd0458cfbe2  gcc/testsuite/gcc.dg/dfp/dfp.exp
  0daf957dbef663389abca329acc1d74c  gcc/testsuite/gcc.dg/dfp/fe-binop.c
  dc5f56a82263868da11e7d3a3e80a8c8  gcc/testsuite/gcc.dg/dfp/fe-check.h
  e014b3254e79531d97833550fdb2486d  gcc/testsuite/gcc.dg/dfp/fe-convert-1.c
*************** ae11ecbb18b43c27858d0c6dadfe07d3  gcc/te
*** 43193,43213 ****
  a0ac850750aaa6f8934dd8d86cad48b3  gcc/testsuite/gcc.dg/dfp/fe-convert-3.c
  8c93ba27dd3f1398726001c48e3c892d  gcc/testsuite/gcc.dg/dfp/float-constant-double.c
  9dfa3c1e56f8b505a4ce8023830b3bf1  gcc/testsuite/gcc.dg/dfp/floatn.c
! f747eae8504a03551a701649eb9edbbb  gcc/testsuite/gcc.dg/dfp/int128-1.c
! c80c8ed36ba64864c268c225c64ab538  gcc/testsuite/gcc.dg/dfp/int128-2.c
! cc8c86a30d71d6b435bb74d46a9ec3e3  gcc/testsuite/gcc.dg/dfp/int128-3.c
! 325734d962abaa765c464c5770b6e930  gcc/testsuite/gcc.dg/dfp/int128-4.c
  756b8ddff2151110bae6465f67fe36a7  gcc/testsuite/gcc.dg/dfp/keywords-c89.c
  41a3316298115612aac250cdc4faaa30  gcc/testsuite/gcc.dg/dfp/keywords-c99.c
! 9d75f75471d15ad9eab797c65fe24337  gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c
  5f9dce48038ce1ba660b96e948792422  gcc/testsuite/gcc.dg/dfp/keywords-reserved.c
  440b3f562b43525babe2c96be973d1be  gcc/testsuite/gcc.dg/dfp/operator-bitwise.c
  b6f9108cd4878577de83d43be75185ce  gcc/testsuite/gcc.dg/dfp/pr104510.c
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
  82ea312c34b2d7bbfe3d7dc309a1831f  gcc/testsuite/gcc.dg/dfp/pr108068.c
  d8629eb8e0c765b5a7daa583cb8eedad  gcc/testsuite/gcc.dg/dfp/pr31344.c
  b59fd600db434af135f39c38e21e2d74  gcc/testsuite/gcc.dg/dfp/pr37435.c
  17353eaf91a4f3959fa168324f86f6f5  gcc/testsuite/gcc.dg/dfp/pr41049.c
  8f20a249a1cf0ecc405e1799552e1d6f  gcc/testsuite/gcc.dg/dfp/pr48204.c
  8839751293dea7c31ee017e68d79c7a7  gcc/testsuite/gcc.dg/dfp/pr48928.c
  59389f9a6a0db946009dbbe47a66608f  gcc/testsuite/gcc.dg/dfp/pr52140.c
--- 45728,45751 ----
  a0ac850750aaa6f8934dd8d86cad48b3  gcc/testsuite/gcc.dg/dfp/fe-convert-3.c
  8c93ba27dd3f1398726001c48e3c892d  gcc/testsuite/gcc.dg/dfp/float-constant-double.c
  9dfa3c1e56f8b505a4ce8023830b3bf1  gcc/testsuite/gcc.dg/dfp/floatn.c
! a73a73a7572a81d05743aa11dcd1ee44  gcc/testsuite/gcc.dg/dfp/int128-1.c
! 167135b56628e4ad49d2f8a2d38005af  gcc/testsuite/gcc.dg/dfp/int128-2.c
! cd8c61e30bb2d2b5f32c64b978231724  gcc/testsuite/gcc.dg/dfp/int128-3.c
! 736ce2ffb56fccfe7f164a231ddc9887  gcc/testsuite/gcc.dg/dfp/int128-4.c
  756b8ddff2151110bae6465f67fe36a7  gcc/testsuite/gcc.dg/dfp/keywords-c89.c
  41a3316298115612aac250cdc4faaa30  gcc/testsuite/gcc.dg/dfp/keywords-c99.c
! bee9f4d1298a793a0b5ef3117c931b7c  gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c
  5f9dce48038ce1ba660b96e948792422  gcc/testsuite/gcc.dg/dfp/keywords-reserved.c
  440b3f562b43525babe2c96be973d1be  gcc/testsuite/gcc.dg/dfp/operator-bitwise.c
+ b73df42f52238b31609e7509c8870fb3  gcc/testsuite/gcc.dg/dfp/pr102674.c
  b6f9108cd4878577de83d43be75185ce  gcc/testsuite/gcc.dg/dfp/pr104510.c
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
  82ea312c34b2d7bbfe3d7dc309a1831f  gcc/testsuite/gcc.dg/dfp/pr108068.c
+ ea6fd7375471549c289fdf2b28049341  gcc/testsuite/gcc.dg/dfp/pr118560.c
  d8629eb8e0c765b5a7daa583cb8eedad  gcc/testsuite/gcc.dg/dfp/pr31344.c
  b59fd600db434af135f39c38e21e2d74  gcc/testsuite/gcc.dg/dfp/pr37435.c
  17353eaf91a4f3959fa168324f86f6f5  gcc/testsuite/gcc.dg/dfp/pr41049.c
+ 6e3c17b15691e98284f2fd41f0edf739  gcc/testsuite/gcc.dg/dfp/pr43374.c
  8f20a249a1cf0ecc405e1799552e1d6f  gcc/testsuite/gcc.dg/dfp/pr48204.c
  8839751293dea7c31ee017e68d79c7a7  gcc/testsuite/gcc.dg/dfp/pr48928.c
  59389f9a6a0db946009dbbe47a66608f  gcc/testsuite/gcc.dg/dfp/pr52140.c
*************** f30ac33dbd955a24b7ae47b11e9fb73d  gcc/te
*** 43234,43241 ****
  ef8eb17f7da56bfde3d6840acb400831  gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad.c
  53e450baff1edfc9b3bf82a5a1b2a674  gcc/testsuite/gcc.dg/dfp/warn-abs-2.c
  9190a1b37c2c0dd750746fbca83c728e  gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c
  1d1366a913ab3a21a6dbd1b236fc57a4  gcc/testsuite/gcc.dg/dg-test-1.c
! 8b5a1cf3135e5d7d55aa4f362ae29e41  gcc/testsuite/gcc.dg/dg.exp
  f26c27ac11691c96c083fca389b2dbb6  gcc/testsuite/gcc.dg/di-longlong64-sync-1.c
  219e789dfc5a796c8a7791e531f94157  gcc/testsuite/gcc.dg/di-sync-multithread.c
  2df811a2152c5568edd8515c1ffbd515  gcc/testsuite/gcc.dg/diag-aka-1.c
--- 45772,45782 ----
  ef8eb17f7da56bfde3d6840acb400831  gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad.c
  53e450baff1edfc9b3bf82a5a1b2a674  gcc/testsuite/gcc.dg/dfp/warn-abs-2.c
  9190a1b37c2c0dd750746fbca83c728e  gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c
+ 805de0f47d50a14a456f31fe69c14dac  gcc/testsuite/gcc.dg/dg-output-file-1-ilp32.txt
+ c585d9bc8c2482e8f13e75b6ade450ad  gcc/testsuite/gcc.dg/dg-output-file-1-lp64.txt
+ 779b88d6d912c1df201d7138b388cd98  gcc/testsuite/gcc.dg/dg-output-file-1.c
  1d1366a913ab3a21a6dbd1b236fc57a4  gcc/testsuite/gcc.dg/dg-test-1.c
! 9a07f2faa200e4b3bbe8c297550b15fd  gcc/testsuite/gcc.dg/dg.exp
  f26c27ac11691c96c083fca389b2dbb6  gcc/testsuite/gcc.dg/di-longlong64-sync-1.c
  219e789dfc5a796c8a7791e531f94157  gcc/testsuite/gcc.dg/di-sync-multithread.c
  2df811a2152c5568edd8515c1ffbd515  gcc/testsuite/gcc.dg/diag-aka-1.c
*************** ee788a46b1efec4045f148bc484b79c8  gcc/te
*** 43297,43306 ****
  9c49d36a54518ba5874b3fe7045ef791  gcc/testsuite/gcc.dg/do-empty.c
  d6d757fcd56326d73dde487c47e25026  gcc/testsuite/gcc.dg/dollar.c
  2a0f90e764120be6ebd86a1d01676eb8  gcc/testsuite/gcc.dg/doloop-2.c
! efbeda9c3f0c482106667db0a34aa5db  gcc/testsuite/gcc.dg/dremf-type-compat-1.c
! bd44ef641d45fe83e831207ed4c8d2d4  gcc/testsuite/gcc.dg/dremf-type-compat-2.c
! e77b7e9b1d7772c131ac552c3a291b11  gcc/testsuite/gcc.dg/dremf-type-compat-3.c
! 1f8d21cbc8b194d856287ee1e7b464f0  gcc/testsuite/gcc.dg/dremf-type-compat-4.c
  85af5aa30810c3a1a3225376b6165caa  gcc/testsuite/gcc.dg/driver-specs.c
  2beb3494d33d28806a312e4df1f1cae1  gcc/testsuite/gcc.dg/dse.c
  f34780cdbccc51545586c79e2e465eb7  gcc/testsuite/gcc.dg/duff-1.c
--- 45838,45848 ----
  9c49d36a54518ba5874b3fe7045ef791  gcc/testsuite/gcc.dg/do-empty.c
  d6d757fcd56326d73dde487c47e25026  gcc/testsuite/gcc.dg/dollar.c
  2a0f90e764120be6ebd86a1d01676eb8  gcc/testsuite/gcc.dg/doloop-2.c
! f306cf3c5f54a5fb39682de5dc7a6027  gcc/testsuite/gcc.dg/dremf-type-compat-1.c
! 6bb6e6857880c7b5a7d3086d148fd935  gcc/testsuite/gcc.dg/dremf-type-compat-2.c
! 00365c25e0bfebbdf3bb086ae53cc1ba  gcc/testsuite/gcc.dg/dremf-type-compat-3.c
! 9bf094b544c0f471a7554631adca597f  gcc/testsuite/gcc.dg/dremf-type-compat-4.c
! ce6301c9d801b4a0fa18e08e5542088f  gcc/testsuite/gcc.dg/driver-nostdlibstar.c
  85af5aa30810c3a1a3225376b6165caa  gcc/testsuite/gcc.dg/driver-specs.c
  2beb3494d33d28806a312e4df1f1cae1  gcc/testsuite/gcc.dg/dse.c
  f34780cdbccc51545586c79e2e465eb7  gcc/testsuite/gcc.dg/duff-1.c
*************** c3d0e5f87b23f96c728ab8dd3707bb9b  gcc/te
*** 43317,43324 ****
  7908cbe605cd47ed92b1586d03a7c349  gcc/testsuite/gcc.dg/empty2.c
  ebbead2c256958474254113d9a718d6f  gcc/testsuite/gcc.dg/encoding-issues-bytes.c
  51130a02a0d46dd506ac46d36d6a293f  gcc/testsuite/gcc.dg/encoding-issues-unicode.c
! 6fe8e06975e2047ac26c2559c1e17dda  gcc/testsuite/gcc.dg/enum-compat-1.c
! 8f9ab6c7513eae383b2905010fa3a9ec  gcc/testsuite/gcc.dg/enum-compat-2.c
  e1fe0207f459d8843a756d7853ebc94b  gcc/testsuite/gcc.dg/enum-const-1.c
  c5d67585a3b60da28143ffc545cd326d  gcc/testsuite/gcc.dg/enum-const-2.c
  70fc652957a06c38ed462619c6af5188  gcc/testsuite/gcc.dg/enum-const-3.c
--- 45859,45870 ----
  7908cbe605cd47ed92b1586d03a7c349  gcc/testsuite/gcc.dg/empty2.c
  ebbead2c256958474254113d9a718d6f  gcc/testsuite/gcc.dg/encoding-issues-bytes.c
  51130a02a0d46dd506ac46d36d6a293f  gcc/testsuite/gcc.dg/encoding-issues-unicode.c
! 10f681221b6cc5d5de3b667f7285f73f  gcc/testsuite/gcc.dg/enum-alias-1.c
! 7d7c71fb0b4c81986393112841ba31e4  gcc/testsuite/gcc.dg/enum-alias-2.c
! 709f514ac47382b68e80cfce11111ce8  gcc/testsuite/gcc.dg/enum-alias-3.c
! 43cf8d6158bc851a23a143e2dd701c35  gcc/testsuite/gcc.dg/enum-alias-4.c
! cb0285277b2232b9ef464da328af0a9c  gcc/testsuite/gcc.dg/enum-compat-1.c
! fdc61eccacb0dad796b2c3bb9237e30c  gcc/testsuite/gcc.dg/enum-compat-2.c
  e1fe0207f459d8843a756d7853ebc94b  gcc/testsuite/gcc.dg/enum-const-1.c
  c5d67585a3b60da28143ffc545cd326d  gcc/testsuite/gcc.dg/enum-const-2.c
  70fc652957a06c38ed462619c6af5188  gcc/testsuite/gcc.dg/enum-const-3.c
*************** c54a3052ec2d03b003a96b460fc1509c  gcc/te
*** 43345,43350 ****
--- 45891,45922 ----
  2bc0342a25d7d1e316ce2fb511a55ca2  gcc/testsuite/gcc.dg/fastmath-1.c
  c87b8cb24b5597f6cb6c5620972b8083  gcc/testsuite/gcc.dg/fdata-sections-1.c
  4d70da06c50e6429d5febbbf7d8e42c7  gcc/testsuite/gcc.dg/fdata-sections-2.c
+ b0e2b944c95704b8a92af8e96e46c10a  gcc/testsuite/gcc.dg/field-merge-1.c
+ 2c7e83afa265da3ccd7fa8e2ef46d4ee  gcc/testsuite/gcc.dg/field-merge-10.c
+ d3ae7327817972d9175f38b90e286de3  gcc/testsuite/gcc.dg/field-merge-11.c
+ defbe29f29afc3d9f04b28e342477a49  gcc/testsuite/gcc.dg/field-merge-12.c
+ 26d8e6eaf7d9942283a85f18dd29f006  gcc/testsuite/gcc.dg/field-merge-13.c
+ 7dc4c5ed637945ed8fd7c0bbbd44ee7c  gcc/testsuite/gcc.dg/field-merge-14.c
+ b271e658a8e6e79eaedfc84d71b51915  gcc/testsuite/gcc.dg/field-merge-15.c
+ 4f446cefd14b259a93e72c65f7f944d1  gcc/testsuite/gcc.dg/field-merge-16.c
+ f208043be2194020a6567216cfbb3acb  gcc/testsuite/gcc.dg/field-merge-17.c
+ 3590aae3d15d5f0173f999bc7f193fd6  gcc/testsuite/gcc.dg/field-merge-18.c
+ 652d9ad075394c5e63a74091650a013c  gcc/testsuite/gcc.dg/field-merge-19.c
+ 1bda97ab480b7cc751d57e6c73f84978  gcc/testsuite/gcc.dg/field-merge-2.c
+ b01f932951daa56054521e0405560879  gcc/testsuite/gcc.dg/field-merge-20.c
+ 9d0741e3a82c901c87cf45fd3c5046c4  gcc/testsuite/gcc.dg/field-merge-21.c
+ 831d834b0c805b4391c00884ce731181  gcc/testsuite/gcc.dg/field-merge-22.c
+ 8529046783d4bd5668b4af352d88dc5a  gcc/testsuite/gcc.dg/field-merge-23.c
+ 078def1d93dce2dfa6b4cdc9852f79fc  gcc/testsuite/gcc.dg/field-merge-24.c
+ b6781fb59f0e8bc762b2f3bf942bf899  gcc/testsuite/gcc.dg/field-merge-25.c
+ 6e73a94774acd88b5928d17a1f4479cf  gcc/testsuite/gcc.dg/field-merge-26.c
+ a93e02a1b857b3050ef57d493895269f  gcc/testsuite/gcc.dg/field-merge-3.c
+ 73f7a866a12c6d973e7c5778f7bc273e  gcc/testsuite/gcc.dg/field-merge-4.c
+ b1cf29a903f3891e56c0462995b6d429  gcc/testsuite/gcc.dg/field-merge-5.c
+ 8dbd075bfb630db5fe9de719ae99e544  gcc/testsuite/gcc.dg/field-merge-6.c
+ b2261f1eb545e766e08e1d4c6053fd3f  gcc/testsuite/gcc.dg/field-merge-7.c
+ 287648430402f57030a4f882851c8567  gcc/testsuite/gcc.dg/field-merge-8.c
+ d0bc87906ab15d1c924ee3692f1fe04d  gcc/testsuite/gcc.dg/field-merge-9.c
  a8a90b832f35b09f2216096babd51aba  gcc/testsuite/gcc.dg/fixed-point/Wbad-function-cast-1.c
  f3a876eb6a0816f6085df8f93e7edd6d  gcc/testsuite/gcc.dg/fixed-point/addsub.c
  5afc3af871fd9df9d54c80d2747eb3e0  gcc/testsuite/gcc.dg/fixed-point/allconv.c
*************** cf36100f6ef42f7a6229d24404e673a6  gcc/te
*** 43367,43377 ****
  1a93181cd7b7d52bc5ab936562f09e95  gcc/testsuite/gcc.dg/fixed-point/convert-float-1.c
  db8384cbd550d9cf9b7553e281ac2705  gcc/testsuite/gcc.dg/fixed-point/convert-float-2.c
  fbb2efd40077480640832c0b949ba5f9  gcc/testsuite/gcc.dg/fixed-point/convert-float-3.c
! af315092d026865340052aee7b9849a3  gcc/testsuite/gcc.dg/fixed-point/convert-float-4.c
  11f3b667f90a009058a0bbb781d75c33  gcc/testsuite/gcc.dg/fixed-point/convert-sat.c
  17daa5326aad34d453af61740fa3b55b  gcc/testsuite/gcc.dg/fixed-point/convert.h
  4d465f534ba6b0040d0b907de70eb06d  gcc/testsuite/gcc.dg/fixed-point/define.c
! c849217412a0ee8350c74f1e24724967  gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp
  7172d69a38fc3346148178e2346509cf  gcc/testsuite/gcc.dg/fixed-point/func-array.c
  c71cd62369fd73371bd64d9e9c2653fe  gcc/testsuite/gcc.dg/fixed-point/func-mixed.c
  2b619b6a57d0ac97a39f559544f66909  gcc/testsuite/gcc.dg/fixed-point/func-scalar.c
--- 45939,45949 ----
  1a93181cd7b7d52bc5ab936562f09e95  gcc/testsuite/gcc.dg/fixed-point/convert-float-1.c
  db8384cbd550d9cf9b7553e281ac2705  gcc/testsuite/gcc.dg/fixed-point/convert-float-2.c
  fbb2efd40077480640832c0b949ba5f9  gcc/testsuite/gcc.dg/fixed-point/convert-float-3.c
! ba9babbdf6b9b9adbb2294699c69fb2e  gcc/testsuite/gcc.dg/fixed-point/convert-float-4.c
  11f3b667f90a009058a0bbb781d75c33  gcc/testsuite/gcc.dg/fixed-point/convert-sat.c
  17daa5326aad34d453af61740fa3b55b  gcc/testsuite/gcc.dg/fixed-point/convert.h
  4d465f534ba6b0040d0b907de70eb06d  gcc/testsuite/gcc.dg/fixed-point/define.c
! 597a3f8f4b55ee3a2b83960cd5925829  gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp
  7172d69a38fc3346148178e2346509cf  gcc/testsuite/gcc.dg/fixed-point/func-array.c
  c71cd62369fd73371bd64d9e9c2653fe  gcc/testsuite/gcc.dg/fixed-point/func-mixed.c
  2b619b6a57d0ac97a39f559544f66909  gcc/testsuite/gcc.dg/fixed-point/func-scalar.c
*************** e6360f93ff139620b9b4a3b964c18b2f  gcc/te
*** 43394,43399 ****
--- 45966,45972 ----
  4f48797bcee4611184e018eb4e8414ad  gcc/testsuite/gcc.dg/fixed-point/operator-cond.c
  be23acf3456ffa13de8055db4f48d5a4  gcc/testsuite/gcc.dg/fixed-point/operator-logical.c
  3024bebbf86c7b8c8e8c83995ddb5d4c  gcc/testsuite/gcc.dg/fixed-point/operator-unary.c
+ 2410829cf3b020a912b46dcef5e66f4b  gcc/testsuite/gcc.dg/fixed-point/pr117611.c
  ab759da2baa8282403e179cab187e798  gcc/testsuite/gcc.dg/fixed-point/pr33466.c
  a2912e74487dfcaf9581a1c04d0a91db  gcc/testsuite/gcc.dg/fixed-point/pr79971.c
  4ddafc5aad884ab2d271703ec84749f1  gcc/testsuite/gcc.dg/fixed-point/pr81428.c
*************** b26ec4207090108ad96e87a3a0dbcd15  gcc/te
*** 43409,43414 ****
--- 45982,45996 ----
  d0d6a914156d5c3df669e283a9d6c0d4  gcc/testsuite/gcc.dg/fixits-pr84852-2.c
  191af7b32d3e6f8856bf440cade6a4db  gcc/testsuite/gcc.dg/fixits.c
  ef50af421660786db0fe02810452b32f  gcc/testsuite/gcc.dg/fixuns-trunc-1.c
+ 119d68ec9d406736525925baa741c86d  gcc/testsuite/gcc.dg/flex-array-counted-by-2.c
+ 9e5caa8e6c852ec68adc39d11d50d634  gcc/testsuite/gcc.dg/flex-array-counted-by-3.c
+ 1e53d8381bcb33143f6c1dc097825144  gcc/testsuite/gcc.dg/flex-array-counted-by-4.c
+ 1fc709f417a1f89ec75957a55d38b929  gcc/testsuite/gcc.dg/flex-array-counted-by-5.c
+ 2c9ed1bcf8f1e2a92f37975ccbcd94d9  gcc/testsuite/gcc.dg/flex-array-counted-by-6.c
+ e486a1ffcb1566eec83f03a282afd7e6  gcc/testsuite/gcc.dg/flex-array-counted-by-7.c
+ 4dc99e0ee56663888e56bd5837502656  gcc/testsuite/gcc.dg/flex-array-counted-by-8.c
+ 87afb64cad8aabf8f81ae0aa525a224a  gcc/testsuite/gcc.dg/flex-array-counted-by-9.c
+ 99866c95c8046db22909456476e855eb  gcc/testsuite/gcc.dg/flex-array-counted-by.c
  85db05f8c70ca4dbcefde9d1c06692c6  gcc/testsuite/gcc.dg/float-exact-1.c
  64811ec5667d21e1633fbe21a81dc58c  gcc/testsuite/gcc.dg/float-range-1.c
  004cdd7f4e1522c6bc32910e120d11f9  gcc/testsuite/gcc.dg/float-range-2.c
*************** a4596c7975a946fa49341b476cdddf3a  gcc/te
*** 43432,43444 ****
  e50dce809881cd3fe916639e85f3e895  gcc/testsuite/gcc.dg/float_opposite_arm-1.c
  dce4fd47d3f8088f0fcde8e4c014985f  gcc/testsuite/gcc.dg/floatn-align.h
  a7a463105294b90172c7dacacf6dfaab  gcc/testsuite/gcc.dg/floatn-arithconv.c
! bfaa6b3a6e5de108258c8a51ca88aff8  gcc/testsuite/gcc.dg/floatn-errs.c
  398e378ccf214b678f6ebf1c7240cecc  gcc/testsuite/gcc.dg/floatn-typeof.h
  6445ad08747af281b3480c35124fa4c3  gcc/testsuite/gcc.dg/fltconst-1.c
  ac923cb0946f0a02be6d7ee945f615af  gcc/testsuite/gcc.dg/fltconst-2.c
  ec48ef6788dad6cfe18034e516c9265a  gcc/testsuite/gcc.dg/fltconst-double-pedantic-1.c
  7c23ad99f6a5c9ce7d77059ffb62f39d  gcc/testsuite/gcc.dg/fltconst-double-pedantic-2.c
! c5d91152e3c1bb6ccb21494e2c255a62  gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c
  73af40644a725aba642880648a234af3  gcc/testsuite/gcc.dg/fma-1.c
  8bcb5e0877b469ace52a6faf0344d808  gcc/testsuite/gcc.dg/fma-2.c
  24a0f603a54e161cca5180163139abee  gcc/testsuite/gcc.dg/fma-3.c
--- 46014,46026 ----
  e50dce809881cd3fe916639e85f3e895  gcc/testsuite/gcc.dg/float_opposite_arm-1.c
  dce4fd47d3f8088f0fcde8e4c014985f  gcc/testsuite/gcc.dg/floatn-align.h
  a7a463105294b90172c7dacacf6dfaab  gcc/testsuite/gcc.dg/floatn-arithconv.c
! 4d1e9438f2ce4bb4f312f23ecf837aaf  gcc/testsuite/gcc.dg/floatn-errs.c
  398e378ccf214b678f6ebf1c7240cecc  gcc/testsuite/gcc.dg/floatn-typeof.h
  6445ad08747af281b3480c35124fa4c3  gcc/testsuite/gcc.dg/fltconst-1.c
  ac923cb0946f0a02be6d7ee945f615af  gcc/testsuite/gcc.dg/fltconst-2.c
  ec48ef6788dad6cfe18034e516c9265a  gcc/testsuite/gcc.dg/fltconst-double-pedantic-1.c
  7c23ad99f6a5c9ce7d77059ffb62f39d  gcc/testsuite/gcc.dg/fltconst-double-pedantic-2.c
! 10f7d72769269ace32dfdd698e4b3832  gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c
  73af40644a725aba642880648a234af3  gcc/testsuite/gcc.dg/fma-1.c
  8bcb5e0877b469ace52a6faf0344d808  gcc/testsuite/gcc.dg/fma-2.c
  24a0f603a54e161cca5180163139abee  gcc/testsuite/gcc.dg/fma-3.c
*************** bf55018660cf8baa3e58bf9e1ee0fe9d  gcc/te
*** 43455,43461 ****
  d467beb16e456482332e0ca640f19292  gcc/testsuite/gcc.dg/fold-abs-5.c
  c9b0de9ffb902166ddfb8db2c5514e3e  gcc/testsuite/gcc.dg/fold-abs-6.c
  6029881671859e74cf9329211ab584aa  gcc/testsuite/gcc.dg/fold-addr-1.c
! 02435c9be5fee19209e65c955dbc0161  gcc/testsuite/gcc.dg/fold-alloca-1.c
  01a2a752858aaa9b41f9c60889862317  gcc/testsuite/gcc.dg/fold-and-1.c
  5301f3e1d1814b2bc9a75d0f2f389b2d  gcc/testsuite/gcc.dg/fold-and-2.c
  755c4a9c1be77f607f8e8c5a7928c4d8  gcc/testsuite/gcc.dg/fold-and-lshift.c
--- 46037,46043 ----
  d467beb16e456482332e0ca640f19292  gcc/testsuite/gcc.dg/fold-abs-5.c
  c9b0de9ffb902166ddfb8db2c5514e3e  gcc/testsuite/gcc.dg/fold-abs-6.c
  6029881671859e74cf9329211ab584aa  gcc/testsuite/gcc.dg/fold-addr-1.c
! aa784fbfc6bf05182c5d2918b3f6a5fb  gcc/testsuite/gcc.dg/fold-alloca-1.c
  01a2a752858aaa9b41f9c60889862317  gcc/testsuite/gcc.dg/fold-and-1.c
  5301f3e1d1814b2bc9a75d0f2f389b2d  gcc/testsuite/gcc.dg/fold-and-2.c
  755c4a9c1be77f607f8e8c5a7928c4d8  gcc/testsuite/gcc.dg/fold-and-lshift.c
*************** ee5011d0e6b7fccb87df0fdf4ed4cdaf  gcc/te
*** 43494,43502 ****
  bd0bf08bda1424362307a0339137a72d  gcc/testsuite/gcc.dg/fold-convminconv-1.c
  eaf814577ce35df4d8865fd97a483ccb  gcc/testsuite/gcc.dg/fold-convnotconv-1.c
  399ab8aec7dfc124d0cca585c4c944be  gcc/testsuite/gcc.dg/fold-convround-1.c
! 5794d9beeba4a407396144ce7960a8f0  gcc/testsuite/gcc.dg/fold-copysign-1.c
  bf0e3d583aa40f4309fb7ca85e660b7b  gcc/testsuite/gcc.dg/fold-cstring.c
  34087e25944fd1f9c2f33740cbb9338e  gcc/testsuite/gcc.dg/fold-cstvecshift.c
  116852682b5f90b0e8d97b57cc7ef9c9  gcc/testsuite/gcc.dg/fold-cvect.c
  1f72f6632d462c2e6b6039335ae0c50f  gcc/testsuite/gcc.dg/fold-div-1.c
  8514735988453bfa1206b82edf761ccf  gcc/testsuite/gcc.dg/fold-div-2.c
--- 46076,46086 ----
  bd0bf08bda1424362307a0339137a72d  gcc/testsuite/gcc.dg/fold-convminconv-1.c
  eaf814577ce35df4d8865fd97a483ccb  gcc/testsuite/gcc.dg/fold-convnotconv-1.c
  399ab8aec7dfc124d0cca585c4c944be  gcc/testsuite/gcc.dg/fold-convround-1.c
! c55571e5ae8277e8fe34bd30ccbc760a  gcc/testsuite/gcc.dg/fold-copysign-1.c
  bf0e3d583aa40f4309fb7ca85e660b7b  gcc/testsuite/gcc.dg/fold-cstring.c
  34087e25944fd1f9c2f33740cbb9338e  gcc/testsuite/gcc.dg/fold-cstvecshift.c
+ 5c3c139b120c01c45b23f1afa9f49752  gcc/testsuite/gcc.dg/fold-ctz-1.c
+ 68aefa47e341437d1940986455541c22  gcc/testsuite/gcc.dg/fold-ctz-2.c
  116852682b5f90b0e8d97b57cc7ef9c9  gcc/testsuite/gcc.dg/fold-cvect.c
  1f72f6632d462c2e6b6039335ae0c50f  gcc/testsuite/gcc.dg/fold-div-1.c
  8514735988453bfa1206b82edf761ccf  gcc/testsuite/gcc.dg/fold-div-2.c
*************** a5e2dbd5c41bfadcee229c5e5cfecb88  gcc/te
*** 43535,43540 ****
--- 46119,46126 ----
  7d68803d70c17f17a90c352000bcd79d  gcc/testsuite/gcc.dg/fold-mod-1.c
  9f3eab917884f349357c8e26303caf57  gcc/testsuite/gcc.dg/fold-modpow2-2.c
  756a61ce538f9f3b4770dd97dbc536d1  gcc/testsuite/gcc.dg/fold-modpow2.c
+ b32d3c8cad17a41778635c17c5b255b3  gcc/testsuite/gcc.dg/fold-mul-and-lshift-1.c
+ 801ad699929fbafeeb7886e2d4615c92  gcc/testsuite/gcc.dg/fold-mul-and-lshift-2.c
  e2cb83c8a04f64016a0601ceb96b26b6  gcc/testsuite/gcc.dg/fold-mulconj-1.c
  8b863df3798cd57dd19965e0949d3a4f  gcc/testsuite/gcc.dg/fold-narrowbopcst-1.c
  672d04851269fa9e9524efecb62e512b  gcc/testsuite/gcc.dg/fold-negate-1.c
*************** d479c5c3779e4eb0ade89611b753af71  gcc/te
*** 43552,43557 ****
--- 46138,46144 ----
  cce9d37850de2bfc2f1c84a9cf308ec7  gcc/testsuite/gcc.dg/fold-parity-6.c
  89b2eeb66cb44cc783301c1cb6b6693d  gcc/testsuite/gcc.dg/fold-parity-7.c
  9cf9ba0cda3921082633b5f6e5cc76e7  gcc/testsuite/gcc.dg/fold-parity-8.c
+ 49da5d96533f0ae98a4f475f107f369d  gcc/testsuite/gcc.dg/fold-perm-2.c
  54aa9b110f6cc41b3a8069183e125e4b  gcc/testsuite/gcc.dg/fold-perm.c
  2cd5d659a1bbfb19ac32b1f216d642c9  gcc/testsuite/gcc.dg/fold-plus-1.c
  aaf2343db123edcb5a12fe5e85de4492  gcc/testsuite/gcc.dg/fold-plus-2.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 43639,43644 ****
--- 46226,46232 ----
  1cbc4a0f562f400d1b4cd399fccdaed8  gcc/testsuite/gcc.dg/format/c99-strftime-2.c
  4a0af73997f2fabfe3b83d5cbdd917f5  gcc/testsuite/gcc.dg/format/cast-1.c
  2bbc64aef0d11089fcc505ed72a3896e  gcc/testsuite/gcc.dg/format/cmn-err-1.c
+ 36614cc57d59aebe75e577cdc78e6b1d  gcc/testsuite/gcc.dg/format/colors.c
  6211f331e7746a849fa866af08fc8795  gcc/testsuite/gcc.dg/format/dfp-printf-1.c
  6af7fd86fadcfa6889af48973673b3e8  gcc/testsuite/gcc.dg/format/dfp-scanf-1.c
  597c2cef1b33bb71739d311ee56278e3  gcc/testsuite/gcc.dg/format/diag-1.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 43656,43662 ****
  9b01ff037cc666ebab469fea9243a970  gcc/testsuite/gcc.dg/format/ext-8.c
  e5c207978371bb080fe33dd28efe0312  gcc/testsuite/gcc.dg/format/ext-9.c
  15bea7790574d1770ac396bfef50a19e  gcc/testsuite/gcc.dg/format/few-1.c
! aaed69b020e63ebc2534cd9b373d0e01  gcc/testsuite/gcc.dg/format/format.exp
  e2490c0c34db4afed2c43ea8d9b062ec  gcc/testsuite/gcc.dg/format/format.h
  52c959d010226e4d23f520f1efbcfbd0  gcc/testsuite/gcc.dg/format/gcc_diag-1.c
  a484d0f83ec2d309b89e88feec0dd1e8  gcc/testsuite/gcc.dg/format/gcc_diag-10.c
--- 46244,46250 ----
  9b01ff037cc666ebab469fea9243a970  gcc/testsuite/gcc.dg/format/ext-8.c
  e5c207978371bb080fe33dd28efe0312  gcc/testsuite/gcc.dg/format/ext-9.c
  15bea7790574d1770ac396bfef50a19e  gcc/testsuite/gcc.dg/format/few-1.c
! b815b861d36c38a13b83a5292ef2608e  gcc/testsuite/gcc.dg/format/format.exp
  e2490c0c34db4afed2c43ea8d9b062ec  gcc/testsuite/gcc.dg/format/format.h
  52c959d010226e4d23f520f1efbcfbd0  gcc/testsuite/gcc.dg/format/gcc_diag-1.c
  a484d0f83ec2d309b89e88feec0dd1e8  gcc/testsuite/gcc.dg/format/gcc_diag-10.c
*************** b5fc99d5cd488987e446fd40c88fdcde  gcc/te
*** 43764,43772 ****
  26ef3595e4d7bd004063fa2f9183b411  gcc/testsuite/gcc.dg/format/pr80619.c
  5caacdfcb70fb6b71dd7eea3ed07bf1e  gcc/testsuite/gcc.dg/format/pr80919.c
  29caabda4f0970842bda436e701889de  gcc/testsuite/gcc.dg/format/pr96935.c
! 5fad85f6a525ba649eb9b2cc42c89366  gcc/testsuite/gcc.dg/format/proto.c
  8e4de68e496a28c03b2a9a568280143e  gcc/testsuite/gcc.dg/format/sec-1.c
! e237ed24e55e62c199105f7dfda9c95c  gcc/testsuite/gcc.dg/format/sentinel-1.c
  688497ce35c621c597ae6b5e8102bec1  gcc/testsuite/gcc.dg/format/sentinel-2.c
  9cbef1e5751733a4ccc852045f747a93  gcc/testsuite/gcc.dg/format/strfmon-1.c
  0580b4faa6d69e15b3dbd3564bef3b03  gcc/testsuite/gcc.dg/format/strfmon-2.c
--- 46352,46360 ----
  26ef3595e4d7bd004063fa2f9183b411  gcc/testsuite/gcc.dg/format/pr80619.c
  5caacdfcb70fb6b71dd7eea3ed07bf1e  gcc/testsuite/gcc.dg/format/pr80919.c
  29caabda4f0970842bda436e701889de  gcc/testsuite/gcc.dg/format/pr96935.c
! 0b254088a40c4485cd574557f34b87a9  gcc/testsuite/gcc.dg/format/proto.c
  8e4de68e496a28c03b2a9a568280143e  gcc/testsuite/gcc.dg/format/sec-1.c
! 29c1567550d49ecfa9afe455a458d3bd  gcc/testsuite/gcc.dg/format/sentinel-1.c
  688497ce35c621c597ae6b5e8102bec1  gcc/testsuite/gcc.dg/format/sentinel-2.c
  9cbef1e5751733a4ccc852045f747a93  gcc/testsuite/gcc.dg/format/strfmon-1.c
  0580b4faa6d69e15b3dbd3564bef3b03  gcc/testsuite/gcc.dg/format/strfmon-2.c
*************** b545fd5015b04774ac8c95c87722bfc2  gcc/te
*** 43791,43797 ****
  76411379bc46f8e28491db8515c8b035  gcc/testsuite/gcc.dg/freestanding-main.c
  196d33dd29e6d3bd808b05c7472ef1d2  gcc/testsuite/gcc.dg/freestanding-nonint-main.c
  60aef7ab4a0a9bca44f5182276f77cc3  gcc/testsuite/gcc.dg/fshort-wchar.c
! e69d451610be384e22b38ba06231497c  gcc/testsuite/gcc.dg/fstack-protector-strong.c
  e229fba1e745ea8e6ffbf5e48314ecd3  gcc/testsuite/gcc.dg/ftrapv-1.c
  674ce79cdefdee8408c64f5ff5fc573d  gcc/testsuite/gcc.dg/ftrapv-2.c
  9337f6ee91ecdc5686e015d1984a97a2  gcc/testsuite/gcc.dg/ftrapv-3.c
--- 46379,46385 ----
  76411379bc46f8e28491db8515c8b035  gcc/testsuite/gcc.dg/freestanding-main.c
  196d33dd29e6d3bd808b05c7472ef1d2  gcc/testsuite/gcc.dg/freestanding-nonint-main.c
  60aef7ab4a0a9bca44f5182276f77cc3  gcc/testsuite/gcc.dg/fshort-wchar.c
! 2d177ba4dab767c88012364d96a56a76  gcc/testsuite/gcc.dg/fstack-protector-strong.c
  e229fba1e745ea8e6ffbf5e48314ecd3  gcc/testsuite/gcc.dg/ftrapv-1.c
  674ce79cdefdee8408c64f5ff5fc573d  gcc/testsuite/gcc.dg/ftrapv-2.c
  9337f6ee91ecdc5686e015d1984a97a2  gcc/testsuite/gcc.dg/ftrapv-3.c
*************** f67882b336f63b608ae43b6730adaaaf  gcc/te
*** 43849,43855 ****
  e6814c98756761f222d943c13ee581ad  gcc/testsuite/gcc.dg/gimplefe-4.c
  9ddf86d2eb77d21c2e05769b1538d391  gcc/testsuite/gcc.dg/gimplefe-42.c
  34f653039b6a19157b5e6e939514150b  gcc/testsuite/gcc.dg/gimplefe-43.c
! e77515df730caf92aaccc463aedcd8c1  gcc/testsuite/gcc.dg/gimplefe-44.c
  ac4f542243160409b282373a022d7522  gcc/testsuite/gcc.dg/gimplefe-45.c
  2f581daa32c54ac01dfbb700b3c55853  gcc/testsuite/gcc.dg/gimplefe-46.c
  269ae74f2c685731dd2c577870e6f130  gcc/testsuite/gcc.dg/gimplefe-47.c
--- 46437,46443 ----
  e6814c98756761f222d943c13ee581ad  gcc/testsuite/gcc.dg/gimplefe-4.c
  9ddf86d2eb77d21c2e05769b1538d391  gcc/testsuite/gcc.dg/gimplefe-42.c
  34f653039b6a19157b5e6e939514150b  gcc/testsuite/gcc.dg/gimplefe-43.c
! 626a39cbf1e745f1998be3b9a9cb3bb4  gcc/testsuite/gcc.dg/gimplefe-44.c
  ac4f542243160409b282373a022d7522  gcc/testsuite/gcc.dg/gimplefe-45.c
  2f581daa32c54ac01dfbb700b3c55853  gcc/testsuite/gcc.dg/gimplefe-46.c
  269ae74f2c685731dd2c577870e6f130  gcc/testsuite/gcc.dg/gimplefe-47.c
*************** b900f5308b7aaf209ad303e7426ad1bc  gcc/te
*** 43859,43864 ****
--- 46447,46456 ----
  45fc625ed3f9623dfaa1af8e3fb65615  gcc/testsuite/gcc.dg/gimplefe-50.c
  4e3abf91f192e3ee95a9cdb0533a1c0d  gcc/testsuite/gcc.dg/gimplefe-51.c
  c22f32307f45a41035662597ec36c291  gcc/testsuite/gcc.dg/gimplefe-52.c
+ 45e76d6606a1973adc0a994737d6d652  gcc/testsuite/gcc.dg/gimplefe-53.c
+ 5ae9db3d6582f388d273d0ed7ec56bf9  gcc/testsuite/gcc.dg/gimplefe-54.c
+ 2d95286bb836d5694f1e829fdd422c4d  gcc/testsuite/gcc.dg/gimplefe-55.c
+ e79c01b4e6117435c5f54b610c2bfb67  gcc/testsuite/gcc.dg/gimplefe-56.c
  003508c84556e4dd5119101f7dec73f6  gcc/testsuite/gcc.dg/gimplefe-6.c
  8537131248e8cadb5cf09db5f3a17687  gcc/testsuite/gcc.dg/gimplefe-7.c
  db9f8ce39b07fae0c4fd30c72f382e9f  gcc/testsuite/gcc.dg/gimplefe-8.c
*************** b51074560898490ec9b135be86916e73  gcc/te
*** 43885,43895 ****
--- 46477,46492 ----
  dae93188c3869bbff623a97d9f7b2b08  gcc/testsuite/gcc.dg/gnu-cond-expr-3.c
  78dbc165a91d16e2113b59bde997e8f1  gcc/testsuite/gcc.dg/gnu-predef-1.c
  6210c50f4f4266fc68c146927b33c06f  gcc/testsuite/gcc.dg/gnu11-align-1.c
+ cfff87aa3fe61ca0975eef3fa6fba250  gcc/testsuite/gcc.dg/gnu11-empty-init-1.c
+ 1e9dded6ad5de0efe6b4984ffe53866b  gcc/testsuite/gcc.dg/gnu11-empty-init-2.c
+ a16a8e69d8d9a55a5cf0a9d5f6f300ed  gcc/testsuite/gcc.dg/gnu11-empty-init-3.c
+ e690ee91d3ae06cb709d40641ea3adab  gcc/testsuite/gcc.dg/gnu11-empty-init-4.c
  3a332e39fec6e68a2d4507ccd5c20199  gcc/testsuite/gcc.dg/gnu11-typeof-1.c
  f63e3315a5589f87a501301af189ea1c  gcc/testsuite/gcc.dg/gnu11-typeof-2.c
  bcac9a124b918a50171000947ed79c44  gcc/testsuite/gcc.dg/gnu11-typeof-3.c
  cfd6cd2c503b1854a70dc22639330f51  gcc/testsuite/gcc.dg/gnu11-typeof-4.c
  98860983e0e7e6c0e27409a268e0b255  gcc/testsuite/gcc.dg/gnu11-version-1.c
+ 66470adff57a3727826d678e3b22a732  gcc/testsuite/gcc.dg/gnu17-tag-1.c
  828e76bbe8829f3919f46e4cf1db72c8  gcc/testsuite/gcc.dg/gnu23-attr-syntax-1.c
  6d842c64c5f2267b46796029021f59a2  gcc/testsuite/gcc.dg/gnu23-attr-syntax-2.c
  48f80e709948e068188c364f2d4a41ac  gcc/testsuite/gcc.dg/gnu23-attr-syntax-3.c
*************** b30dc48fe3763ca69877d6077300d37c  gcc/te
*** 43900,43905 ****
--- 46497,46503 ----
  edf813c8d54b5e8d260c28528b027fd6  gcc/testsuite/gcc.dg/gnu23-complit-1.c
  40f656a1cc548467fd8adeccd70bae09  gcc/testsuite/gcc.dg/gnu23-complit-2.c
  70f32e1d7187d362fee5d12a8440bc0e  gcc/testsuite/gcc.dg/gnu23-constexpr-1.c
+ 0ffb13ef8dab78db71c4dc96d69df229  gcc/testsuite/gcc.dg/gnu23-constexpr-2.c
  46ccfb9fc7d943889787d6cdc2c03a67  gcc/testsuite/gcc.dg/gnu23-empty-init-1.c
  0696d143e7a8e79ac5b69711f246e6db  gcc/testsuite/gcc.dg/gnu23-empty-init-2.c
  0343701af853738a5917698c56c357aa  gcc/testsuite/gcc.dg/gnu23-enum-1.c
*************** edf813c8d54b5e8d260c28528b027fd6  gcc/te
*** 43907,43923 ****
  93a7b3f57a86ae3b5922552bd28d396f  gcc/testsuite/gcc.dg/gnu23-opts-2.c
  5975c5002cb3c1fd8a61d2d142a10aba  gcc/testsuite/gcc.dg/gnu23-static-assert-1.c
  1532f2be461d008191481d93d4aa77fd  gcc/testsuite/gcc.dg/gnu23-stdarg-1.c
  27b715413894f856d524e800cbb3d365  gcc/testsuite/gcc.dg/gnu23-tag-1.c
  a2603d6d18077481049b8e8cfd99dbc8  gcc/testsuite/gcc.dg/gnu23-tag-2.c
  a9ce030fd9cea4fc82863a00d8bc7b9a  gcc/testsuite/gcc.dg/gnu23-tag-3.c
  b30864374e5b5a035dcade1d26559a44  gcc/testsuite/gcc.dg/gnu23-tag-4.c
  7260a5a5257eac9f20c98aae697b7169  gcc/testsuite/gcc.dg/gnu23-tag-alias-1.c
  1c3bab9da0fd2bdba772e1c60bbf8cb0  gcc/testsuite/gcc.dg/gnu23-tag-alias-2.c
  d91f97efe0b20a84c86a2d98fd3e4dcc  gcc/testsuite/gcc.dg/gnu23-tag-alias-3.c
! 9de715de5ed94b004a08f02171073068  gcc/testsuite/gcc.dg/gnu23-tag-alias-4.c
  19dd14d42cbd28ed2f8a1416ee079e14  gcc/testsuite/gcc.dg/gnu23-tag-alias-5.c
  b0723a093a932ec32843cd898ba3f2c4  gcc/testsuite/gcc.dg/gnu23-tag-alias-6.c
! d5d5157938348319bae6e5bc5eb0ef75  gcc/testsuite/gcc.dg/gnu23-tag-alias-7.c
  b3de7f48e15a02c6e6fb8bd51e4ab614  gcc/testsuite/gcc.dg/gnu23-tag-composite-1.c
  c16263fe97e9a67347f142108b0ef45c  gcc/testsuite/gcc.dg/gnu23-tag-composite-2.c
  8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
--- 46505,46526 ----
  93a7b3f57a86ae3b5922552bd28d396f  gcc/testsuite/gcc.dg/gnu23-opts-2.c
  5975c5002cb3c1fd8a61d2d142a10aba  gcc/testsuite/gcc.dg/gnu23-static-assert-1.c
  1532f2be461d008191481d93d4aa77fd  gcc/testsuite/gcc.dg/gnu23-stdarg-1.c
+ fc7ab8740c9ca694680271132083b519  gcc/testsuite/gcc.dg/gnu23-switch-1.c
+ 835675696305f7e7f4afb6179036a972  gcc/testsuite/gcc.dg/gnu23-switch-2.c
  27b715413894f856d524e800cbb3d365  gcc/testsuite/gcc.dg/gnu23-tag-1.c
  a2603d6d18077481049b8e8cfd99dbc8  gcc/testsuite/gcc.dg/gnu23-tag-2.c
  a9ce030fd9cea4fc82863a00d8bc7b9a  gcc/testsuite/gcc.dg/gnu23-tag-3.c
  b30864374e5b5a035dcade1d26559a44  gcc/testsuite/gcc.dg/gnu23-tag-4.c
+ 933f77776f7c1e1bfabb1f855fa1765d  gcc/testsuite/gcc.dg/gnu23-tag-5.c
+ 11bf019498715d6d1768f2227085b8ff  gcc/testsuite/gcc.dg/gnu23-tag-6.c
  7260a5a5257eac9f20c98aae697b7169  gcc/testsuite/gcc.dg/gnu23-tag-alias-1.c
  1c3bab9da0fd2bdba772e1c60bbf8cb0  gcc/testsuite/gcc.dg/gnu23-tag-alias-2.c
  d91f97efe0b20a84c86a2d98fd3e4dcc  gcc/testsuite/gcc.dg/gnu23-tag-alias-3.c
! 1648631f33e0c1efcb6001202854d6d9  gcc/testsuite/gcc.dg/gnu23-tag-alias-4.c
  19dd14d42cbd28ed2f8a1416ee079e14  gcc/testsuite/gcc.dg/gnu23-tag-alias-5.c
  b0723a093a932ec32843cd898ba3f2c4  gcc/testsuite/gcc.dg/gnu23-tag-alias-6.c
! 38dbff05e9088019661c94db30c489d6  gcc/testsuite/gcc.dg/gnu23-tag-alias-7.c
! d74e9a5084c468435b60d3a0cb70f9e7  gcc/testsuite/gcc.dg/gnu23-tag-alias-8.c
  b3de7f48e15a02c6e6fb8bd51e4ab614  gcc/testsuite/gcc.dg/gnu23-tag-composite-1.c
  c16263fe97e9a67347f142108b0ef45c  gcc/testsuite/gcc.dg/gnu23-tag-composite-2.c
  8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
*************** c85fa6543a15d51c958fa06a431c31a0  gcc/te
*** 43928,43933 ****
--- 46531,46543 ----
  f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/testsuite/gcc.dg/gnu23-utf8char-1.c
  81a7647277d0b9fe98a1595920a70723  gcc/testsuite/gcc.dg/gnu23-utf8str-type.c
  20991cd5f827e293e71f1c1df48a0684  gcc/testsuite/gcc.dg/gnu23-utf8str.c
+ eb1d723212b53acd36bd05227db041f0  gcc/testsuite/gcc.dg/gnu23-varmod-1.c
+ fef817a5289ed167c6df669440052cb8  gcc/testsuite/gcc.dg/gnu23-varmod-2.c
+ 151c450908edaf00d29bbe1ebde15019  gcc/testsuite/gcc.dg/gnu23-version-1.c
+ 62096b01fb6b644f22d5ecce209b00a7  gcc/testsuite/gcc.dg/gnu23-version-2.c
+ 04db7d375fe7aa6866f5b071420c42ca  gcc/testsuite/gcc.dg/gnu2y-generic-1.c
+ ac355ead5a3568cfd49ed0c85a23088d  gcc/testsuite/gcc.dg/gnu2y-if-decls-1.c
+ f77c31115055c3e005868b138fed6b24  gcc/testsuite/gcc.dg/gnu2y-named-loops-3.c
  1dba007eb9375f507aea8a8537219f2f  gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
  5f9245bb91ebd059fd2e1a5562ed7ed7  gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
  b2a706a7cbbcb618336ca54df5e8285f  gcc/testsuite/gcc.dg/gnu89-dupqual-1.c
*************** df72c137bd3e5dc385bcf9201c669d10  gcc/te
*** 43940,43951 ****
  ae8f65ff46d5c742b9d555f0c48fdbe3  gcc/testsuite/gcc.dg/gnu99-const-expr-2.c
  8236216b01f0d0959d70bede6ea995e1  gcc/testsuite/gcc.dg/gnu99-const-expr-3.c
  3d286a14488351bc2ff258e38d02f3ce  gcc/testsuite/gcc.dg/gnu99-const-expr-4.c
  465c3878b47ae66788561ddbec36b439  gcc/testsuite/gcc.dg/gnu99-init-1.c
  21af052ed022fbb55651109aaef9f7e0  gcc/testsuite/gcc.dg/gnu99-init-2.c
  6981df5e05752f9975e927f7aa20f8e0  gcc/testsuite/gcc.dg/gnu99-static-1.c
! 055a7946e52c3e8946526a204c7b1f6b  gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp
  e301304e13590c1ce7f775ce00ef95b0  gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c
! a4f69e881e30adde71f24df76c33c666  gcc/testsuite/gcc.dg/goacc/goacc.exp
  f1c6a4ba57460443a8ecc12c3bf25d9f  gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
  afb6312838d88aea13a070e21cbe9fb9  gcc/testsuite/gcc.dg/goacc/nested-function-1.c
  28e371856aae0bf30288fd000314f411  gcc/testsuite/gcc.dg/goacc/nested-function-2.c
--- 46550,46568 ----
  ae8f65ff46d5c742b9d555f0c48fdbe3  gcc/testsuite/gcc.dg/gnu99-const-expr-2.c
  8236216b01f0d0959d70bede6ea995e1  gcc/testsuite/gcc.dg/gnu99-const-expr-3.c
  3d286a14488351bc2ff258e38d02f3ce  gcc/testsuite/gcc.dg/gnu99-const-expr-4.c
+ 588cdc6a4eda53f8213bfcff9ce2c431  gcc/testsuite/gcc.dg/gnu99-if-decls-1.c
+ 0e80d1ff1480d85d9f2fb7ee7ea39433  gcc/testsuite/gcc.dg/gnu99-if-decls-2.c
  465c3878b47ae66788561ddbec36b439  gcc/testsuite/gcc.dg/gnu99-init-1.c
  21af052ed022fbb55651109aaef9f7e0  gcc/testsuite/gcc.dg/gnu99-init-2.c
+ 8debe12ace44ce65fa6e0c123c6df5aa  gcc/testsuite/gcc.dg/gnu99-named-loops-1.c
+ 8cd3ecc7147c8f938a6027df3058b5d3  gcc/testsuite/gcc.dg/gnu99-named-loops-2.c
+ a446d49d6ff35f3a874088311fa38207  gcc/testsuite/gcc.dg/gnu99-named-loops-3.c
+ a5f47289e62701bbe1efc5281910058b  gcc/testsuite/gcc.dg/gnu99-named-loops-4.c
  6981df5e05752f9975e927f7aa20f8e0  gcc/testsuite/gcc.dg/gnu99-static-1.c
! fb265d834063c5aaa2875485b932f114  gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp
  e301304e13590c1ce7f775ce00ef95b0  gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c
! 4fed98b0d94d6a6c741e444a466966cd  gcc/testsuite/gcc.dg/goacc/goacc.exp
! 9ddc4cac2f32f99bff6e9386bdd47acf  gcc/testsuite/gcc.dg/goacc/implied-copy.c
  f1c6a4ba57460443a8ecc12c3bf25d9f  gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
  afb6312838d88aea13a070e21cbe9fb9  gcc/testsuite/gcc.dg/goacc/nested-function-1.c
  28e371856aae0bf30288fd000314f411  gcc/testsuite/gcc.dg/goacc/nested-function-2.c
*************** f0990e08177a1fbd146dd2412ed83858  gcc/te
*** 43958,43963 ****
--- 46575,46583 ----
  5a7e8af9edd68a5e923dd69b3eed3ae2  gcc/testsuite/gcc.dg/gomp/_Atomic-3.c
  c4edc2223e3a86496e0d53b60f25c434  gcc/testsuite/gcc.dg/gomp/_Atomic-4.c
  775ba1a68d341dd5efa49ab2c8290023  gcc/testsuite/gcc.dg/gomp/_Atomic-5.c
+ 59eee8331c90801ca70e3bf10bcf4e0e  gcc/testsuite/gcc.dg/gomp/adjust-args-1.c
+ dfc82995e2790a51a71b8e0c0dce494a  gcc/testsuite/gcc.dg/gomp/adjust-args-2.c
+ 06ef83520d1f0afa52bbd989814b1bf1  gcc/testsuite/gcc.dg/gomp/append-args-1.c
  2f3333af08b8042445e79536694a34b4  gcc/testsuite/gcc.dg/gomp/appendix-a/a.1.1.c
  885f61f4895f1224def50fcf707b2f2e  gcc/testsuite/gcc.dg/gomp/appendix-a/a.10.1.c
  c8cf5f6a748356f3bcea8e2dbb2e4196  gcc/testsuite/gcc.dg/gomp/appendix-a/a.12.1.c
*************** e340eb07b9f188f317bb98a5577daa45  gcc/te
*** 44008,44016 ****
  7be94eac97d57b71b671b087cef568fd  gcc/testsuite/gcc.dg/gomp/attrs-19.c
  6cf7c4e12e7f64fccfb4c93f58b4d231  gcc/testsuite/gcc.dg/gomp/attrs-2.c
  700c53aad0d5d269bea023972e23cbb0  gcc/testsuite/gcc.dg/gomp/attrs-20.c
! a4898b96c392c0c7a38ec45b2c1f4e63  gcc/testsuite/gcc.dg/gomp/attrs-21.c
  629438b394352352fe98ddd89e17dafb  gcc/testsuite/gcc.dg/gomp/attrs-3.c
! c1c6eca884454ae25c6d1415bf3463a4  gcc/testsuite/gcc.dg/gomp/attrs-4.c
  0b57ff1b2127d619ccf510193a878649  gcc/testsuite/gcc.dg/gomp/attrs-5.c
  4669e031a30201a11db7f113d3edfb12  gcc/testsuite/gcc.dg/gomp/attrs-6.c
  18fb56e85095c83341d35f60dfc31a81  gcc/testsuite/gcc.dg/gomp/attrs-7.c
--- 46628,46636 ----
  7be94eac97d57b71b671b087cef568fd  gcc/testsuite/gcc.dg/gomp/attrs-19.c
  6cf7c4e12e7f64fccfb4c93f58b4d231  gcc/testsuite/gcc.dg/gomp/attrs-2.c
  700c53aad0d5d269bea023972e23cbb0  gcc/testsuite/gcc.dg/gomp/attrs-20.c
! da25de872fdf30520a92c5a7efdc5eb8  gcc/testsuite/gcc.dg/gomp/attrs-21.c
  629438b394352352fe98ddd89e17dafb  gcc/testsuite/gcc.dg/gomp/attrs-3.c
! 10f52bcfaf0fc71d9940804770c4deb7  gcc/testsuite/gcc.dg/gomp/attrs-4.c
  0b57ff1b2127d619ccf510193a878649  gcc/testsuite/gcc.dg/gomp/attrs-5.c
  4669e031a30201a11db7f113d3edfb12  gcc/testsuite/gcc.dg/gomp/attrs-6.c
  18fb56e85095c83341d35f60dfc31a81  gcc/testsuite/gcc.dg/gomp/attrs-7.c
*************** a711c9451bdf512fdc17116c6ecdc398  gcc/te
*** 44048,44069 ****
  1a2c5c09aa0be5fb46a4f5f23aa6e736  gcc/testsuite/gcc.dg/gomp/critical-2.c
  03bbd187d9153b4add585d80ff21398a  gcc/testsuite/gcc.dg/gomp/critical-3.c
  5ed058cff064ccd6bdbb074b4f718aef  gcc/testsuite/gcc.dg/gomp/critical-4.c
! fb7d4bae284cb967bab3f6af105ee82e  gcc/testsuite/gcc.dg/gomp/declare-simd-1.c
  dbf4fad9a516a5e21a83632a1bc47d48  gcc/testsuite/gcc.dg/gomp/declare-simd-2.c
  eaf20ce005642d7f04c4f181f7d0e142  gcc/testsuite/gcc.dg/gomp/declare-simd-3.c
  8ad7fd6bf872bcd397b6264c4199830e  gcc/testsuite/gcc.dg/gomp/declare-simd-4.c
  c95154d0c0580392aee19257bfc2e9e4  gcc/testsuite/gcc.dg/gomp/declare-simd-5.c
  d9fdf9f47a3764723441a571868d9cba  gcc/testsuite/gcc.dg/gomp/declare-variant-1.c
  51d79415450b7870aadd4c879fb233d4  gcc/testsuite/gcc.dg/gomp/declare-variant-2.c
  4cbde8501b67eb0634877343d20eda34  gcc/testsuite/gcc.dg/gomp/dump-new-function-2.c
  5a6bfb1bc31247155e2a2829449a3dd5  gcc/testsuite/gcc.dg/gomp/dump-new-function-3.c
  da3311b0af85a7a45f6b528ac08bee72  gcc/testsuite/gcc.dg/gomp/dump-new-function.c
  13a51ccb745c7a6af800300a71ba4db2  gcc/testsuite/gcc.dg/gomp/empty.c
  c3b954ea09bbba3edd6119d93faa47b2  gcc/testsuite/gcc.dg/gomp/flush-1.c
  dde42ea2a7e2a28ea02156f12f0ca76c  gcc/testsuite/gcc.dg/gomp/flush-2.c
! 0c31307403d689d2602d6cfb4684ae73  gcc/testsuite/gcc.dg/gomp/for-1.c
  1aec673db23320e0cbf990aab75fecf4  gcc/testsuite/gcc.dg/gomp/for-10.c
! d42d6a11c89564878dcd01117d217f99  gcc/testsuite/gcc.dg/gomp/for-11.c
  960deaf5aecaf20f0fe9fe964a0fda95  gcc/testsuite/gcc.dg/gomp/for-12.c
  2f24516f667a24479ee22ac21fba9edc  gcc/testsuite/gcc.dg/gomp/for-13.c
  7d78cd8bc009108e1a80c10e65b1560a  gcc/testsuite/gcc.dg/gomp/for-14.c
--- 46668,46694 ----
  1a2c5c09aa0be5fb46a4f5f23aa6e736  gcc/testsuite/gcc.dg/gomp/critical-2.c
  03bbd187d9153b4add585d80ff21398a  gcc/testsuite/gcc.dg/gomp/critical-3.c
  5ed058cff064ccd6bdbb074b4f718aef  gcc/testsuite/gcc.dg/gomp/critical-4.c
! 9855504c29153e58227e4911a1d26e10  gcc/testsuite/gcc.dg/gomp/declare-simd-1.c
  dbf4fad9a516a5e21a83632a1bc47d48  gcc/testsuite/gcc.dg/gomp/declare-simd-2.c
  eaf20ce005642d7f04c4f181f7d0e142  gcc/testsuite/gcc.dg/gomp/declare-simd-3.c
  8ad7fd6bf872bcd397b6264c4199830e  gcc/testsuite/gcc.dg/gomp/declare-simd-4.c
  c95154d0c0580392aee19257bfc2e9e4  gcc/testsuite/gcc.dg/gomp/declare-simd-5.c
  d9fdf9f47a3764723441a571868d9cba  gcc/testsuite/gcc.dg/gomp/declare-variant-1.c
  51d79415450b7870aadd4c879fb233d4  gcc/testsuite/gcc.dg/gomp/declare-variant-2.c
+ 40f2ea44239995df51ac3b38a7133338  gcc/testsuite/gcc.dg/gomp/dispatch-1.c
+ 8d3b27b739488aeb8d5cef6a8ede902f  gcc/testsuite/gcc.dg/gomp/dispatch-2.c
+ daf23047f461270ab705201d4069235e  gcc/testsuite/gcc.dg/gomp/dispatch-3.c
+ d3b34d7c255d3203ac708a01942eebdd  gcc/testsuite/gcc.dg/gomp/dispatch-4.c
+ 244422c531a3d96d30f4dfc4a85638da  gcc/testsuite/gcc.dg/gomp/dispatch-5.c
  4cbde8501b67eb0634877343d20eda34  gcc/testsuite/gcc.dg/gomp/dump-new-function-2.c
  5a6bfb1bc31247155e2a2829449a3dd5  gcc/testsuite/gcc.dg/gomp/dump-new-function-3.c
  da3311b0af85a7a45f6b528ac08bee72  gcc/testsuite/gcc.dg/gomp/dump-new-function.c
  13a51ccb745c7a6af800300a71ba4db2  gcc/testsuite/gcc.dg/gomp/empty.c
  c3b954ea09bbba3edd6119d93faa47b2  gcc/testsuite/gcc.dg/gomp/flush-1.c
  dde42ea2a7e2a28ea02156f12f0ca76c  gcc/testsuite/gcc.dg/gomp/flush-2.c
! 9086ad094e42203922e8e074fc6db93b  gcc/testsuite/gcc.dg/gomp/for-1.c
  1aec673db23320e0cbf990aab75fecf4  gcc/testsuite/gcc.dg/gomp/for-10.c
! b78d62a61160da6d00c93705f260221d  gcc/testsuite/gcc.dg/gomp/for-11.c
  960deaf5aecaf20f0fe9fe964a0fda95  gcc/testsuite/gcc.dg/gomp/for-12.c
  2f24516f667a24479ee22ac21fba9edc  gcc/testsuite/gcc.dg/gomp/for-13.c
  7d78cd8bc009108e1a80c10e65b1560a  gcc/testsuite/gcc.dg/gomp/for-14.c
*************** d04c18e8518877b08e0371599b6643ed  gcc/te
*** 44085,44091 ****
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/gcc.dg/gomp/for-7.c
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/gcc.dg/gomp/for-8.c
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/gcc.dg/gomp/for-9.c
! 71e3d1611521814d409afaf80414f71f  gcc/testsuite/gcc.dg/gomp/gomp.exp
  f23a4bf5a986b8f5c098e677d3a78a11  gcc/testsuite/gcc.dg/gomp/linear-1.c
  11c71eb5733cf2b2fd8236737c95dfad  gcc/testsuite/gcc.dg/gomp/loop-1.c
  110dfd4b42962d803dd77ce77900455c  gcc/testsuite/gcc.dg/gomp/loop-2.c
--- 46710,46716 ----
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/gcc.dg/gomp/for-7.c
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/gcc.dg/gomp/for-8.c
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/gcc.dg/gomp/for-9.c
! 8b04fc2a06faaa7581be43ad80531e99  gcc/testsuite/gcc.dg/gomp/gomp.exp
  f23a4bf5a986b8f5c098e677d3a78a11  gcc/testsuite/gcc.dg/gomp/linear-1.c
  11c71eb5733cf2b2fd8236737c95dfad  gcc/testsuite/gcc.dg/gomp/loop-1.c
  110dfd4b42962d803dd77ce77900455c  gcc/testsuite/gcc.dg/gomp/loop-2.c
*************** d77e47d829660c96c43f189c259292a5  gcc/te
*** 44096,44101 ****
--- 46721,46730 ----
  9dff449fe2d97c4b3ade07b982e69364  gcc/testsuite/gcc.dg/gomp/master-1.c
  e3d4511cf0643d031beaecffa7d44be0  gcc/testsuite/gcc.dg/gomp/master-2.c
  12980af7dd41b122fc335c0ef4ba07ed  gcc/testsuite/gcc.dg/gomp/master-3.c
+ 8ec8b9b7973df31c9332b5f69c4e940d  gcc/testsuite/gcc.dg/gomp/max_vf-1.c
+ a730b346d0a30f7e8ed5be192633579a  gcc/testsuite/gcc.dg/gomp/metadirective-1.c
+ 27c67e32fd4b098003d0d0b5b9322420  gcc/testsuite/gcc.dg/gomp/named-loops-1.c
+ 243b5765e9ba584cad4ab49b8d11f2c4  gcc/testsuite/gcc.dg/gomp/named-loops-2.c
  2d3a1739d0f68eb616c52754dd6292ae  gcc/testsuite/gcc.dg/gomp/nestedfn-1.c
  13f30c2066a7cf4479908d3d67d32fe3  gcc/testsuite/gcc.dg/gomp/nesting-1.c
  b8a262a38fc2393baa245eefd42cb523  gcc/testsuite/gcc.dg/gomp/notify-new-function-2.c
*************** ad5a2c143fabe766d3848eb100ea6c38  gcc/te
*** 44109,44115 ****
  94425c0fe2326ebaf98958aacc1d262d  gcc/testsuite/gcc.dg/gomp/ordered-1.c
  d7769c446568c18d557180c850cf3b4a  gcc/testsuite/gcc.dg/gomp/ordered-2.c
  92d8f2d0169326b7681c946be683ef2c  gcc/testsuite/gcc.dg/gomp/parallel-1.c
! 9f67411770a7ed029ecc31a0322360f4  gcc/testsuite/gcc.dg/gomp/parallel-2.c
  f711435274df71049aa71808a78fc7a5  gcc/testsuite/gcc.dg/gomp/parallel-3.c
  d9a1f43ca6ac2a073e22bbbf243f300b  gcc/testsuite/gcc.dg/gomp/parallel-4.c
  0f7ac2e81ae2d400d52c34aa1c0b379a  gcc/testsuite/gcc.dg/gomp/pr100508.c
--- 46738,46744 ----
  94425c0fe2326ebaf98958aacc1d262d  gcc/testsuite/gcc.dg/gomp/ordered-1.c
  d7769c446568c18d557180c850cf3b4a  gcc/testsuite/gcc.dg/gomp/ordered-2.c
  92d8f2d0169326b7681c946be683ef2c  gcc/testsuite/gcc.dg/gomp/parallel-1.c
! 83f43f752a04866c618b6aa62a00dc8c  gcc/testsuite/gcc.dg/gomp/parallel-2.c
  f711435274df71049aa71808a78fc7a5  gcc/testsuite/gcc.dg/gomp/parallel-3.c
  d9a1f43ca6ac2a073e22bbbf243f300b  gcc/testsuite/gcc.dg/gomp/parallel-4.c
  0f7ac2e81ae2d400d52c34aa1c0b379a  gcc/testsuite/gcc.dg/gomp/pr100508.c
*************** c5ee594378ac792cf2fff87af7a358ea  gcc/te
*** 44141,44147 ****
  caf3f8d640964957534f8b2c392515a6  gcc/testsuite/gcc.dg/gomp/pr29965-5.c
  35ff646abf77150705de53d2e8018b6b  gcc/testsuite/gcc.dg/gomp/pr29965-6.c
  01620637589b417fb2acb227b2394864  gcc/testsuite/gcc.dg/gomp/pr30421.c
! 956554ace6dc6b94f3dc031bbe6eba58  gcc/testsuite/gcc.dg/gomp/pr30494.c
  63de52e4cfb7fc5c66ca030a01546201  gcc/testsuite/gcc.dg/gomp/pr32468-1.c
  a015fac57cc10c6d8cb53c59d01a382d  gcc/testsuite/gcc.dg/gomp/pr34607.c
  04c0c7b868c24b8b981999a1ecc066f8  gcc/testsuite/gcc.dg/gomp/pr34610.c
--- 46770,46776 ----
  caf3f8d640964957534f8b2c392515a6  gcc/testsuite/gcc.dg/gomp/pr29965-5.c
  35ff646abf77150705de53d2e8018b6b  gcc/testsuite/gcc.dg/gomp/pr29965-6.c
  01620637589b417fb2acb227b2394864  gcc/testsuite/gcc.dg/gomp/pr30421.c
! 5dc1c71d241b4a1db0fc329a37405271  gcc/testsuite/gcc.dg/gomp/pr30494.c
  63de52e4cfb7fc5c66ca030a01546201  gcc/testsuite/gcc.dg/gomp/pr32468-1.c
  a015fac57cc10c6d8cb53c59d01a382d  gcc/testsuite/gcc.dg/gomp/pr34607.c
  04c0c7b868c24b8b981999a1ecc066f8  gcc/testsuite/gcc.dg/gomp/pr34610.c
*************** b6e412b1e41464bf3c6ad63059710985  gcc/te
*** 44188,44194 ****
  789ef66f070336e211866c3e5ec1dc53  gcc/testsuite/gcc.dg/gomp/pr78884.c
  3dfa5450530e68792fc799c17f83fc46  gcc/testsuite/gcc.dg/gomp/pr81768-1.c
  43bccc2e99a04235390798e75d04c6d1  gcc/testsuite/gcc.dg/gomp/pr81768-2.c
! 1fb1dcba746e154601a6f0935615231b  gcc/testsuite/gcc.dg/gomp/pr82374.c
  c2238ef3622834a9d2e9a1dd614ede1c  gcc/testsuite/gcc.dg/gomp/pr85594.c
  42a7faa8338896e947caadf259df6c7f  gcc/testsuite/gcc.dg/gomp/pr87887-1.c
  5f387fcdd6742ba35feb45a289816ad9  gcc/testsuite/gcc.dg/gomp/pr87887-2.c
--- 46817,46823 ----
  789ef66f070336e211866c3e5ec1dc53  gcc/testsuite/gcc.dg/gomp/pr78884.c
  3dfa5450530e68792fc799c17f83fc46  gcc/testsuite/gcc.dg/gomp/pr81768-1.c
  43bccc2e99a04235390798e75d04c6d1  gcc/testsuite/gcc.dg/gomp/pr81768-2.c
! 349b48ccdf18fd6b389f12bbbc95f2dc  gcc/testsuite/gcc.dg/gomp/pr82374.c
  c2238ef3622834a9d2e9a1dd614ede1c  gcc/testsuite/gcc.dg/gomp/pr85594.c
  42a7faa8338896e947caadf259df6c7f  gcc/testsuite/gcc.dg/gomp/pr87887-1.c
  5f387fcdd6742ba35feb45a289816ad9  gcc/testsuite/gcc.dg/gomp/pr87887-2.c
*************** c14634a323696079f49ec83c65002f01  gcc/te
*** 44241,44246 ****
--- 46870,46876 ----
  039ac62669587006b5697f833ee30a64  gcc/testsuite/gcc.dg/gomp/simd-clones-5.c
  023f3c9c4c4f7d67c03b1c86eda70575  gcc/testsuite/gcc.dg/gomp/simd-clones-6.c
  90f7f3e44bd1941943388065f07a1305  gcc/testsuite/gcc.dg/gomp/simd-clones-7.c
+ 43a43e391e5a008c72102e34d3be01af  gcc/testsuite/gcc.dg/gomp/simd-clones-8.c
  1965f5f6d216fb5427034f0bbe0f9f1d  gcc/testsuite/gcc.dg/gomp/sink-fold-1.c
  ad6a9027ae49be1e64cb9dd3311b1b94  gcc/testsuite/gcc.dg/gomp/sink-fold-2.c
  9757c1f87d89d2e9c51fea96018a8f64  gcc/testsuite/gcc.dg/gomp/sink-fold-3.c
*************** ce7f414e0b315f56a4c5e6b6f61c2ddf  gcc/te
*** 44268,44277 ****
  79c19553e59dc76750e93a7bd9060361  gcc/testsuite/gcc.dg/gomp/udr-4.c
  cc2e57695051196863b0f1a101527357  gcc/testsuite/gcc.dg/gomp/uninit-1.c
  3900107f28986c0a648cdde2b189d84f  gcc/testsuite/gcc.dg/gomp/vla-1.c
! 83b9ba2d397c47edb4b0069374a5e5a0  gcc/testsuite/gcc.dg/gomp/vla-2.c
! bbeaec29af5c6a868849b415a3392680  gcc/testsuite/gcc.dg/gomp/vla-3.c
! 918f95f1e69776f38cf05325ce52cf69  gcc/testsuite/gcc.dg/gomp/vla-4.c
! f17355244404b8058f8bcf4e887c26c2  gcc/testsuite/gcc.dg/gomp/vla-5.c
  7d05d10e6ac5558ee60b7ddf51134000  gcc/testsuite/gcc.dg/gomp/workshare-reduction-1.c
  644e71db95db73e2a5dc95d1befa0bff  gcc/testsuite/gcc.dg/gomp/workshare-reduction-10.c
  01096faa2a300a8d55db30b8d3f2b003  gcc/testsuite/gcc.dg/gomp/workshare-reduction-11.c
--- 46898,46907 ----
  79c19553e59dc76750e93a7bd9060361  gcc/testsuite/gcc.dg/gomp/udr-4.c
  cc2e57695051196863b0f1a101527357  gcc/testsuite/gcc.dg/gomp/uninit-1.c
  3900107f28986c0a648cdde2b189d84f  gcc/testsuite/gcc.dg/gomp/vla-1.c
! 05cf7b9b216039921f9e5e7c3ff6bcd8  gcc/testsuite/gcc.dg/gomp/vla-2.c
! dffc13d32125301b7ec7446339386e09  gcc/testsuite/gcc.dg/gomp/vla-3.c
! 116f878293fdcf549fd6ef3c07e5a146  gcc/testsuite/gcc.dg/gomp/vla-4.c
! 0f94556c091c8140a7b69b4b25062fb8  gcc/testsuite/gcc.dg/gomp/vla-5.c
  7d05d10e6ac5558ee60b7ddf51134000  gcc/testsuite/gcc.dg/gomp/workshare-reduction-1.c
  644e71db95db73e2a5dc95d1befa0bff  gcc/testsuite/gcc.dg/gomp/workshare-reduction-10.c
  01096faa2a300a8d55db30b8d3f2b003  gcc/testsuite/gcc.dg/gomp/workshare-reduction-11.c
*************** d52311b9c131d936e432ecb0ead28e52  gcc/te
*** 44341,44354 ****
  5e3ef65d649f9a7d1c1d6819a2188844  gcc/testsuite/gcc.dg/graphite/block-pr47654.c
  9c2252f89106b7004be1067a7dbd5b52  gcc/testsuite/gcc.dg/graphite/fuse-1.c
  63d4a7071763336f82d3784cd09338d4  gcc/testsuite/gcc.dg/graphite/fuse-2.c
! e4bef33d15ca48915c84f7cbd875d133  gcc/testsuite/gcc.dg/graphite/graphite.exp
  fcc649eff8ed5565979257e4569372a8  gcc/testsuite/gcc.dg/graphite/id-1.c
  09f79b77ac016159bcb104dc023d7b07  gcc/testsuite/gcc.dg/graphite/id-10.c
  3e96948dcff7f34717278e07eb31443a  gcc/testsuite/gcc.dg/graphite/id-11.c
  34061859886d43460fe79f16248458de  gcc/testsuite/gcc.dg/graphite/id-12.c
  780052676e57581f69ae358e8c547eb1  gcc/testsuite/gcc.dg/graphite/id-13.c
  621fee158dc0d91a58d8ffdf3d1b6106  gcc/testsuite/gcc.dg/graphite/id-14.c
! 05aa0035d660f8dc33c6771c5e8e2ce4  gcc/testsuite/gcc.dg/graphite/id-15.c
  a6e6f0b5a89aac1b98a4284776b8f4f7  gcc/testsuite/gcc.dg/graphite/id-16.c
  43567e8a70e6407e18e312d3ffc8e16c  gcc/testsuite/gcc.dg/graphite/id-17.c
  d75f7adf409d34481e2f4da80628fbef  gcc/testsuite/gcc.dg/graphite/id-18.c
--- 46971,46984 ----
  5e3ef65d649f9a7d1c1d6819a2188844  gcc/testsuite/gcc.dg/graphite/block-pr47654.c
  9c2252f89106b7004be1067a7dbd5b52  gcc/testsuite/gcc.dg/graphite/fuse-1.c
  63d4a7071763336f82d3784cd09338d4  gcc/testsuite/gcc.dg/graphite/fuse-2.c
! 732c287141cfe5c127c502666856f607  gcc/testsuite/gcc.dg/graphite/graphite.exp
  fcc649eff8ed5565979257e4569372a8  gcc/testsuite/gcc.dg/graphite/id-1.c
  09f79b77ac016159bcb104dc023d7b07  gcc/testsuite/gcc.dg/graphite/id-10.c
  3e96948dcff7f34717278e07eb31443a  gcc/testsuite/gcc.dg/graphite/id-11.c
  34061859886d43460fe79f16248458de  gcc/testsuite/gcc.dg/graphite/id-12.c
  780052676e57581f69ae358e8c547eb1  gcc/testsuite/gcc.dg/graphite/id-13.c
  621fee158dc0d91a58d8ffdf3d1b6106  gcc/testsuite/gcc.dg/graphite/id-14.c
! 24b73a2dacf7935d1f1654c19f56beb5  gcc/testsuite/gcc.dg/graphite/id-15.c
  a6e6f0b5a89aac1b98a4284776b8f4f7  gcc/testsuite/gcc.dg/graphite/id-16.c
  43567e8a70e6407e18e312d3ffc8e16c  gcc/testsuite/gcc.dg/graphite/id-17.c
  d75f7adf409d34481e2f4da80628fbef  gcc/testsuite/gcc.dg/graphite/id-18.c
*************** c0a5902abca3277fb2c3371823c620eb  gcc/te
*** 44413,44418 ****
--- 47043,47049 ----
  4e23241d90b6472bd3399bd9104dd643  gcc/testsuite/gcc.dg/graphite/isl-ast-op-select.c
  48d66d27639d95446c690c4a5d1347ba  gcc/testsuite/gcc.dg/graphite/pr106055.c
  ffacda22ab3bcffecadb05d2f6a41819  gcc/testsuite/gcc.dg/graphite/pr111878.c
+ a1c48393417f0c48ec9e695180879dab  gcc/testsuite/gcc.dg/graphite/pr116068.c
  9b9162822adb571b6b648827778dc56a  gcc/testsuite/gcc.dg/graphite/pr18792.c
  2247a3a0f30b24cd4f6afb8a99289230  gcc/testsuite/gcc.dg/graphite/pr19910.c
  93366da6daaa0436c31dfcb03c746093  gcc/testsuite/gcc.dg/graphite/pr20041110-1.c
*************** f02682ed87227fa444eb22f10e5fb7d8  gcc/te
*** 44448,44458 ****
  210028b047b238736ff5f6d464ee8282  gcc/testsuite/gcc.dg/graphite/pr38084.c
  b897ad99a5776845df0c200f95b8a90b  gcc/testsuite/gcc.dg/graphite/pr38125.c
  3e7baf622130b446326f0bae4ce569a8  gcc/testsuite/gcc.dg/graphite/pr38409.c
! bebdf300be43d63a1f4baa66f49718c4  gcc/testsuite/gcc.dg/graphite/pr38413.c
  2ccee6ffde3753ba60608cd0ecefd12e  gcc/testsuite/gcc.dg/graphite/pr38446.c
  ccd6cd586d7ec6bfe427c2018a4e2646  gcc/testsuite/gcc.dg/graphite/pr38498.c
  f0ddab5ddbd16d83b7a5474a686f4363  gcc/testsuite/gcc.dg/graphite/pr38500.c
! 934705cf0b767fc7623b2d6dc5a0cb56  gcc/testsuite/gcc.dg/graphite/pr38510.c
  5c4e62c5b50c6a824909718212704777  gcc/testsuite/gcc.dg/graphite/pr38559.c
  48131442ba0ada3036e20a8667a480df  gcc/testsuite/gcc.dg/graphite/pr38786.c
  f1f95a05c967e328b97acad19a8ddb76  gcc/testsuite/gcc.dg/graphite/pr39260.c
--- 47079,47089 ----
  210028b047b238736ff5f6d464ee8282  gcc/testsuite/gcc.dg/graphite/pr38084.c
  b897ad99a5776845df0c200f95b8a90b  gcc/testsuite/gcc.dg/graphite/pr38125.c
  3e7baf622130b446326f0bae4ce569a8  gcc/testsuite/gcc.dg/graphite/pr38409.c
! f87567aead4ddace6bea5a81626efd96  gcc/testsuite/gcc.dg/graphite/pr38413.c
  2ccee6ffde3753ba60608cd0ecefd12e  gcc/testsuite/gcc.dg/graphite/pr38446.c
  ccd6cd586d7ec6bfe427c2018a4e2646  gcc/testsuite/gcc.dg/graphite/pr38498.c
  f0ddab5ddbd16d83b7a5474a686f4363  gcc/testsuite/gcc.dg/graphite/pr38500.c
! fb86a27b01bd64f2ee5b059f63575bf2  gcc/testsuite/gcc.dg/graphite/pr38510.c
  5c4e62c5b50c6a824909718212704777  gcc/testsuite/gcc.dg/graphite/pr38559.c
  48131442ba0ada3036e20a8667a480df  gcc/testsuite/gcc.dg/graphite/pr38786.c
  f1f95a05c967e328b97acad19a8ddb76  gcc/testsuite/gcc.dg/graphite/pr39260.c
*************** febbd295db57a2123e78312360a0adee  gcc/te
*** 44525,44531 ****
  89938738167ab0285c81a5bdb4ff79ff  gcc/testsuite/gcc.dg/graphite/pr79622.c
  1b9515edc4478a8ec28b75c7088351fc  gcc/testsuite/gcc.dg/graphite/pr79977.c
  bb10feccbec2eee90b555fb13034016d  gcc/testsuite/gcc.dg/graphite/pr80167.c
! 33c3065b57699d5f72a22e77ad90ad1b  gcc/testsuite/gcc.dg/graphite/pr80906.c
  01a1ab55635318d27ef9e417be3a140e  gcc/testsuite/gcc.dg/graphite/pr81090.c
  dc541d162565e09b6f0c2a1cea550fcc  gcc/testsuite/gcc.dg/graphite/pr81373-2.c
  c6f4655fa3f919cd428a28da6f6d6344  gcc/testsuite/gcc.dg/graphite/pr81373.c
--- 47156,47162 ----
  89938738167ab0285c81a5bdb4ff79ff  gcc/testsuite/gcc.dg/graphite/pr79622.c
  1b9515edc4478a8ec28b75c7088351fc  gcc/testsuite/gcc.dg/graphite/pr79977.c
  bb10feccbec2eee90b555fb13034016d  gcc/testsuite/gcc.dg/graphite/pr80167.c
! ad77cacbe4da7d788ef2e8e8714af068  gcc/testsuite/gcc.dg/graphite/pr80906.c
  01a1ab55635318d27ef9e417be3a140e  gcc/testsuite/gcc.dg/graphite/pr81090.c
  dc541d162565e09b6f0c2a1cea550fcc  gcc/testsuite/gcc.dg/graphite/pr81373-2.c
  c6f4655fa3f919cd428a28da6f6d6344  gcc/testsuite/gcc.dg/graphite/pr81373.c
*************** d4da3da3351d0f387c4d466a917ad8fa  gcc/te
*** 44566,44572 ****
  2ce473edf3c1e50255ffa96186cf15eb  gcc/testsuite/gcc.dg/graphite/pr86865.c
  424a5beca9a0b9d00f4c95e73cd4f87b  gcc/testsuite/gcc.dg/graphite/pr87931.c
  c82f3c2ff1dcd8366a9a68108fdbd850  gcc/testsuite/gcc.dg/graphite/pr93964.c
! ce45f82e29aacad99cecfc384558e7d7  gcc/testsuite/gcc.dg/graphite/pr99085.c
  c5acb4eef5addd258e89e51e27d3b449  gcc/testsuite/gcc.dg/graphite/run-id-1.c
  69c11dc302a921c92977db519167bec1  gcc/testsuite/gcc.dg/graphite/run-id-2.c
  84a75a861553ce658d85018a3ced0a6b  gcc/testsuite/gcc.dg/graphite/run-id-3.c
--- 47197,47203 ----
  2ce473edf3c1e50255ffa96186cf15eb  gcc/testsuite/gcc.dg/graphite/pr86865.c
  424a5beca9a0b9d00f4c95e73cd4f87b  gcc/testsuite/gcc.dg/graphite/pr87931.c
  c82f3c2ff1dcd8366a9a68108fdbd850  gcc/testsuite/gcc.dg/graphite/pr93964.c
! c6b8698bec7f9a1a2671d400cbe3023b  gcc/testsuite/gcc.dg/graphite/pr99085.c
  c5acb4eef5addd258e89e51e27d3b449  gcc/testsuite/gcc.dg/graphite/run-id-1.c
  69c11dc302a921c92977db519167bec1  gcc/testsuite/gcc.dg/graphite/run-id-2.c
  84a75a861553ce658d85018a3ced0a6b  gcc/testsuite/gcc.dg/graphite/run-id-3.c
*************** b53f45865574ccabd59e1d656437b74c  gcc/te
*** 44604,44613 ****
  44f99b16a0aa9674919373c67af38463  gcc/testsuite/gcc.dg/graphite/scop-3.c
  4aaf278cefd4f7a2f59482be0da945e1  gcc/testsuite/gcc.dg/graphite/scop-4.c
  d2057cb4a30d57b0b93681004cdb79ee  gcc/testsuite/gcc.dg/graphite/scop-5.c
! e71816cd1a50c344fa5b377647b8c170  gcc/testsuite/gcc.dg/graphite/scop-6.c
  66890a5de32de9c1f1da0bacb4c8067c  gcc/testsuite/gcc.dg/graphite/scop-7.c
  c0f448dfa77f579c1faa1b00559d0d8b  gcc/testsuite/gcc.dg/graphite/scop-8.c
! b8f5757335e6643b1f4d517434d65b17  gcc/testsuite/gcc.dg/graphite/scop-9.c
  6799cfd85325c2aa97191187b689c2c3  gcc/testsuite/gcc.dg/graphite/scop-dsyr2k-2.c
  24f8fad998dbaf6d176e29a3a15dbe90  gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c
  aed374227e2b5f7d9197449e285032f2  gcc/testsuite/gcc.dg/graphite/scop-dsyrk-2.c
--- 47235,47244 ----
  44f99b16a0aa9674919373c67af38463  gcc/testsuite/gcc.dg/graphite/scop-3.c
  4aaf278cefd4f7a2f59482be0da945e1  gcc/testsuite/gcc.dg/graphite/scop-4.c
  d2057cb4a30d57b0b93681004cdb79ee  gcc/testsuite/gcc.dg/graphite/scop-5.c
! 8bc4cd41a4253752597ff80e9212ae06  gcc/testsuite/gcc.dg/graphite/scop-6.c
  66890a5de32de9c1f1da0bacb4c8067c  gcc/testsuite/gcc.dg/graphite/scop-7.c
  c0f448dfa77f579c1faa1b00559d0d8b  gcc/testsuite/gcc.dg/graphite/scop-8.c
! 88a20aa6d34681f94b859308dcb0f0c1  gcc/testsuite/gcc.dg/graphite/scop-9.c
  6799cfd85325c2aa97191187b689c2c3  gcc/testsuite/gcc.dg/graphite/scop-dsyr2k-2.c
  24f8fad998dbaf6d176e29a3a15dbe90  gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c
  aed374227e2b5f7d9197449e285032f2  gcc/testsuite/gcc.dg/graphite/scop-dsyrk-2.c
*************** a35da81a17cae7d714bdde9bb66ccd92  gcc/te
*** 44631,44638 ****
  b9aafcde73d659e8a8f12aec94a7cb09  gcc/testsuite/gcc.dg/guality/ctztest.c
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  35524176317603e370c0e34f6d8bd9ae  gcc/testsuite/gcc.dg/guality/example.c
! b585f5364a9c450ecb2e3b12c31813d4  gcc/testsuite/gcc.dg/guality/guality.c
! 08c1103a60685034dfbc4dc74e0f22c5  gcc/testsuite/gcc.dg/guality/guality.exp
  8c384d0e247915329d53a586d7639107  gcc/testsuite/gcc.dg/guality/guality.h
  2d9c26760bf9d33b3f102b5e17c22c93  gcc/testsuite/gcc.dg/guality/inline-params-2.c
  3e4b160c43920e148f7c88f96f5b4f0d  gcc/testsuite/gcc.dg/guality/inline-params.c
--- 47262,47269 ----
  b9aafcde73d659e8a8f12aec94a7cb09  gcc/testsuite/gcc.dg/guality/ctztest.c
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  35524176317603e370c0e34f6d8bd9ae  gcc/testsuite/gcc.dg/guality/example.c
! 163a14c7ee9331fc07d3026f1cde9d39  gcc/testsuite/gcc.dg/guality/guality.c
! 8fe1139f4413428a77fb51f401a931e8  gcc/testsuite/gcc.dg/guality/guality.exp
  8c384d0e247915329d53a586d7639107  gcc/testsuite/gcc.dg/guality/guality.h
  2d9c26760bf9d33b3f102b5e17c22c93  gcc/testsuite/gcc.dg/guality/inline-params-2.c
  3e4b160c43920e148f7c88f96f5b4f0d  gcc/testsuite/gcc.dg/guality/inline-params.c
*************** ebaa7610bcb4b84f2114855d1da9ded1  gcc/te
*** 44654,44660 ****
  c9e147a33e4a3b229f1f7f7ecf62470e  gcc/testsuite/gcc.dg/guality/pr36728-4.c
  870c69b13f7ce3207d60bfb18ef50dec  gcc/testsuite/gcc.dg/guality/pr36977.c
  aa0d3895cb110fb73483ef82390de1b0  gcc/testsuite/gcc.dg/guality/pr37726.c
! 5c5086cfb3549553ca944ae9dcf86cab  gcc/testsuite/gcc.dg/guality/pr41353-1.c
  6183e26dbce384fc9ea1b62b210da36c  gcc/testsuite/gcc.dg/guality/pr41353-2.c
  69a084e11405723fc656dcafcdb50d7a  gcc/testsuite/gcc.dg/guality/pr41404-1.c
  d483b8568052b98f163d16dfd85eb1b5  gcc/testsuite/gcc.dg/guality/pr41447-1.c
--- 47285,47291 ----
  c9e147a33e4a3b229f1f7f7ecf62470e  gcc/testsuite/gcc.dg/guality/pr36728-4.c
  870c69b13f7ce3207d60bfb18ef50dec  gcc/testsuite/gcc.dg/guality/pr36977.c
  aa0d3895cb110fb73483ef82390de1b0  gcc/testsuite/gcc.dg/guality/pr37726.c
! c76223773ce9e85c67b89d31d0cf5e83  gcc/testsuite/gcc.dg/guality/pr41353-1.c
  6183e26dbce384fc9ea1b62b210da36c  gcc/testsuite/gcc.dg/guality/pr41353-2.c
  69a084e11405723fc656dcafcdb50d7a  gcc/testsuite/gcc.dg/guality/pr41404-1.c
  d483b8568052b98f163d16dfd85eb1b5  gcc/testsuite/gcc.dg/guality/pr41447-1.c
*************** c3794a4a04d5241ee82db84945cf689a  gcc/te
*** 44681,44687 ****
  ecb604a07138737ba579b3cb4d7cd8d0  gcc/testsuite/gcc.dg/guality/pr54519-5.c
  e23b3494be5e35860f18b19c7f5a9186  gcc/testsuite/gcc.dg/guality/pr54519-6.c
  3b698bcedbf976b8fb41e5ed0e6c24d4  gcc/testsuite/gcc.dg/guality/pr54551.c
! 2c82edfd75085d45f49d3001689ce71d  gcc/testsuite/gcc.dg/guality/pr54693-2.c
  a0f519834f82ace4b5906cd4aac0b98e  gcc/testsuite/gcc.dg/guality/pr54693.c
  f6545f32d210f8c908e8b567c811af9c  gcc/testsuite/gcc.dg/guality/pr54796.c
  8daf210b82a9b3508a2b7525e13b3bec  gcc/testsuite/gcc.dg/guality/pr54970.c
--- 47312,47318 ----
  ecb604a07138737ba579b3cb4d7cd8d0  gcc/testsuite/gcc.dg/guality/pr54519-5.c
  e23b3494be5e35860f18b19c7f5a9186  gcc/testsuite/gcc.dg/guality/pr54519-6.c
  3b698bcedbf976b8fb41e5ed0e6c24d4  gcc/testsuite/gcc.dg/guality/pr54551.c
! 337069d6ae4297bc5d22354eef03ddc1  gcc/testsuite/gcc.dg/guality/pr54693-2.c
  a0f519834f82ace4b5906cd4aac0b98e  gcc/testsuite/gcc.dg/guality/pr54693.c
  f6545f32d210f8c908e8b567c811af9c  gcc/testsuite/gcc.dg/guality/pr54796.c
  8daf210b82a9b3508a2b7525e13b3bec  gcc/testsuite/gcc.dg/guality/pr54970.c
*************** bd4a9885fb6107771b347577a3a69af9  gcc/te
*** 44701,44707 ****
  6f9f612c16ed980a7a97f6d09a05b6e1  gcc/testsuite/gcc.dg/guality/pr68037-1.c
  db1720caaff79a0684d94be88f9e0d69  gcc/testsuite/gcc.dg/guality/pr68037-2.c
  28ee863461f68a968dc0f6c489f4f0d0  gcc/testsuite/gcc.dg/guality/pr68037-3.c
! ee123f55fadeaf992f4ebf05e7e57381  gcc/testsuite/gcc.dg/guality/pr68860-1.c
  3918f941799e00b43e4a2f83f2cc6b8c  gcc/testsuite/gcc.dg/guality/pr68860-2.c
  6ba30facaf57fd44c7a0dd23f5adda03  gcc/testsuite/gcc.dg/guality/pr69244.c
  d92b11494bb3457d1bb8ddfc99caec73  gcc/testsuite/gcc.dg/guality/pr69947.c
--- 47332,47338 ----
  6f9f612c16ed980a7a97f6d09a05b6e1  gcc/testsuite/gcc.dg/guality/pr68037-1.c
  db1720caaff79a0684d94be88f9e0d69  gcc/testsuite/gcc.dg/guality/pr68037-2.c
  28ee863461f68a968dc0f6c489f4f0d0  gcc/testsuite/gcc.dg/guality/pr68037-3.c
! 0bb4da1eb1c023ef6dc66a03ce0e8bff  gcc/testsuite/gcc.dg/guality/pr68860-1.c
  3918f941799e00b43e4a2f83f2cc6b8c  gcc/testsuite/gcc.dg/guality/pr68860-2.c
  6ba30facaf57fd44c7a0dd23f5adda03  gcc/testsuite/gcc.dg/guality/pr69244.c
  d92b11494bb3457d1bb8ddfc99caec73  gcc/testsuite/gcc.dg/guality/pr69947.c
*************** a7fd762dc34522882305feff890fdc31  gcc/te
*** 44710,44728 ****
  2ff17be517e2e99373d1d8c99a037988  gcc/testsuite/gcc.dg/guality/pr89528.c
  3982323a5890288ffe96205b000ddfdc  gcc/testsuite/gcc.dg/guality/pr89892.c
  7702e4658c4631a9750ff038b36d4957  gcc/testsuite/gcc.dg/guality/pr89905.c
! d5dae42aca637f48ee5182e0d986948a  gcc/testsuite/gcc.dg/guality/pr90074.c
  a6784dd514ea635dd749972057296862  gcc/testsuite/gcc.dg/guality/pr90131.c
! 1d5b03c8ef39191d87de82d1c0fbfd69  gcc/testsuite/gcc.dg/guality/pr90716.c
  c9c3c711c2fb8ac1a0051b259a2d0a19  gcc/testsuite/gcc.dg/guality/pr95343.c
  347dd976fda7a8d33374697df5c9ab7b  gcc/testsuite/gcc.dg/guality/pr98219-1.c
  1879e4eac130703154f9f4c54d4eb843  gcc/testsuite/gcc.dg/guality/pr98219-2.c
  9102efe5e2518fc06add3b4152dbbf46  gcc/testsuite/gcc.dg/guality/prevent-optimization.h
  c0d9571f415055f61c0ecd1bd0b82a7f  gcc/testsuite/gcc.dg/guality/restrict.c
  ed974f3f5302f2126afc51c7c8a44af0  gcc/testsuite/gcc.dg/guality/rotatetest.c
! a6afc276cffbeb09e81212a0d98c15e7  gcc/testsuite/gcc.dg/guality/sra-1.c
! d355cdc2d7159885b7e76d2bfa1524ae  gcc/testsuite/gcc.dg/guality/vla-1.c
  dbf324da02b522e018f28aa8802538b7  gcc/testsuite/gcc.dg/guality/vla-2.c
! 159f05fd30f2600345ae500afd392114  gcc/testsuite/gcc.dg/guality/zero-length-array.c
  199ec9e8a94489c293b27661d9d7d4e2  gcc/testsuite/gcc.dg/h8300-bit-insn-ice.c
  e63e77bf8350ae7d8e2e978d7a395b95  gcc/testsuite/gcc.dg/h8300-bit-insn-ice2.c
  306ad5770d3a79444ba33c00e4c255bd  gcc/testsuite/gcc.dg/h8300-bss-align-1.c
--- 47341,47359 ----
  2ff17be517e2e99373d1d8c99a037988  gcc/testsuite/gcc.dg/guality/pr89528.c
  3982323a5890288ffe96205b000ddfdc  gcc/testsuite/gcc.dg/guality/pr89892.c
  7702e4658c4631a9750ff038b36d4957  gcc/testsuite/gcc.dg/guality/pr89905.c
! 1ab517a08a8a5eb9faa7119d86053555  gcc/testsuite/gcc.dg/guality/pr90074.c
  a6784dd514ea635dd749972057296862  gcc/testsuite/gcc.dg/guality/pr90131.c
! 0b685ef87ae28820211d55fb7f51b104  gcc/testsuite/gcc.dg/guality/pr90716.c
  c9c3c711c2fb8ac1a0051b259a2d0a19  gcc/testsuite/gcc.dg/guality/pr95343.c
  347dd976fda7a8d33374697df5c9ab7b  gcc/testsuite/gcc.dg/guality/pr98219-1.c
  1879e4eac130703154f9f4c54d4eb843  gcc/testsuite/gcc.dg/guality/pr98219-2.c
  9102efe5e2518fc06add3b4152dbbf46  gcc/testsuite/gcc.dg/guality/prevent-optimization.h
  c0d9571f415055f61c0ecd1bd0b82a7f  gcc/testsuite/gcc.dg/guality/restrict.c
  ed974f3f5302f2126afc51c7c8a44af0  gcc/testsuite/gcc.dg/guality/rotatetest.c
! 7af3a163d72ad436c2cbad603fcfa428  gcc/testsuite/gcc.dg/guality/sra-1.c
! 30b500f139c598563e24de722ecf9405  gcc/testsuite/gcc.dg/guality/vla-1.c
  dbf324da02b522e018f28aa8802538b7  gcc/testsuite/gcc.dg/guality/vla-2.c
! c8041b5e608a6b7962fc198931cfdeaf  gcc/testsuite/gcc.dg/guality/zero-length-array.c
  199ec9e8a94489c293b27661d9d7d4e2  gcc/testsuite/gcc.dg/h8300-bit-insn-ice.c
  e63e77bf8350ae7d8e2e978d7a395b95  gcc/testsuite/gcc.dg/h8300-bit-insn-ice2.c
  306ad5770d3a79444ba33c00e4c255bd  gcc/testsuite/gcc.dg/h8300-bss-align-1.c
*************** beabf14243b2b65800f0733144ef725e  gcc/te
*** 44740,44746 ****
  dc12526b2575b25bbb0263164484aeb3  gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
  0df11bb9dd20d8cf406324e2baa18d83  gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
  dd0c3d86be7753351dad89d50055a01e  gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
! 38f53c84aa27c3cca5b629a67918e8a6  gcc/testsuite/gcc.dg/hwasan/hwasan.exp
  f20946bfbddc67e74cf619bd02e31549  gcc/testsuite/gcc.dg/hwasan/nested-functions-0.c
  36c11146134a4d86c84c359d41e52a7c  gcc/testsuite/gcc.dg/hwasan/nested-functions-1.c
  a5a7f8d29428537e3a2276c6511f420c  gcc/testsuite/gcc.dg/hwasan/nested-functions-2.c
--- 47371,47377 ----
  dc12526b2575b25bbb0263164484aeb3  gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
  0df11bb9dd20d8cf406324e2baa18d83  gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
  dd0c3d86be7753351dad89d50055a01e  gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
! 87ba2fabf5289d6525439ba48a5c27f8  gcc/testsuite/gcc.dg/hwasan/hwasan.exp
  f20946bfbddc67e74cf619bd02e31549  gcc/testsuite/gcc.dg/hwasan/nested-functions-0.c
  36c11146134a4d86c84c359d41e52a7c  gcc/testsuite/gcc.dg/hwasan/nested-functions-1.c
  a5a7f8d29428537e3a2276c6511f420c  gcc/testsuite/gcc.dg/hwasan/nested-functions-2.c
*************** f46dce055fca6bcb88a60d11a0bb710b  gcc/te
*** 44762,44771 ****
  3fcd24000493dccbffcab8d7f571db16  gcc/testsuite/gcc.dg/ifcvt-1.c
  788cdc139607df186471194c57393d9b  gcc/testsuite/gcc.dg/ifcvt-2.c
  1406d8ef80fc3e9a51abb05637775214  gcc/testsuite/gcc.dg/ifcvt-3.c
! c3e8db9e992231697b36c3bd0282686c  gcc/testsuite/gcc.dg/ifcvt-4.c
  851af7bdf70bdcebc1bbfe12c989a445  gcc/testsuite/gcc.dg/ifcvt-5.c
  18c54e879b05c8aed2d3ad8ec198fe6d  gcc/testsuite/gcc.dg/ifcvt-fabs-1.c
! 9a6101d4463140bd764616fe8d813f87  gcc/testsuite/gcc.dg/ifelse-1.c
  c686dca1473baeadaf2f166d4c96e4ef  gcc/testsuite/gcc.dg/ifelse-2.c
  4c52954a863476159d61c08628f492b5  gcc/testsuite/gcc.dg/iftrap-1.c
  38fd7e66d9e9047306640ae6d027b37c  gcc/testsuite/gcc.dg/iftrap-2.c
--- 47393,47402 ----
  3fcd24000493dccbffcab8d7f571db16  gcc/testsuite/gcc.dg/ifcvt-1.c
  788cdc139607df186471194c57393d9b  gcc/testsuite/gcc.dg/ifcvt-2.c
  1406d8ef80fc3e9a51abb05637775214  gcc/testsuite/gcc.dg/ifcvt-3.c
! 477601966a7000b0005de128c522827e  gcc/testsuite/gcc.dg/ifcvt-4.c
  851af7bdf70bdcebc1bbfe12c989a445  gcc/testsuite/gcc.dg/ifcvt-5.c
  18c54e879b05c8aed2d3ad8ec198fe6d  gcc/testsuite/gcc.dg/ifcvt-fabs-1.c
! 9311fcd9326988cb15b467fa70d1a0de  gcc/testsuite/gcc.dg/ifelse-1.c
  c686dca1473baeadaf2f166d4c96e4ef  gcc/testsuite/gcc.dg/ifelse-2.c
  4c52954a863476159d61c08628f492b5  gcc/testsuite/gcc.dg/iftrap-1.c
  38fd7e66d9e9047306640ae6d027b37c  gcc/testsuite/gcc.dg/iftrap-2.c
*************** efed4766878640e3953cf4a8272fe4bf  gcc/te
*** 44793,44806 ****
  22b16e07a96d1fc14440515466c26af1  gcc/testsuite/gcc.dg/init-excess-1.c
  e469f076692f924b2e1d46714a1056b3  gcc/testsuite/gcc.dg/init-excess-2.c
  a6d99bdae85925822cd267ceacff5d0e  gcc/testsuite/gcc.dg/init-excess-3.c
  4fd4e28b1e297058e77acc0f0a8225fb  gcc/testsuite/gcc.dg/init-rounding-math-1.c
  4e1a8c3a4cee0ecd12863946cb8e2c1b  gcc/testsuite/gcc.dg/init-string-1.c
  8207f30a525d46a59c52261291258117  gcc/testsuite/gcc.dg/init-string-2.c
  43af544ffb40a8fa3ed64d9059b409dc  gcc/testsuite/gcc.dg/init-string-3.c
  09d7ab46368a3c67e84d62f415b75a88  gcc/testsuite/gcc.dg/init-undef-1.c
- 36f2eef92b80886cf9c9705d9ceeac1d  gcc/testsuite/gcc.dg/initpri1.c
- 495d2d9e552898de91e04d1536c2d0bc  gcc/testsuite/gcc.dg/initpri2.c
- 4c9b09b1779b158c5c5de43a32954389  gcc/testsuite/gcc.dg/initpri3.c
  5e13119352a2ed9fd0c49199ec37bdbe  gcc/testsuite/gcc.dg/inline-1.c
  eb70d9c28b7834b4d79516ac45f5daa4  gcc/testsuite/gcc.dg/inline-10.c
  17b044ae9c9eb0ad8fac9f4f7b6f0f2d  gcc/testsuite/gcc.dg/inline-11.c
--- 47424,47435 ----
  22b16e07a96d1fc14440515466c26af1  gcc/testsuite/gcc.dg/init-excess-1.c
  e469f076692f924b2e1d46714a1056b3  gcc/testsuite/gcc.dg/init-excess-2.c
  a6d99bdae85925822cd267ceacff5d0e  gcc/testsuite/gcc.dg/init-excess-3.c
+ df1635ba31ca03edb4c3f3564fe764f1  gcc/testsuite/gcc.dg/init-pad-1.c
  4fd4e28b1e297058e77acc0f0a8225fb  gcc/testsuite/gcc.dg/init-rounding-math-1.c
  4e1a8c3a4cee0ecd12863946cb8e2c1b  gcc/testsuite/gcc.dg/init-string-1.c
  8207f30a525d46a59c52261291258117  gcc/testsuite/gcc.dg/init-string-2.c
  43af544ffb40a8fa3ed64d9059b409dc  gcc/testsuite/gcc.dg/init-string-3.c
  09d7ab46368a3c67e84d62f415b75a88  gcc/testsuite/gcc.dg/init-undef-1.c
  5e13119352a2ed9fd0c49199ec37bdbe  gcc/testsuite/gcc.dg/inline-1.c
  eb70d9c28b7834b4d79516ac45f5daa4  gcc/testsuite/gcc.dg/inline-10.c
  17b044ae9c9eb0ad8fac9f4f7b6f0f2d  gcc/testsuite/gcc.dg/inline-11.c
*************** aa0be8944912bc8fd810cbfbecf40411  gcc/te
*** 44828,44834 ****
  50978a21d53288cabd0934746dc65b71  gcc/testsuite/gcc.dg/inline-31.c
  36ad811a61fb66edc6068222a40bcffb  gcc/testsuite/gcc.dg/inline-32.c
  c305a0d08b9f14e76b7fdf25ad43a83b  gcc/testsuite/gcc.dg/inline-32a.c
! caf3335cf1220be752e9abb38d393375  gcc/testsuite/gcc.dg/inline-33.c
  b5b62af5dac0c7a95761082636264392  gcc/testsuite/gcc.dg/inline-34.c
  a0c91d7089ebd0d19052f4f3aa330ae6  gcc/testsuite/gcc.dg/inline-35.c
  e9cb995bb14a5d52b9213cdc06457285  gcc/testsuite/gcc.dg/inline-36.c
--- 47457,47463 ----
  50978a21d53288cabd0934746dc65b71  gcc/testsuite/gcc.dg/inline-31.c
  36ad811a61fb66edc6068222a40bcffb  gcc/testsuite/gcc.dg/inline-32.c
  c305a0d08b9f14e76b7fdf25ad43a83b  gcc/testsuite/gcc.dg/inline-32a.c
! 5b377be7d3a34a473f2b68e2e0d0d016  gcc/testsuite/gcc.dg/inline-33.c
  b5b62af5dac0c7a95761082636264392  gcc/testsuite/gcc.dg/inline-34.c
  a0c91d7089ebd0d19052f4f3aa330ae6  gcc/testsuite/gcc.dg/inline-35.c
  e9cb995bb14a5d52b9213cdc06457285  gcc/testsuite/gcc.dg/inline-36.c
*************** ee8131c6a8c9753b56fee8c390b0317c  gcc/te
*** 44865,44870 ****
--- 47494,47500 ----
  60361af977014e7bcbcbd7f689d078ba  gcc/testsuite/gcc.dg/ipa/PR64559.c
  484329c6f176bf519f41e9257ff4adda  gcc/testsuite/gcc.dg/ipa/PR65282.c
  d4c1a7113a33d3c2137dc2348b102dc0  gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c
+ 0c21243b5f905c28312323f53e90cbbd  gcc/testsuite/gcc.dg/ipa/fnsummary-1.c
  5bb1e383d7837b494b7630980b0ef6f3  gcc/testsuite/gcc.dg/ipa/fopt-info-inline-1.c
  6438286ac73aa139024f31997ab14db7  gcc/testsuite/gcc.dg/ipa/iinline-1.c
  8c71eef392227cf4fbf71b2219f5af59  gcc/testsuite/gcc.dg/ipa/iinline-2.c
*************** b396e5f65410b5143443d020f227239a  gcc/te
*** 44880,44886 ****
  484a33ceda75623f14c31dc5c0cb5e1d  gcc/testsuite/gcc.dg/ipa/inline-2.c
  dbb9508e584dea250f29a4f07a0c7ada  gcc/testsuite/gcc.dg/ipa/inline-3.c
  45b36514eaece229a05f0707b2e7d604  gcc/testsuite/gcc.dg/ipa/inline-4.c
! a37a881b6f0df25ea373a40c574b75c4  gcc/testsuite/gcc.dg/ipa/inline-5.c
  77b0b740de49bbf357d4e1d97ac0d440  gcc/testsuite/gcc.dg/ipa/inline-6.c
  49ad75a8f9454fd0d593fc64789c5490  gcc/testsuite/gcc.dg/ipa/inline-7.c
  be1aaa4f1e7c9f717b85701f5fd66480  gcc/testsuite/gcc.dg/ipa/inline-8.c
--- 47510,47516 ----
  484a33ceda75623f14c31dc5c0cb5e1d  gcc/testsuite/gcc.dg/ipa/inline-2.c
  dbb9508e584dea250f29a4f07a0c7ada  gcc/testsuite/gcc.dg/ipa/inline-3.c
  45b36514eaece229a05f0707b2e7d604  gcc/testsuite/gcc.dg/ipa/inline-4.c
! 615aa41fc7b909612203e8d943378d11  gcc/testsuite/gcc.dg/ipa/inline-5.c
  77b0b740de49bbf357d4e1d97ac0d440  gcc/testsuite/gcc.dg/ipa/inline-6.c
  49ad75a8f9454fd0d593fc64789c5490  gcc/testsuite/gcc.dg/ipa/inline-7.c
  be1aaa4f1e7c9f717b85701f5fd66480  gcc/testsuite/gcc.dg/ipa/inline-8.c
*************** d06f7c5820eb923c44d73fa73e63ee5d  gcc/te
*** 44937,44952 ****
  3f06e49cd636df9de21331230b0e59e0  gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
  4630bb4962c62c86ea5589ff20308a9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
  ef947bf14a3a516703fe551dea457061  gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
! 72f6b106778454ffd2aa9d3de15a2087  gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
  8d25872a618a0cf64f0d344afe44543a  gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c
  554bb9677c9084721bcca9a42daa5b9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
  639814886ab7278c2142d218eef816de  gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c
  6a0651117da4facc1d26c79e0bb14a53  gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c
  1723d2445f8a668e5a662215a7171b60  gcc/testsuite/gcc.dg/ipa/ipa-icf-6.c
  61498e8405822f0e1ded06220b174055  gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c
  26f9a74078f9dcd081caf34bf5b80496  gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c
  a1f45503a5693ba924f940435c258afa  gcc/testsuite/gcc.dg/ipa/ipa-icf-9.c
  45e2bfca2846e16528c40ee2de4dfee5  gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c
  559d9433c80c0e2f4f41bdd735b6ebf5  gcc/testsuite/gcc.dg/ipa/ipa-pta-1.c
  4ee4c18cef88c83e34a84a098e18414d  gcc/testsuite/gcc.dg/ipa/ipa-pta-10.c
  58e165413e63d8a1df6270894ba59d49  gcc/testsuite/gcc.dg/ipa/ipa-pta-11.c
--- 47567,47584 ----
  3f06e49cd636df9de21331230b0e59e0  gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
  4630bb4962c62c86ea5589ff20308a9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
  ef947bf14a3a516703fe551dea457061  gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
! 8186996830f84a632673285d8e71b6c1  gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
  8d25872a618a0cf64f0d344afe44543a  gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c
  554bb9677c9084721bcca9a42daa5b9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
  639814886ab7278c2142d218eef816de  gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c
+ d7a90becfa9dba11f0cb3b340333c2f5  gcc/testsuite/gcc.dg/ipa/ipa-icf-40.c
  6a0651117da4facc1d26c79e0bb14a53  gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c
  1723d2445f8a668e5a662215a7171b60  gcc/testsuite/gcc.dg/ipa/ipa-icf-6.c
  61498e8405822f0e1ded06220b174055  gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c
  26f9a74078f9dcd081caf34bf5b80496  gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c
  a1f45503a5693ba924f940435c258afa  gcc/testsuite/gcc.dg/ipa/ipa-icf-9.c
  45e2bfca2846e16528c40ee2de4dfee5  gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c
+ 42baa4bc51efd8c31d9379eb7a2c1999  gcc/testsuite/gcc.dg/ipa/ipa-notypes-1.c
  559d9433c80c0e2f4f41bdd735b6ebf5  gcc/testsuite/gcc.dg/ipa/ipa-pta-1.c
  4ee4c18cef88c83e34a84a098e18414d  gcc/testsuite/gcc.dg/ipa/ipa-pta-10.c
  58e165413e63d8a1df6270894ba59d49  gcc/testsuite/gcc.dg/ipa/ipa-pta-11.c
*************** c7d1bd33095eeb19344100843b166016  gcc/te
*** 44971,44984 ****
  9408719454e13143f40c88f342a71f5b  gcc/testsuite/gcc.dg/ipa/ipa-sra-11.c
  a890fd9a6913b8021b0045ab0551aa06  gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c
  f2b1771d90ee671eb68279eeb82ded00  gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c
! a22a9ea301ec4cf7cf708e809af372d2  gcc/testsuite/gcc.dg/ipa/ipa-sra-14.c
  01ae59726601d410288443c584a90440  gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c
  c5de06a06285e5ac5e43a6c65ab4cbc2  gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c
  753b42e64917c559e001079473a5e3da  gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c
  5bfa52612aa66aa0815fb6d0e2c56f76  gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c
! edc48cb808c71524ba9130fa7b884036  gcc/testsuite/gcc.dg/ipa/ipa-sra-19.c
  aecb4d443c0e36e7aeae05f1c05bb7e7  gcc/testsuite/gcc.dg/ipa/ipa-sra-20.c
! 9d91845c13739c984e3a0bf0f033475e  gcc/testsuite/gcc.dg/ipa/ipa-sra-21.c
  c4dcb24e809d2cb67d92a9c144ae1d96  gcc/testsuite/gcc.dg/ipa/ipa-sra-22.c
  b1d7fcbd12e91e9264c24f15d1e11b27  gcc/testsuite/gcc.dg/ipa/ipa-sra-23.c
  793244d49a25620244973c2b526e0833  gcc/testsuite/gcc.dg/ipa/ipa-sra-24.c
--- 47603,47616 ----
  9408719454e13143f40c88f342a71f5b  gcc/testsuite/gcc.dg/ipa/ipa-sra-11.c
  a890fd9a6913b8021b0045ab0551aa06  gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c
  f2b1771d90ee671eb68279eeb82ded00  gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c
! 0ec92745436e1295d0f6a7fc5c0f7b06  gcc/testsuite/gcc.dg/ipa/ipa-sra-14.c
  01ae59726601d410288443c584a90440  gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c
  c5de06a06285e5ac5e43a6c65ab4cbc2  gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c
  753b42e64917c559e001079473a5e3da  gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c
  5bfa52612aa66aa0815fb6d0e2c56f76  gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c
! 5f4fae6199d87a6d5fa7852fc81efe5d  gcc/testsuite/gcc.dg/ipa/ipa-sra-19.c
  aecb4d443c0e36e7aeae05f1c05bb7e7  gcc/testsuite/gcc.dg/ipa/ipa-sra-20.c
! 5f95f26ae86d892f3780f51730065f92  gcc/testsuite/gcc.dg/ipa/ipa-sra-21.c
  c4dcb24e809d2cb67d92a9c144ae1d96  gcc/testsuite/gcc.dg/ipa/ipa-sra-22.c
  b1d7fcbd12e91e9264c24f15d1e11b27  gcc/testsuite/gcc.dg/ipa/ipa-sra-23.c
  793244d49a25620244973c2b526e0833  gcc/testsuite/gcc.dg/ipa/ipa-sra-24.c
*************** ec1f5ae82072d277b96b8260ff2f93b1  gcc/te
*** 44994,45003 ****
  45746482ac2c77edd72512846593afc1  gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c
  6ef7d3bb5d644ec45ca8db604c29cbb0  gcc/testsuite/gcc.dg/ipa/ipa-sra-5.c
  f389ed7606a4bab674d66dc4dcbd5533  gcc/testsuite/gcc.dg/ipa/ipa-sra-7.c
! a150c8ee6054d4be6013ea5d81d3f7d8  gcc/testsuite/gcc.dg/ipa/ipa-sra-8.c
! bb00c0c2b31f210548ae62b1328be368  gcc/testsuite/gcc.dg/ipa/ipa-sra-9.c
  fb762aeae2f1c2476ca0c285f1bf9a37  gcc/testsuite/gcc.dg/ipa/ipa-sra-ret-nonull.c
! b71a2ba31e7c816b362a0944b26090b2  gcc/testsuite/gcc.dg/ipa/ipa.exp
  be5489532ad8117e567e1ea5c8ad4b6a  gcc/testsuite/gcc.dg/ipa/ipacost-1.c
  a1e98f91fdb742af3e542b201d095fcd  gcc/testsuite/gcc.dg/ipa/ipacost-2.c
  cec9083b7567e1f82d50440e7631e86f  gcc/testsuite/gcc.dg/ipa/ipcp-1.c
--- 47626,47635 ----
  45746482ac2c77edd72512846593afc1  gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c
  6ef7d3bb5d644ec45ca8db604c29cbb0  gcc/testsuite/gcc.dg/ipa/ipa-sra-5.c
  f389ed7606a4bab674d66dc4dcbd5533  gcc/testsuite/gcc.dg/ipa/ipa-sra-7.c
! 8431f089769e758d6029f6f9d79a54e1  gcc/testsuite/gcc.dg/ipa/ipa-sra-8.c
! 5c4efa97e99d4d687812b2a6cde3bdb1  gcc/testsuite/gcc.dg/ipa/ipa-sra-9.c
  fb762aeae2f1c2476ca0c285f1bf9a37  gcc/testsuite/gcc.dg/ipa/ipa-sra-ret-nonull.c
! 96f3d17f1c3d729edc0e560276906f48  gcc/testsuite/gcc.dg/ipa/ipa.exp
  be5489532ad8117e567e1ea5c8ad4b6a  gcc/testsuite/gcc.dg/ipa/ipacost-1.c
  a1e98f91fdb742af3e542b201d095fcd  gcc/testsuite/gcc.dg/ipa/ipacost-2.c
  cec9083b7567e1f82d50440e7631e86f  gcc/testsuite/gcc.dg/ipa/ipcp-1.c
*************** cec9083b7567e1f82d50440e7631e86f  gcc/te
*** 45005,45011 ****
  2b28e86ef61a2946185db1daab03a644  gcc/testsuite/gcc.dg/ipa/ipcp-3.c
  5204e6cd28c18692d9b78b4d46f02179  gcc/testsuite/gcc.dg/ipa/ipcp-4.c
  1d6188a3ce8385221389a004eb653357  gcc/testsuite/gcc.dg/ipa/ipcp-5.c
! 869bd19c205f2ccf580f8b640709d232  gcc/testsuite/gcc.dg/ipa/ipcp-agg-1.c
  e43488a98150e7c008bf0103c8e4ce76  gcc/testsuite/gcc.dg/ipa/ipcp-agg-10.c
  69e429cd0f09966a98176cdd47d10f33  gcc/testsuite/gcc.dg/ipa/ipcp-agg-11.c
  f130caee5e1d8d48e06a1ae3dd7dc477  gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
--- 47637,47643 ----
  2b28e86ef61a2946185db1daab03a644  gcc/testsuite/gcc.dg/ipa/ipcp-3.c
  5204e6cd28c18692d9b78b4d46f02179  gcc/testsuite/gcc.dg/ipa/ipcp-4.c
  1d6188a3ce8385221389a004eb653357  gcc/testsuite/gcc.dg/ipa/ipcp-5.c
! c09e2c5764ea30fd5f66334b617e915a  gcc/testsuite/gcc.dg/ipa/ipcp-agg-1.c
  e43488a98150e7c008bf0103c8e4ce76  gcc/testsuite/gcc.dg/ipa/ipcp-agg-10.c
  69e429cd0f09966a98176cdd47d10f33  gcc/testsuite/gcc.dg/ipa/ipcp-agg-11.c
  f130caee5e1d8d48e06a1ae3dd7dc477  gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
*************** bbdc28908094ef1ce181532afaf1b2dc  gcc/te
*** 45031,45041 ****
  a6cddd3e3979aa3c54f4319f60df295b  gcc/testsuite/gcc.dg/ipa/modref-1.c
  d183c6f1cbbc46bd9c8e5df2bbcd8795  gcc/testsuite/gcc.dg/ipa/modref-2.c
  e3225f0884da3b36b6309c89ccd143b7  gcc/testsuite/gcc.dg/ipa/modref-3.c
  80f4453150e9ddcd8976703b7c6ee1f6  gcc/testsuite/gcc.dg/ipa/noclone-1.c
  2f6a0c132f87682f7a7a3d21a8e51243  gcc/testsuite/gcc.dg/ipa/pr100600.c
  5c69058d29f4a7ea7e25487222d82209  gcc/testsuite/gcc.dg/ipa/pr101066.c
  c998e742629d928b1525c8a15a0d2073  gcc/testsuite/gcc.dg/ipa/pr102513.c
! 303b00685d04afefddddce7106c02b2d  gcc/testsuite/gcc.dg/ipa/pr102714.c
  07a283c50d826e50a31e66247a684841  gcc/testsuite/gcc.dg/ipa/pr103083-1.c
  e738f44ee66719b5f944fb952895f40e  gcc/testsuite/gcc.dg/ipa/pr103083-2.c
  8ceaf6a6cf2a2ddfb58b64925fd8b061  gcc/testsuite/gcc.dg/ipa/pr103107.c
--- 47663,47674 ----
  a6cddd3e3979aa3c54f4319f60df295b  gcc/testsuite/gcc.dg/ipa/modref-1.c
  d183c6f1cbbc46bd9c8e5df2bbcd8795  gcc/testsuite/gcc.dg/ipa/modref-2.c
  e3225f0884da3b36b6309c89ccd143b7  gcc/testsuite/gcc.dg/ipa/modref-3.c
+ a06e20bfec7f7f19143678eb08edf720  gcc/testsuite/gcc.dg/ipa/modref-4.c
  80f4453150e9ddcd8976703b7c6ee1f6  gcc/testsuite/gcc.dg/ipa/noclone-1.c
  2f6a0c132f87682f7a7a3d21a8e51243  gcc/testsuite/gcc.dg/ipa/pr100600.c
  5c69058d29f4a7ea7e25487222d82209  gcc/testsuite/gcc.dg/ipa/pr101066.c
  c998e742629d928b1525c8a15a0d2073  gcc/testsuite/gcc.dg/ipa/pr102513.c
! cae99fb72df537a73a2afcc2e8f968c0  gcc/testsuite/gcc.dg/ipa/pr102714.c
  07a283c50d826e50a31e66247a684841  gcc/testsuite/gcc.dg/ipa/pr103083-1.c
  e738f44ee66719b5f944fb952895f40e  gcc/testsuite/gcc.dg/ipa/pr103083-2.c
  8ceaf6a6cf2a2ddfb58b64925fd8b061  gcc/testsuite/gcc.dg/ipa/pr103107.c
*************** e738f44ee66719b5f944fb952895f40e  gcc/te
*** 45044,45068 ****
  e9a270cc0fe29965bd5d3f98375ad921  gcc/testsuite/gcc.dg/ipa/pr103227-2.c
  6f529fc4669a417a43a300ac14ccd317  gcc/testsuite/gcc.dg/ipa/pr103227-3.c
  3d61a501d84f658a0c31179e41f0686a  gcc/testsuite/gcc.dg/ipa/pr103601.c
! 0b336f1d0f57e04aaa45b68e72e0bfec  gcc/testsuite/gcc.dg/ipa/pr104813.c
  99587579302ee66a706ecb63eca8d73f  gcc/testsuite/gcc.dg/ipa/pr105160.c
  c05e296cafa5084ddb1b1685f4733c1c  gcc/testsuite/gcc.dg/ipa/pr105639.c
  d6d366e61e9493a8fc9ad14a2e6f9ba4  gcc/testsuite/gcc.dg/ipa/pr105739.c
  e53f73d24fa35ba6817e4a5b5d5e4d33  gcc/testsuite/gcc.dg/ipa/pr107640-2.c
! 95030383fded4b7071d378fb24eccc10  gcc/testsuite/gcc.dg/ipa/pr108007.c
  265ca89bf18d64d019ff7d75ea03f0b7  gcc/testsuite/gcc.dg/ipa/pr108384.c
! a613ec3a747f862a332859659437e61a  gcc/testsuite/gcc.dg/ipa/pr108679.c
  ec56d4020da1007033149a15637c5de4  gcc/testsuite/gcc.dg/ipa/pr108959.c
! cf4edb1ce9b073657fc6da0e1310515b  gcc/testsuite/gcc.dg/ipa/pr109318.c
  6cf1ca5750b51bebb32beb346554ff99  gcc/testsuite/gcc.dg/ipa/pr109849.c
  b70865b06d221ed2025f4fc757d9e20a  gcc/testsuite/gcc.dg/ipa/pr110276.c
! e94db23260f47b2de7ac46111f42bfbd  gcc/testsuite/gcc.dg/ipa/pr110377.c
  f94dfaffe55e1e883967e9ea683df097  gcc/testsuite/gcc.dg/ipa/pr110378-4.c
  f741ddb64786110b58c8991c33d44c79  gcc/testsuite/gcc.dg/ipa/pr111571.c
  6cadebd8b42bda8557c5814d0103a2fa  gcc/testsuite/gcc.dg/ipa/pr112616.c
  32227973eac51db77fc53f4f18573df2  gcc/testsuite/gcc.dg/ipa/pr113490.c
  b7a69609ea582386c302afd514d8e233  gcc/testsuite/gcc.dg/ipa/pr114247.c
! 40bd41302666d56c4edf7330db97920e  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
  cdec1b240b89ad7bf971aa799a1ea4a0  gcc/testsuite/gcc.dg/ipa/pr50744.c
--- 47677,47707 ----
  e9a270cc0fe29965bd5d3f98375ad921  gcc/testsuite/gcc.dg/ipa/pr103227-2.c
  6f529fc4669a417a43a300ac14ccd317  gcc/testsuite/gcc.dg/ipa/pr103227-3.c
  3d61a501d84f658a0c31179e41f0686a  gcc/testsuite/gcc.dg/ipa/pr103601.c
! 12ebb4109c6975eedc98fb794bb8d814  gcc/testsuite/gcc.dg/ipa/pr104813.c
  99587579302ee66a706ecb63eca8d73f  gcc/testsuite/gcc.dg/ipa/pr105160.c
  c05e296cafa5084ddb1b1685f4733c1c  gcc/testsuite/gcc.dg/ipa/pr105639.c
  d6d366e61e9493a8fc9ad14a2e6f9ba4  gcc/testsuite/gcc.dg/ipa/pr105739.c
  e53f73d24fa35ba6817e4a5b5d5e4d33  gcc/testsuite/gcc.dg/ipa/pr107640-2.c
! b6421a98570d44450a4d1069ec41d542  gcc/testsuite/gcc.dg/ipa/pr108007.c
  265ca89bf18d64d019ff7d75ea03f0b7  gcc/testsuite/gcc.dg/ipa/pr108384.c
! 9ffec2798fafb5108becf1451553a680  gcc/testsuite/gcc.dg/ipa/pr108679.c
  ec56d4020da1007033149a15637c5de4  gcc/testsuite/gcc.dg/ipa/pr108959.c
! dabad3ac5fd1900bfd20c8055d824887  gcc/testsuite/gcc.dg/ipa/pr109318.c
  6cf1ca5750b51bebb32beb346554ff99  gcc/testsuite/gcc.dg/ipa/pr109849.c
  b70865b06d221ed2025f4fc757d9e20a  gcc/testsuite/gcc.dg/ipa/pr110276.c
! 6683e31d82a58c95681f0e7bce3896b5  gcc/testsuite/gcc.dg/ipa/pr110377.c
  f94dfaffe55e1e883967e9ea683df097  gcc/testsuite/gcc.dg/ipa/pr110378-4.c
  f741ddb64786110b58c8991c33d44c79  gcc/testsuite/gcc.dg/ipa/pr111571.c
  6cadebd8b42bda8557c5814d0103a2fa  gcc/testsuite/gcc.dg/ipa/pr112616.c
  32227973eac51db77fc53f4f18573df2  gcc/testsuite/gcc.dg/ipa/pr113490.c
  b7a69609ea582386c302afd514d8e233  gcc/testsuite/gcc.dg/ipa/pr114247.c
! 29ace6c606b191c80e6eda01848c3e07  gcc/testsuite/gcc.dg/ipa/pr118097.c
! 03eb6d8014b7164bbbc15cf1299be9d4  gcc/testsuite/gcc.dg/ipa/pr118138.c
! c8d0678c2016d21f4da748a79301946a  gcc/testsuite/gcc.dg/ipa/pr118535.c
! d2d98a344c776f2cee643c99d05eb20c  gcc/testsuite/gcc.dg/ipa/pr119318.c
! d8f0256cde05093b9738e8287c58d5c3  gcc/testsuite/gcc.dg/ipa/pr119530.c
! 8724c127eb269868ca6c918a72fc36b1  gcc/testsuite/gcc.dg/ipa/pr119803.c
! c8295ff7fd7e271d17e7609620f5dfcb  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
  cdec1b240b89ad7bf971aa799a1ea4a0  gcc/testsuite/gcc.dg/ipa/pr50744.c
*************** c5a982844b74e3d73d7511fd2cb5ce36  gcc/te
*** 45104,45116 ****
  942a1d0bcd560b7a982f679a46d990a3  gcc/testsuite/gcc.dg/ipa/pr85449.c
  07ae52fb2deb3ea1bf4d45a1ee294b77  gcc/testsuite/gcc.dg/ipa/pr85734.c
  bfd19a33e270e728ac128981bbc58f6d  gcc/testsuite/gcc.dg/ipa/pr86279.c
! 4d2a385eed9a0157f2820e93f227f411  gcc/testsuite/gcc.dg/ipa/pr88214.c
  722161cd45054e7141436121f8d7998f  gcc/testsuite/gcc.dg/ipa/pr88985.c
  12c23181ba2da312583b830fc6392ad3  gcc/testsuite/gcc.dg/ipa/pr90555.c
  6765cdf08e7f3ce008f2e3a8558a156d  gcc/testsuite/gcc.dg/ipa/pr91088.c
  51d419af24e1c36f61ecab348e06a07a  gcc/testsuite/gcc.dg/ipa/pr91089.c
  43bcde3d47cbbc50a0b5af735557b1a5  gcc/testsuite/gcc.dg/ipa/pr91832.c
! 2b42c5b979097f2aa72e75bd29f4248d  gcc/testsuite/gcc.dg/ipa/pr91853.c
  2e3217eb0de9dcff0d296a707a817f68  gcc/testsuite/gcc.dg/ipa/pr92497-1.c
  163ea794c26fa6574dbdd74b9d2ea087  gcc/testsuite/gcc.dg/ipa/pr92497-2.c
  ba23b80ec5972171f5efaac4c636f710  gcc/testsuite/gcc.dg/ipa/pr92529.c
--- 47743,47755 ----
  942a1d0bcd560b7a982f679a46d990a3  gcc/testsuite/gcc.dg/ipa/pr85449.c
  07ae52fb2deb3ea1bf4d45a1ee294b77  gcc/testsuite/gcc.dg/ipa/pr85734.c
  bfd19a33e270e728ac128981bbc58f6d  gcc/testsuite/gcc.dg/ipa/pr86279.c
! 476bfaeb1e7e9c5e4f1170599ffa22e1  gcc/testsuite/gcc.dg/ipa/pr88214.c
  722161cd45054e7141436121f8d7998f  gcc/testsuite/gcc.dg/ipa/pr88985.c
  12c23181ba2da312583b830fc6392ad3  gcc/testsuite/gcc.dg/ipa/pr90555.c
  6765cdf08e7f3ce008f2e3a8558a156d  gcc/testsuite/gcc.dg/ipa/pr91088.c
  51d419af24e1c36f61ecab348e06a07a  gcc/testsuite/gcc.dg/ipa/pr91089.c
  43bcde3d47cbbc50a0b5af735557b1a5  gcc/testsuite/gcc.dg/ipa/pr91832.c
! 8c9d06778c52f5c78c9e183e834f0366  gcc/testsuite/gcc.dg/ipa/pr91853.c
  2e3217eb0de9dcff0d296a707a817f68  gcc/testsuite/gcc.dg/ipa/pr92497-1.c
  163ea794c26fa6574dbdd74b9d2ea087  gcc/testsuite/gcc.dg/ipa/pr92497-2.c
  ba23b80ec5972171f5efaac4c636f710  gcc/testsuite/gcc.dg/ipa/pr92529.c
*************** ba23b80ec5972171f5efaac4c636f710  gcc/te
*** 45119,45128 ****
  7a59cfd04921f4cc50c9c2ceb397f75a  gcc/testsuite/gcc.dg/ipa/pr93385.c
  772d702e6cd73999ec8ed7e6d0d777c7  gcc/testsuite/gcc.dg/ipa/pr93583.c
  dea785e90614c77a5c6b7c8662a00a12  gcc/testsuite/gcc.dg/ipa/pr93707.c
! 7fff2b8ee43871a32b405561db26ae3c  gcc/testsuite/gcc.dg/ipa/pr93763.c
  bed2937b7a1c69360ef16c6961d2ccaa  gcc/testsuite/gcc.dg/ipa/pr95113.c
! 0c6f56fe557068a46a84936d90e19109  gcc/testsuite/gcc.dg/ipa/pr96040.c
! b86de70fa3d61ae7370e2d5b1d411d2a  gcc/testsuite/gcc.dg/ipa/pr96482-2.c
  c8075733e6c24014e11973f0f290316e  gcc/testsuite/gcc.dg/ipa/pr96482.c
  bc385dc79b576cfbb45ee29a9cdd2375  gcc/testsuite/gcc.dg/ipa/pr98222.c
  8294157f7e95bf0310146944166a33f7  gcc/testsuite/gcc.dg/ipa/propalign-1.c
--- 47758,47767 ----
  7a59cfd04921f4cc50c9c2ceb397f75a  gcc/testsuite/gcc.dg/ipa/pr93385.c
  772d702e6cd73999ec8ed7e6d0d777c7  gcc/testsuite/gcc.dg/ipa/pr93583.c
  dea785e90614c77a5c6b7c8662a00a12  gcc/testsuite/gcc.dg/ipa/pr93707.c
! 27a68d20a7e8ef2fb4c9aac6c7c49429  gcc/testsuite/gcc.dg/ipa/pr93763.c
  bed2937b7a1c69360ef16c6961d2ccaa  gcc/testsuite/gcc.dg/ipa/pr95113.c
! 606527232d7d4da2bd1cac51fada3247  gcc/testsuite/gcc.dg/ipa/pr96040.c
! fc9490f2ea18ba97d69d3a7ecf1d45a4  gcc/testsuite/gcc.dg/ipa/pr96482-2.c
  c8075733e6c24014e11973f0f290316e  gcc/testsuite/gcc.dg/ipa/pr96482.c
  bc385dc79b576cfbb45ee29a9cdd2375  gcc/testsuite/gcc.dg/ipa/pr98222.c
  8294157f7e95bf0310146944166a33f7  gcc/testsuite/gcc.dg/ipa/propalign-1.c
*************** d2481bf1011492fe019b45234ffe2de9  gcc/te
*** 45159,45167 ****
  2e367db510360866da20fb5913d43f1a  gcc/testsuite/gcc.dg/ipa/vrp6.c
  bfa8b67e49da38079f1612d0a76d6ef3  gcc/testsuite/gcc.dg/ipa/vrp7.c
  fdccff659aeb65d90b24a5ba6ea2679f  gcc/testsuite/gcc.dg/ipa/vrp8.c
  e65101ee4834860ab2862af619795bf1  gcc/testsuite/gcc.dg/ira-loop-pressure.c
! f2bdfc94f6f8c1dd5a85cf68be8cf616  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
! 19123d30c3be274cc288b04d8c885b48  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-2.c
  69b33deb6f06bb118a45d7839cc58fbd  gcc/testsuite/gcc.dg/ivdep.c
  8f5983946d28dca5853e89d0aa48b65d  gcc/testsuite/gcc.dg/kpice1.c
  5990816dae34ad9c53d1d550486c56ae  gcc/testsuite/gcc.dg/label-compound-stmt-1.c
--- 47798,47807 ----
  2e367db510360866da20fb5913d43f1a  gcc/testsuite/gcc.dg/ipa/vrp6.c
  bfa8b67e49da38079f1612d0a76d6ef3  gcc/testsuite/gcc.dg/ipa/vrp7.c
  fdccff659aeb65d90b24a5ba6ea2679f  gcc/testsuite/gcc.dg/ipa/vrp8.c
+ 2d61f54a0c354d16a654af1b91d5e1f2  gcc/testsuite/gcc.dg/ipa/vrp9.c
  e65101ee4834860ab2862af619795bf1  gcc/testsuite/gcc.dg/ira-loop-pressure.c
! aba57cb5196fffbd1de9aece23fb9fab  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
! bbbc673ab2c5f23c9383769a122957d2  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-2.c
  69b33deb6f06bb118a45d7839cc58fbd  gcc/testsuite/gcc.dg/ivdep.c
  8f5983946d28dca5853e89d0aa48b65d  gcc/testsuite/gcc.dg/kpice1.c
  5990816dae34ad9c53d1d550486c56ae  gcc/testsuite/gcc.dg/label-compound-stmt-1.c
*************** b9d0331e6e845cb0d7f26561f4753f77  gcc/te
*** 45178,45187 ****
  a1511014730573ca08fa055a4f00aa75  gcc/testsuite/gcc.dg/lazy-ptr-test.c
  d0bcca2e1a0a2193680083619c7cffab  gcc/testsuite/gcc.dg/limits-width-1.c
  b22be2559a8886fa235c4257ce1f2437  gcc/testsuite/gcc.dg/limits-width-2.c
! 7cbf042d875b063388beeee95141e92b  gcc/testsuite/gcc.dg/live-patching-1.c
  94f2b5084b2cc34273650b4de59a5e2e  gcc/testsuite/gcc.dg/live-patching-2.c
  5832d6d09db6f71495d0171b2f941e50  gcc/testsuite/gcc.dg/live-patching-3.c
! 619b58721598a979e2fb6ffb5a4b8a4a  gcc/testsuite/gcc.dg/live-patching-4.c
  a58ddec7228812bb78181f0f22cecb9a  gcc/testsuite/gcc.dg/live-patching-5.c
  209fdf5744b573204a2de0155546afc5  gcc/testsuite/gcc.dg/local1.c
  8c594498180fabb74acf611568d4f67e  gcc/testsuite/gcc.dg/localalias-2.c
--- 47818,47827 ----
  a1511014730573ca08fa055a4f00aa75  gcc/testsuite/gcc.dg/lazy-ptr-test.c
  d0bcca2e1a0a2193680083619c7cffab  gcc/testsuite/gcc.dg/limits-width-1.c
  b22be2559a8886fa235c4257ce1f2437  gcc/testsuite/gcc.dg/limits-width-2.c
! fb18e8a2444662919ef8327f8f1a6262  gcc/testsuite/gcc.dg/live-patching-1.c
  94f2b5084b2cc34273650b4de59a5e2e  gcc/testsuite/gcc.dg/live-patching-2.c
  5832d6d09db6f71495d0171b2f941e50  gcc/testsuite/gcc.dg/live-patching-3.c
! 464debabbaf022be6367a8f281904b15  gcc/testsuite/gcc.dg/live-patching-4.c
  a58ddec7228812bb78181f0f22cecb9a  gcc/testsuite/gcc.dg/live-patching-5.c
  209fdf5744b573204a2de0155546afc5  gcc/testsuite/gcc.dg/local1.c
  8c594498180fabb74acf611568d4f67e  gcc/testsuite/gcc.dg/localalias-2.c
*************** b4339b390113a15f56bdeba41587958c  gcc/te
*** 45320,45330 ****
  f26f4f4d9973dff3665201724f9dc4c4  gcc/testsuite/gcc.dg/lto/20091006-2_2.c
  35c2c36cc67c40eac6d7a88ea8b7af0c  gcc/testsuite/gcc.dg/lto/20091013-1_0.c
  f04ef6add169f04f5a01494d3a85f438  gcc/testsuite/gcc.dg/lto/20091013-1_1.c
! 207b929127cc169ea17cd61eb2df9341  gcc/testsuite/gcc.dg/lto/20091013-1_2.c
  3b10f79cd30196caa87ca77c16e13aa1  gcc/testsuite/gcc.dg/lto/20091014-1_0.c
  7cf51136e40f296b0c702fa9682478ad  gcc/testsuite/gcc.dg/lto/20091015-1_0.c
  d05ae72bc2da158ccd15c392b0755414  gcc/testsuite/gcc.dg/lto/20091015-1_1.c
! 5aeb3bdab73f04346169e5977440c1fa  gcc/testsuite/gcc.dg/lto/20091015-1_2.c
  cd19aeb3db08e282934afd84a9891db7  gcc/testsuite/gcc.dg/lto/20091015-1_a.h
  8a41fc80c934be519e84a6d5da92371e  gcc/testsuite/gcc.dg/lto/20091015-1_b.h
  23cbe7ee93e8b5f30e7f1df4ac66c821  gcc/testsuite/gcc.dg/lto/20091016-1_0.c
--- 47960,47970 ----
  f26f4f4d9973dff3665201724f9dc4c4  gcc/testsuite/gcc.dg/lto/20091006-2_2.c
  35c2c36cc67c40eac6d7a88ea8b7af0c  gcc/testsuite/gcc.dg/lto/20091013-1_0.c
  f04ef6add169f04f5a01494d3a85f438  gcc/testsuite/gcc.dg/lto/20091013-1_1.c
! 0a0b1436b7a152b876f63e4755212ae6  gcc/testsuite/gcc.dg/lto/20091013-1_2.c
  3b10f79cd30196caa87ca77c16e13aa1  gcc/testsuite/gcc.dg/lto/20091014-1_0.c
  7cf51136e40f296b0c702fa9682478ad  gcc/testsuite/gcc.dg/lto/20091015-1_0.c
  d05ae72bc2da158ccd15c392b0755414  gcc/testsuite/gcc.dg/lto/20091015-1_1.c
! f9f0c4fe772ccf41fdb0a41f79c5620a  gcc/testsuite/gcc.dg/lto/20091015-1_2.c
  cd19aeb3db08e282934afd84a9891db7  gcc/testsuite/gcc.dg/lto/20091015-1_a.h
  8a41fc80c934be519e84a6d5da92371e  gcc/testsuite/gcc.dg/lto/20091015-1_b.h
  23cbe7ee93e8b5f30e7f1df4ac66c821  gcc/testsuite/gcc.dg/lto/20091016-1_0.c
*************** fd5005c6fbb07e4f27713809ef1f5759  gcc/te
*** 45399,45411 ****
  7eb073d8698d001863417a7877febbe6  gcc/testsuite/gcc.dg/lto/chkp-privatize_1.c
  e22501e605edeaceeca043b437e49ba9  gcc/testsuite/gcc.dg/lto/const-uniq_0.c
  1ed435f0f8bee4556b01e24c97ab41e3  gcc/testsuite/gcc.dg/lto/const-uniq_1.c
  9832f2325d13caa677963d6a73562014  gcc/testsuite/gcc.dg/lto/ipacp_0.c
  978da60d3a01b7ce53a5f8b06a2813e9  gcc/testsuite/gcc.dg/lto/ipacp_1.c
  2250fbcaea4453970ef7ce141192bd68  gcc/testsuite/gcc.dg/lto/ipareference2_0.c
  5afe5712f0eec3e1317099cf354d0a38  gcc/testsuite/gcc.dg/lto/ipareference2_1.c
  744ef838cd191f7a2544697bf8f124dd  gcc/testsuite/gcc.dg/lto/ipareference_0.c
  798f96b8b3130da03f51bfae27df4189  gcc/testsuite/gcc.dg/lto/ipareference_1.c
! 53b8ba0463731e016c3ac950036f40d1  gcc/testsuite/gcc.dg/lto/lto.exp
  b9cc7cb6d7d65f984ee0a8985b8e0e6e  gcc/testsuite/gcc.dg/lto/materialize-1_0.c
  4c9f4a6440d7bd9fa3f564ee6b91b50c  gcc/testsuite/gcc.dg/lto/materialize-1_1.c
  ae3d0968e71a8445a5ea662452d0f5ce  gcc/testsuite/gcc.dg/lto/modref-1_0.c
--- 48039,48053 ----
  7eb073d8698d001863417a7877febbe6  gcc/testsuite/gcc.dg/lto/chkp-privatize_1.c
  e22501e605edeaceeca043b437e49ba9  gcc/testsuite/gcc.dg/lto/const-uniq_0.c
  1ed435f0f8bee4556b01e24c97ab41e3  gcc/testsuite/gcc.dg/lto/const-uniq_1.c
+ b915a8da2759e8acfd7b4a5ed6628ee2  gcc/testsuite/gcc.dg/lto/embed-1_0.c
+ 099276feaa888c7fa8e834f941a656eb  gcc/testsuite/gcc.dg/lto/embed-1_1.c
  9832f2325d13caa677963d6a73562014  gcc/testsuite/gcc.dg/lto/ipacp_0.c
  978da60d3a01b7ce53a5f8b06a2813e9  gcc/testsuite/gcc.dg/lto/ipacp_1.c
  2250fbcaea4453970ef7ce141192bd68  gcc/testsuite/gcc.dg/lto/ipareference2_0.c
  5afe5712f0eec3e1317099cf354d0a38  gcc/testsuite/gcc.dg/lto/ipareference2_1.c
  744ef838cd191f7a2544697bf8f124dd  gcc/testsuite/gcc.dg/lto/ipareference_0.c
  798f96b8b3130da03f51bfae27df4189  gcc/testsuite/gcc.dg/lto/ipareference_1.c
! fb0a80df3a4d6c6bf7662e1c594d973e  gcc/testsuite/gcc.dg/lto/lto.exp
  b9cc7cb6d7d65f984ee0a8985b8e0e6e  gcc/testsuite/gcc.dg/lto/materialize-1_0.c
  4c9f4a6440d7bd9fa3f564ee6b91b50c  gcc/testsuite/gcc.dg/lto/materialize-1_1.c
  ae3d0968e71a8445a5ea662452d0f5ce  gcc/testsuite/gcc.dg/lto/modref-1_0.c
*************** ef0b90ba09e6e56d1d655afdcb63cdd4  gcc/te
*** 45439,45444 ****
--- 48081,48088 ----
  c3ad752a64c11978f9f2cce0520bf58c  gcc/testsuite/gcc.dg/lto/pr109778_1.c
  416450f6c91d224b71df4377a39b3fe7  gcc/testsuite/gcc.dg/lto/pr111157_0.c
  d2a12eff624006349f40806ec941ae27  gcc/testsuite/gcc.dg/lto/pr111157_1.c
+ 359827f0dc7362f6fa180747ada4d694  gcc/testsuite/gcc.dg/lto/pr113197_0.c
+ 8585ad779c7876f8afd4fc230cb52bd5  gcc/testsuite/gcc.dg/lto/pr113197_1.c
  c8f6b1129e2eea0401251eaa5bad2940  gcc/testsuite/gcc.dg/lto/pr113233_0.c
  5a30be7e5faebcb3c788634739d7942d  gcc/testsuite/gcc.dg/lto/pr113359-1_0.c
  689493d8859ebd5141c7576ea5812894  gcc/testsuite/gcc.dg/lto/pr113359-1_1.c
*************** a1748e20d9862396a285906364208f44  gcc/te
*** 45453,45458 ****
--- 48097,48106 ----
  19509c8f1bdf98e2ab64c3f9e2c3f584  gcc/testsuite/gcc.dg/lto/pr113907_0.c
  9f07bf819862bc85bb8767d97947d837  gcc/testsuite/gcc.dg/lto/pr113907_1.c
  4d872eeace42ef5001147db36f0eb548  gcc/testsuite/gcc.dg/lto/pr113907_2.c
+ d043bebe314f4799a1f686632b791cca  gcc/testsuite/gcc.dg/lto/pr115815_0.c
+ fc62f9b04cc5a79673dbe5e5bdabbe49  gcc/testsuite/gcc.dg/lto/pr117199_0.c
+ 6d71a1f58a218031bc3d4d7e09342e22  gcc/testsuite/gcc.dg/lto/pr117201_0.c
+ 5e48b5b5f991fe6ba63af683c6381505  gcc/testsuite/gcc.dg/lto/pr117288_0.c
  5192817b2492ca93ffadce3b4a5e4794  gcc/testsuite/gcc.dg/lto/pr27898_0.c
  c5f48897247dfaec60df4e32beffcd8e  gcc/testsuite/gcc.dg/lto/pr27898_1.c
  2ad724786bc4b555a7f31e8b3bf164b6  gcc/testsuite/gcc.dg/lto/pr28706_0.c
*************** ca133eb45ca5807ac1ebf3a198de9306  gcc/te
*** 45482,45488 ****
  a64fcd8b9752e9274bf113e4f8c66522  gcc/testsuite/gcc.dg/lto/pr53214_0.c
  29ec2433c8fcc6971a9c77da7bcb77c5  gcc/testsuite/gcc.dg/lto/pr53470_0.c
  f2ca7f47966827f94f5a77e51e70d147  gcc/testsuite/gcc.dg/lto/pr54702_0.c
! f288b413e895105108075f75f0c0ff06  gcc/testsuite/gcc.dg/lto/pr54702_1.c
  aae6afc076dac549323ad55c39757d0f  gcc/testsuite/gcc.dg/lto/pr54709_0.c
  ff470ed3bf1bbfa848a1ee2162616399  gcc/testsuite/gcc.dg/lto/pr54709_1.c
  6aeb37cec76b66cd4f720c5760e6191b  gcc/testsuite/gcc.dg/lto/pr55525_0.c
--- 48130,48136 ----
  a64fcd8b9752e9274bf113e4f8c66522  gcc/testsuite/gcc.dg/lto/pr53214_0.c
  29ec2433c8fcc6971a9c77da7bcb77c5  gcc/testsuite/gcc.dg/lto/pr53470_0.c
  f2ca7f47966827f94f5a77e51e70d147  gcc/testsuite/gcc.dg/lto/pr54702_0.c
! 2ac52b96c377147d736be42aa8edad6b  gcc/testsuite/gcc.dg/lto/pr54702_1.c
  aae6afc076dac549323ad55c39757d0f  gcc/testsuite/gcc.dg/lto/pr54709_0.c
  ff470ed3bf1bbfa848a1ee2162616399  gcc/testsuite/gcc.dg/lto/pr54709_1.c
  6aeb37cec76b66cd4f720c5760e6191b  gcc/testsuite/gcc.dg/lto/pr55525_0.c
*************** caa3ad6f8f84278e151b5b4d0b365ff3  gcc/te
*** 45534,45540 ****
  cb9e5b569e150d19012ba644b27a50aa  gcc/testsuite/gcc.dg/lto/pr69866_1.c
  c94baecc2f6c439b0f7a06f566842708  gcc/testsuite/gcc.dg/lto/pr70955_0.c
  9e070e93615d99f5f50d833d9a344c13  gcc/testsuite/gcc.dg/lto/pr70955_1.c
! 543c628f11b07d2ba7e4febbec49fde1  gcc/testsuite/gcc.dg/lto/pr80778_0.c
  dd089261a8cb473ff41a09af54b23c80  gcc/testsuite/gcc.dg/lto/pr81406_0.c
  f81e0e9147c6abb1e4b7ce4953fda6e5  gcc/testsuite/gcc.dg/lto/pr81440.h
  e9ff238723b78ce9df572712d231be5f  gcc/testsuite/gcc.dg/lto/pr81440_0.c
--- 48182,48188 ----
  cb9e5b569e150d19012ba644b27a50aa  gcc/testsuite/gcc.dg/lto/pr69866_1.c
  c94baecc2f6c439b0f7a06f566842708  gcc/testsuite/gcc.dg/lto/pr70955_0.c
  9e070e93615d99f5f50d833d9a344c13  gcc/testsuite/gcc.dg/lto/pr70955_1.c
! 66dfcd8e84b553a269ace310a85d2863  gcc/testsuite/gcc.dg/lto/pr80778_0.c
  dd089261a8cb473ff41a09af54b23c80  gcc/testsuite/gcc.dg/lto/pr81406_0.c
  f81e0e9147c6abb1e4b7ce4953fda6e5  gcc/testsuite/gcc.dg/lto/pr81440.h
  e9ff238723b78ce9df572712d231be5f  gcc/testsuite/gcc.dg/lto/pr81440_0.c
*************** f67a44e9e2f963084509149bec7655af  gcc/te
*** 45554,45559 ****
--- 48202,48209 ----
  833668f47a5741405cf53fc58d31d1bc  gcc/testsuite/gcc.dg/lto/pr88077_1.c
  c51c424cae679b65a2dc52ea3ddc96d9  gcc/testsuite/gcc.dg/lto/pr88297_0.c
  14664c531ea727ce3e6cd733560c6895  gcc/testsuite/gcc.dg/lto/pr88297_1.c
+ 0e4761398a1a807133de9d1dbb23f8dc  gcc/testsuite/gcc.dg/lto/pr91299_0.c
+ 2fa66cdf16d22012d4837a0c72b33169  gcc/testsuite/gcc.dg/lto/pr91299_1.c
  8333794e711e91fcca018cc86d41ea1e  gcc/testsuite/gcc.dg/lto/pr91393_0.c
  792aee8f66fa8c921ace23ab0bacbfa0  gcc/testsuite/gcc.dg/lto/pr93015_0.c
  452562151ef3b606235a43b661fb5f32  gcc/testsuite/gcc.dg/lto/pr93384_0.c
*************** c309c8ae6654d9b080cc8e4c515fe8cd  gcc/te
*** 45568,45582 ****
  591d1ea1c066ef2f917ef419621926d5  gcc/testsuite/gcc.dg/lto/pr96291_0.c
  a03a5109c087726181cf7cc2241d1a9e  gcc/testsuite/gcc.dg/lto/pr96291_1.c
  2c4d5bcbee8d58ebb771293492990293  gcc/testsuite/gcc.dg/lto/pr96291_2.c
! b993f9b2f252c1617164dd903ffe1c62  gcc/testsuite/gcc.dg/lto/pr99849_0.c
  260506c568e35bc49112021166edf8f2  gcc/testsuite/gcc.dg/lto/resolutions_0.c
  1084184a9b11a84eee39ef130211f70b  gcc/testsuite/gcc.dg/lto/save-temps_0.c
  09277fb3fb9fd7dd7a54fcf828e8db1c  gcc/testsuite/gcc.dg/lto/semantic-interposition-1_0.c
  4663728afa00dba163d6f19cda334606  gcc/testsuite/gcc.dg/lto/semantic-interposition-1_1.c
  46d188c0319bf02d664cc2c49c9df2ef  gcc/testsuite/gcc.dg/lto/simd-function_0.c
! 831c2bc533633bee1df2a4c28ba2fbe9  gcc/testsuite/gcc.dg/lto/tag-1_0.c
! 7144322c904b1f64c63a75626623d2f9  gcc/testsuite/gcc.dg/lto/tag-1_1.c
! 2aaa3661a205479517a45eeea7479b4c  gcc/testsuite/gcc.dg/lto/tbaa-1.c
  69ff2353992f738ce7ea3cb89e9db1e4  gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c
  0e1956cbb4feeb82617d27801e1217f5  gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c
  3f4f42d8a6ea686d4fc6a621928696a8  gcc/testsuite/gcc.dg/lto/trans-mem.h
--- 48218,48231 ----
  591d1ea1c066ef2f917ef419621926d5  gcc/testsuite/gcc.dg/lto/pr96291_0.c
  a03a5109c087726181cf7cc2241d1a9e  gcc/testsuite/gcc.dg/lto/pr96291_1.c
  2c4d5bcbee8d58ebb771293492990293  gcc/testsuite/gcc.dg/lto/pr96291_2.c
! 7f1344496bc67b04a9ee660d95328702  gcc/testsuite/gcc.dg/lto/pr99849_0.c
  260506c568e35bc49112021166edf8f2  gcc/testsuite/gcc.dg/lto/resolutions_0.c
  1084184a9b11a84eee39ef130211f70b  gcc/testsuite/gcc.dg/lto/save-temps_0.c
  09277fb3fb9fd7dd7a54fcf828e8db1c  gcc/testsuite/gcc.dg/lto/semantic-interposition-1_0.c
  4663728afa00dba163d6f19cda334606  gcc/testsuite/gcc.dg/lto/semantic-interposition-1_1.c
  46d188c0319bf02d664cc2c49c9df2ef  gcc/testsuite/gcc.dg/lto/simd-function_0.c
! eb3f74ee254d840e57e48daa509a2c8c  gcc/testsuite/gcc.dg/lto/tag-1_0.c
! 0e59139568f3499106d8c9c073cb93a6  gcc/testsuite/gcc.dg/lto/tag-1_1.c
  69ff2353992f738ce7ea3cb89e9db1e4  gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c
  0e1956cbb4feeb82617d27801e1217f5  gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c
  3f4f42d8a6ea686d4fc6a621928696a8  gcc/testsuite/gcc.dg/lto/trans-mem.h
*************** d0f7ad775f7535709bd76a4c558f1a51  gcc/te
*** 45604,45610 ****
  2eb99e685dc27ff7c74d04a147795043  gcc/testsuite/gcc.dg/memchr-2.c
  7253243e752b28339ab60d7858fa1d33  gcc/testsuite/gcc.dg/memchr-3.c
  9d87244d84141f68f68c9df9b9943fae  gcc/testsuite/gcc.dg/memchr.c
! c7ab022dfd7aca20ec1641f9eb2a2fbd  gcc/testsuite/gcc.dg/memcmp-1.c
  d46511208ba88b755c518bb5aa8112c3  gcc/testsuite/gcc.dg/memcmp-2.c
  656fc17a7231d4e1379a02817888a5d3  gcc/testsuite/gcc.dg/memcmp-3.c
  30c111f00536fce8bf5c9fddb92630a8  gcc/testsuite/gcc.dg/memcmp-4.c
--- 48253,48259 ----
  2eb99e685dc27ff7c74d04a147795043  gcc/testsuite/gcc.dg/memchr-2.c
  7253243e752b28339ab60d7858fa1d33  gcc/testsuite/gcc.dg/memchr-3.c
  9d87244d84141f68f68c9df9b9943fae  gcc/testsuite/gcc.dg/memchr.c
! acab1de0cea85ee2b9b2dbae5000854c  gcc/testsuite/gcc.dg/memcmp-1.c
  d46511208ba88b755c518bb5aa8112c3  gcc/testsuite/gcc.dg/memcmp-2.c
  656fc17a7231d4e1379a02817888a5d3  gcc/testsuite/gcc.dg/memcmp-3.c
  30c111f00536fce8bf5c9fddb92630a8  gcc/testsuite/gcc.dg/memcmp-4.c
*************** e493111d21e55c655eba6eaa3ebdda47  gcc/te
*** 45657,45665 ****
  91404a997a88187ebc04b74582beae0f  gcc/testsuite/gcc.dg/nest.c
  954b75a10cc7c4acd20d0a13dd9b8a0f  gcc/testsuite/gcc.dg/nested-calls-1.c
  d07d9c82b2a97d45b09c04346a5ac493  gcc/testsuite/gcc.dg/nested-func-1.c
! b290d4b46f9b4f3b547af34fc6d6102c  gcc/testsuite/gcc.dg/nested-func-10.c
  814d4d89b14c7fb096605ddc55aef12e  gcc/testsuite/gcc.dg/nested-func-11.c
! 3d5fe1b30c5d0cca6b06e3dfa5f9a18c  gcc/testsuite/gcc.dg/nested-func-12.c
  09b5bf76a67802372892a2a1af9d82b2  gcc/testsuite/gcc.dg/nested-func-2.c
  dc2268399923a1dc34a044ba5a9fc3c6  gcc/testsuite/gcc.dg/nested-func-3.c
  4bc44650c99364fa62ff8683492dcb8f  gcc/testsuite/gcc.dg/nested-func-4.c
--- 48306,48319 ----
  91404a997a88187ebc04b74582beae0f  gcc/testsuite/gcc.dg/nest.c
  954b75a10cc7c4acd20d0a13dd9b8a0f  gcc/testsuite/gcc.dg/nested-calls-1.c
  d07d9c82b2a97d45b09c04346a5ac493  gcc/testsuite/gcc.dg/nested-func-1.c
! a3b278a6d5f73bf284eb0317400dedc3  gcc/testsuite/gcc.dg/nested-func-10.c
  814d4d89b14c7fb096605ddc55aef12e  gcc/testsuite/gcc.dg/nested-func-11.c
! b3bc2f8cf0216d46d9b6953914a0dda4  gcc/testsuite/gcc.dg/nested-func-12.c
! 5ea09d3b2f9ec9b6915b828c9b8f1df0  gcc/testsuite/gcc.dg/nested-func-13.c
! cdc898cb73d8bb2341dabad6545e46b6  gcc/testsuite/gcc.dg/nested-func-14.c
! e156c59fe96e5f3bfea1def9b7ec8574  gcc/testsuite/gcc.dg/nested-func-15.c
! c96e664c8c3b418aa50b8e0e6ec440b5  gcc/testsuite/gcc.dg/nested-func-16.c
! c989be540820817f0b1b4a190d4b490a  gcc/testsuite/gcc.dg/nested-func-17.c
  09b5bf76a67802372892a2a1af9d82b2  gcc/testsuite/gcc.dg/nested-func-2.c
  dc2268399923a1dc34a044ba5a9fc3c6  gcc/testsuite/gcc.dg/nested-func-3.c
  4bc44650c99364fa62ff8683492dcb8f  gcc/testsuite/gcc.dg/nested-func-4.c
*************** a7bb7822e79bba08210f4929375c8fd7  gcc/te
*** 45667,45673 ****
  6e0f39a774d7ea6603cfda74a922b77b  gcc/testsuite/gcc.dg/nested-func-6.c
  c277f277d0df3dd537cf20409167e023  gcc/testsuite/gcc.dg/nested-func-7.c
  9b2b87a837afbb3185b68584c224938c  gcc/testsuite/gcc.dg/nested-func-8.c
! a43584a2eaad726a7d3c7a5adf915002  gcc/testsuite/gcc.dg/nested-func-9.c
  a2066a54fee8d64eae2217ae9213f31d  gcc/testsuite/gcc.dg/nested-redef-1.c
  0a6a96bf23d0651968c7fab7a318a533  gcc/testsuite/gcc.dg/nested-vla-1.c
  999bc8e1663e00fcaa7a469ac3938497  gcc/testsuite/gcc.dg/nested-vla-2.c
--- 48321,48327 ----
  6e0f39a774d7ea6603cfda74a922b77b  gcc/testsuite/gcc.dg/nested-func-6.c
  c277f277d0df3dd537cf20409167e023  gcc/testsuite/gcc.dg/nested-func-7.c
  9b2b87a837afbb3185b68584c224938c  gcc/testsuite/gcc.dg/nested-func-8.c
! 3964935e95e6614f95fbc18e0f948be2  gcc/testsuite/gcc.dg/nested-func-9.c
  a2066a54fee8d64eae2217ae9213f31d  gcc/testsuite/gcc.dg/nested-redef-1.c
  0a6a96bf23d0651968c7fab7a318a533  gcc/testsuite/gcc.dg/nested-vla-1.c
  999bc8e1663e00fcaa7a469ac3938497  gcc/testsuite/gcc.dg/nested-vla-2.c
*************** f6f749bfbd33a9e9e95102c823d14bb8  gcc/te
*** 45696,45702 ****
  5a420286281e2790c2a3c0f4f6987137  gcc/testsuite/gcc.dg/no-strict-overflow-8.c
  2fadc668aca399402ad767f2527b6c3b  gcc/testsuite/gcc.dg/no-trapping-math-1.c
  43f035a28108bbf26ee8a8b10cc21d4c  gcc/testsuite/gcc.dg/no-trapping-math-2.c
! 3f209578f6c6e9b7f7b3d81ccb8df4a7  gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-1.c
  843fb1e258e755599bbf31e17f1c17cc  gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-2.c
  4142b2322a75b23f47a3f63e7bf6f75f  gcc/testsuite/gcc.dg/nodfp-1.c
  7193a17ae405f52ff74ec32ff455a959  gcc/testsuite/gcc.dg/nofixed-point-1.c
--- 48350,48356 ----
  5a420286281e2790c2a3c0f4f6987137  gcc/testsuite/gcc.dg/no-strict-overflow-8.c
  2fadc668aca399402ad767f2527b6c3b  gcc/testsuite/gcc.dg/no-trapping-math-1.c
  43f035a28108bbf26ee8a8b10cc21d4c  gcc/testsuite/gcc.dg/no-trapping-math-2.c
! 28ccf479a89adbb5bc72f6c5aa7b11a8  gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-1.c
  843fb1e258e755599bbf31e17f1c17cc  gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-2.c
  4142b2322a75b23f47a3f63e7bf6f75f  gcc/testsuite/gcc.dg/nodfp-1.c
  7193a17ae405f52ff74ec32ff455a959  gcc/testsuite/gcc.dg/nofixed-point-1.c
*************** bd81391574c813adc19fd60abe89bd01  gcc/te
*** 45709,45715 ****
  d8b8e704d82244bf172325ffe7687229  gcc/testsuite/gcc.dg/noncompile/20010524-1.c
  efaec86420af0d4c7d1309e3f635fe7b  gcc/testsuite/gcc.dg/noncompile/20011025-1.c
  3479030e3e59e70fabf3395145384ec5  gcc/testsuite/gcc.dg/noncompile/20020130-1.c
! ae4bbb0e37fbefdbb9ec9ce5946463ca  gcc/testsuite/gcc.dg/noncompile/20020207-1.c
  5faa276c0b3dd18a3eb19f05afeeeb34  gcc/testsuite/gcc.dg/noncompile/20020213-1.c
  ebaa4ee280f3ee63dd95a60e45569641  gcc/testsuite/gcc.dg/noncompile/20020220-1.c
  b5076a05f012d9662ba39a0ac14be746  gcc/testsuite/gcc.dg/noncompile/20030818-1.c
--- 48363,48369 ----
  d8b8e704d82244bf172325ffe7687229  gcc/testsuite/gcc.dg/noncompile/20010524-1.c
  efaec86420af0d4c7d1309e3f635fe7b  gcc/testsuite/gcc.dg/noncompile/20011025-1.c
  3479030e3e59e70fabf3395145384ec5  gcc/testsuite/gcc.dg/noncompile/20020130-1.c
! 9824452c6a94ae9493cf4b5d9e5d96c9  gcc/testsuite/gcc.dg/noncompile/20020207-1.c
  5faa276c0b3dd18a3eb19f05afeeeb34  gcc/testsuite/gcc.dg/noncompile/20020213-1.c
  ebaa4ee280f3ee63dd95a60e45569641  gcc/testsuite/gcc.dg/noncompile/20020220-1.c
  b5076a05f012d9662ba39a0ac14be746  gcc/testsuite/gcc.dg/noncompile/20030818-1.c
*************** ce046abcd40f617b0695e23ece8f85b3  gcc/te
*** 45720,45731 ****
  958308556b798e351e6a5d0af5942992  gcc/testsuite/gcc.dg/noncompile/20041207.c
  72ce5e5f7335399506f1ec06bdae8aff  gcc/testsuite/gcc.dg/noncompile/20050120-1.c
  7b3489e1bebd49427deddf55525237d3  gcc/testsuite/gcc.dg/noncompile/920507-1.c
! 9129a49a9e21bd7f6ce42e5d378cd5c1  gcc/testsuite/gcc.dg/noncompile/920616-2.c
  4c5ea3fc28acc054cda8c446430e0e59  gcc/testsuite/gcc.dg/noncompile/920721-2.c
  f53be9e609bc996b982825ce79df3595  gcc/testsuite/gcc.dg/noncompile/920824-1.c
! e0a733f596f7302fdd7d009272a25b98  gcc/testsuite/gcc.dg/noncompile/920923-1.c
  90c7d00d1461ffe10b144b3e6c1aed26  gcc/testsuite/gcc.dg/noncompile/921102-1.c
! a8666066c64e2d7e4bc38901216fc0e7  gcc/testsuite/gcc.dg/noncompile/921116-1.c
  c07318e2d4130e937daaa46e63f10261  gcc/testsuite/gcc.dg/noncompile/930301-1.c
  abfe35fbe8e86cdb6dcda81aff061999  gcc/testsuite/gcc.dg/noncompile/930622-1.c
  615bce7122ab36b408ed5817f9eb3ed9  gcc/testsuite/gcc.dg/noncompile/930622-2.c
--- 48374,48385 ----
  958308556b798e351e6a5d0af5942992  gcc/testsuite/gcc.dg/noncompile/20041207.c
  72ce5e5f7335399506f1ec06bdae8aff  gcc/testsuite/gcc.dg/noncompile/20050120-1.c
  7b3489e1bebd49427deddf55525237d3  gcc/testsuite/gcc.dg/noncompile/920507-1.c
! 7d701b9d5ab4de2032995740fddb9a8f  gcc/testsuite/gcc.dg/noncompile/920616-2.c
  4c5ea3fc28acc054cda8c446430e0e59  gcc/testsuite/gcc.dg/noncompile/920721-2.c
  f53be9e609bc996b982825ce79df3595  gcc/testsuite/gcc.dg/noncompile/920824-1.c
! 89386b437d7a4142fa510757c174a982  gcc/testsuite/gcc.dg/noncompile/920923-1.c
  90c7d00d1461ffe10b144b3e6c1aed26  gcc/testsuite/gcc.dg/noncompile/921102-1.c
! e40ff82263a2ff3b6a00dadc67920639  gcc/testsuite/gcc.dg/noncompile/921116-1.c
  c07318e2d4130e937daaa46e63f10261  gcc/testsuite/gcc.dg/noncompile/930301-1.c
  abfe35fbe8e86cdb6dcda81aff061999  gcc/testsuite/gcc.dg/noncompile/930622-1.c
  615bce7122ab36b408ed5817f9eb3ed9  gcc/testsuite/gcc.dg/noncompile/930622-2.c
*************** b054d23fd7d868a509aeb363dc7e8ffc  gcc/te
*** 45752,45765 ****
  816b6759ae933f803099070549d0e06e  gcc/testsuite/gcc.dg/noncompile/invalid_asm.c
  67db74b19085ff950f0aaafaec250ef4  gcc/testsuite/gcc.dg/noncompile/label-1.c
  158d88cfb97dd38de0cb17ccc39f3d5e  gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c
! 3a4d5bc49e203fafaad4d51b0d8bf733  gcc/testsuite/gcc.dg/noncompile/noncompile.exp
! 415c039abdab8437275df71102cc5113  gcc/testsuite/gcc.dg/noncompile/old-style-parm-1.c
  6ccdd7958d053743fbd68691650b1b61  gcc/testsuite/gcc.dg/noncompile/old-style-parm-2.c
! dc03b56a3d101a6001179c75ccbd6723  gcc/testsuite/gcc.dg/noncompile/old-style-parm-3.c
  1f73d14d777c3ea372a5513b43f3d381  gcc/testsuite/gcc.dg/noncompile/pr23576.c
  0e07b611152ff8a883725895e8652202  gcc/testsuite/gcc.dg/noncompile/pr30552-1.c
! 55e6fa3ed3a4e7aa4637f5ba6390db3a  gcc/testsuite/gcc.dg/noncompile/pr30552-2.c
! 6caacb02271620a61da9c3adca21721a  gcc/testsuite/gcc.dg/noncompile/pr30552-3.c
  734a0772ca3d8eb2d2979628e29d6f8e  gcc/testsuite/gcc.dg/noncompile/pr30552-4.c
  5a2c3316d076f8d48f24609d416f7516  gcc/testsuite/gcc.dg/noncompile/pr35444-1.c
  f7b0583ef99de8104eb364054c2ab1ae  gcc/testsuite/gcc.dg/noncompile/pr35444-2.c
--- 48406,48419 ----
  816b6759ae933f803099070549d0e06e  gcc/testsuite/gcc.dg/noncompile/invalid_asm.c
  67db74b19085ff950f0aaafaec250ef4  gcc/testsuite/gcc.dg/noncompile/label-1.c
  158d88cfb97dd38de0cb17ccc39f3d5e  gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c
! 15f80f64547f7b5fc68648ca0b3f1d13  gcc/testsuite/gcc.dg/noncompile/noncompile.exp
! c33e1ca684e678d81dec9b2e649453ee  gcc/testsuite/gcc.dg/noncompile/old-style-parm-1.c
  6ccdd7958d053743fbd68691650b1b61  gcc/testsuite/gcc.dg/noncompile/old-style-parm-2.c
! 2e4960e51391dfff6c1c7678e08193f3  gcc/testsuite/gcc.dg/noncompile/old-style-parm-3.c
  1f73d14d777c3ea372a5513b43f3d381  gcc/testsuite/gcc.dg/noncompile/pr23576.c
  0e07b611152ff8a883725895e8652202  gcc/testsuite/gcc.dg/noncompile/pr30552-1.c
! 9013e466581af2d86287e6c2c65073a7  gcc/testsuite/gcc.dg/noncompile/pr30552-2.c
! f5642a7c6470d8d97a377d130883b069  gcc/testsuite/gcc.dg/noncompile/pr30552-3.c
  734a0772ca3d8eb2d2979628e29d6f8e  gcc/testsuite/gcc.dg/noncompile/pr30552-4.c
  5a2c3316d076f8d48f24609d416f7516  gcc/testsuite/gcc.dg/noncompile/pr35444-1.c
  f7b0583ef99de8104eb364054c2ab1ae  gcc/testsuite/gcc.dg/noncompile/pr35444-2.c
*************** de304718b009b210b30f573b7fc0491d  gcc/te
*** 45769,45796 ****
  0c6d70d2240eeb85a465c0d349792a78  gcc/testsuite/gcc.dg/noncompile/pr52290.c
  c5e0f548af5c87d4b40b062c90374ac5  gcc/testsuite/gcc.dg/noncompile/pr55976-1.c
  1e44ca7b40713459e1e7bb8f3d8f838c  gcc/testsuite/gcc.dg/noncompile/pr55976-2.c
! 4ba1dea2c906010f72544a694c8055d2  gcc/testsuite/gcc.dg/noncompile/pr71265.c
  e9c4b9ac1764f109629be29afe89e235  gcc/testsuite/gcc.dg/noncompile/pr71418.c
  2a280d59838498ec3da9d7343cd29700  gcc/testsuite/gcc.dg/noncompile/pr71426.c
  9d1dbbc7954243ba6f9b868a5f7cc3c6  gcc/testsuite/gcc.dg/noncompile/pr71573.c
  dce450a02a76e8850fa1af640a197e05  gcc/testsuite/gcc.dg/noncompile/pr71583.c
  795fb0aea23fa4679ac66c15370f8f54  gcc/testsuite/gcc.dg/noncompile/pr71853.c
! 4c6e72ae257c01d7196bc78af9babfa4  gcc/testsuite/gcc.dg/noncompile/pr79758-2.c
! 229ebd1d273fe705ac50d99a534032da  gcc/testsuite/gcc.dg/noncompile/pr79758.c
  9dcbfb000a62c03db07cd7dfcc272eae  gcc/testsuite/gcc.dg/noncompile/pr81289.c
  7e17434473e72d99de0e53837884085d  gcc/testsuite/gcc.dg/noncompile/redecl-1.c
  efd9f24faf3a5e574722522b379e34c7  gcc/testsuite/gcc.dg/noncompile/scope.c
  776ca86f7122507469a01a8baa0dd8ef  gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
  2abbebc8d611565f8348fdd5ae78f555  gcc/testsuite/gcc.dg/noncompile/undeclared-2.c
! e65c0aad11135d5f145655fd963b86e6  gcc/testsuite/gcc.dg/noncompile/va-arg-1.c
  22faeecb9b2619b4c2796b8fd40a3a76  gcc/testsuite/gcc.dg/noncompile/voidparam-1.c
  651344fe733fa7735632a9520a50f8ba  gcc/testsuite/gcc.dg/nonnull-1.c
  2fdfffd14d276c562eff1fc18a7208f3  gcc/testsuite/gcc.dg/nonnull-2.c
! 1414cb7b6b57874f3c115c7664ea1719  gcc/testsuite/gcc.dg/nonnull-3.c
  9922cca70be66c8b7ef7db9ddf403b59  gcc/testsuite/gcc.dg/nonnull-4.c
  f39bd472f690e3e2598e1924ee2b8d14  gcc/testsuite/gcc.dg/nonnull-5.c
  e1e1132fa7369727498c14f35a94281c  gcc/testsuite/gcc.dg/nonnull-6.c
  fc042eaad3066a30b59b100c8d3fdb9c  gcc/testsuite/gcc.dg/nonnull-7.c
  3aaa6f3029122e1bc2b4026e23e9faf0  gcc/testsuite/gcc.dg/nop.h
  dae2d727f3381a38344f95d1d6efde7a  gcc/testsuite/gcc.dg/noreorder.c
  3e581c5222a4c527b62118185817b783  gcc/testsuite/gcc.dg/noreorder2.c
--- 48423,48455 ----
  0c6d70d2240eeb85a465c0d349792a78  gcc/testsuite/gcc.dg/noncompile/pr52290.c
  c5e0f548af5c87d4b40b062c90374ac5  gcc/testsuite/gcc.dg/noncompile/pr55976-1.c
  1e44ca7b40713459e1e7bb8f3d8f838c  gcc/testsuite/gcc.dg/noncompile/pr55976-2.c
! bcec11d66bfc335824f5fbdef9c22c27  gcc/testsuite/gcc.dg/noncompile/pr71265.c
  e9c4b9ac1764f109629be29afe89e235  gcc/testsuite/gcc.dg/noncompile/pr71418.c
  2a280d59838498ec3da9d7343cd29700  gcc/testsuite/gcc.dg/noncompile/pr71426.c
  9d1dbbc7954243ba6f9b868a5f7cc3c6  gcc/testsuite/gcc.dg/noncompile/pr71573.c
  dce450a02a76e8850fa1af640a197e05  gcc/testsuite/gcc.dg/noncompile/pr71583.c
  795fb0aea23fa4679ac66c15370f8f54  gcc/testsuite/gcc.dg/noncompile/pr71853.c
! 78a00aa896758448e4d8e3fda3a3cc81  gcc/testsuite/gcc.dg/noncompile/pr79758-2.c
! fbb795eac1ce1ff3a4b65efebf998e68  gcc/testsuite/gcc.dg/noncompile/pr79758.c
  9dcbfb000a62c03db07cd7dfcc272eae  gcc/testsuite/gcc.dg/noncompile/pr81289.c
  7e17434473e72d99de0e53837884085d  gcc/testsuite/gcc.dg/noncompile/redecl-1.c
  efd9f24faf3a5e574722522b379e34c7  gcc/testsuite/gcc.dg/noncompile/scope.c
+ dc6375740f108778317adfd5201214af  gcc/testsuite/gcc.dg/noncompile/sizeof-1.c
  776ca86f7122507469a01a8baa0dd8ef  gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
  2abbebc8d611565f8348fdd5ae78f555  gcc/testsuite/gcc.dg/noncompile/undeclared-2.c
! f11c04bf8d63c625d3b6257f4785bb60  gcc/testsuite/gcc.dg/noncompile/va-arg-1.c
  22faeecb9b2619b4c2796b8fd40a3a76  gcc/testsuite/gcc.dg/noncompile/voidparam-1.c
  651344fe733fa7735632a9520a50f8ba  gcc/testsuite/gcc.dg/nonnull-1.c
+ 07b34390c5507d6aa09434802e5b61a8  gcc/testsuite/gcc.dg/nonnull-10.c
+ 38e52279b515e8d3e7adf38ec42bc32c  gcc/testsuite/gcc.dg/nonnull-11.c
  2fdfffd14d276c562eff1fc18a7208f3  gcc/testsuite/gcc.dg/nonnull-2.c
! 2b60dc88544e8b426b9b8ef28cc5e41d  gcc/testsuite/gcc.dg/nonnull-3.c
  9922cca70be66c8b7ef7db9ddf403b59  gcc/testsuite/gcc.dg/nonnull-4.c
  f39bd472f690e3e2598e1924ee2b8d14  gcc/testsuite/gcc.dg/nonnull-5.c
  e1e1132fa7369727498c14f35a94281c  gcc/testsuite/gcc.dg/nonnull-6.c
  fc042eaad3066a30b59b100c8d3fdb9c  gcc/testsuite/gcc.dg/nonnull-7.c
+ 7967c6f010c04e7b18af2536c24a6a07  gcc/testsuite/gcc.dg/nonnull-8.c
+ 553b04c0a72360bf5e4f25bebdecc5cf  gcc/testsuite/gcc.dg/nonnull-9.c
  3aaa6f3029122e1bc2b4026e23e9faf0  gcc/testsuite/gcc.dg/nop.h
  dae2d727f3381a38344f95d1d6efde7a  gcc/testsuite/gcc.dg/noreorder.c
  3e581c5222a4c527b62118185817b783  gcc/testsuite/gcc.dg/noreorder2.c
*************** f4dad19a38b94b6587614001f5996a5c  gcc/te
*** 45809,45820 ****
  0eea359c982a9d95bd326933d03fd9b3  gcc/testsuite/gcc.dg/nrv4.c
  dd2a56aa13124f0f1f70039b34eec9a0  gcc/testsuite/gcc.dg/nrv5.c
  fb2a64e28af210271512e32c8451c2f2  gcc/testsuite/gcc.dg/null-pointer-1.c
  9702a3463e4d96dbc51a86c6caf18f2e  gcc/testsuite/gcc.dg/old-style-asm-1.c
  918effa0793233e7089914d9eeb0c4e9  gcc/testsuite/gcc.dg/old-style-param-1.c
! 10be65139df5ded9ef15f510eb2931c3  gcc/testsuite/gcc.dg/old-style-prom-1.c
! 9d188d619e18f73aeccc6718f2c7b5f0  gcc/testsuite/gcc.dg/old-style-prom-2.c
! a4430e8a6755e6674402bd05861a1795  gcc/testsuite/gcc.dg/old-style-prom-3.c
! a0182c7350fe1a90fff285e2b2b1c85b  gcc/testsuite/gcc.dg/old-style-then-proto-1.c
  1dadc95df2cfcfe39615669d181980e7  gcc/testsuite/gcc.dg/optimize-bswapdi-1.c
  404ca003e7761822ce477a10495ab916  gcc/testsuite/gcc.dg/optimize-bswapdi-2.c
  2411cd50c6b3a2f2c92ef4ec97287013  gcc/testsuite/gcc.dg/optimize-bswapdi-3.c
--- 48468,48484 ----
  0eea359c982a9d95bd326933d03fd9b3  gcc/testsuite/gcc.dg/nrv4.c
  dd2a56aa13124f0f1f70039b34eec9a0  gcc/testsuite/gcc.dg/nrv5.c
  fb2a64e28af210271512e32c8451c2f2  gcc/testsuite/gcc.dg/null-pointer-1.c
+ f5b4a2950b6c77e79b23979cb814ea61  gcc/testsuite/gcc.dg/octal-constants-1.c
+ 4210d61636c716c9aa08ed1b9ba67822  gcc/testsuite/gcc.dg/octal-constants-2.c
+ 3f86da47b489738cf0673f223cc32c77  gcc/testsuite/gcc.dg/octal-constants-3.c
+ 78b415fe501631b2e833f899dfaa7876  gcc/testsuite/gcc.dg/octal-constants-4.c
  9702a3463e4d96dbc51a86c6caf18f2e  gcc/testsuite/gcc.dg/old-style-asm-1.c
  918effa0793233e7089914d9eeb0c4e9  gcc/testsuite/gcc.dg/old-style-param-1.c
! ef1884748c78b6ae1f9bd8ce831596f1  gcc/testsuite/gcc.dg/old-style-prom-1.c
! 7883616b28c2d74f5e5ac36cdd4f98e0  gcc/testsuite/gcc.dg/old-style-prom-2.c
! 00edc35547fc7664b26692b0a14c60d0  gcc/testsuite/gcc.dg/old-style-prom-3.c
! 8bda326f57b0d3f0efcade5058571a05  gcc/testsuite/gcc.dg/old-style-then-proto-1.c
! 2249b753e9f5a2dced715e451b859f86  gcc/testsuite/gcc.dg/opt-ordered-and-nonequal-1.c
  1dadc95df2cfcfe39615669d181980e7  gcc/testsuite/gcc.dg/optimize-bswapdi-1.c
  404ca003e7761822ce477a10495ab916  gcc/testsuite/gcc.dg/optimize-bswapdi-2.c
  2411cd50c6b3a2f2c92ef4ec97287013  gcc/testsuite/gcc.dg/optimize-bswapdi-3.c
*************** d92c72c33ccc851b1cbf8c0de77ceb3e  gcc/te
*** 45848,45854 ****
  25493248e01d4cc218ef219f90174985  gcc/testsuite/gcc.dg/overflow-warn-5.c
  00468c6e7128a9c553728d36cac76215  gcc/testsuite/gcc.dg/overflow-warn-6.c
  f7dbf888578b8cc0b67acca3dbe4b7ee  gcc/testsuite/gcc.dg/overflow-warn-7.c
! 9d572c8786e80ce4edf1b4ed9e4b78a1  gcc/testsuite/gcc.dg/overflow-warn-8.c
  0ff8964732b6f36629d079f2aab30b6e  gcc/testsuite/gcc.dg/overflow-warn-9.c
  3536b36db5b8b073cc594dfe033142f0  gcc/testsuite/gcc.dg/pack-test-1.c
  9305e6f4b98cfb04210884229294d310  gcc/testsuite/gcc.dg/pack-test-1.h
--- 48512,48518 ----
  25493248e01d4cc218ef219f90174985  gcc/testsuite/gcc.dg/overflow-warn-5.c
  00468c6e7128a9c553728d36cac76215  gcc/testsuite/gcc.dg/overflow-warn-6.c
  f7dbf888578b8cc0b67acca3dbe4b7ee  gcc/testsuite/gcc.dg/overflow-warn-7.c
! 06b0b7072d2a048fc9c2271c6076813c  gcc/testsuite/gcc.dg/overflow-warn-8.c
  0ff8964732b6f36629d079f2aab30b6e  gcc/testsuite/gcc.dg/overflow-warn-9.c
  3536b36db5b8b073cc594dfe033142f0  gcc/testsuite/gcc.dg/pack-test-1.c
  9305e6f4b98cfb04210884229294d310  gcc/testsuite/gcc.dg/pack-test-1.h
*************** c508332c262788008c73edbcedf451b5  gcc/te
*** 45857,45869 ****
  607b0e00950aa58d0248b10a56cb344c  gcc/testsuite/gcc.dg/pack-test-4.c
  c618f958af883e26030aeef384665b7a  gcc/testsuite/gcc.dg/pack-test-5.c
  ae1be7c8a9157aa5984b4ba25923b8e3  gcc/testsuite/gcc.dg/packed-array.c
! 822ac96689508a423d828561e32cc2fb  gcc/testsuite/gcc.dg/packed-vla.c
  59043297eedad056999e984cd9dc5d69  gcc/testsuite/gcc.dg/param-type-mismatch-2.c
  6bd42b2459fb4b0024685baff0c8edbd  gcc/testsuite/gcc.dg/param-type-mismatch.c
  ddeb76cd34e791893c0f539fdab879bb  gcc/testsuite/gcc.dg/params/LICENSE
  dbe49534045bebcd393d3d0d5ccec28a  gcc/testsuite/gcc.dg/params/README
! 2c554c73cf6c37c1b3931d6affe736a7  gcc/testsuite/gcc.dg/params/blocksort-part.c
! c80beeef7d48a2f24c7ffda47307d8af  gcc/testsuite/gcc.dg/params/params.exp
  2bfe07faa645e00622fecd5d6eb93e5d  gcc/testsuite/gcc.dg/parm-forwdecl-1.c
  64cab05bc7533e03a76ec901dec2853f  gcc/testsuite/gcc.dg/parm-forwdecl-2.c
  acdeeb693086bdb4ca6cdde57d9eb91d  gcc/testsuite/gcc.dg/parm-forwdecl-3.c
--- 48521,48533 ----
  607b0e00950aa58d0248b10a56cb344c  gcc/testsuite/gcc.dg/pack-test-4.c
  c618f958af883e26030aeef384665b7a  gcc/testsuite/gcc.dg/pack-test-5.c
  ae1be7c8a9157aa5984b4ba25923b8e3  gcc/testsuite/gcc.dg/packed-array.c
! 992b6a49e61e44c0269a8e90ccc468c1  gcc/testsuite/gcc.dg/packed-vla.c
  59043297eedad056999e984cd9dc5d69  gcc/testsuite/gcc.dg/param-type-mismatch-2.c
  6bd42b2459fb4b0024685baff0c8edbd  gcc/testsuite/gcc.dg/param-type-mismatch.c
  ddeb76cd34e791893c0f539fdab879bb  gcc/testsuite/gcc.dg/params/LICENSE
  dbe49534045bebcd393d3d0d5ccec28a  gcc/testsuite/gcc.dg/params/README
! 72fd72bf411d9a81e4369f95ab44e6d1  gcc/testsuite/gcc.dg/params/blocksort-part.c
! c64aa393c19eaaab57c4e8350d91f024  gcc/testsuite/gcc.dg/params/params.exp
  2bfe07faa645e00622fecd5d6eb93e5d  gcc/testsuite/gcc.dg/parm-forwdecl-1.c
  64cab05bc7533e03a76ec901dec2853f  gcc/testsuite/gcc.dg/parm-forwdecl-2.c
  acdeeb693086bdb4ca6cdde57d9eb91d  gcc/testsuite/gcc.dg/parm-forwdecl-3.c
*************** acdeeb693086bdb4ca6cdde57d9eb91d  gcc/te
*** 45871,45878 ****
  0e45a9bd38177de57173bfe1ffeb6720  gcc/testsuite/gcc.dg/parm-impl-decl-1.c
  7e69b60a64c1d1dc0dae6a9c39bd12e9  gcc/testsuite/gcc.dg/parm-impl-decl-2.c
  15859198e4fe3d67c71e1ece95a10f7f  gcc/testsuite/gcc.dg/parm-impl-decl-3.c
! e13b33decc89989d8524adc6f37e6da0  gcc/testsuite/gcc.dg/parm-incomplete-1.c
! 68d3a8213622f118a0bb3ac77563a113  gcc/testsuite/gcc.dg/parm-mismatch-1.c
  1ee87658e00ffbf9d7c7c348af6c7dba  gcc/testsuite/gcc.dg/parse-decl-after-if.c
  3feeaf5cc937e21581fb0ece0a31ba9b  gcc/testsuite/gcc.dg/parse-decl-after-label.c
  f72962480c7f89db1094a6e142c894f6  gcc/testsuite/gcc.dg/parse-else-error-2.c
--- 48535,48542 ----
  0e45a9bd38177de57173bfe1ffeb6720  gcc/testsuite/gcc.dg/parm-impl-decl-1.c
  7e69b60a64c1d1dc0dae6a9c39bd12e9  gcc/testsuite/gcc.dg/parm-impl-decl-2.c
  15859198e4fe3d67c71e1ece95a10f7f  gcc/testsuite/gcc.dg/parm-impl-decl-3.c
! fe3904af8f93f7b9b962e092fd89f9b3  gcc/testsuite/gcc.dg/parm-incomplete-1.c
! 90971d2754aa51803e292bcfac758810  gcc/testsuite/gcc.dg/parm-mismatch-1.c
  1ee87658e00ffbf9d7c7c348af6c7dba  gcc/testsuite/gcc.dg/parse-decl-after-if.c
  3feeaf5cc937e21581fb0ece0a31ba9b  gcc/testsuite/gcc.dg/parse-decl-after-label.c
  f72962480c7f89db1094a6e142c894f6  gcc/testsuite/gcc.dg/parse-else-error-2.c
*************** b9a08aaa422f5ca3ab727b027071f5d8  gcc/te
*** 45888,45894 ****
  666ba78dace0f606b77204e1f17211c8  gcc/testsuite/gcc.dg/pch/common-1.hs
  a8410569e57b45601c3b3c358eec418e  gcc/testsuite/gcc.dg/pch/counter-1.c
  fddfaf8a4210cfff18b4df007e18bc46  gcc/testsuite/gcc.dg/pch/counter-1.hs
! 9c582829768cccd910cd39e099e407ef  gcc/testsuite/gcc.dg/pch/counter-2.c
  93e2082c34d1b021a32a76a9f1a53695  gcc/testsuite/gcc.dg/pch/counter-2.hs
  f1404d8923d85596fa094bd40975a7f1  gcc/testsuite/gcc.dg/pch/counter-3.c
  fa2084e313b35b180d22733dbfa0e8de  gcc/testsuite/gcc.dg/pch/counter-3.hs
--- 48552,48558 ----
  666ba78dace0f606b77204e1f17211c8  gcc/testsuite/gcc.dg/pch/common-1.hs
  a8410569e57b45601c3b3c358eec418e  gcc/testsuite/gcc.dg/pch/counter-1.c
  fddfaf8a4210cfff18b4df007e18bc46  gcc/testsuite/gcc.dg/pch/counter-1.hs
! dbd7dcb0a92df840aa1dc3782450f72d  gcc/testsuite/gcc.dg/pch/counter-2.c
  93e2082c34d1b021a32a76a9f1a53695  gcc/testsuite/gcc.dg/pch/counter-2.hs
  f1404d8923d85596fa094bd40975a7f1  gcc/testsuite/gcc.dg/pch/counter-3.c
  fa2084e313b35b180d22733dbfa0e8de  gcc/testsuite/gcc.dg/pch/counter-3.hs
*************** ff6e426707386e5658b6752e1e97b123  gcc/te
*** 45910,45915 ****
--- 48574,48581 ----
  01a26447e03ca7e6c0ad1508272bffa1  gcc/testsuite/gcc.dg/pch/decl-4.hs
  651eba93bcf879f9e49770f3461aa755  gcc/testsuite/gcc.dg/pch/decl-5.c
  ef3cf597ad4697747c0cc013f737177d  gcc/testsuite/gcc.dg/pch/decl-5.hs
+ 44b3d8745269fefa88d45aa3ae20de3c  gcc/testsuite/gcc.dg/pch/embed-1.c
+ 193227884c7d21b6c0280b2253b68e33  gcc/testsuite/gcc.dg/pch/embed-1.hs
  7cb3428cd79fae4adbab38b1e290d90c  gcc/testsuite/gcc.dg/pch/empty.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/pch/empty.hs
  7d24b0a5142471dafdd891aa765efe52  gcc/testsuite/gcc.dg/pch/except-1.c
*************** b01e42858e0423266a42ce48f5963765  gcc/te
*** 45945,45951 ****
  9dfd3f4bded8093e1bd9fe58412b43c6  gcc/testsuite/gcc.dg/pch/macro-4.hs
  38924a9508ec357e6f2e5a1cc2352b3d  gcc/testsuite/gcc.dg/pch/main-file-warnings.c
  0694410f427657d40670c2499c1ff27c  gcc/testsuite/gcc.dg/pch/main-file-warnings.hs
! 3aa15254f06dd6c939f898b39ab1b402  gcc/testsuite/gcc.dg/pch/pch.exp
  963bc3763085c2126d782eeeb9c7ab62  gcc/testsuite/gcc.dg/pch/pr112319.c
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/gcc.dg/pch/pr112319.hs
  d4141b7ac70c28b7c83f42cea80032d1  gcc/testsuite/gcc.dg/pch/pr66343-1.c
--- 48611,48617 ----
  9dfd3f4bded8093e1bd9fe58412b43c6  gcc/testsuite/gcc.dg/pch/macro-4.hs
  38924a9508ec357e6f2e5a1cc2352b3d  gcc/testsuite/gcc.dg/pch/main-file-warnings.c
  0694410f427657d40670c2499c1ff27c  gcc/testsuite/gcc.dg/pch/main-file-warnings.hs
! b0343a9097bef951afa621994fa46a6b  gcc/testsuite/gcc.dg/pch/pch.exp
  963bc3763085c2126d782eeeb9c7ab62  gcc/testsuite/gcc.dg/pch/pr112319.c
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/gcc.dg/pch/pr112319.hs
  d4141b7ac70c28b7c83f42cea80032d1  gcc/testsuite/gcc.dg/pch/pr66343-1.c
*************** fac1b885206212e0bfdeb3be1bc37207  gcc/te
*** 45956,45961 ****
--- 48622,48629 ----
  1aa1688bedcfdaca9a0ec230ff4300a1  gcc/testsuite/gcc.dg/pch/pr66343-3.hs
  10e7aa3c9c88169c37fec51ab85d804b  gcc/testsuite/gcc.dg/pch/pushpop-1.c
  8dd7fa6bfb17e08908378d5179a15dcd  gcc/testsuite/gcc.dg/pch/pushpop-1.hs
+ 441eecc2b54d2d0937c2a93716eff4ac  gcc/testsuite/gcc.dg/pch/pushpop-2.c
+ fa3fd4ac35ffdf1f9530b566ed80f01b  gcc/testsuite/gcc.dg/pch/pushpop-2.hs
  eaf0e6d72d4b5414d63356d52ff4d656  gcc/testsuite/gcc.dg/pch/rwsr-pch.c
  f35d8d222d6874128289556b09c05e73  gcc/testsuite/gcc.dg/pch/rwsr-pch.hs
  7005218423a218c5f4782184b74041c8  gcc/testsuite/gcc.dg/pch/save-temps-1.c
*************** f765638f45ffbbeedb011e00c6425181  gcc/te
*** 45985,45999 ****
  b896794f81fc191be4cef03999d2a872  gcc/testsuite/gcc.dg/pch/warn-1.c
  581c36ee7a8e61fb33c629ef34ae8cf1  gcc/testsuite/gcc.dg/pch/warn-1.hs
  69d13c9ba46d3a3e9a7fb87a20a4bcf2  gcc/testsuite/gcc.dg/pedwarn-init.c
! 98ac7bdeef67de43ea5be3318707dea1  gcc/testsuite/gcc.dg/permerror-default.c
! 283bdf08f9e5c1395be07d024b26dd35  gcc/testsuite/gcc.dg/permerror-fpermissive-nowarning.c
! 66045a5ecaf682009459299205f86b84  gcc/testsuite/gcc.dg/permerror-fpermissive.c
  b0065dc535719ec50565df230d182677  gcc/testsuite/gcc.dg/permerror-gnu89-nopermissive.c
  6ddeeae8665e98f41152e41830ac8182  gcc/testsuite/gcc.dg/permerror-gnu89-pedantic.c
  7503c6702eb1b48b8950652b73036be8  gcc/testsuite/gcc.dg/permerror-gnu89.c
! b93f7039f542cb7c899a3af96273b3f5  gcc/testsuite/gcc.dg/permerror-noerror.c
! ccddc9fbba3677088d9e65eb7d542de4  gcc/testsuite/gcc.dg/permerror-nowarning.c
! 23169080c4526fbbad90b99bf9d34649  gcc/testsuite/gcc.dg/permerror-pedantic.c
  aff42fd022e1da5e6f72d1a882a88323  gcc/testsuite/gcc.dg/permerror-system.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg-override.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg.c
--- 48653,48667 ----
  b896794f81fc191be4cef03999d2a872  gcc/testsuite/gcc.dg/pch/warn-1.c
  581c36ee7a8e61fb33c629ef34ae8cf1  gcc/testsuite/gcc.dg/pch/warn-1.hs
  69d13c9ba46d3a3e9a7fb87a20a4bcf2  gcc/testsuite/gcc.dg/pedwarn-init.c
! 630450c94f8133fff191b18595905cc8  gcc/testsuite/gcc.dg/permerror-default.c
! 42e504b083be86532b36a11bb09a590e  gcc/testsuite/gcc.dg/permerror-fpermissive-nowarning.c
! e57f7b9438aebc7ff82105accef020ad  gcc/testsuite/gcc.dg/permerror-fpermissive.c
  b0065dc535719ec50565df230d182677  gcc/testsuite/gcc.dg/permerror-gnu89-nopermissive.c
  6ddeeae8665e98f41152e41830ac8182  gcc/testsuite/gcc.dg/permerror-gnu89-pedantic.c
  7503c6702eb1b48b8950652b73036be8  gcc/testsuite/gcc.dg/permerror-gnu89.c
! d24a63f307dcc0c48997341ada0fc8b8  gcc/testsuite/gcc.dg/permerror-noerror.c
! b25c3b84f0e68328249f7ef124e4a4c5  gcc/testsuite/gcc.dg/permerror-nowarning.c
! 0294d32c5fb2552dc75eced809ca7a8d  gcc/testsuite/gcc.dg/permerror-pedantic.c
  aff42fd022e1da5e6f72d1a882a88323  gcc/testsuite/gcc.dg/permerror-system.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg-override.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg.c
*************** d9f2439f176b4f73afa0c30baa468855  gcc/te
*** 46012,46031 ****
  72712f41dcc921ba1827000fc0809a9c  gcc/testsuite/gcc.dg/pie-link.c
  000d3a6c8dca7e54f5be771190d10f29  gcc/testsuite/gcc.dg/pie-static-1.c
  be052bceddbf752586b645bc9e048e9c  gcc/testsuite/gcc.dg/pie-static-2.c
! e1ed42c4bc1c88149c85faa52b8067a9  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.c
! 9c415433bc5a652381efaa59d7a31911  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.c
! 11fdb0f22cf9200df3d2c062fe870719  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c
! 19e35f702b7ccbc8d53b64e4f26b945a  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c
  cb4eac35bee8576a953631c035c2ff66  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
  47f23deacf7629644591a6e9f024a065  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
  77898c598fcadce69594a47533fa5d08  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_New.c
  ff7a88cd17d96503e8ecf7bfe494db6e  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyLong_FromLong.c
  bddc0bc123e5a7cbd3c2a7e87bda5fcd  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-no-Python-h.c
  7ce38991ee9680f25520e34f0eb8e02c  gcc/testsuite/gcc.dg/plugin/crash-test-ice-sarif.c
  25e14555a1456447b35858de17d08ee9  gcc/testsuite/gcc.dg/plugin/crash-test-ice-stderr.c
  3333d94ad6aeaef96f8f360fbb86bc40  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-sarif.c
  6a8964ce93ffc0bd30309c60194183b2  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-stderr.c
! 07e231a98872197c9ea4f93a023099fe  gcc/testsuite/gcc.dg/plugin/crash_test_plugin.c
  146ffa25d8a6444346ca2a51bfa748ec  gcc/testsuite/gcc.dg/plugin/diagnostic-group-test-1.c
  901114feb3fc4bc44a06034fc6abcbff  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-inline-events-1.c
  a0bce3f622c2549614e45f5a9afe9c88  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-inline-events-2.c
--- 48680,48704 ----
  72712f41dcc921ba1827000fc0809a9c  gcc/testsuite/gcc.dg/pie-link.c
  000d3a6c8dca7e54f5be771190d10f29  gcc/testsuite/gcc.dg/pie-static-1.c
  be052bceddbf752586b645bc9e048e9c  gcc/testsuite/gcc.dg/pie-static-2.c
! f571163e3d5097d7284f7b5a7d510255  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc
! e447e769e7091606bd4e1c50fc48a916  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.cc
! eeaffaaa8beecba89331ec9163e6865d  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc
! 68fe20b520cadd2d0ee3237b99e5cad5  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc
  cb4eac35bee8576a953631c035c2ff66  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
  47f23deacf7629644591a6e9f024a065  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
  77898c598fcadce69594a47533fa5d08  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_New.c
  ff7a88cd17d96503e8ecf7bfe494db6e  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyLong_FromLong.c
  bddc0bc123e5a7cbd3c2a7e87bda5fcd  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-no-Python-h.c
+ 2cc6540e222d84693af7c1dfbfa8c0b6  gcc/testsuite/gcc.dg/plugin/crash-test-ice-in-header-sarif-2.1.c
+ 54bb8177ac81e0bb70315d3d9b50bb98  gcc/testsuite/gcc.dg/plugin/crash-test-ice-in-header-sarif-2.2.c
+ 4c84b188b2a3ece6dbe1008f9f4a454e  gcc/testsuite/gcc.dg/plugin/crash-test-ice-in-header-sarif-2_1.py
+ c8b296cff91e0dc2cbddba1d03bda22e  gcc/testsuite/gcc.dg/plugin/crash-test-ice-in-header-sarif-2_2.py
+ 98c8542823586860a335df8e4a87940b  gcc/testsuite/gcc.dg/plugin/crash-test-ice-in-header.h
  7ce38991ee9680f25520e34f0eb8e02c  gcc/testsuite/gcc.dg/plugin/crash-test-ice-sarif.c
  25e14555a1456447b35858de17d08ee9  gcc/testsuite/gcc.dg/plugin/crash-test-ice-stderr.c
  3333d94ad6aeaef96f8f360fbb86bc40  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-sarif.c
  6a8964ce93ffc0bd30309c60194183b2  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-stderr.c
! 07e231a98872197c9ea4f93a023099fe  gcc/testsuite/gcc.dg/plugin/crash_test_plugin.cc
  146ffa25d8a6444346ca2a51bfa748ec  gcc/testsuite/gcc.dg/plugin/diagnostic-group-test-1.c
  901114feb3fc4bc44a06034fc6abcbff  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-inline-events-1.c
  a0bce3f622c2549614e45f5a9afe9c88  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-inline-events-2.c
*************** ab9b438d79da41ae2faa25073b1f68ff  gcc/te
*** 46038,46052 ****
  49685be9087563d411cc61352a593d84  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-2.c
  48a41768247d6b150673cba3b15e815e  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c
  c5d2a11e1172f48545387ed92bd56a11  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-4.c
  ce81f72fcd363c22f9fce9cd0b0c76b1  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata.c
  a6a63e4d673f32d534d3afc18a7f8218  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-1.c
! 2559315813eed7c53c721794d2abb2e6  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.c
  5f17663596e733b7a39a6b737dc9ea56  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-3.c
  9c2ec1cc8d8b83dbb2bda70a9f54dcf4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.c
  d69b80e0a539be7739a33736ee0e8aaf  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-5.c
! 5e39276df00ec8320b4e62745c7f8884  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c
! 15882a5a2b81645ce041c5415a4f7f92  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c
! afc9d2ee9a6e60022a97d974b2b241a9  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c
  7049acd785444dd8554dd09b160777de  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v1.c
  d7b8d6a01abe683de027809614a2b63f  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v2.c
  d97d9296064e2548698cc70191b940fe  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c
--- 48711,48734 ----
  49685be9087563d411cc61352a593d84  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-2.c
  48a41768247d6b150673cba3b15e815e  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c
  c5d2a11e1172f48545387ed92bd56a11  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-4.c
+ 6efed2ab62fc17f3db08dc04e528fe7a  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-sarif.c
+ ee3ed621610bc5bdf108f395f4789d4e  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-sarif.py
  ce81f72fcd363c22f9fce9cd0b0c76b1  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata.c
+ 8bb6f1549a3f246f5d74433c28016694  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-sarif.c
+ 8ca83dcbe01e2a05522660abb59deb5b  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-sarif.py
+ d4d4725b28cf4bff5882038f4e68b588  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-indented-show-levels.c
+ bbfef80ea240ea4caf713082caf0f5d2  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-indented-unicode.c
+ df5927e5a5b0b123f415b49583084acd  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-indented.c
+ a7db561cc35fce636b1dca4e7394ba77  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-plain.c
  a6a63e4d673f32d534d3afc18a7f8218  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-1.c
! e6292b248e0dad9158fa48032d0b745e  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.c
  5f17663596e733b7a39a6b737dc9ea56  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-3.c
  9c2ec1cc8d8b83dbb2bda70a9f54dcf4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.c
  d69b80e0a539be7739a33736ee0e8aaf  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-5.c
! a58becab25d695c02613dbc4348f124b  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c
! 3c5192534d44afd6ef8195407225eeb4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c
! e3e97716f12c8844ebfbdbbd534e6ff2  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.py
! 85c82020846e270c018c2750035d0bdf  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c
  7049acd785444dd8554dd09b160777de  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v1.c
  d7b8d6a01abe683de027809614a2b63f  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v2.c
  d97d9296064e2548698cc70191b940fe  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c
*************** bb20191ab0ad6e0d6ba368003d857339  gcc/te
*** 46067,46093 ****
  ac52c5d4de0c71ac6754e0b97aa2d1aa  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-none.c
  42f7a9a0ce93b9a8f3456309a30456af  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-bw.c
  60342111ed9bfef70e8686e973bb3988  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-color.c
! 46d5c5647d51b1cf4e1ca4c64ee9ba2f  gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c
! 10ccd3cf0ee076345e4a4996a5812ab6  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.c
! db3e6ef9ec4da923b133090fdbe255cc  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.c
! 55c90f2e521240707723c45e6dbb1902  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.c
! 98080798d15afb93bfdfa81a09458654  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
! 0ca7d331a711c6a8a9a4380f33540040  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
! 1ccc719787fbe42fe419d1cbaff567f7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.c
! b6d4440d9bc5c3c1e7f4a283f75cdff7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c
! 5717eba351963438141001f9817dac7f  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c
  07558668b4c054118c12c8514bb94698  gcc/testsuite/gcc.dg/plugin/dump-1.c
  88c83e306ac4f214fd9bc80a3eba0054  gcc/testsuite/gcc.dg/plugin/dump-2.c
! 7427e09de26af0b57094c9728b35ea7d  gcc/testsuite/gcc.dg/plugin/dump_plugin.c
  3364b35e14d37af3ceb073f305b97409  gcc/testsuite/gcc.dg/plugin/expensive-selftests-1.c
! e7f918119de388df3b7431c1eb465ace  gcc/testsuite/gcc.dg/plugin/expensive_selftests_plugin.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/finish_unit-test-1.c
! f73dcf28a556d348a80ecf63c3650bad  gcc/testsuite/gcc.dg/plugin/finish_unit_plugin.c
  232d54c69029a45c46660ba009ebdf28  gcc/testsuite/gcc.dg/plugin/ggcplug-test-1.c
! 7355026eb791452501fe83f429c14411  gcc/testsuite/gcc.dg/plugin/ggcplug.c
  22cbcbb280a3987fb49a74754543f9f1  gcc/testsuite/gcc.dg/plugin/gil-1.c
  c1994b3e108cc9c7befbc1b7c93a70ff  gcc/testsuite/gcc.dg/plugin/gil.h
! d6e1a3de2198d157be20ab4fe6fedd70  gcc/testsuite/gcc.dg/plugin/infoleak-1.c
  aa4d22479edd9960ca259055206dfce9  gcc/testsuite/gcc.dg/plugin/infoleak-2.c
  1696da0ec083332fc30ee3ce442eb320  gcc/testsuite/gcc.dg/plugin/infoleak-3.c
  d97822eab6d3cec4a429124e0ebf4dad  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2011-1078-1.c
--- 48749,48778 ----
  ac52c5d4de0c71ac6754e0b97aa2d1aa  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-none.c
  42f7a9a0ce93b9a8f3456309a30456af  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-bw.c
  60342111ed9bfef70e8686e973bb3988  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-color.c
! fbb9711baad09cde99957e2e6993f7e4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-xhtml-1.c
! 87590f0c35174fee5021a11d87eb5696  gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc
! 760ef2ce64f353acb078fd7035069296  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.cc
! db3e6ef9ec4da923b133090fdbe255cc  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.cc
! 55c90f2e521240707723c45e6dbb1902  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.cc
! 75e9c4ca32ac5c1329afb3fd1be6a829  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_nesting.cc
! a8b508b3d17c3ec120061518cc8349d5  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc
! 0a37946450abc0b85ed4c74f29640091  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc
! 1ccc719787fbe42fe419d1cbaff567f7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.cc
! b6d4440d9bc5c3c1e7f4a283f75cdff7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.cc
! 5717eba351963438141001f9817dac7f  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.cc
! fa82e63478d88ceeb08a2ed176a23d72  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc
  07558668b4c054118c12c8514bb94698  gcc/testsuite/gcc.dg/plugin/dump-1.c
  88c83e306ac4f214fd9bc80a3eba0054  gcc/testsuite/gcc.dg/plugin/dump-2.c
! 2f6c0c2319ecba4687d8ba0acc7e8ffd  gcc/testsuite/gcc.dg/plugin/dump_plugin.cc
  3364b35e14d37af3ceb073f305b97409  gcc/testsuite/gcc.dg/plugin/expensive-selftests-1.c
! 25598979f9d3916bc01148a4a65c04ee  gcc/testsuite/gcc.dg/plugin/expensive_selftests_plugin.cc
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/finish_unit-test-1.c
! f73dcf28a556d348a80ecf63c3650bad  gcc/testsuite/gcc.dg/plugin/finish_unit_plugin.cc
  232d54c69029a45c46660ba009ebdf28  gcc/testsuite/gcc.dg/plugin/ggcplug-test-1.c
! 2331c3147cd524c91fdbedd321637cb0  gcc/testsuite/gcc.dg/plugin/ggcplug.cc
  22cbcbb280a3987fb49a74754543f9f1  gcc/testsuite/gcc.dg/plugin/gil-1.c
  c1994b3e108cc9c7befbc1b7c93a70ff  gcc/testsuite/gcc.dg/plugin/gil.h
! 753ce59b3b9a821c8c22798923a3318b  gcc/testsuite/gcc.dg/plugin/infoleak-1.c
  aa4d22479edd9960ca259055206dfce9  gcc/testsuite/gcc.dg/plugin/infoleak-2.c
  1696da0ec083332fc30ee3ce442eb320  gcc/testsuite/gcc.dg/plugin/infoleak-3.c
  d97822eab6d3cec4a429124e0ebf4dad  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2011-1078-1.c
*************** b05ae8584845daeb59ab2a2d859880ad  gcc/te
*** 46097,46103 ****
  5778f2611e7404e19c858b6e099759b1  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2017-18550-1.c
  1bf6e41b018b4dbc083435bfec8eca81  gcc/testsuite/gcc.dg/plugin/infoleak-antipatterns-1.c
  f22c386d32e16704e73e0ad284bf1ad1  gcc/testsuite/gcc.dg/plugin/infoleak-fixit-1.c
! 02ffae050507325cf99ff537048a6e3c  gcc/testsuite/gcc.dg/plugin/infoleak-net-ethtool-ioctl.c
  943dd958fccd6601ad0d896830982ad8  gcc/testsuite/gcc.dg/plugin/infoleak-pr112969.c
  325d240bf4ab01e4f4a4816c0af921de  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-1.c
  3063e30cdafbd67110bf3f451a2644d1  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-2.c
--- 48782,48788 ----
  5778f2611e7404e19c858b6e099759b1  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2017-18550-1.c
  1bf6e41b018b4dbc083435bfec8eca81  gcc/testsuite/gcc.dg/plugin/infoleak-antipatterns-1.c
  f22c386d32e16704e73e0ad284bf1ad1  gcc/testsuite/gcc.dg/plugin/infoleak-fixit-1.c
! 54520c74f51e0444950de4e843669e0e  gcc/testsuite/gcc.dg/plugin/infoleak-net-ethtool-ioctl.c
  943dd958fccd6601ad0d896830982ad8  gcc/testsuite/gcc.dg/plugin/infoleak-pr112969.c
  325d240bf4ab01e4f4a4816c0af921de  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-1.c
  3063e30cdafbd67110bf3f451a2644d1  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-2.c
*************** b584a46252319e63ce8a18cd3d89f07c  gcc/te
*** 46109,46141 ****
  8bc743f30102ffbfb1bc6a409fc63a2e  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173-2.h
  6d6028de00b79eb5be6f42b7a4332c90  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
  96ff609825b6520f9e9cc6f866930933  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.h
! 7ed2331e1a7f3114d7589d237e39abde  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
  de7a6b85ff1667e6ef4b89117e774f2d  gcc/testsuite/gcc.dg/plugin/must-tail-call-2.c
! 4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.c
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
! 91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
! 77079e24bd64da7841a69b1545b100bc  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
  6ebec5019cc6ef98e434c9aa7746e980  gcc/testsuite/gcc.dg/plugin/plugindir4.c
! db9d17878238b5a16b755cacbf33fdda  gcc/testsuite/gcc.dg/plugin/poly-int-01_plugin.c
! 1f0246249b308d498be8ab39c4fc580f  gcc/testsuite/gcc.dg/plugin/poly-int-02_plugin.c
! ffa9971268cd097ce7dd9f8b74a6c52e  gcc/testsuite/gcc.dg/plugin/poly-int-03_plugin.c
! efa708c21ad7551e498d6b97aa054cb5  gcc/testsuite/gcc.dg/plugin/poly-int-04_plugin.c
! 70ee3fe3dcb38410134a493575526c6f  gcc/testsuite/gcc.dg/plugin/poly-int-05_plugin.c
! f932a68db380ed55129ab7dc6df6698a  gcc/testsuite/gcc.dg/plugin/poly-int-06_plugin.c
! 751abadab9f4d44286f1ee12966ab705  gcc/testsuite/gcc.dg/plugin/poly-int-07_plugin.c
  57f33c5cba4ed25369a584b1ff775ed0  gcc/testsuite/gcc.dg/plugin/poly-int-test-1.c
  ecf889c1d7dbb40148c64cf892a125b3  gcc/testsuite/gcc.dg/plugin/poly-int-tests.h
  5d9a802715d28b4b62c9db362346bb3e  gcc/testsuite/gcc.dg/plugin/pr87562-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/plugin/pr87562-b.h
  dfb4077095a9a1767f9d3405363543a5  gcc/testsuite/gcc.dg/plugin/self-assign-test-1.c
  f6e137597dce4650ba1565206e539ea7  gcc/testsuite/gcc.dg/plugin/self-assign-test-2.c
! e02805e9ce58a796cf7d12cfc4e32dc7  gcc/testsuite/gcc.dg/plugin/selfassign.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/start_unit-test-1.c
! 64321dc1b161184739b07f96a1981ab5  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
  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
--- 48794,48826 ----
  8bc743f30102ffbfb1bc6a409fc63a2e  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173-2.h
  6d6028de00b79eb5be6f42b7a4332c90  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
  96ff609825b6520f9e9cc6f866930933  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.h
! d14b8eacad95240d9a9693740543d326  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
  de7a6b85ff1667e6ef4b89117e774f2d  gcc/testsuite/gcc.dg/plugin/must-tail-call-2.c
! 4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.cc
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
! 91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.cc
! 092914f07826463324254b782d57d525  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
  6ebec5019cc6ef98e434c9aa7746e980  gcc/testsuite/gcc.dg/plugin/plugindir4.c
! db9d17878238b5a16b755cacbf33fdda  gcc/testsuite/gcc.dg/plugin/poly-int-01_plugin.cc
! 1f0246249b308d498be8ab39c4fc580f  gcc/testsuite/gcc.dg/plugin/poly-int-02_plugin.cc
! ffa9971268cd097ce7dd9f8b74a6c52e  gcc/testsuite/gcc.dg/plugin/poly-int-03_plugin.cc
! efa708c21ad7551e498d6b97aa054cb5  gcc/testsuite/gcc.dg/plugin/poly-int-04_plugin.cc
! 70ee3fe3dcb38410134a493575526c6f  gcc/testsuite/gcc.dg/plugin/poly-int-05_plugin.cc
! f932a68db380ed55129ab7dc6df6698a  gcc/testsuite/gcc.dg/plugin/poly-int-06_plugin.cc
! 751abadab9f4d44286f1ee12966ab705  gcc/testsuite/gcc.dg/plugin/poly-int-07_plugin.cc
  57f33c5cba4ed25369a584b1ff775ed0  gcc/testsuite/gcc.dg/plugin/poly-int-test-1.c
  ecf889c1d7dbb40148c64cf892a125b3  gcc/testsuite/gcc.dg/plugin/poly-int-tests.h
  5d9a802715d28b4b62c9db362346bb3e  gcc/testsuite/gcc.dg/plugin/pr87562-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/plugin/pr87562-b.h
  dfb4077095a9a1767f9d3405363543a5  gcc/testsuite/gcc.dg/plugin/self-assign-test-1.c
  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
*************** cde77cccdd4200c20b184e23ad8888a2  gcc/te
*** 46159,46167 ****
  87888cf76c02ea963a02cf893bb01f3c  gcc/testsuite/gcc.dg/plugin/taint-pr112977.c
  8432194cb08e7a4a524b574b0b640535  gcc/testsuite/gcc.dg/plugin/test-uaccess.h
  0085c872ae54e8abe011c707f4b59882  gcc/testsuite/gcc.dg/plugin/wide-int-test-1.c
! 8afb11ca2fdffe4c8ee020a4c15c0e25  gcc/testsuite/gcc.dg/plugin/wide-int_plugin.c
  0867fa267e341a1f2e7de0b0dc27e1bb  gcc/testsuite/gcc.dg/pointer-arith-1.c
  a64f2c08972aebe3cce7358406f0613e  gcc/testsuite/gcc.dg/pointer-arith-10.c
  4536f8720ecea01af7fb5ca434df644d  gcc/testsuite/gcc.dg/pointer-arith-2.c
  deb07539efe98a4de884ba88501c5ffe  gcc/testsuite/gcc.dg/pointer-arith-3.c
  9345bf191a21c7e9dc4797443059b5b5  gcc/testsuite/gcc.dg/pointer-arith-4.c
--- 48844,48854 ----
  87888cf76c02ea963a02cf893bb01f3c  gcc/testsuite/gcc.dg/plugin/taint-pr112977.c
  8432194cb08e7a4a524b574b0b640535  gcc/testsuite/gcc.dg/plugin/test-uaccess.h
  0085c872ae54e8abe011c707f4b59882  gcc/testsuite/gcc.dg/plugin/wide-int-test-1.c
! 8afb11ca2fdffe4c8ee020a4c15c0e25  gcc/testsuite/gcc.dg/plugin/wide-int_plugin.cc
  0867fa267e341a1f2e7de0b0dc27e1bb  gcc/testsuite/gcc.dg/pointer-arith-1.c
  a64f2c08972aebe3cce7358406f0613e  gcc/testsuite/gcc.dg/pointer-arith-10.c
+ fb94565b2862bcd31d720e0844a95125  gcc/testsuite/gcc.dg/pointer-arith-11.c
+ 482ca206750b2195f04089ee1999d95e  gcc/testsuite/gcc.dg/pointer-arith-12.c
  4536f8720ecea01af7fb5ca434df644d  gcc/testsuite/gcc.dg/pointer-arith-2.c
  deb07539efe98a4de884ba88501c5ffe  gcc/testsuite/gcc.dg/pointer-arith-3.c
  9345bf191a21c7e9dc4797443059b5b5  gcc/testsuite/gcc.dg/pointer-arith-4.c
*************** c55115022c217aa6026425a6847a9846  gcc/te
*** 46172,46195 ****
  cec4c2edab704d04ba9649b787ed5274  gcc/testsuite/gcc.dg/pointer-arith-9.c
  65456225fab08ebfa295e644e7378302  gcc/testsuite/gcc.dg/pointer-array-atomic-2.c
  b667b5f1f8c62505fc01d9178b47459d  gcc/testsuite/gcc.dg/pointer-array-atomic.c
! 40af08aff371e27231863e7e54014bf6  gcc/testsuite/gcc.dg/pointer-array-quals-1.c
! d7d0ec9427f5c578b1a1539d6c4107cf  gcc/testsuite/gcc.dg/pointer-array-quals-2.c
  098a9eb0b304a107d7e16d34e57694dd  gcc/testsuite/gcc.dg/pointer-range-check-1.c
  f5883b8a2323e7318237e3750e037d52  gcc/testsuite/gcc.dg/pointer-range-check-2.c
  560e02ab06396c9dce71b047a8a96f79  gcc/testsuite/gcc.dg/postincr-1.c
  7798275b8b0de282f953e3c97703b235  gcc/testsuite/gcc.dg/pow-sqrt-1.c
  4ad1671efbaffa754dd12b7d3fb0c24f  gcc/testsuite/gcc.dg/pow-sqrt-2.c
  fd3265437095da6aff9d665f55b837b2  gcc/testsuite/gcc.dg/pow-sqrt-3.c
! d0f47c969958818a7b10cdf3e0a873d7  gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c
  e037582257371f62a3a039df4321225d  gcc/testsuite/gcc.dg/pow-sqrt.x
  4a843b8a906276e6a40c22d05fb6a8e1  gcc/testsuite/gcc.dg/pr100142.c
! 0869c29788d11616cd48af5ae7173721  gcc/testsuite/gcc.dg/pr100225.c
  1297b760f49fded84008e039bc67829a  gcc/testsuite/gcc.dg/pr100239.c
  0f83e7c9f809d3279fa6049fdf043f1e  gcc/testsuite/gcc.dg/pr100292.c
  30bd1d581d3df78bbe6e79d3c9a0315e  gcc/testsuite/gcc.dg/pr100349.c
  633c569152621a26f5adb2fd40949b36  gcc/testsuite/gcc.dg/pr100373.c
  5ca809ef622425c422640fc82af912d6  gcc/testsuite/gcc.dg/pr100414.c
  0427d40b4e082cce256dba416ad5965d  gcc/testsuite/gcc.dg/pr100464.c
  920a8638d9df8cce219be521aa35bf72  gcc/testsuite/gcc.dg/pr100509.c
  fc99474ef3ac8fa598ea826d59670dc2  gcc/testsuite/gcc.dg/pr100512.c
  11146764fafb29a1319cb0b5d9f09044  gcc/testsuite/gcc.dg/pr100520.c
--- 48859,48883 ----
  cec4c2edab704d04ba9649b787ed5274  gcc/testsuite/gcc.dg/pointer-arith-9.c
  65456225fab08ebfa295e644e7378302  gcc/testsuite/gcc.dg/pointer-array-atomic-2.c
  b667b5f1f8c62505fc01d9178b47459d  gcc/testsuite/gcc.dg/pointer-array-atomic.c
! a5319bd104f29d7fce777870a81fad4e  gcc/testsuite/gcc.dg/pointer-array-quals-1.c
! 5c329c22bd23faf7b838de0e4cbb7af1  gcc/testsuite/gcc.dg/pointer-array-quals-2.c
  098a9eb0b304a107d7e16d34e57694dd  gcc/testsuite/gcc.dg/pointer-range-check-1.c
  f5883b8a2323e7318237e3750e037d52  gcc/testsuite/gcc.dg/pointer-range-check-2.c
  560e02ab06396c9dce71b047a8a96f79  gcc/testsuite/gcc.dg/postincr-1.c
  7798275b8b0de282f953e3c97703b235  gcc/testsuite/gcc.dg/pow-sqrt-1.c
  4ad1671efbaffa754dd12b7d3fb0c24f  gcc/testsuite/gcc.dg/pow-sqrt-2.c
  fd3265437095da6aff9d665f55b837b2  gcc/testsuite/gcc.dg/pow-sqrt-3.c
! ba73305b72d13060bcfad00ba01dfc37  gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c
  e037582257371f62a3a039df4321225d  gcc/testsuite/gcc.dg/pow-sqrt.x
  4a843b8a906276e6a40c22d05fb6a8e1  gcc/testsuite/gcc.dg/pr100142.c
! 2ed4c7917cf2d830a0bb5f0d9d65e592  gcc/testsuite/gcc.dg/pr100225.c
  1297b760f49fded84008e039bc67829a  gcc/testsuite/gcc.dg/pr100239.c
  0f83e7c9f809d3279fa6049fdf043f1e  gcc/testsuite/gcc.dg/pr100292.c
  30bd1d581d3df78bbe6e79d3c9a0315e  gcc/testsuite/gcc.dg/pr100349.c
  633c569152621a26f5adb2fd40949b36  gcc/testsuite/gcc.dg/pr100373.c
  5ca809ef622425c422640fc82af912d6  gcc/testsuite/gcc.dg/pr100414.c
  0427d40b4e082cce256dba416ad5965d  gcc/testsuite/gcc.dg/pr100464.c
+ 8af4282865bb76d6d9bb89856240520e  gcc/testsuite/gcc.dg/pr100501-1.c
  920a8638d9df8cce219be521aa35bf72  gcc/testsuite/gcc.dg/pr100509.c
  fc99474ef3ac8fa598ea826d59670dc2  gcc/testsuite/gcc.dg/pr100512.c
  11146764fafb29a1319cb0b5d9f09044  gcc/testsuite/gcc.dg/pr100520.c
*************** b6d7f7ed4dde3865c140de6c031f2bda  gcc/te
*** 46203,46212 ****
  74d2cc6d66d3dd7e2d623ddcf80111a2  gcc/testsuite/gcc.dg/pr100781.c
  a79b25dcfa2c7136ecdca2ad37927dff  gcc/testsuite/gcc.dg/pr100788.c
  a4455e1e1eaac09914d9c2fe95bd8a57  gcc/testsuite/gcc.dg/pr100790.c
! 9f45e5f9c38c0bff5406d559152ab7c4  gcc/testsuite/gcc.dg/pr100791.c
  62ea3571a0a58e5eef07826715647995  gcc/testsuite/gcc.dg/pr100834.c
! a022ade94980f9c4caf7f7f509f932d4  gcc/testsuite/gcc.dg/pr100843.c
  474ed168e6f6888faee6cd5ce80997dc  gcc/testsuite/gcc.dg/pr100887.c
  5c6fec9e76cca693e1a702f5bb6843bf  gcc/testsuite/gcc.dg/pr101008.c
  0d03fd02d95149f8c7d54f57fbe17c9a  gcc/testsuite/gcc.dg/pr101028.c
  b20e922d857d70fc849642b04d8aef50  gcc/testsuite/gcc.dg/pr101062.c
--- 48891,48902 ----
  74d2cc6d66d3dd7e2d623ddcf80111a2  gcc/testsuite/gcc.dg/pr100781.c
  a79b25dcfa2c7136ecdca2ad37927dff  gcc/testsuite/gcc.dg/pr100788.c
  a4455e1e1eaac09914d9c2fe95bd8a57  gcc/testsuite/gcc.dg/pr100790.c
! 10f2279053b2e66a42b96214ed1d10a9  gcc/testsuite/gcc.dg/pr100791.c
! 946a8a1ab1d0a000f4b73846b0567e8b  gcc/testsuite/gcc.dg/pr100792-1.c
  62ea3571a0a58e5eef07826715647995  gcc/testsuite/gcc.dg/pr100834.c
! 2b7729095b5fd84b6d11774106f87519  gcc/testsuite/gcc.dg/pr100843.c
  474ed168e6f6888faee6cd5ce80997dc  gcc/testsuite/gcc.dg/pr100887.c
+ b5ebcde3589a9399f146b6b9a316f884  gcc/testsuite/gcc.dg/pr100927.c
  5c6fec9e76cca693e1a702f5bb6843bf  gcc/testsuite/gcc.dg/pr101008.c
  0d03fd02d95149f8c7d54f57fbe17c9a  gcc/testsuite/gcc.dg/pr101028.c
  b20e922d857d70fc849642b04d8aef50  gcc/testsuite/gcc.dg/pr101062.c
*************** d98596956367fc29b9341da6c0f03f55  gcc/te
*** 46222,46231 ****
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
  a7ea71615239b0d5a09bdb20e483a02f  gcc/testsuite/gcc.dg/pr101285-1.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
! a03b0a2a9da12c5aa5f258d44f7cba03  gcc/testsuite/gcc.dg/pr101364-1.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
  cf17d565e22770879e54b6d0b5f98c72  gcc/testsuite/gcc.dg/pr101419.c
  51fa849c28379b9795b20cbcf5bd8067  gcc/testsuite/gcc.dg/pr101496.c
  82ba8f6dfa7a7a8e6eb6d73d5c8df572  gcc/testsuite/gcc.dg/pr101497.c
  fea990856f92887377e1bb43b4bd09e3  gcc/testsuite/gcc.dg/pr101741.c
--- 48912,48922 ----
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
  a7ea71615239b0d5a09bdb20e483a02f  gcc/testsuite/gcc.dg/pr101285-1.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
! 2eebc584a5365593600a3822a1b3e97d  gcc/testsuite/gcc.dg/pr101364-1.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
  cf17d565e22770879e54b6d0b5f98c72  gcc/testsuite/gcc.dg/pr101419.c
+ 2d3f29a2cab8840cb09367ff4d489fae  gcc/testsuite/gcc.dg/pr101478.c
  51fa849c28379b9795b20cbcf5bd8067  gcc/testsuite/gcc.dg/pr101496.c
  82ba8f6dfa7a7a8e6eb6d73d5c8df572  gcc/testsuite/gcc.dg/pr101497.c
  fea990856f92887377e1bb43b4bd09e3  gcc/testsuite/gcc.dg/pr101741.c
*************** c26b978b685e1bfcc17c466b966d4919  gcc/te
*** 46248,46256 ****
  81b5db555bf4e99998ce86d5d737b15e  gcc/testsuite/gcc.dg/pr102207.c
  afb36cfd0415d59db229d4058c30853f  gcc/testsuite/gcc.dg/pr102224.c
  19014f75a82495dc3a06436ef24a4424  gcc/testsuite/gcc.dg/pr102269.c
! a8b0cac4c5b824611e6fc2a6a978218a  gcc/testsuite/gcc.dg/pr102273.c
  0bb85c23ffa7496538a767244947fdb2  gcc/testsuite/gcc.dg/pr102356.c
! 7294d52b49fbc203ebe824db860430a1  gcc/testsuite/gcc.dg/pr102385.c
  18cfd35dbe31380111f765852cb9f992  gcc/testsuite/gcc.dg/pr102463.c
  91844853e35a7b41b30a3460cc946f81  gcc/testsuite/gcc.dg/pr102478.c
  3eb7714752e61f1a5b88bd014f660753  gcc/testsuite/gcc.dg/pr102511.c
--- 48939,48947 ----
  81b5db555bf4e99998ce86d5d737b15e  gcc/testsuite/gcc.dg/pr102207.c
  afb36cfd0415d59db229d4058c30853f  gcc/testsuite/gcc.dg/pr102224.c
  19014f75a82495dc3a06436ef24a4424  gcc/testsuite/gcc.dg/pr102269.c
! 18b776a0a302a42ad5855a4847a0131e  gcc/testsuite/gcc.dg/pr102273.c
  0bb85c23ffa7496538a767244947fdb2  gcc/testsuite/gcc.dg/pr102356.c
! ac0dc97c37fd4319db44a8ff1e16b47f  gcc/testsuite/gcc.dg/pr102385.c
  18cfd35dbe31380111f765852cb9f992  gcc/testsuite/gcc.dg/pr102463.c
  91844853e35a7b41b30a3460cc946f81  gcc/testsuite/gcc.dg/pr102478.c
  3eb7714752e61f1a5b88bd014f660753  gcc/testsuite/gcc.dg/pr102511.c
*************** bdd6d43d4d29c6364c8fcfdc04dc9dc7  gcc/te
*** 46278,46284 ****
  1c1761666d4d7bf6b7ae8bf9eb6803e9  gcc/testsuite/gcc.dg/pr103184-1.c
  a267d764dfe830b81c1bd01e3f9e9e3d  gcc/testsuite/gcc.dg/pr103184-2.c
  4b65b23c38403dba1462e256547be35e  gcc/testsuite/gcc.dg/pr103207.c
! 07cb3100d5ce6854d6cbd6fdbf4119ad  gcc/testsuite/gcc.dg/pr103222.c
  403235552bc51decc6aaf0f2f60e8721  gcc/testsuite/gcc.dg/pr103248.c
  d8eb2a227e52aa5ee92bca485c5024a1  gcc/testsuite/gcc.dg/pr103254.c
  46504ab9f4b03c6adb909435ac0582ac  gcc/testsuite/gcc.dg/pr103268-1.c
--- 48969,48975 ----
  1c1761666d4d7bf6b7ae8bf9eb6803e9  gcc/testsuite/gcc.dg/pr103184-1.c
  a267d764dfe830b81c1bd01e3f9e9e3d  gcc/testsuite/gcc.dg/pr103184-2.c
  4b65b23c38403dba1462e256547be35e  gcc/testsuite/gcc.dg/pr103207.c
! a81d04cae91359b236d61b0ea404e589  gcc/testsuite/gcc.dg/pr103222.c
  403235552bc51decc6aaf0f2f60e8721  gcc/testsuite/gcc.dg/pr103248.c
  d8eb2a227e52aa5ee92bca485c5024a1  gcc/testsuite/gcc.dg/pr103254.c
  46504ab9f4b03c6adb909435ac0582ac  gcc/testsuite/gcc.dg/pr103268-1.c
*************** af41be766b7c7339308e509fc8d2cb53  gcc/te
*** 46319,46325 ****
  16d97403010e8d86071ea77ab4fe6422  gcc/testsuite/gcc.dg/pr104420-4.c
  23c67db89513923bf73a932b11f90927  gcc/testsuite/gcc.dg/pr104427.c
  5b838c151f5d2d826af2c42f7dcf66cb  gcc/testsuite/gcc.dg/pr104459.c
! bd2c6d60bae52a50ffaa396d03966172  gcc/testsuite/gcc.dg/pr104464.c
  3688a84b1aadef3f232ccfaeba375afb  gcc/testsuite/gcc.dg/pr104506-1.c
  5119493fa63ae8a1b1cd0a6fcfea689a  gcc/testsuite/gcc.dg/pr104506-2.c
  fee51c1affab287931d11eb36868a20a  gcc/testsuite/gcc.dg/pr104506-3.c
--- 49010,49016 ----
  16d97403010e8d86071ea77ab4fe6422  gcc/testsuite/gcc.dg/pr104420-4.c
  23c67db89513923bf73a932b11f90927  gcc/testsuite/gcc.dg/pr104427.c
  5b838c151f5d2d826af2c42f7dcf66cb  gcc/testsuite/gcc.dg/pr104459.c
! 160540a96840a88fee73e5380198b7d0  gcc/testsuite/gcc.dg/pr104464.c
  3688a84b1aadef3f232ccfaeba375afb  gcc/testsuite/gcc.dg/pr104506-1.c
  5119493fa63ae8a1b1cd0a6fcfea689a  gcc/testsuite/gcc.dg/pr104506-2.c
  fee51c1affab287931d11eb36868a20a  gcc/testsuite/gcc.dg/pr104506-3.c
*************** c04efe12f2d4a15f1ea2cae1889ba4cf  gcc/te
*** 46335,46341 ****
  c5ab940cf751b86591b1f61af3cfdade  gcc/testsuite/gcc.dg/pr104675-2.c
  3134bf3d7e786de762b2b02ad55f4dcd  gcc/testsuite/gcc.dg/pr104675-3.c
  a5833b8dc2703b241e6699df2222f98c  gcc/testsuite/gcc.dg/pr104700-2.c
! d8ac6e8cccf7bcb1070140ae44ef117a  gcc/testsuite/gcc.dg/pr10474.c
  2968ba86ec9be073192c7975ec531fb3  gcc/testsuite/gcc.dg/pr104786.c
  8c0ed1baab74c7b05d89e60fb2786609  gcc/testsuite/gcc.dg/pr104910.c
  d328197e83a949ec338507a8a4e15ed2  gcc/testsuite/gcc.dg/pr104970.c
--- 49026,49032 ----
  c5ab940cf751b86591b1f61af3cfdade  gcc/testsuite/gcc.dg/pr104675-2.c
  3134bf3d7e786de762b2b02ad55f4dcd  gcc/testsuite/gcc.dg/pr104675-3.c
  a5833b8dc2703b241e6699df2222f98c  gcc/testsuite/gcc.dg/pr104700-2.c
! 1501fd962018d02eb58484fb7aee4f43  gcc/testsuite/gcc.dg/pr10474.c
  2968ba86ec9be073192c7975ec531fb3  gcc/testsuite/gcc.dg/pr104786.c
  8c0ed1baab74c7b05d89e60fb2786609  gcc/testsuite/gcc.dg/pr104910.c
  d328197e83a949ec338507a8a4e15ed2  gcc/testsuite/gcc.dg/pr104970.c
*************** b86dfb95591cedd4e8f9612c0d76e923  gcc/te
*** 46345,46360 ****
  f6daf3140a9707899657962982ad2826  gcc/testsuite/gcc.dg/pr105065.c
  d08f59d459c7f9fa390c668c1f6b2b4f  gcc/testsuite/gcc.dg/pr105080.c
  f8d1a8342ac7db3ad1336ab098edd372  gcc/testsuite/gcc.dg/pr105094.c
! 327383bd48b0b7afa01ce2fd76da3475  gcc/testsuite/gcc.dg/pr105140.c
  6ee7b97cec7b16eb8ec9815bf5468fdc  gcc/testsuite/gcc.dg/pr105149.c
! 4fcf5458586095c916f824d7fa09fad0  gcc/testsuite/gcc.dg/pr105150.c
  299f6a400b7fb5db65f2901e5285cc2c  gcc/testsuite/gcc.dg/pr105165.c
  25a6db2efb48684f6cb2974051effc2a  gcc/testsuite/gcc.dg/pr105173.c
  74167edcd68be0592644dd215ac07fbf  gcc/testsuite/gcc.dg/pr105175.c
  b01f707de15442a63cdb3e32148021fd  gcc/testsuite/gcc.dg/pr105211.c
  674eaeafaa8d6299c130d40d3f974939  gcc/testsuite/gcc.dg/pr105218.c
  62b3efd9b859c1e2a74f5d3cfa969d33  gcc/testsuite/gcc.dg/pr105226.c
! 96c11731f907ddadef477decdb20f5b6  gcc/testsuite/gcc.dg/pr105250.c
  cc6ac8d68c79338a580a123141221e8b  gcc/testsuite/gcc.dg/pr105257.c
  01d945e452f69cb1fee8b12a879e51c6  gcc/testsuite/gcc.dg/pr105263.c
  c3d8ae3e46240608f001dd6a702ebf0b  gcc/testsuite/gcc.dg/pr105331.c
--- 49036,49051 ----
  f6daf3140a9707899657962982ad2826  gcc/testsuite/gcc.dg/pr105065.c
  d08f59d459c7f9fa390c668c1f6b2b4f  gcc/testsuite/gcc.dg/pr105080.c
  f8d1a8342ac7db3ad1336ab098edd372  gcc/testsuite/gcc.dg/pr105094.c
! 13053821c75907af1c1a1a20b30d34bf  gcc/testsuite/gcc.dg/pr105140.c
  6ee7b97cec7b16eb8ec9815bf5468fdc  gcc/testsuite/gcc.dg/pr105149.c
! ad8c9d5ddfe0b341fdb0afedc261f4ed  gcc/testsuite/gcc.dg/pr105150.c
  299f6a400b7fb5db65f2901e5285cc2c  gcc/testsuite/gcc.dg/pr105165.c
  25a6db2efb48684f6cb2974051effc2a  gcc/testsuite/gcc.dg/pr105173.c
  74167edcd68be0592644dd215ac07fbf  gcc/testsuite/gcc.dg/pr105175.c
  b01f707de15442a63cdb3e32148021fd  gcc/testsuite/gcc.dg/pr105211.c
  674eaeafaa8d6299c130d40d3f974939  gcc/testsuite/gcc.dg/pr105218.c
  62b3efd9b859c1e2a74f5d3cfa969d33  gcc/testsuite/gcc.dg/pr105226.c
! 34b197c0db3f7d5f3d0ce58c472a8c58  gcc/testsuite/gcc.dg/pr105250.c
  cc6ac8d68c79338a580a123141221e8b  gcc/testsuite/gcc.dg/pr105257.c
  01d945e452f69cb1fee8b12a879e51c6  gcc/testsuite/gcc.dg/pr105263.c
  c3d8ae3e46240608f001dd6a702ebf0b  gcc/testsuite/gcc.dg/pr105331.c
*************** bca44005de70f47b9c65777d0cdb42c3  gcc/te
*** 46384,46393 ****
  08b7a02f47713e1710303af211013ff4  gcc/testsuite/gcc.dg/pr105856.c
  9c3d1e5699081a64f9a7371ec1bf079f  gcc/testsuite/gcc.dg/pr105911.c
  5450efb71a4677ee6bce61dee16ec4eb  gcc/testsuite/gcc.dg/pr105969.c
! fe172baae6e5e7cbaa701cf25aed6296  gcc/testsuite/gcc.dg/pr105972.c
  de5d81445ad859074ca4d853ab220c74  gcc/testsuite/gcc.dg/pr106027.c
  4bbdf9e409c578c187260be918b92e8a  gcc/testsuite/gcc.dg/pr106061.c
  7fb0f2437939b99bbac4d027b90b6c84  gcc/testsuite/gcc.dg/pr106063.c
  0b79f13def5875cdcd6ff7cf2914ae2d  gcc/testsuite/gcc.dg/pr106099.c
  56b89433876918f481cf5fe03041c940  gcc/testsuite/gcc.dg/pr106114.c
  c9253a2e34a5177add9e9a758f0558a5  gcc/testsuite/gcc.dg/pr106189.c
--- 49075,49085 ----
  08b7a02f47713e1710303af211013ff4  gcc/testsuite/gcc.dg/pr105856.c
  9c3d1e5699081a64f9a7371ec1bf079f  gcc/testsuite/gcc.dg/pr105911.c
  5450efb71a4677ee6bce61dee16ec4eb  gcc/testsuite/gcc.dg/pr105969.c
! a9da65daa03accf4b4ce780e777d4fe5  gcc/testsuite/gcc.dg/pr105972.c
  de5d81445ad859074ca4d853ab220c74  gcc/testsuite/gcc.dg/pr106027.c
  4bbdf9e409c578c187260be918b92e8a  gcc/testsuite/gcc.dg/pr106061.c
  7fb0f2437939b99bbac4d027b90b6c84  gcc/testsuite/gcc.dg/pr106063.c
+ 64f119a91886d097bfcc0f27398cdadb  gcc/testsuite/gcc.dg/pr106073.c
  0b79f13def5875cdcd6ff7cf2914ae2d  gcc/testsuite/gcc.dg/pr106099.c
  56b89433876918f481cf5fe03041c940  gcc/testsuite/gcc.dg/pr106114.c
  c9253a2e34a5177add9e9a758f0558a5  gcc/testsuite/gcc.dg/pr106189.c
*************** c16717b833d5db5a9a8e0b0649ed37bf  gcc/te
*** 46419,46425 ****
  66f99f11c840e33dae7bfe0a998c7670  gcc/testsuite/gcc.dg/pr107385.c
  0215d2ef3b9000a72563a0a5de550edf  gcc/testsuite/gcc.dg/pr107389.c
  e93299ab13ea49e64f3354c006946b72  gcc/testsuite/gcc.dg/pr107505.c
! 5ad9ea4546fd246fa3030e31b6e8525c  gcc/testsuite/gcc.dg/pr107523.c
  81bc84b5b95958eb5c2583001b6b590a  gcc/testsuite/gcc.dg/pr107547.c
  d64d53420ac059d0a4813bb6b0e625bd  gcc/testsuite/gcc.dg/pr107554.c
  e4fcac0dad4ca1fbe25db5e0d7c43206  gcc/testsuite/gcc.dg/pr107557-1.c
--- 49111,49117 ----
  66f99f11c840e33dae7bfe0a998c7670  gcc/testsuite/gcc.dg/pr107385.c
  0215d2ef3b9000a72563a0a5de550edf  gcc/testsuite/gcc.dg/pr107389.c
  e93299ab13ea49e64f3354c006946b72  gcc/testsuite/gcc.dg/pr107505.c
! a7cab6b0b204764793f447272ec896a3  gcc/testsuite/gcc.dg/pr107523.c
  81bc84b5b95958eb5c2583001b6b590a  gcc/testsuite/gcc.dg/pr107547.c
  d64d53420ac059d0a4813bb6b0e625bd  gcc/testsuite/gcc.dg/pr107554.c
  e4fcac0dad4ca1fbe25db5e0d7c43206  gcc/testsuite/gcc.dg/pr107557-1.c
*************** a7cbf4a480a7e4f83515bec5365194b1  gcc/te
*** 46471,46478 ****
  6108a5c745cc8eb1105c44fbae91cc31  gcc/testsuite/gcc.dg/pr108657.c
  601a4d114636a020de8efde04e19967e  gcc/testsuite/gcc.dg/pr108688.c
  5b3e9146fc31e7a7e8623f94f2118fac  gcc/testsuite/gcc.dg/pr108691.c
! 21a62b0e858621e46700af10fbe121e4  gcc/testsuite/gcc.dg/pr108692.c
! a951e2130312a2483521d0488520a7dd  gcc/testsuite/gcc.dg/pr108757-1.c
  035cbf44a35f5e9e35d503017768c289  gcc/testsuite/gcc.dg/pr108757-2.c
  14ce0415b2425853b00c55ee5dd0ecab  gcc/testsuite/gcc.dg/pr108757.h
  10fcf1d08f9a39199beb3e72d1836739  gcc/testsuite/gcc.dg/pr108787.c
--- 49163,49170 ----
  6108a5c745cc8eb1105c44fbae91cc31  gcc/testsuite/gcc.dg/pr108657.c
  601a4d114636a020de8efde04e19967e  gcc/testsuite/gcc.dg/pr108688.c
  5b3e9146fc31e7a7e8623f94f2118fac  gcc/testsuite/gcc.dg/pr108691.c
! 8ea69c7a0be61e9092c5a0f4b5453c6e  gcc/testsuite/gcc.dg/pr108692.c
! 31adab6b1a129f7a10ea913456e340c3  gcc/testsuite/gcc.dg/pr108757-1.c
  035cbf44a35f5e9e35d503017768c289  gcc/testsuite/gcc.dg/pr108757-2.c
  14ce0415b2425853b00c55ee5dd0ecab  gcc/testsuite/gcc.dg/pr108757.h
  10fcf1d08f9a39199beb3e72d1836739  gcc/testsuite/gcc.dg/pr108787.c
*************** fef759074d2405b19218d52a2f1d4c87  gcc/te
*** 46494,46499 ****
--- 49186,49192 ----
  b4bb8ae97fc12f1c66b22b9149ca7a2b  gcc/testsuite/gcc.dg/pr109304.c
  26cb03e00d88f4257622852ed3e5369b  gcc/testsuite/gcc.dg/pr109327.c
  45f9003776530da05643fd2fcd9640b8  gcc/testsuite/gcc.dg/pr109392.c
+ bfcc628fc6999e234d82894274b24215  gcc/testsuite/gcc.dg/pr109393.c
  c84c4385dc7b913c1ab044bf620d7696  gcc/testsuite/gcc.dg/pr109409.c
  8c5ddd68de1ed874eb52f91b7136909e  gcc/testsuite/gcc.dg/pr109410.c
  3399ef12e5625e30f72a928ee7afca74  gcc/testsuite/gcc.dg/pr109412.c
*************** ecc7f43394c2cabbdfd67c6544078083  gcc/te
*** 46512,46518 ****
  4e18b84f5672f486b4ebebf92b54a317  gcc/testsuite/gcc.dg/pr110117-1.c
  fa2fa7c87accd361a3ffc55669286d2b  gcc/testsuite/gcc.dg/pr110117-2.c
  fc2d5987f0935ba7fb72456a74052a3a  gcc/testsuite/gcc.dg/pr110266.c
! d8ca37550399d0d0107dd334c557b611  gcc/testsuite/gcc.dg/pr110279-1.c
  4d010b0a841ae58fbceaa23059d37d44  gcc/testsuite/gcc.dg/pr110279-2.c
  44cc8bdb8e24be94e67c6e9b8820384b  gcc/testsuite/gcc.dg/pr110436.c
  1bfa7501393c86817caa57b323c5f302  gcc/testsuite/gcc.dg/pr110461.c
--- 49205,49211 ----
  4e18b84f5672f486b4ebebf92b54a317  gcc/testsuite/gcc.dg/pr110117-1.c
  fa2fa7c87accd361a3ffc55669286d2b  gcc/testsuite/gcc.dg/pr110117-2.c
  fc2d5987f0935ba7fb72456a74052a3a  gcc/testsuite/gcc.dg/pr110266.c
! df6d4a5a1ae23e4c54fe887c609a4b7c  gcc/testsuite/gcc.dg/pr110279-1.c
  4d010b0a841ae58fbceaa23059d37d44  gcc/testsuite/gcc.dg/pr110279-2.c
  44cc8bdb8e24be94e67c6e9b8820384b  gcc/testsuite/gcc.dg/pr110436.c
  1bfa7501393c86817caa57b323c5f302  gcc/testsuite/gcc.dg/pr110461.c
*************** ce21ef6d28d5fe43e792b7b1b4413514  gcc/te
*** 46540,46553 ****
  690185f2061d6502f012a080ac7a0ce5  gcc/testsuite/gcc.dg/pr110915-8.c
  78185ffd649e7ff5b42f44d4ab099539  gcc/testsuite/gcc.dg/pr110915-9.c
  5c2a2a4cf5aae8649c58434526ab55bb  gcc/testsuite/gcc.dg/pr110918.c
  7aeeff98686427c2e25aa1b7bb60b7f6  gcc/testsuite/gcc.dg/pr111009.c
  5328040ceef0db656025d09af496f06a  gcc/testsuite/gcc.dg/pr111015.c
! 327d668219b1c9a3fd61015f9abe833d  gcc/testsuite/gcc.dg/pr111039.c
  87d20f122852256ed9f4f43a162fbb2f  gcc/testsuite/gcc.dg/pr111070.c
  00923aa8b6f2b27eaa66a7f093f4a59f  gcc/testsuite/gcc.dg/pr111082.c
  6e14588163beffcf47ea7884dce92104  gcc/testsuite/gcc.dg/pr111303.c
  283ae18e472c603f77f7f5bd12528fb9  gcc/testsuite/gcc.dg/pr111355.c
! 8a45dfbe070c48845446dc22aab1602b  gcc/testsuite/gcc.dg/pr111407.c
  d543b00b0d604d4964af14ffe5c536d8  gcc/testsuite/gcc.dg/pr111409.c
  ad92d0e6b224b22bbd94fa951c90fc58  gcc/testsuite/gcc.dg/pr111599.c
  010daf0af0cc91370932a98cc477bc7f  gcc/testsuite/gcc.dg/pr111683-1.c
--- 49233,49247 ----
  690185f2061d6502f012a080ac7a0ce5  gcc/testsuite/gcc.dg/pr110915-8.c
  78185ffd649e7ff5b42f44d4ab099539  gcc/testsuite/gcc.dg/pr110915-9.c
  5c2a2a4cf5aae8649c58434526ab55bb  gcc/testsuite/gcc.dg/pr110918.c
+ 7ae9de2ddd3097a9a02622e2a7bb0454  gcc/testsuite/gcc.dg/pr110992.c
  7aeeff98686427c2e25aa1b7bb60b7f6  gcc/testsuite/gcc.dg/pr111009.c
  5328040ceef0db656025d09af496f06a  gcc/testsuite/gcc.dg/pr111015.c
! ba9310e68600c6b4b7c1527b5a5cf11c  gcc/testsuite/gcc.dg/pr111039.c
  87d20f122852256ed9f4f43a162fbb2f  gcc/testsuite/gcc.dg/pr111070.c
  00923aa8b6f2b27eaa66a7f093f4a59f  gcc/testsuite/gcc.dg/pr111082.c
  6e14588163beffcf47ea7884dce92104  gcc/testsuite/gcc.dg/pr111303.c
  283ae18e472c603f77f7f5bd12528fb9  gcc/testsuite/gcc.dg/pr111355.c
! 01e07e5f8d4143761d4e83039ef70da1  gcc/testsuite/gcc.dg/pr111407.c
  d543b00b0d604d4964af14ffe5c536d8  gcc/testsuite/gcc.dg/pr111409.c
  ad92d0e6b224b22bbd94fa951c90fc58  gcc/testsuite/gcc.dg/pr111599.c
  010daf0af0cc91370932a98cc477bc7f  gcc/testsuite/gcc.dg/pr111683-1.c
*************** df7bcd5b30dcb365530100b54c2bdba5  gcc/te
*** 46558,46564 ****
  a76ba9cff7ec5e68222bc3ba5c96b764  gcc/testsuite/gcc.dg/pr111766.c
  7db639ec792c27c6a7468bd93d13319e  gcc/testsuite/gcc.dg/pr111845.c
  6ce18b070c4ba53372e6f844745170fb  gcc/testsuite/gcc.dg/pr111914.c
! 83a77129d5c5ed4fd847594964619e0b  gcc/testsuite/gcc.dg/pr111922.c
  74ea2a88cbe4c900533076e803a81379  gcc/testsuite/gcc.dg/pr112320.c
  47d5ac3f97b4fe7e14821680bc5edf62  gcc/testsuite/gcc.dg/pr112359.c
  bf2535aab811e2223cfd0e68d61e0f3a  gcc/testsuite/gcc.dg/pr112369.c
--- 49252,49258 ----
  a76ba9cff7ec5e68222bc3ba5c96b764  gcc/testsuite/gcc.dg/pr111766.c
  7db639ec792c27c6a7468bd93d13319e  gcc/testsuite/gcc.dg/pr111845.c
  6ce18b070c4ba53372e6f844745170fb  gcc/testsuite/gcc.dg/pr111914.c
! b2d10acba37ac6a4a31853dcbeff8f16  gcc/testsuite/gcc.dg/pr111922.c
  74ea2a88cbe4c900533076e803a81379  gcc/testsuite/gcc.dg/pr112320.c
  47d5ac3f97b4fe7e14821680bc5edf62  gcc/testsuite/gcc.dg/pr112359.c
  bf2535aab811e2223cfd0e68d61e0f3a  gcc/testsuite/gcc.dg/pr112369.c
*************** a66f568f224ba89b60ee5457aec04a7e  gcc/te
*** 46590,46602 ****
--- 49284,49299 ----
  68812a8a18bdcb8c9b56b83823f8a853  gcc/testsuite/gcc.dg/pr113013.c
  deb41154534dbf473d4613d8e1b5b205  gcc/testsuite/gcc.dg/pr113062.c
  ad2ad5946902352f9ec1c92a22b2bec1  gcc/testsuite/gcc.dg/pr113093.c
+ 40a9e7de4e87fb807f14627321fa470a  gcc/testsuite/gcc.dg/pr113207.c
  da36c4c045a6839485d1209b636f2fa6  gcc/testsuite/gcc.dg/pr113262.c
  cb88492b8c13891e578ed68023fdbd5d  gcc/testsuite/gcc.dg/pr113267.c
  b3bff2025ea2829f369b883345a9ac4d  gcc/testsuite/gcc.dg/pr113438.c
  251597307c5081767ca76e85e86e471e  gcc/testsuite/gcc.dg/pr113445.c
  09c144492c54d8c957d2554d144ab1fe  gcc/testsuite/gcc.dg/pr113492.c
+ 2540e8b10d6e78d08e6fe572298fb0b7  gcc/testsuite/gcc.dg/pr113596.c
  78dd45f553f44492c5c325398210f4ec  gcc/testsuite/gcc.dg/pr113602.c
  df6f93c285d5bce25f758e2e93482ded  gcc/testsuite/gcc.dg/pr113659.c
+ 5fb0ea265bfa7fd7916b4541b551b5bc  gcc/testsuite/gcc.dg/pr113688.c
  57d872032d8ecee35cd1542ada8db1b5  gcc/testsuite/gcc.dg/pr113693.c
  0b16d5d5605a7453bf5a8d24c0d71bfb  gcc/testsuite/gcc.dg/pr113722.c
  fba5338ec42bfb937930f7e3f67e2ca3  gcc/testsuite/gcc.dg/pr113756.c
*************** fba5338ec42bfb937930f7e3f67e2ca3  gcc/te
*** 46606,46639 ****
  1a67adf7ad070821265b534b5043635a  gcc/testsuite/gcc.dg/pr113776-4.c
  e68a7c7f2d1db31e0e0e0a23960975a7  gcc/testsuite/gcc.dg/pr113907-1.c
  9763b0b64087a45a0d3420c2efcecb05  gcc/testsuite/gcc.dg/pr113967.c
  b200221e1cccaf2dc905de01fccdb601  gcc/testsuite/gcc.dg/pr114090.c
! 12ecf3bc0aab66a39903f50c4a6dfc66  gcc/testsuite/gcc.dg/pr114115.c
  5f50cdb1b2a60a511ba8bff25319527f  gcc/testsuite/gcc.dg/pr114211.c
  6c8f2e684eee8bd8983196eac859b465  gcc/testsuite/gcc.dg/pr114293.c
  7cd5609790e8cb3ba4ad54ccf122a48a  gcc/testsuite/gcc.dg/pr114310.c
  4940ffe18e12cb373bdf01efe4350809  gcc/testsuite/gcc.dg/pr114361.c
  e99866ca9e56b885a0004e2f573a6158  gcc/testsuite/gcc.dg/pr114493-1.c
  a9aec6149bb0f845a5689f70e87d6879  gcc/testsuite/gcc.dg/pr114493-2.c
  563040be7f330befd6222d589a849aa6  gcc/testsuite/gcc.dg/pr114574-1.c
  c55a5bd235aa037a0b2b6c77b9b5c9da  gcc/testsuite/gcc.dg/pr114574-2.c
  860f163dcd0b252ea3f85323bc959a7d  gcc/testsuite/gcc.dg/pr11459-1.c
  8d675fa965ab88a772c5a3c7d82c11e3  gcc/testsuite/gcc.dg/pr114605.c
  18db873e30d811e6904623797ead2825  gcc/testsuite/gcc.dg/pr114753.c
  278b6ea6998e142ef9ecea8b30a97701  gcc/testsuite/gcc.dg/pr114768.c
  86c7b688b3835d3cdb63a61f64b1ae73  gcc/testsuite/gcc.dg/pr114876.c
  4f24f3d12a3963918c32e40afe158f0a  gcc/testsuite/gcc.dg/pr114902.c
  fa53e159fc414cd332dc23393a95dabf  gcc/testsuite/gcc.dg/pr114907.c
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  aef58d29c1a9501b32c4805c56d8ce28  gcc/testsuite/gcc.dg/pr114930.c
  dbdd5914f6fc5bb4897a0171fe0c720c  gcc/testsuite/gcc.dg/pr114931.c
  e76a4663621c8d450d2c9d229d63e033  gcc/testsuite/gcc.dg/pr115092.c
  6d1303b6d1c09f2ffa7ec830ab434d2a  gcc/testsuite/gcc.dg/pr115149.c
  d22dfd7d5e220a5d2333a3902005df42  gcc/testsuite/gcc.dg/pr115152.c
  64f4939cddc13bbbbd8e882d62d2436b  gcc/testsuite/gcc.dg/pr115197.c
  915d1c3bdd1ce10f8b739772e4406bf6  gcc/testsuite/gcc.dg/pr115502.c
! 6ba8ec161f815bc3e024b67bfffd9530  gcc/testsuite/gcc.dg/pr115646.c
  8a0ca2cbf65dafe6cccb9a0465069fcc  gcc/testsuite/gcc.dg/pr116034.c
  3b83403729a3686d25552352bf0c4577  gcc/testsuite/gcc.dg/pr11864-1.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
--- 49303,49437 ----
  1a67adf7ad070821265b534b5043635a  gcc/testsuite/gcc.dg/pr113776-4.c
  e68a7c7f2d1db31e0e0e0a23960975a7  gcc/testsuite/gcc.dg/pr113907-1.c
  9763b0b64087a45a0d3420c2efcecb05  gcc/testsuite/gcc.dg/pr113967.c
+ 4d193c4c26225027fa06eb5d7bf397a4  gcc/testsuite/gcc.dg/pr113982.c
+ 93e9b384004bbeae29b4b1bbc48cbeaa  gcc/testsuite/gcc.dg/pr114014.c
+ 2851d36df1aff63b4894af7f7d1aa746  gcc/testsuite/gcc.dg/pr114052-1.c
  b200221e1cccaf2dc905de01fccdb601  gcc/testsuite/gcc.dg/pr114090.c
! 705d0e20ee258dc948ef3ad0e3372f4e  gcc/testsuite/gcc.dg/pr114115.c
  5f50cdb1b2a60a511ba8bff25319527f  gcc/testsuite/gcc.dg/pr114211.c
  6c8f2e684eee8bd8983196eac859b465  gcc/testsuite/gcc.dg/pr114293.c
  7cd5609790e8cb3ba4ad54ccf122a48a  gcc/testsuite/gcc.dg/pr114310.c
  4940ffe18e12cb373bdf01efe4350809  gcc/testsuite/gcc.dg/pr114361.c
  e99866ca9e56b885a0004e2f573a6158  gcc/testsuite/gcc.dg/pr114493-1.c
  a9aec6149bb0f845a5689f70e87d6879  gcc/testsuite/gcc.dg/pr114493-2.c
+ 04c91234eed0b1beec0eb991ba67c280  gcc/testsuite/gcc.dg/pr114540.c
  563040be7f330befd6222d589a849aa6  gcc/testsuite/gcc.dg/pr114574-1.c
  c55a5bd235aa037a0b2b6c77b9b5c9da  gcc/testsuite/gcc.dg/pr114574-2.c
  860f163dcd0b252ea3f85323bc959a7d  gcc/testsuite/gcc.dg/pr11459-1.c
  8d675fa965ab88a772c5a3c7d82c11e3  gcc/testsuite/gcc.dg/pr114605.c
+ 1a8b1f5632629c5678465877e9a08481  gcc/testsuite/gcc.dg/pr114661.c
+ e9b4e6a3163919c9542ac3ea134e8c03  gcc/testsuite/gcc.dg/pr114713.c
+ 7cd2e921ecf04e193b97e3f54d49fb3c  gcc/testsuite/gcc.dg/pr114727.c
  18db873e30d811e6904623797ead2825  gcc/testsuite/gcc.dg/pr114753.c
  278b6ea6998e142ef9ecea8b30a97701  gcc/testsuite/gcc.dg/pr114768.c
+ fdf4eb193f5ffc57b59e8114e5072d10  gcc/testsuite/gcc.dg/pr114831-1.c
+ 8021bfe198600c1c015206867cd1c853  gcc/testsuite/gcc.dg/pr114831-2.c
  86c7b688b3835d3cdb63a61f64b1ae73  gcc/testsuite/gcc.dg/pr114876.c
  4f24f3d12a3963918c32e40afe158f0a  gcc/testsuite/gcc.dg/pr114902.c
  fa53e159fc414cd332dc23393a95dabf  gcc/testsuite/gcc.dg/pr114907.c
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  aef58d29c1a9501b32c4805c56d8ce28  gcc/testsuite/gcc.dg/pr114930.c
  dbdd5914f6fc5bb4897a0171fe0c720c  gcc/testsuite/gcc.dg/pr114931.c
+ 6cbba451d4b2f71b338b894b54b1dea2  gcc/testsuite/gcc.dg/pr115066.c
  e76a4663621c8d450d2c9d229d63e033  gcc/testsuite/gcc.dg/pr115092.c
+ 4d52f5027465073de23c8918aea75412  gcc/testsuite/gcc.dg/pr115109.c
  6d1303b6d1c09f2ffa7ec830ab434d2a  gcc/testsuite/gcc.dg/pr115149.c
  d22dfd7d5e220a5d2333a3902005df42  gcc/testsuite/gcc.dg/pr115152.c
  64f4939cddc13bbbbd8e882d62d2436b  gcc/testsuite/gcc.dg/pr115197.c
+ d20e992f7141c14335c32234cfa9b9e6  gcc/testsuite/gcc.dg/pr115221.c
+ c81f1954d34c367ec0c43878ca28bbee  gcc/testsuite/gcc.dg/pr115236.c
+ c8dd934a48d7e3b1838eba0a9b59da95  gcc/testsuite/gcc.dg/pr115426.c
  915d1c3bdd1ce10f8b739772e4406bf6  gcc/testsuite/gcc.dg/pr115502.c
! 3ae65d63555bfc62d929627f7e3841ab  gcc/testsuite/gcc.dg/pr115579.c
! 58460c6512df7401ec50751a71e2c5b5  gcc/testsuite/gcc.dg/pr115646.c
! 83ea37698c9b4ca8fb8d965c70ced240  gcc/testsuite/gcc.dg/pr115696.c
! 37da1b0ad8e07596bd6817c2599116be  gcc/testsuite/gcc.dg/pr115782.c
! 6c0df97ca3f09d4762984f0d81f33807  gcc/testsuite/gcc.dg/pr115933.c
! 40adca9ff556941ac292b50c8dcf350d  gcc/testsuite/gcc.dg/pr116003.c
  8a0ca2cbf65dafe6cccb9a0465069fcc  gcc/testsuite/gcc.dg/pr116034.c
+ c44ac8a093cda751002f1697cad3bee4  gcc/testsuite/gcc.dg/pr116284.c
+ 7820d64b46e8082950940bc4a0bfba8c  gcc/testsuite/gcc.dg/pr116290.c
+ d21d6fbc6fc43c655a90fc622dc9b3c2  gcc/testsuite/gcc.dg/pr116336.c
+ 2698e38f605926d594403a52f22f5f00  gcc/testsuite/gcc.dg/pr116357.c
+ 4c67e27f1fbd89fff89dde4e36bf9a5e  gcc/testsuite/gcc.dg/pr116372.c
+ 7d6461bbfe4e766b9dcb02e2aec22645  gcc/testsuite/gcc.dg/pr116405.c
+ 6eaf2c622feb5e0d2e5ca44ab5759351  gcc/testsuite/gcc.dg/pr116481.c
+ 8a82ecc27f5e5be1a3a5e59a3465ebcf  gcc/testsuite/gcc.dg/pr116588.c
+ 92460a4ebec7f60dcffc9eb68058c6b8  gcc/testsuite/gcc.dg/pr116726.c
+ 3661cd7a3a7e0ed72337f96146acfa54  gcc/testsuite/gcc.dg/pr116850.c
+ c1b2e797633e4c55b12e32de20ad49e3  gcc/testsuite/gcc.dg/pr116879.c
+ 8aed09e5b7a0e94c0ab7d89427bc9ee7  gcc/testsuite/gcc.dg/pr116887.c
+ af316e7c425bfdeaadea8998cbd27110  gcc/testsuite/gcc.dg/pr116891.c
+ 74e00ad1edb39167550d49fdf426dbd3  gcc/testsuite/gcc.dg/pr116905.c
+ 603bb72cd5e79ceb80ff5fcc4c83606f  gcc/testsuite/gcc.dg/pr116906-1.c
+ f721b513a9ffc969859bf3f862b29fc8  gcc/testsuite/gcc.dg/pr116906-2.c
+ 0f7c0be4478d4effaffc394410d73e92  gcc/testsuite/gcc.dg/pr117065.c
+ 4de2a7a2ac95300f89928764d873895d  gcc/testsuite/gcc.dg/pr117104.c
+ 39da48ce24fb558efbc78d75a88467b5  gcc/testsuite/gcc.dg/pr117145-1.c
+ 63803de207f2916bad86717cde438311  gcc/testsuite/gcc.dg/pr117145-2.c
+ 809d1e4fe382fd35194849af2413cb9f  gcc/testsuite/gcc.dg/pr117239.c
+ f0bfdc371f7d13f5d1419895ec6f7cf3  gcc/testsuite/gcc.dg/pr117245.c
+ 22c935f2bff095783388f4e05eabe99b  gcc/testsuite/gcc.dg/pr117254.c
+ 2fdaaf6f7a5cac0bc0536de3a8e9cc31  gcc/testsuite/gcc.dg/pr117391.c
+ 508b7efd3e428ac089a9b5def12ba01c  gcc/testsuite/gcc.dg/pr117398.c
+ 2c69d08dac7e115034a90e432cc57ef2  gcc/testsuite/gcc.dg/pr117433.c
+ 997ef3b18152e89d48cc31241fc05665  gcc/testsuite/gcc.dg/pr117490.c
+ 54bb1d432807fbe8dcfb652ed9da3c8e  gcc/testsuite/gcc.dg/pr117506.c
+ 3dbb8cd3d5081f4111ac548d9b0a5deb  gcc/testsuite/gcc.dg/pr117548.c
+ c58313e1bf77e3d1ff2095259c66e353  gcc/testsuite/gcc.dg/pr117712.c
+ 1727c12d89f8445b620b27c49d117242  gcc/testsuite/gcc.dg/pr117724.c
+ 6693dade68e2cac14ef3b85ed17c9a95  gcc/testsuite/gcc.dg/pr117745.c
+ 67fec4fb7573ed9882469ffffc96795a  gcc/testsuite/gcc.dg/pr117755-1.c
+ 8654e9d08c04602b1a8536213e85259c  gcc/testsuite/gcc.dg/pr117757-1.c
+ 46a8c51eb774e50e5641e0bd4e1ad180  gcc/testsuite/gcc.dg/pr117806.c
+ e56e36e1c606f9cbe62e6a1a0ca7467e  gcc/testsuite/gcc.dg/pr117816.c
+ 9cd6e60e0bac47dfb7ea3d7bac4bc4fd  gcc/testsuite/gcc.dg/pr117828.c
+ 807d0d56ce32e54174f9a651a110d179  gcc/testsuite/gcc.dg/pr117866.c
+ c659c894ed907cf54a5f7ebfca36b331  gcc/testsuite/gcc.dg/pr117888-2.c
+ 994d161e3857d23b4f14643ee0a05d1e  gcc/testsuite/gcc.dg/pr117915.c
+ 0cf88d9e932b2d75d49f02e4595a86de  gcc/testsuite/gcc.dg/pr117997.c
+ fd22cdc8f5c1d5a0506c32e0942e724b  gcc/testsuite/gcc.dg/pr118024.c
+ 8ca2eae281ed9adda14c6602365a9260  gcc/testsuite/gcc.dg/pr118061.c
+ 35ebbd529a45964e8eadd10e9c3a0561  gcc/testsuite/gcc.dg/pr118081.c
+ 798b5b539c31a7cb9030cd143870282e  gcc/testsuite/gcc.dg/pr118207.c
+ 81146ef53dd64af6e946aea09bb38c81  gcc/testsuite/gcc.dg/pr118224.c
+ a76b575ed115f3b030187e2b490b147c  gcc/testsuite/gcc.dg/pr118288.c
+ 4abff84379a45f296022062f3b8cb5a9  gcc/testsuite/gcc.dg/pr118325.c
+ f5dcfb06fbf4ecf1c229e05c21143475  gcc/testsuite/gcc.dg/pr118376.c
+ 846de19cc66ae79f0a3e8c944002dbb1  gcc/testsuite/gcc.dg/pr118415.c
+ 4fbb3b8a54b14d7c50d17699ea63c835  gcc/testsuite/gcc.dg/pr118472.c
+ 44a28fe31ea74cbd634458d8b67abac4  gcc/testsuite/gcc.dg/pr118490.c
+ 23c68eaf7d4ef8d92a766547093596e0  gcc/testsuite/gcc.dg/pr118615.c
  3b83403729a3686d25552352bf0c4577  gcc/testsuite/gcc.dg/pr11864-1.c
+ ea912f06ce6b7a18af5abbf8b4e9c714  gcc/testsuite/gcc.dg/pr118643.c
+ f5f97223e72329297b0649724e628469  gcc/testsuite/gcc.dg/pr118684.c
+ 46ff7b4b8522e006d81d14f54761e083  gcc/testsuite/gcc.dg/pr118692.c
+ b5e7a407f14fa4279d446639d6cf4794  gcc/testsuite/gcc.dg/pr118695.c
+ 65b4363d6b1e33ad1c3678e782443de8  gcc/testsuite/gcc.dg/pr118696.c
+ 78b5a2da7cc07c07e401970fc5284118  gcc/testsuite/gcc.dg/pr118727.c
+ 89f7dce197d2a50a441aa98119b223a3  gcc/testsuite/gcc.dg/pr118765-2.c
+ 88e0d6cbe3627a5ac2770525d4dbf228  gcc/testsuite/gcc.dg/pr118765-3.c
+ 10b9896f59a29d2cace4025495dc694b  gcc/testsuite/gcc.dg/pr118765.c
+ d08452d24c97493e2434ecdd8c5310c4  gcc/testsuite/gcc.dg/pr118817.c
+ 2b2d20742f9707962adb7ed6abf1aaff  gcc/testsuite/gcc.dg/pr118860.c
+ 000c93ab2283d35bc8262ea9d115e9b4  gcc/testsuite/gcc.dg/pr118895.c
+ cccc06652033bffb0ed73a8f12d234c2  gcc/testsuite/gcc.dg/pr119001-1.c
+ c7a64c754e3bec3fcb350f02eeca455c  gcc/testsuite/gcc.dg/pr119001-2.c
+ 33c13391b7d0c5d156ce1488a8cece3f  gcc/testsuite/gcc.dg/pr119071.c
+ a3d075dd1b96232581aa40c9e02294e1  gcc/testsuite/gcc.dg/pr119151.c
+ 23b8c99f9e2dfda91a95f1195ab38bfd  gcc/testsuite/gcc.dg/pr119183.c
+ 5b4015cb994569a43c505c35b96cda44  gcc/testsuite/gcc.dg/pr119204.c
+ 749c769f6f099fb46192e06fcacafc89  gcc/testsuite/gcc.dg/pr119287.c
+ 1abab5cc372130bb7f94ee120020cd3f  gcc/testsuite/gcc.dg/pr119350-1.c
+ ae581735eb403ef0f53b23d38ef894aa  gcc/testsuite/gcc.dg/pr119350-2.c
+ df4d4396a3fcd7580f78a2404eec37a4  gcc/testsuite/gcc.dg/pr119350-3.c
+ 225300465271f0f90bdda7d2e211b2bb  gcc/testsuite/gcc.dg/pr119471.c
+ 7d0283af206e735600068127c7fd183a  gcc/testsuite/gcc.dg/pr119493-1.c
+ dcac2b425761465ac490dca6bbf91418  gcc/testsuite/gcc.dg/pr119493-2.c
+ c1277bce749b8ccc1290ccba56123e5e  gcc/testsuite/gcc.dg/pr119594.c
+ a38b813746f78dafd9d21f9226897ece  gcc/testsuite/gcc.dg/pr119612.c
+ 049190a5759317b31fbb993a0bbcaeac  gcc/testsuite/gcc.dg/pr119664.c
+ e33af444b933ae4b76c6fd6ea535e112  gcc/testsuite/gcc.dg/pr119717.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/te
*** 46641,46651 ****
  2a52cc05fb1415e0eafbc468a7ccc138  gcc/testsuite/gcc.dg/pr14092-1.c
  55536b90ebfecff67ebcf9a7a3946401  gcc/testsuite/gcc.dg/pr14475.c
  cae214a5f7fd63153f93c3eb8b75888e  gcc/testsuite/gcc.dg/pr14649-1.c
! eab51d905e25111086745a91fe335ef5  gcc/testsuite/gcc.dg/pr14765-1.c
  b9ea6dc62f3ee8bb30121d7083d5ddf5  gcc/testsuite/gcc.dg/pr14796-1.c
  28855820cc1661ddacb5f89938c862a5  gcc/testsuite/gcc.dg/pr14796-2.c
  32ebb90eac91472473a4f1266f172937  gcc/testsuite/gcc.dg/pr14963.c
! 0f67deb0f56899efc7603592768970fa  gcc/testsuite/gcc.dg/pr15236.c
  383dac9706203dccb1d16f8f964abd7a  gcc/testsuite/gcc.dg/pr15347.c
  0d9f7d69e96388f696d167790c41e769  gcc/testsuite/gcc.dg/pr15360-1.c
  a77ea144acdbffc9396abf791b596c77  gcc/testsuite/gcc.dg/pr15443-1.c
--- 49439,49449 ----
  2a52cc05fb1415e0eafbc468a7ccc138  gcc/testsuite/gcc.dg/pr14092-1.c
  55536b90ebfecff67ebcf9a7a3946401  gcc/testsuite/gcc.dg/pr14475.c
  cae214a5f7fd63153f93c3eb8b75888e  gcc/testsuite/gcc.dg/pr14649-1.c
! c7d3cf8bdbf944cde037fec2f7c67288  gcc/testsuite/gcc.dg/pr14765-1.c
  b9ea6dc62f3ee8bb30121d7083d5ddf5  gcc/testsuite/gcc.dg/pr14796-1.c
  28855820cc1661ddacb5f89938c862a5  gcc/testsuite/gcc.dg/pr14796-2.c
  32ebb90eac91472473a4f1266f172937  gcc/testsuite/gcc.dg/pr14963.c
! 0dc8658018f0f5801b18be195f74eafc  gcc/testsuite/gcc.dg/pr15236.c
  383dac9706203dccb1d16f8f964abd7a  gcc/testsuite/gcc.dg/pr15347.c
  0d9f7d69e96388f696d167790c41e769  gcc/testsuite/gcc.dg/pr15360-1.c
  a77ea144acdbffc9396abf791b596c77  gcc/testsuite/gcc.dg/pr15443-1.c
*************** a9e1c58aa09048bb3fbc68a7a85290e1  gcc/te
*** 46675,46681 ****
  d5fc9ccee015351ed1b375a37c3c5b5d  gcc/testsuite/gcc.dg/pr17036-1.c
  aecc81cd7ef1b3210b1ecf755bec05d7  gcc/testsuite/gcc.dg/pr17055-1.c
  50c8de6ccf43f542a34655437d9fea94  gcc/testsuite/gcc.dg/pr17112-1.c
! 9e1afa5be00c6bb6e06de72f98c8732b  gcc/testsuite/gcc.dg/pr17188-1.c
  3edcdac39fec935ca61ed016e675568e  gcc/testsuite/gcc.dg/pr17301-1.c
  9fc5d8ec8a262000267eadad1b3431e6  gcc/testsuite/gcc.dg/pr17301-2.c
  5c242e5fba5ea3831a19adf1e668d784  gcc/testsuite/gcc.dg/pr17319.c
--- 49473,49479 ----
  d5fc9ccee015351ed1b375a37c3c5b5d  gcc/testsuite/gcc.dg/pr17036-1.c
  aecc81cd7ef1b3210b1ecf755bec05d7  gcc/testsuite/gcc.dg/pr17055-1.c
  50c8de6ccf43f542a34655437d9fea94  gcc/testsuite/gcc.dg/pr17112-1.c
! 9a07e7c656b9158a7583750ef821a307  gcc/testsuite/gcc.dg/pr17188-1.c
  3edcdac39fec935ca61ed016e675568e  gcc/testsuite/gcc.dg/pr17301-1.c
  9fc5d8ec8a262000267eadad1b3431e6  gcc/testsuite/gcc.dg/pr17301-2.c
  5c242e5fba5ea3831a19adf1e668d784  gcc/testsuite/gcc.dg/pr17319.c
*************** fda269538ec6cb5fa7f058ae0ca2954d  gcc/te
*** 46725,46733 ****
  62757cb3c0e720fb1560a8224b08debd  gcc/testsuite/gcc.dg/pr20130-1.c
  2bca92aea2b5219d9409f9b42e816ce9  gcc/testsuite/gcc.dg/pr20216.c
  1283a0704dcc87875b6a0f69dfaf02dd  gcc/testsuite/gcc.dg/pr20245-1.c
! 26e47b2fb70e7148fd1fc9e8d1689802  gcc/testsuite/gcc.dg/pr20368-1.c
! d6e25a17fad755f72c1380eff3753639  gcc/testsuite/gcc.dg/pr20368-2.c
! daf6aeee0d8079da4dc044ea393f3dec  gcc/testsuite/gcc.dg/pr20368-3.c
  1c63510bc311d7ab8f9ec6554b562326  gcc/testsuite/gcc.dg/pr20672-1.c
  1d061a05146abf8b992ebb1fc40a2b9b  gcc/testsuite/gcc.dg/pr20922-1.c
  e316cb920a9eeb2e96d6ff0071b4e1e9  gcc/testsuite/gcc.dg/pr20922-2.c
--- 49523,49531 ----
  62757cb3c0e720fb1560a8224b08debd  gcc/testsuite/gcc.dg/pr20130-1.c
  2bca92aea2b5219d9409f9b42e816ce9  gcc/testsuite/gcc.dg/pr20216.c
  1283a0704dcc87875b6a0f69dfaf02dd  gcc/testsuite/gcc.dg/pr20245-1.c
! 91532d381c62fbac1939ea5ea6d98a15  gcc/testsuite/gcc.dg/pr20368-1.c
! 11f23423dd7b333e0f3e0510f635f812  gcc/testsuite/gcc.dg/pr20368-2.c
! 469af8b28c4c4dac3e075fdb7ec66452  gcc/testsuite/gcc.dg/pr20368-3.c
  1c63510bc311d7ab8f9ec6554b562326  gcc/testsuite/gcc.dg/pr20672-1.c
  1d061a05146abf8b992ebb1fc40a2b9b  gcc/testsuite/gcc.dg/pr20922-1.c
  e316cb920a9eeb2e96d6ff0071b4e1e9  gcc/testsuite/gcc.dg/pr20922-2.c
*************** d475727c04d7b0890bdc8df05799bebc  gcc/te
*** 46782,46792 ****
  93d9e50c249a057642c823d88736c8d3  gcc/testsuite/gcc.dg/pr24820.c
  fec5da03a0c2deda5e2e23320eb104f9  gcc/testsuite/gcc.dg/pr25023.c
  08cad12653e74b3a4fc2b4e71f0e8ae7  gcc/testsuite/gcc.dg/pr25376.c
! c867062b1b8baea9be302127b5ece36b  gcc/testsuite/gcc.dg/pr25521.c
  8ba65ccc2fce8c161f1b603190ebfe45  gcc/testsuite/gcc.dg/pr25529.c
  e809d3f90dc75b0418bcf7babfae796c  gcc/testsuite/gcc.dg/pr25530.c
  0e19591f58f2ec1d28818d979a7176c5  gcc/testsuite/gcc.dg/pr25559.c
! 9389764f7b4ef0900c390df3b5cd1dc1  gcc/testsuite/gcc.dg/pr25682.c
  791852dc0c5508eb25d124c355b685c2  gcc/testsuite/gcc.dg/pr25795-1.c
  2e949b10e3680017705968a8f64745c1  gcc/testsuite/gcc.dg/pr25795.c
  da0cb96a0c3926625da711670cf3ef5e  gcc/testsuite/gcc.dg/pr25801.c
--- 49580,49590 ----
  93d9e50c249a057642c823d88736c8d3  gcc/testsuite/gcc.dg/pr24820.c
  fec5da03a0c2deda5e2e23320eb104f9  gcc/testsuite/gcc.dg/pr25023.c
  08cad12653e74b3a4fc2b4e71f0e8ae7  gcc/testsuite/gcc.dg/pr25376.c
! 90468f6139f013b64a5a50bf10aeb402  gcc/testsuite/gcc.dg/pr25521.c
  8ba65ccc2fce8c161f1b603190ebfe45  gcc/testsuite/gcc.dg/pr25529.c
  e809d3f90dc75b0418bcf7babfae796c  gcc/testsuite/gcc.dg/pr25530.c
  0e19591f58f2ec1d28818d979a7176c5  gcc/testsuite/gcc.dg/pr25559.c
! aab557df24d55da710d4c31fd7562c4b  gcc/testsuite/gcc.dg/pr25682.c
  791852dc0c5508eb25d124c355b685c2  gcc/testsuite/gcc.dg/pr25795-1.c
  2e949b10e3680017705968a8f64745c1  gcc/testsuite/gcc.dg/pr25795.c
  da0cb96a0c3926625da711670cf3ef5e  gcc/testsuite/gcc.dg/pr25801.c
*************** e48b98be698252355b5cf78b47d7f61a  gcc/te
*** 46805,46813 ****
  e53ecd1ff9957a058c604e211d42903a  gcc/testsuite/gcc.dg/pr27095.c
  5df966ab3ccf83d9d4f829a9db1b2cdd  gcc/testsuite/gcc.dg/pr27132.c
  b5f2917952802ede887d87a560ff919f  gcc/testsuite/gcc.dg/pr27150-1.c
! dbb187ab2f88e7b742ca6ef763cc0f85  gcc/testsuite/gcc.dg/pr27301.c
  e1852d2e27639efcac2578576bed3cb9  gcc/testsuite/gcc.dg/pr27314.c
! e4f3145efd6f726eb1a895fc7b30130f  gcc/testsuite/gcc.dg/pr27331.c
  6f0aec5727efd809a26bd697419b7ac4  gcc/testsuite/gcc.dg/pr27335.c
  39b84168af7be83c208c852cac2bb1eb  gcc/testsuite/gcc.dg/pr27363.c
  d256e08501c4e93178e110069ebb6e3c  gcc/testsuite/gcc.dg/pr27382-1.c
--- 49603,49611 ----
  e53ecd1ff9957a058c604e211d42903a  gcc/testsuite/gcc.dg/pr27095.c
  5df966ab3ccf83d9d4f829a9db1b2cdd  gcc/testsuite/gcc.dg/pr27132.c
  b5f2917952802ede887d87a560ff919f  gcc/testsuite/gcc.dg/pr27150-1.c
! bc66e77059524e8343a90c9c49fccde6  gcc/testsuite/gcc.dg/pr27301.c
  e1852d2e27639efcac2578576bed3cb9  gcc/testsuite/gcc.dg/pr27314.c
! 35d6cbbb2c4e7b0d1f726f0224367889  gcc/testsuite/gcc.dg/pr27331.c
  6f0aec5727efd809a26bd697419b7ac4  gcc/testsuite/gcc.dg/pr27335.c
  39b84168af7be83c208c852cac2bb1eb  gcc/testsuite/gcc.dg/pr27363.c
  d256e08501c4e93178e110069ebb6e3c  gcc/testsuite/gcc.dg/pr27382-1.c
*************** ac5f11c55cd3b36111eefd9597918ef1  gcc/te
*** 46818,46832 ****
  6a5239e67a6a04988307b7f422c7d2a1  gcc/testsuite/gcc.dg/pr27639.c
  14261cbe894cefc9ddf874210c6146e8  gcc/testsuite/gcc.dg/pr27671-2.c
  42c08da1a26d6744db2bae7f40da7455  gcc/testsuite/gcc.dg/pr27758.c
  8ac7c35b2745d177e2559b278f9d6d71  gcc/testsuite/gcc.dg/pr27802-1.c
! a14ffebc9fbe609a7b7678272f818889  gcc/testsuite/gcc.dg/pr27861-1.c
  7bc556dad247ccc3028d6bf3b3ec678a  gcc/testsuite/gcc.dg/pr27953.c
  bf0e086ad1af577cc43d4d80fa449126  gcc/testsuite/gcc.dg/pr27959-2.c
  f38e89c3a82919f847a667fd3b9cf78b  gcc/testsuite/gcc.dg/pr27959.c
! 440f6c0c584bffe7e30eadd164398867  gcc/testsuite/gcc.dg/pr28121.c
  d7f5dcf05d3f72107ccaabcdd6fe1996  gcc/testsuite/gcc.dg/pr28162.c
  65027578f132f3cd54a11f6e61758f57  gcc/testsuite/gcc.dg/pr28187.c
! 021c1c9f07a71bec122e258c8ba0d396  gcc/testsuite/gcc.dg/pr28243.c
  0f6902e6abbf0059f0b2da7ab0b8af90  gcc/testsuite/gcc.dg/pr28322-2.c
  98c9c6960a5f032b48a5bdfec4958a77  gcc/testsuite/gcc.dg/pr28322-3.c
  79167cdbb3665d767c6639b45245b52b  gcc/testsuite/gcc.dg/pr28322.c
--- 49616,49631 ----
  6a5239e67a6a04988307b7f422c7d2a1  gcc/testsuite/gcc.dg/pr27639.c
  14261cbe894cefc9ddf874210c6146e8  gcc/testsuite/gcc.dg/pr27671-2.c
  42c08da1a26d6744db2bae7f40da7455  gcc/testsuite/gcc.dg/pr27758.c
+ ac0b9e57399df5a81d644002165f9a1f  gcc/testsuite/gcc.dg/pr27800.c
  8ac7c35b2745d177e2559b278f9d6d71  gcc/testsuite/gcc.dg/pr27802-1.c
! 34ba38eae085a82629bdf3f9ffc40272  gcc/testsuite/gcc.dg/pr27861-1.c
  7bc556dad247ccc3028d6bf3b3ec678a  gcc/testsuite/gcc.dg/pr27953.c
  bf0e086ad1af577cc43d4d80fa449126  gcc/testsuite/gcc.dg/pr27959-2.c
  f38e89c3a82919f847a667fd3b9cf78b  gcc/testsuite/gcc.dg/pr27959.c
! 018691d2fd28152caecfa45aa76588a0  gcc/testsuite/gcc.dg/pr28121.c
  d7f5dcf05d3f72107ccaabcdd6fe1996  gcc/testsuite/gcc.dg/pr28162.c
  65027578f132f3cd54a11f6e61758f57  gcc/testsuite/gcc.dg/pr28187.c
! bef6b9c963166bd65bc58b1c0d47a9a7  gcc/testsuite/gcc.dg/pr28243.c
  0f6902e6abbf0059f0b2da7ab0b8af90  gcc/testsuite/gcc.dg/pr28322-2.c
  98c9c6960a5f032b48a5bdfec4958a77  gcc/testsuite/gcc.dg/pr28322-3.c
  79167cdbb3665d767c6639b45245b52b  gcc/testsuite/gcc.dg/pr28322.c
*************** eeb7402398e702c0c6d5fd5907235177  gcc/te
*** 46838,46849 ****
  30b3e3bab3ae152d925933d3bc172cb5  gcc/testsuite/gcc.dg/pr28755.c
  734bb03e798b0888c621cade1ed0e019  gcc/testsuite/gcc.dg/pr28796-1.c
  08cd35e765b0ace733244b684931e31f  gcc/testsuite/gcc.dg/pr28796-2.c
! d1b8379d3f93cbd609f99780a1695cc0  gcc/testsuite/gcc.dg/pr28888.c
  ca06792b688f53956ed815725a0335e8  gcc/testsuite/gcc.dg/pr28911.c
  d0e97ea1d56239299a14668f6dce570b  gcc/testsuite/gcc.dg/pr28935.c
  fa5c8aebace3e5a4d550811e31ea349b  gcc/testsuite/gcc.dg/pr29091.c
  abf61bd08430353ed3c9f86a31d03d7d  gcc/testsuite/gcc.dg/pr29215.c
! f01d173f73d540b3c4e02e6020a8cc2e  gcc/testsuite/gcc.dg/pr29254.c
  161eff1fb461cde37dc4b366730b1d6d  gcc/testsuite/gcc.dg/pr29299.c
  38c278da19f98a3713b6cbad4e16f9d5  gcc/testsuite/gcc.dg/pr29467.c
  cc1930f6034cf77fae64f5f02fbf2dfe  gcc/testsuite/gcc.dg/pr29521-2.c
--- 49637,49648 ----
  30b3e3bab3ae152d925933d3bc172cb5  gcc/testsuite/gcc.dg/pr28755.c
  734bb03e798b0888c621cade1ed0e019  gcc/testsuite/gcc.dg/pr28796-1.c
  08cd35e765b0ace733244b684931e31f  gcc/testsuite/gcc.dg/pr28796-2.c
! acbec4054cc8010acbb04d050f1d8fee  gcc/testsuite/gcc.dg/pr28888.c
  ca06792b688f53956ed815725a0335e8  gcc/testsuite/gcc.dg/pr28911.c
  d0e97ea1d56239299a14668f6dce570b  gcc/testsuite/gcc.dg/pr28935.c
  fa5c8aebace3e5a4d550811e31ea349b  gcc/testsuite/gcc.dg/pr29091.c
  abf61bd08430353ed3c9f86a31d03d7d  gcc/testsuite/gcc.dg/pr29215.c
! 1b1a17cdc1e146f6af188ea451471fc8  gcc/testsuite/gcc.dg/pr29254.c
  161eff1fb461cde37dc4b366730b1d6d  gcc/testsuite/gcc.dg/pr29299.c
  38c278da19f98a3713b6cbad4e16f9d5  gcc/testsuite/gcc.dg/pr29467.c
  cc1930f6034cf77fae64f5f02fbf2dfe  gcc/testsuite/gcc.dg/pr29521-2.c
*************** ac0ebd6f2a612028194ca2e4c50a7e32  gcc/te
*** 46886,46892 ****
  433c77bd4a85a9ab5219740516c0bdf7  gcc/testsuite/gcc.dg/pr31490-3.c
  a8fdcf3c71afcf0f78c1d2abbd96d472  gcc/testsuite/gcc.dg/pr31490-4.c
  90b616ae736dc6d9cfd2768ef4d122ea  gcc/testsuite/gcc.dg/pr31490.c
! 8fb1412aef8afa2bd508a193a999161b  gcc/testsuite/gcc.dg/pr31507-1.c
  f45fda3539b94ddab03c6a8e3c0991f9  gcc/testsuite/gcc.dg/pr31507-2.c
  328e32d38025219898d1fec72816d3f7  gcc/testsuite/gcc.dg/pr31529-1.c
  0de1b5f6db5f9ec14e6058344d8322e3  gcc/testsuite/gcc.dg/pr31529-2.c
--- 49685,49691 ----
  433c77bd4a85a9ab5219740516c0bdf7  gcc/testsuite/gcc.dg/pr31490-3.c
  a8fdcf3c71afcf0f78c1d2abbd96d472  gcc/testsuite/gcc.dg/pr31490-4.c
  90b616ae736dc6d9cfd2768ef4d122ea  gcc/testsuite/gcc.dg/pr31490.c
! 4fb8537f6ef0d4b3f786f0422fbcc77a  gcc/testsuite/gcc.dg/pr31507-1.c
  f45fda3539b94ddab03c6a8e3c0991f9  gcc/testsuite/gcc.dg/pr31507-2.c
  328e32d38025219898d1fec72816d3f7  gcc/testsuite/gcc.dg/pr31529-1.c
  0de1b5f6db5f9ec14e6058344d8322e3  gcc/testsuite/gcc.dg/pr31529-2.c
*************** d021077f6f1e09ca4972e0710e23be99  gcc/te
*** 46919,46925 ****
  11f6b4381219a7e935b021873c00af7a  gcc/testsuite/gcc.dg/pr33136-1.c
  1bcf209d78f7b9f0af52a5fe4ee5ab11  gcc/testsuite/gcc.dg/pr33136-2.c
  3ff35dc997bc04832ef14fbd56f39d01  gcc/testsuite/gcc.dg/pr33136-3.c
! 5e7042ec3b83f061f08a006828da40d2  gcc/testsuite/gcc.dg/pr33238.c
  a9562df8ad8173fd14ea427c3a5198fd  gcc/testsuite/gcc.dg/pr33434-1.c
  b92bf5dce549097ac0e2a1121eb25dbf  gcc/testsuite/gcc.dg/pr33434-2.c
  bb6ab4b7bdb75d6dcc7678b8b3ac2377  gcc/testsuite/gcc.dg/pr33434-3.c
--- 49718,49724 ----
  11f6b4381219a7e935b021873c00af7a  gcc/testsuite/gcc.dg/pr33136-1.c
  1bcf209d78f7b9f0af52a5fe4ee5ab11  gcc/testsuite/gcc.dg/pr33136-2.c
  3ff35dc997bc04832ef14fbd56f39d01  gcc/testsuite/gcc.dg/pr33136-3.c
! d4ea84874283f757e035f719d9f780a8  gcc/testsuite/gcc.dg/pr33238.c
  a9562df8ad8173fd14ea427c3a5198fd  gcc/testsuite/gcc.dg/pr33434-1.c
  b92bf5dce549097ac0e2a1121eb25dbf  gcc/testsuite/gcc.dg/pr33434-2.c
  bb6ab4b7bdb75d6dcc7678b8b3ac2377  gcc/testsuite/gcc.dg/pr33434-3.c
*************** b4f2a06ac91c40ac99189eb4220454e2  gcc/te
*** 46962,46968 ****
  9e2edbe0a21db0061845585f8449a045  gcc/testsuite/gcc.dg/pr34233.c
  3af0ecf3694adf84e13952449d2a29fe  gcc/testsuite/gcc.dg/pr34263.c
  567267f0a4374be3e2297aed17d0c0e0  gcc/testsuite/gcc.dg/pr34351.c
! 1a6438408d068c217afaad09c4232dba  gcc/testsuite/gcc.dg/pr34457-1.c
  38b7526a61b98defa6992f6248c0c5dd  gcc/testsuite/gcc.dg/pr34457-2.c
  aa68fa3d8dfa20560b9de47e80a3622c  gcc/testsuite/gcc.dg/pr34668-1.c
  359814ad5181c471257a63c810847ed3  gcc/testsuite/gcc.dg/pr34668-2.c
--- 49761,49767 ----
  9e2edbe0a21db0061845585f8449a045  gcc/testsuite/gcc.dg/pr34233.c
  3af0ecf3694adf84e13952449d2a29fe  gcc/testsuite/gcc.dg/pr34263.c
  567267f0a4374be3e2297aed17d0c0e0  gcc/testsuite/gcc.dg/pr34351.c
! 0e1ab3a921336fb0be5a8cd426b25ce1  gcc/testsuite/gcc.dg/pr34457-1.c
  38b7526a61b98defa6992f6248c0c5dd  gcc/testsuite/gcc.dg/pr34457-2.c
  aa68fa3d8dfa20560b9de47e80a3622c  gcc/testsuite/gcc.dg/pr34668-1.c
  359814ad5181c471257a63c810847ed3  gcc/testsuite/gcc.dg/pr34668-2.c
*************** d29fecf82e059aa0d64f70de52b8e9fc  gcc/te
*** 46982,46988 ****
  38e96d4867f11c0b46c53480c8b5b3b2  gcc/testsuite/gcc.dg/pr35442.c
  b54af1aa11b43acb774c5e2f4767d1e0  gcc/testsuite/gcc.dg/pr35443.c
  2d10d74b6a22357c6049da8537ff2cb0  gcc/testsuite/gcc.dg/pr35445.c
! b2fc3e6de02802d2f1bd47a32406afb0  gcc/testsuite/gcc.dg/pr35468.c
  b618f891f270bb653c8a5d840b5df77c  gcc/testsuite/gcc.dg/pr35616.c
  6da7287427ee484dc0f3fd2734b36d08  gcc/testsuite/gcc.dg/pr35635.c
  44b83f617c614629827d1f1b0d6c7b8a  gcc/testsuite/gcc.dg/pr35691-1.c
--- 49781,49787 ----
  38e96d4867f11c0b46c53480c8b5b3b2  gcc/testsuite/gcc.dg/pr35442.c
  b54af1aa11b43acb774c5e2f4767d1e0  gcc/testsuite/gcc.dg/pr35443.c
  2d10d74b6a22357c6049da8537ff2cb0  gcc/testsuite/gcc.dg/pr35445.c
! 84ce7ac1e232a176e909b5917c81e3fd  gcc/testsuite/gcc.dg/pr35468.c
  b618f891f270bb653c8a5d840b5df77c  gcc/testsuite/gcc.dg/pr35616.c
  6da7287427ee484dc0f3fd2734b36d08  gcc/testsuite/gcc.dg/pr35635.c
  44b83f617c614629827d1f1b0d6c7b8a  gcc/testsuite/gcc.dg/pr35691-1.c
*************** f5b6d316a7f0ff7d4c3c9f2448831051  gcc/te
*** 46997,47003 ****
  ad031ad703a05e5be72cea154da02616  gcc/testsuite/gcc.dg/pr35742.c
  e19df95f209b2da05645180e97cb9dcd  gcc/testsuite/gcc.dg/pr35746.c
  5cf1f42c9e8d925771759237eaf58b21  gcc/testsuite/gcc.dg/pr35899.c
! 97f34ebb78ee6abd37e13bcd1904a940  gcc/testsuite/gcc.dg/pr36015.c
  27b76ea1429e924faf831222b2aab4fc  gcc/testsuite/gcc.dg/pr36017.c
  6f3d928551bbd184b7e32c31c261947a  gcc/testsuite/gcc.dg/pr36093.c
  ca041af75fe0f09cf1a4cb24575fa6b4  gcc/testsuite/gcc.dg/pr36111.c
--- 49796,49802 ----
  ad031ad703a05e5be72cea154da02616  gcc/testsuite/gcc.dg/pr35742.c
  e19df95f209b2da05645180e97cb9dcd  gcc/testsuite/gcc.dg/pr35746.c
  5cf1f42c9e8d925771759237eaf58b21  gcc/testsuite/gcc.dg/pr35899.c
! 0c04359b4d2f4d01745dc871b6413c6e  gcc/testsuite/gcc.dg/pr36015.c
  27b76ea1429e924faf831222b2aab4fc  gcc/testsuite/gcc.dg/pr36017.c
  6f3d928551bbd184b7e32c31c261947a  gcc/testsuite/gcc.dg/pr36093.c
  ca041af75fe0f09cf1a4cb24575fa6b4  gcc/testsuite/gcc.dg/pr36111.c
*************** db52e3c900158bbd53c044262ce17db8  gcc/te
*** 47048,47056 ****
  737872aabece6d541d206352bbe21bf1  gcc/testsuite/gcc.dg/pr38200.c
  f256411d9a56de7fe89806bb6a01090c  gcc/testsuite/gcc.dg/pr38245-1.c
  0c9f70cfa1271a7d46dc84998fec66fa  gcc/testsuite/gcc.dg/pr38245-2.c
! 758328b9358d17c14f61489f10e4dbaf  gcc/testsuite/gcc.dg/pr38245-3.c
  23f6545bdf33128787c8ee6850f9f537  gcc/testsuite/gcc.dg/pr38245-3.h
! e63e62d280fb3c6b952ee62302d6e5dc  gcc/testsuite/gcc.dg/pr38245-4.c
  985d52b1b1e4b25c02c3c81e99d4e9d9  gcc/testsuite/gcc.dg/pr38338.c
  e51dd7a6f2ead559092825e217c87368  gcc/testsuite/gcc.dg/pr38364.c
  5915c5c7fc49839f34f03a65cf176068  gcc/testsuite/gcc.dg/pr38615.c
--- 49847,49855 ----
  737872aabece6d541d206352bbe21bf1  gcc/testsuite/gcc.dg/pr38200.c
  f256411d9a56de7fe89806bb6a01090c  gcc/testsuite/gcc.dg/pr38245-1.c
  0c9f70cfa1271a7d46dc84998fec66fa  gcc/testsuite/gcc.dg/pr38245-2.c
! 33c6903fc842cebe3b3df62e875025d3  gcc/testsuite/gcc.dg/pr38245-3.c
  23f6545bdf33128787c8ee6850f9f537  gcc/testsuite/gcc.dg/pr38245-3.h
! 2b7176448cb0f938d415b49ce6ff23f8  gcc/testsuite/gcc.dg/pr38245-4.c
  985d52b1b1e4b25c02c3c81e99d4e9d9  gcc/testsuite/gcc.dg/pr38338.c
  e51dd7a6f2ead559092825e217c87368  gcc/testsuite/gcc.dg/pr38364.c
  5915c5c7fc49839f34f03a65cf176068  gcc/testsuite/gcc.dg/pr38615.c
*************** a5fbef8dc1ac30ffbaa04bb729109b3b  gcc/te
*** 47098,47117 ****
  5fd4ab6526215be44a7986411c46235d  gcc/testsuite/gcc.dg/pr40946.c
  473afe14ed300daf161d14dc50f39d79  gcc/testsuite/gcc.dg/pr40971.c
  5e257e83d4f3b15f3b6c897d246c54c0  gcc/testsuite/gcc.dg/pr40989.c
! 3b0cbc09a7c7f5f18b7d1334db94a3f6  gcc/testsuite/gcc.dg/pr41033.c
  613278cdaf6528aece655f0d29bffa72  gcc/testsuite/gcc.dg/pr41123.c
  70564fcc0dc14b340ad199349421fd67  gcc/testsuite/gcc.dg/pr41232.c
! 7603abde99856b935ffb8857636cfe87  gcc/testsuite/gcc.dg/pr41241.c
  36150015563bcedc89d2fab0060de5af  gcc/testsuite/gcc.dg/pr41248.c
  bc059809ab4e6daf50b7a02da5cbf86b  gcc/testsuite/gcc.dg/pr41295.c
  debe1bb0f742ad6fe5c8e1d3952c624d  gcc/testsuite/gcc.dg/pr41340.c
  aa9bb852bac4875a61c8c9843bf4ef2e  gcc/testsuite/gcc.dg/pr41345.c
  5e470e4479566106d5d2e9abcb6f2094  gcc/testsuite/gcc.dg/pr41454.c
! 743bdfd3f54bfa7805513852a448cba1  gcc/testsuite/gcc.dg/pr41470.c
  b7a4c71ad7952f1747c1a5f262be146d  gcc/testsuite/gcc.dg/pr41488.c
  b676a5cec5452169bcd1a954ca680ba9  gcc/testsuite/gcc.dg/pr41551.c
  84a38326fd86393828d30ef78b78b65d  gcc/testsuite/gcc.dg/pr41573.c
! 66b6ad980ee6f5317921484501a0cc40  gcc/testsuite/gcc.dg/pr41574.c
  c6f8f1dfa88977b1173cb0a4989f0127  gcc/testsuite/gcc.dg/pr41619.c
  9c4b10ac05eee1cf7484812291015ee7  gcc/testsuite/gcc.dg/pr41643.c
  f97b6e9544624a8f838191459b559e02  gcc/testsuite/gcc.dg/pr41762.c
--- 49897,49916 ----
  5fd4ab6526215be44a7986411c46235d  gcc/testsuite/gcc.dg/pr40946.c
  473afe14ed300daf161d14dc50f39d79  gcc/testsuite/gcc.dg/pr40971.c
  5e257e83d4f3b15f3b6c897d246c54c0  gcc/testsuite/gcc.dg/pr40989.c
! 824ab889dd48ca10b6f52f54c55a1f44  gcc/testsuite/gcc.dg/pr41033.c
  613278cdaf6528aece655f0d29bffa72  gcc/testsuite/gcc.dg/pr41123.c
  70564fcc0dc14b340ad199349421fd67  gcc/testsuite/gcc.dg/pr41232.c
! ad89b6881435082d8f9617fa2b439943  gcc/testsuite/gcc.dg/pr41241.c
  36150015563bcedc89d2fab0060de5af  gcc/testsuite/gcc.dg/pr41248.c
  bc059809ab4e6daf50b7a02da5cbf86b  gcc/testsuite/gcc.dg/pr41295.c
  debe1bb0f742ad6fe5c8e1d3952c624d  gcc/testsuite/gcc.dg/pr41340.c
  aa9bb852bac4875a61c8c9843bf4ef2e  gcc/testsuite/gcc.dg/pr41345.c
  5e470e4479566106d5d2e9abcb6f2094  gcc/testsuite/gcc.dg/pr41454.c
! dd22a4c4500ebaa0f16e25ca72fdacf8  gcc/testsuite/gcc.dg/pr41470.c
  b7a4c71ad7952f1747c1a5f262be146d  gcc/testsuite/gcc.dg/pr41488.c
  b676a5cec5452169bcd1a954ca680ba9  gcc/testsuite/gcc.dg/pr41551.c
  84a38326fd86393828d30ef78b78b65d  gcc/testsuite/gcc.dg/pr41573.c
! 84de12865866e4c588022676af6bc79d  gcc/testsuite/gcc.dg/pr41574.c
  c6f8f1dfa88977b1173cb0a4989f0127  gcc/testsuite/gcc.dg/pr41619.c
  9c4b10ac05eee1cf7484812291015ee7  gcc/testsuite/gcc.dg/pr41643.c
  f97b6e9544624a8f838191459b559e02  gcc/testsuite/gcc.dg/pr41762.c
*************** b0bb4d16123de6ee42a63b35a586d99d  gcc/te
*** 47148,47154 ****
  7ed26fe314fe4a87eaf4ed5e9a914996  gcc/testsuite/gcc.dg/pr42916.c
  84489522fa054a18682dc4e8aeb724b8  gcc/testsuite/gcc.dg/pr42918.c
  65b1349fb774d994298eea8c32c8427c  gcc/testsuite/gcc.dg/pr42963.c
! 531d499264bafebb26a3414da2306b20  gcc/testsuite/gcc.dg/pr43058.c
  151a2d949b038d9d1244f3e19bb4b884  gcc/testsuite/gcc.dg/pr43082.c
  84589924bd89c9a88bc21575d763ed8c  gcc/testsuite/gcc.dg/pr43084.c
  2a33258322686de73d02b72c05d485c6  gcc/testsuite/gcc.dg/pr43139.c
--- 49947,49953 ----
  7ed26fe314fe4a87eaf4ed5e9a914996  gcc/testsuite/gcc.dg/pr42916.c
  84489522fa054a18682dc4e8aeb724b8  gcc/testsuite/gcc.dg/pr42918.c
  65b1349fb774d994298eea8c32c8427c  gcc/testsuite/gcc.dg/pr42963.c
! 6daf6b614e2662f489bc6f7aee2cebed  gcc/testsuite/gcc.dg/pr43058.c
  151a2d949b038d9d1244f3e19bb4b884  gcc/testsuite/gcc.dg/pr43082.c
  84589924bd89c9a88bc21575d763ed8c  gcc/testsuite/gcc.dg/pr43084.c
  2a33258322686de73d02b72c05d485c6  gcc/testsuite/gcc.dg/pr43139.c
*************** e08f11b28a2bddbd14cf967a5380cf4f  gcc/te
*** 47196,47202 ****
  168ec47c95add9880c662c0010d47b20  gcc/testsuite/gcc.dg/pr44404.c
  4dc599ff3afcfec262412912ba03c3e7  gcc/testsuite/gcc.dg/pr44485.c
  a57b213a5d832995cda2482ed7a4feca  gcc/testsuite/gcc.dg/pr44509.c
! c06ac80d2c1abe06fc3a6414b44e7795  gcc/testsuite/gcc.dg/pr44539.c
  61e11959998ad9e220fb86f26f758add  gcc/testsuite/gcc.dg/pr44545.c
  20f7dc5bd4543539ebd86737722e6bb2  gcc/testsuite/gcc.dg/pr44606.c
  a85f2b0d69f1437e6fee5a4bcbc3317f  gcc/testsuite/gcc.dg/pr44674.c
--- 49995,50001 ----
  168ec47c95add9880c662c0010d47b20  gcc/testsuite/gcc.dg/pr44404.c
  4dc599ff3afcfec262412912ba03c3e7  gcc/testsuite/gcc.dg/pr44485.c
  a57b213a5d832995cda2482ed7a4feca  gcc/testsuite/gcc.dg/pr44509.c
! 0f7d4dc4d9454dc26500520c875a20cb  gcc/testsuite/gcc.dg/pr44539.c
  61e11959998ad9e220fb86f26f758add  gcc/testsuite/gcc.dg/pr44545.c
  20f7dc5bd4543539ebd86737722e6bb2  gcc/testsuite/gcc.dg/pr44606.c
  a85f2b0d69f1437e6fee5a4bcbc3317f  gcc/testsuite/gcc.dg/pr44674.c
*************** a85f2b0d69f1437e6fee5a4bcbc3317f  gcc/te
*** 47205,47211 ****
  f3c4c64f74497d3f3aa244503068274f  gcc/testsuite/gcc.dg/pr44964.c
  3038f2966d8fa1fa9563f1087ea2843e  gcc/testsuite/gcc.dg/pr44971.c
  d871198f1b5c0cdfc7011ededa0b3f76  gcc/testsuite/gcc.dg/pr44974.c
! f8d34eb80e2a3fd954f615a25de29a12  gcc/testsuite/gcc.dg/pr45055.c
  3ff8bb2cf90b6a53dc6afc05772869e1  gcc/testsuite/gcc.dg/pr45071.c
  b0e4d23e49fe1d32690b0b7dfb898ec9  gcc/testsuite/gcc.dg/pr45079.c
  d55900a129d7ce907cdc70b3d8fd18a7  gcc/testsuite/gcc.dg/pr45083.c
--- 50004,50010 ----
  f3c4c64f74497d3f3aa244503068274f  gcc/testsuite/gcc.dg/pr44964.c
  3038f2966d8fa1fa9563f1087ea2843e  gcc/testsuite/gcc.dg/pr44971.c
  d871198f1b5c0cdfc7011ededa0b3f76  gcc/testsuite/gcc.dg/pr44974.c
! 29217ae9c31628d3ce5f5e7889eac96d  gcc/testsuite/gcc.dg/pr45055.c
  3ff8bb2cf90b6a53dc6afc05772869e1  gcc/testsuite/gcc.dg/pr45071.c
  b0e4d23e49fe1d32690b0b7dfb898ec9  gcc/testsuite/gcc.dg/pr45079.c
  d55900a129d7ce907cdc70b3d8fd18a7  gcc/testsuite/gcc.dg/pr45083.c
*************** de8f6616861b6d1833b342b736b8e231  gcc/te
*** 47301,47307 ****
  68478e9da99fdd3731b40f3d03a651fd  gcc/testsuite/gcc.dg/pr47763.c
  7a2a85bfa0c03373633dd33dade6869f  gcc/testsuite/gcc.dg/pr47766.c
  93fdbca487a963bffe3673bd4e4dca28  gcc/testsuite/gcc.dg/pr47881.c
! dbc5bc92f0366b40b8143542b31f2711  gcc/testsuite/gcc.dg/pr47893.c
  c9199dd4c92f0ffefd4e78b3e949d60c  gcc/testsuite/gcc.dg/pr47899.c
  0189febe6f5773718cce787cf5f65a31  gcc/testsuite/gcc.dg/pr47917.c
  bace128075344adae336fb1e86e43651  gcc/testsuite/gcc.dg/pr47991.c
--- 50100,50106 ----
  68478e9da99fdd3731b40f3d03a651fd  gcc/testsuite/gcc.dg/pr47763.c
  7a2a85bfa0c03373633dd33dade6869f  gcc/testsuite/gcc.dg/pr47766.c
  93fdbca487a963bffe3673bd4e4dca28  gcc/testsuite/gcc.dg/pr47881.c
! 659cdbc5f8771583646832cf13592772  gcc/testsuite/gcc.dg/pr47893.c
  c9199dd4c92f0ffefd4e78b3e949d60c  gcc/testsuite/gcc.dg/pr47899.c
  0189febe6f5773718cce787cf5f65a31  gcc/testsuite/gcc.dg/pr47917.c
  bace128075344adae336fb1e86e43651  gcc/testsuite/gcc.dg/pr47991.c
*************** ec73976cbaacaf3afa062d5a5bdbad06  gcc/te
*** 47332,47339 ****
  f9fb6f3088c6d05f16fed58d2960e18e  gcc/testsuite/gcc.dg/pr48442.c
  73c8be725f2a97f4a369422d6729cbe7  gcc/testsuite/gcc.dg/pr48524.c
  b5b33b7d5486b16bd73a76cb5ca45b7b  gcc/testsuite/gcc.dg/pr48524.spec
! bbcdce273f646ba401b1f87914c16782  gcc/testsuite/gcc.dg/pr48552-1.c
! f046adc6a4ad48b81addeb7d73a42166  gcc/testsuite/gcc.dg/pr48552-2.c
  56ae090e67722500754fdd954f4178cd  gcc/testsuite/gcc.dg/pr48616.c
  c9cc6bab59a53095524a6f34b6d0ded7  gcc/testsuite/gcc.dg/pr48685.c
  52c454f48b61b8f7fd4498c7764bc28f  gcc/testsuite/gcc.dg/pr48739-1.c
--- 50131,50138 ----
  f9fb6f3088c6d05f16fed58d2960e18e  gcc/testsuite/gcc.dg/pr48442.c
  73c8be725f2a97f4a369422d6729cbe7  gcc/testsuite/gcc.dg/pr48524.c
  b5b33b7d5486b16bd73a76cb5ca45b7b  gcc/testsuite/gcc.dg/pr48524.spec
! dad8a1fa6099bac148ab0d09005164b4  gcc/testsuite/gcc.dg/pr48552-1.c
! 11e6d03b6b3774bcd58e15ead6baeb7f  gcc/testsuite/gcc.dg/pr48552-2.c
  56ae090e67722500754fdd954f4178cd  gcc/testsuite/gcc.dg/pr48616.c
  c9cc6bab59a53095524a6f34b6d0ded7  gcc/testsuite/gcc.dg/pr48685.c
  52c454f48b61b8f7fd4498c7764bc28f  gcc/testsuite/gcc.dg/pr48739-1.c
*************** edcfee9ce1ef05392e4f14937ca1e469  gcc/te
*** 47348,47354 ****
  b615b21f903900d91ce774ae05959e3c  gcc/testsuite/gcc.dg/pr48975.c
  ad97dd6279431c6abf54054056ce832c  gcc/testsuite/gcc.dg/pr49000.c
  631f47b441349f7a07a2afee796e905d  gcc/testsuite/gcc.dg/pr49069.c
! 5ecf49fd43e0f759c8eab620f094c7eb  gcc/testsuite/gcc.dg/pr49120.c
  c905d9c542d351b6d1496cc1cea3b771  gcc/testsuite/gcc.dg/pr49235.c
  a8a948567c5a4b38f3317e8b09ad6334  gcc/testsuite/gcc.dg/pr49243.c
  8571c0fba63fcb77abc00bec9fbe2b28  gcc/testsuite/gcc.dg/pr49307.c
--- 50147,50153 ----
  b615b21f903900d91ce774ae05959e3c  gcc/testsuite/gcc.dg/pr48975.c
  ad97dd6279431c6abf54054056ce832c  gcc/testsuite/gcc.dg/pr49000.c
  631f47b441349f7a07a2afee796e905d  gcc/testsuite/gcc.dg/pr49069.c
! fb7ee781bd4ec07177155c0afa87432d  gcc/testsuite/gcc.dg/pr49120.c
  c905d9c542d351b6d1496cc1cea3b771  gcc/testsuite/gcc.dg/pr49235.c
  a8a948567c5a4b38f3317e8b09ad6334  gcc/testsuite/gcc.dg/pr49243.c
  8571c0fba63fcb77abc00bec9fbe2b28  gcc/testsuite/gcc.dg/pr49307.c
*************** f6d4109e26fcbd3881b8bc1e032183e2  gcc/te
*** 47386,47397 ****
  c2a0cb4d64ee2f971fb8d2f95348e219  gcc/testsuite/gcc.dg/pr50763-2.c
  ff39d812731c72ea8258e7f888fc7711  gcc/testsuite/gcc.dg/pr50763-5.c
  487e6448fe96570ad113a26bd1a1b4ac  gcc/testsuite/gcc.dg/pr50763.c
! ee6307b3a066e447e283643557f2754d  gcc/testsuite/gcc.dg/pr50764.c
  1031c7e069f10c7074803b7c411a51c3  gcc/testsuite/gcc.dg/pr50765.c
  88c7ee532d164935f62ebf2977c1c839  gcc/testsuite/gcc.dg/pr50827.c
  ccf825775a1ac9cba6fc41c3f794fb13  gcc/testsuite/gcc.dg/pr50908-2.c
  a2c50b9ae8e8a06461e509e1f8a67d58  gcc/testsuite/gcc.dg/pr50908-3.c
! 55f00a40a802692798975b4b43e16cf5  gcc/testsuite/gcc.dg/pr50908.c
  fe25cb51d39e55244d8833a613ff5326  gcc/testsuite/gcc.dg/pr51012-1.c
  9996ed28f7a8675d126a4b860a719f95  gcc/testsuite/gcc.dg/pr51012-2.c
  1bc2af4049363ae42d0ea120ae995748  gcc/testsuite/gcc.dg/pr51034.c
--- 50185,50196 ----
  c2a0cb4d64ee2f971fb8d2f95348e219  gcc/testsuite/gcc.dg/pr50763-2.c
  ff39d812731c72ea8258e7f888fc7711  gcc/testsuite/gcc.dg/pr50763-5.c
  487e6448fe96570ad113a26bd1a1b4ac  gcc/testsuite/gcc.dg/pr50763.c
! 057f2f4b7d8161a7bfef39104b6c9d90  gcc/testsuite/gcc.dg/pr50764.c
  1031c7e069f10c7074803b7c411a51c3  gcc/testsuite/gcc.dg/pr50765.c
  88c7ee532d164935f62ebf2977c1c839  gcc/testsuite/gcc.dg/pr50827.c
  ccf825775a1ac9cba6fc41c3f794fb13  gcc/testsuite/gcc.dg/pr50908-2.c
  a2c50b9ae8e8a06461e509e1f8a67d58  gcc/testsuite/gcc.dg/pr50908-3.c
! c27fb5bf867abdbb1ade44bcf7b84757  gcc/testsuite/gcc.dg/pr50908.c
  fe25cb51d39e55244d8833a613ff5326  gcc/testsuite/gcc.dg/pr51012-1.c
  9996ed28f7a8675d126a4b860a719f95  gcc/testsuite/gcc.dg/pr51012-2.c
  1bc2af4049363ae42d0ea120ae995748  gcc/testsuite/gcc.dg/pr51034.c
*************** fe25cb51d39e55244d8833a613ff5326  gcc/te
*** 47400,47406 ****
  3603bc3c1e2dec2c9d160a45fd75ceab  gcc/testsuite/gcc.dg/pr51321.c
  2c6cc5baeea8764085267ec7119fa53f  gcc/testsuite/gcc.dg/pr51408.c
  a877df6b8af0c427213221965e83cc30  gcc/testsuite/gcc.dg/pr51481.c
! f4586263d63b7b29aa2955b5cf59befc  gcc/testsuite/gcc.dg/pr51491-2.c
  b53799f3ef1cc311084d427e66d2a57f  gcc/testsuite/gcc.dg/pr51491.c
  fdc9d4f1e4d37519ce2b5fd60ad55bc7  gcc/testsuite/gcc.dg/pr51505.c
  1f9c34b91f8257e802d1edf90bbf6ca5  gcc/testsuite/gcc.dg/pr51519.c
--- 50199,50205 ----
  3603bc3c1e2dec2c9d160a45fd75ceab  gcc/testsuite/gcc.dg/pr51321.c
  2c6cc5baeea8764085267ec7119fa53f  gcc/testsuite/gcc.dg/pr51408.c
  a877df6b8af0c427213221965e83cc30  gcc/testsuite/gcc.dg/pr51481.c
! 622683983de2db47cb528eb2cf970679  gcc/testsuite/gcc.dg/pr51491-2.c
  b53799f3ef1cc311084d427e66d2a57f  gcc/testsuite/gcc.dg/pr51491.c
  fdc9d4f1e4d37519ce2b5fd60ad55bc7  gcc/testsuite/gcc.dg/pr51505.c
  1f9c34b91f8257e802d1edf90bbf6ca5  gcc/testsuite/gcc.dg/pr51519.c
*************** b5d06f2e5376c80c6af3dfc49e8e7d9b  gcc/te
*** 47434,47441 ****
  3833e0dd535fb7e39e7f9c57a8fbd764  gcc/testsuite/gcc.dg/pr51957-1.c
  e4abfcb4bb565d7c040f695bcf923e45  gcc/testsuite/gcc.dg/pr51957-1.h
  00d0c99608cf6d806d4c01d184be63be  gcc/testsuite/gcc.dg/pr51957-2.c
! 7163260f68ecee4479eee42794a45a00  gcc/testsuite/gcc.dg/pr51990-2.c
! ab55e2d70f56fc60c2301c9605578823  gcc/testsuite/gcc.dg/pr51990.c
  f27899cbb98c9961e40ff271a75c27b5  gcc/testsuite/gcc.dg/pr52045.c
  08fe6d6c2dcbb0e65405cf761113f072  gcc/testsuite/gcc.dg/pr52046.c
  816645c5b23c2eb909c997ab60d2421a  gcc/testsuite/gcc.dg/pr52086.c
--- 50233,50240 ----
  3833e0dd535fb7e39e7f9c57a8fbd764  gcc/testsuite/gcc.dg/pr51957-1.c
  e4abfcb4bb565d7c040f695bcf923e45  gcc/testsuite/gcc.dg/pr51957-1.h
  00d0c99608cf6d806d4c01d184be63be  gcc/testsuite/gcc.dg/pr51957-2.c
! 66e630e2a07873f208c9690428bd7e62  gcc/testsuite/gcc.dg/pr51990-2.c
! a7576e0d90174bf1201b8d4944e3b51c  gcc/testsuite/gcc.dg/pr51990.c
  f27899cbb98c9961e40ff271a75c27b5  gcc/testsuite/gcc.dg/pr52045.c
  08fe6d6c2dcbb0e65405cf761113f072  gcc/testsuite/gcc.dg/pr52046.c
  816645c5b23c2eb909c997ab60d2421a  gcc/testsuite/gcc.dg/pr52086.c
*************** a122916cb52fd117f5920fe8161fd4fc  gcc/te
*** 47488,47494 ****
  8f1936750f8bd3feaa58bcfae63f414f  gcc/testsuite/gcc.dg/pr54087.c
  b81900d9ad3fcbe05c4ed65ac7256e11  gcc/testsuite/gcc.dg/pr54113.c
  07824df135f4349df5c421e2761c7ecc  gcc/testsuite/gcc.dg/pr54121.c
! ea5f69dac6c7008be4f907d24e559c42  gcc/testsuite/gcc.dg/pr54346.c
  d29cdb734b585413f64cca717aec325c  gcc/testsuite/gcc.dg/pr54355.c
  083b3830e09aa426eb24d3234d3d291a  gcc/testsuite/gcc.dg/pr54363.c
  612ee5bfe180d9a9545ce42edbf4098c  gcc/testsuite/gcc.dg/pr54472.c
--- 50287,50293 ----
  8f1936750f8bd3feaa58bcfae63f414f  gcc/testsuite/gcc.dg/pr54087.c
  b81900d9ad3fcbe05c4ed65ac7256e11  gcc/testsuite/gcc.dg/pr54113.c
  07824df135f4349df5c421e2761c7ecc  gcc/testsuite/gcc.dg/pr54121.c
! f0c933d01f5ddce173c4004bdb758cf0  gcc/testsuite/gcc.dg/pr54346.c
  d29cdb734b585413f64cca717aec325c  gcc/testsuite/gcc.dg/pr54355.c
  083b3830e09aa426eb24d3234d3d291a  gcc/testsuite/gcc.dg/pr54363.c
  612ee5bfe180d9a9545ce42edbf4098c  gcc/testsuite/gcc.dg/pr54472.c
*************** c18cf07a939ac4f202afcfc99dd196ee  gcc/te
*** 47530,47536 ****
  06bed06ab5a2d6848af476b5812692d7  gcc/testsuite/gcc.dg/pr56125.c
  ae61d6ef36c036005cfa8708ddee4ccb  gcc/testsuite/gcc.dg/pr56144.c
  0d3c5113440fef039272434edbeb2581  gcc/testsuite/gcc.dg/pr56167.c
! e60323e805460149e6ce87b53c1c369c  gcc/testsuite/gcc.dg/pr56228.c
  d49dc3b48eaa905ccfaa6054fcbc7232  gcc/testsuite/gcc.dg/pr56275.c
  b0bca21fde329a6739491ad61629bde7  gcc/testsuite/gcc.dg/pr56341-1.c
  f21905f3056d5edda991e23e59faeded  gcc/testsuite/gcc.dg/pr56341-2.c
--- 50329,50335 ----
  06bed06ab5a2d6848af476b5812692d7  gcc/testsuite/gcc.dg/pr56125.c
  ae61d6ef36c036005cfa8708ddee4ccb  gcc/testsuite/gcc.dg/pr56144.c
  0d3c5113440fef039272434edbeb2581  gcc/testsuite/gcc.dg/pr56167.c
! 86db4088b7aa1db528a4933042f01c11  gcc/testsuite/gcc.dg/pr56228.c
  d49dc3b48eaa905ccfaa6054fcbc7232  gcc/testsuite/gcc.dg/pr56275.c
  b0bca21fde329a6739491ad61629bde7  gcc/testsuite/gcc.dg/pr56341-1.c
  f21905f3056d5edda991e23e59faeded  gcc/testsuite/gcc.dg/pr56341-2.c
*************** ec1baca462059881416f58a3adb4588e  gcc/te
*** 47594,47609 ****
  f74a1b310a7e7d6517260ba8c72d9781  gcc/testsuite/gcc.dg/pr58893-0.h
  977825020a548f369cc90adebbd3f7cd  gcc/testsuite/gcc.dg/pr58893.c
  299bc15e44a8667006d0646d07367abe  gcc/testsuite/gcc.dg/pr58981.c
! 8319aadb51d15560ef7f6f21561d2e32  gcc/testsuite/gcc.dg/pr59011.c
  634968f0bdb3a0b294b3e4f5fef1b053  gcc/testsuite/gcc.dg/pr59020.c
  6882ed698e25adc745004a81c4c59534  gcc/testsuite/gcc.dg/pr59261.c
  7fe0e632198a8590275706c4b1072c64  gcc/testsuite/gcc.dg/pr59304.c
  f54ccbe52911af9cf321307f8a5a59f7  gcc/testsuite/gcc.dg/pr59350-2.c
  704b36b7b58795af9bf9d15b48cb398a  gcc/testsuite/gcc.dg/pr59350.c
  deafb79e049ef501e2ec2c5790980392  gcc/testsuite/gcc.dg/pr59351.c
! 9e4cb2bc29130b5b9d24e65d1f1660ce  gcc/testsuite/gcc.dg/pr59418.c
  b251d85be9287376d6d25c7e58b66101  gcc/testsuite/gcc.dg/pr59471.c
! 9a43e00eba3fd0eefb7a0854b0b7f452  gcc/testsuite/gcc.dg/pr59523.c
  aea8bec089c6d2a626215ee12c116402  gcc/testsuite/gcc.dg/pr59605-2.c
  3cc91310c2b368813c209fd05c92ab4f  gcc/testsuite/gcc.dg/pr59605.c
  56c5b356e100ce7002e76a634c37e58f  gcc/testsuite/gcc.dg/pr59630.c
--- 50393,50408 ----
  f74a1b310a7e7d6517260ba8c72d9781  gcc/testsuite/gcc.dg/pr58893-0.h
  977825020a548f369cc90adebbd3f7cd  gcc/testsuite/gcc.dg/pr58893.c
  299bc15e44a8667006d0646d07367abe  gcc/testsuite/gcc.dg/pr58981.c
! 14cefbd9364068522b289c9670f3a54f  gcc/testsuite/gcc.dg/pr59011.c
  634968f0bdb3a0b294b3e4f5fef1b053  gcc/testsuite/gcc.dg/pr59020.c
  6882ed698e25adc745004a81c4c59534  gcc/testsuite/gcc.dg/pr59261.c
  7fe0e632198a8590275706c4b1072c64  gcc/testsuite/gcc.dg/pr59304.c
  f54ccbe52911af9cf321307f8a5a59f7  gcc/testsuite/gcc.dg/pr59350-2.c
  704b36b7b58795af9bf9d15b48cb398a  gcc/testsuite/gcc.dg/pr59350.c
  deafb79e049ef501e2ec2c5790980392  gcc/testsuite/gcc.dg/pr59351.c
! 913bbecc0b27c6838a18c8a660ee898c  gcc/testsuite/gcc.dg/pr59418.c
  b251d85be9287376d6d25c7e58b66101  gcc/testsuite/gcc.dg/pr59471.c
! 22a8bcb71271da789086e4f7ac02cba5  gcc/testsuite/gcc.dg/pr59523.c
  aea8bec089c6d2a626215ee12c116402  gcc/testsuite/gcc.dg/pr59605-2.c
  3cc91310c2b368813c209fd05c92ab4f  gcc/testsuite/gcc.dg/pr59605.c
  56c5b356e100ce7002e76a634c37e58f  gcc/testsuite/gcc.dg/pr59630.c
*************** af1eaa4b7a856cbdbc42c2135829b05a  gcc/te
*** 47634,47647 ****
  2dd6997113b68fc47c336c68691d0714  gcc/testsuite/gcc.dg/pr60257.c
  cb38c52d23f5c1907d9625b9b88ec5a8  gcc/testsuite/gcc.dg/pr60267.c
  4418d5fdf16de79a6c008c7feb83181c  gcc/testsuite/gcc.dg/pr60351.c
  9aae35a21ca6b69f0f3fbbfc0a4a8817  gcc/testsuite/gcc.dg/pr60485-1.c
  2f16adca4bc0fdda359fc1a9f8ab1fd8  gcc/testsuite/gcc.dg/pr60485-2.c
  84948d88232816d078a35391a6574f93  gcc/testsuite/gcc.dg/pr60598.c
! f7d525a6d73480331c44121b5654c3ea  gcc/testsuite/gcc.dg/pr60647-1.c
  b4281f3017cf6934e3169ca10db5d78b  gcc/testsuite/gcc.dg/pr60647-2.c
  c124a95a6e3650b96ef3058205b5ac36  gcc/testsuite/gcc.dg/pr60704.c
  2e65051749c9d624774982a8900d435e  gcc/testsuite/gcc.dg/pr60784.c
! 2fcb562c88ced77b7ac0bce42b64f443  gcc/testsuite/gcc.dg/pr60797.c
  5559e398e075ca7f9141308579b0fac6  gcc/testsuite/gcc.dg/pr60844.c
  fd5b5565eb3ceb4dc405f80234ea32f5  gcc/testsuite/gcc.dg/pr60866.c
  3ec83a08d3278e16deac219a0e98716f  gcc/testsuite/gcc.dg/pr60915.c
--- 50433,50447 ----
  2dd6997113b68fc47c336c68691d0714  gcc/testsuite/gcc.dg/pr60257.c
  cb38c52d23f5c1907d9625b9b88ec5a8  gcc/testsuite/gcc.dg/pr60267.c
  4418d5fdf16de79a6c008c7feb83181c  gcc/testsuite/gcc.dg/pr60351.c
+ 74d2f07c536eb07a50f2cc7267769ed8  gcc/testsuite/gcc.dg/pr60440-1.c
  9aae35a21ca6b69f0f3fbbfc0a4a8817  gcc/testsuite/gcc.dg/pr60485-1.c
  2f16adca4bc0fdda359fc1a9f8ab1fd8  gcc/testsuite/gcc.dg/pr60485-2.c
  84948d88232816d078a35391a6574f93  gcc/testsuite/gcc.dg/pr60598.c
! bda7f578f9e3b8036aacf235ecfb6843  gcc/testsuite/gcc.dg/pr60647-1.c
  b4281f3017cf6934e3169ca10db5d78b  gcc/testsuite/gcc.dg/pr60647-2.c
  c124a95a6e3650b96ef3058205b5ac36  gcc/testsuite/gcc.dg/pr60704.c
  2e65051749c9d624774982a8900d435e  gcc/testsuite/gcc.dg/pr60784.c
! ca7c319ae573ff4f2c1fdde105b552b8  gcc/testsuite/gcc.dg/pr60797.c
  5559e398e075ca7f9141308579b0fac6  gcc/testsuite/gcc.dg/pr60844.c
  fd5b5565eb3ceb4dc405f80234ea32f5  gcc/testsuite/gcc.dg/pr60866.c
  3ec83a08d3278e16deac219a0e98716f  gcc/testsuite/gcc.dg/pr60915.c
*************** d94b234e8cc14c721761c3e89ac2ba92  gcc/te
*** 47660,47666 ****
  a9f1277a67e8ebfd814ebc53b9c5ab6b  gcc/testsuite/gcc.dg/pr61240.c
  e78afba5e0f842706348dc5ceea2cafe  gcc/testsuite/gcc.dg/pr61441.c
  13078fd1df30fc4ae73e455859e3abb7  gcc/testsuite/gcc.dg/pr61529.c
! 694a3b4b22402790f20425594f68b786  gcc/testsuite/gcc.dg/pr61561.c
  cea828a43f670db18b27e331441da562  gcc/testsuite/gcc.dg/pr61583.c
  19dc91f48157733d6b3adc98dc93dc6d  gcc/testsuite/gcc.dg/pr61692.c
  59b15253ea173f2623f8ac29eb2e679f  gcc/testsuite/gcc.dg/pr61756.c
--- 50460,50466 ----
  a9f1277a67e8ebfd814ebc53b9c5ab6b  gcc/testsuite/gcc.dg/pr61240.c
  e78afba5e0f842706348dc5ceea2cafe  gcc/testsuite/gcc.dg/pr61441.c
  13078fd1df30fc4ae73e455859e3abb7  gcc/testsuite/gcc.dg/pr61529.c
! dd288b0f40a7954ade18222af496b660  gcc/testsuite/gcc.dg/pr61561.c
  cea828a43f670db18b27e331441da562  gcc/testsuite/gcc.dg/pr61583.c
  19dc91f48157733d6b3adc98dc93dc6d  gcc/testsuite/gcc.dg/pr61692.c
  59b15253ea173f2623f8ac29eb2e679f  gcc/testsuite/gcc.dg/pr61756.c
*************** c9eccfa7358c8816487abbb03f47b145  gcc/te
*** 47710,47718 ****
  7a18498b84a998ed0ca5a69683eae4fe  gcc/testsuite/gcc.dg/pr63665.c
  86f58441bb7fed8fd41b014ff4ef2c4e  gcc/testsuite/gcc.dg/pr63743.c
  55a7822996c650c7722ec1d8f8740c1d  gcc/testsuite/gcc.dg/pr63748.c
! 10c3af4877039db48e674d0350d27bac  gcc/testsuite/gcc.dg/pr63762.c
  a6c1d42f5e881aa3379f8ffbdc853f1e  gcc/testsuite/gcc.dg/pr63770.c
! 2dbfeaf98ebb78db7c60aa034dd5f420  gcc/testsuite/gcc.dg/pr63804.c
  97019d46e269cf05d9bd2ad062ae2357  gcc/testsuite/gcc.dg/pr63835.c
  aeacd5c07c392b8e3d52f734d6b85e71  gcc/testsuite/gcc.dg/pr63856.c
  d259a0c37249eaf79e460f9b3de71519  gcc/testsuite/gcc.dg/pr63877.c
--- 50510,50518 ----
  7a18498b84a998ed0ca5a69683eae4fe  gcc/testsuite/gcc.dg/pr63665.c
  86f58441bb7fed8fd41b014ff4ef2c4e  gcc/testsuite/gcc.dg/pr63743.c
  55a7822996c650c7722ec1d8f8740c1d  gcc/testsuite/gcc.dg/pr63748.c
! 41e58cd9777739137b2ea2c5cdc5a1e3  gcc/testsuite/gcc.dg/pr63762.c
  a6c1d42f5e881aa3379f8ffbdc853f1e  gcc/testsuite/gcc.dg/pr63770.c
! 71820921d2551d55db92b2473d2720dc  gcc/testsuite/gcc.dg/pr63804.c
  97019d46e269cf05d9bd2ad062ae2357  gcc/testsuite/gcc.dg/pr63835.c
  aeacd5c07c392b8e3d52f734d6b85e71  gcc/testsuite/gcc.dg/pr63856.c
  d259a0c37249eaf79e460f9b3de71519  gcc/testsuite/gcc.dg/pr63877.c
*************** c23841d48ac4fbe59ef7a2cd176fd750  gcc/te
*** 47797,47803 ****
  c3e69244e462c1b74b2404f49f8cce1e  gcc/testsuite/gcc.dg/pr67089-3.c
  ad0dbe344de4fe75aefcad510408d5e2  gcc/testsuite/gcc.dg/pr67089-4.c
  e9b533c93c9cdb9613b27705829e1b3b  gcc/testsuite/gcc.dg/pr67089-5.c
! 10f9cdfabf7eb42fc86f59e68961a5a8  gcc/testsuite/gcc.dg/pr67089-6.c
  42f78cc147d6f10c78ec57832b63e866  gcc/testsuite/gcc.dg/pr67089-7.c
  ad39a3c3a67bb2fdac1569eb047957a4  gcc/testsuite/gcc.dg/pr67107.c
  ce8be8eb7b1121e35cd0039846df4de3  gcc/testsuite/gcc.dg/pr67271.c
--- 50597,50603 ----
  c3e69244e462c1b74b2404f49f8cce1e  gcc/testsuite/gcc.dg/pr67089-3.c
  ad0dbe344de4fe75aefcad510408d5e2  gcc/testsuite/gcc.dg/pr67089-4.c
  e9b533c93c9cdb9613b27705829e1b3b  gcc/testsuite/gcc.dg/pr67089-5.c
! 8a3dd74c4ddc69bafab23640d48a718a  gcc/testsuite/gcc.dg/pr67089-6.c
  42f78cc147d6f10c78ec57832b63e866  gcc/testsuite/gcc.dg/pr67089-7.c
  ad39a3c3a67bb2fdac1569eb047957a4  gcc/testsuite/gcc.dg/pr67107.c
  ce8be8eb7b1121e35cd0039846df4de3  gcc/testsuite/gcc.dg/pr67271.c
*************** fe7ef582e37d9691649dc50a2e0357f2  gcc/te
*** 47835,47841 ****
  a9a2c019da5ff110f4ba92e331569775  gcc/testsuite/gcc.dg/pr68217.c
  676afbe2455b670ba0309593d30aeb84  gcc/testsuite/gcc.dg/pr68286.c
  244993ecc8cf3673159d65b46a85e488  gcc/testsuite/gcc.dg/pr68306-2.c
! 821e8f1eb04499179f7605c25960f8f3  gcc/testsuite/gcc.dg/pr68306-3.c
  55e36468fb3a1a867386a779d86b0d1e  gcc/testsuite/gcc.dg/pr68306.c
  8ae8f7633c4411f5a9d099567688c09e  gcc/testsuite/gcc.dg/pr68317.c
  4302d0d3d03ae8942af854e5cd33c8e3  gcc/testsuite/gcc.dg/pr68320.c
--- 50635,50641 ----
  a9a2c019da5ff110f4ba92e331569775  gcc/testsuite/gcc.dg/pr68217.c
  676afbe2455b670ba0309593d30aeb84  gcc/testsuite/gcc.dg/pr68286.c
  244993ecc8cf3673159d65b46a85e488  gcc/testsuite/gcc.dg/pr68306-2.c
! 804b2b7a67238918422ecd95bfe0ddc0  gcc/testsuite/gcc.dg/pr68306-3.c
  55e36468fb3a1a867386a779d86b0d1e  gcc/testsuite/gcc.dg/pr68306.c
  8ae8f7633c4411f5a9d099567688c09e  gcc/testsuite/gcc.dg/pr68317.c
  4302d0d3d03ae8942af854e5cd33c8e3  gcc/testsuite/gcc.dg/pr68320.c
*************** a9a2c019da5ff110f4ba92e331569775  gcc/te
*** 47846,47852 ****
  e6f6937c9e34a019ef1623c282971f9a  gcc/testsuite/gcc.dg/pr68435.c
  180685ff5aaf4ddc0d3f2d1a39176fa5  gcc/testsuite/gcc.dg/pr68474.c
  934181169c6a5ecc22506c06a8916b09  gcc/testsuite/gcc.dg/pr68513.c
! 17dcc791ef1d73cb0a521d8afdd4bbff  gcc/testsuite/gcc.dg/pr68533.c
  3dc1c7c15262efd3f52961d59b61d808  gcc/testsuite/gcc.dg/pr68595.c
  bd42af7fb18f01a785450035db393bd0  gcc/testsuite/gcc.dg/pr68668.c
  ec6fafa240e762cbf9e1bfcbf4d8257d  gcc/testsuite/gcc.dg/pr68670-1.c
--- 50646,50652 ----
  e6f6937c9e34a019ef1623c282971f9a  gcc/testsuite/gcc.dg/pr68435.c
  180685ff5aaf4ddc0d3f2d1a39176fa5  gcc/testsuite/gcc.dg/pr68474.c
  934181169c6a5ecc22506c06a8916b09  gcc/testsuite/gcc.dg/pr68513.c
! d7d2801572ebb8156617b2478adc58c0  gcc/testsuite/gcc.dg/pr68533.c
  3dc1c7c15262efd3f52961d59b61d808  gcc/testsuite/gcc.dg/pr68595.c
  bd42af7fb18f01a785450035db393bd0  gcc/testsuite/gcc.dg/pr68668.c
  ec6fafa240e762cbf9e1bfcbf4d8257d  gcc/testsuite/gcc.dg/pr68670-1.c
*************** ea32f1c8046a96724b1e08bfc887f5e6  gcc/te
*** 47866,47872 ****
  55bdde3017c469b5c2cc6de510d0701e  gcc/testsuite/gcc.dg/pr69071.c
  31b60f3303cfcbc3553f84ae11924b0d  gcc/testsuite/gcc.dg/pr69097-1.c
  888c4c2ebea746632d3bed498e889d29  gcc/testsuite/gcc.dg/pr69097-2.c
! 611ad8b99818e4242cc8a5596b178c49  gcc/testsuite/gcc.dg/pr69156.c
  cc54694cf1e606b299ce05a8c96ffd5d  gcc/testsuite/gcc.dg/pr69162.c
  7506e2016bb4a153119aed31e41f2aec  gcc/testsuite/gcc.dg/pr69167.c
  fe217a0107a76d8937b20f139ada0789  gcc/testsuite/gcc.dg/pr69169.c
--- 50666,50672 ----
  55bdde3017c469b5c2cc6de510d0701e  gcc/testsuite/gcc.dg/pr69071.c
  31b60f3303cfcbc3553f84ae11924b0d  gcc/testsuite/gcc.dg/pr69097-1.c
  888c4c2ebea746632d3bed498e889d29  gcc/testsuite/gcc.dg/pr69097-2.c
! b28666155fb55f28e27660c558cb457c  gcc/testsuite/gcc.dg/pr69156.c
  cc54694cf1e606b299ce05a8c96ffd5d  gcc/testsuite/gcc.dg/pr69162.c
  7506e2016bb4a153119aed31e41f2aec  gcc/testsuite/gcc.dg/pr69167.c
  fe217a0107a76d8937b20f139ada0789  gcc/testsuite/gcc.dg/pr69169.c
*************** e5465e812c2bfb2c8c6f80e5805669d2  gcc/te
*** 47947,47953 ****
  f04d3dbaed079d814d7ade39b19f5d16  gcc/testsuite/gcc.dg/pr70920-3.c
  6584348a86d8369a741a771480f0a6ed  gcc/testsuite/gcc.dg/pr70920-4.c
  0c7a5fc07d2ac3fe95b4a3f606e9fddc  gcc/testsuite/gcc.dg/pr71006.c
! b2932869d7ba5888238dbb86f20e94de  gcc/testsuite/gcc.dg/pr71071.c
  e05d98a959f2f668c84f75a7ef1c1bf5  gcc/testsuite/gcc.dg/pr71077.c
  83559b2822c7f3b987de48e20bd621f4  gcc/testsuite/gcc.dg/pr71084.c
  3c164324f0b2787d9f354342477a3843  gcc/testsuite/gcc.dg/pr71104-1.c
--- 50747,50753 ----
  f04d3dbaed079d814d7ade39b19f5d16  gcc/testsuite/gcc.dg/pr70920-3.c
  6584348a86d8369a741a771480f0a6ed  gcc/testsuite/gcc.dg/pr70920-4.c
  0c7a5fc07d2ac3fe95b4a3f606e9fddc  gcc/testsuite/gcc.dg/pr71006.c
! 58c6575b277433b20a4a24fd6c7e17c8  gcc/testsuite/gcc.dg/pr71071.c
  e05d98a959f2f668c84f75a7ef1c1bf5  gcc/testsuite/gcc.dg/pr71077.c
  83559b2822c7f3b987de48e20bd621f4  gcc/testsuite/gcc.dg/pr71084.c
  3c164324f0b2787d9f354342477a3843  gcc/testsuite/gcc.dg/pr71104-1.c
*************** d8d8510fc83b9bdf4fa510240dde0db8  gcc/te
*** 47976,47982 ****
  b5e915cf9688e0b16f969304be067d93  gcc/testsuite/gcc.dg/pr71969-2.c
  2b3904df93553597a0d05bae37682f8d  gcc/testsuite/gcc.dg/pr71969-3.c
  c9312ef03c2b6660d66f7f253edd0a95  gcc/testsuite/gcc.dg/pr72816.c
! 7dccc6199f1e3102df3ae099b5a0be92  gcc/testsuite/gcc.dg/pr7356-2.c
  84138d6d5126afb1dec82b08cbc62d51  gcc/testsuite/gcc.dg/pr7356.c
  959c80dd8f34c689e655cb0bc2549573  gcc/testsuite/gcc.dg/pr76783.c
  fc378856d9a61c0c1d724713171d1d7f  gcc/testsuite/gcc.dg/pr77323.c
--- 50776,50782 ----
  b5e915cf9688e0b16f969304be067d93  gcc/testsuite/gcc.dg/pr71969-2.c
  2b3904df93553597a0d05bae37682f8d  gcc/testsuite/gcc.dg/pr71969-3.c
  c9312ef03c2b6660d66f7f253edd0a95  gcc/testsuite/gcc.dg/pr72816.c
! 9d8ed4a20c9722de2099b2c053d0b884  gcc/testsuite/gcc.dg/pr7356-2.c
  84138d6d5126afb1dec82b08cbc62d51  gcc/testsuite/gcc.dg/pr7356.c
  959c80dd8f34c689e655cb0bc2549573  gcc/testsuite/gcc.dg/pr76783.c
  fc378856d9a61c0c1d724713171d1d7f  gcc/testsuite/gcc.dg/pr77323.c
*************** a45d8a7ea58bf6c772c8fa0d9d6f1ca5  gcc/te
*** 47993,48010 ****
  7b4000046bfacc476cc593d31d924258  gcc/testsuite/gcc.dg/pr77834.c
  8fb4c574c5adf7215daaa687ac164da5  gcc/testsuite/gcc.dg/pr77860.c
  348044d86200a84fadb30b265b7ba207  gcc/testsuite/gcc.dg/pr77862.c
! 9bab0eefb1f67d8cb761385476ed39f4  gcc/testsuite/gcc.dg/pr77975.c
  a777a206da2c1bfe3ba53d32fb8b2e9c  gcc/testsuite/gcc.dg/pr78138.c
  427e79810052c59fa2a8c9b43fbdfa29  gcc/testsuite/gcc.dg/pr78148.c
! 38c8c806f957a135e11b0daa90cc9de6  gcc/testsuite/gcc.dg/pr78185.c
  aecacbb64d3497c484426d338ffae43d  gcc/testsuite/gcc.dg/pr78213.c
  aa86169902d2471ece373c0dddd5232b  gcc/testsuite/gcc.dg/pr78241.c
  7bfaca350ee545dbe10363c435dfa736  gcc/testsuite/gcc.dg/pr78333.c
  21d56f799d53b50dacd02048a1b73756  gcc/testsuite/gcc.dg/pr78384.c
! d1c0c35f81b189cc2e7a585f0fba596c  gcc/testsuite/gcc.dg/pr78408-1.c
  07834f595669948f323b820ebe44b1e2  gcc/testsuite/gcc.dg/pr78408-2.c
  6f2d058063e1aeba0dd1950b50cd76e6  gcc/testsuite/gcc.dg/pr78445.c
! 443cf93af753f08628b6b57283dbbfed  gcc/testsuite/gcc.dg/pr78468.c
  bc1678a9ca084c4a9b93bc2d19365725  gcc/testsuite/gcc.dg/pr78526.c
  03d500fd75a872ba569ed89c1c933de5  gcc/testsuite/gcc.dg/pr78540.c
  fbe4bd1ea3e4c9d1b4dbef309a85bcbb  gcc/testsuite/gcc.dg/pr78547.c
--- 50793,50810 ----
  7b4000046bfacc476cc593d31d924258  gcc/testsuite/gcc.dg/pr77834.c
  8fb4c574c5adf7215daaa687ac164da5  gcc/testsuite/gcc.dg/pr77860.c
  348044d86200a84fadb30b265b7ba207  gcc/testsuite/gcc.dg/pr77862.c
! e122dc98b70e5fc3d729057a5419c246  gcc/testsuite/gcc.dg/pr77975.c
  a777a206da2c1bfe3ba53d32fb8b2e9c  gcc/testsuite/gcc.dg/pr78138.c
  427e79810052c59fa2a8c9b43fbdfa29  gcc/testsuite/gcc.dg/pr78148.c
! 35601263740010ca66a2a19bcdc48bfd  gcc/testsuite/gcc.dg/pr78185.c
  aecacbb64d3497c484426d338ffae43d  gcc/testsuite/gcc.dg/pr78213.c
  aa86169902d2471ece373c0dddd5232b  gcc/testsuite/gcc.dg/pr78241.c
  7bfaca350ee545dbe10363c435dfa736  gcc/testsuite/gcc.dg/pr78333.c
  21d56f799d53b50dacd02048a1b73756  gcc/testsuite/gcc.dg/pr78384.c
! f1947a8efa4c6e3b1a2c6ef79bc5fc2e  gcc/testsuite/gcc.dg/pr78408-1.c
  07834f595669948f323b820ebe44b1e2  gcc/testsuite/gcc.dg/pr78408-2.c
  6f2d058063e1aeba0dd1950b50cd76e6  gcc/testsuite/gcc.dg/pr78445.c
! 3fcd5b7bdc484a6133ea1b07bf2bd0a7  gcc/testsuite/gcc.dg/pr78468.c
  bc1678a9ca084c4a9b93bc2d19365725  gcc/testsuite/gcc.dg/pr78526.c
  03d500fd75a872ba569ed89c1c933de5  gcc/testsuite/gcc.dg/pr78540.c
  fbe4bd1ea3e4c9d1b4dbef309a85bcbb  gcc/testsuite/gcc.dg/pr78547.c
*************** b4a62cbbba0365642b3f9855baa89f4e  gcc/te
*** 48018,48024 ****
  c39c9c2cec1ded6fe71f7200c63c5bb9  gcc/testsuite/gcc.dg/pr78768.c
  fc3c051c8f6f62fff4e6ec32193c6410  gcc/testsuite/gcc.dg/pr78775.c
  fa07a2ef973078cf07d4111cc5563e7b  gcc/testsuite/gcc.dg/pr78888.c
! e7bb380d7beeeff7a5a58c2dd994fde9  gcc/testsuite/gcc.dg/pr78902.c
  c45bdb26d88856006e8d87dbae3a8dc1  gcc/testsuite/gcc.dg/pr78957.c
  5d472619627fb0fe87a1ab11a2d43030  gcc/testsuite/gcc.dg/pr78965.c
  1e4ac73f62970b2d036dba88947ba85c  gcc/testsuite/gcc.dg/pr78973-2.c
--- 50818,50824 ----
  c39c9c2cec1ded6fe71f7200c63c5bb9  gcc/testsuite/gcc.dg/pr78768.c
  fc3c051c8f6f62fff4e6ec32193c6410  gcc/testsuite/gcc.dg/pr78775.c
  fa07a2ef973078cf07d4111cc5563e7b  gcc/testsuite/gcc.dg/pr78888.c
! 797293e9d5706bf4688c318837d97a1c  gcc/testsuite/gcc.dg/pr78902.c
  c45bdb26d88856006e8d87dbae3a8dc1  gcc/testsuite/gcc.dg/pr78957.c
  5d472619627fb0fe87a1ab11a2d43030  gcc/testsuite/gcc.dg/pr78965.c
  1e4ac73f62970b2d036dba88947ba85c  gcc/testsuite/gcc.dg/pr78973-2.c
*************** e82d485d82c990fc42f2e211d3c7319a  gcc/te
*** 48043,48050 ****
  3d225837de2f14990c8b6e794456bde5  gcc/testsuite/gcc.dg/pr79730.c
  b5356ea1b8c5f902a36c8d4dad23008c  gcc/testsuite/gcc.dg/pr79788-1.c
  227b00aa17a4c68044692a91fdc12280  gcc/testsuite/gcc.dg/pr79788-2.c
! d6564e67eb3edd07793ad86c985bfcb0  gcc/testsuite/gcc.dg/pr79972.c
! 14223e7e4ea1f6a75f58149769319a07  gcc/testsuite/gcc.dg/pr79983.c
  cb869ebc2ecdd8df754ac18110cd5c9e  gcc/testsuite/gcc.dg/pr79985.c
  965303c67250b6dbe25a9353d53d437d  gcc/testsuite/gcc.dg/pr80020.c
  39b75d6facc0c1f0e6bcee0096f12fc7  gcc/testsuite/gcc.dg/pr80100.c
--- 50843,50850 ----
  3d225837de2f14990c8b6e794456bde5  gcc/testsuite/gcc.dg/pr79730.c
  b5356ea1b8c5f902a36c8d4dad23008c  gcc/testsuite/gcc.dg/pr79788-1.c
  227b00aa17a4c68044692a91fdc12280  gcc/testsuite/gcc.dg/pr79788-2.c
! 7ddb366f5418c0c32b6ea776a4074980  gcc/testsuite/gcc.dg/pr79972.c
! b8a4e7df56b1bfa28a924822c4d2c631  gcc/testsuite/gcc.dg/pr79983.c
  cb869ebc2ecdd8df754ac18110cd5c9e  gcc/testsuite/gcc.dg/pr79985.c
  965303c67250b6dbe25a9353d53d437d  gcc/testsuite/gcc.dg/pr80020.c
  39b75d6facc0c1f0e6bcee0096f12fc7  gcc/testsuite/gcc.dg/pr80100.c
*************** c5719c018c12b0a0dfafc5cce8663b35  gcc/te
*** 48072,48078 ****
  423e68203f69b77d89938e7e12632466  gcc/testsuite/gcc.dg/pr81020.c
  0e9fa6d863f3301949fcec2f6c5d73ec  gcc/testsuite/gcc.dg/pr81030.c
  66ddd134037471a6a0f9653a3d3cee47  gcc/testsuite/gcc.dg/pr81165.c
! d8ebff2bcd6c2c287f60df284484a234  gcc/testsuite/gcc.dg/pr81192.c
  597afe973f83e86d9b7fde6d5683f0a2  gcc/testsuite/gcc.dg/pr81227.c
  f8b9e7e40bbdc976061399c74f48e7e0  gcc/testsuite/gcc.dg/pr81228.c
  db7151f89bb35a308fb76b916ed6af28  gcc/testsuite/gcc.dg/pr81281-1.c
--- 50872,50878 ----
  423e68203f69b77d89938e7e12632466  gcc/testsuite/gcc.dg/pr81020.c
  0e9fa6d863f3301949fcec2f6c5d73ec  gcc/testsuite/gcc.dg/pr81030.c
  66ddd134037471a6a0f9653a3d3cee47  gcc/testsuite/gcc.dg/pr81165.c
! cdeeddc71f3ac1679bbf87eda7e6bbce  gcc/testsuite/gcc.dg/pr81192.c
  597afe973f83e86d9b7fde6d5683f0a2  gcc/testsuite/gcc.dg/pr81227.c
  f8b9e7e40bbdc976061399c74f48e7e0  gcc/testsuite/gcc.dg/pr81228.c
  db7151f89bb35a308fb76b916ed6af28  gcc/testsuite/gcc.dg/pr81281-1.c
*************** b31de5915d13d5a487df286f9e2f40b3  gcc/te
*** 48109,48121 ****
  e448e59de356ed567c77eccad49be71f  gcc/testsuite/gcc.dg/pr82389.c
  b28312731883249096b369ec396b5d93  gcc/testsuite/gcc.dg/pr82404.c
  d0ad725b61443532ff6f658b865edb3d  gcc/testsuite/gcc.dg/pr82596.c
! f22dd8c91991123c128bf55dc061361a  gcc/testsuite/gcc.dg/pr82597.c
  ae605184856a82a47dbd32ae477f514f  gcc/testsuite/gcc.dg/pr82703.c
  a5e9983b1435bb8837871cf1cb99e588  gcc/testsuite/gcc.dg/pr82765.c
! e77d1488aab50c40d308ea8d40193e07  gcc/testsuite/gcc.dg/pr82788.c
  f033acbc387fbfc3cc80c2bb7eb16554  gcc/testsuite/gcc.dg/pr82809.c
  926bb5d76c1c3805f39aff025afdf392  gcc/testsuite/gcc.dg/pr82863.c
! 64e40fa689444553acd5c162baae6e19  gcc/testsuite/gcc.dg/pr82875.c
  965e1c13fa7c703c3703c4519732dc8d  gcc/testsuite/gcc.dg/pr82916.c
  ada93469f2803f51331d0c7247497718  gcc/testsuite/gcc.dg/pr82929-2.c
  18e8280f133ffa195930c7fb0a6dddf3  gcc/testsuite/gcc.dg/pr82929.c
--- 50909,50921 ----
  e448e59de356ed567c77eccad49be71f  gcc/testsuite/gcc.dg/pr82389.c
  b28312731883249096b369ec396b5d93  gcc/testsuite/gcc.dg/pr82404.c
  d0ad725b61443532ff6f658b865edb3d  gcc/testsuite/gcc.dg/pr82596.c
! 1c7d4f4f75d94fe7b311a08cfc6c4716  gcc/testsuite/gcc.dg/pr82597.c
  ae605184856a82a47dbd32ae477f514f  gcc/testsuite/gcc.dg/pr82703.c
  a5e9983b1435bb8837871cf1cb99e588  gcc/testsuite/gcc.dg/pr82765.c
! ae9a3566c6a991b5bbe8c8b3a072d449  gcc/testsuite/gcc.dg/pr82788.c
  f033acbc387fbfc3cc80c2bb7eb16554  gcc/testsuite/gcc.dg/pr82809.c
  926bb5d76c1c3805f39aff025afdf392  gcc/testsuite/gcc.dg/pr82863.c
! 2659e130cc31d1b3325d6a0d931496b2  gcc/testsuite/gcc.dg/pr82875.c
  965e1c13fa7c703c3703c4519732dc8d  gcc/testsuite/gcc.dg/pr82916.c
  ada93469f2803f51331d0c7247497718  gcc/testsuite/gcc.dg/pr82929-2.c
  18e8280f133ffa195930c7fb0a6dddf3  gcc/testsuite/gcc.dg/pr82929.c
*************** ada93469f2803f51331d0c7247497718  gcc/te
*** 48123,48131 ****
  c5d86e710565da10cc02dd413d24789e  gcc/testsuite/gcc.dg/pr83034.c
  fd3c9dad463ae33d02b4e94dbd632234  gcc/testsuite/gcc.dg/pr83044.c
  9afadc7286f5f425c917815b09088199  gcc/testsuite/gcc.dg/pr83047.c
! 3e5041473efe3b22e02270b61876ffeb  gcc/testsuite/gcc.dg/pr83072-2.c
  532ab37475e69baa2e1cfaaa30b1b9b3  gcc/testsuite/gcc.dg/pr83072.c
! 0c9f1f8e5af4de42fa598c6fe722fb08  gcc/testsuite/gcc.dg/pr83073.c
  f07888e58b74d33a6e69cb7e1bff68f5  gcc/testsuite/gcc.dg/pr83089.c
  f15d9e8b068a360ba0c22ea156c8aa69  gcc/testsuite/gcc.dg/pr83100-1.c
  ac3acd9e7ede2310f45dd30cb994a455  gcc/testsuite/gcc.dg/pr83100-2.c
--- 50923,50931 ----
  c5d86e710565da10cc02dd413d24789e  gcc/testsuite/gcc.dg/pr83034.c
  fd3c9dad463ae33d02b4e94dbd632234  gcc/testsuite/gcc.dg/pr83044.c
  9afadc7286f5f425c917815b09088199  gcc/testsuite/gcc.dg/pr83047.c
! 46539234e63ceb52ca0da3e81dfbe2b2  gcc/testsuite/gcc.dg/pr83072-2.c
  532ab37475e69baa2e1cfaaa30b1b9b3  gcc/testsuite/gcc.dg/pr83072.c
! 51bded9de9f977fc1b677378943b4bf9  gcc/testsuite/gcc.dg/pr83073.c
  f07888e58b74d33a6e69cb7e1bff68f5  gcc/testsuite/gcc.dg/pr83089.c
  f15d9e8b068a360ba0c22ea156c8aa69  gcc/testsuite/gcc.dg/pr83100-1.c
  ac3acd9e7ede2310f45dd30cb994a455  gcc/testsuite/gcc.dg/pr83100-2.c
*************** bed17f1377941c87cc77ed606717aeaa  gcc/te
*** 48144,48150 ****
  ff149ef447478fe287d21948bf94820b  gcc/testsuite/gcc.dg/pr83419.c
  d1d24788f9c8caf0192fc3807eb41608  gcc/testsuite/gcc.dg/pr83422.c
  4cfcf9fb49e0c6531f60ce19ff899760  gcc/testsuite/gcc.dg/pr83424.c
! 4d7b789e4418b210b519da13b0ce7173  gcc/testsuite/gcc.dg/pr83463.c
  127e29196e819473182adb7375e60042  gcc/testsuite/gcc.dg/pr83480.c
  9d9e02d663325d2434733c97d93c983e  gcc/testsuite/gcc.dg/pr83491.c
  6a73c9e8dbc0c410fc99369606f0057f  gcc/testsuite/gcc.dg/pr83506.c
--- 50944,50950 ----
  ff149ef447478fe287d21948bf94820b  gcc/testsuite/gcc.dg/pr83419.c
  d1d24788f9c8caf0192fc3807eb41608  gcc/testsuite/gcc.dg/pr83422.c
  4cfcf9fb49e0c6531f60ce19ff899760  gcc/testsuite/gcc.dg/pr83424.c
! ac59d93355d41c7634cd266b3634caec  gcc/testsuite/gcc.dg/pr83463.c
  127e29196e819473182adb7375e60042  gcc/testsuite/gcc.dg/pr83480.c
  9d9e02d663325d2434733c97d93c983e  gcc/testsuite/gcc.dg/pr83491.c
  6a73c9e8dbc0c410fc99369606f0057f  gcc/testsuite/gcc.dg/pr83506.c
*************** cab54dde4480ccadcadd9b08dc8ef331  gcc/te
*** 48169,48175 ****
  fe9e33c8a4c46f238c225caf5f4d7935  gcc/testsuite/gcc.dg/pr83723.c
  e53637bef6923ab6eae09ba5d651bafe  gcc/testsuite/gcc.dg/pr83771.c
  b7db39b59a66affdb99e26004f92b5db  gcc/testsuite/gcc.dg/pr83801.c
! 30cd5500060c0590a514e7004bf3f3b2  gcc/testsuite/gcc.dg/pr83844.c
  8efc71427eb9e0f45044adf4aa1bf290  gcc/testsuite/gcc.dg/pr83852.c
  f18c98a6522174d4131ce51bb8396ca6  gcc/testsuite/gcc.dg/pr83913.c
  41515793e14c2520469b603b7155b95d  gcc/testsuite/gcc.dg/pr83922.c
--- 50969,50975 ----
  fe9e33c8a4c46f238c225caf5f4d7935  gcc/testsuite/gcc.dg/pr83723.c
  e53637bef6923ab6eae09ba5d651bafe  gcc/testsuite/gcc.dg/pr83771.c
  b7db39b59a66affdb99e26004f92b5db  gcc/testsuite/gcc.dg/pr83801.c
! a52ff1969da2015ab50a6b427e51577d  gcc/testsuite/gcc.dg/pr83844.c
  8efc71427eb9e0f45044adf4aa1bf290  gcc/testsuite/gcc.dg/pr83852.c
  f18c98a6522174d4131ce51bb8396ca6  gcc/testsuite/gcc.dg/pr83913.c
  41515793e14c2520469b603b7155b95d  gcc/testsuite/gcc.dg/pr83922.c
*************** f18c98a6522174d4131ce51bb8396ca6  gcc/te
*** 48182,48188 ****
  aa5aeeb9303713d11e8680d92dbd0bb3  gcc/testsuite/gcc.dg/pr84068.c
  70e4b16ceedc356882716fae5db2910c  gcc/testsuite/gcc.dg/pr84095.c
  0712819fb01550d8a1b60a1d736b34a1  gcc/testsuite/gcc.dg/pr84100.c
! b2368c15a09646fb656b3178fb41f4da  gcc/testsuite/gcc.dg/pr84131.c
  631d64e25ebe667df224fc37813f66ff  gcc/testsuite/gcc.dg/pr84206.c
  a43593a06b13b6090fbe6e58dd959845  gcc/testsuite/gcc.dg/pr84225.c
  8569398860bc00c2e87732809c2b291c  gcc/testsuite/gcc.dg/pr84237.c
--- 50982,50988 ----
  aa5aeeb9303713d11e8680d92dbd0bb3  gcc/testsuite/gcc.dg/pr84068.c
  70e4b16ceedc356882716fae5db2910c  gcc/testsuite/gcc.dg/pr84095.c
  0712819fb01550d8a1b60a1d736b34a1  gcc/testsuite/gcc.dg/pr84100.c
! 6e27fdc817f4d8393028a6867d488f38  gcc/testsuite/gcc.dg/pr84131.c
  631d64e25ebe667df224fc37813f66ff  gcc/testsuite/gcc.dg/pr84206.c
  a43593a06b13b6090fbe6e58dd959845  gcc/testsuite/gcc.dg/pr84225.c
  8569398860bc00c2e87732809c2b291c  gcc/testsuite/gcc.dg/pr84237.c
*************** c63e7806c3d2d9248a99f9d2bbc5619b  gcc/te
*** 48212,48218 ****
  350ecde2080adce3b16ae868d60d4aa7  gcc/testsuite/gcc.dg/pr84841.c
  0b86071d460e95cfac961b6b9e5ddc6d  gcc/testsuite/gcc.dg/pr84853.c
  13a2c6ed4e8585ccd298c2bbe58a83f9  gcc/testsuite/gcc.dg/pr84875.c
! 7724c8c3ee84e082bfa917bf6e151c0d  gcc/testsuite/gcc.dg/pr84877.c
  4294a6745f3296677b46dd5bfd884901  gcc/testsuite/gcc.dg/pr84899.c
  dbf69b3874174be30af9ef57a4dddf35  gcc/testsuite/gcc.dg/pr84941.c
  10853acb471ecaea1557d0f0b8f741e4  gcc/testsuite/gcc.dg/pr84953.c
--- 51012,51018 ----
  350ecde2080adce3b16ae868d60d4aa7  gcc/testsuite/gcc.dg/pr84841.c
  0b86071d460e95cfac961b6b9e5ddc6d  gcc/testsuite/gcc.dg/pr84853.c
  13a2c6ed4e8585ccd298c2bbe58a83f9  gcc/testsuite/gcc.dg/pr84875.c
! 0fe426ccf773db7035d9cea024c3bc11  gcc/testsuite/gcc.dg/pr84877.c
  4294a6745f3296677b46dd5bfd884901  gcc/testsuite/gcc.dg/pr84899.c
  dbf69b3874174be30af9ef57a4dddf35  gcc/testsuite/gcc.dg/pr84941.c
  10853acb471ecaea1557d0f0b8f741e4  gcc/testsuite/gcc.dg/pr84953.c
*************** f98abf1027d4ad97dad0dff2de3386fc  gcc/te
*** 48256,48262 ****
  dbbddf5823dbcbf2da02f69c174add7a  gcc/testsuite/gcc.dg/pr86064.c
  7a01da1f64d70f7d2af4f656b97d91a3  gcc/testsuite/gcc.dg/pr86076.c
  cb556d7ecc43fb557a2f4222a58494a6  gcc/testsuite/gcc.dg/pr86114.c
! 3006b8c524bc1d3c533c606a10f64e0a  gcc/testsuite/gcc.dg/pr86124.c
  a8359c428353397ec48b0315ab73faba  gcc/testsuite/gcc.dg/pr86134.c
  1ad6ee86200302eb3843aafe30ff446a  gcc/testsuite/gcc.dg/pr86179.c
  265d39b3933b0ecefd0cd853268889cd  gcc/testsuite/gcc.dg/pr86271.c
--- 51056,51062 ----
  dbbddf5823dbcbf2da02f69c174add7a  gcc/testsuite/gcc.dg/pr86064.c
  7a01da1f64d70f7d2af4f656b97d91a3  gcc/testsuite/gcc.dg/pr86076.c
  cb556d7ecc43fb557a2f4222a58494a6  gcc/testsuite/gcc.dg/pr86114.c
! f549372bf9f4a067ae380b2d00890d4c  gcc/testsuite/gcc.dg/pr86124.c
  a8359c428353397ec48b0315ab73faba  gcc/testsuite/gcc.dg/pr86134.c
  1ad6ee86200302eb3843aafe30ff446a  gcc/testsuite/gcc.dg/pr86179.c
  265d39b3933b0ecefd0cd853268889cd  gcc/testsuite/gcc.dg/pr86271.c
*************** e8e8dbecdcff9d1e7bcea14445809d6a  gcc/te
*** 48278,48284 ****
  7409a4639ad449497636ab1ffd396ab9  gcc/testsuite/gcc.dg/pr87054.c
  573bff30fabe1d954bb7773456e8752b  gcc/testsuite/gcc.dg/pr87074.c
  5b7ec2719e61162c44f1431fa4b8f9d3  gcc/testsuite/gcc.dg/pr87092.c
! 6c8954cf5201997c9a39d45350338f2c  gcc/testsuite/gcc.dg/pr87099.c
  2c2a323b3f484c67dd8fe453ef4c8938  gcc/testsuite/gcc.dg/pr87112.c
  c99dca1f9dae3cf731b303417dba29f8  gcc/testsuite/gcc.dg/pr87117-1.c
  0112fe69931a328cdada252987debc65  gcc/testsuite/gcc.dg/pr87117-2.c
--- 51078,51084 ----
  7409a4639ad449497636ab1ffd396ab9  gcc/testsuite/gcc.dg/pr87054.c
  573bff30fabe1d954bb7773456e8752b  gcc/testsuite/gcc.dg/pr87074.c
  5b7ec2719e61162c44f1431fa4b8f9d3  gcc/testsuite/gcc.dg/pr87092.c
! a7709838775630f3497d85e86ff842f1  gcc/testsuite/gcc.dg/pr87099.c
  2c2a323b3f484c67dd8fe453ef4c8938  gcc/testsuite/gcc.dg/pr87112.c
  c99dca1f9dae3cf731b303417dba29f8  gcc/testsuite/gcc.dg/pr87117-1.c
  0112fe69931a328cdada252987debc65  gcc/testsuite/gcc.dg/pr87117-2.c
*************** fc39e8040aa9d9bd91f95b63bc50cf33  gcc/te
*** 48289,48296 ****
  337a0c71f5ab56c90bfd322257a744d1  gcc/testsuite/gcc.dg/pr87286.c
  1afd30125952d519c404e3a66f15d37a  gcc/testsuite/gcc.dg/pr87309.c
  004bfdca72fcdf0db7357d12dded3f59  gcc/testsuite/gcc.dg/pr87314-1.c
! a8171870ab90ee72b6e10d1889f14627  gcc/testsuite/gcc.dg/pr87320.c
! c1334ed9c6c68281799e5e493bcc387a  gcc/testsuite/gcc.dg/pr87347.c
  b0750cc8ba04869cc1e70217f4eebdbc  gcc/testsuite/gcc.dg/pr87415.c
  51488233d2ef3dad91c1b1404439bff0  gcc/testsuite/gcc.dg/pr87483.c
  b1250df26ff8ccc22fe46e310c4934e6  gcc/testsuite/gcc.dg/pr87485.c
--- 51089,51096 ----
  337a0c71f5ab56c90bfd322257a744d1  gcc/testsuite/gcc.dg/pr87286.c
  1afd30125952d519c404e3a66f15d37a  gcc/testsuite/gcc.dg/pr87309.c
  004bfdca72fcdf0db7357d12dded3f59  gcc/testsuite/gcc.dg/pr87314-1.c
! 514a76717cc92cf8d94a3d039414a417  gcc/testsuite/gcc.dg/pr87320.c
! 894165699dd0537c3391083b49a9433e  gcc/testsuite/gcc.dg/pr87347.c
  b0750cc8ba04869cc1e70217f4eebdbc  gcc/testsuite/gcc.dg/pr87415.c
  51488233d2ef3dad91c1b1404439bff0  gcc/testsuite/gcc.dg/pr87483.c
  b1250df26ff8ccc22fe46e310c4934e6  gcc/testsuite/gcc.dg/pr87485.c
*************** f1fa316140a0d5cf611a6a6515122eda  gcc/te
*** 48348,48358 ****
  244b7346ca2e022eec75797a3a757384  gcc/testsuite/gcc.dg/pr88784-8.c
  fe4716424056f67142ad5f2b38759f16  gcc/testsuite/gcc.dg/pr88784-9.c
  f9c1ef445b699a39ecd5de8bef2f58a1  gcc/testsuite/gcc.dg/pr88855.c
! 53b8ee9b592cb03b7a7fd424ee91842b  gcc/testsuite/gcc.dg/pr88870.c
  dc21f1feef8a6a0c1a7cc8b01b324d6c  gcc/testsuite/gcc.dg/pr88905.c
  c006acbb3a94328dc8bd6721ee5f1c5a  gcc/testsuite/gcc.dg/pr88928.c
  b6a6442523e13cc8d22cef6d9b29643f  gcc/testsuite/gcc.dg/pr89037.c
! 5a1677356a851d40c0dcb114a77bf62a  gcc/testsuite/gcc.dg/pr89045.c
  5572f39e552c4af805d3f1f11f16d9e7  gcc/testsuite/gcc.dg/pr89061.c
  b8275290466222c56ac76a85e9dc3e4f  gcc/testsuite/gcc.dg/pr89211.c
  6d86fe504f8715d8b161e54c57b05401  gcc/testsuite/gcc.dg/pr8927-1.c
--- 51148,51158 ----
  244b7346ca2e022eec75797a3a757384  gcc/testsuite/gcc.dg/pr88784-8.c
  fe4716424056f67142ad5f2b38759f16  gcc/testsuite/gcc.dg/pr88784-9.c
  f9c1ef445b699a39ecd5de8bef2f58a1  gcc/testsuite/gcc.dg/pr88855.c
! 9831a0e405bbc2e4df9d1b9d1d88b7f0  gcc/testsuite/gcc.dg/pr88870.c
  dc21f1feef8a6a0c1a7cc8b01b324d6c  gcc/testsuite/gcc.dg/pr88905.c
  c006acbb3a94328dc8bd6721ee5f1c5a  gcc/testsuite/gcc.dg/pr88928.c
  b6a6442523e13cc8d22cef6d9b29643f  gcc/testsuite/gcc.dg/pr89037.c
! 13cb64b373ddbeb6ff8a0cb263d9deff  gcc/testsuite/gcc.dg/pr89045.c
  5572f39e552c4af805d3f1f11f16d9e7  gcc/testsuite/gcc.dg/pr89061.c
  b8275290466222c56ac76a85e9dc3e4f  gcc/testsuite/gcc.dg/pr89211.c
  6d86fe504f8715d8b161e54c57b05401  gcc/testsuite/gcc.dg/pr8927-1.c
*************** cc98bc298dae950c2580c111173bf573  gcc/te
*** 48373,48380 ****
  44cc7b683fa38b5e37a7c24259692295  gcc/testsuite/gcc.dg/pr89518.c
  60832e2a572601eeddf23c8b9641b3ce  gcc/testsuite/gcc.dg/pr89520-1.c
  a5f05c4ad343f3e9f77908f5e61b8319  gcc/testsuite/gcc.dg/pr89520-2.c
! 257d6cccc19ffd7b76dfd92523ef410e  gcc/testsuite/gcc.dg/pr89521-1.c
! 2c9315db914b2d546cfa5ba3a8d5d492  gcc/testsuite/gcc.dg/pr89521-2.c
  ecd7d1b355518172cace6c6c1ee6299e  gcc/testsuite/gcc.dg/pr89525.c
  6bdd8f0e10033e7c075d794ebd5a5efa  gcc/testsuite/gcc.dg/pr89570.c
  37d9958e568bd455cf03bd403e5d9560  gcc/testsuite/gcc.dg/pr89590.c
--- 51173,51180 ----
  44cc7b683fa38b5e37a7c24259692295  gcc/testsuite/gcc.dg/pr89518.c
  60832e2a572601eeddf23c8b9641b3ce  gcc/testsuite/gcc.dg/pr89520-1.c
  a5f05c4ad343f3e9f77908f5e61b8319  gcc/testsuite/gcc.dg/pr89520-2.c
! f90c977c049add17744d1159a2f8b215  gcc/testsuite/gcc.dg/pr89521-1.c
! 8b11bfa6d38f16221a3f82ba355782e8  gcc/testsuite/gcc.dg/pr89521-2.c
  ecd7d1b355518172cace6c6c1ee6299e  gcc/testsuite/gcc.dg/pr89525.c
  6bdd8f0e10033e7c075d794ebd5a5efa  gcc/testsuite/gcc.dg/pr89570.c
  37d9958e568bd455cf03bd403e5d9560  gcc/testsuite/gcc.dg/pr89590.c
*************** a930fd978777f4a12a11a2e5ae864cd0  gcc/te
*** 48392,48413 ****
  3a34ebdf201442368e6b516ca9855124  gcc/testsuite/gcc.dg/pr90095-2.c
  368c5e054fd6744cd7791f2fd85550c6  gcc/testsuite/gcc.dg/pr90248.c
  8934d806ac7c85ea4e0291197e5597ca  gcc/testsuite/gcc.dg/pr90263.c
! a9ce57b01303a768bbf7a03ccdfc9a9f  gcc/testsuite/gcc.dg/pr90648.c
  bcd4b5d9c82e28d29459255dca15732c  gcc/testsuite/gcc.dg/pr90726.c
  007da9cc3379de76a6986f6c8d62f1aa  gcc/testsuite/gcc.dg/pr90733.c
  afa570e1edc03a94c45eb741b09cab0a  gcc/testsuite/gcc.dg/pr90756.c
  a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
! f0aca126286cc86395555e20e906d122  gcc/testsuite/gcc.dg/pr90838.c
  e25de604fa47d4cbf21b04eb8d96eedc  gcc/testsuite/gcc.dg/pr90866-2.c
  1e31e24165ead8e639abcd53299950b0  gcc/testsuite/gcc.dg/pr90866.c
  e2ae67eb39b2578af8765a01c6e6dd08  gcc/testsuite/gcc.dg/pr90892.c
  f05824bb6a8ee4df57182feba94d6224  gcc/testsuite/gcc.dg/pr90898.c
! 29bddba09d773b04b2a3a7f640bd0ece  gcc/testsuite/gcc.dg/pr91014.c
  24c438728a57d7ea88d20d12f53f789e  gcc/testsuite/gcc.dg/pr91029.c
! da28f19c06ff7662e7a7546ec852e25c  gcc/testsuite/gcc.dg/pr91069.c
  ae6290a43a38f48e933c747a1d1f3299  gcc/testsuite/gcc.dg/pr91134.c
  0835b2ca75603c1c11ac781095ca851d  gcc/testsuite/gcc.dg/pr91172.c
  b3a812009694e752663ca04925320324  gcc/testsuite/gcc.dg/pr91181.c
  196c4342cb2568a603593ef3a72ee31d  gcc/testsuite/gcc.dg/pr91195.c
  127ca7d7d9652887fc59a33f4f13e4e0  gcc/testsuite/gcc.dg/pr91269.c
  4a2bd43cd7fd8e7268a408628f8e2afa  gcc/testsuite/gcc.dg/pr91441.c
--- 51192,51216 ----
  3a34ebdf201442368e6b516ca9855124  gcc/testsuite/gcc.dg/pr90095-2.c
  368c5e054fd6744cd7791f2fd85550c6  gcc/testsuite/gcc.dg/pr90248.c
  8934d806ac7c85ea4e0291197e5597ca  gcc/testsuite/gcc.dg/pr90263.c
! 285f3868017009529c415459f19daf14  gcc/testsuite/gcc.dg/pr90648.c
  bcd4b5d9c82e28d29459255dca15732c  gcc/testsuite/gcc.dg/pr90726.c
  007da9cc3379de76a6986f6c8d62f1aa  gcc/testsuite/gcc.dg/pr90733.c
  afa570e1edc03a94c45eb741b09cab0a  gcc/testsuite/gcc.dg/pr90756.c
  a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
! 1c5d999cbda5348ede38dd1e44c25c67  gcc/testsuite/gcc.dg/pr90838-2.c
! 81b44ab453a09a64e473e49022c941bc  gcc/testsuite/gcc.dg/pr90838.c
  e25de604fa47d4cbf21b04eb8d96eedc  gcc/testsuite/gcc.dg/pr90866-2.c
  1e31e24165ead8e639abcd53299950b0  gcc/testsuite/gcc.dg/pr90866.c
  e2ae67eb39b2578af8765a01c6e6dd08  gcc/testsuite/gcc.dg/pr90892.c
  f05824bb6a8ee4df57182feba94d6224  gcc/testsuite/gcc.dg/pr90898.c
! d3a25c34adc6820f1f220570d68f8279  gcc/testsuite/gcc.dg/pr91014.c
  24c438728a57d7ea88d20d12f53f789e  gcc/testsuite/gcc.dg/pr91029.c
! c4703ef02cfa1fa41deda3412f80e980  gcc/testsuite/gcc.dg/pr91069.c
  ae6290a43a38f48e933c747a1d1f3299  gcc/testsuite/gcc.dg/pr91134.c
  0835b2ca75603c1c11ac781095ca851d  gcc/testsuite/gcc.dg/pr91172.c
  b3a812009694e752663ca04925320324  gcc/testsuite/gcc.dg/pr91181.c
+ 21693825c7ee6a622528dd5b0f082c27  gcc/testsuite/gcc.dg/pr91193-1.c
+ 9289e5ec8b9b1fb287c7605916ca8fae  gcc/testsuite/gcc.dg/pr91193-2.c
  196c4342cb2568a603593ef3a72ee31d  gcc/testsuite/gcc.dg/pr91195.c
  127ca7d7d9652887fc59a33f4f13e4e0  gcc/testsuite/gcc.dg/pr91269.c
  4a2bd43cd7fd8e7268a408628f8e2afa  gcc/testsuite/gcc.dg/pr91441.c
*************** e09e9e36a7e79da810f6ebc143854133  gcc/te
*** 48441,48447 ****
  2d905dd51403c365837606cd243307a9  gcc/testsuite/gcc.dg/pr93412.c
  834fbb27e51209d3b22ea9ad9323f6af  gcc/testsuite/gcc.dg/pr93430.c
  81c5d6812ab75cb015613ad13abe09a1  gcc/testsuite/gcc.dg/pr93454.c
! fcf5c200537a9a1cb7b392e9cddf390c  gcc/testsuite/gcc.dg/pr93573-1.c
  abd30d13384ade512f8b33d4a6364f5a  gcc/testsuite/gcc.dg/pr93573-2.c
  2461eae71210d5808caccdbf7b68c684  gcc/testsuite/gcc.dg/pr93576.c
  6a23aee3db42fed038e6135d77900da3  gcc/testsuite/gcc.dg/pr93577-1.c
--- 51244,51250 ----
  2d905dd51403c365837606cd243307a9  gcc/testsuite/gcc.dg/pr93412.c
  834fbb27e51209d3b22ea9ad9323f6af  gcc/testsuite/gcc.dg/pr93430.c
  81c5d6812ab75cb015613ad13abe09a1  gcc/testsuite/gcc.dg/pr93454.c
! 7619ba69d9e7f46e044e7ad521ba5b00  gcc/testsuite/gcc.dg/pr93573-1.c
  abd30d13384ade512f8b33d4a6364f5a  gcc/testsuite/gcc.dg/pr93573-2.c
  2461eae71210d5808caccdbf7b68c684  gcc/testsuite/gcc.dg/pr93576.c
  6a23aee3db42fed038e6135d77900da3  gcc/testsuite/gcc.dg/pr93577-1.c
*************** dd3890136485bbc0bfd2fa97df59ad67  gcc/te
*** 48455,48466 ****
  3825638bdc3a2a004aba9b3d95352327  gcc/testsuite/gcc.dg/pr9365-1.c
  39b5e5395a14e637f44ff9cf617a03a5  gcc/testsuite/gcc.dg/pr93661.c
  d415dab7955287f7dc30b8f97718c405  gcc/testsuite/gcc.dg/pr93780.c
! a381b8115d1a3059738b007b59ec85b1  gcc/testsuite/gcc.dg/pr93820-2.c
  96f7c73b6cb0b7b5f65e07636845c78b  gcc/testsuite/gcc.dg/pr93820.c
  be052ff03204f5c4aab2ab7a358b6b27  gcc/testsuite/gcc.dg/pr93874.c
  560095b2ead114a4246d81ea4af580b1  gcc/testsuite/gcc.dg/pr93917.c
  87b5cdd84800016a77df3942458b9c21  gcc/testsuite/gcc.dg/pr93953.c
! 8bda02493a3432a443e4f3c222a0d773  gcc/testsuite/gcc.dg/pr93986.c
  cfd561b135ceb50d230b596505e94c74  gcc/testsuite/gcc.dg/pr93995.c
  cab59fbf55d5a85f5adade2417f6f944  gcc/testsuite/gcc.dg/pr94001.c
  7188ff1454897a578bd9300a88e8188b  gcc/testsuite/gcc.dg/pr94002.c
--- 51258,51269 ----
  3825638bdc3a2a004aba9b3d95352327  gcc/testsuite/gcc.dg/pr9365-1.c
  39b5e5395a14e637f44ff9cf617a03a5  gcc/testsuite/gcc.dg/pr93661.c
  d415dab7955287f7dc30b8f97718c405  gcc/testsuite/gcc.dg/pr93780.c
! 76e2570e691a87d7fadbcba4ce520eef  gcc/testsuite/gcc.dg/pr93820-2.c
  96f7c73b6cb0b7b5f65e07636845c78b  gcc/testsuite/gcc.dg/pr93820.c
  be052ff03204f5c4aab2ab7a358b6b27  gcc/testsuite/gcc.dg/pr93874.c
  560095b2ead114a4246d81ea4af580b1  gcc/testsuite/gcc.dg/pr93917.c
  87b5cdd84800016a77df3942458b9c21  gcc/testsuite/gcc.dg/pr93953.c
! fd3e909d69728e1a465bc6957c76d879  gcc/testsuite/gcc.dg/pr93986.c
  cfd561b135ceb50d230b596505e94c74  gcc/testsuite/gcc.dg/pr93995.c
  cab59fbf55d5a85f5adade2417f6f944  gcc/testsuite/gcc.dg/pr94001.c
  7188ff1454897a578bd9300a88e8188b  gcc/testsuite/gcc.dg/pr94002.c
*************** cab59fbf55d5a85f5adade2417f6f944  gcc/te
*** 48469,48475 ****
  0ae9dcc0ac6d521e37ddb5afb45d1dd5  gcc/testsuite/gcc.dg/pr94114.c
  fc6e5039865fe10dc1fddd25c8dcb667  gcc/testsuite/gcc.dg/pr94121.c
  3f211532b2198634f06950321f46e1b4  gcc/testsuite/gcc.dg/pr94166.c
! e6e88382b0b17a4cb6785bb81a1d284d  gcc/testsuite/gcc.dg/pr94167.c
  6548dd50de9344b93f546b941803c3b2  gcc/testsuite/gcc.dg/pr94172-1.c
  859a3379ee95cd1f59d196d98801fec9  gcc/testsuite/gcc.dg/pr94172-2.c
  6c1514f39eb5b357c0046e6bfa0fed0d  gcc/testsuite/gcc.dg/pr94188.c
--- 51272,51278 ----
  0ae9dcc0ac6d521e37ddb5afb45d1dd5  gcc/testsuite/gcc.dg/pr94114.c
  fc6e5039865fe10dc1fddd25c8dcb667  gcc/testsuite/gcc.dg/pr94121.c
  3f211532b2198634f06950321f46e1b4  gcc/testsuite/gcc.dg/pr94166.c
! 427076092865242b8eaf6059e2381aa4  gcc/testsuite/gcc.dg/pr94167.c
  6548dd50de9344b93f546b941803c3b2  gcc/testsuite/gcc.dg/pr94172-1.c
  859a3379ee95cd1f59d196d98801fec9  gcc/testsuite/gcc.dg/pr94172-2.c
  6c1514f39eb5b357c0046e6bfa0fed0d  gcc/testsuite/gcc.dg/pr94188.c
*************** dbee3538a18bef45f3a54729b574ae13  gcc/te
*** 48482,48488 ****
  8752d4b61db563ffd1bc6f8c992edb09  gcc/testsuite/gcc.dg/pr94277.c
  2a5ea2d9089b86f01982fe32f61729a7  gcc/testsuite/gcc.dg/pr94283.c
  5425c7612d0758ce101dbb6f3e5f377e  gcc/testsuite/gcc.dg/pr94286.c
! 4cdbb242d757a992aac04f1a4a59905f  gcc/testsuite/gcc.dg/pr94291.c
  2455ef5efb95d04a610bbb381539e67e  gcc/testsuite/gcc.dg/pr94292.c
  68259ab38f8b9554e23ad25c2347c0a7  gcc/testsuite/gcc.dg/pr94344.c
  9849f1374b13c980f5fddf0329f189c7  gcc/testsuite/gcc.dg/pr94368.c
--- 51285,51291 ----
  8752d4b61db563ffd1bc6f8c992edb09  gcc/testsuite/gcc.dg/pr94277.c
  2a5ea2d9089b86f01982fe32f61729a7  gcc/testsuite/gcc.dg/pr94283.c
  5425c7612d0758ce101dbb6f3e5f377e  gcc/testsuite/gcc.dg/pr94286.c
! 41f06fd051174d6f16019dc7ab96169b  gcc/testsuite/gcc.dg/pr94291.c
  2455ef5efb95d04a610bbb381539e67e  gcc/testsuite/gcc.dg/pr94292.c
  68259ab38f8b9554e23ad25c2347c0a7  gcc/testsuite/gcc.dg/pr94344.c
  9849f1374b13c980f5fddf0329f189c7  gcc/testsuite/gcc.dg/pr94368.c
*************** ea3f6e969ab9dbd27c6e364f6cd1e41c  gcc/te
*** 48493,48499 ****
  19a2ac85758ac4bfc1b057ee521a0e94  gcc/testsuite/gcc.dg/pr94589-2.c
  27b4c51b7060236f318a98e7dfe635d6  gcc/testsuite/gcc.dg/pr94589-3.c
  5b6c16adf775aa0ef335b96ef72b0a82  gcc/testsuite/gcc.dg/pr94589-4.c
! f244fa220718f337609f30faac73a8e4  gcc/testsuite/gcc.dg/pr94600-1.c
  515ded7ae44445fdd45ad77c875a9139  gcc/testsuite/gcc.dg/pr94600-2.c
  eaf63adfe02395ba887103318bf0daac  gcc/testsuite/gcc.dg/pr94600-3.c
  35545b21a99f804ccec657da20231447  gcc/testsuite/gcc.dg/pr94600-4.c
--- 51296,51304 ----
  19a2ac85758ac4bfc1b057ee521a0e94  gcc/testsuite/gcc.dg/pr94589-2.c
  27b4c51b7060236f318a98e7dfe635d6  gcc/testsuite/gcc.dg/pr94589-3.c
  5b6c16adf775aa0ef335b96ef72b0a82  gcc/testsuite/gcc.dg/pr94589-4.c
! ed8b01d7f609743dbbb09ec751e42df8  gcc/testsuite/gcc.dg/pr94589-5.c
! 252593244f3fd19ac0007b0ad8868ce1  gcc/testsuite/gcc.dg/pr94589-6.c
! 9d934bfa6d016390e51f5246cf15a083  gcc/testsuite/gcc.dg/pr94600-1.c
  515ded7ae44445fdd45ad77c875a9139  gcc/testsuite/gcc.dg/pr94600-2.c
  eaf63adfe02395ba887103318bf0daac  gcc/testsuite/gcc.dg/pr94600-3.c
  35545b21a99f804ccec657da20231447  gcc/testsuite/gcc.dg/pr94600-4.c
*************** eaf63adfe02395ba887103318bf0daac  gcc/te
*** 48501,48507 ****
  026dc448d622cb6ef6398a8f09a7cba7  gcc/testsuite/gcc.dg/pr94600-6.c
  6f29cad24532ba3f1e3e94e8c890e24a  gcc/testsuite/gcc.dg/pr94600-7.c
  545a7b1899e6db6c3e77c28facf87dca  gcc/testsuite/gcc.dg/pr94600-8.c
! c72df927b15d18de0d1c05eef46be3ba  gcc/testsuite/gcc.dg/pr94705.c
  36c0ef124b1789b1569ec56cfa017bd6  gcc/testsuite/gcc.dg/pr94726.c
  3b3ec7fa99929281677300b4678c9928  gcc/testsuite/gcc.dg/pr94780.c
  2a8fd6be342ac636e177ee04b63e5a07  gcc/testsuite/gcc.dg/pr94784.c
--- 51306,51312 ----
  026dc448d622cb6ef6398a8f09a7cba7  gcc/testsuite/gcc.dg/pr94600-6.c
  6f29cad24532ba3f1e3e94e8c890e24a  gcc/testsuite/gcc.dg/pr94600-7.c
  545a7b1899e6db6c3e77c28facf87dca  gcc/testsuite/gcc.dg/pr94600-8.c
! 99efb1f69fdb392b6ad79a014bd69a53  gcc/testsuite/gcc.dg/pr94705.c
  36c0ef124b1789b1569ec56cfa017bd6  gcc/testsuite/gcc.dg/pr94726.c
  3b3ec7fa99929281677300b4678c9928  gcc/testsuite/gcc.dg/pr94780.c
  2a8fd6be342ac636e177ee04b63e5a07  gcc/testsuite/gcc.dg/pr94784.c
*************** c2fd25feddce893f7652a84fe5746fa4  gcc/te
*** 48513,48519 ****
  903a1bb951735666f689961e0bf5ab2a  gcc/testsuite/gcc.dg/pr94968.c
  e4dde89601272f1b99612f3aef7cb7e5  gcc/testsuite/gcc.dg/pr95052.c
  58599cfb97b216be6b7e62dbc868de25  gcc/testsuite/gcc.dg/pr95115.c
! 1feb85be5d60e05ef1bda1b1214cd644  gcc/testsuite/gcc.dg/pr95118.c
  374fe6896d7f734385c9df06306a39f3  gcc/testsuite/gcc.dg/pr95133.c
  130d9acc88fc75c668740cf769b79052  gcc/testsuite/gcc.dg/pr95141.c
  1875568db88d1845f820b932cbc3f859  gcc/testsuite/gcc.dg/pr95171.c
--- 51318,51324 ----
  903a1bb951735666f689961e0bf5ab2a  gcc/testsuite/gcc.dg/pr94968.c
  e4dde89601272f1b99612f3aef7cb7e5  gcc/testsuite/gcc.dg/pr95052.c
  58599cfb97b216be6b7e62dbc868de25  gcc/testsuite/gcc.dg/pr95115.c
! 6a5b534d948f8ed14667a5b216760c82  gcc/testsuite/gcc.dg/pr95118.c
  374fe6896d7f734385c9df06306a39f3  gcc/testsuite/gcc.dg/pr95133.c
  130d9acc88fc75c668740cf769b79052  gcc/testsuite/gcc.dg/pr95141.c
  1875568db88d1845f820b932cbc3f859  gcc/testsuite/gcc.dg/pr95171.c
*************** af3ad20732337f1695c7cc2a26807ebb  gcc/te
*** 48529,48535 ****
  8860bd1282dc5af39ed43d3ab3c675fc  gcc/testsuite/gcc.dg/pr96260.c
  02fadbb0374dfcd02a07be839ec9bdb5  gcc/testsuite/gcc.dg/pr96298.c
  bea42aee96625a2eb14f74da27bfb773  gcc/testsuite/gcc.dg/pr96307.c
! 0335046a3e339e020569e9abf2dfd119  gcc/testsuite/gcc.dg/pr96335.c
  b0c24e576cdfbf580f93fa792c734044  gcc/testsuite/gcc.dg/pr96370.c
  a802b5e0d50cb86641c238e173ecd7ec  gcc/testsuite/gcc.dg/pr96377-1.c
  c85ad54f7a32606675e871f53ed5eb60  gcc/testsuite/gcc.dg/pr96377-2.c
--- 51334,51340 ----
  8860bd1282dc5af39ed43d3ab3c675fc  gcc/testsuite/gcc.dg/pr96260.c
  02fadbb0374dfcd02a07be839ec9bdb5  gcc/testsuite/gcc.dg/pr96298.c
  bea42aee96625a2eb14f74da27bfb773  gcc/testsuite/gcc.dg/pr96307.c
! 0e36c623c113668de9de26d7fa8af098  gcc/testsuite/gcc.dg/pr96335.c
  b0c24e576cdfbf580f93fa792c734044  gcc/testsuite/gcc.dg/pr96370.c
  a802b5e0d50cb86641c238e173ecd7ec  gcc/testsuite/gcc.dg/pr96377-1.c
  c85ad54f7a32606675e871f53ed5eb60  gcc/testsuite/gcc.dg/pr96377-2.c
*************** e81595a04ac86a2f9b83fb199a7245c9  gcc/te
*** 48541,48547 ****
  327090f1ff0488bf70d342d108613ef0  gcc/testsuite/gcc.dg/pr96453.c
  6f3a630e04585e6954c3af6c3da4cd68  gcc/testsuite/gcc.dg/pr96466.c
  f6dbe508409f3fdef69bb18356571537  gcc/testsuite/gcc.dg/pr96514.c
! 90381ca042f347867bb79f1b8c673c2b  gcc/testsuite/gcc.dg/pr96542.c
  12772272fb5504a0b84c4743fde95b04  gcc/testsuite/gcc.dg/pr96558.c
  3ee9fc3b7d139b2e57d06a5c240864a3  gcc/testsuite/gcc.dg/pr96573.c
  06ae27dde8da22331e1e8dcd059d4d03  gcc/testsuite/gcc.dg/pr96579.c
--- 51346,51352 ----
  327090f1ff0488bf70d342d108613ef0  gcc/testsuite/gcc.dg/pr96453.c
  6f3a630e04585e6954c3af6c3da4cd68  gcc/testsuite/gcc.dg/pr96466.c
  f6dbe508409f3fdef69bb18356571537  gcc/testsuite/gcc.dg/pr96514.c
! 3b53663b958856a4e493f135ea653471  gcc/testsuite/gcc.dg/pr96542.c
  12772272fb5504a0b84c4743fde95b04  gcc/testsuite/gcc.dg/pr96558.c
  3ee9fc3b7d139b2e57d06a5c240864a3  gcc/testsuite/gcc.dg/pr96573.c
  06ae27dde8da22331e1e8dcd059d4d03  gcc/testsuite/gcc.dg/pr96579.c
*************** f54e2f3a93cb93910a45086bec0fe1cc  gcc/te
*** 48570,48575 ****
--- 51375,51381 ----
  f7aa1c2f4e37387cc8dcab91ba373ee5  gcc/testsuite/gcc.dg/pr97315-2.c
  205335d9ee3829efc8938e9d67e50dd0  gcc/testsuite/gcc.dg/pr97317.c
  f24d05a3d28035f5da6c7d16e133c906  gcc/testsuite/gcc.dg/pr97322.c
+ 055e56cf4248f83a22d51bbb0a8f0d82  gcc/testsuite/gcc.dg/pr97323.c
  8fa62770eef31189349eee6b772e8713  gcc/testsuite/gcc.dg/pr97357.c
  dfc3a50d54f160dd107f6aaed9cda154  gcc/testsuite/gcc.dg/pr97359.c
  775512ace87117ff427697fb95c7c1c3  gcc/testsuite/gcc.dg/pr97360-2.c
*************** b5fa0cd5917ab8447128f90c9aa66d86  gcc/te
*** 48597,48603 ****
  30f53d499facb7677def27401106f489  gcc/testsuite/gcc.dg/pr97534.c
  8de28fbb1fc8308939d75b5aa08ac83a  gcc/testsuite/gcc.dg/pr97539.c
  5d0af6aab5fe5b236b6b147eaae46687  gcc/testsuite/gcc.dg/pr97555.c
! 9880fafb7b08dedd5b0d2ad9a74defe4  gcc/testsuite/gcc.dg/pr97567-2.c
  bb0f91c384e2b0c10f6a2b569f227ce2  gcc/testsuite/gcc.dg/pr97567.c
  9109b1f7500a802befa961d356457496  gcc/testsuite/gcc.dg/pr97579.c
  691c363da5b53e768141125051f86be1  gcc/testsuite/gcc.dg/pr97596.c
--- 51403,51409 ----
  30f53d499facb7677def27401106f489  gcc/testsuite/gcc.dg/pr97534.c
  8de28fbb1fc8308939d75b5aa08ac83a  gcc/testsuite/gcc.dg/pr97539.c
  5d0af6aab5fe5b236b6b147eaae46687  gcc/testsuite/gcc.dg/pr97555.c
! 52b5b4fa58b9916cafd63905c72180ff  gcc/testsuite/gcc.dg/pr97567-2.c
  bb0f91c384e2b0c10f6a2b569f227ce2  gcc/testsuite/gcc.dg/pr97567.c
  9109b1f7500a802befa961d356457496  gcc/testsuite/gcc.dg/pr97579.c
  691c363da5b53e768141125051f86be1  gcc/testsuite/gcc.dg/pr97596.c
*************** b31656f3d589501279f9b3957d76e7d8  gcc/te
*** 48607,48615 ****
  cdfeca036db478839d22133998667f05  gcc/testsuite/gcc.dg/pr97741.c
  bf0c76a76ec33705f98f6dcc11e12f2f  gcc/testsuite/gcc.dg/pr97750.c
  32dbdf99e8be7a3cc9392721bd1d794d  gcc/testsuite/gcc.dg/pr97806.c
! bb5958739b960c32b06e6d3daf4186ba  gcc/testsuite/gcc.dg/pr97830.c
  ebd05406fb069fea2c49c527155a3864  gcc/testsuite/gcc.dg/pr97860.c
! bfcdbe04e4db5115b18a5676acde0c97  gcc/testsuite/gcc.dg/pr97882.c
  7cc410466db1f834697611a61399f7ba  gcc/testsuite/gcc.dg/pr97897.c
  c486b3b3763d822f61027894e246354b  gcc/testsuite/gcc.dg/pr97932.c
  dd83a8b867ef8c886adacb097f55bc6b  gcc/testsuite/gcc.dg/pr97953.c
--- 51413,51421 ----
  cdfeca036db478839d22133998667f05  gcc/testsuite/gcc.dg/pr97741.c
  bf0c76a76ec33705f98f6dcc11e12f2f  gcc/testsuite/gcc.dg/pr97750.c
  32dbdf99e8be7a3cc9392721bd1d794d  gcc/testsuite/gcc.dg/pr97806.c
! 80a600a1ee903c356493886739284c76  gcc/testsuite/gcc.dg/pr97830.c
  ebd05406fb069fea2c49c527155a3864  gcc/testsuite/gcc.dg/pr97860.c
! 343594c8fd230683439d9e521fc585c9  gcc/testsuite/gcc.dg/pr97882.c
  7cc410466db1f834697611a61399f7ba  gcc/testsuite/gcc.dg/pr97897.c
  c486b3b3763d822f61027894e246354b  gcc/testsuite/gcc.dg/pr97932.c
  dd83a8b867ef8c886adacb097f55bc6b  gcc/testsuite/gcc.dg/pr97953.c
*************** dd83a8b867ef8c886adacb097f55bc6b  gcc/te
*** 48622,48627 ****
--- 51428,51434 ----
  ec1830becced622760bda688ca2bb126  gcc/testsuite/gcc.dg/pr9814-1.c
  58a90f953d863b4da3602876f58c3dad  gcc/testsuite/gcc.dg/pr98147.c
  ab67ce545d0c71a9f5f15c381f3e0c67  gcc/testsuite/gcc.dg/pr98190.c
+ 349432624bf6162e9f7ff339d32c304d  gcc/testsuite/gcc.dg/pr98195-1.c
  06873fe076c24bd9c80510ca25414ed4  gcc/testsuite/gcc.dg/pr98198.c
  6402d0b3c10f679cca0a7edf36045a9a  gcc/testsuite/gcc.dg/pr98211.c
  0ffdbfe76fd130e510ec19ac27307b9d  gcc/testsuite/gcc.dg/pr98255.c
*************** e0aaf35916ca626fd4eb6512d1bcb49f  gcc/te
*** 48634,48649 ****
  71e51d140e2ea9bf0936bb0c01194726  gcc/testsuite/gcc.dg/pr98350-1.c
  07315bd3bf00b907a110f3de5d83188e  gcc/testsuite/gcc.dg/pr98350-2.c
  fe3fce151ef7e045021498cdad0f3ecf  gcc/testsuite/gcc.dg/pr98420.c
! cb517fef5185a3c728c4f6a074659af6  gcc/testsuite/gcc.dg/pr98721-1.c
  b21ece181cd66a1e64aa9dde33e8d1d0  gcc/testsuite/gcc.dg/pr98721-2.c
  6f1182e067a6b12f97acf69996773c2e  gcc/testsuite/gcc.dg/pr98766.c
  adabb0bef50f4d7481373e03730d7eca  gcc/testsuite/gcc.dg/pr98793.c
  740d7fb36e41a4cae562cdea26998ff2  gcc/testsuite/gcc.dg/pr98807.c
  7935203ef9b964ed53ea8adeecd1bbed  gcc/testsuite/gcc.dg/pr98865.c
  310114e6ce04de1373727da3fff452a3  gcc/testsuite/gcc.dg/pr99104.c
  0c792f14b9a97f41c77e25cf97585664  gcc/testsuite/gcc.dg/pr99122-1.c
! 3efab6f8b5fe7930094ba4b39f130934  gcc/testsuite/gcc.dg/pr99122-2.c
! 18aad8f5bd43bff2ff6c9709072d550c  gcc/testsuite/gcc.dg/pr99122-3.c
  e3c8b18e6e88ee3cfc0ca5366899c2da  gcc/testsuite/gcc.dg/pr99136.c
  915d115cd30c8f24c98345c9a7a5593c  gcc/testsuite/gcc.dg/pr99224.c
  96da29b8d07f768f24eaeff4ea07b505  gcc/testsuite/gcc.dg/pr99230.c
--- 51441,51457 ----
  71e51d140e2ea9bf0936bb0c01194726  gcc/testsuite/gcc.dg/pr98350-1.c
  07315bd3bf00b907a110f3de5d83188e  gcc/testsuite/gcc.dg/pr98350-2.c
  fe3fce151ef7e045021498cdad0f3ecf  gcc/testsuite/gcc.dg/pr98420.c
! 4f0e63f00efd7d973808399703ca48a9  gcc/testsuite/gcc.dg/pr98721-1.c
  b21ece181cd66a1e64aa9dde33e8d1d0  gcc/testsuite/gcc.dg/pr98721-2.c
  6f1182e067a6b12f97acf69996773c2e  gcc/testsuite/gcc.dg/pr98766.c
  adabb0bef50f4d7481373e03730d7eca  gcc/testsuite/gcc.dg/pr98793.c
  740d7fb36e41a4cae562cdea26998ff2  gcc/testsuite/gcc.dg/pr98807.c
+ 693efb112a63e0bff9223024ab13758b  gcc/testsuite/gcc.dg/pr98845.c
  7935203ef9b964ed53ea8adeecd1bbed  gcc/testsuite/gcc.dg/pr98865.c
  310114e6ce04de1373727da3fff452a3  gcc/testsuite/gcc.dg/pr99104.c
  0c792f14b9a97f41c77e25cf97585664  gcc/testsuite/gcc.dg/pr99122-1.c
! 36e7133c565b3369b18be5ca3fb47fb7  gcc/testsuite/gcc.dg/pr99122-2.c
! 2626e81712723e1ce8318e7f99dec2c1  gcc/testsuite/gcc.dg/pr99122-3.c
  e3c8b18e6e88ee3cfc0ca5366899c2da  gcc/testsuite/gcc.dg/pr99136.c
  915d115cd30c8f24c98345c9a7a5593c  gcc/testsuite/gcc.dg/pr99224.c
  96da29b8d07f768f24eaeff4ea07b505  gcc/testsuite/gcc.dg/pr99230.c
*************** e91f166b4de92c03f81d916150bf3333  gcc/te
*** 48734,48740 ****
  7d38699cc36c0e41edf981a8e9f72075  gcc/testsuite/gcc.dg/pure-2.c
  1ba96c5459efa721e448123e79141819  gcc/testsuite/gcc.dg/pure-3.c
  a7d0583b6c2ce6dcaa388b97217992a8  gcc/testsuite/gcc.dg/qual-assign-7.c
! 131d7728e0baca355ff811d6c48cc2c2  gcc/testsuite/gcc.dg/qual-component-1.c
  f98b23a23376b07500bb22dc9c07a97b  gcc/testsuite/gcc.dg/qual-return-1.c
  f1cd1b20474b1aaa97dbc54187b2296d  gcc/testsuite/gcc.dg/qual-return-10.c
  a69c0ed8db7dad6898af9609fa119bf4  gcc/testsuite/gcc.dg/qual-return-2.c
--- 51542,51548 ----
  7d38699cc36c0e41edf981a8e9f72075  gcc/testsuite/gcc.dg/pure-2.c
  1ba96c5459efa721e448123e79141819  gcc/testsuite/gcc.dg/pure-3.c
  a7d0583b6c2ce6dcaa388b97217992a8  gcc/testsuite/gcc.dg/qual-assign-7.c
! bfd0c3cc0c2a0430bc1890b60453e9c1  gcc/testsuite/gcc.dg/qual-component-1.c
  f98b23a23376b07500bb22dc9c07a97b  gcc/testsuite/gcc.dg/qual-return-1.c
  f1cd1b20474b1aaa97dbc54187b2296d  gcc/testsuite/gcc.dg/qual-return-10.c
  a69c0ed8db7dad6898af9609fa119bf4  gcc/testsuite/gcc.dg/qual-return-2.c
*************** b76f25a5e2a39d0da6541a73b5cd3e32  gcc/te
*** 48803,48813 ****
  770cae6014d989d238db251906e1d55c  gcc/testsuite/gcc.dg/rtl/aarch64/subs_adds_sp.c
  4a0f9ca943ba4d51c36cafc0f05585af  gcc/testsuite/gcc.dg/rtl/aarch64/test-epilogue-set.c
  a107a9eae4cd59d68f55abfc11da7cec  gcc/testsuite/gcc.dg/rtl/aarch64/unspecified-pass-error.c
  a9069345cbc40d488766c1fbf34c5555  gcc/testsuite/gcc.dg/rtl/arm/ldrd-peepholes.c
  85baf2f4880c1f6892aac66e29e93d7a  gcc/testsuite/gcc.dg/rtl/arm/mve-vxbi.c
  0fad692089013e1244e2ad3e5560e613  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_32.c
  67d911dae09d634dcf74fac029f1d2e6  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_64.c
! 9309c465988a6dc9c6eb0ec83ff1a77c  gcc/testsuite/gcc.dg/rtl/rtl.exp
  75dd0c3d9daa8abdd58a0d0eaf55bd9e  gcc/testsuite/gcc.dg/rtl/test.c
  555898d2432906a81b3aa66cb112a450  gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
  3a9704d0df301152dace95218afa80c6  gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
--- 51611,51622 ----
  770cae6014d989d238db251906e1d55c  gcc/testsuite/gcc.dg/rtl/aarch64/subs_adds_sp.c
  4a0f9ca943ba4d51c36cafc0f05585af  gcc/testsuite/gcc.dg/rtl/aarch64/test-epilogue-set.c
  a107a9eae4cd59d68f55abfc11da7cec  gcc/testsuite/gcc.dg/rtl/aarch64/unspecified-pass-error.c
+ 11f67722ecba2413562ea4a88d064a75  gcc/testsuite/gcc.dg/rtl/aarch64/vector-eq.c
  a9069345cbc40d488766c1fbf34c5555  gcc/testsuite/gcc.dg/rtl/arm/ldrd-peepholes.c
  85baf2f4880c1f6892aac66e29e93d7a  gcc/testsuite/gcc.dg/rtl/arm/mve-vxbi.c
  0fad692089013e1244e2ad3e5560e613  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_32.c
  67d911dae09d634dcf74fac029f1d2e6  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_64.c
! 99f400c18a1446b31c6ca0a7cb30c35c  gcc/testsuite/gcc.dg/rtl/rtl.exp
  75dd0c3d9daa8abdd58a0d0eaf55bd9e  gcc/testsuite/gcc.dg/rtl/test.c
  555898d2432906a81b3aa66cb112a450  gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
  3a9704d0df301152dace95218afa80c6  gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
*************** c684e5e80de28dda23b373f072372784  gcc/te
*** 48826,48831 ****
--- 51635,51641 ----
  a8523ff559f8384cdfaa8131cafb2466  gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.after-expand.c
  f8ab1139f3bd02009859925ec6b4f1ec  gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.before-df.c
  338384785b41985ba946546e69a264d7  gcc/testsuite/gcc.dg/rtl/x86_64/times-two.h
+ a506587afd375577a361fb9e95e3fa60  gcc/testsuite/gcc.dg/rtl/x86_64/vector_eq.c
  454cb76cf4a06abba08354e6a236e7a8  gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c
  b1af2df249a0e6a4c994bd1ed21dca0d  gcc/testsuite/gcc.dg/sabd_1.c
  1e9910f4cb4ae5d35806411d5a76d2eb  gcc/testsuite/gcc.dg/sancov/attribute.c
*************** eb7e84bf599d4eff95e62177de9c772a  gcc/te
*** 48841,48847 ****
  7a3f147eba9c1aeac1de411abd4f64cf  gcc/testsuite/gcc.dg/sancov/pr104158-6.c
  fdf6d2f3e4906aec199d43bc561b5a5d  gcc/testsuite/gcc.dg/sancov/pr104158-7.c
  10a9db85b046a8ccc1ebb5e953dedb6d  gcc/testsuite/gcc.dg/sancov/pr80444.c
! f74489664381ec87f1f57c59510dddea  gcc/testsuite/gcc.dg/sancov/sancov.exp
  f4b64b6518910ecc79ec847a430db7d0  gcc/testsuite/gcc.dg/scantest-lto.c
  61448b028e590daa16b590a3a8025e23  gcc/testsuite/gcc.dg/sccopy-1.c
  d5126a2bd42a9c1593aedafecf29da00  gcc/testsuite/gcc.dg/section1.c
--- 51651,51679 ----
  7a3f147eba9c1aeac1de411abd4f64cf  gcc/testsuite/gcc.dg/sancov/pr104158-6.c
  fdf6d2f3e4906aec199d43bc561b5a5d  gcc/testsuite/gcc.dg/sancov/pr104158-7.c
  10a9db85b046a8ccc1ebb5e953dedb6d  gcc/testsuite/gcc.dg/sancov/pr80444.c
! 594604b18d77ba1abd214328e69d9aaf  gcc/testsuite/gcc.dg/sancov/sancov.exp
! 46035949e298d2c4492d48f6236b99a4  gcc/testsuite/gcc.dg/sarif-output/add-output-sarif-defaults.c
! 8362a99d26211b61e5a3c5c0fc27cc88  gcc/testsuite/gcc.dg/sarif-output/bad-binary-op.c
! f68ce1034eb287a51fd088881eed3a57  gcc/testsuite/gcc.dg/sarif-output/bad-binary-op.py
! e67d08df2740253fbd775d0cecadb674  gcc/testsuite/gcc.dg/sarif-output/bad-pragma.c
! fc8a5312453aa6c9b35ca224e4f25936  gcc/testsuite/gcc.dg/sarif-output/bad-pragma.py
! 8f8b84d2a2c3a40aa471376ef3ad86d4  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-1.h
! d3793bbe48652d7af1be40301a35eae3  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-2.h
! 579c4b601aac5ae14e1340f88250575d  gcc/testsuite/gcc.dg/sarif-output/include-chain-1.c
! 6aae73039d4bc746b5807f91287c3d44  gcc/testsuite/gcc.dg/sarif-output/include-chain-1.h
! ec17506807c0ad221173ac50eb2b7117  gcc/testsuite/gcc.dg/sarif-output/include-chain-1.py
! 123e8648e30cb6b9f1ef85cb13863be6  gcc/testsuite/gcc.dg/sarif-output/include-chain-2.c
! e1a602f18f30b6a8dddbcb96660d20e6  gcc/testsuite/gcc.dg/sarif-output/include-chain-2.h
! ca7553d76ac8b430a8cfeac7248e81d5  gcc/testsuite/gcc.dg/sarif-output/include-chain-2.py
! 59bdcef55b29b7c5ef21ae717011bfec  gcc/testsuite/gcc.dg/sarif-output/missing-semicolon.c
! 3af1297812eb004e222716d3f9c08a47  gcc/testsuite/gcc.dg/sarif-output/missing-semicolon.py
! 9d641adf49f55dae22077122b93d6aac  gcc/testsuite/gcc.dg/sarif-output/multiple-outputs.c
! 4ef5a497018b5bad6e606a1b074fb710  gcc/testsuite/gcc.dg/sarif-output/multiple-outputs.py
! cf03b659dd286192e4e791fd9d544479  gcc/testsuite/gcc.dg/sarif-output/no-diagnostics.c
! f967816325e67680303cd3c38ab61a29  gcc/testsuite/gcc.dg/sarif-output/no-diagnostics.py
! 90f1f8d027272b4f22fd85c3f99bb635  gcc/testsuite/gcc.dg/sarif-output/sarif-output.exp
! 78883978c825f02cb672b9bf63faffe3  gcc/testsuite/gcc.dg/sarif-output/werror.c
! 15dfb1424f158039ca2b8573e39bafbc  gcc/testsuite/gcc.dg/sarif-output/werror.py
  f4b64b6518910ecc79ec847a430db7d0  gcc/testsuite/gcc.dg/scantest-lto.c
  61448b028e590daa16b590a3a8025e23  gcc/testsuite/gcc.dg/sccopy-1.c
  d5126a2bd42a9c1593aedafecf29da00  gcc/testsuite/gcc.dg/section1.c
*************** aaf2153b841fae71456b1ba41211400b  gcc/te
*** 48860,48884 ****
  fafbe5a5c3660e12b3ae052ba2f07d16  gcc/testsuite/gcc.dg/setjmp-7.c
  6f4ffedec35f0de53e9ae24b36462712  gcc/testsuite/gcc.dg/short-compare-1.c
  e95ac1ec5f25aac9c9389159d09b366c  gcc/testsuite/gcc.dg/short-compare-2.c
! d97ba82ddd6d2eff00283bf678a89e32  gcc/testsuite/gcc.dg/shrink-wrap-alloca.c
  dcbe36a784d46169abe8a9a404b0c6e0  gcc/testsuite/gcc.dg/shrink-wrap-loop.c
  2896386eccf07aa6a0a3b69790bcf72d  gcc/testsuite/gcc.dg/shrink-wrap-pretend.c
  e177bd4a7f3cb433b33b2c59e4e0af3d  gcc/testsuite/gcc.dg/shrink-wrap-sibcall.c
  3294e4a5b74b99e369aaf413c51c9d9a  gcc/testsuite/gcc.dg/sibcall-1.c
  85669fc6c7689b5f5969e64fcf9cfade  gcc/testsuite/gcc.dg/sibcall-10.c
  2c3c94a61ed7b9f075ac496625f3df59  gcc/testsuite/gcc.dg/sibcall-11.c
  4475ace1c55af8932ec4fb580e690e52  gcc/testsuite/gcc.dg/sibcall-2.c
  9271d47e06ad7cb2c71a2e4edebb514c  gcc/testsuite/gcc.dg/sibcall-3.c
  19ab1b11d16d0636c8e134bc34b747b7  gcc/testsuite/gcc.dg/sibcall-4.c
! a4a9d32810747a683dfd61a19a195556  gcc/testsuite/gcc.dg/sibcall-6.c
  62808c704ae0941d6882eb2639725b7e  gcc/testsuite/gcc.dg/sibcall-7.c
  ffee6308d78dda55af86280534155756  gcc/testsuite/gcc.dg/sibcall-8.c
  a9d1837d9fddf7d1517a251715a86a60  gcc/testsuite/gcc.dg/sibcall-9.c
  47ab5e28888b6a337336f12ed44d19c2  gcc/testsuite/gcc.dg/signbit-2.c
  66aaf0d9868e1fb506cfc16fea64b403  gcc/testsuite/gcc.dg/signbit-3.c
  82d412bd422617ac165bdfeefeb96891  gcc/testsuite/gcc.dg/signbit-4.c
! 4ad6f52ff9e89375107971312a3f3ff7  gcc/testsuite/gcc.dg/signbit-5.c
! 336150c4fa4cf498d062bcda71db9baf  gcc/testsuite/gcc.dg/signbit-6.c
  5b629cb801eca62320ea49a242d8d182  gcc/testsuite/gcc.dg/signbit-sa.c
  333e0feef5b858bcbce745edf0d287f9  gcc/testsuite/gcc.dg/simd-1.c
  ab02b1889f7a1a4dc5afd40bb4ecd23e  gcc/testsuite/gcc.dg/simd-1b.c
--- 51692,51717 ----
  fafbe5a5c3660e12b3ae052ba2f07d16  gcc/testsuite/gcc.dg/setjmp-7.c
  6f4ffedec35f0de53e9ae24b36462712  gcc/testsuite/gcc.dg/short-compare-1.c
  e95ac1ec5f25aac9c9389159d09b366c  gcc/testsuite/gcc.dg/short-compare-2.c
! da60b36ecfc93b7381c5940ef869a068  gcc/testsuite/gcc.dg/shrink-wrap-alloca.c
  dcbe36a784d46169abe8a9a404b0c6e0  gcc/testsuite/gcc.dg/shrink-wrap-loop.c
  2896386eccf07aa6a0a3b69790bcf72d  gcc/testsuite/gcc.dg/shrink-wrap-pretend.c
  e177bd4a7f3cb433b33b2c59e4e0af3d  gcc/testsuite/gcc.dg/shrink-wrap-sibcall.c
  3294e4a5b74b99e369aaf413c51c9d9a  gcc/testsuite/gcc.dg/sibcall-1.c
  85669fc6c7689b5f5969e64fcf9cfade  gcc/testsuite/gcc.dg/sibcall-10.c
  2c3c94a61ed7b9f075ac496625f3df59  gcc/testsuite/gcc.dg/sibcall-11.c
+ ac450aef065e56a1638882d4941fdb1f  gcc/testsuite/gcc.dg/sibcall-12.c
  4475ace1c55af8932ec4fb580e690e52  gcc/testsuite/gcc.dg/sibcall-2.c
  9271d47e06ad7cb2c71a2e4edebb514c  gcc/testsuite/gcc.dg/sibcall-3.c
  19ab1b11d16d0636c8e134bc34b747b7  gcc/testsuite/gcc.dg/sibcall-4.c
! 0aaa49b38bc9d6ac4e624a280c7ea948  gcc/testsuite/gcc.dg/sibcall-6.c
  62808c704ae0941d6882eb2639725b7e  gcc/testsuite/gcc.dg/sibcall-7.c
  ffee6308d78dda55af86280534155756  gcc/testsuite/gcc.dg/sibcall-8.c
  a9d1837d9fddf7d1517a251715a86a60  gcc/testsuite/gcc.dg/sibcall-9.c
  47ab5e28888b6a337336f12ed44d19c2  gcc/testsuite/gcc.dg/signbit-2.c
  66aaf0d9868e1fb506cfc16fea64b403  gcc/testsuite/gcc.dg/signbit-3.c
  82d412bd422617ac165bdfeefeb96891  gcc/testsuite/gcc.dg/signbit-4.c
! 0e353d7fd20ed31f8c16decc1bb0b79c  gcc/testsuite/gcc.dg/signbit-5.c
! f26930a39fa4b01fba661de0b08248ff  gcc/testsuite/gcc.dg/signbit-6.c
  5b629cb801eca62320ea49a242d8d182  gcc/testsuite/gcc.dg/signbit-sa.c
  333e0feef5b858bcbce745edf0d287f9  gcc/testsuite/gcc.dg/simd-1.c
  ab02b1889f7a1a4dc5afd40bb4ecd23e  gcc/testsuite/gcc.dg/simd-1b.c
*************** e7edbe5a2c71be83020688e5b9a6ae0d  gcc/te
*** 48890,48906 ****
  17cd42d9ac276670b065f7130fc61b64  gcc/testsuite/gcc.dg/simd-7.c
  d41b90554eaa41690846ab199f065dea  gcc/testsuite/gcc.dg/simd-8.c
  fa16add828cb6d27e0fd5daa2be320ed  gcc/testsuite/gcc.dg/simulate-thread/README
! 143c599708d7d0b3e039cd22b3a04dd2  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c
  45bdb5b0ebc706104bc5f4c73a6a6af5  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int128.c
! 9672e122b9ca2bb7daff800d7a5e1091  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c
! f060523b03f47f20003d41a25f6b7d45  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c
  cdcbfe4963d2fb08c5ca3beee8988a3a  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int.c
  2cef976581d9a7b739ab4028601cccef  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int128.c
  dd9deecd35e329ea7c8b1a24c3721dfb  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-longlong.c
  bc0a90e6775aacab35294b814a4dc066  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-short.c
! 98bf5216831a83729a8cd4713e1b52b5  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp
  a551d568c4b3e2e586a288740ed87bc7  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
! e01edd8c252c9b0041b4625fb9403160  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.h
  1206815dd7536f73ea767fa3901ecc15  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
  70ad7f2e4e9431cc395cc1029000dd5c  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-3.c
  5f1ec4b667feaf0081a941b3e798773f  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-4.c
--- 51723,51739 ----
  17cd42d9ac276670b065f7130fc61b64  gcc/testsuite/gcc.dg/simd-7.c
  d41b90554eaa41690846ab199f065dea  gcc/testsuite/gcc.dg/simd-8.c
  fa16add828cb6d27e0fd5daa2be320ed  gcc/testsuite/gcc.dg/simulate-thread/README
! dc306abdb26503cdd9d945ecd7b449a4  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c
  45bdb5b0ebc706104bc5f4c73a6a6af5  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int128.c
! 979b20dbfa5df3d9d525e2d06f2fe22b  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c
! 14f348c1eebb98ff9d9cd563e33e6bd8  gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c
  cdcbfe4963d2fb08c5ca3beee8988a3a  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int.c
  2cef976581d9a7b739ab4028601cccef  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int128.c
  dd9deecd35e329ea7c8b1a24c3721dfb  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-longlong.c
  bc0a90e6775aacab35294b814a4dc066  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-short.c
! d8961c21262582569be03f1df4b1955e  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp
  a551d568c4b3e2e586a288740ed87bc7  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
! 39e5d3ccf4c1daacfdd5bbcc2281cad0  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.h
  1206815dd7536f73ea767fa3901ecc15  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
  70ad7f2e4e9431cc395cc1029000dd5c  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-3.c
  5f1ec4b667feaf0081a941b3e798773f  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-4.c
*************** d7dfd10be38c9c67a7341896fbdd8ed8  gcc/te
*** 48925,48931 ****
  7c7d319d4a2c2aa5559843951e2836a0  gcc/testsuite/gcc.dg/sms-11.c
  817179c47465f7c6ddcbbcf7cbe8a80e  gcc/testsuite/gcc.dg/sms-12.c
  e5fe4881e15933833fa8b2a30f5c864c  gcc/testsuite/gcc.dg/sms-13.c
! 9e1adf55193cd34b76d782e723b743ea  gcc/testsuite/gcc.dg/sms-2.c
  cf6adf4ec5a0e6eb5b11e830643ea604  gcc/testsuite/gcc.dg/sms-3.c
  4e82278a90567deb329c2e5d3eba4db5  gcc/testsuite/gcc.dg/sms-4.c
  41d5067501f0ffa5b9a6b3e590057de1  gcc/testsuite/gcc.dg/sms-5.c
--- 51758,51764 ----
  7c7d319d4a2c2aa5559843951e2836a0  gcc/testsuite/gcc.dg/sms-11.c
  817179c47465f7c6ddcbbcf7cbe8a80e  gcc/testsuite/gcc.dg/sms-12.c
  e5fe4881e15933833fa8b2a30f5c864c  gcc/testsuite/gcc.dg/sms-13.c
! b39872e8d9c4fd0022a8934376c753c7  gcc/testsuite/gcc.dg/sms-2.c
  cf6adf4ec5a0e6eb5b11e830643ea604  gcc/testsuite/gcc.dg/sms-3.c
  4e82278a90567deb329c2e5d3eba4db5  gcc/testsuite/gcc.dg/sms-4.c
  41d5067501f0ffa5b9a6b3e590057de1  gcc/testsuite/gcc.dg/sms-5.c
*************** b5774d82d5e7a13f47820c57cf1db3ea  gcc/te
*** 48942,48953 ****
  58b6b7734c2d9522f6acba13d91a557a  gcc/testsuite/gcc.dg/special/alias-1.c
  4b29f93ef3bc27cb9d83fdbc6aaa5b4a  gcc/testsuite/gcc.dg/special/alias-2.c
  d7d4289254a30a2d7a36599f413b3f00  gcc/testsuite/gcc.dg/special/gcsec-1.c
! e9baaf4a9bf68fe7d9541c1454409425  gcc/testsuite/gcc.dg/special/mips-abi.exp
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/special/mips-abi.s
! dd5d6f5f50d7a772d4462d50e4efdb63  gcc/testsuite/gcc.dg/special/special.exp
  401a0d7d075a4091d05bc341cd97d3bf  gcc/testsuite/gcc.dg/special/weak-1.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-1a.c
! 679f99ed535d87ef210f2c69a6777b7e  gcc/testsuite/gcc.dg/special/weak-2.c
  839d06128dcc641172f86236bbbe2cba  gcc/testsuite/gcc.dg/special/weak-2a.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-2b.c
  c7b1b8b2c8e054f9b5f38c396f6c1426  gcc/testsuite/gcc.dg/special/wkali-1.c
--- 51775,51786 ----
  58b6b7734c2d9522f6acba13d91a557a  gcc/testsuite/gcc.dg/special/alias-1.c
  4b29f93ef3bc27cb9d83fdbc6aaa5b4a  gcc/testsuite/gcc.dg/special/alias-2.c
  d7d4289254a30a2d7a36599f413b3f00  gcc/testsuite/gcc.dg/special/gcsec-1.c
! ed3df0bcca7b7f35069a9b07adf10295  gcc/testsuite/gcc.dg/special/mips-abi.exp
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/special/mips-abi.s
! 577785147ec9504a2d4508d7cd5568c7  gcc/testsuite/gcc.dg/special/special.exp
  401a0d7d075a4091d05bc341cd97d3bf  gcc/testsuite/gcc.dg/special/weak-1.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-1a.c
! 30e6a6f472935ada8cdfd86143e9cbcc  gcc/testsuite/gcc.dg/special/weak-2.c
  839d06128dcc641172f86236bbbe2cba  gcc/testsuite/gcc.dg/special/weak-2a.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-2b.c
  c7b1b8b2c8e054f9b5f38c396f6c1426  gcc/testsuite/gcc.dg/special/wkali-1.c
*************** faa934aa263ee55c94a0b2467225da61  gcc/te
*** 48965,48971 ****
  0f02c661c4216725bee0ddd9a79d005d  gcc/testsuite/gcc.dg/spellcheck-identifiers-4.c
  cc6bb7e542a524fdec38a9a721414d5c  gcc/testsuite/gcc.dg/spellcheck-identifiers-4a.c
  f912a0cec865a8b6cd9ae8dcbf8fb2b4  gcc/testsuite/gcc.dg/spellcheck-identifiers.c
! f6181c2c7e465534916b50593f220f31  gcc/testsuite/gcc.dg/spellcheck-inttypes.c
  2f8375b9f5127dafd07a2ab53b3bd6d0  gcc/testsuite/gcc.dg/spellcheck-options-1.c
  0d2bf1adcd64da826bc3c3e7d0a3e5e5  gcc/testsuite/gcc.dg/spellcheck-options-10.c
  12d8777e4c8e0dafacc2353dcbfd3e32  gcc/testsuite/gcc.dg/spellcheck-options-11.c
--- 51798,51804 ----
  0f02c661c4216725bee0ddd9a79d005d  gcc/testsuite/gcc.dg/spellcheck-identifiers-4.c
  cc6bb7e542a524fdec38a9a721414d5c  gcc/testsuite/gcc.dg/spellcheck-identifiers-4a.c
  f912a0cec865a8b6cd9ae8dcbf8fb2b4  gcc/testsuite/gcc.dg/spellcheck-identifiers.c
! 0c9649e9b3d7823ffdc47270f5707141  gcc/testsuite/gcc.dg/spellcheck-inttypes.c
  2f8375b9f5127dafd07a2ab53b3bd6d0  gcc/testsuite/gcc.dg/spellcheck-options-1.c
  0d2bf1adcd64da826bc3c3e7d0a3e5e5  gcc/testsuite/gcc.dg/spellcheck-options-10.c
  12d8777e4c8e0dafacc2353dcbfd3e32  gcc/testsuite/gcc.dg/spellcheck-options-11.c
*************** c280fdf8b30c02f59215201f8dacde94  gcc/te
*** 48995,49000 ****
--- 51828,51834 ----
  4b027606d627457f537d4da5f7fac762  gcc/testsuite/gcc.dg/spellcheck-pr83056.c
  635a2ff7c6015d6f7f386573f64a37e0  gcc/testsuite/gcc.dg/spellcheck-stdbool.c
  b220f8c3ced72de2027ae1466fd1176a  gcc/testsuite/gcc.dg/spellcheck-stdint.c
+ 42f9ba4fdbb2177b55d179885e6a2e57  gcc/testsuite/gcc.dg/spellcheck-stdlib-2.c
  d08cb9df9c9f82e77ac793e523e2e2c1  gcc/testsuite/gcc.dg/spellcheck-stdlib.c
  8246cd5a7d8a2e4d0ea11bf9def939cd  gcc/testsuite/gcc.dg/spellcheck-transposition.c
  e3188822fe2eb498f64ea0ad687f6232  gcc/testsuite/gcc.dg/spellcheck-typenames.c
*************** a22c0db258dd69508b2ceb6070cac172  gcc/te
*** 49012,49018 ****
  69fbd818614a3c1f7529e6e1957b7a16  gcc/testsuite/gcc.dg/sso-11.c
  83908aa059f275701c73b0c94be43975  gcc/testsuite/gcc.dg/sso-12.c
  3d32481dd0b8a08ae2623c52701ef30a  gcc/testsuite/gcc.dg/sso-13.c
! 29f6b01322fd3f283d659295b7a42257  gcc/testsuite/gcc.dg/sso-14.c
  c248e635d1ac4e803a2fd1f8e029c98b  gcc/testsuite/gcc.dg/sso-15.c
  ae63ef59d4955da47b8b32d066fbadb0  gcc/testsuite/gcc.dg/sso-16.c
  48e05b713f14b7737a5213a884d6b0ed  gcc/testsuite/gcc.dg/sso-17.c
--- 51846,51852 ----
  69fbd818614a3c1f7529e6e1957b7a16  gcc/testsuite/gcc.dg/sso-11.c
  83908aa059f275701c73b0c94be43975  gcc/testsuite/gcc.dg/sso-12.c
  3d32481dd0b8a08ae2623c52701ef30a  gcc/testsuite/gcc.dg/sso-13.c
! c3654d66d3c355c8b7ee8da4796d97bd  gcc/testsuite/gcc.dg/sso-14.c
  c248e635d1ac4e803a2fd1f8e029c98b  gcc/testsuite/gcc.dg/sso-15.c
  ae63ef59d4955da47b8b32d066fbadb0  gcc/testsuite/gcc.dg/sso-16.c
  48e05b713f14b7737a5213a884d6b0ed  gcc/testsuite/gcc.dg/sso-17.c
*************** dfb751744ae63c43f989ee13f0e517d6  gcc/te
*** 49070,49076 ****
  5acf2012225c2563f5111699dc108d4e  gcc/testsuite/gcc.dg/sso/s6.c
  2881d668843202ec4c4e53caf7d29b7c  gcc/testsuite/gcc.dg/sso/s7.c
  dc1e222143fcffd35ee8b32c36dfe5e9  gcc/testsuite/gcc.dg/sso/s8.c
! 8bcd71545fa74d5fd97394256a2f8fc5  gcc/testsuite/gcc.dg/sso/sso.exp
  72a4bbb7159286bb235d6cc0329af835  gcc/testsuite/gcc.dg/sso/t1.c
  093ed74aa99ca9c9bc8760b6167c6c6f  gcc/testsuite/gcc.dg/sso/t13.c
  7b8e3ada92eb2f2a4e4aea8f81dd9b16  gcc/testsuite/gcc.dg/sso/t2.c
--- 51904,51910 ----
  5acf2012225c2563f5111699dc108d4e  gcc/testsuite/gcc.dg/sso/s6.c
  2881d668843202ec4c4e53caf7d29b7c  gcc/testsuite/gcc.dg/sso/s7.c
  dc1e222143fcffd35ee8b32c36dfe5e9  gcc/testsuite/gcc.dg/sso/s8.c
! 3d072a8861a0e1eab794e5dcf82593b2  gcc/testsuite/gcc.dg/sso/sso.exp
  72a4bbb7159286bb235d6cc0329af835  gcc/testsuite/gcc.dg/sso/t1.c
  093ed74aa99ca9c9bc8760b6167c6c6f  gcc/testsuite/gcc.dg/sso/t13.c
  7b8e3ada92eb2f2a4e4aea8f81dd9b16  gcc/testsuite/gcc.dg/sso/t2.c
*************** b764f892e6c6f673878a4e8da208c16b  gcc/te
*** 49089,49107 ****
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
  95619fb05dbcdba1dc93dde1a2e5c1d2  gcc/testsuite/gcc.dg/stack-check-16.c
! b743b9d23007c0c82ee7fdb8d7f04e42  gcc/testsuite/gcc.dg/stack-check-2.c
  3acc7fbed5ab0c37bba3f24f7d778a88  gcc/testsuite/gcc.dg/stack-check-3.c
! b626c83312eea994d97f8f460e6cc56e  gcc/testsuite/gcc.dg/stack-check-4.c
  8fa56fdf51fa26082373f5a76ba87b97  gcc/testsuite/gcc.dg/stack-check-5.c
! 39c1bb3dd30449aea4f662c3152b1f13  gcc/testsuite/gcc.dg/stack-check-6.c
! 0235c7292e2fa797bb55278a8bef69c3  gcc/testsuite/gcc.dg/stack-check-6a.c
  4b2276e1fde8a5e2e51ba21665bf70d2  gcc/testsuite/gcc.dg/stack-check-7.c
  692bbe8a6e88b82f2e295606b5f3680f  gcc/testsuite/gcc.dg/stack-check-8.c
  8c71c9d1784301cb6f1b55adbe422573  gcc/testsuite/gcc.dg/stack-check-9.c
  3eb20a070e129b9f71ad84ec481fe8df  gcc/testsuite/gcc.dg/stack-layout-1.c
  d5355400a72402c33417096b04dc2a5d  gcc/testsuite/gcc.dg/stack-layout-2.c
  07e6a63f5ceb593a5ec396e028fd341c  gcc/testsuite/gcc.dg/stack-layout-dynamic-1.c
! 33845ee1e7047b8e21181d9479f62d90  gcc/testsuite/gcc.dg/stack-usage-1.c
  198c846924d490e8eba17829d0caf626  gcc/testsuite/gcc.dg/stack-usage-2.c
  abeae7e4a2120581a50d5eb7cbe3929d  gcc/testsuite/gcc.dg/stackprotectexplicit1.c
  6e9664759f9a2a278adb8639495ec2e1  gcc/testsuite/gcc.dg/stdckdint-1.c
--- 51923,51941 ----
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
  95619fb05dbcdba1dc93dde1a2e5c1d2  gcc/testsuite/gcc.dg/stack-check-16.c
! a27e257298c041fff73ebbb68337b126  gcc/testsuite/gcc.dg/stack-check-2.c
  3acc7fbed5ab0c37bba3f24f7d778a88  gcc/testsuite/gcc.dg/stack-check-3.c
! a4e7912ba45315f15f41a05f18653c74  gcc/testsuite/gcc.dg/stack-check-4.c
  8fa56fdf51fa26082373f5a76ba87b97  gcc/testsuite/gcc.dg/stack-check-5.c
! 4d77da6936612acaf8a1c4deedf51698  gcc/testsuite/gcc.dg/stack-check-6.c
! 2462fb69db34ae38c8ecb0398fec8bd8  gcc/testsuite/gcc.dg/stack-check-6a.c
  4b2276e1fde8a5e2e51ba21665bf70d2  gcc/testsuite/gcc.dg/stack-check-7.c
  692bbe8a6e88b82f2e295606b5f3680f  gcc/testsuite/gcc.dg/stack-check-8.c
  8c71c9d1784301cb6f1b55adbe422573  gcc/testsuite/gcc.dg/stack-check-9.c
  3eb20a070e129b9f71ad84ec481fe8df  gcc/testsuite/gcc.dg/stack-layout-1.c
  d5355400a72402c33417096b04dc2a5d  gcc/testsuite/gcc.dg/stack-layout-2.c
  07e6a63f5ceb593a5ec396e028fd341c  gcc/testsuite/gcc.dg/stack-layout-dynamic-1.c
! d7d96c96eae9d4af4a4b119c7717045a  gcc/testsuite/gcc.dg/stack-usage-1.c
  198c846924d490e8eba17829d0caf626  gcc/testsuite/gcc.dg/stack-usage-2.c
  abeae7e4a2120581a50d5eb7cbe3929d  gcc/testsuite/gcc.dg/stackprotectexplicit1.c
  6e9664759f9a2a278adb8639495ec2e1  gcc/testsuite/gcc.dg/stdckdint-1.c
*************** e380a12d8343e0f687c7863f49e24814  gcc/te
*** 49163,49169 ****
  c74af1bb0d6b8cf2a8b6dce5c7c425b6  gcc/testsuite/gcc.dg/strcmpopt_9.c
  bf4c65f0bfac9e2583acb9db6b6e985d  gcc/testsuite/gcc.dg/strict-flex-array-1.c
  cc35f761f39f12de1fb448ac6fbb69b5  gcc/testsuite/gcc.dg/strict-flex-array-2.c
! 883390485583fb70cf9b091216537dff  gcc/testsuite/gcc.dg/strict-flex-array-3.c
  a5486e384972bccac519272ed90e4d73  gcc/testsuite/gcc.dg/strict-overflow-1.c
  a448f788a587d5309d6dc1af1e3f5e10  gcc/testsuite/gcc.dg/strict-overflow-2.c
  7e6fb4d2c17602860c6ad5f9cb98186a  gcc/testsuite/gcc.dg/strict-overflow-3.c
--- 51997,52003 ----
  c74af1bb0d6b8cf2a8b6dce5c7c425b6  gcc/testsuite/gcc.dg/strcmpopt_9.c
  bf4c65f0bfac9e2583acb9db6b6e985d  gcc/testsuite/gcc.dg/strict-flex-array-1.c
  cc35f761f39f12de1fb448ac6fbb69b5  gcc/testsuite/gcc.dg/strict-flex-array-2.c
! 5f87ad0545a9aaab2c6ce4a6ef123506  gcc/testsuite/gcc.dg/strict-flex-array-3.c
  a5486e384972bccac519272ed90e4d73  gcc/testsuite/gcc.dg/strict-overflow-1.c
  a448f788a587d5309d6dc1af1e3f5e10  gcc/testsuite/gcc.dg/strict-overflow-2.c
  7e6fb4d2c17602860c6ad5f9cb98186a  gcc/testsuite/gcc.dg/strict-overflow-3.c
*************** e1f22a9d2c38645fa595aeb9b22e9203  gcc/te
*** 49212,49223 ****
  e8d89d771f321f8e227836abd8aec567  gcc/testsuite/gcc.dg/strlenopt-38.c
  c4368e25bf0169268dc9fca950e2a527  gcc/testsuite/gcc.dg/strlenopt-39.c
  a004f66147215a6adb855e35d5cf8723  gcc/testsuite/gcc.dg/strlenopt-4.c
! c563d481c73aa4cd0da1e5674ac5cecb  gcc/testsuite/gcc.dg/strlenopt-40.c
  cd10e25475033e9435afde530d35906e  gcc/testsuite/gcc.dg/strlenopt-41.c
  15084cf943fc7ec081911c662e047756  gcc/testsuite/gcc.dg/strlenopt-42.c
  1b657cefc6200141be37ec6ddc330fd1  gcc/testsuite/gcc.dg/strlenopt-43.c
! 7f61e49883e23cb4624114827a192555  gcc/testsuite/gcc.dg/strlenopt-44.c
! 838280ada1740f219c067c960bcf1ea4  gcc/testsuite/gcc.dg/strlenopt-45.c
  acc54809dc9cf63af81a0537b3c97ed2  gcc/testsuite/gcc.dg/strlenopt-46.c
  07bff6b06e98355c4d4bec6600e3b048  gcc/testsuite/gcc.dg/strlenopt-47.c
  24e46a6e3b9b853cbcad7bf4c09dd331  gcc/testsuite/gcc.dg/strlenopt-48.c
--- 52046,52057 ----
  e8d89d771f321f8e227836abd8aec567  gcc/testsuite/gcc.dg/strlenopt-38.c
  c4368e25bf0169268dc9fca950e2a527  gcc/testsuite/gcc.dg/strlenopt-39.c
  a004f66147215a6adb855e35d5cf8723  gcc/testsuite/gcc.dg/strlenopt-4.c
! 0eea7589df25eecd0892e487ed3d47da  gcc/testsuite/gcc.dg/strlenopt-40.c
  cd10e25475033e9435afde530d35906e  gcc/testsuite/gcc.dg/strlenopt-41.c
  15084cf943fc7ec081911c662e047756  gcc/testsuite/gcc.dg/strlenopt-42.c
  1b657cefc6200141be37ec6ddc330fd1  gcc/testsuite/gcc.dg/strlenopt-43.c
! 4b68b94c492db85e7facafef7342fa47  gcc/testsuite/gcc.dg/strlenopt-44.c
! f5775987edaa1a3957b647f284b13773  gcc/testsuite/gcc.dg/strlenopt-45.c
  acc54809dc9cf63af81a0537b3c97ed2  gcc/testsuite/gcc.dg/strlenopt-46.c
  07bff6b06e98355c4d4bec6600e3b048  gcc/testsuite/gcc.dg/strlenopt-47.c
  24e46a6e3b9b853cbcad7bf4c09dd331  gcc/testsuite/gcc.dg/strlenopt-48.c
*************** d88fe581af33a063aafe9f88bda9c163  gcc/te
*** 49225,49268 ****
  671f2ba9364ea71030e297ce99984990  gcc/testsuite/gcc.dg/strlenopt-4g.c
  ff8841319a1e787eeb8083a6fe0ad630  gcc/testsuite/gcc.dg/strlenopt-4gf.c
  d391824d8175cadc4453029df1be7baf  gcc/testsuite/gcc.dg/strlenopt-5.c
! 437996960ccc0ecbf4254a94c43eb4ed  gcc/testsuite/gcc.dg/strlenopt-50.c
! bf96047b5d0b7ce793044793df3f5a1c  gcc/testsuite/gcc.dg/strlenopt-51.c
! 25dfdd5ea276e59848b55693dddee725  gcc/testsuite/gcc.dg/strlenopt-52.c
! 7688578e4b2b761dee00397bd4cca7a4  gcc/testsuite/gcc.dg/strlenopt-53.c
! 2557b62447d4c2eafbe48285c8935b52  gcc/testsuite/gcc.dg/strlenopt-54.c
! bb5f420fe7e1d0ce404ae1d4d7acf7bd  gcc/testsuite/gcc.dg/strlenopt-55.c
  160668aaf2d2bd5de082db295986e38b  gcc/testsuite/gcc.dg/strlenopt-56.c
  937a74ada775e91aa4ea4d6ad9597b88  gcc/testsuite/gcc.dg/strlenopt-57.c
! 59a9920816eddba0c3162318ae39cf50  gcc/testsuite/gcc.dg/strlenopt-58.c
! 3542f96527a58d9a88aa931305187ec0  gcc/testsuite/gcc.dg/strlenopt-59.c
  655ded8dddb07edb7db74709fe99c668  gcc/testsuite/gcc.dg/strlenopt-6.c
  85f75d34cb6b50c9ce350c543789c6c0  gcc/testsuite/gcc.dg/strlenopt-60.c
  34b1beca90a79766015fd4ecee0f0b60  gcc/testsuite/gcc.dg/strlenopt-61.c
! 872d60a8ef82ff08d5eadf9b5a7c2fef  gcc/testsuite/gcc.dg/strlenopt-62.c
  a679b0a2616fad0b971380e02f983d0e  gcc/testsuite/gcc.dg/strlenopt-63.c
  c96718d9cc527be8946a3353f9f637e9  gcc/testsuite/gcc.dg/strlenopt-64.c
! 00890a830a11d00ac332cdad7bcac82a  gcc/testsuite/gcc.dg/strlenopt-65.c
  91a933c6cc617add1fb53b9931a592e5  gcc/testsuite/gcc.dg/strlenopt-66.c
  a37b1c1f5f5440b727c422f8dc1d6fd0  gcc/testsuite/gcc.dg/strlenopt-67.c
  61c7fae6aa8ff55d0d36b8245b47cbea  gcc/testsuite/gcc.dg/strlenopt-68.c
  107e345fa440bb04f679d0e3d234b863  gcc/testsuite/gcc.dg/strlenopt-69.c
  eed30eb38892be69f829404e38e53a1a  gcc/testsuite/gcc.dg/strlenopt-7.c
! fb0fe2a37a887d660525ebc5050b378a  gcc/testsuite/gcc.dg/strlenopt-70.c
  4390481737985ad39389758e25141193  gcc/testsuite/gcc.dg/strlenopt-71.c
! f517625fb4dfc197b865ffbcbc1920d0  gcc/testsuite/gcc.dg/strlenopt-72.c
! 7b064b4e1861ad0cfd32613c4da3ea17  gcc/testsuite/gcc.dg/strlenopt-73.c
  f943d414ca77ac18161c54e8056e257b  gcc/testsuite/gcc.dg/strlenopt-74.c
  ea069dd84c600a6fd0eeff7f077e15d3  gcc/testsuite/gcc.dg/strlenopt-75.c
  b6afda10a5c27a727b0d08f21d516d4e  gcc/testsuite/gcc.dg/strlenopt-76.c
! 5ed6f4695c68cc86df9bd8bd91676653  gcc/testsuite/gcc.dg/strlenopt-77.c
  266cb582a2b22ec485ff4459934b2dff  gcc/testsuite/gcc.dg/strlenopt-78.c
  19ad1d7297ba36f34f9d6cafb32b03df  gcc/testsuite/gcc.dg/strlenopt-79.c
  3483f22866ff8ad2f086a39d551abaeb  gcc/testsuite/gcc.dg/strlenopt-8.c
  8cc7f9a531a1854d32ce03ee927ec368  gcc/testsuite/gcc.dg/strlenopt-80.c
  8acdf4a4e0ea9ee3bbe36483c1d0dd90  gcc/testsuite/gcc.dg/strlenopt-81.c
! 702c5265fb58aca854e1e7d0a5c48af0  gcc/testsuite/gcc.dg/strlenopt-82.c
! ccdd91fe71fd1e140e311902b699e7f9  gcc/testsuite/gcc.dg/strlenopt-83.c
! 83447c2c15df74628ecc8934b1e0e03e  gcc/testsuite/gcc.dg/strlenopt-84.c
  620db13fa46ce9e9e74cf97a423b96f9  gcc/testsuite/gcc.dg/strlenopt-85.c
  c08e64ecfe54fa64822bfeaeda6d1b03  gcc/testsuite/gcc.dg/strlenopt-86.c
  cd320e2676e84d929a39a375a452396b  gcc/testsuite/gcc.dg/strlenopt-87.c
--- 52059,52102 ----
  671f2ba9364ea71030e297ce99984990  gcc/testsuite/gcc.dg/strlenopt-4g.c
  ff8841319a1e787eeb8083a6fe0ad630  gcc/testsuite/gcc.dg/strlenopt-4gf.c
  d391824d8175cadc4453029df1be7baf  gcc/testsuite/gcc.dg/strlenopt-5.c
! 8b5823f4e921a92c1ed9fe8aa2d217d7  gcc/testsuite/gcc.dg/strlenopt-50.c
! 1e6a824c8b07f30e81b74303a6028b4e  gcc/testsuite/gcc.dg/strlenopt-51.c
! e41594937b30d0c54cf97edc5afe8220  gcc/testsuite/gcc.dg/strlenopt-52.c
! fd882082112f55bee7ff86fe3635edc4  gcc/testsuite/gcc.dg/strlenopt-53.c
! a80da13d74cdbfe88128cad3d7378f72  gcc/testsuite/gcc.dg/strlenopt-54.c
! 8611b3511fcb517853259aad92c12dad  gcc/testsuite/gcc.dg/strlenopt-55.c
  160668aaf2d2bd5de082db295986e38b  gcc/testsuite/gcc.dg/strlenopt-56.c
  937a74ada775e91aa4ea4d6ad9597b88  gcc/testsuite/gcc.dg/strlenopt-57.c
! 62fd72858081d822ce5a0a66eecf984a  gcc/testsuite/gcc.dg/strlenopt-58.c
! 877eee8c1ac0630230139e04c73a359b  gcc/testsuite/gcc.dg/strlenopt-59.c
  655ded8dddb07edb7db74709fe99c668  gcc/testsuite/gcc.dg/strlenopt-6.c
  85f75d34cb6b50c9ce350c543789c6c0  gcc/testsuite/gcc.dg/strlenopt-60.c
  34b1beca90a79766015fd4ecee0f0b60  gcc/testsuite/gcc.dg/strlenopt-61.c
! 177c4829b408847a52faae41183076c7  gcc/testsuite/gcc.dg/strlenopt-62.c
  a679b0a2616fad0b971380e02f983d0e  gcc/testsuite/gcc.dg/strlenopt-63.c
  c96718d9cc527be8946a3353f9f637e9  gcc/testsuite/gcc.dg/strlenopt-64.c
! 7f6618287fde4bf49f736625c4bd38de  gcc/testsuite/gcc.dg/strlenopt-65.c
  91a933c6cc617add1fb53b9931a592e5  gcc/testsuite/gcc.dg/strlenopt-66.c
  a37b1c1f5f5440b727c422f8dc1d6fd0  gcc/testsuite/gcc.dg/strlenopt-67.c
  61c7fae6aa8ff55d0d36b8245b47cbea  gcc/testsuite/gcc.dg/strlenopt-68.c
  107e345fa440bb04f679d0e3d234b863  gcc/testsuite/gcc.dg/strlenopt-69.c
  eed30eb38892be69f829404e38e53a1a  gcc/testsuite/gcc.dg/strlenopt-7.c
! 48c7c2117aa5ac9aff4d3d777eedcd51  gcc/testsuite/gcc.dg/strlenopt-70.c
  4390481737985ad39389758e25141193  gcc/testsuite/gcc.dg/strlenopt-71.c
! 063aaa9b6b779b89b07ce8574aa0999b  gcc/testsuite/gcc.dg/strlenopt-72.c
! 8714ce62fd8905c99851097095129d9e  gcc/testsuite/gcc.dg/strlenopt-73.c
  f943d414ca77ac18161c54e8056e257b  gcc/testsuite/gcc.dg/strlenopt-74.c
  ea069dd84c600a6fd0eeff7f077e15d3  gcc/testsuite/gcc.dg/strlenopt-75.c
  b6afda10a5c27a727b0d08f21d516d4e  gcc/testsuite/gcc.dg/strlenopt-76.c
! 5f73a87ebfd7b022101604eb56d6f6df  gcc/testsuite/gcc.dg/strlenopt-77.c
  266cb582a2b22ec485ff4459934b2dff  gcc/testsuite/gcc.dg/strlenopt-78.c
  19ad1d7297ba36f34f9d6cafb32b03df  gcc/testsuite/gcc.dg/strlenopt-79.c
  3483f22866ff8ad2f086a39d551abaeb  gcc/testsuite/gcc.dg/strlenopt-8.c
  8cc7f9a531a1854d32ce03ee927ec368  gcc/testsuite/gcc.dg/strlenopt-80.c
  8acdf4a4e0ea9ee3bbe36483c1d0dd90  gcc/testsuite/gcc.dg/strlenopt-81.c
! 464e7743f0ea0b75ab26c7f05d33f499  gcc/testsuite/gcc.dg/strlenopt-82.c
! be5efcec32404d20397399ba100f8930  gcc/testsuite/gcc.dg/strlenopt-83.c
! e798c776168fd5b0941ce89cfc148e82  gcc/testsuite/gcc.dg/strlenopt-84.c
  620db13fa46ce9e9e74cf97a423b96f9  gcc/testsuite/gcc.dg/strlenopt-85.c
  c08e64ecfe54fa64822bfeaeda6d1b03  gcc/testsuite/gcc.dg/strlenopt-86.c
  cd320e2676e84d929a39a375a452396b  gcc/testsuite/gcc.dg/strlenopt-87.c
*************** cd320e2676e84d929a39a375a452396b  gcc/te
*** 49270,49280 ****
  5c6f9907795922b3292aff7910acbf7e  gcc/testsuite/gcc.dg/strlenopt-89.c
  b36a66c501ef03ad7cedb1c40484affd  gcc/testsuite/gcc.dg/strlenopt-9.c
  3ac42e10b5a0c2fc2200c85cb9470548  gcc/testsuite/gcc.dg/strlenopt-90.c
! 04d1c9bbf276912e933a419589de84c0  gcc/testsuite/gcc.dg/strlenopt-91.c
  7a9eb74d7cdfdbff4aaf7724a1c599f7  gcc/testsuite/gcc.dg/strlenopt-92.c
  359473db5cdd37f1bf6095e84675f821  gcc/testsuite/gcc.dg/strlenopt-93.c
  088575aea180cd1ef854fcc43bef2769  gcc/testsuite/gcc.dg/strlenopt-94.c
  92d0e4eba5d71d4f20fc6e1a8575d10f  gcc/testsuite/gcc.dg/strlenopt-95.c
  b5f70e58553a0938c1120805bb7995ab  gcc/testsuite/gcc.dg/strlenopt.h
  984ef97553c0d059b2563ed51439cb62  gcc/testsuite/gcc.dg/strncmp-1.c
  f58f592113e43197dadf58bbb685b20d  gcc/testsuite/gcc.dg/strncmp-2.c
--- 52104,52115 ----
  5c6f9907795922b3292aff7910acbf7e  gcc/testsuite/gcc.dg/strlenopt-89.c
  b36a66c501ef03ad7cedb1c40484affd  gcc/testsuite/gcc.dg/strlenopt-9.c
  3ac42e10b5a0c2fc2200c85cb9470548  gcc/testsuite/gcc.dg/strlenopt-90.c
! 2f3b29d7597d6713a742bd1712c2fda0  gcc/testsuite/gcc.dg/strlenopt-91.c
  7a9eb74d7cdfdbff4aaf7724a1c599f7  gcc/testsuite/gcc.dg/strlenopt-92.c
  359473db5cdd37f1bf6095e84675f821  gcc/testsuite/gcc.dg/strlenopt-93.c
  088575aea180cd1ef854fcc43bef2769  gcc/testsuite/gcc.dg/strlenopt-94.c
  92d0e4eba5d71d4f20fc6e1a8575d10f  gcc/testsuite/gcc.dg/strlenopt-95.c
+ 1abe5480308edb689056d78568150048  gcc/testsuite/gcc.dg/strlenopt-96.c
  b5f70e58553a0938c1120805bb7995ab  gcc/testsuite/gcc.dg/strlenopt.h
  984ef97553c0d059b2563ed51439cb62  gcc/testsuite/gcc.dg/strncmp-1.c
  f58f592113e43197dadf58bbb685b20d  gcc/testsuite/gcc.dg/strncmp-2.c
*************** f58f592113e43197dadf58bbb685b20d  gcc/te
*** 49282,49289 ****
  5778a0fbb76227bc62f3513b3543aed6  gcc/testsuite/gcc.dg/strncpy-fix-1.c
  c66363249ca43baee9f09bde5baeb896  gcc/testsuite/gcc.dg/strub-internal-pr113394.c
  6c551fbb45a2e62474fcd9aa76cc7676  gcc/testsuite/gcc.dg/strub-internal-volatile.c
  e1737f9100fe39030ff4b356bc6ff29e  gcc/testsuite/gcc.dg/struct-alias-1.c
! eab81e074a250403be7bbbc61131ba0e  gcc/testsuite/gcc.dg/struct-by-value-1.c
  fff906a27910e082e50f16054f4642c4  gcc/testsuite/gcc.dg/struct-by-value-2.c
  690c0c9a2bb5e991b2ad555aa009a37c  gcc/testsuite/gcc.dg/struct-empty-1.c
  34c06efaf6253e43912bfa295951eaa6  gcc/testsuite/gcc.dg/struct-empty-2.c
--- 52117,52125 ----
  5778a0fbb76227bc62f3513b3543aed6  gcc/testsuite/gcc.dg/strncpy-fix-1.c
  c66363249ca43baee9f09bde5baeb896  gcc/testsuite/gcc.dg/strub-internal-pr113394.c
  6c551fbb45a2e62474fcd9aa76cc7676  gcc/testsuite/gcc.dg/strub-internal-volatile.c
+ f863f39bb99153211219b4664754af40  gcc/testsuite/gcc.dg/strub-pr118007.c
  e1737f9100fe39030ff4b356bc6ff29e  gcc/testsuite/gcc.dg/struct-alias-1.c
! 756d07d22a151e89582543f5a88bda9f  gcc/testsuite/gcc.dg/struct-by-value-1.c
  fff906a27910e082e50f16054f4642c4  gcc/testsuite/gcc.dg/struct-by-value-2.c
  690c0c9a2bb5e991b2ad555aa009a37c  gcc/testsuite/gcc.dg/struct-empty-1.c
  34c06efaf6253e43912bfa295951eaa6  gcc/testsuite/gcc.dg/struct-empty-2.c
*************** ac72d210dcc5205efc0a772acb97390c  gcc/te
*** 49308,49315 ****
  4e889c486afef91f06cc3d5ac95077a4  gcc/testsuite/gcc.dg/switch-3.c
  7dae5f5aad2894163373f1d389d41afa  gcc/testsuite/gcc.dg/switch-4.c
  69478da5ef4d3c12686e0597fae7795e  gcc/testsuite/gcc.dg/switch-5.c
! 843a78b140fa29910e6dfff062d92e66  gcc/testsuite/gcc.dg/switch-6.c
! 7b2ce806fdc9fc4f8228319447f10ae3  gcc/testsuite/gcc.dg/switch-7.c
  9b4c978dea777328b4aa22c7e68baef4  gcc/testsuite/gcc.dg/switch-8.c
  637b23747265c3ddf11799727c5b0eb5  gcc/testsuite/gcc.dg/switch-9.c
  29e4c67a2eb0c1d946dba62155cf7dfe  gcc/testsuite/gcc.dg/switch-A.c
--- 52144,52151 ----
  4e889c486afef91f06cc3d5ac95077a4  gcc/testsuite/gcc.dg/switch-3.c
  7dae5f5aad2894163373f1d389d41afa  gcc/testsuite/gcc.dg/switch-4.c
  69478da5ef4d3c12686e0597fae7795e  gcc/testsuite/gcc.dg/switch-5.c
! c0d58c46cd2991a6a87d4fdb0b86ee0a  gcc/testsuite/gcc.dg/switch-6.c
! d16dc141091c12e618fc037cf9628052  gcc/testsuite/gcc.dg/switch-7.c
  9b4c978dea777328b4aa22c7e68baef4  gcc/testsuite/gcc.dg/switch-8.c
  637b23747265c3ddf11799727c5b0eb5  gcc/testsuite/gcc.dg/switch-9.c
  29e4c67a2eb0c1d946dba62155cf7dfe  gcc/testsuite/gcc.dg/switch-A.c
*************** ff05bfaf09ff28888e82d2b9fc85207b  gcc/te
*** 49323,49330 ****
  9ee612d8f22fad1d020266761b85e3aa  gcc/testsuite/gcc.dg/sync-fetch.c
  e26af612fbb4cd35a904b7f167a4f5a0  gcc/testsuite/gcc.dg/system-binary-constants-1.c
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/gcc.dg/system-binary-constants-1.h
  a55e4206e2dab0fdee9089430a7ce0ac  gcc/testsuite/gcc.dg/tail-merge-store.c
! 6b4d32d7726a0d54806d2d9029c1eb62  gcc/testsuite/gcc.dg/tanhbysinh.c
  7b4e445033eff6248e905aaeb2aea3ca  gcc/testsuite/gcc.dg/tg-tests.h
  84a918c67a151b12aef9998bc8dff1e1  gcc/testsuite/gcc.dg/titype-1.c
  9407bf5ea124fe12c7b85eb64edd26d4  gcc/testsuite/gcc.dg/tls/alias-1.c
--- 52159,52169 ----
  9ee612d8f22fad1d020266761b85e3aa  gcc/testsuite/gcc.dg/sync-fetch.c
  e26af612fbb4cd35a904b7f167a4f5a0  gcc/testsuite/gcc.dg/system-binary-constants-1.c
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/gcc.dg/system-binary-constants-1.h
+ 2e68926ebf1e819a0f8b1b45eeea7179  gcc/testsuite/gcc.dg/system-octal-constants-1.c
+ a60c403c4b6e82d1fc1eebc689fa70ed  gcc/testsuite/gcc.dg/system-octal-constants-1.h
  a55e4206e2dab0fdee9089430a7ce0ac  gcc/testsuite/gcc.dg/tail-merge-store.c
! 61aff9cc5dfb30a03ec2324fac4ae755  gcc/testsuite/gcc.dg/tanhbysinh.c
! ac2cd2a457dc103b2a7239970846ea88  gcc/testsuite/gcc.dg/tbaa.c
  7b4e445033eff6248e905aaeb2aea3ca  gcc/testsuite/gcc.dg/tg-tests.h
  84a918c67a151b12aef9998bc8dff1e1  gcc/testsuite/gcc.dg/titype-1.c
  9407bf5ea124fe12c7b85eb64edd26d4  gcc/testsuite/gcc.dg/tls/alias-1.c
*************** bd750cfcc2981be8695d1ba87cf4e02d  gcc/te
*** 49381,49387 ****
  3ab1a16951cdbfaf172055375ee208b1  gcc/testsuite/gcc.dg/tls/thr-cse-1.c
  f9dca9ba3163a454b601045eb9567803  gcc/testsuite/gcc.dg/tls/thr-init-1.c
  622c1bed70cf0fe0a74c0a5ed3602602  gcc/testsuite/gcc.dg/tls/thr-init-2.c
! fb0abe7e0e551470cff2dafc5d599748  gcc/testsuite/gcc.dg/tls/tls.exp
  972a92c27c38895cc90d496745d8e669  gcc/testsuite/gcc.dg/tls/trivial.c
  3f64e8f044d5d216448bf9d1642e94a3  gcc/testsuite/gcc.dg/tls/vis-attr-gd.c
  ac52768e9cf872ef83ce702631ddbf02  gcc/testsuite/gcc.dg/tls/vis-attr-hidden-gd.c
--- 52220,52226 ----
  3ab1a16951cdbfaf172055375ee208b1  gcc/testsuite/gcc.dg/tls/thr-cse-1.c
  f9dca9ba3163a454b601045eb9567803  gcc/testsuite/gcc.dg/tls/thr-init-1.c
  622c1bed70cf0fe0a74c0a5ed3602602  gcc/testsuite/gcc.dg/tls/thr-init-2.c
! b63af13f9b8436d00a52bfe7903cdb63  gcc/testsuite/gcc.dg/tls/tls.exp
  972a92c27c38895cc90d496745d8e669  gcc/testsuite/gcc.dg/tls/trivial.c
  3f64e8f044d5d216448bf9d1642e94a3  gcc/testsuite/gcc.dg/tls/vis-attr-gd.c
  ac52768e9cf872ef83ce702631ddbf02  gcc/testsuite/gcc.dg/tls/vis-attr-hidden-gd.c
*************** a6735d8e8f69b97fa5d86d82b34c7df5  gcc/te
*** 49391,49397 ****
  72de2a10909cbbf20b93b7eac4b5554b  gcc/testsuite/gcc.dg/tls/vis-pragma-hidden-gd.c
  497f332dd166e008cc9059d18c3a2fc6  gcc/testsuite/gcc.dg/tls/vis-pragma-hidden.c
  25214598e340e56bf7487e493e42c739  gcc/testsuite/gcc.dg/tm/20091013.c
! f9f47372393116a3e58a8470e17cae92  gcc/testsuite/gcc.dg/tm/20091221.c
  aa085ac0f143cec3ccd2d58a48f072e2  gcc/testsuite/gcc.dg/tm/20100125.c
  db0b88fa52185e2b6008847f8e433462  gcc/testsuite/gcc.dg/tm/20100519.c
  27984cd0374d392c7bfdb9c963e5e1b4  gcc/testsuite/gcc.dg/tm/20100524-2.c
--- 52230,52236 ----
  72de2a10909cbbf20b93b7eac4b5554b  gcc/testsuite/gcc.dg/tls/vis-pragma-hidden-gd.c
  497f332dd166e008cc9059d18c3a2fc6  gcc/testsuite/gcc.dg/tls/vis-pragma-hidden.c
  25214598e340e56bf7487e493e42c739  gcc/testsuite/gcc.dg/tm/20091013.c
! 131ab5eb137aa5d463117beafa8fe387  gcc/testsuite/gcc.dg/tm/20091221.c
  aa085ac0f143cec3ccd2d58a48f072e2  gcc/testsuite/gcc.dg/tm/20100125.c
  db0b88fa52185e2b6008847f8e433462  gcc/testsuite/gcc.dg/tm/20100519.c
  27984cd0374d392c7bfdb9c963e5e1b4  gcc/testsuite/gcc.dg/tm/20100524-2.c
*************** fe3f545b4342e4629b8e3f50ec72aa75  gcc/te
*** 49471,49483 ****
  69106475c2239e1185e01df0c747e5d0  gcc/testsuite/gcc.dg/tm/props-5.c
  c6a48dab441b531c2ea8105678947e48  gcc/testsuite/gcc.dg/tm/pub-safety-1.c
  04141c931c3cf5684e6da6b0f18cc32b  gcc/testsuite/gcc.dg/tm/reg-promotion.c
! e4eb1747624e4e5df09f61fadb7c2325  gcc/testsuite/gcc.dg/tm/tm.exp
  00343bf5eb219ac16f5bb8c4bd59994b  gcc/testsuite/gcc.dg/tm/unsafe.c
  c5937eee848b88c1df5be63f77274eb5  gcc/testsuite/gcc.dg/tm/unused.c
  73db2a051a0e581c5f21d54dac46af4f  gcc/testsuite/gcc.dg/tm/vector-1.c
  38a1d037f5efd24ebf26b772856f1fd5  gcc/testsuite/gcc.dg/tm/wrap-2.c
  9c9082faf33357285af11344ff7917c1  gcc/testsuite/gcc.dg/tm/wrap-3.c
  b3199063819ac8c4bb7cb6de0b32a730  gcc/testsuite/gcc.dg/tm/wrap-4.c
  b289cb661e65e301a58a81d7dec3f183  gcc/testsuite/gcc.dg/torture/20080716-1.c
  24316060744401b52cee0d67e3cfadca  gcc/testsuite/gcc.dg/torture/20090618-1.c
  7eed7b43fcd0a8a77303ce3d1c5ef02f  gcc/testsuite/gcc.dg/torture/20110713-1.c
--- 52310,52324 ----
  69106475c2239e1185e01df0c747e5d0  gcc/testsuite/gcc.dg/tm/props-5.c
  c6a48dab441b531c2ea8105678947e48  gcc/testsuite/gcc.dg/tm/pub-safety-1.c
  04141c931c3cf5684e6da6b0f18cc32b  gcc/testsuite/gcc.dg/tm/reg-promotion.c
! 6ad8a6a1446c81b7b026722c62e459c2  gcc/testsuite/gcc.dg/tm/tm.exp
  00343bf5eb219ac16f5bb8c4bd59994b  gcc/testsuite/gcc.dg/tm/unsafe.c
  c5937eee848b88c1df5be63f77274eb5  gcc/testsuite/gcc.dg/tm/unused.c
  73db2a051a0e581c5f21d54dac46af4f  gcc/testsuite/gcc.dg/tm/vector-1.c
  38a1d037f5efd24ebf26b772856f1fd5  gcc/testsuite/gcc.dg/tm/wrap-2.c
  9c9082faf33357285af11344ff7917c1  gcc/testsuite/gcc.dg/tm/wrap-3.c
  b3199063819ac8c4bb7cb6de0b32a730  gcc/testsuite/gcc.dg/tm/wrap-4.c
+ f10c1f703bbc79cd494a0b5d5a974efd  gcc/testsuite/gcc.dg/too-few-arguments.c
+ 39fae018b446dfa4371b128f24f705bf  gcc/testsuite/gcc.dg/too-many-arguments.c
  b289cb661e65e301a58a81d7dec3f183  gcc/testsuite/gcc.dg/torture/20080716-1.c
  24316060744401b52cee0d67e3cfadca  gcc/testsuite/gcc.dg/torture/20090618-1.c
  7eed7b43fcd0a8a77303ce3d1c5ef02f  gcc/testsuite/gcc.dg/torture/20110713-1.c
*************** d31400fbd06cbdeec1327317131c1eef  gcc/te
*** 49504,49510 ****
  e9a65b982d10036ade7cc92c77da3682  gcc/testsuite/gcc.dg/torture/20220518-1.c
  9fd80ecd2f7ee9f40db77c5478910f27  gcc/testsuite/gcc.dg/torture/20220518-2.c
  852a8e3497f32ebb54e9b55fc7587eb2  gcc/testsuite/gcc.dg/torture/20220525-1.c
! 6b765185ec201860e2594b08bb18461a  gcc/testsuite/gcc.dg/torture/Wsizeof-pointer-memaccess1.c
  33c88fb1161a115c3d2d9683966a010c  gcc/testsuite/gcc.dg/torture/addieq.c
  d90316227fadaa997f8880be358748ba  gcc/testsuite/gcc.dg/torture/addifeq.c
  f0fbadd5bb9cd5157ad0ecf5704442e7  gcc/testsuite/gcc.dg/torture/addifge.c
--- 52345,52352 ----
  e9a65b982d10036ade7cc92c77da3682  gcc/testsuite/gcc.dg/torture/20220518-1.c
  9fd80ecd2f7ee9f40db77c5478910f27  gcc/testsuite/gcc.dg/torture/20220518-2.c
  852a8e3497f32ebb54e9b55fc7587eb2  gcc/testsuite/gcc.dg/torture/20220525-1.c
! 661981f89e1070683b2069f632d2a4a5  gcc/testsuite/gcc.dg/torture/20240517-1.c
! 68168483263bc71de27b4a6309965d06  gcc/testsuite/gcc.dg/torture/Wsizeof-pointer-memaccess1.c
  33c88fb1161a115c3d2d9683966a010c  gcc/testsuite/gcc.dg/torture/addieq.c
  d90316227fadaa997f8880be358748ba  gcc/testsuite/gcc.dg/torture/addifeq.c
  f0fbadd5bb9cd5157ad0ecf5704442e7  gcc/testsuite/gcc.dg/torture/addifge.c
*************** e05c10e4692341801a9878158cad27d7  gcc/te
*** 49554,49560 ****
  c2aabfd0e7da2857b86672bc59174dcf  gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h
  9743d27e99f550b54fcdb44efc054f02  gcc/testsuite/gcc.dg/torture/asm-subreg-1.c
  d95cc663b80362e038948f52fb3d74be  gcc/testsuite/gcc.dg/torture/badshift.c
! ef8a74113ed65681e746068871cc9691  gcc/testsuite/gcc.dg/torture/bfloat16-basic.c
  4f2bc32805181f5c4c94abf466abb45b  gcc/testsuite/gcc.dg/torture/bfloat16-builtin-issignaling-1.c
  0f421e5d90df5d6b1df83fa8ea509c38  gcc/testsuite/gcc.dg/torture/bfloat16-builtin.c
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
--- 52396,52402 ----
  c2aabfd0e7da2857b86672bc59174dcf  gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h
  9743d27e99f550b54fcdb44efc054f02  gcc/testsuite/gcc.dg/torture/asm-subreg-1.c
  d95cc663b80362e038948f52fb3d74be  gcc/testsuite/gcc.dg/torture/badshift.c
! 5461f2a0c28a5f54c9ec9fa71970a2c9  gcc/testsuite/gcc.dg/torture/bfloat16-basic.c
  4f2bc32805181f5c4c94abf466abb45b  gcc/testsuite/gcc.dg/torture/bfloat16-builtin-issignaling-1.c
  0f421e5d90df5d6b1df83fa8ea509c38  gcc/testsuite/gcc.dg/torture/bfloat16-builtin.c
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
*************** c814fe4a3cd51a2ffa1ce4dc2a66cb30  gcc/te
*** 49627,49632 ****
--- 52469,52480 ----
  7c09d9b7385b033f56397e505e490aac  gcc/testsuite/gcc.dg/torture/bitint-7.c
  c7d2f371831f92ad470bde6ed1221537  gcc/testsuite/gcc.dg/torture/bitint-70.c
  e84ed2b9613e7dc3e0944e6f8c30bd59  gcc/testsuite/gcc.dg/torture/bitint-71.c
+ 93da7149fec15bc94e33b17eb4107895  gcc/testsuite/gcc.dg/torture/bitint-72.c
+ 1f43d359cad1a5b3a48f48a9c10568a9  gcc/testsuite/gcc.dg/torture/bitint-73.c
+ d74952b1e73d78295fc0ccb16c0a8b6f  gcc/testsuite/gcc.dg/torture/bitint-74.c
+ 47a60303d4b13f1c3a2aed096ec8343c  gcc/testsuite/gcc.dg/torture/bitint-75.c
+ 896ba6298bac21304239e8c0dcbadbd9  gcc/testsuite/gcc.dg/torture/bitint-76.c
+ 2608aa69ac055d04559dce7394b97765  gcc/testsuite/gcc.dg/torture/bitint-77.c
  cf2a2337cf009457d836bd48e49c0af3  gcc/testsuite/gcc.dg/torture/bitint-8.c
  4d03bd57dac0507a44cc15b9afacd8a3  gcc/testsuite/gcc.dg/torture/bitint-9.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
*************** dfb471a397851bdb52f7df883b650b86  gcc/te
*** 49643,49649 ****
  8713a7e9dff2eba5a2964d8d1c60e2f0  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c23.c
  16fc4b75d1106b1dcba3231d6838deb2  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-trunc.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
! f17d1f5035ab6459558b499a77e14ecc  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
  2ebe7edfc38a82904cf251e2bdfe9b55  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c
  5fa7281fb8ba2184bd3c722d16dd4750  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c
--- 52491,52497 ----
  8713a7e9dff2eba5a2964d8d1c60e2f0  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c23.c
  16fc4b75d1106b1dcba3231d6838deb2  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-trunc.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
! aed4b127d2ac5e4bf304bcc673996ebf  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
  2ebe7edfc38a82904cf251e2bdfe9b55  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c
  5fa7281fb8ba2184bd3c722d16dd4750  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c
*************** fe01d458fb1e7b307aca4d27de62eff0  gcc/te
*** 49678,49689 ****
  500d48d3b156ad2e1b9121d933504b79  gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
  aa8cb0db7596e9b0e87edb8ba4d89392  gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c
  48103f541453ef994906baa3e8cc9d99  gcc/testsuite/gcc.dg/torture/builtins-1.c
! 95c003e64ffbfa88cf22e7e0abb6d15c  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1a.c
! 4e37088d4365ea621db431f7e6fed74e  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1b.c
  dca6b9a0b04be64d1fd91290469bb98b  gcc/testsuite/gcc.dg/torture/c99-contract-1.c
! d91f1642a3d3d72da6f61a576021d2ea  gcc/testsuite/gcc.dg/torture/calleesave-sse.c
! ca7351c7a93d80d524ce603d92263c47  gcc/testsuite/gcc.dg/torture/convert-dfp-2.c
! 17bd0a31e9a5ce530b6d1899747f7a93  gcc/testsuite/gcc.dg/torture/convert-dfp.c
  61fdb26117b326e597982d733555a398  gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c
  82bfe80fc489a6c0a56a612f224158c1  gcc/testsuite/gcc.dg/torture/cris-volatile-1.c
  ce4f8106ed96ef070bead8ca0df02eea  gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
--- 52526,52609 ----
  500d48d3b156ad2e1b9121d933504b79  gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
  aa8cb0db7596e9b0e87edb8ba4d89392  gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c
  48103f541453ef994906baa3e8cc9d99  gcc/testsuite/gcc.dg/torture/builtins-1.c
! 98f28a68bb32b6891c07d351a9476339  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1a.c
! c6102603a47e67c7d0ff048291b93dab  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1b.c
  dca6b9a0b04be64d1fd91290469bb98b  gcc/testsuite/gcc.dg/torture/c99-contract-1.c
! 2444c3fc9e91edb0f19509c8f19dde3f  gcc/testsuite/gcc.dg/torture/calleesave-sse.c
! 196727321536d06a80347c8a827fcc08  gcc/testsuite/gcc.dg/torture/convert-dfp-2.c
! 667f0108ef65a503eaca5b9ab7437455  gcc/testsuite/gcc.dg/torture/convert-dfp.c
! 0d72dd92e2802196fcdfdd1bba2aaf4d  gcc/testsuite/gcc.dg/torture/crc-1.c
! f58b43120846f6bea17fe67bffe65743  gcc/testsuite/gcc.dg/torture/crc-10.c
! fb6d1e5d2e2104eef40491152fc263d6  gcc/testsuite/gcc.dg/torture/crc-11.c
! 5be78e18c0282280dbc92d123f809f4f  gcc/testsuite/gcc.dg/torture/crc-12.c
! edc9e21cb12dfa9b015a86663131c49c  gcc/testsuite/gcc.dg/torture/crc-13.c
! ad6bf3452dea09af1174870f356e0339  gcc/testsuite/gcc.dg/torture/crc-14.c
! ef7ab46e588904c8e54a2cbb36f133f9  gcc/testsuite/gcc.dg/torture/crc-15.c
! 3d9dd2abcbf0ab4458d255d2084c3f24  gcc/testsuite/gcc.dg/torture/crc-16.c
! 4c47b0b58085e2cae94a065f59bf87a7  gcc/testsuite/gcc.dg/torture/crc-17.c
! 58713801dee919282cdd369538dc7390  gcc/testsuite/gcc.dg/torture/crc-18.c
! 4fef0ec85819dd046efb66868bb1da2e  gcc/testsuite/gcc.dg/torture/crc-19.c
! 6055ce9e8af1767f827d51e237e8d3df  gcc/testsuite/gcc.dg/torture/crc-2.c
! 21871edc41ee5b276c33bf0ab2c4e649  gcc/testsuite/gcc.dg/torture/crc-20.c
! 0caf3163d17bcb1771c738768314395e  gcc/testsuite/gcc.dg/torture/crc-21.c
! 1931527d78c14a74f096762b20e66349  gcc/testsuite/gcc.dg/torture/crc-22.c
! 96af1cea2c87cc3a1718b5712afe2978  gcc/testsuite/gcc.dg/torture/crc-23.c
! 1fdef3ea8fa2414814b8979706da9247  gcc/testsuite/gcc.dg/torture/crc-24.c
! 86d449a8884602d1bd12e00c6c789c60  gcc/testsuite/gcc.dg/torture/crc-25.c
! 542e1710389beb9bb8b8ab3f5d085e44  gcc/testsuite/gcc.dg/torture/crc-26.c
! 95c0cbffc50c45b2e4c9dd47808e6792  gcc/testsuite/gcc.dg/torture/crc-27.c
! e1fb756480b5c58c3e4159cf2bf8c032  gcc/testsuite/gcc.dg/torture/crc-28.c
! 47a671a16e63f2cbba9efffe133e1021  gcc/testsuite/gcc.dg/torture/crc-29.c
! f211f5c8b941a37b72ef4769074385c5  gcc/testsuite/gcc.dg/torture/crc-3.c
! 54e94fc9260f1b8c7fb19658e8b29f87  gcc/testsuite/gcc.dg/torture/crc-4.c
! cf9137e87bd758970b7a57b2b86bc4a6  gcc/testsuite/gcc.dg/torture/crc-5.c
! 70a9078b3478080f6b99b1b4a0c634e7  gcc/testsuite/gcc.dg/torture/crc-6.c
! 7b01a64f5e6c2054e0001ccb6494aec3  gcc/testsuite/gcc.dg/torture/crc-7.c
! 3aaeeed3d919ba43d3e854841105b1f6  gcc/testsuite/gcc.dg/torture/crc-8.c
! ddbe83164cdf3e8739995c886ad407af  gcc/testsuite/gcc.dg/torture/crc-9.c
! 7e69e7b5b5af472abebf10bad96db307  gcc/testsuite/gcc.dg/torture/crc-CCIT-data16-xorOutside_InsideFor.c
! 8b3d15398507b8ada88b521e4483dc5e  gcc/testsuite/gcc.dg/torture/crc-CCIT-data16.c
! 58438339881c2a144088e57f26300e49  gcc/testsuite/gcc.dg/torture/crc-CCIT-data8.c
! a7093eabc8082926a1df3f3422798bca  gcc/testsuite/gcc.dg/torture/crc-coremark16-data16.c
! 9f981b87afe35adf84b41c2ad11617d9  gcc/testsuite/gcc.dg/torture/crc-coremark32-data16.c
! 61d145fb4e42ef98a66ed2035cb900c4  gcc/testsuite/gcc.dg/torture/crc-coremark32-data32.c
! b567408273b1acc443e141929a14e1a2  gcc/testsuite/gcc.dg/torture/crc-coremark32-data8.c
! c70d0d600c1feee569b9808e4ed7422e  gcc/testsuite/gcc.dg/torture/crc-coremark64-data32.c
! a2f22a0878c10be263743a30227c4283  gcc/testsuite/gcc.dg/torture/crc-coremark64-data64.c
! ca9fe7779b1acf8000ba086c75cd715b  gcc/testsuite/gcc.dg/torture/crc-coremark8-data8.c
! e24feaab8602d200ffaae38fde1b353b  gcc/testsuite/gcc.dg/torture/crc-crc32-data16.c
! 588a3dd6cc10682871b0a810939baaa4  gcc/testsuite/gcc.dg/torture/crc-crc32-data24.c
! f86cc1ef849b29350feeeffe251d6d3f  gcc/testsuite/gcc.dg/torture/crc-crc32-data8.c
! fac8cfc74c5c541ecfff4660d85e8f7e  gcc/testsuite/gcc.dg/torture/crc-crc32.c
! a86ab56571428d1ccdc92f8c2d56ec33  gcc/testsuite/gcc.dg/torture/crc-crc64-data32.c
! 14aed2c1c9f9f95ba49a22355706106e  gcc/testsuite/gcc.dg/torture/crc-crc64-data64.c
! 395a1bcb097d945062ca29c8f44660f8  gcc/testsuite/gcc.dg/torture/crc-crc8-data8-loop-xorInFor.c
! 55b0c5f8707712d6286c9a31eb8fdbad  gcc/testsuite/gcc.dg/torture/crc-crc8-data8-loop-xorOutsideFor.c
! e041b0238320869724063b213da3d0c1  gcc/testsuite/gcc.dg/torture/crc-crc8-data8-xorOustideFor.c
! fe9f6d0a2f9af4f6f2e1a7e38fbc9b2d  gcc/testsuite/gcc.dg/torture/crc-crc8.c
! 4775bd4f5ad9135d69cf075deccb4232  gcc/testsuite/gcc.dg/torture/crc-linux-1.c
! fe6b916605695ab37b4687a6a086f6f7  gcc/testsuite/gcc.dg/torture/crc-linux-2.c
! 82a00d7d623713d1d45ac4bad17eedd4  gcc/testsuite/gcc.dg/torture/crc-linux-3.c
! 3e4e86bb0df17d745bd257b9679f6669  gcc/testsuite/gcc.dg/torture/crc-linux-4.c
! eed2c63286b6b6998f662866ff3a0538  gcc/testsuite/gcc.dg/torture/crc-linux-5.c
! 2d7da32c25bb9f5667283aad598e1940  gcc/testsuite/gcc.dg/torture/crc-not-crc-15.c
! c6786c459151255312f2f773a9ec3641  gcc/testsuite/gcc.dg/torture/crc-side-instr-1.c
! 58b3dce9f9a6bd0473fd55f0d36eafe7  gcc/testsuite/gcc.dg/torture/crc-side-instr-10.c
! 0aca05308655a275e87c96a16c5105c4  gcc/testsuite/gcc.dg/torture/crc-side-instr-11.c
! b07beee31e7c4065907e947de4c79b6b  gcc/testsuite/gcc.dg/torture/crc-side-instr-12.c
! 8b00b1b5f0a3328b93395c0665e9f467  gcc/testsuite/gcc.dg/torture/crc-side-instr-13.c
! 4469a112374d08b78b5cd1e65dda430f  gcc/testsuite/gcc.dg/torture/crc-side-instr-14.c
! 8805cb803f3893ef0c385cb0f7c5259f  gcc/testsuite/gcc.dg/torture/crc-side-instr-15.c
! b2308529af7619f2f2bd99bb44aff559  gcc/testsuite/gcc.dg/torture/crc-side-instr-16.c
! 27e1b907b9b9c5d8a6bc01abe76cc7cb  gcc/testsuite/gcc.dg/torture/crc-side-instr-17.c
! b686b6996a207aa319235b5abc8ab950  gcc/testsuite/gcc.dg/torture/crc-side-instr-2.c
! 71e6d7ae20111a0e6f4f9aa8cf2b7213  gcc/testsuite/gcc.dg/torture/crc-side-instr-3.c
! 53262f6803c447d8d3343929fc394fc7  gcc/testsuite/gcc.dg/torture/crc-side-instr-4.c
! d8668812771260f53e423fb652ede14e  gcc/testsuite/gcc.dg/torture/crc-side-instr-5.c
! 81f8313bbdd95be5d09428ccd821394e  gcc/testsuite/gcc.dg/torture/crc-side-instr-6.c
! 4a799e06b7fa467588123ab4211b7833  gcc/testsuite/gcc.dg/torture/crc-side-instr-7.c
! 6b73d13a12aa06d19ee2fd011e457f05  gcc/testsuite/gcc.dg/torture/crc-side-instr-8.c
! 6669b08c1e3246718066c2f4c38e8261  gcc/testsuite/gcc.dg/torture/crc-side-instr-9.c
  61fdb26117b326e597982d733555a398  gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c
  82bfe80fc489a6c0a56a612f224158c1  gcc/testsuite/gcc.dg/torture/cris-volatile-1.c
  ce4f8106ed96ef070bead8ca0df02eea  gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
*************** e2fc2f6efb6228b3bdb1290bc22490fe  gcc/te
*** 49691,49697 ****
  309fb84632cbbf1dec8848dc9a808a83  gcc/testsuite/gcc.dg/torture/dfp-default-init-2.c
  f0a0abbf88d90c241d5a79a842755381  gcc/testsuite/gcc.dg/torture/dfp-default-init-3.c
  537c85296c73ca5b8d5644f2db0f4333  gcc/testsuite/gcc.dg/torture/dg-torture.exp
! cd5f72d1a4b2a92dcf8434e80e2602fc  gcc/testsuite/gcc.dg/torture/float128-basic.c
  bb3b562f0a0883df26aa18dc082521cd  gcc/testsuite/gcc.dg/torture/float128-builtin-issignaling-1.c
  494e5cff36358bcb8a5d95a0a1af2886  gcc/testsuite/gcc.dg/torture/float128-builtin.c
  9f83e18dda798133f6769ec78faafc56  gcc/testsuite/gcc.dg/torture/float128-cmp-invalid.c
--- 52611,52618 ----
  309fb84632cbbf1dec8848dc9a808a83  gcc/testsuite/gcc.dg/torture/dfp-default-init-2.c
  f0a0abbf88d90c241d5a79a842755381  gcc/testsuite/gcc.dg/torture/dfp-default-init-3.c
  537c85296c73ca5b8d5644f2db0f4333  gcc/testsuite/gcc.dg/torture/dg-torture.exp
! ed5093428df221cca719e063ffc1e088  gcc/testsuite/gcc.dg/torture/dse-trivial-auto-var-init.c
! 64b58330f7009eade0ae7c0f80d0fe7f  gcc/testsuite/gcc.dg/torture/float128-basic.c
  bb3b562f0a0883df26aa18dc082521cd  gcc/testsuite/gcc.dg/torture/float128-builtin-issignaling-1.c
  494e5cff36358bcb8a5d95a0a1af2886  gcc/testsuite/gcc.dg/torture/float128-builtin.c
  9f83e18dda798133f6769ec78faafc56  gcc/testsuite/gcc.dg/torture/float128-cmp-invalid.c
*************** b28a81887fe424c5516f8c05bef87e24  gcc/te
*** 49711,49717 ****
  d485cbf25472f0637e218de5aa74322a  gcc/testsuite/gcc.dg/torture/float128-tg.c
  a0352637f21fc07fa0443b4c4e043743  gcc/testsuite/gcc.dg/torture/float128-truncdf-underflow.c
  8fbddcb636bd4a2b44df81e9c60f7f79  gcc/testsuite/gcc.dg/torture/float128-truncsf-underflow.c
! 5e609df5e211240e5036e11a24878448  gcc/testsuite/gcc.dg/torture/float128x-basic.c
  2f74fdcfdfcde496703891e4e17507fe  gcc/testsuite/gcc.dg/torture/float128x-builtin-issignaling-1.c
  e33e9866b71e5b2d80a7726f98b4f67a  gcc/testsuite/gcc.dg/torture/float128x-builtin.c
  e49fe7885268fff640a38e0a037329c4  gcc/testsuite/gcc.dg/torture/float128x-complex.c
--- 52632,52638 ----
  d485cbf25472f0637e218de5aa74322a  gcc/testsuite/gcc.dg/torture/float128-tg.c
  a0352637f21fc07fa0443b4c4e043743  gcc/testsuite/gcc.dg/torture/float128-truncdf-underflow.c
  8fbddcb636bd4a2b44df81e9c60f7f79  gcc/testsuite/gcc.dg/torture/float128-truncsf-underflow.c
! e4b7103d45f853ec6bcbbf0d365f29af  gcc/testsuite/gcc.dg/torture/float128x-basic.c
  2f74fdcfdfcde496703891e4e17507fe  gcc/testsuite/gcc.dg/torture/float128x-builtin-issignaling-1.c
  e33e9866b71e5b2d80a7726f98b4f67a  gcc/testsuite/gcc.dg/torture/float128x-builtin.c
  e49fe7885268fff640a38e0a037329c4  gcc/testsuite/gcc.dg/torture/float128x-complex.c
*************** faaae848adb2651e6d76b499120a3ad5  gcc/te
*** 49721,49727 ****
  c13372500282ebfd8b04577d9ddf5d17  gcc/testsuite/gcc.dg/torture/float128x-tg-2.c
  2d17bad2259db985234345b4f2259fe6  gcc/testsuite/gcc.dg/torture/float128x-tg-3.c
  3dc76b62ff5a0921c2cd55872da79614  gcc/testsuite/gcc.dg/torture/float128x-tg.c
! 897b79c4f8eaf80f94f43880f77942ad  gcc/testsuite/gcc.dg/torture/float16-basic.c
  14b7d693328eed6d553e36d007f5aaaf  gcc/testsuite/gcc.dg/torture/float16-builtin-issignaling-1.c
  0b852fc3b1862a3ee4465e753b0e5269  gcc/testsuite/gcc.dg/torture/float16-builtin.c
  7e58cfd59df7aaacf5f6b4d8cf740b4e  gcc/testsuite/gcc.dg/torture/float16-complex.c
--- 52642,52648 ----
  c13372500282ebfd8b04577d9ddf5d17  gcc/testsuite/gcc.dg/torture/float128x-tg-2.c
  2d17bad2259db985234345b4f2259fe6  gcc/testsuite/gcc.dg/torture/float128x-tg-3.c
  3dc76b62ff5a0921c2cd55872da79614  gcc/testsuite/gcc.dg/torture/float128x-tg.c
! e5437c15a562f219568d20eb433f1cb4  gcc/testsuite/gcc.dg/torture/float16-basic.c
  14b7d693328eed6d553e36d007f5aaaf  gcc/testsuite/gcc.dg/torture/float16-builtin-issignaling-1.c
  0b852fc3b1862a3ee4465e753b0e5269  gcc/testsuite/gcc.dg/torture/float16-builtin.c
  7e58cfd59df7aaacf5f6b4d8cf740b4e  gcc/testsuite/gcc.dg/torture/float16-complex.c
*************** e090fedeec308991a1c09abff9f6fe64  gcc/te
*** 49731,49737 ****
  5634e3daf8b7419925b6959aa3ed1764  gcc/testsuite/gcc.dg/torture/float16-tg-2.c
  9777da1a4b23fac807d5ed96f0c68132  gcc/testsuite/gcc.dg/torture/float16-tg-3.c
  4298972236099eaad4f04b7a93a2b923  gcc/testsuite/gcc.dg/torture/float16-tg.c
! 3c7e9600fad352e6db16433dc3adf406  gcc/testsuite/gcc.dg/torture/float32-basic.c
  b4096eb52651ec65f950d30aee4a4940  gcc/testsuite/gcc.dg/torture/float32-builtin-issignaling-1.c
  94b044327500f6d1582d37ae9ea7796c  gcc/testsuite/gcc.dg/torture/float32-builtin.c
  466fe4121149750edb2fec5ab3226c8a  gcc/testsuite/gcc.dg/torture/float32-complex.c
--- 52652,52658 ----
  5634e3daf8b7419925b6959aa3ed1764  gcc/testsuite/gcc.dg/torture/float16-tg-2.c
  9777da1a4b23fac807d5ed96f0c68132  gcc/testsuite/gcc.dg/torture/float16-tg-3.c
  4298972236099eaad4f04b7a93a2b923  gcc/testsuite/gcc.dg/torture/float16-tg.c
! a0c23f6b2ed81d91a5ec8b926af61e93  gcc/testsuite/gcc.dg/torture/float32-basic.c
  b4096eb52651ec65f950d30aee4a4940  gcc/testsuite/gcc.dg/torture/float32-builtin-issignaling-1.c
  94b044327500f6d1582d37ae9ea7796c  gcc/testsuite/gcc.dg/torture/float32-builtin.c
  466fe4121149750edb2fec5ab3226c8a  gcc/testsuite/gcc.dg/torture/float32-complex.c
*************** b4096eb52651ec65f950d30aee4a4940  gcc/te
*** 49741,49767 ****
  fa50dda441f5c8935cc3883b733d6f4f  gcc/testsuite/gcc.dg/torture/float32-tg-2.c
  484c0f7a0e1bacc0b657a1a64d94ee09  gcc/testsuite/gcc.dg/torture/float32-tg-3.c
  3afb82e5cfc167df693441c3ed19e5ff  gcc/testsuite/gcc.dg/torture/float32-tg.c
! 85c6c5f52f73b65b1c948c3890f98995  gcc/testsuite/gcc.dg/torture/float32x-basic.c
  9c917e42d0660232584c878afe4d77f4  gcc/testsuite/gcc.dg/torture/float32x-builtin-issignaling-1.c
! 4a70ceb9cb585dd2e7b808836ba1a5c6  gcc/testsuite/gcc.dg/torture/float32x-builtin.c
  aef817e604f3b188289291b1907bfc65  gcc/testsuite/gcc.dg/torture/float32x-complex.c
  63ec3f7c1deb2f123396d523bf83ae3a  gcc/testsuite/gcc.dg/torture/float32x-floath.c
  358860f12e4b52c4d8c267c510fb3657  gcc/testsuite/gcc.dg/torture/float32x-nan-floath.c
  8efe896a31c91066b6963bfdcb5a1e49  gcc/testsuite/gcc.dg/torture/float32x-nan.c
! dafff5133398fb327002b7b2ecfdc9f7  gcc/testsuite/gcc.dg/torture/float32x-tg-2.c
  7e0e3d85111a1d8396674ffd7902dcc4  gcc/testsuite/gcc.dg/torture/float32x-tg-3.c
! ec429bc681a2cdaaf93025b91a53b777  gcc/testsuite/gcc.dg/torture/float32x-tg.c
! 19e47064edd340fead503184a0052f1f  gcc/testsuite/gcc.dg/torture/float64-basic.c
  d484dfa82978a064727b8afa7bfcf265  gcc/testsuite/gcc.dg/torture/float64-builtin-issignaling-1.c
! cae353410ad77c26913e93de7759b965  gcc/testsuite/gcc.dg/torture/float64-builtin.c
  4796861bb6ca40790008edefd3e86b9f  gcc/testsuite/gcc.dg/torture/float64-complex.c
  465667475890a3f5b21d79ee1d6989f4  gcc/testsuite/gcc.dg/torture/float64-floath.c
  67b225cec1e66f9c31619146784d75ab  gcc/testsuite/gcc.dg/torture/float64-nan-floath.c
  aafa2750eb1c3f9c87d637685a067d90  gcc/testsuite/gcc.dg/torture/float64-nan.c
! d296cbbb51d32777492acb1f17aef0f2  gcc/testsuite/gcc.dg/torture/float64-tg-2.c
  a5c1a74d472cc90f018fe1671f7c9256  gcc/testsuite/gcc.dg/torture/float64-tg-3.c
! 8af80ee8e8536fab4be8d890f966a365  gcc/testsuite/gcc.dg/torture/float64-tg.c
! 35cd512c19b363695945987b7e069720  gcc/testsuite/gcc.dg/torture/float64x-basic.c
  e4e755a866c90ba4abb29720bc65fed2  gcc/testsuite/gcc.dg/torture/float64x-builtin-issignaling-1.c
  857b2170423eed94fc84970fa740a540  gcc/testsuite/gcc.dg/torture/float64x-builtin.c
  aa497c91f7fdcc573573ced57b4f09dc  gcc/testsuite/gcc.dg/torture/float64x-complex.c
--- 52662,52688 ----
  fa50dda441f5c8935cc3883b733d6f4f  gcc/testsuite/gcc.dg/torture/float32-tg-2.c
  484c0f7a0e1bacc0b657a1a64d94ee09  gcc/testsuite/gcc.dg/torture/float32-tg-3.c
  3afb82e5cfc167df693441c3ed19e5ff  gcc/testsuite/gcc.dg/torture/float32-tg.c
! 04644c038d45891f7497ea2445bd430f  gcc/testsuite/gcc.dg/torture/float32x-basic.c
  9c917e42d0660232584c878afe4d77f4  gcc/testsuite/gcc.dg/torture/float32x-builtin-issignaling-1.c
! 04d06ed398a912675f456c446f33e338  gcc/testsuite/gcc.dg/torture/float32x-builtin.c
  aef817e604f3b188289291b1907bfc65  gcc/testsuite/gcc.dg/torture/float32x-complex.c
  63ec3f7c1deb2f123396d523bf83ae3a  gcc/testsuite/gcc.dg/torture/float32x-floath.c
  358860f12e4b52c4d8c267c510fb3657  gcc/testsuite/gcc.dg/torture/float32x-nan-floath.c
  8efe896a31c91066b6963bfdcb5a1e49  gcc/testsuite/gcc.dg/torture/float32x-nan.c
! 079186e5fcc7da310704deeb6d599bd6  gcc/testsuite/gcc.dg/torture/float32x-tg-2.c
  7e0e3d85111a1d8396674ffd7902dcc4  gcc/testsuite/gcc.dg/torture/float32x-tg-3.c
! 8ba4f9ae05f95199a5159992647bc478  gcc/testsuite/gcc.dg/torture/float32x-tg.c
! 1b6aa52e271924555587c610a7b8b699  gcc/testsuite/gcc.dg/torture/float64-basic.c
  d484dfa82978a064727b8afa7bfcf265  gcc/testsuite/gcc.dg/torture/float64-builtin-issignaling-1.c
! e9e55636d073a5099664c6cc6a63a60f  gcc/testsuite/gcc.dg/torture/float64-builtin.c
  4796861bb6ca40790008edefd3e86b9f  gcc/testsuite/gcc.dg/torture/float64-complex.c
  465667475890a3f5b21d79ee1d6989f4  gcc/testsuite/gcc.dg/torture/float64-floath.c
  67b225cec1e66f9c31619146784d75ab  gcc/testsuite/gcc.dg/torture/float64-nan-floath.c
  aafa2750eb1c3f9c87d637685a067d90  gcc/testsuite/gcc.dg/torture/float64-nan.c
! 7bca38a27668e86932b0919697556ce0  gcc/testsuite/gcc.dg/torture/float64-tg-2.c
  a5c1a74d472cc90f018fe1671f7c9256  gcc/testsuite/gcc.dg/torture/float64-tg-3.c
! bc6b5c393cc9337ce35f4d727a340c3e  gcc/testsuite/gcc.dg/torture/float64-tg.c
! c20ae62674756e84ef5cf61f96f97a13  gcc/testsuite/gcc.dg/torture/float64x-basic.c
  e4e755a866c90ba4abb29720bc65fed2  gcc/testsuite/gcc.dg/torture/float64x-builtin-issignaling-1.c
  857b2170423eed94fc84970fa740a540  gcc/testsuite/gcc.dg/torture/float64x-builtin.c
  aa497c91f7fdcc573573ced57b4f09dc  gcc/testsuite/gcc.dg/torture/float64x-complex.c
*************** c607e9ba043b49a404bff7052c271656  gcc/te
*** 49831,49836 ****
--- 52752,52758 ----
  2acab4e0e224902eccaeb4589df83bea  gcc/testsuite/gcc.dg/torture/hardbool.c
  2904f806acee7b2db769318625116a2e  gcc/testsuite/gcc.dg/torture/harden-cfr-noret-no-nothrow.c
  0325deb2602e09ab66f57245ebc297d1  gcc/testsuite/gcc.dg/torture/harden-cfr-tail-ub.c
+ 72c30616e7a675fb40374e4d3d6015ef  gcc/testsuite/gcc.dg/torture/ifcmb-1.c
  0781e72d34733d4d855abdff16164e61  gcc/testsuite/gcc.dg/torture/inf-compare-1-float.c
  37b3a395204de921222050c9326ed5d3  gcc/testsuite/gcc.dg/torture/inf-compare-1.c
  b704a5182c8ca77a9eb5810b6918a36b  gcc/testsuite/gcc.dg/torture/inf-compare-2-float.c
*************** cee315c60d4bb9871399c0c79c06b497  gcc/te
*** 49849,49856 ****
  81911e8fd95be0f05b695bc222d6e48f  gcc/testsuite/gcc.dg/torture/inf-compare-8.c
  8bc405a0c2f066f42366f583340cc58b  gcc/testsuite/gcc.dg/torture/inline-1.c
  601b941620b89839abca232084604d70  gcc/testsuite/gcc.dg/torture/inline-2.c
! c1ce8f34fb0b1a45c0af19c1798ebfb9  gcc/testsuite/gcc.dg/torture/inline-mem-cmp-1.c
! b8661c0755c3e6ca9beb09ca39354870  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-1.c
  2529600ee21ae9ddc90ef7b17f203c75  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-cmp-1.c
  d9d7e0bbb351429b87cfc3d6828caa28  gcc/testsuite/gcc.dg/torture/inline-mem-move-1.c
  0b1f6fa6ba2d2c75e662d5c3f6a45967  gcc/testsuite/gcc.dg/torture/inline-mem-set-1.c
--- 52771,52778 ----
  81911e8fd95be0f05b695bc222d6e48f  gcc/testsuite/gcc.dg/torture/inf-compare-8.c
  8bc405a0c2f066f42366f583340cc58b  gcc/testsuite/gcc.dg/torture/inline-1.c
  601b941620b89839abca232084604d70  gcc/testsuite/gcc.dg/torture/inline-2.c
! 7aac6c85ff3f90d3fdc7fe19b4e984f3  gcc/testsuite/gcc.dg/torture/inline-mem-cmp-1.c
! 40e4d12da038d255d555bb9ecb768c35  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-1.c
  2529600ee21ae9ddc90ef7b17f203c75  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-cmp-1.c
  d9d7e0bbb351429b87cfc3d6828caa28  gcc/testsuite/gcc.dg/torture/inline-mem-move-1.c
  0b1f6fa6ba2d2c75e662d5c3f6a45967  gcc/testsuite/gcc.dg/torture/inline-mem-set-1.c
*************** a397aa54be3f8e0f5ba40494ea6c1e4b  gcc/te
*** 49865,49870 ****
--- 52787,52793 ----
  2c86b58e3ce82bd270f40ef46e833fba  gcc/testsuite/gcc.dg/torture/matrix-5.c
  01c44e2631fc1766743c8a6a08af7692  gcc/testsuite/gcc.dg/torture/matrix-6.c
  a1453b71bbe2c1b559adfcb46671e7cf  gcc/testsuite/gcc.dg/torture/memcpy-1.c
+ 97616ce02317be72e66b3a994f9d5675  gcc/testsuite/gcc.dg/torture/minmaxneeqptr-1.c
  e18294d3404279a1f70b16e5f321d933  gcc/testsuite/gcc.dg/torture/mips-clobber-at.c
  33f2d5a949f3be0de5e28e8cf8bec90f  gcc/testsuite/gcc.dg/torture/mips-div-1.c
  4e40647acd4c0b0f635e3e9be60ce610  gcc/testsuite/gcc.dg/torture/mips-hilo-2.c
*************** f124a75fa8d431e9a4cb51ae745013e2  gcc/te
*** 49938,49944 ****
  2062200e69fde49ce31e4745b93b98e8  gcc/testsuite/gcc.dg/torture/pr101508.c
  a30561c35b626bdca950462ffda37c6f  gcc/testsuite/gcc.dg/torture/pr101512.c
  1d68442a4b4b07a8569fa9937818cdd2  gcc/testsuite/gcc.dg/torture/pr101972.c
! 0fa28c6d57d93a345fb1f4847e5bbded  gcc/testsuite/gcc.dg/torture/pr102124.c
  5e34dcacf0030cde6601e9b874bb22a3  gcc/testsuite/gcc.dg/torture/pr102131-1.c
  e4dc9cb21883714723fa42035128ded3  gcc/testsuite/gcc.dg/torture/pr102131-2.c
  f318abe7af713e8b679c510e8595714f  gcc/testsuite/gcc.dg/torture/pr102131-3.c
--- 52861,52867 ----
  2062200e69fde49ce31e4745b93b98e8  gcc/testsuite/gcc.dg/torture/pr101508.c
  a30561c35b626bdca950462ffda37c6f  gcc/testsuite/gcc.dg/torture/pr101512.c
  1d68442a4b4b07a8569fa9937818cdd2  gcc/testsuite/gcc.dg/torture/pr101972.c
! 1b85670409fc1f24fec84c384ac6792e  gcc/testsuite/gcc.dg/torture/pr102124.c
  5e34dcacf0030cde6601e9b874bb22a3  gcc/testsuite/gcc.dg/torture/pr102131-1.c
  e4dc9cb21883714723fa42035128ded3  gcc/testsuite/gcc.dg/torture/pr102131-2.c
  f318abe7af713e8b679c510e8595714f  gcc/testsuite/gcc.dg/torture/pr102131-3.c
*************** f318abe7af713e8b679c510e8595714f  gcc/te
*** 49946,49952 ****
  64f75e9bd3fe7ad8c0a8ce6cdc1a6537  gcc/testsuite/gcc.dg/torture/pr102139.c
  d5163c6f156932f5de0836fe8fa0b277  gcc/testsuite/gcc.dg/torture/pr102149.c
  c7fa8c61aab4091ae9cc7d1dac0e5731  gcc/testsuite/gcc.dg/torture/pr102518.c
! 9f1dcdf5769944ea067a3a74f74fa4f9  gcc/testsuite/gcc.dg/torture/pr102762.c
  a3c41f87aae08d4e9cba88bc348ed344  gcc/testsuite/gcc.dg/torture/pr102920.c
  48d348126bbc075e3b79fc3618a5294c  gcc/testsuite/gcc.dg/torture/pr103037.c
  98aa192f1dd77816cc201b3a0ee72edb  gcc/testsuite/gcc.dg/torture/pr103181.c
--- 52869,52875 ----
  64f75e9bd3fe7ad8c0a8ce6cdc1a6537  gcc/testsuite/gcc.dg/torture/pr102139.c
  d5163c6f156932f5de0836fe8fa0b277  gcc/testsuite/gcc.dg/torture/pr102149.c
  c7fa8c61aab4091ae9cc7d1dac0e5731  gcc/testsuite/gcc.dg/torture/pr102518.c
! 361d933ae41d92c7aeb97c7abcf81a26  gcc/testsuite/gcc.dg/torture/pr102762.c
  a3c41f87aae08d4e9cba88bc348ed344  gcc/testsuite/gcc.dg/torture/pr102920.c
  48d348126bbc075e3b79fc3618a5294c  gcc/testsuite/gcc.dg/torture/pr103037.c
  98aa192f1dd77816cc201b3a0ee72edb  gcc/testsuite/gcc.dg/torture/pr103181.c
*************** aca27cefb4917ea2670cad3f5c135922  gcc/te
*** 49959,49965 ****
  66fcee07a56c19209cb4aaa0d4aaaded  gcc/testsuite/gcc.dg/torture/pr103596.c
  0f7b7317cdc4f6ad1b2aa1eabfd47caa  gcc/testsuite/gcc.dg/torture/pr103615.c
  d2979674496cd04d05965989c8944076  gcc/testsuite/gcc.dg/torture/pr103816.c
! 4303029e3f8b889e824013e6663b8ee2  gcc/testsuite/gcc.dg/torture/pr103987.c
  aac1451adc501fbc9dea7a65911d83bc  gcc/testsuite/gcc.dg/torture/pr104279.c
  4a9e7313197abb7655c2c5af7e233dc0  gcc/testsuite/gcc.dg/torture/pr104280.c
  838939a2e50d7d46a855ffe0eb49f439  gcc/testsuite/gcc.dg/torture/pr104281.c
--- 52882,52888 ----
  66fcee07a56c19209cb4aaa0d4aaaded  gcc/testsuite/gcc.dg/torture/pr103596.c
  0f7b7317cdc4f6ad1b2aa1eabfd47caa  gcc/testsuite/gcc.dg/torture/pr103615.c
  d2979674496cd04d05965989c8944076  gcc/testsuite/gcc.dg/torture/pr103816.c
! 230e13502ae2bc0fd6d355919887ccaf  gcc/testsuite/gcc.dg/torture/pr103987.c
  aac1451adc501fbc9dea7a65911d83bc  gcc/testsuite/gcc.dg/torture/pr104279.c
  4a9e7313197abb7655c2c5af7e233dc0  gcc/testsuite/gcc.dg/torture/pr104280.c
  838939a2e50d7d46a855ffe0eb49f439  gcc/testsuite/gcc.dg/torture/pr104281.c
*************** aaae688ed537118ecbf8d228f6e3aefb  gcc/te
*** 49969,49980 ****
  3561ed178e9fcb2975a9ed3ed15031d2  gcc/testsuite/gcc.dg/torture/pr104543.c
  81290c6ff0bfab148b2719643baedcc3  gcc/testsuite/gcc.dg/torture/pr104676.c
  2dcd10ebfd5a047c94a2ae5db911090a  gcc/testsuite/gcc.dg/torture/pr104700-1.c
! e1a314db26d2ed15ee356b265b4fa4f2  gcc/testsuite/gcc.dg/torture/pr104825.c
  c8496374fcf5671cb66a6bacf8883299  gcc/testsuite/gcc.dg/torture/pr105132.c
  122d618652aeac29059cdbb22234c7b4  gcc/testsuite/gcc.dg/torture/pr105148.c
  ca1b8736d16b2cdaabaec84f87fa4d15  gcc/testsuite/gcc.dg/torture/pr105163.c
! 4bb8290bc8deebdec4e84b857eeb427d  gcc/testsuite/gcc.dg/torture/pr105166.c
! 509e1192da177175a7316ce5cdae8534  gcc/testsuite/gcc.dg/torture/pr105185.c
  a88279579fa471a64faeb41da64a9eb4  gcc/testsuite/gcc.dg/torture/pr105198.c
  9834733e88257ca7972443d03eaebe1f  gcc/testsuite/gcc.dg/torture/pr105231.c
  00902d3e455a0ede903ae5b08e76a48e  gcc/testsuite/gcc.dg/torture/pr105337.c
--- 52892,52903 ----
  3561ed178e9fcb2975a9ed3ed15031d2  gcc/testsuite/gcc.dg/torture/pr104543.c
  81290c6ff0bfab148b2719643baedcc3  gcc/testsuite/gcc.dg/torture/pr104676.c
  2dcd10ebfd5a047c94a2ae5db911090a  gcc/testsuite/gcc.dg/torture/pr104700-1.c
! afdb37dfe79b829201e582f77a121152  gcc/testsuite/gcc.dg/torture/pr104825.c
  c8496374fcf5671cb66a6bacf8883299  gcc/testsuite/gcc.dg/torture/pr105132.c
  122d618652aeac29059cdbb22234c7b4  gcc/testsuite/gcc.dg/torture/pr105148.c
  ca1b8736d16b2cdaabaec84f87fa4d15  gcc/testsuite/gcc.dg/torture/pr105163.c
! f63c8e23fae0a21e96ba4b11aaa8fbca  gcc/testsuite/gcc.dg/torture/pr105166.c
! 8cfe42762c8acd0858b763cb1e1ac750  gcc/testsuite/gcc.dg/torture/pr105185.c
  a88279579fa471a64faeb41da64a9eb4  gcc/testsuite/gcc.dg/torture/pr105198.c
  9834733e88257ca7972443d03eaebe1f  gcc/testsuite/gcc.dg/torture/pr105231.c
  00902d3e455a0ede903ae5b08e76a48e  gcc/testsuite/gcc.dg/torture/pr105337.c
*************** eeac37698d62ac42c407cf7ffdab1b4a  gcc/te
*** 50030,50036 ****
  ef2b84dc0bce27c12bd12e27c33dd806  gcc/testsuite/gcc.dg/torture/pr109564-2.c
  72f322a0e5d8096eb7fa42e2d8fabe7d  gcc/testsuite/gcc.dg/torture/pr109585.c
  f5aad1409cbbb9e3039cb7da55080bc6  gcc/testsuite/gcc.dg/torture/pr109609.c
! 0e0f17c50e8911b22c5b47e78696aba5  gcc/testsuite/gcc.dg/torture/pr109652.c
  2187f595796e8269bf267180b56e18a8  gcc/testsuite/gcc.dg/torture/pr109689.c
  c1a87948bd38764af99342569982d720  gcc/testsuite/gcc.dg/torture/pr109940.c
  c68e0fca588779377278aa9e84380d07  gcc/testsuite/gcc.dg/torture/pr110176.c
--- 52953,52959 ----
  ef2b84dc0bce27c12bd12e27c33dd806  gcc/testsuite/gcc.dg/torture/pr109564-2.c
  72f322a0e5d8096eb7fa42e2d8fabe7d  gcc/testsuite/gcc.dg/torture/pr109585.c
  f5aad1409cbbb9e3039cb7da55080bc6  gcc/testsuite/gcc.dg/torture/pr109609.c
! 14f1b7a5c96c7b0b8a599f2567caf3e0  gcc/testsuite/gcc.dg/torture/pr109652.c
  2187f595796e8269bf267180b56e18a8  gcc/testsuite/gcc.dg/torture/pr109689.c
  c1a87948bd38764af99342569982d720  gcc/testsuite/gcc.dg/torture/pr109940.c
  c68e0fca588779377278aa9e84380d07  gcc/testsuite/gcc.dg/torture/pr110176.c
*************** fdc8b582a69646e7582a869c04a0e89f  gcc/te
*** 50070,50075 ****
--- 52993,52999 ----
  08e70858d749c8cf6135eb92d5105a17  gcc/testsuite/gcc.dg/torture/pr111807.c
  404440fd3b4aac03198b518a7e9c5268  gcc/testsuite/gcc.dg/torture/pr111815.c
  e289e3514153e0ffe8b5b086904f40c4  gcc/testsuite/gcc.dg/torture/pr111818.c
+ 089386e73c437bddc6aaf50f7ad21a47  gcc/testsuite/gcc.dg/torture/pr111821.c
  b70bde6cc545284036a1efb03258af3b  gcc/testsuite/gcc.dg/torture/pr111838.c
  56318d34ceddb9d526a7fb72e608c202  gcc/testsuite/gcc.dg/torture/pr111916.c
  5a3dd17b41272920e3804d1b42cba87e  gcc/testsuite/gcc.dg/torture/pr111917.c
*************** e6a17de8a318ca00e3d210f4f76c6d3b  gcc/te
*** 50077,50087 ****
  e298819172440b235b58efbd38679a05  gcc/testsuite/gcc.dg/torture/pr112113.c
  1e5a5be4efef1ee222e142fcbc25978e  gcc/testsuite/gcc.dg/torture/pr112281-1.c
  3acf5c04c64ba9b942f88c4d8bde666c  gcc/testsuite/gcc.dg/torture/pr112281-2.c
! d02ac212dd010d49c79de1822f13d282  gcc/testsuite/gcc.dg/torture/pr112282.c
! 528cc4e00d07d0eabcf3a206aaf8aa6c  gcc/testsuite/gcc.dg/torture/pr112305.c
  43473d4c51e74fbf73e7e3e432756d89  gcc/testsuite/gcc.dg/torture/pr112310.c
  5947d5eb52c05e83fa32c3cdcd086391  gcc/testsuite/gcc.dg/torture/pr112344.c
! 2b763007d398585945f77af679d5b6f0  gcc/testsuite/gcc.dg/torture/pr112444.c
  2480cdfe9d615f1d720b5ee7ea51259d  gcc/testsuite/gcc.dg/torture/pr112469.c
  ec8ed57fd5556d08fb62e78e2002ba5d  gcc/testsuite/gcc.dg/torture/pr112487.c
  4c4e5699113cdfbd6a67cfd2e7875a9f  gcc/testsuite/gcc.dg/torture/pr112585.c
--- 53001,53011 ----
  e298819172440b235b58efbd38679a05  gcc/testsuite/gcc.dg/torture/pr112113.c
  1e5a5be4efef1ee222e142fcbc25978e  gcc/testsuite/gcc.dg/torture/pr112281-1.c
  3acf5c04c64ba9b942f88c4d8bde666c  gcc/testsuite/gcc.dg/torture/pr112281-2.c
! a0caea0217c0ef5eea0fa22f06f0bb9e  gcc/testsuite/gcc.dg/torture/pr112282.c
! ef07541aa2044959d6256aef7c585f2e  gcc/testsuite/gcc.dg/torture/pr112305.c
  43473d4c51e74fbf73e7e3e432756d89  gcc/testsuite/gcc.dg/torture/pr112310.c
  5947d5eb52c05e83fa32c3cdcd086391  gcc/testsuite/gcc.dg/torture/pr112344.c
! 34088de4b7a5cf58bdf99d93f6783233  gcc/testsuite/gcc.dg/torture/pr112444.c
  2480cdfe9d615f1d720b5ee7ea51259d  gcc/testsuite/gcc.dg/torture/pr112469.c
  ec8ed57fd5556d08fb62e78e2002ba5d  gcc/testsuite/gcc.dg/torture/pr112487.c
  4c4e5699113cdfbd6a67cfd2e7875a9f  gcc/testsuite/gcc.dg/torture/pr112585.c
*************** ec8ed57fd5556d08fb62e78e2002ba5d  gcc/te
*** 50090,50099 ****
  c5684166faf02044b5d8930cae3d92a2  gcc/testsuite/gcc.dg/torture/pr112827-1.c
  0d17f0aa6732803773034388710b03eb  gcc/testsuite/gcc.dg/torture/pr112827-2.c
  71e6b4437bf381edd99e9e6fdd633492  gcc/testsuite/gcc.dg/torture/pr112856.c
  0da1b162b4d30cd723409c71ad927d22  gcc/testsuite/gcc.dg/torture/pr112991.c
  a1645001cf3586b47483c821d94bff24  gcc/testsuite/gcc.dg/torture/pr113026-1.c
  f7f8eb5978df60ecbe2021cabd4bdc7a  gcc/testsuite/gcc.dg/torture/pr113026-2.c
! e8f4a19d4fdfea91e08564a544b094b3  gcc/testsuite/gcc.dg/torture/pr113126.c
  f3bab6271794f76a87e753dbe63b2cde  gcc/testsuite/gcc.dg/torture/pr113205.c
  c8fe6f984eb6e789cb2335a4556da38a  gcc/testsuite/gcc.dg/torture/pr113255.c
  8017656920f66e02201f705044be8aa7  gcc/testsuite/gcc.dg/torture/pr113396.c
--- 53014,53024 ----
  c5684166faf02044b5d8930cae3d92a2  gcc/testsuite/gcc.dg/torture/pr112827-1.c
  0d17f0aa6732803773034388710b03eb  gcc/testsuite/gcc.dg/torture/pr112827-2.c
  71e6b4437bf381edd99e9e6fdd633492  gcc/testsuite/gcc.dg/torture/pr112856.c
+ 956dc9b1dc1c726c549e9e69ca1db5ec  gcc/testsuite/gcc.dg/torture/pr112859.c
  0da1b162b4d30cd723409c71ad927d22  gcc/testsuite/gcc.dg/torture/pr112991.c
  a1645001cf3586b47483c821d94bff24  gcc/testsuite/gcc.dg/torture/pr113026-1.c
  f7f8eb5978df60ecbe2021cabd4bdc7a  gcc/testsuite/gcc.dg/torture/pr113026-2.c
! 6b8cee0b3d74e3be0f3a8748a1d49d29  gcc/testsuite/gcc.dg/torture/pr113126.c
  f3bab6271794f76a87e753dbe63b2cde  gcc/testsuite/gcc.dg/torture/pr113205.c
  c8fe6f984eb6e789cb2335a4556da38a  gcc/testsuite/gcc.dg/torture/pr113255.c
  8017656920f66e02201f705044be8aa7  gcc/testsuite/gcc.dg/torture/pr113396.c
*************** c8fe6f984eb6e789cb2335a4556da38a  gcc/te
*** 50103,50111 ****
  2b580a7ae85036ff9da4bf50bc4bb0aa  gcc/testsuite/gcc.dg/torture/pr113727.c
  6408328525b8820bbb97c99607f8bac0  gcc/testsuite/gcc.dg/torture/pr113796.c
  a9d12e460bc40c21c3c320bc3fc8b4d8  gcc/testsuite/gcc.dg/torture/pr113831.c
! 0b6eb97f6a9d2518b3190250da6fd4b3  gcc/testsuite/gcc.dg/torture/pr113895-1.c
  4b65a700ebaf772fdbde386e373dc3fd  gcc/testsuite/gcc.dg/torture/pr113895-2.c
! d215874f31934de25b278e61fefd0be3  gcc/testsuite/gcc.dg/torture/pr113895-3.c
  1e8952f063fca22c99cb576ea742fa8c  gcc/testsuite/gcc.dg/torture/pr113895-4.c
  59bd5392821be3bfd1ad431a82e9919e  gcc/testsuite/gcc.dg/torture/pr113898.c
  d40188d721dd1b63b893a6b359e1d22b  gcc/testsuite/gcc.dg/torture/pr114048.c
--- 53028,53036 ----
  2b580a7ae85036ff9da4bf50bc4bb0aa  gcc/testsuite/gcc.dg/torture/pr113727.c
  6408328525b8820bbb97c99607f8bac0  gcc/testsuite/gcc.dg/torture/pr113796.c
  a9d12e460bc40c21c3c320bc3fc8b4d8  gcc/testsuite/gcc.dg/torture/pr113831.c
! 25947814d981e31fd11787da3461b48e  gcc/testsuite/gcc.dg/torture/pr113895-1.c
  4b65a700ebaf772fdbde386e373dc3fd  gcc/testsuite/gcc.dg/torture/pr113895-2.c
! 9e939a6c60286525a9195127aa257564  gcc/testsuite/gcc.dg/torture/pr113895-3.c
  1e8952f063fca22c99cb576ea742fa8c  gcc/testsuite/gcc.dg/torture/pr113895-4.c
  59bd5392821be3bfd1ad431a82e9919e  gcc/testsuite/gcc.dg/torture/pr113898.c
  d40188d721dd1b63b893a6b359e1d22b  gcc/testsuite/gcc.dg/torture/pr114048.c
*************** adfade0b828b4f6c04193bf5e8dae44f  gcc/te
*** 50122,50129 ****
--- 53047,53149 ----
  2c68830fdc44dbd18e300f9430c6c89f  gcc/testsuite/gcc.dg/torture/pr114787.c
  36eccbc565ddfe1c74a1123440077694  gcc/testsuite/gcc.dg/torture/pr114792.c
  053c820a4d2b548f021b09e4f320e1ed  gcc/testsuite/gcc.dg/torture/pr114998.c
+ 23a622b467bff99981b31535d6dba92a  gcc/testsuite/gcc.dg/torture/pr115137.c
+ 9c8256ee1f00e6e1c1989c0934189d22  gcc/testsuite/gcc.dg/torture/pr115138.c
+ 7e300eda7bde08dbbe5f004cec90e7af  gcc/testsuite/gcc.dg/torture/pr115199.c
+ 70749aeac47178c47e4d0f7a16ae75cb  gcc/testsuite/gcc.dg/torture/pr115220.c
+ 653f8189647c6b78039663aa4db4e1aa  gcc/testsuite/gcc.dg/torture/pr115226.c
+ b9fe62163204f0f9de8d47547473ce6c  gcc/testsuite/gcc.dg/torture/pr115347.c
+ 6502349b73465f8f27566cada8236703  gcc/testsuite/gcc.dg/torture/pr115387-1.c
+ 4aff58f1e238f97dc2643f377591124e  gcc/testsuite/gcc.dg/torture/pr115387-2.c
+ cf393f3d0451e4ad87a8de2d735c9265  gcc/testsuite/gcc.dg/torture/pr115388.c
+ 14d326bdd94d57fde7d7fa218273b7d2  gcc/testsuite/gcc.dg/torture/pr115406.c
+ 41c829252f6f36ec5f77f1ddf8c3b7fe  gcc/testsuite/gcc.dg/torture/pr115492.c
+ 0afdce3dd5f696569b4a608be914a155  gcc/testsuite/gcc.dg/torture/pr115494.c
+ 55696235dc27ddb3d877bca135cf0b3e  gcc/testsuite/gcc.dg/torture/pr115641.c
  390c74e1cc81bd0e33c375ee049fb18b  gcc/testsuite/gcc.dg/torture/pr115701.c
+ 49e3c049d51dc95d5c514eaba09f78f9  gcc/testsuite/gcc.dg/torture/pr115877.c
+ 03f38c40a5c6d5cdcb0403d53a2cefda  gcc/testsuite/gcc.dg/torture/pr115901.c
+ 8f4dad59e3474f56b46b30ba1c6474ab  gcc/testsuite/gcc.dg/torture/pr115928.c
+ 7eb95f218bb1a6fe6432a9b2648f4609  gcc/testsuite/gcc.dg/torture/pr115929-1.c
+ b6eb1c21c9b6200f4014ad186e02e150  gcc/testsuite/gcc.dg/torture/pr115929-2.c
+ d84060777522949345eeebef510388ce  gcc/testsuite/gcc.dg/torture/pr116037.c
+ 2470bac9ef065ce13accf2a25a2e9a89  gcc/testsuite/gcc.dg/torture/pr116039.c
  b9f75d112b5891dd319ae19e3779967f  gcc/testsuite/gcc.dg/torture/pr116057.c
+ a416af0125bad612c0cf46a5d6401e54  gcc/testsuite/gcc.dg/torture/pr116079.c
+ 75657e2b5cfb2c2e016c3278199f0ada  gcc/testsuite/gcc.dg/torture/pr116134-1.c
+ cbf3e9074438c0fc59d7ba99a6377906  gcc/testsuite/gcc.dg/torture/pr116199.c
+ 781d8c238ddfb27c94a693a296ccb610  gcc/testsuite/gcc.dg/torture/pr116278-run-1.c
+ 164e88d40fc4ae642a6d4b4c04eb1f53  gcc/testsuite/gcc.dg/torture/pr116278-run-2.c
+ 2681c6cd00e71033ee5e58d3d2e24776  gcc/testsuite/gcc.dg/torture/pr116343.c
+ 99a6c1e6285db8d08064cd8aaa300ddd  gcc/testsuite/gcc.dg/torture/pr116380.c
+ b0e70276ca1233459713c4c0637f5c31  gcc/testsuite/gcc.dg/torture/pr116409-1.c
+ f27636f881a25ebf0106fc22010ddea9  gcc/testsuite/gcc.dg/torture/pr116409-2.c
+ 78733925c03c093a5b9fb429087338ac  gcc/testsuite/gcc.dg/torture/pr116412-1.c
+ faef4574dcafccbeda0fba81cc009226  gcc/testsuite/gcc.dg/torture/pr116420.c
+ 798adbb1647443200e77c0fd667ada2f  gcc/testsuite/gcc.dg/torture/pr116454-1.c
+ 8059636329da8ba84cf6fc4ecf02e524  gcc/testsuite/gcc.dg/torture/pr116454-2.c
+ ee0a75442ffcbad7b3754119b73be092  gcc/testsuite/gcc.dg/torture/pr116480-1.c
+ 9656cd1b469db6c42d08963621834f98  gcc/testsuite/gcc.dg/torture/pr116480-2.c
+ cc5e15b25cfa4f406844719a12e50aff  gcc/testsuite/gcc.dg/torture/pr116488.c
+ 8a5f4b9bae018f3e77c3649aef0a0b29  gcc/testsuite/gcc.dg/torture/pr116544.c
+ 7f548a7568376e272fd079fe9783d7fd  gcc/testsuite/gcc.dg/torture/pr116569.c
+ 088b68b49cfa1a48db0132338bce8dc1  gcc/testsuite/gcc.dg/torture/pr116579.c
+ 26feb828f8efabc996ee22e90cd17fc1  gcc/testsuite/gcc.dg/torture/pr116585.c
+ 859a1453375baf59382a516330246688  gcc/testsuite/gcc.dg/torture/pr116647.c
+ 59484ae831cab97471a148691d17d840  gcc/testsuite/gcc.dg/torture/pr116768.c
+ bf21c0311a6a3c46ee997e03811677f0  gcc/testsuite/gcc.dg/torture/pr116772-1.c
+ 90851a03846f85d6dde896f913b19065  gcc/testsuite/gcc.dg/torture/pr116795-1.c
+ d6ec131c4160e2e0ce0ecd3c0c175114  gcc/testsuite/gcc.dg/torture/pr116831.c
+ afa01d8e2860db31b20c79fbbd97a230  gcc/testsuite/gcc.dg/torture/pr116861-1.c
+ 7f0e882da356b91b760d6a0d6ac4305e  gcc/testsuite/gcc.dg/torture/pr116915.c
+ 7ff97033e93d5c0fd815ba8a91fcd00e  gcc/testsuite/gcc.dg/torture/pr116922.c
+ 0ab0973399fe5f1ad629cde162d7febd  gcc/testsuite/gcc.dg/torture/pr117041.c
+ 717e28a7c3f736d4be6dffbb456735cc  gcc/testsuite/gcc.dg/torture/pr117086.c
+ d6608e03b8048545410e7c67f9a30d4a  gcc/testsuite/gcc.dg/torture/pr117113.c
+ eed87995921a41d6f215168315f20d67  gcc/testsuite/gcc.dg/torture/pr117119.c
+ 94601842ccd70293d32c5069ff5cfcdb  gcc/testsuite/gcc.dg/torture/pr117137.c
+ 3ee5a9eaa36d87d5f7e96ab1b5891129  gcc/testsuite/gcc.dg/torture/pr117138.c
+ 9a05dc2f224a20418e6d93285ab6b8ec  gcc/testsuite/gcc.dg/torture/pr117186.c
+ 4b1370c324f6a58625a3ef37e71bcfc1  gcc/testsuite/gcc.dg/torture/pr117226.c
+ 6e7f6e2e418f4fdf187f07ac4ce3bafa  gcc/testsuite/gcc.dg/torture/pr117243-1.c
+ 42c403cdb88958c3d40395d6ca302c82  gcc/testsuite/gcc.dg/torture/pr117243-2.c
+ 053e2b41281cfeb112a74e4897bd2ac4  gcc/testsuite/gcc.dg/torture/pr117330-1.c
+ 0f6fc6ed111e2e5782be3518bfe6e1eb  gcc/testsuite/gcc.dg/torture/pr117333.c
+ 6c5f4375e1867f469650eb2a7e96b00e  gcc/testsuite/gcc.dg/torture/pr117363-1.c
+ 25449399ea66cf084fcc634fa522153a  gcc/testsuite/gcc.dg/torture/pr117363-2.c
+ 6ae50575ec63bfcc997168ba66e3cd75  gcc/testsuite/gcc.dg/torture/pr117417.c
+ 6c1a399e71959ad36ffda49fbaf05e04  gcc/testsuite/gcc.dg/torture/pr117420.c
+ a8c77450164d982f6f0dcc79256dc3b3  gcc/testsuite/gcc.dg/torture/pr117426-1.c
+ 63092c4f1184fca96521f8ee5da610ee  gcc/testsuite/gcc.dg/torture/pr117476-1.c
+ 531e12c65714226980b83a5cbdee2e53  gcc/testsuite/gcc.dg/torture/pr117476-2.c
+ 5af2c3f9d3b0fc4e4e5f1587b7b54559  gcc/testsuite/gcc.dg/torture/pr117492-1.c
+ 63b796d5b3b10504df9b0de833d5782f  gcc/testsuite/gcc.dg/torture/pr117496-1.c
+ eddfc0d7cd1c070bdf2c737c7d6c0fd6  gcc/testsuite/gcc.dg/torture/pr117546.c
+ 318fa402aa23281002f7acad59c9cdf6  gcc/testsuite/gcc.dg/torture/pr117567.c
+ 211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
+ 76bbfa7fe02fbfd78a081d253fceb5e9  gcc/testsuite/gcc.dg/torture/pr117811.c
+ a54993330e7b027c17c4eb45e9a8e2fc  gcc/testsuite/gcc.dg/torture/pr117859-1.c
+ 6ca4b56072ad00e7b9bb3f7ceae18e75  gcc/testsuite/gcc.dg/torture/pr117859-2.c
+ 6b9aaa702f18d21348344dba6b6aa8ae  gcc/testsuite/gcc.dg/torture/pr117938.c
+ 66b62cd3c17e663e000967aafbe81bc7  gcc/testsuite/gcc.dg/torture/pr117979.c
+ 3837334226a7b5a8ea8111e295806410  gcc/testsuite/gcc.dg/torture/pr118171.c
+ a63bb60b443414a6706c9643fb43df9e  gcc/testsuite/gcc.dg/torture/pr118174.c
+ 978db543837a14f17f7314fb0bc7ecad  gcc/testsuite/gcc.dg/torture/pr118184.c
+ 673535a31d0d70358a6475962b4d71c2  gcc/testsuite/gcc.dg/torture/pr118476-1.c
+ c121ae7f3256daf912d28b98d0d95e4c  gcc/testsuite/gcc.dg/torture/pr118552.c
+ 5d9b2e6352b4d9b6a16e27198e530b83  gcc/testsuite/gcc.dg/torture/pr118562.c
+ 746e87dc1942b529d28fdee8a2e20279  gcc/testsuite/gcc.dg/torture/pr118569.c
+ e4403a89254f5a90f7d2a235e849c989  gcc/testsuite/gcc.dg/torture/pr118662.c
+ d29f5dbd5ce72ebe101793547b043347  gcc/testsuite/gcc.dg/torture/pr118717.c
+ 4f00237a70e232a883a71b2c8d7c8f95  gcc/testsuite/gcc.dg/torture/pr118922-1.c
+ 1336e40e86c7e304aee9bfcb04c162c0  gcc/testsuite/gcc.dg/torture/pr118953.c
+ b37f032d37111cbd36d647ed8de79d98  gcc/testsuite/gcc.dg/torture/pr118954.c
+ 041b8ac36bd7b3e13fbc63deea99d65f  gcc/testsuite/gcc.dg/torture/pr119099.c
+ f6a4ab6f3670efed8330288522d1a7fc  gcc/testsuite/gcc.dg/torture/pr119131-1.c
+ 36f48d63adf7bb938767e81b1f86fcfa  gcc/testsuite/gcc.dg/torture/pr119133.c
+ 9c991c1fac1df6e51a434cc28f3d3d0d  gcc/testsuite/gcc.dg/torture/pr119417.c
+ 6286b6d7f9b6777b4b6d41fea79f96cb  gcc/testsuite/gcc.dg/torture/pr119532.c
+ bfdab77482901ca4badc096a22704326  gcc/testsuite/gcc.dg/torture/pr119599-1.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** b5000ff41188ffefe908fe9425b50e56  gcc/te
*** 50137,50148 ****
  3c61036933427d098f61be4415ca942f  gcc/testsuite/gcc.dg/torture/pr23821.c
  7b6775c3c797a385bd1980675d6724b5  gcc/testsuite/gcc.dg/torture/pr24257.c
  c4b73772b24fbbd1c6ef14bcd11c8b42  gcc/testsuite/gcc.dg/torture/pr24626-1.c
! 0082748b5e1215d1777efffdb2e6a13f  gcc/testsuite/gcc.dg/torture/pr24626-2.c
  a07d3b764fad19bf315579f23943a03f  gcc/testsuite/gcc.dg/torture/pr24626-3.c
  e0143dfae40092dc89e3b1a088370e88  gcc/testsuite/gcc.dg/torture/pr24626-4.c
  42e05ae5d0f540838f79b6544080817e  gcc/testsuite/gcc.dg/torture/pr24750-1.c
  98fba13047a6cfb5f660402f3f56296f  gcc/testsuite/gcc.dg/torture/pr24912-1.c
! 0738631cfcfdad6eb0bad628dc72f60e  gcc/testsuite/gcc.dg/torture/pr25183.c
  a8e844b5e45570d6708a8da821cdb7ed  gcc/testsuite/gcc.dg/torture/pr25481.c
  b93e5a6d4aa60a17bfa7ec5bda2eb25a  gcc/testsuite/gcc.dg/torture/pr25654.c
  81035e7a609855a8022fd1e3b78def06  gcc/testsuite/gcc.dg/torture/pr25706-1.c
--- 53157,53168 ----
  3c61036933427d098f61be4415ca942f  gcc/testsuite/gcc.dg/torture/pr23821.c
  7b6775c3c797a385bd1980675d6724b5  gcc/testsuite/gcc.dg/torture/pr24257.c
  c4b73772b24fbbd1c6ef14bcd11c8b42  gcc/testsuite/gcc.dg/torture/pr24626-1.c
! 348b7aafdf3d12c79bd72a5b16d9791d  gcc/testsuite/gcc.dg/torture/pr24626-2.c
  a07d3b764fad19bf315579f23943a03f  gcc/testsuite/gcc.dg/torture/pr24626-3.c
  e0143dfae40092dc89e3b1a088370e88  gcc/testsuite/gcc.dg/torture/pr24626-4.c
  42e05ae5d0f540838f79b6544080817e  gcc/testsuite/gcc.dg/torture/pr24750-1.c
  98fba13047a6cfb5f660402f3f56296f  gcc/testsuite/gcc.dg/torture/pr24912-1.c
! 9c155cb5478e586a90ddc39015623141  gcc/testsuite/gcc.dg/torture/pr25183.c
  a8e844b5e45570d6708a8da821cdb7ed  gcc/testsuite/gcc.dg/torture/pr25481.c
  b93e5a6d4aa60a17bfa7ec5bda2eb25a  gcc/testsuite/gcc.dg/torture/pr25654.c
  81035e7a609855a8022fd1e3b78def06  gcc/testsuite/gcc.dg/torture/pr25706-1.c
*************** fe1661d7b8d16d061f6cc858a2e28779  gcc/te
*** 50230,50236 ****
  8404336ea1b6831dcfb72587f1a7621f  gcc/testsuite/gcc.dg/torture/pr38271.c
  8e52e2d532e19a78160642ca0ddb091b  gcc/testsuite/gcc.dg/torture/pr38405.c
  805f2f2486d22fcc3f9e2ec4e4ce9199  gcc/testsuite/gcc.dg/torture/pr38774.c
! a899d6b91eee2d19732a6759e74d8824  gcc/testsuite/gcc.dg/torture/pr38948.c
  f97ad0d8ef48d456625b66b76f988cee  gcc/testsuite/gcc.dg/torture/pr39074-2.c
  f5556fc19a016272c56be8148ef6baad  gcc/testsuite/gcc.dg/torture/pr39074-3.c
  373956d0b5237e5ba8ef9331c9cd0563  gcc/testsuite/gcc.dg/torture/pr39074.c
--- 53250,53256 ----
  8404336ea1b6831dcfb72587f1a7621f  gcc/testsuite/gcc.dg/torture/pr38271.c
  8e52e2d532e19a78160642ca0ddb091b  gcc/testsuite/gcc.dg/torture/pr38405.c
  805f2f2486d22fcc3f9e2ec4e4ce9199  gcc/testsuite/gcc.dg/torture/pr38774.c
! 832180b7fedee159bf86405a7d296176  gcc/testsuite/gcc.dg/torture/pr38948.c
  f97ad0d8ef48d456625b66b76f988cee  gcc/testsuite/gcc.dg/torture/pr39074-2.c
  f5556fc19a016272c56be8148ef6baad  gcc/testsuite/gcc.dg/torture/pr39074-3.c
  373956d0b5237e5ba8ef9331c9cd0563  gcc/testsuite/gcc.dg/torture/pr39074.c
*************** d7ce2416b4f45039897a314a99facd3f  gcc/te
*** 50271,50277 ****
  ea4a551f9f2d2c167e1844af9f89b5c1  gcc/testsuite/gcc.dg/torture/pr44050.c
  662e3747cc900fd679688171b86b171a  gcc/testsuite/gcc.dg/torture/pr44695.c
  81232d0897a3b1fa5983f60300770a1e  gcc/testsuite/gcc.dg/torture/pr44806.c
! cbbcd8bd2883f9552e7782bfe9210b85  gcc/testsuite/gcc.dg/torture/pr44807.c
  e1213e7f1781099e8b6b8f61fe547285  gcc/testsuite/gcc.dg/torture/pr44913.c
  ed55ce1aecae511b6cdf551f76c90350  gcc/testsuite/gcc.dg/torture/pr44977.c
  3c8aae93a6be73ed35d3a47fe82d6795  gcc/testsuite/gcc.dg/torture/pr45017.c
--- 53291,53297 ----
  ea4a551f9f2d2c167e1844af9f89b5c1  gcc/testsuite/gcc.dg/torture/pr44050.c
  662e3747cc900fd679688171b86b171a  gcc/testsuite/gcc.dg/torture/pr44695.c
  81232d0897a3b1fa5983f60300770a1e  gcc/testsuite/gcc.dg/torture/pr44806.c
! f145c211dad224207307e36cb00317b3  gcc/testsuite/gcc.dg/torture/pr44807.c
  e1213e7f1781099e8b6b8f61fe547285  gcc/testsuite/gcc.dg/torture/pr44913.c
  ed55ce1aecae511b6cdf551f76c90350  gcc/testsuite/gcc.dg/torture/pr44977.c
  3c8aae93a6be73ed35d3a47fe82d6795  gcc/testsuite/gcc.dg/torture/pr45017.c
*************** b7d9048e8af2ee1ae41541dbb03bae8d  gcc/te
*** 50300,50306 ****
  2d34df67ab840ea0c671405d15b24508  gcc/testsuite/gcc.dg/torture/pr47228.c
  d492b6a7627e740e34a331eb76d75113  gcc/testsuite/gcc.dg/torture/pr47278-1.c
  355836340366535ea1e908300b87fc06  gcc/testsuite/gcc.dg/torture/pr47278-2.c
! d755bcdcc8f5307840e083bea8fb358d  gcc/testsuite/gcc.dg/torture/pr47281.c
  8d45390aa544d9d9b9f8f255e6359b80  gcc/testsuite/gcc.dg/torture/pr47364-1.c
  708876ef6477a5e0bd867ff1f9a407d0  gcc/testsuite/gcc.dg/torture/pr47365.c
  5f73e5119d8f3803ff6bfe84f81503b1  gcc/testsuite/gcc.dg/torture/pr47370.c
--- 53320,53326 ----
  2d34df67ab840ea0c671405d15b24508  gcc/testsuite/gcc.dg/torture/pr47228.c
  d492b6a7627e740e34a331eb76d75113  gcc/testsuite/gcc.dg/torture/pr47278-1.c
  355836340366535ea1e908300b87fc06  gcc/testsuite/gcc.dg/torture/pr47278-2.c
! 17bb774d1e877a9da5413641ed380d6e  gcc/testsuite/gcc.dg/torture/pr47281.c
  8d45390aa544d9d9b9f8f255e6359b80  gcc/testsuite/gcc.dg/torture/pr47364-1.c
  708876ef6477a5e0bd867ff1f9a407d0  gcc/testsuite/gcc.dg/torture/pr47365.c
  5f73e5119d8f3803ff6bfe84f81503b1  gcc/testsuite/gcc.dg/torture/pr47370.c
*************** d74f6acf0e1f652f5c716c969531d6c9  gcc/te
*** 50318,50328 ****
  d8f37dc708617f6389ec622f76b6cbcf  gcc/testsuite/gcc.dg/torture/pr47744-3.c
  0dd48878c14fd87645d9271ddfc856a8  gcc/testsuite/gcc.dg/torture/pr47890.c
  c9bd28adfe04acb9e189efa51749b0ea  gcc/testsuite/gcc.dg/torture/pr47917.c
! 1e3482288568c4f0ac3f7d648bb5e835  gcc/testsuite/gcc.dg/torture/pr47958-1.c
  6f4d26d375e37dd68889b6d257b90b9b  gcc/testsuite/gcc.dg/torture/pr47968.c
  287ecf24d5abcb1d62df079ac9c2bee2  gcc/testsuite/gcc.dg/torture/pr47975.c
  e17791831e47d89b139d02be43e199b6  gcc/testsuite/gcc.dg/torture/pr48044.c
! 62ce1f779f9eb32290947a8f729297c4  gcc/testsuite/gcc.dg/torture/pr48063.c
  98c7696b409d3c2fd91b76ff613c8156  gcc/testsuite/gcc.dg/torture/pr48098.c
  00d28039e9c583d25355218f40a8f9b4  gcc/testsuite/gcc.dg/torture/pr48124-1.c
  d0f6b889fc38d0c555052692f9450768  gcc/testsuite/gcc.dg/torture/pr48124-2.c
--- 53338,53348 ----
  d8f37dc708617f6389ec622f76b6cbcf  gcc/testsuite/gcc.dg/torture/pr47744-3.c
  0dd48878c14fd87645d9271ddfc856a8  gcc/testsuite/gcc.dg/torture/pr47890.c
  c9bd28adfe04acb9e189efa51749b0ea  gcc/testsuite/gcc.dg/torture/pr47917.c
! bd7a1d3d357568c134af9d0df1253366  gcc/testsuite/gcc.dg/torture/pr47958-1.c
  6f4d26d375e37dd68889b6d257b90b9b  gcc/testsuite/gcc.dg/torture/pr47968.c
  287ecf24d5abcb1d62df079ac9c2bee2  gcc/testsuite/gcc.dg/torture/pr47975.c
  e17791831e47d89b139d02be43e199b6  gcc/testsuite/gcc.dg/torture/pr48044.c
! 3df4cfae293f487246757cf4cf519da3  gcc/testsuite/gcc.dg/torture/pr48063.c
  98c7696b409d3c2fd91b76ff613c8156  gcc/testsuite/gcc.dg/torture/pr48098.c
  00d28039e9c583d25355218f40a8f9b4  gcc/testsuite/gcc.dg/torture/pr48124-1.c
  d0f6b889fc38d0c555052692f9450768  gcc/testsuite/gcc.dg/torture/pr48124-2.c
*************** d953abb1b179ed05521897df66c09627  gcc/te
*** 50337,50343 ****
  cf7efef13f584fc107711ae06dd4f9ed  gcc/testsuite/gcc.dg/torture/pr48702.c
  7af7349431a9e1d37ed601a9dfefbf93  gcc/testsuite/gcc.dg/torture/pr48731.c
  113915e064a98116b61b157713d06615  gcc/testsuite/gcc.dg/torture/pr48822.c
! f5c619d68dceaf9e0e33d57fd09a900a  gcc/testsuite/gcc.dg/torture/pr48953.c
  d583ad8ec3a0208319ac7ca2a2777572  gcc/testsuite/gcc.dg/torture/pr49030.c
  9474957971dc73b3f75c66585f78e5ff  gcc/testsuite/gcc.dg/torture/pr49079.c
  d2e8e8ec11a434bb591012dff5dfb3d4  gcc/testsuite/gcc.dg/torture/pr49169.c
--- 53357,53363 ----
  cf7efef13f584fc107711ae06dd4f9ed  gcc/testsuite/gcc.dg/torture/pr48702.c
  7af7349431a9e1d37ed601a9dfefbf93  gcc/testsuite/gcc.dg/torture/pr48731.c
  113915e064a98116b61b157713d06615  gcc/testsuite/gcc.dg/torture/pr48822.c
! 3e6f1b9f5ef6d54f9f83ec63475b28c1  gcc/testsuite/gcc.dg/torture/pr48953.c
  d583ad8ec3a0208319ac7ca2a2777572  gcc/testsuite/gcc.dg/torture/pr49030.c
  9474957971dc73b3f75c66585f78e5ff  gcc/testsuite/gcc.dg/torture/pr49079.c
  d2e8e8ec11a434bb591012dff5dfb3d4  gcc/testsuite/gcc.dg/torture/pr49169.c
*************** c7e0d1f0220fbce43958321f1434537d  gcc/te
*** 50487,50493 ****
  4e73118bd0cd48c101dbc4f29f5dc79c  gcc/testsuite/gcc.dg/torture/pr56965-1.c
  43c1ef7ea86a411356c89df1151ed0b6  gcc/testsuite/gcc.dg/torture/pr56965-2.c
  0f7b1a085c50fbe7a71bc1cf1da600a2  gcc/testsuite/gcc.dg/torture/pr57026.c
! e2b7c717f8fadbbd3a73556a5f7ef63a  gcc/testsuite/gcc.dg/torture/pr57036-1.c
  6ee72543de92ea8bf73e6240114f16cf  gcc/testsuite/gcc.dg/torture/pr57036-2.c
  db2531cabf549bacbd10a5d8f0f5bd29  gcc/testsuite/gcc.dg/torture/pr57075.c
  3af4ea519f42355b1a2f69ff27c4f8e9  gcc/testsuite/gcc.dg/torture/pr57081.c
--- 53507,53513 ----
  4e73118bd0cd48c101dbc4f29f5dc79c  gcc/testsuite/gcc.dg/torture/pr56965-1.c
  43c1ef7ea86a411356c89df1151ed0b6  gcc/testsuite/gcc.dg/torture/pr56965-2.c
  0f7b1a085c50fbe7a71bc1cf1da600a2  gcc/testsuite/gcc.dg/torture/pr57026.c
! bf3feeb6a1dad5efa26adde7d0ef06ee  gcc/testsuite/gcc.dg/torture/pr57036-1.c
  6ee72543de92ea8bf73e6240114f16cf  gcc/testsuite/gcc.dg/torture/pr57036-2.c
  db2531cabf549bacbd10a5d8f0f5bd29  gcc/testsuite/gcc.dg/torture/pr57075.c
  3af4ea519f42355b1a2f69ff27c4f8e9  gcc/testsuite/gcc.dg/torture/pr57081.c
*************** ae54d8f7f62dcd343a7673819f36d684  gcc/te
*** 50499,50505 ****
  2c294cc3635276068fdee76fd7b1eb82  gcc/testsuite/gcc.dg/torture/pr57214.c
  4901f0628848bf18a655fb924ce0edf6  gcc/testsuite/gcc.dg/torture/pr57251.c
  845769847030f070941db74e9782dce5  gcc/testsuite/gcc.dg/torture/pr57303.c
! c99cd8db49c08f93e69d5c56eb0556fa  gcc/testsuite/gcc.dg/torture/pr57330.c
  bf886fb9169b1bea9c33c365078fa538  gcc/testsuite/gcc.dg/torture/pr57341.c
  60a1c407cd875990011861fd700b448b  gcc/testsuite/gcc.dg/torture/pr57343.c
  f7898a212530d347af112f146c06c7a9  gcc/testsuite/gcc.dg/torture/pr57359-1.c
--- 53519,53525 ----
  2c294cc3635276068fdee76fd7b1eb82  gcc/testsuite/gcc.dg/torture/pr57214.c
  4901f0628848bf18a655fb924ce0edf6  gcc/testsuite/gcc.dg/torture/pr57251.c
  845769847030f070941db74e9782dce5  gcc/testsuite/gcc.dg/torture/pr57303.c
! 25268c9e924a223a559bd4056fa40f7f  gcc/testsuite/gcc.dg/torture/pr57330.c
  bf886fb9169b1bea9c33c365078fa538  gcc/testsuite/gcc.dg/torture/pr57341.c
  60a1c407cd875990011861fd700b448b  gcc/testsuite/gcc.dg/torture/pr57343.c
  f7898a212530d347af112f146c06c7a9  gcc/testsuite/gcc.dg/torture/pr57359-1.c
*************** a9c0a63cb2336704303155095a6c453f  gcc/te
*** 50517,50523 ****
  e1f76d1c7221d8b358de9e1afec3b0af  gcc/testsuite/gcc.dg/torture/pr57517.c
  a5c2783ab5ddf3529e7f6c7e2fd5069b  gcc/testsuite/gcc.dg/torture/pr57521.c
  d4d870805cc25dec6df7af24f58f6572  gcc/testsuite/gcc.dg/torture/pr57569.c
! ab3afea7e6068f3d641661689418c23a  gcc/testsuite/gcc.dg/torture/pr57584.c
  0b745a857b3c7efb0e1061874c943ce1  gcc/testsuite/gcc.dg/torture/pr57656.c
  d064c04422c573521042a21d9b65dbf6  gcc/testsuite/gcc.dg/torture/pr57676.c
  26110023944b046641989ad92c41a349  gcc/testsuite/gcc.dg/torture/pr57685.c
--- 53537,53543 ----
  e1f76d1c7221d8b358de9e1afec3b0af  gcc/testsuite/gcc.dg/torture/pr57517.c
  a5c2783ab5ddf3529e7f6c7e2fd5069b  gcc/testsuite/gcc.dg/torture/pr57521.c
  d4d870805cc25dec6df7af24f58f6572  gcc/testsuite/gcc.dg/torture/pr57569.c
! 9116800e8842947c5f54b68ce2aa0500  gcc/testsuite/gcc.dg/torture/pr57584.c
  0b745a857b3c7efb0e1061874c943ce1  gcc/testsuite/gcc.dg/torture/pr57656.c
  d064c04422c573521042a21d9b65dbf6  gcc/testsuite/gcc.dg/torture/pr57676.c
  26110023944b046641989ad92c41a349  gcc/testsuite/gcc.dg/torture/pr57685.c
*************** c47ad0b2897e63ad3159940f9b7fa206  gcc/te
*** 50539,50544 ****
--- 53559,53565 ----
  ea30d11931d516d6e92b14fe47202b4e  gcc/testsuite/gcc.dg/torture/pr58246.c
  3cec6cb50fce39de3010140ada8fc0db  gcc/testsuite/gcc.dg/torture/pr58326-1.c
  e8cb8b3bd7d4939f21b2249ccc907c60  gcc/testsuite/gcc.dg/torture/pr58326-2.c
+ 13fab5ca58099f08997ed7a30f83a540  gcc/testsuite/gcc.dg/torture/pr58416.c
  3b6b5ca75a791eaef6fe3d2dbaefcb1d  gcc/testsuite/gcc.dg/torture/pr58417.c
  9bc5f90faa2efd8139900d4888af0d50  gcc/testsuite/gcc.dg/torture/pr58539.c
  50d59d30c1b5eb20f096423274a84098  gcc/testsuite/gcc.dg/torture/pr58553.c
*************** dce8c5297653936abefc662cfb01d0ce  gcc/te
*** 50667,50673 ****
  08f0a2b83dfb93441266161bc27e6f90  gcc/testsuite/gcc.dg/torture/pr67619.c
  81481cf9f30d38be99a738f1834d34ce  gcc/testsuite/gcc.dg/torture/pr67690.c
  88602917282c6c665e27020347d8dc0f  gcc/testsuite/gcc.dg/torture/pr67736.c
! 1f73c4a7ea3d148bb8eec4f428f38ce0  gcc/testsuite/gcc.dg/torture/pr67741.c
  2dfc05045e917c9f660feaefc3f00e69  gcc/testsuite/gcc.dg/torture/pr67769.c
  acf5c2556973c8f7071ddf9e26be168e  gcc/testsuite/gcc.dg/torture/pr67794.c
  df0b6d7bff874fba3bebdde8b6202d6e  gcc/testsuite/gcc.dg/torture/pr67821-2.c
--- 53688,53694 ----
  08f0a2b83dfb93441266161bc27e6f90  gcc/testsuite/gcc.dg/torture/pr67619.c
  81481cf9f30d38be99a738f1834d34ce  gcc/testsuite/gcc.dg/torture/pr67690.c
  88602917282c6c665e27020347d8dc0f  gcc/testsuite/gcc.dg/torture/pr67736.c
! c12444e93128c88b6c14b04109aec996  gcc/testsuite/gcc.dg/torture/pr67741.c
  2dfc05045e917c9f660feaefc3f00e69  gcc/testsuite/gcc.dg/torture/pr67769.c
  acf5c2556973c8f7071ddf9e26be168e  gcc/testsuite/gcc.dg/torture/pr67794.c
  df0b6d7bff874fba3bebdde8b6202d6e  gcc/testsuite/gcc.dg/torture/pr67821-2.c
*************** c086cf125214d765f1c5a72c38be056f  gcc/te
*** 50676,50682 ****
  3932c35bf10928339ec683f5ce43b8d0  gcc/testsuite/gcc.dg/torture/pr67859.c
  afbc98302fa1cb47c152b4f482be2590  gcc/testsuite/gcc.dg/torture/pr67915.c
  6cc4eaba91021f7a6e6cced6283199cb  gcc/testsuite/gcc.dg/torture/pr67916.c
! 1c9adebe83476c74b0eaf45755312fde  gcc/testsuite/gcc.dg/torture/pr67947.c
  87c918e158e3ccc3b026108203a1e1ab  gcc/testsuite/gcc.dg/torture/pr67953.c
  47ff79c68173fd64e216bdb58e6b86e4  gcc/testsuite/gcc.dg/torture/pr68017.c
  c2e62c5e0ede18699d8172e562ea2a7e  gcc/testsuite/gcc.dg/torture/pr68031.c
--- 53697,53703 ----
  3932c35bf10928339ec683f5ce43b8d0  gcc/testsuite/gcc.dg/torture/pr67859.c
  afbc98302fa1cb47c152b4f482be2590  gcc/testsuite/gcc.dg/torture/pr67915.c
  6cc4eaba91021f7a6e6cced6283199cb  gcc/testsuite/gcc.dg/torture/pr67916.c
! 0ea0ce18452237223b3289ab9c39cfbd  gcc/testsuite/gcc.dg/torture/pr67947.c
  87c918e158e3ccc3b026108203a1e1ab  gcc/testsuite/gcc.dg/torture/pr67953.c
  47ff79c68173fd64e216bdb58e6b86e4  gcc/testsuite/gcc.dg/torture/pr68017.c
  c2e62c5e0ede18699d8172e562ea2a7e  gcc/testsuite/gcc.dg/torture/pr68031.c
*************** f2294906a6476231e2b12ff68137ab65  gcc/te
*** 50688,50694 ****
  153cf921cf7c7ad9b124f36403e29853  gcc/testsuite/gcc.dg/torture/pr68067-1.c
  a8e18c4769b8fe006e5fa521fa74039a  gcc/testsuite/gcc.dg/torture/pr68067-2.c
  ba6a8318799042eb31dcfd6ff1f850d0  gcc/testsuite/gcc.dg/torture/pr68083.c
! 008a31a5e5c41eb7c5a60f3c0b6ee396  gcc/testsuite/gcc.dg/torture/pr68104.c
  393863972c6ca6b4f6cb098bd55f868e  gcc/testsuite/gcc.dg/torture/pr68240.c
  cc9c8592efb6deac1cef42effd1a86b6  gcc/testsuite/gcc.dg/torture/pr68248.c
  d2f840702d630b303e989ba6f562a266  gcc/testsuite/gcc.dg/torture/pr68264.c
--- 53709,53715 ----
  153cf921cf7c7ad9b124f36403e29853  gcc/testsuite/gcc.dg/torture/pr68067-1.c
  a8e18c4769b8fe006e5fa521fa74039a  gcc/testsuite/gcc.dg/torture/pr68067-2.c
  ba6a8318799042eb31dcfd6ff1f850d0  gcc/testsuite/gcc.dg/torture/pr68083.c
! cdb57e4a3c8717fc82bb091ed19424b4  gcc/testsuite/gcc.dg/torture/pr68104.c
  393863972c6ca6b4f6cb098bd55f868e  gcc/testsuite/gcc.dg/torture/pr68240.c
  cc9c8592efb6deac1cef42effd1a86b6  gcc/testsuite/gcc.dg/torture/pr68248.c
  d2f840702d630b303e989ba6f562a266  gcc/testsuite/gcc.dg/torture/pr68264.c
*************** ca37554fa099644b27f18b1747259071  gcc/te
*** 50715,50721 ****
  59008f3290f88d2eaf978efda9749327  gcc/testsuite/gcc.dg/torture/pr69173.c
  83def19cd01f55fd106f3504d221dc8f  gcc/testsuite/gcc.dg/torture/pr69174.c
  4259ba4331e6505efd09001c089e0fe5  gcc/testsuite/gcc.dg/torture/pr69186.c
! be443eb5eaddbf463ae61791965b35b4  gcc/testsuite/gcc.dg/torture/pr69242.c
  81487b4b98d6a43455d70462c19a61ca  gcc/testsuite/gcc.dg/torture/pr69352.c
  843b6920bba4883aab1559f29da76771  gcc/testsuite/gcc.dg/torture/pr69376.c
  107bbd4cda39017a7437f6f50e9cd1a7  gcc/testsuite/gcc.dg/torture/pr69399.c
--- 53736,53742 ----
  59008f3290f88d2eaf978efda9749327  gcc/testsuite/gcc.dg/torture/pr69173.c
  83def19cd01f55fd106f3504d221dc8f  gcc/testsuite/gcc.dg/torture/pr69174.c
  4259ba4331e6505efd09001c089e0fe5  gcc/testsuite/gcc.dg/torture/pr69186.c
! bbcf818abdd15569687c52c58eaaad05  gcc/testsuite/gcc.dg/torture/pr69242.c
  81487b4b98d6a43455d70462c19a61ca  gcc/testsuite/gcc.dg/torture/pr69352.c
  843b6920bba4883aab1559f29da76771  gcc/testsuite/gcc.dg/torture/pr69376.c
  107bbd4cda39017a7437f6f50e9cd1a7  gcc/testsuite/gcc.dg/torture/pr69399.c
*************** ba506c0487bd3df9063357040eb97edb  gcc/te
*** 50757,50774 ****
  ff9607ee49a8fb07a644602b5b326e05  gcc/testsuite/gcc.dg/torture/pr70396.c
  b04a4c24e4db70bc25752ae3e8a2bd7b  gcc/testsuite/gcc.dg/torture/pr70421.c
  ff3c2aee40e9c9844deb96dd9600b613  gcc/testsuite/gcc.dg/torture/pr70450.c
! 3315958617f871624e05d5daa07cafd7  gcc/testsuite/gcc.dg/torture/pr70457.c
  b64fc3513d09279239f96771a7af996c  gcc/testsuite/gcc.dg/torture/pr70484.c
  8c186e2ae6ce38e03ee12e2e7609360e  gcc/testsuite/gcc.dg/torture/pr70542.c
  afe02f85eea1b350f51277401b3e0d48  gcc/testsuite/gcc.dg/torture/pr70623-2.c
  61e7cec95df840c2a121c16af7c54856  gcc/testsuite/gcc.dg/torture/pr70623.c
  da4037959e336e19cb95c25f91f8eb52  gcc/testsuite/gcc.dg/torture/pr70628.c
  4bf720800970b360938f42a250aa3e59  gcc/testsuite/gcc.dg/torture/pr70724.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
  058fe139380690d2ec38aa882c1f7908  gcc/testsuite/gcc.dg/torture/pr70780.c
  1e84eef1cf14107c196e49f94559a559  gcc/testsuite/gcc.dg/torture/pr70935.c
  b6bb0c63d9e968f4f16f282365518a50  gcc/testsuite/gcc.dg/torture/pr70941.c
! 7564faca035137859f31565ce2466f37  gcc/testsuite/gcc.dg/torture/pr70985.c
  9915e21032257877059e42dd288106d1  gcc/testsuite/gcc.dg/torture/pr70986-1.c
  78488111f00f60d36b4419c7e8a70b9f  gcc/testsuite/gcc.dg/torture/pr70986-2.c
  bb0df0891ea73ca572154ab5eb38bfb3  gcc/testsuite/gcc.dg/torture/pr70986-3.c
--- 53778,53796 ----
  ff9607ee49a8fb07a644602b5b326e05  gcc/testsuite/gcc.dg/torture/pr70396.c
  b04a4c24e4db70bc25752ae3e8a2bd7b  gcc/testsuite/gcc.dg/torture/pr70421.c
  ff3c2aee40e9c9844deb96dd9600b613  gcc/testsuite/gcc.dg/torture/pr70450.c
! 8902e73c82553b587c2baf3f8fc2127c  gcc/testsuite/gcc.dg/torture/pr70457.c
  b64fc3513d09279239f96771a7af996c  gcc/testsuite/gcc.dg/torture/pr70484.c
  8c186e2ae6ce38e03ee12e2e7609360e  gcc/testsuite/gcc.dg/torture/pr70542.c
  afe02f85eea1b350f51277401b3e0d48  gcc/testsuite/gcc.dg/torture/pr70623-2.c
  61e7cec95df840c2a121c16af7c54856  gcc/testsuite/gcc.dg/torture/pr70623.c
  da4037959e336e19cb95c25f91f8eb52  gcc/testsuite/gcc.dg/torture/pr70628.c
  4bf720800970b360938f42a250aa3e59  gcc/testsuite/gcc.dg/torture/pr70724.c
+ 5fc6843d84c7c67303a3c2a76863da48  gcc/testsuite/gcc.dg/torture/pr70740-1.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
  058fe139380690d2ec38aa882c1f7908  gcc/testsuite/gcc.dg/torture/pr70780.c
  1e84eef1cf14107c196e49f94559a559  gcc/testsuite/gcc.dg/torture/pr70935.c
  b6bb0c63d9e968f4f16f282365518a50  gcc/testsuite/gcc.dg/torture/pr70941.c
! 7ad5c43092d6ab1c1cd22f4cc97b73b3  gcc/testsuite/gcc.dg/torture/pr70985.c
  9915e21032257877059e42dd288106d1  gcc/testsuite/gcc.dg/torture/pr70986-1.c
  78488111f00f60d36b4419c7e8a70b9f  gcc/testsuite/gcc.dg/torture/pr70986-2.c
  bb0df0891ea73ca572154ab5eb38bfb3  gcc/testsuite/gcc.dg/torture/pr70986-3.c
*************** af2fe96a56e12f4d3da8c1e9da5687fe  gcc/te
*** 50798,50813 ****
  0edd46c744e2708f4afe092192c1167b  gcc/testsuite/gcc.dg/torture/pr71598-1.c
  885bffa10a4531b3a24a13a751fd3ac5  gcc/testsuite/gcc.dg/torture/pr71598-2.c
  cf0be6234564446bb6f51c165b1b774a  gcc/testsuite/gcc.dg/torture/pr71598-3.c
! b0020481b01ba2fea155b7e666817dc3  gcc/testsuite/gcc.dg/torture/pr71606.c
  e281b38a3466f38c9a2413771cb95374  gcc/testsuite/gcc.dg/torture/pr71762-1.c
  a106da354df87c5ff9562af3465dc6a2  gcc/testsuite/gcc.dg/torture/pr71762-2.c
  a311656e42125d7e8563fa88875fdafb  gcc/testsuite/gcc.dg/torture/pr71762-3.c
  73f845171cfb9898d60b5fae2de8b109  gcc/testsuite/gcc.dg/torture/pr71802.c
! f055e2895a430a59d7c2bdd70f5c7f20  gcc/testsuite/gcc.dg/torture/pr71816.c
  8e0a4d2ea34a41c4477fd75918a6d66c  gcc/testsuite/gcc.dg/torture/pr71866.c
! 2efd169675d2de5378ad15e1d0e40378  gcc/testsuite/gcc.dg/torture/pr71881.c
  7b60e47b8cd1b1bbfe2752fad88fbe75  gcc/testsuite/gcc.dg/torture/pr71887.c
! 98463698ba861253dd2a8e4171ade316  gcc/testsuite/gcc.dg/torture/pr71901.c
  00ec07f481e4001e5f052893e1716702  gcc/testsuite/gcc.dg/torture/pr71908.c
  8b2b68b4d609873d55aa36103f2e63d0  gcc/testsuite/gcc.dg/torture/pr71984.c
  e98b68660487b5e197a45bc7f3bff4e9  gcc/testsuite/gcc.dg/torture/pr71987.c
--- 53820,53835 ----
  0edd46c744e2708f4afe092192c1167b  gcc/testsuite/gcc.dg/torture/pr71598-1.c
  885bffa10a4531b3a24a13a751fd3ac5  gcc/testsuite/gcc.dg/torture/pr71598-2.c
  cf0be6234564446bb6f51c165b1b774a  gcc/testsuite/gcc.dg/torture/pr71598-3.c
! e121647e088656ed963b5c3c0ff0e38d  gcc/testsuite/gcc.dg/torture/pr71606.c
  e281b38a3466f38c9a2413771cb95374  gcc/testsuite/gcc.dg/torture/pr71762-1.c
  a106da354df87c5ff9562af3465dc6a2  gcc/testsuite/gcc.dg/torture/pr71762-2.c
  a311656e42125d7e8563fa88875fdafb  gcc/testsuite/gcc.dg/torture/pr71762-3.c
  73f845171cfb9898d60b5fae2de8b109  gcc/testsuite/gcc.dg/torture/pr71802.c
! c1aa5748adc5b2cf085d442ff01ef26d  gcc/testsuite/gcc.dg/torture/pr71816.c
  8e0a4d2ea34a41c4477fd75918a6d66c  gcc/testsuite/gcc.dg/torture/pr71866.c
! 004b0bd191cb4f3bdec6344d582cf888  gcc/testsuite/gcc.dg/torture/pr71881.c
  7b60e47b8cd1b1bbfe2752fad88fbe75  gcc/testsuite/gcc.dg/torture/pr71887.c
! 516e03ac5c7d57d3f5cad072d8a216fa  gcc/testsuite/gcc.dg/torture/pr71901.c
  00ec07f481e4001e5f052893e1716702  gcc/testsuite/gcc.dg/torture/pr71908.c
  8b2b68b4d609873d55aa36103f2e63d0  gcc/testsuite/gcc.dg/torture/pr71984.c
  e98b68660487b5e197a45bc7f3bff4e9  gcc/testsuite/gcc.dg/torture/pr71987.c
*************** e98b68660487b5e197a45bc7f3bff4e9  gcc/te
*** 50815,50831 ****
  5b3bbac9ac057f5f22a1c0c8f8e8610f  gcc/testsuite/gcc.dg/torture/pr72851.c
  cfd3b0b79c48299cb6628f451d8bf121  gcc/testsuite/gcc.dg/torture/pr73434.c
  84d2efbfb6770d353f4734e7a4b8472e  gcc/testsuite/gcc.dg/torture/pr75964.c
! 1f9604829d6bb0c3f431dbc355b6761b  gcc/testsuite/gcc.dg/torture/pr77286.c
  a60b7965903cb9c959e40c476b74eee8  gcc/testsuite/gcc.dg/torture/pr77309.c
  b2079f895bb4a53a9fb50a4f7f4dad38  gcc/testsuite/gcc.dg/torture/pr77436.c
  3738145bdfb921ff6fde7c38cba0ffc4  gcc/testsuite/gcc.dg/torture/pr77478.c
  187bce84b5e76cf69bf912ba10d401aa  gcc/testsuite/gcc.dg/torture/pr77479.c
  17031a70eb7fe83cd9e8acccd979f7e0  gcc/testsuite/gcc.dg/torture/pr77514.c
  3bb780f180e0ee73008ad02127a056f8  gcc/testsuite/gcc.dg/torture/pr77605.c
! 57be2089dac1fb2e85cd58323205f9a6  gcc/testsuite/gcc.dg/torture/pr77646.c
  865946206183cafa8a5643538e8b0fbb  gcc/testsuite/gcc.dg/torture/pr77648-1.c
  c945e3dac4b0d4098ff940d231eba713  gcc/testsuite/gcc.dg/torture/pr77648-2.c
! 8e1f04a554d32d547604127e4ea4f59b  gcc/testsuite/gcc.dg/torture/pr77677-2.c
  2afc5a931cc5490f42d223f25485577c  gcc/testsuite/gcc.dg/torture/pr77677.c
  114db937484a8170c1da6ce7c65177ca  gcc/testsuite/gcc.dg/torture/pr77768.c
  0c1201c2deca664e3c1604ccf7754c4c  gcc/testsuite/gcc.dg/torture/pr77826.c
--- 53837,53853 ----
  5b3bbac9ac057f5f22a1c0c8f8e8610f  gcc/testsuite/gcc.dg/torture/pr72851.c
  cfd3b0b79c48299cb6628f451d8bf121  gcc/testsuite/gcc.dg/torture/pr73434.c
  84d2efbfb6770d353f4734e7a4b8472e  gcc/testsuite/gcc.dg/torture/pr75964.c
! ad55fe3e50ea70bbc383a9f8b2dd55c5  gcc/testsuite/gcc.dg/torture/pr77286.c
  a60b7965903cb9c959e40c476b74eee8  gcc/testsuite/gcc.dg/torture/pr77309.c
  b2079f895bb4a53a9fb50a4f7f4dad38  gcc/testsuite/gcc.dg/torture/pr77436.c
  3738145bdfb921ff6fde7c38cba0ffc4  gcc/testsuite/gcc.dg/torture/pr77478.c
  187bce84b5e76cf69bf912ba10d401aa  gcc/testsuite/gcc.dg/torture/pr77479.c
  17031a70eb7fe83cd9e8acccd979f7e0  gcc/testsuite/gcc.dg/torture/pr77514.c
  3bb780f180e0ee73008ad02127a056f8  gcc/testsuite/gcc.dg/torture/pr77605.c
! aa6a8b55f95b030b50817ab304076e32  gcc/testsuite/gcc.dg/torture/pr77646.c
  865946206183cafa8a5643538e8b0fbb  gcc/testsuite/gcc.dg/torture/pr77648-1.c
  c945e3dac4b0d4098ff940d231eba713  gcc/testsuite/gcc.dg/torture/pr77648-2.c
! 00c9d0614d0a2730acb22ba4e2cac60e  gcc/testsuite/gcc.dg/torture/pr77677-2.c
  2afc5a931cc5490f42d223f25485577c  gcc/testsuite/gcc.dg/torture/pr77677.c
  114db937484a8170c1da6ce7c65177ca  gcc/testsuite/gcc.dg/torture/pr77768.c
  0c1201c2deca664e3c1604ccf7754c4c  gcc/testsuite/gcc.dg/torture/pr77826.c
*************** b6fcd6c290211e3d1b2497ce7a21795b  gcc/te
*** 50840,50846 ****
  cbdf397f5ecda85580815c5bca128b4d  gcc/testsuite/gcc.dg/torture/pr78218.c
  69f87a4237fadf252e2dfbfd10167584  gcc/testsuite/gcc.dg/torture/pr78305.c
  656dd1100d987387fe242a03ed6fde30  gcc/testsuite/gcc.dg/torture/pr78312.c
! 995afdbc01d0dca0a2c8e0962ec2ed37  gcc/testsuite/gcc.dg/torture/pr78365.c
  97a06daa72abd05b50e081d28e95b4ab  gcc/testsuite/gcc.dg/torture/pr78416.c
  6b094072f78968a10ea1551b16701951  gcc/testsuite/gcc.dg/torture/pr78482.c
  5075da9aea023db58913de91d7831e83  gcc/testsuite/gcc.dg/torture/pr78510.c
--- 53862,53868 ----
  cbdf397f5ecda85580815c5bca128b4d  gcc/testsuite/gcc.dg/torture/pr78218.c
  69f87a4237fadf252e2dfbfd10167584  gcc/testsuite/gcc.dg/torture/pr78305.c
  656dd1100d987387fe242a03ed6fde30  gcc/testsuite/gcc.dg/torture/pr78312.c
! dbd8fdc07a0abb3717d8e783ecbf01be  gcc/testsuite/gcc.dg/torture/pr78365.c
  97a06daa72abd05b50e081d28e95b4ab  gcc/testsuite/gcc.dg/torture/pr78416.c
  6b094072f78968a10ea1551b16701951  gcc/testsuite/gcc.dg/torture/pr78482.c
  5075da9aea023db58913de91d7831e83  gcc/testsuite/gcc.dg/torture/pr78510.c
*************** b0c885e4693ad5d7045cd6482b3302de  gcc/te
*** 50852,50858 ****
  d5f807dae932681546ed1b65493ac1f5  gcc/testsuite/gcc.dg/torture/pr78626.c
  9b9ea623a697ec8ccb49b3da71e473f2  gcc/testsuite/gcc.dg/torture/pr78727.c
  993a3dda89ab325c2c0104a20a2b3aa2  gcc/testsuite/gcc.dg/torture/pr78731.c
! ab66b40ecce76ec45ca64c32ff85824f  gcc/testsuite/gcc.dg/torture/pr78742.c
  49f923ed2eeea47441e849d02551b8b8  gcc/testsuite/gcc.dg/torture/pr78788.c
  fe180c0631cead1bc5043f1df2d9dfb7  gcc/testsuite/gcc.dg/torture/pr78997.c
  9969378616b981d84d0f99463d031ff9  gcc/testsuite/gcc.dg/torture/pr79088.c
--- 53874,53880 ----
  d5f807dae932681546ed1b65493ac1f5  gcc/testsuite/gcc.dg/torture/pr78626.c
  9b9ea623a697ec8ccb49b3da71e473f2  gcc/testsuite/gcc.dg/torture/pr78727.c
  993a3dda89ab325c2c0104a20a2b3aa2  gcc/testsuite/gcc.dg/torture/pr78731.c
! b3b49b9bc43b89c4d0cd01174fff706c  gcc/testsuite/gcc.dg/torture/pr78742.c
  49f923ed2eeea47441e849d02551b8b8  gcc/testsuite/gcc.dg/torture/pr78788.c
  fe180c0631cead1bc5043f1df2d9dfb7  gcc/testsuite/gcc.dg/torture/pr78997.c
  9969378616b981d84d0f99463d031ff9  gcc/testsuite/gcc.dg/torture/pr79088.c
*************** ecad54cff466f02e3fa89fa5ba6a198e  gcc/te
*** 50870,50876 ****
  0df5ceb12f76a6dc1bf36e2c5183b1b7  gcc/testsuite/gcc.dg/torture/pr79536.c
  454f620b10b777ffe98a6272450350e7  gcc/testsuite/gcc.dg/torture/pr79666.c
  4432e3c925131aeac4af0be1708a36b3  gcc/testsuite/gcc.dg/torture/pr79721.c
! 831c508ff9083c735a094322edfa0d2b  gcc/testsuite/gcc.dg/torture/pr79732.c
  3da645dbf43ab1015aa63ad05ec213d0  gcc/testsuite/gcc.dg/torture/pr79740.c
  f80a900aacbaaa97e6cf0f05c17de294  gcc/testsuite/gcc.dg/torture/pr79777.c
  650b2cb5760329f1348da8a8dbd59f7a  gcc/testsuite/gcc.dg/torture/pr79818.c
--- 53892,53898 ----
  0df5ceb12f76a6dc1bf36e2c5183b1b7  gcc/testsuite/gcc.dg/torture/pr79536.c
  454f620b10b777ffe98a6272450350e7  gcc/testsuite/gcc.dg/torture/pr79666.c
  4432e3c925131aeac4af0be1708a36b3  gcc/testsuite/gcc.dg/torture/pr79721.c
! 3ae844d7bbcc71d0083c47f87e6209ac  gcc/testsuite/gcc.dg/torture/pr79732.c
  3da645dbf43ab1015aa63ad05ec213d0  gcc/testsuite/gcc.dg/torture/pr79740.c
  f80a900aacbaaa97e6cf0f05c17de294  gcc/testsuite/gcc.dg/torture/pr79777.c
  650b2cb5760329f1348da8a8dbd59f7a  gcc/testsuite/gcc.dg/torture/pr79818.c
*************** a4f6b08c1291381e88e61db06bdf372f  gcc/te
*** 50890,50901 ****
  181186787b1edd60a1736c22385321bc  gcc/testsuite/gcc.dg/torture/pr80549.c
  412623be4155508e59d18149a49d023d  gcc/testsuite/gcc.dg/torture/pr80565.c
  03ecaa809bb832caf7cbddeeb4770315  gcc/testsuite/gcc.dg/torture/pr80591.c
! 6f9dd6b3efaa18a886a3e512876e42c8  gcc/testsuite/gcc.dg/torture/pr80612.c
  f5fb9f5c07db48d8adff52fc2762d85a  gcc/testsuite/gcc.dg/torture/pr80620.c
  52d7bd0b9062137f84491b7a22cb3fa1  gcc/testsuite/gcc.dg/torture/pr80713.c
! 97a179cbe5b898a4d4739e0fff8e32a3  gcc/testsuite/gcc.dg/torture/pr80764.c
! 62b28db4200d0c4e51bde8d1e5693886  gcc/testsuite/gcc.dg/torture/pr8081.c
! a8d41c3dc9b919057003c984fd22ecbd  gcc/testsuite/gcc.dg/torture/pr80842.c
  073d971ae33e9469bb2f56bfedeae4ed  gcc/testsuite/gcc.dg/torture/pr80876.c
  c2f4666182d5ff4f49350a3c404ee597  gcc/testsuite/gcc.dg/torture/pr80901.c
  d19aed0a4e2ff7539a13bbabe58b1718  gcc/testsuite/gcc.dg/torture/pr80970.c
--- 53912,53923 ----
  181186787b1edd60a1736c22385321bc  gcc/testsuite/gcc.dg/torture/pr80549.c
  412623be4155508e59d18149a49d023d  gcc/testsuite/gcc.dg/torture/pr80565.c
  03ecaa809bb832caf7cbddeeb4770315  gcc/testsuite/gcc.dg/torture/pr80591.c
! 419b9ab8688f89c7b47d369bc526aef9  gcc/testsuite/gcc.dg/torture/pr80612.c
  f5fb9f5c07db48d8adff52fc2762d85a  gcc/testsuite/gcc.dg/torture/pr80620.c
  52d7bd0b9062137f84491b7a22cb3fa1  gcc/testsuite/gcc.dg/torture/pr80713.c
! ed915b27ea3345f718d690c6b2bf32dd  gcc/testsuite/gcc.dg/torture/pr80764.c
! c99c3745eca0ddc81822cc070070a4d3  gcc/testsuite/gcc.dg/torture/pr8081.c
! 5e3bee8bf471d7975b29f6af11d6d4d6  gcc/testsuite/gcc.dg/torture/pr80842.c
  073d971ae33e9469bb2f56bfedeae4ed  gcc/testsuite/gcc.dg/torture/pr80876.c
  c2f4666182d5ff4f49350a3c404ee597  gcc/testsuite/gcc.dg/torture/pr80901.c
  d19aed0a4e2ff7539a13bbabe58b1718  gcc/testsuite/gcc.dg/torture/pr80970.c
*************** cc42448c4074f5bd6a38db7ef796616a  gcc/te
*** 50916,50929 ****
  39ba29e784fe1aeb492892ff34001798  gcc/testsuite/gcc.dg/torture/pr81573.c
  a3cbd362ecf5d6369ad7ee79963a0535  gcc/testsuite/gcc.dg/torture/pr81790.c
  54d430d8039df8d30de7153a46c2409a  gcc/testsuite/gcc.dg/torture/pr81814.c
! 2f651ba687b8870610f9edbcfbe94645  gcc/testsuite/gcc.dg/torture/pr81900.c
  8314ada81ea665898c4e839ec594aa42  gcc/testsuite/gcc.dg/torture/pr82102.c
  f49d29d7092cb5f2096a5aeee08c8bfc  gcc/testsuite/gcc.dg/torture/pr82129.c
  bbca4c823a1d21c2fbeb81ef1b8b92ce  gcc/testsuite/gcc.dg/torture/pr82157.c
  4fd57d65a37176fec853b9a23c3af812  gcc/testsuite/gcc.dg/torture/pr82217.c
  8bd84fcfed5e067d6e1e71c261f494be  gcc/testsuite/gcc.dg/torture/pr82244.c
  fceb11db75335ec403cac84c4b7152dc  gcc/testsuite/gcc.dg/torture/pr82264.c
! 454da85adee3a6a53aa95daa776ebdbd  gcc/testsuite/gcc.dg/torture/pr82276.c
  9159698b2ec0dbe37aaa793d0e3fdf2a  gcc/testsuite/gcc.dg/torture/pr82285.c
  13afc73ea0ac1c9465104f503ad5daeb  gcc/testsuite/gcc.dg/torture/pr82291.c
  1a9f42f7512e97fcf2c57e9afe2a75d3  gcc/testsuite/gcc.dg/torture/pr82320.c
--- 53938,53951 ----
  39ba29e784fe1aeb492892ff34001798  gcc/testsuite/gcc.dg/torture/pr81573.c
  a3cbd362ecf5d6369ad7ee79963a0535  gcc/testsuite/gcc.dg/torture/pr81790.c
  54d430d8039df8d30de7153a46c2409a  gcc/testsuite/gcc.dg/torture/pr81814.c
! 32746376e9ee0c5feb0cac167a783579  gcc/testsuite/gcc.dg/torture/pr81900.c
  8314ada81ea665898c4e839ec594aa42  gcc/testsuite/gcc.dg/torture/pr82102.c
  f49d29d7092cb5f2096a5aeee08c8bfc  gcc/testsuite/gcc.dg/torture/pr82129.c
  bbca4c823a1d21c2fbeb81ef1b8b92ce  gcc/testsuite/gcc.dg/torture/pr82157.c
  4fd57d65a37176fec853b9a23c3af812  gcc/testsuite/gcc.dg/torture/pr82217.c
  8bd84fcfed5e067d6e1e71c261f494be  gcc/testsuite/gcc.dg/torture/pr82244.c
  fceb11db75335ec403cac84c4b7152dc  gcc/testsuite/gcc.dg/torture/pr82264.c
! 52d05698a62c7d7f054d9a9130a377bd  gcc/testsuite/gcc.dg/torture/pr82276.c
  9159698b2ec0dbe37aaa793d0e3fdf2a  gcc/testsuite/gcc.dg/torture/pr82285.c
  13afc73ea0ac1c9465104f503ad5daeb  gcc/testsuite/gcc.dg/torture/pr82291.c
  1a9f42f7512e97fcf2c57e9afe2a75d3  gcc/testsuite/gcc.dg/torture/pr82320.c
*************** eb357b6602c35f0f3e0749bf3ba3ecaa  gcc/te
*** 50947,50958 ****
  8d0ffb493b91f045356477e34cdb5848  gcc/testsuite/gcc.dg/torture/pr84427.c
  0e72e484475d0856afac509dc28b8158  gcc/testsuite/gcc.dg/torture/pr84528.c
  d9fa5112301c2b0d1f2ce2b0ef38af05  gcc/testsuite/gcc.dg/torture/pr84682-1.c
! 33111966a4bd9d832e37f6e24594e0ec  gcc/testsuite/gcc.dg/torture/pr84682-2.c
  be22396349bbab37b65bc1eb3033887e  gcc/testsuite/gcc.dg/torture/pr84682-3.c
  7ce44848047572d54fbc4e89e5dc3bbe  gcc/testsuite/gcc.dg/torture/pr84740.c
  b1dc948dbe2e4e262af2a3b5dbfad2e9  gcc/testsuite/gcc.dg/torture/pr84746.c
  e03db596324f51251c0ce2c64b12cad2  gcc/testsuite/gcc.dg/torture/pr84775.c
! bb72aaefe1698b4bb1049aa9d6b7ee3a  gcc/testsuite/gcc.dg/torture/pr84803.c
  f5f1c6e563476cf4c72a652712ad2748  gcc/testsuite/gcc.dg/torture/pr84811.c
  e3454ccd4d18e962e3552dc0521625f3  gcc/testsuite/gcc.dg/torture/pr84830.c
  6561bd91779cfb10bb91f9a474943592  gcc/testsuite/gcc.dg/torture/pr84929.c
--- 53969,53980 ----
  8d0ffb493b91f045356477e34cdb5848  gcc/testsuite/gcc.dg/torture/pr84427.c
  0e72e484475d0856afac509dc28b8158  gcc/testsuite/gcc.dg/torture/pr84528.c
  d9fa5112301c2b0d1f2ce2b0ef38af05  gcc/testsuite/gcc.dg/torture/pr84682-1.c
! 86a8550c766ceea407264931c97a6efd  gcc/testsuite/gcc.dg/torture/pr84682-2.c
  be22396349bbab37b65bc1eb3033887e  gcc/testsuite/gcc.dg/torture/pr84682-3.c
  7ce44848047572d54fbc4e89e5dc3bbe  gcc/testsuite/gcc.dg/torture/pr84740.c
  b1dc948dbe2e4e262af2a3b5dbfad2e9  gcc/testsuite/gcc.dg/torture/pr84746.c
  e03db596324f51251c0ce2c64b12cad2  gcc/testsuite/gcc.dg/torture/pr84775.c
! 338306ad9189df8561bc7d987508b89b  gcc/testsuite/gcc.dg/torture/pr84803.c
  f5f1c6e563476cf4c72a652712ad2748  gcc/testsuite/gcc.dg/torture/pr84811.c
  e3454ccd4d18e962e3552dc0521625f3  gcc/testsuite/gcc.dg/torture/pr84830.c
  6561bd91779cfb10bb91f9a474943592  gcc/testsuite/gcc.dg/torture/pr84929.c
*************** eeaa909523dca7cee91b1b6d92e6597b  gcc/te
*** 51048,51054 ****
  2cca1fa27c7836598739153fafd4afb9  gcc/testsuite/gcc.dg/torture/pr91207.c
  216c94cf6ea6774640207c07dee8dbd1  gcc/testsuite/gcc.dg/torture/pr91211.c
  1c91d0f53cc0edbc4f24162b869f1d3e  gcc/testsuite/gcc.dg/torture/pr91267.c
! 5d0cce129534f730c51fdb556fd70459  gcc/testsuite/gcc.dg/torture/pr91323.c
  dfbddc7a97aef8ecbbb45d5a0ff044c7  gcc/testsuite/gcc.dg/torture/pr91445.c
  d7ac12f9b323b849d28f847975ee05a0  gcc/testsuite/gcc.dg/torture/pr91656-1.c
  bf75ea078dfeee5f8a7bf24812d7b1d7  gcc/testsuite/gcc.dg/torture/pr91656-2.c
--- 54070,54076 ----
  2cca1fa27c7836598739153fafd4afb9  gcc/testsuite/gcc.dg/torture/pr91207.c
  216c94cf6ea6774640207c07dee8dbd1  gcc/testsuite/gcc.dg/torture/pr91211.c
  1c91d0f53cc0edbc4f24162b869f1d3e  gcc/testsuite/gcc.dg/torture/pr91267.c
! 6543a319de4836532a5a4ad6514230b8  gcc/testsuite/gcc.dg/torture/pr91323.c
  dfbddc7a97aef8ecbbb45d5a0ff044c7  gcc/testsuite/gcc.dg/torture/pr91445.c
  d7ac12f9b323b849d28f847975ee05a0  gcc/testsuite/gcc.dg/torture/pr91656-1.c
  bf75ea078dfeee5f8a7bf24812d7b1d7  gcc/testsuite/gcc.dg/torture/pr91656-2.c
*************** bf75ea078dfeee5f8a7bf24812d7b1d7  gcc/te
*** 51056,51063 ****
  e398c88cb4160ec78fc9362787569fe9  gcc/testsuite/gcc.dg/torture/pr91812.c
  237cf96145e3501f80b6658a6f2cc08c  gcc/testsuite/gcc.dg/torture/pr91896.c
  8c70a09256d11bcd327a937d92b8d3a7  gcc/testsuite/gcc.dg/torture/pr92069.c
! 41603d5a5e2fbbc06e1a4f28136e0c7a  gcc/testsuite/gcc.dg/torture/pr92088-1.c
! 094d401bc82bc987d3711fe317147bac  gcc/testsuite/gcc.dg/torture/pr92088-2.c
  68f01c75766e97dd8ebf42a0b878a16e  gcc/testsuite/gcc.dg/torture/pr92152.c
  8e99fdbf07ece69b4c03cc506dc0d28d  gcc/testsuite/gcc.dg/torture/pr92173.c
  6fd747b36cdf872e31a070be2b7c67f9  gcc/testsuite/gcc.dg/torture/pr92203.c
--- 54078,54085 ----
  e398c88cb4160ec78fc9362787569fe9  gcc/testsuite/gcc.dg/torture/pr91812.c
  237cf96145e3501f80b6658a6f2cc08c  gcc/testsuite/gcc.dg/torture/pr91896.c
  8c70a09256d11bcd327a937d92b8d3a7  gcc/testsuite/gcc.dg/torture/pr92069.c
! 7c5909748debb6284ca7b2d3b8d3afdd  gcc/testsuite/gcc.dg/torture/pr92088-1.c
! 95fdad3f26c2911207f830d0c8002a99  gcc/testsuite/gcc.dg/torture/pr92088-2.c
  68f01c75766e97dd8ebf42a0b878a16e  gcc/testsuite/gcc.dg/torture/pr92152.c
  8e99fdbf07ece69b4c03cc506dc0d28d  gcc/testsuite/gcc.dg/torture/pr92173.c
  6fd747b36cdf872e31a070be2b7c67f9  gcc/testsuite/gcc.dg/torture/pr92203.c
*************** d65beaaa59a8423683eeb4e6f96a6c90  gcc/te
*** 51079,51085 ****
  8d4781bb8f543dec7157ce7c138f00d3  gcc/testsuite/gcc.dg/torture/pr92715.c
  f4439b0764177ea3457ef0859273ac4c  gcc/testsuite/gcc.dg/torture/pr92742.c
  b98a32bd327b321545265ce7edc856b9  gcc/testsuite/gcc.dg/torture/pr93110.c
! 5abf06588cb51b9daabe418f75462443  gcc/testsuite/gcc.dg/torture/pr93124.c
  a5418b3252d6a6b3f88633462571d8da  gcc/testsuite/gcc.dg/torture/pr93133.c
  5b19e208f860a4b3cfaf5781b8412264  gcc/testsuite/gcc.dg/torture/pr93170.c
  dd21c75d6eac9f019a72bb94132f182d  gcc/testsuite/gcc.dg/torture/pr93354.c
--- 54101,54107 ----
  8d4781bb8f543dec7157ce7c138f00d3  gcc/testsuite/gcc.dg/torture/pr92715.c
  f4439b0764177ea3457ef0859273ac4c  gcc/testsuite/gcc.dg/torture/pr92742.c
  b98a32bd327b321545265ce7edc856b9  gcc/testsuite/gcc.dg/torture/pr93110.c
! 883ca7c8f12fa8704b6746a2efaa7c1b  gcc/testsuite/gcc.dg/torture/pr93124.c
  a5418b3252d6a6b3f88633462571d8da  gcc/testsuite/gcc.dg/torture/pr93133.c
  5b19e208f860a4b3cfaf5781b8412264  gcc/testsuite/gcc.dg/torture/pr93170.c
  dd21c75d6eac9f019a72bb94132f182d  gcc/testsuite/gcc.dg/torture/pr93354.c
*************** bae425547d7c364d4781b56048755e11  gcc/te
*** 51094,51100 ****
  79912fc54487057b27f1a3b11f9f5414  gcc/testsuite/gcc.dg/torture/pr94206.c
  ce4383e1e83e1b0ab846107796c0f2b4  gcc/testsuite/gcc.dg/torture/pr94392.c
  d5053eab2105e6cdf547694ad59b90fa  gcc/testsuite/gcc.dg/torture/pr94439.c
! 577ab7d7a8d2ffa87f99f89445fa3408  gcc/testsuite/gcc.dg/torture/pr94479.c
  79631314e3a293ef93ce4202a5146f06  gcc/testsuite/gcc.dg/torture/pr94482.c
  e0ac106a863f9ebde2e73b57ac977143  gcc/testsuite/gcc.dg/torture/pr94516.c
  d6a8eaeb23cf8364c52302f30197c470  gcc/testsuite/gcc.dg/torture/pr94947-1.c
--- 54116,54122 ----
  79912fc54487057b27f1a3b11f9f5414  gcc/testsuite/gcc.dg/torture/pr94206.c
  ce4383e1e83e1b0ab846107796c0f2b4  gcc/testsuite/gcc.dg/torture/pr94392.c
  d5053eab2105e6cdf547694ad59b90fa  gcc/testsuite/gcc.dg/torture/pr94439.c
! 47453cda5d5d1abbf672647794b56a30  gcc/testsuite/gcc.dg/torture/pr94479.c
  79631314e3a293ef93ce4202a5146f06  gcc/testsuite/gcc.dg/torture/pr94482.c
  e0ac106a863f9ebde2e73b57ac977143  gcc/testsuite/gcc.dg/torture/pr94516.c
  d6a8eaeb23cf8364c52302f30197c470  gcc/testsuite/gcc.dg/torture/pr94947-1.c
*************** b6ac3fe74c736f29c622c9f00307a596  gcc/te
*** 51120,51126 ****
  db95a774894a2e658b9d7535b83b9157  gcc/testsuite/gcc.dg/torture/pr96548.c
  6d27c87ddaab2ea17de5920376761c64  gcc/testsuite/gcc.dg/torture/pr96760.c
  f925e890f2a6440c3e42a0699231edbb  gcc/testsuite/gcc.dg/torture/pr97135.c
! d2b3ed9cd2310f8d29376d85f9e4e962  gcc/testsuite/gcc.dg/torture/pr97330-1.c
  5e742bb8197b752bd2e25db5b4111f63  gcc/testsuite/gcc.dg/torture/pr97330-2.c
  b6f957c2a8ca9695ed6c652552b95fe8  gcc/testsuite/gcc.dg/torture/pr97559-1.c
  d8e07ab519f29b4fd0a597fc97d9cbf2  gcc/testsuite/gcc.dg/torture/pr97559-2.c
--- 54142,54148 ----
  db95a774894a2e658b9d7535b83b9157  gcc/testsuite/gcc.dg/torture/pr96548.c
  6d27c87ddaab2ea17de5920376761c64  gcc/testsuite/gcc.dg/torture/pr96760.c
  f925e890f2a6440c3e42a0699231edbb  gcc/testsuite/gcc.dg/torture/pr97135.c
! 0960473386fdb0672ccca8fe875f1fb5  gcc/testsuite/gcc.dg/torture/pr97330-1.c
  5e742bb8197b752bd2e25db5b4111f63  gcc/testsuite/gcc.dg/torture/pr97330-2.c
  b6f957c2a8ca9695ed6c652552b95fe8  gcc/testsuite/gcc.dg/torture/pr97559-1.c
  d8e07ab519f29b4fd0a597fc97d9cbf2  gcc/testsuite/gcc.dg/torture/pr97559-2.c
*************** bea94dc5b4f440a3a09008e23a97d794  gcc/te
*** 51132,51138 ****
  a4585f3b2febaea9b377690eb6e27b00  gcc/testsuite/gcc.dg/torture/pr98219-2.c
  78bc3f365c6a04f7f922bbb07fb465ac  gcc/testsuite/gcc.dg/torture/pr98235.c
  464aa2044b2bacce5e44c3835cdeff74  gcc/testsuite/gcc.dg/torture/pr98289.c
! e04ec27dc5469da4d5b29038bf9a9865  gcc/testsuite/gcc.dg/torture/pr98601.c
  b4f22a4d03e15783a08326646103718e  gcc/testsuite/gcc.dg/torture/pr98640.c
  26d769ec578c3e810f69bed767d169de  gcc/testsuite/gcc.dg/torture/pr98758.c
  0c23d23b6342f50b1da53586ef32fdd6  gcc/testsuite/gcc.dg/torture/pr98773.c
--- 54154,54160 ----
  a4585f3b2febaea9b377690eb6e27b00  gcc/testsuite/gcc.dg/torture/pr98219-2.c
  78bc3f365c6a04f7f922bbb07fb465ac  gcc/testsuite/gcc.dg/torture/pr98235.c
  464aa2044b2bacce5e44c3835cdeff74  gcc/testsuite/gcc.dg/torture/pr98289.c
! c7bf08bbddfb51d0a80502a46f6385b0  gcc/testsuite/gcc.dg/torture/pr98601.c
  b4f22a4d03e15783a08326646103718e  gcc/testsuite/gcc.dg/torture/pr98640.c
  26d769ec578c3e810f69bed767d169de  gcc/testsuite/gcc.dg/torture/pr98758.c
  0c23d23b6342f50b1da53586ef32fdd6  gcc/testsuite/gcc.dg/torture/pr98773.c
*************** ef26911618617d51e6ffc39ca7a78dc2  gcc/te
*** 51167,51173 ****
  e210efee65ce4c71ee51c42800c7d958  gcc/testsuite/gcc.dg/torture/ssa-fre-6.c
  095e87ff17fb64844ff3bf9a63f032dd  gcc/testsuite/gcc.dg/torture/ssa-fre-7.c
  d51a1a2d04a1d082546a84981004801f  gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
! 53a2ab81fc05f5ba0724c2020a12a151  gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c
  2d416072232dd69f1b2a756bbb4d1dfd  gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
  9173dbcdd930c05fbaaa3328f1c8aa19  gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
  dc476fb6c6fcd7370e5d269c50d72e4f  gcc/testsuite/gcc.dg/torture/stackalign/alloca-4.c
--- 54189,54195 ----
  e210efee65ce4c71ee51c42800c7d958  gcc/testsuite/gcc.dg/torture/ssa-fre-6.c
  095e87ff17fb64844ff3bf9a63f032dd  gcc/testsuite/gcc.dg/torture/ssa-fre-7.c
  d51a1a2d04a1d082546a84981004801f  gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
! 6e0cee5d35c21b4facfcf49285b51ae7  gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c
  2d416072232dd69f1b2a756bbb4d1dfd  gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
  9173dbcdd930c05fbaaa3328f1c8aa19  gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
  dc476fb6c6fcd7370e5d269c50d72e4f  gcc/testsuite/gcc.dg/torture/stackalign/alloca-4.c
*************** d902ae1540aab0be308e7ba8052278bf  gcc/te
*** 51182,51194 ****
  a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/gcc.dg/torture/stackalign/check.h
  fc7edf6af7d557c019daea5a3682f91e  gcc/testsuite/gcc.dg/torture/stackalign/comp-goto-1.c
  27cb382aa38b2d606ef2b7f107abbf29  gcc/testsuite/gcc.dg/torture/stackalign/fastcall-1.c
! 6ceb4365af69bb6c63498a1cb98c6a52  gcc/testsuite/gcc.dg/torture/stackalign/global-1.c
! 7bbe2c713d926977b50ee3f146378d30  gcc/testsuite/gcc.dg/torture/stackalign/inline-1.c
! 3b7730d30d00c566fe020515a49fc008  gcc/testsuite/gcc.dg/torture/stackalign/inline-2.c
! 69c05dfda578fff63d47dce238ae5cc1  gcc/testsuite/gcc.dg/torture/stackalign/nested-1.c
! 8cabcec726702b8b2492c2e86d0c25fc  gcc/testsuite/gcc.dg/torture/stackalign/nested-2.c
! fe2ed24e6a1681e17e903eadc7b7bd20  gcc/testsuite/gcc.dg/torture/stackalign/nested-3.c
! b97497569ae5556fdfbbde09c2ce3745  gcc/testsuite/gcc.dg/torture/stackalign/nested-4.c
  c7f7b5a10505f059ca3939572a291f3c  gcc/testsuite/gcc.dg/torture/stackalign/nested-5.c
  ed0527675792cf2a3fe0c22a4b66e841  gcc/testsuite/gcc.dg/torture/stackalign/nested-6.c
  3c95f79f4f5b4f4aba744fdd56db598b  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-1.c
--- 54204,54216 ----
  a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/gcc.dg/torture/stackalign/check.h
  fc7edf6af7d557c019daea5a3682f91e  gcc/testsuite/gcc.dg/torture/stackalign/comp-goto-1.c
  27cb382aa38b2d606ef2b7f107abbf29  gcc/testsuite/gcc.dg/torture/stackalign/fastcall-1.c
! 9c179e663137b116fb9835f678443b21  gcc/testsuite/gcc.dg/torture/stackalign/global-1.c
! eb083021fbccd51419efba2d11423663  gcc/testsuite/gcc.dg/torture/stackalign/inline-1.c
! 6a30ee795fbc67fd94b496d61b78ed28  gcc/testsuite/gcc.dg/torture/stackalign/inline-2.c
! 947b40bab69e73b55e7a7ee867042158  gcc/testsuite/gcc.dg/torture/stackalign/nested-1.c
! 573eb629ed8581759a786c063d2c9874  gcc/testsuite/gcc.dg/torture/stackalign/nested-2.c
! dc3b4c0dc8e8ddf68b1c80d47c074c14  gcc/testsuite/gcc.dg/torture/stackalign/nested-3.c
! 8d5c2cd4849aa671aedb5e9237efeacf  gcc/testsuite/gcc.dg/torture/stackalign/nested-4.c
  c7f7b5a10505f059ca3939572a291f3c  gcc/testsuite/gcc.dg/torture/stackalign/nested-5.c
  ed0527675792cf2a3fe0c22a4b66e841  gcc/testsuite/gcc.dg/torture/stackalign/nested-6.c
  3c95f79f4f5b4f4aba744fdd56db598b  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-1.c
*************** ed0527675792cf2a3fe0c22a4b66e841  gcc/te
*** 51196,51217 ****
  d8def3a90c88f11f17cf108a3595841d  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-3.c
  673197b6dcd0fb8d747c2b0c3885895f  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-4.c
  0bab00f28d0d71131c51fa96ad2c7d96  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c
! 110db4b222d075a8bd23f2d4eb1676b0  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-1.c
! 1f99db61514ea4384f47eff9842542a4  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-2.c
! 2572b72252dd8a2f343142eeda1de151  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-3.c
  2b07c1788098ee29d9f00b761f804c8e  gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
  ead1af7f5e7e02c3b0f28a7968beef77  gcc/testsuite/gcc.dg/torture/stackalign/regparm-1.c
! b8e864b5d3216ae51ced5983548de3bf  gcc/testsuite/gcc.dg/torture/stackalign/ret-struct-1.c
  eeb7cdfccbec69227ac2915527d61fa3  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-1.c
  04eb1401af1a7b33596d2ce529175a90  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-2.c
  0c1806b37db5e92a3ab1c3c51fb22d93  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-3.c
  ffc8d6d378e80da23cc2300fd9f2d529  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-4.c
  2a60ec21d6968b6101b16fa5b7c6ddb5  gcc/testsuite/gcc.dg/torture/stackalign/sibcall-1.c
! 45d30dbbaf1c2fa73a426e4a219cdd0c  gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp
! 1adc6e1acc06069cf12168f39ef7f916  gcc/testsuite/gcc.dg/torture/stackalign/struct-1.c
  30d5a92d8a2ed3890586ed1c2d6602c9  gcc/testsuite/gcc.dg/torture/stackalign/thiscall-1.c
! d5967747961c3c0e43380a4aee91e5dd  gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c
! 43fcb5d2985d6b4e94c4aebf0392dbd4  gcc/testsuite/gcc.dg/torture/stackalign/vararg-2.c
  3de9668ba2bd89837c3f7c15e1e3d7e2  gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
  9ff09cb739592baf30552acd2b24f79f  gcc/testsuite/gcc.dg/torture/tls/pr104777.c
  ed0fa1d073845fed5b0352c474ef8b77  gcc/testsuite/gcc.dg/torture/tls/run-gd.c
--- 54218,54239 ----
  d8def3a90c88f11f17cf108a3595841d  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-3.c
  673197b6dcd0fb8d747c2b0c3885895f  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-4.c
  0bab00f28d0d71131c51fa96ad2c7d96  gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c
! 32f3a5c560067d6e2d01d7c004e133e3  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-1.c
! 3ebddd9714e1530c9027453d202e8486  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-2.c
! e34ec60b1fcb0cca46521597ed7494a6  gcc/testsuite/gcc.dg/torture/stackalign/pr16660-3.c
  2b07c1788098ee29d9f00b761f804c8e  gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
  ead1af7f5e7e02c3b0f28a7968beef77  gcc/testsuite/gcc.dg/torture/stackalign/regparm-1.c
! c875e10dcfa7c393aeec18906d140c6c  gcc/testsuite/gcc.dg/torture/stackalign/ret-struct-1.c
  eeb7cdfccbec69227ac2915527d61fa3  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-1.c
  04eb1401af1a7b33596d2ce529175a90  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-2.c
  0c1806b37db5e92a3ab1c3c51fb22d93  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-3.c
  ffc8d6d378e80da23cc2300fd9f2d529  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-4.c
  2a60ec21d6968b6101b16fa5b7c6ddb5  gcc/testsuite/gcc.dg/torture/stackalign/sibcall-1.c
! 904203492fdcc686ec680b1c3f6cdd08  gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp
! 4886513cc50cb6833239d491c9f40ab7  gcc/testsuite/gcc.dg/torture/stackalign/struct-1.c
  30d5a92d8a2ed3890586ed1c2d6602c9  gcc/testsuite/gcc.dg/torture/stackalign/thiscall-1.c
! 202d6aa3877d101c9e0478fb19fe0cfe  gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c
! 9745a2d681b3702fc4241443699f25d0  gcc/testsuite/gcc.dg/torture/stackalign/vararg-2.c
  3de9668ba2bd89837c3f7c15e1e3d7e2  gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
  9ff09cb739592baf30552acd2b24f79f  gcc/testsuite/gcc.dg/torture/tls/pr104777.c
  ed0fa1d073845fed5b0352c474ef8b77  gcc/testsuite/gcc.dg/torture/tls/run-gd.c
*************** a7dd8959cd95d178e51f986a468a0a72  gcc/te
*** 51222,51228 ****
  0cca0b22c665af78b56436b3e71b756f  gcc/testsuite/gcc.dg/torture/tls/thr-init-2.c
  32042e365dfe5925f2393ec1d5c692d1  gcc/testsuite/gcc.dg/torture/tls/tls-reload-1.c
  a759d083aeeb716f90190112ebdae9ca  gcc/testsuite/gcc.dg/torture/tls/tls-test.c
! 563159d66f8678187ed69450244304f8  gcc/testsuite/gcc.dg/torture/tls/tls.exp
  943be2937b2b327811185a47734cf258  gcc/testsuite/gcc.dg/torture/transpose-1.c
  1449d9d29dea8de5fba10079ff2581ac  gcc/testsuite/gcc.dg/torture/transpose-2.c
  5061844ac50db8a5cc4a6626c641b34c  gcc/testsuite/gcc.dg/torture/transpose-3.c
--- 54244,54250 ----
  0cca0b22c665af78b56436b3e71b756f  gcc/testsuite/gcc.dg/torture/tls/thr-init-2.c
  32042e365dfe5925f2393ec1d5c692d1  gcc/testsuite/gcc.dg/torture/tls/tls-reload-1.c
  a759d083aeeb716f90190112ebdae9ca  gcc/testsuite/gcc.dg/torture/tls/tls-test.c
! 4a91e4b4e5d6dffb7f2c1a38c01daa3e  gcc/testsuite/gcc.dg/torture/tls/tls.exp
  943be2937b2b327811185a47734cf258  gcc/testsuite/gcc.dg/torture/transpose-1.c
  1449d9d29dea8de5fba10079ff2581ac  gcc/testsuite/gcc.dg/torture/transpose-2.c
  5061844ac50db8a5cc4a6626c641b34c  gcc/testsuite/gcc.dg/torture/transpose-3.c
*************** a759d083aeeb716f90190112ebdae9ca  gcc/te
*** 51230,51241 ****
  eca35d969f18af03adc6c88e80e27fac  gcc/testsuite/gcc.dg/torture/transpose-5.c
  d2e1860fa8199fa9cae01ffe45caa0c0  gcc/testsuite/gcc.dg/torture/transpose-6.c
  d870c565ecc3624fb4fbcb1510c36484  gcc/testsuite/gcc.dg/torture/tree-loop-1.c
! 6970cdcc7bdfd578411b169b161f82cf  gcc/testsuite/gcc.dg/torture/type-generic-1.c
  bd588e9316f28797985023db337c730b  gcc/testsuite/gcc.dg/torture/va-arg-25.c
  5c82e599e9517c158609d3871bb6ab3f  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
! deba47b8439d01c869eba7f288c1e8d7  gcc/testsuite/gcc.dg/torture/vector-1.c
! 976d72752026efa82ba29f7e5ec18661  gcc/testsuite/gcc.dg/torture/vector-2.c
  1068f619a2d020c28178195b20b8ecd8  gcc/testsuite/gcc.dg/torture/vector-shift2.c
  75017c795469c36baae4da697adba9fc  gcc/testsuite/gcc.dg/torture/vector-shuffle1.c
  8e9cc7d7e6527b03b2cbb96f2f145759  gcc/testsuite/gcc.dg/torture/vshuf-16.inc
--- 54252,54263 ----
  eca35d969f18af03adc6c88e80e27fac  gcc/testsuite/gcc.dg/torture/transpose-5.c
  d2e1860fa8199fa9cae01ffe45caa0c0  gcc/testsuite/gcc.dg/torture/transpose-6.c
  d870c565ecc3624fb4fbcb1510c36484  gcc/testsuite/gcc.dg/torture/tree-loop-1.c
! 95f12088e6a4e2a5036a44816c58215b  gcc/testsuite/gcc.dg/torture/type-generic-1.c
  bd588e9316f28797985023db337c730b  gcc/testsuite/gcc.dg/torture/va-arg-25.c
  5c82e599e9517c158609d3871bb6ab3f  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
! b8ce84a799f856b87c466889006803da  gcc/testsuite/gcc.dg/torture/vector-1.c
! 8f292f1e4488a6043de93ca455705faf  gcc/testsuite/gcc.dg/torture/vector-2.c
  1068f619a2d020c28178195b20b8ecd8  gcc/testsuite/gcc.dg/torture/vector-shift2.c
  75017c795469c36baae4da697adba9fc  gcc/testsuite/gcc.dg/torture/vector-shuffle1.c
  8e9cc7d7e6527b03b2cbb96f2f145759  gcc/testsuite/gcc.dg/torture/vshuf-16.inc
*************** e9fd20c6a5ee817fc329cc085c9032eb  gcc/te
*** 51280,51289 ****
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
  fea6679f47a5ff36663a877937522419  gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
  124079e3848ee10f2ebc98be4d07e9f5  gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
! 9a43319c4f03c869fc3c7320fbc78bff  gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
! b45a4f5b69be7e2454186267f7bdab9b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1.c
  cf7f678829144365c7c6e3436f2fe6c9  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1a.c
! 824dc338da472bd5c86792a2871d8b3d  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-2.c
  2d9fca58be8b44c8cab8cd14edebfcd8  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1.c
  8a7ed79d9687fd79c9c1f831e7e7995b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c
  26029d99148f25b6e5936d8536719f05  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1.c
--- 54302,54311 ----
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
  fea6679f47a5ff36663a877937522419  gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
  124079e3848ee10f2ebc98be4d07e9f5  gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
! e9f1e3170e9c1bd390f79587f24c6349  gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
! ca82d028c2d679e49ce13fc641dae664  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1.c
  cf7f678829144365c7c6e3436f2fe6c9  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1a.c
! 627aa7aafcded5254fa88c1f34f58718  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-2.c
  2d9fca58be8b44c8cab8cd14edebfcd8  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1.c
  8a7ed79d9687fd79c9c1f831e7e7995b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c
  26029d99148f25b6e5936d8536719f05  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1.c
*************** e7aeca94f621518a6e6709ceaeb4e162  gcc/te
*** 51331,51337 ****
  c39e8c24d0e23352b3b105c836684589  gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c
  14e4356e423f10d65d9dd47e54d12f79  gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c
  00abf1ef402b6663d2eca17cddf11f1b  gcc/testsuite/gcc.dg/tree-prof/tracer-1.c
! 0c55e2a16b95b86e6a47b0f2d9eb7bda  gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
  ca2556aa492874cfc1c2ddedf34c44ad  gcc/testsuite/gcc.dg/tree-prof/unroll-1.c
  5a3539327f82d8c4b059afc5f9785f18  gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c
  2c485d6763546bfa5c14ee8da0cfe215  gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
--- 54353,54359 ----
  c39e8c24d0e23352b3b105c836684589  gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c
  14e4356e423f10d65d9dd47e54d12f79  gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c
  00abf1ef402b6663d2eca17cddf11f1b  gcc/testsuite/gcc.dg/tree-prof/tracer-1.c
! 220f6e728499ae3fe269bc79e325884c  gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
  ca2556aa492874cfc1c2ddedf34c44ad  gcc/testsuite/gcc.dg/tree-prof/unroll-1.c
  5a3539327f82d8c4b059afc5f9785f18  gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c
  2c485d6763546bfa5c14ee8da0cfe215  gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
*************** d4bd7cdc56a7f6df1ca2ea46658dbe95  gcc/te
*** 51352,51391 ****
  49c564e3c4563af6a0396550b9b345d6  gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c
  244fa4f706b7757b44314caf775f8b87  gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c
  034aa3e9f499287e434da6e7296a83d9  gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c
! 0997dcda7bd26b106617081c55e613b4  gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c
! fe13f07aeb50e762fe2e3b9dc16bf29c  gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c
  05a0937d3a487e4c333cbaad069898b3  gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c
! 923e3c4fe0fc20690f37c94e158192dc  gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
! cee26498e263409634bde8de4e2122e5  gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c
! a02a02f44d9d7fe4b73ae24eefc06032  gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c
! 663c7f59f9b3ef33f9d79cd2bc268497  gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
! 6932f05c8afb68b772e7d185450e970c  gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c
! a81c785245009788956c9428ad294309  gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c
! ff31d58e4b279286097b52dbf32dd11e  gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
! 4e8f66aeb9941caaa9816aa81d20bede  gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
! 1cc58bfa3a257c9dfdd91c8a954d58d5  gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c
  6e7b8170b8407ba4d19c6acc6407d2c2  gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c
  e03f7ed40dc1bb98915d7e6c9308daeb  gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c
  e21444099429cfeee5210a1a9fa1c16b  gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c
  f963121b6ef1ccc5fe3ccd6ea30c6908  gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c
  cd158211c7eee61449b1fe2128ca5cd4  gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c
  ee7103702edbd0376683881e72b191fb  gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c
! b1e0f211ea8f1d72ef1d69979bb20eac  gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c
! e3cb52c10a36521239648f05590d9655  gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c
! 3860f3bca1198f879b5b12ca0a5db1d3  gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c
! 6d035de373185efe7480d07b6da7eeaf  gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c
  53c6c41f910d99e7e99aad9dba5e218c  gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c
! a07f27b9ea1908c0da3c7fec81abe378  gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c
! 8de27e1a4e478d74dfa560f31222790c  gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c
  6cec9e96cabe7cca5abfaa95f6c49859  gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c
  07e2af53a9fb560e269dc73e314bc30a  gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c
  ca9672781a58faa1d67e69959fbd0133  gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c
  c8c7614c5b35138401427d50f1448ff4  gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c
  a4bf3fed0349916d9cdd5dbb0be96539  gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c
  fc63d7799744c2981df0646d56f18c5b  gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c
! 4fe28161436ce2e5e95e77526b10c696  gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c
! 1cca55eb5a3d2cc37e8196d384f2aa53  gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c
! f61385d6eb4e714b642b44e69c1cc136  gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c
  bb1529f5c2adbfd331ec4bb955641f30  gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c
  399a0430955757f381fbc66c22c82776  gcc/testsuite/gcc.dg/tree-ssa/20030820-1.c
  160d1849e6729d0b06e620ea143db1a8  gcc/testsuite/gcc.dg/tree-ssa/20030820-2.c
--- 54374,54413 ----
  49c564e3c4563af6a0396550b9b345d6  gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c
  244fa4f706b7757b44314caf775f8b87  gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c
  034aa3e9f499287e434da6e7296a83d9  gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c
! 37c0dfe3e7d222fccbb75213422828ab  gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c
! 1e2c09e634642fd451e418c79790f421  gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c
  05a0937d3a487e4c333cbaad069898b3  gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c
! d31ad70bfc8235ce558d9b39802564f2  gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
! 93087ac0d910d293b637cf74a4a2b224  gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c
! f7a8f7e4a08e75da7f6f7a2bfe2e4ed0  gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c
! 0ab9a4766e3bc780ff3e0625c20f44b9  gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
! 8830cb1b7a830fcc3295a366e8f2ba8e  gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c
! 3597da21280192db51467fc03a0b5b40  gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c
! 9a91376ce1eac25ac0ccda70ab261e49  gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
! ec5528178c505141f483bc9203fecbc8  gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
! fc3f8dcc85eba5dc9b080a0fa1499b47  gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c
  6e7b8170b8407ba4d19c6acc6407d2c2  gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c
  e03f7ed40dc1bb98915d7e6c9308daeb  gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c
  e21444099429cfeee5210a1a9fa1c16b  gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c
  f963121b6ef1ccc5fe3ccd6ea30c6908  gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c
  cd158211c7eee61449b1fe2128ca5cd4  gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c
  ee7103702edbd0376683881e72b191fb  gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c
! 1ae0701b19808abb56bacacc5a639663  gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c
! 56fd8560056d89b7a3a31abf07db641a  gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c
! a74e1f70a49bfe43f0f5155bb1a3b171  gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c
! 9d0cf0eb6819b3d8dace0ec25313106e  gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c
  53c6c41f910d99e7e99aad9dba5e218c  gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c
! bc5bee96e9ad9a9ce7ea9203a4af2e0b  gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c
! d6aea06dd9b235c6c238924835656e2f  gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c
  6cec9e96cabe7cca5abfaa95f6c49859  gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c
  07e2af53a9fb560e269dc73e314bc30a  gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c
  ca9672781a58faa1d67e69959fbd0133  gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c
  c8c7614c5b35138401427d50f1448ff4  gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c
  a4bf3fed0349916d9cdd5dbb0be96539  gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c
  fc63d7799744c2981df0646d56f18c5b  gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c
! 393a4be9299c613825a0287f15e625f6  gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c
! 7c0145b327d3d78d64af00d63d01862d  gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c
! fff85b8a72d922514f39ab7cdc2d6079  gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c
  bb1529f5c2adbfd331ec4bb955641f30  gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c
  399a0430955757f381fbc66c22c82776  gcc/testsuite/gcc.dg/tree-ssa/20030820-1.c
  160d1849e6729d0b06e620ea143db1a8  gcc/testsuite/gcc.dg/tree-ssa/20030820-2.c
*************** d3e4952123ac0028935a5d65da05cd67  gcc/te
*** 51398,51404 ****
  15e1ee94fdf7802efff58f28dc570455  gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c
  203fd1ba83d5ce86c1b3dfe4ef985bba  gcc/testsuite/gcc.dg/tree-ssa/20030917-2.c
  76b2f54c2dca788b2570ef92d5f36ab2  gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c
! ad3d44926acf90e0683b2abbd536b57c  gcc/testsuite/gcc.dg/tree-ssa/20030918-1.c
  b711d5b48e3978f92fa0b2c439cf6c14  gcc/testsuite/gcc.dg/tree-ssa/20030920-1.c
  682e4c06cdf49851d0ab3b87936b6383  gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c
  588d774250d253c628864952ed06ad6e  gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c
--- 54420,54426 ----
  15e1ee94fdf7802efff58f28dc570455  gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c
  203fd1ba83d5ce86c1b3dfe4ef985bba  gcc/testsuite/gcc.dg/tree-ssa/20030917-2.c
  76b2f54c2dca788b2570ef92d5f36ab2  gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c
! a8e7fbb655c1d21354364851eb4ad410  gcc/testsuite/gcc.dg/tree-ssa/20030918-1.c
  b711d5b48e3978f92fa0b2c439cf6c14  gcc/testsuite/gcc.dg/tree-ssa/20030920-1.c
  682e4c06cdf49851d0ab3b87936b6383  gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c
  588d774250d253c628864952ed06ad6e  gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c
*************** ee677b0671adcf68df64e7a039ebc0ec  gcc/te
*** 51432,51438 ****
  23ed7087c021e9085be759208fc4cfdf  gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c
  7ef7935ed338dad0435e242566f65c28  gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c
  137268c425ec14050c45a5c9b6325fae  gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c
! 663b7eab56cb69bdc5ea477fb5b70992  gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c
  8f7a441f0da36096a4348ed245e00f61  gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
  99ad0222fdf59af68bca65771116f59d  gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c
  5d1a63a4d1562697febab094a20f0586  gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c
--- 54454,54460 ----
  23ed7087c021e9085be759208fc4cfdf  gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c
  7ef7935ed338dad0435e242566f65c28  gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c
  137268c425ec14050c45a5c9b6325fae  gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c
! 5036920c7aed410dd9116bfadbe2d642  gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c
  8f7a441f0da36096a4348ed245e00f61  gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
  99ad0222fdf59af68bca65771116f59d  gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c
  5d1a63a4d1562697febab094a20f0586  gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c
*************** b52d277dcf119d179901b94b86af9e19  gcc/te
*** 51453,51464 ****
  63ecc3e8b3d498acd8198b1c05fcbd40  gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c
  ce5aafb4955372c5794fefbc1ca41606  gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
  8f6bb820017566fb77d96e38f6e66a75  gcc/testsuite/gcc.dg/tree-ssa/20070815.c
! 81b01930660a620bdd4690b08300af36  gcc/testsuite/gcc.dg/tree-ssa/20080530.c
  13d008dba74840c2e2c06c6866504815  gcc/testsuite/gcc.dg/tree-ssa/71206.c
  4ec1df50bbb7aaccfc074fac7917886d  gcc/testsuite/gcc.dg/tree-ssa/abs-1.c
  b0b5e612a2c704e5987ba249f764ac8f  gcc/testsuite/gcc.dg/tree-ssa/abs-2.c
  19a62d3eff900f9178b8148a3c2dcfde  gcc/testsuite/gcc.dg/tree-ssa/abs-3.c
  e2373ab81a661f181b5a3de4fd940689  gcc/testsuite/gcc.dg/tree-ssa/abs-4.c
  1ffb35a31eceb4a5cd948b003ff98d4a  gcc/testsuite/gcc.dg/tree-ssa/addadd-2.c
  9b7a0308ab7d67febabc87a64b5fe6b9  gcc/testsuite/gcc.dg/tree-ssa/addadd.c
  b07a61efdfbca5d72c8f45ebb4cbb834  gcc/testsuite/gcc.dg/tree-ssa/alias-10.c
--- 54475,54487 ----
  63ecc3e8b3d498acd8198b1c05fcbd40  gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c
  ce5aafb4955372c5794fefbc1ca41606  gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
  8f6bb820017566fb77d96e38f6e66a75  gcc/testsuite/gcc.dg/tree-ssa/20070815.c
! 0e87f65729b4124a8e4034361d52f126  gcc/testsuite/gcc.dg/tree-ssa/20080530.c
  13d008dba74840c2e2c06c6866504815  gcc/testsuite/gcc.dg/tree-ssa/71206.c
  4ec1df50bbb7aaccfc074fac7917886d  gcc/testsuite/gcc.dg/tree-ssa/abs-1.c
  b0b5e612a2c704e5987ba249f764ac8f  gcc/testsuite/gcc.dg/tree-ssa/abs-2.c
  19a62d3eff900f9178b8148a3c2dcfde  gcc/testsuite/gcc.dg/tree-ssa/abs-3.c
  e2373ab81a661f181b5a3de4fd940689  gcc/testsuite/gcc.dg/tree-ssa/abs-4.c
+ e592268b4e08387e7085ac7d55f533a8  gcc/testsuite/gcc.dg/tree-ssa/absfloat16.c
  1ffb35a31eceb4a5cd948b003ff98d4a  gcc/testsuite/gcc.dg/tree-ssa/addadd-2.c
  9b7a0308ab7d67febabc87a64b5fe6b9  gcc/testsuite/gcc.dg/tree-ssa/addadd.c
  b07a61efdfbca5d72c8f45ebb4cbb834  gcc/testsuite/gcc.dg/tree-ssa/alias-10.c
*************** ff86f8cafc02bd4b7b7ee673b34d9968  gcc/te
*** 51489,51495 ****
  1159d6f3301745741e7f425bfb844e22  gcc/testsuite/gcc.dg/tree-ssa/alias-34.c
  6d738e049e5789516e25d93b3d79491f  gcc/testsuite/gcc.dg/tree-ssa/alias-35.c
  4cbbf097ac11df64152a21b612c1d85b  gcc/testsuite/gcc.dg/tree-ssa/alias-36.c
! a8659a728b0750f37bdd102a0167afbb  gcc/testsuite/gcc.dg/tree-ssa/alias-37.c
  39ccb1f379d9b721ccfb8777fdff95db  gcc/testsuite/gcc.dg/tree-ssa/alias-4.c
  4f82ca0683dffb3ce8d7ddf3d22b9589  gcc/testsuite/gcc.dg/tree-ssa/alias-5.c
  739932a09c1c58a148480ac9ae109483  gcc/testsuite/gcc.dg/tree-ssa/alias-6.c
--- 54512,54520 ----
  1159d6f3301745741e7f425bfb844e22  gcc/testsuite/gcc.dg/tree-ssa/alias-34.c
  6d738e049e5789516e25d93b3d79491f  gcc/testsuite/gcc.dg/tree-ssa/alias-35.c
  4cbbf097ac11df64152a21b612c1d85b  gcc/testsuite/gcc.dg/tree-ssa/alias-36.c
! 27216c8f7fdadf6ec2bbdf1a197fb2cf  gcc/testsuite/gcc.dg/tree-ssa/alias-37.c
! d990076ed7da87fd93e4e99cc1838e25  gcc/testsuite/gcc.dg/tree-ssa/alias-38.c
! 87b9b018ed84339a6ddb234531ba9a95  gcc/testsuite/gcc.dg/tree-ssa/alias-39.c
  39ccb1f379d9b721ccfb8777fdff95db  gcc/testsuite/gcc.dg/tree-ssa/alias-4.c
  4f82ca0683dffb3ce8d7ddf3d22b9589  gcc/testsuite/gcc.dg/tree-ssa/alias-5.c
  739932a09c1c58a148480ac9ae109483  gcc/testsuite/gcc.dg/tree-ssa/alias-6.c
*************** b99a791d3dbef7a8c3f50eb93840c713  gcc/te
*** 51551,51562 ****
--- 54576,54591 ----
  6343433b3e0aa0ffd3490751d53b3204  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c
  3feff9909245c9b7bf6685c76478af5c  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c
  7ad8d748f571e7a17cc0495c3da36812  gcc/testsuite/gcc.dg/tree-ssa/bitops-1.c
+ 16d974eee68f3b79ff8c91eec7df7f8d  gcc/testsuite/gcc.dg/tree-ssa/bitops-10.c
+ c8f2154e257bc0cdeff432c63c4a887f  gcc/testsuite/gcc.dg/tree-ssa/bitops-11.c
  2bb75de536bbde529169d19b1c3100a4  gcc/testsuite/gcc.dg/tree-ssa/bitops-2.c
  2023414b5a08c97c5d350acaab9d9158  gcc/testsuite/gcc.dg/tree-ssa/bitops-3.c
  0b073c6f533f1ad0778489cddb884b85  gcc/testsuite/gcc.dg/tree-ssa/bitops-4.c
  ac55f467c357136e42a5f139451f2d9a  gcc/testsuite/gcc.dg/tree-ssa/bitops-5.c
  1615c7e4783e811738b3cbc9c451cb00  gcc/testsuite/gcc.dg/tree-ssa/bitops-6.c
  7b7bf7ca4bbd1bd9d81b840f2add10b8  gcc/testsuite/gcc.dg/tree-ssa/bitops-7.c
+ 49c3cfb18e35e15a80bd538809581b15  gcc/testsuite/gcc.dg/tree-ssa/bitops-8.c
+ da5ff9df15298a5ee0b869d945c493cb  gcc/testsuite/gcc.dg/tree-ssa/bitops-9.c
  7c2509eae27b04f658a8374468a5dde9  gcc/testsuite/gcc.dg/tree-ssa/bitops-bool-1.c
  bc51e4802e1c8004fa81811aa33d2f94  gcc/testsuite/gcc.dg/tree-ssa/bittest.c
  44bd2d4a00e9c35b630f563007d3d516  gcc/testsuite/gcc.dg/tree-ssa/bitwise-sink.c
*************** cc227fc1cc6d10a58e03dcd84a92a069  gcc/te
*** 51602,51612 ****
  453ddd0b6ab8e98f8a9d1ff1479b996a  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-12.c
  6060e388100ca6981d4a257a9ebb8cfb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-13.c
  7772c5047d21eb7a33742124a6299efb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-2.c
! e44bb4ad4c3e2d34436a971260bd2bf8  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-3.c
! f72d1952df8e119a58ac250b8bad77eb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c
  6532dcbaaeb981e1d82e2330626d0c4c  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c
! 67aba80ced13ba091730f17675058a79  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-6.c
! 944bfd282d419b986c4026bf57b89005  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-7.c
  274ba17c7d39724796c6e90a4c8c4146  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-8.c
  2fa3d38def9a401cdac9cc1bb9530216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-9.c
  954f09e6ec4b6f7a7039177862222216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-1.c
--- 54631,54641 ----
  453ddd0b6ab8e98f8a9d1ff1479b996a  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-12.c
  6060e388100ca6981d4a257a9ebb8cfb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-13.c
  7772c5047d21eb7a33742124a6299efb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-2.c
! fb581cbb1a97da0d019c6ad88fed0100  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-3.c
! e30d9e7b350da3c432d50eb2bbf0f723  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c
  6532dcbaaeb981e1d82e2330626d0c4c  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c
! 8c8465567272ef2b731ee1b1d19301ee  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-6.c
! db3d5fdd1225f6e983fa5c7757b0b264  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-7.c
  274ba17c7d39724796c6e90a4c8c4146  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-8.c
  2fa3d38def9a401cdac9cc1bb9530216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-9.c
  954f09e6ec4b6f7a7039177862222216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-1.c
*************** d557e6758a1428d1d4877d13ca658288  gcc/te
*** 51615,51621 ****
  e67a31aa2e0193c2835ef0f1f4184420  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-4.c
  a3dc3772de28d6654b24548d0ad18473  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-5.c
  8ff10ac945d7169e6fdc523bc28d3534  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-6.c
! 901a6f4d42cccdc25240825ba1fa4346  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-10.c
  d1dbc661f00ed58c1743eecaaf46b55c  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-11.c
  7cd4d10132da2de70795da26ec44e6a2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c
  0fb1214ede6b7effc8fb25cb3004355e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-28.c
--- 54644,54650 ----
  e67a31aa2e0193c2835ef0f1f4184420  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-4.c
  a3dc3772de28d6654b24548d0ad18473  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-5.c
  8ff10ac945d7169e6fdc523bc28d3534  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-warn-6.c
! 3c52c12befb31f323f1d66f5b9e1b4d8  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-10.c
  d1dbc661f00ed58c1743eecaaf46b55c  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-11.c
  7cd4d10132da2de70795da26ec44e6a2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c
  0fb1214ede6b7effc8fb25cb3004355e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-28.c
*************** d1dbc661f00ed58c1743eecaaf46b55c  gcc/te
*** 51624,51632 ****
  df45688bd80db8170c6145ac667856b2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
  761414c30f0c96c9ad06d84337daeb0d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
  fc343ac4dddc2387803c4581508bd355  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c
! 25a22ef7e096aa5c4a5ec323a10eb1ee  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-7.c
! 3f1747c36bfe6b3fd2235e695edcaa02  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-8.c
! 1d89c967b03259c101cc6401b07d1648  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-9.c
  5489a7071de3715549debe15cc684b48  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c
  d0e4c342e2ad48131871ec279be2f9c3  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c
  75bb54d18f7c1eeb0e52d94f6f0e0a2d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-11.c
--- 54653,54661 ----
  df45688bd80db8170c6145ac667856b2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
  761414c30f0c96c9ad06d84337daeb0d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
  fc343ac4dddc2387803c4581508bd355  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c
! a3f8e709722765f0aff817bad670f7be  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-7.c
! 1dcd364491e46808183ccb347799df68  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-8.c
! b1d16b9a748a735eb5f37cfd2deffee7  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-9.c
  5489a7071de3715549debe15cc684b48  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c
  d0e4c342e2ad48131871ec279be2f9c3  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c
  75bb54d18f7c1eeb0e52d94f6f0e0a2d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-11.c
*************** e19c538f8e7a0c10da0db728b9418c4a  gcc/te
*** 51641,51655 ****
  1d56c485be27dd70832489d589e9cb8f  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-2.c
  d508ee9b0fcccb2985b9c7ecfbc9db19  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-20.c
  599e3a4a1f5a9b0f3fba72a0604d0f1e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-21.c
! bb3ad62473fb1b352f0d8d043f94e5df  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-22.c
  9757fbb89c27bbe40ecd488391a28592  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-23.c
  6109206cde3c1702a9d3f8da1898b8f2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c
! 1da7d23b74877b067eb9bfca2f50004e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
  fe8f765f332dbaff704a41e1bd8dc369  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-26.c
  60bd096820e4be4653b071daf1729ca2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-27.c
  285c4ebc9741797ed308010c90d408e2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-28.c
  6e2214ff517ebd174cfc45bbebd9c7b7  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-29.c
! 91d7952394a03943a4561d7881d03e2d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
  b3be1085d438fe322d879ca9939a97cc  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-4.c
  1021b0c3252fc7ef97a7fe99cfcc5ac6  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c
  c28ce339deffeb750f2c7f2cb8c8aa31  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-6.c
--- 54670,54684 ----
  1d56c485be27dd70832489d589e9cb8f  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-2.c
  d508ee9b0fcccb2985b9c7ecfbc9db19  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-20.c
  599e3a4a1f5a9b0f3fba72a0604d0f1e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-21.c
! c40c01969db5734215121464dc5dec25  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-22.c
  9757fbb89c27bbe40ecd488391a28592  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-23.c
  6109206cde3c1702a9d3f8da1898b8f2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c
! 65778db8f5c18f0b852b70b4fe8c1da7  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
  fe8f765f332dbaff704a41e1bd8dc369  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-26.c
  60bd096820e4be4653b071daf1729ca2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-27.c
  285c4ebc9741797ed308010c90d408e2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-28.c
  6e2214ff517ebd174cfc45bbebd9c7b7  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-29.c
! 0f9c2b3bf72d734bea350518e13880ce  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
  b3be1085d438fe322d879ca9939a97cc  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-4.c
  1021b0c3252fc7ef97a7fe99cfcc5ac6  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c
  c28ce339deffeb750f2c7f2cb8c8aa31  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-6.c
*************** aeea5f7137fe38c1de403df2897890fe  gcc/te
*** 51666,51671 ****
--- 54695,54706 ----
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
  0c86ac3fc8f774c1c3dca0726a33e6d8  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
  7dee8398848f696ea4d8ac959ee7a60a  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple.c
+ dfe5942340e510b262df5ca7fb095c85  gcc/testsuite/gcc.dg/tree-ssa/cabs-1.c
+ 39ce06ea94446ef2bb03c95e03f0e73e  gcc/testsuite/gcc.dg/tree-ssa/cabs-2.c
+ 6cbc3622fedfc48da8201694d90ae851  gcc/testsuite/gcc.dg/tree-ssa/cabs-3.c
+ c6fde7f848ca518e02ad03f5144ebf9b  gcc/testsuite/gcc.dg/tree-ssa/cabs-4.c
+ 59198687026b71e20daa9c05ddabba8b  gcc/testsuite/gcc.dg/tree-ssa/cabs-5.c
+ 0b38e6e3bc7c89e80c807ee91cabeb3c  gcc/testsuite/gcc.dg/tree-ssa/cabs-6.c
  e63ccfba7faa0464680f2aaeb88d32e9  gcc/testsuite/gcc.dg/tree-ssa/calloc-1.c
  60199bed80e510c230537c5f4d852a5b  gcc/testsuite/gcc.dg/tree-ssa/calloc-2.c
  b5bac817fa7c7a456a8e73848dfde207  gcc/testsuite/gcc.dg/tree-ssa/calloc-3.c
*************** b5bac817fa7c7a456a8e73848dfde207  gcc/te
*** 51673,51678 ****
--- 54708,54714 ----
  a4f18eca886b653efaca825607a6bfd3  gcc/testsuite/gcc.dg/tree-ssa/calloc-5.c
  bde2787a0a4de64c489ecf0193a51626  gcc/testsuite/gcc.dg/tree-ssa/cast-1.c
  32f4f6cf84e77191a9714a0865c8cf34  gcc/testsuite/gcc.dg/tree-ssa/cast-2.c
+ 54bcb44066a151328dc47685e4c00040  gcc/testsuite/gcc.dg/tree-ssa/cast-3.c
  6fcdc3ce00d06104607909b512da9a61  gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c
  f6a70e33add5647e63690464de0faee8  gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
  9176bae4f1b18779e3c42d9b3fd14c45  gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
*************** cb3424dc91a8b1d10dfaf36552885dcb  gcc/te
*** 51701,51706 ****
--- 54737,54743 ----
  8bb38c44a7b410ff214c889359a9d0f3  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-3.c
  b7538fbc5842296bc995c43dd00f62f3  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-4.c
  7bcfbcf6970138a6cea5c134ddedbb35  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-5.c
+ a3166d0e7f4bb1fe6540c9835c495fe1  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-6.c
  17cc430b53e3e2e80905a2c06ee4bc48  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv.c
  9e6b10b925bffb8b219e9fba3c7553dd  gcc/testsuite/gcc.dg/tree-ssa/cmpmul-1.c
  51579a62157a967c42037da78bf20e87  gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c
*************** d046933f0c0499aabaad4a49f7df472e  gcc/te
*** 51714,51719 ****
--- 54751,54757 ----
  85f3a18fc48237bf2cd66a31832c5292  gcc/testsuite/gcc.dg/tree-ssa/complex-5.c
  c51305b57b6a71a526e50a8fb191e467  gcc/testsuite/gcc.dg/tree-ssa/complex-6.c
  51573fc56543beb840d17e34cd36104b  gcc/testsuite/gcc.dg/tree-ssa/complex-7.c
+ 852a7c6875cd61d131815cc994463586  gcc/testsuite/gcc.dg/tree-ssa/complex-8.c
  bb2f1b58a2e661687f29e9f7ec18614c  gcc/testsuite/gcc.dg/tree-ssa/cond-1.c
  f337209daba5d33fb4d0b55313bfde9e  gcc/testsuite/gcc.dg/tree-ssa/cond-bool-1.c
  3710303b0c1ebb142a604fa3af23f1af  gcc/testsuite/gcc.dg/tree-ssa/cond-bool-2.c
*************** bc15b035f75616d49ae3217feb655970  gcc/te
*** 51747,51757 ****
  32eb8903d0c34fb7ebbfdf653428cab1  gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
  5e78a0f7c81199d9572e9eb72b2b9b6c  gcc/testsuite/gcc.dg/tree-ssa/cunroll-11.c
  de47e1dc744794c6364cf571cd32858d  gcc/testsuite/gcc.dg/tree-ssa/cunroll-12.c
! da097b3871db93c7b786396966159647  gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
! b1c253fe95960a7923e13899ba946ba6  gcc/testsuite/gcc.dg/tree-ssa/cunroll-14.c
  eed4b89d45eb045007bd380613040c2f  gcc/testsuite/gcc.dg/tree-ssa/cunroll-15.c
  812fc990ad836498b62225a2df74f4df  gcc/testsuite/gcc.dg/tree-ssa/cunroll-16.c
! d109cdac0850a2501dddd3084029062b  gcc/testsuite/gcc.dg/tree-ssa/cunroll-2.c
  3830867226119f3e45719fe4b6cc6781  gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c
  61c6f1980e2718be48b32a9a81b98953  gcc/testsuite/gcc.dg/tree-ssa/cunroll-4.c
  647afc55a08f1ca45c92ce44d92bc258  gcc/testsuite/gcc.dg/tree-ssa/cunroll-5.c
--- 54785,54796 ----
  32eb8903d0c34fb7ebbfdf653428cab1  gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
  5e78a0f7c81199d9572e9eb72b2b9b6c  gcc/testsuite/gcc.dg/tree-ssa/cunroll-11.c
  de47e1dc744794c6364cf571cd32858d  gcc/testsuite/gcc.dg/tree-ssa/cunroll-12.c
! df9e00c2cd529fcb5bdf3a8aeab486b0  gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
! e9d60ca748926c512c57ee7669c45ec2  gcc/testsuite/gcc.dg/tree-ssa/cunroll-14.c
  eed4b89d45eb045007bd380613040c2f  gcc/testsuite/gcc.dg/tree-ssa/cunroll-15.c
  812fc990ad836498b62225a2df74f4df  gcc/testsuite/gcc.dg/tree-ssa/cunroll-16.c
! 758e6f8cd7bd9d1c7f7e4c652a9bfc16  gcc/testsuite/gcc.dg/tree-ssa/cunroll-17.c
! 09f41112b7c5c0eb591595184e7c0a27  gcc/testsuite/gcc.dg/tree-ssa/cunroll-2.c
  3830867226119f3e45719fe4b6cc6781  gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c
  61c6f1980e2718be48b32a9a81b98953  gcc/testsuite/gcc.dg/tree-ssa/cunroll-4.c
  647afc55a08f1ca45c92ce44d92bc258  gcc/testsuite/gcc.dg/tree-ssa/cunroll-5.c
*************** d1e7893bac97fbc28f3fa03eb0accdbd  gcc/te
*** 51773,51778 ****
--- 54812,54820 ----
  f4597d2c70ad59ab81400cddd726d275  gcc/testsuite/gcc.dg/tree-ssa/dump-4.c
  3ff94f9450f7842e2e2ae65a53df11c8  gcc/testsuite/gcc.dg/tree-ssa/dump-5.c
  b41ca1665ed6388e916086ad17eef717  gcc/testsuite/gcc.dg/tree-ssa/dump-6.c
+ 14f8c9ee1550f81c49bcd359d40f94ea  gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-1.c
+ e0bf68868b5721f5f9ac53ed5c6362ba  gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-2.c
+ 30b3faaf1b9ef0ecb9be094e1450c7bb  gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-3.c
  b093f37312e163e366fad183f508f659  gcc/testsuite/gcc.dg/tree-ssa/evrp-ignore.c
  6dc99348cdd056f4be8776745f0eba7a  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans.c
  941457da855f0081ed2295b1a14dbcc4  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans2.c
*************** b77a4fe96fe03c3ef4300ba716a48d4e  gcc/te
*** 51792,51802 ****
--- 54834,54850 ----
  2947c3f3769526bc81dce6f4e7b7e869  gcc/testsuite/gcc.dg/tree-ssa/evrp7.c
  3c5306ea69eb69321af6dd6b5e7733da  gcc/testsuite/gcc.dg/tree-ssa/evrp8.c
  df98e1f10e9362d780ceaf678d234d36  gcc/testsuite/gcc.dg/tree-ssa/evrp9.c
+ 7f4522dc7baf6c9de46dbad4296ae055  gcc/testsuite/gcc.dg/tree-ssa/factor_op_phi-1.c
+ 3f5882cbab534644905ebbbd79ebda5a  gcc/testsuite/gcc.dg/tree-ssa/factor_op_phi-2.c
+ 55f3e8dbeed7eea712424e13a08b5569  gcc/testsuite/gcc.dg/tree-ssa/factor_op_phi-3.c
+ bb540c6d2c9c55e38a37822530c0afa2  gcc/testsuite/gcc.dg/tree-ssa/factor_op_phi-4.c
  33a3fcae747cee654667314a41d7dae6  gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c
  5aa642235531b56fe71d129b3128e653  gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c
  7013e9405bbea7d794f84d52c038fb91  gcc/testsuite/gcc.dg/tree-ssa/flatten-3.c
  228dfa7248ebf7ccfcdb0ecfb5d30bf6  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-1.c
  e5035d32dc605a277b663840398291b0  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-2.c
+ eb594c305f37e716ed58ed83ebdb28df  gcc/testsuite/gcc.dg/tree-ssa/fold-xor-and-or.c
+ 96793db1db9e22964fa7aedc04c2220f  gcc/testsuite/gcc.dg/tree-ssa/fold-xor-or.c
  55eb8b4695bc9df408b84073a57d4125  gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
  1ace6320b3c64ddcefd35277803fef7b  gcc/testsuite/gcc.dg/tree-ssa/foldcast-1.c
  e908bd658a722def6a98cac1b55ee435  gcc/testsuite/gcc.dg/tree-ssa/foldconst-1.c
*************** a030c124a5d2e18eed9aa8c3469482d0  gcc/te
*** 51833,51839 ****
  68a1d254ba25c51f90a7c44414e50e41  gcc/testsuite/gcc.dg/tree-ssa/forwprop-33.c
  cde9d104bd184f9fe53748afa894a131  gcc/testsuite/gcc.dg/tree-ssa/forwprop-34.c
  0aebf34ab5715659a126caa5d6950411  gcc/testsuite/gcc.dg/tree-ssa/forwprop-35.c
! db7fb90d90011b907bfb30cceb6f1c9e  gcc/testsuite/gcc.dg/tree-ssa/forwprop-36.c
  c4d85f1a0ac2c091e026cf0d052e2f21  gcc/testsuite/gcc.dg/tree-ssa/forwprop-37.c
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
--- 54881,54887 ----
  68a1d254ba25c51f90a7c44414e50e41  gcc/testsuite/gcc.dg/tree-ssa/forwprop-33.c
  cde9d104bd184f9fe53748afa894a131  gcc/testsuite/gcc.dg/tree-ssa/forwprop-34.c
  0aebf34ab5715659a126caa5d6950411  gcc/testsuite/gcc.dg/tree-ssa/forwprop-35.c
! 4d6b591c8eb61faf954522a80729bef6  gcc/testsuite/gcc.dg/tree-ssa/forwprop-36.c
  c4d85f1a0ac2c091e026cf0d052e2f21  gcc/testsuite/gcc.dg/tree-ssa/forwprop-37.c
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
*************** d56422e63543fcf4bf4b78d825c534da  gcc/te
*** 51845,51860 ****
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
  03b3892ce65f3264531de5b303cbe30e  gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c
  2f204af513925825367059c8c7904e98  gcc/testsuite/gcc.dg/tree-ssa/forwprop-9.c
  c5da678cf578c57faa40129378929cf4  gcc/testsuite/gcc.dg/tree-ssa/fre-vce-1.c
  a0fbf3c748cab32ce67837bafd594ee5  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c
  92c19b6c66be5177d45c3de598c5ce47  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
  c4778a5d167ea622bf99df287c4bd701  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
! cedf03bd0bae65b47e8d533ec043d85b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
! 8c08bb59d159cc1850160224edbb70fd  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
  90512bbeacddcca66fd3984243eb5137  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
! d637cf73f6c38b75ddfb9687a20f1ec6  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
! e04b32c6114139e6a8e522e17e1b449b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
  955e41ee303f67ec226ec41283fd05af  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-34.c
  88394f5bf5b05af6dcff8c92c3277984  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c
--- 54893,54912 ----
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
  03b3892ce65f3264531de5b303cbe30e  gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c
  2f204af513925825367059c8c7904e98  gcc/testsuite/gcc.dg/tree-ssa/forwprop-9.c
+ 1a399290801ad05dc03fd1b685141213  gcc/testsuite/gcc.dg/tree-ssa/fre-predicated-1.c
+ 11c41d332608b01e64a0170005f5502d  gcc/testsuite/gcc.dg/tree-ssa/fre-predicated-2.c
+ 22fb21dc412c00fa9c2527466d90b48a  gcc/testsuite/gcc.dg/tree-ssa/fre-predicated-3.c
+ 3406042a0a86a34dd5e33d06c88d968a  gcc/testsuite/gcc.dg/tree-ssa/fre-predicated-4.c
  c5da678cf578c57faa40129378929cf4  gcc/testsuite/gcc.dg/tree-ssa/fre-vce-1.c
  a0fbf3c748cab32ce67837bafd594ee5  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c
  92c19b6c66be5177d45c3de598c5ce47  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
  c4778a5d167ea622bf99df287c4bd701  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
! 981ec8a8f9969e2f4fb9ade9b962de95  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
! 5ae2c5d6d98bb28c830c4edfe000bf66  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
  90512bbeacddcca66fd3984243eb5137  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
! 8cb7818e3e640f1d01eb6c6cb43f1975  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
! 05e95b989cfdf6357a178aa625f98417  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
  955e41ee303f67ec226ec41283fd05af  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-34.c
  88394f5bf5b05af6dcff8c92c3277984  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c
*************** b287d43359cd5843f8b77d977b005de3  gcc/te
*** 51931,51951 ****
  a5306c72500f08e489070a529596c461  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c
  35314297772a4e2693af4de33fd15121  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1g.c
  c51531d45b38425bcfdb8eac54e3b2b7  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c
! 1555818d99d92f06682e947affda7cd6  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c
  5041ebf3f5faa2d0e57611af93a05a35  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_3.c
  464b02740233ca8c8bc9313e9f3535e5  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_4.c
! e26de2213471196c5e2fd7f1708093d7  gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c
  312238955a5c96ed7be45fe8b9c67da6  gcc/testsuite/gcc.dg/tree-ssa/ivopts-2.c
  ee80356a0b132c2c2ee55d93f4ec1655  gcc/testsuite/gcc.dg/tree-ssa/ivopts-3.c
  4ad9364b0c09a0471b394cf3347e334a  gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c
! 74fd38dbc0f1a5b28a045b104876b086  gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c
! d5fdafd765d67368ca2bff383b4409a4  gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c
! 261c0fbe740d32f8938b079cd2627c63  gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c
! 6118558b01eeb8c2ad16c389146b0e69  gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c
! f11293262238ec672bd29d9f3a6c686a  gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c
  9e9bec4c515075b6d8265930a3cd28c5  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lower_base.c
! 7f31f27cd658be41d1d6f25f702d25ff  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c
! bbd6052172bb24b229d3c59541fac980  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c
  2fa70c1f0fbe2b1a406c06262ff11c39  gcc/testsuite/gcc.dg/tree-ssa/ldist-1.c
  f5c7001f0585b059bf58fefe90aae5e9  gcc/testsuite/gcc.dg/tree-ssa/ldist-10.c
  ec73d985b059fedd7c228c94cd226be6  gcc/testsuite/gcc.dg/tree-ssa/ldist-11.c
--- 54983,55004 ----
  a5306c72500f08e489070a529596c461  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c
  35314297772a4e2693af4de33fd15121  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1g.c
  c51531d45b38425bcfdb8eac54e3b2b7  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c
! 6cda5f60d9961f627a63a6fcb773a408  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c
  5041ebf3f5faa2d0e57611af93a05a35  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_3.c
  464b02740233ca8c8bc9313e9f3535e5  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_4.c
! 785b5a2b9be97bbaa3482f317b59943c  gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c
  312238955a5c96ed7be45fe8b9c67da6  gcc/testsuite/gcc.dg/tree-ssa/ivopts-2.c
  ee80356a0b132c2c2ee55d93f4ec1655  gcc/testsuite/gcc.dg/tree-ssa/ivopts-3.c
  4ad9364b0c09a0471b394cf3347e334a  gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c
! 335b3e90bae4e261c5ab9472f27b0fe5  gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c
! b32b026becf23fab737eba130bd8f041  gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c
! 7dd390be6eaf36e5cd738187bf848ae7  gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c
! 7167312c09e651ef2ad96c92ae897a63  gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c
! 705ef71f4a9b549dffb921e2e0f4e246  gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c
  9e9bec4c515075b6d8265930a3cd28c5  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lower_base.c
! ae0437cd23de7badb64f543e434aed3b  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c
! dc9dd2f9061961ab523a7326efe6ddec  gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c
! 9035ee6eaf395399271331d384186fd5  gcc/testsuite/gcc.dg/tree-ssa/ldexp.c
  2fa70c1f0fbe2b1a406c06262ff11c39  gcc/testsuite/gcc.dg/tree-ssa/ldist-1.c
  f5c7001f0585b059bf58fefe90aae5e9  gcc/testsuite/gcc.dg/tree-ssa/ldist-10.c
  ec73d985b059fedd7c228c94cd226be6  gcc/testsuite/gcc.dg/tree-ssa/ldist-11.c
*************** ffd9d902fd127eef04e8bc7818f04da7  gcc/te
*** 51981,51986 ****
--- 55034,55040 ----
  ffb4adebfee1a469b5b970ceca2b62d1  gcc/testsuite/gcc.dg/tree-ssa/ldist-38.c
  a2002bfe18a372ac61959bfbd5ca72c9  gcc/testsuite/gcc.dg/tree-ssa/ldist-39.c
  7bdc0c7833fb91fb8d9e59f13d759a73  gcc/testsuite/gcc.dg/tree-ssa/ldist-4.c
+ 6c08e906de99229b694da64b11cb4a52  gcc/testsuite/gcc.dg/tree-ssa/ldist-40.c
  3661b05c66bd70675e28123e086b5032  gcc/testsuite/gcc.dg/tree-ssa/ldist-5.c
  1a4004933a12168c16067d1e775147e2  gcc/testsuite/gcc.dg/tree-ssa/ldist-6.c
  8a84d41353aa3195ea5221d196cf30c0  gcc/testsuite/gcc.dg/tree-ssa/ldist-7.c
*************** b1a8d5459c8ff46dafcc64a866e53283  gcc/te
*** 52017,52031 ****
  3f1a687bdc16bbd1671e4587f0705d6c  gcc/testsuite/gcc.dg/tree-ssa/loadpre4.c
  b4c05791c74c42b31b12f3a7c8cdb936  gcc/testsuite/gcc.dg/tree-ssa/loadpre5.c
  56caef9bb60fcfbb7ea4f1f13486b0f5  gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
! 229e6199de2a23fb4a62d8a43f6d9581  gcc/testsuite/gcc.dg/tree-ssa/loadpre7.c
  bfddd90a833039e0cdb4656f4c8f81a1  gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c
  e202cf21911171e72b195a3e8e0283ca  gcc/testsuite/gcc.dg/tree-ssa/local-pure-const.c
! eb13c50d7c15e2cd2a64f65ea36d1de0  gcc/testsuite/gcc.dg/tree-ssa/loop-1.c
  d5c0a0cafa8f17e9848f07635e0627a4  gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
  7b136dc13a3af93299281a6cc8908cb9  gcc/testsuite/gcc.dg/tree-ssa/loop-11.c
  14f9f2d5bc49080ad8ddf44cdfa1744b  gcc/testsuite/gcc.dg/tree-ssa/loop-14.c
  3f1dfc6195a7d07fe73f7ecc94050da4  gcc/testsuite/gcc.dg/tree-ssa/loop-15.c
! 3250c3b50d6fea66e54c1de499097eca  gcc/testsuite/gcc.dg/tree-ssa/loop-16.c
  d561e3f8533493429429c1f643fd5abf  gcc/testsuite/gcc.dg/tree-ssa/loop-17.c
  002fb6027981898caaf402554d30e337  gcc/testsuite/gcc.dg/tree-ssa/loop-18.c
  7566ed1a31059cf09fe67b48e65db4aa  gcc/testsuite/gcc.dg/tree-ssa/loop-19.c
--- 55071,55087 ----
  3f1a687bdc16bbd1671e4587f0705d6c  gcc/testsuite/gcc.dg/tree-ssa/loadpre4.c
  b4c05791c74c42b31b12f3a7c8cdb936  gcc/testsuite/gcc.dg/tree-ssa/loadpre5.c
  56caef9bb60fcfbb7ea4f1f13486b0f5  gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
! 0cb01697bbf7cd39ef78cb381927f171  gcc/testsuite/gcc.dg/tree-ssa/loadpre7.c
  bfddd90a833039e0cdb4656f4c8f81a1  gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c
  e202cf21911171e72b195a3e8e0283ca  gcc/testsuite/gcc.dg/tree-ssa/local-pure-const.c
! 340c2058146022e09de1bde5ca123c2b  gcc/testsuite/gcc.dg/tree-ssa/log_exp.c
! 6252934461c491785724c885b20e8430  gcc/testsuite/gcc.dg/tree-ssa/log_ident.c
! adc02f2c3aa6daeb6b2b4075d6ad9544  gcc/testsuite/gcc.dg/tree-ssa/loop-1.c
  d5c0a0cafa8f17e9848f07635e0627a4  gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
  7b136dc13a3af93299281a6cc8908cb9  gcc/testsuite/gcc.dg/tree-ssa/loop-11.c
  14f9f2d5bc49080ad8ddf44cdfa1744b  gcc/testsuite/gcc.dg/tree-ssa/loop-14.c
  3f1dfc6195a7d07fe73f7ecc94050da4  gcc/testsuite/gcc.dg/tree-ssa/loop-15.c
! 50b7533c6365ca61f4672cd9027c7fa9  gcc/testsuite/gcc.dg/tree-ssa/loop-16.c
  d561e3f8533493429429c1f643fd5abf  gcc/testsuite/gcc.dg/tree-ssa/loop-17.c
  002fb6027981898caaf402554d30e337  gcc/testsuite/gcc.dg/tree-ssa/loop-18.c
  7566ed1a31059cf09fe67b48e65db4aa  gcc/testsuite/gcc.dg/tree-ssa/loop-19.c
*************** cd8ab6ba77ad28986317c279250b0bce  gcc/te
*** 52037,52043 ****
  4872ba0b42219cebf0ecec85ea45dc4c  gcc/testsuite/gcc.dg/tree-ssa/loop-24.c
  4e8ca2c9f1fd8ad56af293b22a5a8b78  gcc/testsuite/gcc.dg/tree-ssa/loop-25.c
  e97c0bbfd5118aad5cb0208408f022e2  gcc/testsuite/gcc.dg/tree-ssa/loop-26.c
! d5ece4a88cdb032116f22a440568412a  gcc/testsuite/gcc.dg/tree-ssa/loop-28.c
  d72750e76b1b077b871db495a895d952  gcc/testsuite/gcc.dg/tree-ssa/loop-29.c
  2cf42c09e094ed2017af4aba5ba98be3  gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
  bc09676a1682ef3f3a35b47133a41a5a  gcc/testsuite/gcc.dg/tree-ssa/loop-30.c
--- 55093,55099 ----
  4872ba0b42219cebf0ecec85ea45dc4c  gcc/testsuite/gcc.dg/tree-ssa/loop-24.c
  4e8ca2c9f1fd8ad56af293b22a5a8b78  gcc/testsuite/gcc.dg/tree-ssa/loop-25.c
  e97c0bbfd5118aad5cb0208408f022e2  gcc/testsuite/gcc.dg/tree-ssa/loop-26.c
! e78fa47a595b9edd4518ef93c4c1401b  gcc/testsuite/gcc.dg/tree-ssa/loop-28.c
  d72750e76b1b077b871db495a895d952  gcc/testsuite/gcc.dg/tree-ssa/loop-29.c
  2cf42c09e094ed2017af4aba5ba98be3  gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
  bc09676a1682ef3f3a35b47133a41a5a  gcc/testsuite/gcc.dg/tree-ssa/loop-30.c
*************** f71fff56070660e50e71b957f17bb866  gcc/te
*** 52060,52070 ****
  fbe5838205bf556202a63b4267f7ac13  gcc/testsuite/gcc.dg/tree-ssa/loop-8.c
  ca60d15c705ab307b185849a6d684577  gcc/testsuite/gcc.dg/tree-ssa/loop-9.c
  4ca81ec924a857a81958753b59ff0c15  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-1.c
! ce89d25154d5909623400e7fbd68607a  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c
  654fa2004d9616f990b262bc998735e0  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-3.c
! 0f6ec9444d41b9dd8705e8ce33ea1257  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c
  ea5f8b5ade3a674d82e4721a61ae4348  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-5.c
! 60da9819e46ae737a79c3d2fa208f269  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c
  a26d97652f4894f734d4cba3c788c9ac  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-1.c
  a1bd7e076cb21f864ed0c87ce674899a  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-2.c
  830db83fad8d4c8f17ce6c8a575ef8e7  gcc/testsuite/gcc.dg/tree-ssa/loop-cond-split-1.c
--- 55116,55126 ----
  fbe5838205bf556202a63b4267f7ac13  gcc/testsuite/gcc.dg/tree-ssa/loop-8.c
  ca60d15c705ab307b185849a6d684577  gcc/testsuite/gcc.dg/tree-ssa/loop-9.c
  4ca81ec924a857a81958753b59ff0c15  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-1.c
! b3e52e963cb6fdbbdb736f3a32f0692a  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c
  654fa2004d9616f990b262bc998735e0  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-3.c
! 750aafbe6f22c9db15b26cb50f71ceb1  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c
  ea5f8b5ade3a674d82e4721a61ae4348  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-5.c
! b2bb949902267099b05f9ca24a83866c  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c
  a26d97652f4894f734d4cba3c788c9ac  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-1.c
  a1bd7e076cb21f864ed0c87ce674899a  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-2.c
  830db83fad8d4c8f17ce6c8a575ef8e7  gcc/testsuite/gcc.dg/tree-ssa/loop-cond-split-1.c
*************** a3070095b7db4fd6f5d39d243f2ea3d2  gcc/te
*** 52074,52080 ****
  b785e1a2b2d1f8899bb42aef2aebb7a8  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-12.c
  68ea1e33b73e2699fe3e0888ae6721b1  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c
  fe84a4129539ca0baa6a9d7402d4d376  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c
! b1188ae63556e140acddb61c169ee3c5  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c
  a396077c5b09482a1d6295ef3886fbb2  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c
  b12d1ab254d179b32ea5f184c4240c23  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c
  195d9617ba34c560d8e9caab1c13ad0e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c
--- 55130,55136 ----
  b785e1a2b2d1f8899bb42aef2aebb7a8  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-12.c
  68ea1e33b73e2699fe3e0888ae6721b1  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c
  fe84a4129539ca0baa6a9d7402d4d376  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c
! b5245d7d12ff4991c428732b7cfc967b  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c
  a396077c5b09482a1d6295ef3886fbb2  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c
  b12d1ab254d179b32ea5f184c4240c23  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c
  195d9617ba34c560d8e9caab1c13ad0e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c
*************** f2fb3151add498ea76d57eb5397270d9  gcc/te
*** 52088,52093 ****
--- 55144,55151 ----
  0b0f06ef0d088201a656eef58febfabf  gcc/testsuite/gcc.dg/tree-ssa/loop-niter-1.c
  3585c145cba008fa15dffe90270f4cc5  gcc/testsuite/gcc.dg/tree-ssa/loop-niter-2.c
  a83f3f323f8f4ab72419c34630657fda  gcc/testsuite/gcc.dg/tree-ssa/loopclosedphi.c
+ f11323cf409551d134864434f043878e  gcc/testsuite/gcc.dg/tree-ssa/max_eqne-1.c
+ 1ec5297885ed15753a6dc4db4543306f  gcc/testsuite/gcc.dg/tree-ssa/max_eqne-2.c
  03f2e136e4fd829b170e29613889a81e  gcc/testsuite/gcc.dg/tree-ssa/minmax-1.c
  5f9fd3ebbf7146f303e891283c25eaf1  gcc/testsuite/gcc.dg/tree-ssa/minmax-10.c
  47c87cd5f5643eb9522343b37cbf9afd  gcc/testsuite/gcc.dg/tree-ssa/minmax-11.c
*************** cbfe845bffd1d19054fe82fa5a8f02c8  gcc/te
*** 52107,52114 ****
  13b33d2da61d9c554089fe5cfa2034c2  gcc/testsuite/gcc.dg/tree-ssa/minmax-24.c
  42075be765385e6239fd60be49720c23  gcc/testsuite/gcc.dg/tree-ssa/minmax-25.c
  02ce417920a0feee673f17298fba6c7e  gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c
! 99fd130546ede52bae431d4f1c21fc5a  gcc/testsuite/gcc.dg/tree-ssa/minmax-27.c
! 8dcc30df5adfcfd8829d5ff46acc9657  gcc/testsuite/gcc.dg/tree-ssa/minmax-28.c
  ebd64598eb4ae669eb0b23c8f04d5a46  gcc/testsuite/gcc.dg/tree-ssa/minmax-3.c
  7c34c6b9eac11cf5e9264d6575d41224  gcc/testsuite/gcc.dg/tree-ssa/minmax-4.c
  639bc9b57e1078143511dae7efca80b0  gcc/testsuite/gcc.dg/tree-ssa/minmax-5.c
--- 55165,55176 ----
  13b33d2da61d9c554089fe5cfa2034c2  gcc/testsuite/gcc.dg/tree-ssa/minmax-24.c
  42075be765385e6239fd60be49720c23  gcc/testsuite/gcc.dg/tree-ssa/minmax-25.c
  02ce417920a0feee673f17298fba6c7e  gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c
! f480a2708c95998eb6cf02dfc017dd3a  gcc/testsuite/gcc.dg/tree-ssa/minmax-27.c
! 7e67dad26bf0439cad4e40d41a6f91cc  gcc/testsuite/gcc.dg/tree-ssa/minmax-27e.c
! b68223b518f77b2ecd5ae8c4d1b359d1  gcc/testsuite/gcc.dg/tree-ssa/minmax-27f.c
! 9ec74ef4541fdec26e0bc5b9bef689ee  gcc/testsuite/gcc.dg/tree-ssa/minmax-28.c
! 9b3184c7c9c06ecb5cf9ab3feddda34b  gcc/testsuite/gcc.dg/tree-ssa/minmax-28e.c
! 5e777401203ee4999d0583493b6c4fc8  gcc/testsuite/gcc.dg/tree-ssa/minmax-28f.c
  ebd64598eb4ae669eb0b23c8f04d5a46  gcc/testsuite/gcc.dg/tree-ssa/minmax-3.c
  7c34c6b9eac11cf5e9264d6575d41224  gcc/testsuite/gcc.dg/tree-ssa/minmax-4.c
  639bc9b57e1078143511dae7efca80b0  gcc/testsuite/gcc.dg/tree-ssa/minmax-5.c
*************** fd326f4e5a35e41b78cb70f85b0fff1d  gcc/te
*** 52146,52151 ****
--- 55208,55221 ----
  86b3b545b7d95e5a9edad0a6ab56705b  gcc/testsuite/gcc.dg/tree-ssa/mulcmp-1.c
  9d609bd79769ece6157bc34fbbb0371f  gcc/testsuite/gcc.dg/tree-ssa/muldiv-1.c
  9a861088652f3a7c7b3117c9a108131a  gcc/testsuite/gcc.dg/tree-ssa/muldiv-2.c
+ 8fc272c1eb505e34e951e66cb054e9fd  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-1.c
+ 679849f897b1d1a3db4f2987ab4bc025  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-2.c
+ 3386631d240ad3751834d42b8c3cf69a  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-3.c
+ e1bf5796d1049e7c1d2baf7f4532c12f  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-4.c
+ ed877ef68c2d9623a1b175a2f97e31cb  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-5.c
+ 7067dc2e7c83d903a8d0fc1bbe30d645  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-6.c
+ de0442218beaea160d8107cc0928b0a0  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-7.c
+ 3ba44878287172adb50a908dc3534138  gcc/testsuite/gcc.dg/tree-ssa/mulexactdiv-8.c
  3f0b8ca2956c4eecb250bec846ea984b  gcc/testsuite/gcc.dg/tree-ssa/mult-abs-2.c
  de18b9aafeb5b7a70c2415d80406308c  gcc/testsuite/gcc.dg/tree-ssa/multcmp-1.c
  d247eecb7ac955c043ad5e586c7470e1  gcc/testsuite/gcc.dg/tree-ssa/multcmp-2.c
*************** efe2b6db134d37ba952a211f775f3454  gcc/te
*** 52163,52169 ****
  abe5621a92d7de21676f49603a144c76  gcc/testsuite/gcc.dg/tree-ssa/negneq-4.c
  fa56920695d7960f275efc9fdfa0cbea  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c
  e0419e6272f3f7d06ab87ebdcac6b06f  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1a.c
! 9408e54e117e3760c360e811a1decee4  gcc/testsuite/gcc.dg/tree-ssa/noreturn-1.c
  6ba638f6fba141cf2cfcb69f3310cec3  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-1.c
  92e3c8666216cd6c40ba9fcb1eaa2a54  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-2.c
  ce587f71a4758452bb7bdd847c66e619  gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
--- 55233,55239 ----
  abe5621a92d7de21676f49603a144c76  gcc/testsuite/gcc.dg/tree-ssa/negneq-4.c
  fa56920695d7960f275efc9fdfa0cbea  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c
  e0419e6272f3f7d06ab87ebdcac6b06f  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1a.c
! 9a6847068b62e883997a99e775f1f179  gcc/testsuite/gcc.dg/tree-ssa/noreturn-1.c
  6ba638f6fba141cf2cfcb69f3310cec3  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-1.c
  92e3c8666216cd6c40ba9fcb1eaa2a54  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-2.c
  ce587f71a4758452bb7bdd847c66e619  gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
*************** ce587f71a4758452bb7bdd847c66e619  gcc/te
*** 52171,52177 ****
  266c21d33851ad395bde2ea3f8603d58  gcc/testsuite/gcc.dg/tree-ssa/peel1.c
  ca3185e60127c7a83151ffd5cf76d1d2  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c
  1669094b5b199dda6f7632cac7062c80  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-10.c
! e40f317a34d22fbf09f2b1db491def14  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c
  011ea18f978c3701197e309155a7c66e  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-12.c
  2315edbc8be9e00abb8b2120e7385e60  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-13.c
  a04c669a3f306e10deecdc4abacd9740  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-14.c
--- 55241,55247 ----
  266c21d33851ad395bde2ea3f8603d58  gcc/testsuite/gcc.dg/tree-ssa/peel1.c
  ca3185e60127c7a83151ffd5cf76d1d2  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c
  1669094b5b199dda6f7632cac7062c80  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-10.c
! 6848aca75a86ca896cd500dab8f7461a  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c
  011ea18f978c3701197e309155a7c66e  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-12.c
  2315edbc8be9e00abb8b2120e7385e60  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-13.c
  a04c669a3f306e10deecdc4abacd9740  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-14.c
*************** e9ccf5561ec154e17b83f854b31ffdb3  gcc/te
*** 52206,52222 ****
  a66b4d75c24b7b87fa85665ce41632e4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-39.c
  abf36d925f7053c105cfd3f71d64a6a7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
  f833c6ecf2070a21485d7371d3d5c264  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-40.c
  56955a10efc69b18ceb9374a2c5c5b90  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
  033ff5a0b13956ee34bb2647a8515399  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-6.c
! 514de6e24d86533ce1f0d4152530aef0  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-7.c
  dec7e9a594d55bb6427abfb7ee0ae7b3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-8.c
  1e3a245190acf2fd12bb7c7a73b26fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-9.c
  eeadd0310b1767b684f335417f1cae65  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-1.c
  ebfd2de9c20bd860af0d147f7475ea60  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-2.c
  2ec45f2f644b279531e9d46c9e3fada3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1.c
  880ac30f61294f2a27258455fb36e8b4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1a.c
  9c819f9de58d3593f450abbac3752fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-2.c
  853bb73e539fb11952babaad04094941  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-4.c
  cef3bfd56530a07f8eb43ec1a8c7552d  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c
  44b84455e4e32ef45ab0091bcb29e029  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
--- 55276,55299 ----
  a66b4d75c24b7b87fa85665ce41632e4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-39.c
  abf36d925f7053c105cfd3f71d64a6a7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
  f833c6ecf2070a21485d7371d3d5c264  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-40.c
+ 60db39225686824831c17d6407f84bb6  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-41.c
+ 7664e29425f34ef07612177b81863392  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-42.c
+ 3c44a65c826682b3396bf01a82563554  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-43.c
+ 402ebdf60f0253784d996d6aa3f5a60d  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-44.c
+ 1455c05af6732b752a3dfd3fcfbf479d  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-45.c
  56955a10efc69b18ceb9374a2c5c5b90  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
  033ff5a0b13956ee34bb2647a8515399  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-6.c
! 804da31eb15fbfec665d7804d36ea041  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-7.c
  dec7e9a594d55bb6427abfb7ee0ae7b3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-8.c
  1e3a245190acf2fd12bb7c7a73b26fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-9.c
+ 2841bad756964e75dc4f32ad00c558d6  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-factor-1.c
  eeadd0310b1767b684f335417f1cae65  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-1.c
  ebfd2de9c20bd860af0d147f7475ea60  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-2.c
  2ec45f2f644b279531e9d46c9e3fada3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1.c
  880ac30f61294f2a27258455fb36e8b4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1a.c
  9c819f9de58d3593f450abbac3752fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-2.c
  853bb73e539fb11952babaad04094941  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-4.c
+ 85bea7e2c2c4fb71a4387da356267941  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-5.c
  cef3bfd56530a07f8eb43ec1a8c7552d  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c
  44b84455e4e32ef45ab0091bcb29e029  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
*************** f62ac8c6a6ff1517485b4579f8a00f33  gcc/te
*** 52234,52239 ****
--- 55311,55318 ----
  ecd327087ec5129f4762a83c6c58bb42  gcc/testsuite/gcc.dg/tree-ssa/popcount5ll.c
  4256e7f2af59a698439adecd1790d9ca  gcc/testsuite/gcc.dg/tree-ssa/popcount6.c
  b2197879c497a963508f367b026baebe  gcc/testsuite/gcc.dg/tree-ssa/popcount6b.c
+ f0d0f5ce7e02f1935c0890532a1e742e  gcc/testsuite/gcc.dg/tree-ssa/pow-to-ldexp.c
+ 716a24cb96a9a81fe87f8660900098d4  gcc/testsuite/gcc.dg/tree-ssa/pow_fold_1.c
  0341d659d040511e18c036b7dd477420  gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
  6804f4f388ad8b533f34eb3de20dac4d  gcc/testsuite/gcc.dg/tree-ssa/pr100794.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
*************** c3925f4a4c97c2d1ae9800c4011550d8  gcc/te
*** 52242,52247 ****
--- 55321,55328 ----
  cce90032144405ca7da9448ff0ff237f  gcc/testsuite/gcc.dg/tree-ssa/pr102232.c
  015eeaafe9c8e7b743c67fed8fc93670  gcc/testsuite/gcc.dg/tree-ssa/pr102546.c
  914bbe09bc94e772a17ba6a04e734349  gcc/testsuite/gcc.dg/tree-ssa/pr102563.c
+ c712f0d46a07e2bcebd2d44e2db4d929  gcc/testsuite/gcc.dg/tree-ssa/pr102705-1.c
+ 4024edc4ed6c55e2e45c414b1490a757  gcc/testsuite/gcc.dg/tree-ssa/pr102705-2.c
  07cbfe319374507b0bd58c75bf83d9e2  gcc/testsuite/gcc.dg/tree-ssa/pr102736.c
  335850968e8422bffc030a8ed0663409  gcc/testsuite/gcc.dg/tree-ssa/pr102880.c
  dfb016d569355b28ba6779d09c046dc0  gcc/testsuite/gcc.dg/tree-ssa/pr102906.c
*************** fa56633d7111e0bde475691ce592224c  gcc/te
*** 52255,52260 ****
--- 55336,55346 ----
  f1e7a055411335174b0cb7ac7ee70469  gcc/testsuite/gcc.dg/tree-ssa/pr103281-1.c
  c5e6a09c698a49751c6bada9dd9ec317  gcc/testsuite/gcc.dg/tree-ssa/pr103345.c
  ba5fbae8412c94dcffa215cb6cff04c0  gcc/testsuite/gcc.dg/tree-ssa/pr103514.c
+ 9f78b5f21cced55bbe61928cd6a85071  gcc/testsuite/gcc.dg/tree-ssa/pr103660-0.c
+ f25bcf309f888eb2b37455c9a1950f9f  gcc/testsuite/gcc.dg/tree-ssa/pr103660-1.c
+ 882136250680538093d9cf6963782f17  gcc/testsuite/gcc.dg/tree-ssa/pr103660-2.c
+ c460080b83fd5aeffb4d0f9b49e55385  gcc/testsuite/gcc.dg/tree-ssa/pr103660-3.c
+ 90ae4274f2d9842d0f316526c0677a84  gcc/testsuite/gcc.dg/tree-ssa/pr103660-4.c
  56e10a813fe3529f5a1ee81e2a9948ea  gcc/testsuite/gcc.dg/tree-ssa/pr103680.c
  b51ff14aa94b335bd58bf2c9ba403788  gcc/testsuite/gcc.dg/tree-ssa/pr103771.c
  b09ca12340e534366a044672763446bf  gcc/testsuite/gcc.dg/tree-ssa/pr104639-1.c
*************** c502141393b8f053f7454ee254898a9a  gcc/te
*** 52262,52268 ****
  83ed534d9becd608f3b5229e52d305d0  gcc/testsuite/gcc.dg/tree-ssa/pr104645.c
  e47699ee9cf13d5804649766bc0537e9  gcc/testsuite/gcc.dg/tree-ssa/pr105777.c
  83adb5ec06e1ce57942d0ce47cc7588f  gcc/testsuite/gcc.dg/tree-ssa/pr105832-1.c
! 13f8f687d8dcd1ad27f352632abf424b  gcc/testsuite/gcc.dg/tree-ssa/pr105832-2.c
  8488487a8f3715f1d2592bde49e39159  gcc/testsuite/gcc.dg/tree-ssa/pr105832-3.c
  9178c8107e7a1061f72d817706754a85  gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
  51aefebe5a7150d43227f1c8527c0fbb  gcc/testsuite/gcc.dg/tree-ssa/pr105983.c
--- 55348,55354 ----
  83ed534d9becd608f3b5229e52d305d0  gcc/testsuite/gcc.dg/tree-ssa/pr104645.c
  e47699ee9cf13d5804649766bc0537e9  gcc/testsuite/gcc.dg/tree-ssa/pr105777.c
  83adb5ec06e1ce57942d0ce47cc7588f  gcc/testsuite/gcc.dg/tree-ssa/pr105832-1.c
! 9ee75ce1a477745d72b7cb7ee7da1e1d  gcc/testsuite/gcc.dg/tree-ssa/pr105832-2.c
  8488487a8f3715f1d2592bde49e39159  gcc/testsuite/gcc.dg/tree-ssa/pr105832-3.c
  9178c8107e7a1061f72d817706754a85  gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
  51aefebe5a7150d43227f1c8527c0fbb  gcc/testsuite/gcc.dg/tree-ssa/pr105983.c
*************** c783e038e48be744df1050cd1e482b85  gcc/te
*** 52293,52308 ****
  e7f331e191d07635b3ac2b406e62617c  gcc/testsuite/gcc.dg/tree-ssa/pr107767.c
  ba0f756770b2c8c27b5698876e3038d6  gcc/testsuite/gcc.dg/tree-ssa/pr108137.c
  6e9a4a3a8a16375f78591054eb13656b  gcc/testsuite/gcc.dg/tree-ssa/pr108354-1.c
! 17457a9f12304e22150f0ed2c4732252  gcc/testsuite/gcc.dg/tree-ssa/pr108357.c
  486e83eb732ae374266e81bf0ad91d4c  gcc/testsuite/gcc.dg/tree-ssa/pr108684-1.c
  336fbe90910f8510ce18879884624b1f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-1.c
  b95e043a8efd5687ccde935f82229c3f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-2.c
  bcc1e80ace8dfce442cc953aeebe8f09  gcc/testsuite/gcc.dg/tree-ssa/pr109639.c
  0484f73625f0f6fcb5ba8f13c9fe7ce2  gcc/testsuite/gcc.dg/tree-ssa/pr109643.c
  224ab867e798b5cf13d97d39d2a1eb10  gcc/testsuite/gcc.dg/tree-ssa/pr109711-1.c
  40a15ee5d38d19b2ca6d98814456dcfc  gcc/testsuite/gcc.dg/tree-ssa/pr109711-2.c
  b0a5d0cb26e6cc9477b05eaf27f231fe  gcc/testsuite/gcc.dg/tree-ssa/pr109834-1.c
  c894a43d6d18577fb0be67375fb6fe32  gcc/testsuite/gcc.dg/tree-ssa/pr109849.c
  3adb7e9f8a25b141deab6a826dbf4d2a  gcc/testsuite/gcc.dg/tree-ssa/pr109934.c
  59a24d80466c265cf89ff1a407f6bc52  gcc/testsuite/gcc.dg/tree-ssa/pr109938.c
  867364fc143bc4b929132a4541e2c148  gcc/testsuite/gcc.dg/tree-ssa/pr109986.c
--- 55379,55397 ----
  e7f331e191d07635b3ac2b406e62617c  gcc/testsuite/gcc.dg/tree-ssa/pr107767.c
  ba0f756770b2c8c27b5698876e3038d6  gcc/testsuite/gcc.dg/tree-ssa/pr108137.c
  6e9a4a3a8a16375f78591054eb13656b  gcc/testsuite/gcc.dg/tree-ssa/pr108354-1.c
! c5a0107e4cd77a1915eefaff82e823a7  gcc/testsuite/gcc.dg/tree-ssa/pr108357.c
  486e83eb732ae374266e81bf0ad91d4c  gcc/testsuite/gcc.dg/tree-ssa/pr108684-1.c
  336fbe90910f8510ce18879884624b1f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-1.c
  b95e043a8efd5687ccde935f82229c3f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-2.c
+ 62cc0df277acbbd211f8655e86adbd68  gcc/testsuite/gcc.dg/tree-ssa/pr109401-1.c
+ 5b6555b8243a70055eefd1bfdfe112a9  gcc/testsuite/gcc.dg/tree-ssa/pr109401.c
  bcc1e80ace8dfce442cc953aeebe8f09  gcc/testsuite/gcc.dg/tree-ssa/pr109639.c
  0484f73625f0f6fcb5ba8f13c9fe7ce2  gcc/testsuite/gcc.dg/tree-ssa/pr109643.c
  224ab867e798b5cf13d97d39d2a1eb10  gcc/testsuite/gcc.dg/tree-ssa/pr109711-1.c
  40a15ee5d38d19b2ca6d98814456dcfc  gcc/testsuite/gcc.dg/tree-ssa/pr109711-2.c
  b0a5d0cb26e6cc9477b05eaf27f231fe  gcc/testsuite/gcc.dg/tree-ssa/pr109834-1.c
  c894a43d6d18577fb0be67375fb6fe32  gcc/testsuite/gcc.dg/tree-ssa/pr109849.c
+ 2af8db6a363d4ce13f1e4cfc881eccb5  gcc/testsuite/gcc.dg/tree-ssa/pr109906.c
  3adb7e9f8a25b141deab6a826dbf4d2a  gcc/testsuite/gcc.dg/tree-ssa/pr109934.c
  59a24d80466c265cf89ff1a407f6bc52  gcc/testsuite/gcc.dg/tree-ssa/pr109938.c
  867364fc143bc4b929132a4541e2c148  gcc/testsuite/gcc.dg/tree-ssa/pr109986.c
*************** d995b9152fb033c1efa90b7c0930e6f9  gcc/te
*** 52318,52327 ****
  ce036f14fca174d66f05f8e0619e160f  gcc/testsuite/gcc.dg/tree-ssa/pr110637-3.c
  972f1ff8349023459362c48f1ddff426  gcc/testsuite/gcc.dg/tree-ssa/pr110753.c
  04fd298aa9bd6b97a889de59aa8af394  gcc/testsuite/gcc.dg/tree-ssa/pr110923.c
! 7394e3e71f10f70f8a9941c68e3b2fb6  gcc/testsuite/gcc.dg/tree-ssa/pr111003.c
  b9c5a68b2233aa836355012fa917a7b5  gcc/testsuite/gcc.dg/tree-ssa/pr111294.c
  eed236f4c0a3dab3cadb4c5cbce403da  gcc/testsuite/gcc.dg/tree-ssa/pr111324.c
! dec0cf7cbaa0a37eeaed7924b7fbc166  gcc/testsuite/gcc.dg/tree-ssa/pr111456-1.c
  61d72ed2564524f68aa2ca633cd0ff9b  gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
  44119a9898cb07aa07b7491d0a643353  gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
  30191e7f04d08f0b42092e36965a3c63  gcc/testsuite/gcc.dg/tree-ssa/pr111967.c
--- 55407,55418 ----
  ce036f14fca174d66f05f8e0619e160f  gcc/testsuite/gcc.dg/tree-ssa/pr110637-3.c
  972f1ff8349023459362c48f1ddff426  gcc/testsuite/gcc.dg/tree-ssa/pr110753.c
  04fd298aa9bd6b97a889de59aa8af394  gcc/testsuite/gcc.dg/tree-ssa/pr110923.c
! d5180ea60b2d8b5f25bfa5a4c0dc247a  gcc/testsuite/gcc.dg/tree-ssa/pr111003.c
! 9867ac011ab80a4d47fae1c84e82017b  gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c
! 6c360e4c7d3378333636b2800b27479f  gcc/testsuite/gcc.dg/tree-ssa/pr111150.c
  b9c5a68b2233aa836355012fa917a7b5  gcc/testsuite/gcc.dg/tree-ssa/pr111294.c
  eed236f4c0a3dab3cadb4c5cbce403da  gcc/testsuite/gcc.dg/tree-ssa/pr111324.c
! 5f22f8e6393e49c617bb6bceda92af85  gcc/testsuite/gcc.dg/tree-ssa/pr111456-1.c
  61d72ed2564524f68aa2ca633cd0ff9b  gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
  44119a9898cb07aa07b7491d0a643353  gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
  30191e7f04d08f0b42092e36965a3c63  gcc/testsuite/gcc.dg/tree-ssa/pr111967.c
*************** beccfabbbe0e25820c8a0bf1789cad24  gcc/te
*** 52332,52340 ****
--- 55423,55457 ----
  085da52899c892d40e925268a4927d02  gcc/testsuite/gcc.dg/tree-ssa/pr112994-1.c
  35e78696025683486887846091caaf97  gcc/testsuite/gcc.dg/tree-ssa/pr112994-2.c
  452950579226b1aabcc75fe9aabac790  gcc/testsuite/gcc.dg/tree-ssa/pr113024.c
+ b098058bf56a706b588ea3466b2d21f0  gcc/testsuite/gcc.dg/tree-ssa/pr113596.c
  02a5ab6dda99f9a8349410f9b29f8d78  gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
  02b4814f72330fad1ca31d29097c0f1e  gcc/testsuite/gcc.dg/tree-ssa/pr113993.c
  d044056d4248cb78637686f3d28272bb  gcc/testsuite/gcc.dg/tree-ssa/pr114009.c
+ 9c0683e4499be406ba003816f4bd0db5  gcc/testsuite/gcc.dg/tree-ssa/pr114760-1.c
+ 5d8a744b9f15d7ea3d51feac8d667c77  gcc/testsuite/gcc.dg/tree-ssa/pr114760-2.c
+ b5622b094a71be460d5e73c0b93c8d2d  gcc/testsuite/gcc.dg/tree-ssa/pr115128.c
+ 481a38fdf27aeb98642e5c71321ff2a9  gcc/testsuite/gcc.dg/tree-ssa/pr115191.c
+ 1282d5c99f3bf13e85e0612b19684a01  gcc/testsuite/gcc.dg/tree-ssa/pr116024-1-fwrapv.c
+ a9c51618b1f60e44bd4c3975a0a21ba0  gcc/testsuite/gcc.dg/tree-ssa/pr116024-1.c
+ df773ff69cb154ef20463b775d1793a8  gcc/testsuite/gcc.dg/tree-ssa/pr116024-2-fwrapv.c
+ c63db0d7b0286fa5d6126a140d4d11e4  gcc/testsuite/gcc.dg/tree-ssa/pr116024-2.c
+ 651bbc0b53857f5b9f3c5356e46975d6  gcc/testsuite/gcc.dg/tree-ssa/pr116024.c
+ 2d7373f628fe9cdb0e85e3b348618627  gcc/testsuite/gcc.dg/tree-ssa/pr116406.c
+ 5dd2285e0a64c83e08b6d68b6cd36eba  gcc/testsuite/gcc.dg/tree-ssa/pr117142.c
+ f0d353ee8a84646d78fc80b6dd84a990  gcc/testsuite/gcc.dg/tree-ssa/pr117420.c
+ ec2377e16f3af2ba261ea020faa3f718  gcc/testsuite/gcc.dg/tree-ssa/pr117692.c
+ e91a50025559d9a809c8a2fcfde46c2e  gcc/testsuite/gcc.dg/tree-ssa/pr117892.c
+ 3097c3d4bb30c35ef14a5afc79ceb420  gcc/testsuite/gcc.dg/tree-ssa/pr117927.c
+ 9cf6e14694f99ea2a43997566d8e274e  gcc/testsuite/gcc.dg/tree-ssa/pr117973-1.c
+ a5bb2e2effb49c640583e2c1fc01b347  gcc/testsuite/gcc.dg/tree-ssa/pr118149-2.c
+ fcc375285c0e2875c134cbbe20ee9b01  gcc/testsuite/gcc.dg/tree-ssa/pr118149.c
+ 53e0d16c15ff199c6402af888fa36de4  gcc/testsuite/gcc.dg/tree-ssa/pr118483-1.c
+ 3de2c75e8f080731e2e1174656a92a6e  gcc/testsuite/gcc.dg/tree-ssa/pr118483-2.c
+ ad2bfdd6a893fdb581e5cffc0c618d52  gcc/testsuite/gcc.dg/tree-ssa/pr118483-3.c
+ 5881598d02c0bacea716095423e1ed66  gcc/testsuite/gcc.dg/tree-ssa/pr118483-4.c
+ 308d8846eea85f9ac56f27fb495845ee  gcc/testsuite/gcc.dg/tree-ssa/pr118487.c
+ b8236d8ce423075243050d2ed9692781  gcc/testsuite/gcc.dg/tree-ssa/pr118517.c
+ 6d2d98158a34d9ab09e487779a321f3d  gcc/testsuite/gcc.dg/tree-ssa/pr118637.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
*************** b7c0f0ae0f78f7f701a691c6c65be4f0  gcc/te
*** 52376,52382 ****
  fa134b7b09128388df0cf5dfe1f05256  gcc/testsuite/gcc.dg/tree-ssa/pr19633.c
  47922da653618d93be8ccd37932a38a8  gcc/testsuite/gcc.dg/tree-ssa/pr19831-1.c
  6d3975080aaa40f9154dbb5318bd33cc  gcc/testsuite/gcc.dg/tree-ssa/pr19831-2.c
! 52afbaa0d6e84205964b0d8f7478906f  gcc/testsuite/gcc.dg/tree-ssa/pr19831-3.c
  e427d4621de1c0729af8d55b9bb48500  gcc/testsuite/gcc.dg/tree-ssa/pr20139.c
  e8abc7d5f3d4fef21d06eec48f3389e8  gcc/testsuite/gcc.dg/tree-ssa/pr20318.c
  1ec162aa74dccae78e824ec108c86c61  gcc/testsuite/gcc.dg/tree-ssa/pr20470.c
--- 55493,55499 ----
  fa134b7b09128388df0cf5dfe1f05256  gcc/testsuite/gcc.dg/tree-ssa/pr19633.c
  47922da653618d93be8ccd37932a38a8  gcc/testsuite/gcc.dg/tree-ssa/pr19831-1.c
  6d3975080aaa40f9154dbb5318bd33cc  gcc/testsuite/gcc.dg/tree-ssa/pr19831-2.c
! e2ce5ceb26ab03cc785e095dff16906e  gcc/testsuite/gcc.dg/tree-ssa/pr19831-3.c
  e427d4621de1c0729af8d55b9bb48500  gcc/testsuite/gcc.dg/tree-ssa/pr20139.c
  e8abc7d5f3d4fef21d06eec48f3389e8  gcc/testsuite/gcc.dg/tree-ssa/pr20318.c
  1ec162aa74dccae78e824ec108c86c61  gcc/testsuite/gcc.dg/tree-ssa/pr20470.c
*************** e3417501272a4cb85765f1121b62d8a2  gcc/te
*** 52434,52450 ****
  a6f655f4f2c501df04e063c61d2edb55  gcc/testsuite/gcc.dg/tree-ssa/pr23546.c
  660412619853e2009ec3ef845ba5ee8c  gcc/testsuite/gcc.dg/tree-ssa/pr23744.c
  c8df40c2eab2c5754c4ebae4e7206ace  gcc/testsuite/gcc.dg/tree-ssa/pr23777.c
! 2a51c69b66bee82b653f9d1ff2402531  gcc/testsuite/gcc.dg/tree-ssa/pr23848-1.c
! ec07b3c342a98fe6eea2420e1ad6f6e0  gcc/testsuite/gcc.dg/tree-ssa/pr23848-2.c
! 54a7365d603ec61343aaf80595ad20eb  gcc/testsuite/gcc.dg/tree-ssa/pr23848-3.c
! 41b852cde111c576b2c084ac550b244f  gcc/testsuite/gcc.dg/tree-ssa/pr23848-4.c
  c6e2763d6a5256625cdb63116d74ed78  gcc/testsuite/gcc.dg/tree-ssa/pr24117.c
  c32d3ce7f406e3efd98d3b1948c0c0f3  gcc/testsuite/gcc.dg/tree-ssa/pr24287.c
  20c6e0c9d9acedea6a3dd44615865ac7  gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
  ab49010858f8b691f088f8db3be45087  gcc/testsuite/gcc.dg/tree-ssa/pr24670.c
  00c9451e86308521204ac722bdef690e  gcc/testsuite/gcc.dg/tree-ssa/pr24689.c
  c0a1f2659814aea6c50094421a4edf06  gcc/testsuite/gcc.dg/tree-ssa/pr2480.c
! 942a30814110619b9b15a8c9c46ade9a  gcc/testsuite/gcc.dg/tree-ssa/pr24840.c
  782b0cce67a18c853602e0ee8ed2362a  gcc/testsuite/gcc.dg/tree-ssa/pr24990-1.c
  750e50a42c46cceaac818b609672fd5a  gcc/testsuite/gcc.dg/tree-ssa/pr25382.c
  82a01e3fe1365999bbddfa65057fe78d  gcc/testsuite/gcc.dg/tree-ssa/pr25485.c
--- 55551,55567 ----
  a6f655f4f2c501df04e063c61d2edb55  gcc/testsuite/gcc.dg/tree-ssa/pr23546.c
  660412619853e2009ec3ef845ba5ee8c  gcc/testsuite/gcc.dg/tree-ssa/pr23744.c
  c8df40c2eab2c5754c4ebae4e7206ace  gcc/testsuite/gcc.dg/tree-ssa/pr23777.c
! d422b0751419ff784918d93c8e480026  gcc/testsuite/gcc.dg/tree-ssa/pr23848-1.c
! a4d915cf7b017a128c1dd29acfb2fc38  gcc/testsuite/gcc.dg/tree-ssa/pr23848-2.c
! dc53c283c2f4e4041fee2ce503294cd2  gcc/testsuite/gcc.dg/tree-ssa/pr23848-3.c
! e67a6f0868eb429b655f1b872aea8a74  gcc/testsuite/gcc.dg/tree-ssa/pr23848-4.c
  c6e2763d6a5256625cdb63116d74ed78  gcc/testsuite/gcc.dg/tree-ssa/pr24117.c
  c32d3ce7f406e3efd98d3b1948c0c0f3  gcc/testsuite/gcc.dg/tree-ssa/pr24287.c
  20c6e0c9d9acedea6a3dd44615865ac7  gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
  ab49010858f8b691f088f8db3be45087  gcc/testsuite/gcc.dg/tree-ssa/pr24670.c
  00c9451e86308521204ac722bdef690e  gcc/testsuite/gcc.dg/tree-ssa/pr24689.c
  c0a1f2659814aea6c50094421a4edf06  gcc/testsuite/gcc.dg/tree-ssa/pr2480.c
! f7d5b6eec3ff0af8e917121293b9601f  gcc/testsuite/gcc.dg/tree-ssa/pr24840.c
  782b0cce67a18c853602e0ee8ed2362a  gcc/testsuite/gcc.dg/tree-ssa/pr24990-1.c
  750e50a42c46cceaac818b609672fd5a  gcc/testsuite/gcc.dg/tree-ssa/pr25382.c
  82a01e3fe1365999bbddfa65057fe78d  gcc/testsuite/gcc.dg/tree-ssa/pr25485.c
*************** b30f3a905d9cb1c07a3b7b7325d275a2  gcc/te
*** 52466,52472 ****
  300102f2c58251d43634d5abfd4fba78  gcc/testsuite/gcc.dg/tree-ssa/pr31521.c
  5a9052bdc105ad513c4664e8f70869e7  gcc/testsuite/gcc.dg/tree-ssa/pr31531-1.c
  246086e5e2ae0892b32fa54f0c2c8c8c  gcc/testsuite/gcc.dg/tree-ssa/pr31531-2.c
! f5de7ca48e45fa07564a59ee1e11e628  gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
  290eb7d19ada4aa4119656a556e431db  gcc/testsuite/gcc.dg/tree-ssa/pr32044.c
  b8e0a7f87b5acd987532af03c0e3293f  gcc/testsuite/gcc.dg/tree-ssa/pr32367.c
  5ca7db2d357217ef10ff73f63e9b3577  gcc/testsuite/gcc.dg/tree-ssa/pr32461-1.c
--- 55583,55589 ----
  300102f2c58251d43634d5abfd4fba78  gcc/testsuite/gcc.dg/tree-ssa/pr31521.c
  5a9052bdc105ad513c4664e8f70869e7  gcc/testsuite/gcc.dg/tree-ssa/pr31531-1.c
  246086e5e2ae0892b32fa54f0c2c8c8c  gcc/testsuite/gcc.dg/tree-ssa/pr31531-2.c
! e7b41d58be3e5f93f8bdef3990f74483  gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
  290eb7d19ada4aa4119656a556e431db  gcc/testsuite/gcc.dg/tree-ssa/pr32044.c
  b8e0a7f87b5acd987532af03c0e3293f  gcc/testsuite/gcc.dg/tree-ssa/pr32367.c
  5ca7db2d357217ef10ff73f63e9b3577  gcc/testsuite/gcc.dg/tree-ssa/pr32461-1.c
*************** eb3c860d5f9311432576d2c60ba8e833  gcc/te
*** 52542,52548 ****
  c63243a8574ce97ea22e7dde21b469c6  gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
! db0896d26b0b514a5ee7c242f2caf3fb  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
  a1b69b395bc1073391af5c497fbcaa6f  gcc/testsuite/gcc.dg/tree-ssa/pr57361.c
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
--- 55659,55665 ----
  c63243a8574ce97ea22e7dde21b469c6  gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
! 67a5b0f128b939266c30fba4ddbf8b7a  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
  a1b69b395bc1073391af5c497fbcaa6f  gcc/testsuite/gcc.dg/tree-ssa/pr57361.c
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
*************** e6986386d8ec85afd7b821cc2f311d1c  gcc/te
*** 52568,52581 ****
  7cb0ed762682bb1350e760c82051ad0c  gcc/testsuite/gcc.dg/tree-ssa/pr63586.c
  83f806144c4d28ee655a0a4ed7c67b69  gcc/testsuite/gcc.dg/tree-ssa/pr64130.c
  7f34c9c0ef0ca4e4b8f8e09ebbb76c98  gcc/testsuite/gcc.dg/tree-ssa/pr64183.c
! 5dc285c0d3c4c8e53576556df36ac611  gcc/testsuite/gcc.dg/tree-ssa/pr64705.c
  90f529734a2276aada8ec622a1073c62  gcc/testsuite/gcc.dg/tree-ssa/pr64801.c
  9eafc1ee5f7c68756f96254104c44110  gcc/testsuite/gcc.dg/tree-ssa/pr64910-2.c
  14d4888f6e747c3cd8522a955b553225  gcc/testsuite/gcc.dg/tree-ssa/pr65136.c
  e3a8c430fd6ca31515a7e1bbea95b6dd  gcc/testsuite/gcc.dg/tree-ssa/pr65447.c
  499a491da27a1a5055db7cdada8dc42b  gcc/testsuite/gcc.dg/tree-ssa/pr65855-2.c
  80ee06c1361a2efc5e45db8d97d08877  gcc/testsuite/gcc.dg/tree-ssa/pr66449.c
! 9746cb857a37622734dbbf059cadd7b4  gcc/testsuite/gcc.dg/tree-ssa/pr66726-2.c
  6f286535adafcaa2bd2c8411c48b6c57  gcc/testsuite/gcc.dg/tree-ssa/pr66726-3.c
  e819b283cd7b8b9129b416d738503f5e  gcc/testsuite/gcc.dg/tree-ssa/pr66726-4.c
  4f9b72bf1faf7a7f18adf8cd0b4540a6  gcc/testsuite/gcc.dg/tree-ssa/pr66726-5.c
--- 55685,55698 ----
  7cb0ed762682bb1350e760c82051ad0c  gcc/testsuite/gcc.dg/tree-ssa/pr63586.c
  83f806144c4d28ee655a0a4ed7c67b69  gcc/testsuite/gcc.dg/tree-ssa/pr64130.c
  7f34c9c0ef0ca4e4b8f8e09ebbb76c98  gcc/testsuite/gcc.dg/tree-ssa/pr64183.c
! f3358af8ef8e5a29d8c2bcac08be1caa  gcc/testsuite/gcc.dg/tree-ssa/pr64705.c
  90f529734a2276aada8ec622a1073c62  gcc/testsuite/gcc.dg/tree-ssa/pr64801.c
  9eafc1ee5f7c68756f96254104c44110  gcc/testsuite/gcc.dg/tree-ssa/pr64910-2.c
  14d4888f6e747c3cd8522a955b553225  gcc/testsuite/gcc.dg/tree-ssa/pr65136.c
  e3a8c430fd6ca31515a7e1bbea95b6dd  gcc/testsuite/gcc.dg/tree-ssa/pr65447.c
  499a491da27a1a5055db7cdada8dc42b  gcc/testsuite/gcc.dg/tree-ssa/pr65855-2.c
  80ee06c1361a2efc5e45db8d97d08877  gcc/testsuite/gcc.dg/tree-ssa/pr66449.c
! 94d4416a5b81475e97444194515d0414  gcc/testsuite/gcc.dg/tree-ssa/pr66726-2.c
  6f286535adafcaa2bd2c8411c48b6c57  gcc/testsuite/gcc.dg/tree-ssa/pr66726-3.c
  e819b283cd7b8b9129b416d738503f5e  gcc/testsuite/gcc.dg/tree-ssa/pr66726-4.c
  4f9b72bf1faf7a7f18adf8cd0b4540a6  gcc/testsuite/gcc.dg/tree-ssa/pr66726-5.c
*************** de88dc62a5d0e18cadd56d11d2dc6239  gcc/te
*** 52604,52613 ****
  f95a7a27ecfcac20891a4a024d1f82cb  gcc/testsuite/gcc.dg/tree-ssa/pr69270.c
  4c8881edc71005a1d85370d1a8358a54  gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
  5b019fa45c335f7fb5befbed76021ee5  gcc/testsuite/gcc.dg/tree-ssa/pr69615.c
! da374335b5ce20d724b67b01ce0e71d3  gcc/testsuite/gcc.dg/tree-ssa/pr69666.c
  f7a3fabc9425270a4d8e40f8a991ca09  gcc/testsuite/gcc.dg/tree-ssa/pr69845-1.c
  885c1be5e32bb9fbd61002b21649165d  gcc/testsuite/gcc.dg/tree-ssa/pr69845-2.c
! 5a00a4912d86c86e3a085895a5985d5e  gcc/testsuite/gcc.dg/tree-ssa/pr70232.c
  f1ac7f1c1aea72571d0586fcaa61bef4  gcc/testsuite/gcc.dg/tree-ssa/pr70372.c
  273685df2d6b0f16d53f2bcaaf31baf9  gcc/testsuite/gcc.dg/tree-ssa/pr70919.c
  b054aa571287b77ca429ba1ea5101d37  gcc/testsuite/gcc.dg/tree-ssa/pr71077.c
--- 55721,55730 ----
  f95a7a27ecfcac20891a4a024d1f82cb  gcc/testsuite/gcc.dg/tree-ssa/pr69270.c
  4c8881edc71005a1d85370d1a8358a54  gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
  5b019fa45c335f7fb5befbed76021ee5  gcc/testsuite/gcc.dg/tree-ssa/pr69615.c
! 764cbe25d58fd6bd4ed1fbd6b8b08d02  gcc/testsuite/gcc.dg/tree-ssa/pr69666.c
  f7a3fabc9425270a4d8e40f8a991ca09  gcc/testsuite/gcc.dg/tree-ssa/pr69845-1.c
  885c1be5e32bb9fbd61002b21649165d  gcc/testsuite/gcc.dg/tree-ssa/pr69845-2.c
! da51c7ef0838308ae0c7ccf24fc4c5aa  gcc/testsuite/gcc.dg/tree-ssa/pr70232.c
  f1ac7f1c1aea72571d0586fcaa61bef4  gcc/testsuite/gcc.dg/tree-ssa/pr70372.c
  273685df2d6b0f16d53f2bcaaf31baf9  gcc/testsuite/gcc.dg/tree-ssa/pr70919.c
  b054aa571287b77ca429ba1ea5101d37  gcc/testsuite/gcc.dg/tree-ssa/pr71077.c
*************** bc785bd4625086bc4105460c4bac2646  gcc/te
*** 52651,52657 ****
  9ed3e61cfd24c874ed7327706b7c1525  gcc/testsuite/gcc.dg/tree-ssa/pr77808.c
  01102465836c74c39d22c37f638ba498  gcc/testsuite/gcc.dg/tree-ssa/pr78153-1.c
  18b93ac6a2e235652bcfd84256f0251a  gcc/testsuite/gcc.dg/tree-ssa/pr78153-2.c
! 2533a19ddc8ec08c5bde87c1dbc648cd  gcc/testsuite/gcc.dg/tree-ssa/pr78154.c
  c87ef2993d90c5b6e5dca5262c0a7ff8  gcc/testsuite/gcc.dg/tree-ssa/pr78413.c
  b49229b7d1812e2e8d3d35d99035d6d4  gcc/testsuite/gcc.dg/tree-ssa/pr78428.c
  c14fec0c3521187747993d69e02aa5b5  gcc/testsuite/gcc.dg/tree-ssa/pr78605.c
--- 55768,55774 ----
  9ed3e61cfd24c874ed7327706b7c1525  gcc/testsuite/gcc.dg/tree-ssa/pr77808.c
  01102465836c74c39d22c37f638ba498  gcc/testsuite/gcc.dg/tree-ssa/pr78153-1.c
  18b93ac6a2e235652bcfd84256f0251a  gcc/testsuite/gcc.dg/tree-ssa/pr78153-2.c
! 6e9ffa90d4e67c7b98436b9606032a76  gcc/testsuite/gcc.dg/tree-ssa/pr78154.c
  c87ef2993d90c5b6e5dca5262c0a7ff8  gcc/testsuite/gcc.dg/tree-ssa/pr78413.c
  b49229b7d1812e2e8d3d35d99035d6d4  gcc/testsuite/gcc.dg/tree-ssa/pr78428.c
  c14fec0c3521187747993d69e02aa5b5  gcc/testsuite/gcc.dg/tree-ssa/pr78605.c
*************** ff3e9d8662e05b8f3c81f35670655ad3  gcc/te
*** 52672,52678 ****
  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
! 94d76dcb755b22911107840cb261e08f  gcc/testsuite/gcc.dg/tree-ssa/pr79803.c
  bcb932cf3c7784b98123718e8e7bd90d  gcc/testsuite/gcc.dg/tree-ssa/pr79943.c
  945754de69c98b402eb9c8d25ad385a1  gcc/testsuite/gcc.dg/tree-ssa/pr80622.c
  a74efe0b6a6054d529634d4aa8c952d0  gcc/testsuite/gcc.dg/tree-ssa/pr80803.c
--- 55789,55795 ----
  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
  bcb932cf3c7784b98123718e8e7bd90d  gcc/testsuite/gcc.dg/tree-ssa/pr79943.c
  945754de69c98b402eb9c8d25ad385a1  gcc/testsuite/gcc.dg/tree-ssa/pr80622.c
  a74efe0b6a6054d529634d4aa8c952d0  gcc/testsuite/gcc.dg/tree-ssa/pr80803.c
*************** e5092fb25b6f25aec065f319edc5aa8c  gcc/te
*** 52698,52704 ****
  19a84f872ab2582af0078ed8363bb611  gcc/testsuite/gcc.dg/tree-ssa/pr81799.c
  861418eb43cc241f4cc218596b15bb4c  gcc/testsuite/gcc.dg/tree-ssa/pr81832.c
  49f71ddc012b58a1125d030988922cc6  gcc/testsuite/gcc.dg/tree-ssa/pr81908.c
! 5579175f4ba8caaca62a732236030b9a  gcc/testsuite/gcc.dg/tree-ssa/pr82059.c
  aaf319a5d368363d78888a172b2aad72  gcc/testsuite/gcc.dg/tree-ssa/pr82078.c
  72d8a7e213e7a1901533af0471693b54  gcc/testsuite/gcc.dg/tree-ssa/pr82163.c
  f46e92172b945f661bae1ab06ce7f4ac  gcc/testsuite/gcc.dg/tree-ssa/pr82340.c
--- 55815,55821 ----
  19a84f872ab2582af0078ed8363bb611  gcc/testsuite/gcc.dg/tree-ssa/pr81799.c
  861418eb43cc241f4cc218596b15bb4c  gcc/testsuite/gcc.dg/tree-ssa/pr81832.c
  49f71ddc012b58a1125d030988922cc6  gcc/testsuite/gcc.dg/tree-ssa/pr81908.c
! bb1937e9f2637abe7a5f12ab73be4469  gcc/testsuite/gcc.dg/tree-ssa/pr82059.c
  aaf319a5d368363d78888a172b2aad72  gcc/testsuite/gcc.dg/tree-ssa/pr82078.c
  72d8a7e213e7a1901533af0471693b54  gcc/testsuite/gcc.dg/tree-ssa/pr82163.c
  f46e92172b945f661bae1ab06ce7f4ac  gcc/testsuite/gcc.dg/tree-ssa/pr82340.c
*************** dbb3bd52ee698a572581470fc02636bb  gcc/te
*** 52711,52718 ****
  6b2bacdf2b2223684a18611dbdc1db7f  gcc/testsuite/gcc.dg/tree-ssa/pr83141.c
  54094f112bf7286fa8dbc811329e939e  gcc/testsuite/gcc.dg/tree-ssa/pr83198.c
  8477b237f09dca3e7328e74d93078e60  gcc/testsuite/gcc.dg/tree-ssa/pr83329.c
! e69de51dce3766c5fdf511b7cae45ae2  gcc/testsuite/gcc.dg/tree-ssa/pr83403-1.c
! 7bb7b012bbeb661bdd3903ea9f5decc6  gcc/testsuite/gcc.dg/tree-ssa/pr83403-2.c
  5b03cd4f2ede1565fa5509924793e88f  gcc/testsuite/gcc.dg/tree-ssa/pr83403.h
  47d8a98b2d47b4961be0d43f9a0310fb  gcc/testsuite/gcc.dg/tree-ssa/pr83501.c
  c95f9346fdf91a2af21b609136ce6e2b  gcc/testsuite/gcc.dg/tree-ssa/pr83648-2.c
--- 55828,55835 ----
  6b2bacdf2b2223684a18611dbdc1db7f  gcc/testsuite/gcc.dg/tree-ssa/pr83141.c
  54094f112bf7286fa8dbc811329e939e  gcc/testsuite/gcc.dg/tree-ssa/pr83198.c
  8477b237f09dca3e7328e74d93078e60  gcc/testsuite/gcc.dg/tree-ssa/pr83329.c
! 8652ed1033966113cc8205b0a18d9462  gcc/testsuite/gcc.dg/tree-ssa/pr83403-1.c
! 1b9a59818728456c21d559793ead15f3  gcc/testsuite/gcc.dg/tree-ssa/pr83403-2.c
  5b03cd4f2ede1565fa5509924793e88f  gcc/testsuite/gcc.dg/tree-ssa/pr83403.h
  47d8a98b2d47b4961be0d43f9a0310fb  gcc/testsuite/gcc.dg/tree-ssa/pr83501.c
  c95f9346fdf91a2af21b609136ce6e2b  gcc/testsuite/gcc.dg/tree-ssa/pr83648-2.c
*************** d97d04db64402cd822338856f145fec9  gcc/te
*** 52860,52866 ****
  38ac60f84ed0edca0dbb0080e7ee13e9  gcc/testsuite/gcc.dg/tree-ssa/pr96239.c
  e5db63cfc4f87a52e39d66dfc65ad76e  gcc/testsuite/gcc.dg/tree-ssa/pr96272.c
  3e53dbc391e015ed761536c5337f2e07  gcc/testsuite/gcc.dg/tree-ssa/pr96480.c
! 7a035f0210bb13d71130f271f2336289  gcc/testsuite/gcc.dg/tree-ssa/pr96669-1.c
  e339d189cfb1261a988228a67f937c8e  gcc/testsuite/gcc.dg/tree-ssa/pr96669-2.c
  0f3e841b4765f7759492116c7993e093  gcc/testsuite/gcc.dg/tree-ssa/pr96671-1.c
  6d5da695c60ce83c1de92ac6937735b5  gcc/testsuite/gcc.dg/tree-ssa/pr96671-2.c
--- 55977,55983 ----
  38ac60f84ed0edca0dbb0080e7ee13e9  gcc/testsuite/gcc.dg/tree-ssa/pr96239.c
  e5db63cfc4f87a52e39d66dfc65ad76e  gcc/testsuite/gcc.dg/tree-ssa/pr96272.c
  3e53dbc391e015ed761536c5337f2e07  gcc/testsuite/gcc.dg/tree-ssa/pr96480.c
! 29620af17b0a7944728ada6cc2fa4254  gcc/testsuite/gcc.dg/tree-ssa/pr96669-1.c
  e339d189cfb1261a988228a67f937c8e  gcc/testsuite/gcc.dg/tree-ssa/pr96669-2.c
  0f3e841b4765f7759492116c7993e093  gcc/testsuite/gcc.dg/tree-ssa/pr96671-1.c
  6d5da695c60ce83c1de92ac6937735b5  gcc/testsuite/gcc.dg/tree-ssa/pr96671-2.c
*************** f35f2a4bb9fe4af0dfb311e2c2122c2f  gcc/te
*** 52888,52897 ****
  097a548743a63ed1aed9fe370369329e  gcc/testsuite/gcc.dg/tree-ssa/pr97964.c
  baea640f2f5ede46363c43f03abd38cb  gcc/testsuite/gcc.dg/tree-ssa/pr97997-1.c
  23ccdfff5ac7eb83a3c15085cede9885  gcc/testsuite/gcc.dg/tree-ssa/pr97997-2.c
  61ba91925741752dcebbd70a27ed5018  gcc/testsuite/gcc.dg/tree-ssa/pr98084.c
  4bb919a83ee1ee0e320bf059286a463c  gcc/testsuite/gcc.dg/tree-ssa/pr98094.c
  7110147a3d242779ed037a4107bc56a9  gcc/testsuite/gcc.dg/tree-ssa/pr98182.c
- 4f67b77cce4d4a67193b302faa4ed10b  gcc/testsuite/gcc.dg/tree-ssa/pr98265.C
  2802e4a2ba6a403181f297d6a0a30fe5  gcc/testsuite/gcc.dg/tree-ssa/pr98455.c
  320534e9f39f1cf4ef20e66c87f47c92  gcc/testsuite/gcc.dg/tree-ssa/pr98513.c
  589535bc2a8746fcdf9998d8902ffabd  gcc/testsuite/gcc.dg/tree-ssa/pr98737-1.c
--- 56005,56014 ----
  097a548743a63ed1aed9fe370369329e  gcc/testsuite/gcc.dg/tree-ssa/pr97964.c
  baea640f2f5ede46363c43f03abd38cb  gcc/testsuite/gcc.dg/tree-ssa/pr97997-1.c
  23ccdfff5ac7eb83a3c15085cede9885  gcc/testsuite/gcc.dg/tree-ssa/pr97997-2.c
+ 90fe950ff5cc5199b526897e3c3430d5  gcc/testsuite/gcc.dg/tree-ssa/pr98028.c
  61ba91925741752dcebbd70a27ed5018  gcc/testsuite/gcc.dg/tree-ssa/pr98084.c
  4bb919a83ee1ee0e320bf059286a463c  gcc/testsuite/gcc.dg/tree-ssa/pr98094.c
  7110147a3d242779ed037a4107bc56a9  gcc/testsuite/gcc.dg/tree-ssa/pr98182.c
  2802e4a2ba6a403181f297d6a0a30fe5  gcc/testsuite/gcc.dg/tree-ssa/pr98455.c
  320534e9f39f1cf4ef20e66c87f47c92  gcc/testsuite/gcc.dg/tree-ssa/pr98513.c
  589535bc2a8746fcdf9998d8902ffabd  gcc/testsuite/gcc.dg/tree-ssa/pr98737-1.c
*************** e6c9f2dd9d7405dee4bfd5d6d0fc455f  gcc/te
*** 52906,52929 ****
  bdfc875aa987009450b37436ca4f2d74  gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
  54b7d9fd32f2069197b1e3cfdc9c2c3f  gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
  26e5bfe2e33b57ca17335606af9bba7b  gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
! adf16bebc6f6e0a3cba7f2af2298ca3f  gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c
! 82680605c186b864a1becc5deb83e345  gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c
  c16e2519f7131c283e7aee755fb3f7de  gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
  1edc378aa83efe6a301fb07d1e704d3b  gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
! b8b2b0c1df8fac526583169e86def318  gcc/testsuite/gcc.dg/tree-ssa/predcom-8.c
  3528666a0b307c78426930f2e66b8aef  gcc/testsuite/gcc.dg/tree-ssa/predcom-9.c
! 7ec0bd77e17316c9e4ff298afda32304  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c
! 9b80702f930ef001796ad9ca51b8bd30  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c
! 9bb26d9219fc91b2ebadd329bac2d87e  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c
! 8247b090c65343cc62331be1c0f2b338  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c
! b2882b33d02dff1afc9a3f0f21091eca  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c
! 445f9dffde40b898e27e6f8b9e8221fd  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
! 18d0b09217eed4123f35017bcbe04118  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c
! 9e77608146f96b613332b9fafc705123  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c
! 305db603f6824609c0699955efc709e8  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c
! 44a3962cc99aa8fe2b6c4cf9e30323dc  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c
! 376a20e0039761849e956b27da01c0d6  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c
! 4976ebdc13dc16039446087b31b4aae9  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c
  e448afd26a97b254518f8f2ddd16f428  gcc/testsuite/gcc.dg/tree-ssa/predict-1.c
  ec935317c41ed1d9a8f3a5d3c63e2625  gcc/testsuite/gcc.dg/tree-ssa/predict-2.c
  6202b9b6c4570bd1c3769099e7df2630  gcc/testsuite/gcc.dg/tree-ssa/predict-3.c
--- 56023,56046 ----
  bdfc875aa987009450b37436ca4f2d74  gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
  54b7d9fd32f2069197b1e3cfdc9c2c3f  gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
  26e5bfe2e33b57ca17335606af9bba7b  gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
! c43846e7d9bad55e57bb6582cda21f23  gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c
! c870e396122ef98dc93500e9c7112598  gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c
  c16e2519f7131c283e7aee755fb3f7de  gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
  1edc378aa83efe6a301fb07d1e704d3b  gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
! cceaedde089c4379aba5e897d3594959  gcc/testsuite/gcc.dg/tree-ssa/predcom-8.c
  3528666a0b307c78426930f2e66b8aef  gcc/testsuite/gcc.dg/tree-ssa/predcom-9.c
! 911c8d1acb060e703f3975ebf79476ed  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c
! 6cd89d921797eb6c7c4bcbaf24ff8657  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c
! 5949942c5f3826c84fd0733b0896e367  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c
! a59e70f7df6c1c29c52cfcf4b030bafc  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c
! d3c8cfddf78f23e603ab20af0fc01e61  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c
! 800672831cc6a1f351d17c4a5e60e835  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
! db3515ffb51ef83e968b7c740aee7644  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c
! 5eb6ad72d1823d4f7a07e8008af76bf0  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c
! a145f1b3c44660c9e5f54e62f04933e6  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c
! 846546a5721c59b4cb8b7414d63c6f59  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c
! ecda075350543208abcd05c75f3ba70a  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c
! 80dd7ca2ee090ebcb4747cf060f000f8  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c
  e448afd26a97b254518f8f2ddd16f428  gcc/testsuite/gcc.dg/tree-ssa/predict-1.c
  ec935317c41ed1d9a8f3a5d3c63e2625  gcc/testsuite/gcc.dg/tree-ssa/predict-2.c
  6202b9b6c4570bd1c3769099e7df2630  gcc/testsuite/gcc.dg/tree-ssa/predict-3.c
*************** caec31b6e1784bb308ed0a58b70ee166  gcc/te
*** 52942,52949 ****
  c4ca2d65d14522cbf809425090d9d2cf  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
  446b09e6b417720ef42dfcaf25665e4b  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
  5bda4ff113aae302609d4e4e125cbcd8  gcc/testsuite/gcc.dg/tree-ssa/pta-return-1.c
  e3f7b73b72098713101b4f74589061bb  gcc/testsuite/gcc.dg/tree-ssa/range-sincos-2.c
! 86f099690609dcdb2c460eac8a8d7e1b  gcc/testsuite/gcc.dg/tree-ssa/range-sincos.c
  ced3031379929de208951f3fd90a05ff  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt-2.c
  bd25c9b85f6e659052b4e935f54a9b92  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt.c
  2f310b89b6ab546f5e70431ba049c923  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c
--- 56059,56069 ----
  c4ca2d65d14522cbf809425090d9d2cf  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
  446b09e6b417720ef42dfcaf25665e4b  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
  5bda4ff113aae302609d4e4e125cbcd8  gcc/testsuite/gcc.dg/tree-ssa/pta-return-1.c
+ 787ea0b9416dec4d3f2205b2a643c922  gcc/testsuite/gcc.dg/tree-ssa/range-isfinite.c
+ 70a1e4d19d02c984351a1f0459f7310f  gcc/testsuite/gcc.dg/tree-ssa/range-isinf.c
+ 105b4eac454f74099ddeb7769b4f6f3c  gcc/testsuite/gcc.dg/tree-ssa/range-isnormal.c
  e3f7b73b72098713101b4f74589061bb  gcc/testsuite/gcc.dg/tree-ssa/range-sincos-2.c
! 0631b7f2ec4a8390cfc7c0583d4890cc  gcc/testsuite/gcc.dg/tree-ssa/range-sincos.c
  ced3031379929de208951f3fd90a05ff  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt-2.c
  bd25c9b85f6e659052b4e935f54a9b92  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt.c
  2f310b89b6ab546f5e70431ba049c923  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c
*************** edcbca34043637027e3769b565e4b273  gcc/te
*** 52976,52997 ****
  3d64c91be1d73ae14952613f6b8d7e64  gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c
  09bf33e4e3bcec2a224d964018864ea1  gcc/testsuite/gcc.dg/tree-ssa/reassoc-30.c
  670f544146641dc1a6ba76a0e447d89f  gcc/testsuite/gcc.dg/tree-ssa/reassoc-31.c
! 45935b9d55e593f2166807bcff1d4987  gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c
! 118abcfd66bece34516a3c4b2e33496c  gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c
! 3624cf289b250c43c1644eca5d772cd8  gcc/testsuite/gcc.dg/tree-ssa/reassoc-34.c
! aea4f32c37b07ed1d0e8ae031cb6d05d  gcc/testsuite/gcc.dg/tree-ssa/reassoc-35.c
! 81621526612f8a7a58e6bc7a66063d12  gcc/testsuite/gcc.dg/tree-ssa/reassoc-36.c
  c141c54d8d2945e58e9dc53047625f7c  gcc/testsuite/gcc.dg/tree-ssa/reassoc-37.c
  cc771f2aca9e78e7185effebedfe5750  gcc/testsuite/gcc.dg/tree-ssa/reassoc-38.c
! ce8fe7e8b99167c711c6540beff0f27a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-39.c
  ad0c910858cba8a5b3996305d7d5447d  gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c
  fb8e1542fc1472c62c777c39fb27803a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c
! 0945a4a5876e31c0c04a5dcd26ecb09b  gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c
  854b9533e402a2c0f1a5576704a59839  gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c
  9770271c8160893f7b5dc581405acf3e  gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c
  40306bba57979317f1b6ac5abc1c61aa  gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
  43cedee8ba1282cf6b6558cafbaf9c24  gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c
! 31c8f83c1a544753f4baf31acc63a283  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.c
  5072abc088fac51ef4fb9d38cfab1016  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.h
  d9f71773089e956982981615cbb6af18  gcc/testsuite/gcc.dg/tree-ssa/reassoc-47.c
  c978501cc36987a39be2fe7b6f3fef22  gcc/testsuite/gcc.dg/tree-ssa/reassoc-49.c
--- 56096,56117 ----
  3d64c91be1d73ae14952613f6b8d7e64  gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c
  09bf33e4e3bcec2a224d964018864ea1  gcc/testsuite/gcc.dg/tree-ssa/reassoc-30.c
  670f544146641dc1a6ba76a0e447d89f  gcc/testsuite/gcc.dg/tree-ssa/reassoc-31.c
! 14d73da17a86101d351d569e64ceac4c  gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c
! a3549721a100d3e6a05f224d1f218513  gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c
! 2944ab031c922916094c679922f22800  gcc/testsuite/gcc.dg/tree-ssa/reassoc-34.c
! 00a4f33776df6e274a8c338d3d8f18a5  gcc/testsuite/gcc.dg/tree-ssa/reassoc-35.c
! 2a9229cf272c82bbb87ecc126894154f  gcc/testsuite/gcc.dg/tree-ssa/reassoc-36.c
  c141c54d8d2945e58e9dc53047625f7c  gcc/testsuite/gcc.dg/tree-ssa/reassoc-37.c
  cc771f2aca9e78e7185effebedfe5750  gcc/testsuite/gcc.dg/tree-ssa/reassoc-38.c
! d0de81abbce2a301f248ce6a89272b4a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-39.c
  ad0c910858cba8a5b3996305d7d5447d  gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c
  fb8e1542fc1472c62c777c39fb27803a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c
! ebe8f1a705bd859462b571647e6ac8b3  gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c
  854b9533e402a2c0f1a5576704a59839  gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c
  9770271c8160893f7b5dc581405acf3e  gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c
  40306bba57979317f1b6ac5abc1c61aa  gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
  43cedee8ba1282cf6b6558cafbaf9c24  gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c
! 109dd129f5e60e2d814367181e994581  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.c
  5072abc088fac51ef4fb9d38cfab1016  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.h
  d9f71773089e956982981615cbb6af18  gcc/testsuite/gcc.dg/tree-ssa/reassoc-47.c
  c978501cc36987a39be2fe7b6f3fef22  gcc/testsuite/gcc.dg/tree-ssa/reassoc-49.c
*************** d66408c518c8dabc34c03159ce0ee317  gcc/te
*** 53020,53031 ****
  9439ae3a1e07c16e1c5b152f81a0de70  gcc/testsuite/gcc.dg/tree-ssa/restrict-8.c
  0d2c77f887c7650308ee4834b850c7f9  gcc/testsuite/gcc.dg/tree-ssa/restrict-9.c
  a16e6045a67747df1bbf4e0359c3ee89  gcc/testsuite/gcc.dg/tree-ssa/return-value-range-1.c
  cd3e3a590031a7862742691f55854a22  gcc/testsuite/gcc.dg/tree-ssa/sccp-1.c
  63d4e72c76cf7ed65099b2b2f48ab339  gcc/testsuite/gcc.dg/tree-ssa/sccp-2.c
  42b99510cc5b8fea4f6a5325548506f6  gcc/testsuite/gcc.dg/tree-ssa/sccp-3.c
  52daa8eedbd22c7715c760e3a07d16d9  gcc/testsuite/gcc.dg/tree-ssa/scev-1.c
  d49a52812d0306aed6b4afd71f9a8985  gcc/testsuite/gcc.dg/tree-ssa/scev-10.c
! effc8031a8163b496d4a05b5aed0a92d  gcc/testsuite/gcc.dg/tree-ssa/scev-11.c
  f217e7eaaf0fa982496dcfbf0c1b65fa  gcc/testsuite/gcc.dg/tree-ssa/scev-12.c
  345f346d2664e3f4e7b0d92c6b91cd55  gcc/testsuite/gcc.dg/tree-ssa/scev-13.c
  8c83b125bec2afaa6eba2f0385dc4625  gcc/testsuite/gcc.dg/tree-ssa/scev-14.c
--- 56140,56153 ----
  9439ae3a1e07c16e1c5b152f81a0de70  gcc/testsuite/gcc.dg/tree-ssa/restrict-8.c
  0d2c77f887c7650308ee4834b850c7f9  gcc/testsuite/gcc.dg/tree-ssa/restrict-9.c
  a16e6045a67747df1bbf4e0359c3ee89  gcc/testsuite/gcc.dg/tree-ssa/return-value-range-1.c
+ 688b8f762ac2c72c005673fa2d9c335c  gcc/testsuite/gcc.dg/tree-ssa/satd-hadamard.c
  cd3e3a590031a7862742691f55854a22  gcc/testsuite/gcc.dg/tree-ssa/sccp-1.c
+ f5f5b1ba3e8f4784cb58191b03eb37be  gcc/testsuite/gcc.dg/tree-ssa/sccp-16.c
  63d4e72c76cf7ed65099b2b2f48ab339  gcc/testsuite/gcc.dg/tree-ssa/sccp-2.c
  42b99510cc5b8fea4f6a5325548506f6  gcc/testsuite/gcc.dg/tree-ssa/sccp-3.c
  52daa8eedbd22c7715c760e3a07d16d9  gcc/testsuite/gcc.dg/tree-ssa/scev-1.c
  d49a52812d0306aed6b4afd71f9a8985  gcc/testsuite/gcc.dg/tree-ssa/scev-10.c
! 7ae93208200262329f17a545b36f75c4  gcc/testsuite/gcc.dg/tree-ssa/scev-11.c
  f217e7eaaf0fa982496dcfbf0c1b65fa  gcc/testsuite/gcc.dg/tree-ssa/scev-12.c
  345f346d2664e3f4e7b0d92c6b91cd55  gcc/testsuite/gcc.dg/tree-ssa/scev-13.c
  8c83b125bec2afaa6eba2f0385dc4625  gcc/testsuite/gcc.dg/tree-ssa/scev-14.c
*************** d396c36b9f0d747b966a2da9958bc3ac  gcc/te
*** 53034,53041 ****
  219839db1cd5ee662a1d6dfd20d04a13  gcc/testsuite/gcc.dg/tree-ssa/scev-6.c
  2a4d896a7956f73ba5c280f397c5d479  gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
  617f17f9d345921cc3d44ce933023f61  gcc/testsuite/gcc.dg/tree-ssa/scev-8.c
! 72a4d2a9d127c483145c8c25b2a4b795  gcc/testsuite/gcc.dg/tree-ssa/scev-9.c
  5c43c327edae117a89ccf8d95e2fb91b  gcc/testsuite/gcc.dg/tree-ssa/scev-cast.c
  20ce3bebeb7a8c4161d2085814041edc  gcc/testsuite/gcc.dg/tree-ssa/shorten-1.c
  2cb74ffdd8d4210ad1c6bbaddbd8a8b6  gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
  a2527727970eaab3e3d043e5e4379256  gcc/testsuite/gcc.dg/tree-ssa/slsr-10.c
--- 56156,56167 ----
  219839db1cd5ee662a1d6dfd20d04a13  gcc/testsuite/gcc.dg/tree-ssa/scev-6.c
  2a4d896a7956f73ba5c280f397c5d479  gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
  617f17f9d345921cc3d44ce933023f61  gcc/testsuite/gcc.dg/tree-ssa/scev-8.c
! 422bfa73061af97d81a1ebf48c8786f9  gcc/testsuite/gcc.dg/tree-ssa/scev-9.c
  5c43c327edae117a89ccf8d95e2fb91b  gcc/testsuite/gcc.dg/tree-ssa/scev-cast.c
+ 2d325e9bb230aec49e1bf5c5fc8965c6  gcc/testsuite/gcc.dg/tree-ssa/shifts-1.c
+ 17e51184e5fa028b08cb3e3b40f63f5d  gcc/testsuite/gcc.dg/tree-ssa/shifts-2.c
+ bf72ea1f3a63addcd35de7fcb9e03537  gcc/testsuite/gcc.dg/tree-ssa/shifts-3.c
+ c2616807b5458da149bcc0d0ff292c60  gcc/testsuite/gcc.dg/tree-ssa/shifts-4.c
  20ce3bebeb7a8c4161d2085814041edc  gcc/testsuite/gcc.dg/tree-ssa/shorten-1.c
  2cb74ffdd8d4210ad1c6bbaddbd8a8b6  gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
  a2527727970eaab3e3d043e5e4379256  gcc/testsuite/gcc.dg/tree-ssa/slsr-10.c
*************** f5cbb278145ac126dcce52ba55a7e986  gcc/te
*** 53081,53096 ****
  a033da229d97e775dc989a1095ff34b8  gcc/testsuite/gcc.dg/tree-ssa/slsr-9.c
  42cfda00a4e3f590579d9164da8db652  gcc/testsuite/gcc.dg/tree-ssa/split-path-1.c
  374f7d1e0bcd74c6255d65e104a73dbf  gcc/testsuite/gcc.dg/tree-ssa/split-path-10.c
! 6f118f8784310e78f72417963dea9249  gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c
  84aa833acb5b0b615f7f68aa3b7e2469  gcc/testsuite/gcc.dg/tree-ssa/split-path-12.c
! 90e953eef4724c1c9123f8b3133d04ea  gcc/testsuite/gcc.dg/tree-ssa/split-path-2.c
  df2fef34213133c5afed537f489aca64  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
  d992ba599bfc7773921562d11d02f7da  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
! 82281eb4072e89865db7b58f503ee3d3  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 78efd9666eb82f0d3c1c7ba6a4e81eae  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
  ff3476556b9ca9f0a5f0389b2522eefa  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
  5497d0691f379f1d688647db6c95cc34  gcc/testsuite/gcc.dg/tree-ssa/sra-1.c
  7558d785a363f3e5cfc302af96043d93  gcc/testsuite/gcc.dg/tree-ssa/sra-10.c
  ffdae1774a4a625bbe41a28699ba6c60  gcc/testsuite/gcc.dg/tree-ssa/sra-11.c
--- 56207,56224 ----
  a033da229d97e775dc989a1095ff34b8  gcc/testsuite/gcc.dg/tree-ssa/slsr-9.c
  42cfda00a4e3f590579d9164da8db652  gcc/testsuite/gcc.dg/tree-ssa/split-path-1.c
  374f7d1e0bcd74c6255d65e104a73dbf  gcc/testsuite/gcc.dg/tree-ssa/split-path-10.c
! 10c1af7fa5ffda3e118bacb383d46f57  gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c
  84aa833acb5b0b615f7f68aa3b7e2469  gcc/testsuite/gcc.dg/tree-ssa/split-path-12.c
! 5f9b5295c2afe0d2059a327f97a9af94  gcc/testsuite/gcc.dg/tree-ssa/split-path-13.c
! d25bed281c9e52c5070488f498c6e1ac  gcc/testsuite/gcc.dg/tree-ssa/split-path-2.c
  df2fef34213133c5afed537f489aca64  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
  d992ba599bfc7773921562d11d02f7da  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
! a947bd2aec2bda9a99172e0f0bfe8acd  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 50a204774033d9ad11517dafb2e34913  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
  ff3476556b9ca9f0a5f0389b2522eefa  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
+ de57f508f4b87a87da92299513721028  gcc/testsuite/gcc.dg/tree-ssa/sqrt_div.c
  5497d0691f379f1d688647db6c95cc34  gcc/testsuite/gcc.dg/tree-ssa/sra-1.c
  7558d785a363f3e5cfc302af96043d93  gcc/testsuite/gcc.dg/tree-ssa/sra-10.c
  ffdae1774a4a625bbe41a28699ba6c60  gcc/testsuite/gcc.dg/tree-ssa/sra-11.c
*************** a89cc51f8eed91ff9f67a03136fadfc2  gcc/te
*** 53146,53151 ****
--- 56274,56280 ----
  deec482a9ac1be670c63e41f8f6c51b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-41.c
  da74be31fe6f59d63f8df06e088dd2de  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-42.c
  53b3235f987a5fda4292f25d2b007ef6  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-43.c
+ 5efac5d180c80f9d4f882c7f6c689e93  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-44.c
  f7cce43d31e9f12959af7cf644592290  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c
  51be37cfd24e328fafdfd467109bfff4  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-9.c
  a4485085185fcdf9689ad1ba99aa8d60  gcc/testsuite/gcc.dg/tree-ssa/ssa-copyprop-1.c
*************** fe380a1f1df354382cdc2b0804d55603  gcc/te
*** 53163,53169 ****
  f948f53265f6c4cd6b3a22d571852b66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c
  e666ad14b4ed9af521fe3321b676a452  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c
  8a64614ddb6fafb7fd2cde19df7908b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c
! 6dc959c11d07d7b2d5247c74e35b29e0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c
  0b33d127d9be03423c182ddedafe0447  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-3.c
  0e4a93b4f8ef0ea9a03525280c2e9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-4.c
  b8c4472d1c80ee7abb4e274e617c5565  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-5.c
--- 56292,56298 ----
  f948f53265f6c4cd6b3a22d571852b66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c
  e666ad14b4ed9af521fe3321b676a452  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c
  8a64614ddb6fafb7fd2cde19df7908b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c
! 35fe651ba16877b7b82da8181a1b6e5d  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c
  0b33d127d9be03423c182ddedafe0447  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-3.c
  0e4a93b4f8ef0ea9a03525280c2e9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-4.c
  b8c4472d1c80ee7abb4e274e617c5565  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-5.c
*************** c80e73a06995d8806bc8a56ee1df1346  gcc/te
*** 53189,53195 ****
  05aea1a4d7030c5cf55b50b84dc9f78f  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2g.c
  15738f38675ee569391bc24effefc64b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2h.c
  881f6db6cb1a3e63bf8dd2e0f203cc95  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-5.c
! bcc0e3162deeb1a11b7daf4065e6b405  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
  de890ed0b8a4a8f0e19572bf759856a3  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c
  1e01eee87c695d67cde163a4530069b0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c
  9131f70d5244737552818651f478cdc5  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c
--- 56318,56324 ----
  05aea1a4d7030c5cf55b50b84dc9f78f  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2g.c
  15738f38675ee569391bc24effefc64b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2h.c
  881f6db6cb1a3e63bf8dd2e0f203cc95  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-5.c
! ec9a74654ae0e303d2f9e1186eb48c55  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
  de890ed0b8a4a8f0e19572bf759856a3  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c
  1e01eee87c695d67cde163a4530069b0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c
  9131f70d5244737552818651f478cdc5  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c
*************** dbb4751df5b581df2bf59314c3a16ebf  gcc/te
*** 53231,53237 ****
--- 56360,56370 ----
  34e7711e9599a9e06c0484e2d330ab6a  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-45.c
  2d90cf283a134945d0ba42c6d39a54da  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-46.c
  a2846d57ec83eed658cd1060b55e2581  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-47.c
+ 0228ba2790b3c84119c9531a98919472  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-48.c
+ 58355c55506d479247ca1e8018d2326d  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-49.c
  8464edd661b6724b6cc8a6c0591e9ada  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c
+ 0014e48cc005eb8b95c81e8d94ac1591  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-50.c
+ a614fd87bde936a69a42c732c1dfa631  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-51.c
  d67df09df0e5c754eb61edc5766cd64b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c
  e61169ee1fb9fc84f1d8b0d413a8a21b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c
  f4779c6680cebbcb248e8fd574b9bfa0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c
*************** e2a961b153ac21a8a834a051dcd521df  gcc/te
*** 53359,53364 ****
--- 56492,56500 ----
  7a0695941ab4d966ed7f5076d71670b6  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c
  5ed4c2b306b73e6dc62715d5a21f00a3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c
  cb14d497286df49863c83afa886a3a92  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c
+ d9c8788e4f144b448a16ad70b3b6bf7d  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-7.c
+ 295307e70f19b9bb150ea2189a147a44  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-8.c
+ d6548fe7ca02d8677a249fc86b4a8f36  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-ccmp-9.c
  6a24e17b687dca694ffe1d65867ad9e5  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c
  0127e8622d56a87fffe76987fdb249f8  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c
  c456ebf49f3666d48ef00a6ef3c341c7  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c
*************** bc1b0eb9d58483a9f609b164efd64d18  gcc/te
*** 53376,53381 ****
--- 56512,56518 ----
  3fada5964c97d348ed7e7e1eb62f0512  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-22.c
  6a109e21502e5353e985b8e9180f3c79  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-23.c
  99cacb357948a00b34aa1d255c66558b  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c
+ a3fc09fc73db236301044a5b2f7e7fea  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c
  c0ab69fe1a4b916817bbafe5e5048c34  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
  d00d2a078458d4fc876af7d2a29c241a  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-5.c
  769aa5eb478537be389d55c410c46887  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
*************** bc456ba2c91652bd2140d56987cba543  gcc/te
*** 53405,53411 ****
  234756eba1af5e152cd1faa8b6266bf7  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-28.c
  a06281be684fbc9936ebf659c6e5fa95  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-29.c
  999435f66d370ea9ebf68128c98b001f  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c
! aa1777c45c7d6736cca46a69392522b9  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-30.c
  7e73c668c31b6f73c95b69cbdc80eac5  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-31.c
  d7800e6a28e5b70e0293c932b14894f8  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-32.c
  17d5e649f4ebd09ca062e6a51b4bb263  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-33.c
--- 56542,56548 ----
  234756eba1af5e152cd1faa8b6266bf7  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-28.c
  a06281be684fbc9936ebf659c6e5fa95  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-29.c
  999435f66d370ea9ebf68128c98b001f  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c
! d70ae28c3dbd762925d367cebd456779  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-30.c
  7e73c668c31b6f73c95b69cbdc80eac5  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-31.c
  d7800e6a28e5b70e0293c932b14894f8  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-32.c
  17d5e649f4ebd09ca062e6a51b4bb263  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-33.c
*************** d4c634a44627f8d20bac4d1e9feb7084  gcc/te
*** 53433,53438 ****
--- 56570,56577 ----
  d869cf884bf06167758bc9df313cee97  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c
  75f1fbb86f90eb2820845f3b864c8649  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
  55b0bbd3097383eac55fcb6866cb5adc  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-20.c
+ 482d80e92a069d08635a39d530a4ec3e  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-21.c
+ b59c690dac317381a21e2e6cdf9a7525  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-22.c
  9825bb51561846515088fa3daf93eb2c  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
  3c498a479ee03a4591c4e96f4a6bf880  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
  5cbdfbf1e670807b4bbad98ff1c27449  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-5.c
*************** bb7e1bd5cca1d575ddd8aece7fd041b1  gcc/te
*** 53477,53491 ****
  2e47a04050a1b7d68e0a8930548f34b7  gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c
  1eeca1f0f08e0e6dbf560f1f160a8a46  gcc/testsuite/gcc.dg/tree-ssa/switch-1.c
  1f2e76c6ce20ffbec6194286a7fc5a9e  gcc/testsuite/gcc.dg/tree-ssa/switch-2.c
! 9acb472d8d05e4e907f8cc86d1fe9c17  gcc/testsuite/gcc.dg/tree-ssa/switch-3.c
  71a2830a8fb169fa4d1fb166da7cf5db  gcc/testsuite/gcc.dg/tree-ssa/switch-4.c
  f473c024639a7ff168ec7c53dc1da31a  gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c
  78386a5036873043fef5cd0124f39173  gcc/testsuite/gcc.dg/tree-ssa/tailcall-10.c
  1d91ee165b31f273c4f21be7f05b1911  gcc/testsuite/gcc.dg/tree-ssa/tailcall-11.c
  8a544e5690fb27086b81965883fa318e  gcc/testsuite/gcc.dg/tree-ssa/tailcall-12.c
  ea3136823e2eb9df1704b248b314ee97  gcc/testsuite/gcc.dg/tree-ssa/tailcall-13.c
  167e398c4c929130a179ddf178b8e255  gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c
! f509f9b6a4b914aa615c3e434856ead1  gcc/testsuite/gcc.dg/tree-ssa/tailcall-3.c
  246dd31c465e8c85e8e733aab5ac0877  gcc/testsuite/gcc.dg/tree-ssa/tailcall-4.c
  651319168803d1d7b9d16d10c397f51a  gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
  b5a935fe1a03cec403169035ab628b03  gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
--- 56616,56631 ----
  2e47a04050a1b7d68e0a8930548f34b7  gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c
  1eeca1f0f08e0e6dbf560f1f160a8a46  gcc/testsuite/gcc.dg/tree-ssa/switch-1.c
  1f2e76c6ce20ffbec6194286a7fc5a9e  gcc/testsuite/gcc.dg/tree-ssa/switch-2.c
! 01062d1a00d867e8cc9cd7efaf52e5d0  gcc/testsuite/gcc.dg/tree-ssa/switch-3.c
  71a2830a8fb169fa4d1fb166da7cf5db  gcc/testsuite/gcc.dg/tree-ssa/switch-4.c
+ e50000d82aa6c776ea2b37bfc6e7c076  gcc/testsuite/gcc.dg/tree-ssa/tail-merge-1.c
  f473c024639a7ff168ec7c53dc1da31a  gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c
  78386a5036873043fef5cd0124f39173  gcc/testsuite/gcc.dg/tree-ssa/tailcall-10.c
  1d91ee165b31f273c4f21be7f05b1911  gcc/testsuite/gcc.dg/tree-ssa/tailcall-11.c
  8a544e5690fb27086b81965883fa318e  gcc/testsuite/gcc.dg/tree-ssa/tailcall-12.c
  ea3136823e2eb9df1704b248b314ee97  gcc/testsuite/gcc.dg/tree-ssa/tailcall-13.c
  167e398c4c929130a179ddf178b8e255  gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c
! 50308f617ea856bb097e4ab9dbd1f8fb  gcc/testsuite/gcc.dg/tree-ssa/tailcall-3.c
  246dd31c465e8c85e8e733aab5ac0877  gcc/testsuite/gcc.dg/tree-ssa/tailcall-4.c
  651319168803d1d7b9d16d10c397f51a  gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
  b5a935fe1a03cec403169035ab628b03  gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
*************** ac68e635052c49f6b773cb66ed20a1e8  gcc/te
*** 53502,53508 ****
  e84424985e065b3a1999b1ea596c8e5c  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-6.c
  6400d5651fcf9e68caeb41223c2fced7  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-7.c
  fe06bda8f8339334f5d8b9e5b475bfc5  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-8.c
! fbcf714e55181a760ea9bbe4f2bf24d7  gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp
  b529a183f5c763b842cd8fad5900b40f  gcc/testsuite/gcc.dg/tree-ssa/unord.c
  1c4bf657e9d9fe122d42a9f94704b7e2  gcc/testsuite/gcc.dg/tree-ssa/unreachable.c
  1e3d2be7b65bc67d143ce4e436bfcdb1  gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c
--- 56642,56649 ----
  e84424985e065b3a1999b1ea596c8e5c  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-6.c
  6400d5651fcf9e68caeb41223c2fced7  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-7.c
  fe06bda8f8339334f5d8b9e5b475bfc5  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-8.c
! 378725e5a30f8d17011ed34303eefdc0  gcc/testsuite/gcc.dg/tree-ssa/trapping-1.c
! 129523c84e5325415fbc58865b65e8df  gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp
  b529a183f5c763b842cd8fad5900b40f  gcc/testsuite/gcc.dg/tree-ssa/unord.c
  1c4bf657e9d9fe122d42a9f94704b7e2  gcc/testsuite/gcc.dg/tree-ssa/unreachable.c
  1e3d2be7b65bc67d143ce4e436bfcdb1  gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c
*************** a07b328f828c5a6dc6814d58e08a5752  gcc/te
*** 53516,53527 ****
  026cc8eee110e3e13351651d019ec81e  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate-2.c
  f6903c1778cac285a3ba54b0784b6186  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate.c
  f85c8615f3ea51105c4b0deb990f425b  gcc/testsuite/gcc.dg/tree-ssa/vector-1.c
  2a5f9b88e20858cdca30caa31058acc9  gcc/testsuite/gcc.dg/tree-ssa/vector-2.c
  6ea6a701eaec7e89b5495272360e279d  gcc/testsuite/gcc.dg/tree-ssa/vector-3.c
! f799895dc087ab7f79f3ca0936a187a8  gcc/testsuite/gcc.dg/tree-ssa/vector-4.c
  5075fecf046c0224239ec47fc9cdb321  gcc/testsuite/gcc.dg/tree-ssa/vector-5.c
  a12895e160ece0f553a23b23be8acc70  gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
  ae4c45e8e11a3fe4fc4c58ed7fba53fa  gcc/testsuite/gcc.dg/tree-ssa/vector-7.c
  efe6f8695ae5fbf7f82d66e0c9ec26b1  gcc/testsuite/gcc.dg/tree-ssa/vrp-compare-1.c
  d2716d7b0ff8fed54064ac391092556a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-1.c
  ead105f59515a642c6fc52a424df28de  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-11.c
--- 56657,56672 ----
  026cc8eee110e3e13351651d019ec81e  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate-2.c
  f6903c1778cac285a3ba54b0784b6186  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate.c
  f85c8615f3ea51105c4b0deb990f425b  gcc/testsuite/gcc.dg/tree-ssa/vector-1.c
+ 026eaee46e41b43bb0cd5123c097cad8  gcc/testsuite/gcc.dg/tree-ssa/vector-10.c
+ 67584965ad4bcf13b47bfdbacc94385a  gcc/testsuite/gcc.dg/tree-ssa/vector-11.c
  2a5f9b88e20858cdca30caa31058acc9  gcc/testsuite/gcc.dg/tree-ssa/vector-2.c
  6ea6a701eaec7e89b5495272360e279d  gcc/testsuite/gcc.dg/tree-ssa/vector-3.c
! 048308e656834f089f0229dd5d4de376  gcc/testsuite/gcc.dg/tree-ssa/vector-4.c
  5075fecf046c0224239ec47fc9cdb321  gcc/testsuite/gcc.dg/tree-ssa/vector-5.c
  a12895e160ece0f553a23b23be8acc70  gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
  ae4c45e8e11a3fe4fc4c58ed7fba53fa  gcc/testsuite/gcc.dg/tree-ssa/vector-7.c
+ 082236399ce2aff8104bb8db55972f09  gcc/testsuite/gcc.dg/tree-ssa/vector-8.c
+ 4bf17b25f855a2c808672a6d3ed9bb4d  gcc/testsuite/gcc.dg/tree-ssa/vector-9.c
  efe6f8695ae5fbf7f82d66e0c9ec26b1  gcc/testsuite/gcc.dg/tree-ssa/vrp-compare-1.c
  d2716d7b0ff8fed54064ac391092556a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-1.c
  ead105f59515a642c6fc52a424df28de  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-11.c
*************** bb80b99977750a36908e3e2dffb9a3f9  gcc/te
*** 53534,53540 ****
  9e836be71c76565f6b21bfc807316709  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-6.c
  330ef877971bbef3819f4cf263e25dfb  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-7.c
  564f40109b1049f137c82198e8c6c769  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-8.c
! 34063a10ba0f7505954d590f3a16de4a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-abs-1.c
  088c5fcb38e11ac3ea517c35416e3888  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-inf-1.c
  ddf35dbfa6fadefd77f8d99f52bf0310  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-nan-1.c
  b3ab245e78e617ea4a53ae113c58df6e  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-plus.c
--- 56679,56685 ----
  9e836be71c76565f6b21bfc807316709  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-6.c
  330ef877971bbef3819f4cf263e25dfb  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-7.c
  564f40109b1049f137c82198e8c6c769  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-8.c
! 50d0391a92e3a04baff8f5d6fe93d683  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-abs-1.c
  088c5fcb38e11ac3ea517c35416e3888  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-inf-1.c
  ddf35dbfa6fadefd77f8d99f52bf0310  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-nan-1.c
  b3ab245e78e617ea4a53ae113c58df6e  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-plus.c
*************** bdd113190be2bc878ba396de5dc87deb  gcc/te
*** 53651,53657 ****
  8a4cb2c2cbd56fba677e4420287314e0  gcc/testsuite/gcc.dg/tree-ssa/vrp71.c
  9178d6733829a4e8b605a026085ca2ce  gcc/testsuite/gcc.dg/tree-ssa/vrp72.c
  f82dbacb4c23fea613044fada1b8f6b3  gcc/testsuite/gcc.dg/tree-ssa/vrp73.c
! 48ad0842982c5ceb48a72d22f92c6e5e  gcc/testsuite/gcc.dg/tree-ssa/vrp74.c
  1b520ae4f6a2fb64a0c93dd326b08ff0  gcc/testsuite/gcc.dg/tree-ssa/vrp75.c
  387f820166776163607f7f7020eb9cc1  gcc/testsuite/gcc.dg/tree-ssa/vrp76.c
  5ff9b55412dd9a9fd765b3f98da87203  gcc/testsuite/gcc.dg/tree-ssa/vrp77.c
--- 56796,56802 ----
  8a4cb2c2cbd56fba677e4420287314e0  gcc/testsuite/gcc.dg/tree-ssa/vrp71.c
  9178d6733829a4e8b605a026085ca2ce  gcc/testsuite/gcc.dg/tree-ssa/vrp72.c
  f82dbacb4c23fea613044fada1b8f6b3  gcc/testsuite/gcc.dg/tree-ssa/vrp73.c
! 1bee38dfc927624ef899c3121d2e1d4f  gcc/testsuite/gcc.dg/tree-ssa/vrp74.c
  1b520ae4f6a2fb64a0c93dd326b08ff0  gcc/testsuite/gcc.dg/tree-ssa/vrp75.c
  387f820166776163607f7f7020eb9cc1  gcc/testsuite/gcc.dg/tree-ssa/vrp76.c
  5ff9b55412dd9a9fd765b3f98da87203  gcc/testsuite/gcc.dg/tree-ssa/vrp77.c
*************** c0761616b56e6c13ccfbf05810c3ad42  gcc/te
*** 53692,53698 ****
  dcc8ff133faffd3fe561dfe431569a07  gcc/testsuite/gcc.dg/tsan/pr88030.c
  de40a1e950c75128048b75517e728603  gcc/testsuite/gcc.dg/tsan/pr90208-1.c
  65ac9eca3bcd49137d096a4f2573e2e2  gcc/testsuite/gcc.dg/tsan/pr90208-2.c
! a1d0446aa13cd19c5ea2615e4d8e0e0b  gcc/testsuite/gcc.dg/tsan/tsan.exp
  01ec42502b146041504a5ab811e7f3b1  gcc/testsuite/gcc.dg/two-types-1.c
  95ad9b7c791f67ee2f4be1bd942e6718  gcc/testsuite/gcc.dg/two-types-10.c
  ca1b8417ca9c37159dd4270d3263cc19  gcc/testsuite/gcc.dg/two-types-2.c
--- 56837,56843 ----
  dcc8ff133faffd3fe561dfe431569a07  gcc/testsuite/gcc.dg/tsan/pr88030.c
  de40a1e950c75128048b75517e728603  gcc/testsuite/gcc.dg/tsan/pr90208-1.c
  65ac9eca3bcd49137d096a4f2573e2e2  gcc/testsuite/gcc.dg/tsan/pr90208-2.c
! 527e986c397a6f1fe5f58feb4b14c3c4  gcc/testsuite/gcc.dg/tsan/tsan.exp
  01ec42502b146041504a5ab811e7f3b1  gcc/testsuite/gcc.dg/two-types-1.c
  95ad9b7c791f67ee2f4be1bd942e6718  gcc/testsuite/gcc.dg/two-types-10.c
  ca1b8417ca9c37159dd4270d3263cc19  gcc/testsuite/gcc.dg/two-types-2.c
*************** a05018bcbb7e5b788c426b3a9e2eb90d  gcc/te
*** 53703,53713 ****
  4efd24ff7eeea0ccd320377bb6c5dc21  gcc/testsuite/gcc.dg/two-types-7.c
  c3e1ec66a1ba63c23068279c0986a103  gcc/testsuite/gcc.dg/two-types-8.c
  6baa347d522e3cfda6d4ab4f35041b62  gcc/testsuite/gcc.dg/two-types-9.c
! 350cb5e1dd068cc86b4cb96b307dd294  gcc/testsuite/gcc.dg/type-convert-var.c
  5a58fa954426a9307499c22fa4d90b23  gcc/testsuite/gcc.dg/typedef-init.c
  033f9eaca6e2312d2cefbe1ee49f3460  gcc/testsuite/gcc.dg/typedef-redecl.c
  7b938b0cb614b822c40b1d1cd3386863  gcc/testsuite/gcc.dg/typedef-redecl.h
  72fdab30436f0359eba0e25ccef2a975  gcc/testsuite/gcc.dg/typedef-redecl2.c
  7bf977fdddd58f9186f5cc099280b5eb  gcc/testsuite/gcc.dg/typedef-var-1.c
  68f588a635357a5cb520c7708e945ba6  gcc/testsuite/gcc.dg/typedef-var-2.c
  44e859486a96c5bde24ac67ae73472fe  gcc/testsuite/gcc.dg/typename-vla-1.c
--- 56848,56859 ----
  4efd24ff7eeea0ccd320377bb6c5dc21  gcc/testsuite/gcc.dg/two-types-7.c
  c3e1ec66a1ba63c23068279c0986a103  gcc/testsuite/gcc.dg/two-types-8.c
  6baa347d522e3cfda6d4ab4f35041b62  gcc/testsuite/gcc.dg/two-types-9.c
! eb0639d8cb59be197c776a38418fa20c  gcc/testsuite/gcc.dg/type-convert-var.c
  5a58fa954426a9307499c22fa4d90b23  gcc/testsuite/gcc.dg/typedef-init.c
  033f9eaca6e2312d2cefbe1ee49f3460  gcc/testsuite/gcc.dg/typedef-redecl.c
  7b938b0cb614b822c40b1d1cd3386863  gcc/testsuite/gcc.dg/typedef-redecl.h
  72fdab30436f0359eba0e25ccef2a975  gcc/testsuite/gcc.dg/typedef-redecl2.c
+ eb7e6e3cba2ccfda153a92bf24547fa7  gcc/testsuite/gcc.dg/typedef-redecl3.c
  7bf977fdddd58f9186f5cc099280b5eb  gcc/testsuite/gcc.dg/typedef-var-1.c
  68f588a635357a5cb520c7708e945ba6  gcc/testsuite/gcc.dg/typedef-var-2.c
  44e859486a96c5bde24ac67ae73472fe  gcc/testsuite/gcc.dg/typename-vla-1.c
*************** b9d67dbc50419a82b76d70029936f329  gcc/te
*** 53731,53736 ****
--- 56877,56884 ----
  be649b157b87eeba210d9d645165264e  gcc/testsuite/gcc.dg/ubsan/bounds-4b.c
  1ea4ad045906d620d6176526b219ab28  gcc/testsuite/gcc.dg/ubsan/bounds-4c.c
  a59d627e0d28238dd1c0e6bc3e5d6038  gcc/testsuite/gcc.dg/ubsan/bounds-4d.c
+ 9d8486bfd55587a98086536de81520e2  gcc/testsuite/gcc.dg/ubsan/builtin-stdc-rotate-1.c
+ fe88440400d25b53198bcdc8fda196d5  gcc/testsuite/gcc.dg/ubsan/builtin-stdc-rotate-2.c
  2510a85977afe2ae638b3bb1920b690a  gcc/testsuite/gcc.dg/ubsan/c-shift-1.c
  577cc36a854722ee2c73da1a6a6e2322  gcc/testsuite/gcc.dg/ubsan/c-shift-2.c
  2dbfddf9f012a91eb07b3c83841941a1  gcc/testsuite/gcc.dg/ubsan/c99-shift-1.c
*************** e2c0ae3b7ed6cf4f7eed5c4ed76ee410  gcc/te
*** 53742,53747 ****
--- 56890,56899 ----
  acf0af3723cb1d2f1a5fe0dbbb7d9fa9  gcc/testsuite/gcc.dg/ubsan/c99-wrapv-shift-1.c
  24e57c18350248c3a31ee78f8f40e95b  gcc/testsuite/gcc.dg/ubsan/c99-wrapv-shift-2.c
  e4441e7485c1c8e740509a37f0c0bb14  gcc/testsuite/gcc.dg/ubsan/commutative-1.c
+ 0e78258070f4a00ed32a6b6143fddfaa  gcc/testsuite/gcc.dg/ubsan/flex-array-counted-by-bounds-2.c
+ 1f2963dd8e70eaac130aaf90bf69ce82  gcc/testsuite/gcc.dg/ubsan/flex-array-counted-by-bounds-3.c
+ 16cc959fa5049b30aef10c2caf823747  gcc/testsuite/gcc.dg/ubsan/flex-array-counted-by-bounds-4.c
+ ac4fa49ff290b556e7fe4f43ef84ecd3  gcc/testsuite/gcc.dg/ubsan/flex-array-counted-by-bounds.c
  7255cefa0dd234815e49556ae85bf1f6  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-atomic.c
  b6636fcf606d4b2a9b3c129b082bc808  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-bf.c
  84b9af4e3fdf6716cb2d43bb45b05d7a  gcc/testsuite/gcc.dg/ubsan/has-feature-ubsan.c
*************** f7352e346071f20c88b4cda3aefaf007  gcc/te
*** 53763,53787 ****
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
  796829af36eae05fda4a4c261de44807  gcc/testsuite/gcc.dg/ubsan/pr70878.c
  c98b82ff7f1f85d755a11f8e67042782  gcc/testsuite/gcc.dg/ubsan/pr78248.c
! 329e3233e12a8c23fe506f6d2ac80b09  gcc/testsuite/gcc.dg/ubsan/pr79757-1.c
! f43bd64838c05f16a3b8b68c99b8cda4  gcc/testsuite/gcc.dg/ubsan/pr79757-2.c
! 8835a10f98e16ef570dce99dde739630  gcc/testsuite/gcc.dg/ubsan/pr79757-3.c
  716dd7a81d0f893cd3970243d755b770  gcc/testsuite/gcc.dg/ubsan/pr79757-4.c
  bea7f326889c0a8fbd1c274d297acf07  gcc/testsuite/gcc.dg/ubsan/pr79757-5.c
  2490e0a26a6c9ada60fa4ffcd2711b0f  gcc/testsuite/gcc.dg/ubsan/pr79904-2.c
  7136fd1fd228fc47bb72427b1e651e05  gcc/testsuite/gcc.dg/ubsan/pr79904.c
  3037e107357a95ddd6b61dbb90af7fde  gcc/testsuite/gcc.dg/ubsan/pr80097.c
  6dd5a7b8f1dd237a95a0f42766ee64d9  gcc/testsuite/gcc.dg/ubsan/pr81162.c
! 2fb0588afada15c7de7ba10279ac119b  gcc/testsuite/gcc.dg/ubsan/pr81223.c
  bb206afd27601853bf04c68fdf6d7763  gcc/testsuite/gcc.dg/ubsan/pr81505.c
  313140a74f330a5c68bf78802afa5cab  gcc/testsuite/gcc.dg/ubsan/pr81981.c
  a03c3f43eab7504cac64b70f59c4026c  gcc/testsuite/gcc.dg/ubsan/pr82498.c
  e95ed112f0ea45770ff240c4770cd2c7  gcc/testsuite/gcc.dg/ubsan/pr83014.c
! 57be3b86af6986d32a0c953f61260905  gcc/testsuite/gcc.dg/ubsan/pr88234.c
  a6de1d906f46c35c2202d196fcbdba1a  gcc/testsuite/gcc.dg/ubsan/pr89284.c
  51557943b6a5571078dca811d526d7d8  gcc/testsuite/gcc.dg/ubsan/pr94423.c
  0f09425e087253b3e4d9360b845cfa01  gcc/testsuite/gcc.dg/ubsan/pr95810.c
! 1a382abb24efac308bfa27e32759a88b  gcc/testsuite/gcc.dg/ubsan/ubsan.exp
  ff1993364d91d08b560ce3b84092e86d  gcc/testsuite/gcc.dg/ucnid-1-utf8.c
  b749062a1214fdf6ba947d30bdf90f30  gcc/testsuite/gcc.dg/ucnid-1.c
  d1ef7efe2db207bd7f1420dda8d447eb  gcc/testsuite/gcc.dg/ucnid-10-utf8.c
--- 56915,56941 ----
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
  796829af36eae05fda4a4c261de44807  gcc/testsuite/gcc.dg/ubsan/pr70878.c
  c98b82ff7f1f85d755a11f8e67042782  gcc/testsuite/gcc.dg/ubsan/pr78248.c
! 6240b7a229e8f64d70b181d600f2b072  gcc/testsuite/gcc.dg/ubsan/pr79757-1.c
! 589306422f5ed5c10eee9199d5eaf985  gcc/testsuite/gcc.dg/ubsan/pr79757-2.c
! 4c42812f8d5bd7e7732302c9341af433  gcc/testsuite/gcc.dg/ubsan/pr79757-3.c
  716dd7a81d0f893cd3970243d755b770  gcc/testsuite/gcc.dg/ubsan/pr79757-4.c
  bea7f326889c0a8fbd1c274d297acf07  gcc/testsuite/gcc.dg/ubsan/pr79757-5.c
  2490e0a26a6c9ada60fa4ffcd2711b0f  gcc/testsuite/gcc.dg/ubsan/pr79904-2.c
  7136fd1fd228fc47bb72427b1e651e05  gcc/testsuite/gcc.dg/ubsan/pr79904.c
  3037e107357a95ddd6b61dbb90af7fde  gcc/testsuite/gcc.dg/ubsan/pr80097.c
  6dd5a7b8f1dd237a95a0f42766ee64d9  gcc/testsuite/gcc.dg/ubsan/pr81162.c
! 06d93596c4d6b81478bcb057ef7533f0  gcc/testsuite/gcc.dg/ubsan/pr81223.c
  bb206afd27601853bf04c68fdf6d7763  gcc/testsuite/gcc.dg/ubsan/pr81505.c
  313140a74f330a5c68bf78802afa5cab  gcc/testsuite/gcc.dg/ubsan/pr81981.c
  a03c3f43eab7504cac64b70f59c4026c  gcc/testsuite/gcc.dg/ubsan/pr82498.c
  e95ed112f0ea45770ff240c4770cd2c7  gcc/testsuite/gcc.dg/ubsan/pr83014.c
! 17140111ae1f82e04770b40c7b3940e3  gcc/testsuite/gcc.dg/ubsan/pr84508-1.c
! 3adff508c139dc28c5060d0ea72fc511  gcc/testsuite/gcc.dg/ubsan/pr84508-2.c
! 1a287d20bfb30e84a7cb9812b45b5931  gcc/testsuite/gcc.dg/ubsan/pr88234.c
  a6de1d906f46c35c2202d196fcbdba1a  gcc/testsuite/gcc.dg/ubsan/pr89284.c
  51557943b6a5571078dca811d526d7d8  gcc/testsuite/gcc.dg/ubsan/pr94423.c
  0f09425e087253b3e4d9360b845cfa01  gcc/testsuite/gcc.dg/ubsan/pr95810.c
! daffbecb0e44871c060fbe3be6d7d0ad  gcc/testsuite/gcc.dg/ubsan/ubsan.exp
  ff1993364d91d08b560ce3b84092e86d  gcc/testsuite/gcc.dg/ucnid-1-utf8.c
  b749062a1214fdf6ba947d30bdf90f30  gcc/testsuite/gcc.dg/ucnid-1.c
  d1ef7efe2db207bd7f1420dda8d447eb  gcc/testsuite/gcc.dg/ucnid-10-utf8.c
*************** bf3176e1016b72dff9f974a5eb66c4a5  gcc/te
*** 53816,53823 ****
  29b54033d99c2ea24dcf332874505ef9  gcc/testsuite/gcc.dg/unclosed-init.c
  7ae6ec0a00cfc8c6623bf6575c1ec67b  gcc/testsuite/gcc.dg/uninit-1-O0.c
  f0a8a0b26965879e40a88ebccf31030c  gcc/testsuite/gcc.dg/uninit-1.c
! d948217bdcbf04e6be3c8c997af053f7  gcc/testsuite/gcc.dg/uninit-10-O0.c
! 2efe604c8afc3ddbb3731d3111a1bee7  gcc/testsuite/gcc.dg/uninit-10.c
  3f2dae77e574f172f51dc413f9cf3f41  gcc/testsuite/gcc.dg/uninit-11-O0.c
  5a221168ab94209334a4364348dbd35c  gcc/testsuite/gcc.dg/uninit-11.c
  fce582880f3f69bc08ac08c1282958d5  gcc/testsuite/gcc.dg/uninit-12-O0.c
--- 56970,56977 ----
  29b54033d99c2ea24dcf332874505ef9  gcc/testsuite/gcc.dg/unclosed-init.c
  7ae6ec0a00cfc8c6623bf6575c1ec67b  gcc/testsuite/gcc.dg/uninit-1-O0.c
  f0a8a0b26965879e40a88ebccf31030c  gcc/testsuite/gcc.dg/uninit-1.c
! d7e36a9b2050e43289bb392070f5ee4b  gcc/testsuite/gcc.dg/uninit-10-O0.c
! 7b4336e06552f64c2e35a8a628a4ac33  gcc/testsuite/gcc.dg/uninit-10.c
  3f2dae77e574f172f51dc413f9cf3f41  gcc/testsuite/gcc.dg/uninit-11-O0.c
  5a221168ab94209334a4364348dbd35c  gcc/testsuite/gcc.dg/uninit-11.c
  fce582880f3f69bc08ac08c1282958d5  gcc/testsuite/gcc.dg/uninit-12-O0.c
*************** c922876a41270e2b7d520afcadf98137  gcc/te
*** 53850,53866 ****
  9f0fb0245ee08bf0f10f3a180e2006cd  gcc/testsuite/gcc.dg/uninit-3.c
  f05bb477355a674749c39b98ee57189d  gcc/testsuite/gcc.dg/uninit-30-gimple.c
  bac9a2766c0ebbc5a567c84b402b7416  gcc/testsuite/gcc.dg/uninit-31-gimple.c
! 37a02a92dfc7819552b85c44b4dd158c  gcc/testsuite/gcc.dg/uninit-32.c
  d75b083976771cb9c38cd60cc5154ac9  gcc/testsuite/gcc.dg/uninit-33.c
  fccc7811a06d6d5da7f7ed04f7c32a7a  gcc/testsuite/gcc.dg/uninit-34.c
! 81559462e484e756d6f876ab8caa7c8c  gcc/testsuite/gcc.dg/uninit-36.c
  5113c8378ecdf90b9b572d1e46700af1  gcc/testsuite/gcc.dg/uninit-37.c
! 975218493cd6b7ba6babd6de6307e208  gcc/testsuite/gcc.dg/uninit-38.c
! 2d0a12332c9eba4f2ccc1a3574a5b349  gcc/testsuite/gcc.dg/uninit-39.c
  d402693501768659493eedf82719cfb1  gcc/testsuite/gcc.dg/uninit-4-O0.c
  e36b0a4b14063baf6381118a03371e4a  gcc/testsuite/gcc.dg/uninit-4.c
  b05d71d08d674a7aa23d6c3602de81c4  gcc/testsuite/gcc.dg/uninit-40.c
! 9d75047cc7e79fd424790a58060efdc0  gcc/testsuite/gcc.dg/uninit-41.c
  fc7c324f83c457c76da426c4f7be0ef1  gcc/testsuite/gcc.dg/uninit-42.c
  d65c9c40149db2e0b97a0f8764da0100  gcc/testsuite/gcc.dg/uninit-5-O0.c
  22b2aa0a5ee17dd1d15ad96e2b2e69ff  gcc/testsuite/gcc.dg/uninit-5.c
--- 57004,57020 ----
  9f0fb0245ee08bf0f10f3a180e2006cd  gcc/testsuite/gcc.dg/uninit-3.c
  f05bb477355a674749c39b98ee57189d  gcc/testsuite/gcc.dg/uninit-30-gimple.c
  bac9a2766c0ebbc5a567c84b402b7416  gcc/testsuite/gcc.dg/uninit-31-gimple.c
! b01777e049ee352a8d5bc10c6dffd314  gcc/testsuite/gcc.dg/uninit-32.c
  d75b083976771cb9c38cd60cc5154ac9  gcc/testsuite/gcc.dg/uninit-33.c
  fccc7811a06d6d5da7f7ed04f7c32a7a  gcc/testsuite/gcc.dg/uninit-34.c
! d768eaf6d7797b595ec08654db5afae7  gcc/testsuite/gcc.dg/uninit-36.c
  5113c8378ecdf90b9b572d1e46700af1  gcc/testsuite/gcc.dg/uninit-37.c
! a14ff61dda7f58b03c57056a9e15048d  gcc/testsuite/gcc.dg/uninit-38.c
! df2b8c972e35e028a6dc7455d0470b93  gcc/testsuite/gcc.dg/uninit-39.c
  d402693501768659493eedf82719cfb1  gcc/testsuite/gcc.dg/uninit-4-O0.c
  e36b0a4b14063baf6381118a03371e4a  gcc/testsuite/gcc.dg/uninit-4.c
  b05d71d08d674a7aa23d6c3602de81c4  gcc/testsuite/gcc.dg/uninit-40.c
! 27797d983e392ad1d0638fb63d0ff7d0  gcc/testsuite/gcc.dg/uninit-41.c
  fc7c324f83c457c76da426c4f7be0ef1  gcc/testsuite/gcc.dg/uninit-42.c
  d65c9c40149db2e0b97a0f8764da0100  gcc/testsuite/gcc.dg/uninit-5-O0.c
  22b2aa0a5ee17dd1d15ad96e2b2e69ff  gcc/testsuite/gcc.dg/uninit-5.c
*************** a3d5c35b0bb42b2acb6a9b728cd4de1a  gcc/te
*** 53868,53877 ****
  be53a20324050dfff9f189dc7687cea9  gcc/testsuite/gcc.dg/uninit-6.c
  2e4cdaf71b511448b849dceb36adb62d  gcc/testsuite/gcc.dg/uninit-8-O0.c
  02fd8399336707a49596611f5e0d77ff  gcc/testsuite/gcc.dg/uninit-8.c
! 4724642051f5d5ab46d0cdb599404bf9  gcc/testsuite/gcc.dg/uninit-9-O0.c
! 7ee1be4b046d4b372c004f629fcef5a8  gcc/testsuite/gcc.dg/uninit-9.c
! fd99724547c38596c196ff0a3bb859a7  gcc/testsuite/gcc.dg/uninit-A-O0.c
! 16629fbf66db8d64116183c2cffefbb4  gcc/testsuite/gcc.dg/uninit-A.c
  163d793d1ac9395f05f7b2297a272248  gcc/testsuite/gcc.dg/uninit-B-2.c
  f7e5c194754cef44d76c931153b5e6ad  gcc/testsuite/gcc.dg/uninit-B-O0-2.c
  58d607e3f3aa5149fbdcf0290d056ebc  gcc/testsuite/gcc.dg/uninit-B-O0.c
--- 57022,57031 ----
  be53a20324050dfff9f189dc7687cea9  gcc/testsuite/gcc.dg/uninit-6.c
  2e4cdaf71b511448b849dceb36adb62d  gcc/testsuite/gcc.dg/uninit-8-O0.c
  02fd8399336707a49596611f5e0d77ff  gcc/testsuite/gcc.dg/uninit-8.c
! 0279b219791439f0c893f80c6b88ced0  gcc/testsuite/gcc.dg/uninit-9-O0.c
! 6ea00b5c511f3badb68b366c54f77cd0  gcc/testsuite/gcc.dg/uninit-9.c
! b220a3806aa39db9322c2076d4e465c8  gcc/testsuite/gcc.dg/uninit-A-O0.c
! 144d64f870fbf7faca24daccd57d0eee  gcc/testsuite/gcc.dg/uninit-A.c
  163d793d1ac9395f05f7b2297a272248  gcc/testsuite/gcc.dg/uninit-B-2.c
  f7e5c194754cef44d76c931153b5e6ad  gcc/testsuite/gcc.dg/uninit-B-O0-2.c
  58d607e3f3aa5149fbdcf0290d056ebc  gcc/testsuite/gcc.dg/uninit-B-O0.c
*************** c9e10adb185a3bbf40bb8e18c0127132  gcc/te
*** 53882,53891 ****
  eb3da821b8325355aae91cb8e079d6a4  gcc/testsuite/gcc.dg/uninit-H.c
  9d1bceafd31eb10b545bfa6239206c15  gcc/testsuite/gcc.dg/uninit-I-O0.c
  988c2fc57e3d496a9d761ee0eb2841e4  gcc/testsuite/gcc.dg/uninit-I.c
! b99f357470c6415b9844a4fe33db0606  gcc/testsuite/gcc.dg/uninit-pr100250.c
  b7c6bfc3bd2cba3afab2030ac56dd67e  gcc/testsuite/gcc.dg/uninit-pr100732.c
! 2519fc3bdcb9029abb613eae7d15ae75  gcc/testsuite/gcc.dg/uninit-pr101300.c
! bf768406434195e48962c188b55bf5c2  gcc/testsuite/gcc.dg/uninit-pr101494.c
  8200f01a2009070dab21c75f90bc9dbf  gcc/testsuite/gcc.dg/uninit-pr101573.c
  99336f8fa4f0c1df4f37104321b75db0  gcc/testsuite/gcc.dg/uninit-pr101912.c
  351fe7aa637f2e54aad00a82bf867c15  gcc/testsuite/gcc.dg/uninit-pr102403-c2.c
--- 57036,57045 ----
  eb3da821b8325355aae91cb8e079d6a4  gcc/testsuite/gcc.dg/uninit-H.c
  9d1bceafd31eb10b545bfa6239206c15  gcc/testsuite/gcc.dg/uninit-I-O0.c
  988c2fc57e3d496a9d761ee0eb2841e4  gcc/testsuite/gcc.dg/uninit-I.c
! 992406b7b2ed43033cb4281b050f9a49  gcc/testsuite/gcc.dg/uninit-pr100250.c
  b7c6bfc3bd2cba3afab2030ac56dd67e  gcc/testsuite/gcc.dg/uninit-pr100732.c
! 352b274fe683e390604538604ffd3060  gcc/testsuite/gcc.dg/uninit-pr101300.c
! c5f9aecbab3c8b767ecc17cc776c724d  gcc/testsuite/gcc.dg/uninit-pr101494.c
  8200f01a2009070dab21c75f90bc9dbf  gcc/testsuite/gcc.dg/uninit-pr101573.c
  99336f8fa4f0c1df4f37104321b75db0  gcc/testsuite/gcc.dg/uninit-pr101912.c
  351fe7aa637f2e54aad00a82bf867c15  gcc/testsuite/gcc.dg/uninit-pr102403-c2.c
*************** bc12979aeecbec0cc9fe92fcb51c30b9  gcc/te
*** 53932,53939 ****
  ec22e39e2b160e6444e03b5dcacc93f3  gcc/testsuite/gcc.dg/uninit-pr90394.c
  0ac3bcf2d2904961cbe72908ca5ed67a  gcc/testsuite/gcc.dg/uninit-pr93100.c
  2e37ae395e46a8e8e62921557b5db451  gcc/testsuite/gcc.dg/uninit-pr95136.c
! cb4477c93eddb2c98e8db3799ef9a8d3  gcc/testsuite/gcc.dg/uninit-pr98578.c
! d33bce997dea4f74cbb227675f6ec7b7  gcc/testsuite/gcc.dg/uninit-pr98583.c
  4d968f2db69dec7e5f880146576fc801  gcc/testsuite/gcc.dg/uninit-pred-10.c
  1c6a6934369db3cfac321448a75a0f01  gcc/testsuite/gcc.dg/uninit-pred-11.c
  ba0a14121a9b141b05ad92194338f663  gcc/testsuite/gcc.dg/uninit-pred-12.c
--- 57086,57093 ----
  ec22e39e2b160e6444e03b5dcacc93f3  gcc/testsuite/gcc.dg/uninit-pr90394.c
  0ac3bcf2d2904961cbe72908ca5ed67a  gcc/testsuite/gcc.dg/uninit-pr93100.c
  2e37ae395e46a8e8e62921557b5db451  gcc/testsuite/gcc.dg/uninit-pr95136.c
! b9a90a31f9367e9fca92ba238b6fe065  gcc/testsuite/gcc.dg/uninit-pr98578.c
! 776c442039a1091c603d900bd9f272bf  gcc/testsuite/gcc.dg/uninit-pr98583.c
  4d968f2db69dec7e5f880146576fc801  gcc/testsuite/gcc.dg/uninit-pred-10.c
  1c6a6934369db3cfac321448a75a0f01  gcc/testsuite/gcc.dg/uninit-pred-11.c
  ba0a14121a9b141b05ad92194338f663  gcc/testsuite/gcc.dg/uninit-pred-12.c
*************** ba0a14121a9b141b05ad92194338f663  gcc/te
*** 53942,53949 ****
  dc20b95e0c82e7593d7e562b3b1e5aaf  gcc/testsuite/gcc.dg/uninit-pred-2_c.c
  f52da0bcd8761c99fbf0f18ed6edd390  gcc/testsuite/gcc.dg/uninit-pred-3_a.c
  24e4605c178260566cd06929019e44e8  gcc/testsuite/gcc.dg/uninit-pred-3_b.c
! f37c7291bac570ea8044c05c722a21a2  gcc/testsuite/gcc.dg/uninit-pred-3_c.c
! 80873fd914c22015b2ba202b83144563  gcc/testsuite/gcc.dg/uninit-pred-3_d.c
  aa14110ecc395de66a25360137b0a91e  gcc/testsuite/gcc.dg/uninit-pred-3_e.c
  b3843a2513b466693086c1dc3e1ed81f  gcc/testsuite/gcc.dg/uninit-pred-4_a.c
  ccceef32b29730b07601ab91c0237e7e  gcc/testsuite/gcc.dg/uninit-pred-4_b.c
--- 57096,57103 ----
  dc20b95e0c82e7593d7e562b3b1e5aaf  gcc/testsuite/gcc.dg/uninit-pred-2_c.c
  f52da0bcd8761c99fbf0f18ed6edd390  gcc/testsuite/gcc.dg/uninit-pred-3_a.c
  24e4605c178260566cd06929019e44e8  gcc/testsuite/gcc.dg/uninit-pred-3_b.c
! 7b4b76a2d7b2709787b1bef26c51c5bf  gcc/testsuite/gcc.dg/uninit-pred-3_c.c
! 0f3372ab7f7d2a362adc7990dd269c6d  gcc/testsuite/gcc.dg/uninit-pred-3_d.c
  aa14110ecc395de66a25360137b0a91e  gcc/testsuite/gcc.dg/uninit-pred-3_e.c
  b3843a2513b466693086c1dc3e1ed81f  gcc/testsuite/gcc.dg/uninit-pred-4_a.c
  ccceef32b29730b07601ab91c0237e7e  gcc/testsuite/gcc.dg/uninit-pred-4_b.c
*************** b1481603f0fc03920239ad401f62f53f  gcc/te
*** 53986,53998 ****
  0fe28f993ccec2f06e4a9c2105b2021d  gcc/testsuite/gcc.dg/unroll-3.c
  777660e2dc9d12a9acab7df76238ac98  gcc/testsuite/gcc.dg/unroll-4.c
  bbf8c4c829c8bcd063d7b3b3bfd5af9b  gcc/testsuite/gcc.dg/unroll-5.c
! ecd5578b9de117c722ef7ea3a8f8394a  gcc/testsuite/gcc.dg/unroll-6.c
  da74da10d2ceaed8ef8b6560bb599dd2  gcc/testsuite/gcc.dg/unroll-7.c
! 4dfea4679ec70ce494ad2177be6be05c  gcc/testsuite/gcc.dg/unroll-8.c
  a0a496a7280c881b5951e833f694ac32  gcc/testsuite/gcc.dg/unroll-9.c
  47ae2c5d29560d4618b97c02b8cb064d  gcc/testsuite/gcc.dg/unroll-and-jam.c
  99b212e0df5c61c48b3f2593a23414cc  gcc/testsuite/gcc.dg/unsigned-long-compare.c
! aa7c265797a6b0a2b548e25a531baf92  gcc/testsuite/gcc.dg/unused-1.c
  8ba0a7c993176dd2077bdae924adddc8  gcc/testsuite/gcc.dg/unused-2.c
  f9a554fce2ce83ef2a4777f2c9f119f3  gcc/testsuite/gcc.dg/unused-3.c
  09d0e252a6e319cb4dc77070e2f64f86  gcc/testsuite/gcc.dg/unused-4.c
--- 57140,57152 ----
  0fe28f993ccec2f06e4a9c2105b2021d  gcc/testsuite/gcc.dg/unroll-3.c
  777660e2dc9d12a9acab7df76238ac98  gcc/testsuite/gcc.dg/unroll-4.c
  bbf8c4c829c8bcd063d7b3b3bfd5af9b  gcc/testsuite/gcc.dg/unroll-5.c
! 6abc3e1026cf9568c84fd1e00a259808  gcc/testsuite/gcc.dg/unroll-6.c
  da74da10d2ceaed8ef8b6560bb599dd2  gcc/testsuite/gcc.dg/unroll-7.c
! f031ce33a728e92f7cfa8485e1556023  gcc/testsuite/gcc.dg/unroll-8.c
  a0a496a7280c881b5951e833f694ac32  gcc/testsuite/gcc.dg/unroll-9.c
  47ae2c5d29560d4618b97c02b8cb064d  gcc/testsuite/gcc.dg/unroll-and-jam.c
  99b212e0df5c61c48b3f2593a23414cc  gcc/testsuite/gcc.dg/unsigned-long-compare.c
! 92c65543dbfac25c5f3ab005baac793d  gcc/testsuite/gcc.dg/unused-1.c
  8ba0a7c993176dd2077bdae924adddc8  gcc/testsuite/gcc.dg/unused-2.c
  f9a554fce2ce83ef2a4777f2c9f119f3  gcc/testsuite/gcc.dg/unused-3.c
  09d0e252a6e319cb4dc77070e2f64f86  gcc/testsuite/gcc.dg/unused-4.c
*************** e8e769594ecb4c46b9e4dc9ee72c38c8  gcc/te
*** 54036,54052 ****
  12406455e1864654fd4a3841f210d9b0  gcc/testsuite/gcc.dg/va-arg-pack-2.c
  f011a571e18d4d7047742771716bed58  gcc/testsuite/gcc.dg/va-arg-pack-len-1.c
  f8641f484320b6413dce61ad27e48f86  gcc/testsuite/gcc.dg/va-arg-pack-len-2.c
! 8aaa954be03aa7b92dd9ba48059b992e  gcc/testsuite/gcc.dg/var-expand1.c
  c89f320f0f14a7fa8638f6b38a20ed26  gcc/testsuite/gcc.dg/var-expand2.c
  97f4fb5030de62782435a2d1279c4e81  gcc/testsuite/gcc.dg/var-expand3.c
! 69a1c3531ab884c6c7e1fbc875e956bc  gcc/testsuite/gcc.dg/variable-sized-type-flex-array.c
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
  6830ebc59ec37676c0ffa608cbbf0dbf  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
  7f512dc347a6a290aad93ca27e40d3cf  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
  810b6c567d5cc65ed09e5f629749c726  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! 183515b6b5583f78b5502c04fc795b95  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
  0ab6a3fe4028fa52387afcf07048d42b  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
  0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
  f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
--- 57190,57207 ----
  12406455e1864654fd4a3841f210d9b0  gcc/testsuite/gcc.dg/va-arg-pack-2.c
  f011a571e18d4d7047742771716bed58  gcc/testsuite/gcc.dg/va-arg-pack-len-1.c
  f8641f484320b6413dce61ad27e48f86  gcc/testsuite/gcc.dg/va-arg-pack-len-2.c
! 6cb7d5be51857ad99a5e346e517d7417  gcc/testsuite/gcc.dg/var-expand1.c
  c89f320f0f14a7fa8638f6b38a20ed26  gcc/testsuite/gcc.dg/var-expand2.c
  97f4fb5030de62782435a2d1279c4e81  gcc/testsuite/gcc.dg/var-expand3.c
! c07b9d4e3ca9cf5bb3e5b307145e90ff  gcc/testsuite/gcc.dg/variable-sized-type-flex-array.c
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
+ 676e89c6b3d0e18d0a9ec4b5f95072e9  gcc/testsuite/gcc.dg/vec-perm-lower.c
  f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
  6830ebc59ec37676c0ffa608cbbf0dbf  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
  7f512dc347a6a290aad93ca27e40d3cf  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
  810b6c567d5cc65ed09e5f629749c726  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! 9f70d133cf0f8ca01ddfad668acea211  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
  0ab6a3fe4028fa52387afcf07048d42b  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
  0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
  f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
*************** bcb7eec8c06f22a1f83f8d5ba0e3b5ce  gcc/te
*** 54087,54093 ****
  ef73926f06ee885b1e602103a90f3aa5  gcc/testsuite/gcc.dg/vect/bb-slp-3.c
  f721b1c058f629b7e0d63be91a2b9a48  gcc/testsuite/gcc.dg/vect/bb-slp-30.c
  e227798a6ceabae26034233f900b8049  gcc/testsuite/gcc.dg/vect/bb-slp-31.c
! fdbfc95dbb75eaffcf3b6f077cff8ecc  gcc/testsuite/gcc.dg/vect/bb-slp-32.c
  9672256c5afd24077facb2fc570376d2  gcc/testsuite/gcc.dg/vect/bb-slp-33.c
  396aef8acf5cc6413bb922a950d3eda5  gcc/testsuite/gcc.dg/vect/bb-slp-34.c
  9d3c4162fa90a93c0d7aa208388789b3  gcc/testsuite/gcc.dg/vect/bb-slp-35.c
--- 57242,57248 ----
  ef73926f06ee885b1e602103a90f3aa5  gcc/testsuite/gcc.dg/vect/bb-slp-3.c
  f721b1c058f629b7e0d63be91a2b9a48  gcc/testsuite/gcc.dg/vect/bb-slp-30.c
  e227798a6ceabae26034233f900b8049  gcc/testsuite/gcc.dg/vect/bb-slp-31.c
! f270872fadd92760313d996e3897ae0d  gcc/testsuite/gcc.dg/vect/bb-slp-32.c
  9672256c5afd24077facb2fc570376d2  gcc/testsuite/gcc.dg/vect/bb-slp-33.c
  396aef8acf5cc6413bb922a950d3eda5  gcc/testsuite/gcc.dg/vect/bb-slp-34.c
  9d3c4162fa90a93c0d7aa208388789b3  gcc/testsuite/gcc.dg/vect/bb-slp-35.c
*************** d9b82f24ec441bd4ed9946db9792733c  gcc/te
*** 54097,54103 ****
  9a6ae4d79a0aa4df13f4774657d827d5  gcc/testsuite/gcc.dg/vect/bb-slp-39.c
  2d3a915ced26b6be766341dc7de50ad8  gcc/testsuite/gcc.dg/vect/bb-slp-4.c
  094d2618b84be18ada044275f13cbf29  gcc/testsuite/gcc.dg/vect/bb-slp-40.c
! e32567a5dc4b945280cd4527bf1666a5  gcc/testsuite/gcc.dg/vect/bb-slp-41.c
  e4c676f0a43dacdd2f4d419df5741c50  gcc/testsuite/gcc.dg/vect/bb-slp-42.c
  c0131afc365e0cb0b19e85366ef89e76  gcc/testsuite/gcc.dg/vect/bb-slp-43.c
  b9ca35cc9a57c4edabbac114d77a55d3  gcc/testsuite/gcc.dg/vect/bb-slp-44.c
--- 57252,57258 ----
  9a6ae4d79a0aa4df13f4774657d827d5  gcc/testsuite/gcc.dg/vect/bb-slp-39.c
  2d3a915ced26b6be766341dc7de50ad8  gcc/testsuite/gcc.dg/vect/bb-slp-4.c
  094d2618b84be18ada044275f13cbf29  gcc/testsuite/gcc.dg/vect/bb-slp-40.c
! 1a8c85485adbd610681c731a9fe4b821  gcc/testsuite/gcc.dg/vect/bb-slp-41.c
  e4c676f0a43dacdd2f4d419df5741c50  gcc/testsuite/gcc.dg/vect/bb-slp-42.c
  c0131afc365e0cb0b19e85366ef89e76  gcc/testsuite/gcc.dg/vect/bb-slp-43.c
  b9ca35cc9a57c4edabbac114d77a55d3  gcc/testsuite/gcc.dg/vect/bb-slp-44.c
*************** b9ca35cc9a57c4edabbac114d77a55d3  gcc/te
*** 54105,54111 ****
  0f0ac3c75f180d29787151576fcf17ed  gcc/testsuite/gcc.dg/vect/bb-slp-46.c
  b25bae04c395a5c7d339456cd3566a64  gcc/testsuite/gcc.dg/vect/bb-slp-47.c
  630584f8240422cfa4661e71dc81f951  gcc/testsuite/gcc.dg/vect/bb-slp-48.c
! c03e6ccbd759364f47f750471f0748c5  gcc/testsuite/gcc.dg/vect/bb-slp-49.c
  d55cef8c0f365042f46b526db7b28a0f  gcc/testsuite/gcc.dg/vect/bb-slp-5.c
  5e70d2850c3effa51658fd1c56eb4e50  gcc/testsuite/gcc.dg/vect/bb-slp-50.c
  9919992bfa99d0619545cb8495968997  gcc/testsuite/gcc.dg/vect/bb-slp-51.c
--- 57260,57266 ----
  0f0ac3c75f180d29787151576fcf17ed  gcc/testsuite/gcc.dg/vect/bb-slp-46.c
  b25bae04c395a5c7d339456cd3566a64  gcc/testsuite/gcc.dg/vect/bb-slp-47.c
  630584f8240422cfa4661e71dc81f951  gcc/testsuite/gcc.dg/vect/bb-slp-48.c
! 472eb29aace1bbabb1933f0c7d41d1e4  gcc/testsuite/gcc.dg/vect/bb-slp-49.c
  d55cef8c0f365042f46b526db7b28a0f  gcc/testsuite/gcc.dg/vect/bb-slp-5.c
  5e70d2850c3effa51658fd1c56eb4e50  gcc/testsuite/gcc.dg/vect/bb-slp-50.c
  9919992bfa99d0619545cb8495968997  gcc/testsuite/gcc.dg/vect/bb-slp-51.c
*************** e07b4d2c5c7b96559385582969530695  gcc/te
*** 54135,54146 ****
--- 57290,57304 ----
  242e51e0af6a2017cbc1d4ab66f9f45f  gcc/testsuite/gcc.dg/vect/bb-slp-73.c
  2d7bec17f0cdc931d95b17fa6eb9509e  gcc/testsuite/gcc.dg/vect/bb-slp-74.c
  963ec162e1d10c7045e406c8a77a9913  gcc/testsuite/gcc.dg/vect/bb-slp-75.c
+ 9463beefba24c0bcb4f9e85ae30a94d4  gcc/testsuite/gcc.dg/vect/bb-slp-76.c
+ 3fde7feb6a761db2cd0990180dd88350  gcc/testsuite/gcc.dg/vect/bb-slp-77.c
  e25a8f3320f641e5055cfc1e0a955c40  gcc/testsuite/gcc.dg/vect/bb-slp-8.c
  9f7711e0c82ad69b17839e734862f539  gcc/testsuite/gcc.dg/vect/bb-slp-8a.c
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
  b139bc8a7ebad29213bbf02c0f22f632  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
+ b2a7701b9eeacd6cecdcda7c9036129a  gcc/testsuite/gcc.dg/vect/bb-slp-conditional_store_1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
  4e9145a07928809fe075b3bb341ee40f  gcc/testsuite/gcc.dg/vect/bb-slp-layout-1.c
*************** c8ed8e9e4250f08b918c56bfef4b7a7f  gcc/te
*** 54152,54158 ****
  88487b31ffeb949303792ef3923ad196  gcc/testsuite/gcc.dg/vect/bb-slp-layout-15.c
  0e8f57e36bc8448e80035b833a363fe7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-16.c
  43e9ffb9410d050942d09e445ee46ffa  gcc/testsuite/gcc.dg/vect/bb-slp-layout-17.c
! 3afdb69243343b45ef93e502063ebf7e  gcc/testsuite/gcc.dg/vect/bb-slp-layout-18.c
  f5ab06f78f896f3a5f8c5603e80a4eb5  gcc/testsuite/gcc.dg/vect/bb-slp-layout-19.c
  55c6129299ee94434b97edc3312d1563  gcc/testsuite/gcc.dg/vect/bb-slp-layout-2.c
  9e1acf425f12a0a63d6844e356ebdb18  gcc/testsuite/gcc.dg/vect/bb-slp-layout-20.c
--- 57310,57316 ----
  88487b31ffeb949303792ef3923ad196  gcc/testsuite/gcc.dg/vect/bb-slp-layout-15.c
  0e8f57e36bc8448e80035b833a363fe7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-16.c
  43e9ffb9410d050942d09e445ee46ffa  gcc/testsuite/gcc.dg/vect/bb-slp-layout-17.c
! c6466d3edd4f74f026eed3f8a09d1fa2  gcc/testsuite/gcc.dg/vect/bb-slp-layout-18.c
  f5ab06f78f896f3a5f8c5603e80a4eb5  gcc/testsuite/gcc.dg/vect/bb-slp-layout-19.c
  55c6129299ee94434b97edc3312d1563  gcc/testsuite/gcc.dg/vect/bb-slp-layout-2.c
  9e1acf425f12a0a63d6844e356ebdb18  gcc/testsuite/gcc.dg/vect/bb-slp-layout-20.c
*************** cf1f520661c5242475d0a36f640664dd  gcc/te
*** 54180,54190 ****
  5295b6a2a7e93bc6dfe10ebdd01406b8  gcc/testsuite/gcc.dg/vect/bb-slp-pr103800.c
  be86bc81622216478087ebb0eb3b5c80  gcc/testsuite/gcc.dg/vect/bb-slp-pr104240.c
  272eb771300120bc0b0190d7c82879d6  gcc/testsuite/gcc.dg/vect/bb-slp-pr106019.c
! 00f1be9b86dce90d7976ec4c31c71677  gcc/testsuite/gcc.dg/vect/bb-slp-pr114249.c
  70f6ab93795e7362efbb766199500951  gcc/testsuite/gcc.dg/vect/bb-slp-pr114799.c
! ab672ba1427b5d98b02782a1e721a08a  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
! 95f7751605c95143bf8206010e40b12c  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
  d2715cffa6c80881dfd3b2948121dc3b  gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
  1d3aaf7003b6ad6834ed135c4c749cac  gcc/testsuite/gcc.dg/vect/bb-slp-pr78205.c
  7bde18f16db8ba76291d8ca502888f3e  gcc/testsuite/gcc.dg/vect/bb-slp-pr80705.c
--- 57338,57349 ----
  5295b6a2a7e93bc6dfe10ebdd01406b8  gcc/testsuite/gcc.dg/vect/bb-slp-pr103800.c
  be86bc81622216478087ebb0eb3b5c80  gcc/testsuite/gcc.dg/vect/bb-slp-pr104240.c
  272eb771300120bc0b0190d7c82879d6  gcc/testsuite/gcc.dg/vect/bb-slp-pr106019.c
! 69bc1904ec983301921e4284e77813fb  gcc/testsuite/gcc.dg/vect/bb-slp-pr114249.c
! 2e8ef919adf71384d818b8d001167e81  gcc/testsuite/gcc.dg/vect/bb-slp-pr114435.c
  70f6ab93795e7362efbb766199500951  gcc/testsuite/gcc.dg/vect/bb-slp-pr114799.c
! d46400927215059ca9b31c5b97f6e386  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
! 7e19c3d3a663aa66906a8c708aec1d4e  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
  d2715cffa6c80881dfd3b2948121dc3b  gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
  1d3aaf7003b6ad6834ed135c4c749cac  gcc/testsuite/gcc.dg/vect/bb-slp-pr78205.c
  7bde18f16db8ba76291d8ca502888f3e  gcc/testsuite/gcc.dg/vect/bb-slp-pr80705.c
*************** aa200d631e463383770f6f717838c251  gcc/te
*** 54201,54207 ****
  8957826e0fd28b8a7bc79629f31136a2  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-v8.c
  1b6aa1f8965209359c259bb620d3e355  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839.c
  eaa743aab9bdd479cfc9a5a33dfc917f  gcc/testsuite/gcc.dg/vect/bb-slp-pr95866.c
! d96c37dc33c7e1aca31487e5caf1fa33  gcc/testsuite/gcc.dg/vect/bb-slp-pr97486.c
  e7425206869b10684b25feb8565feaf5  gcc/testsuite/gcc.dg/vect/bb-slp-pr97496.c
  ab2962fd8f373b0a0c8d0860a206f028  gcc/testsuite/gcc.dg/vect/bb-slp-pr97615.c
  9f704cd3dfe58064deca38030e69cddd  gcc/testsuite/gcc.dg/vect/bb-slp-pr97626.c
--- 57360,57366 ----
  8957826e0fd28b8a7bc79629f31136a2  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-v8.c
  1b6aa1f8965209359c259bb620d3e355  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839.c
  eaa743aab9bdd479cfc9a5a33dfc917f  gcc/testsuite/gcc.dg/vect/bb-slp-pr95866.c
! b46870538ab6b2f3e70eca0d4b07ca72  gcc/testsuite/gcc.dg/vect/bb-slp-pr97486.c
  e7425206869b10684b25feb8565feaf5  gcc/testsuite/gcc.dg/vect/bb-slp-pr97496.c
  ab2962fd8f373b0a0c8d0860a206f028  gcc/testsuite/gcc.dg/vect/bb-slp-pr97615.c
  9f704cd3dfe58064deca38030e69cddd  gcc/testsuite/gcc.dg/vect/bb-slp-pr97626.c
*************** e49ed0be3bc897c4046ed5bef93a1b9d  gcc/te
*** 54217,54225 ****
  ce6f3b76b7f5757740b1751047c0460e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98544.c
  30c741c1a917278da82b36e7d0917343  gcc/testsuite/gcc.dg/vect/bb-slp-pr98685.c
  61b5bdbfdffd17b15f9ffe274ebb887e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98854.c
! 10cb228990c580565b76c9c992b9e55f  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
! 96b561810ea80aa1fa1c71407a583bbf  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
! 8f9c23a104fcdabcb880e18a797db46f  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
  303f98baa99ca71b360bb5b490edf989  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  4de1e012f6eb5ea19ca369f6fcf4e1c5  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  211bc477e9c121e47269e80a88557f74  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
--- 57376,57384 ----
  ce6f3b76b7f5757740b1751047c0460e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98544.c
  30c741c1a917278da82b36e7d0917343  gcc/testsuite/gcc.dg/vect/bb-slp-pr98685.c
  61b5bdbfdffd17b15f9ffe274ebb887e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98854.c
! 9d6a9459aa3801194418e6facab73b4c  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
! 11810aa5a9fd50609553a0f8341084cc  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
! e9a7f92621e123a2f43bd6eb8a377ec4  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
  303f98baa99ca71b360bb5b490edf989  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  4de1e012f6eb5ea19ca369f6fcf4e1c5  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  211bc477e9c121e47269e80a88557f74  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
*************** b6ce92f01b0a8720a15a8af7995a1dde  gcc/te
*** 54231,54269 ****
  53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
  d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
  62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 8311196139150cb01f5bd481b88ab9db  gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c
  b663bc81b4270defc2534ee4b697c313  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
! 916f779a44b0b86093ec3b21fa42d186  gcc/testsuite/gcc.dg/vect/complex/complex.exp
! 6731d6a4275dee04a68d8a15040dbf9d  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
! e7e998e227aa0d1f54e5abb40415b355  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
! 315119e00b97000fb6f371f5ae9b2515  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
! 1348c7c393221492d645b88dd87e4c90  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
! 37c05e5942cf108df1659e4ccfbe29c4  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
! 511f2255c03b2993d7e76739c0890a7d  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
! 092651583077a4d3f14105ecd53b0042  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
! 0532e123a1e9bee598bcc9fe42fb8b7f  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
! 071e3059211d80112c0ec46775e51fb0  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
! 73c2928db61885a9710f725c7eca4cf3  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
! b125fd3af935d5cc8ec4d8330aefa9d8  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
! f625432e6319d231e8b25325f3b636c2  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
! 04c2b7329d6c8e7bf861f74e0c5255b4  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
! f364b6fd72c7c2b91e119829fcc3d492  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
! c8c88ecb3145b5ae379a4eaf565e7867  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
! 6701638eb7c412a219993a3e49351040  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
! dc9ce49dcc6631e2eda8610ab7dcb050  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
! ea6ecb8eb1c4807fafaeef993ad9104f  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
! 17681470257f21a1741d290027ee6320  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
! 02549823c408c283a8ff6eeb91e102ae  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
! 13f53490d24bc0b038b9cdc4de9616b5  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
! 7c5f3f1180d421a5ac299c84526ea6d2  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
! 323cabdbf2c12f8d5d69a4250f10d17e  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
! 9c372bfd4e5a508d067815909d5f9d55  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
! 25abb662796a29992142f21fc0d3d9f3  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
! d3819ea23183eca5ea9920fd474335c8  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! a38981c4525e7d12ba2b0d45a3236eb0  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
! 203e39f86592c0300fdd78e06d9dee68  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
! f00ea04f68192109f0a5aaa6a35ce073  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
! 0943cd3b1d1f46db937e77679a2b9a76  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
  4e1876202a0dc92b35499bdd138583d4  gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c
  ccf39ed31245c0fb65f9c01c6e5d3b84  gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c
  225c29797a1db0d4d58b8bd12cfee997  gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c
--- 57390,57428 ----
  53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
  d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
  62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 470ca12a06e049b67c0f0a2ed5f247ba  gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c
  b663bc81b4270defc2534ee4b697c313  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
! bcab411363bc3c2ec903bc891c30b398  gcc/testsuite/gcc.dg/vect/complex/complex.exp
! a76ed3fa83075708a8c8ca971851a15c  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
! 7be020080f4e1fba58302662aded989c  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
! 4b101006c125328da509c4621235cfe8  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
! 12811b14206a0bc3fb6883b9f1a9d64c  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
! 61afd334b67ed0e9204611eb19f049e6  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
! 30996165770d1e464d336c0453c75d46  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
! be69beba870ab0e8027df3a96e1e3a99  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
! a2b6574b490bdeae547c7c3d79c95eed  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
! e6ed633ce5b9dd865e9fc962d22da102  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
! fa9e975179c7549630562771c7beb477  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
! 696fb756ddff68598ae74b6574bf930a  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
! 050920b1fc9581d8cd9ddee0f4158b74  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
! 63d0650eadca149641643cc10372f0dc  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
! 7872d9eb2f30f8baf7e42f5ccc6980ad  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
! 64f3ca28664252739fcd4fa9136596a2  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
! 8c64b0666661f6ae1b4cfb4cf3e82898  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
! b2c3499f4186410aeeff6f6cede61415  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
! 62950589a8262d0963e348d9ada2a0c4  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
! 886114dd6a98d1bb195f9a1fcd692698  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
! 9968c9870658e1b3b3b767e55be9de23  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
! 3490bbdc29cb6767651d51c38a2bc8e2  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
! df707465bb7e4b000207abad1e61b5e2  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
! 8b50a783b711fe688d16139298fd6541  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
! 00ebbce7dff85c1103b133cb02ef7fc7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
! 005c2fcc6a33e2f2e3160f2d41f80ea9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
! 59528ce01adb89a3254370b6e4775877  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! 27913b4773f2c29692c33dfc232be411  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
! be8d0bd6699017c7caaca7b550b1ffbe  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
! 12056b4bb025a055ab0b31784ca370c7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
! 4f0b37f5423ec8aff3036781000b82e0  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
  4e1876202a0dc92b35499bdd138583d4  gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c
  ccf39ed31245c0fb65f9c01c6e5d3b84  gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c
  225c29797a1db0d4d58b8bd12cfee997  gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c
*************** f69c055c238cc0217c98e86380f16061  gcc/te
*** 54287,54303 ****
  68ed88a7ee41dc1a8fca3bc8ec542481  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c
  d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c
! 51c62c55c5daf02981cf043a21ef7100  gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
  f8de521e4a7696891de446aa77201098  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
  ffaf8702a4fc3b142c8b1a931c153dae  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
  d25dc6b156dd43d1cf5e1224a3abb151  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c
  bd8562e8bd66700ee1114f70cbcff47e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
  701712fb8c0a5cde45da4e717a40d128  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr82255.c
! 9827509fe791a6b88ed3a3ca38b45452  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
  04ec9e0fd7bc2b2c6198872b427ef868  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
  a7ef9b09736d5268582e03e325fb4c0e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c
! 06d3056e1427780a6eefeb04e46c9d75  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-perm.c
! 4acd308681557af0328a5142deef7a13  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
  de30f3eabad1cf84463b710042eda400  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c
  ba0b890ead9d4d35a8e44d0233adf9d0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c
  5a20fba979e5232490465f39d0999cce  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c
--- 57446,57462 ----
  68ed88a7ee41dc1a8fca3bc8ec542481  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c
  d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c
! 3a9c0d0f2abcbaeca9667d5416d65e18  gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
  f8de521e4a7696891de446aa77201098  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
  ffaf8702a4fc3b142c8b1a931c153dae  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
  d25dc6b156dd43d1cf5e1224a3abb151  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c
  bd8562e8bd66700ee1114f70cbcff47e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
  701712fb8c0a5cde45da4e717a40d128  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr82255.c
! 9f9c0cd21c77281670c9917b31636e20  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
  04ec9e0fd7bc2b2c6198872b427ef868  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
  a7ef9b09736d5268582e03e325fb4c0e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c
! c10ec3a51027fc6e003d9d7dea6988f2  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-perm.c
! cbb69651190ec00fb6e6912b63431431  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
  de30f3eabad1cf84463b710042eda400  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c
  ba0b890ead9d4d35a8e44d0233adf9d0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c
  5a20fba979e5232490465f39d0999cce  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c
*************** ac3c274084d6cffb78c0d5b0c713ca72  gcc/te
*** 54305,54321 ****
  3cc04b136b20283d7a402d2e850ac828  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c
  27e6237092f2d011b2a932d043d8b6a0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c
  cd6dac5446d775a94427ecba358d9e79  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c
! af69da60c75fc05307db5a9f16132234  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
  7ce92e67cc41a9fa641936f19bf89557  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c
  ec3e92d6a56ed9bbb8ea844dbde1d2b9  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
  a0cfa86bcfadab7dd7bfdc45d44a30ee  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c
! 90fb8f79fb461586d6b7e23b55597db5  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reversed.c
  e1b075d9714c149d8fa498d1a3e56a74  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-1.c
! 823b27856ffd2c40c6cd8775afdd3c05  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-2.c
! 92ff423ccc3c0ac014d4b942b69412b6  gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp
  ffed8206bd469b10d2db7829601a2692  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-1.c
  70bc5e51fe11d28e20adb9352ecf30ab  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-2.c
! 338790618c8bbb3225c024dd8e7a5e32  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-3.c
  f7d1fb8d27ab4cf9ffae02496420b8e4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
  7093493362da3124990a5386cf336c39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
  00f1dae11dc8850a3053baf14814022c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
--- 57464,57480 ----
  3cc04b136b20283d7a402d2e850ac828  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c
  27e6237092f2d011b2a932d043d8b6a0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c
  cd6dac5446d775a94427ecba358d9e79  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c
! a1798c5208e0a089cd05ec4f628b8d60  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
  7ce92e67cc41a9fa641936f19bf89557  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c
  ec3e92d6a56ed9bbb8ea844dbde1d2b9  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
  a0cfa86bcfadab7dd7bfdc45d44a30ee  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c
! 8c35df5688cef8d95899b03ebb1556ca  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reversed.c
  e1b075d9714c149d8fa498d1a3e56a74  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-1.c
! 0b617fa0adb230a5a88869749291ba25  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-2.c
! 3eff3f6555f70842174a42ece1ea8342  gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp
  ffed8206bd469b10d2db7829601a2692  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-1.c
  70bc5e51fe11d28e20adb9352ecf30ab  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-2.c
! 7815d3d770ae8887f51449368359e214  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-3.c
  f7d1fb8d27ab4cf9ffae02496420b8e4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
  7093493362da3124990a5386cf336c39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
  00f1dae11dc8850a3053baf14814022c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
*************** f7f23f70f7826df3a05a318bd5e632da  gcc/te
*** 54330,54336 ****
  930465eeb7e560d0f535260f49bba793  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
  093cd2208575e614a596f2a401b7b63c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
  ae492c945415066b7a6a35db28cdd97c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
! f6d8d6158ac4d829ae424254112a3905  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c
  33da4b564d716b519f2a81711ec187f6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
  0184053a2d211ba6aed4daa5105bdda3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-10.c
  f2317f19938996a698ef438051827fa8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-11.c
--- 57489,57495 ----
  930465eeb7e560d0f535260f49bba793  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
  093cd2208575e614a596f2a401b7b63c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
  ae492c945415066b7a6a35db28cdd97c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
! 03d3a73460fe6c5471e224e8912896f4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c
  33da4b564d716b519f2a81711ec187f6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
  0184053a2d211ba6aed4daa5105bdda3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-10.c
  f2317f19938996a698ef438051827fa8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-11.c
*************** f798ac51e1550c7537bbd99e35e62d16  gcc/te
*** 54355,54361 ****
  48fb739a1edb3a6c802592137ae3b924  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c
  8bbbc4b1c6f342f47fd7ee2222a232c3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c
  694e0220f13baa716a5985ee126d221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c
! 103e30a153c56b1ebb14ecf560ece380  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c
  97dab4827e773bb05c5e5cb3d3cc4cf1  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/no-dynamic-lmul-1.c
  41e3b09c9cd2e4a261409d6d754d1ea8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111153-1.c
  28a9a6bfa55b6d61ac5076ddaef032bb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111317.c
--- 57514,57520 ----
  48fb739a1edb3a6c802592137ae3b924  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c
  8bbbc4b1c6f342f47fd7ee2222a232c3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c
  694e0220f13baa716a5985ee126d221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c
! bbfa555f864ad9ddaa351a2f0f566625  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c
  97dab4827e773bb05c5e5cb3d3cc4cf1  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/no-dynamic-lmul-1.c
  41e3b09c9cd2e4a261409d6d754d1ea8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111153-1.c
  28a9a6bfa55b6d61ac5076ddaef032bb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111317.c
*************** bfbef312c1eb167e9b377420da07c0dd  gcc/te
*** 54366,54397 ****
  cafa8dfe3e91d7693561c1b355e97072  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-1.c
  696cb400499d38d8d660ac378dfec2f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
  f137e80651e8e42bfbe055bff1c24502  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-3.c
! cf11093d03b5e929ab4b93ee0da4330b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c
  e223c985c0278fae6e62daae83a5fa3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-5.c
  28b94cd084f6b9f35c7224575431dd87  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-1.c
  9a7e40b18e0358ca4f962a6a4b56f189  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-2.c
  761fedeff705b8fc8afdd031b9754b44  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-3.c
  d80bfc6c78f7b2de2fe9e7c1d6d6021b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-4.c
! d782f4948f51043c2bc59287b57bbb32  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-1.c
! 3e1d95d98310a755a15a7b192d914e2a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c
  6bb6bd426b1becc418355d493c02c014  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-3.c
  9d5cc2556fe6a2789953d26755bef7f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-4.c
! 7157c7c5d7d7e7686c421f2336dffd68  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-5.c
  9853fcd370fbdb6957bbfc245a52880b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr114264.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/riscv_vector.h
! a457f4dcc41b775fdbcdbaecd37c64f7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp
  788c12f50f2859623dd4839a46f0806e  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-1.c
! 66c697dcf682fdd818f4848d8970deef  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c
! 9072771b626d7fc25eb18399bce2c3a6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c
! 30beb61a7f8086266f6dd9f4f7f51ea4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c
  1a3a10db24ec3f5fab84a77c2ef5c91c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-2.c
  b09aa1afa3eca5d2dfadb1403d500c43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-3.c
  8f6550c494fda4148506e4e5dd62ec39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-4.c
  f3b3c1f3914830220fd736199912c878  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-5.c
  7296f85d85e893225e5a5d323ab3ecfa  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-6.c
  6e8836f82b2b1ad9fbbeca3425f50f3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-7.c
! bf83c84fce376fa1071d163b4073c060  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c
! 475f084590e1a24155b698a5b82bb879  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c
  8895b7114b18f43d6bf43cb52eef46e7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-1.c
  29a9e73b3585e2597cfe33c8cdd94e43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-2.c
  782f0b41429f222276333f508cb8f6be  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c
--- 57525,57558 ----
  cafa8dfe3e91d7693561c1b355e97072  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-1.c
  696cb400499d38d8d660ac378dfec2f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
  f137e80651e8e42bfbe055bff1c24502  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-3.c
! b4a82bee7946626ab43f07f1fd4e29f7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c
  e223c985c0278fae6e62daae83a5fa3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-5.c
  28b94cd084f6b9f35c7224575431dd87  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-1.c
  9a7e40b18e0358ca4f962a6a4b56f189  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-2.c
  761fedeff705b8fc8afdd031b9754b44  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-3.c
  d80bfc6c78f7b2de2fe9e7c1d6d6021b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-4.c
! 20e03bf1c5199eeec02606076d1b2c52  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-1.c
! 84304269f515a2f7a22df0e0253274ca  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c
  6bb6bd426b1becc418355d493c02c014  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-3.c
  9d5cc2556fe6a2789953d26755bef7f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-4.c
! 35b698546b871a1bbf2d046113e776eb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-5.c
  9853fcd370fbdb6957bbfc245a52880b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr114264.c
+ e271c0bb89de3852c7a63455d3a0ef4a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr114506.c
+ 8b0c1cfaeac5f1f58c2e22db7abf2415  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr114516.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/riscv_vector.h
! 06c8a16b9b61783a91ae97fa7604365c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp
  788c12f50f2859623dd4839a46f0806e  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-1.c
! 8d4244fdd2b8a9fe32205c01b44587a3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c
! 105f676926f0938ad598cb795d0d9a00  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c
! 7acec03fdca84045fbbe3b87125db5d6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c
  1a3a10db24ec3f5fab84a77c2ef5c91c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-2.c
  b09aa1afa3eca5d2dfadb1403d500c43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-3.c
  8f6550c494fda4148506e4e5dd62ec39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-4.c
  f3b3c1f3914830220fd736199912c878  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-5.c
  7296f85d85e893225e5a5d323ab3ecfa  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-6.c
  6e8836f82b2b1ad9fbbeca3425f50f3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-7.c
! bf09afbba6493ac87c2ff39ded34ec66  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c
! 3f8b62ba680dacc49ae1affdc8a4eec7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c
  8895b7114b18f43d6bf43cb52eef46e7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-1.c
  29a9e73b3585e2597cfe33c8cdd94e43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-2.c
  782f0b41429f222276333f508cb8f6be  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c
*************** d13254c5eb24a8e02c724470d3f22c66  gcc/te
*** 54411,54448 ****
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c
  f6fdadd0ea9395aed541bf9b57b73780  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp-2.c
  8fa1df6d327c2eef9e16ea686cbebd42  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c
! 2ac4c1eff3300ebdae73bfdc8f7e121a  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
! 7784264b91e751cc0641111cc780fd22  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
! 3a222309e7cede5574be8b6ba7839b76  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
! dba914eb2c6896f87a7a3bb3e0c40c08  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
! b5419cd17152b23060020cc6c0a8595b  gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
! 3503419d90afd0b4a83e8b5273f36f68  gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
! ba3ba1417b4b4d7190b32549c4cc480d  gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
! 4f57edc25078fea449d5575f9bc76591  gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
! a0e431405b4a231e57edf67833ff2b5e  gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
! 300995981557dfd810e9f01204fd73df  gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
! e52a1ffa015ccc03cfb71a8f2f1329be  gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
! ea93bd14440eb99dd28bf11817eb00a8  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
! 7dd4608e64338438d380100fd63672a6  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
! e86a1e483db20d334920fd82c5383854  gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
! d4813c7c6037ade43db3ca011cd64159  gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
! 750d5e431275f271c0ed35bab0126c14  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
! aeccb6c4596e9dc997c595bdb09b1715  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
! 6c52e79e94d7ecb003dbfbf3dfdc1757  gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c
! 0c2e6fa8901e4e23d3eddda9dbd775bb  gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
! 22a95d7359816f452cd3e71380d625d2  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
! 1ded60c7eb3e5a7994f57c97c0e949b0  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
! 7f0608980670dad162f7c6dc5445dee0  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
! c96ad17d79b357aa3a1fafd4373fa123  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
  468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
! bb23e40896d73c9770ba4c31753c6025  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
  cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
! e9916782f0455a8b23c7fbc2a4a6e5f0  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
! a5ca373c88404a1a95ab1edc403b130a  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
  5e809f76a90b3214ed4c5c22b9ed3546  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
  31f492da75d5c984323816dc8ff1e160  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
  5d97c676fcf52690b27698a4ae640549  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
--- 57572,57609 ----
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c
  f6fdadd0ea9395aed541bf9b57b73780  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp-2.c
  8fa1df6d327c2eef9e16ea686cbebd42  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c
! 67d4b78b5ba96d46e90308707e43394a  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
! 1d364b88cee484a12627a6441eb0a73e  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
! a2a31f73b067f86314a45763557dbbb3  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
! 9c7f6add6d5a9e38d559986146f82f20  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
! 1fd9c0d8fbfef94e5c4d3038d0282e93  gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
! 469f2c85982e8c3dad499f96b3e162da  gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
! 73f4aa3b068e7588c597af37aae4896e  gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
! 3a36b81283db5676a0d0c5cc250ca233  gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
! 3f801cbf0c5841e89f4f7c8c2b258a1d  gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
! e2001ca822dddb3c869bf1c66cb0b3b6  gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
! 5eee4f108a83b5ad00c5778d9bede531  gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
! 296c87760558888bcb3aefd7ce84d08a  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
! 73e2ae1e2a2d73e42dcb7686ffc774de  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
! 38ee3e7351524bacfe4e3e370a048a55  gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
! 716ebf15159643f7cf7f2fb93f9f5b2e  gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
! 743ff76dacd83dc7ce8d53adda035fa4  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
! 83cad9ffaf2d654fd3aae1219bb11dec  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
! f1ab63b427e9aca712aadf406f5557c1  gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c
! fd5615699c1f8eee1f32b1e5347d1b09  gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
! 612516000aa8e0b5d060d7fddc665a10  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
! 18b443a6542ecf233ed9863c434b9020  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
! 2ba8ef3f1c7b4b49a6d7dcdd4309f45a  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
! 0a6857153fdf055681069ad0998981d5  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
  468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
! ddaaf03843db012c82a284d40a6b6d82  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
  cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
! bd34fbf40b5ec76d35a3c504583c1c49  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
! 1afc983220c4adf37e3e3dfabc291c08  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
  5e809f76a90b3214ed4c5c22b9ed3546  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
  31f492da75d5c984323816dc8ff1e160  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
  5d97c676fcf52690b27698a4ae640549  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
*************** dc3a3bc9b79895046a5bf0cec43c1125  gcc/te
*** 54454,54460 ****
  b3129ec8ea8c7da6a0173ab2b1fe7290  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
  135ec340fd3635c4013bfc7b877ecf35  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
  4c7c5b36a98813fdee9001398294329c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! d851a2040b67fef622d08340c1a85827  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
  da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
  f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
  5184bb3c35060df529c04971144b043d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
--- 57615,57621 ----
  b3129ec8ea8c7da6a0173ab2b1fe7290  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
  135ec340fd3635c4013bfc7b877ecf35  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
  4c7c5b36a98813fdee9001398294329c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! fb91845c9fa6afcad36991bdeb58de13  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
  da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
  f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
  5184bb3c35060df529c04971144b043d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
*************** e7b5de1894b484ced0e49d90a7968a99  gcc/te
*** 54471,54492 ****
  ec6fe1711153176d2e700ad62a181692  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
  02cb63b256d7ab498f11c4d83bebf638  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
  8ca71521b63e0a2f3280f94f4aad2cb1  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! a37d4a6114535b5f2083ef4cf2d8b87a  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
  f1a74ad4034497d9cd8c0f6653cd832c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
  2785d935171620f92974cd3b73efe8d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
  696e58e1a9d66a6229a4418239470e20  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
  5212f6bfc76ea8cf4d27d31bf55dec68  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
  e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
  41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 8d8da86a4d7847be6c8c6337c5da90d8  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
  b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! cd3ac968b3fbe2cb40b77398720f48d1  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
  b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
  0fec78cf46f702db1cd1beb06e8a395c  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 69f7f8c279ae4830ca4ae144a8fb357e  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
  376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
  adc82a204a804f0f74bd416c874eedca  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 5275e437bcf37fd85b8a35bc4dacc143  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
  f6d719f2f0c5479786a8b86a479327a1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
  95ca43c5701ec86ab475429a67375132  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
  d4404b4f2f9ff09ef71a31254c4aafcd  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
--- 57632,57653 ----
  ec6fe1711153176d2e700ad62a181692  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
  02cb63b256d7ab498f11c4d83bebf638  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
  8ca71521b63e0a2f3280f94f4aad2cb1  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 76d9a39c8c26bd3e366b44bcc6d6ce6c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
  f1a74ad4034497d9cd8c0f6653cd832c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
  2785d935171620f92974cd3b73efe8d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
  696e58e1a9d66a6229a4418239470e20  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
  5212f6bfc76ea8cf4d27d31bf55dec68  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
  e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
  41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 53e50c2db81ec518548336c2fb3ade49  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
  b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! 360dc7646e2c622420ad6a4cf2a6f88c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
  b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
  0fec78cf46f702db1cd1beb06e8a395c  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 62b924276842bb4d5327577b000f9187  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
  376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
  adc82a204a804f0f74bd416c874eedca  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 090d505f1e2211973a16cffcb0d4e7f0  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
  f6d719f2f0c5479786a8b86a479327a1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
  95ca43c5701ec86ab475429a67375132  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
  d4404b4f2f9ff09ef71a31254c4aafcd  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
*************** deb80b9e42227ef9cf3ab1d7f28f3f42  gcc/te
*** 54510,54532 ****
  25ecbed72fa7aedfcb243446098a1493  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
  98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
! 0b91915a1cc2de5a3ac43ecfa059e891  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
! e51492ac67013986086c8e562c727373  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
! 20be964fb05adb6aa52458392982b140  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
! e8f8c0ec7407fd45b7349d5a77639ab5  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
! 55320b2f648ee741e5dfca32c22ac74a  gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
! 2148b4fcd7fffd70ed262ba8802e8836  gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
! 621526681d7f7378d9c790f368941262  gcc/testsuite/gcc.dg/vect/no-vfa-vect-45.c
! 3d01931be3d6a4ebe2c579a3dee0ef6f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
! 343d908be28e1f05879937d594ab2218  gcc/testsuite/gcc.dg/vect/no-vfa-vect-51.c
! 672c267c905a2637bf140767368997cc  gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
! eef9fbf8ce207c436ec7c5f431cfc25e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
! e357a5d7869c2160f3b4cfd764ec56c2  gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
! d8aacd34dc1932ba87f9bde9decf6c57  gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
! b4c570225a94d0bedb79cf6d24748610  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
! 29c66e255f37542e313b1053513fea94  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
! 9cfea891468bf76480babd2052690f4e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
! d66092431baa66c6073c1caed84f72a6  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
--- 57671,57693 ----
  25ecbed72fa7aedfcb243446098a1493  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
  98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
! b52369b6d8f04b0c881bc45f36229c29  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
! 34ca5a23c391d8e94a50e08413e1c1a3  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
! 33eaf9b1a8730ca065ae2e7a6bc38cbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
! f1d3577abdbfa851f8943271c1a083f0  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
! 92ba2b1970834f119ceaef8a3842e395  gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
! 04ee28c8803ebd7cb2a9ba501578348e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
! 31166cffb9356bb88498dab3919d0fbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-45.c
! 3de2003c1db097112e591b0f11ca5b62  gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
! 20b21ff2b774c1cadebe839af78baa62  gcc/testsuite/gcc.dg/vect/no-vfa-vect-51.c
! 1956eeb2fa539e1a65369b1ccaef8896  gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
! 93126200bfecefacec13f50a625f7660  gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
! 1d4cffe9276d0797e16dc24d1eb27006  gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
! e3e508292ca1590ab77169664af862ce  gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
! 90976baf8a291e5a47d198441cb746f5  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
! d866824beb16c364d08cb67b007de602  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
! 72076a525ae063dab9eb52662fd1fa9f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
! d062d4d3b84fbec28d4d1580ea69bb21  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
*************** eef9d53f7fc64f5bf484207cbabd7414  gcc/te
*** 54537,54552 ****
  25482ceb1124b6cb3b0b4a429c5903c3  gcc/testsuite/gcc.dg/vect/pr101145_1.c
  934d5ab38d163ec43088d96a3e867322  gcc/testsuite/gcc.dg/vect/pr101145_2.c
  e31e77a43384ba3824812ab7b9248617  gcc/testsuite/gcc.dg/vect/pr101145_3.c
! a77031361251e1360c755d4e8e3e1b5b  gcc/testsuite/gcc.dg/vect/pr101145inf.c
! d5f2105742a211cdf1e93edf3df752b5  gcc/testsuite/gcc.dg/vect/pr101145inf.inc
! b46316b7cc11753f28cbf037c3cbea91  gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
  3afd2e83ab31eb426ca675f9d658fd30  gcc/testsuite/gcc.dg/vect/pr101445.c
  ae8b9fa809bc0868516d373dbc070b85  gcc/testsuite/gcc.dg/vect/pr101505.c
  6893aed7299a121a69eb5b9deac04ae4  gcc/testsuite/gcc.dg/vect/pr102046.c
  859bb5bf4a83258b4c99d26be93ed965  gcc/testsuite/gcc.dg/vect/pr102318.c
  ade348e4de25df9c33207531cf5e1270  gcc/testsuite/gcc.dg/vect/pr102832.c
! a0e8cb9f9f5598691ceabc4164c5e796  gcc/testsuite/gcc.dg/vect/pr103116-1.c
! 2bbd32b8c8033313c86d1d790164d79f  gcc/testsuite/gcc.dg/vect/pr103116-2.c
  dcd21bad9a0ccaa6b61cc26ae10498ab  gcc/testsuite/gcc.dg/vect/pr103253.c
  3027554c675b698964371551d4c242aa  gcc/testsuite/gcc.dg/vect/pr103494.c
  167997ae7fe74f3c29652d5e227a608e  gcc/testsuite/gcc.dg/vect/pr103517.c
--- 57698,57713 ----
  25482ceb1124b6cb3b0b4a429c5903c3  gcc/testsuite/gcc.dg/vect/pr101145_1.c
  934d5ab38d163ec43088d96a3e867322  gcc/testsuite/gcc.dg/vect/pr101145_2.c
  e31e77a43384ba3824812ab7b9248617  gcc/testsuite/gcc.dg/vect/pr101145_3.c
! da8dc2debe56ed0675080d83861c1489  gcc/testsuite/gcc.dg/vect/pr101145inf.c
! b3d25d52f99a2a3e8aaac4084f1011a2  gcc/testsuite/gcc.dg/vect/pr101145inf.inc
! b33dd21b6da5db57e72141647aebc3a7  gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
  3afd2e83ab31eb426ca675f9d658fd30  gcc/testsuite/gcc.dg/vect/pr101445.c
  ae8b9fa809bc0868516d373dbc070b85  gcc/testsuite/gcc.dg/vect/pr101505.c
  6893aed7299a121a69eb5b9deac04ae4  gcc/testsuite/gcc.dg/vect/pr102046.c
  859bb5bf4a83258b4c99d26be93ed965  gcc/testsuite/gcc.dg/vect/pr102318.c
  ade348e4de25df9c33207531cf5e1270  gcc/testsuite/gcc.dg/vect/pr102832.c
! b4058d0a539af31cf3110f31792ae085  gcc/testsuite/gcc.dg/vect/pr103116-1.c
! 97424a52e557921324da4d12f7715104  gcc/testsuite/gcc.dg/vect/pr103116-2.c
  dcd21bad9a0ccaa6b61cc26ae10498ab  gcc/testsuite/gcc.dg/vect/pr103253.c
  3027554c675b698964371551d4c242aa  gcc/testsuite/gcc.dg/vect/pr103494.c
  167997ae7fe74f3c29652d5e227a608e  gcc/testsuite/gcc.dg/vect/pr103517.c
*************** ccbd4ad0ec4d5c7d66ae8a17324026a8  gcc/te
*** 54579,54589 ****
  66d2abe9c41829a342449e916654a1d9  gcc/testsuite/gcc.dg/vect/pr108316.c
  cd501eb39fb5991c37f6b640db11e4b9  gcc/testsuite/gcc.dg/vect/pr108608.c
  42e71f76f5fec72cddb8f569851aa595  gcc/testsuite/gcc.dg/vect/pr108950.c
! 4bdba4486420388953db5c8a7aa0f39b  gcc/testsuite/gcc.dg/vect/pr109011-1.c
! 2a6a665a277104679fb937e56c29dc3d  gcc/testsuite/gcc.dg/vect/pr109011-2.c
! f7d1bedc5bf1199771f4ce87a705240a  gcc/testsuite/gcc.dg/vect/pr109011-3.c
! 060b9898eb5f6c62189bbf2ad7359dbd  gcc/testsuite/gcc.dg/vect/pr109011-4.c
! 2f9a863705f358a2e304b801de1542ca  gcc/testsuite/gcc.dg/vect/pr109011-5.c
  4c3bfccc66bd917fd713c2ef21b62992  gcc/testsuite/gcc.dg/vect/pr109025.c
  bce13fdf2ea61a0bc1886470eed1bf60  gcc/testsuite/gcc.dg/vect/pr109473.c
  8c383ef6a1ef6fccfbf9db8655155e9f  gcc/testsuite/gcc.dg/vect/pr109502.c
--- 57740,57750 ----
  66d2abe9c41829a342449e916654a1d9  gcc/testsuite/gcc.dg/vect/pr108316.c
  cd501eb39fb5991c37f6b640db11e4b9  gcc/testsuite/gcc.dg/vect/pr108608.c
  42e71f76f5fec72cddb8f569851aa595  gcc/testsuite/gcc.dg/vect/pr108950.c
! dcae540dc53cb2bda4de1cd8a0192e55  gcc/testsuite/gcc.dg/vect/pr109011-1.c
! 2b824b8ffe2736329cc277e41d3bf80a  gcc/testsuite/gcc.dg/vect/pr109011-2.c
! 42b182a1a8b9c89fc2d121f68bfbc2c0  gcc/testsuite/gcc.dg/vect/pr109011-3.c
! 1cbc7677a3eac36970ad4d19add58130  gcc/testsuite/gcc.dg/vect/pr109011-4.c
! 9ddaf2a27598e9b557b6df0fd66e5006  gcc/testsuite/gcc.dg/vect/pr109011-5.c
  4c3bfccc66bd917fd713c2ef21b62992  gcc/testsuite/gcc.dg/vect/pr109025.c
  bce13fdf2ea61a0bc1886470eed1bf60  gcc/testsuite/gcc.dg/vect/pr109473.c
  8c383ef6a1ef6fccfbf9db8655155e9f  gcc/testsuite/gcc.dg/vect/pr109502.c
*************** f3a261701959ac2b47476c1030a0b0f0  gcc/te
*** 54598,54603 ****
--- 57759,57765 ----
  fcd62ed55b3c39965db79cc237474ba7  gcc/testsuite/gcc.dg/vect/pr111860.c
  9386a649786af115ac3366d153cb1ece  gcc/testsuite/gcc.dg/vect/pr111882.c
  e0a4c017051217573c6b9a677272bd56  gcc/testsuite/gcc.dg/vect/pr111915.c
+ bfdd53552f9b391621a13f05b561eb3c  gcc/testsuite/gcc.dg/vect/pr112325.c
  769cf4bfcb97c43ac962799ae8d222c5  gcc/testsuite/gcc.dg/vect/pr112505.c
  61f2084097045706a89a10ff2539ff64  gcc/testsuite/gcc.dg/vect/pr112774.c
  74f8fa21b890e04b38c4f16805d074a3  gcc/testsuite/gcc.dg/vect/pr112818.c
*************** b1cdd3c6aefbc3dde4884c1feb68b95f  gcc/te
*** 54613,54618 ****
--- 57775,57781 ----
  402cfcbaf7768a8351fd906cfecfc467  gcc/testsuite/gcc.dg/vect/pr113863.c
  2d455da5d02021509d6b9eb92207f92f  gcc/testsuite/gcc.dg/vect/pr113902.c
  f2ad143cd940fa42deda153f442d29b2  gcc/testsuite/gcc.dg/vect/pr114027.c
+ e4a472ea4e56989aaac7f8d5971c4868  gcc/testsuite/gcc.dg/vect/pr114107.c
  3c09450a4f0323e04e1f096b790cddae  gcc/testsuite/gcc.dg/vect/pr114108.c
  ae8b389a68778f9cfdd3436253d31b14  gcc/testsuite/gcc.dg/vect/pr114231.c
  19461e6055477a59e5893710d251b212  gcc/testsuite/gcc.dg/vect/pr114322.c
*************** e3aaddf0ac2fdd37a5228a58d8c0f079  gcc/te
*** 54621,54631 ****
--- 57784,57834 ----
  c0f0ed71d5889d42079442a4cdca8181  gcc/testsuite/gcc.dg/vect/pr114733.c
  ffa061cc92fc1fdab57b5c587a33d81b  gcc/testsuite/gcc.dg/vect/pr114832.c
  a652091690348408aec894da3d82b15d  gcc/testsuite/gcc.dg/vect/pr115192.c
+ 5271c46d43978f58fb3896101c5e2c2b  gcc/testsuite/gcc.dg/vect/pr115383.c
+ 42a8590567f130d21b50d22ade7e43c2  gcc/testsuite/gcc.dg/vect/pr115385.c
+ 3105bed12b22a4713ff3bf2f2ec7af90  gcc/testsuite/gcc.dg/vect/pr115395.c
+ 624b060576b86f63bccf57b2a0da625f  gcc/testsuite/gcc.dg/vect/pr115537.c
+ 4453b601295d4a44b2e5797e46477ef4  gcc/testsuite/gcc.dg/vect/pr115602.c
  d4499294f9334e38163cb0286c7b2483  gcc/testsuite/gcc.dg/vect/pr115669.c
  bb2c2453031564d5d8103f5e4da71746  gcc/testsuite/gcc.dg/vect/pr115723.c
+ 70aabbfa24d9ebc44e26df83a93f97bd  gcc/testsuite/gcc.dg/vect/pr115753-1.c
+ 801a97153e8e0aebef2d49a2d34d3100  gcc/testsuite/gcc.dg/vect/pr115753-2.c
+ ef4ecae4f11d852af8a1b4bd532148d9  gcc/testsuite/gcc.dg/vect/pr115753-3.c
  db016c873ed206041bc50ac092ce545d  gcc/testsuite/gcc.dg/vect/pr115840.c
  ea3272b0a6fbd82aefd459202d8b2afc  gcc/testsuite/gcc.dg/vect/pr115841.c
  f4dccafbd979e394e9963f12d52ce1c2  gcc/testsuite/gcc.dg/vect/pr115843.c
+ 1f0dd6165a23cae6ea231f351632f121  gcc/testsuite/gcc.dg/vect/pr115959.c
+ 3617874dc8f0f764b079db5c7e0fa79b  gcc/testsuite/gcc.dg/vect/pr116125.c
+ a57032340d085147bd51078386a121d7  gcc/testsuite/gcc.dg/vect/pr116352.c
+ fe47826bbf472c7e1ba0157e8f200635  gcc/testsuite/gcc.dg/vect/pr116575.c
+ 125b0e9fa6165f1885391cf7f88611b5  gcc/testsuite/gcc.dg/vect/pr116628.c
+ 2af27037730daf65d6e49b3cf24b92cc  gcc/testsuite/gcc.dg/vect/pr116791.c
+ d6b4741d0f48f1d52f1f94d003c347c7  gcc/testsuite/gcc.dg/vect/pr116812.c
+ 05e9745361a2294c8b2cdfb4cd8aa8aa  gcc/testsuite/gcc.dg/vect/pr116985.c
+ d26c1450e737c9198e3e413deb96e2b3  gcc/testsuite/gcc.dg/vect/pr116997.c
+ 251cf363f37b9b4c6414f0a193c68442  gcc/testsuite/gcc.dg/vect/pr117050.c
+ efe118882a843785c4d7d0cc73f5b864  gcc/testsuite/gcc.dg/vect/pr117147.c
+ 663c319abe6475a06b3f4517706d0d00  gcc/testsuite/gcc.dg/vect/pr117307.c
+ ead3256606401e1b9aed653707b8ad68  gcc/testsuite/gcc.dg/vect/pr117484-1.c
+ e7fb560a26e6ba7e4ff2b3e4099c2ee1  gcc/testsuite/gcc.dg/vect/pr117484-2.c
+ 8bffd7683085678a0836b663cddf1a51  gcc/testsuite/gcc.dg/vect/pr117594.c
+ e1e47aa962c21b731de5571124e64863  gcc/testsuite/gcc.dg/vect/pr117767.c
+ f2d7cfefe800e015616ceccb1b7e09df  gcc/testsuite/gcc.dg/vect/pr117874.c
+ 0184865387ef1351c545760f67bafe0c  gcc/testsuite/gcc.dg/vect/pr117888-1.c
+ 5209a0642c46507918b4eda25788f727  gcc/testsuite/gcc.dg/vect/pr118140.c
+ 61d81eb435eb88fefa0ff5432239ee6a  gcc/testsuite/gcc.dg/vect/pr118558.c
+ 823ee04b806e8d8fb9336c6daa4d0a05  gcc/testsuite/gcc.dg/vect/pr118653.c
+ f0fc19f12b365a9fa411aa1656eac9fc  gcc/testsuite/gcc.dg/vect/pr118749.c
+ 13b94d5669ab44df206b72607dc814f1  gcc/testsuite/gcc.dg/vect/pr118852.c
+ 6fd30961e11a3501d3b6aacf53957805  gcc/testsuite/gcc.dg/vect/pr119057.c
+ 95e5c8d34a6ec1be8fdf82ce04305311  gcc/testsuite/gcc.dg/vect/pr119096.c
+ b8e70a728432436afa060e498411cc94  gcc/testsuite/gcc.dg/vect/pr119145.c
+ c60c78447067a058d5945ea410159c79  gcc/testsuite/gcc.dg/vect/pr119155.c
+ 8312a9b4f3649f0390632c660109eb1d  gcc/testsuite/gcc.dg/vect/pr119399.c
+ f5749a6330ea4377b859350a23760b4a  gcc/testsuite/gcc.dg/vect/pr119534.c
+ 62642e73757697e1b2dcd5c23bbf8739  gcc/testsuite/gcc.dg/vect/pr119586.c
+ c5b12e4f92ab5e7e64670a57c8f91e86  gcc/testsuite/gcc.dg/vect/pr119640.c
+ ae171ef5347c321225b18e5907b1331b  gcc/testsuite/gcc.dg/vect/pr119757.c
  42d48d2ecd5682545b12ac42f879a831  gcc/testsuite/gcc.dg/vect/pr16105.c
  231c99dba9475fe09525bbf6f4374124  gcc/testsuite/gcc.dg/vect/pr18308.c
  915cf38408eaa7fee5013d90ec1c3251  gcc/testsuite/gcc.dg/vect/pr18400.c
*************** c2455168a41837341a911785e40a72e5  gcc/te
*** 54717,54723 ****
  8a7ca8f2db3165ea9146e11392e68722  gcc/testsuite/gcc.dg/vect/pr48052.c
  2d67e3ea63ebcbc6b915965381b94994  gcc/testsuite/gcc.dg/vect/pr48172.c
  f20a1760d264fe0667bfd7990309368f  gcc/testsuite/gcc.dg/vect/pr48377.c
! 36d822d0be5e4daf4a99a96f8ab7b82f  gcc/testsuite/gcc.dg/vect/pr48765.c
  6cbb0ca0c466ff1208f5c003f81ab645  gcc/testsuite/gcc.dg/vect/pr49038.c
  5693d2db7c6fd6a87fdce1ddb192cbd2  gcc/testsuite/gcc.dg/vect/pr49093.c
  ca3c5574bbb2e574a5ec16290e473133  gcc/testsuite/gcc.dg/vect/pr49318.c
--- 57920,57926 ----
  8a7ca8f2db3165ea9146e11392e68722  gcc/testsuite/gcc.dg/vect/pr48052.c
  2d67e3ea63ebcbc6b915965381b94994  gcc/testsuite/gcc.dg/vect/pr48172.c
  f20a1760d264fe0667bfd7990309368f  gcc/testsuite/gcc.dg/vect/pr48377.c
! 9a05bfb359ffebd2aad41a080764eff6  gcc/testsuite/gcc.dg/vect/pr48765.c
  6cbb0ca0c466ff1208f5c003f81ab645  gcc/testsuite/gcc.dg/vect/pr49038.c
  5693d2db7c6fd6a87fdce1ddb192cbd2  gcc/testsuite/gcc.dg/vect/pr49093.c
  ca3c5574bbb2e574a5ec16290e473133  gcc/testsuite/gcc.dg/vect/pr49318.c
*************** e22ef7c2f66eb8bd36aa3d25b7300136  gcc/te
*** 54809,54815 ****
  98e32e0f67ea33564a8131db10fcc2d1  gcc/testsuite/gcc.dg/vect/pr65206.c
  6dc746c14c5e0a5a989ccf84fcdfda0d  gcc/testsuite/gcc.dg/vect/pr65310.c
  9956a4c3d2d612eab06cfc8981da6967  gcc/testsuite/gcc.dg/vect/pr65494.c
! 8bd896ef52d0e7ea3ac9901d5aac9834  gcc/testsuite/gcc.dg/vect/pr65518.c
  538f1d6369b933f5c46f055d1829ece2  gcc/testsuite/gcc.dg/vect/pr65930-1.c
  d13429b3781bb8b350e71ceb1d17df1a  gcc/testsuite/gcc.dg/vect/pr65930-2.c
  2e7cb88c0ae683eecc30f2b1f201c579  gcc/testsuite/gcc.dg/vect/pr65947-1.c
--- 58012,58018 ----
  98e32e0f67ea33564a8131db10fcc2d1  gcc/testsuite/gcc.dg/vect/pr65206.c
  6dc746c14c5e0a5a989ccf84fcdfda0d  gcc/testsuite/gcc.dg/vect/pr65310.c
  9956a4c3d2d612eab06cfc8981da6967  gcc/testsuite/gcc.dg/vect/pr65494.c
! 165495024dbdd1ee6e02080328244f4a  gcc/testsuite/gcc.dg/vect/pr65518.c
  538f1d6369b933f5c46f055d1829ece2  gcc/testsuite/gcc.dg/vect/pr65930-1.c
  d13429b3781bb8b350e71ceb1d17df1a  gcc/testsuite/gcc.dg/vect/pr65930-2.c
  2e7cb88c0ae683eecc30f2b1f201c579  gcc/testsuite/gcc.dg/vect/pr65947-1.c
*************** a2b44b460b60928ab08cf781bca61362  gcc/te
*** 54824,54830 ****
  cbec58ef280004b3eff5801426a72e11  gcc/testsuite/gcc.dg/vect/pr65947-5.c
  49bc43ce848248bdd193c0cf0e414eb7  gcc/testsuite/gcc.dg/vect/pr65947-6.c
  5a048ae2950546f0b4fe2bad2fb58d75  gcc/testsuite/gcc.dg/vect/pr65947-7.c
! 5c15a330297325681d98147a72e5411e  gcc/testsuite/gcc.dg/vect/pr65947-8.c
  9bb2f2b31235ad5f54dd6c6bfd87c2cf  gcc/testsuite/gcc.dg/vect/pr65947-9.c
  d1bb916522cf51af2ec6b26d7bfe3875  gcc/testsuite/gcc.dg/vect/pr65951.c
  c1a0987a004bbddb462c182b491c3887  gcc/testsuite/gcc.dg/vect/pr66142.c
--- 58027,58033 ----
  cbec58ef280004b3eff5801426a72e11  gcc/testsuite/gcc.dg/vect/pr65947-5.c
  49bc43ce848248bdd193c0cf0e414eb7  gcc/testsuite/gcc.dg/vect/pr65947-6.c
  5a048ae2950546f0b4fe2bad2fb58d75  gcc/testsuite/gcc.dg/vect/pr65947-7.c
! 5d55da86e618a26b20b3d5b7cc7c1f20  gcc/testsuite/gcc.dg/vect/pr65947-8.c
  9bb2f2b31235ad5f54dd6c6bfd87c2cf  gcc/testsuite/gcc.dg/vect/pr65947-9.c
  d1bb916522cf51af2ec6b26d7bfe3875  gcc/testsuite/gcc.dg/vect/pr65951.c
  c1a0987a004bbddb462c182b491c3887  gcc/testsuite/gcc.dg/vect/pr66142.c
*************** d7d7a3e37f5cdb32c49cbb55a253b5fe  gcc/te
*** 54839,54849 ****
  62a72b6ca1acac0241ad15032cf2b23f  gcc/testsuite/gcc.dg/vect/pr68305.c
  ac916e4c549ed47dc42ad0172c7b60b7  gcc/testsuite/gcc.dg/vect/pr68339.c
  75bd6448a642ced4b65eb52a07dfcb3e  gcc/testsuite/gcc.dg/vect/pr68417.c
! fc4004004a9a82551a093065fe47f3d8  gcc/testsuite/gcc.dg/vect/pr68445.c
  a83a73e956c9df25282bf0fca7b44fb4  gcc/testsuite/gcc.dg/vect/pr68482.c
  279c9d3566650ea88a0b1e61dec3b297  gcc/testsuite/gcc.dg/vect/pr68502-1.c
  be9cb42820a257a105baf2eca22e2838  gcc/testsuite/gcc.dg/vect/pr68502-2.c
  66b4cf1838c4c22fdcda578c0c74fff8  gcc/testsuite/gcc.dg/vect/pr68577.c
  0d3505ac68dc23fc576e1a97dac2d15d  gcc/testsuite/gcc.dg/vect/pr69083.c
  ea3f198bbbc76b8075833d54ae6ccd7f  gcc/testsuite/gcc.dg/vect/pr69652.c
  c481f39ecfc556bf9c7fe72a5cbb2546  gcc/testsuite/gcc.dg/vect/pr69783.c
--- 58042,58053 ----
  62a72b6ca1acac0241ad15032cf2b23f  gcc/testsuite/gcc.dg/vect/pr68305.c
  ac916e4c549ed47dc42ad0172c7b60b7  gcc/testsuite/gcc.dg/vect/pr68339.c
  75bd6448a642ced4b65eb52a07dfcb3e  gcc/testsuite/gcc.dg/vect/pr68417.c
! b613468eb648373a26f40d80c6ad0e9b  gcc/testsuite/gcc.dg/vect/pr68445.c
  a83a73e956c9df25282bf0fca7b44fb4  gcc/testsuite/gcc.dg/vect/pr68482.c
  279c9d3566650ea88a0b1e61dec3b297  gcc/testsuite/gcc.dg/vect/pr68502-1.c
  be9cb42820a257a105baf2eca22e2838  gcc/testsuite/gcc.dg/vect/pr68502-2.c
  66b4cf1838c4c22fdcda578c0c74fff8  gcc/testsuite/gcc.dg/vect/pr68577.c
+ 5669edabaacbc05b13cab99c342b33f0  gcc/testsuite/gcc.dg/vect/pr68855.c
  0d3505ac68dc23fc576e1a97dac2d15d  gcc/testsuite/gcc.dg/vect/pr69083.c
  ea3f198bbbc76b8075833d54ae6ccd7f  gcc/testsuite/gcc.dg/vect/pr69652.c
  c481f39ecfc556bf9c7fe72a5cbb2546  gcc/testsuite/gcc.dg/vect/pr69783.c
*************** ef7c3ddd7343dd608cc7531460c930b4  gcc/te
*** 54932,54938 ****
  26e185b685b38b77224e585a1495eeb3  gcc/testsuite/gcc.dg/vect/pr88903-1.c
  03216d82e554aa712de4b495a01afaa7  gcc/testsuite/gcc.dg/vect/pr88903-2.c
  56809f132957b63d3b875ee3bb0bf07d  gcc/testsuite/gcc.dg/vect/pr89268.c
! 0bde013437ca120189007c75f648b4a1  gcc/testsuite/gcc.dg/vect/pr89440.c
  dbd34dc420d9e4785b0c6abf7ca453df  gcc/testsuite/gcc.dg/vect/pr90018.c
  bfa0e486a504473f7f92839014e98a65  gcc/testsuite/gcc.dg/vect/pr91114.c
  32c3254950573198ca65ac3d419c5233  gcc/testsuite/gcc.dg/vect/pr91293-1.c
--- 58136,58142 ----
  26e185b685b38b77224e585a1495eeb3  gcc/testsuite/gcc.dg/vect/pr88903-1.c
  03216d82e554aa712de4b495a01afaa7  gcc/testsuite/gcc.dg/vect/pr88903-2.c
  56809f132957b63d3b875ee3bb0bf07d  gcc/testsuite/gcc.dg/vect/pr89268.c
! aedce8a2b4d649c37874f18627ca64f7  gcc/testsuite/gcc.dg/vect/pr89440.c
  dbd34dc420d9e4785b0c6abf7ca453df  gcc/testsuite/gcc.dg/vect/pr90018.c
  bfa0e486a504473f7f92839014e98a65  gcc/testsuite/gcc.dg/vect/pr91114.c
  32c3254950573198ca65ac3d419c5233  gcc/testsuite/gcc.dg/vect/pr91293-1.c
*************** b551cf977314c7406b99b8d04c143b19  gcc/te
*** 54985,54991 ****
  6895e7a56bdc4993b94c03e6d5dc587d  gcc/testsuite/gcc.dg/vect/pr97173.c
  28db70b2a4bdf2faf03ba619381af631  gcc/testsuite/gcc.dg/vect/pr97236.c
  1b1823c20d6d9a09ca7a1729f72c05f2  gcc/testsuite/gcc.dg/vect/pr97241.c
! 0e9132aedc16790298c756a5bb468d40  gcc/testsuite/gcc.dg/vect/pr97428.c
  8d732449a24564fd2cd4ff8dca6c2f37  gcc/testsuite/gcc.dg/vect/pr97457.c
  9cbc914a5b729f1284eeaea50a3f98b1  gcc/testsuite/gcc.dg/vect/pr97558-2.c
  a0e548875f044f3b51270f1185a1fee3  gcc/testsuite/gcc.dg/vect/pr97558.c
--- 58189,58195 ----
  6895e7a56bdc4993b94c03e6d5dc587d  gcc/testsuite/gcc.dg/vect/pr97173.c
  28db70b2a4bdf2faf03ba619381af631  gcc/testsuite/gcc.dg/vect/pr97236.c
  1b1823c20d6d9a09ca7a1729f72c05f2  gcc/testsuite/gcc.dg/vect/pr97241.c
! 9aa50a570f3bc3716de36e9676fb72fc  gcc/testsuite/gcc.dg/vect/pr97428.c
  8d732449a24564fd2cd4ff8dca6c2f37  gcc/testsuite/gcc.dg/vect/pr97457.c
  9cbc914a5b729f1284eeaea50a3f98b1  gcc/testsuite/gcc.dg/vect/pr97558-2.c
  a0e548875f044f3b51270f1185a1fee3  gcc/testsuite/gcc.dg/vect/pr97558.c
*************** dc519b432ee67d22f382f436de6b049d  gcc/te
*** 55010,55088 ****
  4afc8efba1f31b432e831f101ed6f173  gcc/testsuite/gcc.dg/vect/pr98560-2.c
  c5cc63b339d4d79237ce6ae9795568aa  gcc/testsuite/gcc.dg/vect/pr98674.c
  ecf30a3d5633aea4fdce036a11b8e64f  gcc/testsuite/gcc.dg/vect/pr98848.c
! 0698e78ccfdf0af3dbe8c3e062d6faa4  gcc/testsuite/gcc.dg/vect/pr99102.c
  9d0aa7f46ec92cf88a6713ddd1d7c203  gcc/testsuite/gcc.dg/vect/pr99253.c
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
! aefd4bda7e5d3e855da2011fb58b8c47  gcc/testsuite/gcc.dg/vect/pr99856.c
  9cd318f612b8d0495c561f5291f6ad13  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
  9cdba68e4ea92813441d88e7dd129580  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
! 37ce270a08fd89fd72de1e08913dfe45  gcc/testsuite/gcc.dg/vect/slp-1.c
  a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
! e567a4c718e7cd8cfedc176405ec0dc1  gcc/testsuite/gcc.dg/vect/slp-11a.c
! 2f0bfa32d48f181e2988511ef49e6f72  gcc/testsuite/gcc.dg/vect/slp-11b.c
! 2817addccb7241ef81e7d8c0ebbb4eaf  gcc/testsuite/gcc.dg/vect/slp-11c.c
! 84decce7e3ce6b875660d7c4f2a3bf19  gcc/testsuite/gcc.dg/vect/slp-12a.c
! 3c1ad2ccea73708be2698e02609bf0fa  gcc/testsuite/gcc.dg/vect/slp-12b.c
! 1ca5ce71edb3d9d83c26dca6df8711f1  gcc/testsuite/gcc.dg/vect/slp-12c.c
! 4099ae3686d9682e2105c56f14108cf2  gcc/testsuite/gcc.dg/vect/slp-13-big-array.c
! 92573900bfaa6153dd3c04fbf544b73e  gcc/testsuite/gcc.dg/vect/slp-13.c
  db479e896063dc565f9b60d1b90e32fb  gcc/testsuite/gcc.dg/vect/slp-14.c
  b631213cc9769461a0904b3f2df409e7  gcc/testsuite/gcc.dg/vect/slp-15.c
  69e85e55a6cc8b408e733ec9857b98f5  gcc/testsuite/gcc.dg/vect/slp-16.c
  b938790e21681ca7c15aa47e31279a7a  gcc/testsuite/gcc.dg/vect/slp-17.c
  8b8bcee36330c02f3d8e165a067e3a69  gcc/testsuite/gcc.dg/vect/slp-18.c
! 67edc4bee3d4e329cfc3dfc65611d5a2  gcc/testsuite/gcc.dg/vect/slp-19a.c
! a508692d7568d01bcf603cd2f58351b3  gcc/testsuite/gcc.dg/vect/slp-19b.c
! bfca64c152b62900f20074cff0135f2f  gcc/testsuite/gcc.dg/vect/slp-19c.c
! aef69f0d6a8c8f7dbaca311c84273cc5  gcc/testsuite/gcc.dg/vect/slp-2.c
  b19a8753eafbe778b32fd81fecaf9d04  gcc/testsuite/gcc.dg/vect/slp-20.c
! f754f8b79f4d65bb902f9f6db58ab815  gcc/testsuite/gcc.dg/vect/slp-21.c
  c9acad13727b373a9e9ad7b3fb8f387a  gcc/testsuite/gcc.dg/vect/slp-22.c
! ab14b9a8140b2f5e39266655cba1cb42  gcc/testsuite/gcc.dg/vect/slp-23.c
! f0201677f0d911594cdc82d7854c4ec9  gcc/testsuite/gcc.dg/vect/slp-24-big-array.c
! 5742e4c32af38803dd64f3361cfd73fb  gcc/testsuite/gcc.dg/vect/slp-24.c
  e3153e4fa0cd57f31cd27ff2a5e3e509  gcc/testsuite/gcc.dg/vect/slp-25.c
! 620757b2866bdc938ee17a56a7c169b1  gcc/testsuite/gcc.dg/vect/slp-26.c
  1400ec4b5a057164a2b0f27db7323166  gcc/testsuite/gcc.dg/vect/slp-28.c
  4e1ffccecc23382df688437a5f471a8e  gcc/testsuite/gcc.dg/vect/slp-3-big-array.c
  8e4d813bb5abc2214d5c49998ce56f69  gcc/testsuite/gcc.dg/vect/slp-3.c
! 8fdf629547427db5c457df973aafb534  gcc/testsuite/gcc.dg/vect/slp-33.c
  57baa6fb31fd4789f10b494034f9b604  gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
  863afe436d792775ddc5040ac14c804b  gcc/testsuite/gcc.dg/vect/slp-34.c
  3e921a4d4c808ab5bd837258de91135c  gcc/testsuite/gcc.dg/vect/slp-35.c
  4098835309b4ba9d3e73db2246ce3bf0  gcc/testsuite/gcc.dg/vect/slp-36.c
! abe70bf7ff6c0a004e8c49a02a04af30  gcc/testsuite/gcc.dg/vect/slp-37.c
  ede1734f85186c73229dd4786f51636c  gcc/testsuite/gcc.dg/vect/slp-38.c
  52c75813f292478bcc4d550f1479c3e3  gcc/testsuite/gcc.dg/vect/slp-39.c
! a5251717535bcc12e7363da2c2bce203  gcc/testsuite/gcc.dg/vect/slp-4-big-array.c
! 99d64643a7d3f702e146be03ab9dd663  gcc/testsuite/gcc.dg/vect/slp-4.c
  2a99bfcee356fb9cd9c3d423ac561f87  gcc/testsuite/gcc.dg/vect/slp-41.c
! 03ddbd9e0aebee2332870297075726df  gcc/testsuite/gcc.dg/vect/slp-42.c
  fcf3629c1596676f7b3f80a06bd0ca65  gcc/testsuite/gcc.dg/vect/slp-43.c
  a397bfe9f818dafa44b2593952e5c479  gcc/testsuite/gcc.dg/vect/slp-44.c
  8fce992b2313d2212af809a1833ec229  gcc/testsuite/gcc.dg/vect/slp-45.c
! f265ba618df9ede76ed975fc09e0c434  gcc/testsuite/gcc.dg/vect/slp-46.c
  bd95de1a4f7a5b8df307c0ae67eb8676  gcc/testsuite/gcc.dg/vect/slp-47.c
  de649522f3ab7b00ae0b659e97a5d056  gcc/testsuite/gcc.dg/vect/slp-48.c
  34dfcf82c079958b668bce6a7db573fe  gcc/testsuite/gcc.dg/vect/slp-49.c
! abff6dc2123081ede4be06cc91956e8a  gcc/testsuite/gcc.dg/vect/slp-5.c
  9bcd40afd8d4d59a592c847a0e18238c  gcc/testsuite/gcc.dg/vect/slp-50.c
  fd61a3a4acd9d7431e7535472d55145c  gcc/testsuite/gcc.dg/vect/slp-6.c
! 149e3b4d9c443485af4651f8f7e8fc55  gcc/testsuite/gcc.dg/vect/slp-7.c
  cd278a5b32bf0e2c064277bbe8d933a8  gcc/testsuite/gcc.dg/vect/slp-8.c
  d25431ed7f2be1237c16a48249905766  gcc/testsuite/gcc.dg/vect/slp-9.c
! 5a33d33294593fc94f5b4b3f6ac4b14d  gcc/testsuite/gcc.dg/vect/slp-cond-1.c
! 258375ae16fbc698952a40ba6484aca8  gcc/testsuite/gcc.dg/vect/slp-cond-2-big-array.c
! a9bd53f8fe80a6107f7d6733cfa34de8  gcc/testsuite/gcc.dg/vect/slp-cond-2.c
  1c03f52cb5495e44a665aa0f46f70340  gcc/testsuite/gcc.dg/vect/slp-cond-3.c
  468486cc4740370353b32e6201d6f0f1  gcc/testsuite/gcc.dg/vect/slp-cond-4.c
  f5eab4a25b5ed4d078593a97bea91fe0  gcc/testsuite/gcc.dg/vect/slp-cond-5.c
! 6dc1a058f04985c8b79da92f3cbea6ac  gcc/testsuite/gcc.dg/vect/slp-mask-store-1.c
  43e8632b365ee1abea3df922903c71cf  gcc/testsuite/gcc.dg/vect/slp-multitypes-1.c
  6b1a73fd3fee41f5f71ef9f400e19520  gcc/testsuite/gcc.dg/vect/slp-multitypes-10.c
! e13f2ca391860230019b43ec75cf0653  gcc/testsuite/gcc.dg/vect/slp-multitypes-11-big-array.c
! 083cb89962153765889875beb82c75f8  gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
  5cac9643b35cf67643402eda4a47df04  gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c
  c3b3a41e54fbfae2cbdac1a7285c0ca4  gcc/testsuite/gcc.dg/vect/slp-multitypes-13.c
  025c524333d646b9dbf37582aa6eef38  gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c
--- 58214,58300 ----
  4afc8efba1f31b432e831f101ed6f173  gcc/testsuite/gcc.dg/vect/pr98560-2.c
  c5cc63b339d4d79237ce6ae9795568aa  gcc/testsuite/gcc.dg/vect/pr98674.c
  ecf30a3d5633aea4fdce036a11b8e64f  gcc/testsuite/gcc.dg/vect/pr98848.c
! 532848c6834a840d2bc5bb7a3bc020ca  gcc/testsuite/gcc.dg/vect/pr99102.c
  9d0aa7f46ec92cf88a6713ddd1d7c203  gcc/testsuite/gcc.dg/vect/pr99253.c
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
! 87bfdffda71b264daea1b1742cc20c24  gcc/testsuite/gcc.dg/vect/pr99856.c
  9cd318f612b8d0495c561f5291f6ad13  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
  9cdba68e4ea92813441d88e7dd129580  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
! 500849b2c5bbe591a6f628290b4c27f8  gcc/testsuite/gcc.dg/vect/slp-1.c
  a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
! db6cec1737270a80437be4570eff0caf  gcc/testsuite/gcc.dg/vect/slp-11a.c
! 939fb24204c28d5b6a7fa7d654e4fcd9  gcc/testsuite/gcc.dg/vect/slp-11b.c
! 6259b29e2179afada38cb5515b5a8b65  gcc/testsuite/gcc.dg/vect/slp-11c.c
! 7b682bc1d0252c1166eab0cbf3615b9a  gcc/testsuite/gcc.dg/vect/slp-12a.c
! e025cc3187d2ae8b27d9ea1c8dbb5e16  gcc/testsuite/gcc.dg/vect/slp-12b.c
! 09d09d297728e7a0c8227e7d8d5f6306  gcc/testsuite/gcc.dg/vect/slp-12c.c
! 6e2fe1189c0828d3018f4849e2c70516  gcc/testsuite/gcc.dg/vect/slp-13-big-array.c
! 38c5e2bcd869ddd4f47157035112dcd6  gcc/testsuite/gcc.dg/vect/slp-13.c
  db479e896063dc565f9b60d1b90e32fb  gcc/testsuite/gcc.dg/vect/slp-14.c
  b631213cc9769461a0904b3f2df409e7  gcc/testsuite/gcc.dg/vect/slp-15.c
  69e85e55a6cc8b408e733ec9857b98f5  gcc/testsuite/gcc.dg/vect/slp-16.c
  b938790e21681ca7c15aa47e31279a7a  gcc/testsuite/gcc.dg/vect/slp-17.c
  8b8bcee36330c02f3d8e165a067e3a69  gcc/testsuite/gcc.dg/vect/slp-18.c
! 7f9ce9c00ea7833619ec226a11f96faf  gcc/testsuite/gcc.dg/vect/slp-19a.c
! 698a74c423762d10faa07ff812021e1a  gcc/testsuite/gcc.dg/vect/slp-19b.c
! 11d1c6ea8893f00d1f46e926fb90f25b  gcc/testsuite/gcc.dg/vect/slp-19c.c
! f563a27d41e2ad7f4daea72ba9af4584  gcc/testsuite/gcc.dg/vect/slp-2.c
  b19a8753eafbe778b32fd81fecaf9d04  gcc/testsuite/gcc.dg/vect/slp-20.c
! c4652cf580e753802fde6f7877f01e8a  gcc/testsuite/gcc.dg/vect/slp-21.c
  c9acad13727b373a9e9ad7b3fb8f387a  gcc/testsuite/gcc.dg/vect/slp-22.c
! dcd7537f43ab6aacd872c47c41adb743  gcc/testsuite/gcc.dg/vect/slp-23.c
! d63a3ba805f750904ac56d5a3099e28f  gcc/testsuite/gcc.dg/vect/slp-24-big-array.c
! 7366b1c35af385466b2fb3e0ac751199  gcc/testsuite/gcc.dg/vect/slp-24.c
  e3153e4fa0cd57f31cd27ff2a5e3e509  gcc/testsuite/gcc.dg/vect/slp-25.c
! 12b26338d07e33733f60949b9879a355  gcc/testsuite/gcc.dg/vect/slp-26.c
  1400ec4b5a057164a2b0f27db7323166  gcc/testsuite/gcc.dg/vect/slp-28.c
  4e1ffccecc23382df688437a5f471a8e  gcc/testsuite/gcc.dg/vect/slp-3-big-array.c
  8e4d813bb5abc2214d5c49998ce56f69  gcc/testsuite/gcc.dg/vect/slp-3.c
! 790fc2743ec1a739262fae4d397bacfa  gcc/testsuite/gcc.dg/vect/slp-33.c
  57baa6fb31fd4789f10b494034f9b604  gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
  863afe436d792775ddc5040ac14c804b  gcc/testsuite/gcc.dg/vect/slp-34.c
  3e921a4d4c808ab5bd837258de91135c  gcc/testsuite/gcc.dg/vect/slp-35.c
  4098835309b4ba9d3e73db2246ce3bf0  gcc/testsuite/gcc.dg/vect/slp-36.c
! d231f3be7dafbeb688c2739da104794e  gcc/testsuite/gcc.dg/vect/slp-37.c
  ede1734f85186c73229dd4786f51636c  gcc/testsuite/gcc.dg/vect/slp-38.c
  52c75813f292478bcc4d550f1479c3e3  gcc/testsuite/gcc.dg/vect/slp-39.c
! 67f17569a46237feb076bd8e311ecd3f  gcc/testsuite/gcc.dg/vect/slp-4-big-array.c
! ccabfe290d456b229ee6241e5abc4d75  gcc/testsuite/gcc.dg/vect/slp-4.c
  2a99bfcee356fb9cd9c3d423ac561f87  gcc/testsuite/gcc.dg/vect/slp-41.c
! db33d733377efef70b87575bddc9cc8a  gcc/testsuite/gcc.dg/vect/slp-42.c
  fcf3629c1596676f7b3f80a06bd0ca65  gcc/testsuite/gcc.dg/vect/slp-43.c
  a397bfe9f818dafa44b2593952e5c479  gcc/testsuite/gcc.dg/vect/slp-44.c
  8fce992b2313d2212af809a1833ec229  gcc/testsuite/gcc.dg/vect/slp-45.c
! 1b86c1cac44312aa3c37946f4f3a8446  gcc/testsuite/gcc.dg/vect/slp-46.c
  bd95de1a4f7a5b8df307c0ae67eb8676  gcc/testsuite/gcc.dg/vect/slp-47.c
  de649522f3ab7b00ae0b659e97a5d056  gcc/testsuite/gcc.dg/vect/slp-48.c
  34dfcf82c079958b668bce6a7db573fe  gcc/testsuite/gcc.dg/vect/slp-49.c
! 223ed04f0ab195ea7c02e9f416ba9ce6  gcc/testsuite/gcc.dg/vect/slp-5.c
  9bcd40afd8d4d59a592c847a0e18238c  gcc/testsuite/gcc.dg/vect/slp-50.c
+ 1c69a3832654d2328c54d30b72713ca2  gcc/testsuite/gcc.dg/vect/slp-51.c
+ 66792cc317f2506fd416f7b95557255a  gcc/testsuite/gcc.dg/vect/slp-52.c
+ 38064912ff3b5e40222a0c1729d402a7  gcc/testsuite/gcc.dg/vect/slp-53.c
+ 2b128c31ec0410c9913d7fd50c8a23cf  gcc/testsuite/gcc.dg/vect/slp-54.c
+ 21ef034052c29f1fc4429d06053b1649  gcc/testsuite/gcc.dg/vect/slp-55.c
+ 836b8f5fb7c0f6b65dd30567a7bfcd84  gcc/testsuite/gcc.dg/vect/slp-56.c
+ 8b8247abd244571c0c22e9b9c61b12a2  gcc/testsuite/gcc.dg/vect/slp-57.c
  fd61a3a4acd9d7431e7535472d55145c  gcc/testsuite/gcc.dg/vect/slp-6.c
! 894b51d5fa3a930384f6e5c1b7c7c686  gcc/testsuite/gcc.dg/vect/slp-7.c
  cd278a5b32bf0e2c064277bbe8d933a8  gcc/testsuite/gcc.dg/vect/slp-8.c
  d25431ed7f2be1237c16a48249905766  gcc/testsuite/gcc.dg/vect/slp-9.c
! 5acad64e250ee1b7e2bd12bc9ea7d6d1  gcc/testsuite/gcc.dg/vect/slp-cond-1.c
! e3434b5fbbd9da1602aeb7cb6c89079b  gcc/testsuite/gcc.dg/vect/slp-cond-2-big-array.c
! 789b56f01ceac27064c9ad47d1e90159  gcc/testsuite/gcc.dg/vect/slp-cond-2.c
  1c03f52cb5495e44a665aa0f46f70340  gcc/testsuite/gcc.dg/vect/slp-cond-3.c
  468486cc4740370353b32e6201d6f0f1  gcc/testsuite/gcc.dg/vect/slp-cond-4.c
  f5eab4a25b5ed4d078593a97bea91fe0  gcc/testsuite/gcc.dg/vect/slp-cond-5.c
! 0ee05cc515850bd5fc33ca8e8cb852bd  gcc/testsuite/gcc.dg/vect/slp-gap-1.c
! 32e82cd94d19c9cf6ae8d0c5a54e055b  gcc/testsuite/gcc.dg/vect/slp-mask-store-1.c
  43e8632b365ee1abea3df922903c71cf  gcc/testsuite/gcc.dg/vect/slp-multitypes-1.c
  6b1a73fd3fee41f5f71ef9f400e19520  gcc/testsuite/gcc.dg/vect/slp-multitypes-10.c
! a962a5248526b65c058cf35e88c04c48  gcc/testsuite/gcc.dg/vect/slp-multitypes-11-big-array.c
! da6fbb195bfc0f3883975b54dfdfbc5f  gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
  5cac9643b35cf67643402eda4a47df04  gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c
  c3b3a41e54fbfae2cbdac1a7285c0ca4  gcc/testsuite/gcc.dg/vect/slp-multitypes-13.c
  025c524333d646b9dbf37582aa6eef38  gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c
*************** dced205d4b7229b2015bdcec33c917e2  gcc/te
*** 55093,55110 ****
  fc0d735bc020a2dee72b143a0431a202  gcc/testsuite/gcc.dg/vect/slp-multitypes-7.c
  a29ec40838f0e106ac740767d8a1d364  gcc/testsuite/gcc.dg/vect/slp-multitypes-8.c
  c711cd9eff7eb5ed5d14d0fd363950e6  gcc/testsuite/gcc.dg/vect/slp-multitypes-9.c
! b966b5ea1577b8dbc5254e4ae59aa431  gcc/testsuite/gcc.dg/vect/slp-perm-1.c
! 3b2842a1c1ebc95c16b7619d3d426eba  gcc/testsuite/gcc.dg/vect/slp-perm-10.c
  3beafb427d12fe91313ba6b5153f34a8  gcc/testsuite/gcc.dg/vect/slp-perm-11.c
  e5c04f2ab9a5a2958b6dbccd94242115  gcc/testsuite/gcc.dg/vect/slp-perm-12.c
! bc340fa7071f0d0b32685fa8f23d2f3e  gcc/testsuite/gcc.dg/vect/slp-perm-2.c
! 8ce993773e36b7f22a78c8b5321d9e56  gcc/testsuite/gcc.dg/vect/slp-perm-3.c
! cb4a7d9b4c2a6d61cf2d8ce37a94abe6  gcc/testsuite/gcc.dg/vect/slp-perm-4.c
! f3e49dd2b21db5315552ee950626c052  gcc/testsuite/gcc.dg/vect/slp-perm-5.c
! c58ad9d59071fa75e555ec9c39f4ea8b  gcc/testsuite/gcc.dg/vect/slp-perm-6.c
! 9d6f2dd1bb9b2a2dffd6eb70572f2f03  gcc/testsuite/gcc.dg/vect/slp-perm-7.c
! fe936ca4c1d77a94e231c608a3824065  gcc/testsuite/gcc.dg/vect/slp-perm-8.c
! cfa2f44ce4f4e85152a07aa1e2b1fa89  gcc/testsuite/gcc.dg/vect/slp-perm-9.c
  1aa1e9fdfef6388c4496484bfc44a281  gcc/testsuite/gcc.dg/vect/slp-reduc-1.c
  1053e4b8dc7f2e960051d957ae4e61f5  gcc/testsuite/gcc.dg/vect/slp-reduc-10a.c
  1a977bd501160d55eb0eecdbef3712ec  gcc/testsuite/gcc.dg/vect/slp-reduc-10b.c
--- 58305,58322 ----
  fc0d735bc020a2dee72b143a0431a202  gcc/testsuite/gcc.dg/vect/slp-multitypes-7.c
  a29ec40838f0e106ac740767d8a1d364  gcc/testsuite/gcc.dg/vect/slp-multitypes-8.c
  c711cd9eff7eb5ed5d14d0fd363950e6  gcc/testsuite/gcc.dg/vect/slp-multitypes-9.c
! 39278dc7b3b88aa0cc66ae10e812b5a4  gcc/testsuite/gcc.dg/vect/slp-perm-1.c
! 456b86b9bdec95a68db8dd3f8d3f7f53  gcc/testsuite/gcc.dg/vect/slp-perm-10.c
  3beafb427d12fe91313ba6b5153f34a8  gcc/testsuite/gcc.dg/vect/slp-perm-11.c
  e5c04f2ab9a5a2958b6dbccd94242115  gcc/testsuite/gcc.dg/vect/slp-perm-12.c
! 6382cdee5bf08b8ff1d7d7c5d662e2b5  gcc/testsuite/gcc.dg/vect/slp-perm-2.c
! c122c92dc14db81cc127f7b444fb412b  gcc/testsuite/gcc.dg/vect/slp-perm-3.c
! 5ff2bc22fb7752aed7b1a4d3433ea902  gcc/testsuite/gcc.dg/vect/slp-perm-4.c
! ef60eacae0276d242910343520677d4d  gcc/testsuite/gcc.dg/vect/slp-perm-5.c
! 9e2c09c4c275d7c6d1806d6002e32ed9  gcc/testsuite/gcc.dg/vect/slp-perm-6.c
! 08d690d5bfa3d578c035a68c4ab2882c  gcc/testsuite/gcc.dg/vect/slp-perm-7.c
! 1a18a839b6988dd25d25417cf9e57fc7  gcc/testsuite/gcc.dg/vect/slp-perm-8.c
! 2120069e8a0d80e2995042b21297c6c2  gcc/testsuite/gcc.dg/vect/slp-perm-9.c
  1aa1e9fdfef6388c4496484bfc44a281  gcc/testsuite/gcc.dg/vect/slp-reduc-1.c
  1053e4b8dc7f2e960051d957ae4e61f5  gcc/testsuite/gcc.dg/vect/slp-reduc-10a.c
  1a977bd501160d55eb0eecdbef3712ec  gcc/testsuite/gcc.dg/vect/slp-reduc-10b.c
*************** cfa2f44ce4f4e85152a07aa1e2b1fa89  gcc/te
*** 55112,55122 ****
  e75c09f3eb5fab5920e6bbe5a24c7bd6  gcc/testsuite/gcc.dg/vect/slp-reduc-10d.c
  f611850bdcf6c79cc21bf0f12c5469e8  gcc/testsuite/gcc.dg/vect/slp-reduc-10e.c
  72470473142b614c9abbb4961ae363e0  gcc/testsuite/gcc.dg/vect/slp-reduc-11.c
  13f8e9309546363711eaedb177e2c8b9  gcc/testsuite/gcc.dg/vect/slp-reduc-2.c
! 75285f8513469a815d923eef56a5a8ac  gcc/testsuite/gcc.dg/vect/slp-reduc-3.c
! c55d57b7c388649326d3f1769d26a8dc  gcc/testsuite/gcc.dg/vect/slp-reduc-4.c
! 1b5987e80f4b7de162d30d061e5a4354  gcc/testsuite/gcc.dg/vect/slp-reduc-5.c
! e0e83977857b0d99ff7820be33d715b3  gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
  79681bd4a80232057373be7dcc712b09  gcc/testsuite/gcc.dg/vect/slp-reduc-7.c
  6b88b083ffbec1373a1873a7ffab2b3c  gcc/testsuite/gcc.dg/vect/slp-reduc-8.c
  47a58a2432ef206c186d1cc0b3bd5bc0  gcc/testsuite/gcc.dg/vect/slp-reduc-9.c
--- 58324,58335 ----
  e75c09f3eb5fab5920e6bbe5a24c7bd6  gcc/testsuite/gcc.dg/vect/slp-reduc-10d.c
  f611850bdcf6c79cc21bf0f12c5469e8  gcc/testsuite/gcc.dg/vect/slp-reduc-10e.c
  72470473142b614c9abbb4961ae363e0  gcc/testsuite/gcc.dg/vect/slp-reduc-11.c
+ 2b55baa2aeb47417a231e321d018033f  gcc/testsuite/gcc.dg/vect/slp-reduc-12.c
  13f8e9309546363711eaedb177e2c8b9  gcc/testsuite/gcc.dg/vect/slp-reduc-2.c
! f51f95ff41057eaf23cde404d8d413fa  gcc/testsuite/gcc.dg/vect/slp-reduc-3.c
! 89c86f9f96410c8bc70b4ce593a92d1e  gcc/testsuite/gcc.dg/vect/slp-reduc-4.c
! be95203768af55bc70788c9bc1f87d55  gcc/testsuite/gcc.dg/vect/slp-reduc-5.c
! ede5b51555ddd1cd60eabbd5224d0866  gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
  79681bd4a80232057373be7dcc712b09  gcc/testsuite/gcc.dg/vect/slp-reduc-7.c
  6b88b083ffbec1373a1873a7ffab2b3c  gcc/testsuite/gcc.dg/vect/slp-reduc-8.c
  47a58a2432ef206c186d1cc0b3bd5bc0  gcc/testsuite/gcc.dg/vect/slp-reduc-9.c
*************** b0a87850d8d88048ac704db35dcc2459  gcc/te
*** 55127,55151 ****
  8bdc194c5dbf3576077b33bb90449c00  gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c
  582f4de89dcf598a96b7dabf673209dd  gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
  cbfea86deb7a2172db8304b50540da0c  gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
! 3581110ad2b3af27f54b41f9364c1e14  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
  0d80df321da1e267172df96267f9af63  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! 997237fb8e8959841dca4c15e8d10100  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
  62faa1933c89383fd2efc5372fd647c8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1112.c
  f6febd963b483d944c8ee4be5b62cdbe  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1113.c
  cf52f123e368acb6e2ecdacc3a6eec3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1115.c
! f98c1dacd12f364b7ee1fd15c01f81bb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1119.c
  efaa17f7e9e73adc6190a31446bd7b3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s112.c
  1f99778feb8660cd3a163abf9247f420  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s113.c
  8a66acf697bcf2504928144082d7d464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s114.c
! 68708d9f2685bd5fae6ab720ca83852f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s115.c
  8816daece0171b3400ef437f83401be4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s116.c
  71ef34ee988add646fe976e86e3a18f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1161.c
  d58dfcd344355c4c2590cf4b04c4a19d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s118.c
! 0e5e95e7cf3bef9b2265f4accdfa7203  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s119.c
  59ccaef4b77350ae26e0cba8d763db60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s121.c
  e9cd016b9ff2801305d1e0ad988644b9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1213.c
  b35c2e9856d8c47fe15c1afbe3df715a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s122.c
--- 58340,58364 ----
  8bdc194c5dbf3576077b33bb90449c00  gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c
  582f4de89dcf598a96b7dabf673209dd  gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
  cbfea86deb7a2172db8304b50540da0c  gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
! d38a6ca365de8c64ad051edd81d62d6b  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
  0d80df321da1e267172df96267f9af63  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! 2bded60305772f7de251bb70ce5ae96f  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
  62faa1933c89383fd2efc5372fd647c8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1112.c
  f6febd963b483d944c8ee4be5b62cdbe  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1113.c
  cf52f123e368acb6e2ecdacc3a6eec3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1115.c
! 3b167ee6baebd14a7a670a7feb85e167  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1119.c
  efaa17f7e9e73adc6190a31446bd7b3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s112.c
  1f99778feb8660cd3a163abf9247f420  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s113.c
  8a66acf697bcf2504928144082d7d464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s114.c
! 65ef2645641c3c51947e8155b17ec94d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s115.c
  8816daece0171b3400ef437f83401be4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s116.c
  71ef34ee988add646fe976e86e3a18f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1161.c
  d58dfcd344355c4c2590cf4b04c4a19d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s118.c
! b02161f74a8f80a3e97aa0a84b9f38a4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s119.c
  59ccaef4b77350ae26e0cba8d763db60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s121.c
  e9cd016b9ff2801305d1e0ad988644b9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1213.c
  b35c2e9856d8c47fe15c1afbe3df715a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s122.c
*************** d964fdd5bad3468a8e455bfbee9320f3  gcc/te
*** 55154,55160 ****
  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
! adae3096335071cf3e8254d1f7904485  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
  395e127cfc68ba064c7a372968e52f02  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s127.c
--- 58367,58373 ----
  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
  395e127cfc68ba064c7a372968e52f02  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s127.c
*************** eb16b823c80f13ff0bcd018c1aa76df9  gcc/te
*** 55176,55197 ****
  2a3d1083c7ce395f480a0b8155ea2748  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s173.c
  3e244002926fbfb4cd8da2821ad02d48  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s174.c
  a28f0042581f0989759c860f5c0e57f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s175.c
! efb49820616c175b5945f28ff50a8639  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s176.c
  fe75dd190bca68b94872eb6dd6b58c82  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2101.c
! b25051863266eda556c3632eb211ebeb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2102.c
  767f361a57ec7fc39e42fada1468ad83  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s211.c
  170e3fec392b2b2e66f4ddebcbb412f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2111.c
  d2c04f154fe19d1bbe3122411e1a40a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s212.c
  b71770bd4d06a2b7f9fde9712a65c3f5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s221.c
  b84daf94d5420dacd3c16dcbfacc6a6f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s222.c
! 23d061fda420ae7818435a18bcf89e2e  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
! 0c75f9a6f0f322c9a7a1b3371ce54a1b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2275.c
! 132c48d471f3cbaceb5f738561767f88  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s231.c
  0e07ada68b935ff470dd5909852dd62a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s232.c
  a7f2dbf580114b2f153604e7581e2acf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s233.c
! 4c435fc1c8fd55c7fae05909b4a826b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s235.c
  e2588c07704f7f0206e90c0caf400a71  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s241.c
  96c0667d45798115c6fb862dd5c94f25  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s242.c
  47d237c29cb7dae067162bde8f8dcc5c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s243.c
--- 58389,58410 ----
  2a3d1083c7ce395f480a0b8155ea2748  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s173.c
  3e244002926fbfb4cd8da2821ad02d48  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s174.c
  a28f0042581f0989759c860f5c0e57f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s175.c
! 3e46b96045bf33fa29d8ce7696d779ed  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s176.c
  fe75dd190bca68b94872eb6dd6b58c82  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2101.c
! e73e4da8020ff25c78246ccf76e7a14d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2102.c
  767f361a57ec7fc39e42fada1468ad83  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s211.c
  170e3fec392b2b2e66f4ddebcbb412f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2111.c
  d2c04f154fe19d1bbe3122411e1a40a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s212.c
  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
  0e07ada68b935ff470dd5909852dd62a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s232.c
  a7f2dbf580114b2f153604e7581e2acf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s233.c
! a7c8c6c4dbd42841cac7d99df3fe5841  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s235.c
  e2588c07704f7f0206e90c0caf400a71  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s241.c
  96c0667d45798115c6fb862dd5c94f25  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s242.c
  47d237c29cb7dae067162bde8f8dcc5c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s243.c
*************** e7af2caa929bde4629f98c1edd91b168  gcc/te
*** 55292,55298 ****
  aca34f88c0a4f1aa591e8ef4740aeb4f  gcc/testsuite/gcc.dg/vect/vect-10.c
  f5f0b6b4230b22ceb5401a1e94980c94  gcc/testsuite/gcc.dg/vect/vect-100.c
  79e64883f6d93078dd0505e884592f90  gcc/testsuite/gcc.dg/vect/vect-103.c
! 79ad375e0b7f85ff757883a28c335836  gcc/testsuite/gcc.dg/vect/vect-104.c
  f20728c01bde8cdddc275654c9a4581c  gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
  802f3ecb6987126c579bf634fee3d9a1  gcc/testsuite/gcc.dg/vect/vect-105.c
  1777b79b9a9aaf6d71cece6de510b242  gcc/testsuite/gcc.dg/vect/vect-106.c
--- 58505,58511 ----
  aca34f88c0a4f1aa591e8ef4740aeb4f  gcc/testsuite/gcc.dg/vect/vect-10.c
  f5f0b6b4230b22ceb5401a1e94980c94  gcc/testsuite/gcc.dg/vect/vect-100.c
  79e64883f6d93078dd0505e884592f90  gcc/testsuite/gcc.dg/vect/vect-103.c
! 1476246ed24a11b898363a0ef08dce14  gcc/testsuite/gcc.dg/vect/vect-104.c
  f20728c01bde8cdddc275654c9a4581c  gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
  802f3ecb6987126c579bf634fee3d9a1  gcc/testsuite/gcc.dg/vect/vect-105.c
  1777b79b9a9aaf6d71cece6de510b242  gcc/testsuite/gcc.dg/vect/vect-106.c
*************** db1a7c3b3032004dd8b70df406344e08  gcc/te
*** 55398,55406 ****
  651e64d4e4fcc593b4dce8f3362d9a37  gcc/testsuite/gcc.dg/vect/vect-80-big-array.c
  3afbd7e419d2ca1e9fd54a3a19e9ee42  gcc/testsuite/gcc.dg/vect/vect-80.c
  8279bd3b2e82fdbcbe0fd8ace21ada53  gcc/testsuite/gcc.dg/vect/vect-82.c
! a0adf125c18e8105a6f239d50b657d47  gcc/testsuite/gcc.dg/vect/vect-82_64.c
  106d79d6bcb38d4cbdbc06db2f4fb8ed  gcc/testsuite/gcc.dg/vect/vect-83.c
! 6bb1144ef42f3733e61d8ddd9a244b5c  gcc/testsuite/gcc.dg/vect/vect-83_64.c
  e7e20cc1acf393245d4f75a07d5dffb6  gcc/testsuite/gcc.dg/vect/vect-85-big-array.c
  b5a5a2481630aee0cf4695ed88414f4a  gcc/testsuite/gcc.dg/vect/vect-85.c
  17f15e5847566c5e7b9c2dd3f3c8d1eb  gcc/testsuite/gcc.dg/vect/vect-86.c
--- 58611,58619 ----
  651e64d4e4fcc593b4dce8f3362d9a37  gcc/testsuite/gcc.dg/vect/vect-80-big-array.c
  3afbd7e419d2ca1e9fd54a3a19e9ee42  gcc/testsuite/gcc.dg/vect/vect-80.c
  8279bd3b2e82fdbcbe0fd8ace21ada53  gcc/testsuite/gcc.dg/vect/vect-82.c
! edace2ec24b1572ffb27a28330a9f9df  gcc/testsuite/gcc.dg/vect/vect-82_64.c
  106d79d6bcb38d4cbdbc06db2f4fb8ed  gcc/testsuite/gcc.dg/vect/vect-83.c
! 2d60b61a7108cc1a58cbeb3eb364ea1e  gcc/testsuite/gcc.dg/vect/vect-83_64.c
  e7e20cc1acf393245d4f75a07d5dffb6  gcc/testsuite/gcc.dg/vect/vect-85-big-array.c
  b5a5a2481630aee0cf4695ed88414f4a  gcc/testsuite/gcc.dg/vect/vect-85.c
  17f15e5847566c5e7b9c2dd3f3c8d1eb  gcc/testsuite/gcc.dg/vect/vect-86.c
*************** d6761ff8f8adad6b73db1122bc8a345a  gcc/te
*** 55474,55480 ****
  8fb3c6d5aa684be25647bed396f9df35  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c
  d6053ca863d307451051a9139b28ecab  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c
  c93223b3b90dcc207fe2e6c5f30f3d56  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c
! 9352c9f69e981ec3f7c49dac5952b2c5  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1-not.c
  542a4fb870ce2a07d8520f9a08059aa7  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1.c
  3d71306e2f6a74baf2d7541296b48868  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2-not.c
  6b997782291773fdbe873736d56b683d  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2.c
--- 58687,58693 ----
  8fb3c6d5aa684be25647bed396f9df35  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c
  d6053ca863d307451051a9139b28ecab  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c
  c93223b3b90dcc207fe2e6c5f30f3d56  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c
! c427f09611d7bf3c1dac4636914b26fb  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1-not.c
  542a4fb870ce2a07d8520f9a08059aa7  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1.c
  3d71306e2f6a74baf2d7541296b48868  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2-not.c
  6b997782291773fdbe873736d56b683d  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2.c
*************** c35993d21df9a7d36f655e03f1da3108  gcc/te
*** 55500,55506 ****
  608bd66ff4aa5e54d6f8083516652968  gcc/testsuite/gcc.dg/vect/vect-complex-1.c
  9d03085c10780c6ee3c0a94594cde8eb  gcc/testsuite/gcc.dg/vect/vect-complex-2.c
  43d62511a450e6ab8e6b88de0c2cc729  gcc/testsuite/gcc.dg/vect/vect-complex-4.c
! eafef82eb0f50e37d2fec2ed962bb498  gcc/testsuite/gcc.dg/vect/vect-complex-5.c
  91ef7a7b890b574045a4ca1657218d31  gcc/testsuite/gcc.dg/vect/vect-cond-1.c
  3e57154a5aa83073a5eb0f62b0e58ff9  gcc/testsuite/gcc.dg/vect/vect-cond-10.c
  3cd897ddd5a4a1bdca666ca184b9656f  gcc/testsuite/gcc.dg/vect/vect-cond-11.c
--- 58713,58719 ----
  608bd66ff4aa5e54d6f8083516652968  gcc/testsuite/gcc.dg/vect/vect-complex-1.c
  9d03085c10780c6ee3c0a94594cde8eb  gcc/testsuite/gcc.dg/vect/vect-complex-2.c
  43d62511a450e6ab8e6b88de0c2cc729  gcc/testsuite/gcc.dg/vect/vect-complex-4.c
! 6abdab580a1ea4318924afad06b876b4  gcc/testsuite/gcc.dg/vect/vect-complex-5.c
  91ef7a7b890b574045a4ca1657218d31  gcc/testsuite/gcc.dg/vect/vect-cond-1.c
  3e57154a5aa83073a5eb0f62b0e58ff9  gcc/testsuite/gcc.dg/vect/vect-cond-10.c
  3cd897ddd5a4a1bdca666ca184b9656f  gcc/testsuite/gcc.dg/vect/vect-cond-11.c
*************** f2f658e2def4baf3334f43729b62c379  gcc/te
*** 55525,55540 ****
  0b977702a40013afcdb78bddf04bc009  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-1.c
  81f1d27e9fbd5b434349fe98c68f7243  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-2.c
  816615d056597f69ca99524b8d4ea447  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c
! 82c3be2ff16b4aac2514b62d99a32ada  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c
  354271b6665dd6a9f399e33f82de844b  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-5.c
  32eea07216ed1bd222c4bbe9811ae8ea  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-6.c
  ff17ac63b00c193f6f6017712dcf34fc  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c
  9e4943d8d4000c4fea905c706d2fe3c3  gcc/testsuite/gcc.dg/vect/vect-cost-model-1.c
  ef8210af227234a14b841ff219badabd  gcc/testsuite/gcc.dg/vect/vect-cost-model-2.c
  edef51a5b7cca27aacc1d70737e46fea  gcc/testsuite/gcc.dg/vect/vect-cost-model-3.c
  f144da89da4331752490c122d7327ead  gcc/testsuite/gcc.dg/vect/vect-cost-model-4.c
  6ceefd863dca3cb143750c2a79944baf  gcc/testsuite/gcc.dg/vect/vect-cost-model-5.c
- 46d80b9e652277c492accd6a5c0fbc8e  gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c
  35db2319e113a5079c89b99b507b6be9  gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
  f75658296c3c00611ae0ac2b4a10d10f  gcc/testsuite/gcc.dg/vect/vect-cselim-2.c
  dce2415ccc21ee8df7ffd1b533a4cd37  gcc/testsuite/gcc.dg/vect/vect-ctor-1.c
--- 58738,58758 ----
  0b977702a40013afcdb78bddf04bc009  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-1.c
  81f1d27e9fbd5b434349fe98c68f7243  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-2.c
  816615d056597f69ca99524b8d4ea447  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c
! b15f8fd0b715cb8e1c690a9a72c9a144  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c
  354271b6665dd6a9f399e33f82de844b  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-5.c
  32eea07216ed1bd222c4bbe9811ae8ea  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-6.c
  ff17ac63b00c193f6f6017712dcf34fc  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c
+ 8419e829de4809d333c2e87b82eb053e  gcc/testsuite/gcc.dg/vect/vect-conditional_store_1.c
+ bb86904c6f154ea466680f91a3f60ebe  gcc/testsuite/gcc.dg/vect/vect-conditional_store_2.c
+ 83a754964b9cc5ebb7d0260a6b8f768c  gcc/testsuite/gcc.dg/vect/vect-conditional_store_3.c
+ 9a44e6584f441cb7ea4703d721469d9e  gcc/testsuite/gcc.dg/vect/vect-conditional_store_4.c
+ c04376f32a289b3c486b378f9cc2b05e  gcc/testsuite/gcc.dg/vect/vect-conditional_store_5.c
+ bf7675ede652e0fb86a5668c96d71ec7  gcc/testsuite/gcc.dg/vect/vect-conditional_store_6.c
  9e4943d8d4000c4fea905c706d2fe3c3  gcc/testsuite/gcc.dg/vect/vect-cost-model-1.c
  ef8210af227234a14b841ff219badabd  gcc/testsuite/gcc.dg/vect/vect-cost-model-2.c
  edef51a5b7cca27aacc1d70737e46fea  gcc/testsuite/gcc.dg/vect/vect-cost-model-3.c
  f144da89da4331752490c122d7327ead  gcc/testsuite/gcc.dg/vect/vect-cost-model-4.c
  6ceefd863dca3cb143750c2a79944baf  gcc/testsuite/gcc.dg/vect/vect-cost-model-5.c
  35db2319e113a5079c89b99b507b6be9  gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
  f75658296c3c00611ae0ac2b4a10d10f  gcc/testsuite/gcc.dg/vect/vect-cselim-2.c
  dce2415ccc21ee8df7ffd1b533a4cd37  gcc/testsuite/gcc.dg/vect/vect-ctor-1.c
*************** dce2415ccc21ee8df7ffd1b533a4cd37  gcc/te
*** 55545,55555 ****
  53af242baa1f9bddab22c7a4c5a2f2de  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-4.c
  8e685fec09da3432deb6dc0cbcd50437  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-5.c
  6b89c52b4d7413f07b81db5f85524c96  gcc/testsuite/gcc.dg/vect/vect-div-bitmask.h
  f59f861b2ae1377152bf61c8fa7077c0  gcc/testsuite/gcc.dg/vect/vect-double-reduc-1.c
  afb9c2452043c4e42b352d4e8ff76fc5  gcc/testsuite/gcc.dg/vect/vect-double-reduc-2.c
  5ebd2c1f7178618c3a2d6ef2ecb354d9  gcc/testsuite/gcc.dg/vect/vect-double-reduc-3.c
  623a5728515061a4eac5d78753cfa10b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-4.c
! 63d04580ed047cf42018652aeb701b07  gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
  3eb5520691c0475a6efd495067a16b10  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6-big-array.c
  064fad2dfa034410343d195edfc9a26d  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6.c
  41840760f1977f481892205b1118db9b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-7.c
--- 58763,58774 ----
  53af242baa1f9bddab22c7a4c5a2f2de  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-4.c
  8e685fec09da3432deb6dc0cbcd50437  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-5.c
  6b89c52b4d7413f07b81db5f85524c96  gcc/testsuite/gcc.dg/vect/vect-div-bitmask.h
+ 7a5a3a544d83d3769c3e0bbc06fe0e94  gcc/testsuite/gcc.dg/vect/vect-dotprod-conv-optab.c
  f59f861b2ae1377152bf61c8fa7077c0  gcc/testsuite/gcc.dg/vect/vect-double-reduc-1.c
  afb9c2452043c4e42b352d4e8ff76fc5  gcc/testsuite/gcc.dg/vect/vect-double-reduc-2.c
  5ebd2c1f7178618c3a2d6ef2ecb354d9  gcc/testsuite/gcc.dg/vect/vect-double-reduc-3.c
  623a5728515061a4eac5d78753cfa10b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-4.c
! 1449c5d1c492101a5f3a4b36858b6fff  gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
  3eb5520691c0475a6efd495067a16b10  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6-big-array.c
  064fad2dfa034410343d195edfc9a26d  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6.c
  41840760f1977f481892205b1118db9b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-7.c
*************** f5e094c22b477cb4f07c83c1a160caec  gcc/te
*** 55575,55585 ****
  eaa73217c152faaac7e01f0ac44c6ff2  gcc/testsuite/gcc.dg/vect/vect-early-break_104-pr113373.c
  10908e4c8bf983ab4d74d15f75e66883  gcc/testsuite/gcc.dg/vect/vect-early-break_106-pr113374.c
  6edae31e5ed57603990fcbd8f0053e3a  gcc/testsuite/gcc.dg/vect/vect-early-break_107-pr113364.c
! c33e7667a6b2f9344a75c204b9cd61b7  gcc/testsuite/gcc.dg/vect/vect-early-break_108-pr113588.c
! b2cc21facd8b22244a7a6a1e92700e70  gcc/testsuite/gcc.dg/vect/vect-early-break_109-pr113588.c
  dd5b6d7f602a7381c1b370609b86288f  gcc/testsuite/gcc.dg/vect/vect-early-break_11.c
! da0f156483470264ab13e178b41053f2  gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c
! 96206e4989ca62976eb7566af8a1d4db  gcc/testsuite/gcc.dg/vect/vect-early-break_111-pr113731.c
  8b222a03e0db91e062fe36876169ce5e  gcc/testsuite/gcc.dg/vect/vect-early-break_112-pr113750.c
  15368cf8744f54bf14c68c678e1ffca9  gcc/testsuite/gcc.dg/vect/vect-early-break_113-pr113750.c
  e6e52f76739d8182e2952bdeb89373a9  gcc/testsuite/gcc.dg/vect/vect-early-break_114-pr113750.c
--- 58794,58804 ----
  eaa73217c152faaac7e01f0ac44c6ff2  gcc/testsuite/gcc.dg/vect/vect-early-break_104-pr113373.c
  10908e4c8bf983ab4d74d15f75e66883  gcc/testsuite/gcc.dg/vect/vect-early-break_106-pr113374.c
  6edae31e5ed57603990fcbd8f0053e3a  gcc/testsuite/gcc.dg/vect/vect-early-break_107-pr113364.c
! 7ace62f77e05cab4b22dd7c49b3d1256  gcc/testsuite/gcc.dg/vect/vect-early-break_108-pr113588.c
! ce8f5529e89a7c3de7d47a11f86852d2  gcc/testsuite/gcc.dg/vect/vect-early-break_109-pr113588.c
  dd5b6d7f602a7381c1b370609b86288f  gcc/testsuite/gcc.dg/vect/vect-early-break_11.c
! cdedeb73b4ef09e23912c397632e3546  gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c
! 19933136e788fbb3f10ec28a5fbc48ab  gcc/testsuite/gcc.dg/vect/vect-early-break_111-pr113731.c
  8b222a03e0db91e062fe36876169ce5e  gcc/testsuite/gcc.dg/vect/vect-early-break_112-pr113750.c
  15368cf8744f54bf14c68c678e1ffca9  gcc/testsuite/gcc.dg/vect/vect-early-break_113-pr113750.c
  e6e52f76739d8182e2952bdeb89373a9  gcc/testsuite/gcc.dg/vect/vect-early-break_114-pr113750.c
*************** e243ff34913f43920d226f1386edcc42  gcc/te
*** 55590,55619 ****
  167e98f293e4c8f2e92b6355b3e65470  gcc/testsuite/gcc.dg/vect/vect-early-break_119-pr114068.c
  0847d015f2e5553ecc27077a0495d022  gcc/testsuite/gcc.dg/vect/vect-early-break_12.c
  821a79ffc8fbc8143e9dfabd5919af42  gcc/testsuite/gcc.dg/vect/vect-early-break_120-pr114099.c
! c2f9785b71ae5973a478fe7acb86030f  gcc/testsuite/gcc.dg/vect/vect-early-break_121-pr114081.c
! 8c265e723c35b7308f17126456accb93  gcc/testsuite/gcc.dg/vect/vect-early-break_122-pr114239.c
  d5d9976efc22ed1298b4dc18d8f9369d  gcc/testsuite/gcc.dg/vect/vect-early-break_123-pr114297.c
! 3bc525ac3a0c692e58024ee1f6dfad8d  gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c
  31652e7c628ce651ee20a71bc455f9ea  gcc/testsuite/gcc.dg/vect/vect-early-break_125-pr114403.c
  e664ac062bb0e564d2a811a548b6923f  gcc/testsuite/gcc.dg/vect/vect-early-break_13.c
  73bc7475d6af2bd77455abec5df316e4  gcc/testsuite/gcc.dg/vect/vect-early-break_14.c
  e90473e2ecf7c08db9278bdca5060773  gcc/testsuite/gcc.dg/vect/vect-early-break_15.c
  2232d395ceff11af9b28f269e86162c9  gcc/testsuite/gcc.dg/vect/vect-early-break_16.c
  74848a5e9be64a5356628885f52c286b  gcc/testsuite/gcc.dg/vect/vect-early-break_17.c
! 4158b0a949b05bb0d018271966049405  gcc/testsuite/gcc.dg/vect/vect-early-break_18.c
  faae1dc73ce526e78bf82181d754f36b  gcc/testsuite/gcc.dg/vect/vect-early-break_19.c
! 0e5a6c011dde934aa2d4213ba9f485e4  gcc/testsuite/gcc.dg/vect/vect-early-break_2.c
! 49c4836e297fc9907d132082ebd5b97e  gcc/testsuite/gcc.dg/vect/vect-early-break_20.c
! a79a55edebe746e36aa14e5c907e0478  gcc/testsuite/gcc.dg/vect/vect-early-break_21.c
! 9128076c4682498fb96a3b6c05da1507  gcc/testsuite/gcc.dg/vect/vect-early-break_22.c
  d67fe4039b98f5ade1cfa4ba95d7ebb9  gcc/testsuite/gcc.dg/vect/vect-early-break_23.c
  c0370a5b569f3d56987aeff5c8e78356  gcc/testsuite/gcc.dg/vect/vect-early-break_24.c
  c6478ec076451d018cdfd7229ea3d987  gcc/testsuite/gcc.dg/vect/vect-early-break_25.c
! 3b64d3ca85e57cba2d381d92f015a678  gcc/testsuite/gcc.dg/vect/vect-early-break_26.c
  414570f14991cc52da4dac67f95cc334  gcc/testsuite/gcc.dg/vect/vect-early-break_27.c
  5d2258f925c074920b13a3e08555af4e  gcc/testsuite/gcc.dg/vect/vect-early-break_28.c
  2b1e6ef5a85a7158949d35eb24be42fe  gcc/testsuite/gcc.dg/vect/vect-early-break_29.c
! 7347a7763c9e0add11ab30489ecaa280  gcc/testsuite/gcc.dg/vect/vect-early-break_3.c
  32eb8ee43e7f2da0dcc02df2fdb5a91c  gcc/testsuite/gcc.dg/vect/vect-early-break_30.c
  99824c771bc53546b513f0b7cadc27d4  gcc/testsuite/gcc.dg/vect/vect-early-break_31.c
  66ef6ef1c02b6c96da818d9a0f34ce47  gcc/testsuite/gcc.dg/vect/vect-early-break_32.c
--- 58809,58857 ----
  167e98f293e4c8f2e92b6355b3e65470  gcc/testsuite/gcc.dg/vect/vect-early-break_119-pr114068.c
  0847d015f2e5553ecc27077a0495d022  gcc/testsuite/gcc.dg/vect/vect-early-break_12.c
  821a79ffc8fbc8143e9dfabd5919af42  gcc/testsuite/gcc.dg/vect/vect-early-break_120-pr114099.c
! b226b6f53bd70461821289d997fee0d4  gcc/testsuite/gcc.dg/vect/vect-early-break_121-pr114081.c
! a59d274d6365cf9bb0ad14ad6ef290c0  gcc/testsuite/gcc.dg/vect/vect-early-break_122-pr114239.c
  d5d9976efc22ed1298b4dc18d8f9369d  gcc/testsuite/gcc.dg/vect/vect-early-break_123-pr114297.c
! 35b77098d9e11dfde169e9d074def2b7  gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c
  31652e7c628ce651ee20a71bc455f9ea  gcc/testsuite/gcc.dg/vect/vect-early-break_125-pr114403.c
+ 8b6cf29947b41a70860e1fa16c6f7528  gcc/testsuite/gcc.dg/vect/vect-early-break_126.c
+ ea7c9a746e3125f6b434072c00ea29fa  gcc/testsuite/gcc.dg/vect/vect-early-break_127.c
+ 4335fdfc8133dcd50e09994861922ccd  gcc/testsuite/gcc.dg/vect/vect-early-break_128.c
+ 5554353271726c4477fed98999e620fd  gcc/testsuite/gcc.dg/vect/vect-early-break_129-pr117140.c
  e664ac062bb0e564d2a811a548b6923f  gcc/testsuite/gcc.dg/vect/vect-early-break_13.c
+ 95878f8b65e304ccc02b407a0ce3c092  gcc/testsuite/gcc.dg/vect/vect-early-break_130-pr117176.c
+ 769e5e41335b8540f01d7339bc8e4f20  gcc/testsuite/gcc.dg/vect/vect-early-break_130.c
+ d6fe58fbb5328299bfc1d586c04ceca1  gcc/testsuite/gcc.dg/vect/vect-early-break_131-pr118269.c
+ 237209e01ae11c875cbd051b7ef0e80c  gcc/testsuite/gcc.dg/vect/vect-early-break_132-pr118464.c
+ ef9e29146dd2fe891b8acd9c6cfb3fa0  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa1.c
+ b87af2befdcd6ef5944c1d0bc07f0c57  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa10.c
+ 8d1554d15108e397853b979905316320  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa11.c
+ 152dacce43373965fa7487085112ad22  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa2.c
+ d0fc4055a44603d4a551eb8b3201b367  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa3.c
+ 7c20340133986a2c41b6c67686e47303  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa4.c
+ d6220e03e06d838a0de45843cf47a605  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa5.c
+ 2e864ab4bcc93331fcded9fa3597129c  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa6.c
+ e3103917941df88fd427f58c02de199c  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa7.c
+ a9f60b255bd045a55a1c552ca8a26db4  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa8.c
+ 0931b2635277269f10668825e1fef46f  gcc/testsuite/gcc.dg/vect/vect-early-break_133_pfa9.c
  73bc7475d6af2bd77455abec5df316e4  gcc/testsuite/gcc.dg/vect/vect-early-break_14.c
  e90473e2ecf7c08db9278bdca5060773  gcc/testsuite/gcc.dg/vect/vect-early-break_15.c
  2232d395ceff11af9b28f269e86162c9  gcc/testsuite/gcc.dg/vect/vect-early-break_16.c
  74848a5e9be64a5356628885f52c286b  gcc/testsuite/gcc.dg/vect/vect-early-break_17.c
! ec5b24e037394b6125e918d781feed60  gcc/testsuite/gcc.dg/vect/vect-early-break_18.c
  faae1dc73ce526e78bf82181d754f36b  gcc/testsuite/gcc.dg/vect/vect-early-break_19.c
! a31e718f9ad4abaa384283c92f2239f2  gcc/testsuite/gcc.dg/vect/vect-early-break_2.c
! 09fbfbe350919c96b10ee94ccbd83062  gcc/testsuite/gcc.dg/vect/vect-early-break_20.c
! 026f13a47b4d9aee3380ffa47480afb2  gcc/testsuite/gcc.dg/vect/vect-early-break_21.c
! 4b24487234d76c31a6b17487d7c6777a  gcc/testsuite/gcc.dg/vect/vect-early-break_22.c
  d67fe4039b98f5ade1cfa4ba95d7ebb9  gcc/testsuite/gcc.dg/vect/vect-early-break_23.c
  c0370a5b569f3d56987aeff5c8e78356  gcc/testsuite/gcc.dg/vect/vect-early-break_24.c
  c6478ec076451d018cdfd7229ea3d987  gcc/testsuite/gcc.dg/vect/vect-early-break_25.c
! 7fddbf82c925a97f6f3290e7c999bef2  gcc/testsuite/gcc.dg/vect/vect-early-break_26.c
  414570f14991cc52da4dac67f95cc334  gcc/testsuite/gcc.dg/vect/vect-early-break_27.c
  5d2258f925c074920b13a3e08555af4e  gcc/testsuite/gcc.dg/vect/vect-early-break_28.c
  2b1e6ef5a85a7158949d35eb24be42fe  gcc/testsuite/gcc.dg/vect/vect-early-break_29.c
! 9899b61aa4b745bcfd4ddb1f27a783da  gcc/testsuite/gcc.dg/vect/vect-early-break_3.c
  32eb8ee43e7f2da0dcc02df2fdb5a91c  gcc/testsuite/gcc.dg/vect/vect-early-break_30.c
  99824c771bc53546b513f0b7cadc27d4  gcc/testsuite/gcc.dg/vect/vect-early-break_31.c
  66ef6ef1c02b6c96da818d9a0f34ce47  gcc/testsuite/gcc.dg/vect/vect-early-break_32.c
*************** c6478ec076451d018cdfd7229ea3d987  gcc/te
*** 55622,55635 ****
  96ef29c46f419a39a1dedbea923246bc  gcc/testsuite/gcc.dg/vect/vect-early-break_35.c
  022966c92ec61ab5cf18db41dbacdd07  gcc/testsuite/gcc.dg/vect/vect-early-break_36.c
  9e063714246e3fdcc0e977fd1c8c35b9  gcc/testsuite/gcc.dg/vect/vect-early-break_37.c
! 9465b4eaca5f3f27a694788bc4fca8b0  gcc/testsuite/gcc.dg/vect/vect-early-break_38.c
! 5d7ade500317a4489fbfeb9915ccf147  gcc/testsuite/gcc.dg/vect/vect-early-break_39.c
  b79992b539b9fdd81c73ef95ccc8a698  gcc/testsuite/gcc.dg/vect/vect-early-break_4.c
  7761ce13a32a18b3ec7db110a8b90cbd  gcc/testsuite/gcc.dg/vect/vect-early-break_40.c
  558c156f60ccffa54575ac120eab374f  gcc/testsuite/gcc.dg/vect/vect-early-break_41.c
  c66141b356f45606226340093d65e0d4  gcc/testsuite/gcc.dg/vect/vect-early-break_42.c
! 152797ca51457def0cde7c1330455165  gcc/testsuite/gcc.dg/vect/vect-early-break_43.c
! 152797ca51457def0cde7c1330455165  gcc/testsuite/gcc.dg/vect/vect-early-break_44.c
  7ca2fa7c66ce922aab0bac38bf5cbe31  gcc/testsuite/gcc.dg/vect/vect-early-break_45.c
  fb4a01843167a114839fe928e7182c43  gcc/testsuite/gcc.dg/vect/vect-early-break_46.c
  1eaa5028cdd6dcdddaf57a4d7a7a2bc2  gcc/testsuite/gcc.dg/vect/vect-early-break_47.c
--- 58860,58873 ----
  96ef29c46f419a39a1dedbea923246bc  gcc/testsuite/gcc.dg/vect/vect-early-break_35.c
  022966c92ec61ab5cf18db41dbacdd07  gcc/testsuite/gcc.dg/vect/vect-early-break_36.c
  9e063714246e3fdcc0e977fd1c8c35b9  gcc/testsuite/gcc.dg/vect/vect-early-break_37.c
! b1864d1f0bb0845c92996f95385d7864  gcc/testsuite/gcc.dg/vect/vect-early-break_38.c
! 89751ddce3a64f55040ed3781e42b3d4  gcc/testsuite/gcc.dg/vect/vect-early-break_39.c
  b79992b539b9fdd81c73ef95ccc8a698  gcc/testsuite/gcc.dg/vect/vect-early-break_4.c
  7761ce13a32a18b3ec7db110a8b90cbd  gcc/testsuite/gcc.dg/vect/vect-early-break_40.c
  558c156f60ccffa54575ac120eab374f  gcc/testsuite/gcc.dg/vect/vect-early-break_41.c
  c66141b356f45606226340093d65e0d4  gcc/testsuite/gcc.dg/vect/vect-early-break_42.c
! 1ea872bfccc024b55547efc2ab3829b2  gcc/testsuite/gcc.dg/vect/vect-early-break_43.c
! 1ea872bfccc024b55547efc2ab3829b2  gcc/testsuite/gcc.dg/vect/vect-early-break_44.c
  7ca2fa7c66ce922aab0bac38bf5cbe31  gcc/testsuite/gcc.dg/vect/vect-early-break_45.c
  fb4a01843167a114839fe928e7182c43  gcc/testsuite/gcc.dg/vect/vect-early-break_46.c
  1eaa5028cdd6dcdddaf57a4d7a7a2bc2  gcc/testsuite/gcc.dg/vect/vect-early-break_47.c
*************** a5b43e5af772bc8bb12357c98990bc22  gcc/te
*** 55639,55663 ****
  747e14cd2aefae21174fa633459a497c  gcc/testsuite/gcc.dg/vect/vect-early-break_50.c
  cb74e82e285dc1e77625b4824212b14a  gcc/testsuite/gcc.dg/vect/vect-early-break_51.c
  3efbc9af84b1e7c0ba4b15e63613cb4f  gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
! 215c047e92be41f805a64d656508b472  gcc/testsuite/gcc.dg/vect/vect-early-break_53.c
  2b148b4ecaed809d92b99c39a15d788c  gcc/testsuite/gcc.dg/vect/vect-early-break_54.c
  cedec433c63e1267dec0f94451d7b0f7  gcc/testsuite/gcc.dg/vect/vect-early-break_55.c
! a51d9528ef3bdbad44d7168656adb838  gcc/testsuite/gcc.dg/vect/vect-early-break_56.c
! 42603f6f5fb41c91438fdc5eda8b92b4  gcc/testsuite/gcc.dg/vect/vect-early-break_57.c
  7a2cc4db878519e2c4422ad2ae2ad57e  gcc/testsuite/gcc.dg/vect/vect-early-break_58.c
  5122cb2a84181ea43d8cf23ed9b437a5  gcc/testsuite/gcc.dg/vect/vect-early-break_59.c
! ae59ba9f62def7e8a6f229318c3924d9  gcc/testsuite/gcc.dg/vect/vect-early-break_6.c
  81232e4d3ee549d9cb01c996a0681602  gcc/testsuite/gcc.dg/vect/vect-early-break_60.c
  68b398bb93a046ee564aac321fc657a3  gcc/testsuite/gcc.dg/vect/vect-early-break_61.c
  203db8a8d255435fcd7ba086f2394479  gcc/testsuite/gcc.dg/vect/vect-early-break_62.c
  b1036eb8e75ee2093f4d523b69de440b  gcc/testsuite/gcc.dg/vect/vect-early-break_63.c
  51192e8cdd54834f8aa1922866d1971b  gcc/testsuite/gcc.dg/vect/vect-early-break_64.c
! 4b5b37d4436a58ee3a242f230d37875b  gcc/testsuite/gcc.dg/vect/vect-early-break_65.c
  db5d79c4f96be8ff0ce93fc1afe9708d  gcc/testsuite/gcc.dg/vect/vect-early-break_66.c
  67e8ce34107e3d47c129f3803abe29b3  gcc/testsuite/gcc.dg/vect/vect-early-break_67.c
  16099ffea25a9e9474023fadeb9c9c7a  gcc/testsuite/gcc.dg/vect/vect-early-break_68.c
  db1064c94b8ef718b2d2b5ba9789a5df  gcc/testsuite/gcc.dg/vect/vect-early-break_69.c
! e7bd7c8cf47327826a3023b1b5784c10  gcc/testsuite/gcc.dg/vect/vect-early-break_7.c
  676f8999fc3cbf13f062df9506366a66  gcc/testsuite/gcc.dg/vect/vect-early-break_70.c
  3a8f7b84d76fc906aa5ce256b57476df  gcc/testsuite/gcc.dg/vect/vect-early-break_71.c
  7da05005599d01b464d163704e0b0c8e  gcc/testsuite/gcc.dg/vect/vect-early-break_72.c
--- 58877,58901 ----
  747e14cd2aefae21174fa633459a497c  gcc/testsuite/gcc.dg/vect/vect-early-break_50.c
  cb74e82e285dc1e77625b4824212b14a  gcc/testsuite/gcc.dg/vect/vect-early-break_51.c
  3efbc9af84b1e7c0ba4b15e63613cb4f  gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
! dcc3e392d1541bca93c5897e85d33746  gcc/testsuite/gcc.dg/vect/vect-early-break_53.c
  2b148b4ecaed809d92b99c39a15d788c  gcc/testsuite/gcc.dg/vect/vect-early-break_54.c
  cedec433c63e1267dec0f94451d7b0f7  gcc/testsuite/gcc.dg/vect/vect-early-break_55.c
! 6647328ac9fde21e56b05df46b1b4005  gcc/testsuite/gcc.dg/vect/vect-early-break_56.c
! 647d8181d0e582b601b17f4039b9987e  gcc/testsuite/gcc.dg/vect/vect-early-break_57.c
  7a2cc4db878519e2c4422ad2ae2ad57e  gcc/testsuite/gcc.dg/vect/vect-early-break_58.c
  5122cb2a84181ea43d8cf23ed9b437a5  gcc/testsuite/gcc.dg/vect/vect-early-break_59.c
! 4037649eccb3af6ded368e6735602b4e  gcc/testsuite/gcc.dg/vect/vect-early-break_6.c
  81232e4d3ee549d9cb01c996a0681602  gcc/testsuite/gcc.dg/vect/vect-early-break_60.c
  68b398bb93a046ee564aac321fc657a3  gcc/testsuite/gcc.dg/vect/vect-early-break_61.c
  203db8a8d255435fcd7ba086f2394479  gcc/testsuite/gcc.dg/vect/vect-early-break_62.c
  b1036eb8e75ee2093f4d523b69de440b  gcc/testsuite/gcc.dg/vect/vect-early-break_63.c
  51192e8cdd54834f8aa1922866d1971b  gcc/testsuite/gcc.dg/vect/vect-early-break_64.c
! 83e79e301293a75cfbead24f8daa5ed6  gcc/testsuite/gcc.dg/vect/vect-early-break_65.c
  db5d79c4f96be8ff0ce93fc1afe9708d  gcc/testsuite/gcc.dg/vect/vect-early-break_66.c
  67e8ce34107e3d47c129f3803abe29b3  gcc/testsuite/gcc.dg/vect/vect-early-break_67.c
  16099ffea25a9e9474023fadeb9c9c7a  gcc/testsuite/gcc.dg/vect/vect-early-break_68.c
  db1064c94b8ef718b2d2b5ba9789a5df  gcc/testsuite/gcc.dg/vect/vect-early-break_69.c
! aecf6c58f0d6b5b6c59beb4f551ab6b4  gcc/testsuite/gcc.dg/vect/vect-early-break_7.c
  676f8999fc3cbf13f062df9506366a66  gcc/testsuite/gcc.dg/vect/vect-early-break_70.c
  3a8f7b84d76fc906aa5ce256b57476df  gcc/testsuite/gcc.dg/vect/vect-early-break_71.c
  7da05005599d01b464d163704e0b0c8e  gcc/testsuite/gcc.dg/vect/vect-early-break_72.c
*************** e7bd7c8cf47327826a3023b1b5784c10  gcc/te
*** 55668,55676 ****
  dc4a94e183149529531a4aad8dd44a32  gcc/testsuite/gcc.dg/vect/vect-early-break_77.c
  40d99e15bd59e59bda39cca2ef20c2c9  gcc/testsuite/gcc.dg/vect/vect-early-break_78.c
  c204b8cf85750419aeeef52cb269a4da  gcc/testsuite/gcc.dg/vect/vect-early-break_79.c
! 4a16e18a7b94d9e9a8665115cff3a900  gcc/testsuite/gcc.dg/vect/vect-early-break_8.c
  77b5c34dd9127f0e9d619402fefce6f6  gcc/testsuite/gcc.dg/vect/vect-early-break_80.c
! 8aa94cc89ee38a0b7f67c809fa1e7ea2  gcc/testsuite/gcc.dg/vect/vect-early-break_81.c
  747c6c84b17006ab909052926a6333cb  gcc/testsuite/gcc.dg/vect/vect-early-break_82.c
  95dc32a8163faca86b5cc17ce002bbff  gcc/testsuite/gcc.dg/vect/vect-early-break_83.c
  6d629830468ec4d68071b15e22b45d3e  gcc/testsuite/gcc.dg/vect/vect-early-break_84.c
--- 58906,58914 ----
  dc4a94e183149529531a4aad8dd44a32  gcc/testsuite/gcc.dg/vect/vect-early-break_77.c
  40d99e15bd59e59bda39cca2ef20c2c9  gcc/testsuite/gcc.dg/vect/vect-early-break_78.c
  c204b8cf85750419aeeef52cb269a4da  gcc/testsuite/gcc.dg/vect/vect-early-break_79.c
! cee5be21b527f749595451ca4c639d78  gcc/testsuite/gcc.dg/vect/vect-early-break_8.c
  77b5c34dd9127f0e9d619402fefce6f6  gcc/testsuite/gcc.dg/vect/vect-early-break_80.c
! 3db27c6989a7a14a98fe1aa99891bdb9  gcc/testsuite/gcc.dg/vect/vect-early-break_81.c
  747c6c84b17006ab909052926a6333cb  gcc/testsuite/gcc.dg/vect/vect-early-break_82.c
  95dc32a8163faca86b5cc17ce002bbff  gcc/testsuite/gcc.dg/vect/vect-early-break_83.c
  6d629830468ec4d68071b15e22b45d3e  gcc/testsuite/gcc.dg/vect/vect-early-break_84.c
*************** b913a0ce97e1075ed9731f6e62b860bf  gcc/te
*** 55705,55722 ****
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
  33e9990b22cd49f97ec590b283e99e41  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
  92e4333ba4e6a6e7852441677e9dd7e1  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
  e41338bfbaaf9c5f7d3e7394fd0720c0  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
  d19ffdb745a89b901fd8e4ee54b8e7fe  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
! 0cbaf148709fdfb5a16556a06f60989d  gcc/testsuite/gcc.dg/vect/vect-gather-2.c
  259a09d807f29b1b0eeae54b0f4391aa  gcc/testsuite/gcc.dg/vect/vect-gather-3.c
! f11c3d59750eb71cbfa16421b13933b6  gcc/testsuite/gcc.dg/vect/vect-gather-4.c
  da9eedb2c6a365008d958ef7f394e8c4  gcc/testsuite/gcc.dg/vect/vect-gather-5.c
  6587a33138b55d2611b8a08a33765246  gcc/testsuite/gcc.dg/vect/vect-gather-6.c
  b57bff07bf75c647567f17c15d11e41a  gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c
  7ff6a1677653178105297386e07866a3  gcc/testsuite/gcc.dg/vect/vect-ifcvt-11.c
  4a2948c935a39269be9a9b98aaa705de  gcc/testsuite/gcc.dg/vect/vect-ifcvt-16.c
  7327c28f8d2805ac1f7243e0f8c06f88  gcc/testsuite/gcc.dg/vect/vect-ifcvt-17.c
! 37f2a7b8cd501d5ff2a6c9638bff8602  gcc/testsuite/gcc.dg/vect/vect-ifcvt-18.c
  9813255e783203151ab49d4ce485230b  gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c
  b6ce15665db0f38a221a25445b374a51  gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
  2eb0e8aca6416abbf02d3465a385b9e4  gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c
--- 58943,58962 ----
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
  33e9990b22cd49f97ec590b283e99e41  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
  92e4333ba4e6a6e7852441677e9dd7e1  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
+ beb6b00a289da33c6502147b465dbdfd  gcc/testsuite/gcc.dg/vect/vect-fncall-mask-math.c
+ ddb5b38696ce380776208fd63305431f  gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c
  e41338bfbaaf9c5f7d3e7394fd0720c0  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
  d19ffdb745a89b901fd8e4ee54b8e7fe  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
! 9d3331ca82d56cf3f0e897bf6046e902  gcc/testsuite/gcc.dg/vect/vect-gather-2.c
  259a09d807f29b1b0eeae54b0f4391aa  gcc/testsuite/gcc.dg/vect/vect-gather-3.c
! 8852986b8c82db3ccec3d5f808cc2de7  gcc/testsuite/gcc.dg/vect/vect-gather-4.c
  da9eedb2c6a365008d958ef7f394e8c4  gcc/testsuite/gcc.dg/vect/vect-gather-5.c
  6587a33138b55d2611b8a08a33765246  gcc/testsuite/gcc.dg/vect/vect-gather-6.c
  b57bff07bf75c647567f17c15d11e41a  gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c
  7ff6a1677653178105297386e07866a3  gcc/testsuite/gcc.dg/vect/vect-ifcvt-11.c
  4a2948c935a39269be9a9b98aaa705de  gcc/testsuite/gcc.dg/vect/vect-ifcvt-16.c
  7327c28f8d2805ac1f7243e0f8c06f88  gcc/testsuite/gcc.dg/vect/vect-ifcvt-17.c
! 3350dbf218125eaf60c5b0bca364ecf2  gcc/testsuite/gcc.dg/vect/vect-ifcvt-18.c
  9813255e783203151ab49d4ce485230b  gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c
  b6ce15665db0f38a221a25445b374a51  gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
  2eb0e8aca6416abbf02d3465a385b9e4  gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c
*************** d317da023f28bcc842f91f92f1b90a87  gcc/te
*** 55748,55766 ****
  90c475a933e6b5782b7addead927023e  gcc/testsuite/gcc.dg/vect/vect-ivdep-1.c
  493ca8152f570c674714f0d614c3c345  gcc/testsuite/gcc.dg/vect/vect-ivdep-2.c
  ff7f3590811cf5cc9f69a38040d6fc4b  gcc/testsuite/gcc.dg/vect/vect-live-1.c
! 7ff28029f2e88f7ffa5fd195496f05c7  gcc/testsuite/gcc.dg/vect/vect-live-2.c
  8c0e3e397a19ebe40d2506b17b99faa7  gcc/testsuite/gcc.dg/vect/vect-live-3.c
  070c8a41af74e10fdbc32274d89aa4a3  gcc/testsuite/gcc.dg/vect/vect-live-4.c
  dc52a66d864b9ab729601722af77633c  gcc/testsuite/gcc.dg/vect/vect-live-5.c
  c75c8a681d57daf063af3e8d9b0bf67b  gcc/testsuite/gcc.dg/vect/vect-live-6.c
  eebc3ab61611b4267911e7f83eba4926  gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c
  e1a124ee873e19bca7b3a79579de5d89  gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c
! edbb23a1a988c6699bbd18cea14684ae  gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c
  58169dfd1934bcecee0d6fdd7931eca3  gcc/testsuite/gcc.dg/vect/vect-load-lanes-peeling-1.c
  465325f30fa52b4a07cd53601a830a34  gcc/testsuite/gcc.dg/vect/vect-mask-load-1.c
  5a6dffd1398aa6f0880bee558cfc4b44  gcc/testsuite/gcc.dg/vect/vect-mask-loadstore-1.c
  73c71251b131876d44371cd3edbb0e48  gcc/testsuite/gcc.dg/vect/vect-mask-store-move-1.c
  08ec7ca9b1b2ef94dc0c50601bd973ff  gcc/testsuite/gcc.dg/vect/vect-mixed-size-cond-1.c
  b606b9cf4d603637adc2aa0cc2368380  gcc/testsuite/gcc.dg/vect/vect-mulhrs-1.c
  f48e8b9c86c8cca3cfc630262f34e718  gcc/testsuite/gcc.dg/vect/vect-mulhrs-2.c
  41b1ea0887f72fbfcbca0b26d8c47892  gcc/testsuite/gcc.dg/vect/vect-mulhrs-3.c
--- 58988,59007 ----
  90c475a933e6b5782b7addead927023e  gcc/testsuite/gcc.dg/vect/vect-ivdep-1.c
  493ca8152f570c674714f0d614c3c345  gcc/testsuite/gcc.dg/vect/vect-ivdep-2.c
  ff7f3590811cf5cc9f69a38040d6fc4b  gcc/testsuite/gcc.dg/vect/vect-live-1.c
! 66de5dcfcdd3ea72be055b06dbb21609  gcc/testsuite/gcc.dg/vect/vect-live-2.c
  8c0e3e397a19ebe40d2506b17b99faa7  gcc/testsuite/gcc.dg/vect/vect-live-3.c
  070c8a41af74e10fdbc32274d89aa4a3  gcc/testsuite/gcc.dg/vect/vect-live-4.c
  dc52a66d864b9ab729601722af77633c  gcc/testsuite/gcc.dg/vect/vect-live-5.c
  c75c8a681d57daf063af3e8d9b0bf67b  gcc/testsuite/gcc.dg/vect/vect-live-6.c
  eebc3ab61611b4267911e7f83eba4926  gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c
  e1a124ee873e19bca7b3a79579de5d89  gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c
! 203844fdfdf39d652c3519e448a67842  gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c
  58169dfd1934bcecee0d6fdd7931eca3  gcc/testsuite/gcc.dg/vect/vect-load-lanes-peeling-1.c
  465325f30fa52b4a07cd53601a830a34  gcc/testsuite/gcc.dg/vect/vect-mask-load-1.c
  5a6dffd1398aa6f0880bee558cfc4b44  gcc/testsuite/gcc.dg/vect/vect-mask-loadstore-1.c
  73c71251b131876d44371cd3edbb0e48  gcc/testsuite/gcc.dg/vect/vect-mask-store-move-1.c
  08ec7ca9b1b2ef94dc0c50601bd973ff  gcc/testsuite/gcc.dg/vect/vect-mixed-size-cond-1.c
+ 6c336e91a1b45424e0145bd6d858c5b9  gcc/testsuite/gcc.dg/vect/vect-mod-var.c
  b606b9cf4d603637adc2aa0cc2368380  gcc/testsuite/gcc.dg/vect/vect-mulhrs-1.c
  f48e8b9c86c8cca3cfc630262f34e718  gcc/testsuite/gcc.dg/vect/vect-mulhrs-2.c
  41b1ea0887f72fbfcbca0b26d8c47892  gcc/testsuite/gcc.dg/vect/vect-mulhrs-3.c
*************** e4efb1ed7a7ff7aa2a482fee6ed3385e  gcc/te
*** 55769,55775 ****
  06011cc407c02d269818ad75792af11e  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-2.c
  4656afca0ce66b7237e1f714334354d0  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-1.c
  c803a6ba1c147c45b591a730527ab2b1  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-2.c
! ba9402cb6366e3f36bc5fc2b08f3cca0  gcc/testsuite/gcc.dg/vect/vect-multi-peel-gaps.c
  b9327e3b038366df0ab1c34b3cfe5ab6  gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
  de3d69bd25bcd5c2024dcdd5b304ef4e  gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c
  3486930a20709e3f84f0c9b1745fcab2  gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
--- 59010,59016 ----
  06011cc407c02d269818ad75792af11e  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-2.c
  4656afca0ce66b7237e1f714334354d0  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-1.c
  c803a6ba1c147c45b591a730527ab2b1  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-2.c
! 5f211476f5a61e11828b2273c49574e8  gcc/testsuite/gcc.dg/vect/vect-multi-peel-gaps.c
  b9327e3b038366df0ab1c34b3cfe5ab6  gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
  de3d69bd25bcd5c2024dcdd5b304ef4e  gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c
  3486930a20709e3f84f0c9b1745fcab2  gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
*************** c78e329614306ddfd2430617ba82c3e8  gcc/te
*** 55783,55789 ****
  3262385d6fea86884024433082bc5f1f  gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
  06eea1f1f9d3e532ae70dbbf5a73cbda  gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
  b92efaf823e2d43c65bfc71227c72d27  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
! 74ed7173121176c1af5649e54a3922ec  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
  ee152373b3cb6439fc8f5b449b865292  gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c
  6e005df50a4c3c6f4eb35bf65cb3c285  gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c
  8a1e8c088186246a175dc2d06f6b693c  gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c
--- 59024,59030 ----
  3262385d6fea86884024433082bc5f1f  gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
  06eea1f1f9d3e532ae70dbbf5a73cbda  gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
  b92efaf823e2d43c65bfc71227c72d27  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
! f9b1eb3e804bf745f14312d8ed10b1fa  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
  ee152373b3cb6439fc8f5b449b865292  gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c
  6e005df50a4c3c6f4eb35bf65cb3c285  gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c
  8a1e8c088186246a175dc2d06f6b693c  gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c
*************** f205432b6c00d8132e22eb322451e77f  gcc/te
*** 55825,55831 ****
  8e042f4fd129295abbf377fff9781bfb  gcc/testsuite/gcc.dg/vect/vect-outer-4a.c
  2967c602cfcbfc5ddd73fd5170c6afbf  gcc/testsuite/gcc.dg/vect/vect-outer-4b-big-array.c
  ec640955685882d94ce9bff8c0ce888e  gcc/testsuite/gcc.dg/vect/vect-outer-4b.c
! 1aa8bf2b01e0be71932fadef56ed2ded  gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
  fb782fd9a255ca9e4869120cb1e1f3fa  gcc/testsuite/gcc.dg/vect/vect-outer-4c.c
  c996857c6c99e635d46a5974b3e30ec0  gcc/testsuite/gcc.dg/vect/vect-outer-4d-big-array.c
  a162b4283d4f0fbe1fbee3a1bdcac35e  gcc/testsuite/gcc.dg/vect/vect-outer-4d.c
--- 59066,59072 ----
  8e042f4fd129295abbf377fff9781bfb  gcc/testsuite/gcc.dg/vect/vect-outer-4a.c
  2967c602cfcbfc5ddd73fd5170c6afbf  gcc/testsuite/gcc.dg/vect/vect-outer-4b-big-array.c
  ec640955685882d94ce9bff8c0ce888e  gcc/testsuite/gcc.dg/vect/vect-outer-4b.c
! 49897d1441152d8aa5a946503cb529ee  gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
  fb782fd9a255ca9e4869120cb1e1f3fa  gcc/testsuite/gcc.dg/vect/vect-outer-4c.c
  c996857c6c99e635d46a5974b3e30ec0  gcc/testsuite/gcc.dg/vect/vect-outer-4d-big-array.c
  a162b4283d4f0fbe1fbee3a1bdcac35e  gcc/testsuite/gcc.dg/vect/vect-outer-4d.c
*************** d44bd53843f4b2167c039bfc01fea4f5  gcc/te
*** 55845,55857 ****
  d824b710d8e6bbb3d77bd10c9ba8cd1d  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
  6fd37722f152facaa58c5f40512f7e7e  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
  0b0f8d0d0c6ec72f0ce829d6df0d7c7c  gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
  ccf146e115b5e565086e582ba389575e  gcc/testsuite/gcc.dg/vect/vect-outer-pr69720.c
  c990af201219e7d940554fe6fb44db6e  gcc/testsuite/gcc.dg/vect/vect-outer-simd-1.c
  f70d92381ee0118a241e778a4dffa096  gcc/testsuite/gcc.dg/vect/vect-outer-simd-2.c
  bc549db6210e886eabe7f43d64ebe832  gcc/testsuite/gcc.dg/vect/vect-outer-simd-3.c
! 5666635e14070a657bf1e668d3ed2801  gcc/testsuite/gcc.dg/vect/vect-outer-slp-1.c
  b3d8b29b0faddb8aa8293048ab8e6b7b  gcc/testsuite/gcc.dg/vect/vect-outer-slp-2.c
! e66fbb704376ad93c35cd99e5ec04dbb  gcc/testsuite/gcc.dg/vect/vect-outer-slp-3.c
  322ebc8df76e8b04bf243b489908d33f  gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
  1f137dd02c6365d629505b54b90f8e8d  gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
  7ef8875afbd4bb0c3a177da55ea4c13b  gcc/testsuite/gcc.dg/vect/vect-over-widen-10.c
--- 59086,59099 ----
  d824b710d8e6bbb3d77bd10c9ba8cd1d  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
  6fd37722f152facaa58c5f40512f7e7e  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
  0b0f8d0d0c6ec72f0ce829d6df0d7c7c  gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
+ 2aa243efc73800fb70cf28228378ca4b  gcc/testsuite/gcc.dg/vect/vect-outer-pr117510.c
  ccf146e115b5e565086e582ba389575e  gcc/testsuite/gcc.dg/vect/vect-outer-pr69720.c
  c990af201219e7d940554fe6fb44db6e  gcc/testsuite/gcc.dg/vect/vect-outer-simd-1.c
  f70d92381ee0118a241e778a4dffa096  gcc/testsuite/gcc.dg/vect/vect-outer-simd-2.c
  bc549db6210e886eabe7f43d64ebe832  gcc/testsuite/gcc.dg/vect/vect-outer-simd-3.c
! 4370322bfe52eaebf98d13b827bdded0  gcc/testsuite/gcc.dg/vect/vect-outer-slp-1.c
  b3d8b29b0faddb8aa8293048ab8e6b7b  gcc/testsuite/gcc.dg/vect/vect-outer-slp-2.c
! 872554eb9b9aafef5f97534b412aeb37  gcc/testsuite/gcc.dg/vect/vect-outer-slp-3.c
  322ebc8df76e8b04bf243b489908d33f  gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
  1f137dd02c6365d629505b54b90f8e8d  gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
  7ef8875afbd4bb0c3a177da55ea4c13b  gcc/testsuite/gcc.dg/vect/vect-over-widen-10.c
*************** c38511a26575a66a65ddd31d3bc229da  gcc/te
*** 55891,55900 ****
  0a0e7b7396e78408cb66cc38d9e15cd1  gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
! e7cd5788f09670057ebf36ffc7961d4b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 94bda84899e2683692deba382167aa8e  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  bcf8d4d938304b75cfe5af73ef6b191b  gcc/testsuite/gcc.dg/vect/vect-profile-1.c
  ae4441b04534528916849ebd82e66022  gcc/testsuite/gcc.dg/vect/vect-recip.c
  dcb575790bfcf549452814ca72a66ab3  gcc/testsuite/gcc.dg/vect/vect-recurr-1.c
--- 59133,59143 ----
  0a0e7b7396e78408cb66cc38d9e15cd1  gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
! a0e208729117f798ee5200a51a9c258b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 8689fbd68c008546f301818654595aab  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
+ b860939f62d716a264f763f82b69b2c8  gcc/testsuite/gcc.dg/vect/vect-prefetch-drop.c
  bcf8d4d938304b75cfe5af73ef6b191b  gcc/testsuite/gcc.dg/vect/vect-profile-1.c
  ae4441b04534528916849ebd82e66022  gcc/testsuite/gcc.dg/vect/vect-recip.c
  dcb575790bfcf549452814ca72a66ab3  gcc/testsuite/gcc.dg/vect/vect-recurr-1.c
*************** afaa45daeb6740febad38b149bba00f4  gcc/te
*** 55918,55923 ****
--- 59161,59173 ----
  6dfb966ec0651e1f0bfd61ae96ee63b4  gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
  c0dc4d999a9dd3a90639e4eb6b307722  gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
  deb8ecbd7cdb913c066f7d366640b30b  gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
+ fce0445030bce66f8a90a92dd6df9f7b  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-1.c
+ f41ca0a06ac24f646ee1c632b5d42f8e  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-2.c
+ 02bf781a202197a7ac986160e008dfab  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-3.c
+ a0fd49ab473516c9610de45e68c1d2a2  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-1.c
+ 0f4af0d0347b33a4fe5e55c707df1a5d  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-2.c
+ 190c8787f98acde286950b67d8a0e781  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-3.c
+ 9b8d64f48db60867dc60b9217f03555b  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-4.c
  1c446ff114c972abcfb111d361bd107f  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-sub.c
  78bdeb760d9d97cdc35bbb827cdcf29d  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-1.c
  8766f1e32dd79e5d368ecf7021fdac0f  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-10.c
*************** a79cc962357cf4f42a44efad158b03e6  gcc/te
*** 55941,55956 ****
  8593f0a78707f2d870196d3db8601bb9  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-7.c
  b6aeb022dde69e8ffe448352fd61d3bd  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-8.c
  7f56c49d37576baac4d44a6bd6013359  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-9.c
! 3ef45f340e865f9be728af78208ca9b8  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
  4ac381c0ce01711ae42fa052dd047242  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16b.c
  3f79364b1434591b07c839635489cfd3  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16c.c
! 24414b57d8dcf06f15a5da531433f327  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
! 9a9ffa344e978bded839b814eb9f0954  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
  594729e48529b6e77fd028ff43ccf9cf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8c.c
! d2a8a52420449f3f1c8de04704fbf4f6  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
! 6e0eb819de08a01b21d0238df61f357c  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
! d23224d1cac62f68c0975f9cc2906e29  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
! 634525a782e18efb5e88629de6c5bcbf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
  55ec9b312052ccb0235403f0877ce3cc  gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c
  e6d7cffdfe32895fb6cd02c38d3f7dfa  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-1.c
  b7b984e0456b49a107ab1fead4038420  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-2.c
--- 59191,59207 ----
  8593f0a78707f2d870196d3db8601bb9  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-7.c
  b6aeb022dde69e8ffe448352fd61d3bd  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-8.c
  7f56c49d37576baac4d44a6bd6013359  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-9.c
! 3268b824b4f5acf39f6e18089d435db1  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
  4ac381c0ce01711ae42fa052dd047242  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16b.c
  3f79364b1434591b07c839635489cfd3  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16c.c
! ca6e771116f4437958e97e625ac80a4f  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
! be1416228cbe9615f3cd5a04f1e761c7  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
  594729e48529b6e77fd028ff43ccf9cf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8c.c
! f2115c849db56b36f9016249488854e1  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-slp-1.c
! 036d9ff842e9f175b38e691d0d35a492  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
! 4d85ea9481093c60d1e3ba4dc53caaf4  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
! 4a6e93ac791a77eb1a90606f0bac13b9  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
! b65b62bb6371d5775229ef496d236676  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
  55ec9b312052ccb0235403f0877ce3cc  gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c
  e6d7cffdfe32895fb6cd02c38d3f7dfa  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-1.c
  b7b984e0456b49a107ab1fead4038420  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-2.c
*************** a1590cdef29fb480824603e746a7ab80  gcc/te
*** 55960,55972 ****
  327cfa6e82122e67b62c1edd8d146433  gcc/testsuite/gcc.dg/vect/vect-reduc-mul_2.c
  ab2e4fc58c88f361a248cf81039c8523  gcc/testsuite/gcc.dg/vect/vect-reduc-or_1.c
  37ef75277a4e4b18f485cee67978b961  gcc/testsuite/gcc.dg/vect/vect-reduc-or_2.c
! 19b1b4f51c69be8db44d07c39954e39d  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
! 1d2a8cce384b3a9613520d55c0c64fe2  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
  cc5ec47e6e35ed7e43a933a71a367c23  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b.c
! 262b9bb9c66afd8e3bffee1ce4813355  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
  bd52e3921544e1711ab57051060881cb  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c.c
! bad512cd591dad2aa801f18fb68f80df  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
! 7a95c2843fa12544aa6d8c99491f65e4  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
  0286cd7b14fa72279d00b58b4ca208c9  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b.c
  3cdb53796ba9ac625a2f405dd5838c04  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2c.c
  427dcb0ed4cb20c8579fd8447ff07df3  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-3.c
--- 59211,59223 ----
  327cfa6e82122e67b62c1edd8d146433  gcc/testsuite/gcc.dg/vect/vect-reduc-mul_2.c
  ab2e4fc58c88f361a248cf81039c8523  gcc/testsuite/gcc.dg/vect/vect-reduc-or_1.c
  37ef75277a4e4b18f485cee67978b961  gcc/testsuite/gcc.dg/vect/vect-reduc-or_2.c
! b31ac87b2963363e72ad73b91cf116f6  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
! b1e8b38b9184c3e7c76d06f4e29c81ed  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
  cc5ec47e6e35ed7e43a933a71a367c23  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b.c
! e9800ce6fc0bf9d1b8bf4196d923f79e  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
  bd52e3921544e1711ab57051060881cb  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c.c
! 6679dbda60426ef7dff489665a6e4cfc  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
! 09b1ae89a1a12ffd0a4298ede5d16d67  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
  0286cd7b14fa72279d00b58b4ca208c9  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b.c
  3cdb53796ba9ac625a2f405dd5838c04  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2c.c
  427dcb0ed4cb20c8579fd8447ff07df3  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-3.c
*************** addd4dc2a89deb3989a2263e7c62478f  gcc/te
*** 55978,55983 ****
--- 59229,59235 ----
  decd4b8e6c443a882ee4236e3587c34a  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-6.c
  c933e94a38cdeab2e386d79408bfca05  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-7.c
  6bd6b6d724e189632567fe4aa4a15526  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-8.c
+ 0ecd562e8a72dadf8dad3bd4ed883e4d  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-9.c
  8fb6ed5f1cd51ded6a4caf9abf8c6821  gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c
  448c60f6f652471f6e750c40b1911db8  gcc/testsuite/gcc.dg/vect/vect-rounding-btrunc.c
  4f8bb8467f6af88b25fa98a33ba88860  gcc/testsuite/gcc.dg/vect/vect-rounding-btruncf.c
*************** cfa8fc9b80bd9eebe3d4cc410769556e  gcc/te
*** 55999,56004 ****
--- 59251,59258 ----
  0e87c62ec1138a065b23d92f1ca65e21  gcc/testsuite/gcc.dg/vect/vect-shift-3.c
  ec4d4d3832cff2b41a7852de4562eeb8  gcc/testsuite/gcc.dg/vect/vect-shift-4.c
  a3abad572643c23c18b4f45e179245a8  gcc/testsuite/gcc.dg/vect/vect-shift-5.c
+ df92ea5901e7a7820381edc466655387  gcc/testsuite/gcc.dg/vect/vect-shift-6.c
+ 65e9473887539546cba39c4b47d2459f  gcc/testsuite/gcc.dg/vect/vect-shift-7.c
  04ed6964c024e8091e3e464aa942ec30  gcc/testsuite/gcc.dg/vect/vect-simd-1.c
  7718cc15eed38252b4c17e6c0115febd  gcc/testsuite/gcc.dg/vect/vect-simd-10.c
  ffc85ff7d823c4bfc0406924f8353c07  gcc/testsuite/gcc.dg/vect/vect-simd-11.c
*************** d1851a7e16c0f7f9c86a65bc1f5dddf4  gcc/te
*** 56020,56030 ****
  21be74613930b92cbf372416cd77f848  gcc/testsuite/gcc.dg/vect/vect-simd-8.c
  6b7405138e36e755404a29eba2f83a1a  gcc/testsuite/gcc.dg/vect/vect-simd-9.c
  ffb3e85bd5bce5e2c665cba40dfb3b4a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-1.c
! 4242097d5c9b6e6bd99aa913a51d23bb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
  e15c9b03d8e1d3a7a5ee1c79b19ba163  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.h
  1464349ea26540551dcba3e44d957b36  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10a.c
  6d76780106b81203ac4163e17b2be021  gcc/testsuite/gcc.dg/vect/vect-simd-clone-11.c
! 3b62dd0080dc10835b2f1e1852ba408a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
  d8b650e8ad6c5d4182b48acc7bced0d5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12a.c
  60af91149238db9ff77ec6956d1e63e8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-13.c
  a81a97f4a56c119cab9c8d7bdf895b21  gcc/testsuite/gcc.dg/vect/vect-simd-clone-14.c
--- 59274,59284 ----
  21be74613930b92cbf372416cd77f848  gcc/testsuite/gcc.dg/vect/vect-simd-8.c
  6b7405138e36e755404a29eba2f83a1a  gcc/testsuite/gcc.dg/vect/vect-simd-9.c
  ffb3e85bd5bce5e2c665cba40dfb3b4a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-1.c
! 8bfb0188d95f475fee04e9ade4987253  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
  e15c9b03d8e1d3a7a5ee1c79b19ba163  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.h
  1464349ea26540551dcba3e44d957b36  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10a.c
  6d76780106b81203ac4163e17b2be021  gcc/testsuite/gcc.dg/vect/vect-simd-clone-11.c
! 05c65c42ae095cdc13260db7a80f1dec  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
  d8b650e8ad6c5d4182b48acc7bced0d5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12a.c
  60af91149238db9ff77ec6956d1e63e8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-13.c
  a81a97f4a56c119cab9c8d7bdf895b21  gcc/testsuite/gcc.dg/vect/vect-simd-clone-14.c
*************** c36c3ad97cfbf1be43ad8307f7b3eba0  gcc/te
*** 56034,56055 ****
  d067a3fc6a32207c57892dcdd8c33d07  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c
  f1599ed5874eacd70fbd053be0144191  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c
  28bb9727bb68f19dffb44f934f029e2d  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16e.c
! 89cfdc5cd10df440364c82e4b87fe77f  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c
  df907a0bedf6430cc4e5e0086f3ac9ab  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17.c
  30dd07bd633247c311c2eb04d6ecefe8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17b.c
  b18a2f417c8b7656e03ece0608fbb689  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c
  2f79bfc9cc94a1eeb5037ea7481ce342  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c
  bf533adb9e5c51763d56908279be7daa  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17e.c
! 49be1f06ece13358e29daf42d6a6b2ea  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c
  ee711a645968f35d0d88969943f997df  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18.c
  bb816b62d1cccb292fd79316f6930a5b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18b.c
  f2293ee13696a68e51fc46fe685a2cbe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c
  8b31e3c22776513fd3b23d424fe40b60  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c
  b909da935d057e1e3a2fd43bee466656  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18e.c
! 928fe52f28fcd29573710c999b9575ca  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c
! 62cdfa46df8c5da5a3da34d4c0bd5104  gcc/testsuite/gcc.dg/vect/vect-simd-clone-19.c
  fcf52e93fe21db4ebf8416abf92ac7cb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-2.c
! 52c293a078d14b6ebd3772f31c059a12  gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c
  cff83413760df8eec4e9c7187ee7ada9  gcc/testsuite/gcc.dg/vect/vect-simd-clone-3.c
  0d3326ce976d42f0a96b625fa721ab32  gcc/testsuite/gcc.dg/vect/vect-simd-clone-4.c
  bc0f68b226839ed569e371de527479fe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-5.c
--- 59288,59310 ----
  d067a3fc6a32207c57892dcdd8c33d07  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c
  f1599ed5874eacd70fbd053be0144191  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c
  28bb9727bb68f19dffb44f934f029e2d  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16e.c
! ce5218ee978fa8c2bf295aa7d2d4c9a5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c
  df907a0bedf6430cc4e5e0086f3ac9ab  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17.c
  30dd07bd633247c311c2eb04d6ecefe8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17b.c
  b18a2f417c8b7656e03ece0608fbb689  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c
  2f79bfc9cc94a1eeb5037ea7481ce342  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c
  bf533adb9e5c51763d56908279be7daa  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17e.c
! 8bc74210842e1c3ef85cd6b16de4b591  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c
  ee711a645968f35d0d88969943f997df  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18.c
  bb816b62d1cccb292fd79316f6930a5b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18b.c
  f2293ee13696a68e51fc46fe685a2cbe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c
  8b31e3c22776513fd3b23d424fe40b60  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c
  b909da935d057e1e3a2fd43bee466656  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18e.c
! c8ce1f539ab725deadb9940aa9fc03d4  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c
! b0cd25f77f52d4eebc59d342a34d3672  gcc/testsuite/gcc.dg/vect/vect-simd-clone-19.c
  fcf52e93fe21db4ebf8416abf92ac7cb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-2.c
! 3de98d5a58d3eb998fd2261369af70cd  gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c
! be8935c3fb2fa21e3b6bb3a252110433  gcc/testsuite/gcc.dg/vect/vect-simd-clone-21.c
  cff83413760df8eec4e9c7187ee7ada9  gcc/testsuite/gcc.dg/vect/vect-simd-clone-3.c
  0d3326ce976d42f0a96b625fa721ab32  gcc/testsuite/gcc.dg/vect/vect-simd-clone-4.c
  bc0f68b226839ed569e371de527479fe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-5.c
*************** faa0fc90d089ce7c2ce110e4203bcbe4  gcc/te
*** 56094,56100 ****
  5105b009742c9197d706313c7de591f6  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c
  bba9d03b50c8759a601ef1eb6bce4583  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
  5350a5a4b31a515a6c8842252ff390bc  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
! 9720e2786d44326ad8aad89ca3093cc4  gcc/testsuite/gcc.dg/vect/vect-tail-nomask-1.c
  77c1344d6e99c9bf6c4f1170c256d122  gcc/testsuite/gcc.dg/vect/vect-version-1.c
  b4f31e51d7444b0dbc43aff2dc3d5426  gcc/testsuite/gcc.dg/vect/vect-version-2.c
  6bf67c113cd4d93ff129dbdce29b1131  gcc/testsuite/gcc.dg/vect/vect-vfa-01.c
--- 59349,59359 ----
  5105b009742c9197d706313c7de591f6  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c
  bba9d03b50c8759a601ef1eb6bce4583  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
  5350a5a4b31a515a6c8842252ff390bc  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
! 90088bf257332496537bac34aacc4329  gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c
! dacaab2848ce0cac26021e40c45f6986  gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-2.c
! aedea3f0c7c434dce657bf63c5b4c1cf  gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-3.c
! 591202848a360199c23468d3d402f59b  gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c
! f353f9ae20bcced6cafb958f09ad8305  gcc/testsuite/gcc.dg/vect/vect-tail-nomask-1.c
  77c1344d6e99c9bf6c4f1170c256d122  gcc/testsuite/gcc.dg/vect/vect-version-1.c
  b4f31e51d7444b0dbc43aff2dc3d5426  gcc/testsuite/gcc.dg/vect/vect-version-2.c
  6bf67c113cd4d93ff129dbdce29b1131  gcc/testsuite/gcc.dg/vect/vect-vfa-01.c
*************** ef6123bca5b0e71a26d4094e2c7ab7e2  gcc/te
*** 56122,56133 ****
  57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
  5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
  aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! dd8baf2aced3ae29fb8cc391370d7008  gcc/testsuite/gcc.dg/vect/vect.exp
! 37bf824afb81780391918cb999b4db03  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
! 3613af6098a597772fd1b7e4dd37a0f3  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
! 431e29e277cc621ccb31b18bba96d195  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
! c5b19ce70155bcbe93c87a793658fc0e  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
! fd3bcd055bec50020f362b17a4410e68  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c
  deacf2b346fc9032e20669526a1ad31d  gcc/testsuite/gcc.dg/vector-1.c
  58b3ba1d4334276fa57ab63f07c9918b  gcc/testsuite/gcc.dg/vector-shift-2.c
  fc8de79475ee3413d108466363dd60b6  gcc/testsuite/gcc.dg/vector-shift.c
--- 59381,59392 ----
  57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
  5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
  aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! c1270c5d9ecd219cb48f8a3817e078d7  gcc/testsuite/gcc.dg/vect/vect.exp
! 9c10d2393bb90978e04161ff14df3a4a  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
! 4749e5664952bdad254e75583138cd9f  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
! 32baa51c29f3f1f6ab2dc0f47bb4b324  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
! b83f15ef53d77246c09510dd5938db0f  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
! 44cb6ae6c719a115bad446b7e0fa2d2b  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c
  deacf2b346fc9032e20669526a1ad31d  gcc/testsuite/gcc.dg/vector-1.c
  58b3ba1d4334276fa57ab63f07c9918b  gcc/testsuite/gcc.dg/vector-shift-2.c
  fc8de79475ee3413d108466363dd60b6  gcc/testsuite/gcc.dg/vector-shift.c
*************** cec8e00812cf7ebcba25cc61c1a33f41  gcc/te
*** 56171,56186 ****
  211851f669afced509955f84189bb728  gcc/testsuite/gcc.dg/vla-17.c
  e286830dd2e727033ba68c1d54f4bb65  gcc/testsuite/gcc.dg/vla-18.c
  c2396edad56315ee8a5af0140ad73bf7  gcc/testsuite/gcc.dg/vla-19.c
! 454383f2056e6f78f60c6a9c8c8abf42  gcc/testsuite/gcc.dg/vla-2.c
  2d6718f0ddbf3c71461ffbde751c4262  gcc/testsuite/gcc.dg/vla-20.c
  79d59735770bc50c58da7b35ce44bd0a  gcc/testsuite/gcc.dg/vla-21.c
! 108df7331ac4fa0559709a77ba14413d  gcc/testsuite/gcc.dg/vla-22.c
  4068a8e32bdde55681bfb2565c369a07  gcc/testsuite/gcc.dg/vla-23.c
! 7aaf234190ed1dd3fc3d5a6df2fead19  gcc/testsuite/gcc.dg/vla-24.c
  f736aed607e0d390f1d8538182aeae6e  gcc/testsuite/gcc.dg/vla-25.c
  897d6b1cdf0339d94452b4e4931fbe96  gcc/testsuite/gcc.dg/vla-26.c
! 254a505e7349b8680ce45be17119c59c  gcc/testsuite/gcc.dg/vla-3.c
! 53ed8f0dceef99c808255ae9514abde2  gcc/testsuite/gcc.dg/vla-4.c
  2ba0b2394f27a6df280beeaa565ae148  gcc/testsuite/gcc.dg/vla-5.c
  d8a13a61fad5116ae169d2bfc88dcaea  gcc/testsuite/gcc.dg/vla-6.c
  4ae67b1c081113734bd7364d3ab0eb6c  gcc/testsuite/gcc.dg/vla-7.c
--- 59430,59445 ----
  211851f669afced509955f84189bb728  gcc/testsuite/gcc.dg/vla-17.c
  e286830dd2e727033ba68c1d54f4bb65  gcc/testsuite/gcc.dg/vla-18.c
  c2396edad56315ee8a5af0140ad73bf7  gcc/testsuite/gcc.dg/vla-19.c
! 3e1ba4e8c65af4f1d7b139f51191b956  gcc/testsuite/gcc.dg/vla-2.c
  2d6718f0ddbf3c71461ffbde751c4262  gcc/testsuite/gcc.dg/vla-20.c
  79d59735770bc50c58da7b35ce44bd0a  gcc/testsuite/gcc.dg/vla-21.c
! c6b6b5b7a5df399219bd5615e8fd8a97  gcc/testsuite/gcc.dg/vla-22.c
  4068a8e32bdde55681bfb2565c369a07  gcc/testsuite/gcc.dg/vla-23.c
! d3a4319168ea32faf387d36e3a9035e0  gcc/testsuite/gcc.dg/vla-24.c
  f736aed607e0d390f1d8538182aeae6e  gcc/testsuite/gcc.dg/vla-25.c
  897d6b1cdf0339d94452b4e4931fbe96  gcc/testsuite/gcc.dg/vla-26.c
! 6da7e407ab569942e7bcc48db1e5e9a0  gcc/testsuite/gcc.dg/vla-3.c
! 06a138705cfcbdfc173c84f5ca7cd50b  gcc/testsuite/gcc.dg/vla-4.c
  2ba0b2394f27a6df280beeaa565ae148  gcc/testsuite/gcc.dg/vla-5.c
  d8a13a61fad5116ae169d2bfc88dcaea  gcc/testsuite/gcc.dg/vla-6.c
  4ae67b1c081113734bd7364d3ab0eb6c  gcc/testsuite/gcc.dg/vla-7.c
*************** e24d0f20e739156ac3cf1c83cb940873  gcc/te
*** 56191,56201 ****
  3ebc83a0a0f2edba6c53937797fcfaef  gcc/testsuite/gcc.dg/vla-init-3.c
  943b40322a964bc97313e85b4eb158b6  gcc/testsuite/gcc.dg/vla-init-4.c
  17d2fd5480a0274dbb802302e84e1945  gcc/testsuite/gcc.dg/vla-init-5.c
! 1b4202fd8dd28d797fa2a26ecca28fa7  gcc/testsuite/gcc.dg/vla-stexp-1.c
! b714635b49d4d0a1198216693503c2ef  gcc/testsuite/gcc.dg/vla-stexp-2.c
  42e032d18ea40563e277a533aed62bf7  gcc/testsuite/gcc.dg/vla-stexp-3.c
! 6d0667bbca3ef93689856905292cabf8  gcc/testsuite/gcc.dg/vla-stexp-4.c
! 0ce2fb5af61b0102983cdb7cc23f72b5  gcc/testsuite/gcc.dg/vla-stexp-5.c
  50eb0720aa989d38f8708d1766f1d605  gcc/testsuite/gcc.dg/vla-stexp-6.c
  748ee2e2a4c0cc944dd2c73fdb89639c  gcc/testsuite/gcc.dg/vla-stexp-7.c
  4fdda7517bab551abdccdbb2c0bfa91e  gcc/testsuite/gcc.dg/vla-stexp-8.c
--- 59450,59460 ----
  3ebc83a0a0f2edba6c53937797fcfaef  gcc/testsuite/gcc.dg/vla-init-3.c
  943b40322a964bc97313e85b4eb158b6  gcc/testsuite/gcc.dg/vla-init-4.c
  17d2fd5480a0274dbb802302e84e1945  gcc/testsuite/gcc.dg/vla-init-5.c
! 606eab8fad2be2d932462e287e1844f9  gcc/testsuite/gcc.dg/vla-stexp-1.c
! 4c105c3cc03ecd8a5cd52eb50fbbc5b6  gcc/testsuite/gcc.dg/vla-stexp-2.c
  42e032d18ea40563e277a533aed62bf7  gcc/testsuite/gcc.dg/vla-stexp-3.c
! c0730f5ee0eb1bf371cc3a1221de8789  gcc/testsuite/gcc.dg/vla-stexp-4.c
! 4045bbb0830c124c1051c20aa57eeae7  gcc/testsuite/gcc.dg/vla-stexp-5.c
  50eb0720aa989d38f8708d1766f1d605  gcc/testsuite/gcc.dg/vla-stexp-6.c
  748ee2e2a4c0cc944dd2c73fdb89639c  gcc/testsuite/gcc.dg/vla-stexp-7.c
  4fdda7517bab551abdccdbb2c0bfa91e  gcc/testsuite/gcc.dg/vla-stexp-8.c
*************** d2800ec511e2b3478d695416e2ca90ec  gcc/te
*** 56264,56270 ****
  a618f16e3af202f712d6cfc127c0f51d  gcc/testsuite/gcc.dg/vmx/dos-bug-1-gdb.c
  8c31a6e12629208ece747c6627759e50  gcc/testsuite/gcc.dg/vmx/dos-bug-2-gdb.c
  6a1a156aa2b71ec97b1690516e6e9563  gcc/testsuite/gcc.dg/vmx/eg-5.c
! 3e9057223d3f6f9a94e1cba2941fba7b  gcc/testsuite/gcc.dg/vmx/extract-vsx.c
  4c43f4dd229af50225814ea1bf310c5e  gcc/testsuite/gcc.dg/vmx/extract.c
  43079faac406fa6c19965bd7b5ffd05f  gcc/testsuite/gcc.dg/vmx/fft.c
  8322a206fa7dd30b037ad95c67279f6e  gcc/testsuite/gcc.dg/vmx/gcc-bug-1.c
--- 59523,59529 ----
  a618f16e3af202f712d6cfc127c0f51d  gcc/testsuite/gcc.dg/vmx/dos-bug-1-gdb.c
  8c31a6e12629208ece747c6627759e50  gcc/testsuite/gcc.dg/vmx/dos-bug-2-gdb.c
  6a1a156aa2b71ec97b1690516e6e9563  gcc/testsuite/gcc.dg/vmx/eg-5.c
! 3de306b193a724feb28e444efb503195  gcc/testsuite/gcc.dg/vmx/extract-vsx.c
  4c43f4dd229af50225814ea1bf310c5e  gcc/testsuite/gcc.dg/vmx/extract.c
  43079faac406fa6c19965bd7b5ffd05f  gcc/testsuite/gcc.dg/vmx/fft.c
  8322a206fa7dd30b037ad95c67279f6e  gcc/testsuite/gcc.dg/vmx/gcc-bug-1.c
*************** b2b6feca94837f5cb8c691c4060fef16  gcc/te
*** 56284,56303 ****
  2e93eb6cb35666f7b5d487045924c050  gcc/testsuite/gcc.dg/vmx/gcc-bug-g.c
  e2befcc6fe6551ddaf8c5af8ff8af9ed  gcc/testsuite/gcc.dg/vmx/gcc-bug-i.c
  abaa24fa7500a965c56cca5b81277f0f  gcc/testsuite/gcc.dg/vmx/harness.h
! 46cb6a37ded7714d0cb8b321149c0101  gcc/testsuite/gcc.dg/vmx/insert-vsx.c
  64af108d7752fb394591059e10b8e535  gcc/testsuite/gcc.dg/vmx/insert.c
  d3b05480227b07877585af8d0a518ce0  gcc/testsuite/gcc.dg/vmx/ira1.c
  30bcd6f60465176cca2c3074c112b5d6  gcc/testsuite/gcc.dg/vmx/ira2.c
  0671a52dbfeaff599fbd3b31683b8fa3  gcc/testsuite/gcc.dg/vmx/ira2a.c
  e7bfe6764f1081cf12917fc6bb429d99  gcc/testsuite/gcc.dg/vmx/ira2b.c
  b79fe506ab529c34a54312a7e9e864cf  gcc/testsuite/gcc.dg/vmx/ira2c.c
! f7336ec5cf873247c0353ffb7a72f2cf  gcc/testsuite/gcc.dg/vmx/ld-vsx.c
  8d6c80453f3995148bde37b78ce9a8dd  gcc/testsuite/gcc.dg/vmx/ld.c
  1258396dbf67ebb40317211d94dc5696  gcc/testsuite/gcc.dg/vmx/lde.c
! d7a745f9e22b5c5fb5d147a0e725f680  gcc/testsuite/gcc.dg/vmx/ldl-vsx.c
  c3039576bdd2e286778c9c26319c1266  gcc/testsuite/gcc.dg/vmx/ldl.c
  02e4a282249f914f0c14a216ba9d4cfc  gcc/testsuite/gcc.dg/vmx/mem.c
! c495629752b72a7671355a830d2eda6d  gcc/testsuite/gcc.dg/vmx/merge-vsx.c
  eb7dd9debe1674f5d04a9841461e4954  gcc/testsuite/gcc.dg/vmx/merge.c
  69b4a248b11c1f8cdf318024cf68f3f6  gcc/testsuite/gcc.dg/vmx/mult-even-odd.c
  b3442dce1a513e0fadd3087959cc98e2  gcc/testsuite/gcc.dg/vmx/newton-1.c
--- 59543,59562 ----
  2e93eb6cb35666f7b5d487045924c050  gcc/testsuite/gcc.dg/vmx/gcc-bug-g.c
  e2befcc6fe6551ddaf8c5af8ff8af9ed  gcc/testsuite/gcc.dg/vmx/gcc-bug-i.c
  abaa24fa7500a965c56cca5b81277f0f  gcc/testsuite/gcc.dg/vmx/harness.h
! cb3a992f9fb14d1ec24fca77750101c5  gcc/testsuite/gcc.dg/vmx/insert-vsx.c
  64af108d7752fb394591059e10b8e535  gcc/testsuite/gcc.dg/vmx/insert.c
  d3b05480227b07877585af8d0a518ce0  gcc/testsuite/gcc.dg/vmx/ira1.c
  30bcd6f60465176cca2c3074c112b5d6  gcc/testsuite/gcc.dg/vmx/ira2.c
  0671a52dbfeaff599fbd3b31683b8fa3  gcc/testsuite/gcc.dg/vmx/ira2a.c
  e7bfe6764f1081cf12917fc6bb429d99  gcc/testsuite/gcc.dg/vmx/ira2b.c
  b79fe506ab529c34a54312a7e9e864cf  gcc/testsuite/gcc.dg/vmx/ira2c.c
! 11e54b470604a2a578a9d152d0ef4db4  gcc/testsuite/gcc.dg/vmx/ld-vsx.c
  8d6c80453f3995148bde37b78ce9a8dd  gcc/testsuite/gcc.dg/vmx/ld.c
  1258396dbf67ebb40317211d94dc5696  gcc/testsuite/gcc.dg/vmx/lde.c
! 6a559ca3d31f92e647803e4180e264a5  gcc/testsuite/gcc.dg/vmx/ldl-vsx.c
  c3039576bdd2e286778c9c26319c1266  gcc/testsuite/gcc.dg/vmx/ldl.c
  02e4a282249f914f0c14a216ba9d4cfc  gcc/testsuite/gcc.dg/vmx/mem.c
! dec5be8893f6cbe519196e1381099a28  gcc/testsuite/gcc.dg/vmx/merge-vsx.c
  eb7dd9debe1674f5d04a9841461e4954  gcc/testsuite/gcc.dg/vmx/merge.c
  69b4a248b11c1f8cdf318024cf68f3f6  gcc/testsuite/gcc.dg/vmx/mult-even-odd.c
  b3442dce1a513e0fadd3087959cc98e2  gcc/testsuite/gcc.dg/vmx/newton-1.c
*************** b3442dce1a513e0fadd3087959cc98e2  gcc/te
*** 56312,56323 ****
  a6cbfa0e1febdc24c55462118baed2d9  gcc/testsuite/gcc.dg/vmx/spill.c
  a89c7a49191b8c215d45bfcd40dbf073  gcc/testsuite/gcc.dg/vmx/spill2.c
  4ad67e9b592e66eb6b2836bd582e41ea  gcc/testsuite/gcc.dg/vmx/spill3.c
! 276c42b2d0c952a9adb2ae67712bf08f  gcc/testsuite/gcc.dg/vmx/splat-vsx.c
  266739867e8f0e5420b410b6edd290e8  gcc/testsuite/gcc.dg/vmx/splat.c
! dff0e6ad705951c1dbfc49660debda1f  gcc/testsuite/gcc.dg/vmx/st-vsx.c
  53630833b841b3f5beb646fecebe43de  gcc/testsuite/gcc.dg/vmx/st.c
  d7c1dff498081073d4fdd36432c36b87  gcc/testsuite/gcc.dg/vmx/ste.c
! c0410b4fc9ef79f564f7a54f86783aaa  gcc/testsuite/gcc.dg/vmx/stl-vsx.c
  c4b3ca8cd9535dfc22cf3942d2de6d41  gcc/testsuite/gcc.dg/vmx/stl.c
  90381187ab18cfc9506fd2dbe5c8fa35  gcc/testsuite/gcc.dg/vmx/sum2s.c
  b74b4229263d70abbf112c2c622f29ba  gcc/testsuite/gcc.dg/vmx/t.c
--- 59571,59582 ----
  a6cbfa0e1febdc24c55462118baed2d9  gcc/testsuite/gcc.dg/vmx/spill.c
  a89c7a49191b8c215d45bfcd40dbf073  gcc/testsuite/gcc.dg/vmx/spill2.c
  4ad67e9b592e66eb6b2836bd582e41ea  gcc/testsuite/gcc.dg/vmx/spill3.c
! 013bdaae763422bf42627d6ffaae212a  gcc/testsuite/gcc.dg/vmx/splat-vsx.c
  266739867e8f0e5420b410b6edd290e8  gcc/testsuite/gcc.dg/vmx/splat.c
! 637f17478d646e1b975a4d996f63883d  gcc/testsuite/gcc.dg/vmx/st-vsx.c
  53630833b841b3f5beb646fecebe43de  gcc/testsuite/gcc.dg/vmx/st.c
  d7c1dff498081073d4fdd36432c36b87  gcc/testsuite/gcc.dg/vmx/ste.c
! 304cf7087ecab0969dd9173d09a018b5  gcc/testsuite/gcc.dg/vmx/stl-vsx.c
  c4b3ca8cd9535dfc22cf3942d2de6d41  gcc/testsuite/gcc.dg/vmx/stl.c
  90381187ab18cfc9506fd2dbe5c8fa35  gcc/testsuite/gcc.dg/vmx/sum2s.c
  b74b4229263d70abbf112c2c622f29ba  gcc/testsuite/gcc.dg/vmx/t.c
*************** b74b4229263d70abbf112c2c622f29ba  gcc/te
*** 56330,56336 ****
  5cc01078c1f3f451644a44dfdc807444  gcc/testsuite/gcc.dg/vmx/varargs-6.c
  441584a435c20e33e9ba2840da79de7b  gcc/testsuite/gcc.dg/vmx/varargs-7.c
  88d7e6b1c915da50092f2f05e8403f00  gcc/testsuite/gcc.dg/vmx/vec-set.c
! 829608616605c69e60d580a1a7064ec5  gcc/testsuite/gcc.dg/vmx/vmx.exp
  7b36f93de20205be4944182fe8222120  gcc/testsuite/gcc.dg/vmx/vsums.c
  0e39fb03e625fd0928ac3568284946cb  gcc/testsuite/gcc.dg/vmx/x-01.c
  780491d8a6964b34313eb871098c1ec6  gcc/testsuite/gcc.dg/vmx/x-02.c
--- 59589,59595 ----
  5cc01078c1f3f451644a44dfdc807444  gcc/testsuite/gcc.dg/vmx/varargs-6.c
  441584a435c20e33e9ba2840da79de7b  gcc/testsuite/gcc.dg/vmx/varargs-7.c
  88d7e6b1c915da50092f2f05e8403f00  gcc/testsuite/gcc.dg/vmx/vec-set.c
! ac7562a7203071cb28621ad0e672c5e5  gcc/testsuite/gcc.dg/vmx/vmx.exp
  7b36f93de20205be4944182fe8222120  gcc/testsuite/gcc.dg/vmx/vsums.c
  0e39fb03e625fd0928ac3568284946cb  gcc/testsuite/gcc.dg/vmx/x-01.c
  780491d8a6964b34313eb871098c1ec6  gcc/testsuite/gcc.dg/vmx/x-02.c
*************** c2a72555b847a160fe0e6ed226d4d97d  gcc/te
*** 56360,56367 ****
  f5b5cb2b526a46cc84be22a60b28910d  gcc/testsuite/gcc.dg/vshift-7.c
  e24f2248b6dfe2458324a1f859ecb3c3  gcc/testsuite/gcc.dg/vxworks/initpri1.c
  082cdb5ff1a15b2384040533828cac32  gcc/testsuite/gcc.dg/vxworks/initpri2.c
! 92eb63883cc2dcea104fb54773efc430  gcc/testsuite/gcc.dg/vxworks/vxworks.exp
! 807831bd928d8bca1ad6f704a5f898aa  gcc/testsuite/gcc.dg/warn-1.c
  707e0da2129d4bb332c0bf10ea621989  gcc/testsuite/gcc.dg/warn-abs-1.c
  be8f7b50176d3cc112e9b45dfbff569c  gcc/testsuite/gcc.dg/warn-addr-cmp.c
  4fa5ad62e3c2258f30b689370761ebf9  gcc/testsuite/gcc.dg/warn-nsstring.c
--- 59619,59626 ----
  f5b5cb2b526a46cc84be22a60b28910d  gcc/testsuite/gcc.dg/vshift-7.c
  e24f2248b6dfe2458324a1f859ecb3c3  gcc/testsuite/gcc.dg/vxworks/initpri1.c
  082cdb5ff1a15b2384040533828cac32  gcc/testsuite/gcc.dg/vxworks/initpri2.c
! b071949aed0afa0855678fc1e772cbb9  gcc/testsuite/gcc.dg/vxworks/vxworks.exp
! 57481c618994dc5a542ff5baa0186cf0  gcc/testsuite/gcc.dg/warn-1.c
  707e0da2129d4bb332c0bf10ea621989  gcc/testsuite/gcc.dg/warn-abs-1.c
  be8f7b50176d3cc112e9b45dfbff569c  gcc/testsuite/gcc.dg/warn-addr-cmp.c
  4fa5ad62e3c2258f30b689370761ebf9  gcc/testsuite/gcc.dg/warn-nsstring.c
*************** b2257f5f913dd4b4b9eb7a2ea834a710  gcc/te
*** 56377,56445 ****
  8c4274546261eadb1410524bcdc26c4d  gcc/testsuite/gcc.dg/wchar_t-1.c
  f2cc2a4270e9964959b2a5f3df5cdaae  gcc/testsuite/gcc.dg/wchar_t-2.c
  7368eeb85c3d8e771c824db72e256309  gcc/testsuite/gcc.dg/weak/typeof-2.c
! cd6fc4b503907cb791718355b2e8b13e  gcc/testsuite/gcc.dg/weak/weak-1.c
  5b030d8bcb22dedd984e8d8dae17cfb6  gcc/testsuite/gcc.dg/weak/weak-10.c
  121bd4b7463864effe08a934bc490b0d  gcc/testsuite/gcc.dg/weak/weak-11.c
! 0b5c36c90b3afe98de584e49343a4f31  gcc/testsuite/gcc.dg/weak/weak-12.c
  fc79cd4804afe5fc2b7f140f5eae482d  gcc/testsuite/gcc.dg/weak/weak-13.c
  2dbf1902b4b321c5bf3cfc37eae03a68  gcc/testsuite/gcc.dg/weak/weak-14.c
! 42293fde198a48077e2c7cda6144ca53  gcc/testsuite/gcc.dg/weak/weak-15.c
! e0a91183b53de4db07731d70464e0514  gcc/testsuite/gcc.dg/weak/weak-16.c
  99ed81e57fd8a9986faf9263996177f8  gcc/testsuite/gcc.dg/weak/weak-17.c
  b1053beb6c83d0b7ad775bdb6d738748  gcc/testsuite/gcc.dg/weak/weak-18.c
  82d71518bc5f1e36716ed624e8b5b71d  gcc/testsuite/gcc.dg/weak/weak-19.c
! c32e0266898e6811b8bbf0141c1fa093  gcc/testsuite/gcc.dg/weak/weak-2.c
! 88c5f50c41fa3ec4cc1c09ec154bf31d  gcc/testsuite/gcc.dg/weak/weak-3.c
! 227fc9b36c4ef2834f15e27c78fcc8e6  gcc/testsuite/gcc.dg/weak/weak-4.c
! 534e6df4374a0c278ccdb1d809e6da8f  gcc/testsuite/gcc.dg/weak/weak-5.c
  b7dc9ca29b0c2fb0c11b45350fbe20ac  gcc/testsuite/gcc.dg/weak/weak-6.c
  bbde9e22b1b903e5ff4a277a65a1cb04  gcc/testsuite/gcc.dg/weak/weak-7.c
  ef4ea7d4216e9123244c1d14e75ca376  gcc/testsuite/gcc.dg/weak/weak-8.c
  df7f481c6f796831760bd5209df6243d  gcc/testsuite/gcc.dg/weak/weak-9.c
! 45236285aa267ad856171f6ab9cb3bc5  gcc/testsuite/gcc.dg/weak/weak.exp
  4f8d055b663cb38e2bbb352f1cb7a53c  gcc/testsuite/gcc.dg/webizer.c
  b73fb0ba5d6e226781f1b052bc3742c5  gcc/testsuite/gcc.dg/wide-shift-128.c
  81a04bf47a86380caff11ddcb8294ecc  gcc/testsuite/gcc.dg/wide-shift-64.c
  c6a61511e6fb0917ffba55a76df61339  gcc/testsuite/gcc.dg/winline-1.c
! 55f05c4584b0afa0db6fe31242a296ba  gcc/testsuite/gcc.dg/winline-10.c
  a15fd6e57876c1630526049305bb1218  gcc/testsuite/gcc.dg/winline-2.c
  e537e8c4cf99b530eb42ca0a3e870ae4  gcc/testsuite/gcc.dg/winline-3.c
  d33178bb6a6aec3d8484747201cd2df2  gcc/testsuite/gcc.dg/winline-5.c
  999e3e552ec089e493feb5c3b8206c70  gcc/testsuite/gcc.dg/winline-6.c
! fd04e1baf5da18c4be47f595e60e491c  gcc/testsuite/gcc.dg/winline-7.c
  7ef3005b6b6a3b98993c34dd4de5feed  gcc/testsuite/gcc.dg/winline-9.c
  59f7a248eb2e13835a3ecc5302c389a2  gcc/testsuite/gcc.dg/wint_t-1.c
  cc0d6bce4f8aa2ee952b215a124a101a  gcc/testsuite/gcc.dg/wmain.c
  6a9b477321a41d850c75a5d52f5c1dd2  gcc/testsuite/gcc.dg/wmul-1.c
  f1d3a85709a8eeb06d8e8aa760f9884e  gcc/testsuite/gcc.dg/wrapped-binop-simplify.c
  0608c380e23cc21f1a8c8141d8def366  gcc/testsuite/gcc.dg/wtr-aggr-init-1.c
! 91e38689e9326ab46b941ed442e61c61  gcc/testsuite/gcc.dg/wtr-conversion-1.c
  81ce4be5f048dad36a72f1239e0b064c  gcc/testsuite/gcc.dg/wtr-escape-1.c
  c3ee277f1b4cfda3e01a167c998d7c0e  gcc/testsuite/gcc.dg/wtr-func-def-1.c
  06aa666c6f5ca711eb3f8a6c54643c92  gcc/testsuite/gcc.dg/wtr-int-type-1.c
! 17c4c324ab5fa294ce00aa44297aa2a2  gcc/testsuite/gcc.dg/wtr-label-1.c
  356a56e3d75a012f5c2eee4978c4da5f  gcc/testsuite/gcc.dg/wtr-static-1.c
  725dba94b0274c18315dfadf26f0666f  gcc/testsuite/gcc.dg/wtr-strcat-1.c
  229f9d5c390a48c4cf1ea90024d12fc2  gcc/testsuite/gcc.dg/wtr-suffix-1.c
! 07859b4fa5e0ab50df2089eed325a718  gcc/testsuite/gcc.dg/wtr-switch-1.c
  fde5cbed4304481836e4888bd782a081  gcc/testsuite/gcc.dg/wtr-unary-plus-1.c
  39e70a9253914cba1b4c6bcacbc50ec9  gcc/testsuite/gcc.dg/wtr-union-init-1.c
  793a3798c92ea32ec1fcea0e6299262d  gcc/testsuite/gcc.dg/wtr-union-init-2.c
  74a5f44fe667a8b7a06e2c1ec2083029  gcc/testsuite/gcc.dg/wtr-union-init-3.c
  28a4accc531f37d70039e0ae190b5bb5  gcc/testsuite/gcc.dg/wtypequal.c
! c34b827a7f28759ebf3d5ebc26e975b8  gcc/testsuite/gcc.dg/zero_bits_compound-1.c
  ce7181a37e4abd0831a2d47b7a9a11f2  gcc/testsuite/gcc.dg/zero_bits_compound-2.c
  3818016c4a025396f38ca3c9bd0c1f47  gcc/testsuite/gcc.dg/zero_sign_ext_test.c
  4e040b1868690b5543136a52a2f030b3  gcc/testsuite/gcc.misc-tests/acker1.c
! 3d1fd5444e9fb8105fded44265d64f32  gcc/testsuite/gcc.misc-tests/acker1.exp
  77cec6e0fd95e9ae200e495071d1ae9a  gcc/testsuite/gcc.misc-tests/arm-isr.c
! 2a1e3ad1d2d6911f166c4f1bc1070a87  gcc/testsuite/gcc.misc-tests/arm-isr.exp
  69ee82e02b642cb6edfac2cec4b99756  gcc/testsuite/gcc.misc-tests/bprob-1.c
  769b91c7738037eb489394524ae54796  gcc/testsuite/gcc.misc-tests/bprob-2.c
! a4c2569236fd931492a9cb81ed60249c  gcc/testsuite/gcc.misc-tests/bprob.exp
! eb7af35b2b6ca86f8df129ac94e8fb7d  gcc/testsuite/gcc.misc-tests/dectest.exp
  a11bded9860644075434da1f07b7f1bf  gcc/testsuite/gcc.misc-tests/dhry.c
! 8aea0b29276d8b18f79c4fd30ed6a9e7  gcc/testsuite/gcc.misc-tests/dhry.exp
  850c45b3c3b492adf09b115c0d2d2286  gcc/testsuite/gcc.misc-tests/dhry.h
  02aa6ab9e158e9fa6e94768d75bd86cb  gcc/testsuite/gcc.misc-tests/gcov-1.c
  44d73a2d21081bbe1b4c64084331ec77  gcc/testsuite/gcc.misc-tests/gcov-10.c
--- 59636,59706 ----
  8c4274546261eadb1410524bcdc26c4d  gcc/testsuite/gcc.dg/wchar_t-1.c
  f2cc2a4270e9964959b2a5f3df5cdaae  gcc/testsuite/gcc.dg/wchar_t-2.c
  7368eeb85c3d8e771c824db72e256309  gcc/testsuite/gcc.dg/weak/typeof-2.c
! 37960d70846c4887f92c21dc8d98903f  gcc/testsuite/gcc.dg/weak/weak-1.c
  5b030d8bcb22dedd984e8d8dae17cfb6  gcc/testsuite/gcc.dg/weak/weak-10.c
  121bd4b7463864effe08a934bc490b0d  gcc/testsuite/gcc.dg/weak/weak-11.c
! fce8a678765e6fccf0478e2c87f1ddbf  gcc/testsuite/gcc.dg/weak/weak-12.c
  fc79cd4804afe5fc2b7f140f5eae482d  gcc/testsuite/gcc.dg/weak/weak-13.c
  2dbf1902b4b321c5bf3cfc37eae03a68  gcc/testsuite/gcc.dg/weak/weak-14.c
! ff9408c505d12147e81d13a32e12c0ab  gcc/testsuite/gcc.dg/weak/weak-15.c
! cf2a69b8102ee81866d5f8170997a58a  gcc/testsuite/gcc.dg/weak/weak-16.c
  99ed81e57fd8a9986faf9263996177f8  gcc/testsuite/gcc.dg/weak/weak-17.c
  b1053beb6c83d0b7ad775bdb6d738748  gcc/testsuite/gcc.dg/weak/weak-18.c
  82d71518bc5f1e36716ed624e8b5b71d  gcc/testsuite/gcc.dg/weak/weak-19.c
! da47a98a9dc437100bb766379d9f6391  gcc/testsuite/gcc.dg/weak/weak-2.c
! 7e2f12bea17d89fc581be1636df47046  gcc/testsuite/gcc.dg/weak/weak-3.c
! e08ff43e40ee3793ebaa73beade2f429  gcc/testsuite/gcc.dg/weak/weak-4.c
! 8cac70c2b8b3cd56d97bcb2e4f03225d  gcc/testsuite/gcc.dg/weak/weak-5.c
  b7dc9ca29b0c2fb0c11b45350fbe20ac  gcc/testsuite/gcc.dg/weak/weak-6.c
  bbde9e22b1b903e5ff4a277a65a1cb04  gcc/testsuite/gcc.dg/weak/weak-7.c
  ef4ea7d4216e9123244c1d14e75ca376  gcc/testsuite/gcc.dg/weak/weak-8.c
  df7f481c6f796831760bd5209df6243d  gcc/testsuite/gcc.dg/weak/weak-9.c
! 4999dc27ce126a8e7fbd747b55abe1b3  gcc/testsuite/gcc.dg/weak/weak.exp
  4f8d055b663cb38e2bbb352f1cb7a53c  gcc/testsuite/gcc.dg/webizer.c
  b73fb0ba5d6e226781f1b052bc3742c5  gcc/testsuite/gcc.dg/wide-shift-128.c
  81a04bf47a86380caff11ddcb8294ecc  gcc/testsuite/gcc.dg/wide-shift-64.c
  c6a61511e6fb0917ffba55a76df61339  gcc/testsuite/gcc.dg/winline-1.c
! 88e7f66c0121a205fddceb24c550fcec  gcc/testsuite/gcc.dg/winline-10.c
  a15fd6e57876c1630526049305bb1218  gcc/testsuite/gcc.dg/winline-2.c
  e537e8c4cf99b530eb42ca0a3e870ae4  gcc/testsuite/gcc.dg/winline-3.c
  d33178bb6a6aec3d8484747201cd2df2  gcc/testsuite/gcc.dg/winline-5.c
  999e3e552ec089e493feb5c3b8206c70  gcc/testsuite/gcc.dg/winline-6.c
! df6b0f80439a4da95f9db92b19c43f78  gcc/testsuite/gcc.dg/winline-7.c
  7ef3005b6b6a3b98993c34dd4de5feed  gcc/testsuite/gcc.dg/winline-9.c
  59f7a248eb2e13835a3ecc5302c389a2  gcc/testsuite/gcc.dg/wint_t-1.c
  cc0d6bce4f8aa2ee952b215a124a101a  gcc/testsuite/gcc.dg/wmain.c
  6a9b477321a41d850c75a5d52f5c1dd2  gcc/testsuite/gcc.dg/wmul-1.c
  f1d3a85709a8eeb06d8e8aa760f9884e  gcc/testsuite/gcc.dg/wrapped-binop-simplify.c
  0608c380e23cc21f1a8c8141d8def366  gcc/testsuite/gcc.dg/wtr-aggr-init-1.c
! 9e4245869ad3cdb2e4eeb1f13c54937c  gcc/testsuite/gcc.dg/wtr-conversion-1.c
  81ce4be5f048dad36a72f1239e0b064c  gcc/testsuite/gcc.dg/wtr-escape-1.c
  c3ee277f1b4cfda3e01a167c998d7c0e  gcc/testsuite/gcc.dg/wtr-func-def-1.c
+ 40dfccf5564388c66a6bc6e6c4700492  gcc/testsuite/gcc.dg/wtr-gnu17-1.c
+ 7d63d469878e267f42b4ea52dbcc2eef  gcc/testsuite/gcc.dg/wtr-gnu23-1.c
  06aa666c6f5ca711eb3f8a6c54643c92  gcc/testsuite/gcc.dg/wtr-int-type-1.c
! 7bad5d07f2e11e6cc9a429125f872fec  gcc/testsuite/gcc.dg/wtr-label-1.c
  356a56e3d75a012f5c2eee4978c4da5f  gcc/testsuite/gcc.dg/wtr-static-1.c
  725dba94b0274c18315dfadf26f0666f  gcc/testsuite/gcc.dg/wtr-strcat-1.c
  229f9d5c390a48c4cf1ea90024d12fc2  gcc/testsuite/gcc.dg/wtr-suffix-1.c
! 187fbb8714398c1d40a9aa9451a27d7f  gcc/testsuite/gcc.dg/wtr-switch-1.c
  fde5cbed4304481836e4888bd782a081  gcc/testsuite/gcc.dg/wtr-unary-plus-1.c
  39e70a9253914cba1b4c6bcacbc50ec9  gcc/testsuite/gcc.dg/wtr-union-init-1.c
  793a3798c92ea32ec1fcea0e6299262d  gcc/testsuite/gcc.dg/wtr-union-init-2.c
  74a5f44fe667a8b7a06e2c1ec2083029  gcc/testsuite/gcc.dg/wtr-union-init-3.c
  28a4accc531f37d70039e0ae190b5bb5  gcc/testsuite/gcc.dg/wtypequal.c
! 9d8bca6e7e2e1d728dc555cc554f9408  gcc/testsuite/gcc.dg/zero_bits_compound-1.c
  ce7181a37e4abd0831a2d47b7a9a11f2  gcc/testsuite/gcc.dg/zero_bits_compound-2.c
  3818016c4a025396f38ca3c9bd0c1f47  gcc/testsuite/gcc.dg/zero_sign_ext_test.c
  4e040b1868690b5543136a52a2f030b3  gcc/testsuite/gcc.misc-tests/acker1.c
! 686cccbc62aa786181a082aa24f6b931  gcc/testsuite/gcc.misc-tests/acker1.exp
  77cec6e0fd95e9ae200e495071d1ae9a  gcc/testsuite/gcc.misc-tests/arm-isr.c
! de839686f284e30337debaaae8727106  gcc/testsuite/gcc.misc-tests/arm-isr.exp
  69ee82e02b642cb6edfac2cec4b99756  gcc/testsuite/gcc.misc-tests/bprob-1.c
  769b91c7738037eb489394524ae54796  gcc/testsuite/gcc.misc-tests/bprob-2.c
! 7cc1bf602c463cce74f944d21be81800  gcc/testsuite/gcc.misc-tests/bprob.exp
! 007dd084e175a5484aef3cfb10c98e59  gcc/testsuite/gcc.misc-tests/dectest.exp
  a11bded9860644075434da1f07b7f1bf  gcc/testsuite/gcc.misc-tests/dhry.c
! 6a14d53f722f26d5add14923d4951d8d  gcc/testsuite/gcc.misc-tests/dhry.exp
  850c45b3c3b492adf09b115c0d2d2286  gcc/testsuite/gcc.misc-tests/dhry.h
  02aa6ab9e158e9fa6e94768d75bd86cb  gcc/testsuite/gcc.misc-tests/gcov-1.c
  44d73a2d21081bbe1b4c64084331ec77  gcc/testsuite/gcc.misc-tests/gcov-10.c
*************** a1241f25f3288ad9f494cee117c43506  gcc/te
*** 56458,56466 ****
  d3e578d8bc312db32a2f399db7f8fd84  gcc/testsuite/gcc.misc-tests/gcov-20.c
  7cbc5cb8d89f137fee58e670e9b96f48  gcc/testsuite/gcc.misc-tests/gcov-21.c
  4bf90ad9ab4acffa656c2a2cf8a10265  gcc/testsuite/gcc.misc-tests/gcov-22.c
! 555cc131a69f9faba7b1ac0ae339c2eb  gcc/testsuite/gcc.misc-tests/gcov-23.c
  632a8cbb04146bcb82659d2a9419f3cd  gcc/testsuite/gcc.misc-tests/gcov-24.c
  c71219d95b56b360f999cbe8dd8b9109  gcc/testsuite/gcc.misc-tests/gcov-3.c
  5031c27c248f452d2706615b860fc3f3  gcc/testsuite/gcc.misc-tests/gcov-4.c
  7d9bedbf8aa7d7ba724d6149406ba528  gcc/testsuite/gcc.misc-tests/gcov-4b.c
  3de3228964abb899dfdf7f0613136f40  gcc/testsuite/gcc.misc-tests/gcov-5b.c
--- 59719,59737 ----
  d3e578d8bc312db32a2f399db7f8fd84  gcc/testsuite/gcc.misc-tests/gcov-20.c
  7cbc5cb8d89f137fee58e670e9b96f48  gcc/testsuite/gcc.misc-tests/gcov-21.c
  4bf90ad9ab4acffa656c2a2cf8a10265  gcc/testsuite/gcc.misc-tests/gcov-22.c
! 42d1963cdce75dce5b9a65c3937419ba  gcc/testsuite/gcc.misc-tests/gcov-23.c
  632a8cbb04146bcb82659d2a9419f3cd  gcc/testsuite/gcc.misc-tests/gcov-24.c
+ 0628a34eeb1ec4be53b4741b8adf16a1  gcc/testsuite/gcc.misc-tests/gcov-25.c
+ 22304f773444e66b6d10862c3b5a3970  gcc/testsuite/gcc.misc-tests/gcov-26.c
+ 47ddd14156f3ce008c99672f025743d3  gcc/testsuite/gcc.misc-tests/gcov-27.c
+ 30a70d3bef76109efb4ead4e00292945  gcc/testsuite/gcc.misc-tests/gcov-28.c
+ 7c21be5c2e692d5a3ef56f7df95b7478  gcc/testsuite/gcc.misc-tests/gcov-29.c
  c71219d95b56b360f999cbe8dd8b9109  gcc/testsuite/gcc.misc-tests/gcov-3.c
+ b04c93aaab55fa852627a5e071e8b738  gcc/testsuite/gcc.misc-tests/gcov-30.c
+ 13e63323e5ef1451f30fd4147d4fe687  gcc/testsuite/gcc.misc-tests/gcov-31.c
+ 5167fb7d00d3ad6eb4b44556fcd02729  gcc/testsuite/gcc.misc-tests/gcov-32.c
+ e69ff322390ce234e672ea842548fd02  gcc/testsuite/gcc.misc-tests/gcov-33.c
+ 8d5cb1f1d26741cd130b1c9f29a62216  gcc/testsuite/gcc.misc-tests/gcov-34.c
  5031c27c248f452d2706615b860fc3f3  gcc/testsuite/gcc.misc-tests/gcov-4.c
  7d9bedbf8aa7d7ba724d6149406ba528  gcc/testsuite/gcc.misc-tests/gcov-4b.c
  3de3228964abb899dfdf7f0613136f40  gcc/testsuite/gcc.misc-tests/gcov-5b.c
*************** cd738df03ae207debc1ad168ab05d024  gcc/te
*** 56482,56523 ****
  ce15b46ef3abd924c340b60b46880630  gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
  b4c981ce038b4aba05421ca069c8e20f  gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
  64595fd213798d37265f5eb087bb77f2  gcc/testsuite/gcc.misc-tests/gcov-pr94029.c
! eff555879387c6c36ca72606e31fee1f  gcc/testsuite/gcc.misc-tests/gcov.exp
  d0c60992e0ef331502b84f8ee13cb818  gcc/testsuite/gcc.misc-tests/gcovpart-13b.c
  34383bd53fad12bfd0999bb18c2acbd8  gcc/testsuite/gcc.misc-tests/godump-1.c
  b141cf6e0368373cb6ce35d96fe044aa  gcc/testsuite/gcc.misc-tests/godump-2.c
! 89648e43b7ae32fdd56684522835192d  gcc/testsuite/gcc.misc-tests/godump.exp
! 514b152d23e6542f8db78547d8921f7e  gcc/testsuite/gcc.misc-tests/help.exp
  6d43a784cf19762437a5b9baec4d4095  gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
  4a06f6c2d9b50ef414030d175fbe9d5c  gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
  bfd2eae1e2b6b0aa804a7e33580dc190  gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
  81ac61201db56efd77fdfd14cf2e4266  gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
! bd934a50ddeb4d16c2730a16eaf17f7f  gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
  51bca646196e93b1c8a68319441e0595  gcc/testsuite/gcc.misc-tests/linkage-x.c
  c8d7a18c46af7540c2434614324e7daf  gcc/testsuite/gcc.misc-tests/linkage-y.c
! e21da71ad252577d5e268d7658adc8ab  gcc/testsuite/gcc.misc-tests/linkage.exp
  1d8fa0a1210ed4c4bf0ff4dfa959f060  gcc/testsuite/gcc.misc-tests/matrix1.c
! 6498a9aa20a18cbb55cd807611b742b0  gcc/testsuite/gcc.misc-tests/matrix1.exp
  b45579fdac6008721502ddecb5df29d8  gcc/testsuite/gcc.misc-tests/mg-2.c
! 1767559a792d884823a9dc2ec419bda1  gcc/testsuite/gcc.misc-tests/mg-2.exp
  fb7a4e029ce05eea8ba0f03f9033caa2  gcc/testsuite/gcc.misc-tests/mg.c
! 7150033db45fb674b79211f0fe5a1ede  gcc/testsuite/gcc.misc-tests/mg.exp
! f35d41a836a0cf23f527815f9cf1b0a8  gcc/testsuite/gcc.misc-tests/options.exp
! 7f523ad4f8f021de09eb8adcd3f9e4f3  gcc/testsuite/gcc.misc-tests/output.exp
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 7883c7b83c95d51ae7a49da343c8c4ef  gcc/testsuite/gcc.misc-tests/outputs.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
! bb22859956bf813cdea3d429518e05bc  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
! ed3d754b80fb05f7e81d52f1fe9011a9  gcc/testsuite/gcc.misc-tests/sort2.exp
! 6d46815e9047881902b4dbbe8166c234  gcc/testsuite/gcc.src/maintainers.exp
  8031dd3c171877e36f7163b73fe68210  gcc/testsuite/gcc.target/aarch64/121127.c
  512f8592397ac26799ee85d9c29339ec  gcc/testsuite/gcc.target/aarch64/_Float16_1.c
  6bead3d18e15a037cfb743e33e7712a5  gcc/testsuite/gcc.target/aarch64/_Float16_2.c
  d365d8bf0f5478b04e6451262cf0b804  gcc/testsuite/gcc.target/aarch64/_Float16_3.c
! b6476222ccd817e988d31376fe6017bc  gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
  fbb13bb7b4d389c258ef20d9aae07cf6  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-2.h
  c708255687954aa3e3174b83b89e4e66  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-common.h
  ab893b67ef591ba6b84bda6885255075  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.S
--- 59753,59794 ----
  ce15b46ef3abd924c340b60b46880630  gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
  b4c981ce038b4aba05421ca069c8e20f  gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
  64595fd213798d37265f5eb087bb77f2  gcc/testsuite/gcc.misc-tests/gcov-pr94029.c
! c568fa2ca2c986f0908e024e704bdb66  gcc/testsuite/gcc.misc-tests/gcov.exp
  d0c60992e0ef331502b84f8ee13cb818  gcc/testsuite/gcc.misc-tests/gcovpart-13b.c
  34383bd53fad12bfd0999bb18c2acbd8  gcc/testsuite/gcc.misc-tests/godump-1.c
  b141cf6e0368373cb6ce35d96fe044aa  gcc/testsuite/gcc.misc-tests/godump-2.c
! 588819c3ad99f67778dc6a66f3d0f26a  gcc/testsuite/gcc.misc-tests/godump.exp
! fb6ec228f21e039c8ace7b7d5f6ace1e  gcc/testsuite/gcc.misc-tests/help.exp
  6d43a784cf19762437a5b9baec4d4095  gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
  4a06f6c2d9b50ef414030d175fbe9d5c  gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
  bfd2eae1e2b6b0aa804a7e33580dc190  gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
  81ac61201db56efd77fdfd14cf2e4266  gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
! d21c92e8a0a01475bb3ca988185a5eca  gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
  51bca646196e93b1c8a68319441e0595  gcc/testsuite/gcc.misc-tests/linkage-x.c
  c8d7a18c46af7540c2434614324e7daf  gcc/testsuite/gcc.misc-tests/linkage-y.c
! 520dfa33c83050c5d12c8c842e70ce80  gcc/testsuite/gcc.misc-tests/linkage.exp
  1d8fa0a1210ed4c4bf0ff4dfa959f060  gcc/testsuite/gcc.misc-tests/matrix1.c
! c557d6c1111b542ddb31f2239ba900f5  gcc/testsuite/gcc.misc-tests/matrix1.exp
  b45579fdac6008721502ddecb5df29d8  gcc/testsuite/gcc.misc-tests/mg-2.c
! 0a8ad3243f437e919543547907e347fb  gcc/testsuite/gcc.misc-tests/mg-2.exp
  fb7a4e029ce05eea8ba0f03f9033caa2  gcc/testsuite/gcc.misc-tests/mg.c
! bbcd8b706f46acd48cc5fc9352a80d30  gcc/testsuite/gcc.misc-tests/mg.exp
! 2c97dc728b420cca63f8268e0dd547d1  gcc/testsuite/gcc.misc-tests/options.exp
! b2262cb3502587fa8896a99c57a69149  gcc/testsuite/gcc.misc-tests/output.exp
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 2794d4cc9e2aa6b6848869381467ec2b  gcc/testsuite/gcc.misc-tests/outputs.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
! 5bf01dfd8d63e15b1b75aad3329e80dd  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
! 062d9a6befc366433d7374d0511e6a9d  gcc/testsuite/gcc.misc-tests/sort2.exp
! 7a28d782d0952a30ef9d2a7f10d3f6af  gcc/testsuite/gcc.src/maintainers.exp
  8031dd3c171877e36f7163b73fe68210  gcc/testsuite/gcc.target/aarch64/121127.c
  512f8592397ac26799ee85d9c29339ec  gcc/testsuite/gcc.target/aarch64/_Float16_1.c
  6bead3d18e15a037cfb743e33e7712a5  gcc/testsuite/gcc.target/aarch64/_Float16_2.c
  d365d8bf0f5478b04e6451262cf0b804  gcc/testsuite/gcc.target/aarch64/_Float16_3.c
! 5e039cef81e9a72fff4c44888b2ab4cb  gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
  fbb13bb7b4d389c258ef20d9aae07cf6  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-2.h
  c708255687954aa3e3174b83b89e4e66  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-common.h
  ab893b67ef591ba6b84bda6885255075  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.S
*************** ab893b67ef591ba6b84bda6885255075  gcc/te
*** 56525,56532 ****
  a060bf27d254f08eb108d21b46fed38f  gcc/testsuite/gcc.target/aarch64/aapcs64/dfp-1.c
  dc0bc2f6235b1b60a1916af41316c993  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-1.c
  b08a36b5351c426ed10658f08f6bec7c  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-2.c
! bd6535c91d339319f24ec9d0d4773b8a  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c
! f5ad457e88c353a8d60662f014f458de  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c
  33600f191707a870a7ebe4f6483dbe9e  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-64x1_1.c
  6fb5a7ed4aa917c50e94023a1d085aa0  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_1.c
  449ae46fb2287a0fff8ae0611a75c163  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_2.c
--- 59796,59803 ----
  a060bf27d254f08eb108d21b46fed38f  gcc/testsuite/gcc.target/aarch64/aapcs64/dfp-1.c
  dc0bc2f6235b1b60a1916af41316c993  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-1.c
  b08a36b5351c426ed10658f08f6bec7c  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-2.c
! d2449218854ae9fceb6732022b3dd7f3  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c
! 5715256b0f15ad105509c345d7323da7  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c
  33600f191707a870a7ebe4f6483dbe9e  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-64x1_1.c
  6fb5a7ed4aa917c50e94023a1d085aa0  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_1.c
  449ae46fb2287a0fff8ae0611a75c163  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_2.c
*************** b51362df070ad6ef73f3c62bb1acacfb  gcc/te
*** 56648,56654 ****
  8306069eae8c21a38cf65ea80960e602  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-8.c
  f05c75f497f017a490f3facad4b26647  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-9.c
  3f40e5d196a05153206e4941fc3b1d10  gcc/testsuite/gcc.target/aarch64/aapcs64/validate_memory.h
! 5b0f99f048f068e243d02e1d47c33704  gcc/testsuite/gcc.target/aarch64/aarch64.exp
  e3907dca91ae6b3afba8ef6c1d54da50  gcc/testsuite/gcc.target/aarch64/abd.h
  5edfd2c8b369aabd5c367fb78ad782bd  gcc/testsuite/gcc.target/aarch64/abd_1.c
  88c6f608f5889cfbde4d786516bb8177  gcc/testsuite/gcc.target/aarch64/abd_2.c
--- 59919,59925 ----
  8306069eae8c21a38cf65ea80960e602  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-8.c
  f05c75f497f017a490f3facad4b26647  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-9.c
  3f40e5d196a05153206e4941fc3b1d10  gcc/testsuite/gcc.target/aarch64/aapcs64/validate_memory.h
! 8671d57ea2d361cdfd1f2e80a88cbfe1  gcc/testsuite/gcc.target/aarch64/aarch64.exp
  e3907dca91ae6b3afba8ef6c1d54da50  gcc/testsuite/gcc.target/aarch64/abd.h
  5edfd2c8b369aabd5c367fb78ad782bd  gcc/testsuite/gcc.target/aarch64/abd_1.c
  88c6f608f5889cfbde4d786516bb8177  gcc/testsuite/gcc.target/aarch64/abd_2.c
*************** ca6c06d80f2b9e8ed39f4fd5a6dff020  gcc/te
*** 56663,56673 ****
  91e43442f0e12759c331da35420b2704  gcc/testsuite/gcc.target/aarch64/abd_widen_4.c
  ae513bfb2896c38de994944b104fb7c8  gcc/testsuite/gcc.target/aarch64/abs_1.c
  8a6aed21d2622bf72389f22f09d8bd4b  gcc/testsuite/gcc.target/aarch64/abs_2.c
! 4c042431bd9c0fee72fecae7e28abe01  gcc/testsuite/gcc.target/aarch64/acle/acle.exp
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
  d75448581ffe687b59d90766e852e7df  gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c
  80f5f996bc3addf12ec6ed7a7a97d085  gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
  339f7215861041bbe928186d86e2c7b7  gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
  b3b451a8f938e2c0a24c2751eab2c62d  gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c
  ff79cdd1c6205d62ceab022024616fbc  gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c
--- 59934,59947 ----
  91e43442f0e12759c331da35420b2704  gcc/testsuite/gcc.target/aarch64/abd_widen_4.c
  ae513bfb2896c38de994944b104fb7c8  gcc/testsuite/gcc.target/aarch64/abs_1.c
  8a6aed21d2622bf72389f22f09d8bd4b  gcc/testsuite/gcc.target/aarch64/abs_2.c
! 8cf3d3c28b50fed0d754f5967c5a3138  gcc/testsuite/gcc.target/aarch64/abs_bf_1.c
! 8510e21c892476ef1aeffde9fb852647  gcc/testsuite/gcc.target/aarch64/acle/acle.exp
! cb3e8020430a2ad0a4a6603145f25950  gcc/testsuite/gcc.target/aarch64/acle/acle_fma.c
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
  d75448581ffe687b59d90766e852e7df  gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c
  80f5f996bc3addf12ec6ed7a7a97d085  gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
+ d124c7c1e8b3b4829d01e2f756bf3113  gcc/testsuite/gcc.target/aarch64/acle/chkfeat-1.c
  339f7215861041bbe928186d86e2c7b7  gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
  b3b451a8f938e2c0a24c2751eab2c62d  gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c
  ff79cdd1c6205d62ceab022024616fbc  gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c
*************** acaaa7b0871f73bf93a15b8ccdd87575  gcc/te
*** 56677,56686 ****
--- 59951,59975 ----
  17ec255ef73cef3bbc3a0c8ca9ea408d  gcc/testsuite/gcc.target/aarch64/acle/crc32h.c
  fa7ed3baf58293efac2270a829b36fbf  gcc/testsuite/gcc.target/aarch64/acle/crc32w.c
  6717fca79661e30514c554d809b9ded2  gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c
+ 4e1ddd7407df847370770f6d1edf33c9  gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-neon.c
+ e9303630d98d1f67dcf0881643f14517  gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-sme.c
+ 1f6c38a24e776d1d411aaf2cba14b65d  gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-sve.c
+ ee2655ac32e03b2e446c179151077b7f  gcc/testsuite/gcc.target/aarch64/acle/fp8.c
+ 33cb4aab6e8f013ca768ba5fcfed00b5  gcc/testsuite/gcc.target/aarch64/acle/fpmr-1.c
+ 3168364a4b456f310c43e677aa92da85  gcc/testsuite/gcc.target/aarch64/acle/fpmr-2.c
+ 14a3a91da4cb56d31ed09b0245f09ae0  gcc/testsuite/gcc.target/aarch64/acle/fpmr-3.c
+ 6250b2f6cb86c3d3eff8e1089a62dc6b  gcc/testsuite/gcc.target/aarch64/acle/fpmr-4.c
+ b124b4a8775459bdb8e9131c4d83da44  gcc/testsuite/gcc.target/aarch64/acle/fpmr-5.c
+ d25dadda19568d3e3a80f390ab997b6f  gcc/testsuite/gcc.target/aarch64/acle/fpmr-6.c
+ f8963e4d534b1e16d42c1b8dfefdcc33  gcc/testsuite/gcc.target/aarch64/acle/gcs-1.c
  56cadf41ea040c38f913b6c3e6475be3  gcc/testsuite/gcc.target/aarch64/acle/jcvt_1.c
  a7c4014d53740d897076d06edcac5aaa  gcc/testsuite/gcc.target/aarch64/acle/jcvt_2.c
  ccf5175907998c0c871634fd51ca889f  gcc/testsuite/gcc.target/aarch64/acle/ls64_asm.c
  227ce3bdabfe19000133fa6e523116a8  gcc/testsuite/gcc.target/aarch64/acle/ls64_asm_2.c
+ 4d87d10b2fe583812eed84598bb2cfcd  gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c
+ 43c995c5686c055bd7b018a0660293fe  gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c
+ 36db33628b1460ad52b126430c71e8ff  gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c
+ 4435480fd789ffeb6e6be1deacf034a7  gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c
  5d5290a990ac45d048d05d14caca4874  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b-2.c
  1c5b2165b1d114daea4683d247a75998  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b-3.c
  fa1ccdd20a958a2e7bc98028d2b2a9f0  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b.c
*************** ff3a09d9afde293ac1598cb7530ead9d  gcc/te
*** 56700,56705 ****
--- 59989,59998 ----
  dad27dd9a8b076099818ec56a74ef781  gcc/testsuite/gcc.target/aarch64/acle/memtag_2a.c
  e2be4748443bb6caa176b86d28972388  gcc/testsuite/gcc.target/aarch64/acle/memtag_3.c
  80e71befec8aee6a1de511bb177d338e  gcc/testsuite/gcc.target/aarch64/acle/memtag_4.c
+ b2d6f261b85fc4c40364afc833ecb5e2  gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c
+ 8e4f0bd02ab51af73994cbb1b16fa49d  gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c
+ f77736bbbcf7df1596fc2fe18281d585  gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c
+ e07b7eca3400e8f64d689f1c10efe2bd  gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c
  1d797526b5b45f0f4e3526be82bb2af3  gcc/testsuite/gcc.target/aarch64/acle/pauth_def.c
  4f75ca7b0d38f756a18d8f9574e56fd4  gcc/testsuite/gcc.target/aarch64/acle/pmull64.c
  7891d663249f27cbe3e8c65142207451  gcc/testsuite/gcc.target/aarch64/acle/pr108140.c
*************** cb84d7d74821259d1a47775dd18c13c8  gcc/te
*** 56712,56720 ****
  a204aadb3f5fc384dd117c7c09175029  gcc/testsuite/gcc.target/aarch64/acle/rwsr-1.c
  d5b77d8e1a21321e649e6b77802e64c8  gcc/testsuite/gcc.target/aarch64/acle/rwsr-2.c
  90a044b6489e0d51268ae3d5ce15dead  gcc/testsuite/gcc.target/aarch64/acle/rwsr-3.c
! 37f8720622531f40d94c6e3f7f2b1050  gcc/testsuite/gcc.target/aarch64/acle/rwsr-armv8p9.c
  c41c68503dfa6ef4c72faaf77fd40cb2  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
  3956a5fd71df11f14c94ff428d8264a6  gcc/testsuite/gcc.target/aarch64/adc-1.c
  d20a3c5925eb2e8c28249b5e4eb57a97  gcc/testsuite/gcc.target/aarch64/adc-2.c
  e2b1388fba47b95c8b27a3e1a29953ff  gcc/testsuite/gcc.target/aarch64/adds.c
--- 60005,60019 ----
  a204aadb3f5fc384dd117c7c09175029  gcc/testsuite/gcc.target/aarch64/acle/rwsr-1.c
  d5b77d8e1a21321e649e6b77802e64c8  gcc/testsuite/gcc.target/aarch64/acle/rwsr-2.c
  90a044b6489e0d51268ae3d5ce15dead  gcc/testsuite/gcc.target/aarch64/acle/rwsr-3.c
! 07dc62ae2bcf9c8e358ed99fe06cd5d6  gcc/testsuite/gcc.target/aarch64/acle/rwsr-4.c
! 119d4f72bb0ea43c9a5cbee2e61cdd5e  gcc/testsuite/gcc.target/aarch64/acle/rwsr-armv8p9.c
! b478e4234b2713f0df0d417dd9d13425  gcc/testsuite/gcc.target/aarch64/acle/rwsr-ungated.c
  c41c68503dfa6ef4c72faaf77fd40cb2  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
+ 1627c4e768e0f137d5dca5de857b5c77  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
+ b17ad011788c422a42d7da3d5a869239  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
+ aa779f716e05ff6a4acc890465c03576  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
+ f67a4b5e44d64eb195dea3cc6d237bba  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
  3956a5fd71df11f14c94ff428d8264a6  gcc/testsuite/gcc.target/aarch64/adc-1.c
  d20a3c5925eb2e8c28249b5e4eb57a97  gcc/testsuite/gcc.target/aarch64/adc-2.c
  e2b1388fba47b95c8b27a3e1a29953ff  gcc/testsuite/gcc.target/aarch64/adds.c
*************** e2b1388fba47b95c8b27a3e1a29953ff  gcc/te
*** 56722,56730 ****
  caf80fb3defd2872fa7d7dc3fa721878  gcc/testsuite/gcc.target/aarch64/adds2.c
  480e16f2c7cfb659fed5b0f7a3c1547a  gcc/testsuite/gcc.target/aarch64/adds3.c
  55ff9765cb94d7817c4c42421ab1deaa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/README
! 628330757af13a3f0ef457960d843489  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
! 6be72d4411b42d96dbefbc2a2b05d2be  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
! 012249ec105164442e4c8e2f09841d19  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
  13fdac8c1ccc57731f09af48efde5d69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c
  91e542409f80a82d911b9bf4df782435  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
  ebd46f74a2c7a6abc8e49dc80272e3d1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
--- 60021,60029 ----
  caf80fb3defd2872fa7d7dc3fa721878  gcc/testsuite/gcc.target/aarch64/adds2.c
  480e16f2c7cfb659fed5b0f7a3c1547a  gcc/testsuite/gcc.target/aarch64/adds3.c
  55ff9765cb94d7817c4c42421ab1deaa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/README
! 6be983e6419194ad33fefa80f72e760a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
! a89f5f18bfa6806c0515d09cdf2c151e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
! 0ffc458eaea796bb44028da88859ebc4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
  13fdac8c1ccc57731f09af48efde5d69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c
  91e542409f80a82d911b9bf4df782435  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
  ebd46f74a2c7a6abc8e49dc80272e3d1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
*************** ec22fbdd8271e68304a64fd92533fcc2  gcc/te
*** 56754,56761 ****
  2eb04076c167d9623ef4db08ba5b5eac  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc
  8b7fe5e3f608156c6dd8c2382aa48368  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/cmp_zero_op.inc
  09467f6d3704f99313ea2c4bb06ebadd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/combine.c
! e9dbf1dca3c765be5169575cd8169e1c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h
  5125cb4b3bd28f66b40d4070ec5aaf36  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c
  0244d27c155f8b9253241c5715fda41f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
  dd4fa55b661e81d32222124388be6ee7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/pr98852.c
  96a535921f3e2c472376fe13d48fbc68  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/shrn-1.c
--- 60053,60061 ----
  2eb04076c167d9623ef4db08ba5b5eac  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc
  8b7fe5e3f608156c6dd8c2382aa48368  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/cmp_zero_op.inc
  09467f6d3704f99313ea2c4bb06ebadd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/combine.c
! 33561c768270392fb8ed106191c7da6c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h
  5125cb4b3bd28f66b40d4070ec5aaf36  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/ignored_return_1.c
+ 8d14e25c822c3fe9f91adb12909b4bce  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/mf8-reinterpret.c
  0244d27c155f8b9253241c5715fda41f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
  dd4fa55b661e81d32222124388be6ee7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/pr98852.c
  96a535921f3e2c472376fe13d48fbc68  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/shrn-1.c
*************** dfaf59535ecdd123a83a0cfc28580fd6  gcc/te
*** 56774,56785 ****
  c512f875a6911aa667a98a7e20d826e4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaba.c
  f4788d4563b537979e0118b141cb9a17  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabal.c
  1f854089d0226246c9527c15829b0c3c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabd.c
! 7019c14623045855b50d51a6f85e9ee4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabdh_f16_1.c
  5d399d53b4a6d5d550a72f4d8c21a01a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabdl.c
  790a44d02d19c8ce2e0652f89f0db1bd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabs.c
! a37daaa921cf938570f9de5c94ea66bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabsh_f16_1.c
  d0067cab29fcc180c3d02bb10cf4733a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vadd.c
! 1a4f2f2f76be3e75ef094080b4f8c615  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddh_f16_1.c
  0501c4991830e3efed62aa0fc54e9fa3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddhn.c
  d9c14c315c1ba492dadf4baa147f0e93  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddhn_high.c
  a7b721717f965190c7742e75bba48068  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddl.c
--- 60074,60085 ----
  c512f875a6911aa667a98a7e20d826e4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaba.c
  f4788d4563b537979e0118b141cb9a17  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabal.c
  1f854089d0226246c9527c15829b0c3c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabd.c
! f873099805a895d6fb8b681627558ada  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabdh_f16_1.c
  5d399d53b4a6d5d550a72f4d8c21a01a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabdl.c
  790a44d02d19c8ce2e0652f89f0db1bd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabs.c
! a5095e99a6c6338e5a110465a28c9756  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vabsh_f16_1.c
  d0067cab29fcc180c3d02bb10cf4733a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vadd.c
! d1c0948b8b613fc9fc8bede34c957557  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddh_f16_1.c
  0501c4991830e3efed62aa0fc54e9fa3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddhn.c
  d9c14c315c1ba492dadf4baa147f0e93  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddhn_high.c
  a7b721717f965190c7742e75bba48068  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaddl.c
*************** c464a62df34160edde244079f55e286a  gcc/te
*** 56787,56825 ****
  6619f1fa620b6cc386847e296ac2a660  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vand.c
  ae1bed176a603fd8788b975edff4f99d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbfmlalbt_lane_f32_indices_1.c
  7902bc68c94e48747f19ab04b59da6ca  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbic.c
! 266eefa8d150f0f6f08abca19422cc5d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbsl.c
  3139d155412ec3d31013917368ce6e5d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcage.c
! 56b7fc2efa16636fa36efc33e74b5319  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcageh_f16_1.c
  3e67b8010f162e212af36cfb1c88ea5e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcagt.c
! 4060f7827664201432066bd375854287  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcagth_f16_1.c
  1d7703c20cbb4afd67476ddd52ffefed  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcale.c
! 70e4b7972503c1fb916f168a284f9b66  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcaleh_f16_1.c
  c45ddb11e359bd7234bf15fbefad5166  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcalt.c
! 922e135b561f681d6f6f85ddca099cb4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcalth_f16_1.c
  238cab65f690e449ba310b156edb9948  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceq.c
! 345254a2d822e95513f292a2df278143  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqh_f16_1.c
  aa84b27e89d9a0f02401602a1d3d9c4a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqz_1.c
! 0e8f0d575f0f577df83e9d5ed22638d8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqzh_f16_1.c
  d2aa68f8ea6d1a7585a6489db81bcb25  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcge.c
! 62a0ee19f5d17080cdff4999a1731029  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgeh_f16_1.c
  6f1dda47f3cae180e2e96a9065de1eb3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgez_1.c
! 931c37a83acca67592e1c7082bd97bad  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgezh_f16_1.c
  306816a53b2d4793f58b9734936a66b9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgt.c
! 90506b79bd267a119245369350bb54cf  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgth_f16_1.c
  e887a64e0c0238139d035dcafe5d46e4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgtz_1.c
! bce85a4a7ee098b048ad005327a33277  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgtzh_f16_1.c
  9d36392e6bdb63e50186819e3ed47cb1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcle.c
! c68dd9f3aa689527e5dd70cf831226cf  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcleh_f16_1.c
  caa5dd7a429076aec09b840a7b518ffe  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclez_1.c
! c2d32d69d8351efca7f4efc4335b8acd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclezh_f16_1.c
  ac5c9f4f81a047809a7a95b4c5cbf95d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcls.c
  dca76b69b7b9a1433ae137a0709ca8d0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclt.c
! a660137088d974db61c8a7d9a77f3bfa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclth_f16_1.c
  adafad2cd221edb3fb3e0a7b52bc165c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcltz_1.c
! 50105fe4f9f99b1bd38e4eac26d6493e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcltzh_f16_1.c
  d54fffef4035aec24f0845fd1b80faa1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclz.c
  441c03ab2d4d17821e738deab650d8ee  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcnt.c
! 608594ee84f19ac4aa101efc96708156  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcombine.c
  81331fce93f079a2fbd6cdcbf89cd190  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_1.c
  121b63445e78ec0f9fef9c8fedbdb07d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_2.c
  c75c1797ee8c69e473e2c385bcf58d51  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_1.c
--- 60087,60125 ----
  6619f1fa620b6cc386847e296ac2a660  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vand.c
  ae1bed176a603fd8788b975edff4f99d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbfmlalbt_lane_f32_indices_1.c
  7902bc68c94e48747f19ab04b59da6ca  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbic.c
! e57e6a319609664123acdeed1f65bfed  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vbsl.c
  3139d155412ec3d31013917368ce6e5d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcage.c
! ca81762f021babdb9a315a4c713b2822  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcageh_f16_1.c
  3e67b8010f162e212af36cfb1c88ea5e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcagt.c
! 8cdcdcca8b888e5a8c0dcec109edd3fc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcagth_f16_1.c
  1d7703c20cbb4afd67476ddd52ffefed  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcale.c
! ee66c7959420a06061faabcdad3af7ce  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcaleh_f16_1.c
  c45ddb11e359bd7234bf15fbefad5166  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcalt.c
! 935682641365930f62066a3eda765ea4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcalth_f16_1.c
  238cab65f690e449ba310b156edb9948  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceq.c
! 8a31a3e12351e4f15cf6f60c48597081  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqh_f16_1.c
  aa84b27e89d9a0f02401602a1d3d9c4a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqz_1.c
! 7536b6b5078c6132c0cb10a290140649  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vceqzh_f16_1.c
  d2aa68f8ea6d1a7585a6489db81bcb25  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcge.c
! b1d5644fe75dd2414fd9818f59576a30  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgeh_f16_1.c
  6f1dda47f3cae180e2e96a9065de1eb3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgez_1.c
! 16997b00e95fe173839ca8fa3b129ab1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgezh_f16_1.c
  306816a53b2d4793f58b9734936a66b9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgt.c
! a55eee718b3ee08fe70fd1939c45407d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgth_f16_1.c
  e887a64e0c0238139d035dcafe5d46e4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgtz_1.c
! 8beb9cb11412ef68583cc273336fdf69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcgtzh_f16_1.c
  9d36392e6bdb63e50186819e3ed47cb1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcle.c
! ba130c3fc6a3502410406536a4c6258a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcleh_f16_1.c
  caa5dd7a429076aec09b840a7b518ffe  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclez_1.c
! 7021fbf966d8ef4a195d183614a5a503  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclezh_f16_1.c
  ac5c9f4f81a047809a7a95b4c5cbf95d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcls.c
  dca76b69b7b9a1433ae137a0709ca8d0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclt.c
! e81a8270fd44978d714141214411dba3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclth_f16_1.c
  adafad2cd221edb3fb3e0a7b52bc165c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcltz_1.c
! 367dcf9474f272f738d924c6fc91caee  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcltzh_f16_1.c
  d54fffef4035aec24f0845fd1b80faa1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vclz.c
  441c03ab2d4d17821e738deab650d8ee  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcnt.c
! e47e2f34dfaf286e766b12c74044f2b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcombine.c
  81331fce93f079a2fbd6cdcbf89cd190  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_1.c
  121b63445e78ec0f9fef9c8fedbdb07d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_lane_bf16_indices_2.c
  c75c1797ee8c69e473e2c385bcf58d51  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopy_laneq_bf16_indices_1.c
*************** ff1194f1254c1e1d98c0cc8799b1877a  gcc/te
*** 56828,56893 ****
  beb48a7d480beb85f0644694463f1739  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_2.c
  ee59f0928396a69f17c02f71411fb9fd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_1.c
  2c304d219eb921385b226add94b3f09e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_2.c
! 0c8c914698580d2ef7dbcc958b7bd8dd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcreate.c
  02605c3ddba5557ff20275a979b9a402  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt.c
  7239a07f803b77f6138600000612801b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtX.inc
  cbd917762af02f2b3329cbc92c7b2e5c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_f16.c
  1c198cdf08766643e0b6b0e9a81c5053  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_fXX_fXX.c
  470f18aa8a09bc28710aa68b7f35b8d9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_high_1.c
  4440da24af2c33112d0656bcb336b065  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvta_1.c
! 210ff9fc52037bd3cda5e72c809f679d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s16_f16_1.c
! 8ce47063c4ec59bf70482b9f41c08b7f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s32_f16_1.c
! 54d3b894b4bb969135d908f76bea9fce  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s64_f16_1.c
! ae2d0efeb99386c4a9d84ea72f3f8085  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u16_f16_1.c
! 91f301eba8b033f107248355db8d0dcc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u32_f16_1.c
! 126816d6cf26bb5e7969cf2486f359af  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u64_f16_1.c
! d3bf4fe6a741da18085c9adb62e4ee63  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s16_1.c
! e8284bb42b29ecedec57f784bd9bf946  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s32_1.c
! 988f871e5097482e0c57e9111ebb96de  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s64_1.c
! a05846d6b67fd13a80d9597ad8d78c65  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u16_1.c
! ee1731044dae76a8c80c9f9b953cae3d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u32_1.c
! 4a2abcfcfeb398f13f93862e0d71cc7e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u64_1.c
! d7bb736cea07ba61e47db160fb8c591a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s16_1.c
! 3ea9efc906f3c089fc48372240fa272d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s32_1.c
! 94782062103f61b86a1357b78b8da20b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s64_1.c
! 24dc08ed57674bb109880fc3b3d07818  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u16_1.c
! 27ae9d7beb8675291279699a1909a7b3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u32_1.c
! 4e733cd045cbd786b651df65a0f005be  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u64_1.c
! a5238572ba19e3a8e23c175487a28bf5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s16_f16_1.c
! 5e932b88e05da0af87c88aa265e44809  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s32_f16_1.c
! 89b365bfabe7b0344bf2811e180479f6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s64_f16_1.c
! 4f9b461d71d159c351d6c1fe16d3d431  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u16_f16_1.c
! e34d43f21ebd3e5016cc192d5e0f13f2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u32_f16_1.c
! 2f0a3db0c60e7aec8249e3a930ad5914  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u64_f16_1.c
! 2f3698daca1a459b72d3529749712e42  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s16_f16_1.c
! 461becd178f4ce85e32cdc78086bb121  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s32_f16_1.c
! c4622460f273d4a35258a1e02fb679d6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s64_f16_1.c
! f206883319ffc7e6ec03da2b7138d45b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u16_f16_1.c
! 4ed5065cc5f8253e0de3a9c09348c7e1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u32_f16_1.c
! c502f8ad310bc72df39d2b370ae735c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u64_f16_1.c
  738e90f0249a0a8db57ce2903796c82e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtm_1.c
! 8eb0d463d0fe001d4dea2161d3e3069f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s16_f16_1.c
! 68af751f5acbd8f036cdbab17e25434d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s32_f16_1.c
! f4cc7ad1948246c52db8416aadff6f7a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s64_f16_1.c
! 096abf9398de89905d0fc914713e2c80  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u16_f16_1.c
! cb59054a2f7096dea85893e570325843  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u32_f16_1.c
! fefbca835d67a81043fc5e19ddb99f73  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u64_f16_1.c
! d5670843640403b07f88cb79ff748eb3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s16_f16_1.c
! cd28f53cd401fb13ee2fa3c9dbde2a64  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s32_f16_1.c
! e01ff904cfc4d8ac0c31b86b90595e14  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s64_f16_1.c
! 2fa17767a9b904db66ddc8da3cae3734  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u16_f16_1.c
! 1b742f7b4b08a81f056a4a48ce8055b3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u32_f16_1.c
! 74e5191f69e115997b6430be4b5da2cd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u64_f16_1.c
  93acf70a5c98e3c82cb70a560ca75d24  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtp_1.c
! efedd50642c6644cb6f531aba682095e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s16_f16_1.c
! 6144f8887a67284d7c7425125471ec8b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s32_f16_1.c
! 5af8f60cfeff750ad91b7d143629c6f8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s64_f16_1.c
! 40be7be7a1ec70672393aa201a57359e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u16_f16_1.c
! 4f8957ccf50822838f4ae45abed922f3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u32_f16_1.c
! 946d8b27f15e0958922744a3b08ecc22  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u64_f16_1.c
  8e5a12cc91e3d9700a3797351ad068df  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtx.c
! deb9860e1a64c53b3c341799f3fbe87d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c
! cc8862bbb06bf4f811fe1be4bca2eeb1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c
  5934bccf031a2282593bd2fcf51d29c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
  bd27e28c107029963bc14382b8b4e2c5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
  02fdf739d8e929deb204884dbd92339d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c
--- 60128,60193 ----
  beb48a7d480beb85f0644694463f1739  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_lane_bf16_indices_2.c
  ee59f0928396a69f17c02f71411fb9fd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_1.c
  2c304d219eb921385b226add94b3f09e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcopyq_laneq_bf16_indices_2.c
! 71b3d6a7c07889cb589339c39d6478e3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcreate.c
  02605c3ddba5557ff20275a979b9a402  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt.c
  7239a07f803b77f6138600000612801b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtX.inc
  cbd917762af02f2b3329cbc92c7b2e5c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_f16.c
  1c198cdf08766643e0b6b0e9a81c5053  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_fXX_fXX.c
  470f18aa8a09bc28710aa68b7f35b8d9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_high_1.c
  4440da24af2c33112d0656bcb336b065  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvta_1.c
! 2d2c20f0f59bfbf6902133db72b045c4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s16_f16_1.c
! 67e0cd318e779895b086ef1d0054e7ec  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s32_f16_1.c
! b9027fcf9fc612ddf6e645eabe898858  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_s64_f16_1.c
! fbbe1d5038a80d8ce6f9864545c06354  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u16_f16_1.c
! 47d0f59aaaf7c74750137ee996cec9c4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u32_f16_1.c
! d0630a5dff6dc09cab3750e2dabccbd6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtah_u64_f16_1.c
! 1c59db9b929054bcb31d163b994e7fa8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s16_1.c
! 17bc0745f1c83be553acaaad6fd86499  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s32_1.c
! 28731f0edcde40e365775f752b4cf1a7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s64_1.c
! 53c6724761eeab61143ec2cc8b24a92d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u16_1.c
! 151aa70814167a8e6396fe9836792002  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u32_1.c
! 4992c068c6c6d27c7aff5014b5286ec8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u64_1.c
! 55e6ee946f78eda3846854fde5507ec1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s16_1.c
! bad59d08ad9ae9c283677f3e2351bef6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s32_1.c
! 44dfd12bf5fdb969c3115e391dcfe892  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s64_1.c
! 28cde6dec5b3a4f8f05bf1a7fede3074  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u16_1.c
! 4de1ade7b1c4170745f72d82358d9ebb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u32_1.c
! c5590569da3893520a49a33e98edd325  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u64_1.c
! 2cac0c0330bbcd7e84d1ec4d796c3599  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s16_f16_1.c
! ff90e7b81b8e0c003b007d49fc8d57bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s32_f16_1.c
! a14d186c48df93bf350221d00bfca480  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s64_f16_1.c
! a1c5ae2411695ffa1a8b40653491190c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u16_f16_1.c
! acd0a95d7996d4db7228efa5fd79b94a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u32_f16_1.c
! 260db2bdaf6c4ece96d4c6fbee928c96  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u64_f16_1.c
! 74b81f89840dc8934ec83e3a16f775e9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s16_f16_1.c
! e53ee2281c5ac9204a9bc2f5d4e1675d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s32_f16_1.c
! a505bec47a18fb10c7bd6324a346e0fd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_s64_f16_1.c
! 93b8548e22a2d35f44399f94439503f0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u16_f16_1.c
! a7c175b9aa15a26f50f85c4085fdea9d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u32_f16_1.c
! 01a05673615a35cd47e9da6d16ea0255  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvth_u64_f16_1.c
  738e90f0249a0a8db57ce2903796c82e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtm_1.c
! d15fa1fd28aa93d87edfe3cb423c6d3f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s16_f16_1.c
! 93c168275243484e3db9fb8da6076bc3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s32_f16_1.c
! 6954b0e7fad438260204a95141232c32  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s64_f16_1.c
! ac7f15f5bd82e76b4d080b6d6dad5e96  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u16_f16_1.c
! 408be923db955ca25bdc532bc6411c8c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u32_f16_1.c
! dc66172f1ca4790d515b36de110e454a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u64_f16_1.c
! 80cdd0672cfbb8643667418c3c0787f9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s16_f16_1.c
! 7eae1a6a7547a602b00c946355f36464  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s32_f16_1.c
! b02ba94b846e7ff7e96deb74507f7f25  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s64_f16_1.c
! 55282678837de530366f9096e3bd6b7b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u16_f16_1.c
! 36a01f0f7c4ead45d45e82f070db5b0b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u32_f16_1.c
! 8a1361d63eab7cd136be2f4fa5afb4ef  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u64_f16_1.c
  93acf70a5c98e3c82cb70a560ca75d24  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtp_1.c
! c46019dc7c1ba82a2bee9bfb37346eb8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s16_f16_1.c
! 4f8a761440a487ff14486c7eec2152bf  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s32_f16_1.c
! eeb3a65dfd9eb7094daa38ecac5b4672  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_s64_f16_1.c
! 6dbed512778b56c9f23603d2648415dc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u16_f16_1.c
! 535e96766718c07ad74ca0994fa2da72  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u32_f16_1.c
! f902fbcce667298ed720d8ba845bdfe9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtph_u64_f16_1.c
  8e5a12cc91e3d9700a3797351ad068df  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtx.c
! b082b75274a64b15f0ac8f131ec93d23  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c
! e43d42b4d467935091116ebacec251b9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c
  5934bccf031a2282593bd2fcf51d29c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
  bd27e28c107029963bc14382b8b4e2c5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
  02fdf739d8e929deb204884dbd92339d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c
*************** daa618bd01b9b21999bfb0bf4c48cf21  gcc/te
*** 56895,56930 ****
  0642560d65fb69f44e04f928f89cf649  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c
  298528aca47fbbb7a718b3ccb0681cad  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c
  98b620c87b8330b25df7df28239c0345  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c
! f95bc564630d78ac2ae192d33e22ab6f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c
! e38c6733cf2f8332a32fce46c615bda5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c
! ea71a22386fece68695333d3e375fba9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vduph_lane.c
  b30f56c46834b427133c97c6f19cda62  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h
  c420faac5ffe22b014c1eebc369a2dd9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c
  a665238fa8ed1e3294809774f0d8ad6f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c
  d8bbb0a61a727d0c2cf23f02f96f2050  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex.c
  5d1247c7bd2cccfa228147e5bc7c8d73  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c
  8e5488aacd9e2173213588e82d8f4cc5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/veor.c
! 5effb937e3a6536a7ab8b3827a229479  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vext.c
  aa5b72cf9598620463c83cd108d502de  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfma.c
  1c0fff89f41635d1e2c95209a0908dde  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfma_n.c
! a75c39ebbbfaf76cd960162d6131dbb3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmah_f16_1.c
! b114020ee03b653e405ab759179cd060  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmas_lane_f16_1.c
! 0dc843941911c1d12f27ad2656d65deb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmas_n_f16_1.c
! dc418252156e6d203f3da5dd35019627  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmash_lane_f16_1.c
  1d4255cd4effd1fb6419d90075fa8f29  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms.c
  df8879209bf0fcf132482fb1be657f34  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c
! 9330b28d14e42eff83d2d77ea4a2b61a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmsh_f16_1.c
! 0e472e83250c150bea9c048b7b0151d2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_high.c
  b3d718c8bf8dc3ce46da7f7d83a87a40  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_lane.c
  ab7951fe68fbc1de8a165fc90b1f997f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_low.c
  8791fed07261ef3409155b11a1588e31  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vhadd.c
  6958399bd46708e696df259e654dda32  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vhsub.c
! 96e8da08d722aa741ecb0ac9781738a2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1.c
! bfeae76254480655a1facd4fd82b65d1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c
! c09bfdef2bfed68f3c6a6b918e6bf91f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c
! 17c614af1921f2e7fb163173523b8f71  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x2.c
! 66913d837874172f4062f48c21afa4e1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x3.c
! 38b9ed8560106b40e7eff8f107ff977f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x4.c
  f6001854eaca71f68290006d17daa075  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_bf16_indices_1.c
  a1cd4982b079c6219414aebc78248e70  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c
  80a2ba3700244d2e74ac3529c34c3505  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c
--- 60195,60230 ----
  0642560d65fb69f44e04f928f89cf649  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c
  298528aca47fbbb7a718b3ccb0681cad  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c
  98b620c87b8330b25df7df28239c0345  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c
! 6237580ea4e54a07bca668f5812277d6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c
! 9c1b5928c06ff49bade0111b6743ce9f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c
! 76af6f986ef58d02c6aba54c75e0c5c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vduph_lane.c
  b30f56c46834b427133c97c6f19cda62  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h
  c420faac5ffe22b014c1eebc369a2dd9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c
  a665238fa8ed1e3294809774f0d8ad6f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c
  d8bbb0a61a727d0c2cf23f02f96f2050  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex.c
  5d1247c7bd2cccfa228147e5bc7c8d73  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c
  8e5488aacd9e2173213588e82d8f4cc5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/veor.c
! 16a8abaf0677453e7c53d80af0a1fbfa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vext.c
  aa5b72cf9598620463c83cd108d502de  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfma.c
  1c0fff89f41635d1e2c95209a0908dde  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfma_n.c
! 6b7b774dc30960b8871d8df06bdc74e1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmah_f16_1.c
! f3fec0a966a4ab2ec0f43dfe9d446cca  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmas_lane_f16_1.c
! 42c65c81d158028fe141a1ba023d50d1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmas_n_f16_1.c
! 04b84a964a0738b676a8406adca78258  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmash_lane_f16_1.c
  1d4255cd4effd1fb6419d90075fa8f29  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms.c
  df8879209bf0fcf132482fb1be657f34  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c
! b191ee9c65bdec277489ebdffc6d41d0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfmsh_f16_1.c
! ec7834011851f9cb3f97e1c809f389ac  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_high.c
  b3d718c8bf8dc3ce46da7f7d83a87a40  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_lane.c
  ab7951fe68fbc1de8a165fc90b1f997f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vget_low.c
  8791fed07261ef3409155b11a1588e31  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vhadd.c
  6958399bd46708e696df259e654dda32  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vhsub.c
! f9143211ccba1a597ea38459a946daff  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1.c
! 57579eb597fdc3c4a948a0b1be800a95  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c
! 8bb008838e7396aec7078d51112bda45  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c
! 4e906aa4287a56cf9185555b3899c023  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x2.c
! df6647c9c60b56184e831dafde485d16  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x3.c
! 85a02394ba766b6372fcb29047e0454f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x4.c
  f6001854eaca71f68290006d17daa075  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_bf16_indices_1.c
  a1cd4982b079c6219414aebc78248e70  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c
  80a2ba3700244d2e74ac3529c34c3505  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c
*************** bf565aff93112ac0dcbfabe4cc05b4ac  gcc/te
*** 57003,57023 ****
  5aa3c1f8fd7419455e3b2db2e17708f7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c
  90827d50ca9b131fac1e10e9ee02c612  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c
  d891e33cd4cc5a6c62c2d649371d96e3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c
! 8d3444098fab100294b0622f21c7dd3f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX.c
! e93b69183756828bbad5796688df7814  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c
! 6e494aa5bdc7045dbea3460d9ffd7a14  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c
  873c8907852ca02059c09e18271b30ff  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmax.c
! 798ff2899394049282ba685b8a648b77  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxh_f16_1.c
  88f46c1e6d22f862a58ad1dcd799f50e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnm_1.c
! 5413159f0f3df776534bc503793ee52c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnmh_f16_1.c
! 67891b6325e8327e4e897356be8cff4c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnmv_f16_1.c
! 32799b8e25dfbc7facfb14609ed55713  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxv_f16_1.c
  87e720d734d46368271eb3c659ada5a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmin.c
! bce888079959d75c098ec7806f1aca0d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminh_f16_1.c
  8c74101dbbddc516481540c0f70c06a9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnm_1.c
! efcb42ac1ab11195ccc70f4b3fe160b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnmh_f16_1.c
! c64200654ef15d7887ac2a88a459477b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnmv_f16_1.c
! 4dd40862374e95bb673d598b798a30bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminv_f16_1.c
  d92367a7a41768ec5070a5f2755d6909  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX.inc
  dbac8d82bb916c624a31107065c776a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX_lane.inc
  9fd9ff1c76af2f4360c1250587d5c53a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX_n.inc
--- 60303,60323 ----
  5aa3c1f8fd7419455e3b2db2e17708f7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c
  90827d50ca9b131fac1e10e9ee02c612  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c
  d891e33cd4cc5a6c62c2d649371d96e3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c
! bf9dbbf5441ecf03d06af3be410e8726  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX.c
! 940ee18733ec5336d0c941c9369f5b29  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c
! 7f2e76017b02e661293d753e1d2d4079  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c
  873c8907852ca02059c09e18271b30ff  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmax.c
! f0e457d36d21cbf24ed896ab37cfa0c8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxh_f16_1.c
  88f46c1e6d22f862a58ad1dcd799f50e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnm_1.c
! 0727451f3e7aebc872888b170da98a10  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnmh_f16_1.c
! 3a78dc8e34a7bade21045e699428791c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxnmv_f16_1.c
! 090a9e93ecca728d752e9822cd92070c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmaxv_f16_1.c
  87e720d734d46368271eb3c659ada5a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmin.c
! 041a52dacd102187b43a6c79607e47c2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminh_f16_1.c
  8c74101dbbddc516481540c0f70c06a9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnm_1.c
! 6c78ab94363dcbb55263692eef61d338  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnmh_f16_1.c
! 7ce137a8a0ee7ad4511ef6bb8830a701  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminnmv_f16_1.c
! 3ec40ff35e31e08ba9ef59309e58d0a4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vminv_f16_1.c
  d92367a7a41768ec5070a5f2755d6909  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX.inc
  dbac8d82bb916c624a31107065c776a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX_lane.inc
  9fd9ff1c76af2f4360c1250587d5c53a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlX_n.inc
*************** a4b26fe16af77e951b6926c472e2bf1e  gcc/te
*** 57029,57035 ****
  2397e63fdfaa77f324171b5a1d85ac58  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlXl_lane.inc
  df3b1a9e15422a9a34b6051cc01f9016  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlXl_n.inc
  2bc9a208fbe6ee9b42f28b1b62597b84  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla.c
! d69b6e2734314a638809db203f1b671b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_float_not_fused.c
  2d38b6e83edc1c11ee6b633494717d4f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_lane.c
  96185b13f3b28f7e8859198561fb130b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_n.c
  fc8c4e485836f08b69e49a321add9309  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal.c
--- 60329,60335 ----
  2397e63fdfaa77f324171b5a1d85ac58  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlXl_lane.inc
  df3b1a9e15422a9a34b6051cc01f9016  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlXl_n.inc
  2bc9a208fbe6ee9b42f28b1b62597b84  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla.c
! dfec32baf2dcb95d113ab639b688f25a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_float_not_fused.c
  2d38b6e83edc1c11ee6b633494717d4f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_lane.c
  96185b13f3b28f7e8859198561fb130b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmla_n.c
  fc8c4e485836f08b69e49a321add9309  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal.c
*************** a5a343c91e4cec3969d5f0adf45acce5  gcc/te
*** 57040,57046 ****
  2ed34a5a29e9841eba0d9f8b24adc3b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal_lane.c
  671a0917fdb129328fcb24ef41e62067  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal_n.c
  382fe4be206eda2ada7254e17ab813a8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls.c
! 6d727e624860a05c1fec8d44e06ea89b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_float_not_fused.c
  aa21c1305430685521be8df09f88e84e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_lane.c
  4632ab8adb7934b5c15eddc49e459667  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_n.c
  b0f42fb7ce16b63bb85f5825918657d7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlsl.c
--- 60340,60346 ----
  2ed34a5a29e9841eba0d9f8b24adc3b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal_lane.c
  671a0917fdb129328fcb24ef41e62067  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlal_n.c
  382fe4be206eda2ada7254e17ab813a8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls.c
! 99210b6476f71ffb4ad1c913e9c5eca7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_float_not_fused.c
  aa21c1305430685521be8df09f88e84e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_lane.c
  4632ab8adb7934b5c15eddc49e459667  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmls_n.c
  b0f42fb7ce16b63bb85f5825918657d7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmlsl.c
*************** e89bb37a3eacab283af10894b5111db4  gcc/te
*** 57055,57064 ****
  e203b2a683edd535b691d4b3b6e2d2f7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmovn_high.c
  5191f4c1c39317aae9c25c4feb4575e0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul.c
  25f81f9620d275aecae799cb0d825690  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c
! 15ee25628d4c2aededd0e42cc9b930db  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_lane_f16_1.c
  31c472da02b5f77da4e970d8dc431f2c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_n.c
! 5ebd9aa055464b1063e82d201d679389  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulh_f16_1.c
! b533c133df2c1009af96fb01cf1d0945  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulh_lane_f16_1.c
  afaf5813400c1a784f0feb21eaa23b52  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull.c
  fc3928f86038a17f36d7a4175237ce63  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high.c
  e0a9eb67acbdbd33e623044b17a683c6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high_lane.c
--- 60355,60364 ----
  e203b2a683edd535b691d4b3b6e2d2f7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmovn_high.c
  5191f4c1c39317aae9c25c4feb4575e0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul.c
  25f81f9620d275aecae799cb0d825690  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c
! 21d8baf0fa1c096abe04915e87e0a760  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_lane_f16_1.c
  31c472da02b5f77da4e970d8dc431f2c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmul_n.c
! 6073f123ef1afc8cbde99bc374b6d4ba  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulh_f16_1.c
! 243324e6327bce71e24778bc9f35b57c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulh_lane_f16_1.c
  afaf5813400c1a784f0feb21eaa23b52  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull.c
  fc3928f86038a17f36d7a4175237ce63  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high.c
  e0a9eb67acbdbd33e623044b17a683c6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high_lane.c
*************** c3811114ef9ef07f20333c28da0aa555  gcc/te
*** 57066,57082 ****
  3873f6382e5c35174212f6828af8090f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high_n.c
  cb0f0a48b4952764f4d5ab1a23e13bf0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_lane.c
  949b40a5758302c2cfb15d173adb013f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_n.c
! ff0a7c4ca3c8561b95d51b13e94306e8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_f16_1.c
! 7c53aedb7e293c5b3217994a4a1fa102  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f16_1.c
  f980b1218c35b0e6ab7b4e519922d4a7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c
  59db42dd2d6033efeca733f0e0ba4a85  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c
  99ddb0767ac32bc81a777f2ed5e575da  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c
  02564b7a6790985b19f32ee861a63bec  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c
! fa120fc4c7b273ac598c1a7d1c56f29d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_n_f16_1.c
  40f75a8e01be4da08f76c796eaad875b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c
  5db4f2adb2650c2ba361db7207d1aef5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c
! 45fd7170ba4f3e949e76378943f449c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxh_f16_1.c
! f6c545cfa125399c4049fc7c2f9e16bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxh_lane_f16_1.c
  17c97c7e74877f26ac6cf2a3cad6c1c6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c
  21371580e61845178a09051304b63764  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c
  1bb38fc794fe8eb3a1669a084a638556  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c
--- 60366,60382 ----
  3873f6382e5c35174212f6828af8090f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_high_n.c
  cb0f0a48b4952764f4d5ab1a23e13bf0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_lane.c
  949b40a5758302c2cfb15d173adb013f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmull_n.c
! ce050e7db1353c45b3ac2c6b75468428  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_f16_1.c
! b5e46d9a518de1af30a313b223b7d7ac  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f16_1.c
  f980b1218c35b0e6ab7b4e519922d4a7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c
  59db42dd2d6033efeca733f0e0ba4a85  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c
  99ddb0767ac32bc81a777f2ed5e575da  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c
  02564b7a6790985b19f32ee861a63bec  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c
! 50eb7d247c80442120bb7f1bb17944b5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulx_n_f16_1.c
  40f75a8e01be4da08f76c796eaad875b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c
  5db4f2adb2650c2ba361db7207d1aef5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c
! ea4e4a3852fbf92381d0d9ce7342e86d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxh_f16_1.c
! 8fb35d63801bfd69cac80de2b6ab09f3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxh_lane_f16_1.c
  17c97c7e74877f26ac6cf2a3cad6c1c6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c
  21371580e61845178a09051304b63764  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c
  1bb38fc794fe8eb3a1669a084a638556  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c
*************** bd6977b922084334815caac29ecbf1ce  gcc/te
*** 57085,57091 ****
  bacbb3239e70bda0d08458656c21aa7a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c
  64d04e1823b4776fd14152e1aa366020  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmvn.c
  1a2c6232c31c426a67aeaeb8698f0b8e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vneg.c
! 5ec0fa6bbecb1285668f8120bb9fd770  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vnegh_f16_1.c
  f247996016f78ef411bfff6e925f13e7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vorn.c
  cbf38d774bcb9d9a74f4724c766fad19  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vorr.c
  59d0d77a8dc0189bfa6520ff52b88e65  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc
--- 60385,60391 ----
  bacbb3239e70bda0d08458656c21aa7a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c
  64d04e1823b4776fd14152e1aa366020  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vmvn.c
  1a2c6232c31c426a67aeaeb8698f0b8e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vneg.c
! 49d0d70614723277275ca67d4506ffd5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vnegh_f16_1.c
  f247996016f78ef411bfff6e925f13e7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vorn.c
  cbf38d774bcb9d9a74f4724c766fad19  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vorr.c
  59d0d77a8dc0189bfa6520ff52b88e65  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc
*************** cbf38d774bcb9d9a74f4724c766fad19  gcc/te
*** 57096,57102 ****
  72e21f1501bfee555040fd6a52b4b541  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpaddq.c
  75a963c977579eb487f74ecff7efbcd4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpmax.c
  57eaa2ac39a5491c7cfbbcee94891201  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpmin.c
! a5774c5559aec15fe16de7ce9b5e7924  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpminmaxnm_f16_1.c
  d0cd039fcf09a9ad00835f5231b841b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqabs.c
  c9be49db12b6b8139f014641fc694c24  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqadd.c
  265c5babc6896b38b88a72bb8760fee5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqdmlXl.inc
--- 60396,60402 ----
  72e21f1501bfee555040fd6a52b4b541  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpaddq.c
  75a963c977579eb487f74ecff7efbcd4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpmax.c
  57eaa2ac39a5491c7cfbbcee94891201  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpmin.c
! 734cb9777f20a8205888b7f61c846ba8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vpminmaxnm_f16_1.c
  d0cd039fcf09a9ad00835f5231b841b8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqabs.c
  c9be49db12b6b8139f014641fc694c24  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqadd.c
  265c5babc6896b38b88a72bb8760fee5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqdmlXl.inc
*************** c7c095f1127744547febe374a76d7aa5  gcc/te
*** 57129,57187 ****
  8101a8ea7a21be924e03eb8f72c0efd3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c
  cefd6244c7d18e3d74915b39b7a48b6c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c
  a8f35bfb0fed262df875b6991ffcc3a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshl.c
! 01e15eb764280dfc9678da0fd8311f97  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrn_high_n.c
  43ebe81aa75592db46ab58a837fb9b09  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c
! 1b9cedcfeec1c9f7e181883b090e0f6b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrun_high_n.c
  e93772068f20cf620df62e2068e7b608  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c
  10778a1f9c8b71ae946c7f91b75375a9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshl.c
  f951caabb9144508076d55126d6d999a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c
  8ff511ae26c20e316f2925cc98c8af34  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c
! a79f258033bce89317591999cc80a3f5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrn_high_n.c
  87078acd7df838bf3ee6d628320004e3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c
! 9fd693801a075b1e3f8345a130f204c6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrun_high_n.c
  83c6412aad2c75c38117a86e87cee167  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c
  81e3bd9d1a63e80ecff5039041860669  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqsub.c
  282b532091b159c08858147e7251535c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqtbX.c
  cb87bbc4df80e1a26bd8a4367ceb0703  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vraddhn.c
  b3cab9a40219432b7f8e29600abdbfb5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vraddhn_high.c
  b04c90ae7366c6488e012aec56b6dd47  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpe.c
! 110abb2fb52cda53d17ac7fcd3f96be9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpeh_f16_1.c
  87bd99ccc0e2c01a3db1e8cd94e70a8d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecps.c
! 83dd3143678a3621ee7e872c753855ff  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpsh_f16_1.c
! 2032fde14198e88c3b2e60333cab8df8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpxh_f16_1.c
  f62aa726b5dc801626e2bcbccb58a024  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c
  a4696f61a9479730b8f905b7911b9db9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c
  c7d20f2fd8723dae389d300116bd1e44  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c
! 5692113ed22a7d09a36ba9148926cbfd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrev.c
  0911b2e9f9ead7f5abaa13d3de55da16  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrhadd.c
  f8626280e4c318346433d9ad64813e65  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnd.c
  e348a3c081d539bff80ffe9c668e557e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndX.inc
  eabac57eb1fe2a63007a6f58e8b41fb0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnda.c
! 71312b55432f3991e58bde473bcfd3ea  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndah_f16_1.c
! 04512fc32b6b16857db70de24dda74ef  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndh_f16_1.c
! b9a697faaefa798fea824e46f76e78fa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndi_f16_1.c
! ad92361fac5723f0caf654fe402cf257  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndih_f16_1.c
  770bcef85280a7e181b2651b452f35a4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndm.c
! 1c0926fe4c63c37523deb4795db77bf0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndmh_f16_1.c
  48bcdff5fcd8ae61c6d5f6c3e1807ab4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndn.c
! 3a6e7c635ac8247fd2721c42297cf06f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndnh_f16_1.c
  6aa34b3ad3c54502af6cd18ad839fba2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndp.c
! 6dda28b60b14b614b66b391d7045ead4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndph_f16_1.c
  a6a9ebaea65506ec8920d956b85f99b0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndx.c
! 3a6e7c635ac8247fd2721c42297cf06f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndxh_f16_1.c
  3503e67fd005c831e91c33a19436ad29  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshl.c
  5ea3e6b3a40f92f29866ffdaf32afd0d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshr_n.c
  7f4d8a696ff0db1250ea03cf03209e9e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshrn_high_n.c
  90a33d776fa57b541fef0c179ab17f43  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshrn_n.c
  dd2c67739e606c794c244fbfde6b7fe3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrte.c
! 27ea9d65a96deb5410d1d1e91728972f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrteh_f16_1.c
  51ca4f9b6ad0f8cb56d3ae9c87c8efb0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrts.c
! 6dc9d727c439d1aeffec136eecd33ca1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrtsh_f16_1.c
  f27991f5e8313bc7f0eb2a2b08c0aa57  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsra_n.c
  cb86e8ee204d5b4ebe57f52a0952bb06  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsubhn.c
  2c8d104723a60c270b5fd21bcd214108  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsubhn_high.c
  1343bedec9ea6fb2b0ff73345e0ca329  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsXi_n.inc
! c4b8d2884f5c8a131e9042d674edd379  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vset_lane.c
  6c7b8805ef9e7a98007bb4d1eb7fdd5b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-1.c
  9bbd4c0e5a1d0a9bed5c4f052f74d85f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-2.c
  6ec8275a10f554c5c4615afc04fd4149  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c
--- 60429,60487 ----
  8101a8ea7a21be924e03eb8f72c0efd3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c
  cefd6244c7d18e3d74915b39b7a48b6c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c
  a8f35bfb0fed262df875b6991ffcc3a3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshl.c
! 2a8dabe7a0e19ffacf248365e9cdd4e9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrn_high_n.c
  43ebe81aa75592db46ab58a837fb9b09  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c
! 0d1004087a51ec14f1b3bd6466fcf90b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrun_high_n.c
  e93772068f20cf620df62e2068e7b608  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c
  10778a1f9c8b71ae946c7f91b75375a9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshl.c
  f951caabb9144508076d55126d6d999a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c
  8ff511ae26c20e316f2925cc98c8af34  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c
! 8103e1b0f13f93b9829f4ef939fce98c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrn_high_n.c
  87078acd7df838bf3ee6d628320004e3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c
! 54a94f4a04b37655ae9d70a63d04ceb7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrun_high_n.c
  83c6412aad2c75c38117a86e87cee167  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c
  81e3bd9d1a63e80ecff5039041860669  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqsub.c
  282b532091b159c08858147e7251535c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqtbX.c
  cb87bbc4df80e1a26bd8a4367ceb0703  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vraddhn.c
  b3cab9a40219432b7f8e29600abdbfb5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vraddhn_high.c
  b04c90ae7366c6488e012aec56b6dd47  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpe.c
! 731f3f0795d634667111852ec64e6e9f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpeh_f16_1.c
  87bd99ccc0e2c01a3db1e8cd94e70a8d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecps.c
! 565c8aa59cbbb4c9391b1c52f39b7be2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpsh_f16_1.c
! fa91d7511c209bbfc3db7bb7c8ba908a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrecpxh_f16_1.c
  f62aa726b5dc801626e2bcbccb58a024  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c
  a4696f61a9479730b8f905b7911b9db9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c
  c7d20f2fd8723dae389d300116bd1e44  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c
! 248a2ac8b88e520f91a7f0853ec30974  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrev.c
  0911b2e9f9ead7f5abaa13d3de55da16  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrhadd.c
  f8626280e4c318346433d9ad64813e65  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnd.c
  e348a3c081d539bff80ffe9c668e557e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndX.inc
  eabac57eb1fe2a63007a6f58e8b41fb0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnda.c
! 0777560ae990493a39e3db4dac232d40  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndah_f16_1.c
! b51523ecc7c5446642290dab95bdc4c8  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndh_f16_1.c
! 442b12ebc63f0672d38c48eb196f495b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndi_f16_1.c
! c5a311f707fd712bc7a3469b4153c1b5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndih_f16_1.c
  770bcef85280a7e181b2651b452f35a4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndm.c
! 0ac85249f35abc94c28be3819ac8ef86  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndmh_f16_1.c
  48bcdff5fcd8ae61c6d5f6c3e1807ab4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndn.c
! f05283f8c400fd4f070c673c1478b673  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndnh_f16_1.c
  6aa34b3ad3c54502af6cd18ad839fba2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndp.c
! a0e49d3666766dc08f098777b6f1fde3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndph_f16_1.c
  a6a9ebaea65506ec8920d956b85f99b0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndx.c
! f05283f8c400fd4f070c673c1478b673  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndxh_f16_1.c
  3503e67fd005c831e91c33a19436ad29  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshl.c
  5ea3e6b3a40f92f29866ffdaf32afd0d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshr_n.c
  7f4d8a696ff0db1250ea03cf03209e9e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshrn_high_n.c
  90a33d776fa57b541fef0c179ab17f43  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrshrn_n.c
  dd2c67739e606c794c244fbfde6b7fe3  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrte.c
! f75906fa9e9cfe4ece6aa98f473062e0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrteh_f16_1.c
  51ca4f9b6ad0f8cb56d3ae9c87c8efb0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrts.c
! 09bf8a7aff416ca933392959c0a7cb09  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsqrtsh_f16_1.c
  f27991f5e8313bc7f0eb2a2b08c0aa57  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsra_n.c
  cb86e8ee204d5b4ebe57f52a0952bb06  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsubhn.c
  2c8d104723a60c270b5fd21bcd214108  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrsubhn_high.c
  1343bedec9ea6fb2b0ff73345e0ca329  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsXi_n.inc
! 7638204312c12c1a496c92c746105065  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vset_lane.c
  6c7b8805ef9e7a98007bb4d1eb7fdd5b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-1.c
  9bbd4c0e5a1d0a9bed5c4f052f74d85f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-2.c
  6ec8275a10f554c5c4615afc04fd4149  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c
*************** c610f51b409f4e46bcde3cac52e901ec  gcc/te
*** 57196,57211 ****
  8205eda302404b759136ba486b4b2a4f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshr_n.c
  7453bd1a1ff6442d6d3485dbb88eaa0a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshrn_high_n.c
  f19db01ae4e0625807bef1124a8d7095  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshrn_n.c
! db8961a9c46c94c7576ecec7b15b3a4c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc
  627ead30fef303e63a0a1d2f854efa86  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsli_n.c
! 931ad65b6486cc3fa3d58f364a6ddb12  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsqrt_f16_1.c
! a08f9cff18e4c066a55f7dfce2153c67  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsqrth_f16_1.c
  1b45d47b5286f4d9bf275840e581f6d4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsra_n.c
  8b1ee8065de75dcd339b1d488127f4c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsri_n.c
! ca3459eb580d2822a56b8028828f9c93  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1_lane.c
! aedb2b0b0e58ebe335d8b1a5299fbdad  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x2.c
! c9c8e87c9f04cb701215b8608f8e65a9  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x3.c
! dbedf25390f92e087fad13121afc62cb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x4.c
  eed7e68a3ef3a53d357467c7229c8c7c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_bf16_indices_1.c
  49198211b17de08cd0ebc7d045615277  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c
  390af6ad7662822c0421998ff3ce55b5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c
--- 60496,60511 ----
  8205eda302404b759136ba486b4b2a4f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshr_n.c
  7453bd1a1ff6442d6d3485dbb88eaa0a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshrn_high_n.c
  f19db01ae4e0625807bef1124a8d7095  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshrn_n.c
! fa0fde9d815d3df3998ebe17cb5ce4f6  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc
  627ead30fef303e63a0a1d2f854efa86  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsli_n.c
! 7b07be7a02f1ac1e87e7ca1fb8e2e61b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsqrt_f16_1.c
! 181f74a6a2ba071505cf1c4d8164e76c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsqrth_f16_1.c
  1b45d47b5286f4d9bf275840e581f6d4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsra_n.c
  8b1ee8065de75dcd339b1d488127f4c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsri_n.c
! 82a587f59b95c7dbfc8101ac624fc2d0  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1_lane.c
! b72e07575943e0e2c2d3c0e5a9531979  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x2.c
! 3fb841b2894e1eecf6ea1b8ec40df355  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x3.c
! ed8f060a3e98ec6b67a37ebd6303f0f5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x4.c
  eed7e68a3ef3a53d357467c7229c8c7c  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_bf16_indices_1.c
  49198211b17de08cd0ebc7d045615277  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c
  390af6ad7662822c0421998ff3ce55b5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c
*************** d7a1d322b26a460f3cc0ba9b27fbb2e4  gcc/te
*** 57284,57304 ****
  98bced556c0b5a1655b0d8830a0185d4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c
  73af6ced832f61599f1f5db934b35387  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c
  c8c1e39e278f7a352bc90c5bd6ea61bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c
! 41e5902f338cb01396655c04b1893a36  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c
  4a8619aaceba9f3368cf3f710ca3c6fd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsub.c
! 3f1f408b328af554936218c3206a48dc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubh_f16_1.c
  11289d1afd82c8dfd075936f9c142816  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubhn.c
  04805e6dce78c24f652486094b0aac32  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubhn_high.c
  adfe2d6c4b5372b80d82b4621f516510  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubl.c
  c141836b8ce217f5058c9cd23f53dfd2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubw.c
! 48c7057d0252c164ddcbba7b3eeacf05  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtbX.c
! b6bc68071f0e39e766cbce069057122e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtrn.c
! 6d08b94cde1532a72446431ad633b646  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtrn_half.c
  c1a78c795e464e555618f9dae7cddf94  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtst.c
! 686a540254f6b4db32982bcbb85cb103  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vuzp.c
! 0b2548f22a35b3ec92a54ba0e041a914  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vuzp_half.c
! 2765f7e1734188c461dff4680cc3ac28  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vzip.c
! 2577b34228fa012b1608402ec8a858b7  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vzip_half.c
  00d1d5f7b3d9f7e8706118e4b05618f7  gcc/testsuite/gcc.target/aarch64/aes-fuse-1.c
  0aacb150da9d15974ff197ec7638a0db  gcc/testsuite/gcc.target/aarch64/aes-fuse-2.c
  f73e7d4ce7c3e327e953b946f2617247  gcc/testsuite/gcc.target/aarch64/aes_1.c
--- 60584,60605 ----
  98bced556c0b5a1655b0d8830a0185d4  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c
  73af6ced832f61599f1f5db934b35387  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c
  c8c1e39e278f7a352bc90c5bd6ea61bb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c
! eaada68b82708723ab668beead7387dc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c
  4a8619aaceba9f3368cf3f710ca3c6fd  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsub.c
! e012b4ced511c8c181b0cf2bbfb6c56b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubh_f16_1.c
  11289d1afd82c8dfd075936f9c142816  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubhn.c
  04805e6dce78c24f652486094b0aac32  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubhn_high.c
  adfe2d6c4b5372b80d82b4621f516510  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubl.c
  c141836b8ce217f5058c9cd23f53dfd2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vsubw.c
! 577e58d51cda395a3b838d3bca0e0450  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtbX.c
! 13e79ce7f3dc3a0668e9eb15ecc1e867  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtrn.c
! 8cb6f7001130150c5939573565dd6576  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtrn_half.c
  c1a78c795e464e555618f9dae7cddf94  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtst.c
! 9eedfaa40a0cb38029cf72f425d26f9d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vuzp.c
! 1ea6e22eb19dde70d045536b12c3e46a  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vuzp_half.c
! 27ee6c8409840527bf22428f02056cc5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vzip.c
! 324e2d416d916cf26bdc4ee55ee4f105  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vzip_half.c
! ba8b0dfe81019139ed5b239fb9d22ae0  gcc/testsuite/gcc.target/aarch64/advsimd_shl_add.c
  00d1d5f7b3d9f7e8706118e4b05618f7  gcc/testsuite/gcc.target/aarch64/aes-fuse-1.c
  0aacb150da9d15974ff197ec7638a0db  gcc/testsuite/gcc.target/aarch64/aes-fuse-2.c
  f73e7d4ce7c3e327e953b946f2617247  gcc/testsuite/gcc.target/aarch64/aes_1.c
*************** d711069757aeb0145e840cff37701747  gcc/te
*** 57337,57343 ****
  200f8abf16f58811681c3384210a92a2  gcc/testsuite/gcc.target/aarch64/atomic-comp-swap-release-acquire.x
  6786b04cabd25c840ac23b1627d4df95  gcc/testsuite/gcc.target/aarch64/atomic-inst-cas.c
  9a5bcedfd94d4a7e11d3c1b9d6753ea1  gcc/testsuite/gcc.target/aarch64/atomic-inst-ldadd.c
! 7b7f7af9f2d38faeed01a623e71fa306  gcc/testsuite/gcc.target/aarch64/atomic-inst-ldlogic.c
  754794845fdc42e1225bcbf0a32aede0  gcc/testsuite/gcc.target/aarch64/atomic-inst-ops.inc
  d133e7cfd80240d230c1611d9dde4de0  gcc/testsuite/gcc.target/aarch64/atomic-inst-swp.c
  d70360830227f08befec8ad51b6223cc  gcc/testsuite/gcc.target/aarch64/atomic-op-acq_rel.c
--- 60638,60644 ----
  200f8abf16f58811681c3384210a92a2  gcc/testsuite/gcc.target/aarch64/atomic-comp-swap-release-acquire.x
  6786b04cabd25c840ac23b1627d4df95  gcc/testsuite/gcc.target/aarch64/atomic-inst-cas.c
  9a5bcedfd94d4a7e11d3c1b9d6753ea1  gcc/testsuite/gcc.target/aarch64/atomic-inst-ldadd.c
! 0369528de5728eed801e375ba17234a1  gcc/testsuite/gcc.target/aarch64/atomic-inst-ldlogic.c
  754794845fdc42e1225bcbf0a32aede0  gcc/testsuite/gcc.target/aarch64/atomic-inst-ops.inc
  d133e7cfd80240d230c1611d9dde4de0  gcc/testsuite/gcc.target/aarch64/atomic-inst-swp.c
  d70360830227f08befec8ad51b6223cc  gcc/testsuite/gcc.target/aarch64/atomic-op-acq_rel.c
*************** a8a16d0937642cc260a09db6d3387b40  gcc/te
*** 57384,57389 ****
--- 60685,60700 ----
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
  585eda662bdd7f06f3d17aafcefa8670  gcc/testsuite/gcc.target/aarch64/auto-init-padding-8.c
  721a33437def414205b86d642c689ebc  gcc/testsuite/gcc.target/aarch64/auto-init-padding-9.c
+ 27917d4f989bfdc893eab2963f064cc6  gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only.c
+ 7632a80f967a85c739c65907412d3e7a  gcc/testsuite/gcc.target/aarch64/autovec_param_default.c
+ 15466f8f8ba340a60a545826e971f8a7  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c
+ 216ddfcf3c5a91ee9c5b0930b72c3046  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c
+ 2e8212454ab53b66dd614df027a20c52  gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c
+ 6be34d1061cc21e45068f5bcf851dd0b  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-1.c
+ 2e23b12ef8bf5121f832dde1bbc17b30  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-2.c
+ 47ecf70940c2c8939e2d79a162064898  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-3.c
+ a19c70499df83a0df6b609719e946240  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-4.c
+ 47a568763e86163c952b5b17243e396a  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-5.c
  2e34b4d658642fa31028e6c77888d89c  gcc/testsuite/gcc.target/aarch64/bb-slp-pr113091.c
  b46f641f0dcc38f3e3de3f9a90702753  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_1.c
  855cfd1a9802da7ce78ef8175531090b  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_2.c
*************** fa7780f2752e4fa50b018aad6ab46b33  gcc/te
*** 57410,57420 ****
  45fd75f2db6f8fa64db6d2ca793f30a9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
  ba1aa14b7548fcc22d232467eb0998c9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h
! 5168d8bb07cb979e8deed590f4992c2e  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align16.c
! e2b2b96f056db35abf2c6c967865cf05  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align8.c
  b2b956bad084ba29822ce226a454dfc9  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi.h
  cd00ceeea45683383cf6ab2205253ad0  gcc/testsuite/gcc.target/aarch64/bitint-alignments.c
! c62b738738d7bd8c9d5f9ab0c4ead533  gcc/testsuite/gcc.target/aarch64/bitint-args.c
  301277270ef16c20c5a857394b26d4e3  gcc/testsuite/gcc.target/aarch64/bitint-sizes.c
  11f6f9054981704db09136d921c586d4  gcc/testsuite/gcc.target/aarch64/branch-protection-attr-2.c
  f29221b3dc2d27ac71c726e119cac0ff  gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c
--- 60721,60731 ----
  45fd75f2db6f8fa64db6d2ca793f30a9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
  ba1aa14b7548fcc22d232467eb0998c9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h
! 7ee185cb33807a1f720d53edf2d9ea7f  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align16.c
! 7be9d438ae36df6c35211a17e968308a  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align8.c
  b2b956bad084ba29822ce226a454dfc9  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi.h
  cd00ceeea45683383cf6ab2205253ad0  gcc/testsuite/gcc.target/aarch64/bitint-alignments.c
! 965ec77b8d3e85d1504d8274b1d5ec0c  gcc/testsuite/gcc.target/aarch64/bitint-args.c
  301277270ef16c20c5a857394b26d4e3  gcc/testsuite/gcc.target/aarch64/bitint-sizes.c
  11f6f9054981704db09136d921c586d4  gcc/testsuite/gcc.target/aarch64/branch-protection-attr-2.c
  f29221b3dc2d27ac71c726e119cac0ff  gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c
*************** f428f9c5b708c4aa5332ace486635c39  gcc/te
*** 57446,57456 ****
--- 60757,60772 ----
  c4ae2a7bf845c772f094152df5a530e4  gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
  d578e201f80bef3bb20982775c575c47  gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
  2cd370a67d59632871c3a25dd8578909  gcc/testsuite/gcc.target/aarch64/c-output-template.c
+ c598927685f903d2e9196018682bd563  gcc/testsuite/gcc.target/aarch64/callee_save_1.c
+ 73e8b9e5dce3ab4df5c539f6e68b0bd9  gcc/testsuite/gcc.target/aarch64/callee_save_2.c
+ 533f31b4725cf89fff2231fffe52b47b  gcc/testsuite/gcc.target/aarch64/callee_save_3.c
  17bf06a4a3e5b8e0afd594e9f9efeb59  gcc/testsuite/gcc.target/aarch64/ccmp_1.c
  c944449cf5b356cfed6ac847f005db22  gcc/testsuite/gcc.target/aarch64/ccmp_2.c
  241d8ea25e2bb3fe6d39fe6f2201baf9  gcc/testsuite/gcc.target/aarch64/ccmp_3.c
  f19dc69c0aeda4c531ac93459c18637a  gcc/testsuite/gcc.target/aarch64/ccmp_4.c
  9239537044e0e8b3473c23208cfaec87  gcc/testsuite/gcc.target/aarch64/ccmp_5.c
+ 70c0b89f4478698228c8666355217647  gcc/testsuite/gcc.target/aarch64/chkfeat-1.c
+ 4aa2d1c495d6def4c227963d7952b5ef  gcc/testsuite/gcc.target/aarch64/chkfeat-2.c
  210a06b80ccb6a87c0693b42719d3182  gcc/testsuite/gcc.target/aarch64/cinc_common_1.c
  f9b7d6532dbf0b85e4f2d34e60d8eba9  gcc/testsuite/gcc.target/aarch64/clrsb.c
  06b1d011104c741b0b515b92676f6c71  gcc/testsuite/gcc.target/aarch64/clz.c
*************** aace2ed034a2ab98ac7097658cded7d2  gcc/te
*** 57470,57484 ****
  7d998bdbaa387cd381e195454f81c9a1  gcc/testsuite/gcc.target/aarch64/combine_bfxil_2.c
  406527d352e705e9eea107377ec8bf3f  gcc/testsuite/gcc.target/aarch64/cond_op-1.c
  78f94a7be65d717b8374c731aed0783e  gcc/testsuite/gcc.target/aarch64/cond_op_imm_1.c
  3811d4cc6f8390eed0076b9d9707162e  gcc/testsuite/gcc.target/aarch64/construct_lane_zero_1.c
  00a4ff8c32a4c83ca879cf99e246a37d  gcc/testsuite/gcc.target/aarch64/copysign-bsl.c
  c73cc232fbaefd2daefb49e11b874722  gcc/testsuite/gcc.target/aarch64/copysign_1.c
  e98cf41b7514e2efc8676f309b7ae2ed  gcc/testsuite/gcc.target/aarch64/copysign_2.c
  f0d278d66f3c6d099e299ada3c0f2f5a  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-1.c
  e8f539acbee96c6f26c7eb82b2275f73  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c
  bacc2bf13ff0d50de57c856b6cfe89f2  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c
  204fe994da11aab4c0f8f0a889d976ad  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c
! 4c042431bd9c0fee72fecae7e28abe01  gcc/testsuite/gcc.target/aarch64/cpunative/aarch64-cpunative.exp
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_0
  8d55917f3f8bda7a065c7a0f0fb75c4b  gcc/testsuite/gcc.target/aarch64/cpunative/info_1
  ee8eca9c8007ef2044353709e26a2510  gcc/testsuite/gcc.target/aarch64/cpunative/info_10
--- 60786,60804 ----
  7d998bdbaa387cd381e195454f81c9a1  gcc/testsuite/gcc.target/aarch64/combine_bfxil_2.c
  406527d352e705e9eea107377ec8bf3f  gcc/testsuite/gcc.target/aarch64/cond_op-1.c
  78f94a7be65d717b8374c731aed0783e  gcc/testsuite/gcc.target/aarch64/cond_op_imm_1.c
+ b36fea66a4c23f49b18dc9052bedb701  gcc/testsuite/gcc.target/aarch64/const_create_using_fmov.c
  3811d4cc6f8390eed0076b9d9707162e  gcc/testsuite/gcc.target/aarch64/construct_lane_zero_1.c
  00a4ff8c32a4c83ca879cf99e246a37d  gcc/testsuite/gcc.target/aarch64/copysign-bsl.c
+ 927ef34630674bf9ac07298af2fead8f  gcc/testsuite/gcc.target/aarch64/copysign-pr118892.c
  c73cc232fbaefd2daefb49e11b874722  gcc/testsuite/gcc.target/aarch64/copysign_1.c
  e98cf41b7514e2efc8676f309b7ae2ed  gcc/testsuite/gcc.target/aarch64/copysign_2.c
+ 76ec4da4d79b07576b3510fce1c20f24  gcc/testsuite/gcc.target/aarch64/copysign_3.c
+ 7c1af3e63e474f61c56bdc1d226c34d6  gcc/testsuite/gcc.target/aarch64/copysign_4.c
  f0d278d66f3c6d099e299ada3c0f2f5a  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-1.c
  e8f539acbee96c6f26c7eb82b2275f73  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c
  bacc2bf13ff0d50de57c856b6cfe89f2  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c
  204fe994da11aab4c0f8f0a889d976ad  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c
! 8510e21c892476ef1aeffde9fb852647  gcc/testsuite/gcc.target/aarch64/cpunative/aarch64-cpunative.exp
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_0
  8d55917f3f8bda7a065c7a0f0fb75c4b  gcc/testsuite/gcc.target/aarch64/cpunative/info_1
  ee8eca9c8007ef2044353709e26a2510  gcc/testsuite/gcc.target/aarch64/cpunative/info_10
*************** c84ec68e16463ed98fee3cd8cb4e230f  gcc/te
*** 57486,57494 ****
  2ebc5e4d2162c162fa9a2f8741fa9f9c  gcc/testsuite/gcc.target/aarch64/cpunative/info_12
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_13
  0e1794c5980d78e11a9aff64bd2dc530  gcc/testsuite/gcc.target/aarch64/cpunative/info_14
! 1c9df40648dbb2c6c92ad819f6aef8fc  gcc/testsuite/gcc.target/aarch64/cpunative/info_15
! d205b924c7f019cc69da5720c3107c22  gcc/testsuite/gcc.target/aarch64/cpunative/info_16
! d205b924c7f019cc69da5720c3107c22  gcc/testsuite/gcc.target/aarch64/cpunative/info_17
  77b9d125c413bdfe2a579cf2a959f461  gcc/testsuite/gcc.target/aarch64/cpunative/info_18
  69ab0ad5166b545cfdc360f70e59803d  gcc/testsuite/gcc.target/aarch64/cpunative/info_19
  4b5005c4193fa80868408bf4492b4e3b  gcc/testsuite/gcc.target/aarch64/cpunative/info_2
--- 60806,60814 ----
  2ebc5e4d2162c162fa9a2f8741fa9f9c  gcc/testsuite/gcc.target/aarch64/cpunative/info_12
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_13
  0e1794c5980d78e11a9aff64bd2dc530  gcc/testsuite/gcc.target/aarch64/cpunative/info_14
! 94d348761a6f8a8518540a6dc3235dbe  gcc/testsuite/gcc.target/aarch64/cpunative/info_15
! 810090a58ce79b579f1ff90bc2428439  gcc/testsuite/gcc.target/aarch64/cpunative/info_16
! 810090a58ce79b579f1ff90bc2428439  gcc/testsuite/gcc.target/aarch64/cpunative/info_17
  77b9d125c413bdfe2a579cf2a959f461  gcc/testsuite/gcc.target/aarch64/cpunative/info_18
  69ab0ad5166b545cfdc360f70e59803d  gcc/testsuite/gcc.target/aarch64/cpunative/info_19
  4b5005c4193fa80868408bf4492b4e3b  gcc/testsuite/gcc.target/aarch64/cpunative/info_2
*************** d335e36067020cadd7d9a133513eafd0  gcc/te
*** 57497,57509 ****
  10b507183ea6ee447505b829be51e826  gcc/testsuite/gcc.target/aarch64/cpunative/info_22
  bc6bfc844c0478de24fdceef61c08381  gcc/testsuite/gcc.target/aarch64/cpunative/info_23
  af7eded849fa43258d6a947345148ae5  gcc/testsuite/gcc.target/aarch64/cpunative/info_24
  4c4387d4071cf10c793b4efe11f43439  gcc/testsuite/gcc.target/aarch64/cpunative/info_3
  d8a7caffcc99feff5312001aed51cd38  gcc/testsuite/gcc.target/aarch64/cpunative/info_4
  195bf754aeaf6d4fa8426e8fb4a553ce  gcc/testsuite/gcc.target/aarch64/cpunative/info_5
  73a2f048b60d92f4c6f8167c05bbd47c  gcc/testsuite/gcc.target/aarch64/cpunative/info_6
  a4639eec7e5e20089dff980c4a41ff83  gcc/testsuite/gcc.target/aarch64/cpunative/info_7
! f8a42f4cf707ff9f63c265a3286517d1  gcc/testsuite/gcc.target/aarch64/cpunative/info_8
! b2078512594dc486f0ff5f2a787bc11a  gcc/testsuite/gcc.target/aarch64/cpunative/info_9
  ffa0f5c14e361a4c13b4dae7c1e3bc31  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_0.c
  0b959a308c60758eae84d52bce3886ef  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_1.c
  68fbdfb6924a730d0e7021b570e92457  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_10.c
--- 60817,60837 ----
  10b507183ea6ee447505b829be51e826  gcc/testsuite/gcc.target/aarch64/cpunative/info_22
  bc6bfc844c0478de24fdceef61c08381  gcc/testsuite/gcc.target/aarch64/cpunative/info_23
  af7eded849fa43258d6a947345148ae5  gcc/testsuite/gcc.target/aarch64/cpunative/info_24
+ 1e8824a402d347622bf4bc8095b7a793  gcc/testsuite/gcc.target/aarch64/cpunative/info_25
+ e034be774c4e5593b3afa762f0dc6e15  gcc/testsuite/gcc.target/aarch64/cpunative/info_26
  4c4387d4071cf10c793b4efe11f43439  gcc/testsuite/gcc.target/aarch64/cpunative/info_3
+ e2924fddfdd2c711249ddbfae0b12b7f  gcc/testsuite/gcc.target/aarch64/cpunative/info_30
+ 0695758275f51f6218cf195f3db50076  gcc/testsuite/gcc.target/aarch64/cpunative/info_31
+ e2924fddfdd2c711249ddbfae0b12b7f  gcc/testsuite/gcc.target/aarch64/cpunative/info_32
+ 0695758275f51f6218cf195f3db50076  gcc/testsuite/gcc.target/aarch64/cpunative/info_33
+ d7c6ea3e81a5b70c38883962d2efd8ee  gcc/testsuite/gcc.target/aarch64/cpunative/info_34
+ d7c6ea3e81a5b70c38883962d2efd8ee  gcc/testsuite/gcc.target/aarch64/cpunative/info_35
  d8a7caffcc99feff5312001aed51cd38  gcc/testsuite/gcc.target/aarch64/cpunative/info_4
  195bf754aeaf6d4fa8426e8fb4a553ce  gcc/testsuite/gcc.target/aarch64/cpunative/info_5
  73a2f048b60d92f4c6f8167c05bbd47c  gcc/testsuite/gcc.target/aarch64/cpunative/info_6
  a4639eec7e5e20089dff980c4a41ff83  gcc/testsuite/gcc.target/aarch64/cpunative/info_7
! 168c15904e9ee93b4ba32fb7dfdf76a9  gcc/testsuite/gcc.target/aarch64/cpunative/info_8
! d8c5d86f6c90eaf760ee344356ed0e9c  gcc/testsuite/gcc.target/aarch64/cpunative/info_9
  ffa0f5c14e361a4c13b4dae7c1e3bc31  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_0.c
  0b959a308c60758eae84d52bce3886ef  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_1.c
  68fbdfb6924a730d0e7021b570e92457  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_10.c
*************** fcf175b96b1232e14cf68a2873e5158b  gcc/te
*** 57518,57528 ****
  1c4f8dce8be342dbb992894cb166b294  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c
  89c1dad76697e90c6f60664458c8c4ba  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c
  1b03a6f5cffb3433a29ae9e9ef08bdc7  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c
! c17c6b760b763931849708dac88df69f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c
! 06094760266cd69289bf27460ac3cee9  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c
  87529e68023afb4019b3bd5e7a79fdcf  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_23.c
  d988aea2234754cb819d3739755dd774  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c
  f61082217e1b13aa7be48cee990bc135  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c
  d1af08d975410370c6fd940a45ef218c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
  37f85a7eaba0054155c050334e383421  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_5.c
  63c5b23fb80b8ec12cc3c65027436fde  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_6.c
--- 60846,60864 ----
  1c4f8dce8be342dbb992894cb166b294  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c
  89c1dad76697e90c6f60664458c8c4ba  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c
  1b03a6f5cffb3433a29ae9e9ef08bdc7  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c
! 5286da6f70b27c1765b52530b3568cee  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c
! 5be021a334d07e914398c1e27b34146d  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c
  87529e68023afb4019b3bd5e7a79fdcf  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_23.c
  d988aea2234754cb819d3739755dd774  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c
+ ee1eba35869726d07cb7aa9e7a6d494c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_25.c
+ 451a64394f4606b106000a95b5f331e8  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_26.c
  f61082217e1b13aa7be48cee990bc135  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c
+ 0e9874c4e4058ca1ee17c2629aec0c0c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_30.c
+ 98a4d8aca0ae9fcdc6aa725d7138aa78  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_31.c
+ d399731376ae66ea072cb82782bf310a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_32.c
+ af6fba003ac74318b57ecd22c5ae3b7b  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_33.c
+ 7954e20457fa36fc88b8233fbfd02de6  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_34.c
+ ed6c20b66e7487d804e92b9c34f85aa5  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_35.c
  d1af08d975410370c6fd940a45ef218c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
  37f85a7eaba0054155c050334e383421  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_5.c
  63c5b23fb80b8ec12cc3c65027436fde  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_6.c
*************** c5a25189d013bff63967d8ba4395e70f  gcc/te
*** 57531,57536 ****
--- 60867,60902 ----
  480caca0a9fee70800397740ad646165  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_9.c
  e8ccec6b2fb8a30023cf88dcf2548dba  gcc/testsuite/gcc.target/aarch64/cpymem-q-reg_1.c
  8d232ec62529aafba12431c49d0e03d4  gcc/testsuite/gcc.target/aarch64/cpymem-size.c
+ f0ade2d7d5ecfdede0bcf4135fdc0398  gcc/testsuite/gcc.target/aarch64/crc-1-pmul.c
+ bf0bb1609d53652872fb971275ba0031  gcc/testsuite/gcc.target/aarch64/crc-10-pmul.c
+ 40e8b2336857861ca31d2406a928ad42  gcc/testsuite/gcc.target/aarch64/crc-12-pmul.c
+ a41ac1ed74daa11dd949a6028a04e6d9  gcc/testsuite/gcc.target/aarch64/crc-13-pmul.c
+ 058a51dfd9b715793597020ad0ac455b  gcc/testsuite/gcc.target/aarch64/crc-14-pmul.c
+ 2ff1b58a8561d535a8d45eaf5f22e92a  gcc/testsuite/gcc.target/aarch64/crc-17-pmul.c
+ 9372df20a81f71614d20f840944a0148  gcc/testsuite/gcc.target/aarch64/crc-18-pmul.c
+ 84bca1420829aedf17db57cedd2deaac  gcc/testsuite/gcc.target/aarch64/crc-21-pmul.c
+ 3efd33ff4b2e6b2cda3ea2d843ec3d48  gcc/testsuite/gcc.target/aarch64/crc-22-pmul.c
+ 0b8757c41f816dcdbd655c8ef3f11416  gcc/testsuite/gcc.target/aarch64/crc-23-pmul.c
+ e9b2f2c412037d1ed54a8e6f2c8a2106  gcc/testsuite/gcc.target/aarch64/crc-4-pmul.c
+ 336da770a6971a3a5734a42cb9b2383e  gcc/testsuite/gcc.target/aarch64/crc-5-pmul.c
+ 70c833cafde9cb10fb9c73183403a39d  gcc/testsuite/gcc.target/aarch64/crc-6-pmul.c
+ 95fe77a618d46d043b3fcc6cc56e6f43  gcc/testsuite/gcc.target/aarch64/crc-7-pmul.c
+ fa17a6e61c4f3f1540ff821ae67e2261  gcc/testsuite/gcc.target/aarch64/crc-8-pmul.c
+ 3bf81d05d434cbc714b90f20fedb1a66  gcc/testsuite/gcc.target/aarch64/crc-9-pmul.c
+ 5ff187dbf124c3ce54ddf95f85672376  gcc/testsuite/gcc.target/aarch64/crc-CCIT-data16-pmul.c
+ 251e33f9362e63ad16c39c6fb7242175  gcc/testsuite/gcc.target/aarch64/crc-CCIT-data8-pmul.c
+ a4eb291379b124bcf38c7c25fe6ce88c  gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
+ ece697e668e940eba5e40b8d0151eacd  gcc/testsuite/gcc.target/aarch64/crc-coremark-16bitdata-pmul.c
+ c99331a8fd2c0f746db916608d89dbb7  gcc/testsuite/gcc.target/aarch64/crc-crc32-data16.c
+ aefd5cd08c71eaba62c484af960dc579  gcc/testsuite/gcc.target/aarch64/crc-crc32-data32.c
+ e86e43bc31e3b3d5ab3e88654009eef6  gcc/testsuite/gcc.target/aarch64/crc-crc32-data8.c
+ a403728f848d92645dc2ca0776024d18  gcc/testsuite/gcc.target/aarch64/crc-crc32c-data16.c
+ 73b2f59e9c7eb35d01e8d5561ff56fee  gcc/testsuite/gcc.target/aarch64/crc-crc32c-data32.c
+ e6a5a51c3643725f1b7e50d5ed0f283e  gcc/testsuite/gcc.target/aarch64/crc-crc32c-data8.c
+ f60e193f97909df16be53255aff6b126  gcc/testsuite/gcc.target/aarch64/crypto-alias-1.c
+ ca0b70d3beab5754521910788949af95  gcc/testsuite/gcc.target/aarch64/csel-1.c
+ ee34e8a0f6cd0fc71146a43e9432db5a  gcc/testsuite/gcc.target/aarch64/csel-neg-1.c
+ bcc8d0d4f1ea5c4c0db13df4e8a52917  gcc/testsuite/gcc.target/aarch64/csel-neg-2.c
  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
*************** f8584ef5813441112b0bfb8283a130fd  gcc/te
*** 57549,57567 ****
  c6f22c75d128166e2734ec28d48d349b  gcc/testsuite/gcc.target/aarch64/cssc_5.c
  f15d1ff83066971ce9a42593ae9e147c  gcc/testsuite/gcc.target/aarch64/ctz.c
  66e80d99734f8cef1f2093c52336c4c2  gcc/testsuite/gcc.target/aarch64/cvtf_1.c
! 3265bb3224d32bda35ba3927ebe123b5  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
  a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/testsuite/gcc.target/aarch64/declare-simd-1.c
! 41703958f685e80bf77bb344c18b67fc  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
  a9ccf8cef71e90daa83ae00204fd983c  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_1.c
  5fdc01fccf89920c24ce6dadea7114d3  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_2.c
  8315d244ed24d1cd05bc6fae2d911e8e  gcc/testsuite/gcc.target/aarch64/eh_return-2.c
  541dacd7bf1c293af6ef0e1ad4c5f943  gcc/testsuite/gcc.target/aarch64/eh_return-3.c
! 337c39f85c95ad488bb585665bf18a76  gcc/testsuite/gcc.target/aarch64/eh_return.c
  0d0e2a489d3255344941fbdef5cd849a  gcc/testsuite/gcc.target/aarch64/eon_1.c
  8dac5a05d1eca8860b3df16bc7b03f2a  gcc/testsuite/gcc.target/aarch64/extend-syntax.c
  4703bff993ef8bad5cc876cd178c66da  gcc/testsuite/gcc.target/aarch64/extend.c
  0b2712c817ff082c0b56ddf2137cd33f  gcc/testsuite/gcc.target/aarch64/extr.c
  0742f6feeaef7434aa429feab4d5e613  gcc/testsuite/gcc.target/aarch64/extract_zero_extend.c
--- 60915,60951 ----
  c6f22c75d128166e2734ec28d48d349b  gcc/testsuite/gcc.target/aarch64/cssc_5.c
  f15d1ff83066971ce9a42593ae9e147c  gcc/testsuite/gcc.target/aarch64/ctz.c
  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
  a9ccf8cef71e90daa83ae00204fd983c  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_1.c
  5fdc01fccf89920c24ce6dadea7114d3  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_2.c
+ a041d79193cf5904e847d0b04f865370  gcc/testsuite/gcc.target/aarch64/early_ra_1.c
  8315d244ed24d1cd05bc6fae2d911e8e  gcc/testsuite/gcc.target/aarch64/eh_return-2.c
  541dacd7bf1c293af6ef0e1ad4c5f943  gcc/testsuite/gcc.target/aarch64/eh_return-3.c
! 2818d548f4447845f5e9a6ff272a8403  gcc/testsuite/gcc.target/aarch64/eh_return.c
  0d0e2a489d3255344941fbdef5cd849a  gcc/testsuite/gcc.target/aarch64/eon_1.c
+ ab4543be4fc35ae17010a3cdca208333  gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
+ 229d27c4ae1a695d0bda0c8639c06245  gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
+ 18f377729ebeaa5cb3cea428597def56  gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
+ 33f13c0c6587b0dc46fe7c1ddf7eb664  gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
+ c867cc980050a10e208b852b915bdbdf  gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
+ 260cd1834ef5ea6536daf230fd6bd20c  gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
+ 84207fad763f05185d4025dfdaee31d9  gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
+ d16c2a2134f9c7c82954bab23c9968d1  gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
+ 9c96e7a5cc579beded293b3cdd02a9bd  gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
+ 01be163975ab6c86e0cfbbf91f937da3  gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
+ 83f675cec8b0498d9ef4c973b0d6779e  gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
+ f882a3bcf76769d2283cd4e0d6a2e78e  gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
+ 96654ee1ee4bb745ee1b58f47f2904ee  gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
+ 9c119f8df44ce77ecfc28a65abf8a65d  gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
+ 22c29db8b0e375d1103b7babe7f2fcac  gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
+ e97b955f204e1a0d3642543b55763bb6  gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c
  8dac5a05d1eca8860b3df16bc7b03f2a  gcc/testsuite/gcc.target/aarch64/extend-syntax.c
+ 2891c499ed6535aa72a2a9a39cba281f  gcc/testsuite/gcc.target/aarch64/extend-vec.c
  4703bff993ef8bad5cc876cd178c66da  gcc/testsuite/gcc.target/aarch64/extend.c
  0b2712c817ff082c0b56ddf2137cd33f  gcc/testsuite/gcc.target/aarch64/extr.c
  0742f6feeaef7434aa429feab4d5e613  gcc/testsuite/gcc.target/aarch64/extract_zero_extend.c
*************** c3c69a71f2670cdbe2550868228987d2  gcc/te
*** 57626,57634 ****
  65aa15a5d83741a82efe4a7622931aa9  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_2.c
  7b71af44f426c02a57a50cd617031d72  gcc/testsuite/gcc.target/aarch64/fmul_intrinsic_1.c
  465c5e93e0d87400182fa5e10e3467e7  gcc/testsuite/gcc.target/aarch64/fmul_lane_1.c
! 280080ede1b5fe22866a6d647c295c88  gcc/testsuite/gcc.target/aarch64/fmul_scvtf_1.c
  b075be33bb3dd3fe6cfc7fed03f4e7bd  gcc/testsuite/gcc.target/aarch64/fneg-abs_1.c
! 23b74c903f32d288f1f020d8c6a635c9  gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c
  0d030dfc7300a0c8f233b0c19df84323  gcc/testsuite/gcc.target/aarch64/fneg-abs_3.c
  8653dd9b97414054987543b18b6e887d  gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c
  b41dba1046447c932cc183fe90f50467  gcc/testsuite/gcc.target/aarch64/fnmadd-fastmath.c
--- 61010,61018 ----
  65aa15a5d83741a82efe4a7622931aa9  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_2.c
  7b71af44f426c02a57a50cd617031d72  gcc/testsuite/gcc.target/aarch64/fmul_intrinsic_1.c
  465c5e93e0d87400182fa5e10e3467e7  gcc/testsuite/gcc.target/aarch64/fmul_lane_1.c
! 182fe810e18e017fc4848760aa7c4615  gcc/testsuite/gcc.target/aarch64/fmul_scvtf_1.c
  b075be33bb3dd3fe6cfc7fed03f4e7bd  gcc/testsuite/gcc.target/aarch64/fneg-abs_1.c
! f96e03a40f939bd623a2e40d36788b87  gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c
  0d030dfc7300a0c8f233b0c19df84323  gcc/testsuite/gcc.target/aarch64/fneg-abs_3.c
  8653dd9b97414054987543b18b6e887d  gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c
  b41dba1046447c932cc183fe90f50467  gcc/testsuite/gcc.target/aarch64/fnmadd-fastmath.c
*************** a1212235242dd12baac6ac6d3f0f04ad  gcc/te
*** 57638,57644 ****
  37fb660ad953888e296980c0d2b85a7c  gcc/testsuite/gcc.target/aarch64/fnmul-4.c
  a9470d48ec15369aea11218770e41e89  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_1.c
  1a65d9a8643a40367284cf31d1d3b963  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_2.c
! cd6a6d038eb7032b7b5e88e2780d6056  gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp
  c789e3d353f9e2287a4c9ef36dffcb2f  gcc/testsuite/gcc.target/aarch64/fp16/set_zero_1.c
  33e7feca82b3b0b54d58bbcd49d61f40  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high.h
  7aa945158b0a4b5f86014c0b7d857a22  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high_1.c
--- 61022,61028 ----
  37fb660ad953888e296980c0d2b85a7c  gcc/testsuite/gcc.target/aarch64/fnmul-4.c
  a9470d48ec15369aea11218770e41e89  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_1.c
  1a65d9a8643a40367284cf31d1d3b963  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_2.c
! 52a13b5ffdf31b92f7edb71f857418cb  gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp
  c789e3d353f9e2287a4c9ef36dffcb2f  gcc/testsuite/gcc.target/aarch64/fp16/set_zero_1.c
  33e7feca82b3b0b54d58bbcd49d61f40  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high.h
  7aa945158b0a4b5f86014c0b7d857a22  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high_1.c
*************** e2e19406d7c29a6c598ee660aaff3ca2  gcc/te
*** 57656,57661 ****
--- 61040,61047 ----
  3a51bc956931a83f86f2fb8422758c04  gcc/testsuite/gcc.target/aarch64/fp16_fmul_low_1.c
  602fd0a712df13af4dfbdfc0b7723ff8  gcc/testsuite/gcc.target/aarch64/fp16_fmul_low_2.c
  6f492fcf4f1cc058726e290429594a38  gcc/testsuite/gcc.target/aarch64/fp16_fmul_low_3.c
+ c57b5c295ed6cca237cf332412409167  gcc/testsuite/gcc.target/aarch64/fp8_scalar_1.c
+ bf616a2f2955f80513a03a6c4ae385df  gcc/testsuite/gcc.target/aarch64/fp8_scalar_typecheck_1.c
  2e2572d6fadd7421a17d8a41cca49d30  gcc/testsuite/gcc.target/aarch64/fpcr_fpsr_1.c
  31bd199bf5169831bc552ffd67ecd3f5  gcc/testsuite/gcc.target/aarch64/frecpe_1.c
  c4aa8a1f0ad2e74a9d73da81126c1f7e  gcc/testsuite/gcc.target/aarch64/frecpe_2.c
*************** c4aa8a1f0ad2e74a9d73da81126c1f7e  gcc/te
*** 57664,57696 ****
  e415b924a99a0696f070ee6cf8357d54  gcc/testsuite/gcc.target/aarch64/frint_float.c
  7f8140bc0d65dde3896572f2fe084146  gcc/testsuite/gcc.target/aarch64/fuse-caller-save.c
  4b8ae6f45383d71443f074a2d98751fe  gcc/testsuite/gcc.target/aarch64/fuse_adrp_add_1.c
  814f2a8701d47a79b645e43e6fe31b57  gcc/testsuite/gcc.target/aarch64/get_fpcr64_1.c
  dcfff550a1456524fd7870f0bec66e6f  gcc/testsuite/gcc.target/aarch64/get_fpsr64_1.c
  77410b35f9bf6bc7cf2a51fbc9461727  gcc/testsuite/gcc.target/aarch64/get_lane_f16_1.c
  9690d44b95593019a84cc46b5927a347  gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c
! 818995f657f497ee60b80e64df6087a6  gcc/testsuite/gcc.target/aarch64/gtu_to_ltu_cmp_1.c
  5fd4c4637acf41fecfb9bd79e8372c44  gcc/testsuite/gcc.target/aarch64/gtu_to_ltu_cmp_2.c
  6c27a7fd52e09c1d9401d5c4851b2cbf  gcc/testsuite/gcc.target/aarch64/hfmode_ins_1.c
  f7353dd395d4a06a8cb38e34a076fb39  gcc/testsuite/gcc.target/aarch64/if-compare_1.c
! 65020835c6bbf8049ce4f2254d0ae7cb  gcc/testsuite/gcc.target/aarch64/if-compare_2.c
  b90f3600518fbc46af4cd4bd1cdb7186  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c
  af0e32f53ec629289269248abb106c2e  gcc/testsuite/gcc.target/aarch64/iinline-attr-1.c
  6fb81bd92df3487698e7f9bc3ce53f6e  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c
  aa9097deb2901881188486bdf9eb3343  gcc/testsuite/gcc.target/aarch64/index.c
  2b13cf8445a95980ea035811da6abe95  gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
  caaafb769b844ad26e03a5f739c93732  gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c
! 90527d433a3475173994f5e1d0e10202  gcc/testsuite/gcc.target/aarch64/inline-mem-set-pr112804.c
  f93d26b8600db1431d907a2283893a96  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1.c
  562885e1b79b6c4ecd87a7f511db5420  gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
  39e77099ed8a31c9803583dcfff90eb6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3.c
  560aad3e91ef22a6855588024205f289  gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
  3d14be3c70a800fd875069d7410b31a6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5.c
  825a05cc66dd3bb694b37457fcfbf490  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  18f0bd2efa738426efce6208b83e0cbd  gcc/testsuite/gcc.target/aarch64/int_mov_immediate_1.c
  2feabf7a23a544e445cd6f1d402811d0  gcc/testsuite/gcc.target/aarch64/lane-bound-1.c
  49907aab7182a2a85495455c2d574117  gcc/testsuite/gcc.target/aarch64/lane-bound-2.c
  81256a6fac965eea861536637ff35013  gcc/testsuite/gcc.target/aarch64/large_struct_copy.c
  508532c90ef5da7602402b5f0076c554  gcc/testsuite/gcc.target/aarch64/large_struct_copy_2.c
  aa51cad6adc25f2ceabe6717f164d378  gcc/testsuite/gcc.target/aarch64/ldapr-sext.c
--- 61050,61104 ----
  e415b924a99a0696f070ee6cf8357d54  gcc/testsuite/gcc.target/aarch64/frint_float.c
  7f8140bc0d65dde3896572f2fe084146  gcc/testsuite/gcc.target/aarch64/fuse-caller-save.c
  4b8ae6f45383d71443f074a2d98751fe  gcc/testsuite/gcc.target/aarch64/fuse_adrp_add_1.c
+ 7973f2f397092bcb470faf555e491288  gcc/testsuite/gcc.target/aarch64/fuse_cmp_csel.c
+ 977747e3eaaf9cf943cc5dfffc3ffb6c  gcc/testsuite/gcc.target/aarch64/fuse_cmp_cset.c
+ 1146ad4340ec3c890e6f00e04da365ac  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-1-track-speculation.c
+ 302a59893af43fb3f38fe28575033058  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-1.c
+ 5ff35113400d707f517b1cf9dce77771  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-1.h
+ d14387d4d6469c35c1d6c113cd51a8d4  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-2-track-speculation.c
+ 237d15896642e0342329e004b64e68d1  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-2.c
+ e1dcc78279c9fd4b279892ad7b4b9528  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-2.h
+ 8ba45feb3da409401168694e8603794a  gcc/testsuite/gcc.target/aarch64/gcs-nonlocal-3.c
+ 59c18033df44edca1b19f79975fe0594  gcc/testsuite/gcc.target/aarch64/gcspopm-1.c
+ 728bf2591fc293a713ad37c266f44f99  gcc/testsuite/gcc.target/aarch64/gcspr-1.c
+ 4c25587ec17a0189db204e6635cab43c  gcc/testsuite/gcc.target/aarch64/gcsss-1.c
  814f2a8701d47a79b645e43e6fe31b57  gcc/testsuite/gcc.target/aarch64/get_fpcr64_1.c
  dcfff550a1456524fd7870f0bec66e6f  gcc/testsuite/gcc.target/aarch64/get_fpsr64_1.c
  77410b35f9bf6bc7cf2a51fbc9461727  gcc/testsuite/gcc.target/aarch64/get_lane_f16_1.c
  9690d44b95593019a84cc46b5927a347  gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c
! d4478d5c58fa56a9cc215142b0ce6f2d  gcc/testsuite/gcc.target/aarch64/gtu_to_ltu_cmp_1.c
  5fd4c4637acf41fecfb9bd79e8372c44  gcc/testsuite/gcc.target/aarch64/gtu_to_ltu_cmp_2.c
  6c27a7fd52e09c1d9401d5c4851b2cbf  gcc/testsuite/gcc.target/aarch64/hfmode_ins_1.c
  f7353dd395d4a06a8cb38e34a076fb39  gcc/testsuite/gcc.target/aarch64/if-compare_1.c
! 41b44a1d60439ce726622c43d4e06d15  gcc/testsuite/gcc.target/aarch64/if-compare_2.c
! 6df0a6fbd3823260106b36ca515655cb  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_arithm.c
! 3f1ebc11ad6228f420a2bb862e303ba6  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_rewire.c
  b90f3600518fbc46af4cd4bd1cdb7186  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c
  af0e32f53ec629289269248abb106c2e  gcc/testsuite/gcc.target/aarch64/iinline-attr-1.c
+ 7673570b4adf4ddf395a94b20d54e4bb  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison-1.c
  6fb81bd92df3487698e7f9bc3ce53f6e  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c
  aa9097deb2901881188486bdf9eb3343  gcc/testsuite/gcc.target/aarch64/index.c
+ 4c1452d0d69f13e180f289e658cda989  gcc/testsuite/gcc.target/aarch64/indirect_return-1.c
+ d8d38149c470209935812a938566f491  gcc/testsuite/gcc.target/aarch64/indirect_return-2.c
+ 05f2776f39ecb07495e97e5f29d69234  gcc/testsuite/gcc.target/aarch64/indirect_return-3.c
  2b13cf8445a95980ea035811da6abe95  gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
  caaafb769b844ad26e03a5f739c93732  gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c
! 14ceb90a94821a13d5c3bdf5ac7ae827  gcc/testsuite/gcc.target/aarch64/inline-mem-set-pr112804.c
  f93d26b8600db1431d907a2283893a96  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1.c
+ 3c9f1ecc1bfed54571700f0eebd4753c  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c
  562885e1b79b6c4ecd87a7f511db5420  gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
  39e77099ed8a31c9803583dcfff90eb6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3.c
+ f07666957897788bc16f106178593da9  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c
  560aad3e91ef22a6855588024205f289  gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
  3d14be3c70a800fd875069d7410b31a6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5.c
+ e133d603af3ecab67fb41464a457b091  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c
  825a05cc66dd3bb694b37457fcfbf490  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  18f0bd2efa738426efce6208b83e0cbd  gcc/testsuite/gcc.target/aarch64/int_mov_immediate_1.c
  2feabf7a23a544e445cd6f1d402811d0  gcc/testsuite/gcc.target/aarch64/lane-bound-1.c
  49907aab7182a2a85495455c2d574117  gcc/testsuite/gcc.target/aarch64/lane-bound-2.c
+ a2e2c14972d8ad4675b55c041ef37bd5  gcc/testsuite/gcc.target/aarch64/lane-bound-3.c
  81256a6fac965eea861536637ff35013  gcc/testsuite/gcc.target/aarch64/large_struct_copy.c
  508532c90ef5da7602402b5f0076c554  gcc/testsuite/gcc.target/aarch64/large_struct_copy_2.c
  aa51cad6adc25f2ceabe6717f164d378  gcc/testsuite/gcc.target/aarch64/ldapr-sext.c
*************** d8466196c5738675b4083dd4447f2cdc  gcc/te
*** 57698,57721 ****
  68214d6b949317dd07f6359cdaaaf7d5  gcc/testsuite/gcc.target/aarch64/ldapr.c
  e44d2a3726404fa7172221c7b20729b8  gcc/testsuite/gcc.target/aarch64/ldar_1.c
  8d2d09f7823d54ba6cd111f061a9329c  gcc/testsuite/gcc.target/aarch64/ldar_2.c
! c6413118981f491be9ede894ae3f2e71  gcc/testsuite/gcc.target/aarch64/ldp_aligned.c
! 19d89a057ead563f6210b1037d86a183  gcc/testsuite/gcc.target/aarch64/ldp_always.c
  8155aa5f08613225f718be84e5008489  gcc/testsuite/gcc.target/aarch64/ldp_never.c
  c4d33c58db6c2e77df14b83ac56be1ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_1.c
! d60171b608bda1a5cf0258e031bb3520  gcc/testsuite/gcc.target/aarch64/ldp_stp_10.c
  1786c5d34b0f7cceace3327361040bde  gcc/testsuite/gcc.target/aarch64/ldp_stp_11.c
! bad5203b70baf772382e68b6c79a2da2  gcc/testsuite/gcc.target/aarch64/ldp_stp_12.c
! 1882bb9dfda0ec38a31b79584154ea37  gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
  f63af0e2c637d2d9ca8823625488dcda  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
  5163e8d4cea70416f782eaff9affa0df  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.h
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
! 66db316d3c42d9ddbeadd60f263792d4  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
  ffedc0ef46ae1e25eb82fb4257a7f56e  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
! cb8abbb0950e72e68d86ee3959b22eee  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
! eba5c2fe283dd3f3f18787c725265b5c  gcc/testsuite/gcc.target/aarch64/ldp_stp_21.c
  13127d30e930179c95b9c11cf172855d  gcc/testsuite/gcc.target/aarch64/ldp_stp_22.c
  a49bb74e71ea598c3c09fede3892b1f2  gcc/testsuite/gcc.target/aarch64/ldp_stp_23.c
  65457a83421b49a3500338270e1bec47  gcc/testsuite/gcc.target/aarch64/ldp_stp_24.c
--- 61106,61128 ----
  68214d6b949317dd07f6359cdaaaf7d5  gcc/testsuite/gcc.target/aarch64/ldapr.c
  e44d2a3726404fa7172221c7b20729b8  gcc/testsuite/gcc.target/aarch64/ldar_1.c
  8d2d09f7823d54ba6cd111f061a9329c  gcc/testsuite/gcc.target/aarch64/ldar_2.c
! 224ea6dd9cff3c49a64b8a3bc14b1f50  gcc/testsuite/gcc.target/aarch64/ldp_aligned.c
! 9cc1bac0173ec3c5f5f4de34c767365e  gcc/testsuite/gcc.target/aarch64/ldp_always.c
  8155aa5f08613225f718be84e5008489  gcc/testsuite/gcc.target/aarch64/ldp_never.c
  c4d33c58db6c2e77df14b83ac56be1ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_1.c
! 1f9fcf0ebfba9eac36bddddc4a4aa2eb  gcc/testsuite/gcc.target/aarch64/ldp_stp_10.c
  1786c5d34b0f7cceace3327361040bde  gcc/testsuite/gcc.target/aarch64/ldp_stp_11.c
! eaf979ea406da0e4b0c25f5727580faa  gcc/testsuite/gcc.target/aarch64/ldp_stp_12.c
  f63af0e2c637d2d9ca8823625488dcda  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
  5163e8d4cea70416f782eaff9affa0df  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.h
  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
! dbed893e464808159b932159db7d9947  gcc/testsuite/gcc.target/aarch64/ldp_stp_21.c
  13127d30e930179c95b9c11cf172855d  gcc/testsuite/gcc.target/aarch64/ldp_stp_22.c
  a49bb74e71ea598c3c09fede3892b1f2  gcc/testsuite/gcc.target/aarch64/ldp_stp_23.c
  65457a83421b49a3500338270e1bec47  gcc/testsuite/gcc.target/aarch64/ldp_stp_24.c
*************** cf3224c75efba2a7cdab28293aa78058  gcc/te
*** 57724,57742 ****
  c61389721149fafe5b576ac5eac3e81d  gcc/testsuite/gcc.target/aarch64/ldp_stp_5.c
  61c09ae0091786f892f4de5b3a9a3458  gcc/testsuite/gcc.target/aarch64/ldp_stp_6.c
  59350b5fc92367fbd7dc7ea69d786e04  gcc/testsuite/gcc.target/aarch64/ldp_stp_7.c
! a8582030f92388542aa64d3c023021dd  gcc/testsuite/gcc.target/aarch64/ldp_stp_8.c
  da228c5bd8eba6a5793d1df393f9c8d1  gcc/testsuite/gcc.target/aarch64/ldp_stp_9.c
  0bcc3ab641e2e6d78c1c1d5a7daf7a65  gcc/testsuite/gcc.target/aarch64/ldp_stp_q.c
- 9e522133a644add5316916a419c9e2d7  gcc/testsuite/gcc.target/aarch64/ldp_stp_q_disable.c
  2e89613bc3014a7c541e4842fef81025  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_1.c
  51bb10f532df4bc6978cee31e584b6ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c
  3f3797acb2b274fe18352839b6facd1b  gcc/testsuite/gcc.target/aarch64/ldp_unaligned.c
  cc9a9ea2da09d4b15bb44f3466819c58  gcc/testsuite/gcc.target/aarch64/ldp_vec_64_1.c
! d8fad0a193deddeb2e504f247f0e1721  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2sf.c
! 1457863fb2c6fad305de6653fab4b7ae  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2si.c
  aacf72675fc499d7008f0afd92fba8a8  gcc/testsuite/gcc.target/aarch64/legitimize_stack_var_before_reload_1.c
  75b9e47e034140e3e91bf7ed48db1aad  gcc/testsuite/gcc.target/aarch64/load_v2vec_lanes_1.c
! 16de8ed84724234cc0c899222f576867  gcc/testsuite/gcc.target/aarch64/long_branch_1.c
  88bfd0f75750bcbae51d894aa0f4baea  gcc/testsuite/gcc.target/aarch64/lr_free_1.c
  a5cfe0849b43ef498cda6a872be26cb6  gcc/testsuite/gcc.target/aarch64/lr_free_2.c
  9ca4f25b97ec89a6e60a1484f11dc946  gcc/testsuite/gcc.target/aarch64/lrint-matherr.h
--- 61131,61148 ----
  c61389721149fafe5b576ac5eac3e81d  gcc/testsuite/gcc.target/aarch64/ldp_stp_5.c
  61c09ae0091786f892f4de5b3a9a3458  gcc/testsuite/gcc.target/aarch64/ldp_stp_6.c
  59350b5fc92367fbd7dc7ea69d786e04  gcc/testsuite/gcc.target/aarch64/ldp_stp_7.c
! d1f9b2699e775629d6ab42980cab997a  gcc/testsuite/gcc.target/aarch64/ldp_stp_8.c
  da228c5bd8eba6a5793d1df393f9c8d1  gcc/testsuite/gcc.target/aarch64/ldp_stp_9.c
  0bcc3ab641e2e6d78c1c1d5a7daf7a65  gcc/testsuite/gcc.target/aarch64/ldp_stp_q.c
  2e89613bc3014a7c541e4842fef81025  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_1.c
  51bb10f532df4bc6978cee31e584b6ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c
  3f3797acb2b274fe18352839b6facd1b  gcc/testsuite/gcc.target/aarch64/ldp_unaligned.c
  cc9a9ea2da09d4b15bb44f3466819c58  gcc/testsuite/gcc.target/aarch64/ldp_vec_64_1.c
! 54d84070710f82cd1db66c7f769cc9d6  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2sf.c
! 546cf9120256663837e07f3ad762c45b  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2si.c
  aacf72675fc499d7008f0afd92fba8a8  gcc/testsuite/gcc.target/aarch64/legitimize_stack_var_before_reload_1.c
  75b9e47e034140e3e91bf7ed48db1aad  gcc/testsuite/gcc.target/aarch64/load_v2vec_lanes_1.c
! 912d6ef4726a671f926367bd36b7a20b  gcc/testsuite/gcc.target/aarch64/long_branch_1.c
  88bfd0f75750bcbae51d894aa0f4baea  gcc/testsuite/gcc.target/aarch64/lr_free_1.c
  a5cfe0849b43ef498cda6a872be26cb6  gcc/testsuite/gcc.target/aarch64/lr_free_2.c
  9ca4f25b97ec89a6e60a1484f11dc946  gcc/testsuite/gcc.target/aarch64/lrint-matherr.h
*************** cb18e653bc36a91d64d93edcc2632490  gcc/te
*** 57755,57764 ****
  5ef2589d506c837eb28befbe4fe31ab7  gcc/testsuite/gcc.target/aarch64/memmove.c
  b50e1f81d7305cfe5249cb4bd2be5e6f  gcc/testsuite/gcc.target/aarch64/memmove2.c
  913e2469a12f166a024ccedfe08051db  gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
! ed7961df6f5543807d73486339453e46  gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
  ef180504b13044e94b604990b6c3ef43  gcc/testsuite/gcc.target/aarch64/memset-q-reg.c
  99f047cbf8399ea75f540f743fbcd4cb  gcc/testsuite/gcc.target/aarch64/memset-strict-align-1.c
  424a2b5eafd789db7d0b5caa9628ff62  gcc/testsuite/gcc.target/aarch64/merge_trunc1.c
  4eed4dd5aa94cdbafdb452fb4f2fa939  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
  b89c285bf72a3b1d134d2ed30e7955a8  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_2.c
  640727d5baa92078d43b34d07d8bc9ea  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c
--- 61161,61171 ----
  5ef2589d506c837eb28befbe4fe31ab7  gcc/testsuite/gcc.target/aarch64/memmove.c
  b50e1f81d7305cfe5249cb4bd2be5e6f  gcc/testsuite/gcc.target/aarch64/memmove2.c
  913e2469a12f166a024ccedfe08051db  gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
! f36275b28313084fe8b53fd06787e739  gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
  ef180504b13044e94b604990b6c3ef43  gcc/testsuite/gcc.target/aarch64/memset-q-reg.c
  99f047cbf8399ea75f540f743fbcd4cb  gcc/testsuite/gcc.target/aarch64/memset-strict-align-1.c
  424a2b5eafd789db7d0b5caa9628ff62  gcc/testsuite/gcc.target/aarch64/merge_trunc1.c
+ abc6ce7914d6d644d308d83fc8bd777f  gcc/testsuite/gcc.target/aarch64/mfloat-init-1.c
  4eed4dd5aa94cdbafdb452fb4f2fa939  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
  b89c285bf72a3b1d134d2ed30e7955a8  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_2.c
  640727d5baa92078d43b34d07d8bc9ea  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c
*************** d0ea1a89930f9754bad4281bd290e63c  gcc/te
*** 57821,57840 ****
  113e45c7b700546ca7d0dac30a1d8bd2  gcc/testsuite/gcc.target/aarch64/movti_3.c
  509511b9929fa7991e2506df6d9fd3c6  gcc/testsuite/gcc.target/aarch64/movti_4.c
  db4d3fa1b5ba501f604db0f5bf16208a  gcc/testsuite/gcc.target/aarch64/movv16qi_1.c
! 28ed27a67067dfa66b0e20cedba187bb  gcc/testsuite/gcc.target/aarch64/movv16qi_2.c
! 5c90437514d5456256912d55e745eecd  gcc/testsuite/gcc.target/aarch64/movv16qi_3.c
  50c2f2c8b43a566e18ee4548792dcf21  gcc/testsuite/gcc.target/aarch64/movv16qi_4.c
  927cb163b6b398b3d277e3abb8754be6  gcc/testsuite/gcc.target/aarch64/movv16qi_5.c
  823e45606e78e31955727b7d97c25e6d  gcc/testsuite/gcc.target/aarch64/movv2di_1.c
! e1413ddcbf283ae1312893ff82fd70b8  gcc/testsuite/gcc.target/aarch64/movv2x16qi_1.c
  970594770208e13b0c5fbbf26313b2e7  gcc/testsuite/gcc.target/aarch64/movv2x8qi_1.c
! ffdee11a6f33cebb0532821449410ff1  gcc/testsuite/gcc.target/aarch64/movv3x16qi_1.c
  3f3b41a6f5d2cc181a5ae05a972cfe65  gcc/testsuite/gcc.target/aarch64/movv3x8qi_1.c
! f657a0706821f5c7079874fc569e4949  gcc/testsuite/gcc.target/aarch64/movv4x16qi_1.c
  a642072306e978a39000ad2039303e17  gcc/testsuite/gcc.target/aarch64/movv4x8qi_1.c
  5e04d57c61b44aa3f8b127d73d163ce0  gcc/testsuite/gcc.target/aarch64/movv8qi_1.c
! 5258818fc0a55113c967990ffec0ef08  gcc/testsuite/gcc.target/aarch64/movv8qi_2.c
! 40eb481cbe44f83df2c6cf97bbd02e6d  gcc/testsuite/gcc.target/aarch64/movv8qi_3.c
  989b3ee1ab71746069f9512c3cfc893c  gcc/testsuite/gcc.target/aarch64/movv8qi_4.c
  f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/aarch64/mtp.c
  fcc590063ff2eec1e128ffe964398347  gcc/testsuite/gcc.target/aarch64/mtp_1.c
--- 61228,61247 ----
  113e45c7b700546ca7d0dac30a1d8bd2  gcc/testsuite/gcc.target/aarch64/movti_3.c
  509511b9929fa7991e2506df6d9fd3c6  gcc/testsuite/gcc.target/aarch64/movti_4.c
  db4d3fa1b5ba501f604db0f5bf16208a  gcc/testsuite/gcc.target/aarch64/movv16qi_1.c
! 18980059cdff343155840eda5d9672fe  gcc/testsuite/gcc.target/aarch64/movv16qi_2.c
! 99bbae579ebc3d7ca40a37490c1e388f  gcc/testsuite/gcc.target/aarch64/movv16qi_3.c
  50c2f2c8b43a566e18ee4548792dcf21  gcc/testsuite/gcc.target/aarch64/movv16qi_4.c
  927cb163b6b398b3d277e3abb8754be6  gcc/testsuite/gcc.target/aarch64/movv16qi_5.c
  823e45606e78e31955727b7d97c25e6d  gcc/testsuite/gcc.target/aarch64/movv2di_1.c
! 193b0f208d43d23ecac4dd7d930abdd7  gcc/testsuite/gcc.target/aarch64/movv2x16qi_1.c
  970594770208e13b0c5fbbf26313b2e7  gcc/testsuite/gcc.target/aarch64/movv2x8qi_1.c
! c53bf875fd231547e4d810f9bd3587d7  gcc/testsuite/gcc.target/aarch64/movv3x16qi_1.c
  3f3b41a6f5d2cc181a5ae05a972cfe65  gcc/testsuite/gcc.target/aarch64/movv3x8qi_1.c
! b15861bfd950b8ecf66c8abb376cfa24  gcc/testsuite/gcc.target/aarch64/movv4x16qi_1.c
  a642072306e978a39000ad2039303e17  gcc/testsuite/gcc.target/aarch64/movv4x8qi_1.c
  5e04d57c61b44aa3f8b127d73d163ce0  gcc/testsuite/gcc.target/aarch64/movv8qi_1.c
! 1417296794916fc655c10bbdaaad42f7  gcc/testsuite/gcc.target/aarch64/movv8qi_2.c
! a2520e41760b4af2c00bf6632954a0d8  gcc/testsuite/gcc.target/aarch64/movv8qi_3.c
  989b3ee1ab71746069f9512c3cfc893c  gcc/testsuite/gcc.target/aarch64/movv8qi_4.c
  f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/aarch64/mtp.c
  fcc590063ff2eec1e128ffe964398347  gcc/testsuite/gcc.target/aarch64/mtp_1.c
*************** c62a8a637de4eb00aef16c6f2aa34f7e  gcc/te
*** 57860,57873 ****
  3e63ffed4a3fdf8f59d1d0a5a648365c  gcc/testsuite/gcc.target/aarch64/narrow_zero_high_half.c
  939496f630a07f95a47a84cc4f5f7267  gcc/testsuite/gcc.target/aarch64/neg_1.c
  98aa8533c6a9248fe295572b2512fac7  gcc/testsuite/gcc.target/aarch64/neg_abs_1.c
  c8c679e672173f52fbc0d86757b5c05a  gcc/testsuite/gcc.target/aarch64/negs.c
  c73625ed2ccdb03a534164bcd8dc3145  gcc/testsuite/gcc.target/aarch64/neoverse_v1_1.c
! e3a8c5bfee4d33ed4f53056a51b94ec3  gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
! 56bdf6258ec7b70f3d355abb9f4cd070  gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
  face3a8c6631236fedad3dce5526b762  gcc/testsuite/gcc.target/aarch64/ngc.c
  fb19dd57034e67da13f2a5b22815fcc5  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
  56f1cae94d74d605f3127ff54df58e5e  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_2.c
  9567b5cb1744b0c5a301604d3a25bbc2  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c
  b716a0213aba89c759289668d57ef9cd  gcc/testsuite/gcc.target/aarch64/no_merge_trunc_signed_zero.c
  13a63494139cde5273b13f2e4eb58493  gcc/testsuite/gcc.target/aarch64/nofp_1.c
  b0e90aa46397bdde3bb349cc558012c7  gcc/testsuite/gcc.target/aarch64/nofp_2.c
--- 61267,61286 ----
  3e63ffed4a3fdf8f59d1d0a5a648365c  gcc/testsuite/gcc.target/aarch64/narrow_zero_high_half.c
  939496f630a07f95a47a84cc4f5f7267  gcc/testsuite/gcc.target/aarch64/neg_1.c
  98aa8533c6a9248fe295572b2512fac7  gcc/testsuite/gcc.target/aarch64/neg_abs_1.c
+ 5f2098a5ce1008a688e14bfab709ad09  gcc/testsuite/gcc.target/aarch64/neg_bf_1.c
+ ab1aff01d0978c45cdf9c392a1f88408  gcc/testsuite/gcc.target/aarch64/neg_bf_2.c
  c8c679e672173f52fbc0d86757b5c05a  gcc/testsuite/gcc.target/aarch64/negs.c
  c73625ed2ccdb03a534164bcd8dc3145  gcc/testsuite/gcc.target/aarch64/neoverse_v1_1.c
! e0a1d6977840dab3483c837b58dbc9b9  gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
! fdc40473e082836e4f8d1c485846b2f1  gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
  face3a8c6631236fedad3dce5526b762  gcc/testsuite/gcc.target/aarch64/ngc.c
  fb19dd57034e67da13f2a5b22815fcc5  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
  56f1cae94d74d605f3127ff54df58e5e  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_2.c
  9567b5cb1744b0c5a301604d3a25bbc2  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c
+ 113e9d555b06acc5cc839196f2bc9db3  gcc/testsuite/gcc.target/aarch64/no-sve-with-sme-1.c
+ 28ff0c6f83cb67d96e3c1d50708fce04  gcc/testsuite/gcc.target/aarch64/no-sve-with-sme-2.c
+ 8cb75b413203273bf4317f34bc658b27  gcc/testsuite/gcc.target/aarch64/no-sve-with-sme-3.c
+ fb111225c6ce6007cba99cf9653a02b2  gcc/testsuite/gcc.target/aarch64/no-sve-with-sme-4.c
  b716a0213aba89c759289668d57ef9cd  gcc/testsuite/gcc.target/aarch64/no_merge_trunc_signed_zero.c
  13a63494139cde5273b13f2e4eb58493  gcc/testsuite/gcc.target/aarch64/nofp_1.c
  b0e90aa46397bdde3bb349cc558012c7  gcc/testsuite/gcc.target/aarch64/nofp_2.c
*************** cc673aee5d01bdca3169c14664bb007e  gcc/te
*** 57896,57901 ****
--- 61309,61315 ----
  987d08a4134e473a1aeb60c120914f29  gcc/testsuite/gcc.target/aarch64/options_set_26.c
  f3b5922b8b4354df5f810cfdcfd0f7e6  gcc/testsuite/gcc.target/aarch64/options_set_27.c
  45fde6d2b5e6119a4720e8c2aaa5396c  gcc/testsuite/gcc.target/aarch64/options_set_28.c
+ 7dbad8c7e1b6f04a8adab6aac3c9f332  gcc/testsuite/gcc.target/aarch64/options_set_29.c
  936ce13e85d31d5545886eb94526915b  gcc/testsuite/gcc.target/aarch64/options_set_3.c
  e721f980e1e7a9648d77300c2f6ea0e5  gcc/testsuite/gcc.target/aarch64/options_set_4.c
  9c2ebf89a44fab00a57afc61e1a1fe86  gcc/testsuite/gcc.target/aarch64/options_set_5.c
*************** d28ce23985b773a211ff26743e9e661d  gcc/te
*** 57907,57923 ****
  2affd5586d9d9534731788d83a2a3904  gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
  b0a892934f70ddbece003356d1462148  gcc/testsuite/gcc.target/aarch64/pcs_attribute-3.c
  9fe8a7ffd0c54ed06b5690a31efb7b70  gcc/testsuite/gcc.target/aarch64/pcs_attribute.c
! 0c3ceb05b6a46688c215fce72400ede6  gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
  c634a3e3729a1cf014159113aaaa5923  gcc/testsuite/gcc.target/aarch64/pic-small.c
! 50e5f60e2252fba053db35746b354890  gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
  73044733387a8f754915be808c060624  gcc/testsuite/gcc.target/aarch64/pmull_1.c
  629072fafe5767161ca1f67309a94cc5  gcc/testsuite/gcc.target/aarch64/popcnt.c
  1444bbe1566e1e44cb5d667947f37296  gcc/testsuite/gcc.target/aarch64/popcnt2.c
  1e502ffc7c9d63e78c4e9edd6822a6a8  gcc/testsuite/gcc.target/aarch64/popcount4.c
  27e2c5c9a0bcdfebf2133e263738b146  gcc/testsuite/gcc.target/aarch64/pr100028.c
  54fb26388022e156768595e3d8b46954  gcc/testsuite/gcc.target/aarch64/pr100056.c
  c3d44b74cbd361a863813180478ad6c8  gcc/testsuite/gcc.target/aarch64/pr100075.c
! e2136e7e4121b5b98591560242d1826f  gcc/testsuite/gcc.target/aarch64/pr100518.c
  90ff787e2854382a010cb41d41d74b65  gcc/testsuite/gcc.target/aarch64/pr102008.c
  2b4e17d3d8fabfd5192210873467463b  gcc/testsuite/gcc.target/aarch64/pr102376.c
  8f357d4ccc6a0a50914dfbcfa3ad7dec  gcc/testsuite/gcc.target/aarch64/pr103085.c
--- 61321,61354 ----
  2affd5586d9d9534731788d83a2a3904  gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
  b0a892934f70ddbece003356d1462148  gcc/testsuite/gcc.target/aarch64/pcs_attribute-3.c
  9fe8a7ffd0c54ed06b5690a31efb7b70  gcc/testsuite/gcc.target/aarch64/pcs_attribute.c
! 9d3308c486ff9061f6cadec971e22c19  gcc/testsuite/gcc.target/aarch64/pfalse-binary_0.h
! 788069a67c617bf2e5f8bdf437f780c8  gcc/testsuite/gcc.target/aarch64/pfalse-unary_0.h
! 9e6d61a7e1d89fd31e6be729b592cce9  gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
  c634a3e3729a1cf014159113aaaa5923  gcc/testsuite/gcc.target/aarch64/pic-small.c
! 51e114e92becf6e5484713d42b008f4d  gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
  73044733387a8f754915be808c060624  gcc/testsuite/gcc.target/aarch64/pmull_1.c
+ 4e276a29652236d4788990c081f63787  gcc/testsuite/gcc.target/aarch64/popcnt-eq-1.c
+ 4d8026dd553c44c1a48ce80a71531b86  gcc/testsuite/gcc.target/aarch64/popcnt-le-1.c
+ 3cdbf6a5cbb7b9b28ab1aaf0359fdc18  gcc/testsuite/gcc.target/aarch64/popcnt-le-2.c
+ 9e948ae68c0d390d823337c5e39dca82  gcc/testsuite/gcc.target/aarch64/popcnt-le-3.c
+ 87eb1caed03b11f241967f34499bb81d  gcc/testsuite/gcc.target/aarch64/popcnt-sve.c
+ af75b46ad5491c060e4ce3eb0ed013ce  gcc/testsuite/gcc.target/aarch64/popcnt-udot.c
+ 96fc63592462925adddeb2b1c19522fe  gcc/testsuite/gcc.target/aarch64/popcnt-vec.c
  629072fafe5767161ca1f67309a94cc5  gcc/testsuite/gcc.target/aarch64/popcnt.c
+ 8b0d385fe1c7d3d070af7c1e30ebc3e3  gcc/testsuite/gcc.target/aarch64/popcnt10.c
+ d1b5fb86f3b9b04975e173b6d850c6ba  gcc/testsuite/gcc.target/aarch64/popcnt11.c
+ 4ca2f39c4f53d62f6d444b1158e2d996  gcc/testsuite/gcc.target/aarch64/popcnt12.c
  1444bbe1566e1e44cb5d667947f37296  gcc/testsuite/gcc.target/aarch64/popcnt2.c
+ 5b6ff94659900761884ca6a956407929  gcc/testsuite/gcc.target/aarch64/popcnt5.c
+ 7a27c11c9ce1b1c655386ee2d048d88b  gcc/testsuite/gcc.target/aarch64/popcnt6.c
+ bb4a0e5cdad5e20f274f7ef8bce125f0  gcc/testsuite/gcc.target/aarch64/popcnt7.c
+ 72ab3362bd4900da52ed497e71a6e272  gcc/testsuite/gcc.target/aarch64/popcnt8.c
+ fa5fe0900c86da797549fc3e4fa573bc  gcc/testsuite/gcc.target/aarch64/popcnt9.c
  1e502ffc7c9d63e78c4e9edd6822a6a8  gcc/testsuite/gcc.target/aarch64/popcount4.c
  27e2c5c9a0bcdfebf2133e263738b146  gcc/testsuite/gcc.target/aarch64/pr100028.c
  54fb26388022e156768595e3d8b46954  gcc/testsuite/gcc.target/aarch64/pr100056.c
  c3d44b74cbd361a863813180478ad6c8  gcc/testsuite/gcc.target/aarch64/pr100075.c
! 3557e732429595ae2db1f7874b2453ca  gcc/testsuite/gcc.target/aarch64/pr100518.c
  90ff787e2854382a010cb41d41d74b65  gcc/testsuite/gcc.target/aarch64/pr102008.c
  2b4e17d3d8fabfd5192210873467463b  gcc/testsuite/gcc.target/aarch64/pr102376.c
  8f357d4ccc6a0a50914dfbcfa3ad7dec  gcc/testsuite/gcc.target/aarch64/pr103085.c
*************** e41794101e1163933e295ca13a5ea408  gcc/te
*** 57934,57940 ****
  18f8443138a6fbfd030458bc4aee321e  gcc/testsuite/gcc.target/aarch64/pr103147-9.c
  8afc18c73eec856148e4d2a08bec6bdf  gcc/testsuite/gcc.target/aarch64/pr103149.c
  e047cf533ea7d668ad1746232b7c35f6  gcc/testsuite/gcc.target/aarch64/pr103311.c
! 1e8b4ccb70306d702dfeeec91e11e74b  gcc/testsuite/gcc.target/aarch64/pr103350-1.c
  7ac80b7a4c25415aa8f17143e3348308  gcc/testsuite/gcc.target/aarch64/pr103350-2.c
  d476917b01e1a6ee9c389abac401fcf6  gcc/testsuite/gcc.target/aarch64/pr103523.c
  60105fd77c472b6a7d016a05f7c5918f  gcc/testsuite/gcc.target/aarch64/pr103741.c
--- 61365,61371 ----
  18f8443138a6fbfd030458bc4aee321e  gcc/testsuite/gcc.target/aarch64/pr103147-9.c
  8afc18c73eec856148e4d2a08bec6bdf  gcc/testsuite/gcc.target/aarch64/pr103149.c
  e047cf533ea7d668ad1746232b7c35f6  gcc/testsuite/gcc.target/aarch64/pr103311.c
! 78be93109588c59da9ba088cf006d81c  gcc/testsuite/gcc.target/aarch64/pr103350-1.c
  7ac80b7a4c25415aa8f17143e3348308  gcc/testsuite/gcc.target/aarch64/pr103350-2.c
  d476917b01e1a6ee9c389abac401fcf6  gcc/testsuite/gcc.target/aarch64/pr103523.c
  60105fd77c472b6a7d016a05f7c5918f  gcc/testsuite/gcc.target/aarch64/pr103741.c
*************** de49e9125d6237709299bcc3a1dfd315  gcc/te
*** 57946,57973 ****
  4198cdedd33371d2e34f020137612130  gcc/testsuite/gcc.target/aarch64/pr105549.c
  66431eedd33503252c3b97e921a10d89  gcc/testsuite/gcc.target/aarch64/pr105928.c
  8897115863886cea652a468f3aae6cc5  gcc/testsuite/gcc.target/aarch64/pr106583.c
  d11f9a84e9269478f65c52a7249a2186  gcc/testsuite/gcc.target/aarch64/pr107209.c
  8c8a67e24364ffc97872921358d32983  gcc/testsuite/gcc.target/aarch64/pr107988-1.c
  49e3db98c926a3ebc07b785f4627de36  gcc/testsuite/gcc.target/aarch64/pr108508.c
  a7d8042acc2272e21686f52da76e42f1  gcc/testsuite/gcc.target/aarch64/pr108589.c
  6dc2a87c4e95456d47637c506dfe5b0e  gcc/testsuite/gcc.target/aarch64/pr108601.c
  8caf1b331d1a984045c0427f609a988b  gcc/testsuite/gcc.target/aarch64/pr108681.c
! 431079dfbd3b51852c6cb97aeb2d5d89  gcc/testsuite/gcc.target/aarch64/pr108840.c
  41c34270308784309bf8fd336d044aa7  gcc/testsuite/gcc.target/aarch64/pr108999.c
! c06d3b2030bc06f25071cbc162980592  gcc/testsuite/gcc.target/aarch64/pr109072_1.c
  96db4199e6f01de5b5bc5f1e5545c2e2  gcc/testsuite/gcc.target/aarch64/pr109072_2.c
  7ea78cde4c1f96ae1fb65982d3de9c9b  gcc/testsuite/gcc.target/aarch64/pr109078.c
  60019babe909af068cb1f4a2d3578e60  gcc/testsuite/gcc.target/aarch64/pr109391.c
  dd50619c53872b9c8933625d2bbf1a84  gcc/testsuite/gcc.target/aarch64/pr109661-1.c
  1d12526e542ae9c32b4536013514dfb0  gcc/testsuite/gcc.target/aarch64/pr109855.c
  142d4ede9d3ebb07e8f1ebe726b5f2ea  gcc/testsuite/gcc.target/aarch64/pr110371.c
! 24b8996e0f371f83948a088a2e9498c9  gcc/testsuite/gcc.target/aarch64/pr110449.c
  554742e030772ab3f50ea60a5083284c  gcc/testsuite/gcc.target/aarch64/pr110474.c
! 64eb80f1a7c38ddd0cddacf7ded0bdb2  gcc/testsuite/gcc.target/aarch64/pr110625_1.c
  ef0e3bf9df58bab491d74a6514a2a996  gcc/testsuite/gcc.target/aarch64/pr110625_2.c
  e53a403c5c95647f6b6b8ccf446fc342  gcc/testsuite/gcc.target/aarch64/pr110625_3.c
  56718cd742704660fe90514eb98975cd  gcc/testsuite/gcc.target/aarch64/pr110625_4.c
! 14138ac5a07e8b3c30967b1d1fd7a92a  gcc/testsuite/gcc.target/aarch64/pr112105.c
  f3f6d3e236c744bb128945fb5e3609df  gcc/testsuite/gcc.target/aarch64/pr112406-2.c
  ea64f6f6caa9947f9a065dae92817770  gcc/testsuite/gcc.target/aarch64/pr112406.c
  c83a09a0e16c61674cfbebcc059ceb22  gcc/testsuite/gcc.target/aarch64/pr112573.c
--- 61377,61405 ----
  4198cdedd33371d2e34f020137612130  gcc/testsuite/gcc.target/aarch64/pr105549.c
  66431eedd33503252c3b97e921a10d89  gcc/testsuite/gcc.target/aarch64/pr105928.c
  8897115863886cea652a468f3aae6cc5  gcc/testsuite/gcc.target/aarch64/pr106583.c
+ bb25beab898959fa46790cf240c136cd  gcc/testsuite/gcc.target/aarch64/pr106594_1.c
  d11f9a84e9269478f65c52a7249a2186  gcc/testsuite/gcc.target/aarch64/pr107209.c
  8c8a67e24364ffc97872921358d32983  gcc/testsuite/gcc.target/aarch64/pr107988-1.c
  49e3db98c926a3ebc07b785f4627de36  gcc/testsuite/gcc.target/aarch64/pr108508.c
  a7d8042acc2272e21686f52da76e42f1  gcc/testsuite/gcc.target/aarch64/pr108589.c
  6dc2a87c4e95456d47637c506dfe5b0e  gcc/testsuite/gcc.target/aarch64/pr108601.c
  8caf1b331d1a984045c0427f609a988b  gcc/testsuite/gcc.target/aarch64/pr108681.c
! 9addcf54da99b67253010fe4123bc5ad  gcc/testsuite/gcc.target/aarch64/pr108840.c
  41c34270308784309bf8fd336d044aa7  gcc/testsuite/gcc.target/aarch64/pr108999.c
! 3712baa97538f16451e1d0e35a676730  gcc/testsuite/gcc.target/aarch64/pr109072_1.c
  96db4199e6f01de5b5bc5f1e5545c2e2  gcc/testsuite/gcc.target/aarch64/pr109072_2.c
  7ea78cde4c1f96ae1fb65982d3de9c9b  gcc/testsuite/gcc.target/aarch64/pr109078.c
  60019babe909af068cb1f4a2d3578e60  gcc/testsuite/gcc.target/aarch64/pr109391.c
  dd50619c53872b9c8933625d2bbf1a84  gcc/testsuite/gcc.target/aarch64/pr109661-1.c
  1d12526e542ae9c32b4536013514dfb0  gcc/testsuite/gcc.target/aarch64/pr109855.c
  142d4ede9d3ebb07e8f1ebe726b5f2ea  gcc/testsuite/gcc.target/aarch64/pr110371.c
! dab3b852007bfe93fd20f0f7c36d8e88  gcc/testsuite/gcc.target/aarch64/pr110449.c
  554742e030772ab3f50ea60a5083284c  gcc/testsuite/gcc.target/aarch64/pr110474.c
! 292bab87cb0e0f3e03c6880a3601fe2e  gcc/testsuite/gcc.target/aarch64/pr110625_1.c
  ef0e3bf9df58bab491d74a6514a2a996  gcc/testsuite/gcc.target/aarch64/pr110625_2.c
  e53a403c5c95647f6b6b8ccf446fc342  gcc/testsuite/gcc.target/aarch64/pr110625_3.c
  56718cd742704660fe90514eb98975cd  gcc/testsuite/gcc.target/aarch64/pr110625_4.c
! e3af0bd795d17649537e6da2d8ba4ee9  gcc/testsuite/gcc.target/aarch64/pr112105.c
  f3f6d3e236c744bb128945fb5e3609df  gcc/testsuite/gcc.target/aarch64/pr112406-2.c
  ea64f6f6caa9947f9a065dae92817770  gcc/testsuite/gcc.target/aarch64/pr112406.c
  c83a09a0e16c61674cfbebcc059ceb22  gcc/testsuite/gcc.target/aarch64/pr112573.c
*************** fb47e676224180b04e459251a5e0250a  gcc/te
*** 57975,57992 ****
  12cba4b8ee2e9d41299be00097081971  gcc/testsuite/gcc.target/aarch64/pr113077.c
  de8e78a604e69bc88717147c309e69ef  gcc/testsuite/gcc.target/aarch64/pr113094.c
  e64015aa3333e77e13b230e2bc2580b0  gcc/testsuite/gcc.target/aarch64/pr113104.c
! 63517ba6c866e502a1b2dac09ef3bc42  gcc/testsuite/gcc.target/aarch64/pr113114.c
  87355a60d36c24e61552591804e644e0  gcc/testsuite/gcc.target/aarch64/pr113196.c
  947e939e0de525b188c373b823895f21  gcc/testsuite/gcc.target/aarch64/pr113295-2.c
  642fe82936cfa8f9a1ed358581691f4f  gcc/testsuite/gcc.target/aarch64/pr113356.C
  fe21fc167a8d34db237e8348c2a1fc85  gcc/testsuite/gcc.target/aarch64/pr113485.c
  f12479eade051fc653baa3b9e92457a8  gcc/testsuite/gcc.target/aarch64/pr113550.c
  5c93b32021bd32ca40c9fb5ec6a30f04  gcc/testsuite/gcc.target/aarch64/pr113552.c
! 53dcb523d7488a29fa2eb06ae2e3983d  gcc/testsuite/gcc.target/aarch64/pr113573.c
  5e8481e02f3cfad1b565c1fcf18a51b0  gcc/testsuite/gcc.target/aarch64/pr113613.c
  c3b3090c8cc6b28f90027aceb08f6ad7  gcc/testsuite/gcc.target/aarch64/pr113618.c
  65b79dfa682a9ae7b9e39d7180ffd699  gcc/testsuite/gcc.target/aarch64/pr114196.c
  e95d7302a79bebe0c38e93d641a753d8  gcc/testsuite/gcc.target/aarch64/pr114741.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
--- 61407,61441 ----
  12cba4b8ee2e9d41299be00097081971  gcc/testsuite/gcc.target/aarch64/pr113077.c
  de8e78a604e69bc88717147c309e69ef  gcc/testsuite/gcc.target/aarch64/pr113094.c
  e64015aa3333e77e13b230e2bc2580b0  gcc/testsuite/gcc.target/aarch64/pr113104.c
! 0c0a969f9b4cb1d87cdf711ad64ee112  gcc/testsuite/gcc.target/aarch64/pr113114.c
  87355a60d36c24e61552591804e644e0  gcc/testsuite/gcc.target/aarch64/pr113196.c
  947e939e0de525b188c373b823895f21  gcc/testsuite/gcc.target/aarch64/pr113295-2.c
  642fe82936cfa8f9a1ed358581691f4f  gcc/testsuite/gcc.target/aarch64/pr113356.C
  fe21fc167a8d34db237e8348c2a1fc85  gcc/testsuite/gcc.target/aarch64/pr113485.c
  f12479eade051fc653baa3b9e92457a8  gcc/testsuite/gcc.target/aarch64/pr113550.c
  5c93b32021bd32ca40c9fb5ec6a30f04  gcc/testsuite/gcc.target/aarch64/pr113552.c
! a3303d7dc6b509471d4e18418c9de113  gcc/testsuite/gcc.target/aarch64/pr113573.c
  5e8481e02f3cfad1b565c1fcf18a51b0  gcc/testsuite/gcc.target/aarch64/pr113613.c
  c3b3090c8cc6b28f90027aceb08f6ad7  gcc/testsuite/gcc.target/aarch64/pr113618.c
  65b79dfa682a9ae7b9e39d7180ffd699  gcc/testsuite/gcc.target/aarch64/pr114196.c
+ 88db9b527d6d24f272fa2ecc6aa6a21c  gcc/testsuite/gcc.target/aarch64/pr114674.c
  e95d7302a79bebe0c38e93d641a753d8  gcc/testsuite/gcc.target/aarch64/pr114741.c
+ 63ef009af426deb86b0efef97e0dc7e7  gcc/testsuite/gcc.target/aarch64/pr114991.c
+ d4fcc8bfa27a48a221e199a5e0c405dc  gcc/testsuite/gcc.target/aarch64/pr115258.c
+ 66fd5df571798b50c635d6e8c98d2a43  gcc/testsuite/gcc.target/aarch64/pr115258_2.c
+ 5be568e05190763a7c0d14544106cf94  gcc/testsuite/gcc.target/aarch64/pr115969.c
+ 36f69a8328f489c9897c09325507ffae  gcc/testsuite/gcc.target/aarch64/pr116139.c
+ a6d803116c5502ac93d2caf6f0967b1c  gcc/testsuite/gcc.target/aarch64/pr116229.c
+ aad77ff8d57a3f0e3712d2f32526716c  gcc/testsuite/gcc.target/aarch64/pr116258.c
+ c69e2dc6d322a3ad98f53ae8c628e6fb  gcc/testsuite/gcc.target/aarch64/pr116358.c
+ fa1039c6c3adfc8b0c0bb6ddf70ce21c  gcc/testsuite/gcc.target/aarch64/pr117012.c
+ 6d8eb1d782b4129878e5e08ec9451d5c  gcc/testsuite/gcc.target/aarch64/pr117093.c
+ a5ca6cfb5312a89436fc398835b5c66c  gcc/testsuite/gcc.target/aarch64/pr117186.c
+ 55fbd9f8bf5c2bc39645d3b747bb015f  gcc/testsuite/gcc.target/aarch64/pr117292.c
+ 6e46c51ebd37752df6a951535977718c  gcc/testsuite/gcc.target/aarch64/pr117557.c
+ 45402ac51e2ae003d26ed37573330166  gcc/testsuite/gcc.target/aarch64/pr118348_1.c
+ cc8dc43c5d18de4984503248c86934e4  gcc/testsuite/gcc.target/aarch64/pr118348_2.c
+ 5afea9764e794ec9500d7840136687e8  gcc/testsuite/gcc.target/aarch64/pr119046.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** f9f37ccfc032535c8079deb6b916aca7  gcc/te
*** 58031,58037 ****
  39f4224dd0c729f3e2990c7cc441e6a0  gcc/testsuite/gcc.target/aarch64/pr78733.c
  39f4224dd0c729f3e2990c7cc441e6a0  gcc/testsuite/gcc.target/aarch64/pr79041-2.c
  1074b04062fdbdecea7da7cc9a58423f  gcc/testsuite/gcc.target/aarch64/pr79794.c
! aa2dfd18bc6784e0bc7ee00c3ef8561a  gcc/testsuite/gcc.target/aarch64/pr80295.c
  105bb65b036f134453135d5817cd946c  gcc/testsuite/gcc.target/aarch64/pr81356.c
  03c2d3e09e76becf66ec361f70b99040  gcc/testsuite/gcc.target/aarch64/pr81414.c
  61509ec6c4ac78da70369f76797f43be  gcc/testsuite/gcc.target/aarch64/pr81647.c
--- 61480,61486 ----
  39f4224dd0c729f3e2990c7cc441e6a0  gcc/testsuite/gcc.target/aarch64/pr78733.c
  39f4224dd0c729f3e2990c7cc441e6a0  gcc/testsuite/gcc.target/aarch64/pr79041-2.c
  1074b04062fdbdecea7da7cc9a58423f  gcc/testsuite/gcc.target/aarch64/pr79794.c
! 95c0e3d8e5a0ee0fab92ee4779a8d831  gcc/testsuite/gcc.target/aarch64/pr80295.c
  105bb65b036f134453135d5817cd946c  gcc/testsuite/gcc.target/aarch64/pr81356.c
  03c2d3e09e76becf66ec361f70b99040  gcc/testsuite/gcc.target/aarch64/pr81414.c
  61509ec6c4ac78da70369f76797f43be  gcc/testsuite/gcc.target/aarch64/pr81647.c
*************** f8ddd6b01afffeb3d1d200d82260e62c  gcc/te
*** 58057,58068 ****
  a9e3fa9bf042d9c1c357a23c16f6b387  gcc/testsuite/gcc.target/aarch64/pr93341.c
  25f4d169805c913dc7178cf1e389dc23  gcc/testsuite/gcc.target/aarch64/pr93565.c
  83c9062bbfd307a3487d0d4c3ea11a07  gcc/testsuite/gcc.target/aarch64/pr94072.c
! 2c413e03107f4081d70ac1bbd1c7a79f  gcc/testsuite/gcc.target/aarch64/pr94201.c
  9cfb3b160866ec3ddc9bc343efa6b2e8  gcc/testsuite/gcc.target/aarch64/pr94398.c
  d89f585a7ccbac10cff70c726d0dea2b  gcc/testsuite/gcc.target/aarch64/pr94435.c
  8d8f9b6336f8a3c7534960e50ea4d681  gcc/testsuite/gcc.target/aarch64/pr94514.c
  2e591f3efe065a02e03185695c88bfc3  gcc/testsuite/gcc.target/aarch64/pr94530.c
! c0ad70b450d97246f6f5c07954d99cb8  gcc/testsuite/gcc.target/aarch64/pr94577.c
  1366814bb1b0d8bfd71ff640bd30b0df  gcc/testsuite/gcc.target/aarch64/pr94697.c
  c6eebf3e7952e61593d0c0e9db4a9363  gcc/testsuite/gcc.target/aarch64/pr94748.c
  7f56460afccd09f9dac35acbb8186c34  gcc/testsuite/gcc.target/aarch64/pr95254.c
--- 61506,61517 ----
  a9e3fa9bf042d9c1c357a23c16f6b387  gcc/testsuite/gcc.target/aarch64/pr93341.c
  25f4d169805c913dc7178cf1e389dc23  gcc/testsuite/gcc.target/aarch64/pr93565.c
  83c9062bbfd307a3487d0d4c3ea11a07  gcc/testsuite/gcc.target/aarch64/pr94072.c
! 1a1e57f68c8f83e6aeb729476093f051  gcc/testsuite/gcc.target/aarch64/pr94201.c
  9cfb3b160866ec3ddc9bc343efa6b2e8  gcc/testsuite/gcc.target/aarch64/pr94398.c
  d89f585a7ccbac10cff70c726d0dea2b  gcc/testsuite/gcc.target/aarch64/pr94435.c
  8d8f9b6336f8a3c7534960e50ea4d681  gcc/testsuite/gcc.target/aarch64/pr94514.c
  2e591f3efe065a02e03185695c88bfc3  gcc/testsuite/gcc.target/aarch64/pr94530.c
! d1b81e7ce4c9634df837637b15040e46  gcc/testsuite/gcc.target/aarch64/pr94577.c
  1366814bb1b0d8bfd71ff640bd30b0df  gcc/testsuite/gcc.target/aarch64/pr94697.c
  c6eebf3e7952e61593d0c0e9db4a9363  gcc/testsuite/gcc.target/aarch64/pr94748.c
  7f56460afccd09f9dac35acbb8186c34  gcc/testsuite/gcc.target/aarch64/pr95254.c
*************** c117eaeade3674a6a21013315de55b26  gcc/te
*** 58085,58095 ****
  c45bc47433163208f0aec414ada73705  gcc/testsuite/gcc.target/aarch64/pr99873_2.c
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
  5e9a238ae88bfc957497e635ed104144  gcc/testsuite/gcc.target/aarch64/pr99988.c
! 7647e74954bed1df0b5452c86dc7806b  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
  be30d927e2df67d4fe2786d0d026bbaa  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
! 1802b716a6dff570eaf8df2688efe1dd  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
! 54e13d4176bb90728d042d6d16097346  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
  d38e476730748c653068e7cb2d8d6ca6  gcc/testsuite/gcc.target/aarch64/predefine_small.c
  29e7dbfba15c0f945488b33400b908b4  gcc/testsuite/gcc.target/aarch64/predefine_tiny.c
--- 61534,61544 ----
  c45bc47433163208f0aec414ada73705  gcc/testsuite/gcc.target/aarch64/pr99873_2.c
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
  5e9a238ae88bfc957497e635ed104144  gcc/testsuite/gcc.target/aarch64/pr99988.c
! 6abd9df2e9c6482903f6b17629c288d1  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
  be30d927e2df67d4fe2786d0d026bbaa  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
! 38af83405c4b19363e539e8f2589d817  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
! 5665583c5162a1f3f37fd70cbe7f9809  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
  d38e476730748c653068e7cb2d8d6ca6  gcc/testsuite/gcc.target/aarch64/predefine_small.c
  29e7dbfba15c0f945488b33400b908b4  gcc/testsuite/gcc.target/aarch64/predefine_tiny.c
*************** b6a18fb1ecc9f56b3894553675bc0455  gcc/te
*** 58113,58124 ****
  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
  fd2b51934a9f3b3f1041deacbd4c5429  gcc/testsuite/gcc.target/aarch64/saddw-1.c
  06fac2f51e492eb91f6fdcb6f6baea2f  gcc/testsuite/gcc.target/aarch64/saddw-2.c
  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
! c0725600c63b6165198bcd4488142b24  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
--- 61562,61581 ----
  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
  fd2b51934a9f3b3f1041deacbd4c5429  gcc/testsuite/gcc.target/aarch64/saddw-1.c
  06fac2f51e492eb91f6fdcb6f6baea2f  gcc/testsuite/gcc.target/aarch64/saddw-2.c
+ e1cf0d479bffab78f82341c69892e846  gcc/testsuite/gcc.target/aarch64/saturating-arithmetic-signed.c
+ 0cf97e13723898a49c175153fc0cc6d9  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic.inc
+ 3507e93906bd8eac865d604b5daeb995  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic_1.c
+ bb57d3f13a9bcf5a14ad2dc6527cea68  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic_2.c
+ 65151001c6105e235d6d8525235d8b28  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic_3.c
+ 5e10eb2aee000f456a453bbeb17aba62  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic_4.c
  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
*************** ec1e7259ab590008de3be293d2d948c0  gcc/te
*** 58168,58173 ****
--- 61625,61631 ----
  364cf4fd6ff71dc64e043028de5daf6b  gcc/testsuite/gcc.target/aarch64/simd/addp-same-low_1.c
  cce0e0d17f23232b9c556c2da6266969  gcc/testsuite/gcc.target/aarch64/simd/addsub_1.c
  57c6fccec8c2043eb48a2c0c8d755d91  gcc/testsuite/gcc.target/aarch64/simd/addsub_2.c
+ 57e434af27228fcb7e2c9f0c3879026b  gcc/testsuite/gcc.target/aarch64/simd/armv9p5.c
  6aef5c8c46a252fab1f15291c3545ce4  gcc/testsuite/gcc.target/aarch64/simd/ext_f32.x
  ddc6725ef357d85f1e09e4c10067f0cd  gcc/testsuite/gcc.target/aarch64/simd/ext_f32_1.c
  c1e72dac8ab01a1a17aeec90718b60d2  gcc/testsuite/gcc.target/aarch64/simd/ext_f64_1.c
*************** b9cc14c11e7f00bc0baf65bded51e112  gcc/te
*** 58213,58223 ****
--- 61671,61693 ----
  10eb08326a114bba265a10ef7f717f52  gcc/testsuite/gcc.target/aarch64/simd/extq_u8.x
  fed45a34e01f1c902eebbb4525b2026f  gcc/testsuite/gcc.target/aarch64/simd/extq_u8_1.c
  bb692e50ab2bed2943d200f6f0097d3a  gcc/testsuite/gcc.target/aarch64/simd/facgt_constpool_1.c
+ 84d911840d0946c2a37e0bd02db7732e  gcc/testsuite/gcc.target/aarch64/simd/faminmax-builtins-no-flag.c
+ e21253a0b461c19afa3bd87ea01f5460  gcc/testsuite/gcc.target/aarch64/simd/faminmax-builtins.c
+ 130ed80c2898435d5fc9dfcf66f84214  gcc/testsuite/gcc.target/aarch64/simd/faminmax-codegen-no-flag.c
+ 399d5df3159ff055750df6674198eb73  gcc/testsuite/gcc.target/aarch64/simd/faminmax-codegen.c
+ 44555094578d421e50878e79e956f43b  gcc/testsuite/gcc.target/aarch64/simd/faminmax-no-codegen.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
  f1c9e2aa3c435c9efdc1ea83da4e1eeb  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_2.c
  df08a7f1b91a8c0f914aab7f291c95e7  gcc/testsuite/gcc.target/aarch64/simd/low-high-combine_1.c
  99a09108bd01d3ee4865fd98b8b302bb  gcc/testsuite/gcc.target/aarch64/simd/lowering_tbaa.c
+ 1ac38190a51cc9809d49e9f6c2a922af  gcc/testsuite/gcc.target/aarch64/simd/lut-incorrect-range.c
+ 060c37e72d9cafd6e03a9988b7a1d094  gcc/testsuite/gcc.target/aarch64/simd/lut-no-flag.c
+ 670855cbe72625722e02671619b6566b  gcc/testsuite/gcc.target/aarch64/simd/lut.c
+ eee3684fddf95ff5545c7c4454331e54  gcc/testsuite/gcc.target/aarch64/simd/mf8_data_1.c
+ 7a8dbe7357968ea67da61dae6606ebcd  gcc/testsuite/gcc.target/aarch64/simd/mf8_data_2.c
+ 2f6c6fee34ced3b932053a03d9906520  gcc/testsuite/gcc.target/aarch64/simd/pr117048.c
+ 2797bd4410da16b66ebb2f474c595ee5  gcc/testsuite/gcc.target/aarch64/simd/pr117048_2.c
  f2791d55a2c9ed7182a54a406810cf47  gcc/testsuite/gcc.target/aarch64/simd/pr67896.c
  c4b08114012e09e0f47a84f5e5311441  gcc/testsuite/gcc.target/aarch64/simd/pr97349.c
  46d08ecc25480336a5b22ec204104ec5  gcc/testsuite/gcc.target/aarch64/simd/pr99195_1.c
*************** f2732ebf6d60e1e2af62d1c3dcbeb77d  gcc/te
*** 58232,58238 ****
  7475e85940c2a134de33c563e3ee00fe  gcc/testsuite/gcc.target/aarch64/simd/pr99195_8.c
  9757c9a081cfbd0982adb72632324248  gcc/testsuite/gcc.target/aarch64/simd/pr99195_9.c
  98ad17eba6ed6a47a93dddc98dcba951  gcc/testsuite/gcc.target/aarch64/simd/pr99437.c
! d197b766580d4128e577fdef0836105d  gcc/testsuite/gcc.target/aarch64/simd/simd.exp
  3bdc28b0037a305b18bdc0489c55e433  gcc/testsuite/gcc.target/aarch64/simd/ssra.c
  6cc70e998362cc09840837fba67910d8  gcc/testsuite/gcc.target/aarch64/simd/trn_zip_p64_1.c
  5de7a6e0814e5fb97ee3b61393d07d26  gcc/testsuite/gcc.target/aarch64/simd/usra.c
--- 61702,61714 ----
  7475e85940c2a134de33c563e3ee00fe  gcc/testsuite/gcc.target/aarch64/simd/pr99195_8.c
  9757c9a081cfbd0982adb72632324248  gcc/testsuite/gcc.target/aarch64/simd/pr99195_9.c
  98ad17eba6ed6a47a93dddc98dcba951  gcc/testsuite/gcc.target/aarch64/simd/pr99437.c
! dd466b48732367c2880262c5b79b2cec  gcc/testsuite/gcc.target/aarch64/simd/saturating_arithmetic_autovect.inc
! 2a9a410149981568226fc9f4c571eb06  gcc/testsuite/gcc.target/aarch64/simd/saturating_arithmetic_autovect_1.c
! afa7e585db839996b7ab991a21ae5c22  gcc/testsuite/gcc.target/aarch64/simd/saturating_arithmetic_autovect_2.c
! 7cbbac8dbe2287907bd0801b093e358a  gcc/testsuite/gcc.target/aarch64/simd/saturating_arithmetic_autovect_3.c
! 2be176da8d3444ff6888e3bc9db7c043  gcc/testsuite/gcc.target/aarch64/simd/saturating_arithmetic_autovect_4.c
! 1aabdd6dc849c997417e794557a86100  gcc/testsuite/gcc.target/aarch64/simd/scale_fpm.c
! 9940b0ce32d8e70c5099120a82dde8c8  gcc/testsuite/gcc.target/aarch64/simd/simd.exp
  3bdc28b0037a305b18bdc0489c55e433  gcc/testsuite/gcc.target/aarch64/simd/ssra.c
  6cc70e998362cc09840837fba67910d8  gcc/testsuite/gcc.target/aarch64/simd/trn_zip_p64_1.c
  5de7a6e0814e5fb97ee3b61393d07d26  gcc/testsuite/gcc.target/aarch64/simd/usra.c
*************** da7f2c6a9ac6cc098b186cc69d9c3a5b  gcc/te
*** 58252,58257 ****
--- 61728,61734 ----
  817492194f41f142b7c9d8211189a868  gcc/testsuite/gcc.target/aarch64/simd/vcls_unsigned_1.c
  ff7c70e9974adf531ebcc4d7356efc5d  gcc/testsuite/gcc.target/aarch64/simd/vcond-ne-bit.c
  136e2aed1853b839c8213790c2bbd989  gcc/testsuite/gcc.target/aarch64/simd/vcond-ne.c
+ b7f1600638ad409e30e95b7c2972fad3  gcc/testsuite/gcc.target/aarch64/simd/vcvt_fpm.c
  4bc3f43e5718e59e8d55ed13406ad52f  gcc/testsuite/gcc.target/aarch64/simd/vcvt_s64_f64_1.c
  e2476a0586ca98aa11f51f01fe45d135  gcc/testsuite/gcc.target/aarch64/simd/vcvt_u64_f64_1.c
  97b226ec673ad1b8510e717f1b097b63  gcc/testsuite/gcc.target/aarch64/simd/vcvta_s64_f64_1.c
*************** dd36add81066e4503365ed4a9f1c9150  gcc/te
*** 58262,58267 ****
--- 61739,61747 ----
  a652b7b70ee3d8d31de4c77fd8a4e1e8  gcc/testsuite/gcc.target/aarch64/simd/vcvtn_u64_f64_1.c
  b85188df577a6b8c4ea30329b38769d8  gcc/testsuite/gcc.target/aarch64/simd/vcvtp_s64_f64_1.c
  deca043ed23c518b74a2792701289981  gcc/testsuite/gcc.target/aarch64/simd/vcvtp_u64_f64_1.c
+ fc2250b92b84f70a02d96135f8351b0e  gcc/testsuite/gcc.target/aarch64/simd/vdot2_fpm.c
+ f1058ca0ffd7ecccb3ce52553d6f5e39  gcc/testsuite/gcc.target/aarch64/simd/vdot4_fpm.c
+ 4cca145dde2c0907172578d1c2abfa8d  gcc/testsuite/gcc.target/aarch64/simd/vdot_lane_indices_1.c
  6dbd14fdcf24b2d17c35bdaf069688a6  gcc/testsuite/gcc.target/aarch64/simd/vect_str_zero.c
  316465198cc13e56db13f95b521d5d2d  gcc/testsuite/gcc.target/aarch64/simd/vect_su_add_sub.c
  193aaed5c334d9ba2fa37ff1394c985a  gcc/testsuite/gcc.target/aarch64/simd/vfma_f64.c
*************** a675084fb22386c9d27ff4bd900947af  gcc/te
*** 58294,58301 ****
  402f69c526859444eac69ec5d29715ab  gcc/testsuite/gcc.target/aarch64/simd/vminmaxnm_1.c
  e101fae335b7ee05e94f44945ad9e568  gcc/testsuite/gcc.target/aarch64/simd/vmla_elem_1.c
  d3471e819805085e851c6ef99b412fc9  gcc/testsuite/gcc.target/aarch64/simd/vmla_f64.c
  76bd294b136cfc9375488944eb7f3ba0  gcc/testsuite/gcc.target/aarch64/simd/vmls_f64.c
! 7b488ba6c1f84e266799b037eedc797b  gcc/testsuite/gcc.target/aarch64/simd/vmmla.c
  8d7e8e077c8c3346221716faace17146  gcc/testsuite/gcc.target/aarch64/simd/vmovl_high_1.c
  22cac23569a49d0ec6c6bc3ebf72db5a  gcc/testsuite/gcc.target/aarch64/simd/vmul_elem_1.c
  65169a4470253b75fae29b77e6c97dad  gcc/testsuite/gcc.target/aarch64/simd/vmul_f64_1.c
--- 61774,61783 ----
  402f69c526859444eac69ec5d29715ab  gcc/testsuite/gcc.target/aarch64/simd/vminmaxnm_1.c
  e101fae335b7ee05e94f44945ad9e568  gcc/testsuite/gcc.target/aarch64/simd/vmla_elem_1.c
  d3471e819805085e851c6ef99b412fc9  gcc/testsuite/gcc.target/aarch64/simd/vmla_f64.c
+ a8b10f379704564aaf25a44e323caec4  gcc/testsuite/gcc.target/aarch64/simd/vmla_fpm.c
+ e8e00ebdf00a517334bcbd7dc93d90af  gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c
  76bd294b136cfc9375488944eb7f3ba0  gcc/testsuite/gcc.target/aarch64/simd/vmls_f64.c
! 44eff4409d04a65e347b0814922625ea  gcc/testsuite/gcc.target/aarch64/simd/vmmla.c
  8d7e8e077c8c3346221716faace17146  gcc/testsuite/gcc.target/aarch64/simd/vmovl_high_1.c
  22cac23569a49d0ec6c6bc3ebf72db5a  gcc/testsuite/gcc.target/aarch64/simd/vmul_elem_1.c
  65169a4470253b75fae29b77e6c97dad  gcc/testsuite/gcc.target/aarch64/simd/vmul_f64_1.c
*************** e24e752cdfaae08d96c7ec56c0ef75fd  gcc/te
*** 58629,58638 ****
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  411e73a8b509fa4da979e06198cebf3f  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
  191883f75825c4b0b253a140dcf374ff  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
! 1503b157fa157e3dc4084c112b3beb0e  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
  95e880a9b2777120f2cedeadb9eff8ee  gcc/testsuite/gcc.target/aarch64/sm3_sm4.c
! 9a33b26463f98f9444a5e1f75d08f650  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme-acle-asm.exp
! dcfeda6cc127edc0a2558f8a7efb8f5e  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme.exp
  e046627e0f8358e37a52c4ea2c09170c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za32.c
  46b5156309796ea2ec132aa13a9c04ee  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za64.c
  58031a312276deb6221864eff32899f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za32.c
--- 62111,62120 ----
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  411e73a8b509fa4da979e06198cebf3f  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
  191883f75825c4b0b253a140dcf374ff  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
! 81935ac40bb6d354635fb859f8792c41  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
  95e880a9b2777120f2cedeadb9eff8ee  gcc/testsuite/gcc.target/aarch64/sm3_sm4.c
! e7340d775e637cd1fd52339057fd33a7  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 11a82751114ab25d91efe58bdded564f  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme.exp
  e046627e0f8358e37a52c4ea2c09170c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za32.c
  46b5156309796ea2ec132aa13a9c04ee  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za64.c
  58031a312276deb6221864eff32899f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za32.c
*************** a7d999a2574d1cc57f0543781f520910  gcc/te
*** 58685,58690 ****
--- 62167,62180 ----
  6ca41c0f301e40b5141dc795c89d1981  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za64.c
  c2e981bc8504bd54c6bc37823e964cfb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za32.c
  87bc29ff5f3eca3a41b4e72bb88161dc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za64.c
+ da7e2bf92e718d8da2021eafd533aac9  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
+ 532974f660597daf588ecef6185db04a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
+ 373c270aaf1ee69bec3dd41cd1d65f8e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
+ 4314b56e69f1890f1d546cef2b8a14c5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
+ 837010837414807b52f81c94639779bf  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
+ ceee1cb7e524ecc70b7e706cd0db3292  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
+ 0a0ed47541c6394b9f8d2deb005b177e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
+ 6451ea007056de046b17b3cbcef22912  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
  fcebf3db146b8f53a8f6331baf69fbfc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za128.c
  334e8a5dad4b07c99d66059975c05638  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za16.c
  dec729f0b9203a79ab9190c6ae4dd39c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za32.c
*************** db7ec863bbc5f42e3eaaf7d41c078f60  gcc/te
*** 58695,58712 ****
  954127f6d3b08028a0dbbecea8abaea4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
  6c42cd7108db85285989b01cdfe0ceab  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
  f73c190603e33d11562ee018328fb06d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
! 51fe1ff100a97529ff50e1cdfa4f4df5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
! 05f8708c4c12f406de2089cf37bf90af  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
! 4cfb225b1d4aa772e7e240fc0752a577  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
! 6158db047e21dfef0f794eaaa1d81934  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
! f8dada53e59219879e1222d2fe3ab1ae  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
! 996bbb92a143273e76c7e00eb7af251b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
! d7f554a5c062ed5854bee2de13199617  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
! 7f47048704253b30608855f28c703ff5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
! ea46a7175ec34a07eae85e2422bb2782  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
! 7e0d11228c3bd92d57df156977acba45  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
! 9c1e58d46a866546b3444e3a8caca5f3  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
! 6c9a91485037b596556ccd3de1fdf852  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
  92f3366342aae6b2ec7f6d53be3fe1a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
  4a2c37b58b46cda8f18baebab50b1238  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
  af7a839b3b15a2c2cfbbc10272a15951  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
--- 62185,62202 ----
  954127f6d3b08028a0dbbecea8abaea4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
  6c42cd7108db85285989b01cdfe0ceab  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
  f73c190603e33d11562ee018328fb06d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
! 57473390b86a03f32d83e9845fcd1e8f  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
! 610cf99edd9ae5f40f3a3a69e3efc55b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
! 494c59f5fc641ba1ca278e6162846419  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
! ad3bf5b4426c396c38ad710e89d302ac  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
! 5e7be0532c1cf9a24ceae0d2466cba9e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
! 0122c325c4687b56eab55136cc73671a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
! 9c0d30515c9685ca27aabb6a386b5537  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
! ee35ab070539123bfc539d4170588034  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
! b6285c7698184d8c087dacbadd41f5b4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
! d21f72a1590a30f18e73717e7a20cf48  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
! aff628cd65c21a022877761c02d814f0  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
! a3fa32026373764c9168da8a3c6feb13  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
  92f3366342aae6b2ec7f6d53be3fe1a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
  4a2c37b58b46cda8f18baebab50b1238  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
  af7a839b3b15a2c2cfbbc10272a15951  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
*************** ae1c24c734208ab54ab2b41e77807099  gcc/te
*** 58770,58777 ****
  1e94c17baaf235985865fcc0080d29aa  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
  f75d0405345296dc1bd56b0e3ff06a29  gcc/testsuite/gcc.target/aarch64/sme/clamp_1.c
  467e2d100be80751c5972f0004786b76  gcc/testsuite/gcc.target/aarch64/sme/clamp_2.c
! 01cab72ebda273ac88ba62e6f3b3b525  gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
! cb9e666b97de7d1530cdf6c4d4d9a8ac  gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
  016560dc141726f25baa60ea9a10d721  gcc/testsuite/gcc.target/aarch64/sme/inlining_1.c
  b7da09d0116a503250afcdab67fe911d  gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c
  9a9bfe1438f439a9f23353227722fe31  gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c
--- 62260,62268 ----
  1e94c17baaf235985865fcc0080d29aa  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
  f75d0405345296dc1bd56b0e3ff06a29  gcc/testsuite/gcc.target/aarch64/sme/clamp_1.c
  467e2d100be80751c5972f0004786b76  gcc/testsuite/gcc.target/aarch64/sme/clamp_2.c
! b1a33a791c89383f575f412606f068a3  gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
! 40b2965232972e2440ee8fa61d13b581  gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
! 062d08488f4319f8147d8ea7541765cb  gcc/testsuite/gcc.target/aarch64/sme/clamp_5.c
  016560dc141726f25baa60ea9a10d721  gcc/testsuite/gcc.target/aarch64/sme/inlining_1.c
  b7da09d0116a503250afcdab67fe911d  gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c
  9a9bfe1438f439a9f23353227722fe31  gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c
*************** bbf6f844429d0a09aa8e59fff5c21e3e  gcc/te
*** 58797,58805 ****
  df9a1b5d24aec3bc8a0ef502ec0a64b9  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
  9e8c955b1919174497153e1d3013fee2  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
  1e34a9aa245aab348a971503bc5835f8  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
! 0373341714db841a3c860cbd655625fe  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_4.c
! 93bae5f8e7e98d08018a7b8c114d3d6c  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_5.c
! 14e8f4e8dfc80d7bf98c1533e6c560ff  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_6.c
  cea477cbfc0138870da19d13a6f78a5c  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_7.c
  b4e79a733b5f7121eaeed1af03f9454b  gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
  e1bebbe2531d4c2ec4fb9cfa4437f1cb  gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
--- 62288,62296 ----
  df9a1b5d24aec3bc8a0ef502ec0a64b9  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
  9e8c955b1919174497153e1d3013fee2  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
  1e34a9aa245aab348a971503bc5835f8  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
! 22fd87add17434b6187df796a3049a4e  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_4.c
! 82a3cecab61caec3898c65f70b69ae31  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_5.c
! 7f0a2bc5b5ada7add64168ea0a4c5b53  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_6.c
  cea477cbfc0138870da19d13a6f78a5c  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_7.c
  b4e79a733b5f7121eaeed1af03f9454b  gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
  e1bebbe2531d4c2ec4fb9cfa4437f1cb  gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
*************** fdf31615d4c23a6cda30ff2ff1493fcd  gcc/te
*** 58812,58825 ****
  5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
  c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
  b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
! 197d088cac6259805e5e00b6ddfcd879  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
  9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
  fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
  45b9f575f027140925fc936c8d30534d  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_4.c
  85e1850960c61207c9a4cb5dd8e69598  gcc/testsuite/gcc.target/aarch64/sme/strided_1.c
  81a779484b0f043efbd99f738c1c27e6  gcc/testsuite/gcc.target/aarch64/sme/strided_2.c
! 979334c69a2f8eed619a5a0284b37a61  gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
! a5610f22b8f865667ffebce563c88521  gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
  9cb16862a1478383d8cdf3203c2ad706  gcc/testsuite/gcc.target/aarch64/sme/za_state_3.c
  7a60cf4da2ff4c6d7086ae2a36cf1ab5  gcc/testsuite/gcc.target/aarch64/sme/za_state_4.c
  87835961d5d73ad50d96a3f254bcb7ae  gcc/testsuite/gcc.target/aarch64/sme/za_state_4_scp.c
--- 62303,62317 ----
  5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
  c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
  b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
! c7c73b255f9579fb4fca5284ec152e31  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
  9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
  fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
  45b9f575f027140925fc936c8d30534d  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_4.c
  85e1850960c61207c9a4cb5dd8e69598  gcc/testsuite/gcc.target/aarch64/sme/strided_1.c
  81a779484b0f043efbd99f738c1c27e6  gcc/testsuite/gcc.target/aarch64/sme/strided_2.c
! 17f57366ae96098a6106a08fee3c113a  gcc/testsuite/gcc.target/aarch64/sme/vect-dotprod-twoway.c
! 8407173ad5e045d566b3ad3b276c2220  gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
! 001528ebc32cd58be9e86043b015f138  gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
  9cb16862a1478383d8cdf3203c2ad706  gcc/testsuite/gcc.target/aarch64/sme/za_state_3.c
  7a60cf4da2ff4c6d7086ae2a36cf1ab5  gcc/testsuite/gcc.target/aarch64/sme/za_state_4.c
  87835961d5d73ad50d96a3f254bcb7ae  gcc/testsuite/gcc.target/aarch64/sme/za_state_4_scp.c
*************** f5392df0161b11a2eb084fecc3cb5f73  gcc/te
*** 58832,58838 ****
  bebea6bca886ddb2b04f3e5d8cdcc37b  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_4.c
  5894e562761e4a9c0970a6c20c035cbe  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_5.c
  33b81e9b83c7b38a981495a49f1aa0c2  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_6.c
! d15056f4c9481ef024af18a010af1310  gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
  d73f575123ea1f8b210a85a05740e038  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x2.c
  0ec44768bb670ac528e5ac9f2472ec65  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x4.c
  c6877c6031b0b3cea72f4c67ff127e64  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s32_x2.c
--- 62324,62330 ----
  bebea6bca886ddb2b04f3e5d8cdcc37b  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_4.c
  5894e562761e4a9c0970a6c20c035cbe  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_5.c
  33b81e9b83c7b38a981495a49f1aa0c2  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_6.c
! 429a57e4afb8d8ac413b1304c5fff072  gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
  d73f575123ea1f8b210a85a05740e038  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x2.c
  0ec44768bb670ac528e5ac9f2472ec65  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x4.c
  c6877c6031b0b3cea72f4c67ff127e64  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s32_x2.c
*************** b06d418c39c13e7e524f7d68d7e896e0  gcc/te
*** 58857,58862 ****
--- 62349,62358 ----
  51e6c26ce329524338f1a4429eda9b03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_s64_vg1x4.c
  bbf4543e6bd57c651ab5160541c67546  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_u64_vg1x2.c
  10de2d035cc94d6e5417eb0a9873cecc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_u64_vg1x4.c
+ b69a1d2133c47b0be610b6421bbf68f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za16_bf16_vg1x2.c
+ d87ec37cb68bffb20e46cfc7d8486a78  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za16_bf16_vg1x4.c
+ 38562217e383f899a1963707297e1074  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za16_f16_vg1x2.c
+ 9649c5b317feea7f7e358f7253307e82  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za16_f16_vg1x4.c
  3d9af9b7b10ef1d94ad2618630b90aba  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_f32_vg1x2.c
  f3273ba112cfcaba65be81d70f68777f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_f32_vg1x4.c
  561074b5bf2789694e9dc4bc995bcd8f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_s32_vg1x2.c
*************** af0c9bfd94289339a9a89b18b0914058  gcc/te
*** 58869,58880 ****
  c803cc21302ec827d923660d7eb5e3c3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_s64_vg1x4.c
  c51004424d10e799288e22af07498fb2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x2.c
  426a8a4dcae7a2798501404234b1c876  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x4.c
! 3d652db9596cef362f7c39c6b17e7bc9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
  63d1cbaa5c0d97381df956921930ebc8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_lane_f32.c
  e78d7953d4a32db3c0601bb046b7e3ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_f32.c
  7f1363ccca494cfa99fbbdef54a415cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_lane_f32.c
  04287e0e2960398e60d1d3532547a685  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmopa_za32.c
  b4eb3b683cde7a473091f3e0fa47a451  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmops_za32.c
  25870d2698fec1b63c277d4aeb58ffb7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16.c
  48fc559886a97ae29a048dcd3501a36d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x2.c
  92b07f461417f9cf7aaa7e7eab47bd35  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x4.c
--- 62365,62378 ----
  c803cc21302ec827d923660d7eb5e3c3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_s64_vg1x4.c
  c51004424d10e799288e22af07498fb2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x2.c
  426a8a4dcae7a2798501404234b1c876  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x4.c
! f8d8aaffa00b9b5a5a44792d09e55495  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
  63d1cbaa5c0d97381df956921930ebc8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_lane_f32.c
  e78d7953d4a32db3c0601bb046b7e3ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_f32.c
  7f1363ccca494cfa99fbbdef54a415cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_lane_f32.c
  04287e0e2960398e60d1d3532547a685  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmopa_za32.c
  b4eb3b683cde7a473091f3e0fa47a451  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmops_za32.c
+ 9e092a0e7018580475e11ad5b8e492dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_bf16_x2.c
+ e971d5fe7013f167c6f49e0e93f2bf4a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_bf16_x4.c
  25870d2698fec1b63c277d4aeb58ffb7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16.c
  48fc559886a97ae29a048dcd3501a36d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x2.c
  92b07f461417f9cf7aaa7e7eab47bd35  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x4.c
*************** ea6b477b8cf868d82f7b4020fc3d99e3  gcc/te
*** 58906,58911 ****
--- 62404,62410 ----
  1c4ff89461fab497d187455c1dfe2532  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cntp_c8.c
  85117d9d7b5986492a8cb5406cd0a218  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_bf16_f32_x2.c
  7715c73d8155a0e7612f35550c33f95c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f16_f32_x2.c
+ ba056a05a11764def1104c2563563d51  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_f16_x2.c
  3c65346684f49a180e041092ba2c0bc9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_s32_x2.c
  bd74662fa87765674d154ca63c69e837  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_s32_x4.c
  0c4515c5440fafeba33404df47d694f9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_u32_x2.c
*************** cd04bfeb885395f8141a5eb5e79d513b  gcc/te
*** 58914,58919 ****
--- 62413,62419 ----
  5da06bb8e1f77e628372e25b0a9a48e8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_s32_f32_x4.c
  f8cd4f07fb93f3045ab21c993af3b464  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_u32_f32_x2.c
  bfad1ade50c6407affa0bb57d100e232  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_u32_f32_x4.c
+ 448d818556f26c9c1fe377c6c26e3826  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_f32_f16_x2.c
  c7e70850df6204b80a6eb2a595dde2c5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_bf16_f32_x2.c
  8fb32ef3a80092caff5869318f4a26ea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_f16_f32_x2.c
  6d2e06bbf42e9a73d30281a2ef54d819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_f32.c
*************** a7ed33896e6accd40476f6c3a3000da7  gcc/te
*** 59055,59060 ****
--- 62555,62562 ----
  5bdcbd15da35208161edfeec7296040e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u32_x4.c
  26177008a47686942e686fdc194b8dc0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u8.c
  be9d746071f4821a7158f9380f767af3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u8_x2.c
+ 45e3d384163cb2e3395b26c51ff99187  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_bf16_x2.c
+ 32910766a5dd3a734de320d62f43032d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_bf16_x4.c
  aa59d15b3e0053a69d3cf6d5148eeb58  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f16_x2.c
  d2b449112798f452538aaa6d9d68e2ef  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f16_x4.c
  8f22c4453d69ce3aef7642f915eb95f9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f32_x2.c
*************** b77e8ff365c0464109c5e52354de540d  gcc/te
*** 59077,59088 ****
--- 62579,62594 ----
  c41e8aad99d8188df58b36208943cc83  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u64_x4.c
  de5953db175924ce323d2f3d739e6bb7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u8_x2.c
  7e01e9a01488a1c75443ad5a8de13497  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u8_x4.c
+ 070682ff2d6a63fd7f9e6cbb2249c215  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_bf16_x2.c
+ 5373286fd0dfba79c892a5119833565c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_bf16_x4.c
  dc314222dc324c11ebddc8a03a37d5a5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f16_x2.c
  510c2b9ccac2e8fa2494b332eec35cfc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f16_x4.c
  72b55ceb56cecb74461a8a3d19bf56d3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f32_x2.c
  777a48311d36346e5266051e2245b226  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f32_x4.c
  db0f81ede12765ccb2ffce5946bc89cc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f64_x2.c
  e76f9a59298ed9d2e48a443dae6d4775  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f64_x4.c
+ 54c978456fb146d8ea0870aa9332667e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_bf16_x2.c
+ 16eeeadab1e51d5c8b3da5e61510f995  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_bf16_x4.c
  25b83fde01179389c2130642eb6ba06a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f16_x2.c
  f123c18b8420c4af69bc4058f7d78a5c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f16_x4.c
  f29840b1f674f915460871cc5a944e48  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f32_x2.c
*************** adfa8df1e627fe3703e465650d46b4ea  gcc/te
*** 59105,59116 ****
--- 62611,62628 ----
  83edac8025fd8892853abe3d5bb2c7fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u64_x4.c
  73f60afb809a538496b5d6aa3f2a536a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u8_x2.c
  62e7116c874d97b5fbbed714059e2b70  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u8_x4.c
+ 0fccd5f11137f999b27edde200bab905  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_bf16_x2.c
+ d68e578fe113a36a2c40afda6069e11f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_bf16_x4.c
  e2db2141e1cc92ceb4248ec38c1f89e9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f16_x2.c
  2263d4251c4844c650616c4ae914f3c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f16_x4.c
  34292febbbb84c5f0d7050e952f90f76  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f32_x2.c
  df38a8fca585da7748386987d5318b98  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f32_x4.c
  1db3206fd1325e76d9f1570c97268ce9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f64_x2.c
  556e47d2b736adb60f0776f4d7cf0c45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f64_x4.c
+ c3095abbff4813fdbbc4af601f3e18be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_bf16_vg1x2.c
+ f6c6261445ca03794ee88bd5fe4e102d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_bf16_vg1x4.c
+ e13ec97daa72e0d674745a283b563c2e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_f16_vg1x2.c
+ 399a3638115c152685f9e54a69497a60  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_f16_vg1x4.c
  7ae4063210d14f310f6f95db01e453dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x1.c
  24cb4f847a696ca1b06cb8da5503b552  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x2.c
  5c2f30d5d657a7b2249b627d61ddfce4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x4.c
*************** cca51f3166bf6ff1e129faabb426bc88  gcc/te
*** 59139,59144 ****
--- 62651,62660 ----
  05047aeb78011a8984d27b639b9db8c7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x1.c
  286cfd5b842eec8c122ea85aef24f747  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x2.c
  c6255fa319a4b66adeb3cb556740ea16  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x4.c
+ 4593cb53bb8abc5ab84a006fa7791267  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_bf16_vg1x2.c
+ df4e9f9047e6d09c268d1da7cb6a25cb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_bf16_vg1x4.c
+ 5fb620e13172c73f7a0223357e11ee77  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_f16_vg1x2.c
+ bd18151ffd4da63138937740d08ded75  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_f16_vg1x4.c
  1f5d6bdd4afc26adb52d3a299310f35a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x1.c
  4c319085edcace1f9e1340d39115be32  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x2.c
  1066940c95d6c281241572b5d74cc742  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x4.c
*************** fd4022103946c61a6b74cf76750c4f29  gcc/te
*** 59167,59172 ****
--- 62683,62692 ----
  8943f1fb7cb2157e703401feae1cb834  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x1.c
  69a4129029bde480b1cb431ed599bfb3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x2.c
  639953a0bcbdce7eb98d41a41b17ce86  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x4.c
+ 2d06acf05bcb429fa4ce554671e20fd1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za16_bf16_vg1x2.c
+ 53092b46730fb0ad5bfbc380bf2c0f9e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za16_bf16_vg1x4.c
+ 50a6c4f0c323b1802971ea36b4ddeb68  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za16_f16_vg1x2.c
+ 1c19194cdd7e68b9ad47ceaf8ec58b3d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za16_f16_vg1x4.c
  bdc23a7bf0d381fe05b3fc7abe289607  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x1.c
  aed43f91b76f78f7a4562bef39e41f2b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x2.c
  061ae0f4254908447f3240c771d3bc71  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x4.c
*************** f2d1481cb4a64a0ad5180608791fe08e  gcc/te
*** 59195,59200 ****
--- 62715,62724 ----
  5fa96eb60681d7b2fdfe6d2c5af9416b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x1.c
  8b6e38b1b5958301c8cfee7e41825e4c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x2.c
  6a36368afd63005845d421be32ba7dae  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x4.c
+ 7260e9e537b32419f60f0fc1f401bca0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za16_bf16_vg1x2.c
+ 9abec302b722d53eb2a4eefd5b0f7906  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za16_bf16_vg1x4.c
+ 4bfc9b9df6a125b573592f22e2e3acd6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za16_f16_vg1x2.c
+ b4e4d00a2c106c2cdede4109a2611de0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za16_f16_vg1x4.c
  02981ec78f196f781bbd787dd188ef84  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x1.c
  9fadc733eb21f3c80331447a6c73c98e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x2.c
  2874561b8ea5760b3692b1a979c6a705  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x4.c
*************** b859a5f522518a13c1400caaf256ce86  gcc/te
*** 59223,59247 ****
  16b1e7c3885bc868c311e63021451b39  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x1.c
  08306410971afaae63e63dc395032c7b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x2.c
  090c16bab9987cd4bc26adb3356930e5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x4.c
  03b18bc928708b61d9b4f0973cf53572  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32.c
  676a036c6c3b39dc99d832f1dcf5d10a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mops_za32.c
! 0bbde403efac3e44679135e8a2d25843  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c
! 8eafa44cc696b9c25c68917210dfb25e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c
! ca309ebe63506eb3eac158f5e2724fed  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c
! 102b5347bdabdf901f8c1ebed59cb155  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c
! 08a26b9d3a11bb43e63fc3a426d8ec89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c
! d7732f10cc28bc212eff13af8a30a3f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c
! eef19f1f1f1b19ee7bba33069190fae9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c
! e8991db6af6e2eb3cd20c4b57b29e67d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c
  64aa0bc1ee3bcffb38a58a0cb13e2c01  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pfalse_c.c
- fb9049fc6fe8f1562670aa10ec1999bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b16.c
- 017e86ebb117ebc2f6b879e5f8dfff6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b32.c
- 7916a44ab5f48bcef419e9d18e1b58d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b64.c
- c8401fde1bce8d36982076e9f737c21c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b8.c
- 97bb5b3aa756a6b6b66de165127bf821  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c16.c
- da1cc3c94f35b2d6261b09be3cd12502  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c32.c
- e77abd1a50800f21341d7e427bc08746  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c64.c
- e39516b0373133a54a58a2820cd6b1aa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c8.c
  44de5c73072b851153d18b3a5843b72c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c16.c
  9847e3e63b4516d7b21ef5cc4ec47036  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c32.c
  83337c441834a4abe1ee10837c4a7996  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c64.c
--- 62747,62767 ----
  16b1e7c3885bc868c311e63021451b39  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x1.c
  08306410971afaae63e63dc395032c7b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x2.c
  090c16bab9987cd4bc26adb3356930e5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x4.c
+ c091c392e56d14660855417449ab33e2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za16_bf16.c
+ 91ed2471cfe6d25d0e4d25f8fca852c1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za16_f16.c
  03b18bc928708b61d9b4f0973cf53572  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32.c
+ b6770baead4ef6d2ad8473d82e4b2e81  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mops_za16_bf16.c
+ 981b29c5834eb757a99c1c7f0c4f227b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mops_za16_f16.c
  676a036c6c3b39dc99d832f1dcf5d10a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mops_za32.c
! 1bd058819a98a2bb24793b63bef8055a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c
! 3dd427493b752d8f7e1b1194a95082e9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c
! 0af095bf34c3ea37bc43a6a2ad37f2c7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c
! f7bea38884dc2d8ecf3431e828571d4b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c
! 620b6d01ee690b410f54dc2d707252b9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c
! ed35d36703df8cb763db2230d363b93c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c
! 01549aaf4c66685a7ab54e52ea2a2743  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c
! f83198118dc1ab8d04039084aac0e10f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c
  64aa0bc1ee3bcffb38a58a0cb13e2c01  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pfalse_c.c
  44de5c73072b851153d18b3a5843b72c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c16.c
  9847e3e63b4516d7b21ef5cc4ec47036  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c32.c
  83337c441834a4abe1ee10837c4a7996  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c64.c
*************** da5383a278d11964e3e04cdc3435cf1e  gcc/te
*** 59314,59319 ****
--- 62834,62872 ----
  8a4e55c7aacf430f54a254c660be21be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x4.c
  b22e09dc2304b99136b2635940337653  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x2.c
  d39be755ae823d8dda870622ad8a7a85  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x4.c
+ 002cbd966833bb2da59dc4595407ec6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za128.c
+ fb75928c85918aa3bc6e0d7065cf6296  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za16.c
+ 3587a4c7626b2a99f652edf16d82b4ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za16_vg2.c
+ e44ceaea1bbb30e75fad95749258c657  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za16_vg4.c
+ a8165fab20568f14f9e396537d5be184  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za32.c
+ 2f5e76dc139093454e06c65f7cacc560  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za32_vg2.c
+ 14467d0d7eca3d44ae3579ab0239756b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za32_vg4.c
+ fd4505a0abee8ebd774f239864b6a592  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za64.c
+ 7195f0b99afd0985cf7d1e9e39136b61  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za64_vg2.c
+ a20a66bb2333ac0f59f731ff8a9605fe  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za64_vg4.c
+ 2a1e0e8c84a6efc43e977b137a126c25  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8.c
+ 287db7a2615aa49e04dfa3351a50e31a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8_vg2.c
+ 1ef90c79ec99c01cc3896b8d73c17321  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8_vg4.c
+ 89f22553bab2ee6b16e940517d6f545a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za16.c
+ f58d944fc2b011df7ed3534ab25b9374  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za16_vg2.c
+ b9594a4cea09c897d9158037471e4f87  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za16_vg4.c
+ cd572814ad158b1f710c91b74682938f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za32.c
+ 1b41c1495ed9a00ff4c5d73d1b227519  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za32_vg2.c
+ ae3dd455ea91da6374e11e1135e760ec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za32_vg4.c
+ 112acd1801adaed421425f33827f8ae4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za64.c
+ 06dc3d639fec6539a4a4691ca62a5ba8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za64_vg2.c
+ 5b86781d94fe61ccafdb12f29b856ef7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za64_vg4.c
+ 216f6deeefa785ccb8bd6ca4ad726342  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za8.c
+ 9d397823b676203892a12e6c6402cdb1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za8_vg2.c
+ 2ef525487ed0a56b805279471e912288  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za8_vg4.c
+ 28544aecab99091153dfcf6917983795  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za16_vg1x2.c
+ 424af1d292ce12761368d8436b688861  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za16_vg1x4.c
+ 90fb2e07c761b130bc70625873aa112f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za32_vg1x2.c
+ 680617fb074362f26464aa5d0fa7b9f3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za32_vg1x4.c
+ 911380c71c3ccf6fc753ff0b41e500f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za64_vg1x2.c
+ acf3b5ea17fc1c9cdb3b8e341d656b31  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za64_vg1x4.c
+ f5c4983d29790dbc013bf696cdc0f1ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za8_vg1x2.c
+ b4d964a09f51b06942b06dbdd0199906  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za8_vg1x4.c
  8eb8e54b291746afdae2c763373bc24c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rinta_s32_x2.c
  4a0dbc26c94da78f79fa916e04b827a1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rinta_s32_x4.c
  975affd81f1281fbd96bf761df994a0a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintm_u32_x2.c
*************** fc08dc0a2444536f3a351a093d9d39f5  gcc/te
*** 59419,59424 ****
--- 62972,62981 ----
  3a02873e2efb00b3816c13208a56f6d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_s64_vg1x4.c
  88b246b75f7448f03e2d3d8644ce240c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_u64_vg1x2.c
  c800827fa23147ff5d1fcf5d58170b8e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_u64_vg1x4.c
+ 4ad2b3959a1356f46b4bf2bb744f7dfd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za16_bf16_vg1x2.c
+ 77b386332cffe8e1db67333e3fbf6ce5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za16_bf16_vg1x4.c
+ eaab086cf12b65ae2f4002884bdaafb6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za16_f16_vg1x2.c
+ 9e05e28c8ead1c473bb4b9493cd3ef15  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za16_f16_vg1x4.c
  c8aed0c97520f84c42460c7d1f6f0997  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_f32_vg1x2.c
  1a2c2e81ddb807a510794a77d7683d5f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_f32_vg1x4.c
  55aaa04d1f58a7656837f81c1c6dbf75  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_s32_vg1x2.c
*************** b2f8974228ba195e65552b8de779565a  gcc/te
*** 59566,59571 ****
--- 63123,63136 ----
  35d20bc558182139cae7d1d2a122f1a6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x4.c
  20130e8914f7deef7673f29599e5e145  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za8_vg1x2.c
  2887fc8a9d4cfa36256570c431ba2395  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za8_vg1x4.c
+ 555dd4622645b4b08675c8137adba80e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg1x2.c
+ 8e50f5f40e5ef56105e6ddd4b9b0a401  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg1x4.c
+ b839bb37992e38d4812ce2811ce0868c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg2x1.c
+ cdec18a0fd01fed1383c4970b4e8f545  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg2x2.c
+ d6d7da07aa42ac53e6a866e8b66134a8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg2x4.c
+ bb698f281f49d24d82545e4bbb1f5a81  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg4x1.c
+ e1ebb5d698e73b8a1d0e439b7f02421c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg4x2.c
+ 29c17f44cf84c4e1e8b95a26581aa21c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_za64_vg4x4.c
  842b1d58ad5d1ee560321b461b8733b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_zt.c
  eca7c47d351d1df09e7298c0b939ea51  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_bf16_x2.c
  bfc407ea5205c6326abd5adf44a321d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_bf16_x4.c
*************** c68ee619bc3c37e942d8eace0a031777  gcc/te
*** 59629,59634 ****
--- 63194,63200 ----
  70b2ae1264b0f7a4453295c7fe4c8267  gcc/testsuite/gcc.target/aarch64/spellcheck_8.c
  a46814c3bbb80f28f41416dd8d256e04  gcc/testsuite/gcc.target/aarch64/spellcheck_9.c
  ab9816f0fa89b01232ba9f7ffc945eb7  gcc/testsuite/gcc.target/aarch64/spill_1.c
+ 44326844ef221b9a41c3d52c1c92fb2b  gcc/testsuite/gcc.target/aarch64/sqrt_div_float16.c
  629a0fab295e3148bdcbcb6e3dff688f  gcc/testsuite/gcc.target/aarch64/ssadv16qi-dotprod.c
  88329a328a41e05702fc92b943fbf480  gcc/testsuite/gcc.target/aarch64/ssadv16qi.c
  512465aa769914ac35eb1d0a4232a211  gcc/testsuite/gcc.target/aarch64/sshr64_1.c
*************** ab9816f0fa89b01232ba9f7ffc945eb7  gcc/te
*** 59636,59651 ****
  e6c55af3adf3650fb4b27beafb000634  gcc/testsuite/gcc.target/aarch64/stack-check-13.c
  fac6f931983e67baa339968698f4c2e5  gcc/testsuite/gcc.target/aarch64/stack-check-14.c
  609f20baadbd661d2a0f815cf84a41e4  gcc/testsuite/gcc.target/aarch64/stack-check-15.c
! 9bde08c3fc490b47e8fb59fb3a896c6d  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-1.c
! 5fd1aa076f8343bb80f014abf9ee051a  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-10.c
! 84bb48e20d7c7847ab17ded3b22392c5  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-2.c
! 9c865b4f05863034089a5e6c6d510101  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-3.c
! 31f73794da28f753e8ef90607ecbc7ac  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-4.c
! b17c70da0c3d506674333cc6434eaa11  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-5.c
! 79f9850fce618d0a0595c72beeae4065  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-6.c
! a39fffcb877f065fdd23dfa57eee91ff  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-7.c
! 863c1d4981653714d2c83be7c8ca2380  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-8.c
! 45b4c2bf6fb81a430d8f6727b9f34006  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-9.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/aarch64/stack-check-alloca.h
  223977e4450d22425c3f32311d353183  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
  98bf4582988e92904b41701cbd198690  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
--- 63202,63217 ----
  e6c55af3adf3650fb4b27beafb000634  gcc/testsuite/gcc.target/aarch64/stack-check-13.c
  fac6f931983e67baa339968698f4c2e5  gcc/testsuite/gcc.target/aarch64/stack-check-14.c
  609f20baadbd661d2a0f815cf84a41e4  gcc/testsuite/gcc.target/aarch64/stack-check-15.c
! d447c833fee35e8078d852b195c1d749  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-1.c
! bc0af67af458aca86ce03de92597c9c6  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-10.c
! 145be4e0cbc85075624ec21c983e888f  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-2.c
! 0299663658f115365d40f6e4e7999968  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-3.c
! 7aa3a3034a426180cae4c1627a06c843  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-4.c
! 0fb05b51a3ae613e1f96babcae8fe484  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-5.c
! 96a1455a1331b0059bb4e8dc6159b3b5  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-6.c
! 91ba7eb7af7fb8b963a62ffb0fd293ec  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-7.c
! c5f92c7a2801be1bab41a43d8d71035f  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-8.c
! ac15011ef40a8d53e25e96c36de1b7bb  gcc/testsuite/gcc.target/aarch64/stack-check-alloca-9.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/aarch64/stack-check-alloca.h
  223977e4450d22425c3f32311d353183  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
  98bf4582988e92904b41701cbd198690  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
*************** bc1fbefe895b54cedd688127c53b9660  gcc/te
*** 59702,59707 ****
--- 63268,63274 ----
  617526aa28f7016cf63f429b1fa2a701  gcc/testsuite/gcc.target/aarch64/strcmpopt_6.c
  4852e4b5dd0648ee3fc8c4af6feb5483  gcc/testsuite/gcc.target/aarch64/struct_cpy.c
  adb1c4e7d709c64ebafff36700e610bf  gcc/testsuite/gcc.target/aarch64/struct_return.c
+ cfdb5fae3aad45f74dc7a204e8afddb8  gcc/testsuite/gcc.target/aarch64/struct_zero.c
  49024de201ed5116d85217d7038dead6  gcc/testsuite/gcc.target/aarch64/subs.c
  834e46ea541b400f3d3b542aec361454  gcc/testsuite/gcc.target/aarch64/subs1.c
  16dce9591d585c221f8f8466df8e75ab  gcc/testsuite/gcc.target/aarch64/subs2.c
*************** b80ee08d736c3560f1d085793990beb9  gcc/te
*** 59712,59726 ****
  36962347e800d070719d9e332d214821  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_1.c
  b135579ce681e74c80f319482fde80e7  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_2.c
  2b1fdf8217ead1442009059ae002c033  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_3.c
! 1bb97dbe28cf8f13b0118299675f2af7  gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
  346c3c2a2e315fe0b70bad7df18688e3  gcc/testsuite/gcc.target/aarch64/sve/abd_1.c
  1b1f81a7e1450f6036dfd4713376f464  gcc/testsuite/gcc.target/aarch64/sve/abd_2.c
  75061c73bf9e3e7af02ff8d8457f5512  gcc/testsuite/gcc.target/aarch64/sve/abd_none_1.c
  05c156b14aa112cd2807bc4eb133fafd  gcc/testsuite/gcc.target/aarch64/sve/abd_none_2.c
  18ebbc8e9de1d2ee5d54133da671b995  gcc/testsuite/gcc.target/aarch64/sve/abs_1.c
  c22dae91839f97ca3a67c8adecac4433  gcc/testsuite/gcc.target/aarch64/sve/accumulators_1.c
! b98ddfbbcc564e1c915c4446888a0924  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! fe06392010356470a1341513e9216d55  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
  5af3b7c813a2126358fb53676638d8da  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f16.c
  09f3e49bc58aec25be5fa56dc68049c3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f32.c
  eae3da841383db23699205bd452a2c20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f64.c
--- 63279,63293 ----
  36962347e800d070719d9e332d214821  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_1.c
  b135579ce681e74c80f319482fde80e7  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_2.c
  2b1fdf8217ead1442009059ae002c033  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_3.c
! befdc4cc687c7d720c714d86d00e710c  gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
  346c3c2a2e315fe0b70bad7df18688e3  gcc/testsuite/gcc.target/aarch64/sve/abd_1.c
  1b1f81a7e1450f6036dfd4713376f464  gcc/testsuite/gcc.target/aarch64/sve/abd_2.c
  75061c73bf9e3e7af02ff8d8457f5512  gcc/testsuite/gcc.target/aarch64/sve/abd_none_1.c
  05c156b14aa112cd2807bc4eb133fafd  gcc/testsuite/gcc.target/aarch64/sve/abd_none_2.c
  18ebbc8e9de1d2ee5d54133da671b995  gcc/testsuite/gcc.target/aarch64/sve/abs_1.c
  c22dae91839f97ca3a67c8adecac4433  gcc/testsuite/gcc.target/aarch64/sve/accumulators_1.c
! 1cc6062169e66cc10516995bf6c0c55f  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 25915819025444975830fc56bd73813e  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
  5af3b7c813a2126358fb53676638d8da  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f16.c
  09f3e49bc58aec25be5fa56dc68049c3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f32.c
  eae3da841383db23699205bd452a2c20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f64.c
*************** cf55563cd90b12877d56dd29c1ec4e43  gcc/te
*** 59739,59756 ****
  60976c1cb7f0fc5f5a1f3518a84c0bd8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s32.c
  70d7667e26491bc10cda530ca9a5155c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s64.c
  82f7a89e2496c6d6a5cf5f32ed8b592e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s8.c
! e5e99614e9bed3d2c303920f2a132ca1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f16.c
! 6bbc2b83c4c173946ca7f5f585c06a1d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f32.c
! bcf04548406c42ab039aac5e8080c5d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f64.c
! f9839a1a7f25ac17ee2cf1deed28311a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f16.c
! cf477d07a773e7f82d93f215c17db2dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f32.c
! 7bb24124544d63f5b2737918bbb19134  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f64.c
! 65a0aed5d372d4ffa39c8b4f28d3e1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f16.c
! 6e387c6a8c9dd55dc52fa40f091c39bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f32.c
! c4bd346f9141918b803cf63da4a4a8a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f64.c
! 1a1ea76c4daecba7eab71599efd61b6f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f16.c
! d0d57d0f7e39877da7f34d32ecd208bd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f32.c
! e72c45da1e8dbad0bb2f3494eb4dab17  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f64.c
  87cfc039c3523eae14f4f528c8b257e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f16.c
  b6054825c5d35f58bb48101430d1b5d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f16_notrap.c
  52a42fbee4b234f8513ca155cd8f72e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f32.c
--- 63306,63323 ----
  60976c1cb7f0fc5f5a1f3518a84c0bd8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s32.c
  70d7667e26491bc10cda530ca9a5155c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s64.c
  82f7a89e2496c6d6a5cf5f32ed8b592e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_s8.c
! 8f5f8e8a33a1d787a8e49f1a5ba68c59  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f16.c
! f93d4d3cda8b3fcc15b5604ed87887ba  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f32.c
! 340ae76ffb7ec966e5647db01e5e855e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acge_f64.c
! 7bccb709f20b621c54829e2436b9bcde  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f16.c
! e1ecea3bea104c6771463e838488e8c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f32.c
! 20d4e0b0ba096651b62440f90d0ff059  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acgt_f64.c
! 755322c2792cb0dafdb8b4e4685fe9b2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f16.c
! a95fe9e004393dbda301b758270296b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f32.c
! 4f48114f63b92da0fe742f4c465c1e81  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/acle_f64.c
! f32658e4896684af078a979914be5dad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f16.c
! 96d8f66c69ab43de3909d52a14f6a790  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f32.c
! cea0bf0defd3f5bb829fea2722a5c093  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/aclt_f64.c
  87cfc039c3523eae14f4f528c8b257e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f16.c
  b6054825c5d35f58bb48101430d1b5d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f16_notrap.c
  52a42fbee4b234f8513ca155cd8f72e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f32.c
*************** f4135e8b42c5b0a27eded92d40323739  gcc/te
*** 59822,59832 ****
  3a736c5bc57825589a7afb4d2632b102  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s16.c
  4101153c83b36d847350c4377c70194c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s32.c
  a850fd44d17004b3adff62a1950dd019  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s64.c
! c0e75632507945d7ea36bbcdca5595a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s8.c
  790184203b2e29f0b3f5edb1ec9f93a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u16.c
  d1cf22eea7972906753573b1f522e0a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u32.c
  46c25436fc5b0c3582480cb2b1003e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u64.c
! 4bd65f68172e75541298d2898242b8ef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u8.c
  9bf97cb0935a5e0c08df4b9fa26a7bf7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brka_b.c
  fe4bee3bb6e5d28da763511ce62058b8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkb_b.c
  fcf10a114648a9eb59d85866903ae4b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkn_b.c
--- 63389,63399 ----
  3a736c5bc57825589a7afb4d2632b102  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s16.c
  4101153c83b36d847350c4377c70194c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s32.c
  a850fd44d17004b3adff62a1950dd019  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s64.c
! b6e032aa4dab3255d803a0c0285d5024  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s8.c
  790184203b2e29f0b3f5edb1ec9f93a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u16.c
  d1cf22eea7972906753573b1f522e0a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u32.c
  46c25436fc5b0c3582480cb2b1003e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u64.c
! d2e5b472a5873b9cb195e8726078e4f9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u8.c
  9bf97cb0935a5e0c08df4b9fa26a7bf7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brka_b.c
  fe4bee3bb6e5d28da763511ce62058b8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkb_b.c
  fcf10a114648a9eb59d85866903ae4b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkn_b.c
*************** fb54fecedd00d4d3ccdd3b8376d09e2d  gcc/te
*** 59839,59844 ****
--- 63406,63412 ----
  c282857ea5e495b2f2853f2dfd630b26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f16.c
  648cdd3209cfed847e1f5bd40e2d8ee5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f32.c
  a8cee16473f43f4f8eaf843638fd7933  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f64.c
+ 2f4c39193f2a0bc96eeaef02bf1e240e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_mf8.c
  96fc88d5d985210e83f1c59083bc0dfe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s16.c
  21f444c0d80e15a2e9a38534ef037741  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s32.c
  23b236ee16bc833f39a5fb39ff06bb0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s64.c
*************** be1747ea6d92fceaf1e86ed9d3443dfb  gcc/te
*** 59851,59856 ****
--- 63419,63425 ----
  7686e99b30a989df83816b9744f112af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f16.c
  b050a1c5db2990413541be49967ab144  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f32.c
  3de12000cb8c280d06ac83f21de4fcf6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f64.c
+ 43642379e248e05a5a85191b4ab9c0bb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_mf8.c
  f7f1111215555989f231553fb4836336  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s16.c
  4e322146e0ed4ae9d60686ce166cbd44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s32.c
  75f139147d9eaa0430da954be34b9803  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s64.c
*************** eb370c7717da0de87a1db253382cce5d  gcc/te
*** 59972,59980 ****
  953c14ab109125b33c8a279ba08848ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s16.c
  900dd39361ddc25aa43e9d9e5e95ab33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s32.c
  62ae764408bcea41b50ccdff7e3f6ebc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s8.c
! 4e40f71210bca7393c7ce5a95533ee91  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f16.c
! 170e66fb2caabb05770126ddb2c1c29e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f32.c
! 490b96d27aeb129e576b1d3f4bca1ca1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f64.c
  cafb58fbb129b955e07925b36e03fb3b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s16.c
  6614c26eff9640b222ed77181724ea7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s32.c
  a17ebd02c8af3ad2b23223d99fab45f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s64.c
--- 63541,63549 ----
  953c14ab109125b33c8a279ba08848ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s16.c
  900dd39361ddc25aa43e9d9e5e95ab33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s32.c
  62ae764408bcea41b50ccdff7e3f6ebc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpne_wide_s8.c
! 95e4849030eb71e5cb67c33859a462f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f16.c
! 25e30fea765bc9549cf7daae0f2b0893  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f32.c
! e7fb4453777a35bf30d7818f263db03d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cmpuo_f64.c
  cafb58fbb129b955e07925b36e03fb3b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s16.c
  6614c26eff9640b222ed77181724ea7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s32.c
  a17ebd02c8af3ad2b23223d99fab45f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnot_s64.c
*************** fe1207fc8a777e1821f360d05d26c092  gcc/te
*** 60013,60021 ****
  78de857b11b1463703af18692725e12f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s64.c
  ab1aacdab1199783fccd4b5f4965b073  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u32.c
  e9da53abaf6d019ca31195bdb6c969a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u64.c
! bc76337978a3e06106d6c2aac6ae6a4f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create2_1.c
! 829d8963ad178b17e8a457bffb880ef7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create3_1.c
! 02db21866a05527e9d898266410c7f95  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create4_1.c
  7ac5befd60051e2c3a0dae07404fcac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_bf16.c
  b59d2c959c3327d797a92bff06c456b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f16.c
  5bbb5399743aed1a5f446ce8dd4ab7d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f32.c
--- 63582,63590 ----
  78de857b11b1463703af18692725e12f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s64.c
  ab1aacdab1199783fccd4b5f4965b073  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u32.c
  e9da53abaf6d019ca31195bdb6c969a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u64.c
! f434e53341151450e63e6a16945996d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create2_1.c
! ca34771179718e98d5d99e2aee2eb3e9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create3_1.c
! a96bd9574e62f7593227b9b5d6c1bd12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create4_1.c
  7ac5befd60051e2c3a0dae07404fcac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_bf16.c
  b59d2c959c3327d797a92bff06c456b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f16.c
  5bbb5399743aed1a5f446ce8dd4ab7d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f32.c
*************** a05c72bb5a2bad9a8167ab5e35e011d7  gcc/te
*** 60030,60039 ****
  644284f50d4b1f2685962421ea78f457  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f16.c
  22a8756486d41e1fada76572570dab81  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f32.c
  030144f86d6a0c5e5aea6cb20c355484  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f64.c
! 89a3d18d37e59928133e0b5d65870f18  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s32.c
! f966b720ea89fb4f941de97bd37ae35b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s64.c
! 1e1a5d44ca8217003cbfe0efec348c26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u32.c
! e3abcaa1fb827f437503360488430e72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u64.c
  01a2e7e8fc0e8a561561b0e5770acabf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f16.c
  9260524a094a3267a42d72ecd8bbbc82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f32.c
  68a37291fa655bf4ad4aa1354c67040c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f64.c
--- 63599,63608 ----
  644284f50d4b1f2685962421ea78f457  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f16.c
  22a8756486d41e1fada76572570dab81  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f32.c
  030144f86d6a0c5e5aea6cb20c355484  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f64.c
! 78474c1b82ad6b2be456ffbbbee8f677  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s32.c
! 9db3a8ae990770a6e95b629e29cba39a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s64.c
! 7ef6cb3cb5aed39c211bd8aee4f697bb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u32.c
! 9956cf266df32f43d877fa50d835c529  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u64.c
  01a2e7e8fc0e8a561561b0e5770acabf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f16.c
  9260524a094a3267a42d72ecd8bbbc82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f32.c
  68a37291fa655bf4ad4aa1354c67040c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f64.c
*************** eec249db065f3a86470b4cdd0afd4707  gcc/te
*** 60054,60078 ****
  14a3ea080f5c240dca14fb7384c3344a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b64.c
  0737f69d1acd63057d24bef5230a9044  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b8.c
  c0d1617116e8c91c1f30847fdcbd46be  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
! 934bc3127bcf8cce427d53c39d96d174  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
! 0d1595bdd9272541f4632d1020a3df91  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
! 9ddd34b886a2ccc00cb3173fbd14033b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
! d46dc252b946c697cc927b8b4f0265f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_bf16.c
! 8702e1f5b35ea9573da748929f165af4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f16.c
! 1a4ab56e83659fbccf9791216ca7460b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f32.c
! 52595373f1a19f37d8353e7afa2a5910  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f64.c
! 3837b54f7ca71d8d71af054590f588b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s16.c
! f662725973bd0f4810416cef768f0746  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s32.c
! 9c2073da61d6587eee6a9c86c364168c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s64.c
! 60b7bdd40cfc690dfa761cb71606801e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s8.c
! c2d21444de7980031e9b3468759c18f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u16.c
! f8db72abf60f1a8ac634fad0d2ff9a70  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u32.c
! 5f44414ac7c3c8a624b468957dc2285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u64.c
! 017eb44471cf29acba24c46bc026ea0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u8.c
  ba88c55e3c34aa6f5a0bc569c9215ff8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_bf16.c
  f6ef91ee3323d5a041958e19fbe4939b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f16.c
  f11a98af2001dbe8e0e0d104e6b11b3a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f32.c
  0c54bb9b2f64b113f778842935ffcec6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f64.c
  d456cae10294cbed8ad0384bcc96b8b5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s16.c
  15711f68e07e4cd135958466af64dfed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s32.c
  76b8748c6f274fc65810059d3282d083  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s64.c
--- 63623,63650 ----
  14a3ea080f5c240dca14fb7384c3344a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b64.c
  0737f69d1acd63057d24bef5230a9044  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b8.c
  c0d1617116e8c91c1f30847fdcbd46be  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
! a52a6b0e5ccefa7be0d11f96eb10e85c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
! 8eeaa66853a70f1ce3ca9db9b6486199  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
! 8cd14e61554f224f41d5280e74e7a7b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
! a39624766ba0566016c23718250934c5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_bf16.c
! 3c22c6ff8fef86a64cef1527414548a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f16.c
! db738f1599c4273043030bc0760ad7ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f32.c
! 7ca2745f8b208a1111eff0c8540061ec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_f64.c
! 677a67a1a9de7f97aa4f686af9a82d04  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_mf8.c
! b6276e9a31d99ae1ced0b0ee3df58305  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s16.c
! 14a72d6052c6c1a785e59b2ceb40d934  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s32.c
! 1cb1292e648fbf38cb59bb2c9198e7d9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s64.c
! 1722c664441495ba89710cd3c53cecf9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_s8.c
! 8159e4c4f9fcb8a8de7a6de20bcbd6b2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u16.c
! 0747bcdd4d937629f18d4e1e8caabd7a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u32.c
! becf990a7d38567f580ccba925ca5a63  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u64.c
! 2600376f2ffd3197685cb0441292252d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u8.c
! 88e69722a5183756aa0e99de0005b567  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_mf8.c
  ba88c55e3c34aa6f5a0bc569c9215ff8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_bf16.c
  f6ef91ee3323d5a041958e19fbe4939b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f16.c
  f11a98af2001dbe8e0e0d104e6b11b3a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f32.c
  0c54bb9b2f64b113f778842935ffcec6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f64.c
+ e07253bdb2a454163cef382f72e6dbeb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_mf8.c
  d456cae10294cbed8ad0384bcc96b8b5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s16.c
  15711f68e07e4cd135958466af64dfed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s32.c
  76b8748c6f274fc65810059d3282d083  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s64.c
*************** d456cae10294cbed8ad0384bcc96b8b5  gcc/te
*** 60081,60094 ****
  b65e770c3562f33aefd54a3b74450ac1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u32.c
  48c46e58c06844fed26fc71a5d9b2977  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u64.c
  04b6ada14aad43d52b3cc37e4832c0d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u8.c
! e9ac7d30f40b47801ebbaaf44fea6779  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
! b73e31859e96ae9720d7fa03c98b1d11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
! 73dd04765ad04314c77bac30799dd02d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
! 34ae53d5168044e856cc8b8af8ff3541  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
! d8fac60715caf541b330f1d40069674d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
! e6d7365911fccf597cfcc4d026c3367c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
! 680a2fcc9340edd13ddf9a2f9d86c256  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
! 25df7fab9aba9fbe74ab9e37dd3c0e5b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
  4b2de0f90ea5912af0dee6e63aa4efa4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b16.c
  4b644e1ff71911187926414b8f179e4a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b32.c
  f48b23cbea6952de74b95b1d47adb067  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b64.c
--- 63653,63666 ----
  b65e770c3562f33aefd54a3b74450ac1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u32.c
  48c46e58c06844fed26fc71a5d9b2977  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u64.c
  04b6ada14aad43d52b3cc37e4832c0d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u8.c
! 04e3e03506437f03fc7d88cec19b87d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
! 1075461320ed346407ebc2d76d445d38  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
! 971773828e1fbea146e0f3f21e1c69aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
! d00ff5ebebaac4bd6ddfe3b7eb4e8c15  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
! 5f52e286ec5f5db4bc2019a8224b395b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
! c2b74d2f1b6237278e04da1e610611f0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
! efc9aa3c5150286ba49aa86637deb5a3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
! 3c9617a069dac845321ea3de55e8a45d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
  4b2de0f90ea5912af0dee6e63aa4efa4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b16.c
  4b644e1ff71911187926414b8f179e4a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b32.c
  f48b23cbea6952de74b95b1d47adb067  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b64.c
*************** f5a0826bba69752fcc9b37f914be1902  gcc/te
*** 60100,60105 ****
--- 63672,63678 ----
  105c175549280dc0bf9e65264943f7cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_f16.c
  fcf669ebad3128bf1e8fe527f232f828  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_f32.c
  e9b809fa7a33593f83121c54619ac4c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_f64.c
+ ed8a52e2bb730ef7ac88b698eccdaa83  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_mf8.c
  c861843865b2e4c9be4be866ecce5103  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_s16.c
  e120287b61594f3f87d24e39b60667fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_s32.c
  2bf4c071f413a03969dd5de5bfabf464  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_lane_s64.c
*************** af3b00eb4bbcdab9fd6f195f386c4a5c  gcc/te
*** 60140,60145 ****
--- 63713,63719 ----
  98a4e1268bb46a683214146e003a6762  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f16.c
  a455a2f732234c8adc7080a1ab7cc5a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f32.c
  d27cf1401eaa529775ec55668f6f3e73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f64.c
+ 49cfe7c4baf2ecbc8826e69e4bff4902  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_mf8.c
  a0c4c68b98e3f04aeb11139bb0decd72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_s16.c
  ef2fe1885bab3e55539a7f48690fd92d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_s32.c
  62e8e67b119d65d0d4eb8c764ff6ae60  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_s64.c
*************** fbdbe0d606aba0a45610afd2ddbc9248  gcc/te
*** 60165,60170 ****
--- 63739,63745 ----
  beb0ce18ff1479eb130b6af96a9c459f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_f16.c
  b53a49fce5ecad0a97d1c3464a9e019a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_f32.c
  c8d2faf1a0a11c0f50e79f2abb601d3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_f64.c
+ c481e7ad83f4f5b186ac6f94f8512786  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_mf8.c
  5cd195296267cb95a96fb656f879b01b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_s16.c
  13e92c96ca616d618eb9a350c5ea61f5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_s32.c
  f5a98ac9b7f103c9bb5fbef2604e575a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_s64.c
*************** deef5e337befc92bf2fe4a25d8163aac  gcc/te
*** 60177,60182 ****
--- 63752,63758 ----
  1702bfddaab3cbf1cd3f768ce88633e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_f16.c
  506bee867aa5a11f5b93dfc41b2148e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_f32.c
  e8ce6e5ee379bf7e2f474ee45aa27108  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_f64.c
+ 67cb6eb5b9393398a0559a882d1464d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_mf8.c
  d5f746dcedf397ecc321bff68939ac96  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_s16.c
  f4ba27254ae078433393c1c8942a4bfb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_s32.c
  26beefb7a3fdb96968535016b07c582d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_s64.c
*************** f4ba27254ae078433393c1c8942a4bfb  gcc/te
*** 60185,60194 ****
--- 63761,63772 ----
  c60709593004170b16123096ca59dd4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_u32.c
  ca09ffefab1054f52b3f1779f5e8278b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_u64.c
  36fd931ad69ef277a2700d86c24224a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get3_u8.c
+ 0285075b364581a4e447009ba99587f2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_b.c
  450dd396da161bfcff211001c510a872  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_bf16.c
  5b6761139b6c640ae0429857da79dc06  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_f16.c
  ab2e900823d58229f2654cd1b0068cfc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_f32.c
  b9f64090be82c178daae53f14e28e13e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_f64.c
+ 8ceb067b8f4bc2e58a6910b7574722c4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_mf8.c
  90db3692caf14606ef69f27a3169320f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_s16.c
  a094503f5d20e458bcf242e465c427c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_s32.c
  a309753dfb5742c7099664ef7eedbdff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_s64.c
*************** f31f6bd10d68b0150c9313ee8b9dfe10  gcc/te
*** 60201,60206 ****
--- 63779,63785 ----
  8f32204b156a3dfc825d3c0d3ffa38ff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f16.c
  16fa92ca5983ba0fdb659672635da845  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f32.c
  1584b1909ea0ac6f5fad88567c3b9cbc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f64.c
+ 52d6f010ec357c26ca90da0e8cbc992b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_mf8.c
  a30cd0f882fa8132c2dd06f4c3aabc66  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s16.c
  278237999c1a843b22d690d292ea2d43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s32.c
  b83a1c64293b6bcef12dc7074dd83bf4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s64.c
*************** f218bf76954efe68bef9e7cd041d423f  gcc/te
*** 60221,60238 ****
  3ca80e516246fd85e42df759065f76b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f16.c
  53d73d5f6a7de893c42775f85069f9e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f32.c
  5d621b051d34165cc498a2ec6751490c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f64.c
  04c4870ba0c01c9dd59d8f8ab11145ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s16.c
  506970da76aa834ab9ac1d496a0892d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s32.c
! 39015395896c0132183b941f37603160  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s64.c
  5ee26f7d4a6737c0f48d094d09dfde16  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s8.c
  17041a4053a6791cd3c44d3b09afe640  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u16.c
  a4b88ccc236cb30256a81e5ee39fe5cb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u32.c
! 5eda336a5a09d8049704d11cc0fc39f2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u64.c
  6c699d9fa71ef0050460a6c5bdcfb388  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u8.c
  96c96ae2dd170716725d956e7a39d654  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_bf16.c
  4535262c1eac5b1f2e3998caa0f2d4ff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f16.c
  17a20af4358136e45ffa1a5bf99697f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f32.c
  87c8f8b74a8f6af190b653a88e9210ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f64.c
  e485dcaad666e4821fa22e4acce9900b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s16.c
  91cd8beb36fb5075a8b3221076bce00d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s32.c
  fd600887827e438e75f92e3d9ed2e0aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s64.c
--- 63800,63819 ----
  3ca80e516246fd85e42df759065f76b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f16.c
  53d73d5f6a7de893c42775f85069f9e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f32.c
  5d621b051d34165cc498a2ec6751490c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_f64.c
+ 22773cda31622208eaa9e10c3a0ae981  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_mf8.c
  04c4870ba0c01c9dd59d8f8ab11145ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s16.c
  506970da76aa834ab9ac1d496a0892d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s32.c
! 1d38b00f4493bf5b7166c515cddb0d08  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s64.c
  5ee26f7d4a6737c0f48d094d09dfde16  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_s8.c
  17041a4053a6791cd3c44d3b09afe640  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u16.c
  a4b88ccc236cb30256a81e5ee39fe5cb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u32.c
! 14b0410202768905b80f32204847cca4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u64.c
  6c699d9fa71ef0050460a6c5bdcfb388  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/insr_u8.c
  96c96ae2dd170716725d956e7a39d654  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_bf16.c
  4535262c1eac5b1f2e3998caa0f2d4ff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f16.c
  17a20af4358136e45ffa1a5bf99697f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f32.c
  87c8f8b74a8f6af190b653a88e9210ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_f64.c
+ d5be0a1ab71ae22ef099ab6087bd5cc8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_mf8.c
  e485dcaad666e4821fa22e4acce9900b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s16.c
  91cd8beb36fb5075a8b3221076bce00d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s32.c
  fd600887827e438e75f92e3d9ed2e0aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lasta_s64.c
*************** f4d67c45fd1afbd55ff711bb9dec422e  gcc/te
*** 60245,60250 ****
--- 63826,63832 ----
  3e7dc227f206ea38c4d3124b43f6efb1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_f16.c
  2af6a1afe659be075ebf00a7a61ce77c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_f32.c
  847c668e1730858142200fa57c3c217c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_f64.c
+ 9d17acd9685cc13bf361f5273f6a7729  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_mf8.c
  4de7e2a8e7b8d618af29a20dc0b0cfff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_s16.c
  5d1a5a61d75ee6979eca769f8daa43d9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_s32.c
  c616de843d7bfa6fa9851e8160005030  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lastb_s64.c
*************** ea2331685e4c2dedd59eaa91b0d021c0  gcc/te
*** 60263,60268 ****
--- 63845,63851 ----
  02af7b0a39ef3b4d782beeada9d6af1b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c
  4bc07faf9c88db6a0ce0c46b5753d811  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c
  bd644290c330980cb24bc33f8757f758  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c
+ c39760a563bf2d0a6861b1eb74b6b239  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_mf8.c
  1a8b45a2dd1233b376f297b70e1c285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s16.c
  72c4d38fb9071a4553787ccbba3ce6fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s32.c
  c68eb10e050731fdc36b3325293f0df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s64.c
*************** fd6e63ab8a150c5fa0a62ee2faa04064  gcc/te
*** 60275,60280 ****
--- 63858,63864 ----
  2de1d8e86f9139323c134d4efa48b3ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c
  4951ea9353c66b617e08666fea99167a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c
  1e76702dc8b8b6506138a16657696aca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c
+ 3b2f79fb1184d608f9afe8841448faf9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_mf8.c
  f869160db708727328c1f7d11c3920c7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c
  37efbec9c27621d8d9814129c6342d32  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c
  3f78afbc1538bfe842256404bc9a6961  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c
*************** b72bbb05e99f63784b498874df5d65dc  gcc/te
*** 60287,60292 ****
--- 63871,63877 ----
  2eeea316381d7a4912cb97c839619690  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c
  6ce0f609e60e6ff14c7a81013688a800  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c
  f1f2026900bffa75c7f33a854e92f751  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f64.c
+ 50cdbe52d7e0ba7b769862b7052a703c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_mf8.c
  35b5a57a971488fc02d822b4d5b2ac10  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_s16.c
  9c45ab8e786f1efdc13da3cc9fecb626  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_s32.c
  150084b6c0ebd3bac5bc3af8f8a6e36a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_s64.c
*************** f03fd7687091e62ea174ea32e5f5eb92  gcc/te
*** 60343,60348 ****
--- 63928,63934 ----
  b45e415e3b32d4e0e146ce2478a3f1fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_f16.c
  642b610322c82b3b691cab22e900875f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_f32.c
  587feb997ee245b60f0afa4f8d6771c3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_f64.c
+ 41ebc2f7408e651c90df2a7bd7f6fe0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_mf8.c
  ded08d11ec57642e0dadd909fdd45406  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_s16.c
  686d566e74c6a42252e4e1b14f36f0b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_s32.c
  7d0c116663918474cd0dace8fd0450e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_s64.c
*************** ac081f110925f53009731add9d5d76c5  gcc/te
*** 60355,60360 ****
--- 63941,63947 ----
  97753d56e3de25368b4b0347043e196b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_f16.c
  94f57355a9676fb2e168b10395625de6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_f32.c
  3411d354a5c7d4243eb126a334134cdb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_f64.c
+ 74227ba34f72778f2d198a6fdfe72ca4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_mf8.c
  d9ae8f5d4456ffc2b07ab8e9258d9ac4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_s16.c
  7f2c78f88fd04f04ac5f9726aee6501e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_s32.c
  c2cf9f2d96d8cb135d1d23245ed13dee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld3_s64.c
*************** de4374ab963ce54fa58303b8c5789614  gcc/te
*** 60367,60372 ****
--- 63954,63960 ----
  f269363b686f2ee11a8ef929bed5991e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_f16.c
  a9d7c4ed665999292cb06ea41ce7760c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_f32.c
  44a57622ec17d90e413ef80a8b049c81  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_f64.c
+ 2e3c91bfe67a0ecef08f5b0418010402  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_mf8.c
  2d861b2e03ebb4be7dff1f37a55dc38a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_s16.c
  8161e9c2438e4289deba401ca2c12672  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_s32.c
  086d3d4c86ae9ecff4777e065dc50025  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_s64.c
*************** c89ca6f96aac30ad6759323af0004456  gcc/te
*** 60385,60390 ****
--- 63973,63979 ----
  d1dba4144a654f78d973e20a1668c882  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c
  dde3af6835ea596605602320f1167625  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c
  934a59b1fa9add9e68fcf5896df69461  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c
+ 4b9a2d17b88293d1a0566f166b363c3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_mf8.c
  0421684cf52a2d54d9c546a159cca0cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s16.c
  8ab75c8db54027530b6dd216031e0a01  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s32.c
  67fe3345b336c6eb6c28fb16ceafae26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s64.c
*************** dc6e962ac84ecdf0894efab67faaea06  gcc/te
*** 60441,60446 ****
--- 64030,64036 ----
  2f9d0f78ce1a35021ef833469eba700d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c
  a83c6e05e110cd8c937bcca7fb6a8776  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c
  629b3c581fd7ffafc1071fe837037c4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c
+ 868e848b5c20f46b5f7ee1667956b486  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_mf8.c
  827829583a4dd16db46cfe66d8ebb059  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c
  3f4b8b52d4c7a697224217d8c65820b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c
  6a36cd1ccb0720c05348d713578f2267  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c
*************** eca3b8e907eda0aced6ca5acca631db8  gcc/te
*** 60477,60482 ****
--- 64067,64073 ----
  e95fb85db19e9d6f13194df66de7eb94  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c
  83e10e60c01150d87eec2f82c7b79136  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c
  ca9c6e293d86c83e46c92511677fa873  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f64.c
+ 43ca7d3d3cb24acfecb1badd39495608  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_mf8.c
  3a85ad9535dca438613ae75a6235913b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_s16.c
  b8d95261af78d5e0d365509bd41784ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_s32.c
  a8b12739a6c8e4b70359cc37733bf74c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_s64.c
*************** cca0008041de04e3ad6944d587aab934  gcc/te
*** 60489,60494 ****
--- 64080,64086 ----
  dee80aeea005d8877234e59a9a25d65c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_f16.c
  9f197daa309a83c8248b867aac89e6e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_f32.c
  9a89103e52f4f0020ce9b6112c87d2ba  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_f64.c
+ 499dc1b2cc6a2efd94a02f4f892e8ff9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_mf8.c
  9727d48215730191b3f41e9b7552be3b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_s16.c
  24dac155df7e8f6ae58e26b3f7d086ef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_s32.c
  425b510e9a83586e080ab9565f0158c3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_s64.c
*************** e346dc9da51a0cd38f56451ba2ec9a1e  gcc/te
*** 60497,60516 ****
  35c1c0e4ce0ec993da6e5b1ef02e1b12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u32.c
  393db7d8485ad37fba3972e507acd3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u64.c
  3c4680103157a3af2c34e1fd7b3c1e22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u8.c
! eb316075f8add76d42e1dad661bc445e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s16.c
! 4a95e6621bba6d056401caab6155bf20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s32.c
! ece2d79e9f7ad3b5dabb1d3bec336a6f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s64.c
! 5a129261561b5ccc1a0cf348cd310f3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s8.c
! a09fa3117ed8a24351197fd7e917d215  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u16.c
! 0a9d2c64b0cf04521668a3eb444b3107  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u32.c
! c816e5820ae4fed0e7ac104c65a7dc18  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u64.c
! df30623263348d0444fa8ce4564e3100  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u8.c
! 70d6c4cc51e1ad57064a6a17ae5754b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s16.c
! 63d7b7e6dca9cb085443e9ab928b20b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s32.c
! bfe7190d5860bb66c36b243132514c6a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s8.c
! 8e5ddcc7120d56a3cd73e3fade23e7b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u16.c
! 712b9680ec176a9019065c811c22acc0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u32.c
! ea9ae40d13929eda7e682200b07e8570  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u8.c
  389413808664c5f3066a8e0c1bdac9d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u16.c
  241b2c4f201481f69fae73f93446a59b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u32.c
  7f574d6478f32135a5f54487db0496e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u64.c
--- 64089,64108 ----
  35c1c0e4ce0ec993da6e5b1ef02e1b12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u32.c
  393db7d8485ad37fba3972e507acd3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u64.c
  3c4680103157a3af2c34e1fd7b3c1e22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u8.c
! 7151d79b3b74d00dda33c88bc5580d21  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s16.c
! a764da8c563ce8ad549de4f849745240  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s32.c
! 959fd7082a1dab8f136c12c167b41965  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s64.c
! 8f2b0323421235cdf3939fa494490bef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s8.c
! d788d90ca8e246f911e8bcafbfc6c36b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u16.c
! a0dc041f03d530dcf82b76afbff06b2e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u32.c
! 35dcded8a50078ff477162f17f0b152a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u64.c
! 9d22728231ee6c3853bceee4e9d263b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u8.c
! fea6914b1302fe90e60abae136ef892a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s16.c
! 584c084a7ecc9cc355dc65122edb55e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s32.c
! d2c405cdc167c76912e29d20fdc6eff8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s8.c
! c58fd3c17471f21b5ad505de4f3ddd0c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u16.c
! 6df5e0bd8db07c39407d5adfc72202b2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u32.c
! 9514ab03aca8c8a113ce05f1e002c72c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u8.c
  389413808664c5f3066a8e0c1bdac9d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u16.c
  241b2c4f201481f69fae73f93446a59b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u32.c
  7f574d6478f32135a5f54487db0496e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u64.c
*************** e716ac2dd0b6a489e0a066923531fe33  gcc/te
*** 60638,60651 ****
  a7a4c48a2a400e927d1783f11ff5ae2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f16.c
  1c2f087197693ac0f8341bb2de2f9903  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f32.c
  9bf80dcb14d6ec0ad3830bc283fafefa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f64.c
! 48d7a5d440e1e69c3813f0edf697d6f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
! 8549c51a868528aca988f22c5dcac5b5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
! 584c4bf704ab9ae1146f3dd1f083d1a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
! c1fb30b9b04262caf61f11c8f866da51  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
! 9bdd0c3dab377a0b7ed07deb44f655c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
! 0d5f2522b16fdae22413a8612fa256e9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
! bc7c87af98f9d8c59a6e9bb1239c0bd7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
! e35492b0b10bbbf7a0d7c2040e0aa34b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
  13e5426577da8e8350426b98cdde0d0f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s16.c
  887cde542b27dadbbd6e7abe7696d2cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s32.c
  78776c6e140b51a29713f2889bc58bca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s64.c
--- 64230,64243 ----
  a7a4c48a2a400e927d1783f11ff5ae2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f16.c
  1c2f087197693ac0f8341bb2de2f9903  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f32.c
  9bf80dcb14d6ec0ad3830bc283fafefa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f64.c
! 5819dc70d5a76c525b922277c0b959ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
! 6a2ee9b11969c4475629e14cfed49038  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
! a5cea13f4b457eccce848243008a2449  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
! 540ce03a5aa12db4294f15800b60e830  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
! 935cb2f781553ba0bbcf7db6a6443a26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
! d22a6497edd09e3536df77b5f96e55dd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
! 416804e673fcd9e4da8d4cbbe54e3099  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
! 90173ee0d5de2d7ce44b254c077c25f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
  13e5426577da8e8350426b98cdde0d0f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s16.c
  887cde542b27dadbbd6e7abe7696d2cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s32.c
  78776c6e140b51a29713f2889bc58bca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s64.c
*************** eb556d67c4e33e3eb511598a745cc1f8  gcc/te
*** 60846,60863 ****
  0a11752baf2527724205cd1fb2ae0c67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f32.c
  3f2ca5492bae639fe3bbf90fc228d4ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f64.c
  ab26dbf9d404f567dfaaafd8bc5e1698  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_b.c
! 7e2208e74b6d602813c74776d6fde646  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_bf16.c
! 7aa98a980ad11ab4f199c97bd84bcee2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f16.c
! f5047bc7ed8f9f7c4c65e939215912fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f32.c
! 01d15b16838d398f8c2f983f972cd7a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f64.c
! 5d04bbb4436b2195f054b4265189cffa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s16.c
! 8e1565c4423e407b51497213c09d8918  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s32.c
! c36faed06c1e2914d6d67af26164eb74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s64.c
! 445cdccbda7257299d1985353e0abee7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s8.c
! 6dce6ad619dbc9a5f4e96c6ea4a1c660  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u16.c
! b0d87aca95ae2246ae76b7841152926d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u32.c
! a6850012db327279fb94c5bcfe321578  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u64.c
! 984693ba3d3a7182a990aaa558227381  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u8.c
  919127ad80560a5b03e284b0d7377e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b16.c
  482d07285ef3533e27547dc500a01998  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b32.c
  8c7432ce81cc282b1e71c62037d0eb86  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b64.c
--- 64438,64456 ----
  0a11752baf2527724205cd1fb2ae0c67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f32.c
  3f2ca5492bae639fe3bbf90fc228d4ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f64.c
  ab26dbf9d404f567dfaaafd8bc5e1698  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_b.c
! cc019224bcec4b4f956f3a26c8383ff9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_bf16.c
! 2e5d7f87bbaac95acedda88ba37e3011  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f16.c
! d03c9483d9f3ce193ab65cf20af3541c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f32.c
! 1aa4405a56c6fc49724804a8a00d4904  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f64.c
! d3d1a4c6bccf485ed98b20051a21f0e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_mf8.c
! c5e4b4e315528a50a96b844d7b6471b1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s16.c
! 57e2d4a8a7d333a8fb1e1bbf3216c760  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s32.c
! ea503301c1b15f9b22c794c976f0df2a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s64.c
! e06a8851f03f07ec900f6702eb112525  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s8.c
! 6ca7155831e84619028ff37719d7eddc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u16.c
! 7f7c103322f05705be8747b02c1b2b08  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u32.c
! 5496e289b95c032959684aea0e961e7a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u64.c
! cec896c3369d2254401a963cc72b61ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u8.c
  919127ad80560a5b03e284b0d7377e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b16.c
  482d07285ef3533e27547dc500a01998  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b32.c
  8c7432ce81cc282b1e71c62037d0eb86  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b64.c
*************** f4bbd433aff54c3265dc3c348042f78e  gcc/te
*** 60866,60871 ****
--- 64459,64465 ----
  5e2a81317f2fbd4809a4946947679fb7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_f16.c
  fe03f9527e3c085fa0ca5bd95f770e76  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_f32.c
  6fd2db636983aaa7682edf09f487086d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_f64.c
+ d5ceb605373570dd10fe4a1bd5f2d071  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_mf8.c
  7451f58a403a11ced2986e41e612f2fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_s16.c
  884db20b5210ac73ad226829b986c765  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_s32.c
  c54c145005a99c80f758a1f4d5733fe4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_s64.c
*************** a969e3cecc8c8db27a4c426036cce0bc  gcc/te
*** 60921,60926 ****
--- 64515,64521 ----
  ff59715022cfac520674930fbb2d168a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_f16.c
  006c97cddb4ef164b164b7fa4e8ac68a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_f32.c
  5a91cdb6b042842669609e3bcfda34f1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_f64.c
+ 0d49b17bbae3cd9b67543027f3486703  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_mf8.c
  e1e3b6f8e60bf7046ff376fe6c9fd5a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_s16.c
  8db4eaeeac4aaaf345b7c58457ebf025  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_s32.c
  3cbfa37b5bdef6461e7401b316fabfea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_s64.c
*************** ceb6457a5f6f6a359f8a873303c8c0fe  gcc/te
*** 60934,60939 ****
--- 64529,64535 ----
  66313052b5ca481ae0b59b945cf90223  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_f16.c
  437d1b3fbd294c42b4641bf6d57b1c07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_f32.c
  c83fcfb66bc244431c768dcbe623cad6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_f64.c
+ aa47a4c6efd4a8ef9ec55d8f643ea172  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_mf8.c
  31b76293c363afccdca9a679dffa4d45  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_s16.c
  ceeac80b80f94e5652dae0d1dbd1563e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_s32.c
  e057229a1a6e77304bc003979a226fdb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_s64.c
*************** d17a500fac2849b3977493172358e478  gcc/te
*** 60946,60951 ****
--- 64542,64548 ----
  90b1646753ad36c40a5152b016a540a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_f16.c
  89c8c6b3ac0b3eba023ad1321ff517fc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_f32.c
  dd1387e3e7129791c89fcd0ab23b2eed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_f64.c
+ 424cc102b8cd239d583860a11c80daed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_mf8.c
  7cb77fc25942cf63c2af26f511005e27  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_s16.c
  b32ba1081276e855489c66d467a60eba  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_s32.c
  f234446ae2b672c975d491a214ee87a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_s64.c
*************** efe1eefe20f8cb91a440f20e963ebe8c  gcc/te
*** 60954,60963 ****
--- 64551,64562 ----
  5b0c3325e5e2801248eca32d6ab4bb5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_u32.c
  fe05fee8c1ceed9edaa5b20a3492a332  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_u64.c
  aba699f4f33e3f3eec87d012b281f79e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set3_u8.c
+ a76ef851ba490f715d9fe2c515653db3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_b.c
  da36c9b26c453b5c9a702c036278c8d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_bf16.c
  6e316137c21d841aca7eff2aa3f661d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_f16.c
  b530b7f151daa56dba1595d25fa11f0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_f32.c
  bbdb4142752091471e4a846c3d7ef2d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_f64.c
+ 1ff793ac12b7765f8fec0cafe3384677  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_mf8.c
  9cdc1ab6ea4486030f68b6d462321c43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_s16.c
  d4e3e58f27e377111bd8b7b0f1a77af8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_s32.c
  b02fd17019011fc130ba5f2d35c7fde0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_s64.c
*************** bbe7f63b2ba52436b306b0459b2ca2a5  gcc/te
*** 60970,60975 ****
--- 64569,64575 ----
  ce46783ba6d9562a04d9d12a65326d2e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f16.c
  6dede7fa2353e91a4eef89124add139e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f32.c
  c1edef8d36fe89fa0933b048123ab1fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f64.c
+ 0eb88233566b759b46f9ea443b4da0a5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_mf8.c
  cf07700fcb2088960f82c34579a5647c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s16.c
  3b13e7d9fd82485f32b4d3aa7c872242  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s32.c
  b1f7f23d8f091a3653573d71cabf2f5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s64.c
*************** f72006130e698d567ad2e35a6410c2d5  gcc/te
*** 60982,60987 ****
--- 64582,64588 ----
  5b4486c1be01db3a88890d5bb076aede  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_f16.c
  10a224d32b4804d622e9cf7286ce4a52  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_f32.c
  e73e4cec6eecdd2ac1493dc448db6caa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_f64.c
+ 5d712b2fe397b2164ad31c0fabf4dbd8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_mf8.c
  66b87b894c1e1d131b06d17c85ae9db5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_s16.c
  c6edd8d166e9084d43dfa6db648da9c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_s32.c
  262fdfc9feabb609310a3d3333d00b7b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_s64.c
*************** f09db3692cc9af5f5866d71ca16989de  gcc/te
*** 60997,61002 ****
--- 64598,64604 ----
  07bc8c17727dc166410193584c50aff3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_f16.c
  a261810d80432e53bc4c2370a713ef62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_f32.c
  5e9eeb4e7dc547e5dda6c853ba529863  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_f64.c
+ 154916b0f35e9c74e6fd0c900ea5a015  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_mf8.c
  2a24293b1985832a00cdcbafe905632d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s16.c
  c179b42173edfee79ce25062392064ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s32.c
  da04e20b57b022218ed025e38b7f118e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s64.c
*************** cf917eca5be3f513c8bb1f33960c94b7  gcc/te
*** 61037,61042 ****
--- 64639,64645 ----
  3973173efe68872351a0bda773c11c11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_f16.c
  81add97a5074f96a71b035d577c8c8a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_f32.c
  7668dedb9209f09cccee184399d1ceff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_f64.c
+ e03e764c3133d6148dcbd472caa55e1b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_mf8.c
  90278ea1a8a75bfb110709ddb9de0a18  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_s16.c
  1b4456473610b90efbe95871c57edde0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_s32.c
  ae93cc0a8d68876d01a73ce83d9e60bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_s64.c
*************** c118b1328b09cb4e2071d41e53ac5206  gcc/te
*** 61049,61054 ****
--- 64652,64658 ----
  2236ddaae197741703dd3d53098c5d3b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_f16.c
  2b9c3436e73c876a67d8be2463494ed9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_f32.c
  ad13f21668bdeb1302333e13c4edcad3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_f64.c
+ 66a576872224ac9be55bab3827216f21  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_mf8.c
  e97bb80b6464266254d1480a94e2c456  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_s16.c
  8736a12b4664fdcac14c783e34987373  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_s32.c
  df0c111cb24f76d0bb6961e22dd7398e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st3_s64.c
*************** f4aeb15cc2bb67def6d956bece929c96  gcc/te
*** 61061,61066 ****
--- 64665,64671 ----
  ada4676e8f789a8a2b5af72d04ae5acc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_f16.c
  99811ab7364f626e8cdef929a0c6afa1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_f32.c
  1c6455f3a5adf48c8fa5d36237e35585  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_f64.c
+ f679fd94ff95769887da775227c8bc77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_mf8.c
  13a54b11e388421524314a95a99f8d8b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_s16.c
  ad32e3107ac44ea1efd0536c4df54ef6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_s32.c
  54e74bf80fe223e5eb25399e78d5833e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st4_s64.c
*************** ee7afa01d1915185fa6b01aeb1c29e3c  gcc/te
*** 61073,61078 ****
--- 64678,64684 ----
  f4ac80b57d2b4bc2319861dcff3ff1c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_f16.c
  86dabd6bc3ee1f360aa0750adefe785a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_f32.c
  96adf73b2ca1461c02df90ed2ffa15b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_f64.c
+ d813ee6484f1747732a7deba567e519d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_mf8.c
  ccacd1fb6136b0a505b42f5b3d0b8b39  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_s16.c
  1fc4c6f0c1173dc0813095adbafa4f16  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_s32.c
  61f84059a825233066d94146369203ba  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/stnt1_s64.c
*************** b3546cef8af2f346158cdfbb6170e486  gcc/te
*** 61111,61129 ****
  5eb751b740a71c8f9732b591cb649df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c
  d62014d4165619be9e66bb5968586984  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_lane_s32.c
  f313037b074c947edcfe07f61f5fbbc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_s32.c
! 4aba6ed207e5eaeee50dd28f9ea0e6c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_bf16.c
! d716b98f28d9b983243b29c17423c344  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f16.c
! 0fbc73f88771b326dd4bb35363badfcd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f32.c
! 102d05fc8486d14ea775f612e65c39f1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f64.c
! 055d6cd935c2de12b1d6edc378a331d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s16.c
! 424e8c48b6c1bdc26ce311e8d438e248  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s32.c
! 177567565fceae5c3f9354f345cfe3a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s64.c
! eef92b1a3b7d04739d340ad7e46b4813  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s8.c
! 02bf80e40d54ec990a1851b2a0ae6cd1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u16.c
! f23324538784f8a52ed2ed5ab33d8c43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
! eea9161427365db4de3e4f905a3f991c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
! 08144823246b826845caab05f37fdcc4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! 67a09437bdb8b7ba35d0c082aa81def3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
  e1d55b697dd3f26b83e09349fa9bd50a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
  023102988d91e8649e76b3f619a0fe14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
  42edd7f70c6dd83aed2e1e8f2822d1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
--- 64717,64736 ----
  5eb751b740a71c8f9732b591cb649df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c
  d62014d4165619be9e66bb5968586984  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_lane_s32.c
  f313037b074c947edcfe07f61f5fbbc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_s32.c
! 60e65db022c87ec84a39fa67ca80e40c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_bf16.c
! e037ad34577a86e60e514157a3698c7b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f16.c
! d047448672dbbfb420f5ba649e785094  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f32.c
! 6721c67fc5140f4f0dad0a23528bdbe0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f64.c
! dc551677ea18cee7d0d0f71db2863e0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_mf8.c
! 4033b9fddb9e4e60564ed91f4d6c45b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s16.c
! 5695eeee17d4448cb2e783b6e1bb1785  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s32.c
! 6aa3e7a2a93539f9a20c0e285489fb9a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s64.c
! 78bf1fa9f1f3c8d7cf7b15155322fbd0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_s8.c
! 4edcda5f5313fb52fb99313bd64edc25  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u16.c
! 0f9c8d5e0f81558e6102d96bad4748d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
! 535a96b316a99f9dbd785cc445aa108c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
! 026e0c233a396156cf9d7b5accb1b5f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! 5ea55bd6f5ee52105958118c693606a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
  e1d55b697dd3f26b83e09349fa9bd50a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
  023102988d91e8649e76b3f619a0fe14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
  42edd7f70c6dd83aed2e1e8f2822d1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
*************** e5b2a1ad7b2e57aa60b98c867022ca5b  gcc/te
*** 61135,61140 ****
--- 64742,64748 ----
  6f3a78828c9810881267e576bea69932  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_f16.c
  2d4dd19e2fc99246a1da404f82491a59  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_f32.c
  694624de00fecb732ade2b4d768c6462  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_f64.c
+ 4f2f509fc73c584658525271ab11ea9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_mf8.c
  9c2dc40f6dee911ba9b657812667b908  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_s16.c
  cc022bcee12f8fc9755cee84e29fcd07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_s32.c
  0ec6eed5016c8c679258c9121f592514  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_s64.c
*************** ac4d0bb7342b187db42fe29ac75bde74  gcc/te
*** 61143,61160 ****
  8dfc486ace4c9b0547adaff0a594950e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u32.c
  b2b616d645252241cec9581759792ae1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u64.c
  59bf24b85fa6b73358e2725b9d1124d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u8.c
! 1de7b40aa2d718651c42ca190c480c50  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c
! 5beeb0710d8c990df1e05c4ce92bcd05  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c
! a169134c22b149259cf301ca42db459b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c
! 5815a2030befc009a51b71698b7ea682  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c
! 54682759ca4199407d1db9ae6e1ebd49  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c
! 1ab480f4f300cbe0ee4cd92ed0c334f5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c
! 90b06dd17f724078b6c6147dc690eb4e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c
! c0dbcfbb616f0294393464aa1c362c94  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c
! 868ece061b0a47bc3ab499e0ac197e22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c
! b49ba30f980e5f49bc6cd1d73aa9ad4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c
! ca7e5d8b50766f99ce16041263576fe6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c
! d70352c5e407baef4b96068deca6ae2d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c
  24169e6273411f2eac241450dac80c33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b16.c
  995b60ab18ba3fc5dd9952917cc65144  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b32.c
  645d18ff6babcf66ed8aca05d4a4b3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b64.c
--- 64751,64769 ----
  8dfc486ace4c9b0547adaff0a594950e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u32.c
  b2b616d645252241cec9581759792ae1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u64.c
  59bf24b85fa6b73358e2725b9d1124d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_u8.c
! d001a48133739ae4acc74c1a9d235253  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c
! 89a4092a7c5087b5fa5b468b19e9e26e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c
! ecfa6e811a6d56b8f10ede76f5dfcaf9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c
! a7b5661f74f1db30528489e330106c8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c
! 4649f006e737427a0ab86320992487d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_mf8.c
! f281874d8a500f9b31063c8c1e536278  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c
! 89b815c4edebd57476a43c2c87ee52d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c
! d47f20bfb45345fa5e4869bb0f414793  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c
! 1bddbe96525e9a145d9a094a053d3376  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c
! 21d3081d1e04e26e8da6c5b1c0150fe0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c
! c80cce85365ba1a829ac597da6d33493  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c
! c05359bcba0bfac02e02f83806b027db  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c
! 8c0201756b76ba4e9145e07272b3ce05  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c
  24169e6273411f2eac241450dac80c33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b16.c
  995b60ab18ba3fc5dd9952917cc65144  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b32.c
  645d18ff6babcf66ed8aca05d4a4b3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_b64.c
*************** cf6d9379c0800b4e96171f826bb095e7  gcc/te
*** 61163,61168 ****
--- 64772,64778 ----
  b0c0cbd36a0f2282e894fde54f9ed097  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_f16.c
  6a1b1c6ba729e625059deaaa6622b811  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_f32.c
  19eb01f13f77437e34c71eef7fdf308a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_f64.c
+ 2680f0c43609df45ef20da4189008af0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_mf8.c
  e56691af8cc08a04c4ac47dba210930d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_s16.c
  faa180c6841e7c3f33aa8bee75eb9458  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_s32.c
  a7550010f17bf10955f3b8406c2aa6f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_s64.c
*************** a7550010f17bf10955f3b8406c2aa6f6  gcc/te
*** 61171,61198 ****
  f041f5d9d6ef9cfde9a0e4140f9e11d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u32.c
  4e7925d72c1383b78b892106b3822961  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u64.c
  0937a5cf0ee1ba02ca4eb95c03d47bd8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u8.c
! 06a523cd628822cdc1a2b917a3ac1e30  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c
! b9c37881f43fbdf981a63efaba194e97  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c
! 991fa914563190fc0e0b959fe2745fec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c
! c5b427d953f676a511d1f4f3bef0eecc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c
! 630d6e86608d338a8be93b05f9d55879  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c
! 93b4c44661548b148373579a56929914  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c
! 81a62ea952a5c9513f60a8f2f47f0560  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c
! 0246a4b51bc9d2624820ce61711a0702  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c
! f9ef4d916b87a89ff56aedac6f5f7c45  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c
! 66a3a21d1f620279732307e8d9848eb3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
! 8565958462d52454e766ea6fba3d8993  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
! e1789ecbd0b626478e428097c3a0bc62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
  283d7b44a6a5b712e807a497ce6bf750  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f16.c
  039fbb0516265c5c316522edf1118e2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f32.c
  08f340249660e277c5f0a9fe996b2ded  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f64.c
  5371e1c98b5384d1fc9d29a1c9528a12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f16.c
  a0b3076fcde6f4a14e72cdf805c5d09b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f32.c
  02b22ce06609ed45fd8299c4de360130  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f64.c
! 59d7735138daf2d48905f8ce341292c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef2_1.c
! 6f782d36509a005c7090095df3b5010c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef3_1.c
! 54a71b0eab72ee63d8c55a77f732fcfc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef4_1.c
! 30b3adfdda17c6b72c6d2c303aca9a7f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef_1.c
  5502f374ddbab948c42486472c1f2346  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_b.c
  2c4e7f539f9d96123065dd9353af5aab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_s16.c
  e3e0ab457d1d6f189599f368491fa2dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_s32.c
--- 64781,64809 ----
  f041f5d9d6ef9cfde9a0e4140f9e11d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u32.c
  4e7925d72c1383b78b892106b3822961  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u64.c
  0937a5cf0ee1ba02ca4eb95c03d47bd8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2_u8.c
! 6bd4da68bf415ffd82139334c44d0747  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c
! cd9482c83d210d136db6f823ccd35f77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c
! d48f008279e3788be1019b974fbc4fa3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c
! 6634cb9dc187fd42eb6320929084c4fc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c
! b8fc3ac3c546a01c4fca1ac62daba788  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_mf8.c
! 8a9dccee5adb398ad21f0196eb0e46d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c
! 051723234fe724f29420a1c1685a5522  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c
! c7d93b00eb6a1ba3bb712c8f318535b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c
! 113efd5d59ddfb6aa24b8642e5dfae09  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c
! 717a7d5d6ceff39719c8038284811df7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c
! fd7e435b8da68727927c5d35dc3839dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
! 19883b4568fa0ad00e798fe85d961006  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
! d8c6f66c33661dc33a3e5170c84c62f9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
  283d7b44a6a5b712e807a497ce6bf750  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f16.c
  039fbb0516265c5c316522edf1118e2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f32.c
  08f340249660e277c5f0a9fe996b2ded  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f64.c
  5371e1c98b5384d1fc9d29a1c9528a12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f16.c
  a0b3076fcde6f4a14e72cdf805c5d09b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f32.c
  02b22ce06609ed45fd8299c4de360130  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f64.c
! b91bfc049207dd56f0c3967feff37608  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef2_1.c
! 1022312f45478431d297df690e0f02d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef3_1.c
! d5ca891a88c4ee40840bd7a459ad570a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef4_1.c
! 7bf5ca7eb0ef6817f71945230a266a71  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef_1.c
  5502f374ddbab948c42486472c1f2346  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_b.c
  2c4e7f539f9d96123065dd9353af5aab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_s16.c
  e3e0ab457d1d6f189599f368491fa2dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpkhi_s32.c
*************** bb8cea4597f559e38f6605386367303d  gcc/te
*** 61218,61223 ****
--- 64829,64835 ----
  d563a6ecca21cf9a83f028ba75034027  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_f16.c
  32d9a80c983333fdfb94618fbafdc187  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_f32.c
  2816393b43ade3160f24e8bbd6884bee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_f64.c
+ a53b84da1b80677e6ab5f18ff278db25  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_mf8.c
  8edbae94bf819eb2ff83c22b43a84274  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_s16.c
  ed0117eecc38e70f241fd2bea9212f92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_s32.c
  b330e6ffb5385c50e1364ad9cdbe5286  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_s64.c
*************** d78fbb4fb741ebe547fbe52bf9ccd259  gcc/te
*** 61226,61243 ****
  83789c62a213280f7bcb0be7500d9a1c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u32.c
  3503b94bb472806fd528dd36a3fa09a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u64.c
  8f2a22cb732e7f5a25afaea4cb61e140  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u8.c
! 3dcbca2a039d2923543f4648c4b87eee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c
! b6d882c8f9ce8b470957071f15822055  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c
! 3035c84ab5e77a7665b01e23e2fb8f50  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c
! 1fa41423a48684f8a02f44f894ca1ab3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c
! 4f2502178cb4cd1a6bf25e7a48ea3328  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c
! 5e5f9c246370a06b3b04ee0200cd52ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c
! d9ebb6bbdef2b2d8adbfab3f7af30190  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c
! d1e47390538c1d1ec2ee2bbe4a58dd72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c
! 7827e8217d429f1d52874a9c0f85371e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c
! 965006bd3a2ab2f16ef67c68b69d7f7e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c
! 9d0e5455d6428f345c42fd3d79522bbc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c
! 4afd7f883bf24a4c166b50e6617efbbe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c
  a9746cc95ede4489017503e861a7bfc7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b16.c
  fc553197b7d444f7b6a03e0c5eea47e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b32.c
  fa578ce53fe4826bf7f43a91db495789  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b64.c
--- 64838,64856 ----
  83789c62a213280f7bcb0be7500d9a1c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u32.c
  3503b94bb472806fd528dd36a3fa09a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u64.c
  8f2a22cb732e7f5a25afaea4cb61e140  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_u8.c
! 1cbe2c74fa2e1f8d855db8686dd9885e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c
! 5482658e97006701230cd05beefbc306  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c
! 34d42cee2d108fc3dbef8cc62bb0faf3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c
! 5ea8aa162429f9991878d4c6c4a753f0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c
! c0307edc691a3f438f60832b476b4c96  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_mf8.c
! d885c6ba068bebe3305ee20896e73e75  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c
! 3ae070649ebdc687326f2a1ec3990268  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c
! 6b3c2e22c909990299bb66f2d1a29970  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c
! c5c5b269fbee174e0396d772d2e4b39e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c
! 181daac9e1f89f0efd41825448a067bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c
! 648042a5a69f614a5154b7b5975bc734  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c
! 7addcbbdd6303a64ed7e1454c5d5f1f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c
! b874c6c5d50b70b8b6b556a622845f78  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c
  a9746cc95ede4489017503e861a7bfc7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b16.c
  fc553197b7d444f7b6a03e0c5eea47e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b32.c
  fa578ce53fe4826bf7f43a91db495789  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_b64.c
*************** fa578ce53fe4826bf7f43a91db495789  gcc/te
*** 61246,61251 ****
--- 64859,64865 ----
  79a8dde2deb15b0c10b7ef5a7c6334cf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_f16.c
  43651c4ed020601343fec3e6e6b38d0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_f32.c
  7b05cf4f48d23c56ce4f51d54b17005f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_f64.c
+ 8c1b937677a7642022d4cb620dc502c0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_mf8.c
  7791f5db2a5e54cfa92a2bd9e297e4ea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_s16.c
  00fc3b8dfda9ce93631e1d14ae333d74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_s32.c
  1470ceaff3d4d7053ebdf3661ec22147  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_s64.c
*************** fa578ce53fe4826bf7f43a91db495789  gcc/te
*** 61254,61271 ****
  1e49efdaf25a46b6287f4d8b4895c44a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u32.c
  a167c5dbca81c18c82ed4d4c58b44bc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u64.c
  dd45374aeab8c83b7e1f2cfcf84e5702  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u8.c
! 313d5e0f9c473c68e5c1c9dc33756fbd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c
! 1d883b5b8138681ddd5464274809cd8a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c
! 1fe7d69791b7e0e3507daaf5c20374ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c
! c010b3cf81de831397fc23b8b21e18c9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c
! 33da7f3614c27e86012080c7fbd4e0e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c
! 51908339054587fb5e996739ebff941a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c
! 03f55ed2b59ceb5be87feb9af657cdd6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c
! 7b7c9de1fd26157c1449b78822d4defe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c
! 6f19cb2c4c6a64d82e4cab82861207fb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c
! 09c9d32944545982c0e1b6c073caf530  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c
! 410813d9668323d086589d12b8969bb3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c
! eef43a4e9b3e87f4215a2c6866459ae8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c
  c8dab6f4a3196444b529691994cb64bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b16.c
  65a7a8b71063dcdfe866ae264de69c5a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b32.c
  d4ea63165de2ed65c86ac78ef25bb11b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b64.c
--- 64868,64886 ----
  1e49efdaf25a46b6287f4d8b4895c44a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u32.c
  a167c5dbca81c18c82ed4d4c58b44bc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u64.c
  dd45374aeab8c83b7e1f2cfcf84e5702  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2_u8.c
! 88eb2646ddf82e36261fa9bf66ecb8ec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c
! 0790ea7778d35b0dd5788e001955f888  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c
! 9a7a2b8ddaba0efebb667f704a149299  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c
! 5e653f8997b3ce531bb0db8fb4fd2ec2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c
! f262d3dc344731d795ef57075e258be8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_mf8.c
! 4d6a0181eeab9c81349fbb75dd086a5a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c
! ec6965d8e4bbb1d87b0fcc3c20e512dd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c
! ef840d4363391e82385db67edc7e6b83  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c
! e9c4cd3cb1aef04a10f798e0008948c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c
! 0494cd808acc552e8dc38a820ea7aa7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c
! 30bb8e3c650bd1d8e1086e56e40aa08a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c
! 7e676f63a879780cde206cc71a3d83c0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c
! 359a55956a359585da725337266a2092  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c
  c8dab6f4a3196444b529691994cb64bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b16.c
  65a7a8b71063dcdfe866ae264de69c5a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b32.c
  d4ea63165de2ed65c86ac78ef25bb11b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/whilele_b64.c
*************** c3923e8a1bf47e00389c626a54cd4022  gcc/te
*** 61282,61287 ****
--- 64897,64903 ----
  7a3fe4ce40047541241317f766c4f1d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_f16.c
  efe397b6ffd2621069301c61c56da6ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_f32.c
  007a8429f0f8bd391542ebdd9773c113  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_f64.c
+ 962596a4dcb11eccceec63473a3228f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_mf8.c
  c02bd487f6a49f0f5771fe55529332fe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_s16.c
  c5f130a714658bb8ace31a30aea6bfec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_s32.c
  bf00f445142bc3e39ab3e44230398f5d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_s64.c
*************** bf00f445142bc3e39ab3e44230398f5d  gcc/te
*** 61290,61307 ****
  36915e6adfcaa9f320a3f02d8d031acb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u32.c
  35eb9d93bebe34e253bb07bb85f661e7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u64.c
  b2fc47d974d232fb778c4808711e2354  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u8.c
! ec3574e65f2abdee8112cced6dff0059  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c
! b071c09feca681f2f372b40f687edf85  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c
! 7434cc897cc958beecb7b8c38fcd623f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c
! e30cddf1adab60605e13bfab17a83a4e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c
! 6bcea22402fb47262ee4e2790f39a006  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c
! 3d1b7f93dbaf630f73353cf35bf2bb7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c
! 34849bf84f2344b4a8725e564890f964  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c
! c7fe3770c06d481d7a0d6482f73e1c0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c
! 05ab377af61298cbdbcc2c4cdadfcba0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c
! cda98d1de8c7d5daabb84851ba9b8b62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c
! 0d4b9e8a8b083d61e894fc69875078a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c
! ac0e4e044289c567275164e5824bd1df  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c
  b9d23f73b969ef7f04706c779f341df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b16.c
  9cd18b7b6d4437cafcc388377a37153f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b32.c
  f0f1263ac600dbd127ffc8686ef615aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b64.c
--- 64906,64924 ----
  36915e6adfcaa9f320a3f02d8d031acb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u32.c
  35eb9d93bebe34e253bb07bb85f661e7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u64.c
  b2fc47d974d232fb778c4808711e2354  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1_u8.c
! 0d1b7132baf9f1216a3464fde25adb1f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c
! ec090819d9e346ff2e2f69a2a8e451c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c
! 1e3da82d9747ff795e72dd67af249778  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c
! a729241a933f9a6ca7b2a83b575d0597  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c
! 517a799665be9ecce7845e91388767ef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_mf8.c
! 0348ae1881898bc558f9456eb14a1d7d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c
! 2cb863bc4c1f05d58b1555e80a5d464b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c
! 9ba99151accee31f28ff5ca61dc1791c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c
! ee8fe0a0ea2f6d4f3ad681beea391da4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c
! 7cdc24380fbdbb33e0f9259a6a31505a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c
! 6876c74da392909788035a88d0e902ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c
! b87131b5029e3e0750993e96b6f4e758  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c
! 4ebb908c37e9068e2ef6c4b62b1a35d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c
  b9d23f73b969ef7f04706c779f341df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b16.c
  9cd18b7b6d4437cafcc388377a37153f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b32.c
  f0f1263ac600dbd127ffc8686ef615aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_b64.c
*************** db028c4440add2fc4adca651035636bd  gcc/te
*** 61310,61315 ****
--- 64927,64933 ----
  6ba34db1ad38100380426193def31e12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_f16.c
  d04948b4834643d823149ba010bc7701  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_f32.c
  b0c7003d033a1e66faf939ba6a87699e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_f64.c
+ 7b02126e23c38093db6e6acd26702813  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_mf8.c
  1c12e9921bbed02d606401175bab33c7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_s16.c
  66b684a7984c3c104e46a958a2edd225  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_s32.c
  b7dc9400823dc6208eab08ecb347b670  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_s64.c
*************** d1da47334b7295b98641b7fbe44a8f9d  gcc/te
*** 61318,61341 ****
  fde1dec1cf733f9704d76b898b6853e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u32.c
  e7494eda5910bc8e2fcfcf8f1bf334c2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u64.c
  2af2ac1022ad007cd9002135026b13c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u8.c
! 421e6603328c82cef739d272d0890b35  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c
! 6bf6eb8fb73007da3dfce8f6a1497dad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c
! bedd2e043b3796b45d171fb8d708f5d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c
! b3b709cbfff54ef6f84269bbc793f67b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c
! b2565e0abba1eb1e91d75dfda22099e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c
! ddc69c34ebffa23fa65f75e7504059d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c
! 64ced1a7a3ea1b138788777a42a5598d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c
! ac95af410a833fd739bdcdff89ecd166  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c
! 360773e2ed4cf808ddae5d01da017d72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c
! 4ddb52fcf6808a7635f9679f90f24088  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
! 4b43fa14d56ed0d48911b9690ce5d75b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
! e68175c46da8df4f6c744465c32a30b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
  b261313e5da1689d5eac7d27948a935b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_index_1.c
  f439e0960e8177b476453cb45e7ab2cc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_offset_1.c
  b6224acd5d609473a3f91ca13ff23eef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_1.c
  1510b83a0b1baf70601985c85f019762  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_n.c
  46fea8fe01ddf17f515efe0bd36669dc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_1.c
! af89fdf606c973d8bd4b526deebc3e58  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_2.c
  f9a5917115e2a7a6c256243d562bcbcd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_lane_1.c
  6a9201f477e7c15b5a49327185947f2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_lane_1.c
  a88d9da697f24cfa029fb24091638202  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_opt_n_1.c
--- 64936,64960 ----
  fde1dec1cf733f9704d76b898b6853e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u32.c
  e7494eda5910bc8e2fcfcf8f1bf334c2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u64.c
  2af2ac1022ad007cd9002135026b13c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2_u8.c
! fe902ef12e58e0816a720545c4637c3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c
! 8c5375c30cbd0ae3c7e604177d623db9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c
! 2dc18321e01f899c21c013f00bc5c6bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c
! 8b30c0ff747a7b0f05ebb00f629deab1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c
! 35bea26b31babe221eb68dd08215299d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_mf8.c
! 61a227e9ccafd6640f13d82aab8a8741  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c
! e929071a7965e1edaec38ae993c8b8dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c
! 024fa59aba26601881c72544bca79899  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c
! 67c4679e2722cf27aa754a61fd044c4c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c
! 53790d3941397f60b93c04536fee6cdb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c
! ab754b624c1f73a03d94c9a531641505  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
! 56be7c1d75e0aed43669387578771b2d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
! 9f6828f48532cd530b2e0cd8c4262219  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
  b261313e5da1689d5eac7d27948a935b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_index_1.c
  f439e0960e8177b476453cb45e7ab2cc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_offset_1.c
  b6224acd5d609473a3f91ca13ff23eef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_1.c
  1510b83a0b1baf70601985c85f019762  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_n.c
  46fea8fe01ddf17f515efe0bd36669dc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_1.c
! 91e225deac8210e14093f2aa6033689a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_2.c
  f9a5917115e2a7a6c256243d562bcbcd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_lane_1.c
  6a9201f477e7c15b5a49327185947f2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_lane_1.c
  a88d9da697f24cfa029fb24091638202  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_opt_n_1.c
*************** af6d17482a59d82ecf6030c429377322  gcc/te
*** 61346,61354 ****
  95b4fe75b039c1c048d6a86b4e098c7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_2.c
  3da47f318cc13cf83605e8b3811e211e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_3.c
  4bd4b0d44a938e68c2c88659891d035d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_1.c
! 2b695ddc86ceba028190cb428e8ed9ce  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_2.c
  2474780e26f89300396c78a73db85653  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_rotate_1.c
! 9b682259f48c8a682a863d15e4f84e9c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_single_1.c
  9eded2861c9844b0cd9aab007e831f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_to_uint_1.c
  08463a43f1196b5e3353d9272879c1c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_n_1.c
  a71eac74a7c0cb9e452b4f181ca2f1e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_1.c
--- 64965,64973 ----
  95b4fe75b039c1c048d6a86b4e098c7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_2.c
  3da47f318cc13cf83605e8b3811e211e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_3.c
  4bd4b0d44a938e68c2c88659891d035d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_1.c
! 960eb555a958e1279ed31aff844eb659  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_2.c
  2474780e26f89300396c78a73db85653  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_rotate_1.c
! 4600018c7706c8742f0ae52d7875ff1d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_single_1.c
  9eded2861c9844b0cd9aab007e831f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_to_uint_1.c
  08463a43f1196b5e3353d9272879c1c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_n_1.c
  a71eac74a7c0cb9e452b4f181ca2f1e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_1.c
*************** c6d84b0aa9031d9da4500f61b64a39f3  gcc/te
*** 61361,61385 ****
  3519ef42cc2ea6e6aa95a2a27424c013  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_int_m_1.c
  bb718f37ebd51c6b74490488e1bc254d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_1.c
  6e9cdbff31e4ca5170514082d7739c85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_2.c
! 0543ec601b83385a0bb9ddc86fb6f4eb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_int_opt_single_1.c
! 114179cbc710b68b32f041fe863ffdbd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_1.c
! 532e33c1e0354c7769bfb971b1d7d034  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_2.c
! 7477383e59b2594ac52d787f07d46704  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_3.c
! cb53fe1c9ca603a8036e081fce8045c6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_4.c
! f6e7f4766927bb0343c8aa3bcfc0910f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_1.c
! e648ab6999dc9d7a49b457385b1a1ed6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_2.c
! 5c06cc1735bd3327a6465c5d71b9e74f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_3.c
! 17ceb65cf8c721a6b11ccebcdda65841  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_uint_opt_single_1.c
  b4e9c28da63af2bded8cb279b6986c8b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_uint_m_1.c
  3901102f1b487e6c5558014ffcfa85ef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_1.c
! 13d11b0a502cfb0065accf3ace6c8c8d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_2.c
! cdd9f599e1c0782f09c559d002fb1869  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clamp_1.c
  f3f6e0f3007fb326a88a40bc70484886  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clast_1.c
  86feec33d659444e15fc1e11a42fb937  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_1.c
  1734595d02158a8468b29fd18daf657e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_opt_n_1.c
  e71b116d6eb7de546591d4b41632a115  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_ptr_1.c
  4dd6c509245443ca131c4f60f54dbfdf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_1.c
! dfd389fbbe69761ebb617c8bf562d39b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_count_1.c
  a70d786e40b7e98a1f76282b15633670  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_wide_opt_n_1.c
  5561acaaee271b850f1d738828033770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_pat_1.c
  ce13014966a94f4ea101d9f8892229a4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_vector_1.c
--- 64980,65004 ----
  3519ef42cc2ea6e6aa95a2a27424c013  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_int_m_1.c
  bb718f37ebd51c6b74490488e1bc254d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_1.c
  6e9cdbff31e4ca5170514082d7739c85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_2.c
! b8c6064e5b41b5df484ec4978a692c90  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_int_opt_single_1.c
! 91623035742dc7185359751478fd72a5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_1.c
! 7ffc61e0002f4f9ad01c856d744dee4e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_2.c
! f28aa3c1a6d4ec44c802d988d6cdefdd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_3.c
! 7c609e4a112eccba06d6248a2f2142cf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_4.c
! f13116f1c2947e603c6123f6cad9aa11  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_1.c
! 5a3e39c630a68dbd225926cddcf30822  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_2.c
! a8207037fa252b18df4247c0ee15bcbc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_3.c
! e0e98338e3ce33f9804bcd82b06e0af6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_uint_opt_single_1.c
  b4e9c28da63af2bded8cb279b6986c8b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_uint_m_1.c
  3901102f1b487e6c5558014ffcfa85ef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_1.c
! 70c43a211175c95d3d86e76cd202ede9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_2.c
! b41b729e6b8eb85691cf9dcf47ec9d7a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clamp_1.c
  f3f6e0f3007fb326a88a40bc70484886  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clast_1.c
  86feec33d659444e15fc1e11a42fb937  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_1.c
  1734595d02158a8468b29fd18daf657e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_opt_n_1.c
  e71b116d6eb7de546591d4b41632a115  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_ptr_1.c
  4dd6c509245443ca131c4f60f54dbfdf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_1.c
! c921d0789bf9d266902c7588683007b6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_count_1.c
  a70d786e40b7e98a1f76282b15633670  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_wide_opt_n_1.c
  5561acaaee271b850f1d738828033770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_pat_1.c
  ce13014966a94f4ea101d9f8892229a4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_vector_1.c
*************** ce13014966a94f4ea101d9f8892229a4  gcc/te
*** 61387,61400 ****
  4c2776a6bdf6cd2dcd6d347390ff0dcb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_2.c
  03d07c8fde019915acdb809ce29efa7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_3.c
  8634c9ab763ed1f0527cf45a472103ff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_4.c
! a8d03a4b86c9a3e0d7b05c1824a898c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_5.c
  eb453b437e35070d74c76756ef730f41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_6.c
! cad879e38ee9e7f549d3594c7bf2675c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_int_lane_1.c
! 8c329df4178279456908732d70338865  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_1.c
! e5271991a5220a15ae3a90a81059a94d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_2.c
! 9a88b2782d73e617a7b008c441c39c6f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_uint_lane_1.c
  09c8d57356b444e099b8c216f49a6f86  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dup_neonq_1.c
  249e8a678420c92db86a63096adaa40c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ext_1.c
  9ecf203ce73f31a3adb3fd85da731e33  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/fold_left_1.c
  a225ae423f67b692af207a8a83138a66  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_1.c
  799639f0fb6c82853d5a4f033f154e54  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_2.c
--- 65006,65020 ----
  4c2776a6bdf6cd2dcd6d347390ff0dcb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_2.c
  03d07c8fde019915acdb809ce29efa7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_3.c
  8634c9ab763ed1f0527cf45a472103ff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_4.c
! ee861575fd7ba7352b5e58115989bc71  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_5.c
  eb453b437e35070d74c76756ef730f41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_6.c
! 44e43f83cb747814b73b3758ebf46b41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_int_lane_1.c
! b1060b874f4397039bde58eefc5046e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_1.c
! 39395ae60bcfb1c31e005d9ea61c5fa3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_2.c
! c4f1755b3fd3f6d0a728033f945ed90e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_uint_lane_1.c
  09c8d57356b444e099b8c216f49a6f86  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dup_neonq_1.c
  249e8a678420c92db86a63096adaa40c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ext_1.c
+ 81b920eaea7dfd6f7200b74a745af83f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/extq_1.c
  9ecf203ce73f31a3adb3fd85da731e33  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/fold_left_1.c
  a225ae423f67b692af207a8a83138a66  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_1.c
  799639f0fb6c82853d5a4f033f154e54  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_2.c
*************** ec11eff8f5009ed3e03c5cf524c5878a  gcc/te
*** 61409,61416 ****
  337b7d7297a2c734b9d6bb549e12ff20  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_5.c
  1b825dc1e669f521fe9e9634dc38c59d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_6.c
  9983fc5cd06892d81b07b85fc02392d2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_neonq_1.c
! b7a3c2edca741d7b4c4b8125976c63a2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_1.c
! 979b52ffe58f075abc0d7aeee3475935  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_2.c
  b770c388883ffa9cba2a327f326c095c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_3.c
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_4.c
  ab6e998de220254a7fd49a73ef7eeb48  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_1.c
--- 65029,65036 ----
  337b7d7297a2c734b9d6bb549e12ff20  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_5.c
  1b825dc1e669f521fe9e9634dc38c59d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_6.c
  9983fc5cd06892d81b07b85fc02392d2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_neonq_1.c
! 2b7efeb649940da171b314cc463cd055  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_1.c
! 58f2a5e2109595254b5c49f0f18498e5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_2.c
  b770c388883ffa9cba2a327f326c095c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_3.c
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_4.c
  ab6e998de220254a7fd49a73ef7eeb48  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_1.c
*************** a06036a81fac97cbaa499eb187abc348  gcc/te
*** 61425,61450 ****
  8bb71ab3a8bcb92e7151ef1df16180d6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_5.c
  9ef9fb338eb0f207bb200f90c9e994f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_1.c
  c72982b3747c9fe05f2de4fd4053e092  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_scalar_1.c
- 5de0e0e3125de798299de6223b4c25fb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ld1sh_gather_1.c
  5ed1c1661da101e5bedd40a2e46264a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_1.c
  bc9b522a6edaa7e70f173886fb12b655  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_2.c
  05b39248f4441b665b2495099fad0515  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_3.c
! 5de0e0e3125de798299de6223b4c25fb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_1.c
  29f5e3e3f9114c68937715ecaa061c75  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_restricted_1.c
! da9f4653cd5ef8e22952e52c69f8be18  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c
! d916b5c3b835b93cb43702685dbe2c9f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c
! 3a8ee5023f320061317bb16641ecf4c7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c
! 434fa4214ec15a5f548143e6182e1f43  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c
! 8fb07dc1d6dadd069ceec696ec117838  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c
  4599ffffa6bf722bcdb09c098c45a128  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_1.c
  52a96e75c8064ec8af539a35b2248137  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_2.c
  e8ea911fa407ba1b9d48c515bf711cfd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_3.c
  e14b246e556ec8528a39d36aee14d378  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_4.c
  4cd9636155557a344583bc9781ecce1d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_1.c
  ba9bbf08df367c4a48ed27a4a5da72de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_2.c
  2e41f561e98a0c3ec68bce4791ed96a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_1.c
  703a562b8349e6f20e0b4a710eec33d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_2.c
  20ca8a43a539e1c7832f22ead8516187  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_replicate_1.c
  ac1112ea88694d89dc677d86e0e3d35d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_1.c
  ae39438a4e7b3ed18af12c7495d1e030  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_2.c
  81be2436455b026e124189fe99f62212  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_3.c
--- 65045,65075 ----
  8bb71ab3a8bcb92e7151ef1df16180d6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_5.c
  9ef9fb338eb0f207bb200f90c9e994f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_1.c
  c72982b3747c9fe05f2de4fd4053e092  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_scalar_1.c
  5ed1c1661da101e5bedd40a2e46264a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_1.c
  bc9b522a6edaa7e70f173886fb12b655  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_2.c
  05b39248f4441b665b2495099fad0515  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_3.c
! 9803ae16b7043aca5ba7630232e01c18  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_1.c
  29f5e3e3f9114c68937715ecaa061c75  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_restricted_1.c
! ec703dbe7431704808e1aa12d68c58d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c
! 0743aac674c6312c1c3d3d34a50a07c5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c
! 277eb91d97ae52071e18d72cf089c895  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c
! 840d18f714dca09174da59574c945cbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c
! ff63bf1f560ac93e9c81b75e25fe588e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c
  4599ffffa6bf722bcdb09c098c45a128  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_1.c
  52a96e75c8064ec8af539a35b2248137  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_2.c
  e8ea911fa407ba1b9d48c515bf711cfd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_3.c
  e14b246e556ec8528a39d36aee14d378  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_4.c
+ 4bd67eb96be8b364900f8431e42b067e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather64_sv_index_1.c
+ 85bbf5507f5ffe8e7ab97ba5f7caecd5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather64_sv_offset_1.c
  4cd9636155557a344583bc9781ecce1d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_1.c
  ba9bbf08df367c4a48ed27a4a5da72de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_2.c
  2e41f561e98a0c3ec68bce4791ed96a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_1.c
  703a562b8349e6f20e0b4a710eec33d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_2.c
  20ca8a43a539e1c7832f22ead8516187  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_replicate_1.c
+ f59dc77f036374e8d1ce0da9dd091f96  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/lut_1.c
+ a8c36347ff2f2c2ea3e5bef804a4be1b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/lut_2.c
+ 2cb34985004df4e459b1a4573c0442fd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/lut_3.c
+ 86c7b680184ac78130532e3d72dab0bb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/lut_4.c
  ac1112ea88694d89dc677d86e0e3d35d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_1.c
  ae39438a4e7b3ed18af12c7495d1e030  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_2.c
  81be2436455b026e124189fe99f62212  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_3.c
*************** ae39438a4e7b3ed18af12c7495d1e030  gcc/te
*** 61454,61459 ****
--- 65079,65088 ----
  72ad801d133605265797b063a4de9584  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_7.c
  f81bab9101248e66e7b11d0198342f79  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mul_lane_1.c
  602557d7837f6edcaeb86bc494ade501  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pattern_pred_1.c
+ 4d22aa630b4982540d6b6693f86d6841  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pmov_from_vector_1.c
+ 4a2c68f2bbd18f80523bba25bc9ec00b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pmov_from_vector_lane_1.c
+ 8a5580379b4e78927b35abef17319c6b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pmov_to_vector_lane_1.c
+ 82543cf49f1610b8f40ee99fb1d0e273  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pmov_to_vector_lane_2.c
  8340e47b24f475843c9daa0136304321  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/pr100270_1.c
  530394b929ad6bccc756ef869131f01d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_1.c
  21c717707f139824bb62e119a9f80fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_index_1.c
*************** ef1c49097e0bab8ac8f2b3b769937427  gcc/te
*** 61481,61499 ****
  927f92ccee39bc60defa345aba4f4acc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_to_uint_1.c
  877fcce12ad68ab4c20ab4c8c67c4add  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_1.c
  cfd861255a479d919738f3d77cdc3f9f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_to_uint_1.c
! a7af6e40463ead1066d26d2635cffe5f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowxn_1.c
! 853a34e1cd9dc7794a32094665aae5cf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
! 86b75bf9b1e65f6673305c604cc30dd9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-2.c
  e7a003fc623dfa02a69d0c61259a5bef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_1.c
  2ed76cfbfa38c71939a4645029ae60be  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_2.c
  5da30099dd8e3cc2f16c40bce41be05b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
  db6a7f40ba388da3a0fcea32db830c02  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
  dc083d1856f3a13be0a767276b132afb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_1.c
  592a579e8bdf1653f88b2e40b8c344e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
  07ef55fd0d3bf03a5c25955024d8438e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c
! df9b1c5659a1667d777d01185a31d302  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/storexn_1.c
  b52fb4e9ec8a6b03376457660198d288  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/struct_1.c
  923c99057f062c134be803bd6d55fc2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svboolx2_1.c
  2d11aefe539338b6e7ec761468099b30  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svcount_1.c
  d9823cbd34836a7cbb417173ee20f519  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast.c
  29cace40b91c5375f944f44e97bae2f5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast128_run.c
--- 65110,65132 ----
  927f92ccee39bc60defa345aba4f4acc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_to_uint_1.c
  877fcce12ad68ab4c20ab4c8c67c4add  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_1.c
  cfd861255a479d919738f3d77cdc3f9f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_to_uint_1.c
! 604e4abd23942d34585af772944f9c56  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowxn_1.c
! 819fe54ece0226ab5a2e81be6ab9a30c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
! b88a957aed2501394af1144a87154d7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-2.c
  e7a003fc623dfa02a69d0c61259a5bef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_1.c
  2ed76cfbfa38c71939a4645029ae60be  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_2.c
+ 13cd785c2f626a2a81562225c71ce073  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter64_1.c
+ 1613dcb5cdc577504bd92a030ed2b3be  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter64_index_1.c
+ 0bf563e4abd7247484d7515ed789bfe7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter64_offset_1.c
  5da30099dd8e3cc2f16c40bce41be05b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
  db6a7f40ba388da3a0fcea32db830c02  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
  dc083d1856f3a13be0a767276b132afb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_1.c
  592a579e8bdf1653f88b2e40b8c344e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
  07ef55fd0d3bf03a5c25955024d8438e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c
! 23340990d7feb5bcb45a73e37324c75d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/storexn_1.c
  b52fb4e9ec8a6b03376457660198d288  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/struct_1.c
  923c99057f062c134be803bd6d55fc2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svboolx2_1.c
+ af84471fa52113a559843350049c942e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svboolx4_1.c
  2d11aefe539338b6e7ec761468099b30  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svcount_1.c
  d9823cbd34836a7cbb417173ee20f519  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast.c
  29cace40b91c5375f944f44e97bae2f5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast128_run.c
*************** b3c9cac37ce7a099fe7e4802e538596c  gcc/te
*** 61509,61520 ****
  46402646bfe2a632ef690f5fc962d45e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_rotate_1.c
  dcbeaf0326da4b9dee3e0890f740f8c4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_lane_1.c
  1536d36252c18e28cdfb06054849acd5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_opt_n_1.c
  7a6599eaefd501075adb77149adfd4e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_opt_n_1.c
  e0ff4cfc56081e30cc77f5cb52e669aa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_1.c
  86c8c495cbb710026739007820398066  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_rotate_1.c
  fab8a0231988ca90aae231c61af26643  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_1.c
  67534d31f9bf7ebcadf27eb3db59aa7a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_2.c
! b62ed8d459ba966980a1c9ec9e1d096b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_or_011_lane_1.c
  c9bfef59737c38bb4012159cc1fc5757  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_rotate_1.c
  c5079a4f97471d28afd5fc84afe9e6fa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_rotate_1.c
  e0e2c1b160c8aa37f2e10c750eb8d568  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_shift_right_imm_1.c
--- 65142,65157 ----
  46402646bfe2a632ef690f5fc962d45e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_rotate_1.c
  dcbeaf0326da4b9dee3e0890f740f8c4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_lane_1.c
  1536d36252c18e28cdfb06054849acd5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_opt_n_1.c
+ 2866d130f78a9a45325c15bbcf1dedc7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c
+ 044641e3a65eba88ab0693e7b9cf31f6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_1.c
+ 7656f8aee2991375f691766f1b928cc6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c
+ e5335008753c5a4e46be41feebff9c85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_opt_n_1.c
  7a6599eaefd501075adb77149adfd4e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_opt_n_1.c
  e0ff4cfc56081e30cc77f5cb52e669aa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_1.c
  86c8c495cbb710026739007820398066  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_rotate_1.c
  fab8a0231988ca90aae231c61af26643  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_1.c
  67534d31f9bf7ebcadf27eb3db59aa7a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_2.c
! bae0e098a67d1c10ad50fb765775abc7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_or_011_lane_1.c
  c9bfef59737c38bb4012159cc1fc5757  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_rotate_1.c
  c5079a4f97471d28afd5fc84afe9e6fa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_rotate_1.c
  e0e2c1b160c8aa37f2e10c750eb8d568  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_shift_right_imm_1.c
*************** b64ceb135019ca0468a29f479670b23e  gcc/te
*** 61548,61554 ****
  097aae60317737c1fae07460f599a298  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_1.c
  2fe0c69467ef1da4c1258b244058ad56  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_2.c
  02448ffd0a1f6e903ab6b09774338e0d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_narrowt_1.c
! 9dc6d91af28f13e7829749d6abf2d74b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_1.c
  33f4b46aa573fa6dd8c9579200b14e41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_1.c
  a3afd4274251cb99bc08ee3a8d7fbc96  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_to_uint_1.c
  ae7313ce49643183ba2ad1bc61668936  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_1.c
--- 65185,65194 ----
  097aae60317737c1fae07460f599a298  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_1.c
  2fe0c69467ef1da4c1258b244058ad56  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_2.c
  02448ffd0a1f6e903ab6b09774338e0d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_narrowt_1.c
! c6db59f3ea5371a55f6d6e3a0e4c6479  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_1.c
! 21b3583de3558a4ad6c5e52e2fa1cf61  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_narrow_1.c
! a8a42a01a3b82cc69580a02a5479df6b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_narrowt_1.c
! a655925b678fc87ea5ba628148f4a7aa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_lane_1.c
  33f4b46aa573fa6dd8c9579200b14e41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_1.c
  a3afd4274251cb99bc08ee3a8d7fbc96  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_to_uint_1.c
  ae7313ce49643183ba2ad1bc61668936  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_1.c
*************** a7b214e73cc85486f612e05af76a069e  gcc/te
*** 61560,61575 ****
  3888513e08e8a3f59659f00234ad2a28  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_uint_1.c
  062996e744f1756f4eb9a8718b34ab7c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_widen_1.c
  4404793b95ce0451db382713b8837e36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_m_1.c
! 3938d809f37baeb2c39516e53118c316  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_1.c
  4fd25827a923a2c5e0935d63a9469153  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_2.c
  134a362cc501b40090666439460283f4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_3.c
! a48d71c86d0a741c08703094d9e5eb34  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unaryxn_1.c
  0a1aa4bef991a224ceb1d69748618687  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_1.c
  336167b7db7104244a24a1310090a6a8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_2.c
! b90966e5c8ac18d79f9f77f1bf562567  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_1.c
  de2e59eeec9cea88f8e1125fdec8d66d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_m_1.c
! 0e8960bf707959071679d67cd30b96b6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_slice_1.c
  aa357d405e2f83cc3b5b21d3513c1281  gcc/testsuite/gcc.target/aarch64/sve/acle/general/add_1.c
  171242c36c5137cac47934923813a672  gcc/testsuite/gcc.target/aarch64/sve/acle/general/and_1.c
  68b3b762499b486689be862b5b06513c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
  c837aa90d4f65fe43a41a1df66ecddaa  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_2.c
--- 65200,65216 ----
  3888513e08e8a3f59659f00234ad2a28  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_uint_1.c
  062996e744f1756f4eb9a8718b34ab7c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_widen_1.c
  4404793b95ce0451db382713b8837e36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_m_1.c
! ce06c082eb9f3a84a2b6f222b91a85e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_1.c
  4fd25827a923a2c5e0935d63a9469153  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_2.c
  134a362cc501b40090666439460283f4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_3.c
! e37e98d223ef60324ab8c4926f9e4a45  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unaryxn_1.c
  0a1aa4bef991a224ceb1d69748618687  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_1.c
  336167b7db7104244a24a1310090a6a8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_2.c
! 81fe8732bf6c29692f13d3d91ba83d4d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_1.c
  de2e59eeec9cea88f8e1125fdec8d66d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_m_1.c
! 3467808faea5fc2ec3e4034bf0a03de8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_slice_1.c
  aa357d405e2f83cc3b5b21d3513c1281  gcc/testsuite/gcc.target/aarch64/sve/acle/general/add_1.c
+ e40e4d129ea43829ee4a75365eb50265  gcc/testsuite/gcc.target/aarch64/sve/acle/general/amin_1.c
  171242c36c5137cac47934923813a672  gcc/testsuite/gcc.target/aarch64/sve/acle/general/and_1.c
  68b3b762499b486689be862b5b06513c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
  c837aa90d4f65fe43a41a1df66ecddaa  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_2.c
*************** c837aa90d4f65fe43a41a1df66ecddaa  gcc/te
*** 61577,61583 ****
  dbd822adb848a971885a06967432c628  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_4.c
  cffa63a742186323feab22505915a6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_5.c
  4427e079ae4e96814bee01be95c9fa65  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_6.c
! 8c6def5b6e4382b26fc86316ed6f920e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_7.c
  92c276aa826427c641795daf9568c67a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_8.c
  05382618b8c4ba6e308d6b5ff864fab5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/bic_1.c
  af77aba325d1fbc52d95aa9fcc602577  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
--- 65218,65224 ----
  dbd822adb848a971885a06967432c628  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_4.c
  cffa63a742186323feab22505915a6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_5.c
  4427e079ae4e96814bee01be95c9fa65  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_6.c
! e681aa76b7413f54146a5660729b0f7c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_7.c
  92c276aa826427c641795daf9568c67a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_8.c
  05382618b8c4ba6e308d6b5ff864fab5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/bic_1.c
  af77aba325d1fbc52d95aa9fcc602577  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
*************** f05f061869c6f335b6395f5250ec83ee  gcc/te
*** 61597,61603 ****
  60a6cb5f3583610557e9b4dde6cd5453  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntd_pat_1.c
  2279605ca76a398874fa5ee6664d3d52  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cnth_pat_1.c
  ccec270f903888ca00fe8baba907fa5f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntw_pat_1.c
! d9a7ca3151d2101ffcf8673b6e6ff600  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cpy_1.c
  75a2cc5eaade2a1a499200b05ae5f53c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_1.c
  16c8b0fa40139dcbb0edba6873a09834  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_2.c
  2e8158c2609b9c1e72cb5d38c89e9394  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_3.c
--- 65238,65245 ----
  60a6cb5f3583610557e9b4dde6cd5453  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntd_pat_1.c
  2279605ca76a398874fa5ee6664d3d52  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cnth_pat_1.c
  ccec270f903888ca00fe8baba907fa5f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntw_pat_1.c
! adff197d6435e0a1e9ec2dcd172e75f4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cops.c
! fb0b99833eb0c168abc014e0554a156c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cpy_1.c
  75a2cc5eaade2a1a499200b05ae5f53c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_1.c
  16c8b0fa40139dcbb0edba6873a09834  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_2.c
  2e8158c2609b9c1e72cb5d38c89e9394  gcc/testsuite/gcc.target/aarch64/sve/acle/general/debug_3.c
*************** d9a7ca3151d2101ffcf8673b6e6ff600  gcc/te
*** 61605,61616 ****
  32e318b075de813ba0e3537f2b23f26a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/deref_1.c
  e46654fee58cc18d1ac01ba2cdb41732  gcc/testsuite/gcc.target/aarch64/sve/acle/general/deref_2.c
  091e427422cbb47ec0b2dcc6afb999d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/double_pragma_1.c
! 9a54ccb1477231b28fa9890ff0236c4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_1.c
  031b72e29159a4e91bbc8c052d96d350  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_10.c
  60aaa4e9d487bd6a45aa3bf0af5e8a64  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_11.c
! 8b0c761cea4233e5fa7bdf46876000c3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
! 18e1c44f4c68aef7141e21d94efcb130  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
! 01ad385ac38540a97d0f0010298449b4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
  d1b6ffd93379744e84b1e20517c2a8ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
  25c9afc168aa4280373525ba6a0fb422  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
--- 65247,65259 ----
  32e318b075de813ba0e3537f2b23f26a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/deref_1.c
  e46654fee58cc18d1ac01ba2cdb41732  gcc/testsuite/gcc.target/aarch64/sve/acle/general/deref_2.c
  091e427422cbb47ec0b2dcc6afb999d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/double_pragma_1.c
! fbcf30f134e1f525bca176a6f7f969ad  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_1.c
  031b72e29159a4e91bbc8c052d96d350  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_10.c
  60aaa4e9d487bd6a45aa3bf0af5e8a64  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_11.c
! 745fd0887732daddba57f4a7433ad4d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_12.c
! 9ea3d7ce421ee57976811e0d8fff7a07  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
! 0936add06a30e2393cebcf86fef22d59  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
! 01ee95c619919e2e7bd0cb9e3de8fbb8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
  d1b6ffd93379744e84b1e20517c2a8ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
  25c9afc168aa4280373525ba6a0fb422  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
*************** c708987cfd1689934541e80a8365d6e2  gcc/te
*** 61632,61638 ****
  36e84466ad8c8202022edb8dbbcff8c7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c
  cd8c13f3a593aa4740b7b89ecc83e265  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_1.c
  3fccd4c3b1554dbc93cfd07f87aab9be  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_2.c
! 3d191f60f7b2ffabd5c9e211d93fa260  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_3.c
  b36b54bea7bee04bed45d73a87ac0322  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_4.c
  69ae6ebc76730905395b0222e6fe1a42  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_5.c
  8372262a31e1ff9516659085ed6ac939  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_6.c
--- 65275,65281 ----
  36e84466ad8c8202022edb8dbbcff8c7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c
  cd8c13f3a593aa4740b7b89ecc83e265  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_1.c
  3fccd4c3b1554dbc93cfd07f87aab9be  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_2.c
! a30c14af713351e1e33747436b4da361  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_3.c
  b36b54bea7bee04bed45d73a87ac0322  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_4.c
  69ae6ebc76730905395b0222e6fe1a42  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_5.c
  8372262a31e1ff9516659085ed6ac939  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_6.c
*************** bb3a7f2587d8584d185738649f93a6f6  gcc/te
*** 61654,61663 ****
--- 65297,65309 ----
  6d3b0cbb6b0b88e0030fbf0003faa4c9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_2.c
  9ff121474de72b7f1e7df15e02d1fcbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr104092.c
  e376d54074cb770c4949e830690ed08f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_1.c
+ c4e807392dbe7079bb88acf040351299  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_2.c
  06b9fe18846ba9da10d77ea945b0fa4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr107920.c
  250431124622842c2b832d1eeb0e2c51  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr112906.c
  399964c19f2b44b199fd6c9d5258a129  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr114577_1.c
  b47de1519a1ea6d899c2a6cd56b65cba  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr114577_2.c
+ 4be435ec882c5745457b0a6378296096  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
+ a37d20c2585b9553233fb42e281e9b03  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
  cd84e485b3fa7a0d50f2ee5113eca33d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr94683.c
  111a35b5bdbe877086a99d29b13dc65b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr94700.c
  dd9873ff910539b000561a51ccc3a52f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr96146.c
*************** a60971180940fb9126dc3f2440073c3a  gcc/te
*** 61680,61689 ****
  de2f1d6ff8c05a5ea5ffb81b8ce61ce2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unoptimized_1.c
  129d25d3f8de8545837b08910c736d81  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_1.c
  c6678960d749be98b106a4f7b03c6107  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_10.c
  2af690a7706f6a510d3d0b49d8bcbc92  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_2.c
  786ef1b1105a4d7d76e8259890eddb76  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_3.c
  32aacb55289afea049bef27ee3e43b32  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_4.c
! 73f73113a8c352f22109f5dce0287a00  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
  c4e508d281be8960d54bac41c072670a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_6.c
  91bc27f9c52bd64030e6b7f8cb43204d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_7.c
  3c67dda964fc05a59fcc4c706524e07f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_8.c
--- 65326,65337 ----
  de2f1d6ff8c05a5ea5ffb81b8ce61ce2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unoptimized_1.c
  129d25d3f8de8545837b08910c736d81  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_1.c
  c6678960d749be98b106a4f7b03c6107  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_10.c
+ b32f166240692ad09eeb88e4c41a0584  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_11.c
+ 3773293a3c03a36cfc6110e54ac5b251  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_12.c
  2af690a7706f6a510d3d0b49d8bcbc92  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_2.c
  786ef1b1105a4d7d76e8259890eddb76  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_3.c
  32aacb55289afea049bef27ee3e43b32  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_4.c
! 64c71eaba24d13d25c9fb2a9340a38e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
  c4e508d281be8960d54bac41c072670a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_6.c
  91bc27f9c52bd64030e6b7f8cb43204d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_7.c
  3c67dda964fc05a59fcc4c706524e07f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_8.c
*************** f4c9f8f5a8d604bc447fb7d463e7735f  gcc/te
*** 61695,61701 ****
  ba734365b41c2307c8f246196db5fb40  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_5.c
  961cd5bf40c30fe194d6c5a5bb165705  gcc/testsuite/gcc.target/aarch64/sve/addsub_1.c
  56d4c411c942789ba83621762b5183d3  gcc/testsuite/gcc.target/aarch64/sve/addsub_2.c
! e429640da7b78c466b74f5ad43bd2ef4  gcc/testsuite/gcc.target/aarch64/sve/adr_1.c
  2d610447058d50eb4f033ca1419526bb  gcc/testsuite/gcc.target/aarch64/sve/adr_1_run.c
  5ec73001fb74d73604a89bc2bc933031  gcc/testsuite/gcc.target/aarch64/sve/adr_2.c
  cc7fcd63be30e4f74d3bba7993ffc3fd  gcc/testsuite/gcc.target/aarch64/sve/adr_2_run.c
--- 65343,65349 ----
  ba734365b41c2307c8f246196db5fb40  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_5.c
  961cd5bf40c30fe194d6c5a5bb165705  gcc/testsuite/gcc.target/aarch64/sve/addsub_1.c
  56d4c411c942789ba83621762b5183d3  gcc/testsuite/gcc.target/aarch64/sve/addsub_2.c
! b55e3f8dc6c4519bfc6514735054694b  gcc/testsuite/gcc.target/aarch64/sve/adr_1.c
  2d610447058d50eb4f033ca1419526bb  gcc/testsuite/gcc.target/aarch64/sve/adr_1_run.c
  5ec73001fb74d73604a89bc2bc933031  gcc/testsuite/gcc.target/aarch64/sve/adr_2.c
  cc7fcd63be30e4f74d3bba7993ffc3fd  gcc/testsuite/gcc.target/aarch64/sve/adr_2_run.c
*************** cc7fcd63be30e4f74d3bba7993ffc3fd  gcc/te
*** 61705,61719 ****
  b77d57f6ab3a698dfef1798ec4ada94d  gcc/testsuite/gcc.target/aarch64/sve/adr_4_run.c
  1644b5aca1029272980fa6486471e83f  gcc/testsuite/gcc.target/aarch64/sve/adr_5.c
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
! bc43440ccc76848bad7aec9e25e7135c  gcc/testsuite/gcc.target/aarch64/sve/adr_6.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
! 3e22eff7fed7b557a208eb8dc1add64c  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_4.c
  70e7059558ab8e85c7d78270d5a13da0  gcc/testsuite/gcc.target/aarch64/sve/bswap_1.c
  ed3e046c452a93cdb8ce4c5f9aaf1088  gcc/testsuite/gcc.target/aarch64/sve/bswap_2.c
  ed3635965a9c2d555c09947186243865  gcc/testsuite/gcc.target/aarch64/sve/bswap_3.c
  083114316d428f0b2923f539f186655a  gcc/testsuite/gcc.target/aarch64/sve/clastb_1.c
  7e44cf07676c8141eba5bba9a6eeef11  gcc/testsuite/gcc.target/aarch64/sve/clastb_1_run.c
  8650dfeb5bd9bc3ce172204942eb5e01  gcc/testsuite/gcc.target/aarch64/sve/clastb_2.c
--- 65353,65376 ----
  b77d57f6ab3a698dfef1798ec4ada94d  gcc/testsuite/gcc.target/aarch64/sve/adr_4_run.c
  1644b5aca1029272980fa6486471e83f  gcc/testsuite/gcc.target/aarch64/sve/adr_5.c
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
! a1d9993cfe67282d03182bc25905bd1a  gcc/testsuite/gcc.target/aarch64/sve/adr_6.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
! 9ff85e0a19befe7c341d377dc3e935c6  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_4.c
! f9958c636f7da2ed3a9bf83754bf5e3e  gcc/testsuite/gcc.target/aarch64/sve/bf16_arith_1.c
! 3752dda6d5566f1a3317f3faa5564ac6  gcc/testsuite/gcc.target/aarch64/sve/bf16_arith_1.h
! 1ba3128741624968598d9a9710fe84a0  gcc/testsuite/gcc.target/aarch64/sve/bf16_arith_2.c
! 27b3d827ce1661a8f16f650515febf7b  gcc/testsuite/gcc.target/aarch64/sve/bf16_arith_3.c
! b229c59b40885feb9d8cc95871e53ca3  gcc/testsuite/gcc.target/aarch64/sve/bitsel.c
  70e7059558ab8e85c7d78270d5a13da0  gcc/testsuite/gcc.target/aarch64/sve/bswap_1.c
  ed3e046c452a93cdb8ce4c5f9aaf1088  gcc/testsuite/gcc.target/aarch64/sve/bswap_2.c
  ed3635965a9c2d555c09947186243865  gcc/testsuite/gcc.target/aarch64/sve/bswap_3.c
+ 140c42378ae8a706155668bba5fd5fdd  gcc/testsuite/gcc.target/aarch64/sve/clamp_1.c
+ fb935315f82f3f7109aae9d7b08a9938  gcc/testsuite/gcc.target/aarch64/sve/clamp_2.c
+ 6012bebf1c2113b99616dc5fdf503fd5  gcc/testsuite/gcc.target/aarch64/sve/clamp_3.c
+ 0995db661e4ab77ab57bdef796b08316  gcc/testsuite/gcc.target/aarch64/sve/clamp_4.c
  083114316d428f0b2923f539f186655a  gcc/testsuite/gcc.target/aarch64/sve/clastb_1.c
  7e44cf07676c8141eba5bba9a6eeef11  gcc/testsuite/gcc.target/aarch64/sve/clastb_1_run.c
  8650dfeb5bd9bc3ce172204942eb5e01  gcc/testsuite/gcc.target/aarch64/sve/clastb_2.c
*************** be45d391b5dad6bfa889a516c4cad152  gcc/te
*** 61738,61743 ****
--- 65395,65406 ----
  472e17e8421d808081d7c6b8421a6b42  gcc/testsuite/gcc.target/aarch64/sve/cmp_2.c
  ee3868d2e83312b60146a9ae902b7cc6  gcc/testsuite/gcc.target/aarch64/sve/cnot_1.c
  01898aea349e7e1f63361dacb4b0b0d5  gcc/testsuite/gcc.target/aarch64/sve/cnot_2.c
+ e30e97c6ae9dd830d8267276c2fe4045  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_1.c
+ cc1f496e67bd6d97563238cbd1276bed  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_2.c
+ 855ef384b26a470f20a3c3dd4a66818e  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_3.c
+ 317fc09b0276922534d9ddc02a82b1fa  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_4.c
+ e3cf89281fef4a79715fb0df3fb9ae14  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_5.c
+ af1f116b840799b13f2db386096e7872  gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_6.c
  9ec5c505626330ecc930b8513f69feb9  gcc/testsuite/gcc.target/aarch64/sve/complex_mul_1.c
  e34e1b9a30e1bf7be8e61dcf581ac027  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_1.c
  3aabd6216d4bf01e1b009fe1dd930328  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_1_run.c
*************** ae054ca80eef5370f60b398f80ca624e  gcc/te
*** 61760,61770 ****
  de20c023bfdec615e3bef202481b8941  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c
  f76243fd74d976c03e9e9c6e2d0e09af  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c
  057607b93c8072bb59862f61a65f16f7  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_6.c
! e30fc1d48efff8e0d66a6e9f603691f3  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
  66f89090e06d8be84d0ece9730aee086  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1_run.c
! e8b19672e185ac775fab17be20819eed  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2.c
  e9ed357e627af054ebae26f9f7b0ee32  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2_run.c
! cc10cb2821e1077805d4586048897941  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_3.c
  5b3ea5c387272fc42e43ed1c72a35678  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_3_run.c
  51eaad1b639ab6410919b26c0b249e66  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_1.c
  7eff7839584ee92106280e45522594d3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_1_run.c
--- 65423,65433 ----
  de20c023bfdec615e3bef202481b8941  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c
  f76243fd74d976c03e9e9c6e2d0e09af  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c
  057607b93c8072bb59862f61a65f16f7  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_6.c
! 1fb08284147c8f49a346dfc06e71f2f6  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
  66f89090e06d8be84d0ece9730aee086  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1_run.c
! 2dfdd4221fece5cde650d6421ce3615a  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2.c
  e9ed357e627af054ebae26f9f7b0ee32  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2_run.c
! 4f82ffa858bebf5c1c1c6745aba12653  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_3.c
  5b3ea5c387272fc42e43ed1c72a35678  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_3_run.c
  51eaad1b639ab6410919b26c0b249e66  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_1.c
  7eff7839584ee92106280e45522594d3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_1_run.c
*************** eb7f72a0a8905e0f9d876a515cbc0468  gcc/te
*** 61772,61778 ****
  aba660a7ebde60eb7c63ad59a707f076  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_2_run.c
  442027510f6e107e768dbd2aad42fa72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3.c
  85048f66e07545d536f3ae18e4e4df87  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3_run.c
! d3b36291a26b3d941518500009166590  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
  a14493d83d663147b4b88fd163bc2b72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4_run.c
  5ce681225c3088de36e1d1a7654fd8b3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5.c
  13a3ee06b66c0c4211cb0cc7b785c475  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5_run.c
--- 65435,65441 ----
  aba660a7ebde60eb7c63ad59a707f076  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_2_run.c
  442027510f6e107e768dbd2aad42fa72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3.c
  85048f66e07545d536f3ae18e4e4df87  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3_run.c
! 9051503d787c5da64c43113bb647c88b  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
  a14493d83d663147b4b88fd163bc2b72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4_run.c
  5ce681225c3088de36e1d1a7654fd8b3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5.c
  13a3ee06b66c0c4211cb0cc7b785c475  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5_run.c
*************** f6afb0f0ed8ad11d5fa81cc1c80c7dc7  gcc/te
*** 61782,61794 ****
  7e75481a97c6bdc123111a4215aca802  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_1_run.c
  7d8f1cb906179ac344d05e0989cbe0e5  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2.c
  01467b6f5b327172890838d20b8e2f28  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2_run.c
! 552830c2f204b0f9abceeb7b2e7fbfda  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3.c
  f9860b671e5441c6b60f38b99f865cd9  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3_run.c
  b381bc0fad4bd40d5133ce3e0b73d204  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4.c
  831c3577a8cf220ce2070c7644d6bdd4  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4_run.c
  b009e2ac0ac4b817121704c308cdc523  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5.c
  f4e9b13c1210611196f736112141a08b  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5_run.c
! 4657d9c528b7e7051b1098d9cc1429d5  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6.c
  bd3048ab3377de4ff80850e2786c91ab  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6_run.c
  ba0a372d0e65cbc916e97902bcf0c9c2  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_7.c
  b978f10085bb833e64a43c5c808877b4  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_8.c
--- 65445,65457 ----
  7e75481a97c6bdc123111a4215aca802  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_1_run.c
  7d8f1cb906179ac344d05e0989cbe0e5  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2.c
  01467b6f5b327172890838d20b8e2f28  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_2_run.c
! e4548a275ebcb4e06b272035287f5e45  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3.c
  f9860b671e5441c6b60f38b99f865cd9  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_3_run.c
  b381bc0fad4bd40d5133ce3e0b73d204  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4.c
  831c3577a8cf220ce2070c7644d6bdd4  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_4_run.c
  b009e2ac0ac4b817121704c308cdc523  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5.c
  f4e9b13c1210611196f736112141a08b  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5_run.c
! 0f19e00985d0e6c8e179d171cb15bbea  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6.c
  bd3048ab3377de4ff80850e2786c91ab  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6_run.c
  ba0a372d0e65cbc916e97902bcf0c9c2  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_7.c
  b978f10085bb833e64a43c5c808877b4  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_8.c
*************** bd45980d532932ac01652f8a3fdfa725  gcc/te
*** 61800,61806 ****
  50b6c390568a9f8816a632bacb8abeb0  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_3_run.c
  2810be9ac5f23dcbfd7897dc8f9c4f75  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_4.c
  f12a741428ddd5be76f34c183fec23d2  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_4_run.c
! 16a4fac48474274dd2218c4e79ec7b51  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_5.c
  449b97b7b6d995f87c2b7992886f971a  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_5_run.c
  c979681b1ff91b284aa3f32453460f95  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_1.c
  93912dd71fca4bc1a0ee4a4070f652bc  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_1_run.c
--- 65463,65469 ----
  50b6c390568a9f8816a632bacb8abeb0  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_3_run.c
  2810be9ac5f23dcbfd7897dc8f9c4f75  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_4.c
  f12a741428ddd5be76f34c183fec23d2  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_4_run.c
! d23f05b3e1b86af2696772f66e635f2d  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_5.c
  449b97b7b6d995f87c2b7992886f971a  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_5_run.c
  c979681b1ff91b284aa3f32453460f95  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_1.c
  93912dd71fca4bc1a0ee4a4070f652bc  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_1_run.c
*************** fc778cce48f4286ab926c16331c9f304  gcc/te
*** 61881,61890 ****
  a3b11c49e38efd0187a7a2c07e5e0a96  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_5_run.c
  7e9726b89d8e866969769d3bab61b330  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_6.c
  7613a4a417fbbb4afd4344a0dff06ba6  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_6_run.c
! d2fcce73eb199226c47b9e198a05c1d7  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_7.c
  4eba20b656180f789c3f2090ee94df4b  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_7_run.c
! 8b39a3ca8ba120d1bf654900804f0ce2  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_8.c
  98b561140e20308ad0243b463868cb6a  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_8_run.c
  fbd279b8fa098a1b40dcaa7ebec85656  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_1.c
  24fdeb30331dde27e84fdfd2ae7298e4  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_1_run.c
  cd392ff0bcf5ba4bcd86aa95984e8bf0  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_2.c
--- 65544,65554 ----
  a3b11c49e38efd0187a7a2c07e5e0a96  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_5_run.c
  7e9726b89d8e866969769d3bab61b330  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_6.c
  7613a4a417fbbb4afd4344a0dff06ba6  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_6_run.c
! 47cbc45ac404ff1516f32abb799b985f  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_7.c
  4eba20b656180f789c3f2090ee94df4b  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_7_run.c
! 78a04b562d48b5a440f09657dccc864c  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_8.c
  98b561140e20308ad0243b463868cb6a  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_8_run.c
+ 12e7ff1df5c9d3812c7fa524149ed4e2  gcc/testsuite/gcc.target/aarch64/sve/cond_mla_9.c
  fbd279b8fa098a1b40dcaa7ebec85656  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_1.c
  24fdeb30331dde27e84fdfd2ae7298e4  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_1_run.c
  cd392ff0bcf5ba4bcd86aa95984e8bf0  gcc/testsuite/gcc.target/aarch64/sve/cond_shift_2.c
*************** c646dd2e0fac8da4972c667888c025dc  gcc/te
*** 61909,61917 ****
  35ad16f08eb3dedd45580f0df9287658  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_2_run.c
  5ecd1408e662633172465e5afb78bb7d  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3.c
  48c8b8da28cd7561f3eebc9897a10408  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3_run.c
! 203714ae863c84f9652c911b42a25da5  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4.c
  14deb8e873fa9fed70a00adc999bf312  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4_run.c
! 610c33c6adf85eb1648e6516a0290a43  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
  435ac44927974eb89426cad7e0d39cce  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5_run.c
  9ed3dd7a15c80c18e046f7ad39033169  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6.c
  91fa757262d5209751931a7e514e7e42  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6_run.c
--- 65573,65581 ----
  35ad16f08eb3dedd45580f0df9287658  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_2_run.c
  5ecd1408e662633172465e5afb78bb7d  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3.c
  48c8b8da28cd7561f3eebc9897a10408  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3_run.c
! c7eacdff8f7dca4783653d741102cba9  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4.c
  14deb8e873fa9fed70a00adc999bf312  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4_run.c
! 7fb246343d2502136bc7404d889fe76e  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
  435ac44927974eb89426cad7e0d39cce  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5_run.c
  9ed3dd7a15c80c18e046f7ad39033169  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6.c
  91fa757262d5209751931a7e514e7e42  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6_run.c
*************** a8419890219c776edc0ed6dbae299529  gcc/te
*** 61928,61946 ****
  81c8713fc65aeeceea43e413e0853180  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_3_run.c
  552619d8323219cf84c033d1e66bb3be  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4.c
  17f39d852a925eb171b031496e369494  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4_run.c
! 871d18a8e633ddc1254fc0d899becf53  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
  5669236b1b64f25a02492e26bff3fff9  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5_run.c
! 8bbdef796cb9f7c3ed167406690c24c5  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6.c
  d8756a95c958d82cd6c5e7e4c6a9a6b0  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6_run.c
! 27c6a0610e4e27860821988343d449d5  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_7.c
  7f7d04c06d2f68f2c315d1d6caacb701  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_7_run.c
! 360164890e0d8ef8fb7d8cc47959b759  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_8.c
  8b2488dcbf94dff35c79b3e2cdc76d4c  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_8_run.c
  2cb4d7fb5b43492872ebb5bf43ada8f0  gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_1.c
! 12b05d054409e66e682011f6daaac0e0  gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c
  3f80e6ac7e9eb0358bfcba6677fdffad  gcc/testsuite/gcc.target/aarch64/sve/const_1.c
  a04b176d1f4debec96b6eb4ccec14017  gcc/testsuite/gcc.target/aarch64/sve/const_2.c
  748aa3fe4ea69df2485d8d4f5cea0000  gcc/testsuite/gcc.target/aarch64/sve/const_3.c
  118d7e991ceeb7d74a95f49ebb9363de  gcc/testsuite/gcc.target/aarch64/sve/copysign_1.c
  3b8d8c231844e2b260881fd40e9fb96b  gcc/testsuite/gcc.target/aarch64/sve/copysign_1_run.c
  0504506a6311cc93887e1a557a45e7f9  gcc/testsuite/gcc.target/aarch64/sve/cost_model_1.c
--- 65592,65613 ----
  81c8713fc65aeeceea43e413e0853180  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_3_run.c
  552619d8323219cf84c033d1e66bb3be  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4.c
  17f39d852a925eb171b031496e369494  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4_run.c
! e7aa3c441a49773361f32265ceb7f2ec  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
  5669236b1b64f25a02492e26bff3fff9  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5_run.c
! 8c7a46979c59f1069bc2476844dfab4b  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6.c
  d8756a95c958d82cd6c5e7e4c6a9a6b0  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6_run.c
! 9729408ea19a59dee0f93ded692b44bb  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_7.c
  7f7d04c06d2f68f2c315d1d6caacb701  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_7_run.c
! b30c9d812f160fecba2a87cfc8066003  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_8.c
  8b2488dcbf94dff35c79b3e2cdc76d4c  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_8_run.c
  2cb4d7fb5b43492872ebb5bf43ada8f0  gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_1.c
! df528e108d824f91ad17e17022a54f46  gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c
  3f80e6ac7e9eb0358bfcba6677fdffad  gcc/testsuite/gcc.target/aarch64/sve/const_1.c
  a04b176d1f4debec96b6eb4ccec14017  gcc/testsuite/gcc.target/aarch64/sve/const_2.c
  748aa3fe4ea69df2485d8d4f5cea0000  gcc/testsuite/gcc.target/aarch64/sve/const_3.c
+ 8d7ecba02de4f6f13e67abb27095c1ea  gcc/testsuite/gcc.target/aarch64/sve/const_fold_div_1.c
+ 3e10341bbad5f59e9c4238e5d9a9baaa  gcc/testsuite/gcc.target/aarch64/sve/const_fold_lsl_1.c
+ 91eee6bf2d1bca4f85df6d04b1f8f095  gcc/testsuite/gcc.target/aarch64/sve/const_fold_mul_1.c
  118d7e991ceeb7d74a95f49ebb9363de  gcc/testsuite/gcc.target/aarch64/sve/copysign_1.c
  3b8d8c231844e2b260881fd40e9fb96b  gcc/testsuite/gcc.target/aarch64/sve/copysign_1_run.c
  0504506a6311cc93887e1a557a45e7f9  gcc/testsuite/gcc.target/aarch64/sve/cost_model_1.c
*************** cc0c9e0c6024d95df387c59dbbc3b810  gcc/te
*** 61959,61972 ****
  9c0a5e176f4950c32fccce38a15933c4  gcc/testsuite/gcc.target/aarch64/sve/cost_model_8.c
  97597f2f4511beabf3ac0c0a8a5e54a4  gcc/testsuite/gcc.target/aarch64/sve/cost_model_9.c
  fd871baa3308fac8d6f5e696e21d3e32  gcc/testsuite/gcc.target/aarch64/sve/cse_sve_vl_constants_1.c
  37fc6c7d6fd6c12d812ac754d44d4002  gcc/testsuite/gcc.target/aarch64/sve/cvtf_signed_1.c
  8862b40ae4be4f7b36035f4a31bddb37  gcc/testsuite/gcc.target/aarch64/sve/cvtf_signed_1_run.c
  bda1bfa9f264cd1446ca0defd2f80281  gcc/testsuite/gcc.target/aarch64/sve/cvtf_unsigned_1.c
  839b0317eb14ae69921e100efde62274  gcc/testsuite/gcc.target/aarch64/sve/cvtf_unsigned_1_run.c
  d40889fae1768a14cef6690dad5cc3e8  gcc/testsuite/gcc.target/aarch64/sve/div_1.c
  0e217a64581eaba808cbf7c5b4739165  gcc/testsuite/gcc.target/aarch64/sve/div_1_run.c
  b756b55bf45e469c93050878d9bef905  gcc/testsuite/gcc.target/aarch64/sve/dot_1.c
! 32a3d39a18b234ed117bf340ef8f99ae  gcc/testsuite/gcc.target/aarch64/sve/dup_imm_1.c
  657769d7a7292850421bf9c9f489ce6b  gcc/testsuite/gcc.target/aarch64/sve/dup_imm_1_run.c
  79f15d195cc9087e1d6665345a3f5123  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_1.c
  7b29bcc5f4568a218b087ab7a6207177  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_2.c
--- 65626,65641 ----
  9c0a5e176f4950c32fccce38a15933c4  gcc/testsuite/gcc.target/aarch64/sve/cost_model_8.c
  97597f2f4511beabf3ac0c0a8a5e54a4  gcc/testsuite/gcc.target/aarch64/sve/cost_model_9.c
  fd871baa3308fac8d6f5e696e21d3e32  gcc/testsuite/gcc.target/aarch64/sve/cse_sve_vl_constants_1.c
+ 6e4e8f27a1e04306a991a090798c10c2  gcc/testsuite/gcc.target/aarch64/sve/ctz.c
  37fc6c7d6fd6c12d812ac754d44d4002  gcc/testsuite/gcc.target/aarch64/sve/cvtf_signed_1.c
  8862b40ae4be4f7b36035f4a31bddb37  gcc/testsuite/gcc.target/aarch64/sve/cvtf_signed_1_run.c
  bda1bfa9f264cd1446ca0defd2f80281  gcc/testsuite/gcc.target/aarch64/sve/cvtf_unsigned_1.c
  839b0317eb14ae69921e100efde62274  gcc/testsuite/gcc.target/aarch64/sve/cvtf_unsigned_1_run.c
  d40889fae1768a14cef6690dad5cc3e8  gcc/testsuite/gcc.target/aarch64/sve/div_1.c
  0e217a64581eaba808cbf7c5b4739165  gcc/testsuite/gcc.target/aarch64/sve/div_1_run.c
+ 94f88ced71e77ab0242f6df5be71452d  gcc/testsuite/gcc.target/aarch64/sve/div_const_run.c
  b756b55bf45e469c93050878d9bef905  gcc/testsuite/gcc.target/aarch64/sve/dot_1.c
! 59d027478629ce67c63b59da21b266c8  gcc/testsuite/gcc.target/aarch64/sve/dup_imm_1.c
  657769d7a7292850421bf9c9f489ce6b  gcc/testsuite/gcc.target/aarch64/sve/dup_imm_1_run.c
  79f15d195cc9087e1d6665345a3f5123  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_1.c
  7b29bcc5f4568a218b087ab7a6207177  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_2.c
*************** c586ed3d32d5df8a6105efcebd07dd98  gcc/te
*** 61987,62014 ****
  05e4cf39731fb932fb11ed96cfc93adc  gcc/testsuite/gcc.target/aarch64/sve/fabd_1.c
  e09d60c9368e764045edec1b162362fb  gcc/testsuite/gcc.target/aarch64/sve/fabs_1.c
  e17e79795ac83cf6b647f5a47d70895f  gcc/testsuite/gcc.target/aarch64/sve/fadda_1.c
  68ba5ef8137ec135b92767cce4f91f2c  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_signed_1.c
  09c7ac9827fd050e0ca6c6acb49dc63a  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_signed_1_run.c
  43b9b7d6eefd41083ab9d9bd2aca56a6  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_unsigned_1.c
  ac09afb9d04d8d3255ac30bd518ee86c  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_unsigned_1_run.c
  1db08b8a63be416b8f0c4577c54306e8  gcc/testsuite/gcc.target/aarch64/sve/fdiv_1.c
! d9630005a29966b1efe72ee2c1789486  gcc/testsuite/gcc.target/aarch64/sve/fdup_1.c
  cb455cf51322d0073b1b6910b82692d2  gcc/testsuite/gcc.target/aarch64/sve/fdup_1_run.c
! 557d688c596d68432472a825c9640ecc  gcc/testsuite/gcc.target/aarch64/sve/fmad_1.c
  f65f677beb46c111d2f2672d44167dbd  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_1.c
  c1c0564cf1d2b284d32af1016385082c  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_2.c
  586a5689dd9464f6b9793b8cbad7f66c  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_3.c
  095096ff3c12238667c767c9527b4c74  gcc/testsuite/gcc.target/aarch64/sve/fminnm_1.c
  edcb97412d4f0f12062d1a27e0e57563  gcc/testsuite/gcc.target/aarch64/sve/fminnm_2.c
  e227c462687c0ad2e0eaf20bcb9eb35a  gcc/testsuite/gcc.target/aarch64/sve/fminnm_3.c
! e1ebbc13eea26781f1254af1d30baefc  gcc/testsuite/gcc.target/aarch64/sve/fmla_1.c
  1b0dd67d6d3edb8d81ed2900a765e4d5  gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c
  95b5b4f4d37b2eb26a3e6bb60f4621fb  gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c
! de76ba42542481bf5d10f04cc4a567e0  gcc/testsuite/gcc.target/aarch64/sve/fmls_1.c
! 3628717788183220201dedb49380cc4e  gcc/testsuite/gcc.target/aarch64/sve/fmsb_1.c
  621f97df478d60ad2d8b4f5b792dc424  gcc/testsuite/gcc.target/aarch64/sve/fmul_1.c
! 41c36a4cbcd85b71828eea6f21b70062  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_1.c
! 4ccee897144f9c594cebd8dd11deebd9  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_2.c
  f4c4689027fa4974f2d03abe27971460  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_3.c
  87cec4ed8085253e81cbb56604ac7d2f  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_4.c
  0926d8033ee319a31e8380647299d9cd  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_5.c
--- 65656,65686 ----
  05e4cf39731fb932fb11ed96cfc93adc  gcc/testsuite/gcc.target/aarch64/sve/fabd_1.c
  e09d60c9368e764045edec1b162362fb  gcc/testsuite/gcc.target/aarch64/sve/fabs_1.c
  e17e79795ac83cf6b647f5a47d70895f  gcc/testsuite/gcc.target/aarch64/sve/fadda_1.c
+ b7b620bb708b9bbfca44229800671b73  gcc/testsuite/gcc.target/aarch64/sve/faminmax_1.c
+ c662215fe7dfe11e4044f6956c969f72  gcc/testsuite/gcc.target/aarch64/sve/faminmax_2.c
+ b0a57e85ce5f0e5990e71dc5ac534579  gcc/testsuite/gcc.target/aarch64/sve/faminmax_3.c
  68ba5ef8137ec135b92767cce4f91f2c  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_signed_1.c
  09c7ac9827fd050e0ca6c6acb49dc63a  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_signed_1_run.c
  43b9b7d6eefd41083ab9d9bd2aca56a6  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_unsigned_1.c
  ac09afb9d04d8d3255ac30bd518ee86c  gcc/testsuite/gcc.target/aarch64/sve/fcvtz_unsigned_1_run.c
  1db08b8a63be416b8f0c4577c54306e8  gcc/testsuite/gcc.target/aarch64/sve/fdiv_1.c
! 9d634c63c278f930fc46146d12ac84c1  gcc/testsuite/gcc.target/aarch64/sve/fdup_1.c
  cb455cf51322d0073b1b6910b82692d2  gcc/testsuite/gcc.target/aarch64/sve/fdup_1_run.c
! ca624bbbbf8d6a2694aaa0f1377279ce  gcc/testsuite/gcc.target/aarch64/sve/fmad_1.c
  f65f677beb46c111d2f2672d44167dbd  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_1.c
  c1c0564cf1d2b284d32af1016385082c  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_2.c
  586a5689dd9464f6b9793b8cbad7f66c  gcc/testsuite/gcc.target/aarch64/sve/fmaxnm_3.c
  095096ff3c12238667c767c9527b4c74  gcc/testsuite/gcc.target/aarch64/sve/fminnm_1.c
  edcb97412d4f0f12062d1a27e0e57563  gcc/testsuite/gcc.target/aarch64/sve/fminnm_2.c
  e227c462687c0ad2e0eaf20bcb9eb35a  gcc/testsuite/gcc.target/aarch64/sve/fminnm_3.c
! 748139e66d1cefa85da6300ff3330c88  gcc/testsuite/gcc.target/aarch64/sve/fmla_1.c
  1b0dd67d6d3edb8d81ed2900a765e4d5  gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c
  95b5b4f4d37b2eb26a3e6bb60f4621fb  gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c
! 7bc8d1bfb9ebdbd03aba0e24c5ad4331  gcc/testsuite/gcc.target/aarch64/sve/fmls_1.c
! 3c5f0a8c41b65423596e4b6967157b0a  gcc/testsuite/gcc.target/aarch64/sve/fmsb_1.c
  621f97df478d60ad2d8b4f5b792dc424  gcc/testsuite/gcc.target/aarch64/sve/fmul_1.c
! e7af55fde6a96fcaf4788e533c4a83fa  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_1.c
! 50a357e440d9b9d9544ae5bc0c42103d  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_2.c
  f4c4689027fa4974f2d03abe27971460  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_3.c
  87cec4ed8085253e81cbb56604ac7d2f  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_4.c
  0926d8033ee319a31e8380647299d9cd  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_5.c
*************** d7286c7d7044caf530eb51c8265882bf  gcc/te
*** 62017,62022 ****
--- 65689,65696 ----
  0a35e1341e09452548284613ce871aab  gcc/testsuite/gcc.target/aarch64/sve/fnmla_1.c
  b1f34999111510e2f313342976d93991  gcc/testsuite/gcc.target/aarch64/sve/fnmls_1.c
  c6ea286d39fa074b2f5ebe016371f47e  gcc/testsuite/gcc.target/aarch64/sve/fnmsb_1.c
+ 6e9ddbc9e76e5e00bba8ebfd65599aa7  gcc/testsuite/gcc.target/aarch64/sve/fold_div_zero.c
+ 8881cd4ed9b7963e01c6ddb91d979872  gcc/testsuite/gcc.target/aarch64/sve/fold_mul_zero.c
  09f24f114bf0079fa6cd77c56a4ab54c  gcc/testsuite/gcc.target/aarch64/sve/fp_arith_1.c
  d4b418cc5537148fb9700983744cb6e1  gcc/testsuite/gcc.target/aarch64/sve/frinta_1.c
  7150ced0ec1abb3083a5755508b2f528  gcc/testsuite/gcc.target/aarch64/sve/frinti_1.c
*************** dcaa686631aa0b4617b68bb9a59197cb  gcc/te
*** 62024,62035 ****
--- 65698,65713 ----
  f18be1e7abbda4855f72a61ca0933ab7  gcc/testsuite/gcc.target/aarch64/sve/frintp_1.c
  79c4c16c5e6085a4f556a31d040a9bb4  gcc/testsuite/gcc.target/aarch64/sve/frintx_1.c
  9910bd2f1261719b81a80509e3d2295d  gcc/testsuite/gcc.target/aarch64/sve/frintz_1.c
+ 43486805e17c3dc57189eebf946442c2  gcc/testsuite/gcc.target/aarch64/sve/fscale.c
  607014dc05862a9ad4f7f4418f259f4c  gcc/testsuite/gcc.target/aarch64/sve/fsqrt_1.c
  5dcdcb3bfd4e0ede6827ac488ba11d6a  gcc/testsuite/gcc.target/aarch64/sve/fsubr_1.c
  3b3029334aae94b745b7fb933c8662d1  gcc/testsuite/gcc.target/aarch64/sve/gather_earlyclobber.c
  f07bba8d8481e5ecf52b8e2cb7e34fc4  gcc/testsuite/gcc.target/aarch64/sve/gather_load_1.c
  d624e2893eea113ceac2f384f150224e  gcc/testsuite/gcc.target/aarch64/sve/gather_load_10.c
  85f4fd77f528414afa59cb2cf0575f23  gcc/testsuite/gcc.target/aarch64/sve/gather_load_11.c
+ 8b9466310c672ff0417ea3bc0ea3cc40  gcc/testsuite/gcc.target/aarch64/sve/gather_load_12.c
+ 7f4cd52326e79718b633362cecfc0a4b  gcc/testsuite/gcc.target/aarch64/sve/gather_load_13.c
+ 2116c899cc7699de9fe1d7e8c4c0ae1e  gcc/testsuite/gcc.target/aarch64/sve/gather_load_14.c
  af2c0679cfb2c0a03b5088b5ce334bb4  gcc/testsuite/gcc.target/aarch64/sve/gather_load_2.c
  9e0640b59b7117e989a549c055e8e25a  gcc/testsuite/gcc.target/aarch64/sve/gather_load_3.c
  edf71ec22aa704caeb6c73794bfb3278  gcc/testsuite/gcc.target/aarch64/sve/gather_load_4.c
*************** bd8ad36b193f06daf43a6e95db5aef0d  gcc/te
*** 62050,62057 ****
--- 65728,65740 ----
  63f37c16d94f1aaa59a773460d7dd909  gcc/testsuite/gcc.target/aarch64/sve/gather_load_extend_7.c
  0ca18a3fe804f13aba12f2f92f0b76a3  gcc/testsuite/gcc.target/aarch64/sve/gather_load_extend_8.c
  f2fc77b4628ad8199175a8ebdd69e3e1  gcc/testsuite/gcc.target/aarch64/sve/gather_load_extend_9.c
+ a2e3c3a5fccf1d9c42dec5b99291653b  gcc/testsuite/gcc.target/aarch64/sve/gomp/gomp.exp
+ d65171df277fd805666a8293e1ed92b2  gcc/testsuite/gcc.target/aarch64/sve/gomp/target-device.c
+ e2d939ce1598891fb0151a910f6caebb  gcc/testsuite/gcc.target/aarch64/sve/gomp/target-link.c
+ 042e57b6147e2e10a51806c2939b1aca  gcc/testsuite/gcc.target/aarch64/sve/gomp/target.c
  9fffa4c6db492d5b9ae9ba7986fa3965  gcc/testsuite/gcc.target/aarch64/sve/index_1.c
  618eb3df3240452455692fd2c208f19d  gcc/testsuite/gcc.target/aarch64/sve/index_1_run.c
+ 92ccdb217141d67be3914247a776816e  gcc/testsuite/gcc.target/aarch64/sve/index_const_fold.c
  6ae2d50ba53ec76b04402bf7075366dd  gcc/testsuite/gcc.target/aarch64/sve/index_offset_1.c
  853ff9815ca2eb270da206573260568b  gcc/testsuite/gcc.target/aarch64/sve/index_offset_1_run.c
  07600ba02e578c82c5838ca9c8d22470  gcc/testsuite/gcc.target/aarch64/sve/init_1.c
*************** b73572201458dc7f519a8654007b2b63  gcc/te
*** 62136,62142 ****
  1fc8fcef7279889004c42dd937b9fa27  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4_run.c
  be71033c83a6c0e06777dbf661f03814  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5.c
  51936108808de9da2be25482022737c2  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5_run.c
! abb2b4d2e6006872a47f4f6cfdd206f4  gcc/testsuite/gcc.target/aarch64/sve/loop_add_6.c
  e480ab2c1a246b82210510f44a1f96e8  gcc/testsuite/gcc.target/aarch64/sve/mad_1.c
  ab2c2f8b2b4f63ff5400dfcc4b0cff0a  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_1.c
  15d8649259b34f9d48561b987a8e85f3  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_2.c
--- 65819,65825 ----
  1fc8fcef7279889004c42dd937b9fa27  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4_run.c
  be71033c83a6c0e06777dbf661f03814  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5.c
  51936108808de9da2be25482022737c2  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5_run.c
! 9e6530d3ef7a443d1a20d48eadbc26b8  gcc/testsuite/gcc.target/aarch64/sve/loop_add_6.c
  e480ab2c1a246b82210510f44a1f96e8  gcc/testsuite/gcc.target/aarch64/sve/mad_1.c
  ab2c2f8b2b4f63ff5400dfcc4b0cff0a  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_1.c
  15d8649259b34f9d48561b987a8e85f3  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_2.c
*************** ab2c2f8b2b4f63ff5400dfcc4b0cff0a  gcc/te
*** 62144,62150 ****
  314d51574d6f9db0b883b4ca323b5708  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_4.c
  b7284adec21d80573a852744d3773966  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_5.c
  660d72314db284367b4c82d8f85ac2dc  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_6.c
! d08dd988ab1240d1f0f8c0944aeaab55  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_7.c
  52379e5a1fc8215095293f9e8d860994  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_8.c
  649716e3727c061dd3cee9567b1ab97b  gcc/testsuite/gcc.target/aarch64/sve/mask_load_1.c
  f6a3d086c2e96143317e844a1a523358  gcc/testsuite/gcc.target/aarch64/sve/mask_load_slp_1.c
--- 65827,65833 ----
  314d51574d6f9db0b883b4ca323b5708  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_4.c
  b7284adec21d80573a852744d3773966  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_5.c
  660d72314db284367b4c82d8f85ac2dc  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_6.c
! d1c2e2a901e87fb52c1cfd1ff79df779  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_7.c
  52379e5a1fc8215095293f9e8d860994  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_8.c
  649716e3727c061dd3cee9567b1ab97b  gcc/testsuite/gcc.target/aarch64/sve/mask_load_1.c
  f6a3d086c2e96143317e844a1a523358  gcc/testsuite/gcc.target/aarch64/sve/mask_load_slp_1.c
*************** c90ec5ef7fda5b046b14353bb213caf1  gcc/te
*** 62155,62161 ****
  8f33dc01246dcbcf08c4b83e11e06376  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
  d9a0da227f33c19f4ede7586e9cdd9f4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2_run.c
  08a65fc44b51d8c3a210ae3018b7e037  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
! c6f6e7729d8243981389542d9dbef36d  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3_run.c
  1162186d2a12aae5acdb0fbe081f21fd  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
  580ec4c6c7aecbe229368cee756a20c2  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
  d473d3c091bf5718e5468fecc695a99b  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
--- 65838,65844 ----
  8f33dc01246dcbcf08c4b83e11e06376  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
  d9a0da227f33c19f4ede7586e9cdd9f4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2_run.c
  08a65fc44b51d8c3a210ae3018b7e037  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
! 145fd6f518c76ba6f8dc69165d942b41  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3_run.c
  1162186d2a12aae5acdb0fbe081f21fd  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
  580ec4c6c7aecbe229368cee756a20c2  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
  d473d3c091bf5718e5468fecc695a99b  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
*************** ddd9ddbde49a4027f36a7f9bf707ac98  gcc/te
*** 62172,62178 ****
  13bbdacc3f4f9cd16b9d754faee7d2ab  gcc/testsuite/gcc.target/aarch64/sve/maxmin_1_run.c
  134ef449bd11349ce054e8286fbff2c1  gcc/testsuite/gcc.target/aarch64/sve/maxmin_strict_1.c
  ef85ca0b706589d4eb255295218ac581  gcc/testsuite/gcc.target/aarch64/sve/maxmin_strict_1_run.c
! f7c38468cc902b48a05d93aa9fd364c6  gcc/testsuite/gcc.target/aarch64/sve/miniloop_1.c
  408226269efff71a30859089883057b5  gcc/testsuite/gcc.target/aarch64/sve/miniloop_2.c
  8b66c0b15b847e0e902cb7818b0dee61  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_1.c
  6bcf32d189d704034b16352f6f10bdfa  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_10.c
--- 65855,65861 ----
  13bbdacc3f4f9cd16b9d754faee7d2ab  gcc/testsuite/gcc.target/aarch64/sve/maxmin_1_run.c
  134ef449bd11349ce054e8286fbff2c1  gcc/testsuite/gcc.target/aarch64/sve/maxmin_strict_1.c
  ef85ca0b706589d4eb255295218ac581  gcc/testsuite/gcc.target/aarch64/sve/maxmin_strict_1_run.c
! 6282ea5583dfbc9e67b94364bb5bd8d2  gcc/testsuite/gcc.target/aarch64/sve/miniloop_1.c
  408226269efff71a30859089883057b5  gcc/testsuite/gcc.target/aarch64/sve/miniloop_2.c
  8b66c0b15b847e0e902cb7818b0dee61  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_1.c
  6bcf32d189d704034b16352f6f10bdfa  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_10.c
*************** f225f93a4247d63d33445e7f1312fa59  gcc/te
*** 62190,62199 ****
--- 65873,65884 ----
  fbbf192bd359cab23c9f4bf7c2af214c  gcc/testsuite/gcc.target/aarch64/sve/mla_3.c
  cafa023ecc4fc66a8c9a3bcda1baef83  gcc/testsuite/gcc.target/aarch64/sve/mls_1.c
  585d1ba667e1091cae32cede44f75eb1  gcc/testsuite/gcc.target/aarch64/sve/mls_2.c
+ f39e2799e073daf71a2433864fa09d03  gcc/testsuite/gcc.target/aarch64/sve/mod_1.c
  373914dd86484840207e0827a609555d  gcc/testsuite/gcc.target/aarch64/sve/mov_rr_1.c
  76b67822c25cb6679a7f5c4a8a4a2edb  gcc/testsuite/gcc.target/aarch64/sve/msb_1.c
  96deea5b8b745cdb119a0dd0647367a6  gcc/testsuite/gcc.target/aarch64/sve/mul_1.c
  443232c5fc6079ff9e86604d3835a202  gcc/testsuite/gcc.target/aarch64/sve/mul_2.c
+ 494efbc2cc4537808d1b4384d3c2e467  gcc/testsuite/gcc.target/aarch64/sve/mul_const_run.c
  bdf8532c1097749621e020a1e5f9949a  gcc/testsuite/gcc.target/aarch64/sve/mul_highpart_1.c
  df9030c3eec5ddec3909228ae27739c8  gcc/testsuite/gcc.target/aarch64/sve/mul_highpart_1_run.c
  f3e186f9d8f069549ac98590b6ced555  gcc/testsuite/gcc.target/aarch64/sve/mul_highpart_2.c
*************** bd0ea7412913a5ce083ddea4613bd169  gcc/te
*** 62213,62238 ****
  fa06e7238dbd52dd10fcbc8218d6f455  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1.c
  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
! 226a01b9ac3be0909e01b84b78f91836  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! ad5ffaf025a78f32419653970427a5b5  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
! 23815e6e344ddb0ffbd008b6b60aba7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
! eb3818ec16fadffb1ecf19d7a7d01030  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
! 16aa5dcc140f25f14cdc5b421698530a  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
! 45157b3952d31d2c228377d21fcbed41  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_5.c
! 10c9afddcc698e3655198dff861f166c  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_6.c
! 36242c5a4392d2462c973902d248be24  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_7.c
! 98c1201e0b11d1891ee56448228c3484  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_1.c
  9a0c1a30e339f10b2eff5d87d97a3d2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_10.c
  b5855d38ae62afe76597bfbf06293bcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_nosc.c
  9a99d36b0e07041bce9440421b0a8731  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_sc.c
  70d973fc6bb839c0a068b2525e3a4157  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_12.c
! 96c44a7276489a92013bdef346dbe7a2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
! d5c99629f498f917b4f397397fa41fca  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
! c8d32334d9cabf8ce36d214a3f64cc83  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
  dedc0d2c92973eafdf8c1a8de6b0c429  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
  99a09031f93f949c151488589294bfb1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
  ada863585f0231ad1c002dbbaac4a4df  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
  10bbe772963a1e57da9ea4613d971059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
  8381cf08d7063b4e838fee651d4464b3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
  326493e79a60651abcb4a163c7d4d89b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
  067b6b885f8c7df1cb648d4ae4db66f0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
--- 65898,65924 ----
  fa06e7238dbd52dd10fcbc8218d6f455  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1.c
  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
! b0e0c51ca2054ba43c2a66af90aa6709  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_5.c
! 8d6c3b693c02c98751f49feea224141b  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_6.c
! 83c3ef2f0a23ff7828523f32136fdd4c  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_7.c
! 9636106955a8515b327344c181f9403c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_1.c
  9a0c1a30e339f10b2eff5d87d97a3d2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_10.c
  b5855d38ae62afe76597bfbf06293bcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_nosc.c
  9a99d36b0e07041bce9440421b0a8731  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_sc.c
  70d973fc6bb839c0a068b2525e3a4157  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_12.c
! c583148e99c91b6db29a727df1afcaae  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
! 44e0964dfac1b2670505e23a8d6c0b93  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
! 6ec3132d16c5da231085a105d9c5d83a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
  dedc0d2c92973eafdf8c1a8de6b0c429  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
  99a09031f93f949c151488589294bfb1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
  ada863585f0231ad1c002dbbaac4a4df  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
  10bbe772963a1e57da9ea4613d971059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
+ a474a8f17818a632eb70a52b5fdd86dc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
  8381cf08d7063b4e838fee651d4464b3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
  326493e79a60651abcb4a163c7d4d89b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
  067b6b885f8c7df1cb648d4ae4db66f0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
*************** e9ab924d06198e4361421bd99828983c  gcc/te
*** 62245,62250 ****
--- 65931,65937 ----
  4f4e6cdce478774e73ad00174dd6c9b8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f16.c
  afc8c6a245866482bbbba7a5ac5ddc81  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f32.c
  fc04d5e884c869af5dca58bc8e51ba73  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f64.c
+ 496cdb416628a950171358c48828761c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_mf8.c
  5deb7d8b7d8e23302943c16027118697  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s16.c
  c4b5aa503e68bffaab9ed120e7531563  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s32.c
  2f027eaad596a7186f1d2fdc38d84eaa  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s64.c
*************** a81abf2c3b847d89a391aad7ea53e5f2  gcc/te
*** 62257,62262 ****
--- 65944,65950 ----
  b7ec1766a03976b57dfa9a7c08af77fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
  5001e95713f93a5038d2776c75ae6acd  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
  f56d97605deea3197f3f5dc508df26d5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
+ 0d218fa9d3f719620faa863dde85c342  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
  035754cb03ea542937abcfed875cac20  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
  23d1493011c19064fe79030828f04a1f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
  c043f0ce0d21f4e0f1160148ddc6f957  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
*************** c043f0ce0d21f4e0f1160148ddc6f957  gcc/te
*** 62269,62274 ****
--- 65957,65963 ----
  4e68464f63068967791c2c9f7ae46e5d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f16.c
  097b0ac1dd32964b78fd1e120fbfca78  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f32.c
  2e9f5af57e66f288349137a7f5ff528a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f64.c
+ 27447f0d267e652d3397af286c68d637  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_mf8.c
  5fa014bf92d3facdfff830aed8117cd9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s16.c
  3493c19e510041f88c9cc58ec51a79e1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s32.c
  680590483cddbb9e0c1dc33c59127a4c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s64.c
*************** f18202de4dff9630d08a3ca727a71cc6  gcc/te
*** 62284,62291 ****
  8ce7d348db223538fc712dc7bc5b77bb  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_2.c
  213f62d24f3c2c17933c8ff0fd0b260c  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_3.c
  1632c6cc7d8e3cfefd87a553331210d7  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_4.c
! 988a7cebe95c754607e4f28f7862cb3d  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_1.c
! 41429b60c28ac14dadf659553894d6c0  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_2.c
  a345564247b196e3d360eb62c77639ed  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_3.c
  64216e41acf9f2bb365d447c4244dc7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_1.c
  5399f48ca2468549c87505ff17ca99ec  gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_2.c
--- 65973,65980 ----
  8ce7d348db223538fc712dc7bc5b77bb  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_2.c
  213f62d24f3c2c17933c8ff0fd0b260c  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_3.c
  1632c6cc7d8e3cfefd87a553331210d7  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_4.c
! 44f16f9ea3b783c7bee54be492ee8581  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_1.c
! b51a2d0d049e696529fd33b9ffae61f9  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_2.c
  a345564247b196e3d360eb62c77639ed  gcc/testsuite/gcc.target/aarch64/sve/pcs/gnu_vectors_3.c
  64216e41acf9f2bb365d447c4244dc7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_1.c
  5399f48ca2468549c87505ff17ca99ec  gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_2.c
*************** d3aa01a293830f92f6727f864fa00976  gcc/te
*** 62303,62329 ****
  8ec16762a48181a1c644507e60803511  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_1_512.c
  8ed12dccaf1d0982d88249511e700226  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_2.c
  6a25d51e9ed5331e0804b3c47b4231dd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_3.c
! a1da7d87197ea07e2313567753513ab4  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4.c
! a7268f45e3d6013fa4ab1ae391622bbe  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_1024.c
! fd50708e0e982669de2862a1af7c747b  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_128.c
! d25b0ab684c415dde41b1c3ca781bf01  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_2048.c
! 1c1aaa96fff3ec3bef98560315284276  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_256.c
! f2ee25b58a368a58d4ed28519f7fb6c9  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_512.c
! 721d77297c404c1431b09d15c2c6e439  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5.c
! d0ed82d141451484c41ec3319cf55b09  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_1024.c
! fe732faaee450d90b9c7999c89795870  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_128.c
! 6884c7ee75c9f6825b7b2d3c15194013  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_2048.c
! 4eb2d2411e2cf82d8dc3ddbeee545815  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_256.c
! 7c0b3036a4bae3bd2ebfc43a06c021d0  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_512.c
! a682b6187b0053ecf787b85ac86f0569  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
! 805efe28f0c53b783a6f39f4755c1d12  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
! 7b6ef7ec271fd0b76170f817228bd307  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
! 3c71fe642ab5dc2d73a707462f9803c8  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
! c3fcb375c93a4e00808a890b375c3690  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_256.c
! 688bb27278d442ebc90d61edfb0b2f4e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_512.c
! 1fa844510b7fd5db54dd350675625f08  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
! 857ed7eac4f7e705b0f02b5dab754025  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
! e84627e8e6f26a86950c5326781a2b9e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
  10f00aace9bc09ca8fc4843893c36c9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
  9c155f5b570dacfc5f7e76267ce1caee  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
--- 65992,66018 ----
  8ec16762a48181a1c644507e60803511  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_1_512.c
  8ed12dccaf1d0982d88249511e700226  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_2.c
  6a25d51e9ed5331e0804b3c47b4231dd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_3.c
! 3758ad14ddf1976263fa0cc979851b1b  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4.c
! ddc1ef35f1d972529a6f427c826064b5  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_1024.c
! d48683827f3a809b4b87753a13c8d46e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_128.c
! 6c80f3983af554225650970c5e00b8cb  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_2048.c
! b2b5dbcfa7aed69254e46d82d6f5c2d2  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_256.c
! 6ba7372d1952094104ab39df631f3b72  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_512.c
! 053d32894598189fce57d65c7e341715  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5.c
! 54a28c8009ff86b01ab0f61ec9c5a0fd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_1024.c
! 8e74db9b38f27fd6fa875d3421b2589e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_128.c
! 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
! b6282e2251da4f0fe1e3a1c2c25b0400  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_256.c
! bc25794f86246726bcf7438b0421cc4d  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_512.c
! 783ee528d2829e958c663d95b2ab555a  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
! c65a447b07b3ffaf470d6add7c016dbf  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
! 7e24807b91c1976029217358d9470d37  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
  10f00aace9bc09ca8fc4843893c36c9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
  9c155f5b570dacfc5f7e76267ce1caee  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
*************** dbe533f64021d2fa4e2cf74186903196  gcc/te
*** 62369,62374 ****
--- 66058,66064 ----
  80d14a04b840bc3a3bd811fa2114d12d  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f16.c
  286af88e1a731089d99cbc7b1ea2e1fe  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f32.c
  f127b8b40a1ff4bcaff27aee662292e6  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f64.c
+ 8688e403e419da4380c38860e4c13bb9  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_mf8.c
  d051fbb29828ca8034e333484fbbca74  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s16.c
  1b829d24f5286017ea5f91ce232c890b  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s32.c
  2a842db4f74dccbf184a4bfc67696447  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s64.c
*************** be784ca9a5ddf6f066bc7915b4142d38  gcc/te
*** 62381,62386 ****
--- 66071,66078 ----
  0d2b1da457c317494bd523774a232651  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_sc.c
  57917e2d5014450641adb15f9801307e  gcc/testsuite/gcc.target/aarch64/sve/pcs/vpcs_1.c
  64e601a6c086feed3d6f413ecf0cde2b  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1.c
+ 700c78d8823bf7739fa28027793d9f21  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_10.c
+ 97cb7e7106f61ce2e128ef8e2b287a5c  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_10_run.c
  554f0eec3d39895e8e465acc9954378d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1_run.c
  d78130ede7fe7a8c472ebbcb4da07037  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2.c
  40ef61fe1aa9144c65314b0f7a98fa78  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2_run.c
*************** f247489d5a83c25a52bba3f69ccf6256  gcc/te
*** 62388,62393 ****
--- 66080,66141 ----
  12e45901cb5e8fffa6c192620053ac14  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3_run.c
  3d1ef9d163c4f589cacb3489dbd67eab  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_4.c
  9488251a23018049b302e2b299d999ba  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_4_run.c
+ f661ffdb2b2d8bc866063c023e01453e  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_5.c
+ 18a6ad16f13652d9952e15b1750c616b  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_5_run.c
+ 05039986b49c0594b36d4a89efcdcad7  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_6.c
+ b1e0ab67bd9b4e977b64d2d732eb8645  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_6_run.c
+ 04041b1d632874979e57cde2dce7223a  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_7.c
+ 7d97b6423751e653784ca11a6f001418  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_7_run.c
+ ae483aeab7e4e5301395e718ee1999cc  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_8.c
+ 6e054b219d8a0256c7735d80107f287e  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_8_run.c
+ 1a76243b014fa02e2c5c09c3ec28809a  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_9.c
+ b4cb26f77cb994700c2bb96898529353  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_9_run.c
+ 3403fa7bd3faa08e302357668aaa12c7  gcc/testsuite/gcc.target/aarch64/sve/permute_1.c
+ 94bfbb150aa3fba0e4802dfc707c0f43  gcc/testsuite/gcc.target/aarch64/sve/permute_2.c
+ b5319325441276b5db5345444a2b12be  gcc/testsuite/gcc.target/aarch64/sve/permute_3.c
+ 36e648b173341a667222ac3c42297585  gcc/testsuite/gcc.target/aarch64/sve/permute_4.c
+ ff1d2ab6ed17740cc59f1590798ec48d  gcc/testsuite/gcc.target/aarch64/sve/permute_5.c
+ 149a821506c3d6267ac2c962fe8e9432  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary.c
+ 163460e8723e41b7f7bf42089520b53f  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_int_opt_n.c
+ 30c4db5e78d2325a3d3e7f2904462524  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_opt_n.c
+ 369ade8a3466f234ce1d42f6926156d1  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_opt_single_n.c
+ 3903abab0cfabf79c3721c914ee7074b  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_rotate.c
+ 2568d3806c2b88998d1707e66cfbd28d  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_uint64_opt_n.c
+ b49dc529a2aa71eea17b32a9b8143d35  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binary_uint_opt_n.c
+ 815321d46720ec9b6b515534292461f6  gcc/testsuite/gcc.target/aarch64/sve/pfalse-binaryxn.c
+ c297be393e36d5278037c11fc34d5791  gcc/testsuite/gcc.target/aarch64/sve/pfalse-clast.c
+ 42ab6b1e1de40da8a551c5aec5692165  gcc/testsuite/gcc.target/aarch64/sve/pfalse-compare_opt_n.c
+ 5df9e4bdebd6ba06c36b175ae7de88c7  gcc/testsuite/gcc.target/aarch64/sve/pfalse-compare_wide_opt_n.c
+ 026c73b69d5d52e78083cf3728adfa81  gcc/testsuite/gcc.target/aarch64/sve/pfalse-count_pred.c
+ adf8ed56ba51882114c22dd109a7ae7a  gcc/testsuite/gcc.target/aarch64/sve/pfalse-fold_left.c
+ d4a9410cbc49fc66fb3027173bf78e50  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load.c
+ 415964205aa16e2ebaaa75074d2ff2bf  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_ext.c
+ b58edcde5b72d3bd8f306e1ae17abb3b  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_ext_gather_index.c
+ 412f167931aaf8c500a3337f7804d4b1  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_ext_gather_offset.c
+ 5190d6fccce9740f4770108a7ef6a1c3  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_gather_sv.c
+ 89234f236c6c7cbd436cd9f7cf6872a4  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_gather_vs.c
+ 5b9f719acd1cf98014441d4c4447f902  gcc/testsuite/gcc.target/aarch64/sve/pfalse-load_replicate.c
+ 28ebab713c6d2a452214845be17675f3  gcc/testsuite/gcc.target/aarch64/sve/pfalse-prefetch.c
+ e497943180b641c77f9291beafdb4ef7  gcc/testsuite/gcc.target/aarch64/sve/pfalse-prefetch_gather_index.c
+ 5cc31e4363d67165941d7d977ebe9e98  gcc/testsuite/gcc.target/aarch64/sve/pfalse-prefetch_gather_offset.c
+ 347ebd191abee0a242a8cb00d1017101  gcc/testsuite/gcc.target/aarch64/sve/pfalse-ptest.c
+ 65a150d1561af25eec73b6d70dae2996  gcc/testsuite/gcc.target/aarch64/sve/pfalse-rdffr.c
+ 25a1d42d053de97645f2f85f1523c0ad  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction.c
+ 7168509f7e96d845be8c7ee348847e42  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction_wide.c
+ 1072e1ffa908fafc0fc4ab97b8cfb8a0  gcc/testsuite/gcc.target/aarch64/sve/pfalse-shift_right_imm.c
+ 780324ce8c98be926f2c11780cd137ab  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store.c
+ e4260509c6ddd1047efadfdf58964031  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_index.c
+ 2e40798bba2a2bd89f35ce7263d4dd24  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_offset.c
+ 209a68333dc42f2fde3b458a96924ffc  gcc/testsuite/gcc.target/aarch64/sve/pfalse-storexn.c
+ 6ef5eab71eb6a453f3827af21503b1e2  gcc/testsuite/gcc.target/aarch64/sve/pfalse-ternary_opt_n.c
+ ad37caa6c772445ba953ed0494149ab7  gcc/testsuite/gcc.target/aarch64/sve/pfalse-ternary_rotate.c
+ 4e16df2aea3b0c82b852962193210ada  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary.c
+ 4d3c78659c5151aff68905abb16f4def  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary_convert_narrowt.c
+ 21e3c27616659f5b38538f3351bffe36  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary_convertxn.c
+ e992a498e8d813ced3975cf0fdf8a577  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary_n.c
+ 8724cc385ac21506d5ade9c1a79e8192  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary_pred.c
+ 8719babde3a8a497232127e561848291  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unary_to_uint.c
+ 523e29afa093757b750624ee5c575bbb  gcc/testsuite/gcc.target/aarch64/sve/pfalse-unaryxn.c
  58779ff2ec8df7f5f3f3b93f444f0617  gcc/testsuite/gcc.target/aarch64/sve/popcount_1.c
  43e7bc10a42a3debf5d1ccecc4464720  gcc/testsuite/gcc.target/aarch64/sve/popcount_1_run.c
  12ecad870dc3cdd512c314f6e0ba3c08  gcc/testsuite/gcc.target/aarch64/sve/pr100048.c
*************** a1eb5ddb5902496d5253fa3260ba71e1  gcc/te
*** 62403,62409 ****
  8cdf49618d3a0d6c619b66f29122607c  gcc/testsuite/gcc.target/aarch64/sve/pr106524.c
  eca80e3b9abf33f8e3c3b0f03259af2f  gcc/testsuite/gcc.target/aarch64/sve/pr106694.c
  98d66f81e990fa17cc98d71159fe3ada  gcc/testsuite/gcc.target/aarch64/sve/pr108430.c
! 48482e1fc72765b58f7e50fe16705068  gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
  e63ee9a8151c9691caadc8fcc81bbf26  gcc/testsuite/gcc.target/aarch64/sve/pr108608-1.c
  fca208aba0269c8218d4736a10ac6a83  gcc/testsuite/gcc.target/aarch64/sve/pr109176.c
  72b392d1da91fcaa10ed39874a05eb04  gcc/testsuite/gcc.target/aarch64/sve/pr109254.c
--- 66151,66157 ----
  8cdf49618d3a0d6c619b66f29122607c  gcc/testsuite/gcc.target/aarch64/sve/pr106524.c
  eca80e3b9abf33f8e3c3b0f03259af2f  gcc/testsuite/gcc.target/aarch64/sve/pr106694.c
  98d66f81e990fa17cc98d71159fe3ada  gcc/testsuite/gcc.target/aarch64/sve/pr108430.c
! 4ec4582850245c478ac783191d9057a0  gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
  e63ee9a8151c9691caadc8fcc81bbf26  gcc/testsuite/gcc.target/aarch64/sve/pr108608-1.c
  fca208aba0269c8218d4736a10ac6a83  gcc/testsuite/gcc.target/aarch64/sve/pr109176.c
  72b392d1da91fcaa10ed39874a05eb04  gcc/testsuite/gcc.target/aarch64/sve/pr109254.c
*************** d397e696c3a4e79e515c9cd8f43000eb  gcc/te
*** 62413,62418 ****
--- 66161,66170 ----
  ea42d07119e6d0bf4a13e781c6d1367d  gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
  df238b64cc974628a48afaac0cd271a1  gcc/testsuite/gcc.target/aarch64/sve/pr112278.c
  1e6a531b2e65bc8f68af2fa7690637f3  gcc/testsuite/gcc.target/aarch64/sve/pr113572.c
+ 32ab14334cab1c6336c74f3dc7e201db  gcc/testsuite/gcc.target/aarch64/sve/pr116238.c
+ 1b79fc9f352eda12d6be24fe2d93d5bc  gcc/testsuite/gcc.target/aarch64/sve/pr116259-1.c
+ 37c8a6d45bec8da5daf1eb003bdb2102  gcc/testsuite/gcc.target/aarch64/sve/pr119351.c
+ fba890ec69e5613e555983284ebab389  gcc/testsuite/gcc.target/aarch64/sve/pr119351_run.c
  7e2aaf0806edd37415079b5c2e48b66c  gcc/testsuite/gcc.target/aarch64/sve/pr81003.c
  00b752a6e175de8b1a300df08f275461  gcc/testsuite/gcc.target/aarch64/sve/pr87563.c
  c56eeba71ad463673a1bdb30e7a94863  gcc/testsuite/gcc.target/aarch64/sve/pr87815.c
*************** b8cc1762bc5a2f3599b4ca89f90fec1d  gcc/te
*** 62430,62448 ****
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! adf46d789692f755bcd2cfd35bcf7480  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
  0bd0c11c70979d74de80fd698161a3be  gcc/testsuite/gcc.target/aarch64/sve/pr97141.c
  551b93da908927fd5461395f52ee36cf  gcc/testsuite/gcc.target/aarch64/sve/pr97144.c
  52c6ecc9bb5839481a0b9229b539e8f3  gcc/testsuite/gcc.target/aarch64/sve/pr97696.c
  feaaf48c5bd3e12bf1024ebc5d6dfdfa  gcc/testsuite/gcc.target/aarch64/sve/pr98119.c
  6c0e94c363caf9e62df35ea98b4918ed  gcc/testsuite/gcc.target/aarch64/sve/pr98177-1.c
  e64000c150bb204c31dca884ee33dd4f  gcc/testsuite/gcc.target/aarch64/sve/pr98177-2.c
  3599b0dfd7d1d7cf9e0340e2de2f2c01  gcc/testsuite/gcc.target/aarch64/sve/pr98214.c
! ffe30c79c242fa62db3926fdd0bc8341  gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c
! ff0ddeea0464fd011f5ecacb417afb1d  gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c
  1ddb81bdd4fdba57625a8877ce429277  gcc/testsuite/gcc.target/aarch64/sve/pr98535.c
  5599f48d75234b77373f5ed45eab0181  gcc/testsuite/gcc.target/aarch64/sve/pr98657.c
  3700e9317b864fda88d513b134b71a26  gcc/testsuite/gcc.target/aarch64/sve/pr98726.c
--- 66182,66201 ----
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! aed1bb7e132d0854a926a7a7e314ba51  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
  0bd0c11c70979d74de80fd698161a3be  gcc/testsuite/gcc.target/aarch64/sve/pr97141.c
  551b93da908927fd5461395f52ee36cf  gcc/testsuite/gcc.target/aarch64/sve/pr97144.c
+ 46973748fc52781af053421fac99d67d  gcc/testsuite/gcc.target/aarch64/sve/pr97405-1.c
  52c6ecc9bb5839481a0b9229b539e8f3  gcc/testsuite/gcc.target/aarch64/sve/pr97696.c
  feaaf48c5bd3e12bf1024ebc5d6dfdfa  gcc/testsuite/gcc.target/aarch64/sve/pr98119.c
  6c0e94c363caf9e62df35ea98b4918ed  gcc/testsuite/gcc.target/aarch64/sve/pr98177-1.c
  e64000c150bb204c31dca884ee33dd4f  gcc/testsuite/gcc.target/aarch64/sve/pr98177-2.c
  3599b0dfd7d1d7cf9e0340e2de2f2c01  gcc/testsuite/gcc.target/aarch64/sve/pr98214.c
! 53c1f7ff5f7c23af73f046282261c3ed  gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c
! 21679da5f4c9807524183d1df9943acf  gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c
  1ddb81bdd4fdba57625a8877ce429277  gcc/testsuite/gcc.target/aarch64/sve/pr98535.c
  5599f48d75234b77373f5ed45eab0181  gcc/testsuite/gcc.target/aarch64/sve/pr98657.c
  3700e9317b864fda88d513b134b71a26  gcc/testsuite/gcc.target/aarch64/sve/pr98726.c
*************** d1c128e3b98b85fbd2989c58c4ec796d  gcc/te
*** 62452,62464 ****
  2c1a652b1133f045edf5ad7b399104ea  gcc/testsuite/gcc.target/aarch64/sve/pr99873_3.c
  a866cb5b08078d8fe7c2f8ead2f55150  gcc/testsuite/gcc.target/aarch64/sve/pr99929_1.c
  26d14a9990e480e5b2370a215688cb95  gcc/testsuite/gcc.target/aarch64/sve/pr99929_2.c
- 1222024b6d31eb7974ee689bde858f96  gcc/testsuite/gcc.target/aarch64/sve/pre_cond_share_1.c
  331555427c952e0fafa4d28627ba2203  gcc/testsuite/gcc.target/aarch64/sve/pred-combine-and.c
  8827ce78fac454b1055c71e630a32f2f  gcc/testsuite/gcc.target/aarch64/sve/pred-cond-reduc.c
  08acdc830c2cfab2d6049cb71c8781cd  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-1.c
  e96a492f889ca21f0d94c0f7863bccd3  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-2.c
  1c82ca31e6643e7150d5be264a0b3f0b  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-3.c
  e84d1cb8e3ce67d9fc555c73dccf9a6f  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-4.c
  e9e92c2ec92da9f29261bd9d1a3cace4  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_1.c
  bc00a0e0dea7500ecba0544bd58c0277  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c
  5db11794c73b7fe99d963e6944cfc839  gcc/testsuite/gcc.target/aarch64/sve/ptest_1.c
--- 66205,66220 ----
  2c1a652b1133f045edf5ad7b399104ea  gcc/testsuite/gcc.target/aarch64/sve/pr99873_3.c
  a866cb5b08078d8fe7c2f8ead2f55150  gcc/testsuite/gcc.target/aarch64/sve/pr99929_1.c
  26d14a9990e480e5b2370a215688cb95  gcc/testsuite/gcc.target/aarch64/sve/pr99929_2.c
  331555427c952e0fafa4d28627ba2203  gcc/testsuite/gcc.target/aarch64/sve/pred-combine-and.c
  8827ce78fac454b1055c71e630a32f2f  gcc/testsuite/gcc.target/aarch64/sve/pred-cond-reduc.c
  08acdc830c2cfab2d6049cb71c8781cd  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-1.c
  e96a492f889ca21f0d94c0f7863bccd3  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-2.c
  1c82ca31e6643e7150d5be264a0b3f0b  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-3.c
  e84d1cb8e3ce67d9fc555c73dccf9a6f  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-4.c
+ 662fb333762728a29373e5642e6de83c  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_1.c
+ 1d6cb14b7c2d68b6b336fdff29330f8a  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_2.c
+ 0ebf2ddc621f6ded67d44e392cbdfe02  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_3.c
+ 4ea492d400a838a23f3f4e9d1e830c73  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_4.c
  e9e92c2ec92da9f29261bd9d1a3cace4  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_1.c
  bc00a0e0dea7500ecba0544bd58c0277  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c
  5db11794c73b7fe99d963e6944cfc839  gcc/testsuite/gcc.target/aarch64/sve/ptest_1.c
*************** e9412748f42464e73956ed0b43b916ec  gcc/te
*** 62496,62503 ****
  be23f2835abad04ca7c96e9f41d100dd  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_2.c
  6b44fb2dee5b9e096a48e2190ea199ab  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_2_run.c
  1438e067c6c0006def8859a72c6433b1  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c
! 72cf319a5e76c8abd94d6b6f06159f25  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_4.c
! c037eee8fd14963a5886942161421dbf  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_5.c
  fbb47a0c8b26249a132651c8f52f569e  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_6.c
  c36eb4620defc79e01d08f32cf7c722c  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_7.c
  e6b5e4cbf26373edecff7db63551330e  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_8.c
--- 66252,66259 ----
  be23f2835abad04ca7c96e9f41d100dd  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_2.c
  6b44fb2dee5b9e096a48e2190ea199ab  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_2_run.c
  1438e067c6c0006def8859a72c6433b1  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_3.c
! 236f83d9db0344da57f83199524c4bfd  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_4.c
! 01146a6ab86dbbcac5dd4e9b40bcde00  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_5.c
  fbb47a0c8b26249a132651c8f52f569e  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_6.c
  c36eb4620defc79e01d08f32cf7c722c  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_7.c
  e6b5e4cbf26373edecff7db63551330e  gcc/testsuite/gcc.target/aarch64/sve/reduc_strict_8.c
*************** ecc86ca70d9873931d62c47481e3089d  gcc/te
*** 62515,62520 ****
--- 66271,66282 ----
  82cc68a63e644509dc4ffa773504d753  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1.c
  f9d2dfb3403e355b20f0e438b79b899c  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1_run.c
  62403b5248ada1c1a275c784875bfe24  gcc/testsuite/gcc.target/aarch64/sve/sad_1.c
+ cc9438c73e84764e938abe1a30ceff39  gcc/testsuite/gcc.target/aarch64/sve/satd-hadamard.c
+ 432cf44e65a61ac1eb74935a6b59c83c  gcc/testsuite/gcc.target/aarch64/sve/saturating_arithmetic.inc
+ 1dfd73f5584b66374b6b6c6ed9869eba  gcc/testsuite/gcc.target/aarch64/sve/saturating_arithmetic_1.c
+ cc813bd90fdef0a6ac5c8ae6e6024aa0  gcc/testsuite/gcc.target/aarch64/sve/saturating_arithmetic_2.c
+ 8d72846b6aeb7d8852213e7a7c0336ce  gcc/testsuite/gcc.target/aarch64/sve/saturating_arithmetic_3.c
+ d95cdbb6fc241da2f2a8b16dde3edce9  gcc/testsuite/gcc.target/aarch64/sve/saturating_arithmetic_4.c
  afdb66d32645b4f02c5999f7bd471f22  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_1.c
  86bc5ef0ef8d9c03d4626f4be0bb0cc6  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_2.c
  3c6af3bacb63f30f2b337b7281706995  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_3.c
*************** c0086cbea7bf880d226cb176d078ccf1  gcc/te
*** 62531,62542 ****
  a8c77b95bd5326b0cdaee7971136285d  gcc/testsuite/gcc.target/aarch64/sve/sel_5.c
  c22e90c555fd4e08f770dd7e84a27798  gcc/testsuite/gcc.target/aarch64/sve/sel_6.c
  c36c0d859d7358a7cf09605bb6f61e7a  gcc/testsuite/gcc.target/aarch64/sve/shift_1.c
! b55f97923c0c759dae9e5c7b37c79c79  gcc/testsuite/gcc.target/aarch64/sve/shift_2.c
  ea96e0c3148179cba37c3aa8410afe8f  gcc/testsuite/gcc.target/aarch64/sve/single_1.c
  aff4971b5f3193b9e2a927dfa176b6d6  gcc/testsuite/gcc.target/aarch64/sve/single_2.c
  dc2e19332dc2abe19e6f3ebbfdb15163  gcc/testsuite/gcc.target/aarch64/sve/single_3.c
  f7ebb6b139ec5de7aac9309c7c1525fb  gcc/testsuite/gcc.target/aarch64/sve/single_4.c
! 846452acd80024e0dbdf7c35b1765b65  gcc/testsuite/gcc.target/aarch64/sve/single_5.c
  2b5533c811869448f2c015cec02da768  gcc/testsuite/gcc.target/aarch64/sve/slp_1.c
  2d92793326712b8d9999095da4e74955  gcc/testsuite/gcc.target/aarch64/sve/slp_10.c
  df29a45b5ee2033132b0a6f7d96ebfe3  gcc/testsuite/gcc.target/aarch64/sve/slp_10_run.c
--- 66293,66307 ----
  a8c77b95bd5326b0cdaee7971136285d  gcc/testsuite/gcc.target/aarch64/sve/sel_5.c
  c22e90c555fd4e08f770dd7e84a27798  gcc/testsuite/gcc.target/aarch64/sve/sel_6.c
  c36c0d859d7358a7cf09605bb6f61e7a  gcc/testsuite/gcc.target/aarch64/sve/shift_1.c
! ab115fc66c3ca381694901b3efd77092  gcc/testsuite/gcc.target/aarch64/sve/shift_2.c
! b742592bc8045ec0015168c8f288d8a7  gcc/testsuite/gcc.target/aarch64/sve/sibcall_1.c
! 490e20f75641a2353722e04a16e7826a  gcc/testsuite/gcc.target/aarch64/sve/simd_imm.c
! f4445d4c3ee24e3e195328a507b2d59e  gcc/testsuite/gcc.target/aarch64/sve/simd_imm_mov.c
  ea96e0c3148179cba37c3aa8410afe8f  gcc/testsuite/gcc.target/aarch64/sve/single_1.c
  aff4971b5f3193b9e2a927dfa176b6d6  gcc/testsuite/gcc.target/aarch64/sve/single_2.c
  dc2e19332dc2abe19e6f3ebbfdb15163  gcc/testsuite/gcc.target/aarch64/sve/single_3.c
  f7ebb6b139ec5de7aac9309c7c1525fb  gcc/testsuite/gcc.target/aarch64/sve/single_4.c
! be62ee77685e07cba780bef99d05a7eb  gcc/testsuite/gcc.target/aarch64/sve/single_5.c
  2b5533c811869448f2c015cec02da768  gcc/testsuite/gcc.target/aarch64/sve/slp_1.c
  2d92793326712b8d9999095da4e74955  gcc/testsuite/gcc.target/aarch64/sve/slp_10.c
  df29a45b5ee2033132b0a6f7d96ebfe3  gcc/testsuite/gcc.target/aarch64/sve/slp_10_run.c
*************** d20b7524d251213c0a38ee4072095889  gcc/te
*** 62573,62580 ****
  6d624b6e5c4a148e4d3ac41bb7c27891  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_3.c
  8cdb9341d8c903a4ae4c26d0f6950e5d  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_4.c
  00e962f4f434f1a0a41c352a562a2082  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_5.c
! 9bf53b83760cd141e85e2a934b19dc0d  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_6.c
! 39c0d5374d885f50a66c0533b57a0335  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_7.c
  27c757f5b705facca869d233012cbf1c  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_8.c
  46fa805469d98c65f523c7951e4e1d78  gcc/testsuite/gcc.target/aarch64/sve/smax_1.c
  bcc54159505177890d20f04228b96fc3  gcc/testsuite/gcc.target/aarch64/sve/smin_1.c
--- 66338,66345 ----
  6d624b6e5c4a148e4d3ac41bb7c27891  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_3.c
  8cdb9341d8c903a4ae4c26d0f6950e5d  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_4.c
  00e962f4f434f1a0a41c352a562a2082  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_5.c
! f086cc45213645c0c41e1299d9ef5d6e  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_6.c
! 240c6b7ea92e49c0da93f87e03f06ecf  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_7.c
  27c757f5b705facca869d233012cbf1c  gcc/testsuite/gcc.target/aarch64/sve/slp_perm_8.c
  46fa805469d98c65f523c7951e4e1d78  gcc/testsuite/gcc.target/aarch64/sve/smax_1.c
  bcc54159505177890d20f04228b96fc3  gcc/testsuite/gcc.target/aarch64/sve/smin_1.c
*************** c741483ab050dbc5557298221d4f6535  gcc/te
*** 62583,62596 ****
  9d61e8489d807a0ddab5a56502080830  gcc/testsuite/gcc.target/aarch64/sve/spill_3.c
  dc65fa58e389d25f2ce06865b4f3c78d  gcc/testsuite/gcc.target/aarch64/sve/spill_4.c
  7d58d6f8c4952c765dce0a4b673a7f57  gcc/testsuite/gcc.target/aarch64/sve/spill_5.c
! 51778573e851b5ddaa1321ab1bbe384d  gcc/testsuite/gcc.target/aarch64/sve/spill_6.c
  6ce93f69a58a652ebf7f305ba7ba7821  gcc/testsuite/gcc.target/aarch64/sve/spill_7.c
  46b3c126f564cf34f6b05d520688ac64  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1.c
  3a97109aa07f35190124bbf7f1c97e74  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1_run.c
  24c79cb66b332e52a6555fc4279da15e  gcc/testsuite/gcc.target/aarch64/sve/store_lane_spill_1.c
  bd594459c81050716629f82ccab27133  gcc/testsuite/gcc.target/aarch64/sve/store_scalar_offset_1.c
  181bfd966c00aa4ed6fa1aae34f53f52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_1.c
! 12f4989e398bbd604266bbe500309d29  gcc/testsuite/gcc.target/aarch64/sve/strided_load_2.c
  001ca127b5344bafb4f914644d174d52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_3.c
  4bb795bf92eab9e6860cec5ad334a41d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_4.c
  d8059cb9117a068460bf24f5dba7d2f8  gcc/testsuite/gcc.target/aarch64/sve/strided_load_5.c
--- 66348,66361 ----
  9d61e8489d807a0ddab5a56502080830  gcc/testsuite/gcc.target/aarch64/sve/spill_3.c
  dc65fa58e389d25f2ce06865b4f3c78d  gcc/testsuite/gcc.target/aarch64/sve/spill_4.c
  7d58d6f8c4952c765dce0a4b673a7f57  gcc/testsuite/gcc.target/aarch64/sve/spill_5.c
! 356aeb83553762421a1b0ef5ad3f5bc4  gcc/testsuite/gcc.target/aarch64/sve/spill_6.c
  6ce93f69a58a652ebf7f305ba7ba7821  gcc/testsuite/gcc.target/aarch64/sve/spill_7.c
  46b3c126f564cf34f6b05d520688ac64  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1.c
  3a97109aa07f35190124bbf7f1c97e74  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1_run.c
  24c79cb66b332e52a6555fc4279da15e  gcc/testsuite/gcc.target/aarch64/sve/store_lane_spill_1.c
  bd594459c81050716629f82ccab27133  gcc/testsuite/gcc.target/aarch64/sve/store_scalar_offset_1.c
  181bfd966c00aa4ed6fa1aae34f53f52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_1.c
! 2fe2637c1e99addc496b09ab5ff8c320  gcc/testsuite/gcc.target/aarch64/sve/strided_load_2.c
  001ca127b5344bafb4f914644d174d52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_3.c
  4bb795bf92eab9e6860cec5ad334a41d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_4.c
  d8059cb9117a068460bf24f5dba7d2f8  gcc/testsuite/gcc.target/aarch64/sve/strided_load_5.c
*************** d8059cb9117a068460bf24f5dba7d2f8  gcc/te
*** 62598,62604 ****
  acf037781a376e80d46dbdacfd1de583  gcc/testsuite/gcc.target/aarch64/sve/strided_load_7.c
  f3cb7598c2e0806a8c4a0ef095a88423  gcc/testsuite/gcc.target/aarch64/sve/strided_load_8.c
  ff8786ae6fde587cbd18b1512938785d  gcc/testsuite/gcc.target/aarch64/sve/strided_store_1.c
! 175c042e0f9e9ff7613b2d4ec6b2512f  gcc/testsuite/gcc.target/aarch64/sve/strided_store_2.c
  b1e81372ee1a91d170f8a70bb2d1e5c2  gcc/testsuite/gcc.target/aarch64/sve/strided_store_3.c
  a421d5e1fc09e2a43ba0b51529d4676c  gcc/testsuite/gcc.target/aarch64/sve/strided_store_4.c
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
--- 66363,66369 ----
  acf037781a376e80d46dbdacfd1de583  gcc/testsuite/gcc.target/aarch64/sve/strided_load_7.c
  f3cb7598c2e0806a8c4a0ef095a88423  gcc/testsuite/gcc.target/aarch64/sve/strided_load_8.c
  ff8786ae6fde587cbd18b1512938785d  gcc/testsuite/gcc.target/aarch64/sve/strided_store_1.c
! 37ffb54ba2d42de27651e5a83483ba41  gcc/testsuite/gcc.target/aarch64/sve/strided_store_2.c
  b1e81372ee1a91d170f8a70bb2d1e5c2  gcc/testsuite/gcc.target/aarch64/sve/strided_store_3.c
  a421d5e1fc09e2a43ba0b51529d4676c  gcc/testsuite/gcc.target/aarch64/sve/strided_store_4.c
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
*************** a2d5f92a7dc0b6481151a826c2095f4f  gcc/te
*** 62657,62671 ****
--- 66422,66443 ----
  1036ae2a949439aca385c69d91223baa  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9.c
  c0e9f1053cbcbdcf665c67fcfd249122  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9_run.c
  2edf4feae8f8f8f1fb3c8eaf5f1afd35  gcc/testsuite/gcc.target/aarch64/sve/subr_1.c
+ f8764d19f382135deae9e5f6c99c8b11  gcc/testsuite/gcc.target/aarch64/sve/sve-asrd.c
+ dc02db03a7a92fdba2df007a044f618e  gcc/testsuite/gcc.target/aarch64/sve/sve_iters_low_1.c
+ 1a118b20ea5591aadff05981c326a728  gcc/testsuite/gcc.target/aarch64/sve/sve_iters_low_2.c
+ 66ab04526d7ada4129aa7bc2804510cc  gcc/testsuite/gcc.target/aarch64/sve/sve_shl_add.c
+ b4ad4ea3e1b8b235e71beb9786be1032  gcc/testsuite/gcc.target/aarch64/sve/target_optimization-1.c
  9a1dcb16fbc7feec09ee78947a954c17  gcc/testsuite/gcc.target/aarch64/sve/tls_1.c
  37dddd81e6e47af384cdfbd6cf73906f  gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_1.c
  875820b7ba4a1a3947713183ad6b0965  gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_2.c
  569626a579663f47f1bd01ed6f4da657  gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_3.c
+ 9668e01b32ae6f739e08a48730ddb102  gcc/testsuite/gcc.target/aarch64/sve/trapping-1.c
  6c0180841c8eeb8d62062e04e4eebcac  gcc/testsuite/gcc.target/aarch64/sve/trn1_1.c
  0065028e96db5d4af477c9085407ee80  gcc/testsuite/gcc.target/aarch64/sve/trn1_2.c
  0112727c4d7e88cd6e98899949a7b071  gcc/testsuite/gcc.target/aarch64/sve/trn2_1.c
  8e435f223fed00bac551dbfaa186d46a  gcc/testsuite/gcc.target/aarch64/sve/trn2_2.c
  801b5710924f9c7a8d5f5892f5ef05dd  gcc/testsuite/gcc.target/aarch64/sve/truncate_1.c
+ 1c58f516bc4bc8f363872efa98f5d4d4  gcc/testsuite/gcc.target/aarch64/sve/truncated_concatenation_1.c
  1f6a41fdf4d9fc29aaf82a61813ec5f8  gcc/testsuite/gcc.target/aarch64/sve/umax_1.c
  62d1ecc4a7e6a5ceb305c98a05813595  gcc/testsuite/gcc.target/aarch64/sve/umin_1.c
  66ab6f1e7c04c3d49fef403406afc328  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1.c
*************** e7a3b62d81ab7c0991182b370fdfe06f  gcc/te
*** 62679,62688 ****
  5fc3acd66e8ad342f32e01a87a71ead4  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
  61ef61cfc6c64004c59a9698eaaf6e47  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
! 5a1bd749bf4d60baf28be6e49b1b9d4b  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
! 15d9645260cd96e817750eb383c36679  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
--- 66451,66460 ----
  5fc3acd66e8ad342f32e01a87a71ead4  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
  61ef61cfc6c64004c59a9698eaaf6e47  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.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
*************** a6a975a0f9a3d6c2461cd427c69e0a43  gcc/te
*** 62706,62712 ****
  f58922b1f5d9d289c8df20273c0568d3  gcc/testsuite/gcc.target/aarch64/sve/vcond_10_run.c
  fa91a29c1966fde184724e0d4d381ac5  gcc/testsuite/gcc.target/aarch64/sve/vcond_11.c
  9a6984ba404ef13688bb162b3cb8aef7  gcc/testsuite/gcc.target/aarch64/sve/vcond_11_run.c
! e9f58ff7f49efc88f6e02a3abd7c57b3  gcc/testsuite/gcc.target/aarch64/sve/vcond_12.c
  a7baf4374a452d4c69aa5bd1a8828f47  gcc/testsuite/gcc.target/aarch64/sve/vcond_12_run.c
  e75b1a176eb77ade401935c1937d86aa  gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c
  39711b19fd2ae1805fd3fb75093c507f  gcc/testsuite/gcc.target/aarch64/sve/vcond_13_run.c
--- 66478,66484 ----
  f58922b1f5d9d289c8df20273c0568d3  gcc/testsuite/gcc.target/aarch64/sve/vcond_10_run.c
  fa91a29c1966fde184724e0d4d381ac5  gcc/testsuite/gcc.target/aarch64/sve/vcond_11.c
  9a6984ba404ef13688bb162b3cb8aef7  gcc/testsuite/gcc.target/aarch64/sve/vcond_11_run.c
! 381dde88a66260777139104dfa391bd7  gcc/testsuite/gcc.target/aarch64/sve/vcond_12.c
  a7baf4374a452d4c69aa5bd1a8828f47  gcc/testsuite/gcc.target/aarch64/sve/vcond_12_run.c
  e75b1a176eb77ade401935c1937d86aa  gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c
  39711b19fd2ae1805fd3fb75093c507f  gcc/testsuite/gcc.target/aarch64/sve/vcond_13_run.c
*************** ad03609f7c5910d8e0ee4d989acbb564  gcc/te
*** 62749,62763 ****
  fede82c538ecebf82ae0f495a35f66db  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1.c
  008cae7eaa9cd6f41b5955cdd2b3f709  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1_run.c
  2502162497eb48d665e7c376dccae0df  gcc/testsuite/gcc.target/aarch64/sve/vec_init_2.c
! e58a96c2ac23542a952e7c47f8c298dc  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1.c
  a26f50223dec145aaa01ffa81756d9be  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_overrange_run.c
  51117843fdfadbfc8dedd0fee643b4fb  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_run.c
! 684716ce78c6a0f0c132ca0ca26fea5e  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1.c
! cb867889541f87cb0f9d98cda5326856  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1_overrun.c
  bc3fe35e61645f4d394bfcf6e3cbc2cf  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1_run.c
! ed24813645562316311675bf8409cfc5  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_single_1.c
  cbb22a935d1768837f5969eca674b5f8  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_single_1_run.c
! 661c355d657c0e853dce72437a032ef3  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1.c
  1fdea20be121da7789c290195705e989  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1_run.c
  0c14cc7eaae54f0f371665d59952475d  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
  f0756c53ff3a98bc41d556c52afe94e6  gcc/testsuite/gcc.target/aarch64/sve/vusdot-autovec.c
--- 66521,66536 ----
  fede82c538ecebf82ae0f495a35f66db  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1.c
  008cae7eaa9cd6f41b5955cdd2b3f709  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1_run.c
  2502162497eb48d665e7c376dccae0df  gcc/testsuite/gcc.target/aarch64/sve/vec_init_2.c
! 9fde45bbc25e8a9c33cdac0a306c5054  gcc/testsuite/gcc.target/aarch64/sve/vec_init_3.c
! ad5ce34e9e891872cc75c0ffed59addd  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1.c
  a26f50223dec145aaa01ffa81756d9be  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_overrange_run.c
  51117843fdfadbfc8dedd0fee643b4fb  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_run.c
! f18d1a8d80536a6157d04914a5fbddfd  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1.c
! 4c46ecf7fbcd244887a9a4a4473367dd  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1_overrun.c
  bc3fe35e61645f4d394bfcf6e3cbc2cf  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_1_run.c
! d9a593d9ae51818560567a860b55b22f  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_single_1.c
  cbb22a935d1768837f5969eca674b5f8  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_single_1_run.c
! 557194fd72124fc531d89b4b9a327081  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1.c
  1fdea20be121da7789c290195705e989  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1_run.c
  0c14cc7eaae54f0f371665d59952475d  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
  f0756c53ff3a98bc41d556c52afe94e6  gcc/testsuite/gcc.target/aarch64/sve/vusdot-autovec.c
*************** e13b38f2990120fb563c7e3296667346  gcc/te
*** 62776,62791 ****
  1a84a5937709246fd93ca5b48868e104  gcc/testsuite/gcc.target/aarch64/sve/zip1_2.c
  c5724f6767410c7983d266d6febb0f89  gcc/testsuite/gcc.target/aarch64/sve/zip2_1.c
  2eed99c891a5aeae7979afd71257ceaa  gcc/testsuite/gcc.target/aarch64/sve/zip2_2.c
! dc6ed7e6176ba70fbc7cd8c384eca06d  gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
! cdab2930bc48f02364930e7fab77512a  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 239e4ce7128a96a26bbe7d1cedc5cbab  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
  f70a8121d1df4875294cca368f9923a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s16.c
! c218a2086e6a44bef255447d1da29b8b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s32.c
! e66b0c7936f0923b4b4c2d6f4e417206  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s64.c
  ec21c6a99b6932b167fe35fa9ac45dfb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s8.c
  18ff53c28fac7c48bd8ec2d6e75b4438  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u16.c
! b335606a2136627c71155ba6cbf5106a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u32.c
! 547c7badbf3f6b1ccfcb5ec734ef6d6d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u64.c
  fc157a8af4d841509a9e4436ca15ec7a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u8.c
  7ef28067d5f189d8d0d625628f04dd0f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/abalb_s16.c
  01e3bbfc42d8255ece4b10d611f96568  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/abalb_s32.c
--- 66549,66564 ----
  1a84a5937709246fd93ca5b48868e104  gcc/testsuite/gcc.target/aarch64/sve/zip1_2.c
  c5724f6767410c7983d266d6febb0f89  gcc/testsuite/gcc.target/aarch64/sve/zip2_1.c
  2eed99c891a5aeae7979afd71257ceaa  gcc/testsuite/gcc.target/aarch64/sve/zip2_2.c
! b7092890e9ba03df340c16caf18316fa  gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
! 62d5842a052c44983b26c9ef505bd5ce  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 6f56bda4776e0bacefc9440da9f67076  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
  f70a8121d1df4875294cca368f9923a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s16.c
! 16dc3f9201c99b8dc7fad7cc45a1eead  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s32.c
! ffddb2dab0ac527b5a7259f7c209aaf7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s64.c
  ec21c6a99b6932b167fe35fa9ac45dfb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s8.c
  18ff53c28fac7c48bd8ec2d6e75b4438  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u16.c
! ef22cd8d0e26371a0e48f5444a4355c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u32.c
! 1759409a5820ff5adce708221567e600  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u64.c
  fc157a8af4d841509a9e4436ca15ec7a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_u8.c
  7ef28067d5f189d8d0d625628f04dd0f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/abalb_s16.c
  01e3bbfc42d8255ece4b10d611f96568  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/abalb_s32.c
*************** ce3005d22e5a83056c4e99f6fd4b3e6e  gcc/te
*** 62821,62826 ****
--- 66594,66600 ----
  b8bd2f04e6d52e96c4a99ad6a629c8d6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/adclb_u64.c
  f041ca17e7209e24f01adc91ba6b7d15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/adclt_u32.c
  3a0ff5ef415343cf2bc7361f88d81a54  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/adclt_u64.c
+ 02dd1496a1faa85f7405b00dc2e30ffd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/add_bf16.c
  8e88bb6706731d1cddee8556d7c41f14  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addhnb_s16.c
  37f77091a208413139014a3c69388fca  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addhnb_s32.c
  6a28c5ee23fdbdc82050591c0044e487  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addhnb_s64.c
*************** fec63f5059a8f3cee900884627358744  gcc/te
*** 62859,62864 ****
--- 66633,66649 ----
  876f78b651e769f6003d7dd321551b52  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addp_u32.c
  8c12e928423fee9fb27a4bf91765e6df  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addp_u64.c
  514a1f6e57cc9dde35564a31543f06a0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addp_u8.c
+ 0a5a54cf9fbdcf31354a11a63b54594b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_f16.c
+ 1359991ed1e50dcc8bb973a4fcae90af  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_f32.c
+ cbc4124827bc36cb12177dbbe848ddf8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_f64.c
+ b5f18115022f899e8632e58de02f6794  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_s16.c
+ 3d7e01be926767b329aea3ad26933674  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_s32.c
+ 794fa7ae456d462783067b9363289e91  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_s64.c
+ 96d8f4f4934f6ad6a88d2949ff3a2612  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_s8.c
+ 8f4dcf6d667efeb551eee57af238128b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_u16.c
+ 92261200057f1515e871d7be0e5b4fd3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_u32.c
+ b75b3124b994c65eac969df7a232f042  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_u64.c
+ 67c998a5868e6c5f955478b41826d514  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addqv_u8.c
  64ba5fcb8c0c122674d1d84616933061  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwb_s16.c
  5fc3160451b1c119dc9f530f3a940e65  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwb_s32.c
  8fa094d7b672103f5aab506eea0be80f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwb_s64.c
*************** ba7ee78cdb8348039b7574c86d1cf21f  gcc/te
*** 62875,62880 ****
--- 66660,66679 ----
  effb20438dc42075bce3c0de4e5b297d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aese_u8.c
  e3f6117cf6bfb81600aeae3af01548ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesimc_u8.c
  def6e2e434633a418959e3a0166fcfd6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesmc_u8.c
+ 7d2639518c962b2c01a5de490a7c31af  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f16.c
+ 9006ba2fb7a1559e59eb1378e4988aeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f32.c
+ 5bddb3e8f16135f8819496e1c4681757  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f64.c
+ 33aaca997ea06316e65bb3eb4c9f6124  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f16.c
+ 9fd1b018c66996f5ef17153a0e670cb1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f32.c
+ b783dec8850b524ffea7b06ffafe249f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f64.c
+ 7a4f1ca1915e4fd42b51991ee32e0c9a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_s16.c
+ d0f182c3214cdeffc5786138ab6ffd0f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_s32.c
+ 1dd23b42de1359a5a840010361642255  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_s64.c
+ 26853056b7dce71178b211901c62a14d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_s8.c
+ 86e81d700f8a7e67fdc78a4ba7c35819  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_u16.c
+ aff15e6c08851482bb98cad5e4541eb2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_u32.c
+ fe8ad9c62e28367648e881ba45009633  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_u64.c
+ aa3e89b2f65b61a81275b631d372fb51  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/andqv_u8.c
  4344af94c15d04783d09ce8c853d54bb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s16.c
  c482f58d8a4aec7c50bb9ec5dc1250d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s32.c
  76f95faf1aed97eb6c75483222b26944  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s64.c
*************** b2fdb8128997689e38cb1b498aa9f753  gcc/te
*** 62891,62896 ****
--- 66690,66699 ----
  88191b271d2a7ae8eb674daaf16c2b43  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u32.c
  8e0287e3ff998f5f48ce838c02b56ddc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u64.c
  738af1ce61bd86c546aa3b7a44f43944  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u8.c
+ e550f5da4191f9ccf9e66d76c573edd3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bfmlslb_f32.c
+ a1ce8df625b604fdd72ebe7604e696c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bfmlslb_lane_f32.c
+ 950c06d0c05715c0004c0e492933dde2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bfmlslt_f32.c
+ bbdd98ace69bd4c2ddad45192b7ee6b2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bfmlslt_lane_f32.c
  3f0cdc2f22f735579b31ece07b532eff  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u16.c
  18a3340ba6e132e98b16ec8a59a0e2bf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u32.c
  ca4e644b720d222224101b40fa4525a6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u64.c
*************** b68f2087b3e3debfa421bde4a9d3240a  gcc/te
*** 62931,62936 ****
--- 66734,66751 ----
  bed8ede3c0108e7988e494057cb8edde  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cdot_lane_s64.c
  b9e02a2c83a50920fffe95059b7ebc02  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cdot_s32.c
  45dfaf23a941507e5909b820569d6485  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cdot_s64.c
+ 4e5621d9fd06979fb01ce4557fa8a0c1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_bf16.c
+ 16c111922e17526b1dc48da0077d412b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_f16.c
+ 52e1632bb21a087979656fa9e13ad624  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_f32.c
+ 8cd7f33dc1b5f78d20d3f0b046a8b56e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_f64.c
+ 842c8f676e224381c38140bb077a3f2c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_s16.c
+ cca4e4271240eaf1de7ccbf78da63331  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_s32.c
+ 13bdbc0f8379c2fdcea01e17ed348389  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_s64.c
+ 56f1815109ef227879b7f432b0bd7894  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_s8.c
+ 9a788d7ee87410058d6efb0b4487e593  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_u16.c
+ 3f6cccf8111dbefdd1c669ef08bd0f2b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_u32.c
+ bc62569ce00b2ded888256f041b09a3a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_u64.c
+ d8675fab69b82a3e7011caf1e0f17382  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/clamp_u8.c
  04f6f3e01cf6c6c9881f925bde0284b5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_lane_s16.c
  c3ead83f0e0dbc2ae7605c6dc8594fb4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_lane_s32.c
  917dde77769978a3a4d5fbd8ec3ae9ac  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_lane_u16.c
*************** a5a6ef6576bce11b8497809ba3ccd985  gcc/te
*** 62943,62954 ****
--- 66758,66798 ----
  54ece81f2ec7cb204ace80c08a1b31f9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_u32.c
  d2f99dbdf69a524cc2dc6523b5f9f81c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_u64.c
  c518ac2920fe8e1da71c43e965abdda3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cmla_u8.c
+ 5f48d128a03ba1b068eb3e0202939f5d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cntp_c16.c
+ 4bf91c2c4cd7281fadcdcbb6a8af80c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cntp_c32.c
+ 65fe09e3c46599a45ac8995d0da1fbad  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cntp_c64.c
+ 4a9815fdb220f791c3e4cdf921dc0005  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cntp_c8.c
+ 8b4ba765bbd9f9fb49a6ea5d6659475f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvt_mf8.c
  43c1de3aa752708ea904bc999fd9ec63  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtlt_f32.c
  b8dab7fa99579a48ae2f4cf945d83634  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtlt_f64.c
+ 3d0166610e164f0fc0226449764d581d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtlt_mf8.c
+ dd5ad57ef9bf6124f1661592946de6b0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtn_mf8.c
+ 4cacd0e80242196f4ce707176bdbaff4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtnb_mf8.c
  db102a02a1b3d79628c6648a924ef52a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtnt_f16.c
  4409b8e8e9a435833c7f108477d110d6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtnt_f32.c
+ e4e7b6403e48ccf57a49c11134e1c519  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtnt_mf8.c
  2f3ad239a3a26f81f86344ac3d4757f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtx_f32.c
  c592e3a613a98192f4bea62a7aac452f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/cvtxnt_f32.c
+ 7b5b1b7a0df19eed1e58c16046321b33  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_f32.c
+ 71dd618453c28658cdd8fb3349d1dbd1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_f32.c
+ 09e793bbdb9ae49a179fe3a71d0bb9a0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c
+ 009818972d26a3532edebf7c1d0e91e1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_s32.c
+ 058240364e4cd4a49db5b90b50042096  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_u32.c
+ ea9ed9e0468916fb291d8a8a58605880  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c
+ 41ecef5dc5e583d81db2371727c4a1df  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_s32.c
+ b0cde83010a90c60d8b11f453e808c74  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_u32.c
+ 0cc033371e65efea7d9b6e141df9d566  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_bf16.c
+ cbab018fea798d94469c19c5534bab89  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_f16.c
+ 0bf3295e1b39b1df96640c990b5a35d7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_f32.c
+ c7fec17b67319b0fa8cfba56754c1dd1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_f64.c
+ e54a0e53344e51a3ba584f532407485c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_s16.c
+ 40785c4ae1a095ac71b9ebfc2a7c5c1c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_s32.c
+ b806d9ec2d7a84177a714dfb3b0ea8c0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_s64.c
+ b9a6f1818539de66af0de80b307acd3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_s8.c
+ 8bcfdac1babc735e738a27cdffb46511  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_u16.c
+ f9c9b8903ea2ca2ba24141b22c603c6e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_u32.c
+ 6a6708b36464b2a910aae2c702e05859  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_u64.c
+ ba0a042c37a6272299c418ede49f7817  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dup_laneq_u8.c
  6218e01fab5fd727bb2ee2fe502b051b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eor3_s16.c
  f8c97649a0bcfdae2f4222a6f4a35ed6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eor3_s32.c
  48405509c4f11a7166fbb8c3b531be02  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eor3_s64.c
*************** cac5e8f27f8514732151e826701192af  gcc/te
*** 62965,62970 ****
--- 66809,66822 ----
  6bb812e42c3dfb1cfe23cca8d1e552b2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorbt_u32.c
  ba07fc8f66e5449c9c52dfd25f6c5db9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorbt_u64.c
  6025a6d4e78605942b3c9cb993dc58bb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorbt_u8.c
+ 2004b62b83ee69f0c11c065949cb9b39  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_s16.c
+ 6b329efe88f2401cad01dea7716bbba3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_s32.c
+ 0ce08aff7475a431c750fd16c262af57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_s64.c
+ 576c6ccf2e0cd29272ec3cab36a777ac  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_s8.c
+ f69df8de27b98e753ecef929aad4023c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_u16.c
+ 5bc94b2df64c54dae25ad12b10303c1c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_u32.c
+ df231e740f0cad02a4200c1ed94a2489  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_u64.c
+ 6d2cca57a813e5bb7d53697df374fd29  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eorqv_u8.c
  8792a26cced0be98180ea507c0fdc2c3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_s16.c
  bce1a311f716a78a9c726ee4034d4b25  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_s32.c
  082756c4638a44745c4c0714e1cf9f2b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_s64.c
*************** bce1a311f716a78a9c726ee4034d4b25  gcc/te
*** 62973,62978 ****
--- 66825,66842 ----
  a8e2ffbaa744d1150f674c33981af953  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_u32.c
  9642daa8890c50615c9a33d6460d28e1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_u64.c
  4b272fdd8f83a9def654b0b3c63d48b5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/eortb_u8.c
+ 193b0279bd430c529df56e4df6e6c4fb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_bf16.c
+ 52fd7ce0a4e63c06ce99e76cca82eaa3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_f16.c
+ 5add1722f9f9efb58e8725250b4c4320  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_f32.c
+ 4acb6d1365710efffc78077ed849bc3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_f64.c
+ f538abba1e7074224c826c14b4412f45  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_s16.c
+ f4740cd64828e3dbcb9048dc9448e830  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_s32.c
+ 353ceff98462a65e37410ec9a809a490  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_s64.c
+ e5d8b37658250431fa3464a88fcf6f71  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_s8.c
+ 7843393f41a78ac9cbb525fd889bc588  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_u16.c
+ f487a14d33457cd124b7a1e419d7d3c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_u32.c
+ 11add37e77fb4754552c1ddb02ec36b7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_u64.c
+ 87fcae3aed770689b7473fa95b6a7fb6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/extq_u8.c
  325d24d3ec65e3d8caf6404665346d98  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_s16.c
  b7350a9e1a3150892fdc9054a4e7793e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_s32.c
  cf7e8def58d471a6ed985d3a709eb562  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_s64.c
*************** f16e23d85f4b1bf1c739c56f1cb191a2  gcc/te
*** 63003,63022 ****
  9b5a9a297c5b79b77ed2c0b67d1b69cd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u32.c
  8ccd672328a2d11ceaf8164f0c7c336f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u64.c
  cba769b6b5db4a7190ffd535a9a7e63b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u8.c
  513970c59fd27dd2bf07d28b0f24ddfd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c
  6b39035e9294c0921efe3b55edc9760c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c
  ebadc36dc160d8ffc0360e8c8e81dddd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c
  8b235b99fe6f46ca010addddae970c36  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c
  9ac61c1f0593f782c84eae9faae47523  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c
  e637a133c84cb7de8c650a02343e825f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c
  a60ca3e79c196d63516903f8bee10109  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c
  b1a7ce65192798dea38154969f6df5ce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c
  3ebe000d098875b50540e7970ab1336b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c
  1f40af3c78532bf92655443eaef99f80  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c
  f229cfd988349323c293f16886badbc9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c
! 25970be550be91422a91f8b143857463  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c
  8c92f4d0ddd0369c97bda66b429547da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c
! f2e70ada4f1b7184154e4b0768615505  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c
  6ed339cfd74e4c39b350be630a8f2f84  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c
  d04882e2e37a1b88658ffa29379c1eb5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c
  b22ec6b7adb826b320b7b5b23c47ca46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c
--- 66867,66988 ----
  9b5a9a297c5b79b77ed2c0b67d1b69cd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u32.c
  8ccd672328a2d11ceaf8164f0c7c336f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u64.c
  cba769b6b5db4a7190ffd535a9a7e63b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u8.c
+ 062039d0ea9db32cbb64c3b08bc05a63  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_bf16_x2.c
+ 36fe54afec020749961656390ab1abca  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_bf16_x4.c
+ 59f68c1353c5a87871f0607beb3b5f7b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f16_x2.c
+ f774d3e0d7016c324b45d3a211aacc89  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f16_x4.c
+ 49596b81294dbbcb4c3e950d60497dc9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f32_x2.c
+ fdfc0fa9b97e69b69d12e6dc9d11a5b5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f32_x4.c
+ befbed156bc81a6ff1f39fdc3d997a5a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f64_x2.c
+ 50beb3121edcdaaaecf10c8e7f83a57e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_f64_x4.c
+ bcd6f7bbed09acd146e14c4bac69dca5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s16_x2.c
+ ac51d1410079bef69c465c6e866c3850  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s16_x4.c
+ 5010eeffb02eb22eaa8913dbe8654456  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s32_x2.c
+ 6d925ebd1173c687e4bf3085f3aef8c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s32_x4.c
+ 8c9351f10f000c671f795a9c3b61aa9a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s64_x2.c
+ 607a19800cabec487734e9b4b4191cda  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s64_x4.c
+ f9fa3060eb456641babbcb9d7189f5d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s8_x2.c
+ d8b8c225a93eb7ff39cf75d53d0ec77e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_s8_x4.c
+ 4ad08a3b3d5833a9a0355ca32218a546  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u16_x2.c
+ b1159ddfcb853e134bce166049f49e5c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u16_x4.c
+ 7a1517649ddd24a6e6c68fc8c66d8e5a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u32_x2.c
+ bd5258767541f7f656453fac897daef8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u32_x4.c
+ 3940b2494717ae28ffb0fac054eb9f3e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u64_x2.c
+ 2e0eea19a02e3939fbc1e0b410758915  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u64_x4.c
+ 3575beebc4bf603b2bf7238991ecef69  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u8_x2.c
+ 37fe20f635e56f483413a42066be444e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_u8_x4.c
+ 3f01f1d6cc9df025810988780752a556  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_bf16.c
+ 8d9c86ab0547430d89c09d02f5b4a213  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f16.c
+ 481ff6bac37d6a5cf568772ed600893a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f32.c
+ 8d9bc1919123c4ad3805cea7aef21d14  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_f64.c
+ 18b001f35a70e659c0cf52482d4c8e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s16.c
+ 58ef4c9b94a7aabbef737b20e2e33f3c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s32.c
+ 6f940aaf0de239fbbfe44b0815b8b2fc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s64.c
+ af75de775e1f6dc851e676d17d937509  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_s8.c
+ ff0b02ba59512e70028c1af8c7d0c972  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u16.c
+ 67f1668e10fcacf16a7340b6b91c485d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u32.c
+ e690e7f97af013f598d3d202b0b1ac47  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u64.c
+ 43139c32596f07cf92f9b5a835752746  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1q_gather_u8.c
+ 0b178272262cbf5aa040edee94306d2f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1udq_f64.c
+ 4ec267f3437e4ab6183ffce8589cc096  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1udq_s64.c
+ 1dbac8007c65aec234b9b069593a361e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1udq_u64.c
+ 46778da12e2851610026333f80607ffa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1uwq_f32.c
+ 2287a58175a4bf266b9f750e5bf20daf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1uwq_s32.c
+ dec44eaad4b79e9ef6bdcb4c4e798a06  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1uwq_u32.c
+ 2fdb213995dc1dcabc8ed53b22931da7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_bf16.c
+ 03c542873389ef00fbbcc2d44bc6cf34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_f16.c
+ f2ee22d768b5ecf4f6ab7fb0d785d4d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_f32.c
+ d17af9d1261f9794ae9cff271eff5947  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_f64.c
+ dd0e795808cfc2d7a06f192384036ac3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_s16.c
+ 420e2f2b566223962da08aeaa52041be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_s32.c
+ d0d8e3b90f07d6f2f0dcb1037da27bce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_s64.c
+ 4e85f0393131e2d3d06916c957d2bc5e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_s8.c
+ 632199d6420ce29827f3a74bdfc76250  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_u16.c
+ 0c313c15f9901a8934f2f6aa23856f26  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_u32.c
+ b5aeb064bd7dcf796803317935b48548  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_u64.c
+ 983c5222b252d50f75baeb91a5015036  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld2q_u8.c
+ 431e11377f86696857a2f4625b7ee0e1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_bf16.c
+ 96937b15a3cbe71f361e1b59e61cd3a4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_f16.c
+ ebf9d8e2dfd48604ad9da68ce958b653  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_f32.c
+ 213df76cad1c78c156e1d22de3e6f6f0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_f64.c
+ e6f4d8183b3607a118911d2b3948c9b3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_s16.c
+ 0e7e0b52ae3c05d8503e7642feff3b77  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_s32.c
+ eebea44fea208c5db2e236d559e48c8e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_s64.c
+ 5dcf414c464cea28f850a6fafcc527cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_s8.c
+ 639d6d4db7f6d86e424f708b9fab0d2a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_u16.c
+ 354956c034b01c683bf0408ab8480c79  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_u32.c
+ 6507bc9a8745cdb8c641d274e743ba6d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_u64.c
+ f922be03539f60fbd8ad6bfbabcb6250  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld3q_u8.c
+ 76be41ce1057a16c14e7103550952039  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_bf16.c
+ 345770cf29d92e5c854e9f5cc69a1b38  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_f16.c
+ 33f01236b65c35d5cb0fed4a8fd424c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_f32.c
+ d31a13c6117c6dd37b4d0aa0ea6441ff  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_f64.c
+ 184496d97abd765eaa83602bf2e27d07  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_s16.c
+ e4d0b66e6d5f9855e63cb001b75fd9a5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_s32.c
+ 3f65da8f2ffec587c458e28ff2890833  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_s64.c
+ ecc215452f156f93166932283d7bce15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_s8.c
+ 63b9a2b56ef07ae4e5d1fdc3bc30934c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_u16.c
+ c043783a1d7f774e6d6f38158f45a16b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_u32.c
+ 0dd2f4877f7406665c611a336d9aabc9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_u64.c
+ 4f426be2df01f1f0447ed68fb4acf31c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld4q_u8.c
+ 1cc133740dd22304dc18d885e65a618a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_bf16_x2.c
+ 736da3269ad867463d6a292ad665a805  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_bf16_x4.c
+ ab8ff81f16d7d5da108bbb7122d54fdd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f16_x2.c
+ 985d6c498e352dae101706fdd9c102ee  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f16_x4.c
+ 944b64045538a276d30ff0135775649b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f32_x2.c
+ 994d728b6cf7959ccb2799f02d5542d0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f32_x4.c
+ 7358f90d5e5bad775012e018f318598e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f64_x2.c
+ 0f2417441d7de3ab9e6d49b844ba2823  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_f64_x4.c
  513970c59fd27dd2bf07d28b0f24ddfd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c
  6b39035e9294c0921efe3b55edc9760c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c
  ebadc36dc160d8ffc0360e8c8e81dddd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c
  8b235b99fe6f46ca010addddae970c36  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c
  9ac61c1f0593f782c84eae9faae47523  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c
  e637a133c84cb7de8c650a02343e825f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c
+ c3fa1aab3fabebb9edae11a8a273f4e8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s16_x2.c
+ fa12a66145774ff1b41a1358e8d65ee2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s16_x4.c
+ 10233a002811d45ff7620c31aefa238d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s32_x2.c
+ 22316a8185993a12f641396b00d5b707  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s32_x4.c
+ 9f49edceee6c09719f95a09ac2b7a4d1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s64_x2.c
+ 64962b2b4d755314d1e58952f4401792  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s64_x4.c
+ bd44515294049015467d404b599d7314  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s8_x2.c
+ 84f67ba04b033d188da2d3d5287a1bdc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_s8_x4.c
+ 18d7623212220ce0300a9337c640f904  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u16_x2.c
+ 6ee15894b215aa6e52ab3f5eb9a0b7d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u16_x4.c
+ 0c1a85b95a26b7f97c592b8633d2abba  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u32_x2.c
+ f9fa25007caaaba4744288aa126f35c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u32_x4.c
+ 369e61ffaf3abeac15cae01b444e5172  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u64_x2.c
+ efc40917536c97005d13b8207a3ecef7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u64_x4.c
+ 1cc63d813a03c0b5ec1047f456c771b5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u8_x2.c
+ fd93a9f0013fa086aa131f0db1aade0e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_u8_x4.c
  a60ca3e79c196d63516903f8bee10109  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c
  b1a7ce65192798dea38154969f6df5ce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c
  3ebe000d098875b50540e7970ab1336b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c
  1f40af3c78532bf92655443eaef99f80  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c
  f229cfd988349323c293f16886badbc9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c
! de73bf3b0755354fc4d1361f75affd86  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c
  8c92f4d0ddd0369c97bda66b429547da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c
! 920842105727e1eb98f3f5c73fcc42a5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c
  6ed339cfd74e4c39b350be630a8f2f84  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c
  d04882e2e37a1b88658ffa29379c1eb5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c
  b22ec6b7adb826b320b7b5b23c47ca46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c
*************** fbe0657b2f16c71e1084b6c953b45817  gcc/te
*** 63024,63044 ****
  cb42a0b620d3a714ae7cad3eec373cbf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c
  9e75e965810b5e165298142ea9556fd5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c
  2cdb82450495146b964a46f0861ad803  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c
! a800dfc8eecbeb8b61bdf7d089f7470b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c
  2602868d6f7bf3c79995aa1d0abfd1fa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c
! 6850a76efe4fd7e7afc1659076115ad8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c
  a686d38021ec5c3f87eae54413f6a7c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c
  641ccb1b01f9bf98637eaec7c0ea4138  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c
  3b3858da743cc4a472d159cac9335700  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f16.c
  7803182f3fba07a8b946e6232aebddeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f32.c
  ba0e2b35831f7095231c85cba3cfb584  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f64.c
  a45ecc74107527aa86e456e504eddab2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s16.c
  57ddfef7efff5ddc90390b41577bc375  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s8.c
  662bf8b466dde2596496a6fd27ae3c8f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u16.c
  d04da08decd61cc5242b4711fd0737e2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u8.c
  2fca98259d0459051b29033f0f46e47c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f16.c
  73a1134ee9cac492b3bde39128af78d5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f32.c
  51c88d8cb6dde7028e619f866d254f7e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f64.c
  ee0a44eb72ee9397ad74fabd40ecd0d1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f16.c
  361cd67a59b53badc2e911e8e9a9d144  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f32.c
  10019c75211e2ca99b84b8f08414bf60  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f64.c
--- 66990,67031 ----
  cb42a0b620d3a714ae7cad3eec373cbf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c
  9e75e965810b5e165298142ea9556fd5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c
  2cdb82450495146b964a46f0861ad803  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c
! c36735f0c2c27fd53e4d0c425e1cd42e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c
  2602868d6f7bf3c79995aa1d0abfd1fa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c
! be6e8caa61b5b4bde00f012fe83d2fc0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c
  a686d38021ec5c3f87eae54413f6a7c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c
  641ccb1b01f9bf98637eaec7c0ea4138  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c
  3b3858da743cc4a472d159cac9335700  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f16.c
  7803182f3fba07a8b946e6232aebddeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f32.c
  ba0e2b35831f7095231c85cba3cfb584  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f64.c
+ fd45b73cca3d00a864b8c5302646b684  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_bf16.c
+ 3d9a7e1b3d91e6e56d0d38e3686097ba  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_f16.c
+ 76c9cbe4849d1c109a96a6ea5082d2f4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_s16.c
+ 3e7d765f8d537d6b8d1decf1a1ce4f61  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_s8.c
+ adba0f7340bba265f2e8fa2dd7532836  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_u16.c
+ 0df034276a62fc65bd7b6b93ee9065ed  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti2_u8.c
+ ab2ac77ff543bd6ebae7202eab1a43a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_bf16.c
+ c966a27765145e53c50aa95db967ccdc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_bf16_x2.c
+ c0a729356908d3e0dca3993afc607b93  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_f16.c
+ 7f111ec1d38c8754c1b9486659910a40  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_f16_x2.c
+ b24160a4ec8f60dc0f49b16d5961a366  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_s16.c
+ 6f0160f29eb538b995147d50306bf343  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_s16_x2.c
+ 19b59b2c68bdd482758ca29c9d125218  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_s8.c
+ 273b7b824069bdfbc418a14a8fc4dc11  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_u16.c
+ 706aac45c84b27ee55cc546773aee6e7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_u16_x2.c
+ ec87356ad36da308d1d7404b941a86d9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/luti4_u8.c
  a45ecc74107527aa86e456e504eddab2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s16.c
  57ddfef7efff5ddc90390b41577bc375  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s8.c
  662bf8b466dde2596496a6fd27ae3c8f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u16.c
  d04da08decd61cc5242b4711fd0737e2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u8.c
+ 6cc71d143d485de7b82149b7272a1feb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/max_bf16.c
+ 34ad973e76e16ae800ac3f4691211da7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnm_bf16.c
  2fca98259d0459051b29033f0f46e47c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f16.c
  73a1134ee9cac492b3bde39128af78d5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f32.c
  51c88d8cb6dde7028e619f866d254f7e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f64.c
+ c0caef546f2e389fd5cfc2a357eb8fae  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmqv_f16.c
+ 8a9b0e1b5c2b87b4ba3029783f3630cc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmqv_f32.c
+ 959325a5599d8be1c214e2f3f01e3da8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmqv_f64.c
  ee0a44eb72ee9397ad74fabd40ecd0d1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f16.c
  361cd67a59b53badc2e911e8e9a9d144  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f32.c
  10019c75211e2ca99b84b8f08414bf60  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_f64.c
*************** bc01737225408ac352a85a0133364873  gcc/te
*** 63050,63058 ****
--- 67037,67061 ----
  ec4a533b977d7510f49c6b5c356084aa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_u32.c
  ca16cba362a6a49e39cb41b801fabb57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_u64.c
  2f87333e9ea5fd7185b105388e055657  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxp_u8.c
+ cf6b8dcae0889f6171fd0a73f3ed7f93  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_f16.c
+ c1b17f1588c3c5fae2cf0c1df5aa4dbd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_f32.c
+ 76ef9d7350f6b93ac94fbbc902bcc2a3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_f64.c
+ a72a02ce89eee0bca31a465fc6260188  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_s16.c
+ a9cf19f69a6ecb97ee610bebf5febf55  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_s32.c
+ a7eb93c2d97edef0a947acfbc853782c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_s64.c
+ 1024d0f61f8ac4a2f5c7ba568ad0015d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_s8.c
+ 59d66c53ca009af681d784d719f400d8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_u16.c
+ 7e6a72a1151fbb40e02cdc9a44c14ea6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_u32.c
+ 6d79c6379022da300da1f0adc6b3d06e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_u64.c
+ d629553fbd823cd18c4595158375501c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxqv_u8.c
+ 93e9cee1310646790e213cba33b46832  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/min_bf16.c
+ 802baa272cb4dc2166cf506e5b159347  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnm_bf16.c
  93c180eb6525069d6da8bb4cba870fd9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmp_f16.c
  cafa261b3e215f082f2401122d47e259  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmp_f32.c
  ac52ceaa01c0e6217329135135fe8c01  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmp_f64.c
+ 69e0f8685fadc89c3d540d0ca1f2553b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmqv_f16.c
+ 1c7a738ca4bf83254c853c72e1374df5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmqv_f32.c
+ a18ff86834e004b7d4c98d5874bab4dc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minnmqv_f64.c
  65deb8cf0cc023694dc2dad84b0d6561  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_f16.c
  20d624a756e48918bf8c7369d15c090d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_f32.c
  b450dfefb50ea26d68e18d7d42407eb6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_f64.c
*************** c824edfc063c1862a3970055d1dfb725  gcc/te
*** 63064,63069 ****
--- 67067,67085 ----
  9dd4ebaa3615f4f25b14211da35ecabe  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_u32.c
  f02d14c5a3903b393adce96cb435f6d0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_u64.c
  7730f406b6c9b622f02d4f7e1ac2c799  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minp_u8.c
+ 431868e2c342576ec718ef628956d77a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_f16.c
+ 5d66650beed9cabe2ab919ec36afd9c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_f32.c
+ 4d6957aea01adf50c12408e7a0c220f1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_f64.c
+ 7a843edb5f19a06621fa7d18342f5308  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_s16.c
+ 0ce6ca66632cb13f7755d6e29eba8a0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_s32.c
+ bfaf15a7a30a3e54427930a564065c94  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_s64.c
+ d33d127963fb9c50e06ebe45cde08bf4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_s8.c
+ 610a8be8da8093c5aceb65c591d6aeee  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_u16.c
+ 66f89a69d96e0ce5007137ef8e764066  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_u32.c
+ 0ed944683cafb740b81b60da3c338b48  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_u64.c
+ ea0d42de099e20a825cb444635955152  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/minqv_u8.c
+ f9fb9691a4b8247981ea18bcd416e5f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_bf16.c
+ f648d3978cb9d73f2b71a6d8f49a5728  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_lane_bf16.c
  51790e6360c3a0e59240c001754d9e14  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_lane_s16.c
  f974ed3aefa21dda6604284003582989  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_lane_s32.c
  1b87dbc90670f69392c28a85d03d4ca0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_lane_s64.c
*************** ff4901855ae7189796161c06cd783d3c  gcc/te
*** 63072,63099 ****
--- 67088,67129 ----
  d9539c1bfd6fb6dbb03a1eeacea65487  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mla_lane_u64.c
  6964a6243a1c008c627c0125e9535344  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_f32.c
  bbdb56c6dd7ae254410356f61bb1fea3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_f32.c
+ e99b89fddb2509a85c6cb9a2e4851998  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_mf8.c
  0454292d276ee38e69c39a1f7097a280  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_s32.c
  1cd9bb5e5e3f32c40a962b5164769521  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_s64.c
  cb648e2e59fc269d69111ed41841fb45  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_u32.c
  d2ff941279f9e06c84a79bf8f578b9dd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_lane_u64.c
+ 422bfbd24b7c4375d1806ae075f82c88  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_mf8.c
  5a2e2388f54cedb2e7d0a2d5251369d2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_s16.c
  a4eb0c3e895efd8d9064a9a95128e491  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_s32.c
  47e20d3bb22aab9a62304a8bf311ae04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_s64.c
  cf0bf1983e562afbebb900d889596b47  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_u16.c
  a5ec22a3bbf639fd030e25abd7e5da93  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_u32.c
  2481646b5b4c45d3363513a5cb23f80f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalb_u64.c
+ 1c6035aec7fc4fa438d36c9451c9d0d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlallbb_lane_mf8.c
+ c9294c9a78c9db0ca372391ed243fc04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlallbb_mf8.c
+ b773b33b1a464142b8cc27cfb05f7fec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlallbt_lane_mf8.c
+ 6575078a41130eef36639042c3483c54  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlallbt_mf8.c
+ 59717906269896d9ac2923eed89363d1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalltb_lane_mf8.c
+ 9e98653db767eddefb5f5945d15ec963  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalltb_mf8.c
+ b362c509fb39d8801842481bfe9ee67c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalltt_lane_mf8.c
+ 306e1066e8727bf3e082b643ca881d5b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalltt_mf8.c
  57ba53a4e00ad09544d44d6e95f10150  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_f32.c
  5278c8cd7c877a88164e0cf08ce34158  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_f32.c
+ a6307af188511292be45f2d7f19c1cf4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_mf8.c
  bfffef2ae3c6a1b64c8b83cb1bd232f3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_s32.c
  c596ddf1d703a5a267e7b94d32e82610  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_s64.c
  f1210126c1a211d7a0c819ab5f537b8b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_u32.c
  9f08551580fcfd23e232ef6e222ccbc7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_lane_u64.c
+ b37276f528ec2a5b52020a5f9b8ff97f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_mf8.c
  4e6af7f2ae163a816af06bb2f3939cbb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_s16.c
  d27e340e28b665db2ff31af78aaf56f9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_s32.c
  182a96410811fa475f844bbf5afb938c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_s64.c
  a7df825718cb9fc3e0b52e417003f704  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_u16.c
  f28e434ba97ef67ab1bb48c99a31557a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_u32.c
  8c6b6c1d6b7646a16a5c4a8963549149  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mlalt_u64.c
+ 00ab8fe1d3da10a7042ce9f9ab6ebdcc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mls_bf16.c
+ b99c3ec61b008f4747ecac4287352df8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mls_lane_bf16.c
  cdbbc9b8b2429475cdb52a89736cc76b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mls_lane_s16.c
  f4fc143a276f18b2281e62888f2354a4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mls_lane_s32.c
  3b2bd57cbef3c4fff8ee009c43d03915  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mls_lane_s64.c
*************** e31a5dece7854ab7c51df938eb45ae6c  gcc/te
*** 63136,63141 ****
--- 67166,67173 ----
  dbe143e2267362a74b44827f1b0a06a9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/movlt_u16.c
  b3b6b2fb593b87b3ee9cd1399ac6fdf7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/movlt_u32.c
  6fd6342853589145988911e2510e4c0b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/movlt_u64.c
+ e8c11252fcf2e03cc33b33b546cb8923  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mul_bf16.c
+ 4e296264faa6a80f1c08123bf3fd8106  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mul_lane_bf16.c
  81d8b80545503ec933f9ac0a4b6bee07  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mul_lane_s16.c
  3a1b71adce3764c420000de7a1234acc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mul_lane_s32.c
  a96aa1ae16c36f4e8cb25773a2563ea3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/mul_lane_s64.c
*************** cf6676cbf5ef438e603b7840f953d807  gcc/te
*** 63174,63179 ****
--- 67206,67235 ----
  1f10a15a7cdea6e526938bc921ba977d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_s8.c
  36845e3bf5900d5a90be7656ce77f583  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u16.c
  f2135caf646e542ba160cb5099588c04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u8.c
+ c27031f961f89df14f9a74994273c844  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_s16.c
+ 3abd271e483bf710d517b84c00a676b6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_s32.c
+ 14426ffe067ab11d3d98027a926a62b8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_s64.c
+ 97af76e6d4d543339a587afc032e7e25  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_s8.c
+ 516745a6c901cc6d8aa19cce02c47119  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_u16.c
+ f91634a0b0bba69a98fd415ec75874b6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_u32.c
+ 12d2db91ece3a0b5c5a4f13b4d1e5f76  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_u64.c
+ ed585da77af8540b6b0eb7e80e56d460  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/orqv_u8.c
+ 0e2ef97359720315b7e38d35c13820a3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c16.c
+ 94772dc8c7d62b68dd9dc539f6e60c3c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c16_x2.c
+ 73d2c544693e1e201a2a8dc669b5908d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c32.c
+ 6e8e6da804b0d5bf98c3b5085adf0511  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c32_x2.c
+ 8b7bfbf30ec34ecda12b51fc0223700c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c64.c
+ 3d789e82166b46c602f7c51b2404aea3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c64_x2.c
+ 56993f21360457af39aff36f682db077  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c8.c
+ c96b5fe364ee67dc1e8286bf7670d799  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pext_lane_c8_x2.c
+ 451e2555993904682469f63fea9fb09b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_s16.c
+ 055c2cdc3db12e688ae01deab34f264c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_s32.c
+ 017656d0e2979f3b650a57460afa94cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_s64.c
+ c5ebb3aab45c9f8e0987b78e02242f92  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_s8.c
+ 7ec81273c0c2b4c735a90daf9edc850c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_u16.c
+ ec3562eb7cccfad955d5da6dc138f640  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_u32.c
+ 959cedc6a5f87439391a9e0856168b85  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_u64.c
+ 3671ee94d47dc0af865177a5280bf84d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmov_u8.c
  b8f79024134838fe7655fe8257c2c4aa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmul_u8.c
  5ed58a7f1f1f5ee101786fe59992a411  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u32.c
  13ab710890a30b012d70f00ddd606030  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u64.c
*************** b7364c9fdc7e16ace385b61fab973037  gcc/te
*** 63185,63190 ****
--- 67241,67258 ----
  225cab410a9638ca54d96beb443e6386  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u8.c
  1860346512d7df08f56dabb0458109a8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u16.c
  a4a3d7a7cb98f0d72b95131f429b2de6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u64.c
+ a54e713558893629453baa68e4e7da77  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_b16.c
+ b01af107837aa9feb904dcbc1806c66b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_b32.c
+ d0dc3bb6742ad7746603b32af335a957  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_b64.c
+ c681450fc0e6ec6018bbddf7e692f5a4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_b8.c
+ 1e1879f361aef161d9e1c4a848680e89  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_c16.c
+ 0515f17396ed6151249a6496d6f4c02a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_c32.c
+ 2ea99d5861b5aa747143295426eaae4a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_c64.c
+ 575971ac76c92f9dd7dbf169baa19c34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/psel_lane_c8.c
+ c2ce2cc4cd0a2a1cb835ccac21e96305  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ptrue_c16.c
+ 73dd9d87c98649020399528868573f63  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ptrue_c32.c
+ 7d40b89febbf1034cfdf92a232827f81  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ptrue_c64.c
+ 29ddde8b7c0b1ef6d1bbce17746b175a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ptrue_c8.c
  ce9d85d1f663a89c99059331f390a83b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s16.c
  14c9fc2b0a767b5ac248c20f85d1e802  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s32.c
  fbc69905263b1e74fa97aabff6224321  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s64.c
*************** b854b80734ece8b1eafef967f5ad3339  gcc/te
*** 63201,63206 ****
--- 67269,67277 ----
  c8f58e0844a39c97136de11907be7821  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s32.c
  c0f9b2ea663fdef2e7de188e8766b6c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s64.c
  ee5e129bef264dd86693921cb2d5b53f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s8.c
+ 3f19e19b62e735a19a61426c63d2b72d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcvtn_s16_s32_x2.c
+ 6fde9cda1f04a126b1c3a37a99bc6b58  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcvtn_u16_s32_x2.c
+ 153ad7ee8533ea118b80ede83b5342bb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcvtn_u16_u32_x2.c
  6423fb9e3cc9648b50854bdf34cfa5cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s32.c
  48e2b482df6a451bc3bc3b686673aebd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s64.c
  0de461077a7c79db8bafd5e97a80275a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s16.c
*************** fc1cb361d0e49a58ef77106d480a9f16  gcc/te
*** 63283,63288 ****
--- 67354,67361 ----
  b3ea93d654e11f59bdcdaf314908359f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshl_u32.c
  877a9173b79a7851bf83feb63aec292c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshl_u64.c
  6dbbfcf3d7746d78a797374fe13ba48b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshl_u8.c
+ c2d208ac8137eb7274483c6ba443d024  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrn_s16_x2.c
+ 564a7a1a71104e510a2934faa6ae5e52  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrn_u16_x2.c
  2da91c52e08208cff9d6abbc1e469015  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnb_s16.c
  35f0b47f9f8ec20e821be80e927eb0f9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnb_s32.c
  b09660e4370ee0f40ab6ca335096f47b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnb_s64.c
*************** f9e5800cde5d326f94f84d2c2298eb15  gcc/te
*** 63295,63300 ****
--- 67368,67374 ----
  811a029e1942f73de35dea93ba4da004  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnt_u16.c
  3c3a544c73d083636b994e027c0f012a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnt_u32.c
  3643a5d493c5b6603059e4bc6be36f52  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrnt_u64.c
+ 1e2a2ce64fd0d1806e47fdf52491eddb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrun_u16_x2.c
  44a198544a49570e8125567e128ca38d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrunb_s16.c
  ddd2dce61dafc7a47a76296b5a94c993  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrunb_s32.c
  1d8f2375a504234d46dba73f54066f7f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qrshrunb_s64.c
*************** b9b880247845019946d9397ae50a7dcf  gcc/te
*** 63380,63385 ****
--- 67454,67471 ----
  96438bdfb17fb69927c45a82c26bcbd0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_s64.c
  4b908d3cdc65630d5d194574d04a9d04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_u64.c
  1e60fc894c3aa822383f66ed0fae4f0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
+ 99dad9c3481eef0de2a4cd060e3a3a1f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c
+ 3259cdf48120dc09b7fc2c8efb94097b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c
+ 50b69c6d4926cbee4a08a9ec84ff3a81  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c
+ 23eaee7e58f44f6e200aa8b355a263c0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c
+ c32db97afd2d9cc1a09a84988f8f16be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c
+ c9959408786b02a63956b41e095add33  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c
+ 2a09d57eb999e40f06bd820be5e4027f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c
+ 01187424d3c6ca4bd77f86ac14381c51  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c
+ b58ca786c874c40a9b5a8dfb94364f3b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c
+ b5e97f46a70b15dfd94e483317742bde  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c
+ 58ea6ac95932884e317f9f9c4937c816  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c
+ e00b3221fce98366b7dda70015d71353  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c
  9596a6d388086fba832d8a2f53ea57c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s16.c
  10d33337c7eb8998a71c51e7f2bb3e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
  dbc6f1ccc6394bbd64f2989e6f385bce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s64.c
*************** f6da1644b8587c81196d209acab06d29  gcc/te
*** 63388,63401 ****
  c5eb426b2341c09d3c0bdcb7c62db190  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u32.c
  b8dc3ebd57fa140b2d71b58825e6aa93  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u64.c
  f3aca869a7985ebef3fe96870db58a2f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u8.c
! a065f2098817f050e2d2dc7fa81af33e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s16.c
! e96e6beabe91667ed10e6f1a437bd4c8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s32.c
! a761b77255150caf778e9b53587d0d74  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s64.c
! 3905479246eeb31fe0b8288d07007ef1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s8.c
! 68adc0d053959c9e2026f003dc4afe3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u16.c
! 3b3325cbf41e503abd37f9e25b74eadf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u32.c
! 2acc47173de98dda061221a3b14e3bae  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u64.c
! ee02fcb3f5ba4ef8dd381ee4ffbca78f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u8.c
  bb6a60c28475b17d85790daa516f1731  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s16.c
  adbf64321aa1a9a26d1ecd36ed6621fc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s32.c
  ffe1c825fdad68fb9773593f52081093  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s64.c
--- 67474,67487 ----
  c5eb426b2341c09d3c0bdcb7c62db190  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u32.c
  b8dc3ebd57fa140b2d71b58825e6aa93  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u64.c
  f3aca869a7985ebef3fe96870db58a2f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_u8.c
! fd39e87dc57493a6d7d4354e069aa5b1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s16.c
! e045e4314aa84ec2024d0d616f7b30fd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s32.c
! 88b5c2cdb4f809b295ed0ccb10ff9662  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s64.c
! 91f983e137dff9c3aab1abc71affc5e5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_s8.c
! 515aba79f04449b477a63801770ec31b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u16.c
! 65df7857796c4a532eff653b70c7b544  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u32.c
! aafba524c7395732619adee768eb7979  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u64.c
! 3c01d8ee1aa2832f0aa979554c028ed5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshl_u8.c
  bb6a60c28475b17d85790daa516f1731  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s16.c
  adbf64321aa1a9a26d1ecd36ed6621fc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s32.c
  ffe1c825fdad68fb9773593f52081093  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_s64.c
*************** c5b11471e175d181dd735ae246dc35a1  gcc/te
*** 63480,63491 ****
  1a95d35ed842e41b4bdd6a13b54ad441  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u64.c
  2fd1e8f8a9be6b5857a6d795a922011f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u8.c
  573c3064af5c21b38c08fdf5bd8992b3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s16.c
! 98b927cf0e1eacd371af66f830b3ade0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s32.c
! ecef176b7c1d8abb2bbeb9991e708be4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s64.c
  47834e84a5cc682db49664a3ee70fdcb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s8.c
  0815ab6a63b081c089702f764712b3a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u16.c
! c8509e5a42a29f334cbd93331a270e34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u32.c
! a98f14ae85c773355054a392dbb0a937  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u64.c
  ec9ba03842defb4e71106a266a77f4d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u8.c
  b1d381c70678d29beb02c5dff0fa301c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s16.c
  05faebb4b9887ef1b4db3bc2e77f966e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s32.c
--- 67566,67577 ----
  1a95d35ed842e41b4bdd6a13b54ad441  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u64.c
  2fd1e8f8a9be6b5857a6d795a922011f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u8.c
  573c3064af5c21b38c08fdf5bd8992b3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s16.c
! 06fb6829621dc2b151704266712402bd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s32.c
! 17df8199f3a246541ac88c4021d98350  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s64.c
  47834e84a5cc682db49664a3ee70fdcb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_s8.c
  0815ab6a63b081c089702f764712b3a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u16.c
! 8d2903c2aa2804cfabad22984bd7fa4f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u32.c
! cfdd82bf5474bde6f1f85b66a7b18d4a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u64.c
  ec9ba03842defb4e71106a266a77f4d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u8.c
  b1d381c70678d29beb02c5dff0fa301c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s16.c
  05faebb4b9887ef1b4db3bc2e77f966e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s32.c
*************** b1d381c70678d29beb02c5dff0fa301c  gcc/te
*** 63495,63516 ****
  f6ff6bd0e7b905d97b24a489c76e411a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u32.c
  1f0a3aa412ac0af0de15d393dbba84c6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u64.c
  aca8dee6b1695eb86090868cd9b620d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u8.c
  c945c741506cfe18e6192b7f0814a439  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c
  7e1ffd28d44eac004f137d2e84c44661  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c
  88c3b1c287ec55b17f5e20b76461ab68  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c
  4a861e267f9730814813ec1225e6e85d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c
  01554c94701f7ef3bb23c9ac65f92831  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c
  572da2dccd6c69b23ac3fb897e09e757  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c
  b9454b8ad108258d36dc70a72ca457e7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c
  20fc4567375dd5f16d81cfbe3a5c9434  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c
  719384270753cdf68b292dd867ac52b4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c
  4cc6920d1677729a340d273d4631c77c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c
  c312d89bbd2088e951ba0ae1661da39d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c
! 8e1888f16bf4b21a46623f9010a05e46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c
  b76dbbbbc38da3a9c7706b002743bca3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c
! f4fb5b3acc86a3ad9cee566820f80575  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c
  9cab9643ce3e5452aa5f508750b0410a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c
  0dc63dd27af7187f1fe9b470ce753d8d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c
  918873d71fd9273dfd39b597eff8bf96  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s16.c
  3f6d9166b25591eb6a69da47844fefe7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s32.c
  3b12e0026faecde4c70c7c8cad5cb421  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s64.c
--- 67581,67705 ----
  f6ff6bd0e7b905d97b24a489c76e411a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u32.c
  1f0a3aa412ac0af0de15d393dbba84c6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u64.c
  aca8dee6b1695eb86090868cd9b620d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u8.c
+ 3bc36a66c516dad9ef5522647217e66f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_bf16_x2.c
+ d19c782992e4e027a59865d3aba9f23e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_bf16_x4.c
+ 4477d2aa4d9fb66a740c759d334eab50  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f16_x2.c
+ 0703fb4d6b2affea3c2d6f0850bad353  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f16_x4.c
+ 799cc1e36cd8412e05ea1c56d49aa098  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f32_x2.c
+ 16907d6e511bd2c872cd47960b220523  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f32_x4.c
+ ed5d5d85c78ac0e39fbe602022416bae  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f64_x2.c
+ acc300df611f4f60be6d91f52ae6d2c8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_f64_x4.c
+ 297f12d3f7c7aa4e642b7756682523b5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s16_x2.c
+ ab8fefb5c66a2b9963b6481c1545c2bc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s16_x4.c
+ 60bdd3d0b2f3abb63a42dced6f71348a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s32_x2.c
+ fef95e333400ea7612d49d4ea3c77927  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s32_x4.c
+ 913da95b36fb467b8834980b0c568a31  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s64_x2.c
+ b52bae8e5fd4e2b9bc4bb924f1d59838  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s64_x4.c
+ abab79c65ede4e822632fe0717aeccc6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s8_x2.c
+ c5842d3bf4731a91ced9ac6f99b06566  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_s8_x4.c
+ cf83d9f72df3635e845f7d30b316e511  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u16_x2.c
+ cb168304b0990d35a9a251b66d948b72  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u16_x4.c
+ e89392b2832bea66b679795c6de33d5a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u32_x2.c
+ 285ea9c21eb5c75d4c139d1b3b2ca5f5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u32_x4.c
+ 23dba38811df82a46d20e9167d9ef816  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u64_x2.c
+ f350197a21e7c06213d3915643cb332a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u64_x4.c
+ 10a4c9c373d263449ba266b6891405da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u8_x2.c
+ 33fca26d623171e911239a283b275d70  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1_u8_x4.c
+ b7b52aea9a4a5a66b7163df2f99a830e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1dq_f64.c
+ d9ae76f30f41556916f66f3273d956a1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1dq_s64.c
+ 718e6d011edc5ae8fd2b348f96c0abec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1dq_u64.c
+ 1273f12960560667fe75edcfdcfbd2e6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_bf16.c
+ e2413a64c4af0a4df43164dffe14562d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f16.c
+ 9e730da52475c38d3af7cf487b635e15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f32.c
+ 94d91737cdf7acac4cb0ef512b753667  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_f64.c
+ 374c059fe3b85a4bc8cda857a4507fc0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s16.c
+ 70180fc9c7146fdeb493d5283d116b3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s32.c
+ 243966f9eabed10788da297ae6b0972a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s64.c
+ ee5bddc4a344163d1823221de7cc9ef0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_s8.c
+ f2251996414dc5cc3f88eefd3c1395e0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u16.c
+ 008f9de8e66448ae6f63c3a4ec193e97  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u32.c
+ 4656b7962a17274ec5883c6b2d47e67d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u64.c
+ a1df9aa2576da03ff205638c59f54625  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1q_scatter_u8.c
+ ebc5659726a53db291fc02ce3d847bda  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1wq_f32.c
+ b065be546ee7f31dd9b2c370f7ed1e57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1wq_s32.c
+ adab1b5220b5d8c70d174b96c3782e94  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st1wq_u32.c
+ e834bd61faea4f4214a49089b47c0654  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_bf16.c
+ 8092211d5b4e568c304e093f09ba284e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_f16.c
+ 3567505e3f57cdedf1bb11826b871dcd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_f32.c
+ 7d11962f700641cbcf54445c0312d83d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_f64.c
+ 2018e14438d481a164e77dc9c47f9193  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_s16.c
+ b3dde51fcd9ea3867bb13ced53128569  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_s32.c
+ 8e201162b84c87374614a28d3f43e099  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_s64.c
+ ef9fec36d7ec11c30fefc70ccfa548b0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_s8.c
+ 36791d13d3878d709598e627c14cef56  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_u16.c
+ 94eb46495915d9fb1871b79146e72d43  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_u32.c
+ 872cc10073e0838c8d109df314f98c2f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_u64.c
+ 80564d0401b09e61b69f43ff15de8c4e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st2q_u8.c
+ 8be585cc363eb1324e2d6106d35b79f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_bf16.c
+ 5622d8e036250ac419dff39aa793654d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_f16.c
+ 2d02bd9e2cbb278bbddac6d3e1606f91  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_f32.c
+ b0c005efb7d68bd674b605f2d6f3f7ea  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_f64.c
+ f183e641193293bc292e9b921c17294d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_s16.c
+ e4e2017af1df87acdb4b084aee516b60  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_s32.c
+ 250124e2c74065966ac105c173a8b762  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_s64.c
+ df8a2ee2a36d6360aff87af20e7522c1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_s8.c
+ 2d4f04d128abeb623c47e2970b456d34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_u16.c
+ 937b43c325f4c75248e132df69d2694c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_u32.c
+ 821f3ec2f174f7b2d369479fc9078ce0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_u64.c
+ e3f2284c59af324aeca9198866c719f1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st3q_u8.c
+ 21330836308449f5856ffd61d48afecf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_bf16.c
+ e24dccfffdc45bdd6772a1fdee2228a5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_f16.c
+ 13ec96ee06697e0a1c40e532d27ba35e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_f32.c
+ 8e821a7464535c1a8e6fe3f3af235411  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_f64.c
+ bfb2470939a39978fa3fc1d8821f92be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_s16.c
+ 3838ec49b164574f0acd5fcaef6519e7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_s32.c
+ d3ac7c3c7127a34461bf680c50e53480  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_s64.c
+ 3a1618461889bd831b3943749580195a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_s8.c
+ 50221dbf4eea098ed430de9831fd471a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_u16.c
+ 6743a39f02db34b94f47f7922d0ee19b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_u32.c
+ cdb4d87e7fd1e69c0216d3778a9953b9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_u64.c
+ e5c4f4a029da7289209ffc05228c4518  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/st4q_u8.c
+ 13c559befa48bc3005d982d329e71332  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_bf16_x2.c
+ f437627df9630fccc211962fb14b80f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_bf16_x4.c
+ dd6cd771981bcfcc381af931c280d675  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f16_x2.c
+ b3cf8ff1c386443edced97395b4a272a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f16_x4.c
+ f118c99cdc23826f1992b4999085a9e4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f32_x2.c
+ f47d3edecc5c1877ace6043e9b37ad1c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f32_x4.c
+ a3e04a85a0f07c85156b66dfc58271c8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f64_x2.c
+ 7ef7ce80cf972bbcf8b3e80369dbb745  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_f64_x4.c
+ d7fff5388a7ea15d67d705047f592a51  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s16_x2.c
+ acdfe3a768956a640e7fcbbd9f1f5193  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s16_x4.c
+ 7a56a089042b1925d73c0868f682dc0b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s32_x2.c
+ 8f16ea31e7b9b939d5cf3258a4ac90be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s32_x4.c
+ 68082b3c15a7500d28d59270f3927d67  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s64_x2.c
+ 283abc270be9f9f5894fa5443645f983  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s64_x4.c
+ 3fcd7df36d6fb2a2a7f332a8ebd8d14e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s8_x2.c
+ 253f95eca6edf1388e38933ace016b1b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_s8_x4.c
  c945c741506cfe18e6192b7f0814a439  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c
  7e1ffd28d44eac004f137d2e84c44661  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c
  88c3b1c287ec55b17f5e20b76461ab68  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c
  4a861e267f9730814813ec1225e6e85d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c
  01554c94701f7ef3bb23c9ac65f92831  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c
  572da2dccd6c69b23ac3fb897e09e757  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c
+ b838fdace78adfc0f68faf785cff56cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u16_x2.c
+ 3c6d0ea2d84a3c9d1335f132657494ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u16_x4.c
+ 03e2c626953c0e05f89ba43f05954626  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u32_x2.c
+ 3ec3073a5889edf9df3c8b227e91e92b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u32_x4.c
+ 09d02c5120285f7784ba62afafd17a77  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u64_x2.c
+ 9eff6ad263e978d20daa41090aff9c1f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u64_x4.c
+ 3c22bbe2a4b9c313ca21faae8cbcd25a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u8_x2.c
+ f9c79c3595f37a059c82895d3756d621  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_u8_x4.c
  b9454b8ad108258d36dc70a72ca457e7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c
  20fc4567375dd5f16d81cfbe3a5c9434  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c
  719384270753cdf68b292dd867ac52b4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c
  4cc6920d1677729a340d273d4631c77c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c
  c312d89bbd2088e951ba0ae1661da39d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c
! 16f61ba1944b8585345afa4615b1e0a2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c
  b76dbbbbc38da3a9c7706b002743bca3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c
! 16201a8936adf8d4a18ec02191651985  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c
  9cab9643ce3e5452aa5f508750b0410a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c
  0dc63dd27af7187f1fe9b470ce753d8d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c
+ 36dbf9a9c2c36d2e98447f88064b4c54  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sub_bf16.c
  918873d71fd9273dfd39b597eff8bf96  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s16.c
  3f6d9166b25591eb6a69da47844fefe7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s32.c
  3b12e0026faecde4c70c7c8cad5cb421  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s64.c
*************** d5c07c8e0c98d3481db042a5c18b8742  gcc/te
*** 63557,63562 ****
--- 67746,67752 ----
  235a9f5d0100236c5ff8c05daae495a4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_f16.c
  ed7db022e61ca1d4921946ef4e0fd78d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_f32.c
  6e20d16624f44e07998be918f40e70a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_f64.c
+ dd8809bffd36f5ed51540d85c660cd7f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_mf8.c
  303dfdd306f2b31c2adbfbae35a701cb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_s16.c
  70f7a90e8f362023be9f6793ebffe7a9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_s32.c
  ac9f48afecfb964ee0acd82d1e2303ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_s64.c
*************** e663ba83a836c0eb55070ce8f58e2a0b  gcc/te
*** 63565,63574 ****
--- 67755,67777 ----
  2f30e054d75356b232607d70e4fa5196  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_u32.c
  21e3d068cef83061ab1686d1a503bed6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_u64.c
  2288905e7c3adf652fd7e11fe4ac4fc5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbl2_u8.c
+ 86654202e763db01df60a16737a1ea3d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_bf16.c
+ 04ce6b7a1900b840fb754268da0f8beb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_f16.c
+ a44af8ad4116298c2572e14e0e01d109  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_f32.c
+ 6109070c5dc067bc33920de28cc7c272  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_f64.c
+ 84e19ab88ef8ce2c7984f5acd26b673a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_s16.c
+ f89428c05049910e8f1c7655bd308068  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_s32.c
+ 89910c0c3af40150e93e56ec6428c42a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_s64.c
+ 964fd35a0d0c4cac4d8c1a34c4e6bd2a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_s8.c
+ 8612f79ef299c58bc1421e0b3c0c985b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_u16.c
+ 2277d73a76ad8c810b59eeb387a5d0ab  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_u32.c
+ 29f3812e9ff35efa50d580f897ef0440  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_u64.c
+ 15b436df702df73df611805df55dbca9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tblq_u8.c
  f8b462e34372dc0d13c5db307df5c5cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_bf16.c
  56cdc0d7b252eb4fc3b2ba89222d22bc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_f16.c
  6cb3519ad0c5a63f974ea4652cd72f6c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_f32.c
  31d37662fde806e10d4bdafa2300a819  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_f64.c
+ 43b605a529e754949b5d8c64beab61ec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_mf8.c
  b7f8a68994526b58dd0d0beab39d8dbc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_s16.c
  2ddc50d379f6cb4433498e5de38fa88b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_s32.c
  58fde38984c58fe2368961e642c19437  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_s64.c
*************** fdf92466d092e69fd6ceb5f24955cfa4  gcc/te
*** 63577,63599 ****
--- 67780,67871 ----
  54c01233345c558f9ec7cd90868cde58  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_u32.c
  c77ba088f4f6e2bb3c8f0cf7bc6016e4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_u64.c
  f2b12f646a6dd914f6eff1c7b55d181a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbx_u8.c
+ 96421dfdf6e4ff56d9d3558a950a82b7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_bf16.c
+ 00d058410c4050d30bdb76924eaaf801  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_f16.c
+ 74dddbfe8ae9169bf0f73499e7596dd8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_f32.c
+ 68d8853f1a2cb0eed8642d5fb03ee9ce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_f64.c
+ 2df244f4e25c6626211dca00f9fb50b8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_s16.c
+ 7ae56c45e360cba61eec4a32282bf315  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_s32.c
+ 3d2215d880d50bf4d6622e7934a8c184  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_s64.c
+ a310d0b633606a09c21dc16137111e95  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_s8.c
+ a0721c33eb061ec16786081ec6a44264  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_u16.c
+ 1704bf339550ed27d8622975e4810cdf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_u32.c
+ 277af9b3abc087082c20524f367b729a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_u64.c
+ e1b5ae1976a408c0d66aca5ba637eead  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/tbxq_u8.c
  afd030de96f96b0216ca53e75f64da9b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/test_sve_acle.h
  5234284b3ddc2955efc2790fb0743357  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uqadd_s16.c
  03aa6e825cf52e4a21d60868001e215b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uqadd_s32.c
  ab3fa21c320cdfc080416b1c37288685  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uqadd_s64.c
  9871cb697a327edcf4264bdccfd26b6c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uqadd_s8.c
+ 3837c85d1d34eaaf5d69f0059fa1e5a8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_bf16.c
+ 3ef33cec6e1d63961dde575ce02b245c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_f16.c
+ 417906681002c486e1b785e0e2041bd8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_f32.c
+ d9270947716bb73e8b925eb008055deb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_f64.c
+ aa9f568a3045d38e27ef3052e3dd728e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_s16.c
+ afb36a1e0325eced1b302ff20edf3e28  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_s32.c
+ 4d74ac21501f98fee8be219afe63deb6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_s64.c
+ 450c1e163fbf3798dd69c369093dd309  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_s8.c
+ c9b570a4ab09fd6c1fa78bf3c5a97a9a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_u16.c
+ afbe831fd6016e222728467dd9a07954  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_u32.c
+ 9f3b435b9a947b97d7b7c20a171a2dbd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_u64.c
+ df5d4d92095b10df8cb8a39bba3257d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq1_u8.c
+ d9617db2a43720f36801356442a4a32c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_bf16.c
+ a04b6d28dcab72aa6c1991f13568a0d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_f16.c
+ 75398d82fba401aae65d467ec578d058  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_f32.c
+ be4573abae4aacfde9bde1cb31c91918  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_f64.c
+ 01c23c35e2e7bf762b98dc5774316ae2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_s16.c
+ d416e578c27a677da46b61eef337b7ff  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_s32.c
+ ecf5598d1bf38a4a1fde805f10a52f11  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_s64.c
+ 50fcdd840b8cc0c007e3d5aa31f4c045  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_s8.c
+ 0a1d436eb1fc59496de7f1d3a5f8617e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_u16.c
+ 9c848f1153544a1d7a1532d5f7dfa91c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_u32.c
+ d2f772bcd50aefdc4ae233fb726baf5e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_u64.c
+ 2ad86ed2bc2b97295e154ec5ec1cc91a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/uzpq2_u8.c
  fbd1af7d547b3746c3b9c6dd01a54f7b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b16.c
+ f69931e849018c88b76ea2f6cb665090  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b16_x2.c
  34a6f0f576263d6c01e24a0c2035802a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b32.c
+ f1c654ae034e6140f41ffefae9fa7f1b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b32_x2.c
  8f811d47a60dc89dd060e2730ee13d1f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b64.c
+ 64ac1afa8f588e5a97042d0fc7f05e6c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b64_x2.c
  b3c69f8473ea8cfcbb8fbcc20443cc24  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b8.c
+ e9377b75740826797a3d1dbbf88a579f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_b8_x2.c
+ ce26a368c023ee7ba58ae44e9c112310  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_c16.c
+ 60d30c7390cc1a13ad591cd192383193  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_c32.c
+ d8ba651a4bebe49fca073aa8058b397c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_c64.c
+ bc24ec5ede4ca6b90a2d1690cdcf2364  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilege_c8.c
  076fe94954a8819935920495f4582f80  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b16.c
+ c70ff3bc542797f3179d042a8a406489  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b16_x2.c
  d2827de7d9c612bea1672387dd9c3127  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b32.c
+ 61212bbb70422cf619f3f00e7a6d1df5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b32_x2.c
  0c78c417b267aa95b6a2800edd9de802  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b64.c
+ 1df643ad8c675f420c833de8c2bc2624  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b64_x2.c
  1dc1cf8375e57e51f8cfb695ad02fcf5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b8.c
+ c2c6bb9b8c67aed70c2a13402c4867c6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_b8_x2.c
+ be8aabc3b69e1b84a0cda4ddaf7972f0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_c16.c
+ f1c8c945aad9e9357f7823666ec0e5ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_c32.c
+ c2401e79a9bc770ba94ea84d40c0b32a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_c64.c
+ fbd24496285a210e1586619473d9e537  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilegt_c8.c
+ d3fc952cd59c06119505757904bf82bf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_b16_x2.c
+ 211112f9fc7f8380827d3f55caa37b30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_b32_x2.c
+ 771bea0d36af1f9893ac818086251d62  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_b64_x2.c
+ e716a0d48c31b65694929dd2c97a16fc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_b8_x2.c
+ 2422eb1f096144c28a1d43132a84a8b6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_c16.c
+ f837e68e9e4d9ba67a20827c4980503f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_c32.c
+ e44074ee5cfc20bc02d9363972331689  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_c64.c
+ a50178b5b0149a46b82b2a4b50212948  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilele_c8.c
+ 7b7e4affd649fa07a2736bea988003de  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_b16_x2.c
+ 0104079e98c1e44491ab69cdc373f360  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_b32_x2.c
+ f56aa66955c60850729f1dba351ef3f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_b64_x2.c
+ dccfd2656ea5055c4408f57f485407e3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_b8_x2.c
+ 8255e5a99cf3b9be7452dc3dff22a492  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_c16.c
+ 25c997301d59012287b397f15b4a523e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_c32.c
+ bf440f4e86a05830cafddc9dcd67a489  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_c64.c
+ 9448222f709ff52ac35570472ac52424  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilelt_c8.c
  0d36b9b42fd125d3a469228e8f857081  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_bf16.c
  dc31cb42cd22b6e15d06ef0f0e33c8d2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_f16.c
  35152ad23102bc51e9100a3e4265425a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_f32.c
  0995b6ade16b91e3341afc99624b601b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_f64.c
+ 6cdad786629b6f00e83200ec00673d38  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_mf8.c
  69e74ee31abc91dd66b9fbf817ef03c0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_s16.c
  cb255f36f8ec7fcb61c3f27e016aa48e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_s32.c
  d9a8b715bf4b7ba2b74020b16badd615  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilerw_s64.c
*************** f8f54246234b0585e1d46229a5a2f121  gcc/te
*** 63606,63611 ****
--- 67878,67884 ----
  c000091f95efe657ff48fcfc8ef5d4ea  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_f16.c
  2cd95144e0fae82b40c8cf560cd903f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_f32.c
  055b3b9980c4d2e413ea04a9ae27ac57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_f64.c
+ b9b55eb4e3d15780378e45af8914a7b0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_mf8.c
  7a418b8b103c38b380de3814d2edb2a1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_s16.c
  a8e0fda77a6199dddfc71f49ed1be103  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_s32.c
  05dc5aea10c60b2394d8a1a66b10677e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_s64.c
*************** a8e0fda77a6199dddfc71f49ed1be103  gcc/te
*** 63614,63627 ****
  50f42189997dbf33d630f6e7c96e9e00  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u32.c
  9fdc60984f4ec741b73b5ebda3f7c6c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u64.c
  69c2af29d4c0058fb0fea0a2917a5824  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u8.c
! 7d421540d58c6cb209203adb3b9a8e87  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s16.c
! c54bb790a00c9bf72063dbfe3be057de  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s32.c
! 794b0512b558b4ac0aadcefd7f3c8017  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s64.c
! 0b1baf4fbc09a658ae96e6fa243834ca  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s8.c
! 640c2ea0dd4dc9c299d8ef3dfcf9a4de  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u16.c
! 29457d216862121d871d9de144a36858  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u32.c
! 8f34d2fcf46f9b1195e0925e895489a0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u64.c
! 5f00ccc608149bba85afd085194abc9f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u8.c
  5dc288c453fe0628ecb1c0a4e662e89e  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_1.c
  78c6211a3aa4a4e23f2ee812b07b8d9c  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_2.c
  0fc7b1a5f8b8b2048a528f0ec6633f88  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_3.c
--- 67887,67924 ----
  50f42189997dbf33d630f6e7c96e9e00  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u32.c
  9fdc60984f4ec741b73b5ebda3f7c6c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u64.c
  69c2af29d4c0058fb0fea0a2917a5824  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/whilewr_u8.c
! 257d88d168334d3fa51889e93786bf78  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s16.c
! f407eccb7c834f653772a05416d771c1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s32.c
! 76fdbc821da15f9490d96888176497cb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s64.c
! 3d8b1935dc587ddd184404d6c0ec6a27  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_s8.c
! ad80d4d56985c1c34f38e911d806207a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u16.c
! a11fcd2cc1a2d33545a2536c19ad7f32  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u32.c
! aa7f215313894fc3923537eff91bbb74  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u64.c
! df5c520c863b1be9f43d854c73318163  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/xar_u8.c
! 430a3ba2ba46203af168565624ed3d8f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_bf16.c
! 12ce85472a968848bf8d9ce20d79881d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_f16.c
! 5da4972cb4f228180355c6b6cab867f0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_f32.c
! 9e8fa5aa605342bc8f2c32943f6bda19  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_f64.c
! 48832116ee5fc8ac6b177eaf9e3655bf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_s16.c
! c623225cea7e1c77eec4562d06c17c9d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_s32.c
! bac21bd137e6b15c20a81a335eac1b42  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_s64.c
! 0055ab10be202676784d390197027954  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_s8.c
! 8d41520501d9a8f5f225eae4a20f01e8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_u16.c
! c336ae519d64b3c0700cb121d6ea61c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_u32.c
! 3ab5ca676933c65b140343cffcb30072  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_u64.c
! 3ef17e2dd496a1e428f022ece19d9419  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq1_u8.c
! 9ad8fe05380e3bd81987921acb8f1119  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_bf16.c
! 0059435ce9cdf587dc02e2fbc2765bb0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_f16.c
! 2543182f2ee4ea010521a9f797ae767f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_f32.c
! 5aed42bf2d4c411fda8bb547da5b9024  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_f64.c
! 514bf2725230a9beab6ca0c56e9d3506  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_s16.c
! 6c0aa54db9252fb56daae01f97b1f3d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_s32.c
! b520c329bd96ea8f45efbe9537a1a325  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_s64.c
! 46173ac896d16ed61c4d1f1186b1188d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_s8.c
! 9c764613205203f00b5d74c8e37f2d1d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_u16.c
! f6109ccab2b862ae05ae03274ecbfd7d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_u32.c
! 8bd4d1dad2f681ab4dd1ec1031c8f77e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_u64.c
! 15bd74b801894fce1d7f266276329db7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/zipq2_u8.c
  5dc288c453fe0628ecb1c0a4e662e89e  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_1.c
  78c6211a3aa4a4e23f2ee812b07b8d9c  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_2.c
  0fc7b1a5f8b8b2048a528f0ec6633f88  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_3.c
*************** f138a3da42d63bd49959d9ace6c814ab  gcc/te
*** 63640,63659 ****
--- 67937,67982 ----
  138cb696e2f9aecb8036abf684116d9a  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_3.c
  db510fed2a207b35df2126caab14bc03  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_4.c
  c0db897049451d05160e3d761c3e6da0  gcc/testsuite/gcc.target/aarch64/sve2/div-by-bitmask_1.c
+ 0fb5bea81042b3145e52f4e90a557a04  gcc/testsuite/gcc.target/aarch64/sve2/dupq_1.c
  601e2a51cde2e0a9fd3515f4fbdf4eb7  gcc/testsuite/gcc.target/aarch64/sve2/eor3_1.c
+ 7e11899eebfd050dd47b225de91b59bd  gcc/testsuite/gcc.target/aarch64/sve2/extq_1.c
  6699c8d574b87c7018fc5b494c65cb7f  gcc/testsuite/gcc.target/aarch64/sve2/gather_earlyclobber.c
  34c844ca053b9c871341786139fbf872  gcc/testsuite/gcc.target/aarch64/sve2/mulhrs_1.c
  b360e0ac1da1500645df64fce4fab7dd  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_1.c
  4446107d252cac5778f692095515b222  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_2.c
+ c7b786f01d84f2d7e603d6a43e876c22  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary.c
+ 02d75b42d49e20b0d62f8cc71bf564fd  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_int_opt_n.c
+ 0398cf52887bb6fced0d07d6a74e4cf6  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_int_opt_single_n.c
+ d4ac5f0cd544a257724c38f19cbcf90f  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_opt_n.c
+ 83853507dec67ccd18edb5ae920b3cdc  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_opt_single_n.c
+ b956634e9c2b1ff458cb4799c8c434a8  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_to_uint.c
+ f4f829603d0c0ccb43eef6398037ecf0  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_uint_opt_n.c
+ c29a08ad9971f39bd21407397a2464dd  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary_wide.c
+ caa209ec03322b27ed7e2f921275eb1b  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-compare.c
+ 5c14162bb0a5f5d0b4e5b3e0bc208bd3  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-load_ext_gather_index_restricted.c
+ 01bda29fa3e3116b8d9e04dc77401740  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-load_ext_gather_offset_restricted.c
+ ffe52b654b1bed290e682a570e4e2f2c  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-load_gather_sv_restricted.c
+ 7e3a7aed02502868adadf72e5511e4d6  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-load_gather_vs.c
+ 041f0a0d6a42b3a6860642ee643582f2  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-shift_left_imm_to_uint.c
+ 257e03d7adb3ca35f141df5b4de3de69  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-shift_right_imm.c
+ 9257c8162b6cc66828379e18e4c4a1a2  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-store_scatter_index_restricted.c
+ a001f81828ab73d9f7a29b0c061f2cc9  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-store_scatter_offset_restricted.c
+ cacf1e249f8fdfc2a3a5a553c679f1a1  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-unary.c
+ 6129e158aa336ecdd3b69990ac8fb353  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-unary_convert.c
+ dd39a5e2157a8a0459e05ebd9667fd83  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-unary_convert_narrowt.c
+ d5c7985c957a203ace14885eae7f502b  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-unary_to_int.c
  f6df41d6d0c00a657a60617993e7fd37  gcc/testsuite/gcc.target/aarch64/sve2/pr107717.c
  10614e0cbb3e88c95f34ea133bf8898e  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-1.c
  f5f6f291e9c1c848a46c8ef91ca99f58  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-2.c
  429b387819fe31e459436020f966ae50  gcc/testsuite/gcc.target/aarch64/sve2/pr109636_1.c
+ b1f13471701b0335894317ae214cc68c  gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
  3ddfd16fcbf89890fd9785fec8f0c081  gcc/testsuite/gcc.target/aarch64/sve2/shracc_1.c
  8cd4d6e010de57b57d5d8fb325fa79bb  gcc/testsuite/gcc.target/aarch64/sve2/unpred_mul_1.c
+ 5305258327c11f42a3de08b7708ebd76  gcc/testsuite/gcc.target/aarch64/sve2/uzpq_1.c
  253ea1793d85a6047e9fc6e69f5a62af  gcc/testsuite/gcc.target/aarch64/sve2/whilerw_1.c
  42ba6aece1381e39342dd7cf99a96910  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_1.c
  d807c78d9b80a1f49bc50cb0cae86706  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c
+ 090ee6240c811fb8e04d0966d321b41b  gcc/testsuite/gcc.target/aarch64/sve2/zipq_1.c
  7edd975b42fef37f221ec76013222098  gcc/testsuite/gcc.target/aarch64/swar_to_vec_cmp.c
  c1ccdcf1821a2a9f689561bfc74f48dc  gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
  b10293e89ee2df8eb55e37a5c18f3bd5  gcc/testsuite/gcc.target/aarch64/symbol-range.c
*************** c17cb964233b0aa7dd1ec0085d5a8fe2  gcc/te
*** 63689,63698 ****
  890ae3968d31413e8ddaa0ad072317c6  gcc/testsuite/gcc.target/aarch64/target_attr_7.c
  c3bdf427007d07f3883a94ebab891f55  gcc/testsuite/gcc.target/aarch64/target_attr_8.c
  f6ab59a6fb51c2f31ff41e022a946244  gcc/testsuite/gcc.target/aarch64/target_attr_9.c
! 3b3c6f4a697ca1bd0f45d5465baaaad8  gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c
! 72b807b6163266e3cc8d97b5717cb93c  gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c
  038f11aa9e6f1a7714c44a57550a260e  gcc/testsuite/gcc.target/aarch64/tbz_1.c
! 9ffba880929c2d08bdbc7d0a30a411a1  gcc/testsuite/gcc.target/aarch64/tbz_2.c
  189a1d84ddfafd309b413723971ee116  gcc/testsuite/gcc.target/aarch64/tbz_3.c
  8337f562dcf7ef4442f3fda5116f6516  gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c
  852b4cd568f885879f0e4ee07c42db62  gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c
--- 68012,68023 ----
  890ae3968d31413e8ddaa0ad072317c6  gcc/testsuite/gcc.target/aarch64/target_attr_7.c
  c3bdf427007d07f3883a94ebab891f55  gcc/testsuite/gcc.target/aarch64/target_attr_8.c
  f6ab59a6fb51c2f31ff41e022a946244  gcc/testsuite/gcc.target/aarch64/target_attr_9.c
! 1651317270b296f02bfe28d7ef31f07b  gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c
! bc349135d022ac42fcd58ff325aac4bd  gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_2.c
! e53326644c82364d004e69f92a902b22  gcc/testsuite/gcc.target/aarch64/tbl_with_zero_1.c
! 3bb1f516dc1688d1f1bc09e387708965  gcc/testsuite/gcc.target/aarch64/tbl_with_zero_2.c
  038f11aa9e6f1a7714c44a57550a260e  gcc/testsuite/gcc.target/aarch64/tbz_1.c
! d3ad46c7cb1921d0930ac5bd6d6a9cf0  gcc/testsuite/gcc.target/aarch64/tbz_2.c
  189a1d84ddfafd309b413723971ee116  gcc/testsuite/gcc.target/aarch64/tbz_3.c
  8337f562dcf7ef4442f3fda5116f6516  gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c
  852b4cd568f885879f0e4ee07c42db62  gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c
*************** cfed1de6c3a12e6d1bfaaba77c0e7100  gcc/te
*** 63712,63718 ****
  5ef6a40d4a61c0bca17e054d0e571af7  gcc/testsuite/gcc.target/aarch64/test_frame_13.c
  a5e6b722f4144697d90e30cfabaee788  gcc/testsuite/gcc.target/aarch64/test_frame_14.c
  576b76733224038c69565bcbe03d9f46  gcc/testsuite/gcc.target/aarch64/test_frame_15.c
! 6c5bce43d2093b676bcbc3084394efb0  gcc/testsuite/gcc.target/aarch64/test_frame_16.c
  1558cee3b358a4686101166d3efa7561  gcc/testsuite/gcc.target/aarch64/test_frame_17.c
  5e7d8c8412f87dc4b8e1d4440e369e15  gcc/testsuite/gcc.target/aarch64/test_frame_2.c
  3b6dc13fe4d40fc07c0288cb31d3cfc5  gcc/testsuite/gcc.target/aarch64/test_frame_3.c
--- 68037,68043 ----
  5ef6a40d4a61c0bca17e054d0e571af7  gcc/testsuite/gcc.target/aarch64/test_frame_13.c
  a5e6b722f4144697d90e30cfabaee788  gcc/testsuite/gcc.target/aarch64/test_frame_14.c
  576b76733224038c69565bcbe03d9f46  gcc/testsuite/gcc.target/aarch64/test_frame_15.c
! b89bd7b9ce6a66501a3114f0ec37a670  gcc/testsuite/gcc.target/aarch64/test_frame_16.c
  1558cee3b358a4686101166d3efa7561  gcc/testsuite/gcc.target/aarch64/test_frame_17.c
  5e7d8c8412f87dc4b8e1d4440e369e15  gcc/testsuite/gcc.target/aarch64/test_frame_2.c
  3b6dc13fe4d40fc07c0288cb31d3cfc5  gcc/testsuite/gcc.target/aarch64/test_frame_3.c
*************** a2ccf9bfd1d0bb840b23c25e1bdec31c  gcc/te
*** 63734,63741 ****
  4d1251d696b9339c130cb783420a3ecc  gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
  d7ac99c012df73ffbde36998316bf1ef  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
  fc2eb8ac52faed5fba0a017b858d4ae4  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
! 0afb99fcdb9951f648c24b7cbbef6b69  gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp
  4036d83a59b4adcf9e8a4cf5a291d22e  gcc/testsuite/gcc.target/aarch64/torture/pr111677.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
--- 68059,68067 ----
  4d1251d696b9339c130cb783420a3ecc  gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
  d7ac99c012df73ffbde36998316bf1ef  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
  fc2eb8ac52faed5fba0a017b858d4ae4  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
! 963d140aad02af938776268e2a209386  gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp
  4036d83a59b4adcf9e8a4cf5a291d22e  gcc/testsuite/gcc.target/aarch64/torture/pr111677.c
+ 8ba6cf5317762b2b89350d4f652efa53  gcc/testsuite/gcc.target/aarch64/torture/pr116564.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** df55bfe2c1ce46074b19b4566cedeef4  gcc/te
*** 63745,63752 ****
  3a51481c73551709c4619c405b2e6bd9  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c
  1ce3b9de4416918b369087ed5d57b005  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c
  6f76f09058dacb2d4652fe23212078dc  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c
! 7307049a5c12059da31c76acc2b0c48f  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-8.c
  d27cf5c573d83aeb3376b52fa2d42277  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-9.c
  243944adb745b523dc89b085c3612ccb  gcc/testsuite/gcc.target/aarch64/tst-1.c
  b408270b084f360295aac255b1236a43  gcc/testsuite/gcc.target/aarch64/tst_1.c
  37192804dea7878cae6f099ba15e2f20  gcc/testsuite/gcc.target/aarch64/tst_2.c
--- 68071,68079 ----
  3a51481c73551709c4619c405b2e6bd9  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c
  1ce3b9de4416918b369087ed5d57b005  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c
  6f76f09058dacb2d4652fe23212078dc  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c
! 5e87c222f1290ba69d1c720a5d7766b3  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-8.c
  d27cf5c573d83aeb3376b52fa2d42277  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-9.c
+ 3f00b9061bd4be55dd74c5c3274fd431  gcc/testsuite/gcc.target/aarch64/trunc-vec.c
  243944adb745b523dc89b085c3612ccb  gcc/testsuite/gcc.target/aarch64/tst-1.c
  b408270b084f360295aac255b1236a43  gcc/testsuite/gcc.target/aarch64/tst_1.c
  37192804dea7878cae6f099ba15e2f20  gcc/testsuite/gcc.target/aarch64/tst_2.c
*************** a82a34a90c1885b8543809c27d268007  gcc/te
*** 63794,63809 ****
  19d75325650155f269c201a05287efb5  gcc/testsuite/gcc.target/aarch64/vbslq_u64_2.c
  b6f854a708ce32ba728caa3296ffbdb0  gcc/testsuite/gcc.target/aarch64/vclz.c
  bf8d75c7373fd9960d5991b8c49f6925  gcc/testsuite/gcc.target/aarch64/vdiv_f.c
! bfe5a6a3a53aebcbe2f24517d1b04256  gcc/testsuite/gcc.target/aarch64/vdup_lane_1.c
! f7f2344a72602b25102a0f740e8d9987  gcc/testsuite/gcc.target/aarch64/vdup_lane_2.c
! 9ac0a5a454f83f3513fc68f070422119  gcc/testsuite/gcc.target/aarch64/vdup_n_1.c
  1c93884e2e0d923d37c8896f3e314217  gcc/testsuite/gcc.target/aarch64/vdup_n_2.c
  a37827c58e9b235ef8fb68b9d0397a33  gcc/testsuite/gcc.target/aarch64/vdup_n_3.c
  6373941c7a38d57c6e9f57889eeb10ed  gcc/testsuite/gcc.target/aarch64/vec-init-10.c
  8a1633a7f054df8919c5747b9e556c8f  gcc/testsuite/gcc.target/aarch64/vec-init-11.c
  ec1f4e31dbc32ad8c510ee0d47b63019  gcc/testsuite/gcc.target/aarch64/vec-init-12.c
  5bd375529fd8638029099f584e579898  gcc/testsuite/gcc.target/aarch64/vec-init-13.c
! 60b064e1457c5d85a4f2c92d2d601d44  gcc/testsuite/gcc.target/aarch64/vec-init-14.c
  5a02fc8d0841b45c544a81856934d565  gcc/testsuite/gcc.target/aarch64/vec-init-15.c
  fe39e0171addd79f69407e9a5dd97957  gcc/testsuite/gcc.target/aarch64/vec-init-16.c
  716927e27c337fb94328f360dbc20d8d  gcc/testsuite/gcc.target/aarch64/vec-init-17.c
--- 68121,68136 ----
  19d75325650155f269c201a05287efb5  gcc/testsuite/gcc.target/aarch64/vbslq_u64_2.c
  b6f854a708ce32ba728caa3296ffbdb0  gcc/testsuite/gcc.target/aarch64/vclz.c
  bf8d75c7373fd9960d5991b8c49f6925  gcc/testsuite/gcc.target/aarch64/vdiv_f.c
! 9e6b4449d5a9ca3cb7d33b5abfe5fa5a  gcc/testsuite/gcc.target/aarch64/vdup_lane_1.c
! 8d313afd3e2d102bf5cf25722e20214e  gcc/testsuite/gcc.target/aarch64/vdup_lane_2.c
! de34757aca5748fc33ea15e8ee6a1eec  gcc/testsuite/gcc.target/aarch64/vdup_n_1.c
  1c93884e2e0d923d37c8896f3e314217  gcc/testsuite/gcc.target/aarch64/vdup_n_2.c
  a37827c58e9b235ef8fb68b9d0397a33  gcc/testsuite/gcc.target/aarch64/vdup_n_3.c
  6373941c7a38d57c6e9f57889eeb10ed  gcc/testsuite/gcc.target/aarch64/vec-init-10.c
  8a1633a7f054df8919c5747b9e556c8f  gcc/testsuite/gcc.target/aarch64/vec-init-11.c
  ec1f4e31dbc32ad8c510ee0d47b63019  gcc/testsuite/gcc.target/aarch64/vec-init-12.c
  5bd375529fd8638029099f584e579898  gcc/testsuite/gcc.target/aarch64/vec-init-13.c
! a33d718b7ff09fd8cf43144ef6dcd24e  gcc/testsuite/gcc.target/aarch64/vec-init-14.c
  5a02fc8d0841b45c544a81856934d565  gcc/testsuite/gcc.target/aarch64/vec-init-15.c
  fe39e0171addd79f69407e9a5dd97957  gcc/testsuite/gcc.target/aarch64/vec-init-16.c
  716927e27c337fb94328f360dbc20d8d  gcc/testsuite/gcc.target/aarch64/vec-init-17.c
*************** afa8fab2054c54e87a7ba607a3edf2d4  gcc/te
*** 63812,63826 ****
  d75418024f450ee16a7a73711a6003a1  gcc/testsuite/gcc.target/aarch64/vec-init-20.c
  3ea86b4f1a8221327beda15839097483  gcc/testsuite/gcc.target/aarch64/vec-init-21.c
  ea033577ced75cfd9d67b3cf9125dec3  gcc/testsuite/gcc.target/aarch64/vec-init-22-size.c
! 892606c38d51e479c2acb42be081ab98  gcc/testsuite/gcc.target/aarch64/vec-init-22-speed.c
  29813326d297818de7e632909c908723  gcc/testsuite/gcc.target/aarch64/vec-init-22.h
  3e4c042c59f7ebd0de553ce71974d7f0  gcc/testsuite/gcc.target/aarch64/vec-init-6.c
  23056a98bd836157022df74aba0ea38d  gcc/testsuite/gcc.target/aarch64/vec-init-7.c
  a0d7ee23594a897783efec837fcc9a89  gcc/testsuite/gcc.target/aarch64/vec-init-8.c
! e7da83991e6ca968f7a645695ab5ebd7  gcc/testsuite/gcc.target/aarch64/vec-init-9.c
  86a847e5bf1fb5499432a6b5ad8911b4  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-2.c
  94984b8886aab5d70d86c49c090fc10a  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-be.c
  2a52f8c315f452dcdf472938c1cbaee5  gcc/testsuite/gcc.target/aarch64/vec-init-single-const.c
  ea714644678a19125b30ea9d003ff65f  gcc/testsuite/gcc.target/aarch64/vec-set-zero.c
  b1c97e59631c205f913afab4e1ffde4a  gcc/testsuite/gcc.target/aarch64/vec_init_1.c
  96b0c4ebb4ed6713b9f9e7fbb787a46c  gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
--- 68139,68154 ----
  d75418024f450ee16a7a73711a6003a1  gcc/testsuite/gcc.target/aarch64/vec-init-20.c
  3ea86b4f1a8221327beda15839097483  gcc/testsuite/gcc.target/aarch64/vec-init-21.c
  ea033577ced75cfd9d67b3cf9125dec3  gcc/testsuite/gcc.target/aarch64/vec-init-22-size.c
! 81ef2e4eb8b0848ab9df921cd60488da  gcc/testsuite/gcc.target/aarch64/vec-init-22-speed.c
  29813326d297818de7e632909c908723  gcc/testsuite/gcc.target/aarch64/vec-init-22.h
  3e4c042c59f7ebd0de553ce71974d7f0  gcc/testsuite/gcc.target/aarch64/vec-init-6.c
  23056a98bd836157022df74aba0ea38d  gcc/testsuite/gcc.target/aarch64/vec-init-7.c
  a0d7ee23594a897783efec837fcc9a89  gcc/testsuite/gcc.target/aarch64/vec-init-8.c
! 275233faed2deec8a7f02f21b29580a9  gcc/testsuite/gcc.target/aarch64/vec-init-9.c
  86a847e5bf1fb5499432a6b5ad8911b4  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-2.c
  94984b8886aab5d70d86c49c090fc10a  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-be.c
  2a52f8c315f452dcdf472938c1cbaee5  gcc/testsuite/gcc.target/aarch64/vec-init-single-const.c
+ c04188bb2b4a3589f00728d8e90d679f  gcc/testsuite/gcc.target/aarch64/vec-rot-exec.c
  ea714644678a19125b30ea9d003ff65f  gcc/testsuite/gcc.target/aarch64/vec-set-zero.c
  b1c97e59631c205f913afab4e1ffde4a  gcc/testsuite/gcc.target/aarch64/vec_init_1.c
  96b0c4ebb4ed6713b9f9e7fbb787a46c  gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
*************** a8bd653ddae99985293ee04dc707de34  gcc/te
*** 63830,63836 ****
--- 68158,68166 ----
  f5c728d57ec7b4ccd629be9ae3daa4e9  gcc/testsuite/gcc.target/aarch64/vect-add-sub-cond.c
  459f637ca04566f864e27fecd8292d26  gcc/testsuite/gcc.target/aarch64/vect-clz.c
  e17c8c4e15c789037c218893bf9161b8  gcc/testsuite/gcc.target/aarch64/vect-compile.c
+ 1c2584b79632ca3e23f0b3181d2e3616  gcc/testsuite/gcc.target/aarch64/vect-convert-1.c
  8689c2554e8b864529f3565bc73a3a83  gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
+ 921eb3232364cb2927f013733b5a0473  gcc/testsuite/gcc.target/aarch64/vect-dotprod-twoway-hisi.c
  9236bf16cd47adcb95dc6a0916ba183c  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
  d7d37bd9558713b30e8774cf2b0adc67  gcc/testsuite/gcc.target/aarch64/vect-faddv-compile.c
  561fb26098c56226b672e381ee1cfb4f  gcc/testsuite/gcc.target/aarch64/vect-faddv.c
*************** ee90316f15da27e84e8dc325bd4f951f  gcc/te
*** 63847,63853 ****
  d9a0bab052e5c4a3749879bd86ede0c8  gcc/testsuite/gcc.target/aarch64/vect-fmax-fmin.x
  b82cd9f1530af5340f35103ab9b4a93e  gcc/testsuite/gcc.target/aarch64/vect-fmaxv-fminv-compile.c
  7c01b2ab381c8fd0144c7fc213c50d11  gcc/testsuite/gcc.target/aarch64/vect-fmaxv-fminv.x
! 1044b54f067a2d59582e412a6a6ffb51  gcc/testsuite/gcc.target/aarch64/vect-fmovd-zero.c
  2c13a863507880cfa47082cddd445f7c  gcc/testsuite/gcc.target/aarch64/vect-fmovd.c
  3116662b28a7e564c5cb28249e6ec7c8  gcc/testsuite/gcc.target/aarch64/vect-fmovf-zero.c
  ca3bd408de537c0dcfc7abec9f5ba014  gcc/testsuite/gcc.target/aarch64/vect-fmovf.c
--- 68177,68183 ----
  d9a0bab052e5c4a3749879bd86ede0c8  gcc/testsuite/gcc.target/aarch64/vect-fmax-fmin.x
  b82cd9f1530af5340f35103ab9b4a93e  gcc/testsuite/gcc.target/aarch64/vect-fmaxv-fminv-compile.c
  7c01b2ab381c8fd0144c7fc213c50d11  gcc/testsuite/gcc.target/aarch64/vect-fmaxv-fminv.x
! 759d26b69c3f19d68861426a2cc0fd97  gcc/testsuite/gcc.target/aarch64/vect-fmovd-zero.c
  2c13a863507880cfa47082cddd445f7c  gcc/testsuite/gcc.target/aarch64/vect-fmovd.c
  3116662b28a7e564c5cb28249e6ec7c8  gcc/testsuite/gcc.target/aarch64/vect-fmovf-zero.c
  ca3bd408de537c0dcfc7abec9f5ba014  gcc/testsuite/gcc.target/aarch64/vect-fmovf.c
*************** c1dc1c8c4bf53ce9009691cb397b17fb  gcc/te
*** 63869,63878 ****
--- 68199,68214 ----
  6fa10a566ef762e5de73c88311dab6fb  gcc/testsuite/gcc.target/aarch64/vect-mull-compile.c
  4c23211610928caca9d9dbde2a7898ce  gcc/testsuite/gcc.target/aarch64/vect-mull.c
  41ca9099e8b15c49acbe7f753f163047  gcc/testsuite/gcc.target/aarch64/vect-mull.x
+ a5ea701024dc372e404e47fd661308b9  gcc/testsuite/gcc.target/aarch64/vect-prefetch-drop.c
  ded4af2ae02936eb4be45e9e08f45373  gcc/testsuite/gcc.target/aarch64/vect-reduc-or_1.c
  cbb6981a9f5fba990ee2d0f5e5e38a50  gcc/testsuite/gcc.target/aarch64/vect-shr-reg-run.c
  f0d2e1dd6eaa2c17de51dc5c456d92a1  gcc/testsuite/gcc.target/aarch64/vect-shr-reg.c
+ e492c61b71734a2af2ab50a12ad1ba63  gcc/testsuite/gcc.target/aarch64/vect-simd-clone-1.c
+ 01ef9e20cbbcc4e4e515070fe642e05e  gcc/testsuite/gcc.target/aarch64/vect-simd-clone-2.c
+ bb3354b56d86a7d30bc259ff8c5b77b9  gcc/testsuite/gcc.target/aarch64/vect-simd-clone-3.c
+ a0789981a953d5159e7a01e2a306cfe4  gcc/testsuite/gcc.target/aarch64/vect-simd-clone-4.c
  9beae85b914c12abd4365f24d1b9d2e0  gcc/testsuite/gcc.target/aarch64/vect-slp-dup.c
+ a556a66b392d3b57cd0df3d82b71201e  gcc/testsuite/gcc.target/aarch64/vect-slp-two-operator.c
  909f6319658fdb0f9bdf4418a97e4bed  gcc/testsuite/gcc.target/aarch64/vect-vaddv.c
  ab6883e822bb3f1fc8d811e7e3f12d7a  gcc/testsuite/gcc.target/aarch64/vect-vca.c
  00f6ce34304d67309d3c34f69cbf32c0  gcc/testsuite/gcc.target/aarch64/vect-vcvt.c
*************** f4f649fed2885c785319cab7327c85be  gcc/te
*** 63887,63893 ****
  8dfcd2a2d7ceb7d5140289d41af9786b  gcc/testsuite/gcc.target/aarch64/vect.c
  b693ee9ea2fea604f11a6e4a32b9b085  gcc/testsuite/gcc.target/aarch64/vect.x
  bb3045dcb1412da7658e5620448319d7  gcc/testsuite/gcc.target/aarch64/vect_combine_zeroes_1.c
! a5a2c035661a9a7ad761f4ea2321d569  gcc/testsuite/gcc.target/aarch64/vect_copy_lane_1.c
  95acd34bb13537f81b8384ba0dc1c619  gcc/testsuite/gcc.target/aarch64/vect_ctz_1.c
  ac7e977b4868ba7e6e93eda9b315d240  gcc/testsuite/gcc.target/aarch64/vect_fp16_1.c
  02389472fa09f664f50b713065fbaa13  gcc/testsuite/gcc.target/aarch64/vect_hadd_1.h
--- 68223,68229 ----
  8dfcd2a2d7ceb7d5140289d41af9786b  gcc/testsuite/gcc.target/aarch64/vect.c
  b693ee9ea2fea604f11a6e4a32b9b085  gcc/testsuite/gcc.target/aarch64/vect.x
  bb3045dcb1412da7658e5620448319d7  gcc/testsuite/gcc.target/aarch64/vect_combine_zeroes_1.c
! 457e34c961fac1fb83a12ebe440c0025  gcc/testsuite/gcc.target/aarch64/vect_copy_lane_1.c
  95acd34bb13537f81b8384ba0dc1c619  gcc/testsuite/gcc.target/aarch64/vect_ctz_1.c
  ac7e977b4868ba7e6e93eda9b315d240  gcc/testsuite/gcc.target/aarch64/vect_fp16_1.c
  02389472fa09f664f50b713065fbaa13  gcc/testsuite/gcc.target/aarch64/vect_hadd_1.h
*************** d8b7bf172e8cfd96979b54e10c4e2570  gcc/te
*** 63920,63926 ****
--- 68256,68266 ----
  dc26c976e2b4512c622399bbaac9f150  gcc/testsuite/gcc.target/aarch64/vector_structure_intrinsics.c
  daaae70f1b12a12a9975bc061e8b23d6  gcc/testsuite/gcc.target/aarch64/vfp-1.c
  a7efe0794d7e3b0752ef79d9b193f732  gcc/testsuite/gcc.target/aarch64/vget_high_1.c
+ a0ee798f47b6ee2310f22361001f1283  gcc/testsuite/gcc.target/aarch64/vget_high_2.c
+ bf2578c2a52615b5047af5c71e727caa  gcc/testsuite/gcc.target/aarch64/vget_high_2_be.c
  ba86e661dd1013208b7601f68c9e82c6  gcc/testsuite/gcc.target/aarch64/vget_low_1.c
+ 8154d8a3a1bd1ae808927de0bc9203f1  gcc/testsuite/gcc.target/aarch64/vget_low_2.c
+ 463afd91d715ced8b82d515a36cccf52  gcc/testsuite/gcc.target/aarch64/vget_low_2_be.c
  2c3620b493e0117b74a619cf2dc3290b  gcc/testsuite/gcc.target/aarch64/vget_set_lane_1.c
  cfcefa0eda1f9dc2b828001739a59b3c  gcc/testsuite/gcc.target/aarch64/vins-1.c
  866df8192450aa2e37378d37f700681c  gcc/testsuite/gcc.target/aarch64/vins-2.c
*************** fee0e93ef0f9f011f34cd4553e9b4687  gcc/te
*** 63931,63936 ****
--- 68271,68277 ----
  ae3dcb9a10323462d2895ea14f4c6684  gcc/testsuite/gcc.target/aarch64/vldN_1.c
  0431b40be800f02cf76c818fe65d8d41  gcc/testsuite/gcc.target/aarch64/vldN_dup_1.c
  69fe1a151a14ceaba823dfa4f97fb2f4  gcc/testsuite/gcc.target/aarch64/vldN_lane_1.c
+ cece2595bf2f930ad47cf5ce7584aa27  gcc/testsuite/gcc.target/aarch64/vls_sve_vec_dup_1.c
  62035331b5c5eb4d0fe9a0334d3e3e5e  gcc/testsuite/gcc.target/aarch64/vminmaxnm.c
  bdf9d08039684c459d9bd2f4906dba34  gcc/testsuite/gcc.target/aarch64/vmlsq_laneq.c
  409b07ca9d40dc8382417b1603d0ef73  gcc/testsuite/gcc.target/aarch64/vmov_n_1.c
*************** e916fcf0c3130fc5102d03f2d729ff64  gcc/te
*** 63968,63973 ****
--- 68309,68316 ----
  4683d4cffa583230e66ffd80229a9ff7  gcc/testsuite/gcc.target/aarch64/with-tune-march.c
  244ffe859281a44df2fa3ac62341bd75  gcc/testsuite/gcc.target/aarch64/with-tune-mcpu.c
  73648276a5cd96f9c11169ae4e70ef9c  gcc/testsuite/gcc.target/aarch64/with-tune-mtune.c
+ a5784e5c868ce916e0684493e789ed30  gcc/testsuite/gcc.target/aarch64/xar_neon_modes.c
+ ffef2c1734dfa074b538fd983a938858  gcc/testsuite/gcc.target/aarch64/xar_v2di_nonsve.c
  fd934708c3543d8703170d5494395bf0  gcc/testsuite/gcc.target/aarch64/xorsign.c
  69c2e660fb11d6895b17cde723e07c66  gcc/testsuite/gcc.target/aarch64/xorsign_exec.c
  4103f6313846ad5d7e1139c35722cc6c  gcc/testsuite/gcc.target/aarch64/xreg-vec-modes_1.c
*************** af390eecb595c38839ef22a261c6b84b  gcc/te
*** 63977,64020 ****
  adfefe2b91e8a8e97bf4cf01135da714  gcc/testsuite/gcc.target/aarch64/xtn-combine-4.c
  c22c4c4adab28d6e3f60fb3aea74e7e9  gcc/testsuite/gcc.target/aarch64/xtn-combine-5.c
  f439076be9a48a135c5fa2921d660d58  gcc/testsuite/gcc.target/aarch64/xtn-combine-6.c
! 17f6fb1c3dca9d7ede25b02cf419efc7  gcc/testsuite/gcc.target/alpha/20000715-1.c
! 11ab80b2f79c054dcb32865854c6ea77  gcc/testsuite/gcc.target/alpha/20011018-1.c
! 2d8c29ac23704a70a80831327c5e0754  gcc/testsuite/gcc.target/alpha/980217-1.c
! e58d1a3817e0c19f8e681765346f5b49  gcc/testsuite/gcc.target/alpha/alpha.exp
! a9f54382c872d8300abd0751aaf2baa7  gcc/testsuite/gcc.target/alpha/asm-1.c
  72088d2975371a0383b6fa19c63a6ee4  gcc/testsuite/gcc.target/alpha/base-1.c
- 2cf5d8a00cade8200304281bbeb38cff  gcc/testsuite/gcc.target/alpha/base-2.c
  30eb8e336f805cd7917f692c7aef8a9d  gcc/testsuite/gcc.target/alpha/cix-1.c
- 582df4fc7c8b439347d0ffcf02953017  gcc/testsuite/gcc.target/alpha/cix-2.c
  c4eec60b3306ebc857f91dd9f92ff8fe  gcc/testsuite/gcc.target/alpha/max-1.c
! 868d557785ef579297eaa8d96b97b3fc  gcc/testsuite/gcc.target/alpha/max-2.c
! cda436a64900819743f9c85f6ef0caae  gcc/testsuite/gcc.target/alpha/pr105209.c
! 29ae801d98cc199cb5dde311a9649e2c  gcc/testsuite/gcc.target/alpha/pr106966.c
! d2f13118de8962e07bca23bc88ac4d1b  gcc/testsuite/gcc.target/alpha/pr115297.c
! 763b8b959a5cab5d1f688ad38f7bcd29  gcc/testsuite/gcc.target/alpha/pr115526.c
! dc5943b1dd495250e6dc8076b32c902c  gcc/testsuite/gcc.target/alpha/pr19518.c
! f8467590e67b2b5f4718d571a9ba60c0  gcc/testsuite/gcc.target/alpha/pr22093.c
! b36471f8edbf2a11ce23359823ecc10b  gcc/testsuite/gcc.target/alpha/pr24178.c
! 07622a1bc137bf2eb36bc820fd987dba  gcc/testsuite/gcc.target/alpha/pr39740.c
! 7e0bdc9440fed8b18a36d041da4fc543  gcc/testsuite/gcc.target/alpha/pr42113.c
! 5952f408c2bc3bfc196759bf8ab1ff3d  gcc/testsuite/gcc.target/alpha/pr42269-1.c
! 463af7840e4a680c4f850f8d5dfafd3f  gcc/testsuite/gcc.target/alpha/pr42448-1.c
! 0539ee2bde042196f5382b5c738d4f43  gcc/testsuite/gcc.target/alpha/pr42448-2.c
! 5f0298d225684c28c36ad42548aeccbd  gcc/testsuite/gcc.target/alpha/pr42774.c
! 4b2dcff48566cef7a104bfadab9354cc  gcc/testsuite/gcc.target/alpha/pr61586.c
! 4b94b637ab988a04f03f707f95a35963  gcc/testsuite/gcc.target/alpha/pr66140.c
! e6d1333accc73a351e98b7ad842cd2be  gcc/testsuite/gcc.target/alpha/pr83628-1.c
! 2052308560c0cb7bee41dddbff1ae5f4  gcc/testsuite/gcc.target/alpha/pr83628-2.c
! 38c58f9ce3fd2fd442a1637ac9e5e8bd  gcc/testsuite/gcc.target/alpha/pr83628-3.c
! a28c8b957006268fb63ac90eaea21d90  gcc/testsuite/gcc.target/alpha/pr86984.c
! 5821aa7e8ef51d9e9f03077c43721bd0  gcc/testsuite/gcc.target/alpha/sqrt.c
  96315e3201d2fa31fb4cbdf30fb2ba4d  gcc/testsuite/gcc.target/arc/abitest.S
  a125f0012bfc0fdad155c9b9bcc0f009  gcc/testsuite/gcc.target/arc/abitest.h
  de6da4a52a0859ffa9a053a8c13e86cc  gcc/testsuite/gcc.target/arc/add_f-combine.c
! db888d7c4bcd1e3319426a38f93b91d6  gcc/testsuite/gcc.target/arc/add_n-combine.c
  a518cd4cde3320f6241ec570b444414f  gcc/testsuite/gcc.target/arc/adddi3-1.c
  e6be20952086b2b05a1879e41e70daac  gcc/testsuite/gcc.target/arc/and-cnst-size.c
! c39828fcc01a168f375867a4da0dd469  gcc/testsuite/gcc.target/arc/arc.exp
  3e772a00d37dc9ac78faa763e2dd058d  gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
  098e5a4b4da45b6c9a2530ba8820404c  gcc/testsuite/gcc.target/arc/ashldi3-1.c
  45b3f35fc118b7f9cbf151b8b3af0da9  gcc/testsuite/gcc.target/arc/ashrdi3-1.c
--- 68320,68415 ----
  adfefe2b91e8a8e97bf4cf01135da714  gcc/testsuite/gcc.target/aarch64/xtn-combine-4.c
  c22c4c4adab28d6e3f60fb3aea74e7e9  gcc/testsuite/gcc.target/aarch64/xtn-combine-5.c
  f439076be9a48a135c5fa2921d660d58  gcc/testsuite/gcc.target/aarch64/xtn-combine-6.c
! 97ac4e5f64da5953307af56c7becc278  gcc/testsuite/gcc.target/alpha/20000715-1.c
! fc37c30234446854f0b4f47418adfa73  gcc/testsuite/gcc.target/alpha/20011018-1.c
! 642d9add333b74dabc1f7f7a38bbcb70  gcc/testsuite/gcc.target/alpha/980217-1.c
! 694ecfd7a319c89c406feae77e640283  gcc/testsuite/gcc.target/alpha/alpha.exp
! 49a7ccfc7a8a3718a4b889282509f102  gcc/testsuite/gcc.target/alpha/asm-1.c
  72088d2975371a0383b6fa19c63a6ee4  gcc/testsuite/gcc.target/alpha/base-1.c
  30eb8e336f805cd7917f692c7aef8a9d  gcc/testsuite/gcc.target/alpha/cix-1.c
  c4eec60b3306ebc857f91dd9f92ff8fe  gcc/testsuite/gcc.target/alpha/max-1.c
! f4fb909d003bd5e874c195605f19c018  gcc/testsuite/gcc.target/alpha/memclr-a2-o1-c9-ptr-safe-partial.c
! 0a4a56c65748dcde68f9aa1958e44d74  gcc/testsuite/gcc.target/alpha/memclr-a2-o1-c9-ptr.c
! faa274e3f22f4d447f6ab39604ca6e84  gcc/testsuite/gcc.target/alpha/memclr-a2-o1-c9-run.c
! 78aae11bee085531f41e8f406d902328  gcc/testsuite/gcc.target/alpha/memcpy-di-aligned.c
! 6548f7b095b22a7c3be2fe2c1faa2a0f  gcc/testsuite/gcc.target/alpha/memcpy-di-unaligned-dst-safe-partial-bwx.c
! 8c05727d9669274326c988286f846cfb  gcc/testsuite/gcc.target/alpha/memcpy-di-unaligned-dst-safe-partial.c
! a15a04bb25273a45046d1c80b26a9fe9  gcc/testsuite/gcc.target/alpha/memcpy-di-unaligned-dst.c
! 8d5b2598c215c7a2375710888c84f1ea  gcc/testsuite/gcc.target/alpha/memcpy-di-unaligned-src.c
! a0ec1bff8cc21dd7aa8749e3723a5f70  gcc/testsuite/gcc.target/alpha/memcpy-di-unaligned.c
! 3479a1a03dbe495c1f2d8194381efd62  gcc/testsuite/gcc.target/alpha/memcpy-hi-unaligned-dst.c
! 6a28e37c49294a03510a9017218ab54b  gcc/testsuite/gcc.target/alpha/memcpy-si-aligned.c
! e78917f649b2e6f7e5d5d2bf8555d168  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-dst-safe-partial-bwx.c
! 1ecfbf9215b0c290e4155f145c3df9ee  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-dst-safe-partial.c
! 8ac8a88d18f35b3abf26a068e00f1bfe  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-dst.c
! 72a60647af884967d4f8c6827ae0b985  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src-bwx.c
! f356f644fc8d6c4cba018d79d522940d  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned-src.c
! f06f5e57590b1802c03a4248e11443fd  gcc/testsuite/gcc.target/alpha/memcpy-si-unaligned.c
! 54127601a940369a8c9fdd0dd33a227f  gcc/testsuite/gcc.target/alpha/pr105209.c
! 0d6dec6cbaa719d7286bdd167ed23154  gcc/testsuite/gcc.target/alpha/pr106966.c
! ac58879de2270572c55dbb09bb436f09  gcc/testsuite/gcc.target/alpha/pr115297.c
! 9e04c04078e1516c4508a328952a1613  gcc/testsuite/gcc.target/alpha/pr115526.c
! 3965713656b4333ec5a70f9b6bfb241b  gcc/testsuite/gcc.target/alpha/pr19518.c
! 555b7b34d28b5310fe574ea479fd6777  gcc/testsuite/gcc.target/alpha/pr22093.c
! cec87758040a4ee362847035de5da740  gcc/testsuite/gcc.target/alpha/pr24178.c
! 88b69812790ee64df929981d4fc66adc  gcc/testsuite/gcc.target/alpha/pr39740.c
! 92817916dd8581799b793f989f76ee91  gcc/testsuite/gcc.target/alpha/pr42113.c
! 1a6eef0c2861bd4d7a1fd54782711cbe  gcc/testsuite/gcc.target/alpha/pr42269-1.c
! fc838760fba6229195eb2aef814554e1  gcc/testsuite/gcc.target/alpha/pr42448-1.c
! 0f87dfc09b74f80b44058dcf4850fb76  gcc/testsuite/gcc.target/alpha/pr42448-2.c
! c4a9c7f54d84a6f17c3538f028a4c623  gcc/testsuite/gcc.target/alpha/pr42774.c
! 39fa34d064a7702edea465ef325f5c08  gcc/testsuite/gcc.target/alpha/pr61586.c
! 0c78b2180e71bec65022dff3575a2ea3  gcc/testsuite/gcc.target/alpha/pr66140.c
! e8114bf07057af87112369eea1796416  gcc/testsuite/gcc.target/alpha/pr83628-1.c
! 10bdc8484dc8147f8671149094f5c364  gcc/testsuite/gcc.target/alpha/pr83628-2.c
! cd838883196ae3723e8870c164f580d5  gcc/testsuite/gcc.target/alpha/pr83628-3.c
! 7a9cc9a72c18ab7bbc675f1842a795cb  gcc/testsuite/gcc.target/alpha/pr86984.c
! fa0cbdad50252fc3351fccb792af2a36  gcc/testsuite/gcc.target/alpha/sqrt.c
! 91c85c19e67417a35461c1be33f5747c  gcc/testsuite/gcc.target/alpha/stb-bwa.c
! ff343bf007441d7ac31c47508ffb7674  gcc/testsuite/gcc.target/alpha/stb-bwx.c
! dd31ba3fbb34719d0b0fae5b8e334941  gcc/testsuite/gcc.target/alpha/stb.c
! 93291e268e2ee6da19f8dcfdd092d1b5  gcc/testsuite/gcc.target/alpha/stba-bwa.c
! bcb6295e50a30d43f55a215f4657bb1d  gcc/testsuite/gcc.target/alpha/stba-bwx.c
! c7b67971580380d43da8d3436dbe9c71  gcc/testsuite/gcc.target/alpha/stba.c
! 5f1c28228a71ba474ea817f9bcd56c47  gcc/testsuite/gcc.target/alpha/stlx0-safe-partial-bwx.c
! dce009597b7e6afa782fc1d3d0a9c0d2  gcc/testsuite/gcc.target/alpha/stlx0-safe-partial.c
! 5d366fca66b50ca6e69a0a0659817b65  gcc/testsuite/gcc.target/alpha/stlx0.c
! 0fcfe96a1fe67c8fb41ee94b685a0c37  gcc/testsuite/gcc.target/alpha/stqx0-safe-partial-bwx.c
! 5c70235fbf0885da05c799220d1af871  gcc/testsuite/gcc.target/alpha/stqx0-safe-partial.c
! 94fd59340a6f27ce7f6c75c1273c770f  gcc/testsuite/gcc.target/alpha/stqx0.c
! 20d5ed99dae62e8e505b6776cbf76c44  gcc/testsuite/gcc.target/alpha/stw-bwa.c
! 15c485c005b7e056889dde84dd6aecab  gcc/testsuite/gcc.target/alpha/stw-bwx.c
! c9607bceb607c7001de78ccdac400345  gcc/testsuite/gcc.target/alpha/stw.c
! e1d2c91f7479078a71e8263cde000adf  gcc/testsuite/gcc.target/alpha/stwa-bwa.c
! 8c941168987dd32e4cd0d433c7ca0d45  gcc/testsuite/gcc.target/alpha/stwa-bwx.c
! 73ac632d28b908bab0145adad8a01d8d  gcc/testsuite/gcc.target/alpha/stwa.c
! 0e8533c92f88e6cc296e2f088506ba64  gcc/testsuite/gcc.target/alpha/stwx0-bwx.c
! d27bc20634ae2037be57cae4c239fbc7  gcc/testsuite/gcc.target/alpha/stwx0-safe-partial-bwx.c
! 4d5004d0d97be9d37359e0522135319c  gcc/testsuite/gcc.target/alpha/stwx0-safe-partial.c
! d2562c5687e098f431cf34a44361c736  gcc/testsuite/gcc.target/alpha/stwx0.c
! 3139392eef5bb7f51c836ea56be96032  gcc/testsuite/gcc.target/alpha/target-bwx-1.c
! d3059895b5b128de821e9afffdfe67b4  gcc/testsuite/gcc.target/alpha/target-bwx-2.c
! 20207912294b72a96f7ddb869505a61b  gcc/testsuite/gcc.target/alpha/target-bwx-3.c
! 0f7f1d91fe181c36f05a5dc98d1233a3  gcc/testsuite/gcc.target/alpha/target-bwx-4.c
! 71a9f57ee917655c56e9c7c2c98ff9de  gcc/testsuite/gcc.target/alpha/target-cix-1.c
! d976739f6a685f80dd6490cd7f923f6c  gcc/testsuite/gcc.target/alpha/target-cix-2.c
! 72cc2b62d4b7a3f8397adba7702ce0b3  gcc/testsuite/gcc.target/alpha/target-cix-3.c
! c6d81fb5db9edaff09b738f5da5629a3  gcc/testsuite/gcc.target/alpha/target-cix-4.c
! 826854897f10ef389d3a45d4ddb63db5  gcc/testsuite/gcc.target/alpha/target-fix-1.c
! 1d4f521b5760dff711d8f27da7faf860  gcc/testsuite/gcc.target/alpha/target-fix-2.c
! 061a950a07f3b0c40efe4b0b655de0b3  gcc/testsuite/gcc.target/alpha/target-fix-3.c
! 8d2aca5a13e4b883befadc14e643590e  gcc/testsuite/gcc.target/alpha/target-fix-4.c
! 2fb2deba878606058387c9288212eb86  gcc/testsuite/gcc.target/alpha/target-max-1.c
! ebf2040b6c2e8ae5fd470d0d30d1f872  gcc/testsuite/gcc.target/alpha/target-max-2.c
! 2586d0c409e5ea1089ccb05f40fbc1d1  gcc/testsuite/gcc.target/alpha/target-max-3.c
! 8550a5b3c29ea1cc0e30bfe4a78741f9  gcc/testsuite/gcc.target/alpha/target-max-4.c
  96315e3201d2fa31fb4cbdf30fb2ba4d  gcc/testsuite/gcc.target/arc/abitest.S
  a125f0012bfc0fdad155c9b9bcc0f009  gcc/testsuite/gcc.target/arc/abitest.h
  de6da4a52a0859ffa9a053a8c13e86cc  gcc/testsuite/gcc.target/arc/add_f-combine.c
! 70e3acd1d792a5473c459dd257085501  gcc/testsuite/gcc.target/arc/add_n-combine.c
  a518cd4cde3320f6241ec570b444414f  gcc/testsuite/gcc.target/arc/adddi3-1.c
  e6be20952086b2b05a1879e41e70daac  gcc/testsuite/gcc.target/arc/and-cnst-size.c
! 2b0eb1505c76ed19ebe2841d68aa49d9  gcc/testsuite/gcc.target/arc/arc.exp
  3e772a00d37dc9ac78faa763e2dd058d  gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
  098e5a4b4da45b6c9a2530ba8820404c  gcc/testsuite/gcc.target/arc/ashldi3-1.c
  45b3f35fc118b7f9cbf151b8b3af0da9  gcc/testsuite/gcc.target/arc/ashrdi3-1.c
*************** f89c2e568e8ed0beb1990c230690688a  gcc/te
*** 64081,64087 ****
  57794d5d98911629416fe6bf16a609e0  gcc/testsuite/gcc.target/arc/interrupt-3.c
  b1b1e7ab7fe3d3c645620b9ae615c9f0  gcc/testsuite/gcc.target/arc/interrupt-4.c
  41556e3384ec1391e4db6025e1d48c8c  gcc/testsuite/gcc.target/arc/interrupt-5.c
! 49d68e1fffa52f59b4f27912a5e4b9ad  gcc/testsuite/gcc.target/arc/interrupt-6.c
  595889dfbd8d6ce827b81609c818446f  gcc/testsuite/gcc.target/arc/interrupt-7.c
  1f9bdc6c3e79e94c8b414ebf2b30eb44  gcc/testsuite/gcc.target/arc/interrupt-8.c
  154b4c12f5fe1b3324a2dfaf3374a4ed  gcc/testsuite/gcc.target/arc/interrupt-9.c
--- 68476,68482 ----
  57794d5d98911629416fe6bf16a609e0  gcc/testsuite/gcc.target/arc/interrupt-3.c
  b1b1e7ab7fe3d3c645620b9ae615c9f0  gcc/testsuite/gcc.target/arc/interrupt-4.c
  41556e3384ec1391e4db6025e1d48c8c  gcc/testsuite/gcc.target/arc/interrupt-5.c
! bd6c8a6ff9bf1c462661200ee183d683  gcc/testsuite/gcc.target/arc/interrupt-6.c
  595889dfbd8d6ce827b81609c818446f  gcc/testsuite/gcc.target/arc/interrupt-7.c
  1f9bdc6c3e79e94c8b414ebf2b30eb44  gcc/testsuite/gcc.target/arc/interrupt-8.c
  154b4c12f5fe1b3324a2dfaf3374a4ed  gcc/testsuite/gcc.target/arc/interrupt-9.c
*************** b1b1e7ab7fe3d3c645620b9ae615c9f0  gcc/te
*** 64092,64099 ****
  9618e65b2127e1c0f867fcc6cf914636  gcc/testsuite/gcc.target/arc/load-update.c
  f07f53a4dfd154c4babdb0ead46ccc61  gcc/testsuite/gcc.target/arc/long-calls.c
  e6fd4471e35965064bec7e019a343785  gcc/testsuite/gcc.target/arc/loop-1.c
! a8139c5c60e1336d6ba8fd0f2cd5b87e  gcc/testsuite/gcc.target/arc/loop-2.cpp
! be27a87a258a217b2d8f913dead8f81e  gcc/testsuite/gcc.target/arc/loop-3.c
  8ea24c8a496a1109505e25a0a0ec5c7d  gcc/testsuite/gcc.target/arc/loop-4.c
  5ba1cd91c81e3462387184a5487a64d0  gcc/testsuite/gcc.target/arc/loop-5.cpp
  24bd83c9d7ba11e5c048452de26834c9  gcc/testsuite/gcc.target/arc/loop-hazard-1.c
--- 68487,68494 ----
  9618e65b2127e1c0f867fcc6cf914636  gcc/testsuite/gcc.target/arc/load-update.c
  f07f53a4dfd154c4babdb0ead46ccc61  gcc/testsuite/gcc.target/arc/long-calls.c
  e6fd4471e35965064bec7e019a343785  gcc/testsuite/gcc.target/arc/loop-1.c
! 6acf3d0dcfbb22a93447154b9fb934b0  gcc/testsuite/gcc.target/arc/loop-2.cpp
! 0d43dff9fc91bae4d71084ed372077b0  gcc/testsuite/gcc.target/arc/loop-3.c
  8ea24c8a496a1109505e25a0a0ec5c7d  gcc/testsuite/gcc.target/arc/loop-4.c
  5ba1cd91c81e3462387184a5487a64d0  gcc/testsuite/gcc.target/arc/loop-5.cpp
  24bd83c9d7ba11e5c048452de26834c9  gcc/testsuite/gcc.target/arc/loop-hazard-1.c
*************** a6dcc28a587998a1e31f18709aa0f66c  gcc/te
*** 64152,64159 ****
  9cf31b5a40dc5c0daec2297181924d9c  gcc/testsuite/gcc.target/arc/pr89838.c
  9bcff0642ee893311d6172e5bdfbc249  gcc/testsuite/gcc.target/arc/pr9000674901.c
  de1d148fe0e6156b068d3be0465e4657  gcc/testsuite/gcc.target/arc/pr9001090948.c
! f46cb560bbbdee851a633b3344aff41c  gcc/testsuite/gcc.target/arc/pr9001107555.c
! 26d6771deea16e669ff0f9d35318bebb  gcc/testsuite/gcc.target/arc/pr9001184797.c
  964d69f0d471d0ca217307bec4ced3e2  gcc/testsuite/gcc.target/arc/pr9001191897.c
  58044230657ba04fdae8399146ddf054  gcc/testsuite/gcc.target/arc/pr9001195952.c
  3cdc4c1a7dc19dd061ef30712bd30cb8  gcc/testsuite/gcc.target/arc/rotldi3-1.c
--- 68547,68554 ----
  9cf31b5a40dc5c0daec2297181924d9c  gcc/testsuite/gcc.target/arc/pr89838.c
  9bcff0642ee893311d6172e5bdfbc249  gcc/testsuite/gcc.target/arc/pr9000674901.c
  de1d148fe0e6156b068d3be0465e4657  gcc/testsuite/gcc.target/arc/pr9001090948.c
! d81909f385d5e6afcb350f49ae7fc012  gcc/testsuite/gcc.target/arc/pr9001107555.c
! 90ef26e666c53cb376d01a9afcc8b431  gcc/testsuite/gcc.target/arc/pr9001184797.c
  964d69f0d471d0ca217307bec4ced3e2  gcc/testsuite/gcc.target/arc/pr9001191897.c
  58044230657ba04fdae8399146ddf054  gcc/testsuite/gcc.target/arc/pr9001195952.c
  3cdc4c1a7dc19dd061ef30712bd30cb8  gcc/testsuite/gcc.target/arc/rotldi3-1.c
*************** a5cf816ec09509d297751d31b4352ce6  gcc/te
*** 64173,64180 ****
  e5e848898853bc4d0fcffb1d5c59a37c  gcc/testsuite/gcc.target/arc/sub_n-combine.c
  aaa144694ae3a3b6b2658806c40c1a91  gcc/testsuite/gcc.target/arc/swap-1.c
  ec28a25ef30387cb543795a7494021bb  gcc/testsuite/gcc.target/arc/swap-2.c
! d98c22783b8b7aa60168331e19fb3c03  gcc/testsuite/gcc.target/arc/taux-1.c
! c519795c715b1ee38d8570576574b148  gcc/testsuite/gcc.target/arc/taux-2.c
  96d2f45c2e97c55bc84b472d2f3d175e  gcc/testsuite/gcc.target/arc/tdelay_slots.cpp
  efb2abd7da552d195e873185bd47bf27  gcc/testsuite/gcc.target/arc/tdelegitimize_addr.c
  f948016cf876549e5e3dcd87acd07370  gcc/testsuite/gcc.target/arc/tls-1.c
--- 68568,68575 ----
  e5e848898853bc4d0fcffb1d5c59a37c  gcc/testsuite/gcc.target/arc/sub_n-combine.c
  aaa144694ae3a3b6b2658806c40c1a91  gcc/testsuite/gcc.target/arc/swap-1.c
  ec28a25ef30387cb543795a7494021bb  gcc/testsuite/gcc.target/arc/swap-2.c
! 3f882b4f558f296d8870466414943335  gcc/testsuite/gcc.target/arc/taux-1.c
! 90a2b4770904cd73fb0598571f274cd1  gcc/testsuite/gcc.target/arc/taux-2.c
  96d2f45c2e97c55bc84b472d2f3d175e  gcc/testsuite/gcc.target/arc/tdelay_slots.cpp
  efb2abd7da552d195e873185bd47bf27  gcc/testsuite/gcc.target/arc/tdelegitimize_addr.c
  f948016cf876549e5e3dcd87acd07370  gcc/testsuite/gcc.target/arc/tls-1.c
*************** a73e42e3a4b9da241314f90464930931  gcc/te
*** 64208,64219 ****
  ef9f57aa4598e8037d2f89e8b57c2cae  gcc/testsuite/gcc.target/arc/va_args-2.c
  4c35fe81dd416380e44e7c3c717c322f  gcc/testsuite/gcc.target/arc/va_args-3.c
  beda6141f6d81202e243e09ed98a701c  gcc/testsuite/gcc.target/arm/20030909-1.c
! 8ec1a0a7bc3aef6c8b9a93db28a6dc0f  gcc/testsuite/gcc.target/arm/20031108-1.c
  d059b2e33fe3944d4609bef74df38413  gcc/testsuite/gcc.target/arm/20051215-1.c
  678e95fcf9ea10b2ad5f97a249136cdb  gcc/testsuite/gcc.target/arm/20090811-1.c
  3246666ab1db4fd6160f12106dd2fea4  gcc/testsuite/gcc.target/arm/20131120.c
  99d362e2051f9f2bf0e7ff2ec49b0df7  gcc/testsuite/gcc.target/arm/README.advsimd-intrinsics
! bac5dd23e090e088691fc23f20daa60e  gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp
  dce658d805b258027bde980a1d76a50d  gcc/testsuite/gcc.target/arm/aapcs/abitest.h
  96bc5ca2eaed6da1d7e22b1c0e28317d  gcc/testsuite/gcc.target/arm/aapcs/align1.c
  1ad40fcc9ea2067b6fa8508030c2f1d4  gcc/testsuite/gcc.target/arm/aapcs/align2.c
--- 68603,68614 ----
  ef9f57aa4598e8037d2f89e8b57c2cae  gcc/testsuite/gcc.target/arc/va_args-2.c
  4c35fe81dd416380e44e7c3c717c322f  gcc/testsuite/gcc.target/arc/va_args-3.c
  beda6141f6d81202e243e09ed98a701c  gcc/testsuite/gcc.target/arm/20030909-1.c
! dfa13b0f471b4eb3216f017be28226d9  gcc/testsuite/gcc.target/arm/20031108-1.c
  d059b2e33fe3944d4609bef74df38413  gcc/testsuite/gcc.target/arm/20051215-1.c
  678e95fcf9ea10b2ad5f97a249136cdb  gcc/testsuite/gcc.target/arm/20090811-1.c
  3246666ab1db4fd6160f12106dd2fea4  gcc/testsuite/gcc.target/arm/20131120.c
  99d362e2051f9f2bf0e7ff2ec49b0df7  gcc/testsuite/gcc.target/arm/README.advsimd-intrinsics
! 7fa8cedb3f37d3e09ac4c2fc24c25fbd  gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp
  dce658d805b258027bde980a1d76a50d  gcc/testsuite/gcc.target/arm/aapcs/abitest.h
  96bc5ca2eaed6da1d7e22b1c0e28317d  gcc/testsuite/gcc.target/arm/aapcs/align1.c
  1ad40fcc9ea2067b6fa8508030c2f1d4  gcc/testsuite/gcc.target/arm/aapcs/align2.c
*************** b03843d0bfb6128e2d6e634be21c3021  gcc/te
*** 64268,64276 ****
  e5b7374e291244b801b4c292504d3f80  gcc/testsuite/gcc.target/arm/aapcs/vfp7.c
  3aa1f9e592cb3a6a4181176724ae2fa8  gcc/testsuite/gcc.target/arm/aapcs/vfp8.c
  37ac30daf2fa61e7f2d97c17c39fddfe  gcc/testsuite/gcc.target/arm/aapcs/vfp9.c
! 1d41f4acfc14a50fddf06d164e5b6778  gcc/testsuite/gcc.target/arm/acle/acle.exp
  658e0707622d22620aa765f8608c22db  gcc/testsuite/gcc.target/arm/acle/cde-errors.c
! 5ae0b75d3edc7d5441f595fec368443c  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-1.c
  778409d191a473e3d1b5c897c9402030  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c
  94bcf4eb76f1c5723627b1baedcdc159  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-3.c
  499b585a2e76d2f641d42e0683c31f90  gcc/testsuite/gcc.target/arm/acle/cde-mve-full-assembly.c
--- 68663,68671 ----
  e5b7374e291244b801b4c292504d3f80  gcc/testsuite/gcc.target/arm/aapcs/vfp7.c
  3aa1f9e592cb3a6a4181176724ae2fa8  gcc/testsuite/gcc.target/arm/aapcs/vfp8.c
  37ac30daf2fa61e7f2d97c17c39fddfe  gcc/testsuite/gcc.target/arm/aapcs/vfp9.c
! 83a19cb67986a7a466342c045a0b6c55  gcc/testsuite/gcc.target/arm/acle/acle.exp
  658e0707622d22620aa765f8608c22db  gcc/testsuite/gcc.target/arm/acle/cde-errors.c
! fc941df162f28344c5bb5989e9af1ce5  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-1.c
  778409d191a473e3d1b5c897c9402030  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c
  94bcf4eb76f1c5723627b1baedcdc159  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-3.c
  499b585a2e76d2f641d42e0683c31f90  gcc/testsuite/gcc.target/arm/acle/cde-mve-full-assembly.c
*************** a7f2e5349eb3677d4e532197beb261b8  gcc/te
*** 64289,64297 ****
  70d3af1373b3a49fb1912dca6e377274  gcc/testsuite/gcc.target/arm/acle/crc32d.c
  21b20cecbc6689dc6367a96e210b956e  gcc/testsuite/gcc.target/arm/acle/crc32h.c
  2d7c8358817ecb57e689202c2e4f2dd6  gcc/testsuite/gcc.target/arm/acle/crc32w.c
! 7625090916298326fe50051cd11dd95b  gcc/testsuite/gcc.target/arm/acle/crc_hf_1.c
  93f424360e45e9fa22d1c95f2c33829e  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
! 65e253803e564d2d4b3251980c3c929c  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
  d477c51bad40b0d53e197494787ca836  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
  9daa2dd494117856691db24b535770e4  gcc/testsuite/gcc.target/arm/acle/data-intrinsics.c
  7009c6abfd18e2667a2c733ef4c48096  gcc/testsuite/gcc.target/arm/acle/dsp_arith.c
--- 68684,68692 ----
  70d3af1373b3a49fb1912dca6e377274  gcc/testsuite/gcc.target/arm/acle/crc32d.c
  21b20cecbc6689dc6367a96e210b956e  gcc/testsuite/gcc.target/arm/acle/crc32h.c
  2d7c8358817ecb57e689202c2e4f2dd6  gcc/testsuite/gcc.target/arm/acle/crc32w.c
! ddecdc988c39694937cb19d27e50f347  gcc/testsuite/gcc.target/arm/acle/crc_hf_1.c
  93f424360e45e9fa22d1c95f2c33829e  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
! 195443764b074330167691bc0e2a827d  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
  d477c51bad40b0d53e197494787ca836  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
  9daa2dd494117856691db24b535770e4  gcc/testsuite/gcc.target/arm/acle/data-intrinsics.c
  7009c6abfd18e2667a2c733ef4c48096  gcc/testsuite/gcc.target/arm/acle/dsp_arith.c
*************** eee783c37d90eef12bf5d89dd9e9f34c  gcc/te
*** 64307,64324 ****
  1089abf6533526d82e14c2c80d726483  gcc/testsuite/gcc.target/arm/acle/mrc2.c
  e66b3819f1cc1c13b66c38b83972f3a2  gcc/testsuite/gcc.target/arm/acle/mrrc.c
  5280b32decaf5622a9f85f834e828bdf  gcc/testsuite/gcc.target/arm/acle/mrrc2.c
! 6f740e3440a96131c11b5113864a1398  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c
! f65741e127a585964d0a2540cba9fa79  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c
! 6941afdbe9bf1b67ecb444478ac28991  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
! 336eaaa6b59a3fe03826de0277b51fbc  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
! 2fed58fe92afda390e1d0b2a5c1f0d3e  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c
! 1c61e241c3a55069d019bffd2ec1425a  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c
! b72139ce3705641b14d00721bf82f8c0  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c
! 61b5110c4dedea0e52dacebc4015442b  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c
! 8557fc8e2712b7c69c62ae717dd4ae2d  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c
! ab5b78d0b6e3b4b4f36e001d8e9c9eea  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c
! f4d3b3d5d2d0a91b76e36336c5f4ea7f  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-8.c
! ee32b4af80596c42b02a378ff2e2b698  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c
  ee12e8ca5824715b40bd53e5bd847687  gcc/testsuite/gcc.target/arm/acle/pr100856.c
  c351089daa0fb41b19888a703d2c10c8  gcc/testsuite/gcc.target/arm/acle/sat_no_smlatb.c
  52edc26e05c5a7011e01e793b188666a  gcc/testsuite/gcc.target/arm/acle/saturation.c
--- 68702,68719 ----
  1089abf6533526d82e14c2c80d726483  gcc/testsuite/gcc.target/arm/acle/mrc2.c
  e66b3819f1cc1c13b66c38b83972f3a2  gcc/testsuite/gcc.target/arm/acle/mrrc.c
  5280b32decaf5622a9f85f834e828bdf  gcc/testsuite/gcc.target/arm/acle/mrrc2.c
! 861a159d41b35397c6507e6d28db94f5  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c
! 000e018d4a9cef746da9ce68f812b5d8  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c
! 3b4d3eb19280d0960f628378b29198de  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
! d5981f39390624fd3a525022a55edf61  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
! ad765e8127de919778260e74eb2f767c  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c
! f2a5ad411f636671016e7bd6ad858b09  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c
! 52f2961b205ad36b9f5780c5266cc559  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c
! 922787b4048677cc75720541af36270f  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c
! 4f8fa6f0bb30ab6cb5cda7b63c9b6ddd  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c
! 119fac00c9cdedc747c4ced4e3653f5f  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c
! 2a272a801d76ade5f0e9541a7301f141  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-8.c
! 1b9ba108f4bbe867e8a9497dac08c3b5  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c
  ee12e8ca5824715b40bd53e5bd847687  gcc/testsuite/gcc.target/arm/acle/pr100856.c
  c351089daa0fb41b19888a703d2c10c8  gcc/testsuite/gcc.target/arm/acle/sat_no_smlatb.c
  52edc26e05c5a7011e01e793b188666a  gcc/testsuite/gcc.target/arm/acle/saturation.c
*************** dfc4bf650d099d2aff3f9e5f3d4b62ac  gcc/te
*** 64339,64362 ****
  8acda08d68bcc11cfdd01eb0a1ed850d  gcc/testsuite/gcc.target/arm/anddi_notdi-1.c
  2de4b776a367481e41c80f0bf35fc6e4  gcc/testsuite/gcc.target/arm/arm-soft-strd-even.c
  ce4273427c0d13a68dcf16c846001d0b  gcc/testsuite/gcc.target/arm/arm-switchstatement.c
! 124ad7f3b9e28e613823688852cc363b  gcc/testsuite/gcc.target/arm/arm.exp
  5810c65774cd6173ff73a4ca6f3b0562  gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
  e0b358414d3e86102d32b626de2fbc40  gcc/testsuite/gcc.target/arm/armv8-sync-comp-swap.c
  0434c51f353f1957fce79533a348ee29  gcc/testsuite/gcc.target/arm/armv8-sync-op-acquire.c
  70d2176f2f14d87a3e73331abb72a491  gcc/testsuite/gcc.target/arm/armv8-sync-op-full.c
  32fe7261a03a9e52888cbdcc42aea743  gcc/testsuite/gcc.target/arm/armv8-sync-op-release.c
! 60cd757a042c5055dd2c0913078a6e95  gcc/testsuite/gcc.target/arm/armv8_1m-fp16-move-1.c
! 2244351830cf5774e6f0144b32774c83  gcc/testsuite/gcc.target/arm/armv8_1m-fp32-move-1.c
! ae9c194b5b2bab609b607ca64a11d1c4  gcc/testsuite/gcc.target/arm/armv8_1m-fp64-move-1.c
  6d693ceeceae55f1fff94a935992216e  gcc/testsuite/gcc.target/arm/armv8_1m-shift-imm-1.c
  c6c1c759a610556eca59987a77084f45  gcc/testsuite/gcc.target/arm/armv8_1m-shift-reg-1.c
  53e11cdab71cca17d6fdaf4ed9224a30  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
! e760d8a00f0e4b4ceedce756dc61f6c1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
  2f54b8d253156a2be1577d30ce773f07  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  8411d0e77a0611b1b9aef23030254fbe  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
! dc2445fc2ce3b9779058431b1cfb377b  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
  992185bff8a637178d6613bb76a8369c  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-3.c
  8f88cdcfdc86a7068680b15dfe795b54  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-1.c
  4bad0a804fdff0fae8f92991ef639b11  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-2.c
--- 68734,68757 ----
  8acda08d68bcc11cfdd01eb0a1ed850d  gcc/testsuite/gcc.target/arm/anddi_notdi-1.c
  2de4b776a367481e41c80f0bf35fc6e4  gcc/testsuite/gcc.target/arm/arm-soft-strd-even.c
  ce4273427c0d13a68dcf16c846001d0b  gcc/testsuite/gcc.target/arm/arm-switchstatement.c
! d9325efd4c842ea6dbc64798a9b8cddb  gcc/testsuite/gcc.target/arm/arm.exp
  5810c65774cd6173ff73a4ca6f3b0562  gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
  e0b358414d3e86102d32b626de2fbc40  gcc/testsuite/gcc.target/arm/armv8-sync-comp-swap.c
  0434c51f353f1957fce79533a348ee29  gcc/testsuite/gcc.target/arm/armv8-sync-op-acquire.c
  70d2176f2f14d87a3e73331abb72a491  gcc/testsuite/gcc.target/arm/armv8-sync-op-full.c
  32fe7261a03a9e52888cbdcc42aea743  gcc/testsuite/gcc.target/arm/armv8-sync-op-release.c
! af477b45fef79dbbc71ad2f48c3c93c9  gcc/testsuite/gcc.target/arm/armv8_1m-fp16-move-1.c
! b84f1f7cf1693c2d82dffe64a42da3b4  gcc/testsuite/gcc.target/arm/armv8_1m-fp32-move-1.c
! 3df621a2a6702666801f613e2c1e9223  gcc/testsuite/gcc.target/arm/armv8_1m-fp64-move-1.c
  6d693ceeceae55f1fff94a935992216e  gcc/testsuite/gcc.target/arm/armv8_1m-shift-imm-1.c
  c6c1c759a610556eca59987a77084f45  gcc/testsuite/gcc.target/arm/armv8_1m-shift-reg-1.c
  53e11cdab71cca17d6fdaf4ed9224a30  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
! 6385d3494ed7d5dcaa3d33b79fcfc366  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
  2f54b8d253156a2be1577d30ce773f07  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  8411d0e77a0611b1b9aef23030254fbe  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
! fa5db58aee2ae5b90cd3abd3c09395cf  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
  992185bff8a637178d6613bb76a8369c  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-3.c
  8f88cdcfdc86a7068680b15dfe795b54  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-1.c
  4bad0a804fdff0fae8f92991ef639b11  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-2.c
*************** eced09044f2e63efaea7b67cc2b8701d  gcc/te
*** 64416,64426 ****
  7f9cac5a33fedda7cbe7dbfa7091e3c8  gcc/testsuite/gcc.target/arm/attr-align3.c
  0b6995d2e1fe92d440e02b598715ac74  gcc/testsuite/gcc.target/arm/attr-crypto.c
  cf7c684a14b2daa8b876c512e3599582  gcc/testsuite/gcc.target/arm/attr-fp16-arith-1.c
! d5f4f823ea6fb9bc4c6e9ccba5acdb91  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
! c462d71e23fb07062a21f54c54d09271  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
! 503e1413bdd5662d2c58a37bf84814b7  gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
  4a4bc58114ce671d72a5c4665876477b  gcc/testsuite/gcc.target/arm/attr-neon.c
! f23d0119800a017079c65170401ab2c1  gcc/testsuite/gcc.target/arm/attr-neon2.c
  4bbb4aad24c231d5708eee737823fd9b  gcc/testsuite/gcc.target/arm/attr-neon3.c
  2fc3bc36f2a6337c4305bded55708046  gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c
  ba6a1a17734115428b72a71a491695fb  gcc/testsuite/gcc.target/arm/attr_arm-err.c
--- 68811,68821 ----
  7f9cac5a33fedda7cbe7dbfa7091e3c8  gcc/testsuite/gcc.target/arm/attr-align3.c
  0b6995d2e1fe92d440e02b598715ac74  gcc/testsuite/gcc.target/arm/attr-crypto.c
  cf7c684a14b2daa8b876c512e3599582  gcc/testsuite/gcc.target/arm/attr-fp16-arith-1.c
! 37e63ca085c603a23abbe47e7e33670f  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
! 4c6742e1621471d0da9847b04bb0bf7c  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
! acd3ba7ad198c3632b99d6952c13e401  gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
  4a4bc58114ce671d72a5c4665876477b  gcc/testsuite/gcc.target/arm/attr-neon.c
! 67b5aed3b4a2d51185183c9cb91e9e60  gcc/testsuite/gcc.target/arm/attr-neon2.c
  4bbb4aad24c231d5708eee737823fd9b  gcc/testsuite/gcc.target/arm/attr-neon3.c
  2fc3bc36f2a6337c4305bded55708046  gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c
  ba6a1a17734115428b72a71a491695fb  gcc/testsuite/gcc.target/arm/attr_arm-err.c
*************** ba6a1a17734115428b72a71a491695fb  gcc/te
*** 64430,64441 ****
  b623510ec705d6b7193e2c0e2a0f5f94  gcc/testsuite/gcc.target/arm/attr_thumb.c
  ddf5f8837478e164c620abb8c7ac47ca  gcc/testsuite/gcc.target/arm/bf16_dup.c
  6e41b96954872461a57e818eb21c53b9  gcc/testsuite/gcc.target/arm/bf16_reinterpret.c
! 470031179d5bd9d9930fa2618a59a537  gcc/testsuite/gcc.target/arm/bfloat16_scalar_1_1.c
! 03bcb9e9946562554a279d8593ff1440  gcc/testsuite/gcc.target/arm/bfloat16_scalar_1_2.c
! 3a23a33f3b07abbabd7c1da736521c60  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_1.c
! 7416b080d5cf8204583190b0750abcdf  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_2.c
! 212bb298ddd1b8070ef221976c821d59  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_1.c
! 533fcce74b96ed545cfaddb3fd6c0f50  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_2.c
  ebd9a7e3125d7b51692987388532dfb3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_4.c
  7f6fca1944d2c355117b62adc96d2e90  gcc/testsuite/gcc.target/arm/bfloat16_scalar_typecheck.c
  9d566a8c25c9173357e8d1701a9c9181  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_1.c
--- 68825,68836 ----
  b623510ec705d6b7193e2c0e2a0f5f94  gcc/testsuite/gcc.target/arm/attr_thumb.c
  ddf5f8837478e164c620abb8c7ac47ca  gcc/testsuite/gcc.target/arm/bf16_dup.c
  6e41b96954872461a57e818eb21c53b9  gcc/testsuite/gcc.target/arm/bf16_reinterpret.c
! 16b8dfe53a0a7665d068bc910c72ced3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_1_1.c
! bd5ec5e2db0882814e63c4239cc0bf29  gcc/testsuite/gcc.target/arm/bfloat16_scalar_1_2.c
! 0c2940f05ea77e9f0bdcba867434e70a  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_1.c
! cb038f195fa6428125fcfa17e4b0cfb4  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_2.c
! 16b8dfe53a0a7665d068bc910c72ced3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_1.c
! bd5ec5e2db0882814e63c4239cc0bf29  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_2.c
  ebd9a7e3125d7b51692987388532dfb3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_4.c
  7f6fca1944d2c355117b62adc96d2e90  gcc/testsuite/gcc.target/arm/bfloat16_scalar_typecheck.c
  9d566a8c25c9173357e8d1701a9c9181  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_1.c
*************** fd023d3635562de2ff5e0ed5260d21d5  gcc/te
*** 64452,64459 ****
  8a63eeba730368096509797a3284dc46  gcc/testsuite/gcc.target/arm/bics_4.c
  0fd8a665cdc25d00e7cd297ae567a70f  gcc/testsuite/gcc.target/arm/bics_5.c
  8689ee742289887539d8fd99b8a4ae0b  gcc/testsuite/gcc.target/arm/big-endian-subreg.c
! 8c6582c78364705bc61eb152846b1036  gcc/testsuite/gcc.target/arm/bti-1.c
! abb9e91f15aee3a63c2d663676de29ac  gcc/testsuite/gcc.target/arm/bti-2.c
  ca89a1298ee462833d5b24dc0d298138  gcc/testsuite/gcc.target/arm/builtin-bswap-1.c
  2b930ef60b0ed29af3cf92e86d988143  gcc/testsuite/gcc.target/arm/builtin-bswap-2.c
  10d51024d72d319e9ad21f369ba44e39  gcc/testsuite/gcc.target/arm/builtin-bswap.x
--- 68847,68854 ----
  8a63eeba730368096509797a3284dc46  gcc/testsuite/gcc.target/arm/bics_4.c
  0fd8a665cdc25d00e7cd297ae567a70f  gcc/testsuite/gcc.target/arm/bics_5.c
  8689ee742289887539d8fd99b8a4ae0b  gcc/testsuite/gcc.target/arm/big-endian-subreg.c
! 094afd5c4c9cad04d6d838f79b2852c5  gcc/testsuite/gcc.target/arm/bti-1.c
! 768c605efeb7679aeb4c0445a2b35c21  gcc/testsuite/gcc.target/arm/bti-2.c
  ca89a1298ee462833d5b24dc0d298138  gcc/testsuite/gcc.target/arm/builtin-bswap-1.c
  2b930ef60b0ed29af3cf92e86d988143  gcc/testsuite/gcc.target/arm/builtin-bswap-2.c
  10d51024d72d319e9ad21f369ba44e39  gcc/testsuite/gcc.target/arm/builtin-bswap.x
*************** cbb6c1dd0bf40d8c3631372eeeb23003  gcc/te
*** 64502,64510 ****
  ebdb15be89bef0e9c175a92e85f05897  gcc/testsuite/gcc.target/arm/cmse/cmse-12.c
  345628b6955bb78f99657e95ad7a6b53  gcc/testsuite/gcc.target/arm/cmse/cmse-13.x
  4e543347c53c9c12e6cbcaad2b4c1199  gcc/testsuite/gcc.target/arm/cmse/cmse-14.c
! 02f77ac4381e8044f4e0fb6975f1881b  gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
  5ff0a15a5a399d7d0fafcad196691899  gcc/testsuite/gcc.target/arm/cmse/cmse-16.c
! da139a3f1e88bf3b7034931f46a04110  gcc/testsuite/gcc.target/arm/cmse/cmse-17.c
  a0cc973b6770567d9ae9d0d7e19290d3  gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
  d307e00dde7714d2f353a08b08451b57  gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c
  aee7e08137af9ad5cb0dc780a0c319de  gcc/testsuite/gcc.target/arm/cmse/cmse-20.c
--- 68897,68905 ----
  ebdb15be89bef0e9c175a92e85f05897  gcc/testsuite/gcc.target/arm/cmse/cmse-12.c
  345628b6955bb78f99657e95ad7a6b53  gcc/testsuite/gcc.target/arm/cmse/cmse-13.x
  4e543347c53c9c12e6cbcaad2b4c1199  gcc/testsuite/gcc.target/arm/cmse/cmse-14.c
! 025ddb61ae05cb8eff987c8cec961244  gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
  5ff0a15a5a399d7d0fafcad196691899  gcc/testsuite/gcc.target/arm/cmse/cmse-16.c
! ec0c70b5899b431b52c53aba7a25843f  gcc/testsuite/gcc.target/arm/cmse/cmse-17.c
  a0cc973b6770567d9ae9d0d7e19290d3  gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
  d307e00dde7714d2f353a08b08451b57  gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c
  aee7e08137af9ad5cb0dc780a0c319de  gcc/testsuite/gcc.target/arm/cmse/cmse-20.c
*************** ce1fe2059d8e263b0f3d889cb1392892  gcc/te
*** 64514,64558 ****
  679443fc734534194407169158890899  gcc/testsuite/gcc.target/arm/cmse/cmse-7.x
  a29c7dfe0255ba24ca52aa9293640971  gcc/testsuite/gcc.target/arm/cmse/cmse-8.x
  ce946170746cf737bca71ec699014fef  gcc/testsuite/gcc.target/arm/cmse/cmse-9.c
! 8f64bcb2f75fa93f7207ef4f9b39d06e  gcc/testsuite/gcc.target/arm/cmse/cmse.exp
  2ca1bc1b7709560cb23249102afd2dd8  gcc/testsuite/gcc.target/arm/cmse/extend-param.c
  e37af808fb07f04f12fd1323772cfb18  gcc/testsuite/gcc.target/arm/cmse/extend-return.c
! 6e9c9a777c4a333e2bdba95bdaf23364  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
  c540adef0c0a8fc3e8e03fee5f712683  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-5.c
! 727ae9b55594654191b60afa67ad5094  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
  33473df8e3af625e5a299b71c1671671  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-7.c
! e29f4aa8f8700e9f4985c14024d0c2e9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c
  6ab0eb2f9a5626bc24822284167736ca  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-9.c
! 20e24e76c36b400ea1e92bf3db7423e9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
  7d595d2e8ecb680aefd7c3ebe6701880  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-13.c
! cecbc59052919a0501942834f0503094  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c
  2730487351a13ed57dfe90f764a96f51  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-7.c
  3ce5a776ef69be85af5527921fcea4a9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-8.c
  cc493670dd81332714420ec2e51f11f1  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-13.c
! 77a29c2707053196af7b8ecc16d23b52  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c
  e9afe97825e8d8a0ad0f1d1ee3eba768  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-7.c
  ff736441775234283ea7c6b9f1742b98  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-8.c
  6815b34847bb8c1d4aaf45cc5344b7b6  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13.c
  db19589d0c4e84247117453be17a73ce  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c
! b1a9cf3bbbd541dee53394308dbecae2  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c
  6265d3dbb6378f6c5f9f2c8a431b93db  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7.c
  f48c6bc5f8199665d88044989256a6da  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c
  c42fcbcdb666110e68869e154ab77224  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8.c
  3aab495c2f4a1431d76eac0d78dfa603  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c
! 103278679c354a109f1d358eddb30859  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c
  162060f488114726d1b43a3eedb8496a  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7.c
  5dc87c9817f7467ef3df83c11e8e53d0  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c
  09db0263f84eba86f3cc3bb4b054f575  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8.c
  02d3d6d6d2419da3eaddb692c3889bf1  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c
  866f1d66352909acbf56cea6bc9ad83c  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13.c
  6f2a81b28babe75e93ec80bef4a27d7f  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c
! 128f22a56da604008370c39435f4c275  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c
  b67dc35cb041e665b0436a8b3c1dbbf9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7.c
  627b693e4e8a053229d1b802e1cbed82  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c
  3ecfaa9db2870273dd05cd02a2bd597b  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8.c
  df829d6ec7fb9540fcbd66368f0fb17b  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c
  539f0378e45653ff2109841bd4bccc87  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-1.c
! 895e0fb552647a0516559c1bf30963e5  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
  ab4a6ad246ee43f02f3290436cb16703  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-4.c
  55c0ab93e6f163c8a765c565d45a8deb  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-5.c
  10fb3486026e454edbdbe45ab498982a  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-6.c
--- 68909,68953 ----
  679443fc734534194407169158890899  gcc/testsuite/gcc.target/arm/cmse/cmse-7.x
  a29c7dfe0255ba24ca52aa9293640971  gcc/testsuite/gcc.target/arm/cmse/cmse-8.x
  ce946170746cf737bca71ec699014fef  gcc/testsuite/gcc.target/arm/cmse/cmse-9.c
! 138fd4387f5d86540f0d2ce4912cadf3  gcc/testsuite/gcc.target/arm/cmse/cmse.exp
  2ca1bc1b7709560cb23249102afd2dd8  gcc/testsuite/gcc.target/arm/cmse/extend-param.c
  e37af808fb07f04f12fd1323772cfb18  gcc/testsuite/gcc.target/arm/cmse/extend-return.c
! a8bb043b07fb36a2a3c5b8fcfaba17db  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
  c540adef0c0a8fc3e8e03fee5f712683  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-5.c
! 6664c9e504f30dfa2a269259a0ddef8d  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
  33473df8e3af625e5a299b71c1671671  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-7.c
! 5bf7f69cc8784e2c64f5ec54dbb4bea5  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c
  6ab0eb2f9a5626bc24822284167736ca  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-9.c
! c1ffca9652adc4771357fe5c3a340c55  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
  7d595d2e8ecb680aefd7c3ebe6701880  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-13.c
! 6eeb63d12f00fbe0cf75024a4e187db6  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c
  2730487351a13ed57dfe90f764a96f51  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-7.c
  3ce5a776ef69be85af5527921fcea4a9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-8.c
  cc493670dd81332714420ec2e51f11f1  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-13.c
! 8750761ab08b02f7cccb1d0c76399ca2  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c
  e9afe97825e8d8a0ad0f1d1ee3eba768  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-7.c
  ff736441775234283ea7c6b9f1742b98  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-8.c
  6815b34847bb8c1d4aaf45cc5344b7b6  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13.c
  db19589d0c4e84247117453be17a73ce  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c
! 38a15c8e9bdad3ba3dcf1b99ac9421aa  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c
  6265d3dbb6378f6c5f9f2c8a431b93db  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7.c
  f48c6bc5f8199665d88044989256a6da  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c
  c42fcbcdb666110e68869e154ab77224  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8.c
  3aab495c2f4a1431d76eac0d78dfa603  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c
! 41ae7d4ea8fbbc23b7d97d7a012b68eb  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c
  162060f488114726d1b43a3eedb8496a  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7.c
  5dc87c9817f7467ef3df83c11e8e53d0  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c
  09db0263f84eba86f3cc3bb4b054f575  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8.c
  02d3d6d6d2419da3eaddb692c3889bf1  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c
  866f1d66352909acbf56cea6bc9ad83c  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13.c
  6f2a81b28babe75e93ec80bef4a27d7f  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c
! 0c13467daf5afdbfa4dcc52f8770df63  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c
  b67dc35cb041e665b0436a8b3c1dbbf9  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7.c
  627b693e4e8a053229d1b802e1cbed82  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c
  3ecfaa9db2870273dd05cd02a2bd597b  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8.c
  df829d6ec7fb9540fcbd66368f0fb17b  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c
  539f0378e45653ff2109841bd4bccc87  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-1.c
! f0d9b39107e4de1b049dca00b29a58d2  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
  ab4a6ad246ee43f02f3290436cb16703  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-4.c
  55c0ab93e6f163c8a765c565d45a8deb  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-5.c
  10fb3486026e454edbdbe45ab498982a  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-6.c
*************** c7d704f010f2bc47f7b2e4077896df35  gcc/te
*** 64561,64582 ****
  328e1955cca78b6c1991e9a5db93367c  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-9.c
  a92932024af16371e8924c3430f4aec1  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-and-union.c
  334f733020d7e0fc71866e9ec6473e6e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-13.c
! 39c68891ecc55c8a8791b10cab7c4cc4  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c
  300769064d233c8269f9ea18517371f7  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-7.c
  ad08dcdca8c7bbbff0ca09079d3e5703  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-8.c
  f32c9a4cdef7ef83fecd67301b456a9d  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-13.c
! bc64734990861b52c99178e94fabcfea  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
  97787bd2fcb796ec7696f02f537bd431  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-7.c
  72eb1b8dae3f9292128d561e3e35e163  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-8.c
  c10682b0d6dd961577656c6341f1e957  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-13.c
! b6716f4c91e6c72f6f628e2078da255a  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
  d0badae79ad18b1207053d6aee06d2e2  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-7.c
  c706b608cdc03272d5b4c56b2eff0aec  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-8.c
! 6fda9febd270c75dd0895eb1302c0ba4  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
  81bddd3d228a9a9ca4be6b55076773e3  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-7.c
  5085fb86dd895243667d8656113e2d93  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-8.c
  cb1f8a28400b5e5ea5ea510c8a09258b  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-13.c
! 2b21ee7e7b82d819aa779815baabb09f  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
  5d78ce9c80e35effb58bd70ff8e1c041  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-7.c
  7c237776495bc9451d7b94ec36068f56  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-8.c
  cb60008d5e98eeaf45a18dec48047164  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-1.c
--- 68956,68977 ----
  328e1955cca78b6c1991e9a5db93367c  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-9.c
  a92932024af16371e8924c3430f4aec1  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-and-union.c
  334f733020d7e0fc71866e9ec6473e6e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-13.c
! 87c2a2d6008de274165de3aa5bbd336d  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c
  300769064d233c8269f9ea18517371f7  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-7.c
  ad08dcdca8c7bbbff0ca09079d3e5703  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-8.c
  f32c9a4cdef7ef83fecd67301b456a9d  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-13.c
! ac653d1f3cfc80136bdb76146e93f54e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
  97787bd2fcb796ec7696f02f537bd431  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-7.c
  72eb1b8dae3f9292128d561e3e35e163  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-8.c
  c10682b0d6dd961577656c6341f1e957  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-13.c
! c55c869b20436c24bdd02f85fe70b11d  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
  d0badae79ad18b1207053d6aee06d2e2  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-7.c
  c706b608cdc03272d5b4c56b2eff0aec  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-8.c
! 5f2c7d5d20375a6df18e5baba15b33c2  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
  81bddd3d228a9a9ca4be6b55076773e3  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-7.c
  5085fb86dd895243667d8656113e2d93  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-8.c
  cb1f8a28400b5e5ea5ea510c8a09258b  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-13.c
! 71cacd1a0ea9cb2d80cab5df1e00d276  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
  5d78ce9c80e35effb58bd70ff8e1c041  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-7.c
  7c237776495bc9451d7b94ec36068f56  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-8.c
  cb60008d5e98eeaf45a18dec48047164  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-1.c
*************** dc937ad7bdd38e233f8eb2871fbab365  gcc/te
*** 64594,64609 ****
  ea5c06143f89f8b3c26a3c80f255d03b  gcc/testsuite/gcc.target/arm/condarith_restrict_it.c
  702468e7cb2029f03eaac95e5eea0533  gcc/testsuite/gcc.target/arm/constant-pool.c
  a15062bec8f5e7f6b88a19f23efae654  gcc/testsuite/gcc.target/arm/copysign_softfloat_1.c
! c46d86d65d2d64a7a88fc4a4918fd806  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c
! d68dd2fc1fc4947df53d60137d04cc39  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c
! b3f3ff81dd0095a51c242338491d533e  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c
! 16bc1bcd5be07e9c50246af4c9c55723  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c
! 78816c4b8cd7d874f11fa54bf67c6390  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c
! 3861c314865ebd17821082bfd56eb777  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c
! 93d5324ed0381b5d6667926bc2969a6b  gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c
! 205627068c58abb8c13cdbfc0d7c9c01  gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c
! f6255ec99cf78afc00b3ce7f7e9a1c96  gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c
! 1483de9b7f52248fc9df51779ace9568  gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-softfp.c
  1c89ba825c88653c01849f8986e1542b  gcc/testsuite/gcc.target/arm/crypto-vaesdq_u8.c
  12073189e84dddc4f3b2c4940538c6d4  gcc/testsuite/gcc.target/arm/crypto-vaese-erratum1.c
  2ed72824fb0f88ddb43549410040a784  gcc/testsuite/gcc.target/arm/crypto-vaeseq_u8.c
--- 68989,69004 ----
  ea5c06143f89f8b3c26a3c80f255d03b  gcc/testsuite/gcc.target/arm/condarith_restrict_it.c
  702468e7cb2029f03eaac95e5eea0533  gcc/testsuite/gcc.target/arm/constant-pool.c
  a15062bec8f5e7f6b88a19f23efae654  gcc/testsuite/gcc.target/arm/copysign_softfloat_1.c
! 57161230519bb2889770013e9abfe5c0  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c
! e2542b73cf0757e0729d57c4c90077c6  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c
! 53ce3e3d610c67fa259f81e058dc4f5d  gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c
! b6ed140a8aa62a7833dbc128ddfbffe2  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c
! e27534f6fd9dd8bd9aca280b3892dce3  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c
! 19e4d4e6c981d38e02c84d9663cbd1e3  gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c
! 9f7009c3e03b3f02ce9ca31a430a3e23  gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c
! a5ae0d1ed556c8ad25be57b4e4b379f3  gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c
! 41454c0dd7b2c9a1211b47572b3604e7  gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c
! 0d74d841f353435965449fb6b4d3f2d3  gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-softfp.c
  1c89ba825c88653c01849f8986e1542b  gcc/testsuite/gcc.target/arm/crypto-vaesdq_u8.c
  12073189e84dddc4f3b2c4940538c6d4  gcc/testsuite/gcc.target/arm/crypto-vaese-erratum1.c
  2ed72824fb0f88ddb43549410040a784  gcc/testsuite/gcc.target/arm/crypto-vaeseq_u8.c
*************** f7f17803a6b1738e8dc92505f13e319c  gcc/te
*** 64637,64656 ****
  3a4cc77eebab8f993d561b9747c869c2  gcc/testsuite/gcc.target/arm/eabi1.c
  5277f5d0686be572bc75b1442e1b662e  gcc/testsuite/gcc.target/arm/eliminate.c
  2de1699de29ac0977ea65d0792fbc1d4  gcc/testsuite/gcc.target/arm/empty_fiq_handler.c
! 78487646e9710e62b0d506909e9588a8  gcc/testsuite/gcc.target/arm/epilog-1.c
  98721ddb43f41d55892aac39cc051828  gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
  af1ccf2d19987a11d4e08cd9cccf8a69  gcc/testsuite/gcc.target/arm/fixed-point-exec.c
  30d8dad9a97da5758da204e1f71d1aa1  gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
  6619cf7c22b0ec3c6ca6626d69a8f826  gcc/testsuite/gcc.target/arm/flip-thumb.c
! 2821511addcffa12e8257427de903835  gcc/testsuite/gcc.target/arm/fma-sp.c
  e95ad2780e346935674e8e065a322d1d  gcc/testsuite/gcc.target/arm/fma.c
  80ad1d4eaf61d16f656cb80332dc22f4  gcc/testsuite/gcc.target/arm/fma.h
! 220c0d4f4cad22e6687747e0fe55f267  gcc/testsuite/gcc.target/arm/fmaxmin.c
  a1182e17a398d2114e6f9d6156618a24  gcc/testsuite/gcc.target/arm/fmaxmin.x
! 2837a07778aef449950a3368be9791fe  gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
! 881ecf60a322e5ee074353b003f87c28  gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
! b5b68816acad2ad233b7606bd16f60e0  gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
! 503ab62871ad29ae7e129eab8fdbd5b3  gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
  f7e509420aab463592a3e5d54b6c6b8c  gcc/testsuite/gcc.target/arm/fp16-builtins-1.c
  237aa223257ca24bfddebcc43dd387a2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c
  85be9f1d24d495b2882fc58bb89a96d2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c
--- 69032,69053 ----
  3a4cc77eebab8f993d561b9747c869c2  gcc/testsuite/gcc.target/arm/eabi1.c
  5277f5d0686be572bc75b1442e1b662e  gcc/testsuite/gcc.target/arm/eliminate.c
  2de1699de29ac0977ea65d0792fbc1d4  gcc/testsuite/gcc.target/arm/empty_fiq_handler.c
! c21dd4b595a473123eba8619259b4570  gcc/testsuite/gcc.target/arm/epilog-1.c
! 82bfa624cdad68d458f0678a84930285  gcc/testsuite/gcc.target/arm/extend-ror.c
  98721ddb43f41d55892aac39cc051828  gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
  af1ccf2d19987a11d4e08cd9cccf8a69  gcc/testsuite/gcc.target/arm/fixed-point-exec.c
  30d8dad9a97da5758da204e1f71d1aa1  gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
  6619cf7c22b0ec3c6ca6626d69a8f826  gcc/testsuite/gcc.target/arm/flip-thumb.c
! 2c7b56d3c964a83d66a947c6d323db9d  gcc/testsuite/gcc.target/arm/fma-sp.c
  e95ad2780e346935674e8e065a322d1d  gcc/testsuite/gcc.target/arm/fma.c
  80ad1d4eaf61d16f656cb80332dc22f4  gcc/testsuite/gcc.target/arm/fma.h
! 575ab2ac98e30ba3e1b351506a8afcb0  gcc/testsuite/gcc.target/arm/fmaxmin-2.c
! 1f15e3fad418a20060c0b8a618fb5723  gcc/testsuite/gcc.target/arm/fmaxmin.c
  a1182e17a398d2114e6f9d6156618a24  gcc/testsuite/gcc.target/arm/fmaxmin.x
! acd3e91a7d28ee5546286c4936d86e11  gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
! 9e99c9ae7465a5459e190cb5d75fe5f7  gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
! 76aa061fcf894a1336f2f8d07bcd7524  gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
! 45400d3cc5277c10b804897e439d5ea8  gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
  f7e509420aab463592a3e5d54b6c6b8c  gcc/testsuite/gcc.target/arm/fp16-builtins-1.c
  237aa223257ca24bfddebcc43dd387a2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c
  85be9f1d24d495b2882fc58bb89a96d2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c
*************** e1bf55d078ccc0f4928c49eb854cdd2c  gcc/te
*** 64685,64724 ****
  372e4189c57a6fc5114fd971133b4b2f  gcc/testsuite/gcc.target/arm/fp16-return-1.c
  c19f478780631bf7433e7bd5d48f1e86  gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c
  c516e326d8b57e14b9119f95a0b6d475  gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c
! 59b43d7fa573aec56d37e8d3ee175b75  gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c
! a60c72361842412ed806a9caeafedd5b  gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c
  b627f1fc53dc3aa6e38826de78cc3f9d  gcc/testsuite/gcc.target/arm/fp16-variadic-1.c
  7e1f0ef170934d68aa70264acedd0c41  gcc/testsuite/gcc.target/arm/fpscr.c
  7bbda09783fa0c66ec95287fa88c2780  gcc/testsuite/gcc.target/arm/frame-pointer-1.c
! 8db892aae3d39286ebe837760797d171  gcc/testsuite/gcc.target/arm/ftest-armv4-arm.c
! ae36c49023295198f8a762d0d9609398  gcc/testsuite/gcc.target/arm/ftest-armv4t-arm.c
! 49a1bb678a0fd445ed8646f9ad1e7843  gcc/testsuite/gcc.target/arm/ftest-armv4t-thumb.c
! c02e1211b8a99f605c39703cb451b403  gcc/testsuite/gcc.target/arm/ftest-armv5t-arm.c
! 715271105f91aced4240e5717fa00dec  gcc/testsuite/gcc.target/arm/ftest-armv5t-thumb.c
! 77816c96a99f1f6bbc93b3e5be9a23fb  gcc/testsuite/gcc.target/arm/ftest-armv5te-arm.c
! 037fc747d33de0b93a8275fd4362f5a7  gcc/testsuite/gcc.target/arm/ftest-armv5te-thumb.c
! ee26c7919a600a61ccc4cd0d4f3753b4  gcc/testsuite/gcc.target/arm/ftest-armv6-arm.c
! 517b6035abb49b0095fb6dbb85b176eb  gcc/testsuite/gcc.target/arm/ftest-armv6-thumb.c
! 962fb62e4d80e8a0fd146907e197e19f  gcc/testsuite/gcc.target/arm/ftest-armv6k-arm.c
! 11a98219941545fb07d8906c6ffc26c4  gcc/testsuite/gcc.target/arm/ftest-armv6k-thumb.c
! dcc681d7157fdc93df522efd55af993b  gcc/testsuite/gcc.target/arm/ftest-armv6m-thumb.c
! 405055930e6b0b4fc2642cd49dbe956f  gcc/testsuite/gcc.target/arm/ftest-armv6t2-arm.c
! f122646d6db1c3133988761edef91482  gcc/testsuite/gcc.target/arm/ftest-armv6t2-thumb.c
! b67a660aeb2f935ac05d4b074c7ca35f  gcc/testsuite/gcc.target/arm/ftest-armv6z-arm.c
! 91471660e9cb4bc75ac4f0fa086e3e1f  gcc/testsuite/gcc.target/arm/ftest-armv6z-thumb.c
! cc3bf63a2cc1fc74f21c1e57da528622  gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
! 073d2ad8b49199fac2e14a0451022f69  gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
! 23738abdc20d281228fd111ac4144101  gcc/testsuite/gcc.target/arm/ftest-armv7em-thumb.c
  16a8cd5efb4c918b57fedba7fb49df8c  gcc/testsuite/gcc.target/arm/ftest-armv7m-thumb.c
! 38a3e2e4c6d02d03cbf304de6f85a548  gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
! 857ba193cf81b16136d7f157e1c53212  gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
! 2fcf969379fa297319af349434b4878c  gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
! 67fcf05fd8f556266526b1f6fccbc79f  gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c
! d4443bdada9e4e3255926d63fbf8a076  gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c
! 441457e096999cf30b99fee8b924f853  gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
  38e08d940bc9a9e57c4a3f201288491d  gcc/testsuite/gcc.target/arm/ftest-support.h
  771012b8908e8619d0619b8ab08c00bc  gcc/testsuite/gcc.target/arm/fuse-caller-save.c
! 596d1909fed899eb5ffc7a8020a0466a  gcc/testsuite/gcc.target/arm/g2.c
  cb9e119b328b5c2a1e304f019876ecad  gcc/testsuite/gcc.target/arm/get_address_cost_aligned_max_offset.c
  12359868a59ebf7bf8463feb3bb796ef  gcc/testsuite/gcc.target/arm/handler-align.c
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
--- 69082,69121 ----
  372e4189c57a6fc5114fd971133b4b2f  gcc/testsuite/gcc.target/arm/fp16-return-1.c
  c19f478780631bf7433e7bd5d48f1e86  gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c
  c516e326d8b57e14b9119f95a0b6d475  gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c
! 6903ff4da2d5b50c5144f615a01eb33a  gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c
! 8dce66035892759709ec2de7d9ef2025  gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c
  b627f1fc53dc3aa6e38826de78cc3f9d  gcc/testsuite/gcc.target/arm/fp16-variadic-1.c
  7e1f0ef170934d68aa70264acedd0c41  gcc/testsuite/gcc.target/arm/fpscr.c
  7bbda09783fa0c66ec95287fa88c2780  gcc/testsuite/gcc.target/arm/frame-pointer-1.c
! b5d50bd80edaa2248b5d39a3e1133f43  gcc/testsuite/gcc.target/arm/ftest-armv4-arm.c
! cde0e8392d77eb1314994971ac4ce2af  gcc/testsuite/gcc.target/arm/ftest-armv4t-arm.c
! 852e14b540bfa75205b1e9f0c2f94412  gcc/testsuite/gcc.target/arm/ftest-armv4t-thumb.c
! 4bc3c0d49c43c019c2c6b493cd380ad5  gcc/testsuite/gcc.target/arm/ftest-armv5t-arm.c
! acdb06c336ab9932e1d867ee62920f12  gcc/testsuite/gcc.target/arm/ftest-armv5t-thumb.c
! a503147b6c334ad2c737e5d272da6c2d  gcc/testsuite/gcc.target/arm/ftest-armv5te-arm.c
! eab7e853c4ca6274441b79f5430c4219  gcc/testsuite/gcc.target/arm/ftest-armv5te-thumb.c
! 52d76087c1b652202f50205fd7dd4ab7  gcc/testsuite/gcc.target/arm/ftest-armv6-arm.c
! d4e9b88845629cd5b7e0c33f5d38ddf7  gcc/testsuite/gcc.target/arm/ftest-armv6-thumb.c
! b9dcab7b5f5bc1a7343ec30041f0ae7c  gcc/testsuite/gcc.target/arm/ftest-armv6k-arm.c
! fb844e2a38660e988b0b3c6e8d39627d  gcc/testsuite/gcc.target/arm/ftest-armv6k-thumb.c
! 11a8688d3051629a4cc22e15a7e26424  gcc/testsuite/gcc.target/arm/ftest-armv6m-thumb.c
! 532e3f9c1912b167caff6915e2dab088  gcc/testsuite/gcc.target/arm/ftest-armv6t2-arm.c
! 2329fc7825fdfda83439c0d42f739e01  gcc/testsuite/gcc.target/arm/ftest-armv6t2-thumb.c
! 7cfe5edbee17086138c2d8fc758c591f  gcc/testsuite/gcc.target/arm/ftest-armv6z-arm.c
! 88b6efbfa57bd3d6ecae02da53c0c9ee  gcc/testsuite/gcc.target/arm/ftest-armv6z-thumb.c
! 457f9bc7e0bf665a96112096c0f4467a  gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
! e84cbebaa1c584d1798ad094315c137b  gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
! 1946a23f65e93dd1a38652a188d9f78c  gcc/testsuite/gcc.target/arm/ftest-armv7em-thumb.c
  16a8cd5efb4c918b57fedba7fb49df8c  gcc/testsuite/gcc.target/arm/ftest-armv7m-thumb.c
! c1313b332fce22faf8fe3f6e9d625da1  gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
! 866050a2f0b8c17fb5c32a414fccad66  gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
! c5f5720000496db93c67e24ea5d18a2a  gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
! 52b993386ae539fdbab8e2854802b94a  gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c
! 67b6b83712722599e095ae3ab1a3f633  gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c
! e822062d393c6f234519a2d625d1e959  gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
  38e08d940bc9a9e57c4a3f201288491d  gcc/testsuite/gcc.target/arm/ftest-support.h
  771012b8908e8619d0619b8ab08c00bc  gcc/testsuite/gcc.target/arm/fuse-caller-save.c
! f8b9e7a2eb600b905f6a7b454dcd7482  gcc/testsuite/gcc.target/arm/g2.c
  cb9e119b328b5c2a1e304f019876ecad  gcc/testsuite/gcc.target/arm/get_address_cost_aligned_max_offset.c
  12359868a59ebf7bf8463feb3bb796ef  gcc/testsuite/gcc.target/arm/handler-align.c
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
*************** b7fc1639bee153568add250d53ea751f  gcc/te
*** 64729,64789 ****
  d22bd89adb71b05462d565b8be4d3b3c  gcc/testsuite/gcc.target/arm/interrupt-2.c
  5fb126c6d9486e40aebcb4051dcefd2a  gcc/testsuite/gcc.target/arm/iordi3-opt.c
  942d9efedfb779e0de45df976f1585de  gcc/testsuite/gcc.target/arm/iordi_notdi-1.c
! 550f206a7b7560c0e3c01b46d6d1d81f  gcc/testsuite/gcc.target/arm/its.c
  ed8f53ad845cace075e82259961588c1  gcc/testsuite/gcc.target/arm/ivopts-2.c
  0f144636bf943d81ee8e39fb28c2f9a2  gcc/testsuite/gcc.target/arm/ivopts-3.c
  64a2a899a5a2180399e5178ea86adc4e  gcc/testsuite/gcc.target/arm/ivopts-4.c
  07838a70a70c703269fa0783335a34b7  gcc/testsuite/gcc.target/arm/ivopts-5.c
  371c001d833d940cd40d8aa3fee9915d  gcc/testsuite/gcc.target/arm/ivopts-orig_biv-inc.c
! 47af80897bdc9b38e6b5972695e8bd5d  gcc/testsuite/gcc.target/arm/ivopts.c
  629878f590b6027b463fdc14a2b3bd9f  gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
  a38561d69fa262860777d4da466d538e  gcc/testsuite/gcc.target/arm/ldrd-strd-offset.c
  02b9352efc9d3dded38ac3a6281bcdd1  gcc/testsuite/gcc.target/arm/ldrd-strd-pair-1.c
  cd5d776718748bd9e5c15d1b763fac4a  gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
! 9601335a3815b007bac5d552972f1d2b  gcc/testsuite/gcc.target/arm/lob.h
! b195fdde12f3a380cee5654476ebd557  gcc/testsuite/gcc.target/arm/lob1.c
  21a0d38f913fade2adb9df1b375a0b15  gcc/testsuite/gcc.target/arm/lob2.c
  0199e3b94d4196e8407d3a53055b4cd9  gcc/testsuite/gcc.target/arm/lob3.c
  bfc9c68e78fd72e08127df9f2211f1b7  gcc/testsuite/gcc.target/arm/lob4.c
  13689282306d2e12a0fe9eb87e9ecae4  gcc/testsuite/gcc.target/arm/lob5.c
! 4daa69f4edc4593e1a2c62a3ee7f44dc  gcc/testsuite/gcc.target/arm/lob6.c
  bf821309d2cd93b8c0d6b0704742bc45  gcc/testsuite/gcc.target/arm/long-calls-1.c
  42a78271420e5c48df61165376eb067e  gcc/testsuite/gcc.target/arm/long-calls-2.c
  045075d4c4f653f51cab15b6c12b3e09  gcc/testsuite/gcc.target/arm/long-calls-3.c
  856b2cad766c5a53d737088d9056031b  gcc/testsuite/gcc.target/arm/long-calls-4.c
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
- c0ebea9052f8cd9253ee6ff358df5e52  gcc/testsuite/gcc.target/arm/lp1243022.c
  b4f8ad85c07f7be61a90747a85bd0be4  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
! 1d0576ab8c00f065330ae25a2ca673d6  gcc/testsuite/gcc.target/arm/lto/lto.exp
! 90bf73bda834641a0bea89584effe1a7  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
  0fe8e2ad477327f013e80d0961d711a8  gcc/testsuite/gcc.target/arm/lto/pr65837-attr_0.c
  9c1d0bd8b530eb85b5c816dc0a3e7423  gcc/testsuite/gcc.target/arm/lto/pr65837_0.c
! 5af2b12c815bb15417b5f4b3667368b3  gcc/testsuite/gcc.target/arm/lto/pr96939_0.c
! a86a3f3c6c1c6d7dc8271acb46abe110  gcc/testsuite/gcc.target/arm/lto/pr96939_1.c
  4a895f6b9a2ea62053aa54a66629a5a3  gcc/testsuite/gcc.target/arm/macro_defs0.c
  7d48850c7c0f14894c8ae56eda6aa27b  gcc/testsuite/gcc.target/arm/macro_defs1.c
  55356a1ea88fba61f865de51904eb4a9  gcc/testsuite/gcc.target/arm/macro_defs2.c
  992923ff987c3f4f952a04e11fea3029  gcc/testsuite/gcc.target/arm/maskdata.c
  005470d1710eae11e6e158418d79d3a7  gcc/testsuite/gcc.target/arm/max-insns-skipped.c
! 7588a0bf83f9bb0e0fbf403314a1ff95  gcc/testsuite/gcc.target/arm/memcpy-aligned-1.c
  18a42aeddd7c110c5ef42f3d0677e7db  gcc/testsuite/gcc.target/arm/memset-inline-1.c
  ba8ade52fcec08e9fc2a71480fa7129b  gcc/testsuite/gcc.target/arm/memset-inline-10.c
  420d3ab5e5580dbb7192787ab7a30f11  gcc/testsuite/gcc.target/arm/memset-inline-2.c
  6f09b84ea67795ebbef89da0c415d6bb  gcc/testsuite/gcc.target/arm/memset-inline-3.c
! 76518d1207324e80e76b069d5e002d11  gcc/testsuite/gcc.target/arm/memset-inline-4.c
! f93cc6f36b91e242be995367b8846db9  gcc/testsuite/gcc.target/arm/memset-inline-5.c
! 0ac491cb9ad8ab7b0dea90778d57bf22  gcc/testsuite/gcc.target/arm/memset-inline-6.c
  ea9e4c1990d1a5660a4d881d2b3a87e9  gcc/testsuite/gcc.target/arm/memset-inline-7.c
! 2d332d868d424afff09ce09517f1c7cc  gcc/testsuite/gcc.target/arm/memset-inline-8.c
! fb74916eb6e0ebd03586703f23fac8ab  gcc/testsuite/gcc.target/arm/memset-inline-9.c
  3876125217234cd017b0326c39884922  gcc/testsuite/gcc.target/arm/minmax_minus.c
  8ea48995d807d32260c080b94c76fc8c  gcc/testsuite/gcc.target/arm/mla-1.c
  7a61babf21fe0e2b87f08d86f719bd45  gcc/testsuite/gcc.target/arm/mla-2.c
  6c1de9d08bd48357c00a154b914c5dd4  gcc/testsuite/gcc.target/arm/mmx-1.c
  a5a3e826efb091c50ba961289ca090a2  gcc/testsuite/gcc.target/arm/mmx-2.c
! bc327811d15b506974ca7b2bb01cd09f  gcc/testsuite/gcc.target/arm/mod_2.c
! 4c7449387277998fa80fc02664b0e04c  gcc/testsuite/gcc.target/arm/mod_256.c
  c6b1f31177a60b170040e0eddc1787ba  gcc/testsuite/gcc.target/arm/movcond_restrict_it.c
  22b581d307300e7a8e898e1185bfbc50  gcc/testsuite/gcc.target/arm/movdi_movt.c
  51abb62948cbe512df9bed991a2649d4  gcc/testsuite/gcc.target/arm/movdi_movw.c
--- 69126,69191 ----
  d22bd89adb71b05462d565b8be4d3b3c  gcc/testsuite/gcc.target/arm/interrupt-2.c
  5fb126c6d9486e40aebcb4051dcefd2a  gcc/testsuite/gcc.target/arm/iordi3-opt.c
  942d9efedfb779e0de45df976f1585de  gcc/testsuite/gcc.target/arm/iordi_notdi-1.c
! 59dfbecb0e1eaf59bd06be7035a171eb  gcc/testsuite/gcc.target/arm/its-1.c
! 571194dc627ca9e3dc33c608029df503  gcc/testsuite/gcc.target/arm/its-2.c
  ed8f53ad845cace075e82259961588c1  gcc/testsuite/gcc.target/arm/ivopts-2.c
  0f144636bf943d81ee8e39fb28c2f9a2  gcc/testsuite/gcc.target/arm/ivopts-3.c
  64a2a899a5a2180399e5178ea86adc4e  gcc/testsuite/gcc.target/arm/ivopts-4.c
  07838a70a70c703269fa0783335a34b7  gcc/testsuite/gcc.target/arm/ivopts-5.c
  371c001d833d940cd40d8aa3fee9915d  gcc/testsuite/gcc.target/arm/ivopts-orig_biv-inc.c
! c4e0098d92012d398b34de432c7f9cba  gcc/testsuite/gcc.target/arm/ivopts.c
  629878f590b6027b463fdc14a2b3bd9f  gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
  a38561d69fa262860777d4da466d538e  gcc/testsuite/gcc.target/arm/ldrd-strd-offset.c
  02b9352efc9d3dded38ac3a6281bcdd1  gcc/testsuite/gcc.target/arm/ldrd-strd-pair-1.c
  cd5d776718748bd9e5c15d1b763fac4a  gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
! 3b99d425390b2c010e9f67c320c6651b  gcc/testsuite/gcc.target/arm/lob.h
! 30eb8bf7f61ddb2c4d5226a9bb14e1c7  gcc/testsuite/gcc.target/arm/lob1.c
  21a0d38f913fade2adb9df1b375a0b15  gcc/testsuite/gcc.target/arm/lob2.c
  0199e3b94d4196e8407d3a53055b4cd9  gcc/testsuite/gcc.target/arm/lob3.c
  bfc9c68e78fd72e08127df9f2211f1b7  gcc/testsuite/gcc.target/arm/lob4.c
  13689282306d2e12a0fe9eb87e9ecae4  gcc/testsuite/gcc.target/arm/lob5.c
! 7d32b111ecb47a78d30e60ca38acffa1  gcc/testsuite/gcc.target/arm/lob6.c
  bf821309d2cd93b8c0d6b0704742bc45  gcc/testsuite/gcc.target/arm/long-calls-1.c
  42a78271420e5c48df61165376eb067e  gcc/testsuite/gcc.target/arm/long-calls-2.c
  045075d4c4f653f51cab15b6c12b3e09  gcc/testsuite/gcc.target/arm/long-calls-3.c
  856b2cad766c5a53d737088d9056031b  gcc/testsuite/gcc.target/arm/long-calls-4.c
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
  b4f8ad85c07f7be61a90747a85bd0be4  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
! 8d549d0367ca6688329df1257420972a  gcc/testsuite/gcc.target/arm/lto/lto.exp
! fd9597acaf90b4fc0a611739248cecea  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
  0fe8e2ad477327f013e80d0961d711a8  gcc/testsuite/gcc.target/arm/lto/pr65837-attr_0.c
  9c1d0bd8b530eb85b5c816dc0a3e7423  gcc/testsuite/gcc.target/arm/lto/pr65837_0.c
! 047a2848f5de805b9e9e5e460557cec5  gcc/testsuite/gcc.target/arm/lto/pr96939_0.c
! 24c897e7e4220562364dcc8f29622635  gcc/testsuite/gcc.target/arm/lto/pr96939_1.c
  4a895f6b9a2ea62053aa54a66629a5a3  gcc/testsuite/gcc.target/arm/macro_defs0.c
  7d48850c7c0f14894c8ae56eda6aa27b  gcc/testsuite/gcc.target/arm/macro_defs1.c
  55356a1ea88fba61f865de51904eb4a9  gcc/testsuite/gcc.target/arm/macro_defs2.c
  992923ff987c3f4f952a04e11fea3029  gcc/testsuite/gcc.target/arm/maskdata.c
  005470d1710eae11e6e158418d79d3a7  gcc/testsuite/gcc.target/arm/max-insns-skipped.c
! 5e453265227c0dc9fd4b94eca341d6d9  gcc/testsuite/gcc.target/arm/memcpy-aligned-1.c
  18a42aeddd7c110c5ef42f3d0677e7db  gcc/testsuite/gcc.target/arm/memset-inline-1.c
  ba8ade52fcec08e9fc2a71480fa7129b  gcc/testsuite/gcc.target/arm/memset-inline-10.c
  420d3ab5e5580dbb7192787ab7a30f11  gcc/testsuite/gcc.target/arm/memset-inline-2.c
  6f09b84ea67795ebbef89da0c415d6bb  gcc/testsuite/gcc.target/arm/memset-inline-3.c
! 42c89abcf3c896b832e716777ffb5b6f  gcc/testsuite/gcc.target/arm/memset-inline-4-exe.c
! f1b471460454025f38b335b70d62f785  gcc/testsuite/gcc.target/arm/memset-inline-4.c
! b8d40af8587119beb5398fc2a78dc70e  gcc/testsuite/gcc.target/arm/memset-inline-5-exe.c
! 5f760b4a5b1aecddd8e3b7c737626d93  gcc/testsuite/gcc.target/arm/memset-inline-5.c
! 5d36fcdaa818ab510adf5b5bd329077b  gcc/testsuite/gcc.target/arm/memset-inline-6-exe.c
! 1a48bbcb00c49c6d769565aba8daffc6  gcc/testsuite/gcc.target/arm/memset-inline-6.c
  ea9e4c1990d1a5660a4d881d2b3a87e9  gcc/testsuite/gcc.target/arm/memset-inline-7.c
! 7055c123a0fa4959fe8e50d361a24fd9  gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
! 89671373df04a2b4c8eb6d4bf9af1f4a  gcc/testsuite/gcc.target/arm/memset-inline-8.c
! ba5017b591e31d9d25de0072928e8d5a  gcc/testsuite/gcc.target/arm/memset-inline-9-exe.c
! 92ebccf80f384325a56ec29d5e5f01c0  gcc/testsuite/gcc.target/arm/memset-inline-9.c
  3876125217234cd017b0326c39884922  gcc/testsuite/gcc.target/arm/minmax_minus.c
  8ea48995d807d32260c080b94c76fc8c  gcc/testsuite/gcc.target/arm/mla-1.c
  7a61babf21fe0e2b87f08d86f719bd45  gcc/testsuite/gcc.target/arm/mla-2.c
  6c1de9d08bd48357c00a154b914c5dd4  gcc/testsuite/gcc.target/arm/mmx-1.c
  a5a3e826efb091c50ba961289ca090a2  gcc/testsuite/gcc.target/arm/mmx-2.c
! 7b6c60e87b7d1e8cbf47e734df9452a7  gcc/testsuite/gcc.target/arm/mod_2.c
! b7f557cb9078905501be2258a5e0919c  gcc/testsuite/gcc.target/arm/mod_256.c
  c6b1f31177a60b170040e0eddc1787ba  gcc/testsuite/gcc.target/arm/movcond_restrict_it.c
  22b581d307300e7a8e898e1185bfbc50  gcc/testsuite/gcc.target/arm/movdi_movt.c
  51abb62948cbe512df9bed991a2649d4  gcc/testsuite/gcc.target/arm/movdi_movw.c
*************** c6b1f31177a60b170040e0eddc1787ba  gcc/te
*** 64791,64801 ****
  484b6553c962caa2f0746fa65de739e8  gcc/testsuite/gcc.target/arm/movsi_movt.c
  190ffba53357096715f051384c38965b  gcc/testsuite/gcc.target/arm/movsi_movw.c
  f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/arm/mtp.c
! ece96d078d4f7198568ffe0fd40fcb07  gcc/testsuite/gcc.target/arm/mtp_1.c
! 60bfcb1ec9c219dadd4107a6ec6428f2  gcc/testsuite/gcc.target/arm/mtp_2.c
! 1b224c33e828ab92e89518827722e740  gcc/testsuite/gcc.target/arm/mtp_3.c
! e7f8bfccdb68c02a11bd2ceca91edcf7  gcc/testsuite/gcc.target/arm/mtp_4.c
! 4564c956ea9877ed020615ade716e0b2  gcc/testsuite/gcc.target/arm/multilib.exp
  25a47cd160e73409cb11626721346fe7  gcc/testsuite/gcc.target/arm/mve/general-c/nomve_fp_1.c
  56a0fbce4d79d10043dc3f64ce0aa364  gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_1.c
  7913199bfd3408d69e28f6fb3e23c0be  gcc/testsuite/gcc.target/arm/mve/general-c/vreinterpretq_1.c
--- 69193,69216 ----
  484b6553c962caa2f0746fa65de739e8  gcc/testsuite/gcc.target/arm/movsi_movt.c
  190ffba53357096715f051384c38965b  gcc/testsuite/gcc.target/arm/movsi_movw.c
  f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/arm/mtp.c
! aa168ab73051b82a62ea3739df9b7948  gcc/testsuite/gcc.target/arm/mtp_1.c
! 4628a42c2e310a954f19233c1d879c44  gcc/testsuite/gcc.target/arm/mtp_2.c
! 3b7858b6609587453b138fe196229f01  gcc/testsuite/gcc.target/arm/mtp_3.c
! dd181d86d78e4af9dc8a97924e0e82c1  gcc/testsuite/gcc.target/arm/mtp_4.c
! 71071d5d08b1b5524c9a5bd22d4f3035  gcc/testsuite/gcc.target/arm/multilib.exp
! 1c6df99c167e122c3ce87f610c408a1e  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-1.c
! aff7137737a09c3bf63170f62f63d438  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-2.c
! 781e32b800a7d858cc670f788ea1fac3  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-3.c
! 3ae19d506b071cf6f1834aae331cb5c1  gcc/testsuite/gcc.target/arm/mve/dlstp-int16x8-run.c
! dff11dcf0ade00e4fba9118e404aadf4  gcc/testsuite/gcc.target/arm/mve/dlstp-int16x8.c
! 8c4f029e34c5b603a5c7f75e3f850726  gcc/testsuite/gcc.target/arm/mve/dlstp-int32x4-run.c
! 4bab337ebd14391afa76a43fc5429e0b  gcc/testsuite/gcc.target/arm/mve/dlstp-int32x4.c
! 27e145f5c3bd7f6e610cf7c48fe5d31d  gcc/testsuite/gcc.target/arm/mve/dlstp-int64x2-run.c
! 7b1727f2827ae3621973c316870e858b  gcc/testsuite/gcc.target/arm/mve/dlstp-int64x2.c
! 130f5d8ae75c057af96fe253ceb06f15  gcc/testsuite/gcc.target/arm/mve/dlstp-int8x16-run.c
! 77efd255564dccbc910c092563c2bb0f  gcc/testsuite/gcc.target/arm/mve/dlstp-int8x16.c
! fffad35934f526817fc333e82d0e79bb  gcc/testsuite/gcc.target/arm/mve/dlstp-invalid-asm.c
! 337fadb82fb8a406d8195b1c9ca3e2fe  gcc/testsuite/gcc.target/arm/mve/dlstp-loop-form.c
  25a47cd160e73409cb11626721346fe7  gcc/testsuite/gcc.target/arm/mve/general-c/nomve_fp_1.c
  56a0fbce4d79d10043dc3f64ce0aa364  gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_1.c
  7913199bfd3408d69e28f6fb3e23c0be  gcc/testsuite/gcc.target/arm/mve/general-c/vreinterpretq_1.c
*************** ab72cfcef8400549b3b4d4d318e4955e  gcc/te
*** 64841,64847 ****
  08cf164f5014eeb82272fbef22e3878f  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr.c
  4211e73819bb661ddd18271cf8dab0e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr_p.c
  cfb4125c4550d5cf153bac3dcd2886ad  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c
! a8d3fa3695fbd309660950fb5598ecaf  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
  e49e7d0224d2de2b6eb25c3a244cd391  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat64.c
--- 69256,69263 ----
  08cf164f5014eeb82272fbef22e3878f  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr.c
  4211e73819bb661ddd18271cf8dab0e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr_p.c
  cfb4125c4550d5cf153bac3dcd2886ad  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c
! c6565beafc869833d2a6dd9484818c2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr118332.c
! b64a60d68e969b641b8652c2bd4eef0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
  e49e7d0224d2de2b6eb25c3a244cd391  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat64.c
*************** fd9ef2d4725aea4c673fbde9b84c5ec7  gcc/te
*** 65196,65203 ****
  dd9822317a50df93ffb02f0ba518afbd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u16.c
  a38d7d776a97a72a8ebfe39106058642  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u32.c
  40bb1f959169a03ae77b759439a2ac35  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u8.c
! f4f4613062473f90061b5429a5a12a63  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16.c
! 7af1579e380522a00838dd84aa71a0f3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32.c
  0df0a1c61a4f06231aac7513d731a8dd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s16.c
  5504570139574570fedbda5658f17e92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s32.c
  a9c8da29a97aa6968c3645b3890424e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s8.c
--- 69612,69619 ----
  dd9822317a50df93ffb02f0ba518afbd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u16.c
  a38d7d776a97a72a8ebfe39106058642  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u32.c
  40bb1f959169a03ae77b759439a2ac35  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_m_u8.c
! 36df7825aaa14c0c560dff41b7e6c3d4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f16.c
! 7424511e51459a4cfac22a0ef1210b55  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_f32.c
  0df0a1c61a4f06231aac7513d731a8dd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s16.c
  5504570139574570fedbda5658f17e92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s32.c
  a9c8da29a97aa6968c3645b3890424e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpeqq_n_s8.c
*************** e131f0f90d2ccb1e8eff81ef4b75dbd4  gcc/te
*** 65222,65229 ****
  11625030b4a4a378f6a8b75616275571  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s16.c
  ffbfd3c338a76d17f67c42f5f5b90f3d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s32.c
  dad552ad6969cc4f08eab40d2440f4b6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s8.c
! 49be9f212ea85b3fe1697ca1f368c01e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16.c
! 0ef1fa312e03634980db922b7713c210  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32.c
  fbe4e1fa3cbcd9441d8750a03c24a2b7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s16.c
  82249d796ce4aa5effd5dd89ee869f64  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s32.c
  1b457ec0ecc5792cad05e8bada9d869e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s8.c
--- 69638,69645 ----
  11625030b4a4a378f6a8b75616275571  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s16.c
  ffbfd3c338a76d17f67c42f5f5b90f3d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s32.c
  dad552ad6969cc4f08eab40d2440f4b6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_m_s8.c
! 54953d6fdf855169d13245494235ca27  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f16.c
! 6531c19a711b0d0028e8546545fd7b3f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_f32.c
  fbe4e1fa3cbcd9441d8750a03c24a2b7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s16.c
  82249d796ce4aa5effd5dd89ee869f64  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s32.c
  1b457ec0ecc5792cad05e8bada9d869e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgeq_n_s8.c
*************** d48603220c1ffe7d000eed5580f08ecc  gcc/te
*** 65242,65249 ****
  e26c1fce9a5cfbc4261ae1eb72b60f2a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s16.c
  497d72083d91192b45f6c7e2257bc168  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s32.c
  9e0ce133a8cc48accedce9634834ca52  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s8.c
! 96523329007c374dc89fb370d9053d53  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16.c
! 4bef0a82cac6729fad690bc82236e14d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32.c
  3d59ccbd17d243df01e087a600bec0a5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s16.c
  60ac0f32b7176d593199fd53d71bd703  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s32.c
  43d631f28fb9700bb560496eb5789457  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s8.c
--- 69658,69665 ----
  e26c1fce9a5cfbc4261ae1eb72b60f2a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s16.c
  497d72083d91192b45f6c7e2257bc168  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s32.c
  9e0ce133a8cc48accedce9634834ca52  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_m_s8.c
! a663de53a5681e0715ca83b24f83260c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f16.c
! 4f055a16b06342e04afd9f69035c2fe9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_f32.c
  3d59ccbd17d243df01e087a600bec0a5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s16.c
  60ac0f32b7176d593199fd53d71bd703  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s32.c
  43d631f28fb9700bb560496eb5789457  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpgtq_n_s8.c
*************** fcca8f116fe3c26a47fe37ccdfa28d53  gcc/te
*** 65274,65281 ****
  9399d7a9087e73100637c825c3989772  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s16.c
  9dfbcb3682f3fa25cfb5242eade0fb04  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s32.c
  2fdff391555e5ba6408b16846a53e32f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s8.c
! 0eb99e88a4a7cf761701045f549016b8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f16.c
! 1f0271c7d6f5704e759f1346d9ace7f7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f32.c
  542898313698b508153898b958856ddd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s16.c
  4fff35de0d1db3c850afd9a4b07e32d8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s32.c
  5a3e17f85fcb6556b36231cba46da4ca  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s8.c
--- 69690,69697 ----
  9399d7a9087e73100637c825c3989772  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s16.c
  9dfbcb3682f3fa25cfb5242eade0fb04  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s32.c
  2fdff391555e5ba6408b16846a53e32f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_m_s8.c
! d6883dccb748a8a5488dddda9144f2be  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f16.c
! 1f10241db19e13c502db35746c1b8216  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_f32.c
  542898313698b508153898b958856ddd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s16.c
  4fff35de0d1db3c850afd9a4b07e32d8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s32.c
  5a3e17f85fcb6556b36231cba46da4ca  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpleq_n_s8.c
*************** c8516648c0f216555fa3ed8ccc8908f1  gcc/te
*** 65294,65301 ****
  4da35f51be62dbca2b78bbed034f24c5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s16.c
  59c86ba506931a4bff0e80c35a33e19c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s32.c
  4c0cd490673e474cd2dfb2df7d257cc9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s8.c
! 701e4a6a6b1e8b956b9ac2dee35130c4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f16.c
! 729a8e9a88fffb77226284a5414cfbd1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f32.c
  6055c1a93d3b035ff494cfb93a1010b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s16.c
  ac25dc23a3f2a313e7833fdb51586dc5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s32.c
  73514edae820dfce2ab75600f90fe675  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s8.c
--- 69710,69717 ----
  4da35f51be62dbca2b78bbed034f24c5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s16.c
  59c86ba506931a4bff0e80c35a33e19c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s32.c
  4c0cd490673e474cd2dfb2df7d257cc9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_m_s8.c
! f414016fd357cfd033f4edda48163f6c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f16.c
! 7db3ef70b6d10df7df698e84b837741f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_f32.c
  6055c1a93d3b035ff494cfb93a1010b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s16.c
  ac25dc23a3f2a313e7833fdb51586dc5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s32.c
  73514edae820dfce2ab75600f90fe675  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpltq_n_s8.c
*************** babb589973fe8ee57f60fbc6fcdec2bc  gcc/te
*** 65320,65327 ****
  771439ce55bfe1421044d5b1520a0949  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u16.c
  b3e22e65609535559cd2532fda9cc66d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u32.c
  d8b224ba70ec7846a4d67cadf06b409b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u8.c
! 873f29f72c557ed69d3c837e1e99ba08  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f16.c
! e34a1cd9f2071091aaf6ab3da571a130  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f32.c
  ed3b43f9d6fa5c42edee640261e53452  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s16.c
  dfcbdfcd6501b64afbb4b766b40de4c9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s32.c
  f89060b1d360be62e7215bffc9b73fb7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s8.c
--- 69736,69743 ----
  771439ce55bfe1421044d5b1520a0949  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u16.c
  b3e22e65609535559cd2532fda9cc66d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u32.c
  d8b224ba70ec7846a4d67cadf06b409b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_m_u8.c
! 1f1dc87f095397585990168415083ce9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f16.c
! e82b06563e24dfa617e3ac48acae36a9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_f32.c
  ed3b43f9d6fa5c42edee640261e53452  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s16.c
  dfcbdfcd6501b64afbb4b766b40de4c9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s32.c
  f89060b1d360be62e7215bffc9b73fb7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vcmpneq_n_s8.c
*************** dcb8c309731f70b9e2cd5b0cd4a8d78c  gcc/te
*** 65485,65547 ****
  bf995273adc1e67fe997e6f71f06ac82  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u16.c
  f68fce78f1c3675368ea38e50049f2aa  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u32.c
  73db69dc369e64c8f8fca972614cc860  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u8.c
! 24d6c8490d94020a725a67717044b759  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u16.c
! 7135a2487330927b77a087be35c4d8e1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u32.c
! b6ca6abd2975e7c80dac0ac7d9d9a667  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u8.c
  d9b212087e03421f8314e5e725be4609  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u16.c
  a1381436b3916edcd1548f5dbf182d40  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u32.c
  c9e89185116dca6a773850e30ef3aa68  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u8.c
! 743fe17e04bfaf4bbc983d9dec99016d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u16.c
! 62ff76e21df8b958f3cd98f121dd880f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u32.c
! 02658544d19305d0f1b3906c569422a6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u8.c
  a2a6462f7dad95340c898fc32890d4cc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u16.c
  d67effa94efb6df338f9257428e8e398  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u32.c
  147c69113cf2dd038754b5e73be7de2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u8.c
! 584cb108080769a93b9bbbdec85a8700  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u16.c
! 902a6a4ea6f0a883ab3da9419bdb27b0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u32.c
! 2a0e8edca43e5b584c9f4b3876a1ceac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u8.c
  eee1f0db49f2fc0a7e9ba421e216433f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_f16.c
  e793bf622ca0edf7347b76f5ab8a7b95  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_f32.c
! 89e394b063d5316d83567cd28f65e182  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s16.c
! 193576ba817e78f2869e063668bc1e65  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s32.c
! 32c11f7184cc28bce42dfe363c133b7a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s8.c
  dc3bbe82f0ada40b2478603578aa8315  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u16.c
  697a31f795106526b183dc7c8cd59d31  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u32.c
  e123ffb87aa6243074119f950a80a899  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u8.c
! 3348cde416cb2e050ca3e7dabc1a3a47  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f16.c
! 5edbb8db84654f2ea6cbcb94c484b411  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c
! 583e0cd6271be5bf6c2dba724be5f0ec  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s16.c
! d0e773ac795d470d4097b264e9ee7499  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s32.c
! e243e3f93d1da2652e43be28693b1fb4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s8.c
! 22f608145f9a0014b9ab4e0b8c5db361  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u16.c
! 728b7c19e99a060efccbe577378191e7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u32.c
! 30efd51cc1c768f1d7d53a2b6aad8b8f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u8.c
  9fdcb845b11f89c868101d5a6ee7d721  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_f16.c
  1c447195f3aeae143ec7d3eabe774979  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_f32.c
! d4f456ca928c904422cb98eab0522272  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s16.c
! 3d37397993364e8328cb78f7565c0756  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s32.c
! 074f4041845ae60e037a91d2f2d664e7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s8.c
  b69ae74e9837313d281bca2f9e61513c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u16.c
  e3f60e81da7b88bc2f02934cbc2fa837  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u32.c
  1db93bc353932f7f224fa81f56c75f74  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u8.c
  4c23f55d6612277e6b2dfb173cc662ac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u16.c
  8c6c2d59e4cc6e27f5ef6cd22558e480  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u32.c
  e69fd60528b58f1ff784453a5ce25357  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u8.c
! 9ed97369a2792eb3195bb2744c341e78  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u16.c
! 55c1eba397837f8577001d9dc5057dcc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u32.c
! 6a3e64b27f1151080fc66728027fac9b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u8.c
  d9afebb0a62a83db7cf5580d217f3368  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u16.c
  72b1a20173f517dc1500a3fd9875ac24  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u32.c
  bf615847479b081df22eedf27bf22b22  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u8.c
! ca5d85eaf4c9f949f07c8f8190b61edb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u16.c
! 4250f15a8444f8a88508d0cfd59722c5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u32.c
! 368bd45d53ecb990817a516e74c4a7b5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u8.c
  9ecf68ce8f1e166c13201dbb644d36c2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u16.c
  f324d05ec647f8d9b4ba206d2f743842  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u32.c
  9b36f33560b26a2cd4a1960bd890a7cb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u8.c
! 16bacde022c174ffc4e25a52a5d1d7e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u16.c
! 61fd65371cf0b638bc259e02da130522  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u32.c
! 08c892cc318655498614e6d30a283725  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u8.c
  a2ad73d2ac11098eae3ff3ca547ace54  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_f16.c
  27dd9e221735900d4f4a84087a280ebb  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_f32.c
  075b37df91b0d345c450911aae567b91  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_m_f16.c
--- 69901,69968 ----
  bf995273adc1e67fe997e6f71f06ac82  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u16.c
  f68fce78f1c3675368ea38e50049f2aa  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u32.c
  73db69dc369e64c8f8fca972614cc860  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_n_u8.c
! 6e327498d526e53545a44f62009e5d16  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u16.c
! 90bea5111c63c6f538175f1c9d678917  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u32.c
! a302ca557053936d3ea43454d71c78e7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_m_wb_u8.c
  d9b212087e03421f8314e5e725be4609  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u16.c
  a1381436b3916edcd1548f5dbf182d40  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u32.c
  c9e89185116dca6a773850e30ef3aa68  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_n_u8.c
! 57ebf19066f4daf48504abba2eeaa149  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u16.c
! 0a7a24506daffc59f156283206c3d7ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u32.c
! f1cdd3c84d0190edb7a2cb155173df07  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_wb_u8.c
  a2a6462f7dad95340c898fc32890d4cc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u16.c
  d67effa94efb6df338f9257428e8e398  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u32.c
  147c69113cf2dd038754b5e73be7de2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_n_u8.c
! 71b60a4e1425e3e6fc78245a31b80d4f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u16.c
! d9fbf42d73800f3b4075b319dbf90240  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u32.c
! 616ab9a56a8c64320c3d9f8b4c401280  gcc/testsuite/gcc.target/arm/mve/intrinsics/vddupq_x_wb_u8.c
  eee1f0db49f2fc0a7e9ba421e216433f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_f16.c
  e793bf622ca0edf7347b76f5ab8a7b95  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_f32.c
! d8bb6d0f5c35b83264ea7fee1a9749ae  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s16.c
! 8fc1936e87e1518787ea359cdf54a6b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s32.c
! 9a6ab2a6da45fe56b3b7ec51460db906  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_s8.c
  dc3bbe82f0ada40b2478603578aa8315  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u16.c
  697a31f795106526b183dc7c8cd59d31  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u32.c
  e123ffb87aa6243074119f950a80a899  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_m_n_u8.c
! c67d1624422c90a483512738cb7e5386  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f16.c
! bb3ddaab68b136b0fffee0ed8de22aaf  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32-2.c
! 4363e688c8b151d8e61922d8ebb64dad  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c
! b5ee178478af57b2b6bd0b390ad47d7a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s16-2.c
! 7abd1ae5e2a71754ba681212841beda8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s16.c
! 01f971558d30f21c72d7d0323ef5e0d1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s32-2.c
! 3704938d8fdd8a927d5ba9d8baf76254  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s32.c
! 2a614501c51e127e65ba2e3802bcfe18  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_s8.c
! a1f2d80686e03aa670e94bee6fad76c4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u16-2.c
! b90a83fba7ca5c977011ea74a1530595  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u16.c
! 4dcd365f25cfbf7da4431ea81c4e24eb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u32-2.c
! 9703a99383a3c94f98ed7c232a87cbac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u32.c
! 44a45ec527c1c43e647ae9c897f49213  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_u8.c
  9fdcb845b11f89c868101d5a6ee7d721  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_f16.c
  1c447195f3aeae143ec7d3eabe774979  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_f32.c
! 5ba9be84239138876acba8e8408e11e4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s16.c
! 6fc1ac4e3284b3d7a3c2f3fc52dc7a29  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s32.c
! 3d85a780e13168e8d9e8b4b87e6b7c67  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_s8.c
  b69ae74e9837313d281bca2f9e61513c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u16.c
  e3f60e81da7b88bc2f02934cbc2fa837  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u32.c
  1db93bc353932f7f224fa81f56c75f74  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_x_n_u8.c
  4c23f55d6612277e6b2dfb173cc662ac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u16.c
  8c6c2d59e4cc6e27f5ef6cd22558e480  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u32.c
  e69fd60528b58f1ff784453a5ce25357  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u8.c
! f3760d532f5b597382af412297ca65c9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u16.c
! b45cc017efa08e74e0d691d5887a8a70  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u32.c
! cd4060263239d87a496b79b1a2099c22  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_m_wb_u8.c
  d9afebb0a62a83db7cf5580d217f3368  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u16.c
  72b1a20173f517dc1500a3fd9875ac24  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u32.c
  bf615847479b081df22eedf27bf22b22  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_n_u8.c
! 6fe1654bf885bdedcee99af0c0ee1327  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u16.c
! 673af50e9714f979fe2236c08bc67b9f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u32.c
! b8af603f719b222cbe82b3bbb6dae706  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_wb_u8.c
  9ecf68ce8f1e166c13201dbb644d36c2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u16.c
  f324d05ec647f8d9b4ba206d2f743842  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u32.c
  9b36f33560b26a2cd4a1960bd890a7cb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_n_u8.c
! ce0bca648001a7a6906bba42bee41c4f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u16.c
! f47715f1bbe93a8890077ce372319c30  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u32.c
! 965968f28c97a7bb1e612477904b264b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vdwdupq_x_wb_u8.c
  a2ad73d2ac11098eae3ff3ca547ace54  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_f16.c
  27dd9e221735900d4f4a84087a280ebb  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_f32.c
  075b37df91b0d345c450911aae567b91  gcc/testsuite/gcc.target/arm/mve/intrinsics/veorq_m_f16.c
*************** bc141e4d1e010a6e831ec18caeeb077c  gcc/te
*** 65685,65723 ****
  526a01507871f88edd6072fdd4822ec3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u16.c
  454533070618063f624b9a314c1b7acc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u32.c
  5c4498a1e3af8f8451de2ba6fe0ba9ea  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u8.c
! 717b368ad8cd66b8843199267d5dabf7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u16.c
! b7af210b5ea1c1e5837b030c1d4db887  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u32.c
! 72eb28c9431a867f1d42e7185a783fe0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u8.c
  916a6baf90898cf4fdf86665ccb6185f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u16.c
  1779e9b98f0e158ccb19d01f7c8ebdc4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u32.c
  099d7aaa0bc77d6ea363e3e5ee5d51fb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u8.c
! dc3ed0e3e64bfdc4a62199c97dc9a57f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u16.c
! f107fa1247f0a2dc52a3cc4a3fd74f04  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u32.c
! a47971a41846fac69d076c67e408ec68  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u8.c
  6650efa310efe8d4f96747c0d444b2ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u16.c
  eedf4374fdb958b330edb7623645958c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u32.c
  b2edb8160e6ecc767c80f2983e5fdd67  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u8.c
! 48b8ec39fd4c282f05728cfecf143fff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u16.c
! 70e7dd27975bf2cf5e5185338e3fe253  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u32.c
! 6610927a8274d0bbf55a9553fdf840e6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u8.c
  363bb841f31ef6858d3e4e73651338ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u16.c
  dbc8a1162b387d844c58c8e7a3e92261  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u32.c
  1685c34a08c6db697f9058bf44fa9b69  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u8.c
! 15247ddf54182f246feb53572a7354e1  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u16.c
! 76bc11c9da82dbe5c59edfc0b4798531  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u32.c
! 703847f17780531e50016c01a4155b5e  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u8.c
  29f1daa3a0526ecce4c399a389db3b6f  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u16.c
  2e57a650168bfca9258134c775e1ee14  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u32.c
  da334762f1a8386a43138b2c05a5b0b5  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u8.c
! f9b6521c9a440cf488385b2544c4e2fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u16.c
! 67b532d3095330cf9c85813305e30dd5  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u32.c
! 61112b698664449c6f70cbe3afe6840d  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u8.c
  14598cbd1393a5de42c15e80b6a30256  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u16.c
  b0b55c5bdef888cb3c4760d712b21443  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u32.c
  b5bc3c9dfddac3a9a87a8e8f302fb0c2  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u8.c
! 73fac9d50785026af3de12f4d70fef8d  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u16.c
! ce9125a39efad7aa5c00deace0cfa6ce  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u32.c
! 5c107b52df9868babae2770f5e6790cb  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u8.c
  73864c8e66a358dde0ea3ecd547adfde  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_f16.c
  1b5819efdeb3a44fa189f34a6683d65b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_f32.c
  7323da9867a6d921741dfda03d21e9a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_s16.c
--- 70106,70144 ----
  526a01507871f88edd6072fdd4822ec3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u16.c
  454533070618063f624b9a314c1b7acc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u32.c
  5c4498a1e3af8f8451de2ba6fe0ba9ea  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_n_u8.c
! 16505e6470a5b2c7fb4e8180d0065f63  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u16.c
! 11360357eda901a3d20f6b86aeac9410  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u32.c
! d8e59c1324fc88051a329062758e3cc6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_m_wb_u8.c
  916a6baf90898cf4fdf86665ccb6185f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u16.c
  1779e9b98f0e158ccb19d01f7c8ebdc4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u32.c
  099d7aaa0bc77d6ea363e3e5ee5d51fb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_n_u8.c
! 51d7a05086e1e9bf602cb3f24512d691  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u16.c
! facb16fa038c1fdbd7a315682fddc053  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u32.c
! d4837a98f3ab6660e53046ccd687ebfd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_wb_u8.c
  6650efa310efe8d4f96747c0d444b2ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u16.c
  eedf4374fdb958b330edb7623645958c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u32.c
  b2edb8160e6ecc767c80f2983e5fdd67  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_n_u8.c
! 3c3b188507b599b5d1624dacbb780ef7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u16.c
! cddebc3915d27c25160f6ac2588df5b0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u32.c
! 178bbfe8f757d8d13499df17beb60590  gcc/testsuite/gcc.target/arm/mve/intrinsics/vidupq_x_wb_u8.c
  363bb841f31ef6858d3e4e73651338ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u16.c
  dbc8a1162b387d844c58c8e7a3e92261  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u32.c
  1685c34a08c6db697f9058bf44fa9b69  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_n_u8.c
! 89f385ab54bda4f5c3716e3cc81f2098  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u16.c
! 1e33abf647fe557fc30f4909a7e5c105  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u32.c
! b5a3e87c5ede2671cf3b8feb95efdb11  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u8.c
  29f1daa3a0526ecce4c399a389db3b6f  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u16.c
  2e57a650168bfca9258134c775e1ee14  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u32.c
  da334762f1a8386a43138b2c05a5b0b5  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_n_u8.c
! 34919d0c26a98e1c68dffe063348338f  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u16.c
! b092f293a4f58b98b0fdfea436894a7a  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u32.c
! e426984a87e7bcf9384ef260810588f6  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_wb_u8.c
  14598cbd1393a5de42c15e80b6a30256  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u16.c
  b0b55c5bdef888cb3c4760d712b21443  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u32.c
  b5bc3c9dfddac3a9a87a8e8f302fb0c2  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_n_u8.c
! 4b56d917c890d06ae91641a6158d71eb  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u16.c
! ecd41434f3ef2de659598369788a7a98  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u32.c
! d9f2d52ba54e96727cbeadb2135683d4  gcc/testsuite/gcc.target/arm/mve/intrinsics/viwdupq_x_wb_u8.c
  73864c8e66a358dde0ea3ecd547adfde  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_f16.c
  1b5819efdeb3a44fa189f34a6683d65b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_f32.c
  7323da9867a6d921741dfda03d21e9a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vld1q_s16.c
*************** a0d6f7dd519e838c68c3d3fd19dea057  gcc/te
*** 65774,65783 ****
  36d5f6eef6bee1173fca38558959bbfb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u16.c
  f23f5cce354fdd944fde2c9a54ccab2e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u32.c
  467ca538761409c2e9948a23465b9df1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u8.c
! d6fde745020119399630059aaa8b2013  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_s64.c
! 3b8f3cdcac1f1917aa633900d37f56b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_u64.c
! 1c9ee991964b454eae0b1f9dc6eacde7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c
! c4940fa1c494f77e7b8074a9164d626a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c
  b03cec64ad79fe795baeebb0c4c140c0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c
  868c80954beff4bbd4fa2f52bc553829  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c
  443ca2170110b80a5665f3349164ac8a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_s64.c
--- 70195,70204 ----
  36d5f6eef6bee1173fca38558959bbfb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u16.c
  f23f5cce354fdd944fde2c9a54ccab2e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u32.c
  467ca538761409c2e9948a23465b9df1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u8.c
! 217ffaa17a48a380ad7d6e0b14a06a5f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_s64.c
! 6b797b80cf3e5760b1e724304f9f720a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_u64.c
! 6c1cdf9fabad9b0a91a18114a279d7ca  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c
! 2be8ae639499cd4092dedc2db226f763  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c
  b03cec64ad79fe795baeebb0c4c140c0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c
  868c80954beff4bbd4fa2f52bc553829  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c
  443ca2170110b80a5665f3349164ac8a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_s64.c
*************** a784171370ee888e8a7d32d5bb1b2379  gcc/te
*** 67045,67180 ****
  e827108f7e891623e4d78420f9cffec4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u8.c
  3213b1f12734513782cb09134fa1cf65  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f16.c
  8f3799622bf9365b0c6122ec41285f00  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f32.c
! 0724d6e806dad6a0671e1e1030632af1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f16.c
! 5c93964a36e41d018e4b079091f17f88  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f32.c
! 15331b6bb19d2c8bc7f58e1103b19ef7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s16.c
! 56710724c52d4ccaefe8311e21838e82  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s32.c
! ec79b84bf99c471ebd242745f05d7081  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s8.c
! 02dcff2fbdbaa32c11780a228054a19b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u16.c
! 716955523861c2f2fc924f3c6da4599b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u32.c
! 6191b75197c8189efa5e192e5ea09d57  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u8.c
  a762b293ef18a574dad71d43f925d66b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s16.c
  19253c689f5f50e8a4f2df711234de2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s32.c
  c578767e4bf5a50b512b4bf54a3da51c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s8.c
  a6c544c64ffd847f9cc23f86b92eef1c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u16.c
  d3fdb6810590ac585bb82dec1e188563  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u32.c
  a8490fe32916753f23e24d9fb33fbf87  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u8.c
! 9f603e079fab043b8c08a8786bf24e8a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f16.c
! 41daae8e63f53762def00088b3df1d49  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f32.c
! ab8fe598ed86f6cb119a3abc035da277  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s16.c
! 000c50019cffb69fba16d4cb23828438  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s32.c
! 39ae1583a3ff3bc5a606757a8df7ff1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s8.c
! 9ec8dcfbc6c1ee2dd8732f7366287d38  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u16.c
! 30704c51ee061acbcdc08a921da70646  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u32.c
! c8af6e488934cd8d38e647c50b1b722e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u8.c
! 67b07fc95f73ffe8a53a06192c6d4a77  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_f16.c
! d2150ee33ccd5548321bf1ce5585f56c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_f32.c
! 253cda0bffab825189e26add3f7f7d0a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s16.c
! e53a4a92fb76a8e8184abe96f1956f72  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s32.c
! 148aec1983dc44d313abdcf46b073789  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s8.c
! 30e1e97a73581fc564eb36355229d209  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u16.c
! 697fff9f51c573800a826c06ee588841  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u32.c
! 8588dde66548b9679f6ce9dde822d6a7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u8.c
! dcd3d2a9fd1d7f61a03bcb14101f005c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s16.c
! 10e0f1d8e63a27cf8d39d6c863ef7644  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s32.c
! a748bc084d3eccfc6b6578ab7254c0e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s8.c
! 629dcbe5c7ac0ed0e29b62a8eb2ac376  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u16.c
! d0187a66fe25fb9032bc14678f74da4f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u32.c
! 4f1240fdde118314b5b573330b909531  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u8.c
! 86a1134122a8f4288df5181cae382af6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s16.c
! 99df8b4d2ea722f3c4d7deb955c136fb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s32.c
! 24643a8a18ca219e5928816a31ed370f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s8.c
! 5ec0566b8d38ffd15dad48e20b9164d9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s16.c
! b6053063ceec316f242efc7d8b2f46df  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s32.c
! ce5f0e7949a5b711759cc0af3bd99fd4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s8.c
! c8f82c715326cc5f259d70e8d6a4f957  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u16.c
! 255764b44217d3d9687320a2df4b6606  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u32.c
! 0267ac925f0460ea5f8b5de8914b3295  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u8.c
! d758ab4d949ee6dbd1e354efee36ed89  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s16.c
! 17c7ee21a175689b193d951e6f72e282  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s32.c
! 7f7773764451056d042d9d2a50d17115  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s8.c
! 66ee43f2d76f0cfb4926f0b9efcbd791  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u16.c
! 820488bbfee500a3a28d948e7dc1cbdb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u32.c
! b5633a4ba10b1f283fc453a28f481757  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u8.c
! bb5d4fb09722d51a32e1cf47fb1dfbc8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u16.c
! 6d5a2372e6865fa59fb5dedf62dc82fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u32.c
! b3082b6d93cda945a4ef6d5a4e06f6cb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u8.c
! 32937e0d4baf85baeb781b46028c8360  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_p_s64.c
! 5d00d77b0cfc7178af3a58ecf10ce094  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_p_u64.c
! 400bebd4af9dc6d6e930dc69927559a6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_s64.c
! dc9bd9bd2253478851bccb103863c2eb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_u64.c
! af7228086b1ccb840d26936205367104  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_s64.c
! ed2dad487c90f7a47302ec3eeb9cee1c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_u64.c
! 0a833374dbc3be242f6cb6db4a689e0c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_s64.c
! 535615dbb45c3e523d045f54cd34e791  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_u64.c
! 925beb873b67c184a3f50f47ed94f067  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_p_s64.c
! d75d7a66636c48d3c997e15715f0f461  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_p_u64.c
! ad23759aabb74933239c1304edafc0b5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_s64.c
! 9d104e5acd40f8ff3d85ece7d5f6e167  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_u64.c
! 0e453ef42e51837489753234731d3d5f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_p_s64.c
! 27d8d7ca9e2cccc4844b25d0683b521b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_p_u64.c
! 4c51a9d9a6b657cb0598505119f71db4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_s64.c
! 1553d63329d86530d40a611027767f95  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_u64.c
! 1762dfae4788e87a844f3dc033966c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_f16.c
! 741973b3b602727b8a74fae8a4c37691  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_f16.c
! f575e4de6ee88fb04c09b44b0e6314d5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_s16.c
! ea143fe367f84b559511adf2aa2dd905  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_s32.c
! cf4964ca92c181cd715b8f3febe325ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_u16.c
! 0bb6fdc1ed4b221626914b5634da01b3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_u32.c
! 895d67580708c3a3def8883ee236b3ef  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_s16.c
! 8dd236eb85598db7f24b949b2c77c638  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_s32.c
! 945fc8ca1b3f39b65abed50c9314d548  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_f16.c
! 11788e4a982a2d52d746b5e9ebb6237d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_f16.c
! 26b377a7f3cb830dab35560d3c5f180a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s16.c
! f3e7144bd94f046fe97175431d184f84  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s32.c
! 9a834b112222a520a5093b56e834f515  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u16.c
! 2795b193747693cbe9798e8dce7c608a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u32.c
! d47181645a9238eafa3f70a6b1446438  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s16.c
! e254524702795aafd8a59bef983845a7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s32.c
! 1fdee58873b1b5a1fd37e6ce713163e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u16.c
! ed3d2b5cbbb2d72f60539cba48bb8ec5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u32.c
! 309d5460a6fa94899f7bea118c9e9a65  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_f16.c
! dc912b13070ba709b4d886bd0a9880eb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_f16.c
! 4ffac81e22ed649191a3b0a98b9e9fe1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s16.c
! 1833c8f8536d0e205c05ba68fb26ec17  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s32.c
! f8f059ad49124413ba1a93297d906f1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u16.c
! 22180974ea2a86fce1b171314582f29a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u32.c
! 504bb29dd89c62281b2aebd233c37bff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s16.c
! eca9db52151657585a5ac5185f6ff0fd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s32.c
! 7d989d56885a8accc8a515f6ba236a25  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u16.c
! 38c49b0a88b21ba3ab1be320f6c4860b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u32.c
! e7177e70e520ce41f6a6561762d2e530  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_u16.c
! e8cf2cbe760bcd3771b8561c9dc6f5c6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_u32.c
! 147a8255930e1be4a7b823e6187f4251  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_f32.c
! d5522736fd59b91b84d81a1b708ca557  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_f32.c
! 7b885be548c8e5af7fde094d95a7c8f0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_s32.c
! cf1b197cc92d4808d9a38606d168d3f7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_u32.c
! e460637354d06d6bda46507b4718cf84  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_s32.c
! 522e14c9d1a58960c73b8a4bfaea6780  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_f32.c
! 233840efca2447b8beaa8ec904e61054  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_f32.c
! c3462c7446a439d3a04289e10a894a38  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_s32.c
! acfd1cbcb0e753d4402a931dff08cfc3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_u32.c
! e0f5f7cae9f727e3c2ff5da6338da179  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_s32.c
! ec7ac24d8f7501f2ac2bb6f633220df3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_u32.c
! a3ae9fc914ba5cd264542a36e05237e6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_f32.c
! 5d647b02b26f84e19a190a3c8b7cac0f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_f32.c
! fc4b3547e63083746bfe20c5c7b57e94  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_s32.c
! 9759459790b9b4f440eac221bf16759a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_u32.c
! 303a0445fcdc3cb5107320597160b0fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_s32.c
! 6079ebbc3cc7c96212f962c4140c498e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_u32.c
! 942935e3d3e39b42c5cdd44e78322b6b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_f32.c
! d5f939a756a71bbe4056612098f04246  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_f32.c
! e83960df986fb9583a44bc531f5648ed  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_s32.c
! 673b0ded1c7ae4cd3d795f1b027d089b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_u32.c
! d203151d0fac672ddc69b98f5065fe69  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_s32.c
! 94126341b4b0c0cabb6a8b92dfb531af  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_u32.c
! bd3a7088dc8add984f2821cae6840298  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_f32.c
! 968794400bc9e6c6ad1e281a2a9263a6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_f32.c
! b6648e41550cfa8ffa67ff6809603c3c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_s32.c
! 340ee6c0dfbd14ef1f00e8579d9e3ebd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_u32.c
! 4e60eeea36ab55b3b4347a11d9984f43  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_s32.c
! 8bb4176acb6b90a69fafdf1d64ed707b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_u32.c
! 3227bc9e0332ccb3fceca03d419e0899  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_u32.c
  471a4adf7f7f6c36a9f8dcd63d7c9f92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_f16.c
  ded2a903704f5d207c652909ea0350c9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_f32.c
  7213a728fcca543b05dc9327980fbae4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_m_f16.c
--- 71466,71601 ----
  e827108f7e891623e4d78420f9cffec4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u8.c
  3213b1f12734513782cb09134fa1cf65  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f16.c
  8f3799622bf9365b0c6122ec41285f00  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f32.c
! 26900e51330706da0c718eac733a9062  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f16.c
! b5011d9b004c46ce0087f2f4b8074087  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f32.c
! 6d1753d3be3e4c37e6c5aa6989a5e4d0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s16.c
! 682b40f9a392eb1068c85d5ad1fe215a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s32.c
! 74a07428320caaf4bf1daec93f54575d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s8.c
! 06cdd62d0d74643f429fc5fffd652951  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u16.c
! 355039bfca3cf733f78fc4b89ab8f6cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u32.c
! 700ebe3303fa0463a8672a25a5d60eca  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u8.c
  a762b293ef18a574dad71d43f925d66b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s16.c
  19253c689f5f50e8a4f2df711234de2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s32.c
  c578767e4bf5a50b512b4bf54a3da51c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s8.c
  a6c544c64ffd847f9cc23f86b92eef1c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u16.c
  d3fdb6810590ac585bb82dec1e188563  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u32.c
  a8490fe32916753f23e24d9fb33fbf87  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u8.c
! 15f333be53947d1f1969e530739f2917  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f16.c
! e2758a09c7c9b87a44a1f518eaf0dde2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f32.c
! dbe9d6e0970bd0074d6c6a9a5004eb4f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s16.c
! ef0c975e234cf1d5b198939eff5d6345  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s32.c
! a113ac0b6d6e6371f6fa7be6f38d63c1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s8.c
! 0aaf27de3b30c3ffd40f206f7dd54703  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u16.c
! 02df2d7d9e614b9724b14d9c97ff0a17  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u32.c
! 4573115acdcc3d194454de9e38056a40  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_u8.c
! 0bd60cb250b5832bdb896cb28324251c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_f16.c
! 11badda4873818fc6d12c7da4afee765  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_f32.c
! cab09b95b56fd27381038e22b7cd8580  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s16.c
! 51bd35edb57bbbe6899d71529d74fa03  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s32.c
! dbdf5f8de965a14fd88b78830d130d8f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s8.c
! 6e62469ea8b470386a714bd98e3306df  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u16.c
! d33a0a8d99a127675559286a2e743c04  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u32.c
! 07bdd49a323f4c8b817c6ccf7a31f4fd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_u8.c
! ede3b93d961a40f560532172afa4387a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s16.c
! 854f5df0c9417518bb74f05cd9aac448  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s32.c
! cde96878c71ac615708e2acfff4977df  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_s8.c
! 77d3f33f365e02026ed71975a762f153  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u16.c
! ba69cdb384828ab3ee09d6ab1123c3ee  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u32.c
! 1a6c9059018cd6e1cfa70978e5542592  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_p_u8.c
! 7765615f2395434b52dd0c209c4ccda0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s16.c
! 58d8511487d5ea2f784f92f1c04d034f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s32.c
! c8fe4231127999a676453bb5685a0630  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_s8.c
! 2f7b1e25fdd65488d1a0845c14de159b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s16.c
! 12e227ffd1a61f78c3980e1c3fceeabf  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s32.c
! 735c7a21a02a63b224981c3d945047d6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_s8.c
! 8f37bae2a9ba8a8b2721911360a536a1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u16.c
! 9839e14893e08a6e8c7b1c6b1111ab0f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u32.c
! a4d788408e7e94a43385e1c8c95f5644  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_p_u8.c
! eec4e89007523fb057b03946c573efdc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s16.c
! cbb75f175111076fa2f3aaadfe6c6e6e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s32.c
! 9a7606b68b837345826a170b35c31627  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_s8.c
! 157757e13a19561ce8a2387ec182123c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u16.c
! 11fb0d054016fa44207d604e43d3bce5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u32.c
! d1d169abf70856bbcba83052c0bdb81c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_scatter_offset_u8.c
! 877cda23c04306f0083019fd5b8e0765  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u16.c
! 37fa34121bdaebe0bf5904e867ae2da7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u32.c
! 42f973bf524d73339aed7bc911f41377  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrbq_u8.c
! e6d7b146aeceec00235219929b736f61  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_p_s64.c
! 678adf54b081aa4e1a77b2e0ca0fa73b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_p_u64.c
! 9b52321241113c125f5e201de1b0db4e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_s64.c
! beb5db29b7eef1f6da67076c94b76687  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_u64.c
! 3a944ad210e596b118f2de7e0f0cd9d2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_s64.c
! 5bc82a141ec7176261bb58cbf1d9cf46  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_u64.c
! 94df755661bb407d2be9ba1db9d2585c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_s64.c
! f6f53913c074cd2dcbcc230a1973fb4d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_u64.c
! db65bd864739dcdbe453fd965eb7c926  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_p_s64.c
! 47ae0ae6580699b50c7c5bf11664ae69  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_p_u64.c
! a30453008cf75b68bd32a5219543eb78  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_s64.c
! f381edd17ae7d08963e7e52a031acc0e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_offset_u64.c
! cfcfab2183d2be6741b206c7cacf137a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_p_s64.c
! b3d0ddb52c08e64b292864c42605874c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_p_u64.c
! 292aeb52ffbfda2a366539e8e763e5ef  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_s64.c
! a2870decc7cb705e34d7629028de88f8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrdq_scatter_shifted_offset_u64.c
! 919a3ca958e231e2c511879842b497f4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_f16.c
! 713d1c7ecfdf4245cc276af39654ff30  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_f16.c
! 643a82c2cfe95db271985e3b129626af  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_s16.c
! b24c7effe87feae29d951e5d225d1db2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_s32.c
! 8e459bfdeb722924f6bbf57474ba516e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_u16.c
! 70bc282704175a20fbefc26a4c10260b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_p_u32.c
! b9f5bb916d1e5fbea2074d783f1d6259  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_s16.c
! 628f46e4a7447570ee3baebf94bd834a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_s32.c
! f024f3d1b8d764bf2d43d4d8af717453  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_f16.c
! 5023eadb28fd4b4a30e03ff449981a46  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_f16.c
! b4114a15e880eac2b7fdafcc9a775cab  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s16.c
! bae1e1b994a499cb7066dd2f35e78590  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_s32.c
! eac293662be43be5db49cd9040a40b4a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u16.c
! 457fd22d37217a38f1016216f4f9aab5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_p_u32.c
! 06b2b878bb172b3b6d734b5af83d5cac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s16.c
! 63c2bcaac405cbd18970c08c3b574efd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_s32.c
! 1c6fc95e760db7fe508725f25a630960  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u16.c
! bb725d950122384982442dec9f05b2e6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_offset_u32.c
! 1216a31237326ea925ed7b85ab226434  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_f16.c
! 11680c7d89604fc6f6126e702b9448f8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_f16.c
! 9d764a2f7e6422714a765624de6861d8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s16.c
! 734a52ef4defcd4db420f7d8cbdacd1b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_s32.c
! e45a5251a2f529ba95e9c1a6024b0d51  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u16.c
! 8ecd69c48ce002cd345e52a61667c20b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_p_u32.c
! 8f68643db13ffefcd3622c5025ba4953  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s16.c
! 6b6638ece45fd7b8448c839a7003c249  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_s32.c
! 1b9cd12a1770124abb73c4abd49d0dc2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u16.c
! f3e33a7c79166eac88522b392f8b1ba2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_scatter_shifted_offset_u32.c
! 4e4651ddeb24b80fe7dc1239ccb793b0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_u16.c
! 785e2b0252ed1c06eb7099800bf2e9c2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrhq_u32.c
! 3aaeb246e41fa656a35975ab8729c162  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_f32.c
! e7a094329cf5f4dc8a41492aa6a63ceb  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_f32.c
! 2f921f86940c8918abe2683d1b1e6e2a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_s32.c
! 28dd313013286a181f88b6e064a9620e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_p_u32.c
! d003ab75e063ddd662fbda988feec905  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_s32.c
! 26339e7079e232c6fdeaa7c85971daf0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_f32.c
! 2729f90b06f6817e0ca9c6f3d49d3bec  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_f32.c
! 9365f87cd625c3ec17176da6e282c859  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_s32.c
! 140d02408af035b5257040cb8c011095  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_p_u32.c
! 8512b2e28134171a1d0fb866a06e0b50  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_s32.c
! ce5c5902e579cb37feaeaff0f28186e0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_u32.c
! 6c336250256d2cd89ac6168b72dba851  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_f32.c
! 3624911aac3d89060bcfc139058f7492  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_f32.c
! cc6e9c55b651e1e396c7e09f9c03f61b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_s32.c
! a4201b49f70fdde81255b565c07dae9c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_u32.c
! 3a785334ff0becb409b1175828863604  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_s32.c
! 8f07b019b5807e47568c9ee1d09ace8e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_u32.c
! bb852f7faf025a0ef0770d9295df8070  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_f32.c
! afc0c57d26d71a8c22fdc017c00e518e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_f32.c
! 348ae68f8eb7523f05450560224a7717  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_s32.c
! 734f879dd357a1bcc4706a98397610e9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_p_u32.c
! e80ec897b4e96bd5c6096d2b67b06e3d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_s32.c
! 873d2d5ff4f1a46baf695dda178a5fce  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_offset_u32.c
! b90cf609d6aeace393d9dd6b4ff44a4c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_f32.c
! 7ea06356dd4c6c40908d2e4bdc75798f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_f32.c
! a64f6b4ecbecc170e20c5841e33513fc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_s32.c
! 0d80820059e11ff06a2941446ee77b37  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_p_u32.c
! 1c89a63ebef6fea33e5ed7911936ac56  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_s32.c
! 07bb8118de9ede2aecc8ba2a0f8d4db6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_scatter_shifted_offset_u32.c
! 4066151882fc6943586c6d286eccacb2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vstrwq_u32.c
  471a4adf7f7f6c36a9f8dcd63d7c9f92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_f16.c
  ded2a903704f5d207c652909ea0350c9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_f32.c
  7213a728fcca543b05dc9327980fbae4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_m_f16.c
*************** d5068cbd7a08c2cb2252064ce7d7f5b2  gcc/te
*** 67227,67233 ****
  1b1caac6115bffedba10607ae46ecb1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c
  dd8187345c556677b24a6d6363dd2cf5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c
  140114add4d912efe3ae58837e07a2e9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c
! 165b841f1c235a0a27e31a7ce5173f93  gcc/testsuite/gcc.target/arm/mve/mve.exp
  0d8124a63664354decc1577f5a019490  gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c
  844c3ba72612fb8dee47abb3578cbd7d  gcc/testsuite/gcc.target/arm/mve/mve_load_memory_modes.c
  c0dde028cd8e5d714e98c74caa23c249  gcc/testsuite/gcc.target/arm/mve/mve_store_memory_modes.c
--- 71648,71655 ----
  1b1caac6115bffedba10607ae46ecb1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c
  dd8187345c556677b24a6d6363dd2cf5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c
  140114add4d912efe3ae58837e07a2e9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c
! 92b7e8e12682668b18549f2c23cc0d54  gcc/testsuite/gcc.target/arm/mve/ivopts-3.c
! 34578673049fe85d64e70219f1db08ae  gcc/testsuite/gcc.target/arm/mve/mve.exp
  0d8124a63664354decc1577f5a019490  gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c
  844c3ba72612fb8dee47abb3578cbd7d  gcc/testsuite/gcc.target/arm/mve/mve_load_memory_modes.c
  c0dde028cd8e5d714e98c74caa23c249  gcc/testsuite/gcc.target/arm/mve/mve_store_memory_modes.c
*************** bfb42861506a8becbe4e801a6916b724  gcc/te
*** 67264,67273 ****
  be3211364ab68484e27dc759e0f73f8e  gcc/testsuite/gcc.target/arm/mve/pr108177-9.c
  3b5b52b7462c96502cbd244f99969b24  gcc/testsuite/gcc.target/arm/mve/pr108177-main.x
  18522c58df95c4bb74f07216f5d84eb4  gcc/testsuite/gcc.target/arm/mve/pr108177.x
! 862598210b4a0190e89ee162ce0a04f3  gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
! 213c8f121b27265f0cfdb5f2363a9259  gcc/testsuite/gcc.target/arm/mve/pr108443.c
  1c540ef82a18535044e3c7c503f29ca2  gcc/testsuite/gcc.target/arm/mve/pr112337.c
  095178c5b2acf07de5ab779ded29286b  gcc/testsuite/gcc.target/arm/mve/pr114323.c
  a27c7480ff5cba860dda5da683bb3b87  gcc/testsuite/gcc.target/arm/naked-1.c
  292c423c2aa66b03398c922259527367  gcc/testsuite/gcc.target/arm/naked-2.c
  2d75e6bd9379b6e090e6104b97434376  gcc/testsuite/gcc.target/arm/negdi-1.c
--- 71686,71698 ----
  be3211364ab68484e27dc759e0f73f8e  gcc/testsuite/gcc.target/arm/mve/pr108177-9.c
  3b5b52b7462c96502cbd244f99969b24  gcc/testsuite/gcc.target/arm/mve/pr108177-main.x
  18522c58df95c4bb74f07216f5d84eb4  gcc/testsuite/gcc.target/arm/mve/pr108177.x
! d104c798882729bd8931c673334d0232  gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
! 070cec1d23cd06b6c41a5841fc63f865  gcc/testsuite/gcc.target/arm/mve/pr108443.c
  1c540ef82a18535044e3c7c503f29ca2  gcc/testsuite/gcc.target/arm/mve/pr112337.c
  095178c5b2acf07de5ab779ded29286b  gcc/testsuite/gcc.target/arm/mve/pr114323.c
+ 4ae6f7347fb5ee353212eb91d46cd67c  gcc/testsuite/gcc.target/arm/mve/pr114801.c
+ 8402a0860b5d6d3c80715f2741e4a862  gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
+ 31e2d92c29bd8c4dc1a82b6e5740b459  gcc/testsuite/gcc.target/arm/mve/pr117408-2.c
  a27c7480ff5cba860dda5da683bb3b87  gcc/testsuite/gcc.target/arm/naked-1.c
  292c423c2aa66b03398c922259527367  gcc/testsuite/gcc.target/arm/naked-2.c
  2d75e6bd9379b6e090e6104b97434376  gcc/testsuite/gcc.target/arm/negdi-1.c
*************** bce9be46a9e956c5fcc66bfb68691f0f  gcc/te
*** 67289,67295 ****
  7783093cce901b3a47068de662227a6b  gcc/testsuite/gcc.target/arm/neon-offset-1.c
  2f0d808ded25a27c867026ac6296d1b9  gcc/testsuite/gcc.target/arm/neon-recip-div-1.c
  1f48b8fad239c5f29804610f9f08ce99  gcc/testsuite/gcc.target/arm/neon-reload-class.c
! 79e2b86f1be68bc1014fb6b480d5322f  gcc/testsuite/gcc.target/arm/neon-thumb2-move.c
  add75049520bb3c0c677317469ccb57e  gcc/testsuite/gcc.target/arm/neon-vadds64.c
  323bfa59651e6ef8beef2767edd16ddf  gcc/testsuite/gcc.target/arm/neon-vaddu64.c
  8dff2a615d6d106e1b1bab9c38292826  gcc/testsuite/gcc.target/arm/neon-vaddws16.c
--- 71714,71720 ----
  7783093cce901b3a47068de662227a6b  gcc/testsuite/gcc.target/arm/neon-offset-1.c
  2f0d808ded25a27c867026ac6296d1b9  gcc/testsuite/gcc.target/arm/neon-recip-div-1.c
  1f48b8fad239c5f29804610f9f08ce99  gcc/testsuite/gcc.target/arm/neon-reload-class.c
! ec34622d4bccd4ebbdf6fcf3d3936176  gcc/testsuite/gcc.target/arm/neon-thumb2-move.c
  add75049520bb3c0c677317469ccb57e  gcc/testsuite/gcc.target/arm/neon-vadds64.c
  323bfa59651e6ef8beef2767edd16ddf  gcc/testsuite/gcc.target/arm/neon-vaddu64.c
  8dff2a615d6d106e1b1bab9c38292826  gcc/testsuite/gcc.target/arm/neon-vaddws16.c
*************** bf4f2e90aa8d8babf0207240dfbdb601  gcc/te
*** 67367,67393 ****
  ee6c93458553e35ec5433a6d1072b62e  gcc/testsuite/gcc.target/arm/neon-vtst_p64.c
  78dccf4a87c6246e318b6f4139aeaad9  gcc/testsuite/gcc.target/arm/nested-apcs.c
  46fabf7d3b6b2ea6203c6c79381673c9  gcc/testsuite/gcc.target/arm/no-align.c
! d9176edb2d4bd04cd070915cebff5f2a  gcc/testsuite/gcc.target/arm/no-volatile-in-it.c
  6188396ca8a78fbad6544a226338aa28  gcc/testsuite/gcc.target/arm/no-wmla-1.c
  79001c723c0e36b517c6b940c0b48388  gcc/testsuite/gcc.target/arm/optional_thumb-1.c
  dd0827774a767586a558dee375d638d3  gcc/testsuite/gcc.target/arm/optional_thumb-2.c
  269954746bcea7cb5769275244223510  gcc/testsuite/gcc.target/arm/optional_thumb-3.c
! cd79f6a8a6619bfb4deabfdd64ef1d49  gcc/testsuite/gcc.target/arm/pac-1.c
! 0f3f42e604f65aa2313ffa8acf201e4e  gcc/testsuite/gcc.target/arm/pac-10.c
! c0018f3211f42533b453803a006dcb93  gcc/testsuite/gcc.target/arm/pac-11.c
! 38aa4a9786740aa14e4c4c2fabab26de  gcc/testsuite/gcc.target/arm/pac-12.c
! dc0ea59198bb4b88b123d504d71bd2a7  gcc/testsuite/gcc.target/arm/pac-13.c
! cc9af8b6aa239043068417fdec46750b  gcc/testsuite/gcc.target/arm/pac-14.c
! 2a1747a35392425b764564116ce1285e  gcc/testsuite/gcc.target/arm/pac-15.c
! 31b59697e7c2e5d722b311c1db992cde  gcc/testsuite/gcc.target/arm/pac-2.c
! 7291ea4b4be321ce3192fcc52f62d4eb  gcc/testsuite/gcc.target/arm/pac-3.c
! fa870e6a2ce68f4ef67d537bd5a76fb4  gcc/testsuite/gcc.target/arm/pac-4.c
! 1f7d4cae7e86af72545b05285d5adc92  gcc/testsuite/gcc.target/arm/pac-5.c
! ef10b7803f7ace6199521b5e4c9428a0  gcc/testsuite/gcc.target/arm/pac-6.c
! 12b022cc37717c3bfd0b8e98e9ed0a33  gcc/testsuite/gcc.target/arm/pac-7.c
! 34aba47ad65c3950a41fc2c64c4861cf  gcc/testsuite/gcc.target/arm/pac-8.c
! 1f9b68eab435a69c70be7fdee6ed275f  gcc/testsuite/gcc.target/arm/pac-9.c
! 5fc600a11e9ef844b77eb834b6fd363c  gcc/testsuite/gcc.target/arm/pac-sibcall.c
  1115daad97541e167c5651bc1032e202  gcc/testsuite/gcc.target/arm/pac.h
  37a9218c79439946d7d0121ec2abee72  gcc/testsuite/gcc.target/arm/peep-ldrd-1.c
  ce2ea998f70f030c1e5c5cf0f3536bd7  gcc/testsuite/gcc.target/arm/peep-ldrd-2.c
--- 71792,71820 ----
  ee6c93458553e35ec5433a6d1072b62e  gcc/testsuite/gcc.target/arm/neon-vtst_p64.c
  78dccf4a87c6246e318b6f4139aeaad9  gcc/testsuite/gcc.target/arm/nested-apcs.c
  46fabf7d3b6b2ea6203c6c79381673c9  gcc/testsuite/gcc.target/arm/no-align.c
! 9bfe67cc819b40d2238e72a5539032ac  gcc/testsuite/gcc.target/arm/no-volatile-in-it.c
  6188396ca8a78fbad6544a226338aa28  gcc/testsuite/gcc.target/arm/no-wmla-1.c
  79001c723c0e36b517c6b940c0b48388  gcc/testsuite/gcc.target/arm/optional_thumb-1.c
  dd0827774a767586a558dee375d638d3  gcc/testsuite/gcc.target/arm/optional_thumb-2.c
  269954746bcea7cb5769275244223510  gcc/testsuite/gcc.target/arm/optional_thumb-3.c
! e04c780e6f93c7f3f29cee5b9d9f4af2  gcc/testsuite/gcc.target/arm/pac-1.c
! a7073893096735bb191a9c2b74f99639  gcc/testsuite/gcc.target/arm/pac-10.c
! 85d83f2a1e96b38009d759daad863323  gcc/testsuite/gcc.target/arm/pac-11.c
! 6b240b4e7b290bd2c540652141ce6b9c  gcc/testsuite/gcc.target/arm/pac-12.c
! b45388ab321caab8f9f53ad497540bc0  gcc/testsuite/gcc.target/arm/pac-13.c
! bc56713a5c8437a9399c4854ff7e1954  gcc/testsuite/gcc.target/arm/pac-14.c
! ba7b0bd9445b95da4aa34c411d708435  gcc/testsuite/gcc.target/arm/pac-15.c
! a47345a0063f783ef5518d8d7479479c  gcc/testsuite/gcc.target/arm/pac-2.c
! da7626e9cfd6fdeb936a04a4621faeb0  gcc/testsuite/gcc.target/arm/pac-3.c
! 223b800194f4ea38bd76d4dbd1e8fa9b  gcc/testsuite/gcc.target/arm/pac-4.c
! 1e6adb21f0d35231f725fea8e70aa967  gcc/testsuite/gcc.target/arm/pac-5.c
! c64f40a5e38fce2da75ad7f3d495767d  gcc/testsuite/gcc.target/arm/pac-6.c
! 535f33dc36289e153c892d50550ace4a  gcc/testsuite/gcc.target/arm/pac-7.c
! f4eb5a18a459dfb619edbceed66a4b37  gcc/testsuite/gcc.target/arm/pac-8.c
! 53b144af1380a4588c4bf558ce4695d0  gcc/testsuite/gcc.target/arm/pac-9.c
! 30aff8d76b4b23ac64cabe30c96e66e7  gcc/testsuite/gcc.target/arm/pac-sibcall-2.c
! 612b8f9ab22d38be18fb113bb9add31d  gcc/testsuite/gcc.target/arm/pac-sibcall-3.c
! 4ad298a531fd550ef767196cee00ad0b  gcc/testsuite/gcc.target/arm/pac-sibcall.c
  1115daad97541e167c5651bc1032e202  gcc/testsuite/gcc.target/arm/pac.h
  37a9218c79439946d7d0121ec2abee72  gcc/testsuite/gcc.target/arm/peep-ldrd-1.c
  ce2ea998f70f030c1e5c5cf0f3536bd7  gcc/testsuite/gcc.target/arm/peep-ldrd-2.c
*************** b78ed4b32814a22ad0cf1f46aee89cc8  gcc/te
*** 67399,67414 ****
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
  783749b808801f545a547539f41dec21  gcc/testsuite/gcc.target/arm/pr110268-1.c
  64df4c73d4d8e79ee289d41e18bf6095  gcc/testsuite/gcc.target/arm/pr110268-2.c
! e9f9686fc9b3d00e6675347491ea18ce  gcc/testsuite/gcc.target/arm/pr111235.c
! a1fe9428938050a47df83f9ccfccf156  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
  39327fb26a438561d0617a9bfe99c59f  gcc/testsuite/gcc.target/arm/pr115188.c
  3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
  0cf9145284e787c538df3913bd69a329  gcc/testsuite/gcc.target/arm/pr39839.c
  d7019254e0a959946abcf1e603ca08f4  gcc/testsuite/gcc.target/arm/pr40457-1.c
! fef326b00bc3c184e66bb9045af58afd  gcc/testsuite/gcc.target/arm/pr40457-2.c
  adb4f44370702cea01683e8fa86550d2  gcc/testsuite/gcc.target/arm/pr40457-3.c
  efe1a8ddc7a8edf374ffb4ee3fdf3bbb  gcc/testsuite/gcc.target/arm/pr40482.c
  77f7f0f95b4df515040cff379e1db5a1  gcc/testsuite/gcc.target/arm/pr40657-1.c
--- 71826,71842 ----
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
  783749b808801f545a547539f41dec21  gcc/testsuite/gcc.target/arm/pr110268-1.c
  64df4c73d4d8e79ee289d41e18bf6095  gcc/testsuite/gcc.target/arm/pr110268-2.c
! 2d6d0432c5753dcd78f171e5f50e0fcd  gcc/testsuite/gcc.target/arm/pr111235.c
! c2682b969fcec66bb2ebb2442ff4221b  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
  39327fb26a438561d0617a9bfe99c59f  gcc/testsuite/gcc.target/arm/pr115188.c
+ 01f3623877a32b45af0d229eab49f4cf  gcc/testsuite/gcc.target/arm/pr117675.c
  3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
  0cf9145284e787c538df3913bd69a329  gcc/testsuite/gcc.target/arm/pr39839.c
  d7019254e0a959946abcf1e603ca08f4  gcc/testsuite/gcc.target/arm/pr40457-1.c
! 9666fc622a5d4e78916856c70adca57b  gcc/testsuite/gcc.target/arm/pr40457-2.c
  adb4f44370702cea01683e8fa86550d2  gcc/testsuite/gcc.target/arm/pr40457-3.c
  efe1a8ddc7a8edf374ffb4ee3fdf3bbb  gcc/testsuite/gcc.target/arm/pr40482.c
  77f7f0f95b4df515040cff379e1db5a1  gcc/testsuite/gcc.target/arm/pr40657-1.c
*************** ae7f616dfc9c4cb975cbf5c12a0f4568  gcc/te
*** 67425,67431 ****
  9707019d87ba29d90bd78fcf8baf6c1d  gcc/testsuite/gcc.target/arm/pr42496.c
  0be2d66aa964cf4775982ea238e36b40  gcc/testsuite/gcc.target/arm/pr42505.c
  5082706044475521e5651215c2678d39  gcc/testsuite/gcc.target/arm/pr42574.c
! 68cfcb6d377c1af0682abe4d921b3298  gcc/testsuite/gcc.target/arm/pr42575.c
  40f9b398c73a3bac649e8852b015f33d  gcc/testsuite/gcc.target/arm/pr42835.c
  d8b987b87850e95ff360d2e9cb8b68e7  gcc/testsuite/gcc.target/arm/pr42879.c
  8dc5ba1f369b2c8434ddba2b57f99669  gcc/testsuite/gcc.target/arm/pr43137.c
--- 71853,71859 ----
  9707019d87ba29d90bd78fcf8baf6c1d  gcc/testsuite/gcc.target/arm/pr42496.c
  0be2d66aa964cf4775982ea238e36b40  gcc/testsuite/gcc.target/arm/pr42505.c
  5082706044475521e5651215c2678d39  gcc/testsuite/gcc.target/arm/pr42574.c
! fb7ca982317505366c93c07e9b92b72a  gcc/testsuite/gcc.target/arm/pr42575.c
  40f9b398c73a3bac649e8852b015f33d  gcc/testsuite/gcc.target/arm/pr42835.c
  d8b987b87850e95ff360d2e9cb8b68e7  gcc/testsuite/gcc.target/arm/pr42879.c
  8dc5ba1f369b2c8434ddba2b57f99669  gcc/testsuite/gcc.target/arm/pr43137.c
*************** d8b987b87850e95ff360d2e9cb8b68e7  gcc/te
*** 67433,67439 ****
  609cb335a66879b9f451cc0e94b6f081  gcc/testsuite/gcc.target/arm/pr43597.c
  23fca63696cb34a1eff4c0826111a6c5  gcc/testsuite/gcc.target/arm/pr43698.c
  ecfd9e0633dd2f87b4224cd1d4ba57e7  gcc/testsuite/gcc.target/arm/pr43920-1.c
! 37258379bff72bbbd801a71215ed8a2d  gcc/testsuite/gcc.target/arm/pr43920-2.c
  cef1284423aca787e49645e6afbe043b  gcc/testsuite/gcc.target/arm/pr44788.c
  aeba150bfdf5a821a1b2043e1f4af966  gcc/testsuite/gcc.target/arm/pr44999.c
  a4c4698a5fe84412c8b996b75146c2b1  gcc/testsuite/gcc.target/arm/pr45094.c
--- 71861,71867 ----
  609cb335a66879b9f451cc0e94b6f081  gcc/testsuite/gcc.target/arm/pr43597.c
  23fca63696cb34a1eff4c0826111a6c5  gcc/testsuite/gcc.target/arm/pr43698.c
  ecfd9e0633dd2f87b4224cd1d4ba57e7  gcc/testsuite/gcc.target/arm/pr43920-1.c
! b76ab98650530cb2a051203e1024252b  gcc/testsuite/gcc.target/arm/pr43920-2.c
  cef1284423aca787e49645e6afbe043b  gcc/testsuite/gcc.target/arm/pr44788.c
  aeba150bfdf5a821a1b2043e1f4af966  gcc/testsuite/gcc.target/arm/pr44999.c
  a4c4698a5fe84412c8b996b75146c2b1  gcc/testsuite/gcc.target/arm/pr45094.c
*************** ec5b96b8283a62c791f40ad2c7334d85  gcc/te
*** 67454,67460 ****
  1b0c11d109e5c1c7dd206ab3c72d6e20  gcc/testsuite/gcc.target/arm/pr50099.c
  d457a4577fb934ac2b4fc272aa7a0ab9  gcc/testsuite/gcc.target/arm/pr50305.c
  979c3871e985af269e6e0679b4805f64  gcc/testsuite/gcc.target/arm/pr50318-1.c
! 518109fadcc725b0cebe4a85e0cc8d54  gcc/testsuite/gcc.target/arm/pr51534.c
  1fc6a0f615c83a4303e062b49c7a507f  gcc/testsuite/gcc.target/arm/pr51534s.c
  e24904ecd70180168ee75db6eb7b3461  gcc/testsuite/gcc.target/arm/pr51835.c
  3f2081d2849855a22f0db1f6ba620f00  gcc/testsuite/gcc.target/arm/pr51915.c
--- 71882,71888 ----
  1b0c11d109e5c1c7dd206ab3c72d6e20  gcc/testsuite/gcc.target/arm/pr50099.c
  d457a4577fb934ac2b4fc272aa7a0ab9  gcc/testsuite/gcc.target/arm/pr50305.c
  979c3871e985af269e6e0679b4805f64  gcc/testsuite/gcc.target/arm/pr50318-1.c
! 69fc4734dab6d898ed11e2ddb400a323  gcc/testsuite/gcc.target/arm/pr51534.c
  1fc6a0f615c83a4303e062b49c7a507f  gcc/testsuite/gcc.target/arm/pr51534s.c
  e24904ecd70180168ee75db6eb7b3461  gcc/testsuite/gcc.target/arm/pr51835.c
  3f2081d2849855a22f0db1f6ba620f00  gcc/testsuite/gcc.target/arm/pr51915.c
*************** de6431d80bdeb202e278026554164376  gcc/te
*** 67470,67476 ****
  5742f15de268dcad9e7c912034374daa  gcc/testsuite/gcc.target/arm/pr53447-4.c
  fa376788ea1ab780cf88253abbe02fc0  gcc/testsuite/gcc.target/arm/pr53447-5.c
  9a6c78c74218ccc7be4511d7bbf530d0  gcc/testsuite/gcc.target/arm/pr53636.c
! 4f8bbd8590bd295e95df0cfef75e77cb  gcc/testsuite/gcc.target/arm/pr53859.c
  6af15a37f89b2eda59754bf3f8c6c2d3  gcc/testsuite/gcc.target/arm/pr54051.c
  144c19487bb0a02183a211f107af4c26  gcc/testsuite/gcc.target/arm/pr54892.c
  2043a75bd6103b1a90d461d2bba5c1bc  gcc/testsuite/gcc.target/arm/pr55642.c
--- 71898,71904 ----
  5742f15de268dcad9e7c912034374daa  gcc/testsuite/gcc.target/arm/pr53447-4.c
  fa376788ea1ab780cf88253abbe02fc0  gcc/testsuite/gcc.target/arm/pr53447-5.c
  9a6c78c74218ccc7be4511d7bbf530d0  gcc/testsuite/gcc.target/arm/pr53636.c
! 3edd26cb50348d1f1c5370ecca81b278  gcc/testsuite/gcc.target/arm/pr53859.c
  6af15a37f89b2eda59754bf3f8c6c2d3  gcc/testsuite/gcc.target/arm/pr54051.c
  144c19487bb0a02183a211f107af4c26  gcc/testsuite/gcc.target/arm/pr54892.c
  2043a75bd6103b1a90d461d2bba5c1bc  gcc/testsuite/gcc.target/arm/pr55642.c
*************** f959f5c10e21a15d658780237062fe2c  gcc/te
*** 67480,67486 ****
  3549acaa8c64d511367164d1fce14e18  gcc/testsuite/gcc.target/arm/pr58578.c
  dc9b43e8f5f7f2502fa16b8711f16a88  gcc/testsuite/gcc.target/arm/pr58784.c
  f4720d81bf2117a9782aa93b0ded5923  gcc/testsuite/gcc.target/arm/pr59575.c
! 0d695763a5ab39b1576c1db1efd0c2ec  gcc/testsuite/gcc.target/arm/pr59858.c
  39260c40447562253e3ad118b62c162f  gcc/testsuite/gcc.target/arm/pr59896.c
  d02477312e978591c331d9c0ba4f9f70  gcc/testsuite/gcc.target/arm/pr59923.c
  a24a83b67035822b706f3721d2778fcd  gcc/testsuite/gcc.target/arm/pr60264.c
--- 71908,71914 ----
  3549acaa8c64d511367164d1fce14e18  gcc/testsuite/gcc.target/arm/pr58578.c
  dc9b43e8f5f7f2502fa16b8711f16a88  gcc/testsuite/gcc.target/arm/pr58784.c
  f4720d81bf2117a9782aa93b0ded5923  gcc/testsuite/gcc.target/arm/pr59575.c
! 3cfef8cf6a921e79d364de67ad23225c  gcc/testsuite/gcc.target/arm/pr59858.c
  39260c40447562253e3ad118b62c162f  gcc/testsuite/gcc.target/arm/pr59896.c
  d02477312e978591c331d9c0ba4f9f70  gcc/testsuite/gcc.target/arm/pr59923.c
  a24a83b67035822b706f3721d2778fcd  gcc/testsuite/gcc.target/arm/pr60264.c
*************** ba50e02461bee64efbeb4ab6a3ee0cbb  gcc/te
*** 67502,67524 ****
  7049422d3d817a96e70400793f6916c4  gcc/testsuite/gcc.target/arm/pr64744-1.c
  f14c68ee63b6ef2e00f28b8452830aaf  gcc/testsuite/gcc.target/arm/pr64744-2.c
  9f632e04b7517bef89552e65e30fb9bf  gcc/testsuite/gcc.target/arm/pr64818.c
! 19016b19d283f52e6e1c80fd2dfb6350  gcc/testsuite/gcc.target/arm/pr65067.c
  8a9397dc502bc9627f836caa186dbc4d  gcc/testsuite/gcc.target/arm/pr65647-2.c
! 1379a6cdc93a6cb32d9b29f8e84aeef3  gcc/testsuite/gcc.target/arm/pr65647.c
! 80a1221cd010aa9d1bfa0ce02f075b90  gcc/testsuite/gcc.target/arm/pr65710.c
  73f9e867b1e36eb5931644947e88045b  gcc/testsuite/gcc.target/arm/pr65729.c
  891b63f4b57ffa0e1a24f53564eecbbc  gcc/testsuite/gcc.target/arm/pr65924.c
  bdf86d4598949a47c9c945187da01cec  gcc/testsuite/gcc.target/arm/pr66912.c
  99472d2f1f7a0590766908deea24ccb3  gcc/testsuite/gcc.target/arm/pr67366.c
  f1bdf362912a057e8bb9384d901c9600  gcc/testsuite/gcc.target/arm/pr67439_1.c
! 041b62fa9b7362942f44220ff884fabf  gcc/testsuite/gcc.target/arm/pr67756.c
  c514f92159e7e3859ff21ee1a7b0d626  gcc/testsuite/gcc.target/arm/pr67989.C
! 5878fbe9785221a1aebfba4516cdb5b5  gcc/testsuite/gcc.target/arm/pr68620.c
! ef7228203e3de2362184e00a8c156132  gcc/testsuite/gcc.target/arm/pr68674.c
  22a455eab22d64eaa325e8f1370a734f  gcc/testsuite/gcc.target/arm/pr69135_1.c
  038b3bb27d1430e5bcaacffe8348eb14  gcc/testsuite/gcc.target/arm/pr69180.c
  51f46e9158ad549a6f9079f849c4c10d  gcc/testsuite/gcc.target/arm/pr69187.c
! b1f1919dcfa1287f837de2b937769050  gcc/testsuite/gcc.target/arm/pr69194.c
  05e46560368a7df97a4f31249ffebcc7  gcc/testsuite/gcc.target/arm/pr69245.c
  ecd06975766e392b211a369c6a9a3273  gcc/testsuite/gcc.target/arm/pr69307.c
  e5aafcaef63ec87ca861c2c3df04f753  gcc/testsuite/gcc.target/arm/pr69614.c
--- 71930,71952 ----
  7049422d3d817a96e70400793f6916c4  gcc/testsuite/gcc.target/arm/pr64744-1.c
  f14c68ee63b6ef2e00f28b8452830aaf  gcc/testsuite/gcc.target/arm/pr64744-2.c
  9f632e04b7517bef89552e65e30fb9bf  gcc/testsuite/gcc.target/arm/pr64818.c
! a0b3eb2776bdd2377c991f9f71f0e492  gcc/testsuite/gcc.target/arm/pr65067.c
  8a9397dc502bc9627f836caa186dbc4d  gcc/testsuite/gcc.target/arm/pr65647-2.c
! bdfdb7b21473731cc11c0b047354db1b  gcc/testsuite/gcc.target/arm/pr65647.c
! 747e43aeca59b5b01f6b71e4c812c370  gcc/testsuite/gcc.target/arm/pr65710.c
  73f9e867b1e36eb5931644947e88045b  gcc/testsuite/gcc.target/arm/pr65729.c
  891b63f4b57ffa0e1a24f53564eecbbc  gcc/testsuite/gcc.target/arm/pr65924.c
  bdf86d4598949a47c9c945187da01cec  gcc/testsuite/gcc.target/arm/pr66912.c
  99472d2f1f7a0590766908deea24ccb3  gcc/testsuite/gcc.target/arm/pr67366.c
  f1bdf362912a057e8bb9384d901c9600  gcc/testsuite/gcc.target/arm/pr67439_1.c
! aeaf05e73c6d6681b7776f67cdb764b5  gcc/testsuite/gcc.target/arm/pr67756.c
  c514f92159e7e3859ff21ee1a7b0d626  gcc/testsuite/gcc.target/arm/pr67989.C
! d7d67d1a9bbb29cfcfc4346d92094e68  gcc/testsuite/gcc.target/arm/pr68620.c
! 57e5ad2ea6d9c1708a96bec49b0335a8  gcc/testsuite/gcc.target/arm/pr68674.c
  22a455eab22d64eaa325e8f1370a734f  gcc/testsuite/gcc.target/arm/pr69135_1.c
  038b3bb27d1430e5bcaacffe8348eb14  gcc/testsuite/gcc.target/arm/pr69180.c
  51f46e9158ad549a6f9079f849c4c10d  gcc/testsuite/gcc.target/arm/pr69187.c
! 878b435e7c64eafa5998e8a102a66cd1  gcc/testsuite/gcc.target/arm/pr69194.c
  05e46560368a7df97a4f31249ffebcc7  gcc/testsuite/gcc.target/arm/pr69245.c
  ecd06975766e392b211a369c6a9a3273  gcc/testsuite/gcc.target/arm/pr69307.c
  e5aafcaef63ec87ca861c2c3df04f753  gcc/testsuite/gcc.target/arm/pr69614.c
*************** f54ef63fcfe6438f5564d5ecc3ab119f  gcc/te
*** 67534,67540 ****
  0129df589bd4ab687ec6db766df6ff32  gcc/testsuite/gcc.target/arm/pr77904.c
  a87cd0f693aebc8497bfb2473f178e4c  gcc/testsuite/gcc.target/arm/pr77933-1.c
  7cc16a1eff8b909a57b34f907cef172a  gcc/testsuite/gcc.target/arm/pr77933-2.c
! 68c26348d2a6791f295710024aba5c21  gcc/testsuite/gcc.target/arm/pr78041.c
  7ff23bd8b3754acf52c8f22104b1f9b6  gcc/testsuite/gcc.target/arm/pr78255-1.c
  45646c314a5e5bf7cade479b55622520  gcc/testsuite/gcc.target/arm/pr78255-2.c
  ec8c4ff3af03507f30ead4557a13b160  gcc/testsuite/gcc.target/arm/pr78353-1.c
--- 71962,71968 ----
  0129df589bd4ab687ec6db766df6ff32  gcc/testsuite/gcc.target/arm/pr77904.c
  a87cd0f693aebc8497bfb2473f178e4c  gcc/testsuite/gcc.target/arm/pr77933-1.c
  7cc16a1eff8b909a57b34f907cef172a  gcc/testsuite/gcc.target/arm/pr77933-2.c
! df6b630cd5f06f69b4810a5a6115d638  gcc/testsuite/gcc.target/arm/pr78041.c
  7ff23bd8b3754acf52c8f22104b1f9b6  gcc/testsuite/gcc.target/arm/pr78255-1.c
  45646c314a5e5bf7cade479b55622520  gcc/testsuite/gcc.target/arm/pr78255-2.c
  ec8c4ff3af03507f30ead4557a13b160  gcc/testsuite/gcc.target/arm/pr78353-1.c
*************** e9273f96fab761cd7ea5079114cf850a  gcc/te
*** 67544,67550 ****
  9af668f971102617e44a1aabe76bd18b  gcc/testsuite/gcc.target/arm/pr79131-2.c
  3116e99b993df2059971c2fae6d9b6b0  gcc/testsuite/gcc.target/arm/pr79145.c
  19c999613c5cb39b3c8e5a4be43e416a  gcc/testsuite/gcc.target/arm/pr79239.c
! 25dd3a45c16c6a81452676fe2dd2fe37  gcc/testsuite/gcc.target/arm/pr81863.c
  8be1830a6ab834d38ea072aa6d567865  gcc/testsuite/gcc.target/arm/pr82518.c
  433157273902c9544461f755ababe38e  gcc/testsuite/gcc.target/arm/pr82989.c
  c3c03d98bf1110fec6902ef64b984fde  gcc/testsuite/gcc.target/arm/pr83687.c
--- 71972,71978 ----
  9af668f971102617e44a1aabe76bd18b  gcc/testsuite/gcc.target/arm/pr79131-2.c
  3116e99b993df2059971c2fae6d9b6b0  gcc/testsuite/gcc.target/arm/pr79145.c
  19c999613c5cb39b3c8e5a4be43e416a  gcc/testsuite/gcc.target/arm/pr79239.c
! ce7a1ad34bf0c34a97c1804c6020b66b  gcc/testsuite/gcc.target/arm/pr81863.c
  8be1830a6ab834d38ea072aa6d567865  gcc/testsuite/gcc.target/arm/pr82518.c
  433157273902c9544461f755ababe38e  gcc/testsuite/gcc.target/arm/pr82989.c
  c3c03d98bf1110fec6902ef64b984fde  gcc/testsuite/gcc.target/arm/pr83687.c
*************** b70e117682ea2c3ea32336823df49031  gcc/te
*** 67575,67582 ****
  d82900f431e8901b0c85c6ec6602768b  gcc/testsuite/gcc.target/arm/pr95646.c
  fe5e1dadd9ea1e8cccb81773046e8da9  gcc/testsuite/gcc.target/arm/pr97528.c
  0acfbc30986a6ae2c5d696f4f52554ec  gcc/testsuite/gcc.target/arm/pr97872.c
! f7e798ca127e21e85d4765f1feb52337  gcc/testsuite/gcc.target/arm/pr97969.c
! d1cd03d23aee2b254c487e2374882458  gcc/testsuite/gcc.target/arm/pr98636.c
  ffaef2f11095458b1dee423809dce0fa  gcc/testsuite/gcc.target/arm/pr98931.c
  dfc2cd714cdc3607e121f73074613d5d  gcc/testsuite/gcc.target/arm/pr99592.c
  ea503c77c48a0e40d96c6afcc7523f85  gcc/testsuite/gcc.target/arm/pr99596.c
--- 72003,72010 ----
  d82900f431e8901b0c85c6ec6602768b  gcc/testsuite/gcc.target/arm/pr95646.c
  fe5e1dadd9ea1e8cccb81773046e8da9  gcc/testsuite/gcc.target/arm/pr97528.c
  0acfbc30986a6ae2c5d696f4f52554ec  gcc/testsuite/gcc.target/arm/pr97872.c
! f166772eb305e39c8ddb1bc5b4fe1592  gcc/testsuite/gcc.target/arm/pr97969.c
! 4704cb386e7edf923252f6c37a042a81  gcc/testsuite/gcc.target/arm/pr98636.c
  ffaef2f11095458b1dee423809dce0fa  gcc/testsuite/gcc.target/arm/pr98931.c
  dfc2cd714cdc3607e121f73074613d5d  gcc/testsuite/gcc.target/arm/pr99592.c
  ea503c77c48a0e40d96c6afcc7523f85  gcc/testsuite/gcc.target/arm/pr99596.c
*************** dffa06d71b957e8661bd3643ef356d5a  gcc/te
*** 67596,67612 ****
  a13d496741ee33ca9436673eb16995cf  gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c
  5b1a9414b404b74eb5cf36760730cf83  gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c
  77b405f3713bb420ee5af292f1a977dc  gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c
! 9d45085f81b933f75aff02b4b174d596  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m0.c
! be0f627c9760e72ac531303722e2aa4a  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m23.c
  7b8330d6a4b33ec1ebe3d2b0ac6a7d6a  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c
! 3190f6ba1fbc57975b5a58d4d43de120  gcc/testsuite/gcc.target/arm/pure-code/pr109800.c
! 9ae88bbf3f56f1b4e53964c0b9d80766  gcc/testsuite/gcc.target/arm/pure-code/pr94538-1.c
  73846ca40ff67281debec0e317b1f8d5  gcc/testsuite/gcc.target/arm/pure-code/pr94538-2.c
  4f35b9cdbd7f36b52519b9a78b06c4d6  gcc/testsuite/gcc.target/arm/pure-code/pr96767.c
  fae12b2484aa501254f0f6f18c223eb7  gcc/testsuite/gcc.target/arm/pure-code/pr96769.c
  97baedb199afd57478166d225f8cdc6d  gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
  23b438a7445931d6c586530cff90a5e9  gcc/testsuite/gcc.target/arm/pure-code/pr98998.c
! dad0d9d810cbe4e11d2168da664f380e  gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp
  f95b339eab714ded2d8494556dd13630  gcc/testsuite/gcc.target/arm/reg_equal_test.c
  3143560976572191d8bba6ba78a45aa6  gcc/testsuite/gcc.target/arm/register-variables.c
  7e00efeaf92d1f9068732d041c1566d2  gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
--- 72024,72040 ----
  a13d496741ee33ca9436673eb16995cf  gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c
  5b1a9414b404b74eb5cf36760730cf83  gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c
  77b405f3713bb420ee5af292f1a977dc  gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c
! ecb6450356e984a2b2af55ed2dba679c  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m0.c
! 8d98c91318b69644f1d417cfa4c1d4a2  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m23.c
  7b8330d6a4b33ec1ebe3d2b0ac6a7d6a  gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c
! a8a08846959f81832d88fcbe5a0d7bab  gcc/testsuite/gcc.target/arm/pure-code/pr109800.c
! db7ec071e6a678f3295bcbcba117b2c3  gcc/testsuite/gcc.target/arm/pure-code/pr94538-1.c
  73846ca40ff67281debec0e317b1f8d5  gcc/testsuite/gcc.target/arm/pure-code/pr94538-2.c
  4f35b9cdbd7f36b52519b9a78b06c4d6  gcc/testsuite/gcc.target/arm/pure-code/pr96767.c
  fae12b2484aa501254f0f6f18c223eb7  gcc/testsuite/gcc.target/arm/pure-code/pr96769.c
  97baedb199afd57478166d225f8cdc6d  gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
  23b438a7445931d6c586530cff90a5e9  gcc/testsuite/gcc.target/arm/pure-code/pr98998.c
! 793373aa2a7b3d3dc5200292d1979bac  gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp
  f95b339eab714ded2d8494556dd13630  gcc/testsuite/gcc.target/arm/reg_equal_test.c
  3143560976572191d8bba6ba78a45aa6  gcc/testsuite/gcc.target/arm/register-variables.c
  7e00efeaf92d1f9068732d041c1566d2  gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
*************** f95b339eab714ded2d8494556dd13630  gcc/te
*** 67614,67626 ****
  98c24c8d3d2aa246d9dbbe6aef94be46  gcc/testsuite/gcc.target/arm/rev16_2.c
  f4b0167ffa11835780a49b6681dae08a  gcc/testsuite/gcc.target/arm/sat-1.c
  33bb623f1a1557b9fdd91f630e4b4bcd  gcc/testsuite/gcc.target/arm/scd42-1.c
! 6aac2fd111fbd7115813c8dd3457a73c  gcc/testsuite/gcc.target/arm/scd42-2.c
  36d44b388f22ada9bd4ccb763c1a86f6  gcc/testsuite/gcc.target/arm/scd42-3.c
  989b8bb302c72af40a614c1f4a881c81  gcc/testsuite/gcc.target/arm/sdiv_costs_1.c
  e92559ac36cc602d8ecc10c3604d11e0  gcc/testsuite/gcc.target/arm/shiftable.c
  cb913ea2e6ca7e2e6e956a851438b0ce  gcc/testsuite/gcc.target/arm/short-it-ifcvt-1.c
  492578fecd582db3f8b118da3f0292f0  gcc/testsuite/gcc.target/arm/short-it-ifcvt-2.c
! b3480a17eb1460d8802971044e0bee2e  gcc/testsuite/gcc.target/arm/short-vfp-1.c
  08e73b59a56af6a31c916156d42e897b  gcc/testsuite/gcc.target/arm/sibcall-1.c
  165b703896ece91fb7283e0b527624ab  gcc/testsuite/gcc.target/arm/sibcall-2.c
  c0c41c8ff9d383030a9b3c16b9d1c1ed  gcc/testsuite/gcc.target/arm/simd/bf16_cvt_1.c
--- 72042,72054 ----
  98c24c8d3d2aa246d9dbbe6aef94be46  gcc/testsuite/gcc.target/arm/rev16_2.c
  f4b0167ffa11835780a49b6681dae08a  gcc/testsuite/gcc.target/arm/sat-1.c
  33bb623f1a1557b9fdd91f630e4b4bcd  gcc/testsuite/gcc.target/arm/scd42-1.c
! 6bc2e04c74aac1beabd5ada52c5f180d  gcc/testsuite/gcc.target/arm/scd42-2.c
  36d44b388f22ada9bd4ccb763c1a86f6  gcc/testsuite/gcc.target/arm/scd42-3.c
  989b8bb302c72af40a614c1f4a881c81  gcc/testsuite/gcc.target/arm/sdiv_costs_1.c
  e92559ac36cc602d8ecc10c3604d11e0  gcc/testsuite/gcc.target/arm/shiftable.c
  cb913ea2e6ca7e2e6e956a851438b0ce  gcc/testsuite/gcc.target/arm/short-it-ifcvt-1.c
  492578fecd582db3f8b118da3f0292f0  gcc/testsuite/gcc.target/arm/short-it-ifcvt-2.c
! 9c9c0e63def63ff41d58a9ec3f3c190a  gcc/testsuite/gcc.target/arm/short-vfp-1.c
  08e73b59a56af6a31c916156d42e897b  gcc/testsuite/gcc.target/arm/sibcall-1.c
  165b703896ece91fb7283e0b527624ab  gcc/testsuite/gcc.target/arm/sibcall-2.c
  c0c41c8ff9d383030a9b3c16b9d1c1ed  gcc/testsuite/gcc.target/arm/simd/bf16_cvt_1.c
*************** d21e638a6c36bfc09953f404b86a485f  gcc/te
*** 67640,67646 ****
  5dcf4e932871aeba4c1b9a49be403bf6  gcc/testsuite/gcc.target/arm/simd/mve-compare-2.c
  79ad4702846317f8676e19282166aa0d  gcc/testsuite/gcc.target/arm/simd/mve-compare-3.c
  f3b1d2b5756c4d3b3d2e615e514d6c49  gcc/testsuite/gcc.target/arm/simd/mve-compare-scalar-1.c
! 988b7e5a921ffc215868fc0c17512af4  gcc/testsuite/gcc.target/arm/simd/mve-vabs.c
  0f2be96cafe2bb9a1c2796d9f50adca0  gcc/testsuite/gcc.target/arm/simd/mve-vadd-1.c
  935d1dbc60e1d974bb29b01e2f735e02  gcc/testsuite/gcc.target/arm/simd/mve-vadd-scalar-1.c
  817e504d8a4f3a8fe3668c375dbb1998  gcc/testsuite/gcc.target/arm/simd/mve-vaddv-1.c
--- 72068,72074 ----
  5dcf4e932871aeba4c1b9a49be403bf6  gcc/testsuite/gcc.target/arm/simd/mve-compare-2.c
  79ad4702846317f8676e19282166aa0d  gcc/testsuite/gcc.target/arm/simd/mve-compare-3.c
  f3b1d2b5756c4d3b3d2e615e514d6c49  gcc/testsuite/gcc.target/arm/simd/mve-compare-scalar-1.c
! 5343da330e4038c3eddb8b4e2c364fea  gcc/testsuite/gcc.target/arm/simd/mve-vabs.c
  0f2be96cafe2bb9a1c2796d9f50adca0  gcc/testsuite/gcc.target/arm/simd/mve-vadd-1.c
  935d1dbc60e1d974bb29b01e2f735e02  gcc/testsuite/gcc.target/arm/simd/mve-vadd-scalar-1.c
  817e504d8a4f3a8fe3668c375dbb1998  gcc/testsuite/gcc.target/arm/simd/mve-vaddv-1.c
*************** b39d52db8b06b00a7c57fd2d7dd7bc0a  gcc/te
*** 67664,67670 ****
  454ea9c4b205cc5970ef1f679c56ad7a  gcc/testsuite/gcc.target/arm/simd/mve-vorn.c
  fcce8db5ec7e8bdb594b192422634626  gcc/testsuite/gcc.target/arm/simd/mve-vorr.c
  8c135e895bc223508b6735896b11e21f  gcc/testsuite/gcc.target/arm/simd/mve-vshl.c
! 436aabb7e19b94cd90c42d18d9ffd235  gcc/testsuite/gcc.target/arm/simd/mve-vshr.c
  93474bc90e5156ad689799d6fb6a4511  gcc/testsuite/gcc.target/arm/simd/mve-vsub-scalar-1.c
  6c75eaaec68dfb8c4f79555ce03a5fc5  gcc/testsuite/gcc.target/arm/simd/mve-vsub_1.c
  1b47bf72d463778fb593a6c8e88de7bf  gcc/testsuite/gcc.target/arm/simd/neon-compare-1.c
--- 72092,72098 ----
  454ea9c4b205cc5970ef1f679c56ad7a  gcc/testsuite/gcc.target/arm/simd/mve-vorn.c
  fcce8db5ec7e8bdb594b192422634626  gcc/testsuite/gcc.target/arm/simd/mve-vorr.c
  8c135e895bc223508b6735896b11e21f  gcc/testsuite/gcc.target/arm/simd/mve-vshl.c
! c45f1243ffe171add3b39b622433aff8  gcc/testsuite/gcc.target/arm/simd/mve-vshr.c
  93474bc90e5156ad689799d6fb6a4511  gcc/testsuite/gcc.target/arm/simd/mve-vsub-scalar-1.c
  6c75eaaec68dfb8c4f79555ce03a5fc5  gcc/testsuite/gcc.target/arm/simd/mve-vsub_1.c
  1b47bf72d463778fb593a6c8e88de7bf  gcc/testsuite/gcc.target/arm/simd/neon-compare-1.c
*************** ac6c1f0bd9ddea47b998e6d6fe81f3f3  gcc/te
*** 67690,67696 ****
  be3a6e865cff5e83a7ddc3fdeff09efc  gcc/testsuite/gcc.target/arm/simd/pr105374.C
  046001a34adf828e1dc1680bb6554761  gcc/testsuite/gcc.target/arm/simd/pr97906.c
  be013ac628d53196d301f2fb67205a61  gcc/testsuite/gcc.target/arm/simd/pr98435.c
! d8757b3a529aba077f23b753732ce62e  gcc/testsuite/gcc.target/arm/simd/simd.exp
  be37d1c2f068a408d0dcf51da9bb2153  gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c
  bfc8c84b4d25f4a7889d9453580915a0  gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c
  32ad7b41034573f84cb8764de3e4cd94  gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c
--- 72118,72124 ----
  be3a6e865cff5e83a7ddc3fdeff09efc  gcc/testsuite/gcc.target/arm/simd/pr105374.C
  046001a34adf828e1dc1680bb6554761  gcc/testsuite/gcc.target/arm/simd/pr97906.c
  be013ac628d53196d301f2fb67205a61  gcc/testsuite/gcc.target/arm/simd/pr98435.c
! b6467ecb3bd05d9beada21acbe40fb10  gcc/testsuite/gcc.target/arm/simd/simd.exp
  be37d1c2f068a408d0dcf51da9bb2153  gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c
  bfc8c84b4d25f4a7889d9453580915a0  gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c
  32ad7b41034573f84cb8764de3e4cd94  gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c
*************** c518318c5924e407030509fda40b08f9  gcc/te
*** 67733,67739 ****
  f941b33232fe32f8014b4aa08b153989  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_1.c
  fa84c526b21743635ac7b99c5df1c64b  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_indices_1.c
  b093d9fb9b254156de38f7fdcd60b73b  gcc/testsuite/gcc.target/arm/simd/vld1_p64_xN_1.c
! c95915cca0ae10e54a1b3c3df6e7520e  gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
  281ea02968923c74589e2b5499108965  gcc/testsuite/gcc.target/arm/simd/vld1q_bf16_xN_1.c
  d7102f0260ec3db3a65a4709d590c032  gcc/testsuite/gcc.target/arm/simd/vld1q_fp16_xN_1.c
  e0f365607757a3b5ff67210d33210e44  gcc/testsuite/gcc.target/arm/simd/vld1q_lane_bf16_indices_1.c
--- 72161,72167 ----
  f941b33232fe32f8014b4aa08b153989  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_1.c
  fa84c526b21743635ac7b99c5df1c64b  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_indices_1.c
  b093d9fb9b254156de38f7fdcd60b73b  gcc/testsuite/gcc.target/arm/simd/vld1_p64_xN_1.c
! a19afba15681a5ea877a56264a77754d  gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
  281ea02968923c74589e2b5499108965  gcc/testsuite/gcc.target/arm/simd/vld1q_bf16_xN_1.c
  d7102f0260ec3db3a65a4709d590c032  gcc/testsuite/gcc.target/arm/simd/vld1q_fp16_xN_1.c
  e0f365607757a3b5ff67210d33210e44  gcc/testsuite/gcc.target/arm/simd/vld1q_lane_bf16_indices_1.c
*************** efebf6cfc9ccd6377784be42b49e0c14  gcc/te
*** 67851,67865 ****
  439090a74f82c03693a4e639e4d0779d  gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c
  c1ba2367fe074ca876f6c3d12acfe93a  gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c
  56ef2fb23e6bb9e5362a8d9d86c0d217  gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c
! 03a0ecf5ea3e80c3c11e40b7ed7964ab  gcc/testsuite/gcc.target/arm/small-multiply-m0-1.c
! 0f362b693e6376d1a243b78deb39ef29  gcc/testsuite/gcc.target/arm/small-multiply-m0-2.c
! 536af5c3e7686f814f057e2af387f7b4  gcc/testsuite/gcc.target/arm/small-multiply-m0-3.c
! ca2485ec479648acb043823fcaaa4f9d  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-1.c
! a0468e1c4ee67f58a2e266c156a9886b  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-2.c
! ef25288c2b54da64c38a1e366d4bef97  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-3.c
! 23462144d6ce1886f354179f424c57a7  gcc/testsuite/gcc.target/arm/small-multiply-m1-1.c
! 4a00de9980043881ec01ab149b8f2f30  gcc/testsuite/gcc.target/arm/small-multiply-m1-2.c
! 44335c33164f555f0fa422c39f8f0547  gcc/testsuite/gcc.target/arm/small-multiply-m1-3.c
  4b26b71bb68077f164277c8f42c74e9a  gcc/testsuite/gcc.target/arm/smlaltb-1.c
  8008a7e138765cf948a213e51ecfb80d  gcc/testsuite/gcc.target/arm/smlaltt-1.c
  61ccb5d8433a6f8e4eae1fe9703cf28f  gcc/testsuite/gcc.target/arm/smlatb-1.c
--- 72279,72293 ----
  439090a74f82c03693a4e639e4d0779d  gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c
  c1ba2367fe074ca876f6c3d12acfe93a  gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c
  56ef2fb23e6bb9e5362a8d9d86c0d217  gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c
! f7be85eb351e6839d5f339b661301580  gcc/testsuite/gcc.target/arm/small-multiply-m0-1.c
! b0a6fd643d2921878a07c9d628e54219  gcc/testsuite/gcc.target/arm/small-multiply-m0-2.c
! 0ddaa80ef5f1421f30070aa32085b4b8  gcc/testsuite/gcc.target/arm/small-multiply-m0-3.c
! c1b7030fcfbfea7f8951d2e2b6cd6671  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-1.c
! 15bde78f254c0e2c220a177ae8c75c81  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-2.c
! 8834a65b60e06340ebce02a4701b95bb  gcc/testsuite/gcc.target/arm/small-multiply-m0plus-3.c
! 88a83a72a9215dbdf5ca3cf1cfdc6b97  gcc/testsuite/gcc.target/arm/small-multiply-m1-1.c
! a84e7e550093e2969e1e9f59824f4052  gcc/testsuite/gcc.target/arm/small-multiply-m1-2.c
! 874b4bc0a90b7ba22ada7ea58e396b72  gcc/testsuite/gcc.target/arm/small-multiply-m1-3.c
  4b26b71bb68077f164277c8f42c74e9a  gcc/testsuite/gcc.target/arm/smlaltb-1.c
  8008a7e138765cf948a213e51ecfb80d  gcc/testsuite/gcc.target/arm/smlaltt-1.c
  61ccb5d8433a6f8e4eae1fe9703cf28f  gcc/testsuite/gcc.target/arm/smlatb-1.c
*************** c2b556510a6d5c54101374760111a06e  gcc/te
*** 67874,67881 ****
  e13154393d19a49196906480b6d2d4bc  gcc/testsuite/gcc.target/arm/stack-protector-4.c
  70342bcaa3f6107c83106c2d684152ed  gcc/testsuite/gcc.target/arm/stack-protector-5.c
  fe2f9ebabcf72015dcbdb73c0c9e2338  gcc/testsuite/gcc.target/arm/stack-protector-6.c
! c2b378e2248f5ce191878a76febe7bc6  gcc/testsuite/gcc.target/arm/stack-protector-7.c
! c7ae5f9100cc26f397aea0d78db50598  gcc/testsuite/gcc.target/arm/stack-protector-8.c
  011b467632d678d04108bd1dc27d26b7  gcc/testsuite/gcc.target/arm/stack-red-zone.c
  152321b1bfa07e69c572a0ca8573c015  gcc/testsuite/gcc.target/arm/symbian1.c
  a2a9b9135252a63f30ae15393ececf8f  gcc/testsuite/gcc.target/arm/symbian2.c
--- 72302,72309 ----
  e13154393d19a49196906480b6d2d4bc  gcc/testsuite/gcc.target/arm/stack-protector-4.c
  70342bcaa3f6107c83106c2d684152ed  gcc/testsuite/gcc.target/arm/stack-protector-5.c
  fe2f9ebabcf72015dcbdb73c0c9e2338  gcc/testsuite/gcc.target/arm/stack-protector-6.c
! 8ffe969f8b78ebbb52cd35f301ac111c  gcc/testsuite/gcc.target/arm/stack-protector-7.c
! 714c8ead52c9923b0b17e61dfc6bdd10  gcc/testsuite/gcc.target/arm/stack-protector-8.c
  011b467632d678d04108bd1dc27d26b7  gcc/testsuite/gcc.target/arm/stack-red-zone.c
  152321b1bfa07e69c572a0ca8573c015  gcc/testsuite/gcc.target/arm/symbian1.c
  a2a9b9135252a63f30ae15393ececf8f  gcc/testsuite/gcc.target/arm/symbian2.c
*************** d59622117e340a2cea3149554ca5fa78  gcc/te
*** 67887,67909 ****
  4e3f9214406154cd0782683477b3abff  gcc/testsuite/gcc.target/arm/tail-long-call.c
  c0067203155a98c23d9eda220bd6a4e2  gcc/testsuite/gcc.target/arm/thumb-16bit-ops.c
  64204a9e3abf4b73643855cd6cef610b  gcc/testsuite/gcc.target/arm/thumb-andsi.c
! 22e74605fb70b95e19310c076e1b02c5  gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
  1e0fba039881392b8dd2d6ac4b56c1fa  gcc/testsuite/gcc.target/arm/thumb-branch1.c
  5aa399bfbce3434e21b54f2832299bb5  gcc/testsuite/gcc.target/arm/thumb-builtin-trap.c
  c4133ce7c37295b55bc19679306f4e04  gcc/testsuite/gcc.target/arm/thumb-cbranchqi.c
  2d0bc35ade3e15961ecee08d9919703d  gcc/testsuite/gcc.target/arm/thumb-comparisons.c
  5ab2c085750ef1f16b5396990b486f53  gcc/testsuite/gcc.target/arm/thumb-find-work-register.c
  774864150c72c7ac1461afd5ba9ec882  gcc/testsuite/gcc.target/arm/thumb-ifcvt-2.c
! c39b37d2c668f829f8c0107bbb401cae  gcc/testsuite/gcc.target/arm/thumb-ifcvt.c
  f1511ca1d83a28b3cb2aa6fc6e5b8aa0  gcc/testsuite/gcc.target/arm/thumb-ltu.c
  7184e928dc61e9e887edd32b11343712  gcc/testsuite/gcc.target/arm/thumb-stackframe.c
  4109d3fe587661058bb1fd6ad3677c24  gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c
  af684d56e0cd21b9e4295b85b8c6af41  gcc/testsuite/gcc.target/arm/thumb1-far-jump-1.c
! b4fab83bf7109a1294a6bd49a7d8724a  gcc/testsuite/gcc.target/arm/thumb1-far-jump-2.c
  620a6821f4b18cc04954fc837f2d5761  gcc/testsuite/gcc.target/arm/thumb1-imm.c
  6c2df75d904d4870aa04656c5c2c1dbf  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-1.c
  6adf990401176600b00f1cbd02fdecf2  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-2.c
  6ef5bb1ec6acf0c144e747c00c8c033e  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-3.c
  32f5855db5242a89b54d8bce82ade4ec  gcc/testsuite/gcc.target/arm/thumb1-mul-moves.c
  435c1230a78083d032c15c9b5d7c19cd  gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
  79ab513434ce5150e855c88b8a3d7adb  gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
--- 72315,72338 ----
  4e3f9214406154cd0782683477b3abff  gcc/testsuite/gcc.target/arm/tail-long-call.c
  c0067203155a98c23d9eda220bd6a4e2  gcc/testsuite/gcc.target/arm/thumb-16bit-ops.c
  64204a9e3abf4b73643855cd6cef610b  gcc/testsuite/gcc.target/arm/thumb-andsi.c
! 0a9e921296359812cedc241e3f7db36d  gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
  1e0fba039881392b8dd2d6ac4b56c1fa  gcc/testsuite/gcc.target/arm/thumb-branch1.c
  5aa399bfbce3434e21b54f2832299bb5  gcc/testsuite/gcc.target/arm/thumb-builtin-trap.c
  c4133ce7c37295b55bc19679306f4e04  gcc/testsuite/gcc.target/arm/thumb-cbranchqi.c
  2d0bc35ade3e15961ecee08d9919703d  gcc/testsuite/gcc.target/arm/thumb-comparisons.c
  5ab2c085750ef1f16b5396990b486f53  gcc/testsuite/gcc.target/arm/thumb-find-work-register.c
  774864150c72c7ac1461afd5ba9ec882  gcc/testsuite/gcc.target/arm/thumb-ifcvt-2.c
! 4891f030eac5ee8748ae03286d61b1b3  gcc/testsuite/gcc.target/arm/thumb-ifcvt.c
  f1511ca1d83a28b3cb2aa6fc6e5b8aa0  gcc/testsuite/gcc.target/arm/thumb-ltu.c
  7184e928dc61e9e887edd32b11343712  gcc/testsuite/gcc.target/arm/thumb-stackframe.c
  4109d3fe587661058bb1fd6ad3677c24  gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c
  af684d56e0cd21b9e4295b85b8c6af41  gcc/testsuite/gcc.target/arm/thumb1-far-jump-1.c
! 88ee54c1c056ca60f5c63d792fb47deb  gcc/testsuite/gcc.target/arm/thumb1-far-jump-2.c
  620a6821f4b18cc04954fc837f2d5761  gcc/testsuite/gcc.target/arm/thumb1-imm.c
  6c2df75d904d4870aa04656c5c2c1dbf  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-1.c
  6adf990401176600b00f1cbd02fdecf2  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-2.c
  6ef5bb1ec6acf0c144e747c00c8c033e  gcc/testsuite/gcc.target/arm/thumb1-load-64bit-constant-3.c
+ 8d196fdadd49a2c60bf481e1bbe08590  gcc/testsuite/gcc.target/arm/thumb1-load-store-64bit.c
  32f5855db5242a89b54d8bce82ade4ec  gcc/testsuite/gcc.target/arm/thumb1-mul-moves.c
  435c1230a78083d032c15c9b5d7c19cd  gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
  79ab513434ce5150e855c88b8a3d7adb  gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
*************** a437779b91f79339828db4b1f35dc134  gcc/te
*** 67918,67950 ****
  5ca094a129c97f18e18cd11e7a3b6842  gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c
  6eb8339fb942b3c36177ff6f4f126a6e  gcc/testsuite/gcc.target/arm/thumb2-mul-space.c
  469af825b6443a20a07c0c891d8aac7a  gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c
  6c8a6828c2f7d6c794ebbf0412b89e59  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant1.c
  5e7752a46373b0139745e893c89bea36  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant2.c
  5459995fa08f157d8fddb77fb2a334cd  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant3.c
  e94286eccc733d11a63447fdd9bada99  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant4.c
  366a2cbf9e58fc8f606dfef92bafdbcc  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-1.c
! 6e411515af0462ad54e64649d721a6d7  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c
! 307a7c468d9f6f5b29b17d3f70d7fbe3  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
! 322a379899bf637c0e26cbe1eb644603  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c
! 009b12bcdd519023614e14a253a4c0a9  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c
! e61c26f7c1cc0ddce7bcbbd3e8437bd3  gcc/testsuite/gcc.target/arm/thumb2-switchstatement.c
  661cd52deb4f860aae4c6c1b1e062e57  gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c
  b5cb0cc39d4570e0da1e85821a82e816  gcc/testsuite/gcc.target/arm/tlscall.c
  bbfeab1d19ae8a86996efa5896bc515a  gcc/testsuite/gcc.target/arm/unaligned-argument-1.c
  07b58b9d3cae47b57b137b31a0ea472c  gcc/testsuite/gcc.target/arm/unaligned-argument-2.c
  fbe22b395d333c931f6971e0905a0c77  gcc/testsuite/gcc.target/arm/unaligned-argument-3.c
! bdd3a0dd9f0c4286036efac7a3dbaeca  gcc/testsuite/gcc.target/arm/unaligned-memcpy-1.c
! e14b9a30fa811436ecb6aa988c9a5305  gcc/testsuite/gcc.target/arm/unaligned-memcpy-2.c
! 73e3760e48e9bc177a5f6e0dd330dd67  gcc/testsuite/gcc.target/arm/unaligned-memcpy-3.c
! 792dc2802acd07e46a1a21cf396e6868  gcc/testsuite/gcc.target/arm/unaligned-memcpy-4.c
! d51794c8e800a1494a43aad0663fc8ec  gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
! ead94d850a836710bef3cff899906668  gcc/testsuite/gcc.target/arm/unsigned-extend-2.c
  6f28a91c6866a9c554b9e75346fc82ef  gcc/testsuite/gcc.target/arm/unsigned-float.c
  dafe3f438a1a1630e53458e22dbec6bc  gcc/testsuite/gcc.target/arm/usadv16qi.c
  dd7bfde900d68546e1d3dd468f37370b  gcc/testsuite/gcc.target/arm/va_list.c
  cc0bc7a437b1048adcd2bbb500c8613f  gcc/testsuite/gcc.target/arm/vect-copysignf.c
! e179bb6071f227e90cd9bf3b56210108  gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
! fc4b69778fc737ef010c991d12b1dc42  gcc/testsuite/gcc.target/arm/vect-fmaxmin.c
  b2a77cb9f8dcabbc91a1f9b3df63c325  gcc/testsuite/gcc.target/arm/vect-half-floats.c
  295aeeb880398f05123f0a31c3d102e3  gcc/testsuite/gcc.target/arm/vect-lceilf_1.c
  3fc041dcd9c320085497b8cb5c2dd803  gcc/testsuite/gcc.target/arm/vect-lfloorf_1.c
--- 72347,72381 ----
  5ca094a129c97f18e18cd11e7a3b6842  gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c
  6eb8339fb942b3c36177ff6f4f126a6e  gcc/testsuite/gcc.target/arm/thumb2-mul-space.c
  469af825b6443a20a07c0c891d8aac7a  gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c
+ f088ab1862e58ccb15d1872b9c458596  gcc/testsuite/gcc.target/arm/thumb2-pop-loreg.c
  6c8a6828c2f7d6c794ebbf0412b89e59  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant1.c
  5e7752a46373b0139745e893c89bea36  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant2.c
  5459995fa08f157d8fddb77fb2a334cd  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant3.c
  e94286eccc733d11a63447fdd9bada99  gcc/testsuite/gcc.target/arm/thumb2-replicated-constant4.c
  366a2cbf9e58fc8f606dfef92bafdbcc  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-1.c
! 246cb8e2f0f4a78378f457d357b6b1a0  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c
! 681c52842882f319f86eb65b6b12152a  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
! 3a8f07748adbffc9bb3f16173e9a3fd9  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c
! 74dfb9efd2ea82e303d28ac1d2ec908b  gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c
! 91b223ff92af83526eb2bf8c06358638  gcc/testsuite/gcc.target/arm/thumb2-switchstatement.c
  661cd52deb4f860aae4c6c1b1e062e57  gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c
  b5cb0cc39d4570e0da1e85821a82e816  gcc/testsuite/gcc.target/arm/tlscall.c
  bbfeab1d19ae8a86996efa5896bc515a  gcc/testsuite/gcc.target/arm/unaligned-argument-1.c
  07b58b9d3cae47b57b137b31a0ea472c  gcc/testsuite/gcc.target/arm/unaligned-argument-2.c
  fbe22b395d333c931f6971e0905a0c77  gcc/testsuite/gcc.target/arm/unaligned-argument-3.c
! f0eb5e8a3b3eb97189a9cf149049fdb4  gcc/testsuite/gcc.target/arm/unaligned-memcpy-1.c
! 7c6fbca465cb71ef018aa51c717752cf  gcc/testsuite/gcc.target/arm/unaligned-memcpy-2.c
! 1a434cdf201666683734ecb57116b1eb  gcc/testsuite/gcc.target/arm/unaligned-memcpy-3.c
! ff972a30747f3107d428fbd2b36c5388  gcc/testsuite/gcc.target/arm/unaligned-memcpy-4.c
! b2c4a07a3f14f80317075ad979b01692  gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
! 1d12cb60b2e190558301f6543110d6d1  gcc/testsuite/gcc.target/arm/unsigned-extend-2.c
  6f28a91c6866a9c554b9e75346fc82ef  gcc/testsuite/gcc.target/arm/unsigned-float.c
  dafe3f438a1a1630e53458e22dbec6bc  gcc/testsuite/gcc.target/arm/usadv16qi.c
  dd7bfde900d68546e1d3dd468f37370b  gcc/testsuite/gcc.target/arm/va_list.c
  cc0bc7a437b1048adcd2bbb500c8613f  gcc/testsuite/gcc.target/arm/vect-copysignf.c
! 5245328c9df1adb64787d9c2e6a2d3cd  gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
! 2862e1fe9e72e6aeb5b9102c16142116  gcc/testsuite/gcc.target/arm/vect-fmaxmin-2.c
! d908beee55f212153acd40d2d8f7ab87  gcc/testsuite/gcc.target/arm/vect-fmaxmin.c
  b2a77cb9f8dcabbc91a1f9b3df63c325  gcc/testsuite/gcc.target/arm/vect-half-floats.c
  295aeeb880398f05123f0a31c3d102e3  gcc/testsuite/gcc.target/arm/vect-lceilf_1.c
  3fc041dcd9c320085497b8cb5c2dd803  gcc/testsuite/gcc.target/arm/vect-lfloorf_1.c
*************** a146fdabdb2ad719360157740f40af65  gcc/te
*** 67958,67964 ****
  f955867badc1233a269b216d0256bd56  gcc/testsuite/gcc.target/arm/vect-vcvtq.c
  8a00a0d08e71ac156dabfa9a30477997  gcc/testsuite/gcc.target/arm/vect_binary_1.c
  03b88066ee1494526d7fa0529458bf0b  gcc/testsuite/gcc.target/arm/vect_unary_1.c
! 1f2a4883d08756b5ace27238e8ee9a74  gcc/testsuite/gcc.target/arm/vfp-1.c
  ebbb43e440e5971041834a23169caac0  gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c
  30ab9af6e1b1729e2c1b8413367a3fa4  gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c
  f4b9784160ea0c2e72f63ddd73a913c6  gcc/testsuite/gcc.target/arm/vfp-ldmiad.c
--- 72389,72395 ----
  f955867badc1233a269b216d0256bd56  gcc/testsuite/gcc.target/arm/vect-vcvtq.c
  8a00a0d08e71ac156dabfa9a30477997  gcc/testsuite/gcc.target/arm/vect_binary_1.c
  03b88066ee1494526d7fa0529458bf0b  gcc/testsuite/gcc.target/arm/vect_unary_1.c
! af8f3100d09fd387e50d4fd08c7a8453  gcc/testsuite/gcc.target/arm/vfp-1.c
  ebbb43e440e5971041834a23169caac0  gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c
  30ab9af6e1b1729e2c1b8413367a3fa4  gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c
  f4b9784160ea0c2e72f63ddd73a913c6  gcc/testsuite/gcc.target/arm/vfp-ldmiad.c
*************** c31e8b0106f900f8bce4e273cb710835  gcc/te
*** 67994,68015 ****
  969de1e1bf75a0e92f917cd5c2152af9  gcc/testsuite/gcc.target/arm/vrintxf64.c
  59fc99b8a01619db6715001cb97334cf  gcc/testsuite/gcc.target/arm/vrintzf32.c
  c6c58491d97b8c9256e3ae06f0cf4443  gcc/testsuite/gcc.target/arm/vrintzf64.c
! c28efda4f101232927dad98f2af99194  gcc/testsuite/gcc.target/arm/vseleqdf.c
! dc5d113d704c8ffbc6250e21699fc4be  gcc/testsuite/gcc.target/arm/vseleqsf.c
! 19f58f8b0585ed11f2fafc441b688ada  gcc/testsuite/gcc.target/arm/vselgedf.c
! cb459c8ed10edac4313514f089d866b7  gcc/testsuite/gcc.target/arm/vselgesf.c
! a1469f8468db517b22876924e0453d23  gcc/testsuite/gcc.target/arm/vselgtdf.c
! aec6d586637084691e9822a74575e426  gcc/testsuite/gcc.target/arm/vselgtsf.c
! 3e586d488a461ee6c21c10318bff0161  gcc/testsuite/gcc.target/arm/vselledf.c
! f5534b9688c54ec7f37fd48bfc69b398  gcc/testsuite/gcc.target/arm/vsellesf.c
! 22740180c3661c510041232817aeeed9  gcc/testsuite/gcc.target/arm/vselltdf.c
! 98b4cff79758742d80ef6108ca7470bc  gcc/testsuite/gcc.target/arm/vselltsf.c
! ace8bcc51bbfae135b6255e2e7ba37c9  gcc/testsuite/gcc.target/arm/vselnedf.c
! f7ddbb02eca21f0153951e77fa18c998  gcc/testsuite/gcc.target/arm/vselnesf.c
! eabea0bdc0a360dd025ac3407a977804  gcc/testsuite/gcc.target/arm/vselvcdf.c
! a1eb3d92e95425b6b3239620babbdf5e  gcc/testsuite/gcc.target/arm/vselvcsf.c
! 1342251aa241832a48cb357fe5ab90d7  gcc/testsuite/gcc.target/arm/vselvsdf.c
! 53aa90dc7dbcbc9553905cf494d4db8e  gcc/testsuite/gcc.target/arm/vselvssf.c
  c5de64de34bce5c38e28d8d0b9873f6b  gcc/testsuite/gcc.target/arm/vst1Q_laneu64-1.c
  0665a6d6110de6db4658cd54498eb35a  gcc/testsuite/gcc.target/arm/wmul-1.c
  0aaf975f20a521ee7c274eff95ff69a6  gcc/testsuite/gcc.target/arm/wmul-10.c
--- 72425,72446 ----
  969de1e1bf75a0e92f917cd5c2152af9  gcc/testsuite/gcc.target/arm/vrintxf64.c
  59fc99b8a01619db6715001cb97334cf  gcc/testsuite/gcc.target/arm/vrintzf32.c
  c6c58491d97b8c9256e3ae06f0cf4443  gcc/testsuite/gcc.target/arm/vrintzf64.c
! 063ba3fabea9b112cdbc9510d8665d00  gcc/testsuite/gcc.target/arm/vseleqdf.c
! 48c98a17b4af7843a17d0a664a6531b1  gcc/testsuite/gcc.target/arm/vseleqsf.c
! 4d45c029fa72dd69ba60ec8d70840dcb  gcc/testsuite/gcc.target/arm/vselgedf.c
! b22461ee88da42498fe0f41274e38a23  gcc/testsuite/gcc.target/arm/vselgesf.c
! 32757122efb2d9ad662de3278e0edc1e  gcc/testsuite/gcc.target/arm/vselgtdf.c
! 73106799ce9bd1b1f1f1cc624f9790b7  gcc/testsuite/gcc.target/arm/vselgtsf.c
! 9305bfd6bf0f51f1c28fcf0ede83a8f6  gcc/testsuite/gcc.target/arm/vselledf.c
! f943f4db153494e08d11a9ef2976da6d  gcc/testsuite/gcc.target/arm/vsellesf.c
! f97bbb29f0e476457ef586787d67f764  gcc/testsuite/gcc.target/arm/vselltdf.c
! 19f64f3b34bfe22c53519f5f3de88a9b  gcc/testsuite/gcc.target/arm/vselltsf.c
! 58322cb5a6ebe90e18473ede17c5639f  gcc/testsuite/gcc.target/arm/vselnedf.c
! 59b038f0a3543093324c4c589be24d70  gcc/testsuite/gcc.target/arm/vselnesf.c
! 0982a77585399e0212f5afe513ed1fb6  gcc/testsuite/gcc.target/arm/vselvcdf.c
! 1809e5e91a6bdda2309f5f682104eb5a  gcc/testsuite/gcc.target/arm/vselvcsf.c
! a432d06bfef33dde08b85e3929c2bd8c  gcc/testsuite/gcc.target/arm/vselvsdf.c
! db0e5f64a64e99c1b724242b74a511b9  gcc/testsuite/gcc.target/arm/vselvssf.c
  c5de64de34bce5c38e28d8d0b9873f6b  gcc/testsuite/gcc.target/arm/vst1Q_laneu64-1.c
  0665a6d6110de6db4658cd54498eb35a  gcc/testsuite/gcc.target/arm/wmul-1.c
  0aaf975f20a521ee7c274eff95ff69a6  gcc/testsuite/gcc.target/arm/wmul-10.c
*************** d703d83d879134a5bb7d5e1e5a68c6b1  gcc/te
*** 68019,68027 ****
  38d9be0ca3ac0003306be2631c9d4c18  gcc/testsuite/gcc.target/arm/wmul-2.c
  2eca04e31c6778342e040e44b3c7ff78  gcc/testsuite/gcc.target/arm/wmul-3.c
  698071fd97040cfac63392c23aa7125e  gcc/testsuite/gcc.target/arm/wmul-4.c
! c6c5d9ffce3011f33645bf882b41839e  gcc/testsuite/gcc.target/arm/wmul-5.c
! 5781e7a1b7829a368c7cd5e9f6e75003  gcc/testsuite/gcc.target/arm/wmul-6.c
! bacae3d40cddefc3d02e5c9240961540  gcc/testsuite/gcc.target/arm/wmul-7.c
  6060b9cd65a81ddc58dd8cebdc000120  gcc/testsuite/gcc.target/arm/wmul-8.c
  c7c10f49683ff36c492aa2300d34dfdc  gcc/testsuite/gcc.target/arm/wmul-9.c
  c75ed40c88ef10849c23f953624d1ae2  gcc/testsuite/gcc.target/arm/wmul-bitfield-1.c
--- 72450,72458 ----
  38d9be0ca3ac0003306be2631c9d4c18  gcc/testsuite/gcc.target/arm/wmul-2.c
  2eca04e31c6778342e040e44b3c7ff78  gcc/testsuite/gcc.target/arm/wmul-3.c
  698071fd97040cfac63392c23aa7125e  gcc/testsuite/gcc.target/arm/wmul-4.c
! 76b7b259cb0e73f92c160c54368a78aa  gcc/testsuite/gcc.target/arm/wmul-5.c
! 796aace665edd5ec7e824ce5f894408e  gcc/testsuite/gcc.target/arm/wmul-6.c
! bca5c2d79824d79edaab07b91e94aeda  gcc/testsuite/gcc.target/arm/wmul-7.c
  6060b9cd65a81ddc58dd8cebdc000120  gcc/testsuite/gcc.target/arm/wmul-8.c
  c7c10f49683ff36c492aa2300d34dfdc  gcc/testsuite/gcc.target/arm/wmul-9.c
  c75ed40c88ef10849c23f953624d1ae2  gcc/testsuite/gcc.target/arm/wmul-bitfield-1.c
*************** c75ed40c88ef10849c23f953624d1ae2  gcc/te
*** 68029,68042 ****
  a1131491d67160098e775860b91e3021  gcc/testsuite/gcc.target/arm/xor-and.c
  79a594a642e89de4c3a753867b50cf54  gcc/testsuite/gcc.target/arm/xordi3-opt.c
  c80b20e750ebef437da2bce443dea236  gcc/testsuite/gcc.target/avr/attribute-io.h
! ccbfc33e8dfbece89b515e3a31919e02  gcc/testsuite/gcc.target/avr/avr.exp
  a6701935d18c8ed062555c8a48454bc9  gcc/testsuite/gcc.target/avr/dev-specific-rmw.c
  2028ceccf9f97e5e84e9adf6beb7597e  gcc/testsuite/gcc.target/avr/exit-abort.h
! 01c5f01bf5db7494c293de76bfa7ad3f  gcc/testsuite/gcc.target/avr/isr-test.h
  d258157b4a9f2a166772579aaadca0be  gcc/testsuite/gcc.target/avr/lra-cpymem_qi.c
  c1c7be0795b89f4d537c95e15050d230  gcc/testsuite/gcc.target/avr/lra-elim.c
! 1d369daa23e9f096729be38ef8b052f4  gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp
  e6c6cd4929655e37f97d2182ddfe5617  gcc/testsuite/gcc.target/avr/mmcu/pr109476.c
  e0e1e2e0021b9ad7de197bd200536621  gcc/testsuite/gcc.target/avr/mmcu/pr54816.c
  421d2b9b36fa2496dce05d129d2c352b  gcc/testsuite/gcc.target/avr/mmcu/pr58545.c
  8172209b564aa8049ce5758eac60cc46  gcc/testsuite/gcc.target/avr/mmcu/tiny-caller-save.c
--- 72460,72487 ----
  a1131491d67160098e775860b91e3021  gcc/testsuite/gcc.target/arm/xor-and.c
  79a594a642e89de4c3a753867b50cf54  gcc/testsuite/gcc.target/arm/xordi3-opt.c
  c80b20e750ebef437da2bce443dea236  gcc/testsuite/gcc.target/avr/attribute-io.h
! 67dbd95b35a1b23daab711eb1cc3e33f  gcc/testsuite/gcc.target/avr/avr.exp
  a6701935d18c8ed062555c8a48454bc9  gcc/testsuite/gcc.target/avr/dev-specific-rmw.c
  2028ceccf9f97e5e84e9adf6beb7597e  gcc/testsuite/gcc.target/avr/exit-abort.h
! ba7c48974675d54204196ccc8c44007e  gcc/testsuite/gcc.target/avr/isr-test.h
  d258157b4a9f2a166772579aaadca0be  gcc/testsuite/gcc.target/avr/lra-cpymem_qi.c
  c1c7be0795b89f4d537c95e15050d230  gcc/testsuite/gcc.target/avr/lra-elim.c
! fd3913f17cda7ee4c0d6dc11d4279bfa  gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp
  e6c6cd4929655e37f97d2182ddfe5617  gcc/testsuite/gcc.target/avr/mmcu/pr109476.c
+ ade81681a7af34d905a57384368e2b88  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-o2-m103.c
+ 7afb126a18b36ed41bc9fe5e90c5d76c  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-o2-m128.c
+ 3bb1bd7e45b0fac286a355bbb1ce0fc2  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-o2-t40.c
+ 3d90d3f6b64c16ec98ecb6f9a73aaafb  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-os-m103.c
+ 924e7e12fec5b8f5bcefee01791dc307  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-os-m128.c
+ 82ae6e790f27bd51c296717c3a80b940  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1-os-t40.c
+ 713118848a71d895cc675c5dd837869b  gcc/testsuite/gcc.target/avr/mmcu/pr118012-1.h
+ d01ff67c8887f4cb9d14d982950801e6  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-o2-m103.c
+ 2a05d83bfd47eaca8c24eae3d1b0d796  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-o2-m128.c
+ f7900c9129b8537e3b405d3843f8bd2c  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-o2-t40.c
+ 5dbc776e307a9806076a734cc4976cdb  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-os-m103.c
+ 7b35d3df9ef51feb8f61e207705d458e  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-os-m128.c
+ 50557c06b5417ddc93c9c730783ee7ab  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1-os-t40.c
+ 623e85a849686c9ff886f2a5267684f2  gcc/testsuite/gcc.target/avr/mmcu/pr118360-1.h
  e0e1e2e0021b9ad7de197bd200536621  gcc/testsuite/gcc.target/avr/mmcu/pr54816.c
  421d2b9b36fa2496dce05d129d2c352b  gcc/testsuite/gcc.target/avr/mmcu/pr58545.c
  8172209b564aa8049ce5758eac60cc46  gcc/testsuite/gcc.target/avr/mmcu/tiny-caller-save.c
*************** cbbdbc1f2e5f1be9d84964c49c4e1d8a  gcc/te
*** 68052,68059 ****
  5bce43a3b899dee1019d96465b5ebf67  gcc/testsuite/gcc.target/avr/pr114132-1.c
  e6cd0765dea3fde235455229d90597c7  gcc/testsuite/gcc.target/avr/pr114975-parity.c
  539ce3aab7106b8babfeb6e60c71880b  gcc/testsuite/gcc.target/avr/pr114975-popcount.c
! 33de71bb615aba171af02ad7f1fc8faa  gcc/testsuite/gcc.target/avr/pr114981-powif.c
! b336e6f4d1af14f79b0e9e2451c8046e  gcc/testsuite/gcc.target/avr/pr114981-powil.c
  8d351de18b6ca99f76c43eaa14213d53  gcc/testsuite/gcc.target/avr/pr46779-1.c
  2887bd8c777e4696616590f0d60653b6  gcc/testsuite/gcc.target/avr/pr46779-2.c
  d92831f37e30237d1dc568f585e4c2c9  gcc/testsuite/gcc.target/avr/pr50739.c
--- 72497,72515 ----
  5bce43a3b899dee1019d96465b5ebf67  gcc/testsuite/gcc.target/avr/pr114132-1.c
  e6cd0765dea3fde235455229d90597c7  gcc/testsuite/gcc.target/avr/pr114975-parity.c
  539ce3aab7106b8babfeb6e60c71880b  gcc/testsuite/gcc.target/avr/pr114975-popcount.c
! d8e24b2e246c2e262e2edb67e06d94c2  gcc/testsuite/gcc.target/avr/pr114981-powif.c
! 6f0d880da5dea813015be48886a81c96  gcc/testsuite/gcc.target/avr/pr114981-powil.c
! 0df1fcc140e0f5109e90c80194aa75a2  gcc/testsuite/gcc.target/avr/pr115830-add-c.c
! 92c7c0104be3e219418a636f4796831d  gcc/testsuite/gcc.target/avr/pr115830-add-i.c
! e6bdfe17bde9976289f1e3f8dc80ddfc  gcc/testsuite/gcc.target/avr/pr115830-add.c
! ba80a0b77ee5ea5abfac18d478093c80  gcc/testsuite/gcc.target/avr/pr115830-and.c
! 7375cb647b8d4c43ddc6729b31b0cc63  gcc/testsuite/gcc.target/avr/pr115830-asl.c
! eba9de5104eb2de915d598e59ed5c61a  gcc/testsuite/gcc.target/avr/pr115830-asl32.c
! 8dfbd6ed6eacf457ac6b8f2f05808005  gcc/testsuite/gcc.target/avr/pr115830-asr.c
! b61291f78078147f21c923a3c8b81a63  gcc/testsuite/gcc.target/avr/pr115830-ior.c
! c2fc6d1ea97f22057cf58d7025837704  gcc/testsuite/gcc.target/avr/pr115830-lsr.c
! a221ce1cf8f087e1b841edfdc50cf1d1  gcc/testsuite/gcc.target/avr/pr115830-sub-ext.c
! 6f031744eb7ae87b9e251bb5492208f6  gcc/testsuite/gcc.target/avr/pr115830-sub.c
  8d351de18b6ca99f76c43eaa14213d53  gcc/testsuite/gcc.target/avr/pr46779-1.c
  2887bd8c777e4696616590f0d60653b6  gcc/testsuite/gcc.target/avr/pr46779-2.c
  d92831f37e30237d1dc568f585e4c2c9  gcc/testsuite/gcc.target/avr/pr50739.c
*************** aaa9c47b190b793ab53ebe110e5513ca  gcc/te
*** 68076,68085 ****
  35b856a6bbf391f0cf5464844277ca94  gcc/testsuite/gcc.target/avr/pr71151-8.c
  d8ead6d8d078793f34d18293ea311a91  gcc/testsuite/gcc.target/avr/pr71151-common.h
  7dba5055eb753013ba39c839ade672ac  gcc/testsuite/gcc.target/avr/pr71627.c
! a4bae8cf29db0f6fadafdca3a5bde0c1  gcc/testsuite/gcc.target/avr/pr71676-1.c
! ee3885b4bb56d95f0fb2ebfe2a2c59cb  gcc/testsuite/gcc.target/avr/pr71676-2.c
! d5c8fd29fb9b2ff9d36bac3d01f75b13  gcc/testsuite/gcc.target/avr/pr71676-3.c
! 2ed1f0bc4da53e9763c2d91642fbe089  gcc/testsuite/gcc.target/avr/pr71676.c
  859b3836a035473a6251a77102bbe16d  gcc/testsuite/gcc.target/avr/pr71678.c
  f91d8c4774a3ac3e49934378e0629b52  gcc/testsuite/gcc.target/avr/pr71873.c
  5e90aa3ebe8d6e58597bdaa2ecf4948c  gcc/testsuite/gcc.target/avr/pr82931.c
--- 72532,72541 ----
  35b856a6bbf391f0cf5464844277ca94  gcc/testsuite/gcc.target/avr/pr71151-8.c
  d8ead6d8d078793f34d18293ea311a91  gcc/testsuite/gcc.target/avr/pr71151-common.h
  7dba5055eb753013ba39c839ade672ac  gcc/testsuite/gcc.target/avr/pr71627.c
! 32cb40fb4af14b669c446246b15cba88  gcc/testsuite/gcc.target/avr/pr71676-1.c
! cf3a26a6a0a000615fdd9a8cf59a0869  gcc/testsuite/gcc.target/avr/pr71676-2.c
! c90afef2697aa411639025d2c1b96b9f  gcc/testsuite/gcc.target/avr/pr71676-3.c
! cdc87cdb0834e1f2b3557d4c62dc2bb5  gcc/testsuite/gcc.target/avr/pr71676.c
  859b3836a035473a6251a77102bbe16d  gcc/testsuite/gcc.target/avr/pr71678.c
  f91d8c4774a3ac3e49934378e0629b52  gcc/testsuite/gcc.target/avr/pr71873.c
  5e90aa3ebe8d6e58597bdaa2ecf4948c  gcc/testsuite/gcc.target/avr/pr82931.c
*************** cbd676b663043514bbc26a8a6c3b7a9d  gcc/te
*** 68091,68107 ****
  57cf0cd622a50ae70434f57249214c0a  gcc/testsuite/gcc.target/avr/progmem-error-1.cpp
  56de611fd29076ce9da389a853476819  gcc/testsuite/gcc.target/avr/progmem-warning-1.c
  06a40c47b5a1c6fd69f69a33ab43a52e  gcc/testsuite/gcc.target/avr/progmem.h
  2b06671686db85920f5618751e2f29b6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
  74d75d6b9b2f092a0eaf81b8ffe81ced  gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
  e1c7151f17ec114f6529f690e6145cb6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
  e448136494af9abcaa38e2065e82682d  gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
! 7203095415106fa12c3d912391683ad7  gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
  9d5a32faf6748464f7acaa8160b0ac81  gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
  88efd122a34e6eca1c9d552052df8bbc  gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
  53dfc94573110c2220b0a51c076fda55  gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
  6fb32c1fcefb2d5260347dc067759686  gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
! a0d24b6b729b3316832b85d84ee2f113  gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
! e1b2eb478168430cebc92bdd9d62b8c1  gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
  8fb103e22590dcf8f557336ecf8d0b5d  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-1.c
  43852eb8aa736eadca5b3c517bf0d743  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-2.c
  6f7a316d69505eb726fcfadde1df3047  gcc/testsuite/gcc.target/avr/torture/builtins-1.c
--- 72547,72567 ----
  57cf0cd622a50ae70434f57249214c0a  gcc/testsuite/gcc.target/avr/progmem-error-1.cpp
  56de611fd29076ce9da389a853476819  gcc/testsuite/gcc.target/avr/progmem-warning-1.c
  06a40c47b5a1c6fd69f69a33ab43a52e  gcc/testsuite/gcc.target/avr/progmem.h
+ e0cdee8aeda646b4568b7a3c52bff5fe  gcc/testsuite/gcc.target/avr/torture/add-extend.c
  2b06671686db85920f5618751e2f29b6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
  74d75d6b9b2f092a0eaf81b8ffe81ced  gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
+ d1ba756d7946819d6a4eb516f936c90e  gcc/testsuite/gcc.target/avr/torture/addr-space-1-fx.c
  e1c7151f17ec114f6529f690e6145cb6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
  e448136494af9abcaa38e2065e82682d  gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
! 9ae86f080ccb50de511d8a73a23335b6  gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
  9d5a32faf6748464f7acaa8160b0ac81  gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
  88efd122a34e6eca1c9d552052df8bbc  gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
+ b8b2cc371ccf507014a9861408530661  gcc/testsuite/gcc.target/avr/torture/addr-space-2-fx.c
  53dfc94573110c2220b0a51c076fda55  gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
  6fb32c1fcefb2d5260347dc067759686  gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
! 956149ff03a58258bd6c1baeea2c8667  gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
! 5846b5b5a412dbbdf490abf3e58c88d2  gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
! 7788adde892b354bb405fa65f51b1ca8  gcc/testsuite/gcc.target/avr/torture/builtin-mask1.c
  8fb103e22590dcf8f557336ecf8d0b5d  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-1.c
  43852eb8aa736eadca5b3c517bf0d743  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-2.c
  6f7a316d69505eb726fcfadde1df3047  gcc/testsuite/gcc.target/avr/torture/builtins-1.c
*************** e1b2eb478168430cebc92bdd9d62b8c1  gcc/te
*** 68111,68166 ****
  72764bd3fc957d6e2c5475fdf94633ff  gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
  0d57054a27e8f45b06571358f92c481b  gcc/testsuite/gcc.target/avr/torture/builtins-5-countlsfx.c
  0628f66d299ecca3619e823e3cc62896  gcc/testsuite/gcc.target/avr/torture/builtins-error.c
! c458c2462e23a4c58a7e4d05b6200907  gcc/testsuite/gcc.target/avr/torture/fix-types.h
! 955a40e1d1066b48539480d898f7b7e3  gcc/testsuite/gcc.target/avr/torture/get-mem.c
! 80f19a686eb7d8fa81e0ee3daf68fc5c  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-hi.c
! ae0e4639aab784faf6d9790cd216e5af  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-si.c
! 33798ca51880c8beb722dd5baf15598f  gcc/testsuite/gcc.target/avr/torture/int24-mul.c
  f07474ce14e61da44f73f5bc38af0fa5  gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c
! fcfc22b5becf29a31bc290457133738d  gcc/testsuite/gcc.target/avr/torture/isr-02-call.c
! 9cae7dcbc57747c7d869b4d66a99221f  gcc/testsuite/gcc.target/avr/torture/isr-03-fixed.c
  da616058fed041fe8be91af9e560a517  gcc/testsuite/gcc.target/avr/torture/pr105753.c
! 112c41be69fc1500c61b78d58e88cb62  gcc/testsuite/gcc.target/avr/torture/pr109650-1.c
! 057f8a7fa6d90ee3ba242f26befaec45  gcc/testsuite/gcc.target/avr/torture/pr109650-2.c
! ba0a1d3cd4b035483a1c25a15db266c5  gcc/testsuite/gcc.target/avr/torture/pr109907-1.c
! 9c5ff907a967e478516a17f07c83cc80  gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
  9d22856d71f5be1330322ffedc6b0c48  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-0.c
  b69cc366bcf67c0a489ddd0287a0ff9f  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-1.c
! 36bf0eb6c126e0f430da14b0a987d739  gcc/testsuite/gcc.target/avr/torture/pr114132-2.c
  076528976282b60094f653255606b21f  gcc/testsuite/gcc.target/avr/torture/pr115307-isinf.c
  f6a5b393e8b302550433204eafe7ff3e  gcc/testsuite/gcc.target/avr/torture/pr115317-isinf.c
! 0844a939ea2464d30cc8892c85b4aecc  gcc/testsuite/gcc.target/avr/torture/pr39633.c
  8fb17af722ee890b7fa08b5610cdb80e  gcc/testsuite/gcc.target/avr/torture/pr41885.c
  70b849f57ecf42299230b99b7734dd2d  gcc/testsuite/gcc.target/avr/torture/pr51374-1.c
! 5c91050c6b515f4c9856e7d4c64df591  gcc/testsuite/gcc.target/avr/torture/pr51782-1.c
  0f75faaa72ab04629492433cefe22039  gcc/testsuite/gcc.target/avr/torture/pr57631.c
! 665a077423cb5e8c8f7cebd1c0ae38e4  gcc/testsuite/gcc.target/avr/torture/pr61055.c
! 6514d2bfbaa06a586d531fbd6693c042  gcc/testsuite/gcc.target/avr/torture/pr61443.c
! 7f56c1b750dfe8d7e4128f15aa3eaffe  gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c
! 44584f49cd0975073be7b86102774077  gcc/testsuite/gcc.target/avr/torture/pr64331.c
  dcabffeb42e88a442661b9e47e43a9c1  gcc/testsuite/gcc.target/avr/torture/pr64452.c
  ab53af0eb6dbfe2791a8ac1bbaf0c11f  gcc/testsuite/gcc.target/avr/torture/pr71103-2.c
! 5f3be2dbb82f715c14a1a41fff447a60  gcc/testsuite/gcc.target/avr/torture/pr77326.c
! 4fbef28c5655476b160563b7732f35f0  gcc/testsuite/gcc.target/avr/torture/pr83729.c
! 3f60045ba7f9c20a87591727f9e0b7f1  gcc/testsuite/gcc.target/avr/torture/pr83801.c
! cdd277ee16a82198dac193f2885f4cb3  gcc/testsuite/gcc.target/avr/torture/pr87376.c
! 54e693530d5f4d0566b475b2eaa73cca  gcc/testsuite/gcc.target/avr/torture/pr88236-pr115726.c
! 52eb2c2bb002e59b07281c8efa4702fb  gcc/testsuite/gcc.target/avr/torture/pr92606.c
! d41e40769fe3b38d9debfff43a083a18  gcc/testsuite/gcc.target/avr/torture/pr98762.c
  21a45d34960ba9567b9f2483d22c843f  gcc/testsuite/gcc.target/avr/torture/progmem-1.c
  564c71a894aff68e98d5c4a6db2b47ae  gcc/testsuite/gcc.target/avr/torture/progmem-1.cpp
! 126473a2f2a291f65eeb2dca66b500b2  gcc/testsuite/gcc.target/avr/torture/sat-hr-plus-minus.c
! 010572d08e9ebcbcdb1f6bd1d5cf6010  gcc/testsuite/gcc.target/avr/torture/sat-k-plus-minus.c
! e6850166a65d653f357f477745460885  gcc/testsuite/gcc.target/avr/torture/sat-llk-plus-minus.c
! 27b35fba635f70cb018e657bc99b41b9  gcc/testsuite/gcc.target/avr/torture/sat-r-plus-minus.c
! 73da8fa74715aaa16eba8014ae3d7515  gcc/testsuite/gcc.target/avr/torture/sat-uhr-plus-minus.c
! 2697f0a9a2c8d3969e54f09153e5b8b0  gcc/testsuite/gcc.target/avr/torture/sat-uk-plus-minus.c
! e26153252ec5b578f6e242def1b0acc7  gcc/testsuite/gcc.target/avr/torture/sat-ullk-plus-minus.c
! 1b57bb53ce46f2be70fba74239faa1dd  gcc/testsuite/gcc.target/avr/torture/sat-ur-plus-minus.c
! f625e06d6f28ac58eff4365218e76cc1  gcc/testsuite/gcc.target/avr/torture/set-mem.c
  ac13073df68e284c16972e31c8e0dfd7  gcc/testsuite/gcc.target/avr/torture/tiny-absdata-1.c
  cc2406331808eebf0409a55d14ddae36  gcc/testsuite/gcc.target/avr/torture/tiny-absdata-2.c
! 35d7617e02f1b2d9d3d161eb4a445c79  gcc/testsuite/gcc.target/avr/torture/tiny-progmem.c
  ae6a82add6ca7317217a8a75a19e6f64  gcc/testsuite/gcc.target/avr/torture/trivial.c
  f9cacc8cf30abf6dac1115f7ffc4904e  gcc/testsuite/gcc.target/avr/torture/vals-hr.def
  3509c6c766350be8dd5db4fe63a8eea5  gcc/testsuite/gcc.target/avr/torture/vals-k.def
--- 72571,72686 ----
  72764bd3fc957d6e2c5475fdf94633ff  gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
  0d57054a27e8f45b06571358f92c481b  gcc/testsuite/gcc.target/avr/torture/builtins-5-countlsfx.c
  0628f66d299ecca3619e823e3cc62896  gcc/testsuite/gcc.target/avr/torture/builtins-error.c
! 7a45a4d72d4d6e562405e71535189f57  gcc/testsuite/gcc.target/avr/torture/cmp-lsr-i32.c
! c7493a58c66092a933352c0f6b3bc2ef  gcc/testsuite/gcc.target/avr/torture/cmp-lsr-u16.c
! 9f097b144c518650b2cf0591c0966469  gcc/testsuite/gcc.target/avr/torture/cmp-lsr-u24.c
! 5e8c95405056e6484bfb2d14deff57e0  gcc/testsuite/gcc.target/avr/torture/cmp-lsr-u32.c
! 6af46b0a3b0470be22ee71fa475d15e7  gcc/testsuite/gcc.target/avr/torture/cmp-lsr-u64.c
! e0ac7f427245aa855de6a0fc90d23450  gcc/testsuite/gcc.target/avr/torture/fix-types.h
! 606de8be666cce96d2893c26b23e996b  gcc/testsuite/gcc.target/avr/torture/fuse-add.c
! f44d733dead349fc75c231456db45f9e  gcc/testsuite/gcc.target/avr/torture/get-mem.c
! bd4eca5f911ab0e0765cc72984da689d  gcc/testsuite/gcc.target/avr/torture/ifelse-c-i16.c
! 6d8f4ca28fb3328f91ff6c41c876c6a3  gcc/testsuite/gcc.target/avr/torture/ifelse-c-i8.c
! a58a6eb08781893e6abde0d8ea6b692a  gcc/testsuite/gcc.target/avr/torture/ifelse-c-u16.c
! 154213bf7d3117abfa945560cbd649b6  gcc/testsuite/gcc.target/avr/torture/ifelse-c.h
! 1fbe177d5dfb147f6164b967ae8b837d  gcc/testsuite/gcc.target/avr/torture/ifelse-d-i16.c
! 06aeff94488031fc52277b95db69590d  gcc/testsuite/gcc.target/avr/torture/ifelse-d-i8.c
! e3368276813cf89c4fe4bae1e5f7b58c  gcc/testsuite/gcc.target/avr/torture/ifelse-d-u16.c
! 48ed172b5f6c6b172acda11d5a50946d  gcc/testsuite/gcc.target/avr/torture/ifelse-d.h
! 4d0c797abf5d92f7292b182205359d0e  gcc/testsuite/gcc.target/avr/torture/ifelse-q-i16.c
! acf9f04f9db262c1046342c9c4c5dd46  gcc/testsuite/gcc.target/avr/torture/ifelse-q-i8.c
! 2ef7b6f3f4c6f8f83e76178d492012ab  gcc/testsuite/gcc.target/avr/torture/ifelse-q-u16.c
! 6b63a4e164fc3c2c9626ef8357e736e1  gcc/testsuite/gcc.target/avr/torture/ifelse-q.h
! e958dbfde981ab15d30fc51e30e06688  gcc/testsuite/gcc.target/avr/torture/ifelse-r-i16.c
! 6f82554bacea5dcd29167d1f1adfd060  gcc/testsuite/gcc.target/avr/torture/ifelse-r-i8.c
! 11d65ee787b678bcc50d6e3016f184dc  gcc/testsuite/gcc.target/avr/torture/ifelse-r-u16.c
! dffc924ad8b22851a3c94d83a89c80f7  gcc/testsuite/gcc.target/avr/torture/ifelse-r.h
! e093935b2640b302f734e21e94b450f9  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-hi.c
! 5f7919dc7e31e4dde4bd34154e7b41e1  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-si.c
! 996bc85e89c48fa475e4626983340c65  gcc/testsuite/gcc.target/avr/torture/int24-mul.c
  f07474ce14e61da44f73f5bc38af0fa5  gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c
! e8f2e1136f3eb76e3c0302a15017c45b  gcc/testsuite/gcc.target/avr/torture/isr-02-call.c
! 18483451a583c882c25ea5f85f13e95a  gcc/testsuite/gcc.target/avr/torture/isr-03-fixed.c
! f393c32accdd23c8c693581dcc7ae5bb  gcc/testsuite/gcc.target/avr/torture/isr-04-regs.c
! 8535e16223b3cd55d766057f1d05bbbf  gcc/testsuite/gcc.target/avr/torture/lra-pr116321.c
! 4e9b69c7e85deef53a3b55f57424650a  gcc/testsuite/gcc.target/avr/torture/lra-pr116324.c
! 7b9daf34bbf302a99af9ea586c3864c6  gcc/testsuite/gcc.target/avr/torture/lra-pr116325.c
! 0ef8072518be99e2f0e2fd3889e69f75  gcc/testsuite/gcc.target/avr/torture/lra-pr116550-1.c
  da616058fed041fe8be91af9e560a517  gcc/testsuite/gcc.target/avr/torture/pr105753.c
! 299c4bcace92c9ed182043ed40499b9a  gcc/testsuite/gcc.target/avr/torture/pr109650-1.c
! 82bb70be6a630ff14be3ddda2eaf91ed  gcc/testsuite/gcc.target/avr/torture/pr109650-2.c
! 9ce6280e02dc17a076da4854889872d0  gcc/testsuite/gcc.target/avr/torture/pr109907-1.c
! 4eed186fe32d1a6a199a3f9f311f01de  gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
  9d22856d71f5be1330322ffedc6b0c48  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-0.c
  b69cc366bcf67c0a489ddd0287a0ff9f  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-1.c
! 6f50446a96de93c34968f78a5caa00fb  gcc/testsuite/gcc.target/avr/torture/pr114132-2.c
  076528976282b60094f653255606b21f  gcc/testsuite/gcc.target/avr/torture/pr115307-isinf.c
  f6a5b393e8b302550433204eafe7ff3e  gcc/testsuite/gcc.target/avr/torture/pr115317-isinf.c
! c7b1336be445926fff404f05b8ace3ae  gcc/testsuite/gcc.target/avr/torture/pr116295.c
! d78f457d6a14c13cb80ab5757454c71c  gcc/testsuite/gcc.target/avr/torture/pr116390.c
! e6f8c16f16933f4321616345f9504093  gcc/testsuite/gcc.target/avr/torture/pr116407-2.c
! e4a3459589124a7656ce0cc1ace448d3  gcc/testsuite/gcc.target/avr/torture/pr116407-4.c
! f5f0a4821b45497a6a7311f96ebbd9bc  gcc/testsuite/gcc.target/avr/torture/pr116953.c
! 8f59464224740dd6b42a62b264f2a8e2  gcc/testsuite/gcc.target/avr/torture/pr117191.c
! 638eda82e4fd2d1174d9924cb8f85205  gcc/testsuite/gcc.target/avr/torture/pr118591-1.c
! b0760735b41e884b68592d2f55b5906f  gcc/testsuite/gcc.target/avr/torture/pr118591-2.c
! 3c4063e4c9576c55f40ea4144444e462  gcc/testsuite/gcc.target/avr/torture/pr118878.c
! eba4fe077050371bba16b0a0151a38e5  gcc/testsuite/gcc.target/avr/torture/pr119421-sreg.c
! 42a74f28c740c9bd42dab79171f49a39  gcc/testsuite/gcc.target/avr/torture/pr39633.c
  8fb17af722ee890b7fa08b5610cdb80e  gcc/testsuite/gcc.target/avr/torture/pr41885.c
  70b849f57ecf42299230b99b7734dd2d  gcc/testsuite/gcc.target/avr/torture/pr51374-1.c
! 99851bb267316183a89869899db0bbf4  gcc/testsuite/gcc.target/avr/torture/pr51782-1.c
  0f75faaa72ab04629492433cefe22039  gcc/testsuite/gcc.target/avr/torture/pr57631.c
! c3f221c5e26dac5c14acbc67dbe0346b  gcc/testsuite/gcc.target/avr/torture/pr61055.c
! 5e073baf55ba69be8d55fa7aa8c2884c  gcc/testsuite/gcc.target/avr/torture/pr61443.c
! 7bf55f2b086c32130b2d4c2b7617e0fe  gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c
! 5fe68e8a7d4ee9f6b489e5343878ac6a  gcc/testsuite/gcc.target/avr/torture/pr64331.c
  dcabffeb42e88a442661b9e47e43a9c1  gcc/testsuite/gcc.target/avr/torture/pr64452.c
  ab53af0eb6dbfe2791a8ac1bbaf0c11f  gcc/testsuite/gcc.target/avr/torture/pr71103-2.c
! a173627a728a3a28f74aa74c158b1ec4  gcc/testsuite/gcc.target/avr/torture/pr77326.c
! 906790488711dd165991fe5b616d5188  gcc/testsuite/gcc.target/avr/torture/pr83729.c
! 1367dacfc14196df93b1652cd803474b  gcc/testsuite/gcc.target/avr/torture/pr83801.c
! 86d5641d62f909052432204bd3f47770  gcc/testsuite/gcc.target/avr/torture/pr84211-fuse-move-1.c
! 02a618f0714d48ef7ec2f35b995a706c  gcc/testsuite/gcc.target/avr/torture/pr84211-fuse-move-2.c
! 690d69546d72db49fcb1141d42087a75  gcc/testsuite/gcc.target/avr/torture/pr85624.c
! a09e14ca01139fcd5c0b1d1207a7dfe0  gcc/testsuite/gcc.target/avr/torture/pr87376.c
! 5d2bc63be2e80e5f8c7eaa5b5c067aae  gcc/testsuite/gcc.target/avr/torture/pr88236-pr115726.c
! 0d8d502c204ab4a95f6aa9fde8efcbe4  gcc/testsuite/gcc.target/avr/torture/pr92606.c
! bf4a21c7b034c6a9f298493a177f78cc  gcc/testsuite/gcc.target/avr/torture/pr98762.c
  21a45d34960ba9567b9f2483d22c843f  gcc/testsuite/gcc.target/avr/torture/progmem-1.c
  564c71a894aff68e98d5c4a6db2b47ae  gcc/testsuite/gcc.target/avr/torture/progmem-1.cpp
! abce48a3126d7357764d4a611758d609  gcc/testsuite/gcc.target/avr/torture/sat-hr-plus-minus.c
! 1a31bb175ab953c54f354dfc0cdcd07c  gcc/testsuite/gcc.target/avr/torture/sat-k-plus-minus.c
! 6956d3e6d397df0700c2b30eadd9fc17  gcc/testsuite/gcc.target/avr/torture/sat-llk-plus-minus.c
! 62b5685ece5de525d39de0492bfff533  gcc/testsuite/gcc.target/avr/torture/sat-r-plus-minus.c
! 9ed4dd69e29e85e54df4e31e52f94d2c  gcc/testsuite/gcc.target/avr/torture/sat-uhr-plus-minus.c
! 1391b723be9925746c0d677365f3b989  gcc/testsuite/gcc.target/avr/torture/sat-uk-plus-minus.c
! 4082d934da8fef7f6ad8175b2c428601  gcc/testsuite/gcc.target/avr/torture/sat-ullk-plus-minus.c
! 4a0974d426f4bd597fea3dcfa3e6b896  gcc/testsuite/gcc.target/avr/torture/sat-ur-plus-minus.c
! 6e20cf796f4db52ae3792ed04ee06fd3  gcc/testsuite/gcc.target/avr/torture/set-mem.c
! 48fdd6e79b4474a85d4597a10b846213  gcc/testsuite/gcc.target/avr/torture/shift-l-u16.c
! fad68b3bd53d835615a27afc5369746f  gcc/testsuite/gcc.target/avr/torture/shift-l-u24.c
! 6942923a6d2a735ae393bb14fdc97ea3  gcc/testsuite/gcc.target/avr/torture/shift-l-u32.c
! aecf799e1b810a292a2e085c02e64d3d  gcc/testsuite/gcc.target/avr/torture/shift-l-u8.c
! 02c2ef471c444a2b5ceaddaa30d30eac  gcc/testsuite/gcc.target/avr/torture/shift-r-i16.c
! 6dd050b2f200ecb05ab06eb99590232a  gcc/testsuite/gcc.target/avr/torture/shift-r-i24.c
! fc5006652241dd02683ce26fe6afe54f  gcc/testsuite/gcc.target/avr/torture/shift-r-i32.c
! 694c5dbbb9c4db27de6a4858910fcc5a  gcc/testsuite/gcc.target/avr/torture/shift-r-i8.c
! e3b51700ab0ac477a848d6dceef1756e  gcc/testsuite/gcc.target/avr/torture/shift-r-u16.c
! e2725d4b0881f9579e1e9e2518931244  gcc/testsuite/gcc.target/avr/torture/shift-r-u24.c
! c11f2631abef0229f28109826baafe86  gcc/testsuite/gcc.target/avr/torture/shift-r-u32.c
! 97c5b131bd1c4e1b193f420a9d7309d4  gcc/testsuite/gcc.target/avr/torture/shift-r-u8.c
! f10c5702644b037ac0bc4ee52dce1b3d  gcc/testsuite/gcc.target/avr/torture/signal_n-1.c
! 597f6aa1f88c7db88073d0a0bedd0c90  gcc/testsuite/gcc.target/avr/torture/signal_n-2.c
! 4427733c69c0e400280e694154287a6b  gcc/testsuite/gcc.target/avr/torture/signal_n-3.c
! 22b092a900bd36f8fd944bf353423a61  gcc/testsuite/gcc.target/avr/torture/signal_n-4.cpp
! 4262995dbf39f7c5c2d71f9fb7ab3831  gcc/testsuite/gcc.target/avr/torture/sub-extend.c
! 13ff6b1a5832ef06d56e72a5944f2ba9  gcc/testsuite/gcc.target/avr/torture/sub-zerox.c
! ffee1f637830110a5c8281cce3701a59  gcc/testsuite/gcc.target/avr/torture/test-gprs.h
! 58697373aa2a306daa7958ca9339cd45  gcc/testsuite/gcc.target/avr/torture/test-shift.h
  ac13073df68e284c16972e31c8e0dfd7  gcc/testsuite/gcc.target/avr/torture/tiny-absdata-1.c
  cc2406331808eebf0409a55d14ddae36  gcc/testsuite/gcc.target/avr/torture/tiny-absdata-2.c
! 8c26ca9b69fa193311402c9283e0841e  gcc/testsuite/gcc.target/avr/torture/tiny-progmem.c
  ae6a82add6ca7317217a8a75a19e6f64  gcc/testsuite/gcc.target/avr/torture/trivial.c
  f9cacc8cf30abf6dac1115f7ffc4904e  gcc/testsuite/gcc.target/avr/torture/vals-hr.def
  3509c6c766350be8dd5db4fe63a8eea5  gcc/testsuite/gcc.target/avr/torture/vals-k.def
*************** b132d1738c80be39010cd2b0314aba73  gcc/te
*** 68177,68183 ****
  e8596cb430561d81a166efee3830ab78  gcc/testsuite/gcc.target/bfin/20090914-2.c
  49ce985a23784e4dedbfc6c211266187  gcc/testsuite/gcc.target/bfin/20090914-3.c
  bf1c248fa1b1520ecdeed5e768375da7  gcc/testsuite/gcc.target/bfin/arith.c
! 8e2cc06824354e45be523ed4740bf263  gcc/testsuite/gcc.target/bfin/bfin.exp
  e666a8a0054e7cac9ce2a121c6d1ccbf  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-1.c
  9b9ec1d751f1617d55d1098c8c77391b  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-2.c
  6b81ebc6aa2acb74b2481ebe48c3dc2c  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x32-1.c
--- 72697,72703 ----
  e8596cb430561d81a166efee3830ab78  gcc/testsuite/gcc.target/bfin/20090914-2.c
  49ce985a23784e4dedbfc6c211266187  gcc/testsuite/gcc.target/bfin/20090914-3.c
  bf1c248fa1b1520ecdeed5e768375da7  gcc/testsuite/gcc.target/bfin/arith.c
! 5a38b4f75f5737c05c891a084ab74739  gcc/testsuite/gcc.target/bfin/bfin.exp
  e666a8a0054e7cac9ce2a121c6d1ccbf  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-1.c
  9b9ec1d751f1617d55d1098c8c77391b  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-2.c
  6b81ebc6aa2acb74b2481ebe48c3dc2c  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x32-1.c
*************** fe4d87c005f4281c70950e298d2332d6  gcc/te
*** 68190,68196 ****
  68777a9f94150662d944e2fa189c4dd7  gcc/testsuite/gcc.target/bfin/builtins/add_fr1x32-2.c
  d0c87dc45464d8073220a36a5b5f9150  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-1.c
  9d8cdd9e02d1a76707491953ffcab689  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-2.c
! 930f661f7aa3eeac43a29637dd074bf9  gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp
  f7e7cbc65ce8949842a0128a24bd2338  gcc/testsuite/gcc.target/bfin/builtins/circptr.c
  6c9969a981de179714ed81df51335aa9  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c
  136597c96eab5947bf5b9d9ac2e01f54  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c
--- 72710,72716 ----
  68777a9f94150662d944e2fa189c4dd7  gcc/testsuite/gcc.target/bfin/builtins/add_fr1x32-2.c
  d0c87dc45464d8073220a36a5b5f9150  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-1.c
  9d8cdd9e02d1a76707491953ffcab689  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-2.c
! e6d4cd18cb4155d66b7155be9912585b  gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp
  f7e7cbc65ce8949842a0128a24bd2338  gcc/testsuite/gcc.target/bfin/builtins/circptr.c
  6c9969a981de179714ed81df51335aa9  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c
  136597c96eab5947bf5b9d9ac2e01f54  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c
*************** b77a736c46489c3a686cac71c5db659a  gcc/te
*** 68338,68344 ****
  65a27884774bec36a80646039267b5f1  gcc/testsuite/gcc.target/bfin/builtins/sum_fr2x16-1.c
  5917d1a41a7173fd3d28b710cf04cf0a  gcc/testsuite/gcc.target/bfin/builtins/sum_fr2x16-2.c
  56df7b4e3e66fac04371d37626f884e1  gcc/testsuite/gcc.target/bfin/frmul.c
! 105fed72a97f67d62fce5cc43ad9e3da  gcc/testsuite/gcc.target/bfin/l2.c
  ba7257673a492c33d4059f6354ffd7fe  gcc/testsuite/gcc.target/bfin/longcall-1.c
  6290f084adf45a671097b71ce5eff322  gcc/testsuite/gcc.target/bfin/longcall-2.c
  9fac0dde014d7f761b393a38323c9ff6  gcc/testsuite/gcc.target/bfin/loop-autoinc.c
--- 72858,72864 ----
  65a27884774bec36a80646039267b5f1  gcc/testsuite/gcc.target/bfin/builtins/sum_fr2x16-1.c
  5917d1a41a7173fd3d28b710cf04cf0a  gcc/testsuite/gcc.target/bfin/builtins/sum_fr2x16-2.c
  56df7b4e3e66fac04371d37626f884e1  gcc/testsuite/gcc.target/bfin/frmul.c
! e099ef524c701f86e9a2a25e41badbca  gcc/testsuite/gcc.target/bfin/l2.c
  ba7257673a492c33d4059f6354ffd7fe  gcc/testsuite/gcc.target/bfin/longcall-1.c
  6290f084adf45a671097b71ce5eff322  gcc/testsuite/gcc.target/bfin/longcall-2.c
  9fac0dde014d7f761b393a38323c9ff6  gcc/testsuite/gcc.target/bfin/loop-autoinc.c
*************** ab7427346b9711b1f84ad93d071c6329  gcc/te
*** 68398,68405 ****
  dea5d60ffe0e555b7dd9a3cd8a2c9ed8  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-1.c
  67e2d323ed067d60e9eecb863a5ba92d  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-2.c
  d370fea6c3b14a1870345c69a56e29fd  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-3.c
! 0e60a43b76649b87bc9fcd602794bc18  gcc/testsuite/gcc.target/bpf/atomic-op-1.c
! c1d17ef61aee7cd5cecbb0800c07bb0a  gcc/testsuite/gcc.target/bpf/atomic-op-2.c
  043ea24b5e8def71f150fd7b6d0987ff  gcc/testsuite/gcc.target/bpf/atomic-op-3.c
  14b72ae48aa6aa9944b2d8be146eee22  gcc/testsuite/gcc.target/bpf/atomic-xchg-1.c
  f270d8c52b1c8ecda06456b02342c806  gcc/testsuite/gcc.target/bpf/atomic-xchg-2.c
--- 72918,72925 ----
  dea5d60ffe0e555b7dd9a3cd8a2c9ed8  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-1.c
  67e2d323ed067d60e9eecb863a5ba92d  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-2.c
  d370fea6c3b14a1870345c69a56e29fd  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-3.c
! d2117255653520a29381d51986d16d7e  gcc/testsuite/gcc.target/bpf/atomic-op-1.c
! 9c9c26a6c28f8a78ce93d1d454b3a70f  gcc/testsuite/gcc.target/bpf/atomic-op-2.c
  043ea24b5e8def71f150fd7b6d0987ff  gcc/testsuite/gcc.target/bpf/atomic-op-3.c
  14b72ae48aa6aa9944b2d8be146eee22  gcc/testsuite/gcc.target/bpf/atomic-xchg-1.c
  f270d8c52b1c8ecda06456b02342c806  gcc/testsuite/gcc.target/bpf/atomic-xchg-2.c
*************** f270d8c52b1c8ecda06456b02342c806  gcc/te
*** 68407,68413 ****
  7150bf3f7f6aba0a510591b349325f14  gcc/testsuite/gcc.target/bpf/bpf-debug-options-1.c
  565e352c8160d4f936f647e174ceaa31  gcc/testsuite/gcc.target/bpf/bpf-debug-options-2.c
  bf9ee92c02481fc487e6bdb697cd1b46  gcc/testsuite/gcc.target/bpf/bpf-debug-options-3.c
! 981c4d6e0137a8b37c024554aef036f0  gcc/testsuite/gcc.target/bpf/bpf.exp
  df7859ccc4fa99578f3c302c440d4605  gcc/testsuite/gcc.target/bpf/bswap-1.c
  c4a6ad70ac74c8733e479dfebcba3f60  gcc/testsuite/gcc.target/bpf/bswap-2.c
  702aee4a9b7aaab7fabe02878e894d4c  gcc/testsuite/gcc.target/bpf/btfext-funcinfo-nocore.c
--- 72927,72933 ----
  7150bf3f7f6aba0a510591b349325f14  gcc/testsuite/gcc.target/bpf/bpf-debug-options-1.c
  565e352c8160d4f936f647e174ceaa31  gcc/testsuite/gcc.target/bpf/bpf-debug-options-2.c
  bf9ee92c02481fc487e6bdb697cd1b46  gcc/testsuite/gcc.target/bpf/bpf-debug-options-3.c
! b78f1de101c94d76c18773e1fa195af1  gcc/testsuite/gcc.target/bpf/bpf.exp
  df7859ccc4fa99578f3c302c440d4605  gcc/testsuite/gcc.target/bpf/bswap-1.c
  c4a6ad70ac74c8733e479dfebcba3f60  gcc/testsuite/gcc.target/bpf/bswap-2.c
  702aee4a9b7aaab7fabe02878e894d4c  gcc/testsuite/gcc.target/bpf/btfext-funcinfo-nocore.c
*************** aa148331f65710cec43d1bf4d93d05b5  gcc/te
*** 68421,68434 ****
  a422056a3e8f923356c4ec575ecf217e  gcc/testsuite/gcc.target/bpf/core-attr-4.c
  8d52d5c271be64be1b7eeac8d1d6bfaf  gcc/testsuite/gcc.target/bpf/core-attr-5.c
  876532ca74fad1f226e0523102920dfd  gcc/testsuite/gcc.target/bpf/core-attr-6.c
  1785c9ea822d1ed50d0ffd5d959b4586  gcc/testsuite/gcc.target/bpf/core-attr-struct-as-array.c
! 017e4c01b555938ee728250f95e6f71c  gcc/testsuite/gcc.target/bpf/core-builtin-1.c
! 75a367e77b0706f7e63697a23b340061  gcc/testsuite/gcc.target/bpf/core-builtin-2.c
  b36d6b59df495ddd9e43470a49c5c997  gcc/testsuite/gcc.target/bpf/core-builtin-3.c
  240b18f16784c89b91899c83c590baee  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-errors.c
  fd555b17498e9c37bbcf8a9472e3d240  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-opt.c
  fdfc5a3638e9d1309f0c32df19c3d42a  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue.c
! abc8518d8890c4979f91f0bfb8ef9028  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c
  c0d2db508f7e7778e75088a5c07f7435  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-2.c
  396c0a04f85a91e92cdc4735800dcca1  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-3.c
  5724c83a8ac776a5a1ab87ebbf9c427e  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-4.c
--- 72941,72956 ----
  a422056a3e8f923356c4ec575ecf217e  gcc/testsuite/gcc.target/bpf/core-attr-4.c
  8d52d5c271be64be1b7eeac8d1d6bfaf  gcc/testsuite/gcc.target/bpf/core-attr-5.c
  876532ca74fad1f226e0523102920dfd  gcc/testsuite/gcc.target/bpf/core-attr-6.c
+ 31b122cac04cd46fffa52ba84ddb47ff  gcc/testsuite/gcc.target/bpf/core-attr-calls.c
+ 76fdc9cf0bcfe93b000fea4fbd23076d  gcc/testsuite/gcc.target/bpf/core-attr-const.c
  1785c9ea822d1ed50d0ffd5d959b4586  gcc/testsuite/gcc.target/bpf/core-attr-struct-as-array.c
! be0e43fdcf0fa016cc7eed3f7e1b0a14  gcc/testsuite/gcc.target/bpf/core-builtin-1.c
! 9bd355e0fd0d659d2fde88a94aef7d6c  gcc/testsuite/gcc.target/bpf/core-builtin-2.c
  b36d6b59df495ddd9e43470a49c5c997  gcc/testsuite/gcc.target/bpf/core-builtin-3.c
  240b18f16784c89b91899c83c590baee  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-errors.c
  fd555b17498e9c37bbcf8a9472e3d240  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-opt.c
  fdfc5a3638e9d1309f0c32df19c3d42a  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue.c
! e0543a0eab6f3a9b192690cd67f6919b  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c
  c0d2db508f7e7778e75088a5c07f7435  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-2.c
  396c0a04f85a91e92cdc4735800dcca1  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-3.c
  5724c83a8ac776a5a1ab87ebbf9c427e  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-4.c
*************** b0b05241d526a421896492e3d8849746  gcc/te
*** 68455,68464 ****
  d806e90d8b8b8547bd35f37c91477380  gcc/testsuite/gcc.target/bpf/core-pr106745.c
  c43a670a617146d1a8286c5889ce5352  gcc/testsuite/gcc.target/bpf/core-section-1.c
  f0fb8751b0c40c08d089ce4f9ad1360e  gcc/testsuite/gcc.target/bpf/core-support.h
! f06242099b4e9156ed3c38d58d50a3a5  gcc/testsuite/gcc.target/bpf/diag-alloca-1.c
! 00387db12829f0b6041d8fe26db237aa  gcc/testsuite/gcc.target/bpf/diag-alloca-2.c
! 7c5767ad8853516ee52b4fccd6f2ad45  gcc/testsuite/gcc.target/bpf/diag-funargs-2.c
! 0f171b6874c7ce98e825ae0d0725fee0  gcc/testsuite/gcc.target/bpf/diag-funargs-3.c
  2ec8b16e1098fc424b4a8ae2c4f8d0cf  gcc/testsuite/gcc.target/bpf/diag-funargs-inline-1.c
  7e1980c39acd840bc303f8ffa2b1fdd6  gcc/testsuite/gcc.target/bpf/diag-funargs.c
  efb35ca8408d4ca4edc1dc74e7d53c88  gcc/testsuite/gcc.target/bpf/diag-indcalls.c
--- 72977,72986 ----
  d806e90d8b8b8547bd35f37c91477380  gcc/testsuite/gcc.target/bpf/core-pr106745.c
  c43a670a617146d1a8286c5889ce5352  gcc/testsuite/gcc.target/bpf/core-section-1.c
  f0fb8751b0c40c08d089ce4f9ad1360e  gcc/testsuite/gcc.target/bpf/core-support.h
! fc14224a7d877c437aa594c449faab36  gcc/testsuite/gcc.target/bpf/diag-alloca-1.c
! db20950adc01c55c24d01d4ae4eebed2  gcc/testsuite/gcc.target/bpf/diag-alloca-2.c
! e32484f20d423696f16dad7f30e3d10c  gcc/testsuite/gcc.target/bpf/diag-funargs-2.c
! 6f17be877e653fa01e5402c7703d7f2b  gcc/testsuite/gcc.target/bpf/diag-funargs-3.c
  2ec8b16e1098fc424b4a8ae2c4f8d0cf  gcc/testsuite/gcc.target/bpf/diag-funargs-inline-1.c
  7e1980c39acd840bc303f8ffa2b1fdd6  gcc/testsuite/gcc.target/bpf/diag-funargs.c
  efb35ca8408d4ca4edc1dc74e7d53c88  gcc/testsuite/gcc.target/bpf/diag-indcalls.c
*************** e5525edccc3d87be1237807c8e8f9dfb  gcc/te
*** 68473,68480 ****
  8cab7be4c87ef1f4ccfac5dc49e4a69c  gcc/testsuite/gcc.target/bpf/float-1.c
  4d0f950765df1a681dd400307fa531c3  gcc/testsuite/gcc.target/bpf/frame-limit-1.c
  abfd084cab85b0aedb5178e83f909790  gcc/testsuite/gcc.target/bpf/frame-limit-2.c
! 0076277c4aa9f6465e4f9218c1aa7da4  gcc/testsuite/gcc.target/bpf/helper-bind.c
! 83c48c42a3f4a186202380adee694770  gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
  f65eb828e596b224a28902061ef2441b  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-1.c
  66569f3ff86403fc3202023a30d8fec9  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-2.c
  b81a5c6eb8052fc52c54180b9aa17094  gcc/testsuite/gcc.target/bpf/jmp-1.c
--- 72995,73002 ----
  8cab7be4c87ef1f4ccfac5dc49e4a69c  gcc/testsuite/gcc.target/bpf/float-1.c
  4d0f950765df1a681dd400307fa531c3  gcc/testsuite/gcc.target/bpf/frame-limit-1.c
  abfd084cab85b0aedb5178e83f909790  gcc/testsuite/gcc.target/bpf/frame-limit-2.c
! 7942dacf16909698d67601d790658633  gcc/testsuite/gcc.target/bpf/helper-bind.c
! 773486086ec6fa5a3692043fe8d1e258  gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
  f65eb828e596b224a28902061ef2441b  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-1.c
  66569f3ff86403fc3202023a30d8fec9  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-2.c
  b81a5c6eb8052fc52c54180b9aa17094  gcc/testsuite/gcc.target/bpf/jmp-1.c
*************** adb6b92de0215aeb6afd970f07e89f03  gcc/te
*** 68490,68495 ****
--- 73012,73018 ----
  e738ce01523c2f93ce93628076549b0e  gcc/testsuite/gcc.target/bpf/neg-1.c
  4399a337e21749a23a6b185419c7009a  gcc/testsuite/gcc.target/bpf/neg-pseudoc-1.c
  2f26e4242ea5fe9f6729e07a5649f0bb  gcc/testsuite/gcc.target/bpf/nop-1.c
+ a4661a9ead246d0e0f4bf3d6f6049805  gcc/testsuite/gcc.target/bpf/pseudoc-atomic-memaddr-op.c
  9ae63023d712a4740d04e5f6abd0bccd  gcc/testsuite/gcc.target/bpf/regs-availability-1.c
  dc210944850146bb727cbe535853bf0f  gcc/testsuite/gcc.target/bpf/sdiv-1.c
  26bee20e977af9e23fa3be4e74768b7d  gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c
*************** eb65326c3de97684419ac66273ccce78  gcc/te
*** 68500,68506 ****
  b460526d0eaa50cb9a920c16a0074c0e  gcc/testsuite/gcc.target/bpf/smov-2.c
  68ec7736d4c49c86426f1acb6a95e51f  gcc/testsuite/gcc.target/bpf/smov-pseudoc-1.c
  e6aad35d5d9107b96f024e37ca14ddab  gcc/testsuite/gcc.target/bpf/smov-pseudoc-2.c
! 34d2229b801d933b622d125db4f2d732  gcc/testsuite/gcc.target/bpf/sync-fetch-and-add.c
  657b196a2414bfd6480a9ed6066f8819  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
--- 73023,73029 ----
  b460526d0eaa50cb9a920c16a0074c0e  gcc/testsuite/gcc.target/bpf/smov-2.c
  68ec7736d4c49c86426f1acb6a95e51f  gcc/testsuite/gcc.target/bpf/smov-pseudoc-1.c
  e6aad35d5d9107b96f024e37ca14ddab  gcc/testsuite/gcc.target/bpf/smov-pseudoc-2.c
! b19d9fd422be4741c38cfd572b32a05b  gcc/testsuite/gcc.target/bpf/sync-fetch-and-add.c
  657b196a2414bfd6480a9ed6066f8819  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
*************** da811515083d9ddf056500903ebb758b  gcc/te
*** 68516,68522 ****
  825d51bc2455ddb81464d0a078c11bda  gcc/testsuite/gcc.target/cris/builtin_clz_v3.c
  619e346f21294a1edba1fa0d4fb11951  gcc/testsuite/gcc.target/cris/builtin_ctz_v3.c
  37dd2f4312701e553c1c5e8a89d8fcdd  gcc/testsuite/gcc.target/cris/builtin_ctz_v8.c
! 04477a3aedc6caa50ece10e3be4cb524  gcc/testsuite/gcc.target/cris/cris.exp
  f267ed4a3d93f57ca2fd47fb88787845  gcc/testsuite/gcc.target/cris/dbr-1.c
  09fbcf24d1de7a8eae1a6d8d6243d8de  gcc/testsuite/gcc.target/cris/inasm-other.c
  22e3cf12d66bc0fca53215d6e8dbe6ff  gcc/testsuite/gcc.target/cris/inasm-v10.c
--- 73039,73045 ----
  825d51bc2455ddb81464d0a078c11bda  gcc/testsuite/gcc.target/cris/builtin_clz_v3.c
  619e346f21294a1edba1fa0d4fb11951  gcc/testsuite/gcc.target/cris/builtin_ctz_v3.c
  37dd2f4312701e553c1c5e8a89d8fcdd  gcc/testsuite/gcc.target/cris/builtin_ctz_v8.c
! 5ad3105da20f41846ffcaeb79de73a8b  gcc/testsuite/gcc.target/cris/cris.exp
  f267ed4a3d93f57ca2fd47fb88787845  gcc/testsuite/gcc.target/cris/dbr-1.c
  09fbcf24d1de7a8eae1a6d8d6243d8de  gcc/testsuite/gcc.target/cris/inasm-other.c
  22e3cf12d66bc0fca53215d6e8dbe6ff  gcc/testsuite/gcc.target/cris/inasm-v10.c
*************** f928466cdbe8387ee188531c4f3e931e  gcc/te
*** 68542,68548 ****
  320aeefd520fae40286df6bc1f4fa782  gcc/testsuite/gcc.target/cris/pr93372-17.c
  39dae95b2cf0a7b337ac0cee899ea72b  gcc/testsuite/gcc.target/cris/pr93372-18.c
  c46cd9d2b9150c932e44d73b5d91854c  gcc/testsuite/gcc.target/cris/pr93372-19.c
! c1cf63d752991bd932c1e0b1aa3371c7  gcc/testsuite/gcc.target/cris/pr93372-2.c
  4dbbc8b477103343c69e3bd5da17e2ad  gcc/testsuite/gcc.target/cris/pr93372-20.c
  d9c023203324f413faa82d6d9b29f30b  gcc/testsuite/gcc.target/cris/pr93372-21.c
  3d52e1531fbdba9b0c66c602dde8490c  gcc/testsuite/gcc.target/cris/pr93372-22.c
--- 73065,73071 ----
  320aeefd520fae40286df6bc1f4fa782  gcc/testsuite/gcc.target/cris/pr93372-17.c
  39dae95b2cf0a7b337ac0cee899ea72b  gcc/testsuite/gcc.target/cris/pr93372-18.c
  c46cd9d2b9150c932e44d73b5d91854c  gcc/testsuite/gcc.target/cris/pr93372-19.c
! 20df0514a84024662c074183d10be9d9  gcc/testsuite/gcc.target/cris/pr93372-2.c
  4dbbc8b477103343c69e3bd5da17e2ad  gcc/testsuite/gcc.target/cris/pr93372-20.c
  d9c023203324f413faa82d6d9b29f30b  gcc/testsuite/gcc.target/cris/pr93372-21.c
  3d52e1531fbdba9b0c66c602dde8490c  gcc/testsuite/gcc.target/cris/pr93372-22.c
*************** b08e4db62a9fb0f97ea3211c38828a92  gcc/te
*** 68587,68593 ****
  a8632f4c714d9a1bc78849b980440a8c  gcc/testsuite/gcc.target/cris/sync-4i.c
  690e9023ecafeef7a7be46436ca9854c  gcc/testsuite/gcc.target/cris/sync-4s.c
  0b1b7109726eb4d3415da0cc65329694  gcc/testsuite/gcc.target/cris/sync-xchg-1.c
! 6538a97c1b13e48c03e5369f7ba5ff9c  gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
  46bb07141c5993a8c5154d62b285f8c7  gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c
  4181eccc65a7ef0c720e1f62eafc01fa  gcc/testsuite/gcc.target/cris/torture/pr24750-2.c
  3578773c3349eca3bbd054dfb8ebac62  gcc/testsuite/gcc.target/cris/torture/pr34773.c
--- 73110,73116 ----
  a8632f4c714d9a1bc78849b980440a8c  gcc/testsuite/gcc.target/cris/sync-4i.c
  690e9023ecafeef7a7be46436ca9854c  gcc/testsuite/gcc.target/cris/sync-4s.c
  0b1b7109726eb4d3415da0cc65329694  gcc/testsuite/gcc.target/cris/sync-xchg-1.c
! 7a2ac37c167d34b1de659a12cfbe97b5  gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
  46bb07141c5993a8c5154d62b285f8c7  gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c
  4181eccc65a7ef0c720e1f62eafc01fa  gcc/testsuite/gcc.target/cris/torture/pr24750-2.c
  3578773c3349eca3bbd054dfb8ebac62  gcc/testsuite/gcc.target/cris/torture/pr34773.c
*************** e334448d62e2715aea6c2d7e57c2576b  gcc/te
*** 68615,68621 ****
  aaad88eae49192421bd38c2c837d5ffc  gcc/testsuite/gcc.target/csky/constpool-1.c
  7e4e72e722403eab3bdd2874c8512498  gcc/testsuite/gcc.target/csky/constpool-2.c
  c64550af69ac6a4dfb37edcc3e6de899  gcc/testsuite/gcc.target/csky/cse-cc.c
! fd56f58ba1b0d4980902769303a9a8ae  gcc/testsuite/gcc.target/csky/csky.exp
  3ff18cb12dcb4fb55c1616d207f0f2e9  gcc/testsuite/gcc.target/csky/fldrd_fstrd.c
  0f17acdd834091c69016d7a2af242e1f  gcc/testsuite/gcc.target/csky/fnargs-1.c
  71a0a8fdef92000347984095b42f84f2  gcc/testsuite/gcc.target/csky/fnargs-2.c
--- 73138,73144 ----
  aaad88eae49192421bd38c2c837d5ffc  gcc/testsuite/gcc.target/csky/constpool-1.c
  7e4e72e722403eab3bdd2874c8512498  gcc/testsuite/gcc.target/csky/constpool-2.c
  c64550af69ac6a4dfb37edcc3e6de899  gcc/testsuite/gcc.target/csky/cse-cc.c
! 237f535ce3c7e9e7e41d6804a34fa81a  gcc/testsuite/gcc.target/csky/csky.exp
  3ff18cb12dcb4fb55c1616d207f0f2e9  gcc/testsuite/gcc.target/csky/fldrd_fstrd.c
  0f17acdd834091c69016d7a2af242e1f  gcc/testsuite/gcc.target/csky/fnargs-1.c
  71a0a8fdef92000347984095b42f84f2  gcc/testsuite/gcc.target/csky/fnargs-2.c
*************** ac08a3c5539d8fe4b68818cce90d0271  gcc/te
*** 68625,68631 ****
  fcd38c704b19d2241fdea4d4564d7218  gcc/testsuite/gcc.target/csky/fnmul-3.c
  8e4a61b89a91d87d007558c91da270fc  gcc/testsuite/gcc.target/csky/fnmul-4.c
  32b43a0f434aa490598892cf1cbe6618  gcc/testsuite/gcc.target/csky/fpuv3/fldr64_fstr64.c
! 92e01084f49b3712293a1669b1d639ec  gcc/testsuite/gcc.target/csky/fpuv3/fpuv3.exp
  f0e0df3f7b547f0f568889d82be4d61b  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_div.c
  94bf44b18840c2e29caf1d82fd7284a4  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fadd.c
  3367772e87bcfd8ebc7f55ac55c2da13  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fdtos.c
--- 73148,73154 ----
  fcd38c704b19d2241fdea4d4564d7218  gcc/testsuite/gcc.target/csky/fnmul-3.c
  8e4a61b89a91d87d007558c91da270fc  gcc/testsuite/gcc.target/csky/fnmul-4.c
  32b43a0f434aa490598892cf1cbe6618  gcc/testsuite/gcc.target/csky/fpuv3/fldr64_fstr64.c
! 9ebea93d5b80f7a309d1d9ef2feeaeea  gcc/testsuite/gcc.target/csky/fpuv3/fpuv3.exp
  f0e0df3f7b547f0f568889d82be4d61b  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_div.c
  94bf44b18840c2e29caf1d82fd7284a4  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fadd.c
  3367772e87bcfd8ebc7f55ac55c2da13  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fdtos.c
*************** e21f46f9fe1e967307de4447e3bfd188  gcc/te
*** 68668,68674 ****
  f8325974b60d2e8397f34c8f0e8d8bbf  gcc/testsuite/gcc.target/csky/naked.c
  b7b0230f4b534b91ce701e0cfaf699fc  gcc/testsuite/gcc.target/csky/or1.c
  3396d7f14e4963592892b06ccec1dbed  gcc/testsuite/gcc.target/epiphany/btst-1.c
! d0961e08f657f540da640e1f5c283244  gcc/testsuite/gcc.target/epiphany/epiphany.exp
  f477a84910092e956697c8b091ff4aba  gcc/testsuite/gcc.target/epiphany/fcmp-1.c
  c8ff5d5cf55484cd9bab33958ca94c36  gcc/testsuite/gcc.target/epiphany/fmadd-1.c
  a2ce030a9439b19e934208c89cb93ba6  gcc/testsuite/gcc.target/epiphany/fmsub-1.c
--- 73191,73197 ----
  f8325974b60d2e8397f34c8f0e8d8bbf  gcc/testsuite/gcc.target/csky/naked.c
  b7b0230f4b534b91ce701e0cfaf699fc  gcc/testsuite/gcc.target/csky/or1.c
  3396d7f14e4963592892b06ccec1dbed  gcc/testsuite/gcc.target/epiphany/btst-1.c
! d2d7061491ba0d09e52e7276fe92a2c4  gcc/testsuite/gcc.target/epiphany/epiphany.exp
  f477a84910092e956697c8b091ff4aba  gcc/testsuite/gcc.target/epiphany/fcmp-1.c
  c8ff5d5cf55484cd9bab33958ca94c36  gcc/testsuite/gcc.target/epiphany/fmadd-1.c
  a2ce030a9439b19e934208c89cb93ba6  gcc/testsuite/gcc.target/epiphany/fmsub-1.c
*************** d7f2f60c2c464ec7133704d0b8deb86d  gcc/te
*** 68709,68715 ****
  0bbd4283a697514ba60e495e007fbbaa  gcc/testsuite/gcc.target/frv/fr550-builtins-3.c
  d8fff2cc6bc3321095b7345915e98ec1  gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
  4f94aea2a37f6adad09abfdbb47bb87e  gcc/testsuite/gcc.target/frv/fr550-builtins-5.c
! a20afe7ed77b3a04801a555492ea6bde  gcc/testsuite/gcc.target/frv/frv.exp
  b76010526d08e7c23f0e74cf91cf6e0c  gcc/testsuite/gcc.target/gcn/avgpr-mem-double.c
  25674c58995cafd26319f71daae6bc47  gcc/testsuite/gcc.target/gcn/avgpr-mem-int.c
  f1b50d3c7f006e6bcf86d5c49efa0b0d  gcc/testsuite/gcc.target/gcn/avgpr-mem-long.c
--- 73232,73238 ----
  0bbd4283a697514ba60e495e007fbbaa  gcc/testsuite/gcc.target/frv/fr550-builtins-3.c
  d8fff2cc6bc3321095b7345915e98ec1  gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
  4f94aea2a37f6adad09abfdbb47bb87e  gcc/testsuite/gcc.target/frv/fr550-builtins-5.c
! 266503ee5807df38fb177a6c04c1aef2  gcc/testsuite/gcc.target/frv/frv.exp
  b76010526d08e7c23f0e74cf91cf6e0c  gcc/testsuite/gcc.target/gcn/avgpr-mem-double.c
  25674c58995cafd26319f71daae6bc47  gcc/testsuite/gcc.target/gcn/avgpr-mem-int.c
  f1b50d3c7f006e6bcf86d5c49efa0b0d  gcc/testsuite/gcc.target/gcn/avgpr-mem-long.c
*************** a4dccf4a3ebf463ff7c1ef6309127c2b  gcc/te
*** 68768,68774 ****
  98f0611c154397256fc470fabb022f55  gcc/testsuite/gcc.target/gcn/cond_umin_1.c
  40b9cd3a0a4158d65bbd69924aa432fa  gcc/testsuite/gcc.target/gcn/cond_umin_1_run.c
  1b1c20c803fbc22cf3ed4c1a9dbb7cd6  gcc/testsuite/gcc.target/gcn/fpdiv.c
! e90dd69c8ec9fe641da215baa2411e40  gcc/testsuite/gcc.target/gcn/gcn.exp
  f8c14281fa729687851e69729e7776c8  gcc/testsuite/gcc.target/gcn/math-builtins-1.c
  37943267e1d7063abbdffcb7bbe70b61  gcc/testsuite/gcc.target/gcn/pr113163.c
  d75a491a0b0343050793e6acdce8b787  gcc/testsuite/gcc.target/gcn/pr113199.c
--- 73291,73297 ----
  98f0611c154397256fc470fabb022f55  gcc/testsuite/gcc.target/gcn/cond_umin_1.c
  40b9cd3a0a4158d65bbd69924aa432fa  gcc/testsuite/gcc.target/gcn/cond_umin_1_run.c
  1b1c20c803fbc22cf3ed4c1a9dbb7cd6  gcc/testsuite/gcc.target/gcn/fpdiv.c
! 2e737797f45706c459d56202a879a1ad  gcc/testsuite/gcc.target/gcn/gcn.exp
  f8c14281fa729687851e69729e7776c8  gcc/testsuite/gcc.target/gcn/math-builtins-1.c
  37943267e1d7063abbdffcb7bbe70b61  gcc/testsuite/gcc.target/gcn/pr113163.c
  d75a491a0b0343050793e6acdce8b787  gcc/testsuite/gcc.target/gcn/pr113199.c
*************** c1f2f58ff01ac0af9bac1540222140eb  gcc/te
*** 68892,68898 ****
  216037d0da5ff83a3c5aee08d451cc6a  gcc/testsuite/gcc.target/h8300/add-3.c
  60aaa20daa95a2c6a46f951ed2210274  gcc/testsuite/gcc.target/h8300/add.c
  6618feb3136b4db14cb25d0ac22056c4  gcc/testsuite/gcc.target/h8300/andsi3_ashift_n_lower.c
! dd29b369f415932cba4308e8669ada0b  gcc/testsuite/gcc.target/h8300/h8300.exp
  945675e6af6576f674dcc30697a6f78b  gcc/testsuite/gcc.target/h8300/pr13721.c
  5788c901799e460b8e5c429a23b94ebe  gcc/testsuite/gcc.target/h8300/pr17306-1.c
  5b147cea3517b62e755b86aafee99229  gcc/testsuite/gcc.target/h8300/pr17306-2.c
--- 73415,73421 ----
  216037d0da5ff83a3c5aee08d451cc6a  gcc/testsuite/gcc.target/h8300/add-3.c
  60aaa20daa95a2c6a46f951ed2210274  gcc/testsuite/gcc.target/h8300/add.c
  6618feb3136b4db14cb25d0ac22056c4  gcc/testsuite/gcc.target/h8300/andsi3_ashift_n_lower.c
! c6f927a2c5878880ba5c2562fb47e424  gcc/testsuite/gcc.target/h8300/h8300.exp
  945675e6af6576f674dcc30697a6f78b  gcc/testsuite/gcc.target/h8300/pr13721.c
  5788c901799e460b8e5c429a23b94ebe  gcc/testsuite/gcc.target/h8300/pr17306-1.c
  5b147cea3517b62e755b86aafee99229  gcc/testsuite/gcc.target/h8300/pr17306-2.c
*************** aaaadf978237931983f712ab447eeff0  gcc/te
*** 68902,68908 ****
  520d992d481a80dfc60ea32b9335b583  gcc/testsuite/gcc.target/h8300/sub-2.c
  04357d0cac796ebc8355f137f2041585  gcc/testsuite/gcc.target/h8300/sub-3.c
  4e0e54c95521e668ac88da0666ea4642  gcc/testsuite/gcc.target/h8300/sub.c
! 3febf98f281a81083ff5b1ce09e7daec  gcc/testsuite/gcc.target/hppa/hppa.exp
  b3208ea4097d665215fd20e76146b954  gcc/testsuite/gcc.target/hppa/shadd-1.c
  793a9a24f14f046eed5297e9926e198f  gcc/testsuite/gcc.target/hppa/shadd-2.c
  bec45e424269c61868beb11e175edb5f  gcc/testsuite/gcc.target/hppa/shadd-3.c
--- 73425,73431 ----
  520d992d481a80dfc60ea32b9335b583  gcc/testsuite/gcc.target/h8300/sub-2.c
  04357d0cac796ebc8355f137f2041585  gcc/testsuite/gcc.target/h8300/sub-3.c
  4e0e54c95521e668ac88da0666ea4642  gcc/testsuite/gcc.target/h8300/sub.c
! 24b34cde02f991ae80302314b5261f93  gcc/testsuite/gcc.target/hppa/hppa.exp
  b3208ea4097d665215fd20e76146b954  gcc/testsuite/gcc.target/hppa/shadd-1.c
  793a9a24f14f046eed5297e9926e198f  gcc/testsuite/gcc.target/hppa/shadd-2.c
  bec45e424269c61868beb11e175edb5f  gcc/testsuite/gcc.target/hppa/shadd-3.c
*************** ed39fac01137b1fe7fa6aa0aed6f57d9  gcc/te
*** 68986,68992 ****
  f735456052a700dd38243bb3e18ed960  gcc/testsuite/gcc.target/i386/abi-1.c
  d1f50582e0aff656e8d04fa44820aada  gcc/testsuite/gcc.target/i386/abi-2.c
  fc0f5bb1d300de76b812a0ae5b8bd01c  gcc/testsuite/gcc.target/i386/addr-sel-1.c
! 0ccc8826707bc198cf7118d0079e2880  gcc/testsuite/gcc.target/i386/addr-space-1.c
  f3b1566c7c98d2f59922637c82963457  gcc/testsuite/gcc.target/i386/addr-space-2.c
  3db02232be23b8323e256e34853b5a45  gcc/testsuite/gcc.target/i386/addr-space-3.c
  8271f07e21d6eeebacf960a2de716a17  gcc/testsuite/gcc.target/i386/addr-space-4.c
--- 73509,73515 ----
  f735456052a700dd38243bb3e18ed960  gcc/testsuite/gcc.target/i386/abi-1.c
  d1f50582e0aff656e8d04fa44820aada  gcc/testsuite/gcc.target/i386/abi-2.c
  fc0f5bb1d300de76b812a0ae5b8bd01c  gcc/testsuite/gcc.target/i386/addr-sel-1.c
! a7bd988811ab95583c012c435a897182  gcc/testsuite/gcc.target/i386/addr-space-1.c
  f3b1566c7c98d2f59922637c82963457  gcc/testsuite/gcc.target/i386/addr-space-2.c
  3db02232be23b8323e256e34853b5a45  gcc/testsuite/gcc.target/i386/addr-space-3.c
  8271f07e21d6eeebacf960a2de716a17  gcc/testsuite/gcc.target/i386/addr-space-4.c
*************** ae8b5a5d686fedd54544f4210ebf0d66  gcc/te
*** 69030,69037 ****
  d3f15f077bac4fdd98e262ff70319e29  gcc/testsuite/gcc.target/i386/amd64-abi-7.c
  41e281a8a41c48fe7dbd02b555d86032  gcc/testsuite/gcc.target/i386/amd64-abi-8.c
  29b2c8175a8aeb1de6d8e6148a11d79d  gcc/testsuite/gcc.target/i386/amd64-abi-9.c
! ab183c688cdb4a97e3f15f79a1c2e13f  gcc/testsuite/gcc.target/i386/amx-check.h
! e41de94d793974394641e42ed7370a65  gcc/testsuite/gcc.target/i386/amx-helper.h
  3e5ed8f51d1403b179db592f12cb019c  gcc/testsuite/gcc.target/i386/amxbf16-asmatt-1.c
  215b9569abd57352c2d13ba5129e07cd  gcc/testsuite/gcc.target/i386/amxbf16-asmintel-1.c
  c4406ef230e7a6bb0e7b45b2f94958e9  gcc/testsuite/gcc.target/i386/amxbf16-dpbf16ps-2.c
--- 73553,73566 ----
  d3f15f077bac4fdd98e262ff70319e29  gcc/testsuite/gcc.target/i386/amd64-abi-7.c
  41e281a8a41c48fe7dbd02b555d86032  gcc/testsuite/gcc.target/i386/amd64-abi-8.c
  29b2c8175a8aeb1de6d8e6148a11d79d  gcc/testsuite/gcc.target/i386/amd64-abi-9.c
! 9eb5e9e35890de90d641e3e1915ed246  gcc/testsuite/gcc.target/i386/amx-check.h
! 99e6ee6f6a0dd25151f9bd8e0350a8c3  gcc/testsuite/gcc.target/i386/amx-helper.h
! a93a298f547274ed3c2b935fceada10f  gcc/testsuite/gcc.target/i386/amxavx512-asmatt-1.c
! 6a5fd66cc81baab9cac7cbbacb5f044a  gcc/testsuite/gcc.target/i386/amxavx512-asmintel-1.c
! 086de4ec2b822f365800b525b968e32f  gcc/testsuite/gcc.target/i386/amxavx512-cvtrowd2ps-2.c
! b3dadadaf5b2a3516befbed4547e7457  gcc/testsuite/gcc.target/i386/amxavx512-cvtrowps2bf16-2.c
! 6ca460c28ecf6578a2f9ea76b0f25008  gcc/testsuite/gcc.target/i386/amxavx512-cvtrowps2ph-2.c
! a085494420c0f8c81550255b2f48f14e  gcc/testsuite/gcc.target/i386/amxavx512-movrow-2.c
  3e5ed8f51d1403b179db592f12cb019c  gcc/testsuite/gcc.target/i386/amxbf16-asmatt-1.c
  215b9569abd57352c2d13ba5129e07cd  gcc/testsuite/gcc.target/i386/amxbf16-asmintel-1.c
  c4406ef230e7a6bb0e7b45b2f94958e9  gcc/testsuite/gcc.target/i386/amxbf16-dpbf16ps-2.c
*************** c4406ef230e7a6bb0e7b45b2f94958e9  gcc/te
*** 69042,69067 ****
  0a13ebe83385a9aedb0a82cf5504a96b  gcc/testsuite/gcc.target/i386/amxfp16-asmatt-1.c
  eefaf66ff1c174b18d152560427620f0  gcc/testsuite/gcc.target/i386/amxfp16-asmintel-1.c
  26723806e86b2502f2d6b3c39febf8ce  gcc/testsuite/gcc.target/i386/amxfp16-dpfp16ps-2.c
! 9c0241aa040bd07b656b878c62a423b9  gcc/testsuite/gcc.target/i386/amxint8-asmatt-1.c
! 2622cfbb5e38bb55e4751132b8d85ea3  gcc/testsuite/gcc.target/i386/amxint8-asmintel-1.c
  06751f31b3086f1ff040533de854e994  gcc/testsuite/gcc.target/i386/amxint8-dpbssd-2.c
  e3f6b37649c7f1fa4d20b6327cdcdb27  gcc/testsuite/gcc.target/i386/amxint8-dpbsud-2.c
  a8ab966558faa138830cc3e75dbe4464  gcc/testsuite/gcc.target/i386/amxint8-dpbusd-2.c
  fc50af06e61cf9d13887f2fe515b0e27  gcc/testsuite/gcc.target/i386/amxint8-dpbuud-2.c
  4e7e8638f4652613beb251daa4730463  gcc/testsuite/gcc.target/i386/amxtile-2.c
  a455baf8f9990eb7494164842dce7c91  gcc/testsuite/gcc.target/i386/amxtile-3.c
  84fc02cc52ddc8bdd53d77902c0176fb  gcc/testsuite/gcc.target/i386/amxtile-4.c
  8e7fab1b3f5c89155f09aabb59da8382  gcc/testsuite/gcc.target/i386/amxtile-asmatt-1.c
  2629a435840ab211444b4a2af4563d8d  gcc/testsuite/gcc.target/i386/amxtile-asmintel-1.c
  000edc038d71c16eb844c26f6d7f2f53  gcc/testsuite/gcc.target/i386/and-1.c
  c5cfc6b01e748536e4ac5d65b3528952  gcc/testsuite/gcc.target/i386/andor-1.c
  c052d916aa90fa5343dac48ba370180f  gcc/testsuite/gcc.target/i386/andor-2.c
  745e29c9e0b19c2b93d7ae9d0de30df9  gcc/testsuite/gcc.target/i386/apx-1.c
  64d9611d397e2c1046819d723f4b3641  gcc/testsuite/gcc.target/i386/apx-2.c
  c608f84b293f51940f3c9578d19c6aa6  gcc/testsuite/gcc.target/i386/apx-3.c
! 564fa992780ab2d8d650d966ad8dc7b2  gcc/testsuite/gcc.target/i386/apx-egprs-names.c
  df2002d51980a8fe3227dd410dccc984  gcc/testsuite/gcc.target/i386/apx-inline-gpr-norex2.c
! ac5041015e095ce8abfe9b54a21ebf53  gcc/testsuite/gcc.target/i386/apx-interrupt-1.c
  9e8b8925bafe362fcf8ebd984ba486a3  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2-asm.c
  0048c251e7a719f7b18c2f8a3c7defaf  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2.c
  5445ad3695d579a1afc41a7bea257e5b  gcc/testsuite/gcc.target/i386/apx-ndd-2.c
--- 73571,73622 ----
  0a13ebe83385a9aedb0a82cf5504a96b  gcc/testsuite/gcc.target/i386/amxfp16-asmatt-1.c
  eefaf66ff1c174b18d152560427620f0  gcc/testsuite/gcc.target/i386/amxfp16-asmintel-1.c
  26723806e86b2502f2d6b3c39febf8ce  gcc/testsuite/gcc.target/i386/amxfp16-dpfp16ps-2.c
! a9b74e9420dcdda704c0548b74c852cb  gcc/testsuite/gcc.target/i386/amxfp8-asmatt-1.c
! 0f7fd0338410d717ce022911f281c28b  gcc/testsuite/gcc.target/i386/amxfp8-asmintel-1.c
! f7f7179cee82b3e49fe8e952f16bd8bd  gcc/testsuite/gcc.target/i386/amxfp8-dpbf8ps-2.c
! 158d08ba1bcd4db7917ac8e49a23d45b  gcc/testsuite/gcc.target/i386/amxfp8-dpbhf8ps-2.c
! 79dd0e41d2df0fac63d405115f1a8f0b  gcc/testsuite/gcc.target/i386/amxfp8-dphbf8ps-2.c
! 37ac1e9cd6f542adda9144f5f91575f7  gcc/testsuite/gcc.target/i386/amxfp8-dphf8ps-2.c
! b08450b417269b0fe19cdf6b9521036d  gcc/testsuite/gcc.target/i386/amxint8-asmatt-1.c
! 387b46d5778a99faba771df055b4280b  gcc/testsuite/gcc.target/i386/amxint8-asmintel-1.c
  06751f31b3086f1ff040533de854e994  gcc/testsuite/gcc.target/i386/amxint8-dpbssd-2.c
  e3f6b37649c7f1fa4d20b6327cdcdb27  gcc/testsuite/gcc.target/i386/amxint8-dpbsud-2.c
  a8ab966558faa138830cc3e75dbe4464  gcc/testsuite/gcc.target/i386/amxint8-dpbusd-2.c
  fc50af06e61cf9d13887f2fe515b0e27  gcc/testsuite/gcc.target/i386/amxint8-dpbuud-2.c
+ 6872cb4a8da17cfb612b8f89321beab6  gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
+ 1a53e29154e07b83ff9b167e4d136082  gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
+ 9c12ed8e1c893d496f5b35bc5eca35a1  gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
+ e733b32150a44e7be6c236ca11324770  gcc/testsuite/gcc.target/i386/amxmovrs-tileloaddrs-2.c
+ 83f382a948fa479169644b56fee9247b  gcc/testsuite/gcc.target/i386/amxtf32-asmatt-1.c
+ 3f9a5f02b15d43a842b189003650c7bd  gcc/testsuite/gcc.target/i386/amxtf32-asmintel-1.c
+ baf13b756391e3f11b0f7d619bd353a5  gcc/testsuite/gcc.target/i386/amxtf32-mmultf32ps-2.c
  4e7e8638f4652613beb251daa4730463  gcc/testsuite/gcc.target/i386/amxtile-2.c
  a455baf8f9990eb7494164842dce7c91  gcc/testsuite/gcc.target/i386/amxtile-3.c
  84fc02cc52ddc8bdd53d77902c0176fb  gcc/testsuite/gcc.target/i386/amxtile-4.c
  8e7fab1b3f5c89155f09aabb59da8382  gcc/testsuite/gcc.target/i386/amxtile-asmatt-1.c
  2629a435840ab211444b4a2af4563d8d  gcc/testsuite/gcc.target/i386/amxtile-asmintel-1.c
+ 9e51e949fe004c4c5e1da4e313e83500  gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
+ e78283d712c4a4cab944825c2f7e5931  gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
+ 5aea7d3b63ac03844fed4c2affb200e1  gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
+ f8839ab3564a5c79af6cd2a3289c72a4  gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c
+ 640925386b2a75c60d7e15fa27b00ec4  gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
+ 655e6e600c274705609f46f81965e797  gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
+ 1cfd425962d5334545a857306c7bf073  gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
+ a08a0dcbe1ea3e0c2eb2e12fe3081eaf  gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
+ 264e47ab404cf5ae4d84be0346babab3  gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
+ 238b3dc827e35313515e58d4c8e80fc8  gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
+ bb339217e3b470b200c8e6ab45d7639f  gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
  000edc038d71c16eb844c26f6d7f2f53  gcc/testsuite/gcc.target/i386/and-1.c
  c5cfc6b01e748536e4ac5d65b3528952  gcc/testsuite/gcc.target/i386/andor-1.c
  c052d916aa90fa5343dac48ba370180f  gcc/testsuite/gcc.target/i386/andor-2.c
  745e29c9e0b19c2b93d7ae9d0de30df9  gcc/testsuite/gcc.target/i386/apx-1.c
  64d9611d397e2c1046819d723f4b3641  gcc/testsuite/gcc.target/i386/apx-2.c
  c608f84b293f51940f3c9578d19c6aa6  gcc/testsuite/gcc.target/i386/apx-3.c
! 7c46a716064ab2dc11e37236bf6686d1  gcc/testsuite/gcc.target/i386/apx-ccmp-1.c
! 1286e3c101e82be9e0b5080f0cc61848  gcc/testsuite/gcc.target/i386/apx-ccmp-2.c
! 79aef985ad83db2a31872946d14eefcc  gcc/testsuite/gcc.target/i386/apx-egprs-names.c
  df2002d51980a8fe3227dd410dccc984  gcc/testsuite/gcc.target/i386/apx-inline-gpr-norex2.c
! a1942f841fd2f6a8c62ff45bb98c8346  gcc/testsuite/gcc.target/i386/apx-interrupt-1.c
  9e8b8925bafe362fcf8ebd984ba486a3  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2-asm.c
  0048c251e7a719f7b18c2f8a3c7defaf  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2.c
  5445ad3695d579a1afc41a7bea257e5b  gcc/testsuite/gcc.target/i386/apx-ndd-2.c
*************** b6e599b4cc96f57de7a64c27e3c92aa3  gcc/te
*** 69077,69084 ****
  72c881b384869173b01c4e092e547b4c  gcc/testsuite/gcc.target/i386/apx-ndd-seg-5.c
  54e6959ccdc4af3a418d51fd8d3225e5  gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c
  72665232e4e20114192126c16383477e  gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c
! 42edfb574803d4599f5677599613331b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1a.c
! 949eaf9973197204f0c57c107257e848  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1b.c
  26b973e578d113bfe19274f6b260423b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-2.c
  f79d898ef40db39bcbc383d512549f5a  gcc/testsuite/gcc.target/i386/apx-ndd-tls-3.c
  f331bf34bdd0201dd7790981418cd8c8  gcc/testsuite/gcc.target/i386/apx-ndd-tls-4.c
--- 73632,73639 ----
  72c881b384869173b01c4e092e547b4c  gcc/testsuite/gcc.target/i386/apx-ndd-seg-5.c
  54e6959ccdc4af3a418d51fd8d3225e5  gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c
  72665232e4e20114192126c16383477e  gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c
! 48bb1176822575f268cc1bcc92027c73  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1a.c
! 3c76fe937b6b8b879956d5ebd1df098b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1b.c
  26b973e578d113bfe19274f6b260423b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-2.c
  f79d898ef40db39bcbc383d512549f5a  gcc/testsuite/gcc.target/i386/apx-ndd-tls-3.c
  f331bf34bdd0201dd7790981418cd8c8  gcc/testsuite/gcc.target/i386/apx-ndd-tls-4.c
*************** f331bf34bdd0201dd7790981418cd8c8  gcc/te
*** 69087,69099 ****
  586d3aad0d165c0981eb80ec0e7fb62e  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2b.c
  b3c414f1b3d6c48c7e20a5673443690c  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2c.c
  3e95982a863780ff44ad8aaffdb6def8  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2d.c
! 4865ff107ce18e1484efa5d5f5fec4df  gcc/testsuite/gcc.target/i386/apx-ndd.c
  fcf6ebcd2d266f7ad2c63665e05f9315  gcc/testsuite/gcc.target/i386/apx-ppx-1.c
  b76efc502226ffd2eed7d56bb5ac974a  gcc/testsuite/gcc.target/i386/apx-push2pop2-1.c
  ba815e440bcd2af0a357a066d6a64dbf  gcc/testsuite/gcc.target/i386/apx-push2pop2-2.c
  09b6d63033c67dd3b806c7c28d691ec9  gcc/testsuite/gcc.target/i386/apx-push2pop2_force_drap-1.c
  2ab42e94b1a6fae8bd3d0db869ee84f5  gcc/testsuite/gcc.target/i386/apx-push2pop2_interrupt-1.c
  a0087c60ab6914bc07a95e55747be0f6  gcc/testsuite/gcc.target/i386/apx-spill_to_egprs-1.c
  1d9d11dcd88432f117e44c643ec90ad2  gcc/testsuite/gcc.target/i386/ashldi3-1.c
  0fe4c919ffa886428aea4dfbafae6152  gcc/testsuite/gcc.target/i386/ashldi3-2.c
  6b37f3af0f281a50739a4dabbfa5799a  gcc/testsuite/gcc.target/i386/ashlti3-1.c
--- 73642,73661 ----
  586d3aad0d165c0981eb80ec0e7fb62e  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2b.c
  b3c414f1b3d6c48c7e20a5673443690c  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2c.c
  3e95982a863780ff44ad8aaffdb6def8  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2d.c
! 27d5886ca6a9cd9ec87a419090c25a7d  gcc/testsuite/gcc.target/i386/apx-ndd.c
! a10a2300e50d1345807af584a2601db4  gcc/testsuite/gcc.target/i386/apx-nf-2.c
! 15bf82033251ae56d7b3b5b15718fd37  gcc/testsuite/gcc.target/i386/apx-nf-pr119539.c
! 3a538fbe06f2d0145fdb6f44cbf17dd3  gcc/testsuite/gcc.target/i386/apx-nf.c
  fcf6ebcd2d266f7ad2c63665e05f9315  gcc/testsuite/gcc.target/i386/apx-ppx-1.c
+ 83cfbdd6adce9415b1a93deae7f63899  gcc/testsuite/gcc.target/i386/apx-ppx-2.c
+ 776a59a1e552c7cfc19cf5d797851ca4  gcc/testsuite/gcc.target/i386/apx-ppx-3.c
  b76efc502226ffd2eed7d56bb5ac974a  gcc/testsuite/gcc.target/i386/apx-push2pop2-1.c
  ba815e440bcd2af0a357a066d6a64dbf  gcc/testsuite/gcc.target/i386/apx-push2pop2-2.c
  09b6d63033c67dd3b806c7c28d691ec9  gcc/testsuite/gcc.target/i386/apx-push2pop2_force_drap-1.c
  2ab42e94b1a6fae8bd3d0db869ee84f5  gcc/testsuite/gcc.target/i386/apx-push2pop2_interrupt-1.c
  a0087c60ab6914bc07a95e55747be0f6  gcc/testsuite/gcc.target/i386/apx-spill_to_egprs-1.c
+ 3247c637a4f9e8976b8bc48f0c8aea40  gcc/testsuite/gcc.target/i386/apx-zu-1.c
+ 28515ca55dda5aa1ef1a093bad3796fa  gcc/testsuite/gcc.target/i386/apx-zu-2.c
  1d9d11dcd88432f117e44c643ec90ad2  gcc/testsuite/gcc.target/i386/ashldi3-1.c
  0fe4c919ffa886428aea4dfbafae6152  gcc/testsuite/gcc.target/i386/ashldi3-2.c
  6b37f3af0f281a50739a4dabbfa5799a  gcc/testsuite/gcc.target/i386/ashlti3-1.c
*************** cca7e10ee55fb1f96e6f6f5962a52b47  gcc/te
*** 69118,69123 ****
--- 73680,73686 ----
  c9e95a50e4c08ce058a523de15b6c8fd  gcc/testsuite/gcc.target/i386/asm-flag-7.c
  837d6eb699db50d462ddc69fd4d051c2  gcc/testsuite/gcc.target/i386/asm-mem.c
  4ae3c20d33728cb22ef071075de01013  gcc/testsuite/gcc.target/i386/asm-raw-symbol.c
+ 60b9c38ffe8be2c784e795ea98607891  gcc/testsuite/gcc.target/i386/asm-redzone-1.c
  ddb64605d0e2af6e58489acd2ebba490  gcc/testsuite/gcc.target/i386/attr-aligned-2.c
  c34fe5a5178e9716c0f68ffb47564686  gcc/testsuite/gcc.target/i386/attr-aligned.c
  61c3608aa8e457337e1e932bb8cfdd80  gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
*************** bcf4bec8ae3fb406f477539e4ce5e3ae  gcc/te
*** 69136,69142 ****
  c21b3698d1ed03df65eaa7dfc51af82b  gcc/testsuite/gcc.target/i386/auto-init-5.c
  240cb8056d819d4820d9f5d00149b619  gcc/testsuite/gcc.target/i386/auto-init-6.c
  839577d5139fbc687a0280c2c0655a0d  gcc/testsuite/gcc.target/i386/auto-init-7.c
! e8d5717b225e498c46c8a81361f9e0ab  gcc/testsuite/gcc.target/i386/auto-init-8.c
  c3a3f56e12ef5746581ec762d6d67d1d  gcc/testsuite/gcc.target/i386/auto-init-padding-1.c
  a34b4fb61dcd1e5a3c0daf5d7d6fae65  gcc/testsuite/gcc.target/i386/auto-init-padding-10.c
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
--- 73699,73705 ----
  c21b3698d1ed03df65eaa7dfc51af82b  gcc/testsuite/gcc.target/i386/auto-init-5.c
  240cb8056d819d4820d9f5d00149b619  gcc/testsuite/gcc.target/i386/auto-init-6.c
  839577d5139fbc687a0280c2c0655a0d  gcc/testsuite/gcc.target/i386/auto-init-7.c
! ebe893055f7ccbf4240d02e9cba39f2d  gcc/testsuite/gcc.target/i386/auto-init-8.c
  c3a3f56e12ef5746581ec762d6d67d1d  gcc/testsuite/gcc.target/i386/auto-init-padding-1.c
  a34b4fb61dcd1e5a3c0daf5d7d6fae65  gcc/testsuite/gcc.target/i386/auto-init-padding-10.c
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
*************** da9a874cc43d515ca40fe91f469c7339  gcc/te
*** 69149,69156 ****
  64889694d1cb3280b3aa71fa1424dec5  gcc/testsuite/gcc.target/i386/auto-init-padding-7.c
  6833c0fc00c0e05839ef7fc0ebe6662f  gcc/testsuite/gcc.target/i386/auto-init-padding-8.c
  549987a73da82c221222811981e79dc3  gcc/testsuite/gcc.target/i386/auto-init-padding-9.c
! 08d2dfaf226576f475c3f9db045b477d  gcc/testsuite/gcc.target/i386/avx-1.c
! 5d79949d0342d2be91b231a563b48794  gcc/testsuite/gcc.target/i386/avx-2.c
  b8752c209e6f3770321077d53e28d157  gcc/testsuite/gcc.target/i386/avx-3.c
  604a63c576a08022e714a4940dc0e904  gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
  3fe75cc1036245ab8152a9b44f58097b  gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c
--- 73712,73719 ----
  64889694d1cb3280b3aa71fa1424dec5  gcc/testsuite/gcc.target/i386/auto-init-padding-7.c
  6833c0fc00c0e05839ef7fc0ebe6662f  gcc/testsuite/gcc.target/i386/auto-init-padding-8.c
  549987a73da82c221222811981e79dc3  gcc/testsuite/gcc.target/i386/auto-init-padding-9.c
! 949e17bef72a4235dfc7643eb4503829  gcc/testsuite/gcc.target/i386/avx-1.c
! ce8537ac3337be19a6e276a8fbfccd9e  gcc/testsuite/gcc.target/i386/avx-2.c
  b8752c209e6f3770321077d53e28d157  gcc/testsuite/gcc.target/i386/avx-3.c
  604a63c576a08022e714a4940dc0e904  gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
  3fe75cc1036245ab8152a9b44f58097b  gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c
*************** e496930891266115a9ceee7c7de0cac4  gcc/te
*** 69752,69783 ****
  196aec2399172c70cc1b6322412ec45d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-7.c
  2dd3d3b02f96ec89ffed6f185b8e940f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-8.c
  280e2807a80caedf3c9b1fd25684032d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-9.c
! 3ca528977553962fce3bc10b01fc3684  gcc/testsuite/gcc.target/i386/avx10_1-1.c
! 0a655b753b539acc1bcd09410a028d06  gcc/testsuite/gcc.target/i386/avx10_1-10.c
! 311b630db1248222bb47cc04eaba92e8  gcc/testsuite/gcc.target/i386/avx10_1-11.c
! 0b480a0caf25eb2711c495f68ec5980f  gcc/testsuite/gcc.target/i386/avx10_1-12.c
! bb915b48e77ad7fd0731fcc6c7b03d33  gcc/testsuite/gcc.target/i386/avx10_1-13.c
! 83d77d348b52adaccf35e8175afb3c58  gcc/testsuite/gcc.target/i386/avx10_1-14.c
! 5fb6b852a619cbf9bbee0ada6fad4cd9  gcc/testsuite/gcc.target/i386/avx10_1-15.c
! 84a9145152b9ebc56374cb5df242bab2  gcc/testsuite/gcc.target/i386/avx10_1-16.c
! aeda7501da026a41c711cb6d0f9c1998  gcc/testsuite/gcc.target/i386/avx10_1-17.c
! be9fe73c143527b6d151dd769ef24a50  gcc/testsuite/gcc.target/i386/avx10_1-18.c
! 1a94a1a1192d3548fef7ec675481e363  gcc/testsuite/gcc.target/i386/avx10_1-19.c
! c60370bc00b6f0ed92d624f8a583ce26  gcc/testsuite/gcc.target/i386/avx10_1-2.c
! 17d9492713ce9172485fbd80ebc4877c  gcc/testsuite/gcc.target/i386/avx10_1-20.c
! 2a7856ec5ef7f2633ac5a1be307f2e8c  gcc/testsuite/gcc.target/i386/avx10_1-21.c
! 8fa657b6c7175810f81fb9448954ee0a  gcc/testsuite/gcc.target/i386/avx10_1-22.c
! 0d2b9652b54c8b0d81f3ce309b9de6d0  gcc/testsuite/gcc.target/i386/avx10_1-23.c
! e905651c365a2662464429415c016a9e  gcc/testsuite/gcc.target/i386/avx10_1-24.c
! f01935352f7c608a75af08eb2d39bbdd  gcc/testsuite/gcc.target/i386/avx10_1-25.c
! d07375e11ebbd436449e2065328a554a  gcc/testsuite/gcc.target/i386/avx10_1-26.c
! 83836eb7c19ebd0a3cb10c1b38859560  gcc/testsuite/gcc.target/i386/avx10_1-3.c
! cc6ebfff46b4601c68183c5748f30189  gcc/testsuite/gcc.target/i386/avx10_1-4.c
! 35084fd0a3d20b2364ee47139e043395  gcc/testsuite/gcc.target/i386/avx10_1-5.c
! ba28fa2f54eaa9223f6892f84f5a47df  gcc/testsuite/gcc.target/i386/avx10_1-6.c
! f4c520e356c7025aa9d88e5b6f03f609  gcc/testsuite/gcc.target/i386/avx10_1-7.c
! d22e7e4eda7fab29c0c8f9bc98db0708  gcc/testsuite/gcc.target/i386/avx10_1-8.c
! 70e6ed4814ed650da167895b30718a2b  gcc/testsuite/gcc.target/i386/avx10_1-9.c
  a5901d33285892facee8dbfe287ce0d1  gcc/testsuite/gcc.target/i386/avx2-broadcast-pr87767-1.c
  958690bb20e5ef6d9a38def7eb976f13  gcc/testsuite/gcc.target/i386/avx2-check.h
  7dc98d98981fa7b82c0ae95d09c8128c  gcc/testsuite/gcc.target/i386/avx2-cvt-1.c
--- 74315,74536 ----
  196aec2399172c70cc1b6322412ec45d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-7.c
  2dd3d3b02f96ec89ffed6f185b8e940f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-8.c
  280e2807a80caedf3c9b1fd25684032d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-9.c
! 382bf2eb96902652127fed5167872cf2  gcc/testsuite/gcc.target/i386/avx10-check.h
! 00a4c8062c1c2d022d49ff16fc125e09  gcc/testsuite/gcc.target/i386/avx10-helper.h
! b27aa1ddd53a79c0f88cd12b55641442  gcc/testsuite/gcc.target/i386/avx10-minmax-helper.h
! d493060b0a2454334d4eb6941a14ad8b  gcc/testsuite/gcc.target/i386/avx10-os-support.h
! ed2c5a322dda676833a6a2b62cb76a85  gcc/testsuite/gcc.target/i386/avx10_1-1.c
! a30416db89e9da2e70a59b20003bb4d5  gcc/testsuite/gcc.target/i386/avx10_1-10.c
! ccf5cf2ee49e7a381837f4609634e8ca  gcc/testsuite/gcc.target/i386/avx10_1-11.c
! 0275eb48fc93fb1b0381c672435bfd9e  gcc/testsuite/gcc.target/i386/avx10_1-12.c
! 1c12c8af717d6d04b0014cf202496995  gcc/testsuite/gcc.target/i386/avx10_1-13.c
! 22f257f78ac947c68408e2726d35eb15  gcc/testsuite/gcc.target/i386/avx10_1-14.c
! e1fddea819425630c552f316eca7a6f8  gcc/testsuite/gcc.target/i386/avx10_1-15.c
! 509833f3299ff11702d32156d18d632e  gcc/testsuite/gcc.target/i386/avx10_1-16.c
! b36513eb245b7260cfb01ee02ed5c959  gcc/testsuite/gcc.target/i386/avx10_1-17.c
! 78bb5aa21a982c1f8615c5c688698c61  gcc/testsuite/gcc.target/i386/avx10_1-18.c
! 695efbb3c6db40a557bcffa5243b22b8  gcc/testsuite/gcc.target/i386/avx10_1-19.c
! 7c185dac02a242d9a05b362ee459ccda  gcc/testsuite/gcc.target/i386/avx10_1-2.c
! 0f57d1da14eab65553a6758c8b9fa0a7  gcc/testsuite/gcc.target/i386/avx10_1-20.c
! 554d2d324a959f862ed8d8aec308b2a6  gcc/testsuite/gcc.target/i386/avx10_1-21.c
! 6753fe19a798f558ed48b9894a5ea72a  gcc/testsuite/gcc.target/i386/avx10_1-22.c
! bf355dd24e6733a708d41af6b2023f26  gcc/testsuite/gcc.target/i386/avx10_1-23.c
! 8171b277bd12f9a75849bb34438003a6  gcc/testsuite/gcc.target/i386/avx10_1-26.c
! 5a6e08c779069590b2aad4e4d6d6bdb7  gcc/testsuite/gcc.target/i386/avx10_1-3.c
! aa544c8cfd5b4f1707812ae00de85376  gcc/testsuite/gcc.target/i386/avx10_1-4.c
! 11ec513f07af5009177e40a6618ab923  gcc/testsuite/gcc.target/i386/avx10_1-7.c
! b683581c63b2ee941258fabef29a46de  gcc/testsuite/gcc.target/i386/avx10_1-8.c
! 85388187fbb199f1012b2dc5a5d2e61b  gcc/testsuite/gcc.target/i386/avx10_1-9.c
! 447bade2bcf4932aed304d256bd6b2b4  gcc/testsuite/gcc.target/i386/avx10_2-512-bf16-1.c
! 00a805f394241a6ef38287e60b0608a7  gcc/testsuite/gcc.target/i386/avx10_2-512-bf16-vector-cmp-1.c
! d813852930ebeb331eecaf9451f402a3  gcc/testsuite/gcc.target/i386/avx10_2-512-bf16-vector-fma-1.c
! 83041dd789bec46cd2b2ef2b6014ea26  gcc/testsuite/gcc.target/i386/avx10_2-512-bf16-vector-operations-1.c
! 2a7207fdabcf640c9737706728b76d62  gcc/testsuite/gcc.target/i386/avx10_2-512-bf16-vector-smaxmin-1.c
! 47cc6642b5f8856c392cd8a5d37a1760  gcc/testsuite/gcc.target/i386/avx10_2-512-convert-1.c
! d9f26d737f76d3cc5c5cb164e361509c  gcc/testsuite/gcc.target/i386/avx10_2-512-media-1.c
! 12e8d42fdf7208ef07d12208fb2ff368  gcc/testsuite/gcc.target/i386/avx10_2-512-minmax-1.c
! d96e4aa4483b1749dd0218b606ccdcc3  gcc/testsuite/gcc.target/i386/avx10_2-512-movrs-1.c
! edaa2a4cb906a884bf5b8980e8935053  gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
! 724118ade7dc930d0ec0f1ed3f54246b  gcc/testsuite/gcc.target/i386/avx10_2-512-vaddbf16-2.c
! 462015424956ef9311089ed401d84bce  gcc/testsuite/gcc.target/i386/avx10_2-512-vcmpbf16-2.c
! 95a541f859f77f729fe1851d02debb79  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8-2.c
! 797128068e351c55168d6b0bbf558b0a  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8s-2.c
! d887034a035518d81049d5a43bb0c9aa  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8-2.c
! eae77a4673271b36f25215ad559e38ec  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8s-2.c
! 61f1e00c9ec95bab9f94f229bd55b807  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ps2phx-2.c
! 9959f724e10a7a67e33a8e65e53c64ef  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbf162ibs-2.c
! 8b5d79e3887fd912183bc609d8d4a674  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbf162iubs-2.c
! c1852d63485c31999a75a6bc33d1ba8e  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8-2.c
! 4c90dc5d59a42e125115d34f8f592abc  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8s-2.c
! 35577d53b38faf629b79e8d35b708bc1  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8-2.c
! cdb23e9180c3075982dbf83f64cc2a32  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8s-2.c
! 742e876412bc0fcdafb75f4aeac53273  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvthf82ph-2.c
! 6b3fc2677be9dfb0f0bf5068dd1de279  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8-2.c
! b1fd4c823049e39b770916423f7913e0  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8s-2.c
! d1aa173f2977316c2c9940c21e509466  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8-2.c
! a0ee7099431a88f389b98136a0878f36  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8s-2.c
! 1b02a38945bb3586394797a6d8fc6a50  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c
! 12d9cdae2ef83e9b67fabdc88fa960f9  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c
! 4de3dbfc792a6511d5608f58f729834c  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c
! 0e19f48ac1f2516731ce7112bd157267  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c
! 8fef4acf30d5e55623bafb4b3212d3e4  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttbf162ibs-2.c
! 7d7f5f7e1c5a443e891c740e9e6c4095  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttbf162iubs-2.c
! ff3b0afc2f0c4b1c4681dfa8e9b6fd8a  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c
! 4a1e00d098055d5a4c9dcbd4c57b3644  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c
! b795890e217bd8594f667350fe417d93  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c
! 7481d52ae14c6285d360f4e40d2cb6b1  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c
! c8aa014f031b5f0cd5c227a500a43d36  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c
! 0fc7463743b4353316bb76945cca55ca  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c
! 8f9bc8c94f6f41fd23da4162bb64d5e8  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c
! 4e9d89ae203d1f81151e9e46b3a10336  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c
! 0d66a9a294690c1e15c23db3d6f49b91  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c
! a6c4ed440e3b434e12074f44ad0f9ea8  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c
! 44485da53bc8fd21570b0e91a76035d0  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c
! 638b8844314460c6f7dd64ee879351c1  gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c
! c6f859ad60b2bea049b2d0199e357d79  gcc/testsuite/gcc.target/i386/avx10_2-512-vdivbf16-2.c
! 29358773460da9087f60171f52048e02  gcc/testsuite/gcc.target/i386/avx10_2-512-vdpphps-2.c
! 3d2f6169e71f087f73cc8afa674781de  gcc/testsuite/gcc.target/i386/avx10_2-512-vfmaddXXXbf16-2.c
! 887d8d9ed92c809a9d127e1b982f6106  gcc/testsuite/gcc.target/i386/avx10_2-512-vfmsubXXXbf16-2.c
! 3f6e1f2d5338505ab88f24ee79577970  gcc/testsuite/gcc.target/i386/avx10_2-512-vfnmaddXXXbf16-2.c
! 05a57e09ee42b2934fb1603e5ef49a6d  gcc/testsuite/gcc.target/i386/avx10_2-512-vfnmsubXXXbf16-2.c
! 951555396c789e578cd2f42e81e7e15f  gcc/testsuite/gcc.target/i386/avx10_2-512-vfpclassbf16-2.c
! def366a4a1b8ceec0763e66b284312c0  gcc/testsuite/gcc.target/i386/avx10_2-512-vgetexpbf16-2.c
! b809f4bc2ed34a69f71282a9ec89c650  gcc/testsuite/gcc.target/i386/avx10_2-512-vgetmantbf16-2.c
! 9ec0211f07d0aac4325e00b7fd116b93  gcc/testsuite/gcc.target/i386/avx10_2-512-vmaxbf16-2.c
! 8c2a49daf059bdb92d201ad29499e169  gcc/testsuite/gcc.target/i386/avx10_2-512-vminbf16-2.c
! 25b28cb6b13d757400d33615bb5c6580  gcc/testsuite/gcc.target/i386/avx10_2-512-vminmaxbf16-2.c
! ead2017e7b419000d0090afed68c3b78  gcc/testsuite/gcc.target/i386/avx10_2-512-vminmaxpd-2.c
! d678dd202693efe3c3e50e45af3275e6  gcc/testsuite/gcc.target/i386/avx10_2-512-vminmaxph-2.c
! b6fcfa926992acb5c9038da88a8bb882  gcc/testsuite/gcc.target/i386/avx10_2-512-vminmaxps-2.c
! 713779a5a7821e65d06ffe3fc2964ee3  gcc/testsuite/gcc.target/i386/avx10_2-512-vmpsadbw-2.c
! da69e3882dda67c3434aa3e8c2c1f588  gcc/testsuite/gcc.target/i386/avx10_2-512-vmulbf16-2.c
! c7624f9d689443bc1f235d8af1122d35  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbssd-2.c
! eda9e6f7fec3e19bd4750e6fb53adad3  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbssds-2.c
! 47f85246f1aa83f516dfb3b60254c524  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbsud-2.c
! 61c1e29d33207f481f5b31d08e215c02  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbsuds-2.c
! 0fb32434ce874e014d4760142a8da612  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbuud-2.c
! 7fc65fe3f1820ac14135b797b003a5ac  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpbuuds-2.c
! d065e63a771b2015cff671f903a30d02  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwsud-2.c
! 33fe890d81c82e0ea5c859b1db36edc0  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwsuds-2.c
! 3c30812e17e1c98ca3470e93cd32f11b  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwusd-2.c
! 8735664e92addda5d74e2d40501a1dce  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwusds-2.c
! d349a779cc51a5c2374071be3a9ec517  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwuud-2.c
! 699033b87faaa17715e28e935b4df930  gcc/testsuite/gcc.target/i386/avx10_2-512-vpdpwuuds-2.c
! 7d30f0f74d39276a9868c45811c04035  gcc/testsuite/gcc.target/i386/avx10_2-512-vrcpbf16-2.c
! 0db1c17c937eca3945d71ca267ff78ee  gcc/testsuite/gcc.target/i386/avx10_2-512-vreducebf16-2.c
! 6fbb9d2435ca738348eebaa20a3f0212  gcc/testsuite/gcc.target/i386/avx10_2-512-vrndscalebf16-2.c
! d6a0e6873615f7dc218bfc6e782a84b1  gcc/testsuite/gcc.target/i386/avx10_2-512-vrsqrtbf16-2.c
! 8ff25ba2a50fe6d0c8d97530e2f48a03  gcc/testsuite/gcc.target/i386/avx10_2-512-vscalefbf16-2.c
! 6aa61438539bbe2ed1456a9f544be42b  gcc/testsuite/gcc.target/i386/avx10_2-512-vsqrtbf16-2.c
! 22922d71e3860e9bf1ea060e84a8556c  gcc/testsuite/gcc.target/i386/avx10_2-512-vsubbf16-2.c
! 36feb302799836bb1447aad4996d4f32  gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c
! 841bdd237ddc0112739915941b7a41c9  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-cmp-1.c
! f8c33643ad40fac24323d3d941c6f876  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-fma-1.c
! 80f595f8be5c33e21612b362c6774049  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-operations-1.c
! e15fc8536d46cdd4ac348a96109c3117  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-smaxmin-1.c
! 417ab35ed9008afe2f322f93299c12d8  gcc/testsuite/gcc.target/i386/avx10_2-builtin-1.c
! a2fc5a1576404e3c308cbd5c09c5efb0  gcc/testsuite/gcc.target/i386/avx10_2-builtin-2.c
! 3e38bcafeb4d5b2f7bb1c52ababdf752  gcc/testsuite/gcc.target/i386/avx10_2-comibf-1.c
! 416f727a1fbf3a66e86e4aa12e92573c  gcc/testsuite/gcc.target/i386/avx10_2-comibf-2.c
! 105f19196f335ab2a896afa886785ebb  gcc/testsuite/gcc.target/i386/avx10_2-comibf-3.c
! ddae9e3f25193c53de97e445f19efb5b  gcc/testsuite/gcc.target/i386/avx10_2-comibf-4.c
! 1ece947844abac5d130a2fef411986cf  gcc/testsuite/gcc.target/i386/avx10_2-compare-1.c
! 3f6ccd6941e539ede6c35d45caf27eb0  gcc/testsuite/gcc.target/i386/avx10_2-compare-1b.c
! 3fa4c5ec2c06f34ee8a29f2f8cefa330  gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c
! 69ae06d7a8759c6b89a5a382af22e912  gcc/testsuite/gcc.target/i386/avx10_2-media-1.c
! 4ce84262e79d77e58404c73de0474235  gcc/testsuite/gcc.target/i386/avx10_2-minmax-1.c
! e1de65e21c6c26d2fdf84a8e600776a2  gcc/testsuite/gcc.target/i386/avx10_2-movrs-1.c
! 8e9e5ef765b7c16e78b36440c7cdc81f  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-fast-math-1.c
! 4af5f36c571f416f48647ffb75a45045  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-fma-1.c
! 060256f3db21d28f61a90f026c37c557  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-operations-1.c
! fa1d703c5c27e1abbf55a158e4d6ee34  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-smaxmin-1.c
! d3b2e3b222506f251ae193405f6e6f11  gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
! 250f1760735592622b647d89908ad24b  gcc/testsuite/gcc.target/i386/avx10_2-vaddbf16-2.c
! 4bd1c7ec61e15679b46b7762ad78309b  gcc/testsuite/gcc.target/i386/avx10_2-vcmpbf16-2.c
! 30ba0b108963355c7d6479e5a7a140f7  gcc/testsuite/gcc.target/i386/avx10_2-vcomisbf16-1.c
! 42318f176ca12752055da19f248404c5  gcc/testsuite/gcc.target/i386/avx10_2-vcomisbf16-2.c
! efbacbd1e5e86199ddc98826c83e9c29  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8-2.c
! 0e6a0be2c12eb0de3cd51c9c60051bc9  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8s-2.c
! 8c31a27e7cbc4b1d4a238158d9aeafa8  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8-2.c
! 2e75e3881d49d00ea35111aedd32ae29  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8s-2.c
! d986e76532bccf30f316290f3949faa4  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ps2phx-2.c
! 65ef6f13a6afde999322bfe242d0e026  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162ibs-2.c
! 09e4572cc342de9523f4ababbe54a907  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162iubs-2.c
! cfbfb35c1f1d71854c2575d129fd9e66  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8-2.c
! 56c28b73cbacb21fad6cacff801d0b63  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8s-2.c
! f6fff3853a1311c5fbe4820b7162cff3  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8-2.c
! ce0dafa59b682a7b3093394e8bad5043  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8s-2.c
! d732d1504a431a42c0faf7c294abffb1  gcc/testsuite/gcc.target/i386/avx10_2-vcvthf82ph-2.c
! d7d29d47a65f4892357274a248f3ae64  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8-2.c
! 3e5fb0a326927149fda3a530654b3bb1  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8s-2.c
! 386078aa1ae6302d7faf1b0b671595d2  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8-2.c
! c01eea3f0fb3fdd1560af8e0549d1049  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8s-2.c
! 10a2f507db2398fc42b1ba21dbc3ddd2  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2ibs-2.c
! 80e1612c08d6221892c3414db94be002  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2iubs-2.c
! afd9804542806888860d58ae54c7ea5d  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2ibs-2.c
! 187d922680fd34d267d7cbb49e1d5c05  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c
! 596b98c3cda1fc7f54405c60bbe1f4ae  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162ibs-2.c
! f1b9b0211f28f30f8c01361b4d9bdb7b  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162iubs-2.c
! 8c499b4796c44a71a4cb197e3d9e185f  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2dqs-2.c
! a9e78cc0e34be38115a8b330a56b48cb  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2qqs-2.c
! a28f8c41f107710c81cd0c250bfc1769  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2udqs-2.c
! 1a13afa5f46126b5efd4a4da74e876cb  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2uqqs-2.c
! 43c1f8e7ba66207ce2a1b14ed5ec2400  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2ibs-2.c
! 8d0d6b2bd9c0612e1b55cd88968fa34d  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2iubs-2.c
! 112ec553910ef8854d231d9734189a05  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2dqs-2.c
! f3973129326216c8289fbdbe91b33fd3  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2ibs-2.c
! d3ed8196ad563fbc3d46be10a2338edf  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2iubs-2.c
! fe3c4a512a363ecc21b7c7ee9039c155  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2qqs-2.c
! 62955af6722434b3207f39def0bb610f  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2udqs-2.c
! a49f26f11a398855b3adddeca3d0b29c  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2uqqs-2.c
! c6807ff38360f668f9e6278bb27e0426  gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c
! 6d266ca5f0f721f4a17c5fba5e125c50  gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c
! 8284bb27463f26a72e548788421c3993  gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c
! 5d40c24472eeb67d6b0d664a1af3d4f0  gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c
! 50afeccf5f2cb37370321b58795e497f  gcc/testsuite/gcc.target/i386/avx10_2-vdivbf16-2.c
! 7a635fe8231cd04fa3ae65cc232780c8  gcc/testsuite/gcc.target/i386/avx10_2-vdpphps-2.c
! ff386fbf7707a03ec637689e4f0a8bc4  gcc/testsuite/gcc.target/i386/avx10_2-vfmaddXXXbf16-2.c
! 2c71a4daf86567547716668495e7d8df  gcc/testsuite/gcc.target/i386/avx10_2-vfmsubXXXbf16-2.c
! 4d109c39ac8fb11304d996c3d0da4432  gcc/testsuite/gcc.target/i386/avx10_2-vfnmaddXXXbf16-2.c
! 403010950b9561eabcf37c87a0bfa0c5  gcc/testsuite/gcc.target/i386/avx10_2-vfnmsubXXXbf16-2.c
! 33dd14b26f1ca87fb8a4c9c97d6f0e23  gcc/testsuite/gcc.target/i386/avx10_2-vfpclassbf16-2.c
! c063f6289b350e11fce81ecb377f8e3e  gcc/testsuite/gcc.target/i386/avx10_2-vgetexpbf16-2.c
! 1648289c2be074499665dc823fd25a0b  gcc/testsuite/gcc.target/i386/avx10_2-vgetmantbf16-2.c
! e6f7d84899685ffa7e964a4cdd7f3d6a  gcc/testsuite/gcc.target/i386/avx10_2-vmaxbf16-2.c
! daf23e2b0398a7af325c4e7264e5bc16  gcc/testsuite/gcc.target/i386/avx10_2-vminbf16-2.c
! a9c1e32c8065268f0d03e7be38781eca  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxbf16-2.c
! 029119391053caf74484d8c864602c76  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxpd-2.c
! fe9416c35316c6742bd37b518e3f01f8  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxph-2.c
! bac4f34cd375ea90f366d6ed546e5d66  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxps-2.c
! 77471989e07bd8949f27b71812165198  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxsd-2.c
! 14e503d314837d847a5df8e112535286  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxsh-2.c
! 7497d95be6a9bab6d7fb2341ee3c7ff7  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxss-2.c
! 5be998107d862cdf83ed5d4f93c8e8cc  gcc/testsuite/gcc.target/i386/avx10_2-vmovd-1.c
! d682e01b540647186d3c16704c41bdcb  gcc/testsuite/gcc.target/i386/avx10_2-vmovd-2.c
! 89612920a4714e332291ac058dbabc2a  gcc/testsuite/gcc.target/i386/avx10_2-vmovw-1.c
! 2742c5152774466fc6c04fdf314c3dcd  gcc/testsuite/gcc.target/i386/avx10_2-vmovw-2.c
! 2ef9ffa3024e2f37fdacc1474b594ed3  gcc/testsuite/gcc.target/i386/avx10_2-vmpsadbw-2.c
! a851d1af6e17f5d09aca6ec8387ab81b  gcc/testsuite/gcc.target/i386/avx10_2-vmulbf16-2.c
! 8dcd48a3707535bb80ff9da01015e86a  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssd-2.c
! 90e7892c4314345a06b4c531498d142a  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssds-2.c
! b192f2e2a53227cce2068b73d792b62f  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsud-2.c
! 565d84f7d7c9f773fa77ed374023e747  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsuds-2.c
! eac45237bdbd9f0d9df4724885d81456  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuud-2.c
! 08b2bec883ff6b41f2b653f3e57f99a9  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuuds-2.c
! 3d72a093d5dae735f84963e2bd2d4df5  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsud-2.c
! 2c532c94d3133e391e9aaee722d371ce  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsuds-2.c
! cf423a3377bf384cfcc0f48a07238770  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusd-2.c
! 1839315f68c98be1b4400e7b257c0c6c  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusds-2.c
! 8d617c8bd0c2c94cf33d923f1ab252b0  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuud-2.c
! e7c3c71889fc724efd80d122fe31b8c9  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuuds-2.c
! fd208a95263c19bcec42b0bbc3901da0  gcc/testsuite/gcc.target/i386/avx10_2-vrcpbf16-2.c
! 3b1d2af1799e28e5703acd7c9f0dca05  gcc/testsuite/gcc.target/i386/avx10_2-vreducebf16-2.c
! 661381f2194b009623c4e2acd2730013  gcc/testsuite/gcc.target/i386/avx10_2-vrndscalebf16-2.c
! c0488c5a521cc1841d3c1b743e06f389  gcc/testsuite/gcc.target/i386/avx10_2-vrsqrtbf16-2.c
! 4849c537e99ade3739b53858f5338aea  gcc/testsuite/gcc.target/i386/avx10_2-vscalefbf16-2.c
! 74006c02c7e65781d253063e2649ce9f  gcc/testsuite/gcc.target/i386/avx10_2-vsqrtbf16-2.c
! afc870575b52798b7f7f683850686b45  gcc/testsuite/gcc.target/i386/avx10_2-vsubbf16-2.c
! c1ebd833400b4f1e9d74b7929ccecdb6  gcc/testsuite/gcc.target/i386/avx2-bf16-vec-absneg.c
  a5901d33285892facee8dbfe287ce0d1  gcc/testsuite/gcc.target/i386/avx2-broadcast-pr87767-1.c
  958690bb20e5ef6d9a38def7eb976f13  gcc/testsuite/gcc.target/i386/avx2-check.h
  7dc98d98981fa7b82c0ae95d09c8128c  gcc/testsuite/gcc.target/i386/avx2-cvt-1.c
*************** f9c098fee9a454404b6c994c1b481bc0  gcc/te
*** 69864,69869 ****
--- 74617,74623 ----
  b2a5408a9b77cab42d5d95146250a38f  gcc/testsuite/gcc.target/i386/avx2-pr108599.c
  f6a4ee4d223cdf4463f296171468844c  gcc/testsuite/gcc.target/i386/avx2-pr114157.c
  1e455b321989ce8198e2a5cd0ab772ff  gcc/testsuite/gcc.target/i386/avx2-pr114783.c
+ 6fa4b94fa60e1eec4b7906f5939c053f  gcc/testsuite/gcc.target/i386/avx2-pr115517.c
  a544282846ec57648b2f38abf14119f0  gcc/testsuite/gcc.target/i386/avx2-pr51581-1.c
  46ffedd4e5e66cd46ad561ee8562eb7b  gcc/testsuite/gcc.target/i386/avx2-pr51581-2.c
  adf63582badc02467af57f768108628f  gcc/testsuite/gcc.target/i386/avx2-pr57233.c
*************** b3b620b8dc044e4100a06e231a5708e2  gcc/te
*** 69886,69892 ****
  21a650649af5438b7cf42a16ca857a80  gcc/testsuite/gcc.target/i386/avx2-pr93430.c
  c688523ced8060176cab81eb131ee08e  gcc/testsuite/gcc.target/i386/avx2-pr93594.c
  fe1e9952f545a4585608336ac4da4efc  gcc/testsuite/gcc.target/i386/avx2-pr94460.c
! e3a487b442acf86bbfc79eba4594f8bd  gcc/testsuite/gcc.target/i386/avx2-pr98461.c
  4796bd3878280cf20a2d843b24cb6576  gcc/testsuite/gcc.target/i386/avx2-pr99517-1.c
  eb660431400dfd8f30b0e0eac2d5c055  gcc/testsuite/gcc.target/i386/avx2-pr99517-2.c
  043383b25f13e0c9b9089a42c73d0865  gcc/testsuite/gcc.target/i386/avx2-pr99908.c
--- 74640,74646 ----
  21a650649af5438b7cf42a16ca857a80  gcc/testsuite/gcc.target/i386/avx2-pr93430.c
  c688523ced8060176cab81eb131ee08e  gcc/testsuite/gcc.target/i386/avx2-pr93594.c
  fe1e9952f545a4585608336ac4da4efc  gcc/testsuite/gcc.target/i386/avx2-pr94460.c
! df540b386fea93996eaf683fe3aa3e65  gcc/testsuite/gcc.target/i386/avx2-pr98461.c
  4796bd3878280cf20a2d843b24cb6576  gcc/testsuite/gcc.target/i386/avx2-pr99517-1.c
  eb660431400dfd8f30b0e0eac2d5c055  gcc/testsuite/gcc.target/i386/avx2-pr99517-2.c
  043383b25f13e0c9b9089a42c73d0865  gcc/testsuite/gcc.target/i386/avx2-pr99908.c
*************** aaef10fa24c4bc67258e89962335eaed  gcc/te
*** 70244,70249 ****
--- 74998,75004 ----
  851dac1c7dd73efe6b05026da917342d  gcc/testsuite/gcc.target/i386/avx256-unaligned-store-5.c
  3f5fa6be90bc7c0bb2fc93906c9940b3  gcc/testsuite/gcc.target/i386/avx256-unaligned-store-6.c
  57127db2a957cc3b9075d912d2186d74  gcc/testsuite/gcc.target/i386/avx256-unaligned-store-7.c
+ e7a323f0fdee8f7907cd7d1ceeec16ab  gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm.c
  0feb94f9968a5b27ad2447774a124af9  gcc/testsuite/gcc.target/i386/avx512-binop-1.h
  73f17c6e6c3de9b56b6c24f2ca95e8dc  gcc/testsuite/gcc.target/i386/avx512-binop-2.h
  7e80c283345b21a08008c43b6ba91fa4  gcc/testsuite/gcc.target/i386/avx512-binop-3.h
*************** a18d070763a97447058fa5b584a5b9c6  gcc/te
*** 70252,70258 ****
  0d28ea104e88f32dc070c3e46e4aa0d6  gcc/testsuite/gcc.target/i386/avx512-binop-6.h
  3b257ca31f00e3b54be716783dc0bcd5  gcc/testsuite/gcc.target/i386/avx512-binop-not-1.h
  57a0cd54ccab64d53d58695f998ebb3c  gcc/testsuite/gcc.target/i386/avx512-binop-not-2.h
! fbdba68ba420ccce8fa8455faaab1f7e  gcc/testsuite/gcc.target/i386/avx512-check.h
  7cbcb9acf470bd0a7216d3b1ecdc7782  gcc/testsuite/gcc.target/i386/avx512-fma-1.h
  c89b3bb38d9093b77d878d003a4d9b43  gcc/testsuite/gcc.target/i386/avx512-fma-2.h
  6d3aa2a78416766a98e9f88514cb03fc  gcc/testsuite/gcc.target/i386/avx512-fma-3.h
--- 75007,75013 ----
  0d28ea104e88f32dc070c3e46e4aa0d6  gcc/testsuite/gcc.target/i386/avx512-binop-6.h
  3b257ca31f00e3b54be716783dc0bcd5  gcc/testsuite/gcc.target/i386/avx512-binop-not-1.h
  57a0cd54ccab64d53d58695f998ebb3c  gcc/testsuite/gcc.target/i386/avx512-binop-not-2.h
! df65482391fe212a38136b7169dc6ec7  gcc/testsuite/gcc.target/i386/avx512-check.h
  7cbcb9acf470bd0a7216d3b1ecdc7782  gcc/testsuite/gcc.target/i386/avx512-fma-1.h
  c89b3bb38d9093b77d878d003a4d9b43  gcc/testsuite/gcc.target/i386/avx512-fma-2.h
  6d3aa2a78416766a98e9f88514cb03fc  gcc/testsuite/gcc.target/i386/avx512-fma-3.h
*************** c89b3bb38d9093b77d878d003a4d9b43  gcc/te
*** 70261,70278 ****
  a86fc7d9e3eb32e85df89db1a80bc4b2  gcc/testsuite/gcc.target/i386/avx512-fma-6.h
  c6dd0e8c40911df14c1fab26ea71eb01  gcc/testsuite/gcc.target/i386/avx512-fma-7.h
  9f5f97d054e0b3fa4dae0cfafc067bd4  gcc/testsuite/gcc.target/i386/avx512-fma-8.h
! f0aa68f330dcefdaa4664e7925bc30ad  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c
! a59a7165a6a7c043d3e82623d5c65cd0  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c
! 13d74bfe6e9246a60f607020c039f9e8  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c
! f5550cb7e616f09cc755438f7f1675f7  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c
! 5c3c9c77a4e17cd5656d4b938b74c48e  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c
! 4fa6a0bba42297052bea0768d05d9961  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c
! 5f8d432627203f72bcd0af344ff351bb  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c
! e563f3cdf5b20ea55710705da0f087eb  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c
! 3d05042c535aeaa621acdae5d9ac1b14  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c
! 16e4839794d0046dadc6ccf418412da3  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c
  d29c79e3f90ea13ca131538d02e8cbea  gcc/testsuite/gcc.target/i386/avx512bf16-cvtsbh2ss-1.c
  62b19e80a3afe81ed00caf74d9ff1785  gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
  964a5f2a2c89b83533b2be720732ccd6  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c
  80660c3a1129515840c1c9e263211f06  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c
  85f9fe6854d98f374a63df40394fb8cd  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c
--- 75016,75025 ----
  a86fc7d9e3eb32e85df89db1a80bc4b2  gcc/testsuite/gcc.target/i386/avx512-fma-6.h
  c6dd0e8c40911df14c1fab26ea71eb01  gcc/testsuite/gcc.target/i386/avx512-fma-7.h
  9f5f97d054e0b3fa4dae0cfafc067bd4  gcc/testsuite/gcc.target/i386/avx512-fma-8.h
! c20792613e2de72bf223a9deb9981150  gcc/testsuite/gcc.target/i386/avx512-pr115517.c
  d29c79e3f90ea13ca131538d02e8cbea  gcc/testsuite/gcc.target/i386/avx512bf16-cvtsbh2ss-1.c
  62b19e80a3afe81ed00caf74d9ff1785  gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
+ be5ec5e06a11542721a6fb86aea97864  gcc/testsuite/gcc.target/i386/avx512bf16-truncsfbf.c
  964a5f2a2c89b83533b2be720732ccd6  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c
  80660c3a1129515840c1c9e263211f06  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c
  85f9fe6854d98f374a63df40394fb8cd  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c
*************** f877c7aff68980a873311e9e3029ab4e  gcc/te
*** 70286,70308 ****
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
  e5a7b594a43b43d7c5fb9a42e551f0f1  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c
! dda9a1d52bfa393e0f6c5c797bbc7a05  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c
! 5fcdf160cc475c909532a8dbc434de5e  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c
  5a3d2089f406ef4e7e620e6f6883a771  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c
! 94ca40b49344f49154976728f8e04eba  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c
! 498728419393ba311d4b42ef8a6b3c19  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c
  b39fe9dc3f7b0c435de242709abf276a  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c
  684647cae9d0555dc0a794c38a7a7cfd  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c
  ae6b05eb60ec60c92e6f0b3a7d4e3adf  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c
  1bc03df9d4275e9b41e7f0e356b06088  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c
  687030be4c7de0df65d352c6e5e2741b  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c
  34f70835661397c9f3bdb5572f6d8ce1  gcc/testsuite/gcc.target/i386/avx512bw-check.h
  edb4e52333b73c860f134c92abb703cc  gcc/testsuite/gcc.target/i386/avx512bw-kaddd-1.c
  52f3640ff4e5a494fec30c714fbea8ad  gcc/testsuite/gcc.target/i386/avx512bw-kaddq-1.c
  8dcb6bb222e4d683a1bf319a50b12328  gcc/testsuite/gcc.target/i386/avx512bw-kandd-1.c
  257c9a49d57253b3a5675b15464ef91d  gcc/testsuite/gcc.target/i386/avx512bw-kandnd-1.c
! c0dc58145bad9c249f2c1e54b141866b  gcc/testsuite/gcc.target/i386/avx512bw-kandnq-1.c
! d5e66b8ae177cc3374a643808154b658  gcc/testsuite/gcc.target/i386/avx512bw-kandq-1.c
  83d52137ca5357a7da0a12fff43fba17  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-1.c
  8a9b84cfc24bdf11f92c3a33cc77ec1c  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-2.c
  cae3b1f9a98b5ed436fabbf8c0ff4be8  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-3.c
--- 75033,75056 ----
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
  e5a7b594a43b43d7c5fb9a42e551f0f1  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c
! 7ec79dd8a58309397d9e78697765054b  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c
! 87333f85c92b23ea63ca87f7d408ece9  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c
  5a3d2089f406ef4e7e620e6f6883a771  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c
! 90280ad6c492abb834bf4d8ce41c1b1c  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c
! aad4cdd4eab35366b0a86ed5cea463b8  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c
  b39fe9dc3f7b0c435de242709abf276a  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c
  684647cae9d0555dc0a794c38a7a7cfd  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c
  ae6b05eb60ec60c92e6f0b3a7d4e3adf  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c
  1bc03df9d4275e9b41e7f0e356b06088  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c
  687030be4c7de0df65d352c6e5e2741b  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c
  34f70835661397c9f3bdb5572f6d8ce1  gcc/testsuite/gcc.target/i386/avx512bw-check.h
+ 2e4baf9c42678da5e49f8dcae5df06ec  gcc/testsuite/gcc.target/i386/avx512bw-extendbf2sf.c
  edb4e52333b73c860f134c92abb703cc  gcc/testsuite/gcc.target/i386/avx512bw-kaddd-1.c
  52f3640ff4e5a494fec30c714fbea8ad  gcc/testsuite/gcc.target/i386/avx512bw-kaddq-1.c
  8dcb6bb222e4d683a1bf319a50b12328  gcc/testsuite/gcc.target/i386/avx512bw-kandd-1.c
  257c9a49d57253b3a5675b15464ef91d  gcc/testsuite/gcc.target/i386/avx512bw-kandnd-1.c
! 997a7396fc78876ac83b02bfe453ce0d  gcc/testsuite/gcc.target/i386/avx512bw-kandnq-1.c
! eab46b80d66a386074610f78199f887c  gcc/testsuite/gcc.target/i386/avx512bw-kandq-1.c
  83d52137ca5357a7da0a12fff43fba17  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-1.c
  8a9b84cfc24bdf11f92c3a33cc77ec1c  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-2.c
  cae3b1f9a98b5ed436fabbf8c0ff4be8  gcc/testsuite/gcc.target/i386/avx512bw-kmovd-3.c
*************** ff466df6dcbd7eda74d8d1fe755a2ac9  gcc/te
*** 70312,70331 ****
  3cf88dbdbe171f1dace63254aaffe2d2  gcc/testsuite/gcc.target/i386/avx512bw-kmovq-3.c
  973b506be5d57157b4a658d21592db16  gcc/testsuite/gcc.target/i386/avx512bw-kmovq-4.c
  59112ec767680f5bcfcf8ea9343c2879  gcc/testsuite/gcc.target/i386/avx512bw-knotd-1.c
! 2a4e4795e28baab50e47039dff4e1f6b  gcc/testsuite/gcc.target/i386/avx512bw-knotq-1.c
  27fef2dabec6e2d2f7c2dd03b555714d  gcc/testsuite/gcc.target/i386/avx512bw-kord-1.c
! 8561c27bd5f099af3495149d7f28ea46  gcc/testsuite/gcc.target/i386/avx512bw-korq-1.c
  d553bb1a985437ce75d16157f9bb7c1d  gcc/testsuite/gcc.target/i386/avx512bw-kortestd-1.c
  5d79895d7573f42e719c5af7224c0f40  gcc/testsuite/gcc.target/i386/avx512bw-kortestd-2.c
  afecff0623c16cd0067fa722e5c82439  gcc/testsuite/gcc.target/i386/avx512bw-kortestq-1.c
  f1fd8d5baca9948d91de2c6c4bade140  gcc/testsuite/gcc.target/i386/avx512bw-kortestq-2.c
  10da58cad7740a502a658fd265593339  gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-1.c
  e9fc9f082191e0919c4b252c3eb2d2d9  gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-2.c
! ce0e75b448f855661bbde26b6ba06751  gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-1.c
  3b716cbd68a3d431299ee9d25fdec6e1  gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-2.c
  c54a291369fe655036863eb0bdf91e31  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-1.c
  1cbe569075d328fbae1377408aebc6c7  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-2.c
! d29676dc6ba03a3e7d5abce32a589a4a  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-1.c
  83a619161067a392620a2a8e8feb60e0  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-2.c
  27269440242900705e4d1a591b78c014  gcc/testsuite/gcc.target/i386/avx512bw-ktestd-1.c
  4a443f7908dca80a02361129b6e963c5  gcc/testsuite/gcc.target/i386/avx512bw-ktestd-2.c
--- 75060,75079 ----
  3cf88dbdbe171f1dace63254aaffe2d2  gcc/testsuite/gcc.target/i386/avx512bw-kmovq-3.c
  973b506be5d57157b4a658d21592db16  gcc/testsuite/gcc.target/i386/avx512bw-kmovq-4.c
  59112ec767680f5bcfcf8ea9343c2879  gcc/testsuite/gcc.target/i386/avx512bw-knotd-1.c
! d640cc98444c6b490c9148c346473256  gcc/testsuite/gcc.target/i386/avx512bw-knotq-1.c
  27fef2dabec6e2d2f7c2dd03b555714d  gcc/testsuite/gcc.target/i386/avx512bw-kord-1.c
! 0f04adeee929a3548c23588f543bd13e  gcc/testsuite/gcc.target/i386/avx512bw-korq-1.c
  d553bb1a985437ce75d16157f9bb7c1d  gcc/testsuite/gcc.target/i386/avx512bw-kortestd-1.c
  5d79895d7573f42e719c5af7224c0f40  gcc/testsuite/gcc.target/i386/avx512bw-kortestd-2.c
  afecff0623c16cd0067fa722e5c82439  gcc/testsuite/gcc.target/i386/avx512bw-kortestq-1.c
  f1fd8d5baca9948d91de2c6c4bade140  gcc/testsuite/gcc.target/i386/avx512bw-kortestq-2.c
  10da58cad7740a502a658fd265593339  gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-1.c
  e9fc9f082191e0919c4b252c3eb2d2d9  gcc/testsuite/gcc.target/i386/avx512bw-kshiftld-2.c
! 72978b0a7886b476ff83b960e53fb9bc  gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-1.c
  3b716cbd68a3d431299ee9d25fdec6e1  gcc/testsuite/gcc.target/i386/avx512bw-kshiftlq-2.c
  c54a291369fe655036863eb0bdf91e31  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-1.c
  1cbe569075d328fbae1377408aebc6c7  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrd-2.c
! 6a6f5983dcb5c17f07b5f61df391c57a  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-1.c
  83a619161067a392620a2a8e8feb60e0  gcc/testsuite/gcc.target/i386/avx512bw-kshiftrq-2.c
  27269440242900705e4d1a591b78c014  gcc/testsuite/gcc.target/i386/avx512bw-ktestd-1.c
  4a443f7908dca80a02361129b6e963c5  gcc/testsuite/gcc.target/i386/avx512bw-ktestd-2.c
*************** df2296d2b5d579486ed87b137d771576  gcc/te
*** 70338,70354 ****
  6e02a159bd149994a21ef25a9cb51821  gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-2.c
  27f1ef876dc4e401fe0d84f6b8526ba3  gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-3.c
  7f8f82e7359886bd1afb055ee0cb28c9  gcc/testsuite/gcc.target/i386/avx512bw-kxnord-1.c
! c72add6d291b707951ee1d66088d7cc2  gcc/testsuite/gcc.target/i386/avx512bw-kxnorq-1.c
  de9ce5efe88acd77018d22a7dcdb9493  gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c
! 6c302267f8ed92e29f0d59629f0eec4f  gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c
  bce67b236520c561f93006d5bd66eea1  gcc/testsuite/gcc.target/i386/avx512bw-pack-2.c
  1c2a2b5aa23a2f51d4369defa09e11f4  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-1.c
  9ba0129c845ea79457de6bc81940fc1e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-b-2.c
  3f44c2ea2e8fdb3406905bdcbe71c00a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-d-2.c
  5a54db93d0716b5d30e9561d76fde43a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-q-2.c
  38b828abde48acfe108bf890bddbcd2e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-w-2.c
! 71ac6a04534042bfa057ebce7bc266b4  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
! 2589b43ccc82e972823c4c4f159c2244  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
  2d319ef27177a5dd5161f6c501d73c11  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-1.c
  2578aaea4945a191c1767c5b6ebde5b2  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-2.c
  923b4b67baacfc2aedf431c5989f2d6e  gcc/testsuite/gcc.target/i386/avx512bw-pr70509.c
--- 75086,75102 ----
  6e02a159bd149994a21ef25a9cb51821  gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-2.c
  27f1ef876dc4e401fe0d84f6b8526ba3  gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-3.c
  7f8f82e7359886bd1afb055ee0cb28c9  gcc/testsuite/gcc.target/i386/avx512bw-kxnord-1.c
! 867e6ebed27ab06e5a7218e37daeb00d  gcc/testsuite/gcc.target/i386/avx512bw-kxnorq-1.c
  de9ce5efe88acd77018d22a7dcdb9493  gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c
! d07fed280a148775be04284301f209dd  gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c
  bce67b236520c561f93006d5bd66eea1  gcc/testsuite/gcc.target/i386/avx512bw-pack-2.c
  1c2a2b5aa23a2f51d4369defa09e11f4  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-1.c
  9ba0129c845ea79457de6bc81940fc1e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-b-2.c
  3f44c2ea2e8fdb3406905bdcbe71c00a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-d-2.c
  5a54db93d0716b5d30e9561d76fde43a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-q-2.c
  38b828abde48acfe108bf890bddbcd2e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-w-2.c
! 5ee9ec69a8d0c12ad27334fa1ed9ab05  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
! 03d4f52699f3404f94356f8b450405a9  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
  2d319ef27177a5dd5161f6c501d73c11  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-1.c
  2578aaea4945a191c1767c5b6ebde5b2  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-2.c
  923b4b67baacfc2aedf431c5989f2d6e  gcc/testsuite/gcc.target/i386/avx512bw-pr70509.c
*************** e4698cb8823977a5894910b921a979aa  gcc/te
*** 70383,70388 ****
--- 75131,75137 ----
  de70add72880f23cd146fbcc12d0c044  gcc/testsuite/gcc.target/i386/avx512bw-pr96906-1.c
  03e6288ecabc420b8cf1f581aa246623  gcc/testsuite/gcc.target/i386/avx512bw-shiftqihi-constant-1.c
  86d1e2efcab8b345a067e94b7ba2d579  gcc/testsuite/gcc.target/i386/avx512bw-shiftqihi-constant-2.c
+ f1ced29f655d431dc7ec96f26d147984  gcc/testsuite/gcc.target/i386/avx512bw-truncsfbf.c
  186b4d26f65c47b5b328795efe473c71  gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-1.c
  aa76e419ea439da7ae72280b04d232b8  gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-2.c
  9cd9525f073ba6acdb51bc2685dce1d9  gcc/testsuite/gcc.target/i386/avx512bw-vec-set-1.c
*************** c153e1069c3dada49b7f9da180f67758  gcc/te
*** 70497,70503 ****
  8932439ef47d9fd6ccc11187519b5396  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-2.c
  afd3e3f28e3108bd8551946815797996  gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-1.c
  2c3c9b31bcb5c5ae49b479d9f30bc8c9  gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-2.c
! 196137ca88f5107bf1ba2a96e61ccb78  gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-1.c
  a0f56b7edc926ca30a5e2e7054790fc1  gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-2.c
  d53604b8716b6d81b7ea6b714e73ba14  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-1.c
  f9b93ac6a209e1d15c715127c3a22db7  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-2.c
--- 75246,75252 ----
  8932439ef47d9fd6ccc11187519b5396  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-2.c
  afd3e3f28e3108bd8551946815797996  gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-1.c
  2c3c9b31bcb5c5ae49b479d9f30bc8c9  gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-2.c
! 9ed96cb1f2027435f4a3d5c76d0be193  gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-1.c
  a0f56b7edc926ca30a5e2e7054790fc1  gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-2.c
  d53604b8716b6d81b7ea6b714e73ba14  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-1.c
  f9b93ac6a209e1d15c715127c3a22db7  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-2.c
*************** defa0bf9a761ab8e7ebb8134d95fd415  gcc/te
*** 70659,70666 ****
  d2c68e3327a2157bdcf34a605ff31313  gcc/testsuite/gcc.target/i386/avx512dq-pr85918-2.c
  5968a85a1eb9c3884b74c71c66a7cf8a  gcc/testsuite/gcc.target/i386/avx512dq-pr85918.c
  a55883cf9460124ef35490ac617f199c  gcc/testsuite/gcc.target/i386/avx512dq-pr88465.c
! 27994cf2e5c4a37ee62a307be6acdb91  gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c
! a861d7cbf6609ade6f9d77f005fdd389  gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c
  5b7eeade63f43c643092ab9e82d0bc38  gcc/testsuite/gcc.target/i386/avx512dq-pr93673.c
  802a65b817227165abdd16614cc84b66  gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-1.c
  662686f5a6135b453e71e9349d333155  gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-2.c
--- 75408,75415 ----
  d2c68e3327a2157bdcf34a605ff31313  gcc/testsuite/gcc.target/i386/avx512dq-pr85918-2.c
  5968a85a1eb9c3884b74c71c66a7cf8a  gcc/testsuite/gcc.target/i386/avx512dq-pr85918.c
  a55883cf9460124ef35490ac617f199c  gcc/testsuite/gcc.target/i386/avx512dq-pr88465.c
! 3f7cffdc0baf16358bf089003aea57a7  gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c
! 175815dcdc0763ef667000da92580465  gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c
  5b7eeade63f43c643092ab9e82d0bc38  gcc/testsuite/gcc.target/i386/avx512dq-pr93673.c
  802a65b817227165abdd16614cc84b66  gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-1.c
  662686f5a6135b453e71e9349d333155  gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-2.c
*************** f93a614a15d204e65833d00faeae06bd  gcc/te
*** 70772,70804 ****
  d2485d57c89b4736d55cf3ad043515d3  gcc/testsuite/gcc.target/i386/avx512dq-vxorpd-2.c
  b91dc4453f3b5b5e4ea6147d114bb759  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-1.c
  bbfd1d8973f4b73e98d2b686f541bb50  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-2.c
- c405e2766f008522fd2c57413f19b993  gcc/testsuite/gcc.target/i386/avx512er-check.h
- e55a21ee9825fc765e8d70c803bf5399  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c
- cc841f117331b04d66fa65fa83728c86  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c
- e5b2f7afd6ced3cec028ce9df126a9b4  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c
- 9fd2897cbec3afada0ec96aa4838e6f4  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c
- c8e3138f2b20c9bf1a275e67064382d9  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c
- bc0226d6498e8d6fab6a566b075a9678  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c
- 13c66d051d563c3a420d06221d6bbba8  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c
- 48573d985c0675c0e49b657402f5df5b  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c
- 2ab17c420c1504918056e4828a54af46  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c
- 4b4c3b9a19f7bbef9357425e8b31b84c  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c
- 0cf9d5ba4728d648f3584e371af95f0a  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c
- 092a6a84f0cec8d8fb43fd718af436e0  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c
- dead58d39633d33ade52ea73f39047d3  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c
- ac9cfd39005f952dffc08da62c5b7d54  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c
- da3724378cbd79a6cd7736792fbb3ab5  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c
- eddfef7ff8418b69b812f14ce879db83  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c
- 804076ebf805502dd2a07ac7ec06a724  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c
- 3d85799d4e67b477edc3488cabc7f8df  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c
- d3bd370bfdcda1ec9c11e8f50fe1d6bc  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c
- 1804af161b27d900eae87bbd7a424635  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c
- bd4f98d4b7da8466d842fb10b974e112  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c
- 2a120054966f0c8f27e9ebc8d46854fd  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c
- cb70d3e0c65052d000d235a411ad4639  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c
- 1fd1d19c26567a8a415190506c8dfa9b  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c
- f3c51971ddbe93762507b15c8f8ba348  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c
- 6adeba05bc662363fccf5222609bd551  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c
  293c0a0037da464f897d16eb6f1159b5  gcc/testsuite/gcc.target/i386/avx512f-abspd-1.c
  848eeff915167de4b7db43649930109b  gcc/testsuite/gcc.target/i386/avx512f-absps-1.c
  8799a68f026a746fb50083af4ae4154a  gcc/testsuite/gcc.target/i386/avx512f-add-df-zmm-1.c
--- 75521,75526 ----
*************** b737ab4f98d129dced7909dfeaa6d989  gcc/te
*** 70828,70846 ****
  4bea2ff5abdb1019ace175782737355d  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-5.c
  83ce2eedd5a8fe181728bcec87580e4c  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-6.c
  e6a2d08517354a6475d26db37dba85e2  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-1.c
! 9e7d3f0ab599c0afabe514796e4c43d3  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-2.c
  7bdb8d5e0ed3104f993f95e7b17d28a9  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-1.c
! 95609c26db388922692a359d22d8c046  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-2.c
  15b74051431ad7afd25be6d603d3293d  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-3.c
  9b64e09bf8ab17f1dcd8f928bdd25743  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-4.c
  d63ad896d9c758712bf90d6dc9341750  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-5.c
  ac444822bf41eda8ff9b0517ed627613  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-1.c
  c88d598d6edb7c0c743c1dc16a2cc16d  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-2.c
! ddd7b452f2f34f9dc53027542af17f41  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-1.c
  08373bd09639bc64a0bddd2ddc47768f  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-2.c
  97b1b6d4bf2739b6e621086b377217b7  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-3.c
  a9d7eae800fa77dbac9b5164b17093c5  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-4.c
! 617f9556c50759ea1267e85e32e5b3d2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-5.c
  0e1564775717bbc2a1b1b34d11aa25e2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-6.c
  57a624131d39343fc5c40145915d6580  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-7.c
  a612d3f3d319b7fcfca22fcefe6e2a0a  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c
--- 75550,75569 ----
  4bea2ff5abdb1019ace175782737355d  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-5.c
  83ce2eedd5a8fe181728bcec87580e4c  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-6.c
  e6a2d08517354a6475d26db37dba85e2  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-1.c
! 23493fb02931c53069136c56c69c8a15  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-2.c
  7bdb8d5e0ed3104f993f95e7b17d28a9  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-1.c
! 4b6b71cb3394b7ad8f4b8870bb35df5c  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-2.c
  15b74051431ad7afd25be6d603d3293d  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-3.c
  9b64e09bf8ab17f1dcd8f928bdd25743  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-4.c
  d63ad896d9c758712bf90d6dc9341750  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-5.c
+ 2aa0cdfe0e51d6117503340abf2ef449  gcc/testsuite/gcc.target/i386/avx512f-bf16-vec-absneg.c
  ac444822bf41eda8ff9b0517ed627613  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-1.c
  c88d598d6edb7c0c743c1dc16a2cc16d  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-2.c
! cac71b9cf09a297e139078a8157655fc  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-1.c
  08373bd09639bc64a0bddd2ddc47768f  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-2.c
  97b1b6d4bf2739b6e621086b377217b7  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-3.c
  a9d7eae800fa77dbac9b5164b17093c5  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-4.c
! dedec39a1d60a61d1b71227229ea902e  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-5.c
  0e1564775717bbc2a1b1b34d11aa25e2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-6.c
  57a624131d39343fc5c40145915d6580  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-7.c
  a612d3f3d319b7fcfca22fcefe6e2a0a  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c
*************** e4c53b4b3beb8b7fd9f352712d400e8f  gcc/te
*** 70884,70890 ****
  d12a006ff1be2e9870dd40f47d905e71  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-4.c
  108b18b8fc139e037ea403654c898ea7  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-5.c
  fea4d079c4a2e694d247fce8b4bee131  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-6.c
! d6d0e070b8a7d7bca5f0b3667f5fca16  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-7.c
  cfd59a49cace907644834186bd9c4d94  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-8.c
  db74f73904d071e07597fd2634fd4e6a  gcc/testsuite/gcc.target/i386/avx512f-fmsub-df-zmm-1.c
  87a33dd0ccb121864da19632ec747f47  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-1.c
--- 75607,75613 ----
  d12a006ff1be2e9870dd40f47d905e71  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-4.c
  108b18b8fc139e037ea403654c898ea7  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-5.c
  fea4d079c4a2e694d247fce8b4bee131  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-6.c
! 03ab5a3aedaba643b2e7459b16905fce  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-7.c
  cfd59a49cace907644834186bd9c4d94  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-8.c
  db74f73904d071e07597fd2634fd4e6a  gcc/testsuite/gcc.target/i386/avx512f-fmsub-df-zmm-1.c
  87a33dd0ccb121864da19632ec747f47  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-1.c
*************** ab55b7ec2eae57f48f3eb518e5cfeab2  gcc/te
*** 70893,70899 ****
  49eca444d5d34d5bef351c3340461e42  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-4.c
  863c02e0bfefcbda161e24a4f79c4132  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-5.c
  45d3f0280645ccd7b7c5523ee35f046c  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-6.c
! 0b6869490a2425c799a257b2fee2dd79  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-7.c
  933235be16cdb517ca854c4ce17fa2e6  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-8.c
  de16f062c8669a11b4e1ab43daa3ac20  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-df-zmm-1.c
  621f0f09e6de0b6ddb42c47e242e03e0  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c
--- 75616,75622 ----
  49eca444d5d34d5bef351c3340461e42  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-4.c
  863c02e0bfefcbda161e24a4f79c4132  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-5.c
  45d3f0280645ccd7b7c5523ee35f046c  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-6.c
! f39be4a3b6c5973f141f1add84d4d455  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-7.c
  933235be16cdb517ca854c4ce17fa2e6  gcc/testsuite/gcc.target/i386/avx512f-fmsub-sf-zmm-8.c
  de16f062c8669a11b4e1ab43daa3ac20  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-df-zmm-1.c
  621f0f09e6de0b6ddb42c47e242e03e0  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c
*************** feadc8e3cb2a47de2a224e207e255b96  gcc/te
*** 70902,70908 ****
  3d018776f4c0374c4f9f2672ab7bdfc7  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c
  2a12780dc55b8d0211b82a1da926a871  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c
  9c467638634ab70d4c7ce2d563c2ef75  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c
! 6741a01d3b857cbaf5381369dc339598  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c
  9b05d62d1782c1f4a2ef0ec70af27798  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c
  54a7446d3aad7e42afed730412444bfb  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-df-zmm-1.c
  47d157ae37ff5f853adb9d923628dabb  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c
--- 75625,75631 ----
  3d018776f4c0374c4f9f2672ab7bdfc7  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c
  2a12780dc55b8d0211b82a1da926a871  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c
  9c467638634ab70d4c7ce2d563c2ef75  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c
! d888780290f5745fb2ab65917e91465f  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c
  9b05d62d1782c1f4a2ef0ec70af27798  gcc/testsuite/gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c
  54a7446d3aad7e42afed730412444bfb  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-df-zmm-1.c
  47d157ae37ff5f853adb9d923628dabb  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c
*************** feadc8e3cb2a47de2a224e207e255b96  gcc/te
*** 70911,70917 ****
  a7040ce438f8a46b53e68d5f25ddfb34  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c
  f29cb80478e0215da944b07d692b0066  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c
  a667779f55bbe4353e3c110dc1ba9d88  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c
! 1308de2cbc34f432d25336bc885bca51  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c
  16c3b0cf3a3c961cb0fec74bf4060737  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c
  13cdce1bf0a69ff1f2d074309568894b  gcc/testsuite/gcc.target/i386/avx512f-gather-1.c
  c8624eb2b3174b5a690f95d397a2597b  gcc/testsuite/gcc.target/i386/avx512f-gather-2.c
--- 75634,75640 ----
  a7040ce438f8a46b53e68d5f25ddfb34  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c
  f29cb80478e0215da944b07d692b0066  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c
  a667779f55bbe4353e3c110dc1ba9d88  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c
! 25a48367eefc13b030fce6040f00a209  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c
  16c3b0cf3a3c961cb0fec74bf4060737  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c
  13cdce1bf0a69ff1f2d074309568894b  gcc/testsuite/gcc.target/i386/avx512f-gather-1.c
  c8624eb2b3174b5a690f95d397a2597b  gcc/testsuite/gcc.target/i386/avx512f-gather-2.c
*************** f783e66b09f316c2dde663ba5ce3186a  gcc/te
*** 70921,70927 ****
  b38a9c14f87367c694a03c6a85cda093  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineinvqb-2.c
  e8ed6420b94ba8e4f884b1fed3192afb  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineqb-2.c
  fbf4c4e93ebbba4e4057d944ad324b7b  gcc/testsuite/gcc.target/i386/avx512f-gf2p8mulb-2.c
! b30bd8215949240eadbb28b213632870  gcc/testsuite/gcc.target/i386/avx512f-helper.h
  bc1e264d74393600ad6c3dc8e5f9a8c1  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-1.c
  970def87f940562db570ac590860c040  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-2.c
  368e993e6c8f94205fcb74a268d08265  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-1.c
--- 75644,75650 ----
  b38a9c14f87367c694a03c6a85cda093  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineinvqb-2.c
  e8ed6420b94ba8e4f884b1fed3192afb  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineqb-2.c
  fbf4c4e93ebbba4e4057d944ad324b7b  gcc/testsuite/gcc.target/i386/avx512f-gf2p8mulb-2.c
! 20288e33f34e2901f9a88eafa9f5ef5b  gcc/testsuite/gcc.target/i386/avx512f-helper.h
  bc1e264d74393600ad6c3dc8e5f9a8c1  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-1.c
  970def87f940562db570ac590860c040  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-2.c
  368e993e6c8f94205fcb74a268d08265  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-1.c
*************** c0dd86eaa0095c2b38908928d5034cf3  gcc/te
*** 70993,71000 ****
  86f982a5a551113f9ce0c7e950b8f010  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-4.c
  d787a0a2840b56339d3621983623b18d  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c
  d35963959d5b010c3b26b967f48d3608  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c
! f07390ef5068cb86c51a4795e19fed6d  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-1.c
! fd0cedd44d95c2ea94fb116776766883  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-2.c
  17acbefd47a510ed96d83a23e3e4b8c3  gcc/testsuite/gcc.target/i386/avx512f-os-support.h
  3914b6d25111ca6ae59285960acf2a38  gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c
  96968590e0e38d8ab07a46aa232aaa22  gcc/testsuite/gcc.target/i386/avx512f-pr100267-pd-2.c
--- 75716,75723 ----
  86f982a5a551113f9ce0c7e950b8f010  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-4.c
  d787a0a2840b56339d3621983623b18d  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c
  d35963959d5b010c3b26b967f48d3608  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c
! e19e3e51ec11ade8a01868fbfc4cd54d  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-1.c
! 67dce330c9eb191d6f0366dbe1125872  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-2.c
  17acbefd47a510ed96d83a23e3e4b8c3  gcc/testsuite/gcc.target/i386/avx512f-os-support.h
  3914b6d25111ca6ae59285960acf2a38  gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c
  96968590e0e38d8ab07a46aa232aaa22  gcc/testsuite/gcc.target/i386/avx512f-pr100267-pd-2.c
*************** f52100c2d13572e0728cca2f85b0fcde  gcc/te
*** 71003,71012 ****
  9bceffe4e050aeec5dfd5c8013709ffe  gcc/testsuite/gcc.target/i386/avx512f-pr101472.c
  dc7877a60c094039a172aa23afb1e37c  gcc/testsuite/gcc.target/i386/avx512f-pr101860.c
  45a98ac2d84ae154c61e3e1ce84c17eb  gcc/testsuite/gcc.target/i386/avx512f-pr101896.c
! ce0cad9f4c5da96b0d07d2029604250c  gcc/testsuite/gcc.target/i386/avx512f-pr103750-1.c
! 1d9114b974ef8241068b2ece25e00b2e  gcc/testsuite/gcc.target/i386/avx512f-pr103750-2.c
  fa2c17673f6ee0e3a3910298a93d723d  gcc/testsuite/gcc.target/i386/avx512f-pr114157.c
  9a6936f1815277f15801196159007f44  gcc/testsuite/gcc.target/i386/avx512f-pr114566.c
  88877c518076ecdec1dba128743ad627  gcc/testsuite/gcc.target/i386/avx512f-pr57233.c
  0272e0fc54cb34ee03db4b0027dbec3d  gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c
  381f53de01f1e9893e6903d9fac40b87  gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c
--- 75726,75737 ----
  9bceffe4e050aeec5dfd5c8013709ffe  gcc/testsuite/gcc.target/i386/avx512f-pr101472.c
  dc7877a60c094039a172aa23afb1e37c  gcc/testsuite/gcc.target/i386/avx512f-pr101860.c
  45a98ac2d84ae154c61e3e1ce84c17eb  gcc/testsuite/gcc.target/i386/avx512f-pr101896.c
! c59cb0f6296cca13977d48b062bd3b3e  gcc/testsuite/gcc.target/i386/avx512f-pr103750-1.c
! ed16a7946b57b110b46a4f5d0d286aa0  gcc/testsuite/gcc.target/i386/avx512f-pr103750-2.c
  fa2c17673f6ee0e3a3910298a93d723d  gcc/testsuite/gcc.target/i386/avx512f-pr114157.c
  9a6936f1815277f15801196159007f44  gcc/testsuite/gcc.target/i386/avx512f-pr114566.c
+ 9d6b0fb1e1a52903717dc76f97738172  gcc/testsuite/gcc.target/i386/avx512f-pr116738-1.c
+ 678b1780c696a211b19a271bd7501f61  gcc/testsuite/gcc.target/i386/avx512f-pr116738-2.c
  88877c518076ecdec1dba128743ad627  gcc/testsuite/gcc.target/i386/avx512f-pr57233.c
  0272e0fc54cb34ee03db4b0027dbec3d  gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c
  381f53de01f1e9893e6903d9fac40b87  gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c
*************** c64f8e63f9233fd8382fefc82e756df8  gcc/te
*** 71052,71058 ****
  16bf42a7e25dd411c2d2ddf3f97a9355  gcc/testsuite/gcc.target/i386/avx512f-pr96551-2.c
  101567d8311eb033b484672276e3605e  gcc/testsuite/gcc.target/i386/avx512f-pr96891-1.c
  04ed0383683cf0e2698125d407090ab7  gcc/testsuite/gcc.target/i386/avx512f-pr96891-2.c
! d78e3457ea49412fb5342c9d2fc4b516  gcc/testsuite/gcc.target/i386/avx512f-pr96891-3.c
  23ad5d665df88571c33627be5c844324  gcc/testsuite/gcc.target/i386/avx512f-pr97028.c
  c03d8cf4fa3fd17be806ad4e6adc4bca  gcc/testsuite/gcc.target/i386/avx512f-prefer.c
  fa779c05cab9a2378601e3ad5ae642ef  gcc/testsuite/gcc.target/i386/avx512f-reduce-op-1.c
--- 75777,75783 ----
  16bf42a7e25dd411c2d2ddf3f97a9355  gcc/testsuite/gcc.target/i386/avx512f-pr96551-2.c
  101567d8311eb033b484672276e3605e  gcc/testsuite/gcc.target/i386/avx512f-pr96891-1.c
  04ed0383683cf0e2698125d407090ab7  gcc/testsuite/gcc.target/i386/avx512f-pr96891-2.c
! 9dd28b3421f153a47c6990e439405632  gcc/testsuite/gcc.target/i386/avx512f-pr96891-3.c
  23ad5d665df88571c33627be5c844324  gcc/testsuite/gcc.target/i386/avx512f-pr97028.c
  c03d8cf4fa3fd17be806ad4e6adc4bca  gcc/testsuite/gcc.target/i386/avx512f-prefer.c
  fa779c05cab9a2378601e3ad5ae642ef  gcc/testsuite/gcc.target/i386/avx512f-reduce-op-1.c
*************** dff3bcbdc5c72bff2297edf69e367b9b  gcc/te
*** 71728,71737 ****
  0e3db0c2e3543f0ab5e9fd64851c5184  gcc/testsuite/gcc.target/i386/avx512f-vpsubd-2.c
  81a084d0db763dfe4ad1c79c5d8ea71e  gcc/testsuite/gcc.target/i386/avx512f-vpsubq-1.c
  892a78a2f463c2ae63c197a54d890edd  gcc/testsuite/gcc.target/i386/avx512f-vpsubq-2.c
! f8a285d83696c3e9e55962974cebead5  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-1.c
  f70753b812e1ff98107528aed14bde25  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-2.c
! d130f0f046cc5d4bf221ef52c44e4cb4  gcc/testsuite/gcc.target/i386/avx512f-vpternlogq-1.c
  cca6985677715d67c7087a72745dfe41  gcc/testsuite/gcc.target/i386/avx512f-vpternlogq-2.c
  9108d53dbbe9829997fdb1b42c0e814e  gcc/testsuite/gcc.target/i386/avx512f-vptestmd-1.c
  3abaed9f3f815175a2e983a5f05c9111  gcc/testsuite/gcc.target/i386/avx512f-vptestmd-2.c
  7f59e5a3275dd02a53ec70903ee1be05  gcc/testsuite/gcc.target/i386/avx512f-vptestmq-1.c
--- 76453,76466 ----
  0e3db0c2e3543f0ab5e9fd64851c5184  gcc/testsuite/gcc.target/i386/avx512f-vpsubd-2.c
  81a084d0db763dfe4ad1c79c5d8ea71e  gcc/testsuite/gcc.target/i386/avx512f-vpsubq-1.c
  892a78a2f463c2ae63c197a54d890edd  gcc/testsuite/gcc.target/i386/avx512f-vpsubq-2.c
! 082afbf01b8f4ee6420f03fd16c03ba1  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-1.c
  f70753b812e1ff98107528aed14bde25  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-2.c
! cff33e591b8e0d2267d1c423c025218d  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-3.c
! b5189cbdff8fcbfe1d7d83a17277f9ec  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-4.c
! ff8be1a5c0ded1f2a719600b09544dd8  gcc/testsuite/gcc.target/i386/avx512f-vpternlogd-5.c
! e943657e3af9300fd9eb37997d292595  gcc/testsuite/gcc.target/i386/avx512f-vpternlogq-1.c
  cca6985677715d67c7087a72745dfe41  gcc/testsuite/gcc.target/i386/avx512f-vpternlogq-2.c
+ 3a3236613a7de5904cb25dd0241d8b5d  gcc/testsuite/gcc.target/i386/avx512f-vpternlogq-3.c
  9108d53dbbe9829997fdb1b42c0e814e  gcc/testsuite/gcc.target/i386/avx512f-vptestmd-1.c
  3abaed9f3f815175a2e983a5f05c9111  gcc/testsuite/gcc.target/i386/avx512f-vptestmd-2.c
  7f59e5a3275dd02a53ec70903ee1be05  gcc/testsuite/gcc.target/i386/avx512f-vptestmq-1.c
*************** bd345afb9ab5c80981d21fb74ec70404  gcc/te
*** 71836,71847 ****
  57924217470838a4212303a01c9f8b5d  gcc/testsuite/gcc.target/i386/avx512f_evex_reg_asm-2.c
  94bcc753fbe9ed0156fa438d9f5b3347  gcc/testsuite/gcc.target/i386/avx512fp16-10a.c
  43abcf27567a0f3189ad9cbd242c1ddc  gcc/testsuite/gcc.target/i386/avx512fp16-10b.c
! 0ff89b0929add3804f7d6ff2e96ceee0  gcc/testsuite/gcc.target/i386/avx512fp16-11a.c
  c8546919944aa8e519a6d7c6609e35a2  gcc/testsuite/gcc.target/i386/avx512fp16-11b.c
  45998199c9d05373b91b703c489b1dab  gcc/testsuite/gcc.target/i386/avx512fp16-12a.c
  14758831e35f6207f1d8a401d5965ad7  gcc/testsuite/gcc.target/i386/avx512fp16-12b.c
! 6a274bd35235abca23d28d21f2d21394  gcc/testsuite/gcc.target/i386/avx512fp16-13.c
! 0548680cb90baddc2f4289b1daddf2d7  gcc/testsuite/gcc.target/i386/avx512fp16-14.c
  5105733c3744e643e48e7e479046d119  gcc/testsuite/gcc.target/i386/avx512fp16-1a.c
  e5318fffe1e2b5367902db745c03823d  gcc/testsuite/gcc.target/i386/avx512fp16-1b.c
  d001e45e400153dbb11a32a6d08d03fa  gcc/testsuite/gcc.target/i386/avx512fp16-1c.c
--- 76565,76576 ----
  57924217470838a4212303a01c9f8b5d  gcc/testsuite/gcc.target/i386/avx512f_evex_reg_asm-2.c
  94bcc753fbe9ed0156fa438d9f5b3347  gcc/testsuite/gcc.target/i386/avx512fp16-10a.c
  43abcf27567a0f3189ad9cbd242c1ddc  gcc/testsuite/gcc.target/i386/avx512fp16-10b.c
! e0b4781ba3e58056c22bc6ed34bf9300  gcc/testsuite/gcc.target/i386/avx512fp16-11a.c
  c8546919944aa8e519a6d7c6609e35a2  gcc/testsuite/gcc.target/i386/avx512fp16-11b.c
  45998199c9d05373b91b703c489b1dab  gcc/testsuite/gcc.target/i386/avx512fp16-12a.c
  14758831e35f6207f1d8a401d5965ad7  gcc/testsuite/gcc.target/i386/avx512fp16-12b.c
! 1eb68d7742137270ee20edec26715aaf  gcc/testsuite/gcc.target/i386/avx512fp16-13.c
! c5c6d65e4830ae5dec75a681e4c32731  gcc/testsuite/gcc.target/i386/avx512fp16-14.c
  5105733c3744e643e48e7e479046d119  gcc/testsuite/gcc.target/i386/avx512fp16-1a.c
  e5318fffe1e2b5367902db745c03823d  gcc/testsuite/gcc.target/i386/avx512fp16-1b.c
  d001e45e400153dbb11a32a6d08d03fa  gcc/testsuite/gcc.target/i386/avx512fp16-1c.c
*************** e79f5471eaed0e7487f965113398d268  gcc/te
*** 71872,71887 ****
  b9ed1e48c2076ab8bd9adfc96519f6d4  gcc/testsuite/gcc.target/i386/avx512fp16-builtin_shuffle-1.c
  262fe61d867c3bf99c20653180a2b0e0  gcc/testsuite/gcc.target/i386/avx512fp16-complex-constraints.c
  b087aa309dcb182d79cfcb79c9dd7901  gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c
! 5803090f97de94af7dd3164c50bd1adc  gcc/testsuite/gcc.target/i386/avx512fp16-conjugation-1.c
  62ba9a2c64517f9e64fd9cb6e220a7bc  gcc/testsuite/gcc.target/i386/avx512fp16-dest-false-dep-for-glc.c
  970bc47c225c13b0c28a2f329533ddb7  gcc/testsuite/gcc.target/i386/avx512fp16-floatvnhf.c
  ac477f1c32fad10fc7a0406189e98ac6  gcc/testsuite/gcc.target/i386/avx512fp16-fma-1.c
  834dadc5dea756bfe689d52ed2ec58a6  gcc/testsuite/gcc.target/i386/avx512fp16-helper.h
! b27abeb08b864284971b1aba8ced6b22  gcc/testsuite/gcc.target/i386/avx512fp16-neg-1a.c
  7a47cd88a25f16e65dda4800001d8f07  gcc/testsuite/gcc.target/i386/avx512fp16-neg-1b.c
  a0059c72ee5f8a3b553da9a85e2e8686  gcc/testsuite/gcc.target/i386/avx512fp16-pr101846.c
! 2e40da5c6cc066c5c3fc6534287c3bb1  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-1.c
! ddf42476c9bd487716414f58d3c10527  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-2.c
  b5d5082a6d865b8b24dbefc908fafb2d  gcc/testsuite/gcc.target/i386/avx512fp16-pr94680.c
  0be682c7ab6c675fa46f84d592d76785  gcc/testsuite/gcc.target/i386/avx512fp16-recip-1.c
  38a807ac8fade227ea34604df002fb5f  gcc/testsuite/gcc.target/i386/avx512fp16-recip-2.c
--- 76601,76616 ----
  b9ed1e48c2076ab8bd9adfc96519f6d4  gcc/testsuite/gcc.target/i386/avx512fp16-builtin_shuffle-1.c
  262fe61d867c3bf99c20653180a2b0e0  gcc/testsuite/gcc.target/i386/avx512fp16-complex-constraints.c
  b087aa309dcb182d79cfcb79c9dd7901  gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c
! ce3ec1a0fcc73a326217d28784f3c8c7  gcc/testsuite/gcc.target/i386/avx512fp16-conjugation-1.c
  62ba9a2c64517f9e64fd9cb6e220a7bc  gcc/testsuite/gcc.target/i386/avx512fp16-dest-false-dep-for-glc.c
  970bc47c225c13b0c28a2f329533ddb7  gcc/testsuite/gcc.target/i386/avx512fp16-floatvnhf.c
  ac477f1c32fad10fc7a0406189e98ac6  gcc/testsuite/gcc.target/i386/avx512fp16-fma-1.c
  834dadc5dea756bfe689d52ed2ec58a6  gcc/testsuite/gcc.target/i386/avx512fp16-helper.h
! cd26c5b9b2d79ae190b4c24e39a2ac2e  gcc/testsuite/gcc.target/i386/avx512fp16-neg-1a.c
  7a47cd88a25f16e65dda4800001d8f07  gcc/testsuite/gcc.target/i386/avx512fp16-neg-1b.c
  a0059c72ee5f8a3b553da9a85e2e8686  gcc/testsuite/gcc.target/i386/avx512fp16-pr101846.c
! 2e18bcbca55b5eaa82a1fe477d2bf780  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-1.c
! a89ea8a687198b0e470fb31d938c2a3f  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-2.c
  b5d5082a6d865b8b24dbefc908fafb2d  gcc/testsuite/gcc.target/i386/avx512fp16-pr94680.c
  0be682c7ab6c675fa46f84d592d76785  gcc/testsuite/gcc.target/i386/avx512fp16-recip-1.c
  38a807ac8fade227ea34604df002fb5f  gcc/testsuite/gcc.target/i386/avx512fp16-recip-2.c
*************** b5d5082a6d865b8b24dbefc908fafb2d  gcc/te
*** 71890,71896 ****
  fa7a7d92ce80bfb7f5faf7e81addb4ce  gcc/testsuite/gcc.target/i386/avx512fp16-reduce-op-3.c
  53ae782dbc5f04df9f8a5b4a2e2fb00e  gcc/testsuite/gcc.target/i386/avx512fp16-scalar-bitwise-1a.c
  aa19ef379fcd517ef558b68d6edcf2bc  gcc/testsuite/gcc.target/i386/avx512fp16-scalar-bitwise-1b.c
! aed11c0ceee2770d533472f500f494b5  gcc/testsuite/gcc.target/i386/avx512fp16-set1-pch-1a.c
  074645257829b2e38f8024239f50acc1  gcc/testsuite/gcc.target/i386/avx512fp16-set1-pch-1b.c
  618be9926cc98978aa8cc17b38ab10a7  gcc/testsuite/gcc.target/i386/avx512fp16-trunc-extendvnhf.c
  d8fdbf8479f340e4dada9fd9d4d4649a  gcc/testsuite/gcc.target/i386/avx512fp16-trunchf.c
--- 76619,76625 ----
  fa7a7d92ce80bfb7f5faf7e81addb4ce  gcc/testsuite/gcc.target/i386/avx512fp16-reduce-op-3.c
  53ae782dbc5f04df9f8a5b4a2e2fb00e  gcc/testsuite/gcc.target/i386/avx512fp16-scalar-bitwise-1a.c
  aa19ef379fcd517ef558b68d6edcf2bc  gcc/testsuite/gcc.target/i386/avx512fp16-scalar-bitwise-1b.c
! c0a0a2803fda45caed144dec09e62c7b  gcc/testsuite/gcc.target/i386/avx512fp16-set1-pch-1a.c
  074645257829b2e38f8024239f50acc1  gcc/testsuite/gcc.target/i386/avx512fp16-set1-pch-1b.c
  618be9926cc98978aa8cc17b38ab10a7  gcc/testsuite/gcc.target/i386/avx512fp16-trunc-extendvnhf.c
  d8fdbf8479f340e4dada9fd9d4d4649a  gcc/testsuite/gcc.target/i386/avx512fp16-trunchf.c
*************** baf31fdbb66bd1db60ed18831c7eb2a8  gcc/te
*** 72037,72043 ****
  9b38556b6dac137c53ce931f1f296cca  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1a.c
  c871215766439133615180b4861bbc02  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1b.c
  e5f342115c72c6f189324bbb8ba8498a  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c
! 02d365e89418c102e31b90036e117273  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1b.c
  43f3189c0a0cc0109dba0b81ab99fb0a  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c
  3e23e295b389d5fc7973bfc73cd8d235  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1b.c
  a3f1acec8cc23029e37e44877fc68d8f  gcc/testsuite/gcc.target/i386/avx512fp16-vgetexpph-1a.c
--- 76766,76773 ----
  9b38556b6dac137c53ce931f1f296cca  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1a.c
  c871215766439133615180b4861bbc02  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1b.c
  e5f342115c72c6f189324bbb8ba8498a  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c
! 432b9a4d4d441c5dfa6b2305508a8b40  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1b.c
! 1ef328cbfb02d1f2fd3e0e62d986ebfc  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1c.c
  43f3189c0a0cc0109dba0b81ab99fb0a  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c
  3e23e295b389d5fc7973bfc73cd8d235  gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1b.c
  a3f1acec8cc23029e37e44877fc68d8f  gcc/testsuite/gcc.target/i386/avx512fp16-vgetexpph-1a.c
*************** f9617e7125bd55d1d523a1913c295286  gcc/te
*** 72059,72065 ****
  0eed93df5e6c3d20d12a2ff1c0dd2860  gcc/testsuite/gcc.target/i386/avx512fp16-vmovsh-1a.c
  5814340d176783a15ae31a06c5697ea1  gcc/testsuite/gcc.target/i386/avx512fp16-vmovsh-1b.c
  5bc7907d63b59c7fc0efd2bb1011327a  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1a.c
! 3b034becae983ec519fa6fae9c2dbdf9  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c
  380d63a8b2bd8cba3072e1daa4f006f9  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-2a.c
  eb32b33f0df92008c6d15d9cd102ad07  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-2b.c
  c2b8ad6e5aa2d5ac597249334de18936  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-3a.c
--- 76789,76795 ----
  0eed93df5e6c3d20d12a2ff1c0dd2860  gcc/testsuite/gcc.target/i386/avx512fp16-vmovsh-1a.c
  5814340d176783a15ae31a06c5697ea1  gcc/testsuite/gcc.target/i386/avx512fp16-vmovsh-1b.c
  5bc7907d63b59c7fc0efd2bb1011327a  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1a.c
! 946114606b9f53efbdd1f062632d1fdf  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c
  380d63a8b2bd8cba3072e1daa4f006f9  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-2a.c
  eb32b33f0df92008c6d15d9cd102ad07  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-2b.c
  c2b8ad6e5aa2d5ac597249334de18936  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-3a.c
*************** a1f4b75339c19727d3758c22b23b84a4  gcc/te
*** 72101,72114 ****
  fcf70bfc3c79dd61e55358d5bad50223  gcc/testsuite/gcc.target/i386/avx512fp16-xorsign-1.c
  9124b923004bf790ed4da1d0c675d320  gcc/testsuite/gcc.target/i386/avx512fp16vl-builtin-sqrt-1.c
  5e4929aedf1814bce1f01dc3cbc59c66  gcc/testsuite/gcc.target/i386/avx512fp16vl-complex-broadcast-1.c
! 9cdcf3ee0e93903fd6873cc07ff469e9  gcc/testsuite/gcc.target/i386/avx512fp16vl-conjugation-1.c
  a64a7d13af53410d9026bedcc7a9d6fb  gcc/testsuite/gcc.target/i386/avx512fp16vl-dest-false-dep-for-glc.c
  0115aca004331ab70002aa4d49e6f20d  gcc/testsuite/gcc.target/i386/avx512fp16vl-fma-1.c
  d22f16d05588a4dd223b55a41aab4cbd  gcc/testsuite/gcc.target/i386/avx512fp16vl-fma-vectorize-1.c
! a027436e0f79d5e96a77d59f11494989  gcc/testsuite/gcc.target/i386/avx512fp16vl-neg-1a.c
  80a65d839ffdd73607455f0af1525ebf  gcc/testsuite/gcc.target/i386/avx512fp16vl-neg-1b.c
  606286d14be2f47b8b4856695b10c4a0  gcc/testsuite/gcc.target/i386/avx512fp16vl-reduce-op-1.c
! bd3b529925e98454f166219923e494f2  gcc/testsuite/gcc.target/i386/avx512fp16vl-set1-pch-1a.c
  1fc34d1a52a45b56f8dd136cdf04f415  gcc/testsuite/gcc.target/i386/avx512fp16vl-set1-pch-1b.c
  4c8fe2c0f31819229e27d8797cd2496b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-1.c
  b46a427bb17a20b520a7db7ce4250c1b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-2.c
--- 76831,76844 ----
  fcf70bfc3c79dd61e55358d5bad50223  gcc/testsuite/gcc.target/i386/avx512fp16-xorsign-1.c
  9124b923004bf790ed4da1d0c675d320  gcc/testsuite/gcc.target/i386/avx512fp16vl-builtin-sqrt-1.c
  5e4929aedf1814bce1f01dc3cbc59c66  gcc/testsuite/gcc.target/i386/avx512fp16vl-complex-broadcast-1.c
! 721e2158f90fceedbbfa158cc64130e5  gcc/testsuite/gcc.target/i386/avx512fp16vl-conjugation-1.c
  a64a7d13af53410d9026bedcc7a9d6fb  gcc/testsuite/gcc.target/i386/avx512fp16vl-dest-false-dep-for-glc.c
  0115aca004331ab70002aa4d49e6f20d  gcc/testsuite/gcc.target/i386/avx512fp16vl-fma-1.c
  d22f16d05588a4dd223b55a41aab4cbd  gcc/testsuite/gcc.target/i386/avx512fp16vl-fma-vectorize-1.c
! 44f1d5d4e584feed2c3a7c46b31f4824  gcc/testsuite/gcc.target/i386/avx512fp16vl-neg-1a.c
  80a65d839ffdd73607455f0af1525ebf  gcc/testsuite/gcc.target/i386/avx512fp16vl-neg-1b.c
  606286d14be2f47b8b4856695b10c4a0  gcc/testsuite/gcc.target/i386/avx512fp16vl-reduce-op-1.c
! 22b819018cdec21019da19c726526bea  gcc/testsuite/gcc.target/i386/avx512fp16vl-set1-pch-1a.c
  1fc34d1a52a45b56f8dd136cdf04f415  gcc/testsuite/gcc.target/i386/avx512fp16vl-set1-pch-1b.c
  4c8fe2c0f31819229e27d8797cd2496b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-1.c
  b46a427bb17a20b520a7db7ce4250c1b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-2.c
*************** ae1ccb7e2041f3482999d81701ee97ed  gcc/te
*** 72215,72241 ****
  44f5fa114a15245b56519092be1d7465  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1a.c
  5a753e738033b0a079fb2f710c5fd40a  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1b.c
  3b96fd792360e8ef04bfaf7109ce2873  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-2.c
- 87408b6fabc03f9b2965a64d8dbbc931  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c
- 2da0410e86ccbdaf3fcdf035ac051664  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c
- 2891868a7bcdf678e13efd22873998a4  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c
- 23f41b10a9b2a252bd764fbb22d29eab  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c
- 2cee685055038a5a0a64826e29104467  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c
- 765e99f58774175dfe6250fe3c0dfba1  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c
- 86f822a5835ad0c7c10eeade84e087e6  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c
- c9a39f3cfd5358c60301c6eee6957ef2  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c
- fc332beb7a8591457ab8e039ec91656d  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
- 478f73de8561e1b72d68179e18f14db9  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
- 9b435170c15a34059a1b2700101bf153  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
- 04a6f5361fe6d138e5d970c90df1e995  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
- cad69bdbd8e1a72db618258ded6972a1  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
- ef73b77fa34f246ffc0e06ae16f1047c  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
- 8272d2b574625d2bb486b4bbddd0a98e  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
- a398ee1e6aa4eb29c087c2e5ab953f3a  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
  7a89da980943c10241c8fae92f56405f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-1.c
  cddb99c63e0e76bfa9a96f8ad9706542  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-2.c
  22e777ee742eabb49ca9c4bf3f1ab383  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-1.c
  c75f41a84b0ff9e1454ea517888cf42e  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-2.c
! 0f36f580fc850a6976dbbe6eaa98f930  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-1.c
  901b5f592de42b8641315e7a0e470c78  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c
  da943fec8529ab4219ae92fa7701f4f3  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c
  b3bb92860a7a7725c03afa6bd022047f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c
--- 76945,76955 ----
  44f5fa114a15245b56519092be1d7465  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1a.c
  5a753e738033b0a079fb2f710c5fd40a  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1b.c
  3b96fd792360e8ef04bfaf7109ce2873  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-2.c
  7a89da980943c10241c8fae92f56405f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-1.c
  cddb99c63e0e76bfa9a96f8ad9706542  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-2.c
  22e777ee742eabb49ca9c4bf3f1ab383  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-1.c
  c75f41a84b0ff9e1454ea517888cf42e  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-2.c
! 88eabef46bb56e8eb54c172ef7d2eedd  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-1.c
  901b5f592de42b8641315e7a0e470c78  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c
  da943fec8529ab4219ae92fa7701f4f3  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c
  b3bb92860a7a7725c03afa6bd022047f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c
*************** c6cc01bcba78b07acbc0c97f8ecffc30  gcc/te
*** 72258,72268 ****
  660e32b26a158d938edc524a1d9fead4  gcc/testsuite/gcc.target/i386/avx512vl-blendv-1.c
  177293e898edfd6fd1acc72f09e22811  gcc/testsuite/gcc.target/i386/avx512vl-blendv-2.c
  beaab312a023e59e3ac833e2e5b12cf7  gcc/testsuite/gcc.target/i386/avx512vl-blendv-3.c
! 58855938a6512763508e8bf8d2bd182e  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-1.c
  bcc0041bf4882e8ffc439974df32bf6a  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-2.c
  fa2b0b2963dda19be4f2c7496960f9d1  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-3.c
  7ca815481d1a25c18f3e474b0ace8bca  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-4.c
! c9f45f92f04fe2c786553ee2c04df202  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-5.c
  205513778704d9cadedab6e62b5b5621  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-6.c
  99ab8f6b1890ccfcd14f1ea1cc6ca1c8  gcc/testsuite/gcc.target/i386/avx512vl-check.h
  0617dd4b8fef3764392d3723a75e2c8b  gcc/testsuite/gcc.target/i386/avx512vl-concatv2di-1.c
--- 76972,76982 ----
  660e32b26a158d938edc524a1d9fead4  gcc/testsuite/gcc.target/i386/avx512vl-blendv-1.c
  177293e898edfd6fd1acc72f09e22811  gcc/testsuite/gcc.target/i386/avx512vl-blendv-2.c
  beaab312a023e59e3ac833e2e5b12cf7  gcc/testsuite/gcc.target/i386/avx512vl-blendv-3.c
! e922d21688baed9860688ed664860fbd  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-1.c
  bcc0041bf4882e8ffc439974df32bf6a  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-2.c
  fa2b0b2963dda19be4f2c7496960f9d1  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-3.c
  7ca815481d1a25c18f3e474b0ace8bca  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-4.c
! b3301869110b12f5c4b23cfb9d100a2a  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-5.c
  205513778704d9cadedab6e62b5b5621  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-6.c
  99ab8f6b1890ccfcd14f1ea1cc6ca1c8  gcc/testsuite/gcc.target/i386/avx512vl-check.h
  0617dd4b8fef3764392d3723a75e2c8b  gcc/testsuite/gcc.target/i386/avx512vl-concatv2di-1.c
*************** dc7a6d4cbaa7836887ed3c7b6cbc50f2  gcc/te
*** 72967,72975 ****
  75d9ce991cfb8a9e6db2246de0128673  gcc/testsuite/gcc.target/i386/avx512vl-vpsubusb-2.c
  4774263d3a4d45862687d6028e9c5880  gcc/testsuite/gcc.target/i386/avx512vl-vpsubusw-2.c
  c321c52eb17786846f7aaaf65f51c13a  gcc/testsuite/gcc.target/i386/avx512vl-vpsubw-2.c
! feb04d21d63773c5ecef386b799243af  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogd-1.c
  ac6c7bc2ee7675dc70020738c525bf7d  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogd-2.c
! ab8c4eaba4ab18eaad12510c5062ff9d  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogq-1.c
  059629a7d865f0a7c9ee0875d5d00f0c  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogq-2.c
  ade7f003c13ecf8ff0246939215f0e67  gcc/testsuite/gcc.target/i386/avx512vl-vptestmb-2.c
  677d94288d058fd718c84cc202029a07  gcc/testsuite/gcc.target/i386/avx512vl-vptestmd-1.c
--- 77681,77689 ----
  75d9ce991cfb8a9e6db2246de0128673  gcc/testsuite/gcc.target/i386/avx512vl-vpsubusb-2.c
  4774263d3a4d45862687d6028e9c5880  gcc/testsuite/gcc.target/i386/avx512vl-vpsubusw-2.c
  c321c52eb17786846f7aaaf65f51c13a  gcc/testsuite/gcc.target/i386/avx512vl-vpsubw-2.c
! 812d31a8e2ce59c3fb9a700d29dc0b36  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogd-1.c
  ac6c7bc2ee7675dc70020738c525bf7d  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogd-2.c
! 906f8a75a3c99082cf26f790ea524e80  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogq-1.c
  059629a7d865f0a7c9ee0875d5d00f0c  gcc/testsuite/gcc.target/i386/avx512vl-vpternlogq-2.c
  ade7f003c13ecf8ff0246939215f0e67  gcc/testsuite/gcc.target/i386/avx512vl-vptestmb-2.c
  677d94288d058fd718c84cc202029a07  gcc/testsuite/gcc.target/i386/avx512vl-vptestmd-1.c
*************** fb205e0be8fba9246cc83e41df27e2d7  gcc/te
*** 73058,73068 ****
  12caadcc614ce695a59fb81977248f92  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-d-2.c
  16de2ede7b14609816bb549d10fff2a3  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-q-2.c
  a6b046c83544292b7291932b990bbd8c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-w-2.c
  e8b40df1b29caa7e7a5ad3533f175e18  gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c
  3b56096e93a13615a8ca272bc3ed8e6c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr85832.c
  b67b9c14f28f9a4e5c234829ea1ba329  gcc/testsuite/gcc.target/i386/avx512vlbw-pr94438.c
  e5d08d8fd0263c771031df0975bb13dd  gcc/testsuite/gcc.target/i386/avx512vlbw-reduce-op-1.c
! a5154c35da99e437d07d50f9d09efde2  gcc/testsuite/gcc.target/i386/avx512vlfp16-11a.c
  9c6b6e093a081af180fd337112cf2708  gcc/testsuite/gcc.target/i386/avx512vlfp16-11b.c
  d54fd157e5b9989a9c4a4011c92a6b85  gcc/testsuite/gcc.target/i386/avx512vnnivl-builtin.c
  3884f1876df0401f793a60b000e61533  gcc/testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1a.c
--- 77772,77783 ----
  12caadcc614ce695a59fb81977248f92  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-d-2.c
  16de2ede7b14609816bb549d10fff2a3  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-q-2.c
  a6b046c83544292b7291932b990bbd8c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-w-2.c
+ 9fb88a0a6b6b0095d4aa34f8d0c2ca71  gcc/testsuite/gcc.target/i386/avx512vlbw-pr119357.c
  e8b40df1b29caa7e7a5ad3533f175e18  gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c
  3b56096e93a13615a8ca272bc3ed8e6c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr85832.c
  b67b9c14f28f9a4e5c234829ea1ba329  gcc/testsuite/gcc.target/i386/avx512vlbw-pr94438.c
  e5d08d8fd0263c771031df0975bb13dd  gcc/testsuite/gcc.target/i386/avx512vlbw-reduce-op-1.c
! 1554175ff6e9bd27846ed9176804b99f  gcc/testsuite/gcc.target/i386/avx512vlfp16-11a.c
  9c6b6e093a081af180fd337112cf2708  gcc/testsuite/gcc.target/i386/avx512vlfp16-11b.c
  d54fd157e5b9989a9c4a4011c92a6b85  gcc/testsuite/gcc.target/i386/avx512vnnivl-builtin.c
  3884f1876df0401f793a60b000e61533  gcc/testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1a.c
*************** d54fd157e5b9989a9c4a4011c92a6b85  gcc/te
*** 73072,73080 ****
  1fd321b2abab51ce6e3b2ad72c5546ba  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-pr97770-1.c
  21e576e3034e9bebfd0582a15acd4af4  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-pr97770-2.c
  4ee014789b932f3aea1da6e759de7e75  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c
! 848d7f2507183d53d35a08030c471c3e  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd.c
  d8084141e791dfdf62ee3dc66173d458  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c
! 776a22660c657e8df374084201fce5f6  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq.c
  625af58a48cf30c77cdd2892f64c3d9c  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-pr97770-1.c
  bd110cc98a6c83e36f31c6c68e28123c  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c
  17d28bf7cef176269dc5873687b13c9f  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c
--- 77787,77795 ----
  1fd321b2abab51ce6e3b2ad72c5546ba  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-pr97770-1.c
  21e576e3034e9bebfd0582a15acd4af4  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-pr97770-2.c
  4ee014789b932f3aea1da6e759de7e75  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c
! ab122ee7ce1c03e4bdd7a434fd66b9e1  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd.c
  d8084141e791dfdf62ee3dc66173d458  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c
! 7e69585498497aecb29190c518c1f2d9  gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq.c
  625af58a48cf30c77cdd2892f64c3d9c  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-pr97770-1.c
  bd110cc98a6c83e36f31c6c68e28123c  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c
  17d28bf7cef176269dc5873687b13c9f  gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c
*************** bd110cc98a6c83e36f31c6c68e28123c  gcc/te
*** 73082,73088 ****
  96da42bfb9b55e417c89693514ae20a6  gcc/testsuite/gcc.target/i386/avxfp-2.c
  886ec1208d19dfac1038071807c2c23b  gcc/testsuite/gcc.target/i386/avxneconvert-1.c
  51a2ee7ea5f4c0b592af239653345942  gcc/testsuite/gcc.target/i386/avxvnni-builtin.c
! 5480b1942b0810ee651f8ef449c04df2  gcc/testsuite/gcc.target/i386/avxvnniint16-1.c
  28ff6095daf554426152911c1b2ebb26  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsud-2.c
  06aaf72104214cf78fcac2e4b999b459  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsuds-2.c
  fc8345bf38f57e092f1ab4e0bf32968e  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwusd-2.c
--- 77797,77804 ----
  96da42bfb9b55e417c89693514ae20a6  gcc/testsuite/gcc.target/i386/avxfp-2.c
  886ec1208d19dfac1038071807c2c23b  gcc/testsuite/gcc.target/i386/avxneconvert-1.c
  51a2ee7ea5f4c0b592af239653345942  gcc/testsuite/gcc.target/i386/avxvnni-builtin.c
! 9c556611b88ab1efcc475fd5e66f7b71  gcc/testsuite/gcc.target/i386/avxvnniint16-1.c
! 7ae510fc62a4cc46b14ad3aadb1184fc  gcc/testsuite/gcc.target/i386/avxvnniint16-builtin.c
  28ff6095daf554426152911c1b2ebb26  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsud-2.c
  06aaf72104214cf78fcac2e4b999b459  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsuds-2.c
  fc8345bf38f57e092f1ab4e0bf32968e  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwusd-2.c
*************** b20c30629ea4fe848f35ef3370c0cc0f  gcc/te
*** 73090,73095 ****
--- 77806,77812 ----
  b630886c3b900f6a43e9de810bb4af31  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwuud-2.c
  ad3fa32444d440b5a3c0f49047e5be66  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwuuds-2.c
  206e272a2b52f2dcded8941856eceb15  gcc/testsuite/gcc.target/i386/avxvnniint8-1.c
+ 8bd983728e818f89c664953e79da3c80  gcc/testsuite/gcc.target/i386/avxvnniint8-builtin.c
  9962104b5a5c9aaab63179604e9068d9  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbssd-2.c
  dbc1b41820399022ea74a49b480fd874  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbssds-2.c
  84151de4d3d62811b81006e4a89c4c97  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbsud-2.c
*************** e1228efcdb6bf353fa7c28bd12b9b98c  gcc/te
*** 73108,73113 ****
--- 77825,77833 ----
  be2f67968aaa0963cbb0968b7acbd1d6  gcc/testsuite/gcc.target/i386/blendv-1.c
  b12d3a3a3f5688f6e3fbce7f50575ff0  gcc/testsuite/gcc.target/i386/blendv-2.c
  1c58ca4f3058a5166d3253b494a9587f  gcc/testsuite/gcc.target/i386/blendv-3.c
+ edf779c386177f976d638ea8557d63c2  gcc/testsuite/gcc.target/i386/blsi.c
+ c862ce5790f8ab47fc3fc8f61570d634  gcc/testsuite/gcc.target/i386/blsmsk.c
+ c4d6545616b9db68573601d178bfef3e  gcc/testsuite/gcc.target/i386/blsr.c
  d48291e93124a5754c399a0d42b8b4b2  gcc/testsuite/gcc.target/i386/bmi-1.c
  61ff83566b9a04f15ec25ca39e4f2165  gcc/testsuite/gcc.target/i386/bmi-2.c
  ce48de8f7f303fa84891bd7841005fb1  gcc/testsuite/gcc.target/i386/bmi-3.c
*************** b407509e91ada069c88bb25df10261f2  gcc/te
*** 73141,73146 ****
--- 77861,77867 ----
  89e5e49acc2dd5c296b6f32cc9af9e5e  gcc/testsuite/gcc.target/i386/bmi-blsr-2.c
  be3fee1889ad65677a041f24f858b1cb  gcc/testsuite/gcc.target/i386/bmi-blsr-2a.c
  4b8229596d6eeaa03a4011846a02cd4a  gcc/testsuite/gcc.target/i386/bmi-check.h
+ e7a531d7b228712b8efd31098ee9cdd4  gcc/testsuite/gcc.target/i386/bmi-pr116287.c
  837bc321452d830cdca00be675a80d02  gcc/testsuite/gcc.target/i386/bmi-tzcnt-1.c
  bddf7c2fb14fca97f8ff604d99aa87eb  gcc/testsuite/gcc.target/i386/bmi-tzcnt-1a.c
  d3a83e902d535bfb6c532e16d5b3622e  gcc/testsuite/gcc.target/i386/bmi-tzcnt-2.c
*************** c7ce604b365a1dabeac828385fadac82  gcc/te
*** 73172,73178 ****
  07f0339fdff4b3fe5bfd2ef2568cf1ff  gcc/testsuite/gcc.target/i386/bmi2-pext64-1.c
  80e1b157bf4698a4c063a051d260de86  gcc/testsuite/gcc.target/i386/bmi2-pext64-1a.c
  2a224509096d4707814ee1803ac0587b  gcc/testsuite/gcc.target/i386/bmi2-pr112518.c
! 16c0fe6e9e87d680c03e01d692eca239  gcc/testsuite/gcc.target/i386/bmi2-pr112526.c
  b3c8283dbd8e5f9b716e300034584eb1  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1.c
  43e2ea585c6afa59c6fc24b1d5778b5f  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1a.c
  715c6fdea5af863f17366b07b0976147  gcc/testsuite/gcc.target/i386/bmi2-rorx64-1.c
--- 77893,77900 ----
  07f0339fdff4b3fe5bfd2ef2568cf1ff  gcc/testsuite/gcc.target/i386/bmi2-pext64-1.c
  80e1b157bf4698a4c063a051d260de86  gcc/testsuite/gcc.target/i386/bmi2-pext64-1a.c
  2a224509096d4707814ee1803ac0587b  gcc/testsuite/gcc.target/i386/bmi2-pr112518.c
! 4928074bf58116deb02c85662ff5a1d2  gcc/testsuite/gcc.target/i386/bmi2-pr112526.c
! 7bbc1a5c683010fceddd3ea5a04ee3a5  gcc/testsuite/gcc.target/i386/bmi2-pr116287.c
  b3c8283dbd8e5f9b716e300034584eb1  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1.c
  43e2ea585c6afa59c6fc24b1d5778b5f  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1a.c
  715c6fdea5af863f17366b07b0976147  gcc/testsuite/gcc.target/i386/bmi2-rorx64-1.c
*************** aa862ceda0d7a76c1857d703604c7cf7  gcc/te
*** 73213,73219 ****
  c9f542098c7044c5b8ac4b18be20d199  gcc/testsuite/gcc.target/i386/builtin-issignaling-1.c
  07c7b1b786ccb4b67484b353aa40d9c7  gcc/testsuite/gcc.target/i386/builtin-ucmp.c
  c8f91a97e3f4734a3595572bab26a3e7  gcc/testsuite/gcc.target/i386/builtin-unreachable.c
! 76c4c943017f93f9d8dcb14a59f81f01  gcc/testsuite/gcc.target/i386/builtin_target.c
  5502489cd371c4d2b333eee65153eec7  gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c
  4278b9cf349a82b327a03ec6fb2f2b43  gcc/testsuite/gcc.target/i386/cadd.c
  bcb496f917fb6dad4ebb0207c1334471  gcc/testsuite/gcc.target/i386/call-1.c
--- 77935,77941 ----
  c9f542098c7044c5b8ac4b18be20d199  gcc/testsuite/gcc.target/i386/builtin-issignaling-1.c
  07c7b1b786ccb4b67484b353aa40d9c7  gcc/testsuite/gcc.target/i386/builtin-ucmp.c
  c8f91a97e3f4734a3595572bab26a3e7  gcc/testsuite/gcc.target/i386/builtin-unreachable.c
! 55be2ef508fc3d2430c006ffb361f6b6  gcc/testsuite/gcc.target/i386/builtin_target.c
  5502489cd371c4d2b333eee65153eec7  gcc/testsuite/gcc.target/i386/builtin_thread_pointer.c
  4278b9cf349a82b327a03ec6fb2f2b43  gcc/testsuite/gcc.target/i386/cadd.c
  bcb496f917fb6dad4ebb0207c1334471  gcc/testsuite/gcc.target/i386/call-1.c
*************** c4aea5211e55d55e35576a08520c127a  gcc/te
*** 73278,73292 ****
  538ab6e8a06c514c724312c46aa4c439  gcc/testsuite/gcc.target/i386/cmov1.c
  fd0466945d68b3ee20c00b8032326680  gcc/testsuite/gcc.target/i386/cmov10.c
  df17ff93ab67a6d01ce2486635e9755d  gcc/testsuite/gcc.target/i386/cmov11.c
  f79e1b7782293fd20dff7bc711017061  gcc/testsuite/gcc.target/i386/cmov2.c
  7883df7ea3d35db7f224c99c7a13548e  gcc/testsuite/gcc.target/i386/cmov3.c
  6ad79381e3d28784a59b6568a64a4cf1  gcc/testsuite/gcc.target/i386/cmov4.c
  bcb4166cdef6b56e89b654dc4cb83a03  gcc/testsuite/gcc.target/i386/cmov5.c
! cac2b9b7f53564bb7d46f6d27ace3c37  gcc/testsuite/gcc.target/i386/cmov6.c
  9f954feff3ae35b2879ea55901eae8a4  gcc/testsuite/gcc.target/i386/cmov7.c
  f20d8e2e048a66edc93c5638ce3cd2d9  gcc/testsuite/gcc.target/i386/cmov8.c
  000f630353ad4e662a8123ff07c183c0  gcc/testsuite/gcc.target/i386/cmov9.c
  a7e5d6a57b645a1c832fad2acbb1016b  gcc/testsuite/gcc.target/i386/cmpccxadd-1.c
  7139cb8a2661e3fe95f654cff3bec6d7  gcc/testsuite/gcc.target/i386/cmpccxadd-2.c
  5f98340fec8fce3d9097abb98c65fb65  gcc/testsuite/gcc.target/i386/cmpti1.c
  657ffd70a2b88bad5845a02aad916083  gcc/testsuite/gcc.target/i386/cmpti2.c
--- 78000,78016 ----
  538ab6e8a06c514c724312c46aa4c439  gcc/testsuite/gcc.target/i386/cmov1.c
  fd0466945d68b3ee20c00b8032326680  gcc/testsuite/gcc.target/i386/cmov10.c
  df17ff93ab67a6d01ce2486635e9755d  gcc/testsuite/gcc.target/i386/cmov11.c
+ 0b3780e7eed3ce2672a89943b7c065da  gcc/testsuite/gcc.target/i386/cmov12.c
  f79e1b7782293fd20dff7bc711017061  gcc/testsuite/gcc.target/i386/cmov2.c
  7883df7ea3d35db7f224c99c7a13548e  gcc/testsuite/gcc.target/i386/cmov3.c
  6ad79381e3d28784a59b6568a64a4cf1  gcc/testsuite/gcc.target/i386/cmov4.c
  bcb4166cdef6b56e89b654dc4cb83a03  gcc/testsuite/gcc.target/i386/cmov5.c
! 51cc94a54257c3dac176a77838614f58  gcc/testsuite/gcc.target/i386/cmov6.c
  9f954feff3ae35b2879ea55901eae8a4  gcc/testsuite/gcc.target/i386/cmov7.c
  f20d8e2e048a66edc93c5638ce3cd2d9  gcc/testsuite/gcc.target/i386/cmov8.c
  000f630353ad4e662a8123ff07c183c0  gcc/testsuite/gcc.target/i386/cmov9.c
  a7e5d6a57b645a1c832fad2acbb1016b  gcc/testsuite/gcc.target/i386/cmpccxadd-1.c
+ eea712e5edcebcf47419b6442fd41bd4  gcc/testsuite/gcc.target/i386/cmpccxadd-1b.c
  7139cb8a2661e3fe95f654cff3bec6d7  gcc/testsuite/gcc.target/i386/cmpccxadd-2.c
  5f98340fec8fce3d9097abb98c65fb65  gcc/testsuite/gcc.target/i386/cmpti1.c
  657ffd70a2b88bad5845a02aad916083  gcc/testsuite/gcc.target/i386/cmpti2.c
*************** dcc5b76590328fd9f7c421fcb66d52d6  gcc/te
*** 73301,73306 ****
--- 78025,78031 ----
  f5b6283707f17b1db37120fd03d9ecf7  gcc/testsuite/gcc.target/i386/compress-float-387.c
  cbcaefb9dbd680dfef9e1236e2a43de1  gcc/testsuite/gcc.target/i386/compress-float-sse-pic.c
  5c5437c61e3cff49ed9ee564589092af  gcc/testsuite/gcc.target/i386/compress-float-sse.c
+ e79461c660176073bd564f687118971e  gcc/testsuite/gcc.target/i386/concatditi-1.c
  774af83131213db39d9e42e12d599674  gcc/testsuite/gcc.target/i386/cond_op_addsubmul_d-1.c
  045f395ba329d2cabca8b4804de2d5ab  gcc/testsuite/gcc.target/i386/cond_op_addsubmul_d-2.c
  c23a7078a9045469a3a582ea8b664860  gcc/testsuite/gcc.target/i386/cond_op_addsubmul_q-1.c
*************** c17dcb330b42bada168342242008b99c  gcc/te
*** 73389,73395 ****
  47d2b4328c009460a9b77a0a273daff7  gcc/testsuite/gcc.target/i386/double_mask_reg-1.c
  93f6822b252db75fcb99f54512f56fad  gcc/testsuite/gcc.target/i386/eh_return-1.c
  b7607fa5a42dea41bcc58aa8fbc1b696  gcc/testsuite/gcc.target/i386/eh_return-2.c
! e0d22ed73421320d7f3bb70305094f77  gcc/testsuite/gcc.target/i386/endbr_immediate.c
  5d5c47e004c3ebf97d2da3489e7c9992  gcc/testsuite/gcc.target/i386/enqcmd.c
  f71b6a7495b0645d1ecb8db1b2f1958b  gcc/testsuite/gcc.target/i386/enqcmds.c
  38e6b3fda33a09c739a549f0b0c62cf2  gcc/testsuite/gcc.target/i386/excess-precision-1.c
--- 78114,78120 ----
  47d2b4328c009460a9b77a0a273daff7  gcc/testsuite/gcc.target/i386/double_mask_reg-1.c
  93f6822b252db75fcb99f54512f56fad  gcc/testsuite/gcc.target/i386/eh_return-1.c
  b7607fa5a42dea41bcc58aa8fbc1b696  gcc/testsuite/gcc.target/i386/eh_return-2.c
! f44e46578ab2adcf3330b8344a827663  gcc/testsuite/gcc.target/i386/endbr_immediate.c
  5d5c47e004c3ebf97d2da3489e7c9992  gcc/testsuite/gcc.target/i386/enqcmd.c
  f71b6a7495b0645d1ecb8db1b2f1958b  gcc/testsuite/gcc.target/i386/enqcmds.c
  38e6b3fda33a09c739a549f0b0c62cf2  gcc/testsuite/gcc.target/i386/excess-precision-1.c
*************** f71b6a7495b0645d1ecb8db1b2f1958b  gcc/te
*** 73397,73403 ****
  01a277c71b6711426655672f406de87e  gcc/testsuite/gcc.target/i386/excess-precision-11.c
  73330d2ae88d97e297aa509d1434c88b  gcc/testsuite/gcc.target/i386/excess-precision-12.c
  9aec2858d7d8e4a0b46251f74b74be90  gcc/testsuite/gcc.target/i386/excess-precision-2.c
! 67ab49a3410a627e09fd6ff969d84637  gcc/testsuite/gcc.target/i386/excess-precision-3.c
  d32dfb8b0b8944719e8830b24eea1a9b  gcc/testsuite/gcc.target/i386/excess-precision-4.c
  84a950dfca30599ef0a85e6b79290e1c  gcc/testsuite/gcc.target/i386/excess-precision-5.c
  6fb5fed4a8e9a270eb075c3c8291ae21  gcc/testsuite/gcc.target/i386/excess-precision-6.c
--- 78122,78128 ----
  01a277c71b6711426655672f406de87e  gcc/testsuite/gcc.target/i386/excess-precision-11.c
  73330d2ae88d97e297aa509d1434c88b  gcc/testsuite/gcc.target/i386/excess-precision-12.c
  9aec2858d7d8e4a0b46251f74b74be90  gcc/testsuite/gcc.target/i386/excess-precision-2.c
! 4199e1bdf0a0c787c55c1e33ce90a532  gcc/testsuite/gcc.target/i386/excess-precision-3.c
  d32dfb8b0b8944719e8830b24eea1a9b  gcc/testsuite/gcc.target/i386/excess-precision-4.c
  84a950dfca30599ef0a85e6b79290e1c  gcc/testsuite/gcc.target/i386/excess-precision-5.c
  6fb5fed4a8e9a270eb075c3c8291ae21  gcc/testsuite/gcc.target/i386/excess-precision-6.c
*************** dbf3cc9b53b5e2d78a16330cbb9137e5  gcc/te
*** 73425,73431 ****
  5046881025e2cf5dcd3027d9718a2633  gcc/testsuite/gcc.target/i386/fentry.c
  48b7c3a611d7e2361c0d7fe315d26972  gcc/testsuite/gcc.target/i386/fentryname1.c
  25e6a100b24cebd0390edc44a4b95b46  gcc/testsuite/gcc.target/i386/fentryname2.c
! e929ba2759562dca3c31e9c489d9b6c7  gcc/testsuite/gcc.target/i386/fentryname3.c
  a62be9915528ee3d1da21515d09cbe48  gcc/testsuite/gcc.target/i386/ffsll-1.c
  660248d15f2531361adec4be67114071  gcc/testsuite/gcc.target/i386/fhardened-1.c
  5aa4af2da2069e7299930ba358943744  gcc/testsuite/gcc.target/i386/fhardened-2.c
--- 78150,78156 ----
  5046881025e2cf5dcd3027d9718a2633  gcc/testsuite/gcc.target/i386/fentry.c
  48b7c3a611d7e2361c0d7fe315d26972  gcc/testsuite/gcc.target/i386/fentryname1.c
  25e6a100b24cebd0390edc44a4b95b46  gcc/testsuite/gcc.target/i386/fentryname2.c
! 014bcb000b2ea0dabf25ce8cd2990afe  gcc/testsuite/gcc.target/i386/fentryname3.c
  a62be9915528ee3d1da21515d09cbe48  gcc/testsuite/gcc.target/i386/ffsll-1.c
  660248d15f2531361adec4be67114071  gcc/testsuite/gcc.target/i386/fhardened-1.c
  5aa4af2da2069e7299930ba358943744  gcc/testsuite/gcc.target/i386/fhardened-2.c
*************** de96937d95fca09a8202692cb42b1b5c  gcc/te
*** 73454,73466 ****
  a977081749abfb4842b771248ebec575  gcc/testsuite/gcc.target/i386/fma-fmsubaddXX.c
  a2223c46858f0a78046f7081f1a8db8d  gcc/testsuite/gcc.target/i386/fma-fnmaddXX.c
  0eb820dcbdc8d469608686562368e957  gcc/testsuite/gcc.target/i386/fma-fnmsubXX.c
  41d05944a41d2d54ba7f51df1beb87cc  gcc/testsuite/gcc.target/i386/fma3-builtin-2.c
  fca446fb8db4eb130017e79f6967b7fc  gcc/testsuite/gcc.target/i386/fma3-builtin.c
  98b87707fe8556bf09594d5fcd30383e  gcc/testsuite/gcc.target/i386/fma3-fma.c
  827859f0c7b22fea56330e0ae8574ad8  gcc/testsuite/gcc.target/i386/fma4-256-maccXX.c
  4c8a9ffaff93028b0e21e86ab3c4590a  gcc/testsuite/gcc.target/i386/fma4-256-msubXX.c
  f066dcb6aab976663c47d52fd92e92be  gcc/testsuite/gcc.target/i386/fma4-256-nmaccXX.c
! 563c518577c527bca3893edb607acab8  gcc/testsuite/gcc.target/i386/fma4-256-nmsubXX.c
  beb5dbebeeefdb779be2c6a08bbc586e  gcc/testsuite/gcc.target/i386/fma4-256-vector.c
  fab28eb86f92645faba058abe8856d6c  gcc/testsuite/gcc.target/i386/fma4-builtin-2.c
  57acd573d0d3c04e7254ff13e5c7a711  gcc/testsuite/gcc.target/i386/fma4-builtin.c
--- 78179,78192 ----
  a977081749abfb4842b771248ebec575  gcc/testsuite/gcc.target/i386/fma-fmsubaddXX.c
  a2223c46858f0a78046f7081f1a8db8d  gcc/testsuite/gcc.target/i386/fma-fnmaddXX.c
  0eb820dcbdc8d469608686562368e957  gcc/testsuite/gcc.target/i386/fma-fnmsubXX.c
+ 39b6f4e4ca48937662b5a71ad89d9abf  gcc/testsuite/gcc.target/i386/fma-pr116891.c
  41d05944a41d2d54ba7f51df1beb87cc  gcc/testsuite/gcc.target/i386/fma3-builtin-2.c
  fca446fb8db4eb130017e79f6967b7fc  gcc/testsuite/gcc.target/i386/fma3-builtin.c
  98b87707fe8556bf09594d5fcd30383e  gcc/testsuite/gcc.target/i386/fma3-fma.c
  827859f0c7b22fea56330e0ae8574ad8  gcc/testsuite/gcc.target/i386/fma4-256-maccXX.c
  4c8a9ffaff93028b0e21e86ab3c4590a  gcc/testsuite/gcc.target/i386/fma4-256-msubXX.c
  f066dcb6aab976663c47d52fd92e92be  gcc/testsuite/gcc.target/i386/fma4-256-nmaccXX.c
! 63bbea74fa22c4b95221462c50fec308  gcc/testsuite/gcc.target/i386/fma4-256-nmsubXX.c
  beb5dbebeeefdb779be2c6a08bbc586e  gcc/testsuite/gcc.target/i386/fma4-256-vector.c
  fab28eb86f92645faba058abe8856d6c  gcc/testsuite/gcc.target/i386/fma4-builtin-2.c
  57acd573d0d3c04e7254ff13e5c7a711  gcc/testsuite/gcc.target/i386/fma4-builtin.c
*************** d9eeb8c57ae6808e25354d703165bb83  gcc/te
*** 73470,73476 ****
  f2da98308ea381a2208f13bf91ba7c9b  gcc/testsuite/gcc.target/i386/fma4-maccXX.c
  9ca9f3790821197b222de722021d675d  gcc/testsuite/gcc.target/i386/fma4-msubXX.c
  125a8aaa6e6c4ccbfdc9e400be4ae637  gcc/testsuite/gcc.target/i386/fma4-nmaccXX.c
! 8e006b03217987183ea43c843f14c26a  gcc/testsuite/gcc.target/i386/fma4-nmsubXX.c
  4bd7ca874f34425b1f81e1fa81eaf9a3  gcc/testsuite/gcc.target/i386/fma4-vector-2.c
  f33ef9447efa694b2af1bb03f65a05af  gcc/testsuite/gcc.target/i386/fma4-vector.c
  396ab4a6da0dafe4762f4ace61659d81  gcc/testsuite/gcc.target/i386/fma_1.h
--- 78196,78202 ----
  f2da98308ea381a2208f13bf91ba7c9b  gcc/testsuite/gcc.target/i386/fma4-maccXX.c
  9ca9f3790821197b222de722021d675d  gcc/testsuite/gcc.target/i386/fma4-msubXX.c
  125a8aaa6e6c4ccbfdc9e400be4ae637  gcc/testsuite/gcc.target/i386/fma4-nmaccXX.c
! ff1367c2999883d575ce7a7e325c9650  gcc/testsuite/gcc.target/i386/fma4-nmsubXX.c
  4bd7ca874f34425b1f81e1fa81eaf9a3  gcc/testsuite/gcc.target/i386/fma4-vector-2.c
  f33ef9447efa694b2af1bb03f65a05af  gcc/testsuite/gcc.target/i386/fma4-vector.c
  396ab4a6da0dafe4762f4ace61659d81  gcc/testsuite/gcc.target/i386/fma_1.h
*************** bc23d02ee3eec2758045f35d85c64808  gcc/te
*** 73518,73525 ****
  a8f61a3e9626bdd65b4e124dbc719d3e  gcc/testsuite/gcc.target/i386/fma_run_float_results_6.h
  0bcde4f779166e7219135f96319daf7e  gcc/testsuite/gcc.target/i386/fnabs.c
  304b0b76a9b34898928cb8cc565ca031  gcc/testsuite/gcc.target/i386/force-indirect-call-1.c
! 884e0a311d4a5a7ad8dd114110303202  gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
  43fed2ad7f6111a8568f635af1144012  gcc/testsuite/gcc.target/i386/force-indirect-call-3.c
  0ac4b5b371eef2749df48c4dfac85dec  gcc/testsuite/gcc.target/i386/fpcvt-1.c
  41b53063e22afc0a435659c465424d74  gcc/testsuite/gcc.target/i386/fpcvt-2.c
  fc83f958b3df91c520e859127c479d26  gcc/testsuite/gcc.target/i386/fpcvt-3.c
--- 78244,78253 ----
  a8f61a3e9626bdd65b4e124dbc719d3e  gcc/testsuite/gcc.target/i386/fma_run_float_results_6.h
  0bcde4f779166e7219135f96319daf7e  gcc/testsuite/gcc.target/i386/fnabs.c
  304b0b76a9b34898928cb8cc565ca031  gcc/testsuite/gcc.target/i386/force-indirect-call-1.c
! 7d4fde6435ac834b0cefb1bad29aaeec  gcc/testsuite/gcc.target/i386/force-indirect-call-2.c
  43fed2ad7f6111a8568f635af1144012  gcc/testsuite/gcc.target/i386/force-indirect-call-3.c
+ edc28e3a2854dc1a667b3a8d63b42925  gcc/testsuite/gcc.target/i386/fp-emulation.h
+ 89c51537015d054a821e4d5529e2f077  gcc/testsuite/gcc.target/i386/fp8-helper.h
  0ac4b5b371eef2749df48c4dfac85dec  gcc/testsuite/gcc.target/i386/fpcvt-1.c
  41b53063e22afc0a435659c465424d74  gcc/testsuite/gcc.target/i386/fpcvt-2.c
  fc83f958b3df91c520e859127c479d26  gcc/testsuite/gcc.target/i386/fpcvt-3.c
*************** c1320fd604803bc04257c984f1e3ba77  gcc/te
*** 73532,73539 ****
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! 432dd2d642e36633f7c3d119c61bf951  gcc/testsuite/gcc.target/i386/funcspec-56.inc
! 6886186deb869f2b04be36492c05b8aa  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
  98162f894173cc3f53a1739d65f4341d  gcc/testsuite/gcc.target/i386/funcspec-9.c
--- 78260,78267 ----
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! 0a45f526e9e4e43bc8498e7e7c03dc21  gcc/testsuite/gcc.target/i386/funcspec-56.inc
! b954a6c88c30f112db6bd140acb0162c  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
  98162f894173cc3f53a1739d65f4341d  gcc/testsuite/gcc.target/i386/funcspec-9.c
*************** d95f56a3f95ba78c3fdb5f418f8d953a  gcc/te
*** 73582,73589 ****
  c937938a0a49e70d699ee5ef70d33cb0  gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c
  7aef940035776cbf7ecabc540f63e33e  gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c
  6bb730f0122ef83efe1593372db950e5  gcc/testsuite/gcc.target/i386/hreset-1.c
! 933757fe378e5ef22a413b3aaaeb1484  gcc/testsuite/gcc.target/i386/i386.exp
! 035fbeb3af328d12fa2675555dc7dfd4  gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp
  824179ec90e1e4fdb872aed133f8d523  gcc/testsuite/gcc.target/i386/iamcu/args.h
  8c17efb1ee1c990d7e1a55e4f347a4b2  gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
  a77c8e89ec538edb98eb4ac96da0db61  gcc/testsuite/gcc.target/i386/iamcu/defines.h
--- 78310,78317 ----
  c937938a0a49e70d699ee5ef70d33cb0  gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c
  7aef940035776cbf7ecabc540f63e33e  gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c
  6bb730f0122ef83efe1593372db950e5  gcc/testsuite/gcc.target/i386/hreset-1.c
! f24b02162ea34cd8452f005598fc8cc7  gcc/testsuite/gcc.target/i386/i386.exp
! e2d395bac33a55369a873a9bb191bc7e  gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp
  824179ec90e1e4fdb872aed133f8d523  gcc/testsuite/gcc.target/i386/iamcu/args.h
  8c17efb1ee1c990d7e1a55e4f347a4b2  gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
  a77c8e89ec538edb98eb4ac96da0db61  gcc/testsuite/gcc.target/i386/iamcu/defines.h
*************** b8e6dbfade2983acd605ae96c2eb8486  gcc/te
*** 73650,73656 ****
  f062bd94d2bcc6229905c541b481a03c  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c
  fba98c3a34304e72ade121f7d34b908a  gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-1.c
  b5c55c2b2dcc4dc18bdc6f9480aa3f1e  gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-2.c
! b3d44119e703e3cb0c21d04318b1b931  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
  3fdd7062ad5b6b04af4107a6cfbce2e2  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c
  673c8eac98371e92b7a913b2206da532  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
  4afea13bb72bb242966023f3e5b2942a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
--- 78378,78384 ----
  f062bd94d2bcc6229905c541b481a03c  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c
  fba98c3a34304e72ade121f7d34b908a  gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-1.c
  b5c55c2b2dcc4dc18bdc6f9480aa3f1e  gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-2.c
! 8fc4c634ddea3bd95dd2b50990e0136e  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
  3fdd7062ad5b6b04af4107a6cfbce2e2  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c
  673c8eac98371e92b7a913b2206da532  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
  4afea13bb72bb242966023f3e5b2942a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
*************** c3866e83ca6d52936ae37bf8ace61f83  gcc/te
*** 73727,73733 ****
  a797b5dc37751d3c42f9a52c27599321  gcc/testsuite/gcc.target/i386/intrinsics_opt-2.c
  335a0460d1bb3f99cd8c777b8e2c920c  gcc/testsuite/gcc.target/i386/intrinsics_opt-3.c
  864d97e8d87cc272bd81d8d07a4a1ee9  gcc/testsuite/gcc.target/i386/intrinsics_opt-4.c
! fbdba1fbe5951ef01ceef4e4282d1f1a  gcc/testsuite/gcc.target/i386/invariant-ternlog-1.c
  731350885cf7d7d928a7dadf53e9e871  gcc/testsuite/gcc.target/i386/invariant-ternlog-2.c
  5fb0715bbf93baf839d87f35d1098bc4  gcc/testsuite/gcc.target/i386/invsize-1.c
  c2b55c9abe8a89d3101643e6567b5385  gcc/testsuite/gcc.target/i386/invsize-2.c
--- 78455,78461 ----
  a797b5dc37751d3c42f9a52c27599321  gcc/testsuite/gcc.target/i386/intrinsics_opt-2.c
  335a0460d1bb3f99cd8c777b8e2c920c  gcc/testsuite/gcc.target/i386/intrinsics_opt-3.c
  864d97e8d87cc272bd81d8d07a4a1ee9  gcc/testsuite/gcc.target/i386/intrinsics_opt-4.c
! a153370f47aa7c13a840de465fa9b9a8  gcc/testsuite/gcc.target/i386/invariant-ternlog-1.c
  731350885cf7d7d928a7dadf53e9e871  gcc/testsuite/gcc.target/i386/invariant-ternlog-2.c
  5fb0715bbf93baf839d87f35d1098bc4  gcc/testsuite/gcc.target/i386/invsize-1.c
  c2b55c9abe8a89d3101643e6567b5385  gcc/testsuite/gcc.target/i386/invsize-2.c
*************** d2234ab09253f045697088ae34493c42  gcc/te
*** 73796,73801 ****
--- 78524,78530 ----
  5a3d613b241b3e2c5bec4225d8e6060a  gcc/testsuite/gcc.target/i386/large-frame.c
  4a38b7116c2a109e1be6a1dc98e10a3e  gcc/testsuite/gcc.target/i386/large-size-array-3.c
  0b8a2da369539507851e8622ecfe9930  gcc/testsuite/gcc.target/i386/lea-2.c
+ 0116a6e322fe7211c03b04170bb1214b  gcc/testsuite/gcc.target/i386/lea-3.c
  770c226bef6f53eea20210a705e96ef4  gcc/testsuite/gcc.target/i386/lea.c
  3e916468dde4fcc2483713703f478fcb  gcc/testsuite/gcc.target/i386/libcall-1.c
  b7a45b4fc6c8c2589a7335cf26c2170c  gcc/testsuite/gcc.target/i386/local.c
*************** e5ecd53e0c76cc760ad01be1a9813369  gcc/te
*** 73844,73850 ****
  4bf99318eb20a83c624941a47bfe86ad  gcc/testsuite/gcc.target/i386/m256-1.c
  e259d35e40662e2b47b740df3c6dba01  gcc/testsuite/gcc.target/i386/m256-2.c
  591de584cad41e9b66a3be285edd0937  gcc/testsuite/gcc.target/i386/m256-check.h
! 81bc8ed761041d9cd69c45d5aa497e15  gcc/testsuite/gcc.target/i386/m512-check.h
  f9f0011b6a2c53b25066b478d243973a  gcc/testsuite/gcc.target/i386/mask-pack-prefer128.c
  a03621f2e3833a1c8b997cdfa1434bd2  gcc/testsuite/gcc.target/i386/mask-pack-prefer256.c
  05d056ee8da06b7cd789ad1baf16efb0  gcc/testsuite/gcc.target/i386/mask-pack.c
--- 78573,78579 ----
  4bf99318eb20a83c624941a47bfe86ad  gcc/testsuite/gcc.target/i386/m256-1.c
  e259d35e40662e2b47b740df3c6dba01  gcc/testsuite/gcc.target/i386/m256-2.c
  591de584cad41e9b66a3be285edd0937  gcc/testsuite/gcc.target/i386/m256-check.h
! 86af97c3e2fd7cc25d701028c0ca99bb  gcc/testsuite/gcc.target/i386/m512-check.h
  f9f0011b6a2c53b25066b478d243973a  gcc/testsuite/gcc.target/i386/mask-pack-prefer128.c
  a03621f2e3833a1c8b997cdfa1434bd2  gcc/testsuite/gcc.target/i386/mask-pack-prefer256.c
  05d056ee8da06b7cd789ad1baf16efb0  gcc/testsuite/gcc.target/i386/mask-pack.c
*************** a697ff9e2f8fc0bffc90007a1118893e  gcc/te
*** 73856,73862 ****
  2b719a429ba467512cb34ad73352ab1f  gcc/testsuite/gcc.target/i386/math-torture/lfloor.c
  90c0fcbde458b9688e1e20332b2f1308  gcc/testsuite/gcc.target/i386/math-torture/lrint.c
  75c95d53b12109ed3e501ca632f0035d  gcc/testsuite/gcc.target/i386/math-torture/lround.c
! 144ed00324fc1549797f28db5da5510c  gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
  b8987de7098b84e004093b3d86b59425  gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c
  9b512770257f2687cde1774f56f4d64d  gcc/testsuite/gcc.target/i386/math-torture/rint.c
  29b89b8d60fbc8ee9eb2fb986ae17c23  gcc/testsuite/gcc.target/i386/math-torture/round.c
--- 78585,78591 ----
  2b719a429ba467512cb34ad73352ab1f  gcc/testsuite/gcc.target/i386/math-torture/lfloor.c
  90c0fcbde458b9688e1e20332b2f1308  gcc/testsuite/gcc.target/i386/math-torture/lrint.c
  75c95d53b12109ed3e501ca632f0035d  gcc/testsuite/gcc.target/i386/math-torture/lround.c
! 4967a8a89cb07730f8d83394b34c8355  gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
  b8987de7098b84e004093b3d86b59425  gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c
  9b512770257f2687cde1774f56f4d64d  gcc/testsuite/gcc.target/i386/math-torture/rint.c
  29b89b8d60fbc8ee9eb2fb986ae17c23  gcc/testsuite/gcc.target/i386/math-torture/round.c
*************** ceabed34440a4d5e7379a87fe03c334e  gcc/te
*** 73936,73945 ****
  97aab83a1a1878b06468a84c5d42ea6f  gcc/testsuite/gcc.target/i386/movdiri64.c
  d4c716e20ab6e64d6bb29cc63dd65677  gcc/testsuite/gcc.target/i386/movq-2.c
  d7e128da4dee8caf6cd8d400af12d230  gcc/testsuite/gcc.target/i386/movq.c
  347dca8d249a46ac2f5892d9ffdc0337  gcc/testsuite/gcc.target/i386/movsd.c
  bb0703a0cfe126aeba12e7589d46db56  gcc/testsuite/gcc.target/i386/movsi-sm-1.c
! d3a80442aec43e4161002d68ff5d258f  gcc/testsuite/gcc.target/i386/movti-2.c
  b05d96c2d351e6bf385aef183d4b3003  gcc/testsuite/gcc.target/i386/movti-3.c
  c6304e928bcf1393de99639a142057ad  gcc/testsuite/gcc.target/i386/movti.c
  2376b08fdef000cf037280264f5437fb  gcc/testsuite/gcc.target/i386/mpx.c
  05b06b2c30d6910a0afec51d588f2c21  gcc/testsuite/gcc.target/i386/ms_hook_prologue.c
--- 78665,78676 ----
  97aab83a1a1878b06468a84c5d42ea6f  gcc/testsuite/gcc.target/i386/movdiri64.c
  d4c716e20ab6e64d6bb29cc63dd65677  gcc/testsuite/gcc.target/i386/movq-2.c
  d7e128da4dee8caf6cd8d400af12d230  gcc/testsuite/gcc.target/i386/movq.c
+ cb58a62e42c29816d18ea3d55ab4997d  gcc/testsuite/gcc.target/i386/movrs-1.c
  347dca8d249a46ac2f5892d9ffdc0337  gcc/testsuite/gcc.target/i386/movsd.c
  bb0703a0cfe126aeba12e7589d46db56  gcc/testsuite/gcc.target/i386/movsi-sm-1.c
! a563480a1082f387ca849ebdfa1078d1  gcc/testsuite/gcc.target/i386/movti-2.c
  b05d96c2d351e6bf385aef183d4b3003  gcc/testsuite/gcc.target/i386/movti-3.c
+ de6e57fdda0497419c10545c87d7838f  gcc/testsuite/gcc.target/i386/movti-4.c
  c6304e928bcf1393de99639a142057ad  gcc/testsuite/gcc.target/i386/movti.c
  2376b08fdef000cf037280264f5437fb  gcc/testsuite/gcc.target/i386/mpx.c
  05b06b2c30d6910a0afec51d588f2c21  gcc/testsuite/gcc.target/i386/ms_hook_prologue.c
*************** dd28f3910c1c820877396bdada67b53a  gcc/te
*** 73973,73983 ****
  483378afab21196a730cecbe3a61c407  gcc/testsuite/gcc.target/i386/no-callee-saved-10.c
  f3e395b65622feac99889a0a7b3407ca  gcc/testsuite/gcc.target/i386/no-callee-saved-11.c
  e5188370fac870f1044da14bdbfa0928  gcc/testsuite/gcc.target/i386/no-callee-saved-12.c
! b784ec58f2403dd4f9a633abaed65e7e  gcc/testsuite/gcc.target/i386/no-callee-saved-13.c
! 5f73cdcf900442bd3e805be7f964080c  gcc/testsuite/gcc.target/i386/no-callee-saved-14.c
! 0b539de36ace8aa0cb3c0a5ca5bc43f7  gcc/testsuite/gcc.target/i386/no-callee-saved-15.c
  e64677fd1b7c27d60addb63546c0ff37  gcc/testsuite/gcc.target/i386/no-callee-saved-16.c
! f846596eea204aa036b0110a1c1e843e  gcc/testsuite/gcc.target/i386/no-callee-saved-17.c
  f6e04015c07dfdbd1fec397006546df4  gcc/testsuite/gcc.target/i386/no-callee-saved-18.c
  ad33c89265b5a7b8d4a875a0abf790b3  gcc/testsuite/gcc.target/i386/no-callee-saved-2.c
  b8869983f4d7802c2c8be19ce2dcdeac  gcc/testsuite/gcc.target/i386/no-callee-saved-3.c
--- 78704,78714 ----
  483378afab21196a730cecbe3a61c407  gcc/testsuite/gcc.target/i386/no-callee-saved-10.c
  f3e395b65622feac99889a0a7b3407ca  gcc/testsuite/gcc.target/i386/no-callee-saved-11.c
  e5188370fac870f1044da14bdbfa0928  gcc/testsuite/gcc.target/i386/no-callee-saved-12.c
! 42bd97eb7c2cc9b7ea74515a0c4cf3ce  gcc/testsuite/gcc.target/i386/no-callee-saved-13.c
! ce847ee191adcc1a562b86eae8463fe1  gcc/testsuite/gcc.target/i386/no-callee-saved-14.c
! 28070df22cbeb8bdda40326e1f3db379  gcc/testsuite/gcc.target/i386/no-callee-saved-15.c
  e64677fd1b7c27d60addb63546c0ff37  gcc/testsuite/gcc.target/i386/no-callee-saved-16.c
! 603a6e01b2f7a9cfee08f9a76db61c4a  gcc/testsuite/gcc.target/i386/no-callee-saved-17.c
  f6e04015c07dfdbd1fec397006546df4  gcc/testsuite/gcc.target/i386/no-callee-saved-18.c
  ad33c89265b5a7b8d4a875a0abf790b3  gcc/testsuite/gcc.target/i386/no-callee-saved-2.c
  b8869983f4d7802c2c8be19ce2dcdeac  gcc/testsuite/gcc.target/i386/no-callee-saved-3.c
*************** b72976450abb440a20ee8bbbcbe9d3da  gcc/te
*** 73987,73996 ****
  cb75d1a0c9cbcc1ff35c0ebfc4521d0f  gcc/testsuite/gcc.target/i386/no-callee-saved-7.c
  d2d958ed5eb47397497845d4ec4608e7  gcc/testsuite/gcc.target/i386/no-callee-saved-8.c
  fcdd3649e1c0734d0e2c71c3b6a131b6  gcc/testsuite/gcc.target/i386/no-callee-saved-9.c
! 9a7ed643946ff93624c0eaaa89d06d29  gcc/testsuite/gcc.target/i386/noevex512-1.c
! 2e598785b3617e0c168cf0c01315dcd8  gcc/testsuite/gcc.target/i386/noevex512-2.c
  d951ae4cc5d9c709635f329d67545205  gcc/testsuite/gcc.target/i386/noevex512-3.c
! 907e6711117480fbf04e37d85bdb4beb  gcc/testsuite/gcc.target/i386/nop-mcount.c
  7554f6e1a30e3cc93f33dbad79fc2a68  gcc/testsuite/gcc.target/i386/noplt-1.c
  4db83aa123fc4bac669e5678c3fd01a8  gcc/testsuite/gcc.target/i386/noplt-2.c
  d71187a904234084fc7700bf4985493b  gcc/testsuite/gcc.target/i386/noplt-3.c
--- 78718,78727 ----
  cb75d1a0c9cbcc1ff35c0ebfc4521d0f  gcc/testsuite/gcc.target/i386/no-callee-saved-7.c
  d2d958ed5eb47397497845d4ec4608e7  gcc/testsuite/gcc.target/i386/no-callee-saved-8.c
  fcdd3649e1c0734d0e2c71c3b6a131b6  gcc/testsuite/gcc.target/i386/no-callee-saved-9.c
! 49a6b1b082b9b1d608b571058ca4a26f  gcc/testsuite/gcc.target/i386/noevex512-1.c
! 20b41d4460b82ac85bee07704906dd4b  gcc/testsuite/gcc.target/i386/noevex512-2.c
  d951ae4cc5d9c709635f329d67545205  gcc/testsuite/gcc.target/i386/noevex512-3.c
! d153cc65f8aad89fc3f4f976c1844c13  gcc/testsuite/gcc.target/i386/nop-mcount.c
  7554f6e1a30e3cc93f33dbad79fc2a68  gcc/testsuite/gcc.target/i386/noplt-1.c
  4db83aa123fc4bac669e5678c3fd01a8  gcc/testsuite/gcc.target/i386/noplt-2.c
  d71187a904234084fc7700bf4985493b  gcc/testsuite/gcc.target/i386/noplt-3.c
*************** d84c245c19907cbcb51ec1260f2f2e75  gcc/te
*** 74004,74009 ****
--- 78735,78741 ----
  724ac6ecb21390d732dee529300ac27a  gcc/testsuite/gcc.target/i386/nrv1.c
  50b8bcd150bf9d9e5338438449a8f71f  gcc/testsuite/gcc.target/i386/opt-1.c
  d7a02dbcdc54a18a392397fb1ed438e2  gcc/testsuite/gcc.target/i386/opt-2.c
+ 4c18cebebaf89dd0a98f51fd0c305a88  gcc/testsuite/gcc.target/i386/opt-comi-1.c
  68dad9551718d81c7acabebdeb04eddd  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-1.c
  a709d69635171ba8cb23aeb32f14a735  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-2.c
  c1c7a1f6ca54b294694be556fcad274e  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-3.c
*************** a2da30b33f626c449124b741d63ff50f  gcc/te
*** 74029,74042 ****
--- 78761,78777 ----
  1dfea81292e4d43d2d7fc2bfd3430eda  gcc/testsuite/gcc.target/i386/parity-7.c
  03b41b2f42cb61cb71b23f1af7f0135e  gcc/testsuite/gcc.target/i386/parity-8.c
  8d756665b79bf6bd7920f21a780f11dc  gcc/testsuite/gcc.target/i386/parity-9.c
+ 53f34db58dd7bf7b9cbb0d217d879e8a  gcc/testsuite/gcc.target/i386/part-vect-absnegbf.c
  8e4c38a70fbd0d029a0b696304e2047f  gcc/testsuite/gcc.target/i386/part-vect-absneghf.c
  d7575e4a239acf382fe6978f76d7f8f6  gcc/testsuite/gcc.target/i386/part-vect-complexhf.c
  a42e41a70df25254ab0c3533058e09ce  gcc/testsuite/gcc.target/i386/part-vect-copysignhf.c
  4b843d6eac8cca928388713cfd822eee  gcc/testsuite/gcc.target/i386/part-vect-fmaddsubhf-1.c
  e015c782d5b49dadd97d26626e42640b  gcc/testsuite/gcc.target/i386/part-vect-fmahf-1.c
  64335d6cecf643b8ef62a44976333099  gcc/testsuite/gcc.target/i386/part-vect-hf-convert-1.c
+ 0bbbaf7c87c9713f3422ad4f48fe1cb8  gcc/testsuite/gcc.target/i386/part-vect-popcount-1.c
  0768d0b749af0eb1fb571374da5d942d  gcc/testsuite/gcc.target/i386/part-vect-roundhf.c
  519a7daf109eddf310406d5e83d8eaf1  gcc/testsuite/gcc.target/i386/part-vect-sqrtph-1.c
+ 31734708de70d5c51bac1f7ae186bbd4  gcc/testsuite/gcc.target/i386/part-vect-vec_cmpbf.c
  ddb983a4fc4f72a8d948b07ead39c6ff  gcc/testsuite/gcc.target/i386/part-vect-vec_cmphf.c
  b7b34404037d059764a956af000e887b  gcc/testsuite/gcc.target/i386/part-vect-vec_elem-1.c
  b21d12aa2edfb56fc4495ab1a5629994  gcc/testsuite/gcc.target/i386/part-vect-vec_elem-2.c
*************** ec64d74d91ed819f110fdc6f8f90197e  gcc/te
*** 74058,74064 ****
  f91cf99532e69c383485f6be3f62eb99  gcc/testsuite/gcc.target/i386/pie.c
  bfa37686c6affd9e18d5a37af31e5391  gcc/testsuite/gcc.target/i386/pieces-memcmp-2.c
  5d062b099437fb64de565760ffa381a8  gcc/testsuite/gcc.target/i386/pieces-memcpy-1.c
! 159890d45cc96b5006c69f188375af79  gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
  c8299c32a2fde2871d46799e54ca9c20  gcc/testsuite/gcc.target/i386/pieces-memcpy-11.c
  07e2e682ac676281588afe54520b14b5  gcc/testsuite/gcc.target/i386/pieces-memcpy-12.c
  cbaafd43310e10a7ba4ce687bafe06da  gcc/testsuite/gcc.target/i386/pieces-memcpy-13.c
--- 78793,78799 ----
  f91cf99532e69c383485f6be3f62eb99  gcc/testsuite/gcc.target/i386/pie.c
  bfa37686c6affd9e18d5a37af31e5391  gcc/testsuite/gcc.target/i386/pieces-memcmp-2.c
  5d062b099437fb64de565760ffa381a8  gcc/testsuite/gcc.target/i386/pieces-memcpy-1.c
! 218b3a474389edf04ac9387e6402f79e  gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
  c8299c32a2fde2871d46799e54ca9c20  gcc/testsuite/gcc.target/i386/pieces-memcpy-11.c
  07e2e682ac676281588afe54520b14b5  gcc/testsuite/gcc.target/i386/pieces-memcpy-12.c
  cbaafd43310e10a7ba4ce687bafe06da  gcc/testsuite/gcc.target/i386/pieces-memcpy-13.c
*************** b5f6fb3aaac27e15ae52d9111e60d98d  gcc/te
*** 74071,74080 ****
  279c04d20615905ca5bf2f44eb5a231d  gcc/testsuite/gcc.target/i386/pieces-memcpy-2.c
  7e2d486487e1f536c226d8bc290fd8ad  gcc/testsuite/gcc.target/i386/pieces-memcpy-20.c
  2f4b551b9d6addea576cff08a8831f3f  gcc/testsuite/gcc.target/i386/pieces-memcpy-21.c
  2820c9b91ec98c38843764eea07d4b75  gcc/testsuite/gcc.target/i386/pieces-memcpy-3.c
  698986063dd5ba005476ca849de14359  gcc/testsuite/gcc.target/i386/pieces-memcpy-4.c
  5e90eca9009d511850fb8fc840c7e236  gcc/testsuite/gcc.target/i386/pieces-memcpy-5.c
! 592f55f6e3184576f7ecadf1df7171df  gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
  cd997974279df052137a9eb6b7161224  gcc/testsuite/gcc.target/i386/pieces-memcpy-7.c
  0ba882bb3e15e6f15fe51824a6b413d7  gcc/testsuite/gcc.target/i386/pieces-memcpy-8.c
  4a7d1a3d782fc80de77eb424e11408a6  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
--- 78806,78816 ----
  279c04d20615905ca5bf2f44eb5a231d  gcc/testsuite/gcc.target/i386/pieces-memcpy-2.c
  7e2d486487e1f536c226d8bc290fd8ad  gcc/testsuite/gcc.target/i386/pieces-memcpy-20.c
  2f4b551b9d6addea576cff08a8831f3f  gcc/testsuite/gcc.target/i386/pieces-memcpy-21.c
+ 483ed3c0a5b3efe685343cb5dc87d54d  gcc/testsuite/gcc.target/i386/pieces-memcpy-22.c
  2820c9b91ec98c38843764eea07d4b75  gcc/testsuite/gcc.target/i386/pieces-memcpy-3.c
  698986063dd5ba005476ca849de14359  gcc/testsuite/gcc.target/i386/pieces-memcpy-4.c
  5e90eca9009d511850fb8fc840c7e236  gcc/testsuite/gcc.target/i386/pieces-memcpy-5.c
! 3a0ca789b78c950145057e2729951f48  gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
  cd997974279df052137a9eb6b7161224  gcc/testsuite/gcc.target/i386/pieces-memcpy-7.c
  0ba882bb3e15e6f15fe51824a6b413d7  gcc/testsuite/gcc.target/i386/pieces-memcpy-8.c
  4a7d1a3d782fc80de77eb424e11408a6  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
*************** dfdb563e4ff7bbe491b12bbbe647b9dc  gcc/te
*** 74109,74121 ****
  181b017254dd31eb2223399402d99647  gcc/testsuite/gcc.target/i386/pieces-memset-35.c
  2470a2e9bf55b8c93f14b390efa3a27b  gcc/testsuite/gcc.target/i386/pieces-memset-36.c
  706f5c92442e84a05ac86f5049be1023  gcc/testsuite/gcc.target/i386/pieces-memset-37.c
! 71d7cb14af52878612fec7d2cc2dcdff  gcc/testsuite/gcc.target/i386/pieces-memset-38.c
  46290722ded2b4db346c0397ed4a4f6e  gcc/testsuite/gcc.target/i386/pieces-memset-39.c
  1bf16fae349290026eded0b2214cc165  gcc/testsuite/gcc.target/i386/pieces-memset-4.c
! a757412dd10897fd7e3bd72420325c6b  gcc/testsuite/gcc.target/i386/pieces-memset-40.c
! fd6f0825c9ff8f7a7dc12a51c3fecc7b  gcc/testsuite/gcc.target/i386/pieces-memset-41.c
! ef978a20afb9412dabbe15a9b8dfb5b0  gcc/testsuite/gcc.target/i386/pieces-memset-42.c
! 36d97d09e24700e91c20a52767b17774  gcc/testsuite/gcc.target/i386/pieces-memset-43.c
  2b47b7f82aeabc7a238642520819b3f0  gcc/testsuite/gcc.target/i386/pieces-memset-44.c
  86947bff2a1eb3faba119670600994db  gcc/testsuite/gcc.target/i386/pieces-memset-45.c
  f29f6d2af05e1f08f148f0eed162d860  gcc/testsuite/gcc.target/i386/pieces-memset-46.c
--- 78845,78857 ----
  181b017254dd31eb2223399402d99647  gcc/testsuite/gcc.target/i386/pieces-memset-35.c
  2470a2e9bf55b8c93f14b390efa3a27b  gcc/testsuite/gcc.target/i386/pieces-memset-36.c
  706f5c92442e84a05ac86f5049be1023  gcc/testsuite/gcc.target/i386/pieces-memset-37.c
! 76256be4c59ba8c53e1f3432c5c48e2d  gcc/testsuite/gcc.target/i386/pieces-memset-38.c
  46290722ded2b4db346c0397ed4a4f6e  gcc/testsuite/gcc.target/i386/pieces-memset-39.c
  1bf16fae349290026eded0b2214cc165  gcc/testsuite/gcc.target/i386/pieces-memset-4.c
! b9c9bb2f91b8846b24897588c41194c3  gcc/testsuite/gcc.target/i386/pieces-memset-40.c
! ba492b7f152647f62ce69a59e78fe981  gcc/testsuite/gcc.target/i386/pieces-memset-41.c
! ab6fa2bfe98c867fab182d157d457706  gcc/testsuite/gcc.target/i386/pieces-memset-42.c
! d98f40e3e5aa8e8b9f5499569f688965  gcc/testsuite/gcc.target/i386/pieces-memset-43.c
  2b47b7f82aeabc7a238642520819b3f0  gcc/testsuite/gcc.target/i386/pieces-memset-44.c
  86947bff2a1eb3faba119670600994db  gcc/testsuite/gcc.target/i386/pieces-memset-45.c
  f29f6d2af05e1f08f148f0eed162d860  gcc/testsuite/gcc.target/i386/pieces-memset-46.c
*************** fab4224ceed336ed6902793909c0c6c2  gcc/te
*** 74124,74135 ****
  b6a5763cac2b72e43f0900c7fbca0740  gcc/testsuite/gcc.target/i386/pieces-memset-49.c
  e59e962761850423b307c01f720c8e84  gcc/testsuite/gcc.target/i386/pieces-memset-5.c
  f6afe5571570af54d1d2e02c0e28d3f6  gcc/testsuite/gcc.target/i386/pieces-memset-50.c
  9a26520df010055f642c2ece0b8228da  gcc/testsuite/gcc.target/i386/pieces-memset-6.c
  23a2abe42e35c944c1378d4073b91461  gcc/testsuite/gcc.target/i386/pieces-memset-7.c
  fc8529106d1dfbf63818c2acf5d2440e  gcc/testsuite/gcc.target/i386/pieces-memset-8.c
  1dd6e4930e865481c75e8be67f518ca9  gcc/testsuite/gcc.target/i386/pieces-memset-9.c
  b1d366c21cfdcfacf9854ed6cbfd7bc3  gcc/testsuite/gcc.target/i386/pieces-strcpy-1.c
! 52e52549556117888f85f13d26ced39b  gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
  13d06bee88f2ccd2a16effe0c243e61e  gcc/testsuite/gcc.target/i386/pow-1.c
  08e64611506eb827fa5c5f614b29322b  gcc/testsuite/gcc.target/i386/pr100066.c
  59cbc0324755fe5398f1eeb23440ed0c  gcc/testsuite/gcc.target/i386/pr100093.c
--- 78860,78873 ----
  b6a5763cac2b72e43f0900c7fbca0740  gcc/testsuite/gcc.target/i386/pieces-memset-49.c
  e59e962761850423b307c01f720c8e84  gcc/testsuite/gcc.target/i386/pieces-memset-5.c
  f6afe5571570af54d1d2e02c0e28d3f6  gcc/testsuite/gcc.target/i386/pieces-memset-50.c
+ 587ca57e48d1c64f4cb91b6203512c99  gcc/testsuite/gcc.target/i386/pieces-memset-51.c
  9a26520df010055f642c2ece0b8228da  gcc/testsuite/gcc.target/i386/pieces-memset-6.c
  23a2abe42e35c944c1378d4073b91461  gcc/testsuite/gcc.target/i386/pieces-memset-7.c
  fc8529106d1dfbf63818c2acf5d2440e  gcc/testsuite/gcc.target/i386/pieces-memset-8.c
  1dd6e4930e865481c75e8be67f518ca9  gcc/testsuite/gcc.target/i386/pieces-memset-9.c
  b1d366c21cfdcfacf9854ed6cbfd7bc3  gcc/testsuite/gcc.target/i386/pieces-strcpy-1.c
! 491a9d6acad50ec8d3084d5a7b12b2a5  gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
! b0e41142465073730317837ceeca8c09  gcc/testsuite/gcc.target/i386/pieces-strcpy-3.c
  13d06bee88f2ccd2a16effe0c243e61e  gcc/testsuite/gcc.target/i386/pow-1.c
  08e64611506eb827fa5c5f614b29322b  gcc/testsuite/gcc.target/i386/pr100066.c
  59cbc0324755fe5398f1eeb23440ed0c  gcc/testsuite/gcc.target/i386/pr100093.c
*************** f6d11dafd312969f2c744769fa5060e7  gcc/te
*** 74140,74145 ****
--- 78878,78884 ----
  78685e7edd4e0979aa43c884b39799a9  gcc/testsuite/gcc.target/i386/pr100445-1.c
  a60a4e9d9eabe39575166ed237be1254  gcc/testsuite/gcc.target/i386/pr100445.c
  5d2c905d0c5c3481ad3792a3acd56582  gcc/testsuite/gcc.target/i386/pr100504.c
+ 84e04c45afcc8a5cf79bb5ff34ffcc37  gcc/testsuite/gcc.target/i386/pr100530.c
  712a5b0dc00e43026ee65f26c2b8e49d  gcc/testsuite/gcc.target/i386/pr100549.c
  cedc1333702a728fc893f5cd3f5cca1e  gcc/testsuite/gcc.target/i386/pr100582.c
  993d78934ac49ecf9c43f5aabf99184e  gcc/testsuite/gcc.target/i386/pr100637-1b.c
*************** d6be9416b5a692dcf10f49538e62c72a  gcc/te
*** 74159,74170 ****
  8197644f7a377a4e773e37bcaf521a03  gcc/testsuite/gcc.target/i386/pr100704-3.c
  3867710318c1f66b0baefc39f250ac61  gcc/testsuite/gcc.target/i386/pr100711-1.c
  12601676937cfa769b9e00cbd99ad57d  gcc/testsuite/gcc.target/i386/pr100711-2.c
! f3f2e2e3cbd0d24f18c189931dea3a08  gcc/testsuite/gcc.target/i386/pr100711-3.c
! 327aba1b48506df4e916e2e0a96496b2  gcc/testsuite/gcc.target/i386/pr100711-4.c
! b1274c9ef720f2514c547a4ba7b30fd1  gcc/testsuite/gcc.target/i386/pr100711-5.c
  a62f6df63fc4be6e37901b08c83e8ecc  gcc/testsuite/gcc.target/i386/pr100711-6.c
  21342a2d589a99d18c416c9c8cb14e73  gcc/testsuite/gcc.target/i386/pr100722.c
! 497d2d61f81da5f5f2da7eb41e5a7d5d  gcc/testsuite/gcc.target/i386/pr100865-1.c
  5897140defc06e5ec0c1df1ca44dc11b  gcc/testsuite/gcc.target/i386/pr100865-10a.c
  e0e3790cfa1f6811774dcf19a77f25f2  gcc/testsuite/gcc.target/i386/pr100865-10b.c
  f5bc9b077ed43bdc9a703fbae0412df9  gcc/testsuite/gcc.target/i386/pr100865-11a.c
--- 78898,78909 ----
  8197644f7a377a4e773e37bcaf521a03  gcc/testsuite/gcc.target/i386/pr100704-3.c
  3867710318c1f66b0baefc39f250ac61  gcc/testsuite/gcc.target/i386/pr100711-1.c
  12601676937cfa769b9e00cbd99ad57d  gcc/testsuite/gcc.target/i386/pr100711-2.c
! 886804540b6a8e815019738187f04e16  gcc/testsuite/gcc.target/i386/pr100711-3.c
! 677e47c44d4653ffb0cf36fa147127eb  gcc/testsuite/gcc.target/i386/pr100711-4.c
! 810cb15f6223190038b08b2d9a654199  gcc/testsuite/gcc.target/i386/pr100711-5.c
  a62f6df63fc4be6e37901b08c83e8ecc  gcc/testsuite/gcc.target/i386/pr100711-6.c
  21342a2d589a99d18c416c9c8cb14e73  gcc/testsuite/gcc.target/i386/pr100722.c
! 293660d266715c7814b0758f24d54f69  gcc/testsuite/gcc.target/i386/pr100865-1.c
  5897140defc06e5ec0c1df1ca44dc11b  gcc/testsuite/gcc.target/i386/pr100865-10a.c
  e0e3790cfa1f6811774dcf19a77f25f2  gcc/testsuite/gcc.target/i386/pr100865-10b.c
  f5bc9b077ed43bdc9a703fbae0412df9  gcc/testsuite/gcc.target/i386/pr100865-11a.c
*************** f61ed5d74862aeb9b691e538e77da134  gcc/te
*** 74182,74194 ****
  b1a92e51935fa6dfe87cc1b5591f86cc  gcc/testsuite/gcc.target/i386/pr100865-6a.c
  cd0c1e0c14e0cd797ad6a3fe36f61c41  gcc/testsuite/gcc.target/i386/pr100865-6b.c
  79c69335f7b22344550f6fa784a3c0fd  gcc/testsuite/gcc.target/i386/pr100865-6c.c
! fb20dc4041fb8da84bfe6bd15ed8d02c  gcc/testsuite/gcc.target/i386/pr100865-7a.c
  9ad73e17a2a8a2177f83924d42a9ec6d  gcc/testsuite/gcc.target/i386/pr100865-7b.c
! c58243f3def69bc2967aa587eeb4541b  gcc/testsuite/gcc.target/i386/pr100865-7c.c
  2e6c0885d5ed036832dae0f07276269a  gcc/testsuite/gcc.target/i386/pr100865-8a.c
  38883a5389fa795fd84a1023776608ea  gcc/testsuite/gcc.target/i386/pr100865-8b.c
  b1b7cd191466fe5bf9c8de405078e268  gcc/testsuite/gcc.target/i386/pr100865-8c.c
! ca04bf1479794db5867a7dcbdaba654c  gcc/testsuite/gcc.target/i386/pr100865-9a.c
  3d572b546fbc5d6017f7688f8c9858c5  gcc/testsuite/gcc.target/i386/pr100865-9b.c
  0e777948f43f406fb25b7236272ef276  gcc/testsuite/gcc.target/i386/pr100865-9c.c
  92347818baf371677943e85e6acf1cb2  gcc/testsuite/gcc.target/i386/pr100887.c
--- 78921,78933 ----
  b1a92e51935fa6dfe87cc1b5591f86cc  gcc/testsuite/gcc.target/i386/pr100865-6a.c
  cd0c1e0c14e0cd797ad6a3fe36f61c41  gcc/testsuite/gcc.target/i386/pr100865-6b.c
  79c69335f7b22344550f6fa784a3c0fd  gcc/testsuite/gcc.target/i386/pr100865-6c.c
! e330f48d764c600de3a26efeed03b86f  gcc/testsuite/gcc.target/i386/pr100865-7a.c
  9ad73e17a2a8a2177f83924d42a9ec6d  gcc/testsuite/gcc.target/i386/pr100865-7b.c
! a11e4c47ae1213eea59b55e60f30f4f8  gcc/testsuite/gcc.target/i386/pr100865-7c.c
  2e6c0885d5ed036832dae0f07276269a  gcc/testsuite/gcc.target/i386/pr100865-8a.c
  38883a5389fa795fd84a1023776608ea  gcc/testsuite/gcc.target/i386/pr100865-8b.c
  b1b7cd191466fe5bf9c8de405078e268  gcc/testsuite/gcc.target/i386/pr100865-8c.c
! 4eb5c49d3814d918f76563c564236376  gcc/testsuite/gcc.target/i386/pr100865-9a.c
  3d572b546fbc5d6017f7688f8c9858c5  gcc/testsuite/gcc.target/i386/pr100865-9b.c
  0e777948f43f406fb25b7236272ef276  gcc/testsuite/gcc.target/i386/pr100865-9c.c
  92347818baf371677943e85e6acf1cb2  gcc/testsuite/gcc.target/i386/pr100887.c
*************** dc16503e73180cbb7d121cbbe8978dea  gcc/te
*** 74220,74229 ****
  5d41fc380eccae6344c39847965d0da0  gcc/testsuite/gcc.target/i386/pr101636.c
  12da55d83461aa19e9bc27fe99056a71  gcc/testsuite/gcc.target/i386/pr101668.c
  b974d1c1eb2c64f7c28acd2f356d3503  gcc/testsuite/gcc.target/i386/pr101685.c
! b7917a5931ee0a85f9f8604fa1a42161  gcc/testsuite/gcc.target/i386/pr101716.c
  18982a20a869451cc3518d5947d3a7b2  gcc/testsuite/gcc.target/i386/pr101742a.c
  758e66b76326e2664ea96ea9261ec8e4  gcc/testsuite/gcc.target/i386/pr101742b.c
! 436721f9a4bb4a08661758c2e0fc2457  gcc/testsuite/gcc.target/i386/pr101796-1.c
  557643d55294de049431c337a4d582d7  gcc/testsuite/gcc.target/i386/pr101797.c
  8799e0da44fea4280d7718fd3e9b8245  gcc/testsuite/gcc.target/i386/pr101812.c
  84b0729af4c999d30a48152a6966d6ce  gcc/testsuite/gcc.target/i386/pr101846-1.c
--- 78959,78968 ----
  5d41fc380eccae6344c39847965d0da0  gcc/testsuite/gcc.target/i386/pr101636.c
  12da55d83461aa19e9bc27fe99056a71  gcc/testsuite/gcc.target/i386/pr101668.c
  b974d1c1eb2c64f7c28acd2f356d3503  gcc/testsuite/gcc.target/i386/pr101685.c
! b34b7e9dae2a643708a6bf0b5f9b5bad  gcc/testsuite/gcc.target/i386/pr101716.c
  18982a20a869451cc3518d5947d3a7b2  gcc/testsuite/gcc.target/i386/pr101742a.c
  758e66b76326e2664ea96ea9261ec8e4  gcc/testsuite/gcc.target/i386/pr101742b.c
! df34e4330d13a9b822d0ef3ffefdbae2  gcc/testsuite/gcc.target/i386/pr101796-1.c
  557643d55294de049431c337a4d582d7  gcc/testsuite/gcc.target/i386/pr101797.c
  8799e0da44fea4280d7718fd3e9b8245  gcc/testsuite/gcc.target/i386/pr101812.c
  84b0729af4c999d30a48152a6966d6ce  gcc/testsuite/gcc.target/i386/pr101846-1.c
*************** bcc3dd03282b79cdaad1e813e2c98669  gcc/te
*** 74239,74245 ****
  4aa967b8dfe223915f396f78c22485db  gcc/testsuite/gcc.target/i386/pr101908-3.c
  71190ec9491eab6b2bbc796eab15af33  gcc/testsuite/gcc.target/i386/pr101930.c
  b4d06268d42bf5db1da463eaab008024  gcc/testsuite/gcc.target/i386/pr101950-1.c
! 001d5be7fe2c5a8f87638f25f2ccc72f  gcc/testsuite/gcc.target/i386/pr101950-2.c
  0457f3d16b7a3fe95e09e531dd63da5f  gcc/testsuite/gcc.target/i386/pr101989-1.c
  c0989692a0f2603de7cdb8cf6bbc470d  gcc/testsuite/gcc.target/i386/pr101989-2.c
  ce94fb3876b696419b146fe6dbfba74b  gcc/testsuite/gcc.target/i386/pr101989-3.c
--- 78978,78984 ----
  4aa967b8dfe223915f396f78c22485db  gcc/testsuite/gcc.target/i386/pr101908-3.c
  71190ec9491eab6b2bbc796eab15af33  gcc/testsuite/gcc.target/i386/pr101930.c
  b4d06268d42bf5db1da463eaab008024  gcc/testsuite/gcc.target/i386/pr101950-1.c
! ad9039a2d4def8864439d6efb4020e66  gcc/testsuite/gcc.target/i386/pr101950-2.c
  0457f3d16b7a3fe95e09e531dd63da5f  gcc/testsuite/gcc.target/i386/pr101989-1.c
  c0989692a0f2603de7cdb8cf6bbc470d  gcc/testsuite/gcc.target/i386/pr101989-2.c
  ce94fb3876b696419b146fe6dbfba74b  gcc/testsuite/gcc.target/i386/pr101989-3.c
*************** adab621363055b7bc30252a80c085f85  gcc/te
*** 74256,74262 ****
  058016787582ba3a23d433d2a4c64f82  gcc/testsuite/gcc.target/i386/pr102464-maxmin.c
  ca28070685eaa668b2046f539587b1e3  gcc/testsuite/gcc.target/i386/pr102464-sqrtph.c
  25c492dccb70c57bd8931c5b65b8658d  gcc/testsuite/gcc.target/i386/pr102464-sqrtsh.c
! 8ae4a802e4b0fa72410e7122dda4e492  gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c
  a7f5edde3517a7bc81e42ef35bc8ccf2  gcc/testsuite/gcc.target/i386/pr102464.c
  f68b5c1b664b6adb3ffe77d9fbd68734  gcc/testsuite/gcc.target/i386/pr102483-2.c
  794cdec505b1e2f54ab552a0251c4029  gcc/testsuite/gcc.target/i386/pr102483.c
--- 78995,79001 ----
  058016787582ba3a23d433d2a4c64f82  gcc/testsuite/gcc.target/i386/pr102464-maxmin.c
  ca28070685eaa668b2046f539587b1e3  gcc/testsuite/gcc.target/i386/pr102464-sqrtph.c
  25c492dccb70c57bd8931c5b65b8658d  gcc/testsuite/gcc.target/i386/pr102464-sqrtsh.c
! 47c1e558b7322a9549937615e435a17a  gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c
  a7f5edde3517a7bc81e42ef35bc8ccf2  gcc/testsuite/gcc.target/i386/pr102464.c
  f68b5c1b664b6adb3ffe77d9fbd68734  gcc/testsuite/gcc.target/i386/pr102483-2.c
  794cdec505b1e2f54ab552a0251c4029  gcc/testsuite/gcc.target/i386/pr102483.c
*************** ed0cddf242c215429a89505edcb5cda5  gcc/te
*** 74282,74288 ****
  3481740b854e0ac8d553ec30a8e1e2f0  gcc/testsuite/gcc.target/i386/pr102566-9a.c
  c9acab92ab83b6832f10d5744bbbb9fc  gcc/testsuite/gcc.target/i386/pr102566-9b.c
  fdab572bd18f9d25e8aa60a0fccbac08  gcc/testsuite/gcc.target/i386/pr102583.c
! 53e87cba1a4282f640d05ef1fee359c4  gcc/testsuite/gcc.target/i386/pr102627.c
  34eb3ca8ee784a5cb3c2145b1609e105  gcc/testsuite/gcc.target/i386/pr102761.c
  94fbca2c3bfe03a7170b3a5271be0057  gcc/testsuite/gcc.target/i386/pr102811-1.c
  3b03e912aeb66bfa303f95c387045e1c  gcc/testsuite/gcc.target/i386/pr102811-2.c
--- 79021,79027 ----
  3481740b854e0ac8d553ec30a8e1e2f0  gcc/testsuite/gcc.target/i386/pr102566-9a.c
  c9acab92ab83b6832f10d5744bbbb9fc  gcc/testsuite/gcc.target/i386/pr102566-9b.c
  fdab572bd18f9d25e8aa60a0fccbac08  gcc/testsuite/gcc.target/i386/pr102583.c
! 18eb4733bd1da39d17f6b39a5cfb55ad  gcc/testsuite/gcc.target/i386/pr102627.c
  34eb3ca8ee784a5cb3c2145b1609e105  gcc/testsuite/gcc.target/i386/pr102761.c
  94fbca2c3bfe03a7170b3a5271be0057  gcc/testsuite/gcc.target/i386/pr102811-1.c
  3b03e912aeb66bfa303f95c387045e1c  gcc/testsuite/gcc.target/i386/pr102811-2.c
*************** b039add75b08a015b600376758d11758  gcc/te
*** 74348,74354 ****
  5fbee8826b1f4da8d9dd6a2f09f18e0e  gcc/testsuite/gcc.target/i386/pr103908.c
  785504e26cd6f9f93c9ab2af552d08bc  gcc/testsuite/gcc.target/i386/pr103915.c
  41721335d42fe28084347fa33894303a  gcc/testsuite/gcc.target/i386/pr103941-1.c
! 8dad7093e1bb132644d34205f1d38611  gcc/testsuite/gcc.target/i386/pr103941-2.c
  20da6bc2776057de07258ef854f1f994  gcc/testsuite/gcc.target/i386/pr103973-1.c
  77409de4e19648dd9000994809f4905f  gcc/testsuite/gcc.target/i386/pr103973-10.c
  59285de0d089a8877e48a366e1f91fc7  gcc/testsuite/gcc.target/i386/pr103973-11.c
--- 79087,79093 ----
  5fbee8826b1f4da8d9dd6a2f09f18e0e  gcc/testsuite/gcc.target/i386/pr103908.c
  785504e26cd6f9f93c9ab2af552d08bc  gcc/testsuite/gcc.target/i386/pr103915.c
  41721335d42fe28084347fa33894303a  gcc/testsuite/gcc.target/i386/pr103941-1.c
! 61f53cb223e746a4c0e9e08819deb028  gcc/testsuite/gcc.target/i386/pr103941-2.c
  20da6bc2776057de07258ef854f1f994  gcc/testsuite/gcc.target/i386/pr103973-1.c
  77409de4e19648dd9000994809f4905f  gcc/testsuite/gcc.target/i386/pr103973-10.c
  59285de0d089a8877e48a366e1f91fc7  gcc/testsuite/gcc.target/i386/pr103973-11.c
*************** edf62206a68a4c58a0dec6fbdc090c31  gcc/te
*** 74383,74389 ****
  7847083e5431fa0d0f90a6966b944b11  gcc/testsuite/gcc.target/i386/pr104441-1b.c
  9db2b13a34fc86475d27728a925461c5  gcc/testsuite/gcc.target/i386/pr104446.c
  eb1e8167d404b6acfac2b490f5061493  gcc/testsuite/gcc.target/i386/pr104447.c
- 9db0f32defbcb2d378f47646566fc388  gcc/testsuite/gcc.target/i386/pr104448.c
  9afbd8cbff177a7e555fe32de7558c2e  gcc/testsuite/gcc.target/i386/pr104451.c
  f34a56063b53daa2722dd66e280f5aab  gcc/testsuite/gcc.target/i386/pr104453.c
  30d7b1638a5f604ac4353737e0db1816  gcc/testsuite/gcc.target/i386/pr104458.c
--- 79122,79127 ----
*************** a892cf5449c572594d9ac500ec2178bc  gcc/te
*** 74423,74429 ****
  6c6335b2ca1f773cd45cd27ad0d7a133  gcc/testsuite/gcc.target/i386/pr105000-3.c
  898f47e6fdcddbb3b8671b76b32b4b68  gcc/testsuite/gcc.target/i386/pr105000-4.c
  6835f42a37c0159616cc082bd3c33721  gcc/testsuite/gcc.target/i386/pr105032.c
! 3d49336dd9549859bf4dff672a2596e2  gcc/testsuite/gcc.target/i386/pr105033.c
  21eae05c7058c12d267eef32d269e06d  gcc/testsuite/gcc.target/i386/pr105066.c
  4e4bf1a2c07ae507bdb50bda9764c54c  gcc/testsuite/gcc.target/i386/pr105068.c
  0c5dc04a569067f4bb6a3b32f7b29051  gcc/testsuite/gcc.target/i386/pr105072.c
--- 79161,79167 ----
  6c6335b2ca1f773cd45cd27ad0d7a133  gcc/testsuite/gcc.target/i386/pr105000-3.c
  898f47e6fdcddbb3b8671b76b32b4b68  gcc/testsuite/gcc.target/i386/pr105000-4.c
  6835f42a37c0159616cc082bd3c33721  gcc/testsuite/gcc.target/i386/pr105032.c
! c28601602eae6c1321ac75e9391f5f2c  gcc/testsuite/gcc.target/i386/pr105033.c
  21eae05c7058c12d267eef32d269e06d  gcc/testsuite/gcc.target/i386/pr105066.c
  4e4bf1a2c07ae507bdb50bda9764c54c  gcc/testsuite/gcc.target/i386/pr105068.c
  0c5dc04a569067f4bb6a3b32f7b29051  gcc/testsuite/gcc.target/i386/pr105072.c
*************** dfc3f83604e6883a02d821c48a3ad632  gcc/te
*** 74435,74441 ****
  011c836b7c20d989a4885bbe1ca245b7  gcc/testsuite/gcc.target/i386/pr105354-1.c
  1d7fb996d2968bda606469734db8f081  gcc/testsuite/gcc.target/i386/pr105354-2.c
  2a5473f87bb2410849bfe5418a5abeb6  gcc/testsuite/gcc.target/i386/pr105367.c
! 3e59623d82099b9b3e3d1ea99c8157e9  gcc/testsuite/gcc.target/i386/pr105493.c
  faa2789fb55d0b7bb1e08f48501c285d  gcc/testsuite/gcc.target/i386/pr105513-1.c
  8515bef5344a20c9dafa2d780bab4b57  gcc/testsuite/gcc.target/i386/pr105554.c
  abdcac20a85ff356a7103baf30c2cad2  gcc/testsuite/gcc.target/i386/pr105587.c
--- 79173,79179 ----
  011c836b7c20d989a4885bbe1ca245b7  gcc/testsuite/gcc.target/i386/pr105354-1.c
  1d7fb996d2968bda606469734db8f081  gcc/testsuite/gcc.target/i386/pr105354-2.c
  2a5473f87bb2410849bfe5418a5abeb6  gcc/testsuite/gcc.target/i386/pr105367.c
! eeb8fb746497c2c8c5d3c06cfc008f2d  gcc/testsuite/gcc.target/i386/pr105493.c
  faa2789fb55d0b7bb1e08f48501c285d  gcc/testsuite/gcc.target/i386/pr105513-1.c
  8515bef5344a20c9dafa2d780bab4b57  gcc/testsuite/gcc.target/i386/pr105554.c
  abdcac20a85ff356a7103baf30c2cad2  gcc/testsuite/gcc.target/i386/pr105587.c
*************** c0a2ca005877e183a3bd3c684fd9ae58  gcc/te
*** 74448,74454 ****
  8c9085240015050c98084d878d6470ba  gcc/testsuite/gcc.target/i386/pr105776.c
  ea3f5b1a8dc1f2a75525c32a752e7f2e  gcc/testsuite/gcc.target/i386/pr105778.c
  8217651f44dab90cf8e1033c97295008  gcc/testsuite/gcc.target/i386/pr105791.c
! b4224e20d05d6c8f5776e96a70593e71  gcc/testsuite/gcc.target/i386/pr105854.c
  9d3f7a861c6c4329c4fcd07f3748db1c  gcc/testsuite/gcc.target/i386/pr105927.c
  840fb83f35546d6c20183029a35d1f95  gcc/testsuite/gcc.target/i386/pr105951-1.c
  2ff5f727d612ee865a9f68d980e8cb80  gcc/testsuite/gcc.target/i386/pr105951-2.c
--- 79186,79192 ----
  8c9085240015050c98084d878d6470ba  gcc/testsuite/gcc.target/i386/pr105776.c
  ea3f5b1a8dc1f2a75525c32a752e7f2e  gcc/testsuite/gcc.target/i386/pr105778.c
  8217651f44dab90cf8e1033c97295008  gcc/testsuite/gcc.target/i386/pr105791.c
! c91bb12219aaf9e60f96caef680be2f8  gcc/testsuite/gcc.target/i386/pr105854.c
  9d3f7a861c6c4329c4fcd07f3748db1c  gcc/testsuite/gcc.target/i386/pr105927.c
  840fb83f35546d6c20183029a35d1f95  gcc/testsuite/gcc.target/i386/pr105951-1.c
  2ff5f727d612ee865a9f68d980e8cb80  gcc/testsuite/gcc.target/i386/pr105951-2.c
*************** e023ab4a1c0747c02d8effc26f3393b0  gcc/te
*** 74475,74485 ****
  cdc1238924ddc4849e17fa7a4f103cd1  gcc/testsuite/gcc.target/i386/pr106010-6b.c
  305edd413996b362318b95f9f0ec45ee  gcc/testsuite/gcc.target/i386/pr106010-6c.c
  8ad50da6f85dd19d3f04e6f43aa0e9eb  gcc/testsuite/gcc.target/i386/pr106010-7a.c
! 0fd8f64a290db0ac7388d7eea0833c34  gcc/testsuite/gcc.target/i386/pr106010-7b.c
  803e50f5cdfb7df0e51a402e325724ce  gcc/testsuite/gcc.target/i386/pr106010-7c.c
  fd58df44b6529e0ce5a9fd01402f7f76  gcc/testsuite/gcc.target/i386/pr106010-8a.c
  7a4a3961a6e6a6b4d06661aa08d9d406  gcc/testsuite/gcc.target/i386/pr106010-8b.c
! f222713f206cec358d69d31c959ed703  gcc/testsuite/gcc.target/i386/pr106010-8c.c
  6145941422f07b303fb138fc5b1073e4  gcc/testsuite/gcc.target/i386/pr106010-9a.c
  998ed8793869bc8b41b5c9099f797a1d  gcc/testsuite/gcc.target/i386/pr106010-9b.c
  c23e5f5ec6b023aacfed790b5837e59b  gcc/testsuite/gcc.target/i386/pr106010-9c.c
--- 79213,79223 ----
  cdc1238924ddc4849e17fa7a4f103cd1  gcc/testsuite/gcc.target/i386/pr106010-6b.c
  305edd413996b362318b95f9f0ec45ee  gcc/testsuite/gcc.target/i386/pr106010-6c.c
  8ad50da6f85dd19d3f04e6f43aa0e9eb  gcc/testsuite/gcc.target/i386/pr106010-7a.c
! b540b630558781c071652f95af687f12  gcc/testsuite/gcc.target/i386/pr106010-7b.c
  803e50f5cdfb7df0e51a402e325724ce  gcc/testsuite/gcc.target/i386/pr106010-7c.c
  fd58df44b6529e0ce5a9fd01402f7f76  gcc/testsuite/gcc.target/i386/pr106010-8a.c
  7a4a3961a6e6a6b4d06661aa08d9d406  gcc/testsuite/gcc.target/i386/pr106010-8b.c
! 44b478454569d1bac332b417a94d74ec  gcc/testsuite/gcc.target/i386/pr106010-8c.c
  6145941422f07b303fb138fc5b1073e4  gcc/testsuite/gcc.target/i386/pr106010-9a.c
  998ed8793869bc8b41b5c9099f797a1d  gcc/testsuite/gcc.target/i386/pr106010-9b.c
  c23e5f5ec6b023aacfed790b5837e59b  gcc/testsuite/gcc.target/i386/pr106010-9c.c
*************** c23e5f5ec6b023aacfed790b5837e59b  gcc/te
*** 74490,74495 ****
--- 79228,79236 ----
  bbd4316e9550f452c0b86cf4e3ecf4a8  gcc/testsuite/gcc.target/i386/pr106022-4.c
  324d64685ac24a3673ae04df4a898f6b  gcc/testsuite/gcc.target/i386/pr106038-1.c
  e1526b4760d054549a455444c35997de  gcc/testsuite/gcc.target/i386/pr106053.c
+ 40ab3593bfaa70f993c029ce56e9ae68  gcc/testsuite/gcc.target/i386/pr106060-1.c
+ 555bdd6c2a5c496c9428574a2fae4506  gcc/testsuite/gcc.target/i386/pr106060-2.c
+ 1d4aae923c5c6623353e71f7fd126355  gcc/testsuite/gcc.target/i386/pr106060-3.c
  a81b000946ef8fad4e273c7209987f99  gcc/testsuite/gcc.target/i386/pr106095.c
  7cb073c67b48920056a7708378cc97d8  gcc/testsuite/gcc.target/i386/pr106122.c
  2d54c8c3f54676aee89848132817019f  gcc/testsuite/gcc.target/i386/pr106231-1.c
*************** acf19b986d49be7e37d7e04397ccc58f  gcc/te
*** 74520,74526 ****
  6fd3d6be16cd52e90f9d33c5280c6d17  gcc/testsuite/gcc.target/i386/pr106959-2.c
  18e33bd1504e2b9ed0e66179031590f6  gcc/testsuite/gcc.target/i386/pr106959-3.c
  a4ade66456ceb82af20435e9dcf75a5e  gcc/testsuite/gcc.target/i386/pr106963.c
! a6d6cc09f712eb0d5c30d8c6bfd7fe4e  gcc/testsuite/gcc.target/i386/pr106994.c
  5a1d9db6cf3904e8bb2c665002bf8422  gcc/testsuite/gcc.target/i386/pr107055.c
  162334c371388bbef161d0454efcc9f5  gcc/testsuite/gcc.target/i386/pr107057.c
  b4c76c40ecd921fd705ccb0caf7bcc7e  gcc/testsuite/gcc.target/i386/pr107093.c
--- 79261,79267 ----
  6fd3d6be16cd52e90f9d33c5280c6d17  gcc/testsuite/gcc.target/i386/pr106959-2.c
  18e33bd1504e2b9ed0e66179031590f6  gcc/testsuite/gcc.target/i386/pr106959-3.c
  a4ade66456ceb82af20435e9dcf75a5e  gcc/testsuite/gcc.target/i386/pr106963.c
! 5e1694d2d4825a1621508b980ff3ecf4  gcc/testsuite/gcc.target/i386/pr106994.c
  5a1d9db6cf3904e8bb2c665002bf8422  gcc/testsuite/gcc.target/i386/pr107055.c
  162334c371388bbef161d0454efcc9f5  gcc/testsuite/gcc.target/i386/pr107057.c
  b4c76c40ecd921fd705ccb0caf7bcc7e  gcc/testsuite/gcc.target/i386/pr107093.c
*************** ef78793d46f8e457dbd4a2bb90422566  gcc/te
*** 74531,74536 ****
--- 79272,79287 ----
  cdeea0aa2bbf545e490be76ecf1ae59a  gcc/testsuite/gcc.target/i386/pr107304.c
  568fd8d874c6aaa98b459e4a4b02b865  gcc/testsuite/gcc.target/i386/pr107312.c
  a4658673585e066c5824fc2118bb4c52  gcc/testsuite/gcc.target/i386/pr107322.c
+ 8499c4a2b6800e662fc92e89616048eb  gcc/testsuite/gcc.target/i386/pr107432-1.c
+ a13005b8d335d0bb4a94a393643b9675  gcc/testsuite/gcc.target/i386/pr107432-10.c
+ 3d358f7f8fe0c53c08ff0b8271c3492e  gcc/testsuite/gcc.target/i386/pr107432-2.c
+ 17c672d7070b7efdb1d59396618c9dd7  gcc/testsuite/gcc.target/i386/pr107432-3.c
+ b6651f168ffe28ac771bed1805289bf6  gcc/testsuite/gcc.target/i386/pr107432-4.c
+ 7e4ae21847637b7e1e32167570c4ef0f  gcc/testsuite/gcc.target/i386/pr107432-5.c
+ c2befdfba96acc91539cffea7d56a034  gcc/testsuite/gcc.target/i386/pr107432-6.c
+ df5dc5946d5640eaf390e900d8538c90  gcc/testsuite/gcc.target/i386/pr107432-7.c
+ 7b5625e77c75cab9270770dbc5fee670  gcc/testsuite/gcc.target/i386/pr107432-8.c
+ 0995901a558b5b41785e414163e26c97  gcc/testsuite/gcc.target/i386/pr107432-9.c
  e2d688af45e4fff4045c47d283b9a3f3  gcc/testsuite/gcc.target/i386/pr107540.c
  1617c3b5060bd03bff4dcb9daf566ca3  gcc/testsuite/gcc.target/i386/pr107546.c
  2d88490404fbac5825875fad752f5d82  gcc/testsuite/gcc.target/i386/pr107548-1.c
*************** f41bcc9cec5b788807bebdd7850d9984  gcc/te
*** 74563,74569 ****
  19d501a9e83dcf447b7a20813cd5c63e  gcc/testsuite/gcc.target/i386/pr108832.c
  35b08fb233f8e50c79f9031224448ebb  gcc/testsuite/gcc.target/i386/pr108938-1.c
  f06baf49d6978c656ea587aa54eefe45  gcc/testsuite/gcc.target/i386/pr108938-2.c
! 26b8bc1a9b7d5eb5c4645c3a2084f7d7  gcc/testsuite/gcc.target/i386/pr108938-3.c
  b2d87acf7076d3345828df49eb24d0c9  gcc/testsuite/gcc.target/i386/pr108938-load-1.c
  53491e3f538a93b51e92b8c8a03197c8  gcc/testsuite/gcc.target/i386/pr108938-load-2.c
  7bdb45a4703b69087f030127552f957b  gcc/testsuite/gcc.target/i386/pr109011-b1.c
--- 79314,79320 ----
  19d501a9e83dcf447b7a20813cd5c63e  gcc/testsuite/gcc.target/i386/pr108832.c
  35b08fb233f8e50c79f9031224448ebb  gcc/testsuite/gcc.target/i386/pr108938-1.c
  f06baf49d6978c656ea587aa54eefe45  gcc/testsuite/gcc.target/i386/pr108938-2.c
! 15b6d653d8d25609a9f63a327a37419f  gcc/testsuite/gcc.target/i386/pr108938-3.c
  b2d87acf7076d3345828df49eb24d0c9  gcc/testsuite/gcc.target/i386/pr108938-load-1.c
  53491e3f538a93b51e92b8c8a03197c8  gcc/testsuite/gcc.target/i386/pr108938-load-2.c
  7bdb45a4703b69087f030127552f957b  gcc/testsuite/gcc.target/i386/pr109011-b1.c
*************** f677fb794e525a12d302549971a7b70d  gcc/te
*** 74643,74653 ****
  86e2c61b8ce60db6902944fcea70c9bb  gcc/testsuite/gcc.target/i386/pr110832-2.c
  09f5d6f078e626469f630e38c4729317  gcc/testsuite/gcc.target/i386/pr110832-3.c
  304a3d4f503374d056374e6a414b82e3  gcc/testsuite/gcc.target/i386/pr110843.c
! 397b5fc62039e6b08354b9dd22da90d6  gcc/testsuite/gcc.target/i386/pr111023-2.c
  b88aae0d24fb15cc43715836d9bf2c18  gcc/testsuite/gcc.target/i386/pr111023-4b.c
  060012033df7167c54831b5b28cf562c  gcc/testsuite/gcc.target/i386/pr111023-8b.c
  95fbcd7ddaac3c855e985835673182ac  gcc/testsuite/gcc.target/i386/pr111023.c
! 4166f0cbbec98584e09dedc7e128c6d4  gcc/testsuite/gcc.target/i386/pr111068.c
  9f4b24b8710ca01983411725919ea553  gcc/testsuite/gcc.target/i386/pr111127.c
  ef802a25b2bc4b4b385b11e23da65eb7  gcc/testsuite/gcc.target/i386/pr111225.c
  c9065d2ec6fc0f6750fa18d0a76c0c4c  gcc/testsuite/gcc.target/i386/pr111228.c
--- 79394,79404 ----
  86e2c61b8ce60db6902944fcea70c9bb  gcc/testsuite/gcc.target/i386/pr110832-2.c
  09f5d6f078e626469f630e38c4729317  gcc/testsuite/gcc.target/i386/pr110832-3.c
  304a3d4f503374d056374e6a414b82e3  gcc/testsuite/gcc.target/i386/pr110843.c
! f27b0d61fbaf16e0f8696c50b922015c  gcc/testsuite/gcc.target/i386/pr111023-2.c
  b88aae0d24fb15cc43715836d9bf2c18  gcc/testsuite/gcc.target/i386/pr111023-4b.c
  060012033df7167c54831b5b28cf562c  gcc/testsuite/gcc.target/i386/pr111023-8b.c
  95fbcd7ddaac3c855e985835673182ac  gcc/testsuite/gcc.target/i386/pr111023.c
! 6c9044c726d79ed5847a7ee4c8b1465a  gcc/testsuite/gcc.target/i386/pr111068.c
  9f4b24b8710ca01983411725919ea553  gcc/testsuite/gcc.target/i386/pr111127.c
  ef802a25b2bc4b4b385b11e23da65eb7  gcc/testsuite/gcc.target/i386/pr111225.c
  c9065d2ec6fc0f6750fa18d0a76c0c4c  gcc/testsuite/gcc.target/i386/pr111228.c
*************** d8cca194dc6db82d20ea1426711cc2ea  gcc/te
*** 74655,74660 ****
--- 79406,79412 ----
  9355c41ef1e78b70305475dee4bed5c8  gcc/testsuite/gcc.target/i386/pr111306.c
  1459550770245224c9edce111674e4e5  gcc/testsuite/gcc.target/i386/pr111340.c
  5792d8414a49aa4afbf19fa324e6fc73  gcc/testsuite/gcc.target/i386/pr111657.c
+ a0deeb2fd02e25d52715f4bf6138a2b1  gcc/testsuite/gcc.target/i386/pr111673.c
  d4cd7dbfdbbd5e89e09dc648e484762b  gcc/testsuite/gcc.target/i386/pr111698.c
  83c1fd77f5c5b1d08ae6f047d224f609  gcc/testsuite/gcc.target/i386/pr111736.c
  3c98ef59fa755a2495cfd58c6b263590  gcc/testsuite/gcc.target/i386/pr111745.c
*************** b43e8c56c9033d4c1f8d39f742aab4d4  gcc/te
*** 74664,74670 ****
  a02b7dbda2cbde55631a6de0c782cb06  gcc/testsuite/gcc.target/i386/pr111820-3.c
  ca614dc6b270000921a424091862e6bc  gcc/testsuite/gcc.target/i386/pr111845.c
  66086c14fee56da075b7ab9d5aee985a  gcc/testsuite/gcc.target/i386/pr111889.c
! c3cb44332bcb2fc9a2b71070dd592d16  gcc/testsuite/gcc.target/i386/pr111907.c
  6b5d4f53e8a1fd75a906e1a3cc1a449c  gcc/testsuite/gcc.target/i386/pr112276.c
  592fbf1f98a7c30e432c6c49c9e70ab3  gcc/testsuite/gcc.target/i386/pr112325-1.c
  ee7c876119a1d014a83f4ab835388676  gcc/testsuite/gcc.target/i386/pr112325-2.c
--- 79416,79422 ----
  a02b7dbda2cbde55631a6de0c782cb06  gcc/testsuite/gcc.target/i386/pr111820-3.c
  ca614dc6b270000921a424091862e6bc  gcc/testsuite/gcc.target/i386/pr111845.c
  66086c14fee56da075b7ab9d5aee985a  gcc/testsuite/gcc.target/i386/pr111889.c
! f9775d524e5b6e1d82ccd6ac42fa6b61  gcc/testsuite/gcc.target/i386/pr111907.c
  6b5d4f53e8a1fd75a906e1a3cc1a449c  gcc/testsuite/gcc.target/i386/pr112276.c
  592fbf1f98a7c30e432c6c49c9e70ab3  gcc/testsuite/gcc.target/i386/pr112325-1.c
  ee7c876119a1d014a83f4ab835388676  gcc/testsuite/gcc.target/i386/pr112325-2.c
*************** e36cb7df855bcf5bf05b3b03d5ddabb6  gcc/te
*** 74677,74682 ****
--- 79429,79449 ----
  d639374a10f845f4130a83222b9ee43c  gcc/testsuite/gcc.target/i386/pr112495.c
  35a8999d2b193e394aa0f2a62dc658b2  gcc/testsuite/gcc.target/i386/pr112496.c
  15369f3b1980799cf460d0387f219f17  gcc/testsuite/gcc.target/i386/pr112532.c
+ 9628dfcc37ad97c2ca3cc0e0108bbd44  gcc/testsuite/gcc.target/i386/pr112600-1a.c
+ a691dee16333ab121fd4d5eed23e5dd5  gcc/testsuite/gcc.target/i386/pr112600-1b.c
+ 1e591d80c633145821961df0efc94d1b  gcc/testsuite/gcc.target/i386/pr112600-2a.c
+ 01bd17e492571f1dd822b63a4c1740fb  gcc/testsuite/gcc.target/i386/pr112600-2b.c
+ 13925c07471abd347233149a7fa68619  gcc/testsuite/gcc.target/i386/pr112600-3a.c
+ 42372d5a36b1cc7ef79c5d385ddb637e  gcc/testsuite/gcc.target/i386/pr112600-3b.c
+ e246216d021ce7cd46cafc31daa89be4  gcc/testsuite/gcc.target/i386/pr112600-4a.c
+ 062d02863e60f32e6641d1bcad860e5b  gcc/testsuite/gcc.target/i386/pr112600-4b.c
+ 535d132684fe4482e2879b8da6f97715  gcc/testsuite/gcc.target/i386/pr112600-5-u16.c
+ 25dced494ee14d03dff0d8258ba86452  gcc/testsuite/gcc.target/i386/pr112600-5-u32.c
+ c5be69eeedac1de0acbf91a3330f1b4b  gcc/testsuite/gcc.target/i386/pr112600-5-u64.c
+ d140597316116ee9f305fd2a9e7d0722  gcc/testsuite/gcc.target/i386/pr112600-5-u8.c
+ 835cdc8bd204e2cf75976d54cf941376  gcc/testsuite/gcc.target/i386/pr112600-5.h
+ cc3e9594ed6ec6fa9e711b7cdd92a5a4  gcc/testsuite/gcc.target/i386/pr112600-a.c
+ da5232bd3758528b0df0bdfd4747589b  gcc/testsuite/gcc.target/i386/pr112600-b.c
  25ecc2e8c60064d0e6472dd56a13598e  gcc/testsuite/gcc.target/i386/pr112605-1.c
  c5bf5cd32acee0668f89c44d195c3ef2  gcc/testsuite/gcc.target/i386/pr112605-2.c
  10b308e0b6093a29ea2c232670caebf1  gcc/testsuite/gcc.target/i386/pr112605.c
*************** f9de493ed7de291c5d3823adeea1b530  gcc/te
*** 74688,74698 ****
  c7536259cf1c735ccb0b3dba13a99d7d  gcc/testsuite/gcc.target/i386/pr112875.c
  cee904627dd8919025dea0c6817c07d5  gcc/testsuite/gcc.target/i386/pr112891-2.c
  008137751ea4cc5c732bf09733a5c5d3  gcc/testsuite/gcc.target/i386/pr112891.c
! c1fc43e09bc0ea310a0ac5413393974b  gcc/testsuite/gcc.target/i386/pr112943.c
  fbbc62e1df14b88a5f21ff14a68a9210  gcc/testsuite/gcc.target/i386/pr112962.c
  16b0db7542d3fa79bc5c5e987147532d  gcc/testsuite/gcc.target/i386/pr112992.c
  b93179270ceae2b38ad009cffbecd4ca  gcc/testsuite/gcc.target/i386/pr113044.c
  b336efc3872fb3d530f97e9556a46578  gcc/testsuite/gcc.target/i386/pr113048.c
  985d15f4237e366d808d224318b78cb2  gcc/testsuite/gcc.target/i386/pr113122-1.c
  d150e8020454e98754c7dabfd41ad2ea  gcc/testsuite/gcc.target/i386/pr113122-2.c
  122f757ff15551df2a5ee4ba2135d85f  gcc/testsuite/gcc.target/i386/pr113122-3.c
--- 79455,79468 ----
  c7536259cf1c735ccb0b3dba13a99d7d  gcc/testsuite/gcc.target/i386/pr112875.c
  cee904627dd8919025dea0c6817c07d5  gcc/testsuite/gcc.target/i386/pr112891-2.c
  008137751ea4cc5c732bf09733a5c5d3  gcc/testsuite/gcc.target/i386/pr112891.c
! bc1f2e09f4cf473da62070811f637acc  gcc/testsuite/gcc.target/i386/pr112943.c
  fbbc62e1df14b88a5f21ff14a68a9210  gcc/testsuite/gcc.target/i386/pr112962.c
  16b0db7542d3fa79bc5c5e987147532d  gcc/testsuite/gcc.target/i386/pr112992.c
  b93179270ceae2b38ad009cffbecd4ca  gcc/testsuite/gcc.target/i386/pr113044.c
  b336efc3872fb3d530f97e9556a46578  gcc/testsuite/gcc.target/i386/pr113048.c
+ a6040be6551808763efaec7c170a9508  gcc/testsuite/gcc.target/i386/pr113079-2.c
+ 8c9f77980091e1f72d69bbcbda8d57f9  gcc/testsuite/gcc.target/i386/pr113079.c
+ c0b37433c7943e84ab87d5475c8dee7b  gcc/testsuite/gcc.target/i386/pr113090.c
  985d15f4237e366d808d224318b78cb2  gcc/testsuite/gcc.target/i386/pr113122-1.c
  d150e8020454e98754c7dabfd41ad2ea  gcc/testsuite/gcc.target/i386/pr113122-2.c
  122f757ff15551df2a5ee4ba2135d85f  gcc/testsuite/gcc.target/i386/pr113122-3.c
*************** d150e8020454e98754c7dabfd41ad2ea  gcc/te
*** 74701,74716 ****
  9fb3fb011da6ec53a9b79e09b5677dbc  gcc/testsuite/gcc.target/i386/pr113133-2.c
  aa7afd82afab476cca1d41fe1223f473  gcc/testsuite/gcc.target/i386/pr113231.c
  5a42928e4c2936666a4e8c610a50ce96  gcc/testsuite/gcc.target/i386/pr113415.c
! 457ec900383feae9352e7455f7d503c8  gcc/testsuite/gcc.target/i386/pr113560.c
  4b607a87f64fa4cdb46c07d556b6c89f  gcc/testsuite/gcc.target/i386/pr113622-1.c
  56da2b6247afd52355a77b7d0ed83122  gcc/testsuite/gcc.target/i386/pr113622-2.c
  3a9d8d29fd88cf096fa864f0d13222fc  gcc/testsuite/gcc.target/i386/pr113622-3.c
  32961cbf15615c89045042f8ad2ac064  gcc/testsuite/gcc.target/i386/pr113656.c
  d0e5711b97afe1b1990bb5e2ae02b3a6  gcc/testsuite/gcc.target/i386/pr113670.c
! ccb5cb7c7bddafe88ad220131d5c37e3  gcc/testsuite/gcc.target/i386/pr113689-1.c
! f493395d4fe6815eba3b57983b4a9ddb  gcc/testsuite/gcc.target/i386/pr113689-2.c
! 345305b2acb8c137435a2f63294e05ac  gcc/testsuite/gcc.target/i386/pr113689-3.c
  50ffaa51abcbb82cfc7644b67824e8fc  gcc/testsuite/gcc.target/i386/pr113690.c
  a9a573012fc484bb497dc872018bf972  gcc/testsuite/gcc.target/i386/pr113871-1a.c
  ad5a6a885aebfea78cc5e42d766fb108  gcc/testsuite/gcc.target/i386/pr113871-1b.c
  c6416e13d7dbfa56b101f9257c193a91  gcc/testsuite/gcc.target/i386/pr113871-2a.c
--- 79471,79490 ----
  9fb3fb011da6ec53a9b79e09b5677dbc  gcc/testsuite/gcc.target/i386/pr113133-2.c
  aa7afd82afab476cca1d41fe1223f473  gcc/testsuite/gcc.target/i386/pr113231.c
  5a42928e4c2936666a4e8c610a50ce96  gcc/testsuite/gcc.target/i386/pr113415.c
! f8b64ca73b7bc8770841c9c2416913fe  gcc/testsuite/gcc.target/i386/pr113560.c
! 91015af16af38ebae9f56e7a6c0ef454  gcc/testsuite/gcc.target/i386/pr113609-1.c
! f940d9eb17cb22b7a6c19e8153700ac5  gcc/testsuite/gcc.target/i386/pr113609-2.c
  4b607a87f64fa4cdb46c07d556b6c89f  gcc/testsuite/gcc.target/i386/pr113622-1.c
  56da2b6247afd52355a77b7d0ed83122  gcc/testsuite/gcc.target/i386/pr113622-2.c
  3a9d8d29fd88cf096fa864f0d13222fc  gcc/testsuite/gcc.target/i386/pr113622-3.c
  32961cbf15615c89045042f8ad2ac064  gcc/testsuite/gcc.target/i386/pr113656.c
  d0e5711b97afe1b1990bb5e2ae02b3a6  gcc/testsuite/gcc.target/i386/pr113670.c
! e2fbf730f0ffcdee1cf99d081bd519e7  gcc/testsuite/gcc.target/i386/pr113689-1.c
! 7f3f6a6d920c535824da1f030746548a  gcc/testsuite/gcc.target/i386/pr113689-2.c
! 89c3a24a466af34d716e0816462f6e1b  gcc/testsuite/gcc.target/i386/pr113689-3.c
  50ffaa51abcbb82cfc7644b67824e8fc  gcc/testsuite/gcc.target/i386/pr113690.c
+ 4b502c99ffa8817f3bb38ce04bfb2133  gcc/testsuite/gcc.target/i386/pr113729-adc-sbb.c
+ c9620173b7d760561377bb12f3643494  gcc/testsuite/gcc.target/i386/pr113729.c
  a9a573012fc484bb497dc872018bf972  gcc/testsuite/gcc.target/i386/pr113871-1a.c
  ad5a6a885aebfea78cc5e42d766fb108  gcc/testsuite/gcc.target/i386/pr113871-1b.c
  c6416e13d7dbfa56b101f9257c193a91  gcc/testsuite/gcc.target/i386/pr113871-2a.c
*************** b9fa89b57d1d0049a7e5e2e459fa4cc0  gcc/te
*** 74724,74742 ****
--- 79498,79640 ----
  04b5ce89d67e35431c960a773e44688c  gcc/testsuite/gcc.target/i386/pr113921.c
  bb78e50da618d52883c6032b5f11496e  gcc/testsuite/gcc.target/i386/pr114094.c
  45cca736f72d350d1e1d47780dd326c4  gcc/testsuite/gcc.target/i386/pr114097-1.c
+ 638504bf021f17e23b4a3e6a851f3b3f  gcc/testsuite/gcc.target/i386/pr114125.c
  f561e51e21b70027e9a545f161c78a39  gcc/testsuite/gcc.target/i386/pr114184.c
+ 627e6ee5800c0c11306dae58cfeb2b02  gcc/testsuite/gcc.target/i386/pr114277.c
  98a1ee2137f67f693371dbb6f43702b2  gcc/testsuite/gcc.target/i386/pr114299.c
  ca68db2c39d0a3fceab3c9705cb9af62  gcc/testsuite/gcc.target/i386/pr114319.c
  168635b91f788ee23782943f3ee8fc02  gcc/testsuite/gcc.target/i386/pr114334.c
  d2e40d7bd7109a0b57be13dfeec77fe6  gcc/testsuite/gcc.target/i386/pr114339.c
  624a387ab1cfd526aa46778b8c3cbf5f  gcc/testsuite/gcc.target/i386/pr114415.c
+ 20333e9e8b9d7eab426991d507dd5388  gcc/testsuite/gcc.target/i386/pr114427.c
+ 9fd88b357fc51d5370b6d606a85b6fe4  gcc/testsuite/gcc.target/i386/pr114428-1.c
+ f71e159b7bdd1285bebccb436e95c33b  gcc/testsuite/gcc.target/i386/pr114428.c
+ 97f2e00be5d1e5a232be335906c62502  gcc/testsuite/gcc.target/i386/pr114514-shift.c
+ 3c3bcaa840573fbc86b72f4a3e3c581f  gcc/testsuite/gcc.target/i386/pr114514-shufb.c
+ 71c9dd89127406a42e0f77136e9f942d  gcc/testsuite/gcc.target/i386/pr114659.c
+ edcac19c61198f804c1b20b5c166ad2f  gcc/testsuite/gcc.target/i386/pr114942.c
  ebdeaf391a6896f61adc82e80aa7b66b  gcc/testsuite/gcc.target/i386/pr115069.c
+ 12e55f1c51d7d1d1a0cf3fb93ef69cc2  gcc/testsuite/gcc.target/i386/pr115102.c
+ bd1cafada5f0044d73bfd97b075ee1ac  gcc/testsuite/gcc.target/i386/pr115146.c
+ 5f9901cff1ef92361e65406f014d7645  gcc/testsuite/gcc.target/i386/pr115161-1.c
+ a92b6563a79368bbca34432a840644a1  gcc/testsuite/gcc.target/i386/pr115299.c
+ 7b7e18701757d2e67dea575cf9b05922  gcc/testsuite/gcc.target/i386/pr115321.c
+ beee5a2627011ee9deaa9161648359d8  gcc/testsuite/gcc.target/i386/pr115384.c
+ 8c3c47e8ca0db3453c9de0e48f093d22  gcc/testsuite/gcc.target/i386/pr115397.c
+ 8ceb576f33f9e32562377c5095bfcd32  gcc/testsuite/gcc.target/i386/pr115407.c
+ 33fb20e5106a49a886cce63099016cb8  gcc/testsuite/gcc.target/i386/pr115452.c
+ 4fde51298db2f6dab6db5cca42bacb8e  gcc/testsuite/gcc.target/i386/pr115462.c
  3bcfebcd8561d969d8eb5bcbe4eb0673  gcc/testsuite/gcc.target/i386/pr115508.c
+ 5864e0d66ba61e75488290f76448db86  gcc/testsuite/gcc.target/i386/pr115517.c
+ ae4ee357225c00ac286e183fee7b266a  gcc/testsuite/gcc.target/i386/pr115568.c
+ 324dce510f57c52847b8a618b2c5eafe  gcc/testsuite/gcc.target/i386/pr115749.c
+ eb7e87be69198c687bb867fd649b611e  gcc/testsuite/gcc.target/i386/pr115796.c
+ 99bd8cb8feeb63bd4ef7afd002426817  gcc/testsuite/gcc.target/i386/pr115843.c
+ 260ddeb65e602c427e0537e38c8f34ce  gcc/testsuite/gcc.target/i386/pr115863-1.c
  4c9bd5ab4032e6b8dbf245c84e59d76d  gcc/testsuite/gcc.target/i386/pr115872.c
+ c97332347d15609dbad74e12d223b07e  gcc/testsuite/gcc.target/i386/pr115891.c
+ 208bd5a3d1eb34f75d3ece7f0179189c  gcc/testsuite/gcc.target/i386/pr115910.c
  2022f72b9b52cbf2b0c6b3c3e8e175d1  gcc/testsuite/gcc.target/i386/pr115978-1.c
  db326b69fa0bc58c58e6087280757cec  gcc/testsuite/gcc.target/i386/pr115978-2.c
+ 667fbe7bd981494b067a94d4b7aa743c  gcc/testsuite/gcc.target/i386/pr116043.c
+ 601e52cc114fb6168c2c3de032d35ebe  gcc/testsuite/gcc.target/i386/pr116065.c
+ af34b77e5ee2963838afcd3330821e7f  gcc/testsuite/gcc.target/i386/pr116096.c
+ f465b493ef4cd8fedb8eb45d4397bdf2  gcc/testsuite/gcc.target/i386/pr116142.c
+ 047d24cb35d473698c2bcf2094d483fc  gcc/testsuite/gcc.target/i386/pr116174.c
+ 53b4f9f435b0daa700fd5937cf27f349  gcc/testsuite/gcc.target/i386/pr116258.c
+ 6909f87518edc9432bf3b69c22d01d5f  gcc/testsuite/gcc.target/i386/pr116274-2.c
+ 68dcc6e225835bd404fac33fbc2ba3c1  gcc/testsuite/gcc.target/i386/pr116274.c
+ 48aac08804f50952099264ab24d48c37  gcc/testsuite/gcc.target/i386/pr116353.c
+ 5d7ed648796e3bb1badb99e986fd299a  gcc/testsuite/gcc.target/i386/pr116512.c
+ a006d0528b5396c949ad41d70bbe59d3  gcc/testsuite/gcc.target/i386/pr116587.c
+ b032673fbd5ea0fa71ec43f67e37cd44  gcc/testsuite/gcc.target/i386/pr116621.c
+ 204f68736fb9dcb0b78a56062fcbeff7  gcc/testsuite/gcc.target/i386/pr116675.c
+ ea223879616e9328b5dc0fdff9dfb021  gcc/testsuite/gcc.target/i386/pr116725.c
+ 15bae7870bdfe5399b1490ea96088982  gcc/testsuite/gcc.target/i386/pr116839.c
+ 575b8c9325e05d9cc8bf9da40157ca6c  gcc/testsuite/gcc.target/i386/pr116896.c
+ 5ec9d676bcac04a40f99ae0d3f4b483a  gcc/testsuite/gcc.target/i386/pr116921.c
+ 10b198e20379ccbe3f25942097b16e56  gcc/testsuite/gcc.target/i386/pr116940.c
+ 4fd839ad1866642d113d7c4f7474f89f  gcc/testsuite/gcc.target/i386/pr116962.c
+ 9f7352a1180266d99834b497bf40e98b  gcc/testsuite/gcc.target/i386/pr116979.c
+ 1e2d99de60b527e7c7a80e0d6d754281  gcc/testsuite/gcc.target/i386/pr117000.c
+ 2aa21bf774c3f8c220a7ce803516d439  gcc/testsuite/gcc.target/i386/pr117105.c
+ 873d8965ee038d36a40500e2a179c793  gcc/testsuite/gcc.target/i386/pr117116.c
+ bd129be2e771c24c9a0830b8a42bbd83  gcc/testsuite/gcc.target/i386/pr117159.c
+ efa4b56ed40196513bbde44f2c3c3b92  gcc/testsuite/gcc.target/i386/pr117165.c
+ bc6fa580d6a8811a7eb7c509c082a543  gcc/testsuite/gcc.target/i386/pr117192.c
+ 5763922897de0d12d2de365c88086059  gcc/testsuite/gcc.target/i386/pr117232-1.c
+ e6569d31b927738f61f381656212fbdc  gcc/testsuite/gcc.target/i386/pr117232-apx-1.c
+ 049c599477a9b98ba1a335deaee5dc79  gcc/testsuite/gcc.target/i386/pr117240_avx.c
+ 479a22e091d361b8f0ed8a3d2e44011f  gcc/testsuite/gcc.target/i386/pr117240_avx512f.c
+ da692b8fe7fe8e3d33b45f3f919da356  gcc/testsuite/gcc.target/i386/pr117296.c
+ 76054ad9340260b4fea8af17fb6e67a6  gcc/testsuite/gcc.target/i386/pr117304-1.c
+ 917d3074e579c1fad9a86cf1657c1ab6  gcc/testsuite/gcc.target/i386/pr117318.c
+ d9c36e68265950d44ce781ce1be85bf6  gcc/testsuite/gcc.target/i386/pr117357.c
+ 806f0e4354836aef875182ce5a2a2a6c  gcc/testsuite/gcc.target/i386/pr117416-1.c
+ a3fb9f039624d844dbdebb7d7a80e797  gcc/testsuite/gcc.target/i386/pr117416-2.c
+ d354c62b8ff60efc0d5983bf81d1bfa4  gcc/testsuite/gcc.target/i386/pr117418-1.c
+ 60ce35a307c6c720d7d566058b4d7c52  gcc/testsuite/gcc.target/i386/pr117432.c
+ 7ddffdfcd8796e4829e7f8adf656a64b  gcc/testsuite/gcc.target/i386/pr117452.c
+ 534b8fee8b8073071e03fd5102158d56  gcc/testsuite/gcc.target/i386/pr117495.c
+ 127a1f3e3984930f2390a08d50129845  gcc/testsuite/gcc.target/i386/pr117608-1.c
+ ff72d102e6495b395a41c9ca344439f9  gcc/testsuite/gcc.target/i386/pr117608-2.c
+ 14f5b84d39889596d20cac32057bcea1  gcc/testsuite/gcc.target/i386/pr117642-1.c
+ 4628f17f11d1ba2d9dee54ff355fb1a4  gcc/testsuite/gcc.target/i386/pr117642-2.c
+ 0738c31ff47dbd818181fcb96e592abe  gcc/testsuite/gcc.target/i386/pr117835.c
+ 240efd923aa4bf46c4d60d1eb61f94ed  gcc/testsuite/gcc.target/i386/pr117860.c
+ 74ee7dbf306b8ed9f2be2b62f28be23e  gcc/testsuite/gcc.target/i386/pr117926.c
+ e08bbff7cf306c118f15daf27a5ece77  gcc/testsuite/gcc.target/i386/pr117930.c
+ 20511f0fd6ca86a102c88f9c3065d7a3  gcc/testsuite/gcc.target/i386/pr117946.c
+ 8b0416c9d908a38bb16eb178f241f986  gcc/testsuite/gcc.target/i386/pr118017.c
+ ee3d5d61e5865da192e05b0bf8d281a4  gcc/testsuite/gcc.target/i386/pr118067-2.c
+ 209b6dcc04de9e64a22573859477e524  gcc/testsuite/gcc.target/i386/pr118067.c
+ 8d3959577ea1476102794daa448ff9a8  gcc/testsuite/gcc.target/i386/pr118266.c
+ 5986c154fe48414ea251097cc6d4dadb  gcc/testsuite/gcc.target/i386/pr118489.c
+ 79d193d908a72a47b95b2a16b8a869ad  gcc/testsuite/gcc.target/i386/pr118497.c
+ f85fdb4ae5883af83b5a5367bbfc0246  gcc/testsuite/gcc.target/i386/pr118510.c
+ f24c1297760ff8758f8bb141b7ebc2d7  gcc/testsuite/gcc.target/i386/pr118713-1-x32.c
+ ffba0001505c701f83730ed44f23f2c1  gcc/testsuite/gcc.target/i386/pr118713-1.c
+ 1b0b640a8d9d56d6f0222f0a867fd7c6  gcc/testsuite/gcc.target/i386/pr118713-10-x32.c
+ 46583349c5fa7d0b9505db35427e8f6f  gcc/testsuite/gcc.target/i386/pr118713-10.c
+ 48f02c5a2262e061ac6fb67b4b5e6afe  gcc/testsuite/gcc.target/i386/pr118713-11-x32.c
+ 3957cb2dd73e1083ed883d9685414c68  gcc/testsuite/gcc.target/i386/pr118713-11.c
+ 28faf2b1d9f0c1bffa39b0a0ecb85d5f  gcc/testsuite/gcc.target/i386/pr118713-12-x32.c
+ 8c727a9c4eafc5ec4a2c1908a1ceb383  gcc/testsuite/gcc.target/i386/pr118713-12.c
+ 28e1fab7c325627c9ea4452699381309  gcc/testsuite/gcc.target/i386/pr118713-2-x32.c
+ 7cb3e0a7aa408b62144d64f03148e4b1  gcc/testsuite/gcc.target/i386/pr118713-2.c
+ 3e295a0823a4844ce4bf9219185830f7  gcc/testsuite/gcc.target/i386/pr118713-3-x32.c
+ c4f61310093e0ff1ccdf4b5fbf76e2b2  gcc/testsuite/gcc.target/i386/pr118713-3.c
+ b879f7e7a11e4d9821b11ca247088707  gcc/testsuite/gcc.target/i386/pr118713-4-x32.c
+ e5912188d25e504d1b13387c2bd17af5  gcc/testsuite/gcc.target/i386/pr118713-4.c
+ e011ab1c5e61751656b035b8ea03e501  gcc/testsuite/gcc.target/i386/pr118713-5-x32.c
+ 92c287c8ae2b40a6d08142358bba42e5  gcc/testsuite/gcc.target/i386/pr118713-5.c
+ 0e6866cce168d549928e0cd9d20c2ac5  gcc/testsuite/gcc.target/i386/pr118713-6-x32.c
+ 8a216452764636bc8b17d366fb08fb83  gcc/testsuite/gcc.target/i386/pr118713-6.c
+ ddb512c25f71170e25c3f5334dda428f  gcc/testsuite/gcc.target/i386/pr118713-7-x32.c
+ 3f29aaab5f4a5f937966e1f278df5d4a  gcc/testsuite/gcc.target/i386/pr118713-7.c
+ 816fece064b9ce1b15863bda27f4496e  gcc/testsuite/gcc.target/i386/pr118713-8-x32.c
+ 6dbbac140008b0bb52313dc73d9ec572  gcc/testsuite/gcc.target/i386/pr118713-8.c
+ 9a294391b2e28707e1a33ce1d944df06  gcc/testsuite/gcc.target/i386/pr118713-9-x32.c
+ a394dff414dbdd14f78e4cd8a7ec17d4  gcc/testsuite/gcc.target/i386/pr118713-9.c
+ e12ace984bb5ee071207675ca43c7e58  gcc/testsuite/gcc.target/i386/pr118739.c
  991b7f7f44e28179f98bb458fdb69ea6  gcc/testsuite/gcc.target/i386/pr11877-2.c
  e7f6a568e551d3786797d6f56294b949  gcc/testsuite/gcc.target/i386/pr11877.c
+ 61d1a6c7aba6d7071f54e24b6dc92da7  gcc/testsuite/gcc.target/i386/pr118776.c
+ b8172e9b0b80f9484c5df81036fc03af  gcc/testsuite/gcc.target/i386/pr118815.c
+ 0f3590e2e1a5ad51d95272730fbebe25  gcc/testsuite/gcc.target/i386/pr118936.c
+ a29824de389210a43ed1b8d66fd67fc4  gcc/testsuite/gcc.target/i386/pr118940.c
+ bd75c2f2962774fbfe5a6a6007998c0b  gcc/testsuite/gcc.target/i386/pr119171-1.c
+ ccbd1332987abb6ae1d43a2bbd8cc701  gcc/testsuite/gcc.target/i386/pr119171-2.c
+ 4443ac3c8ec04223080890b714b6e79c  gcc/testsuite/gcc.target/i386/pr119307.c
+ 887f2ee11a76629bd882751d010b3b68  gcc/testsuite/gcc.target/i386/pr119386-1.c
+ 4933ca639383e3622b4fa3eacfce8d96  gcc/testsuite/gcc.target/i386/pr119386-2.c
+ 0bbc89787e90da2fb5dd023fb83ca22b  gcc/testsuite/gcc.target/i386/pr119386-3.c
+ 9bebd659a3111fbba4fff6c39483b911  gcc/testsuite/gcc.target/i386/pr119425.c
+ ef2cdb48cbe0dedfce0d7eb770a1f30f  gcc/testsuite/gcc.target/i386/pr119450.c
+ 42f4bc7c237a78cf6b5c8c5a42d51425  gcc/testsuite/gcc.target/i386/pr119473.c
+ 3cee806d4474b5711bc99a7abe73cadc  gcc/testsuite/gcc.target/i386/pr119549.c
+ bb420ee68e25b3f2c223a9b99a8e7c79  gcc/testsuite/gcc.target/i386/pr119784a.c
+ 038406363ec46be9b531268d03546b94  gcc/testsuite/gcc.target/i386/pr119784b.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
*************** a4f1947b39428a2873d3ef8795360c4c  gcc/te
*** 74888,74893 ****
--- 79786,79795 ----
  1ad14b9fd3d9ac99651021e28dc07827  gcc/testsuite/gcc.target/i386/pr36246.c
  5886a4917e0dd3164417fecf37624385  gcc/testsuite/gcc.target/i386/pr36438.c
  bfe2a46342db3c956f53832501c2fc25  gcc/testsuite/gcc.target/i386/pr36502.c
+ a15920d2bd39af2c6ba3dd59c538061f  gcc/testsuite/gcc.target/i386/pr36503-1.c
+ 34cc8870bfb7e47801158a468a92ef55  gcc/testsuite/gcc.target/i386/pr36503-2.c
+ f8e729e4cba21d4549fca283100064d7  gcc/testsuite/gcc.target/i386/pr36503-3.c
+ 59ea01d571864c94f133b60e3fe89bc5  gcc/testsuite/gcc.target/i386/pr36503-4.c
  3fd6433ed962a5630538566ff28b7f8a  gcc/testsuite/gcc.target/i386/pr36533.c
  0b87c77e85a24ff1698d032433722192  gcc/testsuite/gcc.target/i386/pr36578-1.c
  f795279a6fc6ad5bbd419253da875a10  gcc/testsuite/gcc.target/i386/pr36578-2.c
*************** aff7074250516571a07457eace3f2639  gcc/te
*** 75117,75127 ****
  90079b4ea4763efde34a2a2bd21612b4  gcc/testsuite/gcc.target/i386/pr51235.c
  e2c5c9c01d62f181543c46c15e625efc  gcc/testsuite/gcc.target/i386/pr51236.c
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
  5127dab483b6f86a4dd94731958d0698  gcc/testsuite/gcc.target/i386/pr51954.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
  82298a8708df4bdb4784b6d76acb9446  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
! 8e05abd29e7e9ff35950d35273b14425  gcc/testsuite/gcc.target/i386/pr52252-atom.c
  035dc0f5acfabbcff9a163f2cb1371af  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
  c48d1106f891da8cb9f2181a389e01b7  gcc/testsuite/gcc.target/i386/pr52698.c
--- 80019,80030 ----
  90079b4ea4763efde34a2a2bd21612b4  gcc/testsuite/gcc.target/i386/pr51235.c
  e2c5c9c01d62f181543c46c15e625efc  gcc/testsuite/gcc.target/i386/pr51236.c
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
+ 05add509309b947d86d751fb3e0a660a  gcc/testsuite/gcc.target/i386/pr51492.c
  5127dab483b6f86a4dd94731958d0698  gcc/testsuite/gcc.target/i386/pr51954.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
  82298a8708df4bdb4784b6d76acb9446  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
! 0e2ba2d0caa9aae6056ecf5d43a7a26e  gcc/testsuite/gcc.target/i386/pr52252-atom.c
  035dc0f5acfabbcff9a163f2cb1371af  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
  c48d1106f891da8cb9f2181a389e01b7  gcc/testsuite/gcc.target/i386/pr52698.c
*************** fd40b61a82fba3ab0c6bb50cfedfb117  gcc/te
*** 75149,75157 ****
  45a3485d7b45197693c5679d3215b6ce  gcc/testsuite/gcc.target/i386/pr53416.c
  438890bd8588325bfdd31602ae74f65c  gcc/testsuite/gcc.target/i386/pr53425-1.c
  384ba022d2854e096a4ab0f145961c51  gcc/testsuite/gcc.target/i386/pr53425-2.c
! 172835d4d3a830c063864517d916faad  gcc/testsuite/gcc.target/i386/pr53533-1.c
  925203ac5caff2b16cefcd6ff6dc58af  gcc/testsuite/gcc.target/i386/pr53533-2.c
! a3732fbf175290a36fc0d93f0595076c  gcc/testsuite/gcc.target/i386/pr53533-3.c
  b781be4db7f09c50f9a239720bb47251  gcc/testsuite/gcc.target/i386/pr53533-4.c
  a9ae3f8158d6dabac2309c51e13115c1  gcc/testsuite/gcc.target/i386/pr53533-5.c
  b39743561f1aade37b33835b241fb062  gcc/testsuite/gcc.target/i386/pr53623.c
--- 80052,80060 ----
  45a3485d7b45197693c5679d3215b6ce  gcc/testsuite/gcc.target/i386/pr53416.c
  438890bd8588325bfdd31602ae74f65c  gcc/testsuite/gcc.target/i386/pr53425-1.c
  384ba022d2854e096a4ab0f145961c51  gcc/testsuite/gcc.target/i386/pr53425-2.c
! dfa8214f659f881a28ee5b62a6e012bd  gcc/testsuite/gcc.target/i386/pr53533-1.c
  925203ac5caff2b16cefcd6ff6dc58af  gcc/testsuite/gcc.target/i386/pr53533-2.c
! 88dc47047d3db834a032e7f368999efa  gcc/testsuite/gcc.target/i386/pr53533-3.c
  b781be4db7f09c50f9a239720bb47251  gcc/testsuite/gcc.target/i386/pr53533-4.c
  a9ae3f8158d6dabac2309c51e13115c1  gcc/testsuite/gcc.target/i386/pr53533-5.c
  b39743561f1aade37b33835b241fb062  gcc/testsuite/gcc.target/i386/pr53623.c
*************** eb594eead359af59ccf1611376ca0e06  gcc/te
*** 75206,75212 ****
  3e411acf0cb67b1e2dfd7386904224ad  gcc/testsuite/gcc.target/i386/pr55512-2.c
  b4fb0c886229835ec55bd681f831812b  gcc/testsuite/gcc.target/i386/pr55512-3.c
  2d3d0716987d79a9b2427e2e7237c420  gcc/testsuite/gcc.target/i386/pr55512-4.c
! 723462753d8451dcaa85c833459986df  gcc/testsuite/gcc.target/i386/pr55583.c
  ed1ba8dd30b6e7d0c41497405b5c6d08  gcc/testsuite/gcc.target/i386/pr55590-1.c
  f36e5b68f83ad7f55d170085ad4c4fff  gcc/testsuite/gcc.target/i386/pr55590-2.c
  bdfd75705a8ed1ae370d0e6397e89e61  gcc/testsuite/gcc.target/i386/pr55597.c
--- 80109,80115 ----
  3e411acf0cb67b1e2dfd7386904224ad  gcc/testsuite/gcc.target/i386/pr55512-2.c
  b4fb0c886229835ec55bd681f831812b  gcc/testsuite/gcc.target/i386/pr55512-3.c
  2d3d0716987d79a9b2427e2e7237c420  gcc/testsuite/gcc.target/i386/pr55512-4.c
! f662338fcdd10dbbb12bd56e75672302  gcc/testsuite/gcc.target/i386/pr55583.c
  ed1ba8dd30b6e7d0c41497405b5c6d08  gcc/testsuite/gcc.target/i386/pr55590-1.c
  f36e5b68f83ad7f55d170085ad4c4fff  gcc/testsuite/gcc.target/i386/pr55590-2.c
  bdfd75705a8ed1ae370d0e6397e89e61  gcc/testsuite/gcc.target/i386/pr55597.c
*************** a085a03f3e2cb2efe81768c469c38448  gcc/te
*** 75476,75487 ****
  8b742d2465b2b0ca437850eeca0a1a81  gcc/testsuite/gcc.target/i386/pr66821.c
  32a7bc9b1156780a17e61321fa5d0b20  gcc/testsuite/gcc.target/i386/pr66824.c
  56552385dad0bf5bb041b52b7c8af4f5  gcc/testsuite/gcc.target/i386/pr66838.c
! dfbea4e98f52c35cbd0139ab2672c229  gcc/testsuite/gcc.target/i386/pr66891.c
  500dbaf89cab999e691d23456ee56227  gcc/testsuite/gcc.target/i386/pr66906.c
  a0d4958712bff25bad27b504a88b752f  gcc/testsuite/gcc.target/i386/pr66922.c
  793f8dfe6387c3eda6cb6e95162c5eaa  gcc/testsuite/gcc.target/i386/pr66978.c
! 4302bf4a537373ec584f031d92b9a307  gcc/testsuite/gcc.target/i386/pr67215-1.c
! b4766f0b858f4dde0f670dc50c412c1d  gcc/testsuite/gcc.target/i386/pr67215-2.c
  0da023f37721b9dbbfb817f702d30974  gcc/testsuite/gcc.target/i386/pr67215-3.c
  97d32c1dd1346e4a5f5aa5d2c454c95a  gcc/testsuite/gcc.target/i386/pr67265-2.c
  3939badabd9b176c3a6eef57eb08110a  gcc/testsuite/gcc.target/i386/pr67265.c
--- 80379,80390 ----
  8b742d2465b2b0ca437850eeca0a1a81  gcc/testsuite/gcc.target/i386/pr66821.c
  32a7bc9b1156780a17e61321fa5d0b20  gcc/testsuite/gcc.target/i386/pr66824.c
  56552385dad0bf5bb041b52b7c8af4f5  gcc/testsuite/gcc.target/i386/pr66838.c
! d63fa0ee76f8bba63cb276c169d4454a  gcc/testsuite/gcc.target/i386/pr66891.c
  500dbaf89cab999e691d23456ee56227  gcc/testsuite/gcc.target/i386/pr66906.c
  a0d4958712bff25bad27b504a88b752f  gcc/testsuite/gcc.target/i386/pr66922.c
  793f8dfe6387c3eda6cb6e95162c5eaa  gcc/testsuite/gcc.target/i386/pr66978.c
! 49959240e4fc6a7412f2ab63d7a6f79d  gcc/testsuite/gcc.target/i386/pr67215-1.c
! fd31bf8fdecda070f8dd2b6909141831  gcc/testsuite/gcc.target/i386/pr67215-2.c
  0da023f37721b9dbbfb817f702d30974  gcc/testsuite/gcc.target/i386/pr67215-3.c
  97d32c1dd1346e4a5f5aa5d2c454c95a  gcc/testsuite/gcc.target/i386/pr67265-2.c
  3939badabd9b176c3a6eef57eb08110a  gcc/testsuite/gcc.target/i386/pr67265.c
*************** b4766f0b858f4dde0f670dc50c412c1d  gcc/te
*** 75489,75494 ****
--- 80392,80398 ----
  84f1505e3c4090e696b46a15909123c9  gcc/testsuite/gcc.target/i386/pr67317-2.c
  c190bd6d04c9ea14dad4262a84a5e75d  gcc/testsuite/gcc.target/i386/pr67317-3.c
  ca5565b5bc56c42e0aed7f8b9662b02e  gcc/testsuite/gcc.target/i386/pr67317-4.c
+ c3faaebea018245f1875cf97d7d43b0d  gcc/testsuite/gcc.target/i386/pr67325.c
  02d6f17c1ece317e7978751b545c70b5  gcc/testsuite/gcc.target/i386/pr67329.c
  640346f79d15961b96ec850c419a799c  gcc/testsuite/gcc.target/i386/pr67400-1.c
  db33547f3571203a3a643e0d43d45685  gcc/testsuite/gcc.target/i386/pr67400-2.c
*************** e5e29507fd1dff3f68bf471a7ebabe04  gcc/te
*** 75514,75520 ****
  27aa5b5be81bfad7f0d6eec2a727b3bd  gcc/testsuite/gcc.target/i386/pr67995-3.c
  c15ab4fdb12d617da4a31daffc6a8979  gcc/testsuite/gcc.target/i386/pr68018.c
  1131da6390956f1c080f304b565a4a69  gcc/testsuite/gcc.target/i386/pr68084.c
! 526a2860fdd9b19529c88a6e409b2029  gcc/testsuite/gcc.target/i386/pr68349.c
  28fa9ed62a2c84c2b18c8f82bd82c6c8  gcc/testsuite/gcc.target/i386/pr68432-1.c
  d5ef97140a20e058e76e6e44d466a01d  gcc/testsuite/gcc.target/i386/pr68432-2.c
  bdd35620e99d3a0ffe05b51260541574  gcc/testsuite/gcc.target/i386/pr68432-3.c
--- 80418,80424 ----
  27aa5b5be81bfad7f0d6eec2a727b3bd  gcc/testsuite/gcc.target/i386/pr67995-3.c
  c15ab4fdb12d617da4a31daffc6a8979  gcc/testsuite/gcc.target/i386/pr68018.c
  1131da6390956f1c080f304b565a4a69  gcc/testsuite/gcc.target/i386/pr68084.c
! 808224ddd7b87521123a75189006a4f3  gcc/testsuite/gcc.target/i386/pr68349.c
  28fa9ed62a2c84c2b18c8f82bd82c6c8  gcc/testsuite/gcc.target/i386/pr68432-1.c
  d5ef97140a20e058e76e6e44d466a01d  gcc/testsuite/gcc.target/i386/pr68432-2.c
  bdd35620e99d3a0ffe05b51260541574  gcc/testsuite/gcc.target/i386/pr68432-3.c
*************** abaa7cafb8ecb4a84859075aaa09ffec  gcc/te
*** 75555,75567 ****
  6cbd719a3ed5dcac79a230898493dee2  gcc/testsuite/gcc.target/i386/pr69171-4.c
  581d1cb4cd729efced1238c7fc5e6e91  gcc/testsuite/gcc.target/i386/pr69171-5.c
  96afec7a93b8e4f38b26206c7565af90  gcc/testsuite/gcc.target/i386/pr69171-6.c
! ae736052c23e010a27622b0083569e83  gcc/testsuite/gcc.target/i386/pr69225-1.c
! 18bb90411dd956535b9f420e26796312  gcc/testsuite/gcc.target/i386/pr69225-2.c
! abdb535b16d32d8d5612c7d5b9fdb27f  gcc/testsuite/gcc.target/i386/pr69225-3.c
! 853828e3402440891d655b702e0230b6  gcc/testsuite/gcc.target/i386/pr69225-4.c
! 6bfffb6b1de1e8858bb8e5ce2004de58  gcc/testsuite/gcc.target/i386/pr69225-5.c
! 5f5f89dd709068a0b723488442cbea4f  gcc/testsuite/gcc.target/i386/pr69225-6.c
! 3533aba2a833a82460b7623dbe0533ae  gcc/testsuite/gcc.target/i386/pr69225-7.c
  aecd42e51f6b97d833083408745c6dd5  gcc/testsuite/gcc.target/i386/pr69246.c
  ac53c27961cf91e3c3b047bd40b9d6ba  gcc/testsuite/gcc.target/i386/pr69255-1.c
  bf780eaa35375e2f25bd331d678ade6f  gcc/testsuite/gcc.target/i386/pr69255-2.c
--- 80459,80471 ----
  6cbd719a3ed5dcac79a230898493dee2  gcc/testsuite/gcc.target/i386/pr69171-4.c
  581d1cb4cd729efced1238c7fc5e6e91  gcc/testsuite/gcc.target/i386/pr69171-5.c
  96afec7a93b8e4f38b26206c7565af90  gcc/testsuite/gcc.target/i386/pr69171-6.c
! f5a118768e86ab8b044ffd079851a3ea  gcc/testsuite/gcc.target/i386/pr69225-1.c
! 514eed36ddbe44b1f2b0f998549ba9a8  gcc/testsuite/gcc.target/i386/pr69225-2.c
! 514b0236826ea3af23b6899c2d47f235  gcc/testsuite/gcc.target/i386/pr69225-3.c
! 4deb17f1472899aede0e9fb210c22990  gcc/testsuite/gcc.target/i386/pr69225-4.c
! f017816e41999dd3bd8125a3747dc3f9  gcc/testsuite/gcc.target/i386/pr69225-5.c
! e9f373b5521c99c9133e8a9bf7ffda1e  gcc/testsuite/gcc.target/i386/pr69225-6.c
! daa2dddde4fe2edb241f35c8830fb15c  gcc/testsuite/gcc.target/i386/pr69225-7.c
  aecd42e51f6b97d833083408745c6dd5  gcc/testsuite/gcc.target/i386/pr69246.c
  ac53c27961cf91e3c3b047bd40b9d6ba  gcc/testsuite/gcc.target/i386/pr69255-1.c
  bf780eaa35375e2f25bd331d678ade6f  gcc/testsuite/gcc.target/i386/pr69255-2.c
*************** b58f75f5f0f7fddf4cec8fc6a02cb7ca  gcc/te
*** 75619,75626 ****
  9dc4644acf439047622a4c11be362103  gcc/testsuite/gcc.target/i386/pr70293.c
  77a10eac7238aed7e2e4bc7e46fdbf09  gcc/testsuite/gcc.target/i386/pr70300.c
  857f3aaeea9ed51acaa70ac8080e3855  gcc/testsuite/gcc.target/i386/pr70302.c
! 6192086ea1bd3f4ca3024f18ae02c92b  gcc/testsuite/gcc.target/i386/pr70314.c
! 3d94d1fe4da3aaf19da298c2827c252d  gcc/testsuite/gcc.target/i386/pr70321.c
  8eb635052e7af90b767d742c35d98c12  gcc/testsuite/gcc.target/i386/pr70322-1.c
  614a4d96f766f9b0c9a16b2c6430a0c4  gcc/testsuite/gcc.target/i386/pr70322-2.c
  000306df7153399c97be28712e1e4637  gcc/testsuite/gcc.target/i386/pr70322-3.c
--- 80523,80530 ----
  9dc4644acf439047622a4c11be362103  gcc/testsuite/gcc.target/i386/pr70293.c
  77a10eac7238aed7e2e4bc7e46fdbf09  gcc/testsuite/gcc.target/i386/pr70300.c
  857f3aaeea9ed51acaa70ac8080e3855  gcc/testsuite/gcc.target/i386/pr70302.c
! f0376d81c43cfd4e0e26565d3897ff76  gcc/testsuite/gcc.target/i386/pr70314.c
! ed049a272703c2981bd99fa9aae29bd9  gcc/testsuite/gcc.target/i386/pr70321.c
  8eb635052e7af90b767d742c35d98c12  gcc/testsuite/gcc.target/i386/pr70322-1.c
  614a4d96f766f9b0c9a16b2c6430a0c4  gcc/testsuite/gcc.target/i386/pr70322-2.c
  000306df7153399c97be28712e1e4637  gcc/testsuite/gcc.target/i386/pr70322-3.c
*************** e9d6922230050e7efcb4180dddeb82a9  gcc/te
*** 75833,75839 ****
  dea614d72b83541088d8fc13f9632e92  gcc/testsuite/gcc.target/i386/pr80969-1.c
  5bfbc9835421f5f499908b7cc26f41bf  gcc/testsuite/gcc.target/i386/pr80969-2.c
  fe33baa35c1f15d5d17b1b24b2198890  gcc/testsuite/gcc.target/i386/pr80969-2a.c
! a71a663e56adbdf20e22e7367fd1175d  gcc/testsuite/gcc.target/i386/pr80969-3.c
  372beb9b2a5d8c2e6db3668e4bca3818  gcc/testsuite/gcc.target/i386/pr80969-4.c
  d8621b21da59249d9feb930cca30105d  gcc/testsuite/gcc.target/i386/pr80969-4.h
  000d5bf75ca9507041aeef8d08698e0f  gcc/testsuite/gcc.target/i386/pr80969-4a.c
--- 80737,80743 ----
  dea614d72b83541088d8fc13f9632e92  gcc/testsuite/gcc.target/i386/pr80969-1.c
  5bfbc9835421f5f499908b7cc26f41bf  gcc/testsuite/gcc.target/i386/pr80969-2.c
  fe33baa35c1f15d5d17b1b24b2198890  gcc/testsuite/gcc.target/i386/pr80969-2a.c
! 84514a222c7da947890cd656a2924f29  gcc/testsuite/gcc.target/i386/pr80969-3.c
  372beb9b2a5d8c2e6db3668e4bca3818  gcc/testsuite/gcc.target/i386/pr80969-4.c
  d8621b21da59249d9feb930cca30105d  gcc/testsuite/gcc.target/i386/pr80969-4.h
  000d5bf75ca9507041aeef8d08698e0f  gcc/testsuite/gcc.target/i386/pr80969-4a.c
*************** bc9d6a8d154ce394c0572ac7f1b29989  gcc/te
*** 75880,75885 ****
--- 80784,80791 ----
  9d3708841372a6448fa90429994de766  gcc/testsuite/gcc.target/i386/pr82002-1.c
  1a3ac3c6bda9ea1b07e65710ba432a8a  gcc/testsuite/gcc.target/i386/pr82002-2a.c
  d9ff7a9247a5112ba833001b7198d194  gcc/testsuite/gcc.target/i386/pr82002-2b.c
+ db031b69e45df72b70cb819f555efb93  gcc/testsuite/gcc.target/i386/pr82142a.c
+ d3debc926592b1df959f978e7c42a09a  gcc/testsuite/gcc.target/i386/pr82142b.c
  23d6be59a257952d289606af88ad99d1  gcc/testsuite/gcc.target/i386/pr82145.c
  a341930c846fbfc81a481d40beae5f8e  gcc/testsuite/gcc.target/i386/pr82166.c
  f7220805243aa4ae76bae9889d4575a8  gcc/testsuite/gcc.target/i386/pr82196-1.c
*************** fee48546949cab9b7dea834adf9c10c3  gcc/te
*** 75934,75949 ****
  7312e4c0a341ddbb1d280ed6869fc821  gcc/testsuite/gcc.target/i386/pr82853-1.c
  c3301cc2465c8460c504da97e005dc50  gcc/testsuite/gcc.target/i386/pr82853-2.c
  515e5dcd6ad99630111df5a872a15e5d  gcc/testsuite/gcc.target/i386/pr82941-1.c
- fdfddb65846afd42b83e23e26400c970  gcc/testsuite/gcc.target/i386/pr82941-2.c
  a9cf69b9b81843306597b6b215bd0ffa  gcc/testsuite/gcc.target/i386/pr82942-1.c
- 08140398d6f0adb11dc1d845ebaa81bb  gcc/testsuite/gcc.target/i386/pr82942-2.c
- 2329c06da251ba6596ac51ab294d32ba  gcc/testsuite/gcc.target/i386/pr82990-1.c
  3ad428b83226dbf5b2a87eb43684bff0  gcc/testsuite/gcc.target/i386/pr82990-2.c
- 690c0579888015032cbf35d1c46e79b9  gcc/testsuite/gcc.target/i386/pr82990-3.c
  0d73bdb5e70db1033d425b4ad36c7626  gcc/testsuite/gcc.target/i386/pr82990-4.c
  2f9f76a6c879b9887bcca49404a95240  gcc/testsuite/gcc.target/i386/pr82990-5.c
- fdaebf1bf8a43d207fcebb488be8ffaa  gcc/testsuite/gcc.target/i386/pr82990-6.c
- c154f3d5dbf0100ab4daf298da4d51da  gcc/testsuite/gcc.target/i386/pr82990-7.c
  c3aa2b794df8c4324dba61c205ba9aa6  gcc/testsuite/gcc.target/i386/pr83008.c
  6835eae8ea408bb193a56d38af9b51af  gcc/testsuite/gcc.target/i386/pr83210.c
  b85161e5ba230dfe69612111dafab7e6  gcc/testsuite/gcc.target/i386/pr83317.c
--- 80840,80849 ----
*************** c19a9d9e41959574f6c21d72429137da  gcc/te
*** 76061,76067 ****
  e68e510c245a1586dead99573f2e33d2  gcc/testsuite/gcc.target/i386/pr86048.c
  926130d343ce505b99901b7c06918b57  gcc/testsuite/gcc.target/i386/pr86194.c
  44e3a13049c67a4c86c87d53799997a1  gcc/testsuite/gcc.target/i386/pr86257.c
! 7f18ba9dbf8a77195aa56b8a46d13cfd  gcc/testsuite/gcc.target/i386/pr86270.c
  e89855e4afbc8be3009567aa4b7ef483  gcc/testsuite/gcc.target/i386/pr86334.c
  0a8780c8461919b0211d3ff52f93b9c8  gcc/testsuite/gcc.target/i386/pr86348.c
  27b04474e1fd5c1bb0082fbdb319dd57  gcc/testsuite/gcc.target/i386/pr86386.c
--- 80961,80967 ----
  e68e510c245a1586dead99573f2e33d2  gcc/testsuite/gcc.target/i386/pr86048.c
  926130d343ce505b99901b7c06918b57  gcc/testsuite/gcc.target/i386/pr86194.c
  44e3a13049c67a4c86c87d53799997a1  gcc/testsuite/gcc.target/i386/pr86257.c
! a9f9eb3d8a37c4ecb81327d2ddef11f4  gcc/testsuite/gcc.target/i386/pr86270.c
  e89855e4afbc8be3009567aa4b7ef483  gcc/testsuite/gcc.target/i386/pr86334.c
  0a8780c8461919b0211d3ff52f93b9c8  gcc/testsuite/gcc.target/i386/pr86348.c
  27b04474e1fd5c1bb0082fbdb319dd57  gcc/testsuite/gcc.target/i386/pr86386.c
*************** cd325df07a34c25d7fa808319419b8c1  gcc/te
*** 76071,76084 ****
  6fd58f2c457ea2c64ce5ebed9a3cd26c  gcc/testsuite/gcc.target/i386/pr86560-4.c
  440320438230bf106faabd242449aa10  gcc/testsuite/gcc.target/i386/pr86560-5.c
  4302cd96928c315422f2c1fd5d5e767e  gcc/testsuite/gcc.target/i386/pr86627.c
! 4e6db35c71a53386640b35f94e3369e7  gcc/testsuite/gcc.target/i386/pr86722.c
  2215948ef28ef58e1d2e760e685eeefe  gcc/testsuite/gcc.target/i386/pr86723.c
  703671f3f42a4c499c9d07306bbba0d0  gcc/testsuite/gcc.target/i386/pr86952.c
  713c32cd165cd428c96f881442855928  gcc/testsuite/gcc.target/i386/pr87007-1.c
  e500c9305de0564e4618ad5878201a8c  gcc/testsuite/gcc.target/i386/pr87007-2.c
  b29279fea41f09c3d829643c01710547  gcc/testsuite/gcc.target/i386/pr87007-3.c
  e8f1d98010527f4b46b2cf680190b1f8  gcc/testsuite/gcc.target/i386/pr87007-4.c
! d84b93ebf009823650b0dce95c030d39  gcc/testsuite/gcc.target/i386/pr87007-5.c
  646c4c149f87e924fd338e46a8d900f1  gcc/testsuite/gcc.target/i386/pr87065.c
  c2ca631fa7bb41bff427b4c2a6a6aaa1  gcc/testsuite/gcc.target/i386/pr87198.c
  09d95dc5e840b3fa5a6b11b924f3fb59  gcc/testsuite/gcc.target/i386/pr87246.c
--- 80971,80984 ----
  6fd58f2c457ea2c64ce5ebed9a3cd26c  gcc/testsuite/gcc.target/i386/pr86560-4.c
  440320438230bf106faabd242449aa10  gcc/testsuite/gcc.target/i386/pr86560-5.c
  4302cd96928c315422f2c1fd5d5e767e  gcc/testsuite/gcc.target/i386/pr86627.c
! 80701621f1b3f3bc11ac46aeff62f8bc  gcc/testsuite/gcc.target/i386/pr86722.c
  2215948ef28ef58e1d2e760e685eeefe  gcc/testsuite/gcc.target/i386/pr86723.c
  703671f3f42a4c499c9d07306bbba0d0  gcc/testsuite/gcc.target/i386/pr86952.c
  713c32cd165cd428c96f881442855928  gcc/testsuite/gcc.target/i386/pr87007-1.c
  e500c9305de0564e4618ad5878201a8c  gcc/testsuite/gcc.target/i386/pr87007-2.c
  b29279fea41f09c3d829643c01710547  gcc/testsuite/gcc.target/i386/pr87007-3.c
  e8f1d98010527f4b46b2cf680190b1f8  gcc/testsuite/gcc.target/i386/pr87007-4.c
! d80d0525446e0b5e72fd984c4690374e  gcc/testsuite/gcc.target/i386/pr87007-5.c
  646c4c149f87e924fd338e46a8d900f1  gcc/testsuite/gcc.target/i386/pr87065.c
  c2ca631fa7bb41bff427b4c2a6a6aaa1  gcc/testsuite/gcc.target/i386/pr87198.c
  09d95dc5e840b3fa5a6b11b924f3fb59  gcc/testsuite/gcc.target/i386/pr87246.c
*************** b91162801f7d0d6af855bd692e22ab63  gcc/te
*** 76117,76122 ****
--- 81017,81023 ----
  c7fbb8c42391916088505cea2847ff00  gcc/testsuite/gcc.target/i386/pr87918.c
  4b54801016bc4b3cc228ac7dd70de407  gcc/testsuite/gcc.target/i386/pr87928.c
  4fc2942c48d13b19282e746bb6deb0f5  gcc/testsuite/gcc.target/i386/pr87955.c
+ 888e51b46121c41e1f289e80df7c57ce  gcc/testsuite/gcc.target/i386/pr87984.c
  ec61cb2764cd0d05b8fd416bac2b290b  gcc/testsuite/gcc.target/i386/pr88033.c
  a720bfe0104feb1cfa40b8ab91dc5f05  gcc/testsuite/gcc.target/i386/pr88070.c
  b14b816d91744aa96c9da5bad9de427b  gcc/testsuite/gcc.target/i386/pr88178.c
*************** b4ea0253a4a44cae7ea592ca115c81cb  gcc/te
*** 76138,76144 ****
  1d74b7497b6f347eeabb5c8ff7fc5e64  gcc/testsuite/gcc.target/i386/pr88531-2a.c
  20d5dbd1c6fbe2d4bb83c990c45323c1  gcc/testsuite/gcc.target/i386/pr88531-2b.c
  30fb5b9d9ddbe31ad10403c402c0aa0b  gcc/testsuite/gcc.target/i386/pr88531-2c.c
! 54bfbf6c67986bb74858fb23b20dca1e  gcc/testsuite/gcc.target/i386/pr88540.c
  d759143ff7be3c83a7d63b6b1da335f4  gcc/testsuite/gcc.target/i386/pr88547-1.c
  bce12f30738edf2774ad07623978e78c  gcc/testsuite/gcc.target/i386/pr88713-1.c
  11cd1934753fe7004db294de3fb77a13  gcc/testsuite/gcc.target/i386/pr88713-2.c
--- 81039,81045 ----
  1d74b7497b6f347eeabb5c8ff7fc5e64  gcc/testsuite/gcc.target/i386/pr88531-2a.c
  20d5dbd1c6fbe2d4bb83c990c45323c1  gcc/testsuite/gcc.target/i386/pr88531-2b.c
  30fb5b9d9ddbe31ad10403c402c0aa0b  gcc/testsuite/gcc.target/i386/pr88531-2c.c
! a61506c1f73267370c4c6f60b2f4ec4a  gcc/testsuite/gcc.target/i386/pr88540.c
  d759143ff7be3c83a7d63b6b1da335f4  gcc/testsuite/gcc.target/i386/pr88547-1.c
  bce12f30738edf2774ad07623978e78c  gcc/testsuite/gcc.target/i386/pr88713-1.c
  11cd1934753fe7004db294de3fb77a13  gcc/testsuite/gcc.target/i386/pr88713-2.c
*************** bcb8ff722b8b594bcfd9075d37eaff6f  gcc/te
*** 76203,76210 ****
  1a7b71dea5f1b81b4c20d53bd27d1604  gcc/testsuite/gcc.target/i386/pr89523-2.c
  c477d7333d280aa9ba0232f363826175  gcc/testsuite/gcc.target/i386/pr89523-3.c
  37d95d0f23ac1bfc04510b1a7b4a0ed7  gcc/testsuite/gcc.target/i386/pr89523-4.c
- 6f79757cdb3668619951a1c62e603b17  gcc/testsuite/gcc.target/i386/pr89523-5.c
- 24c1731ede4b27aee8f866b95bdbb25c  gcc/testsuite/gcc.target/i386/pr89523-6.c
  104a2416e74048f45915a5e09656c2aa  gcc/testsuite/gcc.target/i386/pr89523-7.c
  fa633632e627d7c0fcb34ba2673e196b  gcc/testsuite/gcc.target/i386/pr89523-8.c
  aab7cb035d0456e2d0bf25f7f53cfd30  gcc/testsuite/gcc.target/i386/pr89523-9.c
--- 81104,81109 ----
*************** adae3156ab4e2f317ef6a23cbd52a09e  gcc/te
*** 76226,76232 ****
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
  7110f728cfc3075095fa258ecfd05c36  gcc/testsuite/gcc.target/i386/pr90096.c
! a9287216d129eff30597718cb0900160  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
  858d458d8346caaedca9450697386549  gcc/testsuite/gcc.target/i386/pr90358.c
--- 81125,81131 ----
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
  7110f728cfc3075095fa258ecfd05c36  gcc/testsuite/gcc.target/i386/pr90096.c
! 289aed1294f4bdce79570370d9b37d36  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
  858d458d8346caaedca9450697386549  gcc/testsuite/gcc.target/i386/pr90358.c
*************** e848ec23a6a21441ce72a346a0736a69  gcc/te
*** 76237,76242 ****
--- 81136,81142 ----
  79825d8e4562ba47624b18d80f41d52b  gcc/testsuite/gcc.target/i386/pr90510.c
  71daed2fce58de22bfa193c1d29d8205  gcc/testsuite/gcc.target/i386/pr90547.c
  cd32b51927f32216f74b09c3940931d8  gcc/testsuite/gcc.target/i386/pr90552.c
+ 131fcfea3c839d23cb34af1cb8402815  gcc/testsuite/gcc.target/i386/pr90579.c
  3333c9fab61d2b0a85919c2f2bcabcf7  gcc/testsuite/gcc.target/i386/pr90693-2.c
  ab0b47df71ffc980ef55fd8e562bb640  gcc/testsuite/gcc.target/i386/pr90693.c
  bedac99974c4a13a1a78b62b24233122  gcc/testsuite/gcc.target/i386/pr90765-1.c
*************** cef1d7eea62819f6e063e7efe1b02721  gcc/te
*** 76274,76280 ****
  f7f20cd21d9a7c4a60073a194c493b9e  gcc/testsuite/gcc.target/i386/pr90980-1.c
  e95a39ca6615e1505ad093c0aee36b67  gcc/testsuite/gcc.target/i386/pr90980-2.c
  901dc48d360343e1ea7e6419484c143a  gcc/testsuite/gcc.target/i386/pr90980-3.c
- dcc5fd32fdce1bf57c42c744b337590c  gcc/testsuite/gcc.target/i386/pr91033.c
  e0933c52118bda34d334db98cda88cf5  gcc/testsuite/gcc.target/i386/pr91103-1.c
  3c82ceb8f8dce6c69a814ac312cb47e4  gcc/testsuite/gcc.target/i386/pr91103-2.c
  214e297c0a7eb9cbfdb0fe5aaefdfaa2  gcc/testsuite/gcc.target/i386/pr91131.c
--- 81174,81179 ----
*************** b2fcdfda276151a68e045de262ee33af  gcc/te
*** 76288,76294 ****
  127180c612a45ce92a260622dc4b287b  gcc/testsuite/gcc.target/i386/pr91223.c
  0cedb8815ec474ea3a6454ae7fdff46f  gcc/testsuite/gcc.target/i386/pr91298-1.c
  f0fcd639c26dec3b350ac6bf649264db  gcc/testsuite/gcc.target/i386/pr91298-2.c
! 64cc0c185459dccf818a2e26073b682d  gcc/testsuite/gcc.target/i386/pr91333.c
  2c506f7ed02f01933d3eb1f68153db80  gcc/testsuite/gcc.target/i386/pr91384.c
  2470ef4544f4a84841952f618da1b96d  gcc/testsuite/gcc.target/i386/pr91385.c
  031e44a32929718a17cbe4b6ea75e08b  gcc/testsuite/gcc.target/i386/pr91400-1.c
--- 81187,81193 ----
  127180c612a45ce92a260622dc4b287b  gcc/testsuite/gcc.target/i386/pr91223.c
  0cedb8815ec474ea3a6454ae7fdff46f  gcc/testsuite/gcc.target/i386/pr91298-1.c
  f0fcd639c26dec3b350ac6bf649264db  gcc/testsuite/gcc.target/i386/pr91298-2.c
! dec686a8a3bbaf2cceca1f05fdd13a92  gcc/testsuite/gcc.target/i386/pr91333.c
  2c506f7ed02f01933d3eb1f68153db80  gcc/testsuite/gcc.target/i386/pr91384.c
  2470ef4544f4a84841952f618da1b96d  gcc/testsuite/gcc.target/i386/pr91385.c
  031e44a32929718a17cbe4b6ea75e08b  gcc/testsuite/gcc.target/i386/pr91400-1.c
*************** cb7d2b73c1aa814d4874833bf6d514f4  gcc/te
*** 76325,76331 ****
  b7cac4959f15ba45f067fec51fddab75  gcc/testsuite/gcc.target/i386/pr92615.c
  269411ecd37470339c1020ba04b86107  gcc/testsuite/gcc.target/i386/pr92645-2.c
  496ea3e57e811aae7a7e70e6ae3f47b5  gcc/testsuite/gcc.target/i386/pr92645-3.c
! 4ea16423fe41fd23fc418cad85272177  gcc/testsuite/gcc.target/i386/pr92645-4.c
  fd5403ac26bbe83c4c9a50fff34fd61f  gcc/testsuite/gcc.target/i386/pr92645-5.c
  5f53809106eb4f515eef2f02170d4add  gcc/testsuite/gcc.target/i386/pr92645-6.c
  c689d7bd208a6bbb908ec089abdd00ef  gcc/testsuite/gcc.target/i386/pr92645-7.c
--- 81224,81230 ----
  b7cac4959f15ba45f067fec51fddab75  gcc/testsuite/gcc.target/i386/pr92615.c
  269411ecd37470339c1020ba04b86107  gcc/testsuite/gcc.target/i386/pr92645-2.c
  496ea3e57e811aae7a7e70e6ae3f47b5  gcc/testsuite/gcc.target/i386/pr92645-3.c
! ba7c64bb220839b209abd8ee679302ba  gcc/testsuite/gcc.target/i386/pr92645-4.c
  fd5403ac26bbe83c4c9a50fff34fd61f  gcc/testsuite/gcc.target/i386/pr92645-5.c
  5f53809106eb4f515eef2f02170d4add  gcc/testsuite/gcc.target/i386/pr92645-6.c
  c689d7bd208a6bbb908ec089abdd00ef  gcc/testsuite/gcc.target/i386/pr92645-7.c
*************** fd3ae4c11b9e966cb3569321e98abb26  gcc/te
*** 76495,76502 ****
  d1a0d25008e21716be4b9e1ce0338b49  gcc/testsuite/gcc.target/i386/pr96262-1.c
  a58801ab95d6c36f56d320212bc09df3  gcc/testsuite/gcc.target/i386/pr96271.c
  45643988cf15c9ae848c59ace0b86744  gcc/testsuite/gcc.target/i386/pr96298.c
! 18cb4bda10170f389afa9dcd9c702b9d  gcc/testsuite/gcc.target/i386/pr96539.c
! 7452cc0f5db1672bf14a67b2874c0d0e  gcc/testsuite/gcc.target/i386/pr96562-1.c
  6d9da6efe469401a64586c5cd12edddf  gcc/testsuite/gcc.target/i386/pr96696.c
  f48be0c67737fdfd86cf3b33ed03b238  gcc/testsuite/gcc.target/i386/pr96744-1.c
  dd7f4a2c5c803e97fee5047ba7436ad6  gcc/testsuite/gcc.target/i386/pr96744-2.c
--- 81394,81401 ----
  d1a0d25008e21716be4b9e1ce0338b49  gcc/testsuite/gcc.target/i386/pr96262-1.c
  a58801ab95d6c36f56d320212bc09df3  gcc/testsuite/gcc.target/i386/pr96271.c
  45643988cf15c9ae848c59ace0b86744  gcc/testsuite/gcc.target/i386/pr96298.c
! 289cec4b29b5e810422d31cdd6b048c0  gcc/testsuite/gcc.target/i386/pr96539.c
! b549091a94800cac1a44fd30f4363baf  gcc/testsuite/gcc.target/i386/pr96562-1.c
  6d9da6efe469401a64586c5cd12edddf  gcc/testsuite/gcc.target/i386/pr96696.c
  f48be0c67737fdfd86cf3b33ed03b238  gcc/testsuite/gcc.target/i386/pr96744-1.c
  dd7f4a2c5c803e97fee5047ba7436ad6  gcc/testsuite/gcc.target/i386/pr96744-2.c
*************** e860da5c4163b56a77c4cb6a6238f5ea  gcc/te
*** 76524,76530 ****
  54796d80a148a93895941284c072af19  gcc/testsuite/gcc.target/i386/pr97140.c
  0b221a37192b920a027e86b90fd7d409  gcc/testsuite/gcc.target/i386/pr97249-1.c
  74aff39747c5e4248dbc36eceea5ace6  gcc/testsuite/gcc.target/i386/pr97282.c
! 5e1f5e8518b908dda4d66e083ec90ed3  gcc/testsuite/gcc.target/i386/pr97313.c
  14c9de1158d2b6c5aa725f4ce14715d6  gcc/testsuite/gcc.target/i386/pr97387-1.c
  d8be69267a82470717a5b153648b522f  gcc/testsuite/gcc.target/i386/pr97387-2.c
  d1bbffbd6f7347b6b51d890b46131e04  gcc/testsuite/gcc.target/i386/pr97506.c
--- 81423,81429 ----
  54796d80a148a93895941284c072af19  gcc/testsuite/gcc.target/i386/pr97140.c
  0b221a37192b920a027e86b90fd7d409  gcc/testsuite/gcc.target/i386/pr97249-1.c
  74aff39747c5e4248dbc36eceea5ace6  gcc/testsuite/gcc.target/i386/pr97282.c
! bd891b218a0f457ca4a96c7194c8ad9c  gcc/testsuite/gcc.target/i386/pr97313.c
  14c9de1158d2b6c5aa725f4ce14715d6  gcc/testsuite/gcc.target/i386/pr97387-1.c
  d8be69267a82470717a5b153648b522f  gcc/testsuite/gcc.target/i386/pr97387-2.c
  d1bbffbd6f7347b6b51d890b46131e04  gcc/testsuite/gcc.target/i386/pr97506.c
*************** c3a73fa75e58f547374ee4cb24ac482d  gcc/te
*** 76542,76555 ****
  40bb69c69b8b4e18f072695ea5cee94b  gcc/testsuite/gcc.target/i386/pr97873.c
  d50d43b015ccca4bdcef40a3a09478ce  gcc/testsuite/gcc.target/i386/pr97887.c
  da7936c976f9e834f5cbd253109ebc0e  gcc/testsuite/gcc.target/i386/pr97950.c
! f8ecf4adafb31200f6cb5f02f878203e  gcc/testsuite/gcc.target/i386/pr97971.c
  e3d35c4b9c35829e096fbb3d11b860df  gcc/testsuite/gcc.target/i386/pr97978.c
  670c12a0948ada55645036481c5bd816  gcc/testsuite/gcc.target/i386/pr98060.c
  de9a29845d5a93f4882c3e21249e708f  gcc/testsuite/gcc.target/i386/pr98063.c
  b7ddfcf2edaca40780663862d490b44f  gcc/testsuite/gcc.target/i386/pr98079.c
  3e550210eceaa9555180fcdc5434cf50  gcc/testsuite/gcc.target/i386/pr98086.c
  f05a11a90b720489273566f54bf45421  gcc/testsuite/gcc.target/i386/pr98100.c
! 70971c1416774bc2945ea932f03a5c73  gcc/testsuite/gcc.target/i386/pr98161.c
  913d3341827109307befade86aaaf250  gcc/testsuite/gcc.target/i386/pr98167.c
  91547df733560031fecb190e05b697bb  gcc/testsuite/gcc.target/i386/pr98169.c
  489d73ba45e60b5e7c2ae506c5f44042  gcc/testsuite/gcc.target/i386/pr98212.c
--- 81441,81454 ----
  40bb69c69b8b4e18f072695ea5cee94b  gcc/testsuite/gcc.target/i386/pr97873.c
  d50d43b015ccca4bdcef40a3a09478ce  gcc/testsuite/gcc.target/i386/pr97887.c
  da7936c976f9e834f5cbd253109ebc0e  gcc/testsuite/gcc.target/i386/pr97950.c
! 92012a0367451349c2462298350c2bd6  gcc/testsuite/gcc.target/i386/pr97971.c
  e3d35c4b9c35829e096fbb3d11b860df  gcc/testsuite/gcc.target/i386/pr97978.c
  670c12a0948ada55645036481c5bd816  gcc/testsuite/gcc.target/i386/pr98060.c
  de9a29845d5a93f4882c3e21249e708f  gcc/testsuite/gcc.target/i386/pr98063.c
  b7ddfcf2edaca40780663862d490b44f  gcc/testsuite/gcc.target/i386/pr98079.c
  3e550210eceaa9555180fcdc5434cf50  gcc/testsuite/gcc.target/i386/pr98086.c
  f05a11a90b720489273566f54bf45421  gcc/testsuite/gcc.target/i386/pr98100.c
! d3fca68f51905522d5cf873cf3701da6  gcc/testsuite/gcc.target/i386/pr98161.c
  913d3341827109307befade86aaaf250  gcc/testsuite/gcc.target/i386/pr98167.c
  91547df733560031fecb190e05b697bb  gcc/testsuite/gcc.target/i386/pr98169.c
  489d73ba45e60b5e7c2ae506c5f44042  gcc/testsuite/gcc.target/i386/pr98212.c
*************** a2799012296658b7581bee7cb15827db  gcc/te
*** 76606,76612 ****
  49a5c59adcc80f5baad6214266e1e0eb  gcc/testsuite/gcc.target/i386/pr99123.c
  0b19a340038d11d42d65c8bb289ec153  gcc/testsuite/gcc.target/i386/pr99321.c
  a9d8b452ef25921e567309d0cc5e4daf  gcc/testsuite/gcc.target/i386/pr99405.c
! e6b1b5cba5cc2a6e1144475ed62335fa  gcc/testsuite/gcc.target/i386/pr99454.c
  f961c1d8f947043bf2b762f5fc35531a  gcc/testsuite/gcc.target/i386/pr99463-2.c
  0d4aa0e3c5217bd61c80adc456e50b25  gcc/testsuite/gcc.target/i386/pr99463.c
  93d34a3ab3374dee5f772a3c620facbe  gcc/testsuite/gcc.target/i386/pr99464.c
--- 81505,81511 ----
  49a5c59adcc80f5baad6214266e1e0eb  gcc/testsuite/gcc.target/i386/pr99123.c
  0b19a340038d11d42d65c8bb289ec153  gcc/testsuite/gcc.target/i386/pr99321.c
  a9d8b452ef25921e567309d0cc5e4daf  gcc/testsuite/gcc.target/i386/pr99405.c
! f203cf8d75931c849f6729a50873190a  gcc/testsuite/gcc.target/i386/pr99454.c
  f961c1d8f947043bf2b762f5fc35531a  gcc/testsuite/gcc.target/i386/pr99463-2.c
  0d4aa0e3c5217bd61c80adc456e50b25  gcc/testsuite/gcc.target/i386/pr99463.c
  93d34a3ab3374dee5f772a3c620facbe  gcc/testsuite/gcc.target/i386/pr99464.c
*************** a3e5a8589b650ac289a1ebcf789619f6  gcc/te
*** 76636,76647 ****
  939447bef72a36fa24dc61bac7010b1b  gcc/testsuite/gcc.target/i386/pr99905.c
  bb74fe2f09b19928e6c4047fee136b0b  gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c
  d9c90a27fd6b9568c79455bcaf9faacc  gcc/testsuite/gcc.target/i386/prefetchi-1.c
  5fb0aad075edba2ca6bd9c52e18048a4  gcc/testsuite/gcc.target/i386/prefetchi-2.c
  0d239d33a9eeb5af2e5ffd12b6d373df  gcc/testsuite/gcc.target/i386/prefetchi-3.c
  89c120add0d0cea3a2a86aaa0863dd2e  gcc/testsuite/gcc.target/i386/prefetchi-4.c
  7ac67198871c4cac2af2231517ff5658  gcc/testsuite/gcc.target/i386/prefetchi-5.c
  24ceb6d5f3f5cde4b9d852839bdb98ae  gcc/testsuite/gcc.target/i386/prefetchw-1.c
- 17f0808c67bbcf2b74fb6dbafd6cc820  gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
  4561455bd0f6ca8ce0b0f477f2897ee2  gcc/testsuite/gcc.target/i386/ptwrite1.c
  90a00e0f61849345a274cd1b4f96c029  gcc/testsuite/gcc.target/i386/ptwrite2.c
  1c20da95e9e947694dd009c5a701a628  gcc/testsuite/gcc.target/i386/quad-sse.c
--- 81535,81546 ----
  939447bef72a36fa24dc61bac7010b1b  gcc/testsuite/gcc.target/i386/pr99905.c
  bb74fe2f09b19928e6c4047fee136b0b  gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c
  d9c90a27fd6b9568c79455bcaf9faacc  gcc/testsuite/gcc.target/i386/prefetchi-1.c
+ d380df14afc6d38427db2430bb5640c7  gcc/testsuite/gcc.target/i386/prefetchi-1b.c
  5fb0aad075edba2ca6bd9c52e18048a4  gcc/testsuite/gcc.target/i386/prefetchi-2.c
  0d239d33a9eeb5af2e5ffd12b6d373df  gcc/testsuite/gcc.target/i386/prefetchi-3.c
  89c120add0d0cea3a2a86aaa0863dd2e  gcc/testsuite/gcc.target/i386/prefetchi-4.c
  7ac67198871c4cac2af2231517ff5658  gcc/testsuite/gcc.target/i386/prefetchi-5.c
  24ceb6d5f3f5cde4b9d852839bdb98ae  gcc/testsuite/gcc.target/i386/prefetchw-1.c
  4561455bd0f6ca8ce0b0f477f2897ee2  gcc/testsuite/gcc.target/i386/ptwrite1.c
  90a00e0f61849345a274cd1b4f96c029  gcc/testsuite/gcc.target/i386/ptwrite2.c
  1c20da95e9e947694dd009c5a701a628  gcc/testsuite/gcc.target/i386/quad-sse.c
*************** e2839913fadc6a00676c8f02deb3f59e  gcc/te
*** 76673,76679 ****
  0076bfe9b96eb7efd6c7a5cb8b6a4467  gcc/testsuite/gcc.target/i386/recip-vec-divf.c
  7429731d2f6b996b2f421b87eac73d71  gcc/testsuite/gcc.target/i386/recip-vec-sqrtf-avx.c
  1935b0b3b4df5ba36df8c1e173c94607  gcc/testsuite/gcc.target/i386/recip-vec-sqrtf.c
! 2feb34998416b64edd7dc4be67c74388  gcc/testsuite/gcc.target/i386/record-mcount.c
  27b94da412b0e514a304cb667a1125f1  gcc/testsuite/gcc.target/i386/regparm-stdcall.c
  f460909450afd8b803c32061496a4d75  gcc/testsuite/gcc.target/i386/regparm.c
  e47bbd1acfd37236fccff011d4c82e82  gcc/testsuite/gcc.target/i386/reload-1.c
--- 81572,81578 ----
  0076bfe9b96eb7efd6c7a5cb8b6a4467  gcc/testsuite/gcc.target/i386/recip-vec-divf.c
  7429731d2f6b996b2f421b87eac73d71  gcc/testsuite/gcc.target/i386/recip-vec-sqrtf-avx.c
  1935b0b3b4df5ba36df8c1e173c94607  gcc/testsuite/gcc.target/i386/recip-vec-sqrtf.c
! 794b883a440dddb0d157e35b449464f1  gcc/testsuite/gcc.target/i386/record-mcount.c
  27b94da412b0e514a304cb667a1125f1  gcc/testsuite/gcc.target/i386/regparm-stdcall.c
  f460909450afd8b803c32061496a4d75  gcc/testsuite/gcc.target/i386/regparm.c
  e47bbd1acfd37236fccff011d4c82e82  gcc/testsuite/gcc.target/i386/reload-1.c
*************** b418457f73d31910e20ece8dbf697ddc  gcc/te
*** 76720,76725 ****
--- 81619,81625 ----
  7fd857319bdcc9049991294652943c98  gcc/testsuite/gcc.target/i386/rtm-xbegin-1.c
  9e2fab54032ef9d21789f19e68471555  gcc/testsuite/gcc.target/i386/rtm-xend-1.c
  d972e8dd48d19a6440cd7b63d7254c83  gcc/testsuite/gcc.target/i386/rtm-xtest-1.c
+ 18724095b27e6e19668af03418632471  gcc/testsuite/gcc.target/i386/sattrunc-1.c
  58ce3daa4a1a48e4d8b4ff9e1e0eeff7  gcc/testsuite/gcc.target/i386/sdotprodint8_emulate.c
  a18a448e8758231b30c9b1d3f052f01c  gcc/testsuite/gcc.target/i386/serialize-1.c
  8fe36ae5ff2b4bac66cad558d27e43e8  gcc/testsuite/gcc.target/i386/set-v16qi-1.h
*************** b5540c2e6c4aa6f5730ae17876c12e1f  gcc/te
*** 76768,76776 ****
  a91c690a2baabf7fb9fbf56c14d88bed  gcc/testsuite/gcc.target/i386/sm3msg2-2.c
  658cdfafdd75c9f80c598bb25abc395a  gcc/testsuite/gcc.target/i386/sm3rnds2-2.c
  527afc04ce7409a5918499d4e09fb6d0  gcc/testsuite/gcc.target/i386/sm4-1.c
! 710a3de2afdbcce862d99b837cc77c25  gcc/testsuite/gcc.target/i386/sm4-check.h
  d3d755c099a0d9093b8e3e5488d4fca0  gcc/testsuite/gcc.target/i386/sm4key4-2.c
  aad85a16999958388a426758d91d43f4  gcc/testsuite/gcc.target/i386/sm4rnds4-2.c
  577e5b7c826e6a9e098a6607865c5e41  gcc/testsuite/gcc.target/i386/smuldi3_highpart.c
  ced55c097c7540a16ac1207e0104aafd  gcc/testsuite/gcc.target/i386/spellcheck-options-1.c
  2e1cd127d43849d529e1e8543aaaba2b  gcc/testsuite/gcc.target/i386/spellcheck-options-2.c
--- 81668,81680 ----
  a91c690a2baabf7fb9fbf56c14d88bed  gcc/testsuite/gcc.target/i386/sm3msg2-2.c
  658cdfafdd75c9f80c598bb25abc395a  gcc/testsuite/gcc.target/i386/sm3rnds2-2.c
  527afc04ce7409a5918499d4e09fb6d0  gcc/testsuite/gcc.target/i386/sm4-1.c
! 96338096e015f7193d0f7f10183421bd  gcc/testsuite/gcc.target/i386/sm4-avx10_2-1.c
! 3a918eebb60aa0527a09bf0eed85d46e  gcc/testsuite/gcc.target/i386/sm4-avx10_2-512-1.c
! 067ccc2a3bfd020bcb0aad6a5ea7bf81  gcc/testsuite/gcc.target/i386/sm4-check.h
  d3d755c099a0d9093b8e3e5488d4fca0  gcc/testsuite/gcc.target/i386/sm4key4-2.c
+ c2dd89a35926b1700011ee749646e975  gcc/testsuite/gcc.target/i386/sm4key4-avx10_2-512-2.c
  aad85a16999958388a426758d91d43f4  gcc/testsuite/gcc.target/i386/sm4rnds4-2.c
+ 8c0de90d52d1d031e1825c973b154a93  gcc/testsuite/gcc.target/i386/sm4rnds4-avx10_2-512-2.c
  577e5b7c826e6a9e098a6607865c5e41  gcc/testsuite/gcc.target/i386/smuldi3_highpart.c
  ced55c097c7540a16ac1207e0104aafd  gcc/testsuite/gcc.target/i386/spellcheck-options-1.c
  2e1cd127d43849d529e1e8543aaaba2b  gcc/testsuite/gcc.target/i386/spellcheck-options-2.c
*************** bc6b7244a28a5688b5a5c75593461393  gcc/te
*** 76784,76792 ****
  cc8a162617784a2e883a5e726d28ebde  gcc/testsuite/gcc.target/i386/sse-1.c
  31f7ce4356be3b5523e49df7d4ad0951  gcc/testsuite/gcc.target/i386/sse-10.c
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
! 05bd35f432682f9cbfa3d5258b149e67  gcc/testsuite/gcc.target/i386/sse-12.c
! 92584d689966fb22ac0b8bdfd30dc981  gcc/testsuite/gcc.target/i386/sse-13.c
! 4e9d3b0dd4fee332fb71587d2110fd50  gcc/testsuite/gcc.target/i386/sse-14.c
  92ad37b5ad7426d489b1b6f1ba0f41ea  gcc/testsuite/gcc.target/i386/sse-15.c
  2e7b115c4bd7984925f1a8d17a5faf67  gcc/testsuite/gcc.target/i386/sse-16.c
  f660e67b22cb44e6a6b38a247b1d78c3  gcc/testsuite/gcc.target/i386/sse-17.c
--- 81688,81696 ----
  cc8a162617784a2e883a5e726d28ebde  gcc/testsuite/gcc.target/i386/sse-1.c
  31f7ce4356be3b5523e49df7d4ad0951  gcc/testsuite/gcc.target/i386/sse-10.c
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
! 58aa5102101cd1f9e6b419b54e47a748  gcc/testsuite/gcc.target/i386/sse-12.c
! e5c114215560332e795fd03d0774a1cf  gcc/testsuite/gcc.target/i386/sse-13.c
! 7c71fd55d9167a805cc0741d44086f93  gcc/testsuite/gcc.target/i386/sse-14.c
  92ad37b5ad7426d489b1b6f1ba0f41ea  gcc/testsuite/gcc.target/i386/sse-15.c
  2e7b115c4bd7984925f1a8d17a5faf67  gcc/testsuite/gcc.target/i386/sse-16.c
  f660e67b22cb44e6a6b38a247b1d78c3  gcc/testsuite/gcc.target/i386/sse-17.c
*************** f660e67b22cb44e6a6b38a247b1d78c3  gcc/te
*** 76795,76806 ****
  bb148b6e9dd40de90aed723794e38216  gcc/testsuite/gcc.target/i386/sse-2.c
  c23a0ea446a060d55e49e48429513f7d  gcc/testsuite/gcc.target/i386/sse-20.c
  d5e7e4c7d488a953399d853e48aa484e  gcc/testsuite/gcc.target/i386/sse-21.c
! 824514b351a1420f4e2bd309b4548d4a  gcc/testsuite/gcc.target/i386/sse-22.c
  1c2df57cb3d7d6a3daf4084135ba9b1b  gcc/testsuite/gcc.target/i386/sse-22a.c
! d87997c408608e3c6e4aad06da1ad657  gcc/testsuite/gcc.target/i386/sse-23.c
  3fe1d48ff9d52631da56f04cc922a9cb  gcc/testsuite/gcc.target/i386/sse-24.c
  f839ec28fa786a06dabe541954c1b1ae  gcc/testsuite/gcc.target/i386/sse-25.c
! e8a84d53379236add57dd9d8b7053ab1  gcc/testsuite/gcc.target/i386/sse-26.c
  9dfe2cc74e998cef475e202f64ff8322  gcc/testsuite/gcc.target/i386/sse-3.c
  5d81ca69ddc7b70211c056c3bdc53dfa  gcc/testsuite/gcc.target/i386/sse-4.c
  61e96951e72e9099132e830d78d88dd2  gcc/testsuite/gcc.target/i386/sse-5.c
--- 81699,81710 ----
  bb148b6e9dd40de90aed723794e38216  gcc/testsuite/gcc.target/i386/sse-2.c
  c23a0ea446a060d55e49e48429513f7d  gcc/testsuite/gcc.target/i386/sse-20.c
  d5e7e4c7d488a953399d853e48aa484e  gcc/testsuite/gcc.target/i386/sse-21.c
! 4d640b78b622ff0e4019a625f7bd9acc  gcc/testsuite/gcc.target/i386/sse-22.c
  1c2df57cb3d7d6a3daf4084135ba9b1b  gcc/testsuite/gcc.target/i386/sse-22a.c
! 190413f840db95b97329bd0ecc36af54  gcc/testsuite/gcc.target/i386/sse-23.c
  3fe1d48ff9d52631da56f04cc922a9cb  gcc/testsuite/gcc.target/i386/sse-24.c
  f839ec28fa786a06dabe541954c1b1ae  gcc/testsuite/gcc.target/i386/sse-25.c
! 8bb465a190ed3492b3cf000afacb0a9a  gcc/testsuite/gcc.target/i386/sse-26.c
  9dfe2cc74e998cef475e202f64ff8322  gcc/testsuite/gcc.target/i386/sse-3.c
  5d81ca69ddc7b70211c056c3bdc53dfa  gcc/testsuite/gcc.target/i386/sse-4.c
  61e96951e72e9099132e830d78d88dd2  gcc/testsuite/gcc.target/i386/sse-5.c
*************** ee6ef4bf4e0a816c3454e31d36ab8bb6  gcc/te
*** 76813,76818 ****
--- 81717,81725 ----
  0a7b192cdd8a6d97ea4d570bdacbb640  gcc/testsuite/gcc.target/i386/sse-andnps-1.c
  cf73c01fb3fd687953b40ce65a9076da  gcc/testsuite/gcc.target/i386/sse-andps-1.c
  18656895c0dbed11382106b4ccab4cee  gcc/testsuite/gcc.target/i386/sse-check.h
+ b6316fa1f523540ce7fb212322d74cf4  gcc/testsuite/gcc.target/i386/sse-cmp-1.c
+ c99d1923e2a8e1210c77da07456a9648  gcc/testsuite/gcc.target/i386/sse-cmp-2.c
+ f299841adfb730a5f078faaa911efbd8  gcc/testsuite/gcc.target/i386/sse-cmp-error.c
  ea4cb390b58bd1ad716363ddda8c8670  gcc/testsuite/gcc.target/i386/sse-cmpss-1.c
  ccc6c580801ffadf17dc954344e73b23  gcc/testsuite/gcc.target/i386/sse-comiss-1.c
  3763b35cede933306e295cdd821ff1c6  gcc/testsuite/gcc.target/i386/sse-comiss-2.c
*************** bcf0d6d51d39f674c2672181211f8783  gcc/te
*** 76860,76865 ****
--- 81767,81773 ----
  011989a32280bb1aa821f00e7f492898  gcc/testsuite/gcc.target/i386/sse-orps-1.c
  9ac73bc009f43ea60db7fc10dec3ab01  gcc/testsuite/gcc.target/i386/sse-os-support.h
  dc6831587ee7762436a7ac070e187a5d  gcc/testsuite/gcc.target/i386/sse-pr101007.c
+ d575c93e3a64abc3f18f4916f1fcd689  gcc/testsuite/gcc.target/i386/sse-pr116738.c
  642da3797fdc5a430e7dffdf36d5a54d  gcc/testsuite/gcc.target/i386/sse-rcpps-1.c
  717722e6af4d66ee3202cb215f622945  gcc/testsuite/gcc.target/i386/sse-recip-vec.c
  3f9ef1b15bd7ed1556ef4a6fc75b7a66  gcc/testsuite/gcc.target/i386/sse-recip.c
*************** b9ce5798c339f3d6a78c41c0059bb5e2  gcc/te
*** 76920,76931 ****
  681afdaa8a4d44983b5a7977a5cad003  gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
  fc535f253868df6d104fe59110255bbe  gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
  c61ecb520f8d8d7266675b405d7b2aa7  gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
  a4889872f8bd70b679c9e9fc5ee3617f  gcc/testsuite/gcc.target/i386/sse2-extract-1.c
  67f0eee468e95f56f724a8eac0228c99  gcc/testsuite/gcc.target/i386/sse2-float16-1.c
  f8306e38605e0cbae5c9cbfe5ac4c94c  gcc/testsuite/gcc.target/i386/sse2-float16-2.c
  230115582d6aa23705616d8b7bfcdaca  gcc/testsuite/gcc.target/i386/sse2-float16-3.c
  a8cbfe4bb81133de6efac722e80f2cb9  gcc/testsuite/gcc.target/i386/sse2-float16-4.c
! 3c00574463ef55a91b65fc4f46b65ed7  gcc/testsuite/gcc.target/i386/sse2-float16-5.c
  bce0423c5fcea8a8b29f29c4fb6680c2  gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
  8e1f68af9dae754623af8653e461ece1  gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
  a483238e8a216ddeb00c43d4921dd054  gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
--- 81828,81840 ----
  681afdaa8a4d44983b5a7977a5cad003  gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
  fc535f253868df6d104fe59110255bbe  gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
  c61ecb520f8d8d7266675b405d7b2aa7  gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
+ 0c07eb9dec053d5a74f08445e2da3d9e  gcc/testsuite/gcc.target/i386/sse2-extendbf2sf.c
  a4889872f8bd70b679c9e9fc5ee3617f  gcc/testsuite/gcc.target/i386/sse2-extract-1.c
  67f0eee468e95f56f724a8eac0228c99  gcc/testsuite/gcc.target/i386/sse2-float16-1.c
  f8306e38605e0cbae5c9cbfe5ac4c94c  gcc/testsuite/gcc.target/i386/sse2-float16-2.c
  230115582d6aa23705616d8b7bfcdaca  gcc/testsuite/gcc.target/i386/sse2-float16-3.c
  a8cbfe4bb81133de6efac722e80f2cb9  gcc/testsuite/gcc.target/i386/sse2-float16-4.c
! a3416b6dfb05d892d60cb3d5025f5a68  gcc/testsuite/gcc.target/i386/sse2-float16-5.c
  bce0423c5fcea8a8b29f29c4fb6680c2  gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
  8e1f68af9dae754623af8653e461ece1  gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
  a483238e8a216ddeb00c43d4921dd054  gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
*************** f6722ff543fe2d22c61bee55cae7b3b0  gcc/te
*** 77115,77121 ****
  f4257a5e208e16a0a30cb7b050fdce96  gcc/testsuite/gcc.target/i386/sse2-pr91201.c
  37a0408ca14b3ed1d78bd5e1cff5b549  gcc/testsuite/gcc.target/i386/sse2-pr94680-2.c
  34c1f3d1465bbbb4df9450cb1c8dd20b  gcc/testsuite/gcc.target/i386/sse2-pr94680.c
! a61c548dc02cbe1848cd1f3c304b2310  gcc/testsuite/gcc.target/i386/sse2-pr98461-2.c
  1837447d436a786a3fc885a11bc08718  gcc/testsuite/gcc.target/i386/sse2-pr98461.c
  306e316bf36fd1022168fa5560198f41  gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
  31949c673c69db630bfaf04449d2677f  gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
--- 82024,82030 ----
  f4257a5e208e16a0a30cb7b050fdce96  gcc/testsuite/gcc.target/i386/sse2-pr91201.c
  37a0408ca14b3ed1d78bd5e1cff5b549  gcc/testsuite/gcc.target/i386/sse2-pr94680-2.c
  34c1f3d1465bbbb4df9450cb1c8dd20b  gcc/testsuite/gcc.target/i386/sse2-pr94680.c
! 12479717b7e3e37558cd9e6e356f8001  gcc/testsuite/gcc.target/i386/sse2-pr98461-2.c
  1837447d436a786a3fc885a11bc08718  gcc/testsuite/gcc.target/i386/sse2-pr98461.c
  306e316bf36fd1022168fa5560198f41  gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
  31949c673c69db630bfaf04449d2677f  gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
*************** c3f9e4e1884a10b88f0b0841400ac634  gcc/te
*** 77172,77178 ****
  229da27deb07940e47896f28568a9ad6  gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
  e3c923013c80e125486648e3307d19ca  gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
  7db644ccdd175cb179b38dae92b1ab88  gcc/testsuite/gcc.target/i386/sse2-store-multi.c
! 485842b0c48475dd73631d5d7395a734  gcc/testsuite/gcc.target/i386/sse2-stv-1.c
  9be13acc473ad924e8c8d9361b6bb102  gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
  27c775be57a4cec6ca0c692df6b7b073  gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
  29e42097b8a8d6b6700b13e1bd99e89d  gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
--- 82081,82088 ----
  229da27deb07940e47896f28568a9ad6  gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
  e3c923013c80e125486648e3307d19ca  gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
  7db644ccdd175cb179b38dae92b1ab88  gcc/testsuite/gcc.target/i386/sse2-store-multi.c
! 64142495fd35f30a44b73fe33e81d06a  gcc/testsuite/gcc.target/i386/sse2-stv-1.c
! eb452255da68355f880cada63c730531  gcc/testsuite/gcc.target/i386/sse2-stv-2.c
  9be13acc473ad924e8c8d9361b6bb102  gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
  27c775be57a4cec6ca0c692df6b7b073  gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
  29e42097b8a8d6b6700b13e1bd99e89d  gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
*************** cf99e4d1cf8d2c89fd3dbdda184cc0ea  gcc/te
*** 77199,77205 ****
  4eba81e6b3506e6c73a8b1b2aeac0f41  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift-3.c
  9a8d5b480c8112c2e4351b9e0c1fcf18  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift.c
  31b7095b565797047cf7de6e161fdb82  gcc/testsuite/gcc.target/i386/sse2-v1ti-veq.c
! 563427a8f754f4f95465a884cd9e7ed2  gcc/testsuite/gcc.target/i386/sse2-v1ti-vne.c
  f84fad3c04a7990bc664cb9368714469  gcc/testsuite/gcc.target/i386/sse2-v1ti-zext.c
  dc9066a5a4e2651d9a9a03c5eef62f20  gcc/testsuite/gcc.target/i386/sse2-vec-1.c
  5ef6907bdb04ea9524e19fcbc3e33d50  gcc/testsuite/gcc.target/i386/sse2-vec-2.c
--- 82109,82115 ----
  4eba81e6b3506e6c73a8b1b2aeac0f41  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift-3.c
  9a8d5b480c8112c2e4351b9e0c1fcf18  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift.c
  31b7095b565797047cf7de6e161fdb82  gcc/testsuite/gcc.target/i386/sse2-v1ti-veq.c
! 6a97d0adfaf628906fa5719d70ea17e2  gcc/testsuite/gcc.target/i386/sse2-v1ti-vne.c
  f84fad3c04a7990bc664cb9368714469  gcc/testsuite/gcc.target/i386/sse2-v1ti-zext.c
  dc9066a5a4e2651d9a9a03c5eef62f20  gcc/testsuite/gcc.target/i386/sse2-vec-1.c
  5ef6907bdb04ea9524e19fcbc3e33d50  gcc/testsuite/gcc.target/i386/sse2-vec-2.c
*************** e74162d2e3d68b7ced7d0745c7adc4f2  gcc/te
*** 77229,77234 ****
--- 82139,82145 ----
  d82d917b914b989a4f437aca582f09a3  gcc/testsuite/gcc.target/i386/sse3-movshdup.c
  61cb0bb6708a19006f1679b146c2f6e1  gcc/testsuite/gcc.target/i386/sse3-movsldup.c
  587d69bc58be1302b1b8f9147eb534de  gcc/testsuite/gcc.target/i386/sse4-pr112681.c
+ 66673c72912e5f269dca38e3d65f9c36  gcc/testsuite/gcc.target/i386/sse4-pr113079-2.c
  9624ab9319b8bca095f72845310aa4eb  gcc/testsuite/gcc.target/i386/sse4-pr39821.c
  e18bbd1a575dbb964c9953896983e6c4  gcc/testsuite/gcc.target/i386/sse4_1-blendpd.c
  a736f67981b7b1bab60f7f837650f79f  gcc/testsuite/gcc.target/i386/sse4_1-blendps-2.c
*************** d4ab1edd600792f99ba9af1f339877b2  gcc/te
*** 77306,77311 ****
--- 82217,82223 ----
  904465c84efe5ac93e4d2e77a96278e7  gcc/testsuite/gcc.target/i386/sse4_1-pmulld.c
  1f8e625ed5b843e9cc2b6838ed686fc7  gcc/testsuite/gcc.target/i386/sse4_1-pr88189-1.c
  d6174210a0855a4b9107fb58c0e03942  gcc/testsuite/gcc.target/i386/sse4_1-pr88189-2.c
+ 1c894207254f7d7fc7fc975ef21a42b4  gcc/testsuite/gcc.target/i386/sse4_1-pr88540.c
  a779fdc3b7fb036bce855eb905fb882f  gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c
  bb5484db46d5db1bc08e3be71a124faf  gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c
  5f3a09d47913ad0aa2ca0bde478960c3  gcc/testsuite/gcc.target/i386/sse4_1-pr91201.c
*************** effe4dc13814c957854a50cd5fad661e  gcc/te
*** 77392,77397 ****
--- 82304,82310 ----
  b0951967bfa853ba12e42c1c743667dc  gcc/testsuite/gcc.target/i386/sse4a-insert.c
  c97961536a95b0d04409c1f58de570ff  gcc/testsuite/gcc.target/i386/sse4a-montsd.c
  2692626ae624bec3c2fbfa92340ac9cf  gcc/testsuite/gcc.target/i386/sse4a-montss.c
+ cc298080e7c43d26930d1fdf76d398aa  gcc/testsuite/gcc.target/i386/sse_movcc_use_blendv.c
  76d762004d078a0c483b932e5ffdfca2  gcc/testsuite/gcc.target/i386/ssefn-1.c
  ae471ea12fb81b2280f51db2fd6b1249  gcc/testsuite/gcc.target/i386/ssefn-2.c
  b30af657dc02d895db811d45730e91fa  gcc/testsuite/gcc.target/i386/ssefn-3.c
*************** fa2d633fba21cdcc631120d7efcff849  gcc/te
*** 77412,77417 ****
--- 82325,82331 ----
  fdf3ced9c10f6f133f5e33a8a960c3d3  gcc/testsuite/gcc.target/i386/ssetype-4.c
  58911edab62aa907b5304c5708c2cae8  gcc/testsuite/gcc.target/i386/ssetype-5.c
  f3af6c8731509036aac69fd020088034  gcc/testsuite/gcc.target/i386/ssp-default.c
+ fc34f90233b08339ede0bbf5bfa96b26  gcc/testsuite/gcc.target/i386/ssp-global.c
  a0e47f84ef019a0c0609e9c44732ef14  gcc/testsuite/gcc.target/i386/ssp-strong-reg.c
  81a7be5b11bbf9853287f943766c6b38  gcc/testsuite/gcc.target/i386/ssse3-check.h
  6db34eb726bd47c0e8fec4f80e73f19f  gcc/testsuite/gcc.target/i386/ssse3-pabsb.c
*************** e6a3ecb80a089c5e971a5a097701255d  gcc/te
*** 77431,77436 ****
--- 82345,82351 ----
  b3082251265483716a53827b31517936  gcc/testsuite/gcc.target/i386/ssse3-psignb.c
  5c58d5d7c2e35b22f6a4c28d124bde6f  gcc/testsuite/gcc.target/i386/ssse3-psignd.c
  a9f88e9f5dc3a65651e4aac1c477bd99  gcc/testsuite/gcc.target/i386/ssse3-psignw.c
+ c090869f11057c7ff1b23d043c14ed85  gcc/testsuite/gcc.target/i386/ssse3-truncsfbf.c
  350a25c3aea2becac5c56cff7b4bf401  gcc/testsuite/gcc.target/i386/ssse3-vals.h
  477939a29a89fa9e24f140cf485795a0  gcc/testsuite/gcc.target/i386/stack-check-11.c
  663ee911f5f6c14483010012c61ad672  gcc/testsuite/gcc.target/i386/stack-check-12.c
*************** e797e3acc17ea660fd93c0911e210be1  gcc/te
*** 77455,77471 ****
  22fcf3b6f05e35417473446a6401735c  gcc/testsuite/gcc.target/i386/stackalign/return-4.c
  8276f2c9f0467299ccc2c3bc989ca9cb  gcc/testsuite/gcc.target/i386/stackalign/return-5.c
  67a3c24d3712370ddefd38dcbb853a48  gcc/testsuite/gcc.target/i386/stackalign/return-6.c
! c7175677e79a3b0510890932cf9db36b  gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp
  ad09d7a5edd0c6a4e2e56b5ee419095d  gcc/testsuite/gcc.target/i386/stc-1.c
  2778b9ab1729f5a65d10668b47f03340  gcc/testsuite/gcc.target/i386/strcmpopt_6.c
  caa0a36ffb354dbc6cd84a8137f4aef9  gcc/testsuite/gcc.target/i386/strinline.c
  aa69c6504471efa5d76824859d0bc6cb  gcc/testsuite/gcc.target/i386/strncmp-1.c
! fc3a18821c52e48c29f54252053988ba  gcc/testsuite/gcc.target/i386/struct-size.c
  082538977a4692c9eb5cd2472933d4ca  gcc/testsuite/gcc.target/i386/sw-1.c
  48aa8d8f4c116ed47aba3b4b60fae8f3  gcc/testsuite/gcc.target/i386/tailcall-1.c
  84b12afcb316a8ec7dce5bea1db67912  gcc/testsuite/gcc.target/i386/tbm-1.c
  b292dd3bc21c285ba5f3f1bcac0a5139  gcc/testsuite/gcc.target/i386/tbm-2.c
  052ea02011f5031dc3a4171aed715a52  gcc/testsuite/gcc.target/i386/tbm-bextri-1.c
  4edd7df3f7e7eae5b3e0d3be8a5068e4  gcc/testsuite/gcc.target/i386/testimm-1.c
  7188c4d254bb0c4fb66e39b2c8e51711  gcc/testsuite/gcc.target/i386/testimm-10.c
  ac027496b6114a9f7eb014a0c4cf998a  gcc/testsuite/gcc.target/i386/testimm-2.c
--- 82370,82391 ----
  22fcf3b6f05e35417473446a6401735c  gcc/testsuite/gcc.target/i386/stackalign/return-4.c
  8276f2c9f0467299ccc2c3bc989ca9cb  gcc/testsuite/gcc.target/i386/stackalign/return-5.c
  67a3c24d3712370ddefd38dcbb853a48  gcc/testsuite/gcc.target/i386/stackalign/return-6.c
! 3cc5b594236e0cc70d6a707ac71585db  gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp
  ad09d7a5edd0c6a4e2e56b5ee419095d  gcc/testsuite/gcc.target/i386/stc-1.c
  2778b9ab1729f5a65d10668b47f03340  gcc/testsuite/gcc.target/i386/strcmpopt_6.c
  caa0a36ffb354dbc6cd84a8137f4aef9  gcc/testsuite/gcc.target/i386/strinline.c
  aa69c6504471efa5d76824859d0bc6cb  gcc/testsuite/gcc.target/i386/strncmp-1.c
! 73e9b60fc5538f3bc3fb2f10203f8cac  gcc/testsuite/gcc.target/i386/strub-pr118006.c
! 29df8cde9c78eeac0fa0f5753e430a15  gcc/testsuite/gcc.target/i386/struct-size.c
  082538977a4692c9eb5cd2472933d4ca  gcc/testsuite/gcc.target/i386/sw-1.c
+ cc28001d51678e840c7ed2bf7a78aa0c  gcc/testsuite/gcc.target/i386/switch-exp-transform-1.c
+ 0832eec5eee080e9dd8b40cb7a18fad8  gcc/testsuite/gcc.target/i386/switch-exp-transform-2.c
+ fde1ac7b82e671a22c599f0160131e2d  gcc/testsuite/gcc.target/i386/switch-exp-transform-3.c
  48aa8d8f4c116ed47aba3b4b60fae8f3  gcc/testsuite/gcc.target/i386/tailcall-1.c
  84b12afcb316a8ec7dce5bea1db67912  gcc/testsuite/gcc.target/i386/tbm-1.c
  b292dd3bc21c285ba5f3f1bcac0a5139  gcc/testsuite/gcc.target/i386/tbm-2.c
  052ea02011f5031dc3a4171aed715a52  gcc/testsuite/gcc.target/i386/tbm-bextri-1.c
+ d463b6607b227bc8376b031954d58ffb  gcc/testsuite/gcc.target/i386/tbm-pr116287.c
  4edd7df3f7e7eae5b3e0d3be8a5068e4  gcc/testsuite/gcc.target/i386/testimm-1.c
  7188c4d254bb0c4fb66e39b2c8e51711  gcc/testsuite/gcc.target/i386/testimm-10.c
  ac027496b6114a9f7eb014a0c4cf998a  gcc/testsuite/gcc.target/i386/testimm-2.c
*************** eea325a3ec07f551da45222800b264fa  gcc/te
*** 77482,77487 ****
--- 82402,82409 ----
  d44614fd5596d1f2a2a55c835ee50727  gcc/testsuite/gcc.target/i386/testround-1.c
  b20b310f3636a1d1d5c3491de30c7a3b  gcc/testsuite/gcc.target/i386/testround-2.c
  832965b06213f2066439fd1482fcb8a7  gcc/testsuite/gcc.target/i386/tpause-1.c
+ 04ea04a285e79ac7b10b6bcfc9c1ad23  gcc/testsuite/gcc.target/i386/truncsfbf-1.c
+ ceb8eb8fe5daae6005c48dfb01006a5c  gcc/testsuite/gcc.target/i386/truncsfbf-2.c
  ed802e5785edad05c6b1796ffc7404fb  gcc/testsuite/gcc.target/i386/tsxldtrk-1.c
  93d9979dbb1eca4f0954ae4f9ab2dd58  gcc/testsuite/gcc.target/i386/udivmod-1.c
  8950d7bf5681f03b1ac271428565f90d  gcc/testsuite/gcc.target/i386/udivmod-2.c
*************** a4fe926ed930e3d04f3d214919607450  gcc/te
*** 77517,77523 ****
  4c7ae35fca28cf5aa0b6938d41627966  gcc/testsuite/gcc.target/i386/vararg-8.c
  720067ba9815f8767ffbfb049d5bf847  gcc/testsuite/gcc.target/i386/vararg-9.c
  613084fa98e4873c55ccda5cdb32011f  gcc/testsuite/gcc.target/i386/vararg-loc.c
! 859b42113f7e4a665b6efee2028ef556  gcc/testsuite/gcc.target/i386/vartrack-1.c
  63179b2b54568beabc3c9a1401203d0e  gcc/testsuite/gcc.target/i386/vcvtph2ps-1.c
  86eb619fa00001d1a9054087630c3324  gcc/testsuite/gcc.target/i386/vcvtph2ps-2.c
  33700b75079119957ef49d3bd05d67a4  gcc/testsuite/gcc.target/i386/vcvtph2ps-3.c
--- 82439,82445 ----
  4c7ae35fca28cf5aa0b6938d41627966  gcc/testsuite/gcc.target/i386/vararg-8.c
  720067ba9815f8767ffbfb049d5bf847  gcc/testsuite/gcc.target/i386/vararg-9.c
  613084fa98e4873c55ccda5cdb32011f  gcc/testsuite/gcc.target/i386/vararg-loc.c
! 1ba09fb4e4da197938f33a9d63e0d3d5  gcc/testsuite/gcc.target/i386/vartrack-1.c
  63179b2b54568beabc3c9a1401203d0e  gcc/testsuite/gcc.target/i386/vcvtph2ps-1.c
  86eb619fa00001d1a9054087630c3324  gcc/testsuite/gcc.target/i386/vcvtph2ps-2.c
  33700b75079119957ef49d3bd05d67a4  gcc/testsuite/gcc.target/i386/vcvtph2ps-3.c
*************** fb08b790e4753cd7a09e81d7f3e66820  gcc/te
*** 77550,77564 ****
  dcf09c8d7eb01e0e8a5e8cefaf164498  gcc/testsuite/gcc.target/i386/vect-args.c
  166514b293e147eb9e6ae706c1dcf60f  gcc/testsuite/gcc.target/i386/vect-bfloat16-1.c
  64e947d6f5fbfaeeb886d49aec0a5ea0  gcc/testsuite/gcc.target/i386/vect-bfloat16-2a.c
! 5e1a816c4e72e212dd0e6f8f96f869f2  gcc/testsuite/gcc.target/i386/vect-bfloat16-2b.c
  eda0d442fd95aa4f91e9f15d67b2a009  gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c
  ef5c459cb91849c88697aa740366def5  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_1.c
  c6de9db89c9a84b86bc9e22583bbe1da  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_2.c
  f34aa81937bfa895146815db467bcc3d  gcc/testsuite/gcc.target/i386/vect-cond-1.c
! 5c0044496c9a7d83c47a821d73ab8ddf  gcc/testsuite/gcc.target/i386/vect-div-1.c
  38733171ed3f42215de340f00f2277e8  gcc/testsuite/gcc.target/i386/vect-double-1.c
  f2246fb526840289cc94bd7e8b0c994a  gcc/testsuite/gcc.target/i386/vect-double-1a.c
! 620268a8c72e7873c7d5dee21a554a93  gcc/testsuite/gcc.target/i386/vect-double-2.c
  4c9ce05e33ac7d3784a3f13d53e110ed  gcc/testsuite/gcc.target/i386/vect-double-2a.c
  44589af45370ba4865592d1e9e717b40  gcc/testsuite/gcc.target/i386/vect-float16-1.c
  22c6e6a37c837040af7566c0ebd70233  gcc/testsuite/gcc.target/i386/vect-float16-10.c
--- 82472,82486 ----
  dcf09c8d7eb01e0e8a5e8cefaf164498  gcc/testsuite/gcc.target/i386/vect-args.c
  166514b293e147eb9e6ae706c1dcf60f  gcc/testsuite/gcc.target/i386/vect-bfloat16-1.c
  64e947d6f5fbfaeeb886d49aec0a5ea0  gcc/testsuite/gcc.target/i386/vect-bfloat16-2a.c
! 01d0fca7e57424d984e9526aa969af2e  gcc/testsuite/gcc.target/i386/vect-bfloat16-2b.c
  eda0d442fd95aa4f91e9f15d67b2a009  gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c
  ef5c459cb91849c88697aa740366def5  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_1.c
  c6de9db89c9a84b86bc9e22583bbe1da  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_2.c
  f34aa81937bfa895146815db467bcc3d  gcc/testsuite/gcc.target/i386/vect-cond-1.c
! f3b080c0020e1742c43ff167c717f0b5  gcc/testsuite/gcc.target/i386/vect-div-1.c
  38733171ed3f42215de340f00f2277e8  gcc/testsuite/gcc.target/i386/vect-double-1.c
  f2246fb526840289cc94bd7e8b0c994a  gcc/testsuite/gcc.target/i386/vect-double-1a.c
! 9e17a1e6928bcaccff7de2228ffe1189  gcc/testsuite/gcc.target/i386/vect-double-2.c
  4c9ce05e33ac7d3784a3f13d53e110ed  gcc/testsuite/gcc.target/i386/vect-double-2a.c
  44589af45370ba4865592d1e9e717b40  gcc/testsuite/gcc.target/i386/vect-float16-1.c
  22c6e6a37c837040af7566c0ebd70233  gcc/testsuite/gcc.target/i386/vect-float16-10.c
*************** d5deff4fe842f021396f3f5c94e96477  gcc/te
*** 77587,77612 ****
  c50397e875cfec6d318c0ef41dbe3596  gcc/testsuite/gcc.target/i386/vect-perm-even-1.c
  01c1d7e7805e8138e514493ab9238621  gcc/testsuite/gcc.target/i386/vect-perm-odd-1.c
  92f0334cc6aa244e46623ffea17f19a7  gcc/testsuite/gcc.target/i386/vect-pr113078.c
  515f451843087285cae4273f2866f93b  gcc/testsuite/gcc.target/i386/vect-pr67800.c
  3c9e12b95afbbd42b2d335da98dfca9b  gcc/testsuite/gcc.target/i386/vect-pr82426.c
  c94d34a8add7450a1085d0dbbfca7403  gcc/testsuite/gcc.target/i386/vect-pr97352.c
  721bbf9cfd81a48f5915680f4a425bad  gcc/testsuite/gcc.target/i386/vect-rebuild.c
  75207fad1f58c73a9ea0045ffa247e39  gcc/testsuite/gcc.target/i386/vect-reduc-1.c
  0f9fc194c0bd731306645fe06259feae  gcc/testsuite/gcc.target/i386/vect-reduc-2.c
! db3be8fb9749039e9e22aaeecbc61b0c  gcc/testsuite/gcc.target/i386/vect-shiftv4qi.c
! 00d914a2c06c655170776f24abf00754  gcc/testsuite/gcc.target/i386/vect-shiftv8qi.c
  de36035a6b74d9e9cabfaa8cfb15f288  gcc/testsuite/gcc.target/i386/vect-signbitf.c
  b0da24fa88b08163c773260811462548  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-1.c
  0d27c648c7c20454c90cb0a7a80ec0e0  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-2.c
  998709b1ee7004cbdd5d3d7e5cc5794d  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-3.c
  7f2bb0dd2fdc6e3a083e43645ee26275  gcc/testsuite/gcc.target/i386/vect-sizes-1.c
  aed8bd49e1e3dbcce9eed60b9381a26f  gcc/testsuite/gcc.target/i386/vect-unpack-1.c
  6e2ac104cc5f021d36fbcdf67129f17d  gcc/testsuite/gcc.target/i386/vect-unpack-2.c
  e050839388ed939e6ea93e65d85f8264  gcc/testsuite/gcc.target/i386/vect-unpack-3.c
  6138f593bf5a8a54c6a2ecd9c082fa92  gcc/testsuite/gcc.target/i386/vect-vshiftv4qi.c
  aabfb464563bba6c95de882354b5de43  gcc/testsuite/gcc.target/i386/vect-vshiftv8qi.c
  14f97b9dcbd389e10dc5aa32f63f91f2  gcc/testsuite/gcc.target/i386/vect8-ret.c
! 17262b0be0bb91aa8e2425773da183a3  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
  2b02856d49c831f0cc8cd5bce35766d7  gcc/testsuite/gcc.target/i386/vectorize2.c
  d9337e36cb89f810827a40283d1e6db9  gcc/testsuite/gcc.target/i386/vectorize3.c
--- 82509,82543 ----
  c50397e875cfec6d318c0ef41dbe3596  gcc/testsuite/gcc.target/i386/vect-perm-even-1.c
  01c1d7e7805e8138e514493ab9238621  gcc/testsuite/gcc.target/i386/vect-perm-odd-1.c
  92f0334cc6aa244e46623ffea17f19a7  gcc/testsuite/gcc.target/i386/vect-pr113078.c
+ b24ba66b3104508ec7610b49a0fdd32f  gcc/testsuite/gcc.target/i386/vect-pr115385.c
+ 890caaae0bae6a4b8a542ac986a9465e  gcc/testsuite/gcc.target/i386/vect-pr115895.c
  515f451843087285cae4273f2866f93b  gcc/testsuite/gcc.target/i386/vect-pr67800.c
  3c9e12b95afbbd42b2d335da98dfca9b  gcc/testsuite/gcc.target/i386/vect-pr82426.c
  c94d34a8add7450a1085d0dbbfca7403  gcc/testsuite/gcc.target/i386/vect-pr97352.c
  721bbf9cfd81a48f5915680f4a425bad  gcc/testsuite/gcc.target/i386/vect-rebuild.c
  75207fad1f58c73a9ea0045ffa247e39  gcc/testsuite/gcc.target/i386/vect-reduc-1.c
  0f9fc194c0bd731306645fe06259feae  gcc/testsuite/gcc.target/i386/vect-reduc-2.c
! a82a9d393bb05c8976c4e48d693bd432  gcc/testsuite/gcc.target/i386/vect-shiftv4qi-2.c
! 2157d69bf76021bc632167bbef232467  gcc/testsuite/gcc.target/i386/vect-shiftv4qi.c
! 100510265df3e2a89528c0ac304256ad  gcc/testsuite/gcc.target/i386/vect-shiftv8qi-2.c
! a07d241b6e589c70ab350c7f9a3cd2f4  gcc/testsuite/gcc.target/i386/vect-shiftv8qi.c
  de36035a6b74d9e9cabfaa8cfb15f288  gcc/testsuite/gcc.target/i386/vect-signbitf.c
  b0da24fa88b08163c773260811462548  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-1.c
  0d27c648c7c20454c90cb0a7a80ec0e0  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-2.c
  998709b1ee7004cbdd5d3d7e5cc5794d  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-3.c
  7f2bb0dd2fdc6e3a083e43645ee26275  gcc/testsuite/gcc.target/i386/vect-sizes-1.c
+ 4d55da8e4e80b4aa7bc933b65b543d78  gcc/testsuite/gcc.target/i386/vect-strided-1.c
+ ffacbc5cd2772da0a8c17a746165ce14  gcc/testsuite/gcc.target/i386/vect-strided-2.c
+ bfc556a9b23d49631a220f73e00dbbd4  gcc/testsuite/gcc.target/i386/vect-strided-3.c
+ 86209d102240a8fc4c32d8b78c208654  gcc/testsuite/gcc.target/i386/vect-strided-4.c
  aed8bd49e1e3dbcce9eed60b9381a26f  gcc/testsuite/gcc.target/i386/vect-unpack-1.c
  6e2ac104cc5f021d36fbcdf67129f17d  gcc/testsuite/gcc.target/i386/vect-unpack-2.c
  e050839388ed939e6ea93e65d85f8264  gcc/testsuite/gcc.target/i386/vect-unpack-3.c
  6138f593bf5a8a54c6a2ecd9c082fa92  gcc/testsuite/gcc.target/i386/vect-vshiftv4qi.c
  aabfb464563bba6c95de882354b5de43  gcc/testsuite/gcc.target/i386/vect-vshiftv8qi.c
  14f97b9dcbd389e10dc5aa32f63f91f2  gcc/testsuite/gcc.target/i386/vect8-ret.c
! 149e13bbcc2a5494920185cb4c3283ba  gcc/testsuite/gcc.target/i386/vectorize-aocl1.c
! 8392cd251159c612f1d39b348071c359  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
  2b02856d49c831f0cc8cd5bce35766d7  gcc/testsuite/gcc.target/i386/vectorize2.c
  d9337e36cb89f810827a40283d1e6db9  gcc/testsuite/gcc.target/i386/vectorize3.c
*************** d9550dbca205ca245040a4868f69e106  gcc/te
*** 77622,77630 ****
  40595281c51d64d5637a42a7958158a3  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-2.c
  6517a2c66873ffa0e86469852e46a556  gcc/testsuite/gcc.target/i386/vnni_inline_error.c
  2842007b495cf9a83ae76f07de10dbbf  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-1.c
! b0ee6954fdce6436bbe35194c9ec5609  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-2.c
  e125caaf089656a38668d9a76e5a9fd8  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-1.c
! 0f1ad3156307cf7dd9eb8422acf396f6  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-2.c
  784c987777c87b20adb70aefdd43c1ea  gcc/testsuite/gcc.target/i386/volatile-1.c
  df392be222a4275b2813dd6198b59951  gcc/testsuite/gcc.target/i386/volatile-2.c
  a1724ce16bcf831fa3fa93e00649d504  gcc/testsuite/gcc.target/i386/volatile-bitfields-1.c
--- 82553,82565 ----
  40595281c51d64d5637a42a7958158a3  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-2.c
  6517a2c66873ffa0e86469852e46a556  gcc/testsuite/gcc.target/i386/vnni_inline_error.c
  2842007b495cf9a83ae76f07de10dbbf  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-1.c
! dd7ed272907898b9a851cf1fa84d567d  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-2.c
! c7282ac069176bfb3dcc61891051afd2  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-3.c
! 1725f592a3b974b84141d6530be86971  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-4.c
  e125caaf089656a38668d9a76e5a9fd8  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-1.c
! 289da27416d1d3ba12c43508573b26b7  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-2.c
! d386259070688fcefcaa2b87d640aefd  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-3.c
! 9c7ac3e0ca2ac2b6081dcfd8b41c5eb7  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-4.c
  784c987777c87b20adb70aefdd43c1ea  gcc/testsuite/gcc.target/i386/volatile-1.c
  df392be222a4275b2813dd6198b59951  gcc/testsuite/gcc.target/i386/volatile-2.c
  a1724ce16bcf831fa3fa93e00649d504  gcc/testsuite/gcc.target/i386/volatile-bitfields-1.c
*************** b7ed6144e23cbc6c1d47acced00af07f  gcc/te
*** 77648,77653 ****
--- 82583,82589 ----
  18f09ab3fcf97cd46e7f03f1f71ff8f1  gcc/testsuite/gcc.target/i386/vperm-v4si-2.c
  f32d0d602b6f58b940bf95892b0db34a  gcc/testsuite/gcc.target/i386/vperm-v4si-2x.c
  76710955b079f5aef677a35016df3106  gcc/testsuite/gcc.target/i386/vperm.pl
+ e9a9132d4e7f667ada39367199aa16c9  gcc/testsuite/gcc.target/i386/vpermt2-special-bf16-shufflue.c
  1e09b86899aa54e1a73554c08bd179cc  gcc/testsuite/gcc.target/i386/vzeroupper-dump-flags.c
  3a4f0f6120e1da5bed1481efe4fc37b6  gcc/testsuite/gcc.target/i386/warn-abs-3.c
  44fec3573c80bd08c5d402045b97645b  gcc/testsuite/gcc.target/i386/warn-vect-op-1.c
*************** cd5f15dc6f4513c2f0c6b7723c73a3cc  gcc/te
*** 77690,77695 ****
--- 82626,82632 ----
  e45be5b5dd5f8be0a75495bb33be0404  gcc/testsuite/gcc.target/i386/xchg-1.c
  b6d6abcfbd5245e5750e48d0e9518639  gcc/testsuite/gcc.target/i386/xchg-2.c
  6b4af20868897fdf46e4f385241c152d  gcc/testsuite/gcc.target/i386/xchg-3.c
+ 092f70544db9f4e0ae2995376586d4cb  gcc/testsuite/gcc.target/i386/xchg-4.c
  bb9856cef755854e2f3eebc7fffd6629  gcc/testsuite/gcc.target/i386/xgetsetbv.c
  5ee25ab13ecf1397089259762302768b  gcc/testsuite/gcc.target/i386/xop-check.h
  c37d749cc823fbe15fae562023e669f6  gcc/testsuite/gcc.target/i386/xop-frczX.c
*************** b81eec3020bfc4b0c6d961dd7dfc73b5  gcc/te
*** 77721,77727 ****
  5e35df83dc304085add881ffa9591299  gcc/testsuite/gcc.target/i386/xorps-sse2.c
  823144da31d940721b1596844506366d  gcc/testsuite/gcc.target/i386/xorps.c
  f7e982f19bf360c6735d5fbd85f29e0c  gcc/testsuite/gcc.target/i386/xorsign-avx.c
! d439a77d5e6c43d22b0e43a8932a186a  gcc/testsuite/gcc.target/i386/xorsign.c
  5d6799d058b6088fec71f80bc037cc66  gcc/testsuite/gcc.target/i386/xrstor-1.c
  cc5fa98498d02d917ff12651bbecacbc  gcc/testsuite/gcc.target/i386/xrstor64-1.c
  d0ec6d7102b172ce99abfca7935db985  gcc/testsuite/gcc.target/i386/xsave-1.c
--- 82658,82664 ----
  5e35df83dc304085add881ffa9591299  gcc/testsuite/gcc.target/i386/xorps-sse2.c
  823144da31d940721b1596844506366d  gcc/testsuite/gcc.target/i386/xorps.c
  f7e982f19bf360c6735d5fbd85f29e0c  gcc/testsuite/gcc.target/i386/xorsign-avx.c
! 6a2cde4952e95c9d572f47df40d64bb7  gcc/testsuite/gcc.target/i386/xorsign.c
  5d6799d058b6088fec71f80bc037cc66  gcc/testsuite/gcc.target/i386/xrstor-1.c
  cc5fa98498d02d917ff12651bbecacbc  gcc/testsuite/gcc.target/i386/xrstor64-1.c
  d0ec6d7102b172ce99abfca7935db985  gcc/testsuite/gcc.target/i386/xsave-1.c
*************** e503a36f60906243e41efad6cd79687d  gcc/te
*** 77768,77773 ****
--- 82705,82711 ----
  77261340baccba3c1606d1f074300bcb  gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c
  e80eb96074dc5330cca76e675ed3fa81  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-1.c
  9ec40a460fd8d078d383004e804051e7  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-2.c
+ 041c0c15a6f5fcdd1f0b5a575d1a3a0c  gcc/testsuite/gcc.target/i386/zero_extendkmask.c
  09fb6852403bb7a0b9b3339c49e09efb  gcc/testsuite/gcc.target/ia64/20010423-1.c
  d42256aef37a73ae61dad2030303738b  gcc/testsuite/gcc.target/ia64/20020313-1.c
  80710ab442f553a1629beb106d8276a3  gcc/testsuite/gcc.target/ia64/20020326-1.c
*************** e50239a34975c5fbc852ce8f339c44ea  gcc/te
*** 77794,77804 ****
  de4e305b115a22fef774b1524552bf20  gcc/testsuite/gcc.target/ia64/fpreg-2.c
  25922243d19af1f913e65dbd4e5ffb31  gcc/testsuite/gcc.target/ia64/fptr-1.c
  08fa38ef5026e6de3937383461ad92f2  gcc/testsuite/gcc.target/ia64/got-1.c
! 5c29f9cfc1c27cd4a65decd8f196fc91  gcc/testsuite/gcc.target/ia64/ia64.exp
! 37ef53f75bdf314832e2e6e7f81c6c93  gcc/testsuite/gcc.target/ia64/mfused-madd-vect.c
! e8a414d98f9dcd1d545f9c542dda6671  gcc/testsuite/gcc.target/ia64/mfused-madd.c
! 282dda375f4c7025c7ff2dee87894838  gcc/testsuite/gcc.target/ia64/mno-fused-madd-vect.c
! 41e5197c75d26929e255c22557d93ce2  gcc/testsuite/gcc.target/ia64/mno-fused-madd.c
  78e9bbaeebf5b8a61104ae2da0c31b16  gcc/testsuite/gcc.target/ia64/postinc-1.c
  fd2f969aaaab55fbb3158c1356538cdd  gcc/testsuite/gcc.target/ia64/pr106905.c
  5fac14a30ee1cf89bf281483c6706a7a  gcc/testsuite/gcc.target/ia64/pr29682.c
--- 82732,82742 ----
  de4e305b115a22fef774b1524552bf20  gcc/testsuite/gcc.target/ia64/fpreg-2.c
  25922243d19af1f913e65dbd4e5ffb31  gcc/testsuite/gcc.target/ia64/fptr-1.c
  08fa38ef5026e6de3937383461ad92f2  gcc/testsuite/gcc.target/ia64/got-1.c
! f19e239cec4a1bb0af616af5665d9d65  gcc/testsuite/gcc.target/ia64/ia64.exp
! b7df1b45fe01243f95d1a191040eb564  gcc/testsuite/gcc.target/ia64/mfused-madd-vect.c
! 79db3d8f36e4fd3c9d27c4af87a75633  gcc/testsuite/gcc.target/ia64/mfused-madd.c
! 3505594cb6fb168187f583bdae98c34b  gcc/testsuite/gcc.target/ia64/mno-fused-madd-vect.c
! 16b56b01d207d86782d76794f4099c58  gcc/testsuite/gcc.target/ia64/mno-fused-madd.c
  78e9bbaeebf5b8a61104ae2da0c31b16  gcc/testsuite/gcc.target/ia64/postinc-1.c
  fd2f969aaaab55fbb3158c1356538cdd  gcc/testsuite/gcc.target/ia64/pr106905.c
  5fac14a30ee1cf89bf281483c6706a7a  gcc/testsuite/gcc.target/ia64/pr29682.c
*************** e7cfcf35d3576cc348fad814806318e1  gcc/te
*** 77826,77832 ****
--- 82764,82777 ----
  2191695e83896188ccba1a223f3a204c  gcc/testsuite/gcc.target/ia64/versionid-2.c
  5976d0923571b4543887e7a4b23c0414  gcc/testsuite/gcc.target/ia64/visibility-1.c
  ab4a753420c7cc112326b8711285358c  gcc/testsuite/gcc.target/ia64/visibility-2.c
+ fdc09cb25851254e708f2d7b35b30157  gcc/testsuite/gcc.target/loongarch/abd-lasx.c
+ 9c9daf846165a43b8331181f335522dc  gcc/testsuite/gcc.target/loongarch/abd-lsx.c
  a6d76184ab8ab5eabc181a864d04aac5  gcc/testsuite/gcc.target/loongarch/add-const.c
+ 50a420804148a8a49953e00f95110c7d  gcc/testsuite/gcc.target/loongarch/alsl-cost.c
+ c16fea0d740f8946249d8d3ff6230152  gcc/testsuite/gcc.target/loongarch/alsl_wu.c
+ 78d4e82afd447d6a8daeacd48e58bc86  gcc/testsuite/gcc.target/loongarch/arch-func-attr-1.c
+ 09e65435c71217bb197e267e1389d15f  gcc/testsuite/gcc.target/loongarch/arch-pragma-attr-1.c
+ 39f421554134b131cd8ad8f5f2b6e2a1  gcc/testsuite/gcc.target/loongarch/attr-check-error-message.c
  9f6a0067cf273ede4ba33d3824d023ff  gcc/testsuite/gcc.target/loongarch/attr-model-1.c
  432baf56ded24535d315bd2e867a8be3  gcc/testsuite/gcc.target/loongarch/attr-model-2.c
  a7210513dd89b8e683a00184ee4478a4  gcc/testsuite/gcc.target/loongarch/attr-model-3.c
*************** b0da33fc443024e77c7b605056bff4ae  gcc/te
*** 77838,77849 ****
  e6be30166471664309a52d26e4caaad6  gcc/testsuite/gcc.target/loongarch/avg-ceil-lsx.c
  38e4e62393ad811f1092ea45b0c52b77  gcc/testsuite/gcc.target/loongarch/avg-floor-lasx.c
  a85403ab7a61ba6f56d2c3150b9f8bcb  gcc/testsuite/gcc.target/loongarch/avg-floor-lsx.c
  ca8ab2fdd097231be9dd3f7bfdcebb7b  gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c
  00fd27046cb10694212b8b3aa9811204  gcc/testsuite/gcc.target/loongarch/cas-acquire.c
  07df4f30580de6fbe39974aaae4cfa05  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-1.c
  8b8540247ed71088dc38c31caa401102  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-2.c
  6c4891b18c6bd1154b7ea8237dc05a30  gcc/testsuite/gcc.target/loongarch/cmov_ii.c
! a927df7490b89511c3214d07f4dc7ebe  gcc/testsuite/gcc.target/loongarch/const-double-zero-stx.c
  c794f526430241ad83fd3ca5415524f0  gcc/testsuite/gcc.target/loongarch/crc-sext.c
  2ea39544bfe26567ec668ca7a33a8a5e  gcc/testsuite/gcc.target/loongarch/direct-extern-1.c
  b4c0f3fd4670da4309e2a028316c3c4c  gcc/testsuite/gcc.target/loongarch/direct-extern-2.c
--- 82783,82808 ----
  e6be30166471664309a52d26e4caaad6  gcc/testsuite/gcc.target/loongarch/avg-ceil-lsx.c
  38e4e62393ad811f1092ea45b0c52b77  gcc/testsuite/gcc.target/loongarch/avg-floor-lasx.c
  a85403ab7a61ba6f56d2c3150b9f8bcb  gcc/testsuite/gcc.target/loongarch/avg-floor-lsx.c
+ dd4cbc8672952e717ba1b8b556dd0b49  gcc/testsuite/gcc.target/loongarch/bitwise-shift-reassoc-clobber.c
+ e21ed5cafc7ccdbe2f139e72a1f702e1  gcc/testsuite/gcc.target/loongarch/bitwise-shift-reassoc.c
+ 414d78d00363c1e5dd854d23224b39d7  gcc/testsuite/gcc.target/loongarch/bitwise_extend.c
+ 3c95ec617ab685105bc31c59fb62dd42  gcc/testsuite/gcc.target/loongarch/bstrins-1.c
+ 0ef8c999aed72455a824deb73e462b46  gcc/testsuite/gcc.target/loongarch/bstrins-2.c
+ 5e8c1d5ca86d29f8a0ee54ea74388ce1  gcc/testsuite/gcc.target/loongarch/bstrins-3.c
+ 70325dffd4df0df0528c85bd49dbc2f8  gcc/testsuite/gcc.target/loongarch/bstrins-4.c
+ d6d72f67d9c86c49fe483871b08cc2c0  gcc/testsuite/gcc.target/loongarch/bstrpick_alsl_paired.c
  ca8ab2fdd097231be9dd3f7bfdcebb7b  gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c
+ 9c31e2b0b719536d37a3b720ea2be5ad  gcc/testsuite/gcc.target/loongarch/bytepick_combine.c
+ 828a53a834899f6cac56d99b1ec04d3b  gcc/testsuite/gcc.target/loongarch/bytepick_shift_128.c
  00fd27046cb10694212b8b3aa9811204  gcc/testsuite/gcc.target/loongarch/cas-acquire.c
  07df4f30580de6fbe39974aaae4cfa05  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-1.c
  8b8540247ed71088dc38c31caa401102  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-2.c
+ d984aef61afc8f09af4c880507f6c6e6  gcc/testsuite/gcc.target/loongarch/cmodel-func-attr-1.c
+ 50ab91c6f8ea866c2cdb3d64e26052d2  gcc/testsuite/gcc.target/loongarch/cmodel-pragma-attr-1.c
  6c4891b18c6bd1154b7ea8237dc05a30  gcc/testsuite/gcc.target/loongarch/cmov_ii.c
! 8372ae2166ed011a23a10b6a6415bc98  gcc/testsuite/gcc.target/loongarch/conditional-move-opt-1.c
! e47b1f0d85db9f65f76cc6e828f1d7a3  gcc/testsuite/gcc.target/loongarch/conditional-move-opt-2.c
! d714312bcf2901d8e4e91206a319c6bb  gcc/testsuite/gcc.target/loongarch/const-double-zero-stx.c
  c794f526430241ad83fd3ca5415524f0  gcc/testsuite/gcc.target/loongarch/crc-sext.c
  2ea39544bfe26567ec668ca7a33a8a5e  gcc/testsuite/gcc.target/loongarch/direct-extern-1.c
  b4c0f3fd4670da4309e2a028316c3c4c  gcc/testsuite/gcc.target/loongarch/direct-extern-2.c
*************** bb6ab9b0cdb20096c989643240d23a65  gcc/te
*** 77865,77874 ****
  a0974c41c2d76b1294fb1d2efc48bd2f  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-ld-gd.c
  45ece568055adcf16495ad5a85ce6044  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-le-ie.c
  692c2e25f06c20d20bed12d9a727afdf  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-auto-tls-ld-gd.c
! 6b912173420cd9c9f4e13ae0fd38c58a  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-tls-desc.c
  b90d585b99c59a2e3f6f7cce1bac5d6a  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-auto-tls-ld-gd.c
  aaabc24a35d397c6567d048e65a87c90  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-call36-auto-tls-ld-gd.c
! e68925dfe7ee95de42d72028c06903e1  gcc/testsuite/gcc.target/loongarch/explicit-relocs-tls-desc.c
  ddf9ecd0daf6d14ef98de40e7fd68f34  gcc/testsuite/gcc.target/loongarch/fcopysign.c
  e37813bf5456a9a963e9baeb8753628b  gcc/testsuite/gcc.target/loongarch/float-load.c
  256bb0a8b0fff1f225a70fa39849ccd6  gcc/testsuite/gcc.target/loongarch/flogb.c
--- 82824,82835 ----
  a0974c41c2d76b1294fb1d2efc48bd2f  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-ld-gd.c
  45ece568055adcf16495ad5a85ce6044  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-le-ie.c
  692c2e25f06c20d20bed12d9a727afdf  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-auto-tls-ld-gd.c
! 4ff34634e3c8d0e461fe9d3c5047e953  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-tls-desc.c
  b90d585b99c59a2e3f6f7cce1bac5d6a  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-auto-tls-ld-gd.c
  aaabc24a35d397c6567d048e65a87c90  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-call36-auto-tls-ld-gd.c
! ad5117326114603de5f0e93ecd058244  gcc/testsuite/gcc.target/loongarch/explicit-relocs-tls-desc.c
! bf8c814161752dc53f3ddcbd91714a2f  gcc/testsuite/gcc.target/loongarch/fclass-compile.c
! fb204039d7653b103ceffb23101d6d7e  gcc/testsuite/gcc.target/loongarch/fclass-run.c
  ddf9ecd0daf6d14ef98de40e7fd68f34  gcc/testsuite/gcc.target/loongarch/fcopysign.c
  e37813bf5456a9a963e9baeb8753628b  gcc/testsuite/gcc.target/loongarch/float-load.c
  256bb0a8b0fff1f225a70fa39849ccd6  gcc/testsuite/gcc.target/loongarch/flogb.c
*************** eb1c2859a54e94bb4ffc91ace282a688  gcc/te
*** 77905,77922 ****
  6649897103ef58074cf4038c9f752b73  gcc/testsuite/gcc.target/loongarch/func-call-medium-8.c
  6ab9f24cca6a9ec8103e6ba80f494143  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36-1.c
  b9e59385233aedda5e9e3d95bfa2f29c  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36.c
! fa9b5bf25d00779ab5d75b5c231c2558  gcc/testsuite/gcc.target/loongarch/imm-load.c
  d7a3a4b5e884b4ba96b4ba493eb19316  gcc/testsuite/gcc.target/loongarch/imm-load1.c
  c74ac6255a37860200cb087c773ff537  gcc/testsuite/gcc.target/loongarch/invariant-recip.c
  6a73e078ae4dd205f6bf24d6d465a6ae  gcc/testsuite/gcc.target/loongarch/larch-builtin.c
  98ef5580c4aefc9fc806240653123084  gcc/testsuite/gcc.target/loongarch/larch-frecipe-builtin.c
  707da34d54e7998fc65722528a071870  gcc/testsuite/gcc.target/loongarch/larch-frecipe-intrinsic.c
  422b961441dba2c6db58a57ace03db0d  gcc/testsuite/gcc.target/loongarch/lasx-extract-even_odd-opt.c
! 206e23634e4888b9b8f6b20aa1e58b08  gcc/testsuite/gcc.target/loongarch/loongarch.exp
  6fd3a91ad4fcbff919f3f7121bd94819  gcc/testsuite/gcc.target/loongarch/math-float-128.c
  9fb3b8610b37b8332c61ea243a7f7eef  gcc/testsuite/gcc.target/loongarch/memcpy-vec-1.c
  f8e85c0fabedb15da4e203ea4c1d6792  gcc/testsuite/gcc.target/loongarch/memcpy-vec-2.c
  9bdb8bae55f19f1a7d359c4bf87a4ba8  gcc/testsuite/gcc.target/loongarch/memcpy-vec-3.c
  4931eef8fe508d14b75d3631fe8bbafc  gcc/testsuite/gcc.target/loongarch/movcf2gr-via-fr.c
  bb6ea01b244f2c3e617730a44580a7bc  gcc/testsuite/gcc.target/loongarch/movcf2gr.c
  d23b33973d13d263ab78b5b4e0b94ef3  gcc/testsuite/gcc.target/loongarch/mul-const-reduction.c
--- 82866,82896 ----
  6649897103ef58074cf4038c9f752b73  gcc/testsuite/gcc.target/loongarch/func-call-medium-8.c
  6ab9f24cca6a9ec8103e6ba80f494143  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36-1.c
  b9e59385233aedda5e9e3d95bfa2f29c  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36.c
! 20eb2c7e6db324194da4ebec3b44baf8  gcc/testsuite/gcc.target/loongarch/imm-load.c
  d7a3a4b5e884b4ba96b4ba493eb19316  gcc/testsuite/gcc.target/loongarch/imm-load1.c
  c74ac6255a37860200cb087c773ff537  gcc/testsuite/gcc.target/loongarch/invariant-recip.c
+ 5ba70284a6a6ec5af264e116cc217292  gcc/testsuite/gcc.target/loongarch/jump-table-annotate.c
  6a73e078ae4dd205f6bf24d6d465a6ae  gcc/testsuite/gcc.target/loongarch/larch-builtin.c
  98ef5580c4aefc9fc806240653123084  gcc/testsuite/gcc.target/loongarch/larch-frecipe-builtin.c
  707da34d54e7998fc65722528a071870  gcc/testsuite/gcc.target/loongarch/larch-frecipe-intrinsic.c
+ bf8d7c32de15ac1b6b15d33f4c0730e8  gcc/testsuite/gcc.target/loongarch/lasx-andn-iorn.c
  422b961441dba2c6db58a57ace03db0d  gcc/testsuite/gcc.target/loongarch/lasx-extract-even_odd-opt.c
! 580cbd76e6364fdb160e63e4aace9a97  gcc/testsuite/gcc.target/loongarch/lasx-func-attr-1.c
! dd89cf931606852d264a068d0da89f48  gcc/testsuite/gcc.target/loongarch/lasx-func-attr-2.c
! 50e5afd436ad3b4f977fbbe4b5538229  gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-1.c
! 906d80bea4f1077ff428fa3626503bcb  gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-2.c
! dc97748644c9f046ca9df34db59dd8fc  gcc/testsuite/gcc.target/loongarch/loongarch.exp
! d4c4c9d0b9ae0369cd930c837d2425b7  gcc/testsuite/gcc.target/loongarch/lsx-andn-iorn.c
! 4000dc14b31fce222ef708b8954c6b31  gcc/testsuite/gcc.target/loongarch/lsx-func-attr-1.c
! 08ecc6d7a6749ae690a432b527687be9  gcc/testsuite/gcc.target/loongarch/lsx-func-attr-2.c
! 7fcb4a95a2d9dce2bbad3443335383e2  gcc/testsuite/gcc.target/loongarch/lsx-pragma-attr-1.c
! 2ff50940f45f70c1c0e511eeb9f27d97  gcc/testsuite/gcc.target/loongarch/lsx-pragma-attr-2.c
  6fd3a91ad4fcbff919f3f7121bd94819  gcc/testsuite/gcc.target/loongarch/math-float-128.c
  9fb3b8610b37b8332c61ea243a7f7eef  gcc/testsuite/gcc.target/loongarch/memcpy-vec-1.c
  f8e85c0fabedb15da4e203ea4c1d6792  gcc/testsuite/gcc.target/loongarch/memcpy-vec-2.c
  9bdb8bae55f19f1a7d359c4bf87a4ba8  gcc/testsuite/gcc.target/loongarch/memcpy-vec-3.c
+ 99145c3f37b9ab131e0ed0ffe3cb707d  gcc/testsuite/gcc.target/loongarch/mov-zero-1.c
+ e26420568eb59260ac109ca747ecbf46  gcc/testsuite/gcc.target/loongarch/mov-zero-2.c
  4931eef8fe508d14b75d3631fe8bbafc  gcc/testsuite/gcc.target/loongarch/movcf2gr-via-fr.c
  bb6ea01b244f2c3e617730a44580a7bc  gcc/testsuite/gcc.target/loongarch/movcf2gr.c
  d23b33973d13d263ab78b5b4e0b94ef3  gcc/testsuite/gcc.target/loongarch/mul-const-reduction.c
*************** a9d4722a275cd3486436322291f39c73  gcc/te
*** 77940,77950 ****
--- 82914,82936 ----
  b4671c279162dd2c1fd844929bdbbc6b  gcc/testsuite/gcc.target/loongarch/pr113148.c
  25f1f19f59d10bccef4e82021564ba66  gcc/testsuite/gcc.target/loongarch/pr114861.c
  9ad6397c4344b9805128cce24404b86a  gcc/testsuite/gcc.target/loongarch/pr115752.c
+ 1709ea55f48beb189a29c30f090ace12  gcc/testsuite/gcc.target/loongarch/pr118561.c
+ c6044525076dd7327380db8ab6c79150  gcc/testsuite/gcc.target/loongarch/pr118828-2.c
+ d9d14da72bb9c30da6076a724cdf6fa0  gcc/testsuite/gcc.target/loongarch/pr118828-3.c
+ b651e2531d68e2147b152deacbe8ad11  gcc/testsuite/gcc.target/loongarch/pr118828-4.c
+ a7ba2e5c68834495ccecdd75f123f220  gcc/testsuite/gcc.target/loongarch/pr118828.c
+ 31e639d66ad61d9aa6ddaa05d8baeb5d  gcc/testsuite/gcc.target/loongarch/pr118843.c
+ dbfbd76701c5c3e6c8ed37ced1ba9cc7  gcc/testsuite/gcc.target/loongarch/pr119084.c
+ bfebec3a4dbfa9680a4285589498905c  gcc/testsuite/gcc.target/loongarch/pr119127.c
+ dde2cba27bc4292492e4c0dd492a70e0  gcc/testsuite/gcc.target/loongarch/pr119408.c
+ 1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/pragma-push-pop.c
  3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/prolog-opt.c
  1bfa30f99dc5f04f569fbff68640ab19  gcc/testsuite/gcc.target/loongarch/recip-divf.c
  dfa82d46bae04856dd91309f03684574  gcc/testsuite/gcc.target/loongarch/recip-sqrtf.c
+ 596c5238ab0cc321a3b51db7071941d8  gcc/testsuite/gcc.target/loongarch/regname-float-abi.c
  1eb5918b9e848616f17c8675b198b827  gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c
  1075563283e6d2ab3492f10a46a844ad  gcc/testsuite/gcc.target/loongarch/relocs-symbol-noaddend.c
+ b25665b969e5ff79a774f344cd8f02c0  gcc/testsuite/gcc.target/loongarch/revb.c
  b6b376728d20351c33b093f21d54677e  gcc/testsuite/gcc.target/loongarch/rotl-with-rotr.c
  2ddebd413eaa67833fbe9045727d296a  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-b.c
  b4792704ae2560835ce2844ab052bd96  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-d.c
*************** ff53d68fc0f97e1b389fbdfc6b733d9e  gcc/te
*** 77966,77977 ****
  bf64f97d74ef11f20bfde63932d56667  gcc/testsuite/gcc.target/loongarch/smuldi3_highpart.c
  e1615ec0889043a33798fc33df9c0c5e  gcc/testsuite/gcc.target/loongarch/smulsi3_highpart.c
  803ffb89ba4bbdbdb90c999bf781d4cc  gcc/testsuite/gcc.target/loongarch/sqrtf.c
! 1794666eb38b2c760f7e0797a8843251  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-1.c
! bada1783d3726bb8da71dcc10c61bb4e  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-2.c
! acdab92956a33fb473e28883d3784f6b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-3.c
! 37026db76f9c2578badf56d2fb7dddf2  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-4.c
! 8c3d80861a826008564aca9af2f9443a  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-5.c
! 9360480ea47fd9090e9779b774260f1b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-6.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/loongarch/stack-check-alloca.h
  d35a2a70824e3df7a2e90beabe7e3ee6  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-1.c
  8f29fa8bfe4970bbdb969483bbce91bb  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-2.c
--- 82952,82963 ----
  bf64f97d74ef11f20bfde63932d56667  gcc/testsuite/gcc.target/loongarch/smuldi3_highpart.c
  e1615ec0889043a33798fc33df9c0c5e  gcc/testsuite/gcc.target/loongarch/smulsi3_highpart.c
  803ffb89ba4bbdbdb90c999bf781d4cc  gcc/testsuite/gcc.target/loongarch/sqrtf.c
! 3df56316dc4cc5cf945f0b9f6e4238db  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-1.c
! 7b5305d29424075188fad0ef59ab43f4  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-2.c
! 53085da424a3a210284c337760b5fe5d  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-3.c
! dd78481e1f7bf5500fb77e7d79fb23de  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-4.c
! 0e1945b063adc6ca50aefbdcce6b9692  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-5.c
! 5c1279e1b4b2edc549340e280f4c91f1  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-6.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/loongarch/stack-check-alloca.h
  d35a2a70824e3df7a2e90beabe7e3ee6  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-1.c
  8f29fa8bfe4970bbdb969483bbce91bb  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-2.c
*************** b0d8451f1600fb7ed044bb4afac6c54e  gcc/te
*** 77984,77989 ****
--- 82970,82979 ----
  835c129cffc725b50f77270d00d701aa  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-7.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/loongarch/stack-check-prologue.h
  18e238abfacb1352fe7e95b0b7b889f2  gcc/testsuite/gcc.target/loongarch/strict-align.c
+ 30535602e187c3ae98d047f10b9f0250  gcc/testsuite/gcc.target/loongarch/strict_align-func-attr-1.c
+ 76a7944d46976eb4dd703365ee671143  gcc/testsuite/gcc.target/loongarch/strict_align-func-attr-2.c
+ 1108f8672f288039b76dd7b0b71e7261  gcc/testsuite/gcc.target/loongarch/strict_align-pragma-attr-1.c
+ c3b9c79f87c4206d38cd6acc05f5be9f  gcc/testsuite/gcc.target/loongarch/strict_align-pragma-attr-2.c
  5c59a0f71afe5e1247603961548ac0fc  gcc/testsuite/gcc.target/loongarch/switch-qi.c
  7832a3e8dee4406e9a90696a4939bef8  gcc/testsuite/gcc.target/loongarch/tls-extreme-macro.c
  befd90e214441fef72ffe1fb266888d6  gcc/testsuite/gcc.target/loongarch/tls-gd-noplt.c
*************** d3511a1f030e8253dbf6b20c73d33105  gcc/te
*** 77993,78025 ****
  273aefb7dcb812b056ec4f65efdd49ff  gcc/testsuite/gcc.target/loongarch/tls-le-relax.c
  bb57d24452eb2fea309f990edfa5de1c  gcc/testsuite/gcc.target/loongarch/umulsi3_highpart.c
  20592e6b1e8a0f3b8742b7beb0f51ae2  gcc/testsuite/gcc.target/loongarch/va_arg.c
  13cec58c7391a5cef41368197f850947  gcc/testsuite/gcc.target/loongarch/vect-extract.c
  b6bfa37f9af27452a2a4b02fe436d406  gcc/testsuite/gcc.target/loongarch/vect-frint-no-inexact.c
  da64d29140771aaa088d1e71efc3c471  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar-no-inexact.c
! 88ac77c28c16cf30dbe5e3be50a1691a  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar.c
  5b7d4139ebfdb98e583f6b953ed4a02c  gcc/testsuite/gcc.target/loongarch/vect-frint.c
  27009f16c075543914978dfab3406875  gcc/testsuite/gcc.target/loongarch/vect-ftint-no-inexact.c
  e54bae204bdb1c4dc0d6593893901a8f  gcc/testsuite/gcc.target/loongarch/vect-ftint.c
  e174ae75eabb1baa10e7ef9e75e93275  gcc/testsuite/gcc.target/loongarch/vect-ld-st-imm12.c
  537c2448576790bc3b9448c2a930f5f0  gcc/testsuite/gcc.target/loongarch/vect-muh.c
  1f7b7228148fe23bb98c9ae0d151646c  gcc/testsuite/gcc.target/loongarch/vect-rotr.c
  0a2e2eac72cfcca97984627c1e764927  gcc/testsuite/gcc.target/loongarch/vect-shuf-fp.c
  453da6047ce09c69691270feaa485c69  gcc/testsuite/gcc.target/loongarch/vect-widen-add.c
  c4a5bf3904159f6c4f6e17ee0da90889  gcc/testsuite/gcc.target/loongarch/vect-widen-mul.c
  3ed720b4bc387e4269bf3226dd3fdfe5  gcc/testsuite/gcc.target/loongarch/vect-widen-sub.c
! bd4661a3c6101adef1a721b574d41199  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
  fe6faa6ba0306efed8c468b31f250333  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-divf.c
  63c0a41070b08339598b12401f6f0275  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-frecipe-builtin.c
  269e58b3141de7803fd2da2ee4583a7c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-divf.c
  26416d3a1315b205e74061b5b07e84ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-sqrtf.c
  ec4196a5693a2d78e09e090c4cfa571d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip.c
  a063d665153ff8caea1f55d2d763456e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-rsqrt.c
  775b8d8b29c403d9447185837f4a85a9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-sqrtf.c
  fc2eff72ff94e1f24b1ded5d567647ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-1.c
  c34cbb6754e054b443b5e2e9d65d81ac  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-2.c
  46115a5ef060ecd6c057d311e492cbba  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-construct-opt.c
  3c28a8c37a3b35a9bd2a46f1805cd159  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-1.c
  e74ff91fd52e580524be0561ebb0a0cf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-2.c
  f5d040911d7e323a3e9559cb230d0813  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign-run.c
  ed617e6c7440142c020620f5bab5b207  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign.c
  67e2a67f43111af6bb79660616ac6840  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c
--- 82983,83024 ----
  273aefb7dcb812b056ec4f65efdd49ff  gcc/testsuite/gcc.target/loongarch/tls-le-relax.c
  bb57d24452eb2fea309f990edfa5de1c  gcc/testsuite/gcc.target/loongarch/umulsi3_highpart.c
  20592e6b1e8a0f3b8742b7beb0f51ae2  gcc/testsuite/gcc.target/loongarch/va_arg.c
+ bbbc51cc2b6669a160c181fc1ab12412  gcc/testsuite/gcc.target/loongarch/vec_pack_unpack_128.c
+ fe27736a5c22d2b3c8ae857ee379248b  gcc/testsuite/gcc.target/loongarch/vec_pack_unpack_256.c
  13cec58c7391a5cef41368197f850947  gcc/testsuite/gcc.target/loongarch/vect-extract.c
  b6bfa37f9af27452a2a4b02fe436d406  gcc/testsuite/gcc.target/loongarch/vect-frint-no-inexact.c
  da64d29140771aaa088d1e71efc3c471  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar-no-inexact.c
! 8fed305a623c3d8aa8671e2f1ca58806  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar.c
  5b7d4139ebfdb98e583f6b953ed4a02c  gcc/testsuite/gcc.target/loongarch/vect-frint.c
  27009f16c075543914978dfab3406875  gcc/testsuite/gcc.target/loongarch/vect-ftint-no-inexact.c
  e54bae204bdb1c4dc0d6593893901a8f  gcc/testsuite/gcc.target/loongarch/vect-ftint.c
  e174ae75eabb1baa10e7ef9e75e93275  gcc/testsuite/gcc.target/loongarch/vect-ld-st-imm12.c
  537c2448576790bc3b9448c2a930f5f0  gcc/testsuite/gcc.target/loongarch/vect-muh.c
  1f7b7228148fe23bb98c9ae0d151646c  gcc/testsuite/gcc.target/loongarch/vect-rotr.c
+ c73656f986e7e0217bc13b99a227b4b3  gcc/testsuite/gcc.target/loongarch/vect-shift-imm-round.c
  0a2e2eac72cfcca97984627c1e764927  gcc/testsuite/gcc.target/loongarch/vect-shuf-fp.c
+ 42bb88d1ea7d5aa2572afc7cb9d13bff  gcc/testsuite/gcc.target/loongarch/vect-slp-two-operator.c
  453da6047ce09c69691270feaa485c69  gcc/testsuite/gcc.target/loongarch/vect-widen-add.c
  c4a5bf3904159f6c4f6e17ee0da90889  gcc/testsuite/gcc.target/loongarch/vect-widen-mul.c
  3ed720b4bc387e4269bf3226dd3fdfe5  gcc/testsuite/gcc.target/loongarch/vect-widen-sub.c
! a78d6c1fd79f5c1d8a67aa38a8dc8943  gcc/testsuite/gcc.target/loongarch/vector-func-attr-1.c
! 58826efcc90333c707edc8514608dfc0  gcc/testsuite/gcc.target/loongarch/vector-pragma-attr-1.c
! 82d89dd9b72fa18cc532f758e7a3de51  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
  fe6faa6ba0306efed8c468b31f250333  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-divf.c
  63c0a41070b08339598b12401f6f0275  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-frecipe-builtin.c
  269e58b3141de7803fd2da2ee4583a7c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-divf.c
  26416d3a1315b205e74061b5b07e84ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-sqrtf.c
  ec4196a5693a2d78e09e090c4cfa571d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip.c
  a063d665153ff8caea1f55d2d763456e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-rsqrt.c
+ 3f0598d49446f929c98c1ebc8637dad6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-shift-sameimm-vec.c
  775b8d8b29c403d9447185837f4a85a9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-sqrtf.c
  fc2eff72ff94e1f24b1ded5d567647ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-1.c
  c34cbb6754e054b443b5e2e9d65d81ac  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-2.c
+ 99315ec4e2497c897d8c2f3d9d97cc3c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-3.c
  46115a5ef060ecd6c057d311e492cbba  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-construct-opt.c
  3c28a8c37a3b35a9bd2a46f1805cd159  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-1.c
  e74ff91fd52e580524be0561ebb0a0cf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-2.c
+ d845651e74eb8d513a9364ca9fc69afa  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vseteqz.c
  f5d040911d7e323a3e9559cb230d0813  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign-run.c
  ed617e6c7440142c020620f5bab5b207  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign.c
  67e2a67f43111af6bb79660616ac6840  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c
*************** eb7720d1ee0f7dde86471e1b8ad3b82f  gcc/te
*** 78223,78231 ****
  41959494be952fe2706930c383d4bb72  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c
  601d1dad0996e42f64abfcea74b57e97  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c
  2b866f80af5cafa566ed2bbd75936c79  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c
! 05195bf7810e2bd4fbb645f0dd4ea154  gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
  5d55305c4d66b32dd004f424d4a0a0fb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-abs.c
! eb01d16b6ef25f57c504c9436202f387  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
  a8ab1fe3de13920929161ff744d0be79  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-divf.c
  3ca33073dc5707d30e1c86e7cff80a83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-frecipe-builtin.c
  7fd4b4d80ef3b95b73b71b66d9e6cd92  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-1.c
--- 83222,83230 ----
  41959494be952fe2706930c383d4bb72  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c
  601d1dad0996e42f64abfcea74b57e97  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c
  2b866f80af5cafa566ed2bbd75936c79  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c
! d26741a5156634ff29c61fea114bc141  gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
  5d55305c4d66b32dd004f424d4a0a0fb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-abs.c
! e9f9a02f0c23d753d9f3a17d45f85db1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
  a8ab1fe3de13920929161ff744d0be79  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-divf.c
  3ca33073dc5707d30e1c86e7cff80a83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-frecipe-builtin.c
  7fd4b4d80ef3b95b73b71b66d9e6cd92  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-1.c
*************** a8ab1fe3de13920929161ff744d0be79  gcc/te
*** 78233,78238 ****
--- 83232,83238 ----
  2549c56a693f1d0960c7cc8ba86e0067  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-sqrtf.c
  fb3c160369677c07483fb4dc63539faa  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip.c
  63ac14d5cd13627869c47454ff7f8a8c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-rsqrt.c
+ c670e4b758c93293d892e6b5c26d3206  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-shift-sameimm-vec.c
  9e6e3680aef327f22953b39967f23a23  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-sqrtf.c
  097a3137904b0f0fd945d3ed8a6ac1c9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c
  06d50f2ade72fa0a119d695fb1ca30cb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c
*************** b42cd827d7028b2d017143467f55412a  gcc/te
*** 78380,78385 ****
--- 83380,83386 ----
  a31e1d876cadb33274b1f3232dad1f32  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c
  168405f195dbe677fe599e40661e8a77  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c
  7d21030084013597a2bd4360ecdaa115  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c
+ 43e1c5258637f39b753062ee840c1352  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseteqz.c
  82a250604b506b4f70bc49383af1c9e1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
  a5c6162b62e0a6e9c077832a71dc29e2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c
  c46c28ad017dc305a22764d1c0dc9d0f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c
*************** ee9aafb340a5c2597a6f656ccbd8a374  gcc/te
*** 78436,78441 ****
--- 83437,83445 ----
  32fede0d9373ef10c92cbfd15cda3c85  gcc/testsuite/gcc.target/loongarch/vfcmp-d.c
  c08e307370de6dd5122f517ca9b88bd3  gcc/testsuite/gcc.target/loongarch/vfcmp-f.c
  10ddd292b7613ff19e60e7031e01d5b7  gcc/testsuite/gcc.target/loongarch/vfmax-vfmin.c
+ 6ec0b39b5b4b1a97f39db6ffa8466e62  gcc/testsuite/gcc.target/loongarch/vrepli.c
+ a005b26aa548eee07a39a18e458d0abc  gcc/testsuite/gcc.target/loongarch/wide-mul-reduc-1.c
+ c1d9bd83ec7fb2ffe482949572f2b0d3  gcc/testsuite/gcc.target/loongarch/wide-mul-reduc-2.c
  10ce9c8f9619651c9d46b51e45ae26da  gcc/testsuite/gcc.target/loongarch/xorsign-run.c
  9b099d473b8bfb835da7cb656ac3e3f3  gcc/testsuite/gcc.target/loongarch/xorsign.c
  390ebfd9588a71fef795823e622f6c10  gcc/testsuite/gcc.target/loongarch/xvfcmp-d.c
*************** c08e307370de6dd5122f517ca9b88bd3  gcc/te
*** 78443,78460 ****
  daa985dfac90c17791ed0549fd2b0181  gcc/testsuite/gcc.target/loongarch/zero-size-field-pass.c
  c5a3a773bb277e1c1071f9d892d1ed48  gcc/testsuite/gcc.target/loongarch/zero-size-field-ret.c
  ce7c3a66fa22a36825ef82d61a779479  gcc/testsuite/gcc.target/m68k/20090709-1.c
! 0118c41214ee57c9ebce401655922219  gcc/testsuite/gcc.target/m68k/20100512-1.c
! 4c8b67e3a760343416cf4ec37519ff93  gcc/testsuite/gcc.target/m68k/crash1.c
  17d62ffa4b2f365161f87faa613ab7e3  gcc/testsuite/gcc.target/m68k/interrupt-1.c
  aa59fb938dc80d0bfebfc946cdbfbabf  gcc/testsuite/gcc.target/m68k/interrupt-2.c
  363ff108550fa02c923cccb0da681ab5  gcc/testsuite/gcc.target/m68k/interrupt_thread-1.c
  3c540acf2434a3c410d35013267ca79a  gcc/testsuite/gcc.target/m68k/interrupt_thread-2.c
  4183579970ae4f3d5815533efb1b3269  gcc/testsuite/gcc.target/m68k/interrupt_thread-3.c
! e3241e168be38d5bb1bcda6512960883  gcc/testsuite/gcc.target/m68k/m68k.exp
  22fc64de9c71e0dd6fc2ede8b6a4b336  gcc/testsuite/gcc.target/m68k/mulsi_highpart.c
  024e8f5fdf9b8d6bb2395e4e383e4712  gcc/testsuite/gcc.target/m68k/pic-1.c
! e8fdda859a75e1eaaafc6ed9f59009ae  gcc/testsuite/gcc.target/m68k/pr108640.c
! ad023317ae9d16e580c3536142da2ff6  gcc/testsuite/gcc.target/m68k/pr110934.c
  16f39f8e31f0f10521879907e696470d  gcc/testsuite/gcc.target/m68k/pr19201.c
  6aabbfd07af3135327aa4db3b6e25a2f  gcc/testsuite/gcc.target/m68k/pr25111.c
  04e7dcba5ba58f7947c879c2dc007500  gcc/testsuite/gcc.target/m68k/pr25112.c
--- 83447,83464 ----
  daa985dfac90c17791ed0549fd2b0181  gcc/testsuite/gcc.target/loongarch/zero-size-field-pass.c
  c5a3a773bb277e1c1071f9d892d1ed48  gcc/testsuite/gcc.target/loongarch/zero-size-field-ret.c
  ce7c3a66fa22a36825ef82d61a779479  gcc/testsuite/gcc.target/m68k/20090709-1.c
! 366076939f40b4ef2fa5cb784e47bf39  gcc/testsuite/gcc.target/m68k/20100512-1.c
! a1f87586261b97dd617335d52e79f0e1  gcc/testsuite/gcc.target/m68k/crash1.c
  17d62ffa4b2f365161f87faa613ab7e3  gcc/testsuite/gcc.target/m68k/interrupt-1.c
  aa59fb938dc80d0bfebfc946cdbfbabf  gcc/testsuite/gcc.target/m68k/interrupt-2.c
  363ff108550fa02c923cccb0da681ab5  gcc/testsuite/gcc.target/m68k/interrupt_thread-1.c
  3c540acf2434a3c410d35013267ca79a  gcc/testsuite/gcc.target/m68k/interrupt_thread-2.c
  4183579970ae4f3d5815533efb1b3269  gcc/testsuite/gcc.target/m68k/interrupt_thread-3.c
! d1948b09507d2de5eafe7cfb8b3d4952  gcc/testsuite/gcc.target/m68k/m68k.exp
  22fc64de9c71e0dd6fc2ede8b6a4b336  gcc/testsuite/gcc.target/m68k/mulsi_highpart.c
  024e8f5fdf9b8d6bb2395e4e383e4712  gcc/testsuite/gcc.target/m68k/pic-1.c
! d83d129c097b8a098848060a9f10bc5d  gcc/testsuite/gcc.target/m68k/pr108640.c
! bc77ffbe1e11cadeb1195042f1cc8fc1  gcc/testsuite/gcc.target/m68k/pr110934.c
  16f39f8e31f0f10521879907e696470d  gcc/testsuite/gcc.target/m68k/pr19201.c
  6aabbfd07af3135327aa4db3b6e25a2f  gcc/testsuite/gcc.target/m68k/pr25111.c
  04e7dcba5ba58f7947c879c2dc007500  gcc/testsuite/gcc.target/m68k/pr25112.c
*************** ad023317ae9d16e580c3536142da2ff6  gcc/te
*** 78463,78483 ****
  44c8a9386bf58ba1dd01ec5bb6a25e6d  gcc/testsuite/gcc.target/m68k/pr35018.c
  2b828cee1edefa9ab212dc51867db7f5  gcc/testsuite/gcc.target/m68k/pr36133.c
  e8b089b1462bd9f7a6742f1f384b1713  gcc/testsuite/gcc.target/m68k/pr36134.c
! c39bfa10d384c32bcc566623feb04b8d  gcc/testsuite/gcc.target/m68k/pr39726.c
  46bbc1bc354603f851644d8a5c386146  gcc/testsuite/gcc.target/m68k/pr41302.c
  7c2655a34442f77810f161d4e55f0641  gcc/testsuite/gcc.target/m68k/pr45015.c
  3c27e52be18130f8fc67f9e688e710cb  gcc/testsuite/gcc.target/m68k/pr47192.c
  3bf112c79bf8e29eef82f0bb17379be1  gcc/testsuite/gcc.target/m68k/pr48551.c
! 748f0b418da37a8f91b6ce62a5ba532a  gcc/testsuite/gcc.target/m68k/pr52076-1.c
! 9d7e42fdfdbd75983f1861dd24e2e2c9  gcc/testsuite/gcc.target/m68k/pr52076-2.c
  2099d89c9104cf925cb489fa772a1d0a  gcc/testsuite/gcc.target/m68k/pr52573.c
  3331a1af9ccd5eeff4808f6872ae3150  gcc/testsuite/gcc.target/m68k/pr52714.c
  bff7eeb417a8650a559d52c58568d83f  gcc/testsuite/gcc.target/m68k/pr54041.c
  4af5487bc8d0ccfe479387f097ce107e  gcc/testsuite/gcc.target/m68k/pr54555.c
  e695224d5b317835a290893c94d4209e  gcc/testsuite/gcc.target/m68k/pr59946.c
! b1a1c268f5286d61258af150b181ad66  gcc/testsuite/gcc.target/m68k/pr63347.c
  0d7fa736ace82879979668cb692d9f87  gcc/testsuite/gcc.target/m68k/pr64461.c
! 60f7ed33bc6999b562cbece16ce2938b  gcc/testsuite/gcc.target/m68k/pr82420.c
  64801a5d12a7d876eb9fc0407fd9af8f  gcc/testsuite/gcc.target/m68k/slp-ice.c
  0849c1bed0b42b3d010dd80dc8d7c444  gcc/testsuite/gcc.target/m68k/stack-limit-1.c
  8cd9d92a4559564d1109079326d62868  gcc/testsuite/gcc.target/m68k/tls-dimode.c
--- 83467,83487 ----
  44c8a9386bf58ba1dd01ec5bb6a25e6d  gcc/testsuite/gcc.target/m68k/pr35018.c
  2b828cee1edefa9ab212dc51867db7f5  gcc/testsuite/gcc.target/m68k/pr36133.c
  e8b089b1462bd9f7a6742f1f384b1713  gcc/testsuite/gcc.target/m68k/pr36134.c
! 1132f73edf2c2680d66bb9fc7f4b880f  gcc/testsuite/gcc.target/m68k/pr39726.c
  46bbc1bc354603f851644d8a5c386146  gcc/testsuite/gcc.target/m68k/pr41302.c
  7c2655a34442f77810f161d4e55f0641  gcc/testsuite/gcc.target/m68k/pr45015.c
  3c27e52be18130f8fc67f9e688e710cb  gcc/testsuite/gcc.target/m68k/pr47192.c
  3bf112c79bf8e29eef82f0bb17379be1  gcc/testsuite/gcc.target/m68k/pr48551.c
! 8653de89b7ba83e857063518c8a088a4  gcc/testsuite/gcc.target/m68k/pr52076-1.c
! e0205f7d69af513f9dcbe7d7af0151b8  gcc/testsuite/gcc.target/m68k/pr52076-2.c
  2099d89c9104cf925cb489fa772a1d0a  gcc/testsuite/gcc.target/m68k/pr52573.c
  3331a1af9ccd5eeff4808f6872ae3150  gcc/testsuite/gcc.target/m68k/pr52714.c
  bff7eeb417a8650a559d52c58568d83f  gcc/testsuite/gcc.target/m68k/pr54041.c
  4af5487bc8d0ccfe479387f097ce107e  gcc/testsuite/gcc.target/m68k/pr54555.c
  e695224d5b317835a290893c94d4209e  gcc/testsuite/gcc.target/m68k/pr59946.c
! bd3b0707f8ef49ec0b4e84ca8cead890  gcc/testsuite/gcc.target/m68k/pr63347.c
  0d7fa736ace82879979668cb692d9f87  gcc/testsuite/gcc.target/m68k/pr64461.c
! ad5f7738c04d63d5144761b94918346b  gcc/testsuite/gcc.target/m68k/pr82420.c
  64801a5d12a7d876eb9fc0407fd9af8f  gcc/testsuite/gcc.target/m68k/slp-ice.c
  0849c1bed0b42b3d010dd80dc8d7c444  gcc/testsuite/gcc.target/m68k/stack-limit-1.c
  8cd9d92a4559564d1109079326d62868  gcc/testsuite/gcc.target/m68k/tls-dimode.c
*************** bce9fa2c6f1e56b2fc1016479a2343a7  gcc/te
*** 78516,78522 ****
  a816dff6f0a70651b4a2baba36df01bf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
  7bd8c4012b4e818f846d60047de3d957  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
  215c22e1a44b562b1792467518f5da2c  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
! cb9a9e22766eb1fff51ce75d99cd1648  gcc/testsuite/gcc.target/microblaze/microblaze.exp
  9a329728496d062effbbdf4b7bde3f00  gcc/testsuite/gcc.target/microblaze/others/break_handler.c
  a498a396b1e4969560394c7d56f05fa5  gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c
  821cbcd6a2563ff2997adb005fdd91af  gcc/testsuite/gcc.target/microblaze/others/data_var1.c
--- 83520,83526 ----
  a816dff6f0a70651b4a2baba36df01bf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
  7bd8c4012b4e818f846d60047de3d957  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
  215c22e1a44b562b1792467518f5da2c  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
! 42df89e3b0bf957ab168e412244bb45d  gcc/testsuite/gcc.target/microblaze/microblaze.exp
  9a329728496d062effbbdf4b7bde3f00  gcc/testsuite/gcc.target/microblaze/others/break_handler.c
  a498a396b1e4969560394c7d56f05fa5  gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c
  821cbcd6a2563ff2997adb005fdd91af  gcc/testsuite/gcc.target/microblaze/others/data_var1.c
*************** a800917b7b48d6278887db7b70ae66bd  gcc/te
*** 78612,78618 ****
  6d47ad5db3d44507661368c6e60994fe  gcc/testsuite/gcc.target/mips/call-5u.c
  c5ca09bf6a7d69db3839a49c4fd4facc  gcc/testsuite/gcc.target/mips/call-6.c
  eae1b90dbae3dc2e7f2bdcc5ba75e04b  gcc/testsuite/gcc.target/mips/call-6u.c
! be145e6423f4f8b7fcde0111a6cf78e9  gcc/testsuite/gcc.target/mips/call-clobbered-1.c
  ed20f970e88fae8e182105562f3982f4  gcc/testsuite/gcc.target/mips/call-clobbered-2.c
  18791248c1ac012cd727b4f8684c0d31  gcc/testsuite/gcc.target/mips/call-clobbered-3.c
  2178451b515ec09419573346381cea9d  gcc/testsuite/gcc.target/mips/call-clobbered-5.c
--- 83616,83622 ----
  6d47ad5db3d44507661368c6e60994fe  gcc/testsuite/gcc.target/mips/call-5u.c
  c5ca09bf6a7d69db3839a49c4fd4facc  gcc/testsuite/gcc.target/mips/call-6.c
  eae1b90dbae3dc2e7f2bdcc5ba75e04b  gcc/testsuite/gcc.target/mips/call-6u.c
! 96da194ed00b0f3d30fd7bf1575332ae  gcc/testsuite/gcc.target/mips/call-clobbered-1.c
  ed20f970e88fae8e182105562f3982f4  gcc/testsuite/gcc.target/mips/call-clobbered-2.c
  18791248c1ac012cd727b4f8684c0d31  gcc/testsuite/gcc.target/mips/call-clobbered-3.c
  2178451b515ec09419573346381cea9d  gcc/testsuite/gcc.target/mips/call-clobbered-5.c
*************** e7490a676f50b43dff9fbe84ff3bd95e  gcc/te
*** 78782,78788 ****
  c81aee9c49e6f97c3c8859ac412e9a1a  gcc/testsuite/gcc.target/mips/insn-tablejump.c
  89a4ef1858913bac4051ca04ba4ebdea  gcc/testsuite/gcc.target/mips/int-moves-1.c
  1c97317ecf082e15cdf77755e9fcebbb  gcc/testsuite/gcc.target/mips/int-moves-2.c
! 6df92fd4bf5436398bcc08b4278b51a5  gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp
  41a97b2d305c2755e145a924168d4527  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_main.c
  d231e6bcd981687f765ebf5b64bfe33d  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_x.c
  1b5e8db99dca8d400407b92203490cd8  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_y.c
--- 83786,83792 ----
  c81aee9c49e6f97c3c8859ac412e9a1a  gcc/testsuite/gcc.target/mips/insn-tablejump.c
  89a4ef1858913bac4051ca04ba4ebdea  gcc/testsuite/gcc.target/mips/int-moves-1.c
  1c97317ecf082e15cdf77755e9fcebbb  gcc/testsuite/gcc.target/mips/int-moves-2.c
! 1d45c40937b48968e53a81538e4ed809  gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp
  41a97b2d305c2755e145a924168d4527  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_main.c
  d231e6bcd981687f765ebf5b64bfe33d  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_x.c
  1b5e8db99dca8d400407b92203490cd8  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_y.c
*************** e29cf040ff47381ec220169736b7446a  gcc/te
*** 78831,78837 ****
  0c68f22b9635571f990298a5dd303133  gcc/testsuite/gcc.target/mips/mips-3d-8.c
  3f1d2771ce47e4d32f5b8afd4beb82d3  gcc/testsuite/gcc.target/mips/mips-3d-9.c
  375a28f0b3d06b2fad9a483c26ea4000  gcc/testsuite/gcc.target/mips/mips-builtins-pure.c
! 74e71183666814a8818b0b7b0f2cae0d  gcc/testsuite/gcc.target/mips/mips-nonpic/README
  0e86fc6b72b862d940296b6decd5d983  gcc/testsuite/gcc.target/mips/mips-nonpic/main-1.c
  84eb9316a2c541350e627b08dd891336  gcc/testsuite/gcc.target/mips/mips-nonpic/main-10.c
  b1a835baf5477fd4c7927dfd57b3c53b  gcc/testsuite/gcc.target/mips/mips-nonpic/main-11.c
--- 83835,83845 ----
  0c68f22b9635571f990298a5dd303133  gcc/testsuite/gcc.target/mips/mips-3d-8.c
  3f1d2771ce47e4d32f5b8afd4beb82d3  gcc/testsuite/gcc.target/mips/mips-3d-9.c
  375a28f0b3d06b2fad9a483c26ea4000  gcc/testsuite/gcc.target/mips/mips-builtins-pure.c
! 3634b0fb7a444e09a2a15ae155c74221  gcc/testsuite/gcc.target/mips/mips-class.c
! 6a6ce5a5256ee007497a783c1382b893  gcc/testsuite/gcc.target/mips/mips-minamaxa.c
! f66b68d537d5e2ad33f2dc0f9e3914a7  gcc/testsuite/gcc.target/mips/mips-minmax1.c
! ec45a33fcd22a3352ccedca890054f42  gcc/testsuite/gcc.target/mips/mips-minmax2.c
! ac0eac27ce36577271214325207ba1f6  gcc/testsuite/gcc.target/mips/mips-nonpic/README
  0e86fc6b72b862d940296b6decd5d983  gcc/testsuite/gcc.target/mips/mips-nonpic/main-1.c
  84eb9316a2c541350e627b08dd891336  gcc/testsuite/gcc.target/mips/mips-nonpic/main-10.c
  b1a835baf5477fd4c7927dfd57b3c53b  gcc/testsuite/gcc.target/mips/mips-nonpic/main-11.c
*************** f7db832be6c1f33d30392dc4571ec31a  gcc/te
*** 78848,78854 ****
  f3d83fe630c8754c36f040556d8ac908  gcc/testsuite/gcc.target/mips/mips-nonpic/main-7.c
  6df45c093b1debb44ab59e19680afe1a  gcc/testsuite/gcc.target/mips/mips-nonpic/main-8.c
  1c8aaab2d02d475708358405e698cef3  gcc/testsuite/gcc.target/mips/mips-nonpic/main-9.c
! 2e5548ceeefb035868ee583fd66e94e9  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp
  019e2bb848027bcd4216983c967f3950  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.h
  1e01424d10b7a1e8927d5a1f53724f45  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr-call.c
  8dd8657a8c441d55f4fa03d7b3eb5ea8  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr.c
--- 83856,83862 ----
  f3d83fe630c8754c36f040556d8ac908  gcc/testsuite/gcc.target/mips/mips-nonpic/main-7.c
  6df45c093b1debb44ab59e19680afe1a  gcc/testsuite/gcc.target/mips/mips-nonpic/main-8.c
  1c8aaab2d02d475708358405e698cef3  gcc/testsuite/gcc.target/mips/mips-nonpic/main-9.c
! d7f33d4b6e89df6c2cfbbea5a562bd2e  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp
  019e2bb848027bcd4216983c967f3950  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.h
  1e01424d10b7a1e8927d5a1f53724f45  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr-call.c
  8dd8657a8c441d55f4fa03d7b3eb5ea8  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr.c
*************** a85a02c19fa964f6a465de8a4f8929ee  gcc/te
*** 78870,78877 ****
  65eb098e9d656aa6d2c028f16a6e1483  gcc/testsuite/gcc.target/mips/mips-ps-7.c
  4836d50787b1340a0197269158f84f44  gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
  e166ce4f43ccc2c62b14cf1987cc44c9  gcc/testsuite/gcc.target/mips/mips-ps-type.c
  1da4a0d69d85dcc79c371471a1e1519e  gcc/testsuite/gcc.target/mips/mips-sched-madd.c
! 712a26db5518b7cd4b0abb2a5b12d441  gcc/testsuite/gcc.target/mips/mips.exp
  b48e1f7713d9377ade65ca3353e3aadd  gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
  ec0fc4cda7ea3307bf321757f0f6ab8b  gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
  6de1fc03c068d128a6bcc28a79510784  gcc/testsuite/gcc.target/mips/mips16-attributes-4.c
--- 83878,83886 ----
  65eb098e9d656aa6d2c028f16a6e1483  gcc/testsuite/gcc.target/mips/mips-ps-7.c
  4836d50787b1340a0197269158f84f44  gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
  e166ce4f43ccc2c62b14cf1987cc44c9  gcc/testsuite/gcc.target/mips/mips-ps-type.c
+ 11cb8414bc2ad86e3ac358765dbfdf4c  gcc/testsuite/gcc.target/mips/mips-rint.c
  1da4a0d69d85dcc79c371471a1e1519e  gcc/testsuite/gcc.target/mips/mips-sched-madd.c
! bf432295f9b7c75f70d9fc4dd602c09e  gcc/testsuite/gcc.target/mips/mips.exp
  b48e1f7713d9377ade65ca3353e3aadd  gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
  ec0fc4cda7ea3307bf321757f0f6ab8b  gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
  6de1fc03c068d128a6bcc28a79510784  gcc/testsuite/gcc.target/mips/mips16-attributes-4.c
*************** d40b38e3d7fd5c4f4d003bfdbd8dcbb4  gcc/te
*** 78899,78912 ****
  375cf68ad370c5d7cfaae0f4e70664a6  gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
  b238c2e658160f86a7797e1d34586a82  gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
  5a01daf99d322156fcf6e611dfc09e73  gcc/testsuite/gcc.target/mips/movcc-1.c
! a4539c4766d0ff228763889fef30c969  gcc/testsuite/gcc.target/mips/movcc-2.c
  1ca0f0e62bf17bda27141db1f33d9861  gcc/testsuite/gcc.target/mips/movcc-3.c
  5a635cdf10fc870400897d358ef152df  gcc/testsuite/gcc.target/mips/movdf-1.c
  18cb4194916303a03c81e584b70d9bd6  gcc/testsuite/gcc.target/mips/movdf-2.c
  17ccb6da9e8bb3dab1d8b9266cd0e15a  gcc/testsuite/gcc.target/mips/movdf-3.c
  e673ccfc74205709a2572a5600a74ef8  gcc/testsuite/gcc.target/mips/msa-bclri.c
  5866667840ee5a0f66ed2572999e9116  gcc/testsuite/gcc.target/mips/msa-builtins-err.c
! 5b2c6ad1cf12ab0a6723c98b20dcae7e  gcc/testsuite/gcc.target/mips/msa-builtins.c
  2eadbb80b2f27ea5dec2927523282eac  gcc/testsuite/gcc.target/mips/msa-dotp.c
  24dc0b2f66533d2bc320fadac55156d3  gcc/testsuite/gcc.target/mips/msa-dpadd-dpsub.c
  e151f4642441c39fa23f92292201ce34  gcc/testsuite/gcc.target/mips/msa-ds.c
--- 83908,83921 ----
  375cf68ad370c5d7cfaae0f4e70664a6  gcc/testsuite/gcc.target/mips/mmcount-ra-address-2.c
  b238c2e658160f86a7797e1d34586a82  gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
  5a01daf99d322156fcf6e611dfc09e73  gcc/testsuite/gcc.target/mips/movcc-1.c
! d1587e2c334f9979046c1a8259cd4ec4  gcc/testsuite/gcc.target/mips/movcc-2.c
  1ca0f0e62bf17bda27141db1f33d9861  gcc/testsuite/gcc.target/mips/movcc-3.c
  5a635cdf10fc870400897d358ef152df  gcc/testsuite/gcc.target/mips/movdf-1.c
  18cb4194916303a03c81e584b70d9bd6  gcc/testsuite/gcc.target/mips/movdf-2.c
  17ccb6da9e8bb3dab1d8b9266cd0e15a  gcc/testsuite/gcc.target/mips/movdf-3.c
  e673ccfc74205709a2572a5600a74ef8  gcc/testsuite/gcc.target/mips/msa-bclri.c
  5866667840ee5a0f66ed2572999e9116  gcc/testsuite/gcc.target/mips/msa-builtins-err.c
! 1f75f398d8e376f33e59808ed7acb5d1  gcc/testsuite/gcc.target/mips/msa-builtins.c
  2eadbb80b2f27ea5dec2927523282eac  gcc/testsuite/gcc.target/mips/msa-dotp.c
  24dc0b2f66533d2bc320fadac55156d3  gcc/testsuite/gcc.target/mips/msa-dpadd-dpsub.c
  e151f4642441c39fa23f92292201ce34  gcc/testsuite/gcc.target/mips/msa-ds.c
*************** e151f4642441c39fa23f92292201ce34  gcc/te
*** 78915,78921 ****
  4aeaa4b74503d004f53a0c826972e294  gcc/testsuite/gcc.target/mips/msa-fp-cc.c
  cb9bccd55db7c565623b074f64225c87  gcc/testsuite/gcc.target/mips/msa-insert-split.c
  742c80a0278cc84958d4742348970683  gcc/testsuite/gcc.target/mips/msa-minmax.c
! c191c84f397e09414133d234999270dd  gcc/testsuite/gcc.target/mips/msa.c
  adbe080c8559b5f5720e98bedc973083  gcc/testsuite/gcc.target/mips/msub-1.c
  5a0174b813bc40dd32b4b8102e7ab1ba  gcc/testsuite/gcc.target/mips/msub-2.c
  e1cc14b1b2c95f20ab4e24443958b3ca  gcc/testsuite/gcc.target/mips/msub-3.c
--- 83924,83931 ----
  4aeaa4b74503d004f53a0c826972e294  gcc/testsuite/gcc.target/mips/msa-fp-cc.c
  cb9bccd55db7c565623b074f64225c87  gcc/testsuite/gcc.target/mips/msa-insert-split.c
  742c80a0278cc84958d4742348970683  gcc/testsuite/gcc.target/mips/msa-minmax.c
! 04292217db1bd8ade41b0f5ad42541c6  gcc/testsuite/gcc.target/mips/msa-reduc.c
! fe79a1fd5d15434301885c76792667f5  gcc/testsuite/gcc.target/mips/msa.c
  adbe080c8559b5f5720e98bedc973083  gcc/testsuite/gcc.target/mips/msub-1.c
  5a0174b813bc40dd32b4b8102e7ab1ba  gcc/testsuite/gcc.target/mips/msub-2.c
  e1cc14b1b2c95f20ab4e24443958b3ca  gcc/testsuite/gcc.target/mips/msub-3.c
*************** f42f0801a44d06285cee316810947fb7  gcc/te
*** 79020,79025 ****
--- 84030,84036 ----
  4722bc5e1a9d0de7597bc138894a36d3  gcc/testsuite/gcc.target/mips/pr102024-4.c
  a5fe054c259b2b857e58ca81fc2ee790  gcc/testsuite/gcc.target/mips/pr104914.c
  06ed58a6932750afce22db3b1b18fd17  gcc/testsuite/gcc.target/mips/pr106462.c
+ f4c42702a09deae0e3423bd519f5d2eb  gcc/testsuite/gcc.target/mips/pr113179.c
  def76d72ccc4011afcc36f6a1668e0a5  gcc/testsuite/gcc.target/mips/pr26765.c
  a353694197fdff37f4981c3e510c5565  gcc/testsuite/gcc.target/mips/pr33256.c
  10ea730da40444dc72c89d6cde02220c  gcc/testsuite/gcc.target/mips/pr33635-1.c
*************** a3d18616f89634c190f4bb31b9165dbc  gcc/te
*** 79050,79056 ****
  668f845b2b56ba796d8efa350bd5f072  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
  32ddce9e3a3bbe0a7c0283da638073ae  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
  82efdd02a408fa8c66d0dc27a646f2f7  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
! 5140196df3a069bd292d187c97352014  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
  2bd7ad7cc9815ab903dac11b76bebbc9  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
  cf5fea0a581a69a26138724da7a93136  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
  ff139d7a50e359a4256f02b238f4edb5  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
--- 84061,84067 ----
  668f845b2b56ba796d8efa350bd5f072  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
  32ddce9e3a3bbe0a7c0283da638073ae  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
  82efdd02a408fa8c66d0dc27a646f2f7  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c
! d99273660c090ae17dd4e39b52c464e3  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c
  2bd7ad7cc9815ab903dac11b76bebbc9  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c
  cf5fea0a581a69a26138724da7a93136  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c
  ff139d7a50e359a4256f02b238f4edb5  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c
*************** a22afa5b2611758b993a36b26dbc42c1  gcc/te
*** 79132,79138 ****
  c8a3107ea5414eb340f0d3ec2a7dd981  gcc/testsuite/gcc.target/mips/umips-lwp-swp-volatile.c
  cb7e4e1ad23488f3f25aafc417c001c8  gcc/testsuite/gcc.target/mips/umips-movep-1.c
  78ac79707359bd4fba6f98ffa52faf6a  gcc/testsuite/gcc.target/mips/umips-movep-2.c
! 94fc07267d173b10bdf910dcd2ce6120  gcc/testsuite/gcc.target/mips/umips-save-restore-1.c
  e3ce3d38931ecb081fe80b95fe3202bf  gcc/testsuite/gcc.target/mips/umips-save-restore-2.c
  dddf8c6f3c879b1f87ab2e8488935dde  gcc/testsuite/gcc.target/mips/umips-save-restore-3.c
  19af62085be55a3336e36d18657d04da  gcc/testsuite/gcc.target/mips/umips-store16-1.c
--- 84143,84149 ----
  c8a3107ea5414eb340f0d3ec2a7dd981  gcc/testsuite/gcc.target/mips/umips-lwp-swp-volatile.c
  cb7e4e1ad23488f3f25aafc417c001c8  gcc/testsuite/gcc.target/mips/umips-movep-1.c
  78ac79707359bd4fba6f98ffa52faf6a  gcc/testsuite/gcc.target/mips/umips-movep-2.c
! a493fe0a2771d3a8aedbf325926c5807  gcc/testsuite/gcc.target/mips/umips-save-restore-1.c
  e3ce3d38931ecb081fe80b95fe3202bf  gcc/testsuite/gcc.target/mips/umips-save-restore-2.c
  dddf8c6f3c879b1f87ab2e8488935dde  gcc/testsuite/gcc.target/mips/umips-save-restore-3.c
  19af62085be55a3336e36d18657d04da  gcc/testsuite/gcc.target/mips/umips-store16-1.c
*************** e8ccb7e6be9b4a5a6ee6f2e94fc961da  gcc/te
*** 79224,79230 ****
  27128b7463fae2c76e78b92abb781315  gcc/testsuite/gcc.target/msp430/mcpu-is-430xv2.c
  e7e107ec835c73626fadb6558d4cd699  gcc/testsuite/gcc.target/msp430/mlarge-pedwarns.c
  68a7d21ba011cdccee863c1757c35ab8  gcc/testsuite/gcc.target/msp430/mlarge-use-430-insn.c
! 3ee274f92979c3346c3cb33c4de776f2  gcc/testsuite/gcc.target/msp430/msp430.exp
  9a9833f7a9115cf97f061eb7c068bbb7  gcc/testsuite/gcc.target/msp430/msp430.h
  e96192907f9fd6f32abdb4b2f8c43e7a  gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c
  4ff245af8aceb3c9dc91c199e31b7af0  gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c
--- 84235,84241 ----
  27128b7463fae2c76e78b92abb781315  gcc/testsuite/gcc.target/msp430/mcpu-is-430xv2.c
  e7e107ec835c73626fadb6558d4cd699  gcc/testsuite/gcc.target/msp430/mlarge-pedwarns.c
  68a7d21ba011cdccee863c1757c35ab8  gcc/testsuite/gcc.target/msp430/mlarge-use-430-insn.c
! f6a282ca38c579f9d3a6d79ee74e175e  gcc/testsuite/gcc.target/msp430/msp430.exp
  9a9833f7a9115cf97f061eb7c068bbb7  gcc/testsuite/gcc.target/msp430/msp430.h
  e96192907f9fd6f32abdb4b2f8c43e7a  gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c
  4ff245af8aceb3c9dc91c199e31b7af0  gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c
*************** a76e9bdd8dd768b474700a1307ac151c  gcc/te
*** 79274,79370 ****
  15f6a34c31bfccfa2f37f50fbedaa686  gcc/testsuite/gcc.target/nds32/builtin-mfusr-mtusr.c
  2a347ba3731aa3fa17024e865968c3b8  gcc/testsuite/gcc.target/nds32/builtin-setgie-dis.c
  ddaca84e0c321fa88f3cedb3bac1bae5  gcc/testsuite/gcc.target/nds32/builtin-setgie-en.c
! 800e5dbd5732c7866babe3f397e3627f  gcc/testsuite/gcc.target/nds32/nds32.exp
! 267d1f508341cb93b318d1a249e34c19  gcc/testsuite/gcc.target/nios2/andci.c
! b6812a3a7ba3a86a41e0fdc982390c97  gcc/testsuite/gcc.target/nios2/biggot-1.c
! cdbcb03e5a340d5566b6e43e17797f5e  gcc/testsuite/gcc.target/nios2/biggot-2.c
! 6312e2001460d66fa0e91d102c988178  gcc/testsuite/gcc.target/nios2/bmx.c
! 4bc5175c130b77602bada4e45b848e9c  gcc/testsuite/gcc.target/nios2/cdx-add.c
! cdcd422790c51845b0b18baf7aff2e76  gcc/testsuite/gcc.target/nios2/cdx-branch.c
! b59ec0f1beb70cc9698217f55342b3f4  gcc/testsuite/gcc.target/nios2/cdx-callret.c
! 96adaeb62cd204155d5443993c93c5b4  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-1.c
! 931a4d7701ece9a4ce7c89c3a1872057  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-2.c
! 64bf3f23e86707c51bbf1abb024bf895  gcc/testsuite/gcc.target/nios2/cdx-loadstore.c
! 2b7176c9318878d9599e0d4aca52f41a  gcc/testsuite/gcc.target/nios2/cdx-logical.c
! 3c008e0c8cbda6a22518f72f859e2e4a  gcc/testsuite/gcc.target/nios2/cdx-mov.c
! 4961b38269d8c3805f69732b98611e5c  gcc/testsuite/gcc.target/nios2/cdx-shift.c
! c42dfb4e7f092beb62f8476044079abd  gcc/testsuite/gcc.target/nios2/cdx-sub.c
! 153f62eec71e02ce8aae9b1e5c62109a  gcc/testsuite/gcc.target/nios2/const-addr-1.c
! 8ade6e5afd822fcdab186f685f864b83  gcc/testsuite/gcc.target/nios2/const-addr-2.c
! 14d0bdd59692ae8a06c7ea929b3c7c93  gcc/testsuite/gcc.target/nios2/const-addr-3.c
! 1b474a2c9901994775fa9c7721a1dcb1  gcc/testsuite/gcc.target/nios2/custom-fp-1.c
! f6a41f12e561359f4d276266dd1e70b1  gcc/testsuite/gcc.target/nios2/custom-fp-2.c
! a11af1f2211a7fb440bd3930e5fc22ab  gcc/testsuite/gcc.target/nios2/custom-fp-2b.c
! e7a7cd2ef177c3d3de0503896e705fcb  gcc/testsuite/gcc.target/nios2/custom-fp-3.c
! d8262912f060fed85fc52122eaca0045  gcc/testsuite/gcc.target/nios2/custom-fp-4.c
! 8a8572dbcd74763bf807e6637cd24d44  gcc/testsuite/gcc.target/nios2/custom-fp-5.c
! 18dba2b1fc6c6e64d948f45a0ece47b1  gcc/testsuite/gcc.target/nios2/custom-fp-6.c
! 2f92c011059c49d59b1faf716c3a615b  gcc/testsuite/gcc.target/nios2/custom-fp-7.c
! 61fdbc3e3c57226e714fae1d094de181  gcc/testsuite/gcc.target/nios2/custom-fp-8.c
! fb2b6777dea9143d94bb6c71c1aeb260  gcc/testsuite/gcc.target/nios2/custom-fp-cmp-1.c
! 89f19a98991c171e371af9cbd22b4dec  gcc/testsuite/gcc.target/nios2/custom-fp-conversion.c
! a0dd10ab578cdf25d05a635ff1708343  gcc/testsuite/gcc.target/nios2/custom-fp-double.c
! dfcc53a4dd661033342a737c5680e915  gcc/testsuite/gcc.target/nios2/custom-fp-float.c
! 2b1dadf11cb96887df4695edd98a8e2b  gcc/testsuite/gcc.target/nios2/custom-fp-inline-1.c
! 483b9611fcf05ab0ef23414dc7cc1133  gcc/testsuite/gcc.target/nios2/custom-fp-inline-2.c
! ea492cc03568ea7ae8a87406e6d80b55  gcc/testsuite/gcc.target/nios2/custom-fp-inline-3.c
! 8fde2156c0dc87518cc1be8fa9307b1c  gcc/testsuite/gcc.target/nios2/custom-fp-inline-4.c
! c2ce811326bbab4af9098e02382aa2bb  gcc/testsuite/gcc.target/nios2/custom-fp-lto.c
! 59bdb66167a0e1ca7031f0ecf855ae40  gcc/testsuite/gcc.target/nios2/gpopt-all.c
! 0d6822be5711b91f37264ec5fedfe4e6  gcc/testsuite/gcc.target/nios2/gpopt-data.c
! c0a3c2ed76b7d6777caa3994360459ae  gcc/testsuite/gcc.target/nios2/gpopt-global.c
! 20971f7486246d3ac34d9562734dadcf  gcc/testsuite/gcc.target/nios2/gpopt-gprel-sec.c
! 099b17c4e47cd17b11317617a06bd938  gcc/testsuite/gcc.target/nios2/gpopt-local.c
! f4c5d5607df7e17ad6aeb54431c8b7c6  gcc/testsuite/gcc.target/nios2/gpopt-none.c
! 56e37a0c8c1effb9d2121cd2f5af4f25  gcc/testsuite/gcc.target/nios2/gpopt-r0rel-sec.c
! fe0d95e1ac0f6ffd3c623a3e925c9e1a  gcc/testsuite/gcc.target/nios2/gprel-offset.c
! a257a014cf25ca561926ce73766cda5e  gcc/testsuite/gcc.target/nios2/lo-addr-bypass.c
! 7c4d4d0eed1b9be13ad7b7a3f825743a  gcc/testsuite/gcc.target/nios2/lo-addr-char.c
! 45f8acc8db442bf74b7fba1866cbee79  gcc/testsuite/gcc.target/nios2/lo-addr-int.c
! dbeb7143dc3bd239ce665d8bbcbc93dd  gcc/testsuite/gcc.target/nios2/lo-addr-pic.c
! 238ca5d12a46d02d3c407aed742213a2  gcc/testsuite/gcc.target/nios2/lo-addr-short.c
! a84839a573f8abfcc4b7b526645d72a6  gcc/testsuite/gcc.target/nios2/lo-addr-tls.c
! 1f27b0f0412d9ab5487dc1ac5eadad91  gcc/testsuite/gcc.target/nios2/lo-addr-uchar.c
! e88f7315d96aad347b832a0356448933  gcc/testsuite/gcc.target/nios2/lo-addr-ushort.c
! 48f5c63b7a4f50d94d620fc2969779ca  gcc/testsuite/gcc.target/nios2/lo-addr-volatile.c
! 28a1dbbf54d0859841ba3eb9d390fc0f  gcc/testsuite/gcc.target/nios2/nios2-ashlsi3-one_shift.c
! 7f0bb23769a3311ca579de364eb96680  gcc/testsuite/gcc.target/nios2/nios2-builtin-custom.c
! 7630ea0b18f70e8d55d3fbcf6d2e5e77  gcc/testsuite/gcc.target/nios2/nios2-builtin-io.c
! 465a1ec40fd52d9c11a50918bb6b99b4  gcc/testsuite/gcc.target/nios2/nios2-cache-1.c
! ad3121a29838d9b1e62e907767c296f3  gcc/testsuite/gcc.target/nios2/nios2-cache-2.c
! b7d934c49f9b652ea71d8c84704fa2be  gcc/testsuite/gcc.target/nios2/nios2-custom-1.c
! 25c89b204f3be524dbc38d2dad778c1b  gcc/testsuite/gcc.target/nios2/nios2-custom-2.c
! 62f746e1a13a22380649b779bfa349be  gcc/testsuite/gcc.target/nios2/nios2-flushd.c
! 5f9c13cfb88ed8eb486e5bab707bd555  gcc/testsuite/gcc.target/nios2/nios2-int-types.c
! 063d53b72297df4cdcfa3a073b84e98b  gcc/testsuite/gcc.target/nios2/nios2-ldxio.c
! 1c0237af35439aacae656d937c292427  gcc/testsuite/gcc.target/nios2/nios2-mul-options-1.c
! 606bca17f2fe35a20ff5a081d884d0fb  gcc/testsuite/gcc.target/nios2/nios2-mul-options-2.c
! 5192ca4d50c37c90c2792cdb757b5de5  gcc/testsuite/gcc.target/nios2/nios2-mul-options-3.c
! 2dd2971665ee4fba1b8feb119a2a55f8  gcc/testsuite/gcc.target/nios2/nios2-mul-options-4.c
! 818e7e8433a8075556ea659c102f1f02  gcc/testsuite/gcc.target/nios2/nios2-nor.c
! 8f3ceb19f35d3a151e94cfd5602e859f  gcc/testsuite/gcc.target/nios2/nios2-rdctl.c
! 6a0361279ab0cbf12d1b9677ef12f75d  gcc/testsuite/gcc.target/nios2/nios2-rdprs.c
! fedd15cd34e65d0710cd798f1161bbc8  gcc/testsuite/gcc.target/nios2/nios2-rdwrctl-1.c
! a86dec99162f01a6f7966456ac6dc3c1  gcc/testsuite/gcc.target/nios2/nios2-stack-check-1.c
! aa45a380f1ecb3c0996a8c8d6e8a3619  gcc/testsuite/gcc.target/nios2/nios2-stack-check-2.c
! a87061df79ea1df98b37173a67798115  gcc/testsuite/gcc.target/nios2/nios2-stack-check-3.c
! 84cf5ec2e49f9cb515cb2477ace5b971  gcc/testsuite/gcc.target/nios2/nios2-stxio.c
! 7fa77cdeb2595f285121ba787dc93a85  gcc/testsuite/gcc.target/nios2/nios2-trap-insn.c
! 6dbe531363c65af94c9d1cf19e943696  gcc/testsuite/gcc.target/nios2/nios2-wrctl-not-zero.c
! 758d14c9a54781c627955ab573f81558  gcc/testsuite/gcc.target/nios2/nios2-wrctl-zero.c
! 84c9378417e6cb2069a618430a13661c  gcc/testsuite/gcc.target/nios2/nios2-wrctl.c
! 98e66a993c5830132d869284f7aad1f9  gcc/testsuite/gcc.target/nios2/nios2.exp
! 5738a626d052d93dbea37d4d0144d7b8  gcc/testsuite/gcc.target/nios2/pr87079-1.c
! efa2a47188c46b5407f22a2a066118c8  gcc/testsuite/gcc.target/nios2/pr87079-2.c
! b267f28fe7ecd61569a0c578100b7bea  gcc/testsuite/gcc.target/nios2/pr92499-1.c
! 07d906b970649608d5572af35bae78fc  gcc/testsuite/gcc.target/nios2/pr92499-2.c
! 87cadcb6f21ee4071ecc04a5dc1e877f  gcc/testsuite/gcc.target/nios2/pr92499-3.c
! 9debf19ff2edff67a3c15f36802b05cb  gcc/testsuite/gcc.target/nios2/r2-atomic.c
! 9afc1945739eba181514def0191a2260  gcc/testsuite/gcc.target/nios2/r2-eni.c
! 4745d097a704a5db2acedd2286a4b636  gcc/testsuite/gcc.target/nios2/r2-io-range.c
! e97c5570db4314803c52720602d5e9e9  gcc/testsuite/gcc.target/nios2/r2-stio-1.c
! 32674d3ae9ce87df6fa9630795dccdbd  gcc/testsuite/gcc.target/nios2/r2-stio-2.c
! b307502ea46f534c3e6040b66c432e36  gcc/testsuite/gcc.target/nios2/r2-wrpie.c
  28be6c6a73b2a7a46b5109d1ef5817b5  gcc/testsuite/gcc.target/nvptx/abi-complex-arg.c
  5a278dae7f1e9dd8a8f4d38ede47ef07  gcc/testsuite/gcc.target/nvptx/abi-complex-ret.c
  29f1fc20d100539f580878b7b8a6238f  gcc/testsuite/gcc.target/nvptx/abi-enum-arg.c
--- 84285,84297 ----
  15f6a34c31bfccfa2f37f50fbedaa686  gcc/testsuite/gcc.target/nds32/builtin-mfusr-mtusr.c
  2a347ba3731aa3fa17024e865968c3b8  gcc/testsuite/gcc.target/nds32/builtin-setgie-dis.c
  ddaca84e0c321fa88f3cedb3bac1bae5  gcc/testsuite/gcc.target/nds32/builtin-setgie-en.c
! 6413ced1e2049ec673bde0f4ad3953b5  gcc/testsuite/gcc.target/nds32/nds32.exp
! ca0d718c890f79b73f2039397c5fd088  gcc/testsuite/gcc.target/nvptx/__builtin_alloca_0-1-O0.c
! 4e652ad96185ee29bf5b6377edf7dcc5  gcc/testsuite/gcc.target/nvptx/__builtin_alloca_0-1-O1.c
! b36bb560ef1a7de9f7bc79176b6b9e04  gcc/testsuite/gcc.target/nvptx/__builtin_frame_address_0-1.c
! 748ce4db9dd0830e8a063563f8befde1  gcc/testsuite/gcc.target/nvptx/__builtin_stack_address-1.c
! c032157cf6f27e3a2694462a9e6f23bd  gcc/testsuite/gcc.target/nvptx/__builtin_stack_save___builtin_stack_restore-1-sm_30.c
! 05127525541f3787d41daf47ad3150cb  gcc/testsuite/gcc.target/nvptx/__builtin_stack_save___builtin_stack_restore-1.c
  28be6c6a73b2a7a46b5109d1ef5817b5  gcc/testsuite/gcc.target/nvptx/abi-complex-arg.c
  5a278dae7f1e9dd8a8f4d38ede47ef07  gcc/testsuite/gcc.target/nvptx/abi-complex-ret.c
  29f1fc20d100539f580878b7b8a6238f  gcc/testsuite/gcc.target/nvptx/abi-enum-arg.c
*************** a130181e569520d8ec50ce126d257deb  gcc/te
*** 79380,79390 ****
  7a09552864da1203b2b1381f3961bfb4  gcc/testsuite/gcc.target/nvptx/abi-vararg-3.c
  554eaa0ba4dd8f51e8e4848c41d73e9e  gcc/testsuite/gcc.target/nvptx/abi-vect-arg.c
  da5463224c767fe4525ff97ea55cf59b  gcc/testsuite/gcc.target/nvptx/abi-vect-ret.c
! 1c2ca7f6a110510e1940171c4ef1b012  gcc/testsuite/gcc.target/nvptx/abort.c
! d53d41dd57e5dd1af02004737e6e8340  gcc/testsuite/gcc.target/nvptx/alias-1.c
! e824d5ced8c9c8381803fd74bb215f4b  gcc/testsuite/gcc.target/nvptx/alias-2.c
! 242e9f2d5741ae9a1fb82b89dedf18a0  gcc/testsuite/gcc.target/nvptx/alias-3.c
! e6575a5187ea5b487b70c390b175ed81  gcc/testsuite/gcc.target/nvptx/alias-4.c
  9a34d9a28d10c98b31d63c9cf7a875c9  gcc/testsuite/gcc.target/nvptx/ary-init.c
  c238554b3e741519dc76534c85905a5c  gcc/testsuite/gcc.target/nvptx/atomic-bit-bucket-dest.c
  580b43dff8a62c1e469128dbaa6306d8  gcc/testsuite/gcc.target/nvptx/atomic-exchange-1.c
--- 84307,84339 ----
  7a09552864da1203b2b1381f3961bfb4  gcc/testsuite/gcc.target/nvptx/abi-vararg-3.c
  554eaa0ba4dd8f51e8e4848c41d73e9e  gcc/testsuite/gcc.target/nvptx/abi-vect-arg.c
  da5463224c767fe4525ff97ea55cf59b  gcc/testsuite/gcc.target/nvptx/abi-vect-ret.c
! 45f045dd809d12b6c260966b98e35f34  gcc/testsuite/gcc.target/nvptx/abort.c
! 73854f88053450e9bae0dbb1932481ed  gcc/testsuite/gcc.target/nvptx/alias-1.c
! ec1bed9ce16a9250a33e653e647e14d1  gcc/testsuite/gcc.target/nvptx/alias-2.c
! b91ee7ec62b578dd5debc305a08a212d  gcc/testsuite/gcc.target/nvptx/alias-3.c
! 23347e2f420c68a408921f58623be87a  gcc/testsuite/gcc.target/nvptx/alias-4.c
! a6415082470067b91ed683f05922409f  gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c
! ae0c7a39b65bb67bbb2281473f5b81fe  gcc/testsuite/gcc.target/nvptx/alias-unsupported-1.c
! 5cc176708b47c3e32cc8feea3a3e5352  gcc/testsuite/gcc.target/nvptx/alias-weak-1.c
! dde914cb6f187f5be68ed8c861d65ccb  gcc/testsuite/gcc.target/nvptx/alloca-1-O0.c
! 6d9b5d4559894f12ef8404a52874b007  gcc/testsuite/gcc.target/nvptx/alloca-1-O0_-mfake-ptx-alloca.c
! e86c7d235a0e0f0c5b10d857ab198b12  gcc/testsuite/gcc.target/nvptx/alloca-1-O1.c
! def941a4ba8aa199aff1c048a909feca  gcc/testsuite/gcc.target/nvptx/alloca-1-dead-O0-sm_30.c
! 237a0a22ea5e6bb72ae0dc9306447d55  gcc/testsuite/gcc.target/nvptx/alloca-1-dead-O0.c
! 1d00ca1fec069326607cd031d338cfe8  gcc/testsuite/gcc.target/nvptx/alloca-1-dead-O1-sm_30.c
! d909a79a4370ccac4c912d756656872b  gcc/testsuite/gcc.target/nvptx/alloca-1-dead-O1.c
! efe64d2776531ae2a23ddddf13294716  gcc/testsuite/gcc.target/nvptx/alloca-1-sm_30.c
! f515ae3775487fbac645b32f71a886df  gcc/testsuite/gcc.target/nvptx/alloca-1-unused-O0-sm_30.c
! a82c33ed791a6857cf5f073f66150ea4  gcc/testsuite/gcc.target/nvptx/alloca-1-unused-O0.c
! 4268c204ea2c694d7fd971ed721ef750  gcc/testsuite/gcc.target/nvptx/alloca-1-unused-O1-sm_30.c
! 1e09177ce517b8b740cca7e470ad0aa0  gcc/testsuite/gcc.target/nvptx/alloca-1-unused-O1.c
! f32a1c472e4b3034175672829686c5c1  gcc/testsuite/gcc.target/nvptx/alloca-2-O0.c
! ed923a0b262a632aa491326cf2743570  gcc/testsuite/gcc.target/nvptx/alloca-2-O0_-mfake-ptx-alloca.c
! 71e73fb8e61a4698eba58448a5ad0ff0  gcc/testsuite/gcc.target/nvptx/alloca-2-O1.c
! bec4ebf9075051f32e0f840e20717463  gcc/testsuite/gcc.target/nvptx/alloca-3-O1.c
! 1e5211832c9ee1a33110e61951220fcb  gcc/testsuite/gcc.target/nvptx/alloca-4-O3.c
! c652bd85742cc68bac3948e781d1516d  gcc/testsuite/gcc.target/nvptx/alloca-4-O3_-mfake-ptx-alloca.c
! 16c2d111782fe4f594489ea0914a1f56  gcc/testsuite/gcc.target/nvptx/alloca-5.c
  9a34d9a28d10c98b31d63c9cf7a875c9  gcc/testsuite/gcc.target/nvptx/ary-init.c
  c238554b3e741519dc76534c85905a5c  gcc/testsuite/gcc.target/nvptx/atomic-bit-bucket-dest.c
  580b43dff8a62c1e469128dbaa6306d8  gcc/testsuite/gcc.target/nvptx/atomic-exchange-1.c
*************** c0f22d278b34a31116dc5c0ad386b797  gcc/te
*** 79411,79417 ****
  cf91ca14cafbda331f4d85cb59c361c2  gcc/testsuite/gcc.target/nvptx/decl-init.c
  ce8d3cdf413d2ecd740f727aa605f41d  gcc/testsuite/gcc.target/nvptx/decl-shared-init.c
  ee7a219079a9befc9911075c0ddf6ec4  gcc/testsuite/gcc.target/nvptx/decl-shared.c
! b5bc7203f9caebe44d835739cd6150f6  gcc/testsuite/gcc.target/nvptx/decl.c
  9d19b323002165b68063574fca5ea81a  gcc/testsuite/gcc.target/nvptx/exttrunc-1.c
  29a8ec74dc5f5b526b9e99fbae0bf344  gcc/testsuite/gcc.target/nvptx/exttrunc-2.c
  a09dabbf9cb73480a5eff957ccdda3b4  gcc/testsuite/gcc.target/nvptx/exttrunc-3.c
--- 84360,84366 ----
  cf91ca14cafbda331f4d85cb59c361c2  gcc/testsuite/gcc.target/nvptx/decl-init.c
  ce8d3cdf413d2ecd740f727aa605f41d  gcc/testsuite/gcc.target/nvptx/decl-shared-init.c
  ee7a219079a9befc9911075c0ddf6ec4  gcc/testsuite/gcc.target/nvptx/decl-shared.c
! 8a865d5dd9a77e7b53078736834f4a60  gcc/testsuite/gcc.target/nvptx/decl.c
  9d19b323002165b68063574fca5ea81a  gcc/testsuite/gcc.target/nvptx/exttrunc-1.c
  29a8ec74dc5f5b526b9e99fbae0bf344  gcc/testsuite/gcc.target/nvptx/exttrunc-2.c
  a09dabbf9cb73480a5eff957ccdda3b4  gcc/testsuite/gcc.target/nvptx/exttrunc-3.c
*************** dd4edeaa5bae2549fa0790bb949f2a76  gcc/te
*** 79433,79447 ****
  3d0ce3ed482e5d4711c9c7d3499efa2a  gcc/testsuite/gcc.target/nvptx/int128.c
  20d11a09643f7f9363cb6b947031318a  gcc/testsuite/gcc.target/nvptx/isinf.c
  11c15ebae0aa72ac866acc469a870111  gcc/testsuite/gcc.target/nvptx/label-values.c
! 64f58c700c56137ff941121fa6d74674  gcc/testsuite/gcc.target/nvptx/main.c
! 78d835756305b2d6b6d710b6a5eaf496  gcc/testsuite/gcc.target/nvptx/march-map.c
! 448d8f6ecbad44a789a6041a2b8db204  gcc/testsuite/gcc.target/nvptx/march.c
  35a1b298a71dc900deb20b7aee0269e8  gcc/testsuite/gcc.target/nvptx/mul-hi.c
  fb0e44378720162460683cbfd0dbdc52  gcc/testsuite/gcc.target/nvptx/mul-hi64.c
  46842942450b2228182a8a02cdfd0bad  gcc/testsuite/gcc.target/nvptx/mul-wide.c
  26682b7c6e1dc875ec8e2effc028a378  gcc/testsuite/gcc.target/nvptx/mul-wide64.c
  17c39d8f0e043cf2fa692089cf8498c7  gcc/testsuite/gcc.target/nvptx/neg-selp.c
! e3533b63131bbc30740fb27ddc03cc11  gcc/testsuite/gcc.target/nvptx/nvptx.exp
  97135e11860bc0316757d03f9f9eab37  gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
  a935421e20c83d40eb47ae736d5b5859  gcc/testsuite/gcc.target/nvptx/popc-1.c
  c8bd1e5a7d975c41c97fb76577695e6e  gcc/testsuite/gcc.target/nvptx/popc-2.c
--- 84382,84430 ----
  3d0ce3ed482e5d4711c9c7d3499efa2a  gcc/testsuite/gcc.target/nvptx/int128.c
  20d11a09643f7f9363cb6b947031318a  gcc/testsuite/gcc.target/nvptx/isinf.c
  11c15ebae0aa72ac866acc469a870111  gcc/testsuite/gcc.target/nvptx/label-values.c
! b788c9e8d1135a67edff7bce9e2bb1cc  gcc/testsuite/gcc.target/nvptx/march-map=sm_30.c
! dd4a33d1caf27318327d409066e8853f  gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c
! 5798d9a88b03b302b4376ddc99c38963  gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c
! 62c281a2a6cc10296e25c1f8809314bd  gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c
! 3816d6a3a495f53a2bad3633fd7de4f4  gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
! a378f672c1826c23c1560c1af3c74cde  gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c
! 0ab192ba0546c180702780a3ba66044b  gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c
! 9e08e53476d54bf63a1c5ca677191ea9  gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c
! fd68802dbe55b8545103f9ae1f1c0b23  gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c
! a8ba705dd681c1c1324166ecd4c46fc7  gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c
! e65d0546814f094a5fd5a9dc08ff6a97  gcc/testsuite/gcc.target/nvptx/march-map=sm_70.c
! c2d8a97746e819cbcd1ea76ca595f59f  gcc/testsuite/gcc.target/nvptx/march-map=sm_72.c
! f946b7c1cfe33fcf72971bc3a68c8f6f  gcc/testsuite/gcc.target/nvptx/march-map=sm_75.c
! d1f5d4cc79ef6c192c6969b3db606a2c  gcc/testsuite/gcc.target/nvptx/march-map=sm_80.c
! edc671501f9a5b9c07141ddf1ab772c6  gcc/testsuite/gcc.target/nvptx/march-map=sm_86.c
! 26bf1895fc09c04a72c10f8b0f5e03aa  gcc/testsuite/gcc.target/nvptx/march-map=sm_87.c
! 75bb20aea1e56d33aa589968b4a68b63  gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
! d5dff4229bf2002ee105ec2e9c8ca63b  gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
! 1784407a35e0f1bf542239a10e964ecc  gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
! 243a0359cbd19fcd7a23ac9c9b3ef310  gcc/testsuite/gcc.target/nvptx/march=sm_30.c
! 8f86891a6ef70d5489c389f237d6e479  gcc/testsuite/gcc.target/nvptx/march=sm_35.c
! b5d58d84e57c5cfe9d7ce93a40665b7e  gcc/testsuite/gcc.target/nvptx/march=sm_37.c
! cb9d8e8835055f77639301fe42459f14  gcc/testsuite/gcc.target/nvptx/march=sm_52.c
! 0601021f45410aa7fa56ed7ea27904ff  gcc/testsuite/gcc.target/nvptx/march=sm_53.c
! ea7e7665df27eebcf186519e2077269b  gcc/testsuite/gcc.target/nvptx/march=sm_70.c
! 086af00fb5d74ef9fabd5265379230b1  gcc/testsuite/gcc.target/nvptx/march=sm_75.c
! ef504f274b79cad064bc5f0eab4dccbe  gcc/testsuite/gcc.target/nvptx/march=sm_80.c
! afd0dac0c935c0eb1fb80b9fae2b1c4e  gcc/testsuite/gcc.target/nvptx/march=sm_89.c
! 3acbb14b9172e6aa7e2fafacc82dd835  gcc/testsuite/gcc.target/nvptx/mptx=3.1.c
! 9ea9acf5f9e1658066ce2f6c50b8b163  gcc/testsuite/gcc.target/nvptx/mptx=4.1.c
! a5dde36e4466d98be79cade6931a198c  gcc/testsuite/gcc.target/nvptx/mptx=4.2.c
! 19131c4c116b5adfafc8c6ddeedf1f6a  gcc/testsuite/gcc.target/nvptx/mptx=6.0.c
! 19b6ba4e745ea51faf8b07b0be9a573c  gcc/testsuite/gcc.target/nvptx/mptx=6.3.c
! 3456be09c7440492bf6d4c2a16058579  gcc/testsuite/gcc.target/nvptx/mptx=7.0.c
! 4c9aee269c0c57efed6a2b2b63e7d703  gcc/testsuite/gcc.target/nvptx/mptx=7.3.c
! f3bf889a00a802fd3693d08c3dae4226  gcc/testsuite/gcc.target/nvptx/mptx=7.8.c
! e1d8e3e3dc86fee3cfa60f2c9eb9c225  gcc/testsuite/gcc.target/nvptx/mptx=_.c
  35a1b298a71dc900deb20b7aee0269e8  gcc/testsuite/gcc.target/nvptx/mul-hi.c
  fb0e44378720162460683cbfd0dbdc52  gcc/testsuite/gcc.target/nvptx/mul-hi64.c
  46842942450b2228182a8a02cdfd0bad  gcc/testsuite/gcc.target/nvptx/mul-wide.c
  26682b7c6e1dc875ec8e2effc028a378  gcc/testsuite/gcc.target/nvptx/mul-wide64.c
  17c39d8f0e043cf2fa692089cf8498c7  gcc/testsuite/gcc.target/nvptx/neg-selp.c
! 7bf6be64cfe4a2d60d09cbae94851d1e  gcc/testsuite/gcc.target/nvptx/nvptx.exp
  97135e11860bc0316757d03f9f9eab37  gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
  a935421e20c83d40eb47ae736d5b5859  gcc/testsuite/gcc.target/nvptx/popc-1.c
  c8bd1e5a7d975c41c97fb76577695e6e  gcc/testsuite/gcc.target/nvptx/popc-2.c
*************** f00794180613c46aff512b5d000d751e  gcc/te
*** 79449,79458 ****
  ee10a595a6c816802a83d13637d1f4ce  gcc/testsuite/gcc.target/nvptx/pr85056.c
  85d991e87550d6e0750de2b4f0ef4e8d  gcc/testsuite/gcc.target/nvptx/pr85056a.c
  0851aa76429cdec3f332dcfc7d32f6f4  gcc/testsuite/gcc.target/nvptx/proto-1.c
- b2a3c52ebd060d53cf12db9f9d0b2863  gcc/testsuite/gcc.target/nvptx/ptx31.c
- 08b442b6399905bbecd5e6f0821d0cd1  gcc/testsuite/gcc.target/nvptx/ptx60.c
- 8e82854ea4255a4063bbb7eec6c29620  gcc/testsuite/gcc.target/nvptx/ptx63.c
- 354d2bc7afd3ed7274951bb04061b7b8  gcc/testsuite/gcc.target/nvptx/ptx70.c
  825b4ce2e5e98545b5117326450c5661  gcc/testsuite/gcc.target/nvptx/recip-1.c
  e3f16d82baedd323e96a06b6d386670d  gcc/testsuite/gcc.target/nvptx/rotate-run.c
  abab2617eaa9eab633d53f74b7bf714c  gcc/testsuite/gcc.target/nvptx/rotate.c
--- 84432,84437 ----
*************** a8dae85200a181f350c733049b638786  gcc/te
*** 79462,79476 ****
  6c880ba8892ad33b326cb50bbafd9956  gcc/testsuite/gcc.target/nvptx/slp-2.c
  39b8229b6c09b6bcb85331a3fbc2c37b  gcc/testsuite/gcc.target/nvptx/slp-run.c
  44ad908a69e43269647b72a114715eda  gcc/testsuite/gcc.target/nvptx/slp.c
- 8d132719a5e0d3256cdc773c92512799  gcc/testsuite/gcc.target/nvptx/sm30.c
- e935cc2e1a689880eee7025ebab06303  gcc/testsuite/gcc.target/nvptx/sm35.c
- df061396f032e1f451fd4dfc7a6404a0  gcc/testsuite/gcc.target/nvptx/sm53.c
- 8725f7abff77211ad05c91c5c17a3969  gcc/testsuite/gcc.target/nvptx/sm70.c
- ff78de249538bff916f56e529c1893ee  gcc/testsuite/gcc.target/nvptx/sm75.c
- eba0f626a0823d4e61c74de2ec8e557e  gcc/testsuite/gcc.target/nvptx/sm80.c
  b1e0abb4d1e3c9e581f362604fbc686a  gcc/testsuite/gcc.target/nvptx/softstack-2.c
! 741e8b3981b97dba04d2d0ab288e2aca  gcc/testsuite/gcc.target/nvptx/softstack.c
  b2acbb90d6317f1e8bf4dc3fc987babf  gcc/testsuite/gcc.target/nvptx/stack-atomics-run.c
  c6f21e2cf733fdeab9306fc60a660eda  gcc/testsuite/gcc.target/nvptx/tanh-1.c
  b229365c916139aa5854fd2d40028c0a  gcc/testsuite/gcc.target/nvptx/trailing-init.c
  4eabd19b0b24f9cd0fd1e9c5a17f78db  gcc/testsuite/gcc.target/nvptx/umul-hi.c
--- 84441,84450 ----
  6c880ba8892ad33b326cb50bbafd9956  gcc/testsuite/gcc.target/nvptx/slp-2.c
  39b8229b6c09b6bcb85331a3fbc2c37b  gcc/testsuite/gcc.target/nvptx/slp-run.c
  44ad908a69e43269647b72a114715eda  gcc/testsuite/gcc.target/nvptx/slp.c
  b1e0abb4d1e3c9e581f362604fbc686a  gcc/testsuite/gcc.target/nvptx/softstack-2.c
! e5c69886d8772ec589a74015b8d817c3  gcc/testsuite/gcc.target/nvptx/softstack.c
  b2acbb90d6317f1e8bf4dc3fc987babf  gcc/testsuite/gcc.target/nvptx/stack-atomics-run.c
+ 6437eae6afeee1868580104e07e266c3  gcc/testsuite/gcc.target/nvptx/stack_frame-1.c
  c6f21e2cf733fdeab9306fc60a660eda  gcc/testsuite/gcc.target/nvptx/tanh-1.c
  b229365c916139aa5854fd2d40028c0a  gcc/testsuite/gcc.target/nvptx/trailing-init.c
  4eabd19b0b24f9cd0fd1e9c5a17f78db  gcc/testsuite/gcc.target/nvptx/umul-hi.c
*************** b229365c916139aa5854fd2d40028c0a  gcc/te
*** 79478,79495 ****
  9fc92de803cb585cf0c64307747e0620  gcc/testsuite/gcc.target/nvptx/umul-wide.c
  55021891bc9f1530f0b9c8b383e37642  gcc/testsuite/gcc.target/nvptx/umul-wide64.c
  ce6ca7927907f0717ab7b6174a3271bf  gcc/testsuite/gcc.target/nvptx/uniform-simt-1.c
! c7c8349f4a17d1af0937418e4a2688cb  gcc/testsuite/gcc.target/nvptx/uniform-simt-2.c
  19f922defbecb458559adde8f0607613  gcc/testsuite/gcc.target/nvptx/uniform-simt-3.c
  4d745b5ec3f9df410382dd18e3ea1977  gcc/testsuite/gcc.target/nvptx/uniform-simt-4.c
  c65e9b178b981b800a00ac82aa9741cf  gcc/testsuite/gcc.target/nvptx/uninit-decl.c
  0c3dd4b3664aa3f42dca7bc49ab4dc53  gcc/testsuite/gcc.target/nvptx/unsigned-cmp.c
  b7ab80fc6f20db555ea318163f54bb1c  gcc/testsuite/gcc.target/nvptx/v2di.c
  bc3ff6c96f47556e90735072f0482f8e  gcc/testsuite/gcc.target/nvptx/v2si-cvt.c
  0c4a4bc6ef9c71916872f453d51c62af  gcc/testsuite/gcc.target/nvptx/v2si-run.c
! 042588a1e383682a2797ce8183b8ddb5  gcc/testsuite/gcc.target/nvptx/v2si-vec-set-extract.c
  1d2fc2d3442fe9ae6206e3c12fc9f466  gcc/testsuite/gcc.target/nvptx/v2si.c
  e156b7f2465ef5bce0e77775f26b334f  gcc/testsuite/gcc.target/nvptx/vadd_add.c
  34535704dd43f77717636b4495978894  gcc/testsuite/gcc.target/nvptx/vec.inc
  256f5601c0b3f8a7f54764c61ad5055a  gcc/testsuite/gcc.target/nvptx/vsub_add.c
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
--- 84452,84482 ----
  9fc92de803cb585cf0c64307747e0620  gcc/testsuite/gcc.target/nvptx/umul-wide.c
  55021891bc9f1530f0b9c8b383e37642  gcc/testsuite/gcc.target/nvptx/umul-wide64.c
  ce6ca7927907f0717ab7b6174a3271bf  gcc/testsuite/gcc.target/nvptx/uniform-simt-1.c
! f929bb6671b6c938242d562da597e258  gcc/testsuite/gcc.target/nvptx/uniform-simt-2.c
  19f922defbecb458559adde8f0607613  gcc/testsuite/gcc.target/nvptx/uniform-simt-3.c
  4d745b5ec3f9df410382dd18e3ea1977  gcc/testsuite/gcc.target/nvptx/uniform-simt-4.c
+ b9f90894bcc5f8ccbd8c706b17147990  gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c
  c65e9b178b981b800a00ac82aa9741cf  gcc/testsuite/gcc.target/nvptx/uninit-decl.c
  0c3dd4b3664aa3f42dca7bc49ab4dc53  gcc/testsuite/gcc.target/nvptx/unsigned-cmp.c
  b7ab80fc6f20db555ea318163f54bb1c  gcc/testsuite/gcc.target/nvptx/v2di.c
  bc3ff6c96f47556e90735072f0482f8e  gcc/testsuite/gcc.target/nvptx/v2si-cvt.c
  0c4a4bc6ef9c71916872f453d51c62af  gcc/testsuite/gcc.target/nvptx/v2si-run.c
! be656f4e8d70c5e855b386f655ad8d36  gcc/testsuite/gcc.target/nvptx/v2si-vec-set-extract.c
  1d2fc2d3442fe9ae6206e3c12fc9f466  gcc/testsuite/gcc.target/nvptx/v2si.c
  e156b7f2465ef5bce0e77775f26b334f  gcc/testsuite/gcc.target/nvptx/vadd_add.c
  34535704dd43f77717636b4495978894  gcc/testsuite/gcc.target/nvptx/vec.inc
+ 465e2d90e317aa47aa31f07d43c55f2e  gcc/testsuite/gcc.target/nvptx/vla-1-O0.c
+ e39329ebda5ccf3dd4d72dc5db6798e8  gcc/testsuite/gcc.target/nvptx/vla-1-O0_-mfake-ptx-alloca.c
+ 7d8ddd233a7240dca362503abf4a2572  gcc/testsuite/gcc.target/nvptx/vla-1-O1.c
+ 7db6303e878962ad28b6642295f193a9  gcc/testsuite/gcc.target/nvptx/vla-1-dead-O0-sm_30.c
+ 28e402bf0560496ad3429a4b08802a36  gcc/testsuite/gcc.target/nvptx/vla-1-dead-O0.c
+ be93e7a57430796de1576fa26c8f6616  gcc/testsuite/gcc.target/nvptx/vla-1-dead-O1-sm_30.c
+ e66e63a859fd85759ebc8a8edd3250a4  gcc/testsuite/gcc.target/nvptx/vla-1-dead-O1.c
+ 268e09d3efe5bdcb9e7142d3e08ec577  gcc/testsuite/gcc.target/nvptx/vla-1-sm_30.c
+ fad25f2f853cac9ccb93f10e14d05c00  gcc/testsuite/gcc.target/nvptx/vla-1-unused-O0-sm_30.c
+ d80d32ac8bc1886121a5fa462b7c058f  gcc/testsuite/gcc.target/nvptx/vla-1-unused-O0.c
+ 84b698f922b7962c6fa93c79306e1447  gcc/testsuite/gcc.target/nvptx/vla-1-unused-O1-sm_30.c
+ 79ec2f2a6fc45e6a053c58fb900189d8  gcc/testsuite/gcc.target/nvptx/vla-1-unused-O1.c
  256f5601c0b3f8a7f54764c61ad5055a  gcc/testsuite/gcc.target/nvptx/vsub_add.c
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
*************** d59f1ded63c010f7c70d8914ff035369  gcc/te
*** 79498,79504 ****
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
! f3d09b2fddff7e52b4a1618ab331943d  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
  cbc20b748446a09b12e149a14d1dc326  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
--- 84485,84491 ----
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
! 907a0ece95eecc7c532fedb755ef1a48  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
  cbc20b748446a09b12e149a14d1dc326  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
*************** ea95f7612f0049e3a94038c123a0e60d  gcc/te
*** 79509,79515 ****
  11fa4323bb0698ed08c441ecf4a9de20  gcc/testsuite/gcc.target/or1k/shftimm-1.c
  4ee88d86fdfbf4d4ea1743897d934830  gcc/testsuite/gcc.target/or1k/shftimm-2.c
  e4f9cf3a5432c52f9f1d2ce9020312c4  gcc/testsuite/gcc.target/or1k/sibcall-1.c
! 0f5eac304486dcced353865e5719c18a  gcc/testsuite/gcc.target/pdp11/pdp11.exp
  0c8183983c697ce3477bebbc537cc9e2  gcc/testsuite/gcc.target/pdp11/pr107841.c
  5e734d4f3084597cb92d1488fd0b9760  gcc/testsuite/gcc.target/pdp11/pr108388.c
  a03b92350a69b724ce16f3b7aa1803d7  gcc/testsuite/gcc.target/powerpc/20020118-1.c
--- 84496,84502 ----
  11fa4323bb0698ed08c441ecf4a9de20  gcc/testsuite/gcc.target/or1k/shftimm-1.c
  4ee88d86fdfbf4d4ea1743897d934830  gcc/testsuite/gcc.target/or1k/shftimm-2.c
  e4f9cf3a5432c52f9f1d2ce9020312c4  gcc/testsuite/gcc.target/or1k/sibcall-1.c
! a6ae8aba2ae7a1867b6b461d590f5d11  gcc/testsuite/gcc.target/pdp11/pdp11.exp
  0c8183983c697ce3477bebbc537cc9e2  gcc/testsuite/gcc.target/pdp11/pr107841.c
  5e734d4f3084597cb92d1488fd0b9760  gcc/testsuite/gcc.target/pdp11/pr108388.c
  a03b92350a69b724ce16f3b7aa1803d7  gcc/testsuite/gcc.target/powerpc/20020118-1.c
*************** af361d9cce9906e7956ed7632c663422  gcc/te
*** 79519,79555 ****
  09142540eea70df1224760101211366e  gcc/testsuite/gcc.target/powerpc/20050603-1.c
  9abe3de5b09268d62289d406cd6ff4a5  gcc/testsuite/gcc.target/powerpc/20050603-3.c
  bc3af82991adbd156bce9e6aa788b9b7  gcc/testsuite/gcc.target/powerpc/20050830-1.c
! cd0f96d09613572877fd9b0a5b9fd2eb  gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c
! 7391c538e01297ede1d1448753a490a1  gcc/testsuite/gcc.target/powerpc/405-macchw-1.c
! bb9cf56403aca9e83abbe5310195fb6c  gcc/testsuite/gcc.target/powerpc/405-macchw-2.c
! 4d31e1190bb5c226b0e67d2e35caa33b  gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c
! 9b62c399eb97cc05e08ecc5b7346322b  gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c
! 192e70602f2fd46ae10a26d2f84cb619  gcc/testsuite/gcc.target/powerpc/405-machhw-1.c
! ce67d60b84dfe6606914353f32c8557e  gcc/testsuite/gcc.target/powerpc/405-machhw-2.c
! c377a1462c554d69ec8d27ad88315d32  gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c
! 9bf9d5c7cf2215cc84b864fd23220c35  gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c
! fa2e1f616a79299627d11f53855da0ba  gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c
! 5d76765a602d567e990449067aa5a969  gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c
! ee9b5ad4bcda42affbd6360b972a54c5  gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c
! a4813925ba3c9405dad93e52c747a490  gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c
! ab5e32296baf58654214e13f4147b368  gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c
! 4bcc3ddd5a3568f18ea58dfa93b07d87  gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c
! a0780321a414172ffa04a168a5061ad1  gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c
! 74cf2362d42dd4cf5dc0a7b745610abe  gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c
! fbe11aae35201583e7f4b84f0abf3330  gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c
! 43d94ce2a255506de7356f7517c45161  gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c
! 28dd28ae03ee7afb984bd716dde9580f  gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c
! 1a538bc1aabf177a9638ff20c6d60cd0  gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c
! 111536cf73dbccec229334bdb597e630  gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c
! 77348b3f9f107dce6c3b88a935edfe62  gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c
! c79e43c9e986c27b3936d61d13f5113a  gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c
! 4143f6131e80be3d9e2420ab3ef61c5f  gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c
! bfa941b1b43971d76fb8c9c406ec2d23  gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c
! 365dd29a6294403f2fbfc73e40a6ae41  gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c
! 6b61eac8c15e0214fa08fb84f8018d0f  gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c
! 095fbcc32415e7378ac3ead409766a0c  gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c
! 19e7a128c41393d1d1e5c86135387ad1  gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c
! 089d4b21d5693fab442251f6f6f038a5  gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c
  0df42d81dd48fa5359efe2a2f643e3ba  gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c
  42e552a9b2cb9c28204c8aa37f779247  gcc/testsuite/gcc.target/powerpc/440-macchw-1.c
  feb604e87c94648f67b2d2c53eb7c4a9  gcc/testsuite/gcc.target/powerpc/440-macchw-2.c
--- 84506,84542 ----
  09142540eea70df1224760101211366e  gcc/testsuite/gcc.target/powerpc/20050603-1.c
  9abe3de5b09268d62289d406cd6ff4a5  gcc/testsuite/gcc.target/powerpc/20050603-3.c
  bc3af82991adbd156bce9e6aa788b9b7  gcc/testsuite/gcc.target/powerpc/20050830-1.c
! bef558722fbaeb12c8faec21ebcb7620  gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c
! 51a6d60b7988870c9eb23ebdaa9d2f78  gcc/testsuite/gcc.target/powerpc/405-macchw-1.c
! c234dcc4622989d81df78017f158724a  gcc/testsuite/gcc.target/powerpc/405-macchw-2.c
! 5f7bb319b3ed00af1bbb350c6660b399  gcc/testsuite/gcc.target/powerpc/405-macchwu-1.c
! a8ec4ce55221380967ff3b35a7666f46  gcc/testsuite/gcc.target/powerpc/405-macchwu-2.c
! d903e683063b989ac0313b4798dd21f0  gcc/testsuite/gcc.target/powerpc/405-machhw-1.c
! 6d44d3385ca1dc2b57c96a8b3aaf8c33  gcc/testsuite/gcc.target/powerpc/405-machhw-2.c
! 32557ddd836f955a88bf1f679835e60a  gcc/testsuite/gcc.target/powerpc/405-machhwu-1.c
! e2211baf4100067328541d9bb04eb18a  gcc/testsuite/gcc.target/powerpc/405-machhwu-2.c
! d24569ffed776b417f2f6d8d93d20465  gcc/testsuite/gcc.target/powerpc/405-maclhw-1.c
! b4ea0e92710dc348d2696915bdf83262  gcc/testsuite/gcc.target/powerpc/405-maclhw-2.c
! 16d1519c819b32f7dd430b29064ed4d4  gcc/testsuite/gcc.target/powerpc/405-maclhwu-1.c
! d0fb8cc197ca3d19f6f99ffd4dbe88a7  gcc/testsuite/gcc.target/powerpc/405-maclhwu-2.c
! f9547afb48d2ea9d81df3127407c35cc  gcc/testsuite/gcc.target/powerpc/405-mulchw-1.c
! 1ccce3d7d06b47d46da587d5ed90d5b2  gcc/testsuite/gcc.target/powerpc/405-mulchw-2.c
! 7b7a596375103849c824e39aa9595c06  gcc/testsuite/gcc.target/powerpc/405-mulchwu-1.c
! 1e20d1533efde0181dcee7557ba26880  gcc/testsuite/gcc.target/powerpc/405-mulchwu-2.c
! 430c83942c433ad64bd76d01e5cd13b1  gcc/testsuite/gcc.target/powerpc/405-mulhhw-1.c
! f8a6cf995fd7687aed3aca2b222f6115  gcc/testsuite/gcc.target/powerpc/405-mulhhw-2.c
! 583946a2710f74484c401fe609891302  gcc/testsuite/gcc.target/powerpc/405-mulhhwu-1.c
! 5b057660e7eae3aaf7901f052a2765d6  gcc/testsuite/gcc.target/powerpc/405-mulhhwu-2.c
! 03ce132f069d2fde14d4434802ce3815  gcc/testsuite/gcc.target/powerpc/405-mullhw-1.c
! a4c5c19e0399529bc1b3feb37ffc51d2  gcc/testsuite/gcc.target/powerpc/405-mullhw-2.c
! 68d5869cd74005c9bf27a5b1ec94055e  gcc/testsuite/gcc.target/powerpc/405-mullhwu-1.c
! e603901c21ba66c5f05731aa7095d86a  gcc/testsuite/gcc.target/powerpc/405-mullhwu-2.c
! f835ffda66b2cfd9c932c6f3e1f61915  gcc/testsuite/gcc.target/powerpc/405-nmacchw-1.c
! 7e77eb3662916a741535be9b181367fa  gcc/testsuite/gcc.target/powerpc/405-nmacchw-2.c
! 391e769446ce28cce7b2d57235358a75  gcc/testsuite/gcc.target/powerpc/405-nmachhw-1.c
! be89e3981099b9a99c2f398717390148  gcc/testsuite/gcc.target/powerpc/405-nmachhw-2.c
! 0c7a32ae322ebadd08e2c27ab4fbeb83  gcc/testsuite/gcc.target/powerpc/405-nmaclhw-1.c
! a5589161d093fc0af6e72cf0b34cab34  gcc/testsuite/gcc.target/powerpc/405-nmaclhw-2.c
  0df42d81dd48fa5359efe2a2f643e3ba  gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c
  42e552a9b2cb9c28204c8aa37f779247  gcc/testsuite/gcc.target/powerpc/440-macchw-1.c
  feb604e87c94648f67b2d2c53eb7c4a9  gcc/testsuite/gcc.target/powerpc/440-macchw-2.c
*************** d7dd10b13ead7dd28166df6e1c6dc071  gcc/te
*** 79582,79779 ****
  967dfb6aeb7e01b68e89ced352769a19  gcc/testsuite/gcc.target/powerpc/440-nmaclhw-1.c
  bb8948b99ee40edd60fac5552a29094b  gcc/testsuite/gcc.target/powerpc/440-nmaclhw-2.c
  5931e32eea29c20bbd53794357f5ebad  gcc/testsuite/gcc.target/powerpc/980827-1.c
  3f8cb7e31c5c7de093b851e9d7eeedc7  gcc/testsuite/gcc.target/powerpc/abs128-1.c
! ec0a9361ffa024b5b72e59797ecc81e1  gcc/testsuite/gcc.target/powerpc/altivec-1-runnable.c
! c441836462a082b52b8df4f3644b8ee1  gcc/testsuite/gcc.target/powerpc/altivec-1.c
! 7594d13b6afbb5788fd3ff108fa1798d  gcc/testsuite/gcc.target/powerpc/altivec-10.c
! 87921f986b2e966c18eb11c96891c323  gcc/testsuite/gcc.target/powerpc/altivec-11.c
! c982986bb8e3c1381b39b73a89ceffa6  gcc/testsuite/gcc.target/powerpc/altivec-12.c
! 21f4460e010cad4fdac5158dd8484518  gcc/testsuite/gcc.target/powerpc/altivec-13.c
! 0b9bf01e28c861e640e6a5a50df72d04  gcc/testsuite/gcc.target/powerpc/altivec-14.c
! 7d113615ba33f8f305ca3d6dbaf84dd3  gcc/testsuite/gcc.target/powerpc/altivec-15.c
! 11c64f0deba1e4621429dc584ee88ae4  gcc/testsuite/gcc.target/powerpc/altivec-16.c
! 185ea70c33583036bd31cdc573947c3a  gcc/testsuite/gcc.target/powerpc/altivec-17.c
! 340ead8fcad4b53652916ead19c7fdd0  gcc/testsuite/gcc.target/powerpc/altivec-18.c
! 49786113fcbc4891acce995d7b682bd9  gcc/testsuite/gcc.target/powerpc/altivec-19.c
! bfedc8264e553b108c38d913b203384d  gcc/testsuite/gcc.target/powerpc/altivec-2-runnable.c
! 61ff3467149ed3837c58c54416b2a830  gcc/testsuite/gcc.target/powerpc/altivec-2.c
! a01b4ba9613a62e5269a134ef0141cac  gcc/testsuite/gcc.target/powerpc/altivec-20.c
! 3bb8802689d0e131eeb4dc94f557b828  gcc/testsuite/gcc.target/powerpc/altivec-21.c
! 5ccb812b8d94f245a36d69f884a2a0cd  gcc/testsuite/gcc.target/powerpc/altivec-22.c
! 6678f6279bc9718ee35ee4ca8da766e0  gcc/testsuite/gcc.target/powerpc/altivec-23.c
! 507e65b8506bbce30e0d952cfad15d02  gcc/testsuite/gcc.target/powerpc/altivec-24.c
! aab9b117197360a6f6d1bd5b67d1da17  gcc/testsuite/gcc.target/powerpc/altivec-25.c
! 9d594ff461ceee1f15a8b08711cc83e6  gcc/testsuite/gcc.target/powerpc/altivec-26.c
! 9770c08339c825ee152d9d1161cacbde  gcc/testsuite/gcc.target/powerpc/altivec-27.c
! ba2853eb8abfe3cb584eba584d6c8a5f  gcc/testsuite/gcc.target/powerpc/altivec-28.c
! 87506fe3a76e6a4c8b55fd4ce76e3c5b  gcc/testsuite/gcc.target/powerpc/altivec-29.c
! 2a14d705eb3f74b332634c83b6ec427a  gcc/testsuite/gcc.target/powerpc/altivec-3.c
! 1d8dc083405dd8dcbb30b06dc53cec85  gcc/testsuite/gcc.target/powerpc/altivec-30.c
! 15b501be4c373b336da28a58e84d0f93  gcc/testsuite/gcc.target/powerpc/altivec-31.c
! 5611b822073e859e7e9e927415130fd9  gcc/testsuite/gcc.target/powerpc/altivec-32.c
! 26c1a163569afe23696923beafdfa120  gcc/testsuite/gcc.target/powerpc/altivec-33.c
! ccdffa66434da57284425d73d80f6992  gcc/testsuite/gcc.target/powerpc/altivec-34.c
! 509e8e216f34e89d6007e3ca495dbeee  gcc/testsuite/gcc.target/powerpc/altivec-35.c
! 3a766e7fcc9f7a590ca459ef72986b86  gcc/testsuite/gcc.target/powerpc/altivec-36.c
! 27b1409c92e2aae17462c5880eb9980e  gcc/testsuite/gcc.target/powerpc/altivec-37.c
! a007efc316dcfa1327d38adb2feca1d8  gcc/testsuite/gcc.target/powerpc/altivec-4.c
! 2586491d3f0993007b6292363a62437c  gcc/testsuite/gcc.target/powerpc/altivec-5.c
! 9304d8abe305f6069344f238eecabcc1  gcc/testsuite/gcc.target/powerpc/altivec-6.c
! daae23b0a5fd15db7118ed9096d8808f  gcc/testsuite/gcc.target/powerpc/altivec-7.c
! 3b775cfada4a412a8209544bafd90f12  gcc/testsuite/gcc.target/powerpc/altivec-8.c
! 344ee7e5df617a76788873f981090de7  gcc/testsuite/gcc.target/powerpc/altivec-9.c
! a6cf4dfc1e0f3ea252ad2bc0e93a9c65  gcc/testsuite/gcc.target/powerpc/altivec-cell-1.c
! a0e560e56bf1611760575d6fab16e0c8  gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c
! 90375d0e24e0a3fefa075f5fcb9d7f65  gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c
! 6fd5f0d7921e91819a6ce50ff932f819  gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c
! cc9ef742610f22a59244e4dadcfabb8e  gcc/testsuite/gcc.target/powerpc/altivec-cell-5.c
! 162aa77956c5a49ab6ce65c401815208  gcc/testsuite/gcc.target/powerpc/altivec-cell-6.c
! d949d65d8231a5496c3c05d5f03fa82c  gcc/testsuite/gcc.target/powerpc/altivec-cell-7.c
  a6d2617bc03a85ed4eb3d388e512d000  gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c
! 6150cee0c289102bed3a8903245be7b8  gcc/testsuite/gcc.target/powerpc/altivec-consts.c
  be6b363c91d027b02dedb5ba100c02f8  gcc/testsuite/gcc.target/powerpc/altivec-ld-1.c
! 2a932408f123eade24387b931860ef9f  gcc/testsuite/gcc.target/powerpc/altivec-macros.c
! 6644929740c819648f0e7c5223035282  gcc/testsuite/gcc.target/powerpc/altivec-perm-1.c
! 1ada2df7c2add0bec64338812ac2b0bd  gcc/testsuite/gcc.target/powerpc/altivec-perm-2.c
! 897e92f2f613d1b6bbe492adf72c74c3  gcc/testsuite/gcc.target/powerpc/altivec-perm-3.c
! e93ba710909870214aa19f34f632d067  gcc/testsuite/gcc.target/powerpc/altivec-perm-4.c
! 23da645e0f4f73f8ce9c211a3319f80c  gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c
! 4a776196d75e283b54c3d66265ee6e60  gcc/testsuite/gcc.target/powerpc/altivec-splat.c
! 274ab71b08925c6ca759f1dfa1c04c09  gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
! 7263da6aee0d862b959ff54189189998  gcc/testsuite/gcc.target/powerpc/altivec-types-2.c
! 60bbd202ee54805828db71746a8ebb9e  gcc/testsuite/gcc.target/powerpc/altivec-types-3.c
! 964129e823a392ae74853b0ca2afba70  gcc/testsuite/gcc.target/powerpc/altivec-types-4.c
! 4295f24ac801b25ff384e9c0059dc3f0  gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
! f12268642caf2b8f80bf48e0b7f5bd87  gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
! c1ad5df368bf78f67f3b4c15cbe1c757  gcc/testsuite/gcc.target/powerpc/altivec-volatile.c
! 541dc69590a0abf3cefd6043e9b408fe  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
! 70f3b3f2a0f6da1f6a9709a6730b94e1  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
! 78b43fbb636e2c4e1261932aa23bd93b  gcc/testsuite/gcc.target/powerpc/amo1.c
! 0c6ecf2966a9aa40a6bc3399dd2d04ce  gcc/testsuite/gcc.target/powerpc/amo2.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
  f1f6a9ec080c7f1554b538d5701c21e2  gcc/testsuite/gcc.target/powerpc/asm-y.c
! a61d22c62275401f65d76e3818f74bbf  gcc/testsuite/gcc.target/powerpc/atomic-p7.c
! 3f86f30f7ffe0f4035628d8050eb6765  gcc/testsuite/gcc.target/powerpc/atomic-p8.c
! fb94226f27cdbd518c3f6b173ae323b5  gcc/testsuite/gcc.target/powerpc/atomic_load_store-p8.c
  07065d69128eacb3acf282a9773e8740  gcc/testsuite/gcc.target/powerpc/attr-aligned.c
  f7e7c3525d555350473e6eaeb20a763c  gcc/testsuite/gcc.target/powerpc/avoid-indexed-addresses.c
! d5a3520388a5d684298f2ecede66ab11  gcc/testsuite/gcc.target/powerpc/bcd-1.c
! 663ffe280faaaa15a1bf0e4ceea66882  gcc/testsuite/gcc.target/powerpc/bcd-2.c
! ad416b1bc3631ec113317ff4797e7b68  gcc/testsuite/gcc.target/powerpc/bcd-3.c
  e9c15b11a9e28ae240ca11139e5a1d35  gcc/testsuite/gcc.target/powerpc/bcd-4.c
! e42b37391357b061ee449151cc226195  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
! 4d4ea850794ecc2bff358e435c922017  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
! d8b41e13e15f7760822334a68a919e03  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
! f88d7e82401d466c084c77030abefd1f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
  f3194996966558e148459eaa19051680  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-3.c
  e65d59f4230e9c53f54d63868e8239f0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-4.c
! 8c73f6a6854b1f18893d2d71b60a0c53  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c
! f115c23658b84e22dc0275e87f40677d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c
! 5afd13872ecb4be4a505674fe5fb3edf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c
  e683c8a7971e2663faec07c2adf73a60  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-3.c
  de7e9257dd76fa5ff8b2a725f59c4640  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-4.c
! f66cd0179a470c6eaa6c28c349c89e39  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c
! a7e4aa5ade4ce564c2e2bb7c671d18f8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c
! 92cd430f17adc5a13001e8bc985fdffc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c
  6c310aa6c58d8c6938112a1dbb9467d6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-3.c
  51d470609b66a5e163f94dc06ca31193  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-4.c
! a4cf7bab083771b0485b3395857b713d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c
! 110d1bd18122b11f61e77e94001d99f2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c
! ac96b620ebf91488c0be68809cdb7867  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c
  6760aca75fd126c5043ff61b318f5faf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-3.c
  a395db7849f7521757d13b7076de3bf4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-4.c
! af22569af5f27eaa2951993ffebfba38  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-0.c
! aab03e2c61d64183d574dba36b64cd73  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-1.c
! e20a8cbbfedb0b2128556dcc2852e3de  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-3.c
! 935e685c189249517f674b77c05ebd73  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-4.c
! 29e9c62cd33543f6b55de619478c8994  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-5.c
  b1d87b31aec755b7f34c69f34d40a60c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-6.c
  47d9d99579f3f793b40d85f161d1b909  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-7.c
  97a04a40b19de84e23a7d0d6a9e2ac53  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-8.c
! 2778f9626d925e7e0180e0502d2fb07f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-0.c
! 978e0e8ef05f985c62ef9c4daba0777e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-1.c
! 3349df171c9d493ecb7cce98df029a43  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-2.c
! 0db685c4301f82439bda6c7d80908e2d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-3.c
! 1af5750016beab55a2ed9d94f2b528e0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-4.c
! c1d175b2c420f58c32b99129a1a33121  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-5.c
  e169ab406b7b001eadf4f6c765083374  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-6.c
  02ba0234cb987da71cba3c0fa7d5e281  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-7.c
  40fe593d2d553dfc3564539eb712eb27  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-8.c
! e7e61b8b3c42bb083b4f912dfc7f03a1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-0.c
! 3ea26b9cbbee12550414bcfcd66bdfc3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-1.c
! 858bacb179d37b0d03fad286adb3fa8a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-10.c
! e24eb3ee98f145f4e3497d543b541274  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-11.c
  90af6fac9ab61445c743aa08fdbd43e7  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-12.c
  081926bbfdea1e7084a2f0f2e7d445be  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-13.c
  0e752a1b501c034b208c1e3d49f06616  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-14.c
  08349a2992fbc7e6aad40d5b73773654  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-15.c
  3138d49030f5334565730a6e1c7d6014  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
! 7f2cb2bd5de57370c820bc77aee1eb1d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-2.c
! 25c7ded73efcdb0d5c1f9753af409911  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-3.c
! 25ce42d7c54491e79b717d381ea20673  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-4.c
! 14b2e87d55aadf3cb7fa5b5a7cb027ee  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-5.c
! 58a25f629026a64fc687a827ef0321d2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-6.c
! cb86398a6b0a1d62eaae39a24709124c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-7.c
! a02217293da92756277ce4cb554e7986  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-8.c
! 0cdffe36064c676de8d7bb237a28c557  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-9.c
! 2ef8a47084e3cb9cd6fbf708fb3e594d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-0.c
! b76bb5f4a3e12db749a6eb9f341fd292  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-1.c
! a83ed27c4d38c883111a238df02140b8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
! 6a01a023d4c30c8c13b39f9449e125a4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-11.c
  acab18328795beb684d3fb0230912659  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-12.c
  8b151022a0fe9b76fc734fa235c42dd5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-13.c
  5a55d694383ea42c65a0e734a08fde15  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-14.c
  72332bb8f78bdc43c6f1a8dc5cf11687  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-15.c
! 5cd8f1c4652747917c65f4e02bb01a07  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
! fb6a3af1a9e9b444930077025bf38b1d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
! 26f24d4e01845ed4877d88a65b6ace69  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
! d370bfa1f33a010bba8fc5acec886cc1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
! 3114deb43e7a0c2b7e20d15a7bcc0140  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-6.c
! da9d8e3fd34dca1885229b453d21a059  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-7.c
! 17f5e310580392fa96c7bfb381875bc3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-8.c
! 27b759ecb11615f735c94db2f9d2ac0b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
! a846dbe3d7330ed034d44422793d81ec  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-0.c
! 5025c303ae60364ab443a463a022addc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-1.c
! 4edde884fbe3303e62496cc6f250bd49  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-2.c
! 3440c84f3906024c4c5186714529b34f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-3.c
! 9f3b009cdddd8a426cc5b05bd96b0e95  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-4.c
! 562ab540eb628ab21eae00da3ceb6432  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-5.c
  a17c0089fe2acabf4baa27c99b4c3f90  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-6.c
  5af1cb0aa09a5184a2286fbdabe56fcd  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-7.c
  c5a6e3698c21f2484a57892ba8b6b9bc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-8.c
! fb91b3b340af7b0ec96044a26eeeec2a  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-0.c
! 8342f493b61229b28a7bbee99b694e3c  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-1.c
! 4c7bb9fd3765d5e15d6fcce82f21c70b  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-2.c
! 47e98d12cf9aefb39f03cf69c58f4b93  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-3.c
  6964326ee586ff73807b31f0836b6a31  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-4.c
  c6f0caa8323885ac25f4591ea0c476b2  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-5.c
! 6a3d14e0e85bae829e4c3a3e0f7ae1e7  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-0.c
! 3d863d86fc7bf494461ec9c996b99ca3  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-1.c
! ed0592bc039c782881f4c79e86995039  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-2.c
! 6370d2be0119ef252cf0ffa5279cde5a  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-3.c
  a7f6df10c58a67ec848748b251fc5a55  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-4.c
  ed135f29b9cf6f4548c4fa15629037c9  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-5.c
! 9c519c8736d5e25986e38a1a19143667  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-0.c
! e361a079171f4d86b221dcd2b94e4c21  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-1.c
  7eb9a104877d676ddb188a8ca2c66ac5  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-10.c
  1277d1d55236a9362f4167b96415f161  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-11.c
! 7435eb2a74834134693342fb8678632d  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-2.c
! f14d42509752e0f1ba3929fb9866bde7  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-3.c
! e51240c3fd6dfde0145ba26289f36c21  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-4.c
! 117d7bf274442357b26eaca0a4283a75  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-5.c
! 6105665385308d3591fc7409fae4f10e  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-6.c
! 4987d4d0efbde309b9b358b3b93ed892  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-7.c
  cdef3cfa6f1fc28b9394eded23882e43  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-8.c
  e91eb5ed9d8099ff6d41f39f157a6d53  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-9.c
! 039feca9192eb2d375cac1ae71a19e16  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-0.c
! 310e03cb1f1975b9c9a4b7804f6ce93d  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-1.c
! c579d072dfb724687f01f4381faa9168  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-2.c
! d414d95b9a1ae278635ff37b90562d45  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-3.c
! c2c685a9599ea64b9ddfebde78f249a1  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
! b5df8247364220dbad02fbed385b59d1  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
! c75e1561e8e8d2989166d3dd12728816  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
! c2545479d8426b90a36addecfee41ccf  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
  f6ef2287686b07dd4ad99d21b7aabe54  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-8.c
  97cdb1e602cc1725a6ed7cf35b9a5254  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-9.c
  cb18f5be95ab3fbf67fc1c5e4ef5ba2b  gcc/testsuite/gcc.target/powerpc/block-cmp-1.c
--- 84569,84768 ----
  967dfb6aeb7e01b68e89ced352769a19  gcc/testsuite/gcc.target/powerpc/440-nmaclhw-1.c
  bb8948b99ee40edd60fac5552a29094b  gcc/testsuite/gcc.target/powerpc/440-nmaclhw-2.c
  5931e32eea29c20bbd53794357f5ebad  gcc/testsuite/gcc.target/powerpc/980827-1.c
+ 9938ed030cece2cf20550a62ffe03b68  gcc/testsuite/gcc.target/powerpc/abd-vectorize-1.c
+ 839d34e1f1592bf45cfe5b598846b517  gcc/testsuite/gcc.target/powerpc/abd-vectorize-2.c
  3f8cb7e31c5c7de093b851e9d7eeedc7  gcc/testsuite/gcc.target/powerpc/abs128-1.c
! 49eb45ddbbc137e8692612bbe8958966  gcc/testsuite/gcc.target/powerpc/altivec-1.c
! d71351ecab256bb9c7162016a5087dd9  gcc/testsuite/gcc.target/powerpc/altivec-10.c
! a5a1d544c1a4460222f01fc318321eea  gcc/testsuite/gcc.target/powerpc/altivec-11.c
! 41ce70d27f1b1d16e71770414f3cc82c  gcc/testsuite/gcc.target/powerpc/altivec-12.c
! 1525a8d8af7cb7c1ab355ce7b3bcff37  gcc/testsuite/gcc.target/powerpc/altivec-13.c
! 7cd484491b3e90361ac5e403e977a758  gcc/testsuite/gcc.target/powerpc/altivec-14.c
! c814b0fc7ca6642d8d7e25268d034a46  gcc/testsuite/gcc.target/powerpc/altivec-15.c
! 8a48cbc4a727cb3ac622f4b8d2cc4884  gcc/testsuite/gcc.target/powerpc/altivec-16.c
! 051b8b497f771edf9691db1dd4befc73  gcc/testsuite/gcc.target/powerpc/altivec-17.c
! a3f285fd8921196a8b36ae956a3ea869  gcc/testsuite/gcc.target/powerpc/altivec-18.c
! 695fde7696f810fc9eb628653618e429  gcc/testsuite/gcc.target/powerpc/altivec-19.c
! bd7f8f6f83dc96d23d7e7f178d0b3499  gcc/testsuite/gcc.target/powerpc/altivec-2.c
! f050e99ad67bb67298b4d461ba5b1085  gcc/testsuite/gcc.target/powerpc/altivec-20.c
! b2c48f05cd18782f7d9b49f6b0bf0041  gcc/testsuite/gcc.target/powerpc/altivec-21.c
! 75f269de2e1e15dd02521a87588f8449  gcc/testsuite/gcc.target/powerpc/altivec-22.c
! 4caf84c4773ca3e7878ab892e165a745  gcc/testsuite/gcc.target/powerpc/altivec-23.c
! 7461e388c3480603eed37257bdb6dfe0  gcc/testsuite/gcc.target/powerpc/altivec-24.c
! b2e58a9514dd32e11a5b10076e030695  gcc/testsuite/gcc.target/powerpc/altivec-25.c
! 03507a0df08f4a8934ec62995541060b  gcc/testsuite/gcc.target/powerpc/altivec-26.c
! 0b7902c713861a23dc16bddd97e6b3c8  gcc/testsuite/gcc.target/powerpc/altivec-27.c
! 72e1a538f56834410cbf1a3e8dffa97c  gcc/testsuite/gcc.target/powerpc/altivec-28.c
! e837be940142636f15dd2d61811d5aa6  gcc/testsuite/gcc.target/powerpc/altivec-29.c
! e436701adacedc1fcd69ee9b559ccfca  gcc/testsuite/gcc.target/powerpc/altivec-3.c
! 5664d986459561aa7e5fd66cb37b69e8  gcc/testsuite/gcc.target/powerpc/altivec-30.c
! 6f579808b2057235f0713630b7f8c2af  gcc/testsuite/gcc.target/powerpc/altivec-31.c
! f4f552e021ab8e9edb5d3f5ce6c2c692  gcc/testsuite/gcc.target/powerpc/altivec-32.c
! 33a1af8b0581f290712650cb16880056  gcc/testsuite/gcc.target/powerpc/altivec-33.c
! 23af68b4b24524a7ac915b2e453fac5c  gcc/testsuite/gcc.target/powerpc/altivec-34.c
! 6a4371937673a51c39cfd7913251e450  gcc/testsuite/gcc.target/powerpc/altivec-35.c
! 0358bd6b6d9026b7106a2c0fc23a5544  gcc/testsuite/gcc.target/powerpc/altivec-36.c
! 02c1bcad3765ae68d8ec7bfe9875a2e6  gcc/testsuite/gcc.target/powerpc/altivec-37.c
! e01a26162f79a45ee3152f7609bcfe19  gcc/testsuite/gcc.target/powerpc/altivec-38.c
! 5490fa5b1e09db93500975463354a85d  gcc/testsuite/gcc.target/powerpc/altivec-4.c
! a298b5969878a1bae69eb5e5399c7aee  gcc/testsuite/gcc.target/powerpc/altivec-5.c
! f0f42e956278c7c67492e6ed17ba2bce  gcc/testsuite/gcc.target/powerpc/altivec-6.c
! cf42ead531e4ec36b5557acf5e2b7475  gcc/testsuite/gcc.target/powerpc/altivec-7.c
! 6890ded0187d9781d043d4c73fc00680  gcc/testsuite/gcc.target/powerpc/altivec-8.c
! 9fa51e4abb416a7098af06427b36985c  gcc/testsuite/gcc.target/powerpc/altivec-9.c
! 9cd0d1987a7cb567afb814a1447f36ce  gcc/testsuite/gcc.target/powerpc/altivec-cell-1.c
! 8b6712430ccc0face5d472b06ea351b0  gcc/testsuite/gcc.target/powerpc/altivec-cell-2.c
! 871131f242c3ae9a08a1fb1514a1d589  gcc/testsuite/gcc.target/powerpc/altivec-cell-3.c
! 00300730fd1ce63138e82f83dcbce117  gcc/testsuite/gcc.target/powerpc/altivec-cell-4.c
! 796a238136356c33384b352af01f936d  gcc/testsuite/gcc.target/powerpc/altivec-cell-5.c
! ac682aad7c1e16a14db9625bec1fec2e  gcc/testsuite/gcc.target/powerpc/altivec-cell-6.c
! 42eefa4a3399f1fcafebea835e217af8  gcc/testsuite/gcc.target/powerpc/altivec-cell-7.c
  a6d2617bc03a85ed4eb3d388e512d000  gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c
! 6e1162f8a02c63b77a1dcf5b1f82bb96  gcc/testsuite/gcc.target/powerpc/altivec-consts.c
  be6b363c91d027b02dedb5ba100c02f8  gcc/testsuite/gcc.target/powerpc/altivec-ld-1.c
! 7c82cdea29d027fff53730a98600623c  gcc/testsuite/gcc.target/powerpc/altivec-macros.c
! 5f466c3ffef39c1b00fdff4a9e7e0d4b  gcc/testsuite/gcc.target/powerpc/altivec-perm-1.c
! 2cc8def326627fdeb014c4aeb42efaf6  gcc/testsuite/gcc.target/powerpc/altivec-perm-2.c
! a95bc757b63e6f538028cd7a8587fa06  gcc/testsuite/gcc.target/powerpc/altivec-perm-3.c
! 9d1c6e66d1d43d048886a4f3bf93f89b  gcc/testsuite/gcc.target/powerpc/altivec-perm-4.c
! 7f670734e7699ce53a311790477e6796  gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c
! 7c422bf67b2757aa7dba49cf25672807  gcc/testsuite/gcc.target/powerpc/altivec-splat.c
! 98507ac781fd7e6ab59864a923e8aa53  gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
! 11a551fb772eadd96d3545621141102d  gcc/testsuite/gcc.target/powerpc/altivec-types-2.c
! f4234f45dd7ad6d711466e33457b0cc0  gcc/testsuite/gcc.target/powerpc/altivec-types-3.c
! b26d289b049a7ec0f9c609e457ff9d92  gcc/testsuite/gcc.target/powerpc/altivec-types-4.c
! 75e91fd9b8699beda94b43261c20cc83  gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
! 245fdc8b1ca04e2e37367005750236a7  gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
! 98c68b2528d4d674ad062a61f4840e92  gcc/testsuite/gcc.target/powerpc/altivec-volatile.c
! 7d24740dc05dddf85a45056ca4204b52  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
! 702fff490ab3a8d9a47f188cff688e7c  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
! ed343c63973b66c0e986170ee496a1bd  gcc/testsuite/gcc.target/powerpc/amo1.c
! 523510347699205aba59cb836c38573b  gcc/testsuite/gcc.target/powerpc/amo2.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
+ 378c09d3dfb95c75b49eec1d5713dd6b  gcc/testsuite/gcc.target/powerpc/asm-redzone-1.c
  f1f6a9ec080c7f1554b538d5701c21e2  gcc/testsuite/gcc.target/powerpc/asm-y.c
! 684c6b7214e8eb80af0a5566f5c6625e  gcc/testsuite/gcc.target/powerpc/atomic-p7.c
! a1e34f33a8559cb3a972cf21055b24f7  gcc/testsuite/gcc.target/powerpc/atomic-p8.c
! 1e77db6247accab654b1c4151f30c1be  gcc/testsuite/gcc.target/powerpc/atomic_load_store-p8.c
  07065d69128eacb3acf282a9773e8740  gcc/testsuite/gcc.target/powerpc/attr-aligned.c
  f7e7c3525d555350473e6eaeb20a763c  gcc/testsuite/gcc.target/powerpc/avoid-indexed-addresses.c
! be590d32c282fed1e0d1751f1c81c2c8  gcc/testsuite/gcc.target/powerpc/bcd-1.c
! dbe76ac6769f9ee934efe94654e3c07f  gcc/testsuite/gcc.target/powerpc/bcd-2.c
! 86b20021f5166a06ea14142c33cda0ee  gcc/testsuite/gcc.target/powerpc/bcd-3.c
  e9c15b11a9e28ae240ca11139e5a1d35  gcc/testsuite/gcc.target/powerpc/bcd-4.c
! 7885e92cbd39c1649fdeb1afd6bb2a4a  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
! 16f934a29b6b6d992ffd761c07df6a2e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
! 5316cdbcd3a2ad409d467fc9670a6ccc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
! 536f6c9b5ee2b0e5e55d4fbbd5b23cc3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
  f3194996966558e148459eaa19051680  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-3.c
  e65d59f4230e9c53f54d63868e8239f0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-4.c
! d11907163814d159c9682a7c2544e0ad  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c
! 4eb442b48859baba9cf6946a93da8a4a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c
! d8613fc75f857a5543049d44620721f8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c
  e683c8a7971e2663faec07c2adf73a60  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-3.c
  de7e9257dd76fa5ff8b2a725f59c4640  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-4.c
! 326f6917724e1049dc8e326ca000b95a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c
! 42e6e4bcae69961858fdcaf0ed0b7e2d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c
! d5b886deb36addc63f2b9f06de45777a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c
  6c310aa6c58d8c6938112a1dbb9467d6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-3.c
  51d470609b66a5e163f94dc06ca31193  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-4.c
! 710f8b61e857849192539d548609c7eb  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c
! 37c4f7a04b5658f5d8cbe27840cb95da  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c
! 7e44643b26a4a6c91cbfc3a29cf3c404  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c
  6760aca75fd126c5043ff61b318f5faf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-3.c
  a395db7849f7521757d13b7076de3bf4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-4.c
! 7c8ae9956c52daefddecceff496cce84  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-0.c
! 4717fe4beb125d52dcd0b41bea75d29f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-1.c
! acbb0d21fb3344421fbc7fb717887c4b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-3.c
! 31da61636b07eafcd3ab2fdc49c08f72  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-4.c
! f628f6a853b1a3af40b1f83b264af2a0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-5.c
  b1d87b31aec755b7f34c69f34d40a60c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-6.c
  47d9d99579f3f793b40d85f161d1b909  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-7.c
  97a04a40b19de84e23a7d0d6a9e2ac53  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-8.c
! 9a7731809901d7219292bcd95e0e6787  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-0.c
! a15ad87600ddc068356215c6d09ddf98  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-1.c
! a0e6a8eadff62d2f3afc4feca0c322d4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-2.c
! 1261596fb772ee57efe39c73d9c273c8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-3.c
! a48a2553b48bf3525b2ab91d34bb01fc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-4.c
! 140569b4cd31d5e269b246a0759016f3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-5.c
  e169ab406b7b001eadf4f6c765083374  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-6.c
  02ba0234cb987da71cba3c0fa7d5e281  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-7.c
  40fe593d2d553dfc3564539eb712eb27  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-8.c
! 95e7b4152c6d0fa124ceffdc1607deaa  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-0.c
! 70406c58a077434740acd1611872b4f2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-1.c
! b45bcc063536008e90a08ec40d9a0dfb  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-10.c
! ef8634db77491407b0c87e1f4d186e8e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-11.c
  90af6fac9ab61445c743aa08fdbd43e7  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-12.c
  081926bbfdea1e7084a2f0f2e7d445be  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-13.c
  0e752a1b501c034b208c1e3d49f06616  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-14.c
  08349a2992fbc7e6aad40d5b73773654  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-15.c
  3138d49030f5334565730a6e1c7d6014  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
! 05fc4dc4d69712761af7debf649761d6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-2.c
! 12741952d55c0cf8e1193e7ab2ea231d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-3.c
! 1996cbc7c8a38e7d471355eca166fff4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-4.c
! 0fbc4b0810f98cc34cf7c972865c083c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-5.c
! 1f779eff95ad9bb896880d5aecd2970e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-6.c
! 6fe2a3d0df0d90c8606e5b18e74c8e64  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-7.c
! 48d82edd13c0d8bff57d2f1184caa2e1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-8.c
! 87583de9516781ca619ac2e4dc56e9ab  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-9.c
! 46d66858d3fcd1e52a0009ff62862411  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-0.c
! ad06b5fe8d33b00e5b2c9c8ca12e3168  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-1.c
! 745c9697e2d65dce6da15dd74afbf7ff  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
! ad82e51b1a711e9a31f20d4d329f556b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-11.c
  acab18328795beb684d3fb0230912659  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-12.c
  8b151022a0fe9b76fc734fa235c42dd5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-13.c
  5a55d694383ea42c65a0e734a08fde15  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-14.c
  72332bb8f78bdc43c6f1a8dc5cf11687  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-15.c
! 4007612c77e40715c2fa5c4e6c347b1e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
! 5b39f327c13d46f7e556d92774e4d561  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
! ff3c677ad3c6b6131e00a93feeeb55e6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
! 2005d2cff6a7c5408e24fe7f469eb19f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
! bf14199a67069657554d096b07179b33  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-6.c
! 5e6f585feefab9c8807ad49caa4e3556  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-7.c
! ab5e5941bae2b4a7478a12c59410af3d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-8.c
! 9954d15ef83fc661ceff84bd9989b3de  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
! 96e54ce42c118fd3fdc45881dd99ea5d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-0.c
! 16044184f8ea80ebfa538b4107d28a12  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-1.c
! 50d9d4788cd443171fcfedbc9dba8aec  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-2.c
! 9de25903b52d8b20df5e8b26f7114aaa  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-3.c
! ca41ca49cf5191be271e2f368089c0e9  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-4.c
! 7767cbd682063be26f6a6874f546e101  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-5.c
  a17c0089fe2acabf4baa27c99b4c3f90  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-6.c
  5af1cb0aa09a5184a2286fbdabe56fcd  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-7.c
  c5a6e3698c21f2484a57892ba8b6b9bc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-8.c
! f4820accb02911a6fab4dea48b3d53bc  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-0.c
! 59b41b49d2169bc07ee365251eb48f51  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-1.c
! 88252fd30527f25bad5bf6b314290fba  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-2.c
! a5ef53b3e1cb370adc5334760934389f  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-3.c
  6964326ee586ff73807b31f0836b6a31  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-4.c
  c6f0caa8323885ac25f4591ea0c476b2  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-5.c
! 497c59bfdee0f806335656a29abb8479  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-0.c
! f2768cb525a8f4829abb9321edfe9122  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-1.c
! f8d5430af4233795875088726a09d900  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-2.c
! 6c7bdc2537219f5999a27fe151967879  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-3.c
  a7f6df10c58a67ec848748b251fc5a55  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-4.c
  ed135f29b9cf6f4548c4fa15629037c9  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-5.c
! 8984cd5946ee76cfe4d0273c40048231  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-0.c
! 1e62fba1dfd888d141d92ca6d972bea9  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-1.c
  7eb9a104877d676ddb188a8ca2c66ac5  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-10.c
  1277d1d55236a9362f4167b96415f161  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-11.c
! 56fa51398fa666c61e3866950303d7d9  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-2.c
! 538ab1a9686d5127a35b37d989f3d8b8  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-3.c
! c361d45abfbceb3a4cd4dfefe1ca6fe7  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-4.c
! 910989c14e9378c788747b102354ac34  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-5.c
! b32d9d753130e14d27129b904c19d837  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-6.c
! 364ab2199c87e99c6fb4a487b3dd5513  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-7.c
  cdef3cfa6f1fc28b9394eded23882e43  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-8.c
  e91eb5ed9d8099ff6d41f39f157a6d53  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-9.c
! 721571b6a96da6d27fa1ef8730b3363f  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-0.c
! d29767415705200cbe3becb9c1319f7d  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-1.c
! 6dfb6026bd1d2b9077d6f8852efc702f  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-2.c
! d06e6041c3d48c094d4e08859b5f222b  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-3.c
! 5197d6971f161d910d1ad014d6fc2ebc  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
! f68f5e205c2ab98f6b159b1d87d68921  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
! 9e3555367e3cc8169019d543845501b3  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
! 5381d41030089fcd9820d9e503c1ee75  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
  f6ef2287686b07dd4ad99d21b7aabe54  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-8.c
  97cdb1e602cc1725a6ed7cf35b9a5254  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-9.c
  cb18f5be95ab3fbf67fc1c5e4ef5ba2b  gcc/testsuite/gcc.target/powerpc/block-cmp-1.c
*************** cb18f5be95ab3fbf67fc1c5e4ef5ba2b  gcc/te
*** 79781,79786 ****
--- 84770,84776 ----
  c46592d7ef2d4d65a6e7d37781eb6aa8  gcc/testsuite/gcc.target/powerpc/block-cmp-3.c
  27f0261afae3e1d9a6470641dcf8cf23  gcc/testsuite/gcc.target/powerpc/block-cmp-4.c
  47ac68f4cf1fb91de16644ace1749dd7  gcc/testsuite/gcc.target/powerpc/block-cmp-8.c
+ 6ca72bb96e1e039c04bfc616836714ed  gcc/testsuite/gcc.target/powerpc/block-cmp-9.c
  d71e4fffd67fe9a02068065c31f40a8c  gcc/testsuite/gcc.target/powerpc/block-move-1.c
  acce3a59dc7d4ef94160abede8f06c07  gcc/testsuite/gcc.target/powerpc/block-move-2.c
  d8aa673b60fb5339ddbce0e63fdee95e  gcc/testsuite/gcc.target/powerpc/bmi-andn-1.c
*************** beeee58dc54e517ac38855a0e08962de  gcc/te
*** 79810,79825 ****
  d57d37595aa7af4c7c5933b2b1729426  gcc/testsuite/gcc.target/powerpc/bmi2-pdep64-1.c
  992f0d1ac42bcb51b5c49cbc7c11a4d8  gcc/testsuite/gcc.target/powerpc/bmi2-pext32-1.c
  4bbf331f9d2418b84d52b8ffbf0f787f  gcc/testsuite/gcc.target/powerpc/bmi2-pext64-1.c
! 9c2efe3103d9409a69ff0f1f54669536  gcc/testsuite/gcc.target/powerpc/bmi2-pext64-1a.c
  8b94a94a7dff0052358065a48eaa4f9f  gcc/testsuite/gcc.target/powerpc/bool.c
! 5521289284db49315d6d88073191998f  gcc/testsuite/gcc.target/powerpc/bool2-av.c
! b6fda7c87285b3acb89db046fdcdfc99  gcc/testsuite/gcc.target/powerpc/bool2-p5.c
! 7c74c0481903fa596fda2347746f680e  gcc/testsuite/gcc.target/powerpc/bool2-p7.c
! 24b4435c955211e51ffa8fc193c12035  gcc/testsuite/gcc.target/powerpc/bool2-p8.c
  c9f98da2825e699344ef8948cd8d19fa  gcc/testsuite/gcc.target/powerpc/bool2.h
! 37bd9c01fed3fee4028301f75be4af36  gcc/testsuite/gcc.target/powerpc/bool3-av.c
! 08a9ed953f979a242c144dc324a10243  gcc/testsuite/gcc.target/powerpc/bool3-p7.c
! 358686fb2ca0a8c3aff1cc3d05902701  gcc/testsuite/gcc.target/powerpc/bool3-p8.c
  438f4e658462567e81a685ced3c5a415  gcc/testsuite/gcc.target/powerpc/bool3.h
  3493bdc771b9bce44627e8e680b7ec82  gcc/testsuite/gcc.target/powerpc/bswap-brd.c
  13eb8866848667a4deb9edc6aa321b7a  gcc/testsuite/gcc.target/powerpc/bswap-brh.c
--- 84800,84815 ----
  d57d37595aa7af4c7c5933b2b1729426  gcc/testsuite/gcc.target/powerpc/bmi2-pdep64-1.c
  992f0d1ac42bcb51b5c49cbc7c11a4d8  gcc/testsuite/gcc.target/powerpc/bmi2-pext32-1.c
  4bbf331f9d2418b84d52b8ffbf0f787f  gcc/testsuite/gcc.target/powerpc/bmi2-pext64-1.c
! edca1857c96979a275cf3aae3b3d82ba  gcc/testsuite/gcc.target/powerpc/bmi2-pext64-1a.c
  8b94a94a7dff0052358065a48eaa4f9f  gcc/testsuite/gcc.target/powerpc/bool.c
! 76e8f520bb6097e5bb393a89a8adbf24  gcc/testsuite/gcc.target/powerpc/bool2-av.c
! 960fd491332f683abe60edc820c3fb44  gcc/testsuite/gcc.target/powerpc/bool2-p5.c
! a8899f293872718aed0e6529ea932964  gcc/testsuite/gcc.target/powerpc/bool2-p7.c
! 6468a50f93d8ff80b73fb9dc9951d649  gcc/testsuite/gcc.target/powerpc/bool2-p8.c
  c9f98da2825e699344ef8948cd8d19fa  gcc/testsuite/gcc.target/powerpc/bool2.h
! e57b7bcce550b8e9aac9131ac68e6447  gcc/testsuite/gcc.target/powerpc/bool3-av.c
! d027df38c177f65aa9ce8cbf61d7c45c  gcc/testsuite/gcc.target/powerpc/bool3-p7.c
! d882c1f51e88f2d0f7c17c20903ebf3f  gcc/testsuite/gcc.target/powerpc/bool3-p8.c
  438f4e658462567e81a685ced3c5a415  gcc/testsuite/gcc.target/powerpc/bool3.h
  3493bdc771b9bce44627e8e680b7ec82  gcc/testsuite/gcc.target/powerpc/bswap-brd.c
  13eb8866848667a4deb9edc6aa321b7a  gcc/testsuite/gcc.target/powerpc/bswap-brh.c
*************** ebdd5d41e115bd9fb63175dee376d2eb  gcc/te
*** 79828,79900 ****
  8c821490f5d0cf5f71e7cdc07e3c700f  gcc/testsuite/gcc.target/powerpc/bswap16.c
  3fcf5bd2b192fb87864426edc98d3d3c  gcc/testsuite/gcc.target/powerpc/bswap32.c
  c5b0f341a380052e089b6ab1ff9d3dd6  gcc/testsuite/gcc.target/powerpc/bswap64-1.c
! 28a093e56a3b3b438802b7510941c3d7  gcc/testsuite/gcc.target/powerpc/bswap64-2.c
  c5679080166f48cc9f2b7e07db1146c3  gcc/testsuite/gcc.target/powerpc/bswap64-3.c
  c2bf41ae8ff38b2785378ecfa7daa3fd  gcc/testsuite/gcc.target/powerpc/bswap64-4.c
  f1ea877f35ca466bb967858a715d4f6c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-1.c
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
! 660ec5b28bd11c4d01e9d4d45e4670fa  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
  ac5fc8abef0ee25e3006e84d9ec6e994  gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
! 3630b13056a134afac9072861304e1b7  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
  f2df3bae9f5a0120e073ffd853edc95d  gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
! 567fac0020932c494ce7231e1a6fa753  gcc/testsuite/gcc.target/powerpc/builtins-1.c
  ec989a2f75efdf3d6a18fdd8ae6ce35b  gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h
  8e9c179d065241f1abc6396d9fe644c2  gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c
  bf30b9cab89c9a31f84d84c53b7aa123  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! c7fccd1b5e3e47f166234c4ebb4e1aba  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
  581afa4a87a76c03caa4cc92c55a9420  gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
! 6f36bc313b48f6d434d3dd9911156529  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
  927bf2bb212f0a33b741d6509c20af1d  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable-p8.c
! 231b1a0d50ab0005d6a65185953e6dfd  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c
  1ec414bf03c468f718d4248fa34a641b  gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c
! 55acc231850fbe80b15baa3b9e4205d1  gcc/testsuite/gcc.target/powerpc/builtins-3.c
! 1b45aa4900862d1e703b0ee0c5c8fa40  gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
  50bb9ae2f77e2ee92fa420b15a5d1d93  gcc/testsuite/gcc.target/powerpc/builtins-4-p9-runnable.c
  229b92af5d708ec95906efd39c078624  gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c
! a434ec9b73b5bda40b0236364298edbc  gcc/testsuite/gcc.target/powerpc/builtins-4.c
  e08baaf9a0d1b4c5378da7deab293215  gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
! 8ba385e81739e130af3d29ca0ce3a9e7  gcc/testsuite/gcc.target/powerpc/builtins-5.c
  5a48cbd99499adcd022b6f0c41fc8e4e  gcc/testsuite/gcc.target/powerpc/builtins-6-p9-runnable.c
  54e75f8afa24099030187760b9579828  gcc/testsuite/gcc.target/powerpc/builtins-6-runnable.c
  ad36609570d36fac7a261cbe1422b2b9  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  5021f1b431e5d7e29a6077f0c5f07696  gcc/testsuite/gcc.target/powerpc/builtins-7-runnable.c
  ee1c5ac94e903887037c05d6567c3761  gcc/testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c
  558e4a865d747855d622b4c1a83f0141  gcc/testsuite/gcc.target/powerpc/builtins-8-runnable.c
! 6044ddb4404ef7b1e8bf981bc829f641  gcc/testsuite/gcc.target/powerpc/builtins-9.c
  5bd27ee26d7080d08867022b9d47373f  gcc/testsuite/gcc.target/powerpc/builtins-mergew-mergow.c
  8511dc5404e834d17307b5bf949c9856  gcc/testsuite/gcc.target/powerpc/builtins-msum-runnable.c
  09b5267e3ea7f6dcce98a91fe0dc43eb  gcc/testsuite/gcc.target/powerpc/builtins-revb-runnable.c
! 81a88232f1bb777faccbb3f973654c2c  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
! 73036f9eed1ffda742ae98d81459fd76  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
! 77ba5c869b6fc65d6cd660491e3194dd  gcc/testsuite/gcc.target/powerpc/byte-in-range-0.c
! db937991eee90b6475f9518293357f7b  gcc/testsuite/gcc.target/powerpc/byte-in-range-1.c
! 17ccf0af06b885642b05801359402dfd  gcc/testsuite/gcc.target/powerpc/byte-in-set-0.c
! a429f6f4dd5a28059fd7c953729730ac  gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c
! 07a9c33e18e1b67483f738cdebb5f7c0  gcc/testsuite/gcc.target/powerpc/byte-in-set-2.c
  aa3a328249d1b5d2e5d886843c65f69f  gcc/testsuite/gcc.target/powerpc/cbranchcc4-1.c
  774f769c6ea974794be75428470b27d3  gcc/testsuite/gcc.target/powerpc/cbranchcc4-2.c
  2967ae37e85e61aa7e2d5198922374ad  gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
  222e0812e626f0e1abf688d71c5afc58  gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
! e25f2a228d796f1db494d4bd8e5d34f5  gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
  ee2588ba44261404b1747c9ac2ab9547  gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
! 6d3e73d32f75ae147c57cdfabdbb64be  gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
! 74c6453e2a6b49aaded3771497afe5af  gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
! 3840b09894fe291f03dbf52cf8285b77  gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
! bceca9004faa6729357ac4757f81b563  gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
  2b0169ca798a1ab2ef548ccc6466fa75  gcc/testsuite/gcc.target/powerpc/cfuged-0.c
  3f04d51f3229d580c7e3475221fac283  gcc/testsuite/gcc.target/powerpc/cfuged-1.c
  4c1e1ec241d7a8a123436d0d1e5ad8e9  gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c
! 025b256fabe3f2406b3aa15094e43a62  gcc/testsuite/gcc.target/powerpc/clone1.c
! 485e13cbde92ce4b0320c293640c5c15  gcc/testsuite/gcc.target/powerpc/clone2.c
  53805374917dfb0695aa66ad55f2cc0a  gcc/testsuite/gcc.target/powerpc/clone3.c
  df3bb7789b2e14f68bc9eb0b7af53cea  gcc/testsuite/gcc.target/powerpc/cmpb-1.c
! a31afc98fa8da142eae0a79235d01462  gcc/testsuite/gcc.target/powerpc/cmpb-2.c
! 46f5ec685c2730e6e034d52190e348d3  gcc/testsuite/gcc.target/powerpc/cmpb-3.c
  096405fe72bd70e54254ba59396a8793  gcc/testsuite/gcc.target/powerpc/cmpb32-1.c
! 7e851aa9b50005523ed727d8f9a37f4e  gcc/testsuite/gcc.target/powerpc/cmpb32-2.c
  547670942735b7730f2499d29a2c415b  gcc/testsuite/gcc.target/powerpc/cntlzdm-0.c
  01720385b4f7f4200060bf1dcaa69c89  gcc/testsuite/gcc.target/powerpc/cntlzdm-1.c
  189b7cbf2d81a9c115f3c258072b8606  gcc/testsuite/gcc.target/powerpc/cnttzdm-0.c
--- 84818,84892 ----
  8c821490f5d0cf5f71e7cdc07e3c700f  gcc/testsuite/gcc.target/powerpc/bswap16.c
  3fcf5bd2b192fb87864426edc98d3d3c  gcc/testsuite/gcc.target/powerpc/bswap32.c
  c5b0f341a380052e089b6ab1ff9d3dd6  gcc/testsuite/gcc.target/powerpc/bswap64-1.c
! 5d6ef486f92eeef83615178ae9f9ddd8  gcc/testsuite/gcc.target/powerpc/bswap64-2.c
  c5679080166f48cc9f2b7e07db1146c3  gcc/testsuite/gcc.target/powerpc/bswap64-3.c
  c2bf41ae8ff38b2785378ecfa7daa3fd  gcc/testsuite/gcc.target/powerpc/bswap64-4.c
  f1ea877f35ca466bb967858a715d4f6c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-1.c
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
! 47bacabfccc9e78ddef3b0b6f2d15106  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
  ac5fc8abef0ee25e3006e84d9ec6e994  gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
! 3caa2573bbad9fdef8b5573d969fe446  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
  f2df3bae9f5a0120e073ffd853edc95d  gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
! 921f02aebf589561e6c7277649ac973d  gcc/testsuite/gcc.target/powerpc/builtins-1.c
  ec989a2f75efdf3d6a18fdd8ae6ce35b  gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h
+ ec62946f4bc26dd59bb4446e6db2b85f  gcc/testsuite/gcc.target/powerpc/builtins-10-runnable.c
+ 9fea1e7cafdf7d1eac899adbd6d4828b  gcc/testsuite/gcc.target/powerpc/builtins-10.c
  8e9c179d065241f1abc6396d9fe644c2  gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c
  bf30b9cab89c9a31f84d84c53b7aa123  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! f6cf6f334bb9ca3c2c0e4bcea70f0d08  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
  581afa4a87a76c03caa4cc92c55a9420  gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
! b8772a054927c8d144f35f784374c085  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
  927bf2bb212f0a33b741d6509c20af1d  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable-p8.c
! addaf7e997e61b263e07d85307ae649b  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c
  1ec414bf03c468f718d4248fa34a641b  gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c
! d914784007b927097dddee09d72e8e9a  gcc/testsuite/gcc.target/powerpc/builtins-3.c
! 6312851393ddd045abce955c553d4189  gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
  50bb9ae2f77e2ee92fa420b15a5d1d93  gcc/testsuite/gcc.target/powerpc/builtins-4-p9-runnable.c
  229b92af5d708ec95906efd39c078624  gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c
! ec03bc50ac2e5f5c873e59820936eec8  gcc/testsuite/gcc.target/powerpc/builtins-4.c
  e08baaf9a0d1b4c5378da7deab293215  gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
! 15df2dcdd5008668aea6be2fe3a64391  gcc/testsuite/gcc.target/powerpc/builtins-5.c
  5a48cbd99499adcd022b6f0c41fc8e4e  gcc/testsuite/gcc.target/powerpc/builtins-6-p9-runnable.c
  54e75f8afa24099030187760b9579828  gcc/testsuite/gcc.target/powerpc/builtins-6-runnable.c
  ad36609570d36fac7a261cbe1422b2b9  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  5021f1b431e5d7e29a6077f0c5f07696  gcc/testsuite/gcc.target/powerpc/builtins-7-runnable.c
  ee1c5ac94e903887037c05d6567c3761  gcc/testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c
  558e4a865d747855d622b4c1a83f0141  gcc/testsuite/gcc.target/powerpc/builtins-8-runnable.c
! 7a2d0d11e7303afc3a7d335bf741c8b3  gcc/testsuite/gcc.target/powerpc/builtins-9.c
  5bd27ee26d7080d08867022b9d47373f  gcc/testsuite/gcc.target/powerpc/builtins-mergew-mergow.c
  8511dc5404e834d17307b5bf949c9856  gcc/testsuite/gcc.target/powerpc/builtins-msum-runnable.c
  09b5267e3ea7f6dcce98a91fe0dc43eb  gcc/testsuite/gcc.target/powerpc/builtins-revb-runnable.c
! ad8074141eab1730ad054f82009cb6a2  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
! a9d92f87bceb9193ef3b83670d0c7c6a  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
! 39db0a8fb2ab3142e814f3a5366b9cbc  gcc/testsuite/gcc.target/powerpc/byte-in-range-0.c
! c03d5583aad94d35132b7b5f0ce21e52  gcc/testsuite/gcc.target/powerpc/byte-in-range-1.c
! 340600aad468c01e098ff899c62928a0  gcc/testsuite/gcc.target/powerpc/byte-in-set-0.c
! f20f794a003125a0adb9f69c9a50982f  gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c
! 06387841651aae531ef6cf6e2337c180  gcc/testsuite/gcc.target/powerpc/byte-in-set-2.c
  aa3a328249d1b5d2e5d886843c65f69f  gcc/testsuite/gcc.target/powerpc/cbranchcc4-1.c
  774f769c6ea974794be75428470b27d3  gcc/testsuite/gcc.target/powerpc/cbranchcc4-2.c
  2967ae37e85e61aa7e2d5198922374ad  gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
  222e0812e626f0e1abf688d71c5afc58  gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
! e38ff56088b430b85bad5ca149537283  gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
  ee2588ba44261404b1747c9ac2ab9547  gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
! c8c8c3b74ce606d3ce2b1d26d407a3ff  gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
! 81be23576652409900752d41fdbb4a97  gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
! edb0fe9df685df68c21360b90fd374fb  gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
! 6aa3f7ec66c85248e000a0564aa32784  gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
  2b0169ca798a1ab2ef548ccc6466fa75  gcc/testsuite/gcc.target/powerpc/cfuged-0.c
  3f04d51f3229d580c7e3475221fac283  gcc/testsuite/gcc.target/powerpc/cfuged-1.c
  4c1e1ec241d7a8a123436d0d1e5ad8e9  gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c
! 2902a0224923579ef50327feb5b39d1b  gcc/testsuite/gcc.target/powerpc/clone1.c
! 91f2c420fb1d6fc56fb0e852c43ce7e1  gcc/testsuite/gcc.target/powerpc/clone2.c
  53805374917dfb0695aa66ad55f2cc0a  gcc/testsuite/gcc.target/powerpc/clone3.c
  df3bb7789b2e14f68bc9eb0b7af53cea  gcc/testsuite/gcc.target/powerpc/cmpb-1.c
! 6ce56f8db766ef1231a08951033bc65b  gcc/testsuite/gcc.target/powerpc/cmpb-2.c
! 17a588443f0fa8b0b07ca7c46dcfc366  gcc/testsuite/gcc.target/powerpc/cmpb-3.c
  096405fe72bd70e54254ba59396a8793  gcc/testsuite/gcc.target/powerpc/cmpb32-1.c
! 0a4d168a82b9dfa76fff74fe06d09423  gcc/testsuite/gcc.target/powerpc/cmpb32-2.c
  547670942735b7730f2499d29a2c415b  gcc/testsuite/gcc.target/powerpc/cntlzdm-0.c
  01720385b4f7f4200060bf1dcaa69c89  gcc/testsuite/gcc.target/powerpc/cntlzdm-1.c
  189b7cbf2d81a9c115f3c258072b8606  gcc/testsuite/gcc.target/powerpc/cnttzdm-0.c
*************** a1836ccfd40cc14a0498756317475eb7  gcc/te
*** 79907,79914 ****
  dfdf0dc5bc48d63f07b8c4f420fb70ad  gcc/testsuite/gcc.target/powerpc/const-build.c
  6419d1aaea22c0476688f484ac4f0f43  gcc/testsuite/gcc.target/powerpc/const-compare.c
  68049b5e91f7fd0a54cfca006fd77841  gcc/testsuite/gcc.target/powerpc/const_anchors.c
! ea2791615781e50d93e59e8389958d7d  gcc/testsuite/gcc.target/powerpc/conv-vectorize-1.c
! d6eb67727149d6d42efabf2f7d82dfd1  gcc/testsuite/gcc.target/powerpc/conv-vectorize-2.c
  4e36c5466e14328dd78f0c7711495fb1  gcc/testsuite/gcc.target/powerpc/convert-fp-128.c
  8bdf61637d7206a86bdd53011a38df98  gcc/testsuite/gcc.target/powerpc/convert-fp-64.c
  1f7277471f008809ee3572d95097e11a  gcc/testsuite/gcc.target/powerpc/copysign128-1.c
--- 84899,84906 ----
  dfdf0dc5bc48d63f07b8c4f420fb70ad  gcc/testsuite/gcc.target/powerpc/const-build.c
  6419d1aaea22c0476688f484ac4f0f43  gcc/testsuite/gcc.target/powerpc/const-compare.c
  68049b5e91f7fd0a54cfca006fd77841  gcc/testsuite/gcc.target/powerpc/const_anchors.c
! ea4e37a590d543a41e66a485583ac6eb  gcc/testsuite/gcc.target/powerpc/conv-vectorize-1.c
! 3be17ef6b1bdd730a7745a45d64182a9  gcc/testsuite/gcc.target/powerpc/conv-vectorize-2.c
  4e36c5466e14328dd78f0c7711495fb1  gcc/testsuite/gcc.target/powerpc/convert-fp-128.c
  8bdf61637d7206a86bdd53011a38df98  gcc/testsuite/gcc.target/powerpc/convert-fp-64.c
  1f7277471f008809ee3572d95097e11a  gcc/testsuite/gcc.target/powerpc/copysign128-1.c
*************** d6eb67727149d6d42efabf2f7d82dfd1  gcc/te
*** 79916,79930 ****
  9c8ad70539244dbdecc43664cc03e7d5  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  1f6e5c800809283a311bbea2c2e28f46  gcc/testsuite/gcc.target/powerpc/cpu-future.c
  81b6f286dd2f5fda45d87e46682a7d3a  gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c
! 2f386e483983ec1f81caba67bbcd4222  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
! b12e38f63d9b5685393424078099b7d1  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  a3b487e53959665b5ecb0d7ba6138585  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  71b4f483951bb34e21b95b1e7b4a3801  gcc/testsuite/gcc.target/powerpc/ctz-2.c
! 524ca8fc9ad615df92fa761c26aef7e0  gcc/testsuite/gcc.target/powerpc/ctz-3.c
! 91af518552dec54a9bfdbfdda4ae2201  gcc/testsuite/gcc.target/powerpc/ctz-4.c
! 52284f8e57f19953bf7d0ce3182cb945  gcc/testsuite/gcc.target/powerpc/darn-0.c
! 070c5332e8c4a0025bce8637b3d636b3  gcc/testsuite/gcc.target/powerpc/darn-1.c
! be1540ec3ec5448345c27821eb88df94  gcc/testsuite/gcc.target/powerpc/darn-2.c
  49f7be188d4e8d81852e8a7ff4bd6422  gcc/testsuite/gcc.target/powerpc/darn-3.c
  965986b227062a2b8c664c916a71ad45  gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
  9a0e4836781f28669ddca26eb214c2b2  gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c
--- 84908,84922 ----
  9c8ad70539244dbdecc43664cc03e7d5  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  1f6e5c800809283a311bbea2c2e28f46  gcc/testsuite/gcc.target/powerpc/cpu-future.c
  81b6f286dd2f5fda45d87e46682a7d3a  gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c
! e92a386a07c21de9eeaef39414dd4262  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
! d5783ce64f3ee61bbc2029e9c66fd716  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  a3b487e53959665b5ecb0d7ba6138585  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  71b4f483951bb34e21b95b1e7b4a3801  gcc/testsuite/gcc.target/powerpc/ctz-2.c
! f1a505b32a80ac4972fb9961ada8cdb5  gcc/testsuite/gcc.target/powerpc/ctz-3.c
! dc25cbf23470f4386fccfef87956dd0a  gcc/testsuite/gcc.target/powerpc/ctz-4.c
! 49550ec664df6d42121d3a26a84b4462  gcc/testsuite/gcc.target/powerpc/darn-0.c
! 6b5265698416d2d70694af88a706f76e  gcc/testsuite/gcc.target/powerpc/darn-1.c
! 816abaefb929c2c4a79d98f43483907d  gcc/testsuite/gcc.target/powerpc/darn-2.c
  49f7be188d4e8d81852e8a7ff4bd6422  gcc/testsuite/gcc.target/powerpc/darn-3.c
  965986b227062a2b8c664c916a71ad45  gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
  9a0e4836781f28669ddca26eb214c2b2  gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c
*************** a1b710f163c8e5bce8ebd12b431e1676  gcc/te
*** 79947,79960 ****
  e5a3f954e535f339c4a0f35fc50c6302  gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c
  ebf08f4056fe4c31c90dc291d1dfcaae  gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
  4dbff077cb3e8124197729c3a94647bb  gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c
! 7ba33272da50fd8bee6d1536c3e99d26  gcc/testsuite/gcc.target/powerpc/darwin-save-world-1.c
  a034d7a8bf265623a75800f01113e836  gcc/testsuite/gcc.target/powerpc/darwin-split-ld-stret.c
  c45226a99273c8755ce33ff73f22d3b3  gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h
  548fc585bcbf766f23bef7319f0b0a18  gcc/testsuite/gcc.target/powerpc/darwin64-abi.c
  5df8870892f8ad5f8ea3060c6c5b82b1  gcc/testsuite/gcc.target/powerpc/dfmode_off.c
! cb2749d9ea03814ff405990430df4da5  gcc/testsuite/gcc.target/powerpc/dform-1.c
! 95b28b5eb267a06ba28e7cd923d0e857  gcc/testsuite/gcc.target/powerpc/dform-2.c
! 6b3ea99497346148fbd68e060ce27424  gcc/testsuite/gcc.target/powerpc/dform-3.c
  1b0ed9e1fb7627938798531b5360281f  gcc/testsuite/gcc.target/powerpc/dfp-builtin-1.c
  ce1f3ad7eb43ff7d5709418e9886c843  gcc/testsuite/gcc.target/powerpc/dfp-builtin-2.c
  8358905c287a7c0503579941926785d6  gcc/testsuite/gcc.target/powerpc/dfp-dd-2.c
--- 84939,84952 ----
  e5a3f954e535f339c4a0f35fc50c6302  gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c
  ebf08f4056fe4c31c90dc291d1dfcaae  gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
  4dbff077cb3e8124197729c3a94647bb  gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c
! 166d1d01de337f06f706560607750fda  gcc/testsuite/gcc.target/powerpc/darwin-save-world-1.c
  a034d7a8bf265623a75800f01113e836  gcc/testsuite/gcc.target/powerpc/darwin-split-ld-stret.c
  c45226a99273c8755ce33ff73f22d3b3  gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h
  548fc585bcbf766f23bef7319f0b0a18  gcc/testsuite/gcc.target/powerpc/darwin64-abi.c
  5df8870892f8ad5f8ea3060c6c5b82b1  gcc/testsuite/gcc.target/powerpc/dfmode_off.c
! 5c800c79ccb9151c94722bfd85fc7aef  gcc/testsuite/gcc.target/powerpc/dform-1.c
! cb5f2d9be94d37768a720dc2dfe10510  gcc/testsuite/gcc.target/powerpc/dform-2.c
! 35f6b0c6c50f1cb73d40621bef86c9e9  gcc/testsuite/gcc.target/powerpc/dform-3.c
  1b0ed9e1fb7627938798531b5360281f  gcc/testsuite/gcc.target/powerpc/dfp-builtin-1.c
  ce1f3ad7eb43ff7d5709418e9886c843  gcc/testsuite/gcc.target/powerpc/dfp-builtin-2.c
  8358905c287a7c0503579941926785d6  gcc/testsuite/gcc.target/powerpc/dfp-dd-2.c
*************** ce1f3ad7eb43ff7d5709418e9886c843  gcc/te
*** 79962,80060 ****
  70d51abf2988870d80cb9cc5e753c87b  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  28bb384f8efa10801efa64c838eab4e2  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  20555599c7a199625c2d8d95f50de5e9  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! 62d29793a94099474da8ac7e983673ad  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
! f98d82c0c8bf7191b847e64514e70c1a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
! 4b6522fc43ec6286c39dc8dd1642faa6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
! c91630886e36934a9193701a1eb39ba9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
! 8f99caad9c777de1f2f54c4bfb7dc3b9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-11.c
! 2cae34feb481b3b7ab6101704d359e13  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
! 5aa39f4ff353187fad02b6fe91cf9ece  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-13.c
! aa7d00126fdc6019ea6c90dc028efcf7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
! 11e560a3736b321b0650efcbb2286461  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-15.c
! 3b3f5679b6fa27b62a3d1b02c6eff826  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-16.c
! 072321ea34914b75e33794c701d38362  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
! 058826d127222ccd1cf39743f4a75c00  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-18.c
! d5916c68f898ce575c9e51828ae1753e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
! e96dee7cf1d9b042f564157eb66f3846  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
! c89b2562b842e1a5b31ef79e7985ed02  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-20.c
! ab453aee170c6741a3c97b70bb5e3d54  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-21.c
! 07d7b355fd0a454bf2feebf59ce9c1fb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
! 6a04788db0a6a1e731201927ad34d889  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-23.c
! b0b228e1dc4cc37d5d43b5d8543fdd6c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
! 12d4225e553c0d69993a9851f8cd31fa  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-25.c
! 3abd92b615f7b34d197f1345e5721591  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-26.c
! 4b978f39cbecdcdce6bb4683b0c73d0f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
! e418aec648c8cccf37eabbe29b36c88a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-28.c
! c68fbd112b8c6b981062a25c6040b504  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
! 866a9f017302c7d52571c2e019120911  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-3.c
! 9bd9006c1ca4b515ff1a4e0d7ad0223a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-30.c
! d9973d7488f808b8cf58b77079eb7c55  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-31.c
! 10fb2afa5d350f9429ade01c4563eb9d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
! 4fd0265950adcddcd6509807a2fb655e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-33.c
! 6e4b13968a88df21ca06217bbfc6741c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
! 350e09c70b9afa6e59d27bf8599995d6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-35.c
! a00f0e5b9971e86977b468b586ffd604  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-36.c
! 1cc36940450095ea8b4d37c2fb4fbd7a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
! 5e58911ed156548ea316f7cb8161c8a9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-38.c
! 459aea079774e8d311eb804a474e9b21  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
! f4565c7eeded7312952b067e1e682b7b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
! f95b54ed20340928451fd75c634b678b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-40.c
! 4ba688be9d24e19b412fd772312e6a76  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-41.c
! bee5507ebc7a6f417d76bf998a26b425  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
! 0b329168bd3456479cc47d800ff7b80d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-43.c
! fd2db5ca302265e3d28753e265165316  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
! 98c9ad803924a7a8c310aa31b99c0351  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-45.c
! 2e3e35cd93c2d11db2ceb9e945332421  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-46.c
! ee2f2b299fbec0891d54d95c3157b934  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
! 7c92c26f5b2e6fcb70280425e63af08c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-48.c
! 2654971cdbd582a51d7e7b37abb54341  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
! 67735ed0af705882a0830facddb3ed8f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-5.c
! 3d8729d7cd9291138dd6fc85ee424921  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-50.c
! 7a2a5235960b6dd0ceb2b29a3745bbeb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-51.c
! cb801e0f822c8f49a52935137091e2c4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
! f924abcec359a8e46c553743fa80b033  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-53.c
! ac0dd59d61743a7cdc5a50c8a162ec08  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
! 7b46e9b73f9248109a027d1e9241caf7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-55.c
! 864248f18558afe4e2d3445b27bd3ca1  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-56.c
! 6275b56eca6057ea1e53e1d3989208c5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
! 6302e85cc657eb124923056e596e067b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-58.c
! 289b46e4b2f7465fcaac443d87f473ca  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
! 2f81a4dbaeab57b78b61d415df0038cc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-6.c
! 4fbaa07108164cca1116a35f5c2e4649  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-60.c
! 5ae2398b1a8d2a7a4a4ed48b2e17d919  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-61.c
! 3f15ec0416dc7b88f0e16a5ed6193d9d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
! 271af34a621b04bebb2a1c6f98ed4bb4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-63.c
! 98c76a4dffdbe30f6af7f87658011009  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
! f538381964878bc1494564c3f3c83c37  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-65.c
! 43b161f9b7b4fdf8cc8e337f91274f66  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-66.c
! 7ae50137d4486efa7cdcae7c06d6cdbc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
! 05d8dc5a5886358068f4d5bec7c4e67c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-68.c
! 99775331ca670bcab906e4494ab5f854  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
! a722a9fb22ebeda86ee6ea7dad47ca04  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
! 0251ecf3097508a42f13849d64ab8f9f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-70.c
! a2d40d553d28407b52834a404ba39eac  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-71.c
! dceb3dad6fcf48e0064b67c9494d9a84  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
! 88c387901bc8fd16f9dc347bbc505525  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-73.c
! e97cfa8b611a25262bd6fadfb4381b68  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
! 758538930f7cb2d5a1b54f5337b03ccd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-75.c
! 2f50663022dd20147966b264dc687f81  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-76.c
! abdd38f46e66b0e06601c893178fc0e6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
! 6d69cbf853ffa403d75ff52b3ce700a6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-78.c
! 9e0e4aec458db663d39dbd3d6908fbd3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
! 79d4cee9bd8ccfbfdbae3a58b955c8cf  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-8.c
! d115ae319fdbda3a6fc6560f3568af73  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
  15797f7c1b9cc9547384233a7abdd49f  gcc/testsuite/gcc.target/powerpc/dg-future-0.c
  c4c7537d0bdc6e02c64ae690f9feac1f  gcc/testsuite/gcc.target/powerpc/dg-future-1.c
  0f4816e68e75ee735727c70ca742fb95  gcc/testsuite/gcc.target/powerpc/dimode_off.c
! b8e057eebf8967401bc7cbc7578ac789  gcc/testsuite/gcc.target/powerpc/direct-move-double1.c
  4d54fa94954d5ff791c5151280363a89  gcc/testsuite/gcc.target/powerpc/direct-move-double2.c
! ebbfda9e71ab97bc1f5c2dbc0aa46641  gcc/testsuite/gcc.target/powerpc/direct-move-float1.c
  f4d7704dfb409d1d00851ce115bbb180  gcc/testsuite/gcc.target/powerpc/direct-move-float2.c
! 1d28131483cd41a9c163d6c46f89e470  gcc/testsuite/gcc.target/powerpc/direct-move-float3.c
! 8eab0be3596a86c956e5c029400edff8  gcc/testsuite/gcc.target/powerpc/direct-move-long1.c
  d4ce6459348a97119b44b465bb11034f  gcc/testsuite/gcc.target/powerpc/direct-move-long2.c
! 0eaf597265a21e9c8df93ad1d044edfb  gcc/testsuite/gcc.target/powerpc/direct-move-vector.c
! 76fbca96247f5a2bb4e50616bf2caa32  gcc/testsuite/gcc.target/powerpc/direct-move-vint1.c
  500da673182d1ca48d430f3e8f4e6736  gcc/testsuite/gcc.target/powerpc/direct-move-vint2.c
  3bb9355169d26ef4a2e610a4cc121c5b  gcc/testsuite/gcc.target/powerpc/direct-move.h
  627e7592bae7233fb11325ff51156a61  gcc/testsuite/gcc.target/powerpc/div-vectorize-1.c
--- 84954,85052 ----
  70d51abf2988870d80cb9cc5e753c87b  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  28bb384f8efa10801efa64c838eab4e2  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  20555599c7a199625c2d8d95f50de5e9  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! 3a9c381a7ae4eeaa4299100baf89fe48  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
! 04b2c4e35b61da4539ab44d67dca8c3d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
! 69b64e75d49e2033512282aaac7ae554  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
! 2cdf7c196f5bf9871e00464ce5ab45b8  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
! 925b53ae133e05cab9609652d2ebd598  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-11.c
! ed67e04cd3411405823cb3b9aa5fae66  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
! 615f170cc9aae4ed7ba1e81727dd2293  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-13.c
! 3c3041b0360ab53920c0e76164a07589  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
! 870e4eff30f20e21161db2d0173018ab  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-15.c
! 7a8236dd951519d75a577b771c8dc0be  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-16.c
! 8a02531c61024dbae8759202f4cfe731  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
! 24bcaa5a1786d658806b85ae4709f323  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-18.c
! ea6c6effe9ee0de4f5d706b966caca80  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
! 633537b4b7f25010b102ff5fd34c1685  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
! cb43e275ebb2f60175511da9a38201e0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-20.c
! 97561f9126ff5e942b20898440c05df9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-21.c
! 7cb634906ea760f8b6ee3a05fe9403dd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
! a458ea0bc3aa38a10e6663e04291c4cd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-23.c
! 2c7e51257f342c477080c9e7a10883eb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
! 4408319b0a86efd6b106099fcea9528f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-25.c
! 6bd5d1fdf1903639e260c98b07268ab3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-26.c
! 1b706788560ff6c6d4e2cccc7bcdebe0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
! c7cb5de9bdb352f9242895f48788c9b3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-28.c
! 4a9b5725e9069744cf647c807f45f326  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
! f85620bb14ae7a80b67de76a8ae99713  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-3.c
! d6792d4614561e7045287cf0a5573976  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-30.c
! 4aba01cdf98bd4984d4671b00f7a4b10  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-31.c
! 2b80a7e2077f23da2c04084bec14453f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
! d029305594c2679915b167d6b051f946  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-33.c
! 978360315c7a985aaab349cae5a5c732  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
! 0623b3719ad4c529ab124c6df85d9e35  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-35.c
! 5f0107d9a03c3f96596c71a43d611cb0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-36.c
! 57a0283cfe7ef12bcfc36bbabfb6a3c1  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
! fa30b5c19b95e339f772f75ce97cddfc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-38.c
! 47a0538a285b07242e4f3aec1feb6b98  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
! 3d1ecaf7e0b772a9acbd877b1e7b1a00  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
! 2a9994e26e19b61f2e37dca845455e5a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-40.c
! b934eeaac693f71fb6d3737db34ec266  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-41.c
! 81cfd705661a0e7cc344a9d98d987f01  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
! f2e0bf8fa5ff0c7fcffd2e73afc8951c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-43.c
! 69c704f8952eb054cdb9a4f7af59cf1c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
! 8b5e9d22405be790c024e418119bca14  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-45.c
! c8ef08386d3d9d41e45cbc37e477cb97  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-46.c
! 4504d6bfacec3e1166af0144c2a28ad0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
! 19c4fb4b5a77e1852eae36be7f257683  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-48.c
! f8f4eb4f8c4141107729b1a253e9c0c6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
! fe103f52f94977bb11b30675f63fc472  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-5.c
! 5c38663113749641248da5601c7116e1  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-50.c
! 46f6528658980d807f75a9c47e744976  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-51.c
! 9c217bbeb47d8be612573d10ae9c44cc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
! 43bcdb79ef3b14d362c9d9dde6faa69f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-53.c
! 71ec7e12e4622bf841956d857fd71934  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
! 8f67a34682015c925b37dc584aea8845  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-55.c
! 72df3f7f92387d3f9c345de8a34f8e06  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-56.c
! 9e572c71dcfb935b3c0a17fc6c82633a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
! 813c6018c5c777cabe67d38047e8ba46  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-58.c
! cb3170c0b45da13bbe55cc268e45061d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
! 911550ac2d8b00c0f4c8e5cccd4332b9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-6.c
! c278d34b7a91006fd8edb7703a0cc10b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-60.c
! 4eb5ac9dc7c7a8956393e60135a8ce8f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-61.c
! fc2aa7d3b90fbe6cb153eb86a163babb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
! 70274c3b255e4e206fdc64ce2adb6fbd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-63.c
! 461cfeac1a4677fd9ee0bbc0f9ff073b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
! 50a15de2265d1d390aca44593b8789c5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-65.c
! bc6486bb7dd4270f6044feea20dcc0cd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-66.c
! a960965d4adc67baf2020b8104d37de3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
! 338de9735ce431fe224393e77c549d40  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-68.c
! dd0d316ad9132c5ae82e6254ff0fb743  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
! 61004265f8e12f7b932693517ce4b081  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
! a8e8cc63c5b0d62e5bb4008a57d0dea4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-70.c
! 49378572d377764fdafb673a70c5e45e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-71.c
! 051b65b0179f84773cfef8bfee947163  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
! 0613065e55a6be6c88d6158691d328a7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-73.c
! a782cb0e382b4dcbe3c5abbe4207d5a5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
! 11109301b4b9bf5cc8ec7b61169f8413  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-75.c
! 54db0a3d2dda0c81ae106e16107f94a0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-76.c
! 4313146c7a1d67e7a6816c6f291df735  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
! 7d140aa19270fcd89a3edc99b5a33146  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-78.c
! 99abda62dc1b6e0f8ee3ec3d0dc3b24d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
! 3f07f08f55b7831a43d821cfb2ac085d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-8.c
! f17899fcbde16dfef96edab5c8adb822  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
  15797f7c1b9cc9547384233a7abdd49f  gcc/testsuite/gcc.target/powerpc/dg-future-0.c
  c4c7537d0bdc6e02c64ae690f9feac1f  gcc/testsuite/gcc.target/powerpc/dg-future-1.c
  0f4816e68e75ee735727c70ca742fb95  gcc/testsuite/gcc.target/powerpc/dimode_off.c
! 2a55e20ec352f1865cb0a55214b529d5  gcc/testsuite/gcc.target/powerpc/direct-move-double1.c
  4d54fa94954d5ff791c5151280363a89  gcc/testsuite/gcc.target/powerpc/direct-move-double2.c
! 98ec94378445d9e0426eb8db99d01e96  gcc/testsuite/gcc.target/powerpc/direct-move-float1.c
  f4d7704dfb409d1d00851ce115bbb180  gcc/testsuite/gcc.target/powerpc/direct-move-float2.c
! f4c3a080641a66d930e4995ff513e5a8  gcc/testsuite/gcc.target/powerpc/direct-move-float3.c
! 6e44adcecd285b6345b4cbb94e609167  gcc/testsuite/gcc.target/powerpc/direct-move-long1.c
  d4ce6459348a97119b44b465bb11034f  gcc/testsuite/gcc.target/powerpc/direct-move-long2.c
! ad903db5c4507285a9a8c327e26e9904  gcc/testsuite/gcc.target/powerpc/direct-move-vector.c
! ff7c1b58ed89bfe2bf2295ad8c61cd49  gcc/testsuite/gcc.target/powerpc/direct-move-vint1.c
  500da673182d1ca48d430f3e8f4e6736  gcc/testsuite/gcc.target/powerpc/direct-move-vint2.c
  3bb9355169d26ef4a2e610a4cc121c5b  gcc/testsuite/gcc.target/powerpc/direct-move.h
  627e7592bae7233fb11325ff51156a61  gcc/testsuite/gcc.target/powerpc/div-vectorize-1.c
*************** bbd67209d5072324b6c172166dfdc420  gcc/te
*** 80066,80074 ****
  c5a9d08c3b838f5a1fea3a4a1a8fd74c  gcc/testsuite/gcc.target/powerpc/dive-vectorize-run-2.c
  696e63162a2f3acf5d17e871a4d6c5b7  gcc/testsuite/gcc.target/powerpc/divic3-1.c
  1979ea6670fbb71d39841682940e44aa  gcc/testsuite/gcc.target/powerpc/divic3-2.c
! 437116f4ece2fc838159319958a00e92  gcc/testsuite/gcc.target/powerpc/divkc3-1.c
! 54f33d7f869c07c53a66d6030b959c49  gcc/testsuite/gcc.target/powerpc/divkc3-2.c
! 3af24f7251ba2ee50bda11e6d14d5fd7  gcc/testsuite/gcc.target/powerpc/divkc3-3.c
  8f2229fba1c4dc16358c52a26e62a35e  gcc/testsuite/gcc.target/powerpc/doloop-1.c
  1795ee28ccf0c1777cfcd23010593966  gcc/testsuite/gcc.target/powerpc/doloop-2.c
  1e28ad29e43de3bf402fb713b7540c32  gcc/testsuite/gcc.target/powerpc/e500-1.c
--- 85058,85066 ----
  c5a9d08c3b838f5a1fea3a4a1a8fd74c  gcc/testsuite/gcc.target/powerpc/dive-vectorize-run-2.c
  696e63162a2f3acf5d17e871a4d6c5b7  gcc/testsuite/gcc.target/powerpc/divic3-1.c
  1979ea6670fbb71d39841682940e44aa  gcc/testsuite/gcc.target/powerpc/divic3-2.c
! b018ac82fb41680ec84f71c82531b157  gcc/testsuite/gcc.target/powerpc/divkc3-1.c
! 3a00f0b08319543f6bf3edb49fcdb8b6  gcc/testsuite/gcc.target/powerpc/divkc3-2.c
! 8c10de5b0bb2237c6423a109a8c0928d  gcc/testsuite/gcc.target/powerpc/divkc3-3.c
  8f2229fba1c4dc16358c52a26e62a35e  gcc/testsuite/gcc.target/powerpc/doloop-1.c
  1795ee28ccf0c1777cfcd23010593966  gcc/testsuite/gcc.target/powerpc/doloop-2.c
  1e28ad29e43de3bf402fb713b7540c32  gcc/testsuite/gcc.target/powerpc/e500-1.c
*************** c5a9d08c3b838f5a1fea3a4a1a8fd74c  gcc/te
*** 80077,80112 ****
  6ea92a9945a83333f8d1ba665d65f560  gcc/testsuite/gcc.target/powerpc/e500-unord-1.c
  83d3ef0422135a547b552e5700f1e4a6  gcc/testsuite/gcc.target/powerpc/e500-unord-2.c
  01907d008b05c94700170b948c96b56e  gcc/testsuite/gcc.target/powerpc/ehreturn.c
! 95e858be0914c6e79bbeb1b71724455f  gcc/testsuite/gcc.target/powerpc/extend-divide-1.c
! 14ca74f227a530896913ee956a768538  gcc/testsuite/gcc.target/powerpc/extend-divide-2.c
  f92fd7820b0c5610b80d80849330a5b5  gcc/testsuite/gcc.target/powerpc/extswsli-1.c
  1d57297e130da0cb80ebe94942aca74b  gcc/testsuite/gcc.target/powerpc/extswsli-2.c
  5a16bc7fd7db200400166ef125c8256d  gcc/testsuite/gcc.target/powerpc/extswsli-3.c
  0ee5a8314afe97bf7a61d79ae4788f89  gcc/testsuite/gcc.target/powerpc/float128-1.c
  96b4a8fffbca0c3e72f47fb998546030  gcc/testsuite/gcc.target/powerpc/float128-2.c
! 23470b0b15ae268a0d29143204e3df41  gcc/testsuite/gcc.target/powerpc/float128-3.c
! b2276d66af2be03cec5596af82315b7f  gcc/testsuite/gcc.target/powerpc/float128-3b.c
  87db0533dd0b96c3e0982f0eb5d1d216  gcc/testsuite/gcc.target/powerpc/float128-4.c
! 246e0834d0ba6318ff7dd6e994422f4b  gcc/testsuite/gcc.target/powerpc/float128-5.c
  0b6c17e72390bfb9052600f21ba0c89a  gcc/testsuite/gcc.target/powerpc/float128-call.c
  5dc8dae5e463cb191053a5df48a57e79  gcc/testsuite/gcc.target/powerpc/float128-cmove.c
  d2e66a0adae820881b99ec45ffe24c78  gcc/testsuite/gcc.target/powerpc/float128-cmp.c
! 5a85c91ce9fcc3b73b638295db4d02b2  gcc/testsuite/gcc.target/powerpc/float128-cmp2-runnable.c
  c30565a907667e990dd7f92247003742  gcc/testsuite/gcc.target/powerpc/float128-complex-1.c
  77d0f44077c974643c0f632095a7df55  gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
  fd25bebf75e74cfe87389db792a9d7e6  gcc/testsuite/gcc.target/powerpc/float128-constant.c
! a0a14e7929cd631015fa571fea1d2b6c  gcc/testsuite/gcc.target/powerpc/float128-fma1.c
! bbf7d0a1e97a331c0cfbe411324e50a4  gcc/testsuite/gcc.target/powerpc/float128-hw.c
! df5e2127d5c42a82462e2edb720733a2  gcc/testsuite/gcc.target/powerpc/float128-hw10.c
  2a187217100392844d8e7f9672e0d484  gcc/testsuite/gcc.target/powerpc/float128-hw11.c
! a4a6c5bb9656cd64ad69856c2c853a38  gcc/testsuite/gcc.target/powerpc/float128-hw2.c
! a0570f9f967b129745cd84e6ce076b4c  gcc/testsuite/gcc.target/powerpc/float128-hw3.c
! f3e00871ca68ea8ba9c767ef17559e4a  gcc/testsuite/gcc.target/powerpc/float128-hw4.c
! ad1a1dd482fd96e19ba6ed8000d2de05  gcc/testsuite/gcc.target/powerpc/float128-hw5.c
! be84b77220724e0dbf55785cd0f72958  gcc/testsuite/gcc.target/powerpc/float128-hw6.c
! 6ae9dc0e411b3022c91332950ffb70ca  gcc/testsuite/gcc.target/powerpc/float128-hw7.c
! a2e80d239b121dc5248e2b92736df692  gcc/testsuite/gcc.target/powerpc/float128-hw8.c
! 7ea029f56a56f2c5cb3e2aab04d50c9a  gcc/testsuite/gcc.target/powerpc/float128-hw9.c
  1bfe07e7e08f200440538b1544af3c81  gcc/testsuite/gcc.target/powerpc/float128-longdouble-math.c
  ecb6702ec576754aa1c226cb34fba2a9  gcc/testsuite/gcc.target/powerpc/float128-longdouble-stdio.c
  e8d96efd9bb48348b9c55c740d924256  gcc/testsuite/gcc.target/powerpc/float128-math.c
--- 85069,85105 ----
  6ea92a9945a83333f8d1ba665d65f560  gcc/testsuite/gcc.target/powerpc/e500-unord-1.c
  83d3ef0422135a547b552e5700f1e4a6  gcc/testsuite/gcc.target/powerpc/e500-unord-2.c
  01907d008b05c94700170b948c96b56e  gcc/testsuite/gcc.target/powerpc/ehreturn.c
! bd2c353f1036b5195045a2743592560e  gcc/testsuite/gcc.target/powerpc/error-1.c
! 30b61e9be61686ff759fe9e565bd6199  gcc/testsuite/gcc.target/powerpc/extend-divide-1.c
! 7d2381e561e83278112e7a79a0e6ec73  gcc/testsuite/gcc.target/powerpc/extend-divide-2.c
  f92fd7820b0c5610b80d80849330a5b5  gcc/testsuite/gcc.target/powerpc/extswsli-1.c
  1d57297e130da0cb80ebe94942aca74b  gcc/testsuite/gcc.target/powerpc/extswsli-2.c
  5a16bc7fd7db200400166ef125c8256d  gcc/testsuite/gcc.target/powerpc/extswsli-3.c
  0ee5a8314afe97bf7a61d79ae4788f89  gcc/testsuite/gcc.target/powerpc/float128-1.c
  96b4a8fffbca0c3e72f47fb998546030  gcc/testsuite/gcc.target/powerpc/float128-2.c
! c0b703ecbcb368352187d5b02ee5bc89  gcc/testsuite/gcc.target/powerpc/float128-3.c
! 10c31597432a2e06a80d3e5ccf70e9f0  gcc/testsuite/gcc.target/powerpc/float128-3b.c
  87db0533dd0b96c3e0982f0eb5d1d216  gcc/testsuite/gcc.target/powerpc/float128-4.c
! 1c408b7014d27de2f3345eba035d3eee  gcc/testsuite/gcc.target/powerpc/float128-5.c
  0b6c17e72390bfb9052600f21ba0c89a  gcc/testsuite/gcc.target/powerpc/float128-call.c
  5dc8dae5e463cb191053a5df48a57e79  gcc/testsuite/gcc.target/powerpc/float128-cmove.c
  d2e66a0adae820881b99ec45ffe24c78  gcc/testsuite/gcc.target/powerpc/float128-cmp.c
! c92e8bba2bb1e5bee2f6953c558e511c  gcc/testsuite/gcc.target/powerpc/float128-cmp2-runnable.c
  c30565a907667e990dd7f92247003742  gcc/testsuite/gcc.target/powerpc/float128-complex-1.c
  77d0f44077c974643c0f632095a7df55  gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
  fd25bebf75e74cfe87389db792a9d7e6  gcc/testsuite/gcc.target/powerpc/float128-constant.c
! 6b2ad6d8474b87e87d73ba95a9a23396  gcc/testsuite/gcc.target/powerpc/float128-fma1.c
! edec9f8250fd2b02f39c2bac6e6efa0b  gcc/testsuite/gcc.target/powerpc/float128-hw.c
! 732c6935dbf375e0bf4923c66da58bbb  gcc/testsuite/gcc.target/powerpc/float128-hw10.c
  2a187217100392844d8e7f9672e0d484  gcc/testsuite/gcc.target/powerpc/float128-hw11.c
! 1612d3305b7659ad288307801a630078  gcc/testsuite/gcc.target/powerpc/float128-hw2.c
! ff30e46c06368ca3f58248ff13bebff5  gcc/testsuite/gcc.target/powerpc/float128-hw3.c
! 942fd1081c457e02a4d6fa2f3835ba13  gcc/testsuite/gcc.target/powerpc/float128-hw4.c
! 777723b7645848cc1dbec6fa82c1b28a  gcc/testsuite/gcc.target/powerpc/float128-hw5.c
! a2f1920c4bc17fa87625be01475b1b4e  gcc/testsuite/gcc.target/powerpc/float128-hw6.c
! 4dcd9f57c8dfe886182e5067f078bf1f  gcc/testsuite/gcc.target/powerpc/float128-hw7.c
! 1503433c9a1f58080415a9874254ac2a  gcc/testsuite/gcc.target/powerpc/float128-hw8.c
! 4f218cf5183ba57331359d94c2a3fb1c  gcc/testsuite/gcc.target/powerpc/float128-hw9.c
  1bfe07e7e08f200440538b1544af3c81  gcc/testsuite/gcc.target/powerpc/float128-longdouble-math.c
  ecb6702ec576754aa1c226cb34fba2a9  gcc/testsuite/gcc.target/powerpc/float128-longdouble-stdio.c
  e8d96efd9bb48348b9c55c740d924256  gcc/testsuite/gcc.target/powerpc/float128-math.c
*************** de7e29f869f77414f98a7b7e41387a33  gcc/te
*** 80116,80362 ****
  a4ce181d9028c3331d12902e18b6c8cb  gcc/testsuite/gcc.target/powerpc/float128-mix-2.c
  7e61fd8543295554419a5912d79afeb9  gcc/testsuite/gcc.target/powerpc/float128-mix-3.c
  d8a8e21eb6eebbb81346e00d9e4a210f  gcc/testsuite/gcc.target/powerpc/float128-mix.c
! 69f8414cd6c0767bb18c0bc448984fea  gcc/testsuite/gcc.target/powerpc/float128-odd.c
! e3a0ecf65fe12f3ab20f4c4cdb670637  gcc/testsuite/gcc.target/powerpc/float128-sqrt1.c
! ff1d4e0e9e90ca7ac002d7964f4472be  gcc/testsuite/gcc.target/powerpc/float128-type-1.c
! 8d0e6f2b011a249311b8f7dd86bbf695  gcc/testsuite/gcc.target/powerpc/float128-type-2.c
! e0ad25ce9491285ff2b02b92e79f6591  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char-fwrapv.c
! bc538b78d826c6d929d4d4cc8a050ca6  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char.c
! fc9f8abb6fc339215e8874dc977f42a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-floatdouble.c
! a8953f2a3db7f1bae2b0c53f01c4e2a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.c
! 549e31b00eee46354860b47e7d5e36ee  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c
! 92ad6c66b58855bcafc5b09a76020ca0  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c
! dff2ab5533857016025e6f61c0459d20  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c
! 6e567b796a1d87fc2b8a3b33fc98c3b1  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.c
! 95fddf22c382f98ab2dc099702dffe61  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p7.c
! 5a9e21aba9be4c0e5a752a8dfbb636c5  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p8.c
! f9928abdbb50a6fc3a361b5b5fa033bb  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p9.c
! 0e80288a9274453aed0fcce5cb7f3c52  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c
! 466a8a5e92c8d2d0b0d4cd76a9e26afa  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c
! 68b7d2084d6947475cbe4c69d253666b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c
! 41d5aec5d7c74419e030ee34461536d3  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.c
! 52b4d5d37606d46405165fcd9b89c3ce  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p8.c
! 68b7d2084d6947475cbe4c69d253666b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p9.c
! 5eb8a69ee53e82131b8626c1325e4204  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short-fwrapv.c
! 6e6d229856f86fa80e80959345b3d040  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short.c
! 9fea82572de51713f7f34f38bfbc65a1  gcc/testsuite/gcc.target/powerpc/fold-vec-add-1.c
! 584a512198f713c5373b5cf53c722434  gcc/testsuite/gcc.target/powerpc/fold-vec-add-2.c
! 9689a568c1cb8a17bfdac146660f667d  gcc/testsuite/gcc.target/powerpc/fold-vec-add-3.c
! 9afb3056f1fea38284adcc3b45cfdd16  gcc/testsuite/gcc.target/powerpc/fold-vec-add-4.c
! dcb18b06f41257634287eb447567431e  gcc/testsuite/gcc.target/powerpc/fold-vec-add-5.c
! f8af801a732c6c01b33e5d3b75fef925  gcc/testsuite/gcc.target/powerpc/fold-vec-add-6.c
! 504404006529ed1f073eee1529af4446  gcc/testsuite/gcc.target/powerpc/fold-vec-add-7.c
  c40e77e4d231f0aa78af12735573c571  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.h
! f7ab0c5567bd7414d10ef0e21db5d56d  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p8.c
! 0a25d6bb7aac4c76bc348cd8a509392e  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p9.c
! 26a6a752ac1166f5a31bd4969ad63706  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-double.c
! 5fd1cfd1d0c56047743e22b7ffad5f07  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-float.c
! 4dace8b3b13d88d12a6a5fe643875ace  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.h
! 7482829c69b33ee5b98c599b6ecdfb75  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p7.c
! a347b192dc5334cff1323071a76293ab  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p8.c
! e8bb6e710e33ad479f9595bda9b0bf39  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p9.c
  95589273f7be6f4ef22f88ff1ff2d4c9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int128.c
! bf1f5d27518de6eb2fc65e9645dee6da  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-longlong.c
! bc55d97eae451d3a4b1e457fc97196c4  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.h
! b3649b7da1979b691ae564d73cd28800  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p8.c
! 00e31ae68d2a04ec8ff0fe9cc0a66215  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p9.c
! 2106e1b890da2cb57b17ddd297089b26  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-char.c
! eaa944b63ab9c48c0a102ccab6370faa  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-int.c
! 414c91e03d4d79ec79bb5cc506303327  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-longlong.c
! 7adfbdb98039756edc351b6926413dcf  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-short.c
! 34c909a89e104fa83e45b28020ea4537  gcc/testsuite/gcc.target/powerpc/fold-vec-div-float.c
! bc4ffe5b102cbda3b8132211813a5f60  gcc/testsuite/gcc.target/powerpc/fold-vec-div-floatdouble.c
! e5d4f3b0afd81706b6cc6b5850f9eefe  gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
! 45ab856d86dd48caf7e82564946f923c  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p7.c
! 7aff1cbe8ad2796e6fca95d5a8a79aa1  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c
! 008fab29c6cd854cf588bf77331f77e1  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p9.c
! 06662a48faa71b240b5e9d3c1e1ba5af  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p7.c
! fb2e1588bd7702f14bde2ceb760055ee  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p8.c
  f28454392bfa7d7a1137bcafe2123abf  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p9.c
! 89f40be7947fda24987e25856b7b165e  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p7.c
! 26d2f2cf6b19a48d8f9c3616437b6aba  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p8.c
! 02cae4468c122cad0a3c64bd221e9b8b  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p9.c
! ba44c22af8fc41d6af9d5e804762b5d3  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p7.c
! e0dccb8709ede9eb00d205614dd78775  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c
! 2f4fb62b08c488fd986d780c8530daee  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p9.c
! 34229cd255d399db41aeaa2e3d6a7d4b  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p7.c
! b0d4f53ef7241037639164403e0630e7  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c
! d0f98316e4c3869134974bc1cb6a89d6  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p9.c
! a5325c8cc86dc478739621b3d95026f9  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p7.c
! 8c599efa22da54d889f26e626ede7b77  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c
! 90a48c1d1c1126202e07cf1410e29c78  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p9.c
! 18ce02d1f6c7e00cd5d5445114c26b49  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p8.c
! d150b930c4e22ff11b236f0f53b635ee  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p9.c
! d03c7fdf183782e0dca3f4ddf4cfc464  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-double.c
! 59a5557ff43a4434ed95968f4ab850ca  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p8.c
! 06940256d74591296d5c3b23b79d105a  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p9.c
! 11be817addf1d9d72d78c49c47fd9fb8  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p8.c
! 886e25b684b108a3fd60b188cc100dad  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p9.c
! 4fae68a011dc724b097d597d6c8a2966  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-longlong.c
! 37308d4ce5ad628c3c118ec87db75ddb  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p8.c
! 24adacd6348e5f5dfefc95e74244e3f7  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p9.c
! f83dd36ea74330541196905107594a4b  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-char.c
! 789754980b9d6f48bf02b8d3e87b72ed  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-double.c
! 857fe53226a86ade248b779d3f5a20d6  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-float.c
! fad3ccaaf13d39b936807d9415e4165c  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-int.c
! 55322d8aa5ef0f30d335f57631e96008  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-longlong.c
! 5cf0c2402b7fea385dac074b3865e37a  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-misc.c
! 11f5c822fb66163c2b4ff6823d8bba9e  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-short.c
! b8569310d4209fa463dc6fa6ff13a513  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
! 83c9a4627f23e7070a4003ac0f6860ba  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
! c021ed43746d793131a90123c67a57f1  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
! c3d8c5fb05597cb57d8bfbaf9cfc2259  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
! 84cca625c9334282cb0106dcc9e0aef9  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
! e0b5ea66ad9fc12d543d217d4b75bbe8  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
! ba5b86cb7c1d757e8edf0b77934c3c61  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
! 00476c11b96d4a7cb287f30d19b541f8  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
! c31b0eb53026a430ff5d8f10a92ad755  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
! 358b32903c812ec7a48e0f266a91735b  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
! bba68aa438034cdaba6c5e632a306dc1  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
! 8261d72a874fd63edb2e54ed00f33d2e  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
! b666051b2e7e34615cfb3445d3afffee  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
! 01603b5f8fc31c0457a7e887417e7169  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
! 028783c74b314312e757e4127850f650  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
! 6f52a1b07603e99f00cff2329b26441d  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
! 8034f3c8ade4c73303157c45b671c658  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
! 80380189e21af9127890031396ad99a9  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
! a6bf49f1508c4751594982b3ba9c1402  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-char.c
! 65f0aacb6d00b5110c863e5cb9304409  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-int.c
! 786bb59f48d5eb9fb4612efaf2950505  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-longlong.c
! 47553608344dabd648258400b08bb70e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-short.c
! fc5115be5c1f7a28cf803b6af2cf012e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c
! 314ca07c449e3064be8fe31c64eb1f12  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c
! 8a96f04fcf1c9b92b3e08d6c3d90dcd3  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c
! 016521f52bd61ce41df13f832f31165c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c
! 80e0782286542bb25c814d7f134f3ca5  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c
! 63843d625213b1e7ff6184ce1529cb4c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c
! 443ce99f821a9feb00a98e2a591f4c29  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-char.c
! 185d0e9ecf31b83eefc4f2db4c41aecc  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-int.c
! 4b7bdddf5d112b4f2e785c83b5011c85  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c
! 4837c956f9c14a1f2b93ce2662208ae6  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-short.c
! ff45788cf964ace54b6cccffb48343a6  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-char.c
! ba8bac2856797a0d6a174a34221b333f  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-int.c
! e745f6179f59ae246780f3003672e70e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-longlong.c
! 3b36b329ba4c37b932bdd47511a0368d  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-short.c
! 51130abd0d75c8b7084cf4776be63043  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-double.c
! c5a2e0e18b989631ff4f1c9e4b0f5ee2  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-float.c
! b2740aca0f3481b5d711325fed94bf4b  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-short.c
! 0c222bde3a868add6fa8c52efbb317c5  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c
! 9e87688d442c81ebb017f415a5d3ec79  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-int.c
! dc94da38f875a5bb547f89095a188cb1  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-longlong.c
! 15b0ef78deaa74d0936ce2a256ca4880  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-char.c
! 639c5d50d6d610c022e624085b42d082  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-double.c
! ec5dbe0b4f0e94b5f299aa14c6e97def  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-float.c
! 23d5402a4c4336fcb6826687aec9a720  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-int.c
! df79d3b321ba0356c5a1ef7ee7645a58  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-longlong.c
! 93fc7d054dd12a16b757fcd3a85e3270  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-pixel.c
! 986be3f5d1abfe691663e7f764fdd791  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-short.c
! e09dec817573f33ca52cd449bb0f683e  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-char.c
! 46a53c71f6c3712386cbd703269f8462  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c
! d403d1dfe2edb0af634741adb9b2ea06  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-int.c
! 2a5765e88049ac4ad658bbcaef4a8156  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c
! 60f510ecaf270d58efc3cccedfc515d3  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-short.c
! d166c789e58b419540ab45a26e13bb56  gcc/testsuite/gcc.target/powerpc/fold-vec-missing-lhs.c
! eaf0b440284bcd41bd729d89639cd59c  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-char.c
! c03c1788f719160bb3fcf0a0532ece93  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-short.c
! 94e78d58402c9bc3b5b637694d3f4255  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-char.c
  0f797b1a0a9faf5002c0d9d6c5d1db3f  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-misc.c
! fb0a89e45ba252c43353b0f5f4c7ce06  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-short.c
! 375caba5d8a625665beec176aafc6220  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-char.c
! 426a600871598fb80a8b81e4b814e90a  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-float.c
! d75d344612568a4f86f9acdb280128fa  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-floatdouble.c
! 5cb893107e6a7dc7d0354154a2d64e0c  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int.c
! 3b72b67c6a2b47d88e6467f47a39e5e8  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p8.c
! da23b52d5cbfc5799009cf7594bb1305  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p9.c
! 4db0e660d4fdc234946d081939c1996e  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
! 49b251a50e1bf1e51c1a49aa6fd075f0  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-short.c
! 04e436ce27513c5ad8113ceaef17f7eb  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-char.c
! 4e30180ef391e415a71232b2d8237c5b  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-floatdouble.c
! 520ea1a71fcf33d79690dd162890ac91  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.c
! d80ac23aeb1c0a4abd98518fe1753f04  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p8.c
! 8803cc2f2e9552d577f93c65a94f0387  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p9.c
! d3f707e9276cce68dc9841194eea5747  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.h
! 33ef5742743ae8967eebcbfac3c3a628  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p8.c
! f22b922ad063b7913d1725cba59cf113  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p9.c
! 3ce9143aad99fe006a17a236425720db  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-short.c
! 761c697dff69ec09df4f192dcaaeeb45  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-double.c
! 9dc9af4f6434ea16e511ecf0c0ed2a3c  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-int.c
! 8e3c5557459b5c972b946ee3b9135dc2  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-longlong.c
! 95ee03eb866a6ce8e68fe4231fc04a00  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-short.c
! 199a4c2e03db86236fcdf85bef7f3f4e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-char.c
! 4e69b825017e023761b8caac4483112e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-double.c
! 600615fc6204dffba26ad3c6529017c2  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-float.c
! 4590d971f518051e598fc8753c12e122  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-int.c
! c7345d3a8b7347730058cb8cc10de9dd  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-longlong.c
! 9ae68d31e49898985c619a910ca7aa07  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-pixel.c
! f0aa86bc355cbd349d4d86ad17d5d7af  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-short.c
! 5b0744b0b5565e3157eefb0eeb12d8e3  gcc/testsuite/gcc.target/powerpc/fold-vec-select-char.c
! 63c827d4c5742e460aaec5b9a4605bfa  gcc/testsuite/gcc.target/powerpc/fold-vec-select-double.c
! d1807d527b384d685f9a957299d36672  gcc/testsuite/gcc.target/powerpc/fold-vec-select-float.c
! 528671ac5fa40094ad0850b0a6f57b34  gcc/testsuite/gcc.target/powerpc/fold-vec-select-int.c
! 15ce020fe88301e74e0dada945d3665b  gcc/testsuite/gcc.target/powerpc/fold-vec-select-longlong.c
! 4c313a7047c9bf216849b1332e6c736c  gcc/testsuite/gcc.target/powerpc/fold-vec-select-short.c
! 395ffe68d26e6b1a9ad3614b6111358f  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-char.c
! 212d503d79804785ed9940384b4f3198  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-int.c
! 8576415c1e37ade78f6c031011153d01  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-fwrapv.c
! b4f94c4dd9c64a445990dfee1112483b  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c
! cf157418c5e11b4d62a881af66170d97  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong.c
! 0c4ce9c8666b972a318787c914166797  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left.c
! bfcea967d563b64cd84b75679654adb8  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-longlong.c
! 11424c610452bbdaa0ca65a9fe0d19ae  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-short.c
! 56712289e441cccbb20f69c47f2b1cff  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-16.c
! 2d9452e937f198bbc849c148dc936929  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-32.c
! 17d8a102bf765b820e4022ff22287e7a  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-8.c
! 764fab21a22bc2ef07ba24928f43bec8  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-char.c
! 544c26f57562f2a74d0d47108a8c3e02  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
! 57a1dd4020c66039d3ea29b26c6248a8  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-int.c
! 5af585cd7d7242537befab8df7de3eab  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
! d2d4a4688d2263b8b8350a212fdf363d  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-misc-invalid.c
! c30d8748ce25dc33d712b08fb07301c2  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-pixel.c
! 0bd12473bbe86815229a5660d3d7ce3c  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-short.c
! 7e72d88480949b66c5c1e5b2c18e5d77  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-char.c
! d4351a17ccf4738cb5ab89b0044bae85  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c
! 317cfaac7b35d9fc0833c3d983441065  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-int.c
! f194a71a4d66505f05a1c02b855784c6  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-longlong.c
! 307b24eba5ae45bbe82f970992e84526  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-short.c
! e4fbe5d0e5c9d22841c6836a3291bd79  gcc/testsuite/gcc.target/powerpc/fold-vec-st-char.c
! c884f4242bd424ff4337f85e2a9563f6  gcc/testsuite/gcc.target/powerpc/fold-vec-st-double.c
! 0bf51ecddc6744a938b22c21dcee1b42  gcc/testsuite/gcc.target/powerpc/fold-vec-st-float.c
! 9da8f017e147e1f745c281029f8113f8  gcc/testsuite/gcc.target/powerpc/fold-vec-st-int.c
! f9357aacce38be61d55bf28ca5c4ab77  gcc/testsuite/gcc.target/powerpc/fold-vec-st-longlong.c
! 4e0a13aac50c1c19a6931feb0ffb2d1c  gcc/testsuite/gcc.target/powerpc/fold-vec-st-pixel.c
! d21c8ed0be51451aebb44a84e728f25d  gcc/testsuite/gcc.target/powerpc/fold-vec-st-short.c
! 02efabc53e9b8ee5c74a293ddd4e1202  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
! f0484fe45046c4ec74342b1cb5913b34  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
! e5b9216f97f29e1a1d4c75ef13f8f467  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
! 2f6bfc35e9a15aeab8f9d268c964daaa  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
! b9a7d0867cf956106c1c913ca3b53c6f  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
! 8ec98c8d3393166996141eb720a8180c  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
! 93d4697e1ff119fa63a935a5f03232ad  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
! 8589454364daadb6a2531178384c59a9  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
! a0582ea896a9ccaac653a9079b4f84e7  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
! 475f043b2c4302cb42ee7eba02bc1a0b  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
! a1c78bbf9ad1aa599988d66f48ed6073  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
! c88795a95185aecaeb65ac57d64d508d  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
! c8e8a1929302a21d21a8fa658dbf9af7  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
! c75619cfb1d6fa73f565503274147c94  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
! 629e2f1900a2d3762dcb09be41e955c6  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
! 04cc8ef6b59700e8a36bff2a87082daa  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
! ff02b1a6e44d91e7917f35d05f8cd32f  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
! e07838fd28b6f32dfb77f5cec8e486f1  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
! ad2b4572d2db6cc1979e2268ca64ca93  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-char.c
! f1b1c0fb1f99284d5a7de09a14694612  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-float.c
! 6c338f4ac8c6539eeb08f4db9c02dc2a  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-floatdouble.c
! 3e023d589a9aaa4f547577fadcde7c55  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int.c
! c813ce6c39b8d88d5f032ba70b6f455e  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int128.c
! 8eb25756d7e25054c651ed39b9155668  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-longlong.c
! 61197a95386eed25a58aa795f9a43be9  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-short.c
! b681248afe4bdb1d889c6999e517fe7f  gcc/testsuite/gcc.target/powerpc/fold-vec-sums-int.c
! 8303935008cde3448504afa45d270261  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-char.c
! 657a28c79c79ec58475fb5af81a67d7a  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-float.c
! 5a377435b40e4f2de36018f4c6ebcb84  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-int.c
! 1551b0b6be64f5eba760a72e19de3597  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-pixel.c
! 3945e589530622f3dffbe2381c9922e1  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-short.c
  677059b338aae8245e5715c1bf783dd9  gcc/testsuite/gcc.target/powerpc/fp128_conversions.c
  87367128477fa0028f5db348e8727505  gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c
  15196f9ab6aa2418751a7940e2c689cd  gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c
--- 85109,85355 ----
  a4ce181d9028c3331d12902e18b6c8cb  gcc/testsuite/gcc.target/powerpc/float128-mix-2.c
  7e61fd8543295554419a5912d79afeb9  gcc/testsuite/gcc.target/powerpc/float128-mix-3.c
  d8a8e21eb6eebbb81346e00d9e4a210f  gcc/testsuite/gcc.target/powerpc/float128-mix.c
! 3bdd832332d4ae02d852c4b2dfb52019  gcc/testsuite/gcc.target/powerpc/float128-odd.c
! f7404d41575a66bf2427760699b58a1e  gcc/testsuite/gcc.target/powerpc/float128-sqrt1.c
! 315d9e944794c5ffaf19028e9d4c4578  gcc/testsuite/gcc.target/powerpc/float128-type-1.c
! 53225f27bfecce145d878899017ca6be  gcc/testsuite/gcc.target/powerpc/float128-type-2.c
! b6a2a52f652b1856bcf161975edb6c5e  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char-fwrapv.c
! a553cb9407fabc15876d05a2dd728d4c  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char.c
! 8324f8f85a9e37fb5edff7713afcec0c  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-floatdouble.c
! aec0dbd1827ba8526d22ebaea40559b7  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.c
! e73b7023063d8838dd50db381ab37952  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c
! 4b142dc5d16c0e709e05ccb86d492ef0  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c
! a70bc76a1d9f140926073a6af9839786  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c
! 113b52e9896e4456960dc415784a1720  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.c
! 54666df98dc3a17547a0baee7ce244f1  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p7.c
! 6ac554080a0155e02aa3d294e8d96ecf  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p8.c
! 73efc430017b62161de41c69a53bf68a  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p9.c
! e73cbce20af7555d089f12bd485360cb  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c
! 35c391132bab8f0f86a12feea5175b88  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c
! 9a02423b62e66fc64f11e7ad4edb173d  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c
! e284e6565dc79e35c461bafe92ba20c1  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.c
! 3d6ce57118f40b53552e002475aa093b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p8.c
! 9a02423b62e66fc64f11e7ad4edb173d  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p9.c
! a5acbf1a9dd494a840117027d1865115  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short-fwrapv.c
! 3a3190ae771079a5965db786fab77cd8  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short.c
! f448def8db531e43fa40e0985e3e783f  gcc/testsuite/gcc.target/powerpc/fold-vec-add-1.c
! 0e961aa94ca34ce7ccb4c6d861210190  gcc/testsuite/gcc.target/powerpc/fold-vec-add-2.c
! 49bc66c7463f87ece3dfc77e0048e5f3  gcc/testsuite/gcc.target/powerpc/fold-vec-add-3.c
! c7ad0bb23f0d6ca041c7554d066e127f  gcc/testsuite/gcc.target/powerpc/fold-vec-add-4.c
! 6cc9b0638cf1d57d9d27d7984fb7d404  gcc/testsuite/gcc.target/powerpc/fold-vec-add-5.c
! ca3027d7accef27021bdb6f16b3e1fde  gcc/testsuite/gcc.target/powerpc/fold-vec-add-6.c
! 33f087d294f89e2d152b0cf64581c313  gcc/testsuite/gcc.target/powerpc/fold-vec-add-7.c
  c40e77e4d231f0aa78af12735573c571  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.h
! 49fa72a34a0e57f63c7b15cbca98c30f  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p8.c
! f7878833307d05af855bf482cada74d7  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p9.c
! f7ed61cf10ec304306c816fdb893284f  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-double.c
! b37a694dad049a8ea2adffdf368aa3c9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-float.c
! 1b089cb49e552cf54b0658ef0945a88e  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.h
! 33c403b4e1375e7bccad475d4d4c567f  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p7.c
! bca6ba94d4afb1d08330470533791016  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p8.c
! 9a96431838374341f4a523c74dc9980e  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p9.c
  95589273f7be6f4ef22f88ff1ff2d4c9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int128.c
! 9298f3315b11f6d3c584087dd7fb0dce  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-longlong.c
! 5db632117aef350d431b6c5600126c49  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.h
! 68269579d4582a617495eef1f98fb004  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p8.c
! 8ebfdc81fe36c4ec0e7c87c64c9bcf55  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p9.c
! 2cddde9b010676fbff3285b4c1c41862  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-char.c
! 62b33878d1d306a445b69a6e90a5b747  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-int.c
! 5c8db95450c9d7e8c7b5689c471c3c03  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-longlong.c
! b6c1b1623a2a82b15204f8fa9797b742  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-short.c
! 8167801f212446f315996b35d72fc2ec  gcc/testsuite/gcc.target/powerpc/fold-vec-div-float.c
! 48c69252a530952a902a33aa0e84284a  gcc/testsuite/gcc.target/powerpc/fold-vec-div-floatdouble.c
! 7f6e62feacca345628d045f307a379e7  gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
! 990e7388d224117dbea6361b38498486  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p7.c
! ffdf9793bea5cdbc4818e67cd4817ccf  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c
! ecfd9453d69709b57de14af929fe990f  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p9.c
! 091bb63856fa6ffca76dc61a8ee80cde  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p7.c
! 4e1762f19f049ab55413ffb5ba7e02f3  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p8.c
  f28454392bfa7d7a1137bcafe2123abf  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p9.c
! 816b19a60d4c627fd919987553072ad7  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p7.c
! 67151c1341494d1f689310a0371956c5  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p8.c
! 0707b9d595820523619d690e6e591df7  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p9.c
! 6bdb51b6316f0a4f2f93f1155102bcde  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p7.c
! b46b2ac5267743e031f9c7244b377c6a  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c
! d7fb1a185df1072c23755b1fd62f5cb8  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p9.c
! d13c2ac6c0cbf3dd88d5592fe0f29585  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p7.c
! e9b25a44b029b260f49c4820fb9c3202  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c
! f7dc2cfc9c26fd95ef2f0bc675611d03  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p9.c
! e06de870555f0843fa5460bee8781235  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p7.c
! eabc7fdf1db862ae587a28af476ce1da  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c
! e5e2fc0f84272f6e562566f6d1c05e07  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p9.c
! 207b8940d92a1adb533407a51e2e820e  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p8.c
! cea391ebe1e1d60a99e464951adaca11  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p9.c
! 18d25a6813f3b4dc7101faa0f06bcca8  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-double.c
! f38205a1d205fee60523f53641b39d03  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p8.c
! cc5194cc851aed4eec5c200e8afc5557  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p9.c
! a411f8032a9bc1cde24f0706dfc140c6  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p8.c
! 954143b4b856116eed69a18e5b2f92d0  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p9.c
! 423774fe783c0772f7fa27effc1b8883  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-longlong.c
! 07db6c93bd33f83eb2c3518bb5630e57  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p8.c
! dcec1275e73bf982d2e21101b4c764f5  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p9.c
! 19d6cf497287e8d4ff895964cb88ef96  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-char.c
! 269bb8262b1162fa30fe677cfac2c1d9  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-double.c
! f8bcb87f33fc74a8c1644984c5f4481f  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-float.c
! ad25b5baec6ed853172f122cb92c047e  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-int.c
! 1bd03cbd6cc1eb2b521dea62f297f245  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-longlong.c
! 0b9f59c813aaf2af34ba4da967207651  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-misc.c
! 185a85e45612d18e480c29e4fde7b9c8  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-short.c
! 1e8ce65f55a33661acde759522a14bdf  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
! a62f496ffb05ac3374f9c9adfa1b057e  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
! df41df075753be932970e96baf85c417  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
! 96114e2e99b86ba304333a3aa71f889a  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
! 76e158f4f81790f0542e10ebd664c3a5  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
! 181b8ba7fb35869a1627e2e3d70e2328  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
! 463786cd3dc69dbda46becf82ca24d09  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
! 7e44a641ef7b42e1954c45d817163b43  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
! 0721ac9aa325896e248efef55bfc5dc3  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
! c535fd556428bfd4a4c8f59d21d7c632  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
! db3433a0d536192fb422acb1a69d34ad  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
! 6289447ce669602d545c82498ba50811  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
! a3266aa5f5e527dd361faa86569edc1a  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
! abd13f01256bc19cd87f550d6c41ac57  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
! 9eb2b573da8f973e8bd6f5a4ae891acb  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
! 689af64077a1f88c3aa878dc1b6fa674  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
! 85b4ff590ca567ae03790a35a7fba55d  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
! f0a50524432a9a8991227ad75c01feb1  gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
! 76f0363022c4e90f1af5b5ea2add9fd1  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-char.c
! e9b8ff9704c2887baa3428c75047a3ed  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-int.c
! 0dfa4690853ea755410e7d270e4a7b46  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-longlong.c
! b436e9126f6922f42eb364ff491f923e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-short.c
! 8023d21a92c75a3287e80b78044206b1  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c
! 2d150a8ff2e3bcea159e84606440f7e4  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c
! 7382ddd198807b89d4b0cd7c0fbca831  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c
! 26a3a57d4b04adf980ae4bf08802d582  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c
! ffa1b67ffb5a5c1dbbc70b8e5634e565  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c
! adb3684706d43b7f77c988761e724448  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c
! ca330d555f6f0ab82c2467f90e4ce47e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-char.c
! 5330b7cf5d1e535f36303feea529d84a  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-int.c
! 98c9b2e3d39dc7d94beaf7716f414ea7  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c
! d978c8d9ec85a7b611fc60b8f48f6aab  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-short.c
! e7b299d267548ad447fb55f6a57f4e5e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-char.c
! 422436deda81af796b1e17236f96f204  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-int.c
! f31d80d469e05b4dfc57c5d5b37b6e1a  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-longlong.c
! 1e6da8ec7a6007db1fec828067df7ff5  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-short.c
! 4cbaa24bbc6b8cfe1021ab002c520209  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-double.c
! 47750d6cca0954aa6a3eea39898a805e  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-float.c
! 87c453392e4a4b9c0682abe0256cd9bf  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-short.c
! 9c9312a38b03de8e5704532e69bddaa5  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c
! 98676adc711323b9e4a9b9a258b5db60  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-int.c
! b182f62351fc475a1941fa5e579ca45a  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-longlong.c
! 43e27fd98954fc4b9524967bb7e6c877  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-char.c
! 6c4131afa088d41aefc83f077e15dc1b  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-double.c
! 5c7c4090b243f3e65ce01edf4749de47  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-float.c
! 5e9279db40c740d4a97285967eabbabb  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-int.c
! de861a4378cab1e12017e36a8775b509  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-longlong.c
! 0913e7426df9babd07ab12c5bbfd52d6  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-pixel.c
! 0a7210ed145d6736780cc89af7577860  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-short.c
! 73db89c6d21ea1098902ab305274170b  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-char.c
! d22c37dc2c7a8f204fae8fc2cf4c9874  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c
! e8bf639a2de880655b55083989402648  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-int.c
! 31614adbb10734cf01cb1d8d6a9ebb79  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c
! 96ce7fb5e3c6cf1e0a1e31a0f767d984  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-short.c
! f25353871741ea12ca90f07d06c5e5e8  gcc/testsuite/gcc.target/powerpc/fold-vec-missing-lhs.c
! 66b0ea7aa8f073558121b114df1ae20b  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-char.c
! da86500d55024c53bda13f2393998bfb  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-short.c
! c5e4b2a6cc9acb2b1f71965e929bf309  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-char.c
  0f797b1a0a9faf5002c0d9d6c5d1db3f  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-misc.c
! 23cfe8b971de4d776e65f68964a7e0c8  gcc/testsuite/gcc.target/powerpc/fold-vec-mule-short.c
! f64c7ffe5ddec711d75e6be198c3c4a7  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-char.c
! 7c96d7d156d6d82d73f6e3b35ee1b5e9  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-float.c
! 41bb3fe130113e0a3e4cf99e8b67cd66  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-floatdouble.c
! 90a8d38a971ff77b61e88f3a2d7f179d  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int.c
! 1ae4de4c8d30d822660ff7537f245c1c  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p8.c
! 1967d31a75e6b9c57366f3b280657bfc  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p9.c
! 252fe259c579f9ee9f14bfbd463f4fb6  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
! f8dcc6d93dddc81e272472cfaccffffe  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-short.c
! ba70d7d01f034b8c1950370891a3a4cd  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-char.c
! 0c3c35e0b64056513415039e053f48cb  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-floatdouble.c
! 1478995b65d255350ecdf6e0be1b7b91  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.c
! a20006ddb813a46e645950add3b340a2  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p8.c
! c05ffe9dd8339a55a3e94cc89abc478a  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p9.c
! 054f9cafd23a90a4b003fb2d57e37dfc  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.h
! 98b17f7aecd1e8149f9caf6526a2426c  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p8.c
! 57a090555eeca63efd9ee35f55aaf014  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p9.c
! 9740bdf57eb97ce0daf31fb587006766  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-short.c
! 64b3677eb71a8612699fa05a156a6645  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-double.c
! 014d67977ebff40e940e54593da1b367  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-int.c
! 69a0a371d10e9e1538759621c9cb50bb  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-longlong.c
! bb412e913cf5a35ee0a49945015872a8  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-short.c
! 1fad79f90ba81c1ecd1f168629843b68  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-char.c
! d2882b13ef31509c47e2f3596ab4e51a  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-double.c
! ef73f52369ca6f509dda718cadf063ae  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-float.c
! 83f98f3d92e935139993a181256a8011  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-int.c
! 6fb59e32122136d17675320c2452c2e7  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-longlong.c
! de2fe583fbcd405c2d1a90d018a0b694  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-pixel.c
! 105c7f735460b109d4e4f07b4e3a46a4  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-short.c
! bfdd7118da6cf3c32f4d4b2725649c5f  gcc/testsuite/gcc.target/powerpc/fold-vec-select-char.c
! 97c04ff8e90435ce9842d553f37f9c9b  gcc/testsuite/gcc.target/powerpc/fold-vec-select-double.c
! a29b840f1f834299110719a20c11232c  gcc/testsuite/gcc.target/powerpc/fold-vec-select-float.c
! d37e9361c0f55819014c539000a8ceb2  gcc/testsuite/gcc.target/powerpc/fold-vec-select-int.c
! 7a00ee457976d012ab89cec1b77b7a8d  gcc/testsuite/gcc.target/powerpc/fold-vec-select-longlong.c
! da9c6341980c985c22fc5b835b7fc5b6  gcc/testsuite/gcc.target/powerpc/fold-vec-select-short.c
! c4703b2a1e6fac67748d3df85e7b7277  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-char.c
! 03c3afc1580bad27dac179de0c8eda50  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-int.c
! 91169755d26a6c24f3b2c3fee747c99e  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-fwrapv.c
! 5769a1da24717d262e9cbeaa617f2418  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c
! 750fc65181c4a99f2a41a4f9122cdd12  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong.c
! e6a07c7716ec1ae94d6ffcafcbf16408  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left.c
! 19a0337ed81dc42afc99c6a934ce722c  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-longlong.c
! a7ed507a04ffe323f47cf09f299ba1f0  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-short.c
! 049b2c7e793577d0e5ab7a16d3a9d51d  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-16.c
! 1c6841b28ebb91c59fca1f18e406a624  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-32.c
! 10d425b90ce4c780a36a1b260f8d8c5c  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-8.c
! c9d319d1544f9daef3cfa7cd68166cb8  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-char.c
! bdbe6f4704499df423090fefbafbdde1  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
! f688b3c79c52ec21d1a1dbbadb70b7a3  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-int.c
! 8a6af02f09d810612cc69739c5e94c4e  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
! 48af7a22156a72c46a2942f794ff3f64  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-misc-invalid.c
! b009c98626674a4cf7ecb7ffa9828987  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-pixel.c
! 32c75919f4d48e15bd4de7f9c3217bb1  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-short.c
! 0ce6cde6febb17915055264428d9a41e  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-char.c
! 64c477afa1c9417b5f455464789843e2  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c
! 80b45ce1a0059a994ba92e12e8670a41  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-int.c
! 77bf8612bd63e5292683dc95fd881f2d  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-longlong.c
! e8e3f4bc42782f82531c771eb2e3e7e4  gcc/testsuite/gcc.target/powerpc/fold-vec-splats-short.c
! d6a4c4431c4d45a25c122f53f825e912  gcc/testsuite/gcc.target/powerpc/fold-vec-st-char.c
! 7aae6ccfbff06e929de122a744804f55  gcc/testsuite/gcc.target/powerpc/fold-vec-st-double.c
! a87d09eacc1304ecb6acbfeeab4c31e8  gcc/testsuite/gcc.target/powerpc/fold-vec-st-float.c
! 910dc11527c6e1e57118403bce16b39e  gcc/testsuite/gcc.target/powerpc/fold-vec-st-int.c
! f16657264b5404b16db60976c2409255  gcc/testsuite/gcc.target/powerpc/fold-vec-st-longlong.c
! 46db619e80c82ba32df1b275557e5a90  gcc/testsuite/gcc.target/powerpc/fold-vec-st-pixel.c
! 9c55054ae158d904c729ae7ae612ffcb  gcc/testsuite/gcc.target/powerpc/fold-vec-st-short.c
! cb4a268bc6df050ba50f63074404d934  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
! 74df7fde1900fd169fa263a3f8acfe02  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
! e804257730326a491e284df9f43273b4  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
! 7249252d5c1c0914e5a7c7d432a2a3fe  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
! 3848b907caf1efeb5fc7295541360fef  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
! 96b84a0cbbaf2f50470388857e4d8e71  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
! f63b0e713687de1ecbcbd371b49a2278  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
! 698db3be323a94fd92424f573eb3cecd  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
! 430e7a895e3efed4c588f0c497810553  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
! 1bc68b370b37a2fb51e970cbe84d5d1c  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
! 59c7eebfb6f02b4920a732fa790e4429  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
! c9cd5eeff2a12084787ea4e80ac6e3ba  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
! dffdb16bf197910e6fdd0562efe0c49e  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
! ddabfaba52f6aac3de208a2e7570117b  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
! 8e84b1139d1c8c9cfd3f4f169324a4f3  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
! 7e56f97ade51bfe7504574dff3f98c0f  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
! 8a518df1bf966edb4ec7dc22fde4740a  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
! a9b58b60ece15410b9c1f25e44100f5b  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
! 6be7f235d8b83c8f3fe9f0c2a9619b4e  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-char.c
! 805647d6f90a4d93ef56f41d2fc10bdd  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-float.c
! 3fce10bf67ee1ae6f6e2c25cb6767cc1  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-floatdouble.c
! 190d71115e6ab1d961b5bd3e67df1700  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int.c
! eba345ff1b4f3a43001024fee1274c97  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int128.c
! 6ccf1c471b67556a2ba208b00f6ec373  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-longlong.c
! 10ba8adc6ea608206be7be75201b9343  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-short.c
! 98bdf3c8dd3a52b4e4a92b2a7711f3b7  gcc/testsuite/gcc.target/powerpc/fold-vec-sums-int.c
! 324c47f89e7e97362dbd3ebe43a3b3ea  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-char.c
! b223daf0484444a1c1d25f3175fa3150  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-float.c
! e98ff234e9f67d9ead7c45a7a92bfc36  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-int.c
! 3d7211d5fb5e8dec00f59b7ced87fb18  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-pixel.c
! 79f7e8aa693277d4e115ef5e8f422047  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-short.c
  677059b338aae8245e5715c1bf783dd9  gcc/testsuite/gcc.target/powerpc/fp128_conversions.c
  87367128477fa0028f5db348e8727505  gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c
  15196f9ab6aa2418751a7940e2c689cd  gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c
*************** b681248afe4bdb1d889c6999e517fe7f  gcc/te
*** 80364,80376 ****
  dcbebe071d63c21a542a5715031d4d82  gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c
  4bdf54c34acc51427043fafe760993e1  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c
  2016e7aba1138d1b75643f27f6d362c9  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c
! 9c173770fd757f9a796a946f03ad7c3d  gcc/testsuite/gcc.target/powerpc/fusion.c
! 8e636ea4149deaaca61f8238f59a81f0  gcc/testsuite/gcc.target/powerpc/fusion2.c
  c8bb039efa1ac96486e0294c85966d8f  gcc/testsuite/gcc.target/powerpc/fwprop-1.c
  d339d3fe4c50dd4c2727de10dcf3374e  gcc/testsuite/gcc.target/powerpc/gcse-1.c
! bbca57fae9dea88267eaea26d8c43380  gcc/testsuite/gcc.target/powerpc/gnuattr1.c
! 08b68023ae875e4ee9f801b117931ec6  gcc/testsuite/gcc.target/powerpc/gnuattr2.c
! b0289eef57a41f5bdbb7823fee56214b  gcc/testsuite/gcc.target/powerpc/gnuattr3.c
  9af14d5dfa11a1cc8018bd66b0978df8  gcc/testsuite/gcc.target/powerpc/htm-1.c
  95e15b8f67722f785f9cc961f2fc1f4c  gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c
  5aacca7a653e58dd2b7d92bf9eaf7c33  gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c
--- 85357,85369 ----
  dcbebe071d63c21a542a5715031d4d82  gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c
  4bdf54c34acc51427043fafe760993e1  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c
  2016e7aba1138d1b75643f27f6d362c9  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c
! 3e2fc36d2fe687276ae183faedca62c9  gcc/testsuite/gcc.target/powerpc/fusion.c
! 1b40025433c5882c82a7973a8acd66cf  gcc/testsuite/gcc.target/powerpc/fusion2.c
  c8bb039efa1ac96486e0294c85966d8f  gcc/testsuite/gcc.target/powerpc/fwprop-1.c
  d339d3fe4c50dd4c2727de10dcf3374e  gcc/testsuite/gcc.target/powerpc/gcse-1.c
! 8bb9827b615648c123de2019c6d1017b  gcc/testsuite/gcc.target/powerpc/gnuattr1.c
! aada7b2a377003a525173d4eb343d815  gcc/testsuite/gcc.target/powerpc/gnuattr2.c
! 420d8355ef8a559c6b1c6efc70c22402  gcc/testsuite/gcc.target/powerpc/gnuattr3.c
  9af14d5dfa11a1cc8018bd66b0978df8  gcc/testsuite/gcc.target/powerpc/htm-1.c
  95e15b8f67722f785f9cc961f2fc1f4c  gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c
  5aacca7a653e58dd2b7d92bf9eaf7c33  gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c
*************** b777ef2a10f6f5ff643ab886bf487233  gcc/te
*** 80379,80385 ****
  8d634b2a7d443f1e5b4b69716e57ac00  gcc/testsuite/gcc.target/powerpc/indexed-addr.c
  1cc843325d44861ca12b01f8232baced  gcc/testsuite/gcc.target/powerpc/inf128-1.c
  4df3f086531ccb000a342f9552c6da9c  gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
! 2cfd2ecd43230367d6d063b77664e314  gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
  7893fdf7b4681a84cb4d049bea9ffc10  gcc/testsuite/gcc.target/powerpc/leaf.c
  9d79c9715a5734121e7d5c8fa078a7df  gcc/testsuite/gcc.target/powerpc/lhs-1.c
  b72cb485bdc6a86fc8bed93d719c35f4  gcc/testsuite/gcc.target/powerpc/lhs-2.c
--- 85372,85378 ----
  8d634b2a7d443f1e5b4b69716e57ac00  gcc/testsuite/gcc.target/powerpc/indexed-addr.c
  1cc843325d44861ca12b01f8232baced  gcc/testsuite/gcc.target/powerpc/inf128-1.c
  4df3f086531ccb000a342f9552c6da9c  gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
! 9232c3afa3f774c519412b7b192f2cd0  gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
  7893fdf7b4681a84cb4d049bea9ffc10  gcc/testsuite/gcc.target/powerpc/leaf.c
  9d79c9715a5734121e7d5c8fa078a7df  gcc/testsuite/gcc.target/powerpc/lhs-1.c
  b72cb485bdc6a86fc8bed93d719c35f4  gcc/testsuite/gcc.target/powerpc/lhs-2.c
*************** f8f126149a6da294781e9649ee3b2d6e  gcc/te
*** 80389,80396 ****
  edd0512cd703018bda99c607e742ce2c  gcc/testsuite/gcc.target/powerpc/longcall-1.c
  094f3e09aed127827288e30d1b8d8303  gcc/testsuite/gcc.target/powerpc/longcall-2.c
  be1c76ec79fb3c50cde115977877bc10  gcc/testsuite/gcc.target/powerpc/loop_align.c
! 997888f97d97b2d6b3f8334578cdef8e  gcc/testsuite/gcc.target/powerpc/lsbb-runnable.c
! 5f4e4a164e3c5d09cd44b230ee696aec  gcc/testsuite/gcc.target/powerpc/lsbb.c
  d979def6d9086fac6816dc4cefcbe6c8  gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
  6d76189401236bc0e8bdfcc728160312  gcc/testsuite/gcc.target/powerpc/m128-check.h
  95f0a3ed470b480e62e5510f13cd33b8  gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c
--- 85382,85389 ----
  edd0512cd703018bda99c607e742ce2c  gcc/testsuite/gcc.target/powerpc/longcall-1.c
  094f3e09aed127827288e30d1b8d8303  gcc/testsuite/gcc.target/powerpc/longcall-2.c
  be1c76ec79fb3c50cde115977877bc10  gcc/testsuite/gcc.target/powerpc/loop_align.c
! b9011b4a9b3c1d53421da42c87e928c4  gcc/testsuite/gcc.target/powerpc/lsbb-runnable.c
! 54646475d468a2b1ab133b57d8c9ce02  gcc/testsuite/gcc.target/powerpc/lsbb.c
  d979def6d9086fac6816dc4cefcbe6c8  gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
  6d76189401236bc0e8bdfcc728160312  gcc/testsuite/gcc.target/powerpc/m128-check.h
  95f0a3ed470b480e62e5510f13cd33b8  gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c
*************** b94b02f54e2566541edbead974161cd8  gcc/te
*** 80410,80415 ****
--- 85403,85409 ----
  2f3b0bbee570abb68e2bf91b3f4ef43d  gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c
  7ff80abf6e1bf3a4c80a83f649959643  gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c
  8b6d1c7065bb09caeaafe44d4931e70d  gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c
+ 24d225346acbd6a1813f58b8dde96931  gcc/testsuite/gcc.target/powerpc/mma-builtin-error.c
  88617795d710b40cc25cbabe90e45e4e  gcc/testsuite/gcc.target/powerpc/mma-double-test.c
  57fc310b69598562cbec3535f97fd354  gcc/testsuite/gcc.target/powerpc/mma-single-test.c
  a271f35c38761fdbb749bf1bec83cfe4  gcc/testsuite/gcc.target/powerpc/mma-supported.c
*************** dada9b5540f865ba0c0df21dc2b72904  gcc/te
*** 80458,80472 ****
  e7f24c5bcf4677a0ae7a8fdcd1aeff80  gcc/testsuite/gcc.target/powerpc/mod-no_copy.c
  fed2453600d3a45ca2a5679c322ff194  gcc/testsuite/gcc.target/powerpc/mod-peephole.c
  b3bf87376bd60d32d00ef203e1cf7d6e  gcc/testsuite/gcc.target/powerpc/mod-vectorize.c
! 743b3b257bf6e6aadeffde146364dd0d  gcc/testsuite/gcc.target/powerpc/mul-vectorize-1.c
  0756792d071f22b4d0d92c56ab912d25  gcc/testsuite/gcc.target/powerpc/mul-vectorize-2.c
  64af73bfe790036cc6a9cae813ae5517  gcc/testsuite/gcc.target/powerpc/mul-vectorize-3.c
  fb4a75732e13475e8348aaa599f24ca9  gcc/testsuite/gcc.target/powerpc/mul-vectorize-4.c
  0eeef6e17953a9f9d3921bffff4a3fad  gcc/testsuite/gcc.target/powerpc/mulic3-1.c
  40832ab7e8baf16efb6af3d58eb2479b  gcc/testsuite/gcc.target/powerpc/mulic3-2.c
! 4eaddf22e0f22b514f7215226f16b76c  gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
! f43cc23cf8c50dfa7710fe42d4410b04  gcc/testsuite/gcc.target/powerpc/mulkc3-2.c
! ab8f7421611e79a8980300ca3400cc93  gcc/testsuite/gcc.target/powerpc/mulkc3-3.c
  1f98efd43a15bde30353489bd97a085d  gcc/testsuite/gcc.target/powerpc/nan128-1.c
  7ae49a33b45e51770e88e4a1e02a8d3e  gcc/testsuite/gcc.target/powerpc/no-r11-1.c
  0831e4d64f9c944a22351c0a3a55d827  gcc/testsuite/gcc.target/powerpc/no-r11-2.c
--- 85452,85466 ----
  e7f24c5bcf4677a0ae7a8fdcd1aeff80  gcc/testsuite/gcc.target/powerpc/mod-no_copy.c
  fed2453600d3a45ca2a5679c322ff194  gcc/testsuite/gcc.target/powerpc/mod-peephole.c
  b3bf87376bd60d32d00ef203e1cf7d6e  gcc/testsuite/gcc.target/powerpc/mod-vectorize.c
! ad1bf2ac6624bd6fd4ccb08fb87916e8  gcc/testsuite/gcc.target/powerpc/mul-vectorize-1.c
  0756792d071f22b4d0d92c56ab912d25  gcc/testsuite/gcc.target/powerpc/mul-vectorize-2.c
  64af73bfe790036cc6a9cae813ae5517  gcc/testsuite/gcc.target/powerpc/mul-vectorize-3.c
  fb4a75732e13475e8348aaa599f24ca9  gcc/testsuite/gcc.target/powerpc/mul-vectorize-4.c
  0eeef6e17953a9f9d3921bffff4a3fad  gcc/testsuite/gcc.target/powerpc/mulic3-1.c
  40832ab7e8baf16efb6af3d58eb2479b  gcc/testsuite/gcc.target/powerpc/mulic3-2.c
! c980e9d389b2784b152fb6522586c1e2  gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
! 5c5b8118c0991019e07695b6ae32daad  gcc/testsuite/gcc.target/powerpc/mulkc3-2.c
! 93c01f594be3c73e5a96e685a4217aca  gcc/testsuite/gcc.target/powerpc/mulkc3-3.c
  1f98efd43a15bde30353489bd97a085d  gcc/testsuite/gcc.target/powerpc/nan128-1.c
  7ae49a33b45e51770e88e4a1e02a8d3e  gcc/testsuite/gcc.target/powerpc/no-r11-1.c
  0831e4d64f9c944a22351c0a3a55d827  gcc/testsuite/gcc.target/powerpc/no-r11-2.c
*************** b96c1a1a69bfb6f4e16a5153a31d50f7  gcc/te
*** 80485,80535 ****
  9c56caddea7ae0680f831cbc5cf18478  gcc/testsuite/gcc.target/powerpc/p10-identify.c
  05222dfc42774b4f3acc94610419905e  gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c
  7780b667e143b7a27c0d0e2bd81ed8e4  gcc/testsuite/gcc.target/powerpc/p10_vec_xl_sext.c
! ce50e9d23c19760a47653d7f715ecee9  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c
! fb42625c289454bec0def912cc30158c  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
! 0afe890a8a6d0e3f48d6953f6d929e24  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! f09d1efdb94c4df7242483a24931c268  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
! ce2b08fad0fb54ad34cf098a6d6911e1  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
! 27bd7a00d6e51a2a6a0ee49806b1ae0b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
! 45ceb62bbb263669a59d5e6dc11d772b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
! d6e6c66ca8a20dbddc85faa6f4079629  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-6.c
! dfd11ace4c77ba9f6d612eca57c14d66  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-7.c
! 82ee5955406177d024c2b5dfbd6e3c04  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-8.c
! 3f36125dba0b678b5c4ebda3ea0972ce  gcc/testsuite/gcc.target/powerpc/p8vector-fp.c
! a2e5b68bfd2ea3d276b454ec96d52e0d  gcc/testsuite/gcc.target/powerpc/p8vector-int128-1.c
  03e5ad9b0268bf7e8d1cec36bef9bb85  gcc/testsuite/gcc.target/powerpc/p8vector-int128-2.c
! d29e74e0129823dc36f1374762ad6ad5  gcc/testsuite/gcc.target/powerpc/p8vector-ldst.c
! 071ae9020e6ba54f477151c14b04a6b6  gcc/testsuite/gcc.target/powerpc/p8vector-vbpermq.c
! e1e635bdf4ae157e18841dd10e02a6da  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-1.c
! 1e12f58b8023a9191db817b650c73a88  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-2.c
! 3f785b89f9e79a075e4ee1c248a11656  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-3.c
! 8fe2147d51f2bd88750de3894262aa81  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-4.c
! ac13569092da49f9f65c7e25f4d24195  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-5.c
! c901ffec5dbe6e6d78dbfb3a34f12b92  gcc/testsuite/gcc.target/powerpc/p9-dimode1.c
! 5bdae9209885901fdd89f59cdd943038  gcc/testsuite/gcc.target/powerpc/p9-dimode2.c
! 6e8fc778a1696df8771df8ca1237472f  gcc/testsuite/gcc.target/powerpc/p9-extract-1.c
! d6afc35c35702136a708d04f126a82e6  gcc/testsuite/gcc.target/powerpc/p9-extract-2.c
! c56a6ab7e6d523ace3d91f0a065ebb54  gcc/testsuite/gcc.target/powerpc/p9-extract-3.c
! c2b949690cb6e72dd546aed5827b64c0  gcc/testsuite/gcc.target/powerpc/p9-extract-4.c
! b04e7918ede53e0a53b858a3b3a641ff  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-1.c
! 1791a584448303eef8a20cec8498f6c1  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-2.c
! 59edf834163c9e7b0566e30d948031fa  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-3.c
! ace16d23553bab880b5e6c8794934a6e  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-1.c
! 19121f17c7feb72d670e9382ad5965b6  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-2.c
! 1c4096318894906aeea3c59f6151ee65  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
! c905f0acd58ea3f53342d0a5e6ad31d1  gcc/testsuite/gcc.target/powerpc/p9-minmax-1.c
! 124520ee5046cfc525fde09738460967  gcc/testsuite/gcc.target/powerpc/p9-minmax-2.c
! 0a8507f11d2002e05f6be0a6d74409d6  gcc/testsuite/gcc.target/powerpc/p9-minmax-3.c
! 42cd8cbf8d7b5a9d9dac89b697c51d25  gcc/testsuite/gcc.target/powerpc/p9-novsx.c
! ab831911f1b70765cbcd5d4fc610974c  gcc/testsuite/gcc.target/powerpc/p9-options-1.c
! 6b429daabb08b819a3d29cfef601aa84  gcc/testsuite/gcc.target/powerpc/p9-permute.c
! b2b91c760b5f7a51e1840155259ba78c  gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c
! 6cb138c3098281ff4755736c8203469d  gcc/testsuite/gcc.target/powerpc/p9-splat-1.c
! 0fe0246f06a0106606d50393827bbaad  gcc/testsuite/gcc.target/powerpc/p9-splat-2.c
! b995e4a018233df59ac81589a455bb9a  gcc/testsuite/gcc.target/powerpc/p9-splat-3.c
! 866b5c9ac7d351fedfb3a80146f5180d  gcc/testsuite/gcc.target/powerpc/p9-splat-4.c
! c0182230f1d8b9ae13b90489a6c51bc8  gcc/testsuite/gcc.target/powerpc/p9-splat-5.c
! 1e57f5b08332092fd62690550a5882d0  gcc/testsuite/gcc.target/powerpc/p9-vbpermd.c
  696e4b1b607f9c82564bfc887f22bd00  gcc/testsuite/gcc.target/powerpc/p9-vec-length-1.h
  5e9e7fcaee357c16920957129d3b8cef  gcc/testsuite/gcc.target/powerpc/p9-vec-length-2.h
  4a0f1a087435b46bd7c5bad51f004a73  gcc/testsuite/gcc.target/powerpc/p9-vec-length-3.h
--- 85479,85531 ----
  9c56caddea7ae0680f831cbc5cf18478  gcc/testsuite/gcc.target/powerpc/p10-identify.c
  05222dfc42774b4f3acc94610419905e  gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c
  7780b667e143b7a27c0d0e2bd81ed8e4  gcc/testsuite/gcc.target/powerpc/p10_vec_xl_sext.c
! e482ef7938640ffd804832affb238f66  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c
! 2f536ab0e74411dd6a312fce29525e1b  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
! 8ed58c85e58cda6216c72ba032fd6eb7  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! 24f081416206327857f8eb638ad6a104  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
! 9cbb9d36dfa5cef0dd2d869f647e327f  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
! c6e8f61625b04a2cd4824e127037751d  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
! cd59d86b6ba5b76a3fb04e5183d926c0  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
! b1201622002dfcf787b75b843f2cc606  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-6.c
! 0f7a02b542a3fa6b5af80300bd88ed90  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-7.c
! dae5fe7c558d87bf67553ca65f9615e7  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-8.c
! c9ab7e0b41e83e4bf724731f5aa48571  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-9.c
! d1742ca30353fff1e994c0e9f1aee4c7  gcc/testsuite/gcc.target/powerpc/p8vector-fp.c
! 6e1e15a0b19ede6cc3ee84b278511073  gcc/testsuite/gcc.target/powerpc/p8vector-int128-1.c
  03e5ad9b0268bf7e8d1cec36bef9bb85  gcc/testsuite/gcc.target/powerpc/p8vector-int128-2.c
! 00fbcb36ab558289f1c24e8212a0c21c  gcc/testsuite/gcc.target/powerpc/p8vector-int128-3.c
! 319c9fa46ba9fb57dac485b388db251f  gcc/testsuite/gcc.target/powerpc/p8vector-ldst.c
! 7fc4c75f18ac5371c84184f43f67f8a3  gcc/testsuite/gcc.target/powerpc/p8vector-vbpermq.c
! 01d5968c3bd1ec32dd1f9195cb74be05  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-1.c
! 1861cfd7d68eeef16c6e40b3638fa3ae  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-2.c
! edf7535bb45b097a8dc6f5d0ee21d0ca  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-3.c
! c4a1e1f047c874d08525d132af73b37a  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-4.c
! c07ef1a5fcdab70513c95b963d546207  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-5.c
! 5634f5f216e0a9897479202eddc52ffb  gcc/testsuite/gcc.target/powerpc/p9-dimode1.c
! 45758fd80e117a64686c20206739c048  gcc/testsuite/gcc.target/powerpc/p9-dimode2.c
! 31e357c5245ffc51240da055a57c4eed  gcc/testsuite/gcc.target/powerpc/p9-extract-1.c
! 0252fb1bf182e04ea3c9a416fdb80e22  gcc/testsuite/gcc.target/powerpc/p9-extract-2.c
! e387f93ccae4c747ae699764a7a95e8b  gcc/testsuite/gcc.target/powerpc/p9-extract-3.c
! 59ebdbebfa8ca043cbc4da46f057ca1e  gcc/testsuite/gcc.target/powerpc/p9-extract-4.c
! d3512f7da402ed6e60b3f1f7810972de  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-1.c
! 63d908cc9e4e1e1dec9ca69aa71d0595  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-2.c
! 7a26bf8c3de3fea5cb32369125daf3a1  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-3.c
! 7c66de125ceafb603cbd0e0ddd46afa4  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-1.c
! 442dcf5a598aefed6ce93c0563e1617b  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-2.c
! a5f173ee19c93e1e7e00379926af14aa  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
! a988c00cffe021d235ee2a6f176ef140  gcc/testsuite/gcc.target/powerpc/p9-minmax-1.c
! a1e694616b4e9ce19cdc7b0eafac8b8f  gcc/testsuite/gcc.target/powerpc/p9-minmax-2.c
! b440ac5e31b5fbd7cff88732f3e0b9cb  gcc/testsuite/gcc.target/powerpc/p9-minmax-3.c
! 314e06d169fbef503f6e928e0ee85858  gcc/testsuite/gcc.target/powerpc/p9-novsx.c
! 81231dccfa9a9b98ab72956409fca83d  gcc/testsuite/gcc.target/powerpc/p9-options-1.c
! dc34b20682f9cc346898bda0a39c828a  gcc/testsuite/gcc.target/powerpc/p9-permute.c
! a87efac86ca40f532a9fc6e20756de48  gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c
! ce881d2106077d347d9ba28668fc7e94  gcc/testsuite/gcc.target/powerpc/p9-splat-1.c
! ff7ee106e4a8380766a52024ff9e4131  gcc/testsuite/gcc.target/powerpc/p9-splat-2.c
! c81e2b6a650fb04c8cecf958abb75bcc  gcc/testsuite/gcc.target/powerpc/p9-splat-3.c
! 805a3a1152145a471f77fd1978f38ccc  gcc/testsuite/gcc.target/powerpc/p9-splat-4.c
! af872610d23a5780daaa4eca1220e7e8  gcc/testsuite/gcc.target/powerpc/p9-splat-5.c
! a7fd1897c17e6d459ca8fce80249921a  gcc/testsuite/gcc.target/powerpc/p9-vbpermd.c
  696e4b1b607f9c82564bfc887f22bd00  gcc/testsuite/gcc.target/powerpc/p9-vec-length-1.h
  5e9e7fcaee357c16920957129d3b8cef  gcc/testsuite/gcc.target/powerpc/p9-vec-length-2.h
  4a0f1a087435b46bd7c5bad51f004a73  gcc/testsuite/gcc.target/powerpc/p9-vec-length-3.h
*************** e1b8cd08f8318d0a6b2e5b855075001d  gcc/te
*** 80538,80551 ****
  5d9fad6eebd37291c65898f8fbfd8aa4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h
  4b4d6e3387e320581f6e26cd33efa8c4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h
  542bcc43fcc4ae002c6071e4fb82f606  gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h
! 3481f76f7fe2863004f67b857857276a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
! a8598b25a5a9e2de440b4f0799f34d7c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
! 077cca21aeb7a2674fe67a66892d4e5f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
! 3a5d45f2abdee8d2f74d10c6c83aeaa3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
! a74f22b30ddea310dd0067c12c4de1fc  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
! 07d3f8c90b7147eacc8c968b46ccb681  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
! 73039ed74373f00b2a4cf224999b68ca  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! 88d60546e84a102e52621ec4d0b9da85  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c
  6edce6a791cdbade4a7d5c4e46d8e90f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c
  3d8e128315c701984cca5647c4002f7b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c
  6684496deefa50081491a6995956bc24  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c
--- 85534,85547 ----
  5d9fad6eebd37291c65898f8fbfd8aa4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h
  4b4d6e3387e320581f6e26cd33efa8c4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h
  542bcc43fcc4ae002c6071e4fb82f606  gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h
! 0936d9584762442254d2903b580c3630  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
! 3dd2cc434cd546e3d2d0bab7ad29b21c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
! 558b8ff8629154a756d344b30a252f94  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
! a601d3174509557affb7c56b0d7f0a1b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
! 4c6f03055e2ddbe219023e09eca004cc  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
! e3ac9d23d3105ffce0715cceec069e4d  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
! 90299726efa4c409d45c5b105a896f89  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! 3f454efb851b4ffeb827d687e08a56ed  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c
  6edce6a791cdbade4a7d5c4e46d8e90f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c
  3d8e128315c701984cca5647c4002f7b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c
  6684496deefa50081491a6995956bc24  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c
*************** a74f22b30ddea310dd0067c12c4de1fc  gcc/te
*** 80554,80567 ****
  8aa319fd77a8f941baaff5e465c3d8c6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c
  17b5e5670d68da521daf73eaa8709d16  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c
  d4b2d539cd9714f8dfd62917e74a9590  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c
! a6b3f7924d9d44ee8f36278e8ff4bd3b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
! a8a3b64bde884f5dfe1d8eced32bc9e3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
! 8ad3c1f1792eebd06e56efbf19ebba34  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
! 9edd15c061d0e24c1976cf94020bfeb1  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
! 05cfc612f8310fcaf7dd11fd056874c5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
! 5c2ced57de22cf4b395db9e0f188cf0a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
! 060390a4ed6eb910d9bb0de8101e535a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c
! 2fc6a35349357e3e9e48c72f072644d2  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c
  9262132fc23ca0add3cdfed1b93e481b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c
  0b227a6bff72009e18b683a68c5d6b36  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c
  b52e4590c5fd1893e9c00c1448de3880  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c
--- 85550,85563 ----
  8aa319fd77a8f941baaff5e465c3d8c6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c
  17b5e5670d68da521daf73eaa8709d16  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c
  d4b2d539cd9714f8dfd62917e74a9590  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c
! 1dbd8384c9ae8ec9db5636a32c5cfa00  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
! 4f22872d779c2516ee5fd4669b1b4e1c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
! 198e611febd1c9148f2046c9eb3df6b0  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
! a7c44fb339cd682ae566a36fa9d3f8d3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
! 590b05411cb6c5440c0a440788145835  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
! 37dcfff4e2c6c80e9cf11d067192e20b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
! 471af63a8edcb8c6aac68a34c19017cf  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c
! a9b71ce867537eecbf4576dad95cb00f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c
  9262132fc23ca0add3cdfed1b93e481b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c
  0b227a6bff72009e18b683a68c5d6b36  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c
  b52e4590c5fd1893e9c00c1448de3880  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c
*************** b2f6fcc92feced95a1b9a33222f012be  gcc/te
*** 80579,80603 ****
  5fef58d2720ce28dbd5bb63b0b62093a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-7.h
  71775cec123fe96ec58d805a44df5147  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/powerpc/p9-vec-length.h
! 05e1fc0ae76c326cff3d00b367daf8c4  gcc/testsuite/gcc.target/powerpc/p9-vneg.c
! 50aa7ddc9012084beaf8c7dd08c1221e  gcc/testsuite/gcc.target/powerpc/p9-vparity.c
! b73b48482a1fb36badb568f421ae32d8  gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
! 12ce8eaa54a14a664e3183f479b1b11c  gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c
! 7522910205aabbef3fff8a3afa3e1115  gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c
! 3f3355a1466191c23ec4966ce2295259  gcc/testsuite/gcc.target/powerpc/p9-xxbr-3.c
  b396e8c2ddafdac99a9e2e3405b62059  gcc/testsuite/gcc.target/powerpc/pack01.c
  e6411f2bd538317acd5d904235c162ea  gcc/testsuite/gcc.target/powerpc/pack02.c
  ef937a62c12c8f2079f32ebb9fe33257  gcc/testsuite/gcc.target/powerpc/pack03.c
- d0bd3df7fee3d73a0acc876ce20691e2  gcc/testsuite/gcc.target/powerpc/paired-1.c
- 0d7e5847184bc01c42a40dda9b07bda3  gcc/testsuite/gcc.target/powerpc/paired-10.c
- 2bdeefd1d55b55e6e9b8ace714c9b100  gcc/testsuite/gcc.target/powerpc/paired-2.c
- a49cebe820198e98df6e4c433d7270fd  gcc/testsuite/gcc.target/powerpc/paired-3.c
- 3b689948ac025117f74f2c6794983d54  gcc/testsuite/gcc.target/powerpc/paired-4.c
- 69f44ac6e5b374ad447f1a8605315186  gcc/testsuite/gcc.target/powerpc/paired-5.c
- 636bfed2bc8f1f043bd152849dc2304c  gcc/testsuite/gcc.target/powerpc/paired-6.c
- 42f0dc64ed6bcc9e20fed0286081f606  gcc/testsuite/gcc.target/powerpc/paired-7.c
- eb724f0712c2e09bd99aa65ce0b1419c  gcc/testsuite/gcc.target/powerpc/paired-8.c
- b1d50d914f0b51e97312384685214bc6  gcc/testsuite/gcc.target/powerpc/paired-9.c
  5f656f3dc8fc5da9c6066bf924a21932  gcc/testsuite/gcc.target/powerpc/parall_5insn_const.c
  86c888f921328d6e3f8fa16fa17951f3  gcc/testsuite/gcc.target/powerpc/parity-1.c
  be69e5f730b4a7750a23ddb5eb67196c  gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c
--- 85575,85589 ----
  5fef58d2720ce28dbd5bb63b0b62093a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-7.h
  71775cec123fe96ec58d805a44df5147  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/powerpc/p9-vec-length.h
! 09267cf6137879850a6a102c9293f65e  gcc/testsuite/gcc.target/powerpc/p9-vneg.c
! 27cfab521f2f2ab07b6b6430946288f2  gcc/testsuite/gcc.target/powerpc/p9-vparity.c
! b011c833873043766dd714cf7055f5f7  gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
! 8a1d15ccab8e5350a1d88b235cb71e9c  gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c
! d3eb9c7c30b3c1819e8174ad965b70f8  gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c
! ac26f9c25e2b00b4a7e73f7e103bdda4  gcc/testsuite/gcc.target/powerpc/p9-xxbr-3.c
  b396e8c2ddafdac99a9e2e3405b62059  gcc/testsuite/gcc.target/powerpc/pack01.c
  e6411f2bd538317acd5d904235c162ea  gcc/testsuite/gcc.target/powerpc/pack02.c
  ef937a62c12c8f2079f32ebb9fe33257  gcc/testsuite/gcc.target/powerpc/pack03.c
  5f656f3dc8fc5da9c6066bf924a21932  gcc/testsuite/gcc.target/powerpc/parall_5insn_const.c
  86c888f921328d6e3f8fa16fa17951f3  gcc/testsuite/gcc.target/powerpc/parity-1.c
  be69e5f730b4a7750a23ddb5eb67196c  gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c
*************** ddca0244558681459a2d8f4e17b0b300  gcc/te
*** 80623,80659 ****
  b818a05f9892ef086f53347beb95c5ab  gcc/testsuite/gcc.target/powerpc/popcount-1.c
  a1ca0398bda92fa2d58fffbdae74b412  gcc/testsuite/gcc.target/powerpc/popcount-2.c
  765612a7627c33c6b923cafa4b6f8492  gcc/testsuite/gcc.target/powerpc/popcount-3.c
! 6b492bc3411dc7499a78324c03cb41ef  gcc/testsuite/gcc.target/powerpc/powerpc.exp
  7b955220897e3c489f9cc6a3dfbb95eb  gcc/testsuite/gcc.target/powerpc/ppc-and-1.c
  d6e0d31ab4778feea50f0fdf0f3bcd89  gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c
  1ea7507881ba72f6b3c6548f30014d46  gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c
  eb292fb2a4549af4ab49b7d224995874  gcc/testsuite/gcc.target/powerpc/ppc-eabi.c
  b97e549025a26b86ea8a65a3806e6b3c  gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c
! 174619a54d2d2cad26b5d4344c198caf  gcc/testsuite/gcc.target/powerpc/ppc-fma-1.c
! 161ddb30bd440e60cf51f1a8898084be  gcc/testsuite/gcc.target/powerpc/ppc-fma-2.c
! 80e507a2bc6a5fbc6c66489da482fd61  gcc/testsuite/gcc.target/powerpc/ppc-fma-3.c
! 0d84b87e6b3c7f5ece72faeaa89d41ac  gcc/testsuite/gcc.target/powerpc/ppc-fma-4.c
  24c84058bc987e71a788aa8b12d0684b  gcc/testsuite/gcc.target/powerpc/ppc-fma-5.c
  dbe8b7a61a7368d65f67bfc4131425cf  gcc/testsuite/gcc.target/powerpc/ppc-fma-6.c
! 5322df35a8ad093c71d8043a9e68848a  gcc/testsuite/gcc.target/powerpc/ppc-fma-7.c
  384725f498b861af6f8bed0530eeac73  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
  546f8b1533e6aef90ce72768fe282cb0  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ieee128-math.f90
! 0b1c8f2988fac4a7e180614c255710a5  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
! 52ce6ab70ec07f3c0a8847b56ee3e297  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr102767.f90
! 75c57658632cc40e9ab26cec498888fa  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
! 164d50a721edad82a9cd9f4b63b1b8f9  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
! 98f6990b548a4e10341ee0039997e942  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
  9f7c58381e366ddea9a6746fd8d828e0  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-11.c
! bf9eaf3d246d55f6dd80852c560531fc  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-2.c
  87f597f0fddf402a5dee78d7bdcfffd8  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-3.c
! 25c49ee15ed189ae6be331105e4620aa  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-4.c
! 8c77464806d2a7d02195f1a8f93f1b55  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-5.c
! 27dd343c77857074e63fa66c893ba8b6  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-6.c
  6588ad6131d258034f843196c9064154  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-7.c
  0b2b4e2b82c69cb345f13ac1f49fed10  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-8.c
! dbe9c3e7d16bae3701df27a7f9304d99  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-9.c
  2f98c9de092b752f4149c60367c90247  gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c
  28c82cf854d14b9e7b445bab023fb08c  gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c
  4607e864b19fd011a4f1d730e041efc9  gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c
--- 85609,85648 ----
  b818a05f9892ef086f53347beb95c5ab  gcc/testsuite/gcc.target/powerpc/popcount-1.c
  a1ca0398bda92fa2d58fffbdae74b412  gcc/testsuite/gcc.target/powerpc/popcount-2.c
  765612a7627c33c6b923cafa4b6f8492  gcc/testsuite/gcc.target/powerpc/popcount-3.c
! 201a332197075240cd51412233c6e53a  gcc/testsuite/gcc.target/powerpc/power11-1.c
! cb3d99072abf7d93fc2944c06a74bb98  gcc/testsuite/gcc.target/powerpc/power11-2.c
! 3fd9d85908bfe1f005d5d75a25a5fd49  gcc/testsuite/gcc.target/powerpc/power11-3.c
! d7288f2b51272d3d5dba817f0b766de2  gcc/testsuite/gcc.target/powerpc/powerpc.exp
  7b955220897e3c489f9cc6a3dfbb95eb  gcc/testsuite/gcc.target/powerpc/ppc-and-1.c
  d6e0d31ab4778feea50f0fdf0f3bcd89  gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c
  1ea7507881ba72f6b3c6548f30014d46  gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c
  eb292fb2a4549af4ab49b7d224995874  gcc/testsuite/gcc.target/powerpc/ppc-eabi.c
  b97e549025a26b86ea8a65a3806e6b3c  gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c
! fbbe3c96ba98121ae981ec801c8898d5  gcc/testsuite/gcc.target/powerpc/ppc-fma-1.c
! 5354d95d072b6ef1dec0decaf0cf6a29  gcc/testsuite/gcc.target/powerpc/ppc-fma-2.c
! ba40541a22f65de13f3b58a42be0a661  gcc/testsuite/gcc.target/powerpc/ppc-fma-3.c
! f22d61a0051b1dddb6b0ae1d78028552  gcc/testsuite/gcc.target/powerpc/ppc-fma-4.c
  24c84058bc987e71a788aa8b12d0684b  gcc/testsuite/gcc.target/powerpc/ppc-fma-5.c
  dbe8b7a61a7368d65f67bfc4131425cf  gcc/testsuite/gcc.target/powerpc/ppc-fma-6.c
! 4e1a796b165b295e26689ca29452e5fc  gcc/testsuite/gcc.target/powerpc/ppc-fma-7.c
  384725f498b861af6f8bed0530eeac73  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
  546f8b1533e6aef90ce72768fe282cb0  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ieee128-math.f90
! c98b88f415ca064370c996ab68fa0602  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
! c8025c25ccff57b59c3964de5a611c71  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr102767.f90
! b2c914231aa3bf9f3e0810fcb9b854ae  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
! 4212a5aaf5357ccb9bf0a7d676efe368  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
! 64dfb2362e5b6e0326f278b522ebeeba  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
  9f7c58381e366ddea9a6746fd8d828e0  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-11.c
! 463cfc8d02812814cea361157565ef9e  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-2.c
  87f597f0fddf402a5dee78d7bdcfffd8  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-3.c
! 74e308eb7099a84ad885b6696b3ec353  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-4.c
! 4edff1f31af0dacdb866f4e34ecbdbe1  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-5.c
! adfe9c98f8d46de2e3025c8f515c1c07  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-6.c
  6588ad6131d258034f843196c9064154  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-7.c
  0b2b4e2b82c69cb345f13ac1f49fed10  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-8.c
! 5c8874f02b42346c5507c68da748759c  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-9.c
  2f98c9de092b752f4149c60367c90247  gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c
  28c82cf854d14b9e7b445bab023fb08c  gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c
  4607e864b19fd011a4f1d730e041efc9  gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c
*************** a4dee1048349abab9fe2b7deb322f7e9  gcc/te
*** 80664,80689 ****
  3d3e37d1bfddb596aed4d9d7cc7c1403  gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c
  b7322913d151f09caa41a4c0c0b086ea  gcc/testsuite/gcc.target/powerpc/ppc-ne0-2.c
  8296a3d02aa27f1b6b67df7b3cf793d6  gcc/testsuite/gcc.target/powerpc/ppc-negeq0-1.c
! 6b09e7266618e801c185fac6b9279725  gcc/testsuite/gcc.target/powerpc/ppc-paired.c
! e6fc3dbdad2c38eeb480490d619f3681  gcc/testsuite/gcc.target/powerpc/ppc-pow.c
! 2b97ffc2689d0d97f0583e49e63ce667  gcc/testsuite/gcc.target/powerpc/ppc-round.c
! e2097fc13132305733d18f95106ab316  gcc/testsuite/gcc.target/powerpc/ppc-round2.c
! 27c55f2bb703feef5ef2814276012a00  gcc/testsuite/gcc.target/powerpc/ppc-round3.c
  01aaaef3cb8cee0f105c2e9489dc423d  gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
  9dc1fa13d3f31bcd3a134627edb4458a  gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
  031e121f3288d78b35a626363fbb6306  gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c
  347db92de42c68a0e17367b289aaa20b  gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c
  174cc8f1f01dfb1fd40568892781bc3d  gcc/testsuite/gcc.target/powerpc/ppc-switch-1.c
  769e2a32c5558d6152a32a7696afebc7  gcc/testsuite/gcc.target/powerpc/ppc-switch-2.c
! 1a80c7894fb26754dcd4341f01cb40e1  gcc/testsuite/gcc.target/powerpc/ppc-target-1.c
! d634007d5a2a507f5826ee8543487975  gcc/testsuite/gcc.target/powerpc/ppc-target-2.c
! bb11c2a27f43f00c4c0d934335ec3a03  gcc/testsuite/gcc.target/powerpc/ppc-target-3.c
! aa38fb7f805745e44d535c1a4cb63e33  gcc/testsuite/gcc.target/powerpc/ppc-target-4.c
! a6e21370123ecb1a98797a75ca96e737  gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c
! 9a31c5d7df209a371cd6dff7bc09dff7  gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c
  6228134da57d35a5fabd4534c72990e0  gcc/testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c
! 409bc055fa6176b653405fc66472b30b  gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c
! 7636aebceecd743b7345e76beaab07e5  gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c
  561207b57149870f661ea7f3995e39a1  gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c
  b6bd72515ca594257e5ab11b307231e8  gcc/testsuite/gcc.target/powerpc/ppc64-abi-dfp-1.c
  8d1bb8d348bbbd1468a4518fcfc930da  gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c
--- 85653,85677 ----
  3d3e37d1bfddb596aed4d9d7cc7c1403  gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c
  b7322913d151f09caa41a4c0c0b086ea  gcc/testsuite/gcc.target/powerpc/ppc-ne0-2.c
  8296a3d02aa27f1b6b67df7b3cf793d6  gcc/testsuite/gcc.target/powerpc/ppc-negeq0-1.c
! 00dc60e9e8af65b3903e096a63bd8d58  gcc/testsuite/gcc.target/powerpc/ppc-pow.c
! f481918d8883c4f1a6133fa0eedafcc7  gcc/testsuite/gcc.target/powerpc/ppc-round.c
! 145158aa9581340f655bf4a169c42b59  gcc/testsuite/gcc.target/powerpc/ppc-round2.c
! 40e352c2e6fb237d247b07f60f81a727  gcc/testsuite/gcc.target/powerpc/ppc-round3.c
  01aaaef3cb8cee0f105c2e9489dc423d  gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
  9dc1fa13d3f31bcd3a134627edb4458a  gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
  031e121f3288d78b35a626363fbb6306  gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c
  347db92de42c68a0e17367b289aaa20b  gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c
  174cc8f1f01dfb1fd40568892781bc3d  gcc/testsuite/gcc.target/powerpc/ppc-switch-1.c
  769e2a32c5558d6152a32a7696afebc7  gcc/testsuite/gcc.target/powerpc/ppc-switch-2.c
! 62f98eb302aaaef72a37a899580ea891  gcc/testsuite/gcc.target/powerpc/ppc-target-1.c
! c497355a8e941b1e476f91fcdae5346b  gcc/testsuite/gcc.target/powerpc/ppc-target-2.c
! e1e8382ce1b2639388df7822dded5041  gcc/testsuite/gcc.target/powerpc/ppc-target-3.c
! 3ee0d893a6328f007769fcd32e742191  gcc/testsuite/gcc.target/powerpc/ppc-target-4.c
! 908ef5ba489f8b06eff10db343173c69  gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c
! dedd2bab76758ceb2546cdb5829e0cbb  gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c
  6228134da57d35a5fabd4534c72990e0  gcc/testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c
! 2740164df1db9b95696f95ed498c0ce1  gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c
! 8c3531e4d37b48df42c46b4d8d82f5c8  gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c
  561207b57149870f661ea7f3995e39a1  gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c
  b6bd72515ca594257e5ab11b307231e8  gcc/testsuite/gcc.target/powerpc/ppc64-abi-dfp-1.c
  8d1bb8d348bbbd1468a4518fcfc930da  gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c
*************** b6bd72515ca594257e5ab11b307231e8  gcc/te
*** 80691,80704 ****
  a64bd4e47397af3253bc9e8dc2c56780  gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c
  ef3b097387678432aef397a313268021  gcc/testsuite/gcc.target/powerpc/pr100085.c
  dd5152504d225107b11fb67b0294b0c1  gcc/testsuite/gcc.target/powerpc/pr100106-sa.c
! 1303cdaf34dd8ca56079b84c2ea25cc0  gcc/testsuite/gcc.target/powerpc/pr100645.c
  5ccf50d6af741aec776b2d54411331d5  gcc/testsuite/gcc.target/powerpc/pr100777.c
! b92b00752870bc2c7ef7b6348079936c  gcc/testsuite/gcc.target/powerpc/pr100866-1.c
! 28412cf7e4303340e474aa5bb58c3993  gcc/testsuite/gcc.target/powerpc/pr100866-2.c
  93530f0352e114499a2243d7a2a63830  gcc/testsuite/gcc.target/powerpc/pr101129.c
  98ac1105d04b59ee48240bf0f7de65df  gcc/testsuite/gcc.target/powerpc/pr101324.c
! 49e2861f8bafbfa8fb4beaf059a21224  gcc/testsuite/gcc.target/powerpc/pr101384-1.c
! dfbdac263fc54ba43e6e0d8ad85f5e18  gcc/testsuite/gcc.target/powerpc/pr101384-2.c
  2defd7a4f1a3a146b7a4bb52e394d4af  gcc/testsuite/gcc.target/powerpc/pr101596-1.c
  dcc4eac3d42ed0904a410de41ce14d66  gcc/testsuite/gcc.target/powerpc/pr101596-2.c
  e43ef13018c5e5bb2d9e1b0dbfd705a3  gcc/testsuite/gcc.target/powerpc/pr101596-3.c
--- 85679,85692 ----
  a64bd4e47397af3253bc9e8dc2c56780  gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c
  ef3b097387678432aef397a313268021  gcc/testsuite/gcc.target/powerpc/pr100085.c
  dd5152504d225107b11fb67b0294b0c1  gcc/testsuite/gcc.target/powerpc/pr100106-sa.c
! 348614f6246f60496f4a3af535f629e0  gcc/testsuite/gcc.target/powerpc/pr100645.c
  5ccf50d6af741aec776b2d54411331d5  gcc/testsuite/gcc.target/powerpc/pr100777.c
! 2fa97ad95720db16ad9ad1bdfecb4732  gcc/testsuite/gcc.target/powerpc/pr100866-1.c
! 34a70b55311b70ae9beaaf93944a2733  gcc/testsuite/gcc.target/powerpc/pr100866-2.c
  93530f0352e114499a2243d7a2a63830  gcc/testsuite/gcc.target/powerpc/pr101129.c
  98ac1105d04b59ee48240bf0f7de65df  gcc/testsuite/gcc.target/powerpc/pr101324.c
! 05c69353f48b19b9a73449221c8d2755  gcc/testsuite/gcc.target/powerpc/pr101384-1.c
! 2d0a443642868af2b516f2156898a54f  gcc/testsuite/gcc.target/powerpc/pr101384-2.c
  2defd7a4f1a3a146b7a4bb52e394d4af  gcc/testsuite/gcc.target/powerpc/pr101596-1.c
  dcc4eac3d42ed0904a410de41ce14d66  gcc/testsuite/gcc.target/powerpc/pr101596-2.c
  e43ef13018c5e5bb2d9e1b0dbfd705a3  gcc/testsuite/gcc.target/powerpc/pr101596-3.c
*************** a71d80353dd79a03e464836b916549b6  gcc/te
*** 80711,80745 ****
  5392663d9c3769a2d83b13aed765c6eb  gcc/testsuite/gcc.target/powerpc/pr102059-4.c
  44902c9cb97c670e5464767472368e1f  gcc/testsuite/gcc.target/powerpc/pr102239.c
  a192830e09e3a3d8478a89f2b2add0ff  gcc/testsuite/gcc.target/powerpc/pr102347.c
! 5ac11cd9704215864ed137e674a41285  gcc/testsuite/gcc.target/powerpc/pr102868.c
  0726fc47d5d46d095efa95b874637be7  gcc/testsuite/gcc.target/powerpc/pr102976.c
  b47ab1f05bef402d7e2e00653ef4fae7  gcc/testsuite/gcc.target/powerpc/pr103109-1.c
  2ca490f74221b15ca25bbbea22261a60  gcc/testsuite/gcc.target/powerpc/pr103109-2.c
  459499543bab72d501d949ef029805a7  gcc/testsuite/gcc.target/powerpc/pr103109.h
! 2bb096d69154d89acabffc3e80657091  gcc/testsuite/gcc.target/powerpc/pr103124.c
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
! 2e28abb3dab00a40af19eb41bc4d56ce  gcc/testsuite/gcc.target/powerpc/pr103353.c
  4a0d8fa948f1e42c9d8e4482f83147b5  gcc/testsuite/gcc.target/powerpc/pr103515.c
! ff6beddf5791184ad2153d11407b223e  gcc/testsuite/gcc.target/powerpc/pr103605-1.c
! ad70b871b186054c102033e5bb98dede  gcc/testsuite/gcc.target/powerpc/pr103605-2.c
  ddba8d82446a17f0e2280f3a093bc891  gcc/testsuite/gcc.target/powerpc/pr103605.h
  20a7942f4601125d17110951f0d9d799  gcc/testsuite/gcc.target/powerpc/pr103627-1.c
  75bf709f259ebd7bb4ea3bb9e4c7a6e3  gcc/testsuite/gcc.target/powerpc/pr103627-2.c
  173204ae2ee9c78ee24b407929800cd8  gcc/testsuite/gcc.target/powerpc/pr103627-3.c
! cb6e7330d4dd26c88108858950fb503f  gcc/testsuite/gcc.target/powerpc/pr103702.c
  ed0696b7f115d5ca0a4d67f86142bcff  gcc/testsuite/gcc.target/powerpc/pr103743.c
  718ffe2bb1815e937f879e7cf1f059f8  gcc/testsuite/gcc.target/powerpc/pr103743_1.c
! 816c960682e8ea5af26623ce10209800  gcc/testsuite/gcc.target/powerpc/pr104015-1.c
  b8b074d85922e675276b730f8e4cee82  gcc/testsuite/gcc.target/powerpc/pr104015-2.c
! 068a1f1e7126c1da53e2410a1529e853  gcc/testsuite/gcc.target/powerpc/pr104124.c
  b7339ab4137e4c5175deca053bb790c8  gcc/testsuite/gcc.target/powerpc/pr104208-1.c
  7dff0a95f65947b541c04da0c7b307a5  gcc/testsuite/gcc.target/powerpc/pr104208-2.c
! 7f46383478a7b864e4654e5626f656d8  gcc/testsuite/gcc.target/powerpc/pr104239-1.c
! 8e5ae8b58b0aad99b2d5318371418436  gcc/testsuite/gcc.target/powerpc/pr104239-2.c
! 63c573f6e0766cc03580bd31511ab2a8  gcc/testsuite/gcc.target/powerpc/pr104239-3.c
  76860a5a20e1c892c05c24cdc70fe3c2  gcc/testsuite/gcc.target/powerpc/pr104253.c
! bcea25fcc7f7d5b31ffe8cfbc60716ae  gcc/testsuite/gcc.target/powerpc/pr104482.c
  2b6918b6554ea8bb4c4efc7647cb4607  gcc/testsuite/gcc.target/powerpc/pr104698-1.c
  1e6dbb90d53667be975092bccd5b339f  gcc/testsuite/gcc.target/powerpc/pr104698-2.c
  9a808339fd965b70f658340d20c28253  gcc/testsuite/gcc.target/powerpc/pr104778.c
--- 85699,85733 ----
  5392663d9c3769a2d83b13aed765c6eb  gcc/testsuite/gcc.target/powerpc/pr102059-4.c
  44902c9cb97c670e5464767472368e1f  gcc/testsuite/gcc.target/powerpc/pr102239.c
  a192830e09e3a3d8478a89f2b2add0ff  gcc/testsuite/gcc.target/powerpc/pr102347.c
! 609d57d71655ebb8d747229d54f1394d  gcc/testsuite/gcc.target/powerpc/pr102868.c
  0726fc47d5d46d095efa95b874637be7  gcc/testsuite/gcc.target/powerpc/pr102976.c
  b47ab1f05bef402d7e2e00653ef4fae7  gcc/testsuite/gcc.target/powerpc/pr103109-1.c
  2ca490f74221b15ca25bbbea22261a60  gcc/testsuite/gcc.target/powerpc/pr103109-2.c
  459499543bab72d501d949ef029805a7  gcc/testsuite/gcc.target/powerpc/pr103109.h
! e6b0503077f4ef65c73a5ee91d64a1e4  gcc/testsuite/gcc.target/powerpc/pr103124.c
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
! 98706d03de6e03b69eeeb2965b987553  gcc/testsuite/gcc.target/powerpc/pr103353.c
  4a0d8fa948f1e42c9d8e4482f83147b5  gcc/testsuite/gcc.target/powerpc/pr103515.c
! df7ee79b00954d8717bef9dacef99a6d  gcc/testsuite/gcc.target/powerpc/pr103605-1.c
! af8ca5b14e78666f87f75ec9728d5c7a  gcc/testsuite/gcc.target/powerpc/pr103605-2.c
  ddba8d82446a17f0e2280f3a093bc891  gcc/testsuite/gcc.target/powerpc/pr103605.h
  20a7942f4601125d17110951f0d9d799  gcc/testsuite/gcc.target/powerpc/pr103627-1.c
  75bf709f259ebd7bb4ea3bb9e4c7a6e3  gcc/testsuite/gcc.target/powerpc/pr103627-2.c
  173204ae2ee9c78ee24b407929800cd8  gcc/testsuite/gcc.target/powerpc/pr103627-3.c
! 2dd90a68ea0f52c709df511e14b20738  gcc/testsuite/gcc.target/powerpc/pr103702.c
  ed0696b7f115d5ca0a4d67f86142bcff  gcc/testsuite/gcc.target/powerpc/pr103743.c
  718ffe2bb1815e937f879e7cf1f059f8  gcc/testsuite/gcc.target/powerpc/pr103743_1.c
! 043e7a17fdf204e6d3fdf43d20ac3ed5  gcc/testsuite/gcc.target/powerpc/pr104015-1.c
  b8b074d85922e675276b730f8e4cee82  gcc/testsuite/gcc.target/powerpc/pr104015-2.c
! 5819e75048122b02036fcbd63215cb6e  gcc/testsuite/gcc.target/powerpc/pr104124.c
  b7339ab4137e4c5175deca053bb790c8  gcc/testsuite/gcc.target/powerpc/pr104208-1.c
  7dff0a95f65947b541c04da0c7b307a5  gcc/testsuite/gcc.target/powerpc/pr104208-2.c
! 6d45563b9556ed66b2b08e6d4fd21fe4  gcc/testsuite/gcc.target/powerpc/pr104239-1.c
! e8cb6db3a80d9f2556315cdb673fb7d8  gcc/testsuite/gcc.target/powerpc/pr104239-2.c
! 3571387111722e3844ee1b8fe9d1b81f  gcc/testsuite/gcc.target/powerpc/pr104239-3.c
  76860a5a20e1c892c05c24cdc70fe3c2  gcc/testsuite/gcc.target/powerpc/pr104253.c
! 005326f7aea7b300734e88365f5f3b77  gcc/testsuite/gcc.target/powerpc/pr104482.c
  2b6918b6554ea8bb4c4efc7647cb4607  gcc/testsuite/gcc.target/powerpc/pr104698-1.c
  1e6dbb90d53667be975092bccd5b339f  gcc/testsuite/gcc.target/powerpc/pr104698-2.c
  9a808339fd965b70f658340d20c28253  gcc/testsuite/gcc.target/powerpc/pr104778.c
*************** db72de734e5e70d9f1ed20b5a54e7a2a  gcc/te
*** 80747,80753 ****
  bc8ea782345dbe874b74f42d43945922  gcc/testsuite/gcc.target/powerpc/pr104894.c
  3c6d84405eb197341e1b506784b6c749  gcc/testsuite/gcc.target/powerpc/pr104923.c
  514a9b86c22fdf3ed2a46c790e3b9dfa  gcc/testsuite/gcc.target/powerpc/pr105041.c
! 85d4f791b2093e7fd29ce51247a7fbbb  gcc/testsuite/gcc.target/powerpc/pr105271.c
  2d8d540a24bba783fff809d640c23d00  gcc/testsuite/gcc.target/powerpc/pr105334.c
  f0ddfb3edfb9941a08b8e295a57f843e  gcc/testsuite/gcc.target/powerpc/pr105586.c
  73e28c08da6f3dc009a4582f93dfba92  gcc/testsuite/gcc.target/powerpc/pr105627.c
--- 85735,85741 ----
  bc8ea782345dbe874b74f42d43945922  gcc/testsuite/gcc.target/powerpc/pr104894.c
  3c6d84405eb197341e1b506784b6c749  gcc/testsuite/gcc.target/powerpc/pr104923.c
  514a9b86c22fdf3ed2a46c790e3b9dfa  gcc/testsuite/gcc.target/powerpc/pr105041.c
! 14284bde1618701b76571cc21de7aca7  gcc/testsuite/gcc.target/powerpc/pr105271.c
  2d8d540a24bba783fff809d640c23d00  gcc/testsuite/gcc.target/powerpc/pr105334.c
  f0ddfb3edfb9941a08b8e295a57f843e  gcc/testsuite/gcc.target/powerpc/pr105586.c
  73e28c08da6f3dc009a4582f93dfba92  gcc/testsuite/gcc.target/powerpc/pr105627.c
*************** c931d1d7ae559c7f1a38c2e40fb73784  gcc/te
*** 80759,80769 ****
  77039220fc5a52161837a12ea92d1ea3  gcc/testsuite/gcc.target/powerpc/pr106091.c
  19c79cd734687058ce13a5486b78bd77  gcc/testsuite/gcc.target/powerpc/pr106322.c
  7b0904894180cdbddf64e53f5fbe7f6c  gcc/testsuite/gcc.target/powerpc/pr106460.c
! 7de40a1c4b42a4fb49cc3f14baa10c1e  gcc/testsuite/gcc.target/powerpc/pr106550.c
  cc7362c52eacff25a0a7423c094b03e5  gcc/testsuite/gcc.target/powerpc/pr106550_1.c
! 739048c640db1dc5dea58911f6dcac93  gcc/testsuite/gcc.target/powerpc/pr106680-1.c
! ffc27d1ed5ea543d6fefe54a1710ea32  gcc/testsuite/gcc.target/powerpc/pr106680-2.c
! 2e7ce8e63be729d8e1c7833fed3ed847  gcc/testsuite/gcc.target/powerpc/pr106680-3.c
  925b4846930bdcf4c7d3c04aad8fbcb4  gcc/testsuite/gcc.target/powerpc/pr106680-4.c
  9d22d4b7ac8d3bc9f60f0489b4ffe848  gcc/testsuite/gcc.target/powerpc/pr106708.c
  b89eb373488426e128fceff637542836  gcc/testsuite/gcc.target/powerpc/pr106736-1.c
--- 85747,85757 ----
  77039220fc5a52161837a12ea92d1ea3  gcc/testsuite/gcc.target/powerpc/pr106091.c
  19c79cd734687058ce13a5486b78bd77  gcc/testsuite/gcc.target/powerpc/pr106322.c
  7b0904894180cdbddf64e53f5fbe7f6c  gcc/testsuite/gcc.target/powerpc/pr106460.c
! e9233c8c176ae3220ce6f58eecc5ce47  gcc/testsuite/gcc.target/powerpc/pr106550.c
  cc7362c52eacff25a0a7423c094b03e5  gcc/testsuite/gcc.target/powerpc/pr106550_1.c
! aa732628ea7a27c5449d7ea97b122088  gcc/testsuite/gcc.target/powerpc/pr106680-1.c
! 96bcdfea18ca7fc97b5b9bdfe1906af2  gcc/testsuite/gcc.target/powerpc/pr106680-2.c
! c4f844a9ebb0d817a8e45acce7f32431  gcc/testsuite/gcc.target/powerpc/pr106680-3.c
  925b4846930bdcf4c7d3c04aad8fbcb4  gcc/testsuite/gcc.target/powerpc/pr106680-4.c
  9d22d4b7ac8d3bc9f60f0489b4ffe848  gcc/testsuite/gcc.target/powerpc/pr106708.c
  b89eb373488426e128fceff637542836  gcc/testsuite/gcc.target/powerpc/pr106736-1.c
*************** b628655d5e6da478a0338b6a99c2b547  gcc/te
*** 80771,80815 ****
  268c405264ea346b9620a21b4008ae3d  gcc/testsuite/gcc.target/powerpc/pr106736-3.c
  80f943ae05ca5bf1bdb90616a4a55bee  gcc/testsuite/gcc.target/powerpc/pr106736-4.c
  8c4791ff0309e78169b9fa522b35014a  gcc/testsuite/gcc.target/powerpc/pr106736-5.c
! 2add2a2b22d40851dbfc92d531653c50  gcc/testsuite/gcc.target/powerpc/pr106769-p8.c
! 9917990833a14d0dde54c2ac836650c4  gcc/testsuite/gcc.target/powerpc/pr106769-p9.c
  0963f14ccd4877c21a47d1a3bd7eb59e  gcc/testsuite/gcc.target/powerpc/pr106769.h
  cc371da54f8baaffe7810cf7f4a388f7  gcc/testsuite/gcc.target/powerpc/pr106833.c
! 71b7941237afb0106a85f37e8683cc8d  gcc/testsuite/gcc.target/powerpc/pr107412.c
  cf6fc6f2cd4ce40de4bfcae2384bc88d  gcc/testsuite/gcc.target/powerpc/pr108272-1.c
  f50d5d85d2fd6cdb2c24ba2f99c5ed50  gcc/testsuite/gcc.target/powerpc/pr108272-2.c
  80b0790ba15d5f168fdb877edfba8e3c  gcc/testsuite/gcc.target/powerpc/pr108272-3.c
  8b12dd4a97ca50e2f9880c335cebf74b  gcc/testsuite/gcc.target/powerpc/pr108272-4.c
  9ddbaf07e6730054bf657e2df6b73692  gcc/testsuite/gcc.target/powerpc/pr108338.c
! 40726e9ba9f0dbe699d13f0248929db7  gcc/testsuite/gcc.target/powerpc/pr108348-1.c
! 590060f31f74e624d8948e67f5efe8a9  gcc/testsuite/gcc.target/powerpc/pr108348-2.c
! dcfd0b5eb3fa3b17e60172ec0b8a791d  gcc/testsuite/gcc.target/powerpc/pr108396.c
! d1ebac89ce86ba01adcab56447399dd9  gcc/testsuite/gcc.target/powerpc/pr108699.c
  8dc6f7b3f475db76d4acd724068737cc  gcc/testsuite/gcc.target/powerpc/pr108787.c
  4e716a0a290d9aa588276f96d74da875  gcc/testsuite/gcc.target/powerpc/pr108862.c
  b3ad6c3610e28e21bfa05827c56b2b94  gcc/testsuite/gcc.target/powerpc/pr109069-1.c
  d002a5bc24966823d127263f4f26fc6f  gcc/testsuite/gcc.target/powerpc/pr109069-2-run.c
! 900c52091cc56fa5ba595a6ed758f527  gcc/testsuite/gcc.target/powerpc/pr109069-2.c
  1e04986cfbd8001de79d99e8138e518a  gcc/testsuite/gcc.target/powerpc/pr109069-2.h
! 183c2d6b4a645b22aa3a9a3870d8c787  gcc/testsuite/gcc.target/powerpc/pr109082.c
  bafd50f43ed68366ad85e5b1a7157b97  gcc/testsuite/gcc.target/powerpc/pr109167.c
  5d792150402910e5e2632539f0ba98c0  gcc/testsuite/gcc.target/powerpc/pr109178.c
  7b7dca63220f83027fa5bbff06ededcb  gcc/testsuite/gcc.target/powerpc/pr109566.c
! d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-1.c
! d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-2.c
  30266f999ed968f6bfdc98dae3651704  gcc/testsuite/gcc.target/powerpc/pr110011.c
  824073815638d2562ae17cd1428f48e2  gcc/testsuite/gcc.target/powerpc/pr110071.c
  8989fb86fe162e16bfc145adc53eb41d  gcc/testsuite/gcc.target/powerpc/pr110320-1.c
  1d2e1c64a6490425a3d436069ea5d9ee  gcc/testsuite/gcc.target/powerpc/pr110320-2.c
  de6ffeadfb93fbec891279db1ecf2210  gcc/testsuite/gcc.target/powerpc/pr110320-3.c
  0fc82ebefb1ad802aeb7fce96c922091  gcc/testsuite/gcc.target/powerpc/pr110411-1.c
  39880b05b13efbac2f1002f1730f701b  gcc/testsuite/gcc.target/powerpc/pr110411-2.c
! 01a99e85c619f69fe65e8dc7c3cc604f  gcc/testsuite/gcc.target/powerpc/pr110429.c
! 87fc309ea6ac12043d7cb411c2e49b02  gcc/testsuite/gcc.target/powerpc/pr110776.c
  c610c8d7cbb111b72025bba844602bd8  gcc/testsuite/gcc.target/powerpc/pr111380-1.c
  68b71977f7a24a5a6b3cb45a7941649a  gcc/testsuite/gcc.target/powerpc/pr111380-2.c
! 14deb79f3de932a6c3507b07a2b07b1b  gcc/testsuite/gcc.target/powerpc/pr111449-1.c
! f41a9d980a2fa01c4bc18b59a4362288  gcc/testsuite/gcc.target/powerpc/pr111449-2.c
  ef7ee7d75d9d3cb837f9895dc04fe54e  gcc/testsuite/gcc.target/powerpc/pr111971.c
  d65923a88c1a895abf1a0b6491463f66  gcc/testsuite/gcc.target/powerpc/pr112525.c
  6c42e6e48da378e05514cb0730c927ba  gcc/testsuite/gcc.target/powerpc/pr112707-1.c
--- 85759,85806 ----
  268c405264ea346b9620a21b4008ae3d  gcc/testsuite/gcc.target/powerpc/pr106736-3.c
  80f943ae05ca5bf1bdb90616a4a55bee  gcc/testsuite/gcc.target/powerpc/pr106736-4.c
  8c4791ff0309e78169b9fa522b35014a  gcc/testsuite/gcc.target/powerpc/pr106736-5.c
! 60534c5408e01d3332a8cf2bd01c5bfb  gcc/testsuite/gcc.target/powerpc/pr106769-p8.c
! 7ec712d12c713ee380709b1ec03b395d  gcc/testsuite/gcc.target/powerpc/pr106769-p9.c
  0963f14ccd4877c21a47d1a3bd7eb59e  gcc/testsuite/gcc.target/powerpc/pr106769.h
  cc371da54f8baaffe7810cf7f4a388f7  gcc/testsuite/gcc.target/powerpc/pr106833.c
! c7290ae4c5b6c919339124b4be070eb8  gcc/testsuite/gcc.target/powerpc/pr107412.c
  cf6fc6f2cd4ce40de4bfcae2384bc88d  gcc/testsuite/gcc.target/powerpc/pr108272-1.c
  f50d5d85d2fd6cdb2c24ba2f99c5ed50  gcc/testsuite/gcc.target/powerpc/pr108272-2.c
  80b0790ba15d5f168fdb877edfba8e3c  gcc/testsuite/gcc.target/powerpc/pr108272-3.c
  8b12dd4a97ca50e2f9880c335cebf74b  gcc/testsuite/gcc.target/powerpc/pr108272-4.c
  9ddbaf07e6730054bf657e2df6b73692  gcc/testsuite/gcc.target/powerpc/pr108338.c
! 65a6ef54ee914d23ce223d617400356f  gcc/testsuite/gcc.target/powerpc/pr108348-1.c
! 565f3ac99013f9d619f195f0dfe37dfb  gcc/testsuite/gcc.target/powerpc/pr108348-2.c
! bdc0f42c0d2a21abea399dfb64e73178  gcc/testsuite/gcc.target/powerpc/pr108396.c
! e5cbdbd91e5f87f6f367b020caccb7a5  gcc/testsuite/gcc.target/powerpc/pr108699.c
  8dc6f7b3f475db76d4acd724068737cc  gcc/testsuite/gcc.target/powerpc/pr108787.c
  4e716a0a290d9aa588276f96d74da875  gcc/testsuite/gcc.target/powerpc/pr108862.c
  b3ad6c3610e28e21bfa05827c56b2b94  gcc/testsuite/gcc.target/powerpc/pr109069-1.c
  d002a5bc24966823d127263f4f26fc6f  gcc/testsuite/gcc.target/powerpc/pr109069-2-run.c
! bcf750ebf3a43e1e9a598882f0a9b3d3  gcc/testsuite/gcc.target/powerpc/pr109069-2.c
  1e04986cfbd8001de79d99e8138e518a  gcc/testsuite/gcc.target/powerpc/pr109069-2.h
! aecf6bf67600526f28f4a4f4cd0de4c2  gcc/testsuite/gcc.target/powerpc/pr109082.c
  bafd50f43ed68366ad85e5b1a7157b97  gcc/testsuite/gcc.target/powerpc/pr109167.c
  5d792150402910e5e2632539f0ba98c0  gcc/testsuite/gcc.target/powerpc/pr109178.c
  7b7dca63220f83027fa5bbff06ededcb  gcc/testsuite/gcc.target/powerpc/pr109566.c
! d51b186b845e143236ef53d3177ff431  gcc/testsuite/gcc.target/powerpc/pr109932-1.c
! d51b186b845e143236ef53d3177ff431  gcc/testsuite/gcc.target/powerpc/pr109932-2.c
  30266f999ed968f6bfdc98dae3651704  gcc/testsuite/gcc.target/powerpc/pr110011.c
+ f6d2f4364150d4138b35fed2c1ce6f5d  gcc/testsuite/gcc.target/powerpc/pr110040-1.c
+ 0e1ef8f79c047d14fea6d9a2e10e3fc2  gcc/testsuite/gcc.target/powerpc/pr110040-2.c
  824073815638d2562ae17cd1428f48e2  gcc/testsuite/gcc.target/powerpc/pr110071.c
  8989fb86fe162e16bfc145adc53eb41d  gcc/testsuite/gcc.target/powerpc/pr110320-1.c
  1d2e1c64a6490425a3d436069ea5d9ee  gcc/testsuite/gcc.target/powerpc/pr110320-2.c
  de6ffeadfb93fbec891279db1ecf2210  gcc/testsuite/gcc.target/powerpc/pr110320-3.c
  0fc82ebefb1ad802aeb7fce96c922091  gcc/testsuite/gcc.target/powerpc/pr110411-1.c
  39880b05b13efbac2f1002f1730f701b  gcc/testsuite/gcc.target/powerpc/pr110411-2.c
! 3b205d9542cd3901abf12744cb5dd038  gcc/testsuite/gcc.target/powerpc/pr110429.c
! 39ee848f956a4a4b6731756f3975788f  gcc/testsuite/gcc.target/powerpc/pr110776.c
  c610c8d7cbb111b72025bba844602bd8  gcc/testsuite/gcc.target/powerpc/pr111380-1.c
  68b71977f7a24a5a6b3cb45a7941649a  gcc/testsuite/gcc.target/powerpc/pr111380-2.c
! dd44b1456bae1bff91bd9172b0223936  gcc/testsuite/gcc.target/powerpc/pr111449-1.c
! 6a32ce285d9b2327c76eaed4c65d513b  gcc/testsuite/gcc.target/powerpc/pr111449-2.c
! 27387d5f2324f6aae387eced3daa64e4  gcc/testsuite/gcc.target/powerpc/pr111673.c
  ef7ee7d75d9d3cb837f9895dc04fe54e  gcc/testsuite/gcc.target/powerpc/pr111971.c
  d65923a88c1a895abf1a0b6491463f66  gcc/testsuite/gcc.target/powerpc/pr112525.c
  6c42e6e48da378e05514cb0730c927ba  gcc/testsuite/gcc.target/powerpc/pr112707-1.c
*************** bea55488bc41970b4864911300479619  gcc/te
*** 80817,80830 ****
  dfa8429959dd6c6fcf851ca3064927e4  gcc/testsuite/gcc.target/powerpc/pr112707-3.c
  1fc128afa44f8e922fda52e4bb478f12  gcc/testsuite/gcc.target/powerpc/pr112707.h
  0e7a854ff85bd85cdd8df405d6910ef8  gcc/testsuite/gcc.target/powerpc/pr112995.c
! b61eff89fa46bd55405a0700c83058dd  gcc/testsuite/gcc.target/powerpc/pr113950.c
  12344387881dc07bc23f4a66e635ea56  gcc/testsuite/gcc.target/powerpc/pr114759-2.c
  c2e6a1b23bf6293d877c7cdbc988b959  gcc/testsuite/gcc.target/powerpc/pr114759-3.c
  edbd673b54dc453f6adb46e7d7b5d688  gcc/testsuite/gcc.target/powerpc/pr114846.c
  5e2462c89d1f070e8e6bd6ae6deaa4eb  gcc/testsuite/gcc.target/powerpc/pr115355.c
  d2a0d498fd73b9c4321c054d794a4050  gcc/testsuite/gcc.target/powerpc/pr115389.c
! c2f6d6cf82ef4931619d09e10a0a72aa  gcc/testsuite/gcc.target/powerpc/pr16155.c
! 396ae287e72ecdda51bb3157818030a9  gcc/testsuite/gcc.target/powerpc/pr16286.c
  198d8a69d2887e8fadcb050d90e21aa6  gcc/testsuite/gcc.target/powerpc/pr16458-1.c
  7ef01a9b81f6b4838fbd53f9cefa27bb  gcc/testsuite/gcc.target/powerpc/pr16458-2.c
  58e39a25e4fd2ea26c2084a60d51a936  gcc/testsuite/gcc.target/powerpc/pr16458-3.c
--- 85808,85832 ----
  dfa8429959dd6c6fcf851ca3064927e4  gcc/testsuite/gcc.target/powerpc/pr112707-3.c
  1fc128afa44f8e922fda52e4bb478f12  gcc/testsuite/gcc.target/powerpc/pr112707.h
  0e7a854ff85bd85cdd8df405d6910ef8  gcc/testsuite/gcc.target/powerpc/pr112995.c
! 185939185c14241cd46ae1e06eb6633b  gcc/testsuite/gcc.target/powerpc/pr113325.c
! 90ea7edc312ae87f005c1b30705910f5  gcc/testsuite/gcc.target/powerpc/pr113950.c
! 2e69b2a9710c5482e355eafb438d1ee6  gcc/testsuite/gcc.target/powerpc/pr114402.c
! 808c8dea31758ca4d4b8b102250e043e  gcc/testsuite/gcc.target/powerpc/pr114567.c
! e77bab4be94a53968f3ae4012c0391c6  gcc/testsuite/gcc.target/powerpc/pr114759-1.c
  12344387881dc07bc23f4a66e635ea56  gcc/testsuite/gcc.target/powerpc/pr114759-2.c
  c2e6a1b23bf6293d877c7cdbc988b959  gcc/testsuite/gcc.target/powerpc/pr114759-3.c
  edbd673b54dc453f6adb46e7d7b5d688  gcc/testsuite/gcc.target/powerpc/pr114846.c
  5e2462c89d1f070e8e6bd6ae6deaa4eb  gcc/testsuite/gcc.target/powerpc/pr115355.c
  d2a0d498fd73b9c4321c054d794a4050  gcc/testsuite/gcc.target/powerpc/pr115389.c
! 3f71797daae2c3767c09bb421554943f  gcc/testsuite/gcc.target/powerpc/pr115688.c
! faee8c356a7851d893a6c1a079c081d5  gcc/testsuite/gcc.target/powerpc/pr115713-1.c
! deb12224fed195721b2ddc8b70e46a23  gcc/testsuite/gcc.target/powerpc/pr115713-2.c
! 1737969c505469a6fec1082c5f4ada8f  gcc/testsuite/gcc.target/powerpc/pr116030.c
! 3944b7ca9b08abe29fedfeabbbd32d5a  gcc/testsuite/gcc.target/powerpc/pr116170.c
! 68e7a002ed920723f1529e366afe30de  gcc/testsuite/gcc.target/powerpc/pr116415.c
! da26cb6383a24e6a94a6c247d777f6b8  gcc/testsuite/gcc.target/powerpc/pr118663.c
! f0441edf54193f1b965b7d96e3ad8f52  gcc/testsuite/gcc.target/powerpc/pr16155.c
! 6f5ca156bb125cbf24502221226bb56e  gcc/testsuite/gcc.target/powerpc/pr16286.c
  198d8a69d2887e8fadcb050d90e21aa6  gcc/testsuite/gcc.target/powerpc/pr16458-1.c
  7ef01a9b81f6b4838fbd53f9cefa27bb  gcc/testsuite/gcc.target/powerpc/pr16458-2.c
  58e39a25e4fd2ea26c2084a60d51a936  gcc/testsuite/gcc.target/powerpc/pr16458-3.c
*************** c79d8c338657eeb7d28fba8be724005d  gcc/te
*** 80833,80853 ****
  93cd4ac4729555011c7a428533f1db83  gcc/testsuite/gcc.target/powerpc/pr18096-1.c
  ab27caeed3a927279188546795ad1803  gcc/testsuite/gcc.target/powerpc/pr25960.c
  dd769e19e79e3e81d587561be1c4c5a7  gcc/testsuite/gcc.target/powerpc/pr26350.c
! e568badc378a1ea556b482bc42fe4220  gcc/testsuite/gcc.target/powerpc/pr27158.c
  8a75743bcada3e5894868f9bcdb20889  gcc/testsuite/gcc.target/powerpc/pr30271.c
! e7cb34a71318969a14e6e5913d6c9d82  gcc/testsuite/gcc.target/powerpc/pr35907.c
! e183225a8b1a53401796864308b33359  gcc/testsuite/gcc.target/powerpc/pr37168.c
  a8b9deee7e4e1cf21cd8c0cc3a32078e  gcc/testsuite/gcc.target/powerpc/pr37191.c
  10a4dfe7b6545ed5cd448dc9a60c7228  gcc/testsuite/gcc.target/powerpc/pr39457.c
  e1070d5b726899f80292b497fab29a24  gcc/testsuite/gcc.target/powerpc/pr39902-2.c
  22e940b76d5cf6790c8617b43e339e66  gcc/testsuite/gcc.target/powerpc/pr41175.c
! f09a1cf9bd57f8a2ba1648a0445b6189  gcc/testsuite/gcc.target/powerpc/pr42747.c
! 2e6290c4fb45bd5aac53ebbd8b30690a  gcc/testsuite/gcc.target/powerpc/pr43154.c
  6297b7fbdfb37ede83db8e801f0c1267  gcc/testsuite/gcc.target/powerpc/pr46728-1.c
! bd6f936a54ce6b21c8b445e1e4078770  gcc/testsuite/gcc.target/powerpc/pr46728-10.c
! 06534652fd87b9b8b9322193f6215efb  gcc/testsuite/gcc.target/powerpc/pr46728-11.c
! 20d0df4eef57de0eb14638e40692c84d  gcc/testsuite/gcc.target/powerpc/pr46728-13.c
! 1380410f7102b20b03404e4291461b5d  gcc/testsuite/gcc.target/powerpc/pr46728-14.c
  33f8d77aa67adf3adb2c5560c3a72c68  gcc/testsuite/gcc.target/powerpc/pr46728-15.c
  1067d128e8fd90cee9be02878c03fb2e  gcc/testsuite/gcc.target/powerpc/pr46728-16.c
  2a3b024a500703fe47e19f9d7d5d7c94  gcc/testsuite/gcc.target/powerpc/pr46728-2.c
--- 85835,85855 ----
  93cd4ac4729555011c7a428533f1db83  gcc/testsuite/gcc.target/powerpc/pr18096-1.c
  ab27caeed3a927279188546795ad1803  gcc/testsuite/gcc.target/powerpc/pr25960.c
  dd769e19e79e3e81d587561be1c4c5a7  gcc/testsuite/gcc.target/powerpc/pr26350.c
! 0e7e7cd48c0588682a86beb377e09011  gcc/testsuite/gcc.target/powerpc/pr27158.c
  8a75743bcada3e5894868f9bcdb20889  gcc/testsuite/gcc.target/powerpc/pr30271.c
! 8669b321c6fa3b8972697c6795b04dfd  gcc/testsuite/gcc.target/powerpc/pr35907.c
! 85a8c2c48b3970f2cad453076a9abc40  gcc/testsuite/gcc.target/powerpc/pr37168.c
  a8b9deee7e4e1cf21cd8c0cc3a32078e  gcc/testsuite/gcc.target/powerpc/pr37191.c
  10a4dfe7b6545ed5cd448dc9a60c7228  gcc/testsuite/gcc.target/powerpc/pr39457.c
  e1070d5b726899f80292b497fab29a24  gcc/testsuite/gcc.target/powerpc/pr39902-2.c
  22e940b76d5cf6790c8617b43e339e66  gcc/testsuite/gcc.target/powerpc/pr41175.c
! 4dba9f07ecf09426bf6006313a780967  gcc/testsuite/gcc.target/powerpc/pr42747.c
! 8f93b7ffac7eec146041130e44694f94  gcc/testsuite/gcc.target/powerpc/pr43154.c
  6297b7fbdfb37ede83db8e801f0c1267  gcc/testsuite/gcc.target/powerpc/pr46728-1.c
! 01acf1d1b2db5c9ec69f0df79f92fb89  gcc/testsuite/gcc.target/powerpc/pr46728-10.c
! 697f7adb19a4d2d78d7cfe7936681a18  gcc/testsuite/gcc.target/powerpc/pr46728-11.c
! c88c3d3e5a4b10dc73b1ac1e6e327fcc  gcc/testsuite/gcc.target/powerpc/pr46728-13.c
! 1cabe8b3c14dc076c00927253198bd0b  gcc/testsuite/gcc.target/powerpc/pr46728-14.c
  33f8d77aa67adf3adb2c5560c3a72c68  gcc/testsuite/gcc.target/powerpc/pr46728-15.c
  1067d128e8fd90cee9be02878c03fb2e  gcc/testsuite/gcc.target/powerpc/pr46728-16.c
  2a3b024a500703fe47e19f9d7d5d7c94  gcc/testsuite/gcc.target/powerpc/pr46728-2.c
*************** a29766cc5f98866ea21c9ca1ebabc556  gcc/te
*** 80856,80900 ****
  6e48bb052ee0a9a3adfb65d0f4ceda2f  gcc/testsuite/gcc.target/powerpc/pr46728-5.c
  578c64c87b74b5b2f698747ecffd19c0  gcc/testsuite/gcc.target/powerpc/pr46728-7.c
  d776e75164beada31b39ff00852a1668  gcc/testsuite/gcc.target/powerpc/pr46728-8.c
! 09542fc0756c51e091818e0d1a7a05b5  gcc/testsuite/gcc.target/powerpc/pr47197.c
! a0e606dab79aaaa9e11071de6da755e4  gcc/testsuite/gcc.target/powerpc/pr47251.c
  060667fe3e1bac4e5dc397aa8686650d  gcc/testsuite/gcc.target/powerpc/pr47755-2.c
! cdbb7e39d634ecc2d52f975871ea2979  gcc/testsuite/gcc.target/powerpc/pr47755.c
! c909debea4fb5169a1dc044740fcb37a  gcc/testsuite/gcc.target/powerpc/pr47862.c
! 1788600faafbbb261945c1360c98c234  gcc/testsuite/gcc.target/powerpc/pr48053-1.c
! 548bdf112eb01996ef4f6f1c395227b6  gcc/testsuite/gcc.target/powerpc/pr48053-2.c
! b67cf4daa68688ae30977abe90fe2646  gcc/testsuite/gcc.target/powerpc/pr48053-3.c
! 666a383e20ebae26d8f11becb69247f4  gcc/testsuite/gcc.target/powerpc/pr48192.c
! e4aa42b29799ffee42d161449aa5bc11  gcc/testsuite/gcc.target/powerpc/pr48226.c
! 78180a6f22b9ec601574e8284b52f440  gcc/testsuite/gcc.target/powerpc/pr48258-1.c
! 75bc7409e625c2acc9ee41376d0ae09d  gcc/testsuite/gcc.target/powerpc/pr48258-2.c
  fe0ac584cf475bdf88cf0c5379e02068  gcc/testsuite/gcc.target/powerpc/pr48344-1.c
! 00c7ebb62d79dd79290fb389e55fd39a  gcc/testsuite/gcc.target/powerpc/pr48857.c
  c638e8830a3520905caf5144fa3bfd4e  gcc/testsuite/gcc.target/powerpc/pr51513.c
  2079afb39b02aee453b1737c8beaa071  gcc/testsuite/gcc.target/powerpc/pr51623.c
! 7aecb0577eaa590e0c2b80f613225874  gcc/testsuite/gcc.target/powerpc/pr52199.c
  e3a64d163454e60156a731e48749fa21  gcc/testsuite/gcc.target/powerpc/pr52457.c
  9c67f69383e271bfec6724ea8745e97b  gcc/testsuite/gcc.target/powerpc/pr52775.c
  a35d6874425760fd111ce6a9162043c1  gcc/testsuite/gcc.target/powerpc/pr53199.c
! de09210d456b5ec489b5febb07484cd5  gcc/testsuite/gcc.target/powerpc/pr53487.c
  3fafe888a5a347cd1b88c764346a31b0  gcc/testsuite/gcc.target/powerpc/pr54009.c
  d40a51962a039d2508b9b3e8ce82ac22  gcc/testsuite/gcc.target/powerpc/pr54240.c
  853064cbe6e6b358b4e72923e94ee354  gcc/testsuite/gcc.target/powerpc/pr55033.c
  e4531bd522b146b22bdbf991fc3d207e  gcc/testsuite/gcc.target/powerpc/pr56256.c
! c1e226810308677426b3240d2a8147a5  gcc/testsuite/gcc.target/powerpc/pr56605.c
! be37d527321d015059e346e469f7e0e4  gcc/testsuite/gcc.target/powerpc/pr57150.c
  7a49a99d1d678fcb8065029344b893d5  gcc/testsuite/gcc.target/powerpc/pr57363.c
! 9fc95cd5b7aa3be3fba8f91329053241  gcc/testsuite/gcc.target/powerpc/pr57744.c
  2a812c7ca353d030cdacba52d4837f7e  gcc/testsuite/gcc.target/powerpc/pr57949-1.c
  3064b02fb529ee79d095f87da7dce88b  gcc/testsuite/gcc.target/powerpc/pr57949-2.c
  d58a248fbbaa40f8533b7dd68594b12c  gcc/testsuite/gcc.target/powerpc/pr58330.c
! d7bf9e585b3099437911e981c5545178  gcc/testsuite/gcc.target/powerpc/pr58673-1.c
! 13f936e962f25395726b2f710fc3f3d6  gcc/testsuite/gcc.target/powerpc/pr58673-2.c
! 71efa814e2df5fb65075309616e87141  gcc/testsuite/gcc.target/powerpc/pr59054.c
  e2be005a17035d4d4c6269830259fd72  gcc/testsuite/gcc.target/powerpc/pr60032.c
! d394eb78d661209dccfe2b335440ba8d  gcc/testsuite/gcc.target/powerpc/pr60137.c
! aee199321f25d1a33f1b5224236029eb  gcc/testsuite/gcc.target/powerpc/pr60203.c
! 5364c7cd89460e7ab273bea540e3a8ac  gcc/testsuite/gcc.target/powerpc/pr60676.c
  8d3043f8e784226d4ad699f3ddca5838  gcc/testsuite/gcc.target/powerpc/pr61837.c
  20ff46b0608216382ea6e9abd325e184  gcc/testsuite/gcc.target/powerpc/pr61977-1.c
  a8716538a35e149e6421a6a569b0d882  gcc/testsuite/gcc.target/powerpc/pr61977-2.c
--- 85858,85902 ----
  6e48bb052ee0a9a3adfb65d0f4ceda2f  gcc/testsuite/gcc.target/powerpc/pr46728-5.c
  578c64c87b74b5b2f698747ecffd19c0  gcc/testsuite/gcc.target/powerpc/pr46728-7.c
  d776e75164beada31b39ff00852a1668  gcc/testsuite/gcc.target/powerpc/pr46728-8.c
! f5414b744fa1f4b4336d05039d906282  gcc/testsuite/gcc.target/powerpc/pr47197.c
! ad9fb0c3b819dbba26d36ff428c256da  gcc/testsuite/gcc.target/powerpc/pr47251.c
  060667fe3e1bac4e5dc397aa8686650d  gcc/testsuite/gcc.target/powerpc/pr47755-2.c
! b125dc636accad4cebb84f8754107fda  gcc/testsuite/gcc.target/powerpc/pr47755.c
! e11fbba69733b753b23c5a03597c2cec  gcc/testsuite/gcc.target/powerpc/pr47862.c
! f38fd48c5d57a871fb59aef91b719943  gcc/testsuite/gcc.target/powerpc/pr48053-1.c
! d429219cad4daf0a991f2e4788daed71  gcc/testsuite/gcc.target/powerpc/pr48053-2.c
! ab037c47ac7929fc6d3ea5ec496c1a2a  gcc/testsuite/gcc.target/powerpc/pr48053-3.c
! c1d0db8a0530e26e913beea0c63455cf  gcc/testsuite/gcc.target/powerpc/pr48192.c
! 580e0e42313b10ee943c33865b055e09  gcc/testsuite/gcc.target/powerpc/pr48226.c
! b5a155f7cf5476b0c22cf8ddbe15944d  gcc/testsuite/gcc.target/powerpc/pr48258-1.c
! e99bc46dd6c236fabb1f81e05a4be8d6  gcc/testsuite/gcc.target/powerpc/pr48258-2.c
  fe0ac584cf475bdf88cf0c5379e02068  gcc/testsuite/gcc.target/powerpc/pr48344-1.c
! 4d0903e8e39b96581556e784ea4846b2  gcc/testsuite/gcc.target/powerpc/pr48857.c
  c638e8830a3520905caf5144fa3bfd4e  gcc/testsuite/gcc.target/powerpc/pr51513.c
  2079afb39b02aee453b1737c8beaa071  gcc/testsuite/gcc.target/powerpc/pr51623.c
! e57dc04957852d688553994511a0e31d  gcc/testsuite/gcc.target/powerpc/pr52199.c
  e3a64d163454e60156a731e48749fa21  gcc/testsuite/gcc.target/powerpc/pr52457.c
  9c67f69383e271bfec6724ea8745e97b  gcc/testsuite/gcc.target/powerpc/pr52775.c
  a35d6874425760fd111ce6a9162043c1  gcc/testsuite/gcc.target/powerpc/pr53199.c
! 0041064770d4d46cd4bc4abf6c00f334  gcc/testsuite/gcc.target/powerpc/pr53487.c
  3fafe888a5a347cd1b88c764346a31b0  gcc/testsuite/gcc.target/powerpc/pr54009.c
  d40a51962a039d2508b9b3e8ce82ac22  gcc/testsuite/gcc.target/powerpc/pr54240.c
  853064cbe6e6b358b4e72923e94ee354  gcc/testsuite/gcc.target/powerpc/pr55033.c
  e4531bd522b146b22bdbf991fc3d207e  gcc/testsuite/gcc.target/powerpc/pr56256.c
! 0d77e7881fa8e8ef508662ae483e3c41  gcc/testsuite/gcc.target/powerpc/pr56605.c
! 2cb828d1a252848e5b1caac38adc8a02  gcc/testsuite/gcc.target/powerpc/pr57150.c
  7a49a99d1d678fcb8065029344b893d5  gcc/testsuite/gcc.target/powerpc/pr57363.c
! 85c4c270f3dcc1a8a39b8699251113b2  gcc/testsuite/gcc.target/powerpc/pr57744.c
  2a812c7ca353d030cdacba52d4837f7e  gcc/testsuite/gcc.target/powerpc/pr57949-1.c
  3064b02fb529ee79d095f87da7dce88b  gcc/testsuite/gcc.target/powerpc/pr57949-2.c
  d58a248fbbaa40f8533b7dd68594b12c  gcc/testsuite/gcc.target/powerpc/pr58330.c
! aae714c6fd431837d970ad01f4a0182b  gcc/testsuite/gcc.target/powerpc/pr58673-1.c
! 5536f367075ef476f38051bcae3eaaab  gcc/testsuite/gcc.target/powerpc/pr58673-2.c
! 9dd9af008f332453dfc01dbd9a71a271  gcc/testsuite/gcc.target/powerpc/pr59054.c
  e2be005a17035d4d4c6269830259fd72  gcc/testsuite/gcc.target/powerpc/pr60032.c
! bb710b06cbcdfe87b8945796469ac671  gcc/testsuite/gcc.target/powerpc/pr60137.c
! 4c7327de39303b94357e5ef462ab0183  gcc/testsuite/gcc.target/powerpc/pr60203.c
! b503eef3104b6d0e93b8bdde5070956e  gcc/testsuite/gcc.target/powerpc/pr60676.c
  8d3043f8e784226d4ad699f3ddca5838  gcc/testsuite/gcc.target/powerpc/pr61837.c
  20ff46b0608216382ea6e9abd325e184  gcc/testsuite/gcc.target/powerpc/pr61977-1.c
  a8716538a35e149e6421a6a569b0d882  gcc/testsuite/gcc.target/powerpc/pr61977-2.c
*************** ec239ff2532cd3a33358fe0d15483672  gcc/te
*** 80902,81054 ****
  6a8782e0ec292e03f4e2c80e84259d97  gcc/testsuite/gcc.target/powerpc/pr63335.c
  90631e1f2929b792894198b96774c9fc  gcc/testsuite/gcc.target/powerpc/pr63354.c
  46f4342a0fb34a0068bd9a1bc0fb9644  gcc/testsuite/gcc.target/powerpc/pr63491.c
! a3fecc86b4f3176d71745478e4b20b0b  gcc/testsuite/gcc.target/powerpc/pr64019.c
  1774961bad8e66a4ad3db16a729331d2  gcc/testsuite/gcc.target/powerpc/pr64205.c
! 7e6cd200ccb9bc668a4cb5e7338068d8  gcc/testsuite/gcc.target/powerpc/pr64505.c
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  07ae256a310975ba7230e33196da928e  gcc/testsuite/gcc.target/powerpc/pr65456.c
  3db2f60754130dda04d75b82cad74f3a  gcc/testsuite/gcc.target/powerpc/pr65787.c
! 33a48518596bd94e524cbd05ea759c12  gcc/testsuite/gcc.target/powerpc/pr66144-1.c
! 5628009af02bfe9adc6417a621266129  gcc/testsuite/gcc.target/powerpc/pr66144-2.c
! 50552c5b3004d7fb0ada628172ba83af  gcc/testsuite/gcc.target/powerpc/pr66144-3.c
! a7b8f91239a6849190c33d6dc7fca2f1  gcc/testsuite/gcc.target/powerpc/pr67071-1.c
! e038631511e1b99595d6a8397a4ef5e9  gcc/testsuite/gcc.target/powerpc/pr67071-2.c
! 5c67dc7bd814ce966307b3d146df01a3  gcc/testsuite/gcc.target/powerpc/pr67071-3.c
  c738b7e719c6088a5ef4aca1a80910de  gcc/testsuite/gcc.target/powerpc/pr67789.c
! ae3029e81960085577585e91a8b8aa94  gcc/testsuite/gcc.target/powerpc/pr67808.c
! cb546ce884a7d9b40290e7180cde2930  gcc/testsuite/gcc.target/powerpc/pr68163.c
  68a605fe9f861af7c52bc6cb9f79c12d  gcc/testsuite/gcc.target/powerpc/pr68805.c
  9711ebbd75b4e3d771426d8e6948ccd7  gcc/testsuite/gcc.target/powerpc/pr68872.c
  faf2ed46677346059dd2b7fd42254985  gcc/testsuite/gcc.target/powerpc/pr69252.c
  2dafa1128afc74d49fa120837106d572  gcc/testsuite/gcc.target/powerpc/pr69461.c
! f9299e3b12f02dea684fb5fb86811cc7  gcc/testsuite/gcc.target/powerpc/pr69548.c
  c12c18f334b92db27768fc61c21a1b4a  gcc/testsuite/gcc.target/powerpc/pr69946.c
  8de5ffb2d5ac3eef7a5e25cc4282770a  gcc/testsuite/gcc.target/powerpc/pr69969.c
  325a069d871f180ee18e5ae4b3e8fadf  gcc/testsuite/gcc.target/powerpc/pr70010-1.c
! c2bb4c50496aade60596e697b1d8782d  gcc/testsuite/gcc.target/powerpc/pr70010-2.c
! 631aeb0c1c1d1285b25bfd1049b68926  gcc/testsuite/gcc.target/powerpc/pr70010-3.c
  f04c5add43326054cacbb6544404890d  gcc/testsuite/gcc.target/powerpc/pr70010-4.c
  1de006067bf04677e8e3043c80b99112  gcc/testsuite/gcc.target/powerpc/pr70010.c
  30bf5235bdce0bbd05169c7ec78fb273  gcc/testsuite/gcc.target/powerpc/pr70117.c
! fa25257d80acb26f0f70a5da209dbad5  gcc/testsuite/gcc.target/powerpc/pr70243.c
  9f0a82f7f84690a18cb82bed87617073  gcc/testsuite/gcc.target/powerpc/pr70640.c
! dce310f9430a713b3a123e02d026fae3  gcc/testsuite/gcc.target/powerpc/pr70669.c
  bb6ec828efc211131c5a036203ac7c94  gcc/testsuite/gcc.target/powerpc/pr70866.c
  80e7937b9b3e36188653d2cd8217ff77  gcc/testsuite/gcc.target/powerpc/pr70963.c
! 4db00c6f6c8915a442bc8efdaa93e510  gcc/testsuite/gcc.target/powerpc/pr71186.c
! ab54a4817911d7d3bbe757072d7001e4  gcc/testsuite/gcc.target/powerpc/pr71297.c
! 2f8b22238ee533e177248eb5e98e33f2  gcc/testsuite/gcc.target/powerpc/pr71309.c
  f417c588db95ee3f7fbced361af8dbfa  gcc/testsuite/gcc.target/powerpc/pr71310.c
  18f516c22671e1293affe8823881c35c  gcc/testsuite/gcc.target/powerpc/pr71493-1.c
  7d83053012a7579379ae3f803b73b2ec  gcc/testsuite/gcc.target/powerpc/pr71493-2.c
! 80545881911f40f3a74b647d13810811  gcc/testsuite/gcc.target/powerpc/pr71656-1.c
! f0009d3f57e4731b941a3c3693a56708  gcc/testsuite/gcc.target/powerpc/pr71656-2.c
! d4e6e543960cf94198bb05e471885676  gcc/testsuite/gcc.target/powerpc/pr71670.c
! ba1b12b42ef5b65dd907b1cede8a6f35  gcc/testsuite/gcc.target/powerpc/pr71680.c
! b5427be19e901c0fad31388d0eb857cd  gcc/testsuite/gcc.target/powerpc/pr71698.c
! 45ff870e125c61947bd84e67f39e4b01  gcc/testsuite/gcc.target/powerpc/pr71720.c
! c648368431c3b3e1cecfc144e7ce4260  gcc/testsuite/gcc.target/powerpc/pr71763.c
  1a2ab1b5ac9370a9c043f60e7d47c0b8  gcc/testsuite/gcc.target/powerpc/pr71785.c
  1b89918520ab534b2dee02684491f2c7  gcc/testsuite/gcc.target/powerpc/pr71805.c
! fb68fcd3b628554470660547a8698751  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
! 95756c1348ba07cb5e171fd7ad79ad87  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
! 74e9ceab9854882049ba026b242fb571  gcc/testsuite/gcc.target/powerpc/pr72717.c
! 3763ddb4df699d0b1ba656bbe0eb4e59  gcc/testsuite/gcc.target/powerpc/pr72804.c
! 6dde6100c02b305e7e1f6c79012db98b  gcc/testsuite/gcc.target/powerpc/pr72853.c
  f89f50620562c6f4abc51387af2bb088  gcc/testsuite/gcc.target/powerpc/pr72863.c
! e3aae05283ea4b10932c86272339b737  gcc/testsuite/gcc.target/powerpc/pr77289.c
  4aaf1bd3e51d911691410fb1560112f1  gcc/testsuite/gcc.target/powerpc/pr77416.c
  ad6a1f1ff4c5f5f604858aaf552068c2  gcc/testsuite/gcc.target/powerpc/pr77687.c
! cf000c9a84657074ee61530929ecfd64  gcc/testsuite/gcc.target/powerpc/pr78056-1.c
! 13928e6382dcd624e48e3941f5ad0a0c  gcc/testsuite/gcc.target/powerpc/pr78056-2.c
! 4f72324fcec45a2e2b03ccc4d7586956  gcc/testsuite/gcc.target/powerpc/pr78056-3.c
! 9baa2e549b6676f967bed83a60aa4955  gcc/testsuite/gcc.target/powerpc/pr78056-4.c
! 6c92ebd0815729233bf7f336cbc77669  gcc/testsuite/gcc.target/powerpc/pr78056-5.c
! c8e4d5ccb2226fba0ad28aadabb79509  gcc/testsuite/gcc.target/powerpc/pr78056-6.c
! 7269e93e0c9a9d55e127430a45880a33  gcc/testsuite/gcc.target/powerpc/pr78056-7.c
! 15fed3e125923c457162c406128c543a  gcc/testsuite/gcc.target/powerpc/pr78102.c
! 8e3a87fc28695d0c1e92df629d4fd575  gcc/testsuite/gcc.target/powerpc/pr78543.c
! 7d4f2868fec786e2473cd97e1458ceff  gcc/testsuite/gcc.target/powerpc/pr78604.c
! 316c86f5c4e29d54bce9bc97eb09d542  gcc/testsuite/gcc.target/powerpc/pr78658.c
  e77f24f1b3f26aacf550086da8e1c63b  gcc/testsuite/gcc.target/powerpc/pr78691-ppc.c
! 91fc496d77927eef6dfa095250f44141  gcc/testsuite/gcc.target/powerpc/pr78953.c
! 8b66809bb1531574879bbfc38ce4f1b9  gcc/testsuite/gcc.target/powerpc/pr79004.c
! cd1ff1dfab78ef6eaedb37c96d3acff7  gcc/testsuite/gcc.target/powerpc/pr79038-1.c
  fb131f3896466dcc86b6cb615cf76c79  gcc/testsuite/gcc.target/powerpc/pr79066.c
! a47e5ac04178fef094a40c91b32b80c8  gcc/testsuite/gcc.target/powerpc/pr79179.c
  fb524be9fd12ca8094bde96a06f3bdd5  gcc/testsuite/gcc.target/powerpc/pr79197.c
  06614db7b0eda23af016ac8f01f92586  gcc/testsuite/gcc.target/powerpc/pr79251-run.p7.c
  d196e5fb12502e953299ec47df85f91b  gcc/testsuite/gcc.target/powerpc/pr79251-run.p8.c
  739792749365d658ad924456e1bfe4da  gcc/testsuite/gcc.target/powerpc/pr79251-run.p9.c
  334bc6971aae3f5b06b6d18554b8a198  gcc/testsuite/gcc.target/powerpc/pr79251.h
! 53523b8f6029f1e731e5096f1c07e251  gcc/testsuite/gcc.target/powerpc/pr79251.p7.c
! e8d078f5d22ffd50f436b5c52dbd767e  gcc/testsuite/gcc.target/powerpc/pr79251.p8.c
! 714ed9364c01a1173025ad944a7ee42b  gcc/testsuite/gcc.target/powerpc/pr79251.p9.c
  13b9dd20539375055df7846adb6bdc98  gcc/testsuite/gcc.target/powerpc/pr79268.c
! df18aed42f008e28f13f073f7ef24a74  gcc/testsuite/gcc.target/powerpc/pr79354.c
  488484e8a985fe9f1c5c93cbe3cccb03  gcc/testsuite/gcc.target/powerpc/pr79439-1.c
  e630f5d0f9e7ee9aedda99101ae4de1b  gcc/testsuite/gcc.target/powerpc/pr79439-2.c
  e91006f9d28ed78f637d335550563fe0  gcc/testsuite/gcc.target/powerpc/pr79439-3.c
! 2106184575524ec757451d0cb40c9de9  gcc/testsuite/gcc.target/powerpc/pr79544.c
! cc7c5371e342577d2e93fd3ec82bf628  gcc/testsuite/gcc.target/powerpc/pr79799-1.c
! a7a91a3697e2dae31730147d95136270  gcc/testsuite/gcc.target/powerpc/pr79799-2.c
! a938baff69009db6da80db6487872634  gcc/testsuite/gcc.target/powerpc/pr79799-3.c
  2cda0e5d4de03c3510058352b171ff87  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
! 2e92d4227484a371ab142466b49ae4c4  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
! 1e5dddfa7a9de786a45a143632b98c07  gcc/testsuite/gcc.target/powerpc/pr79907.c
  839e8b59fffd1864e14e5cdcca752621  gcc/testsuite/gcc.target/powerpc/pr79909.c
  d95c7f854b8c7b0cf8a1e4eec78d534c  gcc/testsuite/gcc.target/powerpc/pr79916.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
! c45b955c70633ef3e76e76dd5cca7c61  gcc/testsuite/gcc.target/powerpc/pr79951.c
! 6af8f1dbe17f4427af2973b8961d8239  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
! 8af6ab03ec03332430f993337abc521f  gcc/testsuite/gcc.target/powerpc/pr80098-2.c
! 7bc4c86c7d2fb44d1c0bf5b2495215a5  gcc/testsuite/gcc.target/powerpc/pr80098-3.c
  31e10fa4f3edb14ec1b460a829e97a82  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  d898a03a0134d7a17ff89a9859557dc9  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
! ab44a0bea59dd79d02d62c50669540e6  gcc/testsuite/gcc.target/powerpc/pr80315-1.c
! 6642284b20fa3dd9612f5b412927cf78  gcc/testsuite/gcc.target/powerpc/pr80315-2.c
! f4808970595a00aaa5842b78a574af96  gcc/testsuite/gcc.target/powerpc/pr80315-3.c
! 2e696bd9887fbfb4c575162481590a05  gcc/testsuite/gcc.target/powerpc/pr80315-4.c
! 8af068f1ab09bfab1dc3d577a5323267  gcc/testsuite/gcc.target/powerpc/pr80510-1.c
! 89efeccb15eb17cf32bed7f2a437df79  gcc/testsuite/gcc.target/powerpc/pr80510-2.c
! ad8b1729ae6a728fcc02e872b8390457  gcc/testsuite/gcc.target/powerpc/pr80695-p8.c
! 7ee079bc5c6e9d09781af8968426bcd5  gcc/testsuite/gcc.target/powerpc/pr80695-p9.c
! bbef64b32ac0776f3a5dca8e5bf1d20a  gcc/testsuite/gcc.target/powerpc/pr80718.c
! 80449bba8315e6fce14e92147571610e  gcc/testsuite/gcc.target/powerpc/pr81348.c
  4f35be6c6a527cf028ceb7ba54273110  gcc/testsuite/gcc.target/powerpc/pr81572.c
! 842261a38121fdeca108ec84a5393cb3  gcc/testsuite/gcc.target/powerpc/pr81622.c
  601307dac2aee8083d3f97edae2588d1  gcc/testsuite/gcc.target/powerpc/pr81833-1.c
  9288b1f38b6b8a17630ca31fada51991  gcc/testsuite/gcc.target/powerpc/pr81833-2.c
! 79ccf2f94557b2674faaa855391a9ef3  gcc/testsuite/gcc.target/powerpc/pr81959.c
! dd8032eeec85ca5024c17f5972f4e567  gcc/testsuite/gcc.target/powerpc/pr82015.c
! 118dd26456facc5560611716506ec4a3  gcc/testsuite/gcc.target/powerpc/pr82112.c
  9d01972355938afb2a4de9ba1d316dc0  gcc/testsuite/gcc.target/powerpc/pr82333.c
! a3088bc5ab705b7a63e1dc6c9072eb6e  gcc/testsuite/gcc.target/powerpc/pr82748-1.c
! 7856e63a7e2636a31ad86aec6f6b3792  gcc/testsuite/gcc.target/powerpc/pr82748-2.c
  94063e07a1d46fd61e894aa64b40ebaf  gcc/testsuite/gcc.target/powerpc/pr82848.c
! ea551d3ae1683b94dcf15935e3841a31  gcc/testsuite/gcc.target/powerpc/pr83399.c
  15f19b48d6d84c3685af80447edafc48  gcc/testsuite/gcc.target/powerpc/pr83629.c
  95f3057a6b14afee4d6303b80c7f0657  gcc/testsuite/gcc.target/powerpc/pr83677.c
! 2ec91f85cddb4ab758b4d4beca92e953  gcc/testsuite/gcc.target/powerpc/pr83862.c
  73347c1481c6d9c50f16f425d409c708  gcc/testsuite/gcc.target/powerpc/pr83926.c
  88f706eef23e0ac23ef58bea3e3cf28a  gcc/testsuite/gcc.target/powerpc/pr83969.c
  864d120dc10ef939e30dca2faf8c357f  gcc/testsuite/gcc.target/powerpc/pr84014.c
  30a1a896107d295e2f08283d07a0ede8  gcc/testsuite/gcc.target/powerpc/pr84112.c
! adb589ab7a43f791607772d30fc18c39  gcc/testsuite/gcc.target/powerpc/pr84154-1.c
! 97151674ba0e38932201e38cb963960f  gcc/testsuite/gcc.target/powerpc/pr84154-2.c
! de2f02f20a2d8f6af530f0069f660e7b  gcc/testsuite/gcc.target/powerpc/pr84154-3.c
! 332b33a6c444a0e7215458dfbe7ecd98  gcc/testsuite/gcc.target/powerpc/pr84220-sld.c
! 5f8c97300aee6f102975a769426d4064  gcc/testsuite/gcc.target/powerpc/pr84220-sld2.c
! af7dc861a4500601b67924732c8cc38f  gcc/testsuite/gcc.target/powerpc/pr84220-sldw.c
! ef31dac4dd4a4633f786cc30b8ab9090  gcc/testsuite/gcc.target/powerpc/pr84220-xxperm.c
! c43c9d0cb784a0045b3de2aa6d554160  gcc/testsuite/gcc.target/powerpc/pr84220-xxsld.c
! 15479627ed5daa27a0a85910a6ab9ee2  gcc/testsuite/gcc.target/powerpc/pr84226.c
  051202397c19754b2a90622d9c2bc23f  gcc/testsuite/gcc.target/powerpc/pr84700.c
! 874e5579ccc7cea1bb0bdaa8eabfdcb3  gcc/testsuite/gcc.target/powerpc/pr84878.c
! 1802bcbdc435551af4f2cc413de60fdd  gcc/testsuite/gcc.target/powerpc/pr85456.c
  d6eedb678b78d75b5a8cccf7cb882281  gcc/testsuite/gcc.target/powerpc/pr85657-1.c
  29cc596e197013c8169e6c028e902254  gcc/testsuite/gcc.target/powerpc/pr85657-2.c
  4cd1a055844a1c424f39acca434a4da3  gcc/testsuite/gcc.target/powerpc/pr85657-3.c
--- 85904,86053 ----
  6a8782e0ec292e03f4e2c80e84259d97  gcc/testsuite/gcc.target/powerpc/pr63335.c
  90631e1f2929b792894198b96774c9fc  gcc/testsuite/gcc.target/powerpc/pr63354.c
  46f4342a0fb34a0068bd9a1bc0fb9644  gcc/testsuite/gcc.target/powerpc/pr63491.c
! 793c05d2153295034dac62c729bef299  gcc/testsuite/gcc.target/powerpc/pr64019.c
  1774961bad8e66a4ad3db16a729331d2  gcc/testsuite/gcc.target/powerpc/pr64205.c
! 7f7ab97ae2cb3b320df5a17d7c3929a2  gcc/testsuite/gcc.target/powerpc/pr64505.c
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  07ae256a310975ba7230e33196da928e  gcc/testsuite/gcc.target/powerpc/pr65456.c
  3db2f60754130dda04d75b82cad74f3a  gcc/testsuite/gcc.target/powerpc/pr65787.c
! c863a881b3886f6a200b13cde27d9dde  gcc/testsuite/gcc.target/powerpc/pr66144-1.c
! 7c582721a1b1486a04ed15c7cdb4e50d  gcc/testsuite/gcc.target/powerpc/pr66144-2.c
! 164e148b9d4eb645189ce79d4723d5b1  gcc/testsuite/gcc.target/powerpc/pr66144-3.c
! 7e260d4f6c053506abfd8539a50d59b3  gcc/testsuite/gcc.target/powerpc/pr67071-1.c
! 4491fa8cf5ea80addb62fe73924abf00  gcc/testsuite/gcc.target/powerpc/pr67071-2.c
! cf040df639330f8c2720f5ad3ad04ba6  gcc/testsuite/gcc.target/powerpc/pr67071-3.c
  c738b7e719c6088a5ef4aca1a80910de  gcc/testsuite/gcc.target/powerpc/pr67789.c
! 1b23988d4babe877a4ae1cd4a87d32b9  gcc/testsuite/gcc.target/powerpc/pr67808.c
! 3ded70a559a38fe51a006ba8fa7a20e1  gcc/testsuite/gcc.target/powerpc/pr68163.c
  68a605fe9f861af7c52bc6cb9f79c12d  gcc/testsuite/gcc.target/powerpc/pr68805.c
  9711ebbd75b4e3d771426d8e6948ccd7  gcc/testsuite/gcc.target/powerpc/pr68872.c
  faf2ed46677346059dd2b7fd42254985  gcc/testsuite/gcc.target/powerpc/pr69252.c
  2dafa1128afc74d49fa120837106d572  gcc/testsuite/gcc.target/powerpc/pr69461.c
! 3e35736fa74e183831e1510c674bf139  gcc/testsuite/gcc.target/powerpc/pr69548.c
  c12c18f334b92db27768fc61c21a1b4a  gcc/testsuite/gcc.target/powerpc/pr69946.c
  8de5ffb2d5ac3eef7a5e25cc4282770a  gcc/testsuite/gcc.target/powerpc/pr69969.c
  325a069d871f180ee18e5ae4b3e8fadf  gcc/testsuite/gcc.target/powerpc/pr70010-1.c
! 2c1e2feeb9913310c6a30c6bff8b14fd  gcc/testsuite/gcc.target/powerpc/pr70010-2.c
! 8e34f0318d6c8a9a6d19044e3575fe59  gcc/testsuite/gcc.target/powerpc/pr70010-3.c
  f04c5add43326054cacbb6544404890d  gcc/testsuite/gcc.target/powerpc/pr70010-4.c
  1de006067bf04677e8e3043c80b99112  gcc/testsuite/gcc.target/powerpc/pr70010.c
  30bf5235bdce0bbd05169c7ec78fb273  gcc/testsuite/gcc.target/powerpc/pr70117.c
! e8572f4847fabe517c1b938b83035e59  gcc/testsuite/gcc.target/powerpc/pr70243.c
  9f0a82f7f84690a18cb82bed87617073  gcc/testsuite/gcc.target/powerpc/pr70640.c
! a24bfafe8ad641822beb5a6cfde273ac  gcc/testsuite/gcc.target/powerpc/pr70669.c
  bb6ec828efc211131c5a036203ac7c94  gcc/testsuite/gcc.target/powerpc/pr70866.c
  80e7937b9b3e36188653d2cd8217ff77  gcc/testsuite/gcc.target/powerpc/pr70963.c
! 65c859e2a3f8fd13aeac3994249fa0e3  gcc/testsuite/gcc.target/powerpc/pr71186.c
! 01ed27acf28c1502e5e7c668e2a1307b  gcc/testsuite/gcc.target/powerpc/pr71297.c
! 345b52d91e502bf8212670194992c09d  gcc/testsuite/gcc.target/powerpc/pr71309.c
  f417c588db95ee3f7fbced361af8dbfa  gcc/testsuite/gcc.target/powerpc/pr71310.c
  18f516c22671e1293affe8823881c35c  gcc/testsuite/gcc.target/powerpc/pr71493-1.c
  7d83053012a7579379ae3f803b73b2ec  gcc/testsuite/gcc.target/powerpc/pr71493-2.c
! 81cf39b8315a2ae49f499107783587c0  gcc/testsuite/gcc.target/powerpc/pr71656-1.c
! ebae314c22c40985f38a318fe0ad1478  gcc/testsuite/gcc.target/powerpc/pr71656-2.c
! cd6ecf5b5be41c5457ba0a0252effa3d  gcc/testsuite/gcc.target/powerpc/pr71670.c
! cd4920da45a51347a139ed7c1f20afb1  gcc/testsuite/gcc.target/powerpc/pr71680.c
! 044ba8a7d5af799b46590ae46e03312a  gcc/testsuite/gcc.target/powerpc/pr71698.c
! a190b5ebf23653bd097077386a2a6828  gcc/testsuite/gcc.target/powerpc/pr71720.c
! 9477b6d3efc4b9026e971261f27e4c03  gcc/testsuite/gcc.target/powerpc/pr71763.c
  1a2ab1b5ac9370a9c043f60e7d47c0b8  gcc/testsuite/gcc.target/powerpc/pr71785.c
  1b89918520ab534b2dee02684491f2c7  gcc/testsuite/gcc.target/powerpc/pr71805.c
! 8b5847eeb4912819f64cc07ff093bcac  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
! e35be8bddd59ff60670d639adfe04aae  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
! c2023d2c68d7316423b917e6526b3590  gcc/testsuite/gcc.target/powerpc/pr72717.c
! 830ff841c49d1456757d2c4cc55a11ba  gcc/testsuite/gcc.target/powerpc/pr72804.c
! 9dd61e989982148b2312c4250e585242  gcc/testsuite/gcc.target/powerpc/pr72853.c
  f89f50620562c6f4abc51387af2bb088  gcc/testsuite/gcc.target/powerpc/pr72863.c
! 95192d12c350ce43bde154334101396a  gcc/testsuite/gcc.target/powerpc/pr77289.c
  4aaf1bd3e51d911691410fb1560112f1  gcc/testsuite/gcc.target/powerpc/pr77416.c
  ad6a1f1ff4c5f5f604858aaf552068c2  gcc/testsuite/gcc.target/powerpc/pr77687.c
! 7b2e701dd1b5591583790316d72ea16f  gcc/testsuite/gcc.target/powerpc/pr78056-1.c
! 158ae9ee8f99230c1c3a7223aa39f21f  gcc/testsuite/gcc.target/powerpc/pr78056-3.c
! 5597f7ef0b05d6499a4358caaca7074e  gcc/testsuite/gcc.target/powerpc/pr78056-5.c
! ae18fbcc51813694a31e5d088d07a386  gcc/testsuite/gcc.target/powerpc/pr78056-7.c
! fb89a4a31cdc72c0d045a7cd79a942fb  gcc/testsuite/gcc.target/powerpc/pr78102.c
! f6ae438537e6d47a4989a338370d4f37  gcc/testsuite/gcc.target/powerpc/pr78543.c
! 7e9ed1451ccf64f4955463fc84e59102  gcc/testsuite/gcc.target/powerpc/pr78604.c
! 17f6ba12111b4b5d39e566a89d2faaad  gcc/testsuite/gcc.target/powerpc/pr78658.c
  e77f24f1b3f26aacf550086da8e1c63b  gcc/testsuite/gcc.target/powerpc/pr78691-ppc.c
! 018f2a32d1b1856bab030d38e076de5b  gcc/testsuite/gcc.target/powerpc/pr78953.c
! ac83c27312591f4647b4af3f69aee98d  gcc/testsuite/gcc.target/powerpc/pr79004.c
! 61e2547b37eafd30853969e2599f58b2  gcc/testsuite/gcc.target/powerpc/pr79038-1.c
  fb131f3896466dcc86b6cb615cf76c79  gcc/testsuite/gcc.target/powerpc/pr79066.c
! 334491069130248fa896c46b8e821ebf  gcc/testsuite/gcc.target/powerpc/pr79179.c
  fb524be9fd12ca8094bde96a06f3bdd5  gcc/testsuite/gcc.target/powerpc/pr79197.c
  06614db7b0eda23af016ac8f01f92586  gcc/testsuite/gcc.target/powerpc/pr79251-run.p7.c
  d196e5fb12502e953299ec47df85f91b  gcc/testsuite/gcc.target/powerpc/pr79251-run.p8.c
  739792749365d658ad924456e1bfe4da  gcc/testsuite/gcc.target/powerpc/pr79251-run.p9.c
  334bc6971aae3f5b06b6d18554b8a198  gcc/testsuite/gcc.target/powerpc/pr79251.h
! 7faa2f9599ac0ffde3fddc41154903e1  gcc/testsuite/gcc.target/powerpc/pr79251.p7.c
! eb8d92ac48e8620d887eb741f52af370  gcc/testsuite/gcc.target/powerpc/pr79251.p8.c
! 873241507843d0814bcb30352a520d75  gcc/testsuite/gcc.target/powerpc/pr79251.p9.c
  13b9dd20539375055df7846adb6bdc98  gcc/testsuite/gcc.target/powerpc/pr79268.c
! f0b5783a725ef7e4a4096e40a3d17166  gcc/testsuite/gcc.target/powerpc/pr79354.c
  488484e8a985fe9f1c5c93cbe3cccb03  gcc/testsuite/gcc.target/powerpc/pr79439-1.c
  e630f5d0f9e7ee9aedda99101ae4de1b  gcc/testsuite/gcc.target/powerpc/pr79439-2.c
  e91006f9d28ed78f637d335550563fe0  gcc/testsuite/gcc.target/powerpc/pr79439-3.c
! 0734d6dc096ee4bc5c76689f69c5b52e  gcc/testsuite/gcc.target/powerpc/pr79544.c
! 97522b1902fd832751339c96a6156e46  gcc/testsuite/gcc.target/powerpc/pr79799-1.c
! 5fc81702953f7d15c7e55e148563b498  gcc/testsuite/gcc.target/powerpc/pr79799-2.c
! 6a932ea5424744d8202a10795107e90c  gcc/testsuite/gcc.target/powerpc/pr79799-3.c
  2cda0e5d4de03c3510058352b171ff87  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
! b84f2ce7e3eb8d9b8b063359adc10183  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
! d124d9860426c9f388914ec29f29d717  gcc/testsuite/gcc.target/powerpc/pr79907.c
  839e8b59fffd1864e14e5cdcca752621  gcc/testsuite/gcc.target/powerpc/pr79909.c
  d95c7f854b8c7b0cf8a1e4eec78d534c  gcc/testsuite/gcc.target/powerpc/pr79916.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
! 8d5207772436359245f1e159173f2a38  gcc/testsuite/gcc.target/powerpc/pr79951.c
! dbda69acb4383907b8936574338366d5  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
! ef4295671bcc49a92b8a90581dd57b80  gcc/testsuite/gcc.target/powerpc/pr80098-2.c
! 43a8dc2133afda3f315e4f7d61e5b1aa  gcc/testsuite/gcc.target/powerpc/pr80098-3.c
  31e10fa4f3edb14ec1b460a829e97a82  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  d898a03a0134d7a17ff89a9859557dc9  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
! 70c1ace3a4d6b656c28747817d49f85b  gcc/testsuite/gcc.target/powerpc/pr80315-1.c
! ad06816e08917df2b9914fd5b2b14860  gcc/testsuite/gcc.target/powerpc/pr80315-2.c
! 45e13eeb9225ad3665dde7a07d72626a  gcc/testsuite/gcc.target/powerpc/pr80315-3.c
! 5d6a6ca479c1b0b013fc7c571e420b18  gcc/testsuite/gcc.target/powerpc/pr80315-4.c
! 9e0ff6d684cda8fd5765b850562f3dce  gcc/testsuite/gcc.target/powerpc/pr80510-1.c
! e821393205eca6a9dfadb29fbe114c15  gcc/testsuite/gcc.target/powerpc/pr80510-2.c
! 495e8d7995b25215618f118b226dd8ba  gcc/testsuite/gcc.target/powerpc/pr80695-p8.c
! 25223eef14549ebbaca344a6eab56a3a  gcc/testsuite/gcc.target/powerpc/pr80695-p9.c
! 2337fef4598e7e03659fcc2c874afcd5  gcc/testsuite/gcc.target/powerpc/pr80718.c
! ee2ec7f7729f9219e75e39fe3bc0b00f  gcc/testsuite/gcc.target/powerpc/pr81348.c
  4f35be6c6a527cf028ceb7ba54273110  gcc/testsuite/gcc.target/powerpc/pr81572.c
! 8250f9e1736a63c7103ac2e4b67defa3  gcc/testsuite/gcc.target/powerpc/pr81622.c
  601307dac2aee8083d3f97edae2588d1  gcc/testsuite/gcc.target/powerpc/pr81833-1.c
  9288b1f38b6b8a17630ca31fada51991  gcc/testsuite/gcc.target/powerpc/pr81833-2.c
! 617a36965154f67957f86082f8495e9a  gcc/testsuite/gcc.target/powerpc/pr81959.c
! ac00fa6ef2dbc0dd38d9cb211e852116  gcc/testsuite/gcc.target/powerpc/pr82015.c
! 20f299f59d62bdbd8141cd314eaaf442  gcc/testsuite/gcc.target/powerpc/pr82112.c
  9d01972355938afb2a4de9ba1d316dc0  gcc/testsuite/gcc.target/powerpc/pr82333.c
! f9241fd478cd3e750096c90fc9bb8ab3  gcc/testsuite/gcc.target/powerpc/pr82748-1.c
! 111f6e53c8954695f27afc0f03f648c6  gcc/testsuite/gcc.target/powerpc/pr82748-2.c
  94063e07a1d46fd61e894aa64b40ebaf  gcc/testsuite/gcc.target/powerpc/pr82848.c
! 2fecac8afcf9b83dfd8476e58975b1bb  gcc/testsuite/gcc.target/powerpc/pr83399.c
  15f19b48d6d84c3685af80447edafc48  gcc/testsuite/gcc.target/powerpc/pr83629.c
  95f3057a6b14afee4d6303b80c7f0657  gcc/testsuite/gcc.target/powerpc/pr83677.c
! 15a0d32f730faaf8cf1df87ddb3d735e  gcc/testsuite/gcc.target/powerpc/pr83862.c
  73347c1481c6d9c50f16f425d409c708  gcc/testsuite/gcc.target/powerpc/pr83926.c
  88f706eef23e0ac23ef58bea3e3cf28a  gcc/testsuite/gcc.target/powerpc/pr83969.c
  864d120dc10ef939e30dca2faf8c357f  gcc/testsuite/gcc.target/powerpc/pr84014.c
  30a1a896107d295e2f08283d07a0ede8  gcc/testsuite/gcc.target/powerpc/pr84112.c
! 6e0750187414eac68a09e6e8b282020d  gcc/testsuite/gcc.target/powerpc/pr84154-1.c
! d8421b551ae289b0b9911b696f4b9e13  gcc/testsuite/gcc.target/powerpc/pr84154-2.c
! 175bf79373b6c339d4310bd50641b8eb  gcc/testsuite/gcc.target/powerpc/pr84154-3.c
! 8cfa81dbf990025f54eb673bc4b23e11  gcc/testsuite/gcc.target/powerpc/pr84220-sld.c
! 991f4dc951f97c70db900e33553a63e3  gcc/testsuite/gcc.target/powerpc/pr84220-sld2.c
! 020d866d8735cf2dcde6fb4d6321e7d4  gcc/testsuite/gcc.target/powerpc/pr84220-sldw.c
! eaf5475ee2006ac365bb708497757bb8  gcc/testsuite/gcc.target/powerpc/pr84220-xxperm.c
! d75b721dd3445260e313b7a94d0aedd6  gcc/testsuite/gcc.target/powerpc/pr84220-xxsld.c
! f0102114a06ec8a2f052fed5777e22fa  gcc/testsuite/gcc.target/powerpc/pr84226.c
  051202397c19754b2a90622d9c2bc23f  gcc/testsuite/gcc.target/powerpc/pr84700.c
! aae2ac906b796bae550110c3d0d3da78  gcc/testsuite/gcc.target/powerpc/pr84878.c
! 92fc637aa0116eea998e4a83e8fac809  gcc/testsuite/gcc.target/powerpc/pr85456.c
  d6eedb678b78d75b5a8cccf7cb882281  gcc/testsuite/gcc.target/powerpc/pr85657-1.c
  29cc596e197013c8169e6c028e902254  gcc/testsuite/gcc.target/powerpc/pr85657-2.c
  4cd1a055844a1c424f39acca434a4da3  gcc/testsuite/gcc.target/powerpc/pr85657-3.c
*************** a366faf9f4600279f7a65c67c3d0fbae  gcc/te
*** 81056,81065 ****
  a350423ed93def71f8b093f25456d889  gcc/testsuite/gcc.target/powerpc/pr85755.c
  df4e314e536a2cc293edaee73e90fc21  gcc/testsuite/gcc.target/powerpc/pr86324-1.c
  b393d3f2f044e6fd8f631b7ab2551943  gcc/testsuite/gcc.target/powerpc/pr86324-2.c
! ad74b3b1ed8e866bfdc6a78595bad3fc  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
! 363dc03cd34e833cf82185607e641246  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv.c
! 8374e8e1343ae8edc5ad34015448f248  gcc/testsuite/gcc.target/powerpc/pr86731-longlong.c
! 8a2b25fb431e8663e2eac4a3ef707bc5  gcc/testsuite/gcc.target/powerpc/pr86731.c
  2e4d98e3c1f5582512e2e93c6f08edc4  gcc/testsuite/gcc.target/powerpc/pr86939.c
  d86d5375cd27e7c265ce5093d761b62e  gcc/testsuite/gcc.target/powerpc/pr87033.c
  5979805bab3b13abc55882e86f2cf535  gcc/testsuite/gcc.target/powerpc/pr87466.c
--- 86055,86064 ----
  a350423ed93def71f8b093f25456d889  gcc/testsuite/gcc.target/powerpc/pr85755.c
  df4e314e536a2cc293edaee73e90fc21  gcc/testsuite/gcc.target/powerpc/pr86324-1.c
  b393d3f2f044e6fd8f631b7ab2551943  gcc/testsuite/gcc.target/powerpc/pr86324-2.c
! 0f354846a615942f163dc6655324116e  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
! b664df6d7dd1494bf8b7de4f500c0192  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv.c
! e313cf05ad088263403552092d15a8b0  gcc/testsuite/gcc.target/powerpc/pr86731-longlong.c
! 3a37a15272a78f34d984bd7094e58356  gcc/testsuite/gcc.target/powerpc/pr86731.c
  2e4d98e3c1f5582512e2e93c6f08edc4  gcc/testsuite/gcc.target/powerpc/pr86939.c
  d86d5375cd27e7c265ce5093d761b62e  gcc/testsuite/gcc.target/powerpc/pr87033.c
  5979805bab3b13abc55882e86f2cf535  gcc/testsuite/gcc.target/powerpc/pr87466.c
*************** f18720cbdd0b8efcbfe7252a88d19901  gcc/te
*** 81070,81093 ****
  a3fcebbcc49f4e8e80184966262e4f7c  gcc/testsuite/gcc.target/powerpc/pr87532-mc.c
  5fd4bcc0443a583aade647593b461bf0  gcc/testsuite/gcc.target/powerpc/pr87532.c
  53d85850aa1d585cffdde9ca76f1c992  gcc/testsuite/gcc.target/powerpc/pr87870.c
! 75a4fd06f807cbd3cddc0eea478e90f9  gcc/testsuite/gcc.target/powerpc/pr88100.c
  96eb5b3fd3f2812a018f01fd63b67f9b  gcc/testsuite/gcc.target/powerpc/pr88188-2.c
  9489612e4380ce85494a409bef20f69a  gcc/testsuite/gcc.target/powerpc/pr88188.c
  c75be0752698828e9a2843ce4464f296  gcc/testsuite/gcc.target/powerpc/pr88233.c
! d2a99b9ff1da1e8d8120a3524731b2a5  gcc/testsuite/gcc.target/powerpc/pr88309.c
  21d3c2767889f61719f3852cb79cdc5a  gcc/testsuite/gcc.target/powerpc/pr88457.c
  1a8eee716574cb3016dde3c5428aeda4  gcc/testsuite/gcc.target/powerpc/pr88558-p7.c
! 35c9648de277d9fb045a3b5688c7ae2b  gcc/testsuite/gcc.target/powerpc/pr88558-p8.c
  a7949a2cf440d67c73ff37d2e8e5536b  gcc/testsuite/gcc.target/powerpc/pr88558.h
! 1824a1e1290890473863e982d1c7a0cc  gcc/testsuite/gcc.target/powerpc/pr88845.c
! dd95a2250e2db6dba5532882d6c626fd  gcc/testsuite/gcc.target/powerpc/pr88965.c
  185daccfe9cd0171b973121afbc70613  gcc/testsuite/gcc.target/powerpc/pr89225.c
  75c813324a3a167a863f7ea21db6b4b8  gcc/testsuite/gcc.target/powerpc/pr89310.c
  c37f43ea14b9c2771195287a84b61d7f  gcc/testsuite/gcc.target/powerpc/pr89424-0.c
  641d52f8caa1635a7b47a9370f9b19ed  gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
! fe2a3285b8378f288968ff4e6a04fa07  gcc/testsuite/gcc.target/powerpc/pr90763.c
  1b66fd7b65ff295e707f90152d028d43  gcc/testsuite/gcc.target/powerpc/pr91275.c
! 09d734f2ff09c5fbcb8c1e0207c755b4  gcc/testsuite/gcc.target/powerpc/pr91903.c
  146b79d794c5eb5a94bc0cd961b416b6  gcc/testsuite/gcc.target/powerpc/pr92090-2.c
  b3e3f8dd7576caaad7cff1f382fd583d  gcc/testsuite/gcc.target/powerpc/pr92090.c
  abf60b23a4b3272b1199e405e7527ff8  gcc/testsuite/gcc.target/powerpc/pr92132-fp-1.c
--- 86069,86093 ----
  a3fcebbcc49f4e8e80184966262e4f7c  gcc/testsuite/gcc.target/powerpc/pr87532-mc.c
  5fd4bcc0443a583aade647593b461bf0  gcc/testsuite/gcc.target/powerpc/pr87532.c
  53d85850aa1d585cffdde9ca76f1c992  gcc/testsuite/gcc.target/powerpc/pr87870.c
! 9b330aabebf34ac8cca3bacf9e382922  gcc/testsuite/gcc.target/powerpc/pr88100.c
  96eb5b3fd3f2812a018f01fd63b67f9b  gcc/testsuite/gcc.target/powerpc/pr88188-2.c
  9489612e4380ce85494a409bef20f69a  gcc/testsuite/gcc.target/powerpc/pr88188.c
  c75be0752698828e9a2843ce4464f296  gcc/testsuite/gcc.target/powerpc/pr88233.c
! a5d3141209b870106baf92fb85a3e747  gcc/testsuite/gcc.target/powerpc/pr88309.c
  21d3c2767889f61719f3852cb79cdc5a  gcc/testsuite/gcc.target/powerpc/pr88457.c
  1a8eee716574cb3016dde3c5428aeda4  gcc/testsuite/gcc.target/powerpc/pr88558-p7.c
! a1e96e882051333e4bca17cee21b8f75  gcc/testsuite/gcc.target/powerpc/pr88558-p8.c
  a7949a2cf440d67c73ff37d2e8e5536b  gcc/testsuite/gcc.target/powerpc/pr88558.h
! 44903484b4fd5d2834b6587dbc285fb7  gcc/testsuite/gcc.target/powerpc/pr88845.c
! 9409d42ba416c0d21eeba45245cc4e86  gcc/testsuite/gcc.target/powerpc/pr88965.c
! f699246bd216a282ef09ff104ce2b46d  gcc/testsuite/gcc.target/powerpc/pr89213.c
  185daccfe9cd0171b973121afbc70613  gcc/testsuite/gcc.target/powerpc/pr89225.c
  75c813324a3a167a863f7ea21db6b4b8  gcc/testsuite/gcc.target/powerpc/pr89310.c
  c37f43ea14b9c2771195287a84b61d7f  gcc/testsuite/gcc.target/powerpc/pr89424-0.c
  641d52f8caa1635a7b47a9370f9b19ed  gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
! 0da9629a4cfb7af12b036a25d32c5dc4  gcc/testsuite/gcc.target/powerpc/pr90763.c
  1b66fd7b65ff295e707f90152d028d43  gcc/testsuite/gcc.target/powerpc/pr91275.c
! 745aeecd93674ae547c66b0d3ee7e74f  gcc/testsuite/gcc.target/powerpc/pr91903.c
  146b79d794c5eb5a94bc0cd961b416b6  gcc/testsuite/gcc.target/powerpc/pr92090-2.c
  b3e3f8dd7576caaad7cff1f382fd583d  gcc/testsuite/gcc.target/powerpc/pr92090.c
  abf60b23a4b3272b1199e405e7527ff8  gcc/testsuite/gcc.target/powerpc/pr92132-fp-1.c
*************** abf60b23a4b3272b1199e405e7527ff8  gcc/te
*** 81095,81114 ****
  c64c2073c71f6b39c57f2594bc701ec1  gcc/testsuite/gcc.target/powerpc/pr92132-int-1.c
  66f228a7206c26f044b983ccc48010c5  gcc/testsuite/gcc.target/powerpc/pr92132-int-2.c
  5ca836935ff861e5d765b50e1f687a46  gcc/testsuite/gcc.target/powerpc/pr92398.h
! 82db580c14907566cae987dd6f0df194  gcc/testsuite/gcc.target/powerpc/pr92398.p9+.c
! eed934473df14ab6fb58cc207749e704  gcc/testsuite/gcc.target/powerpc/pr92398.p9-.c
  010f88c66c9d3d8386cb62035157e272  gcc/testsuite/gcc.target/powerpc/pr92449-1.c
  d7084bb2ee01735299dddbb33cae2878  gcc/testsuite/gcc.target/powerpc/pr92488.c
  378b75a654f2598d9c8ac7ee303abaca  gcc/testsuite/gcc.target/powerpc/pr92661.c
  4003334bbe44d29365a1b5cc86183279  gcc/testsuite/gcc.target/powerpc/pr92796.c
! aa28fe223a505772938b9d731a62130c  gcc/testsuite/gcc.target/powerpc/pr92923-1.c
! 4948051bf3cb205b3523aa4e22d40969  gcc/testsuite/gcc.target/powerpc/pr92923-2.c
  bf5eef64bd13d358ccd4ecc20fc71dea  gcc/testsuite/gcc.target/powerpc/pr93012.c
! 6ed2bd11c87cb97b53a02a6da437dd68  gcc/testsuite/gcc.target/powerpc/pr93073.c
! ffc3e49b879237e4c50decbfa7827c62  gcc/testsuite/gcc.target/powerpc/pr93122.c
  c933554cb0415edb672b7e95544f6a8f  gcc/testsuite/gcc.target/powerpc/pr93448.c
  2810ebba4a3d8c51ff7ff5cef80a9591  gcc/testsuite/gcc.target/powerpc/pr93453-1.c
! 38f0ad1fa74b57574f2b77b7354f16fe  gcc/testsuite/gcc.target/powerpc/pr93658.c
  7ec2211c1708cebde5e1bb5e3087dd76  gcc/testsuite/gcc.target/powerpc/pr93800.c
  b8d9c0d34bd25c6c852036ab8e5aee8a  gcc/testsuite/gcc.target/powerpc/pr94613.c
  ca39e661d5c8829e74d8a523cedd9a16  gcc/testsuite/gcc.target/powerpc/pr94740.c
--- 86095,86114 ----
  c64c2073c71f6b39c57f2594bc701ec1  gcc/testsuite/gcc.target/powerpc/pr92132-int-1.c
  66f228a7206c26f044b983ccc48010c5  gcc/testsuite/gcc.target/powerpc/pr92132-int-2.c
  5ca836935ff861e5d765b50e1f687a46  gcc/testsuite/gcc.target/powerpc/pr92398.h
! 48637946524ae276ce1657b4809afdbf  gcc/testsuite/gcc.target/powerpc/pr92398.p9+.c
! 52300f52033a0df9b6ac79e013cfc90f  gcc/testsuite/gcc.target/powerpc/pr92398.p9-.c
  010f88c66c9d3d8386cb62035157e272  gcc/testsuite/gcc.target/powerpc/pr92449-1.c
  d7084bb2ee01735299dddbb33cae2878  gcc/testsuite/gcc.target/powerpc/pr92488.c
  378b75a654f2598d9c8ac7ee303abaca  gcc/testsuite/gcc.target/powerpc/pr92661.c
  4003334bbe44d29365a1b5cc86183279  gcc/testsuite/gcc.target/powerpc/pr92796.c
! 2c79a9cd81bde7827d64c0b15cd24397  gcc/testsuite/gcc.target/powerpc/pr92923-1.c
! 93a0ba2bf02e3cef401cc81b58eb1929  gcc/testsuite/gcc.target/powerpc/pr92923-2.c
  bf5eef64bd13d358ccd4ecc20fc71dea  gcc/testsuite/gcc.target/powerpc/pr93012.c
! 289e60c8cda30a6741382d75d6993227  gcc/testsuite/gcc.target/powerpc/pr93073.c
! 942811e97fad3db5eb45c84bcbc62599  gcc/testsuite/gcc.target/powerpc/pr93122.c
  c933554cb0415edb672b7e95544f6a8f  gcc/testsuite/gcc.target/powerpc/pr93448.c
  2810ebba4a3d8c51ff7ff5cef80a9591  gcc/testsuite/gcc.target/powerpc/pr93453-1.c
! c7615f4c0f53bd89725ffb0a5f39580e  gcc/testsuite/gcc.target/powerpc/pr93658.c
  7ec2211c1708cebde5e1bb5e3087dd76  gcc/testsuite/gcc.target/powerpc/pr93800.c
  b8d9c0d34bd25c6c852036ab8e5aee8a  gcc/testsuite/gcc.target/powerpc/pr94613.c
  ca39e661d5c8829e74d8a523cedd9a16  gcc/testsuite/gcc.target/powerpc/pr94740.c
*************** baf149d64053b2f0f606c42999ad64b8  gcc/te
*** 81116,81157 ****
  ac625d56316f12bb2c2935ae069960ee  gcc/testsuite/gcc.target/powerpc/pr95737.c
  e7cf1c47ea2ac68fa8b2f1bc1dc06872  gcc/testsuite/gcc.target/powerpc/pr95907.c
  5c286273d2472c19e1388a58fbf1fae4  gcc/testsuite/gcc.target/powerpc/pr96072.c
! c3fdf2edbc3880b6e23670387a188c81  gcc/testsuite/gcc.target/powerpc/pr96125.c
! c41dc78db559b0a60ade2f03b039206d  gcc/testsuite/gcc.target/powerpc/pr96139-a.c
! a07b15408dfcb7108da14ce215101920  gcc/testsuite/gcc.target/powerpc/pr96139-b.c
! 077f66488295d290f80d30233e453520  gcc/testsuite/gcc.target/powerpc/pr96139-c.c
! 260b4195fb458fd7f0ec3afc524236ff  gcc/testsuite/gcc.target/powerpc/pr96264.c
  42e9d864b740d7bf95a81bde9f4f1fbe  gcc/testsuite/gcc.target/powerpc/pr96373.c
  4041fca09c3daed5a381d4dc45e9a366  gcc/testsuite/gcc.target/powerpc/pr96446.c
  06df07809324154deb45d934dbebf494  gcc/testsuite/gcc.target/powerpc/pr96493.c
! f296eca9a733cf4bb4e198a3539e8cec  gcc/testsuite/gcc.target/powerpc/pr96506-1.c
  4057c480103b8c0cc29c131c3ab7cc50  gcc/testsuite/gcc.target/powerpc/pr96506-2.c
  713c433c1e5c80361a865ab817cd27b1  gcc/testsuite/gcc.target/powerpc/pr96530.c
  3af685337838b80c79ee574f658c90cc  gcc/testsuite/gcc.target/powerpc/pr96762.c
  7586cf00c4e30dcc232464c012e42760  gcc/testsuite/gcc.target/powerpc/pr96787-1.c
  6ea7fa7b0623f6ebd9652c5acea96884  gcc/testsuite/gcc.target/powerpc/pr96787-2.c
  54d85fa08f775bccdcae07e834cb4364  gcc/testsuite/gcc.target/powerpc/pr96808.c
! a3caa04b752621d31ad0e2819607e8e7  gcc/testsuite/gcc.target/powerpc/pr96933-1.c
! 2cb4f44690d3b775a6fa76aeb7b48b73  gcc/testsuite/gcc.target/powerpc/pr96933-2.c
  0f16cd30e6ae3becaf7d8afe013843b7  gcc/testsuite/gcc.target/powerpc/pr96933-3.c
  32b43ec9035357886fe24d84ea5a564e  gcc/testsuite/gcc.target/powerpc/pr96933-4.c
  a4b65c03b235e179c2c54ae705ca1314  gcc/testsuite/gcc.target/powerpc/pr96933-run.h
  3e3d83500b4f3407ec706aed288837c0  gcc/testsuite/gcc.target/powerpc/pr96933.h
! 2450f5a8117c84ea9e09cceb79d32484  gcc/testsuite/gcc.target/powerpc/pr97019.c
  3cbcbf709dba0c7d2f3ee1bb86a4c1ab  gcc/testsuite/gcc.target/powerpc/pr97142.c
  18aa6c13663fc57c77c9258b01d06c8b  gcc/testsuite/gcc.target/powerpc/pr97267.c
  213beaa984952c5e9c8741ff42bef29f  gcc/testsuite/gcc.target/powerpc/pr97360.c
  6f417fe4390c81ea54e3227afee2727a  gcc/testsuite/gcc.target/powerpc/pr97367.c
  be1d7456a640bf70727b92bfa00019b7  gcc/testsuite/gcc.target/powerpc/pr98092.c
  adff3606ba35a019752b04f06365d9ae  gcc/testsuite/gcc.target/powerpc/pr98872.c
! 25cf76ba144446b05e0a0c9afdd6fc7e  gcc/testsuite/gcc.target/powerpc/pr98914.c
  e2ddd4e82dd7a142609183f7be1ecb7d  gcc/testsuite/gcc.target/powerpc/pr98952.c
  f900d3f1e79811e92ae2e91267891d4a  gcc/testsuite/gcc.target/powerpc/pr98959.c
  4fdfbed97b91165f1a9bb87f1e8aa815  gcc/testsuite/gcc.target/powerpc/pr99492.c
  cbb1371df0e1adf74c71a77d5895b17c  gcc/testsuite/gcc.target/powerpc/pr99557.c
  de511ffaecad04c9cbb12cacdec00373  gcc/testsuite/gcc.target/powerpc/pr99581.c
  0f5a5bdff1232df3c7799da88e6e8eb9  gcc/testsuite/gcc.target/powerpc/pr99708-2.c
! 45ac4f1ec99dd5006f6ff8b5cfc8a317  gcc/testsuite/gcc.target/powerpc/pr99708.c
  925aa385bba9eb4bb2f7b93648eeeff5  gcc/testsuite/gcc.target/powerpc/pr99888-1.c
  1f748d9f75f438c648de17a8831042c5  gcc/testsuite/gcc.target/powerpc/pr99888-2.c
  fa923522ac8da3ab05e770db45f788b6  gcc/testsuite/gcc.target/powerpc/pr99888-3.c
--- 86116,86165 ----
  ac625d56316f12bb2c2935ae069960ee  gcc/testsuite/gcc.target/powerpc/pr95737.c
  e7cf1c47ea2ac68fa8b2f1bc1dc06872  gcc/testsuite/gcc.target/powerpc/pr95907.c
  5c286273d2472c19e1388a58fbf1fae4  gcc/testsuite/gcc.target/powerpc/pr96072.c
! 13333340e43977758365ace9d86081ae  gcc/testsuite/gcc.target/powerpc/pr96125.c
! fb757de1cee57f76b9bf05d3fc880778  gcc/testsuite/gcc.target/powerpc/pr96139-a.c
! 95edd767a865f4e4e22ba21b8c82b797  gcc/testsuite/gcc.target/powerpc/pr96139-b.c
! dace1e172dafce3b5d8ac40bcb22b078  gcc/testsuite/gcc.target/powerpc/pr96139-c.c
! cdf857250208035c2c8b9b7069c37f72  gcc/testsuite/gcc.target/powerpc/pr96264.c
  42e9d864b740d7bf95a81bde9f4f1fbe  gcc/testsuite/gcc.target/powerpc/pr96373.c
  4041fca09c3daed5a381d4dc45e9a366  gcc/testsuite/gcc.target/powerpc/pr96446.c
  06df07809324154deb45d934dbebf494  gcc/testsuite/gcc.target/powerpc/pr96493.c
! 82c23de37cd56571e2f4d86cd7e5b9dc  gcc/testsuite/gcc.target/powerpc/pr96506-1.c
  4057c480103b8c0cc29c131c3ab7cc50  gcc/testsuite/gcc.target/powerpc/pr96506-2.c
  713c433c1e5c80361a865ab817cd27b1  gcc/testsuite/gcc.target/powerpc/pr96530.c
  3af685337838b80c79ee574f658c90cc  gcc/testsuite/gcc.target/powerpc/pr96762.c
  7586cf00c4e30dcc232464c012e42760  gcc/testsuite/gcc.target/powerpc/pr96787-1.c
  6ea7fa7b0623f6ebd9652c5acea96884  gcc/testsuite/gcc.target/powerpc/pr96787-2.c
  54d85fa08f775bccdcae07e834cb4364  gcc/testsuite/gcc.target/powerpc/pr96808.c
! f8316792b200ba3a3cddbf6dd549432a  gcc/testsuite/gcc.target/powerpc/pr96866-1.c
! 9ff18d8bf58caa16d27e47bd8bceb3b5  gcc/testsuite/gcc.target/powerpc/pr96866-2.c
! cf89172806671519e1c3c901a3ce35a4  gcc/testsuite/gcc.target/powerpc/pr96933-1.c
! 92c7716c2b043aa3dd34df88e6548736  gcc/testsuite/gcc.target/powerpc/pr96933-2.c
  0f16cd30e6ae3becaf7d8afe013843b7  gcc/testsuite/gcc.target/powerpc/pr96933-3.c
  32b43ec9035357886fe24d84ea5a564e  gcc/testsuite/gcc.target/powerpc/pr96933-4.c
  a4b65c03b235e179c2c54ae705ca1314  gcc/testsuite/gcc.target/powerpc/pr96933-run.h
  3e3d83500b4f3407ec706aed288837c0  gcc/testsuite/gcc.target/powerpc/pr96933.h
! 6912323d3c7db174a48c1fb08ad170da  gcc/testsuite/gcc.target/powerpc/pr97019.c
  3cbcbf709dba0c7d2f3ee1bb86a4c1ab  gcc/testsuite/gcc.target/powerpc/pr97142.c
  18aa6c13663fc57c77c9258b01d06c8b  gcc/testsuite/gcc.target/powerpc/pr97267.c
  213beaa984952c5e9c8741ff42bef29f  gcc/testsuite/gcc.target/powerpc/pr97360.c
  6f417fe4390c81ea54e3227afee2727a  gcc/testsuite/gcc.target/powerpc/pr97367.c
+ 8376373cb079ab6c316652be7c0f07fa  gcc/testsuite/gcc.target/powerpc/pr97786-1.c
+ d7c0340180683a5bf7d8847b883980fc  gcc/testsuite/gcc.target/powerpc/pr97786-2.c
+ ae954a5c6c9bf799f5d50a5d0296139d  gcc/testsuite/gcc.target/powerpc/pr97786-4.c
+ f5e225138df5975ae486ef1582f39e75  gcc/testsuite/gcc.target/powerpc/pr97786-5.c
+ 5b33882bf8a2e299cf5d6b4929a0d850  gcc/testsuite/gcc.target/powerpc/pr97786-7.c
+ 40a84f184ff6d1495fb73b480ec1be5e  gcc/testsuite/gcc.target/powerpc/pr97786-8.c
  be1d7456a640bf70727b92bfa00019b7  gcc/testsuite/gcc.target/powerpc/pr98092.c
  adff3606ba35a019752b04f06365d9ae  gcc/testsuite/gcc.target/powerpc/pr98872.c
! 499fc4fc1c4cb1cebde6423cc2cd5d0d  gcc/testsuite/gcc.target/powerpc/pr98914.c
  e2ddd4e82dd7a142609183f7be1ecb7d  gcc/testsuite/gcc.target/powerpc/pr98952.c
  f900d3f1e79811e92ae2e91267891d4a  gcc/testsuite/gcc.target/powerpc/pr98959.c
  4fdfbed97b91165f1a9bb87f1e8aa815  gcc/testsuite/gcc.target/powerpc/pr99492.c
  cbb1371df0e1adf74c71a77d5895b17c  gcc/testsuite/gcc.target/powerpc/pr99557.c
  de511ffaecad04c9cbb12cacdec00373  gcc/testsuite/gcc.target/powerpc/pr99581.c
  0f5a5bdff1232df3c7799da88e6e8eb9  gcc/testsuite/gcc.target/powerpc/pr99708-2.c
! f2e1880997e5b1fef9a7e05182166198  gcc/testsuite/gcc.target/powerpc/pr99708.c
  925aa385bba9eb4bb2f7b93648eeeff5  gcc/testsuite/gcc.target/powerpc/pr99888-1.c
  1f748d9f75f438c648de17a8831042c5  gcc/testsuite/gcc.target/powerpc/pr99888-2.c
  fa923522ac8da3ab05e770db45f788b6  gcc/testsuite/gcc.target/powerpc/pr99888-3.c
*************** fa923522ac8da3ab05e770db45f788b6  gcc/te
*** 81159,81169 ****
  b72fce1882c977cbd736b3f9e0051945  gcc/testsuite/gcc.target/powerpc/pr99888-5.c
  452e2984829526b868a44034bc62f383  gcc/testsuite/gcc.target/powerpc/pr99888-6.c
  74f4f475f7fbab34a0ec83f7fd8e551b  gcc/testsuite/gcc.target/powerpc/pragma-optimize.c
! 58867de88ba5675916c40b6ad149f90c  gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
! 98c02b2c2946f882d2b5e41da4b7d78b  gcc/testsuite/gcc.target/powerpc/pragma_power6.c
! 9fc46dc795793c68c68bcda62ba3bb06  gcc/testsuite/gcc.target/powerpc/pragma_power7.c
! 585a352c6dfca32d19974b54ca71fd7e  gcc/testsuite/gcc.target/powerpc/pragma_power8.c
! 62a405efa072f55c32f9a0806d8b7864  gcc/testsuite/gcc.target/powerpc/pragma_power9.c
  dd58427154af8c0e48b89c68e7b990b6  gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c
  c99f3d7c3678eb974f17a9b2be94967f  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c
  17bbe3e953d2757e7a9bd15587a8e0df  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c
--- 86167,86177 ----
  b72fce1882c977cbd736b3f9e0051945  gcc/testsuite/gcc.target/powerpc/pr99888-5.c
  452e2984829526b868a44034bc62f383  gcc/testsuite/gcc.target/powerpc/pr99888-6.c
  74f4f475f7fbab34a0ec83f7fd8e551b  gcc/testsuite/gcc.target/powerpc/pragma-optimize.c
! d9694a17a0ee6b50bcc442665464fe06  gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
! 97671dade22a3f6e1a1c32c81d5b5559  gcc/testsuite/gcc.target/powerpc/pragma_power6.c
! fa3af3e3cd9ecde0f073d213c0e497db  gcc/testsuite/gcc.target/powerpc/pragma_power7.c
! 9136cec56c3b9562fc115596c97bbe3e  gcc/testsuite/gcc.target/powerpc/pragma_power8.c
! bb9e07b603e5cbaf8804efa8163e1ca5  gcc/testsuite/gcc.target/powerpc/pragma_power9.c
  dd58427154af8c0e48b89c68e7b990b6  gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c
  c99f3d7c3678eb974f17a9b2be94967f  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c
  17bbe3e953d2757e7a9bd15587a8e0df  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c
*************** e42858e0ca12343d94310c2d672a4f17  gcc/te
*** 81206,81219 ****
  1f54b499ad404587661bc793e8f252f8  gcc/testsuite/gcc.target/powerpc/prefix-pcrel.h
  ce3c6e6db2777b22224f4a6b36d6bed6  gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c
  38228cc40bbf172ba48212f7f8aa445a  gcc/testsuite/gcc.target/powerpc/prefix-stack-protect.c
! 3ba8ef2a92d4982a4dc0e12f6d60290b  gcc/testsuite/gcc.target/powerpc/pure-builtin-redundant-load.c
  cdd99d5c0b1f66b6631cc7e72a70c10e  gcc/testsuite/gcc.target/powerpc/quad-atomic.c
  ca60c829e47ba4c42c6f23dc2cc300bd  gcc/testsuite/gcc.target/powerpc/r2_shrink-wrap.c
  7659e2d7158a0cc47cd2b58dced8dd34  gcc/testsuite/gcc.target/powerpc/recip-1.c
  ff4948d55a3c22843e0039ae88817b53  gcc/testsuite/gcc.target/powerpc/recip-2.c
  aa90445b0bb4af39ba842a95d0dd6e64  gcc/testsuite/gcc.target/powerpc/recip-3.c
  9a3d10cef41c45bd5ddffc43e3e88ffe  gcc/testsuite/gcc.target/powerpc/recip-4.c
! 875718b7e98c7c692901be4b98767a63  gcc/testsuite/gcc.target/powerpc/recip-5.c
  46f3a0f3832148dbdf3ee40d99c12f1b  gcc/testsuite/gcc.target/powerpc/recip-6.c
  c50888abb2a5f5dbf35de2c272671dea  gcc/testsuite/gcc.target/powerpc/recip-7.c
  87baba7a742fa16204c5123333ebc11e  gcc/testsuite/gcc.target/powerpc/recip-sqrtf.c
--- 86214,86227 ----
  1f54b499ad404587661bc793e8f252f8  gcc/testsuite/gcc.target/powerpc/prefix-pcrel.h
  ce3c6e6db2777b22224f4a6b36d6bed6  gcc/testsuite/gcc.target/powerpc/prefix-si-constant.c
  38228cc40bbf172ba48212f7f8aa445a  gcc/testsuite/gcc.target/powerpc/prefix-stack-protect.c
! 926143d73e4a71ff6bf57a05031835ec  gcc/testsuite/gcc.target/powerpc/pure-builtin-redundant-load.c
  cdd99d5c0b1f66b6631cc7e72a70c10e  gcc/testsuite/gcc.target/powerpc/quad-atomic.c
  ca60c829e47ba4c42c6f23dc2cc300bd  gcc/testsuite/gcc.target/powerpc/r2_shrink-wrap.c
  7659e2d7158a0cc47cd2b58dced8dd34  gcc/testsuite/gcc.target/powerpc/recip-1.c
  ff4948d55a3c22843e0039ae88817b53  gcc/testsuite/gcc.target/powerpc/recip-2.c
  aa90445b0bb4af39ba842a95d0dd6e64  gcc/testsuite/gcc.target/powerpc/recip-3.c
  9a3d10cef41c45bd5ddffc43e3e88ffe  gcc/testsuite/gcc.target/powerpc/recip-4.c
! 85eb80c4ccc39bf7a449a6563120cfa3  gcc/testsuite/gcc.target/powerpc/recip-5.c
  46f3a0f3832148dbdf3ee40d99c12f1b  gcc/testsuite/gcc.target/powerpc/recip-6.c
  c50888abb2a5f5dbf35de2c272671dea  gcc/testsuite/gcc.target/powerpc/recip-7.c
  87baba7a742fa16204c5123333ebc11e  gcc/testsuite/gcc.target/powerpc/recip-sqrtf.c
*************** c5641841c2cbc2fb677d020f2a6d5bc1  gcc/te
*** 81252,81273 ****
  bf385d7310a8dab90ee44f86832aa03b  gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
  4c335d772e934c08fb4ce6f056df6f02  gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
! 7aacc521251d44cf2fa3a75a564c4270  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! 82afa3518077faa5bf81d26a960c2066  gcc/testsuite/gcc.target/powerpc/sad-vectorize-1.c
! 9124d1d840d205ec6d88b2b9697a4c2e  gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c
  a16dee197d86c4a28cb384257269819b  gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c
  a51b0a09d3bfe8d718a78021e4bbeecf  gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c
  117d3bda48a47bac18d3fc69aafa9bc5  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
  b267561f99ac721f454b2af55e346864  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
! eec65639c2807a07f0c7f7d10211bf4b  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
  440a279cd4b54a0d56f1725ad5e57d55  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c
  ef8eb7cbf624be95837254f86c894d5b  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c
  24a2f6cdda4929c5eaa245cc358ce7c6  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c
  97459dfff65ecd5b32b5428b110a3cbb  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
  f66a7c7a9b7cdd49a6b9860dbb16d90a  gcc/testsuite/gcc.target/powerpc/savres.c
! 4d279143b2088deebcb4790c43797a2a  gcc/testsuite/gcc.target/powerpc/sd-pwr6.c
! 428bf8d4e0a547547d127c62dd9af650  gcc/testsuite/gcc.target/powerpc/sd-vsx.c
  b9bc7a8f73a8f48bd224327d16ecdef9  gcc/testsuite/gcc.target/powerpc/setbc.h
  f2299a0b062f6e9335b5bf9c5fd99600  gcc/testsuite/gcc.target/powerpc/setbceq.c
  275cdd14ac33706d21492b08be6441f6  gcc/testsuite/gcc.target/powerpc/setbcge.c
--- 86260,86281 ----
  bf385d7310a8dab90ee44f86832aa03b  gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
  4c335d772e934c08fb4ce6f056df6f02  gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
! 6425734c7a2ce3a67beb046823c17c9c  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! fd9b9d79f5d4fcce7f8a5ca32a7a7385  gcc/testsuite/gcc.target/powerpc/sad-vectorize-1.c
! 8b9c3a76cfbf257b5e47376c9acbf7a0  gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c
  a16dee197d86c4a28cb384257269819b  gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c
  a51b0a09d3bfe8d718a78021e4bbeecf  gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c
  117d3bda48a47bac18d3fc69aafa9bc5  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
  b267561f99ac721f454b2af55e346864  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
! e3ab82cf80ec1a2a2b75a28d44997b33  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
  440a279cd4b54a0d56f1725ad5e57d55  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c
  ef8eb7cbf624be95837254f86c894d5b  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c
  24a2f6cdda4929c5eaa245cc358ce7c6  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c
  97459dfff65ecd5b32b5428b110a3cbb  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
  f66a7c7a9b7cdd49a6b9860dbb16d90a  gcc/testsuite/gcc.target/powerpc/savres.c
! 6b5153f0b4dd2786accf3bfda25dce5e  gcc/testsuite/gcc.target/powerpc/sd-pwr6.c
! 5b6d06874e1b29755d3f3d9144264669  gcc/testsuite/gcc.target/powerpc/sd-vsx.c
  b9bc7a8f73a8f48bd224327d16ecdef9  gcc/testsuite/gcc.target/powerpc/setbc.h
  f2299a0b062f6e9335b5bf9c5fd99600  gcc/testsuite/gcc.target/powerpc/setbceq.c
  275cdd14ac33706d21492b08be6441f6  gcc/testsuite/gcc.target/powerpc/setbcge.c
*************** c742917812fbfbc904c5958044e88ac1  gcc/te
*** 81287,81296 ****
  862ac833b3d2f974e0f5cecc6abee95b  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-0.c
  63c119f5703b1b66e32b794c15f04320  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-1.c
  3bcc1a1cf615d22cd19fd8328f1017c8  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-2.c
! b9e65257dfecac5737e332441c5ef411  gcc/testsuite/gcc.target/powerpc/signbit-1.c
! 4877dcdc18f7101589e6598d35eaeef5  gcc/testsuite/gcc.target/powerpc/signbit-2.c
  78b111d5c85fb4c63a40bf4f61fd37ee  gcc/testsuite/gcc.target/powerpc/signbit-3.c
! a1178b69259e8f197b55b01f225b59f7  gcc/testsuite/gcc.target/powerpc/sldoi_to_mov.c
  b53c831b7a989947bc45e26ce4a15c9b  gcc/testsuite/gcc.target/powerpc/small-loop-unroll.c
  c0e75f8fc195cc2cbbf74bc89b5ca78f  gcc/testsuite/gcc.target/powerpc/spec-barr-1.c
  57c1b3e4790a39e783c8f5b4401ecfa5  gcc/testsuite/gcc.target/powerpc/sse-addps-1.c
--- 86295,86304 ----
  862ac833b3d2f974e0f5cecc6abee95b  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-0.c
  63c119f5703b1b66e32b794c15f04320  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-1.c
  3bcc1a1cf615d22cd19fd8328f1017c8  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-2.c
! 205aac759eee859312b201ec30bceeef  gcc/testsuite/gcc.target/powerpc/signbit-1.c
! 2fa4afaaaf79789ed2fb8a39238dd7af  gcc/testsuite/gcc.target/powerpc/signbit-2.c
  78b111d5c85fb4c63a40bf4f61fd37ee  gcc/testsuite/gcc.target/powerpc/signbit-3.c
! dd732eb5a0b5d22a795c87ecc2f85a73  gcc/testsuite/gcc.target/powerpc/sldoi_to_mov.c
  b53c831b7a989947bc45e26ce4a15c9b  gcc/testsuite/gcc.target/powerpc/small-loop-unroll.c
  c0e75f8fc195cc2cbbf74bc89b5ca78f  gcc/testsuite/gcc.target/powerpc/spec-barr-1.c
  57c1b3e4790a39e783c8f5b4401ecfa5  gcc/testsuite/gcc.target/powerpc/sse-addps-1.c
*************** c2e50d4c4710390803a3861201c68932  gcc/te
*** 81496,81502 ****
  24bcb12907c1debe5fb5e5b18e37fb98  gcc/testsuite/gcc.target/powerpc/sse2-unpcklpd-1.c
  a9a6ba519f5ee0aa191a26fbd5b7c266  gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c
  8f7a011b9eba301880d42f08c6341cb9  gcc/testsuite/gcc.target/powerpc/sse3-addsubpd.c
! a9378b2e875d5133f6e89deed3d5c409  gcc/testsuite/gcc.target/powerpc/sse3-addsubps.c
  a962b69d7697aaa2cc9c231cf59ef133  gcc/testsuite/gcc.target/powerpc/sse3-check.h
  5f8c26e13dbe09ffb7d29fbdcf76aee1  gcc/testsuite/gcc.target/powerpc/sse3-haddpd.c
  f0d86b2dabf901da7a9185a6e9bcccb1  gcc/testsuite/gcc.target/powerpc/sse3-haddps.c
--- 86504,86510 ----
  24bcb12907c1debe5fb5e5b18e37fb98  gcc/testsuite/gcc.target/powerpc/sse2-unpcklpd-1.c
  a9a6ba519f5ee0aa191a26fbd5b7c266  gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c
  8f7a011b9eba301880d42f08c6341cb9  gcc/testsuite/gcc.target/powerpc/sse3-addsubpd.c
! 9600e207f6462ad193ecf076107ac926  gcc/testsuite/gcc.target/powerpc/sse3-addsubps.c
  a962b69d7697aaa2cc9c231cf59ef133  gcc/testsuite/gcc.target/powerpc/sse3-check.h
  5f8c26e13dbe09ffb7d29fbdcf76aee1  gcc/testsuite/gcc.target/powerpc/sse3-haddpd.c
  f0d86b2dabf901da7a9185a6e9bcccb1  gcc/testsuite/gcc.target/powerpc/sse3-haddps.c
*************** c36d5e9b1843432bae24b846fbfa2419  gcc/te
*** 81585,81637 ****
  735969d9135e5cf034fa25a2fcc1df1a  gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c
  f3459c279e70e34d7f608b7b9cd9fe46  gcc/testsuite/gcc.target/powerpc/ssse3-vals.h
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
! c144c8783088ad884939b90f78df7751  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  1251a69a170efd2dccca47828de63a2a  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
  2fe56a13672fc03a89c00df88dae3169  gcc/testsuite/gcc.target/powerpc/swaps-p8-11.c
! cd88f97c5f3a9fc02418cacd6b02eeee  gcc/testsuite/gcc.target/powerpc/swaps-p8-12.c
  19921ba7b5912092455d2557f2076a71  gcc/testsuite/gcc.target/powerpc/swaps-p8-13.c
! 814cb4ce295d232b196751d0cd38a33f  gcc/testsuite/gcc.target/powerpc/swaps-p8-14.c
! 6702e7457aae92586dbcf70a3cf7a699  gcc/testsuite/gcc.target/powerpc/swaps-p8-15.c
! b72e8603d2ec3d5c12294d849ec1b297  gcc/testsuite/gcc.target/powerpc/swaps-p8-16.c
! 835e1b8dfadc60fc8d2a24a290f93983  gcc/testsuite/gcc.target/powerpc/swaps-p8-17.c
! a396c873508f4725411f2de09164226b  gcc/testsuite/gcc.target/powerpc/swaps-p8-18.c
! 7de68c863f0c7aaf374b3fbbfbb9d81e  gcc/testsuite/gcc.target/powerpc/swaps-p8-19.c
! b8e402ece5da1120129aedd5196e9069  gcc/testsuite/gcc.target/powerpc/swaps-p8-2.c
! 28ddcc589e6736bb17af233241f835d1  gcc/testsuite/gcc.target/powerpc/swaps-p8-20.c
! c110a35fda6b3a0063778a5792970e84  gcc/testsuite/gcc.target/powerpc/swaps-p8-21.c
! dce78389cc02300c181927c47fa8082a  gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
! cff7db4242bfad5f889ffcb90e60a350  gcc/testsuite/gcc.target/powerpc/swaps-p8-23.c
! 99afab521812cc680d8d4a998536fb48  gcc/testsuite/gcc.target/powerpc/swaps-p8-24.c
! 027805ab06f5085cc6123bceaab5cd0f  gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
! ceddc7632f8b6f7864cadb0a791557e8  gcc/testsuite/gcc.target/powerpc/swaps-p8-26.c
! 4fa64cb6835e3de62804df29a9eca1bc  gcc/testsuite/gcc.target/powerpc/swaps-p8-27.c
  99533025bbda92f8c5624aa0a977f0cf  gcc/testsuite/gcc.target/powerpc/swaps-p8-28.c
  365ab3147ef37189d8c8b56d21dfa9ca  gcc/testsuite/gcc.target/powerpc/swaps-p8-29.c
! b59d551158ff182fb814a2c58cd8c102  gcc/testsuite/gcc.target/powerpc/swaps-p8-3.c
! f60eff593a85d5bd880ee15614b642b7  gcc/testsuite/gcc.target/powerpc/swaps-p8-30.c
  54a51960cc691ea90b07070de9d9402f  gcc/testsuite/gcc.target/powerpc/swaps-p8-31.c
  98854fa6c9b039e76e789a6afba83490  gcc/testsuite/gcc.target/powerpc/swaps-p8-32.c
! 46e53831b2ba3bece5482e0543e17515  gcc/testsuite/gcc.target/powerpc/swaps-p8-33.c
  f1c3ccafa9311c56c8816bf66a6a49d6  gcc/testsuite/gcc.target/powerpc/swaps-p8-34.c
  63178d18a0ea7b28ec993b3a6eec620b  gcc/testsuite/gcc.target/powerpc/swaps-p8-35.c
! 83001b88b1cb02580054c576d08fce04  gcc/testsuite/gcc.target/powerpc/swaps-p8-36.c
  4fcbf88b2876a4d0bb0828524a2a0111  gcc/testsuite/gcc.target/powerpc/swaps-p8-37.c
  d01a25b2916153a8a4d5d5a6cad4c91f  gcc/testsuite/gcc.target/powerpc/swaps-p8-38.c
! 07d50fdd94611a0f768e88496a2fc7ec  gcc/testsuite/gcc.target/powerpc/swaps-p8-39.c
! 0b223f8be46bdfdd2a682464b975d54e  gcc/testsuite/gcc.target/powerpc/swaps-p8-4.c
  f2c22550c93f1f7a07b911e96a15b4df  gcc/testsuite/gcc.target/powerpc/swaps-p8-40.c
  560760aaafa6d3554175bdb61f2d211e  gcc/testsuite/gcc.target/powerpc/swaps-p8-41.c
! 5228bc7b4657fb7d4dccd4e5f7257913  gcc/testsuite/gcc.target/powerpc/swaps-p8-42.c
  c9e443ddbdf5ba28ff765c6410ce7ca1  gcc/testsuite/gcc.target/powerpc/swaps-p8-43.c
  cf71f7501170f714928ab237adfa9d1d  gcc/testsuite/gcc.target/powerpc/swaps-p8-44.c
! dd5b4640c5745628d852d430b90acad0  gcc/testsuite/gcc.target/powerpc/swaps-p8-45.c
! 2ffba6f8313c6e06eafd1fdf123c7afe  gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
! b86d44bd57b842bbd7ab8d11e05e96f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-5.c
  0f5c5efa2e329bc2060265058a2ff722  gcc/testsuite/gcc.target/powerpc/swaps-p8-6.c
  b3ee99ff13dd64c0a7e4d3727bd516f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-7.c
  6d778b9a74a6c63385c58c1fbd60137f  gcc/testsuite/gcc.target/powerpc/swaps-p8-8.c
  09302ecea2b2338f19aafefdbf164614  gcc/testsuite/gcc.target/powerpc/swaps-p8-9.c
! f138cfa6e387e1bc85747da2fc38e305  gcc/testsuite/gcc.target/powerpc/swaps-stack-protector.c
  2a52ad9e020f4876e1759e2137dd146c  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin.c
  2852dd6476acf51799a5be9f79d9a721  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
  7f4ffebc19a55aadd19b76eeb7186379  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_1.c
--- 86593,86645 ----
  735969d9135e5cf034fa25a2fcc1df1a  gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c
  f3459c279e70e34d7f608b7b9cd9fe46  gcc/testsuite/gcc.target/powerpc/ssse3-vals.h
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
! ef6412e431bc365f8c4807e6e7745657  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  1251a69a170efd2dccca47828de63a2a  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
  2fe56a13672fc03a89c00df88dae3169  gcc/testsuite/gcc.target/powerpc/swaps-p8-11.c
! bb1a090bb3d3b71f7c2a72e81b0e0f07  gcc/testsuite/gcc.target/powerpc/swaps-p8-12.c
  19921ba7b5912092455d2557f2076a71  gcc/testsuite/gcc.target/powerpc/swaps-p8-13.c
! 2c7da552f0fd105d330099e6db22d636  gcc/testsuite/gcc.target/powerpc/swaps-p8-14.c
! bf6a338b8c2f93541bacf7134bfe8901  gcc/testsuite/gcc.target/powerpc/swaps-p8-15.c
! b7597d49f8cd153199040f699c0e3333  gcc/testsuite/gcc.target/powerpc/swaps-p8-16.c
! 15b339fe210c00b5cd2172686eccea80  gcc/testsuite/gcc.target/powerpc/swaps-p8-17.c
! 73b13131428785df4e0b45245c6ae2ce  gcc/testsuite/gcc.target/powerpc/swaps-p8-18.c
! ba2575aa46fcbff3ae13afc5feef1e85  gcc/testsuite/gcc.target/powerpc/swaps-p8-19.c
! 3589f46097d309649c05697855e4b70f  gcc/testsuite/gcc.target/powerpc/swaps-p8-2.c
! e183529e88a9cc0ebd90d5fcc917fae7  gcc/testsuite/gcc.target/powerpc/swaps-p8-20.c
! 4f4e861b22cc953eda1a75837a9bf48e  gcc/testsuite/gcc.target/powerpc/swaps-p8-21.c
! c930a75f707662d5cd19ec40faa3c9b1  gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
! 1f029d0ad97a30b9eff1acb6d0c68f0d  gcc/testsuite/gcc.target/powerpc/swaps-p8-23.c
! 367d576279bc0ec89f223fe77c5219ab  gcc/testsuite/gcc.target/powerpc/swaps-p8-24.c
! c669f6adc42fd41f94353cabcd921501  gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
! e7e03c483d9eed131c9dd67bce00145e  gcc/testsuite/gcc.target/powerpc/swaps-p8-26.c
! 86ed6313aeb93ca3fe03709f4be4948b  gcc/testsuite/gcc.target/powerpc/swaps-p8-27.c
  99533025bbda92f8c5624aa0a977f0cf  gcc/testsuite/gcc.target/powerpc/swaps-p8-28.c
  365ab3147ef37189d8c8b56d21dfa9ca  gcc/testsuite/gcc.target/powerpc/swaps-p8-29.c
! e0e953c54d99d8d22d833e169ac87e00  gcc/testsuite/gcc.target/powerpc/swaps-p8-3.c
! d2d81724d65a43d2bf07050fa99ff005  gcc/testsuite/gcc.target/powerpc/swaps-p8-30.c
  54a51960cc691ea90b07070de9d9402f  gcc/testsuite/gcc.target/powerpc/swaps-p8-31.c
  98854fa6c9b039e76e789a6afba83490  gcc/testsuite/gcc.target/powerpc/swaps-p8-32.c
! c73847e204d4c00b9115f625fc3c59d5  gcc/testsuite/gcc.target/powerpc/swaps-p8-33.c
  f1c3ccafa9311c56c8816bf66a6a49d6  gcc/testsuite/gcc.target/powerpc/swaps-p8-34.c
  63178d18a0ea7b28ec993b3a6eec620b  gcc/testsuite/gcc.target/powerpc/swaps-p8-35.c
! f9083f5aa0805633d123c3e9e5299c58  gcc/testsuite/gcc.target/powerpc/swaps-p8-36.c
  4fcbf88b2876a4d0bb0828524a2a0111  gcc/testsuite/gcc.target/powerpc/swaps-p8-37.c
  d01a25b2916153a8a4d5d5a6cad4c91f  gcc/testsuite/gcc.target/powerpc/swaps-p8-38.c
! af04ec9dd816d819cc1da6c98394318a  gcc/testsuite/gcc.target/powerpc/swaps-p8-39.c
! 81e89dc6d7c9a5e0bbc2de7900531b21  gcc/testsuite/gcc.target/powerpc/swaps-p8-4.c
  f2c22550c93f1f7a07b911e96a15b4df  gcc/testsuite/gcc.target/powerpc/swaps-p8-40.c
  560760aaafa6d3554175bdb61f2d211e  gcc/testsuite/gcc.target/powerpc/swaps-p8-41.c
! 4148f9ee051e70454ccb6fa63fed4a22  gcc/testsuite/gcc.target/powerpc/swaps-p8-42.c
  c9e443ddbdf5ba28ff765c6410ce7ca1  gcc/testsuite/gcc.target/powerpc/swaps-p8-43.c
  cf71f7501170f714928ab237adfa9d1d  gcc/testsuite/gcc.target/powerpc/swaps-p8-44.c
! bc33913f568db0bfe93778ce0224f9c6  gcc/testsuite/gcc.target/powerpc/swaps-p8-45.c
! 531de2ada10bf96dd9597eaf103cea29  gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
! 4370a7f7925c21b6f8aece77176241be  gcc/testsuite/gcc.target/powerpc/swaps-p8-5.c
  0f5c5efa2e329bc2060265058a2ff722  gcc/testsuite/gcc.target/powerpc/swaps-p8-6.c
  b3ee99ff13dd64c0a7e4d3727bd516f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-7.c
  6d778b9a74a6c63385c58c1fbd60137f  gcc/testsuite/gcc.target/powerpc/swaps-p8-8.c
  09302ecea2b2338f19aafefdbf164614  gcc/testsuite/gcc.target/powerpc/swaps-p8-9.c
! 6bf0b1a0f15ad985cac1d76b82b00531  gcc/testsuite/gcc.target/powerpc/swaps-stack-protector.c
  2a52ad9e020f4876e1759e2137dd146c  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin.c
  2852dd6476acf51799a5be9f79d9a721  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
  7f4ffebc19a55aadd19b76eeb7186379  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_1.c
*************** c2edbb1afba546ea3ac8a5efcaca9c38  gcc/te
*** 81643,81674 ****
  c3d0d51284479d220a6166a0f362536c  gcc/testsuite/gcc.target/powerpc/ti_math2.c
  b66bd2797d99df9316755addd3664809  gcc/testsuite/gcc.target/powerpc/timode_off.c
  2a172d78b196f247523e66a479659c0a  gcc/testsuite/gcc.target/powerpc/try_const_anchors_ice.c
! 242e558eb05c36c662d06489c5746038  gcc/testsuite/gcc.target/powerpc/undef-bool-2.c
! b3e201f4f90c212bf9516e4643c7982c  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.c
  e4003dd438f5fd9c07f4b70a77174f74  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.h
! 754d73f8ad30fcd82001c939a95b0690  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.c
  f524af96c3e4ca661c5ae6f83ba1a0f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.h
! eac653297774c936815da618a2899016  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.c
  16a4f4819c46251cf7d40d2cbdd2f73f  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.h
  ce613ac6616063280f72d2b83eac70c4  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-1.c
  afa67f434007352fa186b3cd5ceaa933  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-2.c
  6452133e9e9b9749331127b628cb82f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-3.c
  49a9b7083933f071e406a6002545a2b1  gcc/testsuite/gcc.target/powerpc/unpack-vectorize.h
  8299025d4b58de8ad2587e97256df932  gcc/testsuite/gcc.target/powerpc/unwind-backchain.c
! f7b335e2ebdedcf6b3ad355f4564a8db  gcc/testsuite/gcc.target/powerpc/upper-regs-df.c
! b7011a93581fc4fce59012866a078220  gcc/testsuite/gcc.target/powerpc/upper-regs-sf.c
! a106720aef11f39970e30fe5612af5fc  gcc/testsuite/gcc.target/powerpc/vadsdu-0.c
! 6c5f22cfca47ee30d77675efa20a43fa  gcc/testsuite/gcc.target/powerpc/vadsdu-1.c
! 0e2ea6df2f52ca89550dd11d73514fe2  gcc/testsuite/gcc.target/powerpc/vadsdu-2.c
! 908754a2bcf7917ac7d6159bed3aace0  gcc/testsuite/gcc.target/powerpc/vadsdu-3.c
! ca87ce9a80b36be8799d4bf51b489926  gcc/testsuite/gcc.target/powerpc/vadsdu-4.c
! 77ab252eece39e1c35a75764220265e7  gcc/testsuite/gcc.target/powerpc/vadsdu-5.c
! b66b9128f7739afc0ea98ec07509f346  gcc/testsuite/gcc.target/powerpc/vadsdub-1.c
! 39ffb81d41cf76d4265d7d2c6ed73e53  gcc/testsuite/gcc.target/powerpc/vadsdub-2.c
! 9a43e5e713eac4e419bd93473b189cde  gcc/testsuite/gcc.target/powerpc/vadsduh-1.c
! ca7e8e576131a2db9f81b6b02267230d  gcc/testsuite/gcc.target/powerpc/vadsduh-2.c
! cb0a51976dde5ffb88a8f63124f1ffb5  gcc/testsuite/gcc.target/powerpc/vadsduw-1.c
! d1cc156f5b2682317e6d797b04e97958  gcc/testsuite/gcc.target/powerpc/vadsduw-2.c
  2969bf0540680b6822487ad8c77db63b  gcc/testsuite/gcc.target/powerpc/vec-adde-int128.c
  5e08e5eb8b4158f2e3eb44cec7f5fce8  gcc/testsuite/gcc.target/powerpc/vec-adde.c
  8edcbb6b83c68636e07236ae38275785  gcc/testsuite/gcc.target/powerpc/vec-addec-int128.c
--- 86651,86683 ----
  c3d0d51284479d220a6166a0f362536c  gcc/testsuite/gcc.target/powerpc/ti_math2.c
  b66bd2797d99df9316755addd3664809  gcc/testsuite/gcc.target/powerpc/timode_off.c
  2a172d78b196f247523e66a479659c0a  gcc/testsuite/gcc.target/powerpc/try_const_anchors_ice.c
! 770b7fe995232516d2a29b207949a4fa  gcc/testsuite/gcc.target/powerpc/undef-bool-2.c
! 2d695f7a6482a2e8a25ec0986ce53c45  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.c
  e4003dd438f5fd9c07f4b70a77174f74  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.h
! 5736b2311d7d933905407b19e3398ccc  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.c
  f524af96c3e4ca661c5ae6f83ba1a0f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.h
! 398d3264b9d40fea44ef58eef856436b  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.c
  16a4f4819c46251cf7d40d2cbdd2f73f  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.h
  ce613ac6616063280f72d2b83eac70c4  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-1.c
  afa67f434007352fa186b3cd5ceaa933  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-2.c
  6452133e9e9b9749331127b628cb82f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-3.c
  49a9b7083933f071e406a6002545a2b1  gcc/testsuite/gcc.target/powerpc/unpack-vectorize.h
  8299025d4b58de8ad2587e97256df932  gcc/testsuite/gcc.target/powerpc/unwind-backchain.c
! 825509f8f9823467aa998e272c282d2a  gcc/testsuite/gcc.target/powerpc/upper-regs-df.c
! a76e784fc2314628069389c4e5880e2a  gcc/testsuite/gcc.target/powerpc/upper-regs-sf.c
! 671d6c292efca0283b47290e76b2560f  gcc/testsuite/gcc.target/powerpc/vadsdu-0.c
! eff0bbdc4b9c417aee92475fe21d5b76  gcc/testsuite/gcc.target/powerpc/vadsdu-1.c
! bb31b491fac1c94d85322d87647ff238  gcc/testsuite/gcc.target/powerpc/vadsdu-2.c
! 3ed8692585ee898248940bdde7debfc8  gcc/testsuite/gcc.target/powerpc/vadsdu-3.c
! 5f6337adf96cb2ad23153f791e05a2f1  gcc/testsuite/gcc.target/powerpc/vadsdu-4.c
! fec25d62d60291a9495b0a999fb8da26  gcc/testsuite/gcc.target/powerpc/vadsdu-5.c
! 5c16649e96e6298d2174db7eb80e4bea  gcc/testsuite/gcc.target/powerpc/vadsdub-1.c
! 566337fb3273b2e6d25792f4aac69cc1  gcc/testsuite/gcc.target/powerpc/vadsdub-2.c
! edb83c90c038213735ec5f1da623076e  gcc/testsuite/gcc.target/powerpc/vadsduh-1.c
! 2a56543236657d6f56138e30df920780  gcc/testsuite/gcc.target/powerpc/vadsduh-2.c
! 0f2185630d0df3bb7c0c9879b9470d20  gcc/testsuite/gcc.target/powerpc/vadsduw-1.c
! 5cbfc52fb149535ad83ed6361013e8aa  gcc/testsuite/gcc.target/powerpc/vadsduw-2.c
! de1441d02e411475893ba77ff9f59911  gcc/testsuite/gcc.target/powerpc/vcond-fp.c
  2969bf0540680b6822487ad8c77db63b  gcc/testsuite/gcc.target/powerpc/vec-adde-int128.c
  5e08e5eb8b4158f2e3eb44cec7f5fce8  gcc/testsuite/gcc.target/powerpc/vec-adde.c
  8edcbb6b83c68636e07236ae38275785  gcc/testsuite/gcc.target/powerpc/vec-addec-int128.c
*************** d1cc156f5b2682317e6d797b04e97958  gcc/te
*** 81676,81682 ****
  4ee643a0dacf8c9159ac42f03ed94ebb  gcc/testsuite/gcc.target/powerpc/vec-blend-runnable.c
  13b2e0fc2eec6d0a97554dbe826f930e  gcc/testsuite/gcc.target/powerpc/vec-cfuged-0.c
  9660789589de2dd0fc063dd5356407de  gcc/testsuite/gcc.target/powerpc/vec-cfuged-1.c
! 6359ddccab89d64974aacae92509fc9e  gcc/testsuite/gcc.target/powerpc/vec-cg.c
  f14431d38600cca25dc63c7536ee018e  gcc/testsuite/gcc.target/powerpc/vec-clrl-0.c
  11bd15d1b4f83cb448a80b9f2ff16690  gcc/testsuite/gcc.target/powerpc/vec-clrl-1.c
  e8124c8804176fafe418e16282789f0d  gcc/testsuite/gcc.target/powerpc/vec-clrl-2.c
--- 86685,86691 ----
  4ee643a0dacf8c9159ac42f03ed94ebb  gcc/testsuite/gcc.target/powerpc/vec-blend-runnable.c
  13b2e0fc2eec6d0a97554dbe826f930e  gcc/testsuite/gcc.target/powerpc/vec-cfuged-0.c
  9660789589de2dd0fc063dd5356407de  gcc/testsuite/gcc.target/powerpc/vec-cfuged-1.c
! 50eeed6c8f7be14ad85a52a5a1de5ed9  gcc/testsuite/gcc.target/powerpc/vec-cg.c
  f14431d38600cca25dc63c7536ee018e  gcc/testsuite/gcc.target/powerpc/vec-clrl-0.c
  11bd15d1b4f83cb448a80b9f2ff16690  gcc/testsuite/gcc.target/powerpc/vec-clrl-1.c
  e8124c8804176fafe418e16282789f0d  gcc/testsuite/gcc.target/powerpc/vec-clrl-2.c
*************** e8124c8804176fafe418e16282789f0d  gcc/te
*** 81685,81710 ****
  4c7ea20237ce5f1df2fe578ba474a976  gcc/testsuite/gcc.target/powerpc/vec-clrr-1.c
  73c7e7113c20bb5c81cc0ed309a96a3c  gcc/testsuite/gcc.target/powerpc/vec-clrr-2.c
  3c4fb592a3f2fad538441aae547c776e  gcc/testsuite/gcc.target/powerpc/vec-clrr-3.c
! d34d7f5023facc4fff118b6fc7b90733  gcc/testsuite/gcc.target/powerpc/vec-cmp-sel.c
! 4c4fe25c6ca6a3eeb18e508e00443a32  gcc/testsuite/gcc.target/powerpc/vec-cmp.c
! 62e7de5f0be7b8ec7419f43dbb639a0d  gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c
  c38a602ff3e57fa169c76a52e8185d30  gcc/testsuite/gcc.target/powerpc/vec-cmpne-runnable.c
! 19b73d09d0d451e9dfb1653dc0150ad7  gcc/testsuite/gcc.target/powerpc/vec-cmpne.c
  5b8a66a2134e0d51a9c2fd795fa92388  gcc/testsuite/gcc.target/powerpc/vec-cmpne.h
  1c372d09f791df242c811475d366dcc3  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
  fca8a6f77d207e7f7f219ea93f288693  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
  ff9cd4dae68216fd4b9b370b76a709e4  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
  08abc984011e8c1da755e7e2c0b91c96  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
! f60cfb65abc87ba5727c12a22c87de01  gcc/testsuite/gcc.target/powerpc/vec-constvolatile.c
! 0f24b98f1ebacdecb711360acba37328  gcc/testsuite/gcc.target/powerpc/vec-extract-1.c
! 3ba5a8b2f265a56bfead096ead537f00  gcc/testsuite/gcc.target/powerpc/vec-extract-2.c
! ec640db852073aab72d539c378fdd06e  gcc/testsuite/gcc.target/powerpc/vec-extract-3.c
! 8dec8e3fce5ab6bb1bea75fd0af373b8  gcc/testsuite/gcc.target/powerpc/vec-extract-4.c
! 36fca290d3cc2de8fc158e18d54ea5ab  gcc/testsuite/gcc.target/powerpc/vec-extract-5.c
! b1974a37bb1eaf157265615ed80b22ad  gcc/testsuite/gcc.target/powerpc/vec-extract-6.c
! 271bd54568d33c32fb14cacb04e14ad3  gcc/testsuite/gcc.target/powerpc/vec-extract-7.c
! bae8e897e48f634bad6fa326bf2427a0  gcc/testsuite/gcc.target/powerpc/vec-extract-8.c
! 3830fc9ecb1cd5283be9991759ba02f7  gcc/testsuite/gcc.target/powerpc/vec-extract-9.c
  2f16e72d61b7a78b57f3a8442e5652a5  gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
  9ebb418c6d865149676dd097797e4b99  gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
  d0deb437dc01b1a231de274d98973b6f  gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
--- 86694,86719 ----
  4c7ea20237ce5f1df2fe578ba474a976  gcc/testsuite/gcc.target/powerpc/vec-clrr-1.c
  73c7e7113c20bb5c81cc0ed309a96a3c  gcc/testsuite/gcc.target/powerpc/vec-clrr-2.c
  3c4fb592a3f2fad538441aae547c776e  gcc/testsuite/gcc.target/powerpc/vec-clrr-3.c
! eca2ea82ebb2a797091527ff96539db5  gcc/testsuite/gcc.target/powerpc/vec-cmp-sel.c
! d403a1fa7d84e2374548c2accd1c51bf  gcc/testsuite/gcc.target/powerpc/vec-cmp.c
! a8f16e9dc51ac3268b76f08c69310a96  gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c
  c38a602ff3e57fa169c76a52e8185d30  gcc/testsuite/gcc.target/powerpc/vec-cmpne-runnable.c
! 07c12d90a9ce3de7cfc8c8788afb0072  gcc/testsuite/gcc.target/powerpc/vec-cmpne.c
  5b8a66a2134e0d51a9c2fd795fa92388  gcc/testsuite/gcc.target/powerpc/vec-cmpne.h
  1c372d09f791df242c811475d366dcc3  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
  fca8a6f77d207e7f7f219ea93f288693  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
  ff9cd4dae68216fd4b9b370b76a709e4  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
  08abc984011e8c1da755e7e2c0b91c96  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
! 44007b6efa2467b454908540a56978b6  gcc/testsuite/gcc.target/powerpc/vec-constvolatile.c
! 3b8dcfa03db0fbe9ecbd7474c9d9a6ee  gcc/testsuite/gcc.target/powerpc/vec-extract-1.c
! c30be6349463f2365a35283e4b36e2df  gcc/testsuite/gcc.target/powerpc/vec-extract-2.c
! d08b6b9b3f819d833840d9bbc8f3aa77  gcc/testsuite/gcc.target/powerpc/vec-extract-3.c
! 82680f966810d0bee41d68818d506a65  gcc/testsuite/gcc.target/powerpc/vec-extract-4.c
! 8b41c159ca9c023704af55baa13fa522  gcc/testsuite/gcc.target/powerpc/vec-extract-5.c
! 06660d3ddc3b89cd210a326c2383453d  gcc/testsuite/gcc.target/powerpc/vec-extract-6.c
! 304d1d7d68226cb41e1fa30d95916899  gcc/testsuite/gcc.target/powerpc/vec-extract-7.c
! 6c2dacb0294d5626b2e89710bedf0fe0  gcc/testsuite/gcc.target/powerpc/vec-extract-8.c
! a26fc9d7d07bebe656500c2686a5494e  gcc/testsuite/gcc.target/powerpc/vec-extract-9.c
  2f16e72d61b7a78b57f3a8442e5652a5  gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
  9ebb418c6d865149676dd097797e4b99  gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
  d0deb437dc01b1a231de274d98973b6f  gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
*************** cf6daa0d113189191cc577954428500d  gcc/te
*** 81762,81807 ****
  019b2f91f62e2141785040a81fc8f7b6  gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
  6e764d729687fcea81352b14641f365a  gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
  1c064f63a5e242fb0e35f918fa7a9385  gcc/testsuite/gcc.target/powerpc/vec-init-1.c
! 3ca206a0a1b361d3428767696ff894cb  gcc/testsuite/gcc.target/powerpc/vec-init-10.c
  726fca01c06667a59e517b04466b670f  gcc/testsuite/gcc.target/powerpc/vec-init-2.c
! b46d5dbf1002ce05939d9ab00dbad4d8  gcc/testsuite/gcc.target/powerpc/vec-init-3.c
  5069ccdccd854292f597665630051276  gcc/testsuite/gcc.target/powerpc/vec-init-4.c
  ed3032821da8f22487ae8925af91831d  gcc/testsuite/gcc.target/powerpc/vec-init-5.c
! 1f4532f924a7472a19e88a2126141647  gcc/testsuite/gcc.target/powerpc/vec-init-6.c
! ffb557a0b103332aafdd2011b48cf9be  gcc/testsuite/gcc.target/powerpc/vec-init-7.c
  4b6bfddfce3c4b5408eb80a45dd2849e  gcc/testsuite/gcc.target/powerpc/vec-init-8.c
  1c25ca7359ac947620882234381d0e4f  gcc/testsuite/gcc.target/powerpc/vec-init-9.c
  bb9f6d3ab6165cbd94638731b6fc4d79  gcc/testsuite/gcc.target/powerpc/vec-insert-word-runnable.c
  e95008bad5edfab2ab0eb99d3fba6505  gcc/testsuite/gcc.target/powerpc/vec-ldl-1.c
! 1d59c3796624fc6332ca8ae27dda34a2  gcc/testsuite/gcc.target/powerpc/vec-minmax-1.c
! 56b6a60a22b8fc15c0655fbdd6af58c4  gcc/testsuite/gcc.target/powerpc/vec-minmax-2.c
  173de9f14de1f3984b7ea34aa63e1e32  gcc/testsuite/gcc.target/powerpc/vec-msumc.c
! d23be9cbb5a316007e6c09a2cb15f73f  gcc/testsuite/gcc.target/powerpc/vec-mul.c
! 8a3d5e23a1722a45edbaa43f5b3a54b5  gcc/testsuite/gcc.target/powerpc/vec-mult-char-1.c
! 7554510a59ccac21c14591cee248180e  gcc/testsuite/gcc.target/powerpc/vec-mult-char-2.c
  0b768a446e72f0d8107335b1b8529fa0  gcc/testsuite/gcc.target/powerpc/vec-pdep-0.c
  db83e62dff46acd786fd214ba328a149  gcc/testsuite/gcc.target/powerpc/vec-pdep-1.c
  d68082fddb71eb4b0e5e3e144cf79397  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor-run.c
! 02cb4100e1591064090809ea10d44f62  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor.c
  e42d7308eff347a7f9302ce99c54ea47  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor.h
  098e99c9220bf1bbda47aa99d3ec7356  gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
  b5892a28bbaf2d60143417a2daef76de  gcc/testsuite/gcc.target/powerpc/vec-pext-0.c
  d24a8e6f3ef84d24e9f70f0c4936462d  gcc/testsuite/gcc.target/powerpc/vec-pext-1.c
  b2229ebf3206f1ef019ce1cd11b5aa2e  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_1.c
  0c073598fb7b9377aaa4fe9824999b2f  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_2.c
! de78dd24e2bc664997a08817596f7ac2  gcc/testsuite/gcc.target/powerpc/vec-rlmi-rlnm.c
! f9f609a740dac9270f63ed47cf131e3e  gcc/testsuite/gcc.target/powerpc/vec-rotate-1.c
  137d89e04c5e0edc9f6d5402c1414d37  gcc/testsuite/gcc.target/powerpc/vec-rotate-2.c
! 96441926bf999692270027b1092cac57  gcc/testsuite/gcc.target/powerpc/vec-rotate-3.c
  0368d3c407ffd6a05b2ea100ff07f88c  gcc/testsuite/gcc.target/powerpc/vec-rotate-4.c
! 8f0cc2b84116b8f1fabe1c5074042508  gcc/testsuite/gcc.target/powerpc/vec-set-char.c
! 39273172814635e6e6f1d45129520e55  gcc/testsuite/gcc.target/powerpc/vec-set-int.c
! fde415f0dd5ab44786b365fe5042bba0  gcc/testsuite/gcc.target/powerpc/vec-set-short.c
  a187918b30c9c8030bc9bbaf9599bb34  gcc/testsuite/gcc.target/powerpc/vec-setup-double.c
  096cb7255750f7796c5f3ef33baf3cf7  gcc/testsuite/gcc.target/powerpc/vec-setup-long.c
  30f50ac003dbd1454426619dc4d0b988  gcc/testsuite/gcc.target/powerpc/vec-setup.h
  691a3be6e68281ca694f9a68b84bc0ed  gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable.c
! b558fe15786948ecde81acc46fdba7e6  gcc/testsuite/gcc.target/powerpc/vec-shift.c
  8ee50015e788404267646adf1ac95972  gcc/testsuite/gcc.target/powerpc/vec-shr.c
  ab8b9b4e935734d95c41f6c80e208475  gcc/testsuite/gcc.target/powerpc/vec-sld-modulo.c
  458c7d2af4bd8293e8a58a447dcbde05  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-df.c
--- 86771,86817 ----
  019b2f91f62e2141785040a81fc8f7b6  gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
  6e764d729687fcea81352b14641f365a  gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
  1c064f63a5e242fb0e35f918fa7a9385  gcc/testsuite/gcc.target/powerpc/vec-init-1.c
! 30f86808cf50c40b20c6b175c1d87852  gcc/testsuite/gcc.target/powerpc/vec-init-10.c
  726fca01c06667a59e517b04466b670f  gcc/testsuite/gcc.target/powerpc/vec-init-2.c
! 5d554e047aa777f57be44e666d5b5bc4  gcc/testsuite/gcc.target/powerpc/vec-init-3.c
  5069ccdccd854292f597665630051276  gcc/testsuite/gcc.target/powerpc/vec-init-4.c
  ed3032821da8f22487ae8925af91831d  gcc/testsuite/gcc.target/powerpc/vec-init-5.c
! f1e1302205fa6c620a7b34ec2d21ea23  gcc/testsuite/gcc.target/powerpc/vec-init-6.c
! ddafc23ff6fd3084db932d406139063e  gcc/testsuite/gcc.target/powerpc/vec-init-7.c
  4b6bfddfce3c4b5408eb80a45dd2849e  gcc/testsuite/gcc.target/powerpc/vec-init-8.c
  1c25ca7359ac947620882234381d0e4f  gcc/testsuite/gcc.target/powerpc/vec-init-9.c
  bb9f6d3ab6165cbd94638731b6fc4d79  gcc/testsuite/gcc.target/powerpc/vec-insert-word-runnable.c
  e95008bad5edfab2ab0eb99d3fba6505  gcc/testsuite/gcc.target/powerpc/vec-ldl-1.c
! 21c3b9e3986d37ae61f0ad52daf0123e  gcc/testsuite/gcc.target/powerpc/vec-minmax-1.c
! d268fce96ffd3d4737fbacce9753824f  gcc/testsuite/gcc.target/powerpc/vec-minmax-2.c
  173de9f14de1f3984b7ea34aa63e1e32  gcc/testsuite/gcc.target/powerpc/vec-msumc.c
! 0f0f76ca12b44f0ee332cdb4f6c62003  gcc/testsuite/gcc.target/powerpc/vec-mul.c
! 8a7a39235e7e5881a06750e4498b98ce  gcc/testsuite/gcc.target/powerpc/vec-mult-char-1.c
! bc73ffe978644d948b2667d5d01c2b93  gcc/testsuite/gcc.target/powerpc/vec-mult-char-2.c
  0b768a446e72f0d8107335b1b8529fa0  gcc/testsuite/gcc.target/powerpc/vec-pdep-0.c
  db83e62dff46acd786fd214ba328a149  gcc/testsuite/gcc.target/powerpc/vec-pdep-1.c
  d68082fddb71eb4b0e5e3e144cf79397  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor-run.c
! bec36cdb3007cbccf6fa4b4bb67eb4ff  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor.c
  e42d7308eff347a7f9302ce99c54ea47  gcc/testsuite/gcc.target/powerpc/vec-perm-ctor.h
  098e99c9220bf1bbda47aa99d3ec7356  gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
  b5892a28bbaf2d60143417a2daef76de  gcc/testsuite/gcc.target/powerpc/vec-pext-0.c
  d24a8e6f3ef84d24e9f70f0c4936462d  gcc/testsuite/gcc.target/powerpc/vec-pext-1.c
  b2229ebf3206f1ef019ce1cd11b5aa2e  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_1.c
  0c073598fb7b9377aaa4fe9824999b2f  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_2.c
! 828ba7502c95b5ad2890871d61c263ff  gcc/testsuite/gcc.target/powerpc/vec-rlmi-rlnm.c
! f90e769522b15ecd27cc5a835e3fd522  gcc/testsuite/gcc.target/powerpc/vec-rotate-1.c
  137d89e04c5e0edc9f6d5402c1414d37  gcc/testsuite/gcc.target/powerpc/vec-rotate-2.c
! 6756a45fb4c27b89dfa3eb831ffa0684  gcc/testsuite/gcc.target/powerpc/vec-rotate-3.c
  0368d3c407ffd6a05b2ea100ff07f88c  gcc/testsuite/gcc.target/powerpc/vec-rotate-4.c
! 93e4b8283e99f5ddcce92b59b8b59054  gcc/testsuite/gcc.target/powerpc/vec-set-char.c
! a5ea6478b732e78c93e65d35ee393875  gcc/testsuite/gcc.target/powerpc/vec-set-int.c
! 99bc943fb260245ae99fc5c4905aad66  gcc/testsuite/gcc.target/powerpc/vec-set-short.c
  a187918b30c9c8030bc9bbaf9599bb34  gcc/testsuite/gcc.target/powerpc/vec-setup-double.c
  096cb7255750f7796c5f3ef33baf3cf7  gcc/testsuite/gcc.target/powerpc/vec-setup-long.c
  30f50ac003dbd1454426619dc4d0b988  gcc/testsuite/gcc.target/powerpc/vec-setup.h
+ 7c44272d8268994979837a792ee75043  gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable-int128.c
  691a3be6e68281ca694f9a68b84bc0ed  gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable.c
! 6037d677c7cc0e45cdc734222362df02  gcc/testsuite/gcc.target/powerpc/vec-shift.c
  8ee50015e788404267646adf1ac95972  gcc/testsuite/gcc.target/powerpc/vec-shr.c
  ab8b9b4e935734d95c41f6c80e208475  gcc/testsuite/gcc.target/powerpc/vec-sld-modulo.c
  458c7d2af4bd8293e8a58a447dcbde05  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-df.c
*************** ea57c6cb3b3a40e54841a77cfe7d28c4  gcc/te
*** 81899,82032 ****
  0b71e37ab264f807faebdf4dc7dadbec  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-8.c
  545806e3e432c4a4932c83192c3050a6  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-9.c
  ad5fc586c0421d4792f2c22570c2eb18  gcc/testsuite/gcc.target/powerpc/vec-xxpermdi.c
! 2a53c3abc347b940a6be95414b5ec5a9  gcc/testsuite/gcc.target/powerpc/vec_reve_1.c
! 0139d64af18af0b6233bcdaf97269cf4  gcc/testsuite/gcc.target/powerpc/vec_reve_2.c
  88f80d7687637bc7046a2526353a55aa  gcc/testsuite/gcc.target/powerpc/vect-gather-1.c
! 01bc123e6443b78cecb8bb7a5fa30af4  gcc/testsuite/gcc.target/powerpc/vector_float.c
! 9626362813724c41ddb325903bcb4c99  gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c
  d0f4244d0c95771117041974544ba517  gcc/testsuite/gcc.target/powerpc/volatile-mem.c
! 14c8271b97a6b32e63c7436f81744c86  gcc/testsuite/gcc.target/powerpc/vslv-0.c
! 63776f50e0b8fdaf73cd26a70504590f  gcc/testsuite/gcc.target/powerpc/vslv-1.c
! 38ea984f9cdfb69d043cf4a96c3a5682  gcc/testsuite/gcc.target/powerpc/vsrv-0.c
! 1b422ead72870b49976b80c96b7cc1a9  gcc/testsuite/gcc.target/powerpc/vsrv-1.c
! a05a3136d26a6d2dbbc1ec3a5b525769  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-0.c
! 09140f00024b0fbaf7f417501372cd1b  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-1.c
! 5310b8d785a9888686e2ec04eab32640  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-10.c
! 531a0880fb5ffc0e6768dc08d14dc779  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-11.c
! 3cf62ced32a6442bc258a070a0f88201  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-12.c
! 40e52ad2e0ac97dfb3e7977f84b02748  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-13.c
! 8146102a19734a64d7ab51cf02e21e8b  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-14.c
! 781419b5a9a46c6ce8f02217c8f3f76a  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-2.c
! 64ff76d8d14c5137950ce013f365f774  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-3.c
! 14bd0862c72316e51cf9654f75163dc5  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-4.c
! cb1623ab6889bd2f6af905770347c187  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-5.c
! 059d88955db8083b410113b1a4a4954d  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-6.c
! 9b3a7f551e7eff4b4af898098c5716ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-7.c
! 919133dc97df19d96fc86f392f962f9e  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-8.c
! 42199776f4be89563dcfab9adab32938  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-9.c
! 13006fd79bf6cdeadda7a8f7ba128703  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-1.c
! d2a1105a7bcca987f908752a63f2e2a7  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-2.c
! 41a45c6f99ef3f94b866b0f1bca66358  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-3.c
! b064e6099144f06b0bb3deb97d0acd21  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-4.c
! 7d60d1e83952b7b61f67ccfd5e6b1490  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-5.c
! eec775a2af849b41f6add1b6bf793dc8  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-6.c
! 63eb10770fdc8df022641cdd795e9041  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-7.c
! c0ed8f0eb9b7b74de0982e9936e9b30b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-0.c
! cf6b85a56c380392a33a81d44d509756  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-1.c
! 62c9e68de434bf3b071d2b2838873575  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-10.c
! 97888db7adfacce247174978e24ffd92  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-11.c
! 183d6b446c41a38cf8eec28a1ad00e6d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-12.c
! cd938c9fb832ee60884d2316431bb35b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-13.c
! b74e39126af0ebf46588fa61dea5fdde  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-14.c
! 38374544ccaeb1604657fe735aa87291  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-2.c
! 13635753561ddc04df20418e30f7c4a9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-3.c
! 7c700b17c64b13b7db877b3bea4a8a19  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-4.c
! 3efcdd873e9ed086dcdce96d3ec0d2a5  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-5.c
! 1468b1c0449fc1e00a9d449de4b30561  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-6.c
! fa3c25cbb3bcfb40ad4b84c37185045e  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-7.c
! 3e8fa9104ce741229bdfd6a8d44e28a7  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-8.c
! 509c098433a3547d3cc8df2fa5cbec3f  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-9.c
! 02f9a5bb27de9e7f2509e80cb0aceea3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-1.c
! c0998ba281e6353513e5379f2e4bfa71  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-2.c
! aa3a538d577fe47cd8ab96ef9181fd67  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-3.c
! ad822aa324420a1c7300539f7b2e37e9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-4.c
! 2b5a19755ee962aa4763a3a26e36f3bc  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-5.c
! adec814ca1999116f01c7eb0bb4684cf  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-6.c
! e49371acf586290dbcdf0cf23006292d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-7.c
! 55d35bf3969ba0f613652d516cf9ffb5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-0.c
! 9bd00bdfd92957a4846a3bafe8222356  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-1.c
! 0b9e34d61095c5c03225708f0c8c465e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-2.c
! e487b0436e9903902c2c833011b79da6  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-3.c
! 88e2492b0b95ba90e298e50b5f7aa34e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-4.c
! ff634111e27355cc10ad79259a9e8907  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-5.c
! 3c7182cdf4584d8050b7dd80348cd29b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-6.c
! 65f588e23fdffa02a6cae17fb92f93fd  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-8.c
! 0c78a814be23e1881e7271836b3504a5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-9.c
! 6ff96b6407ef4cf5e460ba99b5cae733  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-1.c
! 8eeb66fb81838fa227765da895b1b339  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-2.c
! 80d2d80805d11ae3b1ae322d92297303  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-3.c
! 303005f4a644d5ae0b19bac535a9d8a3  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-4.c
! 45807a10bc4a82b2aefae5d4aecbb1d7  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-5.c
! 13285f4d673008432bad67443c4cbc48  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-6.c
! 644e2d443f88cfb4c66411d81b62fa81  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-7.c
! e4ba42b724151acea95d5dcb2dcc8f1c  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c
! adf2e802bbbb8fa2164c9b40d89094db  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c
! d7fe36f55454f071321af1d90a3f883f  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c
! 3e9b78598bc504dc823305d573dff931  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-3.c
! 526349e981ec03e8b3ca3c820795b4b4  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-4.c
! 0faf5a8410c46b24b5b5a2adebee7061  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c
! b824b198526ef76b1029f4ab35cf88a2  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c
! ec122e0afba267c856957c474d208c5f  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c
! 9dd4087c016cb8481e7e52beb2151ad3  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-3.c
! 504da5c1d73e9cf90e11052eaed3ba62  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-4.c
! b19146dc0c223de9bf3ddfec0f379d03  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-0.c
! d55d15019ab0e8a11c66b84c695f2bdd  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-1.c
! a468e2fcc4d1af66a61f599c274dde4d  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-10.c
! 4624af86558cd19d53933f5018fbf622  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-11.c
! f9402e00609f290c53116c4f1c60dd63  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-12.c
! e4a27789deb9a49d3de37eaebc8c8973  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-13.c
! d8d5c9db21f8f7c043efb9cd936e3e13  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-2.c
! 589e80dbdfb338bf35221d241f72be4e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-3.c
! 05cd4053e9d602dc63f59834be70d6ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-4.c
! f878d8e30caa802e946683ee83115d68  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-5.c
! 72f330b0bafc2bae5a8cf80cb125840f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-6.c
! e77ce42b4d0d884cb8c1c1aac7e81df7  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-7.c
! 92249435d06ec86eb87660a26ec3b7f6  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-8.c
! f4cc644affbcf33e2dce36b7e709ce18  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-9.c
! 30fc9f82126279ece73f9fefd3f1cc5e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-0.c
! 284ebff872b86117f374b7e75cc17f9c  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-1.c
! b44d94c69a42ab452d32243b46d5636b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-2.c
! 0e4b35556e15218e1acf879404c882a1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-3.c
! 32ea340ae2208d0e95289eb5ab7098de  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-4.c
! 160ccd2dd598caaa1432feaa32882a6e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-5.c
! f66c045dc24d3a32119dfc2b75a5b2be  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-6.c
! 6cec48708710fb62255a777d1279c828  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-7.c
! a60538a4671f2bca9dfa851e7607083a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-0.c
! 5f6525ce0582dd80865b2f05d1dacf86  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-1.c
! 59e4b7cdfe368555e91b758cecb0e340  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-2.c
! b6c8c3e426208b9dfb638c77f74b2fa1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-3.c
! c9c5ec6f5a1d621008a7b6cc98239280  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-4.c
! 9e46298711cabdec8970811705d00c9c  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-5.c
! 4e5ec62a455cbc6dcf619bb996a829f0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-6.c
! c60e78b4e3ee322491728d528bc7d3fe  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-7.c
! 6eb79e4d0d708d41bf85822f516fc4e0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-0.c
! 3904cbe8a6ba4f275197da8e73b9912a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-1.c
! 2199ef84e3dce063354b1d0686db5aa9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-10.c
! e81b41c469ddcc6ce8247ce127c2de98  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-11.c
! 6863f056083cb30724d24a88cd13f5c3  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-12.c
! f9ea56924b66969a7d834592ebf97510  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-13.c
! 5921ce54d93e55e41651d824792ba270  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-2.c
! c21c5f88314d3081c9e38e312542fb40  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-3.c
! d80c56b0089818f3406517d90674ca7a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-4.c
! 949171e70c5214a12037704dac90bb06  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-5.c
! 6a7cf72fe5b74627aaeb62c3fca9ce90  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-6.c
! 330032945384180ca80bb64e347b60d0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-7.c
! 0c833734e45aa080367736f2ee7440ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-8.c
! 842f34b9e6ca0905a751264f169e8c47  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-9.c
! c8a6242ecbced4365ad4bdde33a9f656  gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp
! aaeb960a2e271bc474363e9917aecb51  gcc/testsuite/gcc.target/powerpc/vsx-13.c
! 2d2324d8274dfc9b008525e52c7c7bd6  gcc/testsuite/gcc.target/powerpc/vsx-7.c
! 52f42f9be22f511e882b624f99d63a7d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c
  746a6949d77db46dfd9f2e1e8fec69ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c
  ee3ef7928ea6e74901f53131d408b023  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c
  9d682d5a5fd031d3e41611dbc8838f10  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c
--- 86909,87043 ----
  0b71e37ab264f807faebdf4dc7dadbec  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-8.c
  545806e3e432c4a4932c83192c3050a6  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-9.c
  ad5fc586c0421d4792f2c22570c2eb18  gcc/testsuite/gcc.target/powerpc/vec-xxpermdi.c
! da585eb9e9f64582cdb5f804531b4ef1  gcc/testsuite/gcc.target/powerpc/vec_perm-runnable-i128.c
! e6ceadce02ea7c0eeb4eacd98950ad7e  gcc/testsuite/gcc.target/powerpc/vec_reve_1.c
! 7eadab5989cef092ae138194be45a95e  gcc/testsuite/gcc.target/powerpc/vec_reve_2.c
  88f80d7687637bc7046a2526353a55aa  gcc/testsuite/gcc.target/powerpc/vect-gather-1.c
! d4a5b9bbf6621340b4c62e36e2a9d4e1  gcc/testsuite/gcc.target/powerpc/vector_float.c
! 22b262ff5db624f33c7cb2488f4ea2aa  gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c
  d0f4244d0c95771117041974544ba517  gcc/testsuite/gcc.target/powerpc/volatile-mem.c
! 8647f3fe1524cef717ee142ece474596  gcc/testsuite/gcc.target/powerpc/vslv-0.c
! e4a77b308e6a402d75059c689f8154c0  gcc/testsuite/gcc.target/powerpc/vslv-1.c
! 181727d692fc0254592f832b7bc1ebf2  gcc/testsuite/gcc.target/powerpc/vsrv-0.c
! 92037d8277b8abf12e14269b54886637  gcc/testsuite/gcc.target/powerpc/vsrv-1.c
! d2800e854c0db5c2d2b198cb87c5ad6a  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-0.c
! 36fd9bd2a7357120a683581edec3aa2d  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-1.c
! e6aa3f08c5100b39b90c1d22405b863c  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-10.c
! d7040c2ce09602085a7a16cc95c5dc88  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-11.c
! d2e3f517c4a82104542a4c5c452ab4ad  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-12.c
! 5fc7491be606d32535baa0492351b1ed  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-13.c
! 803e57ae61f3265e74934853f18550ab  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-14.c
! 7a3bb529d7fddcf52e3f0ddf92cafa63  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-2.c
! a99117c44556d597ce1e46d287c55b5e  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-3.c
! bee9c031a48d5ad5127ce4bb68f8b086  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-4.c
! 4ac6cfe1e6c84d13bef41c2e95bdcac4  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-5.c
! 350d083f791ede8ea5d93634e88ff3f8  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-6.c
! 853ed9ecd18cc608e1a57b9d022ba697  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-7.c
! 2282772dcf79cd341f16c73bb1c7015e  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-8.c
! 3f947e0a20aaf5ca16865de297aa6497  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-9.c
! e2c1c6dabe0a7b94eb77142ad72d5fe8  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-1.c
! a3f2b18ecfd152744dc4a618569feb87  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-2.c
! 28b6f3d41f949c20f63ce369d18dfad1  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-3.c
! 7d90923258fdd0dc1d77261720c1fb80  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-4.c
! d94e3e7b7777bea824cd815a6bb68d2c  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-5.c
! 0e635b7d8ecbe5632e18cf73c34c67e6  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-6.c
! 92314db1b6764f24386cf6eaeeeed552  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-7.c
! 3754307e693e00e04fe25d4173dd4228  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-0.c
! f9c2b2cdabd2cd2659ed2b1554093b6e  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-1.c
! e66e995b69fd9d5a1281bdcc14cfe787  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-10.c
! 2fcbf75d69f0f127b9dd8b7495aaa44b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-11.c
! d3b817d9b59f952cf1e077db2c84ec1a  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-12.c
! cbabf70c4db9cddc8bfb882ae13ee2f3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-13.c
! 32bcaddfdfed10ea9a0040aa23749e29  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-14.c
! 43256b00b122fb090e040a22604ec850  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-2.c
! a489bd4b49e90c8390c7b1a43365d9db  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-3.c
! 42f4ffb75f0cd620be10a2d92f0d2a20  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-4.c
! beb3fef0e3499b993ca37db5866cb851  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-5.c
! d817fc1a3afd662be9ec924aabe54c37  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-6.c
! 3fa7be016ec3c5f1a847009457ef5970  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-7.c
! 32325d02d04fbb6c3589b3932f134125  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-8.c
! cf03a52e5ee068214c809f428153f94f  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-9.c
! 3db87942afa52f41082ad203d0744a38  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-1.c
! e11c3b02f604866668ecac17a8246160  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-2.c
! d6afdff2d5d39ef2b60ab647c2bcaf8d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-3.c
! a4063f1b64c047214495d1e1e97efd1e  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-4.c
! ca40ac5855bba89b51c76586f00c0a95  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-5.c
! cf367f8c7432f956c3a81406e2773466  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-6.c
! c51261c29b27bffe2b4283ad8d3e292d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-7.c
! 0cd21e131523e8b07139b5fda08f5653  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-0.c
! 9fc10f3d16d0e17c06865f0ea53feea4  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-1.c
! be377ec043112fa184db9328eae6d185  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-2.c
! e0e5a3266b51e6d43c08b8c363f3636b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-3.c
! 1fe5685691134a765269cc89b074519d  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-4.c
! e2295278ac21b4af1d1e9fa657876a10  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-5.c
! 1fd780864dd2913b058e9c59ff26c16d  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-6.c
! 1967e9a2128621644ca86d678a901850  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-8.c
! 6c790aeb9c30c900429b71efadd1dcd7  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-9.c
! 176ab62bb5b9cc8bada4e59e6efbccec  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-1.c
! c678ea16284a778006f10965b4b2fc36  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-2.c
! 3eb4a0de5a9f720b71ee831a76b0a0df  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-3.c
! a712898a74c43d495f0059a2997a25ec  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-4.c
! df21f4156da9a09a671ee20a1289476f  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-5.c
! 6056c0767aa85e0ffe90292d4d568ddd  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-6.c
! e6be331d1008dff3f941047cd774c10b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-7.c
! e5b7333dd254ac87f8b618c381510155  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c
! 0cd058cfa6adc7cc9589e2753cf4ef5b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c
! 88c9ffd9498b55a43decb7b09de38ba0  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c
! afdd46e8e502b1f8bd7390178f5e7c89  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-3.c
! ec617288951b152806872ac6c81ad6fc  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-4.c
! c12d02d5899cceef03f09b0e3079e6b5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c
! f2b37fafbc7067220db48f7fd313d19a  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c
! 3c6be197a6a09a13a2218484408a1c9e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c
! 0622dcf861d3be41d4390baeebb00bc9  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-3.c
! 2e52d694660b317eeafb221343985be9  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-4.c
! 29ae910fb16fde011191cee7d11df3ae  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-0.c
! 7ea328c5b336c749442df2fc685b9c36  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-1.c
! a9ca7b6ba76d820163d18afa67843962  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-10.c
! af62a67bd88575f2e7218222eff4048c  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-11.c
! e2c7a524688d50fa781942399e330b81  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-12.c
! 7423dff1e2bc5b8070647c89a2ebb969  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-13.c
! d6314c001eed10a52b27a5d07ad621a4  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-2.c
! 5efc1ed3858e67d489b16df57d5f9e30  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-3.c
! dc8dbc1fd3e385f0a78cc6134a28b402  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-4.c
! 04309940e60ac82e53a2bac58f6cee25  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-5.c
! 3eb10064ad2b0fed482fdb9769df6bd1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-6.c
! f3c3f6f47481e6b95b7b8d98ce1f75fc  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-7.c
! 3cf1c5f86dbd8b7a2b72faf25da03bd0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-8.c
! 21d42927a5e17d462c71b696de2932ac  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-9.c
! 19e4d096b00f158199e69ed5b0d768f1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-0.c
! eb4f04870adbf7834b47bc20182e2967  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-1.c
! 1bcb21078789fb414c83ebf57d41c0ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-2.c
! 514bfbd08525fc891b2d42b76b3f506e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-3.c
! f05d12d42a956506524ab548df0a6380  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-4.c
! c9dd3a01d9f5b5080cbd2dcc6f3b418f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-5.c
! 9e774153886b0753bf11027fe93df40b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-6.c
! 47dc8fac723f39e748d4b026e2ab92e7  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-7.c
! 4e871073c4a2edef8b62ab7dffbd50f0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-0.c
! daab0602b3e17b2f9fa99b54ebb1e416  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-1.c
! dc6e179710bfbeda66821246c95d5f64  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-2.c
! 722917c06c8514be3666944b9d70baff  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-3.c
! 34138fd89c9ac3c9c499a23ef0a6009b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-4.c
! 4299634b28b84eaeec26b6d31a28f59f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-5.c
! 16aad06f2c4a6c7336c6e420db123fcd  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-6.c
! c408752ed9a693c076d389d6feca1197  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-7.c
! 9fbce7689d835629ebbb9a0b877dee5e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-0.c
! 6a1ac797b220d7dcdce99d03143d5958  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-1.c
! 1baed1873702ad1910f5430204526418  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-10.c
! 8c9982b7136d47ab1a1c7e9293f950a7  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-11.c
! 53ff6398d72fd3406ba65f68b421e4ee  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-12.c
! fe3ef022c507c1e5946b8c17a397ff58  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-13.c
! 6adc9f0139fa09e1b3a2a24ff14dcb99  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-2.c
! 452ded53c3b04f4e3be940cf57c78e71  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-3.c
! e735fcab6e5fe4b25e235274950c7c3b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-4.c
! 56be890561731bb2c6fe9287c1ff6409  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-5.c
! 1d19529edb6250d4e31fdaab7d5fcad8  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-6.c
! 3d88609ac970f98ac78366c039e5395b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-7.c
! 246664ba2acbd941e59f406a5654efee  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-8.c
! ae2d53556180ebb0cef859d436d3ea83  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-9.c
! fafdb249a2d13ca1c107dc3eab2a713f  gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp
! a20deed9cc3b35afc340beb0f6c5b7fb  gcc/testsuite/gcc.target/powerpc/vsx-13.c
! ba5f1c2162020a689b140c2075672a85  gcc/testsuite/gcc.target/powerpc/vsx-7.c
! 5f34af9574e1f9e461dd68cebd5a6533  gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c
  746a6949d77db46dfd9f2e1e8fec69ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c
  ee3ef7928ea6e74901f53131d408b023  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c
  9d682d5a5fd031d3e41611dbc8838f10  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c
*************** ac19be27b979d134fa38e21eff9da1d5  gcc/te
*** 82067,82160 ****
  5d3014e34a036f0024487d6be5274ab0  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c
  ef6577fd84945078b4cef14e99d50716  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c
  eb41712c0a85d75f7ad259f45c035835  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c
! cbf9ec86896ad4451f5e46a21d1e2f7e  gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c
  d128b18a20f2a55978e519508f48f1ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c
  462d58bd5e0209dd5d6550bfae0c2311  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c
  6481e7c45c6c95a23feaca3286bf3c1d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c
  42b7bc847179c4ef1e6e7142bb27bf11  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c
! 982402d34707bf0a3d8481fb104d8e69  gcc/testsuite/gcc.target/powerpc/vsx-builtin-3.c
! cdde8569ebb2ca104f942dd183c12fa2  gcc/testsuite/gcc.target/powerpc/vsx-builtin-4.c
! 9bacca313420b00c643d89ba549c4c57  gcc/testsuite/gcc.target/powerpc/vsx-builtin-5.c
! 34d5d7bd0a57589cc1249d19cac92fbf  gcc/testsuite/gcc.target/powerpc/vsx-builtin-6.c
! b85a4370874d0558ca845f7c6e5f0a6d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-7.c
! 6c165a9a07d4fa8f16289c23ae6a58fd  gcc/testsuite/gcc.target/powerpc/vsx-builtin-8.c
  33633751eb0bfabbb2951a0070770508  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c
  2e9c4b2355be46611bfe42e4a9f8d1f3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
  1e35ead3525b068deff65ea3783111ee  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
  2d6ebc881e5a0f8f968a2999b0706911  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
! b9a24fab58700393f8c54e6f54d64805  gcc/testsuite/gcc.target/powerpc/vsx-builtin-msum.c
! 4d6dbd4335898e06bfb3368b9da0f54b  gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c
! b190b124ff5594ff601a895fbc280fa9  gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c
! 2d0944e9417291ffc4e99e9bf3dff64c  gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c
! d11f3eb241cd352682e1cdb6e08db001  gcc/testsuite/gcc.target/powerpc/vsx-extract-4.c
! d730adea9a1befc2b563853af6890b7c  gcc/testsuite/gcc.target/powerpc/vsx-extract-5.c
! d7469557e85d85a69ef07fd54698e9ab  gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c
! 41e7ca8976b463f66edc46b546b64718  gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c
! b540a9d400f1cfa3079702b726dafdd4  gcc/testsuite/gcc.target/powerpc/vsx-float0.c
! 1a896e87bc352c3ee42a7806b830bb88  gcc/testsuite/gcc.target/powerpc/vsx-himode.c
! fc2913a90b78e173f412b5e4adbc7520  gcc/testsuite/gcc.target/powerpc/vsx-himode2.c
! b7bbe276ff3964308c55ad8518405a19  gcc/testsuite/gcc.target/powerpc/vsx-himode3.c
  13fa16e1cab2f774aa32ca198815a51d  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-char.c
  2d0f31a1f78ac44542808e61ff9538b5  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-int.c
  69a42ea4d784cbbc9f09885bbe23ecbb  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-longlong.c
  2433fb788bd5615867192fdd254f8b82  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-short.c
! b1687eae08b09f4e44f0141b3d00f838  gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
! 10a1eb9d3a2603409607c85bd3bafc25  gcc/testsuite/gcc.target/powerpc/vsx-qimode.c
! 178891c2e7972da4c325c999102dc14a  gcc/testsuite/gcc.target/powerpc/vsx-qimode2.c
! 876ef34a9058f081ba2703df192f5c4c  gcc/testsuite/gcc.target/powerpc/vsx-qimode3.c
! 6b4b08a1cd6bbec8a1a274fbfa94daa6  gcc/testsuite/gcc.target/powerpc/vsx-sfminmax.c
! 8870aad41b07b900fc6700223b48035f  gcc/testsuite/gcc.target/powerpc/vsx-simode.c
! aacc08cd912165ef4b2cc0915e378888  gcc/testsuite/gcc.target/powerpc/vsx-simode2.c
! 97baef922341806f0b84928ad204d953  gcc/testsuite/gcc.target/powerpc/vsx-simode3.c
  c75487042d6fbca84e1dba3b5e8f92d0  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-char.c
  0e29ef45d3fe2b25f87c199b6cae9aea  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-int.c
  f9d9f0d7d97798cc627e28956304605e  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-longlong.c
  d621f7ff07170c2eaeac5f10543455f6  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-short.c
! 557f5ca692b399b3af7633e6cb4ea6bb  gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c
! 103a5ce66937ef51aafdab20399edfa5  gcc/testsuite/gcc.target/powerpc/vsx-vector-2.c
! 6d2ba2b96d639efe3d39ed37123938f9  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
! 1344016e05ee9e70c20e55610ab6587f  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
! 3e82ab5431559b909d22a22327671450  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
  370f5d2c8ea50aeaf30b20580d17b366  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op-run.c
! 1b188b0aaec22aebfeb593e0d512d832  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.c
  05d5259d03161f9805affec309d40d43  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.h
  0b646f9ba667014abe08f021701fdf7d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop-run.c
! 493442e167c1d88e5c00603cd0350def  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.c
  b60f0b61b8811cdc466219d7eb583903  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.h
  0ed15e0d7c7494b95931b823c7d3b06d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op-run.c
! 157a3086a7b74e45548c8b2d4c702fae  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.c
  b7a1a3fc4b4d3106b18fbdc2296ed82e  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.h
  a82b7fa4f47d8919156e69efbf03f86a  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op-run.c
! 9b121a1c633677023e4a6a6e30766e78  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.c
  10d691bbc659ca6e2e026990e86cb1c6  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.h
  782ea0eeefb030ae1f87ee153f8c6ae3  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all-run.c
! b6900f08093f6e8006fe1364b211ff4b  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.c
  eac1daf20200582d78f7b10b7024f1e1  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.h
  4c3320c6acf9519dcdcf650441ce4ccc  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-run.c
! d4ffaed09552423ead8859494c462c3b  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.c
  a8776213e94c56a3260e8eeeb1d3a2ff  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.h
! 3ebe8f0d460649b370313955c9827479  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  ebd3e2644f3e43135e2172b26fafd1bf  gcc/testsuite/gcc.target/powerpc/vsx-vector-abss.c
! 35d7bcc6cf69574c463501a1e76e510d  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
! 84cfc07d80810cb3573b9b1f672ac915  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
! f594dbaf22d3e98eb44318a87d87b445  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-3.c
! dfed3e0b27e36cef4c1b5ca379a587cd  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
! 90b06f6dd3084d0a0463758c56860af8  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-5.c
! 66401779cf7819a1c89fe27214fee960  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
! 83dfe066840d622625d47fb5a0b0a7e6  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
! 909fbf2c73af98a99b3970443e100b03  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-8.c
  c64a5cc2ce1d0b7ac9d881b4585a9313  gcc/testsuite/gcc.target/powerpc/vsx_mask-count-runnable.c
  37a4787409404cc5944ae67ed64e5513  gcc/testsuite/gcc.target/powerpc/vsx_mask-expand-runnable.c
  829a2621c1495feaccfe06f5b735d1db  gcc/testsuite/gcc.target/powerpc/vsx_mask-extract-runnable.c
  dcf5d72ed56025e6bfc826f9a41f27c1  gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c
! 4f867b076b9d9f0fcb7b0a6262d5be8b  gcc/testsuite/gcc.target/powerpc/vsxcopy.c
! a41824c2d631022112abc4b748d87126  gcc/testsuite/gcc.target/powerpc/warn-1.c
! d2a696110957009abb60358c583ae15b  gcc/testsuite/gcc.target/powerpc/warn-2.c
  f221be3b8f1eae9fc5bf2ead3376ca38  gcc/testsuite/gcc.target/powerpc/warn-lvsl-lvsr.c
  a2ac91e17cb9dea1db858f7f03eecc07  gcc/testsuite/gcc.target/powerpc/xxgenpc-runnable.c
  4085caae38d94c3ee9344e9611ff744a  gcc/testsuite/gcc.target/pru/abi-arg-struct.c
  35e98e4e14285e40404161f7c30e0cd5  gcc/testsuite/gcc.target/pru/ashiftdi-1.c
! 6656ae83d6a1aa9ba23e7ddd98bd7663  gcc/testsuite/gcc.target/pru/ashiftrt.c
  cb75fd223ff9808b0c5ab0d3b0dd4620  gcc/testsuite/gcc.target/pru/bitop-di.c
  eb37da7b7a1c2dd2f37facf076700919  gcc/testsuite/gcc.target/pru/builtins-1.c
  f68fafa197d4e3c5306c9e60f6a73cbf  gcc/testsuite/gcc.target/pru/builtins-error.c
--- 87078,87171 ----
  5d3014e34a036f0024487d6be5274ab0  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c
  ef6577fd84945078b4cef14e99d50716  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c
  eb41712c0a85d75f7ad259f45c035835  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c
! 094b4eb4c9922b450a96c5bc8868bae2  gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c
  d128b18a20f2a55978e519508f48f1ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c
  462d58bd5e0209dd5d6550bfae0c2311  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c
  6481e7c45c6c95a23feaca3286bf3c1d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c
  42b7bc847179c4ef1e6e7142bb27bf11  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c
! 919db80b05495da2cb616b8734be4563  gcc/testsuite/gcc.target/powerpc/vsx-builtin-3.c
! db5d1e3c602d7352acfe4e2bd42aa314  gcc/testsuite/gcc.target/powerpc/vsx-builtin-4.c
! 0dc1b977f9f3965f6a1537554d57ebdc  gcc/testsuite/gcc.target/powerpc/vsx-builtin-5.c
! 69b4e6af3daccab6666b3b17e26175fb  gcc/testsuite/gcc.target/powerpc/vsx-builtin-6.c
! cb404ead9c4f91da9ac4ca280474d7dd  gcc/testsuite/gcc.target/powerpc/vsx-builtin-7.c
! 2c3abdb62eb2a43590aa3c4938aa05c6  gcc/testsuite/gcc.target/powerpc/vsx-builtin-8.c
  33633751eb0bfabbb2951a0070770508  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c
  2e9c4b2355be46611bfe42e4a9f8d1f3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
  1e35ead3525b068deff65ea3783111ee  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
  2d6ebc881e5a0f8f968a2999b0706911  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
! 5481a1a0649ac1b773b905355272b0ab  gcc/testsuite/gcc.target/powerpc/vsx-builtin-msum.c
! 9148ad2fb9a584699cdb84d1bceceb10  gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c
! e8ac929625f3e88ce1a05e9b911d6bf2  gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c
! 1ab4b684762af8dd91e00055083c02ba  gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c
! d01cbbfc3cd2309267f84fc6c109bf73  gcc/testsuite/gcc.target/powerpc/vsx-extract-4.c
! 96de7be7f0f6c4f36ff34259a8a7efd0  gcc/testsuite/gcc.target/powerpc/vsx-extract-5.c
! 0907c6e0445b436622d11bf5859561c6  gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c
! 10371dfd8c9a3caf80ad3abbfeebe307  gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c
! 577a2516c7d75002bcc91d93ad6d2b5d  gcc/testsuite/gcc.target/powerpc/vsx-float0.c
! cd73e656035cb3c6a7ef4548dcac8cc7  gcc/testsuite/gcc.target/powerpc/vsx-himode.c
! 15afa23e0348d26bbafd781c7cd0527a  gcc/testsuite/gcc.target/powerpc/vsx-himode2.c
! ddcb21535e51f96ddb91b01050ce5d29  gcc/testsuite/gcc.target/powerpc/vsx-himode3.c
  13fa16e1cab2f774aa32ca198815a51d  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-char.c
  2d0f31a1f78ac44542808e61ff9538b5  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-int.c
  69a42ea4d784cbbc9f09885bbe23ecbb  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-longlong.c
  2433fb788bd5615867192fdd254f8b82  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-short.c
! 0762699197ff10a2ca672d73ae3745fb  gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
! 590bf7a9f6697e030ad7323dd248389d  gcc/testsuite/gcc.target/powerpc/vsx-qimode.c
! 98c6610bdd8f83ab4621c354b88f31da  gcc/testsuite/gcc.target/powerpc/vsx-qimode2.c
! a208477ea9469225560996377997d3bc  gcc/testsuite/gcc.target/powerpc/vsx-qimode3.c
! fd6b8996222681c0e9bfebd3d5a8509b  gcc/testsuite/gcc.target/powerpc/vsx-sfminmax.c
! 5bc97ee7f1c0d0d1cc5a7d9ee3ed4451  gcc/testsuite/gcc.target/powerpc/vsx-simode.c
! 55b0ec96b96c7da6590f798d613c6d8b  gcc/testsuite/gcc.target/powerpc/vsx-simode2.c
! 55891f5ee0a77d8c430532986af0db6d  gcc/testsuite/gcc.target/powerpc/vsx-simode3.c
  c75487042d6fbca84e1dba3b5e8f92d0  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-char.c
  0e29ef45d3fe2b25f87c199b6cae9aea  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-int.c
  f9d9f0d7d97798cc627e28956304605e  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-longlong.c
  d621f7ff07170c2eaeac5f10543455f6  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-short.c
! b77bd8a5e7f751adc1d87356d0e9ae90  gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c
! edc504cb604b88f40f1956be2783986b  gcc/testsuite/gcc.target/powerpc/vsx-vector-2.c
! 9ba9a391f0c69b637bdc47bdc80ad8d6  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
! ce9f5f1ce79b15ccacd4e364ac5e863c  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
! d8375eb1ea976763ca9638b5d7d7a89b  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
  370f5d2c8ea50aeaf30b20580d17b366  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op-run.c
! a4ffb1d924ea0e92dc750a5ab958b920  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.c
  05d5259d03161f9805affec309d40d43  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.h
  0b646f9ba667014abe08f021701fdf7d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop-run.c
! d09c691f1459ecaa3127ba6110f631d9  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.c
  b60f0b61b8811cdc466219d7eb583903  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.h
  0ed15e0d7c7494b95931b823c7d3b06d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op-run.c
! 93cddb50610a462e181c888741814278  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.c
  b7a1a3fc4b4d3106b18fbdc2296ed82e  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.h
  a82b7fa4f47d8919156e69efbf03f86a  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op-run.c
! f45ec6f232fd7a2605cb24d9b5b9df08  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.c
  10d691bbc659ca6e2e026990e86cb1c6  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.h
  782ea0eeefb030ae1f87ee153f8c6ae3  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all-run.c
! 0db6cd15840b0d0bcb531d86df07ff23  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.c
  eac1daf20200582d78f7b10b7024f1e1  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.h
  4c3320c6acf9519dcdcf650441ce4ccc  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-run.c
! 9100fd17fb637c0dd31f69b16c95bcaa  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.c
  a8776213e94c56a3260e8eeeb1d3a2ff  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.h
! 11f83747002569efd40f99981b9a1b1a  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  ebd3e2644f3e43135e2172b26fafd1bf  gcc/testsuite/gcc.target/powerpc/vsx-vector-abss.c
! dc9da1f79e927fa1a49909e33b90ae6b  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
! 122e02c07d89332f323fddcbe1f503b1  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
! cf187b01ce2e134767bc12f6b4d4a95f  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-3.c
! 61da0b5ae075373791e0d292c9edcf6e  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
! e57ba50788c16217b02f9a3c21fb80e2  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-5.c
! f7aa4b90ea888a70f773f57660df2fe6  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
! 21307ddcfb204442ffcf0b5c5fd50258  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
! f0daa9a34336334438adfc8ad1d8f05d  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-8.c
  c64a5cc2ce1d0b7ac9d881b4585a9313  gcc/testsuite/gcc.target/powerpc/vsx_mask-count-runnable.c
  37a4787409404cc5944ae67ed64e5513  gcc/testsuite/gcc.target/powerpc/vsx_mask-expand-runnable.c
  829a2621c1495feaccfe06f5b735d1db  gcc/testsuite/gcc.target/powerpc/vsx_mask-extract-runnable.c
  dcf5d72ed56025e6bfc826f9a41f27c1  gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c
! f914cf77183b0af3992880f6b00212a9  gcc/testsuite/gcc.target/powerpc/vsxcopy.c
! 4384ed1122d0546f6398ebbf2ebab0e9  gcc/testsuite/gcc.target/powerpc/warn-2.c
  f221be3b8f1eae9fc5bf2ead3376ca38  gcc/testsuite/gcc.target/powerpc/warn-lvsl-lvsr.c
  a2ac91e17cb9dea1db858f7f03eecc07  gcc/testsuite/gcc.target/powerpc/xxgenpc-runnable.c
  4085caae38d94c3ee9344e9611ff744a  gcc/testsuite/gcc.target/pru/abi-arg-struct.c
  35e98e4e14285e40404161f7c30e0cd5  gcc/testsuite/gcc.target/pru/ashiftdi-1.c
! f57039ee6ae06e7467df50ea432d2198  gcc/testsuite/gcc.target/pru/ashiftrt.c
! 90da40c927053c5b2b8fd101eb772431  gcc/testsuite/gcc.target/pru/asm-op-modifier.c
  cb75fd223ff9808b0c5ab0d3b0dd4620  gcc/testsuite/gcc.target/pru/bitop-di.c
  eb37da7b7a1c2dd2f37facf076700919  gcc/testsuite/gcc.target/pru/builtins-1.c
  f68fafa197d4e3c5306c9e60f6a73cbf  gcc/testsuite/gcc.target/pru/builtins-error.c
*************** b1971e5cba3a4b0c2b8ab488ddebf145  gcc/te
*** 82162,82168 ****
--- 87173,87186 ----
  148e56e25c8663966fdd06ef357ee484  gcc/testsuite/gcc.target/pru/clobber-sp.c
  0d357d6aa637158b10d5aa7379e3250d  gcc/testsuite/gcc.target/pru/clz-hi-2.c
  2fb151aee7050d3602e14f481e142e43  gcc/testsuite/gcc.target/pru/clz-hi.c
+ 054fd8daaadcf6dd447bfc5f0587a4f9  gcc/testsuite/gcc.target/pru/extzv-1.c
+ bb25b1daa12ae572d907a92dbdb2bda6  gcc/testsuite/gcc.target/pru/extzv-2.c
+ a99e4c55e1952a98c9aa6bd5368de427  gcc/testsuite/gcc.target/pru/extzv-3.c
  68ffe5637b2fd7262c58183a6492376f  gcc/testsuite/gcc.target/pru/halt.c
+ 73aa7251fa684c158da791786d062ea2  gcc/testsuite/gcc.target/pru/insv-1.c
+ 9447aba33a5116337c3e27d85d4483e6  gcc/testsuite/gcc.target/pru/insv-2.c
+ 9a29fcbc0f8ba5ac26b8e06cfa5269fb  gcc/testsuite/gcc.target/pru/insv-3.c
+ 0d86e828afb00357f37185341e62bb69  gcc/testsuite/gcc.target/pru/insv-4.c
  f219104eff0da94d15f6e5b08772e732  gcc/testsuite/gcc.target/pru/lmbd.c
  4075b8039f1970fec14ed80c59f32df6  gcc/testsuite/gcc.target/pru/loop-asm.c
  7a3704d0e643537a3629b3252e74d88a  gcc/testsuite/gcc.target/pru/loop-dowhile.c
*************** b76541e78d6c0a4a83f038a91722260c  gcc/te
*** 82187,82193 ****
--- 87205,87217 ----
  1540ee6c974fb4e808afaaef37a52835  gcc/testsuite/gcc.target/pru/mabi-ti-5.c
  76eb68b6c145a36a9dda4bdc30703da6  gcc/testsuite/gcc.target/pru/mabi-ti-6.c
  a5d8400fbc1e042d4b59d52b3b6e800b  gcc/testsuite/gcc.target/pru/mabi-ti-7.c
+ 42d8d99a0e73a3a6d3751b7543369b21  gcc/testsuite/gcc.target/pru/minrt-1.c
+ 87e159b16768d67c3f3c34b2ba3b8354  gcc/testsuite/gcc.target/pru/minrt-2.c
+ 3c447d71c9dbea654422b220051c773d  gcc/testsuite/gcc.target/pru/minrt-3.c
+ 939b4e76b12f46abc316daa75a1e3d96  gcc/testsuite/gcc.target/pru/mov-0.c
  b1afab226bd7930d036687abb97385f0  gcc/testsuite/gcc.target/pru/mov-m1.c
+ cf9db000950cefeafc2f12328499ec90  gcc/testsuite/gcc.target/pru/noreturn-prologue-1.c
+ d15f267f4021dc301f939d57b5ceb29b  gcc/testsuite/gcc.target/pru/noreturn-prologue-2.c
  42f66870bc5a7dedea2cd9fefcd1ece9  gcc/testsuite/gcc.target/pru/pr106562-1.c
  f05ca3bbb68370bd1a7682eaa1ccc256  gcc/testsuite/gcc.target/pru/pr106562-10.c
  aaca8b31815d0a71c4258ccbb1f704cf  gcc/testsuite/gcc.target/pru/pr106562-11.c
*************** b8b52424b352c9c8f70592d6f03b5a86  gcc/te
*** 82203,82211 ****
  851451c629fe33409b83f202bfc1068e  gcc/testsuite/gcc.target/pru/pr106564-2.c
  a919202ce244d49003df5ad24d6682bd  gcc/testsuite/gcc.target/pru/pr106564-3.c
  cf8d82ddb80b76405af0214285246746  gcc/testsuite/gcc.target/pru/pr106564-4.c
! d754f6db5a9f4cb648931c1a300fe5e6  gcc/testsuite/gcc.target/pru/pr64366.c
  aa63cbae8ab220e484f3dfce0053edb2  gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
! 44ed46c7babcae2cd2177118945e2ea0  gcc/testsuite/gcc.target/pru/pru.exp
  7a1298d80f26753aedd3f2268299e382  gcc/testsuite/gcc.target/pru/pru_irq_map.c
  7b1dfd818b26fc3abda3150a2a5dccb4  gcc/testsuite/gcc.target/pru/qbbc-1.c
  d022a63c4f1bad92f86058d5cc8188d1  gcc/testsuite/gcc.target/pru/qbbc-2.c
--- 87227,87235 ----
  851451c629fe33409b83f202bfc1068e  gcc/testsuite/gcc.target/pru/pr106564-2.c
  a919202ce244d49003df5ad24d6682bd  gcc/testsuite/gcc.target/pru/pr106564-3.c
  cf8d82ddb80b76405af0214285246746  gcc/testsuite/gcc.target/pru/pr106564-4.c
! 95d60ee7241a44ee286f73a59e590913  gcc/testsuite/gcc.target/pru/pr64366.c
  aa63cbae8ab220e484f3dfce0053edb2  gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
! 48d111b0bd9bb535a363448cda4d7313  gcc/testsuite/gcc.target/pru/pru.exp
  7a1298d80f26753aedd3f2268299e382  gcc/testsuite/gcc.target/pru/pru_irq_map.c
  7b1dfd818b26fc3abda3150a2a5dccb4  gcc/testsuite/gcc.target/pru/qbbc-1.c
  d022a63c4f1bad92f86058d5cc8188d1  gcc/testsuite/gcc.target/pru/qbbc-2.c
*************** ee9ea9c0720331a48787d3ce2768f7e9  gcc/te
*** 82223,82233 ****
--- 87247,87260 ----
  5c9e6f37d63b8cb8c615932ac81973a6  gcc/testsuite/gcc.target/pru/regio-qi.c
  dea082ffe588248c03ec3202db0ad6b4  gcc/testsuite/gcc.target/pru/regio.c
  e4648ec15f2bbd0d4d9b5bb8d05ba657  gcc/testsuite/gcc.target/pru/regio.h
+ 8563908f3144499073c9f9bac49c1afd  gcc/testsuite/gcc.target/pru/section-anchors-1.c
+ 2682ff10a64726fe262e9b1cf605b570  gcc/testsuite/gcc.target/pru/section-anchors-2.c
  1d79eec541c06253e1fdbcb6c40a51d9  gcc/testsuite/gcc.target/pru/setbit.c
  9b0eaea8eef2cef4829077b25cf651c8  gcc/testsuite/gcc.target/pru/zero_extend-and-hisi.c
  44d7b6cb38db4a3d2a89775ff4afc9e5  gcc/testsuite/gcc.target/pru/zero_extend-and-qihi.c
  44d7b6cb38db4a3d2a89775ff4afc9e5  gcc/testsuite/gcc.target/pru/zero_extend-and-qisi.c
  2225a6f7684a41fdc3c9fedebe226c82  gcc/testsuite/gcc.target/pru/zero_extend-hisi.c
+ 97ea4846b40ab8d3d0249fec1bbece1e  gcc/testsuite/gcc.target/pru/zero_extend-op0.c
  57debb1068324d1b650c42700abacf74  gcc/testsuite/gcc.target/pru/zero_extend-qihi.c
  09a429ba90db19830e7f9b51abc8f22f  gcc/testsuite/gcc.target/pru/zero_extend-qisi.c
  c67a7c76bebe61ac560f755811bcdc59  gcc/testsuite/gcc.target/riscv/_Float16-nanboxing.c
*************** cd709a10461254ddf2db66c3d68f0ea1  gcc/te
*** 82250,82377 ****
  7a1f132554dc97174e57d3f6e86f1649  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-3.c
  2fd1f87bd278901534285a57812f87d2  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-4.c
  3ff3e986a97f4269e8ce353c4d141360  gcc/testsuite/gcc.target/riscv/_Float16.c
! bba405b002d0f85badf490d1a62c2d6c  gcc/testsuite/gcc.target/riscv/adddibeq.c
! deeb1a41f4702831cc9221544b3e612e  gcc/testsuite/gcc.target/riscv/adddibfeq.c
! 433c530e060084563d9a666fba4e1622  gcc/testsuite/gcc.target/riscv/adddibfge.c
! 1d5dd0ff0cd5ac853355c4ca2b54bc34  gcc/testsuite/gcc.target/riscv/adddibfgt.c
! d3a30f1a694ebed5854d570ffe88ddba  gcc/testsuite/gcc.target/riscv/adddibfle.c
! d211287ebbff854386503e76f2f44b74  gcc/testsuite/gcc.target/riscv/adddibflt.c
! f265a95e85ef418690ca5fd27f44b773  gcc/testsuite/gcc.target/riscv/adddibfne.c
! 9e4d43edeb73123095b3596619d6cea2  gcc/testsuite/gcc.target/riscv/adddibge.c
! 08b759c693feefe86029352d538c9619  gcc/testsuite/gcc.target/riscv/adddibgeu.c
! ac13617f75ac43b9ba6accd2e01e07a8  gcc/testsuite/gcc.target/riscv/adddibgt.c
! 2b020905704c7958828f9b9afb94772a  gcc/testsuite/gcc.target/riscv/adddibgtu.c
! 0d52cbcc21191a8bb83f3a4dfc888a44  gcc/testsuite/gcc.target/riscv/adddible.c
! 9d8affa68a82bf5e8c7c14c936674688  gcc/testsuite/gcc.target/riscv/adddibleu.c
! 41874aa0602c9c994aa443ccc6f1a727  gcc/testsuite/gcc.target/riscv/adddiblt.c
! 78966ca8cba8b7f449c532a445009f04  gcc/testsuite/gcc.target/riscv/adddibltu.c
! f9f9b5baf3887ee810898b02eec7f9bf  gcc/testsuite/gcc.target/riscv/adddibne.c
! e491558085c6babb13213c96aa9c1b8c  gcc/testsuite/gcc.target/riscv/adddieq.c
! 15d147db40fcee66417a08e3248ce1ea  gcc/testsuite/gcc.target/riscv/adddifeq.c
! e719eff68da7dfb4fd959d5c7cbc13cf  gcc/testsuite/gcc.target/riscv/adddifge.c
! 0eebe2fa55ebf1d793ee5b89a1c6d8ac  gcc/testsuite/gcc.target/riscv/adddifgt.c
! 84ec137df88404abd6bbad8463573d0b  gcc/testsuite/gcc.target/riscv/adddifle.c
! c97fb4938d4ba3791a9b20f0466a1472  gcc/testsuite/gcc.target/riscv/adddiflt.c
! edd2a06b0202ab51ecb2245fcec62a3e  gcc/testsuite/gcc.target/riscv/adddifne.c
! 72ad25d975b46e496084227dd8ed4cf7  gcc/testsuite/gcc.target/riscv/adddige.c
! 38a3033166ba1e9922c97bee59b8cd6c  gcc/testsuite/gcc.target/riscv/adddigeu.c
! 194526b91f04fcfeb21ad8e821cf1dfb  gcc/testsuite/gcc.target/riscv/adddigt.c
! 3f2f7a5b35f86e0c5dd30d6e7940d233  gcc/testsuite/gcc.target/riscv/adddigtu.c
! 19db7bf9cace42541f48ac432ba2e38c  gcc/testsuite/gcc.target/riscv/adddile.c
! 121fba6794a96d61da627be8e29af71e  gcc/testsuite/gcc.target/riscv/adddileu.c
! eaa8a2be49b1fce809050fec049b431c  gcc/testsuite/gcc.target/riscv/adddilt.c
! 50fc5c698f61fe7e11be1e5e3f4bcc1b  gcc/testsuite/gcc.target/riscv/adddiltu.c
! dc75679650c0ae9036ffdbc73ab7ea80  gcc/testsuite/gcc.target/riscv/adddine.c
! e47a2c6425b52fdf9412cb7805c524a0  gcc/testsuite/gcc.target/riscv/addsibeq.c
! 1eeeaa0296f1dcbe3c4c3ee747d52db2  gcc/testsuite/gcc.target/riscv/addsibfeq.c
! f2de41a0c568819863cdb7e683292967  gcc/testsuite/gcc.target/riscv/addsibfge.c
! 0c1d107dd0b858deed3a029196f73462  gcc/testsuite/gcc.target/riscv/addsibfgt.c
! 75610f81f555076b0689990c65d2e4f4  gcc/testsuite/gcc.target/riscv/addsibfle.c
! bdfc8d8bb01223adda8747ea09a01d56  gcc/testsuite/gcc.target/riscv/addsibflt.c
! f2c81b7f0a70f3dbbe266b34a3531fef  gcc/testsuite/gcc.target/riscv/addsibfne.c
! 0bc3d147c9ccec17a2175d4ec42ac825  gcc/testsuite/gcc.target/riscv/addsibge.c
! 540a6869349c83ebd2efa2d8ee700996  gcc/testsuite/gcc.target/riscv/addsibgeu.c
! 1d6e2feac62edb2438ac6e78130f3c5e  gcc/testsuite/gcc.target/riscv/addsibgt.c
! b60ac131a1a13bde53f0d9a48558c20e  gcc/testsuite/gcc.target/riscv/addsibgtu.c
! c5c387338f54b708d1d40a894ac806c2  gcc/testsuite/gcc.target/riscv/addsible.c
! 57ca919286c5f26bec98b1ea4533f053  gcc/testsuite/gcc.target/riscv/addsibleu.c
! c7d96867c3c1e4e2e0e43d5efb0f055f  gcc/testsuite/gcc.target/riscv/addsiblt.c
! 1fb2f416efa44c5e18d278529e3db60e  gcc/testsuite/gcc.target/riscv/addsibltu.c
! 33a4fcf4bff86858e252e006ef1a1c8d  gcc/testsuite/gcc.target/riscv/addsibne.c
! e0c5f64ae3924a4a82575d493604cba0  gcc/testsuite/gcc.target/riscv/addsieq.c
! 57cd6a3d6d9a7f548dddab50c23ab384  gcc/testsuite/gcc.target/riscv/addsifeq.c
! ca811863940564d675ca1b328f9c2654  gcc/testsuite/gcc.target/riscv/addsifge.c
! 1dd40cb5f49c0701b88ad300be9a0c4d  gcc/testsuite/gcc.target/riscv/addsifgt.c
! a4ee820b5d3f412dc81553fb79af837e  gcc/testsuite/gcc.target/riscv/addsifle.c
! 3a67200ce6d7006139677caa850317d9  gcc/testsuite/gcc.target/riscv/addsiflt.c
! 01897bb902a5a4f90a7d4c28205bcb1c  gcc/testsuite/gcc.target/riscv/addsifne.c
! b0e5209d5f999b06ad83b7f8c0e37ce4  gcc/testsuite/gcc.target/riscv/addsige.c
! fe2fb4bb520fe6d7ecee03b0c15c8aba  gcc/testsuite/gcc.target/riscv/addsigeu.c
! 7ab68bcb6185b5a45097ecc968e591c1  gcc/testsuite/gcc.target/riscv/addsigt.c
! b6f92528f88d14623d75ec6e78ec600b  gcc/testsuite/gcc.target/riscv/addsigtu.c
! 1bb3878cb57d7e1cf588c7a5482ac612  gcc/testsuite/gcc.target/riscv/addsile.c
! 8070dded3e411c19f49cdee0d989f3d1  gcc/testsuite/gcc.target/riscv/addsileu.c
! 00faa7503653b71c17df01183b341cc1  gcc/testsuite/gcc.target/riscv/addsilt.c
! 76a940a3d5307bc189eba251b04646a4  gcc/testsuite/gcc.target/riscv/addsiltu.c
! 86a2ca798a76139f89cb8f5e596bbf81  gcc/testsuite/gcc.target/riscv/addsine.c
! 6ba4ee1ec2a94e64a06d962b77a06d14  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-1.c
! 894c4c0ec10a0d215dfbef9c5c7cda12  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-2.c
! 9045822b826b974ffa0c84ded43892b3  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-3.c
! dcbfbef9028e71d8c5b436b90211c9be  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-4.c
! 324e1b1abb38bdfd491a0f870f59a5a7  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-5.c
! 90ce379c91745574abd64b03224ccf3f  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-1.c
! 109ff9d7586c3accaa87209d73ce0ac1  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-2.c
! b28527882210276d6749b1d3bf533817  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-3.c
! da1ec5f7592dd3b1d5bf1f612bb81526  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-4.c
! 3eb12593384b4df7d60a1a934fdb73ae  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-5.c
! 7984e0dbd3a39f2000c6bf6760fdd020  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-6.c
! 063086f8f63e722c6c223e2ddd9b5770  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-7.c
! f25d927dce4cde94a5289aad8b6b047a  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-1.c
! 53da7d77a0adaf4f0d1a5d7c4136769a  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-2.c
! 0e86e9ea5504f7a54357083c389e26fe  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-3.c
! 4303c6cf102ec47c1e8aecfc356b6220  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-4.c
! 679dc69db0dd80c41a22f3b30e87e75d  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-5.c
! 126b2edcbd0a7bab16944dc3b8d4df68  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-1.c
! 1f2f0af2d1d1a6c6d8a28068665aa518  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-2.c
! 9bb3c708ebe6b0227625d12d6df74b5e  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-3.c
! b8b11fc19be4c9f16bb6d02570ad339c  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-1.c
! 64ab66e58baf9a9a71d68751d9bf495e  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-2.c
! e34265623dff1b098c30c6811c401145  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-compat-3.c
! a76ab066d9e790858c6acf9e300337cc  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-1.c
! 629c4fa227be92fcf2ca313e3a080330  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-2.c
! 9212ff5b3b1826a78f42f52a7507b89b  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-3.c
! d37061f4d07683a18b49e3aa9aa248bf  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-4.c
! c13f2f63cb426d5ebe6d6b7318562e24  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-5.c
! ae4c51e766095c8b9d5b17af17662810  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-1.c
! 7f6487082580025af7734624cbb2b636  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-2.c
! 1b29383267e3cf212161afcb9d373e88  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-3.c
! ff6f677bf2aaaa2bdf7f8b445e08c3dd  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-4.c
! 3189c792ef03d2ded1b70903feb7fc30  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-5.c
! f5f7181bc9753be9dd489c63d28f3d1e  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-1.c
! 608802edcee884c5bd5c0a7986bed4fd  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-2.c
! a180719aa3b739dfec0e5213aca6ef3a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-3.c
! 23a83b6fd3472a6f0f01fd1c9a353168  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-4.c
! 354cfd79ac7442ea18df7563da5b2659  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-5.c
! 0ff836d24f9790a760478b5b56dce66d  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-6.c
! f99a9c9483e266f0cc3ad13953786b63  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-7.c
! 4f1178bbcdef696a8750f1ad90f8df7c  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-1.c
! c9cee2ed2ccbce0abcb53b6603dd0747  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-2.c
! 9ea99e8634e068ee7e4281e04271eed1  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-3.c
! 621f14bfaeb598a0899ebdde39da07c8  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-4.c
! 1de41097468453345775ee456a16d44a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-5.c
! 90c742ca2b75c522e0eeea093ea59fe9  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-1.c
! 6b3e0bd7dd618c092037bd59ce578f29  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-2.c
! 210e27a93278e10dad3a4a44c5be6270  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-3.c
! 1b57c600efebdd891842bc28a90c60d8  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-1.c
! 801d165452fc7d55d5f28e7981a63497  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-2.c
! a4a9eb30b8a90b50e194f6d66b721e0a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-3.c
! 30ee0532b3ff0ac06ecdfd4fc64e2300  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-1.c
! 2669aea89114aa1b00b4562854f3b92b  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-2.c
! f5dba2ed6610e0d14829c0c8b13ec36d  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-3.c
! 0fa647984504a37608cb9f55b01e3e71  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-4.c
! 7e79003b6d6f5240e60752598f427b71  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-5.c
  f2824bba3f317208bc724728332991c3  gcc/testsuite/gcc.target/riscv/and-extend-1.c
  adc74d0f17f6765898acaf25e4b80da2  gcc/testsuite/gcc.target/riscv/and-extend-2.c
  d0db5e2267389a1185e58b9406371ee4  gcc/testsuite/gcc.target/riscv/arch-1.c
  3b7707b06c4df57de1fbf8812c8df071  gcc/testsuite/gcc.target/riscv/arch-10.c
  ec7f5ab1f99ea69345d1e5ac8e166932  gcc/testsuite/gcc.target/riscv/arch-11.c
--- 87277,87442 ----
  7a1f132554dc97174e57d3f6e86f1649  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-3.c
  2fd1f87bd278901534285a57812f87d2  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-4.c
  3ff3e986a97f4269e8ce353c4d141360  gcc/testsuite/gcc.target/riscv/_Float16.c
! 5728414c152ee60b1244ec815d886d4f  gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
! d93c3e1c3636a89154ff39eafab30b70  gcc/testsuite/gcc.target/riscv/adddibeq.c
! 8d0f5170831bd2bdc95068f618255b3b  gcc/testsuite/gcc.target/riscv/adddibfeq.c
! 249c79a0f1d2f8b4e8a4dd4af89afe8f  gcc/testsuite/gcc.target/riscv/adddibfge.c
! f0d4d72d27bf1ec4c548274b7c37587c  gcc/testsuite/gcc.target/riscv/adddibfgt.c
! 820a8c801c4dc84028b8f283845059df  gcc/testsuite/gcc.target/riscv/adddibfle.c
! dab5127c936034a9a15aaf46f1d4d01b  gcc/testsuite/gcc.target/riscv/adddibflt.c
! 347b6921b6b1485971cb9339279adea3  gcc/testsuite/gcc.target/riscv/adddibfne.c
! 37ab5b43061a3d5d814601a3541bc8fe  gcc/testsuite/gcc.target/riscv/adddibge.c
! 6182a51a9189178e71894382ffe5e24f  gcc/testsuite/gcc.target/riscv/adddibgeu.c
! 674be2cf0aeab0ef5ff2bf90153d2238  gcc/testsuite/gcc.target/riscv/adddibgt.c
! 87426b04f69db96f6b15876bea8be87f  gcc/testsuite/gcc.target/riscv/adddibgtu.c
! 686b6320c57e356d5430d80ed9165de0  gcc/testsuite/gcc.target/riscv/adddible.c
! a64b31ef0ad014061836682f94556069  gcc/testsuite/gcc.target/riscv/adddibleu.c
! 9341c7b2ccf98047ba6f137fa1c0b365  gcc/testsuite/gcc.target/riscv/adddiblt.c
! 0ebcc9b5d7858060a59d144d4245c861  gcc/testsuite/gcc.target/riscv/adddibltu.c
! 281f6987c0092841d4e2c65d8a02a0da  gcc/testsuite/gcc.target/riscv/adddibne.c
! 19d26337d48f6e84dbe57ae2c627e7f2  gcc/testsuite/gcc.target/riscv/adddieq.c
! 1bac68d7d5b2937ef62ac9b44bad3ead  gcc/testsuite/gcc.target/riscv/adddifeq.c
! cb714897a387b4aab5d35d11d4dc43e5  gcc/testsuite/gcc.target/riscv/adddifge.c
! 1b04a29279a5800d80734d2988021682  gcc/testsuite/gcc.target/riscv/adddifgt.c
! d1cc5c61e4d60e763498b76b9a6c12b7  gcc/testsuite/gcc.target/riscv/adddifle.c
! 9ea6c32192d8a6e5bbfa1d5207a12bb9  gcc/testsuite/gcc.target/riscv/adddiflt.c
! 0b338765334496c9320730936fd72685  gcc/testsuite/gcc.target/riscv/adddifne.c
! 4137629ebc1a416660a6412101d883fd  gcc/testsuite/gcc.target/riscv/adddige.c
! 2491f75b598ab794cee9590af911c059  gcc/testsuite/gcc.target/riscv/adddigeu.c
! 095d3700213d1964796f733b05078998  gcc/testsuite/gcc.target/riscv/adddigt.c
! 19e74f822aae9bee70b7448ef099421b  gcc/testsuite/gcc.target/riscv/adddigtu.c
! 5b9daaea8cd1cb666e31ea7cbc103cd7  gcc/testsuite/gcc.target/riscv/adddile.c
! 35fe906cdad7a1211d786163006600d2  gcc/testsuite/gcc.target/riscv/adddileu.c
! 5a394adacc52520c81871181df7baf5d  gcc/testsuite/gcc.target/riscv/adddilt.c
! f0e3622d25c52acc64dd52df6c019e82  gcc/testsuite/gcc.target/riscv/adddiltu.c
! 423a765a3a96b85e771e9dd91ffa8f06  gcc/testsuite/gcc.target/riscv/adddine.c
! 2f7e4d41863604efd73f204bd3f68f06  gcc/testsuite/gcc.target/riscv/addsibeq.c
! 51b3d5b4ed57e17f7b5ffe280d861cca  gcc/testsuite/gcc.target/riscv/addsibfeq.c
! 5cf09cf2cf186b43f2eeab385f0faa07  gcc/testsuite/gcc.target/riscv/addsibfge.c
! 8a479f404b19c164de447eed476a8fda  gcc/testsuite/gcc.target/riscv/addsibfgt.c
! 0f760b00fd4d5b1437218e0a32e38df0  gcc/testsuite/gcc.target/riscv/addsibfle.c
! 52867cdd1598a726b82d3e60fbc550be  gcc/testsuite/gcc.target/riscv/addsibflt.c
! d57864316479b32e49654b96f8470bcd  gcc/testsuite/gcc.target/riscv/addsibfne.c
! d7d27415a7f30aecac65eea8872d4ef4  gcc/testsuite/gcc.target/riscv/addsibge.c
! 2c18c6f08410afd65c1f2fc40228959d  gcc/testsuite/gcc.target/riscv/addsibgeu.c
! 0b7124633afccf4efe0d1b11d510fb3b  gcc/testsuite/gcc.target/riscv/addsibgt.c
! 596c1740340732d1d7a5153177e0aa49  gcc/testsuite/gcc.target/riscv/addsibgtu.c
! 46ebb86ff485c18bb11262f692e16068  gcc/testsuite/gcc.target/riscv/addsible.c
! d28b3e0cd4c8d88dfbd81c0049f4940d  gcc/testsuite/gcc.target/riscv/addsibleu.c
! 0745f2476ccbbc966b0ebd8b5fbf11ce  gcc/testsuite/gcc.target/riscv/addsiblt.c
! 70613b0005dcedb224fe7dbf372effb4  gcc/testsuite/gcc.target/riscv/addsibltu.c
! 7f5f81dedc0258852f700a537d380ce2  gcc/testsuite/gcc.target/riscv/addsibne.c
! bb8377cabf65608deb090aa105ea5ddf  gcc/testsuite/gcc.target/riscv/addsieq.c
! d2e3b9bfb3f83fc8b0dbd792001d4083  gcc/testsuite/gcc.target/riscv/addsifeq.c
! 39f1af6b6b9cad44e8cbd70e807a5ba1  gcc/testsuite/gcc.target/riscv/addsifge.c
! efc19f6299c79394f0903050707a0ec1  gcc/testsuite/gcc.target/riscv/addsifgt.c
! b5973355651f9e7cf8a876a1df5aa274  gcc/testsuite/gcc.target/riscv/addsifle.c
! 9d8054f80726199f39cc3133e886e84e  gcc/testsuite/gcc.target/riscv/addsiflt.c
! 4b93004c4f8b48f8d9f6bdb3c5b25aba  gcc/testsuite/gcc.target/riscv/addsifne.c
! 130e5fd27f3e1a93762c19c4966b469b  gcc/testsuite/gcc.target/riscv/addsige.c
! 2dc8cf4bcff98799ea166a277e984b16  gcc/testsuite/gcc.target/riscv/addsigeu.c
! ca13be10f3064b3d08dec4cc1b903098  gcc/testsuite/gcc.target/riscv/addsigt.c
! f765f533e85caffbe5f7dcf7d12b24d3  gcc/testsuite/gcc.target/riscv/addsigtu.c
! d91564be53c8794fa3671449d6c30996  gcc/testsuite/gcc.target/riscv/addsile.c
! 51f70262a6e62cc6659075bbb1110e68  gcc/testsuite/gcc.target/riscv/addsileu.c
! 25504ec81dd3fb8567e43f5deada1851  gcc/testsuite/gcc.target/riscv/addsilt.c
! 02d7374e9716cf2aa668067302d6a664  gcc/testsuite/gcc.target/riscv/addsiltu.c
! 2573f08aa90200501175230090155ec0  gcc/testsuite/gcc.target/riscv/addsine.c
! 28e8c5a694150961ecd7338eec04fd60  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-fence.c
! 60c4dca054b6fc867b839a4510f4fc3a  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-load-acquire.c
! 2f9af815b2e9779f08bdd5071fbf2842  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-load-relaxed.c
! f1788e44c7d175f42034a6e36fb72908  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-load-seq-cst.c
! 8e357f9be635319fb461c2a417203e56  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-store-compat-seq-cst.c
! 592aa2b1f58d3d08c5e3bbdf10cde510  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-store-relaxed.c
! db60adcfe8fcaf4bb691e07ef5051be5  gcc/testsuite/gcc.target/riscv/amo/a-rvwmo-store-release.c
! 21feaa2ae291a7260b78dcdb8775fe91  gcc/testsuite/gcc.target/riscv/amo/a-ztso-fence.c
! d594c9d7dfe329a54fd3d48468deda8f  gcc/testsuite/gcc.target/riscv/amo/a-ztso-load-acquire.c
! 843eaa2b164330b345242be7477e4934  gcc/testsuite/gcc.target/riscv/amo/a-ztso-load-relaxed.c
! 23af1d01526307702410c6ad92fa02a1  gcc/testsuite/gcc.target/riscv/amo/a-ztso-load-seq-cst.c
! cbb6ceafde01202cf86177b921acdbaa  gcc/testsuite/gcc.target/riscv/amo/a-ztso-store-compat-seq-cst.c
! 02f3874f1fd7935b59640f9bced9b21b  gcc/testsuite/gcc.target/riscv/amo/a-ztso-store-relaxed.c
! 09c20e531d67e778d9e0b0b4ed60db43  gcc/testsuite/gcc.target/riscv/amo/a-ztso-store-release.c
! 1b1e74bd80c8f92835b9de99fed9a9f2  gcc/testsuite/gcc.target/riscv/amo/amo.exp
! 9cfa276fc7d939150c8c384d7c10667b  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-1.c
! 7f3e1b2a559ce8cef571d2a40d2dfcee  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-2.c
! aeea4287f00bf622bcedbf5a392818f6  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-3.c
! 18c21c7138c5ae4039d879e65e53c652  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-4.c
! 2a60ec71c987cf76d815233349cc4a2c  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-5.c
! 25e6e132b3843134b9cd380cd75c716f  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-6.c
! 13d27f37fd62485841061fa41f07a4f5  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-7.c
! 3bb425093bebf813ad6d29d1cb26ae98  gcc/testsuite/gcc.target/riscv/amo/inline-atomics-8.c
! 6baf707cfad842b6b5ac2a6e7339e8ae  gcc/testsuite/gcc.target/riscv/amo/pr114130.c
! 45701f43caab393ac02416313089852f  gcc/testsuite/gcc.target/riscv/amo/pr89835.c
! 5cfd06f7388d70749f07747add856bea  gcc/testsuite/gcc.target/riscv/amo/zaamo-preferred-over-zalrsc.c
! d44be80ac06a021ab63acb697ae60f51  gcc/testsuite/gcc.target/riscv/amo/zaamo-rvwmo-amo-add-int.c
! 65215eb93c6d80d9bdf41a17e2a74e26  gcc/testsuite/gcc.target/riscv/amo/zaamo-ztso-amo-add-int.c
! 3d31f495e01a35b5a94f67298efbd10c  gcc/testsuite/gcc.target/riscv/amo/zabha-all-amo-ops-char-run.c
! 3bcf5d8a82d3f7f1bee9fe00595b35d0  gcc/testsuite/gcc.target/riscv/amo/zabha-all-amo-ops-short-run.c
! af673fd936a552ae3aedf768019c6080  gcc/testsuite/gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-char.c
! d8510639d34708be4eb4fdeef2f8cdee  gcc/testsuite/gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-short.c
! 5dc8c5de864176c303482f4ee3560e6b  gcc/testsuite/gcc.target/riscv/amo/zabha-rvwmo-amo-add-char.c
! aea5ac9b0550389fe61914a7a05876ca  gcc/testsuite/gcc.target/riscv/amo/zabha-rvwmo-amo-add-short.c
! f9f907d8ca89ee35a4a0b608ff69ea76  gcc/testsuite/gcc.target/riscv/amo/zabha-zacas-preferred-over-zalrsc.c
! 16af30431d049c7f5f0470b60d6df829  gcc/testsuite/gcc.target/riscv/amo/zabha-ztso-amo-add-char.c
! f0dbf1bd5383961cb841eaf14aabd3a2  gcc/testsuite/gcc.target/riscv/amo/zabha-ztso-amo-add-short.c
! f040101be10b8c1be2814a65e1dab663  gcc/testsuite/gcc.target/riscv/amo/zacas-char-requires-zabha.c
! 1c44a32d790878a7f1c4c5b357d8abd7  gcc/testsuite/gcc.target/riscv/amo/zacas-char-requires-zacas.c
! 8494392d3384ca7a3b21ef18b3fd67b8  gcc/testsuite/gcc.target/riscv/amo/zacas-preferred-over-zalrsc.c
! 7eb9b868eb07864b74f80ae0591f13f1  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-acq-rel.c
! adde7713d6641bd21fd9efc158728780  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-acquire.c
! ecade4893db95bd2310336826cb5dab6  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-relaxed.c
! 13cc89222720050554eff4519e7a4b22  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-release.c
! f581ec82f216829377385da3bb6ae6ec  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-seq-cst.c
! 71f4876991818846de85972da9a6371e  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-compatability-mapping-no-fence.c
! 1104b1dbc18d26174b5d82c7db9d102c  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-compatability-mapping.cc
! b2c7f58d77d3d62acaa1068a3061c16f  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-acq-rel.c
! 346e751b3a2075c368a049aa8a9a5743  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-acquire.c
! 21e0305c016717755fd380c4523dd588  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-relaxed.c
! 831185c357472b1960716e2f553b0698  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-release.c
! e41a7f851f40a825781572a2d0fab7cf  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-seq-cst.c
! b300ea15b20465d80efdba8f7548a1fc  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-acq-rel.c
! 30df8a786d664cc1103bb7c196a36174  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-acquire.c
! febf9e20fabc0067442cfaf24e4c6b70  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-relaxed.c
! 1d202873deb28d54dcd47fdc999e806f  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-release.c
! 8c0701d37056d689fd64b617d1edee41  gcc/testsuite/gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-seq-cst.c
! 59b4b316da663dce6491ed7c04e61c76  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-char-seq-cst.c
! 201a707e16b7b055a3047720f3a21b5f  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-char.c
! 60a83394866fcbdc66c237bd29e04317  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping-no-fence.c
! c211abc2f2fcb2d8fa7bd5962f318bd5  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping.cc
! df377ec0cbcf210a4125b328032459b6  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-int-seq-cst.c
! f424ec6eb7d2399d072eb365aec48ad2  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-int.c
! aacc6bfe4a3ada0bcdc164642f67230e  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-short-seq-cst.c
! b42613921853d590d84ae465f51304a8  gcc/testsuite/gcc.target/riscv/amo/zacas-ztso-compare-exchange-short.c
! 4d05c14134fa26746dc6505438457cff  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-amo-add-int.c
! 08b48e9ad4ba4e06169f63f2fba337a7  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-acquire-release.c
! 7405f86d7f99f9b8f8aa510f7e3a631d  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-acquire.c
! 75859dae040822f3defb9e55d40201ca  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-consume.c
! ca9d7213c6f5f67d5b659f0123afad43  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-relaxed.c
! d8bb4c3a6c89493508f80cdf70edd605  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-release.c
! 9107533ca9a6d2f513899dfe90ac279e  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-seq-cst-relaxed.c
! bbe9e4b6ffa08c8591303cf986cd45bf  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-seq-cst.c
! 87316dd61db749bc205a532e05f86f99  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acq-rel.c
! 20d8e6978e8766a4b75e7f66a3382194  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acquire.c
! bc42845458457e267a8a3466a0ee2064  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-relaxed.c
! 03e2dd7a82508dfc33ba4ba391816d0a  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-release.c
! 555dec4b8442df9bd90f9acf38c914bb  gcc/testsuite/gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-seq-cst.c
! 985c93c274147a76a038e8df25c414a0  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-amo-add-int.c
! aa5a7613ec5ce3707ef469baad2c4192  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire-release.c
! 9042981e4a1f6d123f0946c94714b309  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire.c
! 14f4bb7329031260154dc6088adb0a63  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-consume.c
! e45b2ad32117067538c5a32f613ce6d5  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-relaxed.c
! 55740c349ca6c3df78b3e8324e7223d3  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-release.c
! 59c2713a331972c4bd877b1c0f7c3112  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-seq-cst-relaxed.c
! 01d57d724d244e32335775caba9d6a9b  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-seq-cst.c
! 07ffac6f582e9abd571b886e8b2c1ca8  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acq-rel.c
! b7024d8cbfae6c8ac5b272ce07a5e7fa  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acquire.c
! 48da0c561102e0ab819cf0f61e5ea39a  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-relaxed.c
! 2f5ef126884fb8e86ef1ae93414f9962  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-release.c
! ebdc2bc35521f179e06c2e3d8a72e2ac  gcc/testsuite/gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-seq-cst.c
  f2824bba3f317208bc724728332991c3  gcc/testsuite/gcc.target/riscv/and-extend-1.c
  adc74d0f17f6765898acaf25e4b80da2  gcc/testsuite/gcc.target/riscv/and-extend-2.c
+ b446251fd8ececadfe514cc0a7b811cf  gcc/testsuite/gcc.target/riscv/and-shift32.c
+ 616dd45309bca9019fe3b9af69599baf  gcc/testsuite/gcc.target/riscv/and-shift64.c
  d0db5e2267389a1185e58b9406371ee4  gcc/testsuite/gcc.target/riscv/arch-1.c
  3b7707b06c4df57de1fbf8812c8df071  gcc/testsuite/gcc.target/riscv/arch-10.c
  ec7f5ab1f99ea69345d1e5ac8e166932  gcc/testsuite/gcc.target/riscv/arch-11.c
*************** b75c106ec27cc7342a78fa97b18b9780  gcc/te
*** 82397,82407 ****
  71ae08e7e20eb1853edc05df4cccfade  gcc/testsuite/gcc.target/riscv/arch-29.c
  965be927378e101904fdca9d29570b49  gcc/testsuite/gcc.target/riscv/arch-3.c
  8e229b99f415b1a181cefd1acd8e4d54  gcc/testsuite/gcc.target/riscv/arch-30.c
! 4b681af126e1a1766c08d0fc931dc61e  gcc/testsuite/gcc.target/riscv/arch-31.c
! e0ba12631bfd543ac7e92c5ef49f9856  gcc/testsuite/gcc.target/riscv/arch-32.c
  4ac210302affe45191976aef1edaae36  gcc/testsuite/gcc.target/riscv/arch-33.c
  cd4048a1db70f3763fdb62c133abd899  gcc/testsuite/gcc.target/riscv/arch-34.c
  a7fd98a8530a5994fa6594c79ed33fc5  gcc/testsuite/gcc.target/riscv/arch-4.c
  c94d482c7ef976b5a86a9679daf9ddc1  gcc/testsuite/gcc.target/riscv/arch-5.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
--- 87462,87482 ----
  71ae08e7e20eb1853edc05df4cccfade  gcc/testsuite/gcc.target/riscv/arch-29.c
  965be927378e101904fdca9d29570b49  gcc/testsuite/gcc.target/riscv/arch-3.c
  8e229b99f415b1a181cefd1acd8e4d54  gcc/testsuite/gcc.target/riscv/arch-30.c
! bae33bc763d93c7d79b92e71d7e186be  gcc/testsuite/gcc.target/riscv/arch-31.c
! 242cde1f2a33820c3e34a7ee13b23628  gcc/testsuite/gcc.target/riscv/arch-32.c
  4ac210302affe45191976aef1edaae36  gcc/testsuite/gcc.target/riscv/arch-33.c
  cd4048a1db70f3763fdb62c133abd899  gcc/testsuite/gcc.target/riscv/arch-34.c
+ c12cfce37ef0329eb44ec51b1c297a70  gcc/testsuite/gcc.target/riscv/arch-35.c
+ 3cbdacce45fcb6478ba21154de7ee831  gcc/testsuite/gcc.target/riscv/arch-36.c
+ e777c0389e11ddbe1ad8eefab41396d2  gcc/testsuite/gcc.target/riscv/arch-37.c
+ 7527165ea9414c29a966a22e823955ad  gcc/testsuite/gcc.target/riscv/arch-38.c
+ e4fc6565667d244711a33bfe804f6440  gcc/testsuite/gcc.target/riscv/arch-39.c
  a7fd98a8530a5994fa6594c79ed33fc5  gcc/testsuite/gcc.target/riscv/arch-4.c
+ f7737384a7159c5bd9e77bc68c389061  gcc/testsuite/gcc.target/riscv/arch-40.c
+ 02acd93dc4cb57a0f1174515e3e0ba54  gcc/testsuite/gcc.target/riscv/arch-41.c
+ bad48fcddbccb04e04d47ed0b59c88a4  gcc/testsuite/gcc.target/riscv/arch-42.c
+ 1a3ea38dc0280965c0841bdbc081d11a  gcc/testsuite/gcc.target/riscv/arch-43.c
+ 1444d5eac58c7bc0f24b8b26d283ed13  gcc/testsuite/gcc.target/riscv/arch-44.c
  c94d482c7ef976b5a86a9679daf9ddc1  gcc/testsuite/gcc.target/riscv/arch-5.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
*************** f0d20f8a7e02207b95f7a8b4f3066027  gcc/te
*** 82414,82424 ****
  2be23f1c0480d289b430a7da2bee15a7  gcc/testsuite/gcc.target/riscv/attribute-12.c
  57fe31e4d8f18b4d72e65e6cc02ab7ee  gcc/testsuite/gcc.target/riscv/attribute-13.c
  0ee1583436ec6d6afb46b7f5bc4d46da  gcc/testsuite/gcc.target/riscv/attribute-14.c
! 39e4f92d19a2c273893cddd2c316ee29  gcc/testsuite/gcc.target/riscv/attribute-15.c
! 8e7af04c08686a53777ea22cd76ab589  gcc/testsuite/gcc.target/riscv/attribute-16.c
! d013ee2ea07d94e3a094d8f29220ed89  gcc/testsuite/gcc.target/riscv/attribute-17.c
! be3bff0ab797c8843a0a2a38ba6b8a70  gcc/testsuite/gcc.target/riscv/attribute-18.c
! 9aa2bcbf73c12fb3ecdbf60f4ba0d2ed  gcc/testsuite/gcc.target/riscv/attribute-19.c
  4a321b1fc86bbe78c3f53248aba72a2b  gcc/testsuite/gcc.target/riscv/attribute-2.c
  df6bb22f015faf57e6409f769b75db07  gcc/testsuite/gcc.target/riscv/attribute-20.c
  6e450562d1327a66235c224c28374085  gcc/testsuite/gcc.target/riscv/attribute-21.c
--- 87489,87499 ----
  2be23f1c0480d289b430a7da2bee15a7  gcc/testsuite/gcc.target/riscv/attribute-12.c
  57fe31e4d8f18b4d72e65e6cc02ab7ee  gcc/testsuite/gcc.target/riscv/attribute-13.c
  0ee1583436ec6d6afb46b7f5bc4d46da  gcc/testsuite/gcc.target/riscv/attribute-14.c
! 44f733eef71d8772fac24def5ad73933  gcc/testsuite/gcc.target/riscv/attribute-15.c
! b9dc3aa2111158da973af2363d79d484  gcc/testsuite/gcc.target/riscv/attribute-16.c
! 856015e15987a3d7b9d0a15c0bd1f88c  gcc/testsuite/gcc.target/riscv/attribute-17.c
! 4c7557ea35ef589cfd74307b0525c5f6  gcc/testsuite/gcc.target/riscv/attribute-18.c
! 5aa6898f613435035da9cb3395dd2a46  gcc/testsuite/gcc.target/riscv/attribute-19.c
  4a321b1fc86bbe78c3f53248aba72a2b  gcc/testsuite/gcc.target/riscv/attribute-2.c
  df6bb22f015faf57e6409f769b75db07  gcc/testsuite/gcc.target/riscv/attribute-20.c
  6e450562d1327a66235c224c28374085  gcc/testsuite/gcc.target/riscv/attribute-21.c
*************** df6bb22f015faf57e6409f769b75db07  gcc/te
*** 82428,82456 ****
  e21ab49d7189048e7846cf34bb083a0c  gcc/testsuite/gcc.target/riscv/attribute-7.c
  cabf88be4bf05d41b4011144e5ecc054  gcc/testsuite/gcc.target/riscv/attribute-8.c
  0a9b3f3b9429d00e3594aed203aa8f9e  gcc/testsuite/gcc.target/riscv/attribute-9.c
! b4171b78d48ceb8a0a4b920a87338e9e  gcc/testsuite/gcc.target/riscv/branch-1.c
! dfc845bf36ac50a02d3791afb2013ee4  gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
! 4871954678f8c088ea61e950d306fe2b  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
! 403382dd3d4f610c46c33100f96050bb  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
! 28f0db450de2e11dbbf7a6138c7234f6  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
! 7fd5d2309bafcb8b08d55ab159f89935  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
! a093c104ed149894b0297471de52af9a  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
! 7fc52bdd7484a11d12e5fb04ed6063fe  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
! 52475c5c39a4463925093beba4f9c000  gcc/testsuite/gcc.target/riscv/compare-debug-1.c
! e29174f77074a234bd649d4de0f4e274  gcc/testsuite/gcc.target/riscv/compare-debug-2.c
! cbbda21f5493f463dcd1c5ef76289bff  gcc/testsuite/gcc.target/riscv/cset-sext-rtl.c
! 5c9e12dcb140f227203d9a5fea37bb6d  gcc/testsuite/gcc.target/riscv/cset-sext-rtl32.c
! 937f9733cfbe2a9845726b58a0219bd0  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl.c
! 06d775ffe03d274bf5403beb5b6ba11a  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl32.c
! f31cbce9a148079081db0e1242a852eb  gcc/testsuite/gcc.target/riscv/cset-sext-sfb.c
! e2c81e1e000e1bc7d6cb53f8f1250494  gcc/testsuite/gcc.target/riscv/cset-sext-thead-rtl.c
! 9989a073fc2c17a2521d848c72e0fb09  gcc/testsuite/gcc.target/riscv/cset-sext-thead.c
! d8ad1fa9d711b837a15af69a5c62138a  gcc/testsuite/gcc.target/riscv/cset-sext-ventana-rtl.c
! 761fc0d8d158e17971638f18d392ccc6  gcc/testsuite/gcc.target/riscv/cset-sext-ventana.c
! b411b4c64d3aef0593c452f208562527  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl.c
! de8cd629c81743c294abaf9bb02dffb8  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl32.c
! 96dfa248b9549ad0ba28348bafc076d7  gcc/testsuite/gcc.target/riscv/cset-sext-zicond.c
! 7129d060e5a94dbed8e5afec6c5742eb  gcc/testsuite/gcc.target/riscv/cset-sext.c
  2c9f248e5e5d33f80dcec011330c69ee  gcc/testsuite/gcc.target/riscv/cv-alu-compile.c
  41d0197364bbbc01251c326b37ef1b14  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addn.c
  1a6837bc60969111b75a76583f8c2f92  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addrn.c
--- 87503,87608 ----
  e21ab49d7189048e7846cf34bb083a0c  gcc/testsuite/gcc.target/riscv/attribute-7.c
  cabf88be4bf05d41b4011144e5ecc054  gcc/testsuite/gcc.target/riscv/attribute-8.c
  0a9b3f3b9429d00e3594aed203aa8f9e  gcc/testsuite/gcc.target/riscv/attribute-9.c
! 05ae0b835c33d399e67c061dac3b6f69  gcc/testsuite/gcc.target/riscv/attribute-zce-1.c
! 0b87650fbb8219329286e67fe43d665a  gcc/testsuite/gcc.target/riscv/attribute-zce-2.c
! 6e03e392cb2a12563f52d7b6f9d9364c  gcc/testsuite/gcc.target/riscv/attribute-zce-3.c
! 93f7c47daf2229a887e0fefad52fcc6e  gcc/testsuite/gcc.target/riscv/attribute-zce-4.c
! 3df27341bf15cae561a9680429bae764  gcc/testsuite/gcc.target/riscv/bclr-for-simode-1.c
! dfe458767e63b41b24c59059a8cfe507  gcc/testsuite/gcc.target/riscv/bext-ext.c
! c6a17fe16a8de24e823815f272f8e895  gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
! 9167293dd3f3da109afa91e1e7d03425  gcc/testsuite/gcc.target/riscv/bf16_call.c
! 7329144cbab17a654f8d7dad98f37103  gcc/testsuite/gcc.target/riscv/bf16_comparison.c
! ea3dbec756f9d6d8cc34b5e0555acc12  gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
! b7abe95f9b02106e7160a5bdf3bd9683  gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
! ce996344e43595d076a35c5854116e9d  gcc/testsuite/gcc.target/riscv/binv-for-simode-1.c
! 244404494e46bf644ff8a21bfd0fe745  gcc/testsuite/gcc.target/riscv/branch-1.c
! 5ff9fc5e4ee023e4133be50b0e41bac7  gcc/testsuite/gcc.target/riscv/bset-for-simode-1.c
! 6967125c8c44e15fa569535879246c8f  gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
! 021bc968586a0a99ce7fce44320a4772  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
! c27824bc1ba5ae0818f0a2b4e73773fc  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
! 1097f3ce9e6aa561a28797d46c4748e9  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
! ec4259503b6019467eb9f83961ffd7f5  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
! 24500f30ebde0883a3551cd78bd6aa8a  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
! 9658278f718a32542ca577399c3e826f  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
! 27827fd5a7720aa04ea8c5aa69e02c13  gcc/testsuite/gcc.target/riscv/cmo-zicboz-zic64-1.c
! 87f73b0f7b38d2486106c3a82ff79c8b  gcc/testsuite/gcc.target/riscv/cmpmemsi-1.c
! 95f16a1f61c965fa0b8a528c66c104a0  gcc/testsuite/gcc.target/riscv/cmpmemsi-2.c
! a6bf09128c2565446414595b58243dff  gcc/testsuite/gcc.target/riscv/cmpmemsi-3.c
! daa3032f375d369c3db592013c53266c  gcc/testsuite/gcc.target/riscv/cmpmemsi.c
! b320d39b4bc35839fa28adaf6f2ed6c0  gcc/testsuite/gcc.target/riscv/compare-debug-1.c
! 29d9be01f5b2aa67772e773cf0c9dc51  gcc/testsuite/gcc.target/riscv/compare-debug-2.c
! 765643fbc85d2b06ca050b805d914d50  gcc/testsuite/gcc.target/riscv/constraint-R.c
! 5735e3b029a3ef436649e16b2a4dbb5f  gcc/testsuite/gcc.target/riscv/constraint-cf-zfinx.c
! eb5af8f9b9993b4069f49d0049d05e87  gcc/testsuite/gcc.target/riscv/constraint-cf.c
! 64b74269345e8654ce0d1f33fc7c5a58  gcc/testsuite/gcc.target/riscv/constraint-cr.c
! 6929dceee52571d33d74aeaf77aa5b81  gcc/testsuite/gcc.target/riscv/core_bench_list.c
! cc2941f3dabb2ba9df05f8e62bd343b7  gcc/testsuite/gcc.target/riscv/core_init_matrix.c
! a9f179cd56442e765d568724c13e3d64  gcc/testsuite/gcc.target/riscv/core_list_init.c
! da7018048a2f8abf32640890d4b206be  gcc/testsuite/gcc.target/riscv/cpymem-32-ooo.c
! 43e997784ea5cad989d86a3e1b2871ac  gcc/testsuite/gcc.target/riscv/cpymem-32.c
! 1a1e8b7e22dc6166c42b6e188b623490  gcc/testsuite/gcc.target/riscv/cpymem-64-ooo.c
! 19777aecc04394cc7a5c69570e53d35b  gcc/testsuite/gcc.target/riscv/cpymem-64.c
! 76eac1ca2e2fd53aca5c7373acab975a  gcc/testsuite/gcc.target/riscv/cpymemsi-1.c
! 1747eae5340caf36457b77b1c3c16436  gcc/testsuite/gcc.target/riscv/cpymemsi-2.c
! 32f282163f36da7af3d9ee530827d04e  gcc/testsuite/gcc.target/riscv/cpymemsi-3.c
! e03f06fbe9460c4abe1866d9087f874c  gcc/testsuite/gcc.target/riscv/cpymemsi.c
! ca54f90362d04b499a04c09a322210b6  gcc/testsuite/gcc.target/riscv/crc-1-zbc.c
! 3ee72e475e198e29e9773b6c2f42845d  gcc/testsuite/gcc.target/riscv/crc-1-zbkc.c
! 574d374e588eff02b212057e2f78d8a9  gcc/testsuite/gcc.target/riscv/crc-10-zbc.c
! 46ec42b22828a27cd987dd758dac086f  gcc/testsuite/gcc.target/riscv/crc-10-zbkc.c
! cb15dcda4b7595bea867b58706a1f3d8  gcc/testsuite/gcc.target/riscv/crc-12-zbc.c
! a77c398c39befc8f1addb353a904fe35  gcc/testsuite/gcc.target/riscv/crc-12-zbkc.c
! 14d97ed94dd145f95db72e03a317ed51  gcc/testsuite/gcc.target/riscv/crc-13-zbc.c
! 5e36a666dfce46fa431c7ed2ef5a90e0  gcc/testsuite/gcc.target/riscv/crc-13-zbkc.c
! 62c4091a75a713604ad03f9b77171245  gcc/testsuite/gcc.target/riscv/crc-14-zbc.c
! ff6ab163afca1d9a10137aec0d568de7  gcc/testsuite/gcc.target/riscv/crc-14-zbkc.c
! b7beb0a14f6d438e6244fc6ca1fb702b  gcc/testsuite/gcc.target/riscv/crc-17-zbc.c
! 69293fa0f09ccadbec42db05ee1c7a70  gcc/testsuite/gcc.target/riscv/crc-17-zbkc.c
! b15a77925372a1b11d8b281425729ba4  gcc/testsuite/gcc.target/riscv/crc-18-zbc.c
! 9eea04e608aa893ccbc4933460c109b7  gcc/testsuite/gcc.target/riscv/crc-18-zbkc.c
! 5955d76770fd56a2e987b7c2b0e0d41f  gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbc.c
! 26455b8fb3d8f16b7bd3ff5c009d9376  gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbkc.c
! 3bf0b2ca85fcd53a602abe47918fecf1  gcc/testsuite/gcc.target/riscv/crc-22-zbc.c
! 77a32b61bcc68199b438f45b47e9c627  gcc/testsuite/gcc.target/riscv/crc-22-zbkb.c
! 8aa081cb521c7adcc6596df1033f9812  gcc/testsuite/gcc.target/riscv/crc-22-zbkc.c
! f7e845c88077cbf647ee53d2aabdafc8  gcc/testsuite/gcc.target/riscv/crc-23-zbc.c
! 3f04794adacc219d1602385233eae611  gcc/testsuite/gcc.target/riscv/crc-23-zbkc.c
! 0dee4b03ecbaaf15fe8681d0e1e8a657  gcc/testsuite/gcc.target/riscv/crc-4-zbc.c
! 0e8ec5e17c746f099b70e690febfe7bc  gcc/testsuite/gcc.target/riscv/crc-4-zbkb.c
! d6f4c4505e9a1853b71c7a1a8d385eb1  gcc/testsuite/gcc.target/riscv/crc-4-zbkc.c
! 113d8ce6cc9fc34061dcbcc959a61638  gcc/testsuite/gcc.target/riscv/crc-5-zbc.c
! f45523f69ae106038f0f9f03167db281  gcc/testsuite/gcc.target/riscv/crc-5-zbkb.c
! 640ba5faf90c5c88daff721978566f81  gcc/testsuite/gcc.target/riscv/crc-5-zbkc.c
! 11a00c5e680d0b524f9948bb8134d0a2  gcc/testsuite/gcc.target/riscv/crc-6-zbc.c
! 30312eb510d97b53a4a7999ca8a4d922  gcc/testsuite/gcc.target/riscv/crc-6-zbkc.c
! 8635b835f59142f0d1a06f7e35b18503  gcc/testsuite/gcc.target/riscv/crc-7-zbc.c
! 71c9ba0cc293e7f7fedb905cf4c9b99d  gcc/testsuite/gcc.target/riscv/crc-7-zbkc.c
! 600e0cccb1bb68239c858a124b74e621  gcc/testsuite/gcc.target/riscv/crc-8-zbc.c
! 8a615ce4d1363a450c11dd9235f7e6ca  gcc/testsuite/gcc.target/riscv/crc-8-zbkb.c
! a996f2019d311d21246d064a7a8cf39e  gcc/testsuite/gcc.target/riscv/crc-8-zbkc.c
! 3ed1d96a2b5d0b5129c07ed382a36553  gcc/testsuite/gcc.target/riscv/crc-9-zbc.c
! 6de6b17a6d126ae5c6bc0e9a49216415  gcc/testsuite/gcc.target/riscv/crc-9-zbkc.c
! 959956c2ffd452b74422baba7994daf6  gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbc.c
! 330a1f0482a795e83aafbb9e715e9932  gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbkc.c
! 947a76831531663e9ae5a9eabde6546d  gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbc.c
! e1c388f985f3b0308061fc504e4ff9c8  gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbkc.c
! 5c3154ac09ffac89d1e38cb132e76d20  gcc/testsuite/gcc.target/riscv/crc-builtin-zbc32.c
! ce38011c6154f93d71861589c50fc10a  gcc/testsuite/gcc.target/riscv/crc-builtin-zbc64.c
! 5f07e02d11c4a9130b1387e99550a549  gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbc.c
! 10cc4e358ab236d54d2f63b8c3e18498  gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbkc.c
! 53287659715081b9f3d80da7841cf513  gcc/testsuite/gcc.target/riscv/cset-sext-rtl.c
! a7d65fd143ca909973c946ae01e9dd76  gcc/testsuite/gcc.target/riscv/cset-sext-rtl32.c
! 6d625a6d88d6da5c54d8cb6af2d21d39  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl.c
! 5ca7d685b69d4519b33233552c8311ac  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl32.c
! 6a47bcd1d8b087b2e9fc4f822d154b6a  gcc/testsuite/gcc.target/riscv/cset-sext-sfb.c
! a10ac96adfabab51058ec12604b3d129  gcc/testsuite/gcc.target/riscv/cset-sext-thead-rtl.c
! a965f95252267cb184a5b29790f13aae  gcc/testsuite/gcc.target/riscv/cset-sext-thead.c
! 0611cd386ffcb0a9439e6c4a3992fcd3  gcc/testsuite/gcc.target/riscv/cset-sext-ventana-rtl.c
! f2e64008c3b842ca5a3ab6cc0ada96d2  gcc/testsuite/gcc.target/riscv/cset-sext-ventana.c
! 9cd354e4ce8a82e5c2bc04869fa17f4b  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl.c
! 304f24dadb38cdc90b46f143d9ec460f  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl32.c
! 22220495f679dfa8ff0d20db6db1b2f6  gcc/testsuite/gcc.target/riscv/cset-sext-zicond.c
! 2959f045d70b770b6b59a20b77cd5675  gcc/testsuite/gcc.target/riscv/cset-sext.c
  2c9f248e5e5d33f80dcec011330c69ee  gcc/testsuite/gcc.target/riscv/cv-alu-compile.c
  41d0197364bbbc01251c326b37ef1b14  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addn.c
  1a6837bc60969111b75a76583f8c2f92  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addrn.c
*************** a4c468f0dabef5849f00b0ea4f2d7f34  gcc/te
*** 82651,82656 ****
--- 87803,87812 ----
  17b7c1576f018ab4efdccb6753514ad2  gcc/testsuite/gcc.target/riscv/cv-simd-xor-sc-h-compile-1.c
  32eaba242b02f0d41f419865f53ea9a3  gcc/testsuite/gcc.target/riscv/divmod-1.c
  563117792f9d6ea0cadd47fbafeed890  gcc/testsuite/gcc.target/riscv/divmod-2.c
+ 5436f7a25300f600f9163405e8836b6f  gcc/testsuite/gcc.target/riscv/ext-dce-1.c
+ 7cf820151c7fd7e6165871cdb49c8cac  gcc/testsuite/gcc.target/riscv/extend-shift-helpers.h
+ 6433e8c2e6104dc54c5c0424b4b021fe  gcc/testsuite/gcc.target/riscv/fclass.c
+ 05ed4f1ac94c30dd53e37aad6b9251fb  gcc/testsuite/gcc.target/riscv/fix.c
  ac22a668a6627141957bbd3d791e4b02  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-1.c
  62823213389acb5bfc34bf2e10ae7aa7  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-2.c
  f18c900ab5f425fb7fc486d64b3648a7  gcc/testsuite/gcc.target/riscv/fle-ieee.c
*************** c7c32cfde973c30526de62d0a6ccf4cf  gcc/te
*** 82665,82691 ****
  3612ecd1ad6d7a0964b275658e15c897  gcc/testsuite/gcc.target/riscv/fltf-ieee.c
  37ce8ab05e85b7a25ffe937e1abd4917  gcc/testsuite/gcc.target/riscv/fltf-snan.c
  c32704622e2680b1192e0934e1fe06a6  gcc/testsuite/gcc.target/riscv/fltf.c
! cce0f100408ab68657416ee6dff78afa  gcc/testsuite/gcc.target/riscv/fmax-snan.c
  c5fce1891bf87ad67a6990a0df33c336  gcc/testsuite/gcc.target/riscv/fmax.c
! 44cd3b2444009d3d4378ccd10505b70d  gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
  bb144c34f5eab3757e03ae48e9aa39ed  gcc/testsuite/gcc.target/riscv/fmaxf.c
! 9afba9b6966c28ace25d45dcbd51e214  gcc/testsuite/gcc.target/riscv/fmin-snan.c
  8f19287280703d530bf8cd8235403683  gcc/testsuite/gcc.target/riscv/fmin.c
! 39c94afa2c5f88eda89da27eafffaab8  gcc/testsuite/gcc.target/riscv/fminf-snan.c
  9e42b582cd65d706a3bddf995fc48aa1  gcc/testsuite/gcc.target/riscv/fminf.c
  2d216f926f95d1287381cc3a356efca6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-1.c
  9e174a10020bacb8dfe12a3a74abbbf6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-2.c
  283a36ea2b27d4b3d5c343ac1a6c9a56  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-3.c
  cedad2f9b384500f9e940017126bf4b1  gcc/testsuite/gcc.target/riscv/fsflags.c
  eaf46dc2abfb9500969790b031ffa83b  gcc/testsuite/gcc.target/riscv/gcse-const.c
! 73183a94e6f0ef1913c6c0fc92c4e4b8  gcc/testsuite/gcc.target/riscv/inline-atomics-1.c
! 6b69f20f6fbdbf78681255b2dcac3932  gcc/testsuite/gcc.target/riscv/inline-atomics-2.c
! aeea4287f00bf622bcedbf5a392818f6  gcc/testsuite/gcc.target/riscv/inline-atomics-3.c
! 18c21c7138c5ae4039d879e65e53c652  gcc/testsuite/gcc.target/riscv/inline-atomics-4.c
! 2a60ec71c987cf76d815233349cc4a2c  gcc/testsuite/gcc.target/riscv/inline-atomics-5.c
! 25e6e132b3843134b9cd380cd75c716f  gcc/testsuite/gcc.target/riscv/inline-atomics-6.c
! 13d27f37fd62485841061fa41f07a4f5  gcc/testsuite/gcc.target/riscv/inline-atomics-7.c
! 3bb425093bebf813ad6d29d1cb26ae98  gcc/testsuite/gcc.target/riscv/inline-atomics-8.c
  9457128494b7b1a8b8813db1a4b3562a  gcc/testsuite/gcc.target/riscv/interrupt-1.c
  9403cf8e7b3af27ece005e85c732a485  gcc/testsuite/gcc.target/riscv/interrupt-2.c
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
--- 87821,87841 ----
  3612ecd1ad6d7a0964b275658e15c897  gcc/testsuite/gcc.target/riscv/fltf-ieee.c
  37ce8ab05e85b7a25ffe937e1abd4917  gcc/testsuite/gcc.target/riscv/fltf-snan.c
  c32704622e2680b1192e0934e1fe06a6  gcc/testsuite/gcc.target/riscv/fltf.c
! d7175ef14c7584f742cf0bab88e7771c  gcc/testsuite/gcc.target/riscv/fmax-snan.c
  c5fce1891bf87ad67a6990a0df33c336  gcc/testsuite/gcc.target/riscv/fmax.c
! 78044761b3fd9af68f538cf5686ff46b  gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
  bb144c34f5eab3757e03ae48e9aa39ed  gcc/testsuite/gcc.target/riscv/fmaxf.c
! 93d5805350531b32090c27234bbd48e9  gcc/testsuite/gcc.target/riscv/fmin-snan.c
  8f19287280703d530bf8cd8235403683  gcc/testsuite/gcc.target/riscv/fmin.c
! ae02daa4bc8481883fe04d40d406d399  gcc/testsuite/gcc.target/riscv/fminf-snan.c
  9e42b582cd65d706a3bddf995fc48aa1  gcc/testsuite/gcc.target/riscv/fminf.c
  2d216f926f95d1287381cc3a356efca6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-1.c
  9e174a10020bacb8dfe12a3a74abbbf6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-2.c
  283a36ea2b27d4b3d5c343ac1a6c9a56  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-3.c
  cedad2f9b384500f9e940017126bf4b1  gcc/testsuite/gcc.target/riscv/fsflags.c
  eaf46dc2abfb9500969790b031ffa83b  gcc/testsuite/gcc.target/riscv/gcse-const.c
! 2b6d530e5981a0ccde512097a5169b16  gcc/testsuite/gcc.target/riscv/gnu-property-align-rv32.c
! b24e931e97473ad3344268fc34d9a089  gcc/testsuite/gcc.target/riscv/gnu-property-align-rv64.c
  9457128494b7b1a8b8813db1a4b3562a  gcc/testsuite/gcc.target/riscv/interrupt-1.c
  9403cf8e7b3af27ece005e85c732a485  gcc/testsuite/gcc.target/riscv/interrupt-2.c
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
*************** c36c6439efa266a1451a2f487ec7e09b  gcc/te
*** 82698,83052 ****
  57f649a10ed040fea307c1dff4e5f1c7  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-3.c
  fee79ad9a3947e1e6e8791239807aeb4  gcc/testsuite/gcc.target/riscv/interrupt-misaligned.c
  a0ec9e9b1278bec59b5f6fb4473ae0be  gcc/testsuite/gcc.target/riscv/interrupt-mmode.c
  756572791a9293ef57d0855c156c1c04  gcc/testsuite/gcc.target/riscv/interrupt-smode.c
  1cc7f11cb8b3790c544cfd62150e6d44  gcc/testsuite/gcc.target/riscv/interrupt-umode.c
! 5a952795f5acc3358e23e73cd8510434  gcc/testsuite/gcc.target/riscv/large-model.c
  9ae56141fab814505fcf7366ef12db85  gcc/testsuite/gcc.target/riscv/li.c
  6308e09d3e5133433b97e26dcb02daba  gcc/testsuite/gcc.target/riscv/load-immediate.c
  7530069d23aa7990ff78ecce4ac40cae  gcc/testsuite/gcc.target/riscv/losum-overflow.c
  921c846f9d343bd139a635f83e6db437  gcc/testsuite/gcc.target/riscv/mcpu-1.c
  84a4693e36dd49686414997cb37fc127  gcc/testsuite/gcc.target/riscv/mcpu-2.c
  269992894322ca9fb2bc9217752bd689  gcc/testsuite/gcc.target/riscv/mcpu-3.c
  297b97dda64e94096f17b8881a96ba7c  gcc/testsuite/gcc.target/riscv/mcpu-4.c
  efcb2d5344bde460bcbee76b9e33c09d  gcc/testsuite/gcc.target/riscv/mcpu-5.c
! e20585893ea69038755bd9bf2baa0622  gcc/testsuite/gcc.target/riscv/mcpu-6.c
! 5a433cb606f15a057de6b4d95a40169d  gcc/testsuite/gcc.target/riscv/mcpu-7.c
  5159d9e2aee2c7fa385187b01c43e187  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p450.c
  11dd7483f027ab8263d3f7bf312bc40f  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p670.c
  0f7ebc2d65ebdb64c7b00775db650cdd  gcc/testsuite/gcc.target/riscv/mcpu-sifive-x280.c
  d66b77cd3223498c6e933305c7a7ca13  gcc/testsuite/gcc.target/riscv/mcpu-thead-c906.c
! 3192b05c9bd8ba1ec8d20df30782404f  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-nanhu.c
  ec03a01a1787f67f3d9feb5acba7fd89  gcc/testsuite/gcc.target/riscv/mode-switch-ice-1.c
! 6f0bbad46acffcf1c9d4ae4c73e902be  gcc/testsuite/gcc.target/riscv/movdibeq-thead.c
! df961ad8448df24ab19affcee78c7355  gcc/testsuite/gcc.target/riscv/movdibeq-ventana.c
! 16d9f58bbb7b8b87f35d08acaaa57015  gcc/testsuite/gcc.target/riscv/movdibeq-zicond.c
! 81fd8438f3ecb24aa912bb12d46a160b  gcc/testsuite/gcc.target/riscv/movdibeq.c
! 3580d99d7bbffe3f4a5782979f04c866  gcc/testsuite/gcc.target/riscv/movdibfeq-ventana.c
! 479140fc1968055342e9cb992348cb41  gcc/testsuite/gcc.target/riscv/movdibfeq-zicond.c
! 0cbde95300456c6430a092c26c6ef9f1  gcc/testsuite/gcc.target/riscv/movdibfeq.c
! dd5df9f80af14e711e61bc48fd0c7fb4  gcc/testsuite/gcc.target/riscv/movdibfge-ventana.c
! 0ecff1e694d3ecbe3cac347e39915c45  gcc/testsuite/gcc.target/riscv/movdibfge-zicond.c
! 1210520e4d696350d754580c68ea7f8b  gcc/testsuite/gcc.target/riscv/movdibfge.c
! 6aac11ce8b2fa4e8991d56ad21c41fd8  gcc/testsuite/gcc.target/riscv/movdibfgt-ventana.c
! 841254cc91361f11fc9a9c1bedc7d28e  gcc/testsuite/gcc.target/riscv/movdibfgt-zicond.c
! 93c020783978c3fc9b22b2000621d6f8  gcc/testsuite/gcc.target/riscv/movdibfgt.c
! 2a91ec52fc514d40618cd633a5c44cfc  gcc/testsuite/gcc.target/riscv/movdibfle-ventana.c
! 9c64ecc8786586b8bccce3d986ea5232  gcc/testsuite/gcc.target/riscv/movdibfle-zicond.c
! ddc192e2191b7111b586ffadc45787db  gcc/testsuite/gcc.target/riscv/movdibfle.c
! 585d9117a7ab780979ff00e8da92f2f7  gcc/testsuite/gcc.target/riscv/movdibflt-ventana.c
! 55b789128a46d28c689d49fb59303b2a  gcc/testsuite/gcc.target/riscv/movdibflt-zicond.c
! a02bf0f67b726cf4586317fbb8d715b4  gcc/testsuite/gcc.target/riscv/movdibflt.c
! 0b5881a817ad27d2979b4654061142a7  gcc/testsuite/gcc.target/riscv/movdibfne-ventana.c
! 97b3a75339177136372b69527ad96307  gcc/testsuite/gcc.target/riscv/movdibfne-zicond.c
! dbb46db683e31795ae35700777b7b287  gcc/testsuite/gcc.target/riscv/movdibfne.c
! b920028c766cc0a8bf3b1b21b0fa7e31  gcc/testsuite/gcc.target/riscv/movdibge-thead.c
! 20cdfc196bd5873fcdb3e16069f54c27  gcc/testsuite/gcc.target/riscv/movdibge-ventana.c
! 3f3560beed32b3cecc330c5c798ab0fd  gcc/testsuite/gcc.target/riscv/movdibge-zicond.c
! 7619b8939c75205bcb30f5e4ee2e0ea3  gcc/testsuite/gcc.target/riscv/movdibge.c
! 62d112dd4903e82fd48ab0d1b3168e2b  gcc/testsuite/gcc.target/riscv/movdibgeu-thead.c
! 8b8c4c821363fad9dfd3c1cab4acba01  gcc/testsuite/gcc.target/riscv/movdibgeu-ventana.c
! e0a81d7fcda8948801b39723e3bf74e1  gcc/testsuite/gcc.target/riscv/movdibgeu-zicond.c
! 272b2588ae8ed644e6d74b0b61f6cc75  gcc/testsuite/gcc.target/riscv/movdibgeu.c
! 27a5cd318162557666dda8f002210a2a  gcc/testsuite/gcc.target/riscv/movdibgt-thead.c
! 1a4009286d638c03d691f25b6bacaccf  gcc/testsuite/gcc.target/riscv/movdibgt-ventana.c
! f0c5033a0d543f3e66ae1210e745fbaf  gcc/testsuite/gcc.target/riscv/movdibgt-zicond.c
! 4ea25ab3d61e0fe1b6f1745b5bf4dccd  gcc/testsuite/gcc.target/riscv/movdibgt.c
! d0a39392d45bd2ac94f52be52dd84aa6  gcc/testsuite/gcc.target/riscv/movdibgtu-thead.c
! 34efdc1bc04918b742c3c800ef75cad2  gcc/testsuite/gcc.target/riscv/movdibgtu-ventana.c
! 0a250acade51476a8136db7a65486a26  gcc/testsuite/gcc.target/riscv/movdibgtu-zicond.c
! d242284a10e5b8131ed6f78d4ec9aaba  gcc/testsuite/gcc.target/riscv/movdibgtu.c
! a8ef2a8b7a209c914b28b87b444dfec6  gcc/testsuite/gcc.target/riscv/movdible-thead.c
! 7168a3a87132629b42f059dc17cda5ae  gcc/testsuite/gcc.target/riscv/movdible-ventana.c
! 61c2fcf678ad89a877b473e58d6690ca  gcc/testsuite/gcc.target/riscv/movdible-zicond.c
! eea20e8b5cf1720fc7942f3899f48dbf  gcc/testsuite/gcc.target/riscv/movdible.c
! 8788a8fba3937aa99426763c5c89af3c  gcc/testsuite/gcc.target/riscv/movdibleu-thead.c
! b2f5a505f847b8a4cd0506999e5226e2  gcc/testsuite/gcc.target/riscv/movdibleu-ventana.c
! fee6577bfcc13f195b42772b477dfd22  gcc/testsuite/gcc.target/riscv/movdibleu-zicond.c
! aada56ce11edf88feec6c796c2037ead  gcc/testsuite/gcc.target/riscv/movdibleu.c
! c2393650d4bc1552dcdbcf7dc2d6a41f  gcc/testsuite/gcc.target/riscv/movdiblt-thead.c
! 901ee4d7b01da738d30f687ec6e1252a  gcc/testsuite/gcc.target/riscv/movdiblt-ventana.c
! 59a714df13dfa93c30f0d323faa72d1f  gcc/testsuite/gcc.target/riscv/movdiblt-zicond.c
! 0d7984ab0540d499b22fff85b101520b  gcc/testsuite/gcc.target/riscv/movdiblt.c
! 198aa2e6fd751f6550f0a84370d98d6f  gcc/testsuite/gcc.target/riscv/movdibltu-thead.c
! cc390251c028abae797df3a5a71877b1  gcc/testsuite/gcc.target/riscv/movdibltu-ventana.c
! 016a917111a838a58d7ccead9fa7567e  gcc/testsuite/gcc.target/riscv/movdibltu-zicond.c
! 5d2ec331e7d734f9cc56bdb528acf270  gcc/testsuite/gcc.target/riscv/movdibltu.c
! 2c35bf6e106d1c8f9c8362ae8c1b2f0e  gcc/testsuite/gcc.target/riscv/movdibne-thead.c
! 28f8e12e63f62a4ad63975a25c65e1a9  gcc/testsuite/gcc.target/riscv/movdibne-ventana.c
! 3a39506bd5d62932c5e31ec54ad455ac  gcc/testsuite/gcc.target/riscv/movdibne-zicond.c
! 43f16d96ec185bdfa2fb010111e77906  gcc/testsuite/gcc.target/riscv/movdibne.c
! 03b4b2cedd395b8e8261648c5d9f1d3a  gcc/testsuite/gcc.target/riscv/movdieq-sfb.c
! beec45f5d2f569d5a864b4b76debfe3d  gcc/testsuite/gcc.target/riscv/movdieq-thead.c
! 271cbd94051996280aca9665557f0d75  gcc/testsuite/gcc.target/riscv/movdieq-ventana.c
! 30a3debeab389f45b68934fd72555019  gcc/testsuite/gcc.target/riscv/movdieq-zicond.c
! 27f7e760e78fb68b37f09ce3511e9d89  gcc/testsuite/gcc.target/riscv/movdieq.c
! 00761dfef47970a0deb9b814d0642779  gcc/testsuite/gcc.target/riscv/movdifeq-sfb.c
! 7426c5919958c049aa976bed4d536e0a  gcc/testsuite/gcc.target/riscv/movdifeq-thead.c
! 60c38ea4b2b0f8f8d2d22e0c666b6b06  gcc/testsuite/gcc.target/riscv/movdifeq-ventana.c
! d6e5d23428d95a09a587bdf5c957460d  gcc/testsuite/gcc.target/riscv/movdifeq-zicond.c
! 01549f603f0c0e18feec62d5b8a36eb6  gcc/testsuite/gcc.target/riscv/movdifeq.c
! 906ad13a43646ef3ec82dfd8351b8c83  gcc/testsuite/gcc.target/riscv/movdifge-sfb.c
! ba8c8703590a212f65a6d8b6962a1ef7  gcc/testsuite/gcc.target/riscv/movdifge-thead.c
! b8e5ee5c7c8bdf09cc7f94ec826eaf36  gcc/testsuite/gcc.target/riscv/movdifge-ventana.c
! 76c3d1304c477e30275de39677034945  gcc/testsuite/gcc.target/riscv/movdifge-zicond.c
! 5bcf9bbb954830289d0e4635500697aa  gcc/testsuite/gcc.target/riscv/movdifge.c
! 93f9cf86764f92897729f4a442b27df5  gcc/testsuite/gcc.target/riscv/movdifgt-sfb.c
! 116e34be0ea0b761299327a14d73ebfc  gcc/testsuite/gcc.target/riscv/movdifgt-thead.c
! fe9d6079644b05d8d0bfd1cd576fe160  gcc/testsuite/gcc.target/riscv/movdifgt-ventana.c
! 2ab79754dac00488a99730de25696468  gcc/testsuite/gcc.target/riscv/movdifgt-zicond.c
! 147353a551f255ff3c7aee2268f1bf1b  gcc/testsuite/gcc.target/riscv/movdifgt.c
! 66e1e5e57659b24bee840f276f4d0eff  gcc/testsuite/gcc.target/riscv/movdifle-sfb.c
! bec6f793b00105276cb457021b1568d7  gcc/testsuite/gcc.target/riscv/movdifle-thead.c
! f6274ef0865c1c9abf7daac8870d242c  gcc/testsuite/gcc.target/riscv/movdifle-ventana.c
! 45e78ac6f9062135935ffd03cd4b5b72  gcc/testsuite/gcc.target/riscv/movdifle-zicond.c
! f782d4e6324a449c10ab09447af52c26  gcc/testsuite/gcc.target/riscv/movdifle.c
! 19200da86ca1e85c223e36729ca33c3a  gcc/testsuite/gcc.target/riscv/movdiflt-sfb.c
! 3fc5e5bfae13b6b9f83bd670e53b7011  gcc/testsuite/gcc.target/riscv/movdiflt-thead.c
! 5fbf4cc13f3f54c4c9bd112b6343bd3d  gcc/testsuite/gcc.target/riscv/movdiflt-ventana.c
! 05ea62543cbd9a1b6c8ac53f4a719f15  gcc/testsuite/gcc.target/riscv/movdiflt-zicond.c
! 17082863608e8dad3be7d793d6ced607  gcc/testsuite/gcc.target/riscv/movdiflt.c
! cdc1e9f27dbc43370defab5c50b5a5c4  gcc/testsuite/gcc.target/riscv/movdifne-sfb.c
! ddf429b61f10ff3f38d88477b10e0093  gcc/testsuite/gcc.target/riscv/movdifne-thead.c
! 84720e645eb306d160e8554f4375fa23  gcc/testsuite/gcc.target/riscv/movdifne-ventana.c
! 48c862932ba9e954ac72c33d98314a3d  gcc/testsuite/gcc.target/riscv/movdifne-zicond.c
! 23031dd7643f7351a73a981e0272dcbf  gcc/testsuite/gcc.target/riscv/movdifne.c
! 3b9e874ed2d5b1d34fe46c3de43e4538  gcc/testsuite/gcc.target/riscv/movdige-sfb.c
! 9513e183213785029c9b10ecd608e833  gcc/testsuite/gcc.target/riscv/movdige-thead.c
! 4b5381258175233f516e4f0c9dee0c4e  gcc/testsuite/gcc.target/riscv/movdige-ventana.c
! 1974c383f5f700c136a4ca0341dbdd0e  gcc/testsuite/gcc.target/riscv/movdige-zicond.c
! 2d5e72a7b29ccbc9d6bb0d6bc1dd6e49  gcc/testsuite/gcc.target/riscv/movdige.c
! a22d2ce4aa372e53573384fb9b04a01a  gcc/testsuite/gcc.target/riscv/movdigeu-sfb.c
! 1bb90ed015a986acb92c1808152fb0f7  gcc/testsuite/gcc.target/riscv/movdigeu-thead.c
! ed8658b78aa2918bfaffaf0126186a45  gcc/testsuite/gcc.target/riscv/movdigeu-ventana.c
! 6259fba3c40b74a75163ea2fc3a2f208  gcc/testsuite/gcc.target/riscv/movdigeu-zicond.c
! 51a4e1b52b6733b40033594b5d8bf974  gcc/testsuite/gcc.target/riscv/movdigeu.c
! f32e3b15dcbb04852b50e7acd9b453e4  gcc/testsuite/gcc.target/riscv/movdigt-sfb.c
! 3b44ca54e6f3793aab56bc1920021b7c  gcc/testsuite/gcc.target/riscv/movdigt-thead.c
! a103904ae79a0500453df4bb85c143ed  gcc/testsuite/gcc.target/riscv/movdigt-ventana.c
! 312a9de5c35606c31b32a2353830aa72  gcc/testsuite/gcc.target/riscv/movdigt-zicond.c
! 5af12e219af44a706475194bd2fc2210  gcc/testsuite/gcc.target/riscv/movdigt.c
! 23646a5d7fad8efc04c59835771821b2  gcc/testsuite/gcc.target/riscv/movdigtu-sfb.c
! ea72d2e0b2bff6b93200b10174f75c97  gcc/testsuite/gcc.target/riscv/movdigtu-thead.c
! 32d428989efa80ca816c3d3534e8e43f  gcc/testsuite/gcc.target/riscv/movdigtu-ventana.c
! a1700a58697655bede9646ea5dab29a7  gcc/testsuite/gcc.target/riscv/movdigtu-zicond.c
! 549bfd645bbe1aa6e16c8376391995f1  gcc/testsuite/gcc.target/riscv/movdigtu.c
! a57d4908be4cfa9e546c6177d5895e58  gcc/testsuite/gcc.target/riscv/movdile-sfb.c
! 2cbe8e2c8f9c13a5501a66bb59f89ba6  gcc/testsuite/gcc.target/riscv/movdile-thead.c
! a29f4817c34faa34af75516ac21e41d6  gcc/testsuite/gcc.target/riscv/movdile-ventana.c
! 1ec002e9036f2bfede6d9597d14c84cd  gcc/testsuite/gcc.target/riscv/movdile-zicond.c
! 310834405d4344b813eb5104008fdb37  gcc/testsuite/gcc.target/riscv/movdile.c
! fb9b7e7c64a6c9459c96496b1710023c  gcc/testsuite/gcc.target/riscv/movdileu-sfb.c
! cded6abdb8f0d07fffb46dbe4ceeae02  gcc/testsuite/gcc.target/riscv/movdileu-thead.c
! 63577849938470e43cc06d9876a442ad  gcc/testsuite/gcc.target/riscv/movdileu-ventana.c
! c6c834c9ccaf4b94d6fe4d054e5f4c7e  gcc/testsuite/gcc.target/riscv/movdileu-zicond.c
! aff91dced2982f2a63152f14618ba0c0  gcc/testsuite/gcc.target/riscv/movdileu.c
! b5b205ccdf7dc896861fbf062e7a365f  gcc/testsuite/gcc.target/riscv/movdilt-sfb.c
! 3ba68e8c227cab686a205564d66bb63e  gcc/testsuite/gcc.target/riscv/movdilt-thead.c
! e578bc8487439b218f3e08b5e45a1fd6  gcc/testsuite/gcc.target/riscv/movdilt-ventana.c
! c7052710c1b3b6050508182cc0aa77d9  gcc/testsuite/gcc.target/riscv/movdilt-zicond.c
! abc376851650ccf4a457e534b0ebdb18  gcc/testsuite/gcc.target/riscv/movdilt.c
! f1f0f5a32aed441dbb23dfed2bf47a90  gcc/testsuite/gcc.target/riscv/movdiltu-sfb.c
! 5740514990d7d998eabbe689fe1db6d5  gcc/testsuite/gcc.target/riscv/movdiltu-thead.c
! 8a5d731e4b45f40f5ab5f552371a8118  gcc/testsuite/gcc.target/riscv/movdiltu-ventana.c
! ebe568208aee643339fd6d2ddcb42bac  gcc/testsuite/gcc.target/riscv/movdiltu-zicond.c
! de07f3e99517c7dc53743301932992e7  gcc/testsuite/gcc.target/riscv/movdiltu.c
! 5cf9d2f8c4703cb8df9af88305f1a212  gcc/testsuite/gcc.target/riscv/movdine-sfb.c
! 53015db5b86bdeb00bd4f252d15ece8b  gcc/testsuite/gcc.target/riscv/movdine-thead.c
! d6f81ef9e309e0c036cd5de8ec615f33  gcc/testsuite/gcc.target/riscv/movdine-ventana.c
! fd5611be542b52e9175b471f2cf9a695  gcc/testsuite/gcc.target/riscv/movdine-zicond.c
! e81b9e401f34e4b0d48235c18dda6e4f  gcc/testsuite/gcc.target/riscv/movdine.c
! 2ba3f3717af31692133d603c40b102b5  gcc/testsuite/gcc.target/riscv/movsibeq-thead.c
! aae43785991bbcf2e24cc57220721313  gcc/testsuite/gcc.target/riscv/movsibeq-ventana.c
! d521221db41ee8dae67e8696c2870733  gcc/testsuite/gcc.target/riscv/movsibeq-zicond.c
! 3ff6347d468da3a9de20bbb54475735d  gcc/testsuite/gcc.target/riscv/movsibeq.c
! c1120e577fde375569db2ebadc9469d6  gcc/testsuite/gcc.target/riscv/movsibfeq-ventana.c
! 072b07643c970d1ba2f6ab35f619b808  gcc/testsuite/gcc.target/riscv/movsibfeq-zicond.c
! d56dc8849c55cc471e0e77279c9ee8f2  gcc/testsuite/gcc.target/riscv/movsibfeq.c
! 28dfb90a348e1e8ccb3207c61fcdf11f  gcc/testsuite/gcc.target/riscv/movsibfge-ventana.c
! 7d6f604bea5da043bfa5f63aa5d645fd  gcc/testsuite/gcc.target/riscv/movsibfge-zicond.c
! 550fc9fb4d08adadff2bf614cabee4cc  gcc/testsuite/gcc.target/riscv/movsibfge.c
! 5e66d9be04f18c68d3c386e96b948ecf  gcc/testsuite/gcc.target/riscv/movsibfgt-ventana.c
! c8bb575755057cff36703ddfaf611f21  gcc/testsuite/gcc.target/riscv/movsibfgt-zicond.c
! a26271c2b14acd121e6d91f4db1283f7  gcc/testsuite/gcc.target/riscv/movsibfgt.c
! 05d15aa11f384d876296ad98b03330eb  gcc/testsuite/gcc.target/riscv/movsibfle-ventana.c
! 5f819c84f823bfc9742d51b209eff681  gcc/testsuite/gcc.target/riscv/movsibfle-zicond.c
! ed2355c3a0c8c07bf804d14c60b04a97  gcc/testsuite/gcc.target/riscv/movsibfle.c
! a9aa69b580d75dc23eaf6556b1e33dd4  gcc/testsuite/gcc.target/riscv/movsibflt-ventana.c
! 188d4aebc4aa72ad83aed4dded51ce7e  gcc/testsuite/gcc.target/riscv/movsibflt-zicond.c
! 04966f1e55f8bc5c2e090167f1d087b8  gcc/testsuite/gcc.target/riscv/movsibflt.c
! a1bdb908bfa0b7e57fd9e65a772945cb  gcc/testsuite/gcc.target/riscv/movsibfne-ventana.c
! d957f544716acc0acc26bacc55c1d40e  gcc/testsuite/gcc.target/riscv/movsibfne-zicond.c
! a0c8462d4751cee99a5b092b32afc75f  gcc/testsuite/gcc.target/riscv/movsibfne.c
! d064d89f4ee334399c8df311b6048b61  gcc/testsuite/gcc.target/riscv/movsibge-thead.c
! a111a09e35cead3964ee9f61f7d1e445  gcc/testsuite/gcc.target/riscv/movsibge-ventana.c
! 201c48d30fe3c5b79f151dcc0a3d42f0  gcc/testsuite/gcc.target/riscv/movsibge-zicond.c
! 78e80be356c8d2da3750f02caf1648a9  gcc/testsuite/gcc.target/riscv/movsibge.c
! 6762c4106f02f100f930ee3b791792aa  gcc/testsuite/gcc.target/riscv/movsibgeu-thead.c
! 201fb8c58447d71c874213c9c07a8f56  gcc/testsuite/gcc.target/riscv/movsibgeu-ventana.c
! 57d248e01f8c4bb28cb5c956229c55c8  gcc/testsuite/gcc.target/riscv/movsibgeu-zicond.c
! 9f6e44827c376769c25c69d66e4d095f  gcc/testsuite/gcc.target/riscv/movsibgeu.c
! 650e971849e47f20bf1ffaf9f215e35d  gcc/testsuite/gcc.target/riscv/movsibgt-thead.c
! 05d0ec5b907a6a4cfd7dc648537c115d  gcc/testsuite/gcc.target/riscv/movsibgt-ventana.c
! 091ac4153679ec6dd143673b341dcdb3  gcc/testsuite/gcc.target/riscv/movsibgt-zicond.c
! ea71f0de536460db7399741032c53f90  gcc/testsuite/gcc.target/riscv/movsibgt.c
! bb56cd50d0fb4506a617f1b53f0d0ab1  gcc/testsuite/gcc.target/riscv/movsibgtu-thead.c
! 8a9b80897ca03c6810d92c9848f528e8  gcc/testsuite/gcc.target/riscv/movsibgtu-ventana.c
! b6607ee42c786c82b43b38141aea6992  gcc/testsuite/gcc.target/riscv/movsibgtu-zicond.c
! 8e6a099073498b9821355aa7f193338a  gcc/testsuite/gcc.target/riscv/movsibgtu.c
! 43c65b7ef6646af6ca00af3eaa64b011  gcc/testsuite/gcc.target/riscv/movsible-thead.c
! 0484d28cdc10246aee93cd9d1c7b6921  gcc/testsuite/gcc.target/riscv/movsible-ventana.c
! a0f705dcb1a7c1d9fe569a452cb22085  gcc/testsuite/gcc.target/riscv/movsible-zicond.c
! 37a64b69ac9e03381c77efc90355efbb  gcc/testsuite/gcc.target/riscv/movsible.c
! 197f036e65ee594b25ea9d147b438114  gcc/testsuite/gcc.target/riscv/movsibleu-thead.c
! a561a734459f506e939b35367baa2959  gcc/testsuite/gcc.target/riscv/movsibleu-ventana.c
! 4e323bcfcb5894f0fdd8bc021a57c72f  gcc/testsuite/gcc.target/riscv/movsibleu-zicond.c
! d91211b3bd4517b699b41aa5638d33f1  gcc/testsuite/gcc.target/riscv/movsibleu.c
! a627b44d9999b74dec52da8abc9f3df9  gcc/testsuite/gcc.target/riscv/movsiblt-thead.c
! 5a4c6c5c5d7b084a3b3c734e6c3b1c16  gcc/testsuite/gcc.target/riscv/movsiblt-ventana.c
! c46dccb5b794724525d7a28974ddf84a  gcc/testsuite/gcc.target/riscv/movsiblt-zicond.c
! 45ec535d11374df228a07e9d49641f86  gcc/testsuite/gcc.target/riscv/movsiblt.c
! 35e40ffae8d7d79aea46975fe3776a38  gcc/testsuite/gcc.target/riscv/movsibltu-thead.c
! 663a6c5de20c1bd7cc36569d13430127  gcc/testsuite/gcc.target/riscv/movsibltu-ventana.c
! fec2e41c69146afb9931e9e4790815ac  gcc/testsuite/gcc.target/riscv/movsibltu-zicond.c
! dca530a29e0019cf2e455818473a8a96  gcc/testsuite/gcc.target/riscv/movsibltu.c
! 0e3abe70f25d1425e6f535c5bbe96a1b  gcc/testsuite/gcc.target/riscv/movsibne-thead.c
! 52a0fc03d32b67e6061f2e6481190f25  gcc/testsuite/gcc.target/riscv/movsibne-ventana.c
! c3d7327ff099a4cbafbdd629dc33e088  gcc/testsuite/gcc.target/riscv/movsibne-zicond.c
! 743197e59cc7b101e74e1b05150abada  gcc/testsuite/gcc.target/riscv/movsibne.c
! c6b123aa70c31062c6e85b5455e1bf50  gcc/testsuite/gcc.target/riscv/movsieq-sfb.c
! cb3aac08634049421bc28cd170648cf0  gcc/testsuite/gcc.target/riscv/movsieq-thead.c
! d7b26354c5599ab778fdddb304a9ec97  gcc/testsuite/gcc.target/riscv/movsieq-ventana.c
! c05de17cd35ca846eff65ace7b445213  gcc/testsuite/gcc.target/riscv/movsieq-zicond.c
! 306de19e06fea81c8614fbd3668a279c  gcc/testsuite/gcc.target/riscv/movsieq.c
! 826f54239cf064dc189d40a380abf824  gcc/testsuite/gcc.target/riscv/movsifeq-sfb.c
! 4a27b027877ced7d9fb544489802fd7b  gcc/testsuite/gcc.target/riscv/movsifeq-thead.c
! 0a54500fdbb3b3aeda9a79699872b366  gcc/testsuite/gcc.target/riscv/movsifeq-ventana.c
! f267c4894f6a51dc6ba17c30c6d5dc75  gcc/testsuite/gcc.target/riscv/movsifeq-zicond.c
! 8f40aeebd1708e04cec70a88c1d32a6c  gcc/testsuite/gcc.target/riscv/movsifeq.c
! 0aa262bb109660853c9a5930c3630905  gcc/testsuite/gcc.target/riscv/movsifge-sfb.c
! 9f994e1dd2a88570d3a2541897fd350c  gcc/testsuite/gcc.target/riscv/movsifge-thead.c
! 55324731211e9ef084bb366783edbd9e  gcc/testsuite/gcc.target/riscv/movsifge-ventana.c
! 726e93b923598b2d1171953ec56522a9  gcc/testsuite/gcc.target/riscv/movsifge-zicond.c
! a960a34bb52e8b601a5a2cdbd13f4cbe  gcc/testsuite/gcc.target/riscv/movsifge.c
! f3d6890cd7694e4ea38a6683e6102a95  gcc/testsuite/gcc.target/riscv/movsifgt-sfb.c
! 6487c6939fe5f09a71a489e98fa6fb90  gcc/testsuite/gcc.target/riscv/movsifgt-thead.c
! 574369a1677e84c1cdaf3f5777c09f7a  gcc/testsuite/gcc.target/riscv/movsifgt-ventana.c
! 06aeb1e50844a16b4ce6fe19ea34664f  gcc/testsuite/gcc.target/riscv/movsifgt-zicond.c
! 9af4426643cc353936a6a332b402e085  gcc/testsuite/gcc.target/riscv/movsifgt.c
! 7ea6989e5bdbe8d4ece0c2f1049b6733  gcc/testsuite/gcc.target/riscv/movsifle-sfb.c
! 4fbfee7373af0031ea05cbcd57c9fff6  gcc/testsuite/gcc.target/riscv/movsifle-thead.c
! 43fabdddc5aeb7e9595c1032b48f8147  gcc/testsuite/gcc.target/riscv/movsifle-ventana.c
! cb8a964028ab09d8afac76d67b0e8e8b  gcc/testsuite/gcc.target/riscv/movsifle-zicond.c
! 48364bc2a318da4acf4eeffe4625a834  gcc/testsuite/gcc.target/riscv/movsifle.c
! 42000026cde28443d007a4e5ac55b98b  gcc/testsuite/gcc.target/riscv/movsiflt-sfb.c
! 4640c5f23cc13c03516932739c11f456  gcc/testsuite/gcc.target/riscv/movsiflt-thead.c
! df88c8e2960ddcf54a43282e84deaf39  gcc/testsuite/gcc.target/riscv/movsiflt-ventana.c
! c415436701988065803a0b64cc895ab9  gcc/testsuite/gcc.target/riscv/movsiflt-zicond.c
! edc338197b361fe9593a12dcec661589  gcc/testsuite/gcc.target/riscv/movsiflt.c
! b83795d094ce4f5a88af6109122f1c83  gcc/testsuite/gcc.target/riscv/movsifne-sfb.c
! a0d00e53d4d43420543b1e7b82141e42  gcc/testsuite/gcc.target/riscv/movsifne-thead.c
! 7a46337050af6855a26c1b425ec91379  gcc/testsuite/gcc.target/riscv/movsifne-ventana.c
! b5d8160c4ef9b8dd0caf535446e8b9ef  gcc/testsuite/gcc.target/riscv/movsifne-zicond.c
! b52940e727c905cf713fdf559871c6d9  gcc/testsuite/gcc.target/riscv/movsifne.c
! 6a0525837e017777ede55bfa4b00fb2e  gcc/testsuite/gcc.target/riscv/movsige-sfb.c
! 486500b42a2c23741291d04f02a74527  gcc/testsuite/gcc.target/riscv/movsige-thead.c
! 5540d73a7ff68024614e6d3a5ce87725  gcc/testsuite/gcc.target/riscv/movsige-ventana.c
! cf7e06facbf1878d84ef96e43955f2dd  gcc/testsuite/gcc.target/riscv/movsige-zicond.c
! a34681012d9d778acc6f0ae5022061f1  gcc/testsuite/gcc.target/riscv/movsige.c
! 478a1f4f88cfef62b27f2f2da11b48a2  gcc/testsuite/gcc.target/riscv/movsigeu-sfb.c
! 1df34f6c44267afab61f3b000009e7c0  gcc/testsuite/gcc.target/riscv/movsigeu-thead.c
! a71c975aefff9e25c1c734fe8e107e5a  gcc/testsuite/gcc.target/riscv/movsigeu-ventana.c
! 2161808adcf32936789519a5cfb537c5  gcc/testsuite/gcc.target/riscv/movsigeu-zicond.c
! 0d59499365f5ed80493e3077f0fc3c0b  gcc/testsuite/gcc.target/riscv/movsigeu.c
! 0a3af69beadab56957b6bca5f8aba7c6  gcc/testsuite/gcc.target/riscv/movsigt-sfb.c
! 665da85a4f4929c4117c8e19178b9c61  gcc/testsuite/gcc.target/riscv/movsigt-thead.c
! ed1b07a285aaede384b2801f622da763  gcc/testsuite/gcc.target/riscv/movsigt-ventana.c
! 2e2603b74fdf030e79edce1d7831174f  gcc/testsuite/gcc.target/riscv/movsigt-zicond.c
! 421bc1a0814350a8e06c2635b0a776d8  gcc/testsuite/gcc.target/riscv/movsigt.c
! b27eec54c4e1310bd3122144a64b16e7  gcc/testsuite/gcc.target/riscv/movsigtu-sfb.c
! 8f2806ea62b7f85e1679d9c6c7efcb1b  gcc/testsuite/gcc.target/riscv/movsigtu-thead.c
! 5e69a2677d15890b7dd5dace9e1ad433  gcc/testsuite/gcc.target/riscv/movsigtu-ventana.c
! b41dabd945c21362d05cfda95624d742  gcc/testsuite/gcc.target/riscv/movsigtu-zicond.c
! 98c9a7278f13fdbc8cedcf9fbf21f44e  gcc/testsuite/gcc.target/riscv/movsigtu.c
! ef7fecfc17af2178627f142209f1c982  gcc/testsuite/gcc.target/riscv/movsile-sfb.c
! bbb3d2e838d9aafb314de31769263f2c  gcc/testsuite/gcc.target/riscv/movsile-thead.c
! 4d315f05895502c6b21fe9af51a9aacf  gcc/testsuite/gcc.target/riscv/movsile-ventana.c
! fa326c0ff3c7bf7a579e5b61ac9ab1bd  gcc/testsuite/gcc.target/riscv/movsile-zicond.c
! a740b33df536a1d246f7c6bea9f775fd  gcc/testsuite/gcc.target/riscv/movsile.c
! 8eade0e7a10a5d078143c306369e5163  gcc/testsuite/gcc.target/riscv/movsileu-sfb.c
! 3ec7a51ee316a6f531fc56e97d7a03f1  gcc/testsuite/gcc.target/riscv/movsileu-thead.c
! b5ef0d03c4870e72f436aa59a3751da7  gcc/testsuite/gcc.target/riscv/movsileu-ventana.c
! 630f8e8b12c39573af1a0b4c413e160b  gcc/testsuite/gcc.target/riscv/movsileu-zicond.c
! d96ebe63f2d292e39051e88b05279531  gcc/testsuite/gcc.target/riscv/movsileu.c
! d2ccf04c3c498e7181b070f27bf7f6a0  gcc/testsuite/gcc.target/riscv/movsilt-sfb.c
! df399fbf0939a9614e990940cf59d191  gcc/testsuite/gcc.target/riscv/movsilt-thead.c
! 9e18bba886fcac2f4926cc2fa54fbef6  gcc/testsuite/gcc.target/riscv/movsilt-ventana.c
! a470527192bcbdc14d947dcee63857fb  gcc/testsuite/gcc.target/riscv/movsilt-zicond.c
! 4388f437602ae503bce8f3552a5bd141  gcc/testsuite/gcc.target/riscv/movsilt.c
! b7f9af4c0f42998a52b207cf7cfc08b6  gcc/testsuite/gcc.target/riscv/movsiltu-sfb.c
! 38ba9d161a6b618a40e59c81d41aa412  gcc/testsuite/gcc.target/riscv/movsiltu-thead.c
! fd3856fba038d4964191d25348c5467e  gcc/testsuite/gcc.target/riscv/movsiltu-ventana.c
! 9e41ba7de47885e549ac33f957fc6b15  gcc/testsuite/gcc.target/riscv/movsiltu-zicond.c
! 4f5b4933405db5c6e3c544e0ec91cd22  gcc/testsuite/gcc.target/riscv/movsiltu.c
! 47b58cafdaf2952a775f957de8af697b  gcc/testsuite/gcc.target/riscv/movsine-sfb.c
! 588e96293a911ba70f95468ee47dd0a4  gcc/testsuite/gcc.target/riscv/movsine-thead.c
! 90c60169a813bc3db939fec2afb948ac  gcc/testsuite/gcc.target/riscv/movsine-ventana.c
! 73ac086a6350a2e7865bdbc352405e64  gcc/testsuite/gcc.target/riscv/movsine-zicond.c
! 97f9561be11e1f721604f8840fb7f704  gcc/testsuite/gcc.target/riscv/movsine.c
  91df64335c75c89ed2e21716fe77a561  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-1.c
  b31f65298e8fa9f53bbc717e292604ee  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-2.c
  6d72ece3cc973413992f5f3e461dcc16  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-3.c
  0e192329c5363879dee5cc5b45ffb179  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-4.c
  da347ad3915925dff635c7bebc36013c  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-test.c
  1be860f202994bc8fe2857bdb115b447  gcc/testsuite/gcc.target/riscv/pr102957-2.c
  c2ea2036045469f1056fc7689ee62c7f  gcc/testsuite/gcc.target/riscv/pr102957.c
  c70df77dca2d9d059e9b22e279613d45  gcc/testsuite/gcc.target/riscv/pr103302.c
  78659ffafd452ac6a43859083b99d8ae  gcc/testsuite/gcc.target/riscv/pr104140.c
! 72b5da991f349fba3cb365ca26cc4475  gcc/testsuite/gcc.target/riscv/pr105314-rtl.c
! 9edc4853890d0ce6b91740b72c8b5504  gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c
! 8ea2755ae5b8a9d887c149fa0cde645c  gcc/testsuite/gcc.target/riscv/pr105314.c
  488d01f6a52c713a85a02ef3f9147fe8  gcc/testsuite/gcc.target/riscv/pr105666.c
  e2d715acc45ff1c4de4202ff85ed13eb  gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c
  a4140e65ee8a24c14a0a9a63e5f92a62  gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c
  fd454cbbc31e7c4bb8e24d07543b8255  gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c
  ab2cb1a5b51bf68796e53fde679618cc  gcc/testsuite/gcc.target/riscv/pr106888.c
  ec6ec43c9e76076efb0caf7fd6975bd5  gcc/testsuite/gcc.target/riscv/pr107786-2.c
  5201d6361bb5315fd35a51ff807d7115  gcc/testsuite/gcc.target/riscv/pr107786.c
  51045cfa092b03d9038e7cab9be1693f  gcc/testsuite/gcc.target/riscv/pr108987.c
! 2dff48c2cbadd1b5f5afb4808e4eadff  gcc/testsuite/gcc.target/riscv/pr109508.c
! 85bb086e76a60b454232f2f03f8d0410  gcc/testsuite/gcc.target/riscv/pr110696.c
  d771b9d4c4a59ff2544a46afb1a11b23  gcc/testsuite/gcc.target/riscv/pr110748-1.c
  d43a8e3428c1b09d9777c42aad2d8f48  gcc/testsuite/gcc.target/riscv/pr111466.c
  3d20448ba5b8832a124255aa2e84a97f  gcc/testsuite/gcc.target/riscv/pr112478.c
  15f456db6fb5e46494c853d4c141ca96  gcc/testsuite/gcc.target/riscv/pr113095.c
  9bb9353191b107cdeaf920a4e0796e31  gcc/testsuite/gcc.target/riscv/pr113742.c
! 6baf707cfad842b6b5ac2a6e7339e8ae  gcc/testsuite/gcc.target/riscv/pr114130.c
  ac7457bb5fc81b14b0c132cfa32ee677  gcc/testsuite/gcc.target/riscv/pr114639-1.c
  8ff44c408c80d6686eacf2c8c9416fb4  gcc/testsuite/gcc.target/riscv/pr114639-2.c
  d23feb07adfb6b3ced3305b407aec532  gcc/testsuite/gcc.target/riscv/pr114639-3.c
  f46adfcb0ab8e2f3319ce8af66b9e8af  gcc/testsuite/gcc.target/riscv/pr114639-4.c
  f0b41209db06b303281bab8653ccc681  gcc/testsuite/gcc.target/riscv/pr115554.c
  5d96808a20d3d61ddbee7bededff9c82  gcc/testsuite/gcc.target/riscv/pr115562.c
! 2c4e6161b6bc65074a6cc478eac6d34a  gcc/testsuite/gcc.target/riscv/pr116035-1.c
! d2bab4b0f1ee71cc04c15b44fec61196  gcc/testsuite/gcc.target/riscv/pr116035-2.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
- 45701f43caab393ac02416313089852f  gcc/testsuite/gcc.target/riscv/pr89835.c
  c2ac0b53d6af56f5ec5bded3d252dddc  gcc/testsuite/gcc.target/riscv/pr93202.c
  01c8227bf1b5efa52e434a407c33930d  gcc/testsuite/gcc.target/riscv/pr93304.c
  f95453a04d25316c015010a3d66699b8  gcc/testsuite/gcc.target/riscv/pr95252.c
  755ab5aaa59ce32ddfd25ae8f503af35  gcc/testsuite/gcc.target/riscv/pr95632.c
  2a0b4380ee3a1ae8c2f449020e1caa54  gcc/testsuite/gcc.target/riscv/pr95683.c
  4a09604ef4cdb81da6aaf6179b4347d1  gcc/testsuite/gcc.target/riscv/pr96759.c
! 06f027ca6a8c58be75a7b860dc39bf86  gcc/testsuite/gcc.target/riscv/pr98777.c
  576ffdec066d69c35af0753463b174ae  gcc/testsuite/gcc.target/riscv/pr99702.c
! 852b79684636e59b5256a91f2a529ba2  gcc/testsuite/gcc.target/riscv/predef-1.c
  631c168c77a9af0c773050bef4b8943f  gcc/testsuite/gcc.target/riscv/predef-10.c
  318dab274ae6db996cba3a94694e749d  gcc/testsuite/gcc.target/riscv/predef-11.c
  a2c9fa03a9dd9f49ac1497ec91ae9cca  gcc/testsuite/gcc.target/riscv/predef-12.c
  2af91f6e2a8bb287637fa5e65bc7f6a5  gcc/testsuite/gcc.target/riscv/predef-13.c
! 67f7abc735dbed9d29b85072fde9a24f  gcc/testsuite/gcc.target/riscv/predef-14.c
! 9088f8403241134b8270db2df6d9b679  gcc/testsuite/gcc.target/riscv/predef-15.c
! 57227b90a217d586094bff4595f9815d  gcc/testsuite/gcc.target/riscv/predef-16.c
  981b22f8d0822eb392cc684aea295a02  gcc/testsuite/gcc.target/riscv/predef-17.c
  a335b5e1909d390294a0a65a294b3327  gcc/testsuite/gcc.target/riscv/predef-18.c
  7467c900a7a5a13d2990492333310a6c  gcc/testsuite/gcc.target/riscv/predef-19.c
--- 87848,88271 ----
  57f649a10ed040fea307c1dff4e5f1c7  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-3.c
  fee79ad9a3947e1e6e8791239807aeb4  gcc/testsuite/gcc.target/riscv/interrupt-misaligned.c
  a0ec9e9b1278bec59b5f6fb4473ae0be  gcc/testsuite/gcc.target/riscv/interrupt-mmode.c
+ 1f185dea80449f2a4c268c953b9fbe22  gcc/testsuite/gcc.target/riscv/interrupt-no-lpad.c
  756572791a9293ef57d0855c156c1c04  gcc/testsuite/gcc.target/riscv/interrupt-smode.c
  1cc7f11cb8b3790c544cfd62150e6d44  gcc/testsuite/gcc.target/riscv/interrupt-umode.c
! 278f220a2e34d94cefdb9ca25089a8fb  gcc/testsuite/gcc.target/riscv/jump-table-large-code-model.c
! 4fb2a135047684bf2c5c829019b86d4a  gcc/testsuite/gcc.target/riscv/large-model.c
  9ae56141fab814505fcf7366ef12db85  gcc/testsuite/gcc.target/riscv/li.c
  6308e09d3e5133433b97e26dcb02daba  gcc/testsuite/gcc.target/riscv/load-immediate.c
  7530069d23aa7990ff78ecce4ac40cae  gcc/testsuite/gcc.target/riscv/losum-overflow.c
+ 7a85a9d76321b19b1c9a5242b0715dd4  gcc/testsuite/gcc.target/riscv/matrix_add_const.c
  921c846f9d343bd139a635f83e6db437  gcc/testsuite/gcc.target/riscv/mcpu-1.c
  84a4693e36dd49686414997cb37fc127  gcc/testsuite/gcc.target/riscv/mcpu-2.c
  269992894322ca9fb2bc9217752bd689  gcc/testsuite/gcc.target/riscv/mcpu-3.c
  297b97dda64e94096f17b8881a96ba7c  gcc/testsuite/gcc.target/riscv/mcpu-4.c
  efcb2d5344bde460bcbee76b9e33c09d  gcc/testsuite/gcc.target/riscv/mcpu-5.c
! b1501e176991bdafb852ead7111b522d  gcc/testsuite/gcc.target/riscv/mcpu-6.c
! 37fcd96e3fe6090dd8f4bc56dc45afb5  gcc/testsuite/gcc.target/riscv/mcpu-7.c
  5159d9e2aee2c7fa385187b01c43e187  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p450.c
  11dd7483f027ab8263d3f7bf312bc40f  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p670.c
  0f7ebc2d65ebdb64c7b00775db650cdd  gcc/testsuite/gcc.target/riscv/mcpu-sifive-x280.c
  d66b77cd3223498c6e933305c7a7ca13  gcc/testsuite/gcc.target/riscv/mcpu-thead-c906.c
! 80b46a59e47fe5cb83685a398cf89368  gcc/testsuite/gcc.target/riscv/mcpu-tt-ascalon-d8.c
! 65e147ffc7d34e1068d4e84bee668245  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-nanhu.c
! 3311f6659838594b5135f5297b263bd1  gcc/testsuite/gcc.target/riscv/mem-extend.c
! 16126a8d4ef67d573cd4276fa7c8cb6f  gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c
! 2dd2de1f802134107e9ed820836a3aa7  gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c
  ec03a01a1787f67f3d9feb5acba7fd89  gcc/testsuite/gcc.target/riscv/mode-switch-ice-1.c
! 6848b85ab3570b65139ea6c4658e61b0  gcc/testsuite/gcc.target/riscv/modifier-N-fpr.c
! a1630360b2c45ec8e92047ad6e304a8f  gcc/testsuite/gcc.target/riscv/modifier-N-vr.c
! 8dd4af54ec9d2d0fb7eaccaa1ba16580  gcc/testsuite/gcc.target/riscv/modifier-N.c
! e073a67378bfa869c238e8dc7dcd71e3  gcc/testsuite/gcc.target/riscv/movdibeq-thead.c
! 62893088ff31ab7599a6b8e567150c3a  gcc/testsuite/gcc.target/riscv/movdibeq-ventana.c
! e29b6362ebe475b74b8eaa7ade0f90f3  gcc/testsuite/gcc.target/riscv/movdibeq-zicond.c
! 12712396645317eaad79ee24fa1a9d99  gcc/testsuite/gcc.target/riscv/movdibeq.c
! e14492c866a95d68a7ba1909716097e2  gcc/testsuite/gcc.target/riscv/movdibfeq-ventana.c
! 6a7dc2b236fffa3be585992b0115ad34  gcc/testsuite/gcc.target/riscv/movdibfeq-zicond.c
! dc03c4dd0c06794cc188832fb4c3749d  gcc/testsuite/gcc.target/riscv/movdibfeq.c
! 669eb936faf952c1f6ad7844177f0a4e  gcc/testsuite/gcc.target/riscv/movdibfge-ventana.c
! cd3e7e71b52eaeb71f5365b520660e7a  gcc/testsuite/gcc.target/riscv/movdibfge-zicond.c
! 8aee82f35eb117b6880ce02b2dfc5eca  gcc/testsuite/gcc.target/riscv/movdibfge.c
! 7f5ee6d78c0c739aa16b3e5dff8be926  gcc/testsuite/gcc.target/riscv/movdibfgt-ventana.c
! 250bf8878bfefc51851c4ac5aa8a3158  gcc/testsuite/gcc.target/riscv/movdibfgt-zicond.c
! 44822c2506db5dce73bb27679ca31b58  gcc/testsuite/gcc.target/riscv/movdibfgt.c
! a89c6058becf43909be1e2ea7db694bf  gcc/testsuite/gcc.target/riscv/movdibfle-ventana.c
! 05e930276c9c806489314e91a2442254  gcc/testsuite/gcc.target/riscv/movdibfle-zicond.c
! 9f1b43572c4eda965c266344c3c5c514  gcc/testsuite/gcc.target/riscv/movdibfle.c
! eee4551c016c55b017fd5cda14033b89  gcc/testsuite/gcc.target/riscv/movdibflt-ventana.c
! 1dadc56191e5cb2f84142f714f5c021b  gcc/testsuite/gcc.target/riscv/movdibflt-zicond.c
! 48a5b883840ab261c9eb73d6bf179eac  gcc/testsuite/gcc.target/riscv/movdibflt.c
! 62e6a4974a2180eb33d246829883f584  gcc/testsuite/gcc.target/riscv/movdibfne-ventana.c
! ba83ac1a4c0acda80c40f521273c5940  gcc/testsuite/gcc.target/riscv/movdibfne-zicond.c
! 9b16f1c95b7b6abc596a472814471407  gcc/testsuite/gcc.target/riscv/movdibfne.c
! 5049b9d4b424b9f8bc8b79c643b12c98  gcc/testsuite/gcc.target/riscv/movdibge-thead.c
! e2303604810634ed1b850ad5bac7c1c9  gcc/testsuite/gcc.target/riscv/movdibge-ventana.c
! 17f9181c4d71e47738e9f1d9bf31b765  gcc/testsuite/gcc.target/riscv/movdibge-zicond.c
! f9e0c703323e903a17f6cabec99e46df  gcc/testsuite/gcc.target/riscv/movdibge.c
! e1c20ef3a92b7b75524f4d5149b0405d  gcc/testsuite/gcc.target/riscv/movdibgeu-thead.c
! 613ee2ca1c420af91b920d4cce2f85fe  gcc/testsuite/gcc.target/riscv/movdibgeu-ventana.c
! 2fec7cead520a6f53317d93caf3213df  gcc/testsuite/gcc.target/riscv/movdibgeu-zicond.c
! e3de99093e83e7f01753dd8db60b9585  gcc/testsuite/gcc.target/riscv/movdibgeu.c
! 236b6bac5d77e69eb865a254813f9344  gcc/testsuite/gcc.target/riscv/movdibgt-thead.c
! 6669d3dc30d90b6ec63b4e1702e80e26  gcc/testsuite/gcc.target/riscv/movdibgt-ventana.c
! e684c858b176f70e940fc73d9ae3d440  gcc/testsuite/gcc.target/riscv/movdibgt-zicond.c
! 9ed97912a1b25058a6f18992089f706b  gcc/testsuite/gcc.target/riscv/movdibgt.c
! 111f2d7e8a97159db6a38c63dad17bdf  gcc/testsuite/gcc.target/riscv/movdibgtu-thead.c
! fe511963c8c322de72edf7908cd71b52  gcc/testsuite/gcc.target/riscv/movdibgtu-ventana.c
! 04c7931cd5933abdec3f0bb24c747576  gcc/testsuite/gcc.target/riscv/movdibgtu-zicond.c
! cfeeac0bf8abc730ada8dd3e2f0f0e11  gcc/testsuite/gcc.target/riscv/movdibgtu.c
! a598ef570b94be75bf5fecce060d24bc  gcc/testsuite/gcc.target/riscv/movdible-thead.c
! 20272208949118740e4538936acbea89  gcc/testsuite/gcc.target/riscv/movdible-ventana.c
! 21f4993172383e079d02d12769d0ef4c  gcc/testsuite/gcc.target/riscv/movdible-zicond.c
! cb79588db6e78ac3e36b1078cde0e33b  gcc/testsuite/gcc.target/riscv/movdible.c
! be2a75ae4e167ebc497c3219e5531e45  gcc/testsuite/gcc.target/riscv/movdibleu-thead.c
! 42b251d48d986ca143fac1f1db6eb612  gcc/testsuite/gcc.target/riscv/movdibleu-ventana.c
! d3211b1dd0984fc0c94a083e14168205  gcc/testsuite/gcc.target/riscv/movdibleu-zicond.c
! a86e3418ccfea1d0bd0978e184e871e0  gcc/testsuite/gcc.target/riscv/movdibleu.c
! 4e7a7dd474a857f61f0f13831900360a  gcc/testsuite/gcc.target/riscv/movdiblt-thead.c
! b70240e530f69e11624147ff81cf6f7b  gcc/testsuite/gcc.target/riscv/movdiblt-ventana.c
! 4c3e518e60eed46bbe36b1f9252b8501  gcc/testsuite/gcc.target/riscv/movdiblt-zicond.c
! c5d8b6ab8fa215d22f1a42820ba75ab2  gcc/testsuite/gcc.target/riscv/movdiblt.c
! f549e9908dc176348e9fa3bc74bbe464  gcc/testsuite/gcc.target/riscv/movdibltu-thead.c
! 905e07c40e71ac064f810518a14b9c73  gcc/testsuite/gcc.target/riscv/movdibltu-ventana.c
! 63c34512de46cabe614be79fbb8e806e  gcc/testsuite/gcc.target/riscv/movdibltu-zicond.c
! 1fe80fcf954173ceda4a829f7a2ca1f6  gcc/testsuite/gcc.target/riscv/movdibltu.c
! c30c8ac355b9c325962eaf7744b957db  gcc/testsuite/gcc.target/riscv/movdibne-thead.c
! 8e5899588a582a05b0ca78ef619a9388  gcc/testsuite/gcc.target/riscv/movdibne-ventana.c
! 583872b4cb042eec194bc5657688ea5b  gcc/testsuite/gcc.target/riscv/movdibne-zicond.c
! a6bde8549513097e481006e1f6032406  gcc/testsuite/gcc.target/riscv/movdibne.c
! 950bc9ccf61abbb73f121c18df357f52  gcc/testsuite/gcc.target/riscv/movdieq-sfb.c
! 03e022163791bc82456686a0796b2aac  gcc/testsuite/gcc.target/riscv/movdieq-thead.c
! 55550c59af1ae4eb1e77f2cb27f370f9  gcc/testsuite/gcc.target/riscv/movdieq-ventana.c
! 0de72f4da7a778fd49b6fc8c5a53dd00  gcc/testsuite/gcc.target/riscv/movdieq-zicond.c
! b37dbc6e841d147e31e105ab5b384cc9  gcc/testsuite/gcc.target/riscv/movdieq.c
! 704da78383750ab617de8ee80c2f9e58  gcc/testsuite/gcc.target/riscv/movdifeq-sfb.c
! 791753f8da2bc9661567bcd5a7315ff5  gcc/testsuite/gcc.target/riscv/movdifeq-thead.c
! e7bdbb3e98c639859db2bfce155c6e05  gcc/testsuite/gcc.target/riscv/movdifeq-ventana.c
! 2d0c1a39a23a17474a23faf577c25b44  gcc/testsuite/gcc.target/riscv/movdifeq-zicond.c
! 3460bc2127c06a9fd2063139153f71cc  gcc/testsuite/gcc.target/riscv/movdifeq.c
! ac9bb3b23f86cbdcb5fb0a85ee8ba712  gcc/testsuite/gcc.target/riscv/movdifge-sfb.c
! e56a18c248cfb29b71545b0045aa1004  gcc/testsuite/gcc.target/riscv/movdifge-thead.c
! 8b36f317d996d70256c1183d15ed3389  gcc/testsuite/gcc.target/riscv/movdifge-ventana.c
! e01fbd1a4faffa306d306370f706d33c  gcc/testsuite/gcc.target/riscv/movdifge-zicond.c
! 71dfdb974d7f8f0cd3904eb38f197846  gcc/testsuite/gcc.target/riscv/movdifge.c
! b0f742c174f437395256f15250aed855  gcc/testsuite/gcc.target/riscv/movdifgt-sfb.c
! 26212c1647e4c87319ddc47518e2551a  gcc/testsuite/gcc.target/riscv/movdifgt-thead.c
! cc194b2341ccb63761dd841621ea4aca  gcc/testsuite/gcc.target/riscv/movdifgt-ventana.c
! 027b6edff4c730ba5a0483da14019569  gcc/testsuite/gcc.target/riscv/movdifgt-zicond.c
! 7c12fc26fc9531afc6224f670fbd66fe  gcc/testsuite/gcc.target/riscv/movdifgt.c
! 545fd9ab811810032d29e1aa0f18b9ce  gcc/testsuite/gcc.target/riscv/movdifle-sfb.c
! 55e849adee7ee1eef6fc0a0fc649675e  gcc/testsuite/gcc.target/riscv/movdifle-thead.c
! a89e2e3807ba85aeaf200223dc708047  gcc/testsuite/gcc.target/riscv/movdifle-ventana.c
! 05ecb1ad9175874c7677121090555e1a  gcc/testsuite/gcc.target/riscv/movdifle-zicond.c
! 763c9aa35e2cce772f5c84c413edde5e  gcc/testsuite/gcc.target/riscv/movdifle.c
! cbf3c7cd5777827c315d761e92c02772  gcc/testsuite/gcc.target/riscv/movdiflt-sfb.c
! b531f18c79e6b0b64632d860cf2c1e30  gcc/testsuite/gcc.target/riscv/movdiflt-thead.c
! 3c9add09bd279ebd6cd842ba7ac87426  gcc/testsuite/gcc.target/riscv/movdiflt-ventana.c
! 9d5c4691ed6487b2368f50b092ab4300  gcc/testsuite/gcc.target/riscv/movdiflt-zicond.c
! 14bc640619c64ae72c3fb78f113d50e5  gcc/testsuite/gcc.target/riscv/movdiflt.c
! 539d0c88cb24dc99e02cc7f9c9864db2  gcc/testsuite/gcc.target/riscv/movdifne-sfb.c
! 7b200245b380a339d2d395e3d46d676c  gcc/testsuite/gcc.target/riscv/movdifne-thead.c
! 842dc9b2c4be2e82aa8302f373824724  gcc/testsuite/gcc.target/riscv/movdifne-ventana.c
! 1d59e8927f25ef7b631765bb8a7cdebd  gcc/testsuite/gcc.target/riscv/movdifne-zicond.c
! 04c3bbd9008b16b2af09d6366f2dfa41  gcc/testsuite/gcc.target/riscv/movdifne.c
! 5f7add7145894070726e7dd2bc9cd7cf  gcc/testsuite/gcc.target/riscv/movdige-sfb.c
! 115506d85ef48328f7d56158f6d4a921  gcc/testsuite/gcc.target/riscv/movdige-thead.c
! 96b58322211314ad9d3e09e478b21bb2  gcc/testsuite/gcc.target/riscv/movdige-ventana.c
! d3a7eb7edec2ffe197ed69ebb2a71c21  gcc/testsuite/gcc.target/riscv/movdige-zicond.c
! 8e903a484db62eb329b295991a71da8c  gcc/testsuite/gcc.target/riscv/movdige.c
! 7e282f23e892e2703b973afa556aa2e9  gcc/testsuite/gcc.target/riscv/movdigeu-sfb.c
! 3c09ead68902dc03188e7523e4084276  gcc/testsuite/gcc.target/riscv/movdigeu-thead.c
! 8b025cf210e07c88421a58973688a54e  gcc/testsuite/gcc.target/riscv/movdigeu-ventana.c
! 05f879f24e67357d4c52f329940dc396  gcc/testsuite/gcc.target/riscv/movdigeu-zicond.c
! 8eb3bed70e1ca8de581acb8829edbed1  gcc/testsuite/gcc.target/riscv/movdigeu.c
! f06dbeb104c00e70fb401a20fc46fe33  gcc/testsuite/gcc.target/riscv/movdigt-sfb.c
! 0cc38dfb39320a740ecac44921bda906  gcc/testsuite/gcc.target/riscv/movdigt-thead.c
! cbe3cde8c5fb95579ac62ad69f0d45c9  gcc/testsuite/gcc.target/riscv/movdigt-ventana.c
! 026cb034bd3c7eae3c6b7b70ade1c429  gcc/testsuite/gcc.target/riscv/movdigt-zicond.c
! e532f0e075f5e26855a39f7206063782  gcc/testsuite/gcc.target/riscv/movdigt.c
! abbd21ae44dcb3601e38fde496507100  gcc/testsuite/gcc.target/riscv/movdigtu-sfb.c
! 8f699f5c8c16e0e61cac4ddae08f485a  gcc/testsuite/gcc.target/riscv/movdigtu-thead.c
! 9aa518bb2168688a29461daace86c879  gcc/testsuite/gcc.target/riscv/movdigtu-ventana.c
! 1a7c6459df03f498ab0c32cfa75f1f75  gcc/testsuite/gcc.target/riscv/movdigtu-zicond.c
! f4a5f7994b2033378cc1835811f8d687  gcc/testsuite/gcc.target/riscv/movdigtu.c
! 25ab783af1cc973e279e1744e970bf0e  gcc/testsuite/gcc.target/riscv/movdile-sfb.c
! d6c01b45a8e4dca4467869a40771307a  gcc/testsuite/gcc.target/riscv/movdile-thead.c
! b41497dd420a4af791fc3ea053128d74  gcc/testsuite/gcc.target/riscv/movdile-ventana.c
! 674b5a8b5d0a5a9cc3d85b4212f03b5b  gcc/testsuite/gcc.target/riscv/movdile-zicond.c
! b9bc0f5ee00f2dc074b2ba77e85c94be  gcc/testsuite/gcc.target/riscv/movdile.c
! a8ccd0f2dfde89aa19c8cf8b3937160c  gcc/testsuite/gcc.target/riscv/movdileu-sfb.c
! a180700b856fb74dca3f8b58d092d482  gcc/testsuite/gcc.target/riscv/movdileu-thead.c
! 8bd0cfa1aeab33a3eedaa482ef3edb7d  gcc/testsuite/gcc.target/riscv/movdileu-ventana.c
! d6fa6e0a6ba9b089bae52e1004ca6f61  gcc/testsuite/gcc.target/riscv/movdileu-zicond.c
! 43f3772c0a0b4fea69215e09bed1e93d  gcc/testsuite/gcc.target/riscv/movdileu.c
! 5e983c89364d63ac5b2ffda02ea18396  gcc/testsuite/gcc.target/riscv/movdilt-sfb.c
! 46c280512946b63e47e56dff9f283bdb  gcc/testsuite/gcc.target/riscv/movdilt-thead.c
! 13bc1cf98411e150aedc8f977338cd64  gcc/testsuite/gcc.target/riscv/movdilt-ventana.c
! ebaa6b03bc0c09597d82bc2cb7935292  gcc/testsuite/gcc.target/riscv/movdilt-zicond.c
! 825887d6042494026ebdbc1bd581dffa  gcc/testsuite/gcc.target/riscv/movdilt.c
! 8180e52b80e5b761af6270c6e0076f8b  gcc/testsuite/gcc.target/riscv/movdiltu-sfb.c
! 6c8fdddef2fb08f2a2e29c0c58a41ac9  gcc/testsuite/gcc.target/riscv/movdiltu-thead.c
! d8375d5049f46f6955b138feb12f4cbb  gcc/testsuite/gcc.target/riscv/movdiltu-ventana.c
! 294ec761dfb29a79fe3f3fbd70c45779  gcc/testsuite/gcc.target/riscv/movdiltu-zicond.c
! f4b2b914d419d28c5b1e062e87a36582  gcc/testsuite/gcc.target/riscv/movdiltu.c
! 803113c2bf771a4150ea37e55d3a7078  gcc/testsuite/gcc.target/riscv/movdine-sfb.c
! f205cb8142644e490fa47d0375bf7aaf  gcc/testsuite/gcc.target/riscv/movdine-thead.c
! c86e0da229201ce908ad7e75d073e4c1  gcc/testsuite/gcc.target/riscv/movdine-ventana.c
! a27febefb5f3cfa7a87e2f1bf701e498  gcc/testsuite/gcc.target/riscv/movdine-zicond.c
! 3e9714b3c949e405c449e1cae08cd4f6  gcc/testsuite/gcc.target/riscv/movdine.c
! 8fb3b05f55cacd72e3400ef77ffbc370  gcc/testsuite/gcc.target/riscv/movsibeq-thead.c
! e17de82d557f966528c1513a5bbcdfec  gcc/testsuite/gcc.target/riscv/movsibeq-ventana.c
! 264786fc4c964b40df4cc55f462bb778  gcc/testsuite/gcc.target/riscv/movsibeq-zicond.c
! ee4181f222028ec17e315003bbd3a67f  gcc/testsuite/gcc.target/riscv/movsibeq.c
! 1106eea90835097d5acebd10b9824a62  gcc/testsuite/gcc.target/riscv/movsibfeq-ventana.c
! 8784119b010e4bc241d8859ecffd768d  gcc/testsuite/gcc.target/riscv/movsibfeq-zicond.c
! cb98e011191bc77f8b5976eedb2544a5  gcc/testsuite/gcc.target/riscv/movsibfeq.c
! 14375e1ee3b73cb7221d8daf26693e0b  gcc/testsuite/gcc.target/riscv/movsibfge-ventana.c
! 6a3670656d1a840f41c4fda5859b7952  gcc/testsuite/gcc.target/riscv/movsibfge-zicond.c
! b0fa51c47e7e9149e919adb4f46a328d  gcc/testsuite/gcc.target/riscv/movsibfge.c
! 9d9dcafd5ee6d1732d41bc0c1643c201  gcc/testsuite/gcc.target/riscv/movsibfgt-ventana.c
! c47e474042062f6762fafbfc63db8874  gcc/testsuite/gcc.target/riscv/movsibfgt-zicond.c
! de904cf90eac1d83791209f2e4d3da76  gcc/testsuite/gcc.target/riscv/movsibfgt.c
! 4bac938d73fc89faac41093779cb1a67  gcc/testsuite/gcc.target/riscv/movsibfle-ventana.c
! e2f20da1db73be2dbc6873a27e4450a2  gcc/testsuite/gcc.target/riscv/movsibfle-zicond.c
! 4f52a3c474673ef0f14eb50b29b80706  gcc/testsuite/gcc.target/riscv/movsibfle.c
! 2ab46030098694834266ddfea9f8e7fc  gcc/testsuite/gcc.target/riscv/movsibflt-ventana.c
! 09c511ca088d9ff24bd00932a4a9e559  gcc/testsuite/gcc.target/riscv/movsibflt-zicond.c
! f07dd032dea8412f8f633ceccb8ef09c  gcc/testsuite/gcc.target/riscv/movsibflt.c
! 577e5f779019dd58d54d697462c4cde9  gcc/testsuite/gcc.target/riscv/movsibfne-ventana.c
! 3e754807d393b211bced598e1115aa43  gcc/testsuite/gcc.target/riscv/movsibfne-zicond.c
! c43e98faec4c7a7be53aeeb7cc1a5c33  gcc/testsuite/gcc.target/riscv/movsibfne.c
! 0208c69418e2df1a3f63dec83174cc05  gcc/testsuite/gcc.target/riscv/movsibge-thead.c
! 9feaa00b60e9fa28e5142927db1aa4f3  gcc/testsuite/gcc.target/riscv/movsibge-ventana.c
! e1be25a6083649b4aaf9f5d0760a12ad  gcc/testsuite/gcc.target/riscv/movsibge-zicond.c
! e4285bc69fb8e634f7b35edc47367db1  gcc/testsuite/gcc.target/riscv/movsibge.c
! 7e9456749415c113661f5d88fd8eb857  gcc/testsuite/gcc.target/riscv/movsibgeu-thead.c
! 8a96598b623f4f12bf0c26cd376175cf  gcc/testsuite/gcc.target/riscv/movsibgeu-ventana.c
! c5b00bf0aaa1a8a26a246356488d5591  gcc/testsuite/gcc.target/riscv/movsibgeu-zicond.c
! bd0bc21a6ea12a7e600ec78151c79e7c  gcc/testsuite/gcc.target/riscv/movsibgeu.c
! 6c2c4d845b55ea52411815612e6e7664  gcc/testsuite/gcc.target/riscv/movsibgt-thead.c
! c9862b0514c18f9ce212f3c7772dcdd6  gcc/testsuite/gcc.target/riscv/movsibgt-ventana.c
! 0df860baef0ed7b611dd693a35469e35  gcc/testsuite/gcc.target/riscv/movsibgt-zicond.c
! 487b6f06c88773d4d78b675abb010876  gcc/testsuite/gcc.target/riscv/movsibgt.c
! 3391de2d50a19b16eed67fd08362a325  gcc/testsuite/gcc.target/riscv/movsibgtu-thead.c
! d41106af150645cc60859221b5801785  gcc/testsuite/gcc.target/riscv/movsibgtu-ventana.c
! 19821270ae807570ae9ace206eb9c89b  gcc/testsuite/gcc.target/riscv/movsibgtu-zicond.c
! 249a05a2797199c2d5a14e5fb2ef6114  gcc/testsuite/gcc.target/riscv/movsibgtu.c
! d0d8c6e3c21eccb3d6840369a2d2f58b  gcc/testsuite/gcc.target/riscv/movsible-thead.c
! d2992fe83edbc61d272337d2b2e65e3d  gcc/testsuite/gcc.target/riscv/movsible-ventana.c
! 22760e60fdd5b84beba49bf6a10cd0b8  gcc/testsuite/gcc.target/riscv/movsible-zicond.c
! b80b5690875c3eb922b625dc0da5664d  gcc/testsuite/gcc.target/riscv/movsible.c
! 4ee236750af205d31dbea749015a7c14  gcc/testsuite/gcc.target/riscv/movsibleu-thead.c
! 7fee22565d734bc25965053b299910af  gcc/testsuite/gcc.target/riscv/movsibleu-ventana.c
! 5db8681fbf25afd750a95c4e6fc0f0d2  gcc/testsuite/gcc.target/riscv/movsibleu-zicond.c
! f2d911b6906504b8db6d66dcaef373b9  gcc/testsuite/gcc.target/riscv/movsibleu.c
! 79c056b71e7372030b0c049ab3765562  gcc/testsuite/gcc.target/riscv/movsiblt-thead.c
! 743ca501bc79b52015ee3ae4fa08ccba  gcc/testsuite/gcc.target/riscv/movsiblt-ventana.c
! 62f687f1092097a0d300846dfae73697  gcc/testsuite/gcc.target/riscv/movsiblt-zicond.c
! b564972e1f2f572749da1fa7fdcd2b40  gcc/testsuite/gcc.target/riscv/movsiblt.c
! 7e6e33e9060ff4a1f6d0b9b35b62ffc6  gcc/testsuite/gcc.target/riscv/movsibltu-thead.c
! 201d248c3014f549d06a8ff84300f16b  gcc/testsuite/gcc.target/riscv/movsibltu-ventana.c
! bec3b272817e4c57756f80e23a9865df  gcc/testsuite/gcc.target/riscv/movsibltu-zicond.c
! 270bc2a1468e5bf6187693f7dd15bb8b  gcc/testsuite/gcc.target/riscv/movsibltu.c
! 1753a7faedefc89fb35c21de98faf31d  gcc/testsuite/gcc.target/riscv/movsibne-thead.c
! 8819e6388dfc6bc3ad507df5dbc18547  gcc/testsuite/gcc.target/riscv/movsibne-ventana.c
! 073440394f7d3d2cc8f570e370407933  gcc/testsuite/gcc.target/riscv/movsibne-zicond.c
! 4bab5f18fcbe76a88292c31db63bee80  gcc/testsuite/gcc.target/riscv/movsibne.c
! 6f0097ad4df3959e539a3e72cbf739cd  gcc/testsuite/gcc.target/riscv/movsieq-sfb.c
! 174664cebeb52d2c97f5217ac4beb1ab  gcc/testsuite/gcc.target/riscv/movsieq-thead.c
! 102ca6f58c6d4ab45621d692c355158f  gcc/testsuite/gcc.target/riscv/movsieq-ventana.c
! cb4e37083a2b26f6983d81b622152be5  gcc/testsuite/gcc.target/riscv/movsieq-zicond.c
! b187c8062d626053c93a3a17fc69a488  gcc/testsuite/gcc.target/riscv/movsieq.c
! b5e42c0c4b2e97dedd8675fadbdf3d9e  gcc/testsuite/gcc.target/riscv/movsifeq-sfb.c
! 93af13899d7c6179c54223d3e4f5cb80  gcc/testsuite/gcc.target/riscv/movsifeq-thead.c
! cfc90efd2cd0ee711a56e4e9f6aeccad  gcc/testsuite/gcc.target/riscv/movsifeq-ventana.c
! 352c2adf1a619fbee0ed3dfc8617187e  gcc/testsuite/gcc.target/riscv/movsifeq-zicond.c
! 98c730de3895fa9d0f158748f3a1d4b6  gcc/testsuite/gcc.target/riscv/movsifeq.c
! fb4018b9437f4327b1289b461a8ae64b  gcc/testsuite/gcc.target/riscv/movsifge-sfb.c
! 7965ace099d6315bc2a80da4a985fee3  gcc/testsuite/gcc.target/riscv/movsifge-thead.c
! c64f1320bd5ba6820cff3f1f54e2601c  gcc/testsuite/gcc.target/riscv/movsifge-ventana.c
! 9b70d5c82ead24fceb22bcea2e9e3de3  gcc/testsuite/gcc.target/riscv/movsifge-zicond.c
! 97c4fdc14808ce931dbcf9ff7211e36e  gcc/testsuite/gcc.target/riscv/movsifge.c
! 5673d3ab7b414ced0dbba1744cd87948  gcc/testsuite/gcc.target/riscv/movsifgt-sfb.c
! 9b3f16e9b3ee198dfb7b3b1cec5e8bf4  gcc/testsuite/gcc.target/riscv/movsifgt-thead.c
! 38b0265205232f085e99767507021d03  gcc/testsuite/gcc.target/riscv/movsifgt-ventana.c
! 655de988492cfdd41b2f793bfffa5541  gcc/testsuite/gcc.target/riscv/movsifgt-zicond.c
! 050a523a1c6d34eca1bb44d6721c8a57  gcc/testsuite/gcc.target/riscv/movsifgt.c
! 2f72cf46180d94f8d210f5df143a73cc  gcc/testsuite/gcc.target/riscv/movsifle-sfb.c
! 6e63d626ebbc23a56b31f6be5f05c44c  gcc/testsuite/gcc.target/riscv/movsifle-thead.c
! c2788f7ec66c0f4ac1cd1410920bbc2e  gcc/testsuite/gcc.target/riscv/movsifle-ventana.c
! 3ba62ce7c6435fda64df219d6ce9abc9  gcc/testsuite/gcc.target/riscv/movsifle-zicond.c
! 4ca8076cf0551707d73d004a4e9060e7  gcc/testsuite/gcc.target/riscv/movsifle.c
! 3b669223ef4c37b4302fc5fe4d7d4bee  gcc/testsuite/gcc.target/riscv/movsiflt-sfb.c
! 9352d45ad6b794e5aa509c2b84c2acff  gcc/testsuite/gcc.target/riscv/movsiflt-thead.c
! 33863f3ce278e4a5813d75efb4f5e484  gcc/testsuite/gcc.target/riscv/movsiflt-ventana.c
! 3ea7b1515312c15442d8656200cb2031  gcc/testsuite/gcc.target/riscv/movsiflt-zicond.c
! cbd9445ed1e61799af7eb4c14132f067  gcc/testsuite/gcc.target/riscv/movsiflt.c
! 3c3180875f2cf456d95d3662ade1286d  gcc/testsuite/gcc.target/riscv/movsifne-sfb.c
! c69e207c50d2552538360f36b9f851ca  gcc/testsuite/gcc.target/riscv/movsifne-thead.c
! 7fe5ce0d72b392561ad8acaacab8b9c8  gcc/testsuite/gcc.target/riscv/movsifne-ventana.c
! 48dda9ab225f81de987e9a66b754a84e  gcc/testsuite/gcc.target/riscv/movsifne-zicond.c
! 5076fd4361885d5b8ea53e5230afc619  gcc/testsuite/gcc.target/riscv/movsifne.c
! b746685138c79cb74a546c1ee357e055  gcc/testsuite/gcc.target/riscv/movsige-sfb.c
! ba847a7cd3e7480b5c5170fcd983c501  gcc/testsuite/gcc.target/riscv/movsige-thead.c
! 9756c56e23aef05f32947e99a723ff2b  gcc/testsuite/gcc.target/riscv/movsige-ventana.c
! 76c9386afd8aac48ec6cb18172373a01  gcc/testsuite/gcc.target/riscv/movsige-zicond.c
! 7ff701816a6336a85b243fbed253ad2c  gcc/testsuite/gcc.target/riscv/movsige.c
! a2a7a4b881d5511771d4710379b52710  gcc/testsuite/gcc.target/riscv/movsigeu-sfb.c
! 550836fcc804cc2c876d6a8cdb631812  gcc/testsuite/gcc.target/riscv/movsigeu-thead.c
! 57dcb5d77a0a3e64f2f30c345a85186a  gcc/testsuite/gcc.target/riscv/movsigeu-ventana.c
! e11caceda17390de370b45656cac4c49  gcc/testsuite/gcc.target/riscv/movsigeu-zicond.c
! 657f37aa4fd6de802ccba7cb364d0513  gcc/testsuite/gcc.target/riscv/movsigeu.c
! 519e2c37ff71a5a4a28bfa69e5e61477  gcc/testsuite/gcc.target/riscv/movsigt-sfb.c
! f00777261d02feea26ae289a645c2295  gcc/testsuite/gcc.target/riscv/movsigt-thead.c
! d2c704fb2e48d874ca33cb23d37e0437  gcc/testsuite/gcc.target/riscv/movsigt-ventana.c
! a22250baf494fcbebb02b4129642340f  gcc/testsuite/gcc.target/riscv/movsigt-zicond.c
! d7160aa95a386f7384523e27d20ab13e  gcc/testsuite/gcc.target/riscv/movsigt.c
! 1105ebbb915d17498529970ee7822681  gcc/testsuite/gcc.target/riscv/movsigtu-sfb.c
! d284c0bc066f0d2d5cef469a5c7b4918  gcc/testsuite/gcc.target/riscv/movsigtu-thead.c
! a2c1ae863da525c0335573132ae1bf22  gcc/testsuite/gcc.target/riscv/movsigtu-ventana.c
! ab5d328550ab42d7e732f1f6871c480e  gcc/testsuite/gcc.target/riscv/movsigtu-zicond.c
! 217c25a4a0713751045f8346ce31c3b9  gcc/testsuite/gcc.target/riscv/movsigtu.c
! 1c5031f87ae87244d89ff0a2f14624ed  gcc/testsuite/gcc.target/riscv/movsile-sfb.c
! 7b91d907c9a525c31c81c598bb4824f1  gcc/testsuite/gcc.target/riscv/movsile-thead.c
! bfb981bf55450b3fa171e06e2cfb1058  gcc/testsuite/gcc.target/riscv/movsile-ventana.c
! c2535865166ef39752de0e5fc101a746  gcc/testsuite/gcc.target/riscv/movsile-zicond.c
! 2d5c7b91cef6183d3e44c226487d7c9f  gcc/testsuite/gcc.target/riscv/movsile.c
! 5f19385a475d140edd5d6f5dea94832c  gcc/testsuite/gcc.target/riscv/movsileu-sfb.c
! 65270d9bad4f93152e98bb17a04a3bb1  gcc/testsuite/gcc.target/riscv/movsileu-thead.c
! 962216a1a65dc22685bbefeac22a46ec  gcc/testsuite/gcc.target/riscv/movsileu-ventana.c
! 4508972537681fbf04db94daa1dbac11  gcc/testsuite/gcc.target/riscv/movsileu-zicond.c
! 86a232bacb5705b7eb38c8b0e7918bd9  gcc/testsuite/gcc.target/riscv/movsileu.c
! 10fe0d104e4557f47a9dd408ddecace3  gcc/testsuite/gcc.target/riscv/movsilt-sfb.c
! fe187923b9d63f1d8318f505c0934b3f  gcc/testsuite/gcc.target/riscv/movsilt-thead.c
! cf04fc6d5de64cac6b5b8bb0aeed6c11  gcc/testsuite/gcc.target/riscv/movsilt-ventana.c
! 8f6ec35edaa6019253ab15632c0a9a48  gcc/testsuite/gcc.target/riscv/movsilt-zicond.c
! db4de48a9bcffaa3378815e9cdcd5538  gcc/testsuite/gcc.target/riscv/movsilt.c
! 931d7732bb0d8e1bf7776aefa36e7b24  gcc/testsuite/gcc.target/riscv/movsiltu-sfb.c
! 1587ea1b3753fcaf259ac1b0c8860ccb  gcc/testsuite/gcc.target/riscv/movsiltu-thead.c
! a28a984f4c50fa7d4feaca002207353b  gcc/testsuite/gcc.target/riscv/movsiltu-ventana.c
! e51815ddb1131553c1d3c8f51d41d185  gcc/testsuite/gcc.target/riscv/movsiltu-zicond.c
! 15733235a28c2a1f9f460f1eb6ba2523  gcc/testsuite/gcc.target/riscv/movsiltu.c
! 3d72f99732a0dd637331dd0e12e0f440  gcc/testsuite/gcc.target/riscv/movsine-sfb.c
! 2c60fcff4e507f6e6c6463577915e429  gcc/testsuite/gcc.target/riscv/movsine-thead.c
! fd1ad27c6f6aa8e73524a95358b4fff8  gcc/testsuite/gcc.target/riscv/movsine-ventana.c
! 529f76ee14377024369064d810c9dc2b  gcc/testsuite/gcc.target/riscv/movsine-zicond.c
! a253f6211e939c78d54f7413baa13d8c  gcc/testsuite/gcc.target/riscv/movsine.c
  91df64335c75c89ed2e21716fe77a561  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-1.c
  b31f65298e8fa9f53bbc717e292604ee  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-2.c
  6d72ece3cc973413992f5f3e461dcc16  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-3.c
  0e192329c5363879dee5cc5b45ffb179  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-4.c
  da347ad3915925dff635c7bebc36013c  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-test.c
+ 3ed993662e89ee100681d0810f5e6935  gcc/testsuite/gcc.target/riscv/pack32.c
+ 52cda8bbdb54267b7ed9c4412b12410f  gcc/testsuite/gcc.target/riscv/pack64.c
+ 0975ec41c42e17589a13705005af3621  gcc/testsuite/gcc.target/riscv/packh32.c
+ 0add2e3c051f2b7271376420b3d77bb6  gcc/testsuite/gcc.target/riscv/packh64.c
+ a68a269bbb621c1425f81fc3141d6082  gcc/testsuite/gcc.target/riscv/packw.c
  1be860f202994bc8fe2857bdb115b447  gcc/testsuite/gcc.target/riscv/pr102957-2.c
  c2ea2036045469f1056fc7689ee62c7f  gcc/testsuite/gcc.target/riscv/pr102957.c
  c70df77dca2d9d059e9b22e279613d45  gcc/testsuite/gcc.target/riscv/pr103302.c
  78659ffafd452ac6a43859083b99d8ae  gcc/testsuite/gcc.target/riscv/pr104140.c
! ef0ff25c6903087992aa69002e1fe999  gcc/testsuite/gcc.target/riscv/pr105314-rtl.c
! 2a8afe8c20a6dcb0f68bfd5c67b3c1f0  gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c
! 837709e161c1d5eaa66ca76c13aa7469  gcc/testsuite/gcc.target/riscv/pr105314.c
  488d01f6a52c713a85a02ef3f9147fe8  gcc/testsuite/gcc.target/riscv/pr105666.c
+ d7cf53ef302f30f2c25f866e2db8247c  gcc/testsuite/gcc.target/riscv/pr105733.c
+ 5ae4ee099e8680e91932ac9e4d79a022  gcc/testsuite/gcc.target/riscv/pr106544.c
  e2d715acc45ff1c4de4202ff85ed13eb  gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c
  a4140e65ee8a24c14a0a9a63e5f92a62  gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c
  fd454cbbc31e7c4bb8e24d07543b8255  gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c
  ab2cb1a5b51bf68796e53fde679618cc  gcc/testsuite/gcc.target/riscv/pr106888.c
+ be3a460fbc91fac50c9b2e03c9f88b5f  gcc/testsuite/gcc.target/riscv/pr107455-1.c
+ 87bccd1c311f5cd4354976285e87b030  gcc/testsuite/gcc.target/riscv/pr107455-2.c
  ec6ec43c9e76076efb0caf7fd6975bd5  gcc/testsuite/gcc.target/riscv/pr107786-2.c
  5201d6361bb5315fd35a51ff807d7115  gcc/testsuite/gcc.target/riscv/pr107786.c
  51045cfa092b03d9038e7cab9be1693f  gcc/testsuite/gcc.target/riscv/pr108987.c
! 4150ce8ce2f3c1926490b17423c6d4ca  gcc/testsuite/gcc.target/riscv/pr109508.c
! cf07ea5b69a4e57615aa36cc1e1eab2b  gcc/testsuite/gcc.target/riscv/pr109592.c
! 96c701e1208a6728e1385f13a3ffae04  gcc/testsuite/gcc.target/riscv/pr110696.c
  d771b9d4c4a59ff2544a46afb1a11b23  gcc/testsuite/gcc.target/riscv/pr110748-1.c
+ e2cd073813309f7a26d58edc6c974e57  gcc/testsuite/gcc.target/riscv/pr111384.c
  d43a8e3428c1b09d9777c42aad2d8f48  gcc/testsuite/gcc.target/riscv/pr111466.c
+ f69135840e05c772e53aa1bd017926c5  gcc/testsuite/gcc.target/riscv/pr111501.c
+ 22ed3c55ebe1f9ea0c09ecc13da477b6  gcc/testsuite/gcc.target/riscv/pr112398.c
  3d20448ba5b8832a124255aa2e84a97f  gcc/testsuite/gcc.target/riscv/pr112478.c
  15f456db6fb5e46494c853d4c141ca96  gcc/testsuite/gcc.target/riscv/pr113095.c
+ 864744f90db4078acc5574a9ccae9114  gcc/testsuite/gcc.target/riscv/pr113506.c
  9bb9353191b107cdeaf920a4e0796e31  gcc/testsuite/gcc.target/riscv/pr113742.c
! bba0977f2acac23e269d463cd1b7ba52  gcc/testsuite/gcc.target/riscv/pr114087-1.c
! 0be9cd6857f2505997bc83cad628e9aa  gcc/testsuite/gcc.target/riscv/pr114139.c
! a7b01bd6393c053eb2052773c0ca4b69  gcc/testsuite/gcc.target/riscv/pr114277.c
! 55a41664e9844961c91357e97dc9ba27  gcc/testsuite/gcc.target/riscv/pr114442.c
  ac7457bb5fc81b14b0c132cfa32ee677  gcc/testsuite/gcc.target/riscv/pr114639-1.c
  8ff44c408c80d6686eacf2c8c9416fb4  gcc/testsuite/gcc.target/riscv/pr114639-2.c
  d23feb07adfb6b3ced3305b407aec532  gcc/testsuite/gcc.target/riscv/pr114639-3.c
  f46adfcb0ab8e2f3319ce8af66b9e8af  gcc/testsuite/gcc.target/riscv/pr114639-4.c
+ a044060f7ca57452e3aa68f0eff6babc  gcc/testsuite/gcc.target/riscv/pr115142.c
  f0b41209db06b303281bab8653ccc681  gcc/testsuite/gcc.target/riscv/pr115554.c
  5d96808a20d3d61ddbee7bededff9c82  gcc/testsuite/gcc.target/riscv/pr115562.c
! ab84d0aa4d50e17da2b9c83b6d4e7746  gcc/testsuite/gcc.target/riscv/pr115921.c
! 118ea4b1092a681237d60842b8941c41  gcc/testsuite/gcc.target/riscv/pr116033.c
! c4eeab425f1117375a9e057c7c637896  gcc/testsuite/gcc.target/riscv/pr116035-1.c
! fa5afd5174c168a09f936f7447560dac  gcc/testsuite/gcc.target/riscv/pr116035-2.c
! 1b2c63a961c517bd1313789bf87521eb  gcc/testsuite/gcc.target/riscv/pr116085.c
! 553870ae42dd6eb516a4e986a314935c  gcc/testsuite/gcc.target/riscv/pr116111.c
! 7d652c5f1380479595c6bd177317f8f9  gcc/testsuite/gcc.target/riscv/pr116131.c
! b04f8d4a1c74e79da022c01c59514ea8  gcc/testsuite/gcc.target/riscv/pr116240.c
! 93916fa40db726037baf92106002f7cb  gcc/testsuite/gcc.target/riscv/pr116256-1.c
! 4eb17cf7ce13727c3f896addab39f739  gcc/testsuite/gcc.target/riscv/pr116278-run-1.c
! d610cd912ed854e6b39ad9ec7dfba62d  gcc/testsuite/gcc.target/riscv/pr116278-run-2.c
! c6047a9f163b5c9f7b81179fc8bfc627  gcc/testsuite/gcc.target/riscv/pr116282.c
! d1848cda3f4e6e5b0ec2181661882f2f  gcc/testsuite/gcc.target/riscv/pr116283.c
! 1f1dc23465add5835a08dc3dfda9fd65  gcc/testsuite/gcc.target/riscv/pr116308.c
! 4bd47ceffad1fd91081a91e8bd0ea252  gcc/testsuite/gcc.target/riscv/pr116590.c
! c8ad5ec88a1de66ccd9665dfc065ed63  gcc/testsuite/gcc.target/riscv/pr116715.c
! 688ebf101a572759db563707428afe70  gcc/testsuite/gcc.target/riscv/pr116720.c
! 2fd3020a1c9fa8dba2a36fbe72075378  gcc/testsuite/gcc.target/riscv/pr117483.c
! 2e812156e45a8b4dc5460d1bae7489f1  gcc/testsuite/gcc.target/riscv/pr117506.c
! 6590eee91b4d00af016d3af78ab971cd  gcc/testsuite/gcc.target/riscv/pr117595.c
! a1a8ed68860b7af2c788a1fdb6c5059a  gcc/testsuite/gcc.target/riscv/pr117649.c
! 50c9bfeae9f2cf837d3847d9499cb7b3  gcc/testsuite/gcc.target/riscv/pr117688-add-run-1-s16.c
! 740106a39fcd19d60ac5af5b581bb875  gcc/testsuite/gcc.target/riscv/pr117688-add-run-1-s32.c
! 8d86f63f40fea883213bf32085eee76d  gcc/testsuite/gcc.target/riscv/pr117688-add-run-1-s64.c
! 44d4027a1c89638155d74a601f56c0c1  gcc/testsuite/gcc.target/riscv/pr117688-add-run-1-s8.c
! ef87e2939dfdfbaa59692101621edd3a  gcc/testsuite/gcc.target/riscv/pr117688-sub-run-1-s16.c
! 5b48a20c79405f458fe9818fd8febc52  gcc/testsuite/gcc.target/riscv/pr117688-sub-run-1-s32.c
! c0072f9e6cb0c2230ea0ec77d66844b0  gcc/testsuite/gcc.target/riscv/pr117688-sub-run-1-s64.c
! ce436f465d51cdf292702fa0c2195b49  gcc/testsuite/gcc.target/riscv/pr117688-sub-run-1-s8.c
! 5e4921bcd59218dab1f88247a8cd63d9  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s16-to-s8.c
! dd62c9c64de00a6e7a48a6d47e29baec  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s32-to-s16.c
! 43f38179688c0d5f1757aabcc2a410b2  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s32-to-s8.c
! 3d5938e570f53de2cb9876d65d80b2f2  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s64-to-s16.c
! 5a11d05f1931812b5143a8f559135bd3  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s64-to-s32.c
! c89116d62c198e5c6cfee06b2eab1fe4  gcc/testsuite/gcc.target/riscv/pr117688-trunc-run-1-s64-to-s8.c
! 7a3fb6af409e357369408c450cbc82a1  gcc/testsuite/gcc.target/riscv/pr117688.h
! ec6193eeb12644702acf889c5fd71dc4  gcc/testsuite/gcc.target/riscv/pr117690.c
! 9ca11b4983f8653b7765c1b4641b9e70  gcc/testsuite/gcc.target/riscv/pr118084.c
! a7cdfe664ef8616a70af588b3a79aa27  gcc/testsuite/gcc.target/riscv/pr118122.c
! 8c4f6b44c5539860ac14e0e52ee563cd  gcc/testsuite/gcc.target/riscv/pr118146-1.c
! b22a15e86fb70037feb383a055b6e153  gcc/testsuite/gcc.target/riscv/pr118146-2.c
! 1fa594621b25166287d6d30b0daf189b  gcc/testsuite/gcc.target/riscv/pr118170.c
! 8c91cf2796ff0e2ea816e9d35b520e8d  gcc/testsuite/gcc.target/riscv/pr118248.c
! 37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
  c2ac0b53d6af56f5ec5bded3d252dddc  gcc/testsuite/gcc.target/riscv/pr93202.c
  01c8227bf1b5efa52e434a407c33930d  gcc/testsuite/gcc.target/riscv/pr93304.c
  f95453a04d25316c015010a3d66699b8  gcc/testsuite/gcc.target/riscv/pr95252.c
  755ab5aaa59ce32ddfd25ae8f503af35  gcc/testsuite/gcc.target/riscv/pr95632.c
  2a0b4380ee3a1ae8c2f449020e1caa54  gcc/testsuite/gcc.target/riscv/pr95683.c
  4a09604ef4cdb81da6aaf6179b4347d1  gcc/testsuite/gcc.target/riscv/pr96759.c
! f8e1480c639bcda238e3c7485f51f85e  gcc/testsuite/gcc.target/riscv/pr98777.c
  576ffdec066d69c35af0753463b174ae  gcc/testsuite/gcc.target/riscv/pr99702.c
! bb889ee3b43ef8822238d2da82a18b9b  gcc/testsuite/gcc.target/riscv/predef-1.c
  631c168c77a9af0c773050bef4b8943f  gcc/testsuite/gcc.target/riscv/predef-10.c
  318dab274ae6db996cba3a94694e749d  gcc/testsuite/gcc.target/riscv/predef-11.c
  a2c9fa03a9dd9f49ac1497ec91ae9cca  gcc/testsuite/gcc.target/riscv/predef-12.c
  2af91f6e2a8bb287637fa5e65bc7f6a5  gcc/testsuite/gcc.target/riscv/predef-13.c
! bfff4b53de1d4c0d2390c94a2fefec02  gcc/testsuite/gcc.target/riscv/predef-14.c
! b22db7cfa496fe0bb94903110522efed  gcc/testsuite/gcc.target/riscv/predef-15.c
! 48d9a95b7bb3cd7b695c72be51eac234  gcc/testsuite/gcc.target/riscv/predef-16.c
  981b22f8d0822eb392cc684aea295a02  gcc/testsuite/gcc.target/riscv/predef-17.c
  a335b5e1909d390294a0a65a294b3327  gcc/testsuite/gcc.target/riscv/predef-18.c
  7467c900a7a5a13d2990492333310a6c  gcc/testsuite/gcc.target/riscv/predef-19.c
*************** a335b5e1909d390294a0a65a294b3327  gcc/te
*** 83057,83077 ****
  5fabe8eb53d7c19a3bd3d2d6b7771dbd  gcc/testsuite/gcc.target/riscv/predef-23.c
  c87a4d55d7a66b9a0c9aa423e4c92bb8  gcc/testsuite/gcc.target/riscv/predef-24.c
  36f5d30af2f6b2e1e7584ac498bf4d1f  gcc/testsuite/gcc.target/riscv/predef-25.c
! 1283999d6e89842eda74dd159007cabc  gcc/testsuite/gcc.target/riscv/predef-26.c
! d029d46a2b563890434e63f063736c83  gcc/testsuite/gcc.target/riscv/predef-27.c
  3d7d03531ad5e8293140f2f208de8a86  gcc/testsuite/gcc.target/riscv/predef-28.c
  018b1247162af1256922347e0c4994de  gcc/testsuite/gcc.target/riscv/predef-29.c
  1aa9c871253b6c33bc9190949155cb98  gcc/testsuite/gcc.target/riscv/predef-3.c
  451bd51baed2e16285d7bf9979a42a69  gcc/testsuite/gcc.target/riscv/predef-30.c
  38e510bb6dad0bc941fb5077873eb01b  gcc/testsuite/gcc.target/riscv/predef-31.c
! 4bce428187ebd23e403a45e87fc55641  gcc/testsuite/gcc.target/riscv/predef-32.c
! 25e50fead59bdbbdbd0737ab43e38f0c  gcc/testsuite/gcc.target/riscv/predef-33.c
! 8adfefc72b56af93c850ecc6a7d232dd  gcc/testsuite/gcc.target/riscv/predef-4.c
  d845c011b828d7cfe7dc2bb1e2b63dc3  gcc/testsuite/gcc.target/riscv/predef-5.c
  b4359fa5c3f301633a0bd37607d98d85  gcc/testsuite/gcc.target/riscv/predef-6.c
! ddcca974f57fbb3cefec3c41d6849e9e  gcc/testsuite/gcc.target/riscv/predef-7.c
  f2da01e635d21171f312277a98424056  gcc/testsuite/gcc.target/riscv/predef-8.c
! 83716494bcac8bc71ad86841353698b7  gcc/testsuite/gcc.target/riscv/predef-9.c
  2463a6bf35023b3a0093d9b5fd3decdc  gcc/testsuite/gcc.target/riscv/predef-__riscv_th_v_intrinsic.c
  ed1461a4364185f7eb27514956acc7cd  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
--- 88276,88302 ----
  5fabe8eb53d7c19a3bd3d2d6b7771dbd  gcc/testsuite/gcc.target/riscv/predef-23.c
  c87a4d55d7a66b9a0c9aa423e4c92bb8  gcc/testsuite/gcc.target/riscv/predef-24.c
  36f5d30af2f6b2e1e7584ac498bf4d1f  gcc/testsuite/gcc.target/riscv/predef-25.c
! a458eef6626f290ae98ddee99ca2a29e  gcc/testsuite/gcc.target/riscv/predef-26.c
! 2e76486b2ab732250e331e70ea3d65a1  gcc/testsuite/gcc.target/riscv/predef-27.c
  3d7d03531ad5e8293140f2f208de8a86  gcc/testsuite/gcc.target/riscv/predef-28.c
  018b1247162af1256922347e0c4994de  gcc/testsuite/gcc.target/riscv/predef-29.c
  1aa9c871253b6c33bc9190949155cb98  gcc/testsuite/gcc.target/riscv/predef-3.c
  451bd51baed2e16285d7bf9979a42a69  gcc/testsuite/gcc.target/riscv/predef-30.c
  38e510bb6dad0bc941fb5077873eb01b  gcc/testsuite/gcc.target/riscv/predef-31.c
! e39c0fd8c72e80985d4e35cae67b9940  gcc/testsuite/gcc.target/riscv/predef-32.c
! 17f78523be9093a538db82a5428f1e48  gcc/testsuite/gcc.target/riscv/predef-33.c
! 931fc42356d34e764d4c8b22a14f0068  gcc/testsuite/gcc.target/riscv/predef-34.c
! ae82ecc0f1a566ddfe392b93d6e12c3f  gcc/testsuite/gcc.target/riscv/predef-35.c
! 49aa9091bfcdb6a014544a51b3a81972  gcc/testsuite/gcc.target/riscv/predef-36.c
! da3612a04a967749677d7fec9dfdbd3f  gcc/testsuite/gcc.target/riscv/predef-37.c
! d73aa2d4369e4411f9857466123e2f10  gcc/testsuite/gcc.target/riscv/predef-38.c
! 76b48a7c0a907ac19b1ad6536d35e65c  gcc/testsuite/gcc.target/riscv/predef-39.c
! 4fe98c53630f363d3b54697dd8de233c  gcc/testsuite/gcc.target/riscv/predef-4.c
  d845c011b828d7cfe7dc2bb1e2b63dc3  gcc/testsuite/gcc.target/riscv/predef-5.c
  b4359fa5c3f301633a0bd37607d98d85  gcc/testsuite/gcc.target/riscv/predef-6.c
! fc91c5b8329ab8027668ea16eff02262  gcc/testsuite/gcc.target/riscv/predef-7.c
  f2da01e635d21171f312277a98424056  gcc/testsuite/gcc.target/riscv/predef-8.c
! e678047b12a56919f213854b86cff82c  gcc/testsuite/gcc.target/riscv/predef-9.c
  2463a6bf35023b3a0093d9b5fd3decdc  gcc/testsuite/gcc.target/riscv/predef-__riscv_th_v_intrinsic.c
  ed1461a4364185f7eb27514956acc7cd  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
*************** ed1461a4364185f7eb27514956acc7cd  gcc/te
*** 83080,83094 ****
  e423ed25d25493f4ab719979d182b85e  gcc/testsuite/gcc.target/riscv/predef-align-4.c
  8db6ad5a32847bf6ae72671288e0448f  gcc/testsuite/gcc.target/riscv/predef-align-5.c
  84b88ad750d94c31f78f057be6f174da  gcc/testsuite/gcc.target/riscv/predef-align-6.c
  9ac2b9b8f51654fa48e8cb3aa6343a32  gcc/testsuite/gcc.target/riscv/promote-type-for-libcall.c
  07f95c94b964f5ad591cbabbbe598dfb  gcc/testsuite/gcc.target/riscv/read-thread-pointer.c
! a2d5d7a1cddfa9abb36a3ef01ec2f65a  gcc/testsuite/gcc.target/riscv/reg_subreg_costs.c
  e8ebc752cb2e6780fd9c69554a100b3e  gcc/testsuite/gcc.target/riscv/ret-1.c
! cbb5e695761caf662a0f5a3a6d512668  gcc/testsuite/gcc.target/riscv/riscv.exp
  6c06251f46956faed6e5b540e9ab010f  gcc/testsuite/gcc.target/riscv/rv32-load-64bit-constant.c
! 43463121f29f72a0eaebae4c5789b812  gcc/testsuite/gcc.target/riscv/rv32e_stack.c
! ac326f9b7c7f95e62e3d1199f8d90853  gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
! b0b70bbc4c0978464c5f515c8a07ccb8  gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
  3e4bfa9ed1e14f800d0563ed26507250  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-1.c
  1331d22c6b347ed0f6bbf2533892ae7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-2.c
  703460f530006a4fc7115645853f1a43  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-run.c
--- 88305,88332 ----
  e423ed25d25493f4ab719979d182b85e  gcc/testsuite/gcc.target/riscv/predef-align-4.c
  8db6ad5a32847bf6ae72671288e0448f  gcc/testsuite/gcc.target/riscv/predef-align-5.c
  84b88ad750d94c31f78f057be6f174da  gcc/testsuite/gcc.target/riscv/predef-align-6.c
+ d390be4025bd4e328a4cf9c19aa7a1c6  gcc/testsuite/gcc.target/riscv/predef-sf-1.c
+ 91374797fe909dd3ab5f6f1c82e16289  gcc/testsuite/gcc.target/riscv/predef-sf-2.c
+ bc5ee0266d8f9b24e863e5969c669ba7  gcc/testsuite/gcc.target/riscv/predef-sf-3.c
+ 21965d6e75b48fe09867b56494e2b704  gcc/testsuite/gcc.target/riscv/predef-sf-4.c
+ 09788518183be08a6be5ec7c600a91ff  gcc/testsuite/gcc.target/riscv/predef-sf-5.c
+ f32e14d0c5a95a9b79dc951ad5d771b8  gcc/testsuite/gcc.target/riscv/prefetch-zicbop.c
+ 637cd71a50498dd8cfb5a0df8285f09f  gcc/testsuite/gcc.target/riscv/prefetch-zihintntl.c
  9ac2b9b8f51654fa48e8cb3aa6343a32  gcc/testsuite/gcc.target/riscv/promote-type-for-libcall.c
  07f95c94b964f5ad591cbabbbe598dfb  gcc/testsuite/gcc.target/riscv/read-thread-pointer.c
! fc3ba1bab139687a4821b5159329f0f5  gcc/testsuite/gcc.target/riscv/redundant-andi-2.c
! 20a8506963ea23dd2dcd4c4c921663cf  gcc/testsuite/gcc.target/riscv/redundant-andi.c
! bfe26b189e1e97e1aed9586d1a3cb44d  gcc/testsuite/gcc.target/riscv/redundant-ori.c
! b580f8dab6f61b557391fae5ccca96f0  gcc/testsuite/gcc.target/riscv/reg_subreg_costs.c
  e8ebc752cb2e6780fd9c69554a100b3e  gcc/testsuite/gcc.target/riscv/ret-1.c
! 1bd61305c65535b3d8a5a458160ddb2c  gcc/testsuite/gcc.target/riscv/riscv.exp
! ed620c4f55825e25a83e8fdf8b8790fd  gcc/testsuite/gcc.target/riscv/round.c
! f954ad3d5990ac59183db40e044ebb5b  gcc/testsuite/gcc.target/riscv/round_64.c
  6c06251f46956faed6e5b540e9ab010f  gcc/testsuite/gcc.target/riscv/rv32-load-64bit-constant.c
! e27f54d4d18dea365a7174b3b5078c26  gcc/testsuite/gcc.target/riscv/rv32-movdf-cost.c
! 7d29e1c767350ae0a4b53fa60c491af1  gcc/testsuite/gcc.target/riscv/rv32e_stack.c
! bcfaff8c96a5626a9e266625ed326c1c  gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
! c06e6ed768abf01be45f07cd0f30d0f2  gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
  3e4bfa9ed1e14f800d0563ed26507250  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-1.c
  1331d22c6b347ed0f6bbf2533892ae7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-2.c
  703460f530006a4fc7115645853f1a43  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-run.c
*************** de2cab5a8e2da69a8db8d226339e52a8  gcc/te
*** 83125,83133 ****
  22ac7a0e40ee0d73ee3acf39c4790345  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-template.h
  f7bcb68e3023c1e5612ce4e7cb17f707  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run-nofm.c
  5a96ce3f4fa167a0c456da1d5f773730  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run.c
! 9d9ba094400c69d653952a05304d4648  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv-nofm.c
  fa28d1b860b1fc6524ba539f3efa0e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv.c
! b901a4dad12f9c822789480b900928a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv-nofm.c
  7cc257aa83a272fbc0eb2b67af1a72ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv.c
  93a18051bf5b024c977fe02509c4f2b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-template.h
  83b9da5b3175cdf12887b104bf702389  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-zvfh-run.c
--- 88363,88371 ----
  22ac7a0e40ee0d73ee3acf39c4790345  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-template.h
  f7bcb68e3023c1e5612ce4e7cb17f707  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run-nofm.c
  5a96ce3f4fa167a0c456da1d5f773730  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run.c
! fedc5a35f2902230a0eba2b86761223c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv-nofm.c
  fa28d1b860b1fc6524ba539f3efa0e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv.c
! 77ac2589f7af6e3365e45efa3f23cd8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv-nofm.c
  7cc257aa83a272fbc0eb2b67af1a72ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv.c
  93a18051bf5b024c977fe02509c4f2b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-template.h
  83b9da5b3175cdf12887b104bf702389  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-zvfh-run.c
*************** e14b474897c31bd2c69f2ca5864e795d  gcc/te
*** 83135,83147 ****
  f9e8fd2a4595c4092b6d8abaf9dd36fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv32gcv.c
  88165226f582f0ab2a96649bd2e9c429  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv64gcv.c
  61f4dd59fb4dc246a60c6a7f9f2525b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-template.h
! 2203370651d4d5ce9d6e9c65d29520d7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c
  1716c77c5018dfddc66454c42cce12a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c
  07efe4f36f94537a9ab61f369fb40c64  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run.c
! 2f45b31b53d24c9c6550bd5af1a525c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! 7f70cf88598d9d86997cb82a9818269e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! 7febc551e94c74f6834829ed5cb55af3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! 0c2dbc392af949e04b0e76b25a9f3cd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
  dbebd0845ac2d7cc9740dbc387d7a75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-template.h
  6872582bd5a1f2060a6b415ddb770818  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c
  54a1df2da3aa6bbb1e252eb686ecc85d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-run.c
--- 88373,88388 ----
  f9e8fd2a4595c4092b6d8abaf9dd36fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv32gcv.c
  88165226f582f0ab2a96649bd2e9c429  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv64gcv.c
  61f4dd59fb4dc246a60c6a7f9f2525b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-template.h
! 86fa9df7926620f396b02c944ed2d80c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-1.c
! cc95a006cb086fccbd8375666fee1208  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-run.c
! 09f3c1471f69e2cc30211ff4cf0e0c4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-template.h
! e4535414d59b4e34dc4e78449117c69c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c
  1716c77c5018dfddc66454c42cce12a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c
  07efe4f36f94537a9ab61f369fb40c64  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run.c
! c7d04f84db2a06c35ae0dfd155faf2c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! e64c0b8a3fdea9408eeebc6efd593cf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! a63860d7dd00e0e1a12674d75cbcdd00  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! e928ec4371bd2e2f47b2ced6b903fb1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
  dbebd0845ac2d7cc9740dbc387d7a75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-template.h
  6872582bd5a1f2060a6b415ddb770818  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c
  54a1df2da3aa6bbb1e252eb686ecc85d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-run.c
*************** b154a0645697f676b9a8e4ae9ae0a23b  gcc/te
*** 83156,83164 ****
  897286d17cb0342037f5c3a24c10c029  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-zvfh-run.c
  1d015b45cb1c88789950a46b4a2a0209  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run-nofm.c
  5f97d13bceed4271986e29e19ee27686  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run.c
! 658d681cc3a7f4ce4ddcac1e3591cff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv-nofm.c
  0e268df12613f677b5a90ca5e0fabb79  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv.c
! c3cd827a79776571e6ee5e4d3aa6a52e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv-nofm.c
  8c943ffee0dd555962e3562a69dcbe98  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv.c
  ed0200e956dfdaf1f1903b6928136e94  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-template.h
  4bab4b670417f6d5f5dec2f9d55f28f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-zvfh-run.c
--- 88397,88405 ----
  897286d17cb0342037f5c3a24c10c029  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-zvfh-run.c
  1d015b45cb1c88789950a46b4a2a0209  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run-nofm.c
  5f97d13bceed4271986e29e19ee27686  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run.c
! 52a7dd4f8d0805ed0a5ec42ae4c82b35  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv-nofm.c
  0e268df12613f677b5a90ca5e0fabb79  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv.c
! 8d9ea3e2c3d217c53429c9c10d70ddff  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv-nofm.c
  8c943ffee0dd555962e3562a69dcbe98  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv.c
  ed0200e956dfdaf1f1903b6928136e94  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-template.h
  4bab4b670417f6d5f5dec2f9d55f28f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-zvfh-run.c
*************** b2d1c897502250789aa80edeceacdda7  gcc/te
*** 83167,83190 ****
  1b5ab23c497ddf3f94eee292a58b1e5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-rv64gcv.c
  f129e667bedfd57659a8bdd6d0f658d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-template.h
  2adfa8f1454cb7f892efb4ab6ec0e74b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-run.c
! fdf8844458cd0eda0f90deaa96ce2cd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv32gcv.c
! 8052f7788c3b678934f022a83387086b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv64gcv.c
  4e67662be6c87ee016efa0799d727755  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-template.h
  8b5ad895beab4f44d6c437c5e895a3ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run-nofm.c
  399b2f2863e8796c55f743e8c3ff0927  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run.c
! 91d46bfd6fd5fa190211eb147145e430  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv-nofm.c
  a8fa812d905b55ae57ce821d94f1ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv.c
! 3ad4694397d072ed0f198ff8407df877  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv-nofm.c
  ab2de916b7b2498d0032349388d147eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv.c
  3bf21f1fa4bc8a29aba5f4776b4e0db3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-template.h
  9c0ccbf675e6663254fb7e4b50d269c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-zvfh-run.c
  07d15102346c584ccd01680ceaa98d36  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-run.c
  94ed616f5a3c0fe09fe1f577114a7f32  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv32gcv.c
  f9ae179d5dd3e09d82fde9d15aab3ade  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv64gcv.c
  1486eccef90fee0e3ab0675cf8f88a10  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-template.h
  61abba01f6ae91593ba7705d6d8445c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-1.c
  c310dc52e5832d1d153b40b045b49220  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-2.c
! 0320d1bcd820ff6329785fb795f56409  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-3.c
  2a7fc9f39222bcceb856efe167362892  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-4.c
  ce8ba61eb8ad2e8581e8c277baeb7866  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-5.c
  787d022135b121c639ad6f918c124190  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-6.c
--- 88408,88437 ----
  1b5ab23c497ddf3f94eee292a58b1e5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-rv64gcv.c
  f129e667bedfd57659a8bdd6d0f658d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-template.h
  2adfa8f1454cb7f892efb4ab6ec0e74b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-run.c
! 7d1a430230ce1496d9b4e11cecb1df55  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv32gcv.c
! f55b83920a19cbea804b864d229ba89e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv64gcv.c
  4e67662be6c87ee016efa0799d727755  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-template.h
+ a5498854044a7005fc430d9e85db21b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrolr-1.c
+ 42ab4fa9f452ee9f3684892c200c6f54  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrolr-run.c
+ a3b980bdfbd34def55cb4d3c391fabed  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrolr-template.h
  8b5ad895beab4f44d6c437c5e895a3ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run-nofm.c
  399b2f2863e8796c55f743e8c3ff0927  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run.c
! 39f31f6776f8c07ee2a5a087f2b4708c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv-nofm.c
  a8fa812d905b55ae57ce821d94f1ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv.c
! 13b474631ddacfb35a08235d227f9c7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv-nofm.c
  ab2de916b7b2498d0032349388d147eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv.c
  3bf21f1fa4bc8a29aba5f4776b4e0db3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-template.h
  9c0ccbf675e6663254fb7e4b50d269c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-zvfh-run.c
+ 5f52cfca049195458a883bac01288ef9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-1.c
+ 4d54417a24aedf5e8df88ee071e10f69  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-run.c
+ 43c7967066adcde6a0e890fe700e2c56  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-template.h
  07d15102346c584ccd01680ceaa98d36  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-run.c
  94ed616f5a3c0fe09fe1f577114a7f32  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv32gcv.c
  f9ae179d5dd3e09d82fde9d15aab3ade  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv64gcv.c
  1486eccef90fee0e3ab0675cf8f88a10  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-template.h
  61abba01f6ae91593ba7705d6d8445c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-1.c
  c310dc52e5832d1d153b40b045b49220  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-2.c
! a2348ec3e8310e981a3c6c2ebc30a29d  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-3.c
  2a7fc9f39222bcceb856efe167362892  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-4.c
  ce8ba61eb8ad2e8581e8c277baeb7866  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-5.c
  787d022135b121c639ad6f918c124190  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-6.c
*************** ae3080a296a2575cef03a83727439ae3  gcc/te
*** 83197,83211 ****
  a883ca450d1a13abaadd1f912c4b98f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strlen.c
  db7eab788ad11a336aa4e9abec3ed425  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp-run.c
  bf1a1b72638e71adf594e244fc144b1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp.c
! b857b708bb6c618c3ba62342885523df  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-1.c
! 7eb22b5df2e3c13b19af8e4282041c98  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-2.c
  e9da455773b21909c284bb5614bee24e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-3.c
  b84e35b4ae56a182ee4b0961af33bf94  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-4.c
! c32c68c5cfc5b5515fddc3c208d53104  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-5.c
! 73119f6d0637a5f083bd93cd78dcbb88  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-6.c
  6c6cc77dc886bee349969a176f374716  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-7.c
  2b1fbc01bda38d04f2a9df46c3895dd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-8.c
! 3e5ef017b2989121fe25e33693deb360  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-9.c
  ce60dbf8222d1dffa9fcb865162e9b9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/macro.h
  8e4f6ed9ecc4690fe2278ac80f8545ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-1.c
  338b40d1f16bd7c11d11825d42cb1731  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-2.c
--- 88444,88458 ----
  a883ca450d1a13abaadd1f912c4b98f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strlen.c
  db7eab788ad11a336aa4e9abec3ed425  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp-run.c
  bf1a1b72638e71adf594e244fc144b1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp.c
! 3b6af0c754b4b4c88877f3182bd8e4ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-1.c
! 2937b03dbd019934a32316882e81e5c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-2.c
  e9da455773b21909c284bb5614bee24e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-3.c
  b84e35b4ae56a182ee4b0961af33bf94  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-4.c
! a77cbba24044ef36872d769e38428f4a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-5.c
! ca82246cdd92ce0b5b71a36ae4affa96  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-6.c
  6c6cc77dc886bee349969a176f374716  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-7.c
  2b1fbc01bda38d04f2a9df46c3895dd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-8.c
! 391f0f68e330ffca9aef02e2faf547fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-9.c
  ce60dbf8222d1dffa9fcb865162e9b9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/macro.h
  8e4f6ed9ecc4690fe2278ac80f8545ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-1.c
  338b40d1f16bd7c11d11825d42cb1731  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-2.c
*************** a0fed6120d7d5cf2c3b2736ca24d38c9  gcc/te
*** 83271,83301 ****
  43939fc0603d3f215624bda836dc92f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-2.c
  2b7778f504e6809556a28cd69cbf26c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-1.h
  4351092867bb48e819ca570c3ffe8cd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-2.h
! ade6df148bcc41fd3973bbd22d03dd87  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-1.c
! 4480f0bc5ae39acd71fda31253ee1bc7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-2.c
! d2bbfb61904ead883540225329815a7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-1.c
! 762efdcd682c499b015ba26a1cdd33f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-2.c
  0678c44f43ae11bf4790150b099a3f99  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-1.c
  0575ce849d0959ca0fccdf52c26fe32c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-2.c
  82a3288b915ecb0a918f35b4c0a8e9db  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c
! 24ae67ec8a193bb1fe43345ae01e787c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
! 9ba89e83e206c5b7a1f6e5f8e492057a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c
  b47b05ed81e4346fba381232bb8baf51  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h
  f9b7f75826663eff6236dbbaca304f9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c
! 9e08c37668aacd396c1e30ced0fa3525  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-1.c
! 0d3403e2c18335900ad9aefc40693fbd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-2.c
! 38201caed662313d23744c948acf5217  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-3.c
! 59a086ec3609c7a545fbb7954e63006d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-4.c
  7176d0c4bb63022cbff74c90a7175e81  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-1.c
  c7d8af130a26ace7fce495e2fe029fd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-2.c
  0034f9e50acd7d464713a241b3b1f9c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-3.c
  27205e14b045e5a1cd3dad3af4f84fbb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-4.c
! 1ece34943107fe8d65987a229de7c596  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-1.c
  5520c0053c7f4624f44d765cab4ac147  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-2.c
! 8406385d81f63e3fe1569952b33d4ff7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-3.c
! 931a67ada521b53b7748f3d66208c9f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-4.c
! e47bf1daa9d5592a6749913da2dcfefd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-5.c
! b2ee716a5257fa918cb7f7e8f4701425  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-6.c
  734bb0e2419025e6406f161f5b63f36f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-7.c
  424bddd689ddb84b78542044e8c4675d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-8.c
  094eb1680fe9bd4c3c4f41e030b82041  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-1.c
--- 88518,88548 ----
  43939fc0603d3f215624bda836dc92f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-2.c
  2b7778f504e6809556a28cd69cbf26c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-1.h
  4351092867bb48e819ca570c3ffe8cd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-2.h
! 164219bcb12ac74d01836abf5f9002dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-1.c
! f6dd1f911bc5471b05fbb8181a1fe7d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-2.c
! 7cc226a4d73d59e069d9067b2a14c4f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-1.c
! c1946464052d50d80561e48089950996  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-2.c
  0678c44f43ae11bf4790150b099a3f99  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-1.c
  0575ce849d0959ca0fccdf52c26fe32c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-2.c
  82a3288b915ecb0a918f35b4c0a8e9db  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c
! 4813edf1c57883fd37ddc071a5292539  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
! 8cac68fcf995d408767657c1b6ecc8a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c
  b47b05ed81e4346fba381232bb8baf51  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h
  f9b7f75826663eff6236dbbaca304f9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c
! 7ba13a93d2761bcbdd625e1e9f91da97  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-1.c
! 2719e6e1c341bd3ebbec0b7371eada83  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-2.c
! 715630519f9b8227e151e469d2383de2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-3.c
! db94214cd4b8d0fba44608c0b68071f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-4.c
  7176d0c4bb63022cbff74c90a7175e81  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-1.c
  c7d8af130a26ace7fce495e2fe029fd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-2.c
  0034f9e50acd7d464713a241b3b1f9c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-3.c
  27205e14b045e5a1cd3dad3af4f84fbb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-4.c
! 55fcc1520b970d0ac8f8d99c9d0d88cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-1.c
  5520c0053c7f4624f44d765cab4ac147  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-2.c
! 71b0b39597787a1850c9d7082035c0e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-3.c
! 93eb5d433e0de88020d66c6e09fc932d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-4.c
! 650a6ab249cb13a540fc2fe294725c5c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-5.c
! d13fbe3bd53595c1cf23fc460710dc20  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-6.c
  734bb0e2419025e6406f161f5b63f36f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-7.c
  424bddd689ddb84b78542044e8c4675d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-8.c
  094eb1680fe9bd4c3c4f41e030b82041  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-1.c
*************** fb9cf4c59a83ba4d13344c5631496ca1  gcc/te
*** 83306,83360 ****
  02472b642a665a9c396f778736c484d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-6.c
  c44d47b62ebc0be086dab3e978f294a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-7.c
  d83e0f5e726f77c0fa5dcc062f31d437  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-8.c
! ce5a8d237e0a624fc8d30f541d73d227  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-1.c
! 44f29aa9c26fc59f6de3f2bca6dd0004  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-2.c
! 772582874c742e8de013b4a05d2d1c86  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-3.c
! 25fba3b96a6d720ec1c7cc4670a845eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-4.c
  e4ae09875b6e2c3b1bdb46ae51bc10bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-1.c
  ed66f5b63d8ae3a3c9e25c02275e39e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-2.c
  17695f1fcf635f40bdc7a526fc1a1da9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-3.c
  0142451b234efb1f81cdaa9cc91864fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-4.c
! 56b1b0b64956a822480f6c06ae66b0fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-1.c
! 3c73364dcbc52816aa4d085005186f0d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-2.c
! 9987e391c89054583c2a623976013e93  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-3.c
! 1d8ef4fc5e236f17b1f0968f68e6ad72  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-4.c
  73ad31c0595092abca944ded9a0901ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-1.c
  d6594a98f98d27f302ef865486cc2ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-2.c
  f1ca548358a8258700667b8b9ccf6052  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-3.c
  3108c9b630bb6ee9486a9bfc88daf623  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-4.c
! 34ab9ad860db523b37119284ef73cc59  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-1.c
! 98c363e92ac46f13d26ee70040c03c51  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-2.c
! fb538696ea96ce8904e221b5afcf78ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-3.c
! 85446fefa661e3860a1347cf57395f12  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-4.c
  54dd8a91dba29507baece55bb032d693  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-1.c
  2488d8726ebf49fef14945321b652f3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-2.c
  df5a900925053561f58ace5942d7149b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-3.c
  8bb047818804052e36808dc047920ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-4.c
! febbbc06366de0656f0e865787129b8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-1.c
! fcd58b35efa0d26b33210ce3029460d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-2.c
! 021f504db503b141abab240060ef2fa5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-3.c
! 641a3162a712aeea8667f3b8dd542143  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-4.c
  c91853330f263a923eb9e681c5f85ca0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-1.c
  1543f51000334291d40852a9eec39bfd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-2.c
  9588dac0214b7963e056b75cc2ada4b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-3.c
  3721281dd72bd4902757e753a68e3803  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-4.c
! 635b2d20c4d3085edf4ae31fc57469bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-1.c
  9286bdb405df5197072e688d6b55bc89  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-2.c
! 733b6ddee07ab2ef28602aba27ac42ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-3.c
! ae4bd8b733f61060c0550da9bc843c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-4.c
! ae4bd8b733f61060c0550da9bc843c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-5.c
! bf4392a88e6cfb9a548e5d9351a752e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-6.c
  cbcfed695023340851c920b1299d2420  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-1.c
  f2967c5311295ad167a80d35468c396c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-2.c
  a12536e87240c070a654b4385265e35d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-3.c
  cefdf0ec6bbfd67b41d7a1be81d6c85a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-4.c
  2efde02408119a9ac9471fe5120e69cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-5.c
  afae7fafbd15beef6b7342351054182d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-6.c
! 2bf7dd82d08d1ee85acb35cda0628827  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-1.c
! 93b35371a729de3cd56a639d92b8842d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-2.c
! 859c57d75f41ae3a325a144c242c8aaa  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-3.c
! 51934093c79266ce8492799f21a267cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-4.c
! 27c346882e06cc07f051fd6833191329  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-5.c
  9c783eb9425f96054373647576ecba59  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-1.c
  eceff7530ba56a4f5e341a76fd464ed7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-2.c
  bf5ed29505bad4dc67594e77c7c615b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-3.c
--- 88553,88607 ----
  02472b642a665a9c396f778736c484d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-6.c
  c44d47b62ebc0be086dab3e978f294a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-7.c
  d83e0f5e726f77c0fa5dcc062f31d437  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-8.c
! f21d0b214d09598d399f07ef6c80c57b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-1.c
! 5b4c426a54ec23cc1d8517985e6ce217  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-2.c
! 491694c4d3f9fe395992715e3b9c45ce  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-3.c
! ac02c318724d545b493ac706ad367874  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-4.c
  e4ae09875b6e2c3b1bdb46ae51bc10bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-1.c
  ed66f5b63d8ae3a3c9e25c02275e39e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-2.c
  17695f1fcf635f40bdc7a526fc1a1da9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-3.c
  0142451b234efb1f81cdaa9cc91864fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-4.c
! 0772476b58d90aea80d23cc0c8f2d057  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-1.c
! 0f680d4442efc63b213cd9dfe21678ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-2.c
! 7fc3bc6ca4ea4356006467becb58fd88  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-3.c
! 67c2e9de09a6f2f25583fcc1d0758972  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-4.c
  73ad31c0595092abca944ded9a0901ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-1.c
  d6594a98f98d27f302ef865486cc2ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-2.c
  f1ca548358a8258700667b8b9ccf6052  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-3.c
  3108c9b630bb6ee9486a9bfc88daf623  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-4.c
! 1945c1e085810efcbffe74a7f1431456  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-1.c
! 97606e8be24bbdc8c78291f41c804ead  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-2.c
! 548faaf61da6dbd72794ffb8b2e901e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-3.c
! 66dc6d1b05fc645dadaa360977ffef67  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-4.c
  54dd8a91dba29507baece55bb032d693  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-1.c
  2488d8726ebf49fef14945321b652f3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-2.c
  df5a900925053561f58ace5942d7149b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-3.c
  8bb047818804052e36808dc047920ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-4.c
! d9fd29d1bcc0f731b7ee06c75eb544be  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-1.c
! 9025a9f052c680922338055b17374a55  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-2.c
! 8aad152aede7e786794e15ceaf9f76f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-3.c
! 8d67b9194bb4ac8e496c0ac8bb8b61e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-4.c
  c91853330f263a923eb9e681c5f85ca0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-1.c
  1543f51000334291d40852a9eec39bfd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-2.c
  9588dac0214b7963e056b75cc2ada4b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-3.c
  3721281dd72bd4902757e753a68e3803  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-4.c
! e0479e77b04ccebdab27396cc86c10af  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-1.c
  9286bdb405df5197072e688d6b55bc89  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-2.c
! f4be5003ed695ca42bb5d1f941212adb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-3.c
! 57e25a6ee8ee64746d9d8879a6c76b17  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-4.c
! 57e25a6ee8ee64746d9d8879a6c76b17  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-5.c
! 32956a3a632d1cf199deefe2c3cede49  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-6.c
  cbcfed695023340851c920b1299d2420  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-1.c
  f2967c5311295ad167a80d35468c396c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-2.c
  a12536e87240c070a654b4385265e35d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-3.c
  cefdf0ec6bbfd67b41d7a1be81d6c85a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-4.c
  2efde02408119a9ac9471fe5120e69cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-5.c
  afae7fafbd15beef6b7342351054182d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-6.c
! 088504ffd65e971bbb1d14d76058eb74  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-1.c
! d507b2faa4d52626e368d563fa07da1a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-2.c
! e5001fa87da3e750129b097142223849  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-3.c
! 1c5dc032d73911fa3908142295d1aeac  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-4.c
! 4d1d58f089cf3b3ee51f7db788947b52  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-5.c
  9c783eb9425f96054373647576ecba59  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-1.c
  eceff7530ba56a4f5e341a76fd464ed7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-2.c
  bf5ed29505bad4dc67594e77c7c615b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-3.c
*************** fda8aee04e08c0b36ee5c2a6d88a82c2  gcc/te
*** 83407,83420 ****
  6bc52829768928d0d373feddee75acdd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-2.c
  43a877f883a8e95c7a7cadb2e5806d5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-1.c
  9dd51904a538a5be11032620b3a43f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-2.c
! a2212320a84775db3572fae6e9dfc87d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-1.c
! fe48141aabcf11843614e94b102becd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-2.c
! e865aa540c81c8f07112ba2f49aa965c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-3.c
! b14b91557034336bb75b1f7326da88ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-4.c
! 710c42e4b4c15d33f9e9c9520c4671a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-5.c
! 05d62c964822c856a27268ac32f0ec9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-6.c
! 587b560c81c80bb4326e10616dee0f02  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-7.c
! 76aca57bcd5d061717b4926ca8556a8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-8.c
  090809032260a32a507a6a9130d1d0eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-1.c
  5b408a1ddd227ae7581adc11a4caf199  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-2.c
  5883ab2e26f8957e2ec62a9486f1fa7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-3.c
--- 88654,88667 ----
  6bc52829768928d0d373feddee75acdd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-2.c
  43a877f883a8e95c7a7cadb2e5806d5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-1.c
  9dd51904a538a5be11032620b3a43f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-2.c
! 0f6eeabdad930ce14de33e5f9a833cff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-1.c
! 7cf7dd53a9b3afb20087cb8773c3210c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-2.c
! e4b275105820b2f35128ed51b03fa9a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-3.c
! a0c8350ee9c99591ac4470258a51b1b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-4.c
! 3a82bd8ea7aeb3728f255493078209d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-5.c
! 0f59fafb384608747f39b2a69b5ddc97  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-6.c
! 786e497d7a0787a7d5d9cdab8a0893ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-7.c
! cfa6e16ecc6a20c9e99d824c0d807e4d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-8.c
  090809032260a32a507a6a9130d1d0eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-1.c
  5b408a1ddd227ae7581adc11a4caf199  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-2.c
  5883ab2e26f8957e2ec62a9486f1fa7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-3.c
*************** b9b6e37e76e150d6b10535579f6b5bba  gcc/te
*** 83481,83488 ****
  fb0c2d9a4017a05a5f6b3dbfdffb42c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-template.h
  8537a285da7dcece0227935733e8ad6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-zvfh-run.c
  18c76174a3ea57a07cdb9417d00e9468  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-run.c
! 1c51695d9ba51d0e3123595bbea3767f  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv32gcv.c
! 49965bb2907c568bcf9147da439656fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv64gcv.c
  7fc6c0311eb6cb94b100ef41f92da76e  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-template.h
  f7158744c12eaa00c075adbdeed6d771  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-run.c
  fa32ddd8f6f6f0c6996fc29f197cd96c  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-rv32gcv.c
--- 88728,88735 ----
  fb0c2d9a4017a05a5f6b3dbfdffb42c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-template.h
  8537a285da7dcece0227935733e8ad6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-zvfh-run.c
  18c76174a3ea57a07cdb9417d00e9468  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-run.c
! 2336b361d8001ec05f67423bbbad40e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv32gcv.c
! e21a45e5a32459a6983fe947bee36f84  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv64gcv.c
  7fc6c0311eb6cb94b100ef41f92da76e  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-template.h
  f7158744c12eaa00c075adbdeed6d771  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-run.c
  fa32ddd8f6f6f0c6996fc29f197cd96c  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-rv32gcv.c
*************** ade16f059b010bf66d77fcf2968ef4e1  gcc/te
*** 83492,83497 ****
--- 88739,88746 ----
  6f9350a646cebff7eff9226d3220b3da  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-rv32gcv.c
  6bcb6446657b62391ad60c34d4e9b3f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-rv64gcv.c
  79de851b19bf562fd7b650f742485afa  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-template.h
+ 20b13d398df88501296ba6a72e6c9c15  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c
+ ff340d9c6dee8784837f8941d76ecb52  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c
  5a12daa267ef1b36fd2b14c30b0c65fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/fixed-vlmax-1.c
  dd2861db83bd4db623b682d60209ffd7  gcc/testsuite/gcc.target/riscv/rvv/autovec/fold-min-poly.c
  b60c9f046ba24d1346603ea33fa46de1  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-1.c
*************** f7de7a80096cd287bf006e673733936e  gcc/te
*** 83509,83514 ****
--- 88758,88764 ----
  2d57c13f9548685c12d49a8df61ece67  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-1.c
  c568a8cbb433e87e31b342e7db6db088  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-10.c
  f7458cad703374ffc1a3c52e45a8e5c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-11.c
+ 499e2a668b7d441e9adfd55511883bd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12-zvbb.c
  ff889f2ffb41bcbc38a4139b44359dac  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12.c
  fed285f165a2546a7c67b97169a2ff26  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-2.c
  5327867a4940309d5e39ce0fa7db8074  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-3.c
*************** d2cc6182588f1fb6df23033651d85940  gcc/te
*** 83623,83637 ****
  183cb3dc5b7db904b8d29ec2c3487ace  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-7.c
  ec8649f26fbf25b01aa8267cf8fc3e9a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-8.c
  5081985c098296177388e26383446524  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-9.c
! 1886547c3576de2fe28fc0e6b1e83135  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c
! e6810193f6b275e03eb1dacdc993f154  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-2.c
  71f36e6090396f7da8cd0a7e211aa985  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-1.c
  123e1e676e90cec58a1e110a14431406  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-2.c
! fea034cbd83294ae36c526c9650d89b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c
! 911ff15dbb1d693aa4e568b3de92c643  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c
  107743a69f58f28cf14e8a598bd333e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-1.c
  c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
! b19320b97462f9bf492cb0314d69011e  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
  7da5b354874f99fde1d14c20b0fa76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c
  78f17ccf2c8434fe0739b9fd95e2aa43  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-1.c
  cc143b9c26bd55a3825fe0f7577a91fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-2.c
--- 88873,88888 ----
  183cb3dc5b7db904b8d29ec2c3487ace  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-7.c
  ec8649f26fbf25b01aa8267cf8fc3e9a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-8.c
  5081985c098296177388e26383446524  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-9.c
! 04ea60ce8725cc08ea656f6edf959d80  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c
! d90ca4ab32f893e58362b7afbe85e6fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-2.c
  71f36e6090396f7da8cd0a7e211aa985  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-1.c
  123e1e676e90cec58a1e110a14431406  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-2.c
! 1ce08b15fd645f580810df743eb6d8d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c
! 06162d55a09aeffab07f54e7cf9d3de6  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c
  107743a69f58f28cf14e8a598bd333e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-1.c
  c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
! c1779350d6b08b51c352226f6a13ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
! 03b6c6282f299ea1ba67e487d39d0d18  gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c
  7da5b354874f99fde1d14c20b0fa76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c
  78f17ccf2c8434fe0739b9fd95e2aa43  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-1.c
  cc143b9c26bd55a3825fe0f7577a91fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-2.c
*************** aeca3a0b08831d9e50e8387d54e39651  gcc/te
*** 83647,83653 ****
  8042e1365da189c41bc97da7e526261b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c
  cdcb3f79dcdc39964352b1cfd0a498a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-3.c
  5236f16d76b27de76aeacd4c49d1ca98  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-4.c
! b9c42c17c188c8d20ae36a1663e7703f  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_zbb.c
  14ee564a315509685f622f7c538f6323  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/pr112773.c
  7d8e539f2d8f971aa17162bf1af6be22  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-1.c
  93d71f92f52cb23033f828501713f071  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-2.c
--- 88898,88904 ----
  8042e1365da189c41bc97da7e526261b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c
  cdcb3f79dcdc39964352b1cfd0a498a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-3.c
  5236f16d76b27de76aeacd4c49d1ca98  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-4.c
! 2b294ee4b231e73fa76c00bc1f925e14  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_zbb.c
  14ee564a315509685f622f7c538f6323  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/pr112773.c
  7d8e539f2d8f971aa17162bf1af6be22  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-1.c
  93d71f92f52cb23033f828501713f071  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-2.c
*************** ae787946bafc9bee155b315ab328579e  gcc/te
*** 83698,83703 ****
--- 88949,88957 ----
  d6a7f5c0d14923348b7069b4ce21b1c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-7.c
  89fd4d39b6ed0260260d0ca08f20f04a  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-8.c
  3779797933024054fe7d686d2e5e5bfc  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-9.c
+ c2dbac3dd0239625c253e22a0d2e2404  gcc/testsuite/gcc.target/riscv/rvv/autovec/poly_licm-1.c
+ 44c42639b04dce370e06e6bfa7f0ae2a  gcc/testsuite/gcc.target/riscv/rvv/autovec/poly_licm-2.c
+ 6205dad1dccd38e5c37749d8f245bfcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/poly_licm-3.c
  975d5c8102bc64c5a527df12650a76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/post-ra-avl.c
  8d1a73b746967b6ee561cb1e31604c6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr110950.c
  8ca531a51cf3b632565c523fad511181  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr110964.c
*************** e86a76422af4f376be5454b8a7a1a2b5  gcc/te
*** 83706,83714 ****
  b3a6b5754323ff046d0acf52bece9724  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111295.c
  544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
  20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
! 87161c3d5beb59510c97a633ca83a3cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 0f9391655cf778fa38dcdc8231ee6bf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
! 985f19fcf995405a15c6c92f7ee653e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
  77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
  200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
  903026ca308ec47dc91a6d1854bec473  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111888.c
--- 88960,88968 ----
  b3a6b5754323ff046d0acf52bece9724  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111295.c
  544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
  20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
! fa61a6cc5030ebab9e9162f82fc6aa29  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 0245d4ff407ec7c3b0fbf8128a2120f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
! 3a2c69eacd5c8132c78e54208d48b0b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
  77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
  200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
  903026ca308ec47dc91a6d1854bec473  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111888.c
*************** a8186d7f21c9af363cf051014a0cc319  gcc/te
*** 83726,83732 ****
  dbca23bb4cc083a0b5b235596988c922  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-2.c
  03ee9ee091028e9ea963b3e62b05112d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-3.c
  33db6015bdaf9ee7382fc8555583ce80  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-1.c
! 76881d6320b3342e712827a2a23e9e22  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-2.c
  e26431de34589c1f55f50c07e6cf4838  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-3.c
  f97626b80bcd6f6c0efc2072abd5e327  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-1.c
  5f8d1723bfd6f11f48e6972362bd36cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-2.c
--- 88980,88986 ----
  dbca23bb4cc083a0b5b235596988c922  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-2.c
  03ee9ee091028e9ea963b3e62b05112d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-3.c
  33db6015bdaf9ee7382fc8555583ce80  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-1.c
! 6b3c50129945e07e6de68b91c8e27206  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-2.c
  e26431de34589c1f55f50c07e6cf4838  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-3.c
  f97626b80bcd6f6c0efc2072abd5e327  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-1.c
  5f8d1723bfd6f11f48e6972362bd36cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-2.c
*************** ea1a52d4d4520c9759f08c40d864ed64  gcc/te
*** 83742,83754 ****
  54b9fd1958ad7501fd74fa0c09213498  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112999.c
  f30693b200f336b7d96f5c6c869848ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-1.c
  c2d70a58e506274256f65d7f6cb17f6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-2.c
! 60a05c0c62f04304b06b03b25255c699  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-1.c
! d470a907a5c049c5c7ff489b6cd66e5c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-2.c
  2c4e25a7be198b668bc9e0c734d22df6  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113209.c
  690d60fb5e8422e5e4384fa519eafe88  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-1.c
  d805ab13b2bc9ddb0fbb9155fc11d33e  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-2.c
  1d147cf7c8af4f8e9594cef6f2fe3946  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-3.c
! dcbc4698adb01f709cca553cd193af15  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113469.c
  d6c10821c25c768b36d8e67bb81727ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607-run.c
  bc6b132c9cf59831631a5c52bb926867  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607.c
  7228c5d856cced6b1c5d2a14d990b3cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113697.c
--- 88996,89009 ----
  54b9fd1958ad7501fd74fa0c09213498  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112999.c
  f30693b200f336b7d96f5c6c869848ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-1.c
  c2d70a58e506274256f65d7f6cb17f6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-2.c
! cc397788c7fa081c3f6af9b0e48683a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-1.c
! 80f03a6256b442866c29ae038b4a1dff  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-2.c
  2c4e25a7be198b668bc9e0c734d22df6  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113209.c
  690d60fb5e8422e5e4384fa519eafe88  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-1.c
  d805ab13b2bc9ddb0fbb9155fc11d33e  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-2.c
  1d147cf7c8af4f8e9594cef6f2fe3946  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-3.c
! d1fc0d3da996531063d3f78782778ae9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113469.c
! 5edd28faf230fbb808453f8b9d4f951f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c
  d6c10821c25c768b36d8e67bb81727ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607-run.c
  bc6b132c9cf59831631a5c52bb926867  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607.c
  7228c5d856cced6b1c5d2a14d990b3cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113697.c
*************** a416d6914c1fa1c63fb0ecfdc563031d  gcc/te
*** 83758,83763 ****
--- 89013,89043 ----
  aa7a899cbf47b134ff11f8a14258f5b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114202.c
  ffef069d9bd050c4b8acaedcaa19bfbe  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114668.c
  5e75fc6ae813fde66888597b1fe4999c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c
+ 7d7fbc7ca455506db45517a59aba67a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114749.c
+ 5a9ce9e632efc48f5b447f654f5486ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr115336.c
+ 3056ad0471f586b864727a718c0940e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr115495.c
+ 82676ef3451207661f5886ad01d3c32c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr115703-run.c
+ b339a6907a14358d853b9e49d656e525  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr115703.c
+ ffb9b29c67f636bba3ec1f540187c976  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116059.c
+ a816a9673fc6685096ef612e083bafb1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116086-2-run.c
+ 2425ca4190e4d761243c1bb1f087e0c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116086-2.c
+ c22c50b069f74c632b8b5b38252874cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116086.c
+ 02622fbf7213c97aa726e006cf7e8427  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116149.c
+ 2c63c32c7c57be00a44236990bde9d6e  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116655.c
+ da5abfc57f298d619d789eb91a345428  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr117353.c
+ 40e483a69d4074f0388dec94437fe2fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr117383.c
+ 6f4b877c38034678241261cabd331914  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr117682.c
+ b53bda284b5d4b9d98a1a590683b3dc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr117722.c
+ f75f4f9162ac86fe6dbe859cff62c0d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118019.c
+ a301cf55dd715b64828f17d685cb89f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118140.c
+ f3f24420449914a2a57bd3e42094bc9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-1.c
+ ba1541c5643b49009111f281b45d0132  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118154-2.c
+ 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
+ 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
  ee8bcba5f6876f2027f0f263f81465aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-1.c
  7ff884bfa2e6cf9bc4c6172466538515  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-10.c
  b2792e9264dcd6fa2e88f495d51677e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-11.c
*************** d52f616fd3b07a4d65fc4fa9119dcfda  gcc/te
*** 83794,83801 ****
  fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
  9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
  f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! a4bd382a3c72c6bf11ea7815e9926999  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
! 51d6378574aba677cad911a5f025636e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
  f43dfb7397c7a585e908a5efd48027ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c
  8215a8ab8bf66854039bf4418480c6bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c
  8ec94a8edb2e1640af133cf4c2af742f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-3.c
--- 89074,89081 ----
  fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
  9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
  f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! d7cfd200b21b79fb968c4f68862d3afb  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
! 14ed314f7535c6f005f8429685917cd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
  f43dfb7397c7a585e908a5efd48027ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c
  8215a8ab8bf66854039bf4418480c6bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c
  8ec94a8edb2e1640af133cf4c2af742f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-3.c
*************** a98d30dc75773026799b3df3f3f8381a  gcc/te
*** 83823,83828 ****
--- 89103,89554 ----
  292b148e5a0b3d14f5ebac3fad116664  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh-10.c
  a0d3c0787f790a47ce268b55b81d62dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh_run-10.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/autovec/riscv_vector.h
+ 0e18415d78f87bdf98f3eb96f98969b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/rotr.c
+ 384608a0043ae7afaf1b6f91ef50957c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h
+ 6f530e5176febab88f9aeaf7130a08e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_binary_vvv_run.h
+ 2051a9c90b6c265bff2dcbd75138e2be  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_binary_vvx_run.h
+ 4b3a9b370d9da4cbc5629a1633cc4b37  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_binary_vx_run.h
+ 3fd9ed039403846143577a4d90a75922  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h
+ ad82cda06983f97da259909744286ef6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-1-s16.c
+ ef5d162de2581d4ca808b2873f2c688a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-1-s32.c
+ 7c33cbff6d939e62cb26f72c6b52a89b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-1-s64.c
+ 3b166b25744aa4454153b1706cdf8c81  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-1-s8.c
+ 1088285d2023e53e423d60ef022ac6ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-2-s16.c
+ d6c2ed62415b103a595510537c9a7212  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-2-s32.c
+ 3a44a9eb690d1e1fbcc1c4f53163fc3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-2-s64.c
+ 569afef6ee4e09dce52119a188cdd893  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-2-s8.c
+ 38537d65661bed842c44357c9c965887  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-3-s16.c
+ d513c56394780935d4f82cb46f67252a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-3-s32.c
+ be376cbd29af2d6d7880ccd00826991a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-3-s64.c
+ c4d7a19bb30ab2d5fe2061b69c65a651  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-3-s8.c
+ 8e3a81195e7c600ac22e95e624d6f991  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-4-s16.c
+ 3da4c0448fe5b26dc3cfd758b6731ebd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-4-s32.c
+ 14884b8ca8c25c6741e50289c1823ff8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-4-s64.c
+ ac57164553b34bc9edff289fe4a28850  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-4-s8.c
+ 3410edd723bca88421e6d7c2176010a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-1-s16.c
+ ea49894be962b4877a2603417cd5b679  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-1-s32.c
+ 71ecac5f2be616656dee724e508df81a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-1-s64.c
+ 89a087200587e3ba03e46f554243fe8c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-1-s8.c
+ 8160f5bf32275c50c1f071bec6b5f1ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-2-s16.c
+ 8e9e922f263b8c4ab37470b31730b55a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-2-s32.c
+ 7a67013b1770ddd72b8e2e8dcaa080d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-2-s64.c
+ 577743ff7a8f4c80c42d06ca85427969  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-2-s8.c
+ b8763204362094075c6cb0f758507da6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-3-s16.c
+ 2bee59b93e9873a72e51b3f3d36abdd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-3-s32.c
+ 635bc438c3a4a1b68f973b4be1a9e551  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-3-s64.c
+ f7ccf391855e6235d78390a410c9b39f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-3-s8.c
+ a34d327beaf5542af2a60e0b64d39717  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-4-s16.c
+ 4a009684e0cc39abbff50cf131a371ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-4-s32.c
+ 0f467946252321315e38669390d30663  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-4-s64.c
+ e50dd7b73fefb92d60509ad72f08709c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add-run-4-s8.c
+ 584aef2673a45f7521741e718370dca4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-1-i16.c
+ 1c70d4f26b0f0d1cdebc3c8fb14786d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-1-i32.c
+ 65f28a842011906422d137d6fdf70637  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-1-i64.c
+ 4957dfba3df040ade2e29605a4f1848c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-1-i8.c
+ bb28e535bf8b27c13cd2e365a92f97b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-2-i16.c
+ 27d2d87f1d73f469512e986f5a0c90af  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-2-i32.c
+ 3d4ae036fd339a982d052b7e889bf4d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-2-i64.c
+ f70a6142c8e64f20ea4abdabeebc0973  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-2-i8.c
+ 28776f2496a37193a775a13aa358f2d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-3-i16.c
+ 694a0d2a408aae48d788578b7ae5bea8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-3-i32.c
+ a574f438c5bf4aea772f56d43f039093  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-3-i64.c
+ 1f98d6bede2720661aeaf25e8505d762  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-3-i8.c
+ 6f51ced84a79f4501f914f5cbb8ecb47  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-4-i16.c
+ f3dee23979b6e104e679c0d64ba88c2a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-4-i32.c
+ 8306aee916bd3c21f161f692ac32f1a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-4-i64.c
+ 902f84651478ab2c1dbae2c0d5b4dc6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-4-i8.c
+ fc3d85e24b4b376a57118d12c55df019  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-1-i16.c
+ 5bd81590f475a33fbbdd6c48f218447d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-1-i32.c
+ 53ea68c133e393dab22796af92f4d861  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-1-i64.c
+ 28e10541fae82b3a0c50dc03b6eb8156  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-1-i8.c
+ 82027f3e3cb7bc48ef344dc05e2487e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-2-i16.c
+ 8fcc4c8f5c6c4f0f6215a08fad247517  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-2-i32.c
+ e03f5d93af876c1651fafed7b3a31287  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-2-i64.c
+ 06edf6d6a465679694709c0b758c9b5e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-2-i8.c
+ c1075dbeed38ca03d5a78073204417b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-3-i16.c
+ 0d173d615a2d8401b61eda59d2ef5521  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-3-i32.c
+ befd752ccab24c6efdb7c5b1e9e0cd70  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-3-i64.c
+ 63a07fffc7515b43d0a6d007dd0e0965  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-3-i8.c
+ 875c0529ef7b1f56ecbf66deadeba7e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-4-i16.c
+ 2696c19c2e0243e605f75821cba84606  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-4-i32.c
+ 81356e53f6d30ca8d02238721e32f53b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-4-i64.c
+ 88f7fa59e79fb87d5bba33964ead617f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_sub-run-4-i8.c
+ dc71f7595dc28d4b905b8a1e67419d27  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i16-to-i8.c
+ a8a26e20d3b0b22ea2a9979c4b073135  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i32-to-i16.c
+ 0db6a2eaf93ec6dddea9073d14e442c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i32-to-i8.c
+ 20570b8a462682a6aaca39b953d386ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i64-to-i16.c
+ 9b6fef61e6d0a94b59cefc9bbf553dda  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i64-to-i32.c
+ a78842e54815cbc2d9ecb0870b310211  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-1-i64-to-i8.c
+ 6620e281f114e0fa0ce1bfb6121929e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i16-to-i8.c
+ 5a8bf695a61884bfdc5234654bf71f0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i32-to-i16.c
+ 9933f02df5fa2e90d3058fcca753bab4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i32-to-i8.c
+ 96d0a88688095b347d2c4d29ab0813ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i64-to-i16.c
+ 40ba60c4f5d5ac3eaf860b588783b258  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i64-to-i32.c
+ 8ac3e57483eceac795016b02b21e4cf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-2-i64-to-i8.c
+ c7b8c2bbab7420ce66da0f9487dcc1e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i16-to-i8.c
+ 459545f1d19859508f1a902d6f2846ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i32-to-i16.c
+ bd7a3e8742c06f312ef49601cfb83da3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i32-to-i8.c
+ 611482b7ce739122a3f8b1632adcc098  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i64-to-i16.c
+ f42878c9406c15881cc95e545f22e25f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i64-to-i32.c
+ 4e9af69f7943d8bdd8c84f32c290cbdc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-3-i64-to-i8.c
+ c26f10a5b279a25ff146c10944938040  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i16-to-i8.c
+ 89bcd781c353c51a8ca7fb3ffd7ebdb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i32-to-i16.c
+ 13715d73489e013f54c1ed126b86ea6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i32-to-i8.c
+ 76684bd131607c428bc9355c5ba5c0a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i64-to-i16.c
+ 432138dedc93c96a6fb8f758599bd625  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i64-to-i32.c
+ 330331b32528b72045540d7cfc2c843e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-4-i64-to-i8.c
+ b4c99b3e59b211f01f846a30adeff662  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i16-to-i8.c
+ b5980727037552aa248d05c988b55e19  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i32-to-i16.c
+ ca13267977c2704d2915b6e061e5af8c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i32-to-i8.c
+ e90193dbdd335c76216f2a7f1221fc3d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i64-to-i16.c
+ 02f2dbc23b7bbe42a2880dae05a0cd29  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i64-to-i32.c
+ e8ba1fe41ef0f7fa8bf6b15f12ae4d31  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-5-i64-to-i8.c
+ 90bd312d42bf4c508868d913401e2106  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i16-to-i8.c
+ bf790bb277ad5d133366dc24e3dae0d7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i32-to-i16.c
+ b75ea824112e309b8e3e58092862ce04  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i32-to-i8.c
+ 25efedd88dd122b318e60d83b9395378  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i64-to-i16.c
+ 0bf3884576e1a30d7ae70d10d3ced532  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i64-to-i32.c
+ 8fc287d8feb82c427ce51b525e94d7f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-6-i64-to-i8.c
+ e2f9dddfb2a65e1159d5339d966f70cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i16-to-i8.c
+ a7684bb1476a0097540e8254bfa16e90  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i32-to-i16.c
+ 8fda86178231c5bc9613987c70ba653a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i32-to-i8.c
+ 37b755e5cd7d2d7b129bf4a7b933d069  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i64-to-i16.c
+ 5ced8a8a70c7130e377e5a259071e25d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i64-to-i32.c
+ f3cda0df1e72e8c0dc557721a1c72bae  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-7-i64-to-i8.c
+ 59465121068609cf04ffe23189dc6e6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i16-to-i8.c
+ 7fb7cd569400791909e085027b366d18  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i32-to-i16.c
+ a502f875121d61d6e67dda62f082f2cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i32-to-i8.c
+ 8adb51a2a800bec0f007031ec65dbcb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i64-to-i16.c
+ 312cdc20fd7fa6540d0126bd59d0d9bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i64-to-i32.c
+ 56c1c2d8ff7ce6576d2483bda3d4fa10  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-8-i64-to-i8.c
+ e58dcede6c214ee07a07031540ef856e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i16-to-i8.c
+ 34ae3b0688de2750d8ff95b5fadb89df  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i32-to-i16.c
+ e58dcede6c214ee07a07031540ef856e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i32-to-i8.c
+ 4d14fefc00cdfc8d4a2e59eb987bc6ce  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i64-to-i16.c
+ 77820b0f444c759ad5043351ff95cb7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i64-to-i32.c
+ 9f34dd583768477e5119bb7a0d7a1312  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-1-i64-to-i8.c
+ e13ec184ace41edcd0aad7f9150f1ba9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i16-to-i8.c
+ 5e15ecb40bbb5f1be698978bdcd4cd0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i32-to-i16.c
+ e13ec184ace41edcd0aad7f9150f1ba9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i32-to-i8.c
+ 0aa464a6e3583f6891546a162fff8255  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i64-to-i16.c
+ 3b17f76ae226210b8d5b4d5d3f4fb672  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i64-to-i32.c
+ b6a98c25ca623a5966c01986cfa2dd7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-2-i64-to-i8.c
+ fa1afbaa4afbbcfb9dc4050799b6389f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i16-to-i8.c
+ 2c5db3736f553974f06e865ad8407cad  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i32-to-i16.c
+ fa1afbaa4afbbcfb9dc4050799b6389f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i32-to-i8.c
+ 5946ec61a13ce321fb76a077b2c519a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i64-to-i16.c
+ c9d122222d01f4ce5e167934ee1874ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i64-to-i32.c
+ 77cf0116e26f53a6e152998c21098a80  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-3-i64-to-i8.c
+ 3861487046dbefa58450676ea682606a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i16-to-i8.c
+ 8f5a16891818ecd805e2e53a46e3764d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i32-to-i16.c
+ 3861487046dbefa58450676ea682606a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i32-to-i8.c
+ 1d695013447245a96fa94c10dd422faa  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i64-to-i16.c
+ b7ea5218af1335c08be9f3400a700415  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i64-to-i32.c
+ 26ef9a4ddeb52b2173cb9c37ad42b2c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-4-i64-to-i8.c
+ 086cb71d358d51ce66ce0746b9b62188  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i16-to-i8.c
+ bfb02d66af55c8b82fced5034c91785a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i32-to-i16.c
+ 086cb71d358d51ce66ce0746b9b62188  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i32-to-i8.c
+ fac1907d223169ae2f7dc7e6dafdb466  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i64-to-i16.c
+ b5c80766d4d3e716f0813cef58ba36a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i64-to-i32.c
+ c58e9c03c4e814ce7ffa957af2bcfdc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-5-i64-to-i8.c
+ 4a21072320bc0c54e8f9b3b5407b15bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i16-to-i8.c
+ 8befbb1864ad19651fec7eeb77b99490  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i32-to-i16.c
+ 4a21072320bc0c54e8f9b3b5407b15bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i32-to-i8.c
+ 74f13ab87759fdab6f7fcf498c2fb5a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i64-to-i16.c
+ 90bed7ed2797a903bf58cb3685154285  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i64-to-i32.c
+ 1d979857974b4b38d85031b67ca0bbbf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-6-i64-to-i8.c
+ 4cdc76e58977619f144d69821b2754e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i16-to-i8.c
+ 1ca276f4bf2cfc465d6214636c2b1d80  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i32-to-i16.c
+ 4cdc76e58977619f144d69821b2754e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i32-to-i8.c
+ 20ea7f1a25ce61a6fe28af037710fa64  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i64-to-i16.c
+ 9104fd55fb936ab1334524d97a408130  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i64-to-i32.c
+ 88d3c2dfdac6ab8be0a67261fb6133be  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-7-i64-to-i8.c
+ 8575a7866addb338f7595c2b8de26c78  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i16-to-i8.c
+ 0f6155a5a3224f23da64a0b76b798524  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i32-to-i16.c
+ 8575a7866addb338f7595c2b8de26c78  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i32-to-i8.c
+ bbb5ce06c86a5df9962f555561f57b61  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i64-to-i16.c
+ 9e70bb8588fb6cbda18faf53ae404fbb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i64-to-i32.c
+ 37af9012d979d79b0972ef4827c2ceb8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_trunc-run-8-i64-to-i8.c
+ f2cdf0afc2d94375e6e876bbd090f73a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-1-u16.c
+ bb19dcf93f63128e908ef0dab1577bd7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-1-u32.c
+ af1563bc1196bf2c9bc47f97604768ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-1-u64.c
+ 72e517f0c37cdbae91cb73b404058111  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-1-u8.c
+ 27c73368c57023fdca679f17c47ec393  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-2-u16.c
+ 222b1a4a41f514b1930085301bab81e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-2-u32.c
+ 71ff03cd9bff402f703c3f0d2905ed79  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-2-u64.c
+ bdef008b92a9ff89e81be705b2796c79  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-2-u8.c
+ a12806513fd71cf8b4c0b60ef3c180d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-3-u16.c
+ 39c9176f5dc378480e1cc4b35834dc33  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-3-u32.c
+ ef8d711e7832c4322691a5c272acaf03  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-3-u64.c
+ 4f83436815121580fd16c06e7c3129fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-3-u8.c
+ adf37d009b3324f7e7d258ae909edfdd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-4-u16.c
+ a0afe4a04c6f6bc77a1ef21d56539ded  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-4-u32.c
+ ac378a7c7f99fe276eaaddf1c9b1b274  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-4-u64.c
+ d9a3a0b973e58ca5269fbc8c298cdb44  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-4-u8.c
+ dbf7073a63a3fc42a06d8e2560ccc9f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-5-u16.c
+ ac4a55bb20b76c7d434ed4f6ceefb796  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-5-u32.c
+ ea4a0f67292eac140da7b98ebfbbb996  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-5-u64.c
+ 6bc05c8914796287cdb474fa7de16fb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-5-u8.c
+ 0acd970663f6ad0f794ea6b12337e7e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-6-u16.c
+ 989f2aa666c9087022374159d6bb2ae8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-6-u32.c
+ 173a0168b8657123a85d50bec818a2c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-6-u64.c
+ 828a64b1006595cbf544d8c96866a7c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-6-u8.c
+ 5818a71286a100173bb8f4ec8e48cace  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-7-u16.c
+ 13602a5f9f94b657999f4295ea97cca2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-7-u32.c
+ 63da59ee0237b8f93152376cfd1384c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-7-u64.c
+ 3a6045fe79f9a102e4cd68740f448f7b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-7-u8.c
+ 9d86181571241d6ca6501dbfeddf5eb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-8-u16.c
+ 8d2172e5b0af3f0d0616e7d039d62293  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-8-u32.c
+ 7fa244d7d884105714e257f2484df1af  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-8-u64.c
+ e11c75c7d929ec099b7abdc9c4d2633a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-8-u8.c
+ 1b44a2d866b68d89a040b6faa7197386  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-1-u16.c
+ 15f97d4f127070c558f820054edf909e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-1-u32.c
+ 542febd1953a09a4274532fed3de60d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-1-u64.c
+ 77b1c3b7ff5b4103206ad5a795de57a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-1-u8.c
+ d740b66e7d6eea0fc37a0f2a10548603  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-2-u16.c
+ 91cc8574c88526ed49f6a44e233b0180  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-2-u32.c
+ 3fd4dd9f838e66cfe7554f076325b4c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-2-u64.c
+ 41cf06d530a1f80aabf997f26476c125  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-2-u8.c
+ 1cf738b1e9db72e083f9f48dba4e1e00  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-3-u16.c
+ feffb049e56ef595ffb798f2db48f3ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-3-u32.c
+ 65eb9d1769203a10725ba5c28675dbd8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-3-u64.c
+ fbaec8c6ef633ed035a11ad955beac76  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-3-u8.c
+ ca64ee36ac595efebab9175cd067e9e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-4-u16.c
+ bdf3c4c3f15c83ca0e0504890aff68a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-4-u32.c
+ 5c077d6b2ce08735f1220b7fc0199f84  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-4-u64.c
+ 9d147b93372a1ece36bcbfa313041560  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-4-u8.c
+ 4cc4da80845abf7f9f2c1a3993d97700  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-5-u16.c
+ b7de556bab64a5b5ba3d386a8393a95b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-5-u32.c
+ 29066489fb3d389a259d797bd319f5cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-5-u64.c
+ b6c3db699265ae301762111575681d03  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-5-u8.c
+ 3e8f7002d690f258f49fb48e4505aa14  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-6-u16.c
+ 740fbcd89bc1afbd6c51757f8217eed4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-6-u32.c
+ 74e19965bf55ee3f2fe1f3639dab092a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-6-u64.c
+ 8ed5ed59c086c997610f3bce3de5696d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-6-u8.c
+ cdb9982475a8e5a609906c674e9e6cd2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-7-u16.c
+ d23bc2f30ad839e092fa19a37476169e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-7-u32.c
+ 476d4fa3427b207f0b232a14a103d2c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-7-u64.c
+ 1f00be98a525d25bb1beb6c427529c03  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-7-u8.c
+ 0d166d2e700cce82d92121ea1e329620  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-8-u16.c
+ 3292e0db2760f04078fd3d52a43204cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-8-u32.c
+ 78b853138b8501bf2e37db69c859d382  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-8-u64.c
+ b37a0d497135974ffebec732a4d99401  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-8-u8.c
+ 79264f1576d06f3d52e961b13c582e98  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-1-u16.c
+ b02a8fafd268a5d92e2dbd1387780e83  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-1-u32.c
+ d080339353fdfc380f443f5a7048a96d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-1-u64.c
+ 54e48518adf900eccad4005c23a646b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-1-u8.c
+ c6f034ba9e1e3ed196cc66521f7a8d31  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-2-u16.c
+ e630b1774083e182a3749c708c751b8c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-2-u32.c
+ be70728acd9f584568064c2f2478c80b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-2-u64.c
+ 787ab612a99b42c01dfd52c56a20bd56  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-2-u8.c
+ 07a33188ba3a1d29e3b22ecf21437875  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-3-u16.c
+ 01783fb477b6bcd6a300d5013be7e735  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-3-u32.c
+ 96007a2ab64695cabd474049fc004c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-3-u64.c
+ c153385539c8e38b9336460b874ccf6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-3-u8.c
+ c163ebe2a6cac74c0809970ffea9eded  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-4-u16.c
+ b1145e626a80bbe11bc753c612f834a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-4-u32.c
+ 4c9e90d5fcd314498155ef9003964a10  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-4-u64.c
+ 940d93dd1a7836abc9266f09a3346e58  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-4-u8.c
+ 3217cf7647916bb39c0de00fd9d3cca0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-1-u16.c
+ 2cb199b80a467f79eccf4e188d6a2daf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-1-u32.c
+ 9d7813229b202d0055e7d23eedeeae00  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-1-u64.c
+ 26184b09e9d5056bebfa75895549bb6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-1-u8.c
+ b53aedf44614611d1896d359331be109  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-2-u16.c
+ fc6d35e42d0c2318fe7bccfdfd354ac0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-2-u32.c
+ 1fd0d45091d888225e6bb69829e3d43d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-2-u64.c
+ f0268e85700095fa2ca948883efc01e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-2-u8.c
+ 42ca23997d1f0f08fa293ec093977b57  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-3-u16.c
+ 40a49793a336fd9f0b60927066d117a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-3-u32.c
+ 7deb823500e369685ff1aa2ee1e0a458  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-3-u64.c
+ 8fab68a58fdcfb12e7b0238096041d9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-3-u8.c
+ 5a0704ae14834f052c2a0a54a089f046  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-4-u16.c
+ 1043e1e1f181305d499d1986f78bab3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-4-u32.c
+ e24cf16e0e33b17f314ce0aafdd383c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-4-u64.c
+ 4b18fd40499e6bab3ea0e395ac0242e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm-run-4-u8.c
+ 25955d4c214b9e839b4b6590e92d90d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-1-u16.c
+ a15d437a0f48de444315226686d6a0e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-1-u32.c
+ aafb4c3e9a9c2a0ed4bbd72fbe5cad9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-1-u64.c
+ 492f041a4cafee7d04ee06c06d13ea66  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-1-u8.c
+ 145624bcff92b6b4757b0052a708c557  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-2-u16.c
+ 6a463b92cbfd511bc59e6d0669ba49ce  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-2-u32.c
+ df1e703df0c8502c826e3227817af108  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-2-u64.c
+ c47e4b029bc3233e64b12dafd2a469b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-2-u8.c
+ 01a90cd470760d7b25747c39c4808afb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-3-u16.c
+ 0410adb34d1c492fbcc8c22a76b146e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-3-u32.c
+ 9eef372a450136670f92700b955cdd1a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-3-u64.c
+ 348fd49f3894a6b080d5dea463186adf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-3-u8.c
+ 0e8b6e17ad58599d3908ac52dbebcc6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-4-u16.c
+ ef8acbbb85c9157130f71df0749caf4a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-4-u32.c
+ 7bebf811474e52b98fafa04dc2fb20a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add_imm_reconcile-4-u8.c
+ a5f20afeea4fce665839328a373e912d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-1-u16.c
+ db97640af72813d09c8b3b9bc1943e59  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-1-u32.c
+ 8c46ba628ea079e17c3e66075b921ea4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-1-u64.c
+ 34ea8f8acb3d973eda8925ea139fe864  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-1-u8.c
+ 9e7c0d8820ebfa4935b6b8c185d0f0e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-10-u16.c
+ 4ad4a175202e79d85e4d26d92c3758f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-10-u32.c
+ 14cc9f69845755eb7e39ccba01ba6cc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-10-u64.c
+ 9deed2277d7764555ff3ef8c93208bcf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-10-u8.c
+ 1288f584403d519ccca1ad54872e0861  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-2-u16.c
+ 23ab78b3569fb86e5a4b883cd8a6141f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-2-u32.c
+ 18d04e65c25b72b8fc78e14f0f6d304c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-2-u64.c
+ 5432cc8aa02ca14d74598be637671864  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-2-u8.c
+ 4f583fcdb9386954e1980a663fc72ca6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-3-u16.c
+ fd5882c33e9e20234ace92ffec594b83  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-3-u32.c
+ da295154a8d2e371fc907de8b3d335ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-3-u64.c
+ b96ff506f3728590e3a0e61b8b1c94bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-3-u8.c
+ d113bed597bc2945420f19a3d9c0ee26  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-4-u16.c
+ 1eaa9af9a69c45f98d35afe96ce5357a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-4-u32.c
+ 20818fe8ecdb53d40c13a67fb34a58b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-4-u64.c
+ 8574637232bbd622e20e7f3df7ed693a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-4-u8.c
+ 08ad029378711913b09b699ac494c31e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-5-u16.c
+ 1914df73946fe5adf738c908f296ea21  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-5-u32.c
+ a23968ab4ff2d002406d46fb071a6ee2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-5-u64.c
+ 4a71ad6bdad2e03e694804b9e1379e3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-5-u8.c
+ 67fda4d8bbe069e6fac90e62b04d787e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-6-u16.c
+ 71556d1ac3cf3f801072dbd9a55b7992  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-6-u32.c
+ 60e7e33ddf406b17e5fa1f93abb332a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-6-u64.c
+ d73334dd48b534f5410aac1f277d141d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-6-u8.c
+ 789c0e91d242e664d21b5e97e2b259d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-7-u16.c
+ 60cf8ad3d22b96a446b850cd0f0db4bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-7-u32.c
+ 0fd4d7f4261baaea8674a0e411425b07  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-7-u64.c
+ e9c1c949057254d7c50192f053a2cdf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-7-u8.c
+ da8c41a4570f969f6fbf21d49d139bc6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-8-u16.c
+ 387fd1314043cb2ec396e7d70bd39b00  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-8-u32.c
+ b4ee88850bdf58ae558a9834969c2bd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-8-u64.c
+ 49520dae5ade044b0948351ddb560fae  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-8-u8.c
+ 20c145621a58cbaf26680bc8854237e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-9-u16.c
+ d1a2f48de120d997f6d0b718795d782e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-9-u32.c
+ cf37e6e1f5eec99c02662d2f6841b529  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-9-u64.c
+ b6861d16f49fc7a7b5ffbec989cf792f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-9-u8.c
+ 87da6a12590ffa4ebd59d38a5996fb6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c
+ 41fecc62471f88bc038aac1d6a1fba1a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c
+ 03db4b0bf7d0b58fccdc8c1c314c801d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c
+ 7fc8df7bbad605bf2f7cc5349f96b37a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c
+ 3e64fc39671b82b82b932e16f1491b6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c
+ b3028f17440f9cc16420fb61f8643ee1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c
+ 508713c60993ddec539b395082575457  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c
+ 5e82c1fb4546f0e440f1c56ee8c2c2fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c
+ db5a0b02359ce9f466f2a49fe4104b5c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c
+ df0720c8778ab0f6687c79e6f52203e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c
+ c03fbe7c3af305e7535d2fabd39451f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c
+ 50721d75be6cc73bddd29115347431cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c
+ 6cf8752575a421263441d5d903818e54  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c
+ 9d44dc52026904a8cc320a5d3a3118b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c
+ 4f5f2f260982a0b0d88599a6d44a4759  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c
+ b201926136adae6993e413c047269c6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c
+ 951d6fd698de4c8128f56bfb746cc3ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c
+ e89d32651a324a58b80513303a9e54fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c
+ 12a17335d0e530d3e61ee7c89be63533  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c
+ 8942430f363c52c664bda446a730b3e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c
+ 7c95ea36244575c6b45d24d925f6cab0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c
+ 096f27455cac7896387788c0d92b0dec  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c
+ d92a8f8708e6ab9bf1e9cf2ae48949e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c
+ c8fa0c530af597bb0b5f6547e2bd4816  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c
+ 3ce341785a2a56449b28bb8b113c2687  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c
+ 68c8ca62a8cb21b0b72362aabc8a3497  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c
+ 7d98ed30824d2d6767141223f268d4c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c
+ ef7eaacee51dbacc11406f567b141585  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c
+ 26de8e844358ea36c85b528703905200  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c
+ a2bcbe8e0e6cf8bf1d307b295000ed3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c
+ 819ceb439a556ac185abbbac90e9b88e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c
+ 190ee5c0e77e51cfc9208bf26596424a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c
+ 382f350001f74e5e034f1c30d5c45764  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c
+ 816a98c736e342a1312b4fa7eed29c63  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c
+ 7f951e2cf4187b90287ace6c54c5a283  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c
+ 5c369e52e6abfd35013ccffb386e2b93  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c
+ e54f6e01d9946fe10775ffdf1e1c1d6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c
+ e0f6188858262ea2fa51006552532131  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c
+ 61c9ce8c937672e9c62967e6a3d309d3  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c
+ 92a413e8eb4c09e54b1d01c371d98574  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c
+ e25c69ca06210af1c9680b1ff1b97fc0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-1-u16.c
+ 29fa84993f4685be54a0f1c74cacacbf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-1-u32.c
+ 2cc7d967119a941899b8674c73ef4eea  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-1-u64.c
+ 84c67c296bc512d538d26560422dc799  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-1-u8.c
+ fd271f1fd15719b6a6cf37d7d1f92d2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-2-u16.c
+ 6c86523a4cd5c4c370688adeb26b742a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-2-u32.c
+ 456edbb20b8d2594fe187ad512251be6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-2-u64.c
+ 6014abca27802063a832dc0f54200c8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-2-u8.c
+ b5bfd5aa6ac527f14c636813faffb7e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-3-u16.c
+ efe5d74199b3fdd84a3cec1650e89f9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-3-u32.c
+ 8aa10eb1f25faf7bbde4453a45a3ddf6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-3-u64.c
+ e1c646748b352a919d23122e845c53bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-3-u8.c
+ 428465881ef27818f4b0d52c6259ca77  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-4-u16.c
+ d39feb26b49b2e33f372cae949692fca  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-4-u32.c
+ 52ae40a436e43fc087aef6c2d62bb33c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-4-u64.c
+ de13638b999de37dd4d2c73afa203138  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-4-u8.c
+ b2fdd4a6f2210d84a095e4e9e5037135  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-1-u16.c
+ 4ba30d7326cb6926adfae981413ee951  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-1-u32.c
+ b4e8738995f875df3287a1b15da0833c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-1-u64.c
+ f6f7560867cd6c8028ca5a5f10f70aeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-1-u8.c
+ 7487ad16bed5f1f5620e6f21452fed7b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-2-u16.c
+ b32a40ceda2f5cb5096d17bea4e31037  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-2-u32.c
+ 80947dcfc0c68ef1cff593ebd9905b24  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-2-u64.c
+ b48e1d661e5fde2b2600fb2b8e91a042  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-2-u8.c
+ f8a3c59b4a76aeb1503080a09dbce04a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-3-u16.c
+ c48ec516d150c9e1b1d97329b6fd932b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-3-u32.c
+ b3623744beb4280e52fad318705b4610  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-3-u64.c
+ 047c110f81b15e7846b8b59f5bd7e49d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-3-u8.c
+ 815f1fb33ef9b7fd202fac50991d73f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-4-u16.c
+ 16920d9f62e5d09248040c3ec8404e32  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-4-u32.c
+ 1c598ec4fd1e5289a617380d3efc3ff6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-4-u64.c
+ 95310899ac17575420553ab9eb737108  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_imm-run-4-u8.c
+ 7ca5e9f7654e24638954dc4ce2bd2587  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-1-u16.c
+ e64314fec15c9ef406fa213999aa540c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-1-u32.c
+ 23391d9cbe5a76315076476f9dc4de52  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-1-u8.c
+ 1d1189d58bf415555e2ecfea30217a85  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-run-1-u16.c
+ 2c289d5ac69c48a17f4c5a53766ddb24  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-run-1-u32.c
+ f0786b4f9a93c9157cba05550f7e0d1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-run-1-u8.c
+ bb1bf5f84fc76518584a5d3c3e9ac093  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_zip-run.c
+ 3fb2f243fd56696cad7f0421af0c8819  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_zip.c
+ 01f169853366ed5f99f18697bfab6812  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-1-u16.c
+ 0c63bd19702137426d3406749a258cd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-1-u32.c
+ 614ff7985ab0447a041528564edcf0e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-1-u64.c
+ ec946fbedcbddf2f8aaef5f4c4d9214e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-1-u8.c
+ 7acce893e760923af8fca324eff40240  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-2-u16.c
+ 0e8e86ffc46d11b97fcff03d975cc2f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-2-u32.c
+ 0b3b10f0c5b3c6cba496d625569c4b3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-2-u64.c
+ c372c13e1a795f53335ec619cdfe1dcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-2-u8.c
+ 2a77727ed7b80acc0b2b7700261ccabf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-3-u16.c
+ 6e3a577b7df03e50e1e85c17f0b580f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-3-u32.c
+ 38903437f8989a0e25e5008c99f16edd  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-3-u64.c
+ 71d539cd444467de6be92f0d3a3115cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-3-u8.c
+ 1a9cf4d5afc89d004e25194d60304632  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-4-u16.c
+ ec1ebf12df6e698c8ce3582da5d3cd71  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-4-u32.c
+ 49577edd8f0bc5eeac446fcbf300ada8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-4-u64.c
+ 9e2064c211b1528f231d4c79edbc9112  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-4-u8.c
+ bfd8406ce038ebc328fdd628169c964e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-5-u16.c
+ db5240dad3f7f4502c74ec3226916634  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-5-u32.c
+ bbdc57fc19a247d73de009904d099453  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-5-u64.c
+ f244f85d6082f0d911f20248952e792c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-5-u8.c
+ ca0e82c7af080bf0237cbf79e74691d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-6-u16.c
+ 0ea5fd6f86861db9968ebcbf0ac10a7b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-6-u32.c
+ 0ed9d68d41f8f3d25ebd46fe38268b86  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-6-u64.c
+ b7b3e614723acfb3d85c87556c9c6efb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-6-u8.c
+ 239d5d52848dabbfe66e77a25c9f8be5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-1-u16.c
+ eb9fc944338abd9b337da920153c37fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-1-u32.c
+ 6e975cce190e88fd66ce5dba18f6665b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-1-u64.c
+ 317ef8622867780c5b37aef0f5ee6202  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-1-u8.c
+ e9ececbfc9e0404bc7cfbb591537b28c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-2-u16.c
+ e1e602338954c3358989d3f7b1d8d3ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-2-u32.c
+ d7d545fdc73ecb3c45b66eaec74a3e61  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-2-u64.c
+ d494615974498ca393b73a2eadfc5dea  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-2-u8.c
+ 77c5a5f294383d708289e07cc734abdb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-3-u16.c
+ 990ac418c29c78233167d4f7456c735d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-3-u32.c
+ f9b47f151c93f33b10ac32f6bc881ad9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-3-u64.c
+ 1957059d37678111417357fd4bc304cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-3-u8.c
+ 44b0f94ca8b014480e387f95a4b32c0e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-4-u16.c
+ 2eed8512d5ee8e50186d628390fbaea4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-4-u32.c
+ 4c06c9fff9b8065e17c4ae29611a0ee5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-4-u64.c
+ b82da5808c4cffe366416c4b589d0196  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-4-u8.c
+ 6056e7bdea76daa514003510f47ed939  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-5-u16.c
+ 317ef8622867780c5b37aef0f5ee6202  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-5-u32.c
+ 239d5d52848dabbfe66e77a25c9f8be5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-5-u64.c
+ 32b6006fc0f8d5f2ec2aa56ce1218ae1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-5-u8.c
+ 6e975cce190e88fd66ce5dba18f6665b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-6-u16.c
+ d494615974498ca393b73a2eadfc5dea  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-6-u32.c
+ e9ececbfc9e0404bc7cfbb591537b28c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-6-u64.c
+ eb9fc944338abd9b337da920153c37fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_trunc-run-6-u8.c
+ a8b69d6e4817f06059591ac07092f715  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_unary_vv_run.h
  0740ed4b0bccf8a95f3268d85feb4109  gcc/testsuite/gcc.target/riscv/rvv/autovec/scalable-1.c
  f00c659d5e0b9bcb12ef31391dd22cdc  gcc/testsuite/gcc.target/riscv/rvv/autovec/series-1.c
  d64c9f6fe7344abd3299437c1ef4dfb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/series_run-1.c
*************** d64c9f6fe7344abd3299437c1ef4dfb7  gcc/te
*** 83830,83837 ****
--- 89556,89589 ----
  e361b814d6c1a2db0378e33bb0f45a2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c
  3576af7e98c5aa20081a56bb4b37c74d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c
  3d8ed1d2f663f89bdf3b5d3e429f27f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c
+ 98f34d1492ede5a23aba03f93b18969b  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c
  a0280909abc5f9c752512011a8bb99d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-1.c
  7b06d48b2780f8f240246b297efe511f  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-run-1.c
+ a42b2c8e5fe521d8703afdc69ca232a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-f16.c
+ d63f884288f45fb8af773eb6551d92eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-f32.c
+ d2129fbd8a5cc002dd823b8fbf14b7ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-f64.c
+ b5f55c062cc8be868ad37f06a359f10a  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-i16.c
+ ad2680ecc8f3d0f6475dfd6ef559519c  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-i32.c
+ 8050ebcb4cff98a308e512eba2a5d62d  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-i64.c
+ 9c8efa16d5da0947f7f6f9bb3eba0f85  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-i8.c
+ 44747d79ab074d780325dbbc989c54e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-u16.c
+ 682796e25e860c0449a49b06b2b6fc5a  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-u32.c
+ d2478820e72e1fd1ec3eac2c7dc33c67  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-u64.c
+ 55f19127825a99e2f71e0a567892b921  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-u8.c
+ b347dd5e33632084e32155f1d245cd40  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-f16.c
+ 2c8080483419b2f7b90eca576d28c86c  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-f32.c
+ 5be96368030f716103f8cad30d86ad5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-f64.c
+ c74295a7ee32b4f84e90341d590440fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-i16.c
+ 1625fb59ed7e9f8b5df55114ab4201e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-i32.c
+ b7af63f47496de98144336e59c6660d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-i64.c
+ 7ff4d1bb0968a9c2bb777aa24eacca1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-i8.c
+ d863b26924679389c0b4d34717daf5cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-u16.c
+ fe039d42a43bee9886fc1da6a6a9dbeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-u32.c
+ a47bf71cd71631cd1aff292a0abed222  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-u64.c
+ 3b5a8355c79576597a6692512dae2535  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-run-1-u8.c
+ 1774999067726e56c8f0c53e8e62b4e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st.h
+ 295f29112beb7a1a066ae3e915cf0fd4  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st_data.h
+ c582f2ee662b6b91e8ee69869e71a854  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st_run.h
  9896a5960780d24f47d224a15bc03539  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-1.c
  28bd0dac8a65582f929b1b2c1a62aeda  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-2.c
  ec4079820484ab19353528ca2b00b5a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-3.c
*************** ec4079820484ab19353528ca2b00b5a2  gcc/te
*** 83839,83844 ****
--- 89591,89610 ----
  20fe2f7800b885120e534801579cad35  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-5.c
  679d261809315603b9f032b20e1f3850  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-6.c
  9b834ca822893dc61d81b9ef055a6178  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-7.c
+ 4e923888ac4840c3e274725982e67222  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-1.c
+ 7e09988334b2cae3aee53437ac613c34  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-2.c
+ 3a21e4be9137437d1c7753ed9f1886d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-3.c
+ 77d78e222022f9c17f30a72c9bab78d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-4.c
+ 1beb24b6de3d92dfa1607dcc1279c5a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-5.c
+ 7266ed7c04f44dcc6672db5d47c35727  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-6.c
+ 222d765edd895e40c9fe17ee6ed01f47  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg-7.c
+ 9e40cd66b9f72ba035bf6e24caef1bc2  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-1.c
+ 14d8de7ab611099a71475cf862ca2493  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-2.c
+ 3d3f95229b88f7b66dfcad16cd2212ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-3.c
+ 7ee0389b7742a7d0b115ed78ddb741ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-4.c
+ b0686b76d979eb54dc70c9cbc526f301  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-5.c
+ d3f59413a93a3b2f2dbd6c6ce511468b  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-6.c
+ 4326685b2891b864ca571d6df07d1a08  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_noseg_run-7.c
  302be49e99b6bd8ae6022fece25b9166  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-1.c
  f54c5bd8c0ea5cb8801283d906bf3b77  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-2.c
  d8ca68facc317cf9c8f3963e0c33ae27  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-3.c
*************** edde07ddbd262a64d56d637d29bff0af  gcc/te
*** 83853,83858 ****
--- 89619,89638 ----
  67a5a328d165c9db1535262c0d5f498e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-5.c
  ae23c66ccb9e8a5d5b495840a26a785f  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-6.c
  2b3552d76566e95a8df2c62f875b1d11  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-7.c
+ 61d4ce63d307996c6b78350bdac761f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-1.c
+ 18aeecbb6fb1c6bdb0280ef467a75c48  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-2.c
+ c28a5206044932c0e8b6a8b43741d1ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-3.c
+ 20d127c49f72131e9faf230ea8c2d14a  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-4.c
+ b5de1871ea17f182aa582d07eeebd2b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-5.c
+ 65c3e8586a51f74499429305b6df20b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-6.c
+ 33a51fe4a38ff5e8c533185edc00dbfa  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg-7.c
+ 2ac681301d051421bffbf5dcb64a7e9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-1.c
+ 312e448ca1a34ea88f1d07502af043e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-2.c
+ a8e193133077aab228789b4564250082  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-3.c
+ e2ce3de808b524c132134fc022dd7b17  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-4.c
+ 9baeadda88e5cb0a0e972d6ae89cd2de  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-5.c
+ 85cb874f17138c100125276636134328  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-6.c
+ d24b78df53118067801e0635bf2b3d34  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_noseg_run-7.c
  2d53f8b3c679c9ed02a9c06141195501  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-1.c
  6ae78d0d4f53e9974685bb1747a08e25  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-2.c
  b831ffc758237358ac0b4f5907d39073  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-3.c
*************** a4e8b38751ba0f8837b13eed7a75ee56  gcc/te
*** 83878,83883 ****
--- 89658,89699 ----
  8d7219df7983a4ccb72e78f3726f1eef  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-7.c
  6a2cf14ac860c77a5722a3fe9c78f245  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-8.c
  ab7e2224ea59aca4f15f53504420f1f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-9.c
+ 7359a5bc5a95c3a37b50a48d16b63560  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-1.c
+ 51294d2a355c8a2ce8d93f42c602d1eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-10.c
+ c12c0045e8d912c491997800cb01ad82  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-11.c
+ a447b8d4a039ea62ed95b958564d0648  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-12.c
+ 247149c76b353439435eb5b0527683a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-13.c
+ 738d2c11b0678a444aa22bcae01faeb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-14.c
+ f6399266e2326d026909757b810e6a1a  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-15.c
+ 7af1b35824c7f51c0ab7a19a2769a664  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-16.c
+ 1a272b253b6fbb01e2cc710c6e97c789  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-17.c
+ 2434420496b79f5d3cc6768308bd1309  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-18.c
+ dabc186414dfe4b2030f69fbccbd33cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-2.c
+ 3422b6eb3a8db76cbeb31280cf998818  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-3.c
+ eec56ae0e0d986a659ba9924ecbbf876  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-4.c
+ 11d953a5f71b7a23b808ddcd7c4f3142  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-5.c
+ 8a67275ca74ff6c61c37236805ab94f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-6.c
+ 07d16e7c4cc91ad1757837505e239241  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-7.c
+ fb4233546107ae7f4ad070b034d4f660  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-8.c
+ ab50754a8a28d436cd994a2ab438520e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg-9.c
+ 00251d6ec42238c32c7e7009e19c7884  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-1.c
+ aa9c31f6ca16489d08e6a1d5db7af6c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-10.c
+ 8239541dbcbe945c3cc4e43a7feb05cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-11.c
+ 2ee52497aa0d4bcd363dbb53f849ccff  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-12.c
+ acb707ff14326bb4a26deb550bbc35f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-13.c
+ 57259a9203462d2fed836eb24c901e01  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-14.c
+ 471acae0e47f968a7ac10f45f08beed4  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-15.c
+ 88946cffe5930113805e8cbc7d834c3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-16.c
+ 9d48785be054dd2f666ce4fbf80c92a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-17.c
+ 82d40d953f513c2fc9f8780b5b4c730e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-18.c
+ a9cda0312aa1be4d7ca498dd2c4ea680  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-2.c
+ c7bec6106efee0847b4bc42bb5da7051  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-3.c
+ dd721864c28e8926f5e96abe50a16d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-4.c
+ 1ac053fd667bc715021b3262565e149b  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-5.c
+ 14077fc3a55dfaa2e1d7e97d2f13d1f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-6.c
+ e46bdab8efcedd921a2b11d3c212d8b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-7.c
+ 349d1506c5fea0199b063d44b78dbf3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-8.c
+ 38821aef6d527471c4d72fca6cf7cba7  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_noseg_run-9.c
  5580276c12c79df47a3d87e215863c10  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-1.c
  1b297dba8b12fa7dfa8b506ce18f3eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-10.c
  cfab45f400c4741c6c043cde84ad2a37  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-11.c
*************** cdf200eff327ea23c1a2fb17cca6e95a  gcc/te
*** 83958,83969 ****
  f9fd9f558cc31622f8ce317452a143de  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-8.c
  12b357a36378fe625c739110b89f6ea2  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-9.c
  debba095ca3bb203781428195bc1f151  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-run.c
! f9ee376f7fd20f08d924578cb1847f52  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv32gcv.c
! 45c4c85d4f4b8a7198d32ba25bfc5cdf  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv64gcv.c
  e2b9f2a0c739cdde5c26fce8fb22a108  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-template.h
  c7fce1b796440fb0a1acec96737a9368  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-zvfh-run.c
! 6a28b5443269c08e3fc97d7a410709d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-0.c
  872efb89adbbee0d6309d2ab98fdfe07  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-run-0.c
  f14958485b40fdc1d88ba0c4aea5d02d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-0.c
  9d417e0d3ee3870bc700689d7b9e7c1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-1.c
  bb95b119cced47d518e8822aadd4eefa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-0.c
--- 89774,89791 ----
  f9fd9f558cc31622f8ce317452a143de  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-8.c
  12b357a36378fe625c739110b89f6ea2  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-9.c
  debba095ca3bb203781428195bc1f151  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-run.c
! ea69cf80f667a314ff00c1ef952f1da0  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv32gcv.c
! 8625181d982af8edcd2c2b51e6c4a548  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv64gcv.c
  e2b9f2a0c739cdde5c26fce8fb22a108  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-template.h
  c7fce1b796440fb0a1acec96737a9368  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-zvfh-run.c
! d7173e6993ea5cf5ad1cc47175a0a3bd  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-0.c
  872efb89adbbee0d6309d2ab98fdfe07  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-run-0.c
+ 5397e68b56cf856bcc783521339389c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-1.c
+ 4d9bcef81663ec35915fda215b12bea8  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-run.c
+ 2aeef04edb5a98b1c816e935f169a2a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-template.h
+ 638d08c9f32f079de79f024449f35bf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-1.c
+ 8655cf69ddaee3201a700b00d0491c10  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-run.c
+ 35b5de7be8dbba55178b4a7e5a562291  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-template.h
  f14958485b40fdc1d88ba0c4aea5d02d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-0.c
  9d417e0d3ee3870bc700689d7b9e7c1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-1.c
  bb95b119cced47d518e8822aadd4eefa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-0.c
*************** b6d3fd4362cb2470b121fbd347f20440  gcc/te
*** 84077,84085 ****
  4d67c5609262ea278d87e88622ba8c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-3.c
  4416a4fb6b6a30b882209d3d52d5d057  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c
  df3ed51f2073fa50d5afcc7fb98508f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c
! cc8e967322dfbe36b0d3204987620d20  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c
! aca0e7d6649da316d11c1436c54cf73d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c
! f495cbba33e4b3fd309876106ed6836e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c
  df795d131502aaec605789931ec51b51  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount.c
  bc7acf665622cc57ac6ce84d1298bbb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/sew64-rv32.c
  b119dfce65ab227f9ef533e73d85f2ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/test-math.h
--- 89899,89909 ----
  4d67c5609262ea278d87e88622ba8c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-3.c
  4416a4fb6b6a30b882209d3d52d5d057  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c
  df3ed51f2073fa50d5afcc7fb98508f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c
! bf8ba8948853652a58fc72c1d7714738  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c
! 3601a499d6ad35243307e30807189249  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c
! 0e8aa6801b090f0343f64fbe1395cb61  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-3.c
! eaa0692f63edd902b4089b1894ff75b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c
! 21d6e3ae87bba532322d53e47a094230  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-template.h
  df795d131502aaec605789931ec51b51  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount.c
  bc7acf665622cc57ac6ce84d1298bbb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/sew64-rv32.c
  b119dfce65ab227f9ef533e73d85f2ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/test-math.h
*************** a3576e5ebd46f9fd3948a2fb5a7edef5  gcc/te
*** 84089,84096 ****
  c732f4bd78dc8a44223cd243b8abb3ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-template.h
  15044a08217a72804017151631a57d68  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-zvfh-run.c
  83010512697fcc67039fa1f74f31a394  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-run.c
! 027d5bcedfab5c0b90a75084d8fcf593  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv32gcv.c
! 3a4fba9624dcddd37befa246c089235f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv64gcv.c
  5b32ff62b119f25b151c538d5b235587  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-template.h
  a8bb9acf1cad50dcdec32dd38e141d9d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-zvfh-run.c
  a1d901e6ae32b515cd1c54e7914c4740  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-run.c
--- 89913,89920 ----
  c732f4bd78dc8a44223cd243b8abb3ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-template.h
  15044a08217a72804017151631a57d68  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-zvfh-run.c
  83010512697fcc67039fa1f74f31a394  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-run.c
! 5f40959249ac58296605b0314942fdb8  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv32gcv.c
! b0cc683759c742b67d1517ee14124ab5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv64gcv.c
  5b32ff62b119f25b151c538d5b235587  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-template.h
  a8bb9acf1cad50dcdec32dd38e141d9d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-zvfh-run.c
  a1d901e6ae32b515cd1c54e7914c4740  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-run.c
*************** de6f10cd541e01c386c96ae96a93a527  gcc/te
*** 84134,84140 ****
  5ee4d6cc8438a632cbd0afc8dc417dc8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-2.c
  fca60a8044ed2017776087011bacdabc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-1.c
  fb94bd1a75966c8f0229bfde1c9af0a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-2.c
! 838e4ebd26b42d5d6e77104785c26e92  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
  c04fdc8db07b7f49d9452e4b5e5aed80  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-1.c
  e96a69c629924223073642b337d8a4fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
  f330f2bdcc0d44fbf1e65cab6c8ac400  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
--- 89958,89964 ----
  5ee4d6cc8438a632cbd0afc8dc417dc8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-2.c
  fca60a8044ed2017776087011bacdabc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-1.c
  fb94bd1a75966c8f0229bfde1c9af0a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-2.c
! ad882d1662dbdd89dabc1b4e2f11e4a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
  c04fdc8db07b7f49d9452e4b5e5aed80  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-1.c
  e96a69c629924223073642b337d8a4fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
  f330f2bdcc0d44fbf1e65cab6c8ac400  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
*************** f38cacdde39da328e09317ed734e272e  gcc/te
*** 84161,84167 ****
  92a39846743d031d9e75d2e9fc81f8e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-1.c
  d5602a9bdbf834d87f1abd64be9b12a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-2.c
  66cfa909388ba932ef53b448a89b3ae0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-3.c
! 70e2dceb5acf8e14642dc0daf2394bea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-4.c
  1348e762bd2ca89ef7c185aa8f22bd78  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-5.c
  3e927e1eabd6c7033c014dd258243eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-6.c
  6bd9a9d7315aae2d7f4f328d47e0cffb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-7.c
--- 89985,89991 ----
  92a39846743d031d9e75d2e9fc81f8e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-1.c
  d5602a9bdbf834d87f1abd64be9b12a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-2.c
  66cfa909388ba932ef53b448a89b3ae0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-3.c
! ee2e380ea92bdcd8924b52165cc20d2f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-4.c
  1348e762bd2ca89ef7c185aa8f22bd78  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-5.c
  3e927e1eabd6c7033c014dd258243eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-6.c
  6bd9a9d7315aae2d7f4f328d47e0cffb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-7.c
*************** b3bcd506c350c34cc4adaa0a66028adb  gcc/te
*** 84207,84212 ****
--- 90031,90042 ----
  a57153c5795f4e1a6d4cfb4702343803  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-4.c
  87dfb99926faedaf5f644586c45b7b82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-5.c
  41db540b27406c991d3b6399f526336c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-6.c
+ 669c0170adbe6342640cdfb353239146  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-evenodd-run.c
+ 26070cee3d899039fd2d343608efcb84  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-evenodd.c
+ c765369ff3aff0333c4a2ac3d0a39e25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-interleave-run.c
+ 7e89f3a7d2465bd1017f2024f03337c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-interleave.c
+ 00c36fd5ca0136a6f17b4071dcb8af38  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide-run.c
+ 1b4d0463f44d14c19f4d02259d509a9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c
  1da39a509d6843259bd55783b0519c84  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c
  63dcd9ceec900f6d93d602a46219484d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c
  d872d21ec4d4f80b7cd59a9ff702bc0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c
*************** edb9b4181b2b408a2f578125f885f62d  gcc/te
*** 84229,84235 ****
  054d70d79d99c0a2790741e08d57fad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-run.c
  ecef52e7fa94de8caeee7a3c4f7a9569  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-zvfh-run.c
  a79dd8e0f15921de3bc7a97a50902d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c
! 48b002c483af2af80bea92412fcf4e7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-2.c
  cd375212683d2e89715f19dd60b794dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-1.c
  88e56d281c9e6014e958274256c0072e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-2.c
  52d7d158c0478eb8f538175017d6dc33  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-3.c
--- 90059,90065 ----
  054d70d79d99c0a2790741e08d57fad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-run.c
  ecef52e7fa94de8caeee7a3c4f7a9569  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-zvfh-run.c
  a79dd8e0f15921de3bc7a97a50902d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c
! a46e2469358be5cd090ef9c30487d38f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-2.c
  cd375212683d2e89715f19dd60b794dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-1.c
  88e56d281c9e6014e958274256c0072e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-2.c
  52d7d158c0478eb8f538175017d6dc33  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-3.c
*************** c4f1e57a8dcde0d7416e239ed9cb99f0  gcc/te
*** 84240,84253 ****
  33ee4112b159ea44d94bb25dc469847d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-5.c
  a85f7942d45e11d731824fcce04022da  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-6.c
  c921c5085b27858499e470f23a40d71c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/bswap16-0.c
! f76bb76458e20d0dc4862b7e85ff2ba5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c
  a4cf378028e723371c5f17d244a90e7c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-10.c
! 60fc7fbe428ac7aa27d4f100f9e62c67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c
! 9eec1cb7daab69705d95e25b30852436  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c
! 694db0e091b1cf163444fccc20f80137  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c
! 05c8d3d0f9160103710ee86ab7340b4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c
! 1288017567dfc303e87871d8514ecf31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c
! 58786c6976c9c7674b46be54a30f85e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c
  81082a96f41628c763f35ef172e77815  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-8.c
  f40503114afea5268bbab44e4a6cc185  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-9.c
  18bb84cafeb71b2fbe2da4a97b8a72d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-1.c
--- 90070,90083 ----
  33ee4112b159ea44d94bb25dc469847d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-5.c
  a85f7942d45e11d731824fcce04022da  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-6.c
  c921c5085b27858499e470f23a40d71c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/bswap16-0.c
! b31c88d47d78f741076463728b6d8bd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c
  a4cf378028e723371c5f17d244a90e7c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-10.c
! 9d430c958c1f97205d82d014f7c39865  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c
! ca3084d36f83c41d4a52f2b030e3edc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c
! abb70a04005a106ebb77a5a09dc08c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c
! 847c42eba0db6e7127fba682f67bfcbc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c
! 260baa4a6225388c3be5c762b5d1fdfa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c
! c85ad178bb69d8c575a83bf160f40b23  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c
  81082a96f41628c763f35ef172e77815  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-8.c
  f40503114afea5268bbab44e4a6cc185  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-9.c
  18bb84cafeb71b2fbe2da4a97b8a72d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-1.c
*************** f298fff070680bd96851af14a02ee046  gcc/te
*** 84295,84302 ****
  5ac0768346789c39fec348ae85a0affb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_and-1.c
  781410d0b614316f73038f8ed9e35766  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-1.c
  6c77570f3281fe9fe2e083b74d590321  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-10.c
! c8318b2b35865be02faee7dab5a41204  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-11.c
! 044955868d62486ad0bd1d00e249f915  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-12.c
  3246ea570ae40f6c5591d54e6980fdad  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-2.c
  52e669e52b0a3f06af0fe4055182d360  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-3.c
  2c3cc4b3e858e0560c5a5dcbd507820f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-4.c
--- 90125,90132 ----
  5ac0768346789c39fec348ae85a0affb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_and-1.c
  781410d0b614316f73038f8ed9e35766  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-1.c
  6c77570f3281fe9fe2e083b74d590321  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-10.c
! 4b17dfee361d9e7481a28da30ee955cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-11.c
! f75be5e531e35ada19a53a1cd3e41b92  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-12.c
  3246ea570ae40f6c5591d54e6980fdad  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-2.c
  52e669e52b0a3f06af0fe4055182d360  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-3.c
  2c3cc4b3e858e0560c5a5dcbd507820f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-4.c
*************** e85bde8b74def20fbf0f71177e40251e  gcc/te
*** 84330,84336 ****
  2db480ce350aac66d3253e885a8d2763  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mulh-1.c
  d2c55412a9f0c673c9293660fb0c615d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-1.c
  c56ced7463b3447d3c140dc82a3396e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-2.c
! 46e71d82e1427cec6b8d903a7ec78c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-1.c
  83b03e84a35b728b8329af4ee1ecf3d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-2.c
  c8f8e533408dd14820188fe25238531d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_not-1.c
  936174ebf3cc0a003dbfa01110a2967a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_shift-1.c
--- 90160,90166 ----
  2db480ce350aac66d3253e885a8d2763  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mulh-1.c
  d2c55412a9f0c673c9293660fb0c615d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-1.c
  c56ced7463b3447d3c140dc82a3396e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-2.c
! 3596361b8bba6f7878d8acf087b866be  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-1.c
  83b03e84a35b728b8329af4ee1ecf3d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-2.c
  c8f8e533408dd14820188fe25238531d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_not-1.c
  936174ebf3cc0a003dbfa01110a2967a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_shift-1.c
*************** c8f8e533408dd14820188fe25238531d  gcc/te
*** 84338,84346 ****
  bfbd8e6e9c50c6aae8d969cad417a0dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sqrt-1.c
  0520ce8d1526daff0708f5cbb40c45ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-1.c
  bbcb4899b5dae312ea516bebf5849700  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-2.c
! 16dd6bf50c014e967ac01515d588f698  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-1.c
! b99774ab00f25eba527c4bbef82f4082  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-2.c
! 0f10b58c46dbacfff09453c45df2aaa0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-3.c
  8775ad53390c8b893aa9b78f210152d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-4.c
  e3ccbdbeb912badfa7c7df752ad248d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-5.c
  9250cd42f2226021f017629f95fce07b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-1.c
--- 90168,90176 ----
  bfbd8e6e9c50c6aae8d969cad417a0dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sqrt-1.c
  0520ce8d1526daff0708f5cbb40c45ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-1.c
  bbcb4899b5dae312ea516bebf5849700  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-2.c
! b034014e3c06d6045bd7f542dccf97db  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-1.c
! bfb5123c8f9ae617c8d8c7f4fd44fe65  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-2.c
! 472deed815675c47dca2c9c69adb3a89  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-3.c
  8775ad53390c8b893aa9b78f210152d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-4.c
  e3ccbdbeb912badfa7c7df752ad248d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-5.c
  9250cd42f2226021f017629f95fce07b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-1.c
*************** d4113209103fa482a856643b664ae196  gcc/te
*** 84369,84376 ****
  97ea92a2dad464fe178075399efce195  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-5.c
  5e024ec2225cceea207ac5da20a6cb99  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-1.c
  3cf95425e70f5570aaa19bf17037491b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-10.c
! b2651e0b3c9984e506f26c4a3ce4ad18  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-11.c
! 0597494f0a140977759dcf56bac2ecca  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-12.c
  1a3e5d53baa858b973b152c123b7703a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-2.c
  aabff7f6b7dcf62be52680b0d6aa9c97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-3.c
  5d3fd6dcdb855b98ffe636aab755c0aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-4.c
--- 90199,90206 ----
  97ea92a2dad464fe178075399efce195  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-5.c
  5e024ec2225cceea207ac5da20a6cb99  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-1.c
  3cf95425e70f5570aaa19bf17037491b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-10.c
! afcf34bba52b8b6d56ab549ff1953f9a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-11.c
! 373382dd0b5c4da921c3e61e153506f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-12.c
  1a3e5d53baa858b973b152c123b7703a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-2.c
  aabff7f6b7dcf62be52680b0d6aa9c97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-3.c
  5d3fd6dcdb855b98ffe636aab755c0aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-4.c
*************** c6f64767aa5c25a649dd1df61e9fbd20  gcc/te
*** 84510,84527 ****
  7a8c7a3a6a847f170c9d6e043d4fbbd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-roundeven-1.c
  918652494e4e529a1b7960c15234794e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-trunc-1.c
  7bf68e600f98ff1bb6a4d189ebea7f93  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/max-1.c
! d8dba6fdf40a65df1736649e203567e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-1.c
! c3c1f8dfa1264a8603843b5fdc658f47  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-2.c
! 20a5ecc695bbec38dc27ef7e4a9f3610  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-3.c
! c7af734e7433c97568124f799f8d43b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-4.c
! 4ead08dfe45752cd0707c182f32a3a3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-5.c
! a0fa9037f39681294a005d7603cbf4f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-6.c
  cd721989136cb62e6743cd63f5bbc4be  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-7.c
  11bfa3270930c86728f390934698b81c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/min-1.c
  3be0831deab1f86e50b805e6b7601a3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-1.c
  b2b7d74271b820f7bcacdf3a971c2092  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-2.c
  dd0fd57ad94068bab7221239495bfd5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-3.c
! 409ccb62f7821999010bde010bda7ad9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/misalign-1.c
  aacf1f98348d7e71d61ebb1000508ed5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mod-1.c
  1564b7bc38b7a707fdb6b0f772604222  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-1.c
  795eaf0e1c0a4dd986763c8a40355609  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-10.c
--- 90340,90357 ----
  7a8c7a3a6a847f170c9d6e043d4fbbd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-roundeven-1.c
  918652494e4e529a1b7960c15234794e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-trunc-1.c
  7bf68e600f98ff1bb6a4d189ebea7f93  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/max-1.c
! 534d972e8ce7199b735629c34407f516  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-1.c
! 7ee284d87f43b07290d8d7c2ae04d989  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-2.c
! ff6fd11f1b8555143d5e6da3775478ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-3.c
! 2180b7b4df80b593867f8896b67e6898  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-4.c
! fce612c270c0e078bea1ff388e4d3e98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-5.c
! b75a55fa0931f6ae4a31b80208a28d20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-6.c
  cd721989136cb62e6743cd63f5bbc4be  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-7.c
  11bfa3270930c86728f390934698b81c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/min-1.c
  3be0831deab1f86e50b805e6b7601a3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-1.c
  b2b7d74271b820f7bcacdf3a971c2092  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-2.c
  dd0fd57ad94068bab7221239495bfd5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-3.c
! e43e25aa4b104e8b903a974b26cbbeb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/misalign-1.c
  aacf1f98348d7e71d61ebb1000508ed5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mod-1.c
  1564b7bc38b7a707fdb6b0f772604222  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-1.c
  795eaf0e1c0a4dd986763c8a40355609  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-10.c
*************** ff0fe716aba9845fe97fc68542cab2cb  gcc/te
*** 84542,84548 ****
  4eb104851adad3859fd2705794e13d97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-1.c
  c4ba441579b0690119e1ccc92640db05  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-2.c
  541d90a11f29b4f4b57bbbb8b1f9c012  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-3.c
! c83deecba54cde53e5a3f911f2eda37d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-1.c
  d486fd40b6f4f56eec1d628586b366a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-2.c
  428aaeae4d0c0455994205731dfa90cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c
  9f5d3a08bb32320a77ea5bfbf8922ada  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-1.c
--- 90372,90378 ----
  4eb104851adad3859fd2705794e13d97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-1.c
  c4ba441579b0690119e1ccc92640db05  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-2.c
  541d90a11f29b4f4b57bbbb8b1f9c012  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-3.c
! 35bc302e0ca5c4dcd3888c97bd3903f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-1.c
  d486fd40b6f4f56eec1d628586b366a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-2.c
  428aaeae4d0c0455994205731dfa90cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c
  9f5d3a08bb32320a77ea5bfbf8922ada  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-1.c
*************** a8db3ef4865fc1e3c8d5082c09b9c136  gcc/te
*** 84596,84608 ****
  b99fad53dac5f08921e1b174026099b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-4.c
  638323af7e63fddb8abefaeb45af8aa4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-5.c
  20ff3b4807a486d80746d813d22fe447  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-6.c
! ae980971eea44e47663031cb5f24b1b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c
! 66715298c4f98e8c662270327a444231  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c
! 2921d82f4af158d70e608282887c57b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c
! 897bfdf80a65b6a9083db17c592685f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c
! adf419b74cf26b6ab9b0aa2d7c40756c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c
! 780ee46c0c3e239861ca615d96e9c350  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c
! 3b2c3360bbf6a0f466504f665121ab98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c
  96659b498171be93d3ea0a6e936d71a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c
  e30a3088fbf01ffb47904e882ee60256  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c
  89e67810ac9ec39a5f88f17184408e2b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c
--- 90426,90438 ----
  b99fad53dac5f08921e1b174026099b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-4.c
  638323af7e63fddb8abefaeb45af8aa4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-5.c
  20ff3b4807a486d80746d813d22fe447  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-6.c
! d6a4d67f914a2b4522af5b9ae83d6aaf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c
! 187ee0429fdd5e792087256329b54a98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c
! b49d8f3fdab13f4a371695ee53a0895a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c
! 7ef044821985ca8773f65b46cb6fa7ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c
! 6c45d43057f535c11df57f73272dae90  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c
! 3756b8c414cb9173d4eec2c371eef0a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c
! be1af7e3ca27d59d332240fe3268e4ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c
  96659b498171be93d3ea0a6e936d71a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c
  e30a3088fbf01ffb47904e882ee60256  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c
  89e67810ac9ec39a5f88f17184408e2b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c
*************** b13417ab5cdfb5defb5ce4a04d3ce455  gcc/te
*** 84611,84619 ****
  38d6f4070e37bb2e01290ef4c172bc6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c
  4bd419beb185370d81bcb1328f21fb62  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c
  701dc9868df28c1537988d4295a52825  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c
! 2c6857f1e31aff8a696fc4cfb24e703f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-1.c
! 5c2b04541b4a01b071bc935b641b609c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-2.c
! 00be0b1abddc839325e03afe1a5d881d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-3.c
  fe79e91eb69a235ed00179e1cbb25b25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-4.c
  2c7e43af1c2f3efc47287310ac2358cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-5.c
  1647a3cf986dd810e5f2903426a7e7f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-1.c
--- 90441,90449 ----
  38d6f4070e37bb2e01290ef4c172bc6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c
  4bd419beb185370d81bcb1328f21fb62  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c
  701dc9868df28c1537988d4295a52825  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c
! 837cd94b789c89025c52102d0812b38c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-1.c
! 3f8bc7a095b10736306659294be2db70  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-2.c
! c3b2a11d7b6532e2a00430701d2b1689  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-3.c
  fe79e91eb69a235ed00179e1cbb25b25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-4.c
  2c7e43af1c2f3efc47287310ac2358cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-5.c
  1647a3cf986dd810e5f2903426a7e7f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-1.c
*************** c6446f5ac2e409d6340ff3ea9371ae02  gcc/te
*** 84774,84784 ****
  ca2c0fd0f7b37d80b8686a6204467d5d  gcc/testsuite/gcc.target/riscv/rvv/base/abi-11.c
  b18eca0acd69ad2c1b93b7df150a17cf  gcc/testsuite/gcc.target/riscv/rvv/base/abi-12.c
  f2dfeab6d170d3094db5271699fbe660  gcc/testsuite/gcc.target/riscv/rvv/base/abi-13.c
! 147a46bb6c45cf53403aebd16c8ea9a0  gcc/testsuite/gcc.target/riscv/rvv/base/abi-14.c
  5d06825ca73c64458f156b792d9d7ba7  gcc/testsuite/gcc.target/riscv/rvv/base/abi-15.c
! 5b047347a2e41bacaa4c2ecb031005e2  gcc/testsuite/gcc.target/riscv/rvv/base/abi-16.c
  60f4b2cc5b1ad844ab52312b27512fb0  gcc/testsuite/gcc.target/riscv/rvv/base/abi-17.c
! a1af5db1b3747d799b1b59e0feb9298b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-18.c
  6ba19fed5c959266c0b391b99f5c338e  gcc/testsuite/gcc.target/riscv/rvv/base/abi-2.c
  79df4b147a8c962b142cfd7748451769  gcc/testsuite/gcc.target/riscv/rvv/base/abi-3.c
  fc5296dd345c8e6a8c7d02399b6fdd35  gcc/testsuite/gcc.target/riscv/rvv/base/abi-4.c
--- 90604,90614 ----
  ca2c0fd0f7b37d80b8686a6204467d5d  gcc/testsuite/gcc.target/riscv/rvv/base/abi-11.c
  b18eca0acd69ad2c1b93b7df150a17cf  gcc/testsuite/gcc.target/riscv/rvv/base/abi-12.c
  f2dfeab6d170d3094db5271699fbe660  gcc/testsuite/gcc.target/riscv/rvv/base/abi-13.c
! 1cfdba4bf0341a3738d38984a333645c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-14.c
  5d06825ca73c64458f156b792d9d7ba7  gcc/testsuite/gcc.target/riscv/rvv/base/abi-15.c
! 1d87f03d9a9160f6c56ca5b40bab8dcd  gcc/testsuite/gcc.target/riscv/rvv/base/abi-16.c
  60f4b2cc5b1ad844ab52312b27512fb0  gcc/testsuite/gcc.target/riscv/rvv/base/abi-17.c
! d18ee05a68910ba90dd3fe8679b3aa3b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-18.c
  6ba19fed5c959266c0b391b99f5c338e  gcc/testsuite/gcc.target/riscv/rvv/base/abi-2.c
  79df4b147a8c962b142cfd7748451769  gcc/testsuite/gcc.target/riscv/rvv/base/abi-3.c
  fc5296dd345c8e6a8c7d02399b6fdd35  gcc/testsuite/gcc.target/riscv/rvv/base/abi-4.c
*************** a80e25331725ae6098c3261099a7ef2b  gcc/te
*** 84794,84812 ****
  0829b4a0412a5ffbff5b6b89cfe460f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3-run.c
  8087e05bae4feec63c68f40dfb568664  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3.c
  70ad37d73814213b5a6ddba022570299  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4-run.c
! bfceb28778fa75789b3ba55098a61009  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4.c
  725fc9ba2f63002a2e6b4b64b7887ec4  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-error-1.c
  7b78a7b679dd491d6c61de416b1fb27b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return-run.c
  ad97e8e89410a2adffa7e22838b725f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return.c
  f2945320582c6482ea04eaf56821d81c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc.c
! 285213aa483cd0b095b5fa8dac08cb16  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c
! dc0882c338358464acd53a3297455736  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c
! b11f9bb5b53c88022b156a06d0498596  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c
! 48de7a1b5ea7aceb74ae1bd3eb6161d8  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c
! dd9c5f5185614016e6d805ede5643f71  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1.c
! 1b3f631a1fb838e57e902db219c3beda  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
! dec77171afa4a63d66f6da7bda934f7c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
! 3ac7ebb006ce2c6e585686c214b65c51  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
  629c187a7a0bd87e433fabf0245c0c3e  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-callee-saved.c
  2c2a72a978d9bc43ffa9b9b6cc19fc1d  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-error.c
  2f86e7270fe43bd8b0be7f32b66d51c1  gcc/testsuite/gcc.target/riscv/rvv/base/big_endian-1.c
--- 90624,90642 ----
  0829b4a0412a5ffbff5b6b89cfe460f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3-run.c
  8087e05bae4feec63c68f40dfb568664  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3.c
  70ad37d73814213b5a6ddba022570299  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4-run.c
! 4671e02741e02c22c7674141ca3ce0bc  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4.c
  725fc9ba2f63002a2e6b4b64b7887ec4  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-error-1.c
  7b78a7b679dd491d6c61de416b1fb27b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return-run.c
  ad97e8e89410a2adffa7e22838b725f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return.c
  f2945320582c6482ea04eaf56821d81c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc.c
! aa56594b41401e4642714ac3928eeb89  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c
! cd01e7846635863c4b9682a16cace670  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c
! 60c06545559611797c8ce08fc87af9c2  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c
! cbe8e5d074c5d2265721e177a021335b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c
! 23bc4298953143c3324de86c9be0d92f  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1.c
! 362d6dc90226396be65270da37e1b724  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
! 5ad7ec6a3dd9046ee1a45bacdde22849  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
! adc971fc74f257f7a7818a7d54566300  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
  629c187a7a0bd87e433fabf0245c0c3e  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-callee-saved.c
  2c2a72a978d9bc43ffa9b9b6cc19fc1d  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-error.c
  2f86e7270fe43bd8b0be7f32b66d51c1  gcc/testsuite/gcc.target/riscv/rvv/base/big_endian-1.c
*************** bc09f70431f89cbe0781473918a20fb7  gcc/te
*** 84993,85004 ****
  d0b909d869e818b5b2abd0395ab17271  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-98.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-99.c
  13c1c20db59e9d99461ec9170fed983c  gcc/testsuite/gcc.target/riscv/rvv/base/bug-1.c
  68884bc5d70a58c7055df54c35b12065  gcc/testsuite/gcc.target/riscv/rvv/base/bug-2.c
  121e06a5dd20d140f160d5c0fcb057b6  gcc/testsuite/gcc.target/riscv/rvv/base/bug-3.c
  8c5f12e7d8382592aebacb0ea5057b41  gcc/testsuite/gcc.target/riscv/rvv/base/bug-4.c
  98e95e62c4d0b0cb1ddcbce4b54a6a6e  gcc/testsuite/gcc.target/riscv/rvv/base/bug-5.c
! bb00467bf137910c133163c0e59ee5b4  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
! d0518f38fd0f70ecee9e4e54fb74b51e  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-2.c
  1d3ea8a2d452df16e19bd8b4da8d50f8  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-1.c
  37fdd933bd2eeed1ad3ac3d804137e50  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-2.c
  7fc70f3cc108dbfb3f559bcf7fec46a7  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-3.c
--- 90823,90845 ----
  d0b909d869e818b5b2abd0395ab17271  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-98.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-99.c
  13c1c20db59e9d99461ec9170fed983c  gcc/testsuite/gcc.target/riscv/rvv/base/bug-1.c
+ 861fa0b9b7f9d97ff5ed8c135aa994ae  gcc/testsuite/gcc.target/riscv/rvv/base/bug-10-2.c
+ 34411b7f3edb03e234b44ff70eabdffe  gcc/testsuite/gcc.target/riscv/rvv/base/bug-10.c
  68884bc5d70a58c7055df54c35b12065  gcc/testsuite/gcc.target/riscv/rvv/base/bug-2.c
  121e06a5dd20d140f160d5c0fcb057b6  gcc/testsuite/gcc.target/riscv/rvv/base/bug-3.c
  8c5f12e7d8382592aebacb0ea5057b41  gcc/testsuite/gcc.target/riscv/rvv/base/bug-4.c
  98e95e62c4d0b0cb1ddcbce4b54a6a6e  gcc/testsuite/gcc.target/riscv/rvv/base/bug-5.c
! 8a331ec5fc9b791606e17f26549b72f3  gcc/testsuite/gcc.target/riscv/rvv/base/bug-6.c
! e69f8493b1635d9f1b9501d34af3c23f  gcc/testsuite/gcc.target/riscv/rvv/base/bug-7.c
! 7b92c91a4f691014e5e121ca17b79c8c  gcc/testsuite/gcc.target/riscv/rvv/base/bug-8.c
! ff23170c9e58c040ed5385512fecf4e7  gcc/testsuite/gcc.target/riscv/rvv/base/bug-9.c
! 4ef2ee18b8c763bd856a3eb15741d55e  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c
! b523a78e43b797798dfee929a399a986  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-2.c
! 0f45217e10e64f47b626e5a23cece753  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c
! 604374e972d51ae76d633cccec694345  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c
! 20a45e5c856150b25acba7f1f60d6550  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
! a12844f0084e0e0246932d95226af1bf  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-2.c
! 87421cae116eac165f263e07418cdd02  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-3.c
  1d3ea8a2d452df16e19bd8b4da8d50f8  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-1.c
  37fdd933bd2eeed1ad3ac3d804137e50  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-2.c
  7fc70f3cc108dbfb3f559bcf7fec46a7  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-3.c
*************** f8d68eda8e75610f3abd8282856cc66e  gcc/te
*** 85009,85014 ****
--- 90850,90856 ----
  4b95c2c6a750dec788a04b8733aedbfa  gcc/testsuite/gcc.target/riscv/rvv/base/dup-2.c
  acb83c56941b40cd27490db738df6ef7  gcc/testsuite/gcc.target/riscv/rvv/base/fixed-point-vxrm-error.c
  cf53a9b2eaefe23a823c5ce97b46657c  gcc/testsuite/gcc.target/riscv/rvv/base/fixed-point-vxrm.c
+ e1d7b8138b6a29516a84045b46d40610  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cmp-eqne.c
  9fbf50a6082336831995df0ec679aa31  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-f.c
  49d0f4ca1bac31d2c3d11181b7e1e406  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-x.c
  3cb6f7d5cb779a9b9582af157b48729a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-xu.c
*************** d5050960d1f46bf0f8e43c795935946f  gcc/te
*** 85142,85147 ****
--- 90984,90990 ----
  ef4245fd73f1de259b051142efa963ad  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wredosum.c
  843a8c5fa0dc081f888dc2d0b627d0a3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wredusum.c
  08054e5f470b078b510e4a3e83f162d6  gcc/testsuite/gcc.target/riscv/rvv/base/frm-1.c
+ 62b9c34ffc66f09c2f8e7f4e0f7963a6  gcc/testsuite/gcc.target/riscv/rvv/base/integer-cmp-eqne.c
  49f1b4782476ece5ef4b7d47553b9e13  gcc/testsuite/gcc.target/riscv/rvv/base/integer_compare_insn_shortcut.c
  ad3f94be809a85189ad1c49198c4c3ad  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-1.c
  c6b052e57c2390fdf919c33521b5abdc  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-10.c
*************** eee07e7f02ac91f8adf778c10661c2a1  gcc/te
*** 85175,85180 ****
--- 91018,91025 ----
  b6bd0811c82a6af5d3f5b16c8c8a8af7  gcc/testsuite/gcc.target/riscv/rvv/base/mov-7.c
  83a3ad5e108ad86593a9b18046a8e987  gcc/testsuite/gcc.target/riscv/rvv/base/mov-8.c
  77f72f25d47d86afb72813e3d058656b  gcc/testsuite/gcc.target/riscv/rvv/base/mov-9.c
+ afd3fd5011aee9b5cab58b5bdcf2a810  gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c
+ 9f245edeaf716abbe566f902202d67b9  gcc/testsuite/gcc.target/riscv/rvv/base/movqi-1.c
  b3d7c0ed64814842278ee85316f4d9f9  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-1.c
  bc908c8e86335a1e2679eb72213fcc84  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-10.c
  428997b4f2b90fe6d460ddd9b52be1eb  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-11.c
*************** a2db87a14fdc943366ea47b48f14e334  gcc/te
*** 85263,85283 ****
  fb0df6bc32bb427d5d578ad8009e76dd  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-3.h
  8a3786e62cbc807194a34f6dd183bf5f  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.c
  f4f7bd68cf61f3021a4392c859bb5a4d  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.h
! 14e88e120b2075d0a4bad2d387d528aa  gcc/testsuite/gcc.target/riscv/rvv/base/pr110943.c
  7c67868d26d5c57f5b7f7b2cdb4726b4  gcc/testsuite/gcc.target/riscv/rvv/base/pr111450.c
  5a00c3b4c0865c8f59a10eedd589237a  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-1.c
  7bf3e61c76d990976a4362ce406f7133  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-2.c
! b16afe5efc362cf6144a1c4db6258075  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-0.c
! 29a079ca09998a4deefdc102f7b453ff  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-1.c
  5a29e164aee32eb6aae0edd8f80a7053  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-10.c
! 0d967e7f58fb5a78fd711f3133a0716e  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-2.c
! 40d026d4a94d86299a91cc407c131e37  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-3.c
! bf385c289a58c17b92d7f1db40cdc24a  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-4.c
! adf5b0cdaa26690bb6540db1eaecbc18  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-5.c
! a90d246f19d6f1642dc48d31dcb948f5  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-6.c
! 8c588779e36db6d75e90063b431f4554  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-7.c
! 8ca60421d384527b1e977bc4322b0b1c  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-8.c
! ec84bb12bfa020b219a147adcf1471d0  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-9.c
  f443d44b7b74c36b4c9f956343852098  gcc/testsuite/gcc.target/riscv/rvv/base/pr111935.c
  03af6f8fb1424ac4e0ff7abae66b9d8b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-1.c
  fad2da62a00d5292561ff53cea4b55c6  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-2.c
--- 91108,91128 ----
  fb0df6bc32bb427d5d578ad8009e76dd  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-3.h
  8a3786e62cbc807194a34f6dd183bf5f  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.c
  f4f7bd68cf61f3021a4392c859bb5a4d  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.h
! 5afda76350589823556a117e747f9dfa  gcc/testsuite/gcc.target/riscv/rvv/base/pr110943.c
  7c67868d26d5c57f5b7f7b2cdb4726b4  gcc/testsuite/gcc.target/riscv/rvv/base/pr111450.c
  5a00c3b4c0865c8f59a10eedd589237a  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-1.c
  7bf3e61c76d990976a4362ce406f7133  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-2.c
! 7c2c98e417e9146beea623ec1135649b  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-0.c
! 0c335753309feb0496d6d8a7e9aca28e  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-1.c
  5a29e164aee32eb6aae0edd8f80a7053  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-10.c
! 0ea9ba18a6f93177f0b45af59450325f  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-2.c
! 413e836a88d181f541c935af2c1ec2fd  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-3.c
! fd2f46a0e0ee89f026464fe8bf5c7f23  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-4.c
! bc25c78cb1f0c9d66bd5e81a5d6ef442  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-5.c
! 7024db8263bec0e17ae8175ee94e4efa  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-6.c
! 638909b23c54798d94332ed057db2793  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-7.c
! 362278794ee6d36d992442f5461f4505  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-8.c
! 81303371949bf98a4060d98e637cadc9  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-9.c
  f443d44b7b74c36b4c9f956343852098  gcc/testsuite/gcc.target/riscv/rvv/base/pr111935.c
  03af6f8fb1424ac4e0ff7abae66b9d8b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-1.c
  fad2da62a00d5292561ff53cea4b55c6  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-2.c
*************** cfeb2916d3c635fdc870fa4dd68db703  gcc/te
*** 85294,85300 ****
  7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
  3e2ec7778c99a6a0261ab2f4a6450f3e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
  1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
! 2b5182a88c338a844fd11df56198c63d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
  ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
  01113869871bb1fbcb103fb4d9b60577  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c
  dfb14b9db17d26fe2fff40418d1cf459  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c
--- 91139,91145 ----
  7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
  3e2ec7778c99a6a0261ab2f4a6450f3e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
  1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
! aa98c41a6ee8d307994d4aa833a1ff75  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
  ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
  01113869871bb1fbcb103fb4d9b60577  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c
  dfb14b9db17d26fe2fff40418d1cf459  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c
*************** e07baf5d5588ed4ad8db81844c63e8ef  gcc/te
*** 85331,85349 ****
  cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
  8d4aee18e9586419a1d4815babb2013a  gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
  4f118ff8b8d46e2f259e09044750e87c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114195-1.c
! eed22594c494f6d5a01da94f82f87ebf  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-1.c
  ddbf78c23d7663691fc4ccf12518597c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-2.c
! dfbf415b8d54920f7230b6ee601ac48b  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
! e0198d708b72e5e0f83eb43bcf1d9ed5  gcc/testsuite/gcc.target/riscv/rvv/base/pr114639-1.c
  7333f6fe4bde976370361beae4252cd4  gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c
  cdba373e4c3a0250dd05956a2143e9a4  gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c
! 67515b3a36c532990faba3a7e0ec335d  gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c
! 4ae3d84014b7eb2f4bc7a706efcd472d  gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c
  5a296afee4b3d78665ed78bbb359d432  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-1.c
  10e5125a3113c385efd5e57538cbdeb0  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-2.c
  213f8b639e1f7eb7914b209e26dccdc1  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-3.c
  595037b248f8ecfb01495bc6d08271c4  gcc/testsuite/gcc.target/riscv/rvv/base/pr115763-1.c
  63214e034878b2ccd3db00c4353e678c  gcc/testsuite/gcc.target/riscv/rvv/base/pr115763-2.c
  c05efbdfaafc64ad34b3d1c4b60a38eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr90263.c
  be75fd39ea9b3d01e3e22294359fb482  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c
  20a3b581af8087da2c1170d56ff52971  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-3.c
--- 91176,91216 ----
  cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
  8d4aee18e9586419a1d4815babb2013a  gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
  4f118ff8b8d46e2f259e09044750e87c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114195-1.c
! ba3126509aac3dd5778a08801e58d39c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-1.c
  ddbf78c23d7663691fc4ccf12518597c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-2.c
! 0f06f41c879cdb21c8b10fa63d877bb0  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
! c8df0572c9496b8c5f4e05d96fc6cc61  gcc/testsuite/gcc.target/riscv/rvv/base/pr114639-1.c
  7333f6fe4bde976370361beae4252cd4  gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c
  cdba373e4c3a0250dd05956a2143e9a4  gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c
! 09e80b076bab4f1b92bee2b6aab6b5db  gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c
! d1a07787bddb153d6016b775f6000390  gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c
  5a296afee4b3d78665ed78bbb359d432  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-1.c
  10e5125a3113c385efd5e57538cbdeb0  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-2.c
  213f8b639e1f7eb7914b209e26dccdc1  gcc/testsuite/gcc.target/riscv/rvv/base/pr115456-3.c
  595037b248f8ecfb01495bc6d08271c4  gcc/testsuite/gcc.target/riscv/rvv/base/pr115763-1.c
  63214e034878b2ccd3db00c4353e678c  gcc/testsuite/gcc.target/riscv/rvv/base/pr115763-2.c
+ a4e81b82dec302406091f71256d90e9f  gcc/testsuite/gcc.target/riscv/rvv/base/pr115862.c
+ 8c6c2bd4f5148369e6d69dcf89dcaa8c  gcc/testsuite/gcc.target/riscv/rvv/base/pr116036.c
+ 749664c5d9a18e52aeb417cd6c381a5c  gcc/testsuite/gcc.target/riscv/rvv/base/pr116202-run-1.c
+ 01698ecccd846b306ed1754b511cabd1  gcc/testsuite/gcc.target/riscv/rvv/base/pr116280-1.c
+ 551a71c9135b228a35cf54b5c2488feb  gcc/testsuite/gcc.target/riscv/rvv/base/pr116280-2.c
+ 7c87c8a22a8695c6497c51fac713b8e7  gcc/testsuite/gcc.target/riscv/rvv/base/pr116351-1.c
+ 17d16e42528c86bee3554a4638e9f85d  gcc/testsuite/gcc.target/riscv/rvv/base/pr116351-2.c
+ 48683df94420e8d5eb3d909d4d716675  gcc/testsuite/gcc.target/riscv/rvv/base/pr116351.h
+ 6f812bdfcb50e9b704da1211469e15fa  gcc/testsuite/gcc.target/riscv/rvv/base/pr117286.c
+ de37c6016ad6cf1b22d7b03f060e8fcd  gcc/testsuite/gcc.target/riscv/rvv/base/pr117544.c
+ e0e32156088fa9af1f2b938e27f7f0c3  gcc/testsuite/gcc.target/riscv/rvv/base/pr117955.c
+ e8e18eaf7275c743b3236c1a657a67cf  gcc/testsuite/gcc.target/riscv/rvv/base/pr117990-run-1.c
+ d5d07a6cd59f8387f299aa9f6bf8a11c  gcc/testsuite/gcc.target/riscv/rvv/base/pr118075-run-1.c
+ ac5a30749d3455f2d2ee95e0bba17cbf  gcc/testsuite/gcc.target/riscv/rvv/base/pr118103-1.c
+ 9d372497e1d653c6ba1c64cc559aefc8  gcc/testsuite/gcc.target/riscv/rvv/base/pr118103-2.c
+ 68975fcccf2a78e3687b7853c57cb0bb  gcc/testsuite/gcc.target/riscv/rvv/base/pr118103-run-1.c
+ c0f86006491768d52aed98937458f329  gcc/testsuite/gcc.target/riscv/rvv/base/pr118103-run-2.c
+ c68a73138459484ead0cddce6ce27d08  gcc/testsuite/gcc.target/riscv/rvv/base/pr118540-1.c
+ 0ea7fc8373cc416a901c6d640c340d2f  gcc/testsuite/gcc.target/riscv/rvv/base/pr118540-2.c
+ eaed30eccbeb952165411cfd2c789b72  gcc/testsuite/gcc.target/riscv/rvv/base/pr118872.c
+ 96272d16f134fa97f27114f27089793a  gcc/testsuite/gcc.target/riscv/rvv/base/pr118931-run-1.c
+ b8ddadeddd15bd6f079e943b9036825d  gcc/testsuite/gcc.target/riscv/rvv/base/pr119115.c
  c05efbdfaafc64ad34b3d1c4b60a38eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr90263.c
  be75fd39ea9b3d01e3e22294359fb482  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c
  20a3b581af8087da2c1170d56ff52971  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-3.c
*************** f209d28728f1dd0729a7823428e2eafe  gcc/te
*** 85374,85379 ****
--- 91241,91247 ----
  f41a9dfb44c25d5d794d4b08f7a6e063  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-4.c
  556dd0ee103265779ff255b94b089e6e  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-5.c
  290b66ede6149a58fecbbc75d65caef4  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-6.c
+ bb53b5338a6a3cd43cdb1be6c80e8e33  gcc/testsuite/gcc.target/riscv/rvv/base/scalable_vector_cfi.c
  dfab2d120358e9347328896588f09d7f  gcc/testsuite/gcc.target/riscv/rvv/base/scalar-move-merged-run-1.c
  3a07d5d9c3b65e22a9cc203b88d0d7e8  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-1.c
  8aa545f9295be5af5cb79ed082a48e21  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-10.c
*************** f0ef727ad421676bfc8524d445606492  gcc/te
*** 85386,85393 ****
  f317ba2660d97eb065ac06ba5e3d9c80  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-7.c
  28687edf951d1ee05a94b723c7533c0f  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-8.c
  3e207f073e047580eb29a2b880bb0544  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-9.c
  9d20ec19a81591b4273ec5dc6d68c4ce  gcc/testsuite/gcc.target/riscv/rvv/base/shift_vx_constraint-1.c
! fda420ccffae7d728e2ac94a060d2e86  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vdiv.c
  0beee1dd080ce6562b9f1784fcdddecd  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vrsub.c
  5573d15ac1e45d7182e2c94949f03b0b  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
  3dc45f55b6b22fe5bcbfcb754d4d19c3  gcc/testsuite/gcc.target/riscv/rvv/base/spill-10.c
--- 91254,91264 ----
  f317ba2660d97eb065ac06ba5e3d9c80  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-7.c
  28687edf951d1ee05a94b723c7533c0f  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-8.c
  3e207f073e047580eb29a2b880bb0544  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-9.c
+ 9d67b7bcf56a9d5e0175ad39afd31d8c  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c
+ c7b8c050c02b19e79d1fc07b2cbd9798  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
+ 364ca0ddd4b74247076ccd4f9e232248  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
  9d20ec19a81591b4273ec5dc6d68c4ce  gcc/testsuite/gcc.target/riscv/rvv/base/shift_vx_constraint-1.c
! 3803a1288f8c5b977c84cca2c1bfd391  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vdiv.c
  0beee1dd080ce6562b9f1784fcdddecd  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vrsub.c
  5573d15ac1e45d7182e2c94949f03b0b  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
  3dc45f55b6b22fe5bcbfcb754d4d19c3  gcc/testsuite/gcc.target/riscv/rvv/base/spill-10.c
*************** a9ae98c3cb85eb97221a7f243a49c2d5  gcc/te
*** 85401,85407 ****
  16f52ee6d07f414a5237d68e8a0bff49  gcc/testsuite/gcc.target/riscv/rvv/base/spill-6.c
  ab9e940eefba814d9fffb8ace2d7e17f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-7.c
  31b945f30d695b40cfab5ae856e4e38f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-8.c
! 483121297aafcf65131b5ef3faa6c891  gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
  7de53eea40a2d3d1318fd361b276a775  gcc/testsuite/gcc.target/riscv/rvv/base/spill-sp-adjust.c
  20a684fa5f054c192dbda28d90be1465  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-1.c
  b7e97c7f4fb848841316b6d34e7ace8e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-10.c
--- 91272,91278 ----
  16f52ee6d07f414a5237d68e8a0bff49  gcc/testsuite/gcc.target/riscv/rvv/base/spill-6.c
  ab9e940eefba814d9fffb8ace2d7e17f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-7.c
  31b945f30d695b40cfab5ae856e4e38f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-8.c
! 7f3cdd4c9ab4c8dac4c608c6cdde3bba  gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
  7de53eea40a2d3d1318fd361b276a775  gcc/testsuite/gcc.target/riscv/rvv/base/spill-sp-adjust.c
  20a684fa5f054c192dbda28d90be1465  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-1.c
  b7e97c7f4fb848841316b6d34e7ace8e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-10.c
*************** cc55280727594b33173b958adc0fa4ca  gcc/te
*** 85411,85431 ****
  33318ceb17d16d43959ecd789feaf179  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-14.c
  cb584bb4e7285d714e4238a5132e2e16  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-15.c
  f0f6c1a479c39a784b83cea81e7c6177  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-16.c
! 24783a1d4e2f29a232ef01feb9cd1cbe  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-17.c
! f060a0b10b8fd4ad62380550be25ae16  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-18.c
! 7bf3ce5663dee3ebbd1366accae99a85  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-19.c
  69176b21291b662a9698c7195dfd31f6  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-2.c
! b295ed1720d36caebda772019b493a1d  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-20.c
! 754d76c66f80620d1f41137efdbfb815  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-21.c
! 7e681a2715f4c63cfeeb6548f4dee44c  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-22.c
! a1c11a4026dd62b266318d3390d18f0d  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-23.c
! 5227fa469ff79f69e26e6b58ea7c4d78  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-24.c
! baffc034f75c09833d3c4d63a808c0f0  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-25.c
! eaaf326934fba0231dc704ef9c6d476a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-26.c
! 66f2871fb4628c2e51472f058556e380  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-27.c
! 37be75faf5e2abba2caab3e27f4fe5c3  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-28.c
! bc7676a2e448faa36ea09961a33f9843  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-29.c
! 7e3d81ee1019e460b00ca088f0390dfb  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-3.c
  dffa6f4993ad5885a4b895e794ca516e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-30.c
  1e463422377c9a82989fd5140de87458  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-31.c
  65fe783dee53eefd0003645e3198a52a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-32.c
--- 91282,91302 ----
  33318ceb17d16d43959ecd789feaf179  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-14.c
  cb584bb4e7285d714e4238a5132e2e16  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-15.c
  f0f6c1a479c39a784b83cea81e7c6177  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-16.c
! b8001e25e7286f6abf3d57ab137bf0db  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-17.c
! 069bdda347f8a33cd602e12dfeea7781  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-18.c
! 778d760209985b66b1d9b5c41f9d6b30  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-19.c
  69176b21291b662a9698c7195dfd31f6  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-2.c
! 38c1affbcf24f6020aa1c6c251b12a2f  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-20.c
! ef63f32c31c539423cb06e461a2c434e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-21.c
! cdf6448822fef4996e5d807dad5b3b63  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-22.c
! 8f0fdce36935e0c41a8fdb430170770b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-23.c
! 35e455c0f25105221608d1ac77ef8a9e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-24.c
! 8544a7445aef065fff5d93034e8455fb  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-25.c
! 8aa820f2adeee8e4dd97c40361a2cb4a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-26.c
! 22a0c7ee804b03b5731d1055ad3f3919  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-27.c
! 970a75e6eedf276bc168d5f33a72ad97  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-28.c
! d1c8ba53642f185d00bca961d24015bb  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-29.c
! 114df7be12f3b09bf09e5923adefffa2  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-3.c
  dffa6f4993ad5885a4b895e794ca516e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-30.c
  1e463422377c9a82989fd5140de87458  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-31.c
  65fe783dee53eefd0003645e3198a52a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-32.c
*************** acda120e99e0a1e7b61dc9d767e135a8  gcc/te
*** 85505,85511 ****
  5f6f1b1a9d9cacc6dcef49d370a95cec  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-9.c
  7de331ca095982ff7e4fd26bd0dac1fd  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-intrinsic.c
  82dbd9d01f73a6455095d8d062538caf  gcc/testsuite/gcc.target/riscv/rvv/base/tuple_vundefined.c
! 505485bc368b65a71f0a8cb6e9557789  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-1.c
  10b3433fa1fa8951cb025b8167292a4d  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-2.c
  788aaa7d69ba3f329a0fd22e3aa677bd  gcc/testsuite/gcc.target/riscv/rvv/base/user-1.c
  e67cfd4699ba8d957ff4d7e7fa93adf3  gcc/testsuite/gcc.target/riscv/rvv/base/user-10.c
--- 91376,91382 ----
  5f6f1b1a9d9cacc6dcef49d370a95cec  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-9.c
  7de331ca095982ff7e4fd26bd0dac1fd  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-intrinsic.c
  82dbd9d01f73a6455095d8d062538caf  gcc/testsuite/gcc.target/riscv/rvv/base/tuple_vundefined.c
! 89296533add037177c62a9378ae9dd51  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-1.c
  10b3433fa1fa8951cb025b8167292a4d  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-2.c
  788aaa7d69ba3f329a0fd22e3aa677bd  gcc/testsuite/gcc.target/riscv/rvv/base/user-1.c
  e67cfd4699ba8d957ff4d7e7fa93adf3  gcc/testsuite/gcc.target/riscv/rvv/base/user-10.c
*************** cf56a3b9b7c158942f5fac22aac4cf8c  gcc/te
*** 85522,85543 ****
  8abca1537e235866e50a32e58beec02f  gcc/testsuite/gcc.target/riscv/rvv/base/user-7.c
  337260afff71294c30b7c86a09b705f8  gcc/testsuite/gcc.target/riscv/rvv/base/user-8.c
  1eeab04886747f9e270764c0b3d8d290  gcc/testsuite/gcc.target/riscv/rvv/base/user-9.c
! d4210741ab958f9927be363d2ba3fb5c  gcc/testsuite/gcc.target/riscv/rvv/base/vcreate.c
  d00f885fc7b441370e5ad192e397ed74  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-1.c
  e6cc517e272187e5f7690fb2c2f902f1  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-2.c
  c92d74d80b645e2a2501f1ce459dec84  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-3.c
  59e7e5c88e66a9b752cbe5599180ae22  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-4.c
  a371b915b58a17d543eb5b719fa5cd84  gcc/testsuite/gcc.target/riscv/rvv/base/vl-use-ice.c
  5d33efd776de379270a693a7f842dde5  gcc/testsuite/gcc.target/riscv/rvv/base/vlenb-1.c
! 04ccb5008920cc20eeda437cd95078a1  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-1.c
  8e86f390abcb2151beef0a1a2c477cfe  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-2.c
  8de865349a060a5e80d0d0d719072aaf  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-1.c
  8b55a9688e8691e0110b327feb063962  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-2.c
  edd4b8bcb1a19623aa4ce3536faca5f3  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-3.c
  905e095f42dc930dde36dfec28bad001  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-1.c
  71a550e40436e1d1ea6215fde3444aa5  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-2.c
  87045e4f08ac44364b834bfacdea6c34  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-3.c
! 536d417921d010e5d6d1a760e09e6ace  gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c
  9031404c3b18cc30d16acd7145002cf8  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-1.c
  2562b37a9bac7879f2b354b626e6f688  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-10.c
  22d2eaeec1e80ef99fb44a1a0fc6f92e  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-11.c
--- 91393,91418 ----
  8abca1537e235866e50a32e58beec02f  gcc/testsuite/gcc.target/riscv/rvv/base/user-7.c
  337260afff71294c30b7c86a09b705f8  gcc/testsuite/gcc.target/riscv/rvv/base/user-8.c
  1eeab04886747f9e270764c0b3d8d290  gcc/testsuite/gcc.target/riscv/rvv/base/user-9.c
! 7ce858d0c1ada0dff13c5653d78ca903  gcc/testsuite/gcc.target/riscv/rvv/base/vcreate.c
  d00f885fc7b441370e5ad192e397ed74  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-1.c
  e6cc517e272187e5f7690fb2c2f902f1  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-2.c
  c92d74d80b645e2a2501f1ce459dec84  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-3.c
  59e7e5c88e66a9b752cbe5599180ae22  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-4.c
  a371b915b58a17d543eb5b719fa5cd84  gcc/testsuite/gcc.target/riscv/rvv/base/vl-use-ice.c
  5d33efd776de379270a693a7f842dde5  gcc/testsuite/gcc.target/riscv/rvv/base/vlenb-1.c
! 5932beec520456eda10f4247b8a5781d  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-1.c
  8e86f390abcb2151beef0a1a2c477cfe  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-2.c
+ 899bfb3d9abaac04879633980c1b0751  gcc/testsuite/gcc.target/riscv/rvv/base/vsetvl_zve32-1.c
+ cba45d2e5555a647bfd7121a45bd2574  gcc/testsuite/gcc.target/riscv/rvv/base/vsetvl_zve32-2.c
  8de865349a060a5e80d0d0d719072aaf  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-1.c
  8b55a9688e8691e0110b327feb063962  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-2.c
  edd4b8bcb1a19623aa4ce3536faca5f3  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-3.c
  905e095f42dc930dde36dfec28bad001  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-1.c
  71a550e40436e1d1ea6215fde3444aa5  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-2.c
  87045e4f08ac44364b834bfacdea6c34  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-3.c
! 7192c059be7172e1f5c4753ed0d2490f  gcc/testsuite/gcc.target/riscv/rvv/base/vssubu-1.c
! 0d7e03883d33c6e1c3165f297d500dee  gcc/testsuite/gcc.target/riscv/rvv/base/vssubu-2.c
! 255157859d25846487f05954f15aa25a  gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c
  9031404c3b18cc30d16acd7145002cf8  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-1.c
  2562b37a9bac7879f2b354b626e6f688  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-10.c
  22d2eaeec1e80ef99fb44a1a0fc6f92e  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-11.c
*************** bd5fe2ac8c7ea125bd674e1aa8150399  gcc/te
*** 85567,85576 ****
  8b2c7404cd85cf68ef9f9b68577ae5cc  gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c
  c408b1a7f84e4b815e85476963221ae9  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-1.c
  527003a16d82851a0dd57a93c29bcab7  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-2.c
! ae00a4e2372b755ec611b96aaff6a49b  gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f90
! 284fdebd0dafabcd770080ec38c8109a  gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111566.f90
! d1d0479719e66a55d7118f86d67bbb07  gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp
! ea69f7a69e5c459eb9bd7488ddc5bc34  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
  ecf4c4ab418350831d4471534a47d02a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-1.c
  0886d2586a892610401ae61b27c200f1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-2.c
  72b9d84e2f500b6b64e40b19b6e2f66b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-3.c
--- 91442,91448 ----
  8b2c7404cd85cf68ef9f9b68577ae5cc  gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c
  c408b1a7f84e4b815e85476963221ae9  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-1.c
  527003a16d82851a0dd57a93c29bcab7  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-2.c
! 2ff1f9c66474a8d855e27dc90b9858b7  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
  ecf4c4ab418350831d4471534a47d02a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-1.c
  0886d2586a892610401ae61b27c200f1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-2.c
  72b9d84e2f500b6b64e40b19b6e2f66b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-3.c
*************** ca6cf9eea9a25f0d1a90a7170f738078  gcc/te
*** 85587,85594 ****
  917232cfbf36ec4e19c9de207333c3d3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-4.c
  da3f39255f0a045ad328d2f04a7b01d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-5.c
  d8acc1034261ddf1a5e7c1c2ecee2fc1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-6.c
! dbc89bb08710266274685a2ea0fe4d5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-7.c
! ab3b8443aea57898f501cd068e0f5063  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-8.c
  bab90db9fb8fd3ceef9dea34aa216096  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-9.c
  ebac3468a4537d39e6e39207bb15f19c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-1.c
  8cf229d920f00f9ebde49c653e12de81  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-2.c
--- 91459,91466 ----
  917232cfbf36ec4e19c9de207333c3d3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-4.c
  da3f39255f0a045ad328d2f04a7b01d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-5.c
  d8acc1034261ddf1a5e7c1c2ecee2fc1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-6.c
! a5a183977a10bab9c4d173183e0ad73b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-7.c
! b5a00c4dbe84872d01491f37b97a832b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-8.c
  bab90db9fb8fd3ceef9dea34aa216096  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-9.c
  ebac3468a4537d39e6e39207bb15f19c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-1.c
  8cf229d920f00f9ebde49c653e12de81  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-2.c
*************** ef6e4b4d36d909db18c72729eae41856  gcc/te
*** 85664,85672 ****
  ba056af537a5d0b759601127a968797b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-63.c
  49e30c5d97c3b098b983fd0fd16cc7d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-64.c
  aeef26bc58e2d29602800ba19c113617  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-65.c
! 5122b26281c049bf3715ab32bb1b34fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-66.c
  8ed95034d9d4e11d99b97ae7d44a7cf1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-67.c
! 7aa3311624e9fe6ea41b991794814b64  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-68.c
  86947ef0aec9e92b82058a6f3b232093  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-69.c
  239a71991054d87165b9b4fb41022244  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-7.c
  1afe708eca9c2f4be668b997c0b9b546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-70.c
--- 91536,91544 ----
  ba056af537a5d0b759601127a968797b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-63.c
  49e30c5d97c3b098b983fd0fd16cc7d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-64.c
  aeef26bc58e2d29602800ba19c113617  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-65.c
! a5cad86ec76fd005eedc7d77e635f7f8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-66.c
  8ed95034d9d4e11d99b97ae7d44a7cf1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-67.c
! b0741b83556a5f2dcc4450511217f31c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-68.c
  86947ef0aec9e92b82058a6f3b232093  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-69.c
  239a71991054d87165b9b4fb41022244  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-7.c
  1afe708eca9c2f4be668b997c0b9b546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-70.c
*************** c9c27e542c1722070055b504122f117f  gcc/te
*** 85682,85699 ****
  2b37c0e09932e124e81f2afe4f279318  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-8.c
  f296a89496bf510144a460b5df0246b9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-80.c
  2f31129addbcedb4057494d9ce82cd79  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-81.c
! 70a229f0caa9ce2adf411b02fa73f6f8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-82.c
! f8dd61194199abc317a274864ea08e67  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-83.c
  93daed2cdb4b181712536e3f5c442f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-84.c
  f98ff072caae615a66b05d681193af17  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-85.c
! 373607859c4a0c568b832f65cb041ad3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-86.c
  c6154396007561774606449f36cdc696  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-87.c
! 8f835fe6a02dcad47651cc1782477794  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-88.c
  c16af70ab73be09d5ac4d08bf5842c3b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-89.c
  e4a4323f6f2eb45b6270db189206177b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-9.c
! e5d4bd800c759ed51af893f4dbd6a2e4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-90.c
! 26c7831a84ff85873e654243f9a3e434  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-91.c
! 6da668d11e95e6e72127896b56267ab7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-92.c
  f8f5af301faa1e571743e3d8d477d36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-93.c
  52fda067d36d7c8268502dfdd9b0bef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-94.c
  07cf93ea3fadb1d93f0bdeed466c6bcf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-95.c
--- 91554,91571 ----
  2b37c0e09932e124e81f2afe4f279318  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-8.c
  f296a89496bf510144a460b5df0246b9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-80.c
  2f31129addbcedb4057494d9ce82cd79  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-81.c
! 4fc539effe1dfb8abd4062f3b478751b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-82.c
! 1675317897a92583ebae67a36fa3e4de  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-83.c
  93daed2cdb4b181712536e3f5c442f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-84.c
  f98ff072caae615a66b05d681193af17  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-85.c
! c9011b449b6f767f11e18f99deb38cef  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-86.c
  c6154396007561774606449f36cdc696  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-87.c
! 602aa8e295be4cd256c54a94602da2fb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-88.c
  c16af70ab73be09d5ac4d08bf5842c3b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-89.c
  e4a4323f6f2eb45b6270db189206177b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-9.c
! 17168bcd22ad9b7d191f07778486d1fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-90.c
! 3b76dbd23e8df17598879af327f70530  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-91.c
! 71fcf76a85edf7377079dbb560690c96  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-92.c
  f8f5af301faa1e571743e3d8d477d36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-93.c
  52fda067d36d7c8268502dfdd9b0bef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-94.c
  07cf93ea3fadb1d93f0bdeed466c6bcf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-95.c
*************** f7bb9440137e4f574f9857865f6c6b85  gcc/te
*** 85768,85774 ****
  aa3e92c7340cd3485c6598b9e132677f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-2.c
  88faf0ceb114638ae22b50efefe9ae09  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-3.c
  eda3b4a21e2ba426a62611455401de48  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-4.c
! 7105d7058f90d1dfff14cc024dd842da  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111234.c
  21d0ef938cb46d03c8a121c2becb80ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c
  887ea885b64d4a5071b9c9a947e6051f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111927.c
  06f8b37d86ba28cf0906a223c73bd1c6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111947.c
--- 91640,91646 ----
  aa3e92c7340cd3485c6598b9e132677f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-2.c
  88faf0ceb114638ae22b50efefe9ae09  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-3.c
  eda3b4a21e2ba426a62611455401de48  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-4.c
! 2964fe9eda823f3624d74f0e0234051a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111234.c
  21d0ef938cb46d03c8a121c2becb80ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c
  887ea885b64d4a5071b9c9a947e6051f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111927.c
  06f8b37d86ba28cf0906a223c73bd1c6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111947.c
*************** eda3b4a21e2ba426a62611455401de48  gcc/te
*** 85778,85791 ****
  85bd7967d13eb2e66618f260619015ab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112713-2.c
  825cebaeb6421d3bddf6eb526089fcbb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112776.c
  2b9e8f37a59d4d5097c836419f577bcc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112813-1.c
! 9ecaf30d7ef9bcfbfb9a58fbedb786f5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-1.c
  0ca5195ca0b13630a73cab3d7bfdd77c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-2.c
! 907bf844f5a5d6d0461e0899fda288f2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-1.c
  1f59839cf415d948822ef4462b427dec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-2.c
  c0713b9aa6ed439fab330ab7223032dc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113248.c
  14e4ce1dbfe4c1978792e21458b54f60  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113429.c
  231f16f9d08fd8f85a1f7dac951a33d9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113696.c
! 3acf689971de850cfa0638e74f1dadcf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/riscv_vector.h
  e08588cfa23221a10eaf714a16aa7ea1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-1.c
  162e11cf9edc569ca4a0cc195e7265bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-10.c
--- 91650,91663 ----
  85bd7967d13eb2e66618f260619015ab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112713-2.c
  825cebaeb6421d3bddf6eb526089fcbb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112776.c
  2b9e8f37a59d4d5097c836419f577bcc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112813-1.c
! c85dd72a05191265ed466d39c4b6b5e7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-1.c
  0ca5195ca0b13630a73cab3d7bfdd77c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-2.c
! 92fc9dd150d1769bb8d75f82a2c6198d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-1.c
  1f59839cf415d948822ef4462b427dec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-2.c
  c0713b9aa6ed439fab330ab7223032dc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113248.c
  14e4ce1dbfe4c1978792e21458b54f60  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113429.c
  231f16f9d08fd8f85a1f7dac951a33d9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113696.c
! 7af3daa5fca47d3622e18dcf26901c3a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/riscv_vector.h
  e08588cfa23221a10eaf714a16aa7ea1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-1.c
  162e11cf9edc569ca4a0cc195e7265bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-10.c
*************** d64e66d94cbdd12b340dbf4a224f19e9  gcc/te
*** 85817,85823 ****
  48d9349f8c0c8af7f20bc9ffab411625  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-34.c
  90f5c3d830c10098a5344e2de3079c1b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-35.c
  9a448d4392699ef2b3082ce2dbb7cacf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-36.c
! d3fd07f02eea87eaea01b62a4de700bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-37.c
  07badc323281331a3a04c4de6815be63  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-38.c
  d155ea0f0b50305c82378ab87c0dc321  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-39.c
  90f4672e8fa886fa4cfbb22f81a4990e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-4.c
--- 91689,91695 ----
  48d9349f8c0c8af7f20bc9ffab411625  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-34.c
  90f5c3d830c10098a5344e2de3079c1b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-35.c
  9a448d4392699ef2b3082ce2dbb7cacf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-36.c
! fee73b147399f1d0829f785da3578a44  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-37.c
  07badc323281331a3a04c4de6815be63  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-38.c
  d155ea0f0b50305c82378ab87c0dc321  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-39.c
  90f4672e8fa886fa4cfbb22f81a4990e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-4.c
*************** aedb7500eb87a112f80fb4609b472748  gcc/te
*** 85870,85879 ****
  a6e85f1bf3d68b905f55eb7a3c5ea388  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-1.c
  c0a5c2206ccb5cf2a7d4252a7f171aed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-10.c
  aa76ec6fcec01d05d6b7e67b164ae65d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-11.c
! a0ccabaa56f4de23db0cc078e751382e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
  835d7f9ee00940eb208115ef87f2b36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-13.c
  4aa61bc76d29783352fc122155853cb1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-2.c
! 79ab5a358745a4c9625c4a93480c5abf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
  6dad560e0fe6f25d552e9d7564fcc323  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-4.c
  e64d9dead1e3f09caff223e861cbf8b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-5.c
  3276cb746e6a5dbff84541fcbda21147  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-6.c
--- 91742,91751 ----
  a6e85f1bf3d68b905f55eb7a3c5ea388  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-1.c
  c0a5c2206ccb5cf2a7d4252a7f171aed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-10.c
  aa76ec6fcec01d05d6b7e67b164ae65d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-11.c
! 7d34e3c14e449cb63f6293af6c9316d0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
  835d7f9ee00940eb208115ef87f2b36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-13.c
  4aa61bc76d29783352fc122155853cb1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-2.c
! 01e25b739316d2f693965e2bc219a683  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
  6dad560e0fe6f25d552e9d7564fcc323  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-4.c
  e64d9dead1e3f09caff223e861cbf8b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-5.c
  3276cb746e6a5dbff84541fcbda21147  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-6.c
*************** ad8c9db77e7c9613e44dda49fe473d0f  gcc/te
*** 85964,85970 ****
  04e99cb99f96b2b8c472e494b32135f9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-7.c
  0431d01db3243bcc2080b7c3f5df7bf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-8.c
  f272a5f941dae54178996abf83a2d35f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-1.c
! 8f330203b47b99b85cfb134a96bf0573  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-10.c
  861b8565e70a72c65cbabbbab3a2c957  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-11.c
  74641d520de3f75906323a1cc88bbe61  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-12.c
  d7fbcf64fbb0d5c5eafc00eaf59b4014  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-13.c
--- 91836,91842 ----
  04e99cb99f96b2b8c472e494b32135f9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-7.c
  0431d01db3243bcc2080b7c3f5df7bf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-8.c
  f272a5f941dae54178996abf83a2d35f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-1.c
! 078a865bb4db96c4b8a3b820ca8079eb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-10.c
  861b8565e70a72c65cbabbbab3a2c957  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-11.c
  74641d520de3f75906323a1cc88bbe61  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-12.c
  d7fbcf64fbb0d5c5eafc00eaf59b4014  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-13.c
*************** c4271426c82005f277417d6fed6c6e07  gcc/te
*** 85985,85991 ****
  ea0cf0b8514fc5f31482a6791295dcdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
  3091b17176a21128d513f9bd2627d46c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
  7a39209f4400e08a123ebbac1603e0a7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! 5decb56ed01c889cba56bc142653c36e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
  b89d5d905c4955ed5ee8cb130799d717  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
  4f5f521bc7321c9d8d182eb6bbbf87c5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
  6045e021342595ef012050bea17d8e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
--- 91857,91863 ----
  ea0cf0b8514fc5f31482a6791295dcdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
  3091b17176a21128d513f9bd2627d46c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
  7a39209f4400e08a123ebbac1603e0a7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! c4980de69437fa220ce99b1e68ae0b6c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
  b89d5d905c4955ed5ee8cb130799d717  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
  4f5f521bc7321c9d8d182eb6bbbf87c5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
  6045e021342595ef012050bea17d8e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
*************** a2b89786800f8429d801237a3b473a0e  gcc/te
*** 85995,86001 ****
  c621e73f024d332f72690f6f94c043ad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-21.c
  85bcdbbc17d5c013303d2e8c77393bdc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-22.c
  3c84cff56b0818c6d06fb89a91dfcc08  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-23.c
! 20ef5f21dc037ec616bc392e59583d97  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-24.c
  188c49b218b64f54ee64bd0ee2ade48f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-3.c
  6a105fdcfe8d5ddcf584810eeeba2a5e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-4.c
  054cb34b2eef7b771e56db6700865d57  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-5.c
--- 91867,91873 ----
  c621e73f024d332f72690f6f94c043ad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-21.c
  85bcdbbc17d5c013303d2e8c77393bdc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-22.c
  3c84cff56b0818c6d06fb89a91dfcc08  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-23.c
! 1b90c5c8cf6499b4add94b7f03fc2fa4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-24.c
  188c49b218b64f54ee64bd0ee2ade48f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-3.c
  6a105fdcfe8d5ddcf584810eeeba2a5e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-4.c
  054cb34b2eef7b771e56db6700865d57  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-5.c
*************** c621e73f024d332f72690f6f94c043ad  gcc/te
*** 86003,86010 ****
  c41eb5efb510f2a4691fc8a10ae4eef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-7.c
  3e4aa997690eefd0f19df7c4a010f8cd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-8.c
  d8ef71e0ec94874c30dd3fc5c4487906  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-9.c
! 5a04c0520f848ca5d75b239289ed01d8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-1.c
  c29263770485c7b02b90841494120802  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-2.c
  a73aedff02f6b3acb235257ff4682598  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_int.c
  d6285e8756e63d128df5145a90b2475e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_pre-1.c
  fff2976108519ec62768f18b012c9590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-1.c
--- 91875,91884 ----
  c41eb5efb510f2a4691fc8a10ae4eef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-7.c
  3e4aa997690eefd0f19df7c4a010f8cd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-8.c
  d8ef71e0ec94874c30dd3fc5c4487906  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-9.c
! 133d0a5bc4c1b782396944f785e2e651  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-1.c
  c29263770485c7b02b90841494120802  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-2.c
+ 145bcfbf0c960fde7043b8413bfe384a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-3.c
+ d7f32d3dfd572d0e226620a796284e8c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-4.c
  a73aedff02f6b3acb235257ff4682598  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_int.c
  d6285e8756e63d128df5145a90b2475e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_pre-1.c
  fff2976108519ec62768f18b012c9590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-1.c
*************** b3330bdc7e59d45053b22dc4e53f3689  gcc/te
*** 86029,86043 ****
  609e1d2aef82a23de55a584b6e847de3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c
  9c2f522a14fc0f4d937d128fb08e4647  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
  38f2d2ac7bb0e72885563562d91cb479  gcc/testsuite/gcc.target/riscv/rvv/vtype-call-clobbered.c
! 420d379bf3e421f1f422df71a0695192  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector.c
! d1bae37559008f0b51be445a88dcbf11  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr114194.c
! 287b2b8d083d52594a337f3d18d11255  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/prefix.c
! 64aff6badb0277fa176cd0a77f7c5973  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
! 9cc8c7275fed5ad8c33a87d01dfce46d  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
! 28e0acb488faa23626c5d3373f3e9e54  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c
! 47f9b14562d906d2bffd6f0e24e08125  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c
! 545b9ae0d71a7ff5c0e9f8d80c0c0921  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c
! 8791377d57c87c7745a959741ea6bd5b  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c
  e21250cdea6ea09da525f0119c38ea38  gcc/testsuite/gcc.target/riscv/save-restore-1.c
  d9f3969fcf83beaed59186cbaaa465bf  gcc/testsuite/gcc.target/riscv/save-restore-2.c
  f77ea662d9f85837dacf2e485dc91143  gcc/testsuite/gcc.target/riscv/save-restore-3.c
--- 91903,92462 ----
  609e1d2aef82a23de55a584b6e847de3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c
  9c2f522a14fc0f4d937d128fb08e4647  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
  38f2d2ac7bb0e72885563562d91cb479  gcc/testsuite/gcc.target/riscv/rvv/vtype-call-clobbered.c
! f57ec6ed814add19a4297888ca941b49  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_x_f_qf.c
! 2040b37ac944fad4f91dd75634f0760c  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_xu_f_qf.c
! 6c35ab0da5dedf21b042f6a387533b00  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmacc_2x8x2.c
! daf6c4e935d4c04b105ac15b59b3fbfe  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmacc_4x8x4.c
! 78305d7ec31f1fd2a0e22d74b783bdc3  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_2x8x2.c
! 8837ecfb57a8dbe92a891b08d661b3a8  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_4x8x4.c
! 829f8799e7f99f160e43c72353e368ab  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_2x8x2.c
! 475692994c47c8cf347959c08fe0d865  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_4x8x4.c
! f54b80eb5fffa420f5aabbbf8ddda08b  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_2x8x2.c
! 97fbf1d8057a6c24e22a238f1b85178f  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_4x8x4.c
! fc54d12a0cef4c8da27d6f46343e89eb  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector.c
! cbbf5673d8ca63042855a0cd377e13c2  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr114194-rv32.c
! 6826c6caa6acfa0940cda65196713c07  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr114194-rv64.c
! 3c7db89c35cb6e70949f5d530cb9444d  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr116591.c
! af1bc36c42c7044e45de0c750db8acd5  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr116592.c
! 7d338001722ed5351345d67d29329c05  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr118357.c
! 610e6f25965c50df94620396565cbba5  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr118601.c
! 3b6f5cabe79dc861ffb53d3e1f5799fb  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/prefix.c
! 2ab24ca52f156368073be4fd3c43c875  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
! d65b03ba20bf54651672609d9c9923cc  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
! a8f53ad5180333afb72d569d125c3922  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c
! 23d543f9f4d9e08404d56585b3d6d912  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c
! 445832a3c218c530f59111cda07fa653  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c
! fe865d9009af7551d830f6d4e3008ebe  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c
! 10c2fe61483d221e6648e72c6ff9f6a0  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vsext.c
! 23788d7500abf7340ab20ef598d9da5e  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vzext.c
! 1f5131eecd12e88953a40d835aeb0d06  gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
! f5cc2f465f89ee8e872ae9ecdbf6d909  gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
! 3ab4643679c40f024b38869976721fb5  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c
! b5bd745f6b9117ac4e1b1964f07756fb  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c
! 7466b8499bd6396823fc38e8b79b1523  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c
! c47935615fdc1013c93dcc8cd51657fa  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c
! 74e2e5f739876cd6b6b8288a3ae22af9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c
! 04d86a86fbc311f723b4f2ac1cdceea9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c
! afa570df0e3b3b0f3b71f688d82f8a84  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c
! d65b2c7ace72213d8b7b2604ae2998c5  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c
! 8e87e3bec12fd993f916d79964a60703  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c
! a639e104716d174485c3b15dd0cd52d5  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c
! 4ccef6b467e4f19b1cdbf6a07bdf4790  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c
! 377800bd6ea342e6a16d71973ad9a058  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c
! 31c82f3063f3c57504eb9241f56e02be  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c
! 2e0e87c0b8227177ded2e8acfd65a53f  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c
! c754450bca8be3c54815350677ac6f0b  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c
! 5ab8ec41996e9185e872a23b19f48964  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c
! 8683f13d98826cd8bfc27bde3c288a71  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c
! dde1d893b4472b276d447ead0c97e442  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c
! 98ceeb3d41dd3ddee3422e0381f29295  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c
! 45e690fa20513be7fe21de1fb6d29f9b  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c
! 1fdfb5f29e895601f9258057ca9e75da  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c
! 5df41314a762657b6d7f5c1a547ec70c  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c
! 106283465d6694b69b128e7fca26dea5  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c
! 81d150548b3c0fb11578d73b8d9ee321  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c
! 928df63fb4baddf3fe74b0ed3c0b46b9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c
! 7087581fa404fa4b9c8b2eecccb6e48f  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c
! 87955531ce4c497b66db8890234ad49f  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c
! 086841433a6854011ce4b1da005d157e  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c
! 9afce1c4561bc8a48b0477cdb0248208  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c
! 7f31a7c50e03b68fe40b0726cc298552  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c
! 35ea489efd365d6bd0cc999e14ad6f26  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c
! 444d9e26b41e65940d45cfd005358d3a  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c
! 69ad40c6f5b2b845ba28b763a2b07586  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c
! 4711507a15160bda26f78a6b808531d1  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c
! 659c3b9c2b70b894dc633748c3f56890  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c
! 6dcd87589943dfc9030b3633c6d4cfcb  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c
! 5355149b6c04b1eae8c847ab040357a9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c
! 374d49b2d55e472d1f0781ca71e28189  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c
! 4a1cfa948836efdfbc211d7c65522a88  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c
! b7c4298263d04cbde35e1ceba2c465cd  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c
! 016632a11998964a2b28160809398729  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c
! ea5dbcd1a21c558970e9d1567fe1a599  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c
! 2d4143b611147be29b4b0d805f52a604  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c
! 72810fff8f00c0146a77f13c9741cbbf  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i16.c
! 9361bec687751a64dfe2b0a3c1e1f4ab  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i32.c
! 51af994b03c7a92302c8bdbbc2dc6ac1  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i64.c
! 24a0855adef35d698fa44d445bd74c76  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i8.c
! e9ffccb6d88d33abd815eda327c5312f  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i16.c
! 6b01abe9524e873eb01eba9896ab0314  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i32.c
! 1e02b9b127e155de233ff1ba81007165  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i64.c
! 400c625309fb628a82db7b0be9492eed  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i8.c
! 6726329ff6ae774b69c92511ae5e0c5a  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i16.c
! c0e2ce9a5e3ae3f94fc127429bf3562f  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i32.c
! 86bd36a4551f84b47f3ab01940d73844  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i64.c
! fb9a7e1e4a86102c2722e4233cb31ec2  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i8.c
! 768df5756688efa4a1029d2fba657730  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i16.c
! 21592f0a4bcb721302c54448b168a585  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i32.c
! 5989f14d48365a185e58a9a3c36e15df  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i64.c
! 99dd3f638ec00946d2af0f79e8cd1353  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i8.c
! 9355a9e75b7a55ec9ed96ac4f8e7d52e  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i16.c
! 24cea47f8a113dde0ec3be3bf6256ae9  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i32.c
! eaf66485ac4927220786ca438cd3ea70  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i64.c
! a4fbca70f713707419e36fbfbbd94a6e  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i8.c
! 31c619b5463cc81510547539ab4ad838  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i16.c
! b926636dc8c226c380eb48e0ed64d421  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i32.c
! 8587ad80a4be5c6eb1d345d134a5d3f3  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i64.c
! e0622422454365276ed01468fa00fce1  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i8.c
! d05a5051fbe113eb60fc29cce6a7ea7c  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i16.c
! 4389055109b05e2bd5ecbe4f477d33ca  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i32.c
! 46cbf528adde9b96ff5b62038219ab1e  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i64.c
! d043fe8ba4b3ef86f9eb1ecbdb78eec7  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i8.c
! 3d404ebe75c302a5f09cb2a7cd54cb2e  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i16.c
! 712a08cc33e0bd329beba57a25613edb  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i32.c
! 5980317a9b4e8184987af7a5749dcb2a  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i64.c
! ff4adf82f7fff0a9eebffdadb22dddb5  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i8.c
! e65d2157a8c69efced312fcdba227417  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i16-to-i8.c
! c20a473257529a82c08f01ad30ec76b8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i32-to-i16.c
! 88217f6351577c90bf53c992223d527c  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i32-to-i8.c
! ce2e503993f467fd167938f8ef3b5d65  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i16.c
! ab2b73b5e2a4da78d7ec19595facffa7  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i32.c
! e700481b6d82aef6a8b2d4a886bb67f8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i8.c
! 76928c28b9f77194351e282b6d3b3843  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i16-to-i8.c
! dea052537d14c5cf8987058c2053d340  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i32-to-i16.c
! fe8d0175dec3fb80373f32afcb24bae5  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i32-to-i8.c
! 497e1737544fee6cdfa28866de7a1bbf  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i16.c
! 0dc50fe5a8805a37cdd9d9ea54166802  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i32.c
! a4610289a4df23a2c6199dfd746eeff5  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i8.c
! 8d5f53a4f1b54b93c69d513dac882e7b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i16-to-i8.c
! 0bf3bc65a645dc093ad94550ac12dc51  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i32-to-i16.c
! 234e278f89623c924f4da377f662bdf0  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i32-to-i8.c
! 418e378ee5b5ef47f20668deb5f424d9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i16.c
! 6f22748300f6dda53c28e1a846bd9d46  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i32.c
! 2e0e82fd21512aa56e3129c8be3495b0  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i8.c
! 1af065f6620e0a8fc377ec2205e5eada  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i16-to-i8.c
! aa85d596297a6b8c53664dde00547821  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i32-to-i16.c
! 4bb3eefc4db765f1fcf2244b302de3ef  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i32-to-i8.c
! a9a05cbd8491f8376b0f909163ae7617  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i16.c
! 92fe0ec563f8d55a01c9ac3151f40ec7  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i32.c
! 3520c43b1816a211914d5df1c1a72b45  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i8.c
! ead440a98e51c664362d44beb3215986  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i16-to-i8.c
! 8d3ba94b0056eb1c4c922e97cc0043f8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i32-to-i16.c
! 2fa4e841813983d441c4d2070c3fca20  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i32-to-i8.c
! 2332b82132ef45fecf1939935941c291  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i16.c
! d25c57f5b7c3f5889599ce0995d4709b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i32.c
! 8be258ef5ea269017aaf7ae2042ec9fe  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i8.c
! 756a47fc916386e9c4ac77e55c3cd88b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i16-to-i8.c
! 6cdd83538b42eb4209a6033401cb68ff  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i32-to-i16.c
! b18d79da422d51e85d45d8f2ff29913d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i32-to-i8.c
! 3f9c8cced0e63b07f6e28bf789d33368  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i16.c
! 44e27b26b393e7fd80a5661648c3ae34  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i32.c
! 501ab2f06e8cf0665b8e5e66023a3e8b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i8.c
! 58bfb491aa1fa0434681dbb0802b11d1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i16-to-i8.c
! a5cf509018ad14ee6b63d3870c58f6d3  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i32-to-i16.c
! 015720e41193edb93d2ace754fc5a542  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i32-to-i8.c
! 7974c3cfeb43a4c327fa580d26708f8b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i16.c
! 684c0249fd2d7752fd90fc51ec3c6dd9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i32.c
! c3d7f2ebdbd8fc464cbd248cef6fed21  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i8.c
! 786df668b0d3d86a5864ef3e7a1b476d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i16-to-i8.c
! e7d93bdd48ed0a7e711a13f99f32a71b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i32-to-i16.c
! 03eaaf0899ee1399345970fe784dc497  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i32-to-i8.c
! fffb6f5a8931d1bb44bdfc445811c660  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i16.c
! cefd04d350cb789920393cee8cc583f1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i32.c
! cff353b94f58a25419d43e0ff0562683  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i8.c
! 98a971d43536f6fbdab36e43f4f2dd8b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i16-to-i8.c
! eb202759e2488879862e0428cb1e4deb  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i16.c
! 49b55008f36b94fb83a3caf6cb3edc56  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i8.c
! c7da08ef7a8dbde1989f3e792a013679  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i16.c
! c60c11ee8f881f96935d8900693bbb6e  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i32.c
! d70a0ceeb53d8fd23c6f95082ba61d7b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i8.c
! abc04d5c31ef54f4ca70302cc73a9222  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i16-to-i8.c
! fc1e09dc583644ee80ce88d4b83489fe  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i16.c
! 0fac33912fdbd9219a832be41475afab  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i8.c
! dffe6d62df421a693213ba6158002bd2  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i16.c
! 69fa832b8a1c11bad30368574ea81da8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i32.c
! a2444232197602c81e7712cfdc621a04  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i8.c
! 88ae370c920a39259d3ed4278e162017  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i16-to-i8.c
! c866f9f7edd5cc0ac0ba596a21c6a469  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i16.c
! ab21898ded750637749b898e84c9183a  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i8.c
! 70b3af7e7fb59b694e48e44b72a75da7  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i16.c
! 38f138c51860afecafca68e854093eab  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i32.c
! 16911b59d6f8915f82f0d3f671c1ec8b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i8.c
! b812dfdfca743b49c90a19caf9a54630  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i16-to-i8.c
! 3a9fc78aa8e5efae87c0ad9507e20105  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i16.c
! 1bc39bb07caef68b4bf84674442f24e4  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i8.c
! 4d7c0cf258e01f6afb55b12a9105e885  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i16.c
! 2c1ee57c9a2cc5bc3808fda0e577db8d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i32.c
! 105a79862d8fe81ce9e66ce5ad22df34  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i8.c
! f1f02f0dcfdb1c11c108e2b61e5256e3  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i16-to-i8.c
! a69caff306cc220c6e17c23ca79e0598  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i16.c
! 6817cc3353a766ba95dfb3e4bfc9c238  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i8.c
! 94173f557037025a18b90cd997779d77  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i16.c
! 079b06c7aae479cb46c858f9958f1266  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i32.c
! 7944c1a05e1bb387d5be383942c57723  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i8.c
! a191fc8b10223d2e2c6da7d1217a9872  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i16-to-i8.c
! 3183b7f3da1ab6017503f8d71de38de9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i16.c
! 3cf4fc8ba9c802db0bd624a8e9328691  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i8.c
! 1d2b077461e5b434db45ba8e0883fcd0  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i16.c
! 898b78dd72c9d72fb86890c3f8c3875f  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i32.c
! 726556f15d9aebbaced60b3a6c2a8523  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i8.c
! 0b93482ea8f0aca8528eec18054736cf  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i16-to-i8.c
! 6f43b64043f7db47ee24d8bbf15820cc  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i16.c
! a12d1ecc11c6b322a000eb60b43e0d49  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i8.c
! 985dcd9f7a32e76211355158853cf126  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i16.c
! 38fc75ef091ca48ad809a3c9c41e20c1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i32.c
! 4d856b16187a30e9d3b3e0065bb52271  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i8.c
! 4f643ddd5c6d51673bc86df591b5d853  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i16-to-i8.c
! 1108eb04d7a825af4dd4ab09f66dc749  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i16.c
! 5176b56d479fab4037e7decb98a5f3a6  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i8.c
! 9068665ccd2d2356af4d1d3f1937fb77  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i16.c
! f0fc11d6adde32e621e81b88bf0c0ca5  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i32.c
! f230b944d21fa361f8076cf64b9563f9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i8.c
! 4c4b343dcbd3fac78e638d79bd57032e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c
! 8fd1d3ff4d2bb967dc072a01f190fd7d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c
! ad17fbf1992950f8c5a18b0d82cf789e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c
! 6afce0509989276f19bd817137383806  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c
! ca993773ed4fe3d793738e3a71502a43  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c
! 27f11230909511ff29c0772fdc06c963  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c
! 0fbdea8224e377cead12c1334bd3d39b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c
! dd9fc4bdf32fa85af097cf4eb129d976  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c
! 3ea7faed343aa2ff22c79ce8641018ee  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c
! 5eb6204c6eb41eb8d9fb9aae31f5ac31  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c
! 12724b9d5a9ef8816b19b22e9f41ac1b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c
! 9d2da8e4e2f79c54cfa8fcdf719c9ffe  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c
! 7486ee4ebe4e75f17c1823998298020f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c
! 97c430e8a0db713fdcdbf502e8525e8a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c
! f3785c4556c6a52f2e812efb68359ee3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c
! 1d800945bc70fa4a2fbb88dfebc309ad  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c
! a5617342f886adfe376f297d3e81b943  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c
! 154ee194ac71214cd7516587abe28f11  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c
! 1986024725d195f56e78fd477c717f49  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c
! 10dcbb771567035ba890a85d86178601  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c
! f8b3e25b0233aa37e4d2d475097ce9ab  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c
! cfa4478eb688e4fed007145740b155e1  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c
! 818c9bcba77a5860dae1511f5c90a8d9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c
! 4debf74203d0c23ae41d16a6f411bc0d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c
! 0ab7b247b1e8713fbbec35cbe3d2e121  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
! b72728828dac4cef4eaca4271dd1aaa2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
! 314dceaaceb2eb4b0b4e920f2bc9f558  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
! 02d9e0a9a32648b6ab8c99812bd0d8da  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
! ee7011b9e0d64d643a823728b72af73b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
! 5c7471355cdb3b08930c1996a5f0048e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
! e20148aef4a3a54fb427fcb6338aea4a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
! 50c4c3fe3a312d6dfe7cfe30cd785d45  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
! c01b0027d77bf6b48c78b2c1fd008984  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
! 61594a781e66eb8d792d4c21284579fe  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
! 0d3f0a41807888f6d4a1366b270f5eed  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
! a665f0c29b71010828d995ed311bda20  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
! fdaaa004f608a5837fc9b80df4ef242b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
! 55dfbbbbf2b89400cfb6c6b76b975991  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
! ea19afe2b82e502fb721cad3270a7196  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
! f0d64b232ae22c032abdef44dcf1749c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
! a42d2e570de943574620dcf8f3f64db9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
! b5b90753e4b2e1637714d623a324508a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
! 581e6f63f33c045d42ffd2f703fd1f43  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
! 3f18e8d12ddb1753e8ac423c68700dd0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
! b0ac2393b1d736b579ce9c67e48b5e21  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
! 1eedf71a2d0ec19acbe85956445658da  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
! 367700dac034b0cbe5acd2e3b18f7d95  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
! abaa1ba51533cd18ec24c159191ecf55  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
! 918a295b76229a10e40e993b0649c7d2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c
! 4108927016f00fca561a8d1ac9d070a4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c
! b086134b1952fa0e763cee271400e09d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c
! e2368a96e346d115c5ba31efc48c9442  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c
! b56d5b7f0e60032d381caf61bfe42673  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c
! 01985e25e1001f6eae73d5ba36b54aff  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c
! 2275ec72cc795093a586560816db83da  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c
! 5d4b0453eed53e2c439da480cbd5010c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c
! c4b0c94b42c28327460a3c6060739c21  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c
! fa259f9ff01ddfa6366f9c8a5bacc170  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c
! 2ab9645b2bb3e4fac55efedb4d5c1f6e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c
! bcf3504910fd7fc54b4ba832fdbc29d6  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c
! 09506e4057fc1d5a0c31026f47e138c7  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c
! b1c7839e173939635b77e8779fd0fea3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c
! b591fed4e4aa7aa2086d2807999c72d2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c
! 715e3e8fed56471ff9b4d7b3d2ff80ac  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c
! 843a5f00996840b4aa149aa57402df3a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c
! d8994ffe10b45d50dce20d1e5b2e2550  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c
! b6d44a236b64c09faea62e6774d2cd34  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c
! bde13d8faf0a1c61a41f5e973e45bfd2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c
! 4d8f0a1d52f489acde39e8837fded986  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c
! 7460338f214a45b77b405853a3e76bc6  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c
! 01adf7e98c57bb91b1b231c1d6844a3d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c
! 4cbac02a41b438ae4e092484695200cb  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c
! 26b4afc43328b700054523f9dc80a867  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c
! 0b4448b4b6619368cc8644c9596c0ee5  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c
! cb16941b372ff9104d186aa638f790bd  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c
! 6ebbe779f7b80c0cae3261ac43ebbeec  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c
! 4632cce54bbe3facec4432d544bc9e03  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c
! 347652934437727600d7ad2f615fa8e5  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c
! 41a7cc17bab450a69d4485dc75d6e11a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c
! 21114d4b52b103d422e861a018da445d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c
! dd7bad3a85bcb67797ccfdc3a27318b2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c
! cd8a260ee7c735d9ffd30aec03d52b76  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c
! c582216018819a7a771ef7b02656f394  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c
! 3e5f7512d268fcd04dcfbd07166a1a64  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c
! 96f9886bf5ebad5d5d0d0d7ac5de8ebe  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c
! 1ca2b89108a041f7f908f1aca43a6e2c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c
! dd2bde1eb9b05dc1553c404386d59dd3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c
! 771aaaf753fc4ce9bc5d2cf5c315955b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c
! 9e605a297a9d3a04dabdf809e7f6383a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c
! bf414bc68d1668c0d11063feee30509a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c
! 4cf5a39b7cc3a459ae68e23d8d5d1533  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c
! cdb9566bc2881fd6a9b197d88f6b333e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c
! df9c379d07de648867b549c33a706908  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c
! 13b0ccb6586dbf32eadf7bad88bad5f0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c
! 9a850aa6db0f0a7ce0e9163116a63f25  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c
! 57edfce54fa636162f12a015ed21ed24  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c
! 9dc3e6da14d3d7cab5b0e5b6af4315a3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c
! 0e7544aa6c29ac59b41ba07c5b7d9ed7  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c
! 399e40f0027bd95c6eadd21250cc019f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c
! b44d010038d0fd4ec2648daf8e106bc3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c
! c5a777fa47abcb7703e19d77ef84a235  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c
! ec9c6b5be0237498ecdd8fa633ffdf1a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c
! 0c885361dffadc418d0cfda7ac75196e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c
! b39f0ab3019d53bdd292d6e4d7aecec1  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c
! 482ddd9f5cdf5691b5762c45c22191c1  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c
! d0c41a09a0d7b7c7f3077204dba8bd55  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c
! 79401ba6e2e382e865e6c71f4945ff3c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c
! 7c023b922b805092eaf281306b39f927  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c
! f634c7b094e9ed6b444a38853ef36427  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c
! c15d97b5404003a70275d4f002ba1d8f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c
! 16793ae5015f9d6ce47f3a53a0aa4d4e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c
! f743586f9a64abad38886d67fd7d3261  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c
! 50ff068cb314571b6066cac3488941c3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c
! c01293e9a5e899454c3a779e3ee5ad7f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c
! bb28959c0c17756c9e311f018a83c089  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c
! 6834393cf715baca1ce3bae43d7e0ae1  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c
! ca6acf87118e2b9ffd537b04510c6c66  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c
! be9134835fb4454faea75d23ed7e717d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c
! a9bb4b97a7f9f4cf1cda8495c5ba7169  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c
! 061319d987341e68cec96e83508124ce  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c
! 00d375a06d18fa47a6a041de4def0cd9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c
! 18fe3b43837a32230af0ed7858f09a17  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c
! 7af29df4bd6acf39b9b9a69c0b5f98de  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c
! e4688d30f52bb4c304b8857b74a76dad  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c
! e0574dea212d049d942ca9d735eea2f2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c
! 0197c63b4d68a507ccb70af54ba422fb  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c
! 237982b64711f48b6a41d34a7d95a4ea  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c
! 430b57063d8e003092a23d629ebda9ec  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c
! 0857421c99318d520ac7855aab1a76df  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c
! fff34ac110c5056683d00000ec0b3aba  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c
! bbb2fde6e909c6195b3001730b57d14a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c
! f290397deee50410fe4541cbde57e5c0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c
! a7e5dfab2706d507fce9753e62ce07ea  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c
! 3df0530563262e020bf7822fa9e63129  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c
! db8aed38dc1e4d13d147f42c6a9cdc9d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c
! d042c2d365d0577af4537c3ebb2edf6a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c
! e1c2f1de82d739e459728af66d5dd616  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c
! 26ab9d2e893310bd0526c2776bf2b860  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c
! 92a1d75948ed0fe0101d08b6fea95f02  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c
! ba1ba99efa0d2f13ca8024109af75348  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c
! 5a876239a6e33fe975a20d071f250ffc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u16.c
! 1bfbc36c5a1ba554618b612c09780687  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u32.c
! d39a6c6069a0bfdd9a1e35bab93394a6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u64.c
! a71cebae455b2babd36eff394d66a582  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u8.c
! 8c6bb1dee7f327f2c4d4cb4071c27bbc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u16.c
! f6980c8d90f9e173ac874c7b4a0481dc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u32.c
! 55f4d6f87d5562287b34092f56a5a2f4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u64.c
! adb836eca0a3b88272ed8d27a69929ce  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u8.c
! ab9726fac3f7c7660f2649cf399acb13  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u16.c
! 7eb2ae752d844f2f582284d62d51eb0b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u32.c
! 2f9dceec5ee848da93c720de502dd4a3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u64.c
! 6cc73bf0309581dc76bb7bfd67bd94f0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u8.c
! e58f1924c96c2b10ed5461c08e25338a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u16.c
! e14b80dc147172abf2075979ee142b00  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u32.c
! fdaf379fe08e63fb6b359149d8d3b573  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u64.c
! 6f1008f6d0a362ab54fbd567bb8c01d4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u8.c
! d9063fbd5d641699d9633b5fded8ef69  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u16.c
! 31f7f7dbea7fef73943b4e3542ed2c82  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u32.c
! 9751ed35ac535f8c0f33bb46e339fe03  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u64.c
! 9e4038e45a962b910e317eb9894150b0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u8.c
! aaa16c75d2ccf3bc266794194572f619  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u16.c
! 221b420207691d019dc0daa492c309b1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u32.c
! 9b0848418bb033a78c39f46bfdd78679  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u64.c
! 37aac924218d6840175f92f06ec5fd31  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u8.c
! d91c0792c5237dc9c664c5c39daf785f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u16.c
! 2250772571a6ea7857cd962fc3c3dfb6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u32.c
! cd6a272630188a3e13dc879d1c1bf177  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u64.c
! 21e01b894c3cb3311c29aa53ab8eddd6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u8.c
! 0d5876fcde6080ce1760c321ec1e8201  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u16.c
! 382ab47a878f6e49f30fad7c0f03b042  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u32.c
! 1e13832f3517c9ad9901b82d049be16e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u64.c
! fb616219e537169da53ddaaac2301e48  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u8.c
! 14838a7c9c3a85dbdb4571dced04ccca  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u16.c
! 99d008d222797f1acd36fb3d1efe1d55  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u32.c
! 4cd12a23e10fd312caff3930dbf6bcdd  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u64.c
! 1030bdc2d31aab0ba792d50314503f48  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u8.c
! b90cee302702f372b456132ca72365ec  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u16.c
! b83e364b9e684fc822a4a4607306fc4c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u32.c
! 753ee62ec48e0a8bc806b6bc00d198c2  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u64.c
! 3e2c761495aaa83711de5f644de8f942  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u8.c
! 7a4701179deaa087e5d775708139fa6c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u16.c
! a3f4b55a61a8b97620c29accc5b9cbff  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u32.c
! 968d0e48e113262a074de612479558df  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u64.c
! ccdb69a0f124872e8dafe474dee2c7ef  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u8.c
! bcbee83ada4ed27c4b28dc3a0be9d297  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u16.c
! fbc57c9cbea22c4f7a0b469542193d8d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u32.c
! 17739d32e68eddc81c24c0ff5ba3da90  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u64.c
! f820aa7fd00138c6e18612b4b9e64f08  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u8.c
! ed5a8c491e3114aec33ad62d212a5c5b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u16.c
! a599a4592ff7d08176ce3ee524946bd0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u32.c
! 944bd24a2455bc190f2931dd12fd03e1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u64.c
! b4960554037638fbb52fffd6d676e5c2  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u8.c
! 5364491b7ddcedac4c0c1dffbd7a168d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u16.c
! 4af689de27b2f181321e4e1a9b013ceb  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u32.c
! f4138f6436826bc2e573650762716416  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u64.c
! e4106063338068f6db7916b1b4e26b7d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u8.c
! 9b319d55dea123fc797ae5e1fd0c2932  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u16.c
! 0d8830f599d320782c918bfb97df1df8  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u32.c
! d39448cd2230db82a72883bc68f2d639  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u64.c
! f002f98a8dcf7c6dd38e05105176e0e9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u8.c
! 83c27428ab866ad898fd8699b7d6a97f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u16.c
! c40200c7e462afc49341c150ca6bb6a7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u32.c
! ac97e8e3955b7744e1777c26c25363f6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u64.c
! a4137dc7cd49af625218fc19f9f792ad  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u8.c
! ddf22d6667430737376dd842fcb9b094  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u16.c
! 68e408cb58ecc1372883520e416b0eb5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u32.c
! c1872697e621a49783878f608ed6541c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u64.c
! e9a9079e9aa30b2a2b04056d1e02c0b5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u8.c
! accc4a7e83366f40e9e0b0dc7d5d338d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u16.c
! 7561e63172237f2da056480dc9976cbc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u32.c
! 505c51e8b52521b88a2773156ce64dc6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u64.c
! 4a0d45d55e8ddb1774e909e5b1c1884b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u8.c
! 3745413646f032737611e0ba1f37e63e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u16.c
! 7ab968bcb7b211e132c94ad61b1f0c2d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u32.c
! b05c23ea44ac42e630882308bb07697c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u64.c
! 89e1e5e9f0eb2fd08490324ab5aa4185  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u8.c
! 3a64732acf3c1dd2d8d084d95d42a814  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u16.c
! 868831fb07d5a4e3e199bc2e3fc4618d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u32.c
! 7eb794224babd6d37de260206cf1c8c5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u64.c
! 435bfc2a04724b244beec797adbdf884  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u8.c
! 4277ca8ff9a0b5323d098d288b3e63bd  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u16.c
! 45922bb47d799795374164244a20c9e9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u32.c
! 92e56c1684fb2c0fb614c398c6e67d78  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u64.c
! 3ea4ca4b6af7d2212356f9da9d5f489a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u8.c
! e67f610761d4d4a85a64aa2a9e81be79  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u16.c
! ae4a977550afa77b6051ee4f143f2ba3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u32.c
! 5c7920920b4d511ba2ae0b5d05855c5a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u64.c
! 053b4b3d88c73ebf13e9fb0e9daff53e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u8.c
! 64d7245c0b4084454b9efec79403f2b0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u16.c
! ccd7972c56cd10ce0f2d86a4f74eba8a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u32.c
! 53db80582401487a7d56fb9bbd7d16f3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u64.c
! 40536e8c21d929712c2f88f0f6c0b401  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u8.c
! 7991bc7b42239f9a4bb1752a5697aa7b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u16.c
! d6151f3d1f5cf6e6f31ccbadcd446b9e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u32.c
! 30331bb519ee135003f4b05aac099eba  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u64.c
! 20cb7de17c9a01fefd666600c11ede2c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u8.c
! 9cf84eefbb1efdfce108216b916d9545  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-1.c
! c7ef8f5cbf1e691de4f16cec14146683  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-2.c
! 86af3bfc47300a8c9f7a3f30e41ea09e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-3.c
! d405362e55111e4974832337a8da7418  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-4.c
! 83a9a4f2cf4914c84b72f219b0522bcf  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16.c
! d98b57784e4bdb0d944216de8b04d875  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-1.c
! 12e27596a78f72efeab0eac37818e33d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-2.c
! f626f78e438c5f8e0b0ab9928aa6ca0c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-3.c
! 586b5daffef32763f28f06d5dc042420  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-4.c
! 08c890f10436bc20ad532a3cc3a45e2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32.c
! a7ede8c744febccee7d9d5c448dca3bf  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64-1.c
! 6c0b424bf851b302bada8b3befbb7e1e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64-2.c
! 1de257779538d172b90730f276595fcd  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64.c
! 599288a1ffa62896df0000ca0bdd84ce  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-1.c
! c853a5a13be91e23efc4b591d07dedf4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-2.c
! dd7c784bb3e8d12bcc1d5642c8dcdb2d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-3.c
! 84d4f475024e5cd16df349eaab935e11  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-4.c
! a9defa5c4f39308f92ec67160bf12c12  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8.c
! 8c233be883ec88482bea8184c1540cb4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-1.c
! 7b8532916f51e33c54277db41012fe94  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-2.c
! 6dbf05e39c26b8aed8a442568af8f780  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-3.c
! 47900845bbb162c96f948b7544d2d7cc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16.c
! d450f094bfd98b4548f293ad8a9c5dd0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-1.c
! 7ff0b5fa91d4cbe8ac19d7924205bfe1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-2.c
! fbd2a8d9a0c70582bc3ea90d1af3a583  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-3.c
! 6e462ef13266e2aa5e78ace8da06993b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32.c
! 94afa5ab4c73fd4a3ee91050ab8afb83  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u64-1.c
! 18d0c82da0b6149f43e55ae0dc8a7cf6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u64.c
! 38afd1955e16f7e0a5c4a850d9642e75  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-1.c
! 81b432df5812a1036d34d0c659bf2823  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-2.c
! 2a29c7f6de08b5fea9779b2d307e6a16  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-3.c
! ad552327e689b240905b50f61c7d0fd9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8.c
! a8ac6d8600d43c48eb6c1dc9c4a09a5b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16-1.c
! 5e7e66c2a8c75348ec08d644e6f8183b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16-2.c
! 4f6d8b2e484c2acae63db1d41e310aba  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16.c
! 8cf2b15ceecc91c8dfa2db82c055e9a3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32-1.c
! 35f054783db02acab5d87b92894f2d0b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32-2.c
! a6e8fc85892f40177fb8946ae55f3afe  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32.c
! 75de6ee354b491698ee49358b1542eac  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u64.c
! 6477c099690b20e845fb41bfca10d8d4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8-1.c
! 5ebfe95d80718f91725e474d06cb9d10  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8-2.c
! a84858c04cda7fea1787a1deef93843c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8.c
! 239991484479e3f2e7e8f17cc54c0f2b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16-1.c
! 5af3498db5ddc283cf6e4a2d5bb998d6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16-2.c
! f00630ba5a1270f46993555a3c4778c5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16.c
! d450f094bfd98b4548f293ad8a9c5dd0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32-1.c
! 7ff0b5fa91d4cbe8ac19d7924205bfe1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32-2.c
! 874b0e76a42a9bc32d68acec066fe29a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32.c
! 18d0c82da0b6149f43e55ae0dc8a7cf6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u64.c
! 9d6db6db49fae7ebdac9b1fe8bc7aa4c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8-1.c
! f8495be54d5479ddb19df4d485883ca2  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8-2.c
! ffac52f3a1221f2f7513e80f1088cf3c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8.c
! df816408b248e17c9c751ec097dd1998  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u16.c
! b843f1c8b6aea9134aaa1e21e597c043  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u32.c
! 5ebc951895a6bd51e3668b7d0699a299  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u64.c
! 4a408241f0cefae8c346f455cd87eee3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u8.c
! 65e388e182638b8d1a2f2738d02a7972  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u16.c
! c987ad66811c3d6dde37dab6dac1fb01  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u32.c
! 5a57ecfdc3d497c90cd19491a45b2d37  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u64.c
! a869c11a1a999c7e7c490074afb73067  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u8.c
! b894a3cdfe787bf5fe8bcad758949c48  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u16.c
! 4962c243a3151d76f332d1383af4e5a6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u32.c
! 8eeffc0a0b8e86c78741c217346421f7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u64.c
! 61831f834e01e2332db4d8c361d2c7d4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u8.c
! 85ab7d06ef4d823fe7a7b893cfffeec7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u16.c
! 4e4c565e5da74ee08616fa5b85df6c02  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u32.c
! ebbed88f6c731d332ec9fc6378cec338  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u64.c
! 3df07534612d77c5c885a20849799a67  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u8.c
! b35b992f82481a3b3561128ca0ebcd9b  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u16.c
! 561b1473a87df79fbba09dee407f4e38  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u32.c
! 07b99fad6734b1554c38ed8a25b3b70c  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u64.c
! ebc9776a8042724da5a4d469fea55ee3  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u8.c
! 2d21704bd379c8e812b685ae27765389  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u16.c
! 540acb795d069bf4bdc5cd9e66874ed0  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u32.c
! 374fe9b5f8c16023dd6c0caf56ed2e4a  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u64.c
! e19aae72a05788f531e7a285c30897e5  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u8.c
! 6577f98bfb52b9f2d13a52f17386d59c  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u16.c
! aa5fb583edbe544152bec9e189268bf2  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u32.c
! ced1905afa2934f6578722b81e9381b7  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u64.c
! b8b2d671052f9fea43f6e7f92ea1988b  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u8.c
! 3e810a74d7d05891182683f6d3deeac8  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u16.c
! 6bf3091ff2723c066b7bba7eb4ed6710  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u32.c
! 1fffbb8261b56d8ce7499fb400168b2e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u64.c
! 205adc02076dbf76412390d09a332d3f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u8.c
! cde7a966cf51bcf9566a58a5426e0dba  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u16.c
! 806ff841ef834c43d21588b588e4e7bc  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u32.c
! 264f0681da1be20a4258e2ac289721f7  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u64.c
! 184d187e02e7aed46f2a65c57a343c0a  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u8.c
! a7312ab13cd902b9852b933d30fd44b9  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u16.c
! 0acedfd64e5abfa5f03116be5ff61026  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u32.c
! 706b922c4c39eaa892a71ac157bf149f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u64.c
! 8bcef5e68df378b4b1c37b4cb1201856  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u8.c
! b6366c5054b925521fe15f4822de456e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u16.c
! 5cfc4b627c9497c5114fa33f463fa015  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u32.c
! 3785f5911fc3face2b76dad3ae38a4e4  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u64.c
! 53191cf4c804e4c91dde78b9026b1de6  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u8.c
! 41c875268b853c7bde8bc0e5025a6fc3  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u16.c
! 818160f96e55819f1c641d95839bb23a  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u32.c
! cf0bc6cb8c90eda524133cb2251faf2e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u64.c
! f5e700830a8610a7ead8b3c9220333ad  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u8.c
! b8f5415c2c0be8a9cb7bdce6a620ef77  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u16.c
! f84fec0f810922f7f438c9bcfdfdfaaf  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u32.c
! 7567408b9da5091c906e4f63aac810f3  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u64.c
! a6f0ef8cd5cf19511765cb5e0a04bab9  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u8.c
! 2ca6799e8d5aeafbede5a92ac7c2af32  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u16.c
! 2ca6799e8d5aeafbede5a92ac7c2af32  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u32.c
! 5c4f4a69fb48df0e24241777e329f73c  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u64.c
! 78c1b4fbbfc8543c10a7d9868bd067af  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u8.c
! c1419a87b4670f7976bf6ff2f01c6cd9  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u16.c
! 4b5a0936a2e94aff70992232e5d93b56  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u32.c
! f1243549c46fa9057d18b2aa8b2ed02c  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u64.c
! 98ef8df097606d79e7ba9811a3bb3f44  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u8.c
! 70b7e9641329793772c49185dccfdd58  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u16.c
! c39bba0f432e6eff22a0d882956b6b37  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u32.c
! de4e6efaa20203c5303fd8cbc04b34c9  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u64.c
! ff12d743c80091c9546804243e86cff8  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u8.c
! cc4f87453d2847bc665a5665b786ae22  gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h
! e03d7f17af0c829e258e1ce327464708  gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h
! af524e576dfdf2f1e85150fe3a170afe  gcc/testsuite/gcc.target/riscv/sat/scalar_sat_unary.h
  e21250cdea6ea09da525f0119c38ea38  gcc/testsuite/gcc.target/riscv/save-restore-1.c
  d9f3969fcf83beaed59186cbaaa465bf  gcc/testsuite/gcc.target/riscv/save-restore-2.c
  f77ea662d9f85837dacf2e485dc91143  gcc/testsuite/gcc.target/riscv/save-restore-3.c
*************** ca1e563124a7035c98d86fadbdd1371d  gcc/te
*** 86054,86062 ****
  ee2757b391540c175f52ee5d03556041  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-64.c
  570945b709910dee3c765e850dcb7adb  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-32.c
  f7facd71806c51b88c2fe7f7c7ef8af2  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-64.c
  4dcd496e7b91e399f9727124426c49df  gcc/testsuite/gcc.target/riscv/sfb.c
! 5fcf0b559c722cc3ed68b1ddfc2e1622  gcc/testsuite/gcc.target/riscv/sge.c
! af2cd5ac59fa1b5f6b8381db83629b16  gcc/testsuite/gcc.target/riscv/sgeu.c
  a8e995091792ed403cc21c3cecf1d9e5  gcc/testsuite/gcc.target/riscv/shift-and-1.c
  f6f88d093025e4e08279af1a0dc99807  gcc/testsuite/gcc.target/riscv/shift-and-2.c
  9f6027d52dbf06dd3c679c6e0d51aea4  gcc/testsuite/gcc.target/riscv/shift-shift-1.c
--- 92473,92487 ----
  ee2757b391540c175f52ee5d03556041  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-64.c
  570945b709910dee3c765e850dcb7adb  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-32.c
  f7facd71806c51b88c2fe7f7c7ef8af2  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-64.c
+ cc4f87453d2847bc665a5665b786ae22  gcc/testsuite/gcc.target/riscv/scalar_sat_binary.h
+ e03d7f17af0c829e258e1ce327464708  gcc/testsuite/gcc.target/riscv/scalar_sat_binary_run_xxx.h
+ af524e576dfdf2f1e85150fe3a170afe  gcc/testsuite/gcc.target/riscv/scalar_sat_unary.h
+ 9a3907d90b26af3de6b0d233e8a600da  gcc/testsuite/gcc.target/riscv/sched1-spills/spill1.cpp
  4dcd496e7b91e399f9727124426c49df  gcc/testsuite/gcc.target/riscv/sfb.c
! e7d1c1077e9c194ceb2d245c81608820  gcc/testsuite/gcc.target/riscv/sge.c
! 9d380302d22a1048d17aee13940b1956  gcc/testsuite/gcc.target/riscv/sgeu.c
! 69ef60a2ed7f84174b04328897e4fd48  gcc/testsuite/gcc.target/riscv/shift-add-1.c
! 1e4a4194ea02a66db83051821ca2c555  gcc/testsuite/gcc.target/riscv/shift-add-2.c
  a8e995091792ed403cc21c3cecf1d9e5  gcc/testsuite/gcc.target/riscv/shift-and-1.c
  f6f88d093025e4e08279af1a0dc99807  gcc/testsuite/gcc.target/riscv/shift-and-2.c
  9f6027d52dbf06dd3c679c6e0d51aea4  gcc/testsuite/gcc.target/riscv/shift-shift-1.c
*************** f6f88d093025e4e08279af1a0dc99807  gcc/te
*** 86065,86082 ****
  6ac6cb7156c6792c36eb8bf50d36e6c3  gcc/testsuite/gcc.target/riscv/shift-shift-4.c
  f75203940c40557e5e51741f83c5a2de  gcc/testsuite/gcc.target/riscv/shift-shift-5.c
  d42b5158196a609204cd9c4e3de58825  gcc/testsuite/gcc.target/riscv/shorten-memrefs-1.c
! 94457781ee5b39939d4c674c305c370b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-2.c
! 1b41375720582a9c2434a6eee6651b62  gcc/testsuite/gcc.target/riscv/shorten-memrefs-3.c
  0158a4e90058684623a3d0a25d50f0ef  gcc/testsuite/gcc.target/riscv/shorten-memrefs-4.c
! 8a88c2df3cfb9db345c5470a49f81e6d  gcc/testsuite/gcc.target/riscv/shorten-memrefs-5.c
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
! 526aa694599c53f8e5558561bb574f68  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
  6727bdb2e2678b27aa57ae036e6b5fc1  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
  b2d190bbc93bb8aca63abd0ddf20aefc  gcc/testsuite/gcc.target/riscv/sign-extend.c
  3f47aa8acdf98bd432971c2997721537  gcc/testsuite/gcc.target/riscv/simplify_ior_optimization.c
! 0b526a98245be580ee7d193c02518cef  gcc/testsuite/gcc.target/riscv/sle.c
! e7323b2b75e72558319fae931cfdda03  gcc/testsuite/gcc.target/riscv/sleu.c
  a2a3683590a6c12a010cfd0b3f03b095  gcc/testsuite/gcc.target/riscv/smax-ieee.c
  86c31544a16504a7d32260ca07621420  gcc/testsuite/gcc.target/riscv/smax.c
  0215096559d8744c32da1dc65d488b7c  gcc/testsuite/gcc.target/riscv/smaxf-ieee.c
--- 92490,92512 ----
  6ac6cb7156c6792c36eb8bf50d36e6c3  gcc/testsuite/gcc.target/riscv/shift-shift-4.c
  f75203940c40557e5e51741f83c5a2de  gcc/testsuite/gcc.target/riscv/shift-shift-5.c
  d42b5158196a609204cd9c4e3de58825  gcc/testsuite/gcc.target/riscv/shorten-memrefs-1.c
! 19d45e9f2c84257eb2d8540e8a98084b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-2.c
! d16769ddf3b35ed27690cb27f697ede2  gcc/testsuite/gcc.target/riscv/shorten-memrefs-3.c
  0158a4e90058684623a3d0a25d50f0ef  gcc/testsuite/gcc.target/riscv/shorten-memrefs-4.c
! a84224faacb7d93a1bd4c61397928413  gcc/testsuite/gcc.target/riscv/shorten-memrefs-5.c
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
! 5c6f219d3c6f78457ccc2f81108fa5cf  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
  6727bdb2e2678b27aa57ae036e6b5fc1  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
+ 82d8412eb43370360f8ac3c0fc0ce4fe  gcc/testsuite/gcc.target/riscv/sign-extend-1.c
+ cc32dda6538c5a12c022772b1eb4f6f0  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c
+ 21c1c7f3bfe8b89696e3a49318610d40  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c
+ 7a0b5747d8af2e2d49977561c3ad6106  gcc/testsuite/gcc.target/riscv/sign-extend-rshift.c
  b2d190bbc93bb8aca63abd0ddf20aefc  gcc/testsuite/gcc.target/riscv/sign-extend.c
  3f47aa8acdf98bd432971c2997721537  gcc/testsuite/gcc.target/riscv/simplify_ior_optimization.c
! b46d13a1308787ce2b7a3bb9f83f6524  gcc/testsuite/gcc.target/riscv/sle.c
! 7932cde858379cf62bae15befab52987  gcc/testsuite/gcc.target/riscv/sleu.c
! 2c30eb1ba2842808c504f1ae0a347271  gcc/testsuite/gcc.target/riscv/slt-1.c
  a2a3683590a6c12a010cfd0b3f03b095  gcc/testsuite/gcc.target/riscv/smax-ieee.c
  86c31544a16504a7d32260ca07621420  gcc/testsuite/gcc.target/riscv/smax.c
  0215096559d8744c32da1dc65d488b7c  gcc/testsuite/gcc.target/riscv/smaxf-ieee.c
*************** b094c95e67c7236f65fdb03707497d4f  gcc/te
*** 86085,86197 ****
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
  6bdd3e0dc6b0f53ca23248ab17fdebaa  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
  303e1468981b64cf07461158b0ab0649  gcc/testsuite/gcc.target/riscv/stack_frame.c
! 93ee02d933459c5750beb83b19ec23ea  gcc/testsuite/gcc.target/riscv/stack_save_restore_1.c
! ae71d45b6da475660eae8acefede8824  gcc/testsuite/gcc.target/riscv/stack_save_restore_2.c
  e95dcee6d2cd4bf984685e71d71ae504  gcc/testsuite/gcc.target/riscv/switch-qi.c
  c487685abb9e3ab6bef4f12eae646e50  gcc/testsuite/gcc.target/riscv/switch-si.c
! e68f559a4b1d315e3b65122983834e93  gcc/testsuite/gcc.target/riscv/target-attr-01.c
! b4d0f20a05b2cdccd4a493ccd4b4ed9a  gcc/testsuite/gcc.target/riscv/target-attr-02.c
! 29c8e0c950ef1534ada12391a1ed7d0b  gcc/testsuite/gcc.target/riscv/target-attr-03.c
! 9a32040388d552f56cec74dbf5721ce4  gcc/testsuite/gcc.target/riscv/target-attr-04.c
! b094b070effe7c3c3e0eac364d2d935c  gcc/testsuite/gcc.target/riscv/target-attr-05.c
! 458c9d16efdd9e846b3fe08301e3de38  gcc/testsuite/gcc.target/riscv/target-attr-06.c
! 1160e391a410d566fe1c3ea863a4ccde  gcc/testsuite/gcc.target/riscv/target-attr-07.c
! bfdad9d77e2817202b97a70ce72185d4  gcc/testsuite/gcc.target/riscv/target-attr-08.c
! 4fb7726ad48b0135ffac0c723e18c8bb  gcc/testsuite/gcc.target/riscv/target-attr-09.c
! 867337c263e7515bed97369a1fb8a771  gcc/testsuite/gcc.target/riscv/target-attr-10.c
! 4ee1f60528330d5483cc9e8de148b592  gcc/testsuite/gcc.target/riscv/target-attr-11.c
! ca31af27a28fa3e114f5d3e6de261498  gcc/testsuite/gcc.target/riscv/target-attr-12.c
! aaaca43266a9fbab264482b339289398  gcc/testsuite/gcc.target/riscv/target-attr-13.c
! de3dd161487db3dfccd84d7f7e4f5e35  gcc/testsuite/gcc.target/riscv/target-attr-14.c
! 6a4719cda0f05f69e66af6f84749772b  gcc/testsuite/gcc.target/riscv/target-attr-15.c
! 932d168505dafeaf370d4d323442f563  gcc/testsuite/gcc.target/riscv/target-attr-16.c
! 5bd51f330544ab51a856c447b8438a33  gcc/testsuite/gcc.target/riscv/target-attr-bad-01.c
! c21782d4ade46bad688b869cc80ec197  gcc/testsuite/gcc.target/riscv/target-attr-bad-02.c
! 1a4063b034dcc1c1fdb69e563e19d520  gcc/testsuite/gcc.target/riscv/target-attr-bad-03.c
! 2ecc141339d3f99f8cce0bff1910d94e  gcc/testsuite/gcc.target/riscv/target-attr-bad-04.c
! cce854d38955c8a73b2025f74af8ea3a  gcc/testsuite/gcc.target/riscv/target-attr-bad-05.c
! e797fa7075cca44d33a9bc6dbeec14ae  gcc/testsuite/gcc.target/riscv/target-attr-bad-06.c
! d833abff4bdcf592890061ee4100e16e  gcc/testsuite/gcc.target/riscv/target-attr-bad-07.c
! 24bd78e7e1c7c54f06737a1641c246dc  gcc/testsuite/gcc.target/riscv/target-attr-bad-08.c
! e1f49772ae08e8fe3ef01446cf76d2b5  gcc/testsuite/gcc.target/riscv/target-attr-bad-09.c
! 4972eb4c779e0e3236d1f708cd80bf87  gcc/testsuite/gcc.target/riscv/target-attr-bad-10.c
  eba52e984a37427da6fa1233257ff6a9  gcc/testsuite/gcc.target/riscv/tls_1.x
  dbe67905fc0f65b7be7d2f96a6c490e6  gcc/testsuite/gcc.target/riscv/tlsdesc.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
! 2d691bec54eef9c713895ac9abe32620  gcc/testsuite/gcc.target/riscv/xtheadba-addsl.c
! 32a5c7fa93d0bedb23312a568db82084  gcc/testsuite/gcc.target/riscv/xtheadba.c
! 3d73d12f5806ab636d98d3960443a2c7  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-1.c
! 5432a65ff86086c3de7e7f6c2ef02f8b  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-2.c
! f9fd364aea7901b098788d43d05d6b99  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-3.c
! cba12d46ded4c9403bb902defb379eac  gcc/testsuite/gcc.target/riscv/xtheadbb-ext.c
! 1637ee9a60d6d937103e250dc014f767  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-1.c
! 9d2923e1d7956aeb5deea4e6098068f9  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-2.c
! d16afa6f617da6dd6a1fd7af00c2d80b  gcc/testsuite/gcc.target/riscv/xtheadbb-extu.c
! 262700746898b570786f228c90322509  gcc/testsuite/gcc.target/riscv/xtheadbb-ff1.c
  b062b13d157a10dc03540d51fee90017  gcc/testsuite/gcc.target/riscv/xtheadbb-li-rotr.c
! 169a6e9cb637657f3fc29f50fb2a13bc  gcc/testsuite/gcc.target/riscv/xtheadbb-rev.c
! 48788b4cde5085faf12957bf7364a13e  gcc/testsuite/gcc.target/riscv/xtheadbb-srri.c
! 19524b4c1808563e86b3c484c1627b60  gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c
! 2da04aa2919e9c04fd928d0ef7270a64  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c
! 718d849dd80c84a9a132dd289e32ed9b  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c
! 9d68e722bf6fb4119eeff9161acf1e7d  gcc/testsuite/gcc.target/riscv/xtheadbb.c
! 8098147db7f3075c80ec4e8eb8e5e153  gcc/testsuite/gcc.target/riscv/xtheadbs-tst.c
! 4c4408a6a4dd0951e85e08b3aad394a3  gcc/testsuite/gcc.target/riscv/xtheadbs.c
! 7c49322dfb115eb57a3da6f7679e81a0  gcc/testsuite/gcc.target/riscv/xtheadcmo.c
! be339e80c27a0f7acbe2053b43b1da88  gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect.c
! 80807286ef604ac064814c41ff1caf25  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-eqz.c
! dd2e562ea2077be60e5c28445aed14f9  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-not.c
! 852576fdf638609116144efc137b423f  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-eqz.c
! ac5a66ad9852a11dd163242bbbf87a27  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-not.c
! 2f39df4aa33cb3cedd7d6fc4c6291fb8  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-cond.c
! 491ffeaf4d4389932c61399c8513b380  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-nez.c
! 0cad8fc044fa4ba6de1056ad38c987d6  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-cond.c
! 79a94502ae91e4377deae3018b5e7867  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-nez.c
! b78310876ebca152cb8df0f7025a391b  gcc/testsuite/gcc.target/riscv/xtheadcondmov.c
  cf842cc60a9adca95f38cf0d4f16fe54  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-update.c
  d1cbe536eae2db873177ca9010a38ec0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb-update.c
  4656a5277fdfd762afc3902e1c0e32a7  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb.c
  03d844adccbd6199b451024de91ade9a  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index.c
- ba654d79fdb7809bdc33463d8e489adf  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-medany.c
  7c72cc4abba2ad4f1c5e292869dacd30  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-update.c
  5472637e9336a9f6b84cb71f181fc6f0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb-update.c
  2025235033d5380b6fc3f159196f1a7d  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb.c
  c64984d0e7397bc5e90a2642f8cd73df  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-zbb.c
  7e52d22cb25fb806400bde669af7ab98  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex.c
! 1267d473ccc33ecf7a2578b9e699f4ff  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-without-xtheadmemidx.c
! d3e8387417acfd697084f87e89cad9ec  gcc/testsuite/gcc.target/riscv/xtheadfmemidx.c
  1fa1c70b0d4ca2c6def4cee8205387aa  gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c
! b821f0ad2eeac1930722af7894c79cd4  gcc/testsuite/gcc.target/riscv/xtheadfmv.c
  cce657947a64d5d651a839020ddfc479  gcc/testsuite/gcc.target/riscv/xtheadint-push-pop.c
! 6d0f42b24f31980c5b6817953ef495e5  gcc/testsuite/gcc.target/riscv/xtheadint.c
! 2d63440eb714b01d9365d08a0670b2a0  gcc/testsuite/gcc.target/riscv/xtheadmac-mula-muls.c
! 9a7c12c542184d2dd5e4263623386f13  gcc/testsuite/gcc.target/riscv/xtheadmac.c
  d55c08275d7fa0cffa570ef87d1816c1  gcc/testsuite/gcc.target/riscv/xtheadmemidx-helpers.h
! 147e02fe5434acc6307e25c0668249a6  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-update.c
! ff90888d1d7cd88a08722b0d3657d9d8  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb-update.c
! d5b3ff3f41555ec6c3eb8cbe0f93ec66  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb.c
! da564bb65d198c5852c9de018946be36  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index.c
  39a03592c3d394bb5962e7054fd8e44b  gcc/testsuite/gcc.target/riscv/xtheadmemidx-inline-asm-1.c
! ceb199a908cf06d455375e1ce2a34e0d  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify-xtheadbb.c
! 563f80050d97e60d87c252f0fc25252c  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify.c
! 6e1f0549461388aef49f443459023ab2  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-update.c
! 631ef21d96a8656d5f8e094909570ec6  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb-update.c
! 1029288cb156c86c4e2752bc8b5df9ef  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb.c
! c237e32478681cca80da1df54e0cd3b8  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex.c
! 64106454d45ba17f54ebb4a515c2fbe3  gcc/testsuite/gcc.target/riscv/xtheadmemidx.c
! 73d7049a35fb8a305c5e87efe1790c7a  gcc/testsuite/gcc.target/riscv/xtheadmempair-1.c
! b2ee48debb8260ca43eae7a7599d100f  gcc/testsuite/gcc.target/riscv/xtheadmempair-2.c
! 68468a87437dcca3d624d91ab036dbfb  gcc/testsuite/gcc.target/riscv/xtheadmempair-3.c
! 1f258a51954c2e4e80f80071ddb48bf9  gcc/testsuite/gcc.target/riscv/xtheadmempair-4.c
! 889791c6de65a76fa5ccc1fde95909c3  gcc/testsuite/gcc.target/riscv/xtheadmempair-interrupt-fcsr.c
! ee08c2f571ce64ba17d57e7f84b4175b  gcc/testsuite/gcc.target/riscv/xtheadmempair.c
! 7bf50312c25a0e57176a93fb1341f30f  gcc/testsuite/gcc.target/riscv/xtheadsync.c
  ada8ab5ecb79eb9a7c676ead41d16895  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics-rv32.c
  645b786f57cf22130bf9547def0c9cd1  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics.c
  f686a2e0acc6e52363dfe4de36049ac3  gcc/testsuite/gcc.target/riscv/xventanacondops-xor-01.c
! 03196220920ebbe0453ed99ca42cc633  gcc/testsuite/gcc.target/riscv/za-ext.c
! 50d3b03bdbb051629972056d02a6913f  gcc/testsuite/gcc.target/riscv/zawrs.c
  c365e36104fa71b9d21ff3749043ed59  gcc/testsuite/gcc.target/riscv/zba-adduw.c
  8ebdc283aea5f958d8df81217669c6cc  gcc/testsuite/gcc.target/riscv/zba-shNadd-01.c
  bd5709f7ce727c9b20e5978f22237e84  gcc/testsuite/gcc.target/riscv/zba-shNadd-02.c
--- 92515,92688 ----
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
  6bdd3e0dc6b0f53ca23248ab17fdebaa  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
+ cff495903638733441945501e9bd26a2  gcc/testsuite/gcc.target/riscv/ssp-1.c
+ 84381e92e922deea2f324e0fdee58532  gcc/testsuite/gcc.target/riscv/ssp-2.c
+ b0e5d3a4a7cc05529173660fe2976220  gcc/testsuite/gcc.target/riscv/stack-check-12.c
+ eaebe6161e17d65a5a19636cf3e9638b  gcc/testsuite/gcc.target/riscv/stack-check-13.c
+ 78e19f0568e44a3cfdf1d1a534c5e2c1  gcc/testsuite/gcc.target/riscv/stack-check-14.c
+ d2926b4fa2f78abdae8f5eee41610f46  gcc/testsuite/gcc.target/riscv/stack-check-15.c
+ fabccfd512924159045676903a6d9454  gcc/testsuite/gcc.target/riscv/stack-check-alloca-1.c
+ bc3b8b362dc94b83c15cddb446c6240d  gcc/testsuite/gcc.target/riscv/stack-check-alloca-10.c
+ fa710deee9333a3e44112ea132d7486f  gcc/testsuite/gcc.target/riscv/stack-check-alloca-2.c
+ 6a2b54256a33fbb1b765adcf74c7b5f0  gcc/testsuite/gcc.target/riscv/stack-check-alloca-3.c
+ d87bf8bb9f53dc7ec53563440ec499ea  gcc/testsuite/gcc.target/riscv/stack-check-alloca-4.c
+ 40ef8294b4e37629c232c1f52f19b5bc  gcc/testsuite/gcc.target/riscv/stack-check-alloca-5.c
+ 7f2770fc3da979d6ae2c38084dc4f2ea  gcc/testsuite/gcc.target/riscv/stack-check-alloca-6.c
+ f7f61cd17bc9de439d0e17f1e6ef7e40  gcc/testsuite/gcc.target/riscv/stack-check-alloca-7.c
+ cee532a4a502ca31f8962ebc83027d07  gcc/testsuite/gcc.target/riscv/stack-check-alloca-8.c
+ 8e690079137fc7e8f838211c4e6590f4  gcc/testsuite/gcc.target/riscv/stack-check-alloca-9.c
+ 45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/riscv/stack-check-alloca.h
+ abbead0cf246a014fc0fb62cfcd3c178  gcc/testsuite/gcc.target/riscv/stack-check-cfa-1.c
+ 333d2faa964df60af0824b8fa8acc9b3  gcc/testsuite/gcc.target/riscv/stack-check-cfa-2.c
+ 495437f064b80d4ee79d92917533d4bf  gcc/testsuite/gcc.target/riscv/stack-check-cfa-3.c
+ faacd41e7c1f09696ce5fa73abccc78c  gcc/testsuite/gcc.target/riscv/stack-check-prologue-1.c
+ 9ac4e0a1289c4d20f2d506ba81e296f3  gcc/testsuite/gcc.target/riscv/stack-check-prologue-10.c
+ c7a4075ea2e5b8030479022e565082f5  gcc/testsuite/gcc.target/riscv/stack-check-prologue-11.c
+ 0f3e93c37dadbaee4be6c073a428183b  gcc/testsuite/gcc.target/riscv/stack-check-prologue-12.c
+ ea60c22762c5ae58eb3883afe720547f  gcc/testsuite/gcc.target/riscv/stack-check-prologue-13.c
+ 348364ab9d304f965579af269600ee5d  gcc/testsuite/gcc.target/riscv/stack-check-prologue-14.c
+ 9bc39bce8bfcbe02790e6aa90cd20704  gcc/testsuite/gcc.target/riscv/stack-check-prologue-15.c
+ 304638e1cb240de66480eb81b28324f8  gcc/testsuite/gcc.target/riscv/stack-check-prologue-16.c
+ d0bf0d3e7e93c1f62b39e8291a76c0f2  gcc/testsuite/gcc.target/riscv/stack-check-prologue-2.c
+ ea601ecdce89b4ed3915c02a62ada608  gcc/testsuite/gcc.target/riscv/stack-check-prologue-3.c
+ 3c164ea149544163770cf73878b55544  gcc/testsuite/gcc.target/riscv/stack-check-prologue-4.c
+ 7674e3a09436c307e3a4215990cfaa62  gcc/testsuite/gcc.target/riscv/stack-check-prologue-5.c
+ 7d922bafd9ba36d3c2571ac83e8b06ac  gcc/testsuite/gcc.target/riscv/stack-check-prologue-6.c
+ d521733e3874d53301b96bf7630166e7  gcc/testsuite/gcc.target/riscv/stack-check-prologue-7.c
+ b415bb951ba55d3b5e901876751b51e8  gcc/testsuite/gcc.target/riscv/stack-check-prologue-8.c
+ 757cd002eabcb4231633ee021c5aad18  gcc/testsuite/gcc.target/riscv/stack-check-prologue-9.c
+ 6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/riscv/stack-check-prologue.h
  303e1468981b64cf07461158b0ab0649  gcc/testsuite/gcc.target/riscv/stack_frame.c
! 271a1d3492e3b8728d53f6f6a634ae80  gcc/testsuite/gcc.target/riscv/stack_save_restore_1.c
! 04ca12883d56722f87d5564f50f4fa51  gcc/testsuite/gcc.target/riscv/stack_save_restore_2.c
! bae0f68f57195d7a40dc2141a14558cd  gcc/testsuite/gcc.target/riscv/struct_vect_24.c
! a5c354e0eab833dedd22fbd341e322bb  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
! 7304074a0af5a5e8dbb86e7f5c0467c8  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c
! 09a9691c0cf30e284d645d7330825235  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c
  e95dcee6d2cd4bf984685e71d71ae504  gcc/testsuite/gcc.target/riscv/switch-qi.c
  c487685abb9e3ab6bef4f12eae646e50  gcc/testsuite/gcc.target/riscv/switch-si.c
! ceb78b02b8ae485388560ad8ca685c32  gcc/testsuite/gcc.target/riscv/synthesis-1.c
! f96befb57b932fce18446db97411acd2  gcc/testsuite/gcc.target/riscv/synthesis-10.c
! 72ca5b45b9970588d4724575717055ba  gcc/testsuite/gcc.target/riscv/synthesis-11.c
! eacbdf0549e781c4443430747aaec374  gcc/testsuite/gcc.target/riscv/synthesis-12.c
! b6f125c4d7c935d59204bf7e263602d2  gcc/testsuite/gcc.target/riscv/synthesis-13.c
! 69cebbb8a386ab78a2ea89bd93c2c2b8  gcc/testsuite/gcc.target/riscv/synthesis-14.c
! 9a984e133ba815157a6f3859bfe37c93  gcc/testsuite/gcc.target/riscv/synthesis-15.c
! 681471aad4fc7a928023b0989961911e  gcc/testsuite/gcc.target/riscv/synthesis-16.c
! 91d74a445374eacec262eb6dd9bc4348  gcc/testsuite/gcc.target/riscv/synthesis-2.c
! 638cc04cd4694f21d8bf30820e2792a4  gcc/testsuite/gcc.target/riscv/synthesis-3.c
! 98a185580910d747a6fd0bfd00e5dfa8  gcc/testsuite/gcc.target/riscv/synthesis-4.c
! 1f9d808b9d873acbb94f64736b725948  gcc/testsuite/gcc.target/riscv/synthesis-5.c
! a11c8bf31acc7a5358d9cc2dd80b980f  gcc/testsuite/gcc.target/riscv/synthesis-6.c
! d58863ca15657ffdcb5816d5bad21d13  gcc/testsuite/gcc.target/riscv/synthesis-7.c
! 9094339fd08d1aec3140bc280332a2ed  gcc/testsuite/gcc.target/riscv/synthesis-8.c
! b8f1ed0feec2095b3b0c5492deb5e86d  gcc/testsuite/gcc.target/riscv/synthesis-9.c
! d31680689d4f758633a0158fb368b8ae  gcc/testsuite/gcc.target/riscv/target-attr-01.c
! 407b991eea9eca6600cdfb37228c9828  gcc/testsuite/gcc.target/riscv/target-attr-02.c
! ae9dd862e15a319ddebcce4d28a58964  gcc/testsuite/gcc.target/riscv/target-attr-03.c
! d2a197601c46c28cbba737493c41751d  gcc/testsuite/gcc.target/riscv/target-attr-04.c
! cce138ce08f8f3586587751044c8d2fd  gcc/testsuite/gcc.target/riscv/target-attr-05.c
! c08ec94bc4c156a485be7314b934063d  gcc/testsuite/gcc.target/riscv/target-attr-06.c
! 7164bc22298172b68f4d3e78bb16e69f  gcc/testsuite/gcc.target/riscv/target-attr-07.c
! 8cb28f36a694001dec2eac25681e6ff9  gcc/testsuite/gcc.target/riscv/target-attr-08.c
! aa204745c2cf42b6e424f0630636f428  gcc/testsuite/gcc.target/riscv/target-attr-09.c
! 227304fbb7a13a8f436a84d957808a25  gcc/testsuite/gcc.target/riscv/target-attr-10.c
! 8ac7136ab5dc7a6d3b70efe8e106cea5  gcc/testsuite/gcc.target/riscv/target-attr-11.c
! 8175d38dc72be5f3ab4a9f1b6c11b8c0  gcc/testsuite/gcc.target/riscv/target-attr-12.c
! 4def6555740a95b21f5507d3be44a861  gcc/testsuite/gcc.target/riscv/target-attr-13.c
! 4e720facc280d09f48b729f4516f018b  gcc/testsuite/gcc.target/riscv/target-attr-14.c
! 61934dd578a7d33e89ed87c34e08e259  gcc/testsuite/gcc.target/riscv/target-attr-15.c
! fa376a69d4ede8554459cf0b45b1c358  gcc/testsuite/gcc.target/riscv/target-attr-16.c
! 6f20149851dd00dceb52abaed38c557c  gcc/testsuite/gcc.target/riscv/target-attr-bad-01.c
! 3775579d5992c6a356cb9c2a88b50744  gcc/testsuite/gcc.target/riscv/target-attr-bad-02.c
! 240215dbc1f88cdf4af03fde7f9fec64  gcc/testsuite/gcc.target/riscv/target-attr-bad-03.c
! 0af0371f86a86ee16bc56fdf54ee46e8  gcc/testsuite/gcc.target/riscv/target-attr-bad-04.c
! c98c592de9794b3b66dece71589bb4b3  gcc/testsuite/gcc.target/riscv/target-attr-bad-05.c
! d16fe3ca5e64fb8cca52b2fc0ca0e747  gcc/testsuite/gcc.target/riscv/target-attr-bad-06.c
! bac0361fb33136b0e86b4e2258eb58d4  gcc/testsuite/gcc.target/riscv/target-attr-bad-07.c
! 7167903b7814ee3ba6b596da9f29dcbb  gcc/testsuite/gcc.target/riscv/target-attr-bad-08.c
! c0a4bee5eba1cce4e72b7fe92728426b  gcc/testsuite/gcc.target/riscv/target-attr-bad-09.c
! 91718cc3607da243b76499107e2fd6c7  gcc/testsuite/gcc.target/riscv/target-attr-bad-10.c
! 41294ddc89d13c43941931c990fd176d  gcc/testsuite/gcc.target/riscv/target-attr-norelax.c
  eba52e984a37427da6fa1233257ff6a9  gcc/testsuite/gcc.target/riscv/tls_1.x
  dbe67905fc0f65b7be7d2f96a6c490e6  gcc/testsuite/gcc.target/riscv/tlsdesc.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
! 3a0dce9fff2935c0bd21176ef52d68a3  gcc/testsuite/gcc.target/riscv/xtheadba-addsl.c
! 3bfc3f4f2cc9a87e45901bd3aaa79d03  gcc/testsuite/gcc.target/riscv/xtheadba.c
! dbc96b7e417aa40d019fa7730add3692  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-1.c
! 537a4e4dd2ff48ceebcfd197c6a926a4  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-2.c
! b851a9d8766e7412531c7a59fc92aaec  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-3.c
! 6da5d89b620d32dc5590b567a6b34d86  gcc/testsuite/gcc.target/riscv/xtheadbb-ext.c
! 5622b3708c2c86aa7e47b0022e10d608  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-1.c
! 4d84e7dbc2cce3dd9bcb0a64adea2adf  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-2.c
! 0fdda67ccfad60ff99f271a8e02628e7  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-4.c
! f1f33de652f0ea8d3828943ba6e206f2  gcc/testsuite/gcc.target/riscv/xtheadbb-extu.c
! f9cc8d4f628a47bd626c5c7cdbb67ba0  gcc/testsuite/gcc.target/riscv/xtheadbb-ff1.c
  b062b13d157a10dc03540d51fee90017  gcc/testsuite/gcc.target/riscv/xtheadbb-li-rotr.c
! e4c6bc14e5e99fa7af0c672719b3c60f  gcc/testsuite/gcc.target/riscv/xtheadbb-rev.c
! 2d4d81eda99b4dde32fd8050a51359b3  gcc/testsuite/gcc.target/riscv/xtheadbb-srri.c
! 54701c0e0e486b42cbe54afb0d66eb90  gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c
! b5a38509d7a3bd0e65adfa47095db1b6  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c
! 3bea04f4d93edd855f1c30c0138d3665  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c
! 3f5349f16d578ae0a5225c5155f7b562  gcc/testsuite/gcc.target/riscv/xtheadbb.c
! 369c8440a0c8672ec035744dac5af3f4  gcc/testsuite/gcc.target/riscv/xtheadbs-tst.c
! aaf4e62eeac33a9182fa34d235232180  gcc/testsuite/gcc.target/riscv/xtheadbs.c
! a0f0428d139a6a1a9bd7c7957c030dbb  gcc/testsuite/gcc.target/riscv/xtheadcmo.c
! 218397d5d7a38904d2ad68adbe2d767b  gcc/testsuite/gcc.target/riscv/xtheadcondmov-bug.c
! b96d14be45004d3806aa662926bd5d42  gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect.c
! 6051f6f9d72b953e00454397cf44e5e2  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-eqz.c
! 9fca31c22768638557a6fa94f6df613e  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-not.c
! a73af706497b3feaa51e9cedbe011908  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-eqz.c
! 502d606d8e03108ba94ce55a5b1d6c60  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-not.c
! dc5684d0d22f43b091703689aee14edb  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-cond.c
! 3dff0f2fde001c7242da3f4c1850f85f  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-nez.c
! 0744f61578cba28dbe0e012492ea5ba8  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-cond.c
! 54238dea612400626733d096e9ce1d7e  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-nez.c
! 0fb253e835ea38a47416f6d99f4844a3  gcc/testsuite/gcc.target/riscv/xtheadcondmov.c
  cf842cc60a9adca95f38cf0d4f16fe54  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-update.c
  d1cbe536eae2db873177ca9010a38ec0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb-update.c
  4656a5277fdfd762afc3902e1c0e32a7  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb.c
  03d844adccbd6199b451024de91ade9a  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index.c
  7c72cc4abba2ad4f1c5e292869dacd30  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-update.c
  5472637e9336a9f6b84cb71f181fc6f0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb-update.c
  2025235033d5380b6fc3f159196f1a7d  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb.c
  c64984d0e7397bc5e90a2642f8cd73df  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-zbb.c
  7e52d22cb25fb806400bde669af7ab98  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex.c
! 8c168b6d5e270dbffcea075e87d27b60  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-without-xtheadmemidx.c
! a2ecc7ba791c7349192313b923cd4f1b  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-xtheadfmv-medany.c
! 54573f23af7e4452e76da4c377512184  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-zfa-medany.c
! d76591e96cef314b7108574103443924  gcc/testsuite/gcc.target/riscv/xtheadfmemidx.c
  1fa1c70b0d4ca2c6def4cee8205387aa  gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c
! 32ba3840c2e6fc20c916dbf78497a77f  gcc/testsuite/gcc.target/riscv/xtheadfmv.c
  cce657947a64d5d651a839020ddfc479  gcc/testsuite/gcc.target/riscv/xtheadint-push-pop.c
! 361b703f5377b971c4acd8d9120092c4  gcc/testsuite/gcc.target/riscv/xtheadint.c
! 44c5a42c298eada6ce33b6cd224a644b  gcc/testsuite/gcc.target/riscv/xtheadmac-mula-muls.c
! cb622bf180c28d77c3b239e9e6f4ea50  gcc/testsuite/gcc.target/riscv/xtheadmac.c
  d55c08275d7fa0cffa570ef87d1816c1  gcc/testsuite/gcc.target/riscv/xtheadmemidx-helpers.h
! b0cc99d0b4e193120586f947832834ab  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-update.c
! 7ced2a90c4e046d74dc731c9f68d64be  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb-update.c
! 1ed1b3e7e5252a46e3e45893c8e84a2a  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb.c
! c2dd24aa674c71a830b3a99f6b286831  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index.c
  39a03592c3d394bb5962e7054fd8e44b  gcc/testsuite/gcc.target/riscv/xtheadmemidx-inline-asm-1.c
! 0edd3e2f35b366272eba876376a25c82  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify-xtheadbb.c
! df0d95a969d11a6d95f58117e8304b43  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify.c
! f77f9a69f5fadbe817a807f20009eb66  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-update.c
! 34d8c232b92db847f50ab26a17f16035  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb-update.c
! 6dbe5a987d1710a53c3e12309cf92649  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb.c
! 0200816f2a418d09ca357e385acdec9a  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex.c
! b236972700623e4ad50e58ef31f03305  gcc/testsuite/gcc.target/riscv/xtheadmemidx.c
! cf48b1d354371ae18854e01af5b600c5  gcc/testsuite/gcc.target/riscv/xtheadmempair-1.c
! 6520c74f6a071ebee4c45a5a9bcb880a  gcc/testsuite/gcc.target/riscv/xtheadmempair-2.c
! c2cea825a997842f66faa89c276dbbed  gcc/testsuite/gcc.target/riscv/xtheadmempair-3.c
! 5d57d14a52e72c1c01a44cd4d42c0e66  gcc/testsuite/gcc.target/riscv/xtheadmempair-4.c
! 9909974aaf9f4e188077bcc5b6819a06  gcc/testsuite/gcc.target/riscv/xtheadmempair-interrupt-fcsr.c
! 6a9bca72fe122a419c05f2417d60b002  gcc/testsuite/gcc.target/riscv/xtheadmempair.c
! 0096834129b4cad8cdc2825a84f82472  gcc/testsuite/gcc.target/riscv/xtheadsync.c
  ada8ab5ecb79eb9a7c676ead41d16895  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics-rv32.c
  645b786f57cf22130bf9547def0c9cd1  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics.c
  f686a2e0acc6e52363dfe4de36049ac3  gcc/testsuite/gcc.target/riscv/xventanacondops-xor-01.c
! c44fe89e98d27a7ac7ee27d254a9f8a8  gcc/testsuite/gcc.target/riscv/za-ext.c
! 0c373decb8e9d4769304c152ead07ab9  gcc/testsuite/gcc.target/riscv/zawrs.c
  c365e36104fa71b9d21ff3749043ed59  gcc/testsuite/gcc.target/riscv/zba-adduw.c
  8ebdc283aea5f958d8df81217669c6cc  gcc/testsuite/gcc.target/riscv/zba-shNadd-01.c
  bd5709f7ce727c9b20e5978f22237e84  gcc/testsuite/gcc.target/riscv/zba-shNadd-02.c
*************** bd5709f7ce727c9b20e5978f22237e84  gcc/te
*** 86199,86207 ****
--- 92690,92703 ----
  cf1c8476f01377285a0b1c08de6df67b  gcc/testsuite/gcc.target/riscv/zba-shNadd-04.c
  1456e0b644560b4d55a604c8032c331b  gcc/testsuite/gcc.target/riscv/zba-shNadd-05.c
  b783b3106f46216a8103473a59dd8ea9  gcc/testsuite/gcc.target/riscv/zba-shNadd-07.c
+ ca9771ec96feacc32b224db5e3406eff  gcc/testsuite/gcc.target/riscv/zba-shNadd-08.c
+ ca8dcbe1d318561f3ba7df5abeff7677  gcc/testsuite/gcc.target/riscv/zba-shNadd-09.c
+ 6e3f79b288eb5a99b23ffcdb5b2986ac  gcc/testsuite/gcc.target/riscv/zba-shNadd-10.c
  7e4c1ee6b9f144dc08101a83a623bb94  gcc/testsuite/gcc.target/riscv/zba-shadd.c
+ ee390913829a46a6ce5004198d82bb62  gcc/testsuite/gcc.target/riscv/zba-shadduw.c
  0daa57867b25115982a5152975ad2886  gcc/testsuite/gcc.target/riscv/zba-slliuw.c
  7897a2dc924c5d59e2471445e59414f7  gcc/testsuite/gcc.target/riscv/zba-zextw.c
+ 6c5397671f66bec010860dfbc4625631  gcc/testsuite/gcc.target/riscv/zba_zbs_and-1.c
  e5b7fbdf358cbf214660b7e3b239e748  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-01.c
  e9490e711fc56b6a96c339184a7a19a5  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-02.c
  1631a0846b45d351dfd85d51d24d1e0a  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-01.c
*************** cc6086a551f06fe43ba1143dd3b45a0f  gcc/te
*** 86213,86234 ****
  3ef81d36e50eb61cd5acb30a75c2df00  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
  ae2eedb5d93df4bf4c2298ef65fc68d4  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
  bffe7cc5c1dc9a4f97053f435e503a6a  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-03.c
! 4829950b97f250012f65e16ec2199802  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-04.c
! 3978332d5a5c28045909f3f9db508676  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-05.c
! 6dac930d7e7bf400b62b72e5a5f3ce97  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-06.c
! be66a8efee5bb47f0acf0cf85631b83b  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-07.c
! 0e4a1c8f198cfbbe115811d47ff89b53  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-08.c
! 62d6d877c54e64570ced9f64a7f2bd50  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-09.c
  53a2faccaffa79bae9f2f156bcae935f  gcc/testsuite/gcc.target/riscv/zbb-srai-andn.c
! 770a29cc025f2d96d9601fc472199cac  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c
! 5f57548d10267a3438d1bfd19a00b879  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c
! 39cd0d2fff2cd871b1bd261e7f01daae  gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c
! 1350ef111dcde257b735efba57ef8282  gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c
! 315f8d4c18d81985002703cbd6754682  gcc/testsuite/gcc.target/riscv/zbb-strcmp.c
! 8b7f22d554357b097dcae79bcaa775ec  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c
! 1088ce5f7228d46e33660268cc8ade55  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c
! 8e8edca342558761cc5e7bd3e83414e3  gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c
! 4d664b3ca953a2d8e9bec646e971f97d  gcc/testsuite/gcc.target/riscv/zbb-strlen.c
  26d6aedcf36f27ea63ea68fc1d4bb4c0  gcc/testsuite/gcc.target/riscv/zbb_bswap16.c
  d5c7a9b1d5f190302b20c6370674a4b4  gcc/testsuite/gcc.target/riscv/zbkb32.c
  636ed37a58a0481f433b9198758387cd  gcc/testsuite/gcc.target/riscv/zbkb64.c
--- 92709,92730 ----
  3ef81d36e50eb61cd5acb30a75c2df00  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
  ae2eedb5d93df4bf4c2298ef65fc68d4  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
  bffe7cc5c1dc9a4f97053f435e503a6a  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-03.c
! 8ddf5edcf9404b9799022233cca4d49a  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-04.c
! 0ce29ce3b4df0cc99645b8e7ed0eb6ab  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-05.c
! 64a85d6e239f17171ebcad5e6b979725  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-06.c
! 21483db0b2bfa0d058f3a5a6fb75f5a5  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-07.c
! 8732391de1bb0827f07ad49d56fb3b29  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-08.c
! 8aa6222e6c815ec94d3d5605a3748aaf  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-09.c
  53a2faccaffa79bae9f2f156bcae935f  gcc/testsuite/gcc.target/riscv/zbb-srai-andn.c
! 87cbe37c1061fd89772236f444712d3e  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c
! d9da53abf5825a64597533df10b720c2  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c
! 74d9aada1c7f64234762975978ade801  gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c
! 63c43a609e0498e3dec0a7968cea4d37  gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c
! 673a99c9ef83643aacc7807a7201b3e4  gcc/testsuite/gcc.target/riscv/zbb-strcmp.c
! 80e8c795e6aa6838ec2f4a8cff2bb457  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c
! 80e8c795e6aa6838ec2f4a8cff2bb457  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c
! 7a9ad15dbba4def2ca537b21bb4ecf1a  gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c
! f1a2133f8af8ae3d9dd64b61a579bce4  gcc/testsuite/gcc.target/riscv/zbb-strlen.c
  26d6aedcf36f27ea63ea68fc1d4bb4c0  gcc/testsuite/gcc.target/riscv/zbb_bswap16.c
  d5c7a9b1d5f190302b20c6370674a4b4  gcc/testsuite/gcc.target/riscv/zbkb32.c
  636ed37a58a0481f433b9198758387cd  gcc/testsuite/gcc.target/riscv/zbkb64.c
*************** e2542c8640613e3201b12054d45b3722  gcc/te
*** 86237,86260 ****
  e4f42bd193de17a97d6ba4d7cf10116f  gcc/testsuite/gcc.target/riscv/zbs-bclri-02.c
  e0a334990e8f9864fda8dfc4ee86b7b4  gcc/testsuite/gcc.target/riscv/zbs-bclri-nottwobits.c
  5f20b31a10b4b169d9c9f7bc7afe1d28  gcc/testsuite/gcc.target/riscv/zbs-bext-02.c
! 0089ce94d4ea9deb946d7fa5012b51b7  gcc/testsuite/gcc.target/riscv/zbs-bext.c
  654584dc55d2bdd02192a295a812c13a  gcc/testsuite/gcc.target/riscv/zbs-bexti.c
  ff7d0d3eccd74dfd77d21a8e92e4f028  gcc/testsuite/gcc.target/riscv/zbs-binv.c
  87813769727061c534ee40846fe5d329  gcc/testsuite/gcc.target/riscv/zbs-binvi.c
  6f65a8d5cedf7c7e78f510c47be32ff9  gcc/testsuite/gcc.target/riscv/zbs-bset.c
  71ca7967e6cbba3fc34380193ec89519  gcc/testsuite/gcc.target/riscv/zbs-bseti-02.c
  c237dae5bf595d65ee7877fe44bac195  gcc/testsuite/gcc.target/riscv/zbs-bseti.c
  3fac61bb61fec1ea6a5b2dc959359036  gcc/testsuite/gcc.target/riscv/zbs-extra-bit-or-twobits.c
  19debc3a04e1393764efad7ab43274c1  gcc/testsuite/gcc.target/riscv/zbs-if_then_else-01.c
  8fb8cdfdbce79f56e1e73dab457a9db0  gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
  25806d4ad1e3f8088607b230b1652906  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
  c44879b540c64dbf6a2e05473063ddca  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
! 829633a5f9f6258c60e864d0fe60c378  gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
  53b5d180c32d0d22d9c56e8bf3531b09  gcc/testsuite/gcc.target/riscv/zero-extend-1.c
  c7f0b0bc511e6e07f7676a7a517b2598  gcc/testsuite/gcc.target/riscv/zero-extend-2.c
  768d39e82706093e6782b9b6ca0839a5  gcc/testsuite/gcc.target/riscv/zero-extend-3.c
  9c73d42ba18c59dfba319e31fcf747b5  gcc/testsuite/gcc.target/riscv/zero-extend-4.c
  e2b56564e3774392125177bbc3260fd5  gcc/testsuite/gcc.target/riscv/zero-extend-5.c
  649eab595a8e0cf00b90212069e14aec  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-1.c
  9012e38894123d1c0cfaefedcf9cfe25  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-2.c
  80fcf7a7c999249b3576e7615985ca93  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-3.c
--- 92733,92767 ----
  e4f42bd193de17a97d6ba4d7cf10116f  gcc/testsuite/gcc.target/riscv/zbs-bclri-02.c
  e0a334990e8f9864fda8dfc4ee86b7b4  gcc/testsuite/gcc.target/riscv/zbs-bclri-nottwobits.c
  5f20b31a10b4b169d9c9f7bc7afe1d28  gcc/testsuite/gcc.target/riscv/zbs-bext-02.c
! ffafdf5ec3d90559a46aef22d48e4e91  gcc/testsuite/gcc.target/riscv/zbs-bext-2.c
! 7461ef4f3b9c3f0d9a142b875f686a7b  gcc/testsuite/gcc.target/riscv/zbs-bext.c
  654584dc55d2bdd02192a295a812c13a  gcc/testsuite/gcc.target/riscv/zbs-bexti.c
  ff7d0d3eccd74dfd77d21a8e92e4f028  gcc/testsuite/gcc.target/riscv/zbs-binv.c
  87813769727061c534ee40846fe5d329  gcc/testsuite/gcc.target/riscv/zbs-binvi.c
  6f65a8d5cedf7c7e78f510c47be32ff9  gcc/testsuite/gcc.target/riscv/zbs-bset.c
  71ca7967e6cbba3fc34380193ec89519  gcc/testsuite/gcc.target/riscv/zbs-bseti-02.c
  c237dae5bf595d65ee7877fe44bac195  gcc/testsuite/gcc.target/riscv/zbs-bseti.c
+ 7000582910e0756bb5f6507cce81dee1  gcc/testsuite/gcc.target/riscv/zbs-bug.c
+ 665d95fa7a707935c03778a266aac1b9  gcc/testsuite/gcc.target/riscv/zbs-ext-2.c
+ c3444472611116c90abffb38b29ae95d  gcc/testsuite/gcc.target/riscv/zbs-ext.c
  3fac61bb61fec1ea6a5b2dc959359036  gcc/testsuite/gcc.target/riscv/zbs-extra-bit-or-twobits.c
  19debc3a04e1393764efad7ab43274c1  gcc/testsuite/gcc.target/riscv/zbs-if_then_else-01.c
+ 50150b544e8395982aac17886c1b29db  gcc/testsuite/gcc.target/riscv/zbs-zext-2.c
+ 3a06315324f29c37623a9cee79bd753d  gcc/testsuite/gcc.target/riscv/zbs-zext-3.c
+ 133ebde9ed99c7dd5e86cd0001da8b72  gcc/testsuite/gcc.target/riscv/zbs-zext.c
  8fb8cdfdbce79f56e1e73dab457a9db0  gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
+ c726e3a440795e179d06b6378a2243a1  gcc/testsuite/gcc.target/riscv/zcmp_push_gpr.c
  25806d4ad1e3f8088607b230b1652906  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
  c44879b540c64dbf6a2e05473063ddca  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
! bc6132167acbc4d22f4e43355e3d81d4  gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
  53b5d180c32d0d22d9c56e8bf3531b09  gcc/testsuite/gcc.target/riscv/zero-extend-1.c
  c7f0b0bc511e6e07f7676a7a517b2598  gcc/testsuite/gcc.target/riscv/zero-extend-2.c
  768d39e82706093e6782b9b6ca0839a5  gcc/testsuite/gcc.target/riscv/zero-extend-3.c
  9c73d42ba18c59dfba319e31fcf747b5  gcc/testsuite/gcc.target/riscv/zero-extend-4.c
  e2b56564e3774392125177bbc3260fd5  gcc/testsuite/gcc.target/riscv/zero-extend-5.c
+ 952304b6395022d75584049e0d6f7a85  gcc/testsuite/gcc.target/riscv/zero-extend-rshift-32.c
+ ef799d6847e28c26bc47134a1606e18e  gcc/testsuite/gcc.target/riscv/zero-extend-rshift-64.c
+ 1c668550187a799c04b2c6ceef585552  gcc/testsuite/gcc.target/riscv/zero-extend-rshift.c
  649eab595a8e0cf00b90212069e14aec  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-1.c
  9012e38894123d1c0cfaefedcf9cfe25  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-2.c
  80fcf7a7c999249b3576e7615985ca93  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-3.c
*************** cdd5d20e1fc21775c962e4ca3af5fc14  gcc/te
*** 86269,86277 ****
  ea829f72cd66a60c972658322a071ce9  gcc/testsuite/gcc.target/riscv/zfa-fli-8.c
  354abe6f9310cffb1533f21ef4ae0a2b  gcc/testsuite/gcc.target/riscv/zfa-fli-zfh.c
  e82be37f0436ad00489f18e83c73ee62  gcc/testsuite/gcc.target/riscv/zfa-fli.c
  045dfdb12b4040178f7f664344faf931  gcc/testsuite/gcc.target/riscv/zfa-fmovh-fmovp.c
  a6eb678b1fb0b284ec5d3420187c33ee  gcc/testsuite/gcc.target/riscv/zfa-fround.c
! 9c1e9cf4c25c9ff6edc4eaa677baadf9  gcc/testsuite/gcc.target/riscv/zi-ext.c
  9e2b7d51508e711792db8a77e0ce0579  gcc/testsuite/gcc.target/riscv/zicond-ice-1.c
  f8f761b2e6d372567e0ea4eb9ae20fb4  gcc/testsuite/gcc.target/riscv/zicond-ice-2.c
  dacfab42ea97fed33fb7af740c4b47e4  gcc/testsuite/gcc.target/riscv/zicond-ice-3.c
--- 92776,92790 ----
  ea829f72cd66a60c972658322a071ce9  gcc/testsuite/gcc.target/riscv/zfa-fli-8.c
  354abe6f9310cffb1533f21ef4ae0a2b  gcc/testsuite/gcc.target/riscv/zfa-fli-zfh.c
  e82be37f0436ad00489f18e83c73ee62  gcc/testsuite/gcc.target/riscv/zfa-fli.c
+ deaf35c75ee8eb9b1f5f00aebedfb7d6  gcc/testsuite/gcc.target/riscv/zfa-fmovh-fmovp-bug.c
  045dfdb12b4040178f7f664344faf931  gcc/testsuite/gcc.target/riscv/zfa-fmovh-fmovp.c
  a6eb678b1fb0b284ec5d3420187c33ee  gcc/testsuite/gcc.target/riscv/zfa-fround.c
! a108ee53538d2f13cafacf8505977577  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_arithmetic.c
! fb2bbe19adb120805523add355d1822d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c
! 50814de5b7700abb70d7c6ab3e2b7401  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c
! c6924cfcab740bd8de9296d509178f4d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c
! 6eafc07562072676788badf18ac87198  gcc/testsuite/gcc.target/riscv/zi-ext.c
! 5317b44a285fba7ff5b0d15770fd05c8  gcc/testsuite/gcc.target/riscv/zicfilp-call.c
  9e2b7d51508e711792db8a77e0ce0579  gcc/testsuite/gcc.target/riscv/zicond-ice-1.c
  f8f761b2e6d372567e0ea4eb9ae20fb4  gcc/testsuite/gcc.target/riscv/zicond-ice-2.c
  dacfab42ea97fed33fb7af740c4b47e4  gcc/testsuite/gcc.target/riscv/zicond-ice-3.c
*************** d96c5cb0ac69fd365634d1203364b2db  gcc/te
*** 86308,86340 ****
  14c4df6783e1a9e600cb33add7f5b299  gcc/testsuite/gcc.target/riscv/zmmul-1.c
  9259888aac8963bae4c1bf39b62b9034  gcc/testsuite/gcc.target/riscv/zmmul-2.c
  ccf1e7bec248250412cc28ec60141ac5  gcc/testsuite/gcc.target/riscv/zmmul-3.c
! e18c3d4ec96578975ad3829c9fc55f95  gcc/testsuite/gcc.target/riscv/zvbb.c
! a086795acadedf2036189a8d3fba9fbe  gcc/testsuite/gcc.target/riscv/zvbc.c
! 849d817040d200187bf8932657d3bae0  gcc/testsuite/gcc.target/riscv/zvkb.c
! 256b960766e840fd93b3281397be70ba  gcc/testsuite/gcc.target/riscv/zvkg.c
! 696083c83c55b67229990a35164485e5  gcc/testsuite/gcc.target/riscv/zvkn-1.c
! f7dd5829a6ab1f74be9c0262c5d0b109  gcc/testsuite/gcc.target/riscv/zvkn.c
! 884f20b1e3dc687461a9dff8ca7a8ab9  gcc/testsuite/gcc.target/riscv/zvknc-1.c
! 1e0ee2e606bb5f6345c3b73beab06e83  gcc/testsuite/gcc.target/riscv/zvknc-2.c
! 06478f2a1fa8e181d39bf333bef2a85e  gcc/testsuite/gcc.target/riscv/zvknc.c
! 6fde0b1ff2afe49311cdb95b4ae857b3  gcc/testsuite/gcc.target/riscv/zvkned.c
! e829fd4fd00d4c53681ae817037b0a77  gcc/testsuite/gcc.target/riscv/zvkng-1.c
! 52f76326db29f01e365bd6cafde905f6  gcc/testsuite/gcc.target/riscv/zvkng-2.c
! 93a68983886433bfacba731a7a43e69a  gcc/testsuite/gcc.target/riscv/zvkng.c
! 8f29dc0c23e103d48563f65cd7c54cb1  gcc/testsuite/gcc.target/riscv/zvknha.c
! 1ae2b8dc12bc2f2e61a381b8d0104aae  gcc/testsuite/gcc.target/riscv/zvknhb.c
! b2e30be4980db62dce2384f778cae9a4  gcc/testsuite/gcc.target/riscv/zvks-1.c
! 0ba6bf35bde4fa5cc1ce2b167d96ce9b  gcc/testsuite/gcc.target/riscv/zvks.c
! a127c0bdaa56dbbd26223e357a7ba96f  gcc/testsuite/gcc.target/riscv/zvksc-1.c
! 921b73ae8ae8b9437ef5dbccc63fe319  gcc/testsuite/gcc.target/riscv/zvksc-2.c
! 739e984b2a0a7c98e073894aa6aea540  gcc/testsuite/gcc.target/riscv/zvksc.c
! b5674a04914d9a218b9ae7d242ed8c82  gcc/testsuite/gcc.target/riscv/zvksed.c
! 2b420b41068a71e5f4a0f22bba8db3d5  gcc/testsuite/gcc.target/riscv/zvksg-1.c
! 1e90c1d7100354443dbfe494f0746e2f  gcc/testsuite/gcc.target/riscv/zvksg-2.c
! abf3e2e794957159bd0765d2a3fa497e  gcc/testsuite/gcc.target/riscv/zvksg.c
! 119d64b616837a31ef7aab242e3f1bf7  gcc/testsuite/gcc.target/riscv/zvksh.c
! 095108b621068320dfe665f4a12e3187  gcc/testsuite/gcc.target/riscv/zvkt.c
! e7bde96e990ab94c83f6ab683d8d1e07  gcc/testsuite/gcc.target/rl78/rl78.exp
  08a6a665d3a592b70dd51e3b59945801  gcc/testsuite/gcc.target/rl78/test_addm3.c
  f0737b5115c4a94dc1b2f670de5d83a4  gcc/testsuite/gcc.target/rl78/test_addsi3_internal.c
  77b20d827a48683a5d34b36224891ead  gcc/testsuite/gcc.target/rl78/test_auto_vector.c
--- 92821,92853 ----
  14c4df6783e1a9e600cb33add7f5b299  gcc/testsuite/gcc.target/riscv/zmmul-1.c
  9259888aac8963bae4c1bf39b62b9034  gcc/testsuite/gcc.target/riscv/zmmul-2.c
  ccf1e7bec248250412cc28ec60141ac5  gcc/testsuite/gcc.target/riscv/zmmul-3.c
! 2b8515aee845720ebd4ffd618743837a  gcc/testsuite/gcc.target/riscv/zvbb.c
! 05c67781913e6244ef167c0051b7d633  gcc/testsuite/gcc.target/riscv/zvbc.c
! ef87195b9c351b9b8c4a2ba441f8b62b  gcc/testsuite/gcc.target/riscv/zvkb.c
! f025c79c09c557c257c0945f8e627c21  gcc/testsuite/gcc.target/riscv/zvkg.c
! c5d33bebfd71e4215344882a9558cc72  gcc/testsuite/gcc.target/riscv/zvkn-1.c
! e002e1903b9ae53d5eb16051b31d6e9a  gcc/testsuite/gcc.target/riscv/zvkn.c
! b658fccad8bfcc0ded1359b229aa54da  gcc/testsuite/gcc.target/riscv/zvknc-1.c
! 7a8ab2aef344b8a18fc330f15a5c9362  gcc/testsuite/gcc.target/riscv/zvknc-2.c
! 9bb04af38fd930d403735f808e41c7e1  gcc/testsuite/gcc.target/riscv/zvknc.c
! 6d4c6e1bfdbd40aeee22d8e116d484dd  gcc/testsuite/gcc.target/riscv/zvkned.c
! afcbb8cf499ed43e4dbad98bfaa2d8fb  gcc/testsuite/gcc.target/riscv/zvkng-1.c
! 7e82f12fd8dd7740915dd4dffbd85453  gcc/testsuite/gcc.target/riscv/zvkng-2.c
! 366f88efbfc3b088d8b04c7f162b87ed  gcc/testsuite/gcc.target/riscv/zvkng.c
! 5b7db2a036d8e224a09cb3d488df811d  gcc/testsuite/gcc.target/riscv/zvknha.c
! 2e3973b5ba9bf92fc95a0f2726af552c  gcc/testsuite/gcc.target/riscv/zvknhb.c
! e1d430d8f1575ac4a269a32f7a5bb4aa  gcc/testsuite/gcc.target/riscv/zvks-1.c
! 1a0b65699b4f405de609060bb9649935  gcc/testsuite/gcc.target/riscv/zvks.c
! c77577875588437a6bc7790d89a42e7a  gcc/testsuite/gcc.target/riscv/zvksc-1.c
! aa34fc1d4a0264d9a37a28d4d5ea3100  gcc/testsuite/gcc.target/riscv/zvksc-2.c
! a0cd6680010fd9a12a6101dee4eb47c6  gcc/testsuite/gcc.target/riscv/zvksc.c
! 34ac2a3680970a2080c194dde048c900  gcc/testsuite/gcc.target/riscv/zvksed.c
! 5c69ed05d74dd8c89554985ff342796f  gcc/testsuite/gcc.target/riscv/zvksg-1.c
! 7433d8e38cf1b90a9e0cd476ba5bb7ea  gcc/testsuite/gcc.target/riscv/zvksg-2.c
! 04ae612bf84c17e229c2b4c90dc89f3a  gcc/testsuite/gcc.target/riscv/zvksg.c
! 8876f172658e226208bd18f447206495  gcc/testsuite/gcc.target/riscv/zvksh.c
! 702f93a4f3a34ee27b679a252f812acc  gcc/testsuite/gcc.target/riscv/zvkt.c
! e62489b822acefcb4446f609af60efa4  gcc/testsuite/gcc.target/rl78/rl78.exp
  08a6a665d3a592b70dd51e3b59945801  gcc/testsuite/gcc.target/rl78/test_addm3.c
  f0737b5115c4a94dc1b2f670de5d83a4  gcc/testsuite/gcc.target/rl78/test_addsi3_internal.c
  77b20d827a48683a5d34b36224891ead  gcc/testsuite/gcc.target/rl78/test_auto_vector.c
*************** f4dd7a9883421e8a6f9bd88c80d953f3  gcc/te
*** 86354,86360 ****
  1854cae6bc69cd8d1d547a850a4e43f0  gcc/testsuite/gcc.target/rx/packed-struct.c
  c141239c428d6f6e368356cbbd1dcdb7  gcc/testsuite/gcc.target/rx/pr83831.c
  853c27a897cefbe98ebdbb934bbedef0  gcc/testsuite/gcc.target/rx/rx-abi-function-tests.c
! cb4924f992ea411dc7ee63107ed9b55c  gcc/testsuite/gcc.target/rx/rx.exp
  e718c4f5bac79651adb4d0396b231953  gcc/testsuite/gcc.target/rx/zero-width-bitfield.c
  2326486bbdc13fa6e49aadd508a1be61  gcc/testsuite/gcc.target/s390/20020926-1.c
  5f66a42e5c40df26aab6aad04c3794e3  gcc/testsuite/gcc.target/s390/20030123-1.c
--- 92867,92873 ----
  1854cae6bc69cd8d1d547a850a4e43f0  gcc/testsuite/gcc.target/rx/packed-struct.c
  c141239c428d6f6e368356cbbd1dcdb7  gcc/testsuite/gcc.target/rx/pr83831.c
  853c27a897cefbe98ebdbb934bbedef0  gcc/testsuite/gcc.target/rx/rx-abi-function-tests.c
! e869b33e5cbfaaab2a3d4fa00217b0b5  gcc/testsuite/gcc.target/rx/rx.exp
  e718c4f5bac79651adb4d0396b231953  gcc/testsuite/gcc.target/rx/zero-width-bitfield.c
  2326486bbdc13fa6e49aadd508a1be61  gcc/testsuite/gcc.target/s390/20020926-1.c
  5f66a42e5c40df26aab6aad04c3794e3  gcc/testsuite/gcc.target/s390/20030123-1.c
*************** c975117f4dad5f7d006165a64d22ff94  gcc/te
*** 86368,86390 ****
  f657a587777cadd240d90267c42183a8  gcc/testsuite/gcc.target/s390/20090223-1.c
  b496b43e01188107d0277ab22fe7faa6  gcc/testsuite/gcc.target/s390/20140327-1.c
  0a834a7ade0902d6124c6925bdeba9fc  gcc/testsuite/gcc.target/s390/20150826-1.c
! 4a96580e145f1c61cef78ba991ab4066  gcc/testsuite/gcc.target/s390/20181024-1.c
  f27f299747d9862a0ca9a3ab3770f1c4  gcc/testsuite/gcc.target/s390/20200617.c
  1dabce41016ae8d4d1de9989a3307a73  gcc/testsuite/gcc.target/s390/20211119.c
  2a2e7cf581c0ea913bb0cd940e096c96  gcc/testsuite/gcc.target/s390/TI-constants-lra.c
! 79300a376a7a8fbc10ec913d6f99a928  gcc/testsuite/gcc.target/s390/TI-constants-nolra.c
! d69a98eeb9d370fcef146a6f7778c59d  gcc/testsuite/gcc.target/s390/addr-constraints-1.c
  4bbde949a856a0b7fa4b437f375ac7e9  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c
  91db25b7e50eea2c23caebfa790a61fd  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c
  9f272b5243eacbb553813a4fb9ed4d5b  gcc/testsuite/gcc.target/s390/aligned-1.c
! 3c11c87fade11ee593bffc9c1c6a2755  gcc/testsuite/gcc.target/s390/arch12/aghsghmgh-1.c
! 3b48636a43d4d32a34e8f3f193401098  gcc/testsuite/gcc.target/s390/arch12/mul-1.c
  f41fae493f713bf85491d412efd9cebd  gcc/testsuite/gcc.target/s390/arch12/mul-2.c
! eea65ad46d6214812e9c659678e7c85d  gcc/testsuite/gcc.target/s390/arch13/bitops-1.c
! e07e6660958c696654a27d7001ddf95d  gcc/testsuite/gcc.target/s390/arch13/bitops-2.c
! 6e6c92da667e4c33f8b6a86564530943  gcc/testsuite/gcc.target/s390/arch13/fp-signedint-convert-1.c
! 032989f1c763b5166788568d73acb86f  gcc/testsuite/gcc.target/s390/arch13/fp-unsignedint-convert-1.c
! 364f6940fabfcd0b02c28af93b437b1c  gcc/testsuite/gcc.target/s390/arch13/popcount-1.c
  3c016ed407b9af1863b6adcef0bb891a  gcc/testsuite/gcc.target/s390/arch13/sel-1.c
  4ce603e2d83e4fcf4fa5babc96818e9b  gcc/testsuite/gcc.target/s390/ashr.c
  bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/testsuite/gcc.target/s390/asm-machine-1.c
--- 92881,92902 ----
  f657a587777cadd240d90267c42183a8  gcc/testsuite/gcc.target/s390/20090223-1.c
  b496b43e01188107d0277ab22fe7faa6  gcc/testsuite/gcc.target/s390/20140327-1.c
  0a834a7ade0902d6124c6925bdeba9fc  gcc/testsuite/gcc.target/s390/20150826-1.c
! 0119e9b45819b50cdcbe43e352d8ee2f  gcc/testsuite/gcc.target/s390/20181024-1.c
  f27f299747d9862a0ca9a3ab3770f1c4  gcc/testsuite/gcc.target/s390/20200617.c
  1dabce41016ae8d4d1de9989a3307a73  gcc/testsuite/gcc.target/s390/20211119.c
  2a2e7cf581c0ea913bb0cd940e096c96  gcc/testsuite/gcc.target/s390/TI-constants-lra.c
! 9ad2567c20e2550aeb41dc9e21f08fc5  gcc/testsuite/gcc.target/s390/addr-constraints-1.c
  4bbde949a856a0b7fa4b437f375ac7e9  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c
  91db25b7e50eea2c23caebfa790a61fd  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c
  9f272b5243eacbb553813a4fb9ed4d5b  gcc/testsuite/gcc.target/s390/aligned-1.c
! 738e36dab36af196826c9b4e12d54d36  gcc/testsuite/gcc.target/s390/arch12/aghsghmgh-1.c
! 0e764028020c3f12e214f3b6304e69fd  gcc/testsuite/gcc.target/s390/arch12/mul-1.c
  f41fae493f713bf85491d412efd9cebd  gcc/testsuite/gcc.target/s390/arch12/mul-2.c
! 82f4bf750374985a0b9a1498c0435b7d  gcc/testsuite/gcc.target/s390/arch13/bitops-1.c
! 648829618abc727ebde2ac7c570de43f  gcc/testsuite/gcc.target/s390/arch13/bitops-2.c
! 0557336fa8ac86edd5c16a838c96cf5d  gcc/testsuite/gcc.target/s390/arch13/fp-signedint-convert-1.c
! 4051b2b023eee6c684fd82362f2a4cdb  gcc/testsuite/gcc.target/s390/arch13/fp-unsignedint-convert-1.c
! c983687631a2e6c9dbb24e103ebd1364  gcc/testsuite/gcc.target/s390/arch13/popcount-1.c
  3c016ed407b9af1863b6adcef0bb891a  gcc/testsuite/gcc.target/s390/arch13/sel-1.c
  4ce603e2d83e4fcf4fa5babc96818e9b  gcc/testsuite/gcc.target/s390/ashr.c
  bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/testsuite/gcc.target/s390/asm-machine-1.c
*************** acb0386d8fc9ec46feddca150e92bbeb  gcc/te
*** 86396,86412 ****
  381808a4590567090c1e800f04ae55f5  gcc/testsuite/gcc.target/s390/bswap-1.c
  2750052bc05f059828b76c05a2a7da2e  gcc/testsuite/gcc.target/s390/bswaphi-1.c
  6837d1a6d1d448c21031e10330351313  gcc/testsuite/gcc.target/s390/builtin-constant-p-threading.c
! 64c5295b9ab74cc0c611f0465b9bc84c  gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c
! a8b67a46c250e6ed55b0d0c02d0bbfaa  gcc/testsuite/gcc.target/s390/call-z10-pic.c
! 991316de56c221c480b1a92372f87c4c  gcc/testsuite/gcc.target/s390/call-z10.c
! dadd4dee9243a95c083fd42cf4d1922a  gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c
! b72cf28ba3fa5c5fadef0677ef4b7079  gcc/testsuite/gcc.target/s390/call-z9-pic.c
! 614a6da85058067be5ae701a10d177ae  gcc/testsuite/gcc.target/s390/call-z9.c
  46b537032825fcf59c9ec689bc2e887b  gcc/testsuite/gcc.target/s390/call.h
  a30e9b647f9ba647f6a35589e92b976d  gcc/testsuite/gcc.target/s390/ccor.c
  5cff53cf309723a01596ee22efde8723  gcc/testsuite/gcc.target/s390/cmp-mem-const-1.c
  34714a3aeb17aaa92176e5d909a9927a  gcc/testsuite/gcc.target/s390/combine-rotate-modulo.c
  bd36d7368fda184d34631ae156b531dc  gcc/testsuite/gcc.target/s390/combine-shift-rotate-add-mod.c
  c5136e0bb58277988b6c8fb48db7921f  gcc/testsuite/gcc.target/s390/dfp-1.c
  7a9f6920ab3e490fbba0f30bd72676f7  gcc/testsuite/gcc.target/s390/dfp-conv1.c
  8fe194c399b90414286b1fe87a584938  gcc/testsuite/gcc.target/s390/dfp_to_bfp_rounding.c
--- 92908,92926 ----
  381808a4590567090c1e800f04ae55f5  gcc/testsuite/gcc.target/s390/bswap-1.c
  2750052bc05f059828b76c05a2a7da2e  gcc/testsuite/gcc.target/s390/bswaphi-1.c
  6837d1a6d1d448c21031e10330351313  gcc/testsuite/gcc.target/s390/builtin-constant-p-threading.c
! 37f41f2d3820a5ed3bd75f1c2a0da697  gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c
! cece0b36a531ed987691ab943d51fa1a  gcc/testsuite/gcc.target/s390/call-z10-pic.c
! 9177ade245e1460087c886601b8e1e38  gcc/testsuite/gcc.target/s390/call-z10.c
! eb9fe387b13f739f84281a3a0b5e8d6a  gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c
! 6725626c547ce5e5c48d8077dad26338  gcc/testsuite/gcc.target/s390/call-z9-pic.c
! b1f0c01d637b8df47287f927152ff965  gcc/testsuite/gcc.target/s390/call-z9.c
  46b537032825fcf59c9ec689bc2e887b  gcc/testsuite/gcc.target/s390/call.h
  a30e9b647f9ba647f6a35589e92b976d  gcc/testsuite/gcc.target/s390/ccor.c
+ 4b5dde5fc23f81bafd85214a111c5530  gcc/testsuite/gcc.target/s390/ccusage.c
  5cff53cf309723a01596ee22efde8723  gcc/testsuite/gcc.target/s390/cmp-mem-const-1.c
  34714a3aeb17aaa92176e5d909a9927a  gcc/testsuite/gcc.target/s390/combine-rotate-modulo.c
  bd36d7368fda184d34631ae156b531dc  gcc/testsuite/gcc.target/s390/combine-shift-rotate-add-mod.c
+ 081d2d5673629fcabc1626acaf6cfced  gcc/testsuite/gcc.target/s390/delegitimize-1.c
  c5136e0bb58277988b6c8fb48db7921f  gcc/testsuite/gcc.target/s390/dfp-1.c
  7a9f6920ab3e490fbba0f30bd72676f7  gcc/testsuite/gcc.target/s390/dfp-conv1.c
  8fe194c399b90414286b1fe87a584938  gcc/testsuite/gcc.target/s390/dfp_to_bfp_rounding.c
*************** d94841af420f4745c433040de2753088  gcc/te
*** 86492,86503 ****
--- 93006,93024 ----
  7361c2c610e646df57c6d91b57e4689e  gcc/testsuite/gcc.target/s390/insv-2.c
  baa6d1c3d77baf7c1324df7bb6f4f40c  gcc/testsuite/gcc.target/s390/insv-3.c
  c3e13b2ac420e231a16f2a177383585a  gcc/testsuite/gcc.target/s390/int128load.c
+ a9bc35f3b8e2135b6e2d575d37dd20e7  gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-1.c
+ 6538cdf51fe66dbf089a48c5be30aa10  gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c
+ 6282d3e4a2f40edd5372d67d15c1228c  gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c
+ 2fac1f3d555a888fa224b855ee080ef3  gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit.h
  5ec66e2212ebc6c860d123f507d0b6bc  gcc/testsuite/gcc.target/s390/jump-label.c
  e24d2c019a37c569a797e81173782052  gcc/testsuite/gcc.target/s390/larl-1.c
  86858e91f5b4dabc479f75228a16d550  gcc/testsuite/gcc.target/s390/leaf-profile.c
  f13fa958f52666320ebd966fc9530e05  gcc/testsuite/gcc.target/s390/litpool-int.c
  25399ee14c48d99597fc401591d68286  gcc/testsuite/gcc.target/s390/litpool-r3-1.c
  2b7175e138a756516a334fd03dd56b25  gcc/testsuite/gcc.target/s390/litpool-str-1.c
+ 27b6f29c4b20f2f5050380ffe5a1edbd  gcc/testsuite/gcc.target/s390/llxa-1.c
+ 6d8151e552ad04cdafb82c7337e80da5  gcc/testsuite/gcc.target/s390/llxa-2.c
+ 3a888eabdbeff5111635ecc7e99b9414  gcc/testsuite/gcc.target/s390/llxa-3.c
  a588f46b95abbab88ae5d34ca6ecdd74  gcc/testsuite/gcc.target/s390/load-and-test-fp-1.c
  29bb396d81160d4cfff6eea515a4540d  gcc/testsuite/gcc.target/s390/load-and-test-fp-2.c
  d473dda0acb68834c59c17300e9ce72a  gcc/testsuite/gcc.target/s390/load-and-test-fp.h
*************** a036b9c25181b348fabb813340965fd8  gcc/te
*** 86507,86512 ****
--- 93028,93037 ----
  19669d4c8129516729256af32eaf6e79  gcc/testsuite/gcc.target/s390/load-thread-pointer-once-2.c
  b8618898336397f0399d4c97701db7b8  gcc/testsuite/gcc.target/s390/load-thread-pointer-once.c
  987d68c1cce8154fbef166f19f27d276  gcc/testsuite/gcc.target/s390/loc-1.c
+ a4589217f85d225cee7d91649add59dc  gcc/testsuite/gcc.target/s390/lxa-1.c
+ 8576cb75188e265f621918172e37993a  gcc/testsuite/gcc.target/s390/lxa-2.c
+ 36d3b271e2f2eb0b15047430141e90bf  gcc/testsuite/gcc.target/s390/lxa-3.c
+ 25deeadef473f8167ac2f3aa560675e9  gcc/testsuite/gcc.target/s390/lxa-4.c
  29af65df49e303cbbe65fb9285be4736  gcc/testsuite/gcc.target/s390/md/andc-splitter-1.c
  ebd38103c33d9be1fe39714752582711  gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c
  9cf080f05a65a6c75f29f573c2a8c74a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.c
*************** b8264f568a96c8a4f482377d2149b99f  gcc/te
*** 86554,86563 ****
  b412cfef2c17bbb3667d188ea07e88d8  gcc/testsuite/gcc.target/s390/nobp-return-reg-z10.c
  702518f6d91053d4346822b49e5f21c8  gcc/testsuite/gcc.target/s390/nobp-return-reg-z900.c
  7b1cafd202716397b830d007fe7587c3  gcc/testsuite/gcc.target/s390/nobp-section-type-conflict.c
! d10ede3615cc75687ebe5e233896851a  gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z10.c
! 8f2deb25c94340c19360ebdf6d822acf  gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z900.c
! ce04de73ecbaa0a12a0313d3aed72942  gcc/testsuite/gcc.target/s390/nobp-table-jump-z10.c
! dfee7fa2ec55ccfb935c28226ca15fe3  gcc/testsuite/gcc.target/s390/nobp-table-jump-z900.c
  562f1ca03435b8b1feb13adcaaa3be2c  gcc/testsuite/gcc.target/s390/nodatarel-1.c
  7ea6fcf7afbdc4bcd57407e5299e712a  gcc/testsuite/gcc.target/s390/nolrl-1.c
  d5b2bba665576dc0538f9d0bd2142e62  gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c
--- 93079,93088 ----
  b412cfef2c17bbb3667d188ea07e88d8  gcc/testsuite/gcc.target/s390/nobp-return-reg-z10.c
  702518f6d91053d4346822b49e5f21c8  gcc/testsuite/gcc.target/s390/nobp-return-reg-z900.c
  7b1cafd202716397b830d007fe7587c3  gcc/testsuite/gcc.target/s390/nobp-section-type-conflict.c
! 8ef346d49dc28d81d3d17d1a44f97807  gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z10.c
! 249a51c7b93621e119f74b39d0f7603e  gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z900.c
! 8ff0a784c1345c1b22b6b993172e1d1c  gcc/testsuite/gcc.target/s390/nobp-table-jump-z10.c
! a746140bf015e375e657d70b442a69b1  gcc/testsuite/gcc.target/s390/nobp-table-jump-z900.c
  562f1ca03435b8b1feb13adcaaa3be2c  gcc/testsuite/gcc.target/s390/nodatarel-1.c
  7ea6fcf7afbdc4bcd57407e5299e712a  gcc/testsuite/gcc.target/s390/nolrl-1.c
  d5b2bba665576dc0538f9d0bd2142e62  gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c
*************** b65b6b60679fe5fe589b83fa813950ac  gcc/te
*** 86572,86577 ****
--- 93097,93106 ----
  a69e5256407f09ac05e2e19ea14c9e15  gcc/testsuite/gcc.target/s390/pr106355-3.c
  5680e7515cb52b85f38e10b48d5e6a75  gcc/testsuite/gcc.target/s390/pr106355.h
  3037fa7dfb434ad8be9522e919ab6d65  gcc/testsuite/gcc.target/s390/pr112753.c
+ b3924bf1892d3c296907c61da351118a  gcc/testsuite/gcc.target/s390/pr115860-1.c
+ f885fe5895ea370a4871d39b1c85f60d  gcc/testsuite/gcc.target/s390/pr118362.c
+ 7225ee6b01e9ec5cf0a6a17815ca24ac  gcc/testsuite/gcc.target/s390/pr118511.c
+ e282b73f72ab6c2a629448cad8de65a7  gcc/testsuite/gcc.target/s390/pr118835.c
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** e9e2200b0b1b2ee975a929b593283ffc  gcc/te
*** 86583,86589 ****
  e39ae50cfd41db69820ef49affe4f84c  gcc/testsuite/gcc.target/s390/pr61078.c
  00c63ab17bfff39123fe39e8948e04fb  gcc/testsuite/gcc.target/s390/pr66306.c
  a24ddb518747e2c2d2b79b51cff14991  gcc/testsuite/gcc.target/s390/pr67443.c
! bfebfcff47e2bd902422ce9d95952e98  gcc/testsuite/gcc.target/s390/pr68015.c
  a10765b7fa3c2ae33208e9a12e6ae864  gcc/testsuite/gcc.target/s390/pr69148.c
  ce26782ee37449dbeb4aa20623d96c52  gcc/testsuite/gcc.target/s390/pr69625.c
  07661378c4a77c128ba05293b961afad  gcc/testsuite/gcc.target/s390/pr69709.c
--- 93112,93118 ----
  e39ae50cfd41db69820ef49affe4f84c  gcc/testsuite/gcc.target/s390/pr61078.c
  00c63ab17bfff39123fe39e8948e04fb  gcc/testsuite/gcc.target/s390/pr66306.c
  a24ddb518747e2c2d2b79b51cff14991  gcc/testsuite/gcc.target/s390/pr67443.c
! f3e06ddc2677337fb5a4b5ab42a718d8  gcc/testsuite/gcc.target/s390/pr68015.c
  a10765b7fa3c2ae33208e9a12e6ae864  gcc/testsuite/gcc.target/s390/pr69148.c
  ce26782ee37449dbeb4aa20623d96c52  gcc/testsuite/gcc.target/s390/pr69625.c
  07661378c4a77c128ba05293b961afad  gcc/testsuite/gcc.target/s390/pr69709.c
*************** ee22235cbb7d245ac6cb6636af0fa9d2  gcc/te
*** 86593,86599 ****
  6ff76dc23d114b0bb99123d1d82afc87  gcc/testsuite/gcc.target/s390/pr77822-2.c
  acda2f0eed359b6c50d33952658d4fad  gcc/testsuite/gcc.target/s390/pr79240.c
  1ac7e049ebfb6360748da2ac0c754846  gcc/testsuite/gcc.target/s390/pr79890.c
- d127ee93571cc359b60fa89c63392525  gcc/testsuite/gcc.target/s390/pr79895.c
  344b2b8df65958d56e0bd6673f2e1fb5  gcc/testsuite/gcc.target/s390/pr80080-3.c
  245b633cd4b4c7e1ea3414c0612767e1  gcc/testsuite/gcc.target/s390/pr80080-4.c
  cfb3704f261cfcb28439aeb9870231d3  gcc/testsuite/gcc.target/s390/pr80725.c
--- 93122,93127 ----
*************** d0ba6ce53be2df8464e7d29dec20c450  gcc/te
*** 86620,86629 ****
  f9de3c4e9d9e8c3a707e1f51e48901b6  gcc/testsuite/gcc.target/s390/return-addr1.c
  5368e8759352b798ae1db6bc79919aa2  gcc/testsuite/gcc.target/s390/return-addr2.c
  c638a86bd5bf24acab1490492cbfb557  gcc/testsuite/gcc.target/s390/risbg-ll-1.c
! 532ff931ad8bf62f60b08b1f9261827a  gcc/testsuite/gcc.target/s390/risbg-ll-2.c
  abd82e72aa14d30ef649fb88b2856d0d  gcc/testsuite/gcc.target/s390/risbg-ll-3.c
  6c330cfc80a0f60d042947448413d011  gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c
! 98c3b60701e00a14700f8953eabba261  gcc/testsuite/gcc.target/s390/s390.exp
  970ac972bfd816dae5f8b5705abd8ab6  gcc/testsuite/gcc.target/s390/section-anchors.c
  2e57c7c23cac49a65eb61077317a2f1b  gcc/testsuite/gcc.target/s390/section-anchors2.c
  78c4d933475e58d55d22ab5b46b27884  gcc/testsuite/gcc.target/s390/section-anchors3.c
--- 93148,93157 ----
  f9de3c4e9d9e8c3a707e1f51e48901b6  gcc/testsuite/gcc.target/s390/return-addr1.c
  5368e8759352b798ae1db6bc79919aa2  gcc/testsuite/gcc.target/s390/return-addr2.c
  c638a86bd5bf24acab1490492cbfb557  gcc/testsuite/gcc.target/s390/risbg-ll-1.c
! b25efa9d439f6c9ad06962cba99229c8  gcc/testsuite/gcc.target/s390/risbg-ll-2.c
  abd82e72aa14d30ef649fb88b2856d0d  gcc/testsuite/gcc.target/s390/risbg-ll-3.c
  6c330cfc80a0f60d042947448413d011  gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c
! 16c7173b038d519c785c97d8344c469b  gcc/testsuite/gcc.target/s390/s390.exp
  970ac972bfd816dae5f8b5705abd8ab6  gcc/testsuite/gcc.target/s390/section-anchors.c
  2e57c7c23cac49a65eb61077317a2f1b  gcc/testsuite/gcc.target/s390/section-anchors2.c
  78c4d933475e58d55d22ab5b46b27884  gcc/testsuite/gcc.target/s390/section-anchors3.c
*************** bc3d746388a64b8efc8d54c61733e6ad  gcc/te
*** 86636,86642 ****
  3a9ba61f8844739d1b5989c7c7e2b6c1  gcc/testsuite/gcc.target/s390/stackcheck1.c
  6194a2f1ab73b5d2d770793e72434897  gcc/testsuite/gcc.target/s390/target-attribute/pr82012.c
  a7f1a331d327049c14923db6d8cbc90e  gcc/testsuite/gcc.target/s390/target-attribute/pr99313.c
! 4a0a569cb86f0820127939aa90fb2469  gcc/testsuite/gcc.target/s390/target-attribute/tattr-1.c
  3eadbba9f114de154af023b82b998dba  gcc/testsuite/gcc.target/s390/target-attribute/tattr-10.c
  df32ee2c85133188b09e051e4034671f  gcc/testsuite/gcc.target/s390/target-attribute/tattr-11.c
  5e953bb238a5d4f89f370ca7a63de40d  gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c
--- 93164,93170 ----
  3a9ba61f8844739d1b5989c7c7e2b6c1  gcc/testsuite/gcc.target/s390/stackcheck1.c
  6194a2f1ab73b5d2d770793e72434897  gcc/testsuite/gcc.target/s390/target-attribute/pr82012.c
  a7f1a331d327049c14923db6d8cbc90e  gcc/testsuite/gcc.target/s390/target-attribute/pr99313.c
! 653c12d6c072af1ed779f09c673f2bee  gcc/testsuite/gcc.target/s390/target-attribute/tattr-1.c
  3eadbba9f114de154af023b82b998dba  gcc/testsuite/gcc.target/s390/target-attribute/tattr-10.c
  df32ee2c85133188b09e051e4034671f  gcc/testsuite/gcc.target/s390/target-attribute/tattr-11.c
  5e953bb238a5d4f89f370ca7a63de40d  gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c
*************** c5750a32146f25558a5ce74ab9b1e358  gcc/te
*** 86645,86651 ****
  60f4d42d793368c5c865f21ad1960ade  gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c
  c41a415d34916c316aaec966296bc30f  gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c
  ab41e62f799930f1b6f0e834307da9de  gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c
! e656fe83d6974c0e9d138c775968b72a  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c
  aebe0fa5afd715c46dcc5e8ecf5d787a  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2b.c
  5a5b80485488402f441e3b7be02b29cf  gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c
  5ef21678d2edcc23ae3d8d50c9da8e57  gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c
--- 93173,93179 ----
  60f4d42d793368c5c865f21ad1960ade  gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c
  c41a415d34916c316aaec966296bc30f  gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c
  ab41e62f799930f1b6f0e834307da9de  gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c
! 85caa32bd88038d647ac5fad83685829  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c
  aebe0fa5afd715c46dcc5e8ecf5d787a  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2b.c
  5a5b80485488402f441e3b7be02b29cf  gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c
  5ef21678d2edcc23ae3d8d50c9da8e57  gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c
*************** ff7d9419a3b2402f3410b0aae024febc  gcc/te
*** 86727,86741 ****
  b5c026b313e7e579c58d749f8ff8ab28  gcc/testsuite/gcc.target/s390/tls-pic.c
  69c2f8e3f1d02b9f005713af50f678a4  gcc/testsuite/gcc.target/s390/tls.c
  d0f7e6beee3ecb181246a2372324af7e  gcc/testsuite/gcc.target/s390/tls.h
  e018d4fe07e1701b88d0469006781862  gcc/testsuite/gcc.target/s390/umul-wide.c
  3095d4efb3461cf2dfc79a3037839336  gcc/testsuite/gcc.target/s390/unaligned-1.c
  daf32d359b4f5080aef58859b29870b9  gcc/testsuite/gcc.target/s390/vector/align-1.c
  6bf626314f1db50adc71184824f22bba  gcc/testsuite/gcc.target/s390/vector/align-2.c
  37d2afe5f257fe6c269b2baa787ffe41  gcc/testsuite/gcc.target/s390/vector/combine-shift-vec.c
! cd87621c97dea4b44990c53afb0e84f0  gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c
! 7555086a7e981f40ab0a053876683cc4  gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c
  8a6c46e492362a7ae789676034c82a23  gcc/testsuite/gcc.target/s390/vector/int128-1.c
! cfd1d2dc2bb2e6e67cead63e9e5b6e04  gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c
  7b57f62cb279490843705e46351b77dd  gcc/testsuite/gcc.target/s390/vector/long-double-asm-commutative.c
  d9717b93ea1bc6140ba0284c50adb76b  gcc/testsuite/gcc.target/s390/vector/long-double-asm-earlyclobber.c
  e3dbf48af3006ce478179091e800da73  gcc/testsuite/gcc.target/s390/vector/long-double-asm-fprvrmem.c
--- 93255,93275 ----
  b5c026b313e7e579c58d749f8ff8ab28  gcc/testsuite/gcc.target/s390/tls-pic.c
  69c2f8e3f1d02b9f005713af50f678a4  gcc/testsuite/gcc.target/s390/tls.c
  d0f7e6beee3ecb181246a2372324af7e  gcc/testsuite/gcc.target/s390/tls.h
+ 3036c442dc3b8f562a149cdd30c3d3aa  gcc/testsuite/gcc.target/s390/uaddc-1.c
+ be6324fd92cea0881639c80ab321c307  gcc/testsuite/gcc.target/s390/uaddc-2.c
+ 6cde92ca49e304a2c89a6706f7707986  gcc/testsuite/gcc.target/s390/uaddc-3.c
  e018d4fe07e1701b88d0469006781862  gcc/testsuite/gcc.target/s390/umul-wide.c
  3095d4efb3461cf2dfc79a3037839336  gcc/testsuite/gcc.target/s390/unaligned-1.c
+ 917abff3cd250028ba01de23d5fd2dd9  gcc/testsuite/gcc.target/s390/usubc-1.c
+ e4835dbf6d9c3c7438e6d7a8372da7ee  gcc/testsuite/gcc.target/s390/usubc-2.c
+ ed8807784132f9e94878b1bae2639eb9  gcc/testsuite/gcc.target/s390/usubc-3.c
  daf32d359b4f5080aef58859b29870b9  gcc/testsuite/gcc.target/s390/vector/align-1.c
  6bf626314f1db50adc71184824f22bba  gcc/testsuite/gcc.target/s390/vector/align-2.c
  37d2afe5f257fe6c269b2baa787ffe41  gcc/testsuite/gcc.target/s390/vector/combine-shift-vec.c
! 6cc464ecc62d96faaaa310208a8e68a1  gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c
! 46b2fde5b404f026a3a58cb93ab82b82  gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c
  8a6c46e492362a7ae789676034c82a23  gcc/testsuite/gcc.target/s390/vector/int128-1.c
! 694840e6548b0c0deef3e89fd571892a  gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c
  7b57f62cb279490843705e46351b77dd  gcc/testsuite/gcc.target/s390/vector/long-double-asm-commutative.c
  d9717b93ea1bc6140ba0284c50adb76b  gcc/testsuite/gcc.target/s390/vector/long-double-asm-earlyclobber.c
  e3dbf48af3006ce478179091e800da73  gcc/testsuite/gcc.target/s390/vector/long-double-asm-fprvrmem.c
*************** a3bf933038b58e4d541e60748b47629b  gcc/te
*** 86770,86776 ****
  b1f6b9b6a5afaf7103d770ae87762260  gcc/testsuite/gcc.target/s390/vector/long-double-to-float.c
  7894fd15c9ad66ed3bb637ac9fb4499d  gcc/testsuite/gcc.target/s390/vector/long-double-to-i16.c
  125443693bd86803a7d78e258a91f334  gcc/testsuite/gcc.target/s390/vector/long-double-to-i32.c
! e21d178b02e384164a81caf3ffee7b0b  gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c
  693a76edc110ca1f6149d64c15447588  gcc/testsuite/gcc.target/s390/vector/long-double-to-i8.c
  83521187ebf9ff9a612ae879e97d69c9  gcc/testsuite/gcc.target/s390/vector/long-double-to-u16.c
  c2be2c1316a4a96cdd7687813bff0db1  gcc/testsuite/gcc.target/s390/vector/long-double-to-u32.c
--- 93304,93310 ----
  b1f6b9b6a5afaf7103d770ae87762260  gcc/testsuite/gcc.target/s390/vector/long-double-to-float.c
  7894fd15c9ad66ed3bb637ac9fb4499d  gcc/testsuite/gcc.target/s390/vector/long-double-to-i16.c
  125443693bd86803a7d78e258a91f334  gcc/testsuite/gcc.target/s390/vector/long-double-to-i32.c
! 0eed6004b7bc93fde7e8183202dffa08  gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c
  693a76edc110ca1f6149d64c15447588  gcc/testsuite/gcc.target/s390/vector/long-double-to-i8.c
  83521187ebf9ff9a612ae879e97d69c9  gcc/testsuite/gcc.target/s390/vector/long-double-to-u16.c
  c2be2c1316a4a96cdd7687813bff0db1  gcc/testsuite/gcc.target/s390/vector/long-double-to-u32.c
*************** bef5e60d91c914bf7de9023a9ab9f6b9  gcc/te
*** 86837,86855 ****
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
  4e3622409ea1c0cfdb63f541b7d010ff  gcc/testsuite/gcc.target/s390/vector/perm-merge.c
  e75326d3bdf5a961413690c8fac7722a  gcc/testsuite/gcc.target/s390/vector/perm-vpdi.c
  c9919c66d15a72dcfc7be8b1d30e4de1  gcc/testsuite/gcc.target/s390/vector/pr92950.c
  f37bb3697d3b5ebfcad463b8e97a87bb  gcc/testsuite/gcc.target/s390/vector/pr96128.c
! d8d373b959e09f57e68f224d8b198e24  gcc/testsuite/gcc.target/s390/vector/reverse-elements-1.c
! 5d70399b0d77bec3a0ceab2dba10b503  gcc/testsuite/gcc.target/s390/vector/reverse-elements-2.c
! 7c42e90b66cabcd388552991dbf63786  gcc/testsuite/gcc.target/s390/vector/reverse-elements-3.c
! c40aabedd52e7c4b3c11eb7052093bc1  gcc/testsuite/gcc.target/s390/vector/reverse-elements-4.c
! ea3b57216ea033ce23740807f2bca685  gcc/testsuite/gcc.target/s390/vector/reverse-elements-5.c
! 02cc60ea851f14013bd87b0930013b01  gcc/testsuite/gcc.target/s390/vector/reverse-elements-6.c
! 3894aa4ff09df918e5faf257ac5be6f5  gcc/testsuite/gcc.target/s390/vector/reverse-elements-7.c
  f8ddf98d23fed8fdb81fc0b6b8a34fa4  gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c
  79d159920f787c25a63fedb37633653d  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-double.c
  b2c713823b2df17078c09edbeb492644  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-float.c
! c6799efe253acc955e2b9dcf44075d99  gcc/testsuite/gcc.target/s390/vector/vcond-shift.c
  8fa9b68cf0196b4198ce00a304191744  gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c
  3a8a70f0c80bb59f0c702d13290890cd  gcc/testsuite/gcc.target/s390/vector/vec-abi-2.c
  9aa9bf85698e7ef21c53f1f2dd13ee75  gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c
--- 93371,93390 ----
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
  4e3622409ea1c0cfdb63f541b7d010ff  gcc/testsuite/gcc.target/s390/vector/perm-merge.c
  e75326d3bdf5a961413690c8fac7722a  gcc/testsuite/gcc.target/s390/vector/perm-vpdi.c
+ 99ccc85e66109866ebc14cca03ccf080  gcc/testsuite/gcc.target/s390/vector/pr118696.c
  c9919c66d15a72dcfc7be8b1d30e4de1  gcc/testsuite/gcc.target/s390/vector/pr92950.c
  f37bb3697d3b5ebfcad463b8e97a87bb  gcc/testsuite/gcc.target/s390/vector/pr96128.c
! 67db2f54d1bbc5e3fe9a6446f23bb055  gcc/testsuite/gcc.target/s390/vector/reverse-elements-1.c
! 9bfb70af8b7d07ad0ddb6be38531e041  gcc/testsuite/gcc.target/s390/vector/reverse-elements-2.c
! b9994ce66f834212427d6b89b47fa164  gcc/testsuite/gcc.target/s390/vector/reverse-elements-3.c
! 0f3223dcf424242abcba7e83951ca341  gcc/testsuite/gcc.target/s390/vector/reverse-elements-4.c
! 027e32331f2a4ca07387f42f351f411e  gcc/testsuite/gcc.target/s390/vector/reverse-elements-5.c
! 011e299936b209f9be40446ffd4ad601  gcc/testsuite/gcc.target/s390/vector/reverse-elements-6.c
! 71f38c733cfe1701499447b417c31af4  gcc/testsuite/gcc.target/s390/vector/reverse-elements-7.c
  f8ddf98d23fed8fdb81fc0b6b8a34fa4  gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c
  79d159920f787c25a63fedb37633653d  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-double.c
  b2c713823b2df17078c09edbeb492644  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-float.c
! a5e975cf66da220c860fe7a598ad059d  gcc/testsuite/gcc.target/s390/vector/vcond-shift.c
  8fa9b68cf0196b4198ce00a304191744  gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c
  3a8a70f0c80bb59f0c702d13290890cd  gcc/testsuite/gcc.target/s390/vector/vec-abi-2.c
  9aa9bf85698e7ef21c53f1f2dd13ee75  gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c
*************** ecbbab960980ce6717cd871016f94e2b  gcc/te
*** 86866,86899 ****
  00c677b45b031010d00b9a08464d45c2  gcc/testsuite/gcc.target/s390/vector/vec-abi-struct-1.c
  49445c57bcd7c342eb0107bc9b13d44e  gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c
  dd0d54001d5c0c89de9ecbfeca7d9163  gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-2.c
  18a30b21905501cfe3b583c13b3c756a  gcc/testsuite/gcc.target/s390/vector/vec-clobber-1.c
  f4f003702feb568dbc88ed411b2783e9  gcc/testsuite/gcc.target/s390/vector/vec-cmp-1.c
  6ad5106106095fa0defa7e045850f1a6  gcc/testsuite/gcc.target/s390/vector/vec-cmp-2.c
  3dea3f0d6272507210edfbf3ebbcbaee  gcc/testsuite/gcc.target/s390/vector/vec-cmpge.c
  836ebd984394712bf83085d3675ab39b  gcc/testsuite/gcc.target/s390/vector/vec-copysign-execute.c
! b2d0a0fe9bc2bcd1f0cf523b66f2c66f  gcc/testsuite/gcc.target/s390/vector/vec-copysign.c
  9c5a93306d2612b0adf7c1ca5650d94d  gcc/testsuite/gcc.target/s390/vector/vec-dbl-math-compile-1.c
  2dc59b8a133b416b4b70cb7e1ceff54c  gcc/testsuite/gcc.target/s390/vector/vec-expand-replicate.c
  b015126e7fb7ce82a8d5140428c4e192  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-1.c
  56c4b1af3959c56145108f2f9535cc8f  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-2.c
! f6942a3fba9c800bffade3bb79196479  gcc/testsuite/gcc.target/s390/vector/vec-genmask-1.c
  283b6978739165f436839fd30df4e9a4  gcc/testsuite/gcc.target/s390/vector/vec-genmask-2.c
! 1afa4a6190a988fb5a4fad356fbdd30d  gcc/testsuite/gcc.target/s390/vector/vec-init-1.c
  2c26f350a22588870ab9a7eca3102f56  gcc/testsuite/gcc.target/s390/vector/vec-init-2.c
  7d8a2a5d26b13c07f6024709aedd0742  gcc/testsuite/gcc.target/s390/vector/vec-init-3.c
  03cc140b84b037d2fe9c9c0be079e135  gcc/testsuite/gcc.target/s390/vector/vec-int-math-compile-1.c
  3f0e273f04c5175b1fdb100976e981c6  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-1.c
  36edbd8af8f3368a9b83ac5c88068cfc  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-2.c
  604b357bf5bdc9c25e2e900ed77fd858  gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c
  8de36944e18edbbcc735c9baad533f52  gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c
  0f81f716920700cba16fc05e47df6d56  gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c
  cea49877a5895e80cb13491b6cdfa2a2  gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c
  621242ae760f6d41066bd3c69c7a43d3  gcc/testsuite/gcc.target/s390/vector/vec-sum-across-no-lower-subreg-1.c
  09fe971e1ee2ac0d9627fec05f679430  gcc/testsuite/gcc.target/s390/vector/vec-types.h
  db4e2b1f6b0441e2f2f64b6e141245cd  gcc/testsuite/gcc.target/s390/vector/vec-vcond-1.c
! 3820ec0689c3262f947212e6f357e08c  gcc/testsuite/gcc.target/s390/vector/vec-vrepi-1.c
  b285e00f64be083356e248425ad42f69  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z14.c
  6a26b9ab98b26ffa11b6e80dd969b1d9  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z15.c
  9fc90b732df663117f1ed481b91525c3  gcc/testsuite/gcc.target/s390/vxe/bitops-1.c
  81fd996600cd4355d2efb4f18bd9a019  gcc/testsuite/gcc.target/s390/vxe/negfma-1.c
  85b5b9401d5ec3648501e2964032b8eb  gcc/testsuite/gcc.target/s390/vxe/popcount-1.c
--- 93401,93477 ----
  00c677b45b031010d00b9a08464d45c2  gcc/testsuite/gcc.target/s390/vector/vec-abi-struct-1.c
  49445c57bcd7c342eb0107bc9b13d44e  gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c
  dd0d54001d5c0c89de9ecbfeca7d9163  gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-2.c
+ b032ea34a9409f0482c317fa2ea7ebed  gcc/testsuite/gcc.target/s390/vector/vec-abs-emu.c
  18a30b21905501cfe3b583c13b3c756a  gcc/testsuite/gcc.target/s390/vector/vec-clobber-1.c
  f4f003702feb568dbc88ed411b2783e9  gcc/testsuite/gcc.target/s390/vector/vec-cmp-1.c
  6ad5106106095fa0defa7e045850f1a6  gcc/testsuite/gcc.target/s390/vector/vec-cmp-2.c
+ 43da7697d65673c784c720bf722bedd0  gcc/testsuite/gcc.target/s390/vector/vec-cmp-emu-1.c
+ ae9432c5505fa00769af44de635efdd0  gcc/testsuite/gcc.target/s390/vector/vec-cmp-emu-2.c
+ 84259de43489373910ab6e819d3c5f9d  gcc/testsuite/gcc.target/s390/vector/vec-cmp-emu-3.c
  3dea3f0d6272507210edfbf3ebbcbaee  gcc/testsuite/gcc.target/s390/vector/vec-cmpge.c
  836ebd984394712bf83085d3675ab39b  gcc/testsuite/gcc.target/s390/vector/vec-copysign-execute.c
! aa3e4f00345b3711bbfa1e907634ef21  gcc/testsuite/gcc.target/s390/vector/vec-copysign.c
  9c5a93306d2612b0adf7c1ca5650d94d  gcc/testsuite/gcc.target/s390/vector/vec-dbl-math-compile-1.c
  2dc59b8a133b416b4b70cb7e1ceff54c  gcc/testsuite/gcc.target/s390/vector/vec-expand-replicate.c
+ 169d707eaa516f15920084e04db14562  gcc/testsuite/gcc.target/s390/vector/vec-extend-1.c
+ 150569802f570140ee29c25fab8c7abc  gcc/testsuite/gcc.target/s390/vector/vec-extend-2.c
+ 45d2bf3bb41134f98627857b16cb3af3  gcc/testsuite/gcc.target/s390/vector/vec-extend-3.c
  b015126e7fb7ce82a8d5140428c4e192  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-1.c
  56c4b1af3959c56145108f2f9535cc8f  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-2.c
! 6e67081d0ff79468862afe5e9e976749  gcc/testsuite/gcc.target/s390/vector/vec-genmask-1.c
  283b6978739165f436839fd30df4e9a4  gcc/testsuite/gcc.target/s390/vector/vec-genmask-2.c
! b149a03c83e407974152eb2857fa31fd  gcc/testsuite/gcc.target/s390/vector/vec-init-1.c
  2c26f350a22588870ab9a7eca3102f56  gcc/testsuite/gcc.target/s390/vector/vec-init-2.c
  7d8a2a5d26b13c07f6024709aedd0742  gcc/testsuite/gcc.target/s390/vector/vec-init-3.c
  03cc140b84b037d2fe9c9c0be079e135  gcc/testsuite/gcc.target/s390/vector/vec-int-math-compile-1.c
+ 856674a75a8200b391a94aeaefe62dbc  gcc/testsuite/gcc.target/s390/vector/vec-max-emu.c
+ aac15cbd63557a6d4fce6fbf70f1e964  gcc/testsuite/gcc.target/s390/vector/vec-min-emu.c
  3f0e273f04c5175b1fdb100976e981c6  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-1.c
  36edbd8af8f3368a9b83ac5c88068cfc  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-2.c
  604b357bf5bdc9c25e2e900ed77fd858  gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c
  8de36944e18edbbcc735c9baad533f52  gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c
+ 0abbe44ec35d751d3115d16aa8369ae5  gcc/testsuite/gcc.target/s390/vector/vec-shift-10.c
+ 6fec2a086b59ab219eb8ca3127c359d7  gcc/testsuite/gcc.target/s390/vector/vec-shift-11.c
+ 06cd9a8158fb8890870abfd51e9f8a45  gcc/testsuite/gcc.target/s390/vector/vec-shift-12.c
  0f81f716920700cba16fc05e47df6d56  gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c
+ af682874af88a66002c54a8437d36123  gcc/testsuite/gcc.target/s390/vector/vec-shift-3.c
+ 2da08a3ef5fca62283290f965bbb3119  gcc/testsuite/gcc.target/s390/vector/vec-shift-4.c
+ 6063613c35c9826ee2af4d85adaf01d4  gcc/testsuite/gcc.target/s390/vector/vec-shift-5.c
+ 5f5df73810430c354487b81416302ae8  gcc/testsuite/gcc.target/s390/vector/vec-shift-6.c
+ 3a6c9979c90c5b194a20684cf063d6ae  gcc/testsuite/gcc.target/s390/vector/vec-shift-7.c
+ d0d204ca28a0aa961a233843116f0134  gcc/testsuite/gcc.target/s390/vector/vec-shift-8.c
+ bcfc6733c92c1dce3062cb8dbb5c0ac3  gcc/testsuite/gcc.target/s390/vector/vec-shift-9.c
  cea49877a5895e80cb13491b6cdfa2a2  gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c
  621242ae760f6d41066bd3c69c7a43d3  gcc/testsuite/gcc.target/s390/vector/vec-sum-across-no-lower-subreg-1.c
  09fe971e1ee2ac0d9627fec05f679430  gcc/testsuite/gcc.target/s390/vector/vec-types.h
  db4e2b1f6b0441e2f2f64b6e141245cd  gcc/testsuite/gcc.target/s390/vector/vec-vcond-1.c
! e915e81a9db9795216275eee74a33f5d  gcc/testsuite/gcc.target/s390/vector/vec-vrepi-1.c
! ca51f446315812c52bc99dc000ffadc2  gcc/testsuite/gcc.target/s390/vector/vgbm-double-1.c
! 0fd4f9996ae468c383f494ad4c08a757  gcc/testsuite/gcc.target/s390/vector/vgbm-float-1.c
! 696df75b2db2d6b893a046449dab8d6d  gcc/testsuite/gcc.target/s390/vector/vgbm-int128-1.c
! 0bbae6d51d025b306db80775b504dad5  gcc/testsuite/gcc.target/s390/vector/vgbm-integer-1.c
! 94da086476c2a00fdddc779858e78e3b  gcc/testsuite/gcc.target/s390/vector/vgbm-longdouble-1.c
! 4491522cf2439b9f449e33f75d95fe3e  gcc/testsuite/gcc.target/s390/vector/vgm-df-1.c
! fe08bebade581e6652104b69d817cb40  gcc/testsuite/gcc.target/s390/vector/vgm-di-1.c
! 739a6cc7eb5776652f533f4b3be7c4cd  gcc/testsuite/gcc.target/s390/vector/vgm-hi-1.c
! 805e39a4737703243fb12f2f0da4b49a  gcc/testsuite/gcc.target/s390/vector/vgm-int128-1.c
! 91976002d818276654aa6bef9e0944fe  gcc/testsuite/gcc.target/s390/vector/vgm-longdouble-1.c
! 9193b0d5c75f0d947fd2867bfd12ad22  gcc/testsuite/gcc.target/s390/vector/vgm-qi-1.c
! 57ced6dfa9776aefd2db91c518b01b6e  gcc/testsuite/gcc.target/s390/vector/vgm-sf-1.c
! 41d8ac568a2a22942ec82fc94f1d73d6  gcc/testsuite/gcc.target/s390/vector/vgm-si-1.c
! ed45b12947aabab368b0ba8d335b8eaf  gcc/testsuite/gcc.target/s390/vector/vgm-tf-1.c
! 3f4ea4ed90455e4cdfef8335820b3935  gcc/testsuite/gcc.target/s390/vector/vgm-ti-1.c
  b285e00f64be083356e248425ad42f69  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z14.c
  6a26b9ab98b26ffa11b6e80dd969b1d9  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z15.c
+ 0ab7b3f2f66d57d1f710645119abd9c8  gcc/testsuite/gcc.target/s390/vector/vrepi-df-1.c
+ adbb20a0e56bb3a1dbf866eb8fd4ea3b  gcc/testsuite/gcc.target/s390/vector/vrepi-di-1.c
+ 0db92032adcf796f525c2f3f5caf4074  gcc/testsuite/gcc.target/s390/vector/vrepi-hi-1.c
+ 5d8a321accc82107978636e43eb18bab  gcc/testsuite/gcc.target/s390/vector/vrepi-int128-1.c
+ 4320d2f1f814a26cefb684185c914496  gcc/testsuite/gcc.target/s390/vector/vrepi-qi-1.c
+ 87414c213c3df41da6af933578b5bc56  gcc/testsuite/gcc.target/s390/vector/vrepi-sf-1.c
+ f990f10de53e1369b87871a26897159d  gcc/testsuite/gcc.target/s390/vector/vrepi-si-1.c
+ ce97b2ba7b3288aba26dada4ff5fa50b  gcc/testsuite/gcc.target/s390/vector/vrepi-tf-1.c
+ b5858f375001f368a5271a2649982a89  gcc/testsuite/gcc.target/s390/vector/vrepi-ti-1.c
  9fc90b732df663117f1ed481b91525c3  gcc/testsuite/gcc.target/s390/vxe/bitops-1.c
  81fd996600cd4355d2efb4f18bd9a019  gcc/testsuite/gcc.target/s390/vxe/negfma-1.c
  85b5b9401d5ec3648501e2964032b8eb  gcc/testsuite/gcc.target/s390/vxe/popcount-1.c
*************** b285e00f64be083356e248425ad42f69  gcc/te
*** 86901,86906 ****
--- 93479,93501 ----
  033a2c21a5b436ea0be85925b64ad636  gcc/testsuite/gcc.target/s390/vxe2/vlbr-1.c
  4867ef0206fcafa68e9f50126f9f6acc  gcc/testsuite/gcc.target/s390/vxe2/vstbr-1.c
  e9c716b3b95aa7f755d2ffbc70fef96d  gcc/testsuite/gcc.target/s390/vxe2/vstbr-2.c
+ e78213fbc65718e1688bc47eec7d1929  gcc/testsuite/gcc.target/s390/vxe3/vd-1.c
+ 2a817cc2f7ee38f3d328772ee6b7ef59  gcc/testsuite/gcc.target/s390/vxe3/vd-2.c
+ e54c8148e7c43cb3dcd85f866133dce5  gcc/testsuite/gcc.target/s390/vxe3/vdl-1.c
+ 1e7312cad69c8cbcd5b09b64abee35e4  gcc/testsuite/gcc.target/s390/vxe3/vdl-2.c
+ ee489391a822742fc736fb6d5983d0a6  gcc/testsuite/gcc.target/s390/vxe3/veval-1.c
+ f78e2a96b7727f300d06cff3c5e43795  gcc/testsuite/gcc.target/s390/vxe3/veval-2.c
+ 36ae2e110af1cdfad8fbe2afeae8730b  gcc/testsuite/gcc.target/s390/vxe3/veval-3.c
+ 5f1cbb88b34de45798143e518de0cef2  gcc/testsuite/gcc.target/s390/vxe3/veval-4.c
+ ad77b6f8142f5ad8a2b8c8365395feb2  gcc/testsuite/gcc.target/s390/vxe3/veval-5.c
+ aac5649cc975178a16b484e5758d5970  gcc/testsuite/gcc.target/s390/vxe3/veval-6.c
+ a6cdae1e77d27ae63909aa0db5563bf0  gcc/testsuite/gcc.target/s390/vxe3/veval-7.c
+ d605341482467267380c5cbcd62494d4  gcc/testsuite/gcc.target/s390/vxe3/veval-8.c
+ 7a649ce4ce213c4029441dff98ae23c3  gcc/testsuite/gcc.target/s390/vxe3/veval-9.c
+ f23d6e61c5e5e6f2cf2c19a7fe9e0222  gcc/testsuite/gcc.target/s390/vxe3/vr-1.c
+ 48351644718dab15817591e6df60dfa0  gcc/testsuite/gcc.target/s390/vxe3/vr-2.c
+ ec3bf0a75e3c2708bf426ad398014945  gcc/testsuite/gcc.target/s390/vxe3/vrl-1.c
+ 392e832721d81631ba8b1df2b30b4779  gcc/testsuite/gcc.target/s390/vxe3/vrl-2.c
  dc95f2902df894907c8cd4f00960f509  gcc/testsuite/gcc.target/s390/warn-dynamicstack-1.c
  2bdca9d8b8f8e9f0aa4cc4029ce548d1  gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c
  7c087406872c6516a684c368993dcfea  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-eq.c
*************** dcc5ed5b3edf72f429ca266357c415da  gcc/te
*** 86909,86918 ****
  02d986ab48994194ddc04258f4564aec  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-le.c
  cff015e0826212242aca87d52202da4b  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-lt.c
  23de00604ff742b6dc36beb2ae1e17de  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-ordered.c
! 49342fd1a765aa89b204057b41b8cf06  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-uneq.c
  bf463ecf5d2c2f224b5d2b86f9a93497  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-unordered.c
  b8420772bf28568b3da111bdba2a4f48  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c
! 5bbb01fa22ec78e47839a2ad680a77f7  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c
  c476c802be2369c60be9a00406810ba0  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c
  7fc4f6a1e3be890cf53a0b021c848228  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c
  42cf60f684f6ea0a28f435b783b0aba8  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c
--- 93504,93513 ----
  02d986ab48994194ddc04258f4564aec  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-le.c
  cff015e0826212242aca87d52202da4b  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-lt.c
  23de00604ff742b6dc36beb2ae1e17de  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-ordered.c
! f4bf44beb2b1e5e45bd7b78a6b2d1e6f  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-uneq.c
  bf463ecf5d2c2f224b5d2b86f9a93497  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-unordered.c
  b8420772bf28568b3da111bdba2a4f48  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c
! 4101eef6c5bb779def3f2268bbe223d3  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c
  c476c802be2369c60be9a00406810ba0  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c
  7fc4f6a1e3be890cf53a0b021c848228  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c
  42cf60f684f6ea0a28f435b783b0aba8  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c
*************** dfdee22bbb3d3831391e4ca7b47d8e38  gcc/te
*** 86939,86945 ****
  889237fd9392e06b63cfd4e707eb69f6  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-le.c
  28ea97c82fd03e3474129f6b86a83832  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-lt.c
  f902cd7f9c25180b19317cc4af17108d  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-ordered.c
! b1f026c618513126d1fae644fa441dac  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-uneq.c
  31fec9af8c96f88d045d2b2a32617a08  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-unordered.c
  6f57ec063264fec8decb03c1a5b79da6  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c
  69b3c3664eb5ceccdfb73e846e55eb99  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-ge.c
--- 93534,93540 ----
  889237fd9392e06b63cfd4e707eb69f6  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-le.c
  28ea97c82fd03e3474129f6b86a83832  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-lt.c
  f902cd7f9c25180b19317cc4af17108d  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-ordered.c
! 0cce26baa655c08eb79761402c761f1a  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-uneq.c
  31fec9af8c96f88d045d2b2a32617a08  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-unordered.c
  6f57ec063264fec8decb03c1a5b79da6  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c
  69b3c3664eb5ceccdfb73e846e55eb99  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-ge.c
*************** f42e228f92a8dfb9e1ded9cb20bc6622  gcc/te
*** 86984,86990 ****
  10f7d5a3497b5a370733e6befba37671  gcc/testsuite/gcc.target/s390/zvector/vec-float-compile.c
  a7c50aed157254144c641530b0c9fb79  gcc/testsuite/gcc.target/s390/zvector/vec-floate.c
  a7f2bd9fee8c03add8265ce21e47cb8f  gcc/testsuite/gcc.target/s390/zvector/vec-genbytemask-1.c
! f0adb63cec7e7cc8928e697e9eb9fc6c  gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
  9623479451ea4dfc950b385aedacab2e  gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c
  f4cb204998e87c077c80c605602192e6  gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c
  b8c82bd9c3e4fcce2e4a5f465a78b6be  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c
--- 93579,93585 ----
  10f7d5a3497b5a370733e6befba37671  gcc/testsuite/gcc.target/s390/zvector/vec-float-compile.c
  a7c50aed157254144c641530b0c9fb79  gcc/testsuite/gcc.target/s390/zvector/vec-floate.c
  a7f2bd9fee8c03add8265ce21e47cb8f  gcc/testsuite/gcc.target/s390/zvector/vec-genbytemask-1.c
! ee286996755273b686eead865e4d22b2  gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
  9623479451ea4dfc950b385aedacab2e  gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c
  f4cb204998e87c077c80c605602192e6  gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c
  b8c82bd9c3e4fcce2e4a5f465a78b6be  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c
*************** ca3a119c232d2f9c4175fb19938beae4  gcc/te
*** 87012,87019 ****
  7bd67a1b15dd481819c32248a1c58eb4  gcc/testsuite/gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c
  19d7537a44d0e7780a283ce6c06de160  gcc/testsuite/gcc.target/s390/zvector/vec-signed-compile.c
  47ea13b4c871af94c48987fd51cab748  gcc/testsuite/gcc.target/s390/zvector/vec-sldw.c
! bf9a16bf1a11dc3b1eaf16828c088c55  gcc/testsuite/gcc.target/s390/zvector/vec-splat-1.c
! fca18383b3db4c77fba6885b30964e40  gcc/testsuite/gcc.target/s390/zvector/vec-splat-2.c
  f9fc274321010fadf7fa7d7821f483f8  gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c
  e0da366fde5ff03e522992859eec8edf  gcc/testsuite/gcc.target/s390/zvector/vec-types.h
  e06b075af962a2fe7d1a02398d455fc2  gcc/testsuite/gcc.target/s390/zvector/vec-unsigned-compile.c
--- 93607,93614 ----
  7bd67a1b15dd481819c32248a1c58eb4  gcc/testsuite/gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c
  19d7537a44d0e7780a283ce6c06de160  gcc/testsuite/gcc.target/s390/zvector/vec-signed-compile.c
  47ea13b4c871af94c48987fd51cab748  gcc/testsuite/gcc.target/s390/zvector/vec-sldw.c
! c6411ea846853dfd4c3fb8f8b8bde619  gcc/testsuite/gcc.target/s390/zvector/vec-splat-1.c
! 1b6ca0252481e9cc34e3ac382b6470aa  gcc/testsuite/gcc.target/s390/zvector/vec-splat-2.c
  f9fc274321010fadf7fa7d7821f483f8  gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c
  e0da366fde5ff03e522992859eec8edf  gcc/testsuite/gcc.target/s390/zvector/vec-types.h
  e06b075af962a2fe7d1a02398d455fc2  gcc/testsuite/gcc.target/s390/zvector/vec-unsigned-compile.c
*************** b69114566695ef2ec08ec3c5d87c6076  gcc/te
*** 87095,87101 ****
  00386dee064348c5161e078912a31eb2  gcc/testsuite/gcc.target/sh/pr51244-12.c
  bd9a63b48e8cf4295520f3094bb63546  gcc/testsuite/gcc.target/sh/pr51244-13.c
  af02d1869372830ec86b8a1b72fe1741  gcc/testsuite/gcc.target/sh/pr51244-14.c
! b90b3ea30daa3155f2f013e8b03b4905  gcc/testsuite/gcc.target/sh/pr51244-15.c
  edf7b3ac6a922fa0ac818384392a4ae2  gcc/testsuite/gcc.target/sh/pr51244-17.c
  63f494eb0c77b6672de13219c5eabd4c  gcc/testsuite/gcc.target/sh/pr51244-18.c
  13e52fb72118f422f094f08bf076f58c  gcc/testsuite/gcc.target/sh/pr51244-19.c
--- 93690,93696 ----
  00386dee064348c5161e078912a31eb2  gcc/testsuite/gcc.target/sh/pr51244-12.c
  bd9a63b48e8cf4295520f3094bb63546  gcc/testsuite/gcc.target/sh/pr51244-13.c
  af02d1869372830ec86b8a1b72fe1741  gcc/testsuite/gcc.target/sh/pr51244-14.c
! d3592273b4773e1f14fb8cf9426a8dc8  gcc/testsuite/gcc.target/sh/pr51244-15.c
  edf7b3ac6a922fa0ac818384392a4ae2  gcc/testsuite/gcc.target/sh/pr51244-17.c
  63f494eb0c77b6672de13219c5eabd4c  gcc/testsuite/gcc.target/sh/pr51244-18.c
  13e52fb72118f422f094f08bf076f58c  gcc/testsuite/gcc.target/sh/pr51244-19.c
*************** e92dcce39614d17e78e2f38f41c29ea1  gcc/te
*** 87113,87141 ****
  a7e999b54211decb6832d83041b96e14  gcc/testsuite/gcc.target/sh/pr52483-3.c
  ad55d4a1a53d58fb7a8b352c8a889914  gcc/testsuite/gcc.target/sh/pr52483-4.c
  1f836dc13a746565712e4a9119e79014  gcc/testsuite/gcc.target/sh/pr52483-5.c
! 418679789731a90a6bf343b3f9ca5072  gcc/testsuite/gcc.target/sh/pr52933-1.c
  3261d076e9196daff201067e1b2298cd  gcc/testsuite/gcc.target/sh/pr52933-2.c
  fac28bf1babfd0652fcd45bd0f7be2cd  gcc/testsuite/gcc.target/sh/pr52933-3.c
  7f85ddb8503596796a9c51000996c22e  gcc/testsuite/gcc.target/sh/pr53511-1.c
! e3669aab38a1879a3c2ebf3db53715d0  gcc/testsuite/gcc.target/sh/pr53512-1.c
! 951f4a1622f6b8d005466511971e6df5  gcc/testsuite/gcc.target/sh/pr53512-2.c
! e44c208da7d2cfb0e2927156056aaac5  gcc/testsuite/gcc.target/sh/pr53512-3.c
! 33f78484623e48b3d34a1dac75f4b4f1  gcc/testsuite/gcc.target/sh/pr53512-4.c
  5813406c0e774b20360eed324c62676f  gcc/testsuite/gcc.target/sh/pr53513-1.c
  ec34f660c955ad1842c59e53dfae4fdb  gcc/testsuite/gcc.target/sh/pr53568-1.c
  e1059cc033aa91fc2c01449cdbe419bc  gcc/testsuite/gcc.target/sh/pr53976-1.c
  e9f44b676b9ba745e41994936f3978fa  gcc/testsuite/gcc.target/sh/pr53987-1.c
  a29a3ca9844c537805fdea29bc6d393a  gcc/testsuite/gcc.target/sh/pr53988-1.c
  afac6d20e33b6a8fe9636a4a68d97023  gcc/testsuite/gcc.target/sh/pr53988.c
! 447da60e72415432d21bce87d27fa9ca  gcc/testsuite/gcc.target/sh/pr54089-1.c
  6f5bc500fdc0ab4426015fcde4a20568  gcc/testsuite/gcc.target/sh/pr54089-10.c
  27c95a272c5780c98a488fd75891922e  gcc/testsuite/gcc.target/sh/pr54089-2.c
  40f7be4159069b6d64baefdf1debb9d1  gcc/testsuite/gcc.target/sh/pr54089-3.c
  7defba5fc6c3dbf0f5241bd7986ef3d9  gcc/testsuite/gcc.target/sh/pr54089-4.c
  1277cb372feed03637a60500db617e0e  gcc/testsuite/gcc.target/sh/pr54089-6.c
! a3e8624b35d642efd5cda1300d83370d  gcc/testsuite/gcc.target/sh/pr54089-7.c
! da2b2748c08b72520151602020e8790b  gcc/testsuite/gcc.target/sh/pr54089-8.c
! 108b1dfa1fed476068d7c8c906a0c1ab  gcc/testsuite/gcc.target/sh/pr54089-9.c
  66f542966f7b56b2845c0e4bf1c278cc  gcc/testsuite/gcc.target/sh/pr54236-1.c
  061b72638553914ad6b7591494869f6e  gcc/testsuite/gcc.target/sh/pr54236-2.c
  2217adb687f17b2a8d5e9bc1ac45e0fd  gcc/testsuite/gcc.target/sh/pr54236-3.c
--- 93708,93736 ----
  a7e999b54211decb6832d83041b96e14  gcc/testsuite/gcc.target/sh/pr52483-3.c
  ad55d4a1a53d58fb7a8b352c8a889914  gcc/testsuite/gcc.target/sh/pr52483-4.c
  1f836dc13a746565712e4a9119e79014  gcc/testsuite/gcc.target/sh/pr52483-5.c
! ed029b3bdea3687f2aa67f4bd0cff5d7  gcc/testsuite/gcc.target/sh/pr52933-1.c
  3261d076e9196daff201067e1b2298cd  gcc/testsuite/gcc.target/sh/pr52933-2.c
  fac28bf1babfd0652fcd45bd0f7be2cd  gcc/testsuite/gcc.target/sh/pr52933-3.c
  7f85ddb8503596796a9c51000996c22e  gcc/testsuite/gcc.target/sh/pr53511-1.c
! 661274c5c0c9f237bde5d4f3dd4a1b1d  gcc/testsuite/gcc.target/sh/pr53512-1.c
! cf4c685ca6ca90610d76f7e2cb54cbd4  gcc/testsuite/gcc.target/sh/pr53512-2.c
! fff5bf2c10187624028b8df5aace99c8  gcc/testsuite/gcc.target/sh/pr53512-3.c
! 3ae83c0a1d362d25838643682b14e1b6  gcc/testsuite/gcc.target/sh/pr53512-4.c
  5813406c0e774b20360eed324c62676f  gcc/testsuite/gcc.target/sh/pr53513-1.c
  ec34f660c955ad1842c59e53dfae4fdb  gcc/testsuite/gcc.target/sh/pr53568-1.c
  e1059cc033aa91fc2c01449cdbe419bc  gcc/testsuite/gcc.target/sh/pr53976-1.c
  e9f44b676b9ba745e41994936f3978fa  gcc/testsuite/gcc.target/sh/pr53987-1.c
  a29a3ca9844c537805fdea29bc6d393a  gcc/testsuite/gcc.target/sh/pr53988-1.c
  afac6d20e33b6a8fe9636a4a68d97023  gcc/testsuite/gcc.target/sh/pr53988.c
! 499f05186219b9fd706f908e8b01af9f  gcc/testsuite/gcc.target/sh/pr54089-1.c
  6f5bc500fdc0ab4426015fcde4a20568  gcc/testsuite/gcc.target/sh/pr54089-10.c
  27c95a272c5780c98a488fd75891922e  gcc/testsuite/gcc.target/sh/pr54089-2.c
  40f7be4159069b6d64baefdf1debb9d1  gcc/testsuite/gcc.target/sh/pr54089-3.c
  7defba5fc6c3dbf0f5241bd7986ef3d9  gcc/testsuite/gcc.target/sh/pr54089-4.c
  1277cb372feed03637a60500db617e0e  gcc/testsuite/gcc.target/sh/pr54089-6.c
! 3d545551107f13296a6f0fb46b909701  gcc/testsuite/gcc.target/sh/pr54089-7.c
! 83f0e6260fee9d3b8c2ef58d42827074  gcc/testsuite/gcc.target/sh/pr54089-8.c
! f2f91b5ec18907495ab1eec7610f1734  gcc/testsuite/gcc.target/sh/pr54089-9.c
  66f542966f7b56b2845c0e4bf1c278cc  gcc/testsuite/gcc.target/sh/pr54236-1.c
  061b72638553914ad6b7591494869f6e  gcc/testsuite/gcc.target/sh/pr54236-2.c
  2217adb687f17b2a8d5e9bc1ac45e0fd  gcc/testsuite/gcc.target/sh/pr54236-3.c
*************** cfc2a9a1d84ca3daaf2daa138a4954a3  gcc/te
*** 87143,87153 ****
  8d8ed377061cbfdec118e736ef175028  gcc/testsuite/gcc.target/sh/pr54236-5.c
  dedd2dc7fb79b5f5e1587fdb790bc496  gcc/testsuite/gcc.target/sh/pr54236-6.c
  9ccc5075b34bbcaadd147c465503a9dd  gcc/testsuite/gcc.target/sh/pr54386.c
- 6e72b9c6efdf546b401a3a8e7ee8aa51  gcc/testsuite/gcc.target/sh/pr54602-1.c
  ae171bbce069c1fb2c8bc0068d9a43c5  gcc/testsuite/gcc.target/sh/pr54602-2.c
  64f39d9458945549a6b5cdbce204ead2  gcc/testsuite/gcc.target/sh/pr54602-3.c
  59f963e378bb47e824a0f816df11f27f  gcc/testsuite/gcc.target/sh/pr54602-4.c
! f5fd4339135ce30492f403363b36bd27  gcc/testsuite/gcc.target/sh/pr54680.c
  fe5df6f0e33271d3fecad425bfd6ff0c  gcc/testsuite/gcc.target/sh/pr54685.c
  6de20ba59e95fed905278e2d26246981  gcc/testsuite/gcc.target/sh/pr54760-1.c
  f01a6228581302d6d97b59085e8b8b1a  gcc/testsuite/gcc.target/sh/pr54760-2.c
--- 93738,93747 ----
  8d8ed377061cbfdec118e736ef175028  gcc/testsuite/gcc.target/sh/pr54236-5.c
  dedd2dc7fb79b5f5e1587fdb790bc496  gcc/testsuite/gcc.target/sh/pr54236-6.c
  9ccc5075b34bbcaadd147c465503a9dd  gcc/testsuite/gcc.target/sh/pr54386.c
  ae171bbce069c1fb2c8bc0068d9a43c5  gcc/testsuite/gcc.target/sh/pr54602-2.c
  64f39d9458945549a6b5cdbce204ead2  gcc/testsuite/gcc.target/sh/pr54602-3.c
  59f963e378bb47e824a0f816df11f27f  gcc/testsuite/gcc.target/sh/pr54602-4.c
! 759d0e456baef01866f5e85b4bae9786  gcc/testsuite/gcc.target/sh/pr54680.c
  fe5df6f0e33271d3fecad425bfd6ff0c  gcc/testsuite/gcc.target/sh/pr54685.c
  6de20ba59e95fed905278e2d26246981  gcc/testsuite/gcc.target/sh/pr54760-1.c
  f01a6228581302d6d97b59085e8b8b1a  gcc/testsuite/gcc.target/sh/pr54760-2.c
*************** d3b27c220a0e1aa87b3cf870405b3ef5  gcc/te
*** 87173,87179 ****
  6f228716f948f58d78ffb0745b9c2589  gcc/testsuite/gcc.target/sh/pr63260.c
  dd022a0242724a06db264d6e13982998  gcc/testsuite/gcc.target/sh/pr64345-1.c
  a478446811d6b979a18a17f4ff64901e  gcc/testsuite/gcc.target/sh/pr64345-2.c
! a7e1f79cd898be2c9b01bb58a5e48385  gcc/testsuite/gcc.target/sh/pr64366.c
  bb9e1708fea25409b27471e2af1254de  gcc/testsuite/gcc.target/sh/pr64507.c
  1682e3ee6996c505844b05871700df46  gcc/testsuite/gcc.target/sh/pr64659-0.h
  06f31612372bd44eff059fbab6d26af6  gcc/testsuite/gcc.target/sh/pr64659-1.c
--- 93767,93773 ----
  6f228716f948f58d78ffb0745b9c2589  gcc/testsuite/gcc.target/sh/pr63260.c
  dd022a0242724a06db264d6e13982998  gcc/testsuite/gcc.target/sh/pr64345-1.c
  a478446811d6b979a18a17f4ff64901e  gcc/testsuite/gcc.target/sh/pr64345-2.c
! 9e779eeef37eec7be469b401bae49c51  gcc/testsuite/gcc.target/sh/pr64366.c
  bb9e1708fea25409b27471e2af1254de  gcc/testsuite/gcc.target/sh/pr64507.c
  1682e3ee6996c505844b05871700df46  gcc/testsuite/gcc.target/sh/pr64659-0.h
  06f31612372bd44eff059fbab6d26af6  gcc/testsuite/gcc.target/sh/pr64659-1.c
*************** db7a02bef0ea1d74a99297c9ee53c525  gcc/te
*** 87206,87212 ****
  b5f624677b85b090003118209ef93244  gcc/testsuite/gcc.target/sh/rte-delay-slot.c
  dadf2783f39a6e7573222cafcc2dee03  gcc/testsuite/gcc.target/sh/sh-relax-vxworks.c
  e21f6ad0f71c5acbd58d0b5dc9016512  gcc/testsuite/gcc.target/sh/sh-relax.c
! 6680d38cac8cf5ca5100ffcb5ff26a49  gcc/testsuite/gcc.target/sh/sh.exp
  76c4b37de6ed467c955dc2c4e605bd74  gcc/testsuite/gcc.target/sh/sh2a-band.c
  6ca867fd045b678140e16f1d2034e672  gcc/testsuite/gcc.target/sh/sh2a-bclr.c
  65b6c86dd5734b5e9047d04326b96065  gcc/testsuite/gcc.target/sh/sh2a-bclrmem.c
--- 93800,93806 ----
  b5f624677b85b090003118209ef93244  gcc/testsuite/gcc.target/sh/rte-delay-slot.c
  dadf2783f39a6e7573222cafcc2dee03  gcc/testsuite/gcc.target/sh/sh-relax-vxworks.c
  e21f6ad0f71c5acbd58d0b5dc9016512  gcc/testsuite/gcc.target/sh/sh-relax.c
! 34740a80470e0a15033e008fc5f9805e  gcc/testsuite/gcc.target/sh/sh.exp
  76c4b37de6ed467c955dc2c4e605bd74  gcc/testsuite/gcc.target/sh/sh2a-band.c
  6ca867fd045b678140e16f1d2034e672  gcc/testsuite/gcc.target/sh/sh2a-bclr.c
  65b6c86dd5734b5e9047d04326b96065  gcc/testsuite/gcc.target/sh/sh2a-bclrmem.c
*************** a2644837d5da1aa36c1bcfeab14bd34b  gcc/te
*** 87245,87251 ****
  b238f0c893c816effc7e00714687e793  gcc/testsuite/gcc.target/sh/torture/pr70416.c
  f2da248599c9251df57c4afab66c5b3d  gcc/testsuite/gcc.target/sh/torture/pragma-isr.c
  e59de62c79e4620b848baee27d159b9c  gcc/testsuite/gcc.target/sh/torture/pragma-isr2.c
! af85dfe7bc8195b5b1ed075028b23ba5  gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
  7fafc38036a01faa4f72f34d7eaaad89  gcc/testsuite/gcc.target/sh/torture/strncmp.c
  d8726234ff72b0fa25ab40cc3fe6d24b  gcc/testsuite/gcc.target/sparc/20001013-1.c
  d0d646cfe216eb6e3c43fb56cb548ea0  gcc/testsuite/gcc.target/sparc/20001101-1.c
--- 93839,93845 ----
  b238f0c893c816effc7e00714687e793  gcc/testsuite/gcc.target/sh/torture/pr70416.c
  f2da248599c9251df57c4afab66c5b3d  gcc/testsuite/gcc.target/sh/torture/pragma-isr.c
  e59de62c79e4620b848baee27d159b9c  gcc/testsuite/gcc.target/sh/torture/pragma-isr2.c
! 37de8313e5db69c0638a0e5a6ae95d0a  gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
  7fafc38036a01faa4f72f34d7eaaad89  gcc/testsuite/gcc.target/sh/torture/strncmp.c
  d8726234ff72b0fa25ab40cc3fe6d24b  gcc/testsuite/gcc.target/sparc/20001013-1.c
  d0d646cfe216eb6e3c43fb56cb548ea0  gcc/testsuite/gcc.target/sparc/20001101-1.c
*************** bf95d536cbad4db92f264aa740abbbbc  gcc/te
*** 87264,87273 ****
  3b3205cedf38a33c506ea5c4414d489f  gcc/testsuite/gcc.target/sparc/20181129-2.c
  3f593e1ef43ebce309fa2b2033f8be77  gcc/testsuite/gcc.target/sparc/20210917-1.c
  0c6705acc2a655d06368478b465dca00  gcc/testsuite/gcc.target/sparc/20220510-1.c
! 40321901935127f9cf34a34197b9b48a  gcc/testsuite/gcc.target/sparc/20230328-1.c
  c2f3fa5b3477e7057e2c90dc5425c4c9  gcc/testsuite/gcc.target/sparc/20230328-2.c
  49b5e11c8a86f6c891f68583037323b4  gcc/testsuite/gcc.target/sparc/20230328-3.c
! 6a7256be670eb611556c4ac0a711fa1b  gcc/testsuite/gcc.target/sparc/20230328-4.c
  beb5f32bbfe67092637981daab63c0e9  gcc/testsuite/gcc.target/sparc/20230425-1.c
  1873266d62e690e552ba3673802f1527  gcc/testsuite/gcc.target/sparc/20230607-1.c
  44373c57181608413fc07f3ec0e2ad6e  gcc/testsuite/gcc.target/sparc/align.c
--- 93858,93867 ----
  3b3205cedf38a33c506ea5c4414d489f  gcc/testsuite/gcc.target/sparc/20181129-2.c
  3f593e1ef43ebce309fa2b2033f8be77  gcc/testsuite/gcc.target/sparc/20210917-1.c
  0c6705acc2a655d06368478b465dca00  gcc/testsuite/gcc.target/sparc/20220510-1.c
! 05bc768857ed9e13506df928bf750100  gcc/testsuite/gcc.target/sparc/20230328-1.c
  c2f3fa5b3477e7057e2c90dc5425c4c9  gcc/testsuite/gcc.target/sparc/20230328-2.c
  49b5e11c8a86f6c891f68583037323b4  gcc/testsuite/gcc.target/sparc/20230328-3.c
! b9ae213b7e5840b219cbc87cf4e377ca  gcc/testsuite/gcc.target/sparc/20230328-4.c
  beb5f32bbfe67092637981daab63c0e9  gcc/testsuite/gcc.target/sparc/20230425-1.c
  1873266d62e690e552ba3673802f1527  gcc/testsuite/gcc.target/sparc/20230607-1.c
  44373c57181608413fc07f3ec0e2ad6e  gcc/testsuite/gcc.target/sparc/align.c
*************** e3bbb5df23b96906f0710b753c21626e  gcc/te
*** 87288,87294 ****
  c2debdf6ea512d774a7e4b498e4a6782  gcc/testsuite/gcc.target/sparc/fandnot.c
  2bb72ee0cebaf90f38c9223a9d6ceda9  gcc/testsuite/gcc.target/sparc/fandnots.c
  ac06a3b7853caffeb81a94b6156bdbdd  gcc/testsuite/gcc.target/sparc/fands.c
! 72734d3367f42c27c7f68d1fdc10cb58  gcc/testsuite/gcc.target/sparc/fcmp.c
  409d175201b9f9133e194afc049cf55c  gcc/testsuite/gcc.target/sparc/fexpand-2.c
  9dad8640f220b3cdedf1ec7bf1411ffe  gcc/testsuite/gcc.target/sparc/fexpand.c
  b346cfd805f06d6ceb4716571fce0a0c  gcc/testsuite/gcc.target/sparc/fhalve.c
--- 93882,93888 ----
  c2debdf6ea512d774a7e4b498e4a6782  gcc/testsuite/gcc.target/sparc/fandnot.c
  2bb72ee0cebaf90f38c9223a9d6ceda9  gcc/testsuite/gcc.target/sparc/fandnots.c
  ac06a3b7853caffeb81a94b6156bdbdd  gcc/testsuite/gcc.target/sparc/fands.c
! b88c7bd4af75d35a17e24d1dd855e0fb  gcc/testsuite/gcc.target/sparc/fcmp.c
  409d175201b9f9133e194afc049cf55c  gcc/testsuite/gcc.target/sparc/fexpand-2.c
  9dad8640f220b3cdedf1ec7bf1411ffe  gcc/testsuite/gcc.target/sparc/fexpand.c
  b346cfd805f06d6ceb4716571fce0a0c  gcc/testsuite/gcc.target/sparc/fhalve.c
*************** c39236278a8111634fcb6462cfebe1cc  gcc/te
*** 87326,87332 ****
  6e83e56e724cc8aa4d445fe1a6625975  gcc/testsuite/gcc.target/sparc/fpsub32.c
  0882cc94ca45d8c30339169d1c900c8d  gcc/testsuite/gcc.target/sparc/fpsub32s.c
  d17416fa77418e74451a73e4dad50f81  gcc/testsuite/gcc.target/sparc/fshift.c
! 073816b0193cc1bb2eb7da9fdd7fee8c  gcc/testsuite/gcc.target/sparc/fucmp.c
  6bbcba2560757f390910b52b1f2bbcd4  gcc/testsuite/gcc.target/sparc/fxnor.c
  990393d30e644786d30c4af5253b1905  gcc/testsuite/gcc.target/sparc/fxnors.c
  8326f2b76060f0fdf99bb47be5b69980  gcc/testsuite/gcc.target/sparc/fxor.c
--- 93920,93926 ----
  6e83e56e724cc8aa4d445fe1a6625975  gcc/testsuite/gcc.target/sparc/fpsub32.c
  0882cc94ca45d8c30339169d1c900c8d  gcc/testsuite/gcc.target/sparc/fpsub32s.c
  d17416fa77418e74451a73e4dad50f81  gcc/testsuite/gcc.target/sparc/fshift.c
! 478d19959d3da71abfdc9954ee0d995b  gcc/testsuite/gcc.target/sparc/fucmp.c
  6bbcba2560757f390910b52b1f2bbcd4  gcc/testsuite/gcc.target/sparc/fxnor.c
  990393d30e644786d30c4af5253b1905  gcc/testsuite/gcc.target/sparc/fxnors.c
  8326f2b76060f0fdf99bb47be5b69980  gcc/testsuite/gcc.target/sparc/fxor.c
*************** a6501f830b7d1b9e944beb9e5db075f6  gcc/te
*** 87337,87343 ****
  81c3ac360590e02354b69b4a77b74588  gcc/testsuite/gcc.target/sparc/mnofpu.c
  18a32248439dc27f2b3fa2973aba98a9  gcc/testsuite/gcc.target/sparc/movcc-1.c
  8c00c3335d253fde289d5e07676b4586  gcc/testsuite/gcc.target/sparc/movcc-2.c
! 06ebc1bfb7ebac800bc8e13a4c96ecdc  gcc/testsuite/gcc.target/sparc/niagara7-align.c
  27bc21317eeddefa4b9cc41e1c4e363c  gcc/testsuite/gcc.target/sparc/noresult.c
  a54091faea7a1abd6cd4fbd0ef1b4336  gcc/testsuite/gcc.target/sparc/overflow-1.c
  d0fc65bbbe891276a96818aa810ee61a  gcc/testsuite/gcc.target/sparc/overflow-2.c
--- 93931,93937 ----
  81c3ac360590e02354b69b4a77b74588  gcc/testsuite/gcc.target/sparc/mnofpu.c
  18a32248439dc27f2b3fa2973aba98a9  gcc/testsuite/gcc.target/sparc/movcc-1.c
  8c00c3335d253fde289d5e07676b4586  gcc/testsuite/gcc.target/sparc/movcc-2.c
! 405d1a2303d0a3f616e9aa1621f32226  gcc/testsuite/gcc.target/sparc/niagara7-align.c
  27bc21317eeddefa4b9cc41e1c4e363c  gcc/testsuite/gcc.target/sparc/noresult.c
  a54091faea7a1abd6cd4fbd0ef1b4336  gcc/testsuite/gcc.target/sparc/overflow-1.c
  d0fc65bbbe891276a96818aa810ee61a  gcc/testsuite/gcc.target/sparc/overflow-2.c
*************** d0fc65bbbe891276a96818aa810ee61a  gcc/te
*** 87352,87357 ****
--- 93946,93952 ----
  115b647bf08ed17e4f28d76c34f417bb  gcc/testsuite/gcc.target/sparc/pdistn.c
  7eb4e93dbabd079b5259cf98c5fb4204  gcc/testsuite/gcc.target/sparc/popc-1.c
  e748c6edab5b1a7e97c92b57040f0ecd  gcc/testsuite/gcc.target/sparc/popc-2.c
+ 7355b66ecaefe2480cc7a7375d9fafd3  gcc/testsuite/gcc.target/sparc/pr118529.c
  964da12c74afacebb3dee347712053d5  gcc/testsuite/gcc.target/sparc/rdgsr.c
  91c110264bcd29879216c151973503aa  gcc/testsuite/gcc.target/sparc/setcc-1.c
  7ab7d3127e0b418280e16e393fd2f160  gcc/testsuite/gcc.target/sparc/setcc-2.c
*************** e5c267912e5c8f2e18ebb9ce814789ba  gcc/te
*** 87362,87368 ****
  358dc199e97ca39bd8ebbefa73ced70c  gcc/testsuite/gcc.target/sparc/setcc-7.c
  7064161cb3e6285f9215b55421a4fc6c  gcc/testsuite/gcc.target/sparc/setcc-8.c
  c51a16c76fd1df5c182c5e6b77d1acfa  gcc/testsuite/gcc.target/sparc/setcc-9.c
! 03c5ea18421389015716cf5cd2845cf3  gcc/testsuite/gcc.target/sparc/setjmp-1.c
  438ea8b2cc3dd028f6b33b12541b2b7f  gcc/testsuite/gcc.target/sparc/sibcall-dslot.c
  b7889b31cd2ce76e65842ca26b253777  gcc/testsuite/gcc.target/sparc/small-struct-1.c
  9ffd7b94418f62e4bc1700c00a93b9ff  gcc/testsuite/gcc.target/sparc/sparc-align-1.c
--- 93957,93963 ----
  358dc199e97ca39bd8ebbefa73ced70c  gcc/testsuite/gcc.target/sparc/setcc-7.c
  7064161cb3e6285f9215b55421a4fc6c  gcc/testsuite/gcc.target/sparc/setcc-8.c
  c51a16c76fd1df5c182c5e6b77d1acfa  gcc/testsuite/gcc.target/sparc/setcc-9.c
! 90b1f7b71b95624e3baf3a7c71e032b5  gcc/testsuite/gcc.target/sparc/setjmp-1.c
  438ea8b2cc3dd028f6b33b12541b2b7f  gcc/testsuite/gcc.target/sparc/sibcall-dslot.c
  b7889b31cd2ce76e65842ca26b253777  gcc/testsuite/gcc.target/sparc/small-struct-1.c
  9ffd7b94418f62e4bc1700c00a93b9ff  gcc/testsuite/gcc.target/sparc/sparc-align-1.c
*************** eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/te
*** 87372,87391 ****
  919c260d2df3ae743134a221024569ee  gcc/testsuite/gcc.target/sparc/sparc-getcontext-1.c
  7b56bd143de0aa8d6fb581f22ab45cb2  gcc/testsuite/gcc.target/sparc/sparc-loop-1.c
  632f93e6b0314e25ec1b43c771cb405c  gcc/testsuite/gcc.target/sparc/sparc-reg-1.c
! 49d4346a32402759d7a9329d2375c502  gcc/testsuite/gcc.target/sparc/sparc-ret-1.c
  111c6ff31ffc23f4b402354941b88338  gcc/testsuite/gcc.target/sparc/sparc-ret-2.c
  eab3dd9c7afd97e9615ef7573877aeeb  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
! 6bffbbdab354d4313057ebd1f91559cb  gcc/testsuite/gcc.target/sparc/sparc.exp
  36ce6bf50327f9b2f6c9980aea9830d2  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
! 29c9104d23f7983b691da600e79c9cf0  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
! 68666324197bd5951b494840eeaf90ee  gcc/testsuite/gcc.target/sparc/tls-ld-int32.c
  2e3b09054a27c6d44a334e642e027c91  gcc/testsuite/gcc.target/sparc/tls-ld-int64.c
! dae737220e93a16f50e7becc25baf844  gcc/testsuite/gcc.target/sparc/tls-ld-int8.c
! 8cc25e4e4e726efbb76ac206a2b3e225  gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c
! 27f99d07ba15d650eeb6b80cdb3b7913  gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c
! de1289d9d1103ff86463c136e374c48d  gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c
  25b3fbaad3a2016e2d2b3cdf5fea854d  gcc/testsuite/gcc.target/sparc/ultrasp1.c
  d6162326dc1d13ceac299feecb9623b5  gcc/testsuite/gcc.target/sparc/ultrasp10.c
  ce12e4f274007d914a57153cf148abad  gcc/testsuite/gcc.target/sparc/ultrasp11.c
--- 93967,93986 ----
  919c260d2df3ae743134a221024569ee  gcc/testsuite/gcc.target/sparc/sparc-getcontext-1.c
  7b56bd143de0aa8d6fb581f22ab45cb2  gcc/testsuite/gcc.target/sparc/sparc-loop-1.c
  632f93e6b0314e25ec1b43c771cb405c  gcc/testsuite/gcc.target/sparc/sparc-reg-1.c
! 70058e5043ad9eee686518d25c1851ca  gcc/testsuite/gcc.target/sparc/sparc-ret-1.c
  111c6ff31ffc23f4b402354941b88338  gcc/testsuite/gcc.target/sparc/sparc-ret-2.c
  eab3dd9c7afd97e9615ef7573877aeeb  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
! 1ad9029fa8f72b834cb777bc3f6e165b  gcc/testsuite/gcc.target/sparc/sparc.exp
  36ce6bf50327f9b2f6c9980aea9830d2  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
! 90401ab94e60013a59a6ac6e4cec1305  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
! 63f97c81b5ef88bd6497971560c29064  gcc/testsuite/gcc.target/sparc/tls-ld-int32.c
  2e3b09054a27c6d44a334e642e027c91  gcc/testsuite/gcc.target/sparc/tls-ld-int64.c
! c634d06c272c25fa6550810f208eddba  gcc/testsuite/gcc.target/sparc/tls-ld-int8.c
! f0e9d16094c76920832092e35248e76f  gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c
! 24952eba00ae9a85c398acf75f77cabb  gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c
! 78e912bc25a4aa96cb4b62633a44811e  gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c
  25b3fbaad3a2016e2d2b3cdf5fea854d  gcc/testsuite/gcc.target/sparc/ultrasp1.c
  d6162326dc1d13ceac299feecb9623b5  gcc/testsuite/gcc.target/sparc/ultrasp10.c
  ce12e4f274007d914a57153cf148abad  gcc/testsuite/gcc.target/sparc/ultrasp11.c
*************** e88c854cbe0dae626f4f064e72c1ec03  gcc/te
*** 87411,87420 ****
  b3c64b861b04be20b7e91c17b983d3e5  gcc/testsuite/gcc.target/sparc/vec-init-3-vis2.c
  563b83f98a4f9ca3eff3b66de72147b3  gcc/testsuite/gcc.target/sparc/vec-init-3-vis3.c
  69254e66fd261cea5d023496fea792a0  gcc/testsuite/gcc.target/sparc/vec-init-3.inc
! 85556a075c47f2244a95d22fb9019c0e  gcc/testsuite/gcc.target/sparc/vis3misc.c
  51fff32a202c8bd3aa39b5f219127064  gcc/testsuite/gcc.target/sparc/vis3move-1.c
  b19cd6113dbe3ce177bc3a6f0edd515b  gcc/testsuite/gcc.target/sparc/vis3move-2.c
! c743e0cdebd780532edc2e21e3de15e4  gcc/testsuite/gcc.target/sparc/vis3move-3.c
  c6e8cea536062af6f23168b438e096e3  gcc/testsuite/gcc.target/sparc/vis4misc.c
  56b799e8f22e02ad94a3b78e432a129c  gcc/testsuite/gcc.target/sparc/wrgsr.c
  8ab1e95b1174d62330ff11c4ce7c22d3  gcc/testsuite/gcc.target/sparc/xmul.c
--- 94006,94015 ----
  b3c64b861b04be20b7e91c17b983d3e5  gcc/testsuite/gcc.target/sparc/vec-init-3-vis2.c
  563b83f98a4f9ca3eff3b66de72147b3  gcc/testsuite/gcc.target/sparc/vec-init-3-vis3.c
  69254e66fd261cea5d023496fea792a0  gcc/testsuite/gcc.target/sparc/vec-init-3.inc
! e713500dc95a6a52037f14e3ca7143d8  gcc/testsuite/gcc.target/sparc/vis3misc.c
  51fff32a202c8bd3aa39b5f219127064  gcc/testsuite/gcc.target/sparc/vis3move-1.c
  b19cd6113dbe3ce177bc3a6f0edd515b  gcc/testsuite/gcc.target/sparc/vis3move-2.c
! f55be8e57f295695266b9cbb92d581af  gcc/testsuite/gcc.target/sparc/vis3move-3.c
  c6e8cea536062af6f23168b438e096e3  gcc/testsuite/gcc.target/sparc/vis4misc.c
  56b799e8f22e02ad94a3b78e432a129c  gcc/testsuite/gcc.target/sparc/wrgsr.c
  8ab1e95b1174d62330ff11c4ce7c22d3  gcc/testsuite/gcc.target/sparc/xmul.c
*************** c6e8cea536062af6f23168b438e096e3  gcc/te
*** 87422,87428 ****
  cb59fa93f6ec7ffdc7c45b9ffe016270  gcc/testsuite/gcc.target/tic6x/bswapl.c
  880ba4c7bbafa50a3cc6634a50dc02b5  gcc/testsuite/gcc.target/tic6x/builtin-math-7.c
  6189f555f502d05c8cf8f4c22546bdee  gcc/testsuite/gcc.target/tic6x/builtins/arith24.c
! 5af289a47d34ff9b8e492caba23a45ec  gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp
  d44d40be94d3b2c409ccde008c52fd47  gcc/testsuite/gcc.target/tic6x/builtins/extclr.c
  199fddda4489c9408a194900b3af00cc  gcc/testsuite/gcc.target/tic6x/builtins/sarith1.c
  2a93c542861f1f7e0f2350f76094d837  gcc/testsuite/gcc.target/tic6x/builtins/smpy.c
--- 94017,94023 ----
  cb59fa93f6ec7ffdc7c45b9ffe016270  gcc/testsuite/gcc.target/tic6x/bswapl.c
  880ba4c7bbafa50a3cc6634a50dc02b5  gcc/testsuite/gcc.target/tic6x/builtin-math-7.c
  6189f555f502d05c8cf8f4c22546bdee  gcc/testsuite/gcc.target/tic6x/builtins/arith24.c
! d6f33bad9562aeea0eaa83fd182b3c95  gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp
  d44d40be94d3b2c409ccde008c52fd47  gcc/testsuite/gcc.target/tic6x/builtins/extclr.c
  199fddda4489c9408a194900b3af00cc  gcc/testsuite/gcc.target/tic6x/builtins/sarith1.c
  2a93c542861f1f7e0f2350f76094d837  gcc/testsuite/gcc.target/tic6x/builtins/smpy.c
*************** f914e8e604fad0a96e99fb396ea883ad  gcc/te
*** 87438,87447 ****
  baa04394e3ff6b7cba6819b89fb4e822  gcc/testsuite/gcc.target/tic6x/longcalls.c
  a25cc2d7288ac685c9d35e9c43f1cf21  gcc/testsuite/gcc.target/tic6x/rotdi16-scan.c
  9373dfa296a424e3396f81925fbd59bc  gcc/testsuite/gcc.target/tic6x/rotdi16.c
! cb7a6a113cb4ef11b159e4e8a8b307d2  gcc/testsuite/gcc.target/tic6x/tic6x.exp
  670857f86bef69c76dcf7d725b01b954  gcc/testsuite/gcc.target/tic6x/weak-call.c
  1842497af5066e493839b7a75e67e2a7  gcc/testsuite/gcc.target/v850/pr104400.c
! 5293353fe00a527902cf6904e26ce3fd  gcc/testsuite/gcc.target/v850/v850.exp
  f266f148c43d4b9593895e66efc3fa97  gcc/testsuite/gcc.target/vax/bbcci.c
  c64b50c02089a9c71ddbf71d118c42b8  gcc/testsuite/gcc.target/vax/bbssi.c
  44ba73b98dea9a0454806dbe98941328  gcc/testsuite/gcc.target/vax/bswapdi-1.c
--- 94033,94042 ----
  baa04394e3ff6b7cba6819b89fb4e822  gcc/testsuite/gcc.target/tic6x/longcalls.c
  a25cc2d7288ac685c9d35e9c43f1cf21  gcc/testsuite/gcc.target/tic6x/rotdi16-scan.c
  9373dfa296a424e3396f81925fbd59bc  gcc/testsuite/gcc.target/tic6x/rotdi16.c
! e08cc1a16e73d1e3ee0b27b03b24b510  gcc/testsuite/gcc.target/tic6x/tic6x.exp
  670857f86bef69c76dcf7d725b01b954  gcc/testsuite/gcc.target/tic6x/weak-call.c
  1842497af5066e493839b7a75e67e2a7  gcc/testsuite/gcc.target/v850/pr104400.c
! 2cf3dd481338036abbcfab57e57e6eaf  gcc/testsuite/gcc.target/v850/v850.exp
  f266f148c43d4b9593895e66efc3fa97  gcc/testsuite/gcc.target/vax/bbcci.c
  c64b50c02089a9c71ddbf71d118c42b8  gcc/testsuite/gcc.target/vax/bbssi.c
  44ba73b98dea9a0454806dbe98941328  gcc/testsuite/gcc.target/vax/bswapdi-1.c
*************** ce472e70039700885bcf173911ef24dc  gcc/te
*** 87661,87667 ****
  86b2c92ff217edc7b11b2d6f5cba77c6  gcc/testsuite/gcc.target/vax/pr56875.c
  22629a1b386f420f06d6c23ff8e35b7f  gcc/testsuite/gcc.target/vax/push.c
  aa49cef95004b6430e3fd36b1edc76bc  gcc/testsuite/gcc.target/vax/setmem.c
! 4ffc9b30372fad29d4288b7f68704084  gcc/testsuite/gcc.target/vax/vax.exp
  80427f37ed9a9b5949e9525f9049ac5d  gcc/testsuite/gcc.target/visium/bit_shift.c
  8b6e9241f591f13a4ae6f06419b206b4  gcc/testsuite/gcc.target/visium/bit_test.c
  38dfc40b21838f07e0e01202beadfa5c  gcc/testsuite/gcc.target/visium/block_move.c
--- 94256,94262 ----
  86b2c92ff217edc7b11b2d6f5cba77c6  gcc/testsuite/gcc.target/vax/pr56875.c
  22629a1b386f420f06d6c23ff8e35b7f  gcc/testsuite/gcc.target/vax/push.c
  aa49cef95004b6430e3fd36b1edc76bc  gcc/testsuite/gcc.target/vax/setmem.c
! d8345ba3bc0499be07e6ebe96e9e40c5  gcc/testsuite/gcc.target/vax/vax.exp
  80427f37ed9a9b5949e9525f9049ac5d  gcc/testsuite/gcc.target/visium/bit_shift.c
  8b6e9241f591f13a4ae6f06419b206b4  gcc/testsuite/gcc.target/visium/bit_test.c
  38dfc40b21838f07e0e01202beadfa5c  gcc/testsuite/gcc.target/visium/block_move.c
*************** da335bd5b7d24260be92152ec43c9c69  gcc/te
*** 87673,87685 ****
  22e4f821af1c93516061d0c9e939e1d1  gcc/testsuite/gcc.target/visium/overflow16.c
  ed48eae7631e0c3fec552abc3abf6370  gcc/testsuite/gcc.target/visium/overflow32.c
  9038dededd39b0c0f41798e290669394  gcc/testsuite/gcc.target/visium/overflow8.c
! a2eddeaee93b098d4d3706ce85b605a7  gcc/testsuite/gcc.target/visium/visium.exp
! 02fe7439c6091763f3f94b291f0da799  gcc/testsuite/gcc.target/x86_64/abi/README.gcc
! 091e5b236387281fc20e489d49bf812c  gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
  4599244d74ba4aabbd69240d86d2fe79  gcc/testsuite/gcc.target/x86_64/abi/args.h
  2a169afd0fa371ba877780d1e8074c08  gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s
  867f79bc8cc32bb226b0c476fa9fa125  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
! f9a96b22ca59458a848a6b9d1da9fcc0  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
  6e43bc6b3d6feb70612d399a677d1c7d  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
--- 94268,94280 ----
  22e4f821af1c93516061d0c9e939e1d1  gcc/testsuite/gcc.target/visium/overflow16.c
  ed48eae7631e0c3fec552abc3abf6370  gcc/testsuite/gcc.target/visium/overflow32.c
  9038dededd39b0c0f41798e290669394  gcc/testsuite/gcc.target/visium/overflow8.c
! e9e1ffb7c9029b32590aa87d9508a830  gcc/testsuite/gcc.target/visium/visium.exp
! 91ad6c71d4618f3d7bfa401235624f35  gcc/testsuite/gcc.target/x86_64/abi/README.gcc
! 64e404e51f5871e908b9361bd72963dd  gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
  4599244d74ba4aabbd69240d86d2fe79  gcc/testsuite/gcc.target/x86_64/abi/args.h
  2a169afd0fa371ba877780d1e8074c08  gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s
  867f79bc8cc32bb226b0c476fa9fa125  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
! e24080f38789cae4b7da43165a5e24c1  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
  6e43bc6b3d6feb70612d399a677d1c7d  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
*************** d3c71d269c1b4265e86c5ace1089e848  gcc/te
*** 87689,87695 ****
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
  2712f2843274c5262e020aca5e18fc41  gcc/testsuite/gcc.target/x86_64/abi/avx/test_varargs-m256.c
! 3eb754f8fab50c184b4d2f10e523804a  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
  c79ac297933c3dae25e3f797420d1814  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
--- 94284,94290 ----
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
  2712f2843274c5262e020aca5e18fc41  gcc/testsuite/gcc.target/x86_64/abi/avx/test_varargs-m256.c
! bd712f72d92775e492fa6dcef001e262  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
  c79ac297933c3dae25e3f797420d1814  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
*************** e0ffbc2e8472b0c0f22b1f0ca653665e  gcc/te
*** 87699,87711 ****
  24464384d6d7542bbd2ae638f390e7a6  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_structs.c
  fe0e9b140dbc68ca140fc7100c1ade24  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_unions.c
  ea57c03627834ae6586c0f2b69bf32bc  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_varargs-m512.c
! 8879cf19b4c4b821692cf7afd2e55b43  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp
  2b129c5d89f4fa1b005adf23508c4fec  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
  8ec66f49f4364320ac024e42b69a851c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/asm-support.S
  bcfa5ef4f1f22fe71409ef362478b98a  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-check.h
  a5cb603e3325d1483156a1bafca70853  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-xmm-check.h
  59a59553dc3e012851df850ebc07de5e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
! 68e4fce0b89717f277c5c387f2caa1a8  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp
  d09bd80049e83e4efed5897afee5c4ff  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S
  88d9834938333121b41948df32c869b2  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/avx512fp16-ymm-check.h
--- 94294,94306 ----
  24464384d6d7542bbd2ae638f390e7a6  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_structs.c
  fe0e9b140dbc68ca140fc7100c1ade24  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_unions.c
  ea57c03627834ae6586c0f2b69bf32bc  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_varargs-m512.c
! 0f25516a03442ca8f51dbd6f8b558be6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp
  2b129c5d89f4fa1b005adf23508c4fec  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
  8ec66f49f4364320ac024e42b69a851c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/asm-support.S
  bcfa5ef4f1f22fe71409ef362478b98a  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-check.h
  a5cb603e3325d1483156a1bafca70853  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-xmm-check.h
  59a59553dc3e012851df850ebc07de5e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
! 588fb0603f09e571f37ecdb7f0c52edc  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp
  d09bd80049e83e4efed5897afee5c4ff  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S
  88d9834938333121b41948df32c869b2  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/avx512fp16-ymm-check.h
*************** d09bd80049e83e4efed5897afee5c4ff  gcc/te
*** 87714,87720 ****
  992138c3f98a569ecd2ffa2b73fad6a7  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_structs.c
  17d74e6230fbbecaf9cc223807c58341  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_unions.c
  b9e013481b466db18703e47f37a22408  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_varargs-m256.c
! 8879cf19b4c4b821692cf7afd2e55b43  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp
  176cf0e188d1f0e52307d89b8d784fdd  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S
  ba52323e4ee4308b6b4e8989ddb5f3f4  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/avx512fp16-zmm-check.h
--- 94309,94315 ----
  992138c3f98a569ecd2ffa2b73fad6a7  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_structs.c
  17d74e6230fbbecaf9cc223807c58341  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_unions.c
  b9e013481b466db18703e47f37a22408  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_varargs-m256.c
! 0f25516a03442ca8f51dbd6f8b558be6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp
  176cf0e188d1f0e52307d89b8d784fdd  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S
  ba52323e4ee4308b6b4e8989ddb5f3f4  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/avx512fp16-zmm-check.h
*************** e22c619a2f431de8e65d3afabf108e1c  gcc/te
*** 87739,87752 ****
  b42af2b2d27084488f2cbff57c084c7e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_passing_unions.c
  7708c68d41b7c3c416bc62d837c31b4d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
  4e635600e6c770510213147a02f03d44  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_varargs-m128.c
! 1dfa9893f72923391a2a0dd36e336331  gcc/testsuite/gcc.target/x86_64/abi/bf16/abi-bf16.exp
  267075a616caa20baf1cdb6d59273da7  gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h
  f2f6be87af6fdd2b9038a0493b9f4e5f  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support-darwin.S
  983102b5da86835530b5d6c5a2e184fe  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S
  5821aa92b981a719ab14bb15863fa6fd  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-check.h
  ef001e25461cad1a905cc3940b8a59a1  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-helper.h
  3d83e5be06c53befcde7bb6589de52e1  gcc/testsuite/gcc.target/x86_64/abi/bf16/defines.h
! dbbf8f99b0f75e99f3967b3840a5836b  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/abi-bf16-ymm.exp
  afef53759167fe4e911437d754f38005  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h
  1d8f51b67e980af0a3d27bc1aa71cc22  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support-darwin.S
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S
--- 94334,94347 ----
  b42af2b2d27084488f2cbff57c084c7e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_passing_unions.c
  7708c68d41b7c3c416bc62d837c31b4d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
  4e635600e6c770510213147a02f03d44  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_varargs-m128.c
! 7a87f76b8318600482a0b3c20976d68c  gcc/testsuite/gcc.target/x86_64/abi/bf16/abi-bf16.exp
  267075a616caa20baf1cdb6d59273da7  gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h
  f2f6be87af6fdd2b9038a0493b9f4e5f  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support-darwin.S
  983102b5da86835530b5d6c5a2e184fe  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S
  5821aa92b981a719ab14bb15863fa6fd  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-check.h
  ef001e25461cad1a905cc3940b8a59a1  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-helper.h
  3d83e5be06c53befcde7bb6589de52e1  gcc/testsuite/gcc.target/x86_64/abi/bf16/defines.h
! 8677aabbd1a44d71cf27d9702a05a627  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/abi-bf16-ymm.exp
  afef53759167fe4e911437d754f38005  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h
  1d8f51b67e980af0a3d27bc1aa71cc22  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support-darwin.S
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S
*************** d9c8acba14bcae1fc878fc00f09c6a13  gcc/te
*** 87756,87762 ****
  73bd600b3da626bbd4377e964af2f489  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_structs.c
  fb110ce41e65d5c5a34b6dfd9aae97b9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_unions.c
  037befa2c6f87c1831afb1b0c9a799c2  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_varargs-m256.c
! 2a20bb7fe94445fed3691f7ec4a4f9c9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/abi-bf16-zmm.exp
  67297c5c4ab3b318022029a58e7fd404  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h
  206a66ec7c31d9ba7a8d13d86038cc45  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support-darwin.S
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S
--- 94351,94357 ----
  73bd600b3da626bbd4377e964af2f489  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_structs.c
  fb110ce41e65d5c5a34b6dfd9aae97b9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_unions.c
  037befa2c6f87c1831afb1b0c9a799c2  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_varargs-m256.c
! e686fe2a24456b38e26802c600746606  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/abi-bf16-zmm.exp
  67297c5c4ab3b318022029a58e7fd404  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h
  206a66ec7c31d9ba7a8d13d86038cc45  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support-darwin.S
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S
*************** af318c8616cebdebba4e185177c8ed0d  gcc/te
*** 87781,87787 ****
  5fdd234cc9ad7df783a95400b9bbd62f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_passing_unions.c
  419e101bf2cea096ae41adea141df03f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_struct_returning.c
  017621a52995d96231c7e32023a4b6b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_varargs-m128.c
! 4ce617055d9b4b1e8a4af04cd7c6e1a6  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
  b52212e25b4fe43a1bda56b50d2cc914  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h
  bd08629b87a61bb1d8bfca958f60b18f  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c
  17951c08530e05273568b3b636fb8a4e  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
--- 94376,94384 ----
  5fdd234cc9ad7df783a95400b9bbd62f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_passing_unions.c
  419e101bf2cea096ae41adea141df03f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_struct_returning.c
  017621a52995d96231c7e32023a4b6b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_varargs-m128.c
! 38217d04dd03b3357b2f5ecf023c5ef5  gcc/testsuite/gcc.target/x86_64/abi/callabi/avoid-store-forwarding-1.c
! 2e23b12ef8bf5121f832dde1bbc17b30  gcc/testsuite/gcc.target/x86_64/abi/callabi/avoid-store-forwarding-2.c
! 71d6baa7c45605ea3e4d9193df21f07f  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
  b52212e25b4fe43a1bda56b50d2cc914  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h
  bd08629b87a61bb1d8bfca958f60b18f  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c
  17951c08530e05273568b3b636fb8a4e  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
*************** f285001fd760bb0206c1906b50f73178  gcc/te
*** 87790,87796 ****
  239326402b381d1c35048c764b531a4c  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c
  d0150a0667dab730bd24380792e64840  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c
  ce0be853686967c7cfa86c7155e12fbe  gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c
! 928dfb1915c1b87c30e1ca8885e056ad  gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c
  96b2de6d77d0802911b32936e89f5656  gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c
  ba43d0510f74e20a8935d7dc1ff269bd  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c
  d2a6ba025a5971544a32ecf48e921154  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c
--- 94387,94393 ----
  239326402b381d1c35048c764b531a4c  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c
  d0150a0667dab730bd24380792e64840  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c
  ce0be853686967c7cfa86c7155e12fbe  gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c
! 49271be70124e402f112b4c0112f0a73  gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c
  96b2de6d77d0802911b32936e89f5656  gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c
  ba43d0510f74e20a8935d7dc1ff269bd  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c
  d2a6ba025a5971544a32ecf48e921154  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c
*************** d02a2912e872fd8b7b39b69b74482091  gcc/te
*** 87802,87811 ****
  dfc167e3c82be6261ef045c50a409cf9  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-6.c
  002286d968abb2e5012ebb83dd44784d  gcc/testsuite/gcc.target/x86_64/abi/defines.h
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/x86_64/abi/macros.h
! 6c4b95bdb1fe69449af669b2ab57052c  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
  cf207cd32f48bf81f1c2ea9397f53856  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc
! b14bf90b9e86d7c81b95cad9c4d55dae  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
! bdac618e9d520ef63bb5ad87708a984b  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
  df350cc8fc42fcbfb44edc088765d60a  gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c
  54a02258e782aaa35101b4f6cddbe300  gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c
  21f9b335d755c74bdef8998aeac98585  gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c
--- 94399,94408 ----
  dfc167e3c82be6261ef045c50a409cf9  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-6.c
  002286d968abb2e5012ebb83dd44784d  gcc/testsuite/gcc.target/x86_64/abi/defines.h
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/x86_64/abi/macros.h
! ba7e1b32c71c0baad2741e7d54dae342  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
  cf207cd32f48bf81f1c2ea9397f53856  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc
! 67ddeb9bd931554189c4f100a0db2082  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
! 0935661d1baa7473eba22fe5aef92ee9  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
  df350cc8fc42fcbfb44edc088765d60a  gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c
  54a02258e782aaa35101b4f6cddbe300  gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c
  21f9b335d755c74bdef8998aeac98585  gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c
*************** a59d8540caf1d52d46e1879c433e534c  gcc/te
*** 88045,88051 ****
  00cba965e28c0af7b5ea1dcfb070f8d5  gcc/testsuite/gcc.target/xstormy16/swpn-4.c
  f99adeb61ede5633fe73ecc1efa34727  gcc/testsuite/gcc.target/xstormy16/swpw-1.c
  752764c197b4ee448d133a05bccd6d3c  gcc/testsuite/gcc.target/xstormy16/swpw-2.c
! 251ae8df3867bd24ba3278948bcbcc39  gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
  595309c78fd38c2a937734586cd28ee1  gcc/testsuite/gcc.target/xstormy16/zextendhisi2.c
  eacc096a7f94a630ed769a6bed50453d  gcc/testsuite/gcc.target/xtensa/BALL-BNALL.c
  2c169e3ed7b7968f235d883ab0a5457a  gcc/testsuite/gcc.target/xtensa/bswap-O1.c
--- 94642,94648 ----
  00cba965e28c0af7b5ea1dcfb070f8d5  gcc/testsuite/gcc.target/xstormy16/swpn-4.c
  f99adeb61ede5633fe73ecc1efa34727  gcc/testsuite/gcc.target/xstormy16/swpw-1.c
  752764c197b4ee448d133a05bccd6d3c  gcc/testsuite/gcc.target/xstormy16/swpw-2.c
! 009690219e3672d084113c5eba7d1a03  gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
  595309c78fd38c2a937734586cd28ee1  gcc/testsuite/gcc.target/xstormy16/zextendhisi2.c
  eacc096a7f94a630ed769a6bed50453d  gcc/testsuite/gcc.target/xtensa/BALL-BNALL.c
  2c169e3ed7b7968f235d883ab0a5457a  gcc/testsuite/gcc.target/xtensa/bswap-O1.c
*************** acfb44b971ca766549ce4e3d2974f084  gcc/te
*** 88068,88075 ****
  ef29d88bcc9a62033efa0a6e41a3e7d8  gcc/testsuite/gcc.target/xtensa/pr98285.c
  a948656f4ea504ef065dc8d743d6ae01  gcc/testsuite/gcc.target/xtensa/shifts.c
  9c340cc6ce0b118b23559c6dff251397  gcc/testsuite/gcc.target/xtensa/sibcalls.c
! febb103b40707dc8120c6e58c7798790  gcc/testsuite/gcc.target/xtensa/xtensa.exp
! 5dac178f38cd576deab3ad2e32c3a91c  gcc/testsuite/gcc.test-framework/README
  096a37c4b1e488bdb060872ca7b99862  gcc/testsuite/gcc.test-framework/dg-bogus-exp-P.c
  9f91f73374d446d6b0085730a8104942  gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c
  570821aa898995690ac6f67de0840c1a  gcc/testsuite/gcc.test-framework/dg-do-assemble-exp-P.c
--- 94665,94672 ----
  ef29d88bcc9a62033efa0a6e41a3e7d8  gcc/testsuite/gcc.target/xtensa/pr98285.c
  a948656f4ea504ef065dc8d743d6ae01  gcc/testsuite/gcc.target/xtensa/shifts.c
  9c340cc6ce0b118b23559c6dff251397  gcc/testsuite/gcc.target/xtensa/sibcalls.c
! ad65eaee3063d4aa6eeb0038d55f325f  gcc/testsuite/gcc.target/xtensa/xtensa.exp
! 5130bc03b8b6e782d29a1547880722ed  gcc/testsuite/gcc.test-framework/README
  096a37c4b1e488bdb060872ca7b99862  gcc/testsuite/gcc.test-framework/dg-bogus-exp-P.c
  9f91f73374d446d6b0085730a8104942  gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c
  570821aa898995690ac6f67de0840c1a  gcc/testsuite/gcc.test-framework/dg-do-assemble-exp-P.c
*************** d76821513655f47d266e00386180369f  gcc/te
*** 88125,88150 ****
  7741b86259484f4bb14a28d48d2a3723  gcc/testsuite/gcc.test-framework/dg-warning-exp-F.c
  a5fed7916fa20d3c35ba9b6ca7d18593  gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c
  b09307dc50aad69d9ba101705dce41f4  gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
! f014f0c191dc77105b528c531428dde6  gcc/testsuite/gcc.test-framework/gen_directive_tests
! 90e0907fc2d9b53f6750a54fdcd05464  gcc/testsuite/gcc.test-framework/test-framework.awk
! 2596ecf01f626a8decfc91e8a76b0629  gcc/testsuite/gcc.test-framework/test-framework.exp
  502192866584cff5028f4aa00858d119  gcc/testsuite/gdc.dg/Waddress.d
  8c1b4247bd6d7e5b761c57e5000129ce  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch1.d
! 926d037532f6b941c001b71173742beb  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch2.d
  94208575e1a523900cf5bbbacff458ff  gcc/testsuite/gdc.dg/Wcastresult1.d
  44e39786a0fd5bf9bfdb4d4356edd009  gcc/testsuite/gdc.dg/Wcastresult2.d
  42d3851d5f369d7a3feb436c0b56019c  gcc/testsuite/gdc.dg/Wmismatched_enum.d
  ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
  9bc103c321c35752bcd99c0bd239f20b  gcc/testsuite/gdc.dg/Wunused_value.d
! db92ee5710315792ba9363816423260e  gcc/testsuite/gdc.dg/analyzer/analyzer.exp
  63318cc46d15d60fe163e071e030c6d8  gcc/testsuite/gdc.dg/analyzer/pr111537.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
! d4d32d4f1d075ee8a78ed28fcbacedbb  gcc/testsuite/gdc.dg/asan/asan.exp
  b128e4398f4a7480b25915e786aa46ef  gcc/testsuite/gdc.dg/asan/attr_no_sanitize1.d
  10180752a9d53fac31ca576e678cdd06  gcc/testsuite/gdc.dg/asan/gdc272.d
  16e7d438ab084a84acb9128057384ba3  gcc/testsuite/gdc.dg/asm1.d
  fe26b7411075062b4f74f94131f6ff12  gcc/testsuite/gdc.dg/asm2.d
! 926ed4a40911d18017b4da46ddf2753b  gcc/testsuite/gdc.dg/asm3.d
  e39f454e2c507490f50066c0f92ffc2b  gcc/testsuite/gdc.dg/asm4.d
  81924dd147fbe2024048ac4b5b397435  gcc/testsuite/gdc.dg/asm5.d
  31a8b77972532af3d4c1e4b565ffd968  gcc/testsuite/gdc.dg/attr_allocsize1.d
--- 94722,94751 ----
  7741b86259484f4bb14a28d48d2a3723  gcc/testsuite/gcc.test-framework/dg-warning-exp-F.c
  a5fed7916fa20d3c35ba9b6ca7d18593  gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c
  b09307dc50aad69d9ba101705dce41f4  gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
! 2784c30d3e7f44dd2a2c3cbcced0b883  gcc/testsuite/gcc.test-framework/gen_directive_tests
! f963009197e429c300eca1dee29d71bd  gcc/testsuite/gcc.test-framework/test-framework.awk
! 2a5c0ea60116d61f0847aad0f022aa61  gcc/testsuite/gcc.test-framework/test-framework.exp
  502192866584cff5028f4aa00858d119  gcc/testsuite/gdc.dg/Waddress.d
  8c1b4247bd6d7e5b761c57e5000129ce  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch1.d
! 76bc72b2ff7f1b53a5cffaf0041f0fb8  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch2.d
! c3776c0f8ed3cc56196aef042ca5acf7  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch3.d
! da2b0654320e4a3e4253428041d8edf9  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch4.d
! 9a83a123e1070b1b0058d94581499d29  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch5.d
! 3f4bca2132667f886b6e69ed1922bebe  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch6.d
  94208575e1a523900cf5bbbacff458ff  gcc/testsuite/gdc.dg/Wcastresult1.d
  44e39786a0fd5bf9bfdb4d4356edd009  gcc/testsuite/gdc.dg/Wcastresult2.d
  42d3851d5f369d7a3feb436c0b56019c  gcc/testsuite/gdc.dg/Wmismatched_enum.d
  ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
  9bc103c321c35752bcd99c0bd239f20b  gcc/testsuite/gdc.dg/Wunused_value.d
! ea194c46ba387864ef4256a4e2b426b7  gcc/testsuite/gdc.dg/analyzer/analyzer.exp
  63318cc46d15d60fe163e071e030c6d8  gcc/testsuite/gdc.dg/analyzer/pr111537.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
! 9d9dbce6300ee987eb0563a9ff28485e  gcc/testsuite/gdc.dg/asan/asan.exp
  b128e4398f4a7480b25915e786aa46ef  gcc/testsuite/gdc.dg/asan/attr_no_sanitize1.d
  10180752a9d53fac31ca576e678cdd06  gcc/testsuite/gdc.dg/asan/gdc272.d
  16e7d438ab084a84acb9128057384ba3  gcc/testsuite/gdc.dg/asm1.d
  fe26b7411075062b4f74f94131f6ff12  gcc/testsuite/gdc.dg/asm2.d
! 9dc0e4e3cbd13b908542ee62c8b9062b  gcc/testsuite/gdc.dg/asm3.d
  e39f454e2c507490f50066c0f92ffc2b  gcc/testsuite/gdc.dg/asm4.d
  81924dd147fbe2024048ac4b5b397435  gcc/testsuite/gdc.dg/asm5.d
  31a8b77972532af3d4c1e4b565ffd968  gcc/testsuite/gdc.dg/attr_allocsize1.d
*************** b47a6bd68504c63165e1edc61f861583  gcc/te
*** 88195,88214 ****
  51f05240bc073e45dfb7cd2af384c423  gcc/testsuite/gdc.dg/builtins.d
  571055575a2be3c9428db4386a7a290e  gcc/testsuite/gdc.dg/builtins_reject.d
  0aaff757c8c0406ea7a86643ad642fb3  gcc/testsuite/gdc.dg/cast1.d
  191c7332d72a7ccafbe3cfaa328fd410  gcc/testsuite/gdc.dg/ctfeintrinsics.d
! 1bfcb4a89b3d2992f2f965ece88381d8  gcc/testsuite/gdc.dg/debug/debug.exp
! b0dbd2e2156d0a848110a28a15538d0f  gcc/testsuite/gdc.dg/debug/dwarf2/dwarf2.exp
  f57bfa4edc494fecd4284a542f695d0f  gcc/testsuite/gdc.dg/debug/dwarf2/imports/pr98067.d
  37e2ca0f4e06cb14e92a710579518a60  gcc/testsuite/gdc.dg/debug/dwarf2/langdw2.d
  db93819c7b52f4f6ea4f42fed3e0a48a  gcc/testsuite/gdc.dg/debug/dwarf2/langdw3.d
  8527933fbf2d9fb7c82fd63435063168  gcc/testsuite/gdc.dg/debug/dwarf2/pr98067.d
  0121ae6408f107a6bf6f915c24102bd3  gcc/testsuite/gdc.dg/debug/trivial.d
! 1de9230a55fd28a909c2928d5b9e227d  gcc/testsuite/gdc.dg/dg.exp
! d3b168d9c2ed0fe5ba9b297bd8b4a1a3  gcc/testsuite/gdc.dg/extern-c++/extern-c++.exp
  61180002f0f17ca7ed75def599d123f0  gcc/testsuite/gdc.dg/extern-c++/pr101664.d
  68936fbe708c1d13dcaca6e4a4a06f77  gcc/testsuite/gdc.dg/extern-c++/pr101664_1.cc
  a1a48cc59d8f09de15d5d5519e240770  gcc/testsuite/gdc.dg/fileimports/pr93038.txt
! 6b1e42867ec171f5fbad5fc11d0f2a9a  gcc/testsuite/gdc.dg/gcov.exp
  416c982f404cd1b55a14b579f5638663  gcc/testsuite/gdc.dg/gcov1.d
  0da416e7dcac2139d3182637a81efbfe  gcc/testsuite/gdc.dg/gdc108.d
  5761ceeebbd93d112778a153a688475a  gcc/testsuite/gdc.dg/gdc121.d
--- 94796,94826 ----
  51f05240bc073e45dfb7cd2af384c423  gcc/testsuite/gdc.dg/builtins.d
  571055575a2be3c9428db4386a7a290e  gcc/testsuite/gdc.dg/builtins_reject.d
  0aaff757c8c0406ea7a86643ad642fb3  gcc/testsuite/gdc.dg/cast1.d
+ f0faa9e9b1922b0c3e9de308dadd1056  gcc/testsuite/gdc.dg/copy1.d
  191c7332d72a7ccafbe3cfaa328fd410  gcc/testsuite/gdc.dg/ctfeintrinsics.d
! 7dc363aa334c8773b5514f06cf421072  gcc/testsuite/gdc.dg/debug/debug.exp
! 7eaf6faea07176a738a09af89a3b917b  gcc/testsuite/gdc.dg/debug/dwarf2/dwarf2.exp
  f57bfa4edc494fecd4284a542f695d0f  gcc/testsuite/gdc.dg/debug/dwarf2/imports/pr98067.d
  37e2ca0f4e06cb14e92a710579518a60  gcc/testsuite/gdc.dg/debug/dwarf2/langdw2.d
  db93819c7b52f4f6ea4f42fed3e0a48a  gcc/testsuite/gdc.dg/debug/dwarf2/langdw3.d
+ 30443b3dc638d26f028436f75f9e0edb  gcc/testsuite/gdc.dg/debug/dwarf2/pr118309.d
  8527933fbf2d9fb7c82fd63435063168  gcc/testsuite/gdc.dg/debug/dwarf2/pr98067.d
+ b4f9c61a9b5b383751c01b4fe84cb747  gcc/testsuite/gdc.dg/debug/imports/m119817/a.d
+ 07b707a4e1481ec8da698665df0a25d9  gcc/testsuite/gdc.dg/debug/imports/m119817/b.d
+ bcf389e3992a960c831b1dafe53a539c  gcc/testsuite/gdc.dg/debug/imports/m119817/package.d
+ 21f5f82749fd628b3d9ef87a60d160be  gcc/testsuite/gdc.dg/debug/imports/pr119826b.d
+ 41181964abaddf5de8dddab390e60a4f  gcc/testsuite/gdc.dg/debug/pr119817.d
+ 511a4b96302498f658f208676182a550  gcc/testsuite/gdc.dg/debug/pr119826.d
  0121ae6408f107a6bf6f915c24102bd3  gcc/testsuite/gdc.dg/debug/trivial.d
! 112f5496f49034443259464e76b965ec  gcc/testsuite/gdc.dg/dg.exp
! 738cb13f46975c2c4e05fd4d2864afda  gcc/testsuite/gdc.dg/driver_fonly1.d
! 3ab866f47c35938e530f75c1a359e7d2  gcc/testsuite/gdc.dg/driver_fonly2.d
! 3e3e4464fc963f4f4a57434be63c992f  gcc/testsuite/gdc.dg/driver_fonly3.d
! bde5385009cad83e895cc7b41cf87b8e  gcc/testsuite/gdc.dg/extern-c++/extern-c++.exp
  61180002f0f17ca7ed75def599d123f0  gcc/testsuite/gdc.dg/extern-c++/pr101664.d
  68936fbe708c1d13dcaca6e4a4a06f77  gcc/testsuite/gdc.dg/extern-c++/pr101664_1.cc
  a1a48cc59d8f09de15d5d5519e240770  gcc/testsuite/gdc.dg/fileimports/pr93038.txt
! 2856d061fb82e20ddfb83ac318991933  gcc/testsuite/gdc.dg/gcov.exp
  416c982f404cd1b55a14b579f5638663  gcc/testsuite/gdc.dg/gcov1.d
  0da416e7dcac2139d3182637a81efbfe  gcc/testsuite/gdc.dg/gdc108.d
  5761ceeebbd93d112778a153a688475a  gcc/testsuite/gdc.dg/gdc121.d
*************** bd9bf93de2cd3be03b2f48ec7a107774  gcc/te
*** 88253,88259 ****
--- 94865,94877 ----
  eb8f845d76d9f6d311238210d295fa21  gcc/testsuite/gdc.dg/gdc67.d
  4944b9a0b1f22fb68fabb167f1506524  gcc/testsuite/gdc.dg/gdc71.d
  4ea93bb5e289cd13e04ae74dc11fcf09  gcc/testsuite/gdc.dg/gdc77.d
+ da107037ca52050aa9f8d36af3b26d4e  gcc/testsuite/gdc.dg/import-c/import-c.exp
+ 44250fb28a50fdf70cee1b0f7c105780  gcc/testsuite/gdc.dg/import-c/pr119761.d
+ 51573571b8ad582c0459516d953ecb54  gcc/testsuite/gdc.dg/import-c/pr119761c.c
+ 136c8f82df8c22c1b42cc986559f25dd  gcc/testsuite/gdc.dg/import-c/pr119799.d
+ 6057dbc0f883f0ba12c5b125fdef0752  gcc/testsuite/gdc.dg/import-c/pr119799c.c
  67104d4c9e5da1f77ef3a93189f99e15  gcc/testsuite/gdc.dg/imports/attributes.d
+ df57e0dfeda0c33105775c08dc16bbd4  gcc/testsuite/gdc.dg/imports/fonly.d
  2942a45590f07f39370d8741a7a99795  gcc/testsuite/gdc.dg/imports/gdc170.d
  b7311c0dccb9d8f3e521531c1175245c  gcc/testsuite/gdc.dg/imports/gdc231.d
  86c404264c2609e8e1db21b5d1829974  gcc/testsuite/gdc.dg/imports/gdc239.d
*************** c1371b9d51218c700b58595265d42b2d  gcc/te
*** 88276,88282 ****
  7ae8eee97923fab094ae5ca5a1eca902  gcc/testsuite/gdc.dg/imports/pr92216.d
  8120e5c267785a8c8b8eb099660e9a14  gcc/testsuite/gdc.dg/intrinsics.d
  6548f02fc0c4042868151b5d244e80ad  gcc/testsuite/gdc.dg/intrinsics_reject.d
! 826efeb058d9b756b1d0da1be1487998  gcc/testsuite/gdc.dg/lto/lto.exp
  73f4e0e4c2d7cacc12e6ae72ff1a988e  gcc/testsuite/gdc.dg/lto/ltotests_0.d
  bcf14abbb66e47644086ee0018354420  gcc/testsuite/gdc.dg/lto/ltotests_1.d
  67f3da95e0d4f9e0695facaa788ce93f  gcc/testsuite/gdc.dg/lto/pr102094_0.d
--- 94894,94900 ----
  7ae8eee97923fab094ae5ca5a1eca902  gcc/testsuite/gdc.dg/imports/pr92216.d
  8120e5c267785a8c8b8eb099660e9a14  gcc/testsuite/gdc.dg/intrinsics.d
  6548f02fc0c4042868151b5d244e80ad  gcc/testsuite/gdc.dg/intrinsics_reject.d
! 5f359aca6885816d40d6fe30ea6766f4  gcc/testsuite/gdc.dg/lto/lto.exp
  73f4e0e4c2d7cacc12e6ae72ff1a988e  gcc/testsuite/gdc.dg/lto/ltotests_0.d
  bcf14abbb66e47644086ee0018354420  gcc/testsuite/gdc.dg/lto/ltotests_1.d
  67f3da95e0d4f9e0695facaa788ce93f  gcc/testsuite/gdc.dg/lto/pr102094_0.d
*************** bcf14abbb66e47644086ee0018354420  gcc/te
*** 88285,88291 ****
  7d27bb4ae013be8b6cb21a42a730353d  gcc/testsuite/gdc.dg/pr100882a.d
  167004b1d3ea4a1c36668f029fbe4290  gcc/testsuite/gdc.dg/pr100882b.d
  c0f2db1fcb83cbb41fda8295889368ff  gcc/testsuite/gdc.dg/pr100882c.d
! f3963fb6f27af4ec242f11719c6f4138  gcc/testsuite/gdc.dg/pr100967.d
  740e20f8b4aa9d31c7412fbd3b58d4fb  gcc/testsuite/gdc.dg/pr101127a.d
  1913e638608dc57b978438a45ade3c4f  gcc/testsuite/gdc.dg/pr101127b.d
  874906b0c6afe60dafbbc739053ac4eb  gcc/testsuite/gdc.dg/pr101490.d
--- 94903,94909 ----
  7d27bb4ae013be8b6cb21a42a730353d  gcc/testsuite/gdc.dg/pr100882a.d
  167004b1d3ea4a1c36668f029fbe4290  gcc/testsuite/gdc.dg/pr100882b.d
  c0f2db1fcb83cbb41fda8295889368ff  gcc/testsuite/gdc.dg/pr100882c.d
! 3c42e4978f9eb2a4b5586103b770e870  gcc/testsuite/gdc.dg/pr100967.d
  740e20f8b4aa9d31c7412fbd3b58d4fb  gcc/testsuite/gdc.dg/pr101127a.d
  1913e638608dc57b978438a45ade3c4f  gcc/testsuite/gdc.dg/pr101127b.d
  874906b0c6afe60dafbbc739053ac4eb  gcc/testsuite/gdc.dg/pr101490.d
*************** ddd530df4f1d7e7128b4953096cd25ce  gcc/te
*** 88322,88327 ****
--- 94940,94950 ----
  a2d402e0596a4abb1dc6e25b11e9aa9c  gcc/testsuite/gdc.dg/pr112285.d
  83f6a6a53d8587bd4243109d22d0b9f5  gcc/testsuite/gdc.dg/pr112290.d
  9b63f428c6cdc3f7abd69df6a3077880  gcc/testsuite/gdc.dg/pr113125.d
+ 24aeb4aaf97d2dfd7056cedebacc2a03  gcc/testsuite/gdc.dg/pr116373.d
+ 204042c2eb4ac43dee360b7272aee369  gcc/testsuite/gdc.dg/pr116961.d
+ 72d81c5bd5b1ad40ec304fe72a725695  gcc/testsuite/gdc.dg/pr117115.d
+ a81f29fc44be5cd208351e9e8b4a742b  gcc/testsuite/gdc.dg/pr117621.d
+ 0b4ca5d336606fc94e656b8731b0a78e  gcc/testsuite/gdc.dg/pr119139.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** f0043ec96c6a4b20386957bb95d026e5  gcc/te
*** 88401,88406 ****
--- 95024,95031 ----
  1633c66380e59ee711011b5084db8e21  gcc/testsuite/gdc.dg/simd2j.d
  ae514e1e0dc35f480c8a12eb626e8e37  gcc/testsuite/gdc.dg/simd7951.d
  e6da23dd8d6593b3e693bba3c6655d0e  gcc/testsuite/gdc.dg/special1.d
+ e08fa226fcbc5b4fcac8c85e99ee4b6c  gcc/testsuite/gdc.dg/target/i386/i386.exp
+ 1dc3e81ae82bccae2c3857b9523880d7  gcc/testsuite/gdc.dg/target/i386/targetinfo_CET.d
  a7c34dd8ee918654448f7d7b879eb96f  gcc/testsuite/gdc.dg/torture/array2.d
  38be24cf4164de4216f6f5628482be07  gcc/testsuite/gdc.dg/torture/array3.d
  f7b8cedb229b6216459b475252b2ad1e  gcc/testsuite/gdc.dg/torture/gdc115.d
*************** eebe0b1a8ecf5f5162d0d07addd22be4  gcc/te
*** 88436,88441 ****
--- 95061,95067 ----
  688a4952974b86e51d56768c1ab59434  gcc/testsuite/gdc.dg/torture/imports/pr108055conv.d
  11af6bc37407477e6b53012a5574c0a9  gcc/testsuite/gdc.dg/torture/imports/pr108055spec.d
  e253515f214e7f5bb8a972ce8348282f  gcc/testsuite/gdc.dg/torture/imports/pr108055write.d
+ 895f3537ef08982c57f6e4d03b09ec10  gcc/testsuite/gdc.dg/torture/imports/pr109023.d
  50c9072e0ffdfc079790d637e1a5c72a  gcc/testsuite/gdc.dg/torture/imports/pr109108.d
  646170aa418a99d37c59a7bb02130400  gcc/testsuite/gdc.dg/torture/init1.d
  1ae8edb9b2cd9747efb9868621aec4e8  gcc/testsuite/gdc.dg/torture/pr100882.d
*************** a24df8e498053d7ab8325fc58ede1835  gcc/te
*** 88444,88456 ****
  0fc7def8da03a8d1c23f337789aa59f9  gcc/testsuite/gdc.dg/torture/pr106563.d
  94fac34c5154803e3977e6d3bb798eac  gcc/testsuite/gdc.dg/torture/pr106623.d
  bb3b5b6a4251926ee26d0a04242932f2  gcc/testsuite/gdc.dg/torture/pr108055.d
  41c17e6e62da4333262dbaa7b4e20510  gcc/testsuite/gdc.dg/torture/pr109108.d
  ff744a0a8c5876d35d04359a49ff0f84  gcc/testsuite/gdc.dg/torture/pr109144.d
! 1a8b304f6e334e6a55c02413ae1ffbff  gcc/testsuite/gdc.dg/torture/pr110406.d
  827ebe506781bb2fabf9411464081efe  gcc/testsuite/gdc.dg/torture/pr110516a.d
  de9193ce38f7ef3ee1cc3a94fc8a92dc  gcc/testsuite/gdc.dg/torture/pr110516b.d
  ad67c2aef0ecf01677e58695b0cc5d36  gcc/testsuite/gdc.dg/torture/pr113758.d
  c3a3fcac804266bf984aad50e1f84157  gcc/testsuite/gdc.dg/torture/pr114171.d
  580aadb24b666799e25f1f02ef3b7bbb  gcc/testsuite/gdc.dg/torture/pr92309.d
  d5626e21f8cdc22799175cb6adfddfd6  gcc/testsuite/gdc.dg/torture/pr94424.d
  ae5b279461655f243d767b80a6d0bc1b  gcc/testsuite/gdc.dg/torture/pr94777b.d
--- 95070,95084 ----
  0fc7def8da03a8d1c23f337789aa59f9  gcc/testsuite/gdc.dg/torture/pr106563.d
  94fac34c5154803e3977e6d3bb798eac  gcc/testsuite/gdc.dg/torture/pr106623.d
  bb3b5b6a4251926ee26d0a04242932f2  gcc/testsuite/gdc.dg/torture/pr108055.d
+ 59aea28c9aaf79c6cafc5ab866b379bd  gcc/testsuite/gdc.dg/torture/pr109023.d
  41c17e6e62da4333262dbaa7b4e20510  gcc/testsuite/gdc.dg/torture/pr109108.d
  ff744a0a8c5876d35d04359a49ff0f84  gcc/testsuite/gdc.dg/torture/pr109144.d
! 5f42caaeff626ededc25c90cc4b8090a  gcc/testsuite/gdc.dg/torture/pr110406.d
  827ebe506781bb2fabf9411464081efe  gcc/testsuite/gdc.dg/torture/pr110516a.d
  de9193ce38f7ef3ee1cc3a94fc8a92dc  gcc/testsuite/gdc.dg/torture/pr110516b.d
  ad67c2aef0ecf01677e58695b0cc5d36  gcc/testsuite/gdc.dg/torture/pr113758.d
  c3a3fcac804266bf984aad50e1f84157  gcc/testsuite/gdc.dg/torture/pr114171.d
+ a1ef8a304026fe097c3f6356f2dd2b2a  gcc/testsuite/gdc.dg/torture/pr117002.d
  580aadb24b666799e25f1f02ef3b7bbb  gcc/testsuite/gdc.dg/torture/pr92309.d
  d5626e21f8cdc22799175cb6adfddfd6  gcc/testsuite/gdc.dg/torture/pr94424.d
  ae5b279461655f243d767b80a6d0bc1b  gcc/testsuite/gdc.dg/torture/pr94777b.d
*************** ae5b279461655f243d767b80a6d0bc1b  gcc/te
*** 88458,88464 ****
  4bb3a08c1392ffe1ab686818ad5ec86c  gcc/testsuite/gdc.dg/torture/pr96153.d
  bb606d2e0103a4417ebc0bbc3d8cfd49  gcc/testsuite/gdc.dg/torture/pr96156.d
  4133528b9c8c3396b240273ea9ecf550  gcc/testsuite/gdc.dg/torture/pr96157a.d
! a08989e369aebbee239bdbe61057d59e  gcc/testsuite/gdc.dg/torture/pr96435.d
  cc28afe3396e956160b04c6ab8871499  gcc/testsuite/gdc.dg/torture/pr97843.d
  69b6b7adcb2ad72055a4fca88afe3f41  gcc/testsuite/gdc.dg/torture/pr97889.d
  b82b2d96f26d876bca525fdf413dab79  gcc/testsuite/gdc.dg/torture/simd16488a.d
--- 95086,95092 ----
  4bb3a08c1392ffe1ab686818ad5ec86c  gcc/testsuite/gdc.dg/torture/pr96153.d
  bb606d2e0103a4417ebc0bbc3d8cfd49  gcc/testsuite/gdc.dg/torture/pr96156.d
  4133528b9c8c3396b240273ea9ecf550  gcc/testsuite/gdc.dg/torture/pr96157a.d
! d37ed067a8a0bf8b82fe90c8be9f407c  gcc/testsuite/gdc.dg/torture/pr96435.d
  cc28afe3396e956160b04c6ab8871499  gcc/testsuite/gdc.dg/torture/pr97843.d
  69b6b7adcb2ad72055a4fca88afe3f41  gcc/testsuite/gdc.dg/torture/pr97889.d
  b82b2d96f26d876bca525fdf413dab79  gcc/testsuite/gdc.dg/torture/simd16488a.d
*************** d21b6150a8d726bb469bed3f4c7015d8  gcc/te
*** 88502,88511 ****
  0f6b11142f7729df8824f53d8910fbe7  gcc/testsuite/gdc.dg/torture/simd_shuffle.d
  174db156eca98308869e4cd982bc2123  gcc/testsuite/gdc.dg/torture/simd_shufflevector.d
  5715a07d9f806d53b0dc575b1c5f92cc  gcc/testsuite/gdc.dg/torture/simd_store.d
! 0c353e702fd1caca92a86c04ae6f0dec  gcc/testsuite/gdc.dg/torture/torture.exp
  35b85b5b7759f88eacfa2a4d51303dae  gcc/testsuite/gdc.dg/ubsan/attr_no_sanitize2.d
  c7ab3cec87c4498faece019276ff666c  gcc/testsuite/gdc.dg/ubsan/pr88957.d
! 7bb5853c695c42c240698058271e5a44  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
  39d4bcd12f778b37cbfbe3b82aa1da94  gcc/testsuite/gdc.test/compilable/99bottles.d
  93a145e4de3beb6c8a655fcdc4d097ee  gcc/testsuite/gdc.test/compilable/Test16206.d
--- 95130,95139 ----
  0f6b11142f7729df8824f53d8910fbe7  gcc/testsuite/gdc.dg/torture/simd_shuffle.d
  174db156eca98308869e4cd982bc2123  gcc/testsuite/gdc.dg/torture/simd_shufflevector.d
  5715a07d9f806d53b0dc575b1c5f92cc  gcc/testsuite/gdc.dg/torture/simd_store.d
! df7b8303a1b3100e4193d865278f9223  gcc/testsuite/gdc.dg/torture/torture.exp
  35b85b5b7759f88eacfa2a4d51303dae  gcc/testsuite/gdc.dg/ubsan/attr_no_sanitize2.d
  c7ab3cec87c4498faece019276ff666c  gcc/testsuite/gdc.dg/ubsan/pr88957.d
! a4d2aad82147929a74e4ee60a7e0c696  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
  39d4bcd12f778b37cbfbe3b82aa1da94  gcc/testsuite/gdc.test/compilable/99bottles.d
  93a145e4de3beb6c8a655fcdc4d097ee  gcc/testsuite/gdc.test/compilable/Test16206.d
*************** d0da0bd439ac994effa1536916a8cb97  gcc/te
*** 88513,88521 ****
  695153e68a4a8b3579aeca75fd920e75  gcc/testsuite/gdc.test/compilable/aggr_alignment.d
  9e6586be83fe48d4f429380e3b4729f4  gcc/testsuite/gdc.test/compilable/aliasassign.d
  b714c44bedbeb93cfe4856069f8c8f71  gcc/testsuite/gdc.test/compilable/aliasdecl.d
  c830eb21b0dd96c9b8d314d8bbdf13b3  gcc/testsuite/gdc.test/compilable/alignment.d
  07983dc221a81489d42ae7308d4bb3b1  gcc/testsuite/gdc.test/compilable/art4769.d
! bbfc30d42832fa1c0af3d1b895e7c5ca  gcc/testsuite/gdc.test/compilable/atomic_store_2_shared_classes.d
  42ddfcff51dacb470df4e5adfdbfd451  gcc/testsuite/gdc.test/compilable/b11118.d
  abab396c9a34d7ffac07eefc356bf0dd  gcc/testsuite/gdc.test/compilable/b12001.d
  306b045142ce891e1de322f68319170a  gcc/testsuite/gdc.test/compilable/b1215.d
--- 95141,95150 ----
  695153e68a4a8b3579aeca75fd920e75  gcc/testsuite/gdc.test/compilable/aggr_alignment.d
  9e6586be83fe48d4f429380e3b4729f4  gcc/testsuite/gdc.test/compilable/aliasassign.d
  b714c44bedbeb93cfe4856069f8c8f71  gcc/testsuite/gdc.test/compilable/aliasdecl.d
+ a52533eba0812c3e68f9cebab490d164  gcc/testsuite/gdc.test/compilable/aligndefault.d
  c830eb21b0dd96c9b8d314d8bbdf13b3  gcc/testsuite/gdc.test/compilable/alignment.d
  07983dc221a81489d42ae7308d4bb3b1  gcc/testsuite/gdc.test/compilable/art4769.d
! 73a6a9e5ff1b7cf90baa3106b082bbe2  gcc/testsuite/gdc.test/compilable/atomic_loadstore_shared_classes.d
  42ddfcff51dacb470df4e5adfdbfd451  gcc/testsuite/gdc.test/compilable/b11118.d
  abab396c9a34d7ffac07eefc356bf0dd  gcc/testsuite/gdc.test/compilable/b12001.d
  306b045142ce891e1de322f68319170a  gcc/testsuite/gdc.test/compilable/b1215.d
*************** c5c7e97bc1737359df54f060aaec7469  gcc/te
*** 88529,88535 ****
  37abce4177ae3408ada0f4f86ea35a7b  gcc/testsuite/gdc.test/compilable/b16483.d
  503fa1bd80a250813e17e46cda25c2fa  gcc/testsuite/gdc.test/compilable/b16598.d
  cb34f88e2d54dcbd9dee1e5b8dc5cc19  gcc/testsuite/gdc.test/compilable/b16697.d
! 8982f69fd14c58a5dba7832efe5675f8  gcc/testsuite/gdc.test/compilable/b16976.d
  43982378a0cd130db0fb9fa325c9e389  gcc/testsuite/gdc.test/compilable/b17111.d
  4e5226e13d233c83482f3a1c2b3c3511  gcc/testsuite/gdc.test/compilable/b17651.d
  f8c4f4c155900ffad759b3e9eac0e7cb  gcc/testsuite/gdc.test/compilable/b18197.d
--- 95158,95164 ----
  37abce4177ae3408ada0f4f86ea35a7b  gcc/testsuite/gdc.test/compilable/b16483.d
  503fa1bd80a250813e17e46cda25c2fa  gcc/testsuite/gdc.test/compilable/b16598.d
  cb34f88e2d54dcbd9dee1e5b8dc5cc19  gcc/testsuite/gdc.test/compilable/b16697.d
! 80bee44323b44e2a1a4d44984b14a4bf  gcc/testsuite/gdc.test/compilable/b16976.d
  43982378a0cd130db0fb9fa325c9e389  gcc/testsuite/gdc.test/compilable/b17111.d
  4e5226e13d233c83482f3a1c2b3c3511  gcc/testsuite/gdc.test/compilable/b17651.d
  f8c4f4c155900ffad759b3e9eac0e7cb  gcc/testsuite/gdc.test/compilable/b18197.d
*************** e57de5f0f531f18dbe2f59020f729328  gcc/te
*** 88542,88547 ****
--- 95171,95177 ----
  8e18d0076c84dedbc0dd2e4556015ede  gcc/testsuite/gdc.test/compilable/b19829.d
  b3ad87aeda84eecb8d251cc9087366b9  gcc/testsuite/gdc.test/compilable/b20045.d
  0c69c8d4d7cf11ad0008d953889ec2d9  gcc/testsuite/gdc.test/compilable/b20067.d
+ b5fcb59b47e033344d24fec308303c71  gcc/testsuite/gdc.test/compilable/b20243.d
  4bd39bd146dca181336a78886d20fda2  gcc/testsuite/gdc.test/compilable/b20758.d
  75ad796573cbc828f8ed133dd322a6c7  gcc/testsuite/gdc.test/compilable/b20780.d
  aa31ae3115526255bd9b4fcc578a6909  gcc/testsuite/gdc.test/compilable/b20833.d
*************** d7585558f60cab3c210a6f2bbbce4357  gcc/te
*** 88555,88563 ****
  8f1895576e4416be4860966127937c07  gcc/testsuite/gdc.test/compilable/b9490.d
  741fabaa29b11e7b970e4a4a86b7feb6  gcc/testsuite/gdc.test/compilable/backendfloatoptim.d
  36afb7a75512b93d43fc38edc0b85737  gcc/testsuite/gdc.test/compilable/betterCarray.d
  a6ce767361085ca65b496c504352bf7e  gcc/testsuite/gdc.test/compilable/betterCswitch.d
  5738365e9393e0fbc9eefb8406d07fcf  gcc/testsuite/gdc.test/compilable/betterc.d
! 0aa7e577ae4c165086acff2ed3c6759e  gcc/testsuite/gdc.test/compilable/bug11735.d
  aa026edeb0f2cbe8ba150f88aafdb855  gcc/testsuite/gdc.test/compilable/bug20796.d
  998eb9a50baed94a9e606d7d8e5f1735  gcc/testsuite/gdc.test/compilable/bug21196.d
  fbecccee350c9b5a8815a306c8c7a540  gcc/testsuite/gdc.test/compilable/bug6963.d
--- 95185,95194 ----
  8f1895576e4416be4860966127937c07  gcc/testsuite/gdc.test/compilable/b9490.d
  741fabaa29b11e7b970e4a4a86b7feb6  gcc/testsuite/gdc.test/compilable/backendfloatoptim.d
  36afb7a75512b93d43fc38edc0b85737  gcc/testsuite/gdc.test/compilable/betterCarray.d
+ c69fb0e26051095dcffb8f19138959b2  gcc/testsuite/gdc.test/compilable/betterCinline.d
  a6ce767361085ca65b496c504352bf7e  gcc/testsuite/gdc.test/compilable/betterCswitch.d
  5738365e9393e0fbc9eefb8406d07fcf  gcc/testsuite/gdc.test/compilable/betterc.d
! e7db248f5b3a38301fd286903073b28e  gcc/testsuite/gdc.test/compilable/bug11735.d
  aa026edeb0f2cbe8ba150f88aafdb855  gcc/testsuite/gdc.test/compilable/bug20796.d
  998eb9a50baed94a9e606d7d8e5f1735  gcc/testsuite/gdc.test/compilable/bug21196.d
  fbecccee350c9b5a8815a306c8c7a540  gcc/testsuite/gdc.test/compilable/bug6963.d
*************** fbecccee350c9b5a8815a306c8c7a540  gcc/te
*** 88566,88588 ****
  912439c2b6495e16ada18e8d781325f0  gcc/testsuite/gdc.test/compilable/ccompile.d
  a8b6758c3ba22d9d2f071a8dc18ecab5  gcc/testsuite/gdc.test/compilable/cdcmp.d
  2195ce4127b8a9f492fa85a2796e69c1  gcc/testsuite/gdc.test/compilable/checkimports3.d
! 2dc395b33298bfa04c55987e2421b833  gcc/testsuite/gdc.test/compilable/chkformat.d
  3f35daa0fd4ae106ce4b0b87093d646d  gcc/testsuite/gdc.test/compilable/commontype.d
! e56bc43893d3a8b8db48bb3aa37bb981  gcc/testsuite/gdc.test/compilable/compilable.exp
! c96c3e8b2321d73e0973e2c2fd8bbf35  gcc/testsuite/gdc.test/compilable/compile1.d
  f99c18d556cf5938ebbb7d3b40c97dd7  gcc/testsuite/gdc.test/compilable/const.d
  cb099446f4c201cc98f8b7b70599433f  gcc/testsuite/gdc.test/compilable/covariant_override.d
  147666b156671e03a85243ba4426d716  gcc/testsuite/gdc.test/compilable/cpp_abi_tag_unused.d
! 09a474e5de55e4009e1ca5e0a78c216f  gcc/testsuite/gdc.test/compilable/cppmangle.d
  b69be4810e3ae0bc0ca5518561733f11  gcc/testsuite/gdc.test/compilable/cppmangle2.d
! 0ebbf5c23d04675fd1e7685aabd2aa8b  gcc/testsuite/gdc.test/compilable/cppmangle3.d
  dcb6459009e7567342912938e6f5aabf  gcc/testsuite/gdc.test/compilable/cppmangle_abitag.d
  f14da5eed6d94462ca44fdb445eeae9f  gcc/testsuite/gdc.test/compilable/ctfe_math.d
  7293dc73855a72c298049a2fa501bc17  gcc/testsuite/gdc.test/compilable/dbitfield.d
  857dd7cb6020badfa814837f2ed143e0  gcc/testsuite/gdc.test/compilable/ddoc1.d
  a9609bf56f52db363bdf76f9156a2456  gcc/testsuite/gdc.test/compilable/ddoc10.d
! 74990bf8bc55d39b1555ac59d55801bf  gcc/testsuite/gdc.test/compilable/ddoc10236.d
! df5f6cd7190907835202a2186683816e  gcc/testsuite/gdc.test/compilable/ddoc10236b.d
  2e7b558e33f3d5cff94dd2108c00fa77  gcc/testsuite/gdc.test/compilable/ddoc10325.d
  a50ce357df054c12c6f942c6af8d9ff7  gcc/testsuite/gdc.test/compilable/ddoc10334.d
  fe07035a44e422e0afd6f518d835fdb5  gcc/testsuite/gdc.test/compilable/ddoc10366.d
--- 95197,95221 ----
  912439c2b6495e16ada18e8d781325f0  gcc/testsuite/gdc.test/compilable/ccompile.d
  a8b6758c3ba22d9d2f071a8dc18ecab5  gcc/testsuite/gdc.test/compilable/cdcmp.d
  2195ce4127b8a9f492fa85a2796e69c1  gcc/testsuite/gdc.test/compilable/checkimports3.d
! e9bc0ee21bdd74cb21b6395788d7c0f1  gcc/testsuite/gdc.test/compilable/chkformat.d
  3f35daa0fd4ae106ce4b0b87093d646d  gcc/testsuite/gdc.test/compilable/commontype.d
! 4ea506dddfe546a5588a91be63ad066e  gcc/testsuite/gdc.test/compilable/compilable.exp
! 3641c90cd220d51ecd5bda3dd1a6d005  gcc/testsuite/gdc.test/compilable/compile1.d
  f99c18d556cf5938ebbb7d3b40c97dd7  gcc/testsuite/gdc.test/compilable/const.d
+ 4470fa8887b27317ef7e4f7663f9a5f3  gcc/testsuite/gdc.test/compilable/copyCtor2.d
  cb099446f4c201cc98f8b7b70599433f  gcc/testsuite/gdc.test/compilable/covariant_override.d
  147666b156671e03a85243ba4426d716  gcc/testsuite/gdc.test/compilable/cpp_abi_tag_unused.d
! dfe014d9f53a6f1f540fa1a651e50fec  gcc/testsuite/gdc.test/compilable/cppmangle.d
  b69be4810e3ae0bc0ca5518561733f11  gcc/testsuite/gdc.test/compilable/cppmangle2.d
! 9c1ee1245d335b20d3e13b147f11d880  gcc/testsuite/gdc.test/compilable/cppmangle3.d
  dcb6459009e7567342912938e6f5aabf  gcc/testsuite/gdc.test/compilable/cppmangle_abitag.d
  f14da5eed6d94462ca44fdb445eeae9f  gcc/testsuite/gdc.test/compilable/ctfe_math.d
+ 990a3a93828f5d46956c2d0ae8c2249e  gcc/testsuite/gdc.test/compilable/d_ident_c99.d
  7293dc73855a72c298049a2fa501bc17  gcc/testsuite/gdc.test/compilable/dbitfield.d
  857dd7cb6020badfa814837f2ed143e0  gcc/testsuite/gdc.test/compilable/ddoc1.d
  a9609bf56f52db363bdf76f9156a2456  gcc/testsuite/gdc.test/compilable/ddoc10.d
! a4d641880023d322fe7b4075bf05eb2e  gcc/testsuite/gdc.test/compilable/ddoc10236.d
! c12537fed77fca3ba874e492f7ad82e4  gcc/testsuite/gdc.test/compilable/ddoc10236b.d
  2e7b558e33f3d5cff94dd2108c00fa77  gcc/testsuite/gdc.test/compilable/ddoc10325.d
  a50ce357df054c12c6f942c6af8d9ff7  gcc/testsuite/gdc.test/compilable/ddoc10334.d
  fe07035a44e422e0afd6f518d835fdb5  gcc/testsuite/gdc.test/compilable/ddoc10366.d
*************** d6194ace0943acfde033b35b6c62b7d8  gcc/te
*** 88597,88603 ****
  94c2acc5fc0f3b5d659728dfa5b3facc  gcc/testsuite/gdc.test/compilable/ddoc12745.d
  96b97e70616af0ff79a07235d90228eb  gcc/testsuite/gdc.test/compilable/ddoc13.d
  1539a25d497a116f5610ce6af798727e  gcc/testsuite/gdc.test/compilable/ddoc13270.d
! 02983a7d8af1b29e150941073dfeba52  gcc/testsuite/gdc.test/compilable/ddoc13502.d
  558d0b2f6ddb806b6e0144186b6ea5fb  gcc/testsuite/gdc.test/compilable/ddoc13645.d
  14b29f750abc10c1bbf8e7fcaa0b6365  gcc/testsuite/gdc.test/compilable/ddoc14.d
  dc256f51e95e3a7e5a044c77d3152c56  gcc/testsuite/gdc.test/compilable/ddoc14383.d
--- 95230,95236 ----
  94c2acc5fc0f3b5d659728dfa5b3facc  gcc/testsuite/gdc.test/compilable/ddoc12745.d
  96b97e70616af0ff79a07235d90228eb  gcc/testsuite/gdc.test/compilable/ddoc13.d
  1539a25d497a116f5610ce6af798727e  gcc/testsuite/gdc.test/compilable/ddoc13270.d
! 1650ff8fad2cb5ca291cc8e9dab85f5e  gcc/testsuite/gdc.test/compilable/ddoc13502.d
  558d0b2f6ddb806b6e0144186b6ea5fb  gcc/testsuite/gdc.test/compilable/ddoc13645.d
  14b29f750abc10c1bbf8e7fcaa0b6365  gcc/testsuite/gdc.test/compilable/ddoc14.d
  dc256f51e95e3a7e5a044c77d3152c56  gcc/testsuite/gdc.test/compilable/ddoc14383.d
*************** df1fb7745929070aaca39d801ca1acf9  gcc/te
*** 88611,88620 ****
  0f5068cc26181ba90a77dd752140dd40  gcc/testsuite/gdc.test/compilable/ddoc19814.d
  71f7c5e6c1fdb75ca8ea7989a800038b  gcc/testsuite/gdc.test/compilable/ddoc2.d
  9ebc86b1fec1f51ad58590953f0f190b  gcc/testsuite/gdc.test/compilable/ddoc2273.d
  3f53126b5730baeab280edc60558726f  gcc/testsuite/gdc.test/compilable/ddoc3.d
  9de7e1102d1842224315b0a46ad28527  gcc/testsuite/gdc.test/compilable/ddoc4.d
  b471b8ce9f27541e9cb779431f65a346  gcc/testsuite/gdc.test/compilable/ddoc4162.d
! d74ed8ce2acdd0978f0bf5c924d667f9  gcc/testsuite/gdc.test/compilable/ddoc4899.d
  65268cff98793958d2f68941412e493e  gcc/testsuite/gdc.test/compilable/ddoc5.d
  c20c2f516866ebddea1e242087e3ea71  gcc/testsuite/gdc.test/compilable/ddoc5446.d
  b2fd39ab2f11010247824c55463852ac  gcc/testsuite/gdc.test/compilable/ddoc5446a.d
--- 95244,95254 ----
  0f5068cc26181ba90a77dd752140dd40  gcc/testsuite/gdc.test/compilable/ddoc19814.d
  71f7c5e6c1fdb75ca8ea7989a800038b  gcc/testsuite/gdc.test/compilable/ddoc2.d
  9ebc86b1fec1f51ad58590953f0f190b  gcc/testsuite/gdc.test/compilable/ddoc2273.d
+ 10cff06d052f75b0123211fb951a014f  gcc/testsuite/gdc.test/compilable/ddoc24871.d
  3f53126b5730baeab280edc60558726f  gcc/testsuite/gdc.test/compilable/ddoc3.d
  9de7e1102d1842224315b0a46ad28527  gcc/testsuite/gdc.test/compilable/ddoc4.d
  b471b8ce9f27541e9cb779431f65a346  gcc/testsuite/gdc.test/compilable/ddoc4162.d
! b49c09a202ba086127b19dc86108104e  gcc/testsuite/gdc.test/compilable/ddoc4899.d
  65268cff98793958d2f68941412e493e  gcc/testsuite/gdc.test/compilable/ddoc5.d
  c20c2f516866ebddea1e242087e3ea71  gcc/testsuite/gdc.test/compilable/ddoc5446.d
  b2fd39ab2f11010247824c55463852ac  gcc/testsuite/gdc.test/compilable/ddoc5446a.d
*************** b4b3da555766eb0b4b5db38e61553d4f  gcc/te
*** 88662,88670 ****
  e84e0d42d3044dbde3d74652eb93e92d  gcc/testsuite/gdc.test/compilable/debugInference.d
  5fb42fddd5e4bf43c346eb684e1ddbb2  gcc/testsuite/gdc.test/compilable/debuginfo.d
  377e08c5bfca6bccec8079835ce5172d  gcc/testsuite/gdc.test/compilable/defa.d
! ebb50ecdebe327b799c10cbf5e78a529  gcc/testsuite/gdc.test/compilable/depmsg.d
  91d811dc652f420e22d87ecf1e4d5b9c  gcc/testsuite/gdc.test/compilable/deprecate14283.d
! 5192bbef7fe5a182233e93c42b1af918  gcc/testsuite/gdc.test/compilable/deprecated_override.d
  0ba83ee3d8f2bf7360485b7ca6d1aa12  gcc/testsuite/gdc.test/compilable/derivedarray.d
  ece3fcebff1c5a8167a5e21587d73d44  gcc/testsuite/gdc.test/compilable/diag11066.d
  4824c4195a3262539f96a518fba8461b  gcc/testsuite/gdc.test/compilable/diag12598.d
--- 95296,95305 ----
  e84e0d42d3044dbde3d74652eb93e92d  gcc/testsuite/gdc.test/compilable/debugInference.d
  5fb42fddd5e4bf43c346eb684e1ddbb2  gcc/testsuite/gdc.test/compilable/debuginfo.d
  377e08c5bfca6bccec8079835ce5172d  gcc/testsuite/gdc.test/compilable/defa.d
! bd15c1ebd1ae5784439527eacff61c37  gcc/testsuite/gdc.test/compilable/depmsg.d
  91d811dc652f420e22d87ecf1e4d5b9c  gcc/testsuite/gdc.test/compilable/deprecate14283.d
! 9dc53bd58d2680d3a49733c74e54e36a  gcc/testsuite/gdc.test/compilable/deprecated_override.d
! 45c9d1ad742fcc8d18bcb94b72bcf55d  gcc/testsuite/gdc.test/compilable/deprecationlimit.d
  0ba83ee3d8f2bf7360485b7ca6d1aa12  gcc/testsuite/gdc.test/compilable/derivedarray.d
  ece3fcebff1c5a8167a5e21587d73d44  gcc/testsuite/gdc.test/compilable/diag11066.d
  4824c4195a3262539f96a518fba8461b  gcc/testsuite/gdc.test/compilable/diag12598.d
*************** ece3fcebff1c5a8167a5e21587d73d44  gcc/te
*** 88673,88706 ****
  5178e0b9eb9d63604be2885745879bea  gcc/testsuite/gdc.test/compilable/dip22d.d
  27b5feb8c08101bf8d4b6f035f03db6f  gcc/testsuite/gdc.test/compilable/disable_new.d
  19a835fa32d4bda3ea4981962af102e7  gcc/testsuite/gdc.test/compilable/dlangui_crash.d
! 6657a987f8e5ea933bfda1918dd5b3ff  gcc/testsuite/gdc.test/compilable/dtoh_21217.d
! 9c17173fd900ef5ec5e576a13c2035d4  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration.d
! 585e4afbf498433076a80d7cf8345421  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration_98.d
! 1d99d2bc4c20a959c63d21832240a02c  gcc/testsuite/gdc.test/compilable/dtoh_AnonDeclaration.d
! 8c813fab8d377cb0b1024b71b1341f7e  gcc/testsuite/gdc.test/compilable/dtoh_CPPNamespaceDeclaration.d
! 840d69c226a21ac8c3a3c1b4cfd6834e  gcc/testsuite/gdc.test/compilable/dtoh_ClassDeclaration.d
  c4bc92df8eaebe56b02521ae9eb5cba7  gcc/testsuite/gdc.test/compilable/dtoh_StructDeclaration.d
! cedf5f22e05f00d6b02cb076fec0ff71  gcc/testsuite/gdc.test/compilable/dtoh_TemplateDeclaration.d
! a67a923fff901849c12defffb276680b  gcc/testsuite/gdc.test/compilable/dtoh_UnionDeclaration.d
  7d955c40525206951fce203f46fd30b4  gcc/testsuite/gdc.test/compilable/dtoh_VarDeclaration.d
  8bb39e8cee1ae6d61d691e78989b728b  gcc/testsuite/gdc.test/compilable/dtoh_cpp98_compat.d
! 9700fda1e2bc146c7e25108a50b14c9e  gcc/testsuite/gdc.test/compilable/dtoh_enum.d
! 37f55899032d407f3b0653606202ec49  gcc/testsuite/gdc.test/compilable/dtoh_enum_cpp98.d
! e2f2027570a3c5dde17c9a8d1f26ecf7  gcc/testsuite/gdc.test/compilable/dtoh_expressions.d
  aea612b99d0330abf7b5b676425c924e  gcc/testsuite/gdc.test/compilable/dtoh_extern_type.d
! 1af7ca106c9c623f4c3a9b716291a8d6  gcc/testsuite/gdc.test/compilable/dtoh_forwarding.d
! 56a33be35f052ee28e31557d3fc52305  gcc/testsuite/gdc.test/compilable/dtoh_functions.d
  68281bd52968b56df91bf4775ce2baee  gcc/testsuite/gdc.test/compilable/dtoh_ignored.d
! b00969b621a1fdbe21d5a83551163896  gcc/testsuite/gdc.test/compilable/dtoh_invalid_identifiers.d
! 19182c4d4982a7c9759a2656b1e38e15  gcc/testsuite/gdc.test/compilable/dtoh_mangling.d
! 8b616820b6c5194c08d2d32f7304979a  gcc/testsuite/gdc.test/compilable/dtoh_names.d
! abcb9343fd057dba5404300afbdc0d3a  gcc/testsuite/gdc.test/compilable/dtoh_protection.d
! 49f593d7e38ca4c8e39239f5d90796a1  gcc/testsuite/gdc.test/compilable/dtoh_required_symbols.d
! 1f62f9dd286605a1660cc5e0e29a4e79  gcc/testsuite/gdc.test/compilable/dtoh_special_enum.d
! 36b0a170930a352298a7440d65b0e0a7  gcc/testsuite/gdc.test/compilable/dtoh_unittest_block.d
! 8f1c422b1b051604f6b7d368b5c266d9  gcc/testsuite/gdc.test/compilable/dtoh_verbose.d
  8fe1999b7dc753be465ad414e5ced86b  gcc/testsuite/gdc.test/compilable/dtorfields.d
- 9f24034cca71b2232520662f552a99ab  gcc/testsuite/gdc.test/compilable/dtorfields_deprecation.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/empty_file.d
  7013b630e9767ffb53b9375f518abaee  gcc/testsuite/gdc.test/compilable/emptygenmain.d
  bc964ec877c17f5edc90da339dc478ac  gcc/testsuite/gdc.test/compilable/emptystatement.d
--- 95308,95341 ----
  5178e0b9eb9d63604be2885745879bea  gcc/testsuite/gdc.test/compilable/dip22d.d
  27b5feb8c08101bf8d4b6f035f03db6f  gcc/testsuite/gdc.test/compilable/disable_new.d
  19a835fa32d4bda3ea4981962af102e7  gcc/testsuite/gdc.test/compilable/dlangui_crash.d
! 3cc4cd1a406a8079e8364f1e7eef13e6  gcc/testsuite/gdc.test/compilable/dtoh_21217.d
! ab84766be794b9e4852be1779055db33  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration.d
! 4f9240c21e3ba5f12c22ab6e2dafeb21  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration_98.d
! 5cff6bca7edfd2148211f3a1a1705b7f  gcc/testsuite/gdc.test/compilable/dtoh_AnonDeclaration.d
! 1446d4a981346257c105a413b762723f  gcc/testsuite/gdc.test/compilable/dtoh_CPPNamespaceDeclaration.d
! 5988f398efbd47ee9a32e8f23cf2b942  gcc/testsuite/gdc.test/compilable/dtoh_ClassDeclaration.d
  c4bc92df8eaebe56b02521ae9eb5cba7  gcc/testsuite/gdc.test/compilable/dtoh_StructDeclaration.d
! e4216cc7c14062ff1f39f123b8a089da  gcc/testsuite/gdc.test/compilable/dtoh_TemplateDeclaration.d
! df0c7ce33fabf0c2e7618cab3a18e7ad  gcc/testsuite/gdc.test/compilable/dtoh_UnionDeclaration.d
  7d955c40525206951fce203f46fd30b4  gcc/testsuite/gdc.test/compilable/dtoh_VarDeclaration.d
  8bb39e8cee1ae6d61d691e78989b728b  gcc/testsuite/gdc.test/compilable/dtoh_cpp98_compat.d
! de853cfb746e950927fcf6d67427c6e0  gcc/testsuite/gdc.test/compilable/dtoh_enum.d
! 93cf121529d29f69ca677098866a78ea  gcc/testsuite/gdc.test/compilable/dtoh_enum_cpp98.d
! 1458714552d2e5fb797b5a865594be00  gcc/testsuite/gdc.test/compilable/dtoh_expressions.d
  aea612b99d0330abf7b5b676425c924e  gcc/testsuite/gdc.test/compilable/dtoh_extern_type.d
! 68d27b9341d188f01c0742138ef71379  gcc/testsuite/gdc.test/compilable/dtoh_forwarding.d
! e2224c49e38f651ae5a80a7748b1094c  gcc/testsuite/gdc.test/compilable/dtoh_functions.d
  68281bd52968b56df91bf4775ce2baee  gcc/testsuite/gdc.test/compilable/dtoh_ignored.d
! 80f2967813cc14165b6573ab2a4be66d  gcc/testsuite/gdc.test/compilable/dtoh_invalid_identifiers.d
! 599f5ca3dab4ebb86baabfc1b3c33fff  gcc/testsuite/gdc.test/compilable/dtoh_mangling.d
! f4795f01c6c603b2257304e7595cdc21  gcc/testsuite/gdc.test/compilable/dtoh_names.d
! a187f584dc2e22fe0245cfc7f3ba40ea  gcc/testsuite/gdc.test/compilable/dtoh_protection.d
! c626be3e2a1347e5d165628789d38d3c  gcc/testsuite/gdc.test/compilable/dtoh_required_symbols.d
! 289b92529ae4efc76a8483968f9f5ee0  gcc/testsuite/gdc.test/compilable/dtoh_special_enum.d
! d37c23469b80342d5cb48879d7b8b91a  gcc/testsuite/gdc.test/compilable/dtoh_unittest_block.d
! b34a17c78bfc9e04bd15666dc51ddf24  gcc/testsuite/gdc.test/compilable/dtoh_verbose.d
! 2a4e05b278596998a5eecfc15f910668  gcc/testsuite/gdc.test/compilable/dtoh_windows.d
  8fe1999b7dc753be465ad414e5ced86b  gcc/testsuite/gdc.test/compilable/dtorfields.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/empty_file.d
  7013b630e9767ffb53b9375f518abaee  gcc/testsuite/gdc.test/compilable/emptygenmain.d
  bc964ec877c17f5edc90da339dc478ac  gcc/testsuite/gdc.test/compilable/emptystatement.d
*************** ae1f4203bf550794e707ed5be806367b  gcc/te
*** 88723,88729 ****
  4d51435416bc87fac50176e2b6f228d5  gcc/testsuite/gdc.test/compilable/extra-files/emptymain.d
  30cc1bf240439d09b47fb6549193de3d  gcc/testsuite/gdc.test/compilable/extra-files/example7190/controllers/HomeController.d
  cf2cb48cde6a5cacaab45cf9daa47dd1  gcc/testsuite/gdc.test/compilable/extra-files/example7190/models/HomeModel.d
! 24df1b88c3f5551299f701fd14ff4a76  gcc/testsuite/gdc.test/compilable/extra-files/header1.d
  ad8d83a34b5a26e396d29ee59edb35d8  gcc/testsuite/gdc.test/compilable/extra-files/header17125.d
  84e275b184b9aa10c41ec3002d651f5f  gcc/testsuite/gdc.test/compilable/extra-files/header18365.d
  885030e1fb5b2651af1a87f0d82062ca  gcc/testsuite/gdc.test/compilable/extra-files/header2.d
--- 95358,95364 ----
  4d51435416bc87fac50176e2b6f228d5  gcc/testsuite/gdc.test/compilable/extra-files/emptymain.d
  30cc1bf240439d09b47fb6549193de3d  gcc/testsuite/gdc.test/compilable/extra-files/example7190/controllers/HomeController.d
  cf2cb48cde6a5cacaab45cf9daa47dd1  gcc/testsuite/gdc.test/compilable/extra-files/example7190/models/HomeModel.d
! 829e0774372054274dea210ea3cd88bc  gcc/testsuite/gdc.test/compilable/extra-files/header1.d
  ad8d83a34b5a26e396d29ee59edb35d8  gcc/testsuite/gdc.test/compilable/extra-files/header17125.d
  84e275b184b9aa10c41ec3002d651f5f  gcc/testsuite/gdc.test/compilable/extra-files/header18365.d
  885030e1fb5b2651af1a87f0d82062ca  gcc/testsuite/gdc.test/compilable/extra-files/header2.d
*************** ee268250692a50def2153c685c32d7ec  gcc/te
*** 88768,88778 ****
  9f30e0d0feb7d3b7c285ce54964333ab  gcc/testsuite/gdc.test/compilable/fix22180.d
  59a3e3196f5ccc5471f94f7cbb5473d2  gcc/testsuite/gdc.test/compilable/fix22291.d
  fed924adf0e40197daeca9f6c66b00c0  gcc/testsuite/gdc.test/compilable/forward1.d
- eb806b37a5a8307466d0a81a3b7946e3  gcc/testsuite/gdc.test/compilable/future.d
  40eba37e79ec1d15342134ef29a4569a  gcc/testsuite/gdc.test/compilable/futurexf.d
  11f043b3017f6db8f3997272ba117c58  gcc/testsuite/gdc.test/compilable/fwdref21063.d
  cc56a52f270963ef0a22d7a15ef07bcb  gcc/testsuite/gdc.test/compilable/header18364.d
! cd9a8ef6afedd0bf05f83f41769159e5  gcc/testsuite/gdc.test/compilable/header18365.d
  4963ce9702927a4da05ba914bb21d049  gcc/testsuite/gdc.test/compilable/ice10040.d
  2c33f842121803c40cf0bac71fba2c47  gcc/testsuite/gdc.test/compilable/ice10431a.d
  aa3f4a30c984c68273088f85dc1e5f09  gcc/testsuite/gdc.test/compilable/ice10431b.d
--- 95403,95412 ----
  9f30e0d0feb7d3b7c285ce54964333ab  gcc/testsuite/gdc.test/compilable/fix22180.d
  59a3e3196f5ccc5471f94f7cbb5473d2  gcc/testsuite/gdc.test/compilable/fix22291.d
  fed924adf0e40197daeca9f6c66b00c0  gcc/testsuite/gdc.test/compilable/forward1.d
  40eba37e79ec1d15342134ef29a4569a  gcc/testsuite/gdc.test/compilable/futurexf.d
  11f043b3017f6db8f3997272ba117c58  gcc/testsuite/gdc.test/compilable/fwdref21063.d
  cc56a52f270963ef0a22d7a15ef07bcb  gcc/testsuite/gdc.test/compilable/header18364.d
! 538f07dfc13c29049d5d6e8389a64a32  gcc/testsuite/gdc.test/compilable/header18365.d
  4963ce9702927a4da05ba914bb21d049  gcc/testsuite/gdc.test/compilable/ice10040.d
  2c33f842121803c40cf0bac71fba2c47  gcc/testsuite/gdc.test/compilable/ice10431a.d
  aa3f4a30c984c68273088f85dc1e5f09  gcc/testsuite/gdc.test/compilable/ice10431b.d
*************** b996d6997badae1dca6cb4c6f9c2e24b  gcc/te
*** 88812,88818 ****
--- 95446,95456 ----
  62c12fe66505cdafa0b2160448afa693  gcc/testsuite/gdc.test/compilable/ice8392.d
  396a23818b4d53f055617683a4c8ce37  gcc/testsuite/gdc.test/compilable/ice854.d
  f46a99a8050abfb274e126c3d6a5de0e  gcc/testsuite/gdc.test/compilable/ice9663.d
+ 793352fbd7742e1e9ac37f0b6a649fa0  gcc/testsuite/gdc.test/compilable/ident_UAX31.d
+ e0f28c4eb576285590ad5a2aa32b152b  gcc/testsuite/gdc.test/compilable/ident_all.d
+ fbe508942a4d20fccdd6f02e1848ab2c  gcc/testsuite/gdc.test/compilable/ident_c11.d
  a75014507353bbcacb0a841f4a753f97  gcc/testsuite/gdc.test/compilable/implicitconv.d
+ 7351c01ff852955dd3ae136f70eb21d3  gcc/testsuite/gdc.test/compilable/import_exp.d
  d23f3e321505dadcadbf1a1b3a721d9f  gcc/testsuite/gdc.test/compilable/imports/a12506.d
  4f793eca154a5988feb206d6f54a31fe  gcc/testsuite/gdc.test/compilable/imports/a12511.d
  6b700952296d0a882e595796a14c9f23  gcc/testsuite/gdc.test/compilable/imports/a12567.d
*************** f42b040cc735f147de9e381788dcc63b  gcc/te
*** 88845,88851 ****
  d6c15f746a2feba66db905f13d4368c5  gcc/testsuite/gdc.test/compilable/imports/defab.d
  51c4cc09ad07993ac2f4044028515968  gcc/testsuite/gdc.test/compilable/imports/defac.d
  57669e79302b6a7341ca254736da39ed  gcc/testsuite/gdc.test/compilable/imports/defad.d
! c80bb8afbed769e29fefdefec8ab149e  gcc/testsuite/gdc.test/compilable/imports/defines.c
  ad665c5d6e56c4f3b4f2ebee84c46319  gcc/testsuite/gdc.test/compilable/imports/diag12598a.d
  abe63f7624cf794cd7b3698661f93ee6  gcc/testsuite/gdc.test/compilable/imports/dip22.d
  8b2f94f2c9591cd94d8c008b51ef253e  gcc/testsuite/gdc.test/compilable/imports/dip22d.d
--- 95483,95489 ----
  d6c15f746a2feba66db905f13d4368c5  gcc/testsuite/gdc.test/compilable/imports/defab.d
  51c4cc09ad07993ac2f4044028515968  gcc/testsuite/gdc.test/compilable/imports/defac.d
  57669e79302b6a7341ca254736da39ed  gcc/testsuite/gdc.test/compilable/imports/defad.d
! 25b409c09d53c4f1ba562d505ff1fd14  gcc/testsuite/gdc.test/compilable/imports/defines.c
  ad665c5d6e56c4f3b4f2ebee84c46319  gcc/testsuite/gdc.test/compilable/imports/diag12598a.d
  abe63f7624cf794cd7b3698661f93ee6  gcc/testsuite/gdc.test/compilable/imports/dip22.d
  8b2f94f2c9591cd94d8c008b51ef253e  gcc/testsuite/gdc.test/compilable/imports/dip22d.d
*************** a667727c02ccc971d7c05c508de4ada9  gcc/te
*** 88888,88893 ****
--- 95526,95532 ----
  9883398346a2178c5e7cbe0f1bd31a0c  gcc/testsuite/gdc.test/compilable/imports/imp22665.c
  91bc6c76a8e99bc3e0bcdb80a716c03d  gcc/testsuite/gdc.test/compilable/imports/imp22734.c
  ff06a5fcaab395e1905535b4dc53d53a  gcc/testsuite/gdc.test/compilable/imports/imp23662.c
+ 801fb9726d6338b931c3d65ba94def5c  gcc/testsuite/gdc.test/compilable/imports/imp23812.c
  da2010c9d87d8db4429882769a102bd4  gcc/testsuite/gdc.test/compilable/imports/imp24022.c
  ffb02a7ce616b7c2fdd649a67dc4b02d  gcc/testsuite/gdc.test/compilable/imports/impfieldwise.d
  3d9aac3b6cd1bdc497ccaa9fbed2a264  gcc/testsuite/gdc.test/compilable/imports/issue21614a.d
*************** b02327dbb0beb468e895e2b7a6b7cad8  gcc/te
*** 88987,88992 ****
--- 95626,95633 ----
  4af26579445d4f23b4ad000fa00a7fc4  gcc/testsuite/gdc.test/compilable/imports/test1imp.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/imports/test20151a/b/c/c.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/imports/test20530a.d
+ b98f7e5c832ccd1cb3471a7196f6b5a7  gcc/testsuite/gdc.test/compilable/imports/test21098_phobos.d
+ 3d5641d7931c21ceb32d0311d8a4dfcf  gcc/testsuite/gdc.test/compilable/imports/test21098b.d
  b1946ac92492d2347c6235b4d2611184  gcc/testsuite/gdc.test/compilable/imports/test21227/..foo/a.txt
  b1946ac92492d2347c6235b4d2611184  gcc/testsuite/gdc.test/compilable/imports/test21227/a..b.txt
  b1946ac92492d2347c6235b4d2611184  gcc/testsuite/gdc.test/compilable/imports/test21227/a.txt
*************** adab1f44012d7afa19dfd61b7b326691  gcc/te
*** 89053,89066 ****
  e1b2201bb7bef13edd5b1dd62a016069  gcc/testsuite/gdc.test/compilable/imports/udamodule1.d
  1d8fc89265fe679561568985cc3facff  gcc/testsuite/gdc.test/compilable/imports/udamodule2.d
  2f1dca8de92811ccae257ea9c1e85b24  gcc/testsuite/gdc.test/compilable/imports/udamodule2a.d
  28954be8a40dfe6c1d475542cc4a4950  gcc/testsuite/gdc.test/compilable/imports/wax16798.d
  1fe81c33c6da1cbc003e0ab00f5e163c  gcc/testsuite/gdc.test/compilable/infer_stc.d
  13a308ac0197720d622c5e96c15af2f1  gcc/testsuite/gdc.test/compilable/inliner.d
  a2c2b21595b3ee690554e1ff236b06d9  gcc/testsuite/gdc.test/compilable/inliner2.d
! e9fea20bddb4cf7f004d1b3439b6eb80  gcc/testsuite/gdc.test/compilable/interpret3.d
  4e6e008425b8e270dc3a1df0495d9ce3  gcc/testsuite/gdc.test/compilable/interpret4.d
  06030303622e394ed8c4697f73259c9e  gcc/testsuite/gdc.test/compilable/interpret5.d
! 450fffaacdb4952032aa47dc230ed71d  gcc/testsuite/gdc.test/compilable/isZeroInit.d
  6700886aefd0190b552136b7c1d6df03  gcc/testsuite/gdc.test/compilable/isexpalias.d
  38f9e58c2715314b37d8bdbc7914a3ae  gcc/testsuite/gdc.test/compilable/isreturnonstack.d
  376cb54eec7916337251b9d0785afab8  gcc/testsuite/gdc.test/compilable/issue12520.d
--- 95694,95708 ----
  e1b2201bb7bef13edd5b1dd62a016069  gcc/testsuite/gdc.test/compilable/imports/udamodule1.d
  1d8fc89265fe679561568985cc3facff  gcc/testsuite/gdc.test/compilable/imports/udamodule2.d
  2f1dca8de92811ccae257ea9c1e85b24  gcc/testsuite/gdc.test/compilable/imports/udamodule2a.d
+ 56feb8cea82ca2c8459bd07edfcde59c  gcc/testsuite/gdc.test/compilable/imports/vcg_ast_import.d
  28954be8a40dfe6c1d475542cc4a4950  gcc/testsuite/gdc.test/compilable/imports/wax16798.d
  1fe81c33c6da1cbc003e0ab00f5e163c  gcc/testsuite/gdc.test/compilable/infer_stc.d
  13a308ac0197720d622c5e96c15af2f1  gcc/testsuite/gdc.test/compilable/inliner.d
  a2c2b21595b3ee690554e1ff236b06d9  gcc/testsuite/gdc.test/compilable/inliner2.d
! 57536b137580aa96501e0f145ed436bc  gcc/testsuite/gdc.test/compilable/interpret3.d
  4e6e008425b8e270dc3a1df0495d9ce3  gcc/testsuite/gdc.test/compilable/interpret4.d
  06030303622e394ed8c4697f73259c9e  gcc/testsuite/gdc.test/compilable/interpret5.d
! 58b640075e1e59a0faed6f1c742d7d03  gcc/testsuite/gdc.test/compilable/isZeroInit.d
  6700886aefd0190b552136b7c1d6df03  gcc/testsuite/gdc.test/compilable/isexpalias.d
  38f9e58c2715314b37d8bdbc7914a3ae  gcc/testsuite/gdc.test/compilable/isreturnonstack.d
  376cb54eec7916337251b9d0785afab8  gcc/testsuite/gdc.test/compilable/issue12520.d
*************** edc2285459e4656968c13c6d1996b338  gcc/te
*** 89080,89088 ****
  8d3582f0fd9eaca372ff61350332a11b  gcc/testsuite/gdc.test/compilable/issue20705.d
  04daeea9c5ccfa61f11dd3e1dbb1285a  gcc/testsuite/gdc.test/compilable/issue20915.d
  ec6a68d1404062509cb6f8e5908dd5c9  gcc/testsuite/gdc.test/compilable/issue20995.d
! bc7bf256799d6e24350f7dc2f6a56ae4  gcc/testsuite/gdc.test/compilable/issue21203.d
  8388992c32cb543450b9d81028000444  gcc/testsuite/gdc.test/compilable/issue21328.d
! acaf99b9f4b93345a3e27db3d096913f  gcc/testsuite/gdc.test/compilable/issue21340.d
  d0fe8dfd769337feba3fa1aec179666a  gcc/testsuite/gdc.test/compilable/issue21378.d
  0c8fa97fc9ebdd9c0e1ae9f2b51598bb  gcc/testsuite/gdc.test/compilable/issue21390.d
  824521433520512f9e1e945e072c8fa7  gcc/testsuite/gdc.test/compilable/issue21614.d
--- 95722,95730 ----
  8d3582f0fd9eaca372ff61350332a11b  gcc/testsuite/gdc.test/compilable/issue20705.d
  04daeea9c5ccfa61f11dd3e1dbb1285a  gcc/testsuite/gdc.test/compilable/issue20915.d
  ec6a68d1404062509cb6f8e5908dd5c9  gcc/testsuite/gdc.test/compilable/issue20995.d
! d8a97ee5520b99704f25e74c3435766c  gcc/testsuite/gdc.test/compilable/issue21203.d
  8388992c32cb543450b9d81028000444  gcc/testsuite/gdc.test/compilable/issue21328.d
! e5942f1388ff3e7f24653b50f03de9e4  gcc/testsuite/gdc.test/compilable/issue21340.d
  d0fe8dfd769337feba3fa1aec179666a  gcc/testsuite/gdc.test/compilable/issue21378.d
  0c8fa97fc9ebdd9c0e1ae9f2b51598bb  gcc/testsuite/gdc.test/compilable/issue21390.d
  824521433520512f9e1e945e072c8fa7  gcc/testsuite/gdc.test/compilable/issue21614.d
*************** d05ce7580ffae2181f8788e995b639ff  gcc/te
*** 89105,89110 ****
--- 95747,95753 ----
  a1835589ec84228a256f63b55f4f0cc8  gcc/testsuite/gdc.test/compilable/issue24316.d
  26ca0ccaba02bab515a908d10593de55  gcc/testsuite/gdc.test/compilable/issue24399.d
  e48bb3f9b4ce7ea2fd0e40439d3ed734  gcc/testsuite/gdc.test/compilable/issue24409.d
+ 82f90d6ac7eb629bcd2ad54a17058067  gcc/testsuite/gdc.test/compilable/issue24566.d
  2fc93ec0ef318092df8f037cadf05a7f  gcc/testsuite/gdc.test/compilable/issue9884.d
  e91a92c9c06d7b2d9d69ab65e6d5d8b4  gcc/testsuite/gdc.test/compilable/json.d
  0dbed47c0a9e6379e5441611de2fdd43  gcc/testsuite/gdc.test/compilable/json20742.d
*************** b6a5dd6f5f5e40ec69f5d95cff610577  gcc/te
*** 89131,89142 ****
  234250ba55c9db35a7a38bbdebebc0ac  gcc/testsuite/gdc.test/compilable/nestedtempl0.d
  0692185f429a12ae9a98b28baf6bc8e1  gcc/testsuite/gdc.test/compilable/nestedtempl1.d
  a3c24afe0733ea3b2f5afb6b064e3a71  gcc/testsuite/gdc.test/compilable/noderef.d
! a0d0d551dad8b86a881174dce4a8dd31  gcc/testsuite/gdc.test/compilable/nogc.d
  1f7f9bc6578b1c3d98bf1759364334df  gcc/testsuite/gdc.test/compilable/noreturn1.d
  cc7133e68a96f54337a9fe590fa46c69  gcc/testsuite/gdc.test/compilable/noreturn3.d
! 5fbaecaa28f6007b4b1d3347e88d130d  gcc/testsuite/gdc.test/compilable/ob1.d
  9e18a48ff3fe0c40c6e17b74f7beffed  gcc/testsuite/gdc.test/compilable/obsolete_body.d
  726b3282c1790708cda23e2c6b1664d7  gcc/testsuite/gdc.test/compilable/parens_inc.d
  97cf4856aa8990a0fe28a6aabadd9a23  gcc/testsuite/gdc.test/compilable/pr9374.d
  7d64317f6d15dac75cff6ccb494e7ef9  gcc/testsuite/gdc.test/compilable/pr9383.d
  c87c15c1a87df8b9292800c22fb9d727  gcc/testsuite/gdc.test/compilable/pr9471.d
--- 95774,95786 ----
  234250ba55c9db35a7a38bbdebebc0ac  gcc/testsuite/gdc.test/compilable/nestedtempl0.d
  0692185f429a12ae9a98b28baf6bc8e1  gcc/testsuite/gdc.test/compilable/nestedtempl1.d
  a3c24afe0733ea3b2f5afb6b064e3a71  gcc/testsuite/gdc.test/compilable/noderef.d
! f859dcbe43b2ea45bd30863270045f12  gcc/testsuite/gdc.test/compilable/nogc.d
  1f7f9bc6578b1c3d98bf1759364334df  gcc/testsuite/gdc.test/compilable/noreturn1.d
  cc7133e68a96f54337a9fe590fa46c69  gcc/testsuite/gdc.test/compilable/noreturn3.d
! 43ac2b94a822e7a4e5143ff31cf77b06  gcc/testsuite/gdc.test/compilable/ob1.d
  9e18a48ff3fe0c40c6e17b74f7beffed  gcc/testsuite/gdc.test/compilable/obsolete_body.d
  726b3282c1790708cda23e2c6b1664d7  gcc/testsuite/gdc.test/compilable/parens_inc.d
+ c4083243a17bd2e4109cb8ffdd21aadf  gcc/testsuite/gdc.test/compilable/placementnew.d
  97cf4856aa8990a0fe28a6aabadd9a23  gcc/testsuite/gdc.test/compilable/pr9374.d
  7d64317f6d15dac75cff6ccb494e7ef9  gcc/testsuite/gdc.test/compilable/pr9383.d
  c87c15c1a87df8b9292800c22fb9d727  gcc/testsuite/gdc.test/compilable/pr9471.d
*************** bb9e006cebe601f91fae1b967d929f57  gcc/te
*** 89158,89167 ****
  c83b370b77d383fd10e8e53e026450e9  gcc/testsuite/gdc.test/compilable/quadratic.d
  7ab7051a32fc6e5eaac223b428e03233  gcc/testsuite/gdc.test/compilable/readmodify_structclass.d
  4973f2f928324c2d91f8cd53c5f8ea08  gcc/testsuite/gdc.test/compilable/reinterpretctfe.d
  d8f9e17c4e0c2caed923d9e15a8fba76  gcc/testsuite/gdc.test/compilable/revert_dip1000.d
  cd042ba170234d1e39ed18bb4035f19e  gcc/testsuite/gdc.test/compilable/riia_ctor.d
! 9049661aee8ae9fbf955c442c514f3b7  gcc/testsuite/gdc.test/compilable/rvalueref.d
! 508b7041943ffa9a89d695282b8f3269  gcc/testsuite/gdc.test/compilable/scope.d
  38b50e49e9c1daee50b68b8bb85eb5c3  gcc/testsuite/gdc.test/compilable/scope_infer_array_assign.d
  d1bae8a7d648de90882dfe330925715c  gcc/testsuite/gdc.test/compilable/scope_tuple_expansion.d
  882b736d1262f755a317ddc6156a5b43  gcc/testsuite/gdc.test/compilable/scopeinfer.d
--- 95802,95813 ----
  c83b370b77d383fd10e8e53e026450e9  gcc/testsuite/gdc.test/compilable/quadratic.d
  7ab7051a32fc6e5eaac223b428e03233  gcc/testsuite/gdc.test/compilable/readmodify_structclass.d
  4973f2f928324c2d91f8cd53c5f8ea08  gcc/testsuite/gdc.test/compilable/reinterpretctfe.d
+ 71cf7c805e4e7c4d8ae57c285346d47f  gcc/testsuite/gdc.test/compilable/returnscope_without_safe.d
  d8f9e17c4e0c2caed923d9e15a8fba76  gcc/testsuite/gdc.test/compilable/revert_dip1000.d
  cd042ba170234d1e39ed18bb4035f19e  gcc/testsuite/gdc.test/compilable/riia_ctor.d
! 0f87a117cce7422ce02fb62d1c2f285c  gcc/testsuite/gdc.test/compilable/rvalue2.d
! 59075ac15ea1761578a718e0169324c6  gcc/testsuite/gdc.test/compilable/rvalueref.d
! cb69cd9c07c4efaaa81841b22628a64e  gcc/testsuite/gdc.test/compilable/scope.d
  38b50e49e9c1daee50b68b8bb85eb5c3  gcc/testsuite/gdc.test/compilable/scope_infer_array_assign.d
  d1bae8a7d648de90882dfe330925715c  gcc/testsuite/gdc.test/compilable/scope_tuple_expansion.d
  882b736d1262f755a317ddc6156a5b43  gcc/testsuite/gdc.test/compilable/scopeinfer.d
*************** b58883b15934c7e71a25e7843fcbd199  gcc/te
*** 89169,89180 ****
  f4f4b337f02ca72024ce34c690f70386  gcc/testsuite/gdc.test/compilable/shared.d
  fd1eeff8f6c846eeb29e20921f5da298  gcc/testsuite/gdc.test/compilable/shared_destructor.d
  badf98b7c4bd98928b7900f50021dd58  gcc/testsuite/gdc.test/compilable/sharedopt.d
! f6fa0a1825b1850ee6e5b4cd0bc83a94  gcc/testsuite/gdc.test/compilable/shortened_methods.d
  7c98dcd3fa3508059372d1492d038c01  gcc/testsuite/gdc.test/compilable/sroa.d
! 764dda5c691e23f6bb7b7df9165d7e14  gcc/testsuite/gdc.test/compilable/staticforeach.d
  0e24586f4018f7e6eceb24795ff0b303  gcc/testsuite/gdc.test/compilable/statictemplatethis.d
  f94a81ac702da4aa0138c85e1cb2e133  gcc/testsuite/gdc.test/compilable/stc_traits.d
! 668745ffa1278262e74c6cd37e4c954d  gcc/testsuite/gdc.test/compilable/sw_transition_complex.d
  6d4d15a31cd7806cabe1af5f4e06bb12  gcc/testsuite/gdc.test/compilable/sw_transition_field.d
  c60091d42dbb1891b0147676ae3bc853  gcc/testsuite/gdc.test/compilable/sw_transition_tls.d
  863b93ea1449d9bce83e96da5401d347  gcc/testsuite/gdc.test/compilable/test1.d
--- 95815,95826 ----
  f4f4b337f02ca72024ce34c690f70386  gcc/testsuite/gdc.test/compilable/shared.d
  fd1eeff8f6c846eeb29e20921f5da298  gcc/testsuite/gdc.test/compilable/shared_destructor.d
  badf98b7c4bd98928b7900f50021dd58  gcc/testsuite/gdc.test/compilable/sharedopt.d
! 3230850b473df8f6707fd0a9542e8286  gcc/testsuite/gdc.test/compilable/shortened_methods.d
  7c98dcd3fa3508059372d1492d038c01  gcc/testsuite/gdc.test/compilable/sroa.d
! 2f48af7a4a278e8af0c7e2a2cb763723  gcc/testsuite/gdc.test/compilable/staticforeach.d
  0e24586f4018f7e6eceb24795ff0b303  gcc/testsuite/gdc.test/compilable/statictemplatethis.d
  f94a81ac702da4aa0138c85e1cb2e133  gcc/testsuite/gdc.test/compilable/stc_traits.d
! c203a8c7b02f0a25b70232a3b98052ed  gcc/testsuite/gdc.test/compilable/sw_transition_complex.d
  6d4d15a31cd7806cabe1af5f4e06bb12  gcc/testsuite/gdc.test/compilable/sw_transition_field.d
  c60091d42dbb1891b0147676ae3bc853  gcc/testsuite/gdc.test/compilable/sw_transition_tls.d
  863b93ea1449d9bce83e96da5401d347  gcc/testsuite/gdc.test/compilable/test1.d
*************** ee66a00aab8ee3f5338587b5c9f6b541  gcc/te
*** 89197,89203 ****
  1fa19761b95b813d93dde6a3110687eb  gcc/testsuite/gdc.test/compilable/test11225a.d
  0f96270f5a52d68a7b42d7cdd7cf74c5  gcc/testsuite/gdc.test/compilable/test11259.d
  71608ab5eed5a8a336aff502f56afdaf  gcc/testsuite/gdc.test/compilable/test11371.d
! 4b0f923b35d971aaf4e5b9c473d83492  gcc/testsuite/gdc.test/compilable/test11559upgradeoptlink.d
  f0584c1b2c098c52e274ad8b664c4946  gcc/testsuite/gdc.test/compilable/test11563.d
  1a72cdc04edb98f95460beb07b42aa06  gcc/testsuite/gdc.test/compilable/test11656.d
  29dcee761ee66cd4df7f6580bc4cc656  gcc/testsuite/gdc.test/compilable/test1170.d
--- 95843,95849 ----
  1fa19761b95b813d93dde6a3110687eb  gcc/testsuite/gdc.test/compilable/test11225a.d
  0f96270f5a52d68a7b42d7cdd7cf74c5  gcc/testsuite/gdc.test/compilable/test11259.d
  71608ab5eed5a8a336aff502f56afdaf  gcc/testsuite/gdc.test/compilable/test11371.d
! a31fd9f2cc10a6447171c8ddf4fe8946  gcc/testsuite/gdc.test/compilable/test11559upgradeoptlink.d
  f0584c1b2c098c52e274ad8b664c4946  gcc/testsuite/gdc.test/compilable/test11563.d
  1a72cdc04edb98f95460beb07b42aa06  gcc/testsuite/gdc.test/compilable/test11656.d
  29dcee761ee66cd4df7f6580bc4cc656  gcc/testsuite/gdc.test/compilable/test1170.d
*************** d3b477ff39dc5987d927a70762107cc0  gcc/te
*** 89213,89219 ****
  515ca7537a67835ba667af28634ef8bf  gcc/testsuite/gdc.test/compilable/test12527.d
  fe8050ee6ba1d00b1162bdbe9a91a793  gcc/testsuite/gdc.test/compilable/test12567a.d
  7ee0b8197bef137c3c9c71bee19b4dd8  gcc/testsuite/gdc.test/compilable/test12567b.d
! 77a7e4a428b7ec09c00c4754b9c1078e  gcc/testsuite/gdc.test/compilable/test12567c.d
  02802cbb9f5d9037285a0197c64a8da5  gcc/testsuite/gdc.test/compilable/test12567d.d
  ce76c760f83b35d99d7529bd025649c5  gcc/testsuite/gdc.test/compilable/test12567e.d
  5e9c46706cb87ea4f43c2004d6edc97e  gcc/testsuite/gdc.test/compilable/test12593.d
--- 95859,95865 ----
  515ca7537a67835ba667af28634ef8bf  gcc/testsuite/gdc.test/compilable/test12527.d
  fe8050ee6ba1d00b1162bdbe9a91a793  gcc/testsuite/gdc.test/compilable/test12567a.d
  7ee0b8197bef137c3c9c71bee19b4dd8  gcc/testsuite/gdc.test/compilable/test12567b.d
! 5695dff25cf0eb183213001a0aafdb27  gcc/testsuite/gdc.test/compilable/test12567c.d
  02802cbb9f5d9037285a0197c64a8da5  gcc/testsuite/gdc.test/compilable/test12567d.d
  ce76c760f83b35d99d7529bd025649c5  gcc/testsuite/gdc.test/compilable/test12567e.d
  5e9c46706cb87ea4f43c2004d6edc97e  gcc/testsuite/gdc.test/compilable/test12593.d
*************** aeb2a2aefeace885d49b625d841c3b68  gcc/te
*** 89290,89296 ****
  75f755130faef450689ac2a47e0c482f  gcc/testsuite/gdc.test/compilable/test16080.d
  c66d78d3bf4e71c925116093469fe79d  gcc/testsuite/gdc.test/compilable/test16083.d
  98e27421580b917857ac88c97ded87b8  gcc/testsuite/gdc.test/compilable/test16085.d
- 4fc0c8e93709482033d98eec271bda7c  gcc/testsuite/gdc.test/compilable/test16088.d
  31219575114bc2b42585187acaca62ab  gcc/testsuite/gdc.test/compilable/test16107.d
  f5d646fc75920828d81e7205c65853a9  gcc/testsuite/gdc.test/compilable/test16183.d
  38e6adb220f0c5e82fb2ff610ceba985  gcc/testsuite/gdc.test/compilable/test16213.d
--- 95936,95941 ----
*************** f1fb0fc76744ec9a244711207ad19617  gcc/te
*** 89400,89406 ****
  5efc46238934a04ed1cc31f8fcfcc992  gcc/testsuite/gdc.test/compilable/test19187.d
  af3d1eacaf292262a44f9f9831a27c93  gcc/testsuite/gdc.test/compilable/test19203.d
  c1e97c068a8180f6eba8d4e025f616e5  gcc/testsuite/gdc.test/compilable/test19224.d
! 6456b8ecc296a982329fbbeb272fdff6  gcc/testsuite/gdc.test/compilable/test19227.d
  2608688d4f620b103a0c2e2baf33bcb6  gcc/testsuite/gdc.test/compilable/test19268.d
  fc41777a1b9816ebf55ae1456219acef  gcc/testsuite/gdc.test/compilable/test19292.d
  0f1c5ce0e10c23183772a2639b955ad4  gcc/testsuite/gdc.test/compilable/test19295.d
--- 96045,96051 ----
  5efc46238934a04ed1cc31f8fcfcc992  gcc/testsuite/gdc.test/compilable/test19187.d
  af3d1eacaf292262a44f9f9831a27c93  gcc/testsuite/gdc.test/compilable/test19203.d
  c1e97c068a8180f6eba8d4e025f616e5  gcc/testsuite/gdc.test/compilable/test19224.d
! 25a1c344635f1df3a11570101628ec85  gcc/testsuite/gdc.test/compilable/test19227.d
  2608688d4f620b103a0c2e2baf33bcb6  gcc/testsuite/gdc.test/compilable/test19268.d
  fc41777a1b9816ebf55ae1456219acef  gcc/testsuite/gdc.test/compilable/test19292.d
  0f1c5ce0e10c23183772a2639b955ad4  gcc/testsuite/gdc.test/compilable/test19295.d
*************** baa145adb23a15d036c01e709c9885c5  gcc/te
*** 89415,89421 ****
  1a900c27d6267aae4bf289d34d7d9e24  gcc/testsuite/gdc.test/compilable/test19557.d
  09d8521f98b3e68044c9a3bb9b194ba2  gcc/testsuite/gdc.test/compilable/test19574.d
  6d8f041113f29e6c3431fa071c1dc1e6  gcc/testsuite/gdc.test/compilable/test19585.d
! 671796df6f82be1c33c025e0854f72f9  gcc/testsuite/gdc.test/compilable/test19609.d
  0886dd6b0ff11f03356d092250866653  gcc/testsuite/gdc.test/compilable/test19631.d
  9442fde4cb34738935d24c3560a4c98d  gcc/testsuite/gdc.test/compilable/test19652.d
  89ac62d651f368c69996bd0799fe3219  gcc/testsuite/gdc.test/compilable/test19656.d
--- 96060,96066 ----
  1a900c27d6267aae4bf289d34d7d9e24  gcc/testsuite/gdc.test/compilable/test19557.d
  09d8521f98b3e68044c9a3bb9b194ba2  gcc/testsuite/gdc.test/compilable/test19574.d
  6d8f041113f29e6c3431fa071c1dc1e6  gcc/testsuite/gdc.test/compilable/test19585.d
! 6f791df89816c527bbefa2fae4aee9ec  gcc/testsuite/gdc.test/compilable/test19609.d
  0886dd6b0ff11f03356d092250866653  gcc/testsuite/gdc.test/compilable/test19631.d
  9442fde4cb34738935d24c3560a4c98d  gcc/testsuite/gdc.test/compilable/test19652.d
  89ac62d651f368c69996bd0799fe3219  gcc/testsuite/gdc.test/compilable/test19656.d
*************** dbf2fba3b0e01ab05f8e2bdd9a3b8c81  gcc/te
*** 89491,89500 ****
  e1c4ec84eedeb5a0cc94e1f9bc4e5cbe  gcc/testsuite/gdc.test/compilable/test20990.d
  e7496866f23a58a93b9b6db19e13e796  gcc/testsuite/gdc.test/compilable/test21050.d
  bec53864a2bc465c93fe4d228284bc43  gcc/testsuite/gdc.test/compilable/test21058.d
! a2488983506d7c2c5483f94e40926f28  gcc/testsuite/gdc.test/compilable/test21177.d
  1b54b7938f8b85c1a5afd3ed89fcafcf  gcc/testsuite/gdc.test/compilable/test21196.d
  aef1d94d1e219fd82c826644f5cacdb6  gcc/testsuite/gdc.test/compilable/test21197.d
- 0077aff09fa55a7dc6893618897f6466  gcc/testsuite/gdc.test/compilable/test21227.d
  2b1e1c6a1fd62681b20ab1056124d729  gcc/testsuite/gdc.test/compilable/test21243.d
  bbfea94fb62e11c065d4b01364310a6a  gcc/testsuite/gdc.test/compilable/test21255.d
  c2783ee4a416f517c72d376739cda631  gcc/testsuite/gdc.test/compilable/test21282.d
--- 96136,96147 ----
  e1c4ec84eedeb5a0cc94e1f9bc4e5cbe  gcc/testsuite/gdc.test/compilable/test20990.d
  e7496866f23a58a93b9b6db19e13e796  gcc/testsuite/gdc.test/compilable/test21050.d
  bec53864a2bc465c93fe4d228284bc43  gcc/testsuite/gdc.test/compilable/test21058.d
! 7cf4dd6e5c13a6c1dd3cb4fa5b3c7e9a  gcc/testsuite/gdc.test/compilable/test21098.d
! a6e0e4654891638aa71c31c36d5e5e16  gcc/testsuite/gdc.test/compilable/test21153.d
! 2ddf6212c9e3253ed52440a61f6e84f3  gcc/testsuite/gdc.test/compilable/test21177.d
! f7fdd3fb401f8e301f5b3c7339983e8e  gcc/testsuite/gdc.test/compilable/test21179.d
  1b54b7938f8b85c1a5afd3ed89fcafcf  gcc/testsuite/gdc.test/compilable/test21196.d
  aef1d94d1e219fd82c826644f5cacdb6  gcc/testsuite/gdc.test/compilable/test21197.d
  2b1e1c6a1fd62681b20ab1056124d729  gcc/testsuite/gdc.test/compilable/test21243.d
  bbfea94fb62e11c065d4b01364310a6a  gcc/testsuite/gdc.test/compilable/test21255.d
  c2783ee4a416f517c72d376739cda631  gcc/testsuite/gdc.test/compilable/test21282.d
*************** f7b07a5a3e3bfac17af47439bb8ec413  gcc/te
*** 89510,89516 ****
  ba9fd4b88ca0267441472f1febace9ae  gcc/testsuite/gdc.test/compilable/test21438.d
  3f1b768c6d2a4190f6a0e7e142cea814  gcc/testsuite/gdc.test/compilable/test21464.d
  6aae9ab24e30cc1449c46abe03e9439e  gcc/testsuite/gdc.test/compilable/test21501a.d
! 2f705ac2ed4d159ee7622474a6f61815  gcc/testsuite/gdc.test/compilable/test21514.d
  9c28314750a684e306e8009cc05f2c6d  gcc/testsuite/gdc.test/compilable/test21591.d
  4b14068114e43c728903370792cda6d8  gcc/testsuite/gdc.test/compilable/test21659.d
  f308f3be6a8928891a3703e099815b37  gcc/testsuite/gdc.test/compilable/test21661.d
--- 96157,96163 ----
  ba9fd4b88ca0267441472f1febace9ae  gcc/testsuite/gdc.test/compilable/test21438.d
  3f1b768c6d2a4190f6a0e7e142cea814  gcc/testsuite/gdc.test/compilable/test21464.d
  6aae9ab24e30cc1449c46abe03e9439e  gcc/testsuite/gdc.test/compilable/test21501a.d
! efef74ea28668cfb5bd423850b20fc1c  gcc/testsuite/gdc.test/compilable/test21514.d
  9c28314750a684e306e8009cc05f2c6d  gcc/testsuite/gdc.test/compilable/test21591.d
  4b14068114e43c728903370792cda6d8  gcc/testsuite/gdc.test/compilable/test21659.d
  f308f3be6a8928891a3703e099815b37  gcc/testsuite/gdc.test/compilable/test21661.d
*************** d9bd3b9153d70453fbc2d383d0c00068  gcc/te
*** 89549,89559 ****
  c3ad9ddce7a481ae3eceabc801dc2d60  gcc/testsuite/gdc.test/compilable/test22410.d
  65f8254f25cb4c8306d198aa1a754dd6  gcc/testsuite/gdc.test/compilable/test22420.d
  09e28d8639702c9abcd1422f5f548fea  gcc/testsuite/gdc.test/compilable/test22421.d
! 38955f5eab3c1b17fb05ce3bfc00450c  gcc/testsuite/gdc.test/compilable/test22510.d
  b4702b1d639684759b0136604f59cd6a  gcc/testsuite/gdc.test/compilable/test22593.d
  510a0e27f32c7cc5e0dd1f202e12379e  gcc/testsuite/gdc.test/compilable/test22619.d
  181497175eb047b56fdd4a9ec765f832  gcc/testsuite/gdc.test/compilable/test22625.d
! 5682770d993fd0540962dd00fa2c5813  gcc/testsuite/gdc.test/compilable/test22626.d
  901554ddde3ae8936462b745163fcba2  gcc/testsuite/gdc.test/compilable/test22632.d
  e6bb4f5c97bbba010f496af7cdf7dad5  gcc/testsuite/gdc.test/compilable/test22635.d
  3a0a3bdf36fdab620d6fbc2c2e1bed02  gcc/testsuite/gdc.test/compilable/test22638.d
--- 96196,96206 ----
  c3ad9ddce7a481ae3eceabc801dc2d60  gcc/testsuite/gdc.test/compilable/test22410.d
  65f8254f25cb4c8306d198aa1a754dd6  gcc/testsuite/gdc.test/compilable/test22420.d
  09e28d8639702c9abcd1422f5f548fea  gcc/testsuite/gdc.test/compilable/test22421.d
! ce0a15ff2227846c0b33f5967b2e682c  gcc/testsuite/gdc.test/compilable/test22510.d
  b4702b1d639684759b0136604f59cd6a  gcc/testsuite/gdc.test/compilable/test22593.d
  510a0e27f32c7cc5e0dd1f202e12379e  gcc/testsuite/gdc.test/compilable/test22619.d
  181497175eb047b56fdd4a9ec765f832  gcc/testsuite/gdc.test/compilable/test22625.d
! f176aa3f3cb60aff2fde8433a9977d83  gcc/testsuite/gdc.test/compilable/test22626.d
  901554ddde3ae8936462b745163fcba2  gcc/testsuite/gdc.test/compilable/test22632.d
  e6bb4f5c97bbba010f496af7cdf7dad5  gcc/testsuite/gdc.test/compilable/test22635.d
  3a0a3bdf36fdab620d6fbc2c2e1bed02  gcc/testsuite/gdc.test/compilable/test22638.d
*************** a92fa3d1edefb6370e848a80b53e97ed  gcc/te
*** 89583,89589 ****
  ec10cf15692d6643f872a67e8b78deb2  gcc/testsuite/gdc.test/compilable/test23082.d
  39043d209bd26409a2bb6419b73549ed  gcc/testsuite/gdc.test/compilable/test23087.d
  ebf5b789d4a31be2e939321d6490d585  gcc/testsuite/gdc.test/compilable/test23089.d
! 91dbefd06049014b48ccf6dea94f05f3  gcc/testsuite/gdc.test/compilable/test23097.d
  18b466bef2e0124dd12a1499a86f00e9  gcc/testsuite/gdc.test/compilable/test23105.d
  19ed0ff13bf6375ae12f6893cc145763  gcc/testsuite/gdc.test/compilable/test23142.d
  ef94e36ea4b149caeaa44951f0d8aa68  gcc/testsuite/gdc.test/compilable/test23145.d
--- 96230,96236 ----
  ec10cf15692d6643f872a67e8b78deb2  gcc/testsuite/gdc.test/compilable/test23082.d
  39043d209bd26409a2bb6419b73549ed  gcc/testsuite/gdc.test/compilable/test23087.d
  ebf5b789d4a31be2e939321d6490d585  gcc/testsuite/gdc.test/compilable/test23089.d
! 988d47af5b491b892e8a3150af02d5c7  gcc/testsuite/gdc.test/compilable/test23097.d
  18b466bef2e0124dd12a1499a86f00e9  gcc/testsuite/gdc.test/compilable/test23105.d
  19ed0ff13bf6375ae12f6893cc145763  gcc/testsuite/gdc.test/compilable/test23142.d
  ef94e36ea4b149caeaa44951f0d8aa68  gcc/testsuite/gdc.test/compilable/test23145.d
*************** d6adb0700c796d7765e510c8288ad2f1  gcc/te
*** 89627,89632 ****
--- 96274,96280 ----
  0c69a4cce2743fa0d1d1d5504034811e  gcc/testsuite/gdc.test/compilable/test23679.d
  bdd0c06634db6f2e18e57ba56c34f729  gcc/testsuite/gdc.test/compilable/test23789.d
  4cd1791956fa3c3a1364cada8370a6bf  gcc/testsuite/gdc.test/compilable/test23799.d
+ d92784a5ee910f2865d3cc39254088cc  gcc/testsuite/gdc.test/compilable/test23812.d
  1892fc05c3e4519ca55fbacb971dfb17  gcc/testsuite/gdc.test/compilable/test23862.d
  a6312f2826e0df0ccce93479f0a93b6a  gcc/testsuite/gdc.test/compilable/test23863.d
  d54a66e331db17137d651ed7b4166db4  gcc/testsuite/gdc.test/compilable/test23874.d
*************** fbd9917fb4ab47ea6bf89d5efae012f6  gcc/te
*** 89640,89653 ****
  e0817cf6d028348d1ceb1d42fe85c006  gcc/testsuite/gdc.test/compilable/test23979.d
  256ff7120fd910fd94d381724ea3c32f  gcc/testsuite/gdc.test/compilable/test23986.d
  675cd4f907ba41f1837587f403a62dc7  gcc/testsuite/gdc.test/compilable/test24013.d
- a745d06f3cfeb68e5ac28b752e56fb04  gcc/testsuite/gdc.test/compilable/test24017.d
  c94cae03cc6914ae6e20e7c016f9c9d4  gcc/testsuite/gdc.test/compilable/test24022.d
  93b58cbc2f5adb0a6e051f0aec8d3820  gcc/testsuite/gdc.test/compilable/test24066.d
  f8b0ae6368c0ee13f2e4e71e66c90b9a  gcc/testsuite/gdc.test/compilable/test24107.d
  78f11046276a3c73962225fe4ac14752  gcc/testsuite/gdc.test/compilable/test24109.d
  6a6f6d4823aa43554b04350d5539c64f  gcc/testsuite/gdc.test/compilable/test24118.d
  1360877e52bb7767281e5b8fef970507  gcc/testsuite/gdc.test/compilable/test24338.d
  52e72c9cc637bc3df50e83bc26fedf45  gcc/testsuite/gdc.test/compilable/test24390.d
  330c2acf4539ef672ad9c8cf0faa0c5e  gcc/testsuite/gdc.test/compilable/test25.d
  912661e1615a2dd8fe14dbd20528f7ba  gcc/testsuite/gdc.test/compilable/test2991.d
  b0234808764370745e6dbf7744465cff  gcc/testsuite/gdc.test/compilable/test3004.d
--- 96288,96305 ----
  e0817cf6d028348d1ceb1d42fe85c006  gcc/testsuite/gdc.test/compilable/test23979.d
  256ff7120fd910fd94d381724ea3c32f  gcc/testsuite/gdc.test/compilable/test23986.d
  675cd4f907ba41f1837587f403a62dc7  gcc/testsuite/gdc.test/compilable/test24013.d
  c94cae03cc6914ae6e20e7c016f9c9d4  gcc/testsuite/gdc.test/compilable/test24022.d
  93b58cbc2f5adb0a6e051f0aec8d3820  gcc/testsuite/gdc.test/compilable/test24066.d
  f8b0ae6368c0ee13f2e4e71e66c90b9a  gcc/testsuite/gdc.test/compilable/test24107.d
  78f11046276a3c73962225fe4ac14752  gcc/testsuite/gdc.test/compilable/test24109.d
  6a6f6d4823aa43554b04350d5539c64f  gcc/testsuite/gdc.test/compilable/test24118.d
+ 7781f8c653d6d7d83a566cee8a3524c4  gcc/testsuite/gdc.test/compilable/test24337.d
  1360877e52bb7767281e5b8fef970507  gcc/testsuite/gdc.test/compilable/test24338.d
  52e72c9cc637bc3df50e83bc26fedf45  gcc/testsuite/gdc.test/compilable/test24390.d
+ 0ff75cb586d74cace3df0b20bc8ae8bb  gcc/testsuite/gdc.test/compilable/test24479.d
+ 02ecfb6e6f6c322c9ce7baeee99af4dc  gcc/testsuite/gdc.test/compilable/test24560.d
+ 0b5ecfaf16df4ad773db7ce6c9c107ce  gcc/testsuite/gdc.test/compilable/test24760.d
+ 2f2e2bcd75caf71f208f6b63b17e5a58  gcc/testsuite/gdc.test/compilable/test24762.d
  330c2acf4539ef672ad9c8cf0faa0c5e  gcc/testsuite/gdc.test/compilable/test25.d
  912661e1615a2dd8fe14dbd20528f7ba  gcc/testsuite/gdc.test/compilable/test2991.d
  b0234808764370745e6dbf7744465cff  gcc/testsuite/gdc.test/compilable/test3004.d
*************** cb22ffc739f8c5974f6ea959deba7a91  gcc/te
*** 89744,89750 ****
  04a1d813881cd51192cda468efbf0030  gcc/testsuite/gdc.test/compilable/test9672.d
  97ad594fc0c94302d7abeff0abdca1fd  gcc/testsuite/gdc.test/compilable/test9692.d
  4e8c514f4c47e8cc668194d301fadc34  gcc/testsuite/gdc.test/compilable/test9692a.d
! d5e43ab1e4c033bfee33c30947a66f67  gcc/testsuite/gdc.test/compilable/test9701.d
  b62c4783060c00406ce9b1b3c7bf4458  gcc/testsuite/gdc.test/compilable/test9766.d
  010e4189c66339d7f70f9b588c485a23  gcc/testsuite/gdc.test/compilable/test9818.d
  c3399128d15e46a6701b8fa1f51ea1d8  gcc/testsuite/gdc.test/compilable/test9919.d
--- 96396,96402 ----
  04a1d813881cd51192cda468efbf0030  gcc/testsuite/gdc.test/compilable/test9672.d
  97ad594fc0c94302d7abeff0abdca1fd  gcc/testsuite/gdc.test/compilable/test9692.d
  4e8c514f4c47e8cc668194d301fadc34  gcc/testsuite/gdc.test/compilable/test9692a.d
! eea296d4ee2668b7942e4c4962d2b451  gcc/testsuite/gdc.test/compilable/test9701.d
  b62c4783060c00406ce9b1b3c7bf4458  gcc/testsuite/gdc.test/compilable/test9766.d
  010e4189c66339d7f70f9b588c485a23  gcc/testsuite/gdc.test/compilable/test9818.d
  c3399128d15e46a6701b8fa1f51ea1d8  gcc/testsuite/gdc.test/compilable/test9919.d
*************** cd9664381d4f2ad5fbc9a66fe9181ece  gcc/te
*** 89756,89768 ****
  e420705f48ae28346e1d049a442dc609  gcc/testsuite/gdc.test/compilable/testDIP37_10421.d
  a8aff1c75bc0695071a90cb5aa15971e  gcc/testsuite/gdc.test/compilable/testDIP37a.d
  0ad27aebcba2369d32c2ab7918cf7ee0  gcc/testsuite/gdc.test/compilable/testDIP42.d
! 66cc077fc806bfa02d82e90972a4f5b2  gcc/testsuite/gdc.test/compilable/testInference.d
! 85a5ba423ac12043f320f0ff47d0b161  gcc/testsuite/gdc.test/compilable/testVRP.d
  4f38613138feda91b158dbc10e9dcaf8  gcc/testsuite/gdc.test/compilable/testcheckimports.d
  dbddcfe494cc3c61d9b82e969af2c8ea  gcc/testsuite/gdc.test/compilable/testcontracts.d
  e4998c6896a3ce1b4036155ac0ec1abc  gcc/testsuite/gdc.test/compilable/testcorrectthis.d
  939371c9d34a5af76ab78baebe16d363  gcc/testsuite/gdc.test/compilable/testcstuff3.d
! ab5870d873e43f08ce4ab862b69be273  gcc/testsuite/gdc.test/compilable/testdefines.d
  035c837c9828677c99e64cf928df76e6  gcc/testsuite/gdc.test/compilable/testdip1008.d
  a45fff07259b904bd2e0780eb2b4b920  gcc/testsuite/gdc.test/compilable/testexpression.d
  165adaaca3d4cb680db8e8f7bef830af  gcc/testsuite/gdc.test/compilable/testfptr.d
--- 96408,96421 ----
  e420705f48ae28346e1d049a442dc609  gcc/testsuite/gdc.test/compilable/testDIP37_10421.d
  a8aff1c75bc0695071a90cb5aa15971e  gcc/testsuite/gdc.test/compilable/testDIP37a.d
  0ad27aebcba2369d32c2ab7918cf7ee0  gcc/testsuite/gdc.test/compilable/testDIP42.d
! 1e4920d0aa52c6d7a034f5104a4a47c8  gcc/testsuite/gdc.test/compilable/testInference.d
! 4dcaacf727b36b2243e4f26c61d221da  gcc/testsuite/gdc.test/compilable/testVRP.d
! 7e3da54020db108d3b923272d5e21588  gcc/testsuite/gdc.test/compilable/test__ctfeWrite.d
  4f38613138feda91b158dbc10e9dcaf8  gcc/testsuite/gdc.test/compilable/testcheckimports.d
  dbddcfe494cc3c61d9b82e969af2c8ea  gcc/testsuite/gdc.test/compilable/testcontracts.d
  e4998c6896a3ce1b4036155ac0ec1abc  gcc/testsuite/gdc.test/compilable/testcorrectthis.d
  939371c9d34a5af76ab78baebe16d363  gcc/testsuite/gdc.test/compilable/testcstuff3.d
! 73df461aee89586871ed2daebd1dd80f  gcc/testsuite/gdc.test/compilable/testdefines.d
  035c837c9828677c99e64cf928df76e6  gcc/testsuite/gdc.test/compilable/testdip1008.d
  a45fff07259b904bd2e0780eb2b4b920  gcc/testsuite/gdc.test/compilable/testexpression.d
  165adaaca3d4cb680db8e8f7bef830af  gcc/testsuite/gdc.test/compilable/testfptr.d
*************** b4b221ef317b956132f4d2d2b4addb1d  gcc/te
*** 89786,89803 ****
  96e4dccded26d5a2f5c94a77a811bf2a  gcc/testsuite/gdc.test/compilable/testpull1810.d
  06d53bd527300beec01412a18aacbb8b  gcc/testsuite/gdc.test/compilable/testsctreturn.d
  2b0d22bb4f0da744c1a7d324b1673eb7  gcc/testsuite/gdc.test/compilable/testtempl2.d
! 989373efd9e6faf499f8339b0d54b0c1  gcc/testsuite/gdc.test/compilable/traits.d
  850c921b1056bbd4c8ac2b72d8f27871  gcc/testsuite/gdc.test/compilable/traits_getFunctionAttributes.d
  0da951db343407cecaa9f85317fb649d  gcc/testsuite/gdc.test/compilable/transition_in.d
  2a5c3303f2fc00fbaf51ab7e1a392eee  gcc/testsuite/gdc.test/compilable/typeid_name.d
  ac9e751e20c95911b8e0c1bc570c6124  gcc/testsuite/gdc.test/compilable/uda.d
! b215346ff6994a9f80fd4b4a3300e489  gcc/testsuite/gdc.test/compilable/udamodule1.d
  fddab229d4f220f7768aa32bff4eb235  gcc/testsuite/gdc.test/compilable/udamodule2.d
  05d2b62ab46fd89af248af1c2e5be2c1  gcc/testsuite/gdc.test/compilable/union_initialization.d
  1753f2fe39db70816ce04ce3434fe21e  gcc/testsuite/gdc.test/compilable/user_defined_attributes.d
  b13edd5ae1b061369112622cadbdc3da  gcc/testsuite/gdc.test/compilable/vararg.d
! a628926ce76a489cff5ca423a30f04db  gcc/testsuite/gdc.test/compilable/vcg-ast.d
! e39d851e2d6df0fb0a228237d9973bdc  gcc/testsuite/gdc.test/compilable/verrors_spec.d
  7c3dc0b69abaf4feb7674c4ea5304c4d  gcc/testsuite/gdc.test/compilable/version.d
  7ea9e82ff7eecd14d9b7809d9156aad5  gcc/testsuite/gdc.test/compilable/vgc1.d
  8b1d1f09cc831f47f82a490c8ef78d15  gcc/testsuite/gdc.test/compilable/vgc2.d
--- 96439,96457 ----
  96e4dccded26d5a2f5c94a77a811bf2a  gcc/testsuite/gdc.test/compilable/testpull1810.d
  06d53bd527300beec01412a18aacbb8b  gcc/testsuite/gdc.test/compilable/testsctreturn.d
  2b0d22bb4f0da744c1a7d324b1673eb7  gcc/testsuite/gdc.test/compilable/testtempl2.d
! 3c1fefcbc4a687c71ec41c49e899b170  gcc/testsuite/gdc.test/compilable/traits.d
  850c921b1056bbd4c8ac2b72d8f27871  gcc/testsuite/gdc.test/compilable/traits_getFunctionAttributes.d
  0da951db343407cecaa9f85317fb649d  gcc/testsuite/gdc.test/compilable/transition_in.d
  2a5c3303f2fc00fbaf51ab7e1a392eee  gcc/testsuite/gdc.test/compilable/typeid_name.d
  ac9e751e20c95911b8e0c1bc570c6124  gcc/testsuite/gdc.test/compilable/uda.d
! aafbda4aa90d5d90bdd9da02d53073f3  gcc/testsuite/gdc.test/compilable/udamodule1.d
  fddab229d4f220f7768aa32bff4eb235  gcc/testsuite/gdc.test/compilable/udamodule2.d
  05d2b62ab46fd89af248af1c2e5be2c1  gcc/testsuite/gdc.test/compilable/union_initialization.d
  1753f2fe39db70816ce04ce3434fe21e  gcc/testsuite/gdc.test/compilable/user_defined_attributes.d
  b13edd5ae1b061369112622cadbdc3da  gcc/testsuite/gdc.test/compilable/vararg.d
! 2b5ec5aa69ef9f9237cad8031cd36653  gcc/testsuite/gdc.test/compilable/vcg-ast.d
! 3bf5604deccd98b27e2a9b82949bcee4  gcc/testsuite/gdc.test/compilable/vcg_ast_compilable.d
! 97f5ddda04deb7f2b8bf64fd30dfdbd5  gcc/testsuite/gdc.test/compilable/verrors_spec.d
  7c3dc0b69abaf4feb7674c4ea5304c4d  gcc/testsuite/gdc.test/compilable/version.d
  7ea9e82ff7eecd14d9b7809d9156aad5  gcc/testsuite/gdc.test/compilable/vgc1.d
  8b1d1f09cc831f47f82a490c8ef78d15  gcc/testsuite/gdc.test/compilable/vgc2.d
*************** e39d851e2d6df0fb0a228237d9973bdc  gcc/te
*** 89806,89831 ****
  fe3fe69f3ba0159a4ec76976ea3bf053  gcc/testsuite/gdc.test/compilable/vtemplates_list.d
  6abb1560fbe9e7a13c92048cd6f7cc17  gcc/testsuite/gdc.test/compilable/warn12809.d
  3f10c16cee535253ce680482a86cefd8  gcc/testsuite/gdc.test/compilable/warn3882.d
! 8909f89f0f6816bf7c640ff8baa3280f  gcc/testsuite/gdc.test/compilable/zerosize.d
  0c74ef80707c77da3fffdc3a03c5ab16  gcc/testsuite/gdc.test/fail_compilation/aa_init.d
  18907c6d791bf506f12bb09b49c6a960  gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d
  e0066ba6846a84c27c5813f1eae1f740  gcc/testsuite/gdc.test/fail_compilation/aliasassign.d
  724063393d084db2d74d55a0653dbf2f  gcc/testsuite/gdc.test/fail_compilation/aliasassign1.d
  44e432d8553e9d7349664fe96270cd70  gcc/testsuite/gdc.test/fail_compilation/aliasassign2.d
  29ac4b31cfdfb34ac1753068addb9296  gcc/testsuite/gdc.test/fail_compilation/already_defined.d
  f1494240b1a0246715331bbcc6d7e5fb  gcc/testsuite/gdc.test/fail_compilation/array_bool.d
! 63afb01a0b6fff9b6467081d4395761b  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic.d
! 3cb5e169f62e47f0dc76baf96ea40be8  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nogc.d
! a678b4f7455b5d95076cb5e9e354728f  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nothrow.d
! ff71b40642b027a985329b87ab14753b  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_pure.d
  e309e5ed61e9e05b734a04331138794f  gcc/testsuite/gdc.test/fail_compilation/b12504.d
  781af0061ee627ed6ea3f18dd0f84c5b  gcc/testsuite/gdc.test/fail_compilation/b15069.d
  6830b0c11beb2de9c49b65c98e786c9b  gcc/testsuite/gdc.test/fail_compilation/b15875.d
  b6332dec945b97029df39816a3557bdb  gcc/testsuite/gdc.test/fail_compilation/b15909.d
  8fed1f888ca3069bb93b8814d57f8781  gcc/testsuite/gdc.test/fail_compilation/b16967.d
! 7ea1134efd7ddebf95db3eff5f8333d7  gcc/testsuite/gdc.test/fail_compilation/b17285.d
  b25a7e2f51b717b255276caf9def0edb  gcc/testsuite/gdc.test/fail_compilation/b17918.d
! 635dccd0556a1bf5b93a7dbef2493c3d  gcc/testsuite/gdc.test/fail_compilation/b19523.d
  70f44a69e3432b832cb6995838232f3a  gcc/testsuite/gdc.test/fail_compilation/b19685.d
  18f820ae64f4314467fa918450b9ca03  gcc/testsuite/gdc.test/fail_compilation/b19691.d
  beac1dce62bb696484c206c8fd65a0b8  gcc/testsuite/gdc.test/fail_compilation/b19691e.d
--- 96460,96488 ----
  fe3fe69f3ba0159a4ec76976ea3bf053  gcc/testsuite/gdc.test/compilable/vtemplates_list.d
  6abb1560fbe9e7a13c92048cd6f7cc17  gcc/testsuite/gdc.test/compilable/warn12809.d
  3f10c16cee535253ce680482a86cefd8  gcc/testsuite/gdc.test/compilable/warn3882.d
! 3619290d2eaa470d906ed2d6f8b6c204  gcc/testsuite/gdc.test/compilable/zerosize.d
  0c74ef80707c77da3fffdc3a03c5ab16  gcc/testsuite/gdc.test/fail_compilation/aa_init.d
  18907c6d791bf506f12bb09b49c6a960  gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d
+ a5a20f75e5142d9aad7441377e68d4d7  gcc/testsuite/gdc.test/fail_compilation/alias_instance_member.d
+ af5050908274f8744817cc75b813df45  gcc/testsuite/gdc.test/fail_compilation/alias_instance_member2.d
  e0066ba6846a84c27c5813f1eae1f740  gcc/testsuite/gdc.test/fail_compilation/aliasassign.d
  724063393d084db2d74d55a0653dbf2f  gcc/testsuite/gdc.test/fail_compilation/aliasassign1.d
  44e432d8553e9d7349664fe96270cd70  gcc/testsuite/gdc.test/fail_compilation/aliasassign2.d
  29ac4b31cfdfb34ac1753068addb9296  gcc/testsuite/gdc.test/fail_compilation/already_defined.d
  f1494240b1a0246715331bbcc6d7e5fb  gcc/testsuite/gdc.test/fail_compilation/array_bool.d
! e904975d2ed08d9df6be950c6e4367f8  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic.d
! 49293181f36206b61e8e51304901d4e2  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nogc.d
! 7e884f33ed86017b5756d5dc8e0a4230  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nothrow.d
! c3b3c600561b964c9c3fdb4551f18db9  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_pure.d
! 6e96ecf7185ac9cc5f26c3c7fff7a5dd  gcc/testsuite/gdc.test/fail_compilation/auto_ref_inout.d
  e309e5ed61e9e05b734a04331138794f  gcc/testsuite/gdc.test/fail_compilation/b12504.d
  781af0061ee627ed6ea3f18dd0f84c5b  gcc/testsuite/gdc.test/fail_compilation/b15069.d
  6830b0c11beb2de9c49b65c98e786c9b  gcc/testsuite/gdc.test/fail_compilation/b15875.d
  b6332dec945b97029df39816a3557bdb  gcc/testsuite/gdc.test/fail_compilation/b15909.d
  8fed1f888ca3069bb93b8814d57f8781  gcc/testsuite/gdc.test/fail_compilation/b16967.d
! da3cace4c2549ab230b1a353322ec4e8  gcc/testsuite/gdc.test/fail_compilation/b17285.d
  b25a7e2f51b717b255276caf9def0edb  gcc/testsuite/gdc.test/fail_compilation/b17918.d
! 5d041e1fe57e04f8f29dcf8a96ee9e6a  gcc/testsuite/gdc.test/fail_compilation/b19523.d
  70f44a69e3432b832cb6995838232f3a  gcc/testsuite/gdc.test/fail_compilation/b19685.d
  18f820ae64f4314467fa918450b9ca03  gcc/testsuite/gdc.test/fail_compilation/b19691.d
  beac1dce62bb696484c206c8fd65a0b8  gcc/testsuite/gdc.test/fail_compilation/b19691e.d
*************** a146d0446299030be7023391776dc61c  gcc/te
*** 89839,89852 ****
  47c41c40dd4bf706c7dd71dc9350a9c1  gcc/testsuite/gdc.test/fail_compilation/b3841.d
  4f14c24ff5b09173d0eaac42b8afff9e  gcc/testsuite/gdc.test/fail_compilation/b6227.d
  1803dad8fd943fe1b5364f410f4667b8  gcc/testsuite/gdc.test/fail_compilation/betterc.d
  d48231d61948a296c522365cd0c81005  gcc/testsuite/gdc.test/fail_compilation/biterrors.d
  f745eda1a6614a93d1b62cc2fd57698e  gcc/testsuite/gdc.test/fail_compilation/biterrors2.d
  1afbd403b0cee5367ebd00dd6c1ae937  gcc/testsuite/gdc.test/fail_compilation/biterrors3.d
  bff631f408d6b1d6f1c1b401e3b1fade  gcc/testsuite/gdc.test/fail_compilation/biterrors4.d
  27e3b2b10b6a02aca843ef22bde6fff0  gcc/testsuite/gdc.test/fail_compilation/bug15613.d
  340f5391f34df0ae26180bb672129391  gcc/testsuite/gdc.test/fail_compilation/bug16165.d
  6fdc01527eb87db969507dc657c75baa  gcc/testsuite/gdc.test/fail_compilation/bug18743.d
! 6936db788778436ad32bd68aca166348  gcc/testsuite/gdc.test/fail_compilation/bug19569.d
  39ffa560217f81dec6d2733547b17845  gcc/testsuite/gdc.test/fail_compilation/bug4283.d
  e10319cae3a1fe5d89a6e7220f4d3617  gcc/testsuite/gdc.test/fail_compilation/bug5.d
  68e9d113721c19252710aced1e3ddae2  gcc/testsuite/gdc.test/fail_compilation/bug5096.d
--- 96496,96513 ----
  47c41c40dd4bf706c7dd71dc9350a9c1  gcc/testsuite/gdc.test/fail_compilation/b3841.d
  4f14c24ff5b09173d0eaac42b8afff9e  gcc/testsuite/gdc.test/fail_compilation/b6227.d
  1803dad8fd943fe1b5364f410f4667b8  gcc/testsuite/gdc.test/fail_compilation/betterc.d
+ 6c9e7c3fa8a5746db70b4f4968c65b2f  gcc/testsuite/gdc.test/fail_compilation/binexperr.d
  d48231d61948a296c522365cd0c81005  gcc/testsuite/gdc.test/fail_compilation/biterrors.d
  f745eda1a6614a93d1b62cc2fd57698e  gcc/testsuite/gdc.test/fail_compilation/biterrors2.d
  1afbd403b0cee5367ebd00dd6c1ae937  gcc/testsuite/gdc.test/fail_compilation/biterrors3.d
  bff631f408d6b1d6f1c1b401e3b1fade  gcc/testsuite/gdc.test/fail_compilation/biterrors4.d
+ 9a02f81c4fd08ba07ae080719ba3eeb1  gcc/testsuite/gdc.test/fail_compilation/biterrors5.d
+ a086a16419dbf6f3d63957383364a1b2  gcc/testsuite/gdc.test/fail_compilation/bitintro.d
+ b78609eaae9e87219c94c7141e00c79d  gcc/testsuite/gdc.test/fail_compilation/bool_cast.d
  27e3b2b10b6a02aca843ef22bde6fff0  gcc/testsuite/gdc.test/fail_compilation/bug15613.d
  340f5391f34df0ae26180bb672129391  gcc/testsuite/gdc.test/fail_compilation/bug16165.d
  6fdc01527eb87db969507dc657c75baa  gcc/testsuite/gdc.test/fail_compilation/bug18743.d
! 90b4cb7f74d75995c16c31b8f217714c  gcc/testsuite/gdc.test/fail_compilation/bug19569.d
  39ffa560217f81dec6d2733547b17845  gcc/testsuite/gdc.test/fail_compilation/bug4283.d
  e10319cae3a1fe5d89a6e7220f4d3617  gcc/testsuite/gdc.test/fail_compilation/bug5.d
  68e9d113721c19252710aced1e3ddae2  gcc/testsuite/gdc.test/fail_compilation/bug5096.d
*************** dfcfc941a23106dfb4aa633010d25044  gcc/te
*** 89854,89862 ****
  6f8846856815fb29b1378e1e5f6d1130  gcc/testsuite/gdc.test/fail_compilation/bug8150a.d
  e40db6207cc66055571f5552ba4dd74e  gcc/testsuite/gdc.test/fail_compilation/bug8150b.d
  a8e4c2d5f03d9351f5d421a208161492  gcc/testsuite/gdc.test/fail_compilation/bug8891.d
! fe1412ae85499e2c5ad56c491ecf3f7d  gcc/testsuite/gdc.test/fail_compilation/bug9631.d
  841e7b9289bdecfa32b91f46d4d274ba  gcc/testsuite/gdc.test/fail_compilation/call_function_type.d
  147cb65542700f79b0a631920f0323af  gcc/testsuite/gdc.test/fail_compilation/callconst.d
  67ff13286b3d3bb060099d604721b4db  gcc/testsuite/gdc.test/fail_compilation/casttuple.d
  26e889aceafb8429694f3505035b149e  gcc/testsuite/gdc.test/fail_compilation/ccast.d
  c6f4e1c23c3f30e355ae3bf161924cdc  gcc/testsuite/gdc.test/fail_compilation/cerrors.d
--- 96515,96524 ----
  6f8846856815fb29b1378e1e5f6d1130  gcc/testsuite/gdc.test/fail_compilation/bug8150a.d
  e40db6207cc66055571f5552ba4dd74e  gcc/testsuite/gdc.test/fail_compilation/bug8150b.d
  a8e4c2d5f03d9351f5d421a208161492  gcc/testsuite/gdc.test/fail_compilation/bug8891.d
! f6fadfb0a65bc332d4cfb40d9311d7fe  gcc/testsuite/gdc.test/fail_compilation/bug9631.d
  841e7b9289bdecfa32b91f46d4d274ba  gcc/testsuite/gdc.test/fail_compilation/call_function_type.d
  147cb65542700f79b0a631920f0323af  gcc/testsuite/gdc.test/fail_compilation/callconst.d
+ 88036bb5984c4b2620b2bf8d243f738b  gcc/testsuite/gdc.test/fail_compilation/cast_qual.d
  67ff13286b3d3bb060099d604721b4db  gcc/testsuite/gdc.test/fail_compilation/casttuple.d
  26e889aceafb8429694f3505035b149e  gcc/testsuite/gdc.test/fail_compilation/ccast.d
  c6f4e1c23c3f30e355ae3bf161924cdc  gcc/testsuite/gdc.test/fail_compilation/cerrors.d
*************** c6f4e1c23c3f30e355ae3bf161924cdc  gcc/te
*** 89865,89887 ****
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
  ac55f5cfdfaa7cf8d01f1887d25ab07a  gcc/testsuite/gdc.test/fail_compilation/class2.d
  77f88d47e1f26f0dd36c1835e6194ba5  gcc/testsuite/gdc.test/fail_compilation/commaexp.d
  e4dae440b5ccb1a673036de2047ca80d  gcc/testsuite/gdc.test/fail_compilation/const_ctor.d
  7ad6096ded5af41d100b5ba0af9ba799  gcc/testsuite/gdc.test/fail_compilation/constraints_aggr.d
! abef410d735fbbafd1e6c203893dd1b8  gcc/testsuite/gdc.test/fail_compilation/constraints_defs.d
  56f47bac41d49c9fa5eb7a9339fe1462  gcc/testsuite/gdc.test/fail_compilation/constraints_func1.d
  5db233bea9c74af73a58faa9ce0f7d3b  gcc/testsuite/gdc.test/fail_compilation/constraints_func2.d
  f1dd188bca733f64851dc2fc4f14ac66  gcc/testsuite/gdc.test/fail_compilation/constraints_func3.d
  29512842d0ee6079821c028b433e10e8  gcc/testsuite/gdc.test/fail_compilation/constraints_func4.d
! 76205a8a72dc711a48874ed6a3cb3c69  gcc/testsuite/gdc.test/fail_compilation/constraints_tmpl.d
  dfd223ee8e19d86aeb106dce298f3061  gcc/testsuite/gdc.test/fail_compilation/covariant_override.d
  9dc9a69704d40f4f8a848aba9d5118b0  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag.d
  65d75f72a7879909e72b5a22c1949602  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag2.d
! 595e629b0d62851c4d4bc6da123a5195  gcc/testsuite/gdc.test/fail_compilation/cppeh1.d
  928d45bd54111a5e63e6cbd42dc55481  gcc/testsuite/gdc.test/fail_compilation/cppeh2.d
! b67e497200c8eaa83d7d2ee91e352f76  gcc/testsuite/gdc.test/fail_compilation/cppmangle.d
  32bd77efb94a7a1a8369659d1697ac55  gcc/testsuite/gdc.test/fail_compilation/cppmangle2.d
! d10ef51e2ba236346c33f305347a1b3a  gcc/testsuite/gdc.test/fail_compilation/cppvar.d
  1ba05446e4c373c3fdbe16b248b90c1c  gcc/testsuite/gdc.test/fail_compilation/ctfe10989.d
  24ee417386f9acb8b0b48425b516c896  gcc/testsuite/gdc.test/fail_compilation/ctfe10995.d
  489e4852a292b484e336ecf177ab97a0  gcc/testsuite/gdc.test/fail_compilation/ctfe11467.d
--- 96527,96551 ----
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
  ac55f5cfdfaa7cf8d01f1887d25ab07a  gcc/testsuite/gdc.test/fail_compilation/class2.d
+ 6a83bed9150cc2db8c0dc26762cd6014  gcc/testsuite/gdc.test/fail_compilation/code_global_scope.d
  77f88d47e1f26f0dd36c1835e6194ba5  gcc/testsuite/gdc.test/fail_compilation/commaexp.d
  e4dae440b5ccb1a673036de2047ca80d  gcc/testsuite/gdc.test/fail_compilation/const_ctor.d
  7ad6096ded5af41d100b5ba0af9ba799  gcc/testsuite/gdc.test/fail_compilation/constraints_aggr.d
! c33ee0f46dedb5c9567ef568034758f7  gcc/testsuite/gdc.test/fail_compilation/constraints_defs.d
  56f47bac41d49c9fa5eb7a9339fe1462  gcc/testsuite/gdc.test/fail_compilation/constraints_func1.d
  5db233bea9c74af73a58faa9ce0f7d3b  gcc/testsuite/gdc.test/fail_compilation/constraints_func2.d
  f1dd188bca733f64851dc2fc4f14ac66  gcc/testsuite/gdc.test/fail_compilation/constraints_func3.d
  29512842d0ee6079821c028b433e10e8  gcc/testsuite/gdc.test/fail_compilation/constraints_func4.d
! 73f78e3739143867cb3e2d9147304904  gcc/testsuite/gdc.test/fail_compilation/constraints_tmpl.d
  dfd223ee8e19d86aeb106dce298f3061  gcc/testsuite/gdc.test/fail_compilation/covariant_override.d
  9dc9a69704d40f4f8a848aba9d5118b0  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag.d
  65d75f72a7879909e72b5a22c1949602  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag2.d
! d5bced259e0562037f603e84900a0529  gcc/testsuite/gdc.test/fail_compilation/cpp_cast.d
! ce086107e8cfd7f4b0fd15bbdb327996  gcc/testsuite/gdc.test/fail_compilation/cppeh1.d
  928d45bd54111a5e63e6cbd42dc55481  gcc/testsuite/gdc.test/fail_compilation/cppeh2.d
! a0c34054fc60b709723acf37302e75d0  gcc/testsuite/gdc.test/fail_compilation/cppmangle.d
  32bd77efb94a7a1a8369659d1697ac55  gcc/testsuite/gdc.test/fail_compilation/cppmangle2.d
! 4301f3b99fc65270565233bead4f018e  gcc/testsuite/gdc.test/fail_compilation/cppvar.d
  1ba05446e4c373c3fdbe16b248b90c1c  gcc/testsuite/gdc.test/fail_compilation/ctfe10989.d
  24ee417386f9acb8b0b48425b516c896  gcc/testsuite/gdc.test/fail_compilation/ctfe10995.d
  489e4852a292b484e336ecf177ab97a0  gcc/testsuite/gdc.test/fail_compilation/ctfe11467.d
*************** e875c4bc47d169566d81fc9e3cd91921  gcc/te
*** 89891,89912 ****
  de17b2a15306feb4124dbd44c07f1477  gcc/testsuite/gdc.test/fail_compilation/ctfe14731.d
  3936599680b8d9b0202e0c9ec9a6221d  gcc/testsuite/gdc.test/fail_compilation/ctfeblock.d
  b8ce66389b00a84b7a0430c007ba2af6  gcc/testsuite/gdc.test/fail_compilation/ctor_attr.d
  b0b58282b0fe3f3fe68b280aefebbf28  gcc/testsuite/gdc.test/fail_compilation/ctypes.d
  2cf4b4d38bcfec6baeb522b946354879  gcc/testsuite/gdc.test/fail_compilation/cwords.d
  5efd0a6cfa12666675ce8951076ece70  gcc/testsuite/gdc.test/fail_compilation/dassert.d
  bc1d8807cf854326de1b4c43a31e885b  gcc/testsuite/gdc.test/fail_compilation/dbitfields.d
  dcca7e17c023779b24f628b1c9e3d282  gcc/testsuite/gdc.test/fail_compilation/ddoc_18083.d
  4d924d33cec417a66c755fe3d7769105  gcc/testsuite/gdc.test/fail_compilation/debugCaseDeclaration.d
! 048678d1d099844514ca11b5d5ab5cb2  gcc/testsuite/gdc.test/fail_compilation/dep_d1_ops.d
  e41028796693073cf78596bf89f2fe18  gcc/testsuite/gdc.test/fail_compilation/depmsg.d
  ac11c760472b9b30ec93e1c3f589dd6a  gcc/testsuite/gdc.test/fail_compilation/depmsg15814.d
  8e33583582257f8d70a4992ecd2674c7  gcc/testsuite/gdc.test/fail_compilation/depmsg15815.d
! cb5c9fb87f88ec5049b61a4ee9b09382  gcc/testsuite/gdc.test/fail_compilation/deprecate1553.d
  ee1d89ac55be93db8883279137ef0a85  gcc/testsuite/gdc.test/fail_compilation/deprecate_getVirtualFunctions.d
  fb2d65527498b849c7a6166457aa4449  gcc/testsuite/gdc.test/fail_compilation/deprecated6760.d
  e3cb450a222f6e7769f2f80109b5669c  gcc/testsuite/gdc.test/fail_compilation/deprecatedImports.d
  f2c7e463732bac008be36eef40f1f794  gcc/testsuite/gdc.test/fail_compilation/deprecatedTemplates.d
- 58bd989a6c4cef0ef2f7111fcc8f2fa0  gcc/testsuite/gdc.test/fail_compilation/deprecateopdot.d
  f6f3553d7b2001f0c682efff6764aa19  gcc/testsuite/gdc.test/fail_compilation/deprecations.d
  c377cc199d79dfeec8e1bca9d50b59f6  gcc/testsuite/gdc.test/fail_compilation/deprecations_preview_in.d
  89725246f834be49561fa26ca1a81abe  gcc/testsuite/gdc.test/fail_compilation/diag10089.d
--- 96555,96576 ----
  de17b2a15306feb4124dbd44c07f1477  gcc/testsuite/gdc.test/fail_compilation/ctfe14731.d
  3936599680b8d9b0202e0c9ec9a6221d  gcc/testsuite/gdc.test/fail_compilation/ctfeblock.d
  b8ce66389b00a84b7a0430c007ba2af6  gcc/testsuite/gdc.test/fail_compilation/ctor_attr.d
+ db15b40f5c9b739572526640e6de1311  gcc/testsuite/gdc.test/fail_compilation/ctor_self_assignment.d
  b0b58282b0fe3f3fe68b280aefebbf28  gcc/testsuite/gdc.test/fail_compilation/ctypes.d
  2cf4b4d38bcfec6baeb522b946354879  gcc/testsuite/gdc.test/fail_compilation/cwords.d
  5efd0a6cfa12666675ce8951076ece70  gcc/testsuite/gdc.test/fail_compilation/dassert.d
  bc1d8807cf854326de1b4c43a31e885b  gcc/testsuite/gdc.test/fail_compilation/dbitfields.d
  dcca7e17c023779b24f628b1c9e3d282  gcc/testsuite/gdc.test/fail_compilation/ddoc_18083.d
  4d924d33cec417a66c755fe3d7769105  gcc/testsuite/gdc.test/fail_compilation/debugCaseDeclaration.d
! 391bf2c486ba46a7584758512fc0361d  gcc/testsuite/gdc.test/fail_compilation/dep_d1_ops.d
  e41028796693073cf78596bf89f2fe18  gcc/testsuite/gdc.test/fail_compilation/depmsg.d
  ac11c760472b9b30ec93e1c3f589dd6a  gcc/testsuite/gdc.test/fail_compilation/depmsg15814.d
  8e33583582257f8d70a4992ecd2674c7  gcc/testsuite/gdc.test/fail_compilation/depmsg15815.d
! 60b78d3967c847f2f25f175a642dc90c  gcc/testsuite/gdc.test/fail_compilation/deprecate1553.d
  ee1d89ac55be93db8883279137ef0a85  gcc/testsuite/gdc.test/fail_compilation/deprecate_getVirtualFunctions.d
  fb2d65527498b849c7a6166457aa4449  gcc/testsuite/gdc.test/fail_compilation/deprecated6760.d
  e3cb450a222f6e7769f2f80109b5669c  gcc/testsuite/gdc.test/fail_compilation/deprecatedImports.d
  f2c7e463732bac008be36eef40f1f794  gcc/testsuite/gdc.test/fail_compilation/deprecatedTemplates.d
  f6f3553d7b2001f0c682efff6764aa19  gcc/testsuite/gdc.test/fail_compilation/deprecations.d
  c377cc199d79dfeec8e1bca9d50b59f6  gcc/testsuite/gdc.test/fail_compilation/deprecations_preview_in.d
  89725246f834be49561fa26ca1a81abe  gcc/testsuite/gdc.test/fail_compilation/diag10089.d
*************** da8bedca9f07c5500e3fd0c0d624138f  gcc/te
*** 89915,89923 ****
  a1d019b8bb7c01f28160ed22a7e731c2  gcc/testsuite/gdc.test/fail_compilation/diag10169.d
  c8b81e8d799716ffe482b951a7a5784c  gcc/testsuite/gdc.test/fail_compilation/diag10221.d
  95a3eab7c2b730bb39cc59728912d49b  gcc/testsuite/gdc.test/fail_compilation/diag10221a.d
! 37c465e8fe286f976c0d8a2f4c1ed0ac  gcc/testsuite/gdc.test/fail_compilation/diag10319.d
  3ac9c2c67c7cc5aacc8d31f1d8cad8de  gcc/testsuite/gdc.test/fail_compilation/diag10327.d
! 8c5aee5c8821623c5fa500cc7b794ab5  gcc/testsuite/gdc.test/fail_compilation/diag10359.d
  97f43a15ee0e3ae55ecb8ee2d5a4ef88  gcc/testsuite/gdc.test/fail_compilation/diag10405.d
  dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
--- 96579,96587 ----
  a1d019b8bb7c01f28160ed22a7e731c2  gcc/testsuite/gdc.test/fail_compilation/diag10169.d
  c8b81e8d799716ffe482b951a7a5784c  gcc/testsuite/gdc.test/fail_compilation/diag10221.d
  95a3eab7c2b730bb39cc59728912d49b  gcc/testsuite/gdc.test/fail_compilation/diag10221a.d
! b3ebff7152b0f06071ba88e3656e95e4  gcc/testsuite/gdc.test/fail_compilation/diag10319.d
  3ac9c2c67c7cc5aacc8d31f1d8cad8de  gcc/testsuite/gdc.test/fail_compilation/diag10327.d
! 3ec70637f09bdf76809831af493306ba  gcc/testsuite/gdc.test/fail_compilation/diag10359.d
  97f43a15ee0e3ae55ecb8ee2d5a4ef88  gcc/testsuite/gdc.test/fail_compilation/diag10405.d
  dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
*************** af1ef4e6b4bea31048da901e6e7ef3ec  gcc/te
*** 89930,89946 ****
  8f5344172ec0e3c06210b931eb8b2289  gcc/testsuite/gdc.test/fail_compilation/diag10984.d
  29a03f85bb4ab7f29f1c7276976fe7c2  gcc/testsuite/gdc.test/fail_compilation/diag11078.d
  56b76f8f79c22f37c4a483d94cc992c5  gcc/testsuite/gdc.test/fail_compilation/diag11132.d
! 5609c196ea47f6f0d67f688b3ef7eb4e  gcc/testsuite/gdc.test/fail_compilation/diag11198.d
  085c1cdc700e65be81dd4c7bf52294cb  gcc/testsuite/gdc.test/fail_compilation/diag11423.d
  1c68c5aacc3641651532fa5f792fd7e8  gcc/testsuite/gdc.test/fail_compilation/diag11425.d
  1595d3eede6d84963a630a22f6874c62  gcc/testsuite/gdc.test/fail_compilation/diag11727.d
  813d95fb60066d2ba3e9ce43033f08a1  gcc/testsuite/gdc.test/fail_compilation/diag11756.d
  9b296e312459378057729151fc0b586b  gcc/testsuite/gdc.test/fail_compilation/diag11759.d
! 5a76943d6ca324d2f66f6e758191b212  gcc/testsuite/gdc.test/fail_compilation/diag11769.d
  cd21f58b757a4597aecb16109e045703  gcc/testsuite/gdc.test/fail_compilation/diag11819a.d
  1690644d73076f8481fb08551620418d  gcc/testsuite/gdc.test/fail_compilation/diag11819b.d
  252b37d75156f0fead6921ecc03b669c  gcc/testsuite/gdc.test/fail_compilation/diag11840.d
! 2e2f958d9551ec74a3cc9136a8412daf  gcc/testsuite/gdc.test/fail_compilation/diag12063.d
  36eaacf4aa9b526badb51a1b2a781cff  gcc/testsuite/gdc.test/fail_compilation/diag12124.d
  42592ce737085699a7e4f2328a040c3d  gcc/testsuite/gdc.test/fail_compilation/diag12280.d
  cce35e6668151aa556db94f1c688fa72  gcc/testsuite/gdc.test/fail_compilation/diag12312.d
--- 96594,96610 ----
  8f5344172ec0e3c06210b931eb8b2289  gcc/testsuite/gdc.test/fail_compilation/diag10984.d
  29a03f85bb4ab7f29f1c7276976fe7c2  gcc/testsuite/gdc.test/fail_compilation/diag11078.d
  56b76f8f79c22f37c4a483d94cc992c5  gcc/testsuite/gdc.test/fail_compilation/diag11132.d
! 6074f5d192e6e491948222fadf5bdc0a  gcc/testsuite/gdc.test/fail_compilation/diag11198.d
  085c1cdc700e65be81dd4c7bf52294cb  gcc/testsuite/gdc.test/fail_compilation/diag11423.d
  1c68c5aacc3641651532fa5f792fd7e8  gcc/testsuite/gdc.test/fail_compilation/diag11425.d
  1595d3eede6d84963a630a22f6874c62  gcc/testsuite/gdc.test/fail_compilation/diag11727.d
  813d95fb60066d2ba3e9ce43033f08a1  gcc/testsuite/gdc.test/fail_compilation/diag11756.d
  9b296e312459378057729151fc0b586b  gcc/testsuite/gdc.test/fail_compilation/diag11759.d
! a0ce0b36474ed19c22eee8fc44c08474  gcc/testsuite/gdc.test/fail_compilation/diag11769.d
  cd21f58b757a4597aecb16109e045703  gcc/testsuite/gdc.test/fail_compilation/diag11819a.d
  1690644d73076f8481fb08551620418d  gcc/testsuite/gdc.test/fail_compilation/diag11819b.d
  252b37d75156f0fead6921ecc03b669c  gcc/testsuite/gdc.test/fail_compilation/diag11840.d
! 0e6c362faf8a3b3484dabdfe4ef52d7c  gcc/testsuite/gdc.test/fail_compilation/diag12063.d
  36eaacf4aa9b526badb51a1b2a781cff  gcc/testsuite/gdc.test/fail_compilation/diag12124.d
  42592ce737085699a7e4f2328a040c3d  gcc/testsuite/gdc.test/fail_compilation/diag12280.d
  cce35e6668151aa556db94f1c688fa72  gcc/testsuite/gdc.test/fail_compilation/diag12312.d
*************** ec941f3b9443e4300eb4f2b5c013b752  gcc/te
*** 89951,89963 ****
  4aa0e121f0b2bab5aa266044e6c5265b  gcc/testsuite/gdc.test/fail_compilation/diag12640.d
  7e901d0a60622bbf5d21e068b85dae87  gcc/testsuite/gdc.test/fail_compilation/diag12678.d
  e5a44aa59f0a8c539df417253dfc757d  gcc/testsuite/gdc.test/fail_compilation/diag12777.d
! 613876036a2ae72ac0bc6a3d2af033b8  gcc/testsuite/gdc.test/fail_compilation/diag12829.d
  12ad99f038ff9d4b130534d896ba7e3e  gcc/testsuite/gdc.test/fail_compilation/diag13028.d
  26a273e7e974918905dcd941ce0a6b28  gcc/testsuite/gdc.test/fail_compilation/diag13082.d
  d4bdce5da010bdb608d7a34a8a7f5740  gcc/testsuite/gdc.test/fail_compilation/diag13142.d
  2e73e39ef5c6b079fc9213c4cbc6b7f7  gcc/testsuite/gdc.test/fail_compilation/diag13215.d
  85dab21ff2de797ebee17a2ddc1fb394  gcc/testsuite/gdc.test/fail_compilation/diag13281.d
! 97d3e50e19ff8502b51f9204e824c38f  gcc/testsuite/gdc.test/fail_compilation/diag13320.d
  dd421ed0f9abe1a714c279007e2a5592  gcc/testsuite/gdc.test/fail_compilation/diag13333.d
  dab78f06d70c642d12537815a7c1109a  gcc/testsuite/gdc.test/fail_compilation/diag13528.d
  6b9b5faf045c28f8636a0b372a3ab241  gcc/testsuite/gdc.test/fail_compilation/diag13609a.d
--- 96615,96627 ----
  4aa0e121f0b2bab5aa266044e6c5265b  gcc/testsuite/gdc.test/fail_compilation/diag12640.d
  7e901d0a60622bbf5d21e068b85dae87  gcc/testsuite/gdc.test/fail_compilation/diag12678.d
  e5a44aa59f0a8c539df417253dfc757d  gcc/testsuite/gdc.test/fail_compilation/diag12777.d
! c55c37667c762888dabdff8ce9120e49  gcc/testsuite/gdc.test/fail_compilation/diag12829.d
  12ad99f038ff9d4b130534d896ba7e3e  gcc/testsuite/gdc.test/fail_compilation/diag13028.d
  26a273e7e974918905dcd941ce0a6b28  gcc/testsuite/gdc.test/fail_compilation/diag13082.d
  d4bdce5da010bdb608d7a34a8a7f5740  gcc/testsuite/gdc.test/fail_compilation/diag13142.d
  2e73e39ef5c6b079fc9213c4cbc6b7f7  gcc/testsuite/gdc.test/fail_compilation/diag13215.d
  85dab21ff2de797ebee17a2ddc1fb394  gcc/testsuite/gdc.test/fail_compilation/diag13281.d
! a427b8c28c148a7f7f138b8ae0465e39  gcc/testsuite/gdc.test/fail_compilation/diag13320.d
  dd421ed0f9abe1a714c279007e2a5592  gcc/testsuite/gdc.test/fail_compilation/diag13333.d
  dab78f06d70c642d12537815a7c1109a  gcc/testsuite/gdc.test/fail_compilation/diag13528.d
  6b9b5faf045c28f8636a0b372a3ab241  gcc/testsuite/gdc.test/fail_compilation/diag13609a.d
*************** dab78f06d70c642d12537815a7c1109a  gcc/te
*** 89966,89972 ****
  26daf2172eb46379fbb269b93308bd84  gcc/testsuite/gdc.test/fail_compilation/diag13884.d
  732c9b90ba07e677abf04637b57a8357  gcc/testsuite/gdc.test/fail_compilation/diag13942.d
  5f54e2c232ee92552062d43046efc900  gcc/testsuite/gdc.test/fail_compilation/diag14102.d
! ad83cb0ebb490d012a82a8fc7a478220  gcc/testsuite/gdc.test/fail_compilation/diag14145.d
  470f9e960030641e13352fc666d6c8fe  gcc/testsuite/gdc.test/fail_compilation/diag14163.d
  1a2929addc83dac2ec8bfe022f2d3a36  gcc/testsuite/gdc.test/fail_compilation/diag14235.d
  a9ab100aae0780694501ba90b3941bf1  gcc/testsuite/gdc.test/fail_compilation/diag14818.d
--- 96630,96636 ----
  26daf2172eb46379fbb269b93308bd84  gcc/testsuite/gdc.test/fail_compilation/diag13884.d
  732c9b90ba07e677abf04637b57a8357  gcc/testsuite/gdc.test/fail_compilation/diag13942.d
  5f54e2c232ee92552062d43046efc900  gcc/testsuite/gdc.test/fail_compilation/diag14102.d
! 8b605e7ee10d0e76b33128ca3c5aa485  gcc/testsuite/gdc.test/fail_compilation/diag14145.d
  470f9e960030641e13352fc666d6c8fe  gcc/testsuite/gdc.test/fail_compilation/diag14163.d
  1a2929addc83dac2ec8bfe022f2d3a36  gcc/testsuite/gdc.test/fail_compilation/diag14235.d
  a9ab100aae0780694501ba90b3941bf1  gcc/testsuite/gdc.test/fail_compilation/diag14818.d
*************** a9ab100aae0780694501ba90b3941bf1  gcc/te
*** 89976,89988 ****
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
  3cab5d2691dfff48d4950d494d943e02  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
  00c5d18cc76c3f36c5504cb23eee10ce  gcc/testsuite/gdc.test/fail_compilation/diag15340.d
! b2c274e49ec1f078f27e11c2c3c1480f  gcc/testsuite/gdc.test/fail_compilation/diag15411.d
  f28f753c50d24ae45fd4aacf60d88ef4  gcc/testsuite/gdc.test/fail_compilation/diag1566.d
  079ea590e7e1ad4e2aa15133ada08c5a  gcc/testsuite/gdc.test/fail_compilation/diag15669.d
  89890e8ceb2db133ec22d2c40ab958a4  gcc/testsuite/gdc.test/fail_compilation/diag15713.d
  88da152ad7463583e00c228e6531a782  gcc/testsuite/gdc.test/fail_compilation/diag15974.d
  53f97b18fcd9150362cfa32203d1ce90  gcc/testsuite/gdc.test/fail_compilation/diag16271.d
! 79eeb3e32b34783ae3c4ccea6caf4721  gcc/testsuite/gdc.test/fail_compilation/diag16499.d
  ca21748c3c8002f58049b5f03aa8eb8b  gcc/testsuite/gdc.test/fail_compilation/diag16976.d
  92d3bc16f328d2eb63d1979063743fc2  gcc/testsuite/gdc.test/fail_compilation/diag16977.d
  74b4ddb2d570b5b689c757647aca8d12  gcc/testsuite/gdc.test/fail_compilation/diag1730.d
--- 96640,96652 ----
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
  3cab5d2691dfff48d4950d494d943e02  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
  00c5d18cc76c3f36c5504cb23eee10ce  gcc/testsuite/gdc.test/fail_compilation/diag15340.d
! 125fef3d0ff9bdc965b0206874c7f59f  gcc/testsuite/gdc.test/fail_compilation/diag15411.d
  f28f753c50d24ae45fd4aacf60d88ef4  gcc/testsuite/gdc.test/fail_compilation/diag1566.d
  079ea590e7e1ad4e2aa15133ada08c5a  gcc/testsuite/gdc.test/fail_compilation/diag15669.d
  89890e8ceb2db133ec22d2c40ab958a4  gcc/testsuite/gdc.test/fail_compilation/diag15713.d
  88da152ad7463583e00c228e6531a782  gcc/testsuite/gdc.test/fail_compilation/diag15974.d
  53f97b18fcd9150362cfa32203d1ce90  gcc/testsuite/gdc.test/fail_compilation/diag16271.d
! 06506efaedac46ce7a8c8ef28423c1fa  gcc/testsuite/gdc.test/fail_compilation/diag16499.d
  ca21748c3c8002f58049b5f03aa8eb8b  gcc/testsuite/gdc.test/fail_compilation/diag16976.d
  92d3bc16f328d2eb63d1979063743fc2  gcc/testsuite/gdc.test/fail_compilation/diag16977.d
  74b4ddb2d570b5b689c757647aca8d12  gcc/testsuite/gdc.test/fail_compilation/diag1730.d
*************** ec86243ec70481877d5034309610fe9b  gcc/te
*** 89992,90004 ****
  ef13cff5613132d38394dfcda321198a  gcc/testsuite/gdc.test/fail_compilation/diag19196.d
  41495e7d17eb1bd93beea0ff106e0f2e  gcc/testsuite/gdc.test/fail_compilation/diag19225.d
  e382e1fe742ff323d95980a7b3337beb  gcc/testsuite/gdc.test/fail_compilation/diag20059.d
! 654b563b2a45dc23d6a82ee001d82117  gcc/testsuite/gdc.test/fail_compilation/diag20268.d
  c3638a460a108e562e095fa04d0d60be  gcc/testsuite/gdc.test/fail_compilation/diag20518.d
  b233b20e604b69dca9939988d5ecf22f  gcc/testsuite/gdc.test/fail_compilation/diag21883.d
! 5c89600971dd19099525abe20ce5f158  gcc/testsuite/gdc.test/fail_compilation/diag23295.d
  f66e20c29e1a7326b2bb6f3603ba6ec5  gcc/testsuite/gdc.test/fail_compilation/diag23355.d
  224a2021912a4ad8ba087865fa352232  gcc/testsuite/gdc.test/fail_compilation/diag23384.d
  9b6cfcbc4b79fcd4610ac7bcb72ffb67  gcc/testsuite/gdc.test/fail_compilation/diag2452.d
  6f951b34310a15382960e9f406c8484e  gcc/testsuite/gdc.test/fail_compilation/diag3013.d
  863bf09faa109691f5e866a564d3203b  gcc/testsuite/gdc.test/fail_compilation/diag3438.d
  e771c3d0b572b4c3cad86d219b8ae6bc  gcc/testsuite/gdc.test/fail_compilation/diag3672.d
--- 96656,96670 ----
  ef13cff5613132d38394dfcda321198a  gcc/testsuite/gdc.test/fail_compilation/diag19196.d
  41495e7d17eb1bd93beea0ff106e0f2e  gcc/testsuite/gdc.test/fail_compilation/diag19225.d
  e382e1fe742ff323d95980a7b3337beb  gcc/testsuite/gdc.test/fail_compilation/diag20059.d
! 4198e7803be0c3f2149c71cd593a93f8  gcc/testsuite/gdc.test/fail_compilation/diag20268.d
  c3638a460a108e562e095fa04d0d60be  gcc/testsuite/gdc.test/fail_compilation/diag20518.d
+ 457aa617fd69d674f1c727ab40e3f57a  gcc/testsuite/gdc.test/fail_compilation/diag20888.d
  b233b20e604b69dca9939988d5ecf22f  gcc/testsuite/gdc.test/fail_compilation/diag21883.d
! a8a51a979aa2bf112cbe9f389a7f7800  gcc/testsuite/gdc.test/fail_compilation/diag23295.d
  f66e20c29e1a7326b2bb6f3603ba6ec5  gcc/testsuite/gdc.test/fail_compilation/diag23355.d
  224a2021912a4ad8ba087865fa352232  gcc/testsuite/gdc.test/fail_compilation/diag23384.d
  9b6cfcbc4b79fcd4610ac7bcb72ffb67  gcc/testsuite/gdc.test/fail_compilation/diag2452.d
+ d4ef3a44b3580a7a2140547743a8fa5f  gcc/testsuite/gdc.test/fail_compilation/diag24812.d
  6f951b34310a15382960e9f406c8484e  gcc/testsuite/gdc.test/fail_compilation/diag3013.d
  863bf09faa109691f5e866a564d3203b  gcc/testsuite/gdc.test/fail_compilation/diag3438.d
  e771c3d0b572b4c3cad86d219b8ae6bc  gcc/testsuite/gdc.test/fail_compilation/diag3672.d
*************** b7b293d85267d1066cc299d96cd9f665  gcc/te
*** 90056,90097 ****
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
  f4fc4015b440555b99731b7d356b9507  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
  c71eae763fc17f4bb9c9edc5c73097ab  gcc/testsuite/gdc.test/fail_compilation/diag9479.d
! 3045cdd4362ba0290203c125bb24d788  gcc/testsuite/gdc.test/fail_compilation/diag9620.d
  246e59218a53b00f8b5f145a8a108ecb  gcc/testsuite/gdc.test/fail_compilation/diag9635.d
! 5876acaf72ec719af891cafb7f2f6c01  gcc/testsuite/gdc.test/fail_compilation/diag9679.d
  e6846c6e7f24e0dbf859ddb4ee3797da  gcc/testsuite/gdc.test/fail_compilation/diag9765.d
! 3a3d4d83fc2d33544b2ecbe25a5416ed  gcc/testsuite/gdc.test/fail_compilation/diag9831.d
  0a1ea1d064f1b004feea83c95bdd98d3  gcc/testsuite/gdc.test/fail_compilation/diag9861.d
  31e92e3db25af5b2294a1f6fee342253  gcc/testsuite/gdc.test/fail_compilation/diag9880.d
  18dc0edc9cf3c2e217b033ad72134100  gcc/testsuite/gdc.test/fail_compilation/diag9961.d
- 815d75b1b05468e56000f53066f40701  gcc/testsuite/gdc.test/fail_compilation/diag_class_alloc.d
  019968fb4ac455c35c49d8374b556ec3  gcc/testsuite/gdc.test/fail_compilation/diag_cstyle.d
! ac1ecc983943befbdb99b4963b9bbd6a  gcc/testsuite/gdc.test/fail_compilation/diag_debug_conditional.d
  a80d9b7356faf786d0cfbbc683dd384b  gcc/testsuite/gdc.test/fail_compilation/diag_err1.d
! e9d41a39faeccdf482bf48c2e0d9bb71  gcc/testsuite/gdc.test/fail_compilation/diag_funclit.d
  6dcb531b3e3bdd493826c6b9e087ce54  gcc/testsuite/gdc.test/fail_compilation/diag_in_array.d
! bd8c1d2e38ba383e6edf626fe29805cd  gcc/testsuite/gdc.test/fail_compilation/diag_template_alias.d
! 0bc93ed77e9a47eca661baedbb627af6  gcc/testsuite/gdc.test/fail_compilation/diag_template_this.d
  93111526c56d63a0584e54a0e3b61351  gcc/testsuite/gdc.test/fail_compilation/diagin.d
  bca78167ff7a3c97e08c33b9bba2a2eb  gcc/testsuite/gdc.test/fail_compilation/diaginref.d
  b86857b761dfaeeb90223b1f57829a20  gcc/testsuite/gdc.test/fail_compilation/dip22a.d
  9f256dbd3ec217ad95c9e492a2137864  gcc/testsuite/gdc.test/fail_compilation/dip22b.d
  0e99be6b01ea3e8a145b5f587ed83d23  gcc/testsuite/gdc.test/fail_compilation/dip22e.d
! 1b912760cdec43dea02cb1e1a09bd642  gcc/testsuite/gdc.test/fail_compilation/dip25.d
  9feee5abd1332de813bbab90f35c3bf2  gcc/testsuite/gdc.test/fail_compilation/dip25flag.d
  342f6526dab7f6966b6f04965f84d2cc  gcc/testsuite/gdc.test/fail_compilation/disable.d
  3c2f76ba05acd80893f8b5c379e55865  gcc/testsuite/gdc.test/fail_compilation/disable_new.d
  bf2e3014e67e7bf4960b6bdb913f9523  gcc/testsuite/gdc.test/fail_compilation/discard_value.d
  478da6239f3c9f3d950a69101379fd84  gcc/testsuite/gdc.test/fail_compilation/dtor_attributes.d
  c6868dc189d18c29ad586141986dc0aa  gcc/testsuite/gdc.test/fail_compilation/dtorfields_attributes.d
! f051de03a6d83a637bf7dc991cc8b793  gcc/testsuite/gdc.test/fail_compilation/e15876_1.d
! 6211acf057597ef0e99b4f8f264d8dab  gcc/testsuite/gdc.test/fail_compilation/e15876_2.d
! 04cd8b46efe829be77a4be61c1cac880  gcc/testsuite/gdc.test/fail_compilation/e15876_3.d
! 785fd34d42dc72ff8b10e9286489fe47  gcc/testsuite/gdc.test/fail_compilation/e15876_4.d
! bcd4ac065abd9ef5c2a90404d3c2ec71  gcc/testsuite/gdc.test/fail_compilation/e15876_5.d
  4f130fa0b34093205fd971c815202639  gcc/testsuite/gdc.test/fail_compilation/e15876_6.d
  9c85e4911f1d459b180bb94b53ede6aa  gcc/testsuite/gdc.test/fail_compilation/e7804_1.d
  ebd624415ce51467f6282d2f66d82e6b  gcc/testsuite/gdc.test/fail_compilation/e7804_2.d
  bec96d18023efd76c6a9a3f99ff127b5  gcc/testsuite/gdc.test/fail_compilation/enum9921.d
  7a7a1aaeb4fc6b303510c71e5a9a9dd1  gcc/testsuite/gdc.test/fail_compilation/enum_function.d
  0b0991fe537454dbe30a83326f834f7a  gcc/testsuite/gdc.test/fail_compilation/enum_init.d
--- 96722,96764 ----
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
  f4fc4015b440555b99731b7d356b9507  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
  c71eae763fc17f4bb9c9edc5c73097ab  gcc/testsuite/gdc.test/fail_compilation/diag9479.d
! 50388db42fe0c7e11e7dcf2c6ffe6e87  gcc/testsuite/gdc.test/fail_compilation/diag9620.d
  246e59218a53b00f8b5f145a8a108ecb  gcc/testsuite/gdc.test/fail_compilation/diag9635.d
! 69e3fa3880278b590033f61e252e48c6  gcc/testsuite/gdc.test/fail_compilation/diag9679.d
  e6846c6e7f24e0dbf859ddb4ee3797da  gcc/testsuite/gdc.test/fail_compilation/diag9765.d
! 00a08977dce97b9d1eddce3580d9df17  gcc/testsuite/gdc.test/fail_compilation/diag9831.d
  0a1ea1d064f1b004feea83c95bdd98d3  gcc/testsuite/gdc.test/fail_compilation/diag9861.d
  31e92e3db25af5b2294a1f6fee342253  gcc/testsuite/gdc.test/fail_compilation/diag9880.d
  18dc0edc9cf3c2e217b033ad72134100  gcc/testsuite/gdc.test/fail_compilation/diag9961.d
  019968fb4ac455c35c49d8374b556ec3  gcc/testsuite/gdc.test/fail_compilation/diag_cstyle.d
! b2151ee28b841591b0cdb081270a98ef  gcc/testsuite/gdc.test/fail_compilation/diag_debug_conditional.d
  a80d9b7356faf786d0cfbbc683dd384b  gcc/testsuite/gdc.test/fail_compilation/diag_err1.d
! 75e065435ac4bb3dcfc7439f8fab4859  gcc/testsuite/gdc.test/fail_compilation/diag_funclit.d
  6dcb531b3e3bdd493826c6b9e087ce54  gcc/testsuite/gdc.test/fail_compilation/diag_in_array.d
! 78e9286966275fbbe0e028c16725b6da  gcc/testsuite/gdc.test/fail_compilation/diag_template_alias.d
! 17d2359f77b1f709861c7e73d9d85abd  gcc/testsuite/gdc.test/fail_compilation/diag_template_this.d
  93111526c56d63a0584e54a0e3b61351  gcc/testsuite/gdc.test/fail_compilation/diagin.d
  bca78167ff7a3c97e08c33b9bba2a2eb  gcc/testsuite/gdc.test/fail_compilation/diaginref.d
  b86857b761dfaeeb90223b1f57829a20  gcc/testsuite/gdc.test/fail_compilation/dip22a.d
  9f256dbd3ec217ad95c9e492a2137864  gcc/testsuite/gdc.test/fail_compilation/dip22b.d
  0e99be6b01ea3e8a145b5f587ed83d23  gcc/testsuite/gdc.test/fail_compilation/dip22e.d
! e1334bfa3c8929594ff2e598c2ee7a92  gcc/testsuite/gdc.test/fail_compilation/dip25.d
  9feee5abd1332de813bbab90f35c3bf2  gcc/testsuite/gdc.test/fail_compilation/dip25flag.d
  342f6526dab7f6966b6f04965f84d2cc  gcc/testsuite/gdc.test/fail_compilation/disable.d
  3c2f76ba05acd80893f8b5c379e55865  gcc/testsuite/gdc.test/fail_compilation/disable_new.d
  bf2e3014e67e7bf4960b6bdb913f9523  gcc/testsuite/gdc.test/fail_compilation/discard_value.d
  478da6239f3c9f3d950a69101379fd84  gcc/testsuite/gdc.test/fail_compilation/dtor_attributes.d
  c6868dc189d18c29ad586141986dc0aa  gcc/testsuite/gdc.test/fail_compilation/dtorfields_attributes.d
! 26dfb38aebb722f022ede99dc83c51f6  gcc/testsuite/gdc.test/fail_compilation/e15876_1.d
! 8f9083ec9917cbe9f4d3c2b47148d6bb  gcc/testsuite/gdc.test/fail_compilation/e15876_2.d
! cc934f60ce92291db90fae9aa247c1cc  gcc/testsuite/gdc.test/fail_compilation/e15876_3.d
! 2115cf562001776976dcedd0aec8d6b3  gcc/testsuite/gdc.test/fail_compilation/e15876_4.d
! 3584a3fe9f95042f9af9f4e97c1186be  gcc/testsuite/gdc.test/fail_compilation/e15876_5.d
  4f130fa0b34093205fd971c815202639  gcc/testsuite/gdc.test/fail_compilation/e15876_6.d
  9c85e4911f1d459b180bb94b53ede6aa  gcc/testsuite/gdc.test/fail_compilation/e7804_1.d
  ebd624415ce51467f6282d2f66d82e6b  gcc/testsuite/gdc.test/fail_compilation/e7804_2.d
+ fdedd24d4e12ed3639529b3e2f51fd8d  gcc/testsuite/gdc.test/fail_compilation/editions.d
+ f14af71cec48d47183b3e19b5de6cf58  gcc/testsuite/gdc.test/fail_compilation/empty_statement.d
  bec96d18023efd76c6a9a3f99ff127b5  gcc/testsuite/gdc.test/fail_compilation/enum9921.d
  7a7a1aaeb4fc6b303510c71e5a9a9dd1  gcc/testsuite/gdc.test/fail_compilation/enum_function.d
  0b0991fe537454dbe30a83326f834f7a  gcc/testsuite/gdc.test/fail_compilation/enum_init.d
*************** f76cf9db0833afa5687645d4c74a9897  gcc/te
*** 90100,90106 ****
  84bebd871a01f556191f22e1fa9eace9  gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
  1124555a8049a8a9c7bf2b25570eba51  gcc/testsuite/gdc.test/fail_compilation/extra-files/test23109/object.d
  3f5c069e644e3f1e6692c83e70049e05  gcc/testsuite/gdc.test/fail_compilation/fail10.d
! 34db3c1cc5f276345570566eb4e02af7  gcc/testsuite/gdc.test/fail_compilation/fail100.d
  88b97a03f929852a192f6fe27a2e618b  gcc/testsuite/gdc.test/fail_compilation/fail10082.d
  16047c5990c17931fbc6575cc3904378  gcc/testsuite/gdc.test/fail_compilation/fail101.d
  4fde9d64edbfbe7ce6810a9d31ed28ec  gcc/testsuite/gdc.test/fail_compilation/fail10102.d
--- 96767,96773 ----
  84bebd871a01f556191f22e1fa9eace9  gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
  1124555a8049a8a9c7bf2b25570eba51  gcc/testsuite/gdc.test/fail_compilation/extra-files/test23109/object.d
  3f5c069e644e3f1e6692c83e70049e05  gcc/testsuite/gdc.test/fail_compilation/fail10.d
! 4cffc98d66ebb3d185235a01979699b2  gcc/testsuite/gdc.test/fail_compilation/fail100.d
  88b97a03f929852a192f6fe27a2e618b  gcc/testsuite/gdc.test/fail_compilation/fail10082.d
  16047c5990c17931fbc6575cc3904378  gcc/testsuite/gdc.test/fail_compilation/fail101.d
  4fde9d64edbfbe7ce6810a9d31ed28ec  gcc/testsuite/gdc.test/fail_compilation/fail10102.d
*************** dd17a2837ac6f2f2d6b2c8561c63a3b6  gcc/te
*** 90115,90144 ****
  b726e7e5862cef761fbffe4798462131  gcc/testsuite/gdc.test/fail_compilation/fail10481.d
  72c8b8ebc6cf14d229679ffa91df4069  gcc/testsuite/gdc.test/fail_compilation/fail105.d
  d847ec9b26b5bec6dbd9d1e1d981d2e5  gcc/testsuite/gdc.test/fail_compilation/fail10528.d
! 10517a9dd8f56e7cb38fc212a4dae607  gcc/testsuite/gdc.test/fail_compilation/fail10534.d
  78a14815b99eb16bff945b3d3f5972aa  gcc/testsuite/gdc.test/fail_compilation/fail106.d
  71288e2e511948061477a0747fecb40e  gcc/testsuite/gdc.test/fail_compilation/fail10630.d
  cb53acf48a2b67325d7f8241e9c9ab8b  gcc/testsuite/gdc.test/fail_compilation/fail10666.d
  132cc39e1c28cccfc1029171f7c406d8  gcc/testsuite/gdc.test/fail_compilation/fail10806.d
  c52e5f9b1281cd06b68144e27329f0a5  gcc/testsuite/gdc.test/fail_compilation/fail109.d
  84cb1acfd9c573c41c1b83dac83a9c8f  gcc/testsuite/gdc.test/fail_compilation/fail10947.d
! 67f504c001f946a3a9205c3a5d585f49  gcc/testsuite/gdc.test/fail_compilation/fail10964.d
! eaf58f1f45f7100d872e009ffbf28fac  gcc/testsuite/gdc.test/fail_compilation/fail10968.d
  fa66b0e920971c09a8f7f0ae71cc7e78  gcc/testsuite/gdc.test/fail_compilation/fail10980.d
  7461aa4bd527e973ee745038e7e175a7  gcc/testsuite/gdc.test/fail_compilation/fail11.d
  8318b31be4a1874c7144bf6efd7e4490  gcc/testsuite/gdc.test/fail_compilation/fail110.d
  3e6a7f8205ea96359effae2162844504  gcc/testsuite/gdc.test/fail_compilation/fail11038.d
  10f619ddec93bf8424836e0ce9b45879  gcc/testsuite/gdc.test/fail_compilation/fail11042.d
  43e247410a0595e0e0a8237f56b77bbc  gcc/testsuite/gdc.test/fail_compilation/fail111.d
! 8ce341eb0d7bfdf60877f62d8e5b9c79  gcc/testsuite/gdc.test/fail_compilation/fail11125.d
  cacc0256e3d69d9b93d6cd19840fdfbc  gcc/testsuite/gdc.test/fail_compilation/fail11151.d
  c7d4d841662e23af430664ea89b8a6d4  gcc/testsuite/gdc.test/fail_compilation/fail11163.d
  3233d140865314693e3f867337f604e7  gcc/testsuite/gdc.test/fail_compilation/fail113.d
  cfb5bd1649cb6dd3521e82fc2bcc4d8b  gcc/testsuite/gdc.test/fail_compilation/fail11355.d
! 963235178e76f1407e4833b8142082a2  gcc/testsuite/gdc.test/fail_compilation/fail11375.d
  f3336ce6edbe3fe2abae60968f743564  gcc/testsuite/gdc.test/fail_compilation/fail114.d
  9e4a2ee34878d003dc19b1519c00de09  gcc/testsuite/gdc.test/fail_compilation/fail11426.d
! a338ac1c468d5ff67cb258c1994bac86  gcc/testsuite/gdc.test/fail_compilation/fail11445.d
  ffe08b11762009190cd09ae689e7226e  gcc/testsuite/gdc.test/fail_compilation/fail11453a.d
  f5a197bd95a056843e35b989347fcbe0  gcc/testsuite/gdc.test/fail_compilation/fail11453b.d
  7d13b7056acf7ed36a57d82f32b30f31  gcc/testsuite/gdc.test/fail_compilation/fail115.d
--- 96782,96811 ----
  b726e7e5862cef761fbffe4798462131  gcc/testsuite/gdc.test/fail_compilation/fail10481.d
  72c8b8ebc6cf14d229679ffa91df4069  gcc/testsuite/gdc.test/fail_compilation/fail105.d
  d847ec9b26b5bec6dbd9d1e1d981d2e5  gcc/testsuite/gdc.test/fail_compilation/fail10528.d
! 941e5a2b4917117f56e6e32c80b6f743  gcc/testsuite/gdc.test/fail_compilation/fail10534.d
  78a14815b99eb16bff945b3d3f5972aa  gcc/testsuite/gdc.test/fail_compilation/fail106.d
  71288e2e511948061477a0747fecb40e  gcc/testsuite/gdc.test/fail_compilation/fail10630.d
  cb53acf48a2b67325d7f8241e9c9ab8b  gcc/testsuite/gdc.test/fail_compilation/fail10666.d
  132cc39e1c28cccfc1029171f7c406d8  gcc/testsuite/gdc.test/fail_compilation/fail10806.d
  c52e5f9b1281cd06b68144e27329f0a5  gcc/testsuite/gdc.test/fail_compilation/fail109.d
  84cb1acfd9c573c41c1b83dac83a9c8f  gcc/testsuite/gdc.test/fail_compilation/fail10947.d
! 71f20d17cb2b274d8981125da18a59af  gcc/testsuite/gdc.test/fail_compilation/fail10964.d
! 2842ed3c2dfc99d0dbaedf219515d433  gcc/testsuite/gdc.test/fail_compilation/fail10968.d
  fa66b0e920971c09a8f7f0ae71cc7e78  gcc/testsuite/gdc.test/fail_compilation/fail10980.d
  7461aa4bd527e973ee745038e7e175a7  gcc/testsuite/gdc.test/fail_compilation/fail11.d
  8318b31be4a1874c7144bf6efd7e4490  gcc/testsuite/gdc.test/fail_compilation/fail110.d
  3e6a7f8205ea96359effae2162844504  gcc/testsuite/gdc.test/fail_compilation/fail11038.d
  10f619ddec93bf8424836e0ce9b45879  gcc/testsuite/gdc.test/fail_compilation/fail11042.d
  43e247410a0595e0e0a8237f56b77bbc  gcc/testsuite/gdc.test/fail_compilation/fail111.d
! 3d36bc7938244dd6240a90b250d265f5  gcc/testsuite/gdc.test/fail_compilation/fail11125.d
  cacc0256e3d69d9b93d6cd19840fdfbc  gcc/testsuite/gdc.test/fail_compilation/fail11151.d
  c7d4d841662e23af430664ea89b8a6d4  gcc/testsuite/gdc.test/fail_compilation/fail11163.d
  3233d140865314693e3f867337f604e7  gcc/testsuite/gdc.test/fail_compilation/fail113.d
  cfb5bd1649cb6dd3521e82fc2bcc4d8b  gcc/testsuite/gdc.test/fail_compilation/fail11355.d
! d88706ef465e4d2bf16621737102110c  gcc/testsuite/gdc.test/fail_compilation/fail11375.d
  f3336ce6edbe3fe2abae60968f743564  gcc/testsuite/gdc.test/fail_compilation/fail114.d
  9e4a2ee34878d003dc19b1519c00de09  gcc/testsuite/gdc.test/fail_compilation/fail11426.d
! 3781c4178e468543d87782b6ea3f26e5  gcc/testsuite/gdc.test/fail_compilation/fail11445.d
  ffe08b11762009190cd09ae689e7226e  gcc/testsuite/gdc.test/fail_compilation/fail11453a.d
  f5a197bd95a056843e35b989347fcbe0  gcc/testsuite/gdc.test/fail_compilation/fail11453b.d
  7d13b7056acf7ed36a57d82f32b30f31  gcc/testsuite/gdc.test/fail_compilation/fail115.d
*************** c940487a344f7c48e40c0e52ecfc7865  gcc/te
*** 90155,90178 ****
  252497168a7f32d033de55209895b869  gcc/testsuite/gdc.test/fail_compilation/fail11591b.d
  e61a25e9a145b638b51ee393ba8be266  gcc/testsuite/gdc.test/fail_compilation/fail116.d
  5470e381d7d2d19227a5eadb16ca60d3  gcc/testsuite/gdc.test/fail_compilation/fail11653.d
! 4a6822087e49f0d5186125ac3f8a85a5  gcc/testsuite/gdc.test/fail_compilation/fail117.d
  fdaa763060909e97acdcb129ab83f2a7  gcc/testsuite/gdc.test/fail_compilation/fail11714.d
  a691b7855ffa66fe0d4d016977d36507  gcc/testsuite/gdc.test/fail_compilation/fail11746.d
  e40c97caf3db9f4880aff09011b1daf4  gcc/testsuite/gdc.test/fail_compilation/fail11748.d
! c0c579cb086b8a2a634c0ab754c26a07  gcc/testsuite/gdc.test/fail_compilation/fail11751.d
  25e439b474b4e4e754f9f61209593fb8  gcc/testsuite/gdc.test/fail_compilation/fail118.d
  c7101fcb0aa4d9b28f3f5c0edfb7a900  gcc/testsuite/gdc.test/fail_compilation/fail12.d
  462a6158d85515233e180b7369bcd650  gcc/testsuite/gdc.test/fail_compilation/fail120.d
  7bf72c637818e7f1de6be900e0fe70e8  gcc/testsuite/gdc.test/fail_compilation/fail12047.d
  f7da4e61b639a236ace2e05f2d112794  gcc/testsuite/gdc.test/fail_compilation/fail121.d
  7e087119e9127154573ca4d0a46ced6a  gcc/testsuite/gdc.test/fail_compilation/fail122.d
! ec1cbb059998c2bb293ba4cd5a7dcf02  gcc/testsuite/gdc.test/fail_compilation/fail12236.d
  8dfe0e2c61aa226bf5b0ea82ca94398c  gcc/testsuite/gdc.test/fail_compilation/fail12255.d
  c6a9045d059f3176aa12fb81d590f0d2  gcc/testsuite/gdc.test/fail_compilation/fail123.d
! f8f10e131c15bd3239affaf48aebff8c  gcc/testsuite/gdc.test/fail_compilation/fail12378.d
  bfb7ab7957a4356a4b9665e88b61f34f  gcc/testsuite/gdc.test/fail_compilation/fail124.d
  50a6f11ce9ee104192d307a7ed1a84fb  gcc/testsuite/gdc.test/fail_compilation/fail12436.d
! 42eb030c62dea6bce5bfa6734f12a9df  gcc/testsuite/gdc.test/fail_compilation/fail125.d
  36f58d54ca0d499db6d8ccf5dab569e6  gcc/testsuite/gdc.test/fail_compilation/fail126.d
  98c32b08b881fd0be4a23c7030099caf  gcc/testsuite/gdc.test/fail_compilation/fail12604.d
  b08a2513fb698aee7f0d4ba3e6a99ef3  gcc/testsuite/gdc.test/fail_compilation/fail12622.d
--- 96822,96845 ----
  252497168a7f32d033de55209895b869  gcc/testsuite/gdc.test/fail_compilation/fail11591b.d
  e61a25e9a145b638b51ee393ba8be266  gcc/testsuite/gdc.test/fail_compilation/fail116.d
  5470e381d7d2d19227a5eadb16ca60d3  gcc/testsuite/gdc.test/fail_compilation/fail11653.d
! 69ab8ed3f88851b5475064234341fb33  gcc/testsuite/gdc.test/fail_compilation/fail117.d
  fdaa763060909e97acdcb129ab83f2a7  gcc/testsuite/gdc.test/fail_compilation/fail11714.d
  a691b7855ffa66fe0d4d016977d36507  gcc/testsuite/gdc.test/fail_compilation/fail11746.d
  e40c97caf3db9f4880aff09011b1daf4  gcc/testsuite/gdc.test/fail_compilation/fail11748.d
! ed6e772866dc816994208aa3da76f14f  gcc/testsuite/gdc.test/fail_compilation/fail11751.d
  25e439b474b4e4e754f9f61209593fb8  gcc/testsuite/gdc.test/fail_compilation/fail118.d
  c7101fcb0aa4d9b28f3f5c0edfb7a900  gcc/testsuite/gdc.test/fail_compilation/fail12.d
  462a6158d85515233e180b7369bcd650  gcc/testsuite/gdc.test/fail_compilation/fail120.d
  7bf72c637818e7f1de6be900e0fe70e8  gcc/testsuite/gdc.test/fail_compilation/fail12047.d
  f7da4e61b639a236ace2e05f2d112794  gcc/testsuite/gdc.test/fail_compilation/fail121.d
  7e087119e9127154573ca4d0a46ced6a  gcc/testsuite/gdc.test/fail_compilation/fail122.d
! 4d45918a884ec55f650e5f72a76c789e  gcc/testsuite/gdc.test/fail_compilation/fail12236.d
  8dfe0e2c61aa226bf5b0ea82ca94398c  gcc/testsuite/gdc.test/fail_compilation/fail12255.d
  c6a9045d059f3176aa12fb81d590f0d2  gcc/testsuite/gdc.test/fail_compilation/fail123.d
! 15067f346f966557fc8048dcf82726e7  gcc/testsuite/gdc.test/fail_compilation/fail12378.d
  bfb7ab7957a4356a4b9665e88b61f34f  gcc/testsuite/gdc.test/fail_compilation/fail124.d
  50a6f11ce9ee104192d307a7ed1a84fb  gcc/testsuite/gdc.test/fail_compilation/fail12436.d
! b64c38a8de3c4252df79e740c64ff402  gcc/testsuite/gdc.test/fail_compilation/fail125.d
  36f58d54ca0d499db6d8ccf5dab569e6  gcc/testsuite/gdc.test/fail_compilation/fail126.d
  98c32b08b881fd0be4a23c7030099caf  gcc/testsuite/gdc.test/fail_compilation/fail12604.d
  b08a2513fb698aee7f0d4ba3e6a99ef3  gcc/testsuite/gdc.test/fail_compilation/fail12622.d
*************** b93dc74048b99ba0c82a6709839b2ef1  gcc/te
*** 90184,90196 ****
  6ff46a21ae637dd20e81ee2ce124ec81  gcc/testsuite/gdc.test/fail_compilation/fail12809.d
  c50f234d5c95d5c23129a75b1d91520e  gcc/testsuite/gdc.test/fail_compilation/fail129.d
  e62523305c859a4769949f7589072795  gcc/testsuite/gdc.test/fail_compilation/fail12901.d
! daeb45c533d077c1a72f2182996edc39  gcc/testsuite/gdc.test/fail_compilation/fail12908.d
! a106312f5d33fcc3d40697c5e8621fb9  gcc/testsuite/gdc.test/fail_compilation/fail12932.d
  a1674e1394b35a5df1b3c4aac66f998f  gcc/testsuite/gdc.test/fail_compilation/fail13064.d
  2180f72e2e570d452ff43f600b437482  gcc/testsuite/gdc.test/fail_compilation/fail131.d
  ecd26fd450b66fe4487f711b0a5dd325  gcc/testsuite/gdc.test/fail_compilation/fail13116.d
! 1d28ccede77160e0b38a249a3f83d0fd  gcc/testsuite/gdc.test/fail_compilation/fail13120.d
! 7ed4197cc2f78cb780c882a6e8b16131  gcc/testsuite/gdc.test/fail_compilation/fail13123.d
  b03b5e0032abc66adcb709edbb941cc4  gcc/testsuite/gdc.test/fail_compilation/fail13187.d
  b11884cf1566b08a9902a268a0b5cbb5  gcc/testsuite/gdc.test/fail_compilation/fail132.d
  8000033f214284cf259489cb70780afd  gcc/testsuite/gdc.test/fail_compilation/fail13203.d
--- 96851,96863 ----
  6ff46a21ae637dd20e81ee2ce124ec81  gcc/testsuite/gdc.test/fail_compilation/fail12809.d
  c50f234d5c95d5c23129a75b1d91520e  gcc/testsuite/gdc.test/fail_compilation/fail129.d
  e62523305c859a4769949f7589072795  gcc/testsuite/gdc.test/fail_compilation/fail12901.d
! 9d0d90c33c6388b328985f50e7ee84f7  gcc/testsuite/gdc.test/fail_compilation/fail12908.d
! 60bcc8832f751f8b7a32f1ecb9c1397c  gcc/testsuite/gdc.test/fail_compilation/fail12932.d
  a1674e1394b35a5df1b3c4aac66f998f  gcc/testsuite/gdc.test/fail_compilation/fail13064.d
  2180f72e2e570d452ff43f600b437482  gcc/testsuite/gdc.test/fail_compilation/fail131.d
  ecd26fd450b66fe4487f711b0a5dd325  gcc/testsuite/gdc.test/fail_compilation/fail13116.d
! 5b5ed3732374a47208786b4887199d91  gcc/testsuite/gdc.test/fail_compilation/fail13120.d
! 60d2c80f6727fd75b6e4ae8157efb3d4  gcc/testsuite/gdc.test/fail_compilation/fail13123.d
  b03b5e0032abc66adcb709edbb941cc4  gcc/testsuite/gdc.test/fail_compilation/fail13187.d
  b11884cf1566b08a9902a268a0b5cbb5  gcc/testsuite/gdc.test/fail_compilation/fail132.d
  8000033f214284cf259489cb70780afd  gcc/testsuite/gdc.test/fail_compilation/fail13203.d
*************** bb5c6126c9a6a59d7d101f5d4c86353b  gcc/te
*** 90198,90217 ****
  75ca74b83ea50313f3dad1dbb2e37582  gcc/testsuite/gdc.test/fail_compilation/fail13336a.d
  a8d7867a148f15ddcee565f5f6e59fd6  gcc/testsuite/gdc.test/fail_compilation/fail13336b.d
  6d0ad61dad2187efcb0c1405ec282317  gcc/testsuite/gdc.test/fail_compilation/fail134.d
! 81520f830e60b59b078916269563a772  gcc/testsuite/gdc.test/fail_compilation/fail13424.d
  6766e3fc0db269522156cb03e57090a4  gcc/testsuite/gdc.test/fail_compilation/fail13434_m32.d
  930d798796f39b693abdda8b1c7bae86  gcc/testsuite/gdc.test/fail_compilation/fail13434_m64.d
  50a341748c4c2d3597f3e50985a71f7e  gcc/testsuite/gdc.test/fail_compilation/fail13435.d
! f7c162250484aa2c830b621f48a4cbf7  gcc/testsuite/gdc.test/fail_compilation/fail13498.d
  2a7a5b24d34d65d9a4c928e6d02d03f1  gcc/testsuite/gdc.test/fail_compilation/fail13574.d
! b1d605436560eaf4e5789e019809bd94  gcc/testsuite/gdc.test/fail_compilation/fail13577.d
  d2025e9f82b3b83cd9dcd335567c795c  gcc/testsuite/gdc.test/fail_compilation/fail136.d
  563c333787d513efd8f8c3af9c634b0d  gcc/testsuite/gdc.test/fail_compilation/fail13601.d
  62bc66bcec853e01a1d64e03dbf1f731  gcc/testsuite/gdc.test/fail_compilation/fail13701.d
  ffcc92538fea18e1edc848b035d2da56  gcc/testsuite/gdc.test/fail_compilation/fail13756.d
  7f637277f7409ea6e5315946be618ca9  gcc/testsuite/gdc.test/fail_compilation/fail13775.d
  a580d1b37336e7005f2011c16123a2f8  gcc/testsuite/gdc.test/fail_compilation/fail139.d
! 06be4f4e09fb76ee2bae43a5a4667446  gcc/testsuite/gdc.test/fail_compilation/fail13902.d
  10554ee69c68fa02536edb00437cd248  gcc/testsuite/gdc.test/fail_compilation/fail14.d
  88b0dedb5114a417e9a013dc320646cb  gcc/testsuite/gdc.test/fail_compilation/fail14089.d
  0db74b32e37acbcdccf5221c620f4664  gcc/testsuite/gdc.test/fail_compilation/fail142.d
--- 96865,96884 ----
  75ca74b83ea50313f3dad1dbb2e37582  gcc/testsuite/gdc.test/fail_compilation/fail13336a.d
  a8d7867a148f15ddcee565f5f6e59fd6  gcc/testsuite/gdc.test/fail_compilation/fail13336b.d
  6d0ad61dad2187efcb0c1405ec282317  gcc/testsuite/gdc.test/fail_compilation/fail134.d
! 835a1fa29ef0d154d6e2e39fcb92ed1f  gcc/testsuite/gdc.test/fail_compilation/fail13424.d
  6766e3fc0db269522156cb03e57090a4  gcc/testsuite/gdc.test/fail_compilation/fail13434_m32.d
  930d798796f39b693abdda8b1c7bae86  gcc/testsuite/gdc.test/fail_compilation/fail13434_m64.d
  50a341748c4c2d3597f3e50985a71f7e  gcc/testsuite/gdc.test/fail_compilation/fail13435.d
! 6e45effaf601e3775be80083acc9aa9b  gcc/testsuite/gdc.test/fail_compilation/fail13498.d
  2a7a5b24d34d65d9a4c928e6d02d03f1  gcc/testsuite/gdc.test/fail_compilation/fail13574.d
! 6ac6bee06cb8404b307af0f682226e61  gcc/testsuite/gdc.test/fail_compilation/fail13577.d
  d2025e9f82b3b83cd9dcd335567c795c  gcc/testsuite/gdc.test/fail_compilation/fail136.d
  563c333787d513efd8f8c3af9c634b0d  gcc/testsuite/gdc.test/fail_compilation/fail13601.d
  62bc66bcec853e01a1d64e03dbf1f731  gcc/testsuite/gdc.test/fail_compilation/fail13701.d
  ffcc92538fea18e1edc848b035d2da56  gcc/testsuite/gdc.test/fail_compilation/fail13756.d
  7f637277f7409ea6e5315946be618ca9  gcc/testsuite/gdc.test/fail_compilation/fail13775.d
  a580d1b37336e7005f2011c16123a2f8  gcc/testsuite/gdc.test/fail_compilation/fail139.d
! 4a99d4ebdb4d2f7bbbe803d624dba62b  gcc/testsuite/gdc.test/fail_compilation/fail13902.d
  10554ee69c68fa02536edb00437cd248  gcc/testsuite/gdc.test/fail_compilation/fail14.d
  88b0dedb5114a417e9a013dc320646cb  gcc/testsuite/gdc.test/fail_compilation/fail14089.d
  0db74b32e37acbcdccf5221c620f4664  gcc/testsuite/gdc.test/fail_compilation/fail142.d
*************** c753f5a08f745f6326cda953e7a42e47  gcc/te
*** 90219,90230 ****
  65477946b0a7989dc9265b12658a59e2  gcc/testsuite/gdc.test/fail_compilation/fail14277.d
  5fc5d16e966045b7104cc3f92bf3b8e0  gcc/testsuite/gdc.test/fail_compilation/fail143.d
  8dc5066aab0e47bc083a69e67f10066e  gcc/testsuite/gdc.test/fail_compilation/fail14304.d
  9adcaeda3d5a4db829fdac897bafdd9a  gcc/testsuite/gdc.test/fail_compilation/fail144.d
  dc36dc401919af534824ea7139f384f0  gcc/testsuite/gdc.test/fail_compilation/fail14406.d
  60ac8535b218629f6e302cf38a0e4d64  gcc/testsuite/gdc.test/fail_compilation/fail14416.d
- 6b7e660a67bdd0b25bbc892cd220f071  gcc/testsuite/gdc.test/fail_compilation/fail14486.d
  2f944bf10c0fc89a6c662d0c4ed7b936  gcc/testsuite/gdc.test/fail_compilation/fail145.d
! 21b27f5810d8bbd5e53d1a85f251389f  gcc/testsuite/gdc.test/fail_compilation/fail14554.d
  d0e80830c8e8ebd1163d9d4dc3bb2560  gcc/testsuite/gdc.test/fail_compilation/fail14669.d
  2eb0f0a3a630d5305cedcfc6ba947caa  gcc/testsuite/gdc.test/fail_compilation/fail14965.d
  351f0dc3289118d6f73f00d620e4cf37  gcc/testsuite/gdc.test/fail_compilation/fail14997.d
--- 96886,96897 ----
  65477946b0a7989dc9265b12658a59e2  gcc/testsuite/gdc.test/fail_compilation/fail14277.d
  5fc5d16e966045b7104cc3f92bf3b8e0  gcc/testsuite/gdc.test/fail_compilation/fail143.d
  8dc5066aab0e47bc083a69e67f10066e  gcc/testsuite/gdc.test/fail_compilation/fail14304.d
+ 323ac1f4235c01db708a59884e451c63  gcc/testsuite/gdc.test/fail_compilation/fail14343.d
  9adcaeda3d5a4db829fdac897bafdd9a  gcc/testsuite/gdc.test/fail_compilation/fail144.d
  dc36dc401919af534824ea7139f384f0  gcc/testsuite/gdc.test/fail_compilation/fail14406.d
  60ac8535b218629f6e302cf38a0e4d64  gcc/testsuite/gdc.test/fail_compilation/fail14416.d
  2f944bf10c0fc89a6c662d0c4ed7b936  gcc/testsuite/gdc.test/fail_compilation/fail145.d
! 1ff8fb0ff6dc8c65089e7a929642ca85  gcc/testsuite/gdc.test/fail_compilation/fail14554.d
  d0e80830c8e8ebd1163d9d4dc3bb2560  gcc/testsuite/gdc.test/fail_compilation/fail14669.d
  2eb0f0a3a630d5305cedcfc6ba947caa  gcc/testsuite/gdc.test/fail_compilation/fail14965.d
  351f0dc3289118d6f73f00d620e4cf37  gcc/testsuite/gdc.test/fail_compilation/fail14997.d
*************** c684ab29bcabeefed5b53fffe9d3f70e  gcc/te
*** 90252,90258 ****
  2b6be87bab9c944e4449b89cccc18e26  gcc/testsuite/gdc.test/fail_compilation/fail158.d
  4456fcb05c32e734192f28b051d44ade  gcc/testsuite/gdc.test/fail_compilation/fail15896.d
  0e7efcd6e123a7faef05ce3ae6f59ce9  gcc/testsuite/gdc.test/fail_compilation/fail159.d
! d612a27ea5535404d84d598bae901e32  gcc/testsuite/gdc.test/fail_compilation/fail16.d
  b1a3c7961f99b91306dbd64d284c746a  gcc/testsuite/gdc.test/fail_compilation/fail160.d
  45aa62a7c4b2fe3afda147252be922f8  gcc/testsuite/gdc.test/fail_compilation/fail16001.d
  1c72cecc096b7d2d4e31dd6f47fb8895  gcc/testsuite/gdc.test/fail_compilation/fail161.d
--- 96919,96925 ----
  2b6be87bab9c944e4449b89cccc18e26  gcc/testsuite/gdc.test/fail_compilation/fail158.d
  4456fcb05c32e734192f28b051d44ade  gcc/testsuite/gdc.test/fail_compilation/fail15896.d
  0e7efcd6e123a7faef05ce3ae6f59ce9  gcc/testsuite/gdc.test/fail_compilation/fail159.d
! 1c3ddcb08e544c68f3963c9adb05b2ec  gcc/testsuite/gdc.test/fail_compilation/fail16.d
  b1a3c7961f99b91306dbd64d284c746a  gcc/testsuite/gdc.test/fail_compilation/fail160.d
  45aa62a7c4b2fe3afda147252be922f8  gcc/testsuite/gdc.test/fail_compilation/fail16001.d
  1c72cecc096b7d2d4e31dd6f47fb8895  gcc/testsuite/gdc.test/fail_compilation/fail161.d
*************** b1a3c7961f99b91306dbd64d284c746a  gcc/te
*** 90260,90269 ****
  99c094fe5a883a7d9a9adcbd82f194c1  gcc/testsuite/gdc.test/fail_compilation/fail16206a.d
  7e34a6b4dd39ae5c562fa3e43ae5b267  gcc/testsuite/gdc.test/fail_compilation/fail16206b.d
  65570fad8408c994cb62f7bb4e38bc7f  gcc/testsuite/gdc.test/fail_compilation/fail163.d
! e45c2789377eab835bc467180048df0f  gcc/testsuite/gdc.test/fail_compilation/fail16575.d
! 7d11963aefcf779a2a7ba7c7c74d7852  gcc/testsuite/gdc.test/fail_compilation/fail16600.d
! 8b4b096412e0264029af463d8d17a67b  gcc/testsuite/gdc.test/fail_compilation/fail16689.d
! f17a44ee2616b77e9e20cae89930d8fd  gcc/testsuite/gdc.test/fail_compilation/fail16772.d
  623bcd19ed4331349d750dd7e0ccec0f  gcc/testsuite/gdc.test/fail_compilation/fail169.d
  aa393179c2ca7bc3a60b6d8c4f96cbc7  gcc/testsuite/gdc.test/fail_compilation/fail16997.d
  34a18b39e76e5dc61eed79b9f5f81866  gcc/testsuite/gdc.test/fail_compilation/fail17.d
--- 96927,96936 ----
  99c094fe5a883a7d9a9adcbd82f194c1  gcc/testsuite/gdc.test/fail_compilation/fail16206a.d
  7e34a6b4dd39ae5c562fa3e43ae5b267  gcc/testsuite/gdc.test/fail_compilation/fail16206b.d
  65570fad8408c994cb62f7bb4e38bc7f  gcc/testsuite/gdc.test/fail_compilation/fail163.d
! b12de9832e05ce82363b2aa2f1b3fbf8  gcc/testsuite/gdc.test/fail_compilation/fail16575.d
! e6ed90d1540db0da0103c48194f9752a  gcc/testsuite/gdc.test/fail_compilation/fail16600.d
! c5ee157d0579c4d068cd3947df8553ea  gcc/testsuite/gdc.test/fail_compilation/fail16689.d
! 5bc039224f90beb50450b9178a7b96bc  gcc/testsuite/gdc.test/fail_compilation/fail16772.d
  623bcd19ed4331349d750dd7e0ccec0f  gcc/testsuite/gdc.test/fail_compilation/fail169.d
  aa393179c2ca7bc3a60b6d8c4f96cbc7  gcc/testsuite/gdc.test/fail_compilation/fail16997.d
  34a18b39e76e5dc61eed79b9f5f81866  gcc/testsuite/gdc.test/fail_compilation/fail17.d
*************** b1889ab243926d661f5779e1e0400f34  gcc/te
*** 90277,90286 ****
  be4d28819745b832fc91295c6c8505c7  gcc/testsuite/gdc.test/fail_compilation/fail17492.d
  47604c011e3dab7c5e67cbbfcc24607b  gcc/testsuite/gdc.test/fail_compilation/fail17502.d
  3df5283fb8e84e59d150ef78a66a1027  gcc/testsuite/gdc.test/fail_compilation/fail17518.d
! 93d1b0a7cd602a66db7a6b08b8d7d066  gcc/testsuite/gdc.test/fail_compilation/fail17570.d
  ff11fd7d8d4fa1c4c8fbcd4a30a83de0  gcc/testsuite/gdc.test/fail_compilation/fail176.d
  ef2759042bec4471458a397b3895857f  gcc/testsuite/gdc.test/fail_compilation/fail17602.d
! 5293b18b7813b4fc05083160ebf03448  gcc/testsuite/gdc.test/fail_compilation/fail17612.d
  e96e978609d37c7c1a44f934612d39a1  gcc/testsuite/gdc.test/fail_compilation/fail17625.d
  2cabd5f43fb4c3f7eb2da73fc4b1164d  gcc/testsuite/gdc.test/fail_compilation/fail17630.d
  16c1022f687f43e56f8b7bf3e5d7c0a6  gcc/testsuite/gdc.test/fail_compilation/fail17646.d
--- 96944,96953 ----
  be4d28819745b832fc91295c6c8505c7  gcc/testsuite/gdc.test/fail_compilation/fail17492.d
  47604c011e3dab7c5e67cbbfcc24607b  gcc/testsuite/gdc.test/fail_compilation/fail17502.d
  3df5283fb8e84e59d150ef78a66a1027  gcc/testsuite/gdc.test/fail_compilation/fail17518.d
! d3e8d502a829ceeb69353e4fa316052b  gcc/testsuite/gdc.test/fail_compilation/fail17570.d
  ff11fd7d8d4fa1c4c8fbcd4a30a83de0  gcc/testsuite/gdc.test/fail_compilation/fail176.d
  ef2759042bec4471458a397b3895857f  gcc/testsuite/gdc.test/fail_compilation/fail17602.d
! b7f97151eb144c1d81d33323da84f705  gcc/testsuite/gdc.test/fail_compilation/fail17612.d
  e96e978609d37c7c1a44f934612d39a1  gcc/testsuite/gdc.test/fail_compilation/fail17625.d
  2cabd5f43fb4c3f7eb2da73fc4b1164d  gcc/testsuite/gdc.test/fail_compilation/fail17630.d
  16c1022f687f43e56f8b7bf3e5d7c0a6  gcc/testsuite/gdc.test/fail_compilation/fail17646.d
*************** ab8c22cf2be47d14e82979e49ec3083e  gcc/te
*** 90288,90310 ****
  3663f0a0ac789099ac33803ae479ca86  gcc/testsuite/gdc.test/fail_compilation/fail177.d
  35cf531fa58e2680d573c8081c2cb759  gcc/testsuite/gdc.test/fail_compilation/fail17722a.d
  3539e8d6d99e7668fa152f3d2998c2e7  gcc/testsuite/gdc.test/fail_compilation/fail17722b.d
! 3a5368bfa9e925466d90dfbe40b3e1ef  gcc/testsuite/gdc.test/fail_compilation/fail17842.d
  6f7188c359b760528830357bc2727f64  gcc/testsuite/gdc.test/fail_compilation/fail179.d
- c72f18ab36254636b191d78e0549b0a3  gcc/testsuite/gdc.test/fail_compilation/fail17906.d
  0494fe970355cc4c502b74174e2e9d9a  gcc/testsuite/gdc.test/fail_compilation/fail17927.d
  775cc1b2227dffb477cf862606075981  gcc/testsuite/gdc.test/fail_compilation/fail17955.d
! ba07e0e28c4fcc780df9ca751fd6ba17  gcc/testsuite/gdc.test/fail_compilation/fail17969.d
  b3fde2514586c4a3e2046b5c0a6ed176  gcc/testsuite/gdc.test/fail_compilation/fail17976.d
  f8d46bb7603384631c0a6f26126398b0  gcc/testsuite/gdc.test/fail_compilation/fail18.d
  0454c9a1ef7ddc14630b0cf99dda8803  gcc/testsuite/gdc.test/fail_compilation/fail180.d
  309673188eb627a9dd883f8854937fb2  gcc/testsuite/gdc.test/fail_compilation/fail18057.d
  e3408518b8b4c811d02328352ef87de6  gcc/testsuite/gdc.test/fail_compilation/fail18057b.d
  1bdea03690c85119a465149cfbe90431  gcc/testsuite/gdc.test/fail_compilation/fail18093.d
! f29a2cafb832f5d530d6602319bfce06  gcc/testsuite/gdc.test/fail_compilation/fail18143.d
  a31bbdcf7ab236e30a584d27c2714862  gcc/testsuite/gdc.test/fail_compilation/fail18219.d
  b85a8861594c77116c2c1d80342d314b  gcc/testsuite/gdc.test/fail_compilation/fail18228.d
  b33052116ca6853320ab7e38f77facc9  gcc/testsuite/gdc.test/fail_compilation/fail18236.d
! 740e94e87c4d92de38eefa38ae3b334a  gcc/testsuite/gdc.test/fail_compilation/fail18243.d
  67c9474833ad1e76b6417d75b72c21b6  gcc/testsuite/gdc.test/fail_compilation/fail183.d
  27112a91b6ec55109a11888ca317d7ae  gcc/testsuite/gdc.test/fail_compilation/fail184.d
  0c415d88655bbb9aed34b112e29eaccc  gcc/testsuite/gdc.test/fail_compilation/fail18417.d
--- 96955,96976 ----
  3663f0a0ac789099ac33803ae479ca86  gcc/testsuite/gdc.test/fail_compilation/fail177.d
  35cf531fa58e2680d573c8081c2cb759  gcc/testsuite/gdc.test/fail_compilation/fail17722a.d
  3539e8d6d99e7668fa152f3d2998c2e7  gcc/testsuite/gdc.test/fail_compilation/fail17722b.d
! c98cd0630cea76c9ad45982e84552b06  gcc/testsuite/gdc.test/fail_compilation/fail17842.d
  6f7188c359b760528830357bc2727f64  gcc/testsuite/gdc.test/fail_compilation/fail179.d
  0494fe970355cc4c502b74174e2e9d9a  gcc/testsuite/gdc.test/fail_compilation/fail17927.d
  775cc1b2227dffb477cf862606075981  gcc/testsuite/gdc.test/fail_compilation/fail17955.d
! ab6b5c96917e13ba89f1322d5d89381b  gcc/testsuite/gdc.test/fail_compilation/fail17969.d
  b3fde2514586c4a3e2046b5c0a6ed176  gcc/testsuite/gdc.test/fail_compilation/fail17976.d
  f8d46bb7603384631c0a6f26126398b0  gcc/testsuite/gdc.test/fail_compilation/fail18.d
  0454c9a1ef7ddc14630b0cf99dda8803  gcc/testsuite/gdc.test/fail_compilation/fail180.d
  309673188eb627a9dd883f8854937fb2  gcc/testsuite/gdc.test/fail_compilation/fail18057.d
  e3408518b8b4c811d02328352ef87de6  gcc/testsuite/gdc.test/fail_compilation/fail18057b.d
  1bdea03690c85119a465149cfbe90431  gcc/testsuite/gdc.test/fail_compilation/fail18093.d
! 56cadbe6e1c6957cb43ae7179c59a572  gcc/testsuite/gdc.test/fail_compilation/fail18143.d
  a31bbdcf7ab236e30a584d27c2714862  gcc/testsuite/gdc.test/fail_compilation/fail18219.d
  b85a8861594c77116c2c1d80342d314b  gcc/testsuite/gdc.test/fail_compilation/fail18228.d
  b33052116ca6853320ab7e38f77facc9  gcc/testsuite/gdc.test/fail_compilation/fail18236.d
! 9c5dcc54138aa1fb16a58323cb026944  gcc/testsuite/gdc.test/fail_compilation/fail18243.d
  67c9474833ad1e76b6417d75b72c21b6  gcc/testsuite/gdc.test/fail_compilation/fail183.d
  27112a91b6ec55109a11888ca317d7ae  gcc/testsuite/gdc.test/fail_compilation/fail184.d
  0c415d88655bbb9aed34b112e29eaccc  gcc/testsuite/gdc.test/fail_compilation/fail18417.d
*************** f1ffdb661067e628c5a18fa4aa3d425f  gcc/te
*** 90316,90324 ****
  430bd89e10860972d40cfae760c96ea2  gcc/testsuite/gdc.test/fail_compilation/fail18892.d
  39344b97e72e7a51418d2304bfe71bac  gcc/testsuite/gdc.test/fail_compilation/fail189.d
  1855d7a7607707b089d145fc3dbf9c4a  gcc/testsuite/gdc.test/fail_compilation/fail18938.d
! 70b8c47b00ec080b3fc507a40bd75414  gcc/testsuite/gdc.test/fail_compilation/fail18970.d
  d084978e9efdbd8321073ef356c8b20a  gcc/testsuite/gdc.test/fail_compilation/fail18979.d
! f205ca554aa3912ed64d43f95458cc81  gcc/testsuite/gdc.test/fail_compilation/fail18985.d
  c3e9bf6ab82266989bda68580c167325  gcc/testsuite/gdc.test/fail_compilation/fail18994.d
  b29394abf29591d84b9d8789bb4565cb  gcc/testsuite/gdc.test/fail_compilation/fail190.d
  c6069fa300de28f36ced064a9fb2c11c  gcc/testsuite/gdc.test/fail_compilation/fail1900.d
--- 96982,96990 ----
  430bd89e10860972d40cfae760c96ea2  gcc/testsuite/gdc.test/fail_compilation/fail18892.d
  39344b97e72e7a51418d2304bfe71bac  gcc/testsuite/gdc.test/fail_compilation/fail189.d
  1855d7a7607707b089d145fc3dbf9c4a  gcc/testsuite/gdc.test/fail_compilation/fail18938.d
! 2c1e79a7d6237846c0ad7d35334d5e25  gcc/testsuite/gdc.test/fail_compilation/fail18970.d
  d084978e9efdbd8321073ef356c8b20a  gcc/testsuite/gdc.test/fail_compilation/fail18979.d
! 640a396bf239cd5751f9217b86e8201b  gcc/testsuite/gdc.test/fail_compilation/fail18985.d
  c3e9bf6ab82266989bda68580c167325  gcc/testsuite/gdc.test/fail_compilation/fail18994.d
  b29394abf29591d84b9d8789bb4565cb  gcc/testsuite/gdc.test/fail_compilation/fail190.d
  c6069fa300de28f36ced064a9fb2c11c  gcc/testsuite/gdc.test/fail_compilation/fail1900.d
*************** a96c3ad1d04fa66b706308dc41b66044  gcc/te
*** 90344,90357 ****
  584438be3278ad1da4a689a8a9ff564b  gcc/testsuite/gdc.test/fail_compilation/fail196.d
  a09e1208955504bd9a765b08ef650b11  gcc/testsuite/gdc.test/fail_compilation/fail19609.d
  3f5bd68363cca36c32206c67b500f342  gcc/testsuite/gdc.test/fail_compilation/fail19687.d
! 4748cb1d7ac90ff780c0f16b4a407af1  gcc/testsuite/gdc.test/fail_compilation/fail19729.d
  5497eef106b03c1d1c5abca76532ef7f  gcc/testsuite/gdc.test/fail_compilation/fail19744.d
  ab33dd9a1412bc650d3341ca810280e1  gcc/testsuite/gdc.test/fail_compilation/fail19757_m32.d
  f48f0703c5e7d1124e8dafcfac05bf26  gcc/testsuite/gdc.test/fail_compilation/fail19757_m64.d
! 33bf38575dfd10064e518f9283c22829  gcc/testsuite/gdc.test/fail_compilation/fail19759.d
  b4fc56015b91bcdd15ed815be30ee12c  gcc/testsuite/gdc.test/fail_compilation/fail198.d
! 1331488e808fb89535bd56551e1b503c  gcc/testsuite/gdc.test/fail_compilation/fail19871.d
! d7aaba99f3b1217cae97ee836f479155  gcc/testsuite/gdc.test/fail_compilation/fail19881.d
  3c864b303a63dd308081c858565ab08f  gcc/testsuite/gdc.test/fail_compilation/fail19890a.d
  3d9b105be0050f3b35a63c9fb3b4d4ff  gcc/testsuite/gdc.test/fail_compilation/fail19890b.d
  803923bf31c7fc9bfe54c9f63a09fd67  gcc/testsuite/gdc.test/fail_compilation/fail19897.d
--- 97010,97022 ----
  584438be3278ad1da4a689a8a9ff564b  gcc/testsuite/gdc.test/fail_compilation/fail196.d
  a09e1208955504bd9a765b08ef650b11  gcc/testsuite/gdc.test/fail_compilation/fail19609.d
  3f5bd68363cca36c32206c67b500f342  gcc/testsuite/gdc.test/fail_compilation/fail19687.d
! 72c1506969b93dba2e665d8b3c969161  gcc/testsuite/gdc.test/fail_compilation/fail19729.d
  5497eef106b03c1d1c5abca76532ef7f  gcc/testsuite/gdc.test/fail_compilation/fail19744.d
  ab33dd9a1412bc650d3341ca810280e1  gcc/testsuite/gdc.test/fail_compilation/fail19757_m32.d
  f48f0703c5e7d1124e8dafcfac05bf26  gcc/testsuite/gdc.test/fail_compilation/fail19757_m64.d
! f5c310c2adf60fc272ccb74c1805d867  gcc/testsuite/gdc.test/fail_compilation/fail19759.d
  b4fc56015b91bcdd15ed815be30ee12c  gcc/testsuite/gdc.test/fail_compilation/fail198.d
! a39e0b393e266193ce76af1931c80a84  gcc/testsuite/gdc.test/fail_compilation/fail19881.d
  3c864b303a63dd308081c858565ab08f  gcc/testsuite/gdc.test/fail_compilation/fail19890a.d
  3d9b105be0050f3b35a63c9fb3b4d4ff  gcc/testsuite/gdc.test/fail_compilation/fail19890b.d
  803923bf31c7fc9bfe54c9f63a09fd67  gcc/testsuite/gdc.test/fail_compilation/fail19897.d
*************** aa9c562b805cdde30e5a0afd83499523  gcc/te
*** 90373,90416 ****
  6cb4e2a1815d4857789e2bfdf5dd8e2e  gcc/testsuite/gdc.test/fail_compilation/fail19919.d
  265fdf9076de2a83e23351a63329cbb4  gcc/testsuite/gdc.test/fail_compilation/fail19922.d
  becdd446e8d1be604695109a29f49407  gcc/testsuite/gdc.test/fail_compilation/fail19923.d
- 97451b74145eff6747dd33669889ff8b  gcc/testsuite/gdc.test/fail_compilation/fail19931.d
  3efe7c451c4866665928b1d60a91285d  gcc/testsuite/gdc.test/fail_compilation/fail19941.d
! 82bec6982224715463a3ad87a3548d5e  gcc/testsuite/gdc.test/fail_compilation/fail19948.d
  6be9d44d2f5896a92b58a34acd7af126  gcc/testsuite/gdc.test/fail_compilation/fail1995.d
  851eb457213dfe384a320df00425f33c  gcc/testsuite/gdc.test/fail_compilation/fail19955.d
! b7eb9679682db5f67b048d93497fa4b1  gcc/testsuite/gdc.test/fail_compilation/fail19965.d
! 6eda710678ea8daa8e8d855e65163597  gcc/testsuite/gdc.test/fail_compilation/fail20.d
  05592f24921890426a604ce836f029b0  gcc/testsuite/gdc.test/fail_compilation/fail200.d
! 54660b3f8b3e687607bef4195461e9b0  gcc/testsuite/gdc.test/fail_compilation/fail20000.d
  74f34457f42becca5502a94e489b18d5  gcc/testsuite/gdc.test/fail_compilation/fail20033.d
  ec4256f5b8f7ca86efdc68db68cd6633  gcc/testsuite/gdc.test/fail_compilation/fail20040.d
! c12128390dab2358113f818b2ee02203  gcc/testsuite/gdc.test/fail_compilation/fail20073.d
! f228d34ca53f073a5e0c086254b1bd68  gcc/testsuite/gdc.test/fail_compilation/fail20084.d
  2cc3df5c37adb911728a27ec62bb9fe6  gcc/testsuite/gdc.test/fail_compilation/fail201.d
! 79a43fc730ebadec062a0f18a6776a07  gcc/testsuite/gdc.test/fail_compilation/fail20108.d
  04bd61e549b8047b02bf8f713226b5ce  gcc/testsuite/gdc.test/fail_compilation/fail20163.d
  491d5c7988c3b5e24cd424510b5ca61b  gcc/testsuite/gdc.test/fail_compilation/fail20164.d
! 39bf675ca7358969f1193c646f6bd132  gcc/testsuite/gdc.test/fail_compilation/fail20183.d
  c5e98fdfa8a88945c29e0e5d6f31af2f  gcc/testsuite/gdc.test/fail_compilation/fail202.d
  d60ada634a46d2b65a2dacb147c221df  gcc/testsuite/gdc.test/fail_compilation/fail203.d
! fc7b8d7ee7a9ef28f4089d85def249f9  gcc/testsuite/gdc.test/fail_compilation/fail20376.d
  13edbbb78345e2f4e1743050e6c058cb  gcc/testsuite/gdc.test/fail_compilation/fail204.d
  030997d8da65b77e58c45f817936e5ef  gcc/testsuite/gdc.test/fail_compilation/fail20448.d
! d6a41113ab2e7b3eff417c5021e83c2b  gcc/testsuite/gdc.test/fail_compilation/fail20461.d
  b94aaa7ed8ca494a3810cf65f8b1018e  gcc/testsuite/gdc.test/fail_compilation/fail205.d
  255f626f10854a2535bec00054ce64a8  gcc/testsuite/gdc.test/fail_compilation/fail20538.d
! edea67fe10d58bfa25d0000dfad5ade1  gcc/testsuite/gdc.test/fail_compilation/fail20551.d
  9735bea81fe7d24038b3778d5eea4c99  gcc/testsuite/gdc.test/fail_compilation/fail206.d
  a697bc2fcb47f60ca27489a3e03f29bf  gcc/testsuite/gdc.test/fail_compilation/fail20609.d
! 20926315a08d0112cb394e537432519b  gcc/testsuite/gdc.test/fail_compilation/fail20616.d
  308658c6548e45f055152d825afd11d4  gcc/testsuite/gdc.test/fail_compilation/fail20637.d
  b145b7208e64060148d44c7e840bbef3  gcc/testsuite/gdc.test/fail_compilation/fail20638.d
! bfba6f06e64694108fdda60cbbb3a965  gcc/testsuite/gdc.test/fail_compilation/fail20658.d
! 26957e83232a8cc037985d5d1ec2e7be  gcc/testsuite/gdc.test/fail_compilation/fail20691.d
  e11dbf32a7deac2ceef48948ddce0cbe  gcc/testsuite/gdc.test/fail_compilation/fail207.d
  d8cbbb687b97f541fa3366579b9eb603  gcc/testsuite/gdc.test/fail_compilation/fail20714.d
  f4b7a202b00d93825722c995891faef8  gcc/testsuite/gdc.test/fail_compilation/fail20730a.d
! 269122fb73f8980ad06fa6dda70d68bf  gcc/testsuite/gdc.test/fail_compilation/fail20730b.d
  e305b25b7c6407e8d98bc95e1cb38684  gcc/testsuite/gdc.test/fail_compilation/fail20771.d
  b3f6ded43de55958b285287639b44db2  gcc/testsuite/gdc.test/fail_compilation/fail20772.d
  9c97feacbde5a60eb7e32173e35e7bd8  gcc/testsuite/gdc.test/fail_compilation/fail20775.d
--- 97038,97080 ----
  6cb4e2a1815d4857789e2bfdf5dd8e2e  gcc/testsuite/gdc.test/fail_compilation/fail19919.d
  265fdf9076de2a83e23351a63329cbb4  gcc/testsuite/gdc.test/fail_compilation/fail19922.d
  becdd446e8d1be604695109a29f49407  gcc/testsuite/gdc.test/fail_compilation/fail19923.d
  3efe7c451c4866665928b1d60a91285d  gcc/testsuite/gdc.test/fail_compilation/fail19941.d
! 4cb5f86f3a16b55c9fa7c9f78618518a  gcc/testsuite/gdc.test/fail_compilation/fail19948.d
  6be9d44d2f5896a92b58a34acd7af126  gcc/testsuite/gdc.test/fail_compilation/fail1995.d
  851eb457213dfe384a320df00425f33c  gcc/testsuite/gdc.test/fail_compilation/fail19955.d
! f802bca72b0dc133fc14e7f6feed6c4d  gcc/testsuite/gdc.test/fail_compilation/fail19965.d
! 680035ad6488cce1b8d6b70f5ca8b6c0  gcc/testsuite/gdc.test/fail_compilation/fail20.d
  05592f24921890426a604ce836f029b0  gcc/testsuite/gdc.test/fail_compilation/fail200.d
! 6c9f5118fd6bac1fbf923b830b121062  gcc/testsuite/gdc.test/fail_compilation/fail20000.d
  74f34457f42becca5502a94e489b18d5  gcc/testsuite/gdc.test/fail_compilation/fail20033.d
  ec4256f5b8f7ca86efdc68db68cd6633  gcc/testsuite/gdc.test/fail_compilation/fail20040.d
! a2b43f0facf5529e22c33f9b5f6e0f3e  gcc/testsuite/gdc.test/fail_compilation/fail20073.d
! 08dd8ce44a60d13200515a250bb94141  gcc/testsuite/gdc.test/fail_compilation/fail20084.d
  2cc3df5c37adb911728a27ec62bb9fe6  gcc/testsuite/gdc.test/fail_compilation/fail201.d
! 0669ddb3292ee1af1dce8d502805ebf3  gcc/testsuite/gdc.test/fail_compilation/fail20108.d
  04bd61e549b8047b02bf8f713226b5ce  gcc/testsuite/gdc.test/fail_compilation/fail20163.d
  491d5c7988c3b5e24cd424510b5ca61b  gcc/testsuite/gdc.test/fail_compilation/fail20164.d
! 770ca3292722de07d3fd067834c731a3  gcc/testsuite/gdc.test/fail_compilation/fail20183.d
  c5e98fdfa8a88945c29e0e5d6f31af2f  gcc/testsuite/gdc.test/fail_compilation/fail202.d
  d60ada634a46d2b65a2dacb147c221df  gcc/testsuite/gdc.test/fail_compilation/fail203.d
! ab75eb61c7f810487e956abdef81f241  gcc/testsuite/gdc.test/fail_compilation/fail20376.d
  13edbbb78345e2f4e1743050e6c058cb  gcc/testsuite/gdc.test/fail_compilation/fail204.d
  030997d8da65b77e58c45f817936e5ef  gcc/testsuite/gdc.test/fail_compilation/fail20448.d
! 031d38452cce3108ab9f7a3bdb927bfc  gcc/testsuite/gdc.test/fail_compilation/fail20461.d
  b94aaa7ed8ca494a3810cf65f8b1018e  gcc/testsuite/gdc.test/fail_compilation/fail205.d
  255f626f10854a2535bec00054ce64a8  gcc/testsuite/gdc.test/fail_compilation/fail20538.d
! 6d7cdfee5e422a26b7a6639e09bfee16  gcc/testsuite/gdc.test/fail_compilation/fail20551.d
  9735bea81fe7d24038b3778d5eea4c99  gcc/testsuite/gdc.test/fail_compilation/fail206.d
  a697bc2fcb47f60ca27489a3e03f29bf  gcc/testsuite/gdc.test/fail_compilation/fail20609.d
! 97942c537cfd4a6df0a0b44fdbbba09a  gcc/testsuite/gdc.test/fail_compilation/fail20616.d
  308658c6548e45f055152d825afd11d4  gcc/testsuite/gdc.test/fail_compilation/fail20637.d
  b145b7208e64060148d44c7e840bbef3  gcc/testsuite/gdc.test/fail_compilation/fail20638.d
! d676265b62af461620aa0c4bc6e32874  gcc/testsuite/gdc.test/fail_compilation/fail20658.d
! 504ea112daf8ffb3368c487f5d1a770f  gcc/testsuite/gdc.test/fail_compilation/fail20691.d
  e11dbf32a7deac2ceef48948ddce0cbe  gcc/testsuite/gdc.test/fail_compilation/fail207.d
  d8cbbb687b97f541fa3366579b9eb603  gcc/testsuite/gdc.test/fail_compilation/fail20714.d
  f4b7a202b00d93825722c995891faef8  gcc/testsuite/gdc.test/fail_compilation/fail20730a.d
! a649ac93b356e5395cdc675d27cf880b  gcc/testsuite/gdc.test/fail_compilation/fail20730b.d
  e305b25b7c6407e8d98bc95e1cb38684  gcc/testsuite/gdc.test/fail_compilation/fail20771.d
  b3f6ded43de55958b285287639b44db2  gcc/testsuite/gdc.test/fail_compilation/fail20772.d
  9c97feacbde5a60eb7e32173e35e7bd8  gcc/testsuite/gdc.test/fail_compilation/fail20775.d
*************** e25875742d38b2256849c5f96a657b4e  gcc/te
*** 90420,90430 ****
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
  e86a43746a06c328b7e7e0ba7df00372  gcc/testsuite/gdc.test/fail_compilation/fail20965.d
  a73d3317381cd1a7dad4b419b99a70c1  gcc/testsuite/gdc.test/fail_compilation/fail21001.d
  15efbee5d7d12e140b24d2a045c8770e  gcc/testsuite/gdc.test/fail_compilation/fail21091a.d
  94ce42e8c54b06d1ce0618c9091c5b20  gcc/testsuite/gdc.test/fail_compilation/fail21091b.d
  3bd1b362fe8b8a478ba7c64e32e891da  gcc/testsuite/gdc.test/fail_compilation/fail21092.d
  86605b638db20f4ab75d9eb661ed1bef  gcc/testsuite/gdc.test/fail_compilation/fail212.d
! 392171473a721889badf102ac0b8b020  gcc/testsuite/gdc.test/fail_compilation/fail21206.d
  b0b9a19ac01ca365168a5af1f8cd3c34  gcc/testsuite/gdc.test/fail_compilation/fail21243.d
  a09e8da91153ed93d9aaeab41ad454e5  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
--- 97084,97095 ----
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
  e86a43746a06c328b7e7e0ba7df00372  gcc/testsuite/gdc.test/fail_compilation/fail20965.d
  a73d3317381cd1a7dad4b419b99a70c1  gcc/testsuite/gdc.test/fail_compilation/fail21001.d
+ 5075ed9f5c1a221fea2e396f414b7291  gcc/testsuite/gdc.test/fail_compilation/fail21045.d
  15efbee5d7d12e140b24d2a045c8770e  gcc/testsuite/gdc.test/fail_compilation/fail21091a.d
  94ce42e8c54b06d1ce0618c9091c5b20  gcc/testsuite/gdc.test/fail_compilation/fail21091b.d
  3bd1b362fe8b8a478ba7c64e32e891da  gcc/testsuite/gdc.test/fail_compilation/fail21092.d
  86605b638db20f4ab75d9eb661ed1bef  gcc/testsuite/gdc.test/fail_compilation/fail212.d
! 809c3dc96c6a04dc1f9933ad6e36414e  gcc/testsuite/gdc.test/fail_compilation/fail21206.d
  b0b9a19ac01ca365168a5af1f8cd3c34  gcc/testsuite/gdc.test/fail_compilation/fail21243.d
  a09e8da91153ed93d9aaeab41ad454e5  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
*************** a83d55be79bbfec18976ece3917ef4c3  gcc/te
*** 90439,90456 ****
  7025d32dc6c65dc11dae3b5ef7be57d5  gcc/testsuite/gdc.test/fail_compilation/fail21830.d
  f53cd799f73a88b39e37762ab5f0d895  gcc/testsuite/gdc.test/fail_compilation/fail21831.d
  cde47018767be52b59c3714b8b3b7c23  gcc/testsuite/gdc.test/fail_compilation/fail21832.d
! 924b73715b305ddb10cf8e8fcd7ac8ad  gcc/testsuite/gdc.test/fail_compilation/fail21849.d
! 13950261e7b51601cfd71db85330d877  gcc/testsuite/gdc.test/fail_compilation/fail21868b.d
  d3e754f69fda705025724136d5ffd640  gcc/testsuite/gdc.test/fail_compilation/fail21885.d
! 3cc974f3f05c55db8eea1f915e9881e5  gcc/testsuite/gdc.test/fail_compilation/fail21928.d
! 01cfc5ae8f798a3a9b4cc8df405dd2cd  gcc/testsuite/gdc.test/fail_compilation/fail21928b.d
  3b75d60d3bc093501e830b9e6f9f56b0  gcc/testsuite/gdc.test/fail_compilation/fail2195.d
! 25aa1006320654cdd4ef271b53a76a69  gcc/testsuite/gdc.test/fail_compilation/fail22.d
  6274ef7e8105ea803309557412cf83af  gcc/testsuite/gdc.test/fail_compilation/fail220.d
  24f4c3c3fa945ca54c802bc7b4fc9976  gcc/testsuite/gdc.test/fail_compilation/fail22006.d
  a4ee47c4449f07f5d351b6c05aeb5fc1  gcc/testsuite/gdc.test/fail_compilation/fail22035.d
  933d0bade21ca7413250a580843fd5b2  gcc/testsuite/gdc.test/fail_compilation/fail22039.d
! fddf17df9e2c66cc18dba533f3451fc1  gcc/testsuite/gdc.test/fail_compilation/fail22054.d
  32e9a53915db9581977b4869f165b323  gcc/testsuite/gdc.test/fail_compilation/fail22075.d
  bdb29ac495380b23d0398faa494dcb3b  gcc/testsuite/gdc.test/fail_compilation/fail22084.d
  36b4706d6d321e5e4dad94aafbae1237  gcc/testsuite/gdc.test/fail_compilation/fail221.d
--- 97104,97121 ----
  7025d32dc6c65dc11dae3b5ef7be57d5  gcc/testsuite/gdc.test/fail_compilation/fail21830.d
  f53cd799f73a88b39e37762ab5f0d895  gcc/testsuite/gdc.test/fail_compilation/fail21831.d
  cde47018767be52b59c3714b8b3b7c23  gcc/testsuite/gdc.test/fail_compilation/fail21832.d
! 4663e6ff213c017b5ead4aa27176017d  gcc/testsuite/gdc.test/fail_compilation/fail21849.d
! a30485f5ef0706cf732d75f1e2e5fef3  gcc/testsuite/gdc.test/fail_compilation/fail21868b.d
  d3e754f69fda705025724136d5ffd640  gcc/testsuite/gdc.test/fail_compilation/fail21885.d
! cd2d51ffd9aa5f4d6cd64ec439a88841  gcc/testsuite/gdc.test/fail_compilation/fail21928.d
! cfed0e071d0b9b197c8772a70811e997  gcc/testsuite/gdc.test/fail_compilation/fail21928b.d
  3b75d60d3bc093501e830b9e6f9f56b0  gcc/testsuite/gdc.test/fail_compilation/fail2195.d
! 24e866b75086d484df37cb8a379f6a75  gcc/testsuite/gdc.test/fail_compilation/fail22.d
  6274ef7e8105ea803309557412cf83af  gcc/testsuite/gdc.test/fail_compilation/fail220.d
  24f4c3c3fa945ca54c802bc7b4fc9976  gcc/testsuite/gdc.test/fail_compilation/fail22006.d
  a4ee47c4449f07f5d351b6c05aeb5fc1  gcc/testsuite/gdc.test/fail_compilation/fail22035.d
  933d0bade21ca7413250a580843fd5b2  gcc/testsuite/gdc.test/fail_compilation/fail22039.d
! a7a360e9ac568b736b869e81fbb1eda7  gcc/testsuite/gdc.test/fail_compilation/fail22054.d
  32e9a53915db9581977b4869f165b323  gcc/testsuite/gdc.test/fail_compilation/fail22075.d
  bdb29ac495380b23d0398faa494dcb3b  gcc/testsuite/gdc.test/fail_compilation/fail22084.d
  36b4706d6d321e5e4dad94aafbae1237  gcc/testsuite/gdc.test/fail_compilation/fail221.d
*************** b70b339a1dbd5b5807d24c2f37fb9ac3  gcc/te
*** 90460,90474 ****
  673fad350f62c8a44c501f8c402d7a21  gcc/testsuite/gdc.test/fail_compilation/fail22127.d
  2b4fb39fd7fc4e72ebcaa1ce62956043  gcc/testsuite/gdc.test/fail_compilation/fail22133.d
  0eb7354db04b068599fbb98e0945b443  gcc/testsuite/gdc.test/fail_compilation/fail22134.d
! 0fec8d242cc8653c987a5380a0e71966  gcc/testsuite/gdc.test/fail_compilation/fail22138.d
  9b88e4363da5c8d1e01b4b215b2046e0  gcc/testsuite/gdc.test/fail_compilation/fail22144.d
! 8e495eb6f782921db4fc6fc559c36d67  gcc/testsuite/gdc.test/fail_compilation/fail22151.d
! 4a6f2d70ec3a911633808b3b75c9b41e  gcc/testsuite/gdc.test/fail_compilation/fail22157.d
  a7b0c110feebc80ad33b22cf2532304c  gcc/testsuite/gdc.test/fail_compilation/fail222.d
  00bcf188d7c5b68cf64d99bdb6009bd7  gcc/testsuite/gdc.test/fail_compilation/fail22202.d
  928492c14b5c84fee4c14ddcc7dd2654  gcc/testsuite/gdc.test/fail_compilation/fail223.d
  17a695cee90e738df660838758034a05  gcc/testsuite/gdc.test/fail_compilation/fail22351.d
! 5f5a322da95758dcc7838f717387eb01  gcc/testsuite/gdc.test/fail_compilation/fail22366.d
  3f3c3c715b9b751e293418c6f11a698d  gcc/testsuite/gdc.test/fail_compilation/fail224.d
  c70d7463bfe55bd7cd11bbab0f8523bd  gcc/testsuite/gdc.test/fail_compilation/fail22529.d
  656e03bd856eb6e5af678c49d60888ad  gcc/testsuite/gdc.test/fail_compilation/fail22570.d
--- 97125,97139 ----
  673fad350f62c8a44c501f8c402d7a21  gcc/testsuite/gdc.test/fail_compilation/fail22127.d
  2b4fb39fd7fc4e72ebcaa1ce62956043  gcc/testsuite/gdc.test/fail_compilation/fail22133.d
  0eb7354db04b068599fbb98e0945b443  gcc/testsuite/gdc.test/fail_compilation/fail22134.d
! 37cb982f5419d275266019507262ba0f  gcc/testsuite/gdc.test/fail_compilation/fail22138.d
  9b88e4363da5c8d1e01b4b215b2046e0  gcc/testsuite/gdc.test/fail_compilation/fail22144.d
! cbeb7a9b26aace5d3509bbfc067b4244  gcc/testsuite/gdc.test/fail_compilation/fail22151.d
! 4baaa5d9453baf9a29ee72423acbf8ad  gcc/testsuite/gdc.test/fail_compilation/fail22157.d
  a7b0c110feebc80ad33b22cf2532304c  gcc/testsuite/gdc.test/fail_compilation/fail222.d
  00bcf188d7c5b68cf64d99bdb6009bd7  gcc/testsuite/gdc.test/fail_compilation/fail22202.d
  928492c14b5c84fee4c14ddcc7dd2654  gcc/testsuite/gdc.test/fail_compilation/fail223.d
  17a695cee90e738df660838758034a05  gcc/testsuite/gdc.test/fail_compilation/fail22351.d
! 799711bea752be4d7389b8f4f64279d7  gcc/testsuite/gdc.test/fail_compilation/fail22366.d
  3f3c3c715b9b751e293418c6f11a698d  gcc/testsuite/gdc.test/fail_compilation/fail224.d
  c70d7463bfe55bd7cd11bbab0f8523bd  gcc/testsuite/gdc.test/fail_compilation/fail22529.d
  656e03bd856eb6e5af678c49d60888ad  gcc/testsuite/gdc.test/fail_compilation/fail22570.d
*************** a3b880eeeee3718d39ad9eea41a126bd  gcc/te
*** 90484,90490 ****
  d66caeff2039e96ff6d7fabe194052e5  gcc/testsuite/gdc.test/fail_compilation/fail22881.d
  3ae4abd2e5f005a36efb80d18fa58cc6  gcc/testsuite/gdc.test/fail_compilation/fail229.d
  b870fb01a2c3232f3cff62cc0b90ac88  gcc/testsuite/gdc.test/fail_compilation/fail23.d
- 1537808a7acec1954230b6c3f80ec5f5  gcc/testsuite/gdc.test/fail_compilation/fail23036.d
  048e20a40216cbded5b201acc227180b  gcc/testsuite/gdc.test/fail_compilation/fail231.d
  3ee0844b26847d9399784b8860d279d8  gcc/testsuite/gdc.test/fail_compilation/fail23108a.d
  c17288c946e2e756c11f41221c460dfb  gcc/testsuite/gdc.test/fail_compilation/fail23108b.d
--- 97149,97154 ----
*************** e670a6f21877da59644ba71444695a18  gcc/te
*** 90499,90507 ****
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
  2a02191ef30d6def891809e1b63a7e39  gcc/testsuite/gdc.test/fail_compilation/fail236.d
- f1eeba6eda398cae717fff38b79838b8  gcc/testsuite/gdc.test/fail_compilation/fail2361.d
  045d30ea698dea0792154471c38b67ea  gcc/testsuite/gdc.test/fail_compilation/fail23626a.d
! c6fa7fa5de41cb8c47b38b08a5b1140b  gcc/testsuite/gdc.test/fail_compilation/fail23626b.d
  4a24025117f87834cb3038ffa2a63642  gcc/testsuite/gdc.test/fail_compilation/fail237.d
  bddcd4dcfd80181fc5ee0c70064b2f44  gcc/testsuite/gdc.test/fail_compilation/fail23745.d
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
--- 97163,97170 ----
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
  2a02191ef30d6def891809e1b63a7e39  gcc/testsuite/gdc.test/fail_compilation/fail236.d
  045d30ea698dea0792154471c38b67ea  gcc/testsuite/gdc.test/fail_compilation/fail23626a.d
! 744af2cd601147d4c8c03be55d60e1cc  gcc/testsuite/gdc.test/fail_compilation/fail23626b.d
  4a24025117f87834cb3038ffa2a63642  gcc/testsuite/gdc.test/fail_compilation/fail237.d
  bddcd4dcfd80181fc5ee0c70064b2f44  gcc/testsuite/gdc.test/fail_compilation/fail23745.d
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
*************** faf12ba22575387527878d9b8beb717a  gcc/te
*** 90516,90530 ****
  005abf61f1ff8fb547e29dbf781b21b2  gcc/testsuite/gdc.test/fail_compilation/fail24.d
  9d576be84ed81b8a31b6a539bfd3cf7e  gcc/testsuite/gdc.test/fail_compilation/fail240.d
  9415ecf21a39f177b782dad2e58b04bf  gcc/testsuite/gdc.test/fail_compilation/fail241.d
! f125d88d58a42ee809b3da224d025e4e  gcc/testsuite/gdc.test/fail_compilation/fail24208.d
! 5ce8393c26b46150b04000700d36725a  gcc/testsuite/gdc.test/fail_compilation/fail24212.d
! 4b75cf85ba2c20e5887e89bdd702e846  gcc/testsuite/gdc.test/fail_compilation/fail24213.d
  7cef6791f8b6fb10fd4acaf05288fcec  gcc/testsuite/gdc.test/fail_compilation/fail24224.d
  3380997ecc3199cdf4486442df9089b0  gcc/testsuite/gdc.test/fail_compilation/fail243.d
  d70d131a4da1f17234e2be04471f3b3f  gcc/testsuite/gdc.test/fail_compilation/fail24301.d
  bc473ab268cb5e0707cc9686d0c00c23  gcc/testsuite/gdc.test/fail_compilation/fail244.d
  4545d906740581bb348ff03962ffdc9c  gcc/testsuite/gdc.test/fail_compilation/fail245.d
! f7cc635e5a343f0dbb5095847595c2be  gcc/testsuite/gdc.test/fail_compilation/fail2450.d
  69ffc2366f4a0508e28232db9d0db704  gcc/testsuite/gdc.test/fail_compilation/fail2456.d
  ce3d4db7da44d83520245251d1c52b86  gcc/testsuite/gdc.test/fail_compilation/fail246.d
  958904cb5cb1e8986e403a18801ebdc8  gcc/testsuite/gdc.test/fail_compilation/fail247.d
--- 97179,97194 ----
  005abf61f1ff8fb547e29dbf781b21b2  gcc/testsuite/gdc.test/fail_compilation/fail24.d
  9d576be84ed81b8a31b6a539bfd3cf7e  gcc/testsuite/gdc.test/fail_compilation/fail240.d
  9415ecf21a39f177b782dad2e58b04bf  gcc/testsuite/gdc.test/fail_compilation/fail241.d
! 26155250b1579a0e86ea27aa9ee1add9  gcc/testsuite/gdc.test/fail_compilation/fail24208.d
! 3f3452eb2df7a9dbe45c71d8aa295b39  gcc/testsuite/gdc.test/fail_compilation/fail24212.d
! e58a5d9268bc70681372fdf3502f3b7e  gcc/testsuite/gdc.test/fail_compilation/fail24213.d
  7cef6791f8b6fb10fd4acaf05288fcec  gcc/testsuite/gdc.test/fail_compilation/fail24224.d
  3380997ecc3199cdf4486442df9089b0  gcc/testsuite/gdc.test/fail_compilation/fail243.d
  d70d131a4da1f17234e2be04471f3b3f  gcc/testsuite/gdc.test/fail_compilation/fail24301.d
  bc473ab268cb5e0707cc9686d0c00c23  gcc/testsuite/gdc.test/fail_compilation/fail244.d
+ 007e12f5e848b3a7fa39bf61fd6bb525  gcc/testsuite/gdc.test/fail_compilation/fail24485.d
  4545d906740581bb348ff03962ffdc9c  gcc/testsuite/gdc.test/fail_compilation/fail245.d
! 9ecc5bede31ac4ef6386e4f108841600  gcc/testsuite/gdc.test/fail_compilation/fail2450.d
  69ffc2366f4a0508e28232db9d0db704  gcc/testsuite/gdc.test/fail_compilation/fail2456.d
  ce3d4db7da44d83520245251d1c52b86  gcc/testsuite/gdc.test/fail_compilation/fail246.d
  958904cb5cb1e8986e403a18801ebdc8  gcc/testsuite/gdc.test/fail_compilation/fail247.d
*************** d3ce620c359b68a82b10de23b943ffb3  gcc/te
*** 90569,90578 ****
  c0167ff7cfda345c489ee36ed532f9a5  gcc/testsuite/gdc.test/fail_compilation/fail291.d
  217c8f69c094ff2a702c229130a7d538  gcc/testsuite/gdc.test/fail_compilation/fail296.d
  45ec37698b6441cbf5cd767bc9e6af4a  gcc/testsuite/gdc.test/fail_compilation/fail2962.d
! 6d60e1b2bdb96cb17f638be9d15be002  gcc/testsuite/gdc.test/fail_compilation/fail297.d
  39598ace8538fb86a4a31cd07f3b73e6  gcc/testsuite/gdc.test/fail_compilation/fail298.d
  b206f94fcd91613bf06fad61e79f3c3d  gcc/testsuite/gdc.test/fail_compilation/fail299.d
! 0ed23be0c271e03f9f016cdd30ade45c  gcc/testsuite/gdc.test/fail_compilation/fail3.d
  84b619eaab20a20b472d9345245c8ba8  gcc/testsuite/gdc.test/fail_compilation/fail301.d
  ccf07a8d9da2e18e2df9789595f228b8  gcc/testsuite/gdc.test/fail_compilation/fail302.d
  83cbeb4a4f4e877683998a5dc8350383  gcc/testsuite/gdc.test/fail_compilation/fail303.d
--- 97233,97242 ----
  c0167ff7cfda345c489ee36ed532f9a5  gcc/testsuite/gdc.test/fail_compilation/fail291.d
  217c8f69c094ff2a702c229130a7d538  gcc/testsuite/gdc.test/fail_compilation/fail296.d
  45ec37698b6441cbf5cd767bc9e6af4a  gcc/testsuite/gdc.test/fail_compilation/fail2962.d
! f4567d269cade435a0fcc855c5b0c009  gcc/testsuite/gdc.test/fail_compilation/fail297.d
  39598ace8538fb86a4a31cd07f3b73e6  gcc/testsuite/gdc.test/fail_compilation/fail298.d
  b206f94fcd91613bf06fad61e79f3c3d  gcc/testsuite/gdc.test/fail_compilation/fail299.d
! 1a13ba4d6e4d850f4a17aab5017d8c73  gcc/testsuite/gdc.test/fail_compilation/fail3.d
  84b619eaab20a20b472d9345245c8ba8  gcc/testsuite/gdc.test/fail_compilation/fail301.d
  ccf07a8d9da2e18e2df9789595f228b8  gcc/testsuite/gdc.test/fail_compilation/fail302.d
  83cbeb4a4f4e877683998a5dc8350383  gcc/testsuite/gdc.test/fail_compilation/fail303.d
*************** ca1565a5e3c6d530f6ac211c98dbb3c9  gcc/te
*** 90613,90619 ****
  d90da0a412ace4972eb22626cc976f94  gcc/testsuite/gdc.test/fail_compilation/fail343.d
  f332a94ead175c47a5de77a06e6410b4  gcc/testsuite/gdc.test/fail_compilation/fail344.d
  4a746c443d2dbe861d85e6889c4bf53f  gcc/testsuite/gdc.test/fail_compilation/fail346.d
! f30dee3457a1832a9e743366a7621ba1  gcc/testsuite/gdc.test/fail_compilation/fail347.d
  ccd8ce4ed9822b5a21bb35bdb22746b4  gcc/testsuite/gdc.test/fail_compilation/fail349.d
  bede71f4316d3fc557a5414cd713fc15  gcc/testsuite/gdc.test/fail_compilation/fail35.d
  d8f935e976db90cddbe98d81b99278a0  gcc/testsuite/gdc.test/fail_compilation/fail351.d
--- 97277,97283 ----
  d90da0a412ace4972eb22626cc976f94  gcc/testsuite/gdc.test/fail_compilation/fail343.d
  f332a94ead175c47a5de77a06e6410b4  gcc/testsuite/gdc.test/fail_compilation/fail344.d
  4a746c443d2dbe861d85e6889c4bf53f  gcc/testsuite/gdc.test/fail_compilation/fail346.d
! 3abd9167c0c17376878ea9f95f5b8977  gcc/testsuite/gdc.test/fail_compilation/fail347.d
  ccd8ce4ed9822b5a21bb35bdb22746b4  gcc/testsuite/gdc.test/fail_compilation/fail349.d
  bede71f4316d3fc557a5414cd713fc15  gcc/testsuite/gdc.test/fail_compilation/fail35.d
  d8f935e976db90cddbe98d81b99278a0  gcc/testsuite/gdc.test/fail_compilation/fail351.d
*************** fd946b4fc9ac05e46c66850cb7ff4e37  gcc/te
*** 90627,90635 ****
  06b4f133b88fa879e44e455dfa384c83  gcc/testsuite/gdc.test/fail_compilation/fail3581b.d
  d9c122ac02ce112d92c65de536e7c1d7  gcc/testsuite/gdc.test/fail_compilation/fail359.d
  746948d192ad9a901f2298f8ddb07a09  gcc/testsuite/gdc.test/fail_compilation/fail36.d
! 29a89a6454930e35a32191818a8992d2  gcc/testsuite/gdc.test/fail_compilation/fail3672.d
  7247a47f45f036756a7c0b54274e273c  gcc/testsuite/gdc.test/fail_compilation/fail3673a.d
! 1d2567efb51ee9926e9ffd28b507ca90  gcc/testsuite/gdc.test/fail_compilation/fail3673b.d
  b199f60d67e76de7b69aae541852e953  gcc/testsuite/gdc.test/fail_compilation/fail3703.d
  11af7cdbfdfe0e1a51be20f239eee6e3  gcc/testsuite/gdc.test/fail_compilation/fail3731.d
  7a59c8a96800f36befec89a5a96dd3b4  gcc/testsuite/gdc.test/fail_compilation/fail37_m32.d
--- 97291,97299 ----
  06b4f133b88fa879e44e455dfa384c83  gcc/testsuite/gdc.test/fail_compilation/fail3581b.d
  d9c122ac02ce112d92c65de536e7c1d7  gcc/testsuite/gdc.test/fail_compilation/fail359.d
  746948d192ad9a901f2298f8ddb07a09  gcc/testsuite/gdc.test/fail_compilation/fail36.d
! bafdb69838c38f554226e942e44097fb  gcc/testsuite/gdc.test/fail_compilation/fail3672.d
  7247a47f45f036756a7c0b54274e273c  gcc/testsuite/gdc.test/fail_compilation/fail3673a.d
! 6a8d324d64f64791aaf818b08d897a52  gcc/testsuite/gdc.test/fail_compilation/fail3673b.d
  b199f60d67e76de7b69aae541852e953  gcc/testsuite/gdc.test/fail_compilation/fail3703.d
  11af7cdbfdfe0e1a51be20f239eee6e3  gcc/testsuite/gdc.test/fail_compilation/fail3731.d
  7a59c8a96800f36befec89a5a96dd3b4  gcc/testsuite/gdc.test/fail_compilation/fail37_m32.d
*************** b199f60d67e76de7b69aae541852e953  gcc/te
*** 90637,90643 ****
  79b07ae2d52fa5bdbb5f923388c4f3ec  gcc/testsuite/gdc.test/fail_compilation/fail38.d
  04e5bfa11eb70ec3b6f83c6a11d2433d  gcc/testsuite/gdc.test/fail_compilation/fail3882.d
  2215430973b1bd295b4a070c2e018978  gcc/testsuite/gdc.test/fail_compilation/fail3895.d
! dbab9ede0148d630ce5457fe3852652b  gcc/testsuite/gdc.test/fail_compilation/fail39.d
  a3c52c49abd68bb9774eff98e08689bb  gcc/testsuite/gdc.test/fail_compilation/fail3990.d
  5072a326fa375a1588e84f415ae73a2a  gcc/testsuite/gdc.test/fail_compilation/fail40.d
  6997b0f6d45a6ceccc225d28063629cb  gcc/testsuite/gdc.test/fail_compilation/fail4082.d
--- 97301,97307 ----
  79b07ae2d52fa5bdbb5f923388c4f3ec  gcc/testsuite/gdc.test/fail_compilation/fail38.d
  04e5bfa11eb70ec3b6f83c6a11d2433d  gcc/testsuite/gdc.test/fail_compilation/fail3882.d
  2215430973b1bd295b4a070c2e018978  gcc/testsuite/gdc.test/fail_compilation/fail3895.d
! 9d6a40cd865768a1d5cced1fb4b8503f  gcc/testsuite/gdc.test/fail_compilation/fail39.d
  a3c52c49abd68bb9774eff98e08689bb  gcc/testsuite/gdc.test/fail_compilation/fail3990.d
  5072a326fa375a1588e84f415ae73a2a  gcc/testsuite/gdc.test/fail_compilation/fail40.d
  6997b0f6d45a6ceccc225d28063629cb  gcc/testsuite/gdc.test/fail_compilation/fail4082.d
*************** a3c52c49abd68bb9774eff98e08689bb  gcc/te
*** 90648,90654 ****
  9ba1cccc0e4d3d97b624134d3c515590  gcc/testsuite/gdc.test/fail_compilation/fail4269b.d
  c4ab43e7f9f9156f14bc34890fdae39c  gcc/testsuite/gdc.test/fail_compilation/fail4269c.d
  562a7b498cea26253db494302d3e7be7  gcc/testsuite/gdc.test/fail_compilation/fail4269d.d
! 09c03d72eb2fe6ed53f3105d1ddedcd4  gcc/testsuite/gdc.test/fail_compilation/fail4269e.d
  7e320cba69b1ca1fa0179755e3337cbc  gcc/testsuite/gdc.test/fail_compilation/fail4269f.d
  e2a4b369785e7e5d117aa961f21d213a  gcc/testsuite/gdc.test/fail_compilation/fail4269g.d
  b36f34211c127f9d14b0221649b8a60c  gcc/testsuite/gdc.test/fail_compilation/fail4374.d
--- 97312,97318 ----
  9ba1cccc0e4d3d97b624134d3c515590  gcc/testsuite/gdc.test/fail_compilation/fail4269b.d
  c4ab43e7f9f9156f14bc34890fdae39c  gcc/testsuite/gdc.test/fail_compilation/fail4269c.d
  562a7b498cea26253db494302d3e7be7  gcc/testsuite/gdc.test/fail_compilation/fail4269d.d
! b83368b28a1b737542921912061d84e7  gcc/testsuite/gdc.test/fail_compilation/fail4269e.d
  7e320cba69b1ca1fa0179755e3337cbc  gcc/testsuite/gdc.test/fail_compilation/fail4269f.d
  e2a4b369785e7e5d117aa961f21d213a  gcc/testsuite/gdc.test/fail_compilation/fail4269g.d
  b36f34211c127f9d14b0221649b8a60c  gcc/testsuite/gdc.test/fail_compilation/fail4374.d
*************** dfb8698771b62c207148e09fcae46f45  gcc/te
*** 90677,90688 ****
  3b51f2991c42913dbf9c0e992b55601f  gcc/testsuite/gdc.test/fail_compilation/fail4375x.d
  b215db95df7d2f0a6817d59cadeaf153  gcc/testsuite/gdc.test/fail_compilation/fail4375y.d
  8b5986b1a1adfe08a1003f54c1595998  gcc/testsuite/gdc.test/fail_compilation/fail44.d
! b58f9fa269de2f910d3f7415e2e893f7  gcc/testsuite/gdc.test/fail_compilation/fail4421.d
  db35e21cac0714ec864d1a43da5f821e  gcc/testsuite/gdc.test/fail_compilation/fail4448.d
  df7ebe1c9154e532f0eb25a288826ccb  gcc/testsuite/gdc.test/fail_compilation/fail45.d
  372cc7df83288c26deec10920b7ff241  gcc/testsuite/gdc.test/fail_compilation/fail4510.d
  a1c72712e50cfccb9828a18700353ddb  gcc/testsuite/gdc.test/fail_compilation/fail4511.d
! 6a513bc554e388d7c06336c242687244  gcc/testsuite/gdc.test/fail_compilation/fail4544.d
  b8da7345fe67d860f5a861a258ed75be  gcc/testsuite/gdc.test/fail_compilation/fail46.d
  12ed1d3ea012b75c6d4c8a938d10aa6b  gcc/testsuite/gdc.test/fail_compilation/fail4611.d
  02f3db206ee272f70f6c94b5621f1724  gcc/testsuite/gdc.test/fail_compilation/fail47.d
--- 97341,97352 ----
  3b51f2991c42913dbf9c0e992b55601f  gcc/testsuite/gdc.test/fail_compilation/fail4375x.d
  b215db95df7d2f0a6817d59cadeaf153  gcc/testsuite/gdc.test/fail_compilation/fail4375y.d
  8b5986b1a1adfe08a1003f54c1595998  gcc/testsuite/gdc.test/fail_compilation/fail44.d
! b806712e121f198af2a03b93d188c515  gcc/testsuite/gdc.test/fail_compilation/fail4421.d
  db35e21cac0714ec864d1a43da5f821e  gcc/testsuite/gdc.test/fail_compilation/fail4448.d
  df7ebe1c9154e532f0eb25a288826ccb  gcc/testsuite/gdc.test/fail_compilation/fail45.d
  372cc7df83288c26deec10920b7ff241  gcc/testsuite/gdc.test/fail_compilation/fail4510.d
  a1c72712e50cfccb9828a18700353ddb  gcc/testsuite/gdc.test/fail_compilation/fail4511.d
! 0e713ba168b8da2a75c937cec4d0fc0f  gcc/testsuite/gdc.test/fail_compilation/fail4544.d
  b8da7345fe67d860f5a861a258ed75be  gcc/testsuite/gdc.test/fail_compilation/fail46.d
  12ed1d3ea012b75c6d4c8a938d10aa6b  gcc/testsuite/gdc.test/fail_compilation/fail4611.d
  02f3db206ee272f70f6c94b5621f1724  gcc/testsuite/gdc.test/fail_compilation/fail47.d
*************** dc1ca007f2c683eced50df7662e43e67  gcc/te
*** 90709,90728 ****
  63963f11ac05d624f54576e265b04620  gcc/testsuite/gdc.test/fail_compilation/fail60.d
  42a1255944d9bddb16e627a61865d1bc  gcc/testsuite/gdc.test/fail_compilation/fail6029.d
  7a1842be550d05be12798865e88a4365  gcc/testsuite/gdc.test/fail_compilation/fail61.d
! 41e84d5491b9cd6499320b1f3de36186  gcc/testsuite/gdc.test/fail_compilation/fail6107.d
  0339b3d2f0c30e5e8b0165010f55c9da  gcc/testsuite/gdc.test/fail_compilation/fail62.d
  d49de1c497e66b2393f19e7ab4164fa3  gcc/testsuite/gdc.test/fail_compilation/fail6242.d
  c04bb3b9d9f2c77e67d846ea284d05c6  gcc/testsuite/gdc.test/fail_compilation/fail63.d
! 0f729e40e929d617f3bd3d50123fe43f  gcc/testsuite/gdc.test/fail_compilation/fail6334.d
  0f27e8326540f5faa28936d621dc867b  gcc/testsuite/gdc.test/fail_compilation/fail6453.d
  f6ad81f6c854268ec6aa1653a1d0a713  gcc/testsuite/gdc.test/fail_compilation/fail6458.d
! 939f57e656ee0ebf701e70ea08291c32  gcc/testsuite/gdc.test/fail_compilation/fail6497.d
  611d6b962d4185ffdab95c02bc8df4e4  gcc/testsuite/gdc.test/fail_compilation/fail6561.d
  e572a3337ac147afe10e7c1be4ef0061  gcc/testsuite/gdc.test/fail_compilation/fail66.d
  9e7996a6ce93324b738d224ae2c4c197  gcc/testsuite/gdc.test/fail_compilation/fail6611.d
  df0020fd18ec31bed68de41c63d76fe2  gcc/testsuite/gdc.test/fail_compilation/fail6652.d
  ccfea15dc14dfc824be1ec62b8a31852  gcc/testsuite/gdc.test/fail_compilation/fail6781.d
! 5a06410067ec27b82d92e85cfbee4732  gcc/testsuite/gdc.test/fail_compilation/fail6795.d
  91f52bce26014ee21eba507bba017f17  gcc/testsuite/gdc.test/fail_compilation/fail6889.d
  5ec830d5c53fc5f8a83fb99cea8c3c5a  gcc/testsuite/gdc.test/fail_compilation/fail6968.d
  4f5e9643c98ab73f981a090b5ede3c6b  gcc/testsuite/gdc.test/fail_compilation/fail7077.d
--- 97373,97392 ----
  63963f11ac05d624f54576e265b04620  gcc/testsuite/gdc.test/fail_compilation/fail60.d
  42a1255944d9bddb16e627a61865d1bc  gcc/testsuite/gdc.test/fail_compilation/fail6029.d
  7a1842be550d05be12798865e88a4365  gcc/testsuite/gdc.test/fail_compilation/fail61.d
! 233f5b5f3cee0ad30bd04cef8db1f620  gcc/testsuite/gdc.test/fail_compilation/fail6107.d
  0339b3d2f0c30e5e8b0165010f55c9da  gcc/testsuite/gdc.test/fail_compilation/fail62.d
  d49de1c497e66b2393f19e7ab4164fa3  gcc/testsuite/gdc.test/fail_compilation/fail6242.d
  c04bb3b9d9f2c77e67d846ea284d05c6  gcc/testsuite/gdc.test/fail_compilation/fail63.d
! f29d15ce0f4c155a9996ad11ee7691bf  gcc/testsuite/gdc.test/fail_compilation/fail6334.d
  0f27e8326540f5faa28936d621dc867b  gcc/testsuite/gdc.test/fail_compilation/fail6453.d
  f6ad81f6c854268ec6aa1653a1d0a713  gcc/testsuite/gdc.test/fail_compilation/fail6458.d
! f06525c46ef47c01d70b5c6dfd79ceb4  gcc/testsuite/gdc.test/fail_compilation/fail6497.d
  611d6b962d4185ffdab95c02bc8df4e4  gcc/testsuite/gdc.test/fail_compilation/fail6561.d
  e572a3337ac147afe10e7c1be4ef0061  gcc/testsuite/gdc.test/fail_compilation/fail66.d
  9e7996a6ce93324b738d224ae2c4c197  gcc/testsuite/gdc.test/fail_compilation/fail6611.d
  df0020fd18ec31bed68de41c63d76fe2  gcc/testsuite/gdc.test/fail_compilation/fail6652.d
  ccfea15dc14dfc824be1ec62b8a31852  gcc/testsuite/gdc.test/fail_compilation/fail6781.d
! fd2d9062f2acfd44f22ffe08d0dd39a2  gcc/testsuite/gdc.test/fail_compilation/fail6795.d
  91f52bce26014ee21eba507bba017f17  gcc/testsuite/gdc.test/fail_compilation/fail6889.d
  5ec830d5c53fc5f8a83fb99cea8c3c5a  gcc/testsuite/gdc.test/fail_compilation/fail6968.d
  4f5e9643c98ab73f981a090b5ede3c6b  gcc/testsuite/gdc.test/fail_compilation/fail7077.d
*************** fe1702f14fb41a774f8c66a441964f36  gcc/te
*** 90755,90761 ****
  92aa8a8003bb898a5b6414473a0b488d  gcc/testsuite/gdc.test/fail_compilation/fail7702.d
  1ab023e309a57b9924db04ee18437f87  gcc/testsuite/gdc.test/fail_compilation/fail7751.d
  bc85c10bfd2a5ec0ee7c065a2d103ecd  gcc/testsuite/gdc.test/fail_compilation/fail78.d
! 145b860784fb906109f230d570415c71  gcc/testsuite/gdc.test/fail_compilation/fail7848.d
  449e0f52c71ce5b906197afda2f60f69  gcc/testsuite/gdc.test/fail_compilation/fail7851.d
  401d56f13cc4bd550382136545d4e8a3  gcc/testsuite/gdc.test/fail_compilation/fail7859.d
  dd3a0287946a586f2a74c99e86dfb5d2  gcc/testsuite/gdc.test/fail_compilation/fail7861.d
--- 97419,97425 ----
  92aa8a8003bb898a5b6414473a0b488d  gcc/testsuite/gdc.test/fail_compilation/fail7702.d
  1ab023e309a57b9924db04ee18437f87  gcc/testsuite/gdc.test/fail_compilation/fail7751.d
  bc85c10bfd2a5ec0ee7c065a2d103ecd  gcc/testsuite/gdc.test/fail_compilation/fail78.d
! f10cdb4f0aebb3a68c084f395f2f9611  gcc/testsuite/gdc.test/fail_compilation/fail7848.d
  449e0f52c71ce5b906197afda2f60f69  gcc/testsuite/gdc.test/fail_compilation/fail7851.d
  401d56f13cc4bd550382136545d4e8a3  gcc/testsuite/gdc.test/fail_compilation/fail7859.d
  dd3a0287946a586f2a74c99e86dfb5d2  gcc/testsuite/gdc.test/fail_compilation/fail7861.d
*************** fed4ca464ca0ae6580a0b5b2a2ce9520  gcc/te
*** 90769,90776 ****
  d23a686d3b61373f5fd2c443c37f8c69  gcc/testsuite/gdc.test/fail_compilation/fail8179b.d
  9daa45699d661b992d2b8bb4113d3424  gcc/testsuite/gdc.test/fail_compilation/fail8217.d
  b6ffbcff6f4f3bfb51ce3457ad1530b4  gcc/testsuite/gdc.test/fail_compilation/fail8262.d
! fa8cbb814bdd1ecb615be4298b99baac  gcc/testsuite/gdc.test/fail_compilation/fail8313.d
! e77fabf5d84f9edceecdf3a4f7cfa430  gcc/testsuite/gdc.test/fail_compilation/fail8373.d
  ccbf7fe819cf48b189d76874040439fa  gcc/testsuite/gdc.test/fail_compilation/fail86.d
  6d84ac30cad31ec993f23d912f973326  gcc/testsuite/gdc.test/fail_compilation/fail8631.d
  45ecc1b0f407c1be0cd016bb6d98e64c  gcc/testsuite/gdc.test/fail_compilation/fail8691.d
--- 97433,97440 ----
  d23a686d3b61373f5fd2c443c37f8c69  gcc/testsuite/gdc.test/fail_compilation/fail8179b.d
  9daa45699d661b992d2b8bb4113d3424  gcc/testsuite/gdc.test/fail_compilation/fail8217.d
  b6ffbcff6f4f3bfb51ce3457ad1530b4  gcc/testsuite/gdc.test/fail_compilation/fail8262.d
! 56e98ec3743ad68aa077009f3c7f3592  gcc/testsuite/gdc.test/fail_compilation/fail8313.d
! d5a26a01b8c5824d6d0ca5676e9ed23a  gcc/testsuite/gdc.test/fail_compilation/fail8373.d
  ccbf7fe819cf48b189d76874040439fa  gcc/testsuite/gdc.test/fail_compilation/fail86.d
  6d84ac30cad31ec993f23d912f973326  gcc/testsuite/gdc.test/fail_compilation/fail8631.d
  45ecc1b0f407c1be0cd016bb6d98e64c  gcc/testsuite/gdc.test/fail_compilation/fail8691.d
*************** d7723e17b36d09ef6c3adb1b595d1521  gcc/te
*** 90809,90821 ****
  4cc716e7729c65300b3c37f4297755e9  gcc/testsuite/gdc.test/fail_compilation/fail98.d
  1eb7d70c5bc3244e5e4ea3b6f5d798bd  gcc/testsuite/gdc.test/fail_compilation/fail9891.d
  5f89108928a4b83bf03ae31c848575f0  gcc/testsuite/gdc.test/fail_compilation/fail9892.d
! 05b54ab0227249cc954dbf6f7cfda253  gcc/testsuite/gdc.test/fail_compilation/fail99.d
  980a7ec30f9685063c0705dc226922a9  gcc/testsuite/gdc.test/fail_compilation/fail9936.d
! 378c1bcd54af66fa3474a8ed2d6104fa  gcc/testsuite/gdc.test/fail_compilation/failCopyCtor.d
! c031c67712e76b12a4c85d293bcf3ffe  gcc/testsuite/gdc.test/fail_compilation/failCopyCtor2.d
! f4d497ea71041ea968e6cfffda0c12bb  gcc/testsuite/gdc.test/fail_compilation/fail_arrayexp.d
  ac90f256ed942b9c651f7c098cb27bb5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop1.d
! e803ef51ecf2c3f32c5ea50cbbab6b16  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop2.d
  5392bd6d5086465088d720bec4e643b5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3a.d
  37929ba711bedc6a10601f65fc2ef9dc  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3b.d
  76dc6e141fcacc42604f0bdf73497160  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3c.d
--- 97473,97483 ----
  4cc716e7729c65300b3c37f4297755e9  gcc/testsuite/gdc.test/fail_compilation/fail98.d
  1eb7d70c5bc3244e5e4ea3b6f5d798bd  gcc/testsuite/gdc.test/fail_compilation/fail9891.d
  5f89108928a4b83bf03ae31c848575f0  gcc/testsuite/gdc.test/fail_compilation/fail9892.d
! 456bcfedd0986449389fccbd17f7cfab  gcc/testsuite/gdc.test/fail_compilation/fail99.d
  980a7ec30f9685063c0705dc226922a9  gcc/testsuite/gdc.test/fail_compilation/fail9936.d
! b7938dd575ee5edbf4f5fe4fa5b34e58  gcc/testsuite/gdc.test/fail_compilation/fail_arrayexp.d
  ac90f256ed942b9c651f7c098cb27bb5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop1.d
! fd706eb323b8dd34ef0c3a724407249c  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop2.d
  5392bd6d5086465088d720bec4e643b5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3a.d
  37929ba711bedc6a10601f65fc2ef9dc  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3b.d
  76dc6e141fcacc42604f0bdf73497160  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3c.d
*************** d1920a0ad9ef7df56e67e67aed392ab6  gcc/te
*** 90824,90842 ****
  5c15379ab3a21c0db67afc5a0536520a  gcc/testsuite/gdc.test/fail_compilation/fail_casting2.d
  dafeada2c936583ac2c626e7223f0e51  gcc/testsuite/gdc.test/fail_compilation/fail_circular.d
  91ebca05271a9228a53b7e9db4999337  gcc/testsuite/gdc.test/fail_compilation/fail_circular2.d
! 59012ab33a613aaff098d9fedf45aca3  gcc/testsuite/gdc.test/fail_compilation/fail_compilation.exp
  39d9ce96eb95361623099463c49b4659  gcc/testsuite/gdc.test/fail_compilation/fail_contracts1.d
  f0f98a24874397d29f4f6e59def95d45  gcc/testsuite/gdc.test/fail_compilation/fail_contracts2.d
  2681d65bc25b4e9924747b1bcb620627  gcc/testsuite/gdc.test/fail_compilation/fail_contracts3.d
  2ba3f1515a3ee5a14f9c4466fc8caef3  gcc/testsuite/gdc.test/fail_compilation/fail_contracts4.d
  695faa3012289c1132b755b3a4e17c6b  gcc/testsuite/gdc.test/fail_compilation/fail_isZeroInit.d
! 5755182d428b39c519f6bab44078de81  gcc/testsuite/gdc.test/fail_compilation/fail_opover.d
! 3abab4820b27a2c6f25c216bae9621ee  gcc/testsuite/gdc.test/fail_compilation/fail_pretty_errors.d
! 9fc9df84c6a9b4eaf58d59180fcfb94d  gcc/testsuite/gdc.test/fail_compilation/fail_scope.d
  60c11097cde97ed1a0d56db913d545cd  gcc/testsuite/gdc.test/fail_compilation/fail_typeof.d
  1c155fc73fa20eef8b42028af054656e  gcc/testsuite/gdc.test/fail_compilation/failattr.d
! 29bc4c70cdc0939d0bbf342f68018543  gcc/testsuite/gdc.test/fail_compilation/failcontracts.d
! 350c72bc28ff713ca0e58d7af842d96d  gcc/testsuite/gdc.test/fail_compilation/faildeleteaa.d
  ed790d31dcec49050e526f717b7525f2  gcc/testsuite/gdc.test/fail_compilation/faildottypeinfo.d
  acd4dc01e2f625f440ffb85c36b0bdd8  gcc/testsuite/gdc.test/fail_compilation/failescape.d
  572be48d5a0a5235990cd885758cfa21  gcc/testsuite/gdc.test/fail_compilation/failinout1.d
--- 97486,97503 ----
  5c15379ab3a21c0db67afc5a0536520a  gcc/testsuite/gdc.test/fail_compilation/fail_casting2.d
  dafeada2c936583ac2c626e7223f0e51  gcc/testsuite/gdc.test/fail_compilation/fail_circular.d
  91ebca05271a9228a53b7e9db4999337  gcc/testsuite/gdc.test/fail_compilation/fail_circular2.d
! ff67d64b144c8255e98f64371647f512  gcc/testsuite/gdc.test/fail_compilation/fail_compilation.exp
  39d9ce96eb95361623099463c49b4659  gcc/testsuite/gdc.test/fail_compilation/fail_contracts1.d
  f0f98a24874397d29f4f6e59def95d45  gcc/testsuite/gdc.test/fail_compilation/fail_contracts2.d
  2681d65bc25b4e9924747b1bcb620627  gcc/testsuite/gdc.test/fail_compilation/fail_contracts3.d
  2ba3f1515a3ee5a14f9c4466fc8caef3  gcc/testsuite/gdc.test/fail_compilation/fail_contracts4.d
  695faa3012289c1132b755b3a4e17c6b  gcc/testsuite/gdc.test/fail_compilation/fail_isZeroInit.d
! 355efac6c9e5d4cfab4abe0ea13e91b5  gcc/testsuite/gdc.test/fail_compilation/fail_opover.d
! 24ea6fc5fe8ac4e5400e848081335c55  gcc/testsuite/gdc.test/fail_compilation/fail_pretty_errors.d
! 2283d23cdf2b6ba522578c516a9457eb  gcc/testsuite/gdc.test/fail_compilation/fail_scope.d
  60c11097cde97ed1a0d56db913d545cd  gcc/testsuite/gdc.test/fail_compilation/fail_typeof.d
  1c155fc73fa20eef8b42028af054656e  gcc/testsuite/gdc.test/fail_compilation/failattr.d
! ab9734d035ce0d3f3899a47944a7565b  gcc/testsuite/gdc.test/fail_compilation/failcontracts.d
  ed790d31dcec49050e526f717b7525f2  gcc/testsuite/gdc.test/fail_compilation/faildottypeinfo.d
  acd4dc01e2f625f440ffb85c36b0bdd8  gcc/testsuite/gdc.test/fail_compilation/failescape.d
  572be48d5a0a5235990cd885758cfa21  gcc/testsuite/gdc.test/fail_compilation/failinout1.d
*************** b1fa83e7e767b866edc1118f9d0f686f  gcc/te
*** 90853,90868 ****
  beb8c8bfc3f0f76ee64efc3806c61af0  gcc/testsuite/gdc.test/fail_compilation/fix19059.d
  70b0c808cb74e8359925dbd5e0749db7  gcc/testsuite/gdc.test/fail_compilation/fix19246.d
  0274ff4a725fd57aeec4d55356e37e66  gcc/testsuite/gdc.test/fail_compilation/fix21585.d
! b7bce6203e2b735958ce506967d38f32  gcc/testsuite/gdc.test/fail_compilation/fix22108.d
  2ff267e1d3a9eba9b6a3dbdefbb8e0c4  gcc/testsuite/gdc.test/fail_compilation/fix23138.d
  93690a25ed6e19eb304f316a96d26179  gcc/testsuite/gdc.test/fail_compilation/fix350a.d
  d70aafa6b9062aa0a03de1dadb2afa0e  gcc/testsuite/gdc.test/fail_compilation/fix350b.d
! 61222240dcc7ff94aa66a70ee70a2267  gcc/testsuite/gdc.test/fail_compilation/fix5212.d
! 56dca5f4e1790c3e3a915759e3716f3d  gcc/testsuite/gdc.test/fail_compilation/fnconstraint.d
  632cc2a388729fd7b375cab66f081eec  gcc/testsuite/gdc.test/fail_compilation/fob1.d
  040176ff17f89531c80db27571dd516c  gcc/testsuite/gdc.test/fail_compilation/fob2.d
  3b6b4690c46663771a12fac16287d948  gcc/testsuite/gdc.test/fail_compilation/foreach.d
  0f17ffd1ebe50b304fd0960b12313bb2  gcc/testsuite/gdc.test/fail_compilation/foreach2.d
  bccf894411d541cd221e4207649b4c46  gcc/testsuite/gdc.test/fail_compilation/format.d
  15e1ee41289e7d1ef8a596511f5652b2  gcc/testsuite/gdc.test/fail_compilation/funcpostattr.d
  b94cf7c5d997c21f8f03c57183a54d79  gcc/testsuite/gdc.test/fail_compilation/gag4269a.d
--- 97514,97530 ----
  beb8c8bfc3f0f76ee64efc3806c61af0  gcc/testsuite/gdc.test/fail_compilation/fix19059.d
  70b0c808cb74e8359925dbd5e0749db7  gcc/testsuite/gdc.test/fail_compilation/fix19246.d
  0274ff4a725fd57aeec4d55356e37e66  gcc/testsuite/gdc.test/fail_compilation/fix21585.d
! 4dcca90501b57cb7711612faa5af83ce  gcc/testsuite/gdc.test/fail_compilation/fix22108.d
  2ff267e1d3a9eba9b6a3dbdefbb8e0c4  gcc/testsuite/gdc.test/fail_compilation/fix23138.d
  93690a25ed6e19eb304f316a96d26179  gcc/testsuite/gdc.test/fail_compilation/fix350a.d
  d70aafa6b9062aa0a03de1dadb2afa0e  gcc/testsuite/gdc.test/fail_compilation/fix350b.d
! 408e30708578776dced324b01dfb99c7  gcc/testsuite/gdc.test/fail_compilation/fix5212.d
! 3d9696d19084dd28fde0659734fb01dd  gcc/testsuite/gdc.test/fail_compilation/fnconstraint.d
  632cc2a388729fd7b375cab66f081eec  gcc/testsuite/gdc.test/fail_compilation/fob1.d
  040176ff17f89531c80db27571dd516c  gcc/testsuite/gdc.test/fail_compilation/fob2.d
  3b6b4690c46663771a12fac16287d948  gcc/testsuite/gdc.test/fail_compilation/foreach.d
  0f17ffd1ebe50b304fd0960b12313bb2  gcc/testsuite/gdc.test/fail_compilation/foreach2.d
+ 79763e23ff82b9488a3fddb758c48cd9  gcc/testsuite/gdc.test/fail_compilation/foreach_index_overflow.d
  bccf894411d541cd221e4207649b4c46  gcc/testsuite/gdc.test/fail_compilation/format.d
  15e1ee41289e7d1ef8a596511f5652b2  gcc/testsuite/gdc.test/fail_compilation/funcpostattr.d
  b94cf7c5d997c21f8f03c57183a54d79  gcc/testsuite/gdc.test/fail_compilation/gag4269a.d
*************** de5626af47ff3ba9b6515b76feb685f5  gcc/te
*** 90876,90882 ****
  77e722036429f4fc42ec0ff061e860b0  gcc/testsuite/gdc.test/fail_compilation/goto2.d
  cd533a563214ceee8ca1768f9838d59d  gcc/testsuite/gdc.test/fail_compilation/goto3.d
  70816e7050681b8d76afd0b57b732505  gcc/testsuite/gdc.test/fail_compilation/goto_skip.d
! 30b8463089569fbdf66c1ad80c688c9d  gcc/testsuite/gdc.test/fail_compilation/hexstring.d
  99c89b8c0a428df9da4c26b6f3529275  gcc/testsuite/gdc.test/fail_compilation/ice10016.d
  025fc1e9a5dc79cd22aa2bf5b5dc7daf  gcc/testsuite/gdc.test/fail_compilation/ice10076.d
  b79d3bf3f306725e17ff9746eeef5b56  gcc/testsuite/gdc.test/fail_compilation/ice10212.d
--- 97538,97544 ----
  77e722036429f4fc42ec0ff061e860b0  gcc/testsuite/gdc.test/fail_compilation/goto2.d
  cd533a563214ceee8ca1768f9838d59d  gcc/testsuite/gdc.test/fail_compilation/goto3.d
  70816e7050681b8d76afd0b57b732505  gcc/testsuite/gdc.test/fail_compilation/goto_skip.d
! f51b59630bfe61458d67bac9ed91328b  gcc/testsuite/gdc.test/fail_compilation/hexstring.d
  99c89b8c0a428df9da4c26b6f3529275  gcc/testsuite/gdc.test/fail_compilation/ice10016.d
  025fc1e9a5dc79cd22aa2bf5b5dc7daf  gcc/testsuite/gdc.test/fail_compilation/ice10076.d
  b79d3bf3f306725e17ff9746eeef5b56  gcc/testsuite/gdc.test/fail_compilation/ice10212.d
*************** c56acd6f4c74ed39f0536444293d098c  gcc/te
*** 90890,90906 ****
  f8fcf0229e2b527566c925c84d446ef1  gcc/testsuite/gdc.test/fail_compilation/ice10599.d
  eaa8d3fd53fa02a7d63c35073fc43afd  gcc/testsuite/gdc.test/fail_compilation/ice10600.d
  9df2af66260b9fb0b61d20afe7c1185b  gcc/testsuite/gdc.test/fail_compilation/ice10616.d
! ec78599028c7b060201a8be7166419e0  gcc/testsuite/gdc.test/fail_compilation/ice10624.d
  e62ed8964d5af64c7355c7ae27059665  gcc/testsuite/gdc.test/fail_compilation/ice10651.d
  95d8dbaa997385cf863a69a39b3c7804  gcc/testsuite/gdc.test/fail_compilation/ice10713.d
  fc16fdde5984845cc69e52c7635d131e  gcc/testsuite/gdc.test/fail_compilation/ice10727a.d
  c1586096d1dcd6449a85c6c28ab95b55  gcc/testsuite/gdc.test/fail_compilation/ice10727b.d
! 3f3f12425efc014386cb779925ef7160  gcc/testsuite/gdc.test/fail_compilation/ice10922.d
! ec922bc76bfc1d05fcaa9505a735c59b  gcc/testsuite/gdc.test/fail_compilation/ice10938.d
  1461e66fd88ac9dc85648dc49a551864  gcc/testsuite/gdc.test/fail_compilation/ice10949.d
  34d3870c0caaf04c607e50cf1a928eec  gcc/testsuite/gdc.test/fail_compilation/ice11086.d
  648c23d8d77c00d2e35dccf65fe72418  gcc/testsuite/gdc.test/fail_compilation/ice11136.d
! 51064f5105da0930ea716a6625403b6e  gcc/testsuite/gdc.test/fail_compilation/ice11153.d
  1b37da2086604e2f8f8e86caa35f37ea  gcc/testsuite/gdc.test/fail_compilation/ice11404.d
  9a31146748fd7dba9ac030ce8305bc75  gcc/testsuite/gdc.test/fail_compilation/ice1144.d
  99dfb4f4adee9d67ecacda92dc77d8f9  gcc/testsuite/gdc.test/fail_compilation/ice11472.d
--- 97552,97568 ----
  f8fcf0229e2b527566c925c84d446ef1  gcc/testsuite/gdc.test/fail_compilation/ice10599.d
  eaa8d3fd53fa02a7d63c35073fc43afd  gcc/testsuite/gdc.test/fail_compilation/ice10600.d
  9df2af66260b9fb0b61d20afe7c1185b  gcc/testsuite/gdc.test/fail_compilation/ice10616.d
! 464b9bda85956947bba5531c639706ea  gcc/testsuite/gdc.test/fail_compilation/ice10624.d
  e62ed8964d5af64c7355c7ae27059665  gcc/testsuite/gdc.test/fail_compilation/ice10651.d
  95d8dbaa997385cf863a69a39b3c7804  gcc/testsuite/gdc.test/fail_compilation/ice10713.d
  fc16fdde5984845cc69e52c7635d131e  gcc/testsuite/gdc.test/fail_compilation/ice10727a.d
  c1586096d1dcd6449a85c6c28ab95b55  gcc/testsuite/gdc.test/fail_compilation/ice10727b.d
! 5778c4b0e7fc17beb61b2440fda8fe97  gcc/testsuite/gdc.test/fail_compilation/ice10922.d
! 863326d3b57a025fbb09684882d893e8  gcc/testsuite/gdc.test/fail_compilation/ice10938.d
  1461e66fd88ac9dc85648dc49a551864  gcc/testsuite/gdc.test/fail_compilation/ice10949.d
  34d3870c0caaf04c607e50cf1a928eec  gcc/testsuite/gdc.test/fail_compilation/ice11086.d
  648c23d8d77c00d2e35dccf65fe72418  gcc/testsuite/gdc.test/fail_compilation/ice11136.d
! 574435e31af0c1ea3ec4f88da6e7d7bd  gcc/testsuite/gdc.test/fail_compilation/ice11153.d
  1b37da2086604e2f8f8e86caa35f37ea  gcc/testsuite/gdc.test/fail_compilation/ice11404.d
  9a31146748fd7dba9ac030ce8305bc75  gcc/testsuite/gdc.test/fail_compilation/ice1144.d
  99dfb4f4adee9d67ecacda92dc77d8f9  gcc/testsuite/gdc.test/fail_compilation/ice11472.d
*************** d5c2e331a344c3676cf8c4d9d08d5ee3  gcc/te
*** 90912,90920 ****
  fc0fa22f207e733747daa85d25bf95c3  gcc/testsuite/gdc.test/fail_compilation/ice11626.d
  4da5ee3a1d67873962af14a594e3465e  gcc/testsuite/gdc.test/fail_compilation/ice11726.d
  c3c4f85c56281537ca3ee9c4cf8b6a91  gcc/testsuite/gdc.test/fail_compilation/ice11793.d
! 7d2b1a059c8c93ae667a4f3a48567aa6  gcc/testsuite/gdc.test/fail_compilation/ice11822.d
  7026d9811c4f8d0be77cedf33a89c5df  gcc/testsuite/gdc.test/fail_compilation/ice11849b.d
! 56c7c64caed7981c7f9103c734734e0a  gcc/testsuite/gdc.test/fail_compilation/ice11850.d
  153e61db46622a2e4f240d23d23b7266  gcc/testsuite/gdc.test/fail_compilation/ice11856_0.d
  d80c0d6e8e095465dde5bf92715cffb4  gcc/testsuite/gdc.test/fail_compilation/ice11856_1.d
  72832de41c6779e3f783a305e081fe30  gcc/testsuite/gdc.test/fail_compilation/ice11919.d
--- 97574,97582 ----
  fc0fa22f207e733747daa85d25bf95c3  gcc/testsuite/gdc.test/fail_compilation/ice11626.d
  4da5ee3a1d67873962af14a594e3465e  gcc/testsuite/gdc.test/fail_compilation/ice11726.d
  c3c4f85c56281537ca3ee9c4cf8b6a91  gcc/testsuite/gdc.test/fail_compilation/ice11793.d
! 99604e08ecfb507754e46e9d7513c037  gcc/testsuite/gdc.test/fail_compilation/ice11822.d
  7026d9811c4f8d0be77cedf33a89c5df  gcc/testsuite/gdc.test/fail_compilation/ice11849b.d
! ec979d7a2963b7d8db09d12d04bb1365  gcc/testsuite/gdc.test/fail_compilation/ice11850.d
  153e61db46622a2e4f240d23d23b7266  gcc/testsuite/gdc.test/fail_compilation/ice11856_0.d
  d80c0d6e8e095465dde5bf92715cffb4  gcc/testsuite/gdc.test/fail_compilation/ice11856_1.d
  72832de41c6779e3f783a305e081fe30  gcc/testsuite/gdc.test/fail_compilation/ice11919.d
*************** d80c0d6e8e095465dde5bf92715cffb4  gcc/te
*** 90922,90944 ****
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
  37cd844480cad08328bd663f58b02961  gcc/testsuite/gdc.test/fail_compilation/ice11944.d
! 3581ee928172d5e956124a025111f8e2  gcc/testsuite/gdc.test/fail_compilation/ice11963.d
! 9289bde4281c0a1667cd4cd20f1970a3  gcc/testsuite/gdc.test/fail_compilation/ice11965.d
  7a3bc872fc720b7fe6b26109acfc6ba1  gcc/testsuite/gdc.test/fail_compilation/ice11967.d
- 9c15df3bc58c0633f4f0a555748df34d  gcc/testsuite/gdc.test/fail_compilation/ice11968.d
  62edb8803f123fb16f5e40f647c48a0d  gcc/testsuite/gdc.test/fail_compilation/ice11969.d
  5c4e51a872cc510224e82db0a4d3bef5  gcc/testsuite/gdc.test/fail_compilation/ice11974.d
  b0589bffc90361bd681556366e195dfe  gcc/testsuite/gdc.test/fail_compilation/ice11982.d
  739ae8c1e53ba0243c4cf2e783760a68  gcc/testsuite/gdc.test/fail_compilation/ice12040.d
  fdadb7e02cce30df2e604ba0c426de70  gcc/testsuite/gdc.test/fail_compilation/ice12158.d
  977f7630f3a5789c9d3c4dea7202596e  gcc/testsuite/gdc.test/fail_compilation/ice12174.d
! 276ba3933846ea9c284d42485aac58ad  gcc/testsuite/gdc.test/fail_compilation/ice12235.d
  cd150c87ac92e61e8b5e7090ae58da2f  gcc/testsuite/gdc.test/fail_compilation/ice12350.d
  f4ef2195ff7d779b59f1b6dee9571fbb  gcc/testsuite/gdc.test/fail_compilation/ice12362.d
  3bc21becfe6e22cc50bb89839b877fc6  gcc/testsuite/gdc.test/fail_compilation/ice12397.d
  4b03fd4748c8e23f754a74fead8746ff  gcc/testsuite/gdc.test/fail_compilation/ice12501.d
  b715ba0a6a8a0570d030ad23cf911c9b  gcc/testsuite/gdc.test/fail_compilation/ice12534.d
! 9faa539294380abc5984c23496c207b6  gcc/testsuite/gdc.test/fail_compilation/ice12539.d
  c623afb003203d84289e748b2726e1bc  gcc/testsuite/gdc.test/fail_compilation/ice12574.d
  c5d83c46b1283b0dd2faab15724477e0  gcc/testsuite/gdc.test/fail_compilation/ice12581.d
  94cfd39ff841db3c06aa46f974ec9920  gcc/testsuite/gdc.test/fail_compilation/ice12673.d
--- 97584,97605 ----
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
  37cd844480cad08328bd663f58b02961  gcc/testsuite/gdc.test/fail_compilation/ice11944.d
! df6433548545eaa35fa3687f664e1f84  gcc/testsuite/gdc.test/fail_compilation/ice11963.d
! f28b3ecd27c60ca5786311c77ed8e62b  gcc/testsuite/gdc.test/fail_compilation/ice11965.d
  7a3bc872fc720b7fe6b26109acfc6ba1  gcc/testsuite/gdc.test/fail_compilation/ice11967.d
  62edb8803f123fb16f5e40f647c48a0d  gcc/testsuite/gdc.test/fail_compilation/ice11969.d
  5c4e51a872cc510224e82db0a4d3bef5  gcc/testsuite/gdc.test/fail_compilation/ice11974.d
  b0589bffc90361bd681556366e195dfe  gcc/testsuite/gdc.test/fail_compilation/ice11982.d
  739ae8c1e53ba0243c4cf2e783760a68  gcc/testsuite/gdc.test/fail_compilation/ice12040.d
  fdadb7e02cce30df2e604ba0c426de70  gcc/testsuite/gdc.test/fail_compilation/ice12158.d
  977f7630f3a5789c9d3c4dea7202596e  gcc/testsuite/gdc.test/fail_compilation/ice12174.d
! ff8fe4ac37e443d1c512955074abda94  gcc/testsuite/gdc.test/fail_compilation/ice12235.d
  cd150c87ac92e61e8b5e7090ae58da2f  gcc/testsuite/gdc.test/fail_compilation/ice12350.d
  f4ef2195ff7d779b59f1b6dee9571fbb  gcc/testsuite/gdc.test/fail_compilation/ice12362.d
  3bc21becfe6e22cc50bb89839b877fc6  gcc/testsuite/gdc.test/fail_compilation/ice12397.d
  4b03fd4748c8e23f754a74fead8746ff  gcc/testsuite/gdc.test/fail_compilation/ice12501.d
  b715ba0a6a8a0570d030ad23cf911c9b  gcc/testsuite/gdc.test/fail_compilation/ice12534.d
! ea9484f8a2068c618873b2e1cc1bb0fc  gcc/testsuite/gdc.test/fail_compilation/ice12539.d
  c623afb003203d84289e748b2726e1bc  gcc/testsuite/gdc.test/fail_compilation/ice12574.d
  c5d83c46b1283b0dd2faab15724477e0  gcc/testsuite/gdc.test/fail_compilation/ice12581.d
  94cfd39ff841db3c06aa46f974ec9920  gcc/testsuite/gdc.test/fail_compilation/ice12673.d
*************** a7ad99af969fb1ecb4ad94aca9468df7  gcc/te
*** 90948,90954 ****
  3338ec526a2d9e2ab88908856caff232  gcc/testsuite/gdc.test/fail_compilation/ice12838.d
  07a23b4eb634212adb32deab6de6806b  gcc/testsuite/gdc.test/fail_compilation/ice12841.d
  a5897d2681c15118416b4f821cc74062  gcc/testsuite/gdc.test/fail_compilation/ice12850.d
! 08077572667654b2d42a65e6b00570b4  gcc/testsuite/gdc.test/fail_compilation/ice12902.d
  9e9a8eac1a9f49f5c052a39cf734e59c  gcc/testsuite/gdc.test/fail_compilation/ice12907.d
  90856d9b40d500a6b3d38aaec0f8480c  gcc/testsuite/gdc.test/fail_compilation/ice13027.d
  3b5508a3a69ba76a27ed41a25566be79  gcc/testsuite/gdc.test/fail_compilation/ice13081.d
--- 97609,97615 ----
  3338ec526a2d9e2ab88908856caff232  gcc/testsuite/gdc.test/fail_compilation/ice12838.d
  07a23b4eb634212adb32deab6de6806b  gcc/testsuite/gdc.test/fail_compilation/ice12841.d
  a5897d2681c15118416b4f821cc74062  gcc/testsuite/gdc.test/fail_compilation/ice12850.d
! 9a3012e00cb27590e1926e688cb780f6  gcc/testsuite/gdc.test/fail_compilation/ice12902.d
  9e9a8eac1a9f49f5c052a39cf734e59c  gcc/testsuite/gdc.test/fail_compilation/ice12907.d
  90856d9b40d500a6b3d38aaec0f8480c  gcc/testsuite/gdc.test/fail_compilation/ice13027.d
  3b5508a3a69ba76a27ed41a25566be79  gcc/testsuite/gdc.test/fail_compilation/ice13081.d
*************** a3030493e844e6a48d6f641d6e35db75  gcc/te
*** 90981,90987 ****
  bea2ed593bafd20204dbbceeef5c98c7  gcc/testsuite/gdc.test/fail_compilation/ice14272.d
  5aa387a2b39d79912d3be0b53ca740c8  gcc/testsuite/gdc.test/fail_compilation/ice14424.d
  a2a949ac7909f7551aaf96e706213eed  gcc/testsuite/gdc.test/fail_compilation/ice14621.d
! 2bc303c1fcbcde60c2862ed14d39f7ce  gcc/testsuite/gdc.test/fail_compilation/ice14642.d
  767e6d9d9798cb7c34afdc00fb232661  gcc/testsuite/gdc.test/fail_compilation/ice14844.d
  ac1dd1960bc0e15ee56f6b9a621fcd7d  gcc/testsuite/gdc.test/fail_compilation/ice14907.d
  72005c00466b4b213bd5aa03eac9a253  gcc/testsuite/gdc.test/fail_compilation/ice14923.d
--- 97642,97648 ----
  bea2ed593bafd20204dbbceeef5c98c7  gcc/testsuite/gdc.test/fail_compilation/ice14272.d
  5aa387a2b39d79912d3be0b53ca740c8  gcc/testsuite/gdc.test/fail_compilation/ice14424.d
  a2a949ac7909f7551aaf96e706213eed  gcc/testsuite/gdc.test/fail_compilation/ice14621.d
! 8a61b11aa3ab5aa07f31f0f5a6731853  gcc/testsuite/gdc.test/fail_compilation/ice14642.d
  767e6d9d9798cb7c34afdc00fb232661  gcc/testsuite/gdc.test/fail_compilation/ice14844.d
  ac1dd1960bc0e15ee56f6b9a621fcd7d  gcc/testsuite/gdc.test/fail_compilation/ice14907.d
  72005c00466b4b213bd5aa03eac9a253  gcc/testsuite/gdc.test/fail_compilation/ice14923.d
*************** f22d97a4996c80fd574970a5f939405d  gcc/te
*** 90993,91001 ****
  c50197f99fd27eeafa4f92d593ff70f2  gcc/testsuite/gdc.test/fail_compilation/ice15332.d
  22020a4a026c7933e054de2defcae4a8  gcc/testsuite/gdc.test/fail_compilation/ice15441.d
  c4808cceecd3aededb2f1143169919bd  gcc/testsuite/gdc.test/fail_compilation/ice15688.d
! 5df2b52f25277c7c025698c08ecaf1ae  gcc/testsuite/gdc.test/fail_compilation/ice15788.d
  8a4b1bf6f02264c4208dec120d4ba224  gcc/testsuite/gdc.test/fail_compilation/ice15816.d
! 89f55d44d2e12d9048d81b7caec7a57b  gcc/testsuite/gdc.test/fail_compilation/ice15855.d
  d474237401c372d41491116b0c9b9bff  gcc/testsuite/gdc.test/fail_compilation/ice15922.d
  ae44bcfb44569651c4d9376e3191212a  gcc/testsuite/gdc.test/fail_compilation/ice16035.d
  0b4d444d80046b62ecd47f19968067a7  gcc/testsuite/gdc.test/fail_compilation/ice16657.d
--- 97654,97662 ----
  c50197f99fd27eeafa4f92d593ff70f2  gcc/testsuite/gdc.test/fail_compilation/ice15332.d
  22020a4a026c7933e054de2defcae4a8  gcc/testsuite/gdc.test/fail_compilation/ice15441.d
  c4808cceecd3aededb2f1143169919bd  gcc/testsuite/gdc.test/fail_compilation/ice15688.d
! 71c8b9185f6b2a7366095d9ce58952d8  gcc/testsuite/gdc.test/fail_compilation/ice15788.d
  8a4b1bf6f02264c4208dec120d4ba224  gcc/testsuite/gdc.test/fail_compilation/ice15816.d
! 4417e2673778c3657a2442e30f0fca5f  gcc/testsuite/gdc.test/fail_compilation/ice15855.d
  d474237401c372d41491116b0c9b9bff  gcc/testsuite/gdc.test/fail_compilation/ice15922.d
  ae44bcfb44569651c4d9376e3191212a  gcc/testsuite/gdc.test/fail_compilation/ice16035.d
  0b4d444d80046b62ecd47f19968067a7  gcc/testsuite/gdc.test/fail_compilation/ice16657.d
*************** a4b0b8ec30a45276b6adabbc1fdef687  gcc/te
*** 91010,91024 ****
  4a1f725170cfdbaecfe3396d4266c7f7  gcc/testsuite/gdc.test/fail_compilation/ice19762.d
  71aea9f843fbfe456c9a87e3a042ac0d  gcc/testsuite/gdc.test/fail_compilation/ice19887.d
  6bf925a0b5b868454c89afbac8b00888  gcc/testsuite/gdc.test/fail_compilation/ice19950.d
! aa186ea08e0631c13ea1c253fea2a6a2  gcc/testsuite/gdc.test/fail_compilation/ice20042.d
  aa500e0e7b0fa37a89bee6f9ba005205  gcc/testsuite/gdc.test/fail_compilation/ice20056.d
  2ddde1a9a9bf8255b405b821c0568581  gcc/testsuite/gdc.test/fail_compilation/ice20057.d
! 7a45e6dd98ac8cb51de6376150ef785f  gcc/testsuite/gdc.test/fail_compilation/ice20264.d
  ebda3059f679d68e2bdd1d9fe3e11b64  gcc/testsuite/gdc.test/fail_compilation/ice20545.d
  dae5b57cc66ee7160f7c95b7b14c4e59  gcc/testsuite/gdc.test/fail_compilation/ice20709.d
  1ee2df9e731e72df6ec1774356fb21e5  gcc/testsuite/gdc.test/fail_compilation/ice21060.d
  40cfc62ac063a12983ebf0b7179dc795  gcc/testsuite/gdc.test/fail_compilation/ice21095.d
! 1c889102f6cb03a5abd14a55477bd9e0  gcc/testsuite/gdc.test/fail_compilation/ice22377.d
  53849f1b76fa5b798b4ea5844160c304  gcc/testsuite/gdc.test/fail_compilation/ice22516.d
  1e48f4276f0b7c78ec2ef90c9a2a6409  gcc/testsuite/gdc.test/fail_compilation/ice23097.d
  ffd2b73db2375f964698b9462b32fd71  gcc/testsuite/gdc.test/fail_compilation/ice23564.d
--- 97671,97685 ----
  4a1f725170cfdbaecfe3396d4266c7f7  gcc/testsuite/gdc.test/fail_compilation/ice19762.d
  71aea9f843fbfe456c9a87e3a042ac0d  gcc/testsuite/gdc.test/fail_compilation/ice19887.d
  6bf925a0b5b868454c89afbac8b00888  gcc/testsuite/gdc.test/fail_compilation/ice19950.d
! d51cd9a54088af27c74ee0b0d975e1ec  gcc/testsuite/gdc.test/fail_compilation/ice20042.d
  aa500e0e7b0fa37a89bee6f9ba005205  gcc/testsuite/gdc.test/fail_compilation/ice20056.d
  2ddde1a9a9bf8255b405b821c0568581  gcc/testsuite/gdc.test/fail_compilation/ice20057.d
! d827a7d6476666f5353bab5882e65beb  gcc/testsuite/gdc.test/fail_compilation/ice20264.d
  ebda3059f679d68e2bdd1d9fe3e11b64  gcc/testsuite/gdc.test/fail_compilation/ice20545.d
  dae5b57cc66ee7160f7c95b7b14c4e59  gcc/testsuite/gdc.test/fail_compilation/ice20709.d
  1ee2df9e731e72df6ec1774356fb21e5  gcc/testsuite/gdc.test/fail_compilation/ice21060.d
  40cfc62ac063a12983ebf0b7179dc795  gcc/testsuite/gdc.test/fail_compilation/ice21095.d
! dd03e8f95c7b9f9ded099f36b1b80d2e  gcc/testsuite/gdc.test/fail_compilation/ice22377.d
  53849f1b76fa5b798b4ea5844160c304  gcc/testsuite/gdc.test/fail_compilation/ice22516.d
  1e48f4276f0b7c78ec2ef90c9a2a6409  gcc/testsuite/gdc.test/fail_compilation/ice23097.d
  ffd2b73db2375f964698b9462b32fd71  gcc/testsuite/gdc.test/fail_compilation/ice23564.d
*************** ebfa02fece677d43edcbb1d96bb283d6  gcc/te
*** 91035,91047 ****
  c7660e81ab366edd1f8ac5f08676a47e  gcc/testsuite/gdc.test/fail_compilation/ice7645.d
  8a8461284a6748b9cb2d36caae3e077b  gcc/testsuite/gdc.test/fail_compilation/ice7782.d
  e455b387fb24472fe5ad1d2ca849c836  gcc/testsuite/gdc.test/fail_compilation/ice8100.d
! b40addef2fa6f0dc9179e06cc7dfc4c6  gcc/testsuite/gdc.test/fail_compilation/ice8309.d
  f1d18a3fe42974d8d7e5230df6193002  gcc/testsuite/gdc.test/fail_compilation/ice8499.d
  853540ed15c640e1f07a123857bdd5e3  gcc/testsuite/gdc.test/fail_compilation/ice8604.d
  a72d7818b33e56375506b6e64ac406c5  gcc/testsuite/gdc.test/fail_compilation/ice8630.d
  1599cbd4b0e9add398e1d1051109e7c7  gcc/testsuite/gdc.test/fail_compilation/ice8711.d
  f5ec039f130aa503ee1ebd140f2ceb58  gcc/testsuite/gdc.test/fail_compilation/ice8742.d
! 131a7ca51aaa75f59aa01c47d064003a  gcc/testsuite/gdc.test/fail_compilation/ice8795.d
  8f5543f8be1f11d20a7f6886ffbfbf3e  gcc/testsuite/gdc.test/fail_compilation/ice8795b.d
  d4e8397015cc5d6f1e004c0dbd64cd2a  gcc/testsuite/gdc.test/fail_compilation/ice9013.d
  76a05de4307636d40489d0bc2f3cda66  gcc/testsuite/gdc.test/fail_compilation/ice9254a.d
--- 97696,97708 ----
  c7660e81ab366edd1f8ac5f08676a47e  gcc/testsuite/gdc.test/fail_compilation/ice7645.d
  8a8461284a6748b9cb2d36caae3e077b  gcc/testsuite/gdc.test/fail_compilation/ice7782.d
  e455b387fb24472fe5ad1d2ca849c836  gcc/testsuite/gdc.test/fail_compilation/ice8100.d
! 96b5e2265d3a2e5c857e10c953cbc87d  gcc/testsuite/gdc.test/fail_compilation/ice8309.d
  f1d18a3fe42974d8d7e5230df6193002  gcc/testsuite/gdc.test/fail_compilation/ice8499.d
  853540ed15c640e1f07a123857bdd5e3  gcc/testsuite/gdc.test/fail_compilation/ice8604.d
  a72d7818b33e56375506b6e64ac406c5  gcc/testsuite/gdc.test/fail_compilation/ice8630.d
  1599cbd4b0e9add398e1d1051109e7c7  gcc/testsuite/gdc.test/fail_compilation/ice8711.d
  f5ec039f130aa503ee1ebd140f2ceb58  gcc/testsuite/gdc.test/fail_compilation/ice8742.d
! a06acda90b21b73471f1b9fa3563fa57  gcc/testsuite/gdc.test/fail_compilation/ice8795.d
  8f5543f8be1f11d20a7f6886ffbfbf3e  gcc/testsuite/gdc.test/fail_compilation/ice8795b.d
  d4e8397015cc5d6f1e004c0dbd64cd2a  gcc/testsuite/gdc.test/fail_compilation/ice9013.d
  76a05de4307636d40489d0bc2f3cda66  gcc/testsuite/gdc.test/fail_compilation/ice9254a.d
*************** c0748d027ca80dcd3c1826ef09692f1e  gcc/te
*** 91052,91069 ****
  2b7f916901da05be763c61b948b713fc  gcc/testsuite/gdc.test/fail_compilation/ice9284.d
  5c1b7a696de91f0fac6d8de5c8e96d1d  gcc/testsuite/gdc.test/fail_compilation/ice9291.d
  8ee1a73207f2a559dc4eb4319ced5fd5  gcc/testsuite/gdc.test/fail_compilation/ice9338.d
! af5221c169864139df80561cf6490347  gcc/testsuite/gdc.test/fail_compilation/ice9406.d
  3a5c458176895616b71ceb8780fc4150  gcc/testsuite/gdc.test/fail_compilation/ice9439.d
  cdacde04da8f4e538ea5d87654ac8751  gcc/testsuite/gdc.test/fail_compilation/ice9494.d
  d96e53806eb2d646e4403f11241ee13a  gcc/testsuite/gdc.test/fail_compilation/ice9540.d
! e0d2808adb4bd406595bf16363d64560  gcc/testsuite/gdc.test/fail_compilation/ice9545.d
  a80826c048e9b023fb1e48c619781ee4  gcc/testsuite/gdc.test/fail_compilation/ice9759.d
  73cecf4fc16cfdf696ea6d651d1b445b  gcc/testsuite/gdc.test/fail_compilation/ice9806.d
! f76870122b85e99de4bdd8e6c2b3965e  gcc/testsuite/gdc.test/fail_compilation/ice9865.d
  a19d88e5ae49ee8f10c2b82891ef1f44  gcc/testsuite/gdc.test/fail_compilation/iconv_interface_array.d
  ea7fd4bb2c23435da6aeae0c60b402a1  gcc/testsuite/gdc.test/fail_compilation/immutable_ctor.d
! 6231a0ba3e664b8c25737f56d6da08ba  gcc/testsuite/gdc.test/fail_compilation/impconv.d
! 0f09c45f294269d31c1afbd83827baf9  gcc/testsuite/gdc.test/fail_compilation/imphint.d
  e7ee3e2640892a91d6abcd48d4ca140c  gcc/testsuite/gdc.test/fail_compilation/imports/a10169.d
  dabe84faadcc8b0bc8cedbae6177c041  gcc/testsuite/gdc.test/fail_compilation/imports/a10528.d
  632e337615ab21c36a0b5acd89d0645d  gcc/testsuite/gdc.test/fail_compilation/imports/a11850.d
--- 97713,97730 ----
  2b7f916901da05be763c61b948b713fc  gcc/testsuite/gdc.test/fail_compilation/ice9284.d
  5c1b7a696de91f0fac6d8de5c8e96d1d  gcc/testsuite/gdc.test/fail_compilation/ice9291.d
  8ee1a73207f2a559dc4eb4319ced5fd5  gcc/testsuite/gdc.test/fail_compilation/ice9338.d
! d9c3d3cfa31c4cd511e7d18c830e4f8e  gcc/testsuite/gdc.test/fail_compilation/ice9406.d
  3a5c458176895616b71ceb8780fc4150  gcc/testsuite/gdc.test/fail_compilation/ice9439.d
  cdacde04da8f4e538ea5d87654ac8751  gcc/testsuite/gdc.test/fail_compilation/ice9494.d
  d96e53806eb2d646e4403f11241ee13a  gcc/testsuite/gdc.test/fail_compilation/ice9540.d
! 1708bf2007c3833a0958f899a71af164  gcc/testsuite/gdc.test/fail_compilation/ice9545.d
  a80826c048e9b023fb1e48c619781ee4  gcc/testsuite/gdc.test/fail_compilation/ice9759.d
  73cecf4fc16cfdf696ea6d651d1b445b  gcc/testsuite/gdc.test/fail_compilation/ice9806.d
! e335c428ee043ec3fbbae355bd5d6226  gcc/testsuite/gdc.test/fail_compilation/ice9865.d
  a19d88e5ae49ee8f10c2b82891ef1f44  gcc/testsuite/gdc.test/fail_compilation/iconv_interface_array.d
  ea7fd4bb2c23435da6aeae0c60b402a1  gcc/testsuite/gdc.test/fail_compilation/immutable_ctor.d
! a1bedd011efd528a7816cbee61a1ee9c  gcc/testsuite/gdc.test/fail_compilation/impconv.d
! 93ac4b4e50b1d65b1c99fe6ed468577c  gcc/testsuite/gdc.test/fail_compilation/imphint.d
  e7ee3e2640892a91d6abcd48d4ca140c  gcc/testsuite/gdc.test/fail_compilation/imports/a10169.d
  dabe84faadcc8b0bc8cedbae6177c041  gcc/testsuite/gdc.test/fail_compilation/imports/a10528.d
  632e337615ab21c36a0b5acd89d0645d  gcc/testsuite/gdc.test/fail_compilation/imports/a11850.d
*************** c2464fc897607fe1b3770db1c0a7ebb9  gcc/te
*** 91081,91087 ****
  15b0f3d7100b5f9ade0a581eb62a7865  gcc/testsuite/gdc.test/fail_compilation/imports/a17625.d
  9471ab739aac743e2e2c8682caacfd9e  gcc/testsuite/gdc.test/fail_compilation/imports/a17630.d
  11ee73c0f72cbdda8b00101f8a07e256  gcc/testsuite/gdc.test/fail_compilation/imports/a18219.d
! 580ca56975ea77bd8450ff22de4f3a65  gcc/testsuite/gdc.test/fail_compilation/imports/a18243.d
  8a0978890d46c1b648d7393ba41085c7  gcc/testsuite/gdc.test/fail_compilation/imports/a313.d
  3f619613651ef4aacb1cdbeab1e76c72  gcc/testsuite/gdc.test/fail_compilation/imports/a314.d
  8993c410fd288f8d93b237c8c9dd0de5  gcc/testsuite/gdc.test/fail_compilation/imports/b13465.d
--- 97742,97748 ----
  15b0f3d7100b5f9ade0a581eb62a7865  gcc/testsuite/gdc.test/fail_compilation/imports/a17625.d
  9471ab739aac743e2e2c8682caacfd9e  gcc/testsuite/gdc.test/fail_compilation/imports/a17630.d
  11ee73c0f72cbdda8b00101f8a07e256  gcc/testsuite/gdc.test/fail_compilation/imports/a18219.d
! 67aa585a00877a30f3673de44c3be216  gcc/testsuite/gdc.test/fail_compilation/imports/a18243.d
  8a0978890d46c1b648d7393ba41085c7  gcc/testsuite/gdc.test/fail_compilation/imports/a313.d
  3f619613651ef4aacb1cdbeab1e76c72  gcc/testsuite/gdc.test/fail_compilation/imports/a314.d
  8993c410fd288f8d93b237c8c9dd0de5  gcc/testsuite/gdc.test/fail_compilation/imports/b13465.d
*************** c2464fc897607fe1b3770db1c0a7ebb9  gcc/te
*** 91089,91094 ****
--- 97750,97756 ----
  ddf0438cbac445061f8c61dde628a8aa  gcc/testsuite/gdc.test/fail_compilation/imports/b17630.d
  5665fc6d3a4cb5f022a145e207f81b41  gcc/testsuite/gdc.test/fail_compilation/imports/b17918a.d
  1772d9a41a5f34b75ff31f227d09f7a1  gcc/testsuite/gdc.test/fail_compilation/imports/b18219.d
+ 17bc254ab485aeb66287ad708b9ebf08  gcc/testsuite/gdc.test/fail_compilation/imports/b18243.d
  bb6c790d65f20feaf54847ccca3df1d0  gcc/testsuite/gdc.test/fail_compilation/imports/b19762.d
  98bd5409b958fb5f3045875600c9dd05  gcc/testsuite/gdc.test/fail_compilation/imports/b313.d
  47be20d7683e2989b9f383cc0acf5dd7  gcc/testsuite/gdc.test/fail_compilation/imports/b314.d
*************** b24a909c06c4775e002b081c0a96f9c7  gcc/te
*** 91236,91242 ****
  6fa3d032ace51698c299d55e536e12df  gcc/testsuite/gdc.test/fail_compilation/isreturnonstack.d
  2ee2ebefb1d14e9d43403c6c860359d8  gcc/testsuite/gdc.test/fail_compilation/issue11070.d
  fce681bb0ca8dad5487bd5cf765fcdf5  gcc/testsuite/gdc.test/fail_compilation/issue15103.d
! 8f86e741ed269d2719fa9d602321d762  gcc/testsuite/gdc.test/fail_compilation/issue16020.d
  07bc74400179127a583ed61d954e6d7e  gcc/testsuite/gdc.test/fail_compilation/issue20422.d
  c8588a8b31371e3131bc1cc2a02c19cd  gcc/testsuite/gdc.test/fail_compilation/issue20627.d
  d2875d10c258a543f59d109b93dab083  gcc/testsuite/gdc.test/fail_compilation/issue20704.d
--- 97898,97904 ----
  6fa3d032ace51698c299d55e536e12df  gcc/testsuite/gdc.test/fail_compilation/isreturnonstack.d
  2ee2ebefb1d14e9d43403c6c860359d8  gcc/testsuite/gdc.test/fail_compilation/issue11070.d
  fce681bb0ca8dad5487bd5cf765fcdf5  gcc/testsuite/gdc.test/fail_compilation/issue15103.d
! 114d3aa3b544565c98fc08f390fbd5ad  gcc/testsuite/gdc.test/fail_compilation/issue16020.d
  07bc74400179127a583ed61d954e6d7e  gcc/testsuite/gdc.test/fail_compilation/issue20422.d
  c8588a8b31371e3131bc1cc2a02c19cd  gcc/testsuite/gdc.test/fail_compilation/issue20627.d
  d2875d10c258a543f59d109b93dab083  gcc/testsuite/gdc.test/fail_compilation/issue20704.d
*************** d49468106948994ead5dcae315f26258  gcc/te
*** 91248,91258 ****
  05250fe726a80770dd7390818c7b0e6d  gcc/testsuite/gdc.test/fail_compilation/issue22820.d
  7361ba00652a7bb222f77b6d44a96921  gcc/testsuite/gdc.test/fail_compilation/issue22826.d
  ef6df1f550d6df9e01d4ed57c279827c  gcc/testsuite/gdc.test/fail_compilation/issue23947.d
  97dee56f1a0001f117797fa1402eea1c  gcc/testsuite/gdc.test/fail_compilation/issue3396.d
  04d180b470676e31d8579754e2e55b77  gcc/testsuite/gdc.test/fail_compilation/issue3827.d
  77a67d4481f814edc69c8149321382ab  gcc/testsuite/gdc.test/fail_compilation/lexer1.d
  a75e40834d3b5aa675ddd5a60e5cd8dc  gcc/testsuite/gdc.test/fail_compilation/lexer2.d
! 4983c84ec37388c5dc781b0f173ac8c5  gcc/testsuite/gdc.test/fail_compilation/lexer23465.d
  1b0ba9e5ad50d6b299ef210908b26e3e  gcc/testsuite/gdc.test/fail_compilation/lexer3.d
  557d677b95a4a0b4e3e7b77d346fa2ff  gcc/testsuite/gdc.test/fail_compilation/lexer4.d
  33f5d6db48c660b840a5a69a56079500  gcc/testsuite/gdc.test/fail_compilation/lookup.d
--- 97910,97921 ----
  05250fe726a80770dd7390818c7b0e6d  gcc/testsuite/gdc.test/fail_compilation/issue22820.d
  7361ba00652a7bb222f77b6d44a96921  gcc/testsuite/gdc.test/fail_compilation/issue22826.d
  ef6df1f550d6df9e01d4ed57c279827c  gcc/testsuite/gdc.test/fail_compilation/issue23947.d
+ 25a40e5b3dc28cb95e70d00997ea946f  gcc/testsuite/gdc.test/fail_compilation/issue24534.d
  97dee56f1a0001f117797fa1402eea1c  gcc/testsuite/gdc.test/fail_compilation/issue3396.d
  04d180b470676e31d8579754e2e55b77  gcc/testsuite/gdc.test/fail_compilation/issue3827.d
  77a67d4481f814edc69c8149321382ab  gcc/testsuite/gdc.test/fail_compilation/lexer1.d
  a75e40834d3b5aa675ddd5a60e5cd8dc  gcc/testsuite/gdc.test/fail_compilation/lexer2.d
! 55cef34e2e7728b6687fabe1c1a151c6  gcc/testsuite/gdc.test/fail_compilation/lexer23465.d
  1b0ba9e5ad50d6b299ef210908b26e3e  gcc/testsuite/gdc.test/fail_compilation/lexer3.d
  557d677b95a4a0b4e3e7b77d346fa2ff  gcc/testsuite/gdc.test/fail_compilation/lexer4.d
  33f5d6db48c660b840a5a69a56079500  gcc/testsuite/gdc.test/fail_compilation/lookup.d
*************** a75e40834d3b5aa675ddd5a60e5cd8dc  gcc/te
*** 91260,91267 ****
  338c9d9e082bb433d33a8ce50efb3e33  gcc/testsuite/gdc.test/fail_compilation/mangle1.d
  be5e933601ad80e3e77222d915fcb11b  gcc/testsuite/gdc.test/fail_compilation/mangle2.d
  aa7959bf4f9e4608cf4df558e66bdc0c  gcc/testsuite/gdc.test/fail_compilation/match_func_ptr.d
! 5737030620413877d8b752cc8b00b537  gcc/testsuite/gdc.test/fail_compilation/misc1.d
! ccccd32ed2e8accd9fcc4a2ef7f13362  gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
  d64010f18f6634e656c6c13ff79b90bb  gcc/testsuite/gdc.test/fail_compilation/missingbrace.d
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
--- 97923,97930 ----
  338c9d9e082bb433d33a8ce50efb3e33  gcc/testsuite/gdc.test/fail_compilation/mangle1.d
  be5e933601ad80e3e77222d915fcb11b  gcc/testsuite/gdc.test/fail_compilation/mangle2.d
  aa7959bf4f9e4608cf4df558e66bdc0c  gcc/testsuite/gdc.test/fail_compilation/match_func_ptr.d
! a052c68cea0f592ba39a328c0c0d4890  gcc/testsuite/gdc.test/fail_compilation/misc1.d
! 66a8707248a59cc887156f205a1377c7  gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
  d64010f18f6634e656c6c13ff79b90bb  gcc/testsuite/gdc.test/fail_compilation/missingbrace.d
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
*************** e989bc20ccc902b7b13e1fb834ef6d37  gcc/te
*** 91269,91275 ****
  d50551164659b796b1cc9810a3144d7b  gcc/testsuite/gdc.test/fail_compilation/mixinprop.d
  87fa674a666ec47bd44c4cf89c1dbe9a  gcc/testsuite/gdc.test/fail_compilation/mixintype2.d
  fe4d6368a23906f4ace80748ad73d9aa  gcc/testsuite/gdc.test/fail_compilation/moduleundefuda.d
! 4d0c974f54ebb51dd423d89afef1d40d  gcc/testsuite/gdc.test/fail_compilation/must_use.d
  73a13c42127f4d58e29376b49e9d9699  gcc/testsuite/gdc.test/fail_compilation/must_use_comma.d
  7788c08185016f3a9f21ac584c8a6462  gcc/testsuite/gdc.test/fail_compilation/must_use_opunary.d
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
--- 97932,97938 ----
  d50551164659b796b1cc9810a3144d7b  gcc/testsuite/gdc.test/fail_compilation/mixinprop.d
  87fa674a666ec47bd44c4cf89c1dbe9a  gcc/testsuite/gdc.test/fail_compilation/mixintype2.d
  fe4d6368a23906f4ace80748ad73d9aa  gcc/testsuite/gdc.test/fail_compilation/moduleundefuda.d
! cd5b0a21b5a36cf880301591ac049c46  gcc/testsuite/gdc.test/fail_compilation/must_use.d
  73a13c42127f4d58e29376b49e9d9699  gcc/testsuite/gdc.test/fail_compilation/must_use_comma.d
  7788c08185016f3a9f21ac584c8a6462  gcc/testsuite/gdc.test/fail_compilation/must_use_opunary.d
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
*************** fe4d6368a23906f4ace80748ad73d9aa  gcc/te
*** 91277,91284 ****
  58c5aee0e2a980b40b64d7c83f667cb6  gcc/testsuite/gdc.test/fail_compilation/must_use_union.d
  bf04ef87b8027acb8f50581fb4915490  gcc/testsuite/gdc.test/fail_compilation/named_arguments_error.d
  c1997d7252348d935e028a0dc482eb28  gcc/testsuite/gdc.test/fail_compilation/named_arguments_ifti_error.d
! 43f2f6f1138b146d2f2aaa419c6bdf82  gcc/testsuite/gdc.test/fail_compilation/named_arguments_overload.d
  baaed2045919c182fcb97270c6e46028  gcc/testsuite/gdc.test/fail_compilation/named_arguments_parse.d
  b47a909efceefac8899d962744b5b318  gcc/testsuite/gdc.test/fail_compilation/nestedtempl0.d
  00d364e25fcaf6b250d8958d34c226a5  gcc/testsuite/gdc.test/fail_compilation/nestedtempl1.d
  009ce5939a45dfaebc026fc5256f08fc  gcc/testsuite/gdc.test/fail_compilation/nestedtempl2.d
--- 97940,97948 ----
  58c5aee0e2a980b40b64d7c83f667cb6  gcc/testsuite/gdc.test/fail_compilation/must_use_union.d
  bf04ef87b8027acb8f50581fb4915490  gcc/testsuite/gdc.test/fail_compilation/named_arguments_error.d
  c1997d7252348d935e028a0dc482eb28  gcc/testsuite/gdc.test/fail_compilation/named_arguments_ifti_error.d
! c838c987c987f34e4e0dc7100239fe88  gcc/testsuite/gdc.test/fail_compilation/named_arguments_overload.d
  baaed2045919c182fcb97270c6e46028  gcc/testsuite/gdc.test/fail_compilation/named_arguments_parse.d
+ d58f1e1daba0514ea669e052022dd293  gcc/testsuite/gdc.test/fail_compilation/nested_template_constraint.d
  b47a909efceefac8899d962744b5b318  gcc/testsuite/gdc.test/fail_compilation/nestedtempl0.d
  00d364e25fcaf6b250d8958d34c226a5  gcc/testsuite/gdc.test/fail_compilation/nestedtempl1.d
  009ce5939a45dfaebc026fc5256f08fc  gcc/testsuite/gdc.test/fail_compilation/nestedtempl2.d
*************** e19e18fdbf14770d50e71cc08c1f3e79  gcc/te
*** 91286,91319 ****
  7701dad5e0cc1f28e722505769536707  gcc/testsuite/gdc.test/fail_compilation/newaa.d
  ab6d443dc3b56b7483fbf6f157f18a25  gcc/testsuite/gdc.test/fail_compilation/no_Throwable.d
  03d3eb72cf3b9da1f6f78b59f1503820  gcc/testsuite/gdc.test/fail_compilation/no_TypeInfo.d
! 574b4fb906e7841e0b58f09b1448996b  gcc/testsuite/gdc.test/fail_compilation/nogc1.d
! 67a29f7c0b0b41a44304a83df22fe69a  gcc/testsuite/gdc.test/fail_compilation/nogc2.d
! 55b23862afd146ea24bc35b442a23023  gcc/testsuite/gdc.test/fail_compilation/nogc3.d
  c8b4217102e777fe4800029d365d5c18  gcc/testsuite/gdc.test/fail_compilation/noreturn.d
! 7f53fbd7a69df04b73d7c079cf120c6b  gcc/testsuite/gdc.test/fail_compilation/noreturn2.d
  238e54042ec784d3fd84e6fffecd6916  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr.d
  e6f22eab255ad6a3bc7b96076d62384d  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr2.d
  5f0e133c486a33c48c252858bcdd4604  gcc/testsuite/gdc.test/fail_compilation/notype.d
  066d50ff15946cfb273bb4728251cc04  gcc/testsuite/gdc.test/fail_compilation/objc_class2.d
  0bef92b0916af83c7510416cb0b3ecfe  gcc/testsuite/gdc.test/fail_compilation/objc_class3.d
  54c3e40c2f577452e4ffde1fb0db393b  gcc/testsuite/gdc.test/fail_compilation/objc_non_objc_base.d
! f29ce228ce319e1b2b02ce70cc28cb94  gcc/testsuite/gdc.test/fail_compilation/opapplyscope.d
! aea4808a62e9273ad201fde0f78939c0  gcc/testsuite/gdc.test/fail_compilation/operator_undefined.d
  ac62ca9815f00728734800e1420ea208  gcc/testsuite/gdc.test/fail_compilation/parse12924.d
  3451ecc3952a6be2ac17603d2886c549  gcc/testsuite/gdc.test/fail_compilation/parse12967a.d
  1397d7f706fba402260d692924cfe9e2  gcc/testsuite/gdc.test/fail_compilation/parse12967b.d
  933423563d0328de33f8115d9eaaf3fb  gcc/testsuite/gdc.test/fail_compilation/parse13361.d
! 50aeae3453219bbff0252ad5b2d61c2d  gcc/testsuite/gdc.test/fail_compilation/parse14285.d
  7344b3e3e6a615822b07b1de18d81899  gcc/testsuite/gdc.test/fail_compilation/parse14745.d
  33ce7ca32a3112a12d1a515a5f9b1958  gcc/testsuite/gdc.test/fail_compilation/parse19277.d
  b236a4b2b3a45112d3bf65c16880b0d1  gcc/testsuite/gdc.test/fail_compilation/parseStc.d
! b776e292ca10ada1f22be845f91295f1  gcc/testsuite/gdc.test/fail_compilation/parseStc2.d
  a24e5adcec9c683ee389ab4bc66da146  gcc/testsuite/gdc.test/fail_compilation/parseStc3.d
  4585f217a5b7f8b8a09b84af0dbe2331  gcc/testsuite/gdc.test/fail_compilation/parseStc4.d
  d5b5218a5830b17dea35dac53b8ca8eb  gcc/testsuite/gdc.test/fail_compilation/parseStc5.d
  43ab37c4d5efd97e06d285a38b720f23  gcc/testsuite/gdc.test/fail_compilation/pragmainline.d
  09d77fef387a40a2dc7be60ba6549cd4  gcc/testsuite/gdc.test/fail_compilation/pragmas.d
! b859674d06f2f4abedc05ac5d5cf7824  gcc/testsuite/gdc.test/fail_compilation/previewin.d
  e9591afbb23d08ca6fcc7528a818e61e  gcc/testsuite/gdc.test/fail_compilation/previewin2.d
  93e29273b61b90ecaf1f9b852538f7ca  gcc/testsuite/gdc.test/fail_compilation/protattr1.d
  39580b47e16e03fa696b3ed195381f0f  gcc/testsuite/gdc.test/fail_compilation/protattr2.d
--- 97950,97987 ----
  7701dad5e0cc1f28e722505769536707  gcc/testsuite/gdc.test/fail_compilation/newaa.d
  ab6d443dc3b56b7483fbf6f157f18a25  gcc/testsuite/gdc.test/fail_compilation/no_Throwable.d
  03d3eb72cf3b9da1f6f78b59f1503820  gcc/testsuite/gdc.test/fail_compilation/no_TypeInfo.d
! 0d38d8ab717822d9fe4054beda16fe7b  gcc/testsuite/gdc.test/fail_compilation/nogc1.d
! 1d36b5c1768feafc83d39e6dc665f4a3  gcc/testsuite/gdc.test/fail_compilation/nogc2.d
! bd8c6e8d6f51b7d041612f44df525eba  gcc/testsuite/gdc.test/fail_compilation/nogc3.d
  c8b4217102e777fe4800029d365d5c18  gcc/testsuite/gdc.test/fail_compilation/noreturn.d
! 6badcf6978408a9dc177d8c80f445eef  gcc/testsuite/gdc.test/fail_compilation/noreturn2.d
  238e54042ec784d3fd84e6fffecd6916  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr.d
  e6f22eab255ad6a3bc7b96076d62384d  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr2.d
  5f0e133c486a33c48c252858bcdd4604  gcc/testsuite/gdc.test/fail_compilation/notype.d
+ 56227a144610c1d56574bd7ebe1478b8  gcc/testsuite/gdc.test/fail_compilation/ob1.d
  066d50ff15946cfb273bb4728251cc04  gcc/testsuite/gdc.test/fail_compilation/objc_class2.d
  0bef92b0916af83c7510416cb0b3ecfe  gcc/testsuite/gdc.test/fail_compilation/objc_class3.d
  54c3e40c2f577452e4ffde1fb0db393b  gcc/testsuite/gdc.test/fail_compilation/objc_non_objc_base.d
! 0dba5247b8f429bf27b0311f558c227b  gcc/testsuite/gdc.test/fail_compilation/obsolete_body.d
! 6c4deb58342e6a1a2b351f73fa8c4f97  gcc/testsuite/gdc.test/fail_compilation/onemember_overloads.d
! e8a7092a20a82ff75635096eb2e03e45  gcc/testsuite/gdc.test/fail_compilation/opapplyscope.d
! dc1972e145637c533a9fbfda955ca842  gcc/testsuite/gdc.test/fail_compilation/operator_undefined.d
  ac62ca9815f00728734800e1420ea208  gcc/testsuite/gdc.test/fail_compilation/parse12924.d
  3451ecc3952a6be2ac17603d2886c549  gcc/testsuite/gdc.test/fail_compilation/parse12967a.d
  1397d7f706fba402260d692924cfe9e2  gcc/testsuite/gdc.test/fail_compilation/parse12967b.d
  933423563d0328de33f8115d9eaaf3fb  gcc/testsuite/gdc.test/fail_compilation/parse13361.d
! c98207158239d081bd3244b70f723fed  gcc/testsuite/gdc.test/fail_compilation/parse14285.d
  7344b3e3e6a615822b07b1de18d81899  gcc/testsuite/gdc.test/fail_compilation/parse14745.d
  33ce7ca32a3112a12d1a515a5f9b1958  gcc/testsuite/gdc.test/fail_compilation/parse19277.d
  b236a4b2b3a45112d3bf65c16880b0d1  gcc/testsuite/gdc.test/fail_compilation/parseStc.d
! ee0f98e38d945599e338a3fc8d2939ed  gcc/testsuite/gdc.test/fail_compilation/parseStc2.d
  a24e5adcec9c683ee389ab4bc66da146  gcc/testsuite/gdc.test/fail_compilation/parseStc3.d
  4585f217a5b7f8b8a09b84af0dbe2331  gcc/testsuite/gdc.test/fail_compilation/parseStc4.d
  d5b5218a5830b17dea35dac53b8ca8eb  gcc/testsuite/gdc.test/fail_compilation/parseStc5.d
+ 733b6a81eb3284b65aec3404ccf70c49  gcc/testsuite/gdc.test/fail_compilation/placenew.d
  43ab37c4d5efd97e06d285a38b720f23  gcc/testsuite/gdc.test/fail_compilation/pragmainline.d
  09d77fef387a40a2dc7be60ba6549cd4  gcc/testsuite/gdc.test/fail_compilation/pragmas.d
! 7489e6908bbee6fd810934fc7b240c17  gcc/testsuite/gdc.test/fail_compilation/previewin.d
  e9591afbb23d08ca6fcc7528a818e61e  gcc/testsuite/gdc.test/fail_compilation/previewin2.d
  93e29273b61b90ecaf1f9b852538f7ca  gcc/testsuite/gdc.test/fail_compilation/protattr1.d
  39580b47e16e03fa696b3ed195381f0f  gcc/testsuite/gdc.test/fail_compilation/protattr2.d
*************** e9591afbb23d08ca6fcc7528a818e61e  gcc/te
*** 91321,91347 ****
  f94f5f9027598b10a0c7aa36cd12574d  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test1.d
  0bf06d541fe7a39c966d076eb92cda03  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test2.d
  9d01f4975a479fc715251f6173ce5c4c  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test3.d
! 1212d725a2750e94bc3024fd678a8831  gcc/testsuite/gdc.test/fail_compilation/pull12941.d
  3fd870b41855f158c759eee9a2348829  gcc/testsuite/gdc.test/fail_compilation/reg6769.d
! 736521678ca678e183c926e923eafcfd  gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
! e108eb65aeeaa94bc8a300f2a08aaff4  gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
! 79d64fe25139665f2fbbbde225eef007  gcc/testsuite/gdc.test/fail_compilation/retref2.d
! e99f2b1a88a86e12263cfc8a7f23d349  gcc/testsuite/gdc.test/fail_compilation/retscope.d
! fe5c8bb041755eb1e39853fde78f033b  gcc/testsuite/gdc.test/fail_compilation/retscope2.d
! a2f171ad836e22fad2ea633dbe12b634  gcc/testsuite/gdc.test/fail_compilation/retscope3.d
  c6c07f896e1602e3555f770e5cb6de5e  gcc/testsuite/gdc.test/fail_compilation/retscope4.d
! e024cf081dccb576f3cc704719ad8a79  gcc/testsuite/gdc.test/fail_compilation/retscope5.d
! 5a42e61ddb93d494ba678583d9ed8681  gcc/testsuite/gdc.test/fail_compilation/retscope6.d
! 4e079009624a3abec9e2109e4a5fd577  gcc/testsuite/gdc.test/fail_compilation/safe_gshared.d
! c9b733d0c8306e7d3e07eddfcfc9d5bd  gcc/testsuite/gdc.test/fail_compilation/safe_pointer_index.d
  b1afbd31bbf1526499dfe85a03975c14  gcc/testsuite/gdc.test/fail_compilation/scope_class.d
! 1b3bcc3cf24550c5c5e0087208c3a35f  gcc/testsuite/gdc.test/fail_compilation/shared.d
  2fb8cf150b59639669fb11f7cf10f8d6  gcc/testsuite/gdc.test/fail_compilation/skip.d
  36bf4eec7f81985125965343eaf2ecfb  gcc/testsuite/gdc.test/fail_compilation/spell23908.d
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
  45b7a1ba17937ba4218ee6ce5c82ca8e  gcc/testsuite/gdc.test/fail_compilation/standalone_modctor.d
  ee8f9109e4f16647564a5f23966887c9  gcc/testsuite/gdc.test/fail_compilation/static_import.d
  f1c05d19b803c02f093c899d5610d06f  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
  a5194f219d03f8a765cded6944640601  gcc/testsuite/gdc.test/fail_compilation/staticassertargsfail.d
  1fcc8aaa8f4d74a4f1abe57e47cfd353  gcc/testsuite/gdc.test/fail_compilation/staticforeach1.d
--- 97989,98018 ----
  f94f5f9027598b10a0c7aa36cd12574d  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test1.d
  0bf06d541fe7a39c966d076eb92cda03  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test2.d
  9d01f4975a479fc715251f6173ce5c4c  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test3.d
! 5245f6f880aefcc6db083bf1ea5e70e9  gcc/testsuite/gdc.test/fail_compilation/pull12941.d
  3fd870b41855f158c759eee9a2348829  gcc/testsuite/gdc.test/fail_compilation/reg6769.d
! 7b56679ad0770046341daf04b879dc88  gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
! d19555913a2a7f695f98431f21e7a6d4  gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
! d5062e115ef69ab22915d0a248e0cb6d  gcc/testsuite/gdc.test/fail_compilation/retref2.d
! d5ed426f484b4fbc678be7d4de91a7ef  gcc/testsuite/gdc.test/fail_compilation/retscope.d
! afd10d7df854420252c76f35aec47cf4  gcc/testsuite/gdc.test/fail_compilation/retscope2.d
! 81986d4219df799861da3145de55e83b  gcc/testsuite/gdc.test/fail_compilation/retscope3.d
  c6c07f896e1602e3555f770e5cb6de5e  gcc/testsuite/gdc.test/fail_compilation/retscope4.d
! e55a97e747a3f09f3c5eb297c5565a5d  gcc/testsuite/gdc.test/fail_compilation/retscope5.d
! 7cfac0c66c1c0d8243c0a9f4d5efff94  gcc/testsuite/gdc.test/fail_compilation/retscope6.d
! 254594a2581eb8a14c47d11156b50356  gcc/testsuite/gdc.test/fail_compilation/safe_gshared.d
! 09cb1c43f1595719bb2f2f59047c6969  gcc/testsuite/gdc.test/fail_compilation/safe_pointer_index.d
! 2b37237676e0fa2ce594762f8609768c  gcc/testsuite/gdc.test/fail_compilation/safer.d
  b1afbd31bbf1526499dfe85a03975c14  gcc/testsuite/gdc.test/fail_compilation/scope_class.d
! 75dbc7ca532e4d8a4929f719cf4fbe14  gcc/testsuite/gdc.test/fail_compilation/shared.d
! 2527ab167212803bc195b044a6399540  gcc/testsuite/gdc.test/fail_compilation/short_fn.d
  2fb8cf150b59639669fb11f7cf10f8d6  gcc/testsuite/gdc.test/fail_compilation/skip.d
  36bf4eec7f81985125965343eaf2ecfb  gcc/testsuite/gdc.test/fail_compilation/spell23908.d
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
  45b7a1ba17937ba4218ee6ce5c82ca8e  gcc/testsuite/gdc.test/fail_compilation/standalone_modctor.d
  ee8f9109e4f16647564a5f23966887c9  gcc/testsuite/gdc.test/fail_compilation/static_import.d
  f1c05d19b803c02f093c899d5610d06f  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
+ a1372564d7940c2189994c262c4011f9  gcc/testsuite/gdc.test/fail_compilation/staticassert_sema1.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
  a5194f219d03f8a765cded6944640601  gcc/testsuite/gdc.test/fail_compilation/staticassertargsfail.d
  1fcc8aaa8f4d74a4f1abe57e47cfd353  gcc/testsuite/gdc.test/fail_compilation/staticforeach1.d
*************** bb6598a0d52b49923b14222dee510692  gcc/te
*** 91350,91395 ****
  5fc86afe292de65847c2d5b768bc361e  gcc/testsuite/gdc.test/fail_compilation/staticforeach4.d
  1bd98512e42c6ce1fba6bd2df688ecd9  gcc/testsuite/gdc.test/fail_compilation/switch_skip.d
  67a38caf5636ad2575e7fc1fd49e5563  gcc/testsuite/gdc.test/fail_compilation/switches.d
! bd48983ecc5f0fc80efc93c85fd2678b  gcc/testsuite/gdc.test/fail_compilation/systemvariables.d
! 6e108eaeaf832143f1647f5f2ebb33b3  gcc/testsuite/gdc.test/fail_compilation/systemvariables_deprecation.d
! 665e393a379cb60efcf1c4fcbe37c287  gcc/testsuite/gdc.test/fail_compilation/systemvariables_struct.d
! ce0a4f34849b64ff6cb0dd2b094de168  gcc/testsuite/gdc.test/fail_compilation/systemvariables_void_init.d
! b7a63757f57fa7204f4b4be7f1ba3ee1  gcc/testsuite/gdc.test/fail_compilation/template_decl.d
  1db4effe1e14a05bdf23041766b88914  gcc/testsuite/gdc.test/fail_compilation/templateoverload.d
  f0088c8e1a917d9db5a48111639380ae  gcc/testsuite/gdc.test/fail_compilation/templatethis.d
! 82097814cc50105a55a7ef8ecc8b9a03  gcc/testsuite/gdc.test/fail_compilation/test1.d
  63f139f45a6e15e188c3b11fc538355b  gcc/testsuite/gdc.test/fail_compilation/test10.d
  305adce56f0df00c5b7b911cd52ea3fb  gcc/testsuite/gdc.test/fail_compilation/test1021.d
! 29c1ebc101d5206922382dcc0a32676e  gcc/testsuite/gdc.test/fail_compilation/test11006.d
  6fea622afbaede137af90ea3be9d92da  gcc/testsuite/gdc.test/fail_compilation/test11047.d
! 0c916e3262d1ea80afb9087dfb7836e9  gcc/testsuite/gdc.test/fail_compilation/test11176.d
  83c2ed4d71d7f8bf4d1c85361d5d3c0c  gcc/testsuite/gdc.test/fail_compilation/test12228.d
  85d57b27608d5d1c328cc850a806d070  gcc/testsuite/gdc.test/fail_compilation/test12385.d
  01470bdf2abf34f431e989d0f125bcad  gcc/testsuite/gdc.test/fail_compilation/test12558.d
! d3a376056eec3d995dfadab9d07349eb  gcc/testsuite/gdc.test/fail_compilation/test12822.d
  65bf6828b6933ad9338fde788fa23308  gcc/testsuite/gdc.test/fail_compilation/test13152.d
! 40307b9fc1433323a2a1a696f7e63dbf  gcc/testsuite/gdc.test/fail_compilation/test13536.d
! 6e5df77b9bbcf8f3f6aba086066048b2  gcc/testsuite/gdc.test/fail_compilation/test13537.d
  eb86a3dc5c2a6e231593c5b6568bbc49  gcc/testsuite/gdc.test/fail_compilation/test13667.d
! e303808b44a49a4ba15b549be2fce8a2  gcc/testsuite/gdc.test/fail_compilation/test13786.d
  dc5f6694b899c5b4017bfc9931164527  gcc/testsuite/gdc.test/fail_compilation/test13867.d
  2be07367077526f2bb6da860b9b81128  gcc/testsuite/gdc.test/fail_compilation/test14064.d
! efebff9e81094a893fb2d2aeb23f9a7e  gcc/testsuite/gdc.test/fail_compilation/test14238.d
  3fd9f21ffc0d2cd25d288f630210d963  gcc/testsuite/gdc.test/fail_compilation/test143.d
! 2dc8a10874a8f1d07b904f464c207731  gcc/testsuite/gdc.test/fail_compilation/test14496.d
! 94cf39bd34fa549c98adb3304ccf81cd  gcc/testsuite/gdc.test/fail_compilation/test14538.d
  0811c0a4dbd9bffec8230d6e2a5a6c01  gcc/testsuite/gdc.test/fail_compilation/test15177.d
! 214690040cc2fb199c03bae9783ef099  gcc/testsuite/gdc.test/fail_compilation/test15191.d
! 6a905045175c0f489c5b3aeb041eabb6  gcc/testsuite/gdc.test/fail_compilation/test15306.d
  869648d421cf5208b57506e313ad99f3  gcc/testsuite/gdc.test/fail_compilation/test15368.d
  abba9160e3348512b9cfbe906f164025  gcc/testsuite/gdc.test/fail_compilation/test15373.d
! bac5787c7029498c07f5076c5807bf2d  gcc/testsuite/gdc.test/fail_compilation/test15399.d
  8a0a50d1cf0e2b5b79530444e6880a4b  gcc/testsuite/gdc.test/fail_compilation/test15525.d
! 729b6db37d0ce68b19199d351add21e2  gcc/testsuite/gdc.test/fail_compilation/test15544.d
! ae21ef4b026c9303f3b6b7c5bb52701b  gcc/testsuite/gdc.test/fail_compilation/test15660.d
! 94b6b52023f65f4ac04f78a28068dd29  gcc/testsuite/gdc.test/fail_compilation/test15672.d
! f2e9c5245c8a38d42dd78e38f8a5e42f  gcc/testsuite/gdc.test/fail_compilation/test15703.d
! 977db354a89e574f7316667596a484dd  gcc/testsuite/gdc.test/fail_compilation/test15704.d
  2a49e51e373b65eaa0cf8fcd840dd95c  gcc/testsuite/gdc.test/fail_compilation/test15785.d
  d1333de570b9babff543dfaf034537b6  gcc/testsuite/gdc.test/fail_compilation/test15785b.d
  6361ba506061bf5fe0b331e317df312a  gcc/testsuite/gdc.test/fail_compilation/test15897.d
--- 98021,98069 ----
  5fc86afe292de65847c2d5b768bc361e  gcc/testsuite/gdc.test/fail_compilation/staticforeach4.d
  1bd98512e42c6ce1fba6bd2df688ecd9  gcc/testsuite/gdc.test/fail_compilation/switch_skip.d
  67a38caf5636ad2575e7fc1fd49e5563  gcc/testsuite/gdc.test/fail_compilation/switches.d
! 4311ba748a2aed6856b6209f9ab5d013  gcc/testsuite/gdc.test/fail_compilation/system_ptr_cast.d
! ebf9f85aa55db723285fc238129499dd  gcc/testsuite/gdc.test/fail_compilation/systemvariables.d
! 0a97056007b19f0f600780027d668534  gcc/testsuite/gdc.test/fail_compilation/systemvariables_bool_union.d
! 4d3bbfb005e11b983f9c9ad6ae801e6a  gcc/testsuite/gdc.test/fail_compilation/systemvariables_deprecation.d
! f82b6da2768bbff9765ed0cafd46e365  gcc/testsuite/gdc.test/fail_compilation/systemvariables_struct.d
! 6903054925e5f74bba6e140adbbed90f  gcc/testsuite/gdc.test/fail_compilation/systemvariables_void_init.d
! 06ab513440210a7e6b60cbd7d241bf27  gcc/testsuite/gdc.test/fail_compilation/template_decl.d
! 59893c6db292d244f3c5c61865fd8a19  gcc/testsuite/gdc.test/fail_compilation/template_enum_param.d
  1db4effe1e14a05bdf23041766b88914  gcc/testsuite/gdc.test/fail_compilation/templateoverload.d
  f0088c8e1a917d9db5a48111639380ae  gcc/testsuite/gdc.test/fail_compilation/templatethis.d
! ad90ad137e2b017aca906d45dc10cdb5  gcc/testsuite/gdc.test/fail_compilation/test1.d
  63f139f45a6e15e188c3b11fc538355b  gcc/testsuite/gdc.test/fail_compilation/test10.d
  305adce56f0df00c5b7b911cd52ea3fb  gcc/testsuite/gdc.test/fail_compilation/test1021.d
! 03aac5f098031747ce0fec0b0f354deb  gcc/testsuite/gdc.test/fail_compilation/test11006.d
  6fea622afbaede137af90ea3be9d92da  gcc/testsuite/gdc.test/fail_compilation/test11047.d
! e49ee739094d7d9290acb42951ae022c  gcc/testsuite/gdc.test/fail_compilation/test11176.d
  83c2ed4d71d7f8bf4d1c85361d5d3c0c  gcc/testsuite/gdc.test/fail_compilation/test12228.d
  85d57b27608d5d1c328cc850a806d070  gcc/testsuite/gdc.test/fail_compilation/test12385.d
  01470bdf2abf34f431e989d0f125bcad  gcc/testsuite/gdc.test/fail_compilation/test12558.d
! b1a863df2965ab06a1e78f8741936e04  gcc/testsuite/gdc.test/fail_compilation/test12822.d
  65bf6828b6933ad9338fde788fa23308  gcc/testsuite/gdc.test/fail_compilation/test13152.d
! 598aa982b9560c30862514b171c3c9e2  gcc/testsuite/gdc.test/fail_compilation/test13536.d
! 1fe5a5f7acf96de804bfd5372d4b0615  gcc/testsuite/gdc.test/fail_compilation/test13537.d
  eb86a3dc5c2a6e231593c5b6568bbc49  gcc/testsuite/gdc.test/fail_compilation/test13667.d
! d4ead4ef35f8e5970693ce6d9d61e67f  gcc/testsuite/gdc.test/fail_compilation/test13786.d
  dc5f6694b899c5b4017bfc9931164527  gcc/testsuite/gdc.test/fail_compilation/test13867.d
  2be07367077526f2bb6da860b9b81128  gcc/testsuite/gdc.test/fail_compilation/test14064.d
! 5c21e42bbfb80c1b4ab9c9a468814413  gcc/testsuite/gdc.test/fail_compilation/test14238.d
  3fd9f21ffc0d2cd25d288f630210d963  gcc/testsuite/gdc.test/fail_compilation/test143.d
! e4cc07c05fae27121dca473cac2c675e  gcc/testsuite/gdc.test/fail_compilation/test14496.d
! 7a4ef7516579d5d5dff624e6da80a082  gcc/testsuite/gdc.test/fail_compilation/test14538.d
  0811c0a4dbd9bffec8230d6e2a5a6c01  gcc/testsuite/gdc.test/fail_compilation/test15177.d
! d25731eaaf5e4826e03fa6b921b1d93f  gcc/testsuite/gdc.test/fail_compilation/test15191.d
! 0200cdabc11b62ac95049c2625a7fa69  gcc/testsuite/gdc.test/fail_compilation/test15306.d
  869648d421cf5208b57506e313ad99f3  gcc/testsuite/gdc.test/fail_compilation/test15368.d
  abba9160e3348512b9cfbe906f164025  gcc/testsuite/gdc.test/fail_compilation/test15373.d
! aa82f45d91443c219c645e006f38768c  gcc/testsuite/gdc.test/fail_compilation/test15399.d
  8a0a50d1cf0e2b5b79530444e6880a4b  gcc/testsuite/gdc.test/fail_compilation/test15525.d
! 8bb53be8c29bd2cfb3c188493013481b  gcc/testsuite/gdc.test/fail_compilation/test15544.d
! d29ba05307c56139477cb5cc0a0fa146  gcc/testsuite/gdc.test/fail_compilation/test15660.d
! 3e5dcecf2382817b6ecd665668c34e20  gcc/testsuite/gdc.test/fail_compilation/test15672.d
! 6357f4545bc38ffe4a0dd29f2aea7fa8  gcc/testsuite/gdc.test/fail_compilation/test15703.d
! 7055a34d3eaddf11d947a7ccf66ed4f1  gcc/testsuite/gdc.test/fail_compilation/test15704.d
  2a49e51e373b65eaa0cf8fcd840dd95c  gcc/testsuite/gdc.test/fail_compilation/test15785.d
  d1333de570b9babff543dfaf034537b6  gcc/testsuite/gdc.test/fail_compilation/test15785b.d
  6361ba506061bf5fe0b331e317df312a  gcc/testsuite/gdc.test/fail_compilation/test15897.d
*************** d1333de570b9babff543dfaf034537b6  gcc/te
*** 91397,91458 ****
  34f69908ea5a0909d9fb282d88f4e272  gcc/testsuite/gdc.test/fail_compilation/test15989.d
  d1adfc9174aa950f68215afdfe2e8b10  gcc/testsuite/gdc.test/fail_compilation/test16095.d
  66fc24a8ca5e79401240720959999b8a  gcc/testsuite/gdc.test/fail_compilation/test16116.d
! cb0086a974d8787620600617b26fb1da  gcc/testsuite/gdc.test/fail_compilation/test16188.d
! 3f35de226b3c2c3b6bc6fb5057cca9f0  gcc/testsuite/gdc.test/fail_compilation/test16193.d
! 7e69c14bf5d6715448a1e70e55ff1e92  gcc/testsuite/gdc.test/fail_compilation/test16195.d
  e5b046140d8851a5d422294abc065485  gcc/testsuite/gdc.test/fail_compilation/test16228.d
  03f0d7df123861dc23fb282e1a4a844f  gcc/testsuite/gdc.test/fail_compilation/test16284.d
! 9aba14841cc9e0fb2e0857f0bdeaf824  gcc/testsuite/gdc.test/fail_compilation/test16365.d
  de2dfb2d7e110df35a87d33a8ce28669  gcc/testsuite/gdc.test/fail_compilation/test16381.d
  1261efe556507f5455a6eb5481b36ef9  gcc/testsuite/gdc.test/fail_compilation/test16495.d
  e0a809992bf27ecb5271695352b3ac48  gcc/testsuite/gdc.test/fail_compilation/test16523.d
! 2377981f9d46da4831624a8caf1db7d8  gcc/testsuite/gdc.test/fail_compilation/test16589.d
  86569ab8185a8567150068a8b7844fd6  gcc/testsuite/gdc.test/fail_compilation/test16694.d
  98abfadab22f6825df1b455b2e0c527c  gcc/testsuite/gdc.test/fail_compilation/test17096.d
! e569dc531cdd60d593b14da3e13af16f  gcc/testsuite/gdc.test/fail_compilation/test17284.d
  5a27a426fc0054795467c4c6257ec60a  gcc/testsuite/gdc.test/fail_compilation/test17307.d
  3b214d273aa841f50cc8a1e86597be18  gcc/testsuite/gdc.test/fail_compilation/test17380.d
  0822e934d4c677c1a8e2509f54c3dbf0  gcc/testsuite/gdc.test/fail_compilation/test17380spec.d
! f61bc9deb751473044d9409319fb74bb  gcc/testsuite/gdc.test/fail_compilation/test17422.d
! d5d139381f270b1126ac7b1aacf81233  gcc/testsuite/gdc.test/fail_compilation/test17423.d
  c0d67198dbf86e2d1c77c70a61959cda  gcc/testsuite/gdc.test/fail_compilation/test17425.d
! a1525f8e9bf2892db99b8912657a4646  gcc/testsuite/gdc.test/fail_compilation/test17450.d
! 53d09ea97c3c7d7cbed07ab23fd326b9  gcc/testsuite/gdc.test/fail_compilation/test17451.d
  007e8f7be0caa67ef13dbf76d94596f3  gcc/testsuite/gdc.test/fail_compilation/test17586.d
! 0d788325cbe9cc59c429052b764a0d54  gcc/testsuite/gdc.test/fail_compilation/test17764.d
  17574606dae13807ad0677b7e9eea048  gcc/testsuite/gdc.test/fail_compilation/test17868.d
  5df0fbb85fa23077c6f9655993469dc9  gcc/testsuite/gdc.test/fail_compilation/test17868b.d
  4092ca8954505900e27e406d1e0d039c  gcc/testsuite/gdc.test/fail_compilation/test17892.d
  47fc9c265bc4fd596a224fb51e63e09c  gcc/testsuite/gdc.test/fail_compilation/test17908a.d
  f79ff08f6a4f8c6756261d3e8abd2c0b  gcc/testsuite/gdc.test/fail_compilation/test17908b.d
! 0c27222ad4d0c3be9c21c7c7b0ea7f3c  gcc/testsuite/gdc.test/fail_compilation/test17959.d
! 990f65972e725824cce49c4bcb2fcc6b  gcc/testsuite/gdc.test/fail_compilation/test17977.d
  3dedce972ccebf636e59731359e082a2  gcc/testsuite/gdc.test/fail_compilation/test18130.d
! 998848aa62cf82501ad1f7bd28c9e67b  gcc/testsuite/gdc.test/fail_compilation/test18282.d
  a7a660644aa3a898b18641bb0128e405  gcc/testsuite/gdc.test/fail_compilation/test18312.d
  3f884432d6887eb6dd7b14e20d0d58a1  gcc/testsuite/gdc.test/fail_compilation/test18385.d
! b1e87e5ca0e90a2ae9b8cded872c77b0  gcc/testsuite/gdc.test/fail_compilation/test18385b.d
  0172619f1fcb2db65f7f71e1c1c44374  gcc/testsuite/gdc.test/fail_compilation/test18480.d
  a320c4c03bb5aad9729c7905a574a8a2  gcc/testsuite/gdc.test/fail_compilation/test18484.d
! 48c8c1dc147dd27ac280e47d2b545b6a  gcc/testsuite/gdc.test/fail_compilation/test18597.d
  37d894d9ec4b42c2dbf3166de0530bb3  gcc/testsuite/gdc.test/fail_compilation/test18607.d
! 2e0bf259be5ba60d2c4f7362ea492122  gcc/testsuite/gdc.test/fail_compilation/test18644.d
  b082b2bf9129db74cd10287209671a96  gcc/testsuite/gdc.test/fail_compilation/test18708.d
  984b16fc115a2ec34207e0d4e75e25df  gcc/testsuite/gdc.test/fail_compilation/test18736.d
! c36393b838073c3c64f3025c22b45aea  gcc/testsuite/gdc.test/fail_compilation/test19097.d
! 8f4db2f73a1402a4fd745123a5b70657  gcc/testsuite/gdc.test/fail_compilation/test19107.d
  966a5125951332c08a39ca7ebbd05c02  gcc/testsuite/gdc.test/fail_compilation/test19112.d
  8fe10b91500fba0e91b654fe48dd3d51  gcc/testsuite/gdc.test/fail_compilation/test19176.d
  f97e2d15a019a647e1e8ce539445f818  gcc/testsuite/gdc.test/fail_compilation/test19193.d
! b10055535f91e5f4101a27318f808c5e  gcc/testsuite/gdc.test/fail_compilation/test19473.d
  67abd3b15509154f2ad168138e069892  gcc/testsuite/gdc.test/fail_compilation/test19608.d
! 873afea393d5e93c44a340dc0235e641  gcc/testsuite/gdc.test/fail_compilation/test19646.d
  606379c092762843ab10257254f91d9b  gcc/testsuite/gdc.test/fail_compilation/test19661.d
! 25040339d078cd0bf092f7f3e51cecc7  gcc/testsuite/gdc.test/fail_compilation/test19971.d
! 38ecb4a91c2ce2571d77866385a588c9  gcc/testsuite/gdc.test/fail_compilation/test20023.d
  bdc93bd17024fd4d46de7909ff405a11  gcc/testsuite/gdc.test/fail_compilation/test20096.d
  989f382db1d361c966fe47d4b8205d23  gcc/testsuite/gdc.test/fail_compilation/test20149.d
! 9f0a1d2fba0fbadc60708e9351872c1c  gcc/testsuite/gdc.test/fail_compilation/test20245.d
  710c352c31a4baca536f7bfad2a41d05  gcc/testsuite/gdc.test/fail_compilation/test20267.d
  d5c3623a103182544da82c93b4634f62  gcc/testsuite/gdc.test/fail_compilation/test20324.d
  67055ecd3df8ca389c004a12d2eb7d68  gcc/testsuite/gdc.test/fail_compilation/test20383.d
--- 98071,98132 ----
  34f69908ea5a0909d9fb282d88f4e272  gcc/testsuite/gdc.test/fail_compilation/test15989.d
  d1adfc9174aa950f68215afdfe2e8b10  gcc/testsuite/gdc.test/fail_compilation/test16095.d
  66fc24a8ca5e79401240720959999b8a  gcc/testsuite/gdc.test/fail_compilation/test16116.d
! 9408875bf389e4228e497737f7f45723  gcc/testsuite/gdc.test/fail_compilation/test16188.d
! 6e579f7ca485d44546bbddd452c16d62  gcc/testsuite/gdc.test/fail_compilation/test16193.d
  e5b046140d8851a5d422294abc065485  gcc/testsuite/gdc.test/fail_compilation/test16228.d
  03f0d7df123861dc23fb282e1a4a844f  gcc/testsuite/gdc.test/fail_compilation/test16284.d
! eb6914d442e437fc92ed834426825f1c  gcc/testsuite/gdc.test/fail_compilation/test16365.d
  de2dfb2d7e110df35a87d33a8ce28669  gcc/testsuite/gdc.test/fail_compilation/test16381.d
+ 58ba9ee7940db00547f1e4681087507d  gcc/testsuite/gdc.test/fail_compilation/test16443.d
  1261efe556507f5455a6eb5481b36ef9  gcc/testsuite/gdc.test/fail_compilation/test16495.d
  e0a809992bf27ecb5271695352b3ac48  gcc/testsuite/gdc.test/fail_compilation/test16523.d
! 7966870826334ea54a59a94ef8dcb091  gcc/testsuite/gdc.test/fail_compilation/test16589.d
  86569ab8185a8567150068a8b7844fd6  gcc/testsuite/gdc.test/fail_compilation/test16694.d
  98abfadab22f6825df1b455b2e0c527c  gcc/testsuite/gdc.test/fail_compilation/test17096.d
! 3b278caf60ea746872cb90ac39fa14ad  gcc/testsuite/gdc.test/fail_compilation/test17284.d
  5a27a426fc0054795467c4c6257ec60a  gcc/testsuite/gdc.test/fail_compilation/test17307.d
  3b214d273aa841f50cc8a1e86597be18  gcc/testsuite/gdc.test/fail_compilation/test17380.d
  0822e934d4c677c1a8e2509f54c3dbf0  gcc/testsuite/gdc.test/fail_compilation/test17380spec.d
! 76c9e8311348b3478225804459e608a3  gcc/testsuite/gdc.test/fail_compilation/test17422.d
! 2830cf192598aecbd7d68586fd16f3ab  gcc/testsuite/gdc.test/fail_compilation/test17423.d
  c0d67198dbf86e2d1c77c70a61959cda  gcc/testsuite/gdc.test/fail_compilation/test17425.d
! d58b557515434087e0e9f710866590a0  gcc/testsuite/gdc.test/fail_compilation/test17450.d
! c393b650cec6437b218d580e31495c49  gcc/testsuite/gdc.test/fail_compilation/test17451.d
  007e8f7be0caa67ef13dbf76d94596f3  gcc/testsuite/gdc.test/fail_compilation/test17586.d
! 2e391a2f373f30a8211c28756bb84d02  gcc/testsuite/gdc.test/fail_compilation/test17764.d
  17574606dae13807ad0677b7e9eea048  gcc/testsuite/gdc.test/fail_compilation/test17868.d
  5df0fbb85fa23077c6f9655993469dc9  gcc/testsuite/gdc.test/fail_compilation/test17868b.d
  4092ca8954505900e27e406d1e0d039c  gcc/testsuite/gdc.test/fail_compilation/test17892.d
  47fc9c265bc4fd596a224fb51e63e09c  gcc/testsuite/gdc.test/fail_compilation/test17908a.d
  f79ff08f6a4f8c6756261d3e8abd2c0b  gcc/testsuite/gdc.test/fail_compilation/test17908b.d
! 312dbd0dc1b0dc01792cb3bb22886161  gcc/testsuite/gdc.test/fail_compilation/test17959.d
! e5254335118841d78547e28e44099554  gcc/testsuite/gdc.test/fail_compilation/test17977.d
  3dedce972ccebf636e59731359e082a2  gcc/testsuite/gdc.test/fail_compilation/test18130.d
! d3d274ea3583ecda9ddf1cacfd01c9d0  gcc/testsuite/gdc.test/fail_compilation/test18282.d
  a7a660644aa3a898b18641bb0128e405  gcc/testsuite/gdc.test/fail_compilation/test18312.d
  3f884432d6887eb6dd7b14e20d0d58a1  gcc/testsuite/gdc.test/fail_compilation/test18385.d
! 2ab2cb94449809dd764a0f41a3c8b378  gcc/testsuite/gdc.test/fail_compilation/test18385b.d
  0172619f1fcb2db65f7f71e1c1c44374  gcc/testsuite/gdc.test/fail_compilation/test18480.d
  a320c4c03bb5aad9729c7905a574a8a2  gcc/testsuite/gdc.test/fail_compilation/test18484.d
! a7ce5f99b98911510dfe6b0cd43df779  gcc/testsuite/gdc.test/fail_compilation/test18597.d
  37d894d9ec4b42c2dbf3166de0530bb3  gcc/testsuite/gdc.test/fail_compilation/test18607.d
! 207dba1fcbad5b8b67427d637010a29d  gcc/testsuite/gdc.test/fail_compilation/test18644.d
  b082b2bf9129db74cd10287209671a96  gcc/testsuite/gdc.test/fail_compilation/test18708.d
  984b16fc115a2ec34207e0d4e75e25df  gcc/testsuite/gdc.test/fail_compilation/test18736.d
! af2f5895d46a70247b181d331bc70a51  gcc/testsuite/gdc.test/fail_compilation/test19097.d
! ab3befb908635ec7c40c188d0dc526c5  gcc/testsuite/gdc.test/fail_compilation/test19107.d
  966a5125951332c08a39ca7ebbd05c02  gcc/testsuite/gdc.test/fail_compilation/test19112.d
  8fe10b91500fba0e91b654fe48dd3d51  gcc/testsuite/gdc.test/fail_compilation/test19176.d
  f97e2d15a019a647e1e8ce539445f818  gcc/testsuite/gdc.test/fail_compilation/test19193.d
! 057c9785379892bfd2b7434d11c16790  gcc/testsuite/gdc.test/fail_compilation/test19473.d
  67abd3b15509154f2ad168138e069892  gcc/testsuite/gdc.test/fail_compilation/test19608.d
! 6a08ebc6bfe0211fdd2073fd10f6d18b  gcc/testsuite/gdc.test/fail_compilation/test19646.d
  606379c092762843ab10257254f91d9b  gcc/testsuite/gdc.test/fail_compilation/test19661.d
! bfb3fe397b78a8c3397961db5e383877  gcc/testsuite/gdc.test/fail_compilation/test19971.d
! 6cac69b0d7ff56f0fe785a14b5030313  gcc/testsuite/gdc.test/fail_compilation/test20023.d
  bdc93bd17024fd4d46de7909ff405a11  gcc/testsuite/gdc.test/fail_compilation/test20096.d
  989f382db1d361c966fe47d4b8205d23  gcc/testsuite/gdc.test/fail_compilation/test20149.d
! 6018d569e491391d8444e816763ca248  gcc/testsuite/gdc.test/fail_compilation/test20245.d
  710c352c31a4baca536f7bfad2a41d05  gcc/testsuite/gdc.test/fail_compilation/test20267.d
  d5c3623a103182544da82c93b4634f62  gcc/testsuite/gdc.test/fail_compilation/test20324.d
  67055ecd3df8ca389c004a12d2eb7d68  gcc/testsuite/gdc.test/fail_compilation/test20383.d
*************** d5c3623a103182544da82c93b4634f62  gcc/te
*** 91460,91484 ****
  1a3b469b9f542cf3d9173ca77bd3777a  gcc/testsuite/gdc.test/fail_compilation/test20522.d
  48bcc8fd7476f9cac9ceb53d9556bc32  gcc/testsuite/gdc.test/fail_compilation/test20549.d
  c20d2e44234601fb7a1e6695ac301613  gcc/testsuite/gdc.test/fail_compilation/test20565.d
! 5238f996ed59dccb8410825f4ead764e  gcc/testsuite/gdc.test/fail_compilation/test20569.d
  4eafc9affda83afce6c0cc4694dd75d6  gcc/testsuite/gdc.test/fail_compilation/test20610.d
  4b52d7823af93d96b42262173304ca1a  gcc/testsuite/gdc.test/fail_compilation/test20626.d
! e07b24bbcec05454221d6ddbf7e0883c  gcc/testsuite/gdc.test/fail_compilation/test20655.d
  e39aff32106ef1915eaef833c26044c1  gcc/testsuite/gdc.test/fail_compilation/test20696.d
! 96dfa1442895d72adea2b502247d7cd7  gcc/testsuite/gdc.test/fail_compilation/test20719.d
! 691a5f683d3bf7ab67ca4fe2fd073b34  gcc/testsuite/gdc.test/fail_compilation/test20809.d
! 5f15336de0fc91767e8b405dade1fc2a  gcc/testsuite/gdc.test/fail_compilation/test20881.d
  b63d81d149ced101cc0047fccfbfbff2  gcc/testsuite/gdc.test/fail_compilation/test20919.d
! 0c8c75b5c031c7465027a71326076749  gcc/testsuite/gdc.test/fail_compilation/test20998.d
  a90917d34352a06426f399bae530c5b1  gcc/testsuite/gdc.test/fail_compilation/test21008.d
  2633a9ffa9ab4b316936098df4b94a62  gcc/testsuite/gdc.test/fail_compilation/test21025.d
! ac25466748e602667eee66983bb3fcb5  gcc/testsuite/gdc.test/fail_compilation/test21062.d
  4aaee6ae450926eaa1c6fa5de9532424  gcc/testsuite/gdc.test/fail_compilation/test21093.d
! d8c21eba428e3edf7da0a7b88431229b  gcc/testsuite/gdc.test/fail_compilation/test21096.d
  8423fe6adfb22defe2dacb59e379275b  gcc/testsuite/gdc.test/fail_compilation/test21164.d
  1bf038cf6f1ae7975e11d8f3ed7be20b  gcc/testsuite/gdc.test/fail_compilation/test21198.d
  719ac706ce81cfaaa50815be2ec3e7c8  gcc/testsuite/gdc.test/fail_compilation/test21204.d
  f0d66ee58e1deca85dd1a5c6be72e0fe  gcc/testsuite/gdc.test/fail_compilation/test21246.d
  2fce247ddc6adc1e84f449d7761cc302  gcc/testsuite/gdc.test/fail_compilation/test21259.d
  0eab8d2a17e3211f93dc6c87bf3f5d8c  gcc/testsuite/gdc.test/fail_compilation/test21319.d
  ad28f1ade07eee78214d73c592d30316  gcc/testsuite/gdc.test/fail_compilation/test21353.d
--- 98134,98162 ----
  1a3b469b9f542cf3d9173ca77bd3777a  gcc/testsuite/gdc.test/fail_compilation/test20522.d
  48bcc8fd7476f9cac9ceb53d9556bc32  gcc/testsuite/gdc.test/fail_compilation/test20549.d
  c20d2e44234601fb7a1e6695ac301613  gcc/testsuite/gdc.test/fail_compilation/test20565.d
! 6d88e81262be7c4e01b15c7e7de4e43c  gcc/testsuite/gdc.test/fail_compilation/test20569.d
  4eafc9affda83afce6c0cc4694dd75d6  gcc/testsuite/gdc.test/fail_compilation/test20610.d
  4b52d7823af93d96b42262173304ca1a  gcc/testsuite/gdc.test/fail_compilation/test20626.d
! 0f8736f917ab2767ecf9512af9fb99ce  gcc/testsuite/gdc.test/fail_compilation/test20655.d
  e39aff32106ef1915eaef833c26044c1  gcc/testsuite/gdc.test/fail_compilation/test20696.d
! c7993efeed291ea587d7d83fec1d1d87  gcc/testsuite/gdc.test/fail_compilation/test20719.d
! b7fbc6ef2d8827fa89321f6b49cda686  gcc/testsuite/gdc.test/fail_compilation/test20763.d
! 4046e5eb92175bd9041603d05dbb66c5  gcc/testsuite/gdc.test/fail_compilation/test20809.d
! 4ce648303e8201e6ae69b7fd48320f74  gcc/testsuite/gdc.test/fail_compilation/test20859.d
! 5122dbb834f392793c561bcc026a19fa  gcc/testsuite/gdc.test/fail_compilation/test20881.d
  b63d81d149ced101cc0047fccfbfbff2  gcc/testsuite/gdc.test/fail_compilation/test20919.d
! ef8589871353bddefe144fc63561412a  gcc/testsuite/gdc.test/fail_compilation/test20998.d
  a90917d34352a06426f399bae530c5b1  gcc/testsuite/gdc.test/fail_compilation/test21008.d
  2633a9ffa9ab4b316936098df4b94a62  gcc/testsuite/gdc.test/fail_compilation/test21025.d
! 7e82b8bc44966f8cd312ab211c3c4e51  gcc/testsuite/gdc.test/fail_compilation/test21062.d
  4aaee6ae450926eaa1c6fa5de9532424  gcc/testsuite/gdc.test/fail_compilation/test21093.d
! 053652552b2af9328672341afd56bbd3  gcc/testsuite/gdc.test/fail_compilation/test21096.d
  8423fe6adfb22defe2dacb59e379275b  gcc/testsuite/gdc.test/fail_compilation/test21164.d
  1bf038cf6f1ae7975e11d8f3ed7be20b  gcc/testsuite/gdc.test/fail_compilation/test21198.d
  719ac706ce81cfaaa50815be2ec3e7c8  gcc/testsuite/gdc.test/fail_compilation/test21204.d
  f0d66ee58e1deca85dd1a5c6be72e0fe  gcc/testsuite/gdc.test/fail_compilation/test21246.d
+ 33c0c2a0698c5dcdf37e6b3ee829811f  gcc/testsuite/gdc.test/fail_compilation/test21247.d
+ bf2fa4b7e9ee0853b263755f0bce0ea6  gcc/testsuite/gdc.test/fail_compilation/test21247b.d
  2fce247ddc6adc1e84f449d7761cc302  gcc/testsuite/gdc.test/fail_compilation/test21259.d
  0eab8d2a17e3211f93dc6c87bf3f5d8c  gcc/testsuite/gdc.test/fail_compilation/test21319.d
  ad28f1ade07eee78214d73c592d30316  gcc/testsuite/gdc.test/fail_compilation/test21353.d
*************** ec3a327e60b99c4b5c8c64c7ec034e09  gcc/te
*** 91488,91536 ****
  d89c86b00de50c0eff1176ba2eac046a  gcc/testsuite/gdc.test/fail_compilation/test21518.d
  32963db1864d8e88864b2bc3b4a00399  gcc/testsuite/gdc.test/fail_compilation/test21546.d
  71e1aa25aaa777c4eef2e9d4c47f72c0  gcc/testsuite/gdc.test/fail_compilation/test21651.d
! 967e6942f456ba08f47523edd20fff22  gcc/testsuite/gdc.test/fail_compilation/test21665.d
  134c62157e30891fb9a43a58e55cf004  gcc/testsuite/gdc.test/fail_compilation/test21807.d
! 7874833aeeddda7bc57e505ee34c5015  gcc/testsuite/gdc.test/fail_compilation/test21912.d
  3d30a4f2bab190433f516628a982fbf6  gcc/testsuite/gdc.test/fail_compilation/test21927.d
  00c0a23be93838d8f2a86c097d340a13  gcc/testsuite/gdc.test/fail_compilation/test21930.d
  2545aae5fda6db5d0b2a471741205137  gcc/testsuite/gdc.test/fail_compilation/test21939.d
! 7737d71c94d6416d1a8f6f5b58d44304  gcc/testsuite/gdc.test/fail_compilation/test22023.d
  5366496a6a0fd2d561086698bcd1e630  gcc/testsuite/gdc.test/fail_compilation/test22048.d
! c3299f61c19c19fa7d2fa91058e498c6  gcc/testsuite/gdc.test/fail_compilation/test22145.d
! b26bef555817a24ae4467d7dc0636c50  gcc/testsuite/gdc.test/fail_compilation/test22227.d
! 72542ae3b6eec0b354faccf5f89e9e9b  gcc/testsuite/gdc.test/fail_compilation/test22298.d
! 1e0bd71c5a739a3c07930432279a845f  gcc/testsuite/gdc.test/fail_compilation/test22329.d
  acdee90e75d19aa3146056d4a0ea124a  gcc/testsuite/gdc.test/fail_compilation/test22361.d
! 7171ffb25dfbfb58138adc21ba50dc84  gcc/testsuite/gdc.test/fail_compilation/test22541.d
  cf139945245bb017eb805da3ff7c09a1  gcc/testsuite/gdc.test/fail_compilation/test22574.d
! 8c0b458ccca45ab987342e7767bd717c  gcc/testsuite/gdc.test/fail_compilation/test22680.d
  4ebd40967776126bdeadfab0dc0a7624  gcc/testsuite/gdc.test/fail_compilation/test22686.d
! 90ed8b49735b9275543c712461c3827c  gcc/testsuite/gdc.test/fail_compilation/test22709.d
! 5b31f4891ab45a36610625f5c05faf80  gcc/testsuite/gdc.test/fail_compilation/test22818.d
  173ea5f46a0b9730ccb5a67253618146  gcc/testsuite/gdc.test/fail_compilation/test22840.d
! 7f1d305e5b6a16823b10905c8acabf9e  gcc/testsuite/gdc.test/fail_compilation/test22910.d
! ae0cd305d2c663e0e5f1c5a00774996d  gcc/testsuite/gdc.test/fail_compilation/test22999.d
  f913115e93868e9a78c9fa781674f313  gcc/testsuite/gdc.test/fail_compilation/test23017.d
! cc99e7ac187b614a799fc18a4f093fc5  gcc/testsuite/gdc.test/fail_compilation/test23022.d
! 1a168a9cd9ae39f96117efa1c9774379  gcc/testsuite/gdc.test/fail_compilation/test23073.d
! dbbf6bbfe1cf0dc3531815f0d13b207e  gcc/testsuite/gdc.test/fail_compilation/test23112.d
  0ec75b327b00e3e5424c6dd33ada45ad  gcc/testsuite/gdc.test/fail_compilation/test23159.d
! 085297059a3feacd1fe0e893b7abf682  gcc/testsuite/gdc.test/fail_compilation/test23170.d
  d58332efc531ae33e2a3c63d48550216  gcc/testsuite/gdc.test/fail_compilation/test23216.d
  82b9d1efc70e38367a42d7ba6e74b60c  gcc/testsuite/gdc.test/fail_compilation/test23279.d
! c310fec3ac59c001bba83a0b01d7dab7  gcc/testsuite/gdc.test/fail_compilation/test23491.d
  e010725215b2db70af4d945e37f73a50  gcc/testsuite/gdc.test/fail_compilation/test23536.d
  7fca868961c1d88268606a371d908245  gcc/testsuite/gdc.test/fail_compilation/test23552.d
  804d31f68030f5ac99db7e8484050952  gcc/testsuite/gdc.test/fail_compilation/test23607.d
  ca88c6d83d577719b18fb9894af05c0a  gcc/testsuite/gdc.test/fail_compilation/test23674.d
  e894966fad5273a970aa51420ce2b993  gcc/testsuite/gdc.test/fail_compilation/test23710.d
  f4e89a6307cbf7326a8ff6901235b1ec  gcc/testsuite/gdc.test/fail_compilation/test23786.d
! 5209c87c1d5584455c44d956b50d3e45  gcc/testsuite/gdc.test/fail_compilation/test23873.d
  38e2108be478c073ae00746d9a169568  gcc/testsuite/gdc.test/fail_compilation/test23882.d
  1a38affdee4084ec23e995b911bb16a8  gcc/testsuite/gdc.test/fail_compilation/test23905.d
  69b315a59fa922c94a64c3b2186a7d95  gcc/testsuite/gdc.test/fail_compilation/test23968.d
! ecb5e02ba234cd1c4085e833c6919251  gcc/testsuite/gdc.test/fail_compilation/test23982.d
! 15f0fa56c08c009ca68aad3fa5dc7532  gcc/testsuite/gdc.test/fail_compilation/test24015.d
  6dc0b1e72b105775cba05b5a365fa6c2  gcc/testsuite/gdc.test/fail_compilation/test24036.d
  4c5b4a85d7b46a69b59e62899aa5add0  gcc/testsuite/gdc.test/fail_compilation/test24065.d
  705cd9a65a73c5af60239830b92fea91  gcc/testsuite/gdc.test/fail_compilation/test24084.d
--- 98166,98216 ----
  d89c86b00de50c0eff1176ba2eac046a  gcc/testsuite/gdc.test/fail_compilation/test21518.d
  32963db1864d8e88864b2bc3b4a00399  gcc/testsuite/gdc.test/fail_compilation/test21546.d
  71e1aa25aaa777c4eef2e9d4c47f72c0  gcc/testsuite/gdc.test/fail_compilation/test21651.d
! e186de90e8fb487e22d379566570a689  gcc/testsuite/gdc.test/fail_compilation/test21665.d
  134c62157e30891fb9a43a58e55cf004  gcc/testsuite/gdc.test/fail_compilation/test21807.d
! 33e35ba5deb2469492e2e2495937fa76  gcc/testsuite/gdc.test/fail_compilation/test21912.d
  3d30a4f2bab190433f516628a982fbf6  gcc/testsuite/gdc.test/fail_compilation/test21927.d
  00c0a23be93838d8f2a86c097d340a13  gcc/testsuite/gdc.test/fail_compilation/test21930.d
  2545aae5fda6db5d0b2a471741205137  gcc/testsuite/gdc.test/fail_compilation/test21939.d
! ee98d14d46a7655faaa946b02deb464b  gcc/testsuite/gdc.test/fail_compilation/test21995.d
! fa0f6d3c41f9f0de390fba90dcf5fac9  gcc/testsuite/gdc.test/fail_compilation/test22023.d
  5366496a6a0fd2d561086698bcd1e630  gcc/testsuite/gdc.test/fail_compilation/test22048.d
! 2dbf44b4bd6bae47ae3556c431ab3bf3  gcc/testsuite/gdc.test/fail_compilation/test22145.d
! d9418f88b8337499a2b6b4fd09e36a8e  gcc/testsuite/gdc.test/fail_compilation/test22227.d
! 9159afa6db86576fbf8af24f8e9a8ef6  gcc/testsuite/gdc.test/fail_compilation/test22298.d
! b792b92484e28f0d71c31c59f072f831  gcc/testsuite/gdc.test/fail_compilation/test22329.d
  acdee90e75d19aa3146056d4a0ea124a  gcc/testsuite/gdc.test/fail_compilation/test22361.d
! 0c35855d271a1df23c4b44432d6fd5ec  gcc/testsuite/gdc.test/fail_compilation/test22541.d
  cf139945245bb017eb805da3ff7c09a1  gcc/testsuite/gdc.test/fail_compilation/test22574.d
! cd582baa71751828efc1fe734db77fcd  gcc/testsuite/gdc.test/fail_compilation/test22680.d
  4ebd40967776126bdeadfab0dc0a7624  gcc/testsuite/gdc.test/fail_compilation/test22686.d
! 6f28d68c64a1bb7961bd2404b388b03f  gcc/testsuite/gdc.test/fail_compilation/test22709.d
! 8136bc54dbb90561bbea5339d22a55ed  gcc/testsuite/gdc.test/fail_compilation/test22818.d
  173ea5f46a0b9730ccb5a67253618146  gcc/testsuite/gdc.test/fail_compilation/test22840.d
! ca15912fd7a40502368f8963b289d24b  gcc/testsuite/gdc.test/fail_compilation/test22910.d
! 568c299faf8ec344ba5f3f0a6a75a06e  gcc/testsuite/gdc.test/fail_compilation/test22977.d
! 145a13e6251be16abdd4eb30d2bbce28  gcc/testsuite/gdc.test/fail_compilation/test22999.d
  f913115e93868e9a78c9fa781674f313  gcc/testsuite/gdc.test/fail_compilation/test23017.d
! 476eb7e3c3bacd04660a1c1df9196a85  gcc/testsuite/gdc.test/fail_compilation/test23022.d
! d0e6f216e810bf6a2b090266c9e593bb  gcc/testsuite/gdc.test/fail_compilation/test23073.d
! 87ff548a38e50d9b93fa8b5973b82742  gcc/testsuite/gdc.test/fail_compilation/test23112.d
  0ec75b327b00e3e5424c6dd33ada45ad  gcc/testsuite/gdc.test/fail_compilation/test23159.d
! efcd1e2d29fce54f390a8a2f18491e9c  gcc/testsuite/gdc.test/fail_compilation/test23170.d
  d58332efc531ae33e2a3c63d48550216  gcc/testsuite/gdc.test/fail_compilation/test23216.d
  82b9d1efc70e38367a42d7ba6e74b60c  gcc/testsuite/gdc.test/fail_compilation/test23279.d
! e4b0e193d1dc58efda2987780d6d57d9  gcc/testsuite/gdc.test/fail_compilation/test23491.d
  e010725215b2db70af4d945e37f73a50  gcc/testsuite/gdc.test/fail_compilation/test23536.d
  7fca868961c1d88268606a371d908245  gcc/testsuite/gdc.test/fail_compilation/test23552.d
  804d31f68030f5ac99db7e8484050952  gcc/testsuite/gdc.test/fail_compilation/test23607.d
  ca88c6d83d577719b18fb9894af05c0a  gcc/testsuite/gdc.test/fail_compilation/test23674.d
  e894966fad5273a970aa51420ce2b993  gcc/testsuite/gdc.test/fail_compilation/test23710.d
  f4e89a6307cbf7326a8ff6901235b1ec  gcc/testsuite/gdc.test/fail_compilation/test23786.d
! 4f660662299a8dd73beca7ec8878676e  gcc/testsuite/gdc.test/fail_compilation/test23873.d
  38e2108be478c073ae00746d9a169568  gcc/testsuite/gdc.test/fail_compilation/test23882.d
  1a38affdee4084ec23e995b911bb16a8  gcc/testsuite/gdc.test/fail_compilation/test23905.d
  69b315a59fa922c94a64c3b2186a7d95  gcc/testsuite/gdc.test/fail_compilation/test23968.d
! 2cd0ee33f12ec82ea32ea4995f64a3ae  gcc/testsuite/gdc.test/fail_compilation/test23982.d
! 2ed1556a6c6a35e66b0f218a9f3dee67  gcc/testsuite/gdc.test/fail_compilation/test24015.d
  6dc0b1e72b105775cba05b5a365fa6c2  gcc/testsuite/gdc.test/fail_compilation/test24036.d
  4c5b4a85d7b46a69b59e62899aa5add0  gcc/testsuite/gdc.test/fail_compilation/test24065.d
  705cd9a65a73c5af60239830b92fea91  gcc/testsuite/gdc.test/fail_compilation/test24084.d
*************** cc41e8d4f1cad67ff1bf2aec36d096da  gcc/te
*** 91538,91544 ****
--- 98218,98228 ----
  14870badd278a51ab882abb61fdb2fcb  gcc/testsuite/gdc.test/fail_compilation/test24157.d
  6f1c6290717f99af3bff7bd3c0ff19e5  gcc/testsuite/gdc.test/fail_compilation/test24159.d
  66a8d328c153120399b34b9d865012ae  gcc/testsuite/gdc.test/fail_compilation/test24295.d
+ 44bf6fb50b02a3e43971867c86d6081b  gcc/testsuite/gdc.test/fail_compilation/test24353.d
  a3ffce63da1daba89c1a287fa30bd6c5  gcc/testsuite/gdc.test/fail_compilation/test24365.d
+ afc2b9238633bdf759c114e3ed3dff66  gcc/testsuite/gdc.test/fail_compilation/test24680.d
+ bb8810e25c8930588b41b888a42245a4  gcc/testsuite/gdc.test/fail_compilation/test24694.d
+ e7f55e37b3422d151814adecb09ec4b9  gcc/testsuite/gdc.test/fail_compilation/test24745.d
  2dddb119548b8d219ecb2aed67590d4b  gcc/testsuite/gdc.test/fail_compilation/test314.d
  4917bf7731fa8cfa0e714e8761b5e241  gcc/testsuite/gdc.test/fail_compilation/test3818.d
  465b130426028cac7c9bb32cf2f4fdee  gcc/testsuite/gdc.test/fail_compilation/test4682.d
*************** ec4dab98798d55fe2c57ec7dd6dca969  gcc/te
*** 91559,91603 ****
  52d9b83392589d6bdf1fd43ad1236fe0  gcc/testsuite/gdc.test/fail_compilation/test9701.d
  0c45d5260200ba8418599d073e757dc5  gcc/testsuite/gdc.test/fail_compilation/test9701b.d
  72dfa3f018a5d4d774824c2ba1113dbc  gcc/testsuite/gdc.test/fail_compilation/testCols.d
! 1d721c997178957250390d679f9aa054  gcc/testsuite/gdc.test/fail_compilation/testInference.d
! 728f0e80a21aa21af1ca35ac0dd223c9  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  585cd3369b1d02b241f3a50fd0738734  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
  e3a49e0f83829ecf8f9f7d5da876f8fe  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
! 2052cfad5c440607a61fb5672625c7f8  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
  816faf898559acd08b5d122dfc17dd89  gcc/testsuite/gdc.test/fail_compilation/throwexp.d
  04d5dfb2f3b9742e94a950ba94b0018f  gcc/testsuite/gdc.test/fail_compilation/tolvalue.d
! 57c72c41fa070966229a8558b833873a  gcc/testsuite/gdc.test/fail_compilation/trait_loc_err.d
  3cd67c281e7569394eb1c1c3ebd7f1f9  gcc/testsuite/gdc.test/fail_compilation/trait_loc_ov_err.d
  67aacd5eca9640d19610c73418a109e1  gcc/testsuite/gdc.test/fail_compilation/traits.d
! 4bc4006892d5f8f77213130f3a99de63  gcc/testsuite/gdc.test/fail_compilation/traits_alone.d
  48edd3c9ac39fcd89bdb6d21b1e2ae3a  gcc/testsuite/gdc.test/fail_compilation/traits_child.d
  f4314476b27b3e9b55a576b20be59974  gcc/testsuite/gdc.test/fail_compilation/traits_initSymbol.d
  1c9eecd3fd98dda6bd34752b508a13f9  gcc/testsuite/gdc.test/fail_compilation/traits_parameters.d
! 9324e77b6289c00afbb52764b60f2660  gcc/testsuite/gdc.test/fail_compilation/typeerrors.d
! d247e752a5282607d5426300a1cc05d8  gcc/testsuite/gdc.test/fail_compilation/udaparams.d
  de7caecb66362ee03a66fee21b75bcb7  gcc/testsuite/gdc.test/fail_compilation/udatypes.d
! f7c813085706d01a946e9765e51e6d5a  gcc/testsuite/gdc.test/fail_compilation/ufcs.d
! 67eb83542917456871c84000d16d3890  gcc/testsuite/gdc.test/fail_compilation/union_initialization.d
  8c86803da224d87ddaa0fa1a75bf5bcc  gcc/testsuite/gdc.test/fail_compilation/unmatchedbrace.d
! 574a477f29f8cfcd1a37ae2692b4b1d9  gcc/testsuite/gdc.test/fail_compilation/var_func_attr.d
  a2fa270bd63d37be3604092ee063abdb  gcc/testsuite/gdc.test/fail_compilation/vararg2.d
! a5e1eb3ac7aaf3012f9d0340e4173761  gcc/testsuite/gdc.test/fail_compilation/varargsstc.d
  8437920cfdf5995ccf08a1ad910b2bc8  gcc/testsuite/gdc.test/fail_compilation/vector_cast.d
  d073fa782699e4eb73e51cbd5828d23f  gcc/testsuite/gdc.test/fail_compilation/verifyhookexist.d
  e9b76ed9d6ac70bc2a0374b247c4d24b  gcc/testsuite/gdc.test/fail_compilation/verrors0.d
! 0f994645f171fee35d3e36e19e9214b2  gcc/testsuite/gdc.test/fail_compilation/verrors5.d
  d3ae78de4bb864f85b1110bd31085d76  gcc/testsuite/gdc.test/fail_compilation/warn13679.d
  a33a1bbd8f6bddfcc1f780250c789cc7  gcc/testsuite/gdc.test/fail_compilation/warn7444.d
  ba48bb410e12885cc62cfe4376b90e24  gcc/testsuite/gdc.test/fail_compilation/widechars.d
! 841112e1863eea2302fe0d1e8203cccd  gcc/testsuite/gdc.test/fail_compilation/xmmslice.d
  4d086680d04f151f12470ff2df818c7d  gcc/testsuite/gdc.test/runnable/A16.d
  b3ea02141179894a95880a5b77e08f0a  gcc/testsuite/gdc.test/runnable/Same.d
  501e4a7b2936780b2296897940b47fb3  gcc/testsuite/gdc.test/runnable/a17.d
  f6631e1e1a3e934a040544d898e79e18  gcc/testsuite/gdc.test/runnable/a18.d
  7ab5a8b174d6dfc11178bbe5b91fc453  gcc/testsuite/gdc.test/runnable/a19.d
  134d96ee56c5082feabf729df7cd964e  gcc/testsuite/gdc.test/runnable/a21.d
! e615ecc1d7b37de2af54470f3338598c  gcc/testsuite/gdc.test/runnable/aliasassign.d
  bdd33dd9645eddf6b5b83f304fcff332  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
--- 98243,98289 ----
  52d9b83392589d6bdf1fd43ad1236fe0  gcc/testsuite/gdc.test/fail_compilation/test9701.d
  0c45d5260200ba8418599d073e757dc5  gcc/testsuite/gdc.test/fail_compilation/test9701b.d
  72dfa3f018a5d4d774824c2ba1113dbc  gcc/testsuite/gdc.test/fail_compilation/testCols.d
! bcac533ebb44ae410d3412ec01289528  gcc/testsuite/gdc.test/fail_compilation/testInference.d
! ffb3215e9a258cfd3f1a5da05897df96  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  585cd3369b1d02b241f3a50fd0738734  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
  e3a49e0f83829ecf8f9f7d5da876f8fe  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
! a19751c69fd3a108ac390db97edce978  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
  816faf898559acd08b5d122dfc17dd89  gcc/testsuite/gdc.test/fail_compilation/throwexp.d
  04d5dfb2f3b9742e94a950ba94b0018f  gcc/testsuite/gdc.test/fail_compilation/tolvalue.d
! f03859c9cd24a3002ec74d5d1b89b641  gcc/testsuite/gdc.test/fail_compilation/trait_loc_err.d
  3cd67c281e7569394eb1c1c3ebd7f1f9  gcc/testsuite/gdc.test/fail_compilation/trait_loc_ov_err.d
  67aacd5eca9640d19610c73418a109e1  gcc/testsuite/gdc.test/fail_compilation/traits.d
! 3aec7eb18349db0ea6bedf116114dcff  gcc/testsuite/gdc.test/fail_compilation/traits_alone.d
  48edd3c9ac39fcd89bdb6d21b1e2ae3a  gcc/testsuite/gdc.test/fail_compilation/traits_child.d
  f4314476b27b3e9b55a576b20be59974  gcc/testsuite/gdc.test/fail_compilation/traits_initSymbol.d
  1c9eecd3fd98dda6bd34752b508a13f9  gcc/testsuite/gdc.test/fail_compilation/traits_parameters.d
! 5f18f0800b788f0e7bd364090a8dae34  gcc/testsuite/gdc.test/fail_compilation/typeerrors.d
! 504ee32fc074e0cb1187a8e878866ad7  gcc/testsuite/gdc.test/fail_compilation/udaparams.d
  de7caecb66362ee03a66fee21b75bcb7  gcc/testsuite/gdc.test/fail_compilation/udatypes.d
! e2b1146035c65276c8dcc678f47fd8c9  gcc/testsuite/gdc.test/fail_compilation/ufcs.d
! 673fe4ae9154dfb5590036c49f9e6882  gcc/testsuite/gdc.test/fail_compilation/union_conv.d
! e9735fb65c1f5f28a4494e97ba23dcfd  gcc/testsuite/gdc.test/fail_compilation/union_initialization.d
  8c86803da224d87ddaa0fa1a75bf5bcc  gcc/testsuite/gdc.test/fail_compilation/unmatchedbrace.d
! 49c03c900574848f0f55e67bd5a3c34d  gcc/testsuite/gdc.test/fail_compilation/var_func_attr.d
  a2fa270bd63d37be3604092ee063abdb  gcc/testsuite/gdc.test/fail_compilation/vararg2.d
! bc9c3b61f65ea745aefa0dd19cd61867  gcc/testsuite/gdc.test/fail_compilation/varargsstc.d
  8437920cfdf5995ccf08a1ad910b2bc8  gcc/testsuite/gdc.test/fail_compilation/vector_cast.d
  d073fa782699e4eb73e51cbd5828d23f  gcc/testsuite/gdc.test/fail_compilation/verifyhookexist.d
  e9b76ed9d6ac70bc2a0374b247c4d24b  gcc/testsuite/gdc.test/fail_compilation/verrors0.d
! 3a4618a15e744d0566742cbff4a18159  gcc/testsuite/gdc.test/fail_compilation/verrors5.d
! 75868cd037e55b98739d09ab1ce96467  gcc/testsuite/gdc.test/fail_compilation/void_cat.d
  d3ae78de4bb864f85b1110bd31085d76  gcc/testsuite/gdc.test/fail_compilation/warn13679.d
  a33a1bbd8f6bddfcc1f780250c789cc7  gcc/testsuite/gdc.test/fail_compilation/warn7444.d
  ba48bb410e12885cc62cfe4376b90e24  gcc/testsuite/gdc.test/fail_compilation/widechars.d
! b52e49b9396eaf681158cd2a4fd0d1b3  gcc/testsuite/gdc.test/fail_compilation/xmmslice.d
  4d086680d04f151f12470ff2df818c7d  gcc/testsuite/gdc.test/runnable/A16.d
  b3ea02141179894a95880a5b77e08f0a  gcc/testsuite/gdc.test/runnable/Same.d
  501e4a7b2936780b2296897940b47fb3  gcc/testsuite/gdc.test/runnable/a17.d
  f6631e1e1a3e934a040544d898e79e18  gcc/testsuite/gdc.test/runnable/a18.d
  7ab5a8b174d6dfc11178bbe5b91fc453  gcc/testsuite/gdc.test/runnable/a19.d
  134d96ee56c5082feabf729df7cd964e  gcc/testsuite/gdc.test/runnable/a21.d
! fffd6a71ea335ebf0f5417f81dfef7db  gcc/testsuite/gdc.test/runnable/aliasassign.d
  bdd33dd9645eddf6b5b83f304fcff332  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
*************** ce7051ac19199f716966b7818a002c9b  gcc/te
*** 91636,91642 ****
  a080e4860261d16428bca6fb30d66159  gcc/testsuite/gdc.test/runnable/cppdtor.d
  2b92f65e8a84b3091a6b268e98f92815  gcc/testsuite/gdc.test/runnable/ctorpowtests.d
  a522e5527885eb8bdc0f385d8a49384c  gcc/testsuite/gdc.test/runnable/dbitfields.d
! 02fa83518542867ea2e7418da0b1937a  gcc/testsuite/gdc.test/runnable/declaration.d
  d0a93167ec0c4b07094d766e9e071292  gcc/testsuite/gdc.test/runnable/delegate.d
  b236e2967e62b1d2e91de78f8c967b0d  gcc/testsuite/gdc.test/runnable/e7804.d
  53f608a3800e7a114ef0c11e5c66686a  gcc/testsuite/gdc.test/runnable/eh.d
--- 98322,98328 ----
  a080e4860261d16428bca6fb30d66159  gcc/testsuite/gdc.test/runnable/cppdtor.d
  2b92f65e8a84b3091a6b268e98f92815  gcc/testsuite/gdc.test/runnable/ctorpowtests.d
  a522e5527885eb8bdc0f385d8a49384c  gcc/testsuite/gdc.test/runnable/dbitfields.d
! 84c4e26d482890e8bc49d1ce61bef9a7  gcc/testsuite/gdc.test/runnable/declaration.d
  d0a93167ec0c4b07094d766e9e071292  gcc/testsuite/gdc.test/runnable/delegate.d
  b236e2967e62b1d2e91de78f8c967b0d  gcc/testsuite/gdc.test/runnable/e7804.d
  53f608a3800e7a114ef0c11e5c66686a  gcc/testsuite/gdc.test/runnable/eh.d
*************** efe9afe1d7c82f88fcf975b64807b7c4  gcc/te
*** 91657,91662 ****
--- 98343,98349 ----
  c59f89187f85f5918783ffabe9866574  gcc/testsuite/gdc.test/runnable/extra-files/test11051.d
  b641a96329906956e464851eb6e101c4  gcc/testsuite/gdc.test/runnable/extra-files/test13742.d
  4507b79a9ef31ed59c02d59700af4df6  gcc/testsuite/gdc.test/runnable/extra-files/test15.txt
+ d5dc61bc23c5fded3a700d59890b7e25  gcc/testsuite/gdc.test/runnable/extra-files/test24590.d
  d1a345bbcd6c3027691c0839be38cd1c  gcc/testsuite/gdc.test/runnable/fix17429.d
  7f1db1f6ef5b5e0953c76aa16bc17e9f  gcc/testsuite/gdc.test/runnable/fix20466.d
  b6132527f3a42a9d10983addf6a107db  gcc/testsuite/gdc.test/runnable/fix22115.d
*************** d8fb229e4130b79d115c02f142b30900  gcc/te
*** 91667,91675 ****
  040e4fa767a7fc2e188c99cbc64f3de7  gcc/testsuite/gdc.test/runnable/foreach3.d
  2b8527464d5784704510e2c0b53be4e1  gcc/testsuite/gdc.test/runnable/foreach4.d
  2eb363b5efaefe90b9b38cb9c89c7b03  gcc/testsuite/gdc.test/runnable/foreach5.d
! 4073876fb9093031234d620dec187fa9  gcc/testsuite/gdc.test/runnable/funclit.d
  cd3460f4f8ea6492872be4c43912f1fd  gcc/testsuite/gdc.test/runnable/functype.d
! 976a8be8b48b1d50d5b38d829a14e5c5  gcc/testsuite/gdc.test/runnable/future.d
  8ba368ec10a84a41af028179c76c4879  gcc/testsuite/gdc.test/runnable/hello.d
  92368d5b6d3c89f59b0e43d8dd40c626  gcc/testsuite/gdc.test/runnable/ice10086a.d
  c61bc71df8d1cdfb8e78e010b24dd96f  gcc/testsuite/gdc.test/runnable/ice10086b.d
--- 98354,98362 ----
  040e4fa767a7fc2e188c99cbc64f3de7  gcc/testsuite/gdc.test/runnable/foreach3.d
  2b8527464d5784704510e2c0b53be4e1  gcc/testsuite/gdc.test/runnable/foreach4.d
  2eb363b5efaefe90b9b38cb9c89c7b03  gcc/testsuite/gdc.test/runnable/foreach5.d
! 990c75a2241b6663eb49b9c8c233dfbc  gcc/testsuite/gdc.test/runnable/funclit.d
  cd3460f4f8ea6492872be4c43912f1fd  gcc/testsuite/gdc.test/runnable/functype.d
! 4a6d0505512d18bf34ae0b5baeb7ef62  gcc/testsuite/gdc.test/runnable/future.d
  8ba368ec10a84a41af028179c76c4879  gcc/testsuite/gdc.test/runnable/hello.d
  92368d5b6d3c89f59b0e43d8dd40c626  gcc/testsuite/gdc.test/runnable/ice10086a.d
  c61bc71df8d1cdfb8e78e010b24dd96f  gcc/testsuite/gdc.test/runnable/ice10086b.d
*************** e2c68cb85bc6e5c362db337fa60853dc  gcc/te
*** 91680,91687 ****
  500b3b222fb16eca57daf344179cbdf9  gcc/testsuite/gdc.test/runnable/ice15200.d
  5aadde39caf3871cecbaf4c8000371d8  gcc/testsuite/gdc.test/runnable/ice21696.d
  e5871ac8d80f4ab28dc0d9900e8c84d4  gcc/testsuite/gdc.test/runnable/ice4481.d
! 839b279d8972163cf8fbbe5984e843ed  gcc/testsuite/gdc.test/runnable/ifti.d
! b2a638fd59c70c6028ce9833be90e9de  gcc/testsuite/gdc.test/runnable/implicit.d
  5aa04b8594a3a8247517ccd21012fa33  gcc/testsuite/gdc.test/runnable/imports/A16a.d
  6777d174c4a53a93a3232b69f950410c  gcc/testsuite/gdc.test/runnable/imports/Other.d
  5549289e20c256bd7b6bab2b07484a85  gcc/testsuite/gdc.test/runnable/imports/a11447.d
--- 98367,98374 ----
  500b3b222fb16eca57daf344179cbdf9  gcc/testsuite/gdc.test/runnable/ice15200.d
  5aadde39caf3871cecbaf4c8000371d8  gcc/testsuite/gdc.test/runnable/ice21696.d
  e5871ac8d80f4ab28dc0d9900e8c84d4  gcc/testsuite/gdc.test/runnable/ice4481.d
! a485654eeaa50c4a5573e9f220e389a0  gcc/testsuite/gdc.test/runnable/ifti.d
! 0e3ff7dafc79ee8e14122b1b1d834baf  gcc/testsuite/gdc.test/runnable/implicit.d
  5aa04b8594a3a8247517ccd21012fa33  gcc/testsuite/gdc.test/runnable/imports/A16a.d
  6777d174c4a53a93a3232b69f950410c  gcc/testsuite/gdc.test/runnable/imports/Other.d
  5549289e20c256bd7b6bab2b07484a85  gcc/testsuite/gdc.test/runnable/imports/a11447.d
*************** a688286886ef47916b6432c5bbf64c47  gcc/te
*** 91726,91732 ****
  0bc885dd3769b66c2f64fd38a06959e0  gcc/testsuite/gdc.test/runnable/imports/ice4481b.d
  74242c5fe048c276a07b28120f26bbaa  gcc/testsuite/gdc.test/runnable/imports/imp22624.c
  35ebabf1e65977d51fc57b3029c82a54  gcc/testsuite/gdc.test/runnable/imports/inc11239.d
! 4b060a238d618674eb7ab3b1300dc598  gcc/testsuite/gdc.test/runnable/imports/issue18919b.d
  55b146ef5f7d3816eddddae776ea1e88  gcc/testsuite/gdc.test/runnable/imports/link10920a.d
  f65fa81a7d44f704110fe3fb64b12464  gcc/testsuite/gdc.test/runnable/imports/link11069x.d
  685c44d078204f0b0f58b413e74bdaa2  gcc/testsuite/gdc.test/runnable/imports/link11069y.d
--- 98413,98419 ----
  0bc885dd3769b66c2f64fd38a06959e0  gcc/testsuite/gdc.test/runnable/imports/ice4481b.d
  74242c5fe048c276a07b28120f26bbaa  gcc/testsuite/gdc.test/runnable/imports/imp22624.c
  35ebabf1e65977d51fc57b3029c82a54  gcc/testsuite/gdc.test/runnable/imports/inc11239.d
! fc37e5ae31019b3fbc1645910ca31267  gcc/testsuite/gdc.test/runnable/imports/issue18919b.d
  55b146ef5f7d3816eddddae776ea1e88  gcc/testsuite/gdc.test/runnable/imports/link10920a.d
  f65fa81a7d44f704110fe3fb64b12464  gcc/testsuite/gdc.test/runnable/imports/link11069x.d
  685c44d078204f0b0f58b413e74bdaa2  gcc/testsuite/gdc.test/runnable/imports/link11069y.d
*************** a305f38185c19e44854b21bca63aaf6b  gcc/te
*** 91820,91825 ****
--- 98507,98513 ----
  78ef38f796e92d249f3705bc93edc5ef  gcc/testsuite/gdc.test/runnable/imports/test19655f.d
  693e91254494329e0864e62720f90e12  gcc/testsuite/gdc.test/runnable/imports/test19655g.d
  38a5c5a8961efeb002ed2bd91995c376  gcc/testsuite/gdc.test/runnable/imports/test21a.d
+ 177e91baf1ebfb82f9a69e5ec832ee86  gcc/testsuite/gdc.test/runnable/imports/test23722_2b.d
  f5ea70e73666f46c9116afcc29aa9aad  gcc/testsuite/gdc.test/runnable/imports/test24a.d
  a97055119d4d6743063b35f911ab509c  gcc/testsuite/gdc.test/runnable/imports/test24b.d
  737801af540fe795c1752851a57d01d1  gcc/testsuite/gdc.test/runnable/imports/test24c.d
*************** ca24fa67843e9b5f04f6e36b4156cd09  gcc/te
*** 91879,91894 ****
  30066aead22b067c75e067db19484762  gcc/testsuite/gdc.test/runnable/interpret2.d
  8e5a2ed2af9dfcc61cdfcfe2e2c82869  gcc/testsuite/gdc.test/runnable/issue11070.d
  34bbbe816cec89b7cf9ad1cf88a3c866  gcc/testsuite/gdc.test/runnable/issue16995.d
! f0478da89fdf8934e56b435447413685  gcc/testsuite/gdc.test/runnable/issue18919.d
  22cd3fa4fa361ef6a17f82ff75cfbf34  gcc/testsuite/gdc.test/runnable/issue22854.d
  39d18e20e5c1d7b9153e30efdfadb6c4  gcc/testsuite/gdc.test/runnable/issue24168.d
  2afa6e0cfd5b3f47cf1ee026309b0a30  gcc/testsuite/gdc.test/runnable/issue24401.d
  e1eb800c5f1d023be3e43f4f5e34d2e2  gcc/testsuite/gdc.test/runnable/lazy.d
  39e7e24e679fa283298fb63c41528a27  gcc/testsuite/gdc.test/runnable/ldc_github_1677.d
! f0cf9a68c1903b04bf5aadb7a1411722  gcc/testsuite/gdc.test/runnable/lexer.d
  c6a55d78b59d8b3a56af4a85a78a40f3  gcc/testsuite/gdc.test/runnable/link10425.d
  6f384d861e8f7b136caa11a726124bb8  gcc/testsuite/gdc.test/runnable/link10920.d
! 94f5a6371aec5241226bf8b2eeb5748c  gcc/testsuite/gdc.test/runnable/link11069a.d
  ab4716e92b354e5a13e2b7bd51337467  gcc/testsuite/gdc.test/runnable/link11069b.d
  5fa2e27a72c963dc3b7c0ab17eb6b6db  gcc/testsuite/gdc.test/runnable/link11127.d
  0b062fb5a72b2492dd1d6bc6b2253b33  gcc/testsuite/gdc.test/runnable/link11395.d
--- 98567,98582 ----
  30066aead22b067c75e067db19484762  gcc/testsuite/gdc.test/runnable/interpret2.d
  8e5a2ed2af9dfcc61cdfcfe2e2c82869  gcc/testsuite/gdc.test/runnable/issue11070.d
  34bbbe816cec89b7cf9ad1cf88a3c866  gcc/testsuite/gdc.test/runnable/issue16995.d
! e48c402ca69b796fd05c63bb3760b2a1  gcc/testsuite/gdc.test/runnable/issue18919.d
  22cd3fa4fa361ef6a17f82ff75cfbf34  gcc/testsuite/gdc.test/runnable/issue22854.d
  39d18e20e5c1d7b9153e30efdfadb6c4  gcc/testsuite/gdc.test/runnable/issue24168.d
  2afa6e0cfd5b3f47cf1ee026309b0a30  gcc/testsuite/gdc.test/runnable/issue24401.d
  e1eb800c5f1d023be3e43f4f5e34d2e2  gcc/testsuite/gdc.test/runnable/lazy.d
  39e7e24e679fa283298fb63c41528a27  gcc/testsuite/gdc.test/runnable/ldc_github_1677.d
! 24d8a4efeb296422bafee4dcf1123ec9  gcc/testsuite/gdc.test/runnable/lexer.d
  c6a55d78b59d8b3a56af4a85a78a40f3  gcc/testsuite/gdc.test/runnable/link10425.d
  6f384d861e8f7b136caa11a726124bb8  gcc/testsuite/gdc.test/runnable/link10920.d
! 4360454a0ec9a2be4089825965ce9b83  gcc/testsuite/gdc.test/runnable/link11069a.d
  ab4716e92b354e5a13e2b7bd51337467  gcc/testsuite/gdc.test/runnable/link11069b.d
  5fa2e27a72c963dc3b7c0ab17eb6b6db  gcc/testsuite/gdc.test/runnable/link11127.d
  0b062fb5a72b2492dd1d6bc6b2253b33  gcc/testsuite/gdc.test/runnable/link11395.d
*************** de49afc81619132c42da7397f97d9a60  gcc/te
*** 91920,91964 ****
  0a37bc73952dd77becd57ac13c3f6ecc  gcc/testsuite/gdc.test/runnable/link8023.d
  9839759f567581a590e6b00f9c3ad9f5  gcc/testsuite/gdc.test/runnable/link9571.d
  036745f647d305676a64fb35f0c2b069  gcc/testsuite/gdc.test/runnable/linktypeinfo.d
! b9d8959dd100c0cd424819482909edca  gcc/testsuite/gdc.test/runnable/literal.d
  2893d202561d15a06d968f2ccb049544  gcc/testsuite/gdc.test/runnable/loopunroll.d
  f937e0b38b1fcd4d891537f30945028b  gcc/testsuite/gdc.test/runnable/m1.d
  e9f9b0b614372eb03b080d1810c3f513  gcc/testsuite/gdc.test/runnable/manboy.d
! cec29702d96c7c293286fd384283d519  gcc/testsuite/gdc.test/runnable/mangle.d
! 424ea9650bdc5fbd113698c7d97c8c06  gcc/testsuite/gdc.test/runnable/mars1.d
  f5a8b23b5d0c5c59024767c78dcf9071  gcc/testsuite/gdc.test/runnable/minimal.d
  c00ebdf5e3409a5e0d41bc91f1bc7c13  gcc/testsuite/gdc.test/runnable/minimal2.d
! b8644719888d00737d3b529d8b3ebe1c  gcc/testsuite/gdc.test/runnable/mixin1.d
  abb06b3df362afe29e8eb361582e78d9  gcc/testsuite/gdc.test/runnable/mixin2.d
  17668752a24808140dc9b4f2fe62174d  gcc/testsuite/gdc.test/runnable/mod1.d
  93837ff6a8edd395fed58c76349926d3  gcc/testsuite/gdc.test/runnable/nan.d
  ff83e87b097613a3fe18f1fab4e9685e  gcc/testsuite/gdc.test/runnable/nested.d
  b8f16b2144f8d28d3626e8fa9dafc16f  gcc/testsuite/gdc.test/runnable/newaa.d
! ec4aa7081910ad016b0d017d00cccb65  gcc/testsuite/gdc.test/runnable/newdel.d
! 569632f136656f3a207d3dad0dc53cfd  gcc/testsuite/gdc.test/runnable/nogc.d
  bc244cd860e0a19a225785138b807918  gcc/testsuite/gdc.test/runnable/noreturn1.d
! 6533db66957bc420210064a73aebaa14  gcc/testsuite/gdc.test/runnable/noreturn2.d
! 0c4f02fcbf74ce184c17d425ff374a00  gcc/testsuite/gdc.test/runnable/nrvo.d
  03897e35749dc0677dab013ba59cd344  gcc/testsuite/gdc.test/runnable/nulltype.d
  ae6003d98ffb6553fca10defa56d61ca  gcc/testsuite/gdc.test/runnable/opdisp.d
! ba398cb335fae279b907d3b8a8b2dcb8  gcc/testsuite/gdc.test/runnable/opover.d
  143fe97fc80962b419313f8a9a5ca8c6  gcc/testsuite/gdc.test/runnable/opover2.d
  9cf6d58bb7e64c71cbc72374f1007933  gcc/testsuite/gdc.test/runnable/opover3.d
  3f595d4c7a383a431b3773fec062cab9  gcc/testsuite/gdc.test/runnable/overload.d
  c4e996cd3850a6ed5cd0b4537df85ad3  gcc/testsuite/gdc.test/runnable/pi.d
  671e921d7ba20a1141f56c07be62b586  gcc/testsuite/gdc.test/runnable/polysemous.d
  6bc5534b2826fefdc2676bb4a74dbef9  gcc/testsuite/gdc.test/runnable/previewin.d
  e43ef772308df8da7da44ca398d5ec99  gcc/testsuite/gdc.test/runnable/printargs.d
  0b3b6c33585693f7d9ec1f1c160c5eee  gcc/testsuite/gdc.test/runnable/property.d
  31fe12e44df9411731e4ef3d72fb4ba7  gcc/testsuite/gdc.test/runnable/property2.d
  4ad36392d16823994c6a7ca8d3899c50  gcc/testsuite/gdc.test/runnable/pubprivtmpl.d
! 33a912b1c165a4a7f5acaa3ff08d2194  gcc/testsuite/gdc.test/runnable/runnable.exp
  8323b83c1399a259f3d262fb199b2205  gcc/testsuite/gdc.test/runnable/s2ir.d
  96d633524d2f75b8d82fcd0a5331a249  gcc/testsuite/gdc.test/runnable/sctor.d
  89fdd86c8139312e4c554792b0cf02be  gcc/testsuite/gdc.test/runnable/sctor2.d
! 8031505cb94112cdf2caa90e81eeff2e  gcc/testsuite/gdc.test/runnable/sdtor.d
  493987b1f414fd9708186d61ca59520a  gcc/testsuite/gdc.test/runnable/standalone_modctor.d
! 4cafcd7ae7010023a2b3f21b1b87d143  gcc/testsuite/gdc.test/runnable/staticaa.d
  75cf9f0bc1b0762705a8a2b6eb89811e  gcc/testsuite/gdc.test/runnable/staticforeach.d
  f73d5e95eed9a6db4b396ed99ff5b347  gcc/testsuite/gdc.test/runnable/statictor.d
  3b4fa0c8027d36ae9ebdc2e436b4ff04  gcc/testsuite/gdc.test/runnable/stress.d
--- 98608,98654 ----
  0a37bc73952dd77becd57ac13c3f6ecc  gcc/testsuite/gdc.test/runnable/link8023.d
  9839759f567581a590e6b00f9c3ad9f5  gcc/testsuite/gdc.test/runnable/link9571.d
  036745f647d305676a64fb35f0c2b069  gcc/testsuite/gdc.test/runnable/linktypeinfo.d
! e041b1e4a58fab7adb641895e58bfae9  gcc/testsuite/gdc.test/runnable/literal.d
  2893d202561d15a06d968f2ccb049544  gcc/testsuite/gdc.test/runnable/loopunroll.d
  f937e0b38b1fcd4d891537f30945028b  gcc/testsuite/gdc.test/runnable/m1.d
  e9f9b0b614372eb03b080d1810c3f513  gcc/testsuite/gdc.test/runnable/manboy.d
! d24d09db909070bae7a41375df4c3e2b  gcc/testsuite/gdc.test/runnable/mangle.d
! 0a5fc1669b07bb86728a75d0b19257ca  gcc/testsuite/gdc.test/runnable/mars1.d
  f5a8b23b5d0c5c59024767c78dcf9071  gcc/testsuite/gdc.test/runnable/minimal.d
  c00ebdf5e3409a5e0d41bc91f1bc7c13  gcc/testsuite/gdc.test/runnable/minimal2.d
! 15dc2b4cca078287d66d6822d1363981  gcc/testsuite/gdc.test/runnable/mixin1.d
  abb06b3df362afe29e8eb361582e78d9  gcc/testsuite/gdc.test/runnable/mixin2.d
  17668752a24808140dc9b4f2fe62174d  gcc/testsuite/gdc.test/runnable/mod1.d
  93837ff6a8edd395fed58c76349926d3  gcc/testsuite/gdc.test/runnable/nan.d
  ff83e87b097613a3fe18f1fab4e9685e  gcc/testsuite/gdc.test/runnable/nested.d
  b8f16b2144f8d28d3626e8fa9dafc16f  gcc/testsuite/gdc.test/runnable/newaa.d
! 73304a0d87621a815c9f67bc3957e5a3  gcc/testsuite/gdc.test/runnable/newdel.d
! 9e9d69e73c462afc25287895fa6999c9  gcc/testsuite/gdc.test/runnable/nogc.d
  bc244cd860e0a19a225785138b807918  gcc/testsuite/gdc.test/runnable/noreturn1.d
! 94740620eb6671658deb17f015ab280e  gcc/testsuite/gdc.test/runnable/noreturn2.d
! 4ddffe568a5a604293830865cf0b15b8  gcc/testsuite/gdc.test/runnable/nrvo.d
  03897e35749dc0677dab013ba59cd344  gcc/testsuite/gdc.test/runnable/nulltype.d
  ae6003d98ffb6553fca10defa56d61ca  gcc/testsuite/gdc.test/runnable/opdisp.d
! ec655df78151c45375a7f8b78ae27bcf  gcc/testsuite/gdc.test/runnable/opover.d
  143fe97fc80962b419313f8a9a5ca8c6  gcc/testsuite/gdc.test/runnable/opover2.d
  9cf6d58bb7e64c71cbc72374f1007933  gcc/testsuite/gdc.test/runnable/opover3.d
  3f595d4c7a383a431b3773fec062cab9  gcc/testsuite/gdc.test/runnable/overload.d
  c4e996cd3850a6ed5cd0b4537df85ad3  gcc/testsuite/gdc.test/runnable/pi.d
+ 263ddf76df9114f26067d1bdb3ef0490  gcc/testsuite/gdc.test/runnable/placenew.d
  671e921d7ba20a1141f56c07be62b586  gcc/testsuite/gdc.test/runnable/polysemous.d
  6bc5534b2826fefdc2676bb4a74dbef9  gcc/testsuite/gdc.test/runnable/previewin.d
  e43ef772308df8da7da44ca398d5ec99  gcc/testsuite/gdc.test/runnable/printargs.d
  0b3b6c33585693f7d9ec1f1c160c5eee  gcc/testsuite/gdc.test/runnable/property.d
  31fe12e44df9411731e4ef3d72fb4ba7  gcc/testsuite/gdc.test/runnable/property2.d
  4ad36392d16823994c6a7ca8d3899c50  gcc/testsuite/gdc.test/runnable/pubprivtmpl.d
! e0cb68df79be2dd9e55d3b3fb737aa4c  gcc/testsuite/gdc.test/runnable/runnable.exp
! 97f633e772a00f39bf34b28b7804e960  gcc/testsuite/gdc.test/runnable/rvalue1.d
  8323b83c1399a259f3d262fb199b2205  gcc/testsuite/gdc.test/runnable/s2ir.d
  96d633524d2f75b8d82fcd0a5331a249  gcc/testsuite/gdc.test/runnable/sctor.d
  89fdd86c8139312e4c554792b0cf02be  gcc/testsuite/gdc.test/runnable/sctor2.d
! 02266f96003005899efff443e0594f2a  gcc/testsuite/gdc.test/runnable/sdtor.d
  493987b1f414fd9708186d61ca59520a  gcc/testsuite/gdc.test/runnable/standalone_modctor.d
! 9cf1be8b8525b8df3fb9860f8ab1e22d  gcc/testsuite/gdc.test/runnable/staticaa.d
  75cf9f0bc1b0762705a8a2b6eb89811e  gcc/testsuite/gdc.test/runnable/staticforeach.d
  f73d5e95eed9a6db4b396ed99ff5b347  gcc/testsuite/gdc.test/runnable/statictor.d
  3b4fa0c8027d36ae9ebdc2e436b4ff04  gcc/testsuite/gdc.test/runnable/stress.d
*************** f73d5e95eed9a6db4b396ed99ff5b347  gcc/te
*** 91967,91973 ****
  415d0f5479b379a2060b96d579202da6  gcc/testsuite/gdc.test/runnable/template13478.d
  69d08426f0323e8fbc44d4d87fa314c4  gcc/testsuite/gdc.test/runnable/template2.d
  c67680cbb0418c1b03462bc82e84c512  gcc/testsuite/gdc.test/runnable/template2962.d
! 281244ea9f67146dc16caf6a24dd1e9e  gcc/testsuite/gdc.test/runnable/template3.d
  b264e56ec823b77824223c7435498b7d  gcc/testsuite/gdc.test/runnable/template4.d
  a2b15bcca5ded36d826ccac559bfe9fc  gcc/testsuite/gdc.test/runnable/template8.d
  3206488f6d7f5436e3da2cac2222d366  gcc/testsuite/gdc.test/runnable/template9.d
--- 98657,98663 ----
  415d0f5479b379a2060b96d579202da6  gcc/testsuite/gdc.test/runnable/template13478.d
  69d08426f0323e8fbc44d4d87fa314c4  gcc/testsuite/gdc.test/runnable/template2.d
  c67680cbb0418c1b03462bc82e84c512  gcc/testsuite/gdc.test/runnable/template2962.d
! 5b81345d7ef03f9c02b13172e567dfea  gcc/testsuite/gdc.test/runnable/template3.d
  b264e56ec823b77824223c7435498b7d  gcc/testsuite/gdc.test/runnable/template4.d
  a2b15bcca5ded36d826ccac559bfe9fc  gcc/testsuite/gdc.test/runnable/template8.d
  3206488f6d7f5436e3da2cac2222d366  gcc/testsuite/gdc.test/runnable/template9.d
*************** a8b12dd81817832e6cf48b3b4dfc1b0d  gcc/te
*** 91987,92005 ****
  88295e6c0c689cfc4c66c329993aa3b8  gcc/testsuite/gdc.test/runnable/test11745.d
  0bc064ff727a51f85c5184d979f4cb4a  gcc/testsuite/gdc.test/runnable/test11863.d
  b2c48d8d06dcc7e25ae9915f1429552a  gcc/testsuite/gdc.test/runnable/test11934.d
! 6545ca0348c90e86210402f09169b791  gcc/testsuite/gdc.test/runnable/test12.d
  24bffeb65b6c7e6a676474a93881e38b  gcc/testsuite/gdc.test/runnable/test12197.d
  202dae67070cf723e47a96e989d5f25e  gcc/testsuite/gdc.test/runnable/test12486.d
  16a07b686ac8b8e2491612e30ac0c4a3  gcc/testsuite/gdc.test/runnable/test12874.d
  6573ec68917e307cc116d1430c8f9f6f  gcc/testsuite/gdc.test/runnable/test13.d
  c127f917319e0c5b2681b84b2119629d  gcc/testsuite/gdc.test/runnable/test13504.d
! effc757efd459e4515ba09f1a28b7f80  gcc/testsuite/gdc.test/runnable/test13613.d
  6d56b76e8ad5c4e191b11e22fdb8a97d  gcc/testsuite/gdc.test/runnable/test13944.d
  d6bfcb0ab1afec471863af71a1556923  gcc/testsuite/gdc.test/runnable/test14613.d
  a1d14de2b2f577f8dc953dac9a6643d9  gcc/testsuite/gdc.test/runnable/test14874.d
  1c4c5f1d8ea6b04c00cc12d708821002  gcc/testsuite/gdc.test/runnable/test14901.d
  5d698de30965398370cd581d6c718e53  gcc/testsuite/gdc.test/runnable/test14903.d
! 65fe6d77f227d0bfd4513553993375d0  gcc/testsuite/gdc.test/runnable/test15.d
  4f7ea61ced656c7d2d03d50fc465b2a4  gcc/testsuite/gdc.test/runnable/test15079.d
  4ae407721b81ee554a37d37b701781d9  gcc/testsuite/gdc.test/runnable/test15373.d
  ae3d3c58af7ef6c64cdc93414ba57022  gcc/testsuite/gdc.test/runnable/test15568.d
--- 98677,98695 ----
  88295e6c0c689cfc4c66c329993aa3b8  gcc/testsuite/gdc.test/runnable/test11745.d
  0bc064ff727a51f85c5184d979f4cb4a  gcc/testsuite/gdc.test/runnable/test11863.d
  b2c48d8d06dcc7e25ae9915f1429552a  gcc/testsuite/gdc.test/runnable/test11934.d
! d034c59f452e9738e9923330e919d98b  gcc/testsuite/gdc.test/runnable/test12.d
  24bffeb65b6c7e6a676474a93881e38b  gcc/testsuite/gdc.test/runnable/test12197.d
  202dae67070cf723e47a96e989d5f25e  gcc/testsuite/gdc.test/runnable/test12486.d
  16a07b686ac8b8e2491612e30ac0c4a3  gcc/testsuite/gdc.test/runnable/test12874.d
  6573ec68917e307cc116d1430c8f9f6f  gcc/testsuite/gdc.test/runnable/test13.d
  c127f917319e0c5b2681b84b2119629d  gcc/testsuite/gdc.test/runnable/test13504.d
! 0941bd5f9279d33a0fe517370eb6a5ae  gcc/testsuite/gdc.test/runnable/test13613.d
  6d56b76e8ad5c4e191b11e22fdb8a97d  gcc/testsuite/gdc.test/runnable/test13944.d
  d6bfcb0ab1afec471863af71a1556923  gcc/testsuite/gdc.test/runnable/test14613.d
  a1d14de2b2f577f8dc953dac9a6643d9  gcc/testsuite/gdc.test/runnable/test14874.d
  1c4c5f1d8ea6b04c00cc12d708821002  gcc/testsuite/gdc.test/runnable/test14901.d
  5d698de30965398370cd581d6c718e53  gcc/testsuite/gdc.test/runnable/test14903.d
! 17f1f08fd3794d69a19eb65e1b5381ad  gcc/testsuite/gdc.test/runnable/test15.d
  4f7ea61ced656c7d2d03d50fc465b2a4  gcc/testsuite/gdc.test/runnable/test15079.d
  4ae407721b81ee554a37d37b701781d9  gcc/testsuite/gdc.test/runnable/test15373.d
  ae3d3c58af7ef6c64cdc93414ba57022  gcc/testsuite/gdc.test/runnable/test15568.d
*************** d6e1e5269dea90ebb80516ea92c9e793  gcc/te
*** 92022,92029 ****
  3ee5ebbd90042d764bad2934e406437a  gcc/testsuite/gdc.test/runnable/test17246.d
  04a9fdc94ca9047b806f9859f89879b3  gcc/testsuite/gdc.test/runnable/test17258.d
  72abd9516be307601fc1f3e37554bd23  gcc/testsuite/gdc.test/runnable/test17337.d
! 34fed78576a745da3357f20271550f18  gcc/testsuite/gdc.test/runnable/test17338.d
! e50e78709b67b0c2eaa1360860475c53  gcc/testsuite/gdc.test/runnable/test17559.d
  e5d2a1faae0312068b5e33dbb985b301  gcc/testsuite/gdc.test/runnable/test17684.d
  9c25e2ca51aa326febdf0d4f36e1c245  gcc/testsuite/gdc.test/runnable/test17868.d
  61809efb0fcc1a93b897576650b9c5c1  gcc/testsuite/gdc.test/runnable/test17868b.d
--- 98712,98719 ----
  3ee5ebbd90042d764bad2934e406437a  gcc/testsuite/gdc.test/runnable/test17246.d
  04a9fdc94ca9047b806f9859f89879b3  gcc/testsuite/gdc.test/runnable/test17258.d
  72abd9516be307601fc1f3e37554bd23  gcc/testsuite/gdc.test/runnable/test17337.d
! fe612a16687aaab1a8d0ebe237ee0116  gcc/testsuite/gdc.test/runnable/test17338.d
! 48ebd78546a1dbb7ff35f9295d334626  gcc/testsuite/gdc.test/runnable/test17559.d
  e5d2a1faae0312068b5e33dbb985b301  gcc/testsuite/gdc.test/runnable/test17684.d
  9c25e2ca51aa326febdf0d4f36e1c245  gcc/testsuite/gdc.test/runnable/test17868.d
  61809efb0fcc1a93b897576650b9c5c1  gcc/testsuite/gdc.test/runnable/test17868b.d
*************** a767b6f5b2f11844ad3eefab8ef4ec75  gcc/te
*** 92047,92053 ****
  e10e47c461aeef23024b38c1fb47af93  gcc/testsuite/gdc.test/runnable/test18916.d
  be9480664230fce009c57f0ac063312c  gcc/testsuite/gdc.test/runnable/test18973.d
  4ad192e8a7827586e9204fcaea15cd8a  gcc/testsuite/gdc.test/runnable/test19.d
! 59dd98fa3a3a4e31603f6febee3ceca6  gcc/testsuite/gdc.test/runnable/test19086.d
  1948916b829a4357d04c98b757488f64  gcc/testsuite/gdc.test/runnable/test19122.d
  a1acded813bb656c7a71a323b7c12609  gcc/testsuite/gdc.test/runnable/test19185.d
  7076e5a2b942b063e6c531b3e076448e  gcc/testsuite/gdc.test/runnable/test19192.d
--- 98737,98743 ----
  e10e47c461aeef23024b38c1fb47af93  gcc/testsuite/gdc.test/runnable/test18916.d
  be9480664230fce009c57f0ac063312c  gcc/testsuite/gdc.test/runnable/test18973.d
  4ad192e8a7827586e9204fcaea15cd8a  gcc/testsuite/gdc.test/runnable/test19.d
! d1649cc27c2e2f943a4e1daafa96397b  gcc/testsuite/gdc.test/runnable/test19086.d
  1948916b829a4357d04c98b757488f64  gcc/testsuite/gdc.test/runnable/test19122.d
  a1acded813bb656c7a71a323b7c12609  gcc/testsuite/gdc.test/runnable/test19185.d
  7076e5a2b942b063e6c531b3e076448e  gcc/testsuite/gdc.test/runnable/test19192.d
*************** e6dc6eaf864a06c95c44147f94d7b6e8  gcc/te
*** 92088,92093 ****
--- 98778,98784 ----
  a1baf96919b413733cceceba4d005ad7  gcc/testsuite/gdc.test/runnable/test20855.d
  df5295a7feb17c4c53da844e70aa21e3  gcc/testsuite/gdc.test/runnable/test20893.d
  4b3d63ce3f716d2619996a6ed10a0346  gcc/testsuite/gdc.test/runnable/test21.d
+ 2ba7ec15da0aa6098ecf2cd79db5fd3b  gcc/testsuite/gdc.test/runnable/test21020.d
  7b3442f146687dcc372c3394881b4702  gcc/testsuite/gdc.test/runnable/test21039.d
  93b706863e29cf772712909183dbfede  gcc/testsuite/gdc.test/runnable/test21040.d
  64d7b02bd6dc7a0cd12b0af9e8070e9c  gcc/testsuite/gdc.test/runnable/test21120.d
*************** a4f94c1d976d5924615a341b59c02cff  gcc/te
*** 92116,92121 ****
--- 98807,98813 ----
  4e7e9eefc89ca412abd98b785f5b0e5a  gcc/testsuite/gdc.test/runnable/test22945.d
  7b9b70b26722ff45da43cbea96c9804e  gcc/testsuite/gdc.test/runnable/test23.d
  a63f3b63c344065bc882c726d79ee3f1  gcc/testsuite/gdc.test/runnable/test23010.d
+ c550e351289d2bebb4185fa738b9214d  gcc/testsuite/gdc.test/runnable/test23036.d
  b760c0e7d084ffeb0648627187c08bb7  gcc/testsuite/gdc.test/runnable/test23083.d
  138e2256ce1c1f5109950477b38499c7  gcc/testsuite/gdc.test/runnable/test23181.d
  ed4925b273407fe3c1b1f148d9bb1dac  gcc/testsuite/gdc.test/runnable/test23234.d
*************** ac0de3cd831fa9321b2ebae86fec2b7a  gcc/te
*** 92124,92139 ****
  725fa25201e68aa6b98b05a137d7b938  gcc/testsuite/gdc.test/runnable/test23387.d
  320c8d02d889b47038ffa0c7a664676a  gcc/testsuite/gdc.test/runnable/test23514.d
  df806f23213b2694036b38addf890cbb  gcc/testsuite/gdc.test/runnable/test23618.d
- b3ebc400243b9885ee707960762bbfb8  gcc/testsuite/gdc.test/runnable/test23650.d
  597d86763224d5b7f6426c4144960da6  gcc/testsuite/gdc.test/runnable/test23710.d
  7f93e42150b5bd509dc8c3d45bb5a04c  gcc/testsuite/gdc.test/runnable/test23837.d
  499c510da59fda55284f050089a11815  gcc/testsuite/gdc.test/runnable/test23959.d
  3d69f9a9a0381cb5e164fd3a019c94ae  gcc/testsuite/gdc.test/runnable/test24.d
- 6fb33975280052ec02aa3c28a17b1933  gcc/testsuite/gdc.test/runnable/test24029.c
  f04e3db1a091988361115611006146e0  gcc/testsuite/gdc.test/runnable/test24078.d
  8d05c8b1ad205068209b94c4a513870e  gcc/testsuite/gdc.test/runnable/test24139.d
  8032e2df699448521296d10a3405072c  gcc/testsuite/gdc.test/runnable/test24184.d
  9426b90cab4ea9a6f2a4ec046dd8a62a  gcc/testsuite/gdc.test/runnable/test24371.d
  19afe194dcce9c253540c7831e8f23a2  gcc/testsuite/gdc.test/runnable/test27.d
  907370082d6caa9ac241999ae9143c37  gcc/testsuite/gdc.test/runnable/test28.d
  29e2b1f92dca63b5a1e49cedf1c77026  gcc/testsuite/gdc.test/runnable/test29.d
--- 98816,98834 ----
  725fa25201e68aa6b98b05a137d7b938  gcc/testsuite/gdc.test/runnable/test23387.d
  320c8d02d889b47038ffa0c7a664676a  gcc/testsuite/gdc.test/runnable/test23514.d
  df806f23213b2694036b38addf890cbb  gcc/testsuite/gdc.test/runnable/test23618.d
  597d86763224d5b7f6426c4144960da6  gcc/testsuite/gdc.test/runnable/test23710.d
+ 810d8cbd0744760ea6aa893d390531a8  gcc/testsuite/gdc.test/runnable/test23722_2.d
  7f93e42150b5bd509dc8c3d45bb5a04c  gcc/testsuite/gdc.test/runnable/test23837.d
  499c510da59fda55284f050089a11815  gcc/testsuite/gdc.test/runnable/test23959.d
  3d69f9a9a0381cb5e164fd3a019c94ae  gcc/testsuite/gdc.test/runnable/test24.d
  f04e3db1a091988361115611006146e0  gcc/testsuite/gdc.test/runnable/test24078.d
  8d05c8b1ad205068209b94c4a513870e  gcc/testsuite/gdc.test/runnable/test24139.d
  8032e2df699448521296d10a3405072c  gcc/testsuite/gdc.test/runnable/test24184.d
  9426b90cab4ea9a6f2a4ec046dd8a62a  gcc/testsuite/gdc.test/runnable/test24371.d
+ 9f3d7a40c24a8f9a20913ad3eddf6cec  gcc/testsuite/gdc.test/runnable/test24498.d
+ a02b38929f80793790180f89ef3156fe  gcc/testsuite/gdc.test/runnable/test24599.d
+ 6888aff994544ace3f7e0ac79dafeeba  gcc/testsuite/gdc.test/runnable/test24819.d
+ e43b4cf71ecb19e496e033806a50978e  gcc/testsuite/gdc.test/runnable/test24884.d
  19afe194dcce9c253540c7831e8f23a2  gcc/testsuite/gdc.test/runnable/test27.d
  907370082d6caa9ac241999ae9143c37  gcc/testsuite/gdc.test/runnable/test28.d
  29e2b1f92dca63b5a1e49cedf1c77026  gcc/testsuite/gdc.test/runnable/test29.d
*************** acf377237fec892f5c1159809ac7709c  gcc/te
*** 92177,92183 ****
  3158ce3db0d67c0b94f8024d259ce775  gcc/testsuite/gdc.test/runnable/test7603.d
  1eabae1cd558093128de20e6d675d96d  gcc/testsuite/gdc.test/runnable/test7618.d
  ce6cf8164fad9df68b3ccc79b5e863f2  gcc/testsuite/gdc.test/runnable/test7932.d
! 6aea08be9ded3ba38bd1ee72bd9cee62  gcc/testsuite/gdc.test/runnable/test8.d
  e1716e5ff142d969d9b796e919518753  gcc/testsuite/gdc.test/runnable/test809.d
  15901f42e795f075bc95b5748ecce8c3  gcc/testsuite/gdc.test/runnable/test8182.d
  19bfd17af52c21a9d8220c7098ad9015  gcc/testsuite/gdc.test/runnable/test8544.d
--- 98872,98878 ----
  3158ce3db0d67c0b94f8024d259ce775  gcc/testsuite/gdc.test/runnable/test7603.d
  1eabae1cd558093128de20e6d675d96d  gcc/testsuite/gdc.test/runnable/test7618.d
  ce6cf8164fad9df68b3ccc79b5e863f2  gcc/testsuite/gdc.test/runnable/test7932.d
! aadcf7cad1d8a74d1ffe37df1ddc5486  gcc/testsuite/gdc.test/runnable/test8.d
  e1716e5ff142d969d9b796e919518753  gcc/testsuite/gdc.test/runnable/test809.d
  15901f42e795f075bc95b5748ecce8c3  gcc/testsuite/gdc.test/runnable/test8182.d
  19bfd17af52c21a9d8220c7098ad9015  gcc/testsuite/gdc.test/runnable/test8544.d
*************** a36fae813a6f89e1190c485e88612051  gcc/te
*** 92191,92197 ****
  260a12227aa14fbfc0f873ac59b4b56e  gcc/testsuite/gdc.test/runnable/test_dip1006.d
  485f2946d7bdaf0ea4b8db7b7d178772  gcc/testsuite/gdc.test/runnable/test_dip1006b.d
  64823d97fc941d462f398d0b7bcbe896  gcc/testsuite/gdc.test/runnable/testaa.d
! 892b49ea5dd4f0e53e0faadc8b0577fb  gcc/testsuite/gdc.test/runnable/testaa2.d
  ee3edf61584e85f05e7e74c7c7c5a8b3  gcc/testsuite/gdc.test/runnable/testaa3.d
  3f7c65678e5e6729e1c6bc9fe1965999  gcc/testsuite/gdc.test/runnable/testaliascast.d
  eeb45913ea76b2a0c6255a669d3edb7e  gcc/testsuite/gdc.test/runnable/testappend.d
--- 98886,98892 ----
  260a12227aa14fbfc0f873ac59b4b56e  gcc/testsuite/gdc.test/runnable/test_dip1006.d
  485f2946d7bdaf0ea4b8db7b7d178772  gcc/testsuite/gdc.test/runnable/test_dip1006b.d
  64823d97fc941d462f398d0b7bcbe896  gcc/testsuite/gdc.test/runnable/testaa.d
! e66ed76c60ed957e6703500644062169  gcc/testsuite/gdc.test/runnable/testaa2.d
  ee3edf61584e85f05e7e74c7c7c5a8b3  gcc/testsuite/gdc.test/runnable/testaa3.d
  3f7c65678e5e6729e1c6bc9fe1965999  gcc/testsuite/gdc.test/runnable/testaliascast.d
  eeb45913ea76b2a0c6255a669d3edb7e  gcc/testsuite/gdc.test/runnable/testappend.d
*************** d4b8fc507dc0ddd3ca7b3066a52e32e1  gcc/te
*** 92217,92223 ****
  75351cd126af64a558dbdd6e40e6a87c  gcc/testsuite/gdc.test/runnable/testgc2.d
  7427aee7adf5bff99ac3a7bcf0cf8b2c  gcc/testsuite/gdc.test/runnable/testgc3.d
  d227de13a72016a1e7c390e520da1fb2  gcc/testsuite/gdc.test/runnable/testinvariant.d
! be284d3034b6fdd09b68f8beefd54ee2  gcc/testsuite/gdc.test/runnable/testkeyword.d
  8bb97c5ee53391cea0b3260d426b7dd8  gcc/testsuite/gdc.test/runnable/testline.d
  2072a38b7b38372b3243042a8e7d943d  gcc/testsuite/gdc.test/runnable/testmain.d
  86b91aad4ee5d3a934a4b06efd34a991  gcc/testsuite/gdc.test/runnable/testmainb.d
--- 98912,98918 ----
  75351cd126af64a558dbdd6e40e6a87c  gcc/testsuite/gdc.test/runnable/testgc2.d
  7427aee7adf5bff99ac3a7bcf0cf8b2c  gcc/testsuite/gdc.test/runnable/testgc3.d
  d227de13a72016a1e7c390e520da1fb2  gcc/testsuite/gdc.test/runnable/testinvariant.d
! f4f6caa94cfa832d19c03959b736841b  gcc/testsuite/gdc.test/runnable/testkeyword.d
  8bb97c5ee53391cea0b3260d426b7dd8  gcc/testsuite/gdc.test/runnable/testline.d
  2072a38b7b38372b3243042a8e7d943d  gcc/testsuite/gdc.test/runnable/testmain.d
  86b91aad4ee5d3a934a4b06efd34a991  gcc/testsuite/gdc.test/runnable/testmainb.d
*************** ea6b138a5a50c9283634631f6784ac67  gcc/te
*** 92230,92246 ****
  43d4f7910f480d509db53dcc92b74963  gcc/testsuite/gdc.test/runnable/testptrref_gc.d
  00a451bc4c07b84a223df9f0665137e0  gcc/testsuite/gdc.test/runnable/testreturn.d
  ea09d28ca0f7a07d495d48a79486d5c2  gcc/testsuite/gdc.test/runnable/testrightthis.d
! bbcaf047e3d4dd255a5ce2c1ad881475  gcc/testsuite/gdc.test/runnable/testsafe.d
  d0dc7f6c1e3a712292d48eb9d40557d0  gcc/testsuite/gdc.test/runnable/testscope.d
  75e6e340a8e62745d532ce3ebba47749  gcc/testsuite/gdc.test/runnable/testscope2.d
  d9873070c6dd3e7e2cd42fd2301c2f47  gcc/testsuite/gdc.test/runnable/testswitch.d
! 549bee09a23ec1497b2a8bb0bef44010  gcc/testsuite/gdc.test/runnable/testthread.d
! 1f5dcd73e7af1833e3689de50ad7fec7  gcc/testsuite/gdc.test/runnable/testthread2.d
  6c0892bc90adeacb0d627be71a900f36  gcc/testsuite/gdc.test/runnable/testtypeid.d
! 421ddca899cb4e423532976bd0a645f3  gcc/testsuite/gdc.test/runnable/testv.d
  a057534673f57c614b996fe87140df21  gcc/testsuite/gdc.test/runnable/tls.d
  49432260a0d57c2fe1811c568327d931  gcc/testsuite/gdc.test/runnable/tls_dup.d
! 9fe0d61a2485062546fefc20ca20f72a  gcc/testsuite/gdc.test/runnable/traits.d
  1aa7c9fb4ab4ad34ebee88d73d835029  gcc/testsuite/gdc.test/runnable/traits_child.d
  9be15b72b386165ca16cdf973c293d24  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
--- 98925,98941 ----
  43d4f7910f480d509db53dcc92b74963  gcc/testsuite/gdc.test/runnable/testptrref_gc.d
  00a451bc4c07b84a223df9f0665137e0  gcc/testsuite/gdc.test/runnable/testreturn.d
  ea09d28ca0f7a07d495d48a79486d5c2  gcc/testsuite/gdc.test/runnable/testrightthis.d
! 61ae5027a5905f389d3bbaaf074fd1ff  gcc/testsuite/gdc.test/runnable/testsafe.d
  d0dc7f6c1e3a712292d48eb9d40557d0  gcc/testsuite/gdc.test/runnable/testscope.d
  75e6e340a8e62745d532ce3ebba47749  gcc/testsuite/gdc.test/runnable/testscope2.d
  d9873070c6dd3e7e2cd42fd2301c2f47  gcc/testsuite/gdc.test/runnable/testswitch.d
! 83125109b0b6204ad7bf0fba64a70844  gcc/testsuite/gdc.test/runnable/testthread.d
! d97dcf13fd8b64edaa25d1fcc17bc219  gcc/testsuite/gdc.test/runnable/testthread2.d
  6c0892bc90adeacb0d627be71a900f36  gcc/testsuite/gdc.test/runnable/testtypeid.d
! 3d076b08cc33e43afea2ba8ee69105ea  gcc/testsuite/gdc.test/runnable/testv.d
  a057534673f57c614b996fe87140df21  gcc/testsuite/gdc.test/runnable/tls.d
  49432260a0d57c2fe1811c568327d931  gcc/testsuite/gdc.test/runnable/tls_dup.d
! 614b51d0d9f7f2b21a7aae7f026810a1  gcc/testsuite/gdc.test/runnable/traits.d
  1aa7c9fb4ab4ad34ebee88d73d835029  gcc/testsuite/gdc.test/runnable/traits_child.d
  9be15b72b386165ca16cdf973c293d24  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
*************** f75e70758ecdcd92eb5f200d8337bb7e  gcc/te
*** 92251,92266 ****
  ec04e4ea77bac2e91d90b587323bc296  gcc/testsuite/gdc.test/runnable/ufcs.d
  fad5d6afc8ee199fc52c3d0115ff4dc9  gcc/testsuite/gdc.test/runnable/uniformctor.d
  797041b16b4063f65751920488ee39ef  gcc/testsuite/gdc.test/runnable/unique_typeinfo_names.d
! 3ab6e06841097e73a8cfa9e414bd07b0  gcc/testsuite/gdc.test/runnable/variadic.d
  dd6318894171d606a3a02985c9be449b  gcc/testsuite/gdc.test/runnable/version.d
  3e234d45b8940cdd1392e921db8b08f4  gcc/testsuite/gdc.test/runnable/warning1.d
  c5d22add9745e52907bb2497b9bd620f  gcc/testsuite/gdc.test/runnable/wc.d
  c4ca938331c5dd4dfd6be89a399e767b  gcc/testsuite/gdc.test/runnable/wc2.d
  4d06d3860e7413e844746844806a9595  gcc/testsuite/gdc.test/runnable/wc3.d
! f384c3fcd7c6ad7e5f4cfe528d33e3b1  gcc/testsuite/gdc.test/runnable/whetstone.d
  ec1a2733358dba834de7787de5e3abbc  gcc/testsuite/gdc.test/runnable/xdtor.d
  ac4d0456bb66403e420d8d538a3c7de5  gcc/testsuite/gdc.test/runnable/xpostblit.d
! ad73f33dcc5edd84ac0425e92f89ff96  gcc/testsuite/gdc.test/runnable/xtest46.d
  618063ddef47bd96e8ba0bd68584721e  gcc/testsuite/gdc.test/runnable/xtest46_gc.d
  bbea6b323197c3de8b8cdf62fd30dce6  gcc/testsuite/gdc.test/runnable/xtest47.d
  98579c4213cc9715e99b14cafe0236c5  gcc/testsuite/gdc.test/runnable/xtest55.d
--- 98946,98961 ----
  ec04e4ea77bac2e91d90b587323bc296  gcc/testsuite/gdc.test/runnable/ufcs.d
  fad5d6afc8ee199fc52c3d0115ff4dc9  gcc/testsuite/gdc.test/runnable/uniformctor.d
  797041b16b4063f65751920488ee39ef  gcc/testsuite/gdc.test/runnable/unique_typeinfo_names.d
! 34e700890f03cafd1f4886ca9c9dec00  gcc/testsuite/gdc.test/runnable/variadic.d
  dd6318894171d606a3a02985c9be449b  gcc/testsuite/gdc.test/runnable/version.d
  3e234d45b8940cdd1392e921db8b08f4  gcc/testsuite/gdc.test/runnable/warning1.d
  c5d22add9745e52907bb2497b9bd620f  gcc/testsuite/gdc.test/runnable/wc.d
  c4ca938331c5dd4dfd6be89a399e767b  gcc/testsuite/gdc.test/runnable/wc2.d
  4d06d3860e7413e844746844806a9595  gcc/testsuite/gdc.test/runnable/wc3.d
! 492eaa5a75592c5036878c8bf2596a61  gcc/testsuite/gdc.test/runnable/whetstone.d
  ec1a2733358dba834de7787de5e3abbc  gcc/testsuite/gdc.test/runnable/xdtor.d
  ac4d0456bb66403e420d8d538a3c7de5  gcc/testsuite/gdc.test/runnable/xpostblit.d
! 827d30ac6786f75d4a7915343f27feb2  gcc/testsuite/gdc.test/runnable/xtest46.d
  618063ddef47bd96e8ba0bd68584721e  gcc/testsuite/gdc.test/runnable/xtest46_gc.d
  bbea6b323197c3de8b8cdf62fd30dce6  gcc/testsuite/gdc.test/runnable/xtest47.d
  98579c4213cc9715e99b14cafe0236c5  gcc/testsuite/gdc.test/runnable/xtest55.d
*************** bbea6b323197c3de8b8cdf62fd30dce6  gcc/te
*** 92268,92277 ****
  2caaa83870980d1acf5e5b9d4feab819  gcc/testsuite/gdc.test/runnable_cxx/abi_tags.d
  862550e1270f64e59387c6dca4c76318  gcc/testsuite/gdc.test/runnable_cxx/cabi1.d
  76cf7dafb9d89f93e706f474f20c8475  gcc/testsuite/gdc.test/runnable_cxx/cpp11.d
! a09f3be4ff0542b4c34878e0688a97f1  gcc/testsuite/gdc.test/runnable_cxx/cpp_abi_tests.d
! 406b0b9b16752a001433b6aa5d8c96d6  gcc/testsuite/gdc.test/runnable_cxx/cpp_stdlib.d
! ed8fa9bdb0dfa3369fc5784f40e60d8c  gcc/testsuite/gdc.test/runnable_cxx/cppa.d
! 9dced816e07defbae5f35dfc7d48c5cb  gcc/testsuite/gdc.test/runnable_cxx/externmangle.d
  1be6bce873a4ba092357cd1925dffd04  gcc/testsuite/gdc.test/runnable_cxx/externmangle2.d
  d92b4eb3d1a1e7026ab3d6fdf0fb0bee  gcc/testsuite/gdc.test/runnable_cxx/extra-files/abi_tags.cpp
  0add8efa4458cdf744b538f0066f69e8  gcc/testsuite/gdc.test/runnable_cxx/extra-files/c14203.cpp
--- 98963,98972 ----
  2caaa83870980d1acf5e5b9d4feab819  gcc/testsuite/gdc.test/runnable_cxx/abi_tags.d
  862550e1270f64e59387c6dca4c76318  gcc/testsuite/gdc.test/runnable_cxx/cabi1.d
  76cf7dafb9d89f93e706f474f20c8475  gcc/testsuite/gdc.test/runnable_cxx/cpp11.d
! 7334e05c231f681a92f551ec586f2dae  gcc/testsuite/gdc.test/runnable_cxx/cpp_abi_tests.d
! 046be684072da4d8177a8599c22a0c8f  gcc/testsuite/gdc.test/runnable_cxx/cpp_stdlib.d
! 352fb2000241e63f108958f9ac7959fe  gcc/testsuite/gdc.test/runnable_cxx/cppa.d
! 30c67d9fe6125fbaffc7d35ee778b9ed  gcc/testsuite/gdc.test/runnable_cxx/externmangle.d
  1be6bce873a4ba092357cd1925dffd04  gcc/testsuite/gdc.test/runnable_cxx/externmangle2.d
  d92b4eb3d1a1e7026ab3d6fdf0fb0bee  gcc/testsuite/gdc.test/runnable_cxx/extra-files/abi_tags.cpp
  0add8efa4458cdf744b538f0066f69e8  gcc/testsuite/gdc.test/runnable_cxx/extra-files/c14203.cpp
*************** d92b4eb3d1a1e7026ab3d6fdf0fb0bee  gcc/te
*** 92279,92304 ****
  0798b7a9e57526b29bd373ab47264e0f  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp11.cpp
  fa03ccbe3fa80bc6ccf3bf1aa8286b8e  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp19179.cpp
  4d5c8b47ea46a47e48ff90f9110bc640  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp22287.cpp
! 0710790bc5c49e5e20e7c2527bd61def  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp7925.cpp
! 72324383fac744a9ade1634ca1151b84  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp_abi_tests.cpp
  be30c6bdcad8f20922e4267061ff1df8  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp_stdlib.cpp
! fb8edf4f449d6b7c6ef046c2225732a8  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cppb.cpp
  ec3097e9963784f4f941101db0814cca  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cppb.h
! 4ba7406a72aad4c6da0a2bcdc9b572d7  gcc/testsuite/gdc.test/runnable_cxx/extra-files/externmangle.cpp
  2fc8bcf6bde9d9e7c0d26ec53c4b5a61  gcc/testsuite/gdc.test/runnable_cxx/extra-files/externmangle2.cpp
  c41aae5e245d02892d557de82a15ecbf  gcc/testsuite/gdc.test/runnable_cxx/extra-files/stdint.cpp
! c2435b8d682209f733e92b581466e05d  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test20652.cpp
  a114fddcb4038e1cc68206b0fc3d227e  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test21515.cpp
  18cf40cb7d52f6fc2c839a80d18ff053  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22351.cpp
  4c95c06408fd6606dc2cc8f9ffbc3da2  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22898.cpp
  b87b34b2dab8f6f449a9d5ac854c90ec  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test23135.cpp
  2d67da5a4aa7383f9fae708df911df9b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test24292.cpp
  19446c81468536fde60f727169a9064b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test6716.cpp
! f35f1ad5de00da5c6154fe414079bf2a  gcc/testsuite/gdc.test/runnable_cxx/runnable_cxx.exp
  831a07bc65fb593b01e13ba6917f1048  gcc/testsuite/gdc.test/runnable_cxx/stdint.d
  5e106cb14f0975a6502a3684154bda9c  gcc/testsuite/gdc.test/runnable_cxx/test14203.d
  6cff696d69683c392657211d903629c7  gcc/testsuite/gdc.test/runnable_cxx/test19179.d
! e3ed77e1de9813e110f4b46db5b15790  gcc/testsuite/gdc.test/runnable_cxx/test20652.d
  729140d31be3d3e72c4e84b2c6a85bcb  gcc/testsuite/gdc.test/runnable_cxx/test21515.d
  44ce0fdf5bb8a6023ffac138e4219a24  gcc/testsuite/gdc.test/runnable_cxx/test22287.d
  0815627985d71579c23ccb865c3cb8d4  gcc/testsuite/gdc.test/runnable_cxx/test22351.d
--- 98974,99001 ----
  0798b7a9e57526b29bd373ab47264e0f  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp11.cpp
  fa03ccbe3fa80bc6ccf3bf1aa8286b8e  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp19179.cpp
  4d5c8b47ea46a47e48ff90f9110bc640  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp22287.cpp
! 9853a839275d5ff081b57bdfe4ef8024  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp7925.cpp
! 8ee5004c4236d16a8c0e5ea59168c4df  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp_abi_tests.cpp
! a4840d68576c301635ce57e4ba183a39  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp_nonpod_byval.cpp
  be30c6bdcad8f20922e4267061ff1df8  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cpp_stdlib.cpp
! 758e8ffb5ced558a382892d9dcc88680  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cppb.cpp
  ec3097e9963784f4f941101db0814cca  gcc/testsuite/gdc.test/runnable_cxx/extra-files/cppb.h
! 63437f1eecc73545415a02d0df274048  gcc/testsuite/gdc.test/runnable_cxx/extra-files/externmangle.cpp
  2fc8bcf6bde9d9e7c0d26ec53c4b5a61  gcc/testsuite/gdc.test/runnable_cxx/extra-files/externmangle2.cpp
  c41aae5e245d02892d557de82a15ecbf  gcc/testsuite/gdc.test/runnable_cxx/extra-files/stdint.cpp
! 8e4192d95012bd92e15b07754dc4d8ab  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test20652.cpp
  a114fddcb4038e1cc68206b0fc3d227e  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test21515.cpp
  18cf40cb7d52f6fc2c839a80d18ff053  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22351.cpp
  4c95c06408fd6606dc2cc8f9ffbc3da2  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22898.cpp
  b87b34b2dab8f6f449a9d5ac854c90ec  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test23135.cpp
  2d67da5a4aa7383f9fae708df911df9b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test24292.cpp
  19446c81468536fde60f727169a9064b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test6716.cpp
! d11e8793fc593a36d97c866a978f32e2  gcc/testsuite/gdc.test/runnable_cxx/nonpod_byval.d
! 2952e40e231955fbacac235528544d50  gcc/testsuite/gdc.test/runnable_cxx/runnable_cxx.exp
  831a07bc65fb593b01e13ba6917f1048  gcc/testsuite/gdc.test/runnable_cxx/stdint.d
  5e106cb14f0975a6502a3684154bda9c  gcc/testsuite/gdc.test/runnable_cxx/test14203.d
  6cff696d69683c392657211d903629c7  gcc/testsuite/gdc.test/runnable_cxx/test19179.d
! af491134463238f3f41ac6545de0ec3e  gcc/testsuite/gdc.test/runnable_cxx/test20652.d
  729140d31be3d3e72c4e84b2c6a85bcb  gcc/testsuite/gdc.test/runnable_cxx/test21515.d
  44ce0fdf5bb8a6023ffac138e4219a24  gcc/testsuite/gdc.test/runnable_cxx/test22287.d
  0815627985d71579c23ccb865c3cb8d4  gcc/testsuite/gdc.test/runnable_cxx/test22351.d
*************** d6e75fc08ee52f13c0de6ce3da087f1f  gcc/te
*** 92359,92365 ****
  371d3195ffed521d08ec283c2ee1c592  gcc/testsuite/gfortran.dg/PR100911.c
  75ed0cc3d18f054acada48afe21e0851  gcc/testsuite/gfortran.dg/PR100911.f90
  dec037af65c7ffffad780f0faaa0445b  gcc/testsuite/gfortran.dg/PR100914.c
! 368fc79060e80bf2d23ef3d0de9c0c8e  gcc/testsuite/gfortran.dg/PR100914.f90
  1f38ca1825a8f27a3875628f4e8e8a1a  gcc/testsuite/gfortran.dg/PR100915.c
  9b9e03c9455339de9f75dc20eb5d1277  gcc/testsuite/gfortran.dg/PR100915.f90
  11916021066381562b52aae402882f24  gcc/testsuite/gfortran.dg/PR105658.f90
--- 99056,99062 ----
  371d3195ffed521d08ec283c2ee1c592  gcc/testsuite/gfortran.dg/PR100911.c
  75ed0cc3d18f054acada48afe21e0851  gcc/testsuite/gfortran.dg/PR100911.f90
  dec037af65c7ffffad780f0faaa0445b  gcc/testsuite/gfortran.dg/PR100914.c
! d02f2847d696739bb549c248f2f5c0e0  gcc/testsuite/gfortran.dg/PR100914.f90
  1f38ca1825a8f27a3875628f4e8e8a1a  gcc/testsuite/gfortran.dg/PR100915.c
  9b9e03c9455339de9f75dc20eb5d1277  gcc/testsuite/gfortran.dg/PR100915.f90
  11916021066381562b52aae402882f24  gcc/testsuite/gfortran.dg/PR105658.f90
*************** d5f7aa990aad340603e6ef142cb2b1fd  gcc/te
*** 92398,92403 ****
--- 99095,99101 ----
  d4b81cf21855418328fc275b64177b54  gcc/testsuite/gfortran.dg/Wno-all.f90
  bccffb200355c36e33c86388445db26a  gcc/testsuite/gfortran.dg/abort_shouldfail.f90
  340c46a8b74627b3ac516b9c17881c09  gcc/testsuite/gfortran.dg/abstract_type_1.f90
+ 40c7aeb74be3b00536893f8c8e4e33ca  gcc/testsuite/gfortran.dg/abstract_type_10.f90
  09f3e24de8c49256786c712188c639a9  gcc/testsuite/gfortran.dg/abstract_type_2.f03
  0439909a9daced07550247922f0dd48a  gcc/testsuite/gfortran.dg/abstract_type_3.f03
  65fed5ffefff4f1a6cc0a960a1306f4c  gcc/testsuite/gfortran.dg/abstract_type_4.f03
*************** d10dc24f807a9caca22b1c9623e9c39f  gcc/te
*** 92429,92434 ****
--- 99127,99134 ----
  1098c7580b5baa9bfd878f93707ade1d  gcc/testsuite/gfortran.dg/actual_pointer_function_1.f90
  55f04e692d8438ae5dd1d7d237e67389  gcc/testsuite/gfortran.dg/actual_procedure_1.f90
  4e3c6f25050e7692e7a76475da821251  gcc/testsuite/gfortran.dg/actual_rank_check_1.f90
+ e554b86c2b4c211aa10675c9313a29c5  gcc/testsuite/gfortran.dg/addressing-modes_1.f90
+ d76c14fe6051bdc3ec342da2db0d2aa8  gcc/testsuite/gfortran.dg/addressing-modes_2.f90
  5470ca70abecb2cb8bc009a0ab9478d6  gcc/testsuite/gfortran.dg/adjustl_1.f90
  cf77cb6d37596bd0e27a58102462c242  gcc/testsuite/gfortran.dg/advance_1.f90
  1f98e4f4da707441647f8b118a1375c8  gcc/testsuite/gfortran.dg/advance_2.f90
*************** b307041dd8a62e74a3083ce06f86ab6b  gcc/te
*** 92438,92443 ****
--- 99138,99144 ----
  d4b4b4bcc6dcd02542142d705a240525  gcc/testsuite/gfortran.dg/advance_6.f90
  5e6384aa45f8fdb9655ed3dd85ee19a0  gcc/testsuite/gfortran.dg/aint_anint_1.f90
  e0135cee32746e48b5ed9fa5d5d98377  gcc/testsuite/gfortran.dg/aliasing_array_result_1.f90
+ 0bcbedcb6c881fd7221bd94270fc01fd  gcc/testsuite/gfortran.dg/aliasing_complex_pointer.f90
  6921911318cbc5dfff85a331d2abbfb7  gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90
  8b4552e37a00ca309f85af9759908a94  gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90
  a083a600a2313f038c16b43b7b4401b7  gcc/testsuite/gfortran.dg/aliasing_dummy_3.f90
*************** b199d329559fc3f1b7e43203cdc460a8  gcc/te
*** 92466,92471 ****
--- 99167,99173 ----
  f3e77fcc01f3018d64a5ab3fb3368fd1  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_1.f90
  948fbff88548392e63b67e446403f2b3  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_2.f90
  5570a1ba5f39729a7f7334e3e99b7262  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
+ 0fdd1a20cd51772142c8038e260c35d4  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_4.f90
  01702b87b457a827628539076733715b  gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
  c161df8775b21819cda81ffa8bd1b23f  gcc/testsuite/gfortran.dg/alloc_comp_basics_2.f90
  8b7900064da86d65153abf5f6284186c  gcc/testsuite/gfortran.dg/alloc_comp_basics_3.f90
*************** d863a7b7baeff902abcb73f750294f4b  gcc/te
*** 92477,92483 ****
  ae1746e87e5762c6b68826278ee28628  gcc/testsuite/gfortran.dg/alloc_comp_class_1.f90
  dfee92253f572cefadfc9896e31aa911  gcc/testsuite/gfortran.dg/alloc_comp_class_2.f90
  52d1ff97d60e0604c88137e39d6ee817  gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03
! ea89ea8f65090a4151fb0cc736157f55  gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03
  344f8d4e949089ff45b60afe587aec49  gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
  f87a2c3e25c614f7c7331df1491f1a03  gcc/testsuite/gfortran.dg/alloc_comp_constraint_1.f90
  3c67ddbdd5451204f415b2315005e09e  gcc/testsuite/gfortran.dg/alloc_comp_constraint_2.f90
--- 99179,99185 ----
  ae1746e87e5762c6b68826278ee28628  gcc/testsuite/gfortran.dg/alloc_comp_class_1.f90
  dfee92253f572cefadfc9896e31aa911  gcc/testsuite/gfortran.dg/alloc_comp_class_2.f90
  52d1ff97d60e0604c88137e39d6ee817  gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03
! 7bc89ebe60518480d4c3116f353445eb  gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03
  344f8d4e949089ff45b60afe587aec49  gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
  f87a2c3e25c614f7c7331df1491f1a03  gcc/testsuite/gfortran.dg/alloc_comp_constraint_1.f90
  3c67ddbdd5451204f415b2315005e09e  gcc/testsuite/gfortran.dg/alloc_comp_constraint_2.f90
*************** a44209b4b22b50ba22251b2901229b35  gcc/te
*** 92496,92501 ****
--- 99198,99204 ----
  313c2cc84996c4d6499e018b8055abd1  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_1.f03
  291144a665a881ed73c245a048408de6  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_2.f03
  63268580aa4691498e32913a93d4c74e  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_3.f03
+ d2341b7ea8968ac02843b2dcb31e3e80  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_4.f03
  4d1758fe9739756fdf38a4fc8d5687bb  gcc/testsuite/gfortran.dg/alloc_comp_default_init_1.f90
  3ac49823c9b600313f371a6ed0f57568  gcc/testsuite/gfortran.dg/alloc_comp_default_init_2.f90
  bb1218e53c344866c49d1bec5ea6f283  gcc/testsuite/gfortran.dg/alloc_comp_init_expr.f03
*************** fbf6eb41453bed2d7b01d6d3ecd3b075  gcc/te
*** 92512,92517 ****
--- 99215,99221 ----
  243cbfa77a9448c9019b236137e7803d  gcc/testsuite/gfortran.dg/alloc_comp_std.f90
  909cf7d56a64fc559ec64c2bb71d1197  gcc/testsuite/gfortran.dg/alloc_comp_transformational_1.f90
  6ad12324ccb5fbf1f5f93c86d22f4ca4  gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90
+ 5334a73b001aae1d99840ad1e2c59044  gcc/testsuite/gfortran.dg/allocatable_char_1.f90
  c59ad781dee7ec8e48a5f7ca04827100  gcc/testsuite/gfortran.dg/allocatable_dummy_1.f90
  56cdd5c6ada96e8035ed20712fda44d5  gcc/testsuite/gfortran.dg/allocatable_dummy_2.f90
  b44c3949481c974b2c6896675c16886c  gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90
*************** b6c4702bf04caee25dc8228192964820  gcc/te
*** 92563,92568 ****
--- 99267,99273 ----
  421060d5d03bd827379d2d95e2b371ab  gcc/testsuite/gfortran.dg/allocate_assumed_charlen_2.f90
  9651fbe7aa57f3b86f75961263b21aa5  gcc/testsuite/gfortran.dg/allocate_assumed_charlen_3.f90
  eb75106fbfae3ef283ff9b6073962446  gcc/testsuite/gfortran.dg/allocate_assumed_charlen_4.f90
+ c0f2592240046ce5526ba9aa93a4941f  gcc/testsuite/gfortran.dg/allocate_assumed_charlen_5.f90
  7ad72f1f76221dbdec0ab077ae3b8dd8  gcc/testsuite/gfortran.dg/allocate_char_star_scalar_1.f90
  c8af6a632c789d3dc3fb0b76448852dd  gcc/testsuite/gfortran.dg/allocate_class_1.f90
  5d06d590dfc06d981d4fd70c9246eb64  gcc/testsuite/gfortran.dg/allocate_class_2.f90
*************** b985d75d4d77d7f24d29efbb0266b7c1  gcc/te
*** 92582,92587 ****
--- 99287,99293 ----
  5fe2682fb743a002bbc041fa74b379a2  gcc/testsuite/gfortran.dg/allocate_error_5.f90
  3e270457a0730f64cb7deaefe7256b90  gcc/testsuite/gfortran.dg/allocate_error_6.f90
  5104ce5f1f698379877a63ce2e5b7747  gcc/testsuite/gfortran.dg/allocate_error_7.f90
+ 9a2cc68c6c36c4cb26bb1f08f03a6371  gcc/testsuite/gfortran.dg/allocate_error_8.f90
  fb64bc7d356ec60804fbf43d60862c56  gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90
  830939c2c8aa5b5102f390243f11fcbd  gcc/testsuite/gfortran.dg/allocate_stat.f90
  fd47cb2ee3abca7f4ec8637b9e9e793b  gcc/testsuite/gfortran.dg/allocate_stat_2.f90
*************** eae1c01e9cd07e06f5b2053c9c8e8d0c  gcc/te
*** 92654,92660 ****
  407349fe5dc0dd80df43de2e773a4cab  gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90
  4a2d243fa69596ed5111843ecb20b347  gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
  44a13c6b4d7ef49b6173c7e5be97aeba  gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90
! 3a0d39da9189b08f411f09fe5fa2025c  gcc/testsuite/gfortran.dg/analyzer/analyzer.exp
  2f368a8d04f58e4d6d300980282f68ea  gcc/testsuite/gfortran.dg/analyzer/deferred_character_25.f90
  d73a0bb9f41cc644e39e6ef9cb47095f  gcc/testsuite/gfortran.dg/analyzer/malloc-example.f90
  456395eb94ed204b99bab7e77b4c01de  gcc/testsuite/gfortran.dg/analyzer/malloc.f90
--- 99360,99366 ----
  407349fe5dc0dd80df43de2e773a4cab  gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90
  4a2d243fa69596ed5111843ecb20b347  gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
  44a13c6b4d7ef49b6173c7e5be97aeba  gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90
! 81dae631d062a8a8ccb31024f732892f  gcc/testsuite/gfortran.dg/analyzer/analyzer.exp
  2f368a8d04f58e4d6d300980282f68ea  gcc/testsuite/gfortran.dg/analyzer/deferred_character_25.f90
  d73a0bb9f41cc644e39e6ef9cb47095f  gcc/testsuite/gfortran.dg/analyzer/malloc-example.f90
  456395eb94ed204b99bab7e77b4c01de  gcc/testsuite/gfortran.dg/analyzer/malloc.f90
*************** bf6adc4a22ea07b1ef96cd964979323f  gcc/te
*** 92815,92820 ****
--- 99521,99527 ----
  b6760654ceec06f2d9d8da1fb2905d41  gcc/testsuite/gfortran.dg/array_memcpy_5.f90
  6532af12e8af70e4024e14c839ff731d  gcc/testsuite/gfortran.dg/array_memset_1.f90
  9cd9ba395957dcb0b99267b33e0e4f3a  gcc/testsuite/gfortran.dg/array_memset_2.f90
+ b9fccaa855e3e583ac085f917a903bdb  gcc/testsuite/gfortran.dg/array_memset_3.f90
  0d5c79107b268381899526d4acc0698d  gcc/testsuite/gfortran.dg/array_reference_1.f90
  47ca991c28b5ae757c9c0781206a3f71  gcc/testsuite/gfortran.dg/array_reference_2.f90
  0b4de3a4e057a06e6461e16138a9c2da  gcc/testsuite/gfortran.dg/array_reference_3.f90
*************** ca5ed9b7a4b086d732df1a505d87813b  gcc/te
*** 92850,92856 ****
  d6fad859ae9f254219fe0b62c52472a0  gcc/testsuite/gfortran.dg/arrayio_9.f90
  a7a4d71734bf9559e09017fe4616e065  gcc/testsuite/gfortran.dg/arrayio_derived_1.f90
  2b2c726e08ba1c26507c7392e63e1029  gcc/testsuite/gfortran.dg/arrayio_derived_2.f90
! 1cef49dd7a1273223b3e64152f286f6c  gcc/testsuite/gfortran.dg/asan/asan.exp
  3b8425a2f59699b47aac6da29c11aba9  gcc/testsuite/gfortran.dg/asan/associate_58.f90
  e9f58df1de071d2b106b16b3af8f6764  gcc/testsuite/gfortran.dg/asan/associate_59.f90
  66de6cb3bf07d14487491fac7d1ee72f  gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90
--- 99557,99563 ----
  d6fad859ae9f254219fe0b62c52472a0  gcc/testsuite/gfortran.dg/arrayio_9.f90
  a7a4d71734bf9559e09017fe4616e065  gcc/testsuite/gfortran.dg/arrayio_derived_1.f90
  2b2c726e08ba1c26507c7392e63e1029  gcc/testsuite/gfortran.dg/arrayio_derived_2.f90
! 084d73893a30ee8bc9420fc82f944f3c  gcc/testsuite/gfortran.dg/asan/asan.exp
  3b8425a2f59699b47aac6da29c11aba9  gcc/testsuite/gfortran.dg/asan/associate_58.f90
  e9f58df1de071d2b106b16b3af8f6764  gcc/testsuite/gfortran.dg/asan/associate_59.f90
  66de6cb3bf07d14487491fac7d1ee72f  gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90
*************** e9f58df1de071d2b106b16b3af8f6764  gcc/te
*** 92862,92867 ****
--- 99569,99575 ----
  4fd44d78ecb3264e1dd3d6bbb0ca8ea6  gcc/testsuite/gfortran.dg/assign_1.f90
  2fadd08fe3904fa5e7b9e433747dd9e5  gcc/testsuite/gfortran.dg/assign_10.f90
  5a14c8021ea0007a87c0f2d24385903b  gcc/testsuite/gfortran.dg/assign_11.f90
+ 77968474ca7077dddd7b87844075962e  gcc/testsuite/gfortran.dg/assign_12.f90
  d13716000aff2182530213b6daeb5f10  gcc/testsuite/gfortran.dg/assign_2.f90
  a0494aa37ce786eddcb2107da73e9e9d  gcc/testsuite/gfortran.dg/assign_3.f90
  bd3eaa5ee0e2bbe2c28826271bd7069f  gcc/testsuite/gfortran.dg/assign_4.f
*************** c0997c9e951767642f9b109c7f40a532  gcc/te
*** 92898,92904 ****
  aecd7da9302bacf7aeebde56d90a2445  gcc/testsuite/gfortran.dg/associate_27.f90
  366c019a469c1a5eac01c46514e12c86  gcc/testsuite/gfortran.dg/associate_28.f90
  9236179c94e8ef2f6258dcf917d9dee9  gcc/testsuite/gfortran.dg/associate_29.f90
! 355e58c83c0d8aae2fc9b4ba4d520914  gcc/testsuite/gfortran.dg/associate_3.f03
  6eab1bfbc8235d8fcf743d9f5635aea3  gcc/testsuite/gfortran.dg/associate_30.f90
  4c227011c3d554a292526dea236870bb  gcc/testsuite/gfortran.dg/associate_32.f03
  f023f2a531d000e8c23860928425ebf3  gcc/testsuite/gfortran.dg/associate_33.f03
--- 99606,99612 ----
  aecd7da9302bacf7aeebde56d90a2445  gcc/testsuite/gfortran.dg/associate_27.f90
  366c019a469c1a5eac01c46514e12c86  gcc/testsuite/gfortran.dg/associate_28.f90
  9236179c94e8ef2f6258dcf917d9dee9  gcc/testsuite/gfortran.dg/associate_29.f90
! 4930594a6efc6b91f00ef4c0e53eb5ac  gcc/testsuite/gfortran.dg/associate_3.f03
  6eab1bfbc8235d8fcf743d9f5635aea3  gcc/testsuite/gfortran.dg/associate_30.f90
  4c227011c3d554a292526dea236870bb  gcc/testsuite/gfortran.dg/associate_32.f03
  f023f2a531d000e8c23860928425ebf3  gcc/testsuite/gfortran.dg/associate_33.f03
*************** d55aaf53e0564c18418583355eae0c54  gcc/te
*** 92940,92947 ****
  6985fcaf45c3fe072a3fe50dcc277574  gcc/testsuite/gfortran.dg/associate_66.f90
  6b3feeb45dccc6215d8a5a7a7f20e4d5  gcc/testsuite/gfortran.dg/associate_67.f90
  2f3835312210ac84efa12159dc226bf0  gcc/testsuite/gfortran.dg/associate_68.f90
! 57325375e1eebc7d4fde5ee98987784c  gcc/testsuite/gfortran.dg/associate_69.f90
  ac2154aefe0a4ce981b3fa252235e2dd  gcc/testsuite/gfortran.dg/associate_7.f03
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  0406413659a92c10d44ed1f1576987b9  gcc/testsuite/gfortran.dg/associate_9.f03
  51f82584276ab8f411b8d9d7e84fadc8  gcc/testsuite/gfortran.dg/associated_1.f90
--- 99648,99660 ----
  6985fcaf45c3fe072a3fe50dcc277574  gcc/testsuite/gfortran.dg/associate_66.f90
  6b3feeb45dccc6215d8a5a7a7f20e4d5  gcc/testsuite/gfortran.dg/associate_67.f90
  2f3835312210ac84efa12159dc226bf0  gcc/testsuite/gfortran.dg/associate_68.f90
! aa770fb17af427bac4bab1f165ac2792  gcc/testsuite/gfortran.dg/associate_69.f90
  ac2154aefe0a4ce981b3fa252235e2dd  gcc/testsuite/gfortran.dg/associate_7.f03
+ deb09b677d000ef31192bceef1e319dd  gcc/testsuite/gfortran.dg/associate_70.f90
+ d3d333698144b6bad92425ebed117768  gcc/testsuite/gfortran.dg/associate_71.f90
+ 654126432f7002148884d08affd35699  gcc/testsuite/gfortran.dg/associate_72.f90
+ e0fe6119bfcf724ee51375d3156cacc5  gcc/testsuite/gfortran.dg/associate_73.f90
+ 151edd623643e466e74fa24488fd3142  gcc/testsuite/gfortran.dg/associate_74.f90
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  0406413659a92c10d44ed1f1576987b9  gcc/testsuite/gfortran.dg/associate_9.f03
  51f82584276ab8f411b8d9d7e84fadc8  gcc/testsuite/gfortran.dg/associated_1.f90
*************** f484c374c6a3a4d7adab5922c2c33aec  gcc/te
*** 92972,92978 ****
  e6719846a0d56fb08570363cc942d985  gcc/testsuite/gfortran.dg/assumed_charlen_function_5.f90
  1eb74813f6083e8ae40cefdc0ddd1755  gcc/testsuite/gfortran.dg/assumed_charlen_function_6.f90
  1a217896c5fa7be5efc54f1090e6a38d  gcc/testsuite/gfortran.dg/assumed_charlen_function_7.f90
! 5893a88ec7ab47fda1daa4953b37559d  gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
  9593ca2177be6b3e0aee7138f62389c4  gcc/testsuite/gfortran.dg/assumed_charlen_needed_1.f90
  ca87784564232e0a6814ebeab8eba19d  gcc/testsuite/gfortran.dg/assumed_charlen_parameter.f90
  994aa6997da39a67cf365954885c693e  gcc/testsuite/gfortran.dg/assumed_charlen_sharing.f90
--- 99685,99691 ----
  e6719846a0d56fb08570363cc942d985  gcc/testsuite/gfortran.dg/assumed_charlen_function_5.f90
  1eb74813f6083e8ae40cefdc0ddd1755  gcc/testsuite/gfortran.dg/assumed_charlen_function_6.f90
  1a217896c5fa7be5efc54f1090e6a38d  gcc/testsuite/gfortran.dg/assumed_charlen_function_7.f90
! 4bffb8bbaccbcf59e863901c523f3ff6  gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
  9593ca2177be6b3e0aee7138f62389c4  gcc/testsuite/gfortran.dg/assumed_charlen_needed_1.f90
  ca87784564232e0a6814ebeab8eba19d  gcc/testsuite/gfortran.dg/assumed_charlen_parameter.f90
  994aa6997da39a67cf365954885c693e  gcc/testsuite/gfortran.dg/assumed_charlen_sharing.f90
*************** eae0182bf770a9c3238d3946a16c07b1  gcc/te
*** 93000,93005 ****
--- 99713,99719 ----
  eaeb1ae6f613cb27239740bc9c7f6229  gcc/testsuite/gfortran.dg/assumed_rank_22_aux.c
  4975fe28873f65aed664a18b4e6d0b54  gcc/testsuite/gfortran.dg/assumed_rank_23.f90
  18bbeba60d3392b0b73d876be244ef92  gcc/testsuite/gfortran.dg/assumed_rank_24.f90
+ 20b7b0751992d1661523f9d1e341a676  gcc/testsuite/gfortran.dg/assumed_rank_25.f90
  9478ccb330ec844df5877a48096c9976  gcc/testsuite/gfortran.dg/assumed_rank_3.f90
  a97591ca0f7ec68f4a27f9437d09cb92  gcc/testsuite/gfortran.dg/assumed_rank_4.f90
  d3b33ae7c97fb128d15b3a49e16aa06e  gcc/testsuite/gfortran.dg/assumed_rank_5.f90
*************** f53fcb34021fd16cec1ec5c62b1b1078  gcc/te
*** 93055,93061 ****
  845aeda86eafe27d17a28287c7c6d603  gcc/testsuite/gfortran.dg/auto_char_len_1.f90
  8732d67741b81d138a008b1a9c0ab037  gcc/testsuite/gfortran.dg/auto_char_len_2.f90
  a2b1720fb52e74e61ef6219cf15146ec  gcc/testsuite/gfortran.dg/auto_char_len_3.f90
! 6a1dd73192d8b7f3e1546ad2a85e62ce  gcc/testsuite/gfortran.dg/auto_char_len_4.f90
  3f5616dbda1b8114eac0331ac7ce68ea  gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f90
  26a74c02ca0f14bcd415e65e87c265de  gcc/testsuite/gfortran.dg/auto_dealloc_1.f90
  86d93a95da9b2b5dbaa149440c999c16  gcc/testsuite/gfortran.dg/auto_dealloc_2.f90
--- 99769,99775 ----
  845aeda86eafe27d17a28287c7c6d603  gcc/testsuite/gfortran.dg/auto_char_len_1.f90
  8732d67741b81d138a008b1a9c0ab037  gcc/testsuite/gfortran.dg/auto_char_len_2.f90
  a2b1720fb52e74e61ef6219cf15146ec  gcc/testsuite/gfortran.dg/auto_char_len_3.f90
! dcfae5722c344eae068e272324f5c4c5  gcc/testsuite/gfortran.dg/auto_char_len_4.f90
  3f5616dbda1b8114eac0331ac7ce68ea  gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f90
  26a74c02ca0f14bcd415e65e87c265de  gcc/testsuite/gfortran.dg/auto_dealloc_1.f90
  86d93a95da9b2b5dbaa149440c999c16  gcc/testsuite/gfortran.dg/auto_dealloc_2.f90
*************** c7b4b66548f050511f0a3316a0f049c8  gcc/te
*** 93097,93103 ****
  d863afb920048efbca3bf6b678a61dec  gcc/testsuite/gfortran.dg/badline.f
  4bbbafb00ed3654d5f517026c6a6817e  gcc/testsuite/gfortran.dg/bessel_1.f90
  614970fa66f9e6f94bffab59cdcbea9e  gcc/testsuite/gfortran.dg/bessel_2.f90
! 338d31c4d8e43a7760e92363475efc45  gcc/testsuite/gfortran.dg/bessel_3.f90
  f98c4c5663f30de86f0afb3d79ad29d9  gcc/testsuite/gfortran.dg/bessel_4.f90
  7c6a0363c8e5760a8743dd93665ea8ac  gcc/testsuite/gfortran.dg/bessel_5.f90
  feb49f28f0ec043a30b1c7ae6bbf396b  gcc/testsuite/gfortran.dg/bessel_5_redux.f90
--- 99811,99817 ----
  d863afb920048efbca3bf6b678a61dec  gcc/testsuite/gfortran.dg/badline.f
  4bbbafb00ed3654d5f517026c6a6817e  gcc/testsuite/gfortran.dg/bessel_1.f90
  614970fa66f9e6f94bffab59cdcbea9e  gcc/testsuite/gfortran.dg/bessel_2.f90
! 1ce11c9dfc9c72342bb9fba21d6cd1cf  gcc/testsuite/gfortran.dg/bessel_3.f90
  f98c4c5663f30de86f0afb3d79ad29d9  gcc/testsuite/gfortran.dg/bessel_4.f90
  7c6a0363c8e5760a8743dd93665ea8ac  gcc/testsuite/gfortran.dg/bessel_5.f90
  feb49f28f0ec043a30b1c7ae6bbf396b  gcc/testsuite/gfortran.dg/bessel_5_redux.f90
*************** f72ecac7fbcaaf2324089933afd1cb6a  gcc/te
*** 93211,93217 ****
  ea7e9688dec298fa61eef31972b6c8cd  gcc/testsuite/gfortran.dg/binding_label_tests_24.f90
  5cef22ffdd6b58d13bbab02ae5e85195  gcc/testsuite/gfortran.dg/binding_label_tests_25.f90
  ec29931f9b3f84e65c0addc59ccb39bf  gcc/testsuite/gfortran.dg/binding_label_tests_26a.f90
! 524014cc930fc384a29d75d9885c914f  gcc/testsuite/gfortran.dg/binding_label_tests_26b.f90
  9dfb6e19dab1724fd7bc6c7ddd36dfeb  gcc/testsuite/gfortran.dg/binding_label_tests_27.f90
  0cc03e2fd3571908f49f70d6dabaa128  gcc/testsuite/gfortran.dg/binding_label_tests_28.f90
  fbe4a90945f5cbcde230db8b880a4d7a  gcc/testsuite/gfortran.dg/binding_label_tests_29.f90
--- 99925,99931 ----
  ea7e9688dec298fa61eef31972b6c8cd  gcc/testsuite/gfortran.dg/binding_label_tests_24.f90
  5cef22ffdd6b58d13bbab02ae5e85195  gcc/testsuite/gfortran.dg/binding_label_tests_25.f90
  ec29931f9b3f84e65c0addc59ccb39bf  gcc/testsuite/gfortran.dg/binding_label_tests_26a.f90
! 9de1d1836cd7a4874225d7d11c49ce36  gcc/testsuite/gfortran.dg/binding_label_tests_26b.f90
  9dfb6e19dab1724fd7bc6c7ddd36dfeb  gcc/testsuite/gfortran.dg/binding_label_tests_27.f90
  0cc03e2fd3571908f49f70d6dabaa128  gcc/testsuite/gfortran.dg/binding_label_tests_28.f90
  fbe4a90945f5cbcde230db8b880a4d7a  gcc/testsuite/gfortran.dg/binding_label_tests_29.f90
*************** b890668874e1bc07a00cd706581c6fd1  gcc/te
*** 93304,93312 ****
  66c33189a3444b13a4ae1439933ebc8b  gcc/testsuite/gfortran.dg/bounds_check_20.f90
  7577ff710a256393f1fb5c102e69baa4  gcc/testsuite/gfortran.dg/bounds_check_21.f90
  e585af8e23493967fa5b80361d02ccd5  gcc/testsuite/gfortran.dg/bounds_check_22.f90
! c255cbccd21b3a2d3ab21d32d680086e  gcc/testsuite/gfortran.dg/bounds_check_23.f90
  c3c402867cc595cbe2e51291eb207948  gcc/testsuite/gfortran.dg/bounds_check_24.f90
! 7d452d75ba4aaee166bc0ba62967f3c6  gcc/testsuite/gfortran.dg/bounds_check_25.f90
  1ff91e96da26ef6e7839e53e2b71499d  gcc/testsuite/gfortran.dg/bounds_check_3.f90
  a9119407c225c716d99c309178d77952  gcc/testsuite/gfortran.dg/bounds_check_4.f90
  167a95fa41d2abf20f66591e1389d059  gcc/testsuite/gfortran.dg/bounds_check_5.f90
--- 100018,100028 ----
  66c33189a3444b13a4ae1439933ebc8b  gcc/testsuite/gfortran.dg/bounds_check_20.f90
  7577ff710a256393f1fb5c102e69baa4  gcc/testsuite/gfortran.dg/bounds_check_21.f90
  e585af8e23493967fa5b80361d02ccd5  gcc/testsuite/gfortran.dg/bounds_check_22.f90
! 1566ee1f9f3bdf50d18a67786535c9d1  gcc/testsuite/gfortran.dg/bounds_check_23.f90
  c3c402867cc595cbe2e51291eb207948  gcc/testsuite/gfortran.dg/bounds_check_24.f90
! 33ef3fa2313968dd3450e81422147450  gcc/testsuite/gfortran.dg/bounds_check_25.f90
! 8ec271b1c5257492c5bb34f140f1d061  gcc/testsuite/gfortran.dg/bounds_check_26.f90
! df581146a6f103a1d6bc36eb134e10d4  gcc/testsuite/gfortran.dg/bounds_check_27.f90
  1ff91e96da26ef6e7839e53e2b71499d  gcc/testsuite/gfortran.dg/bounds_check_3.f90
  a9119407c225c716d99c309178d77952  gcc/testsuite/gfortran.dg/bounds_check_4.f90
  167a95fa41d2abf20f66591e1389d059  gcc/testsuite/gfortran.dg/bounds_check_5.f90
*************** da7a2177083dc9e263b344147ecc140c  gcc/te
*** 93322,93327 ****
--- 100038,100044 ----
  371c1345bfd31a67cac3d2c8e075f8e4  gcc/testsuite/gfortran.dg/bounds_check_array_ctor_6.f90
  e24c326967c71085d330235fe698c50f  gcc/testsuite/gfortran.dg/bounds_check_array_ctor_7.f90
  e06600cf8f1de183da16e99ce1747e70  gcc/testsuite/gfortran.dg/bounds_check_array_ctor_8.f90
+ b43fa1d069875ff833fa2be994856731  gcc/testsuite/gfortran.dg/bounds_check_array_io.f90
  2bcc28a5973212f9bcec16dc090e6973  gcc/testsuite/gfortran.dg/bounds_check_fail_1.f90
  3eb71e71d36f8988db1e8934d157ec58  gcc/testsuite/gfortran.dg/bounds_check_fail_2.f90
  b94e6520bb4d9fc5a33c40c5e524d9c6  gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90
*************** fd12b344ae807883e9df8ae1c500b76e  gcc/te
*** 93331,93336 ****
--- 100048,100054 ----
  c131c4292f9caca331ac55659391274b  gcc/testsuite/gfortran.dg/bounds_check_fail_7.f90
  9eee4184e7f1acb5b6b4f8d733773d27  gcc/testsuite/gfortran.dg/bounds_check_fail_8.f90
  47cd7c4192bcfdf1b9792fc175c39955  gcc/testsuite/gfortran.dg/bounds_check_strlen_1.f90
+ 40c7039e06e2fccace2cb7e752251031  gcc/testsuite/gfortran.dg/bounds_check_strlen_10.f90
  f33baaa73ebbc0a23938401a171f0b68  gcc/testsuite/gfortran.dg/bounds_check_strlen_2.f90
  f145202f2e2e4fd5f13808086de4de58  gcc/testsuite/gfortran.dg/bounds_check_strlen_3.f90
  8d10f29783ca2636d630f6e16779efcd  gcc/testsuite/gfortran.dg/bounds_check_strlen_4.f90
*************** fac1e0eef372f71d706c30f1311cf959  gcc/te
*** 93388,93394 ****
  47a7c8e0cbe96b57e059822a941e38ff  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-7.f90
  9a80266656ceb43a0a581916f7718edf  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-8.f90
  a4c3a5f902ab2517633f83862a2d36db  gcc/testsuite/gfortran.dg/c-interop/assumed-type-dummy.f90
! bba3b9b2743bc024ca809a8e542877ac  gcc/testsuite/gfortran.dg/c-interop/c-interop.exp
  309302f256fed78b85c12bcd85ae1482  gcc/testsuite/gfortran.dg/c-interop/c1255-1.f90
  cddcde8067082b470a1f33b02ad12f17  gcc/testsuite/gfortran.dg/c-interop/c1255-2.f90
  b856ec2d6049479b49cfdb5d1ae43550  gcc/testsuite/gfortran.dg/c-interop/c1255a.f90
--- 100106,100112 ----
  47a7c8e0cbe96b57e059822a941e38ff  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-7.f90
  9a80266656ceb43a0a581916f7718edf  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-8.f90
  a4c3a5f902ab2517633f83862a2d36db  gcc/testsuite/gfortran.dg/c-interop/assumed-type-dummy.f90
! 78cb83a427c4617e480a1ac5a5a00514  gcc/testsuite/gfortran.dg/c-interop/c-interop.exp
  309302f256fed78b85c12bcd85ae1482  gcc/testsuite/gfortran.dg/c-interop/c1255-1.f90
  cddcde8067082b470a1f33b02ad12f17  gcc/testsuite/gfortran.dg/c-interop/c1255-2.f90
  b856ec2d6049479b49cfdb5d1ae43550  gcc/testsuite/gfortran.dg/c-interop/c1255a.f90
*************** bd423adafd725c2228e295920c0db510  gcc/te
*** 93511,93517 ****
  5d109d67e9b883cd251cc70baa52140c  gcc/testsuite/gfortran.dg/c-interop/rank.f90
  62fad9ceb8076e8ceaf3276465cad430  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-1.f90
  6e607ca64192019ceed1ed7e1012dcf3  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-2.f90
! edfcf5aec211ccd87b0a306c622d1de1  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-3.f90
  ee9ee3435386242f87004e16b94950e4  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-4.f90
  31f3d18125be651559c5d3ae8c230edb  gcc/testsuite/gfortran.dg/c-interop/section-1-c.c
  bd6620f4b559bdbe921426016e5405ce  gcc/testsuite/gfortran.dg/c-interop/section-1.f90
--- 100229,100235 ----
  5d109d67e9b883cd251cc70baa52140c  gcc/testsuite/gfortran.dg/c-interop/rank.f90
  62fad9ceb8076e8ceaf3276465cad430  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-1.f90
  6e607ca64192019ceed1ed7e1012dcf3  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-2.f90
! defc8f06d4cc591f5672b3e3fbf2d5c4  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-3.f90
  ee9ee3435386242f87004e16b94950e4  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-4.f90
  31f3d18125be651559c5d3ae8c230edb  gcc/testsuite/gfortran.dg/c-interop/section-1-c.c
  bd6620f4b559bdbe921426016e5405ce  gcc/testsuite/gfortran.dg/c-interop/section-1.f90
*************** e3d7c198fc7009b223f98b2e4884b462  gcc/te
*** 93611,93617 ****
  7462a4f11336164c2d9edb7b835cd7df  gcc/testsuite/gfortran.dg/c_funloc_tests_4.f03
  369aef7f75f5b20a85f41e161e1ffb04  gcc/testsuite/gfortran.dg/c_funloc_tests_4_driver.c
  c667584e20b0f824467db7ec4e3b9343  gcc/testsuite/gfortran.dg/c_funloc_tests_5.f03
! 08e4171f77906fadbd09be4e8ab4ab6d  gcc/testsuite/gfortran.dg/c_funloc_tests_6.f90
  50f4b315c9bd0e25bc32f9dd348dd475  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
  f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
--- 100329,100335 ----
  7462a4f11336164c2d9edb7b835cd7df  gcc/testsuite/gfortran.dg/c_funloc_tests_4.f03
  369aef7f75f5b20a85f41e161e1ffb04  gcc/testsuite/gfortran.dg/c_funloc_tests_4_driver.c
  c667584e20b0f824467db7ec4e3b9343  gcc/testsuite/gfortran.dg/c_funloc_tests_5.f03
! 65b5cc5ca9373288fd99f49ba472e18f  gcc/testsuite/gfortran.dg/c_funloc_tests_6.f90
  50f4b315c9bd0e25bc32f9dd348dd475  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
  f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
*************** a5428fe640510977b939e14f94c2c823  gcc/te
*** 93625,93631 ****
  1c120da458e563fecf6a1aa0390655bd  gcc/testsuite/gfortran.dg/c_loc_driver.c
  1e9f49d0b8f9cdb2f02c46e29526a2bb  gcc/testsuite/gfortran.dg/c_loc_pure_1.f90
  c02f41ce2eee81667ad0cf8d39947545  gcc/testsuite/gfortran.dg/c_loc_test.f90
! dcbb272bfb83c583f753cae164df356b  gcc/testsuite/gfortran.dg/c_loc_test_17.f90
  bb310597e71d8648c4c14b69f7d31131  gcc/testsuite/gfortran.dg/c_loc_test_18.f90
  ffa5f5d7a334ba55226b8772a20e8323  gcc/testsuite/gfortran.dg/c_loc_test_19.f90
  6de843415c284c1e56a51ee768d59f6a  gcc/testsuite/gfortran.dg/c_loc_test_20.f90
--- 100343,100349 ----
  1c120da458e563fecf6a1aa0390655bd  gcc/testsuite/gfortran.dg/c_loc_driver.c
  1e9f49d0b8f9cdb2f02c46e29526a2bb  gcc/testsuite/gfortran.dg/c_loc_pure_1.f90
  c02f41ce2eee81667ad0cf8d39947545  gcc/testsuite/gfortran.dg/c_loc_test.f90
! 38f8c3e4a4fced56020f4568597ac10c  gcc/testsuite/gfortran.dg/c_loc_test_17.f90
  bb310597e71d8648c4c14b69f7d31131  gcc/testsuite/gfortran.dg/c_loc_test_18.f90
  ffa5f5d7a334ba55226b8772a20e8323  gcc/testsuite/gfortran.dg/c_loc_test_19.f90
  6de843415c284c1e56a51ee768d59f6a  gcc/testsuite/gfortran.dg/c_loc_test_20.f90
*************** b7c1dbe440130c4b25ef24660f2d7875  gcc/te
*** 93649,93661 ****
  839dc0a4eac3ba891cb617c8c57f5aa6  gcc/testsuite/gfortran.dg/c_loc_tests_8.f03
  2e7237d8f21e18df5d306d048f5f8f1f  gcc/testsuite/gfortran.dg/c_loc_tests_9.f03
  c33cbd90fec311e266c488e253f588b9  gcc/testsuite/gfortran.dg/c_ptr_tests.f03
! 4e35ea6d415b3c605bd6ab015b79e26b  gcc/testsuite/gfortran.dg/c_ptr_tests_10.f03
  31a2a055da7c94fe365fefdd276823c4  gcc/testsuite/gfortran.dg/c_ptr_tests_11.f03
  ce72f8a3e4144de6f4924d35c12e7244  gcc/testsuite/gfortran.dg/c_ptr_tests_12.f03
  d1b107332fd2ca83ba6ac402e54202d6  gcc/testsuite/gfortran.dg/c_ptr_tests_13.f03
  1b3e3692430674b2cde54819e8cc23b7  gcc/testsuite/gfortran.dg/c_ptr_tests_14.f90
  945be6c0533407b0669dedfe30c893f8  gcc/testsuite/gfortran.dg/c_ptr_tests_15.f90
! ef5c9b71cfe2a7ae0c7eda3f4213cb68  gcc/testsuite/gfortran.dg/c_ptr_tests_16.f90
  ac91e127e05ae13da7cec3fc1053a789  gcc/testsuite/gfortran.dg/c_ptr_tests_17.f90
  7a873f03774fb774534f537314416225  gcc/testsuite/gfortran.dg/c_ptr_tests_18.f90
  98fb1fadfe2e07ccdc842d472fd09e95  gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90
--- 100367,100379 ----
  839dc0a4eac3ba891cb617c8c57f5aa6  gcc/testsuite/gfortran.dg/c_loc_tests_8.f03
  2e7237d8f21e18df5d306d048f5f8f1f  gcc/testsuite/gfortran.dg/c_loc_tests_9.f03
  c33cbd90fec311e266c488e253f588b9  gcc/testsuite/gfortran.dg/c_ptr_tests.f03
! 4cdacaa13f857b246cee8002733691c7  gcc/testsuite/gfortran.dg/c_ptr_tests_10.f03
  31a2a055da7c94fe365fefdd276823c4  gcc/testsuite/gfortran.dg/c_ptr_tests_11.f03
  ce72f8a3e4144de6f4924d35c12e7244  gcc/testsuite/gfortran.dg/c_ptr_tests_12.f03
  d1b107332fd2ca83ba6ac402e54202d6  gcc/testsuite/gfortran.dg/c_ptr_tests_13.f03
  1b3e3692430674b2cde54819e8cc23b7  gcc/testsuite/gfortran.dg/c_ptr_tests_14.f90
  945be6c0533407b0669dedfe30c893f8  gcc/testsuite/gfortran.dg/c_ptr_tests_15.f90
! b730eee7e97232a64bc0ea9aae2cae51  gcc/testsuite/gfortran.dg/c_ptr_tests_16.f90
  ac91e127e05ae13da7cec3fc1053a789  gcc/testsuite/gfortran.dg/c_ptr_tests_17.f90
  7a873f03774fb774534f537314416225  gcc/testsuite/gfortran.dg/c_ptr_tests_18.f90
  98fb1fadfe2e07ccdc842d472fd09e95  gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90
*************** f6be312d40aa69afff5a2130cf70acb9  gcc/te
*** 93664,93670 ****
  7aa5685a7f16644136d0f0d20953db0f  gcc/testsuite/gfortran.dg/c_ptr_tests_7_driver.c
  a18acb295fbe60dfb260cde9a97d93d7  gcc/testsuite/gfortran.dg/c_ptr_tests_8.f03
  995001192583052201265e1e09a4de5e  gcc/testsuite/gfortran.dg/c_ptr_tests_8_funcs.c
! 1c6c3f7db0516744fc8e78a4858a3a7b  gcc/testsuite/gfortran.dg/c_ptr_tests_9.f03
  3db7c8246d155117123c4ed63fb717be  gcc/testsuite/gfortran.dg/c_ptr_tests_driver.c
  6c39718a7a8dbcede0650e9e219b6c4a  gcc/testsuite/gfortran.dg/c_size_t_driver.c
  3611a4ab02b914ce03f3728bfd481c99  gcc/testsuite/gfortran.dg/c_size_t_test.f03
--- 100382,100388 ----
  7aa5685a7f16644136d0f0d20953db0f  gcc/testsuite/gfortran.dg/c_ptr_tests_7_driver.c
  a18acb295fbe60dfb260cde9a97d93d7  gcc/testsuite/gfortran.dg/c_ptr_tests_8.f03
  995001192583052201265e1e09a4de5e  gcc/testsuite/gfortran.dg/c_ptr_tests_8_funcs.c
! 840e0f5acc17a096cf0c690a6c0aa168  gcc/testsuite/gfortran.dg/c_ptr_tests_9.f03
  3db7c8246d155117123c4ed63fb717be  gcc/testsuite/gfortran.dg/c_ptr_tests_driver.c
  6c39718a7a8dbcede0650e9e219b6c4a  gcc/testsuite/gfortran.dg/c_size_t_driver.c
  3611a4ab02b914ce03f3728bfd481c99  gcc/testsuite/gfortran.dg/c_size_t_test.f03
*************** abda7a1cc59e13d9ae64469d146d30e9  gcc/te
*** 93688,93693 ****
--- 100406,100412 ----
  edc4a84b76a182bbd35fc0110dd89003  gcc/testsuite/gfortran.dg/char_array_constructor_2.f90
  17ac1cd1806c8d0ef2c54707891edcb5  gcc/testsuite/gfortran.dg/char_array_constructor_3.f90
  38330961b4d3c4145a78eeb52989d58f  gcc/testsuite/gfortran.dg/char_array_constructor_4.f90
+ e627bb5952d8692aac49f6092bf3ad01  gcc/testsuite/gfortran.dg/char_array_constructor_5.f90
  0eab9ce38c97643b74af7fdc3d5cff8f  gcc/testsuite/gfortran.dg/char_array_structure_constructor.f90
  af1f8e346e5a95d713525a5514b5b04d  gcc/testsuite/gfortran.dg/char_assign_1.f90
  bf9ec3d04bc6da4c4da71826eb967c7b  gcc/testsuite/gfortran.dg/char_associated_1.f90
*************** c9785c9fd5f854a6bb32eb226663d4a6  gcc/te
*** 93791,93797 ****
  52155afcdc7f61593bf6506ef7ca2348  gcc/testsuite/gfortran.dg/character_comparison_8.f90
  e095a5844fa090e86a92405f5c0b0dba  gcc/testsuite/gfortran.dg/character_comparison_9.f90
  3c251099889c78e5e0c76fe96288838d  gcc/testsuite/gfortran.dg/character_mismatch.f90
! 9a59817952ffe39d8f72423786ec1e4b  gcc/testsuite/gfortran.dg/character_workout_1.f90
  89ddbaa606b83db4b331a67d0037b847  gcc/testsuite/gfortran.dg/character_workout_4.f90
  50a996cd9c41e5c61f567b57a9d68a2d  gcc/testsuite/gfortran.dg/charlen_01.f90
  df26b34bc7ab97ed1f739b2ee67c8985  gcc/testsuite/gfortran.dg/charlen_02.f90
--- 100510,100516 ----
  52155afcdc7f61593bf6506ef7ca2348  gcc/testsuite/gfortran.dg/character_comparison_8.f90
  e095a5844fa090e86a92405f5c0b0dba  gcc/testsuite/gfortran.dg/character_comparison_9.f90
  3c251099889c78e5e0c76fe96288838d  gcc/testsuite/gfortran.dg/character_mismatch.f90
! 28d44be730e9e79e92d600030871dcd8  gcc/testsuite/gfortran.dg/character_workout_1.f90
  89ddbaa606b83db4b331a67d0037b847  gcc/testsuite/gfortran.dg/character_workout_4.f90
  50a996cd9c41e5c61f567b57a9d68a2d  gcc/testsuite/gfortran.dg/charlen_01.f90
  df26b34bc7ab97ed1f739b2ee67c8985  gcc/testsuite/gfortran.dg/charlen_02.f90
*************** cd9759177f83fe4b6a6a007850b05c80  gcc/te
*** 93891,93896 ****
--- 100610,100619 ----
  a2da662ef1c6e78fb94337f5f919de4b  gcc/testsuite/gfortran.dg/class_73.f90
  cd4d5e082f353ac50f6bb47405608c31  gcc/testsuite/gfortran.dg/class_74.f90
  ff53ec3db7460648db5445441eaa7533  gcc/testsuite/gfortran.dg/class_75.f90
+ 5a704b914920869f5501dd9cefa1c390  gcc/testsuite/gfortran.dg/class_76.f90
+ 2d57c3381d702e00aa92b9d1814a3130  gcc/testsuite/gfortran.dg/class_77.f90
+ ef36f2d59f25ffe6fb778ee69bc79504  gcc/testsuite/gfortran.dg/class_78.f90
+ 4e4475b95105d0f939ba052ba5bdab4c  gcc/testsuite/gfortran.dg/class_79.f90
  765b5ae237d318aee8909def266c457e  gcc/testsuite/gfortran.dg/class_8.f03
  6ad3d2ed9f82c5534e18375c93ce8c03  gcc/testsuite/gfortran.dg/class_9.f03
  eff35de84f2c16f8b8abcbc407237414  gcc/testsuite/gfortran.dg/class_alias.f90
*************** af62f8e63487374ab7f55bf98ba22f9f  gcc/te
*** 93925,93931 ****
  211e434394ea8ce43ce8f5c2e671416d  gcc/testsuite/gfortran.dg/class_array_12.f03
  7d1b70fed6324f2dae86399e70c60cb7  gcc/testsuite/gfortran.dg/class_array_13.f90
  c846364e17a1733317b1f609e1a937f9  gcc/testsuite/gfortran.dg/class_array_14.f90
! 147dbd0be1d3264d76ab3806ad66121a  gcc/testsuite/gfortran.dg/class_array_15.f03
  26e53d866d760ca631e05275ed5d5281  gcc/testsuite/gfortran.dg/class_array_16.f90
  db91c4c4aafba393cb88a89c0beacd9c  gcc/testsuite/gfortran.dg/class_array_17.f90
  c51442df4b78a56b7cd5dc0dacc16f6b  gcc/testsuite/gfortran.dg/class_array_18.f90
--- 100648,100654 ----
  211e434394ea8ce43ce8f5c2e671416d  gcc/testsuite/gfortran.dg/class_array_12.f03
  7d1b70fed6324f2dae86399e70c60cb7  gcc/testsuite/gfortran.dg/class_array_13.f90
  c846364e17a1733317b1f609e1a937f9  gcc/testsuite/gfortran.dg/class_array_14.f90
! 90fc85dc9bd404ddcb7d00dcb7d97691  gcc/testsuite/gfortran.dg/class_array_15.f03
  26e53d866d760ca631e05275ed5d5281  gcc/testsuite/gfortran.dg/class_array_16.f90
  db91c4c4aafba393cb88a89c0beacd9c  gcc/testsuite/gfortran.dg/class_array_17.f90
  c51442df4b78a56b7cd5dc0dacc16f6b  gcc/testsuite/gfortran.dg/class_array_18.f90
*************** e19eff957a152bb40ff83e3f1272b502  gcc/te
*** 93950,93955 ****
--- 100673,100679 ----
  ca12379c27a4fe30e7ee16db70126a08  gcc/testsuite/gfortran.dg/class_defined_operator_2.f03
  bffd58c6eb392174540e5effb5007d27  gcc/testsuite/gfortran.dg/class_dummy_1.f03
  87c8513199b2315d905a0403a0dc3153  gcc/testsuite/gfortran.dg/class_dummy_10.f90
+ 9fb383984e0761f304f4da9eeabd87a7  gcc/testsuite/gfortran.dg/class_dummy_11.f90
  695856ffada7ab91f95f3d41b3079166  gcc/testsuite/gfortran.dg/class_dummy_2.f03
  dbc20d52e3c86639db916ad3c6392de8  gcc/testsuite/gfortran.dg/class_dummy_3.f03
  3c084c9f366d687c0a674b8d42c2ea01  gcc/testsuite/gfortran.dg/class_dummy_4.f03
*************** f758820ceb8b3dc83b306077bb651d94  gcc/te
*** 93976,94012 ****
  fda1f206c2e1ff5cd9f550d75873293b  gcc/testsuite/gfortran.dg/class_to_type_2.f90
  b7e881e628c247d750478033fea18cb3  gcc/testsuite/gfortran.dg/class_to_type_3.f03
  363a8e7237fe405caaa21bb126f5a3a6  gcc/testsuite/gfortran.dg/class_to_type_4.f90
  b51c285d2aa337ba9d51a48947b0788a  gcc/testsuite/gfortran.dg/cmplx_intrinsic_1.f90
  05232ac9689380c9c4954d057d56c002  gcc/testsuite/gfortran.dg/co_reduce_1.f90
  f8e5c7aff6b53cc113f569da6b580aab  gcc/testsuite/gfortran.dg/co_reduce_2.f90
  ceda0022b0324d13515320cbc5635d79  gcc/testsuite/gfortran.dg/coarray/alloc_comp_1.f90
  939e6c8975a11f2e646a768bac9293f9  gcc/testsuite/gfortran.dg/coarray/alloc_comp_2.f90
  72674e7da2e86dedff70420da3d45132  gcc/testsuite/gfortran.dg/coarray/alloc_comp_3.f90
  734994954589fd9c52a0f9f5e65df97a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_4.f90
  5b5ec82dd29e86e4e8c1ffdcc8f1fff4  gcc/testsuite/gfortran.dg/coarray/alloc_comp_5.f90
  8b5117dc7ef6ac2ef489d65c72c69eca  gcc/testsuite/gfortran.dg/coarray/alloc_comp_6.f90
  c3ff223c334c03e16db45ce26e2eea4a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_7.f90
  0383efb987613ad7ba5897bf853a7c3d  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  51ba06c48080eb24ae44aa2f80ce06e7  gcc/testsuite/gfortran.dg/coarray/array_temporary-1.f90
  360f9437516a1e9e5cdfcc0773038d80  gcc/testsuite/gfortran.dg/coarray/array_temporary.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  0268d93e6cda40e43a982efb5b3db96a  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! ab7568509313e64254b8f521311ddb3a  gcc/testsuite/gfortran.dg/coarray/caf.exp
! 07112584e3674fe4fcd6065abdaec329  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
  a8535ad2a515ec0df0ef730df6f14831  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
  9604ece34279ee35811c44344503ca51  gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90
  c2fcd3c1508ec38085828e5481ea280c  gcc/testsuite/gfortran.dg/coarray/codimension_2b.f90
  138b64ab66402dec923a5ed290f9cddc  gcc/testsuite/gfortran.dg/coarray/codimension_3.f90
  ee39ad592286c583f1d1379691059313  gcc/testsuite/gfortran.dg/coarray/coindexed_1.f90
  f3a5dbd5b18b49f30a47e9c6ddf0ef10  gcc/testsuite/gfortran.dg/coarray/collectives_1.f90
  57d5669b2d7c4384f4f2cbf7f42c55e5  gcc/testsuite/gfortran.dg/coarray/collectives_2.f90
  7a0bf8e143e7c4ebaf6f3ce4b0caaef3  gcc/testsuite/gfortran.dg/coarray/collectives_3.f90
  f4aec2f0ed199113d979b69a74d8afa5  gcc/testsuite/gfortran.dg/coarray/collectives_4.f90
  6254722cb2fb8666108848130a4de4ef  gcc/testsuite/gfortran.dg/coarray/cosubscript_1.f90
  bc2e49396148d7be346be065b8879d1b  gcc/testsuite/gfortran.dg/coarray/data_1.f90
! c1d0b436da831f1ba2bf97a1a37b6eea  gcc/testsuite/gfortran.dg/coarray/dummy_1.f90
  a63070b05e27b7e6fd60da3efbd0dcad  gcc/testsuite/gfortran.dg/coarray/dummy_2.f90
  f90f6361d794d8b822e8dbb0cce15e43  gcc/testsuite/gfortran.dg/coarray/event_1.f90
  5c76c994fc104238808f24409769c109  gcc/testsuite/gfortran.dg/coarray/event_2.f90
  adfbd63a82cb07a5f08fcfc37965d57e  gcc/testsuite/gfortran.dg/coarray/event_3.f08
--- 100700,100749 ----
  fda1f206c2e1ff5cd9f550d75873293b  gcc/testsuite/gfortran.dg/class_to_type_2.f90
  b7e881e628c247d750478033fea18cb3  gcc/testsuite/gfortran.dg/class_to_type_3.f03
  363a8e7237fe405caaa21bb126f5a3a6  gcc/testsuite/gfortran.dg/class_to_type_4.f90
+ 8ac709463ea07c61a332e38d83d9f8f1  gcc/testsuite/gfortran.dg/class_transformational_1.f90
+ c29841cda434ff0f97175361e0f2ba6e  gcc/testsuite/gfortran.dg/class_transformational_2.f90
  b51c285d2aa337ba9d51a48947b0788a  gcc/testsuite/gfortran.dg/cmplx_intrinsic_1.f90
  05232ac9689380c9c4954d057d56c002  gcc/testsuite/gfortran.dg/co_reduce_1.f90
  f8e5c7aff6b53cc113f569da6b580aab  gcc/testsuite/gfortran.dg/co_reduce_2.f90
+ 83618d1b8ba94a01d70ad6f552f75664  gcc/testsuite/gfortran.dg/coarray/add_sources/submodule_1_sub.f90
  ceda0022b0324d13515320cbc5635d79  gcc/testsuite/gfortran.dg/coarray/alloc_comp_1.f90
+ b877b7f002c6b76e450c08474056810a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_10.f90
  939e6c8975a11f2e646a768bac9293f9  gcc/testsuite/gfortran.dg/coarray/alloc_comp_2.f90
  72674e7da2e86dedff70420da3d45132  gcc/testsuite/gfortran.dg/coarray/alloc_comp_3.f90
  734994954589fd9c52a0f9f5e65df97a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_4.f90
  5b5ec82dd29e86e4e8c1ffdcc8f1fff4  gcc/testsuite/gfortran.dg/coarray/alloc_comp_5.f90
  8b5117dc7ef6ac2ef489d65c72c69eca  gcc/testsuite/gfortran.dg/coarray/alloc_comp_6.f90
  c3ff223c334c03e16db45ce26e2eea4a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_7.f90
+ 6abd6f07e50a0d7b7451bc612e4b699d  gcc/testsuite/gfortran.dg/coarray/alloc_comp_8.f90
+ 8b2edc7032fa5f396abbae4f681283f9  gcc/testsuite/gfortran.dg/coarray/alloc_comp_9.f90
  0383efb987613ad7ba5897bf853a7c3d  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  51ba06c48080eb24ae44aa2f80ce06e7  gcc/testsuite/gfortran.dg/coarray/array_temporary-1.f90
  360f9437516a1e9e5cdfcc0773038d80  gcc/testsuite/gfortran.dg/coarray/array_temporary.f90
+ b3ff2dff195429e6641177e464dacd90  gcc/testsuite/gfortran.dg/coarray/associate_1.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  0268d93e6cda40e43a982efb5b3db96a  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! 818b810a29fcc700c3364fe052c3af1a  gcc/testsuite/gfortran.dg/coarray/caf.exp
! a1093e682d1d78384f50968f6210e05f  gcc/testsuite/gfortran.dg/coarray/class_1.f90
! 952d5a7ec504d04ac4bc5a2549767f76  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
  a8535ad2a515ec0df0ef730df6f14831  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
  9604ece34279ee35811c44344503ca51  gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90
  c2fcd3c1508ec38085828e5481ea280c  gcc/testsuite/gfortran.dg/coarray/codimension_2b.f90
  138b64ab66402dec923a5ed290f9cddc  gcc/testsuite/gfortran.dg/coarray/codimension_3.f90
  ee39ad592286c583f1d1379691059313  gcc/testsuite/gfortran.dg/coarray/coindexed_1.f90
+ 1f59f392da595105e79dd8ba8c180ec9  gcc/testsuite/gfortran.dg/coarray/coindexed_2.f90
+ 24bad3b59da9011ae0cda9f63405ff29  gcc/testsuite/gfortran.dg/coarray/coindexed_3.f08
+ 43d788d504cdfa97e23c07739b149766  gcc/testsuite/gfortran.dg/coarray/coindexed_4.f08
  f3a5dbd5b18b49f30a47e9c6ddf0ef10  gcc/testsuite/gfortran.dg/coarray/collectives_1.f90
  57d5669b2d7c4384f4f2cbf7f42c55e5  gcc/testsuite/gfortran.dg/coarray/collectives_2.f90
  7a0bf8e143e7c4ebaf6f3ce4b0caaef3  gcc/testsuite/gfortran.dg/coarray/collectives_3.f90
  f4aec2f0ed199113d979b69a74d8afa5  gcc/testsuite/gfortran.dg/coarray/collectives_4.f90
+ 08c26cd2acfb702bbcad0126543bcaa9  gcc/testsuite/gfortran.dg/coarray/complex_1.f90
  6254722cb2fb8666108848130a4de4ef  gcc/testsuite/gfortran.dg/coarray/cosubscript_1.f90
  bc2e49396148d7be346be065b8879d1b  gcc/testsuite/gfortran.dg/coarray/data_1.f90
! 61d8ff5ed498aef60c19139e15e861d1  gcc/testsuite/gfortran.dg/coarray/dummy_1.f90
  a63070b05e27b7e6fd60da3efbd0dcad  gcc/testsuite/gfortran.dg/coarray/dummy_2.f90
+ fcff5094bf79276fb0f242d41393edd8  gcc/testsuite/gfortran.dg/coarray/dummy_3.f90
  f90f6361d794d8b822e8dbb0cce15e43  gcc/testsuite/gfortran.dg/coarray/event_1.f90
  5c76c994fc104238808f24409769c109  gcc/testsuite/gfortran.dg/coarray/event_2.f90
  adfbd63a82cb07a5f08fcfc37965d57e  gcc/testsuite/gfortran.dg/coarray/event_3.f08
*************** f2e0d8eab800c2440470c47e27dbc818  gcc/te
*** 94018,94023 ****
--- 100755,100762 ----
  88d10faf7f4df40c6602b0e2d7316de4  gcc/testsuite/gfortran.dg/coarray/get_array.f90
  e3489bfc8266709eba8fcf20caaaa62b  gcc/testsuite/gfortran.dg/coarray/get_to_indexed_array_1.f90
  b7cd4ce2d77c6bd4ba77204cafd677bd  gcc/testsuite/gfortran.dg/coarray/get_to_indirect_array.f90
+ 29d0fc090954cf5cb0e8d292b2cacdb6  gcc/testsuite/gfortran.dg/coarray/get_with_fn_parameter.f90
+ b20fbe3ac0906bafebad01e8aed70dff  gcc/testsuite/gfortran.dg/coarray/get_with_scalar_fn.f90
  c6f860136fe695a933bc71d65019f925  gcc/testsuite/gfortran.dg/coarray/image_index_1.f90
  733aa7c8343bbc5aaaa63a38f663a43d  gcc/testsuite/gfortran.dg/coarray/image_index_2.f90
  f53ac06d9bda6a69841a8fb389e20622  gcc/testsuite/gfortran.dg/coarray/image_index_3.f90
*************** f53ac06d9bda6a69841a8fb389e20622  gcc/te
*** 94027,94050 ****
  80d7d0dcda96c20555328dd0ff1064f8  gcc/testsuite/gfortran.dg/coarray/lock_1.f90
  06868f26c24bc0b607bb50867f5157ec  gcc/testsuite/gfortran.dg/coarray/lock_2.f90
  359106b5cc9ca83cd061d945135080c8  gcc/testsuite/gfortran.dg/coarray/move_alloc_1.f90
! 9087fbbcf8b9fa18cd40d37049454317  gcc/testsuite/gfortran.dg/coarray/poly_run_1.f90
! 33490e10cc884f2605a30c4142056c08  gcc/testsuite/gfortran.dg/coarray/poly_run_2.f90
  4a38a76fec0e874592a1f9fb9f16c668  gcc/testsuite/gfortran.dg/coarray/poly_run_3.f90
  4b0341b2a1bb1e5bdc699106788a0a18  gcc/testsuite/gfortran.dg/coarray/pr107441-caf.f90
  908a6caa4e0b07e2cb6a80b7284553a9  gcc/testsuite/gfortran.dg/coarray/pr93671.f90
  b324389289606e577a87ba1c672a3812  gcc/testsuite/gfortran.dg/coarray/ptr_comp_1.f08
  7f10b2e799cec0c22aaebfa60b26756a  gcc/testsuite/gfortran.dg/coarray/ptr_comp_2.f08
  febcb2298d9879a0df44772e249cb87a  gcc/testsuite/gfortran.dg/coarray/ptr_comp_3.f08
  89fee2c127f49444ff8b90507cb38fba  gcc/testsuite/gfortran.dg/coarray/ptr_comp_4.f08
  8715742fbc5b4ca8ca6cd4d384da4933  gcc/testsuite/gfortran.dg/coarray/registering_1.f90
  6ff0066981556cd34c2887256d16c8ac  gcc/testsuite/gfortran.dg/coarray/scalar_alloc_1.f90
  228af371eab204116a57e2cef13ec783  gcc/testsuite/gfortran.dg/coarray/scalar_alloc_2.f90
  082fb3d24d8ca582dc6866adc5d40bad  gcc/testsuite/gfortran.dg/coarray/send_array.f90
! 99ddc7b9588128ed013161356003cd60  gcc/testsuite/gfortran.dg/coarray/send_char_array_1.f90
  284655b85e1918e14f547da9c373682d  gcc/testsuite/gfortran.dg/coarray/sendget_array.f90
  3e02c7e9c64dcef76ab4fc3f8db928c1  gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08
  ab6cc384c283380a5b6bdf00c3fbeb30  gcc/testsuite/gfortran.dg/coarray/stopped_images_2.f08
  7c2291ce8741b3d7e4f420982ab8a504  gcc/testsuite/gfortran.dg/coarray/subobject_1.f90
  e1dcfba76a21d9ab2aa004b9381b0cf7  gcc/testsuite/gfortran.dg/coarray/sync_1.f90
  82fcf23f3e2e6a5c36448298923969b8  gcc/testsuite/gfortran.dg/coarray/sync_3.f90
  5822c2d89d9063829c412517b5498373  gcc/testsuite/gfortran.dg/coarray/this_image_1.f90
--- 100766,100801 ----
  80d7d0dcda96c20555328dd0ff1064f8  gcc/testsuite/gfortran.dg/coarray/lock_1.f90
  06868f26c24bc0b607bb50867f5157ec  gcc/testsuite/gfortran.dg/coarray/lock_2.f90
  359106b5cc9ca83cd061d945135080c8  gcc/testsuite/gfortran.dg/coarray/move_alloc_1.f90
! ce0f5a926b10968749cdf08cebb52832  gcc/testsuite/gfortran.dg/coarray/move_alloc_2.f90
! 31ce4a6a9be4ef144386c337a1abc2c6  gcc/testsuite/gfortran.dg/coarray/poly_run_1.f90
! b5a297f740fa264744c9afc7fff7715d  gcc/testsuite/gfortran.dg/coarray/poly_run_2.f90
  4a38a76fec0e874592a1f9fb9f16c668  gcc/testsuite/gfortran.dg/coarray/poly_run_3.f90
  4b0341b2a1bb1e5bdc699106788a0a18  gcc/testsuite/gfortran.dg/coarray/pr107441-caf.f90
+ 5e97d7510dca977612f9a19418ceeb7f  gcc/testsuite/gfortran.dg/coarray/pr81265.f90
+ ee617f71d8add5aa5f59789faa17332e  gcc/testsuite/gfortran.dg/coarray/pr85510.f90
  908a6caa4e0b07e2cb6a80b7284553a9  gcc/testsuite/gfortran.dg/coarray/pr93671.f90
+ 8f6b877eb9387a7c6e9c860fd7e39296  gcc/testsuite/gfortran.dg/coarray/proc_pointer_assign_1.f90
  b324389289606e577a87ba1c672a3812  gcc/testsuite/gfortran.dg/coarray/ptr_comp_1.f08
  7f10b2e799cec0c22aaebfa60b26756a  gcc/testsuite/gfortran.dg/coarray/ptr_comp_2.f08
  febcb2298d9879a0df44772e249cb87a  gcc/testsuite/gfortran.dg/coarray/ptr_comp_3.f08
  89fee2c127f49444ff8b90507cb38fba  gcc/testsuite/gfortran.dg/coarray/ptr_comp_4.f08
+ 4363aaee62bdb771a18c2410074f4095  gcc/testsuite/gfortran.dg/coarray/ptr_comp_5.f08
+ 107c71f512eba5015cc3f24419d777e0  gcc/testsuite/gfortran.dg/coarray/ptr_comp_6.f08
  8715742fbc5b4ca8ca6cd4d384da4933  gcc/testsuite/gfortran.dg/coarray/registering_1.f90
  6ff0066981556cd34c2887256d16c8ac  gcc/testsuite/gfortran.dg/coarray/scalar_alloc_1.f90
  228af371eab204116a57e2cef13ec783  gcc/testsuite/gfortran.dg/coarray/scalar_alloc_2.f90
+ 2455faac576b058638e2a715cbe7be1b  gcc/testsuite/gfortran.dg/coarray/select_type_1.f90
+ 64469b96fc2933d7c8f2fcc747661ce3  gcc/testsuite/gfortran.dg/coarray/select_type_2.f90
+ ddb95e7c8d989cc785d7148fe2c7ef35  gcc/testsuite/gfortran.dg/coarray/select_type_3.f90
  082fb3d24d8ca582dc6866adc5d40bad  gcc/testsuite/gfortran.dg/coarray/send_array.f90
! 0f1ad7e60a867b185b87976cd198cccb  gcc/testsuite/gfortran.dg/coarray/send_char_array_1.f90
  284655b85e1918e14f547da9c373682d  gcc/testsuite/gfortran.dg/coarray/sendget_array.f90
+ 08fe426f090b2a9128b4e1f3ec1a1c96  gcc/testsuite/gfortran.dg/coarray/sizeof_1.f90
  3e02c7e9c64dcef76ab4fc3f8db928c1  gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08
  ab6cc384c283380a5b6bdf00c3fbeb30  gcc/testsuite/gfortran.dg/coarray/stopped_images_2.f08
+ 65014d11788ada7beab1f3d854639e53  gcc/testsuite/gfortran.dg/coarray/submodule_1.f90
  7c2291ce8741b3d7e4f420982ab8a504  gcc/testsuite/gfortran.dg/coarray/subobject_1.f90
+ 417b7a845e117b1bb544dab90a47011c  gcc/testsuite/gfortran.dg/coarray/substring_1.f90
  e1dcfba76a21d9ab2aa004b9381b0cf7  gcc/testsuite/gfortran.dg/coarray/sync_1.f90
  82fcf23f3e2e6a5c36448298923969b8  gcc/testsuite/gfortran.dg/coarray/sync_3.f90
  5822c2d89d9063829c412517b5498373  gcc/testsuite/gfortran.dg/coarray/this_image_1.f90
*************** ac773563b3252cd5f895af702a441868  gcc/te
*** 94087,94093 ****
  ad8ecfdba25ace790b9bfc8e94e0e05f  gcc/testsuite/gfortran.dg/coarray_4.f90
  74b2d9d67ebf3d7de2732dbd98a273b7  gcc/testsuite/gfortran.dg/coarray_40.f90
  cf7cfa2032f638ac67ce56b7d4e08a3d  gcc/testsuite/gfortran.dg/coarray_41.f90
! 248d8d9892330b8d193515001f8f85ab  gcc/testsuite/gfortran.dg/coarray_42.f90
  b67430669a5503a2b6f70e534e303644  gcc/testsuite/gfortran.dg/coarray_43.f90
  d760d2f81e5c1193f59f6e95776c5932  gcc/testsuite/gfortran.dg/coarray_44.f90
  ae84ff8684b83df37cd04c93355bb779  gcc/testsuite/gfortran.dg/coarray_45.f90
--- 100838,100844 ----
  ad8ecfdba25ace790b9bfc8e94e0e05f  gcc/testsuite/gfortran.dg/coarray_4.f90
  74b2d9d67ebf3d7de2732dbd98a273b7  gcc/testsuite/gfortran.dg/coarray_40.f90
  cf7cfa2032f638ac67ce56b7d4e08a3d  gcc/testsuite/gfortran.dg/coarray_41.f90
! 55eec0a4e0b71341f9d1b14303360a5f  gcc/testsuite/gfortran.dg/coarray_42.f90
  b67430669a5503a2b6f70e534e303644  gcc/testsuite/gfortran.dg/coarray_43.f90
  d760d2f81e5c1193f59f6e95776c5932  gcc/testsuite/gfortran.dg/coarray_44.f90
  ae84ff8684b83df37cd04c93355bb779  gcc/testsuite/gfortran.dg/coarray_45.f90
*************** ef172e1d19584d7e55648b555dbf8fa3  gcc/te
*** 94103,94110 ****
  fb13a77fe326ba654ca8be73c187d02a  gcc/testsuite/gfortran.dg/coarray_9.f90
  c6086bb2f74e754b43ef691cf1b6ea3e  gcc/testsuite/gfortran.dg/coarray_alloc_comp_1.f08
  3ea4f1bb6cd27632f86f990dd870771e  gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
! de6a038b8eedc74e26db5e5afe1cdba6  gcc/testsuite/gfortran.dg/coarray_alloc_comp_3.f08
! 04473a5a6b711b07a1e6a87b46039f60  gcc/testsuite/gfortran.dg/coarray_alloc_comp_4.f08
  4479f1d27bd27783f1bee1c82742f214  gcc/testsuite/gfortran.dg/coarray_alloc_comp_6.f08
  348779956729103b5d6f50b0e4d087c2  gcc/testsuite/gfortran.dg/coarray_alloc_comp_7.f08
  2faa0db0bed8f81259c7f2ebf21912a0  gcc/testsuite/gfortran.dg/coarray_alloc_comp_8.f08
--- 100854,100860 ----
  fb13a77fe326ba654ca8be73c187d02a  gcc/testsuite/gfortran.dg/coarray_9.f90
  c6086bb2f74e754b43ef691cf1b6ea3e  gcc/testsuite/gfortran.dg/coarray_alloc_comp_1.f08
  3ea4f1bb6cd27632f86f990dd870771e  gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
! eb7b229fd1721f4cb260dddfae51f558  gcc/testsuite/gfortran.dg/coarray_alloc_comp_4.f08
  4479f1d27bd27783f1bee1c82742f214  gcc/testsuite/gfortran.dg/coarray_alloc_comp_6.f08
  348779956729103b5d6f50b0e4d087c2  gcc/testsuite/gfortran.dg/coarray_alloc_comp_7.f08
  2faa0db0bed8f81259c7f2ebf21912a0  gcc/testsuite/gfortran.dg/coarray_alloc_comp_8.f08
*************** c2616fae76af07a79e5d72322ffa2b9f  gcc/te
*** 94119,94125 ****
  e63a013eba2d6fe4cbef12573cb14e52  gcc/testsuite/gfortran.dg/coarray_allocate_4.f08
  da65b12e59b7e4e5e809eb0ee6b98e43  gcc/testsuite/gfortran.dg/coarray_allocate_5.f08
  a50602d906d76b4a21f37294673e31af  gcc/testsuite/gfortran.dg/coarray_allocate_6.f08
! c7c2a8716011744890a7811cf4d01f3e  gcc/testsuite/gfortran.dg/coarray_allocate_7.f08
  a1d0bd22c430ddee1c83cad2686e4980  gcc/testsuite/gfortran.dg/coarray_allocate_8.f08
  da900379c7ad3371ef804c985d374b29  gcc/testsuite/gfortran.dg/coarray_allocate_9.f08
  5090aecedde7cbffa29a2966b1367a69  gcc/testsuite/gfortran.dg/coarray_args_1.f90
--- 100869,100875 ----
  e63a013eba2d6fe4cbef12573cb14e52  gcc/testsuite/gfortran.dg/coarray_allocate_4.f08
  da65b12e59b7e4e5e809eb0ee6b98e43  gcc/testsuite/gfortran.dg/coarray_allocate_5.f08
  a50602d906d76b4a21f37294673e31af  gcc/testsuite/gfortran.dg/coarray_allocate_6.f08
! 2bf430adb777fe6f66b8c70620e7c7ab  gcc/testsuite/gfortran.dg/coarray_allocate_7.f08
  a1d0bd22c430ddee1c83cad2686e4980  gcc/testsuite/gfortran.dg/coarray_allocate_8.f08
  da900379c7ad3371ef804c985d374b29  gcc/testsuite/gfortran.dg/coarray_allocate_9.f08
  5090aecedde7cbffa29a2966b1367a69  gcc/testsuite/gfortran.dg/coarray_args_1.f90
*************** f3b8d83af012a8804b15f5016664e973  gcc/te
*** 94128,94134 ****
  b2f376eece4fd9267305268634b9ef98  gcc/testsuite/gfortran.dg/coarray_atomic_2.f90
  1d7342a16f42a3d440e6d6622646093f  gcc/testsuite/gfortran.dg/coarray_atomic_3.f90
  0bbe63eed5e9eda2a1fbaac162978ea0  gcc/testsuite/gfortran.dg/coarray_atomic_4.f90
! 6c045f2f61861925e6a6d3809e79bada  gcc/testsuite/gfortran.dg/coarray_atomic_5.f90
  53606f253145ffe43df39cc61fe5aef2  gcc/testsuite/gfortran.dg/coarray_atomic_6.f90
  47af4614d0edd5061b2696b16ddcf85a  gcc/testsuite/gfortran.dg/coarray_class_1.f90
  ead5277cf75b1f10e47a668cb257f485  gcc/testsuite/gfortran.dg/coarray_class_2.f90
--- 100878,100884 ----
  b2f376eece4fd9267305268634b9ef98  gcc/testsuite/gfortran.dg/coarray_atomic_2.f90
  1d7342a16f42a3d440e6d6622646093f  gcc/testsuite/gfortran.dg/coarray_atomic_3.f90
  0bbe63eed5e9eda2a1fbaac162978ea0  gcc/testsuite/gfortran.dg/coarray_atomic_4.f90
! 7fdda7f05c78a75b1c1f77af8274488b  gcc/testsuite/gfortran.dg/coarray_atomic_5.f90
  53606f253145ffe43df39cc61fe5aef2  gcc/testsuite/gfortran.dg/coarray_atomic_6.f90
  47af4614d0edd5061b2696b16ddcf85a  gcc/testsuite/gfortran.dg/coarray_class_1.f90
  ead5277cf75b1f10e47a668cb257f485  gcc/testsuite/gfortran.dg/coarray_class_2.f90
*************** e4976ca0446d73c3929df8b036747a1b  gcc/te
*** 94160,94175 ****
  cfe684f5b35d41e24c9205e3f305bb02  gcc/testsuite/gfortran.dg/coarray_lib_alloc_1.f90
  9127925813480208932fb9d8668ceff0  gcc/testsuite/gfortran.dg/coarray_lib_alloc_2.f90
  67bd05aeb98a1f66f977d0e67035deac  gcc/testsuite/gfortran.dg/coarray_lib_alloc_3.f90
! 9d2ebabfe53c940bfc0e9073601f9de7  gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90
! ddbca428ed4f8523ff51bbcdb8373207  gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90
  fb3fff2823ee279a3e0c3a44eb7956ab  gcc/testsuite/gfortran.dg/coarray_lib_move_alloc_1.f90
  b2e83f0dafb1ceb02152eeb61a07f460  gcc/testsuite/gfortran.dg/coarray_lib_realloc_1.f90
  86e1c68d070859c3fb832b2183d75771  gcc/testsuite/gfortran.dg/coarray_lib_this_image_1.f90
! 50afb3316769bf31ed08b1cef60cdc84  gcc/testsuite/gfortran.dg/coarray_lib_this_image_2.f90
  357b9e5f07c1acadbad5d6aba8104feb  gcc/testsuite/gfortran.dg/coarray_lib_token_1.f90
  29ddc6fc8819d6192a801e29730124b2  gcc/testsuite/gfortran.dg/coarray_lib_token_2.f90
  0e643af8d5f9171f617bab48e7717c78  gcc/testsuite/gfortran.dg/coarray_lib_token_3.f90
! 61e12b437eeaa3bad13cc520039e5d8a  gcc/testsuite/gfortran.dg/coarray_lib_token_4.f90
  2d0699c77682dc9d6a0ceba649b61a15  gcc/testsuite/gfortran.dg/coarray_lock_1.f90
  f7a47ce438683c4f8c5566d174e4525b  gcc/testsuite/gfortran.dg/coarray_lock_2.f90
  bb8d56d19a9b76a2194076b6f5de055f  gcc/testsuite/gfortran.dg/coarray_lock_3.f90
--- 100910,100925 ----
  cfe684f5b35d41e24c9205e3f305bb02  gcc/testsuite/gfortran.dg/coarray_lib_alloc_1.f90
  9127925813480208932fb9d8668ceff0  gcc/testsuite/gfortran.dg/coarray_lib_alloc_2.f90
  67bd05aeb98a1f66f977d0e67035deac  gcc/testsuite/gfortran.dg/coarray_lib_alloc_3.f90
! e205d4e5e4d4760bb720f1a9ede26ffe  gcc/testsuite/gfortran.dg/coarray_lib_alloc_4.f90
! 4ac11a4d07002d8de8173130fac3171a  gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90
  fb3fff2823ee279a3e0c3a44eb7956ab  gcc/testsuite/gfortran.dg/coarray_lib_move_alloc_1.f90
  b2e83f0dafb1ceb02152eeb61a07f460  gcc/testsuite/gfortran.dg/coarray_lib_realloc_1.f90
  86e1c68d070859c3fb832b2183d75771  gcc/testsuite/gfortran.dg/coarray_lib_this_image_1.f90
! cc7b1657de64dc18aa34c31291e692dc  gcc/testsuite/gfortran.dg/coarray_lib_this_image_2.f90
  357b9e5f07c1acadbad5d6aba8104feb  gcc/testsuite/gfortran.dg/coarray_lib_token_1.f90
  29ddc6fc8819d6192a801e29730124b2  gcc/testsuite/gfortran.dg/coarray_lib_token_2.f90
  0e643af8d5f9171f617bab48e7717c78  gcc/testsuite/gfortran.dg/coarray_lib_token_3.f90
! 1b3c7a86b8ef34e232357cb1e76b8755  gcc/testsuite/gfortran.dg/coarray_lib_token_4.f90
  2d0699c77682dc9d6a0ceba649b61a15  gcc/testsuite/gfortran.dg/coarray_lock_1.f90
  f7a47ce438683c4f8c5566d174e4525b  gcc/testsuite/gfortran.dg/coarray_lock_2.f90
  bb8d56d19a9b76a2194076b6f5de055f  gcc/testsuite/gfortran.dg/coarray_lock_3.f90
*************** be78a9a8d107997dfb6a26a694e767f6  gcc/te
*** 94183,94197 ****
  83e23744ec4b7e3e2b0115d1c8949dc6  gcc/testsuite/gfortran.dg/coarray_poly_4.f90
  c36ce428dcaec854709426fbefc380b0  gcc/testsuite/gfortran.dg/coarray_poly_5.f90
  aeaa6630b4a7fdbf728d1ac6c3330841  gcc/testsuite/gfortran.dg/coarray_poly_6.f90
! d11ef8bb7536503099921eebfd2332b1  gcc/testsuite/gfortran.dg/coarray_poly_7.f90
! 35805debcf262207e1ddfcac6614145f  gcc/testsuite/gfortran.dg/coarray_poly_8.f90
  4a4a75de4af949451d8e1d1beaf8318c  gcc/testsuite/gfortran.dg/coarray_poly_9.f90
  ec4bb6022b07b7f8cb9cc0cbc6b36d3f  gcc/testsuite/gfortran.dg/coarray_ptr_comp_1.f08
  7653a4686829bd63b9b7a535c8b7c035  gcc/testsuite/gfortran.dg/coarray_ptr_comp_2.f08
  dd830c7ec7cea0f5ab7dbd19f76c38cb  gcc/testsuite/gfortran.dg/coarray_ptr_comp_3.f08
  912bc1f4886cfe09232f3684fc1e4084  gcc/testsuite/gfortran.dg/coarray_send_by_ref_1.f08
  c15a01f85f0059696c3135040a4f2fc3  gcc/testsuite/gfortran.dg/coarray_stat_2.f90
! 087a3be095c98ee4bda36068c99224d4  gcc/testsuite/gfortran.dg/coarray_stat_function.f90
  77f1bd831abf2ff29f84109d3f3bab3b  gcc/testsuite/gfortran.dg/coarray_stat_whitespace.f90
  7e0ae006a51c482281b3ce9e41151630  gcc/testsuite/gfortran.dg/coarray_stopped_images_1.f08
  02137ab63da8c69fd9162c7b4a473d96  gcc/testsuite/gfortran.dg/coarray_subobject_1.f90
--- 100933,100947 ----
  83e23744ec4b7e3e2b0115d1c8949dc6  gcc/testsuite/gfortran.dg/coarray_poly_4.f90
  c36ce428dcaec854709426fbefc380b0  gcc/testsuite/gfortran.dg/coarray_poly_5.f90
  aeaa6630b4a7fdbf728d1ac6c3330841  gcc/testsuite/gfortran.dg/coarray_poly_6.f90
! dfd3a0bc05818a56c9f6bfdf7fe9754a  gcc/testsuite/gfortran.dg/coarray_poly_7.f90
! 70ae355b0d2ad53af94e4ea717b9bdcb  gcc/testsuite/gfortran.dg/coarray_poly_8.f90
  4a4a75de4af949451d8e1d1beaf8318c  gcc/testsuite/gfortran.dg/coarray_poly_9.f90
  ec4bb6022b07b7f8cb9cc0cbc6b36d3f  gcc/testsuite/gfortran.dg/coarray_ptr_comp_1.f08
  7653a4686829bd63b9b7a535c8b7c035  gcc/testsuite/gfortran.dg/coarray_ptr_comp_2.f08
  dd830c7ec7cea0f5ab7dbd19f76c38cb  gcc/testsuite/gfortran.dg/coarray_ptr_comp_3.f08
  912bc1f4886cfe09232f3684fc1e4084  gcc/testsuite/gfortran.dg/coarray_send_by_ref_1.f08
  c15a01f85f0059696c3135040a4f2fc3  gcc/testsuite/gfortran.dg/coarray_stat_2.f90
! 524cf87643c13bb99665d8ce2489c9b2  gcc/testsuite/gfortran.dg/coarray_stat_function.f90
  77f1bd831abf2ff29f84109d3f3bab3b  gcc/testsuite/gfortran.dg/coarray_stat_whitespace.f90
  7e0ae006a51c482281b3ce9e41151630  gcc/testsuite/gfortran.dg/coarray_stopped_images_1.f08
  02137ab63da8c69fd9162c7b4a473d96  gcc/testsuite/gfortran.dg/coarray_subobject_1.f90
*************** f167ac47517d62f94f60b1824d6a54d8  gcc/te
*** 94199,94205 ****
  87ae412e381a4c934bbbd6a7549adb39  gcc/testsuite/gfortran.dg/coarray_sync_memory.f90
  658e444e52b22ea496105ef9bc744b46  gcc/testsuite/gfortran.dg/coarray_this_image_1.f90
  df6beb93b53ebd5769af2eb7ec60add0  gcc/testsuite/gfortran.dg/coarray_this_image_2.f90
! ff3b26c2d8addd32975c0a4975b95c1c  gcc/testsuite/gfortran.dg/coindexed_1.f90
  f921a7c5a0e4098dd6b6edf4e317a4e1  gcc/testsuite/gfortran.dg/com_block_driver.f90
  082efd8f928b26368f7bd7dc47edc279  gcc/testsuite/gfortran.dg/comma.f
  ca9b384b7523fa630f1d4edff3cd4267  gcc/testsuite/gfortran.dg/comma_IO_extension_1.f90
--- 100949,100955 ----
  87ae412e381a4c934bbbd6a7549adb39  gcc/testsuite/gfortran.dg/coarray_sync_memory.f90
  658e444e52b22ea496105ef9bc744b46  gcc/testsuite/gfortran.dg/coarray_this_image_1.f90
  df6beb93b53ebd5769af2eb7ec60add0  gcc/testsuite/gfortran.dg/coarray_this_image_2.f90
! a5f717248371a352e6f5c17a1ac1e692  gcc/testsuite/gfortran.dg/coindexed_1.f90
  f921a7c5a0e4098dd6b6edf4e317a4e1  gcc/testsuite/gfortran.dg/com_block_driver.f90
  082efd8f928b26368f7bd7dc47edc279  gcc/testsuite/gfortran.dg/comma.f
  ca9b384b7523fa630f1d4edff3cd4267  gcc/testsuite/gfortran.dg/comma_IO_extension_1.f90
*************** ca9b384b7523fa630f1d4edff3cd4267  gcc/te
*** 94207,94213 ****
  b68510025102f4e42c5ab3a0ebf1b5aa  gcc/testsuite/gfortran.dg/comma_format_extension_1.f
  e9f174aaa655ec093b7c3dc075581e89  gcc/testsuite/gfortran.dg/comma_format_extension_2.f
  cc4fd56c375338d8c90f15498b4ab793  gcc/testsuite/gfortran.dg/comma_format_extension_3.f
! 3163b0c9d7dcb20867826fb6ce1259b6  gcc/testsuite/gfortran.dg/comma_format_extension_4.f
  e9defd3400b97dd717e34ceddbb15145  gcc/testsuite/gfortran.dg/common_1.f
  ad56b8ccf93a09af1f57171e13ba7a6a  gcc/testsuite/gfortran.dg/common_1.f90
  e9483e1a9611925f796174b3be2bff6e  gcc/testsuite/gfortran.dg/common_10.f90
--- 100957,100963 ----
  b68510025102f4e42c5ab3a0ebf1b5aa  gcc/testsuite/gfortran.dg/comma_format_extension_1.f
  e9f174aaa655ec093b7c3dc075581e89  gcc/testsuite/gfortran.dg/comma_format_extension_2.f
  cc4fd56c375338d8c90f15498b4ab793  gcc/testsuite/gfortran.dg/comma_format_extension_3.f
! 4958e703e9cee5c3b3f544b53b66a7f9  gcc/testsuite/gfortran.dg/comma_format_extension_4.f
  e9defd3400b97dd717e34ceddbb15145  gcc/testsuite/gfortran.dg/common_1.f
  ad56b8ccf93a09af1f57171e13ba7a6a  gcc/testsuite/gfortran.dg/common_1.f90
  e9483e1a9611925f796174b3be2bff6e  gcc/testsuite/gfortran.dg/common_10.f90
*************** d5539b20ee7c35bfc0fcb236052a68ea  gcc/te
*** 94230,94236 ****
--- 100980,100989 ----
  70a95b679d7df7dca534b69660b7f48b  gcc/testsuite/gfortran.dg/common_26.f90
  d92cf739756be07096c110006ed91771  gcc/testsuite/gfortran.dg/common_27.f90
  1ce86df2c2a8e3d119fe78ca581309a3  gcc/testsuite/gfortran.dg/common_28.f90
+ 9da0b6294cd361d903909232b6f1cb30  gcc/testsuite/gfortran.dg/common_29.f90
  75ce44e9a564ff39f5a9738947fd61f0  gcc/testsuite/gfortran.dg/common_3.f90
+ 524d83ffa6007b9daaf59246c15162c9  gcc/testsuite/gfortran.dg/common_30.f90
+ 01b8afaee9617beec95cb2bb5375af1e  gcc/testsuite/gfortran.dg/common_31.f90
  d682a44a03643151e3f0046fc043a5f0  gcc/testsuite/gfortran.dg/common_4.f90
  d2308c0b53d688aae1dcd0e309cb63c2  gcc/testsuite/gfortran.dg/common_5.f
  efd711390e553828ec90bbbf4d5fdcf6  gcc/testsuite/gfortran.dg/common_6.f90
*************** cc15d700b2201abf15a3b13b9acfdbb3  gcc/te
*** 94247,94253 ****
  f770055e72021d6538853fe3a1ea0e97  gcc/testsuite/gfortran.dg/common_resize_1.f
  904d80821d2b427a450b89f43798d139  gcc/testsuite/gfortran.dg/compare_interfaces.f90
  8901ea0d542b37025e06a070d4f9f6a6  gcc/testsuite/gfortran.dg/compiler-directive_1.f90
! 5fcb72595e9b6b0307b878501d384720  gcc/testsuite/gfortran.dg/compiler-directive_2.f
  cfd54d23052dc6b16ad17bcf76406ff1  gcc/testsuite/gfortran.dg/complex_int_1.f90
  5179c7f50f083ae353700bc7b9e916cb  gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90
  7c823bfc6fe5a1777f3e40fc0e756cd0  gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90
--- 101000,101006 ----
  f770055e72021d6538853fe3a1ea0e97  gcc/testsuite/gfortran.dg/common_resize_1.f
  904d80821d2b427a450b89f43798d139  gcc/testsuite/gfortran.dg/compare_interfaces.f90
  8901ea0d542b37025e06a070d4f9f6a6  gcc/testsuite/gfortran.dg/compiler-directive_1.f90
! 22a0276ca35bf42f009be9c0f91eedb5  gcc/testsuite/gfortran.dg/compiler-directive_2.f
  cfd54d23052dc6b16ad17bcf76406ff1  gcc/testsuite/gfortran.dg/complex_int_1.f90
  5179c7f50f083ae353700bc7b9e916cb  gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90
  7c823bfc6fe5a1777f3e40fc0e756cd0  gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90
*************** f8a4ca21ccf302214564ec0d59e8fd51  gcc/te
*** 94327,94333 ****
  6c5fde96cb793d7badc2635511fec23b  gcc/testsuite/gfortran.dg/cray_pointers_10.f90
  74dd2b09e2326c23ec50a90bf151d3b9  gcc/testsuite/gfortran.dg/cray_pointers_11.f90
  14819713d383cb1fa792e93981cec2ad  gcc/testsuite/gfortran.dg/cray_pointers_12.f90
! e973e5ebed82feb1ac5ff4990efdfe76  gcc/testsuite/gfortran.dg/cray_pointers_2.f90
  49ea5999b0fbbd860fa0b8b1e6a01397  gcc/testsuite/gfortran.dg/cray_pointers_3.f90
  c00f3a9d2f365b0dab03e2415fabbc16  gcc/testsuite/gfortran.dg/cray_pointers_4.f90
  b97f5efe433d04510fdaae3ffbcc4218  gcc/testsuite/gfortran.dg/cray_pointers_5.f90
--- 101080,101087 ----
  6c5fde96cb793d7badc2635511fec23b  gcc/testsuite/gfortran.dg/cray_pointers_10.f90
  74dd2b09e2326c23ec50a90bf151d3b9  gcc/testsuite/gfortran.dg/cray_pointers_11.f90
  14819713d383cb1fa792e93981cec2ad  gcc/testsuite/gfortran.dg/cray_pointers_12.f90
! 1de3372d6065323b2d05753364b5310b  gcc/testsuite/gfortran.dg/cray_pointers_13.f90
! ed40f5a9ecdf530f80dd719932a0cf3e  gcc/testsuite/gfortran.dg/cray_pointers_2.f90
  49ea5999b0fbbd860fa0b8b1e6a01397  gcc/testsuite/gfortran.dg/cray_pointers_3.f90
  c00f3a9d2f365b0dab03e2415fabbc16  gcc/testsuite/gfortran.dg/cray_pointers_4.f90
  b97f5efe433d04510fdaae3ffbcc4218  gcc/testsuite/gfortran.dg/cray_pointers_5.f90
*************** adf3e611b5d9dd41324a93faee4fe2c9  gcc/te
*** 94401,94407 ****
  88c4e7deca20be3e33e616092b99e017  gcc/testsuite/gfortran.dg/deallocate_error_4.f90
  70bd882ce015f7f82966397339ec0d16  gcc/testsuite/gfortran.dg/deallocate_stat.f90
  b2d4c30c54f17f05d0e6d3ae921a7be8  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
! 301d6e3f859562018247d4034b3c4b44  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
  9afde2cd5a8b47b5c4a2b2438fcd4de6  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
--- 101155,101161 ----
  88c4e7deca20be3e33e616092b99e017  gcc/testsuite/gfortran.dg/deallocate_error_4.f90
  70bd882ce015f7f82966397339ec0d16  gcc/testsuite/gfortran.dg/deallocate_stat.f90
  b2d4c30c54f17f05d0e6d3ae921a7be8  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
! 67e9ef5401b4d1497adc41721357be25  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
  9afde2cd5a8b47b5c4a2b2438fcd4de6  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
*************** ac7e4f8e406a6c26533909c71fa6b3fd  gcc/te
*** 94528,94537 ****
  ad49d41a6e763bbfd0eae1190d0fc6fe  gcc/testsuite/gfortran.dg/dec_union_9.f90
  79c3f457c445f809e8c9b44b6abf4802  gcc/testsuite/gfortran.dg/default_format_1.f90
  42dc43ca59716a600a5d47ef02504fc7  gcc/testsuite/gfortran.dg/default_format_1.inc
! 4038a30a77040c8796a16b1060bbcd0d  gcc/testsuite/gfortran.dg/default_format_2.f90
  c286b196507e9ffee9aad5b53cf42fd7  gcc/testsuite/gfortran.dg/default_format_2.inc
  64f57d53f6e0bd279467e0e2be7d3d39  gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
! 4867bb913b8c2ac8368d857dd12330ea  gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
  42b3bc794999b325dd25fadf49212667  gcc/testsuite/gfortran.dg/default_initialization_1.f90
  ba730e52e3b48dd9a54bf3a8e2b06575  gcc/testsuite/gfortran.dg/default_initialization_2.f90
  7af7a0ca7606f9ae6e52e14e617baec0  gcc/testsuite/gfortran.dg/default_initialization_3.f90
--- 101282,101291 ----
  ad49d41a6e763bbfd0eae1190d0fc6fe  gcc/testsuite/gfortran.dg/dec_union_9.f90
  79c3f457c445f809e8c9b44b6abf4802  gcc/testsuite/gfortran.dg/default_format_1.f90
  42dc43ca59716a600a5d47ef02504fc7  gcc/testsuite/gfortran.dg/default_format_1.inc
! f1d0fca3ee7106a381683b515e9be1e9  gcc/testsuite/gfortran.dg/default_format_2.f90
  c286b196507e9ffee9aad5b53cf42fd7  gcc/testsuite/gfortran.dg/default_format_2.inc
  64f57d53f6e0bd279467e0e2be7d3d39  gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
! d445f32606c863b60b725645e56546c3  gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
  42b3bc794999b325dd25fadf49212667  gcc/testsuite/gfortran.dg/default_initialization_1.f90
  ba730e52e3b48dd9a54bf3a8e2b06575  gcc/testsuite/gfortran.dg/default_initialization_2.f90
  7af7a0ca7606f9ae6e52e14e617baec0  gcc/testsuite/gfortran.dg/default_initialization_3.f90
*************** ba365a2701ea3b0fc6771efdf4f3e387  gcc/te
*** 94549,94555 ****
  682a1b0221ad32f91fdcadaf624fc3cd  gcc/testsuite/gfortran.dg/deferred_character_15.f90
  fa45f3c3b004c914daeccfa3f8ab74b1  gcc/testsuite/gfortran.dg/deferred_character_16.f90
  c2d3fe3d7d640f7941cc2bc632a62dae  gcc/testsuite/gfortran.dg/deferred_character_17.f90
! 1a26e360dc164c3593384827ba0ea576  gcc/testsuite/gfortran.dg/deferred_character_18.f90
  2337fab48f0af327b627dffd78987500  gcc/testsuite/gfortran.dg/deferred_character_19.f90
  4dda35461dd9482e65dbb912150ec1c8  gcc/testsuite/gfortran.dg/deferred_character_2.f90
  4730f9f9f46b45313c6c3a8f9e938ffb  gcc/testsuite/gfortran.dg/deferred_character_20.f90
--- 101303,101309 ----
  682a1b0221ad32f91fdcadaf624fc3cd  gcc/testsuite/gfortran.dg/deferred_character_15.f90
  fa45f3c3b004c914daeccfa3f8ab74b1  gcc/testsuite/gfortran.dg/deferred_character_16.f90
  c2d3fe3d7d640f7941cc2bc632a62dae  gcc/testsuite/gfortran.dg/deferred_character_17.f90
! e49a5e6094a936658d7bd4390d536e51  gcc/testsuite/gfortran.dg/deferred_character_18.f90
  2337fab48f0af327b627dffd78987500  gcc/testsuite/gfortran.dg/deferred_character_19.f90
  4dda35461dd9482e65dbb912150ec1c8  gcc/testsuite/gfortran.dg/deferred_character_2.f90
  4730f9f9f46b45313c6c3a8f9e938ffb  gcc/testsuite/gfortran.dg/deferred_character_20.f90
*************** c8ca7a67e0b9c502e7883c6187a3b1f3  gcc/te
*** 94572,94577 ****
--- 101326,101332 ----
  90f06c61f4e28e5c0cd42eea0caba538  gcc/testsuite/gfortran.dg/deferred_character_35.f90
  f69f56fb4872918c466c7554afc79da9  gcc/testsuite/gfortran.dg/deferred_character_36.f90
  0c1889dba05d51d0a09b189a6caa16c0  gcc/testsuite/gfortran.dg/deferred_character_37.f90
+ 51fc8b5f96812427754c555184ed2c63  gcc/testsuite/gfortran.dg/deferred_character_38.f90
  5eede6c791f6d272034f9b84850ac6af  gcc/testsuite/gfortran.dg/deferred_character_4.f90
  981b809300de368e8fac65be4b40099c  gcc/testsuite/gfortran.dg/deferred_character_5.f90
  b8df78111bec4d4d4b97da6a15228361  gcc/testsuite/gfortran.dg/deferred_character_6.f90
*************** ae3f4c1b78646e97fc572c6d3e6fb09b  gcc/te
*** 94595,94600 ****
--- 101350,101356 ----
  dee6967c044d8780d274607ace40fce8  gcc/testsuite/gfortran.dg/defined_assignment_1.f90
  13645fae1c2e64ba0baf240c765ebdd1  gcc/testsuite/gfortran.dg/defined_assignment_10.f90
  e92d2c6eb8e82818db7d81de4f67b94d  gcc/testsuite/gfortran.dg/defined_assignment_11.f90
+ bd9af8b14b7782e11b379e7e755e7a0c  gcc/testsuite/gfortran.dg/defined_assignment_12.f90
  a423bfbbbd88739f2a162bbc16b0033e  gcc/testsuite/gfortran.dg/defined_assignment_2.f90
  5d8c271e027729075b343b50faf2dd71  gcc/testsuite/gfortran.dg/defined_assignment_3.f90
  fd8ae494dd71724cf339b0bf0b1957b2  gcc/testsuite/gfortran.dg/defined_assignment_4.f90
*************** d8731c4a7857584ae6a224900773f967  gcc/te
*** 94665,94671 ****
--- 101421,101430 ----
  699f1378f5c1fcdc54eb21fdb4a59be1  gcc/testsuite/gfortran.dg/dependency_7.f90
  89a3206dfabae1e31ea62ec7fa264ee6  gcc/testsuite/gfortran.dg/dependency_8.f90
  bed947f18e24a0489e41529f588cfef4  gcc/testsuite/gfortran.dg/dependency_9.f90
+ b40751328c871f6714b9f694c525564d  gcc/testsuite/gfortran.dg/dependency_generation_1.f90
  67277aa32b5b5873080f3f4293a6ae8c  gcc/testsuite/gfortran.dg/dependent_decls_1.f90
+ 5c97b1e6df5e623a008d4043400e5a38  gcc/testsuite/gfortran.dg/dependent_decls_2.f90
+ f9b07f25fc6afc502b47a3f76ffca486  gcc/testsuite/gfortran.dg/dependent_decls_3.f90
  f83ad6bd054390e6c1c83e3617a0ca54  gcc/testsuite/gfortran.dg/der_array_1.f90
  4eb23dea6239510ff3d0398ca1d0c6db  gcc/testsuite/gfortran.dg/der_array_io_1.f90
  35332f10121eeab34a37f9cff36e5e29  gcc/testsuite/gfortran.dg/der_array_io_2.f90
*************** e5f02b68e5aa2fee50c3ff70ad3d8f97  gcc/te
*** 94695,94706 ****
  36d65cd99e01688bd380279fd0c74558  gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90
  3c2f8f5e24883308b8a24313e9e5df89  gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
  f024936b2bb3be33b204bc283db65a94  gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90
! 14becf7c5ac1f3826b69f362e23e2804  gcc/testsuite/gfortran.dg/derived_constructor_comps_2.f90
  cb44893d94f03877d3d146a8c1da8bd8  gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90
  1985d33efa2fb91552f8a4d90653edd7  gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90
  b90644647498c9ab9c17c0d5ea8d1b82  gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90
  b2ca02520bfaffc03c538a5319e61893  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
  9ec4e99aea8dbcc56d952be32f63911c  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
  fdf6add00f0bd7ce436abe942eb65cf3  gcc/testsuite/gfortran.dg/derived_init_1.f90
--- 101454,101466 ----
  36d65cd99e01688bd380279fd0c74558  gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90
  3c2f8f5e24883308b8a24313e9e5df89  gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
  f024936b2bb3be33b204bc283db65a94  gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90
! 317ecb84763114895751d0cf0d090089  gcc/testsuite/gfortran.dg/derived_constructor_comps_2.f90
  cb44893d94f03877d3d146a8c1da8bd8  gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90
  1985d33efa2fb91552f8a4d90653edd7  gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90
  b90644647498c9ab9c17c0d5ea8d1b82  gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90
  b2ca02520bfaffc03c538a5319e61893  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
+ d651e8567ae16400b1f0dd3cfa78dfbe  gcc/testsuite/gfortran.dg/derived_constructor_comps_8.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
  9ec4e99aea8dbcc56d952be32f63911c  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
  fdf6add00f0bd7ce436abe942eb65cf3  gcc/testsuite/gfortran.dg/derived_init_1.f90
*************** fdf6add00f0bd7ce436abe942eb65cf3  gcc/te
*** 94709,94714 ****
--- 101469,101475 ----
  07fab892951fdbb2c35b3e8978ea647a  gcc/testsuite/gfortran.dg/derived_init_4.f90
  a19ffb5a22d6663608efe30bfaaa6c3e  gcc/testsuite/gfortran.dg/derived_init_5.f90
  97a57d72c5ce6be81502a605595f8ac8  gcc/testsuite/gfortran.dg/derived_init_6.f90
+ b0072b5367ee04e1e8e87a1d5a079806  gcc/testsuite/gfortran.dg/derived_init_7.f90
  266cbacba031d7de4ed0c83cd0d6ce49  gcc/testsuite/gfortran.dg/derived_name_1.f90
  83e722dbb79574dcea48de4b591f9764  gcc/testsuite/gfortran.dg/derived_name_2.f
  1437ef5bc0341f947a22ccc26daa8e22  gcc/testsuite/gfortran.dg/derived_pointer_null_1.f90
*************** a19ffb5a22d6663608efe30bfaaa6c3e  gcc/te
*** 94717,94729 ****
  21dd790eb5de9f5842955d3e4168f143  gcc/testsuite/gfortran.dg/derived_recursion.f90
  e9e8f279200f5692fad235f157925873  gcc/testsuite/gfortran.dg/derived_result.f90
  cf5153f1f09bb80f5a964ce90c83a5dc  gcc/testsuite/gfortran.dg/derived_result_2.f90
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
! 0fdd059c6a91b123e81a009d07b6adc9  gcc/testsuite/gfortran.dg/dg.exp
  c10b7b4dc20a1533c7a2357a0f492845  gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90
  cfbcd3ddd9fc1232cdc9946102d27f45  gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90
  9276873e2824938cb62a98e8c0f43024  gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  9233bdc80c05466b893a5980013b72e8  gcc/testsuite/gfortran.dg/dim_sum_1.f90
  a0eae83f56a58410e0887f2da41f7c3b  gcc/testsuite/gfortran.dg/dim_sum_2.f90
--- 101478,101496 ----
  21dd790eb5de9f5842955d3e4168f143  gcc/testsuite/gfortran.dg/derived_recursion.f90
  e9e8f279200f5692fad235f157925873  gcc/testsuite/gfortran.dg/derived_result.f90
  cf5153f1f09bb80f5a964ce90c83a5dc  gcc/testsuite/gfortran.dg/derived_result_2.f90
+ 9568da62ebf5982dd0feeb2af336d4be  gcc/testsuite/gfortran.dg/derived_result_3.f90
+ 64fd0d06fe2fe940a3439cbab3a11ab2  gcc/testsuite/gfortran.dg/derived_result_4.f90
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
! 799fa150ac7a732454d14018441cc944  gcc/testsuite/gfortran.dg/dg.exp
  c10b7b4dc20a1533c7a2357a0f492845  gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90
  cfbcd3ddd9fc1232cdc9946102d27f45  gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90
  9276873e2824938cb62a98e8c0f43024  gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90
+ 7a9e9b114ffeb81403692e0d38c97591  gcc/testsuite/gfortran.dg/diagnostic-format-json-pr105916.F90
+ 9908ec78fb87e3fe7ae0633630b06c2f  gcc/testsuite/gfortran.dg/diagnostic-format-sarif-1.F90
+ bd37d03007cff83cef3265fcd94bb7f0  gcc/testsuite/gfortran.dg/diagnostic-format-sarif-1.py
+ 09ab14bed93694dea911f6ebb1867a4e  gcc/testsuite/gfortran.dg/diagnostic-format-sarif-pr105916.f90
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  9233bdc80c05466b893a5980013b72e8  gcc/testsuite/gfortran.dg/dim_sum_1.f90
  a0eae83f56a58410e0887f2da41f7c3b  gcc/testsuite/gfortran.dg/dim_sum_2.f90
*************** bd4bc520857f0ac91a2842fc99e9f070  gcc/te
*** 94770,94780 ****
--- 101537,101567 ----
  500de4fc2d28a7592533f9b970e73543  gcc/testsuite/gfortran.dg/do_check_8.f90
  91d5f3178f55e04655e0ac948132175a  gcc/testsuite/gfortran.dg/do_check_9.f90
  cc944e9209313a0d97bd7bed7198665c  gcc/testsuite/gfortran.dg/do_concurrent_1.f90
+ 7f9780c4b26ab6a483c2c31ed7593f5f  gcc/testsuite/gfortran.dg/do_concurrent_10.f90
+ 42df2444f30e85951f0d1c69b73abbb4  gcc/testsuite/gfortran.dg/do_concurrent_11.f90
+ 32a0d512a915777e1f9355bd80c8fea4  gcc/testsuite/gfortran.dg/do_concurrent_12.f90
+ 3a54e1cae36f78b9e1a9759c3fe30208  gcc/testsuite/gfortran.dg/do_concurrent_13.f90
+ 7372ee57365552dd731718fc7f7c6ec5  gcc/testsuite/gfortran.dg/do_concurrent_14.f90
+ 1d94385fecf051f74ab90cd23e79c868  gcc/testsuite/gfortran.dg/do_concurrent_15.f90
  63df64d9f21a92b59ec77a898548d661  gcc/testsuite/gfortran.dg/do_concurrent_2.f90
  8352f532d473468c61cc2391cb3b72ed  gcc/testsuite/gfortran.dg/do_concurrent_3.f90
  32e106b8f080a6a519f1a6031f8706cf  gcc/testsuite/gfortran.dg/do_concurrent_4.f90
  9d269b2625bbee464f27409d4076d552  gcc/testsuite/gfortran.dg/do_concurrent_6.f90
  f6354f8fa287b0730eb59f30682a6180  gcc/testsuite/gfortran.dg/do_concurrent_7.f90
+ d0dda7d4f02cde55063cdbc07f9865df  gcc/testsuite/gfortran.dg/do_concurrent_8_f2018.f90
+ 566e25d512fab9b0fe403d4bcaab5cce  gcc/testsuite/gfortran.dg/do_concurrent_8_f2023.f90
+ 2fe0da2c9dbe8582e4644dc6911d0c0a  gcc/testsuite/gfortran.dg/do_concurrent_9.f90
+ cbd9864a0e437c82bc4732c67efaffeb  gcc/testsuite/gfortran.dg/do_concurrent_all_clauses.f90
+ 1d039446471af31f4f0ac7ed0bf10b61  gcc/testsuite/gfortran.dg/do_concurrent_basic.f90
+ eec12ded6b543d22e4513f1fd5b84033  gcc/testsuite/gfortran.dg/do_concurrent_constraints.f90
+ c4a3ee13c42841a8c629fe8c2fcf7be8  gcc/testsuite/gfortran.dg/do_concurrent_local_init.f90
+ 18f04dae2541d916379e0bbb761855b0  gcc/testsuite/gfortran.dg/do_concurrent_locality_specs.f90
+ 6f45169b10bcbffc0d7499a55fe7423b  gcc/testsuite/gfortran.dg/do_concurrent_multiple_reduce.f90
+ b7c2b03696caf836ff1ab415f5f62cfa  gcc/testsuite/gfortran.dg/do_concurrent_nested.f90
+ 1e6fff8a6de574851bd08aab39b5d1c6  gcc/testsuite/gfortran.dg/do_concurrent_parser.f90
+ cedb28f9cb297bbfa02fb0669634234b  gcc/testsuite/gfortran.dg/do_concurrent_reduce_max.f90
+ f3112144c36ad5059b09183c276155c5  gcc/testsuite/gfortran.dg/do_concurrent_reduce_sum.f90
+ 42c3783e6bbd5cb747df9454e0cc634f  gcc/testsuite/gfortran.dg/do_concurrent_shared.f90
  1d93eba1af31ae1574ed4ae6686c8f10  gcc/testsuite/gfortran.dg/do_corner_warn.f90
  8a29329028fba5406c50b33634ee840c  gcc/testsuite/gfortran.dg/do_iterator.f90
  375a8a74b19d3cbe445b71aac53fed90  gcc/testsuite/gfortran.dg/do_iterator_2.f90
*************** f08c46fcdc9c46cedf2236a4d87d0465  gcc/te
*** 94787,94793 ****
  f4c22f8620f9cf0541b8ca7a3458969d  gcc/testsuite/gfortran.dg/do_subscript_6.f90
  a7c723754d10ef5541785fffb91b0578  gcc/testsuite/gfortran.dg/do_while_1.f90
  23e59fcc0f241300d3822da5f55f6ab5  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
! eeb8d6e07dce7e2db9e441c445bdd3ac  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_2.f
  e26c1f7f5f5bf58bc20b92b7f15df396  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_3.f
  80e2a872632036dbc651e762eae31aaf  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_4.f
  eafc8a4287ee824bb15961aa9a1cc79e  gcc/testsuite/gfortran.dg/dollar_sym_1.f90
--- 101574,101580 ----
  f4c22f8620f9cf0541b8ca7a3458969d  gcc/testsuite/gfortran.dg/do_subscript_6.f90
  a7c723754d10ef5541785fffb91b0578  gcc/testsuite/gfortran.dg/do_while_1.f90
  23e59fcc0f241300d3822da5f55f6ab5  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
! eb5005dc90e9ba2641daa27c7109699d  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_2.f
  e26c1f7f5f5bf58bc20b92b7f15df396  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_3.f
  80e2a872632036dbc651e762eae31aaf  gcc/testsuite/gfortran.dg/dollar_edit_descriptor_4.f
  eafc8a4287ee824bb15961aa9a1cc79e  gcc/testsuite/gfortran.dg/dollar_sym_1.f90
*************** c78a81914b4d147d96ed3ec46cd15a54  gcc/te
*** 94920,94926 ****
  c26d4506badcfb975bcc871cc4ccc5e4  gcc/testsuite/gfortran.dg/elemental_subroutine_7.f90
  15519642ff7affe6c5f84e52dc0af8e7  gcc/testsuite/gfortran.dg/elemental_subroutine_8.f90
  a7921a85af871672f671c9f7b66abb61  gcc/testsuite/gfortran.dg/elemental_subroutine_9.f90
! ef7a86fef107a422a6e67ac0cde11d12  gcc/testsuite/gfortran.dg/empty_derived_type.f90
  399dc8661293f602eaf53ec38309a214  gcc/testsuite/gfortran.dg/empty_format_1.f90
  f001da63348b64d8eb6a4bac1d826392  gcc/testsuite/gfortran.dg/empty_function_1.f90
  f6f745177e1846c89284fbd15e18b909  gcc/testsuite/gfortran.dg/empty_label.f
--- 101707,101714 ----
  c26d4506badcfb975bcc871cc4ccc5e4  gcc/testsuite/gfortran.dg/elemental_subroutine_7.f90
  15519642ff7affe6c5f84e52dc0af8e7  gcc/testsuite/gfortran.dg/elemental_subroutine_8.f90
  a7921a85af871672f671c9f7b66abb61  gcc/testsuite/gfortran.dg/elemental_subroutine_9.f90
! 77d248fdd52374d3fd60837d12d0c288  gcc/testsuite/gfortran.dg/empty_derived_type.f90
! f4d5def62608e4efd2ea6dfbf7ba9e08  gcc/testsuite/gfortran.dg/empty_derived_type_2.f90
  399dc8661293f602eaf53ec38309a214  gcc/testsuite/gfortran.dg/empty_format_1.f90
  f001da63348b64d8eb6a4bac1d826392  gcc/testsuite/gfortran.dg/empty_function_1.f90
  f6f745177e1846c89284fbd15e18b909  gcc/testsuite/gfortran.dg/empty_label.f
*************** ea90081d3cd8fedd1e22f5d111802ece  gcc/te
*** 95094,95099 ****
--- 101882,101891 ----
  7fa8e9c2ccdac20cdb13dd112da81f1e  gcc/testsuite/gfortran.dg/f2003_io_7.f03
  949a57779b95604b00225fd54e04a853  gcc/testsuite/gfortran.dg/f2003_io_8.f03
  cfd26cb5680953939bd5d728d9a800ec  gcc/testsuite/gfortran.dg/f2018_obs.f90
+ d48f91b7aba2855550a255d3929acaa1  gcc/testsuite/gfortran.dg/f202y/f202y.exp
+ c2fb85dc9b92d270b40acc03dd3807f7  gcc/testsuite/gfortran.dg/f202y/generic_assumed_rank_1.f90
+ c16b9cae86b485f4536263e479960e2b  gcc/testsuite/gfortran.dg/f202y/generic_assumed_rank_2.f90
+ dc59be35b5b54f4be61efe0eb9b8c5eb  gcc/testsuite/gfortran.dg/f202y/generic_assumed_rank_3.f90
  fb55216bd0744514c188eeb84963b03f  gcc/testsuite/gfortran.dg/f2c_1.f90
  a42a974196e09643d05bdb96e0546552  gcc/testsuite/gfortran.dg/f2c_2.f90
  3c82a031eb37e37c44380cff87f69b1b  gcc/testsuite/gfortran.dg/f2c_3.f90
*************** f8d151c2f54f4221a4e3d69b694bb148  gcc/te
*** 95105,95110 ****
--- 101897,101904 ----
  94137209f4ed50c75c038fdad284a72b  gcc/testsuite/gfortran.dg/f2c_7.f90
  cb48bc9a0566f3bcad450b477a411d19  gcc/testsuite/gfortran.dg/f2c_8.f90
  b060001875a843faa2fbb059b6065205  gcc/testsuite/gfortran.dg/f2c_9.f90
+ 7943f4283e42602d972c24a1e6f85613  gcc/testsuite/gfortran.dg/f_c_string1.f90
+ 642e53e25a1d978aa0e3106a1c9b0699  gcc/testsuite/gfortran.dg/f_c_string2.f90
  b2260dd74c0c2b606b400d2e461aaf77  gcc/testsuite/gfortran.dg/feed_1.f90
  06a2412335a46d2c0d1fc2f8d8bd6231  gcc/testsuite/gfortran.dg/feed_2.f90
  50fdb3b1afaf5f61132c104e8d9e3e56  gcc/testsuite/gfortran.dg/fgetc_1.f90
*************** ce817f495edb0ac306d6ae1052014e67  gcc/te
*** 95164,95170 ****
--- 101958,101968 ----
  1a5bc1047ebef5fd584a1a70750ddd9c  gcc/testsuite/gfortran.dg/finalize_54.f90
  e3f8979302c39ffbf6c7c03d08fc1562  gcc/testsuite/gfortran.dg/finalize_55.f90
  4a82b3bd0b6fd8d978b3278deeaf8249  gcc/testsuite/gfortran.dg/finalize_56.f90
+ 9d1fdf3e8a1de7a8307fa3520fa3dbfd  gcc/testsuite/gfortran.dg/finalize_57.f90
+ 51b8bf932be238b91e30f73f65cbee55  gcc/testsuite/gfortran.dg/finalize_58.f90
+ 273d9e21ad8fadbf6d2705e86315b2a3  gcc/testsuite/gfortran.dg/finalize_59.f90
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
+ cccfd4eb98b07f30fc6a43462ae1078b  gcc/testsuite/gfortran.dg/finalize_60.f90
  520ae6cd723f43e02411aa72bb807bb5  gcc/testsuite/gfortran.dg/finalize_7.f03
  4f05943427a26d27e44b21078aec46fe  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
*************** f0ca55042d3247d09d7bc304c059cc3a  gcc/te
*** 95202,95208 ****
  c3e37177f04544909dafcce880927eae  gcc/testsuite/gfortran.dg/fmt_error_6.f90
  8034af34f7ac4599fb3e24e4da711a68  gcc/testsuite/gfortran.dg/fmt_error_7.f
  3202501db7e278e84ba2a8b94c5667f8  gcc/testsuite/gfortran.dg/fmt_error_8.f
! 70f83c7256532b5acaf6c670360290bf  gcc/testsuite/gfortran.dg/fmt_error_9.f
  8505735e49679460bb5480ec5be876b2  gcc/testsuite/gfortran.dg/fmt_exhaust.f90
  804e1ea3a88a045adfd9b5c6ea8fa012  gcc/testsuite/gfortran.dg/fmt_f0_1.f90
  5b038361b618b37d8d8bca512dffc34b  gcc/testsuite/gfortran.dg/fmt_f0_2.f90
--- 102000,102006 ----
  c3e37177f04544909dafcce880927eae  gcc/testsuite/gfortran.dg/fmt_error_6.f90
  8034af34f7ac4599fb3e24e4da711a68  gcc/testsuite/gfortran.dg/fmt_error_7.f
  3202501db7e278e84ba2a8b94c5667f8  gcc/testsuite/gfortran.dg/fmt_error_8.f
! c8cb9cd6f253a3cdcfb8d3d54aa2b9f6  gcc/testsuite/gfortran.dg/fmt_error_9.f
  8505735e49679460bb5480ec5be876b2  gcc/testsuite/gfortran.dg/fmt_exhaust.f90
  804e1ea3a88a045adfd9b5c6ea8fa012  gcc/testsuite/gfortran.dg/fmt_f0_1.f90
  5b038361b618b37d8d8bca512dffc34b  gcc/testsuite/gfortran.dg/fmt_f0_2.f90
*************** f8ae667c3d38aaadda84633fe1ec2778  gcc/te
*** 95218,95224 ****
  e3a0f3ed872ed9b377820f0e8b2044a7  gcc/testsuite/gfortran.dg/fmt_g0_2.f08
  d216b76ed81c95ec2cbca83beb2a093d  gcc/testsuite/gfortran.dg/fmt_g0_3.f08
  0d5844e3555fdce5f791ab86af468a84  gcc/testsuite/gfortran.dg/fmt_g0_4.f08
! 957923206e336d4dc3dae1bbae2de5db  gcc/testsuite/gfortran.dg/fmt_g0_5.f08
  3ec16d55fb3ea81714ad032e89713244  gcc/testsuite/gfortran.dg/fmt_g0_6.f08
  7ef97197f6af4e5e90b35d194812643f  gcc/testsuite/gfortran.dg/fmt_g0_7.f08
  0d55e77e92e8eba68564b926759ea52f  gcc/testsuite/gfortran.dg/fmt_g_1.f90
--- 102016,102022 ----
  e3a0f3ed872ed9b377820f0e8b2044a7  gcc/testsuite/gfortran.dg/fmt_g0_2.f08
  d216b76ed81c95ec2cbca83beb2a093d  gcc/testsuite/gfortran.dg/fmt_g0_3.f08
  0d5844e3555fdce5f791ab86af468a84  gcc/testsuite/gfortran.dg/fmt_g0_4.f08
! 9d6ddbc2b6b277bbc803b70bb4528a83  gcc/testsuite/gfortran.dg/fmt_g0_5.f08
  3ec16d55fb3ea81714ad032e89713244  gcc/testsuite/gfortran.dg/fmt_g0_6.f08
  7ef97197f6af4e5e90b35d194812643f  gcc/testsuite/gfortran.dg/fmt_g0_7.f08
  0d55e77e92e8eba68564b926759ea52f  gcc/testsuite/gfortran.dg/fmt_g_1.f90
*************** e483ed156816d5eadb1c29eb4aa771d5  gcc/te
*** 95248,95254 ****
  817f12fc29f7089a206f5b9ea00a6eb7  gcc/testsuite/gfortran.dg/fmt_read_5.f
  43e2fd9433bc1ee1fb07cd35d02dbec3  gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90
  1ccf86cc72f856d844dbbf28175cd618  gcc/testsuite/gfortran.dg/fmt_t_1.f90
! d52b68f807bdfb7ad44183615bef7972  gcc/testsuite/gfortran.dg/fmt_t_2.f90
  6fe1eae7825f29f89583c88c0651bd9f  gcc/testsuite/gfortran.dg/fmt_t_3.f90
  ab284a204891b5c5562bc3cd7291a666  gcc/testsuite/gfortran.dg/fmt_t_4.f90
  e1dc52170302f0616083aabff89ed26f  gcc/testsuite/gfortran.dg/fmt_t_5.f90
--- 102046,102052 ----
  817f12fc29f7089a206f5b9ea00a6eb7  gcc/testsuite/gfortran.dg/fmt_read_5.f
  43e2fd9433bc1ee1fb07cd35d02dbec3  gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90
  1ccf86cc72f856d844dbbf28175cd618  gcc/testsuite/gfortran.dg/fmt_t_1.f90
! 3dfbcdfa52c98bbcbffa012d74d139fc  gcc/testsuite/gfortran.dg/fmt_t_2.f90
  6fe1eae7825f29f89583c88c0651bd9f  gcc/testsuite/gfortran.dg/fmt_t_3.f90
  ab284a204891b5c5562bc3cd7291a666  gcc/testsuite/gfortran.dg/fmt_t_4.f90
  e1dc52170302f0616083aabff89ed26f  gcc/testsuite/gfortran.dg/fmt_t_5.f90
*************** d654548d92083da2f840d851c1da8d63  gcc/te
*** 95279,95284 ****
--- 102077,102083 ----
  d0fbcfc827c29dc44f64559d48817278  gcc/testsuite/gfortran.dg/forall_18.f90
  d2879116840ad645734602117b12f640  gcc/testsuite/gfortran.dg/forall_19.f90
  52a3f13b979b92e74930c12598ca953e  gcc/testsuite/gfortran.dg/forall_2.f90
+ b57ec74b93a763438156a80e72fe9de5  gcc/testsuite/gfortran.dg/forall_20.f90
  2a37c865afb27d8a80cb1bb50744c3ac  gcc/testsuite/gfortran.dg/forall_3.f90
  f88f5259a88a4ec54b75880cc2655ce4  gcc/testsuite/gfortran.dg/forall_4.f90
  6e72af044e91124ecd07c0a1620921f0  gcc/testsuite/gfortran.dg/forall_5.f90
*************** f87880c019d70b5c8e9649c7f81decb8  gcc/te
*** 95423,95429 ****
  5b8e4d3e937b6a6803378fc996daa1cc  gcc/testsuite/gfortran.dg/g77/980729-0.f
  2101f50ac159df80eeb505634cd4a578  gcc/testsuite/gfortran.dg/g77/981117-1.f
  6aa55ceeb1750d7c19158792b5f97400  gcc/testsuite/gfortran.dg/g77/990115-1.f
! cc1414eb065049db8401e261eb80aaf5  gcc/testsuite/gfortran.dg/g77/README
  4593fcff4c64feb2721eea31b88dfb95  gcc/testsuite/gfortran.dg/g77/alpha1.f
  76c5961f1cec6e4fad257f4d1f1fdf35  gcc/testsuite/gfortran.dg/g77/cabs.f
  bf9ae0c15a3a684d969e22501f10d69c  gcc/testsuite/gfortran.dg/g77/check0.f
--- 102222,102228 ----
  5b8e4d3e937b6a6803378fc996daa1cc  gcc/testsuite/gfortran.dg/g77/980729-0.f
  2101f50ac159df80eeb505634cd4a578  gcc/testsuite/gfortran.dg/g77/981117-1.f
  6aa55ceeb1750d7c19158792b5f97400  gcc/testsuite/gfortran.dg/g77/990115-1.f
! f7c9b8e8ff3df9eb1abf6c7fc3526f09  gcc/testsuite/gfortran.dg/g77/README
  4593fcff4c64feb2721eea31b88dfb95  gcc/testsuite/gfortran.dg/g77/alpha1.f
  76c5961f1cec6e4fad257f4d1f1fdf35  gcc/testsuite/gfortran.dg/g77/cabs.f
  bf9ae0c15a3a684d969e22501f10d69c  gcc/testsuite/gfortran.dg/g77/check0.f
*************** a1927f72df8d7dff60593a75c817fd91  gcc/te
*** 95533,95545 ****
  0cae422b963e880d73cfa54e885c1010  gcc/testsuite/gfortran.dg/goacc-gomp/depobj.f90
  cdbe16382c20ff02d5be2370ef235ffd  gcc/testsuite/gfortran.dg/goacc-gomp/fixed-1.f
  1a47a5d775b89e7ea35bb88b047004a6  gcc/testsuite/gfortran.dg/goacc-gomp/free-1.f90
! 5ec98ddb086d335e16f9337b7b179eda  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
  2f5688fd6d13ef335191539fb816b1e8  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
  623dd259c1089424ad39ce48ecf7872f  gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
  1bb13022cfc4df10f7b288df9b2ceaa7  gcc/testsuite/gfortran.dg/goacc/acc_on_device-2-off.f95
  a2598ab12e851a8e120b6b107500d27b  gcc/testsuite/gfortran.dg/goacc/acc_on_device-2.f95
! 6efd4df3178f228cb542d2003c66b882  gcc/testsuite/gfortran.dg/goacc/array-reduction.f90
  08f00eb075a1b88f8ceb63d415a5b115  gcc/testsuite/gfortran.dg/goacc/array-with-dt-1.f90
  e979ced56b8199ac0afe2184287bbf2e  gcc/testsuite/gfortran.dg/goacc/array-with-dt-1a.f90
  a59781ec856e293c7bd42548659793ec  gcc/testsuite/gfortran.dg/goacc/array-with-dt-2.f90
--- 102332,102344 ----
  0cae422b963e880d73cfa54e885c1010  gcc/testsuite/gfortran.dg/goacc-gomp/depobj.f90
  cdbe16382c20ff02d5be2370ef235ffd  gcc/testsuite/gfortran.dg/goacc-gomp/fixed-1.f
  1a47a5d775b89e7ea35bb88b047004a6  gcc/testsuite/gfortran.dg/goacc-gomp/free-1.f90
! 111903c327dd54e41500683d65fa43ad  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
  2f5688fd6d13ef335191539fb816b1e8  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
  623dd259c1089424ad39ce48ecf7872f  gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
  1bb13022cfc4df10f7b288df9b2ceaa7  gcc/testsuite/gfortran.dg/goacc/acc_on_device-2-off.f95
  a2598ab12e851a8e120b6b107500d27b  gcc/testsuite/gfortran.dg/goacc/acc_on_device-2.f95
! 4ba9a06532ec1e7c99a138ebae9f02cd  gcc/testsuite/gfortran.dg/goacc/array-reduction.f90
  08f00eb075a1b88f8ceb63d415a5b115  gcc/testsuite/gfortran.dg/goacc/array-with-dt-1.f90
  e979ced56b8199ac0afe2184287bbf2e  gcc/testsuite/gfortran.dg/goacc/array-with-dt-1a.f90
  a59781ec856e293c7bd42548659793ec  gcc/testsuite/gfortran.dg/goacc/array-with-dt-2.f90
*************** a59781ec856e293c7bd42548659793ec  gcc/te
*** 95547,95553 ****
  aeacd6ece8629c48eab42fcb658c8796  gcc/testsuite/gfortran.dg/goacc/array-with-dt-4.f90
  f3111ad444da282a0a5b4915ee85f5bf  gcc/testsuite/gfortran.dg/goacc/array-with-dt-5.f90
  3674d1489d77dfe034364bd07a8c7db0  gcc/testsuite/gfortran.dg/goacc/array-with-dt-6.f90
! c92cb05a4e19077108b80407be41b8f4  gcc/testsuite/gfortran.dg/goacc/assumed.f95
  7a3254f3b47d322b4df76672cf5fbde6  gcc/testsuite/gfortran.dg/goacc/asyncwait-1.f95
  8a63d2db2c462621293e094632680b17  gcc/testsuite/gfortran.dg/goacc/asyncwait-2.f95
  f04fe9e035242f264ba1bc7e66f7268c  gcc/testsuite/gfortran.dg/goacc/asyncwait-3.f95
--- 102346,102352 ----
  aeacd6ece8629c48eab42fcb658c8796  gcc/testsuite/gfortran.dg/goacc/array-with-dt-4.f90
  f3111ad444da282a0a5b4915ee85f5bf  gcc/testsuite/gfortran.dg/goacc/array-with-dt-5.f90
  3674d1489d77dfe034364bd07a8c7db0  gcc/testsuite/gfortran.dg/goacc/array-with-dt-6.f90
! 01f17b241552a031bd997c87efd2a515  gcc/testsuite/gfortran.dg/goacc/assumed.f95
  7a3254f3b47d322b4df76672cf5fbde6  gcc/testsuite/gfortran.dg/goacc/asyncwait-1.f95
  8a63d2db2c462621293e094632680b17  gcc/testsuite/gfortran.dg/goacc/asyncwait-2.f95
  f04fe9e035242f264ba1bc7e66f7268c  gcc/testsuite/gfortran.dg/goacc/asyncwait-3.f95
*************** fe2df2ce6e9b837974ec76c54da56c62  gcc/te
*** 95556,95562 ****
  0ff714bbb2fcd709c6b1bd4d6a4dad15  gcc/testsuite/gfortran.dg/goacc/atomic-1.f90
  73ace9355b48232c91ed5b3bc0d60050  gcc/testsuite/gfortran.dg/goacc/atomic.f90
  f6b067865eb4748925fa962468d21536  gcc/testsuite/gfortran.dg/goacc/attach-descriptor.f90
! b5ce38fdd599e1809965f838521def2e  gcc/testsuite/gfortran.dg/goacc/branch.f95
  109a3ecc87b1bc758772cc9eeee4d842  gcc/testsuite/gfortran.dg/goacc/cache-1.f95
  0770d02d65abc7014c30751880ebe628  gcc/testsuite/gfortran.dg/goacc/cache-2.f95
  e446360e36be9fbd4276d9b53c7772d2  gcc/testsuite/gfortran.dg/goacc/classify-kernels-parloops.f95
--- 102355,102361 ----
  0ff714bbb2fcd709c6b1bd4d6a4dad15  gcc/testsuite/gfortran.dg/goacc/atomic-1.f90
  73ace9355b48232c91ed5b3bc0d60050  gcc/testsuite/gfortran.dg/goacc/atomic.f90
  f6b067865eb4748925fa962468d21536  gcc/testsuite/gfortran.dg/goacc/attach-descriptor.f90
! c856c865883c7fef90b6f6a6ee611d9c  gcc/testsuite/gfortran.dg/goacc/branch.f95
  109a3ecc87b1bc758772cc9eeee4d842  gcc/testsuite/gfortran.dg/goacc/cache-1.f95
  0770d02d65abc7014c30751880ebe628  gcc/testsuite/gfortran.dg/goacc/cache-2.f95
  e446360e36be9fbd4276d9b53c7772d2  gcc/testsuite/gfortran.dg/goacc/classify-kernels-parloops.f95
*************** ccf30b0534f43784e9481e052bc603a0  gcc/te
*** 95567,95597 ****
  bb1d58f46b1e8af6fc5dabfddbe00b1e  gcc/testsuite/gfortran.dg/goacc/classify-routine-nohost.f95
  a51a9aa4ceca0d626c1c0773b5a8b28d  gcc/testsuite/gfortran.dg/goacc/classify-routine.f95
  6a2bec202d57d5fe1e54ffa19696799f  gcc/testsuite/gfortran.dg/goacc/classify-serial.f95
! 83d4a89dbb466047d65da89db7eebee2  gcc/testsuite/gfortran.dg/goacc/coarray.f95
! 802487ba26d5909068b6a8fd851b3b28  gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
  fdee13d4adb6e84872f8e5e823a9e0eb  gcc/testsuite/gfortran.dg/goacc/coindexed-1.f90
! 5663aaa8beda6435731eeb17cfba4492  gcc/testsuite/gfortran.dg/goacc/combined-directives-3.f90
! 07fc03d64dcef68b20d13da92208e6cf  gcc/testsuite/gfortran.dg/goacc/combined-directives.f90
  d1e02d6d5cf7ba5e1a5efb88f2c97c94  gcc/testsuite/gfortran.dg/goacc/combined_loop.f90
! 81e1bc89345d1f1005b3ffb1dedad16a  gcc/testsuite/gfortran.dg/goacc/common-block-1.f90
! 5ffd878d77a15321f5c92e17ae781e51  gcc/testsuite/gfortran.dg/goacc/common-block-2.f90
! 43fa43859924fd9d68c176b555c2878b  gcc/testsuite/gfortran.dg/goacc/common-block-3.f90
  5755b89b23db42c3b355e96f296cba71  gcc/testsuite/gfortran.dg/goacc/continuation-free-form.f95
! 1d2b9f57ee07b286f80f6b187af2ff1b  gcc/testsuite/gfortran.dg/goacc/cray-2.f95
! decf3300196fa1217139ef97f2e0edda  gcc/testsuite/gfortran.dg/goacc/cray.f95
! 4bb22bcb9fe8f7604be602bc77be659f  gcc/testsuite/gfortran.dg/goacc/critical.f95
! f0281cd31a8c4b3fce41c6545e97b15a  gcc/testsuite/gfortran.dg/goacc/data-clauses.f95
  11856916f5de6d05f6ab29ddaa297b75  gcc/testsuite/gfortran.dg/goacc/data-tree.f95
  361134d8942c24e6fcbf9834694862d3  gcc/testsuite/gfortran.dg/goacc/declare-1.f95
  04459a5bc6df4bfddc8e7149369c11ed  gcc/testsuite/gfortran.dg/goacc/declare-2.f95
  45ad32aa3dc546b5f329cb9991f7735a  gcc/testsuite/gfortran.dg/goacc/declare-3.f95
  edae9111fe15e3f1b8c0607efbf0974a  gcc/testsuite/gfortran.dg/goacc/deep-copy-2.f90
! 7afa26213bd0c94c0267d8a959f6f792  gcc/testsuite/gfortran.dg/goacc/default-1.f95
! ab0cfcf0e3a4578e25ee97747700eab6  gcc/testsuite/gfortran.dg/goacc/default-2.f
! d6cbf7b727225237e69435d5be4dfd10  gcc/testsuite/gfortran.dg/goacc/default-3.f95
! ee8e5295979a30477f1941c26c2eedb9  gcc/testsuite/gfortran.dg/goacc/default-4.f
! 385e66a0c2644a72a1fb027efe197cd0  gcc/testsuite/gfortran.dg/goacc/default-5.f
! 7a1a98a21be337079ded815d6a575f0d  gcc/testsuite/gfortran.dg/goacc/default_none.f95
  b618eb862f12de8a77d9c778c0fb676d  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-1.f90
  6377fb083eb2b0bc10f8c2b5f74b088f  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-2.f90
  452c7a8d2759befd796713794b7309b9  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-3.f90
--- 102366,102397 ----
  bb1d58f46b1e8af6fc5dabfddbe00b1e  gcc/testsuite/gfortran.dg/goacc/classify-routine-nohost.f95
  a51a9aa4ceca0d626c1c0773b5a8b28d  gcc/testsuite/gfortran.dg/goacc/classify-routine.f95
  6a2bec202d57d5fe1e54ffa19696799f  gcc/testsuite/gfortran.dg/goacc/classify-serial.f95
! fbbe3a928913817cfb7ec9c106baf3a6  gcc/testsuite/gfortran.dg/goacc/coarray.f95
! a83ae5e8d529b206702af4adda1bc9fd  gcc/testsuite/gfortran.dg/goacc/coarray_2.f90
  fdee13d4adb6e84872f8e5e823a9e0eb  gcc/testsuite/gfortran.dg/goacc/coindexed-1.f90
! eb36a736a9841369c93cbc6c7d8ad330  gcc/testsuite/gfortran.dg/goacc/combined-directives-3.f90
! 165e9671838f520cabc9eeb6924ddef5  gcc/testsuite/gfortran.dg/goacc/combined-directives.f90
  d1e02d6d5cf7ba5e1a5efb88f2c97c94  gcc/testsuite/gfortran.dg/goacc/combined_loop.f90
! c5b22be234905f808583af70f718affe  gcc/testsuite/gfortran.dg/goacc/common-block-1.f90
! 5370b8e581c92b99853fdb8591d4c57f  gcc/testsuite/gfortran.dg/goacc/common-block-2.f90
! e4c8c28f366fea974ea153eed2aa45b3  gcc/testsuite/gfortran.dg/goacc/common-block-3.f90
! 2751e2437059a776a6b30933b2482557  gcc/testsuite/gfortran.dg/goacc/compute_construct-clauses.f95
  5755b89b23db42c3b355e96f296cba71  gcc/testsuite/gfortran.dg/goacc/continuation-free-form.f95
! 3c657c5394a81f89379d69a74c08bb3f  gcc/testsuite/gfortran.dg/goacc/cray-2.f95
! 582df750bc5f9410a81eb15892574f39  gcc/testsuite/gfortran.dg/goacc/cray.f95
! 035e081bea92949a4206f5b7d8bc67f5  gcc/testsuite/gfortran.dg/goacc/critical.f95
! d4fd278e33915feaeaaf4f7d19cc4ef2  gcc/testsuite/gfortran.dg/goacc/data-clauses.f95
  11856916f5de6d05f6ab29ddaa297b75  gcc/testsuite/gfortran.dg/goacc/data-tree.f95
  361134d8942c24e6fcbf9834694862d3  gcc/testsuite/gfortran.dg/goacc/declare-1.f95
  04459a5bc6df4bfddc8e7149369c11ed  gcc/testsuite/gfortran.dg/goacc/declare-2.f95
  45ad32aa3dc546b5f329cb9991f7735a  gcc/testsuite/gfortran.dg/goacc/declare-3.f95
  edae9111fe15e3f1b8c0607efbf0974a  gcc/testsuite/gfortran.dg/goacc/deep-copy-2.f90
! 44a9602d6d462de8fa07e2350d7c9646  gcc/testsuite/gfortran.dg/goacc/default-1.f95
! c92c673ef6a3280784f6882b52682c22  gcc/testsuite/gfortran.dg/goacc/default-2.f
! 26a375cb806c3c2c13e2c9fd7c90f12a  gcc/testsuite/gfortran.dg/goacc/default-3.f95
! dec93f8a38782c2b8a783c18ffb43142  gcc/testsuite/gfortran.dg/goacc/default-4.f
! c510c751e5ad5c9b7ef897b8bf6cc75f  gcc/testsuite/gfortran.dg/goacc/default-5.f
! 76011a9803826d161e9da66fa2c0db0f  gcc/testsuite/gfortran.dg/goacc/default_none.f95
  b618eb862f12de8a77d9c778c0fb676d  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-1.f90
  6377fb083eb2b0bc10f8c2b5f74b088f  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-2.f90
  452c7a8d2759befd796713794b7309b9  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-3.f90
*************** b618eb862f12de8a77d9c778c0fb676d  gcc/te
*** 95599,95619 ****
  17df6493471d6fc0378947aa3943d56b  gcc/testsuite/gfortran.dg/goacc/derived-classtypes-1.f95
  ced9c4194559d4398fc3d0a662c16fa1  gcc/testsuite/gfortran.dg/goacc/derived-types-2.f90
  c36dcd790a85c0e24d8ce6b806d09109  gcc/testsuite/gfortran.dg/goacc/derived-types-3.f90
! 88646cb96ab13da1ad7ed62a79c20a32  gcc/testsuite/gfortran.dg/goacc/derived-types.f90
  e879bbea380366046cc10bb8b72f159a  gcc/testsuite/gfortran.dg/goacc/enter-exit-data-2.f90
  824ed8f018288696894ab29c8b69e8ca  gcc/testsuite/gfortran.dg/goacc/enter-exit-data.f95
  ca65ecce1a50093e904baa73ba9945f2  gcc/testsuite/gfortran.dg/goacc/finalize-1.f
! 5df16712bea807f97abc1370c1e9959a  gcc/testsuite/gfortran.dg/goacc/firstprivate-1.f95
  80979b6cc7e2aaefc5c01c5a5ec35f63  gcc/testsuite/gfortran.dg/goacc/fixed-1.f
  a2e2e82a9ba48ccb237461a95e525152  gcc/testsuite/gfortran.dg/goacc/fixed-2.f
  d4c2919d4f88b391fb32fcbe225f7214  gcc/testsuite/gfortran.dg/goacc/fixed-3.f
  d6fc5ccccdf283b89871056a603002b0  gcc/testsuite/gfortran.dg/goacc/fixed-4.f
  848866b7618965ec43d4d0116c95112e  gcc/testsuite/gfortran.dg/goacc/fixed-5.f
! f47f079a6e8bea88ed65bfb0d0cdaa69  gcc/testsuite/gfortran.dg/goacc/gang-static.f95
! 422637207338c0dca52e4b39b9cb51e7  gcc/testsuite/gfortran.dg/goacc/goacc.exp
  3a271241180ad2214e538b69d9f9550f  gcc/testsuite/gfortran.dg/goacc/host_data-error.f90
  3e7c2fad068860f11c7aa15ab3ac054f  gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
! 70333d025373eca0baad74b5f1be7147  gcc/testsuite/gfortran.dg/goacc/if.f95
  601f00049a64dd37cde339f2f1f04f67  gcc/testsuite/gfortran.dg/goacc/kernels-alias-2.f95
  d5dc508fa5f0c7f41320b204b50e6bc2  gcc/testsuite/gfortran.dg/goacc/kernels-alias-3.f95
  32c29c5c89fa00146b3a2febdd2b0b26  gcc/testsuite/gfortran.dg/goacc/kernels-alias-4.f95
--- 102399,102421 ----
  17df6493471d6fc0378947aa3943d56b  gcc/testsuite/gfortran.dg/goacc/derived-classtypes-1.f95
  ced9c4194559d4398fc3d0a662c16fa1  gcc/testsuite/gfortran.dg/goacc/derived-types-2.f90
  c36dcd790a85c0e24d8ce6b806d09109  gcc/testsuite/gfortran.dg/goacc/derived-types-3.f90
! cdf2ad6b81ba6e710ea7e77e30be7f77  gcc/testsuite/gfortran.dg/goacc/derived-types.f90
  e879bbea380366046cc10bb8b72f159a  gcc/testsuite/gfortran.dg/goacc/enter-exit-data-2.f90
  824ed8f018288696894ab29c8b69e8ca  gcc/testsuite/gfortran.dg/goacc/enter-exit-data.f95
  ca65ecce1a50093e904baa73ba9945f2  gcc/testsuite/gfortran.dg/goacc/finalize-1.f
! 02116ba13b9a473241f9aca9fff33417  gcc/testsuite/gfortran.dg/goacc/firstprivate-1.f95
  80979b6cc7e2aaefc5c01c5a5ec35f63  gcc/testsuite/gfortran.dg/goacc/fixed-1.f
  a2e2e82a9ba48ccb237461a95e525152  gcc/testsuite/gfortran.dg/goacc/fixed-2.f
  d4c2919d4f88b391fb32fcbe225f7214  gcc/testsuite/gfortran.dg/goacc/fixed-3.f
  d6fc5ccccdf283b89871056a603002b0  gcc/testsuite/gfortran.dg/goacc/fixed-4.f
  848866b7618965ec43d4d0116c95112e  gcc/testsuite/gfortran.dg/goacc/fixed-5.f
! caf9ad6c3a60fe6a8e1da5163aa393d9  gcc/testsuite/gfortran.dg/goacc/gang-static.f95
! 94487ff043cae3ec3fc4ec81db05fa95  gcc/testsuite/gfortran.dg/goacc/goacc.exp
  3a271241180ad2214e538b69d9f9550f  gcc/testsuite/gfortran.dg/goacc/host_data-error.f90
  3e7c2fad068860f11c7aa15ab3ac054f  gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
! 484393d86f2a68597294bdec663bd853  gcc/testsuite/gfortran.dg/goacc/if.f95
! 709a9c39271684cadaeccb043f134486  gcc/testsuite/gfortran.dg/goacc/implied-copy-1.f90
! e80e74819ba1da9a7d9a498baa0c39e6  gcc/testsuite/gfortran.dg/goacc/implied-copy-2.f90
  601f00049a64dd37cde339f2f1f04f67  gcc/testsuite/gfortran.dg/goacc/kernels-alias-2.f95
  d5dc508fa5f0c7f41320b204b50e6bc2  gcc/testsuite/gfortran.dg/goacc/kernels-alias-3.f95
  32c29c5c89fa00146b3a2febdd2b0b26  gcc/testsuite/gfortran.dg/goacc/kernels-alias-4.f95
*************** ba83c4cabd9753c8e318fb705a075153  gcc/te
*** 95632,95650 ****
  12fccbb98b6c2bfc3ac90b38fc6e14af  gcc/testsuite/gfortran.dg/goacc/kernels-loops-adjacent.f95
  dab862eef9e9b080b5d7fc7f0a4b7105  gcc/testsuite/gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95
  ba057289ded3bec769f3d9ab4f0dd60a  gcc/testsuite/gfortran.dg/goacc/kernels-tree.f95
! 377578f4d9c4ca1cc67ca167393fbec3  gcc/testsuite/gfortran.dg/goacc/list.f95
! e107d4e382d98141b6dc6d451603f328  gcc/testsuite/gfortran.dg/goacc/literal.f95
! 0a42f8c0072173fe974f96ab06f83512  gcc/testsuite/gfortran.dg/goacc/loop-1-2.f95
! c81f575d3c04da24d5fa79a427dfbbea  gcc/testsuite/gfortran.dg/goacc/loop-1.f95
  6c10a331d94839acd19c5d01ddf62b41  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95
  4cd62405d3e2ef8ed97e2d9355881d42  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95
  626177d83dac87d4f1b97d0caff8eeee  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95
! 27bb1cee2eaf084ed7bb8bc54edaa661  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95
  59574f3eb51117ec4627cfdb4b198d60  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95
  00da47688f839cb53ccbc88689e614f0  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95
  d5435a3e37bbd0e293945d9abb2b98e2  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95
! 4ca11b23d4863ad2725eebb0857ea531  gcc/testsuite/gfortran.dg/goacc/loop-3-2.f95
! ebb37a59df6758bcf82ca94b60619a35  gcc/testsuite/gfortran.dg/goacc/loop-3.f95
  7650c1b33dcca66bb9a4288605d35e20  gcc/testsuite/gfortran.dg/goacc/loop-4.f95
  bd5d0215a2a83dbd4aca37cf558a1b08  gcc/testsuite/gfortran.dg/goacc/loop-7.f95
  8acc04efc98db4b4029c51746d1568e7  gcc/testsuite/gfortran.dg/goacc/loop-tree-1.f90
--- 102434,102456 ----
  12fccbb98b6c2bfc3ac90b38fc6e14af  gcc/testsuite/gfortran.dg/goacc/kernels-loops-adjacent.f95
  dab862eef9e9b080b5d7fc7f0a4b7105  gcc/testsuite/gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95
  ba057289ded3bec769f3d9ab4f0dd60a  gcc/testsuite/gfortran.dg/goacc/kernels-tree.f95
! 1a8c374ee95613e715cc839df85fe275  gcc/testsuite/gfortran.dg/goacc/list.f95
! 4899fbdba503c469a23579177cfcf7fc  gcc/testsuite/gfortran.dg/goacc/literal.f95
! c4704f3d909eefb80ac2e97bfe342483  gcc/testsuite/gfortran.dg/goacc/loop-1-2.f95
! c7119305b04ca35925b4801e9f8be4cb  gcc/testsuite/gfortran.dg/goacc/loop-1.f95
  6c10a331d94839acd19c5d01ddf62b41  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95
  4cd62405d3e2ef8ed97e2d9355881d42  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95
  626177d83dac87d4f1b97d0caff8eeee  gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95
! a89ca03e7b488f355b038b04d082fa85  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95
  59574f3eb51117ec4627cfdb4b198d60  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95
  00da47688f839cb53ccbc88689e614f0  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95
  d5435a3e37bbd0e293945d9abb2b98e2  gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95
! c4670d2471d52d0f8721556b84b76e7c  gcc/testsuite/gfortran.dg/goacc/loop-2-serial-3.f95
! 50c7bcfcd94604865d738967d60822e3  gcc/testsuite/gfortran.dg/goacc/loop-2-serial-nested.f95
! 5c0be77e2835a68aff541682634382a6  gcc/testsuite/gfortran.dg/goacc/loop-2-serial-tile.f95
! 77366f6d83f2c0c9d37e08b7381aacd6  gcc/testsuite/gfortran.dg/goacc/loop-2-serial.f95
! 448331019cfd9f3a79f3c796107bd26e  gcc/testsuite/gfortran.dg/goacc/loop-3-2.f95
! 139cabfd6a8aa1fc5c293b3f3c2e04d1  gcc/testsuite/gfortran.dg/goacc/loop-3.f95
  7650c1b33dcca66bb9a4288605d35e20  gcc/testsuite/gfortran.dg/goacc/loop-4.f95
  bd5d0215a2a83dbd4aca37cf558a1b08  gcc/testsuite/gfortran.dg/goacc/loop-7.f95
  8acc04efc98db4b4029c51746d1568e7  gcc/testsuite/gfortran.dg/goacc/loop-tree-1.f90
*************** adfee0afb71772a6b0adbdf123e106fd  gcc/te
*** 95654,95668 ****
  c2fe35b0f03d0c0f369bb6ffb9c04af4  gcc/testsuite/gfortran.dg/goacc/mapping-tests-4.f90
  18d648f4b938c2943600df4867e7c1b7  gcc/testsuite/gfortran.dg/goacc/mapping-tests-5.f90
  35a9adc6412ef83977b281007c09b010  gcc/testsuite/gfortran.dg/goacc/modules.f95
! a7d01192484b5c937807678ca75537ad  gcc/testsuite/gfortran.dg/goacc/multi-clause.f90
  b0ba9ce1b772ddb893b56e9a234fa899  gcc/testsuite/gfortran.dg/goacc/nested-function-1.f90
! 857698fe86f455613529d9cb6241ed75  gcc/testsuite/gfortran.dg/goacc/nested-parallelism.f90
  c15977006fd6ccc480d037bb4c6af9ff  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-kernels.f90
  b1b2ac6d88bb612b03a9948196714233  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-parallel.f90
  77171f4f33a97d9d0c0ed428ab3f3a1b  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-routine.f90
  c03d85028dd31582bfd3d1f8ca418aa3  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-kernels.f90
  a003f13028702fcf73483db6234e657a  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-parallel.f90
  dc0ed8100589e01d391b4954bad7b048  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-routine.f90
  f8fe06410fd4ca50e585e681d35f4482  gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90
  44c6212e07bf6b44bd6d26e3224f93d7  gcc/testsuite/gfortran.dg/goacc/omp-fixed.f
  0d004a9c292993dcae37ce3958b7e212  gcc/testsuite/gfortran.dg/goacc/omp.f95
--- 102460,102477 ----
  c2fe35b0f03d0c0f369bb6ffb9c04af4  gcc/testsuite/gfortran.dg/goacc/mapping-tests-4.f90
  18d648f4b938c2943600df4867e7c1b7  gcc/testsuite/gfortran.dg/goacc/mapping-tests-5.f90
  35a9adc6412ef83977b281007c09b010  gcc/testsuite/gfortran.dg/goacc/modules.f95
! 2a4cdb45bcaa2644789fc887d77993ab  gcc/testsuite/gfortran.dg/goacc/multi-clause.f90
  b0ba9ce1b772ddb893b56e9a234fa899  gcc/testsuite/gfortran.dg/goacc/nested-function-1.f90
! b2dd6a48f4bb9d97fcd4577f7b2860cc  gcc/testsuite/gfortran.dg/goacc/nested-parallelism.f90
  c15977006fd6ccc480d037bb4c6af9ff  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-kernels.f90
  b1b2ac6d88bb612b03a9948196714233  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-parallel.f90
  77171f4f33a97d9d0c0ed428ab3f3a1b  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-routine.f90
+ 31479b2d1d082e119d4e009b9eade160  gcc/testsuite/gfortran.dg/goacc/nested-reductions-1-serial.f90
  c03d85028dd31582bfd3d1f8ca418aa3  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-kernels.f90
  a003f13028702fcf73483db6234e657a  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-parallel.f90
  dc0ed8100589e01d391b4954bad7b048  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-routine.f90
+ 983431ce9a90b70a112b9e156506033e  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-serial.f90
+ 36c28e9cc17a4b18de9957b99e3ae3d1  gcc/testsuite/gfortran.dg/goacc/nesting-fail-1.f95
  f8fe06410fd4ca50e585e681d35f4482  gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90
  44c6212e07bf6b44bd6d26e3224f93d7  gcc/testsuite/gfortran.dg/goacc/omp-fixed.f
  0d004a9c292993dcae37ce3958b7e212  gcc/testsuite/gfortran.dg/goacc/omp.f95
*************** f8fe06410fd4ca50e585e681d35f4482  gcc/te
*** 95670,95683 ****
  c7ee12dc94b4a8a26a060f569b0b87af  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-2.f90
  bb8ae92b32e3f26a7ac46460dcb0eaaa  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-3.f90
  704a360494113e14e3e848a58a450103  gcc/testsuite/gfortran.dg/goacc/parallel-dims-2.f90
- 28cb75f1f081f4155173c6d470dac768  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-clauses.f95
- 1ba4b22dac74c58581a0548cc088e27d  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-regions.f95
  fd931b02506b83f0422f0faed5da5c1e  gcc/testsuite/gfortran.dg/goacc/parallel-tree.f95
! fd7a6f50862314c373f5800561f028a5  gcc/testsuite/gfortran.dg/goacc/parameter.f95
  09ea63acb5c4c7a47cc2d19532460132  gcc/testsuite/gfortran.dg/goacc/pr104717.f90
  7e7fc3d088115060da170794a58be703  gcc/testsuite/gfortran.dg/goacc/pr109622-5.f90
  1455640e85064b6a149025dca753e059  gcc/testsuite/gfortran.dg/goacc/pr109622-6.f90
! 67b49525675aca8145873031e39ee7ec  gcc/testsuite/gfortran.dg/goacc/pr71704.f90
  2ff86b408ebb7a6e4fa041f1ea4a5204  gcc/testsuite/gfortran.dg/goacc/pr72715.f90
  dff0c4a3dcd2aac51063c6e05c6d4665  gcc/testsuite/gfortran.dg/goacc/pr72743.f90
  4f04968b558efbdc704552ba74ea807d  gcc/testsuite/gfortran.dg/goacc/pr77371-1.f90
--- 102479,102490 ----
  c7ee12dc94b4a8a26a060f569b0b87af  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-2.f90
  bb8ae92b32e3f26a7ac46460dcb0eaaa  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-3.f90
  704a360494113e14e3e848a58a450103  gcc/testsuite/gfortran.dg/goacc/parallel-dims-2.f90
  fd931b02506b83f0422f0faed5da5c1e  gcc/testsuite/gfortran.dg/goacc/parallel-tree.f95
! 96eee5ed6c314ca3adcfc0eaa4696991  gcc/testsuite/gfortran.dg/goacc/parameter.f95
  09ea63acb5c4c7a47cc2d19532460132  gcc/testsuite/gfortran.dg/goacc/pr104717.f90
  7e7fc3d088115060da170794a58be703  gcc/testsuite/gfortran.dg/goacc/pr109622-5.f90
  1455640e85064b6a149025dca753e059  gcc/testsuite/gfortran.dg/goacc/pr109622-6.f90
! 3cdf23868f01623770b84c1bd05da5a3  gcc/testsuite/gfortran.dg/goacc/pr71704.f90
  2ff86b408ebb7a6e4fa041f1ea4a5204  gcc/testsuite/gfortran.dg/goacc/pr72715.f90
  dff0c4a3dcd2aac51063c6e05c6d4665  gcc/testsuite/gfortran.dg/goacc/pr72743.f90
  4f04968b558efbdc704552ba74ea807d  gcc/testsuite/gfortran.dg/goacc/pr77371-1.f90
*************** e87b3bf8d6a7c60741e53c45be2f3fd9  gcc/te
*** 95693,95699 ****
  fff3ef606b07a0c12c2323afa6fe446d  gcc/testsuite/gfortran.dg/goacc/pr85703.f90
  8b11b5d3280af265110281a0a77e18f9  gcc/testsuite/gfortran.dg/goacc/pr85879.f90
  1e6397cc1e2bf821ff497ca3cb5b4aa3  gcc/testsuite/gfortran.dg/goacc/pr89773.f90
! 453f49090cd45a5cde8324a8ed445646  gcc/testsuite/gfortran.dg/goacc/pr92793-1.f90
  1d35dffa84f295d1e3711b5a61d9779d  gcc/testsuite/gfortran.dg/goacc/pr93329.f90
  f456cdcfbddab6f8bef5a32a8ae942c7  gcc/testsuite/gfortran.dg/goacc/pr93463.f90
  53e5e05b763f714373036ee3c31c7f01  gcc/testsuite/gfortran.dg/goacc/pr93464-2.f90
--- 102500,102506 ----
  fff3ef606b07a0c12c2323afa6fe446d  gcc/testsuite/gfortran.dg/goacc/pr85703.f90
  8b11b5d3280af265110281a0a77e18f9  gcc/testsuite/gfortran.dg/goacc/pr85879.f90
  1e6397cc1e2bf821ff497ca3cb5b4aa3  gcc/testsuite/gfortran.dg/goacc/pr89773.f90
! 3560a9d0030a3f7e3afe0047fa5f072e  gcc/testsuite/gfortran.dg/goacc/pr92793-1.f90
  1d35dffa84f295d1e3711b5a61d9779d  gcc/testsuite/gfortran.dg/goacc/pr93329.f90
  f456cdcfbddab6f8bef5a32a8ae942c7  gcc/testsuite/gfortran.dg/goacc/pr93463.f90
  53e5e05b763f714373036ee3c31c7f01  gcc/testsuite/gfortran.dg/goacc/pr93464-2.f90
*************** f456cdcfbddab6f8bef5a32a8ae942c7  gcc/te
*** 95701,95751 ****
  d784778dca55a73519575e6568f22a77  gcc/testsuite/gfortran.dg/goacc/pr94120-1.f90
  c416573c1a8cc44ca5ba7d63ec2aba3c  gcc/testsuite/gfortran.dg/goacc/pr94120-2.f90
  1f098c4f8245d0dfda6b57ce268656f0  gcc/testsuite/gfortran.dg/goacc/pr94120-3.f90
! 95c8b61f34d7f56400800fbce26fcfa8  gcc/testsuite/gfortran.dg/goacc/private-3.f95
  a63629c8c309d4d181aa7e4d163f30c1  gcc/testsuite/gfortran.dg/goacc/private-explicit-kernels-1.f95
  4130cb2ad71b7a29b80b0c75c85f4c11  gcc/testsuite/gfortran.dg/goacc/private-explicit-parallel-1.f95
  62bd7093034aa7bc2f8fdadfa99b26d0  gcc/testsuite/gfortran.dg/goacc/private-explicit-routine-1.f95
  24873e7e4fa106bd0e00268afabcef24  gcc/testsuite/gfortran.dg/goacc/private-predetermined-kernels-1.f95
  ec077ad6bdea7dd131d1d252e41327ce  gcc/testsuite/gfortran.dg/goacc/private-predetermined-parallel-1.f95
  d1424a6aff56f84b8594efe4797586c7  gcc/testsuite/gfortran.dg/goacc/private-predetermined-routine-1.f95
  320cef06c8127188e5b8ef5a9e8030c7  gcc/testsuite/gfortran.dg/goacc/privatization-1-compute-loop.f90
  8b4b1130919434a7c3fbccb70cc02590  gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90
  595bd7cc7c337a52f658d66ccd739259  gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang-loop.f90
  0fdd4c53847a616925b1751ff204d898  gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang.f90
  066700d763e7142e03d2c09ba0f79bde  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures-2.f90
! 62b5f5b00b9662a8b75727b0922b367d  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures.f95
  f85d6127bac477d11ee5f336d29750d8  gcc/testsuite/gfortran.dg/goacc/readonly-1.f90
! 9b703807d8c979fc38c25732d2b58ed7  gcc/testsuite/gfortran.dg/goacc/reduction-2.f95
! d3ab76f25073383b9b4da99d0ae1d5da  gcc/testsuite/gfortran.dg/goacc/reduction-3.f95
! cb1043758b27579bfc73998c460f4449  gcc/testsuite/gfortran.dg/goacc/reduction-promotions.f90
! 46fd853a6275991852de09ff935972f6  gcc/testsuite/gfortran.dg/goacc/reduction.f95
  df208766c4856bbc03206680d88a78f7  gcc/testsuite/gfortran.dg/goacc/ref_inquiry.f90
  98a9635d961b647b2f7ee8a0788d11b0  gcc/testsuite/gfortran.dg/goacc/routine-1.f90
  02135bc0b797b99a2d2126798e1e461b  gcc/testsuite/gfortran.dg/goacc/routine-2.f90
! 626c79e2d08f68f4ec1db30fd124ebd1  gcc/testsuite/gfortran.dg/goacc/routine-3.f90
  c7f7f4bf3ae51a9ac3c0e717461758b5  gcc/testsuite/gfortran.dg/goacc/routine-4.f90
  d8bda8310290b20e70bf191a6dd5db15  gcc/testsuite/gfortran.dg/goacc/routine-5.f90
  d2c217dba632b4bc9855adf5389424b6  gcc/testsuite/gfortran.dg/goacc/routine-6.f90
  c324911677ac830a5696fde01efa279e  gcc/testsuite/gfortran.dg/goacc/routine-8.f90
! 00ff95e20de8dba72ff8c9fc783f599c  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1.f
! 00b4dd2b0d66f910a79ed8aa3fe85364  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2.f
  eeb1714a171062365478923ac0347332  gcc/testsuite/gfortran.dg/goacc/routine-intrinsic-1.f
  0ab6393fcc5e4b69e1c331156c7bb191  gcc/testsuite/gfortran.dg/goacc/routine-intrinsic-2.f
  8aaf233ea87f2ebf8ae2dda1fa0daeb5  gcc/testsuite/gfortran.dg/goacc/routine-level-of-parallelism-1.f90
! 901797a14c9ca7c4351cab7daf33c593  gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90
! c074a941345e7c99fc1f13a54ca3ddf7  gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90
  c38bb5b07b493e3672d50656f571fad2  gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90
! 0f168f7e7ceda468c529a56f8623dea5  gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90
  4cf65f895549f70e4b0908e3894ec6c4  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-1.f90
  2cce5ac72927065c0bcdbbc236e285d8  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-2.f90
  2d941c126fb24bca06e3184011650a7a  gcc/testsuite/gfortran.dg/goacc/routine-multiple-lop-clauses-1.f90
  57646fad104626fcfa31b987d00c2f0b  gcc/testsuite/gfortran.dg/goacc/self.f95
  e3a293acbc8474a1b6769ba9ca054121  gcc/testsuite/gfortran.dg/goacc/sentinel-free-form.f95
  49f1ae5c72a4a5a35c9fdb8f76588e28  gcc/testsuite/gfortran.dg/goacc/several-directives.f95
! 2b860269b97c88e607615cb0d476fb53  gcc/testsuite/gfortran.dg/goacc/sie.f95
  60e37464235d4f49f4d84dda14b31375  gcc/testsuite/gfortran.dg/goacc/specification-part.f90
  5b41c13433f57952ca1aeb6e3fb87366  gcc/testsuite/gfortran.dg/goacc/strided-alloc-ptr.f90
! fc701ce0d0e66a16528808980da87172  gcc/testsuite/gfortran.dg/goacc/subarrays.f95
  33a1108ecb05541a6236e91b7aa9b04f  gcc/testsuite/gfortran.dg/goacc/substring.f90
  bf5941547570c89e5553dc31c4ccebbf  gcc/testsuite/gfortran.dg/goacc/tile-1.f90
  9271d76d87f6fa51aadceb07265aa68a  gcc/testsuite/gfortran.dg/goacc/tile-2.f90
--- 102508,102563 ----
  d784778dca55a73519575e6568f22a77  gcc/testsuite/gfortran.dg/goacc/pr94120-1.f90
  c416573c1a8cc44ca5ba7d63ec2aba3c  gcc/testsuite/gfortran.dg/goacc/pr94120-2.f90
  1f098c4f8245d0dfda6b57ce268656f0  gcc/testsuite/gfortran.dg/goacc/pr94120-3.f90
! 7de1b7f72cd5f58ee132229fb73c5c78  gcc/testsuite/gfortran.dg/goacc/private-3.f95
  a63629c8c309d4d181aa7e4d163f30c1  gcc/testsuite/gfortran.dg/goacc/private-explicit-kernels-1.f95
  4130cb2ad71b7a29b80b0c75c85f4c11  gcc/testsuite/gfortran.dg/goacc/private-explicit-parallel-1.f95
  62bd7093034aa7bc2f8fdadfa99b26d0  gcc/testsuite/gfortran.dg/goacc/private-explicit-routine-1.f95
+ 1f0d383cb4cbe96d28038fa5a1951f73  gcc/testsuite/gfortran.dg/goacc/private-explicit-serial-1.f95
  24873e7e4fa106bd0e00268afabcef24  gcc/testsuite/gfortran.dg/goacc/private-predetermined-kernels-1.f95
  ec077ad6bdea7dd131d1d252e41327ce  gcc/testsuite/gfortran.dg/goacc/private-predetermined-parallel-1.f95
  d1424a6aff56f84b8594efe4797586c7  gcc/testsuite/gfortran.dg/goacc/private-predetermined-routine-1.f95
+ 4caa2b45934cc8e0371f96cd2d280882  gcc/testsuite/gfortran.dg/goacc/private-predetermined-serial-1.f95
  320cef06c8127188e5b8ef5a9e8030c7  gcc/testsuite/gfortran.dg/goacc/privatization-1-compute-loop.f90
  8b4b1130919434a7c3fbccb70cc02590  gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90
  595bd7cc7c337a52f658d66ccd739259  gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang-loop.f90
  0fdd4c53847a616925b1751ff204d898  gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang.f90
  066700d763e7142e03d2c09ba0f79bde  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures-2.f90
! 7d59c8596eb94e1fee684422f2ed1003  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures.f95
  f85d6127bac477d11ee5f336d29750d8  gcc/testsuite/gfortran.dg/goacc/readonly-1.f90
! 0c1ca22277a4a0c3351d614fcd497a19  gcc/testsuite/gfortran.dg/goacc/reduction-2.f95
! 7edf46ce03f67e6109778d8a238364e6  gcc/testsuite/gfortran.dg/goacc/reduction-3.f95
! 8ee3c8ca34879d1f3588a457500a390d  gcc/testsuite/gfortran.dg/goacc/reduction-promotions.f90
! ca7caa43807cbf2c069e7b118f010f29  gcc/testsuite/gfortran.dg/goacc/reduction.f95
  df208766c4856bbc03206680d88a78f7  gcc/testsuite/gfortran.dg/goacc/ref_inquiry.f90
  98a9635d961b647b2f7ee8a0788d11b0  gcc/testsuite/gfortran.dg/goacc/routine-1.f90
  02135bc0b797b99a2d2126798e1e461b  gcc/testsuite/gfortran.dg/goacc/routine-2.f90
! 1a89c5c4052f1cfdc490b450049ea358  gcc/testsuite/gfortran.dg/goacc/routine-3.f90
  c7f7f4bf3ae51a9ac3c0e717461758b5  gcc/testsuite/gfortran.dg/goacc/routine-4.f90
  d8bda8310290b20e70bf191a6dd5db15  gcc/testsuite/gfortran.dg/goacc/routine-5.f90
  d2c217dba632b4bc9855adf5389424b6  gcc/testsuite/gfortran.dg/goacc/routine-6.f90
  c324911677ac830a5696fde01efa279e  gcc/testsuite/gfortran.dg/goacc/routine-8.f90
! 5e8bb44be5f84e252270debde0b98395  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1-parallel.f
! 987dd0bc4006de64da33535f1d9cfd96  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1-serial.f
! 2a1e7f3ebe313e90bf95a5818369414a  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2-parallel.f
! b3393d0d7cc756fb6bba080fcfb31db7  gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2-serial.f
  eeb1714a171062365478923ac0347332  gcc/testsuite/gfortran.dg/goacc/routine-intrinsic-1.f
  0ab6393fcc5e4b69e1c331156c7bb191  gcc/testsuite/gfortran.dg/goacc/routine-intrinsic-2.f
  8aaf233ea87f2ebf8ae2dda1fa0daeb5  gcc/testsuite/gfortran.dg/goacc/routine-level-of-parallelism-1.f90
! 47fe9ff045d8cf5c2fbd7e4279359ff9  gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90
! 29504e7ddda934b3e6b9d8f1de610634  gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90
  c38bb5b07b493e3672d50656f571fad2  gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90
! ea1c52d8c110955b302c75fe399e8170  gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90
  4cf65f895549f70e4b0908e3894ec6c4  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-1.f90
  2cce5ac72927065c0bcdbbc236e285d8  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-2.f90
  2d941c126fb24bca06e3184011650a7a  gcc/testsuite/gfortran.dg/goacc/routine-multiple-lop-clauses-1.f90
  57646fad104626fcfa31b987d00c2f0b  gcc/testsuite/gfortran.dg/goacc/self.f95
  e3a293acbc8474a1b6769ba9ca054121  gcc/testsuite/gfortran.dg/goacc/sentinel-free-form.f95
+ c742daa9e32b3b585da2ae836c0b8279  gcc/testsuite/gfortran.dg/goacc/serial-tree.f95
  49f1ae5c72a4a5a35c9fdb8f76588e28  gcc/testsuite/gfortran.dg/goacc/several-directives.f95
! 171aeeed99a83d8dfd82fd4d5f75cb6e  gcc/testsuite/gfortran.dg/goacc/sie.f95
  60e37464235d4f49f4d84dda14b31375  gcc/testsuite/gfortran.dg/goacc/specification-part.f90
  5b41c13433f57952ca1aeb6e3fb87366  gcc/testsuite/gfortran.dg/goacc/strided-alloc-ptr.f90
! 90790d5257e529144e497918c98213a7  gcc/testsuite/gfortran.dg/goacc/subarrays.f95
  33a1108ecb05541a6236e91b7aa9b04f  gcc/testsuite/gfortran.dg/goacc/substring.f90
  bf5941547570c89e5553dc31c4ccebbf  gcc/testsuite/gfortran.dg/goacc/tile-1.f90
  9271d76d87f6fa51aadceb07265aa68a  gcc/testsuite/gfortran.dg/goacc/tile-2.f90
*************** b81b5f4ac39ebfc6de7e0cff8e11e6e7  gcc/te
*** 95755,95769 ****
  7ea654e0edd65cf1fe8103d5dd6b9711  gcc/testsuite/gfortran.dg/goacc/unexpected-end.f90
  2fcae0aca98e7612762a0d64de5d1b4d  gcc/testsuite/gfortran.dg/goacc/uninit-copy-clause.f95
  bebac4bfa98c897bd162574a4f45948c  gcc/testsuite/gfortran.dg/goacc/uninit-dim-clause.f95
! 88380bbdf624680e8db8f7d98c484e9c  gcc/testsuite/gfortran.dg/goacc/uninit-firstprivate-clause.f95
! 3234af1e2cfb18d39404aaf9ed2b4dc5  gcc/testsuite/gfortran.dg/goacc/uninit-if-clause.f95
  cc049d7a09437572cf0153480f72863e  gcc/testsuite/gfortran.dg/goacc/uninit-use-device-clause.f95
  e5de83f3c72df9c91e2516026a10fd5c  gcc/testsuite/gfortran.dg/goacc/update-if_present-1.f90
! 710a82a68ac5694636887f347246fc72  gcc/testsuite/gfortran.dg/goacc/update-if_present-2.f90
  5c6b557fbcefd15ad6ec6ef08ade9d19  gcc/testsuite/gfortran.dg/goacc/update.f95
  e9972505e1a87fdeda00b94d99cf711b  gcc/testsuite/gfortran.dg/goacc/vector_length.f90
  d09b6d0bd3c55d3b99ebe64fe2ee3d04  gcc/testsuite/gfortran.dg/goacc/wait.f90
  4792d309290210831c4f3cd01453f237  gcc/testsuite/gfortran.dg/goacc/warn_truncated.f90
  911e262e498830097ca8c02694f76c13  gcc/testsuite/gfortran.dg/gomp/affinity-1.f90
  aa2f129bf735477d206c1fc34f102b17  gcc/testsuite/gfortran.dg/gomp/affinity-clause-1.f90
  3242eb8cd0e2489c3dcfa485f3b75d28  gcc/testsuite/gfortran.dg/gomp/affinity-clause-2.f90
--- 102567,102597 ----
  7ea654e0edd65cf1fe8103d5dd6b9711  gcc/testsuite/gfortran.dg/goacc/unexpected-end.f90
  2fcae0aca98e7612762a0d64de5d1b4d  gcc/testsuite/gfortran.dg/goacc/uninit-copy-clause.f95
  bebac4bfa98c897bd162574a4f45948c  gcc/testsuite/gfortran.dg/goacc/uninit-dim-clause.f95
! f8465776106b63fb5b5ceb95fe4f98f6  gcc/testsuite/gfortran.dg/goacc/uninit-firstprivate-clause.f95
! 13c4667263e4bb4a1bccbfc14139aa60  gcc/testsuite/gfortran.dg/goacc/uninit-if-clause.f95
  cc049d7a09437572cf0153480f72863e  gcc/testsuite/gfortran.dg/goacc/uninit-use-device-clause.f95
  e5de83f3c72df9c91e2516026a10fd5c  gcc/testsuite/gfortran.dg/goacc/update-if_present-1.f90
! 53b0b25c4ac601eb1c5d6d7b1c2e6fd3  gcc/testsuite/gfortran.dg/goacc/update-if_present-2.f90
  5c6b557fbcefd15ad6ec6ef08ade9d19  gcc/testsuite/gfortran.dg/goacc/update.f95
  e9972505e1a87fdeda00b94d99cf711b  gcc/testsuite/gfortran.dg/goacc/vector_length.f90
  d09b6d0bd3c55d3b99ebe64fe2ee3d04  gcc/testsuite/gfortran.dg/goacc/wait.f90
  4792d309290210831c4f3cd01453f237  gcc/testsuite/gfortran.dg/goacc/warn_truncated.f90
+ 62f3f5987ab9e32b28be9913a46f0ea9  gcc/testsuite/gfortran.dg/gomp/adjust-args-1.f90
+ 27c53e9d9da4a677a470776faf701455  gcc/testsuite/gfortran.dg/gomp/adjust-args-10.f90
+ 0221e6598b37e7bceb19dc705f66e3a5  gcc/testsuite/gfortran.dg/gomp/adjust-args-11.f90
+ 71a8d09b919831f501b73b2f68ba89e6  gcc/testsuite/gfortran.dg/gomp/adjust-args-12.f90
+ 51fb1aec508b12a91061167a8f71deed  gcc/testsuite/gfortran.dg/gomp/adjust-args-13.f90
+ b6b37670607b546cf3a06847dcdaef80  gcc/testsuite/gfortran.dg/gomp/adjust-args-14.f90
+ b42a38cbe564abb826e2862981d90a0e  gcc/testsuite/gfortran.dg/gomp/adjust-args-15.f90
+ 817479527e77cddb6ca57a4443847373  gcc/testsuite/gfortran.dg/gomp/adjust-args-2.f90
+ 434953caf41de999300cc398867b0547  gcc/testsuite/gfortran.dg/gomp/adjust-args-2a.f90
+ ce19074247dd02c8eec78506d8e73d91  gcc/testsuite/gfortran.dg/gomp/adjust-args-3.f90
+ d96fb53ddcfa097e2377c30e57aa4688  gcc/testsuite/gfortran.dg/gomp/adjust-args-4.f90
+ d96fb53ddcfa097e2377c30e57aa4688  gcc/testsuite/gfortran.dg/gomp/adjust-args-5.f90
+ baf9504f9deb0d762ee67843795c34ad  gcc/testsuite/gfortran.dg/gomp/adjust-args-6.f90
+ be34af17efc15c3908af24a39ba0b826  gcc/testsuite/gfortran.dg/gomp/adjust-args-7.f90
+ ab50c2fe7bdcd4e02f3aa6489695f17d  gcc/testsuite/gfortran.dg/gomp/adjust-args-8.f90
+ 08306d08a3f2086ceda24b3218c4ed12  gcc/testsuite/gfortran.dg/gomp/adjust-args-9.f90
  911e262e498830097ca8c02694f76c13  gcc/testsuite/gfortran.dg/gomp/affinity-1.f90
  aa2f129bf735477d206c1fc34f102b17  gcc/testsuite/gfortran.dg/gomp/affinity-clause-1.f90
  3242eb8cd0e2489c3dcfa485f3b75d28  gcc/testsuite/gfortran.dg/gomp/affinity-clause-2.f90
*************** c20c9f1e0f2b7f6bc763a7e20b0857ef  gcc/te
*** 95782,95802 ****
  8594f381e1344c5f1587ee1f8c22ed77  gcc/testsuite/gfortran.dg/gomp/allocate-12.f90
  a0f40b3f2545e1ffe3ba1eb23a11fa60  gcc/testsuite/gfortran.dg/gomp/allocate-13.f90
  ff6d377128556e0e1848678ee32b2b30  gcc/testsuite/gfortran.dg/gomp/allocate-13a.f90
! 10282e85221bd35d162e700a820e710b  gcc/testsuite/gfortran.dg/gomp/allocate-14.f90
! 04ba1f71805aa8c91b5f51831ac61c5c  gcc/testsuite/gfortran.dg/gomp/allocate-15.f90
  15deb2c55ce0d1fede6ac3896447cff5  gcc/testsuite/gfortran.dg/gomp/allocate-16.f90
  f599914502cce400a69c7df0fd407965  gcc/testsuite/gfortran.dg/gomp/allocate-2.f90
  16e9d68b7804e4ecd40f3bd6702cf3c5  gcc/testsuite/gfortran.dg/gomp/allocate-3.f90
! 06f9e0388a6d74ff4633618bc7e3c061  gcc/testsuite/gfortran.dg/gomp/allocate-4.f90
  86b069fbddb056ff7978ad41d287817a  gcc/testsuite/gfortran.dg/gomp/allocate-5.f90
! 97fc98e891d9e28cdfe34f750f9ad9bd  gcc/testsuite/gfortran.dg/gomp/allocate-6.f90
  ee5ecf22fd829ec7b6ce72edf02ac2f8  gcc/testsuite/gfortran.dg/gomp/allocate-7.f90
  db9a9c9e9be7de239493d5f606d71961  gcc/testsuite/gfortran.dg/gomp/allocate-8.f90
  77868d12d537788c591fbb0f45ff5bbd  gcc/testsuite/gfortran.dg/gomp/allocate-9.f90
  fdba6887e6e07e9db7286a8aa1e260ed  gcc/testsuite/gfortran.dg/gomp/allocators-1.f90
  de1aa465fd55a6b4c24514982405ff85  gcc/testsuite/gfortran.dg/gomp/allocators-2.f90
  dc598e53285474c71e357ec100b2489b  gcc/testsuite/gfortran.dg/gomp/allocators-3.f90
  ac6870964ba16f9c08fce6ee73023537  gcc/testsuite/gfortran.dg/gomp/allocators-4.f90
  a2a78b9dfd24cc5b801a51ebf7713787  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90
  a939ad660a97fdd3a36058fbbed08e4e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90
  be2dfd843076b56ef43acf3c66d28133  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90
--- 102610,102638 ----
  8594f381e1344c5f1587ee1f8c22ed77  gcc/testsuite/gfortran.dg/gomp/allocate-12.f90
  a0f40b3f2545e1ffe3ba1eb23a11fa60  gcc/testsuite/gfortran.dg/gomp/allocate-13.f90
  ff6d377128556e0e1848678ee32b2b30  gcc/testsuite/gfortran.dg/gomp/allocate-13a.f90
! bced023ca1f5f691682542e7502655fc  gcc/testsuite/gfortran.dg/gomp/allocate-14.f90
! aab372742298280e79af94d0fc2f1e92  gcc/testsuite/gfortran.dg/gomp/allocate-15.f90
  15deb2c55ce0d1fede6ac3896447cff5  gcc/testsuite/gfortran.dg/gomp/allocate-16.f90
  f599914502cce400a69c7df0fd407965  gcc/testsuite/gfortran.dg/gomp/allocate-2.f90
  16e9d68b7804e4ecd40f3bd6702cf3c5  gcc/testsuite/gfortran.dg/gomp/allocate-3.f90
! 3bdac730a5748360ce01b4b1d4550b1b  gcc/testsuite/gfortran.dg/gomp/allocate-4.f90
  86b069fbddb056ff7978ad41d287817a  gcc/testsuite/gfortran.dg/gomp/allocate-5.f90
! ce790eea2adbcda8e976c78d6a836960  gcc/testsuite/gfortran.dg/gomp/allocate-6.f90
  ee5ecf22fd829ec7b6ce72edf02ac2f8  gcc/testsuite/gfortran.dg/gomp/allocate-7.f90
  db9a9c9e9be7de239493d5f606d71961  gcc/testsuite/gfortran.dg/gomp/allocate-8.f90
  77868d12d537788c591fbb0f45ff5bbd  gcc/testsuite/gfortran.dg/gomp/allocate-9.f90
+ c42b03521b42af31a3ca803d226ba241  gcc/testsuite/gfortran.dg/gomp/allocate-clause.f90
+ 1fafa7d4d833eb325754164f72bc4809  gcc/testsuite/gfortran.dg/gomp/allocate-pinned-1.f90
+ 7ffef7d2c60bb7fd7f09fb3731cdfd4c  gcc/testsuite/gfortran.dg/gomp/allocate-static-2.f90
  fdba6887e6e07e9db7286a8aa1e260ed  gcc/testsuite/gfortran.dg/gomp/allocators-1.f90
  de1aa465fd55a6b4c24514982405ff85  gcc/testsuite/gfortran.dg/gomp/allocators-2.f90
  dc598e53285474c71e357ec100b2489b  gcc/testsuite/gfortran.dg/gomp/allocators-3.f90
  ac6870964ba16f9c08fce6ee73023537  gcc/testsuite/gfortran.dg/gomp/allocators-4.f90
+ 2c46b1e169c6854da53c30fe0524733b  gcc/testsuite/gfortran.dg/gomp/append-args-interop.f90
+ 5b65f31bccd9650fd44f966ac599fbc3  gcc/testsuite/gfortran.dg/gomp/append_args-1.f90
+ 4a314c759a6c6dd2208547e13761e900  gcc/testsuite/gfortran.dg/gomp/append_args-2.f90
+ a8fbc0aad84d8709944c57ce59037cb7  gcc/testsuite/gfortran.dg/gomp/append_args-3.f90
+ 4dff400b9f255be995b405bdcfde3995  gcc/testsuite/gfortran.dg/gomp/append_args-4.f90
  a2a78b9dfd24cc5b801a51ebf7713787  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90
  a939ad660a97fdd3a36058fbbed08e4e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90
  be2dfd843076b56ef43acf3c66d28133  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90
*************** f1a766f8696c6d4c654b209e78e352ce  gcc/te
*** 95859,95865 ****
  4bee16d209be417ce87c236f99f90dfb  gcc/testsuite/gfortran.dg/gomp/assume-4.f90
  0812a6a2cc0b6a44ec3668a36bd6b33b  gcc/testsuite/gfortran.dg/gomp/assume-5.f90
  3b3dfd23626e235883bd65611239768d  gcc/testsuite/gfortran.dg/gomp/assumes-1.f90
! 936fb03e38773522433e16d265b4fee7  gcc/testsuite/gfortran.dg/gomp/assumes-2.f90
  35cd43e5e50dfb825738cd8d77ba5b24  gcc/testsuite/gfortran.dg/gomp/atomic-10.f90
  66c185ce06ff0acbc15f2a764d987902  gcc/testsuite/gfortran.dg/gomp/atomic-12.f90
  dbe2f40d97bc2b89c8b1256683958181  gcc/testsuite/gfortran.dg/gomp/atomic-15.f90
--- 102695,102701 ----
  4bee16d209be417ce87c236f99f90dfb  gcc/testsuite/gfortran.dg/gomp/assume-4.f90
  0812a6a2cc0b6a44ec3668a36bd6b33b  gcc/testsuite/gfortran.dg/gomp/assume-5.f90
  3b3dfd23626e235883bd65611239768d  gcc/testsuite/gfortran.dg/gomp/assumes-1.f90
! 20f82388ecca25bd046552320ab24d99  gcc/testsuite/gfortran.dg/gomp/assumes-2.f90
  35cd43e5e50dfb825738cd8d77ba5b24  gcc/testsuite/gfortran.dg/gomp/atomic-10.f90
  66c185ce06ff0acbc15f2a764d987902  gcc/testsuite/gfortran.dg/gomp/atomic-12.f90
  dbe2f40d97bc2b89c8b1256683958181  gcc/testsuite/gfortran.dg/gomp/atomic-15.f90
*************** db982f8aaa5c93cb90d9bccb3251e49d  gcc/te
*** 95869,95879 ****
  fd464227b1a97174f131a5d83bf06bbe  gcc/testsuite/gfortran.dg/gomp/atomic-19.f90
  f23f31e3aab2957fab88d7b7ca1212de  gcc/testsuite/gfortran.dg/gomp/atomic-2.f90
  2411d6510005aaa3129dd37b5e2d7c90  gcc/testsuite/gfortran.dg/gomp/atomic-20.f90
! acdf49e6d1ffefedd4f1d64101915202  gcc/testsuite/gfortran.dg/gomp/atomic-21.f90
  4c409ed25982a96302c97d0b3705f8c0  gcc/testsuite/gfortran.dg/gomp/atomic-22.f90
  62db84bec1a075b6f84edb5ebf6f6cd4  gcc/testsuite/gfortran.dg/gomp/atomic-24.f90
  1a2d9594af9568a06a1511c9d2d68865  gcc/testsuite/gfortran.dg/gomp/atomic-25.f90
! ae9ace60f94abfcbfbd2a36299abbf0d  gcc/testsuite/gfortran.dg/gomp/atomic-26.f90
  81919ba83a95bbea4caaf87f2dd87da3  gcc/testsuite/gfortran.dg/gomp/atomic-27.f90
  2c61c6d91bbeab8332c3c329ee9f8d12  gcc/testsuite/gfortran.dg/gomp/atomic-28.f90
  2627f4c7f22f907c1019851b2ae1c79f  gcc/testsuite/gfortran.dg/gomp/atomic.f90
--- 102705,102715 ----
  fd464227b1a97174f131a5d83bf06bbe  gcc/testsuite/gfortran.dg/gomp/atomic-19.f90
  f23f31e3aab2957fab88d7b7ca1212de  gcc/testsuite/gfortran.dg/gomp/atomic-2.f90
  2411d6510005aaa3129dd37b5e2d7c90  gcc/testsuite/gfortran.dg/gomp/atomic-20.f90
! 72cf725ab49ef8d3e1325cb676f4bdfb  gcc/testsuite/gfortran.dg/gomp/atomic-21.f90
  4c409ed25982a96302c97d0b3705f8c0  gcc/testsuite/gfortran.dg/gomp/atomic-22.f90
  62db84bec1a075b6f84edb5ebf6f6cd4  gcc/testsuite/gfortran.dg/gomp/atomic-24.f90
  1a2d9594af9568a06a1511c9d2d68865  gcc/testsuite/gfortran.dg/gomp/atomic-25.f90
! 3467684a361f4e590ef8730678c22492  gcc/testsuite/gfortran.dg/gomp/atomic-26.f90
  81919ba83a95bbea4caaf87f2dd87da3  gcc/testsuite/gfortran.dg/gomp/atomic-27.f90
  2c61c6d91bbeab8332c3c329ee9f8d12  gcc/testsuite/gfortran.dg/gomp/atomic-28.f90
  2627f4c7f22f907c1019851b2ae1c79f  gcc/testsuite/gfortran.dg/gomp/atomic.f90
*************** cd36c1dc647fda3c47998959ae255f2e  gcc/te
*** 95915,95940 ****
  8c222b6e3da0201a7de8711e7767db6a  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90
  ad1fddef2cffc4b7efbe6881ffc53910  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90
  80d23bb6d3ed681a8870b4b33017b4c4  gcc/testsuite/gfortran.dg/gomp/declare-variant-1.f90
! d709549d9e901876f985f2254c7ab8f2  gcc/testsuite/gfortran.dg/gomp/declare-variant-10.f90
  a8e2326b18924669735487037483af94  gcc/testsuite/gfortran.dg/gomp/declare-variant-11.f90
! 7a4d7639899cf04e8d8b79ab0d7b2445  gcc/testsuite/gfortran.dg/gomp/declare-variant-12.f90
! 3880cab62b83edd2238c094165e29140  gcc/testsuite/gfortran.dg/gomp/declare-variant-13.f90
! 6db64edf613544bdecc00bcc8e0dc732  gcc/testsuite/gfortran.dg/gomp/declare-variant-14.f90
  bcff008fda796aaaa4aa0c808a1cf8da  gcc/testsuite/gfortran.dg/gomp/declare-variant-15.f90
  12d0afb12d65bdd24eb02d1437cf671f  gcc/testsuite/gfortran.dg/gomp/declare-variant-16.f90
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! e79a4123d4183297b7f2e13138f4a233  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
  df331bd4212e4a6cbc0e794b7eb5ac88  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
  0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
! a8eeff347bce5af9ca02a378b00abdf2  gcc/testsuite/gfortran.dg/gomp/declare-variant-3.f90
  de62088b28e5d20862eda347ec06e79d  gcc/testsuite/gfortran.dg/gomp/declare-variant-4.f90
  c8be345342a9412b0fcfce5b1ef75494  gcc/testsuite/gfortran.dg/gomp/declare-variant-5.f90
  d0221c0a07a1622d8aebae5c15babc51  gcc/testsuite/gfortran.dg/gomp/declare-variant-6.f90
  313233de6d1e14ff4f3adbc5a9887e75  gcc/testsuite/gfortran.dg/gomp/declare-variant-7.f90
! 34cf21eeddaf7465f665d069cdaae46d  gcc/testsuite/gfortran.dg/gomp/declare-variant-8.f90
! 82a82d0ef3a2b776a7b1db1d3592098a  gcc/testsuite/gfortran.dg/gomp/declare-variant-9.f90
  ab7e414047e163772b9c27f908863003  gcc/testsuite/gfortran.dg/gomp/declare-variant-no-score.f90
  fb5f1168fe1f12beb613ab193bba9156  gcc/testsuite/gfortran.dg/gomp/defaultmap-1.f90
  7976bf38c01b2497616082fac8e85b81  gcc/testsuite/gfortran.dg/gomp/defaultmap-10.f90
--- 102751,102781 ----
  8c222b6e3da0201a7de8711e7767db6a  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90
  ad1fddef2cffc4b7efbe6881ffc53910  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90
  80d23bb6d3ed681a8870b4b33017b4c4  gcc/testsuite/gfortran.dg/gomp/declare-variant-1.f90
! 522fe2656a7fec833d733a2f3ce7a313  gcc/testsuite/gfortran.dg/gomp/declare-variant-10.f90
  a8e2326b18924669735487037483af94  gcc/testsuite/gfortran.dg/gomp/declare-variant-11.f90
! 374f8f008908a7d2e05efea82785afa7  gcc/testsuite/gfortran.dg/gomp/declare-variant-12.f90
! b35ad41711bd8e3aa3e44dc216133117  gcc/testsuite/gfortran.dg/gomp/declare-variant-13.f90
! cfa62257874a40b2cf30e33dfeaccf4d  gcc/testsuite/gfortran.dg/gomp/declare-variant-14.f90
  bcff008fda796aaaa4aa0c808a1cf8da  gcc/testsuite/gfortran.dg/gomp/declare-variant-15.f90
  12d0afb12d65bdd24eb02d1437cf671f  gcc/testsuite/gfortran.dg/gomp/declare-variant-16.f90
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! 81a9d786c28a3ef62fb9b97631a45143  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
  df331bd4212e4a6cbc0e794b7eb5ac88  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
+ 1c8256ee6ef1a6a182d532c7902f031d  gcc/testsuite/gfortran.dg/gomp/declare-variant-21.f90
  0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
! 348a3d3117435800dccbcaacee4f3b1e  gcc/testsuite/gfortran.dg/gomp/declare-variant-3.f90
  de62088b28e5d20862eda347ec06e79d  gcc/testsuite/gfortran.dg/gomp/declare-variant-4.f90
  c8be345342a9412b0fcfce5b1ef75494  gcc/testsuite/gfortran.dg/gomp/declare-variant-5.f90
  d0221c0a07a1622d8aebae5c15babc51  gcc/testsuite/gfortran.dg/gomp/declare-variant-6.f90
  313233de6d1e14ff4f3adbc5a9887e75  gcc/testsuite/gfortran.dg/gomp/declare-variant-7.f90
! cf5d63139fcd723bfc1b391e1b37f674  gcc/testsuite/gfortran.dg/gomp/declare-variant-8.f90
! b7df3800cfa2bb625883068360e00886  gcc/testsuite/gfortran.dg/gomp/declare-variant-9.f90
! 3f81f735c2115b4cefadd4cf7ff4230c  gcc/testsuite/gfortran.dg/gomp/declare-variant-any.f90
! 7f11d290afc794356750594e8201dd1e  gcc/testsuite/gfortran.dg/gomp/declare-variant-duplicates.f90
! 9ae8338d5046033cfc0ebb0c3a3e6432  gcc/testsuite/gfortran.dg/gomp/declare-variant-mod-2-use.f90
! 01486280f40b5bbbee6ac693f8f494aa  gcc/testsuite/gfortran.dg/gomp/declare-variant-mod-2.f90
  ab7e414047e163772b9c27f908863003  gcc/testsuite/gfortran.dg/gomp/declare-variant-no-score.f90
  fb5f1168fe1f12beb613ab193bba9156  gcc/testsuite/gfortran.dg/gomp/defaultmap-1.f90
  7976bf38c01b2497616082fac8e85b81  gcc/testsuite/gfortran.dg/gomp/defaultmap-10.f90
*************** a28c1aee8075487b7ef5213d6c13ccaf  gcc/te
*** 95944,95951 ****
  6299fd54a36cce77c6db4b9dc37a8e4d  gcc/testsuite/gfortran.dg/gomp/defaultmap-5.f90
  f79e65aa139717f2926fce5e5ae182c9  gcc/testsuite/gfortran.dg/gomp/defaultmap-6.f90
  470d844fb0d7cccca9d9f7020f4c38a9  gcc/testsuite/gfortran.dg/gomp/defaultmap-7.f90
! 9de18ae7d79820ff1e00c6add4950fcb  gcc/testsuite/gfortran.dg/gomp/defaultmap-8.f90
! f600dac31dd921af306f1b393a8d4bec  gcc/testsuite/gfortran.dg/gomp/defaultmap-9.f90
  fa41d6dd0ec4bc45beb3cbce04bf821d  gcc/testsuite/gfortran.dg/gomp/depend-1.f90
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
--- 102785,102792 ----
  6299fd54a36cce77c6db4b9dc37a8e4d  gcc/testsuite/gfortran.dg/gomp/defaultmap-5.f90
  f79e65aa139717f2926fce5e5ae182c9  gcc/testsuite/gfortran.dg/gomp/defaultmap-6.f90
  470d844fb0d7cccca9d9f7020f4c38a9  gcc/testsuite/gfortran.dg/gomp/defaultmap-7.f90
! 5724622119dc57f32ab83c02e540c253  gcc/testsuite/gfortran.dg/gomp/defaultmap-8.f90
! 0e4dd3bced5d88dca81e1c199f1d9171  gcc/testsuite/gfortran.dg/gomp/defaultmap-9.f90
  fa41d6dd0ec4bc45beb3cbce04bf821d  gcc/testsuite/gfortran.dg/gomp/depend-1.f90
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
*************** fcda5a12452ac185d1c306d0e8222556  gcc/te
*** 95956,95961 ****
--- 102797,102815 ----
  1531f847e56d02d5d23beb0a2ff5cd9c  gcc/testsuite/gfortran.dg/gomp/depobj-1.f90
  1db04c92916620d84c79364d4cc275b9  gcc/testsuite/gfortran.dg/gomp/depobj-2.f90
  ffe0d4412da05b62992d6541e7112fe8  gcc/testsuite/gfortran.dg/gomp/depobj-3.f90
+ 8a513a99e217806d88242ea34b83aebd  gcc/testsuite/gfortran.dg/gomp/dispatch-1.f90
+ a58669c1e408890ad26ae49b158cf8e0  gcc/testsuite/gfortran.dg/gomp/dispatch-10.f90
+ 1ded33d3b021c3ddd8db206de7928035  gcc/testsuite/gfortran.dg/gomp/dispatch-11.f90
+ 560d14b2ba54220449d463848045f587  gcc/testsuite/gfortran.dg/gomp/dispatch-12.f90
+ afabfc4265ce678873919695dbd65453  gcc/testsuite/gfortran.dg/gomp/dispatch-2.f90
+ c6413fbb26427f0fed557bb4c9a24e4d  gcc/testsuite/gfortran.dg/gomp/dispatch-3.f90
+ d2ef52fe25d7aeb2d36a49758ec78f94  gcc/testsuite/gfortran.dg/gomp/dispatch-4.f90
+ 4a656c8688cd3a31659274722b2e39f6  gcc/testsuite/gfortran.dg/gomp/dispatch-5.f90
+ 0579b02983b05691b085ca5d49670de0  gcc/testsuite/gfortran.dg/gomp/dispatch-6.f90
+ 3903d10cf81aeaddb63e3e1c0247fbae  gcc/testsuite/gfortran.dg/gomp/dispatch-7.f90
+ 2f8844eb3265ec5977b9053404a81f09  gcc/testsuite/gfortran.dg/gomp/dispatch-8.f90
+ 94c22e8bd9328dd4d3614d4f0645612e  gcc/testsuite/gfortran.dg/gomp/dispatch-9.f90
+ c6c0a114dc31d5c006e20ffa43eec35c  gcc/testsuite/gfortran.dg/gomp/dispatch-9a.f90
  9757fd1aff0e97e5388764ec44be73fd  gcc/testsuite/gfortran.dg/gomp/do-1.f90
  9b09f560c0be75a5e05b926194bcc40a  gcc/testsuite/gfortran.dg/gomp/doacross-5.f90
  688b415eed42adc6cb70cd626354a0be  gcc/testsuite/gfortran.dg/gomp/doacross-6.f90
*************** d3b68a58adb3f5eb2533a30d870f100e  gcc/te
*** 95967,95973 ****
  afc521c98a39e0e1821f895f702c9cd1  gcc/testsuite/gfortran.dg/gomp/flush-2.f90
  14ab6dfa2149c533128a3f201531e525  gcc/testsuite/gfortran.dg/gomp/free-1.f90
  b7bb651884d39c2e5dce7d57d46f40a5  gcc/testsuite/gfortran.dg/gomp/free-2.f90
! b00c6a35c4f58b74c80bc3ed872a18d8  gcc/testsuite/gfortran.dg/gomp/gomp.exp
  c81f6e5f96d44ff4d4332116923c4ba7  gcc/testsuite/gfortran.dg/gomp/if-1.f90
  d9e691abc51124a315a9fe8d1bd3a04e  gcc/testsuite/gfortran.dg/gomp/imperfect-gotos.f90
  bab74adf4eb79eb22ea45dc4908e7686  gcc/testsuite/gfortran.dg/gomp/imperfect-invalid-scope.f90
--- 102821,102827 ----
  afc521c98a39e0e1821f895f702c9cd1  gcc/testsuite/gfortran.dg/gomp/flush-2.f90
  14ab6dfa2149c533128a3f201531e525  gcc/testsuite/gfortran.dg/gomp/free-1.f90
  b7bb651884d39c2e5dce7d57d46f40a5  gcc/testsuite/gfortran.dg/gomp/free-2.f90
! e23f542becaa21fb3b2d7341b9f74512  gcc/testsuite/gfortran.dg/gomp/gomp.exp
  c81f6e5f96d44ff4d4332116923c4ba7  gcc/testsuite/gfortran.dg/gomp/if-1.f90
  d9e691abc51124a315a9fe8d1bd3a04e  gcc/testsuite/gfortran.dg/gomp/imperfect-gotos.f90
  bab74adf4eb79eb22ea45dc4908e7686  gcc/testsuite/gfortran.dg/gomp/imperfect-invalid-scope.f90
*************** c20118617178c3c6359815c5134a798a  gcc/te
*** 95980,95986 ****
--- 102834,102848 ----
  336652c36c7d7ce2f34ced505acc64c9  gcc/testsuite/gfortran.dg/gomp/include_1.f
  1fe1ad5080374d9a506a842e10eb64cf  gcc/testsuite/gfortran.dg/gomp/include_1.inc
  c9c12b39090e7fc13f17ab5f3914978a  gcc/testsuite/gfortran.dg/gomp/include_2.f90
+ ebb0a8dd169ad9c85b548154cea0be80  gcc/testsuite/gfortran.dg/gomp/inner-loops-1.f90
+ d646b4475e0f1b9689437db9772961b9  gcc/testsuite/gfortran.dg/gomp/inner-loops-2.f90
  c6b23e36c3423a3454fb19b0ec6f0e01  gcc/testsuite/gfortran.dg/gomp/intentin1.f90
+ c01c8c2ad31a68195b22536b6b88f974  gcc/testsuite/gfortran.dg/gomp/interop-1.f90
+ 8be388741956185d6cc4a261990308fb  gcc/testsuite/gfortran.dg/gomp/interop-2.f90
+ 29ec5c45c49c8ec16f2a658ccee76814  gcc/testsuite/gfortran.dg/gomp/interop-3.f90
+ 902f4ad31cdbc96d2097e70485091287  gcc/testsuite/gfortran.dg/gomp/interop-4.f90
+ 6433233c250101a45d0275a0b1f0ebc3  gcc/testsuite/gfortran.dg/gomp/interop-5.f90
+ 266910204668b7c0adbd548abc5acad5  gcc/testsuite/gfortran.dg/gomp/intrinsic_pack_7.f90
  8c74ac45276055114e691c8cd534fc8a  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-1.f90
  56ffb73ae6f2ea9f30c7d45ab815247c  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-2.f90
  7063482a995ea63c55b568e5a94be6fa  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-3.f90
*************** d9692272c0b81e1742bb5a587d004640  gcc/te
*** 96015,96029 ****
  22cb7336223857b6a2075fbcf16640bc  gcc/testsuite/gfortran.dg/gomp/map-7.f90
  7db1e7040e830b05cbfea84dfdadc88c  gcc/testsuite/gfortran.dg/gomp/map-8.f90
  e4611087ccbe2da89ff845309c4f0a28  gcc/testsuite/gfortran.dg/gomp/map-9.f90
! dbafc5b94ae395cda5657628bc263b17  gcc/testsuite/gfortran.dg/gomp/map-alloc-comp-1.f90
  45a30924a96af3f4dc17367d65b8aa30  gcc/testsuite/gfortran.dg/gomp/map-subarray-2.f90
! 5550343861e8ec99bf1c92417a9a383f  gcc/testsuite/gfortran.dg/gomp/map-subarray.f90
  27a18505986bb3d15bf8fae66e56277d  gcc/testsuite/gfortran.dg/gomp/masked-1.f90
  3dcee7c8522ab62ae30bfb476d1ff838  gcc/testsuite/gfortran.dg/gomp/masked-2.f90
  030bb5759e59829f3b659878d4b71c83  gcc/testsuite/gfortran.dg/gomp/masked-3.f90
  cb24525724c32b45315c964136a5f1b9  gcc/testsuite/gfortran.dg/gomp/masked-combined-1.f90
  363b0dfc01dfa5ff05f2e7f9e5cb91dd  gcc/testsuite/gfortran.dg/gomp/masked-combined-2.f90
  4fc7de6f5648a0220d734c2d546f8dfc  gcc/testsuite/gfortran.dg/gomp/masked-taskloop.f90
  5089fa6a1404ef16d8501a2090e01711  gcc/testsuite/gfortran.dg/gomp/minmaxloc_1.f90
  d8fab0c405f257ffcf3c0d31627f2355  gcc/testsuite/gfortran.dg/gomp/nesting-1.f90
  20369c0edadd588648f0e943f1fb0e7e  gcc/testsuite/gfortran.dg/gomp/nesting-2.f90
--- 102877,102906 ----
  22cb7336223857b6a2075fbcf16640bc  gcc/testsuite/gfortran.dg/gomp/map-7.f90
  7db1e7040e830b05cbfea84dfdadc88c  gcc/testsuite/gfortran.dg/gomp/map-8.f90
  e4611087ccbe2da89ff845309c4f0a28  gcc/testsuite/gfortran.dg/gomp/map-9.f90
! 76e8b638cea123405704916f0d8d15c5  gcc/testsuite/gfortran.dg/gomp/map-alloc-comp-1.f90
  45a30924a96af3f4dc17367d65b8aa30  gcc/testsuite/gfortran.dg/gomp/map-subarray-2.f90
! 5a07328f491fd2469ed5686d84fef199  gcc/testsuite/gfortran.dg/gomp/map-subarray.f90
  27a18505986bb3d15bf8fae66e56277d  gcc/testsuite/gfortran.dg/gomp/masked-1.f90
  3dcee7c8522ab62ae30bfb476d1ff838  gcc/testsuite/gfortran.dg/gomp/masked-2.f90
  030bb5759e59829f3b659878d4b71c83  gcc/testsuite/gfortran.dg/gomp/masked-3.f90
  cb24525724c32b45315c964136a5f1b9  gcc/testsuite/gfortran.dg/gomp/masked-combined-1.f90
  363b0dfc01dfa5ff05f2e7f9e5cb91dd  gcc/testsuite/gfortran.dg/gomp/masked-combined-2.f90
  4fc7de6f5648a0220d734c2d546f8dfc  gcc/testsuite/gfortran.dg/gomp/masked-taskloop.f90
+ 2363323e22544eea9783547bfc3d1109  gcc/testsuite/gfortran.dg/gomp/metadirective-1.f90
+ d512aeac74264bd6299df1eee7ca57c9  gcc/testsuite/gfortran.dg/gomp/metadirective-10.f90
+ b686d21e1f423f1bb85ad24a8accfd3b  gcc/testsuite/gfortran.dg/gomp/metadirective-11.f90
+ 96f78fa906d4b87786777f48289e38b0  gcc/testsuite/gfortran.dg/gomp/metadirective-12.f90
+ 82ea7565b71e0e8728aca87603a5a21e  gcc/testsuite/gfortran.dg/gomp/metadirective-13.f90
+ 014f1ee07eaccd58396c0e28004c4529  gcc/testsuite/gfortran.dg/gomp/metadirective-2.f90
+ 271ac1d47601f7e2bf37e64d7cfe670a  gcc/testsuite/gfortran.dg/gomp/metadirective-3.f90
+ f06a2c2ac06531c31c2af5aff09e5af4  gcc/testsuite/gfortran.dg/gomp/metadirective-4.f90
+ 10d5ecc308083978c3b70ba4550edc1b  gcc/testsuite/gfortran.dg/gomp/metadirective-5.f90
+ 4193587debf9aee72244628dcf0c7857  gcc/testsuite/gfortran.dg/gomp/metadirective-6.f90
+ 5e8bd9d3366b3416e9ae39f96ac238f7  gcc/testsuite/gfortran.dg/gomp/metadirective-7.f90
+ d02930e08384e48ec08d13d86db582aa  gcc/testsuite/gfortran.dg/gomp/metadirective-8.f90
+ b8def6b976bafaca7cf4bbe147909f92  gcc/testsuite/gfortran.dg/gomp/metadirective-9.f90
+ 5593840bc2a082e0c33c2ba785a3db8e  gcc/testsuite/gfortran.dg/gomp/metadirective-construct.f90
+ 25daaf75f02ebca94cb4a2f945df875b  gcc/testsuite/gfortran.dg/gomp/metadirective-no-score.f90
  5089fa6a1404ef16d8501a2090e01711  gcc/testsuite/gfortran.dg/gomp/minmaxloc_1.f90
  d8fab0c405f257ffcf3c0d31627f2355  gcc/testsuite/gfortran.dg/gomp/nesting-1.f90
  20369c0edadd588648f0e943f1fb0e7e  gcc/testsuite/gfortran.dg/gomp/nesting-2.f90
*************** f8e40f23828c760759b3893792acb659  gcc/te
*** 96071,96080 ****
  35c099331d2ac9c6383bb03bcf2fab33  gcc/testsuite/gfortran.dg/gomp/order-5.f90
  901de0f48b4103e45783c545e17e9697  gcc/testsuite/gfortran.dg/gomp/order-6.f90
  5aee86e6d3f0327d9fcb22e4e1a7d079  gcc/testsuite/gfortran.dg/gomp/order-7.f90
! eb835cbff61dc3a5d2c957d0e87c6ab0  gcc/testsuite/gfortran.dg/gomp/order-8.f90
  054c5c2350f2722c8a722ca2a63bed3f  gcc/testsuite/gfortran.dg/gomp/order-9.f90
  905750ad1d8a5ad625ad891d24861b35  gcc/testsuite/gfortran.dg/gomp/parallel-master-1.f90
  141c35f9d62b46a7e1b14aa4806260cb  gcc/testsuite/gfortran.dg/gomp/parallel-master-2.f90
  dd42ad4341c4916a5494d5d3c6a52b40  gcc/testsuite/gfortran.dg/gomp/pr100965.f90
  8c46c1ee06eca3c9ecb211ced2a97c89  gcc/testsuite/gfortran.dg/gomp/pr102431.f90
  a1a9be8c9080ba2ba338bc6f63b406e3  gcc/testsuite/gfortran.dg/gomp/pr102621.f90
--- 102948,102963 ----
  35c099331d2ac9c6383bb03bcf2fab33  gcc/testsuite/gfortran.dg/gomp/order-5.f90
  901de0f48b4103e45783c545e17e9697  gcc/testsuite/gfortran.dg/gomp/order-6.f90
  5aee86e6d3f0327d9fcb22e4e1a7d079  gcc/testsuite/gfortran.dg/gomp/order-7.f90
! 3ce5e3c6b7e07614a15766628501a17d  gcc/testsuite/gfortran.dg/gomp/order-8.f90
  054c5c2350f2722c8a722ca2a63bed3f  gcc/testsuite/gfortran.dg/gomp/order-9.f90
  905750ad1d8a5ad625ad891d24861b35  gcc/testsuite/gfortran.dg/gomp/parallel-master-1.f90
  141c35f9d62b46a7e1b14aa4806260cb  gcc/testsuite/gfortran.dg/gomp/parallel-master-2.f90
+ 583f15b294093b280f67c26128dd1e2e  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-1.f90
+ aa8a8106984b67c577ddf1f8e1481350  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-2.f90
+ bcec7c6f5a28739d45c8dce6a8c1545c  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-3.f90
+ c4c86973cf0938ea1456949849582a2a  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-4.f90
+ 72668677493c036639519f511321445d  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-5.f90
+ 0cdaedb7a34b46ba225e78e6cb7f84fd  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping.f90
  dd42ad4341c4916a5494d5d3c6a52b40  gcc/testsuite/gfortran.dg/gomp/pr100965.f90
  8c46c1ee06eca3c9ecb211ced2a97c89  gcc/testsuite/gfortran.dg/gomp/pr102431.f90
  a1a9be8c9080ba2ba338bc6f63b406e3  gcc/testsuite/gfortran.dg/gomp/pr102621.f90
*************** f523f11e31c8d7a378a90e54f4cc9a88  gcc/te
*** 96082,96087 ****
--- 102965,102971 ----
  8d0eb4ba7d5d6e2c9ffeb53bd0b900ec  gcc/testsuite/gfortran.dg/gomp/pr103695.f90
  b229abc8cb06bd3633deb0bb940ede08  gcc/testsuite/gfortran.dg/gomp/pr104131.f90
  39842b4010b4165bbe821ffc8a903991  gcc/testsuite/gfortran.dg/gomp/pr104757.f90
+ b0de5c5053146f58fe1939b9523524e5  gcc/testsuite/gfortran.dg/gomp/pr104826.f90
  02981b5d8f6403bdc6a2dfd0100dcc74  gcc/testsuite/gfortran.dg/gomp/pr107214-2.f90
  aa1b85a34517ebec1f009bb653cba745  gcc/testsuite/gfortran.dg/gomp/pr107214-3.f90
  2e63593d3e34a9e40ad97ad973ca3a83  gcc/testsuite/gfortran.dg/gomp/pr107214-4.f90
*************** edeec1fe2488c7117f56e10734af03dc  gcc/te
*** 96091,96096 ****
--- 102975,102984 ----
  1474c5a5881d7047f1212bc8cfb8ef92  gcc/testsuite/gfortran.dg/gomp/pr107214-8.f90
  3beded12a494129bebcc732d85089896  gcc/testsuite/gfortran.dg/gomp/pr107214.f90
  616305573acc701769497c1eee637edc  gcc/testsuite/gfortran.dg/gomp/pr114825.f90
+ 14e2080dbf20d40b1e1572419572cae5  gcc/testsuite/gfortran.dg/gomp/pr115103.f90
+ 7e57554851ec1cc8a84c063d08c5e85b  gcc/testsuite/gfortran.dg/gomp/pr118790.f90
+ 6b771a999bde94f57725dc0bd1605b06  gcc/testsuite/gfortran.dg/gomp/pr118965-1.f90
+ a4c8e1c741144a0563b7496c35105b96  gcc/testsuite/gfortran.dg/gomp/pr118965-2.f90
  9a6817790a272cd8153d4303d324c00f  gcc/testsuite/gfortran.dg/gomp/pr26224.f
  d2c74a71f2bea0005d853821e6f0142c  gcc/testsuite/gfortran.dg/gomp/pr27573.f90
  a65c4577a606ba1bdab50e690b269b04  gcc/testsuite/gfortran.dg/gomp/pr29759.f90
*************** eccea57d37be5c510137e35d54db87b2  gcc/te
*** 96187,96194 ****
  453d5604d4da08b7868c762f71d254fc  gcc/testsuite/gfortran.dg/gomp/pr99928-8.f90
  b4be3f9de7631846875a711ae9b67293  gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90
  87885556568e657ef4c936c53e1c7305  gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90
! 4edb8a2b8f952f795f9f57117721cbb7  gcc/testsuite/gfortran.dg/gomp/pure-1.f90
! 028a819c77b9453f3311b6fc760c578f  gcc/testsuite/gfortran.dg/gomp/pure-2.f90
  5eef8930e22c6aaec5db14655ff40440  gcc/testsuite/gfortran.dg/gomp/pure-3.f90
  ebdb3f699016b45eacec723166e0a536  gcc/testsuite/gfortran.dg/gomp/pure-4.f90
  fb0554238513491cab61f8c72f0fb5d5  gcc/testsuite/gfortran.dg/gomp/reduction-task-1.f90
--- 103075,103082 ----
  453d5604d4da08b7868c762f71d254fc  gcc/testsuite/gfortran.dg/gomp/pr99928-8.f90
  b4be3f9de7631846875a711ae9b67293  gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90
  87885556568e657ef4c936c53e1c7305  gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90
! b4e0aeaf5b75aeb3fe4de5a0aa527890  gcc/testsuite/gfortran.dg/gomp/pure-1.f90
! 355fb2a0874d5655c843a309d287f307  gcc/testsuite/gfortran.dg/gomp/pure-2.f90
  5eef8930e22c6aaec5db14655ff40440  gcc/testsuite/gfortran.dg/gomp/pure-3.f90
  ebdb3f699016b45eacec723166e0a536  gcc/testsuite/gfortran.dg/gomp/pure-4.f90
  fb0554238513491cab61f8c72f0fb5d5  gcc/testsuite/gfortran.dg/gomp/reduction-task-1.f90
*************** a68adcaed6526211be8ca88c99cd653f  gcc/te
*** 96199,96219 ****
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
! 629e3cdef4114f6f468e57f8c32fd5bb  gcc/testsuite/gfortran.dg/gomp/reduction5.f90
! 124001027b2d44d709bbbbc5ccd66a92  gcc/testsuite/gfortran.dg/gomp/reduction6.f90
  0c741a076dd04066bfbaa57725ef02e9  gcc/testsuite/gfortran.dg/gomp/reduction7.f90
  7fe01ba3e1a1dd148d342a8c66455920  gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90
! 274262a532e8508d248c02dc12d359bc  gcc/testsuite/gfortran.dg/gomp/requires-1.f90
  aa73cc15d0a821884197ef200cc49dc8  gcc/testsuite/gfortran.dg/gomp/requires-10.f90
  2bddefbd1131ecb8f1773bb7b9d5ee8c  gcc/testsuite/gfortran.dg/gomp/requires-11.f90
! 74e99b9b4ea256fa8dc61665ecf06940  gcc/testsuite/gfortran.dg/gomp/requires-2.f90
  f8131ff96b4007846fbcefaafb022a81  gcc/testsuite/gfortran.dg/gomp/requires-3.f90
! 75b81b2a8b98f4d1fddf460d4f91687c  gcc/testsuite/gfortran.dg/gomp/requires-4.f90
! cadec9539cd1459563a45548b4b267c9  gcc/testsuite/gfortran.dg/gomp/requires-5.f90
! 46f083bb08dfc0edfbdb3af4353d7197  gcc/testsuite/gfortran.dg/gomp/requires-6.f90
! d47fb4d0166842f717efe23cd8e6548c  gcc/testsuite/gfortran.dg/gomp/requires-7.f90
! d653471d8f256659299160eeef0b3250  gcc/testsuite/gfortran.dg/gomp/requires-8.f90
  db8328a4f748cc704f20335b7343890b  gcc/testsuite/gfortran.dg/gomp/requires-9.f90
  1ed17032e7d2e278d3978db257cdb3dd  gcc/testsuite/gfortran.dg/gomp/scan-1.f90
  e69757621834c84c21fc0470637b86af  gcc/testsuite/gfortran.dg/gomp/scan-2.f90
  d32b934bf6eb3a58ce0d40315170c604  gcc/testsuite/gfortran.dg/gomp/scan-3.f90
--- 103087,103109 ----
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
! 8d2b6db6379827d1bb0441973643b44f  gcc/testsuite/gfortran.dg/gomp/reduction5.f90
! 894f6304d2241272e62a962e7cc781fd  gcc/testsuite/gfortran.dg/gomp/reduction6.f90
  0c741a076dd04066bfbaa57725ef02e9  gcc/testsuite/gfortran.dg/gomp/reduction7.f90
  7fe01ba3e1a1dd148d342a8c66455920  gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90
! 01fa439a341d619fe0170332bfc7bad9  gcc/testsuite/gfortran.dg/gomp/requires-1.f90
  aa73cc15d0a821884197ef200cc49dc8  gcc/testsuite/gfortran.dg/gomp/requires-10.f90
  2bddefbd1131ecb8f1773bb7b9d5ee8c  gcc/testsuite/gfortran.dg/gomp/requires-11.f90
! 6635b1443586fedb6137f7ceefa4df3e  gcc/testsuite/gfortran.dg/gomp/requires-2.f90
  f8131ff96b4007846fbcefaafb022a81  gcc/testsuite/gfortran.dg/gomp/requires-3.f90
! 7d21e9f961337018ba371c76ffd470de  gcc/testsuite/gfortran.dg/gomp/requires-4.f90
! 871c853d1a33aa6ec90100b274b61e26  gcc/testsuite/gfortran.dg/gomp/requires-5.f90
! 7d0a4c8fda6858b413ee57216c9cd951  gcc/testsuite/gfortran.dg/gomp/requires-6.f90
! 500754a5c2f0c50c248e779b76fc746e  gcc/testsuite/gfortran.dg/gomp/requires-7.f90
! 7fc65425798359d226d76344cf1cf404  gcc/testsuite/gfortran.dg/gomp/requires-8.f90
  db8328a4f748cc704f20335b7343890b  gcc/testsuite/gfortran.dg/gomp/requires-9.f90
+ dfa6e31f0f26cf65e14fcf1c547d2c54  gcc/testsuite/gfortran.dg/gomp/requires-self-maps-aux.f90
+ a3c0b0b613b86032c4221b6003c66849  gcc/testsuite/gfortran.dg/gomp/requires-self-maps.f90
  1ed17032e7d2e278d3978db257cdb3dd  gcc/testsuite/gfortran.dg/gomp/scan-1.f90
  e69757621834c84c21fc0470637b86af  gcc/testsuite/gfortran.dg/gomp/scan-2.f90
  d32b934bf6eb3a58ce0d40315170c604  gcc/testsuite/gfortran.dg/gomp/scan-3.f90
*************** d32b934bf6eb3a58ce0d40315170c604  gcc/te
*** 96222,96227 ****
--- 103112,103118 ----
  35326d68b85545facab66432fae3e042  gcc/testsuite/gfortran.dg/gomp/scan-6.f90
  d56094ad174ac9dd36a007adf8c4fb31  gcc/testsuite/gfortran.dg/gomp/scan-7.f90
  72fdab1298dcbffc11b77783e73b2bff  gcc/testsuite/gfortran.dg/gomp/scan-8.f90
+ f51f66a6b2e14680b95f605597f14be3  gcc/testsuite/gfortran.dg/gomp/scan-9.f90
  96b7be608b1727fa1e3fc8a9c0185d70  gcc/testsuite/gfortran.dg/gomp/schedule-1.f90
  c525cee40cfdc1d7f1dda5cf299fdde9  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90
  97aefac9d65dc006ea6d5ce5ea111492  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
*************** d492a0ba11cd7662d12ae10d05c32cae  gcc/te
*** 96250,96256 ****
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! 0cb34f27de5a8441a9132029257af307  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
  874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
  533ad130fc9c9f6a430f9cdefc575831  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-2.f90
--- 103141,103147 ----
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! a81fcf292a341e29920f0576722dfd3e  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
  874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
  533ad130fc9c9f6a430f9cdefc575831  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-2.f90
*************** cddf0e5db848cb565f919271c30b45c6  gcc/te
*** 96270,96275 ****
--- 103161,103191 ----
  24609eb65d0d73474b025ad81503c37d  gcc/testsuite/gfortran.dg/gomp/teams-6.f90
  93bf9ebfcd92172a6fc8ffa353dc697b  gcc/testsuite/gfortran.dg/gomp/teams1.f90
  ece14642b39d950304d0510a2090d613  gcc/testsuite/gfortran.dg/gomp/threadprivate-1.f90
+ ff1a897d97c92f039bac828cbd1a7767  gcc/testsuite/gfortran.dg/gomp/tile-1.f90
+ b718c6549a69d8334a61050fe3e26b7d  gcc/testsuite/gfortran.dg/gomp/tile-10.f90
+ 8a368386a99d50f9e183d3d678d90d54  gcc/testsuite/gfortran.dg/gomp/tile-2.f90
+ 7da9252ce454b9b66b0c5d7e804a80f4  gcc/testsuite/gfortran.dg/gomp/tile-3.f90
+ 987a7a40b4e7baa101b69e8bcba83e25  gcc/testsuite/gfortran.dg/gomp/tile-4.f90
+ d0e756da31f71505762060e889ca0af9  gcc/testsuite/gfortran.dg/gomp/tile-5.f90
+ aa21ae7d069e1a7de47d181a036c3f50  gcc/testsuite/gfortran.dg/gomp/tile-6.f90
+ a6e066c6ee0a7133e142545497ea9fdf  gcc/testsuite/gfortran.dg/gomp/tile-7.f90
+ 904061a5e2201154f22734cb3fd1b402  gcc/testsuite/gfortran.dg/gomp/tile-8.f90
+ 5a4a71392f09b052258a6b5b5b9fe936  gcc/testsuite/gfortran.dg/gomp/tile-9.f90
+ abc96ebfe75105b96b6699bf279743ca  gcc/testsuite/gfortran.dg/gomp/tile-imperfect-nest-1.f90
+ b7eeccc7c857af4b097741959efce4a8  gcc/testsuite/gfortran.dg/gomp/tile-imperfect-nest-2.f90
+ b5a4f37908abfa6dd3e0bc61e4559441  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-1.f90
+ 82d9cb4872d2d4f404c67e7d27f367ff  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-2.f90
+ 59d68b00cabea6233422d574d77b9427  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-3.f90
+ eb62c90a8f09d99ced7d11fdd2d9ee49  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-4.f90
+ 167c38deab56732ea91e1988efa34894  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-5.f90
+ 51fead5e131f656aec49ead040e9265f  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-6.f90
+ 7b76966c511c736604dbfed32177020a  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-7.f90
+ 7c44ab52b2d228d1bfc4f4043015a17f  gcc/testsuite/gfortran.dg/gomp/tile-inner-loops-8.f90
+ 928568fc6648b8b831f98864e77a84d5  gcc/testsuite/gfortran.dg/gomp/tile-non-rectangular-1.f90
+ 66c9853ccd95ddb284bf16974744bbcb  gcc/testsuite/gfortran.dg/gomp/tile-non-rectangular-2.f90
+ e3f27671996dac00e345c87ba8a3f791  gcc/testsuite/gfortran.dg/gomp/tile-non-rectangular-3.f90
+ 87b149e776c19cccef9938aa4dfe72bf  gcc/testsuite/gfortran.dg/gomp/tile-unroll-1.f90
+ 100fa4f88e99d4b2628209ea7a8175f6  gcc/testsuite/gfortran.dg/gomp/tile-unroll-2.f90
  86f899863718848e682593290355e6c1  gcc/testsuite/gfortran.dg/gomp/udr1.f90
  2aa1076458fe27767e8682a018266e21  gcc/testsuite/gfortran.dg/gomp/udr2.f90
  6ddb9641f92715d3a3298771fab84b43  gcc/testsuite/gfortran.dg/gomp/udr3.f90
*************** ece14642b39d950304d0510a2090d613  gcc/te
*** 96279,96284 ****
--- 103195,103224 ----
  186f9bb4f37e50c00e5be84dc3319bb0  gcc/testsuite/gfortran.dg/gomp/udr7.f90
  20bfe17efe2daa15a962d3237694089d  gcc/testsuite/gfortran.dg/gomp/udr8.f90
  bdd3234f4f1bcbaa3e8d622739012887  gcc/testsuite/gfortran.dg/gomp/unexpected-end.f90
+ b6eec0db6646d2092124f18bafc7578e  gcc/testsuite/gfortran.dg/gomp/unroll-1.f90
+ 3e5329f856b7a758cb80cfb9f1f14525  gcc/testsuite/gfortran.dg/gomp/unroll-10.f90
+ 46034dbf12b437a04b6cabc6fca84818  gcc/testsuite/gfortran.dg/gomp/unroll-11.f90
+ 9a78571651d0f69b52f75a57a27299f3  gcc/testsuite/gfortran.dg/gomp/unroll-12.f90
+ 05b15c85dc0cc3375c2dd027eca064a5  gcc/testsuite/gfortran.dg/gomp/unroll-13.f90
+ fd86ac990dcaafb181f749f0a6411672  gcc/testsuite/gfortran.dg/gomp/unroll-2.f90
+ 48ea77b09a9d3a86dc3684ef7125c9f2  gcc/testsuite/gfortran.dg/gomp/unroll-3.f90
+ ee8ceb3ab804f5658ab044f2ba8cf114  gcc/testsuite/gfortran.dg/gomp/unroll-4.f90
+ c2322370c9354041bc29fc45d9108238  gcc/testsuite/gfortran.dg/gomp/unroll-5.f90
+ 10a7d4a39ebbf5f52137fccc60180bfe  gcc/testsuite/gfortran.dg/gomp/unroll-6.f90
+ fb2a859351378d334d8a57304be1337c  gcc/testsuite/gfortran.dg/gomp/unroll-7.f90
+ 95941897ae2ee259a22bbd177cbc3fd3  gcc/testsuite/gfortran.dg/gomp/unroll-8.f90
+ 0f1903a059fd1f7de379a43f8fd93fee  gcc/testsuite/gfortran.dg/gomp/unroll-9.f90
+ d5291498a88b5d908a71ca27b2eeb51b  gcc/testsuite/gfortran.dg/gomp/unroll-inner-loop-1.f90
+ b75fd2ebadb3db17f96dff0928f4c62c  gcc/testsuite/gfortran.dg/gomp/unroll-inner-loop-2.f90
+ d324ad290338a24f01af149097876cf4  gcc/testsuite/gfortran.dg/gomp/unroll-no-clause-1.f90
+ 8bb628c78c8e6f9ee04cbd2cf2f1ea33  gcc/testsuite/gfortran.dg/gomp/unroll-non-rect-1.f90
+ b3288bda7068678e738c3dc81f8db651  gcc/testsuite/gfortran.dg/gomp/unroll-non-rect-2.f90
+ 4fa1dd52e78c15a0b0e9110f7c115632  gcc/testsuite/gfortran.dg/gomp/unroll-simd-1.f90
+ 0357396fea93123f3c2290aaa221e208  gcc/testsuite/gfortran.dg/gomp/unroll-simd-2.f90
+ d564dd25cbdceb71b070638cfa373e03  gcc/testsuite/gfortran.dg/gomp/unroll-simd-3.f90
+ af7226ae33c94ee86b7e5c3304e8373b  gcc/testsuite/gfortran.dg/gomp/unroll-tile-1.f90
+ 9a4c81b9ff3bf3dcac0546cf2921533f  gcc/testsuite/gfortran.dg/gomp/unroll-tile-2.f90
+ 615b38a99cf6e4c25a6e5161e4c91de1  gcc/testsuite/gfortran.dg/gomp/unroll-tile-inner-1.f90
  191b4f3758e937a3380be8e7173714d3  gcc/testsuite/gfortran.dg/gomp/use_device_ptr-1.f90
  443b8f44ee67bd099885898c659e395f  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f
  1a309fa2b87f44fe4a169545214d10b2  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f90
*************** b668767cebd1d81ba2d2ca1138456cbe  gcc/te
*** 96359,96365 ****
  7f6a0bf732d7a49a9bd1a4598c67549a  gcc/testsuite/gfortran.dg/graphite/block-2.f
  b432d9423fac5506e5220aa6b34be410  gcc/testsuite/gfortran.dg/graphite/block-3.f90
  466df24c793ce10011458d00ea210bc9  gcc/testsuite/gfortran.dg/graphite/block-4.f90
! 629581b6502e1c70aa97150a793f558b  gcc/testsuite/gfortran.dg/graphite/graphite.exp
  178815ec0b286d5b50214ae046b407fe  gcc/testsuite/gfortran.dg/graphite/id-1.f90
  df4c5d17c4fe35475b6ddff605a83c8f  gcc/testsuite/gfortran.dg/graphite/id-10.f90
  6fd035afd995bfd09cebafa89bb45211  gcc/testsuite/gfortran.dg/graphite/id-11.f
--- 103299,103305 ----
  7f6a0bf732d7a49a9bd1a4598c67549a  gcc/testsuite/gfortran.dg/graphite/block-2.f
  b432d9423fac5506e5220aa6b34be410  gcc/testsuite/gfortran.dg/graphite/block-3.f90
  466df24c793ce10011458d00ea210bc9  gcc/testsuite/gfortran.dg/graphite/block-4.f90
! 8de15bd2b2b5fc025e13768250231e3c  gcc/testsuite/gfortran.dg/graphite/graphite.exp
  178815ec0b286d5b50214ae046b407fe  gcc/testsuite/gfortran.dg/graphite/id-1.f90
  df4c5d17c4fe35475b6ddff605a83c8f  gcc/testsuite/gfortran.dg/graphite/id-10.f90
  6fd035afd995bfd09cebafa89bb45211  gcc/testsuite/gfortran.dg/graphite/id-11.f
*************** daa1172ed1d5a6072057b20aaca3b1ec  gcc/te
*** 96462,96468 ****
  702b0cdf61e5478dccaf83e842bc3466  gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90
  7f4798472e54ab24309f0edab16c91d1  gcc/testsuite/gfortran.dg/graphite/vect-pr94043.f90
  f9932e22f4bc6baa989154035dbac7c1  gcc/testsuite/gfortran.dg/guality/arg1.f90
! 128c53f5654abe0b2d02631fd7e53f7e  gcc/testsuite/gfortran.dg/guality/guality.exp
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
  26d42c53448fb26d2b66a4b1d93693d3  gcc/testsuite/gfortran.dg/hollerith.f90
  855af7807ad9d75aef7ff85c2859a0c2  gcc/testsuite/gfortran.dg/hollerith2.f90
--- 103402,103409 ----
  702b0cdf61e5478dccaf83e842bc3466  gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90
  7f4798472e54ab24309f0edab16c91d1  gcc/testsuite/gfortran.dg/graphite/vect-pr94043.f90
  f9932e22f4bc6baa989154035dbac7c1  gcc/testsuite/gfortran.dg/guality/arg1.f90
! 0b8fd6ccf67a7f794af2e9d3338903c4  gcc/testsuite/gfortran.dg/guality/guality.exp
! d4160e104059a3b57d5b80ddb9140570  gcc/testsuite/gfortran.dg/guality/pr119190.f90
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
  26d42c53448fb26d2b66a4b1d93693d3  gcc/testsuite/gfortran.dg/hollerith.f90
  855af7807ad9d75aef7ff85c2859a0c2  gcc/testsuite/gfortran.dg/hollerith2.f90
*************** b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/te
*** 96518,96524 ****
  e3e648c00ebdbf95a3f2217d277ccdb9  gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90
  5b6adfdb788db3a061d01bdf727a5a52  gcc/testsuite/gfortran.dg/ieee/dec_math_1.f90
  d85bd542d89b90d90d1e34aff7cbb3bb  gcc/testsuite/gfortran.dg/ieee/fma_1.f90
! c992b0153e9bf583f13fb082c9ad607c  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  0099e59ef340f8e2088656dfac86c17f  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  3d9e86cdd52561209aae0f0fcaf3590f  gcc/testsuite/gfortran.dg/ieee/ieee_10.f90
  6183b8dca51e7054ad280235aaba2999  gcc/testsuite/gfortran.dg/ieee/ieee_11.F90
--- 103459,103465 ----
  e3e648c00ebdbf95a3f2217d277ccdb9  gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90
  5b6adfdb788db3a061d01bdf727a5a52  gcc/testsuite/gfortran.dg/ieee/dec_math_1.f90
  d85bd542d89b90d90d1e34aff7cbb3bb  gcc/testsuite/gfortran.dg/ieee/fma_1.f90
! d9d330e76f21caf25661476f9c91128b  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  0099e59ef340f8e2088656dfac86c17f  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  3d9e86cdd52561209aae0f0fcaf3590f  gcc/testsuite/gfortran.dg/ieee/ieee_10.f90
  6183b8dca51e7054ad280235aaba2999  gcc/testsuite/gfortran.dg/ieee/ieee_11.F90
*************** c0300fa958c7a5a9d045a2bc5b399370  gcc/te
*** 96537,96547 ****
--- 103478,103494 ----
  2c5ba4bfc5befe663ca1b7256103e585  gcc/testsuite/gfortran.dg/ieee/large_2.f90
  50a6484505ec970335e3f3ccb48b9a52  gcc/testsuite/gfortran.dg/ieee/large_3.F90
  31a7f3f0840cdd4377df7cd6605acc0b  gcc/testsuite/gfortran.dg/ieee/large_4.f90
+ 06a43060175eb47f46b67f17b3d92894  gcc/testsuite/gfortran.dg/ieee/maxloc_nan_1.f90
+ d7be145f222240c94ef7803d3e4ebb95  gcc/testsuite/gfortran.dg/ieee/maxloc_nan_2.f90
+ 4b367468028a296f9b41bf783ce77bb0  gcc/testsuite/gfortran.dg/ieee/minloc_nan_1.f90
+ a15ef8ae427664ce04f55f6c11d54d69  gcc/testsuite/gfortran.dg/ieee/minloc_nan_2.f90
  3a540470645c1528cfe1bc934ff8c0d0  gcc/testsuite/gfortran.dg/ieee/minmax_1.f90
  3901e1456276cd40737d6972105601d8  gcc/testsuite/gfortran.dg/ieee/minmax_2.f90
  29529a83e0f9d2ce59b5181a6b93305d  gcc/testsuite/gfortran.dg/ieee/minmax_3.f90
  4115f93c32552297769f79a72204294e  gcc/testsuite/gfortran.dg/ieee/minmax_4.f90
  2cf841c5874188cd174700ae111c3e7e  gcc/testsuite/gfortran.dg/ieee/modes_1.f90
+ 85f190c830e856a4c650184d3f284d45  gcc/testsuite/gfortran.dg/ieee/out_of_range.f90
+ dc07ff10f30b05b8a666d9210f10eb1f  gcc/testsuite/gfortran.dg/ieee/pr115070.f90
  5b088816bf399445be998bb7b0f307bd  gcc/testsuite/gfortran.dg/ieee/pr77372.f90
  d19c8b732b5cf70aa6edcc4165fe30b3  gcc/testsuite/gfortran.dg/ieee/pr77507.f90
  26f7d10e3401a2366b42da4a4f97bd15  gcc/testsuite/gfortran.dg/ieee/rounding_1.f90
*************** e421cb41762a0144b10de6f4d4b5f69a  gcc/te
*** 96549,96556 ****
  13859b0495add70e6c6b1c9c698d8bdb  gcc/testsuite/gfortran.dg/ieee/rounding_3.f90
  1353276aa715bc0205a75c72a213a1eb  gcc/testsuite/gfortran.dg/ieee/signaling_1.f90
  c25db16b2a941d64c3eb8500eb24b632  gcc/testsuite/gfortran.dg/ieee/signaling_1_c.c
! d965100517c103af6a1fba9f58286e1e  gcc/testsuite/gfortran.dg/ieee/signaling_2.f90
! 3d50dd33d09a54da9ad7bbcf1243008f  gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c
  566797f5458033022b688900d75cc5c1  gcc/testsuite/gfortran.dg/ieee/signaling_3.f90
  2ad2a507975f2c17ae87b80c69042863  gcc/testsuite/gfortran.dg/ieee/signbit_1.f90
  e8ea43c66fd6d11794019ae65955f295  gcc/testsuite/gfortran.dg/ieee/underflow_1.f90
--- 103496,103503 ----
  13859b0495add70e6c6b1c9c698d8bdb  gcc/testsuite/gfortran.dg/ieee/rounding_3.f90
  1353276aa715bc0205a75c72a213a1eb  gcc/testsuite/gfortran.dg/ieee/signaling_1.f90
  c25db16b2a941d64c3eb8500eb24b632  gcc/testsuite/gfortran.dg/ieee/signaling_1_c.c
! 860e9bef07edf8ac414cc52f8186a5fb  gcc/testsuite/gfortran.dg/ieee/signaling_2.f90
! d0d52a856ae1d6f92dc273a9e5669bdf  gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c
  566797f5458033022b688900d75cc5c1  gcc/testsuite/gfortran.dg/ieee/signaling_3.f90
  2ad2a507975f2c17ae87b80c69042863  gcc/testsuite/gfortran.dg/ieee/signbit_1.f90
  e8ea43c66fd6d11794019ae65955f295  gcc/testsuite/gfortran.dg/ieee/underflow_1.f90
*************** d60741802a9de8f2fe965fdbcf4abcb7  gcc/te
*** 96621,96626 ****
--- 103568,103574 ----
  0f8f579a0d8585bbd8ceab87a9dd0997  gcc/testsuite/gfortran.dg/impure_assignment_2.f90
  ce68dbbf0357205fcc13dec587b28d3b  gcc/testsuite/gfortran.dg/impure_assignment_3.f90
  253463ac71b6f45ae5efa908e85ff045  gcc/testsuite/gfortran.dg/impure_constructor_1.f90
+ b9f388e5e25510b400ac560ab4610531  gcc/testsuite/gfortran.dg/impure_fcn_do_concurrent.f90
  996a7545974b764c9fb17b0d293a6104  gcc/testsuite/gfortran.dg/impure_spec_expr_1.f90
  55154e9c56766a6020535f7260695649  gcc/testsuite/gfortran.dg/in_pack_rank7.f90
  e16f75848819dadfeb00c67f61e74c58  gcc/testsuite/gfortran.dg/include_1.f90
*************** aa404e052ee988b1fefe2904b2b8406e  gcc/te
*** 96664,96670 ****
  a5fd5796dd882ac9dd4b4ac0c6f0055a  gcc/testsuite/gfortran.dg/init_flag_14.f90
  b09143fad2eb6d292ad26da0cf93422d  gcc/testsuite/gfortran.dg/init_flag_15.f03
  abe13e92940dbd61d55c4753f2c87af6  gcc/testsuite/gfortran.dg/init_flag_16.f03
! eed16d38d622ad7391dea611543b61b9  gcc/testsuite/gfortran.dg/init_flag_17.f90
  b988918875d857d86496e0e9a3c4b68a  gcc/testsuite/gfortran.dg/init_flag_18.f90
  551b068e646ecd0bea1a38c0c5b3e3c5  gcc/testsuite/gfortran.dg/init_flag_19.f03
  a8cb344220f60d2c728bc48355ffd45d  gcc/testsuite/gfortran.dg/init_flag_2.f90
--- 103612,103618 ----
  a5fd5796dd882ac9dd4b4ac0c6f0055a  gcc/testsuite/gfortran.dg/init_flag_14.f90
  b09143fad2eb6d292ad26da0cf93422d  gcc/testsuite/gfortran.dg/init_flag_15.f03
  abe13e92940dbd61d55c4753f2c87af6  gcc/testsuite/gfortran.dg/init_flag_16.f03
! 035ce474f40d1ffed24089486be69dd2  gcc/testsuite/gfortran.dg/init_flag_17.f90
  b988918875d857d86496e0e9a3c4b68a  gcc/testsuite/gfortran.dg/init_flag_18.f90
  551b068e646ecd0bea1a38c0c5b3e3c5  gcc/testsuite/gfortran.dg/init_flag_19.f03
  a8cb344220f60d2c728bc48355ffd45d  gcc/testsuite/gfortran.dg/init_flag_2.f90
*************** a34e5f9728cdee4c4355a4c6f8be88dd  gcc/te
*** 96693,96699 ****
  5ba9ff818c0b4a5583e6cc868df5e611  gcc/testsuite/gfortran.dg/initialization_22.f90
  216c886fd13191ee5f5395879bcadb42  gcc/testsuite/gfortran.dg/initialization_23.f90
  903171b937fc9d67604647c46d157077  gcc/testsuite/gfortran.dg/initialization_24.f90
! 97281199f55a3e20f06e873dcc601bea  gcc/testsuite/gfortran.dg/initialization_25.f90
  6cfa0f24177aa6c04c5b23460476e31c  gcc/testsuite/gfortran.dg/initialization_26.f90
  101c0d844eba19dc1c8de7fa89f2103d  gcc/testsuite/gfortran.dg/initialization_27.f90
  658fd1c56fc4835e60064d1eec650767  gcc/testsuite/gfortran.dg/initialization_28.f90
--- 103641,103647 ----
  5ba9ff818c0b4a5583e6cc868df5e611  gcc/testsuite/gfortran.dg/initialization_22.f90
  216c886fd13191ee5f5395879bcadb42  gcc/testsuite/gfortran.dg/initialization_23.f90
  903171b937fc9d67604647c46d157077  gcc/testsuite/gfortran.dg/initialization_24.f90
! de48b8db26885f1a1af8796db9967887  gcc/testsuite/gfortran.dg/initialization_25.f90
  6cfa0f24177aa6c04c5b23460476e31c  gcc/testsuite/gfortran.dg/initialization_26.f90
  101c0d844eba19dc1c8de7fa89f2103d  gcc/testsuite/gfortran.dg/initialization_27.f90
  658fd1c56fc4835e60064d1eec650767  gcc/testsuite/gfortran.dg/initialization_28.f90
*************** f33dc60c1fb7c60416c98e3b6fca20cc  gcc/te
*** 96862,96867 ****
--- 103810,103824 ----
  39e1b2ef6dcf0babdb2a75cba78dac6f  gcc/testsuite/gfortran.dg/interface_49.f90
  a954172d62f645dc77c1c91e1be92316  gcc/testsuite/gfortran.dg/interface_5.f90
  36309090fca9f4524f3ffaaa789fa173  gcc/testsuite/gfortran.dg/interface_50.f90
+ b2401d94e70557ddf5cabdd9123f0c6c  gcc/testsuite/gfortran.dg/interface_51.f90
+ 5a28130b8e627897aacfddeac4e251ed  gcc/testsuite/gfortran.dg/interface_52.f90
+ 088aeaf839c91ddf4989bb91ca09f74c  gcc/testsuite/gfortran.dg/interface_53.f90
+ 3a0f0d90998c3b4a33e61d3568947311  gcc/testsuite/gfortran.dg/interface_54.f90
+ 9eac3880d1a1918f952637a44eb68ec9  gcc/testsuite/gfortran.dg/interface_55.f90
+ 4b4ca1a4792b153270403ce5f7a39e18  gcc/testsuite/gfortran.dg/interface_56.f90
+ f054b9fef3440dee368c1f671c20d141  gcc/testsuite/gfortran.dg/interface_57.f90
+ acaf66d3dc5deb01e00f08388b6101b3  gcc/testsuite/gfortran.dg/interface_58.f90
+ 6770c57536e39f9caad1a00388c94004  gcc/testsuite/gfortran.dg/interface_59.f90
  a63ff5460cdc25350f43a09d899581db  gcc/testsuite/gfortran.dg/interface_6.f90
  b4d472d28fc0ac004218dc87eb241306  gcc/testsuite/gfortran.dg/interface_7.f90
  9b6e2c6769e8d31142faefbb1e2b8fa0  gcc/testsuite/gfortran.dg/interface_8.f90
*************** dcf43aa63a8733ded28e4e330d5c91a5  gcc/te
*** 97074,97079 ****
--- 104031,104038 ----
  b775a0b6d45fd825c612e3efaf97f10e  gcc/testsuite/gfortran.dg/iso_fortran_env_5.f90
  22b7589b416ec44c108aa0fc63791146  gcc/testsuite/gfortran.dg/iso_fortran_env_6.f90
  9d12cbb1450af9531102644949a6f708  gcc/testsuite/gfortran.dg/iso_fortran_env_7.f90
+ 62f02e32c2e27f44f574e53651ae749f  gcc/testsuite/gfortran.dg/iso_fortran_env_8.f90
+ cecbfb5279c2d14b7b0f35245227b262  gcc/testsuite/gfortran.dg/iso_fortran_env_9.f90
  f616cfd0aadbda269d067f4d7445d5c4  gcc/testsuite/gfortran.dg/itime_idate_1.f
  b3d3e005230c0680a7f9376b302a348b  gcc/testsuite/gfortran.dg/itime_idate_2.f
  f592eed5ce30fb678bf0e5ab1542fb13  gcc/testsuite/gfortran.dg/keyword_symbol_1.f90
*************** afd58315dfe7d7b19dc94f267a1616e1  gcc/te
*** 97091,97097 ****
  472d4b019951b5b3f0dfd61561d368a2  gcc/testsuite/gfortran.dg/large_real_kind_2.F90
  ba3e6621bef4e4727431ce4f33af5ac5  gcc/testsuite/gfortran.dg/large_real_kind_3.F90
  490695b7e340671bc076ba4bb8c8fac9  gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90
! 95e371d49ebbc2c94e5764f7f602d724  gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
  26ce4d30e6d3856514b4d232c2b1bad0  gcc/testsuite/gfortran.dg/large_recl.f90
  1c63b1ba8a1f0b2a204fbf2d4bb86e5c  gcc/testsuite/gfortran.dg/large_unit_1.f90
  e8f52cb0b7a420ed4af8a32682172df1  gcc/testsuite/gfortran.dg/large_unit_2.f90
--- 104050,104056 ----
  472d4b019951b5b3f0dfd61561d368a2  gcc/testsuite/gfortran.dg/large_real_kind_2.F90
  ba3e6621bef4e4727431ce4f33af5ac5  gcc/testsuite/gfortran.dg/large_real_kind_3.F90
  490695b7e340671bc076ba4bb8c8fac9  gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90
! 1d4b21fde7c785e5fd1c5148f8749acb  gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
  26ce4d30e6d3856514b4d232c2b1bad0  gcc/testsuite/gfortran.dg/large_recl.f90
  1c63b1ba8a1f0b2a204fbf2d4bb86e5c  gcc/testsuite/gfortran.dg/large_unit_1.f90
  e8f52cb0b7a420ed4af8a32682172df1  gcc/testsuite/gfortran.dg/large_unit_2.f90
*************** eee4e4b1f7234702e72fe778c0d2621b  gcc/te
*** 97197,97203 ****
  ed6e00c5dc57055959583aa16ab493b8  gcc/testsuite/gfortran.dg/lto/bind_c-5_1.c
  ccbe22a34dbac49b2d95cd730bb61d7e  gcc/testsuite/gfortran.dg/lto/bind_c-6_0.f90
  6d93908070e9d39392e45f8f55d2d583  gcc/testsuite/gfortran.dg/lto/bind_c-6_1.c
! eb87c7570306ad5826e9579b0cf317a0  gcc/testsuite/gfortran.dg/lto/lto.exp
  2e2f1d0362a3798b5cc0cdb704ae7876  gcc/testsuite/gfortran.dg/lto/pr40724_0.f
  b924c46f8e9c528e66113310bd822e92  gcc/testsuite/gfortran.dg/lto/pr40724_1.f
  b310c10bba59712483944d83a656d6cb  gcc/testsuite/gfortran.dg/lto/pr40725_0.f03
--- 104156,104162 ----
  ed6e00c5dc57055959583aa16ab493b8  gcc/testsuite/gfortran.dg/lto/bind_c-5_1.c
  ccbe22a34dbac49b2d95cd730bb61d7e  gcc/testsuite/gfortran.dg/lto/bind_c-6_0.f90
  6d93908070e9d39392e45f8f55d2d583  gcc/testsuite/gfortran.dg/lto/bind_c-6_1.c
! 88cc23419319996d16e4775580167e3d  gcc/testsuite/gfortran.dg/lto/lto.exp
  2e2f1d0362a3798b5cc0cdb704ae7876  gcc/testsuite/gfortran.dg/lto/pr40724_0.f
  b924c46f8e9c528e66113310bd822e92  gcc/testsuite/gfortran.dg/lto/pr40724_1.f
  b310c10bba59712483944d83a656d6cb  gcc/testsuite/gfortran.dg/lto/pr40725_0.f03
*************** abbd49fd8cefa925609b82c8ff1b52d7  gcc/te
*** 97282,97301 ****
  f210b0198bb4a2421f80ea2020238f8d  gcc/testsuite/gfortran.dg/maxloc_2.f90
  f65bbfca3f40fc7270a3d0d92053a0f8  gcc/testsuite/gfortran.dg/maxloc_3.f90
  5777644284cf974328e5e9d3e07dd341  gcc/testsuite/gfortran.dg/maxloc_4.f90
! 7484edd46e9332f90826571948d1fecc  gcc/testsuite/gfortran.dg/maxloc_bounds_1.f90
! f031e0b024eae2004e37d1f655715a50  gcc/testsuite/gfortran.dg/maxloc_bounds_2.f90
! 2ebe2e8add5d45aed8bf4922dd58029c  gcc/testsuite/gfortran.dg/maxloc_bounds_3.f90
! 4f70fa59f0c935194650d1ee36a9b9d4  gcc/testsuite/gfortran.dg/maxloc_bounds_4.f90
! 1f00e8028c5fe378b6de24e7dddd6789  gcc/testsuite/gfortran.dg/maxloc_bounds_5.f90
! c0efda6bb29b89690fe5d76d526a4ab3  gcc/testsuite/gfortran.dg/maxloc_bounds_6.f90
! de1e98dde053bc067885c05b22d539bb  gcc/testsuite/gfortran.dg/maxloc_bounds_7.f90
! 5abd04b2309d22e2b2ec46487000a50e  gcc/testsuite/gfortran.dg/maxloc_bounds_8.f90
  2c6df0c6a7adcf1338f72e811c48c0a6  gcc/testsuite/gfortran.dg/maxloc_shape_1.f90
  91b41258a546d6cf4262b0062e3e6040  gcc/testsuite/gfortran.dg/maxloc_string_1.f90
  b69d020b3fcf30b8b905d3e28e1a8f8d  gcc/testsuite/gfortran.dg/maxlocval_1.f90
  2e076efd937abd35c0ef2e6ad97176a8  gcc/testsuite/gfortran.dg/maxlocval_2.f90
  991fc912c3306b48ab1a3a953d91e0c1  gcc/testsuite/gfortran.dg/maxlocval_3.f90
  a3d9a520485f74b40dce89fc3f0e629b  gcc/testsuite/gfortran.dg/maxlocval_4.f90
  474f3efa416a3034fab742f027088378  gcc/testsuite/gfortran.dg/maxval_char_1.f90
  d8787ced368ea2bc328514bda2bda4b9  gcc/testsuite/gfortran.dg/maxval_char_2.f90
  849506dc63ffdf66a572ecd44ffae716  gcc/testsuite/gfortran.dg/maxval_char_3.f90
--- 104241,104268 ----
  f210b0198bb4a2421f80ea2020238f8d  gcc/testsuite/gfortran.dg/maxloc_2.f90
  f65bbfca3f40fc7270a3d0d92053a0f8  gcc/testsuite/gfortran.dg/maxloc_3.f90
  5777644284cf974328e5e9d3e07dd341  gcc/testsuite/gfortran.dg/maxloc_4.f90
! 9548ead2eaf54253f7efa5e83451dcf7  gcc/testsuite/gfortran.dg/maxloc_5.f90
! dd7a1d2d470d5c080ce32eda03f9a642  gcc/testsuite/gfortran.dg/maxloc_6.f90
! 770cd2175966665e28eb125c9bc0a7bf  gcc/testsuite/gfortran.dg/maxloc_7.f90
! 97779d84a015825852fb7abad5d617d1  gcc/testsuite/gfortran.dg/maxloc_8.f90
! 481c733a7bf60c2fed985d71b5367fdb  gcc/testsuite/gfortran.dg/maxloc_bounds_1.f90
! de8943adebcebd603190b5548d63360e  gcc/testsuite/gfortran.dg/maxloc_bounds_2.f90
! fba8c11a4fd5360c444e4f26484a279f  gcc/testsuite/gfortran.dg/maxloc_bounds_3.f90
! 693f009dbea3b3474f0682b74426ab2c  gcc/testsuite/gfortran.dg/maxloc_bounds_4.f90
! da84afbe724a1b324c24f09d644cc0e4  gcc/testsuite/gfortran.dg/maxloc_bounds_5.f90
! 73ecb8238fb6308c1f16063c50d3008e  gcc/testsuite/gfortran.dg/maxloc_bounds_6.f90
! 8fc7e372886f1c23e179c9953f667924  gcc/testsuite/gfortran.dg/maxloc_bounds_7.f90
! 2c6f3ad8d98b798820c5e93250daaaaf  gcc/testsuite/gfortran.dg/maxloc_bounds_8.f90
  2c6df0c6a7adcf1338f72e811c48c0a6  gcc/testsuite/gfortran.dg/maxloc_shape_1.f90
  91b41258a546d6cf4262b0062e3e6040  gcc/testsuite/gfortran.dg/maxloc_string_1.f90
+ d3415a633aecc8e76c21ac141e28c2e8  gcc/testsuite/gfortran.dg/maxloc_with_dim_1.f90
+ 874b2945498c4a5e9849c1275fb4290e  gcc/testsuite/gfortran.dg/maxloc_with_dim_and_mask_1.f90
+ c5f51946049b9866de5d9e9e28e95444  gcc/testsuite/gfortran.dg/maxloc_with_mask_1.f90
  b69d020b3fcf30b8b905d3e28e1a8f8d  gcc/testsuite/gfortran.dg/maxlocval_1.f90
  2e076efd937abd35c0ef2e6ad97176a8  gcc/testsuite/gfortran.dg/maxlocval_2.f90
  991fc912c3306b48ab1a3a953d91e0c1  gcc/testsuite/gfortran.dg/maxlocval_3.f90
  a3d9a520485f74b40dce89fc3f0e629b  gcc/testsuite/gfortran.dg/maxlocval_4.f90
+ 0832c0ff1f4b8fe2705a29d08627b110  gcc/testsuite/gfortran.dg/maxval_arg_eval_count.f90
  474f3efa416a3034fab742f027088378  gcc/testsuite/gfortran.dg/maxval_char_1.f90
  d8787ced368ea2bc328514bda2bda4b9  gcc/testsuite/gfortran.dg/maxval_char_2.f90
  849506dc63ffdf66a572ecd44ffae716  gcc/testsuite/gfortran.dg/maxval_char_3.f90
*************** b145a156c563a26a90340bfbdab30850  gcc/te
*** 97328,97334 ****
--- 104295,104308 ----
  cfda9d3486db9936581c66643ac47d80  gcc/testsuite/gfortran.dg/minloc_2.f90
  3646bc1c1f91198054509495fb715a5f  gcc/testsuite/gfortran.dg/minloc_3.f90
  6b91e9920e47f2e232a1997dfa78becc  gcc/testsuite/gfortran.dg/minloc_4.f90
+ 198e5379d0a184faa92c96b9245834f5  gcc/testsuite/gfortran.dg/minloc_5.f90
+ a83ec2bce995979c558ef8019790c56a  gcc/testsuite/gfortran.dg/minloc_7.f90
+ c9056f31d0dad1111bae330e4cf24c91  gcc/testsuite/gfortran.dg/minloc_8.f90
+ 318c619c0ee5699dd95fd29adfa7140c  gcc/testsuite/gfortran.dg/minloc_9.f90
  e4128d2660a59902da65544b9b5aa664  gcc/testsuite/gfortran.dg/minloc_string_1.f90
+ efef104b65eeeddc0c48f2934e472b9d  gcc/testsuite/gfortran.dg/minloc_with_dim_1.f90
+ 89a5da111b3e072fb265b9c21292c2ed  gcc/testsuite/gfortran.dg/minloc_with_dim_and_mask_1.f90
+ d461d69f1e06e85a8a654e2c2c8943ec  gcc/testsuite/gfortran.dg/minloc_with_mask_1.f90
  0b958f2a628bb3984b2aa72803928572  gcc/testsuite/gfortran.dg/minlocval_1.f90
  ba58c467fd61638cacc24c25881386b3  gcc/testsuite/gfortran.dg/minlocval_2.f90
  119360a64c7409d636bfa7e0507e5858  gcc/testsuite/gfortran.dg/minlocval_3.f90
*************** e0fb9480b5079656bce9c871925a9aa5  gcc/te
*** 97346,97352 ****
--- 104320,104335 ----
  945d985103f45290d951ee860966945d  gcc/testsuite/gfortran.dg/minmaxloc_15.f90
  f4533add03b0fa40352daa7dd9a34253  gcc/testsuite/gfortran.dg/minmaxloc_16.f90
  09f72811692b9152f4245734a3ebe59c  gcc/testsuite/gfortran.dg/minmaxloc_17.f90
+ c0d3794a00cb3e66ceb5d2a8094979af  gcc/testsuite/gfortran.dg/minmaxloc_18.f90
+ cd5cfbd5891d9e7708afaeee002eff10  gcc/testsuite/gfortran.dg/minmaxloc_18a.f90
+ f252e902c7abbd8eeac88d905d90410b  gcc/testsuite/gfortran.dg/minmaxloc_18b.f90
+ d8bddcc0b14f25553b849a415959c2d3  gcc/testsuite/gfortran.dg/minmaxloc_18c.f90
+ 33b6f17d4694b45df904f8ea429d4f8c  gcc/testsuite/gfortran.dg/minmaxloc_18d.f90
+ 608110573a75e1500c740fbdcc454da4  gcc/testsuite/gfortran.dg/minmaxloc_19.f90
  04175a5a67cc257e87134132faed701e  gcc/testsuite/gfortran.dg/minmaxloc_2.f90
+ b4f6c36af646203d4b6963819c39460f  gcc/testsuite/gfortran.dg/minmaxloc_20.f90
+ 8fed6bdb4945acb14c130b9c5998f548  gcc/testsuite/gfortran.dg/minmaxloc_21.f90
+ cf5891c2b091652b7e78f061dc784246  gcc/testsuite/gfortran.dg/minmaxloc_22.f90
  d01a31e0da5b62b2ae4bf92d05e0d307  gcc/testsuite/gfortran.dg/minmaxloc_3.f90
  f740ddfd6cbf2afa8d24ebd39f421cf1  gcc/testsuite/gfortran.dg/minmaxloc_4.f90
  172a8ebb57393e92e822ce81c067da0d  gcc/testsuite/gfortran.dg/minmaxloc_5.f90
*************** fa45a68b1f0fccc59f371c18a1f265c0  gcc/te
*** 97432,97437 ****
--- 104415,104421 ----
  0e048a66dda3a47f54544f258962b75e  gcc/testsuite/gfortran.dg/move_alloc_16.f90
  e1e5a4925af334c9600c11958ed2f050  gcc/testsuite/gfortran.dg/move_alloc_17.f90
  82ce482d0ea01e87bea4c152503a35bf  gcc/testsuite/gfortran.dg/move_alloc_18.f90
+ aff925917ca4e85be40a1a016ab2ce9f  gcc/testsuite/gfortran.dg/move_alloc_19.f90
  11c0852d95fb0533b2ebca5a9a4c929f  gcc/testsuite/gfortran.dg/move_alloc_2.f90
  90c4233696a4210dd1411df4ce816345  gcc/testsuite/gfortran.dg/move_alloc_3.f90
  b0771aa8a26d9687e9c6aa4f179d533d  gcc/testsuite/gfortran.dg/move_alloc_4.f90
*************** ccf25bc57c7fd0870f3fa7fea60340a6  gcc/te
*** 97605,97611 ****
  2c6f079dd50cdebef82b1b476222d282  gcc/testsuite/gfortran.dg/newunit_6.f90
  25543ea4ce258c615de028583580ae15  gcc/testsuite/gfortran.dg/nint_1.f90
  16d9cc312dc3603f84627c0edcbc49a2  gcc/testsuite/gfortran.dg/nint_2.f90
! 1b93b4af11635541077c8a2aa2e41871  gcc/testsuite/gfortran.dg/nint_p7.f90
  9aae8ef0f1f255b8f35b6d5e6807059a  gcc/testsuite/gfortran.dg/no-automatic.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
  c60b2c37f26b9fe5b1daba95b7c848d0  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
--- 104589,104595 ----
  2c6f079dd50cdebef82b1b476222d282  gcc/testsuite/gfortran.dg/newunit_6.f90
  25543ea4ce258c615de028583580ae15  gcc/testsuite/gfortran.dg/nint_1.f90
  16d9cc312dc3603f84627c0edcbc49a2  gcc/testsuite/gfortran.dg/nint_2.f90
! 9a0deef5672e13c336a4dd8b7fdbf10d  gcc/testsuite/gfortran.dg/nint_p7.f90
  9aae8ef0f1f255b8f35b6d5e6807059a  gcc/testsuite/gfortran.dg/no-automatic.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
  c60b2c37f26b9fe5b1daba95b7c848d0  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
*************** c7884979306076731054566268cfb979  gcc/te
*** 97653,97658 ****
--- 104637,104644 ----
  84b898ed35bd484e690bcec9cd9f1724  gcc/testsuite/gfortran.dg/null_actual_3.f90
  bbcecb3dd7b522bf990cb1a6a99c4092  gcc/testsuite/gfortran.dg/null_actual_4.f90
  1f2b6a4386b97d00a37b2b95f3b09e91  gcc/testsuite/gfortran.dg/null_actual_5.f90
+ bd197868a2b282e4a2a12f1e1b79d288  gcc/testsuite/gfortran.dg/null_actual_6.f90
+ bc9586e84acab80f3664648befd1b699  gcc/testsuite/gfortran.dg/null_actual_7.f90
  eb6af590881f3e995fc6b2c78089f277  gcc/testsuite/gfortran.dg/nullify_1.f
  f202e3843710f9492560538fa53c3847  gcc/testsuite/gfortran.dg/nullify_2.f90
  768d37ebff7930db8f8a99ac16b90d32  gcc/testsuite/gfortran.dg/nullify_3.f90
*************** adbcc21a5778904b9a3a281e08e68479  gcc/te
*** 97671,97677 ****
  19378b7087a6c99331796584a6ce003e  gcc/testsuite/gfortran.dg/open_access_append_1.f90
  71446ab9655e9bc9f1baaf1053988893  gcc/testsuite/gfortran.dg/open_access_append_2.f90
  1f62936c05133f170772f1025c888739  gcc/testsuite/gfortran.dg/open_errors.f90
! 20b661cdaced95b966324770e54c14c4  gcc/testsuite/gfortran.dg/open_errors_2.f90
  5ffb926a1a0e14cabb29feb9b0e9b2e0  gcc/testsuite/gfortran.dg/open_errors_3.f90
  9fe509e58430d4ddd800ef68157ebdfc  gcc/testsuite/gfortran.dg/open_negative_unit_1.f90
  120a5df13a5d1da5b8e715bc70c4f3d6  gcc/testsuite/gfortran.dg/open_new.f90
--- 104657,104663 ----
  19378b7087a6c99331796584a6ce003e  gcc/testsuite/gfortran.dg/open_access_append_1.f90
  71446ab9655e9bc9f1baaf1053988893  gcc/testsuite/gfortran.dg/open_access_append_2.f90
  1f62936c05133f170772f1025c888739  gcc/testsuite/gfortran.dg/open_errors.f90
! def4fc470a6f08c5b1afd73c95b80359  gcc/testsuite/gfortran.dg/open_errors_2.f90
  5ffb926a1a0e14cabb29feb9b0e9b2e0  gcc/testsuite/gfortran.dg/open_errors_3.f90
  9fe509e58430d4ddd800ef68157ebdfc  gcc/testsuite/gfortran.dg/open_negative_unit_1.f90
  120a5df13a5d1da5b8e715bc70c4f3d6  gcc/testsuite/gfortran.dg/open_new.f90
*************** ff989302c0eaa3dd486cbb3c28260163  gcc/te
*** 97699,97704 ****
--- 104685,104691 ----
  fb3908522426060a28abd32ff0636a27  gcc/testsuite/gfortran.dg/optional_absent_10.f90
  3094e55d9dff3e96da6e02303b7ce1f8  gcc/testsuite/gfortran.dg/optional_absent_11.f90
  ce0bfc566f2f99c26959d0b148c5f5f2  gcc/testsuite/gfortran.dg/optional_absent_12.f90
+ 3051f2a57ae3b2d6b9734b75fe35f835  gcc/testsuite/gfortran.dg/optional_absent_13.f90
  312210dc1ff1e05299f1119ee49985a6  gcc/testsuite/gfortran.dg/optional_absent_2.f90
  4550d5bd4f2bf82443d2fabda1853aa1  gcc/testsuite/gfortran.dg/optional_absent_3.f90
  7c0836bf69a838c108ff2372276a09d4  gcc/testsuite/gfortran.dg/optional_absent_4.f90
*************** f676bdc486e460e9520582c3779a664a  gcc/te
*** 97715,97720 ****
--- 104702,104710 ----
  d14391d3ef215e7090f2482b1fb51242  gcc/testsuite/gfortran.dg/optional_dim_2.f90
  4e39e84a6993508e47f3307461b281b8  gcc/testsuite/gfortran.dg/optional_dim_3.f90
  69260505aedbce8dd9e070f70eaf7c12  gcc/testsuite/gfortran.dg/optional_mask.f90
+ ea5d25aa75884dece5b75129ce9e145a  gcc/testsuite/gfortran.dg/out_of_range_1.f90
+ d86924361c99da665940074b1f79b44a  gcc/testsuite/gfortran.dg/out_of_range_2.f90
+ 654c2b19272403878464c5d0f752f922  gcc/testsuite/gfortran.dg/out_of_range_3.f90
  84bf1c77b23739b713d38c685e5dc0be  gcc/testsuite/gfortran.dg/output_exponents_1.f90
  967b958bce8187f291f4a772e4548afe  gcc/testsuite/gfortran.dg/overload_1.f90
  97e6af3887a4b07dce47c09a1d987e61  gcc/testsuite/gfortran.dg/overload_2.f90
*************** d45068b4308c407424f3a4ce590ad5b1  gcc/te
*** 97767,97773 ****
  00d678a43cdd2d90c2676a3579a03574  gcc/testsuite/gfortran.dg/parent_result_ref_3.f90
  f4babd60b14bbbfcdec1b2c87a0c7b04  gcc/testsuite/gfortran.dg/parent_result_ref_4.f90
  01c998344134fe2e55148c40ade7f197  gcc/testsuite/gfortran.dg/parity_1.f90
! 02ee7d4d03a5c543289e7bc68bf7c89b  gcc/testsuite/gfortran.dg/parity_2.f90
  a9302b907ec874084e4eec106e266432  gcc/testsuite/gfortran.dg/parity_3.f90
  5e6b63c9dcbd7769758d2ef044fb0a70  gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95
  c61e4e9f6a32de1ca3041987ea6be2b8  gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95
--- 104757,104763 ----
  00d678a43cdd2d90c2676a3579a03574  gcc/testsuite/gfortran.dg/parent_result_ref_3.f90
  f4babd60b14bbbfcdec1b2c87a0c7b04  gcc/testsuite/gfortran.dg/parent_result_ref_4.f90
  01c998344134fe2e55148c40ade7f197  gcc/testsuite/gfortran.dg/parity_1.f90
! 296d2d0b79c7d13ae843c266b699f8a7  gcc/testsuite/gfortran.dg/parity_2.f90
  a9302b907ec874084e4eec106e266432  gcc/testsuite/gfortran.dg/parity_3.f90
  5e6b63c9dcbd7769758d2ef044fb0a70  gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95
  c61e4e9f6a32de1ca3041987ea6be2b8  gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95
*************** be693b3847d0256fa77c5e6d96396c97  gcc/te
*** 97790,97796 ****
  d17e376a8cc641dbedaeffcce81d5297  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
! 7182317a2e9d6c03d247c9fb2b50ab74  gcc/testsuite/gfortran.dg/pdt_26.f03
  f67cfd0ae4d38f1ca5dc8d7f6e954087  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
--- 104780,104786 ----
  d17e376a8cc641dbedaeffcce81d5297  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
! 0104b02a8045f96f71bb79804308cd3b  gcc/testsuite/gfortran.dg/pdt_26.f03
  f67cfd0ae4d38f1ca5dc8d7f6e954087  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
*************** f054254e454828510bea70958afa02a8  gcc/te
*** 97862,97867 ****
--- 104852,104858 ----
  5a983b01636e0c559bca6b6ebfaa7516  gcc/testsuite/gfortran.dg/pointer_init_10.f90
  b5cf1b8b651730e2fcb8203aa9e664e7  gcc/testsuite/gfortran.dg/pointer_init_11.f90
  f4aaac7aac9367d9adf2efb9ee95ee74  gcc/testsuite/gfortran.dg/pointer_init_12.f90
+ a7bc79026cac704aff3b4f7adb377612  gcc/testsuite/gfortran.dg/pointer_init_13.f90
  172ad5baa7baf2ab310a7cbce0cfaf13  gcc/testsuite/gfortran.dg/pointer_init_2.f90
  3c38f9677dcc8f4e2c42a0fd0cdeaa1d  gcc/testsuite/gfortran.dg/pointer_init_3.f90
  3247bb0ee74a49cfeb46ba67cba9f540  gcc/testsuite/gfortran.dg/pointer_init_4.f90
*************** a3ab8fbef738997039cfd45f350461a3  gcc/te
*** 97907,97912 ****
--- 104898,104904 ----
  457d6bb30d331f4d3250628bdae53dc3  gcc/testsuite/gfortran.dg/power_8.f90
  e13b5dd50c332ea865cb6fabb5f79f29  gcc/testsuite/gfortran.dg/pr100154.f90
  c9e427811a6c55713cbb096365eec807  gcc/testsuite/gfortran.dg/pr100193.f90
+ e08828a7d864f8531a58aa25e1b58894  gcc/testsuite/gfortran.dg/pr100273.f90
  fc0ae38e4fdc2d7761aba57181c97b51  gcc/testsuite/gfortran.dg/pr100551.f90
  17f130e627232745d6279696b6984514  gcc/testsuite/gfortran.dg/pr100949.f90
  3838974931fe610997470a0a7f2e3a97  gcc/testsuite/gfortran.dg/pr100950.f90
*************** afe21b866be9162c6b654dc6771e6ead  gcc/te
*** 97930,97942 ****
  fc5031b16be6a0dc4152f151793f4acb  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
! 107263fe1c86ee042c855774a2b8e242  gcc/testsuite/gfortran.dg/pr102532.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
  cc6ac3aa934c104c85fad8e43ae6985d  gcc/testsuite/gfortran.dg/pr102817.f90
! c35066e873add73fe333d803e2854739  gcc/testsuite/gfortran.dg/pr102860.f90
  95206e73bd86fd997d85643e08c24a44  gcc/testsuite/gfortran.dg/pr103258.f90
  4b404e5693e05cfd48ecd00e22ac323d  gcc/testsuite/gfortran.dg/pr103259.f90
  48782be659f3ec5c8d9cba03ca6cc43d  gcc/testsuite/gfortran.dg/pr103286.f90
--- 104922,104934 ----
  fc5031b16be6a0dc4152f151793f4acb  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
! 73ad9dd0e1a553e17865bdfdf09510d0  gcc/testsuite/gfortran.dg/pr102532.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
  cc6ac3aa934c104c85fad8e43ae6985d  gcc/testsuite/gfortran.dg/pr102817.f90
! 84b1f0250b302af4fa41f4f4a5f8a679  gcc/testsuite/gfortran.dg/pr102860.f90
  95206e73bd86fd997d85643e08c24a44  gcc/testsuite/gfortran.dg/pr103258.f90
  4b404e5693e05cfd48ecd00e22ac323d  gcc/testsuite/gfortran.dg/pr103259.f90
  48782be659f3ec5c8d9cba03ca6cc43d  gcc/testsuite/gfortran.dg/pr103286.f90
*************** c1548c06295e664f7406329767d563ab  gcc/te
*** 97976,97981 ****
--- 104968,104974 ----
  5c1153d4a81aef8918afa2d0f27d3085  gcc/testsuite/gfortran.dg/pr104571.f90
  5583f00ff0e962663dc178214a50e6ad  gcc/testsuite/gfortran.dg/pr104572.f90
  edeab9ad762f052790bd2bff917c5200  gcc/testsuite/gfortran.dg/pr104625.f90
+ 7c352901e0e3c1a7b1c96afdc276c7c3  gcc/testsuite/gfortran.dg/pr104626.f90
  aadce1b09e2a4d220805726af0c7f109  gcc/testsuite/gfortran.dg/pr104649.f90
  0d8084e6020a7001ebdb9b59d688556e  gcc/testsuite/gfortran.dg/pr104716.f
  7a5b7a18d621b5e1b9d04b73e259ddd4  gcc/testsuite/gfortran.dg/pr104849.f90
*************** aadce1b09e2a4d220805726af0c7f109  gcc/te
*** 97983,97988 ****
--- 104976,104982 ----
  a5bb6d9b844f014490dab5e87b60244c  gcc/testsuite/gfortran.dg/pr105152.f90
  ff052278fd65d5823600af4550f5eae7  gcc/testsuite/gfortran.dg/pr105205.f90
  22283af469347d85bd1fe4dae42939a3  gcc/testsuite/gfortran.dg/pr105230.f90
+ 0d13bd4f2344022f31050b761cea6e41  gcc/testsuite/gfortran.dg/pr105361.f90
  378daada767aa1db75aafa59274616a9  gcc/testsuite/gfortran.dg/pr105456-nmlr.f90
  ef07dca23a545a1281b4dd4a55630bbc  gcc/testsuite/gfortran.dg/pr105456-nmlw.f90
  284861998a6e81948f0b6608bf0dc92a  gcc/testsuite/gfortran.dg/pr105456-ruf.f90
*************** cbd5ae902fd5f6bd7cdb6f65c664ea22  gcc/te
*** 98032,98038 ****
  d10ee488f163142e4a7a74b3c6a8e12f  gcc/testsuite/gfortran.dg/pr108193.f90
  b1a3cfdc35d1fd73d94697f204666296  gcc/testsuite/gfortran.dg/pr108420.f90
  ed294cde0b27b346f37fa7a32bf91ea7  gcc/testsuite/gfortran.dg/pr108421.f90
! 5d2b3031d0f1033380d6de3cd4ed9482  gcc/testsuite/gfortran.dg/pr108434.f90
  28a670973e90363c78fb79b83bf40490  gcc/testsuite/gfortran.dg/pr108501.f90
  1836eed7a2cdfcdba4e590204735e288  gcc/testsuite/gfortran.dg/pr108502.f90
  bb19038b0b7c42c6403475e34570ae3d  gcc/testsuite/gfortran.dg/pr108527.f90
--- 105026,105032 ----
  d10ee488f163142e4a7a74b3c6a8e12f  gcc/testsuite/gfortran.dg/pr108193.f90
  b1a3cfdc35d1fd73d94697f204666296  gcc/testsuite/gfortran.dg/pr108420.f90
  ed294cde0b27b346f37fa7a32bf91ea7  gcc/testsuite/gfortran.dg/pr108421.f90
! f17335d7ca7209dda985d731d9357a41  gcc/testsuite/gfortran.dg/pr108434.f90
  28a670973e90363c78fb79b83bf40490  gcc/testsuite/gfortran.dg/pr108501.f90
  1836eed7a2cdfcdba4e590204735e288  gcc/testsuite/gfortran.dg/pr108502.f90
  bb19038b0b7c42c6403475e34570ae3d  gcc/testsuite/gfortran.dg/pr108527.f90
*************** bb19038b0b7c42c6403475e34570ae3d  gcc/te
*** 98040,98048 ****
--- 105034,105044 ----
  a367beafff806aa88b45192d28091201  gcc/testsuite/gfortran.dg/pr108529.f90
  89000eec5be4848c1ee9f28782affc5d  gcc/testsuite/gfortran.dg/pr108544.f90
  ff15b9a6b62e2f00e552b437eece42bf  gcc/testsuite/gfortran.dg/pr108592.f90
+ b4c38adb4e9d005c1c883b2efff25b07  gcc/testsuite/gfortran.dg/pr108889.f90
  7f1da97161aa1f82490b1a5323dd6fba  gcc/testsuite/gfortran.dg/pr108961.f90
  8f9de055ba3027b7ae59405bcbee699f  gcc/testsuite/gfortran.dg/pr109209.f90
  b7b6edb61862ad55069c70c4744ad157  gcc/testsuite/gfortran.dg/pr109265.f90
+ 78ada5d286128144e86af4a4c1aac9cc  gcc/testsuite/gfortran.dg/pr109345.f90
  05aad7d3d7d82955070028e39fdf28af  gcc/testsuite/gfortran.dg/pr109358.f90
  f309d722fd5c0108897e848739b09dbb  gcc/testsuite/gfortran.dg/pr109662-a.f90
  87aa7841fecf66956c29baf129e68fb9  gcc/testsuite/gfortran.dg/pr109662.f90
*************** d832d83a7f0305ed5af20dce6be24b4b  gcc/te
*** 98070,98081 ****
--- 105066,105094 ----
  439f95a81137197be61b0747f76ecd0f  gcc/testsuite/gfortran.dg/pr114304.f90
  e91d746b0b9de2b6ed5529fb46921a0b  gcc/testsuite/gfortran.dg/pr114535d.f90
  60e9f03f051c282f39e48a14c058f5de  gcc/testsuite/gfortran.dg/pr114535iv.f90
+ c24606560078085a8a9e3258e51d24e3  gcc/testsuite/gfortran.dg/pr114618.f90
  d3d77a4c149cf5358eb97935171795fb  gcc/testsuite/gfortran.dg/pr114739.f90
  f62b2fa65f325ecd9897d1210ea1dd59  gcc/testsuite/gfortran.dg/pr114874_1.f90
  c2c29ab4a03f3fce7c592346c758df55  gcc/testsuite/gfortran.dg/pr114874_2.f90
  4b273604e577c17fd50a80fc5e61fbc9  gcc/testsuite/gfortran.dg/pr114883.f90
  114f9ad97017aeb38f9ec22adfdc15e9  gcc/testsuite/gfortran.dg/pr114959.f90
  2cdd9da41524094c8df35fef567a26c5  gcc/testsuite/gfortran.dg/pr115281.f90
+ 862aedc97da38fe9b3319406b768d9c0  gcc/testsuite/gfortran.dg/pr115348.f90
+ d1ba07988d4687e1f81b063e8b20cefa  gcc/testsuite/gfortran.dg/pr117060.f90
+ 6c3af77c51cf7ae784cf117509d09064  gcc/testsuite/gfortran.dg/pr117730_a.f90
+ c409953e60b511d0f73cda8df16bc1dc  gcc/testsuite/gfortran.dg/pr117730_b.f90
+ 9d60e354f12f632752ec6e7da4915d39  gcc/testsuite/gfortran.dg/pr117763.f90
+ 18cd24673a486c6205d88e1c609e7624  gcc/testsuite/gfortran.dg/pr117768.f90
+ 2e62e84a71388f1638a677b41adbe5d9  gcc/testsuite/gfortran.dg/pr117797.f90
+ 02812eb85d61bb134c890f0a34cc8511  gcc/testsuite/gfortran.dg/pr117819.f90
+ d8b2b1281d8bcf0eb181e2643ffb6265  gcc/testsuite/gfortran.dg/pr117820.f90
+ f12b0640f8ed3bdc0c826763af5ffd1f  gcc/testsuite/gfortran.dg/pr117901.f90
+ dcb4fe6d926f672dd118a4a8ec9b6625  gcc/testsuite/gfortran.dg/pr118640.f90
+ 21d662c2190def3714e2bdeb64b9dce2  gcc/testsuite/gfortran.dg/pr119502.f90
+ bfe9a93946cdb6a9b66dd7249e65330d  gcc/testsuite/gfortran.dg/pr119836_1.f90
+ 1c099fc2477935ea4f6d6e213b94eb2f  gcc/testsuite/gfortran.dg/pr119836_2.f90
+ f4f853788012858a0134517250a7832c  gcc/testsuite/gfortran.dg/pr119836_3.f90
+ a961dfda22a9cdab00655e080457bd32  gcc/testsuite/gfortran.dg/pr119836_4.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
*************** fa042d8fa0ac7641005939a723075502  gcc/te
*** 98150,98156 ****
  0321146421a51d31992fa691ff881090  gcc/testsuite/gfortran.dg/pr32535.f90
  8936ff3253194bd818a99b3a731e4b3d  gcc/testsuite/gfortran.dg/pr32599.f03
  ce64fc302236001bcd3614a913db1ba3  gcc/testsuite/gfortran.dg/pr32601.f03
! 2999ed2f63d26ad1e8660e5b78ac97ac  gcc/testsuite/gfortran.dg/pr32601_1.f03
  a8577e28b08e8ddf0b4c606fadfe46f7  gcc/testsuite/gfortran.dg/pr32627.f03
  2495fa336d57a5a443586fba29c974ac  gcc/testsuite/gfortran.dg/pr32627_driver.c
  c8cf228eee61ed7b34546ac75495e691  gcc/testsuite/gfortran.dg/pr32635.f
--- 105163,105169 ----
  0321146421a51d31992fa691ff881090  gcc/testsuite/gfortran.dg/pr32535.f90
  8936ff3253194bd818a99b3a731e4b3d  gcc/testsuite/gfortran.dg/pr32599.f03
  ce64fc302236001bcd3614a913db1ba3  gcc/testsuite/gfortran.dg/pr32601.f03
! d788a8c1dfc4ae5660c45d9e4a4e023e  gcc/testsuite/gfortran.dg/pr32601_1.f03
  a8577e28b08e8ddf0b4c606fadfe46f7  gcc/testsuite/gfortran.dg/pr32627.f03
  2495fa336d57a5a443586fba29c974ac  gcc/testsuite/gfortran.dg/pr32627_driver.c
  c8cf228eee61ed7b34546ac75495e691  gcc/testsuite/gfortran.dg/pr32635.f
*************** a11d2cdadd8d3e42bccb3afdcfe01f97  gcc/te
*** 98386,98392 ****
  ba9c0a45b4114d6c3d80129312c3731c  gcc/testsuite/gfortran.dg/pr68053.f90
  6d8a1b66ddd71f72cd6f8b2f956d1e1a  gcc/testsuite/gfortran.dg/pr68054.f90
  0aa9836d6fb22c69b7e76e9f495f4762  gcc/testsuite/gfortran.dg/pr68055.f90
! f15d85cfec6e3cdd76e6667f5c30ef44  gcc/testsuite/gfortran.dg/pr68078.f90
  8b70141743602a92904051fd2d8d35fe  gcc/testsuite/gfortran.dg/pr68146.f
  72204a8f7a7d531531023b6f9efc86ff  gcc/testsuite/gfortran.dg/pr68151.f90
  919a27f3a4cfbc08b7e864601ba56e0f  gcc/testsuite/gfortran.dg/pr68153.f90
--- 105399,105405 ----
  ba9c0a45b4114d6c3d80129312c3731c  gcc/testsuite/gfortran.dg/pr68053.f90
  6d8a1b66ddd71f72cd6f8b2f956d1e1a  gcc/testsuite/gfortran.dg/pr68054.f90
  0aa9836d6fb22c69b7e76e9f495f4762  gcc/testsuite/gfortran.dg/pr68055.f90
! a1fd61978d831b5c0b8da30e736eddaf  gcc/testsuite/gfortran.dg/pr68078.f90
  8b70141743602a92904051fd2d8d35fe  gcc/testsuite/gfortran.dg/pr68146.f
  72204a8f7a7d531531023b6f9efc86ff  gcc/testsuite/gfortran.dg/pr68151.f90
  919a27f3a4cfbc08b7e864601ba56e0f  gcc/testsuite/gfortran.dg/pr68153.f90
*************** b310ef8caef5ed95412a60d1546be16a  gcc/te
*** 98459,98464 ****
--- 105472,105478 ----
  47c2b1d1e6313ea63cccc86bf3e3641a  gcc/testsuite/gfortran.dg/pr71859.f90
  dd9b9e2af54cd4e735dad195cc1b9818  gcc/testsuite/gfortran.dg/pr71862.f90
  a5f4703aabb6d4a57c3b221a398aae60  gcc/testsuite/gfortran.dg/pr71883.f90
+ 9310426ad63ad9386300e6536f0c2db8  gcc/testsuite/gfortran.dg/pr71884.f90
  ea6f420ce4d3bbc8e6c948a8f185ace7  gcc/testsuite/gfortran.dg/pr71895.f90
  e621f9143e37cc56334096cf3c636382  gcc/testsuite/gfortran.dg/pr71935.f90
  66a69fa3f665ad36d8275af5ac99b1ae  gcc/testsuite/gfortran.dg/pr77260_1.f90
*************** bbbe0c4517c7a835221af698dc70d2cb  gcc/te
*** 98522,98527 ****
--- 105536,105542 ----
  d1aef01880835db4a541fe2fb5d9b4b4  gcc/testsuite/gfortran.dg/pr81735.f90
  3d04193562d7393f12434c7773605d75  gcc/testsuite/gfortran.dg/pr81849.f90
  58ba9db10feed5572dd1e17134e5d88c  gcc/testsuite/gfortran.dg/pr81889.f90
+ 866aa29a5c9ae2def49956d431f2c5fb  gcc/testsuite/gfortran.dg/pr81978.f90
  e338cfba2f466abedf9af92b52cd6fb3  gcc/testsuite/gfortran.dg/pr82004.f90
  b6ff04901e3aee18765a74bf65804e38  gcc/testsuite/gfortran.dg/pr82253.f90
  344be7c0602202457870166d368441e0  gcc/testsuite/gfortran.dg/pr82314.f90
*************** ee7b5aa850a8be8a1ed15f2fcdca347a  gcc/te
*** 98542,98549 ****
--- 105557,105567 ----
  c41bc69547a048a19ccb1adc57ce3bca  gcc/testsuite/gfortran.dg/pr84155.f90
  12af81a97aa86950b63e458f115e45c9  gcc/testsuite/gfortran.dg/pr84523.f90
  6d593814cbde3b81eb21e9501a48bac2  gcc/testsuite/gfortran.dg/pr84565.f90
+ 4cf62650961664b3e4bce16d177b5929  gcc/testsuite/gfortran.dg/pr84674.f90
  7cb3611bc701529711c1f596921afaa3  gcc/testsuite/gfortran.dg/pr84734.f90
  a4758a568b5ef9b888cb911bc4cdd259  gcc/testsuite/gfortran.dg/pr84784.f90
+ 41e0ad3a735d1f75c8f837590c9d8293  gcc/testsuite/gfortran.dg/pr84868.f90
+ bb61cbbb8a58939e43f49e77c93df95f  gcc/testsuite/gfortran.dg/pr84869.f90
  cc82665e1d54c6a2d5a100788c474853  gcc/testsuite/gfortran.dg/pr84957.f90
  42d21294436ebefdc995a697f0266fd9  gcc/testsuite/gfortran.dg/pr85082.f90
  4355c9f07079d67c1134f6106f8fcb0b  gcc/testsuite/gfortran.dg/pr85138_1.f90
*************** c842772198f401b528cb6ac0f65c4b5b  gcc/te
*** 98596,98601 ****
--- 105614,105620 ----
  3a118bb4cf0e05ac1d34bf3d8b7a9364  gcc/testsuite/gfortran.dg/pr87994_3.f90
  c7ad205e6ae355ab8ed11e2933c01c0c  gcc/testsuite/gfortran.dg/pr88025.f90
  ea36174db4fefe6bbe58d8c899d770f6  gcc/testsuite/gfortran.dg/pr88048.f90
+ 40aa32de6d5ca4181a895b995a6f2ee2  gcc/testsuite/gfortran.dg/pr88052.f90
  299cd4b3cd8f981657d37f9d6063d080  gcc/testsuite/gfortran.dg/pr88072.f90
  f2f69037301e6e901e6d032542873c68  gcc/testsuite/gfortran.dg/pr88116_1.f90
  99c41c8c4fc876568fd7e4f16f44a112  gcc/testsuite/gfortran.dg/pr88116_2.f90
*************** f2f69037301e6e901e6d032542873c68  gcc/te
*** 98604,98610 ****
  a554e5d57f7bc7a8d1b99acfd01fdaa9  gcc/testsuite/gfortran.dg/pr88155.f90
  86722bed377c20abe3aeeff940fd433d  gcc/testsuite/gfortran.dg/pr88169_1.f90
  539c0b69ccf536a06ed2d47fa7cb4290  gcc/testsuite/gfortran.dg/pr88169_2.f90
! 9d4321ee93a0450d7c863fa8a1ef7a78  gcc/testsuite/gfortran.dg/pr88169_3.f90
  fa088730830ee1f3d27e7f6ba4d5d53f  gcc/testsuite/gfortran.dg/pr88205.f90
  9d3ee3388f9a6f3475d3ca6ecb957595  gcc/testsuite/gfortran.dg/pr88206.f90
  d146cb10030ff5567e3df552e1bd60a4  gcc/testsuite/gfortran.dg/pr88228.f90
--- 105623,105629 ----
  a554e5d57f7bc7a8d1b99acfd01fdaa9  gcc/testsuite/gfortran.dg/pr88155.f90
  86722bed377c20abe3aeeff940fd433d  gcc/testsuite/gfortran.dg/pr88169_1.f90
  539c0b69ccf536a06ed2d47fa7cb4290  gcc/testsuite/gfortran.dg/pr88169_2.f90
! c391a607da22a80a57fa51fa6929eb95  gcc/testsuite/gfortran.dg/pr88169_3.f90
  fa088730830ee1f3d27e7f6ba4d5d53f  gcc/testsuite/gfortran.dg/pr88205.f90
  9d3ee3388f9a6f3475d3ca6ecb957595  gcc/testsuite/gfortran.dg/pr88206.f90
  d146cb10030ff5567e3df552e1bd60a4  gcc/testsuite/gfortran.dg/pr88228.f90
*************** e1edad4c8bece96ce2107cf71bfae76a  gcc/te
*** 98621,98626 ****
--- 105640,105646 ----
  c2b5f3bb0c21a060bae40c6396336f9f  gcc/testsuite/gfortran.dg/pr88467.f90
  26a19c3ec9ae63a26cebee061e04edc5  gcc/testsuite/gfortran.dg/pr88552.f90
  d82653f0cc50f73a8d8759b21c4c24bd  gcc/testsuite/gfortran.dg/pr88611.f90
+ 4870e33856fb6f2cf724b9f66eb6b2c4  gcc/testsuite/gfortran.dg/pr88624.f90
  576ceafd17c569f01b70d5a7213ffb43  gcc/testsuite/gfortran.dg/pr88688.f90
  cb3f3375da33c0d1dc2e041d90b817e7  gcc/testsuite/gfortran.dg/pr88833.f90
  ed9d93ecae79fa041852ef045ccc680f  gcc/testsuite/gfortran.dg/pr88902.f90
*************** a6b1d851f4c5b6cfffa8f56c8f9cd150  gcc/te
*** 98769,98775 ****
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
  f55274affe4c9ad9830b5b95890a0e58  gcc/testsuite/gfortran.dg/pr95373_2.f90
  d2dc4b8b4c8c2279101a65b75688be21  gcc/testsuite/gfortran.dg/pr95398.f90
! 258eb533f98697cad8eebc8294e95ee4  gcc/testsuite/gfortran.dg/pr95446.f90
  bf06d26cfd17de7f7a1ca3d27181a469  gcc/testsuite/gfortran.dg/pr95500.f90
  6ef53d080792d6388cbc30dcbd258ee4  gcc/testsuite/gfortran.dg/pr95502.f90
  957c4b1c6c2a82ac61e92b1200c1f5cc  gcc/testsuite/gfortran.dg/pr95503.f90
--- 105789,105795 ----
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
  f55274affe4c9ad9830b5b95890a0e58  gcc/testsuite/gfortran.dg/pr95373_2.f90
  d2dc4b8b4c8c2279101a65b75688be21  gcc/testsuite/gfortran.dg/pr95398.f90
! 59b88757e53d126dd531945a627baf78  gcc/testsuite/gfortran.dg/pr95446.f90
  bf06d26cfd17de7f7a1ca3d27181a469  gcc/testsuite/gfortran.dg/pr95500.f90
  6ef53d080792d6388cbc30dcbd258ee4  gcc/testsuite/gfortran.dg/pr95502.f90
  957c4b1c6c2a82ac61e92b1200c1f5cc  gcc/testsuite/gfortran.dg/pr95503.f90
*************** f8cd3a1512c58ae5037e5d3d726bfdef  gcc/te
*** 98788,98794 ****
  a5234963084d71f3cbff36fdddbc2a39  gcc/testsuite/gfortran.dg/pr95687.f90
  0b6e1357ba61754bfa53b9ec715e9aa3  gcc/testsuite/gfortran.dg/pr95688.f90
  83b0c584414e4a319a76de802810da35  gcc/testsuite/gfortran.dg/pr95689.f90
! 0863b18c10f89c9e31427fdb980c2fd1  gcc/testsuite/gfortran.dg/pr95690.f90
  9e1f84d8082ed7be8e9a14e8ff4713bb  gcc/testsuite/gfortran.dg/pr95707.f90
  7dc7dd72d896c5e7c5e3df3a92c93424  gcc/testsuite/gfortran.dg/pr95708.f90
  17933bb3f99b8b553eb0e7141b2dcdb7  gcc/testsuite/gfortran.dg/pr95709.f90
--- 105808,105814 ----
  a5234963084d71f3cbff36fdddbc2a39  gcc/testsuite/gfortran.dg/pr95687.f90
  0b6e1357ba61754bfa53b9ec715e9aa3  gcc/testsuite/gfortran.dg/pr95688.f90
  83b0c584414e4a319a76de802810da35  gcc/testsuite/gfortran.dg/pr95689.f90
! b8bfd1cf7e719488d1db3ded54f068b2  gcc/testsuite/gfortran.dg/pr95690.f90
  9e1f84d8082ed7be8e9a14e8ff4713bb  gcc/testsuite/gfortran.dg/pr95707.f90
  7dc7dd72d896c5e7c5e3df3a92c93424  gcc/testsuite/gfortran.dg/pr95708.f90
  17933bb3f99b8b553eb0e7141b2dcdb7  gcc/testsuite/gfortran.dg/pr95709.f90
*************** ac524c67dbf5c0b6588328a02f46a124  gcc/te
*** 98813,98818 ****
--- 105833,105839 ----
  4cd7e1edd1f016be3c9016b1817d703e  gcc/testsuite/gfortran.dg/pr96038.f90
  e6acc3eb976952fc47981d6ab4ed7205  gcc/testsuite/gfortran.dg/pr96085.f90
  45d800261f64da91bf2398a00691d7c4  gcc/testsuite/gfortran.dg/pr96086.f90
+ 0e95668039fa9312c394dbe702dc78a0  gcc/testsuite/gfortran.dg/pr96087.f90
  07cb4ed26cdce5312951d4e23c0ede15  gcc/testsuite/gfortran.dg/pr96099_1.f90
  6ed2b45ec17b4aeb641142e2799cfd89  gcc/testsuite/gfortran.dg/pr96099_2.f90
  43b9b0a65aabf3911bc6a2d49e46f640  gcc/testsuite/gfortran.dg/pr96102.f90
*************** a50ed014f3fd628f8e8e8e09f44f8c0f  gcc/te
*** 98979,98984 ****
--- 106000,106008 ----
  2bdbfb5616cc946bcc711233f9deb135  gcc/testsuite/gfortran.dg/proc_ptr_51.f90
  a2ab49b1f709afa3cf1c9284d4576fa9  gcc/testsuite/gfortran.dg/proc_ptr_52.f90
  3850d6d46514853aa3728e5e82d5c382  gcc/testsuite/gfortran.dg/proc_ptr_53.f90
+ e681a86ff9a3513c2bbddf9df9d0406a  gcc/testsuite/gfortran.dg/proc_ptr_54.f90
+ c7c55294d495c7c08eb01173edd334e9  gcc/testsuite/gfortran.dg/proc_ptr_55.f90
+ 351007ba09759b373d72d068077cfb06  gcc/testsuite/gfortran.dg/proc_ptr_56.f90
  aa07bccd48fbde93e47db111bac1ce8c  gcc/testsuite/gfortran.dg/proc_ptr_6.f90
  3648c097522ae5858550c7d7776afd28  gcc/testsuite/gfortran.dg/proc_ptr_7.c
  fe310c69dfb181cb04f271dad6a3f1d5  gcc/testsuite/gfortran.dg/proc_ptr_7.f90
*************** c75d4858dc637cf3362d7fd34a2b2c12  gcc/te
*** 99036,99041 ****
--- 106060,106066 ----
  0dd95ef147a026dc2d07a5c91995c129  gcc/testsuite/gfortran.dg/proc_ptr_comp_51.f90
  15621b2f611d0a300724f72e8f740877  gcc/testsuite/gfortran.dg/proc_ptr_comp_52.f90
  f0c1367506dcd47dc7a8083c794d8222  gcc/testsuite/gfortran.dg/proc_ptr_comp_53.f90
+ 41f387f0ba426c0e13efa40e2bd1cbf2  gcc/testsuite/gfortran.dg/proc_ptr_comp_54.f90
  0a5c35e1c686199c602eb079c1609d62  gcc/testsuite/gfortran.dg/proc_ptr_comp_6.f90
  f41c3a8af3a63f5aef54c294fa8cd9c5  gcc/testsuite/gfortran.dg/proc_ptr_comp_7.f90
  d3e8e56011aae6c4a66fe7865f87061c  gcc/testsuite/gfortran.dg/proc_ptr_comp_8.f90
*************** c273afb240dd8ee8117b49f657c81476  gcc/te
*** 99059,99071 ****
  56206d45c5f13e14b3a1fb529ebdfba0  gcc/testsuite/gfortran.dg/product_init_expr.f03
  8cfd22f83c53cada6279a70564dbbee0  gcc/testsuite/gfortran.dg/product_sum_bounds_1.f90
  1df3bb37479b20de5e1cd736cdffade5  gcc/testsuite/gfortran.dg/prof/dynamic_dispatch_6.f03
! a90573ddd93b3301b87ae7a7f7959aad  gcc/testsuite/gfortran.dg/prof/prof.exp
  ddf26540873573967a534a14385f92dd  gcc/testsuite/gfortran.dg/program_name_1.f90
  451cb2bde6f52f6e44db85652688fbea  gcc/testsuite/gfortran.dg/promotion.f90
  08bbf4464a0ed5e6cd9955f827a92afa  gcc/testsuite/gfortran.dg/promotion_2.f90
  f1f0f9bac4e13e165109b371cc936631  gcc/testsuite/gfortran.dg/promotion_3.f90
  19a91afd368620bca0ab4c614401b1d1  gcc/testsuite/gfortran.dg/promotion_4.f90
  3b81044ad74fc72995c147471de2236b  gcc/testsuite/gfortran.dg/protected_1.f90
  d1fb25c2d89c26a98edcfffc14882c3e  gcc/testsuite/gfortran.dg/protected_2.f90
  5443d9f93bfa03886cffd45a14ed799b  gcc/testsuite/gfortran.dg/protected_3.f90
  6e1ad1506c7642adcb2ad7099d8dc42e  gcc/testsuite/gfortran.dg/protected_4.f90
--- 106084,106097 ----
  56206d45c5f13e14b3a1fb529ebdfba0  gcc/testsuite/gfortran.dg/product_init_expr.f03
  8cfd22f83c53cada6279a70564dbbee0  gcc/testsuite/gfortran.dg/product_sum_bounds_1.f90
  1df3bb37479b20de5e1cd736cdffade5  gcc/testsuite/gfortran.dg/prof/dynamic_dispatch_6.f03
! 853fe9b7d00e107e9d3ba9571fdcfb44  gcc/testsuite/gfortran.dg/prof/prof.exp
  ddf26540873573967a534a14385f92dd  gcc/testsuite/gfortran.dg/program_name_1.f90
  451cb2bde6f52f6e44db85652688fbea  gcc/testsuite/gfortran.dg/promotion.f90
  08bbf4464a0ed5e6cd9955f827a92afa  gcc/testsuite/gfortran.dg/promotion_2.f90
  f1f0f9bac4e13e165109b371cc936631  gcc/testsuite/gfortran.dg/promotion_3.f90
  19a91afd368620bca0ab4c614401b1d1  gcc/testsuite/gfortran.dg/promotion_4.f90
  3b81044ad74fc72995c147471de2236b  gcc/testsuite/gfortran.dg/protected_1.f90
+ 14cd5d36fbbec62e39b74df4b07830ed  gcc/testsuite/gfortran.dg/protected_10.f90
  d1fb25c2d89c26a98edcfffc14882c3e  gcc/testsuite/gfortran.dg/protected_2.f90
  5443d9f93bfa03886cffd45a14ed799b  gcc/testsuite/gfortran.dg/protected_3.f90
  6e1ad1506c7642adcb2ad7099d8dc42e  gcc/testsuite/gfortran.dg/protected_4.f90
*************** c3fb068a6513a1b586c18e7f98aee0e3  gcc/te
*** 99084,99089 ****
--- 106110,106116 ----
  deda23d08864e8fd5de581142c84d0c3  gcc/testsuite/gfortran.dg/ptr_func_assign_3.f08
  f19a3e696f77f97e6aa2d83addab4ac4  gcc/testsuite/gfortran.dg/ptr_func_assign_4.f08
  8610f62acf79505ce9c955532780ae20  gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08
+ 34c911109f23bf944fad22240fbb32c4  gcc/testsuite/gfortran.dg/ptr_func_assign_6.f08
  1bdd54ec3c3cda30429d4442e8a439e5  gcc/testsuite/gfortran.dg/public_private_module.f90
  f8e80e36d7b5c3c5e55ab57d88d798e6  gcc/testsuite/gfortran.dg/public_private_module_10.f90
  53bfb4bd5468c34fc1b1a819ebc75855  gcc/testsuite/gfortran.dg/public_private_module_2.f90
*************** e3c69b81e7d385db78383732df227743  gcc/te
*** 99103,99108 ****
--- 106130,106136 ----
  e9e87e079e88e1bdbe28a6f7713a7a67  gcc/testsuite/gfortran.dg/pure_formal_proc_1.f90
  006224426a5d47d586dc67e3c0a1d85a  gcc/testsuite/gfortran.dg/pure_formal_proc_2.f90
  8e2be4aa51fece7f0e0f3d47a32eefd7  gcc/testsuite/gfortran.dg/pure_formal_proc_3.f90
+ 771ce14609de0ca10f0e5898e79fdad7  gcc/testsuite/gfortran.dg/pure_formal_proc_4.f90
  705e27cebf71096beecc3e95d1e9d6f5  gcc/testsuite/gfortran.dg/pure_initializer_1.f90
  e004777cc16d5ca611aa373cfeb2476d  gcc/testsuite/gfortran.dg/pure_initializer_2.f90
  78598283a1854329ecefb2cb4f92fead  gcc/testsuite/gfortran.dg/pure_initializer_3.f90
*************** d942e17eca945999ebca50cbd433a694  gcc/te
*** 99242,99247 ****
--- 106270,106277 ----
  fbca6044e55b414cf52e618cabefc35a  gcc/testsuite/gfortran.dg/recursive_alloc_comp_2.f08
  bfc750d856b50d00fe727fd7720a08fd  gcc/testsuite/gfortran.dg/recursive_alloc_comp_3.f08
  17d07cb7d93b7e05c9ca400e3ae7927b  gcc/testsuite/gfortran.dg/recursive_alloc_comp_4.f08
+ b96bd45094a11958bf6b30976604c517  gcc/testsuite/gfortran.dg/recursive_alloc_comp_5.f90
+ e880e4686c2918de17445daa6ea62c67  gcc/testsuite/gfortran.dg/recursive_alloc_comp_6.f90
  3f76ccfe2c1760d8b85f37e3680f2018  gcc/testsuite/gfortran.dg/recursive_check_1.f
  04c3e51d2500bea77088dee1fefae8b1  gcc/testsuite/gfortran.dg/recursive_check_10.f90
  2d67e08127af810151885831dc542430  gcc/testsuite/gfortran.dg/recursive_check_11.f90
*************** ffe79edcf9b34dadb8fd169df22b8ca9  gcc/te
*** 99252,99260 ****
  290d6844c91b9b1fb46c3b509acf6a8a  gcc/testsuite/gfortran.dg/recursive_check_16.f90
  881c92b66cd57adb841f4c449922f1c6  gcc/testsuite/gfortran.dg/recursive_check_2.f90
  9756d61dc4460a36cf3565371f5ccea8  gcc/testsuite/gfortran.dg/recursive_check_3.f90
! f4d567993a23834af1926af8a5c3a3d9  gcc/testsuite/gfortran.dg/recursive_check_4.f03
  1393b06df013b11adbb3adf891e355c4  gcc/testsuite/gfortran.dg/recursive_check_5.f03
! 4410dcab14f41883384c6c871cbc9ede  gcc/testsuite/gfortran.dg/recursive_check_6.f03
  6bf2445d7e78508038a3049e7cf6eb0e  gcc/testsuite/gfortran.dg/recursive_check_7.f90
  3be5431b492a0bef7b21cfbda65f2d9f  gcc/testsuite/gfortran.dg/recursive_check_8.f90
  be933f6d011da4a12bd74f3f07878603  gcc/testsuite/gfortran.dg/recursive_check_9.f90
--- 106282,106290 ----
  290d6844c91b9b1fb46c3b509acf6a8a  gcc/testsuite/gfortran.dg/recursive_check_16.f90
  881c92b66cd57adb841f4c449922f1c6  gcc/testsuite/gfortran.dg/recursive_check_2.f90
  9756d61dc4460a36cf3565371f5ccea8  gcc/testsuite/gfortran.dg/recursive_check_3.f90
! f20192fa6f4acfe8105708bbba966d70  gcc/testsuite/gfortran.dg/recursive_check_4.f03
  1393b06df013b11adbb3adf891e355c4  gcc/testsuite/gfortran.dg/recursive_check_5.f03
! 3c5fc89885032358af690af8994c8cbf  gcc/testsuite/gfortran.dg/recursive_check_6.f03
  6bf2445d7e78508038a3049e7cf6eb0e  gcc/testsuite/gfortran.dg/recursive_check_7.f90
  3be5431b492a0bef7b21cfbda65f2d9f  gcc/testsuite/gfortran.dg/recursive_check_8.f90
  be933f6d011da4a12bd74f3f07878603  gcc/testsuite/gfortran.dg/recursive_check_9.f90
*************** a7003da5c2f301959c7f21193538e7eb  gcc/te
*** 99268,99273 ****
--- 106298,106307 ----
  367c718b77a74a1255ad2e38adeacfb7  gcc/testsuite/gfortran.dg/recursive_statement_functions.f90
  04deba654b2206894b96a6288761847b  gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment.f90
  c943c42a4b8bdcc298f24b4b88cd0e9c  gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment_2.f90
+ 4e8661cd04589957c3f7e645fa26b2c2  gcc/testsuite/gfortran.dg/reduce_1.f90
+ 2b02e924c3071b39faead21a8e1071cd  gcc/testsuite/gfortran.dg/reduce_2.f90
+ e061bf767ee48fad18f6f0befa694d25  gcc/testsuite/gfortran.dg/reduce_3.f90
+ 80b570a9b89a233e0b877203c000cbec  gcc/testsuite/gfortran.dg/reduce_4.f90
  0aefff5947933799bf59c99f45d05d35  gcc/testsuite/gfortran.dg/reduction.f90
  659a9cd87fe918f94f8c8cd41199a9fc  gcc/testsuite/gfortran.dg/repack_arrays_1.f90
  a9dc4010fc583f8af80941c642ac4682  gcc/testsuite/gfortran.dg/repeat_1.f90
*************** d4874fed6108821dfa28ab998af7855a  gcc/te
*** 99431,99436 ****
--- 106465,106474 ----
  214d58043f273f06acaa3b8ed9e7d3d4  gcc/testsuite/gfortran.dg/selected_char_kind_3.f90
  ecada7f4c8aef8feb09804c559f55b47  gcc/testsuite/gfortran.dg/selected_char_kind_4.f90
  3586d8f2f456c87dfd622a49c2ebf80e  gcc/testsuite/gfortran.dg/selected_kind_1.f90
+ 213f2465f31cf0c0e0b9004967795906  gcc/testsuite/gfortran.dg/selected_logical_kind_1.f90
+ 508eb57c83d847cf3a2dfd4075601a23  gcc/testsuite/gfortran.dg/selected_logical_kind_2.f90
+ cd5e2bddd04c13ef533552757feb0c1e  gcc/testsuite/gfortran.dg/selected_logical_kind_3.f90
+ 45f107e8c171887f6620d7c07af6c134  gcc/testsuite/gfortran.dg/selected_logical_kind_4.f90
  e8a78f7bb05b9a61dc889d88a7195f56  gcc/testsuite/gfortran.dg/selected_real_kind_1.f90
  e2e6ce9bd83e073dc8e29ce806611160  gcc/testsuite/gfortran.dg/selected_real_kind_2.f90
  c6f31959a6f27a049ee01954f0a811f0  gcc/testsuite/gfortran.dg/selected_real_kind_3.f90
*************** a85036393b2e190e3e232bfbc36020f8  gcc/te
*** 99518,99524 ****
  4561b9231cf8d91cc26cafd4dfa4eb9d  gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90
  f5153e8883f791f3cc0646a71b5c6e9b  gcc/testsuite/gfortran.dg/specification_type_resolution_2.f90
  d8e60069f2b97e982ac574a084348519  gcc/testsuite/gfortran.dg/specifics_1.f90
! cedac13505e8a5175fa43ac2c3c4834d  gcc/testsuite/gfortran.dg/specifics_2.f90
  6bf379a197471bb5af838582a9573e82  gcc/testsuite/gfortran.dg/spellcheck-operator.f90
  11cef0c39a62e58007e6d2429bb39e5c  gcc/testsuite/gfortran.dg/spellcheck-parameter.f90
  d3b8cb87c0d4560033de0eefb87ccd93  gcc/testsuite/gfortran.dg/spellcheck-procedure_1.f90
--- 106556,106562 ----
  4561b9231cf8d91cc26cafd4dfa4eb9d  gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90
  f5153e8883f791f3cc0646a71b5c6e9b  gcc/testsuite/gfortran.dg/specification_type_resolution_2.f90
  d8e60069f2b97e982ac574a084348519  gcc/testsuite/gfortran.dg/specifics_1.f90
! 2024ff0d1637bc13848a8c3d0a0849f6  gcc/testsuite/gfortran.dg/specifics_2.f90
  6bf379a197471bb5af838582a9573e82  gcc/testsuite/gfortran.dg/spellcheck-operator.f90
  11cef0c39a62e58007e6d2429bb39e5c  gcc/testsuite/gfortran.dg/spellcheck-parameter.f90
  d3b8cb87c0d4560033de0eefb87ccd93  gcc/testsuite/gfortran.dg/spellcheck-procedure_1.f90
*************** ab6b23d963a5b8985972c2fa89516a18  gcc/te
*** 99581,99587 ****
  0deb7cd84f31ead5bf3513062317bc77  gcc/testsuite/gfortran.dg/streamio_6.f90
  0d553f41bea8c600d41310a3f97c6e82  gcc/testsuite/gfortran.dg/streamio_7.f90
  4a479a72469ca787fc2fe4205c647fe8  gcc/testsuite/gfortran.dg/streamio_8.f90
! 9d5d209ef0f3b22a6a431412eb8b978b  gcc/testsuite/gfortran.dg/streamio_9.f90
  fcfabf8674a4790f50314787758e7246  gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f90
  d4f8f93ec4d27ab680cbc8ad90ba78fa  gcc/testsuite/gfortran.dg/string_1.f90
  bb4a6248051c3fed6533c234a648221c  gcc/testsuite/gfortran.dg/string_1_lp64.f90
--- 106619,106625 ----
  0deb7cd84f31ead5bf3513062317bc77  gcc/testsuite/gfortran.dg/streamio_6.f90
  0d553f41bea8c600d41310a3f97c6e82  gcc/testsuite/gfortran.dg/streamio_7.f90
  4a479a72469ca787fc2fe4205c647fe8  gcc/testsuite/gfortran.dg/streamio_8.f90
! c618bd128caa6340c83b67120a18b549  gcc/testsuite/gfortran.dg/streamio_9.f90
  fcfabf8674a4790f50314787758e7246  gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f90
  d4f8f93ec4d27ab680cbc8ad90ba78fa  gcc/testsuite/gfortran.dg/string_1.f90
  bb4a6248051c3fed6533c234a648221c  gcc/testsuite/gfortran.dg/string_1_lp64.f90
*************** b01225b997ddba7ee9db87062bc5a857  gcc/te
*** 99860,99866 ****
  fc77ad7640de51a39a00c4d3cfbe99dd  gcc/testsuite/gfortran.dg/typebound_operator_7.f03
  4ed82c5b73a67b1e78a603febe15b707  gcc/testsuite/gfortran.dg/typebound_operator_8.f03
  2c88f49f59b9815fd64677677a46e9e0  gcc/testsuite/gfortran.dg/typebound_operator_9.f03
! 9077555eeccde21e49ae58741abd43ac  gcc/testsuite/gfortran.dg/typebound_override_1.f90
  effa091894b3e888f170c035d58686bb  gcc/testsuite/gfortran.dg/typebound_override_2.f90
  9b3918cd86079c8c28a09632950a1ff5  gcc/testsuite/gfortran.dg/typebound_override_3.f90
  41c002c26bfdf9f31e679df8300ac468  gcc/testsuite/gfortran.dg/typebound_override_4.f90
--- 106898,106904 ----
  fc77ad7640de51a39a00c4d3cfbe99dd  gcc/testsuite/gfortran.dg/typebound_operator_7.f03
  4ed82c5b73a67b1e78a603febe15b707  gcc/testsuite/gfortran.dg/typebound_operator_8.f03
  2c88f49f59b9815fd64677677a46e9e0  gcc/testsuite/gfortran.dg/typebound_operator_9.f03
! 295f87e7292d90651075910ce130a3a9  gcc/testsuite/gfortran.dg/typebound_override_1.f90
  effa091894b3e888f170c035d58686bb  gcc/testsuite/gfortran.dg/typebound_override_2.f90
  9b3918cd86079c8c28a09632950a1ff5  gcc/testsuite/gfortran.dg/typebound_override_3.f90
  41c002c26bfdf9f31e679df8300ac468  gcc/testsuite/gfortran.dg/typebound_override_4.f90
*************** a9c38f145300eee1aaca2ccee4d418fd  gcc/te
*** 99909,99917 ****
  5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.f90
  ddea8e97d88b939147b22730616832d2  gcc/testsuite/gfortran.dg/ubsan/pr101624.f90
  e291127c769443ec31b3cab6dcce2f99  gcc/testsuite/gfortran.dg/ubsan/pr106062.f90
! 070b3af5e149a94f5cca839bf8a618da  gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
  1623cb39a42976237e7817a8a94f1a4a  gcc/testsuite/gfortran.dg/unary_operator.f90
  0e692a977ecc4ab86f2eddee444794b4  gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90
  a3fe3d5aed286d45e58533ee6cd37dd9  gcc/testsuite/gfortran.dg/unconstrained_commons.f
  16b7f45a2d175a9540ec055c77edad2a  gcc/testsuite/gfortran.dg/underflow.f90
  a7494f7b00a8d4f7d5c77fd348f591b4  gcc/testsuite/gfortran.dg/unexp_attribute.f90
--- 106947,106956 ----
  5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.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
  1623cb39a42976237e7817a8a94f1a4a  gcc/testsuite/gfortran.dg/unary_operator.f90
  0e692a977ecc4ab86f2eddee444794b4  gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90
+ 8d8b1e5695194260d65475eee35e3cee  gcc/testsuite/gfortran.dg/uncommon_block_data_2.f90
  a3fe3d5aed286d45e58533ee6cd37dd9  gcc/testsuite/gfortran.dg/unconstrained_commons.f
  16b7f45a2d175a9540ec055c77edad2a  gcc/testsuite/gfortran.dg/underflow.f90
  a7494f7b00a8d4f7d5c77fd348f591b4  gcc/testsuite/gfortran.dg/unexp_attribute.f90
*************** e0fd36da28b8de5efbdff70f3f200cfb  gcc/te
*** 99931,99939 ****
  d4d8bd848a80a271d5cec0d30aefe4a4  gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
  b772f2057ff09d2637070d66e6ab4c96  gcc/testsuite/gfortran.dg/unit_1.f90
  007ddcd692dd0d667d69422852df3244  gcc/testsuite/gfortran.dg/unlimited_fmt_1.f08
! 6d3a9c53698d5a8a41761b5161a4421a  gcc/testsuite/gfortran.dg/unlimited_polymorphic_1.f03
  e336504744585626d433619998a53bf4  gcc/testsuite/gfortran.dg/unlimited_polymorphic_10.f90
! cd287a2b16479e41f754113092c08925  gcc/testsuite/gfortran.dg/unlimited_polymorphic_11.f90
  5c157a9399b1fafe51470e1cc5abd2a2  gcc/testsuite/gfortran.dg/unlimited_polymorphic_12.f90
  f77fd5a3a7564cdecb23fd1efc6dd9a9  gcc/testsuite/gfortran.dg/unlimited_polymorphic_13.f90
  0614e464a966dc4fb17b286f74da917b  gcc/testsuite/gfortran.dg/unlimited_polymorphic_14.f90
--- 106970,106978 ----
  d4d8bd848a80a271d5cec0d30aefe4a4  gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
  b772f2057ff09d2637070d66e6ab4c96  gcc/testsuite/gfortran.dg/unit_1.f90
  007ddcd692dd0d667d69422852df3244  gcc/testsuite/gfortran.dg/unlimited_fmt_1.f08
! f2e67f73793dbe88d038c42607a0c906  gcc/testsuite/gfortran.dg/unlimited_polymorphic_1.f03
  e336504744585626d433619998a53bf4  gcc/testsuite/gfortran.dg/unlimited_polymorphic_10.f90
! d67c703cd25ec5615cb9c8f26f6e66de  gcc/testsuite/gfortran.dg/unlimited_polymorphic_11.f90
  5c157a9399b1fafe51470e1cc5abd2a2  gcc/testsuite/gfortran.dg/unlimited_polymorphic_12.f90
  f77fd5a3a7564cdecb23fd1efc6dd9a9  gcc/testsuite/gfortran.dg/unlimited_polymorphic_13.f90
  0614e464a966dc4fb17b286f74da917b  gcc/testsuite/gfortran.dg/unlimited_polymorphic_14.f90
*************** a16cffa781475700beb86772ba80edef  gcc/te
*** 99977,99982 ****
--- 107016,107067 ----
  fbd9ec98233c6fecb3330e95ece01679  gcc/testsuite/gfortran.dg/unreferenced_use_assoc_1.f90
  7b43b740c1827893f88c955a8b8544ac  gcc/testsuite/gfortran.dg/unresolved_fixup_1.f90
  e129d02ece9c3131335abb4373cf1721  gcc/testsuite/gfortran.dg/unresolved_fixup_2.f90
+ f5421cb069e3378378c71b760053b1fa  gcc/testsuite/gfortran.dg/unsigned_1.f90
+ 2c12678a023aa4451d9adc02342e19bc  gcc/testsuite/gfortran.dg/unsigned_10.f90
+ e49ef960d13e4270249d5c9d1ea0fcc7  gcc/testsuite/gfortran.dg/unsigned_11.f90
+ 74210014724bd8805167298e19aed108  gcc/testsuite/gfortran.dg/unsigned_12.f90
+ 042d97b23e36386f400d4de8f2a08cd6  gcc/testsuite/gfortran.dg/unsigned_13.f90
+ e8dac730b367d33945b5f2e7b6d182ba  gcc/testsuite/gfortran.dg/unsigned_14.f90
+ 8eb3d0d558d3a766b36fdad13e764e2f  gcc/testsuite/gfortran.dg/unsigned_15.f90
+ 2ce0acf48cca022e5e96a9aeddd59565  gcc/testsuite/gfortran.dg/unsigned_16.f90
+ ab5eb70377f723dec488eae236f433b1  gcc/testsuite/gfortran.dg/unsigned_17.f90
+ 4bff2cf085a3bc59285d295e09615cdd  gcc/testsuite/gfortran.dg/unsigned_18.f90
+ c3bb48ff52a21eae0e4e3ef4c3f3b94a  gcc/testsuite/gfortran.dg/unsigned_19.f90
+ 33245e2290b4615ee658ed47e48b2b31  gcc/testsuite/gfortran.dg/unsigned_2.f90
+ c7c78989437269caaa4132121be7148e  gcc/testsuite/gfortran.dg/unsigned_20.f90
+ 90e4c1c9e62b13375adf3efc7ac5cee8  gcc/testsuite/gfortran.dg/unsigned_21.f90
+ ce4ffae34fb74c0602978fdfb35ec01d  gcc/testsuite/gfortran.dg/unsigned_21_be.f90
+ b85f5d8a6649fbdddb6ed207039d97b8  gcc/testsuite/gfortran.dg/unsigned_22.f90
+ d808b21edb6afa2eb088ea0c810d88c6  gcc/testsuite/gfortran.dg/unsigned_23.f90
+ 43643be6d16d35677df984551ecea573  gcc/testsuite/gfortran.dg/unsigned_24.f
+ 3d8636843a9304fa17a29b96b7de9258  gcc/testsuite/gfortran.dg/unsigned_25.f90
+ 749bba218734ff6272416238ced4aaea  gcc/testsuite/gfortran.dg/unsigned_26.f90
+ 2b7051294f05b3339ca04b3448b186d3  gcc/testsuite/gfortran.dg/unsigned_29.f90
+ 507e0a8060d30860b9d2db5cc07ba6ba  gcc/testsuite/gfortran.dg/unsigned_3.f90
+ 5ddb45f5c55ea9746dcb2a8179d290fc  gcc/testsuite/gfortran.dg/unsigned_30.f90
+ f49cdf1cef706418a476e6091aac4dcd  gcc/testsuite/gfortran.dg/unsigned_31.f90
+ af3a190350a4f7bb72a50faa762f8f2b  gcc/testsuite/gfortran.dg/unsigned_32.f90
+ f7df4e85cda100f3d3bdc3ce46b3a08e  gcc/testsuite/gfortran.dg/unsigned_33.f90
+ d02cd98aefa0f3334667cb2ffabcdf16  gcc/testsuite/gfortran.dg/unsigned_34.f90
+ 9cd4084b0b105431e289cc20f6ff9af9  gcc/testsuite/gfortran.dg/unsigned_35.f90
+ f8f2081427c0e9c64b2ac4ffddec9b95  gcc/testsuite/gfortran.dg/unsigned_36.f90
+ 1670f41ddbc3eff1ac0faef6942b710a  gcc/testsuite/gfortran.dg/unsigned_37.f90
+ f3f0b562cbfdeccf994a02e0a4149b45  gcc/testsuite/gfortran.dg/unsigned_38.f90
+ dfb85f39e03c8b9bc326a6e0302d92e4  gcc/testsuite/gfortran.dg/unsigned_39.f90
+ c7ce23a3920f61710d79c928c9639e65  gcc/testsuite/gfortran.dg/unsigned_4.f90
+ 1c5e14cd64040c8b2c2cd5edfb5a4450  gcc/testsuite/gfortran.dg/unsigned_40.f90
+ 759dc9a45e151d61a535ba8c70961b0a  gcc/testsuite/gfortran.dg/unsigned_41.f90
+ e1e88e4fcc8c626671e0dcda228c64eb  gcc/testsuite/gfortran.dg/unsigned_42.f90
+ c6a21c05779396553fc4d46543781525  gcc/testsuite/gfortran.dg/unsigned_43.f90
+ eec354728abdde1ef8ec43487ef494c6  gcc/testsuite/gfortran.dg/unsigned_44.f90
+ 98652721c84601f305daa7eac328bc42  gcc/testsuite/gfortran.dg/unsigned_5.f90
+ 7bad54ac96d222338309523d5f0c0e51  gcc/testsuite/gfortran.dg/unsigned_6.f90
+ b5a2dd09f50f3df0ecd844a4ed3cd03c  gcc/testsuite/gfortran.dg/unsigned_7.f90
+ a29bff34d42687185853b2593149a089  gcc/testsuite/gfortran.dg/unsigned_8.f90
+ bad45dd88b63d1ef062aa575fbe31791  gcc/testsuite/gfortran.dg/unsigned_9.f90
+ 54e08cb654420ace2a88ed5a32639834  gcc/testsuite/gfortran.dg/unsigned_kiss.f90
+ 8fe02857baf9c2c341a9747d6e6e448e  gcc/testsuite/gfortran.dg/unsigned_write.f90
+ 2e038e4daa1f6f10e29598c3bde57fe4  gcc/testsuite/gfortran.dg/unsigned_write_2.f90
  de05d2a4b7edcd1154264118b11a9a77  gcc/testsuite/gfortran.dg/unused_artificial_dummies_1.f90
  af23489c25cf37ffd216eb038f4a82d8  gcc/testsuite/gfortran.dg/use_1.f90
  f6789d5bbf020938f286cfd7da2a68e2  gcc/testsuite/gfortran.dg/use_10.f90
*************** e67a4a11f35c66e08fb4bb3279634a7a  gcc/te
*** 100021,100026 ****
--- 107106,107114 ----
  6fac87544cba607bd825cef815200556  gcc/testsuite/gfortran.dg/use_rename_1.f90
  308a35fc4732b520bfd71e20221425a5  gcc/testsuite/gfortran.dg/use_rename_10.f90
  52e1f158e101567519db0f087abec0ea  gcc/testsuite/gfortran.dg/use_rename_11.f90
+ 5631685a2a9878911018787fbff56d83  gcc/testsuite/gfortran.dg/use_rename_12.f90
+ 70a2a320617593688637c5dd834680a9  gcc/testsuite/gfortran.dg/use_rename_13.f90
+ b1cbee7ec980b9aff5ff44232cb24d18  gcc/testsuite/gfortran.dg/use_rename_14.f90
  7047ce88a57d708d3d2c2ac3c3ca337e  gcc/testsuite/gfortran.dg/use_rename_2.f90
  56d36b08080e432e1860759131695014  gcc/testsuite/gfortran.dg/use_rename_3.f90
  4c6c9f47b5091f92496b13e280371057  gcc/testsuite/gfortran.dg/use_rename_4.f90
*************** cec1ec6b2f905bb78b1700c94091bc21  gcc/te
*** 100076,100081 ****
--- 107164,107170 ----
  39cb197667c91bd9ed379d30af098425  gcc/testsuite/gfortran.dg/userdef_operator_2.f90
  4f9c3d189be3981f6cb9ddd0a07a8829  gcc/testsuite/gfortran.dg/utf8_1.f03
  8454549da966b8a759972284f6ec3aec  gcc/testsuite/gfortran.dg/utf8_2.f03
+ b8deb964e1494b3f3e7d2122ae130518  gcc/testsuite/gfortran.dg/utf8_3.f03
  17a95a4c64acfd3e2b0ddfd821176912  gcc/testsuite/gfortran.dg/value_1.f90
  c0b7e645eca87d1072072c6b6e4a9126  gcc/testsuite/gfortran.dg/value_2.f90
  f55ce021238826090cc2feb968b15b3d  gcc/testsuite/gfortran.dg/value_3.f90
*************** e0681ebf1cc0d7c0c6333d4894f4bb3d  gcc/te
*** 100087,100092 ****
--- 107176,107182 ----
  570bf3e723d57b65078a2b23e25f93e5  gcc/testsuite/gfortran.dg/value_8.f90
  b46ba5ff0e0f3d11a40f4fd27e154383  gcc/testsuite/gfortran.dg/value_9.f90
  5497ec582b3049523e60926b1e6a663e  gcc/testsuite/gfortran.dg/value_optional_1.f90
+ 95aa76585d357378b76eea3a6d529192  gcc/testsuite/gfortran.dg/value_optional_2.f90
  0d717003a2688af8d432e36362750a72  gcc/testsuite/gfortran.dg/value_test.f90
  726b4cde834cb3dc1ab0ada4c8388762  gcc/testsuite/gfortran.dg/value_tests_f03.f90
  17cda9ae919cf95b0f148e50a888a6fb  gcc/testsuite/gfortran.dg/variable_parameter.f90
*************** ca55d89300492a406b4293654a75c058  gcc/te
*** 100116,100121 ****
--- 107206,107214 ----
  777b852dc009b4634413ed078253b5e8  gcc/testsuite/gfortran.dg/vect/pr108979.f90
  ed99007df506ce091870da0cdbff417d  gcc/testsuite/gfortran.dg/vect/pr110451.f
  7e36b2b10502091bcb389f5834b42c96  gcc/testsuite/gfortran.dg/vect/pr114736.f90
+ b6cbc2d7f0f983561ecfb1e889cc9564  gcc/testsuite/gfortran.dg/vect/pr115528.f
+ 82e3d5f4f3c4f37d7f7c646d31ed6168  gcc/testsuite/gfortran.dg/vect/pr115710.f90
+ 3392d3d67c1af3233bcb1cb1563137c7  gcc/testsuite/gfortran.dg/vect/pr116956.f90
  a17cb1ab891a5af3471298da97331dda  gcc/testsuite/gfortran.dg/vect/pr19049.f90
  fdb4a5f5d5eff2fd75822f14875bd776  gcc/testsuite/gfortran.dg/vect/pr32377.f90
  bbb6998ea100c6c2039976c6446a0c10  gcc/testsuite/gfortran.dg/vect/pr32380.f
*************** a2d04ed105569f8d74d2d9e79dff01be  gcc/te
*** 100136,100141 ****
--- 107229,107235 ----
  0bc81b88699fb163be2b934a787aab50  gcc/testsuite/gfortran.dg/vect/pr61171.f
  f5cef46789d501f4e899fb0e273be1c5  gcc/testsuite/gfortran.dg/vect/pr62283-2.f
  193bdf53d1fc554853e00fcc30d9841c  gcc/testsuite/gfortran.dg/vect/pr62283.f
+ 6a8e257a21e3973eb68db878f260bc9e  gcc/testsuite/gfortran.dg/vect/pr68855.f90
  e3ed6ec2719e9380031e3e22af66563e  gcc/testsuite/gfortran.dg/vect/pr69466.f90
  e908da4224e8c1e801b93e3fde2381b1  gcc/testsuite/gfortran.dg/vect/pr69882.f90
  8be888cc0b6731a3a012553b4bf9398b  gcc/testsuite/gfortran.dg/vect/pr69980.f90
*************** a496162c39b8bab03c56279d46969f96  gcc/te
*** 100163,100179 ****
  e968451822432df6fb4987063a84f380  gcc/testsuite/gfortran.dg/vect/vect-2.f90
  efd1f1f270b2c6b9006463ae5b59cdde  gcc/testsuite/gfortran.dg/vect/vect-3.f90
  f352be717d51cf3ddda8f5bdc93437f4  gcc/testsuite/gfortran.dg/vect/vect-4.f90
! 77e860291c0cd09650e64c6e95dbd7c9  gcc/testsuite/gfortran.dg/vect/vect-5.f90
  85e276d35cb7a8b2c21db0e98b73186b  gcc/testsuite/gfortran.dg/vect/vect-6.f
  c92f16f306f4e92e783e01428ccd23b3  gcc/testsuite/gfortran.dg/vect/vect-7.f90
  46b49fba2ec5f26969cddc20dc871cb3  gcc/testsuite/gfortran.dg/vect/vect-8-epilogue.F90
! 8e4a02252115a0f06d20480f546d8fe1  gcc/testsuite/gfortran.dg/vect/vect-8.f90
  9e3ba50dd73757cc5b6e9d6265e4ff1a  gcc/testsuite/gfortran.dg/vect/vect-9.f90
  e3172873ebcacc53ed7031ec75e9c916  gcc/testsuite/gfortran.dg/vect/vect-alias-check-1.F90
  943be5f26b034cab4a8d80ed72f35e29  gcc/testsuite/gfortran.dg/vect/vect-do-concurrent-1.f90
  f153623f2b5e969448f7c1a751dd783d  gcc/testsuite/gfortran.dg/vect/vect-early-break_1-pr113808.f90
  51d61a0ffbe2e176d92badb55eaf6889  gcc/testsuite/gfortran.dg/vect/vect-gems.f90
! 3c3819470222c6ceaf097c5083095c91  gcc/testsuite/gfortran.dg/vect/vect.exp
  5020f9773f3c21b86ac1fe3e513943a0  gcc/testsuite/gfortran.dg/vector_subscript_1.f90
  0833fb55cdacc085a113140aa1d94458  gcc/testsuite/gfortran.dg/vector_subscript_2.f90
  08ce83b9015973faf30ecdfdba12cbd9  gcc/testsuite/gfortran.dg/vector_subscript_3.f90
--- 107257,107273 ----
  e968451822432df6fb4987063a84f380  gcc/testsuite/gfortran.dg/vect/vect-2.f90
  efd1f1f270b2c6b9006463ae5b59cdde  gcc/testsuite/gfortran.dg/vect/vect-3.f90
  f352be717d51cf3ddda8f5bdc93437f4  gcc/testsuite/gfortran.dg/vect/vect-4.f90
! 36c598806f71e681c5ee4b8890bde340  gcc/testsuite/gfortran.dg/vect/vect-5.f90
  85e276d35cb7a8b2c21db0e98b73186b  gcc/testsuite/gfortran.dg/vect/vect-6.f
  c92f16f306f4e92e783e01428ccd23b3  gcc/testsuite/gfortran.dg/vect/vect-7.f90
  46b49fba2ec5f26969cddc20dc871cb3  gcc/testsuite/gfortran.dg/vect/vect-8-epilogue.F90
! 9ddcc312e9f6708dd426177bd9a189d9  gcc/testsuite/gfortran.dg/vect/vect-8.f90
  9e3ba50dd73757cc5b6e9d6265e4ff1a  gcc/testsuite/gfortran.dg/vect/vect-9.f90
  e3172873ebcacc53ed7031ec75e9c916  gcc/testsuite/gfortran.dg/vect/vect-alias-check-1.F90
  943be5f26b034cab4a8d80ed72f35e29  gcc/testsuite/gfortran.dg/vect/vect-do-concurrent-1.f90
  f153623f2b5e969448f7c1a751dd783d  gcc/testsuite/gfortran.dg/vect/vect-early-break_1-pr113808.f90
  51d61a0ffbe2e176d92badb55eaf6889  gcc/testsuite/gfortran.dg/vect/vect-gems.f90
! 4f3678355b22f056682fe39ff2c98ba3  gcc/testsuite/gfortran.dg/vect/vect.exp
  5020f9773f3c21b86ac1fe3e513943a0  gcc/testsuite/gfortran.dg/vector_subscript_1.f90
  0833fb55cdacc085a113140aa1d94458  gcc/testsuite/gfortran.dg/vector_subscript_2.f90
  08ce83b9015973faf30ecdfdba12cbd9  gcc/testsuite/gfortran.dg/vector_subscript_3.f90
*************** b60b1e83048adf872f1f5827680dc3ed  gcc/te
*** 100374,100380 ****
  82775aea043bb1c46d8cb089803279f4  gcc/testsuite/gfortran.fortran-torture/compile/ambig.f90
  1c29630fad991e385f1ac4b63afd3e59  gcc/testsuite/gfortran.fortran-torture/compile/arrayio.f90
  bb59bc612e4ff3905614ceeae7d89150  gcc/testsuite/gfortran.fortran-torture/compile/bergervoet2.f90
! eb398dd43d1d4be25e2e9f07d1c223e4  gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
  fc5b8a207174c37582b953f18f8271a5  gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90
  d34063f5c0cc449ee1e78199c2bc37d9  gcc/testsuite/gfortran.fortran-torture/compile/contained_1.f90
  beef214f45f74ba36c7a5a4a3952c926  gcc/testsuite/gfortran.fortran-torture/compile/contained_2.f90
--- 107468,107474 ----
  82775aea043bb1c46d8cb089803279f4  gcc/testsuite/gfortran.fortran-torture/compile/ambig.f90
  1c29630fad991e385f1ac4b63afd3e59  gcc/testsuite/gfortran.fortran-torture/compile/arrayio.f90
  bb59bc612e4ff3905614ceeae7d89150  gcc/testsuite/gfortran.fortran-torture/compile/bergervoet2.f90
! aa573a9670068954905e52c32a2d9568  gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
  fc5b8a207174c37582b953f18f8271a5  gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90
  d34063f5c0cc449ee1e78199c2bc37d9  gcc/testsuite/gfortran.fortran-torture/compile/contained_1.f90
  beef214f45f74ba36c7a5a4a3952c926  gcc/testsuite/gfortran.fortran-torture/compile/contained_2.f90
*************** b34b25b967cd77639e123317e2df451f  gcc/te
*** 100522,100528 ****
  746215f07864dfaf08683e1db2ac8960  gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
  39b975ad31741b72a1b9d129fa059ceb  gcc/testsuite/gfortran.fortran-torture/execute/equiv_5.f
  4cbdd3408a64145bd29410441a85f54c  gcc/testsuite/gfortran.fortran-torture/execute/equiv_init_1.f90
! 0949f7baf390a0a7274ad136ff16da80  gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
  afd19f923c3c5e466e7fe619afc1d851  gcc/testsuite/gfortran.fortran-torture/execute/f2_edit_1.f90
  f144f87ad152dd4ece29d0f8c7a9ca87  gcc/testsuite/gfortran.fortran-torture/execute/forall.f90
  b48fbbc2cab88879e5ac6c732a077df4  gcc/testsuite/gfortran.fortran-torture/execute/forall_1.f90
--- 107616,107622 ----
  746215f07864dfaf08683e1db2ac8960  gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
  39b975ad31741b72a1b9d129fa059ceb  gcc/testsuite/gfortran.fortran-torture/execute/equiv_5.f
  4cbdd3408a64145bd29410441a85f54c  gcc/testsuite/gfortran.fortran-torture/execute/equiv_init_1.f90
! a71be46baca7ae9519d3b9f16901b9f7  gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
  afd19f923c3c5e466e7fe619afc1d851  gcc/testsuite/gfortran.fortran-torture/execute/f2_edit_1.f90
  f144f87ad152dd4ece29d0f8c7a9ca87  gcc/testsuite/gfortran.fortran-torture/execute/forall.f90
  b48fbbc2cab88879e5ac6c732a077df4  gcc/testsuite/gfortran.fortran-torture/execute/forall_1.f90
*************** b7777c6604106297693e31038efb5ae1  gcc/te
*** 100695,100708 ****
  adc7e9976dd3bb424c92c2d7d3df32ed  gcc/testsuite/gfortran.fortran-torture/execute/where_8.f90
  bc764eca2f460bc6fb657fb675420237  gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
  eabee42e1a561616023ffd1f4d1a64e2  gcc/testsuite/gfortran.fortran-torture/execute/write_logical.f90
! 0fc4e2275fc934ff9e9f8de34217e9df  gcc/testsuite/gm2/builtins/run/pass/builtins-run-pass.exp
  08c47fe61e5445678ec71e90bfb4232a  gcc/testsuite/gm2/builtins/run/pass/testcomparisons.mod
! 27c8297a5772b0ce485698eab4fa01a9  gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
  7588b35298f3665ddfd4976cedb36af8  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.c
! bd073aacbedd20a8a4a6727bb70d217e  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.def
! 36665df3df647ddc599be3ee5f6b9bd4  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/calling-c-datatypes-unbounded-run-pass.exp
  fe67327073cd1abc9f69e5583cf64c78  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/m.mod
! c85275261911c9ca12636a70aef9ecde  gcc/testsuite/gm2/case/pass/case-pass.exp
  3d76cb794bc32b3b0b044e00783636c8  gcc/testsuite/gm2/case/pass/testcase1.mod
  1e58a66ba0015168962bdadd0de37017  gcc/testsuite/gm2/case/pass/testcase2.mod
  8bed30c973a862c60e8104463928e9ae  gcc/testsuite/gm2/case/pass/testcase3.mod
--- 107789,107867 ----
  adc7e9976dd3bb424c92c2d7d3df32ed  gcc/testsuite/gfortran.fortran-torture/execute/where_8.f90
  bc764eca2f460bc6fb657fb675420237  gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
  eabee42e1a561616023ffd1f4d1a64e2  gcc/testsuite/gfortran.fortran-torture/execute/write_logical.f90
! e37afcf68e701a2324e777ab5f6054bf  gcc/testsuite/gfortran.target/aarch64/aarch64.exp
! c37460d9fc2ef94382053354df0c3ef3  gcc/testsuite/gfortran.target/aarch64/pr116234.f
! ae00a4e2372b755ec611b96aaff6a49b  gcc/testsuite/gfortran.target/riscv/rvv/pr111395.f90
! 284fdebd0dafabcd770080ec38c8109a  gcc/testsuite/gfortran.target/riscv/rvv/pr111566.f90
! 803fa495544cb97b2d47fa3c10b273ce  gcc/testsuite/gfortran.target/riscv/rvv/pr118182.f
! 528f92739a607b5264a1149baf10d175  gcc/testsuite/gfortran.target/riscv/rvv/pr118646.f90
! c252080582d617dec0884a6b180105d3  gcc/testsuite/gfortran.target/riscv/rvv/rvv.exp
! b820011f31166d0f35e8338398e62395  gcc/testsuite/gm2.dg/doc/examples/pass/doc-examples-pass.exp
! db8afdf5ed6aa3065c2d97091ed4668d  gcc/testsuite/gm2.dg/doc/examples/pass/exampleadd.mod
! 3e6f21c529d5360c6ad84c8369304bf2  gcc/testsuite/gm2.dg/doc/examples/pass/exampleadd2.mod
! 64fa9cdc399ccbe7eb26e506eb485ca5  gcc/testsuite/gm2.dg/doc/examples/pass/hello.mod
! 3d1a820fbabf2b09a0663d760af54b26  gcc/testsuite/gm2.dg/doc/examples/pass/hellopim.mod
! 8336252a5212ce63a317267e8e2bad76  gcc/testsuite/gm2.dg/pim/fail/badopaque.mod
! e6f3c702e8ca5bfbe627dcb752971fdb  gcc/testsuite/gm2.dg/pim/fail/badopaque2.mod
! ec56bce7bdde9ba4515172d6349ed250  gcc/testsuite/gm2.dg/pim/fail/dg-pim-fail.exp
! 4e88623298e1e2e2a0a5e56077e5f006  gcc/testsuite/gm2.dg/pim/fail/opaquedefs.def
! 27a1f5c9aed629a98954f37c54a84552  gcc/testsuite/gm2.dg/pim/fail/opaquedefs.mod
! 2ab249adedfb373731377824dc455f10  gcc/testsuite/gm2/base-lang/pass/SYSTEM.def
! 40adc2871213fa7c8622e89378bb8cc5  gcc/testsuite/gm2/base-lang/pass/base-lang-test.sh
! 8a285f72f3f20ee3a9c23a9b36bb2e10  gcc/testsuite/gm2/base-lang/pass/globalproctype.def
! 28e15259c80526577e05af389a2c6a5d  gcc/testsuite/gm2/base-lang/pass/globalproctype.mod
! a82c09f5fec729ef1464c3a64fa9d48b  gcc/testsuite/gm2/base-lang/pass/globalvar.def
! dfb9b21dedbb43c90562be4e8fa7f8f5  gcc/testsuite/gm2/base-lang/pass/globalvar.mod
! fd3ffa83546883c0ee01e1d1576c9647  gcc/testsuite/gm2/base-lang/pass/globalvarassign.def
! 9bc27cb1676bb2e1478565c821169995  gcc/testsuite/gm2/base-lang/pass/globalvarassign.mod
! f35a4be7b558a2d3fd0098f981d5c401  gcc/testsuite/gm2/base-lang/pass/localproctype.def
! a902a2420a6a3a3cd40a8b67a7d86cc0  gcc/testsuite/gm2/base-lang/pass/localproctype.mod
! b619bdb496125ead9ec6699922d54069  gcc/testsuite/gm2/base-lang/pass/localvar.def
! e3fa7db2c4eebe585f13d2d664ef294a  gcc/testsuite/gm2/base-lang/pass/localvar.mod
! 7b28b5260b9925783680e4027a523df4  gcc/testsuite/gm2/base-lang/pass/localvarassign.def
! c91f8bf17ee0ece0cdfb5b12af993057  gcc/testsuite/gm2/base-lang/pass/localvarassign.mod
! 5bdd22b9504ca9702c525c82f33f0116  gcc/testsuite/gm2/base-lang/pass/opaquefield.def
! 613bd16b58027a9d5c7f83790ebf87dc  gcc/testsuite/gm2/base-lang/pass/opaquefield.mod
! 7b3d5e4131442bd49d341fc5ad0b0e2b  gcc/testsuite/gm2/base-lang/pass/opaquenew.def
! a5c9f8a562745b5bd0fea6f0e53d1a43  gcc/testsuite/gm2/base-lang/pass/opaquenew.mod
! 96f7c74fd88b7d53b834df660a8fe284  gcc/testsuite/gm2/base-lang/pass/opaqueparam.def
! ea4e214a2297eb17e1b7d42bb3e2cf60  gcc/testsuite/gm2/base-lang/pass/opaqueparam.mod
! 57446533fa32b3f9bfa224289b8e3579  gcc/testsuite/gm2/base-lang/pass/opaquestr.def
! 52e2cb286569ac4bf5bccdaf40cd9fac  gcc/testsuite/gm2/base-lang/pass/opaqueuse.def
! b173a9ac0d144fab6eea316b7351dfda  gcc/testsuite/gm2/base-lang/pass/opaqueuse.mod
! aaff02a2a50cce30138d6e7620c05c4d  gcc/testsuite/gm2/base-lang/pass/opaqueusestr.def
! d409dfb15eecd266c2e281c47013fb32  gcc/testsuite/gm2/base-lang/pass/opaqueusestr.mod
! 4842ce55dc004e9aef04f3818bb993ca  gcc/testsuite/gm2/base-lang/pass/opaquevariant.def
! 9604929e4ecfc8d5ae9e2e3a230c0586  gcc/testsuite/gm2/base-lang/pass/opaquevariant.mod
! 440df9fc4af9dd18c5ed9077e4ebc277  gcc/testsuite/gm2/base-lang/pass/opaquevarparam.def
! dd0270aead7bc5d7245b4789b5f5d3c1  gcc/testsuite/gm2/base-lang/pass/opaquevarparam.mod
! 8f0b15cd3d74e0010c6b7058bc3183cc  gcc/testsuite/gm2/base-lang/pass/simplelist.def
! 851f3d0bec4cd1c43533d6c460e9f5ca  gcc/testsuite/gm2/base-lang/pass/simplelist.mod
! e451b26022aaed2ab269095aea6ac320  gcc/testsuite/gm2/base-lang/pass/simplelistiter.def
! 6f85893a25dcc3f9b416f31588977d6a  gcc/testsuite/gm2/base-lang/pass/simplelistiter.mod
! dc3e867f758ad3da67d4720fb3651584  gcc/testsuite/gm2/base-lang/pass/simpleopaque.def
! f1b1248b7a54a1b1c6a3eef30e34a77e  gcc/testsuite/gm2/base-lang/pass/simpleopaque.mod
! b079061928a2ecadf3aa945f1fe511ea  gcc/testsuite/gm2/base-lang/pass/straddress.def
! f845f57aa6e0b5b3be3638caf9219b50  gcc/testsuite/gm2/base-lang/pass/straddress.mod
! a404a06b27f2f3690d5a8d4f8469ecc6  gcc/testsuite/gm2/base-lang/pass/straddressexport.def
! 955aa6fa2bc36ac8a22b78df5792a378  gcc/testsuite/gm2/base-lang/pass/straddressexport.mod
! 9f8432ad5d554fb582e8e4dfac4fd2c5  gcc/testsuite/gm2/base-lang/pass/unboundedarray.def
! b4498c1f3ce7e59a3a45960507088011  gcc/testsuite/gm2/base-lang/pass/unboundedarray.mod
! 687312387063215759a780b51340a227  gcc/testsuite/gm2/builtins/run/pass/builtins-run-pass.exp
! 3e839ced3bbdebab515c332c348ea22c  gcc/testsuite/gm2/builtins/run/pass/testalloa.mod
! f8f367328a58f90f1d05e28d251cfb87  gcc/testsuite/gm2/builtins/run/pass/testbitfns.mod
  08c47fe61e5445678ec71e90bfb4232a  gcc/testsuite/gm2/builtins/run/pass/testcomparisons.mod
! 34f573ffa4009d03ac97d00d9d434cc3  gcc/testsuite/gm2/builtins/run/pass/testisnormal.def
! b6b99ae1ddb54345a79d34fc2b664bd3  gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
! 0b27746150dddc67dd4604532138d6db  gcc/testsuite/gm2/builtins/run/pass/testsinl.def
! cf96cb7e0ec525b5839559da63eba6b2  gcc/testsuite/gm2/builtins/run/pass/testsinl.mod
  7588b35298f3665ddfd4976cedb36af8  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.c
! 7c6c333314a484b4991b49a6fd972526  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.def
! 3fa3f438564eee907de8ef447da34151  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/calling-c-datatypes-unbounded-run-pass.exp
  fe67327073cd1abc9f69e5583cf64c78  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/m.mod
! 2f1fbc329835380411c4f42415d7eb67  gcc/testsuite/gm2/calling-c/libc/run/pass/calling-c-libc-run-pass.exp
! 8858873f8d783b01ec99d15d4596c777  gcc/testsuite/gm2/calling-c/libc/run/pass/testlibcstr.mod
! f7a5ae41c173e8754498b72026c79a5b  gcc/testsuite/gm2/case/pass/case-pass.exp
  3d76cb794bc32b3b0b044e00783636c8  gcc/testsuite/gm2/case/pass/testcase1.mod
  1e58a66ba0015168962bdadd0de37017  gcc/testsuite/gm2/case/pass/testcase2.mod
  8bed30c973a862c60e8104463928e9ae  gcc/testsuite/gm2/case/pass/testcase3.mod
*************** e49a54c2b13999808b5d01311e9f9b15  gcc/te
*** 100714,100720 ****
  cc95df1776134eba4ad71eb32843594a  gcc/testsuite/gm2/complex/pass/arith4.mod
  c141ca31b357038eb6a4044b26998792  gcc/testsuite/gm2/complex/pass/arith5.mod
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/pass/arith6.mod
! 23eec9cb0333ab6226e27a9368546433  gcc/testsuite/gm2/complex/pass/complex-pass.exp
  a1c7c008142367dc398c50c760a83614  gcc/testsuite/gm2/complex/pass/consts.mod
  14c4b0176192c164863494146b289fb0  gcc/testsuite/gm2/complex/pass/consts2.mod
  3ecc2c345e609c8e9cde330b6211d9a2  gcc/testsuite/gm2/complex/pass/consts3.mod
--- 107873,107879 ----
  cc95df1776134eba4ad71eb32843594a  gcc/testsuite/gm2/complex/pass/arith4.mod
  c141ca31b357038eb6a4044b26998792  gcc/testsuite/gm2/complex/pass/arith5.mod
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/pass/arith6.mod
! f9f5333e1de76bcbeec3cd988ec83ecf  gcc/testsuite/gm2/complex/pass/complex-pass.exp
  a1c7c008142367dc398c50c760a83614  gcc/testsuite/gm2/complex/pass/consts.mod
  14c4b0176192c164863494146b289fb0  gcc/testsuite/gm2/complex/pass/consts2.mod
  3ecc2c345e609c8e9cde330b6211d9a2  gcc/testsuite/gm2/complex/pass/consts3.mod
*************** dbc3dbd6b064e1c3403e27b14bb88e9d  gcc/te
*** 100733,100747 ****
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/run/pass/arith6.mod
  cca4ea2150705794b6f66dc505e31741  gcc/testsuite/gm2/complex/run/pass/arith7.mod
  640a53d773d30ed6a165fc0ce89d3137  gcc/testsuite/gm2/complex/run/pass/arith8.mod
! 3dd57189cfa8c9818dbda8705db6fb2d  gcc/testsuite/gm2/complex/run/pass/complex-run-pass.exp
! 9c3444fc36982b03af88946cba623021  gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp
  7ff877fbb045b88c74f5a99a6777a3de  gcc/testsuite/gm2/coroutines/pim/run/pass/testiotransfer.mod
  8bd9ea367942a49eaf640de32e64f0ee  gcc/testsuite/gm2/coroutines/pim/run/pass/testtransfer.mod
  bf300a3d33176ed75d2954f505a36964  gcc/testsuite/gm2/cpp/default/pass/AdvParse.def
  52da0e810a8317dc08f376b2f43d42b2  gcc/testsuite/gm2/cpp/default/pass/AdvParse.mod
! 150840a4f252e10549e6fe86c2223ae6  gcc/testsuite/gm2/cpp/default/pass/cpp-default-pass.exp
  d6adcb8a3ecd322645053f435759b3e1  gcc/testsuite/gm2/cpp/fail/another.h
! 041e6c90a48f5d6a1f7d3874e66a4f62  gcc/testsuite/gm2/cpp/fail/cpp-fail.exp
  ad849e5f7ccb276b6be3b793da79a630  gcc/testsuite/gm2/cpp/fail/fail1.mod
  e1ca93bb3583f891bc978bc57373eb69  gcc/testsuite/gm2/cpp/fail/foocpp.mod
  7c72a261103a15017ee87731f3ce3192  gcc/testsuite/gm2/cpp/fail/hashfirstcolumn2.mod
--- 107892,107906 ----
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/run/pass/arith6.mod
  cca4ea2150705794b6f66dc505e31741  gcc/testsuite/gm2/complex/run/pass/arith7.mod
  640a53d773d30ed6a165fc0ce89d3137  gcc/testsuite/gm2/complex/run/pass/arith8.mod
! 8397a685fcf43b9839410d67031e44bd  gcc/testsuite/gm2/complex/run/pass/complex-run-pass.exp
! 73b1c917c52acb4a911164aadba8c31f  gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp
  7ff877fbb045b88c74f5a99a6777a3de  gcc/testsuite/gm2/coroutines/pim/run/pass/testiotransfer.mod
  8bd9ea367942a49eaf640de32e64f0ee  gcc/testsuite/gm2/coroutines/pim/run/pass/testtransfer.mod
  bf300a3d33176ed75d2954f505a36964  gcc/testsuite/gm2/cpp/default/pass/AdvParse.def
  52da0e810a8317dc08f376b2f43d42b2  gcc/testsuite/gm2/cpp/default/pass/AdvParse.mod
! a2c7124e37af190f2720bccddee16e85  gcc/testsuite/gm2/cpp/default/pass/cpp-default-pass.exp
  d6adcb8a3ecd322645053f435759b3e1  gcc/testsuite/gm2/cpp/fail/another.h
! 5097a614f6b8a002139e7e305a796521  gcc/testsuite/gm2/cpp/fail/cpp-fail.exp
  ad849e5f7ccb276b6be3b793da79a630  gcc/testsuite/gm2/cpp/fail/fail1.mod
  e1ca93bb3583f891bc978bc57373eb69  gcc/testsuite/gm2/cpp/fail/foocpp.mod
  7c72a261103a15017ee87731f3ce3192  gcc/testsuite/gm2/cpp/fail/hashfirstcolumn2.mod
*************** e1ca93bb3583f891bc978bc57373eb69  gcc/te
*** 100749,100755 ****
  6ee77d1f3bced323a9c3a5ac371d3edb  gcc/testsuite/gm2/cpp/longstrimp.mod
  cf65d09dda713bbf29dd8228b5d8f1ba  gcc/testsuite/gm2/cpp/pass/arrayhuge.mod
  0efa028fc951d0c2d739c5865ec67f50  gcc/testsuite/gm2/cpp/pass/arrayhuge2.mod
! 6e0bf642325d0cd333c42f7d3b98c90c  gcc/testsuite/gm2/cpp/pass/cpp-pass.exp
  2bb9c5476b192255eac634cb22b4a2bf  gcc/testsuite/gm2/cpp/pass/cpp.mod
  34c3368e770f6ca0b338609750a869b0  gcc/testsuite/gm2/cpp/pass/cpph.mod
  92314d1e4981b1a5a30ee32e75e8ae45  gcc/testsuite/gm2/cpp/pass/subaddr.mod
--- 107908,107914 ----
  6ee77d1f3bced323a9c3a5ac371d3edb  gcc/testsuite/gm2/cpp/longstrimp.mod
  cf65d09dda713bbf29dd8228b5d8f1ba  gcc/testsuite/gm2/cpp/pass/arrayhuge.mod
  0efa028fc951d0c2d739c5865ec67f50  gcc/testsuite/gm2/cpp/pass/arrayhuge2.mod
! b3f2ea9d61486c52b0aae776ff71dad6  gcc/testsuite/gm2/cpp/pass/cpp-pass.exp
  2bb9c5476b192255eac634cb22b4a2bf  gcc/testsuite/gm2/cpp/pass/cpp.mod
  34c3368e770f6ca0b338609750a869b0  gcc/testsuite/gm2/cpp/pass/cpph.mod
  92314d1e4981b1a5a30ee32e75e8ae45  gcc/testsuite/gm2/cpp/pass/subaddr.mod
*************** e84ba33f27196931f4c9df8f91f8dcd8  gcc/te
*** 100758,100771 ****
  5ef1095727e696ab9baedcdb557ac534  gcc/testsuite/gm2/cpp/pass/testlong4.mod
  c06281a00fcf9225eeab039d3bab8deb  gcc/testsuite/gm2/cpp/setchar2.mod
  e46cfd304772efbdb8aaaa105735a0ce  gcc/testsuite/gm2/cpp/setchar6.mod
! 6eae03242725652788753bd76dd77ca2  gcc/testsuite/gm2/cse/fail/cse-fail.exp
  0b01e3d7bc6e315a8af5f12ba42e44bc  gcc/testsuite/gm2/cse/fail/testcse38.mod
! 25e3ae855741d5ba954e59564cf96fb9  gcc/testsuite/gm2/cse/pass/cse-pass.exp
  1c74dc0e36dbbc5a6e89107500fe154b  gcc/testsuite/gm2/cse/pass/m2t.c
  f6a0ca3f9c588ab94a33ea5c826b6db4  gcc/testsuite/gm2/cse/pass/testb.mod
! 3c5cbbe69600b216d0f06485e8bb5c7a  gcc/testsuite/gm2/cse/pass/testbuiltin.def
  2a890abfe4e4089097ab4050a7bf76bd  gcc/testsuite/gm2/cse/pass/testbuiltin.mod
! 40b69d2936e09a060871c8877495b7c8  gcc/testsuite/gm2/cse/pass/testcse.def
  6c5692d3d414c808b059de887160d931  gcc/testsuite/gm2/cse/pass/testcse.mod
  0ff84c21d24ef3262e4b3e1d8e575352  gcc/testsuite/gm2/cse/pass/testcse10.mod
  5208d1d005710a3b0ec25d33ef52ee77  gcc/testsuite/gm2/cse/pass/testcse11.mod
--- 107917,107930 ----
  5ef1095727e696ab9baedcdb557ac534  gcc/testsuite/gm2/cpp/pass/testlong4.mod
  c06281a00fcf9225eeab039d3bab8deb  gcc/testsuite/gm2/cpp/setchar2.mod
  e46cfd304772efbdb8aaaa105735a0ce  gcc/testsuite/gm2/cpp/setchar6.mod
! 88cd4c18ada5bb21ee2faca3f7b0aeef  gcc/testsuite/gm2/cse/fail/cse-fail.exp
  0b01e3d7bc6e315a8af5f12ba42e44bc  gcc/testsuite/gm2/cse/fail/testcse38.mod
! 2e294c9dc9f8c23af982ef71cee36eb7  gcc/testsuite/gm2/cse/pass/cse-pass.exp
  1c74dc0e36dbbc5a6e89107500fe154b  gcc/testsuite/gm2/cse/pass/m2t.c
  f6a0ca3f9c588ab94a33ea5c826b6db4  gcc/testsuite/gm2/cse/pass/testb.mod
! afd5b58fc44462ddcca99b2ee1c6c458  gcc/testsuite/gm2/cse/pass/testbuiltin.def
  2a890abfe4e4089097ab4050a7bf76bd  gcc/testsuite/gm2/cse/pass/testbuiltin.mod
! 8e0be0187d25870be89bdcd0ed7b4e39  gcc/testsuite/gm2/cse/pass/testcse.def
  6c5692d3d414c808b059de887160d931  gcc/testsuite/gm2/cse/pass/testcse.mod
  0ff84c21d24ef3262e4b3e1d8e575352  gcc/testsuite/gm2/cse/pass/testcse10.mod
  5208d1d005710a3b0ec25d33ef52ee77  gcc/testsuite/gm2/cse/pass/testcse11.mod
*************** d126cf9f66b747111b852992e95d06c6  gcc/te
*** 100811,100822 ****
  b37a68e352a1ba44f56085db993e889e  gcc/testsuite/gm2/cse/pass/testcse49.mod
  18b2ed6c5d23cd40adba92138f147f2a  gcc/testsuite/gm2/cse/pass/testcse5.c
  fcbe40c5a0ec515e75bf5de944218c14  gcc/testsuite/gm2/cse/pass/testcse5.mod
! aa4ed72139371d63f700714099832f63  gcc/testsuite/gm2/cse/pass/testcse50.def
  554574aac3e8e3b152685f5779a212d2  gcc/testsuite/gm2/cse/pass/testcse50.mod
  94447b3f9a412bef7c25a8e23c897b26  gcc/testsuite/gm2/cse/pass/testcse51.mod
! 6374c32ca50949a663d449d379807632  gcc/testsuite/gm2/cse/pass/testcse52.def
  e53ab184e1fbdc30838f0344eabeb02e  gcc/testsuite/gm2/cse/pass/testcse52.mod
! 43735c8108918706265e5fdf536f4b31  gcc/testsuite/gm2/cse/pass/testcse53.def
  2c8acb92e973007def32299593c3b110  gcc/testsuite/gm2/cse/pass/testcse53.mod
  159193dd3b073be5b7f2fadef1873f60  gcc/testsuite/gm2/cse/pass/testcse54.mod
  857632b3fb00a38fbf4f3ebd6edd40fe  gcc/testsuite/gm2/cse/pass/testcse6.c
--- 107970,107981 ----
  b37a68e352a1ba44f56085db993e889e  gcc/testsuite/gm2/cse/pass/testcse49.mod
  18b2ed6c5d23cd40adba92138f147f2a  gcc/testsuite/gm2/cse/pass/testcse5.c
  fcbe40c5a0ec515e75bf5de944218c14  gcc/testsuite/gm2/cse/pass/testcse5.mod
! e3d2ce4b27dbe1bf8b3f4806461ce029  gcc/testsuite/gm2/cse/pass/testcse50.def
  554574aac3e8e3b152685f5779a212d2  gcc/testsuite/gm2/cse/pass/testcse50.mod
  94447b3f9a412bef7c25a8e23c897b26  gcc/testsuite/gm2/cse/pass/testcse51.mod
! ff2a870b1afc557a9f628f9d6ece1f4b  gcc/testsuite/gm2/cse/pass/testcse52.def
  e53ab184e1fbdc30838f0344eabeb02e  gcc/testsuite/gm2/cse/pass/testcse52.mod
! ea305e6abc151fcd9ec7b7f4b9e3d28c  gcc/testsuite/gm2/cse/pass/testcse53.def
  2c8acb92e973007def32299593c3b110  gcc/testsuite/gm2/cse/pass/testcse53.mod
  159193dd3b073be5b7f2fadef1873f60  gcc/testsuite/gm2/cse/pass/testcse54.mod
  857632b3fb00a38fbf4f3ebd6edd40fe  gcc/testsuite/gm2/cse/pass/testcse6.c
*************** a1bc131f5d55e613c1f8bbbda43fe51e  gcc/te
*** 100828,100834 ****
  3e451550ca1bd860854772690e42ac33  gcc/testsuite/gm2/cse/pass/testcse9.c
  432517d8243f4e378c79ed1e3ba18795  gcc/testsuite/gm2/cse/pass/testsize.mod
  0510433e35c0c6ead54c427e60a0608f  gcc/testsuite/gm2/dynamic/pass/add.mod
! 2692fac3bc9c5a31f980f4f793c7c8d6  gcc/testsuite/gm2/dynamic/pass/dynamic-pass.exp
  bc934d035a84d131e8594035c39af71d  gcc/testsuite/gm2/dynamic/pass/prog21.mod
  0b9578b4d7a637e809221dcb02396e71  gcc/testsuite/gm2/dynamic/pass/testarray.mod
  6a569c608c5f3e86bd6abb40a6dd2f7c  gcc/testsuite/gm2/dynamic/pass/testarray2.mod
--- 107987,107993 ----
  3e451550ca1bd860854772690e42ac33  gcc/testsuite/gm2/cse/pass/testcse9.c
  432517d8243f4e378c79ed1e3ba18795  gcc/testsuite/gm2/cse/pass/testsize.mod
  0510433e35c0c6ead54c427e60a0608f  gcc/testsuite/gm2/dynamic/pass/add.mod
! 8f10d6ecb4fcbb1e2543c6a184ba9e4a  gcc/testsuite/gm2/dynamic/pass/dynamic-pass.exp
  bc934d035a84d131e8594035c39af71d  gcc/testsuite/gm2/dynamic/pass/prog21.mod
  0b9578b4d7a637e809221dcb02396e71  gcc/testsuite/gm2/dynamic/pass/testarray.mod
  6a569c608c5f3e86bd6abb40a6dd2f7c  gcc/testsuite/gm2/dynamic/pass/testarray2.mod
*************** d43afca017b45e72be4ea8a800632a4a  gcc/te
*** 100905,100911 ****
  fd74cb161932e961aeee3f3424fc7dff  gcc/testsuite/gm2/dynamic/pass/testparam2.mod
  1f1adbd8785d1b11b5e5c6fd59878eaf  gcc/testsuite/gm2/dynamic/pass/testproc.mod
  916d253edf0216aa6a05a3013d95f80e  gcc/testsuite/gm2/dynamic/pass/testproc2.c
! f99980783cafeb637d695713aba7caa6  gcc/testsuite/gm2/dynamic/pass/testproc2.def
  a0ac250f3ddffe710e261842f3f12dd6  gcc/testsuite/gm2/dynamic/pass/testproc2.mod
  21a4a2c206414af553e98c022009eb2d  gcc/testsuite/gm2/dynamic/pass/testscn.mod
  e40e4c2f2945b2615578dee16782098f  gcc/testsuite/gm2/dynamic/pass/testset.mod
--- 108064,108070 ----
  fd74cb161932e961aeee3f3424fc7dff  gcc/testsuite/gm2/dynamic/pass/testparam2.mod
  1f1adbd8785d1b11b5e5c6fd59878eaf  gcc/testsuite/gm2/dynamic/pass/testproc.mod
  916d253edf0216aa6a05a3013d95f80e  gcc/testsuite/gm2/dynamic/pass/testproc2.c
! aade0e509172fd7a551180e07a8b094a  gcc/testsuite/gm2/dynamic/pass/testproc2.def
  a0ac250f3ddffe710e261842f3f12dd6  gcc/testsuite/gm2/dynamic/pass/testproc2.mod
  21a4a2c206414af553e98c022009eb2d  gcc/testsuite/gm2/dynamic/pass/testscn.mod
  e40e4c2f2945b2615578dee16782098f  gcc/testsuite/gm2/dynamic/pass/testset.mod
*************** c253b4767f3b033edf55e83189021cb5  gcc/te
*** 100919,100942 ****
  3028b5ea514299b7b507faed98474ac4  gcc/testsuite/gm2/dynamic/pass/testwith.mod
  1d1918c66dc6092a319002631fb176bd  gcc/testsuite/gm2/dynamic/pass/testzero.mod
  8ca370572635d09208363a548175c222  gcc/testsuite/gm2/dynamic/pass/wc.mod
! 6eee53408332b7da3deb81fdd8b396f9  gcc/testsuite/gm2/embedded/pass/embedded-pass.exp
  267288255a37d2ed1aec5085cc95cc27  gcc/testsuite/gm2/embedded/pass/varataddress.mod
  d6faec56a77a81badbef07619cac4623  gcc/testsuite/gm2/embedded/pass/varataddress1.mod
  e9a2009d44fdbd3ac42d7b6cb091fe43  gcc/testsuite/gm2/embedded/pass/varataddress2.mod
  45d007240ca856abf7290af776bc5a3e  gcc/testsuite/gm2/embedded/pass/varataddress3.mod
! 72cdcb20fb0bc304b6450b4687e2c716  gcc/testsuite/gm2/errors/fail/array1.mod
  6d0f8deec5adfc5c2125e7c8d2a415d3  gcc/testsuite/gm2/errors/fail/badabs.mod
  05d2a716595855b76c013e8a190bca43  gcc/testsuite/gm2/errors/fail/badenum.mod
  4b934d4c7b65834470d0b4d42b1d55a4  gcc/testsuite/gm2/errors/fail/badexpr.mod
  604ba73cefe9cef918e32fc0a4222473  gcc/testsuite/gm2/errors/fail/badfor.mod
  5df468079bdaff39ae193d84b106a403  gcc/testsuite/gm2/errors/fail/badhigh.mod
  fd20bd8f082cf7877272d5c38cf25db0  gcc/testsuite/gm2/errors/fail/badshift.mod
  e9bb4f2b34ca31f67cf64ba38c53e4ed  gcc/testsuite/gm2/errors/fail/badsubexpradr.mod
  3bf3fdad7ac84acc08249c89282ea2a3  gcc/testsuite/gm2/errors/fail/binaryconst.mod
  a1ff75d5b3074c746e2e507afe7cacb7  gcc/testsuite/gm2/errors/fail/binarygeneric.mod
  daa7df11be2555fd40053e562964a10b  gcc/testsuite/gm2/errors/fail/binarygenericconst.mod
  5f0ba02dc58adc7420e4178eb32a14db  gcc/testsuite/gm2/errors/fail/end.mod
! e0e56823c80f94e16838fd565d5a8a8e  gcc/testsuite/gm2/errors/fail/errors-fail.exp
  900098bebf32f55567a5c8080781e0a5  gcc/testsuite/gm2/errors/fail/mismatched.mod
  05f00bc56eeebe8fa0a738fa8185223a  gcc/testsuite/gm2/errors/fail/mismatchedproc.mod
  fe33a7eb655943ceb5d7c7e0cd172516  gcc/testsuite/gm2/errors/fail/nestedproc4.mod
--- 108078,108104 ----
  3028b5ea514299b7b507faed98474ac4  gcc/testsuite/gm2/dynamic/pass/testwith.mod
  1d1918c66dc6092a319002631fb176bd  gcc/testsuite/gm2/dynamic/pass/testzero.mod
  8ca370572635d09208363a548175c222  gcc/testsuite/gm2/dynamic/pass/wc.mod
! e82c167957218b4f38fd345e438ca357  gcc/testsuite/gm2/embedded/pass/embedded-pass.exp
  267288255a37d2ed1aec5085cc95cc27  gcc/testsuite/gm2/embedded/pass/varataddress.mod
  d6faec56a77a81badbef07619cac4623  gcc/testsuite/gm2/embedded/pass/varataddress1.mod
  e9a2009d44fdbd3ac42d7b6cb091fe43  gcc/testsuite/gm2/embedded/pass/varataddress2.mod
  45d007240ca856abf7290af776bc5a3e  gcc/testsuite/gm2/embedded/pass/varataddress3.mod
! 283d3dcc90bf3faff3e2206c530074e6  gcc/testsuite/gm2/errors/fail/array1.mod
  6d0f8deec5adfc5c2125e7c8d2a415d3  gcc/testsuite/gm2/errors/fail/badabs.mod
+ 3c5a9123bf4efbcdb9c243a582ebbcb7  gcc/testsuite/gm2/errors/fail/badconst.mod
  05d2a716595855b76c013e8a190bca43  gcc/testsuite/gm2/errors/fail/badenum.mod
  4b934d4c7b65834470d0b4d42b1d55a4  gcc/testsuite/gm2/errors/fail/badexpr.mod
  604ba73cefe9cef918e32fc0a4222473  gcc/testsuite/gm2/errors/fail/badfor.mod
  5df468079bdaff39ae193d84b106a403  gcc/testsuite/gm2/errors/fail/badhigh.mod
  fd20bd8f082cf7877272d5c38cf25db0  gcc/testsuite/gm2/errors/fail/badshift.mod
  e9bb4f2b34ca31f67cf64ba38c53e4ed  gcc/testsuite/gm2/errors/fail/badsubexpradr.mod
+ 2f4a30474cd091007f70da82f8d18dca  gcc/testsuite/gm2/errors/fail/badtype.mod
+ 1524cd2c08f0a5148e854d11b027f257  gcc/testsuite/gm2/errors/fail/badvar.mod
  3bf3fdad7ac84acc08249c89282ea2a3  gcc/testsuite/gm2/errors/fail/binaryconst.mod
  a1ff75d5b3074c746e2e507afe7cacb7  gcc/testsuite/gm2/errors/fail/binarygeneric.mod
  daa7df11be2555fd40053e562964a10b  gcc/testsuite/gm2/errors/fail/binarygenericconst.mod
  5f0ba02dc58adc7420e4178eb32a14db  gcc/testsuite/gm2/errors/fail/end.mod
! f74935a4ad1b31f45aaec4db6d6c15bc  gcc/testsuite/gm2/errors/fail/errors-fail.exp
  900098bebf32f55567a5c8080781e0a5  gcc/testsuite/gm2/errors/fail/mismatched.mod
  05f00bc56eeebe8fa0a738fa8185223a  gcc/testsuite/gm2/errors/fail/mismatchedproc.mod
  fe33a7eb655943ceb5d7c7e0cd172516  gcc/testsuite/gm2/errors/fail/nestedproc4.mod
*************** b001612dd8ae4dd67e6d56aa351ce60f  gcc/te
*** 100959,100973 ****
  c58772434c9305e0c5d1f186a52aaeb4  gcc/testsuite/gm2/errors/fail/testdyn2.mod
  a6bc643db8b638307100a87e854fb7e3  gcc/testsuite/gm2/errors/fail/testdyn3.mod
  9e408a4d57d5234f441dcfcf5d115bc5  gcc/testsuite/gm2/errors/fail/testexp.mod
! b316e865a35608a72c86519eed2c2b9b  gcc/testsuite/gm2/errors/fail/testfio.mod
  8b6650ef557295365b031a6e64c5517a  gcc/testsuite/gm2/errors/fail/testimport.mod
! 93b05e910e211151a58a2250b2863b42  gcc/testsuite/gm2/errors/fail/testimport2.def
  ba6253c834bc64e8ff18c7f480c3366c  gcc/testsuite/gm2/errors/fail/testimport2.mod
  9c3a81391542664336e249daea04cc03  gcc/testsuite/gm2/errors/fail/testinit.mod
  5c2af1fbd1d7668c61d4310e32bc7213  gcc/testsuite/gm2/errors/fail/testmodule.mod
  9fcfc745b60957d441a78b04275b7261  gcc/testsuite/gm2/errors/fail/testnil.mod
  c838a9cea450d138cff80456ec2d9796  gcc/testsuite/gm2/errors/fail/testnil2.mod
! 6924c96a4a75c4f6d30bfc355ce8ca66  gcc/testsuite/gm2/errors/fail/testparam.mod
  9af6728c9c4450457a459d1f2518ce9e  gcc/testsuite/gm2/errors/fail/testproc.mod
  5921470be4ff91eb506c71899834dada  gcc/testsuite/gm2/errors/fail/testproc2.mod
  ba33dfe4d30219d90500277015a714b1  gcc/testsuite/gm2/errors/fail/testsize.mod
--- 108121,108135 ----
  c58772434c9305e0c5d1f186a52aaeb4  gcc/testsuite/gm2/errors/fail/testdyn2.mod
  a6bc643db8b638307100a87e854fb7e3  gcc/testsuite/gm2/errors/fail/testdyn3.mod
  9e408a4d57d5234f441dcfcf5d115bc5  gcc/testsuite/gm2/errors/fail/testexp.mod
! 0f082d396f21174008565cb7d399d091  gcc/testsuite/gm2/errors/fail/testfio.mod
  8b6650ef557295365b031a6e64c5517a  gcc/testsuite/gm2/errors/fail/testimport.mod
! 0a632fde0465340ba1703af49d9a0d32  gcc/testsuite/gm2/errors/fail/testimport2.def
  ba6253c834bc64e8ff18c7f480c3366c  gcc/testsuite/gm2/errors/fail/testimport2.mod
  9c3a81391542664336e249daea04cc03  gcc/testsuite/gm2/errors/fail/testinit.mod
  5c2af1fbd1d7668c61d4310e32bc7213  gcc/testsuite/gm2/errors/fail/testmodule.mod
  9fcfc745b60957d441a78b04275b7261  gcc/testsuite/gm2/errors/fail/testnil.mod
  c838a9cea450d138cff80456ec2d9796  gcc/testsuite/gm2/errors/fail/testnil2.mod
! 265e7c7d6b1ea2dbdbc3dbf8acbc0c19  gcc/testsuite/gm2/errors/fail/testparam.mod
  9af6728c9c4450457a459d1f2518ce9e  gcc/testsuite/gm2/errors/fail/testproc.mod
  5921470be4ff91eb506c71899834dada  gcc/testsuite/gm2/errors/fail/testproc2.mod
  ba33dfe4d30219d90500277015a714b1  gcc/testsuite/gm2/errors/fail/testsize.mod
*************** f4786048f6d3d7fad5cf09b27b332f20  gcc/te
*** 100984,101064 ****
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/errors/options
  f782465b24a5c28876d1e145d32d4e6d  gcc/testsuite/gm2/errors/testchar.mod
  4fcab4c7c6702b981524ecfe52bc63ea  gcc/testsuite/gm2/errors/testsub2.mod
! 46879778c98eb31981db92e05a778c65  gcc/testsuite/gm2/examples/callingC/pass/examples-callingC-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/pass/hello.mod
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/callingC/pass/libprintf.def
  6e696af32835a08458b941ee9c14701d  gcc/testsuite/gm2/examples/callingC/run/pass/c.c
! c138a70d8f569ec177e1adf964eccbbc  gcc/testsuite/gm2/examples/callingC/run/pass/c.def
! a58ada7384891b7fa48d4cd2cf800beb  gcc/testsuite/gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/run/pass/hello.mod
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/callingC/run/pass/libprintf.def
  9b1ea64716f9741f93057ecf55e5651c  gcc/testsuite/gm2/examples/callingC/run/pass/m.mod
! fe2af6711160d96c51e475fe19788980  gcc/testsuite/gm2/examples/cpp/pass/examples-cpp-pass.exp
  c79f3fc8141103ba51b9920fbba67f2d  gcc/testsuite/gm2/examples/cpp/pass/hello.mod
! e7f1ffae64d688e6ff56f02740a20b3d  gcc/testsuite/gm2/examples/cppDef/pass/a.def
  366e2fe9e96671a8c08f36599adb0704  gcc/testsuite/gm2/examples/cppDef/pass/a.mod
  1cf0dd48d4f207bfc91ff4f54931c47b  gcc/testsuite/gm2/examples/cppDef/pass/b.mod
! df6874d89bfea369b69d6f9f5f7b7bf2  gcc/testsuite/gm2/examples/cppDef/pass/examples-cppDef-pass.exp
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/cppDef/pass/libprintf.def
! 6bbb1cdd4490fcb41420834f23ee37a1  gcc/testsuite/gm2/examples/hello/pass/examples-hello-pass.exp
  005a4f8e755fd4bc126cc939a5219fb4  gcc/testsuite/gm2/examples/hello/pass/hello.mod
! 5256275d1db04b496b118c3a9bdf3a65  gcc/testsuite/gm2/examples/map/pass/AdvMap.def
  ce5c06dd8ccd4257094b6d7fe0f6636f  gcc/testsuite/gm2/examples/map/pass/AdvMap.mod
! 2a55165d4cc374a5e09923f169deece5  gcc/testsuite/gm2/examples/map/pass/BoxMap.def
  7387b893fd77937cb206a439869baee0  gcc/testsuite/gm2/examples/map/pass/BoxMap.mod
! b6a6f833e99cbb038d72e25f8251afea  gcc/testsuite/gm2/examples/map/pass/Chance.def
  1897fd7e181b9490c5df1b90b27bde34  gcc/testsuite/gm2/examples/map/pass/Chance.mod
! 3cae11dc63eed66ca1e033aa924c779f  gcc/testsuite/gm2/examples/map/pass/Find.def
  217f7bc3d46176754d27ca8de06253b9  gcc/testsuite/gm2/examples/map/pass/Find.mod
! d3ca7e7d04088ce9a68693bcc2049c61  gcc/testsuite/gm2/examples/map/pass/Geometry.def
  bf7c8164c2fac2b572b4e67c2edb96e7  gcc/testsuite/gm2/examples/map/pass/Geometry.mod
! 8418c7a74999ab2bc979681a6ee0249b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.def
  24844161485fcadd8e10b1e41c42e95b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.mod
  cd717f331a7e946aa6f0e8f0eb78b2e8  gcc/testsuite/gm2/examples/map/pass/Map.mod
! 05cbb2e2538f4ed435675c22edcd7472  gcc/testsuite/gm2/examples/map/pass/RoomMap.def
  dd78b0b91ea971eb655fa1c1c16f7291  gcc/testsuite/gm2/examples/map/pass/RoomMap.mod
  65336e80e9ce9fcffd4160b2650e2dfa  gcc/testsuite/gm2/examples/map/pass/Semantic.mod
! 7fbe0fa7f0b345014f4016dc646579eb  gcc/testsuite/gm2/examples/map/pass/StoreCoord.def
  623b87a418f18dba104d8f3f8415b70a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.mod
! 7fbe0fa7f0b345014f4016dc646579eb  gcc/testsuite/gm2/examples/map/pass/StoreCoords.def
  0f3582d823dac9d70750d368064dd135  gcc/testsuite/gm2/examples/map/pass/StoreCoords.mod
! 5d6e66c1f816c878ad7bedbd361e3cb2  gcc/testsuite/gm2/examples/map/pass/WriteMap.def
  984f2435f042117e1d11b236495373b5  gcc/testsuite/gm2/examples/map/pass/WriteMap.mod
! 46879778c98eb31981db92e05a778c65  gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp
  d9ff47dd8bc5f7a97c16830d1806dfba  gcc/testsuite/gm2/examples/map/pass/makemaps
  e2aa9e881a9075b60e3169174fc95dc2  gcc/testsuite/gm2/examples/map/pass/testch2.mod
  f976d784ff45c10d3377643aef37fd94  gcc/testsuite/gm2/examples/map/pass/testchan.mod
  4f1882f985c86c27fe597cb09425c95f  gcc/testsuite/gm2/examples/map/pass/testcoor.mod
  1903f0a502ca11b964d27261e5b3fa05  gcc/testsuite/gm2/examples/map/pass/testmaps
  b47fc3bae5ff9546e05302b29c9f28b4  gcc/testsuite/gm2/exceptions/run/pass/cpp.cpp
! cab3297e020c59ffd9bf905ea1c3d648  gcc/testsuite/gm2/exceptions/run/pass/cpp.def
! 9ddd2682119e00731432a071ccf532f0  gcc/testsuite/gm2/exceptions/run/pass/exceptions-run-pass.exp
  5dfbb5b9b594bdca8adb56dfdeeef1e0  gcc/testsuite/gm2/exceptions/run/pass/libexcept.mod
! a36b7b56becea741154b4bf37220da65  gcc/testsuite/gm2/exceptions/run/pass/m2test.def
  60f35975489507b9e88065f7c2133491  gcc/testsuite/gm2/exceptions/run/pass/m2test.mod
! 7d2fe9d8d6782b28788f0464ca0d952b  gcc/testsuite/gm2/exceptions/run/pass/mycpp.cpp
! 35119dd8c0bbca87a8f40be52f49119d  gcc/testsuite/gm2/exceptions/run/pass/mycpp.def
  a8136cdc04cc8b9ee85754bb8cb08606  gcc/testsuite/gm2/exceptions/run/pass/mym2.mod
  1d60661b2177000cd107e28eecf48a91  gcc/testsuite/gm2/exceptions/run/pass/mym2a.mod
! 8dbb790910ba9d03690f9615923cf999  gcc/testsuite/gm2/extensions/asm/fail/extensions-asm-fail.exp
  66d869d3a212a05904024189be0caeeb  gcc/testsuite/gm2/extensions/asm/fail/stressreturn.mod
! 943b09a491ce6bbff0f57384073c72b4  gcc/testsuite/gm2/extensions/asm/pass/extensions-asm-pass.exp
  93e20b4d7415ef76dce2ab514fb459e9  gcc/testsuite/gm2/extensions/asm/pass/fooasm.mod
  662a756773d81f4596b650a8a701e433  gcc/testsuite/gm2/extensions/fail/arith1.mod
  6e4da88b27ad6563953f67d1238e29d5  gcc/testsuite/gm2/extensions/fail/arith2.mod
  6a234790cd0976c71497c3dda9083f74  gcc/testsuite/gm2/extensions/fail/arith3.mod
  0e96d34ba2e88c691c3768f33a0bc2fe  gcc/testsuite/gm2/extensions/fail/arith4.mod
  35717052f7f93be57eefedd8b8fc82a6  gcc/testsuite/gm2/extensions/fail/arithpromote.mod
! f7eb1f20f1d6838dcb7bd6525f5dbbc0  gcc/testsuite/gm2/extensions/fail/extensions-fail.exp
  a077c5772713ae8df581262f31eb41b6  gcc/testsuite/gm2/extensions/pass/align.mod
  96abb4f2cd136d007d8d37ecbbbee744  gcc/testsuite/gm2/extensions/pass/align2.mod
  00d60d08e77e65820b6a58dd0a771ce8  gcc/testsuite/gm2/extensions/pass/card16p.mod
  9491f86bae3539bf7aff50dbf150c453  gcc/testsuite/gm2/extensions/pass/card32p.mod
  b06499ceaf68b189d8f06e4bc8f091b8  gcc/testsuite/gm2/extensions/pass/card64p.mod
  2f1c96969b039c40234d659c3df8f3b2  gcc/testsuite/gm2/extensions/pass/card8p.mod
! 167ea6ef2489f29ab7eef2cf2f893006  gcc/testsuite/gm2/extensions/pass/co.def
  d159d4a216d3d0b11a27343572db5b4a  gcc/testsuite/gm2/extensions/pass/co.mod
! eded232114c371ef6d356152ec0a3924  gcc/testsuite/gm2/extensions/pass/extensions-pass.exp
  b7f24156130b98e9254d039e04c3dce7  gcc/testsuite/gm2/extensions/pass/frame.mod
  2ba2a8a3162818fa4b3005cdc8c8c8ce  gcc/testsuite/gm2/extensions/pass/hello.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/pass/int16p.mod
--- 108146,108227 ----
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/errors/options
  f782465b24a5c28876d1e145d32d4e6d  gcc/testsuite/gm2/errors/testchar.mod
  4fcab4c7c6702b981524ecfe52bc63ea  gcc/testsuite/gm2/errors/testsub2.mod
! af5043b1e28a4467f958de8c97d61c37  gcc/testsuite/gm2/examples/callingC/pass/examples-callingC-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/pass/hello.mod
! 6bb7f5ae7925fc0587295bc1f0871a9d  gcc/testsuite/gm2/examples/callingC/pass/libprintf.def
  6e696af32835a08458b941ee9c14701d  gcc/testsuite/gm2/examples/callingC/run/pass/c.c
! 48aa3d86c82eabdc87b094eb77fea3f0  gcc/testsuite/gm2/examples/callingC/run/pass/c.def
! 40e7682a463b2ea1fb53706b0dfd56bf  gcc/testsuite/gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/run/pass/hello.mod
! 6bb7f5ae7925fc0587295bc1f0871a9d  gcc/testsuite/gm2/examples/callingC/run/pass/libprintf.def
  9b1ea64716f9741f93057ecf55e5651c  gcc/testsuite/gm2/examples/callingC/run/pass/m.mod
! dc9f4f799d598375e05c0e1c0ce84138  gcc/testsuite/gm2/examples/cpp/pass/examples-cpp-pass.exp
  c79f3fc8141103ba51b9920fbba67f2d  gcc/testsuite/gm2/examples/cpp/pass/hello.mod
! 53ecbb74ecb206a9a44fd258eae21296  gcc/testsuite/gm2/examples/cppDef/pass/a.def
  366e2fe9e96671a8c08f36599adb0704  gcc/testsuite/gm2/examples/cppDef/pass/a.mod
  1cf0dd48d4f207bfc91ff4f54931c47b  gcc/testsuite/gm2/examples/cppDef/pass/b.mod
! 4739d6516f0eff37d270f3c5502c15e3  gcc/testsuite/gm2/examples/cppDef/pass/examples-cppDef-pass.exp
! 6bb7f5ae7925fc0587295bc1f0871a9d  gcc/testsuite/gm2/examples/cppDef/pass/libprintf.def
! eab87b2c0957490ebe9e35b6193d89ef  gcc/testsuite/gm2/examples/hello/pass/examples-hello-pass.exp
  005a4f8e755fd4bc126cc939a5219fb4  gcc/testsuite/gm2/examples/hello/pass/hello.mod
! 2ca185da4d723c6e43db3e7dd51bab2b  gcc/testsuite/gm2/examples/map/pass/AdvMap.def
  ce5c06dd8ccd4257094b6d7fe0f6636f  gcc/testsuite/gm2/examples/map/pass/AdvMap.mod
! 1381f2b2c3e8a9c0c11b91348f625dd1  gcc/testsuite/gm2/examples/map/pass/BoxMap.def
  7387b893fd77937cb206a439869baee0  gcc/testsuite/gm2/examples/map/pass/BoxMap.mod
! 1a06289ff135f57d96593c1ed80d26fa  gcc/testsuite/gm2/examples/map/pass/Chance.def
  1897fd7e181b9490c5df1b90b27bde34  gcc/testsuite/gm2/examples/map/pass/Chance.mod
! b6a71cbe20f379d04e3a6528e986eaf2  gcc/testsuite/gm2/examples/map/pass/Find.def
  217f7bc3d46176754d27ca8de06253b9  gcc/testsuite/gm2/examples/map/pass/Find.mod
! 3196ad6d8a7d28e53a9843ae914d00d4  gcc/testsuite/gm2/examples/map/pass/Geometry.def
  bf7c8164c2fac2b572b4e67c2edb96e7  gcc/testsuite/gm2/examples/map/pass/Geometry.mod
! ee4fbae7ef4089f569bac6eb077b16ce  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.def
  24844161485fcadd8e10b1e41c42e95b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.mod
  cd717f331a7e946aa6f0e8f0eb78b2e8  gcc/testsuite/gm2/examples/map/pass/Map.mod
! da7fce94b6f88da0e5d63cf0c2018dd8  gcc/testsuite/gm2/examples/map/pass/RoomMap.def
  dd78b0b91ea971eb655fa1c1c16f7291  gcc/testsuite/gm2/examples/map/pass/RoomMap.mod
  65336e80e9ce9fcffd4160b2650e2dfa  gcc/testsuite/gm2/examples/map/pass/Semantic.mod
! d9e9d60d2c1c5847b769db99ac5ce990  gcc/testsuite/gm2/examples/map/pass/StoreCoord.def
  623b87a418f18dba104d8f3f8415b70a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.mod
! d9e9d60d2c1c5847b769db99ac5ce990  gcc/testsuite/gm2/examples/map/pass/StoreCoords.def
  0f3582d823dac9d70750d368064dd135  gcc/testsuite/gm2/examples/map/pass/StoreCoords.mod
! fa85820989cf6d30529c69e936252a28  gcc/testsuite/gm2/examples/map/pass/WriteMap.def
  984f2435f042117e1d11b236495373b5  gcc/testsuite/gm2/examples/map/pass/WriteMap.mod
! af5043b1e28a4467f958de8c97d61c37  gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp
  d9ff47dd8bc5f7a97c16830d1806dfba  gcc/testsuite/gm2/examples/map/pass/makemaps
  e2aa9e881a9075b60e3169174fc95dc2  gcc/testsuite/gm2/examples/map/pass/testch2.mod
  f976d784ff45c10d3377643aef37fd94  gcc/testsuite/gm2/examples/map/pass/testchan.mod
  4f1882f985c86c27fe597cb09425c95f  gcc/testsuite/gm2/examples/map/pass/testcoor.mod
  1903f0a502ca11b964d27261e5b3fa05  gcc/testsuite/gm2/examples/map/pass/testmaps
  b47fc3bae5ff9546e05302b29c9f28b4  gcc/testsuite/gm2/exceptions/run/pass/cpp.cpp
! ff0d5c2b4b1e6f5c5408af280f701e88  gcc/testsuite/gm2/exceptions/run/pass/cpp.def
! 4b78ff37dc1fc0077f05b80481689e1e  gcc/testsuite/gm2/exceptions/run/pass/exceptions-run-pass.exp
  5dfbb5b9b594bdca8adb56dfdeeef1e0  gcc/testsuite/gm2/exceptions/run/pass/libexcept.mod
! 68e36c221bf72863d1747731bfc97320  gcc/testsuite/gm2/exceptions/run/pass/m2test.def
  60f35975489507b9e88065f7c2133491  gcc/testsuite/gm2/exceptions/run/pass/m2test.mod
! 52c1d38fc7d8f77a15ed03f56a992fbd  gcc/testsuite/gm2/exceptions/run/pass/mycpp.cpp
! cb3ae2dd4dbf47c6bd147a21ef99dd3f  gcc/testsuite/gm2/exceptions/run/pass/mycpp.def
  a8136cdc04cc8b9ee85754bb8cb08606  gcc/testsuite/gm2/exceptions/run/pass/mym2.mod
  1d60661b2177000cd107e28eecf48a91  gcc/testsuite/gm2/exceptions/run/pass/mym2a.mod
! 7de2a6153e0c4068b3594cef6354ccfa  gcc/testsuite/gm2/extensions/asm/fail/extensions-asm-fail.exp
  66d869d3a212a05904024189be0caeeb  gcc/testsuite/gm2/extensions/asm/fail/stressreturn.mod
! 838d5c36127094c3d06744a89c915877  gcc/testsuite/gm2/extensions/asm/pass/conststr.mod
! c55779c16bc1297947f8723aa67e6232  gcc/testsuite/gm2/extensions/asm/pass/extensions-asm-pass.exp
  93e20b4d7415ef76dce2ab514fb459e9  gcc/testsuite/gm2/extensions/asm/pass/fooasm.mod
  662a756773d81f4596b650a8a701e433  gcc/testsuite/gm2/extensions/fail/arith1.mod
  6e4da88b27ad6563953f67d1238e29d5  gcc/testsuite/gm2/extensions/fail/arith2.mod
  6a234790cd0976c71497c3dda9083f74  gcc/testsuite/gm2/extensions/fail/arith3.mod
  0e96d34ba2e88c691c3768f33a0bc2fe  gcc/testsuite/gm2/extensions/fail/arith4.mod
  35717052f7f93be57eefedd8b8fc82a6  gcc/testsuite/gm2/extensions/fail/arithpromote.mod
! 86b4e8f47e6f47f8322de7837e5f33ee  gcc/testsuite/gm2/extensions/fail/extensions-fail.exp
  a077c5772713ae8df581262f31eb41b6  gcc/testsuite/gm2/extensions/pass/align.mod
  96abb4f2cd136d007d8d37ecbbbee744  gcc/testsuite/gm2/extensions/pass/align2.mod
  00d60d08e77e65820b6a58dd0a771ce8  gcc/testsuite/gm2/extensions/pass/card16p.mod
  9491f86bae3539bf7aff50dbf150c453  gcc/testsuite/gm2/extensions/pass/card32p.mod
  b06499ceaf68b189d8f06e4bc8f091b8  gcc/testsuite/gm2/extensions/pass/card64p.mod
  2f1c96969b039c40234d659c3df8f3b2  gcc/testsuite/gm2/extensions/pass/card8p.mod
! ff5c6d3ae7f7d6d1088e03ef40e5d920  gcc/testsuite/gm2/extensions/pass/co.def
  d159d4a216d3d0b11a27343572db5b4a  gcc/testsuite/gm2/extensions/pass/co.mod
! b0c458ed0026749301b42a29a7ddea92  gcc/testsuite/gm2/extensions/pass/extensions-pass.exp
  b7f24156130b98e9254d039e04c3dce7  gcc/testsuite/gm2/extensions/pass/frame.mod
  2ba2a8a3162818fa4b3005cdc8c8c8ce  gcc/testsuite/gm2/extensions/pass/hello.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/pass/int16p.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 101067,101073 ****
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/pass/int8p.mod
  15c237b555bd2fd8f5ba57d93e9d8f42  gcc/testsuite/gm2/extensions/pass/intsize8.mod
  0e28d95a61e7a4cfa672b7377c173e1b  gcc/testsuite/gm2/extensions/pass/jmp.mod
! 35c1a07f18529966cc86a573e58dd1ce  gcc/testsuite/gm2/extensions/pass/libc.def
  70c7b761a63dc747727aa2798018b114  gcc/testsuite/gm2/extensions/pass/optparam.mod
  6f26b2905d1b0eb6eb2a7202002fc260  gcc/testsuite/gm2/extensions/pass/optparam2.mod
  489560c6e1607c7cee923238809668cf  gcc/testsuite/gm2/extensions/pass/return.mod
--- 108230,108236 ----
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/pass/int8p.mod
  15c237b555bd2fd8f5ba57d93e9d8f42  gcc/testsuite/gm2/extensions/pass/intsize8.mod
  0e28d95a61e7a4cfa672b7377c173e1b  gcc/testsuite/gm2/extensions/pass/jmp.mod
! a830ce3cb9b626f041a4e9d36fc31471  gcc/testsuite/gm2/extensions/pass/libc.def
  70c7b761a63dc747727aa2798018b114  gcc/testsuite/gm2/extensions/pass/optparam.mod
  6f26b2905d1b0eb6eb2a7202002fc260  gcc/testsuite/gm2/extensions/pass/optparam2.mod
  489560c6e1607c7cee923238809668cf  gcc/testsuite/gm2/extensions/pass/return.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 101075,101081 ****
  058986cbc2e8bccb371e06f4bb391970  gcc/testsuite/gm2/extensions/pass/set8a.mod
  fc28f44846ac7d40a1fcd68808a61333  gcc/testsuite/gm2/extensions/pass/set8b.mod
  e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/testsuite/gm2/extensions/pass/testco.mod
! 87bb9cb3a74065eb41698cfda21757f6  gcc/testsuite/gm2/extensions/run/fail/extensions-run-fail.exp
  9821650ee314cc2e367daa2d545cf9f2  gcc/testsuite/gm2/extensions/run/fail/intsize8.mod
  15008e06dae9d05871928b0212d55c06  gcc/testsuite/gm2/extensions/run/pass/align3.mod
  1dec57a2a2bdbe62a7eb9d8a6385e36e  gcc/testsuite/gm2/extensions/run/pass/align4.mod
--- 108238,108244 ----
  058986cbc2e8bccb371e06f4bb391970  gcc/testsuite/gm2/extensions/pass/set8a.mod
  fc28f44846ac7d40a1fcd68808a61333  gcc/testsuite/gm2/extensions/pass/set8b.mod
  e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/testsuite/gm2/extensions/pass/testco.mod
! 90e1085e783380d2b0eef22a23cc85b8  gcc/testsuite/gm2/extensions/run/fail/extensions-run-fail.exp
  9821650ee314cc2e367daa2d545cf9f2  gcc/testsuite/gm2/extensions/run/fail/intsize8.mod
  15008e06dae9d05871928b0212d55c06  gcc/testsuite/gm2/extensions/run/pass/align3.mod
  1dec57a2a2bdbe62a7eb9d8a6385e36e  gcc/testsuite/gm2/extensions/run/pass/align4.mod
*************** c358c7bf88ea586179fab8f69cf4163d  gcc/te
*** 101099,101106 ****
  adc26f7f9a7dcb3a14fddaf3f36958e1  gcc/testsuite/gm2/extensions/run/pass/card8p.mod
  43a099b052c9029ba649dd74ab85f56c  gcc/testsuite/gm2/extensions/run/pass/column.mod
  66842da4551c5e2094e0007be19255b4  gcc/testsuite/gm2/extensions/run/pass/cvararg.c
! 81b700a1537e054657b5dcc00df270e2  gcc/testsuite/gm2/extensions/run/pass/cvararg.def
! 4956821856dd5596131229178686acb4  gcc/testsuite/gm2/extensions/run/pass/extensions-run-pass.exp
  b774d1bacaf75defe5d102c1bfb1fa59  gcc/testsuite/gm2/extensions/run/pass/fixedarray.mod
  6dae0462ee7d420d898332f32fc5840f  gcc/testsuite/gm2/extensions/run/pass/fixedarray2.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/run/pass/int16p.mod
--- 108262,108269 ----
  adc26f7f9a7dcb3a14fddaf3f36958e1  gcc/testsuite/gm2/extensions/run/pass/card8p.mod
  43a099b052c9029ba649dd74ab85f56c  gcc/testsuite/gm2/extensions/run/pass/column.mod
  66842da4551c5e2094e0007be19255b4  gcc/testsuite/gm2/extensions/run/pass/cvararg.c
! 8743391da01c369aa022cd007b6096e0  gcc/testsuite/gm2/extensions/run/pass/cvararg.def
! 2a706139d3b95a8a2b26c07a9fd6a989  gcc/testsuite/gm2/extensions/run/pass/extensions-run-pass.exp
  b774d1bacaf75defe5d102c1bfb1fa59  gcc/testsuite/gm2/extensions/run/pass/fixedarray.mod
  6dae0462ee7d420d898332f32fc5840f  gcc/testsuite/gm2/extensions/run/pass/fixedarray2.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/run/pass/int16p.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 101115,101128 ****
  77fc65c01967a1eef55b9d65aad055a4  gcc/testsuite/gm2/extensions/run/pass/real32a.mod
  7a5bd62d8a41815f5eb09af3f33fa729  gcc/testsuite/gm2/extensions/run/pass/record.mod
  50d4c24cca8ca7f1d3f7608554381d76  gcc/testsuite/gm2/extensions/run/pass/strconst.def
! d0d534462d39236a4854097918b02153  gcc/testsuite/gm2/extensions/run/pass/testopen.mod
  d57d404053c6ef9d1aaa90cdc440ae24  gcc/testsuite/gm2/extensions/run/pass/vararg.mod
  3fc061dc6cfbf188036b5833142f960f  gcc/testsuite/gm2/extensions/run/pass/vararg2.mod
  0e0d21632ac8fb41a3feab3ecd14b629  gcc/testsuite/gm2/extensions/run/pass/vararg3.mod
  3a5bea5d914d476c9a7a922b157ec8be  gcc/testsuite/gm2/fpu/pass/five.mod
! 0efe5411d39c42eda4638f645fa105b9  gcc/testsuite/gm2/fpu/pass/fp.def
  f421eb8626c024ae88d4db4325d7c4e5  gcc/testsuite/gm2/fpu/pass/fp.mod
! 8241ab49e6bc79682c6af4f0b11a82c9  gcc/testsuite/gm2/fpu/pass/fpu-pass.exp
  1b9881eb40114bef9af8c751d9511564  gcc/testsuite/gm2/fpu/pass/one.mod
  8567fe0b3d8ab8ed7727a9c0ac0c9aad  gcc/testsuite/gm2/fpu/pass/r1.mod
  7b08cb9eda5c9dd6127fce04e999ae3a  gcc/testsuite/gm2/fpu/pass/realconst.mod
--- 108278,108291 ----
  77fc65c01967a1eef55b9d65aad055a4  gcc/testsuite/gm2/extensions/run/pass/real32a.mod
  7a5bd62d8a41815f5eb09af3f33fa729  gcc/testsuite/gm2/extensions/run/pass/record.mod
  50d4c24cca8ca7f1d3f7608554381d76  gcc/testsuite/gm2/extensions/run/pass/strconst.def
! 55c0bcb511c4ee96d83251228f147a04  gcc/testsuite/gm2/extensions/run/pass/testopen.mod
  d57d404053c6ef9d1aaa90cdc440ae24  gcc/testsuite/gm2/extensions/run/pass/vararg.mod
  3fc061dc6cfbf188036b5833142f960f  gcc/testsuite/gm2/extensions/run/pass/vararg2.mod
  0e0d21632ac8fb41a3feab3ecd14b629  gcc/testsuite/gm2/extensions/run/pass/vararg3.mod
  3a5bea5d914d476c9a7a922b157ec8be  gcc/testsuite/gm2/fpu/pass/five.mod
! 97f31a2803fd9b495e72b3fc8d128894  gcc/testsuite/gm2/fpu/pass/fp.def
  f421eb8626c024ae88d4db4325d7c4e5  gcc/testsuite/gm2/fpu/pass/fp.mod
! 7186e9e7a81ed659b756bb7914e8e67a  gcc/testsuite/gm2/fpu/pass/fpu-pass.exp
  1b9881eb40114bef9af8c751d9511564  gcc/testsuite/gm2/fpu/pass/one.mod
  8567fe0b3d8ab8ed7727a9c0ac0c9aad  gcc/testsuite/gm2/fpu/pass/r1.mod
  7b08cb9eda5c9dd6127fce04e999ae3a  gcc/testsuite/gm2/fpu/pass/realconst.mod
*************** dee54568f17413d8e57d550f0c4b83f8  gcc/te
*** 101132,101147 ****
  d96589c2c2844064714e9b438501b89f  gcc/testsuite/gm2/fpu/pass/testfpu2.mod
  d08e0de57399712f8aa4cf7d257cf968  gcc/testsuite/gm2/fpu/pass/testfpu3.mod
  16c6c47aa8e76194eb5c0953f55f524c  gcc/testsuite/gm2/fpu/pass/testsin.mod
! 40e399623a8dc0da299138227a8e83e3  gcc/testsuite/gm2/imports/fail/imports-fail.exp
  eedc0a60a90c35fc25ca1db3bc48b54d  gcc/testsuite/gm2/imports/fail/localmodule2.mod
! 19eeee8e8fbbb429497ee3909786f37e  gcc/testsuite/gm2/imports/run/pass/c.def
  8e6474927fa522c9ea64fd6594fd9e18  gcc/testsuite/gm2/imports/run/pass/c.mod
! 639e19d39dfcb8b5257123092843d90d  gcc/testsuite/gm2/imports/run/pass/imports-run-pass.exp
  f4645b6089459f9007476e070d88845b  gcc/testsuite/gm2/imports/run/pass/innermods.mod
  2120b509216f2ca34896125e5617d5b2  gcc/testsuite/gm2/imports/run/pass/innermods2.mod
  ab7792dc6d1aa671117c9b421280d6d9  gcc/testsuite/gm2/imports/run/pass/innermods3.mod
  8e84633caf8e5c825199e5905023fc0d  gcc/testsuite/gm2/imports/run/pass/innermods4.mod
! 1869d4dc36a5fde19ede37c5ef8c1e2c  gcc/testsuite/gm2/imports/run/pass/innermods5.def
  3be04b3b76010112caa8cbdbb9565240  gcc/testsuite/gm2/imports/run/pass/innermods5.mod
  c66145b0af0618ee84020843a22d9908  gcc/testsuite/gm2/imports/run/pass/innermods6.mod
  ddcb9cb0667e6dfae5dda53ead0c9dad  gcc/testsuite/gm2/imports/run/pass/localmodule.mod
--- 108295,108310 ----
  d96589c2c2844064714e9b438501b89f  gcc/testsuite/gm2/fpu/pass/testfpu2.mod
  d08e0de57399712f8aa4cf7d257cf968  gcc/testsuite/gm2/fpu/pass/testfpu3.mod
  16c6c47aa8e76194eb5c0953f55f524c  gcc/testsuite/gm2/fpu/pass/testsin.mod
! 615f24141a37b19aa0315a2560d250ba  gcc/testsuite/gm2/imports/fail/imports-fail.exp
  eedc0a60a90c35fc25ca1db3bc48b54d  gcc/testsuite/gm2/imports/fail/localmodule2.mod
! 44c2e924c8d70dd82f50fc9265476a45  gcc/testsuite/gm2/imports/run/pass/c.def
  8e6474927fa522c9ea64fd6594fd9e18  gcc/testsuite/gm2/imports/run/pass/c.mod
! ec42deca91807811244ec5cfaec10937  gcc/testsuite/gm2/imports/run/pass/imports-run-pass.exp
  f4645b6089459f9007476e070d88845b  gcc/testsuite/gm2/imports/run/pass/innermods.mod
  2120b509216f2ca34896125e5617d5b2  gcc/testsuite/gm2/imports/run/pass/innermods2.mod
  ab7792dc6d1aa671117c9b421280d6d9  gcc/testsuite/gm2/imports/run/pass/innermods3.mod
  8e84633caf8e5c825199e5905023fc0d  gcc/testsuite/gm2/imports/run/pass/innermods4.mod
! 4f7949f299141aa27d2ae341d4512f4d  gcc/testsuite/gm2/imports/run/pass/innermods5.def
  3be04b3b76010112caa8cbdbb9565240  gcc/testsuite/gm2/imports/run/pass/innermods5.mod
  c66145b0af0618ee84020843a22d9908  gcc/testsuite/gm2/imports/run/pass/innermods6.mod
  ddcb9cb0667e6dfae5dda53ead0c9dad  gcc/testsuite/gm2/imports/run/pass/localmodule.mod
*************** c940ae09194a293bfb4ab9b2de81dade  gcc/te
*** 101166,101180 ****
  b653bc6cb28996bf3bada6a912fcf38d  gcc/testsuite/gm2/iso/analysis/fail/decvalue.mod
  e33c60fd3ac7a38f872e338f9a718f81  gcc/testsuite/gm2/iso/analysis/fail/forloop.mod
  696a9199f7222fe61ec2d3fc8ec625f2  gcc/testsuite/gm2/iso/analysis/fail/incvalue.mod
! 22958b8b25dd7b548b40932ab834a258  gcc/testsuite/gm2/iso/analysis/fail/iso-analysis-fail.exp
  2c2021fe25b158b9d6384aa1f94820be  gcc/testsuite/gm2/iso/analysis/fail/noreturn.mod
  5a3e9a4a9089931344916866a14fe3c6  gcc/testsuite/gm2/iso/analysis/fail/returnvalue.mod
  8e731a1c7867a36e9ee26de3938f03cf  gcc/testsuite/gm2/iso/analysis/fail/staticarray.mod
! 878a9cb9b4a0fe73996e7ce834517336  gcc/testsuite/gm2/iso/check/fail/iso-check-fail.exp
  437990ba3723c0f4b1dbcdddb2cc37cc  gcc/testsuite/gm2/iso/check/fail/modulusoverflow.mod
  6249dd53a3ebd4f714845279bdf36c4e  gcc/testsuite/gm2/iso/const/fail/castproctype.mod
  533ddaa3eb9b19330b3a20aa49c83a49  gcc/testsuite/gm2/iso/const/fail/expression.mod
! 0eb7aceeae588af3b839d1acff071564  gcc/testsuite/gm2/iso/const/fail/iso-const-fail.exp
  171b5baa1f1a4f382368a3ec07051c27  gcc/testsuite/gm2/iso/const/fail/testabs.mod
  04356892e6df6a18dae19d8c95b8f3a0  gcc/testsuite/gm2/iso/const/fail/testaddadr.mod
  e1feb88a657b77987bdea63f44ec352d  gcc/testsuite/gm2/iso/const/fail/testcap.mod
--- 108329,108343 ----
  b653bc6cb28996bf3bada6a912fcf38d  gcc/testsuite/gm2/iso/analysis/fail/decvalue.mod
  e33c60fd3ac7a38f872e338f9a718f81  gcc/testsuite/gm2/iso/analysis/fail/forloop.mod
  696a9199f7222fe61ec2d3fc8ec625f2  gcc/testsuite/gm2/iso/analysis/fail/incvalue.mod
! 1c14fb9c14c7ee080ca15344a5aa1980  gcc/testsuite/gm2/iso/analysis/fail/iso-analysis-fail.exp
  2c2021fe25b158b9d6384aa1f94820be  gcc/testsuite/gm2/iso/analysis/fail/noreturn.mod
  5a3e9a4a9089931344916866a14fe3c6  gcc/testsuite/gm2/iso/analysis/fail/returnvalue.mod
  8e731a1c7867a36e9ee26de3938f03cf  gcc/testsuite/gm2/iso/analysis/fail/staticarray.mod
! 54dc742e6351ef0f914635764f81e2f5  gcc/testsuite/gm2/iso/check/fail/iso-check-fail.exp
  437990ba3723c0f4b1dbcdddb2cc37cc  gcc/testsuite/gm2/iso/check/fail/modulusoverflow.mod
  6249dd53a3ebd4f714845279bdf36c4e  gcc/testsuite/gm2/iso/const/fail/castproctype.mod
  533ddaa3eb9b19330b3a20aa49c83a49  gcc/testsuite/gm2/iso/const/fail/expression.mod
! 034f8f29d6f5dc79ea1e17f245ea3b3d  gcc/testsuite/gm2/iso/const/fail/iso-const-fail.exp
  171b5baa1f1a4f382368a3ec07051c27  gcc/testsuite/gm2/iso/const/fail/testabs.mod
  04356892e6df6a18dae19d8c95b8f3a0  gcc/testsuite/gm2/iso/const/fail/testaddadr.mod
  e1feb88a657b77987bdea63f44ec352d  gcc/testsuite/gm2/iso/const/fail/testcap.mod
*************** b5ca5eed3f9ff4e81e34c6f169360874  gcc/te
*** 101194,101212 ****
  b99787c465721afaed2b8de0d5ebdb37  gcc/testsuite/gm2/iso/const/pass/constbool.mod
  933c47053b6f966551df13ec68786fc3  gcc/testsuite/gm2/iso/const/pass/constbool2.mod
  220776441d94404abfaea7ebc00ad8d5  gcc/testsuite/gm2/iso/const/pass/constbool3.mod
  5515f78173fa018efbfade829850b772  gcc/testsuite/gm2/iso/const/pass/constcast.mod
  9befe172c7b848ebd1274c2193c23929  gcc/testsuite/gm2/iso/const/pass/constodd.mod
! 786fe7069cf07de7d35169d06cc69ded  gcc/testsuite/gm2/iso/const/pass/iso-const-pass.exp
! 10ea7c55d5ce707809eced30bc36b8c7  gcc/testsuite/gm2/iso/extended-opaque/pass/iso-extended-opaque-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/iso/extended-opaque/pass/testset.mod
  2aeb1840a853d9bd6dd61d9278a7b6a1  gcc/testsuite/gm2/iso/fail/badarray.mod
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
  08d72567eef98d824fdfea58dfd60bd0  gcc/testsuite/gm2/iso/fail/badassignment.mod
  026dcc0bc12873120c33bc438c0da31f  gcc/testsuite/gm2/iso/fail/badexpression.mod
  9dc1926fc7f59c0f1a31e62270e201f0  gcc/testsuite/gm2/iso/fail/badexpression2.mod
  a4434fc135822edf23c851e5f90882b2  gcc/testsuite/gm2/iso/fail/badipv4.mod
  4b91e3c389b30ac1774c9b61dccd90e1  gcc/testsuite/gm2/iso/fail/badset.mod
  4860278d84989ec562b892a13b6447ec  gcc/testsuite/gm2/iso/fail/badset2.mod
  dfcc6ecdf732afd377ec852b928da44c  gcc/testsuite/gm2/iso/fail/badset3.mod
--- 108357,108389 ----
  b99787c465721afaed2b8de0d5ebdb37  gcc/testsuite/gm2/iso/const/pass/constbool.mod
  933c47053b6f966551df13ec68786fc3  gcc/testsuite/gm2/iso/const/pass/constbool2.mod
  220776441d94404abfaea7ebc00ad8d5  gcc/testsuite/gm2/iso/const/pass/constbool3.mod
+ c83034aeb54185cebc6b47fc6f9aa445  gcc/testsuite/gm2/iso/const/pass/constbool4.mod
+ f37df132a6d1265e9833af11738799ad  gcc/testsuite/gm2/iso/const/pass/constbool5.mod
  5515f78173fa018efbfade829850b772  gcc/testsuite/gm2/iso/const/pass/constcast.mod
  9befe172c7b848ebd1274c2193c23929  gcc/testsuite/gm2/iso/const/pass/constodd.mod
! 06787768f38ea4a399f17757d3ab0c1c  gcc/testsuite/gm2/iso/const/pass/iso-const-pass.exp
! 0e9dc7a345b8de7218ebcc83816e3848  gcc/testsuite/gm2/iso/extended-opaque/pass/iso-extended-opaque-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/iso/extended-opaque/pass/testset.mod
+ 74e6d5d98b64c8e15038da1eb20fc083  gcc/testsuite/gm2/iso/fail/arraymismatch.mod
  2aeb1840a853d9bd6dd61d9278a7b6a1  gcc/testsuite/gm2/iso/fail/badarray.mod
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
  08d72567eef98d824fdfea58dfd60bd0  gcc/testsuite/gm2/iso/fail/badassignment.mod
  026dcc0bc12873120c33bc438c0da31f  gcc/testsuite/gm2/iso/fail/badexpression.mod
  9dc1926fc7f59c0f1a31e62270e201f0  gcc/testsuite/gm2/iso/fail/badexpression2.mod
+ 75513ea87b008a24269e564ecf59b97c  gcc/testsuite/gm2/iso/fail/badexpression3.mod
  a4434fc135822edf23c851e5f90882b2  gcc/testsuite/gm2/iso/fail/badipv4.mod
+ c299dcdfa91ad2973439a146bf06f31e  gcc/testsuite/gm2/iso/fail/badparam.def
+ e0d9f4511586e1f7d1b54b78cf3d603c  gcc/testsuite/gm2/iso/fail/badparam.mod
+ b3acb83c8cfc66ccab6d4e521cc42282  gcc/testsuite/gm2/iso/fail/badparam2.def
+ cc43723feac66b68719ad3b00e40ac2e  gcc/testsuite/gm2/iso/fail/badparam2.mod
+ cfcc2d704de3714c855e75436e8ca038  gcc/testsuite/gm2/iso/fail/badparam3.def
+ abf9a1ae12b026e02f61e02c04c2910f  gcc/testsuite/gm2/iso/fail/badparam3.mod
+ c5ec5527b4bca04a200369be3b0d5133  gcc/testsuite/gm2/iso/fail/badparam4.def
+ 5ed1fa10cc675bda041dcdeeed28c41f  gcc/testsuite/gm2/iso/fail/badparam4.mod
+ fecf4459acd65abc1b71561dc22d7689  gcc/testsuite/gm2/iso/fail/badparamarray.def
+ 8d98913215f9c558c4398522b8124ee1  gcc/testsuite/gm2/iso/fail/badparamarray.mod
  4b91e3c389b30ac1774c9b61dccd90e1  gcc/testsuite/gm2/iso/fail/badset.mod
  4860278d84989ec562b892a13b6447ec  gcc/testsuite/gm2/iso/fail/badset2.mod
  dfcc6ecdf732afd377ec852b928da44c  gcc/testsuite/gm2/iso/fail/badset3.mod
*************** cffadd3bd945b8bb5a8bae2de8463c28  gcc/te
*** 101223,101252 ****
  3cb1bbfa1604b9e6cc1b43df60f866ad  gcc/testsuite/gm2/iso/fail/constrecord.mod
  a8827661db356eb8fe3aae4bffb1deb7  gcc/testsuite/gm2/iso/fail/constrecord2.mod
  6e3ec3631df6599216792bf1991e0fbd  gcc/testsuite/gm2/iso/fail/constrecord3.mod
  3ffd37fed98f69e69af9d930e9a86876  gcc/testsuite/gm2/iso/fail/constsubrange.mod
  8cd75979edf8234541dc58c2f7704add  gcc/testsuite/gm2/iso/fail/constsubrange2.mod
  4e821bb67abc742b556822995a64ea5e  gcc/testsuite/gm2/iso/fail/constsubrange3.mod
! 9c93e6f4919ab83c8eda64b7ef3bac5d  gcc/testsuite/gm2/iso/fail/defa.def
  4a1db953e98692055dccdc1c8fc43159  gcc/testsuite/gm2/iso/fail/defa.mod
! 501dcbd42ca340acdd25661074c7a1ff  gcc/testsuite/gm2/iso/fail/defb.def
  3c6b5115568c4d660aa89060b63544f8  gcc/testsuite/gm2/iso/fail/defb.mod
! 808f0eecfaabef0dea2691327babde81  gcc/testsuite/gm2/iso/fail/defc.def
  3df68a547b9ef8e6eff176a40576d573  gcc/testsuite/gm2/iso/fail/defc.mod
  da1fbaf8a9296190ba11825db23d9833  gcc/testsuite/gm2/iso/fail/except.mod
  6a210956056936ebaf10f352041bcedb  gcc/testsuite/gm2/iso/fail/except2.mod
! 9d3c419d7047b79a873087bd2e69066d  gcc/testsuite/gm2/iso/fail/iso-fail.exp
! aabee730528d8e7462e1d0142baa2eb4  gcc/testsuite/gm2/iso/fail/isoa.def
  dd34b06f9745b0471d4dcdd1151794b8  gcc/testsuite/gm2/iso/fail/isoa.mod
  f8f0e42d0cb5dd05e9e09532e59be906  gcc/testsuite/gm2/iso/fail/lengthsubexpr.mod
  ed27c2d624cf61637162923e09064d02  gcc/testsuite/gm2/iso/fail/proc.mod
  319a28627a121d702d9a4582ade6fdaf  gcc/testsuite/gm2/iso/fail/proccard.mod
  6f32d7b5c03fc7e1f30b34bc9dc3b73e  gcc/testsuite/gm2/iso/fail/realbitscast.mod
  cd05f4056e7fa080d31647f017a369f3  gcc/testsuite/gm2/iso/fail/varient.mod
  ed6563e70916bce0539862ce8bf92344  gcc/testsuite/gm2/iso/fail/varient2.mod
  a0958c3dc000796522d937a4dabacd02  gcc/testsuite/gm2/iso/future/builtinlj.mod
! 477a639ed2acecac9113eaddf8832061  gcc/testsuite/gm2/iso/pass/ChanConsts.def
  b548e6cf07722a4141620bf090c7453a  gcc/testsuite/gm2/iso/pass/ChanConsts.mod
! 1d3491d80f67b80b43f95882aaf0fd30  gcc/testsuite/gm2/iso/pass/ConvTypes.def
  e39633acce4e1ece9cf66f5e55bfdc2b  gcc/testsuite/gm2/iso/pass/ConvTypes.mod
  3acbb7dfd228d2022ab81e451c0b0b30  gcc/testsuite/gm2/iso/pass/addadr1.mod
  d5116ad09a796b6a9ff0c6aea69aec15  gcc/testsuite/gm2/iso/pass/arrayconst.mod
--- 108400,108447 ----
  3cb1bbfa1604b9e6cc1b43df60f866ad  gcc/testsuite/gm2/iso/fail/constrecord.mod
  a8827661db356eb8fe3aae4bffb1deb7  gcc/testsuite/gm2/iso/fail/constrecord2.mod
  6e3ec3631df6599216792bf1991e0fbd  gcc/testsuite/gm2/iso/fail/constrecord3.mod
+ f49b7289c3d53c23285ff6ef46149e99  gcc/testsuite/gm2/iso/fail/conststrarray2.mod
  3ffd37fed98f69e69af9d930e9a86876  gcc/testsuite/gm2/iso/fail/constsubrange.mod
  8cd75979edf8234541dc58c2f7704add  gcc/testsuite/gm2/iso/fail/constsubrange2.mod
  4e821bb67abc742b556822995a64ea5e  gcc/testsuite/gm2/iso/fail/constsubrange3.mod
! a962efcc39fcd192244f41666af2900d  gcc/testsuite/gm2/iso/fail/defa.def
  4a1db953e98692055dccdc1c8fc43159  gcc/testsuite/gm2/iso/fail/defa.mod
! afb9f3f067b63f7e69d360af1daf8bad  gcc/testsuite/gm2/iso/fail/defb.def
  3c6b5115568c4d660aa89060b63544f8  gcc/testsuite/gm2/iso/fail/defb.mod
! 5dce6460112b20bced75009510a70c83  gcc/testsuite/gm2/iso/fail/defc.def
  3df68a547b9ef8e6eff176a40576d573  gcc/testsuite/gm2/iso/fail/defc.mod
  da1fbaf8a9296190ba11825db23d9833  gcc/testsuite/gm2/iso/fail/except.mod
  6a210956056936ebaf10f352041bcedb  gcc/testsuite/gm2/iso/fail/except2.mod
! 2d92e227754191fe09961705b50fc6c2  gcc/testsuite/gm2/iso/fail/forloopbyvar.mod
! c3173bcd0ed0659dee99ac9f9499c016  gcc/testsuite/gm2/iso/fail/forloopbyvar4.mod
! 0802ea9862df9d877feebbc30c52f7db  gcc/testsuite/gm2/iso/fail/forloopbyvar5.mod
! adf60801fbf18218634d0cdfefbb6767  gcc/testsuite/gm2/iso/fail/forloopbyzero.mod
! b6365d09b45c270def5a314dd855fda7  gcc/testsuite/gm2/iso/fail/iso-fail.exp
! 9da4128a78eb2d190a63fd5171cdb080  gcc/testsuite/gm2/iso/fail/isoa.def
  dd34b06f9745b0471d4dcdd1151794b8  gcc/testsuite/gm2/iso/fail/isoa.mod
  f8f0e42d0cb5dd05e9e09532e59be906  gcc/testsuite/gm2/iso/fail/lengthsubexpr.mod
  ed27c2d624cf61637162923e09064d02  gcc/testsuite/gm2/iso/fail/proc.mod
  319a28627a121d702d9a4582ade6fdaf  gcc/testsuite/gm2/iso/fail/proccard.mod
  6f32d7b5c03fc7e1f30b34bc9dc3b73e  gcc/testsuite/gm2/iso/fail/realbitscast.mod
+ 4d87ccf291f22d732bf784dad281461c  gcc/testsuite/gm2/iso/fail/simpledef1.def
+ 5b318b04b2f9d592c2d49a92c671fbd0  gcc/testsuite/gm2/iso/fail/simpledef1.mod
+ 7462955344b955c27422c791673ed8d7  gcc/testsuite/gm2/iso/fail/simpleforward.mod
+ 8031d2e2f34ccd73e85ae7930e481850  gcc/testsuite/gm2/iso/fail/simpleforward2.mod
+ b11bd2db9b5b17749cbaa1ed8f2458fe  gcc/testsuite/gm2/iso/fail/simpleforward3.mod
+ b553c0d469f88e8b140f05550b45ec09  gcc/testsuite/gm2/iso/fail/simpleforward4.mod
+ 41dfc3071f812521354f51f4dcfb738e  gcc/testsuite/gm2/iso/fail/simpleforward5.mod
+ 33a2bbb1cdb8fcea3ed29d136a91639d  gcc/testsuite/gm2/iso/fail/simpleforward7.mod
+ d1a971250f19600b8ae1a4e7c9f7d653  gcc/testsuite/gm2/iso/fail/testarrayunbounded2.mod
+ dbe6d4d0410d97259dbab1fe1d39fb20  gcc/testsuite/gm2/iso/fail/testarrayunbounded3.mod
+ 070626c19ec3fe601049977f6cef135e  gcc/testsuite/gm2/iso/fail/testarrayunbounded4.mod
+ b53c8f5b80d07be7f1828fddd2463fe2  gcc/testsuite/gm2/iso/fail/testarrayunbounded5.mod
+ f96a686b7ebdd680d1ea27c0d2f8b49e  gcc/testsuite/gm2/iso/fail/testarrayunbounded6.mod
  cd05f4056e7fa080d31647f017a369f3  gcc/testsuite/gm2/iso/fail/varient.mod
  ed6563e70916bce0539862ce8bf92344  gcc/testsuite/gm2/iso/fail/varient2.mod
  a0958c3dc000796522d937a4dabacd02  gcc/testsuite/gm2/iso/future/builtinlj.mod
! 4f98e982a35f8612d1b50bf132848e74  gcc/testsuite/gm2/iso/pass/ChanConsts.def
  b548e6cf07722a4141620bf090c7453a  gcc/testsuite/gm2/iso/pass/ChanConsts.mod
! c41e9107d78eb3a2cd52ccd55a653618  gcc/testsuite/gm2/iso/pass/ConvTypes.def
  e39633acce4e1ece9cf66f5e55bfdc2b  gcc/testsuite/gm2/iso/pass/ConvTypes.mod
  3acbb7dfd228d2022ab81e451c0b0b30  gcc/testsuite/gm2/iso/pass/addadr1.mod
  d5116ad09a796b6a9ff0c6aea69aec15  gcc/testsuite/gm2/iso/pass/arrayconst.mod
*************** ee41216e13dd953ee144ca99d349b1c8  gcc/te
*** 101277,101284 ****
  ddc6aebab5f51939e8d3f7ff7f77c6e8  gcc/testsuite/gm2/iso/pass/except1.mod
  c36139631daa5f71b97439df4c9d9968  gcc/testsuite/gm2/iso/pass/expproc.mod
  1af42c7c84e203d3875f8c6ddc86590f  gcc/testsuite/gm2/iso/pass/expproc2.mod
! 38b99fa44cab3df41e92f4339ca3941c  gcc/testsuite/gm2/iso/pass/iso-pass.exp
! 2ea8304118ee6733a7d15ec3c42ef6fa  gcc/testsuite/gm2/iso/pass/isob.def
  9d7f426376e9d6ffd2e838ec2f107007  gcc/testsuite/gm2/iso/pass/isob.mod
  1c8e0e2855304c5ab461a3df75482110  gcc/testsuite/gm2/iso/pass/isobitset.mod
  bf612e7d4b783c9e3495dec78e22634f  gcc/testsuite/gm2/iso/pass/isobitset2.mod
--- 108472,108481 ----
  ddc6aebab5f51939e8d3f7ff7f77c6e8  gcc/testsuite/gm2/iso/pass/except1.mod
  c36139631daa5f71b97439df4c9d9968  gcc/testsuite/gm2/iso/pass/expproc.mod
  1af42c7c84e203d3875f8c6ddc86590f  gcc/testsuite/gm2/iso/pass/expproc2.mod
! 863bd7112d8597f55bc724ce68bf3394  gcc/testsuite/gm2/iso/pass/forloopbyconst.mod
! debbfd5917212ec7f4292381bb96ac54  gcc/testsuite/gm2/iso/pass/forloopbyvar3.mod
! 06b9bee9c089a98a6cf1ca41f7b5f482  gcc/testsuite/gm2/iso/pass/iso-pass.exp
! 269e701f5af64c839556c9c22ada9fe5  gcc/testsuite/gm2/iso/pass/isob.def
  9d7f426376e9d6ffd2e838ec2f107007  gcc/testsuite/gm2/iso/pass/isob.mod
  1c8e0e2855304c5ab461a3df75482110  gcc/testsuite/gm2/iso/pass/isobitset.mod
  bf612e7d4b783c9e3495dec78e22634f  gcc/testsuite/gm2/iso/pass/isobitset2.mod
*************** bf612e7d4b783c9e3495dec78e22634f  gcc/te
*** 101287,101298 ****
  4aadbdc5a6663a31ae9d1d45a3ae1484  gcc/testsuite/gm2/iso/pass/proccast.mod
  8e92d1b76d700c108585fbcb6420ea2c  gcc/testsuite/gm2/iso/pass/realbitscast.mod
  238d44ce7ade63d31b039cc51513a564  gcc/testsuite/gm2/iso/pass/set12.mod
  744399262592238aa803f52f5c079be7  gcc/testsuite/gm2/iso/pass/stringchar.mod
  4673308df9fe8082809963a37af79361  gcc/testsuite/gm2/iso/pass/subassign.mod
  de6f6670582027aff90b457bfa265df7  gcc/testsuite/gm2/iso/pass/testaddindr.mod
! a625a5586a65d0bdac2ea41616d23dd2  gcc/testsuite/gm2/iso/pass/testconv.def
  dfca0dd59c3c7312a6b41fa51e0b066b  gcc/testsuite/gm2/iso/pass/testconv.mod
! 806610cfa169ab70d96edc5a5fad8c4c  gcc/testsuite/gm2/iso/pass/testconv2.def
  b47a3b6539789604b78c3a59b12dbfd0  gcc/testsuite/gm2/iso/pass/testconv2.mod
  2484172d14af2f08507f0df169a71631  gcc/testsuite/gm2/iso/pass/testconv3.mod
  20629a1e5119de086d6c7394f703ff06  gcc/testsuite/gm2/iso/pass/testconv4.mod
--- 108484,108498 ----
  4aadbdc5a6663a31ae9d1d45a3ae1484  gcc/testsuite/gm2/iso/pass/proccast.mod
  8e92d1b76d700c108585fbcb6420ea2c  gcc/testsuite/gm2/iso/pass/realbitscast.mod
  238d44ce7ade63d31b039cc51513a564  gcc/testsuite/gm2/iso/pass/set12.mod
+ 32828029d691b5e6c68d174f2e43ec96  gcc/testsuite/gm2/iso/pass/simpleforward.mod
+ 5745d2988cb10a6081b0699e8100d8f6  gcc/testsuite/gm2/iso/pass/simpleforward6.mod
  744399262592238aa803f52f5c079be7  gcc/testsuite/gm2/iso/pass/stringchar.mod
  4673308df9fe8082809963a37af79361  gcc/testsuite/gm2/iso/pass/subassign.mod
  de6f6670582027aff90b457bfa265df7  gcc/testsuite/gm2/iso/pass/testaddindr.mod
! 1199df9529b8860654e70038121cb6f1  gcc/testsuite/gm2/iso/pass/testarrayunbounded.mod
! b717028a22bf9b3feaa0748ef4a3950f  gcc/testsuite/gm2/iso/pass/testconv.def
  dfca0dd59c3c7312a6b41fa51e0b066b  gcc/testsuite/gm2/iso/pass/testconv.mod
! 295cd989e85d07c9a093e37701c5df88  gcc/testsuite/gm2/iso/pass/testconv2.def
  b47a3b6539789604b78c3a59b12dbfd0  gcc/testsuite/gm2/iso/pass/testconv2.mod
  2484172d14af2f08507f0df169a71631  gcc/testsuite/gm2/iso/pass/testconv3.mod
  20629a1e5119de086d6c7394f703ff06  gcc/testsuite/gm2/iso/pass/testconv4.mod
*************** ab2ebff36ce756677ac31a2944ca8a12  gcc/te
*** 101309,101314 ****
--- 108509,108515 ----
  226b0e662943c04cb38d0bca0bfc3091  gcc/testsuite/gm2/iso/pass/testlength3.mod
  e9bd0ecc9dd48042c7ba73738af78def  gcc/testsuite/gm2/iso/pass/testlength4.mod
  38595f1720fe2e59181ecadb8f1bb6f4  gcc/testsuite/gm2/iso/pass/testlength5.mod
+ 1fbd81cab810f2270cb080d5d9dd1865  gcc/testsuite/gm2/iso/pass/testrotate.mod
  a8dfff8749defc38e520cb1cb7e81369  gcc/testsuite/gm2/iso/pass/unbounded.mod
  e189208c21019fb1a7863f3962e87c90  gcc/testsuite/gm2/iso/pass/unbounded2.mod
  d71a6ac0e0221fe50dc256107211dd31  gcc/testsuite/gm2/iso/run/pass/adraddress.mod
*************** a0eb439d9f4cc681b21fe56bfdb9af1a  gcc/te
*** 101317,101322 ****
--- 108518,108529 ----
  121d71fd48fd99bf056f3b7aea7e0e93  gcc/testsuite/gm2/iso/run/pass/baseimport.mod
  65d3849661c7903f9ca8189e50514102  gcc/testsuite/gm2/iso/run/pass/compsize.mod
  b608ff9e7423b8fdeb8fd6a83709a0fd  gcc/testsuite/gm2/iso/run/pass/concurrentstore.mod
+ 30f0ef0fda2eb21d4e164805bf8fe3d0  gcc/testsuite/gm2/iso/run/pass/condtest2.mod
+ 735804be031088aafd887ab44b73e13e  gcc/testsuite/gm2/iso/run/pass/condtest3.mod
+ adaf5d3ad146735c426f5650a78a1699  gcc/testsuite/gm2/iso/run/pass/condtest4.mod
+ c622c4ac30dbe6489ce00c013a0785dd  gcc/testsuite/gm2/iso/run/pass/condtest5.mod
+ e26a646b013ca8d0521a079058167391  gcc/testsuite/gm2/iso/run/pass/constarray2.mod
+ c83034aeb54185cebc6b47fc6f9aa445  gcc/testsuite/gm2/iso/run/pass/constbool4.mod
  78e887b8f24e014b6e6b34f71b91915f  gcc/testsuite/gm2/iso/run/pass/constprocedure.mod
  ee63f51af90a190018b96e17aa2c2443  gcc/testsuite/gm2/iso/run/pass/constructor1.mod
  4196c0d5e4d26c006a27e937a231c7cb  gcc/testsuite/gm2/iso/run/pass/constructor2.mod
*************** ee63f51af90a190018b96e17aa2c2443  gcc/te
*** 101325,101342 ****
  47411b6568e03dac16a9864783269f5a  gcc/testsuite/gm2/iso/run/pass/contimer.mod
  242408544a85a41bde4331e2cdc43cbd  gcc/testsuite/gm2/iso/run/pass/except.c
  9aa061ffb83b605de1bedd862a17d511  gcc/testsuite/gm2/iso/run/pass/except2.mod
! 6b261956855190be8b2740e46aac736f  gcc/testsuite/gm2/iso/run/pass/except3.cpp
  ba514aa29332bacc0035fe9edad9d4c4  gcc/testsuite/gm2/iso/run/pass/except4.mod
! 1f5f1fda8c08ec32ae8150a1653c0f0e  gcc/testsuite/gm2/iso/run/pass/except5.cpp
  517736f3e4685a93515bb5ea51dd7019  gcc/testsuite/gm2/iso/run/pass/except5.mod
! fc42a8f2663ca8a1ea99862c883da401  gcc/testsuite/gm2/iso/run/pass/except6.cpp
  d8b017fce021a48a38acf23ef7022b6c  gcc/testsuite/gm2/iso/run/pass/except7.mod
  04ba215916e7b57b916c2e62ed91edb7  gcc/testsuite/gm2/iso/run/pass/except8.mod
! 6e37fcb44019681ce22e26c31220401e  gcc/testsuite/gm2/iso/run/pass/fileio.def
  159695faf1dbe033f4bdae12a3c1cd48  gcc/testsuite/gm2/iso/run/pass/fileio.mod
  5b867827747aed9a1a9fb833804c50c3  gcc/testsuite/gm2/iso/run/pass/hello.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
! 28a95f44c5c1a422b99a3d701e78b040  gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp
  78b19b6a53ad0f68a754cdbef5b02acc  gcc/testsuite/gm2/iso/run/pass/long.mod
  2368215508e35ca63735123b24dbd9ab  gcc/testsuite/gm2/iso/run/pass/long2.mod
  53e603c239ad4622684dde9c1e8421fb  gcc/testsuite/gm2/iso/run/pass/long3.mod
--- 108532,108551 ----
  47411b6568e03dac16a9864783269f5a  gcc/testsuite/gm2/iso/run/pass/contimer.mod
  242408544a85a41bde4331e2cdc43cbd  gcc/testsuite/gm2/iso/run/pass/except.c
  9aa061ffb83b605de1bedd862a17d511  gcc/testsuite/gm2/iso/run/pass/except2.mod
! b9c283cc29f9c447089642e932f17500  gcc/testsuite/gm2/iso/run/pass/except3.cpp
  ba514aa29332bacc0035fe9edad9d4c4  gcc/testsuite/gm2/iso/run/pass/except4.mod
! fb47fe945059aec61ec00bfacc5599ae  gcc/testsuite/gm2/iso/run/pass/except5.cpp
  517736f3e4685a93515bb5ea51dd7019  gcc/testsuite/gm2/iso/run/pass/except5.mod
! 00bd66a81aa526566f427208f7606848  gcc/testsuite/gm2/iso/run/pass/except6.cpp
  d8b017fce021a48a38acf23ef7022b6c  gcc/testsuite/gm2/iso/run/pass/except7.mod
  04ba215916e7b57b916c2e62ed91edb7  gcc/testsuite/gm2/iso/run/pass/except8.mod
! 95b26a2585070ace70e741abf32faa9f  gcc/testsuite/gm2/iso/run/pass/except9.mod
! d60b1560bcbcb75d7155b713a0615e2b  gcc/testsuite/gm2/iso/run/pass/fileio.def
  159695faf1dbe033f4bdae12a3c1cd48  gcc/testsuite/gm2/iso/run/pass/fileio.mod
  5b867827747aed9a1a9fb833804c50c3  gcc/testsuite/gm2/iso/run/pass/hello.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
! 015a316a5f6deb37e5a3eae416c1830d  gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp
! fbaaeb1457a87cc689195a316d3d5867  gcc/testsuite/gm2/iso/run/pass/lazyunique.mod
  78b19b6a53ad0f68a754cdbef5b02acc  gcc/testsuite/gm2/iso/run/pass/long.mod
  2368215508e35ca63735123b24dbd9ab  gcc/testsuite/gm2/iso/run/pass/long2.mod
  53e603c239ad4622684dde9c1e8421fb  gcc/testsuite/gm2/iso/run/pass/long3.mod
*************** ae1b3c93233365bbbcb2f5542962646a  gcc/te
*** 101360,101366 ****
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
  ac46225adaf10940cda4fe816a959fae  gcc/testsuite/gm2/iso/run/pass/shift4.mod
  a3a9bfe46b5a2ad99d516b933303594a  gcc/testsuite/gm2/iso/run/pass/shorttest.mod
! bf6d1f778c9b35b434232d808ad7504e  gcc/testsuite/gm2/iso/run/pass/simple
  0fa8f6bac59d5b939cee67f911d96f9d  gcc/testsuite/gm2/iso/run/pass/simplelarge.mod
  9faeaea3c4d878cb86d98cb51b4ee431  gcc/testsuite/gm2/iso/run/pass/strcons.mod
  60a7bd468fc8261e7b7dc9630d14b2d9  gcc/testsuite/gm2/iso/run/pass/strcons2.mod
--- 108569,108575 ----
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
  ac46225adaf10940cda4fe816a959fae  gcc/testsuite/gm2/iso/run/pass/shift4.mod
  a3a9bfe46b5a2ad99d516b933303594a  gcc/testsuite/gm2/iso/run/pass/shorttest.mod
! 004775d760ff8827eb6ed1aecdd87275  gcc/testsuite/gm2/iso/run/pass/simple
  0fa8f6bac59d5b939cee67f911d96f9d  gcc/testsuite/gm2/iso/run/pass/simplelarge.mod
  9faeaea3c4d878cb86d98cb51b4ee431  gcc/testsuite/gm2/iso/run/pass/strcons.mod
  60a7bd468fc8261e7b7dc9630d14b2d9  gcc/testsuite/gm2/iso/run/pass/strcons2.mod
*************** c58783000fdf657d736883de5f9c0e66  gcc/te
*** 101394,101400 ****
  c858924bce721c82b81fe5971d941525  gcc/testsuite/gm2/iso/run/pass/unbounded7.mod
  921f10b539ea9de80e580a163c6a1592  gcc/testsuite/gm2/iso/run/pass/unbounded8.mod
  2953f3f6c049c7e320944ef21086898c  gcc/testsuite/gm2/isocoroutines/run/pass/coroutine.mod
! 56893f47c58603e7b200a06534e5e98a  gcc/testsuite/gm2/isocoroutines/run/pass/isocoroutines-run-pass.exp
  5f42d4cb86819e23d09f17a63fe55119  gcc/testsuite/gm2/isolib/run/pass/arraycons.mod
  621b2a675979737e813f6e7921dd1f57  gcc/testsuite/gm2/isolib/run/pass/arraycons2.mod
  649d6c8370932f49c3c981cf1b5bd669  gcc/testsuite/gm2/isolib/run/pass/arraycons3.mod
--- 108603,108609 ----
  c858924bce721c82b81fe5971d941525  gcc/testsuite/gm2/iso/run/pass/unbounded7.mod
  921f10b539ea9de80e580a163c6a1592  gcc/testsuite/gm2/iso/run/pass/unbounded8.mod
  2953f3f6c049c7e320944ef21086898c  gcc/testsuite/gm2/isocoroutines/run/pass/coroutine.mod
! c36d3efa06925ba9c623a9e0a33c38e5  gcc/testsuite/gm2/isocoroutines/run/pass/isocoroutines-run-pass.exp
  5f42d4cb86819e23d09f17a63fe55119  gcc/testsuite/gm2/isolib/run/pass/arraycons.mod
  621b2a675979737e813f6e7921dd1f57  gcc/testsuite/gm2/isolib/run/pass/arraycons2.mod
  649d6c8370932f49c3c981cf1b5bd669  gcc/testsuite/gm2/isolib/run/pass/arraycons3.mod
*************** e69f9123c984a5f4de915dcb49c67992  gcc/te
*** 101407,101415 ****
  6bff3360ddd264152005b5075b864933  gcc/testsuite/gm2/isolib/run/pass/hello.mod
  0d5737786fade9dd892b24e28ec8a02e  gcc/testsuite/gm2/isolib/run/pass/insert.mod
  e05c5d708e4a400c5fb8dc3bba5563ba  gcc/testsuite/gm2/isolib/run/pass/intconv.mod
! 0b37ce28640354a8964d6107dccebd08  gcc/testsuite/gm2/isolib/run/pass/isolib-run-pass.exp
  fa2d96397ca227b193a0d90776b72945  gcc/testsuite/gm2/isolib/run/pass/longstr.mod
! ee4f4587ab8a344c634f4734daca875f  gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
  737c28bca38981081d331976893f69e5  gcc/testsuite/gm2/isolib/run/pass/raise.mod
  789764d859e119c65fb37d5f4c9331b5  gcc/testsuite/gm2/isolib/run/pass/raise2.mod
  4945d6c18abfb09ca6e1208608c34208  gcc/testsuite/gm2/isolib/run/pass/readreal.mod
--- 108616,108624 ----
  6bff3360ddd264152005b5075b864933  gcc/testsuite/gm2/isolib/run/pass/hello.mod
  0d5737786fade9dd892b24e28ec8a02e  gcc/testsuite/gm2/isolib/run/pass/insert.mod
  e05c5d708e4a400c5fb8dc3bba5563ba  gcc/testsuite/gm2/isolib/run/pass/intconv.mod
! bd56b70fdd9007c99e611d744352e1a6  gcc/testsuite/gm2/isolib/run/pass/isolib-run-pass.exp
  fa2d96397ca227b193a0d90776b72945  gcc/testsuite/gm2/isolib/run/pass/longstr.mod
! a26a5e6b0406028a2cbf11aafc1a74cd  gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
  737c28bca38981081d331976893f69e5  gcc/testsuite/gm2/isolib/run/pass/raise.mod
  789764d859e119c65fb37d5f4c9331b5  gcc/testsuite/gm2/isolib/run/pass/raise2.mod
  4945d6c18abfb09ca6e1208608c34208  gcc/testsuite/gm2/isolib/run/pass/readreal.mod
*************** ffe3859b8cbbed7ff7dedbdc8ba61bdf  gcc/te
*** 101423,101462 ****
  443c40937dbf55c93e28bda7293d92f9  gcc/testsuite/gm2/isolib/run/pass/sigfig.mod
  f9ceb5c30759365763fecbe5f99b1cac  gcc/testsuite/gm2/isolib/run/pass/skiplinetest.mod
  f9fbb418b92d420ebb3f6a854efc8622  gcc/testsuite/gm2/isolib/run/pass/stringreal2.mod
! 5df30cff4b82f40dfe2182af6f785672  gcc/testsuite/gm2/isolib/run/pass/termfile.mod-disabled
  dc2a1d9cbb699aea2bb0228df7dc3bab  gcc/testsuite/gm2/isolib/run/pass/testappend.mod
  44b0706459af32f2fcae978eb612d24a  gcc/testsuite/gm2/isolib/run/pass/testdelete.mod
  3c2b8785cd9a160a4d9c0557e6712778  gcc/testsuite/gm2/isolib/run/pass/testinput
  c52fa331117eec4f92c2d39dc4aebd31  gcc/testsuite/gm2/isolib/run/pass/testio.mod
  440f50991d6576420a0c429b4325688c  gcc/testsuite/gm2/isolib/run/pass/testio2.mod
  a0258029a47ea22b2a2b407eee876964  gcc/testsuite/gm2/isolib/run/pass/testmem.mod
  b0db180b49d8a548d336623cfa95886b  gcc/testsuite/gm2/isolib/run/pass/testmem2.mod
  4cb5e85fdcafc58f3b09f42c156b108c  gcc/testsuite/gm2/isolib/run/pass/testnumber
  d156266b63dbf06a30dd66b760aac7b3  gcc/testsuite/gm2/isolib/run/pass/testreadint.mod
  6c6edbd10f860aaf9371f352826b9106  gcc/testsuite/gm2/isolib/run/pass/tiny.mod
  d090d3879801d41d7c6558ac9d7a72a7  gcc/testsuite/gm2/isolib/run/pass/tiny2.mod
  05532bafc054ae01df9117b40867ddab  gcc/testsuite/gm2/isolib/run/pass/tiny3.mod
  2a2cf97dffad96d62283f09f87ed0d96  gcc/testsuite/gm2/isolib/run/pass/tiny4.mod
  2af224884c7fd21f0af607da12e090cc  gcc/testsuite/gm2/isolib/run/pass/tiny5.mod
! bd217ab88c61f22ada2973ae26f9cc3e  gcc/testsuite/gm2/libs/a.def
  401be10a7c2b78bf15c555d81fbff436  gcc/testsuite/gm2/libs/a.mod
! f6b27d03db8b6eb2b6829a907c716dd6  gcc/testsuite/gm2/libs/b.def
  255c4433dfe3a4bd1e6aa54c906896df  gcc/testsuite/gm2/libs/b.mod
  1f14e5bf520dcaeeb7511d6145e105b5  gcc/testsuite/gm2/libs/testraw.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/link/externalscaffold/pass/hello.mod
! 89bc20aa9daee0d9f0c9199aad4a30c3  gcc/testsuite/gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp
  b7ca4351724a2591b8a8ca4451a7a44b  gcc/testsuite/gm2/link/externalscaffold/pass/scaffold.c
! 5fffb2e83276612ecffbf0bfb0b28a60  gcc/testsuite/gm2/link/min/pass/link-min-pass.exp
  3ccc25a86d469b340eb7c17d50759bdd  gcc/testsuite/gm2/link/min/pass/tiny.mod
  ed8bf85772f77dfafb862d1ea45af84b  gcc/testsuite/gm2/link/nondefaultext/pass/hello.md
  8b7fd72f6b1125c4b22c0d196be84399  gcc/testsuite/gm2/link/nondefaultext/pass/liba.dm
  ecb93dcfa825a2109fb5060ea6d89c3a  gcc/testsuite/gm2/link/nondefaultext/pass/liba.md
! 28635c3c2b9c6f5050ac2b9fa31878dd  gcc/testsuite/gm2/link/nondefaultext/pass/link-nondefaultext-pass.exp
  aa515547392bf65d8ff6de37572453f7  gcc/testsuite/gm2/link/pim/fail/import.mod
! 0bf12498d383688b23386f9303cc2ac6  gcc/testsuite/gm2/link/pim/fail/link-pim-fail.exp
! 6eee53408332b7da3deb81fdd8b396f9  gcc/testsuite/gm2/link/pim/pass/link-pim-pass.exp
  8a50d2a21ae4fff8f675a6613ac56bf8  gcc/testsuite/gm2/link/pimc/pass/README
! 65f3163ea4f3fd4eacab398c67473f2e  gcc/testsuite/gm2/link/pimc/pass/link-pimc-pass.exp
  ac3ed15d12ee3e27a286169ba4da2ec7  gcc/testsuite/gm2/link/pimc/pass/testdtoa.mod
  748cc29901521f865e6a4e6ce06b05d5  gcc/testsuite/gm2/link/pimc/pass/testerrno.mod
  33b3f009f04c7dd34f235050e7c63342  gcc/testsuite/gm2/link/pimc/pass/testgetopt.mod
--- 108632,108677 ----
  443c40937dbf55c93e28bda7293d92f9  gcc/testsuite/gm2/isolib/run/pass/sigfig.mod
  f9ceb5c30759365763fecbe5f99b1cac  gcc/testsuite/gm2/isolib/run/pass/skiplinetest.mod
  f9fbb418b92d420ebb3f6a854efc8622  gcc/testsuite/gm2/isolib/run/pass/stringreal2.mod
! 75ef6c39687877d18acecb1187d7077c  gcc/testsuite/gm2/isolib/run/pass/termfile.mod-disabled
  dc2a1d9cbb699aea2bb0228df7dc3bab  gcc/testsuite/gm2/isolib/run/pass/testappend.mod
  44b0706459af32f2fcae978eb612d24a  gcc/testsuite/gm2/isolib/run/pass/testdelete.mod
+ 5be5d33eec745090ad97266f20fc2177  gcc/testsuite/gm2/isolib/run/pass/testinittm.mod
  3c2b8785cd9a160a4d9c0557e6712778  gcc/testsuite/gm2/isolib/run/pass/testinput
  c52fa331117eec4f92c2d39dc4aebd31  gcc/testsuite/gm2/isolib/run/pass/testio.mod
  440f50991d6576420a0c429b4325688c  gcc/testsuite/gm2/isolib/run/pass/testio2.mod
+ 2dda5439b40875e64fa88e771a9d1206  gcc/testsuite/gm2/isolib/run/pass/testlowread.mod
  a0258029a47ea22b2a2b407eee876964  gcc/testsuite/gm2/isolib/run/pass/testmem.mod
  b0db180b49d8a548d336623cfa95886b  gcc/testsuite/gm2/isolib/run/pass/testmem2.mod
  4cb5e85fdcafc58f3b09f42c156b108c  gcc/testsuite/gm2/isolib/run/pass/testnumber
  d156266b63dbf06a30dd66b760aac7b3  gcc/testsuite/gm2/isolib/run/pass/testreadint.mod
+ ca345d0b53efe9a832f857a45f2b123b  gcc/testsuite/gm2/isolib/run/pass/testrestline.mod
+ 62debc2d979995721482b9c233e513b9  gcc/testsuite/gm2/isolib/run/pass/testrestline2.mod
+ e44d06a996806a6c2eafaa8ae424b9ab  gcc/testsuite/gm2/isolib/run/pass/testrestline3.mod
+ 99cf756f3d637a84af74b5911602ae60  gcc/testsuite/gm2/isolib/run/pass/testwritereal.mod
  6c6edbd10f860aaf9371f352826b9106  gcc/testsuite/gm2/isolib/run/pass/tiny.mod
  d090d3879801d41d7c6558ac9d7a72a7  gcc/testsuite/gm2/isolib/run/pass/tiny2.mod
  05532bafc054ae01df9117b40867ddab  gcc/testsuite/gm2/isolib/run/pass/tiny3.mod
  2a2cf97dffad96d62283f09f87ed0d96  gcc/testsuite/gm2/isolib/run/pass/tiny4.mod
  2af224884c7fd21f0af607da12e090cc  gcc/testsuite/gm2/isolib/run/pass/tiny5.mod
! ffe41f4bfe89f967f7901e73d4a5cf4c  gcc/testsuite/gm2/libs/a.def
  401be10a7c2b78bf15c555d81fbff436  gcc/testsuite/gm2/libs/a.mod
! 93a75be5136681572e16495fd1a39c33  gcc/testsuite/gm2/libs/b.def
  255c4433dfe3a4bd1e6aa54c906896df  gcc/testsuite/gm2/libs/b.mod
  1f14e5bf520dcaeeb7511d6145e105b5  gcc/testsuite/gm2/libs/testraw.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/link/externalscaffold/pass/hello.mod
! a21d356aa3b093d2249a2ed6b0b153ac  gcc/testsuite/gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp
  b7ca4351724a2591b8a8ca4451a7a44b  gcc/testsuite/gm2/link/externalscaffold/pass/scaffold.c
! 8939dd3389171c8214903a23dfdd3b38  gcc/testsuite/gm2/link/min/pass/link-min-pass.exp
  3ccc25a86d469b340eb7c17d50759bdd  gcc/testsuite/gm2/link/min/pass/tiny.mod
  ed8bf85772f77dfafb862d1ea45af84b  gcc/testsuite/gm2/link/nondefaultext/pass/hello.md
  8b7fd72f6b1125c4b22c0d196be84399  gcc/testsuite/gm2/link/nondefaultext/pass/liba.dm
  ecb93dcfa825a2109fb5060ea6d89c3a  gcc/testsuite/gm2/link/nondefaultext/pass/liba.md
! e306ecb36338c0142406cfb242f0716d  gcc/testsuite/gm2/link/nondefaultext/pass/link-nondefaultext-pass.exp
  aa515547392bf65d8ff6de37572453f7  gcc/testsuite/gm2/link/pim/fail/import.mod
! 74349f4f23ab7033848ef6c29a755bd8  gcc/testsuite/gm2/link/pim/fail/link-pim-fail.exp
! e82c167957218b4f38fd345e438ca357  gcc/testsuite/gm2/link/pim/pass/link-pim-pass.exp
  8a50d2a21ae4fff8f675a6613ac56bf8  gcc/testsuite/gm2/link/pimc/pass/README
! c5382e48f3405a4c9f8654cc5e68e8aa  gcc/testsuite/gm2/link/pimc/pass/link-pimc-pass.exp
  ac3ed15d12ee3e27a286169ba4da2ec7  gcc/testsuite/gm2/link/pimc/pass/testdtoa.mod
  748cc29901521f865e6a4e6ce06b05d5  gcc/testsuite/gm2/link/pimc/pass/testerrno.mod
  33b3f009f04c7dd34f235050e7c63342  gcc/testsuite/gm2/link/pimc/pass/testgetopt.mod
*************** b2dbac8e94edbde7e2a350006308609d  gcc/te
*** 101471,101495 ****
  7073078d3a767f64d74a7c6a946627dd  gcc/testsuite/gm2/link/pimc/pass/testwrapc.mod
  01b4a3c4c4320ca3d0e3c2029589f9ff  gcc/testsuite/gm2/linking/fail/badimp.def
  e82da3fe10ee926313256a79e605a816  gcc/testsuite/gm2/linking/fail/badimp.mod
! d91e3773db999d2fe232976e8789d766  gcc/testsuite/gm2/linking/fail/linking-fail.exp
  12f2f0e87d8f3d594a1aafa133621521  gcc/testsuite/gm2/linking/fail/testbadimp.mod
  597ea84fb3ecf81fd258fdb6e08e23d0  gcc/testsuite/gm2/linking/libarchive/pass/c.c
! d444792c61bcc5a0c5c28a0750cafb77  gcc/testsuite/gm2/linking/libarchive/pass/c.def
! f041b4e49836baefc9d3cc43b4458b57  gcc/testsuite/gm2/linking/libarchive/pass/d.def
! d9cde3f13282a3c9db17ff2910670bce  gcc/testsuite/gm2/linking/libarchive/pass/e.def
! acf71ec70742f87a40c93f0845a6ea31  gcc/testsuite/gm2/linking/libarchive/pass/linking-libarchive-pass.exp
  5b02e5fe6d2b26e7cb50346d3ab00754  gcc/testsuite/gm2/linking/libarchive/pass/m.mod
  7819a0ba8fda65020ba1ae07ac6fce7b  gcc/testsuite/gm2/linking/verbose/pass/hello.mod
! a1cf4dc2de5b7bfaec2b1559277025ab  gcc/testsuite/gm2/linking/verbose/pass/linking-verbose-pass.exp
  7f1f780a9f09bc630acf35993e9ad143  gcc/testsuite/gm2/pim/fail/TestLong3.mod
  53c2be4129dfbffffa2e6020dad0d60a  gcc/testsuite/gm2/pim/fail/TestLong6.mod
! f4a1f779e00c0da979b4b410d9cf9d64  gcc/testsuite/gm2/pim/fail/a.def
  0055acf9496be077a892c8cd68e2dad7  gcc/testsuite/gm2/pim/fail/assignbounds.mod
  ae2a310af406298619df341180d04311  gcc/testsuite/gm2/pim/fail/assignsubrange.mod
  0ada22f99bc8301af1fee59f6539d4a4  gcc/testsuite/gm2/pim/fail/assignsubrange2.mod
! 6879ded9c8b201a5a4df3bb922606165  gcc/testsuite/gm2/pim/fail/b.def
! 020fef77f33e96c63eb4f054e5369a7e  gcc/testsuite/gm2/pim/fail/bad.def
  77c56b6eef721da24ade0ed109842bc8  gcc/testsuite/gm2/pim/fail/badbecomes.mod
  db7436cc6948424e65700d7b6597862f  gcc/testsuite/gm2/pim/fail/badconst.mod
  135de6d4b12537bab16841811ec73ec7  gcc/testsuite/gm2/pim/fail/badexpression.mod
  2e24a3e28841ca8e384564b7acfa33e3  gcc/testsuite/gm2/pim/fail/badexpression2.mod
--- 108686,108711 ----
  7073078d3a767f64d74a7c6a946627dd  gcc/testsuite/gm2/link/pimc/pass/testwrapc.mod
  01b4a3c4c4320ca3d0e3c2029589f9ff  gcc/testsuite/gm2/linking/fail/badimp.def
  e82da3fe10ee926313256a79e605a816  gcc/testsuite/gm2/linking/fail/badimp.mod
! 3867550fcfd67e7e61915491dfcc312b  gcc/testsuite/gm2/linking/fail/linking-fail.exp
  12f2f0e87d8f3d594a1aafa133621521  gcc/testsuite/gm2/linking/fail/testbadimp.mod
  597ea84fb3ecf81fd258fdb6e08e23d0  gcc/testsuite/gm2/linking/libarchive/pass/c.c
! d13be1d83247679c47e88bb48d20dc8f  gcc/testsuite/gm2/linking/libarchive/pass/c.def
! 5d2386fa9f174ded92a5a8529b584da7  gcc/testsuite/gm2/linking/libarchive/pass/d.def
! 20206f6795de7dbaf5cb964799ba0897  gcc/testsuite/gm2/linking/libarchive/pass/e.def
! 9a7c285095cadcba5e5d29f1d75297f1  gcc/testsuite/gm2/linking/libarchive/pass/linking-libarchive-pass.exp
  5b02e5fe6d2b26e7cb50346d3ab00754  gcc/testsuite/gm2/linking/libarchive/pass/m.mod
  7819a0ba8fda65020ba1ae07ac6fce7b  gcc/testsuite/gm2/linking/verbose/pass/hello.mod
! c4fc5432d8c74c0c43af163c5edd9d2c  gcc/testsuite/gm2/linking/verbose/pass/linking-verbose-pass.exp
  7f1f780a9f09bc630acf35993e9ad143  gcc/testsuite/gm2/pim/fail/TestLong3.mod
  53c2be4129dfbffffa2e6020dad0d60a  gcc/testsuite/gm2/pim/fail/TestLong6.mod
! 7b441e67c6daad9206a4707ec96d7d0b  gcc/testsuite/gm2/pim/fail/a.def
  0055acf9496be077a892c8cd68e2dad7  gcc/testsuite/gm2/pim/fail/assignbounds.mod
  ae2a310af406298619df341180d04311  gcc/testsuite/gm2/pim/fail/assignsubrange.mod
  0ada22f99bc8301af1fee59f6539d4a4  gcc/testsuite/gm2/pim/fail/assignsubrange2.mod
! b9fa964457c3c421263286868f0ce1f0  gcc/testsuite/gm2/pim/fail/b.def
! 745fff62ffeb3fa456cc97546040a514  gcc/testsuite/gm2/pim/fail/bad.def
  77c56b6eef721da24ade0ed109842bc8  gcc/testsuite/gm2/pim/fail/badbecomes.mod
+ 46cf79e980db73f5a55ff27f1403d123  gcc/testsuite/gm2/pim/fail/badbecomes2.mod
  db7436cc6948424e65700d7b6597862f  gcc/testsuite/gm2/pim/fail/badconst.mod
  135de6d4b12537bab16841811ec73ec7  gcc/testsuite/gm2/pim/fail/badexpression.mod
  2e24a3e28841ca8e384564b7acfa33e3  gcc/testsuite/gm2/pim/fail/badexpression2.mod
*************** db7436cc6948424e65700d7b6597862f  gcc/te
*** 101497,101502 ****
--- 108713,108721 ----
  3cd3393b9ababea5806a0cace8d0ebbc  gcc/testsuite/gm2/pim/fail/badifin.mod
  8805471600280b26d1436d6cfcff4ac9  gcc/testsuite/gm2/pim/fail/badparam.mod
  06e24a2d59b14219f627f48df32c5901  gcc/testsuite/gm2/pim/fail/badparam2.mod
+ 13f6eaffdf8fc096d373469d4a6bda4e  gcc/testsuite/gm2/pim/fail/badparamset1.mod
+ 4426e72e31b4f6962c4971592c821d2d  gcc/testsuite/gm2/pim/fail/badparamset2.mod
+ 551f1af6241b74dc3e92fa0c04c98dc0  gcc/testsuite/gm2/pim/fail/badparamtype.mod
  5d93449a02b33b6c2449fb7d565b3f70  gcc/testsuite/gm2/pim/fail/badpointer.mod
  2ae2cd34369ca940ee1745b82f71bc5e  gcc/testsuite/gm2/pim/fail/badpointer2.mod
  32fe5d6d49f5d1c2c191cf864bc0f191  gcc/testsuite/gm2/pim/fail/badpointer3.mod
*************** dbe65c434f0a6b28ab79a771b3662b3f  gcc/te
*** 101513,101518 ****
--- 108732,108738 ----
  e9acdfa551c199719682e8ff1385a93b  gcc/testsuite/gm2/pim/fail/badset5.mod
  30d4798fcbacf399edca84abb5a72c04  gcc/testsuite/gm2/pim/fail/badset6.mod
  e7320c086510922ecadf60cbdfcaed03  gcc/testsuite/gm2/pim/fail/badset7.mod
+ 6487f8878c7bf554de6f94998daa92cc  gcc/testsuite/gm2/pim/fail/badsyntaxset1.mod
  c0a1e7a398973481be6f30c11eee5bae  gcc/testsuite/gm2/pim/fail/badtype.mod
  91ac07218947f6393b3f0010f3bc2bca  gcc/testsuite/gm2/pim/fail/badtype2.mod
  3005117cf02eff524c88b0f70386ab9c  gcc/testsuite/gm2/pim/fail/badtypes.mod
*************** c08ed0a5562d22ab62d13213541fcf63  gcc/te
*** 101539,101545 ****
  9ef4769bf6ee7b9e2b95cbde24aca032  gcc/testsuite/gm2/pim/fail/forloop.mod
  8c952329bcbaf0b1ee0b8952a3b94b82  gcc/testsuite/gm2/pim/fail/forloopby.mod
  5aa9ea61b8279a2548ef04550b219d9c  gcc/testsuite/gm2/pim/fail/func.mod
! 2cd4667215afa0d15de23c0c1eb13225  gcc/testsuite/gm2/pim/fail/good.def
  d923e158bb4304b26276fbaa8e50d9a4  gcc/testsuite/gm2/pim/fail/good.mod
  7c57e05e47bb0f1a3586d50ba50e60ec  gcc/testsuite/gm2/pim/fail/highice.mod
  d0fe89691db5ca3450f7ad712cc5ee70  gcc/testsuite/gm2/pim/fail/import.mod
--- 108759,108765 ----
  9ef4769bf6ee7b9e2b95cbde24aca032  gcc/testsuite/gm2/pim/fail/forloop.mod
  8c952329bcbaf0b1ee0b8952a3b94b82  gcc/testsuite/gm2/pim/fail/forloopby.mod
  5aa9ea61b8279a2548ef04550b219d9c  gcc/testsuite/gm2/pim/fail/func.mod
! 3ae5bd01bd9ce0c128ef347840b39755  gcc/testsuite/gm2/pim/fail/good.def
  d923e158bb4304b26276fbaa8e50d9a4  gcc/testsuite/gm2/pim/fail/good.mod
  7c57e05e47bb0f1a3586d50ba50e60ec  gcc/testsuite/gm2/pim/fail/highice.mod
  d0fe89691db5ca3450f7ad712cc5ee70  gcc/testsuite/gm2/pim/fail/import.mod
*************** b427db0884d2f8b091058ee61533c919  gcc/te
*** 101559,101565 ****
  0558acf54770c349f1d2896416c431cd  gcc/testsuite/gm2/pim/fail/opaque2.mod
  dbc7f420f29d7f33702b0a087b13dfe5  gcc/testsuite/gm2/pim/fail/opasfail.mod
  faec561d3f04b0e2ce0744d90d7cfc89  gcc/testsuite/gm2/pim/fail/opcpfail.mod
! 17921f6a57a90644047ca3dcf1e35051  gcc/testsuite/gm2/pim/fail/pim-fail.exp
  5616ced320271fc3aa4b9aabbf232be6  gcc/testsuite/gm2/pim/fail/procmod.mod
  c3417d448fb9fb98d8dc4a12ef842bfe  gcc/testsuite/gm2/pim/fail/rotate.mod
  657c9c77d4fdc16a6981c1a9016b96bd  gcc/testsuite/gm2/pim/fail/rotate2.mod
--- 108779,108785 ----
  0558acf54770c349f1d2896416c431cd  gcc/testsuite/gm2/pim/fail/opaque2.mod
  dbc7f420f29d7f33702b0a087b13dfe5  gcc/testsuite/gm2/pim/fail/opasfail.mod
  faec561d3f04b0e2ce0744d90d7cfc89  gcc/testsuite/gm2/pim/fail/opcpfail.mod
! a69969ecc761c89b5bdf87a58fc4104e  gcc/testsuite/gm2/pim/fail/pim-fail.exp
  5616ced320271fc3aa4b9aabbf232be6  gcc/testsuite/gm2/pim/fail/procmod.mod
  c3417d448fb9fb98d8dc4a12ef842bfe  gcc/testsuite/gm2/pim/fail/rotate.mod
  657c9c77d4fdc16a6981c1a9016b96bd  gcc/testsuite/gm2/pim/fail/rotate2.mod
*************** b5d72ddf37fa215a8a2ba4553362cbfd  gcc/te
*** 101573,101578 ****
--- 108793,108801 ----
  db64b3313172b59590b6f9b32f53a1ce  gcc/testsuite/gm2/pim/fail/shift2.mod
  571ec1fadb9b82dc9bc0fa9c60f3f97d  gcc/testsuite/gm2/pim/fail/strconst.def
  8aa2d8325556f352b6b882fd4cd11895  gcc/testsuite/gm2/pim/fail/subrange7.mod
+ 5083c906d07f937882178cefe6402cb6  gcc/testsuite/gm2/pim/fail/tinyadr.mod
+ 8e5aab038017a365fd18f47d250ad74e  gcc/testsuite/gm2/pim/fail/tinyconst.mod
+ fee9872b16570ba80886c91358d5072a  gcc/testsuite/gm2/pim/fail/tinyfor4.mod
  566ed8aac243c2ae03189af351fdb2f7  gcc/testsuite/gm2/pim/fail/unary.mod
  6b2aae15f03b3b527c6b65def68372e1  gcc/testsuite/gm2/pim/fail/undeclared.mod
  73b06c803daee19e6d765dda2acd92af  gcc/testsuite/gm2/pim/fail/val.mod
*************** db64b3313172b59590b6f9b32f53a1ce  gcc/te
*** 101580,101595 ****
  72e35287ef686c8b396c3bf22387eead  gcc/testsuite/gm2/pim/fail/wordconst.mod
  1f0526c0478c3774ed3cdec902a907f6  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.c
  fd6eb72232649a3b72bbfac8cd586dab  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.def
! d9381c573ba54033352079b207473d95  gcc/testsuite/gm2/pim/intrinsic/run/pass/pim-intrinsic-run-pass.exp
  1f09625540923df684a0c3405fee1e92  gcc/testsuite/gm2/pim/intrinsic/run/pass/test.mod
  0b88c6a2cfbd995aaf3585fec521f5ec  gcc/testsuite/gm2/pim/no-options/run/pass/integer.mod
! c4ab985a0ef10703c5ec7619b2b55869  gcc/testsuite/gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp
  121645d120989117b58eed5131eeb2d3  gcc/testsuite/gm2/pim/options/bounds/fail/IdentifierBug.mod
! 511fffe8b94c9fa2c800d6840b6abcb2  gcc/testsuite/gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp
! f5563548ef1fdbdcb312e81e4b06ca33  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.def
  838ec2d9113314f57cbcb8d3e784174a  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.mod
  fbc17565218bf6416842770d3da67ef5  gcc/testsuite/gm2/pim/options/optimize/run/pass/concat.mod
! 618c022604bc001d33e6c0544fccfcee  gcc/testsuite/gm2/pim/options/optimize/run/pass/pim-options-optimize-run-pass.exp
  cee505de5fa1b51118f12fcc7bbed319  gcc/testsuite/gm2/pim/options/optimize/run/pass/testadd.mod
  9b4ff834f4fda732f403341ef20fcb41  gcc/testsuite/gm2/pim/pass/ABSBug.mod
  e026269fe28e5f09779af73f2cea83b1  gcc/testsuite/gm2/pim/pass/TestLong4.mod
--- 108803,108818 ----
  72e35287ef686c8b396c3bf22387eead  gcc/testsuite/gm2/pim/fail/wordconst.mod
  1f0526c0478c3774ed3cdec902a907f6  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.c
  fd6eb72232649a3b72bbfac8cd586dab  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.def
! f1f7d3aaafb0b23f628d39c48f7197fb  gcc/testsuite/gm2/pim/intrinsic/run/pass/pim-intrinsic-run-pass.exp
  1f09625540923df684a0c3405fee1e92  gcc/testsuite/gm2/pim/intrinsic/run/pass/test.mod
  0b88c6a2cfbd995aaf3585fec521f5ec  gcc/testsuite/gm2/pim/no-options/run/pass/integer.mod
! b073db368dc37de3dcb33715826fbe06  gcc/testsuite/gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp
  121645d120989117b58eed5131eeb2d3  gcc/testsuite/gm2/pim/options/bounds/fail/IdentifierBug.mod
! 137f55717d4aa11445cf2c2d5f3444e4  gcc/testsuite/gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp
! d7a3a45f9e88128aa59e5c79f24a628b  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.def
  838ec2d9113314f57cbcb8d3e784174a  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.mod
  fbc17565218bf6416842770d3da67ef5  gcc/testsuite/gm2/pim/options/optimize/run/pass/concat.mod
! 7c7c809552d42a50bff70592ebf6b2b0  gcc/testsuite/gm2/pim/options/optimize/run/pass/pim-options-optimize-run-pass.exp
  cee505de5fa1b51118f12fcc7bbed319  gcc/testsuite/gm2/pim/options/optimize/run/pass/testadd.mod
  9b4ff834f4fda732f403341ef20fcb41  gcc/testsuite/gm2/pim/pass/ABSBug.mod
  e026269fe28e5f09779af73f2cea83b1  gcc/testsuite/gm2/pim/pass/TestLong4.mod
*************** c880ff974ae25f51a15b2a40d5700609  gcc/te
*** 101642,101648 ****
  92f0a1750a5727d57578c68264b5def3  gcc/testsuite/gm2/pim/pass/assignment3.mod
  985baf679a37178096ce38f5b066e1c8  gcc/testsuite/gm2/pim/pass/assignment4.mod
  a65219c98879b7453a7b11a7fef0d98e  gcc/testsuite/gm2/pim/pass/badpointer.mod
! 103a55e489a5e7b78f3462bbdacac72a  gcc/testsuite/gm2/pim/pass/bits32.def
  ffe0e0d501258e827ecfa9e1e1d13ee9  gcc/testsuite/gm2/pim/pass/bits32.mod
  488bd49020a738f28e5f0a981991166a  gcc/testsuite/gm2/pim/pass/bits32i.mod
  e81f61ff93f1ed33729a6f702c840bff  gcc/testsuite/gm2/pim/pass/bitset.mod
--- 108865,108871 ----
  92f0a1750a5727d57578c68264b5def3  gcc/testsuite/gm2/pim/pass/assignment3.mod
  985baf679a37178096ce38f5b066e1c8  gcc/testsuite/gm2/pim/pass/assignment4.mod
  a65219c98879b7453a7b11a7fef0d98e  gcc/testsuite/gm2/pim/pass/badpointer.mod
! 0de838ab6be4f1cc58a0f7c639b86808  gcc/testsuite/gm2/pim/pass/bits32.def
  ffe0e0d501258e827ecfa9e1e1d13ee9  gcc/testsuite/gm2/pim/pass/bits32.mod
  488bd49020a738f28e5f0a981991166a  gcc/testsuite/gm2/pim/pass/bits32i.mod
  e81f61ff93f1ed33729a6f702c840bff  gcc/testsuite/gm2/pim/pass/bitset.mod
*************** cfe6e210bd41e1ce630c6a06b11ef0a1  gcc/te
*** 101653,101659 ****
  77009e89e217696e6333e4f50b495de3  gcc/testsuite/gm2/pim/pass/bitsetfunc.mod
  f514c8b223d38484bea5e885ef3d32e9  gcc/testsuite/gm2/pim/pass/block.mod
  ca6e5474515e87eca56b65ebfae71927  gcc/testsuite/gm2/pim/pass/blockindirect.mod
! ff0994c2fb6f9b79260738bf774f0467  gcc/testsuite/gm2/pim/pass/builtin.def
  680b22cdb8d54ac083375aa91fade29f  gcc/testsuite/gm2/pim/pass/builtin.mod
  7819e37d90c823daf7519d7cf3460a2e  gcc/testsuite/gm2/pim/pass/builtin2.mod
  c2bdb639f247cb34f739a2f1a9938476  gcc/testsuite/gm2/pim/pass/builtinconst.mod
--- 108876,108882 ----
  77009e89e217696e6333e4f50b495de3  gcc/testsuite/gm2/pim/pass/bitsetfunc.mod
  f514c8b223d38484bea5e885ef3d32e9  gcc/testsuite/gm2/pim/pass/block.mod
  ca6e5474515e87eca56b65ebfae71927  gcc/testsuite/gm2/pim/pass/blockindirect.mod
! 45c9d62b585bfbc820d14b465f3ed334  gcc/testsuite/gm2/pim/pass/builtin.def
  680b22cdb8d54ac083375aa91fade29f  gcc/testsuite/gm2/pim/pass/builtin.mod
  7819e37d90c823daf7519d7cf3460a2e  gcc/testsuite/gm2/pim/pass/builtin2.mod
  c2bdb639f247cb34f739a2f1a9938476  gcc/testsuite/gm2/pim/pass/builtinconst.mod
*************** a001cffa28e8a83a6ee3c4c4f4923938  gcc/te
*** 101666,101672 ****
  09c34e333ce6e0fec99402ef3ec06cbd  gcc/testsuite/gm2/pim/pass/charset.mod
  8e07e59517c05396c84ba115c9e6b4dc  gcc/testsuite/gm2/pim/pass/charset2.mod
  01691912ad8fee8a7774966522a21b23  gcc/testsuite/gm2/pim/pass/charset3.mod
! c8daa840482cf4bbd0a653eeba9a4695  gcc/testsuite/gm2/pim/pass/checkparm.def
  5941e60884963ce74e59619c35846091  gcc/testsuite/gm2/pim/pass/checkparm.mod
  721c031d59eeffce10505e9b16163231  gcc/testsuite/gm2/pim/pass/colour.mod
  84efdaa2fd55367d8262aaa808a635f8  gcc/testsuite/gm2/pim/pass/comment1.mod
--- 108889,108895 ----
  09c34e333ce6e0fec99402ef3ec06cbd  gcc/testsuite/gm2/pim/pass/charset.mod
  8e07e59517c05396c84ba115c9e6b4dc  gcc/testsuite/gm2/pim/pass/charset2.mod
  01691912ad8fee8a7774966522a21b23  gcc/testsuite/gm2/pim/pass/charset3.mod
! 06ea08ca3c09e4d53b269ecf450c7b42  gcc/testsuite/gm2/pim/pass/checkparm.def
  5941e60884963ce74e59619c35846091  gcc/testsuite/gm2/pim/pass/checkparm.mod
  721c031d59eeffce10505e9b16163231  gcc/testsuite/gm2/pim/pass/colour.mod
  84efdaa2fd55367d8262aaa808a635f8  gcc/testsuite/gm2/pim/pass/comment1.mod
*************** da5c4a98aa9d8d3e32b509137288b3c5  gcc/te
*** 101684,101691 ****
  4d653dfa70d668596c153ec4b27e5d18  gcc/testsuite/gm2/pim/pass/convert3.mod
  a9de62ee5fe3a819af9a0ebae89caba1  gcc/testsuite/gm2/pim/pass/convert4.mod
  388393520871e25e1926856dc63d7f8d  gcc/testsuite/gm2/pim/pass/danglingelse.mod
! 9d7cd26a727116b7b55d79ee42f1f77d  gcc/testsuite/gm2/pim/pass/debug
! 2b77ea0f3f928396d437c6ec1c30dba7  gcc/testsuite/gm2/pim/pass/defset.def
  fd44b2f7753ad91db900a8417da15c12  gcc/testsuite/gm2/pim/pass/defset.mod
  b253c8e5175c4cb6983aece8bf60dd17  gcc/testsuite/gm2/pim/pass/deftype.mod
  48ec94954ca455ea9c47d430a44f763b  gcc/testsuite/gm2/pim/pass/divaddr.mod
--- 108907,108914 ----
  4d653dfa70d668596c153ec4b27e5d18  gcc/testsuite/gm2/pim/pass/convert3.mod
  a9de62ee5fe3a819af9a0ebae89caba1  gcc/testsuite/gm2/pim/pass/convert4.mod
  388393520871e25e1926856dc63d7f8d  gcc/testsuite/gm2/pim/pass/danglingelse.mod
! c2aa2fc813c160457de0fea6dda19b67  gcc/testsuite/gm2/pim/pass/debug
! 61775b3e7a7d78fcbec7e3b4aa577830  gcc/testsuite/gm2/pim/pass/defset.def
  fd44b2f7753ad91db900a8417da15c12  gcc/testsuite/gm2/pim/pass/defset.mod
  b253c8e5175c4cb6983aece8bf60dd17  gcc/testsuite/gm2/pim/pass/deftype.mod
  48ec94954ca455ea9c47d430a44f763b  gcc/testsuite/gm2/pim/pass/divaddr.mod
*************** d1d27d2d63c6c5064aba34a58efe74b3  gcc/te
*** 101700,101708 ****
  56286f2c3e92e15a7825618ae140091a  gcc/testsuite/gm2/pim/pass/for1.mod
  c5ba6a075ea2d754fd6c5cf5d0f63063  gcc/testsuite/gm2/pim/pass/forloop2.mod
  10d682bfd9139721b0c4ea187465de5b  gcc/testsuite/gm2/pim/pass/forloopby2.mod
  a1c6c93cfe8fff16854d0c7e5cc45fbf  gcc/testsuite/gm2/pim/pass/function.mod
  ad0050bee37026a93c829a61da2f0938  gcc/testsuite/gm2/pim/pass/function2.mod
! 06cb2ef9761f6e2eb8735aa91f6a2784  gcc/testsuite/gm2/pim/pass/gcd.def
  a6f302cface0c9bfc31e9d707ec6031d  gcc/testsuite/gm2/pim/pass/gcd.mod
  b5034ac1aeec90dc2d9a4b8e4e1db428  gcc/testsuite/gm2/pim/pass/getconst.mod
  d92de5a4673ded69670acbdd4161f6e2  gcc/testsuite/gm2/pim/pass/goodifin.mod
--- 108923,108933 ----
  56286f2c3e92e15a7825618ae140091a  gcc/testsuite/gm2/pim/pass/for1.mod
  c5ba6a075ea2d754fd6c5cf5d0f63063  gcc/testsuite/gm2/pim/pass/forloop2.mod
  10d682bfd9139721b0c4ea187465de5b  gcc/testsuite/gm2/pim/pass/forloopby2.mod
+ 310d5b0ee05fb7018a2d7e1fac03e86b  gcc/testsuite/gm2/pim/pass/forloopnulchar.mod
+ 980e2dfb1098fe6b13c71f6fefe6cd49  gcc/testsuite/gm2/pim/pass/forward.mod
  a1c6c93cfe8fff16854d0c7e5cc45fbf  gcc/testsuite/gm2/pim/pass/function.mod
  ad0050bee37026a93c829a61da2f0938  gcc/testsuite/gm2/pim/pass/function2.mod
! 7c7930582d4a3991152a94eab54452e1  gcc/testsuite/gm2/pim/pass/gcd.def
  a6f302cface0c9bfc31e9d707ec6031d  gcc/testsuite/gm2/pim/pass/gcd.mod
  b5034ac1aeec90dc2d9a4b8e4e1db428  gcc/testsuite/gm2/pim/pass/getconst.mod
  d92de5a4673ded69670acbdd4161f6e2  gcc/testsuite/gm2/pim/pass/goodifin.mod
*************** d37915b685c2a7c61b2bd33dc4233b8f  gcc/te
*** 101710,101720 ****
  6af6cef93923e24daf5f81ce856c24e3  gcc/testsuite/gm2/pim/pass/goodprocint.mod
  e76b1c3500d64c1264105e435866a79a  gcc/testsuite/gm2/pim/pass/goodprocint3.mod
  45f32c78d6fe03bad619ad83eb7210f0  gcc/testsuite/gm2/pim/pass/hello.mod
  deec7e02a3ff68e431b9625fb1dc63b5  gcc/testsuite/gm2/pim/pass/highexp.mod
  f9cd141a6b4217bff724f01cca0dd4dd  gcc/testsuite/gm2/pim/pass/impa.mod
! 6e9cd325265bb26378425dad11be8b1e  gcc/testsuite/gm2/pim/pass/impb.def
  67e33a57d6237c7251dd814eedb08fab  gcc/testsuite/gm2/pim/pass/impb.mod
! 0bc88675121a921de6e82cac0a91ef59  gcc/testsuite/gm2/pim/pass/impc.def
  e332ab4e2664a14ad36fe54036abfdad  gcc/testsuite/gm2/pim/pass/impc.mod
  9a34b3a6cbf1ebc596a2f7a3b404ed18  gcc/testsuite/gm2/pim/pass/impd.mod
  fa811f35c4e3ac42ffc5083b7a32fc6f  gcc/testsuite/gm2/pim/pass/impe.mod
--- 108935,108946 ----
  6af6cef93923e24daf5f81ce856c24e3  gcc/testsuite/gm2/pim/pass/goodprocint.mod
  e76b1c3500d64c1264105e435866a79a  gcc/testsuite/gm2/pim/pass/goodprocint3.mod
  45f32c78d6fe03bad619ad83eb7210f0  gcc/testsuite/gm2/pim/pass/hello.mod
+ 05a8a29ef9946b4cedf81b22c2379652  gcc/testsuite/gm2/pim/pass/hexstring.mod
  deec7e02a3ff68e431b9625fb1dc63b5  gcc/testsuite/gm2/pim/pass/highexp.mod
  f9cd141a6b4217bff724f01cca0dd4dd  gcc/testsuite/gm2/pim/pass/impa.mod
! 7fcce148cc6f79808942e1d78a86c6be  gcc/testsuite/gm2/pim/pass/impb.def
  67e33a57d6237c7251dd814eedb08fab  gcc/testsuite/gm2/pim/pass/impb.mod
! 238c1c0991baf8495a3ae9cc41926f4a  gcc/testsuite/gm2/pim/pass/impc.def
  e332ab4e2664a14ad36fe54036abfdad  gcc/testsuite/gm2/pim/pass/impc.mod
  9a34b3a6cbf1ebc596a2f7a3b404ed18  gcc/testsuite/gm2/pim/pass/impd.mod
  fa811f35c4e3ac42ffc5083b7a32fc6f  gcc/testsuite/gm2/pim/pass/impe.mod
*************** a025a8fc705c2013cedd85c1b8b0b0b4  gcc/te
*** 101726,101738 ****
  04c715e96ab247ecdcdb73c2d9081ff8  gcc/testsuite/gm2/pim/pass/impk.mod
  1a50d3515abda343ad2ebeffd8e0e05e  gcc/testsuite/gm2/pim/pass/impl.mod
  e57ae096b6d3ce135039ecb411a3d678  gcc/testsuite/gm2/pim/pass/impm.mod
! aa2dcda62d29a9b78f8b22c686587bbe  gcc/testsuite/gm2/pim/pass/impn.def
  748147602b1ca4c6d4605f38f392b114  gcc/testsuite/gm2/pim/pass/impn.mod
  008eea6d4f17932455979f0f9e20a039  gcc/testsuite/gm2/pim/pass/impo.mod
  6012a05b0fa3ca6ae1f45d1aa433efb3  gcc/testsuite/gm2/pim/pass/imports.mod
! cc7f66eabf7415d41c5e1fd96e340bd8  gcc/testsuite/gm2/pim/pass/impp.def
  b78b3932342406cf8f0fc91232816931  gcc/testsuite/gm2/pim/pass/impp.mod
! 0412aa26cfacbe210616a7e4f579e188  gcc/testsuite/gm2/pim/pass/impq.def
  3fe380de94ec2b09b3e77d5633da84c6  gcc/testsuite/gm2/pim/pass/impq.mod
  e125e0826c7eaee305081b141f464a19  gcc/testsuite/gm2/pim/pass/incompsets.mod
  02ba4397a059292edb6d5f16d993ca2d  gcc/testsuite/gm2/pim/pass/index.mod
--- 108952,108964 ----
  04c715e96ab247ecdcdb73c2d9081ff8  gcc/testsuite/gm2/pim/pass/impk.mod
  1a50d3515abda343ad2ebeffd8e0e05e  gcc/testsuite/gm2/pim/pass/impl.mod
  e57ae096b6d3ce135039ecb411a3d678  gcc/testsuite/gm2/pim/pass/impm.mod
! 1b299669c9a6df6a0b8a9fae0337d714  gcc/testsuite/gm2/pim/pass/impn.def
  748147602b1ca4c6d4605f38f392b114  gcc/testsuite/gm2/pim/pass/impn.mod
  008eea6d4f17932455979f0f9e20a039  gcc/testsuite/gm2/pim/pass/impo.mod
  6012a05b0fa3ca6ae1f45d1aa433efb3  gcc/testsuite/gm2/pim/pass/imports.mod
! 5975a30b7bc52e4a8b08dd4d928bcdf1  gcc/testsuite/gm2/pim/pass/impp.def
  b78b3932342406cf8f0fc91232816931  gcc/testsuite/gm2/pim/pass/impp.mod
! dfb1c30c1dc89ba3da5aca79f8957753  gcc/testsuite/gm2/pim/pass/impq.def
  3fe380de94ec2b09b3e77d5633da84c6  gcc/testsuite/gm2/pim/pass/impq.mod
  e125e0826c7eaee305081b141f464a19  gcc/testsuite/gm2/pim/pass/incompsets.mod
  02ba4397a059292edb6d5f16d993ca2d  gcc/testsuite/gm2/pim/pass/index.mod
*************** b7ada71d9e7b4394f7021bbf71eaeeda  gcc/te
*** 101768,101780 ****
  053901541e388ad6c7cb19dca6769c96  gcc/testsuite/gm2/pim/pass/maxreal2.mod
  919cb84f1d06b06e8423042940ee3a3c  gcc/testsuite/gm2/pim/pass/minmaxconst.mod
  e6891b2d8a9ac3128b4ffe0ab2c070fb  gcc/testsuite/gm2/pim/pass/minmaxconst2.mod
  281d61c1490184a71dd57bc1d9514574  gcc/testsuite/gm2/pim/pass/modaddr.mod
  a01824e9392048cdee8e74897973abad  gcc/testsuite/gm2/pim/pass/multaddr.mod
  238b45a9809404f5deabcf8889b09ef6  gcc/testsuite/gm2/pim/pass/multiple.mod
  b408764127983c912f0b8184f1c1283b  gcc/testsuite/gm2/pim/pass/multiset.mod
  f1765eec0788d176a0b5bc918d962a3f  gcc/testsuite/gm2/pim/pass/multtypes.mod
! 03fe1380f1e016902e4b0ffc7488805f  gcc/testsuite/gm2/pim/pass/mydef.def
! b0524a8988168d0c863e912e96044cfa  gcc/testsuite/gm2/pim/pass/negatives.def
  171263f6ef4cb87e243053b785bef481  gcc/testsuite/gm2/pim/pass/negatives.mod
  5a29fbd25cb9047738f1c605ed496aca  gcc/testsuite/gm2/pim/pass/nested.mod
  382a12a60e4e77c8fca18547e1fdf1ba  gcc/testsuite/gm2/pim/pass/nested2.mod
--- 108994,109009 ----
  053901541e388ad6c7cb19dca6769c96  gcc/testsuite/gm2/pim/pass/maxreal2.mod
  919cb84f1d06b06e8423042940ee3a3c  gcc/testsuite/gm2/pim/pass/minmaxconst.mod
  e6891b2d8a9ac3128b4ffe0ab2c070fb  gcc/testsuite/gm2/pim/pass/minmaxconst2.mod
+ 7a537ee011b5255055b66ef5f0e2f9ce  gcc/testsuite/gm2/pim/pass/minmaxreal.mod
+ 27d3d44c450a80c340ad581a173526fb  gcc/testsuite/gm2/pim/pass/minmaxreal2.mod
+ 07862941f243c6f3fd1eebef230aabc1  gcc/testsuite/gm2/pim/pass/minmaxreal3.mod
  281d61c1490184a71dd57bc1d9514574  gcc/testsuite/gm2/pim/pass/modaddr.mod
  a01824e9392048cdee8e74897973abad  gcc/testsuite/gm2/pim/pass/multaddr.mod
  238b45a9809404f5deabcf8889b09ef6  gcc/testsuite/gm2/pim/pass/multiple.mod
  b408764127983c912f0b8184f1c1283b  gcc/testsuite/gm2/pim/pass/multiset.mod
  f1765eec0788d176a0b5bc918d962a3f  gcc/testsuite/gm2/pim/pass/multtypes.mod
! 176ec2eb27f33be08dc64e754b10034b  gcc/testsuite/gm2/pim/pass/mydef.def
! 325907883c9e336769a1db2b2ca21c8a  gcc/testsuite/gm2/pim/pass/negatives.def
  171263f6ef4cb87e243053b785bef481  gcc/testsuite/gm2/pim/pass/negatives.mod
  5a29fbd25cb9047738f1c605ed496aca  gcc/testsuite/gm2/pim/pass/nested.mod
  382a12a60e4e77c8fca18547e1fdf1ba  gcc/testsuite/gm2/pim/pass/nested2.mod
*************** e3a72a27ab4d809b26255a90d6d93b7b  gcc/te
*** 101786,101803 ****
  716188df97e04820a8af6c607cef570c  gcc/testsuite/gm2/pim/pass/nestedfor.mod
  d22e0d52679637cbf353b2a3ca805130  gcc/testsuite/gm2/pim/pass/nestedif.mod
  b7e8089bc85513d14963311687c21a0b  gcc/testsuite/gm2/pim/pass/nestedset.mod
  23f18c1c8f0e5f5b526a360f7cd5695d  gcc/testsuite/gm2/pim/pass/onezero.mod
! 9ad64983ff09a698571deef1ba482224  gcc/testsuite/gm2/pim/pass/opaque.def
  c6460639ba2522774d63b3bd4d00fe6a  gcc/testsuite/gm2/pim/pass/opaque.mod
  024b3dc7f39261f7cb26e3b9a4978904  gcc/testsuite/gm2/pim/pass/opaque2.mod
! a3a0f8223b371ae670908562302d6745  gcc/testsuite/gm2/pim/pass/opaquetype.def
  8276cc5847d5e4575fd11a93a8bd75bd  gcc/testsuite/gm2/pim/pass/opaquetype.mod
  8c8832b3e89bc64fc68d7d46211eef77  gcc/testsuite/gm2/pim/pass/param.mod
  ebc16acf9ed12b25472f8c773e7d842c  gcc/testsuite/gm2/pim/pass/param2.mod
  bd475933f392bef7416e258b0eb945c6  gcc/testsuite/gm2/pim/pass/param3.mod
  e7805668ec3d48efeba5e19ed7892066  gcc/testsuite/gm2/pim/pass/parambool.mod
  598b668b9337903f963ece4b7fa88033  gcc/testsuite/gm2/pim/pass/paramreal.mod
! c889da81ddcbde1431eab818f85fab14  gcc/testsuite/gm2/pim/pass/pim-pass.exp
  2aa04112382dc8e76a8bb26656b620c5  gcc/testsuite/gm2/pim/pass/pimimp.mod
  87d499098309e1d7ec71c407846e083b  gcc/testsuite/gm2/pim/pass/pointer.mod
  1200610c2ddef6cc0f4a93499a630bd5  gcc/testsuite/gm2/pim/pass/procadr.mod
--- 109015,109034 ----
  716188df97e04820a8af6c607cef570c  gcc/testsuite/gm2/pim/pass/nestedfor.mod
  d22e0d52679637cbf353b2a3ca805130  gcc/testsuite/gm2/pim/pass/nestedif.mod
  b7e8089bc85513d14963311687c21a0b  gcc/testsuite/gm2/pim/pass/nestedset.mod
+ f0c264cd2fd831374d7ff201fd2355db  gcc/testsuite/gm2/pim/pass/nulcharcase.mod
+ 21d0bc70c0827a7cc774339b834044f6  gcc/testsuite/gm2/pim/pass/nulcharvar.mod
  23f18c1c8f0e5f5b526a360f7cd5695d  gcc/testsuite/gm2/pim/pass/onezero.mod
! 58269c0e29bfadcb5a9c7acca91ba6f6  gcc/testsuite/gm2/pim/pass/opaque.def
  c6460639ba2522774d63b3bd4d00fe6a  gcc/testsuite/gm2/pim/pass/opaque.mod
  024b3dc7f39261f7cb26e3b9a4978904  gcc/testsuite/gm2/pim/pass/opaque2.mod
! c2f6f0daad942ce0304b52a50c4c0110  gcc/testsuite/gm2/pim/pass/opaquetype.def
  8276cc5847d5e4575fd11a93a8bd75bd  gcc/testsuite/gm2/pim/pass/opaquetype.mod
  8c8832b3e89bc64fc68d7d46211eef77  gcc/testsuite/gm2/pim/pass/param.mod
  ebc16acf9ed12b25472f8c773e7d842c  gcc/testsuite/gm2/pim/pass/param2.mod
  bd475933f392bef7416e258b0eb945c6  gcc/testsuite/gm2/pim/pass/param3.mod
  e7805668ec3d48efeba5e19ed7892066  gcc/testsuite/gm2/pim/pass/parambool.mod
  598b668b9337903f963ece4b7fa88033  gcc/testsuite/gm2/pim/pass/paramreal.mod
! 20138f504822f5f676de5e67ae84cec6  gcc/testsuite/gm2/pim/pass/pim-pass.exp
  2aa04112382dc8e76a8bb26656b620c5  gcc/testsuite/gm2/pim/pass/pimimp.mod
  87d499098309e1d7ec71c407846e083b  gcc/testsuite/gm2/pim/pass/pointer.mod
  1200610c2ddef6cc0f4a93499a630bd5  gcc/testsuite/gm2/pim/pass/procadr.mod
*************** b3be01e4da4f58be9d98d04cd0085cbc  gcc/te
*** 101813,101825 ****
  a006deb2b0f2e97d9d9f794958383cd8  gcc/testsuite/gm2/pim/pass/procmod31.mod
  1e9f2ad44a7ac856a7ab2640e92afac8  gcc/testsuite/gm2/pim/pass/procmod4.mod
  7877ec402b339579d1fa9b7105c56adc  gcc/testsuite/gm2/pim/pass/procmod5.mod
! d821252944d8e4a01aca0155b4681878  gcc/testsuite/gm2/pim/pass/procmod6.def
  a52ca25defcaa06f6deff5d4726d312e  gcc/testsuite/gm2/pim/pass/procmod6.mod
  28f0bebaded1df0a074695b00219b8af  gcc/testsuite/gm2/pim/pass/procmod7.mod
  d8ccc6406f37da7909455b2105ba730d  gcc/testsuite/gm2/pim/pass/procmod8.mod
  449c7bb2f966d6a21efe23725b977ba6  gcc/testsuite/gm2/pim/pass/procmod9.mod
  eee2391736f958281bd80a26c06eaa1e  gcc/testsuite/gm2/pim/pass/proctype.mod
! d3dbe1cbd4986842e28881a29645225d  gcc/testsuite/gm2/pim/pass/proctype2.def
  4687686c1c7a8ec91eb97578d12ef6b8  gcc/testsuite/gm2/pim/pass/proctype3.mod
  7db4181faa89b7e33e59bac0d42c5f24  gcc/testsuite/gm2/pim/pass/proctype4.mod
  2764c22b17e3aed35cc1e1ad098d8948  gcc/testsuite/gm2/pim/pass/program.mod
--- 109044,109056 ----
  a006deb2b0f2e97d9d9f794958383cd8  gcc/testsuite/gm2/pim/pass/procmod31.mod
  1e9f2ad44a7ac856a7ab2640e92afac8  gcc/testsuite/gm2/pim/pass/procmod4.mod
  7877ec402b339579d1fa9b7105c56adc  gcc/testsuite/gm2/pim/pass/procmod5.mod
! 5c4f521766dafe9867b88c04d27d6cc7  gcc/testsuite/gm2/pim/pass/procmod6.def
  a52ca25defcaa06f6deff5d4726d312e  gcc/testsuite/gm2/pim/pass/procmod6.mod
  28f0bebaded1df0a074695b00219b8af  gcc/testsuite/gm2/pim/pass/procmod7.mod
  d8ccc6406f37da7909455b2105ba730d  gcc/testsuite/gm2/pim/pass/procmod8.mod
  449c7bb2f966d6a21efe23725b977ba6  gcc/testsuite/gm2/pim/pass/procmod9.mod
  eee2391736f958281bd80a26c06eaa1e  gcc/testsuite/gm2/pim/pass/proctype.mod
! b84564bb1fb7c6e56867692fc2741bd9  gcc/testsuite/gm2/pim/pass/proctype2.def
  4687686c1c7a8ec91eb97578d12ef6b8  gcc/testsuite/gm2/pim/pass/proctype3.mod
  7db4181faa89b7e33e59bac0d42c5f24  gcc/testsuite/gm2/pim/pass/proctype4.mod
  2764c22b17e3aed35cc1e1ad098d8948  gcc/testsuite/gm2/pim/pass/program.mod
*************** d3dbe1cbd4986842e28881a29645225d  gcc/te
*** 101828,101834 ****
  0304569045d8cb7150bff529f14fdb39  gcc/testsuite/gm2/pim/pass/ptrarray2.mod
  55ea4ffb039720c977f13f532dea66dd  gcc/testsuite/gm2/pim/pass/ptrarray3.mod
  47abed44bfdf839f3ca139cdb50753ea  gcc/testsuite/gm2/pim/pass/ptrcard.mod
! 5bbc11547aea903b653793e80900219a  gcc/testsuite/gm2/pim/pass/quads.def
  37bc64525628ee7ecb20ff1957d94218  gcc/testsuite/gm2/pim/pass/quads.mod
  0d83ca50ddb0c2cc0c0b13d64a1599d2  gcc/testsuite/gm2/pim/pass/real.mod
  ad4ec1aec7890e9297f6a8337d7127f6  gcc/testsuite/gm2/pim/pass/real2.mod
--- 109059,109065 ----
  0304569045d8cb7150bff529f14fdb39  gcc/testsuite/gm2/pim/pass/ptrarray2.mod
  55ea4ffb039720c977f13f532dea66dd  gcc/testsuite/gm2/pim/pass/ptrarray3.mod
  47abed44bfdf839f3ca139cdb50753ea  gcc/testsuite/gm2/pim/pass/ptrcard.mod
! 7fd8b134638bf113522351c738623071  gcc/testsuite/gm2/pim/pass/quads.def
  37bc64525628ee7ecb20ff1957d94218  gcc/testsuite/gm2/pim/pass/quads.mod
  0d83ca50ddb0c2cc0c0b13d64a1599d2  gcc/testsuite/gm2/pim/pass/real.mod
  ad4ec1aec7890e9297f6a8337d7127f6  gcc/testsuite/gm2/pim/pass/real2.mod
*************** ad4ec1aec7890e9297f6a8337d7127f6  gcc/te
*** 101841,101851 ****
  c5fa84af45085633d26e5b2aa981e9ec  gcc/testsuite/gm2/pim/pass/record1.mod
  972f20925d6449209e97da30c39855f7  gcc/testsuite/gm2/pim/pass/record10.mod
  810f2b56b9e944581f49b1ed39f6b196  gcc/testsuite/gm2/pim/pass/record11.mod
! 98d89d7ae19a2b15e7946009398ac570  gcc/testsuite/gm2/pim/pass/record12.def
! df339c8223ad485b595ce7caf73b2e74  gcc/testsuite/gm2/pim/pass/record13.def
! 70585321017fb0f75ab33b20c955ee3b  gcc/testsuite/gm2/pim/pass/record14.def
! 42a7e99a38bbe6236204f1ef37580c72  gcc/testsuite/gm2/pim/pass/record15.def
! aff3d4433fe0f0cbe7e1c399481d4084  gcc/testsuite/gm2/pim/pass/record16.def
  5096273474fcd79099dbb239305aaf28  gcc/testsuite/gm2/pim/pass/record2.mod
  3f9da29461462bc93acfbe4442d76a7f  gcc/testsuite/gm2/pim/pass/record3.mod
  489f0b8b3d648b38f6ea4fb1182474c9  gcc/testsuite/gm2/pim/pass/record4.mod
--- 109072,109082 ----
  c5fa84af45085633d26e5b2aa981e9ec  gcc/testsuite/gm2/pim/pass/record1.mod
  972f20925d6449209e97da30c39855f7  gcc/testsuite/gm2/pim/pass/record10.mod
  810f2b56b9e944581f49b1ed39f6b196  gcc/testsuite/gm2/pim/pass/record11.mod
! 2878a7c324968e1d257b1d730e6425ad  gcc/testsuite/gm2/pim/pass/record12.def
! 6f044284fd9b8e80ae1d277c7a7636d8  gcc/testsuite/gm2/pim/pass/record13.def
! 045515ea8802e3b807cbe738268699dd  gcc/testsuite/gm2/pim/pass/record14.def
! 1b9037bacd1c21f2f1eba0d2815e2a44  gcc/testsuite/gm2/pim/pass/record15.def
! d8f3e84dbc9f6cda8bf975ca865926a2  gcc/testsuite/gm2/pim/pass/record16.def
  5096273474fcd79099dbb239305aaf28  gcc/testsuite/gm2/pim/pass/record2.mod
  3f9da29461462bc93acfbe4442d76a7f  gcc/testsuite/gm2/pim/pass/record3.mod
  489f0b8b3d648b38f6ea4fb1182474c9  gcc/testsuite/gm2/pim/pass/record4.mod
*************** d9be681d6ca4e5de347d0d197fd6e1a1  gcc/te
*** 101859,101865 ****
  76cad0910073d24227d3f55e4771a3d1  gcc/testsuite/gm2/pim/pass/recordarray2.mod
  acfdeaa19c6ac31f80f4ff4daf94f512  gcc/testsuite/gm2/pim/pass/redef.mod
  3bcee76a5a70a53fce55f8df3522cb34  gcc/testsuite/gm2/pim/pass/set10.mod
! 851c7f25b05b53ebd2e786094db9a9c0  gcc/testsuite/gm2/pim/pass/set11.def
  a36c0c76727bc2db3ae0f892733c520c  gcc/testsuite/gm2/pim/pass/set11.mod
  db2d3c74d15d0066927cd473ad8689cb  gcc/testsuite/gm2/pim/pass/set12.mod
  73652663ffc74f2fea84f804607a6b96  gcc/testsuite/gm2/pim/pass/set4.mod
--- 109090,109096 ----
  76cad0910073d24227d3f55e4771a3d1  gcc/testsuite/gm2/pim/pass/recordarray2.mod
  acfdeaa19c6ac31f80f4ff4daf94f512  gcc/testsuite/gm2/pim/pass/redef.mod
  3bcee76a5a70a53fce55f8df3522cb34  gcc/testsuite/gm2/pim/pass/set10.mod
! c1e01ad1ee93a815df71e22b62b09d6c  gcc/testsuite/gm2/pim/pass/set11.def
  a36c0c76727bc2db3ae0f892733c520c  gcc/testsuite/gm2/pim/pass/set11.mod
  db2d3c74d15d0066927cd473ad8689cb  gcc/testsuite/gm2/pim/pass/set12.mod
  73652663ffc74f2fea84f804607a6b96  gcc/testsuite/gm2/pim/pass/set4.mod
*************** e82fbad0978538f729d25ee30164b833  gcc/te
*** 101915,101921 ****
  bd93ed27bb4295dac0b15c0a6d42dbec  gcc/testsuite/gm2/pim/pass/stringassign.mod
  8fba0e3a8dd422f9aa165f6e89c6f2b8  gcc/testsuite/gm2/pim/pass/stringopaq.mod
  c3b57326a6ac7273da7f438ea5ab5767  gcc/testsuite/gm2/pim/pass/strings.mod
! d299d2780564785c3ea5ee90461780bc  gcc/testsuite/gm2/pim/pass/strparam.def
  de47e30576839ab46e6eea6acf366d46  gcc/testsuite/gm2/pim/pass/strparam.mod
  cbf4b94771bced34db5c9e92b6a74452  gcc/testsuite/gm2/pim/pass/subrange.mod
  fb656fe6359dad713f876cf81f73d3ca  gcc/testsuite/gm2/pim/pass/subrange10.mod
--- 109146,109152 ----
  bd93ed27bb4295dac0b15c0a6d42dbec  gcc/testsuite/gm2/pim/pass/stringassign.mod
  8fba0e3a8dd422f9aa165f6e89c6f2b8  gcc/testsuite/gm2/pim/pass/stringopaq.mod
  c3b57326a6ac7273da7f438ea5ab5767  gcc/testsuite/gm2/pim/pass/strings.mod
! 6b0b8be59e6ba78c250edd756c880267  gcc/testsuite/gm2/pim/pass/strparam.def
  de47e30576839ab46e6eea6acf366d46  gcc/testsuite/gm2/pim/pass/strparam.mod
  cbf4b94771bced34db5c9e92b6a74452  gcc/testsuite/gm2/pim/pass/subrange.mod
  fb656fe6359dad713f876cf81f73d3ca  gcc/testsuite/gm2/pim/pass/subrange10.mod
*************** e84c7a4c930b091640eef3f841eab711  gcc/te
*** 101968,101974 ****
  a1d9044d42bf5d2e656ddce7432f6928  gcc/testsuite/gm2/pim/pass/testparam2.mod
  554a454005daf4c40a260a606d378cd9  gcc/testsuite/gm2/pim/pass/testparam3.mod
  d328942477ab4c4bbd5e7a038d58b452  gcc/testsuite/gm2/pim/pass/testpimsize.mod
! 3b6f4c5cf8a948268ea33609a36830b3  gcc/testsuite/gm2/pim/pass/testrecursive.def
  ab9a878f7ac62803a984cb6d5108710b  gcc/testsuite/gm2/pim/pass/testrecursive.mod
  2587999bdb2b16126896626222d52208  gcc/testsuite/gm2/pim/pass/testreturnstr.mod
  e50d6f480499eca5f56f1cc33e401f68  gcc/testsuite/gm2/pim/pass/testset.mod
--- 109199,109205 ----
  a1d9044d42bf5d2e656ddce7432f6928  gcc/testsuite/gm2/pim/pass/testparam2.mod
  554a454005daf4c40a260a606d378cd9  gcc/testsuite/gm2/pim/pass/testparam3.mod
  d328942477ab4c4bbd5e7a038d58b452  gcc/testsuite/gm2/pim/pass/testpimsize.mod
! 6bfa6b4e7ef3130cb0bf70dc4d427dc6  gcc/testsuite/gm2/pim/pass/testrecursive.def
  ab9a878f7ac62803a984cb6d5108710b  gcc/testsuite/gm2/pim/pass/testrecursive.mod
  2587999bdb2b16126896626222d52208  gcc/testsuite/gm2/pim/pass/testreturnstr.mod
  e50d6f480499eca5f56f1cc33e401f68  gcc/testsuite/gm2/pim/pass/testset.mod
*************** f7817d4b4261f2dd4f1fdae54eac1823  gcc/te
*** 101995,102001 ****
  12a6e0911bd7a3400d9526d11a2a6f08  gcc/testsuite/gm2/pim/pass/tinyarray4.mod
  24c6ffbb2f4a986b7fe5ee54eaafd5f8  gcc/testsuite/gm2/pim/pass/tinyarray5.mod
  9f61dc6c2b7c1d9c88f1365923e9996b  gcc/testsuite/gm2/pim/pass/tinyarray6.mod
! c489bb3b90a231dba63b9e326fc991b6  gcc/testsuite/gm2/pim/pass/tinyassign.def
  a87107f946e1828820509fb41580273a  gcc/testsuite/gm2/pim/pass/tinyassign.mod
  2ede72d0548ae399fda81496c0a0e6e8  gcc/testsuite/gm2/pim/pass/tinyassign2.mod
  9ee7bbc6c829003a2a6398535172cdaf  gcc/testsuite/gm2/pim/pass/tinyassign3.mod
--- 109226,109232 ----
  12a6e0911bd7a3400d9526d11a2a6f08  gcc/testsuite/gm2/pim/pass/tinyarray4.mod
  24c6ffbb2f4a986b7fe5ee54eaafd5f8  gcc/testsuite/gm2/pim/pass/tinyarray5.mod
  9f61dc6c2b7c1d9c88f1365923e9996b  gcc/testsuite/gm2/pim/pass/tinyarray6.mod
! f5644e78d7b216f33699d991d84f8a1c  gcc/testsuite/gm2/pim/pass/tinyassign.def
  a87107f946e1828820509fb41580273a  gcc/testsuite/gm2/pim/pass/tinyassign.mod
  2ede72d0548ae399fda81496c0a0e6e8  gcc/testsuite/gm2/pim/pass/tinyassign2.mod
  9ee7bbc6c829003a2a6398535172cdaf  gcc/testsuite/gm2/pim/pass/tinyassign3.mod
*************** c55e402ffa9e8ade45b0c8d84dae0c35  gcc/te
*** 102040,102046 ****
  9f4c7d0d91aa2f2dca6bdd4c532e52ee  gcc/testsuite/gm2/pim/pass/tinyset6.mod
  395314c56cd4515846b905de8e33183b  gcc/testsuite/gm2/pim/pass/tinyset7.mod
  5cacbc141f72c044eea9d232f86e400c  gcc/testsuite/gm2/pim/pass/tinystate.mod
! 29bf483c8f47723bdda4a6ff08d7eb02  gcc/testsuite/gm2/pim/pass/tinysub.def
  9ec0aa5aae18eceaeb85f24b6cac6218  gcc/testsuite/gm2/pim/pass/tinytest.mod
  3973957cd4023b7451ed10ae685b991d  gcc/testsuite/gm2/pim/pass/tinytrue.mod
  7e623bb56a9c92cfc8d69c689adc91f6  gcc/testsuite/gm2/pim/pass/tinyvar.mod
--- 109271,109277 ----
  9f4c7d0d91aa2f2dca6bdd4c532e52ee  gcc/testsuite/gm2/pim/pass/tinyset6.mod
  395314c56cd4515846b905de8e33183b  gcc/testsuite/gm2/pim/pass/tinyset7.mod
  5cacbc141f72c044eea9d232f86e400c  gcc/testsuite/gm2/pim/pass/tinystate.mod
! 045c52fd9453ec11d373c50433ebd6b7  gcc/testsuite/gm2/pim/pass/tinysub.def
  9ec0aa5aae18eceaeb85f24b6cac6218  gcc/testsuite/gm2/pim/pass/tinytest.mod
  3973957cd4023b7451ed10ae685b991d  gcc/testsuite/gm2/pim/pass/tinytrue.mod
  7e623bb56a9c92cfc8d69c689adc91f6  gcc/testsuite/gm2/pim/pass/tinyvar.mod
*************** c55e402ffa9e8ade45b0c8d84dae0c35  gcc/te
*** 102050,102056 ****
  d87152d739e2438b9ae53e42dc0abbd6  gcc/testsuite/gm2/pim/pass/tinyvar5.mod
  0b84cfce0a2e43992b71613749e52a4d  gcc/testsuite/gm2/pim/pass/tinyvarient.mod
  29afe8976c40602a83fcb12b023cac5a  gcc/testsuite/gm2/pim/pass/tinyvarient2.mod
! f37c9db3fb932f1dacde244358b1d549  gcc/testsuite/gm2/pim/pass/tinyvarient3.def
  72c43d2e5e294b87203bed6bdd3774f1  gcc/testsuite/gm2/pim/pass/tinyvarient3.mod
  b4d1549a61b94c0b32b8f0eb52df42e5  gcc/testsuite/gm2/pim/pass/tinyvarient4.mod
  aa50524760d3ffe2a76706bcf49d1cc0  gcc/testsuite/gm2/pim/pass/tinyvarient5.mod
--- 109281,109287 ----
  d87152d739e2438b9ae53e42dc0abbd6  gcc/testsuite/gm2/pim/pass/tinyvar5.mod
  0b84cfce0a2e43992b71613749e52a4d  gcc/testsuite/gm2/pim/pass/tinyvarient.mod
  29afe8976c40602a83fcb12b023cac5a  gcc/testsuite/gm2/pim/pass/tinyvarient2.mod
! 55ce0960e3a8dddd4c9d45b103438d65  gcc/testsuite/gm2/pim/pass/tinyvarient3.def
  72c43d2e5e294b87203bed6bdd3774f1  gcc/testsuite/gm2/pim/pass/tinyvarient3.mod
  b4d1549a61b94c0b32b8f0eb52df42e5  gcc/testsuite/gm2/pim/pass/tinyvarient4.mod
  aa50524760d3ffe2a76706bcf49d1cc0  gcc/testsuite/gm2/pim/pass/tinyvarient5.mod
*************** e0f41581cb984c6d55087f1af972969e  gcc/te
*** 102063,102079 ****
  76c21c8cea07a5a153b6684bf8484c3e  gcc/testsuite/gm2/pim/pass/tinywith5.mod
  f50e06ec9f678f9007b20fa5ec68a9df  gcc/testsuite/gm2/pim/pass/tinywith6.mod
  d16408cac5fecde82827df06e17255e0  gcc/testsuite/gm2/pim/pass/trunc.mod
! 6f47167db4c25b3c41744df2f074f5d8  gcc/testsuite/gm2/pim/pass/try
  7b2287867c7b7651569ca17c83e16f74  gcc/testsuite/gm2/pim/pass/typeequiv.mod
  57af7c398eebd591dfb15094779f3160  gcc/testsuite/gm2/pim/pass/typeequiv2.mod
  af5d853ccfa30d31fefd78b68595e83d  gcc/testsuite/gm2/pim/pass/typeequiv3.mod
! 1e0f3d72cfb77e94eebd3424d550fda5  gcc/testsuite/gm2/pim/pass/typeonly.def
  9b03c2a182ad215fce279639f7ab63c6  gcc/testsuite/gm2/pim/pass/typeonly.mod
  7f6cae6f6af9d101dd497cdcd762449e  gcc/testsuite/gm2/pim/pass/typesize.mod
  18759a7011d006aee8db99820cc8faf0  gcc/testsuite/gm2/pim/pass/unbounded.mod
  db93250b9882043af40d6e07c0f43fa0  gcc/testsuite/gm2/pim/pass/unbounded2.mod
  728885ccdcc67c6c07f952d050d2ccf1  gcc/testsuite/gm2/pim/pass/unbounded3.mod
! 3a88530857e66095a2bce80adadf2f16  gcc/testsuite/gm2/pim/pass/v.def
  b90fa67a9858435a142926a3b540b878  gcc/testsuite/gm2/pim/pass/varaddress.mod
  63775623e90143ce0ea607d958cd2253  gcc/testsuite/gm2/pim/pass/varaddress2.mod
  5d069a9f8002954ce8ccd8a3efda68ff  gcc/testsuite/gm2/pim/pass/varaddress3.mod
--- 109294,109310 ----
  76c21c8cea07a5a153b6684bf8484c3e  gcc/testsuite/gm2/pim/pass/tinywith5.mod
  f50e06ec9f678f9007b20fa5ec68a9df  gcc/testsuite/gm2/pim/pass/tinywith6.mod
  d16408cac5fecde82827df06e17255e0  gcc/testsuite/gm2/pim/pass/trunc.mod
! 87083fc3566752e5ef5ee198c07cfa5e  gcc/testsuite/gm2/pim/pass/try
  7b2287867c7b7651569ca17c83e16f74  gcc/testsuite/gm2/pim/pass/typeequiv.mod
  57af7c398eebd591dfb15094779f3160  gcc/testsuite/gm2/pim/pass/typeequiv2.mod
  af5d853ccfa30d31fefd78b68595e83d  gcc/testsuite/gm2/pim/pass/typeequiv3.mod
! 5fa7ecc04ff628f95140acb5d0471423  gcc/testsuite/gm2/pim/pass/typeonly.def
  9b03c2a182ad215fce279639f7ab63c6  gcc/testsuite/gm2/pim/pass/typeonly.mod
  7f6cae6f6af9d101dd497cdcd762449e  gcc/testsuite/gm2/pim/pass/typesize.mod
  18759a7011d006aee8db99820cc8faf0  gcc/testsuite/gm2/pim/pass/unbounded.mod
  db93250b9882043af40d6e07c0f43fa0  gcc/testsuite/gm2/pim/pass/unbounded2.mod
  728885ccdcc67c6c07f952d050d2ccf1  gcc/testsuite/gm2/pim/pass/unbounded3.mod
! a1c52d79947e24e0d91d48eeac2fd936  gcc/testsuite/gm2/pim/pass/v.def
  b90fa67a9858435a142926a3b540b878  gcc/testsuite/gm2/pim/pass/varaddress.mod
  63775623e90143ce0ea607d958cd2253  gcc/testsuite/gm2/pim/pass/varaddress2.mod
  5d069a9f8002954ce8ccd8a3efda68ff  gcc/testsuite/gm2/pim/pass/varaddress3.mod
*************** e10696341abb193bc1c32d9d6ebe9cde  gcc/te
*** 102087,102103 ****
  3824e675327ed427d28e873ed0efdda4  gcc/testsuite/gm2/pim/pass/varient6.mod
  6710f36f07ea1a65aa8f9423649f1a8d  gcc/testsuite/gm2/pim/pass/varient7.mod
  622383e6e6007cea8b6bcf26b62650c4  gcc/testsuite/gm2/pim/pass/varient8.mod
! 167059b53560d5a23084354f5de50a1d  gcc/testsuite/gm2/pim/pass/varin.def
  4f46b59994360b936438d27da0b1f9cd  gcc/testsuite/gm2/pim/pass/varin.mod
  827648d0584a5ce5bbbbb110ead8dc69  gcc/testsuite/gm2/pim/pass/varint.mod
  e5ec8f741bf3890a308e757b87817d6f  gcc/testsuite/gm2/pim/pass/wincat.mod
  d43f17e8e1c17b4cb6dd87d87fcc45c0  gcc/testsuite/gm2/pim/pass/with.mod
  78d8e8c4fe54512cfe7de8344e8c9c2c  gcc/testsuite/gm2/pim/pass/wordconst.mod
  38fc629f7fbe3d2562244d67dfd497f3  gcc/testsuite/gm2/pim/run/fail/case.mod
  0b4cd37dec2ac8233f355645ba4b0bcd  gcc/testsuite/gm2/pim/run/fail/nil.mod
! 88808849c35d3524ae221bdde7d45183  gcc/testsuite/gm2/pim/run/fail/pim-run-fail.exp
  6174b2e1489669bd0373fae444f5162a  gcc/testsuite/gm2/pim/run/pass/Countdown.mod
! cae8d767a6f153402eb1b2754715d56c  gcc/testsuite/gm2/pim/run/pass/EndFor.def
  2f89bb797625b5193c6463a375ebd826  gcc/testsuite/gm2/pim/run/pass/EndFor.mod
  ee2d5f0a9cbc9c80f46880706e57cd6a  gcc/testsuite/gm2/pim/run/pass/EnumTest.mod
  5752c77a932afac938cc61b7f0397134  gcc/testsuite/gm2/pim/run/pass/For1.mod
--- 109318,109335 ----
  3824e675327ed427d28e873ed0efdda4  gcc/testsuite/gm2/pim/pass/varient6.mod
  6710f36f07ea1a65aa8f9423649f1a8d  gcc/testsuite/gm2/pim/pass/varient7.mod
  622383e6e6007cea8b6bcf26b62650c4  gcc/testsuite/gm2/pim/pass/varient8.mod
! df9f23bfcd27b05aac1a1f2df741e892  gcc/testsuite/gm2/pim/pass/varin.def
  4f46b59994360b936438d27da0b1f9cd  gcc/testsuite/gm2/pim/pass/varin.mod
  827648d0584a5ce5bbbbb110ead8dc69  gcc/testsuite/gm2/pim/pass/varint.mod
+ 1475f53a4ea26f22a38e329faa2b361f  gcc/testsuite/gm2/pim/pass/whilestep.mod
  e5ec8f741bf3890a308e757b87817d6f  gcc/testsuite/gm2/pim/pass/wincat.mod
  d43f17e8e1c17b4cb6dd87d87fcc45c0  gcc/testsuite/gm2/pim/pass/with.mod
  78d8e8c4fe54512cfe7de8344e8c9c2c  gcc/testsuite/gm2/pim/pass/wordconst.mod
  38fc629f7fbe3d2562244d67dfd497f3  gcc/testsuite/gm2/pim/run/fail/case.mod
  0b4cd37dec2ac8233f355645ba4b0bcd  gcc/testsuite/gm2/pim/run/fail/nil.mod
! c369b808e8e7c283bed7f4c4c86edf26  gcc/testsuite/gm2/pim/run/fail/pim-run-fail.exp
  6174b2e1489669bd0373fae444f5162a  gcc/testsuite/gm2/pim/run/pass/Countdown.mod
! d708b56bb21ac74b9b56b1cd34b5f78c  gcc/testsuite/gm2/pim/run/pass/EndFor.def
  2f89bb797625b5193c6463a375ebd826  gcc/testsuite/gm2/pim/run/pass/EndFor.mod
  ee2d5f0a9cbc9c80f46880706e57cd6a  gcc/testsuite/gm2/pim/run/pass/EnumTest.mod
  5752c77a932afac938cc61b7f0397134  gcc/testsuite/gm2/pim/run/pass/For1.mod
*************** eedaba5ed60620132c2d794ccb87b825  gcc/te
*** 102125,102131 ****
  ff790e8f33afc6b8d93c99e37f14e010  gcc/testsuite/gm2/pim/run/pass/arraychar.mod
  9c8dd768e65d4ab760b24632ee2a1905  gcc/testsuite/gm2/pim/run/pass/arraychar2.mod
  c15a785e62468945c7235d81cd9a4fc1  gcc/testsuite/gm2/pim/run/pass/arrayrecord.mod
! b0fc1c3e2c7bfbce325c1de3573ebd51  gcc/testsuite/gm2/pim/run/pass/bitsettest.def
  abba6effeb29a02d88d0b004d2943439  gcc/testsuite/gm2/pim/run/pass/bitsettest.mod
  67ec7a7a2c8bf142408fb94b886bcb4b  gcc/testsuite/gm2/pim/run/pass/bytearray.mod
  da2940c1b4fa8248e75ab15a02c13e8f  gcc/testsuite/gm2/pim/run/pass/constdef.def
--- 109357,109363 ----
  ff790e8f33afc6b8d93c99e37f14e010  gcc/testsuite/gm2/pim/run/pass/arraychar.mod
  9c8dd768e65d4ab760b24632ee2a1905  gcc/testsuite/gm2/pim/run/pass/arraychar2.mod
  c15a785e62468945c7235d81cd9a4fc1  gcc/testsuite/gm2/pim/run/pass/arrayrecord.mod
! 2dde54bf6411c48c0e52a415a43b4f0f  gcc/testsuite/gm2/pim/run/pass/bitsettest.def
  abba6effeb29a02d88d0b004d2943439  gcc/testsuite/gm2/pim/run/pass/bitsettest.mod
  67ec7a7a2c8bf142408fb94b886bcb4b  gcc/testsuite/gm2/pim/run/pass/bytearray.mod
  da2940c1b4fa8248e75ab15a02c13e8f  gcc/testsuite/gm2/pim/run/pass/constdef.def
*************** daeeb87f8b14aaebb849dabfea9ff648  gcc/te
*** 102137,102147 ****
--- 109369,109381 ----
  ac96c6e0a6c120416b5fc1077bd5c072  gcc/testsuite/gm2/pim/run/pass/convert1.mod
  199ec2b67b0445364db02e277a78b82e  gcc/testsuite/gm2/pim/run/pass/cycles.mod
  1622f782f23cd9f51ef818ad4217d78e  gcc/testsuite/gm2/pim/run/pass/dec.mod
+ fd4bd6364bf3a3d64e59b8aa338e4222  gcc/testsuite/gm2/pim/run/pass/dectest.mod
  769a3770b8556984cb7dd5767fe495c4  gcc/testsuite/gm2/pim/run/pass/enums.mod
  0f935813612e0f0578b8a6f174974a91  gcc/testsuite/gm2/pim/run/pass/genconststr.mod
  48fff98d72182c48cae09f908a945a87  gcc/testsuite/gm2/pim/run/pass/hightests.mod
  2a1d41c511ebdf0b8eec1237f33882bc  gcc/testsuite/gm2/pim/run/pass/incsubrange.def
  8cc1599f3ba358d8eeb8188bd228a417  gcc/testsuite/gm2/pim/run/pass/incsubrange.mod
+ fd1157b37b72493699460e251b2a7689  gcc/testsuite/gm2/pim/run/pass/inctest.mod
  fb0f4ab006d1f132d650f6071fed6a67  gcc/testsuite/gm2/pim/run/pass/index3.mod
  3401966dd149042fddbedc57d62b9d06  gcc/testsuite/gm2/pim/run/pass/int16.mod
  76589f86f3f192bd5d66c08cae2e7065  gcc/testsuite/gm2/pim/run/pass/int32.mod
*************** a354604ff0a57790519a73ae758a4def  gcc/te
*** 102175,102181 ****
  8c9d711a50f220f52d04836dd3f6c70b  gcc/testsuite/gm2/pim/run/pass/nestedwith2.mod
  09ff245bbb0c8265d2bf0fddccb18de1  gcc/testsuite/gm2/pim/run/pass/nestedwith3.mod
  51a5422c6de2ab8935b1a192f68c33bf  gcc/testsuite/gm2/pim/run/pass/nothing.mod
! a8a794c96a7e1d166e0cfcbaba075c07  gcc/testsuite/gm2/pim/run/pass/pim-run-pass.exp
  6520670a15bd426ddb9248bb66b28e70  gcc/testsuite/gm2/pim/run/pass/prog31ex.mod
  7ff19964979a5b55b4038c2bb770b4f4  gcc/testsuite/gm2/pim/run/pass/rts.mod
  6916c779dee4af845dad0adfecc0082c  gcc/testsuite/gm2/pim/run/pass/setcritical.mod
--- 109409,109416 ----
  8c9d711a50f220f52d04836dd3f6c70b  gcc/testsuite/gm2/pim/run/pass/nestedwith2.mod
  09ff245bbb0c8265d2bf0fddccb18de1  gcc/testsuite/gm2/pim/run/pass/nestedwith3.mod
  51a5422c6de2ab8935b1a192f68c33bf  gcc/testsuite/gm2/pim/run/pass/nothing.mod
! ecc069a883b11e1e7f11a466e2dfb3c6  gcc/testsuite/gm2/pim/run/pass/pim-run-pass.exp
! 320bb6ae7105e53d5a461effd721a7a5  gcc/testsuite/gm2/pim/run/pass/printtypesize.mod
  6520670a15bd426ddb9248bb66b28e70  gcc/testsuite/gm2/pim/run/pass/prog31ex.mod
  7ff19964979a5b55b4038c2bb770b4f4  gcc/testsuite/gm2/pim/run/pass/rts.mod
  6916c779dee4af845dad0adfecc0082c  gcc/testsuite/gm2/pim/run/pass/setcritical.mod
*************** a8a794c96a7e1d166e0cfcbaba075c07  gcc/te
*** 102183,102197 ****
  6cdfc14bc7ee63ca8da4013a71da87cd  gcc/testsuite/gm2/pim/run/pass/singlechar.mod
  772af1d52887633effa239759665d2d8  gcc/testsuite/gm2/pim/run/pass/str6.mod
  5d086db79153ca80a4e3146b2b21388c  gcc/testsuite/gm2/pim/run/pass/stringaddr.mod
! 1a50aae228ef046b8d6a4fbeca8c4f19  gcc/testsuite/gm2/pim/run/pass/stringaddr2.def
  ea05c07f44d4d4e654a93514bced9c1e  gcc/testsuite/gm2/pim/run/pass/stringaddr2.mod
  9b40d0ad6c7a669a092125fe6289671d  gcc/testsuite/gm2/pim/run/pass/stripped.mod
! f03f048f6326510b7da012effa66d2ef  gcc/testsuite/gm2/pim/run/pass/sys.def
  c505955d69348d8bea797b775d67141d  gcc/testsuite/gm2/pim/run/pass/sys.mod
! 6fba4ee526fb38454fa3cb09a7edec05  gcc/testsuite/gm2/pim/run/pass/t.def
  a6b257b26db7094f690a0d63bd324a06  gcc/testsuite/gm2/pim/run/pass/testaddr.mod
  92dfc0fb7c39283328f103d39d013d38  gcc/testsuite/gm2/pim/run/pass/testaddr2.mod
! f98a501b89414b479c23c311884fc57b  gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
  04481dde8f96b7982e5341c00e042563  gcc/testsuite/gm2/pim/run/pass/testarray.mod
  c196f7b8b9ddff4bc86ff84d47fcacb9  gcc/testsuite/gm2/pim/run/pass/testarray2.mod
  bc4a6e33a4ecaae2c417b31cc8a8bf16  gcc/testsuite/gm2/pim/run/pass/testarray3.mod
--- 109418,109432 ----
  6cdfc14bc7ee63ca8da4013a71da87cd  gcc/testsuite/gm2/pim/run/pass/singlechar.mod
  772af1d52887633effa239759665d2d8  gcc/testsuite/gm2/pim/run/pass/str6.mod
  5d086db79153ca80a4e3146b2b21388c  gcc/testsuite/gm2/pim/run/pass/stringaddr.mod
! 98f068d5b6ad0a34bea5360a5ac4a491  gcc/testsuite/gm2/pim/run/pass/stringaddr2.def
  ea05c07f44d4d4e654a93514bced9c1e  gcc/testsuite/gm2/pim/run/pass/stringaddr2.mod
  9b40d0ad6c7a669a092125fe6289671d  gcc/testsuite/gm2/pim/run/pass/stripped.mod
! f714d8decac7475cbb43994cb093482b  gcc/testsuite/gm2/pim/run/pass/sys.def
  c505955d69348d8bea797b775d67141d  gcc/testsuite/gm2/pim/run/pass/sys.mod
! 398022a6abcb7c613a91550554e828e9  gcc/testsuite/gm2/pim/run/pass/t.def
  a6b257b26db7094f690a0d63bd324a06  gcc/testsuite/gm2/pim/run/pass/testaddr.mod
  92dfc0fb7c39283328f103d39d013d38  gcc/testsuite/gm2/pim/run/pass/testaddr2.mod
! 77942f86c8ef04fc822b99978e8abe81  gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
  04481dde8f96b7982e5341c00e042563  gcc/testsuite/gm2/pim/run/pass/testarray.mod
  c196f7b8b9ddff4bc86ff84d47fcacb9  gcc/testsuite/gm2/pim/run/pass/testarray2.mod
  bc4a6e33a4ecaae2c417b31cc8a8bf16  gcc/testsuite/gm2/pim/run/pass/testarray3.mod
*************** a6a912987dd69dc45e6ac1c7008c02cc  gcc/te
*** 102200,102205 ****
--- 109435,109443 ----
  f4d92d704297d6ac40734a514a93cfee  gcc/testsuite/gm2/pim/run/pass/testavail.mod
  f149133c3fa1f44ff1f7faf894a955ee  gcc/testsuite/gm2/pim/run/pass/testbuiltins.mod
  d24cd8ca7d27c2cc044ec77a77b80728  gcc/testsuite/gm2/pim/run/pass/testdiv.mod
+ 25511df5794c0a5c8baad0176035f818  gcc/testsuite/gm2/pim/run/pass/testforloopchar.mod
+ a9398c199853355d94bd179cde281a59  gcc/testsuite/gm2/pim/run/pass/testforloopchar2.mod
+ 7e0fd598417624df43b302ea973a5c57  gcc/testsuite/gm2/pim/run/pass/testforloopenum.mod
  9b3ed8c9d7e1d9ef09ae6939a014a587  gcc/testsuite/gm2/pim/run/pass/testforloopzero.mod
  424b410ca4afadb17413f72b9edd79bc  gcc/testsuite/gm2/pim/run/pass/testforloopzero2.mod
  0480e244d6158ad097b0ab2beb9c82a5  gcc/testsuite/gm2/pim/run/pass/testforloopzero3.mod
*************** fae349b27e5da7066f8332ae9b00ec1a  gcc/te
*** 102215,102221 ****
  715f70e614e531d112f6859d27c33a4b  gcc/testsuite/gm2/pim/run/pass/testparam.mod
  cb16e2aca4a7a3f3be1460c680e660ae  gcc/testsuite/gm2/pim/run/pass/testreturnstr.mod
  db013ad2ccc3c18537246e6f00174618  gcc/testsuite/gm2/pim/run/pass/testreturnstr2.mod
! 0eefaf5d1c49522581ce943417c14440  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.def
  40b93959daea777e3642123fe6a2f349  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.mod
  cc3bbca460511dda4779c4bfec732a6d  gcc/testsuite/gm2/pim/run/pass/testsize.mod
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/pim/run/pass/testsize2.mod
--- 109453,109459 ----
  715f70e614e531d112f6859d27c33a4b  gcc/testsuite/gm2/pim/run/pass/testparam.mod
  cb16e2aca4a7a3f3be1460c680e660ae  gcc/testsuite/gm2/pim/run/pass/testreturnstr.mod
  db013ad2ccc3c18537246e6f00174618  gcc/testsuite/gm2/pim/run/pass/testreturnstr2.mod
! f856db1fccdf0331b7898bb835793e1f  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.def
  40b93959daea777e3642123fe6a2f349  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.mod
  cc3bbca460511dda4779c4bfec732a6d  gcc/testsuite/gm2/pim/run/pass/testsize.mod
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/pim/run/pass/testsize2.mod
*************** f4f8d23df0f1a9b99b0109a940ba8a4e  gcc/te
*** 102231,102256 ****
  16ef7b8c82da9cb2df39ca6c14380d96  gcc/testsuite/gm2/pim/run/pass/wr.mod
  82f55b7bc543645382f6aa7d85b9a5ec  gcc/testsuite/gm2/pimcoroutines/pass/imports.mod
  01e778d7ddc85428a5104010bc2f4b5d  gcc/testsuite/gm2/pimcoroutines/pass/imports2.mod
! b2e93d1734450ee2fcdf45fcfba79d9d  gcc/testsuite/gm2/pimcoroutines/pass/pimcoroutines-pass.exp
! 0094a1bc4b71274d5e40683654bf9fea  gcc/testsuite/gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp
  c953eb0b38fdc8c2f9526508f1594b00  gcc/testsuite/gm2/pimcoroutines/run/pass/testtime.mod
  941a3483c8a10137ae148130da144c48  gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod
  0de2a4029cfe9e1ca579c68f9596e248  gcc/testsuite/gm2/pimlib/base/run/pass/StrLib.mod
! de46a67e7fe97a4d9f56ae370d7eadaf  gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp
  0dcaef09d969b7670f7ae3450706ad2a  gcc/testsuite/gm2/pimlib/base/run/pass/testconvert.mod
! 1c933e5c5c7b7de5821e8f1f57b7374b  gcc/testsuite/gm2/pimlib/coroutines/pass/pimlib-coroutines-pass.exp
  3679bb7285981f2bd6b8e9050de5e897  gcc/testsuite/gm2/pimlib/coroutines/pass/priority.mod
  26036b6dc8485eeb5158fc7e24c5a90c  gcc/testsuite/gm2/pimlib/coroutines/pass/priority2.mod
! ac3574aa6f47d55d4318822d69e9b5fd  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.def
  a9e267cb82ed2df230b3e58b4c907ddf  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.mod
  9ba26e57db6af1c3a3c5376c993933b9  gcc/testsuite/gm2/pimlib/logitech/pass/LogitechLong.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/pass/hello.mod
! 6bb15778701c0fce630149f8119a431d  gcc/testsuite/gm2/pimlib/logitech/pass/pimlib-logitech-pass.exp
  2b75d46d6119bc0814d43be6f649392d  gcc/testsuite/gm2/pimlib/logitech/run/pass/bbits.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/run/pass/hello.mod
  d7c77f2b9d5d381ef79361d07b23e4ce  gcc/testsuite/gm2/pimlib/logitech/run/pass/helloinout.mod
  9257fb3162b0afc1167d950bbe808001  gcc/testsuite/gm2/pimlib/logitech/run/pass/intb.mod
! 3beb1251e14b958e384073f3d2881ad3  gcc/testsuite/gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp
  8db756516b531086697e11764c6430aa  gcc/testsuite/gm2/pimlib/logitech/run/pass/realconv.mod
  bc32d4230d22e40bfcb1e74bb392ab97  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput.mod
  48bea14426a2eb3497c75d91b28ead48  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput2.mod
--- 109469,109494 ----
  16ef7b8c82da9cb2df39ca6c14380d96  gcc/testsuite/gm2/pim/run/pass/wr.mod
  82f55b7bc543645382f6aa7d85b9a5ec  gcc/testsuite/gm2/pimcoroutines/pass/imports.mod
  01e778d7ddc85428a5104010bc2f4b5d  gcc/testsuite/gm2/pimcoroutines/pass/imports2.mod
! 4dac8aa23106e9b75cfc21b28380dc08  gcc/testsuite/gm2/pimcoroutines/pass/pimcoroutines-pass.exp
! 81314ef63e8b11463cd34b34274c1b57  gcc/testsuite/gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp
  c953eb0b38fdc8c2f9526508f1594b00  gcc/testsuite/gm2/pimcoroutines/run/pass/testtime.mod
  941a3483c8a10137ae148130da144c48  gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod
  0de2a4029cfe9e1ca579c68f9596e248  gcc/testsuite/gm2/pimlib/base/run/pass/StrLib.mod
! d33f75933ba54ebf6d93f43daa52e551  gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp
  0dcaef09d969b7670f7ae3450706ad2a  gcc/testsuite/gm2/pimlib/base/run/pass/testconvert.mod
! 350568757309e65990e6cf1c67abbd5c  gcc/testsuite/gm2/pimlib/coroutines/pass/pimlib-coroutines-pass.exp
  3679bb7285981f2bd6b8e9050de5e897  gcc/testsuite/gm2/pimlib/coroutines/pass/priority.mod
  26036b6dc8485eeb5158fc7e24c5a90c  gcc/testsuite/gm2/pimlib/coroutines/pass/priority2.mod
! 6ae4230b39484be1ae8276602de6ed42  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.def
  a9e267cb82ed2df230b3e58b4c907ddf  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.mod
  9ba26e57db6af1c3a3c5376c993933b9  gcc/testsuite/gm2/pimlib/logitech/pass/LogitechLong.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/pass/hello.mod
! 17e7efae8eb77073681e14122b7d9e1f  gcc/testsuite/gm2/pimlib/logitech/pass/pimlib-logitech-pass.exp
  2b75d46d6119bc0814d43be6f649392d  gcc/testsuite/gm2/pimlib/logitech/run/pass/bbits.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/run/pass/hello.mod
  d7c77f2b9d5d381ef79361d07b23e4ce  gcc/testsuite/gm2/pimlib/logitech/run/pass/helloinout.mod
  9257fb3162b0afc1167d950bbe808001  gcc/testsuite/gm2/pimlib/logitech/run/pass/intb.mod
! 12b74f13ad655f02d6d03cd3afd8386b  gcc/testsuite/gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp
  8db756516b531086697e11764c6430aa  gcc/testsuite/gm2/pimlib/logitech/run/pass/realconv.mod
  bc32d4230d22e40bfcb1e74bb392ab97  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput.mod
  48bea14426a2eb3497c75d91b28ead48  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput2.mod
*************** bc32d4230d22e40bfcb1e74bb392ab97  gcc/te
*** 102258,102269 ****
  6de5e9c5a7b2bb68088a9983d496b0ef  gcc/testsuite/gm2/pimlib/logitech/run/pass/rename.mod
  00248d5f46033daa8b9856ff2869e3e5  gcc/testsuite/gm2/pimlib/logitech/run/pass/timedate.mod
  cb7f18d9d8e9955ad964a25e931aacba  gcc/testsuite/gm2/pimlib/logitech/run/pass/writeoct.mod
! acf3568bea7f8236f01be1a3daeea0c5  gcc/testsuite/gm2/pimlib/pass/pimlib-pass.exp
  b434571f14dc637407f321e185093bce  gcc/testsuite/gm2/pimlib/run/pass/format.mod
  4c7f4f9d21d983dcdc9bdfa024e5f610  gcc/testsuite/gm2/pimlib/run/pass/limittests.c
  6054ee07cec468d62f9f85c2a854c050  gcc/testsuite/gm2/pimlib/run/pass/limittests.mod
  94e872e38c7828c388ce3c4a5cfd3ca3  gcc/testsuite/gm2/pimlib/run/pass/longreal.mod
! 3beb1251e14b958e384073f3d2881ad3  gcc/testsuite/gm2/pimlib/run/pass/pimlib-run-pass.exp
  19fbabb90573435e066566857d602ff9  gcc/testsuite/gm2/pimlib/run/pass/test.c
  eb658a5ad91f33a16115753df34c87d4  gcc/testsuite/gm2/pimlib/run/pass/testchar.mod
  248b32cb4654932e670ca1f4528b0e6d  gcc/testsuite/gm2/pimlib/run/pass/testfiobinary.mod
--- 109496,109507 ----
  6de5e9c5a7b2bb68088a9983d496b0ef  gcc/testsuite/gm2/pimlib/logitech/run/pass/rename.mod
  00248d5f46033daa8b9856ff2869e3e5  gcc/testsuite/gm2/pimlib/logitech/run/pass/timedate.mod
  cb7f18d9d8e9955ad964a25e931aacba  gcc/testsuite/gm2/pimlib/logitech/run/pass/writeoct.mod
! 0e008071b07f2e6b9b9336fa1f4f28ba  gcc/testsuite/gm2/pimlib/pass/pimlib-pass.exp
  b434571f14dc637407f321e185093bce  gcc/testsuite/gm2/pimlib/run/pass/format.mod
  4c7f4f9d21d983dcdc9bdfa024e5f610  gcc/testsuite/gm2/pimlib/run/pass/limittests.c
  6054ee07cec468d62f9f85c2a854c050  gcc/testsuite/gm2/pimlib/run/pass/limittests.mod
  94e872e38c7828c388ce3c4a5cfd3ca3  gcc/testsuite/gm2/pimlib/run/pass/longreal.mod
! 12b74f13ad655f02d6d03cd3afd8386b  gcc/testsuite/gm2/pimlib/run/pass/pimlib-run-pass.exp
  19fbabb90573435e066566857d602ff9  gcc/testsuite/gm2/pimlib/run/pass/test.c
  eb658a5ad91f33a16115753df34c87d4  gcc/testsuite/gm2/pimlib/run/pass/testchar.mod
  248b32cb4654932e670ca1f4528b0e6d  gcc/testsuite/gm2/pimlib/run/pass/testfiobinary.mod
*************** e5d5befc7aececd211929f46bd11fdda  gcc/te
*** 102274,102283 ****
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
! 1d61bb664cc5a1633621e43ee5bead79  gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp
  663144335381bfcd7bfe7a46bf13191b  gcc/testsuite/gm2/projects/iso/run/pass/hello/hello.mod
! 1d61bb664cc5a1633621e43ee5bead79  gcc/testsuite/gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp
! 351471238c26a991085e32e6ecd770bd  gcc/testsuite/gm2/projects/iso/small/run/pass/iso-extended-opaque-run-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.mod
  bed0d51b88d635421ca42903e51c031a  gcc/testsuite/gm2/projects/iso/small/run/pass/test1.mod
--- 109512,109521 ----
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
! 08d5a7f3db0f9db283fd7cfc21db5f17  gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp
  663144335381bfcd7bfe7a46bf13191b  gcc/testsuite/gm2/projects/iso/run/pass/hello/hello.mod
! 08d5a7f3db0f9db283fd7cfc21db5f17  gcc/testsuite/gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp
! 79ff30e5c0f46fb0bb5aa751a53cb029  gcc/testsuite/gm2/projects/iso/small/run/pass/iso-extended-opaque-run-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.mod
  bed0d51b88d635421ca42903e51c031a  gcc/testsuite/gm2/projects/iso/small/run/pass/test1.mod
*************** e2fc89249d61235ed1058216be8d9ebd  gcc/te
*** 102285,102317 ****
  35b03c29a5246125d75887214885df57  gcc/testsuite/gm2/projects/iso/small/run/pass/testlib.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/projects/iso/small/run/pass/testset.mod
  01f9ac978e666fe34aafe35e243d4ba0  gcc/testsuite/gm2/projects/log/run/pass/hello/hello.mod
! ad714329a526adbe94ad90f08d145ae3  gcc/testsuite/gm2/projects/log/run/pass/hello/projects-log-run-pass-hello.exp
  6d82c9c4ae47ee7aa725b73c98c9a0c3  gcc/testsuite/gm2/projects/pim/run/pass/hello/hello.mod
! e116da3fe9bec9075bfb852c4bfea83f  gcc/testsuite/gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp
  09147a4cdb0ff29b350b18cfedc624c8  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/pegfive.mod
! da11d6ecd1730d6ba0c31bec4d3e791a  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/projects-pim-run-pass-pegfive.exp
! 87c973152a3d43462fdee7c64df04c82  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.def
  f707e419c0eb663f20c80d0045e4869f  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.mod
! 9055387f752490c3eac1a20971f8f6e1  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.def
  383d833f6efdf2909d176baf61335b2a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.mod
! 01b6983d3c8d22f70f4f1424b1cfa31c  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.def
  4adb8779ff4e9c2c34ba6b1fa12effa7  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.mod
! 43ff6f0149d21ef5aacc0b8bdae49cea  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.def
  ab72bd0daafa0e8b0900a7f43ccd2f01  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.mod
! 427cdebbe74fef06da8c0d28613989b2  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.def
  aa1f41a867ddc621c5773c381a11d871  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.mod
  96523f86bcdd7cdc98188567eb89f760  gcc/testsuite/gm2/projects/pim/run/pass/random/Map.mod
! 2441b9924d65aa1fb80b1f7a646b8805  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.def
  b2b160dcd71c2f413a7eed59b599fa32  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.mod
! 71baef777df50f961094c0fe78c71533  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.def
  103afaefb845239205ee2541954f0925  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.mod
! 25e870bde5d5ef14c1b623ba6fa80cdd  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.def
  819d3e9d2b079f4b97e31e6214e41c09  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.mod
! b623368372173aa060aab5cd8653e161  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.def
  5c8ec95ce0f78e147b663701cb731629  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.mod
! 2ffb06146341ecd686e0bbab7985059b  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.def
  308ee15c56c2918de6a28404214c0acb  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.mod
! 0a861c5038de1b651b686c70e9ea629a  gcc/testsuite/gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp
  eb5e0c08657ae9af904faf4eaee4f4a2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.def
  e312427ff6d7dc5f9ac1f5adfc0e2e6f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.mod
  6fa73f2ccd7ce67da29162593943e550  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvIntroduction.def
--- 109523,109555 ----
  35b03c29a5246125d75887214885df57  gcc/testsuite/gm2/projects/iso/small/run/pass/testlib.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/projects/iso/small/run/pass/testset.mod
  01f9ac978e666fe34aafe35e243d4ba0  gcc/testsuite/gm2/projects/log/run/pass/hello/hello.mod
! b28cf994376a9b1377fbd6e8bd2b2813  gcc/testsuite/gm2/projects/log/run/pass/hello/projects-log-run-pass-hello.exp
  6d82c9c4ae47ee7aa725b73c98c9a0c3  gcc/testsuite/gm2/projects/pim/run/pass/hello/hello.mod
! 989a126f9de3c37fa7da4bc0afeff254  gcc/testsuite/gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp
  09147a4cdb0ff29b350b18cfedc624c8  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/pegfive.mod
! 343da362336f59163f0f2f0f85110ca1  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/projects-pim-run-pass-pegfive.exp
! de5cfa450df63b056e8555b068bd96fd  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.def
  f707e419c0eb663f20c80d0045e4869f  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.mod
! 6eae3e619ed60ed69461b4f093e3d590  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.def
  383d833f6efdf2909d176baf61335b2a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.mod
! e10af7d6fa04912b5c59a6715d5b1b37  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.def
  4adb8779ff4e9c2c34ba6b1fa12effa7  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.mod
! c6a20aa516f6d68562edc756e41e900b  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.def
  ab72bd0daafa0e8b0900a7f43ccd2f01  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.mod
! 121a2f9138aaeea86ec55d982f92fb22  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.def
  aa1f41a867ddc621c5773c381a11d871  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.mod
  96523f86bcdd7cdc98188567eb89f760  gcc/testsuite/gm2/projects/pim/run/pass/random/Map.mod
! f26f36598184901a449ae855aa9e639f  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.def
  b2b160dcd71c2f413a7eed59b599fa32  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.mod
! fdfc2fb4b17a58230b5109d2e609363d  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.def
  103afaefb845239205ee2541954f0925  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.mod
! db329ef32cb98abc3f84956784c4ce1b  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.def
  819d3e9d2b079f4b97e31e6214e41c09  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.mod
! 357792e0358a5ac060d8e6332e461edb  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.def
  5c8ec95ce0f78e147b663701cb731629  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.mod
! 6ec543518159ec000604c70aaed8f175  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.def
  308ee15c56c2918de6a28404214c0acb  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.mod
! 186580212b095f6f00a30ed2f4ed87c6  gcc/testsuite/gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp
  eb5e0c08657ae9af904faf4eaee4f4a2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.def
  e312427ff6d7dc5f9ac1f5adfc0e2e6f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.mod
  6fa73f2ccd7ce67da29162593943e550  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvIntroduction.def
*************** f3bf47c9e6f632cf8997848aada27d8c  gcc/te
*** 102323,102329 ****
  d6728264d8aeb427dca096cf9b07d873  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.bnf
  94cf59c423138bcd5afb00458e8d1bd2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.def
  6daed72d1ff89bcb0e838dfed352989e  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.mod
! 48f9aaa7650aec822b72231fa0ef98d6  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.def
  5a18152094831f0e232e06047f7060d5  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.mod
  089619fbdff6cb3fe8352bf58aa8e8b0  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.def
  d27705922d3186f689e47811d51c4f5f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.mod
--- 109561,109567 ----
  d6728264d8aeb427dca096cf9b07d873  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.bnf
  94cf59c423138bcd5afb00458e8d1bd2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.def
  6daed72d1ff89bcb0e838dfed352989e  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.mod
! 1aa1e94cde0a3c3b82239933271b2884  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.def
  5a18152094831f0e232e06047f7060d5  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.mod
  089619fbdff6cb3fe8352bf58aa8e8b0  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.def
  d27705922d3186f689e47811d51c4f5f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.mod
*************** f7d2606e7d1db4df81a4f5e310f7aae2  gcc/te
*** 102346,102366 ****
  c8f239456ccc9c4fd9edb753640abc35  gcc/testsuite/gm2/projects/pim/run/pass/tower/SocketControl.def
  f4b4c0b867c41208bebf0455f4366d99  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.def
  0f61dbbbcea4138e69598227dc906627  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.mod
! 54eb39032f99f8737e732f78f8d5698a  gcc/testsuite/gm2/projects/pim/run/pass/tower/adv.flex
  d6e4aca189a6d0c78d4ef055fdab35d9  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.c
  9b38ecfb8436c855f3ee5126e513b315  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.def
! ed4408d709fe5c3c93361a4b996bc399  gcc/testsuite/gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp
  3e0d828453d6336d7123f2417d7bd570  gcc/testsuite/gm2/projects/pim/run/pass/tower/star
  cd4b31a663c863e31375daaa812c3f68  gcc/testsuite/gm2/quads/run/pass/becomes.mod
  00f03972820bebc01d525280f94fec34  gcc/testsuite/gm2/quads/run/pass/param.mod
! 876b4717de3f453a923e6245385f646f  gcc/testsuite/gm2/quads/run/pass/quads-run-pass.exp
  ddcf079ea49e0ecb2f490c0e68fd697c  gcc/testsuite/gm2/quads/run/pass/return.mod
  b1c86bac75dba8a54e32fa30f5815baa  gcc/testsuite/gm2/recover/pass/cannot-solve/begin.mod
  7d43717184e3b0019227e979d25c24ec  gcc/testsuite/gm2/recover/pass/cannot-solve/statementsemi.mod
  d151c38b77ce8c99cc41d05bcf8f3559  gcc/testsuite/gm2/recover/pass/end2.mod
  f63a9f1466200fc845420d1d2e59fa17  gcc/testsuite/gm2/recover/pass/of.mod
  92e9c8d700bf0a29d08690363f071268  gcc/testsuite/gm2/recover/pass/procsemi.mod
! acf3568bea7f8236f01be1a3daeea0c5  gcc/testsuite/gm2/recover/pass/recover-pass.exp
  8ded13dd2d8c1f6547bfb3bba3551d86  gcc/testsuite/gm2/recover/pass/rrbra.mod
  7d8438e3ef1c6c5615f347a06c928dff  gcc/testsuite/gm2/recover/pass/rsbra.mod
  dcf7dd91e5b76850ed3b7965e10d56c3  gcc/testsuite/gm2/recover/pass/semi.mod
--- 109584,109604 ----
  c8f239456ccc9c4fd9edb753640abc35  gcc/testsuite/gm2/projects/pim/run/pass/tower/SocketControl.def
  f4b4c0b867c41208bebf0455f4366d99  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.def
  0f61dbbbcea4138e69598227dc906627  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.mod
! 05922a742637caea5b23a43d6ea7d813  gcc/testsuite/gm2/projects/pim/run/pass/tower/adv.flex
  d6e4aca189a6d0c78d4ef055fdab35d9  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.c
  9b38ecfb8436c855f3ee5126e513b315  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.def
! 1513bdbac1bee3e934d89181c5569e84  gcc/testsuite/gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp
  3e0d828453d6336d7123f2417d7bd570  gcc/testsuite/gm2/projects/pim/run/pass/tower/star
  cd4b31a663c863e31375daaa812c3f68  gcc/testsuite/gm2/quads/run/pass/becomes.mod
  00f03972820bebc01d525280f94fec34  gcc/testsuite/gm2/quads/run/pass/param.mod
! 2e206112ef6d97def62b99298730b21e  gcc/testsuite/gm2/quads/run/pass/quads-run-pass.exp
  ddcf079ea49e0ecb2f490c0e68fd697c  gcc/testsuite/gm2/quads/run/pass/return.mod
  b1c86bac75dba8a54e32fa30f5815baa  gcc/testsuite/gm2/recover/pass/cannot-solve/begin.mod
  7d43717184e3b0019227e979d25c24ec  gcc/testsuite/gm2/recover/pass/cannot-solve/statementsemi.mod
  d151c38b77ce8c99cc41d05bcf8f3559  gcc/testsuite/gm2/recover/pass/end2.mod
  f63a9f1466200fc845420d1d2e59fa17  gcc/testsuite/gm2/recover/pass/of.mod
  92e9c8d700bf0a29d08690363f071268  gcc/testsuite/gm2/recover/pass/procsemi.mod
! 0e008071b07f2e6b9b9336fa1f4f28ba  gcc/testsuite/gm2/recover/pass/recover-pass.exp
  8ded13dd2d8c1f6547bfb3bba3551d86  gcc/testsuite/gm2/recover/pass/rrbra.mod
  7d8438e3ef1c6c5615f347a06c928dff  gcc/testsuite/gm2/recover/pass/rsbra.mod
  dcf7dd91e5b76850ed3b7965e10d56c3  gcc/testsuite/gm2/recover/pass/semi.mod
*************** cc3bbca460511dda4779c4bfec732a6d  gcc/te
*** 102389,102401 ****
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/run/pass/testsize2.mod
  5eac39bf3a7f2b4fc816d39f813db8a1  gcc/testsuite/gm2/run/pass/testsize3.mod
  a8207e849e4daaf6ca35472bca71613d  gcc/testsuite/gm2/run/pass/wr.mod
! 22eeee3b4377d2ee3c80ebe427393d34  gcc/testsuite/gm2/scripts/addit
! cadd4ab09e905ca9d82b04b237f53297  gcc/testsuite/gm2/scripts/comp
  bc4fb8293716280f63a60e50901eb7d2  gcc/testsuite/gm2/scripts/compile
! 7ef9d50490d88f6f2012426c7b179e1e  gcc/testsuite/gm2/scripts/compileiso
! 20362c33e0637c12c5f0e8ce9c1c7445  gcc/testsuite/gm2/scripts/link
! 4820c2bb5d117d43fbc5819ec605eb47  gcc/testsuite/gm2/scripts/regression
! e111328249824fc19303073ac8688411  gcc/testsuite/gm2/scripts/subit
  68fdb56f93e47d3993557eec47deaebd  gcc/testsuite/gm2/sets/run/pass/multisetarith.mod
  338d6fa801c91b5f93206daa03f998ca  gcc/testsuite/gm2/sets/run/pass/multisetarith2.mod
  c602f94c3d7d5500d4b79c08d187daae  gcc/testsuite/gm2/sets/run/pass/multisetarith3.mod
--- 109627,109639 ----
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/run/pass/testsize2.mod
  5eac39bf3a7f2b4fc816d39f813db8a1  gcc/testsuite/gm2/run/pass/testsize3.mod
  a8207e849e4daaf6ca35472bca71613d  gcc/testsuite/gm2/run/pass/wr.mod
! d528d81cdbd7e8a84b5630780691c005  gcc/testsuite/gm2/scripts/addit
! 178640577be40650f7b1b8640d627cc6  gcc/testsuite/gm2/scripts/comp
  bc4fb8293716280f63a60e50901eb7d2  gcc/testsuite/gm2/scripts/compile
! 692ff866a96124f30915b6080506c514  gcc/testsuite/gm2/scripts/compileiso
! 67a8f8d0defc5f32e77641494ec331b8  gcc/testsuite/gm2/scripts/link
! f0f45de594db1e2e030288d3ef53e542  gcc/testsuite/gm2/scripts/regression
! 5e1856b8364f99553b21aed103854ca7  gcc/testsuite/gm2/scripts/subit
  68fdb56f93e47d3993557eec47deaebd  gcc/testsuite/gm2/sets/run/pass/multisetarith.mod
  338d6fa801c91b5f93206daa03f998ca  gcc/testsuite/gm2/sets/run/pass/multisetarith2.mod
  c602f94c3d7d5500d4b79c08d187daae  gcc/testsuite/gm2/sets/run/pass/multisetarith3.mod
*************** f6de503823ee276a69e70bc77f56435d  gcc/te
*** 102421,102427 ****
  6791c5b60c9acda2d0588a232e3e7252  gcc/testsuite/gm2/sets/run/pass/setrotate2.mod
  e230bc90482d44ff967e7deef741765c  gcc/testsuite/gm2/sets/run/pass/setrotate3.mod
  5307a843169b8465e3cba302c8a27d19  gcc/testsuite/gm2/sets/run/pass/setrotate4.mod
! e5ac3f98fd1f879b8c8f24e5ae29521f  gcc/testsuite/gm2/sets/run/pass/sets-run-pass.exp
  21ce638a759fcc83711516257ef094fd  gcc/testsuite/gm2/sets/run/pass/setshift.mod
  64c638d6714bdf042b377ba55d6a39b8  gcc/testsuite/gm2/sets/run/pass/setshift2.mod
  fef7514015c435a016141edea74b252b  gcc/testsuite/gm2/sets/run/pass/simple.mod
--- 109659,109665 ----
  6791c5b60c9acda2d0588a232e3e7252  gcc/testsuite/gm2/sets/run/pass/setrotate2.mod
  e230bc90482d44ff967e7deef741765c  gcc/testsuite/gm2/sets/run/pass/setrotate3.mod
  5307a843169b8465e3cba302c8a27d19  gcc/testsuite/gm2/sets/run/pass/setrotate4.mod
! 9ce7011c9c9c07f2acc542cffc42591b  gcc/testsuite/gm2/sets/run/pass/sets-run-pass.exp
  21ce638a759fcc83711516257ef094fd  gcc/testsuite/gm2/sets/run/pass/setshift.mod
  64c638d6714bdf042b377ba55d6a39b8  gcc/testsuite/gm2/sets/run/pass/setshift2.mod
  fef7514015c435a016141edea74b252b  gcc/testsuite/gm2/sets/run/pass/simple.mod
*************** fef7514015c435a016141edea74b252b  gcc/te
*** 102431,102437 ****
  d93ffac451cd75883d648722d233fc4f  gcc/testsuite/gm2/sets/run/pass/simple5.mod
  594bd0e14f8f6503d309d3c360587994  gcc/testsuite/gm2/sets/run/pass/simple6.mod
  05150f7878189d0ba7f261bdc7948b19  gcc/testsuite/gm2/sets/run/pass/simple7.mod
! 1d7c2a136becf534251c2c47a2612ff1  gcc/testsuite/gm2/switches/auto-init/fail/switches-auto-init-fail.exp
  d089057a33f33fb7304bbbda81e00fd7  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr.mod
  f456a6791fc712e654ace802ea0ba82e  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr2.mod
  308309de27c393e1d0a8b1652c93528d  gcc/testsuite/gm2/switches/case/fail/calendar.mod
--- 109669,109676 ----
  d93ffac451cd75883d648722d233fc4f  gcc/testsuite/gm2/sets/run/pass/simple5.mod
  594bd0e14f8f6503d309d3c360587994  gcc/testsuite/gm2/sets/run/pass/simple6.mod
  05150f7878189d0ba7f261bdc7948b19  gcc/testsuite/gm2/sets/run/pass/simple7.mod
! 91870351f2638b03a9fa87e56e67bf26  gcc/testsuite/gm2/sets/run/pass/simplepacked.mod
! a04f6df05c90c6ed54213199610ef67c  gcc/testsuite/gm2/switches/auto-init/fail/switches-auto-init-fail.exp
  d089057a33f33fb7304bbbda81e00fd7  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr.mod
  f456a6791fc712e654ace802ea0ba82e  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr2.mod
  308309de27c393e1d0a8b1652c93528d  gcc/testsuite/gm2/switches/case/fail/calendar.mod
*************** dbbbdc3c4a8efb4f8c32ae0b21d359bc  gcc/te
*** 102442,102459 ****
  02d8df16a0f58b8cadab2f9a11eee97c  gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod
  3e7233def33250fd04bf02d8e045e4c0  gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod
  bfddbc36778723efa8d7ed59115111f9  gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod
! e1b9345d9607e87b8a2ce4b5dc041586  gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp
  ff6bf63fd7a630738aded841db2ca752  gcc/testsuite/gm2/switches/case/pass/enumcase.mod
  1ec4f1e5bafeb1b485de0a23ce02c028  gcc/testsuite/gm2/switches/case/pass/enumcase2.mod
  c40b924cef7e13a85b6928ef4c2e6aa1  gcc/testsuite/gm2/switches/case/pass/subrangecase.mod
  aa328d3c0bfd6bf38f0300b854f073c7  gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod
  cc4cfc5e94ee1a5a7816c21fe7e275d1  gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod
  67973d78e2eaa7bd1bcf985fb18537b7  gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod
! dec6ae98b59a2abafcf531c0c81d0e41  gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp
  6c2959b3a298ed63cf8087ab405d07e0  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow.mod
  65038913196bbd28bc621c8c346d2069  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow2.mod
  7b9c6c074a99b5f66a8cf38970c1e0f5  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflowdiv1.mod
! f169c010b335b88ea97235a7efc9c150  gcc/testsuite/gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp
  e332f2ba335c0a731b80079b2cf9ddf0  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg.mod
  e283398d4a517282e0059697755a072d  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg2.mod
  834ecc488f96254c596246d22a138c0a  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposnegcall.mod
--- 109681,109698 ----
  02d8df16a0f58b8cadab2f9a11eee97c  gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod
  3e7233def33250fd04bf02d8e045e4c0  gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod
  bfddbc36778723efa8d7ed59115111f9  gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod
! b3076014728fe39ffc699e80e6154fea  gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp
  ff6bf63fd7a630738aded841db2ca752  gcc/testsuite/gm2/switches/case/pass/enumcase.mod
  1ec4f1e5bafeb1b485de0a23ce02c028  gcc/testsuite/gm2/switches/case/pass/enumcase2.mod
  c40b924cef7e13a85b6928ef4c2e6aa1  gcc/testsuite/gm2/switches/case/pass/subrangecase.mod
  aa328d3c0bfd6bf38f0300b854f073c7  gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod
  cc4cfc5e94ee1a5a7816c21fe7e275d1  gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod
  67973d78e2eaa7bd1bcf985fb18537b7  gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod
! 2130040e4d24de9d6567ecedcc89ad39  gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp
  6c2959b3a298ed63cf8087ab405d07e0  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow.mod
  65038913196bbd28bc621c8c346d2069  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow2.mod
  7b9c6c074a99b5f66a8cf38970c1e0f5  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflowdiv1.mod
! 58e021a1e9916b4490e6fae346a0d78a  gcc/testsuite/gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp
  e332f2ba335c0a731b80079b2cf9ddf0  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg.mod
  e283398d4a517282e0059697755a072d  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg2.mod
  834ecc488f96254c596246d22a138c0a  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposnegcall.mod
*************** e283398d4a517282e0059697755a072d  gcc/te
*** 102461,102484 ****
  b717bcfde2bcfe90ea5ba8cdb1237f59  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloornegpos.mod
  190cfdb6525cb056fb456816b0c036bc  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloorpospos.mod
  09be0149a04322801741c914a98294fa  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/lowdiv.mod
! e2ca8c8b0c0a6218670bf4021cb0ddd6  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/switches-check-all-plugin-iso-fail.exp
  b382803722a54461a8581f1bd2121d42  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/divceil.mod
  02092642b381dd16440e79664b464913  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/highdiv.mod
  cd2288cf3e5b70a29fa839336dc110a6  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/modulus.mod
  f30573c5fa1164614455cda6c961df83  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin1.mod
  7c8363a64d2d54c90533eb50c815e411  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin3.mod
! 107b5a3ea1ba67a8e6238b2827d79424  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.def
  67c1a6dab4f5a933639218de8073e9aa  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.mod
! e29b3c97d1f0f64f614e3cd0817d8191  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.def
  a989edc6b74e670ec7c89f213419e335  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.mod
! 1033ce4348ea08ef9ce57ddaf8008960  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.def
  afd5f57bb803a371d6b8000f8692d515  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.mod
! 982ea73c6b34f25633635a4181f7ed72  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.def
  72762bbca9ba29b7baab4256d2d8306e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.mod
! 7f0d20f4cf496990732dd55a457e4798  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.def
  fa0566c6a1309518349d4fb78760be47  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.mod
  c2258f9fc9b3e7e051c16329751e2ecf  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin9.mod
! 6bc215062922f512860835e1fe7c3c55  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/switches-check-all-plugin-pim2-fail.exp
  a658c122170cf5c993cd4b05572890c6  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange.mod
  796082576932e91c1bafd24e7b5c0322  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange2.mod
  bc4ce1cc7e196800ee185c42245e108e  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange3.mod
--- 109700,109723 ----
  b717bcfde2bcfe90ea5ba8cdb1237f59  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloornegpos.mod
  190cfdb6525cb056fb456816b0c036bc  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloorpospos.mod
  09be0149a04322801741c914a98294fa  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/lowdiv.mod
! 7d7aa3fe7532192a9322c422e054bded  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/switches-check-all-plugin-iso-fail.exp
  b382803722a54461a8581f1bd2121d42  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/divceil.mod
  02092642b381dd16440e79664b464913  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/highdiv.mod
  cd2288cf3e5b70a29fa839336dc110a6  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/modulus.mod
  f30573c5fa1164614455cda6c961df83  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin1.mod
  7c8363a64d2d54c90533eb50c815e411  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin3.mod
! 615329cb30097340a71da5d68d8ae6ac  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.def
  67c1a6dab4f5a933639218de8073e9aa  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.mod
! 617fe6b11f152789b276ff29cf3f6557  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.def
  a989edc6b74e670ec7c89f213419e335  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.mod
! 8a1df776b54b0d0e5067ea312b90daee  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.def
  afd5f57bb803a371d6b8000f8692d515  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.mod
! 58b5ac39343d1e752919abc51702085e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.def
  72762bbca9ba29b7baab4256d2d8306e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.mod
! c23e17c3c9ac2b10d62fca1a373765b7  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.def
  fa0566c6a1309518349d4fb78760be47  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.mod
  c2258f9fc9b3e7e051c16329751e2ecf  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin9.mod
! c2de676d12b85e75c6adc07a8e84aabc  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/switches-check-all-plugin-pim2-fail.exp
  a658c122170cf5c993cd4b05572890c6  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange.mod
  796082576932e91c1bafd24e7b5c0322  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange2.mod
  bc4ce1cc7e196800ee185c42245e108e  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange3.mod
*************** e65a2ee18af6367d04c317b4f945ee06  gcc/te
*** 102490,102555 ****
  4e02add310c2c84e6168affc1f9ea4bf  gcc/testsuite/gm2/switches/check-all/run/fail/multint1.mod
  3a3c1972ad33ea38614d03983ae74692  gcc/testsuite/gm2/switches/check-all/run/fail/multint2.mod
  4a8024c59a1f6ea06a366e6eff75878d  gcc/testsuite/gm2/switches/check-all/run/fail/multint3.mod
! 8055be42810563adf2bab04adcbc299b  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.def
  b944653fbd71b4f84da3caa402f3cca8  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.mod
  92fba1adf1580639ecc0ee77b132a3a1  gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod
  85dcc54a281e9f8dd3b249085ce7f7bc  gcc/testsuite/gm2/switches/check-all/run/fail/subrange.mod
! 2f64f6e8c01e43a1074ee835b8acd4da  gcc/testsuite/gm2/switches/check-all/run/fail/switches-check-all-run-fail.exp
  78f40fd53e001a978f262deab2dab4e9  gcc/testsuite/gm2/switches/check-all/run/fail/tinyrange.mod
  b7e3381c5fbd47528de1310c1fbfb3c2  gcc/testsuite/gm2/switches/check-all/run/pass/cardrange.mod
  90f9b5be684c9907fd573aa19d30ad65  gcc/testsuite/gm2/switches/check-all/run/pass/forcheck.mod
  926925e5b015a37d2245311e08645c01  gcc/testsuite/gm2/switches/check-all/run/pass/subrange.mod
! 7c4ca9fa1d682b108167b34da26fd5c4  gcc/testsuite/gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp
! cbe9ccd54baf7e62855afb059a29857e  gcc/testsuite/gm2/switches/extended-opaque/fail/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/fail/a.mod
! bf59779fa5b94c014b82c0219facff41  gcc/testsuite/gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp
! cbe9ccd54baf7e62855afb059a29857e  gcc/testsuite/gm2/switches/extended-opaque/pass/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/pass/a.mod
  6945d30746143597c0e07b03cd2052fc  gcc/testsuite/gm2/switches/extended-opaque/pass/b.mod
! 7bd51674bd3b3bf03e6c4b8788950fae  gcc/testsuite/gm2/switches/extended-opaque/pass/switches-extended-opaque-pass.exp
  08c4bfa50ae955c15bbda61a68064de4  gcc/testsuite/gm2/switches/iso/run/pass/modulus.mod
  256de4fca238da94ccd2da70b0cbb2f7  gcc/testsuite/gm2/switches/iso/run/pass/modulus4.mod
! c961472420e2738e386da5bcf74fa884  gcc/testsuite/gm2/switches/iso/run/pass/switches-iso-run-pass.exp
! b65d39b65ebbf02088570c3ff04a0198  gcc/testsuite/gm2/switches/makeall/fail/switches-makeall-fail.exp
  61f86ac12627757e14d86029cd6af8fb  gcc/testsuite/gm2/switches/makeall/fail/test.def
  ac70e24807181c5bade8e6869fca0000  gcc/testsuite/gm2/switches/makeall/fail/test.mod
! b5055c19eb2f2493a9d9b7a81ac7bf95  gcc/testsuite/gm2/switches/makeall/pass/switches-makeall-pass.exp
  e64523b7502cc4a326c69a5fb2bb632b  gcc/testsuite/gm2/switches/makeall/pass/test.def
  5005c3f41a18fef2b4c7c178890d77f3  gcc/testsuite/gm2/switches/makeall/pass/test.mod
! c2ff9a3f3047b66a6b332de244daef96  gcc/testsuite/gm2/switches/none/run/pass/gm2-none.exp
  9e07fd151c648b57e14d2059c6e86911  gcc/testsuite/gm2/switches/none/run/pass/hello.mod
  7f4a9fd88d8c6bdacbe9bd3f609520c1  gcc/testsuite/gm2/switches/optimization/run/pass/fact.mod
! 8b3ac30a41dea496ba9ec2a648383d74  gcc/testsuite/gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp
! d6b8e8430129cd445aeda6f70929ea86  gcc/testsuite/gm2/switches/pedantic-params/fail/a.def
  d083f2149e966c7f4a3cf7a592213e6e  gcc/testsuite/gm2/switches/pedantic-params/fail/a.mod
! 474afc5122aabb91025b45245f24f6f2  gcc/testsuite/gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp
! 6ce3f51e3aebbbf133326589f06f8d7d  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.def
  fd422a739cead1ddd9341f7ffef6c32a  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod
! f753bdefc77f9a2b86fbba44c4214213  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.def
  0bcc2d7b0cd1e82595b33fe9b803d2e1  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod
! f1238e8773586758e731cbfd6d70cc2a  gcc/testsuite/gm2/switches/pedantic-params/pass/switches-pedantic-params-pass.exp
  c6936819180ff9d4dfdae9824dd4a6c7  gcc/testsuite/gm2/switches/pedantic/fail/onlywrite.mod
  2202381eba33ede99f7975591edab10a  gcc/testsuite/gm2/switches/pedantic/fail/readb4.mod
  6cdc4d41b80bc573e1f0c2f9192e8bb4  gcc/testsuite/gm2/switches/pedantic/pass/hello.mod
! d155c1fd060e23d0ac5ab7d3f08dd943  gcc/testsuite/gm2/switches/pedantic/pass/switches-pedantic-pass.exp
  1ebd10545b002997fc2e8c2c86fe2559  gcc/testsuite/gm2/switches/pic/run/pass/func.c
  056ddeaf7cd706574ba41abb899b72be  gcc/testsuite/gm2/switches/pic/run/pass/func.mod
  c858c354cae5af0cc80bad192125e919  gcc/testsuite/gm2/switches/pic/run/pass/func2.c
  2abff8e2fdd72e7a36004edaf4893abd  gcc/testsuite/gm2/switches/pic/run/pass/func2.mod
! 6b0c51f02f05c68a613b1b3276677d7a  gcc/testsuite/gm2/switches/pic/run/pass/switches-pic-run-pass.exp
  72595eba68a1caa34641927dc7b21d9b  gcc/testsuite/gm2/switches/pim2/run/pass/modulus.mod
! 5819305dc001b8200f46a92a38d09457  gcc/testsuite/gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp
  113d1259345fa7dedde31514c400a268  gcc/testsuite/gm2/switches/pim3/run/pass/modulus.mod
! 9562e451d3353face59c633376c57f91  gcc/testsuite/gm2/switches/pim3/run/pass/switches-pim3-run-pass.exp
  c614f2bf36f76d40b66a85136a485450  gcc/testsuite/gm2/switches/pim4/run/pass/FpuIOBug.mod
  6fd9d7b88939abbde25a239c8d33ab51  gcc/testsuite/gm2/switches/pim4/run/pass/InOutBug.mod
  88027dcbd148b1ca4a96e8d4916ecd87  gcc/testsuite/gm2/switches/pim4/run/pass/NumberIOBug.mod
  3a517fef09b36f6af522a00f6bb54d70  gcc/testsuite/gm2/switches/pim4/run/pass/modulus.mod
  b58ba2aab7402cfa77be0fa158531bd0  gcc/testsuite/gm2/switches/pim4/run/pass/modulus2.mod
! 16edd6995a0b1ad6f21958f5da032db6  gcc/testsuite/gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp
  28c8626586a9f9b4615e6438a5bec649  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/cascadedif.mod
! d79c489eac4c824b7160907b56dce5a9  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp
! 7f7545dafa03c32a14f85f6814a0a7fe  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/switches-uninit-variable-checking-fail.exp
  6310ec328a140f2558608309168e6be4  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testinit.mod
  fda84bc80cda3914158ba6c42a60c194  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge.mod
  d80e43beb8b1bb959db1e176cd7d2e91  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge2.mod
--- 109729,109794 ----
  4e02add310c2c84e6168affc1f9ea4bf  gcc/testsuite/gm2/switches/check-all/run/fail/multint1.mod
  3a3c1972ad33ea38614d03983ae74692  gcc/testsuite/gm2/switches/check-all/run/fail/multint2.mod
  4a8024c59a1f6ea06a366e6eff75878d  gcc/testsuite/gm2/switches/check-all/run/fail/multint3.mod
! 8ebb2bcdf1a1c77bbd17ead793e91e02  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.def
  b944653fbd71b4f84da3caa402f3cca8  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.mod
  92fba1adf1580639ecc0ee77b132a3a1  gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod
  85dcc54a281e9f8dd3b249085ce7f7bc  gcc/testsuite/gm2/switches/check-all/run/fail/subrange.mod
! 7a2225cec2da6dbcb0f342fe87242637  gcc/testsuite/gm2/switches/check-all/run/fail/switches-check-all-run-fail.exp
  78f40fd53e001a978f262deab2dab4e9  gcc/testsuite/gm2/switches/check-all/run/fail/tinyrange.mod
  b7e3381c5fbd47528de1310c1fbfb3c2  gcc/testsuite/gm2/switches/check-all/run/pass/cardrange.mod
  90f9b5be684c9907fd573aa19d30ad65  gcc/testsuite/gm2/switches/check-all/run/pass/forcheck.mod
  926925e5b015a37d2245311e08645c01  gcc/testsuite/gm2/switches/check-all/run/pass/subrange.mod
! d2141836dbe1fc26477735a5486431fc  gcc/testsuite/gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp
! 8d53e199fa47171240a05ecb391694a4  gcc/testsuite/gm2/switches/extended-opaque/fail/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/fail/a.mod
! 45bded077a404141a8e2d49dbff92e31  gcc/testsuite/gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp
! 8d53e199fa47171240a05ecb391694a4  gcc/testsuite/gm2/switches/extended-opaque/pass/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/pass/a.mod
  6945d30746143597c0e07b03cd2052fc  gcc/testsuite/gm2/switches/extended-opaque/pass/b.mod
! 5deca654a7a2a5edc995c56e7ee81d33  gcc/testsuite/gm2/switches/extended-opaque/pass/switches-extended-opaque-pass.exp
  08c4bfa50ae955c15bbda61a68064de4  gcc/testsuite/gm2/switches/iso/run/pass/modulus.mod
  256de4fca238da94ccd2da70b0cbb2f7  gcc/testsuite/gm2/switches/iso/run/pass/modulus4.mod
! 1615c64ada12504f082540449431cc0d  gcc/testsuite/gm2/switches/iso/run/pass/switches-iso-run-pass.exp
! 055d00779416138b3e5546fbfd68d969  gcc/testsuite/gm2/switches/makeall/fail/switches-makeall-fail.exp
  61f86ac12627757e14d86029cd6af8fb  gcc/testsuite/gm2/switches/makeall/fail/test.def
  ac70e24807181c5bade8e6869fca0000  gcc/testsuite/gm2/switches/makeall/fail/test.mod
! 07646079f8d0aab56f1aa9fe73702b08  gcc/testsuite/gm2/switches/makeall/pass/switches-makeall-pass.exp
  e64523b7502cc4a326c69a5fb2bb632b  gcc/testsuite/gm2/switches/makeall/pass/test.def
  5005c3f41a18fef2b4c7c178890d77f3  gcc/testsuite/gm2/switches/makeall/pass/test.mod
! 2d327149edc989270b7198aebfd57268  gcc/testsuite/gm2/switches/none/run/pass/gm2-none.exp
  9e07fd151c648b57e14d2059c6e86911  gcc/testsuite/gm2/switches/none/run/pass/hello.mod
  7f4a9fd88d8c6bdacbe9bd3f609520c1  gcc/testsuite/gm2/switches/optimization/run/pass/fact.mod
! 04893bced6e84ae01eff30822adc8c39  gcc/testsuite/gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp
! 57f079fe3fae85c31093c689467ddf5c  gcc/testsuite/gm2/switches/pedantic-params/fail/a.def
  d083f2149e966c7f4a3cf7a592213e6e  gcc/testsuite/gm2/switches/pedantic-params/fail/a.mod
! 8a73f7d6d7f60bc44b16a61e8159d6d2  gcc/testsuite/gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp
! fcbe31b3d4560713715a841f8730d29d  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.def
  fd422a739cead1ddd9341f7ffef6c32a  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod
! c292a27cd3d0ef7360b6ad7a15086361  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.def
  0bcc2d7b0cd1e82595b33fe9b803d2e1  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod
! dce275fbc121c913d4034992a874ff23  gcc/testsuite/gm2/switches/pedantic-params/pass/switches-pedantic-params-pass.exp
  c6936819180ff9d4dfdae9824dd4a6c7  gcc/testsuite/gm2/switches/pedantic/fail/onlywrite.mod
  2202381eba33ede99f7975591edab10a  gcc/testsuite/gm2/switches/pedantic/fail/readb4.mod
  6cdc4d41b80bc573e1f0c2f9192e8bb4  gcc/testsuite/gm2/switches/pedantic/pass/hello.mod
! accc739bdcb7891fbc6e26230d287430  gcc/testsuite/gm2/switches/pedantic/pass/switches-pedantic-pass.exp
  1ebd10545b002997fc2e8c2c86fe2559  gcc/testsuite/gm2/switches/pic/run/pass/func.c
  056ddeaf7cd706574ba41abb899b72be  gcc/testsuite/gm2/switches/pic/run/pass/func.mod
  c858c354cae5af0cc80bad192125e919  gcc/testsuite/gm2/switches/pic/run/pass/func2.c
  2abff8e2fdd72e7a36004edaf4893abd  gcc/testsuite/gm2/switches/pic/run/pass/func2.mod
! feee3b56ab11f3a3d334af693003e58c  gcc/testsuite/gm2/switches/pic/run/pass/switches-pic-run-pass.exp
  72595eba68a1caa34641927dc7b21d9b  gcc/testsuite/gm2/switches/pim2/run/pass/modulus.mod
! 25905f2bda84e135deff47de3e54741f  gcc/testsuite/gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp
  113d1259345fa7dedde31514c400a268  gcc/testsuite/gm2/switches/pim3/run/pass/modulus.mod
! 06aee9e0abc32e5789d450ee2281aacb  gcc/testsuite/gm2/switches/pim3/run/pass/switches-pim3-run-pass.exp
  c614f2bf36f76d40b66a85136a485450  gcc/testsuite/gm2/switches/pim4/run/pass/FpuIOBug.mod
  6fd9d7b88939abbde25a239c8d33ab51  gcc/testsuite/gm2/switches/pim4/run/pass/InOutBug.mod
  88027dcbd148b1ca4a96e8d4916ecd87  gcc/testsuite/gm2/switches/pim4/run/pass/NumberIOBug.mod
  3a517fef09b36f6af522a00f6bb54d70  gcc/testsuite/gm2/switches/pim4/run/pass/modulus.mod
  b58ba2aab7402cfa77be0fa158531bd0  gcc/testsuite/gm2/switches/pim4/run/pass/modulus2.mod
! 443653a09c8bf971001f26c78891208c  gcc/testsuite/gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp
  28c8626586a9f9b4615e6438a5bec649  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/cascadedif.mod
! 1bca128d84023742b7d0bd0db1044ec4  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp
! 0b9e33b97394e4789243cb69de96d854  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/switches-uninit-variable-checking-fail.exp
  6310ec328a140f2558608309168e6be4  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testinit.mod
  fda84bc80cda3914158ba6c42a60c194  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge.mod
  d80e43beb8b1bb959db1e176cd7d2e91  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge2.mod
*************** fc500fe91b9e17b32f11bb39148bfde8  gcc/te
*** 102565,102571 ****
  355cff59d76cf15202550d2987a94e84  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr2.mod
  67b6fff2c48f331b8c841c06f6cbe554  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr3.mod
  e57db779220b698b12ed09ef48bd5ae4  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/assignparam.mod
! 65dc2156d57ef3f256d387c84ffda9ac  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/switches-uninit-variable-checking-pass.exp
  2a5f55481a691b80c20eeab5056edd08  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit3.mod
  4eb735be281d434a629efa45cca56975  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit5.mod
  ce78e4a2e2e90bd7686173525fa4a816  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testsmallrec.mod
--- 109804,109810 ----
  355cff59d76cf15202550d2987a94e84  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr2.mod
  67b6fff2c48f331b8c841c06f6cbe554  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr3.mod
  e57db779220b698b12ed09ef48bd5ae4  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/assignparam.mod
! 3da6c81204d177e274f0cfb173f632f9  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/switches-uninit-variable-checking-pass.exp
  2a5f55481a691b80c20eeab5056edd08  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit3.mod
  4eb735be281d434a629efa45cca56975  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit5.mod
  ce78e4a2e2e90bd7686173525fa4a816  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testsmallrec.mod
*************** ce78e4a2e2e90bd7686173525fa4a816  gcc/te
*** 102575,102581 ****
  322b15858f421696bef05552d686a83c  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr2.mod
  4b408be653b22012cea202444cae25cd  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr3.mod
  852b4075b6606cbf6203ca0bfdbea4ce  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/tiny.mod
! bc5d37c3d3247447ce0b6c3fba2242a4  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/switches-uninit-variable-checking-procedures-fail.exp
  14fa65201d2eaf644eeb9cc3c08caeaf  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose.mod
  933c90a544cea11206f010568f10fb0c  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose2.mod
  feca2278c7a93de24a2a5f69313cd838  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose3.mod
--- 109814,109820 ----
  322b15858f421696bef05552d686a83c  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr2.mod
  4b408be653b22012cea202444cae25cd  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr3.mod
  852b4075b6606cbf6203ca0bfdbea4ce  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/tiny.mod
! e30d10227abe6e7958378e6a4602167d  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/switches-uninit-variable-checking-procedures-fail.exp
  14fa65201d2eaf644eeb9cc3c08caeaf  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose.mod
  933c90a544cea11206f010568f10fb0c  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose2.mod
  feca2278c7a93de24a2a5f69313cd838  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose3.mod
*************** aaeea2ebbdb4989a022b406ea73c0a89  gcc/te
*** 102589,102595 ****
  139cc58179e858447d14d40729713785  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnil.mod
  a9844c4e2f11c74b0ff3203f5313692f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testptrptr.mod
  abb996caf5d571a6c718699c4db13786  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/assignparam2.mod
! c8ed7565e98edc246f6a5ffe341a5e96  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/switches-uninit-variable-checking-procedures-pass.exp
  68b7d1cb191d8e60c6e64d2699c5ca3b  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose3.mod
  f96078a2945372b7af2eb7aa9e817995  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose4.mod
  7be5a6178b17ee5817efc406b438095f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testnew5.mod
--- 109828,109834 ----
  139cc58179e858447d14d40729713785  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnil.mod
  a9844c4e2f11c74b0ff3203f5313692f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testptrptr.mod
  abb996caf5d571a6c718699c4db13786  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/assignparam2.mod
! 07a66ef8cab057a95245633076ebff5f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/switches-uninit-variable-checking-procedures-pass.exp
  68b7d1cb191d8e60c6e64d2699c5ca3b  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose3.mod
  f96078a2945372b7af2eb7aa9e817995  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose4.mod
  7be5a6178b17ee5817efc406b438095f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testnew5.mod
*************** cf720b48a6a554fbbe7351df1884745e  gcc/te
*** 102600,102606 ****
  fb9ebcb42d97c3c0a41d6cc930036ba6  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testptrptr.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/switches/whole-program/pass/run/hello.mod
  a5577432f39738e430bd88cb60de19e3  gcc/testsuite/gm2/switches/whole-program/pass/run/hello2.mod
! 0899a6a19439f4e8441e0be826cd0621  gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp
  d2257554df9979e0f81558414af765f5  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny.mod
  0e2791268d29463c5e4fa5f11ae72d57  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny2.mod
  ff6285917ee200789e5238065c2f3882  gcc/testsuite/gm2/types/bitset.mod
--- 109839,109845 ----
  fb9ebcb42d97c3c0a41d6cc930036ba6  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testptrptr.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/switches/whole-program/pass/run/hello.mod
  a5577432f39738e430bd88cb60de19e3  gcc/testsuite/gm2/switches/whole-program/pass/run/hello2.mod
! 9587a3561d18a3a59786fcedde333126  gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp
  d2257554df9979e0f81558414af765f5  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny.mod
  0e2791268d29463c5e4fa5f11ae72d57  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny2.mod
  ff6285917ee200789e5238065c2f3882  gcc/testsuite/gm2/types/bitset.mod
*************** c5e8f36d46ebaddf2c3766362672c885  gcc/te
*** 102611,102618 ****
  1c8e292e685936cbc9fdbfb7128f734a  gcc/testsuite/gm2/types/prog35.mod
  8d689912b47842ee7f86fc04a2657097  gcc/testsuite/gm2/types/real.mod
  686ca26679509e30a5f211809900ac49  gcc/testsuite/gm2/types/run/pass/d.c
! e64ae5d5462c4f7a87460b630586fc55  gcc/testsuite/gm2/types/run/pass/d.def
! e222f2050f577a055627da116d022519  gcc/testsuite/gm2/types/run/pass/types-run-pass.exp
  74bc7ea69e1b9efe8e7250a12c6cb4f3  gcc/testsuite/gm2/types/run/pass/varient4.mod
  113959d79568af1b0c8f34e49f3e9a64  gcc/testsuite/gm2/types/run/pass/varient5.mod
  e32b0522c9c90a7f0fca3ce728ff6a8c  gcc/testsuite/gm2/types/string.mod
--- 109850,109857 ----
  1c8e292e685936cbc9fdbfb7128f734a  gcc/testsuite/gm2/types/prog35.mod
  8d689912b47842ee7f86fc04a2657097  gcc/testsuite/gm2/types/real.mod
  686ca26679509e30a5f211809900ac49  gcc/testsuite/gm2/types/run/pass/d.c
! 4b043a447ca18541877a5981a17a8252  gcc/testsuite/gm2/types/run/pass/d.def
! 3e158e5bd2c0e62178331f1759ef0fca  gcc/testsuite/gm2/types/run/pass/types-run-pass.exp
  74bc7ea69e1b9efe8e7250a12c6cb4f3  gcc/testsuite/gm2/types/run/pass/varient4.mod
  113959d79568af1b0c8f34e49f3e9a64  gcc/testsuite/gm2/types/run/pass/varient5.mod
  e32b0522c9c90a7f0fca3ce728ff6a8c  gcc/testsuite/gm2/types/string.mod
*************** f96e1401fa2ffaa7f9555b717c935d68  gcc/te
*** 102622,102636 ****
  767f35e2fe10661062bc2013ca978a22  gcc/testsuite/gm2/types/type4.mod
  9613c77c4b0cf18f1619ad8350c9c3b7  gcc/testsuite/gm2/types/varient.mod
  222c0b6352ac7db11b7ea622a1371af8  gcc/testsuite/gm2/types/word.mod
! cbae1f9bf71ad59f3217522c43c7f33d  gcc/testsuite/gm2/ulmlib/pass/ulmlib-pass.exp
! 4fc9c955f764aeff104a09e689e9a4cf  gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
! cbae1f9bf71ad59f3217522c43c7f33d  gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
  8abe9ef3450094aa1c3e3d69af88cd3c  gcc/testsuite/gm2/warnings/returntype/fail/badreturn.mod
! 4116b53577188c9763f2b8108d6fffc7  gcc/testsuite/gm2/warnings/returntype/fail/warnings-returntype-fail.exp
  977b0420916dd86f3d97d331b4f26ce2  gcc/testsuite/gm2/warnings/returntype/pass/Termbase.mod
  ff010d02cfb97393f7dc903c786797b1  gcc/testsuite/gm2/warnings/returntype/pass/goodreturn.mod
  9887506124e271782b27cb7b09d31c9a  gcc/testsuite/gm2/warnings/returntype/pass/keypressedsimple.mod
! 198507b8e7f441303cb263f76289a157  gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
  21ceb11eb92493844b53651eace4980f  gcc/testsuite/gm2/warnings/todo/nestedproc6.mod
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/warnings/todo/options
  34e6e04b35f94b9498a0c1809c555ea5  gcc/testsuite/gm2/warnings/todo/testfor.mod
--- 109861,109875 ----
  767f35e2fe10661062bc2013ca978a22  gcc/testsuite/gm2/types/type4.mod
  9613c77c4b0cf18f1619ad8350c9c3b7  gcc/testsuite/gm2/types/varient.mod
  222c0b6352ac7db11b7ea622a1371af8  gcc/testsuite/gm2/types/word.mod
! 1ebcd7aeadc5c98632ba344dab124402  gcc/testsuite/gm2/ulmlib/pass/ulmlib-pass.exp
! 2d5bd8b854eb4bdae9af532e9a2bd4bf  gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
! 1ebcd7aeadc5c98632ba344dab124402  gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
  8abe9ef3450094aa1c3e3d69af88cd3c  gcc/testsuite/gm2/warnings/returntype/fail/badreturn.mod
! c0703cd79a4fdebb52b53cd6068448b3  gcc/testsuite/gm2/warnings/returntype/fail/warnings-returntype-fail.exp
  977b0420916dd86f3d97d331b4f26ce2  gcc/testsuite/gm2/warnings/returntype/pass/Termbase.mod
  ff010d02cfb97393f7dc903c786797b1  gcc/testsuite/gm2/warnings/returntype/pass/goodreturn.mod
  9887506124e271782b27cb7b09d31c9a  gcc/testsuite/gm2/warnings/returntype/pass/keypressedsimple.mod
! 0bc7cf29a7748924a7e7c9acb154833b  gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
  21ceb11eb92493844b53651eace4980f  gcc/testsuite/gm2/warnings/todo/nestedproc6.mod
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/warnings/todo/options
  34e6e04b35f94b9498a0c1809c555ea5  gcc/testsuite/gm2/warnings/todo/testfor.mod
*************** b3a316ada43c24ff36cbe71860fae91c  gcc/te
*** 102748,102753 ****
--- 109987,109993 ----
  674ef7d1ee7e35c007365502de84ded5  gcc/testsuite/gnat.dg/aggr3.adb
  26bbb4b239255e447bbe6c32ccb6f5f3  gcc/testsuite/gnat.dg/aggr30.adb
  3c5d0783cbdc3181db59d9f27a9e1a2d  gcc/testsuite/gnat.dg/aggr30.ads
+ 4c012319986c2dce532428fea4934ee2  gcc/testsuite/gnat.dg/aggr31.adb
  35168b6dce753ec723ff0dcf21d977d0  gcc/testsuite/gnat.dg/aggr4.adb
  a12ec40d7ebc1ab08b05b0d1f6a57bc4  gcc/testsuite/gnat.dg/aggr7.adb
  39fba9f7f4870b15e9c37bcf9a358858  gcc/testsuite/gnat.dg/aggr8.adb
*************** c937e00c9ea683419dcc198a58233ede  gcc/te
*** 102773,102780 ****
  bda7acf0d24d57466a356930053816bf  gcc/testsuite/gnat.dg/alignment11.adb
  8b1f87db1d3f7fb907713fd4959be602  gcc/testsuite/gnat.dg/alignment12.adb
  3e04e3aa84b2902e9b7155f66856e159  gcc/testsuite/gnat.dg/alignment13.adb
! 3706157be04421c1b7601beffd85ca19  gcc/testsuite/gnat.dg/alignment14.adb
! 447878a0b453259fb9573e37f2ee0e47  gcc/testsuite/gnat.dg/alignment15.adb
  212d4d6c7f98bb3c9f78d2ef06d0e6ca  gcc/testsuite/gnat.dg/alignment2.adb
  280c7ef033b3683ec80ceb1ef92a55b8  gcc/testsuite/gnat.dg/alignment3.adb
  a9c8dd283cf041a6a2fb8d49c1421144  gcc/testsuite/gnat.dg/alignment4.adb
--- 110013,110020 ----
  bda7acf0d24d57466a356930053816bf  gcc/testsuite/gnat.dg/alignment11.adb
  8b1f87db1d3f7fb907713fd4959be602  gcc/testsuite/gnat.dg/alignment12.adb
  3e04e3aa84b2902e9b7155f66856e159  gcc/testsuite/gnat.dg/alignment13.adb
! 9bf9c0e1dabaf717266691a14434d79e  gcc/testsuite/gnat.dg/alignment14.adb
! 1098cbaac5fa1044a9429bc27de1c9d8  gcc/testsuite/gnat.dg/alignment15.adb
  212d4d6c7f98bb3c9f78d2ef06d0e6ca  gcc/testsuite/gnat.dg/alignment2.adb
  280c7ef033b3683ec80ceb1ef92a55b8  gcc/testsuite/gnat.dg/alignment3.adb
  a9c8dd283cf041a6a2fb8d49c1421144  gcc/testsuite/gnat.dg/alignment4.adb
*************** ddc701fbb7f57d0a25d28560146d5ed9  gcc/te
*** 102862,102867 ****
--- 110102,110109 ----
  ff8d86344e3cf4b355165a6b1650c479  gcc/testsuite/gnat.dg/array40_pkg.ads
  20033ff6fd39472646777c626355689c  gcc/testsuite/gnat.dg/array41.adb
  65bdf5c810fd15d3e47f76d9f6f98ff9  gcc/testsuite/gnat.dg/array41.ads
+ cb2b3a0811f1ec09ea2fe486cccb5614  gcc/testsuite/gnat.dg/array42.adb
+ 910ed0700f4bd9451b29b115aeaa5d82  gcc/testsuite/gnat.dg/array42_pkg.ads
  3d29182d58b83e2662df3d9534b80184  gcc/testsuite/gnat.dg/array5.adb
  a9a0725729c4b56fd51ac830fd3cdc3a  gcc/testsuite/gnat.dg/array6.adb
  c428e267874da1cd58bd5e0392d75d62  gcc/testsuite/gnat.dg/array7.adb
*************** d2cec4b227cf238055a701ff7f013b44  gcc/te
*** 102888,102894 ****
  4be5e03b411318fc574c05cf953667bd  gcc/testsuite/gnat.dg/asynch.adb
  926c8b6a28f7843bfa4b034ba910f7e1  gcc/testsuite/gnat.dg/asynch.ads
  ab8d6519d24b9674ec96064e6d94523a  gcc/testsuite/gnat.dg/atomic1.adb
! 9ce4c689bc12967210dc4a43e1d06aef  gcc/testsuite/gnat.dg/atomic10.adb
  fd4af63fce2ba980aed74d494acc32e2  gcc/testsuite/gnat.dg/atomic11.adb
  042459face4e508704400333b40bf78f  gcc/testsuite/gnat.dg/atomic11_pkg1.ads
  3e535ac02cc7fd253f8dbefaf60a7f85  gcc/testsuite/gnat.dg/atomic11_pkg2.ads
--- 110130,110136 ----
  4be5e03b411318fc574c05cf953667bd  gcc/testsuite/gnat.dg/asynch.adb
  926c8b6a28f7843bfa4b034ba910f7e1  gcc/testsuite/gnat.dg/asynch.ads
  ab8d6519d24b9674ec96064e6d94523a  gcc/testsuite/gnat.dg/atomic1.adb
! 027b7b9cd1047fa0b6622db64743cd51  gcc/testsuite/gnat.dg/atomic10.adb
  fd4af63fce2ba980aed74d494acc32e2  gcc/testsuite/gnat.dg/atomic11.adb
  042459face4e508704400333b40bf78f  gcc/testsuite/gnat.dg/atomic11_pkg1.ads
  3e535ac02cc7fd253f8dbefaf60a7f85  gcc/testsuite/gnat.dg/atomic11_pkg2.ads
*************** dc0d018c7ef4988da05274a87a491db9  gcc/te
*** 102915,102922 ****
  1e3f2b6f0d918e36ae539ab32f3a4b31  gcc/testsuite/gnat.dg/atomic7_pkg2.ads
  16c10ef2b56763079ce902fa8a6be517  gcc/testsuite/gnat.dg/atomic8.adb
  9cf0427260327c8df6b99da823648ff4  gcc/testsuite/gnat.dg/atomic9.adb
  3a29826c9a71b419b0c2323869c82f42  gcc/testsuite/gnat.dg/bad_array.adb
! 9108155728ba28c1a0da953357d3b97a  gcc/testsuite/gnat.dg/bias1.adb
  f1da017e79e481af350005333250268b  gcc/testsuite/gnat.dg/bias2.adb
  aae39b549f5bb7a2b837495c637aaa94  gcc/testsuite/gnat.dg/biased_subtype.adb
  9bbc182ee19d36c4abbd7d6046ac5664  gcc/testsuite/gnat.dg/biased_uc.adb
--- 110157,110165 ----
  1e3f2b6f0d918e36ae539ab32f3a4b31  gcc/testsuite/gnat.dg/atomic7_pkg2.ads
  16c10ef2b56763079ce902fa8a6be517  gcc/testsuite/gnat.dg/atomic8.adb
  9cf0427260327c8df6b99da823648ff4  gcc/testsuite/gnat.dg/atomic9.adb
+ d0f41363293cf0ce8de4f15905ffba68  gcc/testsuite/gnat.dg/auto_var_init.adb
  3a29826c9a71b419b0c2323869c82f42  gcc/testsuite/gnat.dg/bad_array.adb
! 8ed54c1eb565f97d5511a00d165ab799  gcc/testsuite/gnat.dg/bias1.adb
  f1da017e79e481af350005333250268b  gcc/testsuite/gnat.dg/bias2.adb
  aae39b549f5bb7a2b837495c637aaa94  gcc/testsuite/gnat.dg/biased_subtype.adb
  9bbc182ee19d36c4abbd7d6046ac5664  gcc/testsuite/gnat.dg/biased_uc.adb
*************** d5b17f0a1969c63659288225fe45fac0  gcc/te
*** 103077,103083 ****
  fdb068baf7b1989ef7f7e9285dfd7ad6  gcc/testsuite/gnat.dg/debug2_pkg.ads
  c974de486b7bce67ebf587c5650037c1  gcc/testsuite/gnat.dg/debug3.adb
  a886032c55852c4ea79971d1f377b057  gcc/testsuite/gnat.dg/debug3.ads
! 00416c1ffc3228fc0f9bd2f529abeaeb  gcc/testsuite/gnat.dg/debug4.adb
  972c01247ac04a4b8e00f62a95d4f0fc  gcc/testsuite/gnat.dg/debug4_pkg.adb
  6ea95671601e0326e72591fbfc5de13a  gcc/testsuite/gnat.dg/debug4_pkg.ads
  c1bc8b0ecc894424728b5b4911bf1cc6  gcc/testsuite/gnat.dg/debug5.adb
--- 110320,110326 ----
  fdb068baf7b1989ef7f7e9285dfd7ad6  gcc/testsuite/gnat.dg/debug2_pkg.ads
  c974de486b7bce67ebf587c5650037c1  gcc/testsuite/gnat.dg/debug3.adb
  a886032c55852c4ea79971d1f377b057  gcc/testsuite/gnat.dg/debug3.ads
! 36847ec89fcb76731f4aceb64957f49f  gcc/testsuite/gnat.dg/debug4.adb
  972c01247ac04a4b8e00f62a95d4f0fc  gcc/testsuite/gnat.dg/debug4_pkg.adb
  6ea95671601e0326e72591fbfc5de13a  gcc/testsuite/gnat.dg/debug4_pkg.ads
  c1bc8b0ecc894424728b5b4911bf1cc6  gcc/testsuite/gnat.dg/debug5.adb
*************** dc7b3ebaa7caa13b60d6eb8a552ad48d  gcc/te
*** 103126,103132 ****
  e0b9cf9f7a4c88212b3b340e33e89929  gcc/testsuite/gnat.dg/derived_type7.ads
  f5b545465e83981c80e3d7c01214b904  gcc/testsuite/gnat.dg/dflt_init_cond.adb
  2fbb62544d92c6af0d0b351a83112cd0  gcc/testsuite/gnat.dg/dflt_init_cond_pkg.ads
! cbd99f2f614d59c939daf342ae71c0aa  gcc/testsuite/gnat.dg/dg.exp
  ca2670a9b24cc9d0cf8852e656a65373  gcc/testsuite/gnat.dg/dimensions.adb
  f28a5b105f7585427df0167f61bf7240  gcc/testsuite/gnat.dg/dimensions.ads
  40bad3acc354f2f19a9bb73c10fd1db8  gcc/testsuite/gnat.dg/dimensions2.adb
--- 110369,110375 ----
  e0b9cf9f7a4c88212b3b340e33e89929  gcc/testsuite/gnat.dg/derived_type7.ads
  f5b545465e83981c80e3d7c01214b904  gcc/testsuite/gnat.dg/dflt_init_cond.adb
  2fbb62544d92c6af0d0b351a83112cd0  gcc/testsuite/gnat.dg/dflt_init_cond_pkg.ads
! b692f3a288ae41b7fb72728571eb222f  gcc/testsuite/gnat.dg/dg.exp
  ca2670a9b24cc9d0cf8852e656a65373  gcc/testsuite/gnat.dg/dimensions.adb
  f28a5b105f7585427df0167f61bf7240  gcc/testsuite/gnat.dg/dimensions.ads
  40bad3acc354f2f19a9bb73c10fd1db8  gcc/testsuite/gnat.dg/dimensions2.adb
*************** cef4cbf18f95208dd8c0b2e5062761c5  gcc/te
*** 103402,103408 ****
  d0689d7d2df99b8a9bdfa7461addbca6  gcc/testsuite/gnat.dg/g_tables.adb
  42a1a84a561d8513a3ddb03c1873df86  gcc/testsuite/gnat.dg/g_tables.ads
  e0d843a3b7f190ee400816b919cc276e  gcc/testsuite/gnat.dg/gcov/check.adb
! 0231b17f8ef26e446f3b0be837d463b4  gcc/testsuite/gnat.dg/gcov/gcov.exp
  98054bebce7ebc5df6d4a6a4178bf29c  gcc/testsuite/gnat.dg/gen_disp.adb
  8ce8ee3ebe319b0b6252b4307844d6c5  gcc/testsuite/gnat.dg/gen_disp.ads
  914ecd342404a7e78b567e0eeef3fbc8  gcc/testsuite/gnat.dg/gen_formal_pkg.adb
--- 110645,110651 ----
  d0689d7d2df99b8a9bdfa7461addbca6  gcc/testsuite/gnat.dg/g_tables.adb
  42a1a84a561d8513a3ddb03c1873df86  gcc/testsuite/gnat.dg/g_tables.ads
  e0d843a3b7f190ee400816b919cc276e  gcc/testsuite/gnat.dg/gcov/check.adb
! ee601009d5c0a95b0cb8f1ba5af17c84  gcc/testsuite/gnat.dg/gcov/gcov.exp
  98054bebce7ebc5df6d4a6a4178bf29c  gcc/testsuite/gnat.dg/gen_disp.adb
  8ce8ee3ebe319b0b6252b4307844d6c5  gcc/testsuite/gnat.dg/gen_disp.ads
  914ecd342404a7e78b567e0eeef3fbc8  gcc/testsuite/gnat.dg/gen_formal_pkg.adb
*************** cb1449549fbec08e3825194300068909  gcc/te
*** 103433,103438 ****
--- 110676,110684 ----
  9a4ab87324b8c87d230d15befd39d45e  gcc/testsuite/gnat.dg/generic_inst13_pkg-nested_g.ads
  928dfbf6ec7df12eeb49a5f7acbb7417  gcc/testsuite/gnat.dg/generic_inst13_pkg-ops_g.ads
  2a5b88b3ac5eecd266342e44fafe6523  gcc/testsuite/gnat.dg/generic_inst13_pkg.ads
+ 9e7293f7fd3655a8da0bb7b827baa897  gcc/testsuite/gnat.dg/generic_inst14.adb
+ da22f29f94ebe295441ccc41597913b0  gcc/testsuite/gnat.dg/generic_inst14_pkg-child.ads
+ 29969c1ad7978ac871e75cd3b2d99efd  gcc/testsuite/gnat.dg/generic_inst14_pkg.ads
  bfa8ba450e641250f8eccf95997dd260  gcc/testsuite/gnat.dg/generic_inst2.adb
  063cf5c93b1a85bf617a62be0da63bdb  gcc/testsuite/gnat.dg/generic_inst2.ads
  2faefd507420ceafdccad8d472e66202  gcc/testsuite/gnat.dg/generic_inst2_c.ads
*************** a993c8f90bfd7fae87306fa97e7494a7  gcc/te
*** 103594,103605 ****
  2cfefc8b1675dc9f780be88f053a4776  gcc/testsuite/gnat.dg/inline20_q-io.ads
  d1e0331ddf49b9202d231a22a4f26f4c  gcc/testsuite/gnat.dg/inline20_q.ads
  4be180d98ef8f625ac2be74029bc421e  gcc/testsuite/gnat.dg/inline20_r.ads
! f4b70bbe5e397548679a63e9a556d712  gcc/testsuite/gnat.dg/inline21.adb
  01f6f06d99b7235c014d63637e98b5ce  gcc/testsuite/gnat.dg/inline21_g.ads
  2e5987e5b8efc0e3420b843049dfa514  gcc/testsuite/gnat.dg/inline21_h.adb
  6009f5d3fe4e938462557d5e9b9817b5  gcc/testsuite/gnat.dg/inline21_h.ads
  09c84b935605997d65ff35bbfdcddeb9  gcc/testsuite/gnat.dg/inline21_q.ads
! 1b38ad40650dbd687ae75019f77fdceb  gcc/testsuite/gnat.dg/inline22.adb
  5627f25297736e4376fd920a71ecaf39  gcc/testsuite/gnat.dg/inline2_pkg.adb
  110a4ba4adadc9c9564f395e87ad35a4  gcc/testsuite/gnat.dg/inline2_pkg.ads
  a692a3b50a691c30db1f8edbcd461161  gcc/testsuite/gnat.dg/inline3.adb
--- 110840,110851 ----
  2cfefc8b1675dc9f780be88f053a4776  gcc/testsuite/gnat.dg/inline20_q-io.ads
  d1e0331ddf49b9202d231a22a4f26f4c  gcc/testsuite/gnat.dg/inline20_q.ads
  4be180d98ef8f625ac2be74029bc421e  gcc/testsuite/gnat.dg/inline20_r.ads
! 4701b4d311f33e2b306d982cdd48e983  gcc/testsuite/gnat.dg/inline21.adb
  01f6f06d99b7235c014d63637e98b5ce  gcc/testsuite/gnat.dg/inline21_g.ads
  2e5987e5b8efc0e3420b843049dfa514  gcc/testsuite/gnat.dg/inline21_h.adb
  6009f5d3fe4e938462557d5e9b9817b5  gcc/testsuite/gnat.dg/inline21_h.ads
  09c84b935605997d65ff35bbfdcddeb9  gcc/testsuite/gnat.dg/inline21_q.ads
! 32186e0ae2a0265d9d80d2628430b764  gcc/testsuite/gnat.dg/inline22.adb
  5627f25297736e4376fd920a71ecaf39  gcc/testsuite/gnat.dg/inline2_pkg.adb
  110a4ba4adadc9c9564f395e87ad35a4  gcc/testsuite/gnat.dg/inline2_pkg.ads
  a692a3b50a691c30db1f8edbcd461161  gcc/testsuite/gnat.dg/inline3.adb
*************** df3810c329cf6c4fc775f811f650fd05  gcc/te
*** 103639,103645 ****
  5ec9e3b42ec828a5e961141a9c15abc6  gcc/testsuite/gnat.dg/interface4.adb
  4ea810b2bf5451e32fde620271a2c14d  gcc/testsuite/gnat.dg/interface5.adb
  6810418a130517a92522712d8319f630  gcc/testsuite/gnat.dg/interface5.ads
! e421277f70696ac9f8b16bae43acacd6  gcc/testsuite/gnat.dg/interface6.adb
  31a396f675ff4c4fb76302b8e4e03a54  gcc/testsuite/gnat.dg/interface7.adb
  4e92b9a71457afe531307cc507c20728  gcc/testsuite/gnat.dg/interface8.adb
  a692548bb83dd8b8ec88d5f8ad231979  gcc/testsuite/gnat.dg/interface8.ads
--- 110885,110891 ----
  5ec9e3b42ec828a5e961141a9c15abc6  gcc/testsuite/gnat.dg/interface4.adb
  4ea810b2bf5451e32fde620271a2c14d  gcc/testsuite/gnat.dg/interface5.adb
  6810418a130517a92522712d8319f630  gcc/testsuite/gnat.dg/interface5.ads
! 390cb28bf9ff2952d17b6839e22790fe  gcc/testsuite/gnat.dg/interface6.adb
  31a396f675ff4c4fb76302b8e4e03a54  gcc/testsuite/gnat.dg/interface7.adb
  4e92b9a71457afe531307cc507c20728  gcc/testsuite/gnat.dg/interface8.adb
  a692548bb83dd8b8ec88d5f8ad231979  gcc/testsuite/gnat.dg/interface8.ads
*************** ed33690892e43011718347ecca58daff  gcc/te
*** 103833,103838 ****
--- 111079,111092 ----
  457ee12b0dd229b1b193d39fdafb8511  gcc/testsuite/gnat.dg/lto26_pkg1.ads
  654988756577bafafccb7865625040f7  gcc/testsuite/gnat.dg/lto26_pkg2.adb
  5f287af670c9bdcf463957cb04a9cd11  gcc/testsuite/gnat.dg/lto26_pkg2.ads
+ 1a2af3967e4ce70864c3be040febd5bb  gcc/testsuite/gnat.dg/lto27.adb
+ cb59fbd6b5e1e0acb6ddbccffc7ee2b2  gcc/testsuite/gnat.dg/lto28.adb
+ 76d8b34fa4ae63394c0012945698577d  gcc/testsuite/gnat.dg/lto28_pkg1.ads
+ f8150384c662a08432c191577cb510bc  gcc/testsuite/gnat.dg/lto28_pkg2.adb
+ c0f02b651aa311a5b5cddd400f9701ed  gcc/testsuite/gnat.dg/lto28_pkg2.ads
+ fb19807d91f445350623ae19eb1b5aee  gcc/testsuite/gnat.dg/lto28_pkg3.ads
+ d38a63c50972ebf0d60bc6959e5d130f  gcc/testsuite/gnat.dg/lto29.adb
+ 92924880135ec84fd65e4fecf6055807  gcc/testsuite/gnat.dg/lto29_pkg.ads
  2acb4cc31994f1569a3db6ac6613928d  gcc/testsuite/gnat.dg/lto4.adb
  9b38247c8e825c514f87e2965d931dad  gcc/testsuite/gnat.dg/lto4.ads
  959fb8bdf4cd1c34347ecfbab19ea60b  gcc/testsuite/gnat.dg/lto5.adb
*************** b0752d6fc68f640a84237fcef9762258  gcc/te
*** 103855,103860 ****
--- 111109,111115 ----
  198e584cc0cef45ce405667052c23e05  gcc/testsuite/gnat.dg/machine_attr2.adb
  a43575908eb1e17e2afdeb4ea7308f2a  gcc/testsuite/gnat.dg/machine_attr2.ads
  cc1ed6ae65ad5b0d5af3f2f3767e091e  gcc/testsuite/gnat.dg/machine_code1.adb
+ d3f7e556abc113803210eb76117456b0  gcc/testsuite/gnat.dg/matrix1.adb
  ebbd44798662a03d43697c3bec8dc4b4  gcc/testsuite/gnat.dg/max_align.adb
  edfa22639b0fb30d009fbc732d8cecad  gcc/testsuite/gnat.dg/max_size.adb
  cffc6067b6c163f5c2e06406b2632c70  gcc/testsuite/gnat.dg/max_size_pkg.ads
*************** e3943d4860baba3dd60a559ec3b4df36  gcc/te
*** 103959,103964 ****
--- 111214,111222 ----
  f01f6a92460103019cb9d3f27c479ef9  gcc/testsuite/gnat.dg/opt103.ads
  337a806a6dd1106b843af17238d34b5b  gcc/testsuite/gnat.dg/opt104.adb
  7ee5b6675114982998270619932802bf  gcc/testsuite/gnat.dg/opt104.ads
+ b143f8a11acbf26720d0836e04874836  gcc/testsuite/gnat.dg/opt105.adb
+ 43266125cef592b6eaa7a9074c70ea58  gcc/testsuite/gnat.dg/opt105_pkg.adb
+ ef6aab3ddf23751e6c8af372ba52012c  gcc/testsuite/gnat.dg/opt105_pkg.ads
  5d50fb38b1ab84c39760906cb103c522  gcc/testsuite/gnat.dg/opt10_pkg.ads
  603264d4afdd2fd2174ea9c4cf4653ed  gcc/testsuite/gnat.dg/opt11.adb
  53160585b3a5d820b653e1e0d5f14c75  gcc/testsuite/gnat.dg/opt11.ads
*************** e0acd7ba195c326545ccc1923e03b9f0  gcc/te
*** 104020,104026 ****
  720bfeb79540d03788919b837bd15fa6  gcc/testsuite/gnat.dg/opt35_pkg.adb
  b7ca4abc01a37a16fef857ccd27a5270  gcc/testsuite/gnat.dg/opt35_pkg.ads
  1541ad016cb720ad35cb45c0b1496dae  gcc/testsuite/gnat.dg/opt36.adb
! 1ac90ebbc3591ce654b58374e3f15b0c  gcc/testsuite/gnat.dg/opt37.adb
  7c23e56f26d8aeb7b17435f29371daa8  gcc/testsuite/gnat.dg/opt37.ads
  cd1cd547ffd6a15fd43fea30ececc910  gcc/testsuite/gnat.dg/opt38.adb
  c7cef5a4232a339afa288abd7cb369dc  gcc/testsuite/gnat.dg/opt38_pkg.adb
--- 111278,111284 ----
  720bfeb79540d03788919b837bd15fa6  gcc/testsuite/gnat.dg/opt35_pkg.adb
  b7ca4abc01a37a16fef857ccd27a5270  gcc/testsuite/gnat.dg/opt35_pkg.ads
  1541ad016cb720ad35cb45c0b1496dae  gcc/testsuite/gnat.dg/opt36.adb
! ae68479c4cc839385601c51a3421fd39  gcc/testsuite/gnat.dg/opt37.adb
  7c23e56f26d8aeb7b17435f29371daa8  gcc/testsuite/gnat.dg/opt37.ads
  cd1cd547ffd6a15fd43fea30ececc910  gcc/testsuite/gnat.dg/opt38.adb
  c7cef5a4232a339afa288abd7cb369dc  gcc/testsuite/gnat.dg/opt38_pkg.adb
*************** d715f4258a659b9f52add768ec0176d3  gcc/te
*** 104065,104072 ****
  00e04f2e224a2dd174c04eb01fe2dddd  gcc/testsuite/gnat.dg/opt57.adb
  ec6e3cc038089026e0c90731d3791794  gcc/testsuite/gnat.dg/opt57.ads
  340f291db90e7b09d6d53b1993b91b67  gcc/testsuite/gnat.dg/opt57_pkg.ads
! 38b5ff2987fc8fe62d89a53d7b63f90e  gcc/testsuite/gnat.dg/opt58.adb
! e829d23000096329a168349c8dfb9571  gcc/testsuite/gnat.dg/opt58_pkg.ads
  61855677f292bb5d09f671b0869ff762  gcc/testsuite/gnat.dg/opt59.adb
  545c9ba20ec11f6144b01cf15cf8df7c  gcc/testsuite/gnat.dg/opt59_pkg.adb
  955ffa4de9c3acdbd5ce5334b1af9aa3  gcc/testsuite/gnat.dg/opt59_pkg.ads
--- 111323,111330 ----
  00e04f2e224a2dd174c04eb01fe2dddd  gcc/testsuite/gnat.dg/opt57.adb
  ec6e3cc038089026e0c90731d3791794  gcc/testsuite/gnat.dg/opt57.ads
  340f291db90e7b09d6d53b1993b91b67  gcc/testsuite/gnat.dg/opt57_pkg.ads
! 5b284ec795ce526d958c71b4b51336b6  gcc/testsuite/gnat.dg/opt58.adb
! 6bde477d597884e7ac7de835dd6a077f  gcc/testsuite/gnat.dg/opt58_pkg.ads
  61855677f292bb5d09f671b0869ff762  gcc/testsuite/gnat.dg/opt59.adb
  545c9ba20ec11f6144b01cf15cf8df7c  gcc/testsuite/gnat.dg/opt59_pkg.adb
  955ffa4de9c3acdbd5ce5334b1af9aa3  gcc/testsuite/gnat.dg/opt59_pkg.ads
*************** f476a43c6c200e5d7a310f5fd7e24c43  gcc/te
*** 104196,104202 ****
  c2d53946c785e88dcd4062b0883ce3b9  gcc/testsuite/gnat.dg/pack10.adb
  44785f96d62634773bf59be76bdcbeb2  gcc/testsuite/gnat.dg/pack11.adb
  c2e967a4547853f29c080e4741ce745e  gcc/testsuite/gnat.dg/pack12.adb
! b399f7a6880e72b070d6cf50e04ad104  gcc/testsuite/gnat.dg/pack13.adb
  472e3ba469b384e9338f28ea9dc9e9b1  gcc/testsuite/gnat.dg/pack13.ads
  19d9d463e43181cd207d738ef092df97  gcc/testsuite/gnat.dg/pack13_pkg.ads
  ee6c2ecdb3520265471609bde66dfdda  gcc/testsuite/gnat.dg/pack14.adb
--- 111454,111460 ----
  c2d53946c785e88dcd4062b0883ce3b9  gcc/testsuite/gnat.dg/pack10.adb
  44785f96d62634773bf59be76bdcbeb2  gcc/testsuite/gnat.dg/pack11.adb
  c2e967a4547853f29c080e4741ce745e  gcc/testsuite/gnat.dg/pack12.adb
! b4ea77e91c8929646233f72c7fcedd04  gcc/testsuite/gnat.dg/pack13.adb
  472e3ba469b384e9338f28ea9dc9e9b1  gcc/testsuite/gnat.dg/pack13.ads
  19d9d463e43181cd207d738ef092df97  gcc/testsuite/gnat.dg/pack13_pkg.ads
  ee6c2ecdb3520265471609bde66dfdda  gcc/testsuite/gnat.dg/pack14.adb
*************** dc262de3547bdd707bae595ff3f7bad4  gcc/te
*** 104345,104350 ****
--- 111603,111609 ----
  50987d7538aa8313cd07427064ec0cf0  gcc/testsuite/gnat.dg/pure_function3c.adb
  004d0a4eab7269238d8df3bd245f540d  gcc/testsuite/gnat.dg/pure_subp_body.adb
  2cac0c26d493dcb2a6bc9eb14b048d12  gcc/testsuite/gnat.dg/pure_subp_body_pkg.ads
+ 90037ebb91d6c21f5fd1a7d637986ed6  gcc/testsuite/gnat.dg/put_image1.adb
  86264155418d37c3c433352efc4d7216  gcc/testsuite/gnat.dg/quote.adb
  14ca6ec6ac239ab1d151eea57c9f41a0  gcc/testsuite/gnat.dg/raise_ce.adb
  02b35cb51408b925b49e3ad8ff0a7ea4  gcc/testsuite/gnat.dg/raise_expr.adb
*************** d1eb3c018998a0148ec38f5289953cb4  gcc/te
*** 104368,104374 ****
  46310c43df3885f35749ebe6cb66bbc8  gcc/testsuite/gnat.dg/remote_call_iface.ads
  11cb7b1571a2f321e08b0dc577cc61c3  gcc/testsuite/gnat.dg/remote_type.adb
  a69c0bfa5361221d9a3ccb55aba36f65  gcc/testsuite/gnat.dg/remote_type.ads
! a3407fabc4d0c52e5a25c8c00aad5978  gcc/testsuite/gnat.dg/renaming1.adb
  78ad4fb2671317825fc223986f266383  gcc/testsuite/gnat.dg/renaming1.ads
  95d7703afe25fd090863c05ffcded594  gcc/testsuite/gnat.dg/renaming10.adb
  404005db149a5434ece08f5fccea5a18  gcc/testsuite/gnat.dg/renaming10.ads
--- 111627,111633 ----
  46310c43df3885f35749ebe6cb66bbc8  gcc/testsuite/gnat.dg/remote_call_iface.ads
  11cb7b1571a2f321e08b0dc577cc61c3  gcc/testsuite/gnat.dg/remote_type.adb
  a69c0bfa5361221d9a3ccb55aba36f65  gcc/testsuite/gnat.dg/remote_type.ads
! ab71a9220ac57c4dd6974a8eac041db4  gcc/testsuite/gnat.dg/renaming1.adb
  78ad4fb2671317825fc223986f266383  gcc/testsuite/gnat.dg/renaming1.ads
  95d7703afe25fd090863c05ffcded594  gcc/testsuite/gnat.dg/renaming10.adb
  404005db149a5434ece08f5fccea5a18  gcc/testsuite/gnat.dg/renaming10.ads
*************** e51121d34de5e0d22067137864528c8a  gcc/te
*** 104381,104386 ****
--- 111640,111646 ----
  72d48cda9550a7251bbd90fa56eff48e  gcc/testsuite/gnat.dg/renaming15.adb
  b08ade850be1a0a80325c1a93e9c9043  gcc/testsuite/gnat.dg/renaming16.adb
  0278c64b189f758651064d6a8aeac4db  gcc/testsuite/gnat.dg/renaming16_pkg.ads
+ 5eaaed2371da7238ac1bdfe70068edcc  gcc/testsuite/gnat.dg/renaming17.adb
  3afb13f37cfc3455f0f0be64d053892f  gcc/testsuite/gnat.dg/renaming2.adb
  1a954da0b1e7e11673319b058eb82146  gcc/testsuite/gnat.dg/renaming3.adb
  9c415422ce59266c9af89e8d3fd1df74  gcc/testsuite/gnat.dg/renaming4.ads
*************** f00eab7afc57f66659bba49ca66507fc  gcc/te
*** 104444,104450 ****
  f436e9958bc39e5210d7c4f0686fcc84  gcc/testsuite/gnat.dg/show_deques_priority.adb
  5aedc0737da2c4b3c0b71c05e61d1ae4  gcc/testsuite/gnat.dg/sin_cos.adb
  2a8c679c8bc430cbeb10f30a4c8277a1  gcc/testsuite/gnat.dg/sin_cos.ads
! a9fa51c016ec2f28dd1ba172222535d8  gcc/testsuite/gnat.dg/size_attribute.adb
  0139e1bc7ddda729d749d148ff43ba7b  gcc/testsuite/gnat.dg/size_clause1.adb
  9a2b784b89d064e84e5e7e706547f446  gcc/testsuite/gnat.dg/sizetype1.adb
  a1af1dd50d771c8d4d73a0c335bbc063  gcc/testsuite/gnat.dg/sizetype2.adb
--- 111704,111710 ----
  f436e9958bc39e5210d7c4f0686fcc84  gcc/testsuite/gnat.dg/show_deques_priority.adb
  5aedc0737da2c4b3c0b71c05e61d1ae4  gcc/testsuite/gnat.dg/sin_cos.adb
  2a8c679c8bc430cbeb10f30a4c8277a1  gcc/testsuite/gnat.dg/sin_cos.ads
! 712cb2233d6bd3cc93ea5f4a441ab95e  gcc/testsuite/gnat.dg/size_attribute.adb
  0139e1bc7ddda729d749d148ff43ba7b  gcc/testsuite/gnat.dg/size_clause1.adb
  9a2b784b89d064e84e5e7e706547f446  gcc/testsuite/gnat.dg/sizetype1.adb
  a1af1dd50d771c8d4d73a0c335bbc063  gcc/testsuite/gnat.dg/sizetype2.adb
*************** b028802f236df04a9a038de337a5c2dc  gcc/te
*** 104500,104506 ****
  8317714735f6bcf3820730db670ecec1  gcc/testsuite/gnat.dg/specs/aggr6.ads
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
! db9002fdffbd11c6e835ef0c4498b353  gcc/testsuite/gnat.dg/specs/alignment2.ads
  c92a0b8d6f3b784f2e9169f486b6ed6c  gcc/testsuite/gnat.dg/specs/anon4.ads
  618e7c90ac781c992b7ebddc98d98640  gcc/testsuite/gnat.dg/specs/array1.ads
  abe14a1ac8ff19714a07b9e460b5fa25  gcc/testsuite/gnat.dg/specs/array2.ads
--- 111760,111767 ----
  8317714735f6bcf3820730db670ecec1  gcc/testsuite/gnat.dg/specs/aggr6.ads
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
! 2137406ab24e57901900aff5d6a8f7d6  gcc/testsuite/gnat.dg/specs/alignment2.ads
! 6bb07734236403c5463ad3f79d47567a  gcc/testsuite/gnat.dg/specs/alignment2_bis.ads
  c92a0b8d6f3b784f2e9169f486b6ed6c  gcc/testsuite/gnat.dg/specs/anon4.ads
  618e7c90ac781c992b7ebddc98d98640  gcc/testsuite/gnat.dg/specs/array1.ads
  abe14a1ac8ff19714a07b9e460b5fa25  gcc/testsuite/gnat.dg/specs/array2.ads
*************** abe14a1ac8ff19714a07b9e460b5fa25  gcc/te
*** 104511,104522 ****
--- 111772,111785 ----
  65f73b5444cd39e6751236739aa9ae10  gcc/testsuite/gnat.dg/specs/array5_pkg2-g.ads
  0b740b5110495d8d3401e65ea953524e  gcc/testsuite/gnat.dg/specs/array5_pkg2.ads
  ab72c2e211bdb0e7737e519c559d92dd  gcc/testsuite/gnat.dg/specs/array6.ads
+ bfb26e1cdacb2ba2f03eb976978bb43f  gcc/testsuite/gnat.dg/specs/array7.ads
  18531dc960411dab820aa7279791f03a  gcc/testsuite/gnat.dg/specs/array_no_def_init.ads
  2d9efbd53366881b4d205fa4d00c2cc9  gcc/testsuite/gnat.dg/specs/atomic1.ads
  483b6cbd58c1c8ac9dacb4ab3aac99bb  gcc/testsuite/gnat.dg/specs/atomic2.ads
  778c3fb394bd22381e5d6dc833b0e536  gcc/testsuite/gnat.dg/specs/atomic3.ads
  c32b716552779677ae176058dfb0e811  gcc/testsuite/gnat.dg/specs/attribute_parsing.ads
  f816d4862285932d8e7b70c2efc94426  gcc/testsuite/gnat.dg/specs/box1.ads
+ 250f7491f96f113a197899dda06a57fe  gcc/testsuite/gnat.dg/specs/bss1.ads
  22d47e1639397ee371d9448cf072ccfb  gcc/testsuite/gnat.dg/specs/clause_on_volatile.ads
  8def2fc44b62c48b1c9f7f2f3906807c  gcc/testsuite/gnat.dg/specs/compile_time1.ads
  78a5f35d64fd87f033de3894f27944ec  gcc/testsuite/gnat.dg/specs/compile_time1_pkg.ads
*************** bc790bd930f8c4f971b8268bdda83659  gcc/te
*** 104561,104566 ****
--- 111824,111833 ----
  085a1214c06b4e9495c47b56f30e6cd3  gcc/testsuite/gnat.dg/specs/formal_type.ads
  b605c919a473b8d6808dd232aa7eaf49  gcc/testsuite/gnat.dg/specs/gen_interface.ads
  4830454a8335e61b1876284f60de9782  gcc/testsuite/gnat.dg/specs/gen_interface_p.ads
+ c3d551a8416dc4b2870263e10877307e  gcc/testsuite/gnat.dg/specs/generic_inst1.ads
+ 84bbd54b835597ff50d8d9c0c1ed6128  gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
+ acb50fb5dcaeadfaa1d06f3a291ad5ac  gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
+ 26c02326292bb6ec71f4f8278f140bff  gcc/testsuite/gnat.dg/specs/generic_inst2.ads
  484402f090540a3714934de7a830cc2f  gcc/testsuite/gnat.dg/specs/genericppc.ads
  5fadbbff25531c82473d756d722cd174  gcc/testsuite/gnat.dg/specs/gnati.ads
  f0f859863b2bb6251359cf35dc6ffbf5  gcc/testsuite/gnat.dg/specs/iface_eq_test-child.ads
*************** f93ebc1592802334f747adde7fd25afb  gcc/te
*** 104655,104662 ****
  dd11fa8c12b9ae6c22d0229f9abfe2d2  gcc/testsuite/gnat.dg/specs/size_clause3.ads
  03db4e24fa57d6ec6411373454c770fe  gcc/testsuite/gnat.dg/specs/size_clause4.ads
  4af0c027bf11e98fb8317a33690de3b7  gcc/testsuite/gnat.dg/specs/size_clause5.ads
  f381006ab319a77a628dc42fb91642d1  gcc/testsuite/gnat.dg/specs/small_alignment.ads
! 6d12f080f2b79861bca6da828b5ab702  gcc/testsuite/gnat.dg/specs/specs.exp
  10d9cb2f95c3b869e5b5ba8979e4226d  gcc/testsuite/gnat.dg/specs/sso1.ads
  ee68f5075e2ac910d2768455326b877d  gcc/testsuite/gnat.dg/specs/sso2.ads
  a7458b24c06bfe4873fec60e537ee095  gcc/testsuite/gnat.dg/specs/static_initializer.ads
--- 111922,111930 ----
  dd11fa8c12b9ae6c22d0229f9abfe2d2  gcc/testsuite/gnat.dg/specs/size_clause3.ads
  03db4e24fa57d6ec6411373454c770fe  gcc/testsuite/gnat.dg/specs/size_clause4.ads
  4af0c027bf11e98fb8317a33690de3b7  gcc/testsuite/gnat.dg/specs/size_clause5.ads
+ cfe4c9b179c40d09952453ffea85e120  gcc/testsuite/gnat.dg/specs/size_clause6.ads
  f381006ab319a77a628dc42fb91642d1  gcc/testsuite/gnat.dg/specs/small_alignment.ads
! 245b74de2c4189cc4e5648a28635f4b6  gcc/testsuite/gnat.dg/specs/specs.exp
  10d9cb2f95c3b869e5b5ba8979e4226d  gcc/testsuite/gnat.dg/specs/sso1.ads
  ee68f5075e2ac910d2768455326b877d  gcc/testsuite/gnat.dg/specs/sso2.ads
  a7458b24c06bfe4873fec60e537ee095  gcc/testsuite/gnat.dg/specs/static_initializer.ads
*************** ac78c396effa4859b1c3270e50e530dc  gcc/te
*** 104689,104694 ****
--- 111957,111963 ----
  32d18c664c80e0567f098ad3f5c64c62  gcc/testsuite/gnat.dg/specs/varsize_return_pkg2.ads
  fafeaea1e6dc6430a977c194dcce2366  gcc/testsuite/gnat.dg/specs/vfa1.ads
  2d6bea14f8e514f5f34e005d6b116ff9  gcc/testsuite/gnat.dg/specs/vfa2.ads
+ 47d3228aa802e4ebef17075e98575f14  gcc/testsuite/gnat.dg/specs/vfa3.ads
  de49d4de8670ae0823ffb5315870359c  gcc/testsuite/gnat.dg/specs/volatile1.ads
  3ab8359f200ce6638ca1a08c54293318  gcc/testsuite/gnat.dg/specs/warnstar.ads
  83ff35b3de15ad167604f5a3fec2f0f2  gcc/testsuite/gnat.dg/specs/weak1.ads
*************** dfa6742a5a08ecee573f646918671f2f  gcc/te
*** 104727,104733 ****
  e2ccacb81f62f1e1b535c98f1c6a0dc8  gcc/testsuite/gnat.dg/sso/p9.adb
  14821dcdd7d2f28d6822317f4993f4a0  gcc/testsuite/gnat.dg/sso/q1.adb
  ed377fabc5c08a23cedf2e3fbd399e58  gcc/testsuite/gnat.dg/sso/q10.adb
! 5c51bd2ef75f97cc9362cba48f9dd729  gcc/testsuite/gnat.dg/sso/q11.adb
  00e4df2d245e6e1e1132c946bbd9f713  gcc/testsuite/gnat.dg/sso/q12.adb
  78e22e34b4bfd3572e763cf8586d6991  gcc/testsuite/gnat.dg/sso/q13.adb
  12f4bcb907737d5560d54b7c9eede5e1  gcc/testsuite/gnat.dg/sso/q2.adb
--- 111996,112002 ----
  e2ccacb81f62f1e1b535c98f1c6a0dc8  gcc/testsuite/gnat.dg/sso/p9.adb
  14821dcdd7d2f28d6822317f4993f4a0  gcc/testsuite/gnat.dg/sso/q1.adb
  ed377fabc5c08a23cedf2e3fbd399e58  gcc/testsuite/gnat.dg/sso/q10.adb
! 705189dcdd6401ea6d4508fe3c481b62  gcc/testsuite/gnat.dg/sso/q11.adb
  00e4df2d245e6e1e1132c946bbd9f713  gcc/testsuite/gnat.dg/sso/q12.adb
  78e22e34b4bfd3572e763cf8586d6991  gcc/testsuite/gnat.dg/sso/q13.adb
  12f4bcb907737d5560d54b7c9eede5e1  gcc/testsuite/gnat.dg/sso/q2.adb
*************** ee874e3a5ed130d124c36bc00620ecf7  gcc/te
*** 104752,104758 ****
  f98695363c137c382d6de62ada73bc3c  gcc/testsuite/gnat.dg/sso/s6.adb
  932dcf06c9a657de839f1236ad1ce3a7  gcc/testsuite/gnat.dg/sso/s7.adb
  f876cc05ea75ed91c3f5cfb97ed0a9ae  gcc/testsuite/gnat.dg/sso/s8.adb
! 0086a5530f8dcd856e6244101771c260  gcc/testsuite/gnat.dg/sso/sso.exp
  4b8f6f3bf1259d1c79c730c0c243f725  gcc/testsuite/gnat.dg/sso/t1.adb
  d4a304e697934a32984599c6d5941f55  gcc/testsuite/gnat.dg/sso/t10.adb
  3cab6b52089b5bd99bb853fbdab1352c  gcc/testsuite/gnat.dg/sso/t11.adb
--- 112021,112027 ----
  f98695363c137c382d6de62ada73bc3c  gcc/testsuite/gnat.dg/sso/s6.adb
  932dcf06c9a657de839f1236ad1ce3a7  gcc/testsuite/gnat.dg/sso/s7.adb
  f876cc05ea75ed91c3f5cfb97ed0a9ae  gcc/testsuite/gnat.dg/sso/s8.adb
! bda1acd96fb076297283213a369bf916  gcc/testsuite/gnat.dg/sso/sso.exp
  4b8f6f3bf1259d1c79c730c0c243f725  gcc/testsuite/gnat.dg/sso/t1.adb
  d4a304e697934a32984599c6d5941f55  gcc/testsuite/gnat.dg/sso/t10.adb
  3cab6b52089b5bd99bb853fbdab1352c  gcc/testsuite/gnat.dg/sso/t11.adb
*************** fee197b51c5b0347ebc48e04d5caabd1  gcc/te
*** 104836,104842 ****
  80b8a6547d110495b46d0395b565ec50  gcc/testsuite/gnat.dg/strub_renm2.adb
  70e51688fa4759a8908100dd7480f85c  gcc/testsuite/gnat.dg/strub_var.adb
  d1766e219e1e85b0b9ad27df677a6f9c  gcc/testsuite/gnat.dg/strub_var1.adb
! 782494d902dc38e7e31209882cbc10d2  gcc/testsuite/gnat.dg/subp_elim_errors.adb
  cf6061ac7a16f74b48144be58c3da5e2  gcc/testsuite/gnat.dg/subp_elim_errors.ads
  83548cc110b5dea61f198392d0b5ba60  gcc/testsuite/gnat.dg/subp_inst.adb
  5759a9e98b8bd75d202c89de02d3ae17  gcc/testsuite/gnat.dg/subp_inst_pkg.adb
--- 112105,112111 ----
  80b8a6547d110495b46d0395b565ec50  gcc/testsuite/gnat.dg/strub_renm2.adb
  70e51688fa4759a8908100dd7480f85c  gcc/testsuite/gnat.dg/strub_var.adb
  d1766e219e1e85b0b9ad27df677a6f9c  gcc/testsuite/gnat.dg/strub_var1.adb
! db060c0fd2e12748637e53b4b3f46589  gcc/testsuite/gnat.dg/subp_elim_errors.adb
  cf6061ac7a16f74b48144be58c3da5e2  gcc/testsuite/gnat.dg/subp_elim_errors.ads
  83548cc110b5dea61f198392d0b5ba60  gcc/testsuite/gnat.dg/subp_inst.adb
  5759a9e98b8bd75d202c89de02d3ae17  gcc/testsuite/gnat.dg/subp_inst_pkg.adb
*************** a16408deff983193400446f0843b5c6a  gcc/te
*** 105127,105133 ****
  aac18a98145d0eb18cc893fbd8e0fa55  gcc/testsuite/gnat.dg/warn10.ads
  93332b5d9cbfd73edbdd13d517ff7bb2  gcc/testsuite/gnat.dg/warn10_pkg.ads
  ce7aa87cc913547244bf893c1b553d27  gcc/testsuite/gnat.dg/warn11.adb
! d951bd0b2a29136b2300bbd76a480159  gcc/testsuite/gnat.dg/warn13.adb
  e6bc3c6e5595abb6ba0aef04ab49b0f0  gcc/testsuite/gnat.dg/warn14.adb
  422f33a6dee5bedda3fe108f91f9a7f2  gcc/testsuite/gnat.dg/warn15-core-main.adb
  18231600b16d036fdb32ea1957b04ad6  gcc/testsuite/gnat.dg/warn15-core.ads
--- 112396,112402 ----
  aac18a98145d0eb18cc893fbd8e0fa55  gcc/testsuite/gnat.dg/warn10.ads
  93332b5d9cbfd73edbdd13d517ff7bb2  gcc/testsuite/gnat.dg/warn10_pkg.ads
  ce7aa87cc913547244bf893c1b553d27  gcc/testsuite/gnat.dg/warn11.adb
! 98c8f6dfeea056df9ff0eda8d9c54ca5  gcc/testsuite/gnat.dg/warn13.adb
  e6bc3c6e5595abb6ba0aef04ab49b0f0  gcc/testsuite/gnat.dg/warn14.adb
  422f33a6dee5bedda3fe108f91f9a7f2  gcc/testsuite/gnat.dg/warn15-core-main.adb
  18231600b16d036fdb32ea1957b04ad6  gcc/testsuite/gnat.dg/warn15-core.ads
*************** a60d5bd3c7d97738a821caa2b6320a63  gcc/te
*** 105161,105166 ****
--- 112430,112437 ----
  69b3f8ab621ff4711647c31f763db1d7  gcc/testsuite/gnat.dg/warn31.adb
  160ffffc2f2f6edc17044d747f727a5d  gcc/testsuite/gnat.dg/warn31.ads
  0cdebd32eacd337e71c8db2ab9d37a99  gcc/testsuite/gnat.dg/warn32.adb
+ 3c7023a211454ed0b601f4509949969b  gcc/testsuite/gnat.dg/warn33.adb
+ 831b1f99f5a5a1534ee78ccfa364a4d6  gcc/testsuite/gnat.dg/warn33_pkg.ads
  3973b8e21a39fdc98663d8d4c6b3ae18  gcc/testsuite/gnat.dg/warn4.adb
  30bdcc5f53e82fa0a748765edd2d8e03  gcc/testsuite/gnat.dg/warn5.adb
  99d15089537d8f6f3bed5ba4b1675ffc  gcc/testsuite/gnat.dg/warn6.adb
*************** dd1a1376bad078a4b0eda0ead4a2ea6a  gcc/te
*** 105183,105201 ****
  00f78e8b316dd9541a723b06890c4406  gcc/testsuite/go.dg/arrayclear.go
  ac8af654d131c62dc2127d399247a353  gcc/testsuite/go.dg/cmpstring.go
  47e6563411ed24d0afefc1878c094034  gcc/testsuite/go.dg/concatstring.go
! c7116b9b394fcadb109bf6b3c9597d9e  gcc/testsuite/go.dg/dg.exp
  df3ff5f9e0759960e0959e71a0d0583f  gcc/testsuite/go.dg/err-1.go
  ec0e3914d3f5df5bec3a4fd8dcf1c0af  gcc/testsuite/go.dg/goto-1.go
  f0f18b0d11f15d53150f63d507b4fe27  gcc/testsuite/go.dg/mapclear.go
  f4934ebcbb4c70da693926344d413e73  gcc/testsuite/go.dg/mapstring.go
  06684950b155e4bf5c6b312c04959201  gcc/testsuite/go.dg/pr113636.go
  a15752f522823a4bb86ac0b6d5e86305  gcc/testsuite/go.dg/undef-1.go
  922b41af54f5d7211d9ae73b47a46d1b  gcc/testsuite/go.go-torture/execute/array-1.go
  a06ac97125a90b106e6e0dfd7a0cd8cb  gcc/testsuite/go.go-torture/execute/array-2.go
  17039a57c84f9e6feac3ac4966736a0a  gcc/testsuite/go.go-torture/execute/chan-1.go
  94342e6c8cd3f59c55238778fb232b4a  gcc/testsuite/go.go-torture/execute/const-1.go
  dac6eeae922725468eebc84b9a7d4875  gcc/testsuite/go.go-torture/execute/const-2.go
! 83fca147fa6236c23efb24fa7e118b23  gcc/testsuite/go.go-torture/execute/execute.exp
  4a320c5186c74f3c69e7f51ba7a7ab90  gcc/testsuite/go.go-torture/execute/expr-1.go
  1a159bafbc3293455e900de2c4243d3c  gcc/testsuite/go.go-torture/execute/for-1.go
  c7464eac2b485f2580aee2f19f76477f  gcc/testsuite/go.go-torture/execute/for-2.go
--- 112454,112474 ----
  00f78e8b316dd9541a723b06890c4406  gcc/testsuite/go.dg/arrayclear.go
  ac8af654d131c62dc2127d399247a353  gcc/testsuite/go.dg/cmpstring.go
  47e6563411ed24d0afefc1878c094034  gcc/testsuite/go.dg/concatstring.go
! 169f4faab2abc710cbae284d66da2fe0  gcc/testsuite/go.dg/dg.exp
  df3ff5f9e0759960e0959e71a0d0583f  gcc/testsuite/go.dg/err-1.go
  ec0e3914d3f5df5bec3a4fd8dcf1c0af  gcc/testsuite/go.dg/goto-1.go
  f0f18b0d11f15d53150f63d507b4fe27  gcc/testsuite/go.dg/mapclear.go
  f4934ebcbb4c70da693926344d413e73  gcc/testsuite/go.dg/mapstring.go
  06684950b155e4bf5c6b312c04959201  gcc/testsuite/go.dg/pr113636.go
+ e101b1e8f56fbd988ceb64595039d449  gcc/testsuite/go.dg/pr119533-riscv-2.go
+ 7576e16c4b661bcce37c78e30773c400  gcc/testsuite/go.dg/pr119533-riscv.go
  a15752f522823a4bb86ac0b6d5e86305  gcc/testsuite/go.dg/undef-1.go
  922b41af54f5d7211d9ae73b47a46d1b  gcc/testsuite/go.go-torture/execute/array-1.go
  a06ac97125a90b106e6e0dfd7a0cd8cb  gcc/testsuite/go.go-torture/execute/array-2.go
  17039a57c84f9e6feac3ac4966736a0a  gcc/testsuite/go.go-torture/execute/chan-1.go
  94342e6c8cd3f59c55238778fb232b4a  gcc/testsuite/go.go-torture/execute/const-1.go
  dac6eeae922725468eebc84b9a7d4875  gcc/testsuite/go.go-torture/execute/const-2.go
! f411f989c1127acb52375913f4820a0b  gcc/testsuite/go.go-torture/execute/execute.exp
  4a320c5186c74f3c69e7f51ba7a7ab90  gcc/testsuite/go.go-torture/execute/expr-1.go
  1a159bafbc3293455e900de2c4243d3c  gcc/testsuite/go.go-torture/execute/for-1.go
  c7464eac2b485f2580aee2f19f76477f  gcc/testsuite/go.go-torture/execute/for-2.go
*************** f37d4791cfa22e9a20848922ea5de498  gcc/te
*** 105223,105229 ****
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! e3794309b5080518186c09c15068e470  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
--- 112496,112502 ----
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! 759f9a83cb909fd541b8bcd224f3b47c  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
*************** d19a0449bac1fb497429a88904f3d658  gcc/te
*** 107168,107177 ****
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! ced1e82a057a3545ee32a58098f87b0f  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
! bcc659c5c8ad01904087579142d235cb  gcc/testsuite/jit.dg/jit.exp
  3fd6900c9d1d0edd53191542d96ffcec  gcc/testsuite/jit.dg/test-accessing-bitfield.c
  790dcf4e4a5c3dce84639ef815265f21  gcc/testsuite/jit.dg/test-accessing-struct.c
  60caef14bfb482627a962469a4524fce  gcc/testsuite/jit.dg/test-accessing-union.c
--- 114441,114450 ----
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! 01bc6b4ba547ea58a271d43b3041aef1  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
! c2ab8a50f6099a876788d5e2b281249b  gcc/testsuite/jit.dg/jit.exp
  3fd6900c9d1d0edd53191542d96ffcec  gcc/testsuite/jit.dg/test-accessing-bitfield.c
  790dcf4e4a5c3dce84639ef815265f21  gcc/testsuite/jit.dg/test-accessing-struct.c
  60caef14bfb482627a962469a4524fce  gcc/testsuite/jit.dg/test-accessing-union.c
*************** bcc659c5c8ad01904087579142d235cb  gcc/te
*** 107179,107184 ****
--- 114452,114458 ----
  063713dfe4d13a7db9487f04ca46de92  gcc/testsuite/jit.dg/test-alias-attribute.c
  c233136ab18af5e948dfb6afa5fee7b7  gcc/testsuite/jit.dg/test-alignment.c
  c96b8b75ba517dc647306c0f299c9b2d  gcc/testsuite/jit.dg/test-alignment.cc
+ 4304695b04bc2f87169d3f0140e84740  gcc/testsuite/jit.dg/test-alignof.c
  2fdb2d029b4d2ac2ee6075d0b41dd30f  gcc/testsuite/jit.dg/test-always_inline-attribute.c
  c9f821ccc1905c2cf6da3b515300cc71  gcc/testsuite/jit.dg/test-arith-overflow.c
  978312b6ef29d047612e4077b2776108  gcc/testsuite/jit.dg/test-array-as-pointer.c
*************** b6b657ddbcecefb50b21259cc5711010  gcc/te
*** 107187,107192 ****
--- 114461,114467 ----
  f73f1fd00c548879b2e9693e182a41a6  gcc/testsuite/jit.dg/test-asm.cc
  cc1b167a1d5eaf426dbf6721a80c93e7  gcc/testsuite/jit.dg/test-autovectorize.c
  3f5b0ae02ffd9c801777cd40eeb400a9  gcc/testsuite/jit.dg/test-benchmark.c
+ e41febdb7901fb94d36df7f507293871  gcc/testsuite/jit.dg/test-bfloat16.c
  3e0111bf71ea4a09db4266d20c9c2ff0  gcc/testsuite/jit.dg/test-bitcast.c
  425e82d760b4b92b760e58daad16a725  gcc/testsuite/jit.dg/test-builtin-memcpy.c
  c1c4ffe41bbf76d4a61fec8d9b42486c  gcc/testsuite/jit.dg/test-builtin-types.c
*************** f34e7ef4d055ab7b719406f4af743422  gcc/te
*** 107203,107208 ****
--- 114478,114484 ----
  6c38f147d96d254624feb8015fdc5ef0  gcc/testsuite/jit.dg/test-compound-assignment.c
  7a5fff57386e554aea3f76e69f405c75  gcc/testsuite/jit.dg/test-const-attribute.c
  da2633ae9e3039a064e79583ac2ed729  gcc/testsuite/jit.dg/test-constants.c
+ b2ba2ced184928b82534f012c50af1a0  gcc/testsuite/jit.dg/test-convert-vector.c
  fcf1117c170a5452646f6599908d4d34  gcc/testsuite/jit.dg/test-debug-strings.c
  cb8f0e0a8bd20f09f54d4fc96e7a13f9  gcc/testsuite/jit.dg/test-debuginfo.c
  20dd26ba5e2717d52d4e1067972e1d67  gcc/testsuite/jit.dg/test-dot-product.c
*************** ee645b37b25f2a3eddfb21e8be20336d  gcc/te
*** 107210,107215 ****
--- 114486,114493 ----
  7e92c7a2ed10887fff56fcf4d7ef3c64  gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
  6eef66aeae471d259e994ed25ea486f5  gcc/testsuite/jit.dg/test-error-array-as-pointer.c
  b501163b23478ab847f9a8fc171c6713  gcc/testsuite/jit.dg/test-error-array-bounds.c
+ dfb836afb65b1ee5048efb971be3da83  gcc/testsuite/jit.dg/test-error-assign-readonly.c
+ f23891ab41cf83348b68a92bd977a460  gcc/testsuite/jit.dg/test-error-bad-assignment-op.c
  d3cb545cb98c0633bfc443fcdebf1e86  gcc/testsuite/jit.dg/test-error-bad-assignment.c
  bc40f3b4e9fbd3cf736225c60f97b330  gcc/testsuite/jit.dg/test-error-bad-bitcast.c
  e06264f7598f9aad46edf170a0db2f4c  gcc/testsuite/jit.dg/test-error-bad-bitcast2.c
*************** c9c33e452e2adfd9c4e9baf94b297ac1  gcc/te
*** 107280,107286 ****
  7dcbf3a51d99ea2da2adff082c9c47b9  gcc/testsuite/jit.dg/test-error-param-sharing.c
  82018736eb8bdc03755bf8e9c0aa7fb1  gcc/testsuite/jit.dg/test-error-param-used-from-other-function.c
  3690962ab5ea20a0bb1f832ec8e3185c  gcc/testsuite/jit.dg/test-error-param-used-without-a-function.c
! 3137a0aa8e46b2a0a07efeb14f175e03  gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c
  d54d9ac81ba5a3c223a7638ade50667e  gcc/testsuite/jit.dg/test-error-register-variable-bad-name.c
  54cd0e1ca917f0742690ba43edcc4c66  gcc/testsuite/jit.dg/test-error-register-variable-size-mismatch.c
  7dc6f6039918148eac178050da2616f9  gcc/testsuite/jit.dg/test-error-return-within-void-function.c
--- 114558,114564 ----
  7dcbf3a51d99ea2da2adff082c9c47b9  gcc/testsuite/jit.dg/test-error-param-sharing.c
  82018736eb8bdc03755bf8e9c0aa7fb1  gcc/testsuite/jit.dg/test-error-param-used-from-other-function.c
  3690962ab5ea20a0bb1f832ec8e3185c  gcc/testsuite/jit.dg/test-error-param-used-without-a-function.c
! 2c82875f851212ff6d8c3e9ab67866ac  gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c
  d54d9ac81ba5a3c223a7638ade50667e  gcc/testsuite/jit.dg/test-error-register-variable-bad-name.c
  54cd0e1ca917f0742690ba43edcc4c66  gcc/testsuite/jit.dg/test-error-register-variable-size-mismatch.c
  7dc6f6039918148eac178050da2616f9  gcc/testsuite/jit.dg/test-error-return-within-void-function.c
*************** e476b3e50d2451ccb2e83dcb94690dc6  gcc/te
*** 107309,107318 ****
--- 114587,114598 ----
  80b72c20a77acf6efdab8175de57b651  gcc/testsuite/jit.dg/test-noinline-attribute.c
  191f3860e35690946e4e8a67a922d5df  gcc/testsuite/jit.dg/test-nonnull-attribute.c
  3dd91ef7035565601d335ad5b9e073e4  gcc/testsuite/jit.dg/test-operator-overloading.cc
+ 274abd5058b907d6f0e32d139cc95d06  gcc/testsuite/jit.dg/test-output-ident.c
  7fa37a0f5c9c77c611ba7756c25082a9  gcc/testsuite/jit.dg/test-pointer_size.c
  ade1682ca2c0e7a724956380cbe5a74b  gcc/testsuite/jit.dg/test-popcount.c
  e47372605dd57d3184d1a399a4dda2f3  gcc/testsuite/jit.dg/test-pr103562.c
  1c0ba4aa6b12ef4ca7882a1f7653e39a  gcc/testsuite/jit.dg/test-pr105812-bool-operations.c
+ eb5744fc8c4eab6cdfe2698fc921a300  gcc/testsuite/jit.dg/test-pr117886-write-reproducer.c
  f23c8426b4779d93458122aa6f97231a  gcc/testsuite/jit.dg/test-pr66700-observing-write-through-ptr.c
  1e13f203827617338962b7f4bc0aef4d  gcc/testsuite/jit.dg/test-pr66779.c
  e1de260f2ea5cb4cf607c76292f03edc  gcc/testsuite/jit.dg/test-pr95306-builtin-types.c
*************** e1de260f2ea5cb4cf607c76292f03edc  gcc/te
*** 107321,107430 ****
  1f18cb1e4926db574b25c58a26e71a53  gcc/testsuite/jit.dg/test-quadratic.c
  ce096ee573017f44e9c3cd0933f0d297  gcc/testsuite/jit.dg/test-quadratic.cc
  df424c268791473ace062ef873c388e2  gcc/testsuite/jit.dg/test-reading-struct.c
  e167d73b7dc287235f76fda5c3d44a54  gcc/testsuite/jit.dg/test-reflection.c
  38693c5e37ab7f738ee4f05bc4688ec0  gcc/testsuite/jit.dg/test-register-variable.c
  47b4f4e3718b24cb9c37ddec1f3fb5c2  gcc/testsuite/jit.dg/test-restrict-attribute.c
  e75fb18f9aff909b3c6639a4dac3074c  gcc/testsuite/jit.dg/test-restrict.c
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
  a5626b9d860be98a2945e6db0103eb86  gcc/testsuite/jit.dg/test-setting-alignment.c
  62528d4a27e27c4755becb0dbd93db39  gcc/testsuite/jit.dg/test-sizeof.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
  0ad799327d6cf83f94f71c26fc490f61  gcc/testsuite/jit.dg/test-sum-of-squares.c
  bca3f58a8fb9ee1db76c5883c6d533f3  gcc/testsuite/jit.dg/test-switch.c
  060e97573747dc7dec3a27373a6f93aa  gcc/testsuite/jit.dg/test-switch.cc
  1dbd5675d95a6e7aa3ff419392d6dedd  gcc/testsuite/jit.dg/test-threads.c
  23fe4e6ebca22d47798698e1a9eed222  gcc/testsuite/jit.dg/test-tls.c
  af7112223f23a060486e371aaa393e98  gcc/testsuite/jit.dg/test-trap.c
! b8adcd9731f0c23906afe161ca33aa6a  gcc/testsuite/jit.dg/test-types.c
  9904e17b6165343142ab782d4bf78127  gcc/testsuite/jit.dg/test-used-attribute.c
  e309c53b14c724939a1564046c6a5df2  gcc/testsuite/jit.dg/test-using-global.c
  87b9d64f8250158521cb3cae842ff2cb  gcc/testsuite/jit.dg/test-validly-unreachable-block.c
  6a2edba90b59cf002b5d1cf480184162  gcc/testsuite/jit.dg/test-variable-attribute.c
  66bd443798448a3863f71885dbc59b0f  gcc/testsuite/jit.dg/test-vector-rvalues.cc
  1fb99c80f8738ec43e1d8be3c7535acc  gcc/testsuite/jit.dg/test-vector-types.cc
  5542ebc8aa1b198ad40aeeee64259afb  gcc/testsuite/jit.dg/test-version.c
  96ac85af1dde837e4f4e2444d083cf22  gcc/testsuite/jit.dg/test-volatile.c
  9da1409ac5b1dea56852239c56e8fa5f  gcc/testsuite/jit.dg/test-weak-attribute.c
  6477c66fcebff4d502d26e2d247251ce  gcc/testsuite/jit.dg/verify-dynamic-library.c
! ab2ca3d0e0b92fd87c10230969ba5af7  gcc/testsuite/lib/asan-dg.exp
! 4dbdf89edffc901452b13d2a0bdb65e6  gcc/testsuite/lib/atomic-dg.exp
! 4f790186c789bfcdbbcc5b70dd4337b8  gcc/testsuite/lib/c-compat.exp
! 741ac6095f715a3500a38704d0e0a8ca  gcc/testsuite/lib/c-torture.exp
! 6e2de0938da5ad4d0e5c4959d087eb43  gcc/testsuite/lib/clearcap.exp
! 83f04af574d0ad7f8e5282156ad5d556  gcc/testsuite/lib/compat.exp
! 130ad96ffdcfe11d2fe6c2870a1dd594  gcc/testsuite/lib/copy-file.exp
! d6125a409c5492f42bdd3581a6291955  gcc/testsuite/lib/dejapatches.exp
! d8cb3cb43eef832ce8959d86aaba6192  gcc/testsuite/lib/dg-pch.exp
! e1cfca56719cf20aabfa2eaffaf9c91d  gcc/testsuite/lib/file-format.exp
! 87a567cf60d4efb1054d4145cc8467cf  gcc/testsuite/lib/fortran-modules.exp
! 4c59619913e6dd2c92c4141183a9e698  gcc/testsuite/lib/fortran-torture.exp
! 48df544908c2b010d652baf087fd5afd  gcc/testsuite/lib/g++-dg.exp
! 7cb39a88db3f72c232f8d53d86db17ea  gcc/testsuite/lib/g++.exp
! 53984ed209ccb74f363842eef1a19e52  gcc/testsuite/lib/gcc-defs.exp
! 47d942711fe1c7f9d2c68bcc14682423  gcc/testsuite/lib/gcc-dg.exp
! 0eb2432780f7e3ed7d4c0af42ee55e9b  gcc/testsuite/lib/gcc-gdb-test.exp
! b1a20c06c1019960f39f4611f1252018  gcc/testsuite/lib/gcc-simulate-thread.exp
! 6c909f40f5b301e1738c8d375278c93d  gcc/testsuite/lib/gcc.exp
! 9a6c7ab6cb826fabea843f2f0cb137b5  gcc/testsuite/lib/gcov.exp
! 5a52ea3b03b13e9c3a8e6aa9f1d4f2e9  gcc/testsuite/lib/gdc-dg.exp
! e10174ba3bc639b5a7b7d3ac99e3acd7  gcc/testsuite/lib/gdc-utils.exp
! ca1631ec6619a95d1ce0177b7cefae74  gcc/testsuite/lib/gdc.exp
! 3bd2ea98e97c64f767e5547a1295c16d  gcc/testsuite/lib/gfortran-dg.exp
! b7460c0b3311c71ba1ef5043c5447538  gcc/testsuite/lib/gfortran.exp
! aed587b341d738358d9328ab172f93da  gcc/testsuite/lib/gm2-dg.exp
! 0c45478588b43265d66b10c2ffcf002a  gcc/testsuite/lib/gm2-simple.exp
! d0cdece43dd266f32823b9e46080120b  gcc/testsuite/lib/gm2-torture.exp
! 087dac28812f4cb43c225a62b65903d4  gcc/testsuite/lib/gm2.exp
! daf210c75c8c031bf07f93be2090cbd1  gcc/testsuite/lib/gnat-dg.exp
! 98152f3b1fe75d1a3b2b86fa69c5f548  gcc/testsuite/lib/gnat.exp
! ea1a8984df21eb7b429a00bc3d0a99c7  gcc/testsuite/lib/go-dg.exp
! c4d8ec89484f8330ae0008d131fedf28  gcc/testsuite/lib/go-torture.exp
! 192f15a6eb39416f8b8e16eb34ed9a7e  gcc/testsuite/lib/go.exp
! 4818c4d4e4a63feda289f71aa5a2d3db  gcc/testsuite/lib/hwasan-dg.exp
! 484d239d5c61861001373c287746fbce  gcc/testsuite/lib/lto.exp
! d5c788891580183c0162d61bee2606c9  gcc/testsuite/lib/mike-g++.exp
! 7b1a3e5d995ace232fab35f5c2bc144d  gcc/testsuite/lib/mike-gcc.exp
! 8d644e83696b168db4e275e7aae92821  gcc/testsuite/lib/modules.exp
! f89b045f2842e5ff03497a49f6252c55  gcc/testsuite/lib/multiline.exp
! e7dfc093129242634d55f5be6acfaf2f  gcc/testsuite/lib/obj-c++-dg.exp
! 2aebb5337b46130df1565434bf0b195b  gcc/testsuite/lib/obj-c++.exp
! 4b367ff2ecab820f990c8f946bd89e93  gcc/testsuite/lib/objc-dg.exp
! 21c856594e6722454d5476af6f52f112  gcc/testsuite/lib/objc-torture.exp
! 4b0b9a5c4a7c4d06df2cd57ee2ab54ea  gcc/testsuite/lib/objc.exp
! dae75a86ae5b5d6ce0fdabfc4f20e2e4  gcc/testsuite/lib/options.exp
! 68980ed8b7f38b9fbd0f534a26c4db48  gcc/testsuite/lib/plugin-support.exp
! a37fe017e931c00ce12a5e7b78ada9d8  gcc/testsuite/lib/profopt.exp
! 3c38be1427dbdf4a264c5eb185e13473  gcc/testsuite/lib/prune.exp
! 033d1a538a24fe68b60a3abf7b92cc5d  gcc/testsuite/lib/rust-dg.exp
! 1eacb2a09b27b7cf0580594468b8342b  gcc/testsuite/lib/rust.exp
! 16fae062233a3ce15736d09dd7a31f28  gcc/testsuite/lib/scanasm.exp
! 3740696da6818471a876d60d77815ea4  gcc/testsuite/lib/scandump.exp
! 967f17be06a92fa347f21c7234330499  gcc/testsuite/lib/scanipa.exp
! 6c76de001e7e4d2a05ea449457d59694  gcc/testsuite/lib/scanlang.exp
! 26abdbc95a93ff83f5437ad045c9e4ee  gcc/testsuite/lib/scanltranstree.exp
! 01bb207738e3dcab9a8ea98b8241e5a3  gcc/testsuite/lib/scanoffload.exp
! 33e0694a6fdec242be55609f15a8448e  gcc/testsuite/lib/scanoffloadipa.exp
! 42ebb96280781443865c3ee17fe4ec56  gcc/testsuite/lib/scanoffloadrtl.exp
! 485d510dbfbac9e8721b06fb19adf771  gcc/testsuite/lib/scanoffloadtree.exp
! 18a34a9127c831b6a702d9bb1cff897a  gcc/testsuite/lib/scanrtl.exp
! 3119a4fbb564c1af17e955c7781d3cd7  gcc/testsuite/lib/scansarif.exp
! 07faac7e74c4f606428755364b00d949  gcc/testsuite/lib/scantree.exp
! a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
! dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
! c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 2bf8504133913870928e100c86cfd564  gcc/testsuite/lib/target-supports.exp
! d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
! 64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
! 75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
! e89ae856b26d34205b78e02f939985af  gcc/testsuite/lib/torture-options.exp
! 177b882c7b9412a6bf7ed52bb1bae07d  gcc/testsuite/lib/tsan-dg.exp
! 61d150d8aa9db5d1ea94fa3cd5a823d2  gcc/testsuite/lib/ubsan-dg.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
! b20e1e61993cbb6f7077afe71e2eae66  gcc/testsuite/lib/wrapper.exp
  83447103f758c2c8ec2044c84069e212  gcc/testsuite/obj-c++.dg/SEL-typedef.mm
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/obj-c++.dg/Wimplicit-fallthrough-1.mm
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/obj-c++.dg/at-class-1.mm
! 360fb312933e1ed062d21559684bf444  gcc/testsuite/obj-c++.dg/attributes/attributes.exp
  3ae67bbd6c30272de285ecf52bbe29c4  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-1.mm
  bb7c92f88fdb2a6c371fe4b187f0cebd  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-2.mm
  ca1ca55dc3bc194afaeccb9c90623e9e  gcc/testsuite/obj-c++.dg/attributes/class-attribute-1.mm
--- 114601,114764 ----
  1f18cb1e4926db574b25c58a26e71a53  gcc/testsuite/jit.dg/test-quadratic.c
  ce096ee573017f44e9c3cd0933f0d297  gcc/testsuite/jit.dg/test-quadratic.cc
  df424c268791473ace062ef873c388e2  gcc/testsuite/jit.dg/test-reading-struct.c
+ 7267a07ede9df92214d664d836747741  gcc/testsuite/jit.dg/test-readonly.c
  e167d73b7dc287235f76fda5c3d44a54  gcc/testsuite/jit.dg/test-reflection.c
  38693c5e37ab7f738ee4f05bc4688ec0  gcc/testsuite/jit.dg/test-register-variable.c
  47b4f4e3718b24cb9c37ddec1f3fb5c2  gcc/testsuite/jit.dg/test-restrict-attribute.c
  e75fb18f9aff909b3c6639a4dac3074c  gcc/testsuite/jit.dg/test-restrict.c
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
  a5626b9d860be98a2945e6db0103eb86  gcc/testsuite/jit.dg/test-setting-alignment.c
+ 43c10dea1efb77b54218e22f2b879311  gcc/testsuite/jit.dg/test-signed-char.c
  62528d4a27e27c4755becb0dbd93db39  gcc/testsuite/jit.dg/test-sizeof.c
+ baa5fe6e699066fd8ffc5bcfe6d2bc19  gcc/testsuite/jit.dg/test-special-chars.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
  0ad799327d6cf83f94f71c26fc490f61  gcc/testsuite/jit.dg/test-sum-of-squares.c
  bca3f58a8fb9ee1db76c5883c6d533f3  gcc/testsuite/jit.dg/test-switch.c
  060e97573747dc7dec3a27373a6f93aa  gcc/testsuite/jit.dg/test-switch.cc
+ 92a5a54d325806d422ffe89edf73e68c  gcc/testsuite/jit.dg/test-target-builtins.c
+ 2a29868e54b7450738faf2e8fc4c8501  gcc/testsuite/jit.dg/test-temp.c
  1dbd5675d95a6e7aa3ff419392d6dedd  gcc/testsuite/jit.dg/test-threads.c
  23fe4e6ebca22d47798698e1a9eed222  gcc/testsuite/jit.dg/test-tls.c
  af7112223f23a060486e371aaa393e98  gcc/testsuite/jit.dg/test-trap.c
! adaaa89118d93ac8548b4a9b93d01b03  gcc/testsuite/jit.dg/test-types.c
  9904e17b6165343142ab782d4bf78127  gcc/testsuite/jit.dg/test-used-attribute.c
  e309c53b14c724939a1564046c6a5df2  gcc/testsuite/jit.dg/test-using-global.c
  87b9d64f8250158521cb3cae842ff2cb  gcc/testsuite/jit.dg/test-validly-unreachable-block.c
  6a2edba90b59cf002b5d1cf480184162  gcc/testsuite/jit.dg/test-variable-attribute.c
+ 801fb8b5fa1bb5ab837814e4110f4036  gcc/testsuite/jit.dg/test-vector-perm.c
  66bd443798448a3863f71885dbc59b0f  gcc/testsuite/jit.dg/test-vector-rvalues.cc
  1fb99c80f8738ec43e1d8be3c7535acc  gcc/testsuite/jit.dg/test-vector-types.cc
  5542ebc8aa1b198ad40aeeee64259afb  gcc/testsuite/jit.dg/test-version.c
  96ac85af1dde837e4f4e2444d083cf22  gcc/testsuite/jit.dg/test-volatile.c
  9da1409ac5b1dea56852239c56e8fa5f  gcc/testsuite/jit.dg/test-weak-attribute.c
  6477c66fcebff4d502d26e2d247251ce  gcc/testsuite/jit.dg/verify-dynamic-library.c
! d97cb720c01f1bc719687ebc9f26e19b  gcc/testsuite/lib/asan-dg.exp
! 007a28907562dba3b6d50680bee1d7a5  gcc/testsuite/lib/atomic-dg.exp
! a5c2575c4165778006545f92e871ade8  gcc/testsuite/lib/c-compat.exp
! 98d7f48d633caa5988d52514950c0bee  gcc/testsuite/lib/c-torture.exp
! 9cf62cc7dbece2184bc95809ecee92f7  gcc/testsuite/lib/clearcap.exp
! 5d749efdf6f40d4c2a354ca997f10bfc  gcc/testsuite/lib/cobol-dg.exp
! 8211067a1b779aefae6fd77957bb7eb4  gcc/testsuite/lib/cobol.exp
! d295416de142bce7fc458983acb9489d  gcc/testsuite/lib/compat.exp
! e06ddcc8b966348a43559148bf3a544b  gcc/testsuite/lib/copy-file.exp
! e87a7723ddb82de7bd960a324539538f  gcc/testsuite/lib/dejapatches.exp
! 31d24b134e38aa3361c281e5dd89277a  gcc/testsuite/lib/dg-pch.exp
! 61f91fe7cbce250dac8a961e3dbd4071  gcc/testsuite/lib/dg-test-cleanup.exp
! 58f513e93c9d11094e8f0c6934f2852d  gcc/testsuite/lib/file-format.exp
! 9784ae05070dcc427e2ab82a218df718  gcc/testsuite/lib/fortran-modules.exp
! 9c1c18d54fa5811ce07e3c5d4a677fbf  gcc/testsuite/lib/fortran-torture.exp
! b44378e468c0382151ed8994ace386ff  gcc/testsuite/lib/g++-dg.exp
! c345df92b75960dbcf02dc790324b5c6  gcc/testsuite/lib/g++.exp
! 8fd60242e028a3c0b9360a52d67cb069  gcc/testsuite/lib/gcc-defs.exp
! 24aef3e25614ae34eb87dc77f3ec277f  gcc/testsuite/lib/gcc-dg.exp
! 4ce14b2651c02595541e337529a858a7  gcc/testsuite/lib/gcc-gdb-test.exp
! 5d11df299efe6269fcdaed3cf91ebd4a  gcc/testsuite/lib/gcc-simulate-thread.exp
! c652081610935366b7989df767a74c8b  gcc/testsuite/lib/gcc.exp
! f427d0c6721f464c1dcbe2e8bea5fdfe  gcc/testsuite/lib/gcov.exp
! 8c590f85ba5894f40914c46f8bc69b2f  gcc/testsuite/lib/gdc-dg.exp
! 8f3645a50424e97fe6b26af7c9c0687f  gcc/testsuite/lib/gdc-utils.exp
! 7ec502ba1cd2c6c5bda03d37745be94e  gcc/testsuite/lib/gdc.exp
! 853c0efaf4a3901db6936d6302001ba3  gcc/testsuite/lib/gfortran-dg.exp
! 985be2abb0f17d04a53bacc42a9c473c  gcc/testsuite/lib/gfortran.exp
! f5b911868d95f3514a08278e82fac055  gcc/testsuite/lib/gm2-dg.exp
! 3e2c68ae3bfef468faf9345ca7f69c78  gcc/testsuite/lib/gm2-simple.exp
! b31646238765c4f7c1464399fd05e5eb  gcc/testsuite/lib/gm2-torture.exp
! cde7364d679bf019115a37fca70a6f52  gcc/testsuite/lib/gm2.exp
! 0678956ec8761ea452385bc244b33382  gcc/testsuite/lib/gnat-dg.exp
! 30035dff80db0cbe777f5ec29ee77ebc  gcc/testsuite/lib/gnat.exp
! 628b339f01ad2b5a5afbfe6c0220ad31  gcc/testsuite/lib/go-dg.exp
! a658e6e3511698723b87be3277ba706d  gcc/testsuite/lib/go-torture.exp
! 450868d4f15f0faade8c693e132ee071  gcc/testsuite/lib/go.exp
! 8699bdd60911dccd7ce56e96f4032646  gcc/testsuite/lib/hwasan-dg.exp
! 570d1ec9b7a393a25ac703df89bbc0ee  gcc/testsuite/lib/lto.exp
! 645e8af17b334c4e279636a7b47dacbe  gcc/testsuite/lib/mike-g++.exp
! b2d617c3a17f3ed4084a60722369c3a8  gcc/testsuite/lib/mike-gcc.exp
! bf783dcd14ad74babc1bf3e91cc46055  gcc/testsuite/lib/modules.exp
! 97bc4436b04d543c4739c11a3f4c7c79  gcc/testsuite/lib/multiline.exp
! 1c00843e9346dc308c9c3779eb8ca531  gcc/testsuite/lib/obj-c++-dg.exp
! e7c501da98d4a79a382f65d5a172d7b5  gcc/testsuite/lib/obj-c++.exp
! 19cb4fa8eed364c6b80adb42c6765a11  gcc/testsuite/lib/objc-dg.exp
! 368db59d1d824d7b0746d902abd46598  gcc/testsuite/lib/objc-torture.exp
! 0cb9e8b4aaa52806bd9e000fbb88335e  gcc/testsuite/lib/objc.exp
! 73f8e7fcba76f3bb5458e5c95e1a21d5  gcc/testsuite/lib/options.exp
! 22774fd5371b440075969ba8c2ea47a4  gcc/testsuite/lib/plugin-support.exp
! 314adb1e13c4c51727a909aceee45a3a  gcc/testsuite/lib/print-stack.exp
! 73a76fa4a6658cc3001b63cc275aee11  gcc/testsuite/lib/profopt.exp
! d7307d6eecb64fbf8475c3fba44ea3ee  gcc/testsuite/lib/prune.exp
! 430635d56dfe6d0f15cb8aaf2de52cdd  gcc/testsuite/lib/rust-dg.exp
! d13a537e9f50905986ddedd8e2b67459  gcc/testsuite/lib/rust.exp
! a447115837a98ea4ab8390ca3c1d400a  gcc/testsuite/lib/sarif-replay-dg.exp
! 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
! b1906d02580c467cf4242e775596ac53  gcc/testsuite/lib/sarif.py
! 3bab5edb1612d4cf66f2a8f5c4e2ae61  gcc/testsuite/lib/scanasm.exp
! 83e6c25542a5f84dc92619a64a4fe0e7  gcc/testsuite/lib/scandump.exp
! f17c3b8bef5ec71bda9ad84ca4b914ae  gcc/testsuite/lib/scanipa.exp
! fd03e108300403306a7858e519bd3e59  gcc/testsuite/lib/scanlang.exp
! 86e70acdb5b44ab73fe4ca953e089c5f  gcc/testsuite/lib/scanltrans.exp
! 67a0c0aec7594b973850bc8a44b9f243  gcc/testsuite/lib/scanoffload.exp
! 856212648149a8431e45cf0f2a8390a6  gcc/testsuite/lib/scanoffloadipa.exp
! eb1595e729e2eaac81c7ffe330d8f24e  gcc/testsuite/lib/scanoffloadrtl.exp
! 2b815aa6b4160625ef4388d879951d67  gcc/testsuite/lib/scanoffloadtree.exp
! 822e4c2d16e5d72eed66199a34f4cb93  gcc/testsuite/lib/scanrtl.exp
! 19e0d0075c2967fd0f47569cf5f32a5e  gcc/testsuite/lib/scansarif.exp
! 4515d2cda1c5f8aa1e92f306ef46c63c  gcc/testsuite/lib/scantree.exp
! f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
! 23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
! d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 13b6e1e897d9eeff92cfafe69b891ea2  gcc/testsuite/lib/target-supports.exp
! cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
! e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
! b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
! 2cb7660b2b6950c42ed338422105bb40  gcc/testsuite/lib/torture-options.exp
! 0d0c00e6dda927dc78aa2598356992b8  gcc/testsuite/lib/tsan-dg.exp
! 2e03fa7862218219579e77e7bd8dbcd5  gcc/testsuite/lib/ubsan-dg.exp
! 6c4bf0a76160e717869c27e102f1367b  gcc/testsuite/lib/valgrind.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
! 3e3173edae5ac6a523acb397d351492f  gcc/testsuite/lib/wrapper.exp
! a4a9359c5b5661d671b4a762e567d302  gcc/testsuite/libgdiagnostics.dg/libgdiagnostics.exp
! b1906d02580c467cf4242e775596ac53  gcc/testsuite/libgdiagnostics.dg/sarif.py
! 199042148695ff2141815d1e523d74e5  gcc/testsuite/libgdiagnostics.dg/test-dump.c
! dc0f26e1bea25003e7ee175954088c29  gcc/testsuite/libgdiagnostics.dg/test-error-c.py
! 7f24b7e1eaae110159005f90d22b101b  gcc/testsuite/libgdiagnostics.dg/test-error-with-note-c.py
! e5dab780574c0d74817ec92d13624028  gcc/testsuite/libgdiagnostics.dg/test-error-with-note.c
! 17ef3a04cfcb8c87827582799f537fa3  gcc/testsuite/libgdiagnostics.dg/test-error-with-note.cc
! b6b809ba55fffd705af5519134a20e8a  gcc/testsuite/libgdiagnostics.dg/test-error.c
! 4be086e5364c44565ef31bdccbf38795  gcc/testsuite/libgdiagnostics.dg/test-error.cc
! 0d4eeb7f9b5b7e98c20124552bfe3d7d  gcc/testsuite/libgdiagnostics.dg/test-example-1.c
! 6668a83974b655e154128e4e04835943  gcc/testsuite/libgdiagnostics.dg/test-fix-it-hint-c.py
! a94d6ed40eb56b13b3aa84af9140e7aa  gcc/testsuite/libgdiagnostics.dg/test-fix-it-hint.c
! 5f31b3ade9fbfb9d91ff8c2e2453e3b9  gcc/testsuite/libgdiagnostics.dg/test-fix-it-hint.cc
! 7eaf1baff5b689a5908671384535941e  gcc/testsuite/libgdiagnostics.dg/test-helpers++.h
! 01ebc7ff243f37cc063b3a89afe5291a  gcc/testsuite/libgdiagnostics.dg/test-helpers.h
! 2ba040d5b04e2624d022fd983821ed4a  gcc/testsuite/libgdiagnostics.dg/test-labelled-ranges.c
! dd4649e4bf88e02656157d5ee3e16bae  gcc/testsuite/libgdiagnostics.dg/test-labelled-ranges.cc
! 41696a2e031be075798d4708f3e542d4  gcc/testsuite/libgdiagnostics.dg/test-labelled-ranges.py
! d612089592bdacc39f354f41452fb815  gcc/testsuite/libgdiagnostics.dg/test-logical-location-c.py
! abae5783143c7b74909b4e8edd32a4f3  gcc/testsuite/libgdiagnostics.dg/test-logical-location.c
! f1a0e78f1b655e672939cd8c3f01139b  gcc/testsuite/libgdiagnostics.dg/test-metadata-c.py
! 8908b5e3eb88ff5a3ef9785ff3ac6bb8  gcc/testsuite/libgdiagnostics.dg/test-metadata.c
! 95d9cf174141475f2b01e734e9a5b240  gcc/testsuite/libgdiagnostics.dg/test-multiple-lines-c.py
! 9c1ae4d6de3ac35f5a21098a72e3349d  gcc/testsuite/libgdiagnostics.dg/test-multiple-lines.c
! a70977ae05d2dfba2c8cc4b60fe94109  gcc/testsuite/libgdiagnostics.dg/test-no-column-c.py
! 266b34e0c204ab478010e316d8de7244  gcc/testsuite/libgdiagnostics.dg/test-no-column.c
! d97a2ede9b276271fe7da53d984c46c9  gcc/testsuite/libgdiagnostics.dg/test-no-diagnostics-c.py
! 8517b6a504e34ad703d853d8ef91a028  gcc/testsuite/libgdiagnostics.dg/test-no-diagnostics.c
! 42e431151f5d39a8e3615fd6d5fa3326  gcc/testsuite/libgdiagnostics.dg/test-note-with-fix-it-hint-c.py
! 6caf27887b7cf5483cadb8e400e58add  gcc/testsuite/libgdiagnostics.dg/test-note-with-fix-it-hint.c
! d2aafb04b11f754e8a7b58940fb81a01  gcc/testsuite/libgdiagnostics.dg/test-text-sink-options.c
! 374e6d77246944f845a8918b230a46ba  gcc/testsuite/libgdiagnostics.dg/test-warning-c.py
! d83a743a8fb59adde663b5b1a24eb26d  gcc/testsuite/libgdiagnostics.dg/test-warning-with-path-c.py
! a02790f7323a8705c3fe757ac7eb628b  gcc/testsuite/libgdiagnostics.dg/test-warning-with-path.c
! ae2bb8c35d78ca989bee19306de93d2d  gcc/testsuite/libgdiagnostics.dg/test-warning.c
! 39ea3e6a3c64aa59fce2cc514bdd991f  gcc/testsuite/libgdiagnostics.dg/test-write-sarif-to-file-c.py
! b8e08d87d03676a20234d623fadb308f  gcc/testsuite/libgdiagnostics.dg/test-write-sarif-to-file.c
! 6a1bc257ba711599fc6365904bb57bb3  gcc/testsuite/libgdiagnostics.dg/test-write-text-to-file.c
  83447103f758c2c8ec2044c84069e212  gcc/testsuite/obj-c++.dg/SEL-typedef.mm
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/obj-c++.dg/Wimplicit-fallthrough-1.mm
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/obj-c++.dg/at-class-1.mm
! 45d9ef5076afa9bea9ffc8d46269340d  gcc/testsuite/obj-c++.dg/attributes/attributes.exp
  3ae67bbd6c30272de285ecf52bbe29c4  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-1.mm
  bb7c92f88fdb2a6c371fe4b187f0cebd  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-2.mm
  ca1ca55dc3bc194afaeccb9c90623e9e  gcc/testsuite/obj-c++.dg/attributes/class-attribute-1.mm
*************** e91047651063a1662428088ff7456f48  gcc/te
*** 107490,107499 ****
  e40d4b7e1e14ee92eea55e290a15be06  gcc/testsuite/obj-c++.dg/demangle-1.mm
  2b7cf81f9fd7c2f9558b6570f0835806  gcc/testsuite/obj-c++.dg/demangle-2.mm
  1894a992a842473ea3446c689c55dd1d  gcc/testsuite/obj-c++.dg/demangle-3.mm
! a6df1f9223f516dc347268934748597e  gcc/testsuite/obj-c++.dg/dg.exp
  df8e1651432977636bf9ca64823f6609  gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
  74965fa22cbb6849912eabcb1f43b6e8  gcc/testsuite/obj-c++.dg/dwarf-2.mm
! ff09985655f304be699aaf3b8ac7d0c6  gcc/testsuite/obj-c++.dg/empty-private-1.mm
  64ae66c53d490094dd3c153f9c4a9c75  gcc/testsuite/obj-c++.dg/encode-1-next.mm
  575f87323105c855ece3eec6c673cfb0  gcc/testsuite/obj-c++.dg/encode-1.mm
  e4d16fff8957aa01b40df6db83660e61  gcc/testsuite/obj-c++.dg/encode-10.mm
--- 114824,114834 ----
  e40d4b7e1e14ee92eea55e290a15be06  gcc/testsuite/obj-c++.dg/demangle-1.mm
  2b7cf81f9fd7c2f9558b6570f0835806  gcc/testsuite/obj-c++.dg/demangle-2.mm
  1894a992a842473ea3446c689c55dd1d  gcc/testsuite/obj-c++.dg/demangle-3.mm
! 85ef608756373034526268e7ee7067d3  gcc/testsuite/obj-c++.dg/dg.exp
  df8e1651432977636bf9ca64823f6609  gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
  74965fa22cbb6849912eabcb1f43b6e8  gcc/testsuite/obj-c++.dg/dwarf-2.mm
! fa56af877ac5192a1ac166f41fd90229  gcc/testsuite/obj-c++.dg/embed-1.mm
! a7dae4fd5dc7ea8d7b520bcd8937e766  gcc/testsuite/obj-c++.dg/empty-private-1.mm
  64ae66c53d490094dd3c153f9c4a9c75  gcc/testsuite/obj-c++.dg/encode-1-next.mm
  575f87323105c855ece3eec6c673cfb0  gcc/testsuite/obj-c++.dg/encode-1.mm
  e4d16fff8957aa01b40df6db83660e61  gcc/testsuite/obj-c++.dg/encode-10.mm
*************** e2f09d3bd8c76cb2cc3877eabe1635a2  gcc/te
*** 107553,107559 ****
  e0ee2e0ef377f377a4b6c0f76eb28be4  gcc/testsuite/obj-c++.dg/local-decl-1.mm
  237edc221dc0cb73012b6f771c679099  gcc/testsuite/obj-c++.dg/lookup-1.mm
  a18e5d5b1c772fda466670d9a820b3af  gcc/testsuite/obj-c++.dg/lookup-2.mm
! e67abbbc745e57d904515d56daa74d7c  gcc/testsuite/obj-c++.dg/lto/lto.exp
  ed2d21312e666f3bbed404bcac3dc94a  gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm
  50dff087071e306c9a5b45faaf24d2e9  gcc/testsuite/obj-c++.dg/method-1.mm
  19f8317903ba8bee4bf9fa945f98478d  gcc/testsuite/obj-c++.dg/method-10.mm
--- 114888,114894 ----
  e0ee2e0ef377f377a4b6c0f76eb28be4  gcc/testsuite/obj-c++.dg/local-decl-1.mm
  237edc221dc0cb73012b6f771c679099  gcc/testsuite/obj-c++.dg/lookup-1.mm
  a18e5d5b1c772fda466670d9a820b3af  gcc/testsuite/obj-c++.dg/lookup-2.mm
! ade4db71f2ed2832befa43aabab1697d  gcc/testsuite/obj-c++.dg/lto/lto.exp
  ed2d21312e666f3bbed404bcac3dc94a  gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm
  50dff087071e306c9a5b45faaf24d2e9  gcc/testsuite/obj-c++.dg/method-1.mm
  19f8317903ba8bee4bf9fa945f98478d  gcc/testsuite/obj-c++.dg/method-10.mm
*************** bb8ccf448c201adbf05356ac551899fb  gcc/te
*** 107594,107600 ****
  1c39d0d9e54d7c124e4e36d7ac5c8033  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  e84cd2640f9e4f66e445c60cecc3bfd2  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
! dae98a2760ece0386fc5eaec9de0f146  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/obj-c++.dg/pr101666-0.mm
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/obj-c++.dg/pr101666-1.mm
  7b3270d7548d00c42ba59f5769932087  gcc/testsuite/obj-c++.dg/pr101666.inc
--- 114929,114935 ----
  1c39d0d9e54d7c124e4e36d7ac5c8033  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  e84cd2640f9e4f66e445c60cecc3bfd2  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
! e675024c80eaa9ab18ae35d94d13fe95  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/obj-c++.dg/pr101666-0.mm
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/obj-c++.dg/pr101666-1.mm
  7b3270d7548d00c42ba59f5769932087  gcc/testsuite/obj-c++.dg/pr101666.inc
*************** a8c4b8171533defe44e443926dc705ce  gcc/te
*** 107686,107692 ****
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/obj-c++.dg/property/property-neg-5.mm
  2aabf1a0c895ae7fab2963b19790d1d1  gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
  b30232e7701d5769f0f353657f947392  gcc/testsuite/obj-c++.dg/property/property-neg-7.mm
! 38c9e545e54c4dde4c30b1241b69e155  gcc/testsuite/obj-c++.dg/property/property.exp
  810709bcc80423d41b2bda976147cc80  gcc/testsuite/obj-c++.dg/property/synthesize-1.mm
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/obj-c++.dg/property/synthesize-10.mm
  6603b6e3c23698004b66a8469e6c3ff6  gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
--- 115021,115027 ----
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/obj-c++.dg/property/property-neg-5.mm
  2aabf1a0c895ae7fab2963b19790d1d1  gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
  b30232e7701d5769f0f353657f947392  gcc/testsuite/obj-c++.dg/property/property-neg-7.mm
! 924e18c190456153d6e41256c3cd498b  gcc/testsuite/obj-c++.dg/property/property.exp
  810709bcc80423d41b2bda976147cc80  gcc/testsuite/obj-c++.dg/property/synthesize-1.mm
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/obj-c++.dg/property/synthesize-10.mm
  6603b6e3c23698004b66a8469e6c3ff6  gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
*************** c2f326ebd57afc69cfee9d8f6b441323  gcc/te
*** 107735,107741 ****
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
! d5b0ee98696630ae9ef3583e8192a267  gcc/testsuite/obj-c++.dg/strings/strings.exp
  bb80c284ddffba9dd33509364a06732a  gcc/testsuite/obj-c++.dg/stubify-1.mm
  76876177abcae99b177994a5bd643e22  gcc/testsuite/obj-c++.dg/stubify-2.mm
  0827dd859e38ad893f65d76bf7a5b5e1  gcc/testsuite/obj-c++.dg/super-class-1.mm
--- 115070,115076 ----
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
! 5f1705a6ea7aeaebf918e211a438c828  gcc/testsuite/obj-c++.dg/strings/strings.exp
  bb80c284ddffba9dd33509364a06732a  gcc/testsuite/obj-c++.dg/stubify-1.mm
  76876177abcae99b177994a5bd643e22  gcc/testsuite/obj-c++.dg/stubify-2.mm
  0827dd859e38ad893f65d76bf7a5b5e1  gcc/testsuite/obj-c++.dg/super-class-1.mm
*************** d2c0463e1e05d168d9d004c74cec0610  gcc/te
*** 107787,107793 ****
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
  a826eb6d88698556688b1008a86574a6  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
! f1ead70bfce085b5ec265ffa402c6800  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
  f1f7032c657f1d2102a3760375786139  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
  913caebef1028795e3b0bac01c9a87c0  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
--- 115122,115128 ----
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
  a826eb6d88698556688b1008a86574a6  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
! 1d1b13bd6e71c62d7acc1d845084a9a7  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
  f1f7032c657f1d2102a3760375786139  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
  913caebef1028795e3b0bac01c9a87c0  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
*************** cbd8c5394b3188c8a0b698fffb29e761  gcc/te
*** 107814,107819 ****
--- 115149,115155 ----
  1b120a2b02079f0053f2bf395378901f  gcc/testsuite/obj-c++.dg/try-catch-9.mm
  61737af4ba8fc8bb031e54299f5b54d5  gcc/testsuite/obj-c++.dg/typedef-alias-1.mm
  8ba02c312095da77e61bad415cd178c9  gcc/testsuite/obj-c++.dg/va-meth-1.mm
+ 16339497a1ddd8b6005622e79fca0843  gcc/testsuite/obj-c++.dg/va-meth-2.mm
  5748db698f0b8ee6bafe285e6df3dc32  gcc/testsuite/obj-c++.dg/warn5.mm
  677e021d0f4c6a2c24627bc9093ea7d6  gcc/testsuite/obj-c++.dg/warn6.mm
  cf1e5660ee1cd060f1bf1da012306d6b  gcc/testsuite/obj-c++.dg/warn7.mm
*************** dc8c5ec7b9abe64c54eabc2d60a81066  gcc/te
*** 107853,107859 ****
  a08e081524ab6799e394768da76968d3  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
  ce8c053d2554352e55b35ae330cd5126  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
  79f58fc20c1f2dfd98bc097643134fed  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
! 15ecf6aec8cc14817d21fc8d803a52c0  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
  ac76ddcf9ed6ab3c92c31559244da096  gcc/testsuite/objc-obj-c++-shared/next-abi.h
  f3501304cb4e501ca831a9c4069efbe3  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.h
  885a572c6cebc62b2c85d81b1dfdb205  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.m
--- 115189,115195 ----
  a08e081524ab6799e394768da76968d3  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
  ce8c053d2554352e55b35ae330cd5126  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
  79f58fc20c1f2dfd98bc097643134fed  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
! cfa26ff64df6d4cdc9f73cf59786c127  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
  ac76ddcf9ed6ab3c92c31559244da096  gcc/testsuite/objc-obj-c++-shared/next-abi.h
  f3501304cb4e501ca831a9c4069efbe3  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.h
  885a572c6cebc62b2c85d81b1dfdb205  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.m
*************** cb269bc755b2a67364f3313e8faf3f29  gcc/te
*** 107868,107874 ****
  3b8fd8c2ee22e0099d80e4fa89e2befc  gcc/testsuite/objc.dg/alias.m
  d1b6c3f1ea4ae2a41059c91bb5a2b852  gcc/testsuite/objc.dg/anon-1.m
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/objc.dg/at-class-1.m
! 660e0db5bbc970d8699391a721936bd8  gcc/testsuite/objc.dg/attributes/attributes.exp
  fd95a72920339d2253044c54f9ac9ea5  gcc/testsuite/objc.dg/attributes/categ-attribute-1.m
  56f3aac5dbec91275669f63a33cfbf9b  gcc/testsuite/objc.dg/attributes/categ-attribute-2.m
  aec01e9422e920606a28dcc46f3f42c4  gcc/testsuite/objc.dg/attributes/class-attribute-1.m
--- 115204,115210 ----
  3b8fd8c2ee22e0099d80e4fa89e2befc  gcc/testsuite/objc.dg/alias.m
  d1b6c3f1ea4ae2a41059c91bb5a2b852  gcc/testsuite/objc.dg/anon-1.m
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/objc.dg/at-class-1.m
! b7a9c88fc09095d22e24d56c197dad79  gcc/testsuite/objc.dg/attributes/attributes.exp
  fd95a72920339d2253044c54f9ac9ea5  gcc/testsuite/objc.dg/attributes/categ-attribute-1.m
  56f3aac5dbec91275669f63a33cfbf9b  gcc/testsuite/objc.dg/attributes/categ-attribute-2.m
  aec01e9422e920606a28dcc46f3f42c4  gcc/testsuite/objc.dg/attributes/class-attribute-1.m
*************** fcbd6d34fab967afc68044cbc6bebd90  gcc/te
*** 107935,107944 ****
  38a179920a287512b87250b596d328be  gcc/testsuite/objc.dg/demangle-1.m
  c0ab0e620febd282b5e9d035d15b3f89  gcc/testsuite/objc.dg/desig-init-1.m
  35496e95171f548a40cf930fea45d49f  gcc/testsuite/objc.dg/desig-init-2.m
! aaf8913ef324ad6942a164d1b160b0c7  gcc/testsuite/objc.dg/dg.exp
  142353bbb63675a2f47a3552a35e052f  gcc/testsuite/objc.dg/duplicate-class-1.m
  e93baeeda9bc4b65e5eea748a076d816  gcc/testsuite/objc.dg/dwarf-1.m
  0a836d2fda427c66107feaabe420bcf3  gcc/testsuite/objc.dg/dwarf-2.m
  53443690ca665ae75ecc6ea991307bfc  gcc/testsuite/objc.dg/encode-1.m
  d41bdbf8fd720cd2fb1c999d1e580ba5  gcc/testsuite/objc.dg/encode-10.m
  7c5ab8c1e32dc1b6afe8dba2152db2cd  gcc/testsuite/objc.dg/encode-11.m
--- 115271,115281 ----
  38a179920a287512b87250b596d328be  gcc/testsuite/objc.dg/demangle-1.m
  c0ab0e620febd282b5e9d035d15b3f89  gcc/testsuite/objc.dg/desig-init-1.m
  35496e95171f548a40cf930fea45d49f  gcc/testsuite/objc.dg/desig-init-2.m
! da8206a9a86ed57125b5510aaa49693a  gcc/testsuite/objc.dg/dg.exp
  142353bbb63675a2f47a3552a35e052f  gcc/testsuite/objc.dg/duplicate-class-1.m
  e93baeeda9bc4b65e5eea748a076d816  gcc/testsuite/objc.dg/dwarf-1.m
  0a836d2fda427c66107feaabe420bcf3  gcc/testsuite/objc.dg/dwarf-2.m
+ 4448d814025e1a9ee809577e010ddf53  gcc/testsuite/objc.dg/embed-1.m
  53443690ca665ae75ecc6ea991307bfc  gcc/testsuite/objc.dg/encode-1.m
  d41bdbf8fd720cd2fb1c999d1e580ba5  gcc/testsuite/objc.dg/encode-10.m
  7c5ab8c1e32dc1b6afe8dba2152db2cd  gcc/testsuite/objc.dg/encode-11.m
*************** af1f88eec3b11606777ae67c0f56c07b  gcc/te
*** 107999,108005 ****
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
  73fd2a43073b565b250e87dcce3fb9b1  gcc/testsuite/objc.dg/gnu-encoding/generate-random_r.c
! 96fd4ce42a578858a0947433abd4527e  gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
  c41a6661b12b159d108661dd40bac309  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1.h
  b602f2a3cc56cd39c738d2241938856f  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1_test.h
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
--- 115336,115342 ----
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
  73fd2a43073b565b250e87dcce3fb9b1  gcc/testsuite/objc.dg/gnu-encoding/generate-random_r.c
! e51c477df58bad64d2ef54c657762bf7  gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
  c41a6661b12b159d108661dd40bac309  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1.h
  b602f2a3cc56cd39c738d2241938856f  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1_test.h
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
*************** f95bd6372c4bf77d12d57a628fc5bb39  gcc/te
*** 108037,108048 ****
  d770885e56a7430b48fc3465970fbda1  gcc/testsuite/objc.dg/local-decl-1.m
  1d93e9b716a93515c5ab71dc3394158e  gcc/testsuite/objc.dg/local-decl-2.m
  5f8d8d488322be4a5c33e704a91212ff  gcc/testsuite/objc.dg/lookup-1.m
! 832bf474e207bb1589bbe0ed296f6af3  gcc/testsuite/objc.dg/lto/lto.exp
  a18c6d04d0759ee5d6c7e2b9e7fbe288  gcc/testsuite/objc.dg/lto/trivial-1_0.m
  b1a80cc8c0c5d5294699c5aeb20817a4  gcc/testsuite/objc.dg/member-1.m
  c1908e6ec96975ce2e11da3796fb69d6  gcc/testsuite/objc.dg/method-1.m
  3e263f2f9ed001e19a2a726838ec4a3e  gcc/testsuite/objc.dg/method-10.m
! c0d034a8cd6ecd57c2549adf5fdcd989  gcc/testsuite/objc.dg/method-11.m
  68ec95d6036d3873f9a3a8c432aa9a33  gcc/testsuite/objc.dg/method-12.m
  3189c122af67e00e7018c5f14ec2f70a  gcc/testsuite/objc.dg/method-13.m
  207ed30790b2eca15ae4f15ac67e6f65  gcc/testsuite/objc.dg/method-14.m
--- 115374,115385 ----
  d770885e56a7430b48fc3465970fbda1  gcc/testsuite/objc.dg/local-decl-1.m
  1d93e9b716a93515c5ab71dc3394158e  gcc/testsuite/objc.dg/local-decl-2.m
  5f8d8d488322be4a5c33e704a91212ff  gcc/testsuite/objc.dg/lookup-1.m
! d856ba118d2bcd28023d6f2fe97a79e2  gcc/testsuite/objc.dg/lto/lto.exp
  a18c6d04d0759ee5d6c7e2b9e7fbe288  gcc/testsuite/objc.dg/lto/trivial-1_0.m
  b1a80cc8c0c5d5294699c5aeb20817a4  gcc/testsuite/objc.dg/member-1.m
  c1908e6ec96975ce2e11da3796fb69d6  gcc/testsuite/objc.dg/method-1.m
  3e263f2f9ed001e19a2a726838ec4a3e  gcc/testsuite/objc.dg/method-10.m
! 356f8cf0ef5f9fcd4eb957f206a09eeb  gcc/testsuite/objc.dg/method-11.m
  68ec95d6036d3873f9a3a8c432aa9a33  gcc/testsuite/objc.dg/method-12.m
  3189c122af67e00e7018c5f14ec2f70a  gcc/testsuite/objc.dg/method-13.m
  207ed30790b2eca15ae4f15ac67e6f65  gcc/testsuite/objc.dg/method-14.m
*************** a14143ecfb8bf86238a675e92e7ad689  gcc/te
*** 108070,108075 ****
--- 115407,115413 ----
  56651a021e1eb7eb1a267d430fca0f45  gcc/testsuite/objc.dg/missing-proto-2.m
  99f32e89b5ff570d8db58662101a7b5d  gcc/testsuite/objc.dg/missing-proto-3.m
  b6a4bff612a08ec461838ac1b3bd23f1  gcc/testsuite/objc.dg/msg-in-protocol.m
+ 14c5dba937654fd619e3370f418ad360  gcc/testsuite/objc.dg/named-loops-1.m
  fcd05c4c0185fc0b317bc6ea1cbc3895  gcc/testsuite/objc.dg/naming-1.m
  99a266629e7ff08c3c048e7d076b7d72  gcc/testsuite/objc.dg/naming-2.m
  ba9c85f123a269332f97289544f0c272  gcc/testsuite/objc.dg/naming-3.m
*************** d6bb76e151385d5dcc0bccac5e79fa6e  gcc/te
*** 108090,108098 ****
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
  71da4e106e38b3671b4f4ae8a237e55f  gcc/testsuite/objc.dg/pch/interface-1.m
! fcefac9f780938f3e79e027e98eb0e2a  gcc/testsuite/objc.dg/pch/pch.exp
  9d6541dc0a9955231b38937f98c5b78a  gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m
! ab68af4e80ff541b2c890bb76817684b  gcc/testsuite/objc.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/objc.dg/pr101666-0.m
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/objc.dg/pr101666-1.m
  c963db6673c4b0358e639bc17180a2a0  gcc/testsuite/objc.dg/pr101666.inc
--- 115428,115436 ----
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
  71da4e106e38b3671b4f4ae8a237e55f  gcc/testsuite/objc.dg/pch/interface-1.m
! f3149d9c99bcd6859904911024284a3e  gcc/testsuite/objc.dg/pch/pch.exp
  9d6541dc0a9955231b38937f98c5b78a  gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m
! 468e24ee1e0ade66878ea59796b10494  gcc/testsuite/objc.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/objc.dg/pr101666-0.m
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/objc.dg/pr101666-1.m
  c963db6673c4b0358e639bc17180a2a0  gcc/testsuite/objc.dg/pr101666.inc
*************** baf9036868eba04aebdd06e708a665ec  gcc/te
*** 108189,108195 ****
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/objc.dg/property/property-neg-5.m
  ea4fb9865bd07122883de2bcf725a13f  gcc/testsuite/objc.dg/property/property-neg-6.m
  b30232e7701d5769f0f353657f947392  gcc/testsuite/objc.dg/property/property-neg-7.m
! c840b764ffbc270429bd265ab5f44b2b  gcc/testsuite/objc.dg/property/property.exp
  366ec4311c5e9d93dcfbbd560da544a7  gcc/testsuite/objc.dg/property/synthesize-1.m
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/objc.dg/property/synthesize-10.m
  23e9117b246f1a4889c17099f6ccf5bf  gcc/testsuite/objc.dg/property/synthesize-11.m
--- 115527,115533 ----
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/objc.dg/property/property-neg-5.m
  ea4fb9865bd07122883de2bcf725a13f  gcc/testsuite/objc.dg/property/property-neg-6.m
  b30232e7701d5769f0f353657f947392  gcc/testsuite/objc.dg/property/property-neg-7.m
! 5290bfbb59f2d567f91d0ccdee459655  gcc/testsuite/objc.dg/property/property.exp
  366ec4311c5e9d93dcfbbd560da544a7  gcc/testsuite/objc.dg/property/synthesize-1.m
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/objc.dg/property/synthesize-10.m
  23e9117b246f1a4889c17099f6ccf5bf  gcc/testsuite/objc.dg/property/synthesize-11.m
*************** c531fbd47d6cd6f34fd4a1161fe41d36  gcc/te
*** 108238,108244 ****
  b5566392b676a4381c9fba425af46d22  gcc/testsuite/objc.dg/special/load-category-3.h
  531fa8066e9e519b7cc77fe0e99f2692  gcc/testsuite/objc.dg/special/load-category-3.m
  84e0d0ac9e785e6c7a2c3961f9fef351  gcc/testsuite/objc.dg/special/load-category-3a.m
! 7872eb5471c66cf382498cd594c9bf8b  gcc/testsuite/objc.dg/special/special.exp
  a771ad2e4109d3b6d673ea6ae3dfaa4f  gcc/testsuite/objc.dg/special/unclaimed-category-1.h
  a3f5ac774c5045ab1807af23f8bafeb5  gcc/testsuite/objc.dg/special/unclaimed-category-1.m
  fd73b19f16303df474ad98a05e01cd6a  gcc/testsuite/objc.dg/special/unclaimed-category-1a.m
--- 115576,115582 ----
  b5566392b676a4381c9fba425af46d22  gcc/testsuite/objc.dg/special/load-category-3.h
  531fa8066e9e519b7cc77fe0e99f2692  gcc/testsuite/objc.dg/special/load-category-3.m
  84e0d0ac9e785e6c7a2c3961f9fef351  gcc/testsuite/objc.dg/special/load-category-3a.m
! 8d91e4ec8e8115feaa6cd9f2f9495bc2  gcc/testsuite/objc.dg/special/special.exp
  a771ad2e4109d3b6d673ea6ae3dfaa4f  gcc/testsuite/objc.dg/special/unclaimed-category-1.h
  a3f5ac774c5045ab1807af23f8bafeb5  gcc/testsuite/objc.dg/special/unclaimed-category-1.m
  fd73b19f16303df474ad98a05e01cd6a  gcc/testsuite/objc.dg/special/unclaimed-category-1a.m
*************** d14e2bc0e149efd8ad9b13c9f1e48081  gcc/te
*** 108255,108261 ****
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
! b1f977e76cb9ea65fd2a4d4e744a2ef6  gcc/testsuite/objc.dg/strings/strings.exp
  08a5ae539a0108908d97abd54da7b150  gcc/testsuite/objc.dg/stubify-1.m
  e62d1c240e660f200afe1c83315d23c2  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
--- 115593,115599 ----
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
! e0c4b1c01b4e3d2cb949081858a95c21  gcc/testsuite/objc.dg/strings/strings.exp
  08a5ae539a0108908d97abd54da7b150  gcc/testsuite/objc.dg/stubify-1.m
  e62d1c240e660f200afe1c83315d23c2  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
*************** a8a9f4264b042cb130bb43f35157c620  gcc/te
*** 108293,108299 ****
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
  5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
! e0e5ff77a1af5af98cb0802b9aa0616e  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
  8affcfa2f40a88a07d936c0472352a61  gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
--- 115631,115637 ----
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
  5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
! fd8e43a61c54c43d2e26998ec676d901  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
  8affcfa2f40a88a07d936c0472352a61  gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
*************** f0a85fb06bc40a59b3b67e37b68bf8a9  gcc/te
*** 108328,108334 ****
  af0fd8f33da4a0b997aa6096000deff3  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
! 1da48d9510beea557d81ea159afabef2  gcc/testsuite/objc/compile/compile.exp
  2144ecc4331915c2481c0a1f5701d0e2  gcc/testsuite/objc/compile/method-1.m
  41f9da1aa9876935f010f6e2b17679e6  gcc/testsuite/objc/compile/pr18406.m
  e206c4c7af6f1b10d643ca659d7ce5fb  gcc/testsuite/objc/compile/pr64668.m
--- 115666,115672 ----
  af0fd8f33da4a0b997aa6096000deff3  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
! b5948ad93a0b9e5bb137c85208b9407e  gcc/testsuite/objc/compile/compile.exp
  2144ecc4331915c2481c0a1f5701d0e2  gcc/testsuite/objc/compile/method-1.m
  41f9da1aa9876935f010f6e2b17679e6  gcc/testsuite/objc/compile/pr18406.m
  e206c4c7af6f1b10d643ca659d7ce5fb  gcc/testsuite/objc/compile/pr64668.m
*************** bee60356c32af863f8417a00f203538f  gcc/te
*** 108386,108392 ****
  0dfc21e690c7625bdcd6ecd58b521009  gcc/testsuite/objc/execute/enumeration-1.m
  906ad68029b532a36a68c47b781f6f77  gcc/testsuite/objc/execute/enumeration-2.m
  0add90ae8cf075ffca747fd33e604e11  gcc/testsuite/objc/execute/exceptions/catchall-1.m
! ec94c75219765f128d030182b81188fa  gcc/testsuite/objc/execute/exceptions/exceptions.exp
  9cd4ece00a81d13b805c9ad514ef2cf8  gcc/testsuite/objc/execute/exceptions/finally-1.m
  0f41feff3df5bd47c204ee5d8044ea2a  gcc/testsuite/objc/execute/exceptions/foward-1.m
  e9b8822effadb281ff59150cc70ef17f  gcc/testsuite/objc/execute/exceptions/foward-1.x
--- 115724,115730 ----
  0dfc21e690c7625bdcd6ecd58b521009  gcc/testsuite/objc/execute/enumeration-1.m
  906ad68029b532a36a68c47b781f6f77  gcc/testsuite/objc/execute/enumeration-2.m
  0add90ae8cf075ffca747fd33e604e11  gcc/testsuite/objc/execute/exceptions/catchall-1.m
! 718d7d7c330a28cfa0b382293b72f020  gcc/testsuite/objc/execute/exceptions/exceptions.exp
  9cd4ece00a81d13b805c9ad514ef2cf8  gcc/testsuite/objc/execute/exceptions/finally-1.m
  0f41feff3df5bd47c204ee5d8044ea2a  gcc/testsuite/objc/execute/exceptions/foward-1.m
  e9b8822effadb281ff59150cc70ef17f  gcc/testsuite/objc/execute/exceptions/foward-1.x
*************** bece99d6de6f0bd4152de59cd8f1d13c  gcc/te
*** 108396,108402 ****
  a70e5bfb678efb233f3a7e3aedf20e95  gcc/testsuite/objc/execute/exceptions/pr31281.m
  dfa856dff7b9f08e7146dc28cfca396d  gcc/testsuite/objc/execute/exceptions/throw-nil.m
  e2d7fb111f167f00bc00103220075df5  gcc/testsuite/objc/execute/exceptions/trivial.m
! 41e3330bcd77763691ada537cd5876b7  gcc/testsuite/objc/execute/execute.exp
  cad3b31ba4ec282f94aee3275ac9323e  gcc/testsuite/objc/execute/fdecl.m
  1a92e165604e454883c8a1a3e560c7a2  gcc/testsuite/objc/execute/formal_protocol-1.m
  fae68af182768d87f73efa38e36d5ba3  gcc/testsuite/objc/execute/formal_protocol-2.m
--- 115734,115740 ----
  a70e5bfb678efb233f3a7e3aedf20e95  gcc/testsuite/objc/execute/exceptions/pr31281.m
  dfa856dff7b9f08e7146dc28cfca396d  gcc/testsuite/objc/execute/exceptions/throw-nil.m
  e2d7fb111f167f00bc00103220075df5  gcc/testsuite/objc/execute/exceptions/trivial.m
! d47cf02add1e54780140e020187a1b7b  gcc/testsuite/objc/execute/execute.exp
  cad3b31ba4ec282f94aee3275ac9323e  gcc/testsuite/objc/execute/fdecl.m
  1a92e165604e454883c8a1a3e560c7a2  gcc/testsuite/objc/execute/formal_protocol-1.m
  fae68af182768d87f73efa38e36d5ba3  gcc/testsuite/objc/execute/formal_protocol-2.m
*************** cc86f493e7e4e40194cc20d75e4ca8e9  gcc/te
*** 108437,108458 ****
  10d4ea2c47febed0bbc5688f380b3439  gcc/testsuite/objc/execute/static-2.m
  a57e521085412bbde60e78229ace4fd5  gcc/testsuite/objc/execute/trivial.m
  2d60a6650416d3bcd6a3f5f1fb61dece  gcc/testsuite/objc/execute/va_method.m
  8095ed7e65a58371ba451265d0c77a81  gcc/testsuite/rust/compile/abi-options1.rs
  d6cef0e2a9876718ef7a3fd4beeb6a17  gcc/testsuite/rust/compile/abi-vardaic.rs
  6e019d4b8b35700f65898fed199587a1  gcc/testsuite/rust/compile/all-cast.rs
  901b9d713edac630ba6ea674c4450902  gcc/testsuite/rust/compile/array3.rs
  d2c5ff8cb3d6990bbfd11e406cca6a23  gcc/testsuite/rust/compile/array4.rs
  ec15ff347aa69c536e7e791163bb9e73  gcc/testsuite/rust/compile/array_empty_list.rs
  4d9cb4f27492d0e9e7915172cfa058d1  gcc/testsuite/rust/compile/arrays1.rs
  1dfa98b92fcad6c7f618d10b415bef6b  gcc/testsuite/rust/compile/arrays2.rs
! 90abde0c3dc5ac2d6ab8d4304219cd05  gcc/testsuite/rust/compile/assume.rs
  6d43a3c855de9a784b5daf14d332bb2c  gcc/testsuite/rust/compile/attr-mismatch-crate-name.rs
  e3c9ec33d7df70539fa80809be2ce0c9  gcc/testsuite/rust/compile/attr_cold.rs
  d9be47bf725d64b4d76c4e5de43dd2da  gcc/testsuite/rust/compile/attr_deprecated.rs
  3a6cf40fed3e72fa67e9861964d3f4f8  gcc/testsuite/rust/compile/attr_deprecated_2.rs
  285d2a6251c3beede3a80d6bce086007  gcc/testsuite/rust/compile/auto_trait_invalid.rs
! 84d30c5ac248281c47585284bbfae834  gcc/testsuite/rust/compile/auto_trait_super_trait.rs
  32fbddcb2f485e6e1367e04a37536c61  gcc/testsuite/rust/compile/auto_trait_valid.rs
  7673a55108cb36ca1835b653cd9d9d0d  gcc/testsuite/rust/compile/bad-crate-name1.rs
  c8c58ec31af772aad429da99744fea8c  gcc/testsuite/rust/compile/bad-crate-name2.rs
  c7ba9642fee029930b93bde0be0044d4  gcc/testsuite/rust/compile/bad=file-name.rs
--- 115775,115815 ----
  10d4ea2c47febed0bbc5688f380b3439  gcc/testsuite/objc/execute/static-2.m
  a57e521085412bbde60e78229ace4fd5  gcc/testsuite/objc/execute/trivial.m
  2d60a6650416d3bcd6a3f5f1fb61dece  gcc/testsuite/objc/execute/va_method.m
+ ed5d2cfa69a4e1a3e09e45ccc2af8887  gcc/testsuite/rust/borrowck/borrowck.exp
+ c0788446b51d042b258b535fb8f9c42c  gcc/testsuite/rust/borrowck/position_dependant_outlives.rs
+ 1a9a4107ab32bf2c5117e66edea230a7  gcc/testsuite/rust/borrowck/reference.rs
+ 55549f49b623ce72177da987a9c35a4b  gcc/testsuite/rust/borrowck/return_ref_to_local.rs
+ 16359f2669c7f464396c677c3c2ca2ee  gcc/testsuite/rust/borrowck/subset.rs
+ 35294e17e69c01e0f9679503250e53a0  gcc/testsuite/rust/borrowck/test_move.rs
+ df8b3909971f0cb16cddb5bf261218f2  gcc/testsuite/rust/borrowck/test_move_behind_reference.rs
+ c28b3534baed5649e532dc6b8d82a0fa  gcc/testsuite/rust/borrowck/test_move_conditional.rs
+ 795197a26cc71b0baf3bd9f5927256df  gcc/testsuite/rust/borrowck/tmp.rs
+ 3666a253dd2a2b25d5253be6d5c03144  gcc/testsuite/rust/borrowck/use_while_mut.rs
+ 234b45612dde2e6a42b0a8f3e399963d  gcc/testsuite/rust/borrowck/use_while_mut_fr.rs
+ 382e747e98598b5399753fb36d318977  gcc/testsuite/rust/borrowck/well_formed_function_inputs.rs
  8095ed7e65a58371ba451265d0c77a81  gcc/testsuite/rust/compile/abi-options1.rs
  d6cef0e2a9876718ef7a3fd4beeb6a17  gcc/testsuite/rust/compile/abi-vardaic.rs
+ 464bc566186bb15868c776c6af427545  gcc/testsuite/rust/compile/additional-trait-bounds1.rs
+ 91d6766e611dc0b1a16a54962732e6d9  gcc/testsuite/rust/compile/additional-trait-bounds2.rs
+ 3d2cc4961107a117ce3dd0e454714ec3  gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs
  6e019d4b8b35700f65898fed199587a1  gcc/testsuite/rust/compile/all-cast.rs
  901b9d713edac630ba6ea674c4450902  gcc/testsuite/rust/compile/array3.rs
  d2c5ff8cb3d6990bbfd11e406cca6a23  gcc/testsuite/rust/compile/array4.rs
  ec15ff347aa69c536e7e791163bb9e73  gcc/testsuite/rust/compile/array_empty_list.rs
  4d9cb4f27492d0e9e7915172cfa058d1  gcc/testsuite/rust/compile/arrays1.rs
  1dfa98b92fcad6c7f618d10b415bef6b  gcc/testsuite/rust/compile/arrays2.rs
! 07cc7e7ee38e972eb2ab6058ab910205  gcc/testsuite/rust/compile/assume.rs
  6d43a3c855de9a784b5daf14d332bb2c  gcc/testsuite/rust/compile/attr-mismatch-crate-name.rs
  e3c9ec33d7df70539fa80809be2ce0c9  gcc/testsuite/rust/compile/attr_cold.rs
  d9be47bf725d64b4d76c4e5de43dd2da  gcc/testsuite/rust/compile/attr_deprecated.rs
  3a6cf40fed3e72fa67e9861964d3f4f8  gcc/testsuite/rust/compile/attr_deprecated_2.rs
+ 16f9a2d92f2d818a2805160b81e5cbf4  gcc/testsuite/rust/compile/auto_trait.rs
  285d2a6251c3beede3a80d6bce086007  gcc/testsuite/rust/compile/auto_trait_invalid.rs
! 10958953946fbdde105431e2937a1695  gcc/testsuite/rust/compile/auto_trait_super_trait.rs
  32fbddcb2f485e6e1367e04a37536c61  gcc/testsuite/rust/compile/auto_trait_valid.rs
+ 001db0fdcde4867110a5bb0dfede22b6  gcc/testsuite/rust/compile/auto_traits1.rs
+ 082ab8a4de2b630b4c2f44df2e6536c7  gcc/testsuite/rust/compile/auto_traits2.rs
+ 274440970f2f3850e87dbb1f309f82db  gcc/testsuite/rust/compile/auto_traits4.rs
  7673a55108cb36ca1835b653cd9d9d0d  gcc/testsuite/rust/compile/bad-crate-name1.rs
  c8c58ec31af772aad429da99744fea8c  gcc/testsuite/rust/compile/bad-crate-name2.rs
  c7ba9642fee029930b93bde0be0044d4  gcc/testsuite/rust/compile/bad=file-name.rs
*************** c7ba9642fee029930b93bde0be0044d4  gcc/te
*** 108460,108472 ****
  02b466f42629715260cc948eeaf75e56  gcc/testsuite/rust/compile/bad_file_name.txt.rs
  b7e6bbfef08eb8a9143a53af0f574882  gcc/testsuite/rust/compile/bad_inner_doc.rs
  8338ed51b96de19762044b4fdc58799d  gcc/testsuite/rust/compile/bad_pub_enumitems.rs
! 822aea03a6aa5bb6befd197718e43ddd  gcc/testsuite/rust/compile/bad_stmt_enums.rs
! 9f8b43272318a741168b07f0e891701c  gcc/testsuite/rust/compile/bad_toplevel_enums.rs
  0d119d70ef8a831773de61a39d852ca9  gcc/testsuite/rust/compile/bad_tuple_index.rs
  31411dd4dfa5ef81f48be8524c8a00dc  gcc/testsuite/rust/compile/bad_type1.rs
  ce19b338cc4375d80379a32da223a505  gcc/testsuite/rust/compile/bad_type2.rs
  e42d99383a25c9730ef3d807441d0b0c  gcc/testsuite/rust/compile/bounds.rs
  40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/bounds1.rs
  060a81115df2968518fc777bf575e757  gcc/testsuite/rust/compile/braced_macro_arm.rs
  8de7527f66af2394a42996e52d5babe8  gcc/testsuite/rust/compile/braced_macro_statements1.rs
  cbfc197f8134a8350885e815d5ee026c  gcc/testsuite/rust/compile/braced_macro_statements2.rs
--- 115817,115831 ----
  02b466f42629715260cc948eeaf75e56  gcc/testsuite/rust/compile/bad_file_name.txt.rs
  b7e6bbfef08eb8a9143a53af0f574882  gcc/testsuite/rust/compile/bad_inner_doc.rs
  8338ed51b96de19762044b4fdc58799d  gcc/testsuite/rust/compile/bad_pub_enumitems.rs
! 5a8bc206d376c062703ef9297f146539  gcc/testsuite/rust/compile/bad_stmt_enums.rs
! 047167a4ae4267b861b38e0b0fc3721e  gcc/testsuite/rust/compile/bad_toplevel_enums.rs
  0d119d70ef8a831773de61a39d852ca9  gcc/testsuite/rust/compile/bad_tuple_index.rs
  31411dd4dfa5ef81f48be8524c8a00dc  gcc/testsuite/rust/compile/bad_type1.rs
  ce19b338cc4375d80379a32da223a505  gcc/testsuite/rust/compile/bad_type2.rs
  e42d99383a25c9730ef3d807441d0b0c  gcc/testsuite/rust/compile/bounds.rs
  40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/bounds1.rs
+ 675fbb5db6e3724c3d695fad3a68c1c6  gcc/testsuite/rust/compile/box_syntax.rs
+ 68abfec3310f762ea2f6abf5c18d7049  gcc/testsuite/rust/compile/box_syntax_feature_gate.rs
  060a81115df2968518fc777bf575e757  gcc/testsuite/rust/compile/braced_macro_arm.rs
  8de7527f66af2394a42996e52d5babe8  gcc/testsuite/rust/compile/braced_macro_statements1.rs
  cbfc197f8134a8350885e815d5ee026c  gcc/testsuite/rust/compile/braced_macro_statements2.rs
*************** aee0d6e5e5a54d891b1d4faa7e35d45f  gcc/te
*** 108479,108503 ****
  238450e11ba7966838b9e4286ef1e145  gcc/testsuite/rust/compile/break_continue_outside_loop.rs
  9b99112d2f118c58acb61f3703144ecf  gcc/testsuite/rust/compile/break_with_value_inside_loop.rs
  3089e5cf84922d853bd7c44b22155de5  gcc/testsuite/rust/compile/broken_utf8.rs
- 88a6658f178584c62de6eb5f4a61322e  gcc/testsuite/rust/compile/builtin_macro_compile_error.rs
- 5d3c149e12159ffe7e47852c1735ad30  gcc/testsuite/rust/compile/builtin_macro_concat.rs
- b145b113cbb430d3843c851f619f7c30  gcc/testsuite/rust/compile/builtin_macro_eager1.rs
- c30bc60616f4a130d189218164cd1f21  gcc/testsuite/rust/compile/builtin_macro_eager2.rs
- 85aa7aa536f834f79b2c7a1beb695dfe  gcc/testsuite/rust/compile/builtin_macro_eager3.rs
- f713f2824d9b1ffedf820733d4ef27ad  gcc/testsuite/rust/compile/builtin_macro_env.rs
- 0989ded69740ef2de22d2b7d5d350c68  gcc/testsuite/rust/compile/builtin_macro_include_bytes.rs
- 1bd8413081c143d18d2ab5f7b0a3aae9  gcc/testsuite/rust/compile/builtin_macro_include_bytes_location_info.rs
- dd3da3aaaaab7cb7eaea34a3aa52b27b  gcc/testsuite/rust/compile/builtin_macro_include_str.rs
- 794339400ee1f6736e4f7d9b7729b688  gcc/testsuite/rust/compile/builtin_macro_include_str_location_info.rs
- b3311e2d0b414c3607d49989521d8ca0  gcc/testsuite/rust/compile/builtin_macro_not_found.rs
- 2a37255df1b16a872e02855ab7964be2  gcc/testsuite/rust/compile/builtin_macro_recurse2.rs
  629afb83d10bc6fdc75861d3b03b34ae  gcc/testsuite/rust/compile/bytecharstring.rs
  32883bd2cd57b15b0d562d5fc0a60332  gcc/testsuite/rust/compile/canonical_paths1.rs
  bbb7a81f895315976bb3b8975d3f3319  gcc/testsuite/rust/compile/cast1.rs
  950b4a75c3c3faf17dffe2facde1f08d  gcc/testsuite/rust/compile/cast4.rs
  b669ba48ac5e60d6d2fe212ead01eb4d  gcc/testsuite/rust/compile/cast5.rs
  4c09411ff14a842b39cc80cabb0d1c42  gcc/testsuite/rust/compile/cast_generics.rs
  0ade7c1bac955f1b03af6464186073fc  gcc/testsuite/rust/compile/cfg-attr.rs
  2648512ce6f2397fa9b2b9b663774782  gcc/testsuite/rust/compile/cfg1.rs
  39df3ad8f1d7a8d1cabbc2a028bca689  gcc/testsuite/rust/compile/cfg2.rs
  c73d64b77895517ecd6f3c68791c8a69  gcc/testsuite/rust/compile/cfg3.rs
--- 115838,115853 ----
  238450e11ba7966838b9e4286ef1e145  gcc/testsuite/rust/compile/break_continue_outside_loop.rs
  9b99112d2f118c58acb61f3703144ecf  gcc/testsuite/rust/compile/break_with_value_inside_loop.rs
  3089e5cf84922d853bd7c44b22155de5  gcc/testsuite/rust/compile/broken_utf8.rs
  629afb83d10bc6fdc75861d3b03b34ae  gcc/testsuite/rust/compile/bytecharstring.rs
  32883bd2cd57b15b0d562d5fc0a60332  gcc/testsuite/rust/compile/canonical_paths1.rs
  bbb7a81f895315976bb3b8975d3f3319  gcc/testsuite/rust/compile/cast1.rs
  950b4a75c3c3faf17dffe2facde1f08d  gcc/testsuite/rust/compile/cast4.rs
  b669ba48ac5e60d6d2fe212ead01eb4d  gcc/testsuite/rust/compile/cast5.rs
+ 99fe91ea2af5bed99341104ce86fa75b  gcc/testsuite/rust/compile/cast_float_as_integer.rs
  4c09411ff14a842b39cc80cabb0d1c42  gcc/testsuite/rust/compile/cast_generics.rs
  0ade7c1bac955f1b03af6464186073fc  gcc/testsuite/rust/compile/cfg-attr.rs
+ a75268078027e4027a1c1f8b374e58c2  gcc/testsuite/rust/compile/cfg-core1.rs
+ 70f80e73e71174a8c4e1c8791f40099a  gcc/testsuite/rust/compile/cfg-core2.rs
  2648512ce6f2397fa9b2b9b663774782  gcc/testsuite/rust/compile/cfg1.rs
  39df3ad8f1d7a8d1cabbc2a028bca689  gcc/testsuite/rust/compile/cfg2.rs
  c73d64b77895517ecd6f3c68791c8a69  gcc/testsuite/rust/compile/cfg3.rs
*************** c73d64b77895517ecd6f3c68791c8a69  gcc/te
*** 108508,108514 ****
  55f85f3cef139e7d73fee86f9df506d1  gcc/testsuite/rust/compile/closure_in_closure.rs
  2bb5cf15b07de99923afb39cf1aca432  gcc/testsuite/rust/compile/closure_move_expr.rs
  2ba93dbc4c6b008206d95d608331f3aa  gcc/testsuite/rust/compile/closure_no_type_anno.rs
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/compile/compile.exp
  26906781b85cc46264ef3e39029497f7  gcc/testsuite/rust/compile/complex-path1.rs
  6d005d5b0b3c8f9d215dfc0454904663  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
  dcf8b8a8ff1f9675ee275b77209cc26a  gcc/testsuite/rust/compile/const-issue1440.rs
--- 115858,115865 ----
  55f85f3cef139e7d73fee86f9df506d1  gcc/testsuite/rust/compile/closure_in_closure.rs
  2bb5cf15b07de99923afb39cf1aca432  gcc/testsuite/rust/compile/closure_move_expr.rs
  2ba93dbc4c6b008206d95d608331f3aa  gcc/testsuite/rust/compile/closure_no_type_anno.rs
! 9df3c0f643c2b0578b52dd55daa3403e  gcc/testsuite/rust/compile/cmp1.rs
! 3b48f4a57e61a47baa03bd470696ba75  gcc/testsuite/rust/compile/compile.exp
  26906781b85cc46264ef3e39029497f7  gcc/testsuite/rust/compile/complex-path1.rs
  6d005d5b0b3c8f9d215dfc0454904663  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
  dcf8b8a8ff1f9675ee275b77209cc26a  gcc/testsuite/rust/compile/const-issue1440.rs
*************** dd04212a2e511e939aedac8b2ea59543  gcc/te
*** 108525,108538 ****
  e03f96eb1b1abbe5563a1a760fe06b10  gcc/testsuite/rust/compile/const_async_function.rs
  d5d062233962271057388d4ed79aa6de  gcc/testsuite/rust/compile/const_generics_1.rs
  843f362a8c63f610af0a4ac77f309065  gcc/testsuite/rust/compile/const_generics_2.rs
! f31e17675bfb3ab2814f2c2652b310b2  gcc/testsuite/rust/compile/const_generics_3.rs
! 61271191489c154700ce0225afcbf890  gcc/testsuite/rust/compile/const_generics_4.rs
  38f18fe55c05240c48888d461dd7cf8d  gcc/testsuite/rust/compile/const_generics_5.rs
  132116f02eae6c44e8198bc85dd53d08  gcc/testsuite/rust/compile/const_generics_6.rs
! b3a8bfc23456930eb0b89b6ed6633856  gcc/testsuite/rust/compile/const_generics_7.rs
  7523ea428464817a67f476fe689fe871  gcc/testsuite/rust/compile/const_generics_8.rs
  d1bc715bfb792187c8752b3676e946f0  gcc/testsuite/rust/compile/const_trait_fn.rs
  4258f4d6f84473191c981e8a84f06d70  gcc/testsuite/rust/compile/continue1.rs
  7f4fe873fe1df5d7009cbf90b7ae70f5  gcc/testsuite/rust/compile/deadcode_err1.rs
  fdfa5359cba5b4ebe27dc487d7bde273  gcc/testsuite/rust/compile/deadcode_err2.rs
  5c62594c4ac22ce08e737301cfef1e14  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
--- 115876,115890 ----
  e03f96eb1b1abbe5563a1a760fe06b10  gcc/testsuite/rust/compile/const_async_function.rs
  d5d062233962271057388d4ed79aa6de  gcc/testsuite/rust/compile/const_generics_1.rs
  843f362a8c63f610af0a4ac77f309065  gcc/testsuite/rust/compile/const_generics_2.rs
! 54f3ea5a9694144631b4f4e84ad02453  gcc/testsuite/rust/compile/const_generics_3.rs
! d24f122dbd7d6bbdb3f7b2c688004a72  gcc/testsuite/rust/compile/const_generics_4.rs
  38f18fe55c05240c48888d461dd7cf8d  gcc/testsuite/rust/compile/const_generics_5.rs
  132116f02eae6c44e8198bc85dd53d08  gcc/testsuite/rust/compile/const_generics_6.rs
! 50d13f94376e902f21bb959742a78950  gcc/testsuite/rust/compile/const_generics_7.rs
  7523ea428464817a67f476fe689fe871  gcc/testsuite/rust/compile/const_generics_8.rs
  d1bc715bfb792187c8752b3676e946f0  gcc/testsuite/rust/compile/const_trait_fn.rs
  4258f4d6f84473191c981e8a84f06d70  gcc/testsuite/rust/compile/continue1.rs
+ 9b2eb55272cc3c00b679874344485545  gcc/testsuite/rust/compile/crate-metavar1.rs
  7f4fe873fe1df5d7009cbf90b7ae70f5  gcc/testsuite/rust/compile/deadcode_err1.rs
  fdfa5359cba5b4ebe27dc487d7bde273  gcc/testsuite/rust/compile/deadcode_err2.rs
  5c62594c4ac22ce08e737301cfef1e14  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
*************** bbb07a308e077d8068c1a25e119fce9c  gcc/te
*** 108546,108556 ****
  bc73b541d5043286cba7b09aa1d609e9  gcc/testsuite/rust/compile/decl_macro6.rs
  d23eb70e5ff707e3d1a8c4ea21224d84  gcc/testsuite/rust/compile/decl_macro7.rs
  9c18098b4b1ce502c531f0caab668d43  gcc/testsuite/rust/compile/default_not_a_kw.rs
  b00bfad5fda1037ecfd9712632089f7e  gcc/testsuite/rust/compile/derive_empty.rs
! 2e3b7c665ac33d939710da44bc32a2e3  gcc/testsuite/rust/compile/derive_macro1.rs
! 605f6107ac40e994425002c0676257b8  gcc/testsuite/rust/compile/derive_macro3.rs
! c893204243c798d3328957d9947f20d3  gcc/testsuite/rust/compile/derive_macro4.rs
! 8ef5645f867aa821ed87f5e178d51156  gcc/testsuite/rust/compile/derive_macro6.rs
  25b35d97f1f4704f338d8b66fe6694d9  gcc/testsuite/rust/compile/derive_macro7.rs
  4f18dc206a2145c8cb8d98c62f0d8751  gcc/testsuite/rust/compile/derive_macro8.rs
  0ee7c26dcdc8fb1d25de4eee521bb29e  gcc/testsuite/rust/compile/diagnostic_underline.rs
--- 115898,115917 ----
  bc73b541d5043286cba7b09aa1d609e9  gcc/testsuite/rust/compile/decl_macro6.rs
  d23eb70e5ff707e3d1a8c4ea21224d84  gcc/testsuite/rust/compile/decl_macro7.rs
  9c18098b4b1ce502c531f0caab668d43  gcc/testsuite/rust/compile/default_not_a_kw.rs
+ 3e0da36322a6350ce7cc4cb303e29f2f  gcc/testsuite/rust/compile/deprecated-fn.rs
+ 977c893343dc050c9e421f56db3faa45  gcc/testsuite/rust/compile/derive-debug1.rs
+ 0ab48e5e5524f0f16decf66eb0ee6058  gcc/testsuite/rust/compile/derive-default1.rs
+ f27c0f8016e5452644a979e8d9fedbe2  gcc/testsuite/rust/compile/derive-eq-invalid.rs
+ 656338f1895ac7d6976ce493bd8beab2  gcc/testsuite/rust/compile/derive-hash1.rs
+ 9ee5aa00c1f670c20e5ee4ab857ae55f  gcc/testsuite/rust/compile/derive-partialeq1.rs
+ 5822bbeb23b0f8ad694ed5df0ee43eb3  gcc/testsuite/rust/compile/derive_clone_enum1.rs
+ e797f4d3af22dc6cf71b9b9a2a923b84  gcc/testsuite/rust/compile/derive_clone_enum2.rs
+ e5cdf3b0ad6be5748c19f12931430a7c  gcc/testsuite/rust/compile/derive_clone_enum3.rs
  b00bfad5fda1037ecfd9712632089f7e  gcc/testsuite/rust/compile/derive_empty.rs
! 28afb887305318fd6f40823cd02c5e28  gcc/testsuite/rust/compile/derive_macro1.rs
! 5630c5f16411daca0b41a9ef3bd19eca  gcc/testsuite/rust/compile/derive_macro3.rs
! 5056e4a6aedacdb7dd1deacd08445e37  gcc/testsuite/rust/compile/derive_macro4.rs
! afaef91e5656013d7f5a1abc7320e182  gcc/testsuite/rust/compile/derive_macro6.rs
  25b35d97f1f4704f338d8b66fe6694d9  gcc/testsuite/rust/compile/derive_macro7.rs
  4f18dc206a2145c8cb8d98c62f0d8751  gcc/testsuite/rust/compile/derive_macro8.rs
  0ee7c26dcdc8fb1d25de4eee521bb29e  gcc/testsuite/rust/compile/diagnostic_underline.rs
*************** d4173b37d75e489fc580f69e4c6666c9  gcc/te
*** 108559,108592 ****
  358e8e1402a859578bdfde24b20c7884  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  99b87dbe2c1c9c2d180582aab545078e  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
  d8358e6b9184a3ce78256c89fcd559e8  gcc/testsuite/rust/compile/doc_macro.rs
  25772d5243b1187d9a1cb514166b17bf  gcc/testsuite/rust/compile/dup_fields.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  aae545e94fb684c0ca246a357ee256e9  gcc/testsuite/rust/compile/empty_comment_before_match.rs
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
  46fa9cf76f8ad21f88d3360570229a80  gcc/testsuite/rust/compile/empty_union.rs
  fb2de02f6df2864b061f62571fe607f8  gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs
  624117462b2e06250289e58e427c6086  gcc/testsuite/rust/compile/expected_type_args2.rs
  995aa0b15bf08b74b74a18a03cdc9c8d  gcc/testsuite/rust/compile/expected_type_args3.rs
  ac58e8219b88c515b66ef614c71f596e  gcc/testsuite/rust/compile/extern_c_named_variadic.rs
  b7f4db5c26f356d48451f0a9821716d5  gcc/testsuite/rust/compile/extern_type_item.rs
  9e130c4eb083122a9ccbf4eb149cc2f2  gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs
! cc1024984af142e9c65ae801477887a3  gcc/testsuite/rust/compile/feature.rs
  44f07a22a8848431692bbcc231de5a95  gcc/testsuite/rust/compile/feature_extern_types.rs
  855eac5ad5f6820cf81b38a46a7b9488  gcc/testsuite/rust/compile/feature_intrinsics.rs
! 9de92a7b8795200c3238185409330005  gcc/testsuite/rust/compile/feature_rust_attri0.rs
  48d3812fa54fdd372ef8ad82f64bad0e  gcc/testsuite/rust/compile/feature_rust_attri1.rs
  5ee6657185ec67299ef2ace853f873b7  gcc/testsuite/rust/compile/for_expr.rs
  e41c2cabd63dba549da749a8fed6ca7a  gcc/testsuite/rust/compile/for_lifetimes.rs
  9c06b22a10dcf3a218bb690997175a3f  gcc/testsuite/rust/compile/found_struct.rs
  03ce7bc2c5e3478be586fcc302a8200f  gcc/testsuite/rust/compile/frust-compile-until.rs
  489b92756629c38cc6b9d8ccb1628659  gcc/testsuite/rust/compile/func1.rs
  112ccbcd809bc7db11974bac1a2abb14  gcc/testsuite/rust/compile/func2.rs
  77acd48d3dcf17e19ef0af0c27331cfe  gcc/testsuite/rust/compile/func3.rs
  b496c8cc5bfab6822169cb4203d1156c  gcc/testsuite/rust/compile/func4.rs
  68720f415f629976955a82946059407b  gcc/testsuite/rust/compile/func5.rs
! 25918272dbcc38291579e4e99d3df600  gcc/testsuite/rust/compile/functions_without_body.rs
! 3d1c9dedffcc8d1773ae724738a090ae  gcc/testsuite/rust/compile/generic-default1.rs
! 26d9315ca3a2aa3ef5c82d0bdc43619b  gcc/testsuite/rust/compile/generic_auto_trait.rs
  e3074cf23f5849f2fa7c27c13fb282cf  gcc/testsuite/rust/compile/generics1.rs
  931c1b938a76b0da8397f8e056ad3bc8  gcc/testsuite/rust/compile/generics10.rs
  e8dbcbd07045d7b5b518d0a236325d16  gcc/testsuite/rust/compile/generics11.rs
--- 115920,115969 ----
  358e8e1402a859578bdfde24b20c7884  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  99b87dbe2c1c9c2d180582aab545078e  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
  d8358e6b9184a3ce78256c89fcd559e8  gcc/testsuite/rust/compile/doc_macro.rs
+ 3a84b2790ca26c3b8c2c0a885066eb66  gcc/testsuite/rust/compile/dropck_eyepatch_feature_gate.rs
  25772d5243b1187d9a1cb514166b17bf  gcc/testsuite/rust/compile/dup_fields.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  aae545e94fb684c0ca246a357ee256e9  gcc/testsuite/rust/compile/empty_comment_before_match.rs
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
  46fa9cf76f8ad21f88d3360570229a80  gcc/testsuite/rust/compile/empty_union.rs
+ 1dcf6277650dd744a3d566444a316aa0  gcc/testsuite/rust/compile/enum_discriminant1.rs
+ 83a2384c9b68e56f0376e65eb9c9e6bc  gcc/testsuite/rust/compile/enum_discriminant2.rs
+ 0865aa437fe2a71bb321902bab995f70  gcc/testsuite/rust/compile/enum_variant_name.rs
+ 6db02af4f7c9eb1367785df801782bbc  gcc/testsuite/rust/compile/exclusive_range_pattern.rs
+ 9c04cedc1f1c9ec425a75c21dbaff743  gcc/testsuite/rust/compile/exclusive_range_pattern_feature_gate.rs
+ 113f6a76ce7638f6de23fddfbf922104  gcc/testsuite/rust/compile/exhaustiveness1.rs
+ dbbc20c84123ef716872f22db4b55df8  gcc/testsuite/rust/compile/exhaustiveness2.rs
+ c49a7755c10a7011fef681046ce9f62d  gcc/testsuite/rust/compile/exhaustiveness3.rs
  fb2de02f6df2864b061f62571fe607f8  gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs
  624117462b2e06250289e58e427c6086  gcc/testsuite/rust/compile/expected_type_args2.rs
  995aa0b15bf08b74b74a18a03cdc9c8d  gcc/testsuite/rust/compile/expected_type_args3.rs
  ac58e8219b88c515b66ef614c71f596e  gcc/testsuite/rust/compile/extern_c_named_variadic.rs
+ 69cc8fc9dafe3f54e4d6d8f64acd841a  gcc/testsuite/rust/compile/extern_func_with_body.rs
+ 60e5ca0c2aa02888ef5dd201d613d382  gcc/testsuite/rust/compile/extern_generics.rs
  b7f4db5c26f356d48451f0a9821716d5  gcc/testsuite/rust/compile/extern_type_item.rs
  9e130c4eb083122a9ccbf4eb149cc2f2  gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs
! 56f4174fc40a8cfa2caa9f1646065feb  gcc/testsuite/rust/compile/feature.rs
  44f07a22a8848431692bbcc231de5a95  gcc/testsuite/rust/compile/feature_extern_types.rs
  855eac5ad5f6820cf81b38a46a7b9488  gcc/testsuite/rust/compile/feature_intrinsics.rs
! aac26abcc55ee5aff6d422cb19c5a251  gcc/testsuite/rust/compile/feature_rust_attri0.rs
  48d3812fa54fdd372ef8ad82f64bad0e  gcc/testsuite/rust/compile/feature_rust_attri1.rs
+ 1825dcd79926678ce37e2582394f39e9  gcc/testsuite/rust/compile/for-loop1.rs
+ b129c59cb9340d86c151685156da3f0c  gcc/testsuite/rust/compile/for-loop2.rs
  5ee6657185ec67299ef2ace853f873b7  gcc/testsuite/rust/compile/for_expr.rs
  e41c2cabd63dba549da749a8fed6ca7a  gcc/testsuite/rust/compile/for_lifetimes.rs
+ c521ce3fdce4f9ebd1a3522601b5c43e  gcc/testsuite/rust/compile/format_args_basic_expansion.rs
+ ed8a4f7d14023b90cff628e85878ec31  gcc/testsuite/rust/compile/format_args_extra_comma.rs
  9c06b22a10dcf3a218bb690997175a3f  gcc/testsuite/rust/compile/found_struct.rs
  03ce7bc2c5e3478be586fcc302a8200f  gcc/testsuite/rust/compile/frust-compile-until.rs
+ 4ce5431fd288fab0e00a74049003aeaf  gcc/testsuite/rust/compile/func-const-unsafe.rs
  489b92756629c38cc6b9d8ccb1628659  gcc/testsuite/rust/compile/func1.rs
  112ccbcd809bc7db11974bac1a2abb14  gcc/testsuite/rust/compile/func2.rs
  77acd48d3dcf17e19ef0af0c27331cfe  gcc/testsuite/rust/compile/func3.rs
  b496c8cc5bfab6822169cb4203d1156c  gcc/testsuite/rust/compile/func4.rs
  68720f415f629976955a82946059407b  gcc/testsuite/rust/compile/func5.rs
! 190da102bf0077449272092d9b9bc425  gcc/testsuite/rust/compile/functions_without_body.rs
! e228c2183a648fd00c7eff22c7292403  gcc/testsuite/rust/compile/generic-default1.rs
! 02cf7dd257e61be7e4e30c918248cffa  gcc/testsuite/rust/compile/generic_auto_trait.rs
  e3074cf23f5849f2fa7c27c13fb282cf  gcc/testsuite/rust/compile/generics1.rs
  931c1b938a76b0da8397f8e056ad3bc8  gcc/testsuite/rust/compile/generics10.rs
  e8dbcbd07045d7b5b518d0a236325d16  gcc/testsuite/rust/compile/generics11.rs
*************** d351b74853227cf8b303e585c21d1fe0  gcc/te
*** 108594,108616 ****
  ed3baf52aef0cae945dfb5c73cd30acb  gcc/testsuite/rust/compile/generics13.rs
  9a59ca7c4e4eadc29fb5bbd7a29af1c6  gcc/testsuite/rust/compile/generics2.rs
  eb85bcea53e38d14f7bcc7f982cc4140  gcc/testsuite/rust/compile/generics3.rs
! 1573e5dfb5c28b7c8772af08f4cae832  gcc/testsuite/rust/compile/generics4.rs
! be971c6b2d18f3d7afade30adc9d5e64  gcc/testsuite/rust/compile/generics5.rs
! c1e1b1f68989106b681ddc8e08958951  gcc/testsuite/rust/compile/generics6.rs
  682cc29e7af5ea3a8f6b71c92d5e180b  gcc/testsuite/rust/compile/generics7.rs
  4ecc7198ef296e1aa4376fc2da4ed09d  gcc/testsuite/rust/compile/generics8.rs
! f00512e3d8f123c1c40d1ae102a1a710  gcc/testsuite/rust/compile/generics9.rs
! 47cbcf81ae1f25e4eb787272a92d8db7  gcc/testsuite/rust/compile/if_let_expr.rs
  c7d60400964e3621102e44ba4cef69f9  gcc/testsuite/rust/compile/implicit_returns_err1.rs
  effa05530ec2bc9508c522bddd5e2b38  gcc/testsuite/rust/compile/implicit_returns_err2.rs
! a7f7a6f200af74d9fa0b8e0e106cdc2e  gcc/testsuite/rust/compile/implicit_returns_err3.rs
  57564c88d8277457b1b56c8de206a9b3  gcc/testsuite/rust/compile/implicit_returns_err4.rs
  f5a0d22fb97460ebf5ec424228131615  gcc/testsuite/rust/compile/include_empty.rs
  bdcf4ee0d9c01755816b4b4cfd686a81  gcc/testsuite/rust/compile/infer-crate-name.rs
  d1c354b6a0b4fc8d599d65fd14e29373  gcc/testsuite/rust/compile/inline_1.rs
  b9d0bda67289625101108c997570a0c9  gcc/testsuite/rust/compile/inline_2.rs
! 260c1e8e753ba1209ad16aaf4c9ec1ba  gcc/testsuite/rust/compile/invalid_label_name.rs
! f78a56479ba7bd2a5ff6949cfe7a2d43  gcc/testsuite/rust/compile/invalid_utf8
  e66597d1435db8c97820eae8edf34298  gcc/testsuite/rust/compile/invalid_variadics.rs
  f263d9837667ee8d8c4b9f6ec4718cca  gcc/testsuite/rust/compile/issue-1005.rs
  ca2c27602daf9dadcc9d976aa4131edc  gcc/testsuite/rust/compile/issue-1006.rs
--- 115971,116006 ----
  ed3baf52aef0cae945dfb5c73cd30acb  gcc/testsuite/rust/compile/generics13.rs
  9a59ca7c4e4eadc29fb5bbd7a29af1c6  gcc/testsuite/rust/compile/generics2.rs
  eb85bcea53e38d14f7bcc7f982cc4140  gcc/testsuite/rust/compile/generics3.rs
! 4455201ec7ea4bae73c843936c3636e2  gcc/testsuite/rust/compile/generics4.rs
! 39acef99a4b058e012b0f00726f2b442  gcc/testsuite/rust/compile/generics5.rs
! 4b98df244d094a7e12bd9d36ceb0071c  gcc/testsuite/rust/compile/generics6.rs
  682cc29e7af5ea3a8f6b71c92d5e180b  gcc/testsuite/rust/compile/generics7.rs
  4ecc7198ef296e1aa4376fc2da4ed09d  gcc/testsuite/rust/compile/generics8.rs
! 8ee4130f9c542e96a4b55da92023b00d  gcc/testsuite/rust/compile/generics9.rs
! 2e2238492198d9ef7c0141722cead0a3  gcc/testsuite/rust/compile/if-without-else.rs
! bc84abac17812c46c39363b8ae9a8ad9  gcc/testsuite/rust/compile/if_let_expr.rs
! bcb7125cf04603fb905af55075f3c8b9  gcc/testsuite/rust/compile/if_let_expr_simple.rs
! b38301cec7d4b035fa6efa8eb15100bf  gcc/testsuite/rust/compile/iflet.rs
  c7d60400964e3621102e44ba4cef69f9  gcc/testsuite/rust/compile/implicit_returns_err1.rs
  effa05530ec2bc9508c522bddd5e2b38  gcc/testsuite/rust/compile/implicit_returns_err2.rs
! 4f820dabf53d65a41cbe62abc9094e12  gcc/testsuite/rust/compile/implicit_returns_err3.rs
  57564c88d8277457b1b56c8de206a9b3  gcc/testsuite/rust/compile/implicit_returns_err4.rs
  f5a0d22fb97460ebf5ec424228131615  gcc/testsuite/rust/compile/include_empty.rs
  bdcf4ee0d9c01755816b4b4cfd686a81  gcc/testsuite/rust/compile/infer-crate-name.rs
  d1c354b6a0b4fc8d599d65fd14e29373  gcc/testsuite/rust/compile/inline_1.rs
  b9d0bda67289625101108c997570a0c9  gcc/testsuite/rust/compile/inline_2.rs
! 7937ae9ac0113929bc50e46eccbb6748  gcc/testsuite/rust/compile/inline_asm_compile_nop.rs
! 40a96d385fa4dc8bf62b3b70b12053ad  gcc/testsuite/rust/compile/inline_asm_faulty_clobber.rs
! 8950e5d22103ff8ad611c53498d5a020  gcc/testsuite/rust/compile/inline_asm_ident_first.rs
! ce5d81bb5d6599df559d0157b885ec77  gcc/testsuite/rust/compile/inline_asm_illegal_operands.rs
! 6935f047a306758ed7b3288f6dbf507c  gcc/testsuite/rust/compile/inline_asm_illegal_options.rs
! af5e396a6998b643c871345238c68e95  gcc/testsuite/rust/compile/inline_asm_legal_options.rs
! 9e56b6a69b84c51ff27a59f9b10dc7ce  gcc/testsuite/rust/compile/inline_asm_nop.rs
! 5c6153abfd64c6a3e557367e65599dc4  gcc/testsuite/rust/compile/inline_asm_outside_unsafe.rs
! 003715abebaa791ae716d6107c1e264c  gcc/testsuite/rust/compile/inline_asm_parse_operand.rs
! 1d7c73f0088ba93a4508fb08f39cb663  gcc/testsuite/rust/compile/inline_asm_parse_output_operand.rs
! 7077d1fa449d27fa9e4995b32d37ede2  gcc/testsuite/rust/compile/inline_asm_typecheck.rs
! 1c7425b8d9b325d3d921f4b9bccca83d  gcc/testsuite/rust/compile/invalid_label_name.rs
  e66597d1435db8c97820eae8edf34298  gcc/testsuite/rust/compile/invalid_variadics.rs
  f263d9837667ee8d8c4b9f6ec4718cca  gcc/testsuite/rust/compile/issue-1005.rs
  ca2c27602daf9dadcc9d976aa4131edc  gcc/testsuite/rust/compile/issue-1006.rs
*************** b8672e41b3df45a83b26554acb9ba9d1  gcc/te
*** 108643,108669 ****
  90ebb8b1d558833c738c616dd66ff05b  gcc/testsuite/rust/compile/issue-1383.rs
  ad1f8c80e2b6dd5a82e5d235b59e8e7d  gcc/testsuite/rust/compile/issue-1393.rs
  764b8d11c95b068c1b2a8af94b17fade  gcc/testsuite/rust/compile/issue-1422.rs
! e52eecb37daa3eee24120c0c498d9391  gcc/testsuite/rust/compile/issue-1446.rs
  1aad0b48f4326d09f4e7b086d33d1863  gcc/testsuite/rust/compile/issue-1447.rs
  70540dd29e7b0706827350dab2fb8358  gcc/testsuite/rust/compile/issue-1483.rs
  94b3e95b0146b31cf5c3ed953d8aa56d  gcc/testsuite/rust/compile/issue-1524.rs
  b436c410b33bf1a4a8345bcc091c9a93  gcc/testsuite/rust/compile/issue-1589.rs
  40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/issue-1725-1.rs
  cd4c7414f38eda546be79f8fae5cdb0e  gcc/testsuite/rust/compile/issue-1725-2.rs
! 1fe00001c581f7c50fcd0b11437fbe89  gcc/testsuite/rust/compile/issue-1773.rs
  a27cbcf495ce6fabb51f8978e36c8576  gcc/testsuite/rust/compile/issue-1786.rs
  d26d80b504c5b7aceaa2fef4dec88320  gcc/testsuite/rust/compile/issue-1807.rs
  f15fc0ff6bc5cd17c8072f7c136a8c86  gcc/testsuite/rust/compile/issue-1813.rs
  043fc5bec978c63c23d0e2c62be982b5  gcc/testsuite/rust/compile/issue-1830_bytes.rs
  00968b4004619c3448e1d4e030a0ad1a  gcc/testsuite/rust/compile/issue-1830_str.rs
  9559fc65e325f14d3ed3e1f224c5ad44  gcc/testsuite/rust/compile/issue-1893.rs
! b2f23cea2a78c79a793054263a991252  gcc/testsuite/rust/compile/issue-1901.rs
  68e4e03ac47f3cd8e3923653ee133be6  gcc/testsuite/rust/compile/issue-1930.rs
! 8da1e532c5f47432319b2a42590b1583  gcc/testsuite/rust/compile/issue-1981.rs
  dea2255d500ac0b825f926116060eed6  gcc/testsuite/rust/compile/issue-2019-1.rs
  ae81890397358d0988779ae417ff81b4  gcc/testsuite/rust/compile/issue-2019-2.rs
  487f46cb43b6c6f08b18379178708d7b  gcc/testsuite/rust/compile/issue-2019-3.rs
  5a87a7a30165e85071717f02a940f443  gcc/testsuite/rust/compile/issue-2029.rs
  fe9158f762e004b8016cd4a108a6f99d  gcc/testsuite/rust/compile/issue-2036.rs
  015a261bf80644566eea53260992855a  gcc/testsuite/rust/compile/issue-2037.rs
  d967f05a8763ae6a1051fc0feda841be  gcc/testsuite/rust/compile/issue-2039.rs
--- 116033,116062 ----
  90ebb8b1d558833c738c616dd66ff05b  gcc/testsuite/rust/compile/issue-1383.rs
  ad1f8c80e2b6dd5a82e5d235b59e8e7d  gcc/testsuite/rust/compile/issue-1393.rs
  764b8d11c95b068c1b2a8af94b17fade  gcc/testsuite/rust/compile/issue-1422.rs
! 02fcd65b5c0f6695c55954d97165249e  gcc/testsuite/rust/compile/issue-1446.rs
  1aad0b48f4326d09f4e7b086d33d1863  gcc/testsuite/rust/compile/issue-1447.rs
  70540dd29e7b0706827350dab2fb8358  gcc/testsuite/rust/compile/issue-1483.rs
  94b3e95b0146b31cf5c3ed953d8aa56d  gcc/testsuite/rust/compile/issue-1524.rs
+ 95b616180b39bcdf627de4a88d7f6b8c  gcc/testsuite/rust/compile/issue-1525.rs
  b436c410b33bf1a4a8345bcc091c9a93  gcc/testsuite/rust/compile/issue-1589.rs
  40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/issue-1725-1.rs
  cd4c7414f38eda546be79f8fae5cdb0e  gcc/testsuite/rust/compile/issue-1725-2.rs
! 0e1d074590d2b9f2a4070df6ac25de28  gcc/testsuite/rust/compile/issue-1773.rs
  a27cbcf495ce6fabb51f8978e36c8576  gcc/testsuite/rust/compile/issue-1786.rs
  d26d80b504c5b7aceaa2fef4dec88320  gcc/testsuite/rust/compile/issue-1807.rs
  f15fc0ff6bc5cd17c8072f7c136a8c86  gcc/testsuite/rust/compile/issue-1813.rs
  043fc5bec978c63c23d0e2c62be982b5  gcc/testsuite/rust/compile/issue-1830_bytes.rs
  00968b4004619c3448e1d4e030a0ad1a  gcc/testsuite/rust/compile/issue-1830_str.rs
  9559fc65e325f14d3ed3e1f224c5ad44  gcc/testsuite/rust/compile/issue-1893.rs
! 1c73e99b3deaa294d0e71a2485b2a8c3  gcc/testsuite/rust/compile/issue-1901.rs
  68e4e03ac47f3cd8e3923653ee133be6  gcc/testsuite/rust/compile/issue-1930.rs
! f7f5972063e57689a5651a368ec69e76  gcc/testsuite/rust/compile/issue-1981.rs
! 78a948348edaabaa5cdb103c1bbbcb6d  gcc/testsuite/rust/compile/issue-2015.rs
  dea2255d500ac0b825f926116060eed6  gcc/testsuite/rust/compile/issue-2019-1.rs
  ae81890397358d0988779ae417ff81b4  gcc/testsuite/rust/compile/issue-2019-2.rs
  487f46cb43b6c6f08b18379178708d7b  gcc/testsuite/rust/compile/issue-2019-3.rs
  5a87a7a30165e85071717f02a940f443  gcc/testsuite/rust/compile/issue-2029.rs
+ 547ce1dcc38d44c55b14904175214a36  gcc/testsuite/rust/compile/issue-2035.rs
  fe9158f762e004b8016cd4a108a6f99d  gcc/testsuite/rust/compile/issue-2036.rs
  015a261bf80644566eea53260992855a  gcc/testsuite/rust/compile/issue-2037.rs
  d967f05a8763ae6a1051fc0feda841be  gcc/testsuite/rust/compile/issue-2039.rs
*************** bf7653a0772e6020b3f449cd76d88f20  gcc/te
*** 108688,108713 ****
  797e9a2fb3bf0297a69ef1e62d05f1bb  gcc/testsuite/rust/compile/issue-2190-1.rs
  238b1671e90934a6f83702efbafe2a42  gcc/testsuite/rust/compile/issue-2190-2.rs
  c7146c7bbd602763cefd91f32994c7da  gcc/testsuite/rust/compile/issue-2195.rs
  fcc95aaf32f2b6ae3c6e60a0a1f03a6b  gcc/testsuite/rust/compile/issue-2207.rs
  d45c1549ece0e49f041848d45eb5e799  gcc/testsuite/rust/compile/issue-2225.rs
  b9333ea7cc7759ad18a1aa30d3580d52  gcc/testsuite/rust/compile/issue-2238.rs
  49a5fb24ab1fb010fb697b5455f9589a  gcc/testsuite/rust/compile/issue-2304.rs
! 6ace0bf485400b3071059c288162b352  gcc/testsuite/rust/compile/issue-2330.rs
  8ab718258c1a331e258d5fa140812639  gcc/testsuite/rust/compile/issue-2375.rs
  c978074de410f3710470187bdc917f4b  gcc/testsuite/rust/compile/issue-2391.rs
  327d620bf438ac1ff1393dfc76ecc0d6  gcc/testsuite/rust/compile/issue-2421_str.rs
  572e79cc2733b6ad48fb030aba698641  gcc/testsuite/rust/compile/issue-2431.rs
  6a8748f8e78748713097067cd623aabd  gcc/testsuite/rust/compile/issue-2477.rs
  28bc68b646cb636c41270ed68a41b9d2  gcc/testsuite/rust/compile/issue-2478.rs
  ddd5ca8d99886bc9de4314d1f0a79932  gcc/testsuite/rust/compile/issue-2479.rs
  1c66a04857f7dfbb66f6cefe8f17ae42  gcc/testsuite/rust/compile/issue-2514.rs
  a0c18661a189417b07a4cd0a4fb67eea  gcc/testsuite/rust/compile/issue-2645.rs
  01dc6a9d25c97abfe0347aff86d22c3c  gcc/testsuite/rust/compile/issue-2650-1.rs
  fdbe4cdf6d53cb91027b26821708f199  gcc/testsuite/rust/compile/issue-2650-2.rs
  77f0f6ac41c2a0cddd898d2cfc6f7e80  gcc/testsuite/rust/compile/issue-2665.rs
  67b26e16d2c6f04c185cf6bd1629141e  gcc/testsuite/rust/compile/issue-2709.rs
  79e64442dc413769cd1a9df190ac987a  gcc/testsuite/rust/compile/issue-2723-1.rs
  fa80bafd4421fc7cb407eb34ec8bdad8  gcc/testsuite/rust/compile/issue-2723-2.rs
  1631250c1cc2e0002b5ce4a98ae6810b  gcc/testsuite/rust/compile/issue-2747.rs
  500c9ef48c2f8d072ed7e6f8b1f11a2b  gcc/testsuite/rust/compile/issue-2767.rs
  bd37683bed5641ffbd071b6be0d82a54  gcc/testsuite/rust/compile/issue-2772-1.rs
--- 116081,116119 ----
  797e9a2fb3bf0297a69ef1e62d05f1bb  gcc/testsuite/rust/compile/issue-2190-1.rs
  238b1671e90934a6f83702efbafe2a42  gcc/testsuite/rust/compile/issue-2190-2.rs
  c7146c7bbd602763cefd91f32994c7da  gcc/testsuite/rust/compile/issue-2195.rs
+ c2eb5d990301dac994badf43bde882fb  gcc/testsuite/rust/compile/issue-2203.rs
  fcc95aaf32f2b6ae3c6e60a0a1f03a6b  gcc/testsuite/rust/compile/issue-2207.rs
  d45c1549ece0e49f041848d45eb5e799  gcc/testsuite/rust/compile/issue-2225.rs
  b9333ea7cc7759ad18a1aa30d3580d52  gcc/testsuite/rust/compile/issue-2238.rs
  49a5fb24ab1fb010fb697b5455f9589a  gcc/testsuite/rust/compile/issue-2304.rs
! db6a4e59c56318982047d6257d74551c  gcc/testsuite/rust/compile/issue-2323.rs
! 5459c28a30b51155c436fcceae10a7b4  gcc/testsuite/rust/compile/issue-2324-1.rs
! fc5fbf31e2dc2650609c585672614044  gcc/testsuite/rust/compile/issue-2324-2.rs
! f016c98a316a423cbe9110749bb60df8  gcc/testsuite/rust/compile/issue-2330.rs
! 9305a2873b28168b52f4519a9889d44f  gcc/testsuite/rust/compile/issue-2369.rs
  8ab718258c1a331e258d5fa140812639  gcc/testsuite/rust/compile/issue-2375.rs
  c978074de410f3710470187bdc917f4b  gcc/testsuite/rust/compile/issue-2391.rs
+ b76da66b2264ea9a5e1aabb05e471852  gcc/testsuite/rust/compile/issue-2394.rs
  327d620bf438ac1ff1393dfc76ecc0d6  gcc/testsuite/rust/compile/issue-2421_str.rs
+ 204e9b043ccb1cba225f9859f0fa82af  gcc/testsuite/rust/compile/issue-2423.rs
  572e79cc2733b6ad48fb030aba698641  gcc/testsuite/rust/compile/issue-2431.rs
  6a8748f8e78748713097067cd623aabd  gcc/testsuite/rust/compile/issue-2477.rs
  28bc68b646cb636c41270ed68a41b9d2  gcc/testsuite/rust/compile/issue-2478.rs
  ddd5ca8d99886bc9de4314d1f0a79932  gcc/testsuite/rust/compile/issue-2479.rs
+ a639cdbc4ff4b13c41bb7efccf32ced5  gcc/testsuite/rust/compile/issue-2499.rs
  1c66a04857f7dfbb66f6cefe8f17ae42  gcc/testsuite/rust/compile/issue-2514.rs
+ 7d861f88c0fb0a67cfcdc446a2d7afc0  gcc/testsuite/rust/compile/issue-2567-1.rs
+ 5f391867787e66d496afa688f6ffdf4a  gcc/testsuite/rust/compile/issue-2567-2.rs
+ 158d7448241d763bd60847caf272b1df  gcc/testsuite/rust/compile/issue-2567-3.rs
  a0c18661a189417b07a4cd0a4fb67eea  gcc/testsuite/rust/compile/issue-2645.rs
  01dc6a9d25c97abfe0347aff86d22c3c  gcc/testsuite/rust/compile/issue-2650-1.rs
  fdbe4cdf6d53cb91027b26821708f199  gcc/testsuite/rust/compile/issue-2650-2.rs
+ ad5a6af6cd00b5ff7c2f1e8f4e9358f4  gcc/testsuite/rust/compile/issue-266.rs
  77f0f6ac41c2a0cddd898d2cfc6f7e80  gcc/testsuite/rust/compile/issue-2665.rs
  67b26e16d2c6f04c185cf6bd1629141e  gcc/testsuite/rust/compile/issue-2709.rs
  79e64442dc413769cd1a9df190ac987a  gcc/testsuite/rust/compile/issue-2723-1.rs
  fa80bafd4421fc7cb407eb34ec8bdad8  gcc/testsuite/rust/compile/issue-2723-2.rs
+ d3359bbfbf707c34372d9917675d0509  gcc/testsuite/rust/compile/issue-2725.rs
  1631250c1cc2e0002b5ce4a98ae6810b  gcc/testsuite/rust/compile/issue-2747.rs
  500c9ef48c2f8d072ed7e6f8b1f11a2b  gcc/testsuite/rust/compile/issue-2767.rs
  bd37683bed5641ffbd071b6be0d82a54  gcc/testsuite/rust/compile/issue-2772-1.rs
*************** a1c3a349606e6b480d37913f89e3264b  gcc/te
*** 108716,108724 ****
  4a8f1c0d3fcee35652ddd40876c2ae35  gcc/testsuite/rust/compile/issue-2782.rs
  5f223e6f046471154129ca4f18a29b87  gcc/testsuite/rust/compile/issue-2785.rs
  9d478006ca67887100c293872a2ae3ba  gcc/testsuite/rust/compile/issue-2788.rs
! d659e6ce0618c60021b36ae3f2acd95c  gcc/testsuite/rust/compile/issue-2812.rs
  3259a4c31a8307f797913137d89e4a44  gcc/testsuite/rust/compile/issue-2847-b.rs
  356e4f942827830208423041801e8a7a  gcc/testsuite/rust/compile/issue-2850.rs
  b614f59c05840eb45c25f4c6455c316d  gcc/testsuite/rust/compile/issue-407-2.rs
  a96ecff7ebddf1b3d15a3e3eed146c07  gcc/testsuite/rust/compile/issue-407.rs
  229b98c45f842adf4958f0a3abd8e500  gcc/testsuite/rust/compile/issue-557.rs
--- 116122,116200 ----
  4a8f1c0d3fcee35652ddd40876c2ae35  gcc/testsuite/rust/compile/issue-2782.rs
  5f223e6f046471154129ca4f18a29b87  gcc/testsuite/rust/compile/issue-2785.rs
  9d478006ca67887100c293872a2ae3ba  gcc/testsuite/rust/compile/issue-2788.rs
! 7dfbf4858fbd000b737a25219ce353f4  gcc/testsuite/rust/compile/issue-2812.rs
  3259a4c31a8307f797913137d89e4a44  gcc/testsuite/rust/compile/issue-2847-b.rs
+ 2d484efd2d1e5e97f9745bf8ca22a439  gcc/testsuite/rust/compile/issue-2847.rs
  356e4f942827830208423041801e8a7a  gcc/testsuite/rust/compile/issue-2850.rs
+ cff5ead45fa38818e49938695714423b  gcc/testsuite/rust/compile/issue-2905-1.rs
+ f1c76067d9e0cda95c5be153a4510aca  gcc/testsuite/rust/compile/issue-2905-2.rs
+ c64c6ee37c57875f223a31b7ca93c937  gcc/testsuite/rust/compile/issue-2906.rs
+ 29f455f6d8a69e4dedbfd14f6cea8fe4  gcc/testsuite/rust/compile/issue-2907.rs
+ f2f24b0eb27617d825844e2829f32d87  gcc/testsuite/rust/compile/issue-2951.rs
+ 0f4b417ad1dbbee856ffcf29764a6095  gcc/testsuite/rust/compile/issue-2953-1.rs
+ 8cf82fdc1957a7bffe9429abe6c09187  gcc/testsuite/rust/compile/issue-2953-2.rs
+ 09a73589b4f895d4b71bebcb2330388d  gcc/testsuite/rust/compile/issue-2954.rs
+ cf1b9655b0c3a9e786b82bfac808658c  gcc/testsuite/rust/compile/issue-2987.rs
+ c2d1af57769b8f5b07804e5c121f5c6a  gcc/testsuite/rust/compile/issue-3009.rs
+ a8d7d63b3a4cfcce90ed3367fd05f28c  gcc/testsuite/rust/compile/issue-3022.rs
+ 5be64c28366496ce3002eb3a089c878d  gcc/testsuite/rust/compile/issue-3030.rs
+ 88af658cc213f23b86849cd3af2790a5  gcc/testsuite/rust/compile/issue-3031.rs
+ eacdfb8535082fecb21ff97090a947a5  gcc/testsuite/rust/compile/issue-3032-1.rs
+ 1e50b2e1a3687860690c2ac2eea01512  gcc/testsuite/rust/compile/issue-3032-2.rs
+ 0a98d6b65f433a9659ab439707c1bfcc  gcc/testsuite/rust/compile/issue-3033.rs
+ 4c9dce924188a2141b41b9c33eb347e2  gcc/testsuite/rust/compile/issue-3035.rs
+ 0d1e543b36dffeb3ebc17d14a9844656  gcc/testsuite/rust/compile/issue-3036.rs
+ e70bc8badcea0df7ced21286078fe73c  gcc/testsuite/rust/compile/issue-3045-1.rs
+ e254634544b693159c4eb480ac1e8244  gcc/testsuite/rust/compile/issue-3045-2.rs
+ c26ae7d343d3a3fbe5ba88d563bb2081  gcc/testsuite/rust/compile/issue-3046.rs
+ 992164d54c304305ccb96dfb41c8b9fc  gcc/testsuite/rust/compile/issue-3082.rs
+ 51b052580e85bab9fb0f3a3d1cacc947  gcc/testsuite/rust/compile/issue-3139-1.rs
+ d011f3635f0520cf2a1144a59d7c6608  gcc/testsuite/rust/compile/issue-3139-2.rs
+ c38187cc4d1a6720dc603eb3669e31f5  gcc/testsuite/rust/compile/issue-3139-3.rs
+ a6c4e09411ae93ff227eb14a963775c4  gcc/testsuite/rust/compile/issue-3140.rs
+ c8e07b1cfb5d32ed3c3a5a05f124a2ed  gcc/testsuite/rust/compile/issue-3141.rs
+ aa60d24031a6a312c48347476819a5ff  gcc/testsuite/rust/compile/issue-3174.rs
+ 59f153890a52fe84e386d4af8805989d  gcc/testsuite/rust/compile/issue-3231.rs
+ a35346c925efb8045f613c169242de67  gcc/testsuite/rust/compile/issue-3242.rs
+ ef77cbeacb4bb028849a7f89d4dcb697  gcc/testsuite/rust/compile/issue-3261.rs
+ 12b0068486aa6b3c1b259dbceb354694  gcc/testsuite/rust/compile/issue-3304.rs
+ 5453b0240082435ff75d85bff8ea271e  gcc/testsuite/rust/compile/issue-3315-1.rs
+ e1e2b037bd7ec5aac8a6dad93adccb88  gcc/testsuite/rust/compile/issue-3315-2.rs
+ 9d6b81fb00c4df2bd274f6a6d5fa4964  gcc/testsuite/rust/compile/issue-3350.rs
+ baf4c5a7f39ae8295d20943ad1b6b1d1  gcc/testsuite/rust/compile/issue-3382.rs
+ 8885e6ac801d06f4ec4e0c7cf79ae111  gcc/testsuite/rust/compile/issue-3402-1.rs
+ ea87eb5dd98fc440678cbfc183368898  gcc/testsuite/rust/compile/issue-3402-2.rs
+ 0b6c85cbbc277ebf5846c921c4aa341b  gcc/testsuite/rust/compile/issue-3403.rs
+ 51368e372b4ae4949ed42a12880375bc  gcc/testsuite/rust/compile/issue-3541-1.rs
+ a16fac448d52ecc36f845f158322f7b4  gcc/testsuite/rust/compile/issue-3541-2.rs
+ 5d5147c212936353cb8e89a7fe5a53d5  gcc/testsuite/rust/compile/issue-3549.rs
+ 8641e5480371b80c6b5ec39645d00aea  gcc/testsuite/rust/compile/issue-3552.rs
+ 844e28af629e8aaa74e31dca339d140c  gcc/testsuite/rust/compile/issue-3553.rs
+ 2e9e39ce283620e50ccd623e5758e6fd  gcc/testsuite/rust/compile/issue-3554-1.rs
+ 89ae87e8c1e981b83ca8a9c23e184312  gcc/testsuite/rust/compile/issue-3554-2.rs
+ 8ed9f05b0580f69cc8cbdd55969abf3a  gcc/testsuite/rust/compile/issue-3563.rs
+ a183cd8a8a21fd3792bc6c25a0593dc3  gcc/testsuite/rust/compile/issue-3566-1.rs
+ 1e881f3d39a6401c4531e184680546e9  gcc/testsuite/rust/compile/issue-3566-2.rs
+ 6ad4eeba455e45a23e417c92258573d0  gcc/testsuite/rust/compile/issue-3567.rs
+ 4e5d1b688fe524448789e8f4ab286802  gcc/testsuite/rust/compile/issue-3568.rs
+ 3cd26856f36e846540fccbbf818b4684  gcc/testsuite/rust/compile/issue-3588.rs
+ 397a757997946ab15af47e9fad31284c  gcc/testsuite/rust/compile/issue-3605.rs
+ 61beaa24a09b8012dce7ddadbce604a1  gcc/testsuite/rust/compile/issue-3606.rs
+ c68fac7e04fd77c1639ea1fd3277409c  gcc/testsuite/rust/compile/issue-3613.rs
+ 29d806495de48063ed6be53b85c6a0c0  gcc/testsuite/rust/compile/issue-3614.rs
+ 084f37585e5f1aabd068014b3d37c129  gcc/testsuite/rust/compile/issue-3615.rs
+ 068bea38ad05bd2a911347bbe3993c6d  gcc/testsuite/rust/compile/issue-3625.rs
+ 5953d50711d31ae6f6b26e3727986881  gcc/testsuite/rust/compile/issue-3643.rs
+ d690a668cb1a4d9fe94ee30b4e2a967b  gcc/testsuite/rust/compile/issue-3646.rs
+ 67240263fa4bb8b82dfc90d1836012aa  gcc/testsuite/rust/compile/issue-3647.rs
+ 752cb28fa8bc90f6206905c610a7acd0  gcc/testsuite/rust/compile/issue-3648.rs
+ 2f2f9aaf2ea9530b005352b48dbde809  gcc/testsuite/rust/compile/issue-3654.rs
+ e61604d626a48912503f179b2f698a76  gcc/testsuite/rust/compile/issue-3656.rs
+ 18b03d5238900eccd4c41898bd1dae1e  gcc/testsuite/rust/compile/issue-3657.rs
+ 394bee8b53d175f742d074f2f5446d39  gcc/testsuite/rust/compile/issue-3663.rs
+ a82f3bb8e730a6249c2d9d547940590a  gcc/testsuite/rust/compile/issue-3665.rs
+ 10cacd69cdbb198a37f27ed27a03a585  gcc/testsuite/rust/compile/issue-3667.rs
+ 376bd1a3290ed7925f9d8f7c3122857e  gcc/testsuite/rust/compile/issue-3671.rs
  b614f59c05840eb45c25f4c6455c316d  gcc/testsuite/rust/compile/issue-407-2.rs
  a96ecff7ebddf1b3d15a3e3eed146c07  gcc/testsuite/rust/compile/issue-407.rs
  229b98c45f842adf4958f0a3abd8e500  gcc/testsuite/rust/compile/issue-557.rs
*************** d0bc7a1825bed2205c11837dfb95d94d  gcc/te
*** 108729,108817 ****
  08a40a4206d2165f0c4c4eda3b3a3cb4  gcc/testsuite/rust/compile/issue-855.rs
  d8268bb6a3b94251463bc663c7139eaa  gcc/testsuite/rust/compile/issue-867.rs
  f8081650b54fddb51d3b34b840dafcdb  gcc/testsuite/rust/compile/issue-925.rs
! a67dacedfae5d4501f7d0ff7d05a511c  gcc/testsuite/rust/compile/iterators1.rs
  7a8fc72a18680d5e07b71b6281265bf2  gcc/testsuite/rust/compile/lang-impl.rs
! 29cbc0cf91d08d95e62cc9432da39f1b  gcc/testsuite/rust/compile/let_alt.rs
  83a6908517e92139d7d9cbd6244e4b51  gcc/testsuite/rust/compile/lifetime_name_validation.rs
  9afdcde455c4f144c4385b9d67323cb3  gcc/testsuite/rust/compile/lookup_err1.rs
! 2c1fa92db46d19b9ccd0a1b1896725df  gcc/testsuite/rust/compile/macro-delim.rs
! ab010cddb1155cc9e700ce547b463174  gcc/testsuite/rust/compile/macro-issue1053-2.rs
! 5717e4e8d84c82f5af7bff4dc34a3be9  gcc/testsuite/rust/compile/macro-issue1053.rs
! 1e7ae050ea3d88cb2f91abc4970eee95  gcc/testsuite/rust/compile/macro-issue1224.rs
! 3717f6b791725345c890efbcdfb6a003  gcc/testsuite/rust/compile/macro-issue1233.rs
! ebe435ba941202b6f3d66250b76957da  gcc/testsuite/rust/compile/macro-issue1395-2.rs
! 216ccff25a69db7fdb37eeee23f44622  gcc/testsuite/rust/compile/macro-issue1395.rs
! 8e0ff67d24d92aa094edb9b476e6d022  gcc/testsuite/rust/compile/macro-issue1400-2.rs
! bb9aa74a9231fe6ce9d0118a41b274db  gcc/testsuite/rust/compile/macro-issue1400.rs
! 5bc0014ff55ed0e29eb2dbd0ba79d831  gcc/testsuite/rust/compile/macro-issue2092.rs
! 9a2e5218082a4e181e17e624931dffec  gcc/testsuite/rust/compile/macro-issue2192.rs
! e88caa59ad2b57999b485919fb19789f  gcc/testsuite/rust/compile/macro-issue2194.rs
! e231cc61dbaf0d417fad9624c7978667  gcc/testsuite/rust/compile/macro-issue2229.rs
! 22191d20ecd62058cb365f1cc3c8ba8e  gcc/testsuite/rust/compile/macro-issue2264.rs
! df1b8a97ae68cf8e9eac8408a743fa64  gcc/testsuite/rust/compile/macro-issue2268.rs
! 28d4ec252bf0945ced2a862377c87487  gcc/testsuite/rust/compile/macro-issue2273.rs
! 0fb684b40daad17a61596f80938a52bc  gcc/testsuite/rust/compile/macro-issue2653.rs
! bc850c4ba48b08af8788867050a975a6  gcc/testsuite/rust/compile/macro1.rs
! ac95e4402432bd69656d1ee0d52210ab  gcc/testsuite/rust/compile/macro10.rs
! 43306e2bad2235ff677beff538262cbb  gcc/testsuite/rust/compile/macro11.rs
! d2da748616e3ef6e8fe631fc5484611b  gcc/testsuite/rust/compile/macro12.rs
! 61b020bf51be5f389b73555f8990c669  gcc/testsuite/rust/compile/macro13.rs
! 44cd3545b413600a9ce11ec14d928b52  gcc/testsuite/rust/compile/macro14.rs
! 370c925d3aaf86013436d730818b128c  gcc/testsuite/rust/compile/macro15.rs
! 23e1ea558d15c047bf9c7bc7ef17fde0  gcc/testsuite/rust/compile/macro16.rs
! 0661de89079960b97bb1b047273576dc  gcc/testsuite/rust/compile/macro17.rs
! 5af29d5155e1ad26afae51f6ba61d2c2  gcc/testsuite/rust/compile/macro18.rs
! 16cbb0c310c9d3506217f27730134a71  gcc/testsuite/rust/compile/macro19.rs
! 421a4aafc9c800aacad47cea9aee5769  gcc/testsuite/rust/compile/macro2.rs
! 6db675ad9bb7b164f26fdbca910336f2  gcc/testsuite/rust/compile/macro20.rs
! acf23d48c5e8907c94fc9ad9512b9f68  gcc/testsuite/rust/compile/macro21.rs
! 94a6a460c6d078364f4e18d726d45ba7  gcc/testsuite/rust/compile/macro22.rs
! 319dfedea8a6a7db3236288fa8accdc7  gcc/testsuite/rust/compile/macro23.rs
! 2e2cfd6ad377b694fe8cb9717e6c4656  gcc/testsuite/rust/compile/macro25.rs
! 2ebb4a653eb27be8e54475a3951619f1  gcc/testsuite/rust/compile/macro26.rs
! d79f52ad12a10855d24dcc32089c3e64  gcc/testsuite/rust/compile/macro27.rs
! 0f9ccae7ee77a387dc82996745302613  gcc/testsuite/rust/compile/macro28.rs
! 7b08d09218e23d6cdbc2ac47b05dcdba  gcc/testsuite/rust/compile/macro29.rs
! 123b1e11db692d44dd105aaa54e2d5c5  gcc/testsuite/rust/compile/macro3.rs
! a04474d7ece12b1df5b48d74ed2ff9c1  gcc/testsuite/rust/compile/macro30.rs
! 04691c787fc67ff15b07fe5621bbc6e7  gcc/testsuite/rust/compile/macro31.rs
! 5d33d4ac14eb4de136975f9cfff42def  gcc/testsuite/rust/compile/macro32.rs
! 7ef893755255482c25c2832cc2ecced9  gcc/testsuite/rust/compile/macro33.rs
! 51d54ecf4fdf2c12007c4d39cea41fe5  gcc/testsuite/rust/compile/macro34.rs
! 0a6fffcc17b9c4b184022244bf899990  gcc/testsuite/rust/compile/macro35.rs
! a4c0145ebf6e0d1270d4b1b7d00fcf6d  gcc/testsuite/rust/compile/macro36.rs
! d821668aa6dd7bcd7412de828c3800c8  gcc/testsuite/rust/compile/macro37.rs
! 959c846fb4dcc18dab98e2f73485e3da  gcc/testsuite/rust/compile/macro38.rs
! ec75483aa3888f5e6a15380b33895a40  gcc/testsuite/rust/compile/macro39.rs
! 47935881e7414eacc5ee88b55b692cda  gcc/testsuite/rust/compile/macro4.rs
! 1948e4f81ca6c91d69420cff1f6e72ef  gcc/testsuite/rust/compile/macro40.rs
! 3b11e1cf2d0e9a7d2ad4f22731a32842  gcc/testsuite/rust/compile/macro41.rs
! 41a82268280de492ad11fccca989e3eb  gcc/testsuite/rust/compile/macro42.rs
! c9d7472113e506b6a73520ce6287af67  gcc/testsuite/rust/compile/macro43.rs
! a270542d574a49c94c806c3f521d259c  gcc/testsuite/rust/compile/macro44.rs
! 0d4568d3df391c28384dcb6eda25085b  gcc/testsuite/rust/compile/macro45.rs
! 8a9c7aa5f77919dfbd071ece74c1ddad  gcc/testsuite/rust/compile/macro46.rs
! 41407bd52a2f99ff811b674df5d2b718  gcc/testsuite/rust/compile/macro47.rs
! d2bab26b4f2d917ba51ca239028dc234  gcc/testsuite/rust/compile/macro48.rs
! 68cb5cb50b2cf8ad56c8425848abade9  gcc/testsuite/rust/compile/macro49.rs
! cea6b447d14844469e6a66daab2ef606  gcc/testsuite/rust/compile/macro5.rs
! b302559ca62aed1d6bc27155de88c055  gcc/testsuite/rust/compile/macro50.rs
! 9bfa519d74b039a71bf5fe0b4cd8326b  gcc/testsuite/rust/compile/macro51.rs
! 78a5aa89cac023bc785c0adb9f089fd0  gcc/testsuite/rust/compile/macro52.rs
! 898735ef79f68dfc70d4168bba56d096  gcc/testsuite/rust/compile/macro53.rs
! c14be03a4c0ad9d8d9bb574301accefd  gcc/testsuite/rust/compile/macro54.rs
! ca850e23b6b7c81edc9053233d083b47  gcc/testsuite/rust/compile/macro55.rs
! d1cad6e9a95fe096eb686831198c622f  gcc/testsuite/rust/compile/macro56.rs
! ad1d9b6db0e590cab45d2df94e6b4774  gcc/testsuite/rust/compile/macro57.rs
! c44ce1040a8186dadb94075ceb8a9568  gcc/testsuite/rust/compile/macro6.rs
! fd673f9260f234aee491e8d2fcc55acd  gcc/testsuite/rust/compile/macro7.rs
! 06bb53602d66838d4c8109b831eeb7db  gcc/testsuite/rust/compile/macro8.rs
! 5ceb4a75d4b0622e359a0de43f36762b  gcc/testsuite/rust/compile/macro9.rs
! 0e2d475222f18ad870b3b108e20ec203  gcc/testsuite/rust/compile/macro_call_statement.rs
! 0e51610f4552bff322366234a94cbaee  gcc/testsuite/rust/compile/macro_export_1.rs
! a57477ce9d60aea59edc946b7c399d07  gcc/testsuite/rust/compile/macro_return.rs
! fa3e0646a7b030bb430b127da2900675  gcc/testsuite/rust/compile/macro_rules_macro_rules.rs
! a4fd702d54b6ee9ebfb2e6e9ad7d9588  gcc/testsuite/rust/compile/macro_use1.rs
  72c0d2982b1ab36cffb0350603371eca  gcc/testsuite/rust/compile/match1.rs
  1b91ba46251a89048af8618b291df12e  gcc/testsuite/rust/compile/match2.rs
  28e5112c752d27c58ea4a15b7f2e415c  gcc/testsuite/rust/compile/match3.rs
--- 116205,116348 ----
  08a40a4206d2165f0c4c4eda3b3a3cb4  gcc/testsuite/rust/compile/issue-855.rs
  d8268bb6a3b94251463bc663c7139eaa  gcc/testsuite/rust/compile/issue-867.rs
  f8081650b54fddb51d3b34b840dafcdb  gcc/testsuite/rust/compile/issue-925.rs
! 2e72c1342c0a71dfbf6a02336d997fb0  gcc/testsuite/rust/compile/iterators1.rs
  7a8fc72a18680d5e07b71b6281265bf2  gcc/testsuite/rust/compile/lang-impl.rs
! 1d1da8d13d0b65abc363fa272c1bbd7d  gcc/testsuite/rust/compile/let_alt.rs
  83a6908517e92139d7d9cbd6244e4b51  gcc/testsuite/rust/compile/lifetime_name_validation.rs
  9afdcde455c4f144c4385b9d67323cb3  gcc/testsuite/rust/compile/lookup_err1.rs
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp
! 88a6658f178584c62de6eb5f4a61322e  gcc/testsuite/rust/compile/macros/builtin/compile_error.rs
! 5d3c149e12159ffe7e47852c1735ad30  gcc/testsuite/rust/compile/macros/builtin/concat.rs
! 95b0b15f1cea88fa2eeba8987f87265d  gcc/testsuite/rust/compile/macros/builtin/eager1.rs
! c30bc60616f4a130d189218164cd1f21  gcc/testsuite/rust/compile/macros/builtin/eager2.rs
! 85aa7aa536f834f79b2c7a1beb695dfe  gcc/testsuite/rust/compile/macros/builtin/eager3.rs
! f713f2824d9b1ffedf820733d4ef27ad  gcc/testsuite/rust/compile/macros/builtin/env.rs
! 46979484e6732e7372b614744b05e0af  gcc/testsuite/rust/compile/macros/builtin/include1.rs
! 644488698694333c5c3103459d1a1266  gcc/testsuite/rust/compile/macros/builtin/include2.rs
! 3ef9a3198c874bff0f848b00a61a9229  gcc/testsuite/rust/compile/macros/builtin/include3.rs
! a357bdcea60b18654dec181edfe790be  gcc/testsuite/rust/compile/macros/builtin/include4.rs
! 8140a9bec0e3b338f4147646ebb089ab  gcc/testsuite/rust/compile/macros/builtin/include_bytes.rs
! 1bd8413081c143d18d2ab5f7b0a3aae9  gcc/testsuite/rust/compile/macros/builtin/include_bytes_location_info.rs
! 2a3f2156fe415fcfaf34664025425ccd  gcc/testsuite/rust/compile/macros/builtin/include_rs
! ea1e1c638922390661311de387e3e55f  gcc/testsuite/rust/compile/macros/builtin/include_rs2
! 9dae6ee5eba3915efb5e8b664774afdd  gcc/testsuite/rust/compile/macros/builtin/include_str.rs
! 794339400ee1f6736e4f7d9b7729b688  gcc/testsuite/rust/compile/macros/builtin/include_str_location_info.rs
! f78a56479ba7bd2a5ff6949cfe7a2d43  gcc/testsuite/rust/compile/macros/builtin/invalid_utf8
! b3311e2d0b414c3607d49989521d8ca0  gcc/testsuite/rust/compile/macros/builtin/not_found.rs
! 9bded92347ec06fc7e68a76dd000a99d  gcc/testsuite/rust/compile/macros/builtin/option_env1.rs
! 703ac4ca4c9b4d0d667f2da2b681660b  gcc/testsuite/rust/compile/macros/builtin/option_env2.rs
! 6b2e8e5e8dae6280e5d88f4bba34af94  gcc/testsuite/rust/compile/macros/builtin/option_env3.rs
! d1ee37330dbb32aa5f73764744a449b0  gcc/testsuite/rust/compile/macros/builtin/recurse2.rs
! 2c1fa92db46d19b9ccd0a1b1896725df  gcc/testsuite/rust/compile/macros/mbe/macro-delim.rs
! 2799bbd1db374643b2e0ad41120b9a72  gcc/testsuite/rust/compile/macros/mbe/macro-expand-module.rs
! ab010cddb1155cc9e700ce547b463174  gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs
! 5717e4e8d84c82f5af7bff4dc34a3be9  gcc/testsuite/rust/compile/macros/mbe/macro-issue1053.rs
! 1e7ae050ea3d88cb2f91abc4970eee95  gcc/testsuite/rust/compile/macros/mbe/macro-issue1224.rs
! 3717f6b791725345c890efbcdfb6a003  gcc/testsuite/rust/compile/macros/mbe/macro-issue1233.rs
! ebe435ba941202b6f3d66250b76957da  gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs
! 216ccff25a69db7fdb37eeee23f44622  gcc/testsuite/rust/compile/macros/mbe/macro-issue1395.rs
! 8e0ff67d24d92aa094edb9b476e6d022  gcc/testsuite/rust/compile/macros/mbe/macro-issue1400-2.rs
! bb9aa74a9231fe6ce9d0118a41b274db  gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs
! 5bc0014ff55ed0e29eb2dbd0ba79d831  gcc/testsuite/rust/compile/macros/mbe/macro-issue2092.rs
! 9a2e5218082a4e181e17e624931dffec  gcc/testsuite/rust/compile/macros/mbe/macro-issue2192.rs
! e88caa59ad2b57999b485919fb19789f  gcc/testsuite/rust/compile/macros/mbe/macro-issue2194.rs
! e231cc61dbaf0d417fad9624c7978667  gcc/testsuite/rust/compile/macros/mbe/macro-issue2229.rs
! 22191d20ecd62058cb365f1cc3c8ba8e  gcc/testsuite/rust/compile/macros/mbe/macro-issue2264.rs
! df1b8a97ae68cf8e9eac8408a743fa64  gcc/testsuite/rust/compile/macros/mbe/macro-issue2268.rs
! 28d4ec252bf0945ced2a862377c87487  gcc/testsuite/rust/compile/macros/mbe/macro-issue2273.rs
! 0fb684b40daad17a61596f80938a52bc  gcc/testsuite/rust/compile/macros/mbe/macro-issue2653.rs
! 1f99a26291528a2797cc027cd201dd0b  gcc/testsuite/rust/compile/macros/mbe/macro-issue2983_2984.rs
! 5f52281927c41a8a2db3f5f874ff92f3  gcc/testsuite/rust/compile/macros/mbe/macro-issue3693.rs
! 5bf2306290f27dd5f22a6148f4082213  gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs
! 135abba02ca556e90f3518bbc2322024  gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-1.rs
! 28ece352a7318c23761407063f74831c  gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs
! bc850c4ba48b08af8788867050a975a6  gcc/testsuite/rust/compile/macros/mbe/macro1.rs
! ac95e4402432bd69656d1ee0d52210ab  gcc/testsuite/rust/compile/macros/mbe/macro10.rs
! 43306e2bad2235ff677beff538262cbb  gcc/testsuite/rust/compile/macros/mbe/macro11.rs
! d2da748616e3ef6e8fe631fc5484611b  gcc/testsuite/rust/compile/macros/mbe/macro12.rs
! 61b020bf51be5f389b73555f8990c669  gcc/testsuite/rust/compile/macros/mbe/macro13.rs
! 44cd3545b413600a9ce11ec14d928b52  gcc/testsuite/rust/compile/macros/mbe/macro14.rs
! 370c925d3aaf86013436d730818b128c  gcc/testsuite/rust/compile/macros/mbe/macro15.rs
! 23e1ea558d15c047bf9c7bc7ef17fde0  gcc/testsuite/rust/compile/macros/mbe/macro16.rs
! 0661de89079960b97bb1b047273576dc  gcc/testsuite/rust/compile/macros/mbe/macro17.rs
! 5af29d5155e1ad26afae51f6ba61d2c2  gcc/testsuite/rust/compile/macros/mbe/macro18.rs
! 16cbb0c310c9d3506217f27730134a71  gcc/testsuite/rust/compile/macros/mbe/macro19.rs
! 421a4aafc9c800aacad47cea9aee5769  gcc/testsuite/rust/compile/macros/mbe/macro2.rs
! 6db675ad9bb7b164f26fdbca910336f2  gcc/testsuite/rust/compile/macros/mbe/macro20.rs
! acf23d48c5e8907c94fc9ad9512b9f68  gcc/testsuite/rust/compile/macros/mbe/macro21.rs
! 94a6a460c6d078364f4e18d726d45ba7  gcc/testsuite/rust/compile/macros/mbe/macro22.rs
! 319dfedea8a6a7db3236288fa8accdc7  gcc/testsuite/rust/compile/macros/mbe/macro23.rs
! 2e2cfd6ad377b694fe8cb9717e6c4656  gcc/testsuite/rust/compile/macros/mbe/macro25.rs
! 2ebb4a653eb27be8e54475a3951619f1  gcc/testsuite/rust/compile/macros/mbe/macro26.rs
! d79f52ad12a10855d24dcc32089c3e64  gcc/testsuite/rust/compile/macros/mbe/macro27.rs
! 0f9ccae7ee77a387dc82996745302613  gcc/testsuite/rust/compile/macros/mbe/macro28.rs
! 7b08d09218e23d6cdbc2ac47b05dcdba  gcc/testsuite/rust/compile/macros/mbe/macro29.rs
! 123b1e11db692d44dd105aaa54e2d5c5  gcc/testsuite/rust/compile/macros/mbe/macro3.rs
! a04474d7ece12b1df5b48d74ed2ff9c1  gcc/testsuite/rust/compile/macros/mbe/macro30.rs
! 04691c787fc67ff15b07fe5621bbc6e7  gcc/testsuite/rust/compile/macros/mbe/macro31.rs
! 5d33d4ac14eb4de136975f9cfff42def  gcc/testsuite/rust/compile/macros/mbe/macro32.rs
! 7ef893755255482c25c2832cc2ecced9  gcc/testsuite/rust/compile/macros/mbe/macro33.rs
! 51d54ecf4fdf2c12007c4d39cea41fe5  gcc/testsuite/rust/compile/macros/mbe/macro34.rs
! 0a6fffcc17b9c4b184022244bf899990  gcc/testsuite/rust/compile/macros/mbe/macro35.rs
! a4c0145ebf6e0d1270d4b1b7d00fcf6d  gcc/testsuite/rust/compile/macros/mbe/macro36.rs
! d821668aa6dd7bcd7412de828c3800c8  gcc/testsuite/rust/compile/macros/mbe/macro37.rs
! 959c846fb4dcc18dab98e2f73485e3da  gcc/testsuite/rust/compile/macros/mbe/macro38.rs
! ec75483aa3888f5e6a15380b33895a40  gcc/testsuite/rust/compile/macros/mbe/macro39.rs
! 47935881e7414eacc5ee88b55b692cda  gcc/testsuite/rust/compile/macros/mbe/macro4.rs
! 1948e4f81ca6c91d69420cff1f6e72ef  gcc/testsuite/rust/compile/macros/mbe/macro40.rs
! 3b11e1cf2d0e9a7d2ad4f22731a32842  gcc/testsuite/rust/compile/macros/mbe/macro41.rs
! 41a82268280de492ad11fccca989e3eb  gcc/testsuite/rust/compile/macros/mbe/macro42.rs
! 92ae1601ea830fb34d7642fae08c5707  gcc/testsuite/rust/compile/macros/mbe/macro43.rs
! e9910f8de2ae3032c9b77fdc6fa16d0c  gcc/testsuite/rust/compile/macros/mbe/macro44.rs
! 0d4568d3df391c28384dcb6eda25085b  gcc/testsuite/rust/compile/macros/mbe/macro45.rs
! 8a9c7aa5f77919dfbd071ece74c1ddad  gcc/testsuite/rust/compile/macros/mbe/macro46.rs
! 41407bd52a2f99ff811b674df5d2b718  gcc/testsuite/rust/compile/macros/mbe/macro47.rs
! d2bab26b4f2d917ba51ca239028dc234  gcc/testsuite/rust/compile/macros/mbe/macro48.rs
! 68cb5cb50b2cf8ad56c8425848abade9  gcc/testsuite/rust/compile/macros/mbe/macro49.rs
! cea6b447d14844469e6a66daab2ef606  gcc/testsuite/rust/compile/macros/mbe/macro5.rs
! b302559ca62aed1d6bc27155de88c055  gcc/testsuite/rust/compile/macros/mbe/macro50.rs
! 9bfa519d74b039a71bf5fe0b4cd8326b  gcc/testsuite/rust/compile/macros/mbe/macro51.rs
! 78a5aa89cac023bc785c0adb9f089fd0  gcc/testsuite/rust/compile/macros/mbe/macro52.rs
! 898735ef79f68dfc70d4168bba56d096  gcc/testsuite/rust/compile/macros/mbe/macro53.rs
! c14be03a4c0ad9d8d9bb574301accefd  gcc/testsuite/rust/compile/macros/mbe/macro54.rs
! ca850e23b6b7c81edc9053233d083b47  gcc/testsuite/rust/compile/macros/mbe/macro55.rs
! d1cad6e9a95fe096eb686831198c622f  gcc/testsuite/rust/compile/macros/mbe/macro56.rs
! ad1d9b6db0e590cab45d2df94e6b4774  gcc/testsuite/rust/compile/macros/mbe/macro57.rs
! e375367173e252dadfe42d6abd643862  gcc/testsuite/rust/compile/macros/mbe/macro6.rs
! fd673f9260f234aee491e8d2fcc55acd  gcc/testsuite/rust/compile/macros/mbe/macro7.rs
! 06bb53602d66838d4c8109b831eeb7db  gcc/testsuite/rust/compile/macros/mbe/macro8.rs
! 5ceb4a75d4b0622e359a0de43f36762b  gcc/testsuite/rust/compile/macros/mbe/macro9.rs
! 0e2d475222f18ad870b3b108e20ec203  gcc/testsuite/rust/compile/macros/mbe/macro_call_statement.rs
! 0e51610f4552bff322366234a94cbaee  gcc/testsuite/rust/compile/macros/mbe/macro_export_1.rs
! a57477ce9d60aea59edc946b7c399d07  gcc/testsuite/rust/compile/macros/mbe/macro_return.rs
! fa3e0646a7b030bb430b127da2900675  gcc/testsuite/rust/compile/macros/mbe/macro_rules_macro_rules.rs
! a4fd702d54b6ee9ebfb2e6e9ad7d9588  gcc/testsuite/rust/compile/macros/mbe/macro_use1.rs
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp
! f6fd463372ec927d737a6adce056d704  gcc/testsuite/rust/compile/macros/proc/attribute_crate_type.rs
! 680383e3d3dd395778b06b8f6df40202  gcc/testsuite/rust/compile/macros/proc/attribute_non_function.rs
! 6be6ba4392564e325bf2988c9d512b03  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_function.rs
! da41b6bf8d7c739329a64766396dae4f  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_method.rs
! 8792988656ea359dacec203ca78c5a51  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_module.rs
! 529e5237d0b6a834d226f22b986d693a  gcc/testsuite/rust/compile/macros/proc/attribute_private.rs
! c749e1d8aa6bfc949ef97e6aef4b1213  gcc/testsuite/rust/compile/macros/proc/crate_type.rs
! 8ece177f40dec7c7230217be35166808  gcc/testsuite/rust/compile/macros/proc/derive_crate_type.rs
! c6a091067fa6f39fb4fb83684685e02b  gcc/testsuite/rust/compile/macros/proc/derive_malformed.rs
! 2e16f825c9665e5863a83c6c59b9049b  gcc/testsuite/rust/compile/macros/proc/derive_non_function.rs
! 2b2d1621ee972ef8b371152fc8f2ca88  gcc/testsuite/rust/compile/macros/proc/derive_non_root_function.rs
! e98083eb89a842947a4cdd0f0323bcf6  gcc/testsuite/rust/compile/macros/proc/derive_non_root_module.rs
! 60c0d6600c1a9cc6ba9175075ea99b6b  gcc/testsuite/rust/compile/macros/proc/derive_private.rs
! b3e522d7e12f5397c2a39bb3376c50e5  gcc/testsuite/rust/compile/macros/proc/non_function.rs
! 4a13fe8af1aaedb0bf53ae31253d5bcd  gcc/testsuite/rust/compile/macros/proc/non_root_function.rs
! 14c0baad4c7e892fabafceec2e9045e8  gcc/testsuite/rust/compile/macros/proc/non_root_method.rs
! c5bae63cbc837c437488896e81a44674  gcc/testsuite/rust/compile/macros/proc/non_root_module.rs
! 82d95b69a022bed988ac429c922d384a  gcc/testsuite/rust/compile/macros/proc/non_root_trait_method.rs
! ea64ffc41b9add950fc498f76a5a0c36  gcc/testsuite/rust/compile/macros/proc/private.rs
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/compile/macros/proc/proc_macro.exp
! 1f5fa1c45a54f678ab64ca244c1fe6fe  gcc/testsuite/rust/compile/macros/proc/pub_function.rs
! 1dd70ad3ec7121f165133c76244a824e  gcc/testsuite/rust/compile/macros/proc/pub_module.rs
! 56babc1a270c84c7fe8f842795fb05c1  gcc/testsuite/rust/compile/match-never-ltype.rs
! 4c1f3e032cba1a8adcc4e4b4d3a0e352  gcc/testsuite/rust/compile/match-never-rtype.rs
! afef148eac95e4333a352ea481e9a27e  gcc/testsuite/rust/compile/match-struct-path.rs
  72c0d2982b1ab36cffb0350603371eca  gcc/testsuite/rust/compile/match1.rs
  1b91ba46251a89048af8618b291df12e  gcc/testsuite/rust/compile/match2.rs
  28e5112c752d27c58ea4a15b7f2e415c  gcc/testsuite/rust/compile/match3.rs
*************** a4fd702d54b6ee9ebfb2e6e9ad7d9588  gcc/te
*** 108819,108827 ****
  19f321c15c16a894ba8df52499af496c  gcc/testsuite/rust/compile/match5.rs
  fc40a989e45e92ff36307dae69c7feba  gcc/testsuite/rust/compile/match6.rs
  787fdfa2348d255ae6a03213c05501f1  gcc/testsuite/rust/compile/match7.rs
  b30867c131b27bce830a37c41459788b  gcc/testsuite/rust/compile/match_break.rs
  a8880487be46564c8633ddd3863cec15  gcc/testsuite/rust/compile/method1.rs
! c4554c31e215ae41498beabf0c78ad00  gcc/testsuite/rust/compile/method2.rs
  81fa68fc39cbeed3ddda23fc166d2f17  gcc/testsuite/rust/compile/mismatch-crate-name.rs
  cea8fc6391958ad7dfaf3c9c0fae6d86  gcc/testsuite/rust/compile/mismatched-types.rs
  e231e538febe2b589a3f0eaacc8ed989  gcc/testsuite/rust/compile/missing_closing_paren.rs
--- 116350,116362 ----
  19f321c15c16a894ba8df52499af496c  gcc/testsuite/rust/compile/match5.rs
  fc40a989e45e92ff36307dae69c7feba  gcc/testsuite/rust/compile/match6.rs
  787fdfa2348d255ae6a03213c05501f1  gcc/testsuite/rust/compile/match7.rs
+ cf8788dbada900b86befbe54b159c077  gcc/testsuite/rust/compile/match8.rs
+ 5cedfd6ed25cfd7cf02e134846b30d47  gcc/testsuite/rust/compile/match9.rs
  b30867c131b27bce830a37c41459788b  gcc/testsuite/rust/compile/match_break.rs
+ 7d4c7e4767a351c3039ac6d7255452d8  gcc/testsuite/rust/compile/may_dangle.rs
  a8880487be46564c8633ddd3863cec15  gcc/testsuite/rust/compile/method1.rs
! 666db39f8c8467f03f866b4d2b574494  gcc/testsuite/rust/compile/method2.rs
! c5a1c5d82cd1e0edf6172efc6a4a567f  gcc/testsuite/rust/compile/min_specialization1.rs
  81fa68fc39cbeed3ddda23fc166d2f17  gcc/testsuite/rust/compile/mismatch-crate-name.rs
  cea8fc6391958ad7dfaf3c9c0fae6d86  gcc/testsuite/rust/compile/mismatched-types.rs
  e231e538febe2b589a3f0eaacc8ed989  gcc/testsuite/rust/compile/missing_closing_paren.rs
*************** cd05644ed63556d4b86d76594e45c19b  gcc/te
*** 108835,108848 ****
  e423cd71d83e2ff468da6055234aac58  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/outer_path.rs
  e7e40a55fdf47f28c89ad061c6470378  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/sub/mod.rs
  8d7d946e590c2876825aeb5b33acbe76  gcc/testsuite/rust/compile/multi_reference_type.rs
  86baf58f59b1e87021a6756b12b0146c  gcc/testsuite/rust/compile/multiple_bindings1.rs
  f31b2774759388ed35dc4269f901b27b  gcc/testsuite/rust/compile/multiple_bindings2.rs
  5347e97f6abe755953017f56901ed5cd  gcc/testsuite/rust/compile/name_resolution1.rs
  b8f825ac42c7e54fea373f78bd007073  gcc/testsuite/rust/compile/name_resolution10.rs
  d197c6d0845a807c88d2377ae9e39bfa  gcc/testsuite/rust/compile/name_resolution11.rs
  7db500b7b9b00b506cdd69f1ffcd5740  gcc/testsuite/rust/compile/name_resolution12.rs
! cec7440c36d14db8fd0f6e229c6fd84a  gcc/testsuite/rust/compile/name_resolution13.rs
  08857bb42431e383df7b82428816b19a  gcc/testsuite/rust/compile/name_resolution2.rs
  4451e4aed7aa23af2e35ef923e109c43  gcc/testsuite/rust/compile/name_resolution3.rs
  4b74edfb7c386573ae3d930b56a7058f  gcc/testsuite/rust/compile/name_resolution4.rs
  a28faf8494eeae9637209b6141cf803a  gcc/testsuite/rust/compile/name_resolution5.rs
--- 116370,116396 ----
  e423cd71d83e2ff468da6055234aac58  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/outer_path.rs
  e7e40a55fdf47f28c89ad061c6470378  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/sub/mod.rs
  8d7d946e590c2876825aeb5b33acbe76  gcc/testsuite/rust/compile/multi_reference_type.rs
+ 72e34ff54157685843c81b89ae3be12b  gcc/testsuite/rust/compile/multiline-string.rs
  86baf58f59b1e87021a6756b12b0146c  gcc/testsuite/rust/compile/multiple_bindings1.rs
  f31b2774759388ed35dc4269f901b27b  gcc/testsuite/rust/compile/multiple_bindings2.rs
+ 545146ab7461b26f54326e81d45da595  gcc/testsuite/rust/compile/mutability_checks1.rs
  5347e97f6abe755953017f56901ed5cd  gcc/testsuite/rust/compile/name_resolution1.rs
  b8f825ac42c7e54fea373f78bd007073  gcc/testsuite/rust/compile/name_resolution10.rs
  d197c6d0845a807c88d2377ae9e39bfa  gcc/testsuite/rust/compile/name_resolution11.rs
  7db500b7b9b00b506cdd69f1ffcd5740  gcc/testsuite/rust/compile/name_resolution12.rs
! 0fbdea51d41b917f2bd3d1d4c9424e33  gcc/testsuite/rust/compile/name_resolution13.rs
! 3077820f18cc13c5b10211f95d1d677c  gcc/testsuite/rust/compile/name_resolution14.rs
! 5bf56282369abcf952ae77c7b14a4a41  gcc/testsuite/rust/compile/name_resolution15.rs
! cec72c889db8044e885ce5634aa79453  gcc/testsuite/rust/compile/name_resolution16.rs
! c8d3763d1d1f89b68ac07d32cf792c33  gcc/testsuite/rust/compile/name_resolution17.rs
! 36463e537ef5b199b087c5260a8c05a4  gcc/testsuite/rust/compile/name_resolution18.rs
! 70d45e5882b11c1911384ffceb9b85aa  gcc/testsuite/rust/compile/name_resolution19.rs
  08857bb42431e383df7b82428816b19a  gcc/testsuite/rust/compile/name_resolution2.rs
+ 3ee4c5af70e7fae93e50118ca5681e5c  gcc/testsuite/rust/compile/name_resolution20.rs
+ f1b2b71c114e252b5f9e0262d030701c  gcc/testsuite/rust/compile/name_resolution22.rs
+ 2cfd1ef9281ea198efe4ddcb939f247a  gcc/testsuite/rust/compile/name_resolution23.rs
+ f8f7b3a594b9b35227c277a279b213e3  gcc/testsuite/rust/compile/name_resolution24.rs
+ bef2809f3fa6391fef5421613e66bfe1  gcc/testsuite/rust/compile/name_resolution25.rs
  4451e4aed7aa23af2e35ef923e109c43  gcc/testsuite/rust/compile/name_resolution3.rs
  4b74edfb7c386573ae3d930b56a7058f  gcc/testsuite/rust/compile/name_resolution4.rs
  a28faf8494eeae9637209b6141cf803a  gcc/testsuite/rust/compile/name_resolution5.rs
*************** bc40419d4e6c370ac53314f49208b4dc  gcc/te
*** 108850,108865 ****
  702d1b326baea9ee4f2d0c7cd2304fd4  gcc/testsuite/rust/compile/name_resolution7.rs
  4556c16d8845a57bf94d639395f64284  gcc/testsuite/rust/compile/name_resolution8.rs
  aa468dd68aad388b0ddf749bd7d2a12b  gcc/testsuite/rust/compile/name_resolution9.rs
  a2a2d0395b94225c5109187761c0e213  gcc/testsuite/rust/compile/nested_generic.rs
  25ca4de3f40354d73966cfdb692dfeee  gcc/testsuite/rust/compile/nested_macro_definition.rs
  5cbc00140bae9d06617f7e444baaf508  gcc/testsuite/rust/compile/nested_macro_use1.rs
! 9cbbbc66b7212edf548d93f340d97e0e  gcc/testsuite/rust/compile/nested_macro_use2.rs
  3b2626cfdc7db1273eb3ace63fc4ebf3  gcc/testsuite/rust/compile/nested_macro_use3.rs
  0e29d0825fda239bc7af83c9fccfaf89  gcc/testsuite/rust/compile/never_type1.rs
  19dbaffedde4ba3825d87ab394b19d20  gcc/testsuite/rust/compile/non_foreign_variadic_function.rs
  3639ca46ce436f80bb407f584c24a65e  gcc/testsuite/rust/compile/non_member_const.rs
  cd02e5ae651b681a19fcaf8376afcbf5  gcc/testsuite/rust/compile/not_a_float_literal_tuple_index.rs
  295d3f361dc7ebc9f93d3f2553623849  gcc/testsuite/rust/compile/not_find_value_in_scope.rs
  6030c60f7b74c803068d451cb9ced7e5  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs
  090d2f2bf747a624502f3ee033467544  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs
  938014f84c9261ed6b113bc617d40919  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs
--- 116398,116419 ----
  702d1b326baea9ee4f2d0c7cd2304fd4  gcc/testsuite/rust/compile/name_resolution7.rs
  4556c16d8845a57bf94d639395f64284  gcc/testsuite/rust/compile/name_resolution8.rs
  aa468dd68aad388b0ddf749bd7d2a12b  gcc/testsuite/rust/compile/name_resolution9.rs
+ 819e3c226231807099efa2f38b27eff3  gcc/testsuite/rust/compile/negative_impls.rs
+ fda9dc3567123e4f04a16ea5f5b364bf  gcc/testsuite/rust/compile/negative_impls_2.rs
  a2a2d0395b94225c5109187761c0e213  gcc/testsuite/rust/compile/nested_generic.rs
  25ca4de3f40354d73966cfdb692dfeee  gcc/testsuite/rust/compile/nested_macro_definition.rs
  5cbc00140bae9d06617f7e444baaf508  gcc/testsuite/rust/compile/nested_macro_use1.rs
! da671ca390cc71e31d1a13e83175ed07  gcc/testsuite/rust/compile/nested_macro_use2.rs
  3b2626cfdc7db1273eb3ace63fc4ebf3  gcc/testsuite/rust/compile/nested_macro_use3.rs
  0e29d0825fda239bc7af83c9fccfaf89  gcc/testsuite/rust/compile/never_type1.rs
  19dbaffedde4ba3825d87ab394b19d20  gcc/testsuite/rust/compile/non_foreign_variadic_function.rs
  3639ca46ce436f80bb407f584c24a65e  gcc/testsuite/rust/compile/non_member_const.rs
+ 03cd44e589fbcd7da28844dcf44db323  gcc/testsuite/rust/compile/nonexistent-field.rs
  cd02e5ae651b681a19fcaf8376afcbf5  gcc/testsuite/rust/compile/not_a_float_literal_tuple_index.rs
  295d3f361dc7ebc9f93d3f2553623849  gcc/testsuite/rust/compile/not_find_value_in_scope.rs
+ 44807d1ba47e379ce9115ce45743697e  gcc/testsuite/rust/compile/not_raw_ref_op.rs
+ f32b9456d62604cbc47c1dceac8dbea4  gcc/testsuite/rust/compile/nr2/compile.exp
+ 45356d5f40cc0bf1201d9172ef149f26  gcc/testsuite/rust/compile/nr2/exclude
  6030c60f7b74c803068d451cb9ced7e5  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs
  090d2f2bf747a624502f3ee033467544  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs
  938014f84c9261ed6b113bc617d40919  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs
*************** fa1b080c05380ac0134d408be302d780  gcc/te
*** 108876,108883 ****
  1278a63dcebf6ac473bf094b98ea0db2  gcc/testsuite/rust/compile/parse_variadic_function.rs
  334e926cb04db5e55dd49c65ded14065  gcc/testsuite/rust/compile/path_as_generic_arg.rs
  047765489bd97f90336445add2055145  gcc/testsuite/rust/compile/pattern-or.rs
! f8f546129e119d41d1ac7b7b8e997bca  gcc/testsuite/rust/compile/pattern-struct.rs
  423d1017eea48611d7e71642d906a3d6  gcc/testsuite/rust/compile/pattern_variadic.rs
  daea204ee4a93b0de9f17381a08f8137  gcc/testsuite/rust/compile/privacy1.rs
  4da8baa4cd281d900c7d76ef49e2094f  gcc/testsuite/rust/compile/privacy2.rs
  eba63e34bf4a3d4997147475917fcb15  gcc/testsuite/rust/compile/privacy3.rs
--- 116430,116438 ----
  1278a63dcebf6ac473bf094b98ea0db2  gcc/testsuite/rust/compile/parse_variadic_function.rs
  334e926cb04db5e55dd49c65ded14065  gcc/testsuite/rust/compile/path_as_generic_arg.rs
  047765489bd97f90336445add2055145  gcc/testsuite/rust/compile/pattern-or.rs
! d79a8f788f3a9207ed678cbc58ca5c82  gcc/testsuite/rust/compile/pattern-struct.rs
  423d1017eea48611d7e71642d906a3d6  gcc/testsuite/rust/compile/pattern_variadic.rs
+ 42996b9a980ff76ec1eada1676d8da78  gcc/testsuite/rust/compile/prelude_import.rs
  daea204ee4a93b0de9f17381a08f8137  gcc/testsuite/rust/compile/privacy1.rs
  4da8baa4cd281d900c7d76ef49e2094f  gcc/testsuite/rust/compile/privacy2.rs
  eba63e34bf4a3d4997147475917fcb15  gcc/testsuite/rust/compile/privacy3.rs
*************** d70eb64b7474083aaf938052cf551ce2  gcc/te
*** 108887,108942 ****
  b1b0e52c874721c0a325366a7bc0642e  gcc/testsuite/rust/compile/privacy7.rs
  9b7219e724eac9e35cd9d2fd18e153ba  gcc/testsuite/rust/compile/privacy8.rs
  f6b2d1b1b35b33dcdddd3bb19e17981a  gcc/testsuite/rust/compile/privacy9.rs
! f6fd463372ec927d737a6adce056d704  gcc/testsuite/rust/compile/proc_macro_attribute_crate_type.rs
! 680383e3d3dd395778b06b8f6df40202  gcc/testsuite/rust/compile/proc_macro_attribute_non_function.rs
! 6be6ba4392564e325bf2988c9d512b03  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_function.rs
! da41b6bf8d7c739329a64766396dae4f  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_method.rs
! 8792988656ea359dacec203ca78c5a51  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_module.rs
! 529e5237d0b6a834d226f22b986d693a  gcc/testsuite/rust/compile/proc_macro_attribute_private.rs
! c749e1d8aa6bfc949ef97e6aef4b1213  gcc/testsuite/rust/compile/proc_macro_crate_type.rs
! 8ece177f40dec7c7230217be35166808  gcc/testsuite/rust/compile/proc_macro_derive_crate_type.rs
! c6a091067fa6f39fb4fb83684685e02b  gcc/testsuite/rust/compile/proc_macro_derive_malformed.rs
! 2e16f825c9665e5863a83c6c59b9049b  gcc/testsuite/rust/compile/proc_macro_derive_non_function.rs
! 2b2d1621ee972ef8b371152fc8f2ca88  gcc/testsuite/rust/compile/proc_macro_derive_non_root_function.rs
! 82d95b69a022bed988ac429c922d384a  gcc/testsuite/rust/compile/proc_macro_derive_non_root_method.rs
! e98083eb89a842947a4cdd0f0323bcf6  gcc/testsuite/rust/compile/proc_macro_derive_non_root_module.rs
! 60c0d6600c1a9cc6ba9175075ea99b6b  gcc/testsuite/rust/compile/proc_macro_derive_private.rs
! b3e522d7e12f5397c2a39bb3376c50e5  gcc/testsuite/rust/compile/proc_macro_non_function.rs
! 4a13fe8af1aaedb0bf53ae31253d5bcd  gcc/testsuite/rust/compile/proc_macro_non_root_function.rs
! 14c0baad4c7e892fabafceec2e9045e8  gcc/testsuite/rust/compile/proc_macro_non_root_method.rs
! c5bae63cbc837c437488896e81a44674  gcc/testsuite/rust/compile/proc_macro_non_root_module.rs
! ea64ffc41b9add950fc498f76a5a0c36  gcc/testsuite/rust/compile/proc_macro_private.rs
! 1f5fa1c45a54f678ab64ca244c1fe6fe  gcc/testsuite/rust/compile/proc_macro_pub_function.rs
! 1dd70ad3ec7121f165133c76244a824e  gcc/testsuite/rust/compile/proc_macro_pub_module.rs
  90a3931a025c23dc07fbc9e12bc26144  gcc/testsuite/rust/compile/pub_restricted_1.rs
  d741a0191dd04a79a7edaaf116ec4f12  gcc/testsuite/rust/compile/pub_restricted_2.rs
  6bd1b5dbdfe5f30de51ab30015c5be78  gcc/testsuite/rust/compile/pub_restricted_3.rs
  8556679d5fb3f07093c6b5c029196057  gcc/testsuite/rust/compile/range_from_expr_for_loop.rs
  2489fea6f272449ac3fb59684962b103  gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs
  b9d738cbe9432ef9912a084d6d0017b5  gcc/testsuite/rust/compile/raw_identifiers_underscore.rs
  18866bec0bccb2a4700637c28efbeaac  gcc/testsuite/rust/compile/rawbytestring.rs
! 5cb06528ebf797118c9a80af781285aa  gcc/testsuite/rust/compile/redef_error1.rs
! 083bc9ffe9a05b8ba4f9021ebd33fc80  gcc/testsuite/rust/compile/redef_error2.rs
! c08fe45d712fc35c9b06015771288ba8  gcc/testsuite/rust/compile/redef_error3.rs
! 6fa963f7ee87e8cee969977bdc7c2a43  gcc/testsuite/rust/compile/redef_error4.rs
! f02be21ac7383cdc26c4db0eeaa6c44d  gcc/testsuite/rust/compile/redef_error5.rs
! bf3d52300c172b82f789437779b34217  gcc/testsuite/rust/compile/redef_error6.rs
  e777fc9630d68ddc2900c3d74fc2318f  gcc/testsuite/rust/compile/ref_pattern_fn_param1.rs
  c864259519a663ecdb9ce794228363de  gcc/testsuite/rust/compile/ref_pattern_fn_param2.rs
! 08b2ec32df097b8615e76077b1bb5ad5  gcc/testsuite/rust/compile/reference1.rs
  45f5ebc9d59101ae861f3e6dca046125  gcc/testsuite/rust/compile/repeated_constructor_fields.rs
  30f8fce22ebd2b045d3c572d987e757b  gcc/testsuite/rust/compile/rust-const-blog-issue.rs
  515b61b093475669e79cf8953fd51193  gcc/testsuite/rust/compile/rust_abi.rs
  2cb7dfbccc813bbbcd257a0425122660  gcc/testsuite/rust/compile/rustc_attr1.rs
! 370d1079fd26673c14c282e6ccf629a1  gcc/testsuite/rust/compile/rustc_const_stable.rs
  2ef2e5399d947093c2b82f36e833a5bd  gcc/testsuite/rust/compile/self-path1.rs
! 6dc3e1864ac0a6b51f4de1104a924147  gcc/testsuite/rust/compile/self-path2.rs
  ce60d6c14138123e0c27ee626b14c1b2  gcc/testsuite/rust/compile/self_const_ptr.rs
  345a25d5121fd2dbda8b949098005f58  gcc/testsuite/rust/compile/self_mut_ptr.rs
  08fba70febee1d69b9e95726a05aaed4  gcc/testsuite/rust/compile/self_ptr.rs
! d9263995a2f3f15bd4abdea500a90f8b  gcc/testsuite/rust/compile/shadow1.rs
  26a750cf312f91f5f35658b8da415d03  gcc/testsuite/rust/compile/sized-stub.rs
! 596f0aa63c039c058541e054d1b37f7d  gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs
  cc55ba48071b2e36726a272bec14ac7e  gcc/testsuite/rust/compile/slice_rest_pattern.rs
  c76cd68ebcf9bb89b67b55d54a10cee5  gcc/testsuite/rust/compile/specify-crate-name.rs
  f0310c328b1fddc85d5bebedce0cf769  gcc/testsuite/rust/compile/static_var1.rs
--- 116442,116484 ----
  b1b0e52c874721c0a325366a7bc0642e  gcc/testsuite/rust/compile/privacy7.rs
  9b7219e724eac9e35cd9d2fd18e153ba  gcc/testsuite/rust/compile/privacy8.rs
  f6b2d1b1b35b33dcdddd3bb19e17981a  gcc/testsuite/rust/compile/privacy9.rs
! d69b6343a6c7750c2337a30c294c90df  gcc/testsuite/rust/compile/ptr_int_cast.rs
  90a3931a025c23dc07fbc9e12bc26144  gcc/testsuite/rust/compile/pub_restricted_1.rs
  d741a0191dd04a79a7edaaf116ec4f12  gcc/testsuite/rust/compile/pub_restricted_2.rs
  6bd1b5dbdfe5f30de51ab30015c5be78  gcc/testsuite/rust/compile/pub_restricted_3.rs
  8556679d5fb3f07093c6b5c029196057  gcc/testsuite/rust/compile/range_from_expr_for_loop.rs
+ b60dce123d1d0e89fd2184843fe60b35  gcc/testsuite/rust/compile/raw-byte-string-loc.rs
+ 5c2391c3bb0530eac8ee26b714c56bca  gcc/testsuite/rust/compile/raw-string-loc.rs
  2489fea6f272449ac3fb59684962b103  gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs
  b9d738cbe9432ef9912a084d6d0017b5  gcc/testsuite/rust/compile/raw_identifiers_underscore.rs
+ 6dc7c38304f2a19efd74f806c61bc355  gcc/testsuite/rust/compile/raw_ref_op.rs
+ 47c863d37f17d57952d342e1009884ed  gcc/testsuite/rust/compile/raw_ref_op_feature_gate.rs
+ 358abaf1a56f42cfb3478c8e7e1d4cf0  gcc/testsuite/rust/compile/raw_ref_op_invalid.rs
  18866bec0bccb2a4700637c28efbeaac  gcc/testsuite/rust/compile/rawbytestring.rs
! 96a985111dc0b6fa6e5da165c62e4fce  gcc/testsuite/rust/compile/redef_error1.rs
! 7899f4f909787582c9830959bfad03aa  gcc/testsuite/rust/compile/redef_error2.rs
! e089bb98184ba9adc0034ee6a63f5608  gcc/testsuite/rust/compile/redef_error3.rs
! 049ed63026624cc99753cd92390ab6bd  gcc/testsuite/rust/compile/redef_error4.rs
! d5691828b526a3c26648a9f4a2ca65cc  gcc/testsuite/rust/compile/redef_error5.rs
! a2b256701e3bbefd0fd9e84cd5f19288  gcc/testsuite/rust/compile/redef_error6.rs
  e777fc9630d68ddc2900c3d74fc2318f  gcc/testsuite/rust/compile/ref_pattern_fn_param1.rs
  c864259519a663ecdb9ce794228363de  gcc/testsuite/rust/compile/ref_pattern_fn_param2.rs
! 0853bd33e41a069ac779f1031cabcab3  gcc/testsuite/rust/compile/reference1.rs
  45f5ebc9d59101ae861f3e6dca046125  gcc/testsuite/rust/compile/repeated_constructor_fields.rs
  30f8fce22ebd2b045d3c572d987e757b  gcc/testsuite/rust/compile/rust-const-blog-issue.rs
  515b61b093475669e79cf8953fd51193  gcc/testsuite/rust/compile/rust_abi.rs
  2cb7dfbccc813bbbcd257a0425122660  gcc/testsuite/rust/compile/rustc_attr1.rs
! 3acc29ade7325a48cac2cf1759440f1b  gcc/testsuite/rust/compile/rustc_const_stable.rs
! 116db942d7d2214d6873939def9410fc  gcc/testsuite/rust/compile/rustc_const_unstable.rs
  2ef2e5399d947093c2b82f36e833a5bd  gcc/testsuite/rust/compile/self-path1.rs
! dcf33288d8888fc10c08d5be64ebabc2  gcc/testsuite/rust/compile/self-path2.rs
  ce60d6c14138123e0c27ee626b14c1b2  gcc/testsuite/rust/compile/self_const_ptr.rs
+ e09a5e854adf0225a4550c8310a41ec5  gcc/testsuite/rust/compile/self_import_namespace.rs
  345a25d5121fd2dbda8b949098005f58  gcc/testsuite/rust/compile/self_mut_ptr.rs
  08fba70febee1d69b9e95726a05aaed4  gcc/testsuite/rust/compile/self_ptr.rs
! 2aefabea5e9340b0dc31cfb0816e5d24  gcc/testsuite/rust/compile/shadow1.rs
  26a750cf312f91f5f35658b8da415d03  gcc/testsuite/rust/compile/sized-stub.rs
! b9677fdb68fdeadc3f105590b7fe34c9  gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs
  cc55ba48071b2e36726a272bec14ac7e  gcc/testsuite/rust/compile/slice_rest_pattern.rs
  c76cd68ebcf9bb89b67b55d54a10cee5  gcc/testsuite/rust/compile/specify-crate-name.rs
  f0310c328b1fddc85d5bebedce0cf769  gcc/testsuite/rust/compile/static_var1.rs
*************** cb2ba2189235c85921385195ef70db47  gcc/te
*** 108946,108954 ****
--- 116488,116498 ----
  0638f6f2fdd60dec37f5d96bc57237bd  gcc/testsuite/rust/compile/struct-expr-parse.rs
  2bc6179d03b3e34e3ad83b5e4773cf8b  gcc/testsuite/rust/compile/struct_align1.rs
  9b4573b2cb3d14c981aa2a9b5ae8f5f1  gcc/testsuite/rust/compile/struct_align2.rs
+ aad9e5362beb5b73a16d9c72d51f55fe  gcc/testsuite/rust/compile/struct_expr_field_attributes.rs
  0089260781c87386353e1d68593622fd  gcc/testsuite/rust/compile/struct_init1.rs
  00e347708a104c565e0d029fd61f7e9d  gcc/testsuite/rust/compile/struct_pack1.rs
  c2a21c19762e48d9fe8a2144950b1b4f  gcc/testsuite/rust/compile/struct_pack2.rs
+ 52fdac0499cadcbaff603b7c0e77114d  gcc/testsuite/rust/compile/structural-eq-peq.rs
  b367b9437770c67d8d9059972bc1a3e8  gcc/testsuite/rust/compile/syntax-only.rs
  156d3a4eb60d669211c1c31f6828f576  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks.rs
  fdf890b2027e28e726e5201eddef6b4f  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks_crlf.rs
*************** becfe673b19d48d9d128de9bc9a949f9  gcc/te
*** 108985,108991 ****
  cbdcc1458dd3b905587a473cc7f110e1  gcc/testsuite/rust/compile/torture/borrow1.rs
  48041d4df15544e16464dcba206f2a92  gcc/testsuite/rust/compile/torture/borrow_function.rs
  ebf53f0ebfc6c6854e60f5b3b4326516  gcc/testsuite/rust/compile/torture/break_function.rs
! 4be61dfeccf1b2e7721cf71ca3db0938  gcc/testsuite/rust/compile/torture/builtin_abort.rs
  2b56ba354fbb2cc244d974d266e2983b  gcc/testsuite/rust/compile/torture/byte_char_str.rs
  0005d13ab30058ae7007910b10f9a902  gcc/testsuite/rust/compile/torture/byte_str.rs
  ae3d551190c1a96fcc88e43e12f59035  gcc/testsuite/rust/compile/torture/cast1.rs
--- 116529,116535 ----
  cbdcc1458dd3b905587a473cc7f110e1  gcc/testsuite/rust/compile/torture/borrow1.rs
  48041d4df15544e16464dcba206f2a92  gcc/testsuite/rust/compile/torture/borrow_function.rs
  ebf53f0ebfc6c6854e60f5b3b4326516  gcc/testsuite/rust/compile/torture/break_function.rs
! 2342d1c3c11283e24a3ae7aa1ca5dd52  gcc/testsuite/rust/compile/torture/builtin_abort.rs
  2b56ba354fbb2cc244d974d266e2983b  gcc/testsuite/rust/compile/torture/byte_char_str.rs
  0005d13ab30058ae7007910b10f9a902  gcc/testsuite/rust/compile/torture/byte_str.rs
  ae3d551190c1a96fcc88e43e12f59035  gcc/testsuite/rust/compile/torture/cast1.rs
*************** a6c52e49acead3e0c70ad1d2fb7b2c56  gcc/te
*** 108997,109003 ****
  335ffa18cefc80ab0dd0187d81d5ae0c  gcc/testsuite/rust/compile/torture/coercion1.rs
  f8f937f1acf2745e64c20616c3515f69  gcc/testsuite/rust/compile/torture/coercion2.rs
  44a820ec9fc1f76d7d84a0377b42d82b  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! a4b5dbeb62ed58333dda2c1483254606  gcc/testsuite/rust/compile/torture/compile.exp
  e2853f6adb4ff42b52de7bd5386a1b19  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  f22e92cee5cea1b44f8b9966a8027a12  gcc/testsuite/rust/compile/torture/conditional.rs
  d78b6a0262085ca308a5a6b3653a3247  gcc/testsuite/rust/compile/torture/constant1.rs
--- 116541,116547 ----
  335ffa18cefc80ab0dd0187d81d5ae0c  gcc/testsuite/rust/compile/torture/coercion1.rs
  f8f937f1acf2745e64c20616c3515f69  gcc/testsuite/rust/compile/torture/coercion2.rs
  44a820ec9fc1f76d7d84a0377b42d82b  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! fd817fb49e8681325fd97b2fafd31a1d  gcc/testsuite/rust/compile/torture/compile.exp
  e2853f6adb4ff42b52de7bd5386a1b19  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  f22e92cee5cea1b44f8b9966a8027a12  gcc/testsuite/rust/compile/torture/conditional.rs
  d78b6a0262085ca308a5a6b3653a3247  gcc/testsuite/rust/compile/torture/constant1.rs
*************** e993964b19f3868f0e783d56b28cb59c  gcc/te
*** 109060,109066 ****
  6fde910669228d528dbac1a7729f62d0  gcc/testsuite/rust/compile/torture/generics9.rs
  395a45c2c8dc61003c5bf77fbf78f5b1  gcc/testsuite/rust/compile/torture/grouped_expr_function.rs
  a1cb1c1a5db93b8b6b3577994b51c587  gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
! 39138a8494b7da114c4f1a8cb2f7d120  gcc/testsuite/rust/compile/torture/if.rs
  79a1b73fa046294586bc0a47b730211e  gcc/testsuite/rust/compile/torture/if_elif.rs
  e419012e6cd9fb814f13b07d15eb893d  gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs
  ebe54baa12f0aa3ea41b6ea7d6a9d428  gcc/testsuite/rust/compile/torture/if_else.rs
--- 116604,116610 ----
  6fde910669228d528dbac1a7729f62d0  gcc/testsuite/rust/compile/torture/generics9.rs
  395a45c2c8dc61003c5bf77fbf78f5b1  gcc/testsuite/rust/compile/torture/grouped_expr_function.rs
  a1cb1c1a5db93b8b6b3577994b51c587  gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
! 5d24a6ca2068f590853e671c30a9a97a  gcc/testsuite/rust/compile/torture/if.rs
  79a1b73fa046294586bc0a47b730211e  gcc/testsuite/rust/compile/torture/if_elif.rs
  e419012e6cd9fb814f13b07d15eb893d  gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs
  ebe54baa12f0aa3ea41b6ea7d6a9d428  gcc/testsuite/rust/compile/torture/if_else.rs
*************** dcb1a07fb0aba84c09789af4ce07af3f  gcc/te
*** 109084,109090 ****
  d9650e65226dfeb372e6d4c9e5262d66  gcc/testsuite/rust/compile/torture/intrinsics-5.rs
  f6c0e0c090c3c182d08265ee7514eea2  gcc/testsuite/rust/compile/torture/intrinsics-6.rs
  aa00d0660f6c7d36a9fb78122bb52732  gcc/testsuite/rust/compile/torture/intrinsics-7.rs
! 8747671d603eb797edcc36f63ed07c1b  gcc/testsuite/rust/compile/torture/intrinsics-8.rs
  490c78de2d79ba3cb434f2c9f9874c72  gcc/testsuite/rust/compile/torture/intrinsics-math.rs
  a4adc24cf95b12fa0bbeb1910a8fc8c9  gcc/testsuite/rust/compile/torture/isolated_cr_block_comment.rs
  f34eef566cf0283bb6dca5cc9b79de49  gcc/testsuite/rust/compile/torture/isolated_cr_line_comment.rs
--- 116628,116634 ----
  d9650e65226dfeb372e6d4c9e5262d66  gcc/testsuite/rust/compile/torture/intrinsics-5.rs
  f6c0e0c090c3c182d08265ee7514eea2  gcc/testsuite/rust/compile/torture/intrinsics-6.rs
  aa00d0660f6c7d36a9fb78122bb52732  gcc/testsuite/rust/compile/torture/intrinsics-7.rs
! c0398526150e8c033546f8ae8db51b54  gcc/testsuite/rust/compile/torture/intrinsics-8.rs
  490c78de2d79ba3cb434f2c9f9874c72  gcc/testsuite/rust/compile/torture/intrinsics-math.rs
  a4adc24cf95b12fa0bbeb1910a8fc8c9  gcc/testsuite/rust/compile/torture/isolated_cr_block_comment.rs
  f34eef566cf0283bb6dca5cc9b79de49  gcc/testsuite/rust/compile/torture/isolated_cr_line_comment.rs
*************** c17e5e7936f9df88e607fa6b4b726d9d  gcc/te
*** 109190,109197 ****
  1891c06965274b07cc26630bf8c29c7a  gcc/testsuite/rust/compile/torture/traits7.rs
  78bf33f383e889d5d7cb76a7e423cff8  gcc/testsuite/rust/compile/torture/traits8.rs
  717619eb6814a0bc1eab099a41d59e05  gcc/testsuite/rust/compile/torture/traits9.rs
! 4a79f965f91009f9e310a309df4bb923  gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
! e12fe466c829bfbacb8c98485d366ddc  gcc/testsuite/rust/compile/torture/transmute1.rs
  856ba6b52cb97f89365a34dc844b2383  gcc/testsuite/rust/compile/torture/tuple1.rs
  a32be8ab02d584ff702a43f23ad95934  gcc/testsuite/rust/compile/torture/tuple2.rs
  d4d906776cca4aae5ee85d930cf4ef1c  gcc/testsuite/rust/compile/torture/tuple3.rs
--- 116734,116741 ----
  1891c06965274b07cc26630bf8c29c7a  gcc/testsuite/rust/compile/torture/traits7.rs
  78bf33f383e889d5d7cb76a7e423cff8  gcc/testsuite/rust/compile/torture/traits8.rs
  717619eb6814a0bc1eab099a41d59e05  gcc/testsuite/rust/compile/torture/traits9.rs
! 5cd369727475a28a479f3aaa8eb8006c  gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
! 5ebf10c1565cfe67020a23d059c7fffc  gcc/testsuite/rust/compile/torture/transmute1.rs
  856ba6b52cb97f89365a34dc844b2383  gcc/testsuite/rust/compile/torture/tuple1.rs
  a32be8ab02d584ff702a43f23ad95934  gcc/testsuite/rust/compile/torture/tuple2.rs
  d4d906776cca4aae5ee85d930cf4ef1c  gcc/testsuite/rust/compile/torture/tuple3.rs
*************** ec86251919e467ab5186531cd6a92662  gcc/te
*** 109215,109221 ****
  a7106ab3e5a08e2b58b4f3d59f6c16bb  gcc/testsuite/rust/compile/torture/undended-string-1.rs
  b681f040c3d1e80af3f41d1b267db483  gcc/testsuite/rust/compile/torture/undended-string-2.rs
  7496356346ddb12a707c608a7ca122d5  gcc/testsuite/rust/compile/torture/underscore_id.rs
! 4fcba84a87b370df95361346e3b8dd38  gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs
  97a2905e8fd8b85c8fe64e4b83babb3e  gcc/testsuite/rust/compile/torture/union.rs
  103a196af16a2550139988edb7794ae8  gcc/testsuite/rust/compile/torture/union_union.rs
  22f979b621b23664c1a0c4a7920e6738  gcc/testsuite/rust/compile/torture/unit_type1.rs
--- 116759,116765 ----
  a7106ab3e5a08e2b58b4f3d59f6c16bb  gcc/testsuite/rust/compile/torture/undended-string-1.rs
  b681f040c3d1e80af3f41d1b267db483  gcc/testsuite/rust/compile/torture/undended-string-2.rs
  7496356346ddb12a707c608a7ca122d5  gcc/testsuite/rust/compile/torture/underscore_id.rs
! 1cfc5ea87d2735462d0268a4484cd5ad  gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs
  97a2905e8fd8b85c8fe64e4b83babb3e  gcc/testsuite/rust/compile/torture/union.rs
  103a196af16a2550139988edb7794ae8  gcc/testsuite/rust/compile/torture/union_union.rs
  22f979b621b23664c1a0c4a7920e6738  gcc/testsuite/rust/compile/torture/unit_type1.rs
*************** e29cac3aeb678adaa01b17ac8e9018f8  gcc/te
*** 109236,109242 ****
--- 116780,116789 ----
  450925f1fdb8f793280e12ae10d1c683  gcc/testsuite/rust/compile/torture/utf8_whitespaces.rs
  086c8f2639392f24c1a8d60145c15f47  gcc/testsuite/rust/compile/torture/very-broken-attr-string.rs
  ae85bb383c361b590f3be526db37809d  gcc/testsuite/rust/compile/torture/while_function.rs
+ 0ef127ffa4b1fc4bc5cf0b8838eb232d  gcc/testsuite/rust/compile/track_caller.rs
  523f51e0fc5bdf6170c7935a446e509a  gcc/testsuite/rust/compile/trait-cycle.rs
+ 1f5805ef3a2bfe8d85cda1b3c8ed95ba  gcc/testsuite/rust/compile/trait13.rs
+ 35ed7ab1a4a6b857f5e3a998ad2b535e  gcc/testsuite/rust/compile/trait14.rs
  c16116c6e1935e080add3e0fa21e3a7d  gcc/testsuite/rust/compile/trait_pub_type.rs
  fa77f7c3f57f9c2e1114103f4a2aaab5  gcc/testsuite/rust/compile/traits1.rs
  268e8c1b05973e3b69beb39208fb8574  gcc/testsuite/rust/compile/traits10.rs
*************** a225b4c57ba672661c1d29da450cefc9  gcc/te
*** 109250,109255 ****
--- 116797,116806 ----
  54b50841460752b7d17613381fc20a75  gcc/testsuite/rust/compile/traits7.rs
  4efe1f3a0f41279a076b223dbaa6c7a4  gcc/testsuite/rust/compile/traits8.rs
  154a3e003fdef84da9a064f040d14be0  gcc/testsuite/rust/compile/traits9.rs
+ e5ba2705e4db9becf9b15f55ae4c2045  gcc/testsuite/rust/compile/try-catch-unwind-new.rs
+ 058f6afaf86db22b30feb1bbcc49eff8  gcc/testsuite/rust/compile/try-catch-unwind-old.rs
+ 3261dfa33f8c6dfb0a1d95afd1c89a1e  gcc/testsuite/rust/compile/try-expr1.rs
+ 9ffde65558275c1bc1fccaa8d3d303ad  gcc/testsuite/rust/compile/try-trait.rs
  d0dd22fa3a3a512431403c19da377d75  gcc/testsuite/rust/compile/tuple1.rs
  3e11ad929fc91de98602e9b2a827b85c  gcc/testsuite/rust/compile/tuple_float_index.rs
  0d156fbb6d1a73ffa9c48a5d8bffb99a  gcc/testsuite/rust/compile/tuple_mismatch.rs
*************** a1ac7edeb898356a609ab5f448f8106d  gcc/te
*** 109258,109271 ****
  0b343c17e414c8d5569ccaf48abff3c6  gcc/testsuite/rust/compile/tuple_struct3.rs
  5845cf816be4b72d5badd371e2ffba04  gcc/testsuite/rust/compile/tupple_struct_pattern_tuple.rs
  146a99b5e95da275ac9f3aa327f5113f  gcc/testsuite/rust/compile/type-alias1.rs
! 2d30ddfbb94ed8ecc8c9302cb1fb1acc  gcc/testsuite/rust/compile/type-bindings1.rs
  60558a7d2f3b7ae8e24ff2c795297008  gcc/testsuite/rust/compile/type-if.rs
  7a9af2a371d7cbd23dbe6d8a8956d6a5  gcc/testsuite/rust/compile/unary_negation.rs
  10cbc3f39d66596fc2a04f40a8673b0f  gcc/testsuite/rust/compile/unary_not.rs
! 56b0e2d95aa6712a2f1938a66d5f854c  gcc/testsuite/rust/compile/unconstrained_type_param.rs
! 857db3fb2731632459e8ca715f07a443  gcc/testsuite/rust/compile/undeclared_label.rs
  6895f64e4c1c706d09e540e4b97751d5  gcc/testsuite/rust/compile/unicode_escape.rs
  a823af26e85a962948de60f4b33d559e  gcc/testsuite/rust/compile/unicode_norm1.rs
  c0f3b70f1f30585a1ddb81a01cd7784b  gcc/testsuite/rust/compile/unsafe1.rs
  7decff6d514eeddac35d6e93c14d4490  gcc/testsuite/rust/compile/unsafe10.rs
  ffd0086398c13dd461c60ab251dea96e  gcc/testsuite/rust/compile/unsafe11.rs
--- 116809,116823 ----
  0b343c17e414c8d5569ccaf48abff3c6  gcc/testsuite/rust/compile/tuple_struct3.rs
  5845cf816be4b72d5badd371e2ffba04  gcc/testsuite/rust/compile/tupple_struct_pattern_tuple.rs
  146a99b5e95da275ac9f3aa327f5113f  gcc/testsuite/rust/compile/type-alias1.rs
! 872853973f8258921389204e8eadb56b  gcc/testsuite/rust/compile/type-bindings1.rs
  60558a7d2f3b7ae8e24ff2c795297008  gcc/testsuite/rust/compile/type-if.rs
  7a9af2a371d7cbd23dbe6d8a8956d6a5  gcc/testsuite/rust/compile/unary_negation.rs
  10cbc3f39d66596fc2a04f40a8673b0f  gcc/testsuite/rust/compile/unary_not.rs
! 1a5e768c5e81ad5cb8a1ade5cd57f622  gcc/testsuite/rust/compile/unconstrained_type_param.rs
! 0bc89f0cfd095fc4c59f1e85d6966681  gcc/testsuite/rust/compile/undeclared_label.rs
  6895f64e4c1c706d09e540e4b97751d5  gcc/testsuite/rust/compile/unicode_escape.rs
  a823af26e85a962948de60f4b33d559e  gcc/testsuite/rust/compile/unicode_norm1.rs
+ e61fc0f33dc5620379eacfb49627f713  gcc/testsuite/rust/compile/unknown-associated-item.rs
  c0f3b70f1f30585a1ddb81a01cd7784b  gcc/testsuite/rust/compile/unsafe1.rs
  7decff6d514eeddac35d6e93c14d4490  gcc/testsuite/rust/compile/unsafe10.rs
  ffd0086398c13dd461c60ab251dea96e  gcc/testsuite/rust/compile/unsafe11.rs
*************** dc6dd39f63dac8868fe265acb5c3a242  gcc/te
*** 109278,109288 ****
  f840f4287f5740ac4854b2f4195dbfbe  gcc/testsuite/rust/compile/unsafe8.rs
  75e5c1e5c0ca3975f202b6d2fcce3e87  gcc/testsuite/rust/compile/unsafe9.rs
  1eda1b7673de43c07e2c48bd01367d7c  gcc/testsuite/rust/compile/unsafe_module.rs
  7c830dd0a2ec3525c6da4bc67b44f331  gcc/testsuite/rust/compile/unterminated_c_comment.rs
  a96e29cf3f874eaf027ffb3caec83fcf  gcc/testsuite/rust/compile/use_1.rs
  9fc32e79fcf7466f1df1c8e1f5615b56  gcc/testsuite/rust/compile/use_2.rs
  f605e4e474930481f2179649d22239a1  gcc/testsuite/rust/compile/usize1.rs
! 29f631170a0d06d17a578360ec630dad  gcc/testsuite/rust/compile/v0-mangle1.rs
  63dc292fd1579604dc888db846d521f6  gcc/testsuite/rust/compile/v0-mangle2.rs
  ffeacc1dda452d94122d6a2cea6d601a  gcc/testsuite/rust/compile/variadic.rs
  d328500e54be92447ee10f2591d11017  gcc/testsuite/rust/compile/while_break_expr.rs
--- 116830,116841 ----
  f840f4287f5740ac4854b2f4195dbfbe  gcc/testsuite/rust/compile/unsafe8.rs
  75e5c1e5c0ca3975f202b6d2fcce3e87  gcc/testsuite/rust/compile/unsafe9.rs
  1eda1b7673de43c07e2c48bd01367d7c  gcc/testsuite/rust/compile/unsafe_module.rs
+ 82c88b596e5dd7e19c5c2febfa49a9e8  gcc/testsuite/rust/compile/unstable-fn.rs
  7c830dd0a2ec3525c6da4bc67b44f331  gcc/testsuite/rust/compile/unterminated_c_comment.rs
  a96e29cf3f874eaf027ffb3caec83fcf  gcc/testsuite/rust/compile/use_1.rs
  9fc32e79fcf7466f1df1c8e1f5615b56  gcc/testsuite/rust/compile/use_2.rs
  f605e4e474930481f2179649d22239a1  gcc/testsuite/rust/compile/usize1.rs
! 4ba93adcc306a982a169bf9d8fc0e09c  gcc/testsuite/rust/compile/v0-mangle1.rs
  63dc292fd1579604dc888db846d521f6  gcc/testsuite/rust/compile/v0-mangle2.rs
  ffeacc1dda452d94122d6a2cea6d601a  gcc/testsuite/rust/compile/variadic.rs
  d328500e54be92447ee10f2591d11017  gcc/testsuite/rust/compile/while_break_expr.rs
*************** a924b01bbc1d263aa1409bc3be20babb  gcc/te
*** 109290,109307 ****
  ecd1b51f089be2835ada173bc06aaa41  gcc/testsuite/rust/compile/wrong_lhs_assignment.rs
  5004765615d7d0e03d77473e2e06aa0f  gcc/testsuite/rust/compile/wrong_no_of_parameters.rs
  c7d793e2850d119364ecbefff6f25e6a  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
  f219c902f8bbb7747064aa57b2247406  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! b2968983785f0954893bf418331ae397  gcc/testsuite/rust/compile/xfail/xfail.exp
  3218ecaec34cb9248c2d6ea5e9a19e62  gcc/testsuite/rust/compile/zero_sized_slice.rs
  cf84f07cfe0ecfb071b976dc80fea9b2  gcc/testsuite/rust/debug/chartype.rs
  faa029c0320aae395036255789ed154c  gcc/testsuite/rust/debug/custom_link_section.rs
! 86453a4dda37cf20160d4408b55d25b3  gcc/testsuite/rust/debug/debug.exp
  0f03e1c966bc34da8ffe7f4e31810852  gcc/testsuite/rust/debug/i8u8.rs
  19340915d91d271cd4752d446da432a3  gcc/testsuite/rust/debug/lang.rs
  6e59b3f6a3efdac0010ff67baf812cd3  gcc/testsuite/rust/debug/no_mangle.rs
  4f4406b9c3ea1e1d1fe142e73f7d81dc  gcc/testsuite/rust/debug/oldlang.rs
  533df5d9904c8efee02c94532338efc2  gcc/testsuite/rust/debug/tuple.rs
  d5d8788f3a670487fb051714384ab2a1  gcc/testsuite/rust/debug/win64-abi.rs
  5c09d4f755cc413edff8ea1879dc50d2  gcc/testsuite/rust/execute/same_field_name.rs
  94c13baa4b458105f3e2204c8d4d1e17  gcc/testsuite/rust/execute/torture/arrays.rs
  eca15726fcabf7e7620037e020ee686f  gcc/testsuite/rust/execute/torture/atomic_load.rs
--- 116843,116862 ----
  ecd1b51f089be2835ada173bc06aaa41  gcc/testsuite/rust/compile/wrong_lhs_assignment.rs
  5004765615d7d0e03d77473e2e06aa0f  gcc/testsuite/rust/compile/wrong_no_of_parameters.rs
  c7d793e2850d119364ecbefff6f25e6a  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
+ f2e1eda302a70dfade900cd8843caed2  gcc/testsuite/rust/compile/xfail/name_resolution21.rs
  f219c902f8bbb7747064aa57b2247406  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! 6cac77bead9a159370fe05c2e4be2550  gcc/testsuite/rust/compile/xfail/xfail.exp
  3218ecaec34cb9248c2d6ea5e9a19e62  gcc/testsuite/rust/compile/zero_sized_slice.rs
  cf84f07cfe0ecfb071b976dc80fea9b2  gcc/testsuite/rust/debug/chartype.rs
  faa029c0320aae395036255789ed154c  gcc/testsuite/rust/debug/custom_link_section.rs
! 2af64fa0368515022042a3fcb6118659  gcc/testsuite/rust/debug/debug.exp
  0f03e1c966bc34da8ffe7f4e31810852  gcc/testsuite/rust/debug/i8u8.rs
  19340915d91d271cd4752d446da432a3  gcc/testsuite/rust/debug/lang.rs
  6e59b3f6a3efdac0010ff67baf812cd3  gcc/testsuite/rust/debug/no_mangle.rs
  4f4406b9c3ea1e1d1fe142e73f7d81dc  gcc/testsuite/rust/debug/oldlang.rs
  533df5d9904c8efee02c94532338efc2  gcc/testsuite/rust/debug/tuple.rs
  d5d8788f3a670487fb051714384ab2a1  gcc/testsuite/rust/debug/win64-abi.rs
+ 36f6ff07e76f000052781ec6324b4dff  gcc/testsuite/rust/execute/crate-metavar1.rs
  5c09d4f755cc413edff8ea1879dc50d2  gcc/testsuite/rust/execute/same_field_name.rs
  94c13baa4b458105f3e2204c8d4d1e17  gcc/testsuite/rust/execute/torture/arrays.rs
  eca15726fcabf7e7620037e020ee686f  gcc/testsuite/rust/execute/torture/atomic_load.rs
*************** eca15726fcabf7e7620037e020ee686f  gcc/te
*** 109311,109319 ****
  c1b657c2acee7d237da8a2cd240c44a8  gcc/testsuite/rust/execute/torture/builtin_macro_cfg.rs
  ae3d7e4a5d743ef3c619b5f6b7cc9bfb  gcc/testsuite/rust/execute/torture/builtin_macro_concat.rs
  cfad0d9f56bfc596e57015384c27d0c9  gcc/testsuite/rust/execute/torture/builtin_macro_env.rs
! 3130e12314ecdb717405842c096308df  gcc/testsuite/rust/execute/torture/builtin_macro_include_bytes.rs
! bdd55f656ff46526f2293433c6d58bd8  gcc/testsuite/rust/execute/torture/builtin_macro_include_str.rs
  490a74d71fee522b5677974a21023378  gcc/testsuite/rust/execute/torture/builtin_macro_line.rs
  b6fcc627a166c042555ce9c7e9298a1f  gcc/testsuite/rust/execute/torture/builtin_macro_stringify.rs
  fa58e352ba2ca785ae91a05e9b7fe6ca  gcc/testsuite/rust/execute/torture/builtin_macros1.rs
  976ef422b18d727506900f11fc958cec  gcc/testsuite/rust/execute/torture/builtin_macros3.rs
--- 116866,116875 ----
  c1b657c2acee7d237da8a2cd240c44a8  gcc/testsuite/rust/execute/torture/builtin_macro_cfg.rs
  ae3d7e4a5d743ef3c619b5f6b7cc9bfb  gcc/testsuite/rust/execute/torture/builtin_macro_concat.rs
  cfad0d9f56bfc596e57015384c27d0c9  gcc/testsuite/rust/execute/torture/builtin_macro_env.rs
! 8d5f0efa0dec7ac74e7eb026e35633d7  gcc/testsuite/rust/execute/torture/builtin_macro_include_bytes.rs
! 768015a23dc069437f4fd1b24e6eaa81  gcc/testsuite/rust/execute/torture/builtin_macro_include_str.rs
  490a74d71fee522b5677974a21023378  gcc/testsuite/rust/execute/torture/builtin_macro_line.rs
+ 31c00291a652dae8f2f4ad8f634476ee  gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs
  b6fcc627a166c042555ce9c7e9298a1f  gcc/testsuite/rust/execute/torture/builtin_macro_stringify.rs
  fa58e352ba2ca785ae91a05e9b7fe6ca  gcc/testsuite/rust/execute/torture/builtin_macros1.rs
  976ef422b18d727506900f11fc958cec  gcc/testsuite/rust/execute/torture/builtin_macros3.rs
*************** fd85d0412a3b44dc18646d7a2f23ed44  gcc/te
*** 109337,109362 ****
  1d8ebbc049fb21f9609e1de2d2d094ac  gcc/testsuite/rust/execute/torture/decl_macro2.rs
  2ca84627b7b27d5e1c7889f6997d31c1  gcc/testsuite/rust/execute/torture/decl_macro3.rs
  b9d5acfe96556f242a09a6982797cd8b  gcc/testsuite/rust/execute/torture/decl_macro4.rs
  88c52a8112f07c24a800321dac704c65  gcc/testsuite/rust/execute/torture/derive_macro1.rs
! ee84163ea01c9331a3c5b2d9d852df15  gcc/testsuite/rust/execute/torture/derive_macro3.rs
! 19c4ed736ca7f9a01094e1d2061adf25  gcc/testsuite/rust/execute/torture/derive_macro4.rs
  f3e8fb4d74a3a31041cfcb2286645769  gcc/testsuite/rust/execute/torture/empty_main.rs
! 96443d26e7c48e6101e73de5a25090ad  gcc/testsuite/rust/execute/torture/execute.exp
  c579ac738ba95f67c2c7d8a745f30d74  gcc/testsuite/rust/execute/torture/exit_error.rs
  ab6af2afb853cd3748a8320e0f4d16f3  gcc/testsuite/rust/execute/torture/extern_mod4.rs
  deec28fbd0fd7d5a890d0905cbfa3d3a  gcc/testsuite/rust/execute/torture/extern_mod4/modules/mod.rs
  51c98fe37862ab18dafa4be9e1fcc95e  gcc/testsuite/rust/execute/torture/func1.rs
  fab98ca34ae058c9972166c501a700ec  gcc/testsuite/rust/execute/torture/helloworld1.rs
  dd9d5a465f08d85c74f79bf57191b889  gcc/testsuite/rust/execute/torture/helloworld2.rs
  d1bf4d03901b291d3115f4895ffb2fb7  gcc/testsuite/rust/execute/torture/include.txt
  62a41b75b7c5ffea1195d0d9ae0a0292  gcc/testsuite/rust/execute/torture/index1.rs
  976a754e4c002db75b718db2ffad2976  gcc/testsuite/rust/execute/torture/issue-1120.rs
  3c2b61d6a054cae09658b0ea3efdaef6  gcc/testsuite/rust/execute/torture/issue-1133.rs
  fd2a4838eb014285bc8f567e8bd70ceb  gcc/testsuite/rust/execute/torture/issue-1198.rs
  205a284536c62257237cafba849510a6  gcc/testsuite/rust/execute/torture/issue-1231.rs
  12c716ab70323de0af63a9c0f99aea03  gcc/testsuite/rust/execute/torture/issue-1232.rs
  e4c50a85ec53e7486479e75929f741e7  gcc/testsuite/rust/execute/torture/issue-1249.rs
! 96a0b8a234fd7090590092bd24e55daa  gcc/testsuite/rust/execute/torture/issue-1436.rs
  0fe3cb9aefa642b3ad5d66b03236eebc  gcc/testsuite/rust/execute/torture/issue-1496.rs
  d6cecf6e8b59b318ec6239b5a61bee14  gcc/testsuite/rust/execute/torture/issue-1720-2.rs
  d4fd8ea0044840c76ddeff882c4cd32b  gcc/testsuite/rust/execute/torture/issue-1720.rs
--- 116893,116928 ----
  1d8ebbc049fb21f9609e1de2d2d094ac  gcc/testsuite/rust/execute/torture/decl_macro2.rs
  2ca84627b7b27d5e1c7889f6997d31c1  gcc/testsuite/rust/execute/torture/decl_macro3.rs
  b9d5acfe96556f242a09a6982797cd8b  gcc/testsuite/rust/execute/torture/decl_macro4.rs
+ 3f57cd6a0818ef995e11884429993020  gcc/testsuite/rust/execute/torture/derive-default1.rs
+ 1a151d0002782fe81774c2ef9d91474d  gcc/testsuite/rust/execute/torture/derive-partialeq1.rs
+ 48caa2872d3bb7f0e1b8ee4fb1849acc  gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs
  88c52a8112f07c24a800321dac704c65  gcc/testsuite/rust/execute/torture/derive_macro1.rs
! 9093dd2dd5d6d17cfab71c38028cb7b3  gcc/testsuite/rust/execute/torture/derive_macro3.rs
! 56e0f09d7857937ae1d8ad7c799018f4  gcc/testsuite/rust/execute/torture/derive_macro4.rs
  f3e8fb4d74a3a31041cfcb2286645769  gcc/testsuite/rust/execute/torture/empty_main.rs
! 5560f8c82637ea346cec8aa95c6d1369  gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs
! 8084a8ae59912c36a5f70a9b738843f1  gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs
! e9009eb5eaed800d5f556dd9eb81d1b8  gcc/testsuite/rust/execute/torture/execute.exp
  c579ac738ba95f67c2c7d8a745f30d74  gcc/testsuite/rust/execute/torture/exit_error.rs
  ab6af2afb853cd3748a8320e0f4d16f3  gcc/testsuite/rust/execute/torture/extern_mod4.rs
  deec28fbd0fd7d5a890d0905cbfa3d3a  gcc/testsuite/rust/execute/torture/extern_mod4/modules/mod.rs
+ ada44c943de3146b4f90cf9d871c3929  gcc/testsuite/rust/execute/torture/for-loop1.rs
+ 4321c56006fb7b8bc0406a58bc935686  gcc/testsuite/rust/execute/torture/for-loop2.rs
  51c98fe37862ab18dafa4be9e1fcc95e  gcc/testsuite/rust/execute/torture/func1.rs
  fab98ca34ae058c9972166c501a700ec  gcc/testsuite/rust/execute/torture/helloworld1.rs
  dd9d5a465f08d85c74f79bf57191b889  gcc/testsuite/rust/execute/torture/helloworld2.rs
+ ab0eadcf833fcbd08d9b7fdc9778ed10  gcc/testsuite/rust/execute/torture/iflet.rs
  d1bf4d03901b291d3115f4895ffb2fb7  gcc/testsuite/rust/execute/torture/include.txt
  62a41b75b7c5ffea1195d0d9ae0a0292  gcc/testsuite/rust/execute/torture/index1.rs
+ 101931feb6b9121176b08e5394b8f10c  gcc/testsuite/rust/execute/torture/inline_asm_mov_x_5_ARM.rs
+ 432174330121612ddc4ea6d7c0d027b1  gcc/testsuite/rust/execute/torture/inline_asm_mov_x_5_x86_64.rs
  976a754e4c002db75b718db2ffad2976  gcc/testsuite/rust/execute/torture/issue-1120.rs
  3c2b61d6a054cae09658b0ea3efdaef6  gcc/testsuite/rust/execute/torture/issue-1133.rs
  fd2a4838eb014285bc8f567e8bd70ceb  gcc/testsuite/rust/execute/torture/issue-1198.rs
  205a284536c62257237cafba849510a6  gcc/testsuite/rust/execute/torture/issue-1231.rs
  12c716ab70323de0af63a9c0f99aea03  gcc/testsuite/rust/execute/torture/issue-1232.rs
  e4c50a85ec53e7486479e75929f741e7  gcc/testsuite/rust/execute/torture/issue-1249.rs
! 69c87f9ecf59a43749bed79606fb35a2  gcc/testsuite/rust/execute/torture/issue-1436.rs
  0fe3cb9aefa642b3ad5d66b03236eebc  gcc/testsuite/rust/execute/torture/issue-1496.rs
  d6cecf6e8b59b318ec6239b5a61bee14  gcc/testsuite/rust/execute/torture/issue-1720-2.rs
  d4fd8ea0044840c76ddeff882c4cd32b  gcc/testsuite/rust/execute/torture/issue-1720.rs
*************** ca9c7c4413199f843e3b51677965b5b4  gcc/te
*** 109366,109374 ****
  8becbf6525cbbde4782e84b68f602396  gcc/testsuite/rust/execute/torture/issue-2080.rs
  d8ad8f9578efd13f8656c31449e77bf0  gcc/testsuite/rust/execute/torture/issue-2179.rs
  dac58df6bbee5b6fd5f8e0bf62fe2b1a  gcc/testsuite/rust/execute/torture/issue-2180.rs
! 8272418c2721f5ffc6acf8efc4c31d2a  gcc/testsuite/rust/execute/torture/issue-2187.rs
  1309b73638a56bc83e0e3fadcc762b4c  gcc/testsuite/rust/execute/torture/issue-2236.rs
! 84ab8dbd8581efe7fc36c0325a352b50  gcc/testsuite/rust/execute/torture/issue-2583.rs
  ba2cc9caa5cf695dabb5e09de31fcceb  gcc/testsuite/rust/execute/torture/issue-647.rs
  9aebf168cfdac6b4ffcb96d19980fa72  gcc/testsuite/rust/execute/torture/issue-845.rs
  063e1d1686f93b29ba383722fc51dbed  gcc/testsuite/rust/execute/torture/issue-851.rs
--- 116932,116944 ----
  8becbf6525cbbde4782e84b68f602396  gcc/testsuite/rust/execute/torture/issue-2080.rs
  d8ad8f9578efd13f8656c31449e77bf0  gcc/testsuite/rust/execute/torture/issue-2179.rs
  dac58df6bbee5b6fd5f8e0bf62fe2b1a  gcc/testsuite/rust/execute/torture/issue-2180.rs
! b00a6157a531d1d419bb852d30b7d131  gcc/testsuite/rust/execute/torture/issue-2187.rs
  1309b73638a56bc83e0e3fadcc762b4c  gcc/testsuite/rust/execute/torture/issue-2236.rs
! b00ed11eddbb45f2d076fbabb9980dc0  gcc/testsuite/rust/execute/torture/issue-2583.rs
! 7cad0696fff12a23d88d55c29b36b4fd  gcc/testsuite/rust/execute/torture/issue-2906.rs
! 06cdf97de4a0f302b366e6bd9e2c0b51  gcc/testsuite/rust/execute/torture/issue-3126.rs
! 63b786f5f35c6c87d722646f2d91b209  gcc/testsuite/rust/execute/torture/issue-3381.rs
! a96b0644743e8e241da6558cbb2c2fba  gcc/testsuite/rust/execute/torture/issue-3502.rs
  ba2cc9caa5cf695dabb5e09de31fcceb  gcc/testsuite/rust/execute/torture/issue-647.rs
  9aebf168cfdac6b4ffcb96d19980fa72  gcc/testsuite/rust/execute/torture/issue-845.rs
  063e1d1686f93b29ba383722fc51dbed  gcc/testsuite/rust/execute/torture/issue-851.rs
*************** bd1d405cfc6bdbadc0c47d3aab4b794b  gcc/te
*** 109426,109432 ****
--- 116996,117005 ----
  d5dc0260dfa3bbf3e347b8e56945fa1e  gcc/testsuite/rust/execute/torture/method2.rs
  d19bc56fc070b84e1ca39de0f28a852e  gcc/testsuite/rust/execute/torture/method3.rs
  8f2351f701c6ec39cf992f060166dfb7  gcc/testsuite/rust/execute/torture/method4.rs
+ a8df67c6375fe32f63d5f5799c80c61e  gcc/testsuite/rust/execute/torture/min_specialization2.rs
+ e007cd93facba6b11ec1ba055a220e75  gcc/testsuite/rust/execute/torture/min_specialization3.rs
  3f13ddef20c0f036bfffdb2d02bc5334  gcc/testsuite/rust/execute/torture/mod1.rs
+ d4b094ee76b23fbfd1be6f64c23f0041  gcc/testsuite/rust/execute/torture/multiline-string.rs
  c8ee9c51b08901bb75fc90317a691039  gcc/testsuite/rust/execute/torture/name_resolution.rs
  533763469b219f004d5d73c7642553c9  gcc/testsuite/rust/execute/torture/named_variadic.rs
  dda9820471c4dc11cd335034d35e5ccf  gcc/testsuite/rust/execute/torture/operator_overload_1.rs
*************** a6af7c4b862f663d2b386821ea87e7d4  gcc/te
*** 109455,109460 ****
--- 117028,117038 ----
  a45a805860546c66843c31d69913a98e  gcc/testsuite/rust/execute/torture/trait11.rs
  fd99531024c486b4e7f0dde93a680052  gcc/testsuite/rust/execute/torture/trait12.rs
  639b558f31b8be14bc6fa6d2ac156825  gcc/testsuite/rust/execute/torture/trait13.rs
+ a24dd83293f855e40f210dbb907f65d0  gcc/testsuite/rust/execute/torture/trait14.rs
+ c4e5fbc1550bb9894f84877fbb5a0bd8  gcc/testsuite/rust/execute/torture/trait15.rs
+ 621c4e646d592dde3efc00a32873545b  gcc/testsuite/rust/execute/torture/trait16.rs
+ 8fb625e62f11cb16e91efcb7b9e39926  gcc/testsuite/rust/execute/torture/trait17.rs
+ fc8c3be91dabb27e15883b50dc6a2e7f  gcc/testsuite/rust/execute/torture/trait18.rs
  2bdd6f23fa37bce05b9a97683c232d39  gcc/testsuite/rust/execute/torture/trait2.rs
  d04fe352d2cbe0aafd0191cf7e5e0793  gcc/testsuite/rust/execute/torture/trait3.rs
  65050d814dbad819494405043d2cd890  gcc/testsuite/rust/execute/torture/trait4.rs
*************** c11d46231911975a133e7067ada8776b  gcc/te
*** 109466,109479 ****
  7d523840107b55fa60669f67bdb6e437  gcc/testsuite/rust/execute/torture/transmute1.rs
  4c0cc5cc1c3416c7d8ae0e009be50ebe  gcc/testsuite/rust/execute/torture/wrapping_op1.rs
  0191f519c13fb014fd21afe64ac4b7c6  gcc/testsuite/rust/execute/torture/wrapping_op2.rs
! 8747cbe8301698563c21abf6609a6c44  gcc/testsuite/rust/execute/xfail/macro1.rs
! a06d21e78dd13355fa7dd3100a94deaf  gcc/testsuite/rust/link/generic_function_0.rs
  f2a777658cea0585f5d5a1d20ec2d40e  gcc/testsuite/rust/link/generic_function_1.rs
! 81f7b59ae122e13dbb5ae30eb590d1e5  gcc/testsuite/rust/link/link.exp
  e8f8000787067fbf63460ed56e1fd29e  gcc/testsuite/rust/link/simple_function_0.rs
  935c741fe66a7107d877188eb7365214  gcc/testsuite/rust/link/simple_function_1.rs
! da85e512bbf4d6e122fd004a5250ee6e  gcc/testsuite/rust/link/trait_import_0.rs
! b66e37c99da334fd847ffc841b7543ce  gcc/testsuite/rust/link/trait_import_1.rs
  58841d4b35f235992494de514b3a35c4  gcc/testsuite/selftests/aarch64/times-two.rtl
  2f493b012ca0548db4706319bb145b02  gcc/testsuite/selftests/asr_div1.rtl
  448882dffdd97db42881f626d9a955a5  gcc/testsuite/selftests/bb-index.rtl
--- 117044,117095 ----
  7d523840107b55fa60669f67bdb6e437  gcc/testsuite/rust/execute/torture/transmute1.rs
  4c0cc5cc1c3416c7d8ae0e009be50ebe  gcc/testsuite/rust/execute/torture/wrapping_op1.rs
  0191f519c13fb014fd21afe64ac4b7c6  gcc/testsuite/rust/execute/torture/wrapping_op2.rs
! 0e0f3ebabd8be7fe40d5e8bc054bf19d  gcc/testsuite/rust/execute/xfail/macro1.rs
! ffa2bd6f2a9efb48af0e98e648eef6ac  gcc/testsuite/rust/link/generic_function_0.rs
  f2a777658cea0585f5d5a1d20ec2d40e  gcc/testsuite/rust/link/generic_function_1.rs
! df61a5f5576463f4e163f1364e8c63df  gcc/testsuite/rust/link/link.exp
  e8f8000787067fbf63460ed56e1fd29e  gcc/testsuite/rust/link/simple_function_0.rs
  935c741fe66a7107d877188eb7365214  gcc/testsuite/rust/link/simple_function_1.rs
! 06f68dc4a7ab6af5ed722d9ddcda10ff  gcc/testsuite/rust/link/trait_import_0.rs
! 5eecf3163a174bd8047aec53c9145ab2  gcc/testsuite/rust/link/trait_import_1.rs
! 7ba67c515a5228a7472fd045dd8397a0  gcc/testsuite/rust/rustc/README.md
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/rustc/rustc.exp
! 1c509e7de614067f3a4c311d8b0db801  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif
! 1fb9285eeda89fc811197f062bdf5861  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif
! 0acc6d67ec2503b475d43ed0ae18601a  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif
! 731315e23b12bf2083f2d368e55ef03c  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.5-unescaped-braces.sarif
! 8f80fddc63a4f2acb5c1cc78cd836788  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif
! 6cedb9f811bfc76c050966e93d377b73  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif
! d910e34d972a2ae4d2e025eec96192ac  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif
! d6a4a204a74a774a181e641101ff2e16  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif
! 633a1bf47adebfbd899b126c43d1aed5  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif
! b70421e28928ce62950398e225340002  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif
! c5873409f1f9ad155233907eea12e297  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.33.3-index-out-of-range.sarif
! 339832dd89f5eafdc953376af61734f6  gcc/testsuite/sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif
! e3b2cd7e659905aae30293135919e468  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.11.6-embedded-links.sarif
! 984abc6c1fa0578f7f070ea81531b615  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.27.30-fixes-1.sarif
! a5f27c1dd2784330c1b584360a486c85  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.27.30-fixes-2.sarif
! 5dd4a200df47d1689bc6aca933cb9b44  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.27.30-fixes-3.sarif
! 4234e9442988f3b10195df51ecbb9f02  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.28.6-annotations-1.sarif
! d857a4331f097987a1bb7433f321c1c0  gcc/testsuite/sarif-replay.dg/2.1.0-valid/error-with-note.sarif
! eb63c8ccd144fcb7c3f54ce6920d725c  gcc/testsuite/sarif-replay.dg/2.1.0-valid/escaped-braces.sarif
! 0cc960ceb5aae05d1918cf826e8a2d24  gcc/testsuite/sarif-replay.dg/2.1.0-valid/malloc-vs-local-4.c.sarif
! 58ef936e0f61e7fcd03fa86d5bb33ad5  gcc/testsuite/sarif-replay.dg/2.1.0-valid/null-runs.sarif
! 9e0495956d9c9c5b11ebb067092c8d95  gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1.c.moved.sarif
! a18a3148013db24887fac699da3c7766  gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1.c.sarif
! 64db82f344ff8933016b20daf63eb736  gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-1.sarif
! e44e7f711326621f8da1e53202252b2f  gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-2.sarif
! 2a1077e4fb1ab5b1d22508c9bad1d155  gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-3.sarif
! 76e981d319ae75180afa09c2eaca125a  gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-4.sarif
! a55047d9482898adea5abb605a4009fd  gcc/testsuite/sarif-replay.dg/2.1.0-valid/tutorial-example.sarif
! ab6ec595b154baff03158cc14174359a  gcc/testsuite/sarif-replay.dg/2.1.0-valid/unlabelled-secondary-locations.sarif
! ccb8408f91b08b74cffa9a0818262a6c  gcc/testsuite/sarif-replay.dg/dg.exp
! b02781e284b82d6defcd3dcab353dc23  gcc/testsuite/sarif-replay.dg/malformed-json/array-missing-comma.sarif
! cb876d2dd50e7e28241df321e0183039  gcc/testsuite/sarif-replay.dg/malformed-json/array-with-trailing-comma.sarif
! 140d312839b1bc9159e09649d2d4d548  gcc/testsuite/sarif-replay.dg/malformed-json/bad-token.sarif
! 81fd2ddb0daa368e08b9c2d272608d64  gcc/testsuite/sarif-replay.dg/malformed-json/empty.sarif
! 21b043d104be9d6ab5e8cd46c97f2ab9  gcc/testsuite/sarif-replay.dg/malformed-json/object-missing-comma.sarif
! 40f1c5ffd9bfdbb93b6f76aa23dc6f72  gcc/testsuite/sarif-replay.dg/malformed-json/object-with-trailing-comma.sarif
  58841d4b35f235992494de514b3a35c4  gcc/testsuite/selftests/aarch64/times-two.rtl
  2f493b012ca0548db4706319bb145b02  gcc/testsuite/selftests/asr_div1.rtl
  448882dffdd97db42881f626d9a955a5  gcc/testsuite/selftests/bb-index.rtl
*************** c0b991692c06f34bf7f8673802e7b155  gcc/te
*** 109497,109733 ****
  e42076aeff1c5ac155a88db5b1993d38  gcc/testsuite/selftests/x86_64/times-two.rtl
  195d431640249dac1928ced4d93ecb76  gcc/testsuite/selftests/x86_64/unspec.rtl
  4f2cac6fe70242fd7fe19fc4905f4d47  gcc/text-art/box-drawing-chars.inc
! d934b555c64ffa8648afd6011c95aa49  gcc/text-art/box-drawing.cc
! 41412371b971dedaf42ceab028c659d8  gcc/text-art/box-drawing.h
! bbfa9ddd45a626fb622ec7de75b07118  gcc/text-art/canvas.cc
! a597353e2cacba60173d6da2ee19d68f  gcc/text-art/canvas.h
! b5a2abf29d36f7ffe543605d8cc72f32  gcc/text-art/ruler.cc
! 2746ce0aa5ff2338c48df88a1037412a  gcc/text-art/ruler.h
! f426afaf1e5ff7086ba16e97b238fb8e  gcc/text-art/selftests.cc
! be32988073beff4f393ff61d3e680c27  gcc/text-art/selftests.h
! 21c540bf3aa433c8751fc892aacace75  gcc/text-art/style.cc
! 362cf6c8d8c36badb59c9884e1ea1f96  gcc/text-art/styled-string.cc
! 770d4d94a5dd1039210f8f565f56fd5e  gcc/text-art/table.cc
! 257621d0a999f68f73fb28e4f9843d2a  gcc/text-art/table.h
! fd0aec88000d4c123c4f6105c5db7eb3  gcc/text-art/theme.cc
! 15b645980f5e14a1bee962752b47593e  gcc/text-art/theme.h
! e1e6258ec644fcc4bb57e7b6ac3504f7  gcc/text-art/types.h
! f1fb74291c5b1a27a0d62acc711b8e0c  gcc/text-art/widget.cc
! 58a79aa593c2173c50e0167620ec0a32  gcc/text-art/widget.h
! 055c939d86b85123fa3ade677b1cfe1a  gcc/timevar.cc
! b864cf73f38bfe6930fe3c78e10ee12f  gcc/timevar.def
! 4337810720460c179fd6d2167526e1f3  gcc/timevar.h
! fe4591896d00d43cf6d3bc2a6ec8476d  gcc/toplev.cc
! bd67380967fd7bdbfaecb515f21f93aa  gcc/toplev.h
! f17081d7fce354b18de1bdbc953d21d0  gcc/tracer.cc
! e4c49a47a0896cb8c73c5b1693d5d987  gcc/tracer.h
! a2dee61107c634caac993d1b4ff79772  gcc/trans-mem.cc
! 076ef910c5a26db182658683089f3686  gcc/trans-mem.h
! 280a8e2b3d635cfb5938de9726121e03  gcc/tree-affine.cc
! a4b827d1ef45152ec036849300997ea6  gcc/tree-affine.h
! a86ef1b6ed4d020feacbe67ef4eb17f1  gcc/tree-call-cdce.cc
! dd53b60072bd45ab08304b6ae5505ca3  gcc/tree-cfg.cc
! 4033e031a74b8591e4e99c6d0b936e95  gcc/tree-cfg.h
! d1d7e848234190caa5f2bf2e83aeb2d2  gcc/tree-cfgcleanup.cc
! 33f85bca44e9b9e703bdf0cbdbaa732a  gcc/tree-cfgcleanup.h
! 1effa6554e543ae715a3b9d5ce9e825c  gcc/tree-chrec.cc
! 56d59272a3fae6c32537f707febf66eb  gcc/tree-chrec.h
! 628036cdbf2db5837b03e08a445438d9  gcc/tree-complex.cc
! ea5a0250e9186f164f0843e79aacedad  gcc/tree-core.h
! 7d504c7d26098e2c9cc439f7f62e96c5  gcc/tree-data-ref.cc
! be94ad8882ddf23e3a81adefff8dac6b  gcc/tree-data-ref.h
! 09f7a9f9b68b946fbdba7f9fd3f320a1  gcc/tree-dfa.cc
! fa607c5aeaca12c420103ef58786b736  gcc/tree-dfa.h
! ec613fa4b8297f76ca3f9cc750e10d2c  gcc/tree-diagnostic-client-data-hooks.cc
! 937b996e197d9c641bc0d5a9449a9135  gcc/tree-diagnostic-path.cc
! a42cfecde2bde84e8caf09636b68c9b2  gcc/tree-diagnostic.cc
! debb27964e157c88b76b5e2a00cbd4c1  gcc/tree-diagnostic.h
! 8cd37203c422b0d03a76db07974de7a0  gcc/tree-dump.cc
! 5aeed18b459de9d2e00f46c9e11d231d  gcc/tree-dump.h
! b2ece18df3b57458a23370fe543488f0  gcc/tree-eh.cc
! 1f2b40921cf81768c6ef9a444bb90cbe  gcc/tree-eh.h
! d090daa844578953fae325419d401322  gcc/tree-emutls.cc
! 9fff164e638f2e33d35d0e021f67fc5b  gcc/tree-hash-traits.h
! de9026b3ddfb63f45eb7de90c07c152a  gcc/tree-hasher.h
! ce28bad7d63ee824859b78976914e786  gcc/tree-if-conv.cc
! 5d6eb83f64960ba3d0dc2c1253389f3b  gcc/tree-if-conv.h
! e140c2f11c1be4c1a2866885cb4aa485  gcc/tree-inline.cc
! 93e3a89424169fea13caf4b3f341effe  gcc/tree-inline.h
! 14fbc08d8db9b07d391efa6716aea4d8  gcc/tree-into-ssa.cc
! 75ead7abe52cb77f14845ac9c55bbc29  gcc/tree-into-ssa.h
! 856ba3876d6df924db1a685d084281ff  gcc/tree-iterator.cc
! 34c67d9bc9ff4398020de83e3863c714  gcc/tree-iterator.h
! 06e8f08e601771f0ed17d24d2ed46619  gcc/tree-logical-location.cc
! 2e3b7c0529a53dbc24fc1e6fecf628c8  gcc/tree-logical-location.h
! 83eac4e37f72b5eeba2b66a4beeaa6e6  gcc/tree-loop-distribution.cc
! 538752b75f76de52491ebec1ec0878a9  gcc/tree-nested.cc
! d4019e9903f5660319d05b837b0b8f24  gcc/tree-nested.h
! 1fd1f70cb44dc7cff617b5352e49d272  gcc/tree-nrv.cc
! 4e1a834692fbc4d0884ad527115f793b  gcc/tree-object-size.cc
! c2992dcc01282d89c18bbe448c0a5572  gcc/tree-object-size.h
! 06cc5db04462c5845bcd144eee6cd921  gcc/tree-outof-ssa.cc
! 7fae35e1bf1391a4ae03d9bed84ef456  gcc/tree-outof-ssa.h
! 7c817439ea8efb2772697c684a3ce57b  gcc/tree-parloops.cc
! b7cafcfc01cd27516d5788a64e7dc058  gcc/tree-parloops.h
! ac7a115cd070672d90d6479104a15e65  gcc/tree-pass.h
! 789c6299f2f8d026710802845f17d9d2  gcc/tree-phinodes.cc
! 2bdb8225bb6265ab9bd1b0018b497447  gcc/tree-phinodes.h
! 91340bc20d54ccebd0ab72770a2657c1  gcc/tree-predcom.cc
! 1dd8519646252527916595bce0833af2  gcc/tree-pretty-print.cc
! 0f63e75929b34bde93e034c9b1e1430f  gcc/tree-pretty-print.h
! fa283611866c6ad433cfe860538eb2b3  gcc/tree-profile.cc
! d3a97bac3f5a8af3b12be65f79b18c9d  gcc/tree-scalar-evolution.cc
! fe964e6bef89af1a79d00c19713660bd  gcc/tree-scalar-evolution.h
! b55b9f62ba56777e963d9fbd8ec8975b  gcc/tree-sra.cc
! 1e9cd044620373c14038fbd39740fd14  gcc/tree-sra.h
! 76ef7a403eba76cb39fe06d695ab266a  gcc/tree-ssa-address.cc
! a35227be3c2b85c69d7e31275f1f7092  gcc/tree-ssa-address.h
! c6452562eb3a7624dd36feb34366314e  gcc/tree-ssa-alias-compare.h
! d065739a57162aae9455b6fd8fd17d6f  gcc/tree-ssa-alias.cc
! f77037d285f3ce285e41e6d91e5e482f  gcc/tree-ssa-alias.h
! 069fe336c8cbda10fd3dbda8899deb7a  gcc/tree-ssa-ccp.cc
! be2ddd67b1fc2c7baf9c618d285adce3  gcc/tree-ssa-ccp.h
! 5cef3a450fbc9d3e9e94016fe1711559  gcc/tree-ssa-coalesce.cc
! 3f39d3e2019ab3a50d2cfe7f826d137f  gcc/tree-ssa-coalesce.h
! c4fb95e78992e4ae89759e9c2fda21c4  gcc/tree-ssa-copy.cc
! 7a860ba86069424dbba5ae8fb0effde5  gcc/tree-ssa-dce.cc
! 394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
! 6d190a3cd228e540064a0f134a3ad3ac  gcc/tree-ssa-dom.cc
! c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
! 0270f4ecd595e57cb5435566f9639005  gcc/tree-ssa-dse.cc
! 310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
! 5155498f5f23c2a3ae2259bd5232d9b7  gcc/tree-ssa-forwprop.cc
! 48767dda496173441bc33fb424a8582a  gcc/tree-ssa-ifcombine.cc
! 3145d63e8ac30995b32491866e9f536d  gcc/tree-ssa-live.cc
! bc4d2e809f144d9e2d71f49c6ac1005c  gcc/tree-ssa-live.h
! 62caed8ee6b65f064d889ab923fa4b37  gcc/tree-ssa-loop-ch.cc
! 55ebb785bb6539266182eec301fd8a88  gcc/tree-ssa-loop-im.cc
! d13427e991e77725e732629fb007437a  gcc/tree-ssa-loop-ivcanon.cc
! a480422906cf94ca39939d91a1c3344f  gcc/tree-ssa-loop-ivopts.cc
! 66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
! 468cc85e2332333521f69f26b7dd5b27  gcc/tree-ssa-loop-manip.cc
! 66557039c7e4f18ad92b155b29c79d30  gcc/tree-ssa-loop-manip.h
! 1d47300b20d7cd6f648c9fa82bac9e17  gcc/tree-ssa-loop-niter.cc
! ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
! 1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
! acc4aff264e3f0e53b0b258a37163e6d  gcc/tree-ssa-loop-split.cc
! 5b01b125f53e8b950350c0cd3cb6efd2  gcc/tree-ssa-loop-unswitch.cc
! 55ae2e77440663854644a5c55e444332  gcc/tree-ssa-loop.cc
! ee1eafa40cd3c1d5777881a232cc123a  gcc/tree-ssa-loop.h
! d382a50be04b80ec69bfc154e045794a  gcc/tree-ssa-math-opts.cc
! a2aa940aaf235d855f0a29cd853cd161  gcc/tree-ssa-math-opts.h
! 09cc12675477c15773525c18f05c8887  gcc/tree-ssa-operands.cc
! dec9c71d0caf6496e2b48ee295c14dd8  gcc/tree-ssa-operands.h
! b31730c7c877b1d6d8734b51ce3d1b29  gcc/tree-ssa-phiopt.cc
! a5f34e36dee1bef8e82d05d782b00345  gcc/tree-ssa-phiprop.cc
! 05bb01cfd5bba122432b6b8644783776  gcc/tree-ssa-pre.cc
! 8c4cb601d98c97971af9d097d48b5ae0  gcc/tree-ssa-propagate.cc
! de3b298cc003003bf8914ebfcdf63f2b  gcc/tree-ssa-propagate.h
! 014004bcac4bb2a667fff24522640ec1  gcc/tree-ssa-reassoc.cc
! ea6d5ea2f3442b7c3f3a8b3356e827ca  gcc/tree-ssa-reassoc.h
! c79a463f5716f7431d9f6e3c4082cfc6  gcc/tree-ssa-sccvn.cc
! 545f646c7c717bb603b5eb8e283f414d  gcc/tree-ssa-sccvn.h
! 46d17810ce8ff6e8a1eebf89645eb941  gcc/tree-ssa-scopedtables.cc
! 1da39bc41633a7721b894ea76af3f6ca  gcc/tree-ssa-scopedtables.h
! cd77911481fba79d71bfa0d37ab5c51c  gcc/tree-ssa-sink.cc
! b0c107ee22f3f20de79434e3ca50cf00  gcc/tree-ssa-strlen.cc
! 99d54f633ea0ea6b7eb29b8647a88ae6  gcc/tree-ssa-strlen.h
! 81296e36c5bc6ac73a7061046ee86aba  gcc/tree-ssa-structalias.cc
! 80f77499d5bbd2cd86abf5ae62a0e6e5  gcc/tree-ssa-tail-merge.cc
! 7d4eaa3828d8666a6bd7e6af8f65adc4  gcc/tree-ssa-ter.cc
! b10f3dee35565bc7bd7b5888c46bdecf  gcc/tree-ssa-ter.h
! 4fbd9d7ecc226a9bc1074a9e40fb6eb3  gcc/tree-ssa-threadbackward.cc
! 1caec8c8b4d11d6fafd1fb1dc2ca0787  gcc/tree-ssa-threadedge.cc
! 29f8a8377a5b70554ebe265135d26f9b  gcc/tree-ssa-threadedge.h
! c2bf589aa6dbbab6162ad787e65d4665  gcc/tree-ssa-threadupdate.cc
! 9374cd1cb2c7b3cb8a499119952cd8d1  gcc/tree-ssa-threadupdate.h
! 8926c9b92bf2f02d7f75e8cbe90b51a1  gcc/tree-ssa-uncprop.cc
! ea0e04b213af36875d65dfad1ceb551f  gcc/tree-ssa-uninit.cc
! d321f77cedff172e8a56e41eb8499be1  gcc/tree-ssa.cc
! 961ccaf19ca46eed92d55c3f060ed606  gcc/tree-ssa.h
! a934571676e69c3dcae6c6fc9f448ff9  gcc/tree-ssanames.cc
! ce4a3f1270657658dda770d6632bf58c  gcc/tree-ssanames.h
! c46ee145b917a2cc00062d238597ff66  gcc/tree-stdarg.cc
! 72a5920ffb9e570e29ba265bb506db31  gcc/tree-stdarg.h
! 7fe8322f3c93f35b456401ac8d33ce0e  gcc/tree-streamer-in.cc
! 5131cc364eb717c3d0a755443d198f1b  gcc/tree-streamer-out.cc
! 7cda0dde16b638ec52a280efc5c4eb85  gcc/tree-streamer.cc
! 6b542393d2cc1446541757996166c746  gcc/tree-streamer.h
! 7c14f981c2baa34566ab0be620ac617a  gcc/tree-switch-conversion.cc
! e52dd1666766e097473010a395e05b72  gcc/tree-switch-conversion.h
! ff0ac55bde82f5e21ae65ccdbf2e13f2  gcc/tree-tailcall.cc
! cc38d6e99e2a5089f84de9a8f56650d6  gcc/tree-vect-data-refs.cc
! b649d58dc08f4c2ba87ae9b32243319c  gcc/tree-vect-generic.cc
! a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
! 02ac6d776f8793a95505908d7d148cef  gcc/tree-vect-loop.cc
! 7ab93074a98aa287ba55a5656cd28374  gcc/tree-vect-patterns.cc
! 1a64cd5c04dc783eaac9e6306a28f940  gcc/tree-vect-slp-patterns.cc
! ff45d085971eddd6b822db9442f340c3  gcc/tree-vect-slp.cc
! a25bcd96a9f40ddc65d5cc7ae5246490  gcc/tree-vect-stmts.cc
! 795c5280c71f566f4b3e8c7fdcc3b609  gcc/tree-vector-builder.cc
! 250ce9e7ca93bb776afda377af2c190d  gcc/tree-vector-builder.h
! 004410d7d8185eeac071120983339e48  gcc/tree-vectorizer.cc
! 377acc69a0b6f7a2d2f563f515645002  gcc/tree-vectorizer.h
! c3cca16e183462f0251f8840ef073def  gcc/tree-vrp.cc
! 01b6633a647a8aeca196fc6d0021e4cf  gcc/tree-vrp.h
! f6080aecd85b4cef2431eed93b16e8e6  gcc/tree.cc
! 110668da7614fc11045af4d047706a7a  gcc/tree.def
! bd976d539f03b9f6fd9501087f38cbec  gcc/tree.h
! b157222cc904eb63d41484795109c2ca  gcc/treestruct.def
! fe94d833acf63e837f3a8d762563d0c2  gcc/tristate.cc
! 9722b7f042d9cee67320eae1705797f7  gcc/tristate.h
! 24f6548db1553ffed8124299cf7ccd41  gcc/tsan.cc
! 920894f4341831c4c35247d77eea6684  gcc/tsan.h
! 24984b2206d772c2e142e3cf04fe612d  gcc/tsystem.h
! 6b805b7fdd5bf57cb4f2146d63a77376  gcc/typeclass.h
! b77dc0dead8afd9c6b408bcc31a1ada7  gcc/typed-splay-tree.cc
! f63cbceb89f9ec25c3226002dc0bd903  gcc/typed-splay-tree.h
! ce3bb0cce55537d5b346c541e4d0b48b  gcc/ubsan.cc
! 4cdb47a1f6238f865607e70f975154b6  gcc/ubsan.h
! 482a82ae05017582742b1e1bac54126a  gcc/valtrack.cc
! 56458b9a0e577cf4083be8b5b11eccdd  gcc/valtrack.h
! da79a1de8d345ce48447ceb8adf26496  gcc/value-pointer-equiv.cc
! 468a16f013bdc6f82cca1c8abcda393f  gcc/value-pointer-equiv.h
! f12b81e07a2f5e5e2f266fc5d3248347  gcc/value-prof.cc
! aa1c6012dd4232e0d369debb9ec3baaf  gcc/value-prof.h
! 8d7b1be6f125a48a6857560dd0fd1913  gcc/value-query.cc
! 83d59418fff11fd578a7c29d81e32980  gcc/value-query.h
! 99d2bab52e11e5d09401537967943588  gcc/value-range-pretty-print.cc
! 4f541ad031fca23f1c99a538bd24c1dc  gcc/value-range-pretty-print.h
! 9bda5e7cba55b97851f024f76bba1848  gcc/value-range-storage.cc
! 871afa6374e267541b255eede18dd38d  gcc/value-range-storage.h
! fc3a5444ab2f7b11e87144ab56a71466  gcc/value-range.cc
! fd8293057f64c6f22290d588535d3260  gcc/value-range.h
! 6bd9f193e6f88cb950105bff4c176f41  gcc/value-relation.cc
! 469a7a97b1112ecfe2c1b5be79fbb00f  gcc/value-relation.h
! aef2f0cae53c5edfd778280219b466a3  gcc/var-tracking.cc
! 1909ece5e104e9a154435769b30ab299  gcc/varasm.cc
! 79de1a72d196b7455a702ff25852c608  gcc/varasm.h
! 7d462024f7c2b3043e80201d7e1edd3e  gcc/varpool.cc
! def1e50c6aea3c6c564292eb4416bb39  gcc/vec-perm-indices.cc
! 5c88eaa48ae345e419488b1bb0c27fdd  gcc/vec-perm-indices.h
! bb8d04c4e68c6b4518199de46e56faeb  gcc/vec.cc
! 1b1e0aaf0ee35c5d2aea1d5d327843e8  gcc/vec.h
! ad835c61b5aa28c3f501e0b335cfd8b7  gcc/vector-builder.h
! e9e81f6468a4d8def6380d5c73383508  gcc/vmsdbg.h
! 46441fdd05b5cf12c9c2b11ce1a04f46  gcc/vmsdbgout.cc
! 499cbc0538e5c2d65f5c143c86b59213  gcc/vr-values.cc
! e460830a86e9a9a754fcdc3352b86ed6  gcc/vr-values.h
! ff26c41ea07360558ce5b1efed5c5d8a  gcc/vtable-verify.cc
! 531ee320a86188a0112184274dc1b80b  gcc/vtable-verify.h
! c9cecb16413384a7614bb3deebc7f07c  gcc/warning-control.cc
! 78ef4dfa05aa4d30e6f93d1dcb371065  gcc/web.cc
! 33e4f19114f1719b26de8e9ae9776b0c  gcc/wide-int-bitmask.h
! a41305f34267c48fb3bf104de54433ee  gcc/wide-int-print.cc
! 92f36595a6c832fc2041b44284214941  gcc/wide-int-print.h
! 1363876093f5569dbcc0e5bad754a71e  gcc/wide-int.cc
! 6095b48774ea6dde35d1de3b1d901611  gcc/wide-int.h
! af01b123dbd2c04438de834147a719e3  gcc/xcoff.h
! 38f0f0eb6c5932f4fb7067c829ce3b57  gnattools/ChangeLog
! 3e149f46f7f39c4f49e3e3449af997a3  gnattools/Makefile.in
! 612bff48e9d0bfce4a8a8b2ce0e136ae  gnattools/configure
! 5904825aa8ada9f931733a205c8ed847  gnattools/configure.ac
! 7e665c17fffff48c4c4c220afcfe5309  gotools/ChangeLog
  d0cd4560ae9ca95137adac2f96734dfc  gotools/Makefile.am
  a9620fe98e0c9bf3a5beee26347a0a27  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
--- 117113,117356 ----
  e42076aeff1c5ac155a88db5b1993d38  gcc/testsuite/selftests/x86_64/times-two.rtl
  195d431640249dac1928ced4d93ecb76  gcc/testsuite/selftests/x86_64/unspec.rtl
  4f2cac6fe70242fd7fe19fc4905f4d47  gcc/text-art/box-drawing-chars.inc
! 5d65dcbc77e136bacdbafd25df3f5adb  gcc/text-art/box-drawing.cc
! fa30a9d397e3ed1585af5280c4658965  gcc/text-art/box-drawing.h
! fead80058159d8074c0d24ca1945e7eb  gcc/text-art/canvas.cc
! 8fcc10845621803f6958fd51f77a95a9  gcc/text-art/canvas.h
! e176c0fbb7714cb48455fa7550ec6452  gcc/text-art/dump-widget-info.h
! 5d4a60ae905612eebc214f6cbba09542  gcc/text-art/dump.h
! 5e6207696eb300e6410fcc55046c911c  gcc/text-art/ruler.cc
! a8258abe100615e51bde1b34ad4b5faa  gcc/text-art/ruler.h
! ec0b84409192065e3ef03fbfec97ffa6  gcc/text-art/selftests.cc
! 7322dcbdf178da68eec96a7835bd53f3  gcc/text-art/selftests.h
! 69026bf1d3f1a90fee46652559c34534  gcc/text-art/style.cc
! bce248223649a6ab3728a39820ba7be4  gcc/text-art/styled-string.cc
! 7af207c9de9bab87dbdabe6692c89f58  gcc/text-art/table.cc
! 87dbca160262db76a2d61735729e4ade  gcc/text-art/table.h
! 40c616db81bd3d8d841c0373078ee3de  gcc/text-art/theme.cc
! 4722c419744dc2ca3b1e6b392098f347  gcc/text-art/theme.h
! 219589200a6178a0e8240644e3e33ee6  gcc/text-art/tree-widget.cc
! 910817a83a8d6f92b99b4c0cd1992f46  gcc/text-art/tree-widget.h
! fa5a9840f86de5ad789a8727d33117b0  gcc/text-art/types.h
! ad8c6beade8bee4ebb036b74eab322be  gcc/text-art/widget.cc
! eca9bbca0b49f380fb852038e80d51b2  gcc/text-art/widget.h
! edcd6b4cfe25a7233b7c7b59f0889ef4  gcc/text-range-label.h
! 680821cecba95fb05cb645e1d167482a  gcc/timevar.cc
! eb78bf31928298aa4e7de8a68cb0dd5a  gcc/timevar.def
! d1eee141f10cb25a673cf78888396745  gcc/timevar.h
! d1b0a5c87138db907e0b2539dac49875  gcc/toplev.cc
! 1720dc69e58e480830de71ecb3eb364d  gcc/toplev.h
! cbb8fb6fcd7138a90fc489b10fe3c862  gcc/tracer.cc
! a58a166bda01c9a970218d3f6c5e330f  gcc/tracer.h
! faec002bae61e7eba3ea45251fbcbc30  gcc/trans-mem.cc
! ffb9a5436754a7e1571b88f970f08891  gcc/trans-mem.h
! b4a6da1471f279353aaca4956c18cdea  gcc/tree-affine.cc
! bcff760f6710b9047412aba72a381983  gcc/tree-affine.h
! 527c9fa3845b2653cafc14c109129179  gcc/tree-assume.cc
! 918b3dce8ecc8579127255abad77605e  gcc/tree-call-cdce.cc
! 8724b2c8ddca47562f380d6bdc4b9ee3  gcc/tree-cfg.cc
! 591222e5199894b9b5d23b1822f7e309  gcc/tree-cfg.h
! a48b85120f042a19d52da08d304cc287  gcc/tree-cfgcleanup.cc
! 4357345e39068e97ced26f06af8109a6  gcc/tree-cfgcleanup.h
! 08af477af99a77369cf1e05fc6fdf3e9  gcc/tree-chrec.cc
! 0e4a484c6387f9be0a506783637432f9  gcc/tree-chrec.h
! 8bf7d3cd5470b24f391fbdaf27a7fa3d  gcc/tree-complex.cc
! 1a4cfcc258f7e90de06692e266fb2918  gcc/tree-core.h
! 77244f55dae576a255f5b69b70774e54  gcc/tree-data-ref.cc
! e43a555cdaab9a97ba3910364910f865  gcc/tree-data-ref.h
! f01aeac56dffd44808096094e2bf76c1  gcc/tree-dfa.cc
! 7ccb47a2df405aa08b45cb7f5fca6385  gcc/tree-dfa.h
! 655c25c110d01be0298c1b8c922bf2e1  gcc/tree-diagnostic-client-data-hooks.cc
! 2e869fb8c2c129d455393a91b03e0982  gcc/tree-diagnostic.cc
! 21e7c804e59b1471314ee9c773a41ed1  gcc/tree-diagnostic.h
! 061a86cf1b2c01bdde3dc32a0701f5b5  gcc/tree-dump.cc
! f9731b5179d6c364587220c2aea59a3e  gcc/tree-dump.h
! 979524586cd9e564f98af3c19702737b  gcc/tree-eh.cc
! 4687ad88ec16848852a4d3f21bafdeba  gcc/tree-eh.h
! f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
! e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
! 7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
! e14744b5f500a4c01221207e438177b8  gcc/tree-if-conv.cc
! 002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! dbe6b6114696eccb16929a6a255e4cd8  gcc/tree-inline.cc
! 326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
! 90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
! ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
! 71aa2d4206ac8bd978b5efd19148dd74  gcc/tree-iterator.cc
! 1a3fc26573e4e592efe69f41168a65fa  gcc/tree-iterator.h
! 895dbd14591fc7db545d14d807d8005d  gcc/tree-logical-location.cc
! 80af8ac0e9cecde1b6fc0ea6124521cf  gcc/tree-logical-location.h
! 809e077fea6aa1e38be693ae0a16dee1  gcc/tree-loop-distribution.cc
! 62502d6fd9aa927353d7437dc2a6da17  gcc/tree-nested.cc
! b9bad013f5186a6cf78fe8adbe457945  gcc/tree-nested.h
! b32d8d9d2ed18752b632ccafa2e29737  gcc/tree-nrv.cc
! e29c56f554dbdf5acd832105e721212a  gcc/tree-object-size.cc
! 2726009c7d301c88845d73276d4dc3b9  gcc/tree-object-size.h
! d6f70ceb8f53d3be86548b178e50c8e0  gcc/tree-outof-ssa.cc
! b9d636bd9641f3038bbe37a70684e18e  gcc/tree-outof-ssa.h
! 9d8acbaaafb1fa52b064abcc90b3b50c  gcc/tree-parloops.cc
! beaa17685ead93eee17f6373d004c4c4  gcc/tree-parloops.h
! 316bf60cf7fdc1c96eb341a7f0b6bdc2  gcc/tree-pass.h
! 3c7e6c651df0a795a0b1b01ca9c75a4d  gcc/tree-phinodes.cc
! 460fc341cb2d78f53e0a27c81de36a7d  gcc/tree-phinodes.h
! ec93059a3a566b33ecd4779d2fd3b4ee  gcc/tree-predcom.cc
! 529cb4117fb3ff7fd899c570bd97e944  gcc/tree-pretty-print-markup.h
! de1b16517568fbc9dc329b653c6d6342  gcc/tree-pretty-print.cc
! fd4dd1219acc650a4f7855faa0097964  gcc/tree-pretty-print.h
! f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
! b2ea6fc51eae4a47de35dc40a3f0235c  gcc/tree-scalar-evolution.cc
! dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! 221a6a553d9f6f7ecbfc9061956add14  gcc/tree-sra.cc
! c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
! 3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
! c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
! b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
! 34e846f14e9bc92a7bf94b3df502bd99  gcc/tree-ssa-alias.cc
! 9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
! 8dc44d35f782ba1dee0da995849e4e40  gcc/tree-ssa-ccp.cc
! 0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
! 56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
! 44217fe298d550aecd4800f65391c931  gcc/tree-ssa-coalesce.h
! be605b5b6cac7c418bd348b54f9d47cf  gcc/tree-ssa-copy.cc
! 89e3faeb392cc74a15ff8f3c43ca5c2a  gcc/tree-ssa-dce.cc
! 4b3c2e3456bae55a01edd98396b099a1  gcc/tree-ssa-dce.h
! adfc498b0c97a8123c02d418757df496  gcc/tree-ssa-dom.cc
! 0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
! a423873e721bcf96a6e1dfb29009f912  gcc/tree-ssa-dse.cc
! a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! c2bfee2b31ff0129fc730cb3ac7a0137  gcc/tree-ssa-forwprop.cc
! 417b731d1c8923a0eb41474c924dd760  gcc/tree-ssa-ifcombine.cc
! 488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
! cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
! 02e9a1bf25d500979aa57640611d72bc  gcc/tree-ssa-loop-ch.cc
! a794bc1a5b1166ff1ea0649f15c6e440  gcc/tree-ssa-loop-im.cc
! 21088fa37f899ccd0056bf3486157db9  gcc/tree-ssa-loop-ivcanon.cc
! 16adb8fe3a072acbebf0e97867daeb3a  gcc/tree-ssa-loop-ivopts.cc
! 1f70c217ef5bd5f655512b9232754870  gcc/tree-ssa-loop-ivopts.h
! 71ebf1f6c8d82b1fdbca6c7aa3bd14cb  gcc/tree-ssa-loop-manip.cc
! fbcc93539b376489c1256eb8cf2d4800  gcc/tree-ssa-loop-manip.h
! 66f54027c40abbb5a8ce78570af5f508  gcc/tree-ssa-loop-niter.cc
! 189317c0b965ddd0ee491f8e45af4b0d  gcc/tree-ssa-loop-niter.h
! 523a4b7c5b7113009b3b1f0f514d0cd3  gcc/tree-ssa-loop-prefetch.cc
! 164c07dbb4079f7d4f41eb0101ed3193  gcc/tree-ssa-loop-split.cc
! 57dcd3919dadb6f23e2bcefe55f7cd14  gcc/tree-ssa-loop-unswitch.cc
! 2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
! 538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
! 819958f599a9ce6affe2c76279435a33  gcc/tree-ssa-math-opts.cc
! c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
! 0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
! da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 5a37262f6f582b98a264d96069eb27bc  gcc/tree-ssa-phiopt.cc
! 0864f59d85045caee0a643f82fa6d20c  gcc/tree-ssa-phiprop.cc
! 45a34ce7f2c6b00085d143bf72328d74  gcc/tree-ssa-pre.cc
! 207e8eba5552b33b5aae2de6e7c1f35d  gcc/tree-ssa-propagate.cc
! 299c5d8dabcb4a4d30bab51fbedc4e68  gcc/tree-ssa-propagate.h
! 233d764ee886ccb3223d08a55f2a1ddc  gcc/tree-ssa-reassoc.cc
! 258492cd7ef04be49374ea1e670f3b5b  gcc/tree-ssa-reassoc.h
! 84150cb9773b06cf98b1d2faeb5f28f2  gcc/tree-ssa-sccvn.cc
! 4b05103d4706bf37cd0bc9f018b40965  gcc/tree-ssa-sccvn.h
! a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
! aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
! 1565dc0d975d174e5d53e4889ab223e3  gcc/tree-ssa-sink.cc
! f8a95ebe86d335b810e43ab71cae5b43  gcc/tree-ssa-strlen.cc
! 817cd7b593b9ca11ac7464ee683d8f98  gcc/tree-ssa-strlen.h
! c4dea4a2fc92a2897d2e39b1c6157c8c  gcc/tree-ssa-structalias.cc
! 8236d4d91b8701a8daadc2f8a12d4752  gcc/tree-ssa-tail-merge.cc
! 18ba2469cfdfbd297fe2b0120e69a84c  gcc/tree-ssa-ter.cc
! 3094df71c80e187685e4e97e428d64f4  gcc/tree-ssa-ter.h
! a4df6ac315a465c83784de448bd15a67  gcc/tree-ssa-threadbackward.cc
! 33619340feba718aa0da2ca4ed04a573  gcc/tree-ssa-threadedge.cc
! cd9ecd37945746b6458a78b083cbe1b1  gcc/tree-ssa-threadedge.h
! 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
! bf137326f0a436ec66b505f490068cd7  gcc/tree-ssanames.cc
! 339bce59375d7679ec019cf010b6bcbc  gcc/tree-ssanames.h
! 5fa0d7c6143cd9e39c30840b9996fa30  gcc/tree-stdarg.cc
! 9817789b6289e73955015beb57c609b1  gcc/tree-stdarg.h
! 3036d8f359941475e5cb3cfdd715cab2  gcc/tree-streamer-in.cc
! 58d5ce00761a2f46b9daffbc63a9b1d3  gcc/tree-streamer-out.cc
! 22cddc57dea71a3e5c57e033b6f86476  gcc/tree-streamer.cc
! 6714826bb9cd5f171a08cbabcb1da8e6  gcc/tree-streamer.h
! 899a002f8aec509c2457b02d6c7634d9  gcc/tree-switch-conversion.cc
! 834999e1b44b915632e773927cdaa397  gcc/tree-switch-conversion.h
! 193fbc15c5ca43c6f96cc1fe8e1c8bd8  gcc/tree-tailcall.cc
! 3ca7fb9c7d26183dd1366c776301506b  gcc/tree-vect-data-refs.cc
! 7ac587d2dd45a9437f9daa1b6409dca9  gcc/tree-vect-generic.cc
! cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
! b9d89c650ed1138f6a5980a0659a9c11  gcc/tree-vect-loop.cc
! 77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
! baa70369c21f662d5e61d1296052d231  gcc/tree-vect-slp-patterns.cc
! bc4ba5e0678b5242ecfb7f7850f86405  gcc/tree-vect-slp.cc
! 2050252e893665161af61ae6b97affc9  gcc/tree-vect-stmts.cc
! c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
! 258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
! 6a5457c324d4279acbd82f147f1dd823  gcc/tree-vectorizer.cc
! 877ff8eb7e9c72db9e151b93bef816b9  gcc/tree-vectorizer.h
! cb2defb55935eac3f24944ba204230f0  gcc/tree-vrp.cc
! a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
! d5ca524138d04514e07eeb06df2087cd  gcc/tree.cc
! db4e97cc6f33c2fe3aafe8676fb649a0  gcc/tree.def
! 271bf6d3776051f12b554ddf50123eda  gcc/tree.h
! b642c83968cda285afc700da2fb276d5  gcc/treestruct.def
! 84205f5a5b424f30ce8c527b234e3f94  gcc/tristate.cc
! ea37ace5dddab6f4b2b9608516bebc35  gcc/tristate.h
! cdd0eff7f0012763db97aea9ba45a9b7  gcc/tsan.cc
! 54a1a5845ab18febf3e33025acf274a5  gcc/tsan.h
! dc1a1767ff7dfd18c94f3b0889416869  gcc/tsystem.h
! 899f310edfcbe0de08b2768cde16445b  gcc/typeclass.h
! d2d91dc800e8c43d824d4dcf180e3a37  gcc/typed-splay-tree.cc
! a4d47cb279dc7287caea65889ed72175  gcc/typed-splay-tree.h
! 293e6a60c3c268d0c0c4c080e2c2d601  gcc/ubsan.cc
! a9422171692d7910cbbb362c686e1a69  gcc/ubsan.h
! 04f1055776eb53bdc0ad3db1e5b3531d  gcc/unique-argv.h
! 1255497d1969e733354fd083e9048143  gcc/valtrack.cc
! 49f39dce43af84ca2390bdbc73838582  gcc/valtrack.h
! 29b4be61b93022a43a9e126c00040121  gcc/value-pointer-equiv.cc
! c659567b46a45d5653d68c54b89e54f6  gcc/value-pointer-equiv.h
! 0db5e76c85aff0c1e0626bb73557b1b2  gcc/value-prof.cc
! a5465dfed701e79fa489b2bb9ef03526  gcc/value-prof.h
! df85736a75a28f2d961a417c6edbbeeb  gcc/value-query.cc
! 720dbd9f4a896b088fdcf04bcd6f460b  gcc/value-query.h
! 059762db0b1055bd987008c8461bc04b  gcc/value-range-pretty-print.cc
! 5ee1b56a5e76c505c40cf28eb30f62e6  gcc/value-range-pretty-print.h
! 6b536deb5ade6571e0988bf82fede1e2  gcc/value-range-storage.cc
! 0b17e8456f7912204776ffd65ac2da59  gcc/value-range-storage.h
! ae25a7fb2b68b33514306cbb4e4423a9  gcc/value-range.cc
! 016e5d0c82601b8a434c4a19dda4b9a4  gcc/value-range.h
! 549819b3080f1e267be1a0eddd4ba81e  gcc/value-relation.cc
! 9ecb4941bf4f8280d045adf518c3a64d  gcc/value-relation.h
! cba4500c3637e1d36913b20f1700d34e  gcc/var-tracking.cc
! 8c55316e80e8121cbbb962ad5aa4610e  gcc/varasm.cc
! 69f8e035a8548037bc8c8f7f854253c4  gcc/varasm.h
! e96ee31ef62fd5574909f9328fb29af9  gcc/varpool.cc
! 5958f38d462c8e23023f7b272b8b969c  gcc/vec-perm-indices.cc
! d9c4840a497d0e1f2063865edafe6e97  gcc/vec-perm-indices.h
! 3673f65e9bdf99c1f84394504fe13e81  gcc/vec.cc
! 822ba957eb7393c255541abaf7b3d15c  gcc/vec.h
! 54a3885ae2d326266cc13ab447394d8f  gcc/vector-builder.h
! 40fec2b7bbea0b654d0704244caa4e9c  gcc/vmsdbg.h
! c2784afc7476e44bc70100f7c350e07b  gcc/vmsdbgout.cc
! 33d29d6d32171e6ef1c77c4f29ed00e1  gcc/vr-values.cc
! 0901703123c4198bb16fc8076912bd2e  gcc/vr-values.h
! 9ce284cb128dc6f9cadddec86a09bb4a  gcc/vtable-verify.cc
! cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vtable-verify.h
! e3fa3f45e512510e34655f420629cbd8  gcc/warning-control.cc
! 1a7f6c34c7ef76ab65aa6ca9d5de17f3  gcc/web.cc
! 1fc5fa557891d7e14764b954513b9920  gcc/wide-int-bitmask.h
! 112f50026efc86aeff2023a67e87a688  gcc/wide-int-print.cc
! 6efef550b675aa93974df4fc59f488df  gcc/wide-int-print.h
! 88adca0d34004d3f3c8775540086085e  gcc/wide-int.cc
! 4fc8c5d5a4dbeb10715da964977f1c81  gcc/wide-int.h
! 818a3384157138e5a3f6fbc6368d2b11  gcc/xcoff.h
! f5d6dcdf7af758d330a544b76edff09e  gnattools/ChangeLog
! d8c97efb6bf9731cb774fb1b1b60a266  gnattools/Makefile.in
! 813c7b1a065693bfcbc0b340b658fa5a  gnattools/configure
! b76be6d8444e427c06e4f182aa4a6a18  gnattools/configure.ac
! 6459b683e3966f1ec92ef7e32453ec96  gotools/ChangeLog
  d0cd4560ae9ca95137adac2f96734dfc  gotools/Makefile.am
  a9620fe98e0c9bf3a5beee26347a0a27  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 109738,109870 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! fc480a1460b818140aaa58013c34882e  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
! 9f3a5acfd22da6e3019b3e658f324668  include/ansidecl.h
! 3af54607e8908b9a25ac50206d77b5bb  include/btf.h
! 6185785d6edcc0621f44a86cd4a349c5  include/collectorAPI.h
! 5a9888ed4255f31588a76ee127dd6012  include/ctf.h
! 6ef56b88d69bbb1fe82ffa5ab1856ea7  include/cuda/cuda.h
! c9618994867213337a5535613c121756  include/demangle.h
! 4dbfbdb58f8076555dc866922340bceb  include/dwarf2.def
! 615805a22a0f82b1dad969ee13c63feb  include/dwarf2.h
! c628ebc0ea0beba0ac91dfd784a463db  include/dyn-string.h
! 95b8536d385b500daeeff689d35ec010  include/environ.h
! e9e7e94d3511d3a0d1a15254b9dfefdb  include/fibheap.h
! 7619a54ef7f5c76f62e3469ad8eb66cd  include/filenames.h
! 75118fd6b66780ec90fc04b1336d2dec  include/floatformat.h
! 13847f0d03f568c1ee65f41519e9de41  include/fnmatch.h
! d8e683eb9fb99d9514c315532237cf1e  include/gcc-c-fe.def
! 50180fc2224dfebcc396b94b59c1aa18  include/gcc-c-interface.h
! c28ac4d10dc50a80291afb7f9125b99a  include/gcc-cp-fe.def
! 51a7a01e43722e0c981a017ef274e287  include/gcc-cp-interface.h
! 7790dd44076de5ec0875b1a881a30fb3  include/gcc-interface.h
! e9d19dd9b435a4ffa00d9d3834eb9ee0  include/gdb/gdb-index.h
! a91c36e2583b26f91c60ca55cdd6983c  include/getopt.h
! 4b2ce19c7ffd6675af33098fb40a1669  include/gomp-constants.h
! 6cad0cd1ccc6a8a0d66acc207b46799c  include/hashtab.h
! 18d01da8845d11d2091cf3787c4ad79e  include/hsa.h
! f9fafee2474590659930fb2d0db7be2e  include/hsa_ext_amd.h
! 9df4701c7f8f25d502bdadccbc97581c  include/hsa_ext_image.h
! 86e6bbc42dc6b2e5bcc6844f5e1f3cde  include/leb128.h
! 5ef355486f204d779722fd4342e76913  include/libcollector.h
! 2af7a025bc0fb20a44fd6470fe31f26b  include/libfcollector.h
! 29ca342b93573abc28015a22f940c551  include/libiberty.h
! 7da94de651e52b86ad4a2a02254deee3  include/longlong.h
! fd843ce7dd5e65bb382ba5d0347416ca  include/lto-symtab.h
! 1bb2b9db5433799904c7294a9dfa3291  include/md5.h
! 34f9c79707047a490421de8ceae21b03  include/objalloc.h
! e33f432344673e9c569ec8227e3af1db  include/obstack.h
! 6ce340672c134770b0826c01c9ee48bb  include/partition.h
! 9f8c66f98e49627e3869f90feb445e41  include/plugin-api.h
! c615795381af803cf69f709f9a9fceef  include/safe-ctype.h
! fc08a8d6ad86c94a4dc1b1b8b1a3348c  include/sha1.h
! ca1236f12460b411c5bb7644c8bf6c44  include/simple-object.h
! f30cb47d61951301f830a7f70506f594  include/sort.h
! 8f320017d6acc6e3fb4281309b2a4664  include/spincount.h
! e8d57e3886181daa03a2397a7e9c6c3f  include/splay-tree.h
! 08643019e25f4400b069d6607f06e74c  include/symcat.h
! 6b33663e4a1e540c13ed8592d45066fe  include/timeval-utils.h
! 28fdeaee50e88235669d681b1feddfbc  include/vtv-change-permission.h
! 53bdfdb5cd3c0c7831611602041cda52  include/xregex.h
! cff84a4d41fcb38381d11bfbdaf532f0  include/xregex2.h
! f02f51970dffa55eb022dbcba49feb40  include/xtensa-config.h
! a47ba919c019dbad38ca8ee0ac09d4a3  include/xtensa-dynconfig.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! bdc00e9eb897f61d71a79092dff16317  libada/ChangeLog
! 3865b131c71807b682068fa2ffaed669  libada/Makefile.in
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
! 52b66257eda901734263416f8d867e6a  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 73edf6a3f9eea5ee6967505e0e715c57  libatomic/ChangeLog
! cb5a6e372368f4afa173ecc87647f09b  libatomic/Makefile.am
! e514bb4dd510d23d6f74e14cb331d20e  libatomic/Makefile.in
! 7a347397f9951bf68e2c0f275e928abc  libatomic/acinclude.m4
  d93a7644df6ecd2eda448dcb5b1baeb3  libatomic/aclocal.m4
! 3d3048ae219d9c9e6aeec5594ae8ecc6  libatomic/auto-config.h.in
! 7513c6313189dc9719a9127b12495b32  libatomic/cas_n.c
! d7ce92a4b9a6b88a6ffc5ba0edd212ac  libatomic/config/aarch64/aarch64-config.h
! 19db11e739d5235119f920815e4a0ae3  libatomic/config/aarch64/host-config.h
! ea7bf4b5a7310563c4839759fe268a5e  libatomic/config/arm/arm-config.h
! 05255a71c9d7d685d5c5d6e5da3ba908  libatomic/config/arm/exch_n.c
  03721fea5b66271f6af702a80b072f47  libatomic/config/arm/host-config.h
  db43cf5a187a91251ef3198570679f95  libatomic/config/ia64/host-config.h
! ae3738f1bf2eb33529c1ffe8ac04ce13  libatomic/config/linux/aarch64/atomic_16.S
! aec99a2ee9445e8d1d519efe3c2b9e4a  libatomic/config/linux/aarch64/host-config.h
! 58ce7cf120a8905b0b16d6e1c74b377c  libatomic/config/linux/arm/host-config.h
! 08cde3dd5b1df871f9147a6676c15a0c  libatomic/config/linux/arm/init.c
! f43ccaf4a6908475442f71c22fd1b6d2  libatomic/config/linux/arm/load_n.c
! 1b55dc87ed8a9c33ca1b79cdea1b4b86  libatomic/config/linux/arm/store_n.c
! 77044b9af0dda3ea97c220b8e4f76954  libatomic/config/mingw/host-config.h
! b3d9101af5a4a47efa6a0171af5b43b5  libatomic/config/mingw/lock.c
! 8ddfcf71e87ccc8e8031184d0e8a5a16  libatomic/config/nvptx/host-config.h
! 35f41467515e9b75a7ce7f935d31a1e5  libatomic/config/nvptx/lock.c
! 357f183e4d67010c58e702d397a4c283  libatomic/config/pa/fenv.c
! 315dc962e5ca8b065b9008e675069746  libatomic/config/posix/host-config.h
! 52a800f2587856234a96fa0ba4ea6e26  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
! a2e7951082a2001bdd637b0607d36aba  libatomic/config/rtems/host-config.h
! 900a1c9ab627fa49537aad044d8e05a2  libatomic/config/rtems/lock.c
! ddd719ca2ac25946562c5740ca9f1164  libatomic/config/s390/cas_n.c
! ef3ec9807f60e990c80524624f0a898a  libatomic/config/s390/exch_n.c
! 4825ff8373cfb56ba83c1794551fb3e4  libatomic/config/s390/load_n.c
! ebb32b78998e774265377f56af086e2b  libatomic/config/s390/store_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
! 56aff474dbbee931e3a1612b47ebad0e  libatomic/config/x86/fenv.c
! 0e87c604701b35da88c8d22a43ab1339  libatomic/config/x86/host-config.h
! 1b91f112e46c03b15799381a0a1d930f  libatomic/config/x86/init.c
! daaf8e6af2b785591808f9e2a918889b  libatomic/configure
! 9d534c77c0d6a63a97a8a7016c6f1f49  libatomic/configure.ac
! 6724c6ea7b79825c897cc2050028e728  libatomic/configure.tgt
! 4acafd3c5b63bbe2b453f71808b11b88  libatomic/exch_n.c
! 8f439cc63591932ec5727b3af1b18bd7  libatomic/fadd_n.c
! ee6f02fad9bd551a906477f16740578f  libatomic/fand_n.c
! 612ae41a683ed7128bea17c1d80d5896  libatomic/fence.c
! f76f92e8454b6bad9f5a226cfebf05bf  libatomic/fenv.c
! 2939db87e049993b583497188f079e6d  libatomic/fior_n.c
! ff63110269ac9581cb75684664c44c99  libatomic/flag.c
! b3ccae58518e27bb730ed84c99a2eb0c  libatomic/fnand_n.c
! 0747775af2c1d1399c4f651fb4a86df6  libatomic/fop_n.c
! 834a4e99e9b5231aaa54e4802aecb241  libatomic/fsub_n.c
! fb7579412eac2bf65459985ea4c7f320  libatomic/fxor_n.c
! 09348de7d7f2980cf21d5ef938e8cff7  libatomic/gcas.c
! 6818a9e56901789f198f5094fd21236c  libatomic/gexch.c
! 9d0505358178b658f069bb67caef5df4  libatomic/glfree.c
! 484bcaecfa1d5976e0a952f638308b6e  libatomic/gload.c
! f9cc593c94fe9f2c87252cdd3291dee3  libatomic/gstore.c
! 2fb89fce090c35ec17fb7c041bbeaeb6  libatomic/host-config.h
  0e7ef9ed2b60ec1c9afc38701d815f6c  libatomic/init.c
  2fe463a1aa0855eab0961f927f300752  libatomic/libatomic.map
! 3e6cd9948a890ec9449be56be2cefc6e  libatomic/libatomic_i.h
! 73bdcc11c5bcd17146b905608ddea25c  libatomic/load_n.c
! a0d37a72dd0092f3931201dc4ebca283  libatomic/store_n.c
! f94c51050b9929da1b0dc67e9f01f53a  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
  7f7cbf5cf0b5b7eaf13a26b895cabed6  libatomic/testsuite/Makefile.in
! 68916cf6b5db990548ae36b9e4f310c1  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
! 81c63aaed11e9fa390e8aa2cff877bf8  libatomic/testsuite/lib/libatomic.exp
  9eab2bd493af1db9811d52bbbef2a805  libatomic/testsuite/libatomic-site-extra.exp.in
  6b8763cc8b07ca01040138d742a984f0  libatomic/testsuite/libatomic.c/atomic-compare-exchange-1.c
  773f995ba0a3ab509251361826397852  libatomic/testsuite/libatomic.c/atomic-compare-exchange-2.c
--- 117361,117493 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 38a18f8659e25c2b1438a397888a76d2  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
! 44b123c52a2755c9e6bf43ec0c33ae49  include/ansidecl.h
! 4c0c9fd5dc8de59626a8749c4c8c41b1  include/btf.h
! deab60fc60574f76d56ea615e8341b4c  include/collectorAPI.h
! 5d8e137d3cff8787494ce76cbea388dd  include/ctf.h
! 8ed11de640f9d9a4694534e118bd8500  include/cuda/cuda.h
! 3ebaa744e5f7f023a1a5038522fd3652  include/demangle.h
! c921e8970575df1605fb70e1e24bae3f  include/dwarf2.def
! 9cabd28208c99053b4f488bb2c78a1d1  include/dwarf2.h
! 9a8d02c6800f19065263f88b1fdeb9a8  include/dyn-string.h
! 12539e5b374666e50faaeb47220d8076  include/environ.h
! 52c36b509000f892e0feacc84c150601  include/fibheap.h
! 6fb0ee9244cf15b69a83cd2284c77992  include/filenames.h
! 66ea8a21ee1ef9ef0ed8b831e6d5fecd  include/floatformat.h
! f8db272e4c9e0119ab8dd17ca5b0a548  include/fnmatch.h
! e47f5558a260c7e38f185fa591bb6410  include/gcc-c-fe.def
! f69c85bce2eefec959834977b0e363aa  include/gcc-c-interface.h
! 5ad0a15abeda5819e394974efd0263f5  include/gcc-cp-fe.def
! 0278c9d4267155f71e5858cf4bfe2666  include/gcc-cp-interface.h
! e27e2525cf1fed8c89039e133b1e2c85  include/gcc-interface.h
! 694b878ad158b166bb65de38ff902f39  include/gdb/gdb-index.h
! c67dacb4baed3b58603898c91e8b3a43  include/getopt.h
! 0419604485a5e70c17c71a998a9875a6  include/gomp-constants.h
! 94b47e7bd114c7bfa9d2eb1ffc606526  include/hashtab.h
! a60e7538de6c6058ce9da2c087d4f509  include/hsa.h
! add6cc404aee74ef33ad44cf7930a899  include/hsa_ext_amd.h
! 5443314035a5aba09d31390d9ad93c07  include/hsa_ext_image.h
! 96744aabb8a4171ae991e2569e025202  include/leb128.h
! 91ecff44973c64cfdfc2e3c412c56a80  include/libcollector.h
! 71ab4f2b87330987580da553ce63f7c7  include/libfcollector.h
! c63a340dfb8729ab69f6a8b171fa079e  include/libiberty.h
! 00dc0cc7a7a0b63fdb4677bf86248243  include/longlong.h
! aed43c5ed4317377043b964bab985093  include/lto-symtab.h
! 4182cc168d3cd5762aa0182ebb59c5a5  include/md5.h
! 94050e374a4cacc270466637b4eb9411  include/objalloc.h
! ff2afb6e18e2660b83f273864c733027  include/obstack.h
! 09addb93b0b9c63f4bdeb6bf934ab26c  include/partition.h
! 29cf9829bca0f151fb1cfea46ece4186  include/plugin-api.h
! 69172c04d0735503426ec7fd95573e4c  include/safe-ctype.h
! fc2df43b64f3c1a4924b22106ff7d74c  include/sha1.h
! 7b0f69b15b5da52da4379f4fdb27e196  include/simple-object.h
! f8b4f5454d086c3d0372a23fed1c635e  include/sort.h
! 9fc868b5c9909f3474cb32bbcd2b5adf  include/spincount.h
! 1ed7aab752346ae12b4df4d8b7a632b1  include/splay-tree.h
! 0ca1e700ba0de68a5dc58c3d51f6b59a  include/symcat.h
! 90b8301429126f9ccfe3e3c6f35393ae  include/timeval-utils.h
! c6533b9e7c5979bcc3a5f7da74f55068  include/vtv-change-permission.h
! c7399bbb7eadd31d7cd04991cd79c238  include/xregex.h
! 0d556555dceec744010f4d165cbb7f68  include/xregex2.h
! 7127faa31e0d81ec43716b364e6b9577  include/xtensa-config.h
! 8f560be172a91474b12b0b99071f2f02  include/xtensa-dynconfig.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 2b35b69b4da9f6a06c9166e882475f34  libada/ChangeLog
! 66b34d64be399ddc98db2b4a844f1911  libada/Makefile.in
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
! c01f38de8270d558b8d3ecac839d3bbf  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 6f85838274ef078aedf3ad4d345c758c  libatomic/ChangeLog
! 71c1b6c36a41008494bf13a4a0863768  libatomic/Makefile.am
! 4edf5a5514d9eb3764c1536ce393dfb2  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
! 47e67f1d1995ffc086d631418b35e4e5  libatomic/config/aarch64/host-config.h
! df4094b0f1576147b1f6d54889166791  libatomic/config/arm/arm-config.h
! 16385c95a28052bf9db630621d59c675  libatomic/config/arm/exch_n.c
  03721fea5b66271f6af702a80b072f47  libatomic/config/arm/host-config.h
  db43cf5a187a91251ef3198570679f95  libatomic/config/ia64/host-config.h
! bf134c0babdb8bb113d4d63a01162f39  libatomic/config/linux/aarch64/atomic_16.S
! 2f43e008c443664a39a6c74ea8e16a19  libatomic/config/linux/aarch64/host-config.h
! d13087e4644f9fe5d80788757ff46e68  libatomic/config/linux/arm/host-config.h
! 423779db599c13fc9af18b2ef208173f  libatomic/config/linux/arm/init.c
! cebfcb10a591e79fa8fabc132673577c  libatomic/config/linux/arm/load_n.c
! 15f5997bd29a7b4b007899457a03b0b2  libatomic/config/linux/arm/store_n.c
! 6ed25756e0492f02ca47ec117ea4d53a  libatomic/config/mingw/host-config.h
! 2ed4665fde40bfdee850415625f915f0  libatomic/config/mingw/lock.c
! d0c7d25c393629560987b67f16af04ca  libatomic/config/nvptx/host-config.h
! 2930d2e278a96ef34fad484963429d0e  libatomic/config/nvptx/lock.c
! 30780f64375350f4557c4d5240c938c5  libatomic/config/pa/fenv.c
! beafc816f562799cb1c96cedd0868a8c  libatomic/config/posix/host-config.h
! 30d6d70558843e634ec42a1e5a42f15b  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
! 90a0aa2e9a02095e3db10e64efd5c42e  libatomic/config/rtems/host-config.h
! 7e5328161a2ee34117a962b38365ec39  libatomic/config/rtems/lock.c
! 8e74ecc23d45eaab9c622e8a312dd96f  libatomic/config/s390/cas_n.c
! f0a2e8ff5e30346719c82c7a9c8d8aed  libatomic/config/s390/exch_n.c
! 82dba4f06fbff6523c3cc6bfdd735ce7  libatomic/config/s390/load_n.c
! f9861af6f0d6b4cb98b89c1446a1a1e4  libatomic/config/s390/store_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
! e40da0e8515ee6996456294b571e5572  libatomic/config/x86/fenv.c
! e3229b3119558c9d6d6d8f8676d4f1ce  libatomic/config/x86/host-config.h
! 6d8f1d8fc6da675bbeacfbd55dca52c9  libatomic/config/x86/init.c
! eeae1d7549bafa5c8d08aa3bbdb286ad  libatomic/configure
! b8d277f019a2b66002a2fd6d6fd24e6e  libatomic/configure.ac
! 5b299d3064f37df660e846692789df95  libatomic/configure.tgt
! cffc539e08bc3149260124f3eb09e1a1  libatomic/exch_n.c
! 35ea85a90d52ccf9efaf3179f1201076  libatomic/fadd_n.c
! 5934b0ba904c11c743af25059a8b7092  libatomic/fand_n.c
! 547bc14f53807cbdebd869505b47918c  libatomic/fence.c
! 1238e0ed9a041353d0ba26f0e38ef0a3  libatomic/fenv.c
! f16cd69491b524195cfb14c08c9eee9e  libatomic/fior_n.c
! c0254083166fd1c08297afb0fa5b9f8c  libatomic/flag.c
! 95450300e1d6abc8183974f66fbf1c52  libatomic/fnand_n.c
! 2b936f2a502a071fcb1090a312df4095  libatomic/fop_n.c
! ccfc3fd656c22a300f42e57f02683c9a  libatomic/fsub_n.c
! 972712cce929a2e22f90b3342c92aead  libatomic/fxor_n.c
! f3fc42b6b97e0c8a2adee65111c7b49e  libatomic/gcas.c
! 4ad364a38aef00ae50c280a5dc5eeed6  libatomic/gexch.c
! bc390700f9512a3b3eb690eb394d2acb  libatomic/glfree.c
! 469ba4587d2f10bddd226c91a5a44c60  libatomic/gload.c
! 2b3dc9e5f3c402ae7eb7450343510663  libatomic/gstore.c
! 291aef3fefc218f15e6d25c857832c1a  libatomic/host-config.h
  0e7ef9ed2b60ec1c9afc38701d815f6c  libatomic/init.c
  2fe463a1aa0855eab0961f927f300752  libatomic/libatomic.map
! 96a0f1595609658ebfa0c705bd5a7882  libatomic/libatomic_i.h
! 6d3943b7c1833e2f45dda693f09fdc1e  libatomic/load_n.c
! 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
! f0110044cfaebc731bd5468da4c8d4e2  libatomic/testsuite/lib/libatomic.exp
  9eab2bd493af1db9811d52bbbef2a805  libatomic/testsuite/libatomic-site-extra.exp.in
  6b8763cc8b07ca01040138d742a984f0  libatomic/testsuite/libatomic.c/atomic-compare-exchange-1.c
  773f995ba0a3ab509251361826397852  libatomic/testsuite/libatomic.c/atomic-compare-exchange-2.c
*************** c03a072efac9b30f8f8429ac52fd246b  libato
*** 109894,109986 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 8e09d5e498861bb0901c9f9843e2afae  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
! f42ca6bde120a9a2e7ebab3dabe77083  libbacktrace/Makefile.am
! c8d10c863872511332b5d196c2937d5f  libbacktrace/Makefile.in
! 944b848a3c4430ba86d5ef2eb1d7d153  libbacktrace/README
  9535fdd392305d7ecfe0d5a189cbd85b  libbacktrace/aclocal.m4
! 1caa29c33f85fb145360eb790a0b7ebf  libbacktrace/alloc.c
! a011fdd81c242c282a11bce8670f71c4  libbacktrace/allocfail.c
! a788edda88edff84331bbd32f1488fc1  libbacktrace/allocfail.sh
! 48bfe79b12e4d4316eb3f89af2429007  libbacktrace/atomic.c
! e0ea52705f343b5645a638857abc2719  libbacktrace/backtrace-supported.h.in
! 86a122848263907b7e1e97006daf23a2  libbacktrace/backtrace.c
! 0d739c5b28791a0365b0eeeb2b187c1d  libbacktrace/backtrace.h
! 0094cb1d8893f00d7b391b5cda999931  libbacktrace/btest.c
! a22475e3cc40c399545c864f2e3c91c9  libbacktrace/config.h.in
! a201a30cd8028da3810a3affde37806a  libbacktrace/configure
! aa36b55326fef4c2d483a1a573d1b918  libbacktrace/configure.ac
! d6abae879aa65224b205596575ffa873  libbacktrace/dwarf.c
! 614ed7f048def670ecbe93818d9f777c  libbacktrace/edtest.c
! 48dedff59f5c226e38d9c654be633ae6  libbacktrace/edtest2.c
! afc615ac0b4f9ac7d14695efd86abf1e  libbacktrace/elf.c
! 227ed16074e640db12e6bac3e4135fab  libbacktrace/fileline.c
  4fefdf2c043fdefb2736e03efee4b2c3  libbacktrace/filetype.awk
! 44a0c026f79afaf510e3af728de0b952  libbacktrace/install-debuginfo-for-buildid.sh.in
! 6f232309edaf6c9182791ae06b5bc9a0  libbacktrace/instrumented_alloc.c
! afb16977f85fb8bcee8ed5b146fd981e  libbacktrace/internal.h
! f755b9724274d2a0f66621fdc88d1ef8  libbacktrace/macho.c
! 8e395bf866a62b6d822cd107c9b3f454  libbacktrace/mmap.c
! 0113749f0fd71dd0b23daf9cb58f3543  libbacktrace/mmapio.c
! 67ed2d894b1027be0d484dacd0e47886  libbacktrace/mtest.c
! 4bb272148caef3d940b96a102b5530fe  libbacktrace/nounwind.c
! 7a7296dbd3718b96bbbf7cafaa92dfb2  libbacktrace/pecoff.c
! 8cfbf00eaa5615e1eb990d12f7421375  libbacktrace/posix.c
! 5aad8ce03cdd1e589ef887b4593e9210  libbacktrace/print.c
! ce23bfe2e3e918d604b3cbb5df44f96c  libbacktrace/read.c
! 4da79c59e22959229b2ac8bcb331aa5c  libbacktrace/simple.c
! ea9b90a02a9ea8d321777a62861f4291  libbacktrace/sort.c
! bec40a2e90a8710cd60f4159f8b9813f  libbacktrace/state.c
! 96394e00120de9f92356b17ac6b0a90c  libbacktrace/stest.c
! 745082f32819d202fd95bf508165f4f7  libbacktrace/test_format.c
! aa56b5cf033fba397ea05e9ae137f439  libbacktrace/testlib.c
! 932f4adb001fba7cd8014797770ff0c2  libbacktrace/testlib.h
! 28239849dc98926fe7bbe66829978ff8  libbacktrace/ttest.c
! d07752bd1fbb460d883142a576a49b71  libbacktrace/unittest.c
! ac0a3898a1a57e8cc9953c3257523777  libbacktrace/unknown.c
! 9688c673b6a5c10e990d20f0c54f6e3e  libbacktrace/xcoff.c
! ee9a3deb8ab82c2f0795f58d049a6efc  libbacktrace/xztest.c
! 632490b6bb981a632d17cd16f62faebd  libbacktrace/zstdtest.c
! adaf73e90514138d308833875cb1b1f4  libbacktrace/ztest.c
! 5fa14853846dee1ababb6ff4d9b99e92  libcc1/ChangeLog
! 126ad44f13cf384b237f7769cfa2f298  libcc1/Makefile.am
! 4c0714d9e0254b52de979d8acb09c146  libcc1/Makefile.in
  b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
! d63fb1af762780040442e84353e3b36b  libcc1/callbacks.cc
! 8a78adb52bc53d55d5cbbfb3aaa94070  libcc1/callbacks.hh
  9d81ce1461f24e4af7c8639d94f06789  libcc1/cc1plugin-config.h.in
! 9eb4c63966d266dcc6c3318d0726350f  libcc1/compiler-name.hh
! bf793bd74bcb1ef66d46b0071df186d9  libcc1/compiler.cc
! 9e6629333044f53a3f7ce9ed8d9bb7ca  libcc1/compiler.hh
  3f162347d86da65cd14fe4430d2e799c  libcc1/configure
! 3a0bad8a49060c202dd5c80a1bcb640b  libcc1/configure.ac
! c4179ae45dde9d6e134f8c32fcfeb678  libcc1/connection.cc
! df4001dc5f95a36722e5ebc05b22ba5f  libcc1/connection.hh
! a68f455e55f9db068a50fe55de8229d6  libcc1/context.cc
! 065b8302dbe190f9cdb7d3bcf85508f9  libcc1/context.hh
! 024cc7293c4bad8532a8f931ef395aee  libcc1/deleter.hh
! a3d24f9e76dfbb87820c1501be1c24da  libcc1/findcomp.cc
! b9f89f4101aa4fa828d98c3e031456ed  libcc1/findcomp.hh
! 5af979d4002bdf49914f0ef236fe9a7e  libcc1/gdbctx.hh
! b38cca35c9ae12d4f2c7b429030c7664  libcc1/libcc1.cc
  99b3a25ce17ed584d9f0aa42b4713938  libcc1/libcc1.sym
! 82d92647bc036bb6cf3d07752d5f6c7f  libcc1/libcc1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcc1plugin.sym
! 0df4a2ffac3444bec4f7fca8366801f6  libcc1/libcp1.cc
! c5079c6576e4be6630184291df24988b  libcc1/libcp1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcp1plugin.sym
! bbb937740ef11f581f2af195aa1e64cd  libcc1/marshall-cp.hh
! ab877905b68606a953bd5a29b5300dad  libcc1/marshall.cc
! 24884a462419edcbfd6b30d83c9661d7  libcc1/marshall.hh
! 559c12f67f474bb139739bd2ae1d9399  libcc1/names.cc
! 43095aead0e996344d98219f2aebc0df  libcc1/names.hh
! 00799e8d2ead506a31c52c42410b0dc9  libcc1/rpc.hh
! 5f362e773be02f84785d6b74e4f124cb  libcc1/status.hh
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! 43f4022ba00207ce7d5d768304be567e  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  55625eec19bfdb5cee37f8c7ae4b796b  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
--- 117517,117609 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 6fe10d5e415dbad8030386103dfda5e3  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
! 7cb0cdfc7d2442edcf7bf9949c94e1f0  libbacktrace/atomic.c
! 6ae8fcaf8e5105958998cec94a333ad9  libbacktrace/backtrace-supported.h.in
! 5c2f5d91f7d628e6fa4f5f0a26f21e39  libbacktrace/backtrace.c
! 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
! 2340e85e632b477107fb87f1cda296d3  libbacktrace/elf.c
! 962fabf4ee4a08a430a7eebba3665f31  libbacktrace/fileline.c
  4fefdf2c043fdefb2736e03efee4b2c3  libbacktrace/filetype.awk
! 132482064e1f62e11dedf7f5f0d763ab  libbacktrace/install-debuginfo-for-buildid.sh.in
! ccbe1ee456955e502f963737ace9dfce  libbacktrace/instrumented_alloc.c
! 802884d8bf3d8975553371886fd801d4  libbacktrace/internal.h
! 15c2a8628f93d41170a222091e50d289  libbacktrace/macho.c
! 083b3d8150e82b408b9b844d301e5508  libbacktrace/mmap.c
! c2ffe7face150e578af3f3f8dd7d5e3d  libbacktrace/mmapio.c
! bf7a011fcbf476b855c3f785857e6be8  libbacktrace/mtest.c
! 2c4513cebcbf2028f3ab04e71556a785  libbacktrace/nounwind.c
! 5deafc6b61043c935f69d2746652b246  libbacktrace/pecoff.c
! 595c825f56ca44aa0066679e2d52fdad  libbacktrace/posix.c
! 0387d0bf9da8c518cd301aaaedbf5515  libbacktrace/print.c
! 01c00595a2a78c533ef9c99011aa2e65  libbacktrace/read.c
! 3948955439c58020b3dd45c87965d1bd  libbacktrace/simple.c
! 406f3554987a3db8ad72d990145e8f89  libbacktrace/sort.c
! be0cfc2b989739eeb2f19b6ee08cf91b  libbacktrace/state.c
! 5aa46633154b1165c8cee6330beaa9f4  libbacktrace/stest.c
! 281f687ffef78a60d415e3e3f96c77e7  libbacktrace/test_format.c
! 99b8d2aed0b2b6dbce2d861601f58237  libbacktrace/testlib.c
! 8e3d0454d92ccebe5a9280c2095f8556  libbacktrace/testlib.h
! 4cb08bb8589e9d4930a54b88734db6c4  libbacktrace/ttest.c
! 792ea56f4d9071d717c029125fec2160  libbacktrace/unittest.c
! c0fa0a593b3a9b1ffd2f84bc40a22980  libbacktrace/unknown.c
! 08007717f7edd5d5da4ae0acfea360e4  libbacktrace/xcoff.c
! 69e738d1cd72baaeda073609f133f005  libbacktrace/xztest.c
! 4d7dab09ddbe953244044c8a60434ad9  libbacktrace/zstdtest.c
! 08e64385c7a2a6f5a8d0e25f4c237e51  libbacktrace/ztest.c
! 50413c522dc3deed3e4af133e7edd1e8  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
! 0e7fbdb3c63509600d7fcbef59101160  libcc1/context.cc
! eccd51b74097f88b7988e89253257248  libcc1/context.hh
! e3f273e60cae4124a92782d281575f39  libcc1/deleter.hh
! af4444e0df5238c11d09a354f4e10fbc  libcc1/findcomp.cc
! c09c32dbca2462732649a84ee654cc1c  libcc1/findcomp.hh
! f3408024b5d262f5202d6c14bbec5182  libcc1/gdbctx.hh
! 4ab813b86d9951e3f02d3f31ae5567d2  libcc1/libcc1.cc
  99b3a25ce17ed584d9f0aa42b4713938  libcc1/libcc1.sym
! f5cf271abf808adba362e94d5f04a712  libcc1/libcc1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcc1plugin.sym
! a3bae9c01d333f7db29d4511561a7d00  libcc1/libcp1.cc
! 5aa655a51d2e7818d049eb7bedec4b67  libcc1/libcp1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcp1plugin.sym
! 60c162ac86fa833c974077b21e07e2e9  libcc1/marshall-cp.hh
! 442e4e7120f4c035e1c304632d2230a6  libcc1/marshall.cc
! 9b7f95202f8115e3c18b84cbab495aa1  libcc1/marshall.hh
! 4ca0d8a2cb572c1199115c0bce167159  libcc1/names.cc
! 7ea54f053d634739466366d5ac879f5b  libcc1/names.hh
! 23e69d9f85843f48024a93b7f3c3c37c  libcc1/rpc.hh
! 6622ac4d7cd786a5452267678a26817e  libcc1/status.hh
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! da501d7d9520d45717436fb970a11192  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  55625eec19bfdb5cee37f8c7ae4b796b  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 109999,110155 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! c5f11935221de002253b598162ebdd72  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
! 1acbb917a57e9be62e9a35a2b8843ec3  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
! 12d2831bcc77548357849697fe4b5b72  libcpp/charset.cc
  5b2f9d37e91d01eed5bf420a47dc8046  libcpp/combining-chars.inc
! f394a8a1b5eeb832699f31a320059923  libcpp/config.in
! 5473983e7108e2ee3cd282167d014456  libcpp/configure
! 7f1f58cadd328a5ed96f2c145c0800be  libcpp/configure.ac
! ff89722b7f828d03d9b7e6604b48f705  libcpp/directives.cc
! 4a17617515d4961fd96609af51d900fe  libcpp/errors.cc
! d7920f5045b616b678bf06a6b0ca888e  libcpp/expr.cc
! c4d25c7837cbd3674fc0dd18425e38a1  libcpp/files.cc
! 4c23b9e82ca01448b18f7ac4c9e8058c  libcpp/generated_cpp_wcwidth.h
! 7fc584598464f2c3aa397e7fec90dccf  libcpp/identifiers.cc
! 288c3178bd1e0b81deb8cc4c93fbf099  libcpp/include/cpplib.h
! 7dcc56dc56c7850e7d0c40a6cf5a7da4  libcpp/include/line-map.h
! df3352a1bd6c274ed82b2a758bc3c4d1  libcpp/include/mkdeps.h
! a0918c463180dab6a2bb3f9553fbc271  libcpp/include/rich-location.h
! f6265ed339cae65c8b044bbb21d283b4  libcpp/include/symtab.h
! 1fd31f0e6458a730ee43a6f6c7f06571  libcpp/init.cc
! cc012cd95bd1c909ce999456a16ab01c  libcpp/internal.h
! bddde669fe99566a1ee851ddc097cb5a  libcpp/lex.cc
! 7901306f3f55e17c3cb29685e44e2dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
! 01c3a45d6e866221d817655f5a80e227  libcpp/macro.cc
! 3edc80e88fde4a216d7436d2ecb158af  libcpp/makeucnid.cc
! 4219a952c846be5ce392d7627a8ea628  libcpp/makeuname2c.cc
! 246ba746bd12b8496cc531ad9c32ba44  libcpp/mkdeps.cc
! 034ec4022e3e960cc381be0a992ed9ef  libcpp/pch.cc
! 7138c5e1afa8300cdd7a27382ac97eb7  libcpp/po/ChangeLog
  768453cca0d8c0e2666a269e0aff862b  libcpp/po/be.gmo
! ec1c6812b4474e46e48d5c4a7346bf9e  libcpp/po/be.po
! b95a2047eceb40c924d516a013d9d435  libcpp/po/ca.gmo
! dc6f6a772bb26509dd384d9083ad02fd  libcpp/po/ca.po
! 1d8027e10cd5342d647536e4ee85e965  libcpp/po/cpplib.pot
! d7d11060d596d361ba4f41d7eb01613c  libcpp/po/da.gmo
! 09ec9465414c4dd1b00feebf028f6d24  libcpp/po/da.po
! c4f8ed18ef919f4b0160da81e6f6f502  libcpp/po/de.gmo
! 4cca8f92645ad307877dd3218b2ef403  libcpp/po/de.po
! 9d8037a85a1603875c62ac38b52bfe1d  libcpp/po/el.gmo
! 0ac71397d2e76413636c141c7d43ec91  libcpp/po/el.po
! 04e2c8bccc8120d5304d56597258ebd1  libcpp/po/eo.gmo
! bafe6909bb292c24eed07863fdaeeff2  libcpp/po/eo.po
! ad6d5012d306bb7dc2122e9b803f3222  libcpp/po/es.gmo
! 7db905d4e5d526df987cc551cb9922bc  libcpp/po/es.po
! b7b73e3d845fb49ce7097745715c3be1  libcpp/po/fi.gmo
! 3727d4cc33ef0717cf9879ffadacf0f7  libcpp/po/fi.po
! 060fe24272f1973d5571eb8652250229  libcpp/po/fr.gmo
! 45ce98c5aa64d7915d43c2cf5ff0bf6a  libcpp/po/fr.po
! eac8cfe94da22d65c9666b563d356547  libcpp/po/id.gmo
! e147ba5e1a24e2d84fcab7869e061538  libcpp/po/id.po
! 49dc0a045355eeb7c31d69c421d351f8  libcpp/po/ja.gmo
! ebac068b02a8b31d7b68e80ece57d2bf  libcpp/po/ja.po
! cd8460b2556842e23bfd39e9db7d1fec  libcpp/po/ka.gmo
! 693f8824381f438583ff1afd920edd19  libcpp/po/ka.po
! 2a1a2be028e96a7144f979381be4b9af  libcpp/po/nl.gmo
! 67e8255f754dd267d6c5d77fb9e54214  libcpp/po/nl.po
! 8d24c9dcb1be6f0c25a1d8dafaab2a34  libcpp/po/pt_BR.gmo
! f41650735b61c358712a215ee6584fc1  libcpp/po/pt_BR.po
! 36c5a1ab8cb2c0686625fafc3ca602c9  libcpp/po/ro.gmo
! c84fa515e8f1fdf750b5341a9bd9a718  libcpp/po/ro.po
! c8955582b73622635e8fb2f8cdce5899  libcpp/po/ru.gmo
! 55e4c1238427a5a88b967bee6fefa97c  libcpp/po/ru.po
! b5e7848c3cc6da0226d39280900d39f7  libcpp/po/sr.gmo
! 8db2f7c3a20dea8e5458f30e9d68d680  libcpp/po/sr.po
! 0c16f95cf530d0945c7efc194a2de744  libcpp/po/sv.gmo
! 66831543d61075a180374c04feff71bd  libcpp/po/sv.po
! 7adb3327233147b10cc3f624860c8862  libcpp/po/tr.gmo
! b5629a48c0c8169fbcde3da520bfc982  libcpp/po/tr.po
! 1a97c5db0d7dedf942db46e66ecc1f77  libcpp/po/uk.gmo
! 4bd22ba982bb42020e1736419e9616f0  libcpp/po/uk.po
! a08034d17583f15309af58221eb06215  libcpp/po/vi.gmo
! 86c6f9e79c83f6f3a5e9c7cabc715e4c  libcpp/po/vi.po
! 1f343cfc0789ca113b2dbfec20e29117  libcpp/po/zh_CN.gmo
! cdf15e86d90fca355d25df71fdff0890  libcpp/po/zh_CN.po
! 50de9f5f60b4ce3e6fbd37a0a82737e4  libcpp/po/zh_TW.gmo
! ae57d3ffcdbea8d31a95b0f83cee8a62  libcpp/po/zh_TW.po
  23984f1c939c855d527f2c76d3fb6fc4  libcpp/printable-chars.inc
! 17648be84d7d7477f16628e3738379ac  libcpp/symtab.cc
! fc8bc12af9146152b77544abdbcab6f6  libcpp/system.h
! 215dc4a3966d61b2ba8209e09f910741  libcpp/traditional.cc
! 0cfa054d47860ec918abefac853ff966  libcpp/ucnid.h
! 44d9c6ca214445117356855dc2f0b120  libcpp/ucnid.tab
! 4c838d4e26e19022c66a1247680469e5  libcpp/uname2c.h
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 881f8154fa225149dd543adbe77aafb1  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
! 4fe4a5996806ca041eb45550916b1743  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
! 02ba6fc29d25c641b2934f3a43d82b6f  libdecnumber/bid/bid-dpd.h
! 8eb9c475227ff73d87cc9541c15efd99  libdecnumber/bid/bid2dpd_dpd2bid.c
! f8cb98772c2b0eadc61462083d7f5001  libdecnumber/bid/bid2dpd_dpd2bid.h
! e15c31d54aaaa4d91d5c7fa268e3a930  libdecnumber/bid/decimal128.c
  47afd72790bc284aceb5a23597cc6146  libdecnumber/bid/decimal128.h
  f8df5b96d86c867ad233c6f0d3e2541f  libdecnumber/bid/decimal128Local.h
  eab7eeba10520ab4a805774d42b8f9dd  libdecnumber/bid/decimal128Symbols.h
! 7a5a5fa3ee9684582682b429e542035a  libdecnumber/bid/decimal32.c
  43b6b2bd872ad984104804b1b20fb10c  libdecnumber/bid/decimal32.h
  c5864ab84549ca0f34188ce5b057bbee  libdecnumber/bid/decimal32Symbols.h
! bd259dc45d346e24ad376c38e2c2d0ce  libdecnumber/bid/decimal64.c
  8c612aadae9886f1a72212f93d8651c0  libdecnumber/bid/decimal64.h
  9f903ba71afb574bfa3a0f3cd2f9fbc7  libdecnumber/bid/decimal64Symbols.h
! 533c41f9b08e9476f751161664ad7891  libdecnumber/bid/host-ieee128.c
! 832a13310a10a4efb4fd73c844361d31  libdecnumber/bid/host-ieee32.c
! 5ea86651aeceea53dbb9e22ba26f6a8a  libdecnumber/bid/host-ieee64.c
  76d4afd0dd1c0f5e776cbc40cf2e91b3  libdecnumber/config.in
  3f92110431091b447f2836b51cd105ef  libdecnumber/configure
! 5298c43c3ae8cc353288233a9f06992f  libdecnumber/configure.ac
! 1773c585073e7f1748c10afc862d2fb7  libdecnumber/dconfig.h
! 277d043e8e8c601b05c9e4366f031c12  libdecnumber/decBasic.c
! d0b1e84c15a5342e216283fde9846c24  libdecnumber/decCommon.c
  2f89d012c7a8a2912e7dce02bd4a08dc  libdecnumber/decCommonSymbols.h
! ec308234856bebcd500f60ea6dbdf16e  libdecnumber/decContext.c
! 785115d9720cb56bb26fc036e3425378  libdecnumber/decContext.h
  53b67627dab6d36fba960317d84c1487  libdecnumber/decContextSymbols.h
! 04d4d901d040b3991de431b96539455d  libdecnumber/decDPD.h
  8f3ac08d4cc421cc89035e90c890bb09  libdecnumber/decDPDSymbols.h
! f29b9dafad071d05db4cd3da3de1b172  libdecnumber/decDouble.c
! 748f45ff7eb837de63b25ab9148220b6  libdecnumber/decDouble.h
  22e16083bf3d0b76c4736f7f6382cfb6  libdecnumber/decDoubleSymbols.h
! 04edfa46d006717960e698728f222464  libdecnumber/decExcept.c
! d0265d5b01a23cd0e32857ad86ad1e05  libdecnumber/decExcept.h
! a2102eeb93fd2dc838765236c6be6945  libdecnumber/decLibrary.c
! 4d525f68148abd494151529540f49bdb  libdecnumber/decNumber.c
! 4a7699808f2a40ee4d8d7dfce7c00489  libdecnumber/decNumber.h
! 5d6691e741aadca33c4b4516aa2f08de  libdecnumber/decNumberLocal.h
  dd46d36cafe0d7dcb669ad059fbed9b6  libdecnumber/decNumberSymbols.h
! f64d7b744fd5f461e7ca1963ee152a35  libdecnumber/decPacked.c
! 9f89e7a5f021ffe8e48c6ecc400190ba  libdecnumber/decPacked.h
  287ad6ebf8b8179aa843368e9600a3fb  libdecnumber/decPackedSymbols.h
! 9113585abbafb98e61eece27fc26b82b  libdecnumber/decQuad.c
! aeea2cee659a808e6b2784c2dc89e9fe  libdecnumber/decQuad.h
  3851bae03416db42a85be1c5610f438b  libdecnumber/decQuadSymbols.h
! 6b2b99627acb3ca570cdb9589614c589  libdecnumber/decRound.c
! 5a6faf5e61338b92ac05de136cae5bd8  libdecnumber/decRound.h
! f048ca4f9a84a0e9be7188d9c83264e1  libdecnumber/decSingle.c
! 01c623e18799c26a36250f5fdc4d85bc  libdecnumber/decSingle.h
  8998c4f3e69ea3d218b574a2defb9a98  libdecnumber/decSingleSymbols.h
! a7e24bd4d1e9a63d9e5fbd1c9fdadf2f  libdecnumber/dpd/decimal128.c
! 12c40a915d6ac6cb862e8d268f4e4449  libdecnumber/dpd/decimal128.h
! ff3d2a5d81c43084208801833cfccff0  libdecnumber/dpd/decimal128Local.h
  2f6da07ba897ca626a4f6d283feeef93  libdecnumber/dpd/decimal128Symbols.h
! 4db5b4808d5a63c4702ed37c05752cf8  libdecnumber/dpd/decimal32.c
! 38bfb5d73c57447a92e5406d0404efab  libdecnumber/dpd/decimal32.h
  a97c47969dfc92a7666dfe3c2e1e1448  libdecnumber/dpd/decimal32Symbols.h
! d93df1659fcf7f2195f6417796130412  libdecnumber/dpd/decimal64.c
! ec67fd2bfa24e9a389ddbf94e9aa63bf  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 91a21a07960fbf73da511f68f5fcbaa1  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
--- 117622,117779 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! b22d14d4e9fcd4e82ca81cf4433d7493  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
! e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
! 093a99089e489dae84557ca917e60dd6  libcpp/charset.cc
  5b2f9d37e91d01eed5bf420a47dc8046  libcpp/combining-chars.inc
! 4c25fc38f2b9d20ca1fbefba9ad34b45  libcpp/config.in
! 25fc63b1c46544e2d10d49555b022624  libcpp/configure
! 6352fad15318314000f7748c445b7e8f  libcpp/configure.ac
! ea784e8b4e934b5966c1fa9ff3767729  libcpp/directives.cc
! 02aef9903cbb33fe0e3146b5a9af1332  libcpp/errors.cc
! edcd9f141150c148f5c5c9584a446394  libcpp/expr.cc
! cde77f3d550834cad6ce61dd7fd070f1  libcpp/files.cc
! 97faf9e969cb255f2a2a91e0e7ac3c32  libcpp/generated_cpp_wcwidth.h
! c496c50691c37464e0aacc985cc3ab1e  libcpp/identifiers.cc
! c6d289f358b723bb4db062b5dbb25cb9  libcpp/include/cpplib.h
! ac88522f7fec46badcd2623d11a4b61e  libcpp/include/label-text.h
! 1eb2202990c99ae53b4161878cf0a268  libcpp/include/line-map.h
! 4779aaa10e24fd2398a105e78bdd88a5  libcpp/include/mkdeps.h
! 8dc5525eef86dcf1b1ee26cd243ab3a6  libcpp/include/rich-location.h
! d516a30568fd33a5e69be4374f27812f  libcpp/include/symtab.h
! 3f05e522dd9325c9807fc4f662533f7b  libcpp/init.cc
! a0d37c297f3d462529b502a4e1bd2378  libcpp/internal.h
! 14cdb8c198f4e4c14696bfbf98d11563  libcpp/lex.cc
! ad5dcc2a907d0a900801519a49cb42cf  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
! 9ca45c4c9e1829d625f4cc03b82debd1  libcpp/macro.cc
! b4c085899eca6fc0e5ddc81d15fc2e67  libcpp/makeucnid.cc
! f6299826ad91c3ae3e8be64e87bb7d20  libcpp/makeuname2c.cc
! 15ffbe55bf3e5cc75e66cfb1125773a8  libcpp/mkdeps.cc
! 893a85ab3fc4806dc0c614afce9b7110  libcpp/pch.cc
! 4b8e8e81bf4082971ee8fd406298298d  libcpp/po/ChangeLog
  768453cca0d8c0e2666a269e0aff862b  libcpp/po/be.gmo
! 5a131bbc2e718f87b148455d3b557800  libcpp/po/be.po
! 0b50e18ae82bca590e5c3f268b1aa40c  libcpp/po/ca.gmo
! 4c220e08630ab2f3bc879ac1f37815d4  libcpp/po/ca.po
! bded59a97064870a8660599effc8a029  libcpp/po/cpplib.pot
! c19c4e8ad4e026281473519e17cd2205  libcpp/po/da.gmo
! 380ca47053203f712d3d7c076a7fd036  libcpp/po/da.po
! 767f1355d400af96d0a94c3e785a0003  libcpp/po/de.gmo
! fbf3462a03090944a65cdf86782c338c  libcpp/po/de.po
! 052839594c5d53aef4793e6e5a99c568  libcpp/po/el.gmo
! 5d323f2c7ede1bdd541a0ef4b85bd9e8  libcpp/po/el.po
! d028a3bc1fb46d3f5e6a778d9653baf6  libcpp/po/eo.gmo
! edf308ffff09a33c6bedca74f8111249  libcpp/po/eo.po
! 8aeca7b374cea6a7a3ae49254b825dc0  libcpp/po/es.gmo
! f3d61f7eca49213524ce1fb0b76e1910  libcpp/po/es.po
! 94d8090f49948d03bd5245a43b96ff16  libcpp/po/fi.gmo
! 2bb109127244c1cc558247bf6f5358e1  libcpp/po/fi.po
! 364ad84c499d98c5ee94f66f41f31348  libcpp/po/fr.gmo
! 0f28f4d33a719388d2ce6ca97754c7c9  libcpp/po/fr.po
! 15eb5c97528146388a040361ac5000dc  libcpp/po/id.gmo
! f67dc849cdc1673bf8b9ab07908442b6  libcpp/po/id.po
! 287138cc8161702bd8587936cdc0549a  libcpp/po/ja.gmo
! bfac1dfc0388188d269df5ed9038118e  libcpp/po/ja.po
! 44daae27236f8eebf987cd2272952398  libcpp/po/ka.gmo
! e13b22e52701d595c8621cb228f76700  libcpp/po/ka.po
! 134eec119014d04e0ca336bfdd15dfbc  libcpp/po/nl.gmo
! 342253256c10e4b81c6ca4fa6b714e02  libcpp/po/nl.po
! 5cde548c01395247f98d86b31532606d  libcpp/po/pt_BR.gmo
! f83609e8cef5a06acade0e1451c8995e  libcpp/po/pt_BR.po
! 3d3b2afa97250b09edc7417615e9713c  libcpp/po/ro.gmo
! 12ff169dfc0c63e59419e3b44dd392da  libcpp/po/ro.po
! 48590e8792ae367895fb80a0e35d84b2  libcpp/po/ru.gmo
! 800c6ad9105282dc5390a81924bee9bf  libcpp/po/ru.po
! dfaadcbd5805c735ca1aca2519467693  libcpp/po/sr.gmo
! 7eb4b989d236fe24ad3aed7a690b134a  libcpp/po/sr.po
! 91be115accdfd50511658e0b5ddfe9e8  libcpp/po/sv.gmo
! 639e14f17da017cc3860f9e7886e8261  libcpp/po/sv.po
! 81fe038a9526f1cd3696fae730844d0e  libcpp/po/tr.gmo
! aa3c4e908796418ca7107cf6ed8e9757  libcpp/po/tr.po
! ace14cc70e336c06007f0cf08d5edefa  libcpp/po/uk.gmo
! 3b866f248ceead26e4432280c9c89b0c  libcpp/po/uk.po
! 5e38d6bb51aaf932cdb57a47194d36a6  libcpp/po/vi.gmo
! bc44b49c8cddddf9a15ee43df44e326e  libcpp/po/vi.po
! 285ffbc727a4c3365e99862d757c7990  libcpp/po/zh_CN.gmo
! fb54378865d45f97dd0e2e8146febf84  libcpp/po/zh_CN.po
! ccd4a83e370bfc57961c8aa17c69956b  libcpp/po/zh_TW.gmo
! d2d46ae8c53a803bc5e8064534efc539  libcpp/po/zh_TW.po
  23984f1c939c855d527f2c76d3fb6fc4  libcpp/printable-chars.inc
! edd48320908018167103bd12e374773c  libcpp/symtab.cc
! 6c621c0c0e0d0c6d971878ad3df9de7c  libcpp/system.h
! ed2b049b4f5ace102090402207fa9f98  libcpp/traditional.cc
! decade758397edc223aca3be57c768ad  libcpp/ucnid.h
! 1933481613c4f7407662993c6089cf72  libcpp/ucnid.tab
! 0da0352ccc865ea7f669ddaaa85a1640  libcpp/uname2c.h
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! b2aef49c6d50ebb4b2feb5f0b5f5996c  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
! 9f6ee29a7a652a85e55a84de49ff996b  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
! 06a623175c09e4a55ea67157cab2a85b  libdecnumber/bid/bid-dpd.h
! 4a909f75dc7d30b9bfc2ef4b9815955e  libdecnumber/bid/bid2dpd_dpd2bid.c
! 5425722d812cb0a56692ec84b4ce3bc6  libdecnumber/bid/bid2dpd_dpd2bid.h
! 22f5e392c8a091e2bfc04323eda246e2  libdecnumber/bid/decimal128.c
  47afd72790bc284aceb5a23597cc6146  libdecnumber/bid/decimal128.h
  f8df5b96d86c867ad233c6f0d3e2541f  libdecnumber/bid/decimal128Local.h
  eab7eeba10520ab4a805774d42b8f9dd  libdecnumber/bid/decimal128Symbols.h
! 16bab026a5b9b5cef669f78d95594af9  libdecnumber/bid/decimal32.c
  43b6b2bd872ad984104804b1b20fb10c  libdecnumber/bid/decimal32.h
  c5864ab84549ca0f34188ce5b057bbee  libdecnumber/bid/decimal32Symbols.h
! a7c6406d65d81b622c4f8a17329d8e84  libdecnumber/bid/decimal64.c
  8c612aadae9886f1a72212f93d8651c0  libdecnumber/bid/decimal64.h
  9f903ba71afb574bfa3a0f3cd2f9fbc7  libdecnumber/bid/decimal64Symbols.h
! ab1860a06ff2f17a7241b49c0f1a84be  libdecnumber/bid/host-ieee128.c
! d0780cad1a295b796d0ecf268cc6bb5f  libdecnumber/bid/host-ieee32.c
! 8a4a923189f90869a766009e5fb5e041  libdecnumber/bid/host-ieee64.c
  76d4afd0dd1c0f5e776cbc40cf2e91b3  libdecnumber/config.in
  3f92110431091b447f2836b51cd105ef  libdecnumber/configure
! 8fa8e85fdf6e044599511e03d675ed45  libdecnumber/configure.ac
! 29db1f9d3b3f7a3b435cdf645bab7326  libdecnumber/dconfig.h
! fbc7e2ffe7be0d8389f569896e5a87b0  libdecnumber/decBasic.c
! ac6d725338e2c832cf3a07bdcdf5b4d2  libdecnumber/decCommon.c
  2f89d012c7a8a2912e7dce02bd4a08dc  libdecnumber/decCommonSymbols.h
! 79f670cabb091de34f5d7e3fe4b4b024  libdecnumber/decContext.c
! 285ea83a8c012daee8cacd537a65876f  libdecnumber/decContext.h
  53b67627dab6d36fba960317d84c1487  libdecnumber/decContextSymbols.h
! bb5d85d9225e8c2f2ea929a6b4bf59e8  libdecnumber/decDPD.h
  8f3ac08d4cc421cc89035e90c890bb09  libdecnumber/decDPDSymbols.h
! 65259ca5cf597fb701866c3148831af2  libdecnumber/decDouble.c
! 84faae77e8ffcc14cdd8caf6c8cf50e7  libdecnumber/decDouble.h
  22e16083bf3d0b76c4736f7f6382cfb6  libdecnumber/decDoubleSymbols.h
! bc38f1e8bd69b80045e8773f13677ebb  libdecnumber/decExcept.c
! a160abb5cdfdf28decf0c9b7177e85e6  libdecnumber/decExcept.h
! a930df6f846fd42d4c066b4fefdad133  libdecnumber/decLibrary.c
! 4c8f649ec3ab1ae4ef05c6387ba2f221  libdecnumber/decNumber.c
! bd656ab20c48e529f8ddad132f1c8f54  libdecnumber/decNumber.h
! 96fc26f6ff8b1151d34576fdb68bf87e  libdecnumber/decNumberLocal.h
  dd46d36cafe0d7dcb669ad059fbed9b6  libdecnumber/decNumberSymbols.h
! ad17c385a516dc55ba34f39731624c85  libdecnumber/decPacked.c
! 61b4d858ae2845a93093e1019b410784  libdecnumber/decPacked.h
  287ad6ebf8b8179aa843368e9600a3fb  libdecnumber/decPackedSymbols.h
! e2d393846493d60a5bdd3053da6c336b  libdecnumber/decQuad.c
! 501dc3e173d057e638d1b543f30d9be5  libdecnumber/decQuad.h
  3851bae03416db42a85be1c5610f438b  libdecnumber/decQuadSymbols.h
! eecad39d72a5d8302b646a5b1da9d94b  libdecnumber/decRound.c
! 04456673eaa627a60c826f7741969ab9  libdecnumber/decRound.h
! b9a9dc579dc7547827e27235cdb66e9a  libdecnumber/decSingle.c
! 725c9621110be14de98dc73e37869cef  libdecnumber/decSingle.h
  8998c4f3e69ea3d218b574a2defb9a98  libdecnumber/decSingleSymbols.h
! cc89c5038cd476dd238789103549ab5f  libdecnumber/dpd/decimal128.c
! 0aea6af8ac3d568fe865f3a967a90eb1  libdecnumber/dpd/decimal128.h
! e08094e4af2ebc30611e0fc06777cb50  libdecnumber/dpd/decimal128Local.h
  2f6da07ba897ca626a4f6d283feeef93  libdecnumber/dpd/decimal128Symbols.h
! 059e372f6b8d0da22e8fd60c23edacc5  libdecnumber/dpd/decimal32.c
! e50ef1b1c67ca473afa0bd85a52b08db  libdecnumber/dpd/decimal32.h
  a97c47969dfc92a7666dfe3c2e1e1448  libdecnumber/dpd/decimal32Symbols.h
! 0f5c6ab801a486bcf4069a09b1903002  libdecnumber/dpd/decimal64.c
! beb433e3e74659ef6595bb7dc6760d90  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 85fcc3a382e64ad83be713af6b98494d  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
*************** cc4552d9286c17a905988bf55f96def7  libffi
*** 110158,110165 ****
  631bc8750a749106cf625001c1d6efb0  libffi/LICENSE-BUILDTOOLS
  835b22825bd53e411ac26c18666e1ae5  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
! 30d9a065a7035f12d13aed5d6bea0e21  libffi/Makefile.am
! cc2d732c9711c0b47c2586df3ae93bc1  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
  d591981dfeccb8df500213a4baa6bb7e  libffi/aclocal.m4
--- 117782,117789 ----
  631bc8750a749106cf625001c1d6efb0  libffi/LICENSE-BUILDTOOLS
  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
*************** b129629db06d710e4bc7ff5b8719756a  libffi
*** 110168,110173 ****
--- 117792,117798 ----
  0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
  54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
+ 20ebc69e7e1224fe9bf01a9f9b85e674  libffi/doc/libffi.info
  db28be3951c18d6db6e90f7e612bc67b  libffi/doc/libffi.texi
  5919fb480c65fe4ba9e8d97536e528b2  libffi/doc/version.texi
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
*************** ea125d6ff0b3d20372a1556f82ca6a05  libffi
*** 110175,110181 ****
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
  e76936a8cfe1f7636b1f5349e16810c4  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
! 354b3182b36c90da2e228ba864d7d4e0  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
  c19cb74ddd4e2244044a1da83a952afb  libffi/include/tramp.h
  73375602600b485370ad4bd1ce1b6ab3  libffi/libffi.map.in
--- 117800,117806 ----
  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
  c19cb74ddd4e2244044a1da83a952afb  libffi/include/tramp.h
  73375602600b485370ad4bd1ce1b6ab3  libffi/libffi.map.in
*************** b9ecce87980cf9448d35f168d0b12575  libffi
*** 110235,110241 ****
  989104e297aeeae17122773939bd6830  libffi/src/kvx/ffi.c
  3cb04b5ba3412b866d5e7449ca24b6f0  libffi/src/kvx/ffitarget.h
  0c8c94d032ab11ae726e214dd6b91e7d  libffi/src/kvx/sysv.S
! 394d5afba81e057055dfa6d9c9fa7898  libffi/src/loongarch64/ffi.c
  e4452f19d2e2fe4da9ccd84182c6fb60  libffi/src/loongarch64/ffitarget.h
  4e9a878bb31f58e6265e1b49c13b8e79  libffi/src/loongarch64/sysv.S
  a06a5272996a57cf9c1338b05f6b19c8  libffi/src/m32r/ffi.c
--- 117860,117866 ----
  989104e297aeeae17122773939bd6830  libffi/src/kvx/ffi.c
  3cb04b5ba3412b866d5e7449ca24b6f0  libffi/src/kvx/ffitarget.h
  0c8c94d032ab11ae726e214dd6b91e7d  libffi/src/kvx/sysv.S
! bb5154e6fa46637b78be64775b3e9bb5  libffi/src/loongarch64/ffi.c
  e4452f19d2e2fe4da9ccd84182c6fb60  libffi/src/loongarch64/ffitarget.h
  4e9a878bb31f58e6265e1b49c13b8e79  libffi/src/loongarch64/sysv.S
  a06a5272996a57cf9c1338b05f6b19c8  libffi/src/m32r/ffi.c
*************** b3368476e8654a67a996fc3570993a59  libffi
*** 110300,110306 ****
  40145fc2a1019d93ad69d0410503916c  libffi/src/sh64/ffi.c
  bafcfb82eb59a68953d6ec8c4c56812b  libffi/src/sh64/ffitarget.h
  981772e8eedf7ba19049819909040d94  libffi/src/sh64/sysv.S
! 0e963b7cae88aa092fe7e2293fd3285c  libffi/src/sparc/ffi.c
  d91f1ec3fbd46caf1508582b9d90530b  libffi/src/sparc/ffi64.c
  ac0f8f25f159c2358b99625e7ce6904e  libffi/src/sparc/ffitarget.h
  3ec745fb9adabb2cad31b87dc3a175c7  libffi/src/sparc/internal.h
--- 117925,117931 ----
  40145fc2a1019d93ad69d0410503916c  libffi/src/sh64/ffi.c
  bafcfb82eb59a68953d6ec8c4c56812b  libffi/src/sh64/ffitarget.h
  981772e8eedf7ba19049819909040d94  libffi/src/sh64/sysv.S
! c1ab7b5aaf8d70c05ad51a6ba1e2e60a  libffi/src/sparc/ffi.c
  d91f1ec3fbd46caf1508582b9d90530b  libffi/src/sparc/ffi64.c
  ac0f8f25f159c2358b99625e7ce6904e  libffi/src/sparc/ffitarget.h
  3ec745fb9adabb2cad31b87dc3a175c7  libffi/src/sparc/internal.h
*************** d2920b5f89901d939f43adf536e96e91  libffi
*** 110395,110402 ****
  188d7481aa4319f47c47a0f25aa0637f  libffi/testsuite/libffi.call/va_1.c
  553d1178b1b1222a99b3c8ca6716478f  libffi/testsuite/libffi.call/va_2.c
  97d207a19b1e8e9c38d2efe1c57100ef  libffi/testsuite/libffi.call/va_struct1.c
! 4e5deba7c4e63c5cae3e4365733d77bd  libffi/testsuite/libffi.call/va_struct2.c
! c024dd3d2510521f8b7e29eef936b9db  libffi/testsuite/libffi.call/va_struct3.c
  654fa11cc3957125bf1586780e4ea457  libffi/testsuite/libffi.closures/closure.exp
  95a3d81256c777f68d1d74641cce6f15  libffi/testsuite/libffi.closures/closure_fn0.c
  af1c73f8927fd6ff7f3d0169d6a16bfa  libffi/testsuite/libffi.closures/closure_fn1.c
--- 118020,118027 ----
  188d7481aa4319f47c47a0f25aa0637f  libffi/testsuite/libffi.call/va_1.c
  553d1178b1b1222a99b3c8ca6716478f  libffi/testsuite/libffi.call/va_2.c
  97d207a19b1e8e9c38d2efe1c57100ef  libffi/testsuite/libffi.call/va_struct1.c
! 056855051c9eff64c15f458d864360bd  libffi/testsuite/libffi.call/va_struct2.c
! 04d6c77802a49fada942f4e9e7a0bb4a  libffi/testsuite/libffi.call/va_struct3.c
  654fa11cc3957125bf1586780e4ea457  libffi/testsuite/libffi.closures/closure.exp
  95a3d81256c777f68d1d74641cce6f15  libffi/testsuite/libffi.closures/closure_fn0.c
  af1c73f8927fd6ff7f3d0169d6a16bfa  libffi/testsuite/libffi.closures/closure_fn1.c
*************** a3eb5dee2788fe0a6c42502ba658eddd  libffi
*** 110545,110672 ****
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! f35c61abccad1996809f2aa19e9de90d  libgcc/ChangeLog
! c70e1afe9478ead285bebc0fb930c97c  libgcc/Makefile.in
! 23fc6c0b801b3b6af6581c2a632dc732  libgcc/c++-minimal/README
! 90a82b364e40fe9eb1972d8000451364  libgcc/c++-minimal/guard.c
! 36b0c35a31c7ccbcee06c11512ad7d11  libgcc/config.host
! d3aae3117b3c5bd56670a3d96eccd46f  libgcc/config.in
! a1c25e1b6c64264e3d71b24592aaab9e  libgcc/config/aarch64/__aarch64_have_sme.c
! b5f68e932b1d70e09c198779aaf14e5f  libgcc/config/aarch64/__arm_sme_state.S
! d5ab2b7f8f786851c89195669008f2ae  libgcc/config/aarch64/__arm_tpidr2_restore.S
! 054b3a198744448a6f0be4014cf2f57e  libgcc/config/aarch64/__arm_tpidr2_save.S
! 6501a7f0cbc7fb9bf5611766b4394bd3  libgcc/config/aarch64/__arm_za_disable.S
! e172ae2ff8eb9269c2d327ff88ed1ea0  libgcc/config/aarch64/aarch64-asm.h
! 1024b1a0066825a983f3bc1fc84ce11f  libgcc/config/aarch64/aarch64-unwind.h
! 3b443a49915c8f6e58173cf698af74f7  libgcc/config/aarch64/cpuinfo.c
! 2bc7a3934cd1b5157cc927d5b1a36ecd  libgcc/config/aarch64/crtfastmath.c
! 55855b23cf78a759be05ef3e445136c9  libgcc/config/aarch64/crti.S
! b8c85c8c8e7d96bdee3b36f360d85909  libgcc/config/aarch64/crtn.S
! 5f762a685a0365026476f89dda2296ea  libgcc/config/aarch64/freebsd-unwind.h
! 57317eba8af19773dbde4f896292a272  libgcc/config/aarch64/gnu-unwind.h
  a077f95c64de11e67e5d9d909ec45b8c  libgcc/config/aarch64/heap-trampoline.c
! 2f4f1a66016e8441301c8e14f69983cf  libgcc/config/aarch64/libgcc-sme.ver
! 3b6e3550bfe5c4e5ec25b99108f46513  libgcc/config/aarch64/libgcc-softfp.ver
! 56a1f2d9dfab63cbe5956843fabf7d30  libgcc/config/aarch64/linux-unwind.h
! 04307fc9daa7af7f2d0ca9ba5bc55e33  libgcc/config/aarch64/lse-init.c
! 2c6803770e388ebace8cd426f33ffec6  libgcc/config/aarch64/lse.S
! e271966ce38209c96e6f569a9f952283  libgcc/config/aarch64/sfp-exceptions.c
! 4e2250b145e6e780d9ac7cd93aa086fc  libgcc/config/aarch64/sfp-machine.h
! a7dcec239d9ad1cf7575c218b71bc229  libgcc/config/aarch64/sync-cache.c
! d80262f451fe32bab906aa7cecc16b4e  libgcc/config/aarch64/t-aarch64
  5711e1b4b7c7ceabdfb54e3632fcd89c  libgcc/config/aarch64/t-heap-trampoline
! 4265f7d71a9591e2852a3c9675b07c07  libgcc/config/aarch64/t-lse
  a1c468d840900375aadbcb9a871a8cb5  libgcc/config/aarch64/t-softfp
! a82efe6a03a30a63796d410da2edeb3c  libgcc/config/aarch64/value-unwind.h
! ad683538c3ef0758e1f5bdc656b748ff  libgcc/config/alpha/crtfastmath.c
! 21a8aa79ebddb62a8d09719e88f9dd81  libgcc/config/alpha/libgcc-alpha-ldbl.ver
! 967c82bbc9e3ce6b8a6ad193db38d26e  libgcc/config/alpha/linux-unwind.h
! f27afe51b94ea566f11dce747576fabd  libgcc/config/alpha/qrnnd.S
  e06033e6f9902c9e703e237d511df6c4  libgcc/config/alpha/t-alpha
  95db551210150c5b18529c72cfdaeabf  libgcc/config/alpha/t-ieee
  0ae5eceefb3934014e67594e67f44a5c  libgcc/config/alpha/t-linux
  600b5cfe4987de3985ad1ff7316166cc  libgcc/config/alpha/t-vms
! 4263a230d67619739d5bbd373cb73611  libgcc/config/alpha/vms-dwarf2.S
! df6f30eb9c6d95e3c17fb2b2c6e0583f  libgcc/config/alpha/vms-dwarf2eh.S
! 2682234893101247d41e73059991d5c0  libgcc/config/alpha/vms-gcc_shell_handler.c
! 4875d8f87e7635d2074a82e0d933d676  libgcc/config/alpha/vms-unwind.h
! 4fe9588911c54df7f271a8d8790f96f5  libgcc/config/arc/asm.h
! b86d2effccbb68a1122383678f6ce9ea  libgcc/config/arc/crti.S
! 7394ff067204be93d05835680a71e773  libgcc/config/arc/crtn.S
! 486faaa8ce8bd33eaf85bc3631f9c8cc  libgcc/config/arc/crttls.S
! c5906eef9e7b0e439b5dee80e1fa961a  libgcc/config/arc/divtab-arc700.c
! 24dd29310e60c39262e618f212a376a3  libgcc/config/arc/dp-hack.h
! 6762602505d983fbeccf96d0b7171ebf  libgcc/config/arc/fp-hack.h
! d8a5747c92189ba41adb5dbfcf3fe365  libgcc/config/arc/ieee-754/adddf3.S
! 7719077453619fd165754060637347a0  libgcc/config/arc/ieee-754/addsf3.S
! 1e2acd8e41df3f6c0f1f77050d615cea  libgcc/config/arc/ieee-754/arc-ieee-754.h
! 7194da51b50439a493559f22071dacfa  libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
! 4e3049c4904c8d43a591006ab967b414  libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
! ab4a0b03bf4fb879fdd0455b149ea799  libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
! 168eda9450cc416e7b41f94a9be47c5a  libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
! 24543a47e1d7ee318993fb7713542b0a  libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
! c64315bda6c083142447afdc1c523fd7  libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
! c0656480820adbd4c3d6b87ecb7f9553  libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
! 7c073f854b80dfaeb2f5246e807572ec  libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
! 018b1ecdb9f0d4e494d104be669841b3  libgcc/config/arc/ieee-754/arc600/divsf3.S
! 3529a5c012ae3ef33940617884a81089  libgcc/config/arc/ieee-754/arc600/mulsf3.S
! 4e4fb940494e317ec30e5b0d597f3fca  libgcc/config/arc/ieee-754/divdf3.S
! a0ec87cadbe991e7b064327078a24e43  libgcc/config/arc/ieee-754/divsf3-stdmul.S
! 5d70d0bf37bb505e53f231aa126b3f1a  libgcc/config/arc/ieee-754/divsf3.S
! 6466a374eb6ac5f40aab0ff7f18d5658  libgcc/config/arc/ieee-754/divtab-arc-df.c
! b1966ea7dd1585ffa452a466ecd0fd2d  libgcc/config/arc/ieee-754/divtab-arc-sf.c
! dff80dc98ef663f445da6ab83ffe59d7  libgcc/config/arc/ieee-754/eqdf2.S
! 71491ef29a73d158431459314a539741  libgcc/config/arc/ieee-754/eqsf2.S
! 86276968c22753ddd5c0e9577d5e2895  libgcc/config/arc/ieee-754/extendsfdf2.S
! d73546d161ca96ab88719720e0729898  libgcc/config/arc/ieee-754/fixdfsi.S
! c6a7d5734ce3906dfa7f77ba9e61a9a3  libgcc/config/arc/ieee-754/fixsfsi.S
! 6d22a5ba56e9976ee3c13f43573b14ef  libgcc/config/arc/ieee-754/fixunsdfsi.S
! 0d54cd63560564a6fdcec384ec1b2943  libgcc/config/arc/ieee-754/floatsidf.S
! dcf09feaf5e990ef3b921d4b62047724  libgcc/config/arc/ieee-754/floatsisf.S
! 17a29decc7f7b3ab59f48e47030481fc  libgcc/config/arc/ieee-754/floatunsidf.S
! d34bc4e05c9ddac5d2db32e930e3c04c  libgcc/config/arc/ieee-754/gedf2.S
! 8621cdad453d75ca896545c95b76fce9  libgcc/config/arc/ieee-754/gesf2.S
! 6f7ec7dac40930a91171b190e4d0982e  libgcc/config/arc/ieee-754/gtdf2.S
! c5e25aae84d5fca96193acc9339c2320  libgcc/config/arc/ieee-754/gtsf2.S
! ac3974232aaaae2fb4db1d6bf0113821  libgcc/config/arc/ieee-754/muldf3.S
! e2e4bad2eb0bb160637ea11a8074bb3c  libgcc/config/arc/ieee-754/mulsf3.S
! 73c52f3461d77db0a0da7639c491ac3c  libgcc/config/arc/ieee-754/orddf2.S
! 34d29843b3187eda67e46d558913b457  libgcc/config/arc/ieee-754/ordsf2.S
! 8cc58522c43de4c1829172bf3333f5d8  libgcc/config/arc/ieee-754/truncdfsf2.S
! 4edf5124a8626b60412f4c2dcb03b850  libgcc/config/arc/ieee-754/uneqdf2.S
! 443171f908fe42fece4818668de832b3  libgcc/config/arc/ieee-754/uneqsf2.S
! d61d4b75d4faa9a6cae28d1baed88859  libgcc/config/arc/initfini.c
! 5679e37bbca2808ca5a31dc6a0fb0b42  libgcc/config/arc/lib1funcs.S
! 5bfb6401f4347d460602ff951a5e2b0b  libgcc/config/arc/lib2funcs.c
! 573601cb5182cdccbb3dd2559a08ae41  libgcc/config/arc/libgcc-excl.ver
! 19b792a5974908814404a303f839d0b0  libgcc/config/arc/linux-unwind-reg.def
! d4107ae4d9f2edd3f7f232b59ab49c8e  libgcc/config/arc/linux-unwind.h
! 82fd01e58c1392ad993fd5dc8af10e0a  libgcc/config/arc/t-arc
! e24d5548179d195a92f4d0854947be49  libgcc/config/arc/t-arc-uClibc
! 8578397c83cadea98bbeb10334948471  libgcc/config/arm/bpabi-lib.h
! 784d047521ca1cdca60e09d3aa86ef13  libgcc/config/arm/bpabi-v6m.S
! 7a35315ea8b413077a3c60d2e54517b6  libgcc/config/arm/bpabi.S
! 30210960148de9d20e1e4677fc16effd  libgcc/config/arm/bpabi.c
! bde8b97fe205faad95825498ee67ede2  libgcc/config/arm/cmse.c
! 2fe675a072d88c24311e6dacf5c9f381  libgcc/config/arm/cmse_nonsecure_call.S
! b2917176e10d0b7c6e89b6260b900976  libgcc/config/arm/crtfastmath.c
! 2de8f0c3c98b53e4bd962bf678e03381  libgcc/config/arm/crti.S
! 792e226cfd9da5dda0a836bded714d1d  libgcc/config/arm/crtn.S
! 7531a0f7bc7309144e3907428ea3e084  libgcc/config/arm/fp16.c
! eda83ba7fd5c1d5510aab959f8c5b602  libgcc/config/arm/freebsd-atomic.c
! d2e35eddb776700817e25082a82da60d  libgcc/config/arm/ieee754-df.S
! 6117ca739667eb88f9c2b0d5cfd015f5  libgcc/config/arm/ieee754-sf.S
! e9630e9996c0a6481cea5db601c18f31  libgcc/config/arm/lib1funcs.S
! 45e255ec9749fa0274296292ef21ee5e  libgcc/config/arm/libgcc-bpabi.ver
! 8a41baa0ebae31d1657a70c3a7535bd6  libgcc/config/arm/libunwind.S
! 7b3896b9aed9c9c572a86b8d15e1922c  libgcc/config/arm/linux-atomic-64bit.c
! 40fed10c9928e617f2603d5a22978e5a  libgcc/config/arm/linux-atomic.c
! a64f4ac64a1ad24e1a9a226065006e50  libgcc/config/arm/pr-support.c
  131990bf9b0a8ab71c7abf0c49d4fbfa  libgcc/config/arm/sfp-machine.h
! 3bccdfee295c39d354d388f6d1f1ab38  libgcc/config/arm/symbian-lib.h
! 25c27d4742b00622f3eefb5ee16514de  libgcc/config/arm/sync-cp15dmb.specs
! 975cf9b46f8cef25b67dc97819422a32  libgcc/config/arm/sync-dmb.specs
! 63aeb07b81d4c953d3efae3c70ec6288  libgcc/config/arm/sync-none.specs
  8bcfdd455e9a830ab6b5da1e39fab4d1  libgcc/config/arm/t-arm
  95ccb8d9807e7229274f546d4664a038  libgcc/config/arm/t-bpabi
  be2d9c3da6e3f9aa4be1b2856a70de22  libgcc/config/arm/t-elf
--- 118170,118298 ----
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 61aef5364339a36d566373efd59e64e7  libgcc/ChangeLog
! b1229d68a3a67c6e30daf30379e7bb8f  libgcc/Makefile.in
! 0f39724f440135be7a62bbd4e67e6840  libgcc/config.host
! 46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
! 9e6d8ec4ff0470579444dbe0a1287f05  libgcc/config/aarch64/__aarch64_have_sme.c
! 97101a2593de8c7ed58292fa105ea72f  libgcc/config/aarch64/__arm_sme_state.S
! 966f49ccbfc799dc7a2a31cd7ac95547  libgcc/config/aarch64/__arm_tpidr2_restore.S
! 66544a5de07fd41a3929a2e189f46321  libgcc/config/aarch64/__arm_tpidr2_save.S
! 128aeaca46e5c418ed01099d4e568c41  libgcc/config/aarch64/__arm_za_disable.S
! 3d22f63e14124b32ca3127983d84ea29  libgcc/config/aarch64/aarch64-asm.h
! 94d340dfcfb3e1cfed1b3fe657e0f50d  libgcc/config/aarch64/aarch64-unwind-def.h
! cc4f1d531e4d152879404aa5356c331c  libgcc/config/aarch64/aarch64-unwind.h
! 6773369220b17789538590ebfe5e4324  libgcc/config/aarch64/cpuinfo.c
! 25cba561b8b3a681de0855cc1bb10ef0  libgcc/config/aarch64/crtfastmath.c
! 333e80e345c1503a481eac5f102d909d  libgcc/config/aarch64/crti.S
! 278709ff5cf3290ef02997cb0c7cf7a2  libgcc/config/aarch64/crtn.S
! 64f0dc37135a55da5a8d5a3a3f29da0a  libgcc/config/aarch64/freebsd-unwind.h
! cc057a7bb2bda2a1ca4a54f52ae6347e  libgcc/config/aarch64/gnu-unwind.h
  a077f95c64de11e67e5d9d909ec45b8c  libgcc/config/aarch64/heap-trampoline.c
! d0d4af45fffe18f866536603e6b369ec  libgcc/config/aarch64/libgcc-sme.ver
! dff4f63f801860d329f3c62f135233d4  libgcc/config/aarch64/libgcc-softfp.ver
! fff6214d8f727f1416ce009f15cc5f35  libgcc/config/aarch64/linux-unwind.h
! d09ef2fe232dae56563f13d2b6da6735  libgcc/config/aarch64/lse-init.c
! b2e6d3e9e2af6d58aa7d4238e49990fa  libgcc/config/aarch64/lse.S
! 13e78e11bd6d056fd80598bac695009c  libgcc/config/aarch64/sfp-exceptions.c
! cc33fb6e397b63312a061b58f7bfa444  libgcc/config/aarch64/sfp-machine.h
! f56ac8f274604cf79ef262d4057d5987  libgcc/config/aarch64/sync-cache.c
! be71a3964258dd4b0434ff3c68b4be1d  libgcc/config/aarch64/t-aarch64
  5711e1b4b7c7ceabdfb54e3632fcd89c  libgcc/config/aarch64/t-heap-trampoline
! f5b7f4fb8a38b4ab16da22e90fdb1343  libgcc/config/aarch64/t-lse
! c6e6cbb6c43ce130d0d7f7f64a205fd8  libgcc/config/aarch64/t-mingw
! d6586ed230a3a8c33629f331c34c1209  libgcc/config/aarch64/t-no-eh
  a1c468d840900375aadbcb9a871a8cb5  libgcc/config/aarch64/t-softfp
! e281ccf9e5ecaf2571381c51a9dcba0c  libgcc/config/aarch64/value-unwind.h
! 0e5ba72d0ed40f63229a4301ef44879f  libgcc/config/alpha/crtfastmath.c
! f57a1c8adef7080ebc8904d802c48032  libgcc/config/alpha/libgcc-alpha-ldbl.ver
! 1acb5ad783b05e1c00b9909b6e1fcd8e  libgcc/config/alpha/linux-unwind.h
! c6daa286435ef9a0deb81120b7b0259b  libgcc/config/alpha/qrnnd.S
  e06033e6f9902c9e703e237d511df6c4  libgcc/config/alpha/t-alpha
  95db551210150c5b18529c72cfdaeabf  libgcc/config/alpha/t-ieee
  0ae5eceefb3934014e67594e67f44a5c  libgcc/config/alpha/t-linux
  600b5cfe4987de3985ad1ff7316166cc  libgcc/config/alpha/t-vms
! d5a6e59502ed09e2eddeabc8baa4914f  libgcc/config/alpha/vms-dwarf2.S
! 391572ced95158d8f4c8a17fc3d50ce2  libgcc/config/alpha/vms-dwarf2eh.S
! 9ecaecf3561c097732e24094d8028c77  libgcc/config/alpha/vms-gcc_shell_handler.c
! bb2f9ecad45a6c3184c0282006cafaa8  libgcc/config/alpha/vms-unwind.h
! 1e13d995092e4215c071f19fb0ba44f6  libgcc/config/arc/asm.h
! f75c2e0ce5c32084618e6d20ef42945a  libgcc/config/arc/crti.S
! 980951a08dcf2215585fb648cf814ee1  libgcc/config/arc/crtn.S
! 64c9381fdfc8dfc974b71cf6ca15be24  libgcc/config/arc/crttls.S
! e98607538558e0b09d8ffb49c69901f3  libgcc/config/arc/divtab-arc700.c
! fc3a077f29fbfca3acd52af25ef8662b  libgcc/config/arc/dp-hack.h
! 418c57a85306e2c3807bde850cdc2c8a  libgcc/config/arc/fp-hack.h
! e96faf4e0f32210c224707648d3869fb  libgcc/config/arc/ieee-754/adddf3.S
! 0f838b62be7c09c8abb152878a38cb9d  libgcc/config/arc/ieee-754/addsf3.S
! d2ce44c97c8353b4afe4e45abc013064  libgcc/config/arc/ieee-754/arc-ieee-754.h
! 8e05e482e7dd75b4cd3509794e671107  libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
! a85a97be46b22740c68ce6bd25f123a7  libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
! 1217ab6734528ce460b35fe452134ab1  libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
! 7e5959672496f9017fa2f96b46628728  libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
! d172273b093f844cab7f4e71e108d974  libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
! 6e29c196174f1f7a1015a67b165137fd  libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
! b014d19329d80d77987c064a3dcf5ade  libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
! da55ff5ba0c40f3877dbf1b8518364e9  libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
! cf0de223b4e3d70d2bd71b7950502ef1  libgcc/config/arc/ieee-754/arc600/divsf3.S
! 68d3e04167722e9602b81ea3d57799a7  libgcc/config/arc/ieee-754/arc600/mulsf3.S
! e5b530e641cf1e380616a79735b911e9  libgcc/config/arc/ieee-754/divdf3.S
! 8b163d60ed3fef7afc13dab23a8dbc3c  libgcc/config/arc/ieee-754/divsf3-stdmul.S
! ecd3f329290e0de941eebd12803d02b8  libgcc/config/arc/ieee-754/divsf3.S
! e41dc8838ff530271cd71a02ce335c9f  libgcc/config/arc/ieee-754/divtab-arc-df.c
! 75e08ab1e674f0c7775089da57704142  libgcc/config/arc/ieee-754/divtab-arc-sf.c
! 6fd2e600ea4f8710b4221380073aa50e  libgcc/config/arc/ieee-754/eqdf2.S
! 23b95aa386999fd07606babf14e8270a  libgcc/config/arc/ieee-754/eqsf2.S
! 286b407d4f8d8739f5bc83527f6d0e15  libgcc/config/arc/ieee-754/extendsfdf2.S
! a7a4c04fb8000698901a0b3bbb41ddb5  libgcc/config/arc/ieee-754/fixdfsi.S
! f2c9af60fe91332218c3a3b4365ee991  libgcc/config/arc/ieee-754/fixsfsi.S
! b605499f704359ca5c0b46b58c237d09  libgcc/config/arc/ieee-754/fixunsdfsi.S
! 7ce34e10c9355114bdf3e27b2f3635e7  libgcc/config/arc/ieee-754/floatsidf.S
! 03c722ecf3cec3c1957202d8fde932d8  libgcc/config/arc/ieee-754/floatsisf.S
! da218c85e8b881ee75daf74073bca01d  libgcc/config/arc/ieee-754/floatunsidf.S
! f116aefb457d51874deef45639ec0f98  libgcc/config/arc/ieee-754/gedf2.S
! d1afb91847d1667e85ce09510b893ede  libgcc/config/arc/ieee-754/gesf2.S
! db13d8d681119078ce3839106eef397e  libgcc/config/arc/ieee-754/gtdf2.S
! 1f676e10895ac18f491737d6e926ef34  libgcc/config/arc/ieee-754/gtsf2.S
! 646b03cdfd197c11a4f3270759bae764  libgcc/config/arc/ieee-754/muldf3.S
! a6dc309efd866822ddc97e2ec9cd8fdd  libgcc/config/arc/ieee-754/mulsf3.S
! 798fd8062e7d326eb4cc52a8a7de213f  libgcc/config/arc/ieee-754/orddf2.S
! ca7f852fc5424bc4bc14ed7a9f5a89b2  libgcc/config/arc/ieee-754/ordsf2.S
! 700cbe4f4b4a8c245d88fa38410cf977  libgcc/config/arc/ieee-754/truncdfsf2.S
! e25978af45d85e87cdf0db2992d94277  libgcc/config/arc/ieee-754/uneqdf2.S
! f22fdb1f9ad12c79542d712bfbcc4c85  libgcc/config/arc/ieee-754/uneqsf2.S
! 655eb73ecaab72a840799dad3c22832b  libgcc/config/arc/initfini.c
! fe495c0807d4b5202d64c5084219df1f  libgcc/config/arc/lib1funcs.S
! f7fbc9ff9e5b5e15c859965d7e8274f4  libgcc/config/arc/lib2funcs.c
! 9dff35bd45607f7fb1343a6d832ecf0d  libgcc/config/arc/libgcc-excl.ver
! 3bf7d2d0e81d90f60e940c59aa71fe5e  libgcc/config/arc/linux-unwind-reg.def
! 82ff7699773940ddcb7ad76e7fb0ab48  libgcc/config/arc/linux-unwind.h
! a7231f9066309dea73ac3776bc1dd583  libgcc/config/arc/t-arc
! cffa5a4b533560d0d67cf09479f4508d  libgcc/config/arc/t-arc-uClibc
! cd9da6e10416e2776bad3d25959a6432  libgcc/config/arm/bpabi-lib.h
! b976e497508f3a4173a18d9112a73bb7  libgcc/config/arm/bpabi-v6m.S
! bff4c45d396131a2391c8538582363fb  libgcc/config/arm/bpabi.S
! c9931166bfa58d477bb91195ce59f583  libgcc/config/arm/bpabi.c
! 5196e3ee150cf148ffb9b5800293df28  libgcc/config/arm/cmse.c
! 17bfffa9eaba694e06c274dc9e3719ce  libgcc/config/arm/cmse_nonsecure_call.S
! 2cfea12c4c017673fff9b413ea6bc3f2  libgcc/config/arm/crtfastmath.c
! 332d405d95ed0bccafd2ae0168646e2a  libgcc/config/arm/crti.S
! 4f9f04aa21333682ca07f22d2c51ab5d  libgcc/config/arm/crtn.S
! b356076ea1ad54cd05ca75d806e62272  libgcc/config/arm/fp16.c
! 6c618571238c253af1d79d3b55146ba1  libgcc/config/arm/freebsd-atomic.c
! fcf63a9293a7b1f28871cc03749abbc2  libgcc/config/arm/ieee754-df.S
! 6c1f105527af7149940b3dec962e4bda  libgcc/config/arm/ieee754-sf.S
! f8bbe257cdc7fcab77405ffd70696d7d  libgcc/config/arm/lib1funcs.S
! 4f455a1e9dc240839a24c3f088ea9d70  libgcc/config/arm/libgcc-bpabi.ver
! 161417bea61786116257baae7aca021f  libgcc/config/arm/libunwind.S
! f027ea879b02289c06a63ee92399025e  libgcc/config/arm/linux-atomic-64bit.c
! 026a7d8f507fdd1dd4012b519d6d2bf3  libgcc/config/arm/linux-atomic.c
! 4a77fe6ff89882af200ebf2aa24bbcee  libgcc/config/arm/pr-support.c
  131990bf9b0a8ab71c7abf0c49d4fbfa  libgcc/config/arm/sfp-machine.h
! 50cf2d12341f4a829aba40daa1fce353  libgcc/config/arm/symbian-lib.h
! 590a7c2d4350bb33aff791137f47872c  libgcc/config/arm/sync-cp15dmb.specs
! 45a2162ebb3f12b9e0ec816b910c38bc  libgcc/config/arm/sync-dmb.specs
! 6c958c62fb2c3cfc6e0448136b6a2ff2  libgcc/config/arm/sync-none.specs
  8bcfdd455e9a830ab6b5da1e39fab4d1  libgcc/config/arm/t-arm
  95ccb8d9807e7229274f546d4664a038  libgcc/config/arm/t-bpabi
  be2d9c3da6e3f9aa4be1b2856a70de22  libgcc/config/arm/t-elf
*************** fc87e45e073829d21e9427a38f435e3b  libgcc
*** 110681,110722 ****
  943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
  49da02954caef0527c55b87af2bd1c4b  libgcc/config/arm/t-vxworks7
  0b61332cccc4af9b144b6db99e213dcb  libgcc/config/arm/t-wince-pe
! 07f2f4d03ae1b90f1a17ff00e943546c  libgcc/config/arm/unaligned-funcs.c
! e14936825a17d2ae9293da1cafea9ce4  libgcc/config/arm/unwind-arm-vxworks.c
! c9fcc78b0d775f7213f0f0b3141a7c24  libgcc/config/arm/unwind-arm.c
! c12365a0fd0bfbb153c9b75f558feba5  libgcc/config/arm/unwind-arm.h
! 3f552d2201eb8547351e00af1b794c50  libgcc/config/avr/avr-lib.h
! 5f49e0e1c1858de08fe8888f3378f734  libgcc/config/avr/lib1funcs-fixed.S
! c7b2e09c1a819d37ab91db3294159732  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
! b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! 5595997bc561eddafba4cf69ab045fe8  libgcc/config/avr/libf7/ChangeLog
! 159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
! 434f68c401e93814081ae499ba72ffaf  libgcc/config/avr/libf7/f7-renames.h
! f65ef9e7ada883e17a2dd60b931ad23b  libgcc/config/avr/libf7/f7-wraps.h
  c0d4a5a9b2844505ec941ff60cae008f  libgcc/config/avr/libf7/f7renames.sh
! 4026813a3a56ecdf28b1fe38fc63cdec  libgcc/config/avr/libf7/f7wraps.sh
! b6e24d20e3f00cbfe5078999558011c5  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! 1803ab20d43890ba103d196f4e55b924  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
  47dccabf16372b55fb7154bd70ce141f  libgcc/config/avr/libf7/libf7-common.mk
! c29107694f22e1434011033331235b51  libgcc/config/avr/libf7/libf7-const.def
! e55ce8934ace33b814bf03fbbfd9ba5f  libgcc/config/avr/libf7/libf7-constdef.h
! 70d9926ceec1e5a18355f5e64c776b86  libgcc/config/avr/libf7/libf7.c
! c242f404ef73dc81c1dc9b99ffa63920  libgcc/config/avr/libf7/libf7.h
! 606c568e8f2d692bc5762eaba8d8e7b0  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
  761826027ebb1cfbb089d23904494606  libgcc/config/avr/libf7/t-libf7-math-symbols
! 80fc1df82f5ed30353db097c723cccd7  libgcc/config/avr/t-avr
  42e21fd8b00be58d09a62b8654a8ba20  libgcc/config/avr/t-avrlibc
  77d29be9a46b600293b32c93c09dacbf  libgcc/config/avr/t-copy-libgcc
! 2ef96f0303ad42eabc56dd84ea5f459f  libgcc/config/bfin/crti.S
! 337741bb1185f5b35d51559c36c465d0  libgcc/config/bfin/crtlibid.S
! ee39d9a68d2a6f0317801402b9370a76  libgcc/config/bfin/crtn.S
! d9868bc51798623debed8d80b1042815  libgcc/config/bfin/lib1funcs.S
! b3651f3f47a5082b8b7fc88427155300  libgcc/config/bfin/libgcc-glibc.ver
! 52e890960e67449893710f25bf01a265  libgcc/config/bfin/linux-unwind.h
  4e54ca63fc628fdd56df2687a2bf457e  libgcc/config/bfin/t-bfin
  a5e909e203a6fbf202b2eaad6bff3601  libgcc/config/bfin/t-crtlibid
  17298642a82c8a2809260d1eb08f7e4e  libgcc/config/bfin/t-crtstuff
--- 118307,118348 ----
  943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
  49da02954caef0527c55b87af2bd1c4b  libgcc/config/arm/t-vxworks7
  0b61332cccc4af9b144b6db99e213dcb  libgcc/config/arm/t-wince-pe
! d0b9b0be6a153aade828f229a7b6201f  libgcc/config/arm/unaligned-funcs.c
! 4b03d9ee27ad2ea79a7927c3bc0887ef  libgcc/config/arm/unwind-arm-vxworks.c
! d40525e4e7bbadd18f884d78c1cdf5c0  libgcc/config/arm/unwind-arm.c
! f0a8a735160c097709322fb75e75662c  libgcc/config/arm/unwind-arm.h
! 7acb576c99770bd5bdd9e86fc1f24c4d  libgcc/config/avr/avr-lib.h
! b38cbc5c54988720ae33d36a2ff78fd3  libgcc/config/avr/lib1funcs-fixed.S
! 5ab16e6eec7523296afc7c8bfee38565  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
! e6604d88f15777c25f5d887ca1f9148c  libgcc/config/avr/lib2funcs.c
! a6e8630f814aa890e374a7e908a29825  libgcc/config/avr/libf7/ChangeLog
! dd74908d3b47db38a7aaa2e9f130f20f  libgcc/config/avr/libf7/asm-defs.h
! 3103440dc20d49809c04a54b365507d7  libgcc/config/avr/libf7/f7-renames.h
! bbf6f4b2dc04ce0f729b2cde8dd85995  libgcc/config/avr/libf7/f7-wraps.h
  c0d4a5a9b2844505ec941ff60cae008f  libgcc/config/avr/libf7/f7renames.sh
! 76d89fdf12c2153d7cf3d12c025a8713  libgcc/config/avr/libf7/f7wraps.sh
! b77774db3e278767f77ced55b8e1fe89  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! ec9b30a882ac6a7401555a33253eb439  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
  47dccabf16372b55fb7154bd70ce141f  libgcc/config/avr/libf7/libf7-common.mk
! 29f415bcdf1f8cf82363009ed90158a0  libgcc/config/avr/libf7/libf7-const.def
! 4be27333f32f04990c0af746c07ffd5d  libgcc/config/avr/libf7/libf7-constdef.h
! 8624b35b63a7f1a504184c87a54d1d6a  libgcc/config/avr/libf7/libf7.c
! 8e9057f6203221845c4aec6f2c3826df  libgcc/config/avr/libf7/libf7.h
! 2921a86fef727ada45668b8c0f091e33  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
  761826027ebb1cfbb089d23904494606  libgcc/config/avr/libf7/t-libf7-math-symbols
! 2203329f7323549e6c781eca3437d2e0  libgcc/config/avr/t-avr
  42e21fd8b00be58d09a62b8654a8ba20  libgcc/config/avr/t-avrlibc
  77d29be9a46b600293b32c93c09dacbf  libgcc/config/avr/t-copy-libgcc
! 7eb157ac2b99d45457a48419fe64069d  libgcc/config/bfin/crti.S
! 71a4596b09be80d4f19d7752cfc69ff2  libgcc/config/bfin/crtlibid.S
! 8af66ef38a1a31cfc5422977bd1a9e54  libgcc/config/bfin/crtn.S
! a60acfcf7b678169c06b3493ecc1d70c  libgcc/config/bfin/lib1funcs.S
! f1937febab40824dadf2af4142a41845  libgcc/config/bfin/libgcc-glibc.ver
! 97a353f4f66d4ed695b9aed5e96de847  libgcc/config/bfin/linux-unwind.h
  4e54ca63fc628fdd56df2687a2bf457e  libgcc/config/bfin/t-bfin
  a5e909e203a6fbf202b2eaad6bff3601  libgcc/config/bfin/t-crtlibid
  17298642a82c8a2809260d1eb08f7e4e  libgcc/config/bfin/t-crtstuff
*************** a5e909e203a6fbf202b2eaad6bff3601  libgcc
*** 110724,110810 ****
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crti.S
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crtn.S
  8d4717fef859f166f4ef387b932a72f1  libgcc/config/bpf/t-bpf
! 7addd3049b07a319d8b51b72e20e19d2  libgcc/config/c6x/c6x-abi.h
! e5592c5c4a7c68c7d4f3831a0c57806d  libgcc/config/c6x/crti.S
! c8dfc305831d1121206036b596f610e4  libgcc/config/c6x/crtn.S
! 4bacef0e42b2f63dbe4a85739f8b10ff  libgcc/config/c6x/eqd.c
! eb7226ba4b93c23252cd18db20abb5a4  libgcc/config/c6x/eqf.c
! c2015a4d92488836a6f2cbc53c113cf5  libgcc/config/c6x/ged.c
! 1f4b6ffbfdd4b5ebd9c4287542b479d8  libgcc/config/c6x/gef.c
! ce6e9f193f121591e9c7de84dd773a65  libgcc/config/c6x/gtd.c
! 20ba9b00b5b300b4129304dcce1eb0df  libgcc/config/c6x/gtf.c
! a792d7cb011d6583f3bf21c536ca7b09  libgcc/config/c6x/led.c
! 6163abdc0a978db9e566671a3ad6cda2  libgcc/config/c6x/lef.c
! f3e835b9a70cc4c6bd0bd45d7197a605  libgcc/config/c6x/lib1funcs.S
! 8971247b5383607513d1e482aded4151  libgcc/config/c6x/libgcc-eabi.ver
  9068a836854af657b1b590da0c0659f1  libgcc/config/c6x/libunwind.S
! 0e898bdaa7ded1d9ba1c9fb382e2076c  libgcc/config/c6x/ltd.c
! bdad94127d5b2328fdeb67571a3ccc53  libgcc/config/c6x/ltf.c
! aae3b416a9b4e96c477217bbdb065fed  libgcc/config/c6x/pr-support.c
! ce90aeeac74bf49855e57791233eba5a  libgcc/config/c6x/sfp-machine.h
  e001c742f33c68e3a33a709c345e0c3f  libgcc/config/c6x/t-elf
  7be94443a1640eded81b166ae8fe575f  libgcc/config/c6x/t-uclinux
! ccadb7309ba990e2bfeb8e7750a9d662  libgcc/config/c6x/unwind-c6x.c
! 16d2f62e0818591f93a12e322360ca64  libgcc/config/c6x/unwind-c6x.h
! 69a59dfbb4403c3d949bcdb246aefb3b  libgcc/config/cris/arit.c
! bb4c6adee1d590a8204dbaaa5f5a08d3  libgcc/config/cris/mulsi3.S
! 970ba602036b1b15a367ba5936508c8f  libgcc/config/cris/sfp-machine.h
  e42743c62236880a4788e60d1acb3424  libgcc/config/cris/t-cris
  b9dc89a49f32db0757703a40d18557af  libgcc/config/cris/t-elfmulti
! 05abc5c5147518270d205699c93e3b80  libgcc/config/cris/umulsidi3.S
! 7cb8d41b2cd8970d4283ed59b1177196  libgcc/config/csky/crti.S
! c22538207500706e214abc2b842228d6  libgcc/config/csky/crtn.S
! 4467f21f104fee8e7994477f2b22eb7b  libgcc/config/csky/lib1funcs.S
! d5df763185f688f9dae5c85ff2c62ddb  libgcc/config/csky/linux-atomic.c
! f84fe72f86add8cca52ea2a1196a796c  libgcc/config/csky/linux-unwind.h
! c52b4532db4ece030aa20aa982ffa589  libgcc/config/csky/t-csky
! 004ea4ac4a9868cccdd6838de1786602  libgcc/config/csky/t-linux-csky
! 62a43ea0301b8ed30993ab41463bab16  libgcc/config/darwin-64.c
! cc51e23fb1ffb527ff2381547746e24c  libgcc/config/darwin-crt-tm.c
! 243ebbecb574e001e4be28ecd68084f1  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
  416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
! 12eaac209865e347a7c36dd35c84e9ff  libgcc/config/epiphany/crti.S
! ce6e106ce485062c46f61c12132b1b05  libgcc/config/epiphany/crtint.S
! f71d2a69a86b85ca2c3a1e7e37ad89e0  libgcc/config/epiphany/crtm1reg-r43.S
! 6cd78e993b643175f9da2dbfdfc3f6fe  libgcc/config/epiphany/crtm1reg-r63.S
! 71634b6721352cd8025e4fb92909de61  libgcc/config/epiphany/crtn.S
! 83c3886d9c3eb22034973e7e9e6da1e4  libgcc/config/epiphany/crtrunc.S
! aef132d16e4e64c73928dcbbd6393046  libgcc/config/epiphany/divsi3-float.S
! f4e6c5f15d57624187d3344e9deae2a2  libgcc/config/epiphany/divsi3.S
! 36fc787013153e43113d3ed010d696a4  libgcc/config/epiphany/divsi3.c
! 8d2c986c7f6b84df2fb20ebc1186b2a6  libgcc/config/epiphany/epiphany-asm.h
! 2ffc373838ec68bef5e2ddfb6808d4c3  libgcc/config/epiphany/ieee-754/eqsf2.S
! 64b9a4179cdb81f84295ad3b0de45a61  libgcc/config/epiphany/ieee-754/fast_div.S
! cb547afa0f7a86adcc9014fa68f298d1  libgcc/config/epiphany/ieee-754/gtesf2.S
! acdbb7650db6750fb6a30397d2c78125  libgcc/config/epiphany/ieee-754/ordsf2.S
! 10f03dc9304018b882853b2ffc165194  libgcc/config/epiphany/ieee-754/uneqsf2.S
! fd791dcec85213d662928bff37570a99  libgcc/config/epiphany/modsi3-float.S
! 8cc15555f597e094181d07621f9769af  libgcc/config/epiphany/modsi3.S
! 926d4dd95239c37f1cf389679ca5a9a0  libgcc/config/epiphany/modsi3.c
! a498492b4aab95404889779aa3361a0a  libgcc/config/epiphany/mulsi3.c
  d76fc3e367e9f20ca1d6e4b8ef979bd9  libgcc/config/epiphany/t-custom-eqsf
! ca0a3f5cf85b3cd3bce2af58d841f64f  libgcc/config/epiphany/t-epiphany
! f072bf32d54f42b3637b853ad529caf6  libgcc/config/epiphany/udivsi3-float.S
! f941125317276ecfa0d5fb0392bbfa01  libgcc/config/epiphany/udivsi3-float.c
! 33169d48584f12d5b6b26bdef8bb9f40  libgcc/config/epiphany/udivsi3.S
! f4d112858fad5d1febcc153920624170  libgcc/config/epiphany/udivsi3.c
! 09b669ca09b38a91a7e2dfb98ae793a8  libgcc/config/epiphany/umodsi3-float.S
! 96dce7c6daefa6d43da8e5191badc388  libgcc/config/epiphany/umodsi3.S
! 4f61ce3d31a0d4f028ee0829f5fc9311  libgcc/config/epiphany/umodsi3.c
! d0a1ba4714ff0b58b39e54a8c657b5e1  libgcc/config/fr30/crti.S
! dad633328edcc29e07e05d75a9e720d1  libgcc/config/fr30/crtn.S
! 9c4fc671338fa92479cc18b52c115896  libgcc/config/fr30/lib1funcs.S
  ee1781f6076fe4696c4710d29bcaa9f2  libgcc/config/fr30/t-fr30
! 0b977a60fdf6c0c7e422267a85f3b0b0  libgcc/config/frv/cmovd.c
! f1661477e553a69a22e9fa08cc7b293d  libgcc/config/frv/cmovh.c
! 240c0b424f68491d01952ffadcf12025  libgcc/config/frv/cmovw.c
! ef4943dcb1849009eb767a17a832e300  libgcc/config/frv/elf-lib.h
! aeb9260fde36398dff7067bb21182c5f  libgcc/config/frv/frv-abi.h
! 703e5fb70bea56673feb6e8c35027b42  libgcc/config/frv/frvbegin.c
! 6d90b9fd3f29b7e96b8565c8b5020b86  libgcc/config/frv/frvend.c
! 9e776956ceed7133a03b9b7752b96494  libgcc/config/frv/lib1funcs.S
! ee1b829a75166ef28d032e4cb2ce852f  libgcc/config/frv/libgcc-glibc.ver
  519042a46e82243706e07f0df8d12e35  libgcc/config/frv/modi.c
  f7d4923f0512faafd07369fa6bccd718  libgcc/config/frv/t-frv
  edf3d4afc7174e81e4b47c0bb0de7522  libgcc/config/frv/t-linux
--- 118350,118436 ----
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crti.S
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crtn.S
  8d4717fef859f166f4ef387b932a72f1  libgcc/config/bpf/t-bpf
! 9514a226707641b004997e1295386928  libgcc/config/c6x/c6x-abi.h
! 7ba84d814aa8ccc75f535fbe2e4bfafd  libgcc/config/c6x/crti.S
! 62f845cde9ffdeee4a681922f1882380  libgcc/config/c6x/crtn.S
! 915c33dd5fb9caf0b2a7148ff3b24428  libgcc/config/c6x/eqd.c
! c861991fe37fdd22807175b7149eeca5  libgcc/config/c6x/eqf.c
! ba945b1cc75596226683f90da5e87aee  libgcc/config/c6x/ged.c
! 634efe2cc938fe1cba96fa69343a675e  libgcc/config/c6x/gef.c
! 7cdbe2c3cd51830f170c2f0449d886b0  libgcc/config/c6x/gtd.c
! 768ce20c043d3163692a4938f2132b0e  libgcc/config/c6x/gtf.c
! 2da485cc417d6af91a54d13bde99e408  libgcc/config/c6x/led.c
! 932cd651ee93b6cabe6a4e87757412fa  libgcc/config/c6x/lef.c
! 36175a8a70c680fb98ce5729295ce0a1  libgcc/config/c6x/lib1funcs.S
! 9b3ab33192e55ee6d8a7b42c665409b7  libgcc/config/c6x/libgcc-eabi.ver
  9068a836854af657b1b590da0c0659f1  libgcc/config/c6x/libunwind.S
! 4214570c3ea9edccaa99fa1be4676be8  libgcc/config/c6x/ltd.c
! 22ad65ecde604fc85b9882397cdee307  libgcc/config/c6x/ltf.c
! 2808ef04d4135a1f8ef39b98614ab67e  libgcc/config/c6x/pr-support.c
! f8d0faa4059275b4b1f4bb2088da62a3  libgcc/config/c6x/sfp-machine.h
  e001c742f33c68e3a33a709c345e0c3f  libgcc/config/c6x/t-elf
  7be94443a1640eded81b166ae8fe575f  libgcc/config/c6x/t-uclinux
! 1434d7981eb1c5a17b1327574971cb30  libgcc/config/c6x/unwind-c6x.c
! 9e80b635f414a0a37b331ea0a06d4687  libgcc/config/c6x/unwind-c6x.h
! 22285798b40859d36b3822812439bc0b  libgcc/config/cris/arit.c
! 1b2c366c2b3b049a8ff2a81a962f7574  libgcc/config/cris/mulsi3.S
! 6da8b4da183f017e0deb7ab3b98d52fb  libgcc/config/cris/sfp-machine.h
  e42743c62236880a4788e60d1acb3424  libgcc/config/cris/t-cris
  b9dc89a49f32db0757703a40d18557af  libgcc/config/cris/t-elfmulti
! bae42578fe65e07202ecc489da388dd5  libgcc/config/cris/umulsidi3.S
! 2f4ba46d81b3f6b413982bbc39dc24d1  libgcc/config/csky/crti.S
! 8264a712bf528170e84625756472802f  libgcc/config/csky/crtn.S
! 1bca818129c467412ba07966788acc94  libgcc/config/csky/lib1funcs.S
! 776922b960e54383b050aba0a8e073e6  libgcc/config/csky/linux-atomic.c
! 9ca9d006c13c1ba09174c2a1b3c0789b  libgcc/config/csky/linux-unwind.h
! 80e93322c30764c78f3a6aa156a96b40  libgcc/config/csky/t-csky
! 42bc8f74f13895ba6a29fbd6388df687  libgcc/config/csky/t-linux-csky
! f527c73822a2989fe73290036d8fa919  libgcc/config/darwin-64.c
! 3d168567731e2ccec1f353e57db83ef4  libgcc/config/darwin-crt-tm.c
! fc04e85b71906475f19f3e091e06cb12  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
  416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
! 7d0ffa0e1a958bbe2f948bfcbf4a2141  libgcc/config/epiphany/crti.S
! 8d6efe701483dafae911ea345ca49c1d  libgcc/config/epiphany/crtint.S
! be1d566f2a21e3fa5d54266ee7b76dcd  libgcc/config/epiphany/crtm1reg-r43.S
! 2e3c165c77ead113dd31b67fdb5076b5  libgcc/config/epiphany/crtm1reg-r63.S
! ed9817599511a7b859a7ce1ad6ab537c  libgcc/config/epiphany/crtn.S
! 6c76393388ba4842a168092aab109947  libgcc/config/epiphany/crtrunc.S
! 2c5352f2b813052e769318ccb1d45e1a  libgcc/config/epiphany/divsi3-float.S
! dfb6f50a677c1ba01dcf440d478a121d  libgcc/config/epiphany/divsi3.S
! b05e3c70904dd6772e3441140c0746fe  libgcc/config/epiphany/divsi3.c
! 48435994d39dc765d9403f14d2297135  libgcc/config/epiphany/epiphany-asm.h
! a3534057bce680bfdfd7adbc9bc5389c  libgcc/config/epiphany/ieee-754/eqsf2.S
! 0e8910b67d34861108941143eb8f13f6  libgcc/config/epiphany/ieee-754/fast_div.S
! 74f067dbe58899bd1e1f3179f9eb941f  libgcc/config/epiphany/ieee-754/gtesf2.S
! 1681597096c42ac2fd635d487fb34835  libgcc/config/epiphany/ieee-754/ordsf2.S
! 70ef55b2cfcc8420e55a4cad31a9e42b  libgcc/config/epiphany/ieee-754/uneqsf2.S
! 559cc0b1f4d5c49a533fae6cec7c1eec  libgcc/config/epiphany/modsi3-float.S
! fd0c08f29a20f699cc4b376f55b1666c  libgcc/config/epiphany/modsi3.S
! c83941c167ecfecf0035622992a85abe  libgcc/config/epiphany/modsi3.c
! 8a357e1960e923f8dc52c2093271187b  libgcc/config/epiphany/mulsi3.c
  d76fc3e367e9f20ca1d6e4b8ef979bd9  libgcc/config/epiphany/t-custom-eqsf
! 69537f13d8befb6e091791caa44ad08a  libgcc/config/epiphany/t-epiphany
! ed7e5e83799cb8f13936dd11882300b1  libgcc/config/epiphany/udivsi3-float.S
! a4183718a312a4e3aa62a7d7b5689607  libgcc/config/epiphany/udivsi3-float.c
! 4a0f899e0dea2bebc5807575b0dfdd16  libgcc/config/epiphany/udivsi3.S
! d3036692e40fe43e663d358199d7343a  libgcc/config/epiphany/udivsi3.c
! 5518638804ef8c8a78142a7d88fabd13  libgcc/config/epiphany/umodsi3-float.S
! e22c87b08110fb93193f0eb365c8d27f  libgcc/config/epiphany/umodsi3.S
! 95633149d8a8d945ecfdbb5b492ccd24  libgcc/config/epiphany/umodsi3.c
! b0943c5aca614b6ef8f3ea9adfb41cae  libgcc/config/fr30/crti.S
! 4281ce06f33e2a35b1ef73dbf5360130  libgcc/config/fr30/crtn.S
! 976f85e641ec0e691ac64246449b2015  libgcc/config/fr30/lib1funcs.S
  ee1781f6076fe4696c4710d29bcaa9f2  libgcc/config/fr30/t-fr30
! 6702c0a7eff9f9d5fbad12b10180b55b  libgcc/config/frv/cmovd.c
! 6b542d4cb83f2b6a98a3787dbefa3efc  libgcc/config/frv/cmovh.c
! 5afd4006a965169c6300afa495b09700  libgcc/config/frv/cmovw.c
! 34e3256910650d0a4d1e3b5eee9e45dc  libgcc/config/frv/elf-lib.h
! 781bde503f649d55fb2308ec6b8c66da  libgcc/config/frv/frv-abi.h
! ba97b7f1972ee2a8635e92d25a83096a  libgcc/config/frv/frvbegin.c
! 5e93d6b1cbfe1a80764dbb3e0f2cd1bc  libgcc/config/frv/frvend.c
! f6a828b37417229afd6584d0c79dd7a7  libgcc/config/frv/lib1funcs.S
! 46ecaaeb73435b13ba39482975718368  libgcc/config/frv/libgcc-glibc.ver
  519042a46e82243706e07f0df8d12e35  libgcc/config/frv/modi.c
  f7d4923f0512faafd07369fa6bccd718  libgcc/config/frv/t-frv
  edf3d4afc7174e81e4b47c0bb0de7522  libgcc/config/frv/t-linux
*************** c363a68408b30fe1ae97782cfb8a4ac1  libgcc
*** 110814,110865 ****
  8655cce7a18893493cc17391c6ce08d5  libgcc/config/frv/ulltof.c
  756aa4a0c6f33a0203e0ea6594c19e38  libgcc/config/frv/umodi.c
  63a86c0eba76d6ea5b13351162b69e89  libgcc/config/ft32/crti-hw.S
! 7e9a298283f245422195def73266283a  libgcc/config/ft32/crti.S
! 6285a8f1a2be9e88a9574766260a5289  libgcc/config/ft32/crtn.S
  4d440904c0919d8bade72af495ee932b  libgcc/config/ft32/epilog.S
! 42424538e321b3a535def5efc6973978  libgcc/config/ft32/lib1funcs.S
  fd43d6ac7bf2546f0be1ff27b92cf494  libgcc/config/ft32/prolog.S
  7651ba55a7767a127d4d8d9e1798196d  libgcc/config/ft32/sfp-machine.h
  de53de7ae179ee6c1472a52a63fffec9  libgcc/config/ft32/t-ft32
! b538a84579b598cd02fcc77dbb84af19  libgcc/config/gcn/amdgcn_veclib.h
! fd7f06254381a728f46f1a50e7b6b183  libgcc/config/gcn/atomic.c
! 891d5fc89f6b2763f043f90ce4151bdf  libgcc/config/gcn/crt0.c
! a45e9e820eacf501956af99106d50b04  libgcc/config/gcn/gthr-gcn.h
! 4fee10813e4ad7d003c461cd8dafa9f2  libgcc/config/gcn/lib2-bswapti2.c
! 92a5fe0300c6af5caabf668df27b2577  libgcc/config/gcn/lib2-divmod-di.c
! 49b271d9f008709e0b91edafb1e04e80  libgcc/config/gcn/lib2-divmod.c
! de60ba71e6f1fdc0513e9acde5e2c5d4  libgcc/config/gcn/lib2-gcn.h
! e011d8a913c0ed9aa1dbade7715aa36a  libgcc/config/gcn/lib2-vec_divmod-di.c
! 5c267940989f2c79999217fb95fd2667  libgcc/config/gcn/lib2-vec_divmod-hi.c
! 97ba7d60f927a0f43cc7b9e6de846938  libgcc/config/gcn/lib2-vec_divmod-qi.c
! 508f9128ffb60c3e76280526073f382e  libgcc/config/gcn/lib2-vec_divmod.c
  c9b91505a24abd3bc6b11e0f094edee0  libgcc/config/gcn/sfp-machine.h
! 7ebeb7750a33de8c9db7cc3c10c3526e  libgcc/config/gcn/t-amdgcn
! 2d343fab6ac01afd3a54759470fb2be2  libgcc/config/gcn/unwind-gcn.c
! 15d3a03b30563d003858c0f94ece338a  libgcc/config/gthr-lynx.h
! f1a066b0bb29c044b50019c299e6a578  libgcc/config/gthr-rtems.h
! f9b07781fdd0b301a8380474f4981217  libgcc/config/gthr-vxworks-cond.c
! 89c811324f74212114816f17940e7c3c  libgcc/config/gthr-vxworks-thread.c
! cfef45b850e4043f39b7788c93c533ff  libgcc/config/gthr-vxworks-tls.c
! bc503b86577778779b9b92ed45be4faa  libgcc/config/gthr-vxworks.c
! 83f8a5bf4c4e1bc86a1f811d640b93a7  libgcc/config/gthr-vxworks.h
! 8f991382c279022fc81ca806d9833f0f  libgcc/config/h8300/clzhi2.c
! 1ab9f03d76ba9da920a44a66e36830b4  libgcc/config/h8300/crti.S
! fe13169d550b59afb935aa0058bcf087  libgcc/config/h8300/crtn.S
! 0747a45e45b952906555a158a53ae9b9  libgcc/config/h8300/ctzhi2.c
! 16140f8e775d9d498956956994194041  libgcc/config/h8300/fixunssfsi.c
  378e602ed89f497e602776d99b46d7ad  libgcc/config/h8300/h8300-lib.h
! 76469b641117aecbc6874f02c3e0ca52  libgcc/config/h8300/lib1funcs.S
! be9be5db47f4cd95262e883253ff5dda  libgcc/config/h8300/parityhi2.c
! af78535d02fcf8a5823ad093fa92ec7d  libgcc/config/h8300/popcounthi2.c
! 67a8baabd45fa627a45424c5498a2e51  libgcc/config/h8300/sfp-machine.h
! e002eff640bc32723d0216927bc99406  libgcc/config/h8300/t-h8300
  5e306047059c21ece876039122734094  libgcc/config/h8300/t-linux
! afa847a2210a1715247b40ed05b42778  libgcc/config/hardfp.c
  475eef8a468bce21734a4397bd19ae6d  libgcc/config/i386/32/sfp-machine.h
  33fdee54eed1c202a39234d129f2a7ae  libgcc/config/i386/32/t-iamcu
  8271562f1de2b3fa5b976454b83bfdc0  libgcc/config/i386/32/t-softfp
! c758ee73501a093113fd835ada4146b2  libgcc/config/i386/32/tf-signs.c
  c823b0cff478388588a9aabedaa93068  libgcc/config/i386/64/_divtc3.c
  8f7ff4449be9588e09da2929b14b1647  libgcc/config/i386/64/_multc3.c
  6268512927fae19eb0e34459520beb28  libgcc/config/i386/64/_powitf2.c
--- 118440,118492 ----
  8655cce7a18893493cc17391c6ce08d5  libgcc/config/frv/ulltof.c
  756aa4a0c6f33a0203e0ea6594c19e38  libgcc/config/frv/umodi.c
  63a86c0eba76d6ea5b13351162b69e89  libgcc/config/ft32/crti-hw.S
! a0ba76fd774739e0888c90ec3c38e8b6  libgcc/config/ft32/crti.S
! cc9385a504affe30ec5c2051a9dbaae2  libgcc/config/ft32/crtn.S
  4d440904c0919d8bade72af495ee932b  libgcc/config/ft32/epilog.S
! a0fa8639bfa74fe0edff88ba5fb0873e  libgcc/config/ft32/lib1funcs.S
  fd43d6ac7bf2546f0be1ff27b92cf494  libgcc/config/ft32/prolog.S
  7651ba55a7767a127d4d8d9e1798196d  libgcc/config/ft32/sfp-machine.h
  de53de7ae179ee6c1472a52a63fffec9  libgcc/config/ft32/t-ft32
! 787f73bb268370989706ff63429572a0  libgcc/config/gcn/amdgcn_veclib.h
! c7eba6e6adeda2a8b7c9a948d9b2a63e  libgcc/config/gcn/atomic.c
! 2d88828185bb2adae0135f0ee8ae7db8  libgcc/config/gcn/crt0.c
! 808400d4ce93aa0151a92eac6f15a87c  libgcc/config/gcn/gthr-gcn.h
! 4be9965291734f95b84a15c0c688cfbc  libgcc/config/gcn/lib2-bswapti2.c
! a753f47f2e2c7f8ac29823a32abfe828  libgcc/config/gcn/lib2-divmod-di.c
! c9463aab240cbdf2cd1020eb59d09bfa  libgcc/config/gcn/lib2-divmod.c
! 60d23ae14b9037e9341b44566f720edb  libgcc/config/gcn/lib2-gcn.h
! df8f61b82e5d6fa61fb5a8bd92c40d66  libgcc/config/gcn/lib2-vec_divmod-di.c
! e6279c13e1c0b85f88a19704183a526f  libgcc/config/gcn/lib2-vec_divmod-hi.c
! a306e26c695e424d7c3790397be1db1d  libgcc/config/gcn/lib2-vec_divmod-qi.c
! 5fb9c96d61c72b4842442a388e9de6d6  libgcc/config/gcn/lib2-vec_divmod.c
  c9b91505a24abd3bc6b11e0f094edee0  libgcc/config/gcn/sfp-machine.h
! 338498ae766d555b62a65dd151d16ec5  libgcc/config/gcn/t-amdgcn
! 6c8b6245d4178fa81549fadca1a40511  libgcc/config/gcn/unwind-gcn.c
! 1aa2fed5799ecd25ee8be582d18e7e78  libgcc/config/gthr-lynx.h
! 5196a8b77bc387930fd669d289365a0f  libgcc/config/gthr-rtems.h
! 7733368685a8a638218391711d144952  libgcc/config/gthr-vxworks-cond.c
! 245b900eccc4d3ee9d6a6c96c03f8e77  libgcc/config/gthr-vxworks-thread.c
! aa27b5bfc0131bad6a2e347158405b11  libgcc/config/gthr-vxworks-tls.c
! aea1a23d460d879ca86d669a1f8abaee  libgcc/config/gthr-vxworks.c
! 470ee5b0a76fa494b19d4db77d46875a  libgcc/config/gthr-vxworks.h
! 796207787c81abf4bfa2b3425f7e8778  libgcc/config/h8300/clzhi2.c
! 8e081d4d4a1510cbe1dbdb435a5800f1  libgcc/config/h8300/crti.S
! fd5cee22709cadfe51beb44507b421f4  libgcc/config/h8300/crtn.S
! 4ca90a7c20a0992108807d27af4fe20c  libgcc/config/h8300/ctzhi2.c
! 23d5d473765f831a3bbfd1b4718ad05e  libgcc/config/h8300/ffshi2.c
! 9db84fef81088ee7ba3cacabb62bf44c  libgcc/config/h8300/fixunssfsi.c
  378e602ed89f497e602776d99b46d7ad  libgcc/config/h8300/h8300-lib.h
! 1c23cd4bc84313e7e963853ce476b185  libgcc/config/h8300/lib1funcs.S
! 408235c25baa95e67c4216e2e33a7bd8  libgcc/config/h8300/parityhi2.c
! 883cddc4f34f4948d77dd4c9f879e4ed  libgcc/config/h8300/popcounthi2.c
! e97bda1ea310b073e90e48dfa972b46a  libgcc/config/h8300/sfp-machine.h
! 40b9f3d0eab4e0a1133e3eb612b47800  libgcc/config/h8300/t-h8300
  5e306047059c21ece876039122734094  libgcc/config/h8300/t-linux
! c7e1d4e1711c51198c2f9c3bf4d3fa91  libgcc/config/hardfp.c
  475eef8a468bce21734a4397bd19ae6d  libgcc/config/i386/32/sfp-machine.h
  33fdee54eed1c202a39234d129f2a7ae  libgcc/config/i386/32/t-iamcu
  8271562f1de2b3fa5b976454b83bfdc0  libgcc/config/i386/32/t-softfp
! 8019b1510c750bd4a22e3ab1926f6244  libgcc/config/i386/32/tf-signs.c
  c823b0cff478388588a9aabedaa93068  libgcc/config/i386/64/_divtc3.c
  8f7ff4449be9588e09da2929b14b1647  libgcc/config/i386/64/_multc3.c
  6268512927fae19eb0e34459520beb28  libgcc/config/i386/64/_powitf2.c
*************** d4cd30e890b5d772946c79359704fc0b  libgcc
*** 110877,110922 ****
  0987e17186e8a33dbf7c39d7934d4861  libgcc/config/i386/avx_resms64x.S
  ef88ad808d3f1101d7e96fae5706660f  libgcc/config/i386/avx_savms64.S
  12b992c114b195cf886a7a218b0d1e54  libgcc/config/i386/avx_savms64f.S
! a21d0e777f33ac54ca89deed0a5010ff  libgcc/config/i386/cpuinfo.c
! 26cd0b5e05a701f09622efc21d164638  libgcc/config/i386/crtfastmath.c
! b1782e1e9b62270ddd551180199309db  libgcc/config/i386/crti.S
! 5cd1e11bf0eea882e835e16e3d0e117e  libgcc/config/i386/crtn.S
! 3a4c523d4a09c070cb2b990310a0e114  libgcc/config/i386/crtprec.c
! 26857d5c358c887402a45ab784d7a73e  libgcc/config/i386/cygming-crtbegin.c
! 5e62debda62749b7f1832623e908e3e5  libgcc/config/i386/cygming-crtend.c
! cd06dacd3c6e7735a51d493b374fd852  libgcc/config/i386/cygwin.S
! f022d57a93bce79245aed51bd5f2fec4  libgcc/config/i386/darwin-lib.h
! 7f613b6c98cca2161781228a9b8d76ab  libgcc/config/i386/dragonfly-unwind.h
! 06b2d9c6a8510226c4b18af11a9079e3  libgcc/config/i386/elf-lib.h
! 1241d6ea85c6e99855a4688348564264  libgcc/config/i386/enable-execute-stack-mingw32.c
! 2658e3b7268d14f17ced9d182e88408d  libgcc/config/i386/freebsd-unwind.h
! 42ebcc5e74e7db4c0ab5be8396bf79e5  libgcc/config/i386/gnu-unwind.h
! 2026016669b053ff3a892071ec6dd112  libgcc/config/i386/gthr-mcf.h
! 72f01aa05ca184d7f84cdf6cb77e006e  libgcc/config/i386/gthr-win32-cond.c
! f91382da696c869760172830231f4d7e  libgcc/config/i386/gthr-win32-thread.c
! b3434092838869ae1b9088d4639b814a  libgcc/config/i386/gthr-win32.c
! 7b8fb3c995cbab8d1f01a87b9c9e54fe  libgcc/config/i386/gthr-win32.h
  74b4d2fb578bea1c8304a4d83dd1bac4  libgcc/config/i386/heap-trampoline.c
! 308fee61a66ac2ad20581354be8f4179  libgcc/config/i386/i386-asm.h
! 7481fc966b51d9b56e33e77da9ad72ef  libgcc/config/i386/libgcc-bsd.ver
! 9b95786074a6958a5996ed6bacba29db  libgcc/config/i386/libgcc-cygming.ver
  c0eeffed85533a88799ba83ee54ea896  libgcc/config/i386/libgcc-darwin.ver
! c299027ebc8c4a06b22a8c2ae4b1855b  libgcc/config/i386/libgcc-glibc.ver
! a5da39de030949a9b4146780351489e3  libgcc/config/i386/libgcc-mingw.ver
! 6518abc25bdf854e8cae2c07c842552d  libgcc/config/i386/libgcc-sol2.ver
! b6ec70eb0a94495bb4b3d6062d72ebf1  libgcc/config/i386/linux-unwind.h
! a8fff8212325e70f4a0a6acbf6ba8f9f  libgcc/config/i386/morestack.S
! 29f552487a00578189e543529d7daf2b  libgcc/config/i386/resms64.h
! 2b134080b7884f58ae1bbc89e521ed7f  libgcc/config/i386/resms64f.h
! e723307285c86143eb61fa8c61b28abc  libgcc/config/i386/resms64fx.h
! 20271eae03e1695e6712d4b45fbe86b8  libgcc/config/i386/resms64x.h
! 9e423fa8baa5f3b3eb1531c760df88dd  libgcc/config/i386/savms64.h
! cf2238d4ee5d4973f07bde588aa9675f  libgcc/config/i386/savms64f.h
! 74da93eff9178232614f4683bde255f7  libgcc/config/i386/sfp-exceptions.c
  d15ae0137ca61a07b6d128c923e73d53  libgcc/config/i386/sfp-machine.h
! bfa51bf06e0b3cb9584fd3d4469ed660  libgcc/config/i386/shadow-stack-unwind.h
! cd6cec9408a0b2d56c62e2f15f241c4d  libgcc/config/i386/sol2-c1.S
! eff1d8ebe32d309a7bac461c706ac14a  libgcc/config/i386/sol2-unwind.h
  597d8ce804b1c2e917fdb1870e7ea0ac  libgcc/config/i386/sse_resms64.S
  bedbda9d38d546838a72b745204a631f  libgcc/config/i386/sse_resms64f.S
  34b800926e66c174903d05295a562acd  libgcc/config/i386/sse_resms64fx.S
--- 118504,118548 ----
  0987e17186e8a33dbf7c39d7934d4861  libgcc/config/i386/avx_resms64x.S
  ef88ad808d3f1101d7e96fae5706660f  libgcc/config/i386/avx_savms64.S
  12b992c114b195cf886a7a218b0d1e54  libgcc/config/i386/avx_savms64f.S
! 1e87f32d55d575474d42ee48ecdcd4a2  libgcc/config/i386/cpuinfo.c
! 3fcd082f1b84e1a798d0653e9659c328  libgcc/config/i386/crtfastmath.c
! 796b61f8a09ed17b7e4556b60a69c7cf  libgcc/config/i386/crti.S
! 6841bd84d149ca66670182541c655477  libgcc/config/i386/crtn.S
! f1482ed16126cf4d7c1a50a329cebef3  libgcc/config/i386/crtprec.c
! a70eda0ced939655058a7b4605505c10  libgcc/config/i386/cygming-crtbegin.c
! 890e4dbe3ae75b0c60bdc2b667f58bb8  libgcc/config/i386/cygming-crtend.c
! e7f8702a1897387e8965b706c0988fe1  libgcc/config/i386/cygwin.S
! cc940d304ae6bb374bbbe07a41565b5c  libgcc/config/i386/darwin-lib.h
! 8afbe0e5a7147db5d84565952aa43abd  libgcc/config/i386/dragonfly-unwind.h
! 765637897318d9627baebb3c96439290  libgcc/config/i386/elf-lib.h
! 0c4d4d2988cb92a13f94679d32c84bf4  libgcc/config/i386/enable-execute-stack-mingw32.c
! 9d4643e7f8fe5204bf61926a02ce7833  libgcc/config/i386/freebsd-unwind.h
! 107c0943ff6d6ec064c2d3d28bedcb1d  libgcc/config/i386/gnu-unwind.h
! 65e57bb3eca1374fa0ded0d8c1517cdf  libgcc/config/i386/gthr-mcf.h
! d31800df2855590bc39bfa581e8efa37  libgcc/config/i386/gthr-win32-cond.c
! d0e56ce2df2a31a26642ded35543acc5  libgcc/config/i386/gthr-win32-thread.c
! 97e7bfef2a825ce872e1e8ba91821c94  libgcc/config/i386/gthr-win32.c
! a9d1ef98019fc8eb83e3cc430fd9aebd  libgcc/config/i386/gthr-win32.h
  74b4d2fb578bea1c8304a4d83dd1bac4  libgcc/config/i386/heap-trampoline.c
! b4252718ecae9a48f0e1ded943735c72  libgcc/config/i386/i386-asm.h
! 2a9057631aa6ddf72294b05925a1bd53  libgcc/config/i386/libgcc-bsd.ver
! ba2f94bff41ddb8ec2855634c234c3bd  libgcc/config/i386/libgcc-cygming.ver
  c0eeffed85533a88799ba83ee54ea896  libgcc/config/i386/libgcc-darwin.ver
! 4c9a719068b1a98b718d0f0f0cadff68  libgcc/config/i386/libgcc-glibc.ver
! cf77f65681cb0d27b528daa5ff54d5e0  libgcc/config/i386/libgcc-mingw.ver
! e0c9b41f5b24e4ce4e67af8db1b98658  libgcc/config/i386/libgcc-sol2.ver
! e5d4a4dc91f95ef6c6c9d0342bd9ba87  libgcc/config/i386/linux-unwind.h
! 5c92c3c7fee3c941398fd90d67568b39  libgcc/config/i386/morestack.S
! f50ba7e076331ecdf8d8b72d34b8c3cd  libgcc/config/i386/resms64.h
! dfd8d5c8a29e0a23a5780ea8a5d791a3  libgcc/config/i386/resms64f.h
! b744e0bfa054088bdebb8ba2ee5be990  libgcc/config/i386/resms64fx.h
! c9d83afc55f4e037638bf5c190907b0c  libgcc/config/i386/resms64x.h
! 0d9043efb0e27a841da5af9b8bae1586  libgcc/config/i386/savms64.h
! 07bdace67c4cf57b34c0184d179e0992  libgcc/config/i386/savms64f.h
! 211baba1a8548db0be335f4a58780114  libgcc/config/i386/sfp-exceptions.c
  d15ae0137ca61a07b6d128c923e73d53  libgcc/config/i386/sfp-machine.h
! 96762b4f6528fe8a6107d5175015ba26  libgcc/config/i386/shadow-stack-unwind.h
! 403d595e6ba970c4ad7d09dd72e1b695  libgcc/config/i386/sol2-unwind.h
  597d8ce804b1c2e917fdb1870e7ea0ac  libgcc/config/i386/sse_resms64.S
  bedbda9d38d546838a72b745204a631f  libgcc/config/i386/sse_resms64f.S
  34b800926e66c174903d05295a562acd  libgcc/config/i386/sse_resms64fx.S
*************** c648b3441acf03960443d5a3d1b7e4d7  libgcc
*** 110930,110946 ****
  c6afe173595c17ffb20e9c76a90f5158  libgcc/config/i386/t-crtstuff
  9bd719f83d655207581528ab5e7b7354  libgcc/config/i386/t-cygming
  a56b9c84f7b8c5427982b9c1ac4d0268  libgcc/config/i386/t-cygwin
! ab24e8c90feb5a86f9ff59988a9bcc43  libgcc/config/i386/t-darwin
  2005c91878a4a69d60c9418077eefa97  libgcc/config/i386/t-dlldir
  0a87d076e42adda36ab55bbaaac59649  libgcc/config/i386/t-dlldir-x
  68adad1226ee1737a6a8d12b84a63297  libgcc/config/i386/t-dragonfly
  3bf8d762f9c0bcbc4bfd5fe36b97ae23  libgcc/config/i386/t-dw2-eh
  9d82d05d119f031c6327b2b2a6015871  libgcc/config/i386/t-freebsd
- 21a697b3742c466bc6b268a906529ab6  libgcc/config/i386/t-gthr-win32
  75e59dd5f976bfaf5efca31aa34d0926  libgcc/config/i386/t-heap-trampoline
  411ab7f31d63e25ae8f98aef0132e384  libgcc/config/i386/t-linux
  1bbab852ec95edb798886ed925c7e989  libgcc/config/i386/t-mingw-mcfgthread
- 80f832afb70afb11a4a1c2e403944b73  libgcc/config/i386/t-mingw-pthread
  226cdff862bdab3d98ad952ff21a40a8  libgcc/config/i386/t-mingw32
  5d85ed8e4ae93489c3433d591a68312c  libgcc/config/i386/t-msabi
  0c1d77cb54c2a81694d96a9ff5e8180c  libgcc/config/i386/t-nto
--- 118556,118570 ----
  c6afe173595c17ffb20e9c76a90f5158  libgcc/config/i386/t-crtstuff
  9bd719f83d655207581528ab5e7b7354  libgcc/config/i386/t-cygming
  a56b9c84f7b8c5427982b9c1ac4d0268  libgcc/config/i386/t-cygwin
! e831a13e330d0eb6ffa779c755d5fe3d  libgcc/config/i386/t-darwin
  2005c91878a4a69d60c9418077eefa97  libgcc/config/i386/t-dlldir
  0a87d076e42adda36ab55bbaaac59649  libgcc/config/i386/t-dlldir-x
  68adad1226ee1737a6a8d12b84a63297  libgcc/config/i386/t-dragonfly
  3bf8d762f9c0bcbc4bfd5fe36b97ae23  libgcc/config/i386/t-dw2-eh
  9d82d05d119f031c6327b2b2a6015871  libgcc/config/i386/t-freebsd
  75e59dd5f976bfaf5efca31aa34d0926  libgcc/config/i386/t-heap-trampoline
  411ab7f31d63e25ae8f98aef0132e384  libgcc/config/i386/t-linux
  1bbab852ec95edb798886ed925c7e989  libgcc/config/i386/t-mingw-mcfgthread
  226cdff862bdab3d98ad952ff21a40a8  libgcc/config/i386/t-mingw32
  5d85ed8e4ae93489c3433d591a68312c  libgcc/config/i386/t-msabi
  0c1d77cb54c2a81694d96a9ff5e8180c  libgcc/config/i386/t-nto
*************** aae3ba90f7a9172b2dff6b8d61c25735  libgcc
*** 110951,110976 ****
  48d32a96cdfa55f737d1297cf2293bb1  libgcc/config/i386/t-softfp
  e3f37cf5fbd829324e763c71726907a2  libgcc/config/i386/t-sol2
  89444a8a78bd3aa7426e9525cdd7ce25  libgcc/config/i386/t-stack-i386
! 1f8185faa8126ad9735b2ca5f9777194  libgcc/config/i386/value-unwind.h
! a97c2825dde8f372b44c433a4d1dfecb  libgcc/config/i386/w32-unwind.h
  ffc8a68dc02aca1cf8703f6ff29109d3  libgcc/config/ia64/__divxf3.S
  c3b9941b44cdc74dfc42996f7d2d765b  libgcc/config/ia64/_fixtfdi.S
  e5d2feda0a6505570c0a64e52fcae703  libgcc/config/ia64/_fixunstfdi.S
  4a628b33bbcfbe6ace2c47d3e486ec14  libgcc/config/ia64/_floatditf.S
! 9e02b447cbb7f0351707a637bdb9dfb2  libgcc/config/ia64/crtbegin.S
! d4d1af865d9bd280755deb2f82c905eb  libgcc/config/ia64/crtend.S
! c3024fbd735ac6aed677f7adaada4e14  libgcc/config/ia64/crtfastmath.c
! 316d2ad0cbba274c3aa0d61bf63e01f6  libgcc/config/ia64/crti.S
! a5c0e1b627063b6c3201c16b26b075e6  libgcc/config/ia64/crtn.S
  09ae9898a8a15266c60b15a27f0b1ba4  libgcc/config/ia64/divtf3.c
! 6e9e2ae18fc10b7506ceab3065833eeb  libgcc/config/ia64/fde-glibc.c
! d697d58c431479bb1336e3ed96c83d4e  libgcc/config/ia64/fde-vms.c
! 70c21206c238a6018deab55c165501e8  libgcc/config/ia64/lib1funcs.S
! a431a9d7bf65c545f12168d4066074b8  libgcc/config/ia64/libgcc-glibc.ver
! 055f323a2ded7ad99aefb0ab69dd4916  libgcc/config/ia64/libgcc-ia64.ver
! 62755c0d64818f7738112fc6c231b8ad  libgcc/config/ia64/linux-unwind.h
! 31bef683556ca2fd1cff2188cc072113  libgcc/config/ia64/quadlib.c
! e6902f0a3031d4fa376a130707377a0b  libgcc/config/ia64/sfp-exceptions.c
  96123e16288e91bc9fcaeb243516c740  libgcc/config/ia64/sfp-machine.h
  0bb88f6d16035394a23c622ba320a824  libgcc/config/ia64/t-eh-ia64
  33399ed8e4f636769acf666b91d227c6  libgcc/config/ia64/t-hpux
--- 118575,118600 ----
  48d32a96cdfa55f737d1297cf2293bb1  libgcc/config/i386/t-softfp
  e3f37cf5fbd829324e763c71726907a2  libgcc/config/i386/t-sol2
  89444a8a78bd3aa7426e9525cdd7ce25  libgcc/config/i386/t-stack-i386
! cff235df8c560074afb3992b316743fc  libgcc/config/i386/value-unwind.h
! bb8d07d694dddfb84c8db859dde813ce  libgcc/config/i386/w32-unwind.h
  ffc8a68dc02aca1cf8703f6ff29109d3  libgcc/config/ia64/__divxf3.S
  c3b9941b44cdc74dfc42996f7d2d765b  libgcc/config/ia64/_fixtfdi.S
  e5d2feda0a6505570c0a64e52fcae703  libgcc/config/ia64/_fixunstfdi.S
  4a628b33bbcfbe6ace2c47d3e486ec14  libgcc/config/ia64/_floatditf.S
! 75f001bd2cd028fed7dc242bb829af78  libgcc/config/ia64/crtbegin.S
! e056f018f87b490d6c616262298e4a0a  libgcc/config/ia64/crtend.S
! 5736ea456968541f4edcb86f6600638d  libgcc/config/ia64/crtfastmath.c
! 29130af987047d4f202c4024fc98739f  libgcc/config/ia64/crti.S
! 278660b2b17361ca595661392347fcdd  libgcc/config/ia64/crtn.S
  09ae9898a8a15266c60b15a27f0b1ba4  libgcc/config/ia64/divtf3.c
! 91f099d39638251edac8dccb4b6e69e2  libgcc/config/ia64/fde-glibc.c
! 0331b86027186400e7391d9b4c48f6ee  libgcc/config/ia64/fde-vms.c
! f0855f86ad92df2d672811568d003fda  libgcc/config/ia64/lib1funcs.S
! e3c252f06c4c2d0832a322e74b6225c3  libgcc/config/ia64/libgcc-glibc.ver
! 9b2c20e3c6aed6aab0c534973ff484ca  libgcc/config/ia64/libgcc-ia64.ver
! f7ef25ca10a417b681d6e87e2d3e5b80  libgcc/config/ia64/linux-unwind.h
! dc119b678a0ea47232e7607cd411f52d  libgcc/config/ia64/quadlib.c
! 7c5a3680bbc4f6b784e8aba49d402c01  libgcc/config/ia64/sfp-exceptions.c
  96123e16288e91bc9fcaeb243516c740  libgcc/config/ia64/sfp-machine.h
  0bb88f6d16035394a23c622ba320a824  libgcc/config/ia64/t-eh-ia64
  33399ed8e4f636769acf666b91d227c6  libgcc/config/ia64/t-hpux
*************** bbd02bc575b39b813abb3651cde980d7  libgcc
*** 110982,111561 ****
  3cc3f3d4611f64c4d5fc225a72d8ccc4  libgcc/config/ia64/t-softfp
  7508d41329db54ddeccc7e86a6cafae5  libgcc/config/ia64/t-softfp-compat
  552ede49162d3a4fb9e1e113de11e8b5  libgcc/config/ia64/t-vms
! 5c2fa2b474e076978897abfd4276d7a5  libgcc/config/ia64/tf-signs.c
! 3625d586ab975665d262afe69ccfa949  libgcc/config/ia64/unwind-ia64.c
! 1dfedfb0a0627c930d50de149070da79  libgcc/config/ia64/unwind-ia64.h
! 73aef612eb448073d884444782cd150f  libgcc/config/ia64/vms-crtinit.S
! 867c89ef316cd7cb05511f42e5b62500  libgcc/config/ia64/vms-unwind.h
! ed33843cb7d615866bc3fb669b8efff7  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 9bca023f0799c2b1e090a41ccad24c6d  libgcc/config/libbid/ChangeLog
! 5cd3e427016c3a5e21b5fc45a6d0c42c  libgcc/config/libbid/_addsub_dd.c
! e36dad1ba6d303d24d5fadbe7e922379  libgcc/config/libbid/_addsub_sd.c
! c44095a32e8f3d04293d78477872c817  libgcc/config/libbid/_addsub_td.c
! 1cf6709f15425fb0863e82d1d7ab3e58  libgcc/config/libbid/_dd_to_df.c
! 8e93cdf6ca29ba790a42624df269c8d1  libgcc/config/libbid/_dd_to_di.c
! 4207ebd623a98ef3b007dd0a640156f0  libgcc/config/libbid/_dd_to_hf.c
! 7ee5aac0939f575bfe293d408dc7ade0  libgcc/config/libbid/_dd_to_sd.c
! 79b1944bb78d98794a1cba1424532ca0  libgcc/config/libbid/_dd_to_sf.c
! 8a6bf7abbf0ab706b257c79accf0b6e8  libgcc/config/libbid/_dd_to_si.c
! 0f8c0d22a98ae1a1e7af4a705cd96966  libgcc/config/libbid/_dd_to_td.c
! be19cefedbb84328d924be6517b37b12  libgcc/config/libbid/_dd_to_tf.c
! 068bef88aa3155d7e0dab2daf275e050  libgcc/config/libbid/_dd_to_udi.c
! e6137169ff6af7fc6ed51238f1b2632c  libgcc/config/libbid/_dd_to_usi.c
! 65ffa901cc9b84ea5f158fc12145f824  libgcc/config/libbid/_dd_to_xf.c
! a6b2ccb687391ce9a8e789d61c221a18  libgcc/config/libbid/_df_to_dd.c
! 051523e35542f536885bc01fab6a3c55  libgcc/config/libbid/_df_to_sd.c
! 223581f5f0965063b34b1812eb4d86ff  libgcc/config/libbid/_df_to_td.c
! dfaabc72ab8083d162408e2b5e2a4ea3  libgcc/config/libbid/_di_to_dd.c
! 991bf6c7370eb6b559f8113569214809  libgcc/config/libbid/_di_to_sd.c
! eb126e20ddbe697d14e7805dbaaa3c3b  libgcc/config/libbid/_di_to_td.c
! 61d720e181b38109419ecfc29d2e8aab  libgcc/config/libbid/_div_dd.c
! 54f20fa7bad78b47e5463dc9147cd470  libgcc/config/libbid/_div_sd.c
! e189b38f874a7215f71c6e6f70b0120f  libgcc/config/libbid/_div_td.c
! bf87162cb2481209c3bac338d27d0756  libgcc/config/libbid/_eq_dd.c
! 3d70ad18dcaf29f727f5ff3d5d78be77  libgcc/config/libbid/_eq_sd.c
! 8d9226794baba74e66dfc39bdcbf8d5d  libgcc/config/libbid/_eq_td.c
! 24ce6fe6bbd78ca857ce5d55990ca8aa  libgcc/config/libbid/_ge_dd.c
! 1703d2d031d57014ffb39c97c9036105  libgcc/config/libbid/_ge_sd.c
! b5d8bfd57917adddd2043f5274e8b82f  libgcc/config/libbid/_ge_td.c
! 7fdf9d43acefcb0d04b3fe70608a68f8  libgcc/config/libbid/_gt_dd.c
! a0454c88594a25dcf84425a520948204  libgcc/config/libbid/_gt_sd.c
! efe6341ad139bd3693fc425bd14ccae9  libgcc/config/libbid/_gt_td.c
! 722b412542d38a238aee3238dd331777  libgcc/config/libbid/_hf_to_dd.c
! a8b8e1811f5743da8b876da6aed7bb6c  libgcc/config/libbid/_hf_to_sd.c
! 91a55b33bc88bc230c32e7a9b95d688c  libgcc/config/libbid/_hf_to_td.c
! f7bdfdc3757e6ae132d163cb4c1dfae4  libgcc/config/libbid/_isinfd128.c
! 356bbc27535fed3310862df1dddcbff6  libgcc/config/libbid/_isinfd32.c
! 08f6cc96ec64227ee2bbafc7392379ab  libgcc/config/libbid/_isinfd64.c
! 0b2c13d8391a94277bd10e20063fac0a  libgcc/config/libbid/_le_dd.c
! 4b4a896102f9ccd8522ab1b7102398f2  libgcc/config/libbid/_le_sd.c
! dcab851e95caae37503970c21da9a6bc  libgcc/config/libbid/_le_td.c
! 447d8e36c972536ab5e81ff9d020da9d  libgcc/config/libbid/_lt_dd.c
! a3a9dcf31a57f2c53a54590be6179503  libgcc/config/libbid/_lt_sd.c
! 5fe73f4c1ca2b13902c82386beee654f  libgcc/config/libbid/_lt_td.c
! d241b09c6ddb703a456dcb763fb78360  libgcc/config/libbid/_mul_dd.c
! 410ee5c9a501b5f975041db47b654872  libgcc/config/libbid/_mul_sd.c
! 8605299d96fe7f0c1d460772b4676559  libgcc/config/libbid/_mul_td.c
! e34f40227f0a78df0ddc6581c9f5a68a  libgcc/config/libbid/_ne_dd.c
! 54794037dd6b84071c21a18e3ceb92a3  libgcc/config/libbid/_ne_sd.c
! 97e4b425ec904ebea46d8ea91f5c6d86  libgcc/config/libbid/_ne_td.c
! e56b41dcb971c69726da5e3c6d61cacc  libgcc/config/libbid/_sd_to_dd.c
! c0ef1664687e75e25cc96f2f3bc3aa32  libgcc/config/libbid/_sd_to_df.c
! bae9bcc0af70e607e19fd6a0412af13f  libgcc/config/libbid/_sd_to_di.c
! e9cd7b20298fdef3eed2cbf9104b6587  libgcc/config/libbid/_sd_to_hf.c
! 0f15b34439ccbdba7c7f63caf2294113  libgcc/config/libbid/_sd_to_sf.c
! 694a68e1768df6fc60e51a682ba8eb27  libgcc/config/libbid/_sd_to_si.c
! 5deaeebd9bf60eb75703a4a234ba21bc  libgcc/config/libbid/_sd_to_td.c
! 6d3b1635787f90756e4d17076ae2909e  libgcc/config/libbid/_sd_to_tf.c
! a6cddd7953c4514f56e0b5b91b58a1d7  libgcc/config/libbid/_sd_to_udi.c
! 0763bfc92ab80d0fcf645d19481b6987  libgcc/config/libbid/_sd_to_usi.c
! 08c4dc69dc7fc3daeef5f9d23bb02fa4  libgcc/config/libbid/_sd_to_xf.c
! 5883084122b559a216f7aae3761610e8  libgcc/config/libbid/_sf_to_dd.c
! 393e69f464303f8a2ee55dfa59a8a6b7  libgcc/config/libbid/_sf_to_sd.c
! 0ff4ffe1a6c78f72401e8225a7bcf755  libgcc/config/libbid/_sf_to_td.c
! d7c9f62d90ee43423b7a4c39c136232c  libgcc/config/libbid/_si_to_dd.c
! 23ba6c3e77510e7c750fb74d662e9cec  libgcc/config/libbid/_si_to_sd.c
! b007290fffbacd51cbba9d89f637ade6  libgcc/config/libbid/_si_to_td.c
! afe338784a1cb9a4f1beefcdba8c4138  libgcc/config/libbid/_td_to_dd.c
! 40ee0c4cb8529597316c6fe0540031d2  libgcc/config/libbid/_td_to_df.c
! 75bb362ba3bc1282c910b83681f0cf36  libgcc/config/libbid/_td_to_di.c
! bb1d17a9e39246132534a956b974201f  libgcc/config/libbid/_td_to_hf.c
! 0c3f528344cfb02d7095b4f61d883f09  libgcc/config/libbid/_td_to_sd.c
! 1deb19553e677c6814d700018b5b667c  libgcc/config/libbid/_td_to_sf.c
! 218a264e8b9403ea1590b097c5741714  libgcc/config/libbid/_td_to_si.c
! a79a1e27514a7658c893a2f9682eb341  libgcc/config/libbid/_td_to_tf.c
! 0c4f41e5362216c6318df86a8563d9dc  libgcc/config/libbid/_td_to_udi.c
! f485736e1d4cc6bd0969e08975b1b8c6  libgcc/config/libbid/_td_to_usi.c
! 207442ac83e4675a6465ac01722fd8ea  libgcc/config/libbid/_td_to_xf.c
! ceb6fc51176fb2fafe3a9e2e36dc6ecd  libgcc/config/libbid/_tf_to_dd.c
! dacd6b84cd2011259177fbc89e341699  libgcc/config/libbid/_tf_to_sd.c
! ace207d2414369df28f6ba64308c5051  libgcc/config/libbid/_tf_to_td.c
! 03062b0d3814ae74095f95372aa77ceb  libgcc/config/libbid/_udi_to_dd.c
! 29db6904b8a122cb3ebb7970d2f39470  libgcc/config/libbid/_udi_to_sd.c
! af8efc862ac5097479c660b7550fe68b  libgcc/config/libbid/_udi_to_td.c
! b37023c790a6d2cc2de82b233d9b60e5  libgcc/config/libbid/_unord_dd.c
! 821bfd07f00abe4a53ef0f060518b8a7  libgcc/config/libbid/_unord_sd.c
! bdcdf8460ef897e31c330fe741e52188  libgcc/config/libbid/_unord_td.c
! bb1ba87d67066fef251c476b961f93ce  libgcc/config/libbid/_usi_to_dd.c
! 42182a26b7408bc7beea40f84070a0ab  libgcc/config/libbid/_usi_to_sd.c
! 44dec0482cf5f7d4816d03224db9ad57  libgcc/config/libbid/_usi_to_td.c
! 32a2d516a357c3540efa23f7b50e0353  libgcc/config/libbid/_xf_to_dd.c
! bfef0c39d2e18e1590bf85f6afaaf9c2  libgcc/config/libbid/_xf_to_sd.c
! 88df42e1348987192fe7e467b3862b3e  libgcc/config/libbid/_xf_to_td.c
! 3b9a12369f034502c1a3c982c644293d  libgcc/config/libbid/bid128.c
! 8971ab85c2f33b55a445f0f9337ed331  libgcc/config/libbid/bid128_2_str.h
! 3630f614f3c5baed61fa5b5b6893da42  libgcc/config/libbid/bid128_2_str_macros.h
! e836871902e82a5e376bdd0794f0beab  libgcc/config/libbid/bid128_2_str_tables.c
! 4ae2e9585f7f68e0fbf01d51287ee599  libgcc/config/libbid/bid128_add.c
! afd6e2e596fa685d0a1669cde95a2097  libgcc/config/libbid/bid128_compare.c
! edd3de8d977c5e231a0ac0f5f1d5338f  libgcc/config/libbid/bid128_div.c
! ebb538d19872d8a99961ff5bff534910  libgcc/config/libbid/bid128_fma.c
! b4411cdd1a08d141bc293d73b476350f  libgcc/config/libbid/bid128_logb.c
! 618b888d97b3e477f9ec7a3aeaecced4  libgcc/config/libbid/bid128_minmax.c
! 8d663d5b0b43a8c8d716b62dc8e1d4e8  libgcc/config/libbid/bid128_mul.c
! 685109e3f821d2308e75eabd60b7cff4  libgcc/config/libbid/bid128_next.c
! 59fb6c8023e798913180f27b241843ef  libgcc/config/libbid/bid128_noncomp.c
! 21c548973d660b86b45f2a4d01332512  libgcc/config/libbid/bid128_quantize.c
! 00d8651e2b007712cca40554215bc45a  libgcc/config/libbid/bid128_rem.c
! 689924f7cf7e2db168f7e6a0e32592c6  libgcc/config/libbid/bid128_round_integral.c
! 3e035478ac31ad563c4529f4e94b661e  libgcc/config/libbid/bid128_scalb.c
! 633fa66d23625a4de253c7728f727b2a  libgcc/config/libbid/bid128_sqrt.c
! fbb52269b4b1898aa3503298d3df8504  libgcc/config/libbid/bid128_string.c
! 87935a519781386dadc978f45d99baa9  libgcc/config/libbid/bid128_to_int16.c
! 1fa58480e7ba615dec06172276b43faf  libgcc/config/libbid/bid128_to_int32.c
! 78fab30686a92f0a5743df16a6c46079  libgcc/config/libbid/bid128_to_int64.c
! ed7595e65d0145c96f529c82678a5323  libgcc/config/libbid/bid128_to_int8.c
! 85a8709d08362e70fc3a8bd7236deb97  libgcc/config/libbid/bid128_to_uint16.c
! b3639602aa6914429c42a67c56a4eac3  libgcc/config/libbid/bid128_to_uint32.c
! f0e687a2772e479d56b8a906e6876e03  libgcc/config/libbid/bid128_to_uint64.c
! e69ac31751a696953bcee1735bef9232  libgcc/config/libbid/bid128_to_uint8.c
! 3e4f83c77003669cdc93169ae89bf29e  libgcc/config/libbid/bid32_to_bid128.c
! 7b86f0cda7f0ee44ae4ea9111df00225  libgcc/config/libbid/bid32_to_bid64.c
! ad0c7c07db8339ffb3d1941979e21691  libgcc/config/libbid/bid64_add.c
! 5410490c806940016bcd18ec6f4e3b68  libgcc/config/libbid/bid64_compare.c
! 85706083cbcefdb982ae020a1b1d6c66  libgcc/config/libbid/bid64_div.c
! 491fd7d68c1561e03c72183da257192a  libgcc/config/libbid/bid64_fma.c
! 53c0af598ef8fef16cd6e60a76f46ba5  libgcc/config/libbid/bid64_logb.c
! c18adb58481dd52323c1699ca70eae22  libgcc/config/libbid/bid64_minmax.c
! 4d2d93a80e3770a7be599f32cfbbe906  libgcc/config/libbid/bid64_mul.c
! 483e326c6d102bc197eeb3d66f6075ba  libgcc/config/libbid/bid64_next.c
! 2f6a08caab398bae27e430b71f73c19e  libgcc/config/libbid/bid64_noncomp.c
! 88d67db1a56398b25b593ecc4e91cd06  libgcc/config/libbid/bid64_quantize.c
! 1f540678e9e06f95f1f6e8a93d94be63  libgcc/config/libbid/bid64_rem.c
! 6d0d318399debc04c93d5fc037e9e377  libgcc/config/libbid/bid64_round_integral.c
! c673253ed935f365ac12a9d23267789c  libgcc/config/libbid/bid64_scalb.c
! 084154ce854be3982cff3d9ca55f1eb6  libgcc/config/libbid/bid64_sqrt.c
! 605ff6e92d6c6d4ec1267e12bec6e5e5  libgcc/config/libbid/bid64_string.c
! 5730f7689c31dfe1daef0f3918a022dc  libgcc/config/libbid/bid64_to_bid128.c
! 18aef3e86c68de5a72b30ba1dae529ca  libgcc/config/libbid/bid64_to_int16.c
! 17529270f28dbe8012a29beccdcf4ade  libgcc/config/libbid/bid64_to_int32.c
! c11bc7c078b2d731620904a4a4935dec  libgcc/config/libbid/bid64_to_int64.c
! 1db3e17abaff9eaaf024aaff735e126d  libgcc/config/libbid/bid64_to_int8.c
! a34fd4801994dfbcf71ea92b3d00d053  libgcc/config/libbid/bid64_to_uint16.c
! 1a6dbe30a76b57d92ef0d9100d683ae9  libgcc/config/libbid/bid64_to_uint32.c
! 30662950ab6abf3fe0cdd20ae4b6d4eb  libgcc/config/libbid/bid64_to_uint64.c
! bbfcf6b58323de4ede7587425bb99b28  libgcc/config/libbid/bid64_to_uint8.c
! 3a970eb896137dc901f355dadcfbaac0  libgcc/config/libbid/bid_b2d.h
! 19887747e2c13e44a4be16a4944fe89c  libgcc/config/libbid/bid_binarydecimal.c
! 54785f881bf2f82a4885337f52d5a25d  libgcc/config/libbid/bid_conf.h
! dfd7af80f8e03275c327150db6e5728e  libgcc/config/libbid/bid_convert_data.c
! 0a1abbd6b36ea0b251118058196ed8ae  libgcc/config/libbid/bid_decimal_data.c
! 49f5d1ccbb8b77e3bf9e0b56344286fd  libgcc/config/libbid/bid_decimal_globals.c
! d7f3eadc326feec1290f66b1d996544a  libgcc/config/libbid/bid_div_macros.h
! 181fbcd0a77206d531efe088ec91ea9d  libgcc/config/libbid/bid_dpd.c
! bc43c2db41fd1d5b1ba45880708bd48d  libgcc/config/libbid/bid_flag_operations.c
! be38e8858b3b3cd72cc0fafb66258f49  libgcc/config/libbid/bid_from_int.c
! 7a53945258da5254e3af16de1ab6fea6  libgcc/config/libbid/bid_functions.h
! 51e6e4e2e0aca3981e5ff7a173f27445  libgcc/config/libbid/bid_gcc_intrinsics.h
! 88e4dd655099cd33f0426a126628d192  libgcc/config/libbid/bid_inline_add.h
! 1dfe0ea35db4f81a3cc1dbac23be6f68  libgcc/config/libbid/bid_internal.h
! 975a0ad5b438c566f066c4930db2000d  libgcc/config/libbid/bid_round.c
! 1a5a16f741d4fde02c030bdb401dae38  libgcc/config/libbid/bid_sqrt_macros.h
! bfea11b0d5d5e9f2bfc66288ad4851f3  libgcc/config/libgcc-glibc.ver
  a5b43383f528298ff2dc85061452e1e6  libgcc/config/libgcc-libsystem.ver
! 5e06a672d1965ad0268ea969800248a2  libgcc/config/lm32/_ashlsi3.S
! 38fb4d0aaca504f33c1298b7a844c64a  libgcc/config/lm32/_ashrsi3.S
! dbe72ae362644089759bf9207746a489  libgcc/config/lm32/_divsi3.c
! 89d3d9c5e063a5e56eb496841ec555c2  libgcc/config/lm32/_lshrsi3.S
! 0a1e0d03ffa436fef720785397371af0  libgcc/config/lm32/_modsi3.c
! 1f25e88be275bfe0b35f35423271994f  libgcc/config/lm32/_mulsi3.c
! 05000d3567e91726abd7cd495ab75a4e  libgcc/config/lm32/_udivmodsi4.c
! 88d2aa55b624d481763a6d4b9c503f60  libgcc/config/lm32/_udivsi3.c
! 2bbe5c755a80b5a0493fb997ceade273  libgcc/config/lm32/_umodsi3.c
! 805d66909014d088e58dc2578eacec84  libgcc/config/lm32/crti.S
! 5157b5d992ef09f2f0b20b9aaa0d24ca  libgcc/config/lm32/crtn.S
! 38c5d0a754fb24ba31a3560911da4d28  libgcc/config/lm32/libgcc_lm32.h
  813910d184e034c80a518f2ba3c4e1a5  libgcc/config/lm32/sfp-machine.h
  331dd855f33aa7a09d25fc757cedf2cf  libgcc/config/lm32/t-elf
  d6d4b530a7539331e6e553f26928de4e  libgcc/config/lm32/t-lm32
  df59d7c87fc0d2f761461ac4ba7ec440  libgcc/config/lm32/t-uclinux
! 288269ef3d0eb3ab5d9be8aa6429cd80  libgcc/config/loongarch/crtfastmath.c
! 1728e0155dd73aa6d79cb8f83e14b22c  libgcc/config/loongarch/linux-unwind.h
! 7656309768624fdf071573e49d81c406  libgcc/config/loongarch/sfp-machine.h
! 6cd85196ae9a504ff938607f275f760e  libgcc/config/loongarch/t-crtstuff
  5b9c4ae086bab2fa0eb006a6223eb270  libgcc/config/loongarch/t-loongarch
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/loongarch/t-loongarch64
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/loongarch/t-softfp-tf
! 3b456edafd0ab43b0e67dd29b7ac71e9  libgcc/config/m32c/lib1funcs.S
! fab2edc3daba136b4d0defcec3108c7a  libgcc/config/m32c/lib2funcs.c
  9f1fc3a0f039273ded002a6713908bd3  libgcc/config/m32c/t-m32c
! 4e49f8294c86a61dd1dec4a78b6fc66b  libgcc/config/m32c/trapv.c
! 5d1ce10ed22a85f9b9f9aeaa4183d68b  libgcc/config/m32r/initfini.c
  e252c161ec4eb09d3b5a62d902b3d00f  libgcc/config/m32r/t-m32r
! 22bcf23b0317b0cf894dceb40951d81a  libgcc/config/m68k/crti.S
! a7dce1af00b1d55a0cdf6a5eaf28a0b9  libgcc/config/m68k/crtn.S
! 4141a7ba477997d415bc31df2a244177  libgcc/config/m68k/fpgnulib.c
! 3571f0c8887c3e07c19588c97233157b  libgcc/config/m68k/lb1sf68.S
! 36afe875bdb0c422977ea89ec3af2761  libgcc/config/m68k/linux-atomic.c
! 7d7622917a58f86647b75065fcbb71c6  libgcc/config/m68k/linux-unwind.h
  2e4fd3e401c9159da9f32d5965b5afa1  libgcc/config/m68k/t-floatlib
  de217c41c217f4341d6d546afa9a79f2  libgcc/config/m68k/t-linux
  4e281c631e54b8912258f84196fec9e6  libgcc/config/m68k/t-slibgcc-elf-ver
! ae69965d06d5da213dd66e0c69ca479f  libgcc/config/mcore/crti.S
! 732d0ca6163074f24e2a9518e9998198  libgcc/config/mcore/crtn.S
! c0e5ef2a767ad17e79d3e3c9d89e2827  libgcc/config/mcore/lib1funcs.S
  ef74fd63202d842bfe7120864186128c  libgcc/config/mcore/t-mcore
! ff0e805daf15b252ed177cabc8a80d23  libgcc/config/microblaze/crti.S
! ca9541fc2330edcc337122a65d9e3b5b  libgcc/config/microblaze/crtn.S
! c033368d9c8de022249693c4c81a4d68  libgcc/config/microblaze/divsi3.S
! dc8ce16836d78e22294b2f1ca1ca8c0e  libgcc/config/microblaze/divsi3_table.c
! c82c475885d10c6fef4315324cd77721  libgcc/config/microblaze/moddi3.S
! d5bf794a444ed9c3bbdce19709ffe1a1  libgcc/config/microblaze/modsi3.S
! f3ece1bacecf7b53227e43146b00bd71  libgcc/config/microblaze/muldi3_hard.S
! 3b0b4f3f1dfadcd6a340220ab73aef8d  libgcc/config/microblaze/mulsi3.S
! f7c94d15bf9e19098f4513e9b1f9e639  libgcc/config/microblaze/stack_overflow_exit.S
  702cd2045c2c31581ecd56232d96d5f5  libgcc/config/microblaze/t-microblaze
! eb919c572b7f73b2dd3a5935f4898a3a  libgcc/config/microblaze/udivsi3.S
! f881ad06d497f5cf39b09ea688c14de9  libgcc/config/microblaze/umodsi3.S
! 8eefcd1e523d4e8efd71c9da78081395  libgcc/config/mips/crtfastmath.c
! 9fdafee72019f17dd67b3254c29f078e  libgcc/config/mips/crti.S
! 444c2e6680a90358b90211bb0740cb2a  libgcc/config/mips/crtn.S
  f69b446f168701e4fad37a3fa7bf7a2a  libgcc/config/mips/gnustack.h
! 68e8ec883d3359a4ebddbcb6bfef2b81  libgcc/config/mips/gthr-mipssde.h
! 421572cc17398a986ae362f58733197f  libgcc/config/mips/lib1funcs.S
! 679bb514adc931e62c660360917c12c7  libgcc/config/mips/lib2funcs.c
! d58170fbc2f34bcd34f8a876cffa31b1  libgcc/config/mips/libgcc-mips.ver
! bfe948db85bc0357bb39eb0271d3cc3d  libgcc/config/mips/libgcc-mips16.ver
! 5cf9f2edbd62cb532893d0711554c92e  libgcc/config/mips/linux-unwind.h
! b89ebce8690fd9ade2069ba35c0ce1d7  libgcc/config/mips/mips16.S
! 28b98c842fd0613157e5daf4458c2888  libgcc/config/mips/sfp-machine.h
  5b43c15f4e003338742d215bcfdf5029  libgcc/config/mips/t-crtstuff
  33f2c96b7ccbbb062839ec1e7329e6bb  libgcc/config/mips/t-elf
  3a02ac9d841ae97e7bfb7f570f95e179  libgcc/config/mips/t-mips
! 5501fd544cd21775918a29d30acddcdd  libgcc/config/mips/t-mips16
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/mips/t-mips64
  6403b3d85f0ed6751174f1088d074f62  libgcc/config/mips/t-sdemtk
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/mips/t-softfp-tf
  532a76f856d3755b780a19a91bdd1654  libgcc/config/mips/t-vr
! bb7b823d60053e9dba53d1446f6a17b0  libgcc/config/mips/vr4120-div.S
! 1de15d57b1b5d1ec279f9578cda197d8  libgcc/config/mmix/crti.S
! fd7f0095099619a6d22b8067853aff99  libgcc/config/mmix/crtn.S
  41478efd1b19b3c7c9426d8e843f3b39  libgcc/config/mmix/t-mmix
! 825ea55ed08c10c38a32e4e76a411526  libgcc/config/moxie/crti.S
! 76bb6dec2b8ce1bfbade37621f09b1e0  libgcc/config/moxie/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/moxie/sfp-machine.h
  9b7000ea173c226d39e6a6dc116fdaf1  libgcc/config/msp430/cmpd.c
! 3cb65a8fa4475dc5a96da6333219d6ae  libgcc/config/msp430/cmpsi2.S
! 79a6b9ac9ecf2f43451d1c49333c30ff  libgcc/config/msp430/epilogue.S
  072a56de362c5e857510ca8401f30aa8  libgcc/config/msp430/floathidf.c
  07461b1abb61437fbc73d74801f6300b  libgcc/config/msp430/floathisf.c
  88792e557553f37a296bd8127a0dfc88  libgcc/config/msp430/floatunhidf.c
  754bbc793bc0e81b0a2168df9f47e1f3  libgcc/config/msp430/floatunhisf.c
! ea040c9d4d36a576ab4d0de8ec3c8347  libgcc/config/msp430/lib2bitcountHI.c
! 251f75016b75d12c217aca98c6a9493f  libgcc/config/msp430/lib2divHI.c
! 18a9789f3f624a5fe4c3548802d0d10e  libgcc/config/msp430/lib2divQI.c
! 01970a14e591a55a0fa3ad6df5f50054  libgcc/config/msp430/lib2divSI.c
! 6b76b4ed7e4530b61845cccad60773b2  libgcc/config/msp430/lib2hw_mul.S
! 7bce741a16b9b635259f7a57d46979fc  libgcc/config/msp430/lib2mul.c
! b31279c76badba236c1480511d3ce9f2  libgcc/config/msp430/lib2shift.c
! 585dda5cb05623da62e4f4aad3bdbbb6  libgcc/config/msp430/mpy.c
! 4f43ca186137d63a3faf257043be6eda  libgcc/config/msp430/msp430-divmod.h
! ca4257e7bbd37d4dab38471c49dc0fb5  libgcc/config/msp430/msp430-mul.h
! 134c1be92727b3f7120fc6e79d848e58  libgcc/config/msp430/slli.S
! 60e7863ca7fb803471c3390ca9433523  libgcc/config/msp430/srai.S
! bf6d0a4f624a6e387d5db68fc64b5491  libgcc/config/msp430/srli.S
! f4210baed4b5006786f11d277661facf  libgcc/config/msp430/t-msp430
! d5827a378ee9f78fd8eb16b63e5df218  libgcc/config/nds32/crtzero.S
! 2cd78807a24ba5e3d65becde80e31fb1  libgcc/config/nds32/initfini.c
! 420b52fea4c3f36d7104903124e7ccda  libgcc/config/nds32/isr-library/adj_intr_lvl.inc
! 228b377318048effef0982a6c58b2616  libgcc/config/nds32/isr-library/excp_isr.S
! c788a3ac2d58b50eff081528b2907ae8  libgcc/config/nds32/isr-library/excp_isr_4b.S
! 0d137fce03cd6a7da81c358e37fb50d1  libgcc/config/nds32/isr-library/intr_isr.S
! 97b90003f1226c4a63b5c7f5154ab836  libgcc/config/nds32/isr-library/intr_isr_4b.S
! cff76808bbfb2a1c85caf64f99f4999d  libgcc/config/nds32/isr-library/jmptbl_vid00.S
! a536bb842219fd40d7fbd3a6e5cfe474  libgcc/config/nds32/isr-library/jmptbl_vid01.S
! 537bb936d2b3e4d0ad6a6fb88cc2055b  libgcc/config/nds32/isr-library/jmptbl_vid02.S
! 862e799ed3c5354e5ad2174378bf5ee8  libgcc/config/nds32/isr-library/jmptbl_vid03.S
! 3f4632aada2a0d237fb0d49988f8d780  libgcc/config/nds32/isr-library/jmptbl_vid04.S
! c2ff6244ff1f3f813b9150e8b5f49330  libgcc/config/nds32/isr-library/jmptbl_vid05.S
! 6f4cfe62d137386666fa4540d7f6fe19  libgcc/config/nds32/isr-library/jmptbl_vid06.S
! 5d53ef46cdf4f77ae7d2789a0d48ef98  libgcc/config/nds32/isr-library/jmptbl_vid07.S
! db4d9b9547435cea567e202f33152efe  libgcc/config/nds32/isr-library/jmptbl_vid08.S
! f7a27d402f4734076d40ae3e41c9b7f2  libgcc/config/nds32/isr-library/jmptbl_vid09.S
! d9ac1bae2aa0d5c420dc2427bfec96fa  libgcc/config/nds32/isr-library/jmptbl_vid10.S
! 62451abf1c793a8cf911ddffa4924a71  libgcc/config/nds32/isr-library/jmptbl_vid11.S
! c7e700b3427c1e8e621a1002189c0067  libgcc/config/nds32/isr-library/jmptbl_vid12.S
! fad78a3d7b129d7deadba91140dd8611  libgcc/config/nds32/isr-library/jmptbl_vid13.S
! 6f1a56c64221b1ac24be14c389008f71  libgcc/config/nds32/isr-library/jmptbl_vid14.S
! 76d6f0f0af0c18213e25382a28bab37d  libgcc/config/nds32/isr-library/jmptbl_vid15.S
! 53b90331ece377b546c15fdaebb38f64  libgcc/config/nds32/isr-library/jmptbl_vid16.S
! b544a79f7e8c028e98ce2467742eb5c4  libgcc/config/nds32/isr-library/jmptbl_vid17.S
! 715e674c5616d88f3b433bac35d09ba6  libgcc/config/nds32/isr-library/jmptbl_vid18.S
! 423653aa7544ccbbf20f636fede4803f  libgcc/config/nds32/isr-library/jmptbl_vid19.S
! 31d0920089d86209dd2b3026ff224746  libgcc/config/nds32/isr-library/jmptbl_vid20.S
! d14bfa7c0d27c1159a50ecf80367723a  libgcc/config/nds32/isr-library/jmptbl_vid21.S
! 4e89588c63164969287d8dd06ae0c865  libgcc/config/nds32/isr-library/jmptbl_vid22.S
! 70dfa13413c0ef00dc0b9e7d9a12d90b  libgcc/config/nds32/isr-library/jmptbl_vid23.S
! 091283f43768b8ca1e4cb7a692b8f0b8  libgcc/config/nds32/isr-library/jmptbl_vid24.S
! 3981dbad593ffea4ee22dcc6ed740b66  libgcc/config/nds32/isr-library/jmptbl_vid25.S
! 27d9e365e46e0d1068c1e1e4bc1b5d5f  libgcc/config/nds32/isr-library/jmptbl_vid26.S
! 8941c552ba0d03d91555b89a66630771  libgcc/config/nds32/isr-library/jmptbl_vid27.S
! 2dfe4feeecf5d9e30a872f31035f5ef2  libgcc/config/nds32/isr-library/jmptbl_vid28.S
! 98925cf1388207d8e3a6afc72187fb4d  libgcc/config/nds32/isr-library/jmptbl_vid29.S
! d45dcc444ae13821497d37aacbb9a150  libgcc/config/nds32/isr-library/jmptbl_vid30.S
! ff4f83849ffc5f17cae8b808f3e59d54  libgcc/config/nds32/isr-library/jmptbl_vid31.S
! 2abce60bda56bcbf48540e65746a30fd  libgcc/config/nds32/isr-library/jmptbl_vid32.S
! ed6790e7f713a6c7c1cc9bb2798c725c  libgcc/config/nds32/isr-library/jmptbl_vid33.S
! 90558a2eb4da8305bc0046056412420a  libgcc/config/nds32/isr-library/jmptbl_vid34.S
! 6fe3e7fba3d0060932a8c6e89360f547  libgcc/config/nds32/isr-library/jmptbl_vid35.S
! cfcd1a5518e2def08323de6a500ff154  libgcc/config/nds32/isr-library/jmptbl_vid36.S
! c27d9a43a606201bd4435df03c733b02  libgcc/config/nds32/isr-library/jmptbl_vid37.S
! 91ce1a289ebf222367335f0e08dee272  libgcc/config/nds32/isr-library/jmptbl_vid38.S
! 0ca4647283cef2b52765e168a86e5a44  libgcc/config/nds32/isr-library/jmptbl_vid39.S
! 1600a31c25069c071fbdbb05f9bf7e43  libgcc/config/nds32/isr-library/jmptbl_vid40.S
! a1ecbb6dfdf7b506729d900e4eddc062  libgcc/config/nds32/isr-library/jmptbl_vid41.S
! cd7ce92b224da8a92a8a6b73b56e825e  libgcc/config/nds32/isr-library/jmptbl_vid42.S
! f02d25e270d013abd008270ee06b211f  libgcc/config/nds32/isr-library/jmptbl_vid43.S
! ca2e7a38abde6d12d799680c38d5a0b0  libgcc/config/nds32/isr-library/jmptbl_vid44.S
! b83a39cdaa056a4eab7efae6e1d9a6c3  libgcc/config/nds32/isr-library/jmptbl_vid45.S
! 482b1abd48ad42c1493f42ae1f6ee896  libgcc/config/nds32/isr-library/jmptbl_vid46.S
! 6d38ebfa25bf854ac2ee8633c6ca824a  libgcc/config/nds32/isr-library/jmptbl_vid47.S
! 5d09831f7458b6fc120664fc180199af  libgcc/config/nds32/isr-library/jmptbl_vid48.S
! dd76959e59bca711147c7cf8d5fcbd83  libgcc/config/nds32/isr-library/jmptbl_vid49.S
! 5b3b90b359dc69e468dec1b689835266  libgcc/config/nds32/isr-library/jmptbl_vid50.S
! 68ac447fdff83ba478d0404a8c2c2b4d  libgcc/config/nds32/isr-library/jmptbl_vid51.S
! e15737a2a476affadc5fabfa20fa3209  libgcc/config/nds32/isr-library/jmptbl_vid52.S
! e429644be5c70781a1928b304a3170c5  libgcc/config/nds32/isr-library/jmptbl_vid53.S
! 4dffe3bc2ab3d0fdeb56756499739c29  libgcc/config/nds32/isr-library/jmptbl_vid54.S
! a70e1584b803992ae4013b18eb0a4a0c  libgcc/config/nds32/isr-library/jmptbl_vid55.S
! cdfdf7062ac9e20eb30678eaed739fee  libgcc/config/nds32/isr-library/jmptbl_vid56.S
! 4f251b5c9d0b77b7483fee41f45b932c  libgcc/config/nds32/isr-library/jmptbl_vid57.S
! 8097389cfc63fcb68934b5b4888db642  libgcc/config/nds32/isr-library/jmptbl_vid58.S
! 04031b196973819f3437d34a6552dcbf  libgcc/config/nds32/isr-library/jmptbl_vid59.S
! 5f77e8adb32a284805676ec562cfab97  libgcc/config/nds32/isr-library/jmptbl_vid60.S
! 9ba3d3e04e849bf620139b2011a5341d  libgcc/config/nds32/isr-library/jmptbl_vid61.S
! 9848f2cc1a9b43399b4257dfaff65d68  libgcc/config/nds32/isr-library/jmptbl_vid62.S
! 00b0b8710221807cb813d7f92568d837  libgcc/config/nds32/isr-library/jmptbl_vid63.S
! 39e35c5a3c6fb5558bbb4028ba9b712c  libgcc/config/nds32/isr-library/jmptbl_vid64.S
! 89724d70794f8eb2808fc4bd04a01803  libgcc/config/nds32/isr-library/jmptbl_vid65.S
! 6d8cfd7c7feb9d84573eb6ba661f1289  libgcc/config/nds32/isr-library/jmptbl_vid66.S
! 613caefb478d6f787c2e7ec4d78e3437  libgcc/config/nds32/isr-library/jmptbl_vid67.S
! ff3287098d19772d32b1e8fc23697d22  libgcc/config/nds32/isr-library/jmptbl_vid68.S
! 95e3a871d19bce6a234cc7a5839b7396  libgcc/config/nds32/isr-library/jmptbl_vid69.S
! 36066b7ffebd3f9fac653c8e50f8351e  libgcc/config/nds32/isr-library/jmptbl_vid70.S
! db872d20d5be1b00e2d9707955086445  libgcc/config/nds32/isr-library/jmptbl_vid71.S
! a9364589a7db34b6df73c9e33682e0c8  libgcc/config/nds32/isr-library/jmptbl_vid72.S
! 2f8cd653db2ddbbff124b6fd70e7a63b  libgcc/config/nds32/isr-library/nmih.S
! 273e7ebb99adcaffdbe93c38657cb06a  libgcc/config/nds32/isr-library/reset.S
! 3c7a6cbd4b8840d945477242e4636985  libgcc/config/nds32/isr-library/reset_4b.S
! b345d7238b492881d17bf17822c5e678  libgcc/config/nds32/isr-library/restore_all.inc
! 486d76e16b820bcae9478ac99a7a609e  libgcc/config/nds32/isr-library/restore_fpu_regs.inc
! 25d9c39804768d365e13f850edcfcdc2  libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
! 0bb501cf8a3b421224b24bb32bbc2c4d  libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
! 7a05405e4dabc831f34815181a7a7406  libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
! 62625eac0f02796b8dda52c5c8b139d0  libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
! 99d17f042499f982613f85dacd2969bf  libgcc/config/nds32/isr-library/restore_mac_regs.inc
! a549895154d47aec5f600dfccda81742  libgcc/config/nds32/isr-library/restore_partial.inc
! 6c2c15005e8cd291f7de89bb3cb54121  libgcc/config/nds32/isr-library/restore_usr_regs.inc
! e4136fbf9227ed2425413fa72acd9ef8  libgcc/config/nds32/isr-library/save_all.inc
! ea36a56b0a7d63dfcad0c57a36c782a2  libgcc/config/nds32/isr-library/save_fpu_regs.inc
! c188805e4a91d2e2a49f2fb3c4353784  libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
! 1edc036c38e0af387f930f471ef83018  libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
! f6975d49c59f70f2c1e967dea4137a44  libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
! f6c235b0e4377d0bb7eba2348e620f8f  libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
! 62c20200e2552d997417cef7ad41e484  libgcc/config/nds32/isr-library/save_mac_regs.inc
! 980f6ba5afd0294c0a9e162192c0c20b  libgcc/config/nds32/isr-library/save_partial.inc
! cce72b90ad3d18ecc2a8ea3cde0f80b0  libgcc/config/nds32/isr-library/save_usr_regs.inc
! 04a70c3692eec1233da90520be5a5d09  libgcc/config/nds32/isr-library/vec_vid00.S
! 33415530b0d3860d08d580686af23186  libgcc/config/nds32/isr-library/vec_vid00_4b.S
! acd28f8862a20ebeb7dc157987e39c68  libgcc/config/nds32/isr-library/vec_vid01.S
! c15bc4eeedcb5ad13b1ecb4fc5ba4170  libgcc/config/nds32/isr-library/vec_vid01_4b.S
! 845a709d9387d28268edc09e0cf75a54  libgcc/config/nds32/isr-library/vec_vid02.S
! cc0402010ede364268709638cd784a55  libgcc/config/nds32/isr-library/vec_vid02_4b.S
! 5911c2215c7a60411f055ceafd092599  libgcc/config/nds32/isr-library/vec_vid03.S
! b8a21e01cc6831d5fdc7db9d33cf3924  libgcc/config/nds32/isr-library/vec_vid03_4b.S
! 2f671e8434ca4ff1d1db3cab112ce1b3  libgcc/config/nds32/isr-library/vec_vid04.S
! bb03b57491a5be2a1ba66f5dc0c01e74  libgcc/config/nds32/isr-library/vec_vid04_4b.S
! 01db2b266c2fbf250ec0df196bc85dcf  libgcc/config/nds32/isr-library/vec_vid05.S
! d689b209e8191fff4a9a7815954d1c40  libgcc/config/nds32/isr-library/vec_vid05_4b.S
! 8145cd72621caada26f56ce0506ff80b  libgcc/config/nds32/isr-library/vec_vid06.S
! 9dc2fd63009f4f77575b88d0438ed50a  libgcc/config/nds32/isr-library/vec_vid06_4b.S
! d66f7ce7a83dfb82405a3adf257f2596  libgcc/config/nds32/isr-library/vec_vid07.S
! dd6bd624ad9e02cc1b15eb5cfd490714  libgcc/config/nds32/isr-library/vec_vid07_4b.S
! b8fcf1057d000b453c6e2cb622172c2d  libgcc/config/nds32/isr-library/vec_vid08.S
! 7a020716719cc6927ced931f370378d6  libgcc/config/nds32/isr-library/vec_vid08_4b.S
! d37e602ce1b97b999de8bc544886b11b  libgcc/config/nds32/isr-library/vec_vid09.S
! a54adeb684031e4fdc96c55484bf2d45  libgcc/config/nds32/isr-library/vec_vid09_4b.S
! 541137d21079c26fbf76591b6fc63d19  libgcc/config/nds32/isr-library/vec_vid10.S
! afaf76b9b7c3c532745116ef180c1592  libgcc/config/nds32/isr-library/vec_vid10_4b.S
! 33de1082b1903a797f2996b0943d8665  libgcc/config/nds32/isr-library/vec_vid11.S
! 6cb53461943837cc1fecefbc0566b293  libgcc/config/nds32/isr-library/vec_vid11_4b.S
! 6c294b3544f3c4146e7072eeb9509d27  libgcc/config/nds32/isr-library/vec_vid12.S
! ad9bf1722985d56b2df743dcc6a3c8a9  libgcc/config/nds32/isr-library/vec_vid12_4b.S
! 7e41fdeeac2f443575f46c8d64333e43  libgcc/config/nds32/isr-library/vec_vid13.S
! d9ca3e6155b4a09b3933770d8f22846c  libgcc/config/nds32/isr-library/vec_vid13_4b.S
! a9b0d17874ba014bd0a2d182f1579cd8  libgcc/config/nds32/isr-library/vec_vid14.S
! f3db60ce8f18edfbcf6aa5509ce5b23e  libgcc/config/nds32/isr-library/vec_vid14_4b.S
! d797aa24adeec7237aff2da790fb29b7  libgcc/config/nds32/isr-library/vec_vid15.S
! 0baf7664c8faaf035fd52a4a7a7a6417  libgcc/config/nds32/isr-library/vec_vid15_4b.S
! f12f5d83be925f8bebf3fd9f9c20a1b2  libgcc/config/nds32/isr-library/vec_vid16.S
! 28737ba1da4a589dff9a672e44348ad9  libgcc/config/nds32/isr-library/vec_vid16_4b.S
! 11a93a04917e21736047c0da044d0a7c  libgcc/config/nds32/isr-library/vec_vid17.S
! d1da83e91e0f2677b7971e006b95f923  libgcc/config/nds32/isr-library/vec_vid17_4b.S
! 6cc1dde5b1241571cc2b884369e7649f  libgcc/config/nds32/isr-library/vec_vid18.S
! 22a7f3733955d5a93bbf3e921234bfa6  libgcc/config/nds32/isr-library/vec_vid18_4b.S
! d5ebff69ea4d2d815f9a3a636c336694  libgcc/config/nds32/isr-library/vec_vid19.S
! 721b5cbd6d43759178f4623f3256ec71  libgcc/config/nds32/isr-library/vec_vid19_4b.S
! c0121558c212a17fc0073285074c960f  libgcc/config/nds32/isr-library/vec_vid20.S
! fef2bec3498145bd2382e5f5334a3e3b  libgcc/config/nds32/isr-library/vec_vid20_4b.S
! 9bd3425c16582139397ef5385b98c0ad  libgcc/config/nds32/isr-library/vec_vid21.S
! caf77e15b1894a56294ba3310102b148  libgcc/config/nds32/isr-library/vec_vid21_4b.S
! e60e2290d47938aee0e7442788f2029e  libgcc/config/nds32/isr-library/vec_vid22.S
! 6621ae7bde6d079d4a1a83449b652c44  libgcc/config/nds32/isr-library/vec_vid22_4b.S
! c0a416ad09eede855869e45c3994ff1d  libgcc/config/nds32/isr-library/vec_vid23.S
! 9607f5b778267bfca7ff88fac2301d03  libgcc/config/nds32/isr-library/vec_vid23_4b.S
! 0f1a4a18dca8224a8f47eeb7e73e8ced  libgcc/config/nds32/isr-library/vec_vid24.S
! 6990fad6f1c7d8578dda1ccf9bcdbafd  libgcc/config/nds32/isr-library/vec_vid24_4b.S
! 31657d0ec9ab64b298f3a1803e0dd0d0  libgcc/config/nds32/isr-library/vec_vid25.S
! 6b99a412b5ddf8bfaf53a8d9eaa757ce  libgcc/config/nds32/isr-library/vec_vid25_4b.S
! 11818175c9c176e4baca99ddfb931470  libgcc/config/nds32/isr-library/vec_vid26.S
! 449418c89f4245e861f367d5bc9c6671  libgcc/config/nds32/isr-library/vec_vid26_4b.S
! 0e67d6b35a2a357a4c246115b401d92f  libgcc/config/nds32/isr-library/vec_vid27.S
! 2364c6f2acacf5298110b2baca272353  libgcc/config/nds32/isr-library/vec_vid27_4b.S
! 7cb9041311adfd8295af0ff243fe8375  libgcc/config/nds32/isr-library/vec_vid28.S
! dc5ca892249358c02954ba5249c2a643  libgcc/config/nds32/isr-library/vec_vid28_4b.S
! f582da894fad8639385085bfc6294875  libgcc/config/nds32/isr-library/vec_vid29.S
! 608182f2fdfe3b514f523d1a46ff2e84  libgcc/config/nds32/isr-library/vec_vid29_4b.S
! e623f3c7bf6003266f2cf1725f654caa  libgcc/config/nds32/isr-library/vec_vid30.S
! cc71328e41bfcb345e1102c5f6ee8ca9  libgcc/config/nds32/isr-library/vec_vid30_4b.S
! 17bf917e630aeaeba4eb3efe9b31387b  libgcc/config/nds32/isr-library/vec_vid31.S
! fd898ea7ae5c5f32eafb4c86afc471d7  libgcc/config/nds32/isr-library/vec_vid31_4b.S
! ee4cc64455d0ec84b6833bfcc5fd12c8  libgcc/config/nds32/isr-library/vec_vid32.S
! 05d8a24bdfc0a8aa343e5eba373e9c0f  libgcc/config/nds32/isr-library/vec_vid32_4b.S
! a937dd5a0ff00fe335d6e24f675c5942  libgcc/config/nds32/isr-library/vec_vid33.S
! 77fa7a03f875eb4fc30e291bd189e897  libgcc/config/nds32/isr-library/vec_vid33_4b.S
! 5106b0638361546f2d875650100b0b6f  libgcc/config/nds32/isr-library/vec_vid34.S
! 88d1cba021ae65face3b494b34a6bdbb  libgcc/config/nds32/isr-library/vec_vid34_4b.S
! d42cab63e865f3940dc9de8c0cbaf7f3  libgcc/config/nds32/isr-library/vec_vid35.S
! f686b1793c1164fb5216af9c56e255bd  libgcc/config/nds32/isr-library/vec_vid35_4b.S
! 08a04562c2c2455353aceb7c2c282bb8  libgcc/config/nds32/isr-library/vec_vid36.S
! 5ca4c5a9d95fce6a4e4b96785f090bd4  libgcc/config/nds32/isr-library/vec_vid36_4b.S
! 9eac1ab4581b5c86fead3d0c540b9964  libgcc/config/nds32/isr-library/vec_vid37.S
! 1a6e66e96fc493ad95a90c236ed8900f  libgcc/config/nds32/isr-library/vec_vid37_4b.S
! d731699fd31ad398989115aaec15124e  libgcc/config/nds32/isr-library/vec_vid38.S
! 663179ac258848a20642c71f9d05046b  libgcc/config/nds32/isr-library/vec_vid38_4b.S
! 5682ad8d6841e7864e6fafe83ba5fb30  libgcc/config/nds32/isr-library/vec_vid39.S
! c0523769f3f6048d529b98e920e31a71  libgcc/config/nds32/isr-library/vec_vid39_4b.S
! d3a9295cd3bb716346739fc5d579c061  libgcc/config/nds32/isr-library/vec_vid40.S
! bd74278c3dd9b6751d3d6f9dbd6798fc  libgcc/config/nds32/isr-library/vec_vid40_4b.S
! a570ecc0139c503e3b19acfed96b83da  libgcc/config/nds32/isr-library/vec_vid41.S
! f1e1be8cfcc77deb538e6556f21faf34  libgcc/config/nds32/isr-library/vec_vid41_4b.S
! 863496e6a09bca0ce3c5972266951456  libgcc/config/nds32/isr-library/vec_vid42.S
! 98cbe70d5ee4c4d5c9e5bebbc0ffe41d  libgcc/config/nds32/isr-library/vec_vid42_4b.S
! 9ab897323d6ac7b7b344da53f3686e45  libgcc/config/nds32/isr-library/vec_vid43.S
! 34b02cd925bc5057f9a1fdf82ec100f6  libgcc/config/nds32/isr-library/vec_vid43_4b.S
! dd30084ba38055eff30bdaea3d3ed053  libgcc/config/nds32/isr-library/vec_vid44.S
! 2407c8918d2b6aa5f5336c36945a82af  libgcc/config/nds32/isr-library/vec_vid44_4b.S
! ee0cb62f49ff94c6ceaa254cb68fbc14  libgcc/config/nds32/isr-library/vec_vid45.S
! 5fd17a0d77dc0b551b782fa2cf1701fb  libgcc/config/nds32/isr-library/vec_vid45_4b.S
! 2bfcd7e2b82ab6e4e34b81694b482e55  libgcc/config/nds32/isr-library/vec_vid46.S
! dcdaac376cd4c8c6d921855ad8c706ab  libgcc/config/nds32/isr-library/vec_vid46_4b.S
! 288244854aa20367276e165c740b3e36  libgcc/config/nds32/isr-library/vec_vid47.S
! d223f9927ce6afd87b7362a3f311cc4e  libgcc/config/nds32/isr-library/vec_vid47_4b.S
! c1a470d281f68d3ef516cf417b613e02  libgcc/config/nds32/isr-library/vec_vid48.S
! f9ba012d9fee93569ee461b75ee0607d  libgcc/config/nds32/isr-library/vec_vid48_4b.S
! 2fcdf6f7e388437723ad22f59ec45d75  libgcc/config/nds32/isr-library/vec_vid49.S
! 7896d8e5ad1edbb267e6e7c1e104f859  libgcc/config/nds32/isr-library/vec_vid49_4b.S
! c856c8145cfc68c5da86fa9476f72149  libgcc/config/nds32/isr-library/vec_vid50.S
! dc3695976578284ac389769eaf31d6f3  libgcc/config/nds32/isr-library/vec_vid50_4b.S
! 774c0c5835fcb2f0b654d60537ad76ad  libgcc/config/nds32/isr-library/vec_vid51.S
! 971bc0d1a75740b3f8a6ebe51cbe39fb  libgcc/config/nds32/isr-library/vec_vid51_4b.S
! c2bba3600a3c0ba4aa093d4d33f4689b  libgcc/config/nds32/isr-library/vec_vid52.S
! 34e3e7edf3b9113f20a09c98d5e2fc11  libgcc/config/nds32/isr-library/vec_vid52_4b.S
! 3f3f2a2668e6bdfb53d12c37306dc45b  libgcc/config/nds32/isr-library/vec_vid53.S
! 513656e500521aa161a6aa3edf2b612c  libgcc/config/nds32/isr-library/vec_vid53_4b.S
! 859dc8ea2e7fc17a689deefe1f6502c1  libgcc/config/nds32/isr-library/vec_vid54.S
! 49d41bdd1f47e325ec340b8c3493018d  libgcc/config/nds32/isr-library/vec_vid54_4b.S
! 1332d22c35daa3036e9a04729560d0de  libgcc/config/nds32/isr-library/vec_vid55.S
! 4e300d31243f0b334b6b9fb6d54b7c33  libgcc/config/nds32/isr-library/vec_vid55_4b.S
! e2a7dd955703c574a3dd8151e6492885  libgcc/config/nds32/isr-library/vec_vid56.S
! c8fd2ee46550d74856e6657a67cec6e2  libgcc/config/nds32/isr-library/vec_vid56_4b.S
! 20003aa7d24a7a3d8b71a0743f43a8ec  libgcc/config/nds32/isr-library/vec_vid57.S
! 0ccafba9a8e095a94fa34e06f7d7a64f  libgcc/config/nds32/isr-library/vec_vid57_4b.S
! 16ca70e252b97afb3e46d62a95b4662a  libgcc/config/nds32/isr-library/vec_vid58.S
! e723373f6e6fa1656d86442e54e4b637  libgcc/config/nds32/isr-library/vec_vid58_4b.S
! 8ecddba53b055f2c15ead83acbcb2f3c  libgcc/config/nds32/isr-library/vec_vid59.S
! cd1d6aa6d00d8a76f14a832b908b5ae5  libgcc/config/nds32/isr-library/vec_vid59_4b.S
! 0aca8c7ef7e340edb81633f0cbac783d  libgcc/config/nds32/isr-library/vec_vid60.S
! 4b9448fc33a434cade08e2d35e131484  libgcc/config/nds32/isr-library/vec_vid60_4b.S
! 148b8e6bb8b095d796da5a4fdbee3591  libgcc/config/nds32/isr-library/vec_vid61.S
! d5d5d9dd24b43357c184483985d7a043  libgcc/config/nds32/isr-library/vec_vid61_4b.S
! 3b97adbf9cff4c4e2ec927a31d03c472  libgcc/config/nds32/isr-library/vec_vid62.S
! 53f361fcd0482e25f8152ccc40333ada  libgcc/config/nds32/isr-library/vec_vid62_4b.S
! 91724cfe5bc907aa96c191a2abe4e548  libgcc/config/nds32/isr-library/vec_vid63.S
! 93929b31bd824aaea5e5528fef07f259  libgcc/config/nds32/isr-library/vec_vid63_4b.S
! fff5a4ce8cc010966a82c22c1b4aaf90  libgcc/config/nds32/isr-library/vec_vid64.S
! 396039a4132c841e904d79ec11890ce0  libgcc/config/nds32/isr-library/vec_vid64_4b.S
! fa2098ccd7d71d868b0f007368572512  libgcc/config/nds32/isr-library/vec_vid65.S
! 41eb08294304f88763f4c36b83037d78  libgcc/config/nds32/isr-library/vec_vid65_4b.S
! 6f7e870c99cec2898602aca24841718c  libgcc/config/nds32/isr-library/vec_vid66.S
! 0e6a104c37a75e3fbb5d3d1ef776c718  libgcc/config/nds32/isr-library/vec_vid66_4b.S
! 94f1c334d05a3fd4e4c0182af578b3d4  libgcc/config/nds32/isr-library/vec_vid67.S
! a61c99afead7373d92a1be1aecdccb69  libgcc/config/nds32/isr-library/vec_vid67_4b.S
! c507b5ab0d5baf6aa437462c127be239  libgcc/config/nds32/isr-library/vec_vid68.S
! 52af2e15a8324fb07285ae092dd71ed1  libgcc/config/nds32/isr-library/vec_vid68_4b.S
! 33ca392eea68a5666abf5bf48a3eb74f  libgcc/config/nds32/isr-library/vec_vid69.S
! ef8ba657028fb7dc8512df0182202d2d  libgcc/config/nds32/isr-library/vec_vid69_4b.S
! 8bc4cbc62ad6f777c817d0e83c143ecb  libgcc/config/nds32/isr-library/vec_vid70.S
! eead0e7eeee31c6f2599bc69dfcc7d18  libgcc/config/nds32/isr-library/vec_vid70_4b.S
! 438bb7af7fd9483084f046b70bb150fe  libgcc/config/nds32/isr-library/vec_vid71.S
! 83a0603a492b4305e55b25c3750e41d4  libgcc/config/nds32/isr-library/vec_vid71_4b.S
! 1f653379ca74ea3715fee14b1141adcb  libgcc/config/nds32/isr-library/vec_vid72.S
! b72b3f6267dbe6454198b8a90aead2f2  libgcc/config/nds32/isr-library/vec_vid72_4b.S
! e4392d824cdbed424759bea0140867ed  libgcc/config/nds32/isr-library/wrh.S
! aa29a26aaa6a67e4782232a111adae2a  libgcc/config/nds32/lib1asmsrc-mculib.S
! 0fede3777ae4edd3319bfd1b6a246dfa  libgcc/config/nds32/lib1asmsrc-newlib.S
! 25ea317cd180a7de7ff4a2e269cfa79b  libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
! 9992c2204e8ec5fd97a7df422a282be4  libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
! 7758d6a31dd8a01d741bdf44a9c749e8  libgcc/config/nds32/linux-atomic.c
! 1d549787f76282f20e1c6d264d031596  libgcc/config/nds32/linux-unwind.h
! 0ea8adab0c834367af948e99dc00cab2  libgcc/config/nds32/sfp-machine.h
! fbc4da47d881bd113c19f5f065f16b9a  libgcc/config/nds32/t-nds32
! 307a50b25ab7c4afaf3367e6bf24268a  libgcc/config/nds32/t-nds32-glibc
! 66142bb1aea56245745d9e79d2ea0757  libgcc/config/nds32/t-nds32-isr
! a63c2eb64850ff5f667d83fa9a28ca33  libgcc/config/nds32/t-nds32-mculib
! b934786eeedf1517ad82fc57d9c114e5  libgcc/config/nds32/t-nds32-newlib
! 8970338f0d748ebf4c84177798920e28  libgcc/config/nios2/crti.S
! 9daf4509ced5223f93b8968a50a95466  libgcc/config/nios2/crtn.S
! a43264930d2cfe36f3dc53aaa6a663d7  libgcc/config/nios2/elf-lib.h
! 1b707bfc5369e2b2627b14daa82f2295  libgcc/config/nios2/lib2-divmod-hi.c
! 15b13e2e6402b7f95848712c81d944c6  libgcc/config/nios2/lib2-divmod.c
! 155d99063b34a94e43a6bb8c298a7e9a  libgcc/config/nios2/lib2-divtable.c
! 814ef433b2ade92c841335d9bb3335d3  libgcc/config/nios2/lib2-mul.c
! 3416812ac1ef52fcc264597ef74cd1a8  libgcc/config/nios2/lib2-nios2.h
! 9b05ce56aa0e84b040af50ebc94e235d  libgcc/config/nios2/linux-atomic.c
! 27fab677e7c9ccff2b90d6790aa80e3c  libgcc/config/nios2/linux-unwind.h
! 818b60a0cdb45946daf3bac195db9ab0  libgcc/config/nios2/sfp-machine.h
! 598bde069aeebadde9b08f8703ab2c77  libgcc/config/nios2/t-linux
! 058cf7bee1e8fb40a62590a2558c7f76  libgcc/config/nios2/t-nios2
! 2b1fe1d0a251e1b7c960d3227f736142  libgcc/config/nios2/tramp.c
  d554f3fc7ee3cecc697c448b8c5f61bb  libgcc/config/no-sfp-machine.h
! b70010a8e3a6734ae04ba484992563c5  libgcc/config/no-unwind.h
! d8fb408b620eef3ab902db72aee11b75  libgcc/config/nvptx/atomic.c
! d7c375342112d4d8d84de6fff8d7ef24  libgcc/config/nvptx/crt0.c
! adf420963a68fc05f49de6402df870df  libgcc/config/nvptx/mgomp.c
! 6112215b135af4ca5e179e01186668fd  libgcc/config/nvptx/nvptx-malloc.h
! e1abbfde1cccaeb4b93548f4e4eb9bab  libgcc/config/nvptx/reduction.c
! 0617edec520da7980b5d283a7187ead5  libgcc/config/nvptx/t-nvptx
! dd79f42febc8b1194f774aa15e40085c  libgcc/config/or1k/lib1funcs.S
! 599ef5b011b025a8630127e329d8df2a  libgcc/config/or1k/linux-unwind.h
  bb60ec15ea01e2d3f07f2b944b739c6d  libgcc/config/or1k/sfp-machine.h
  dc51b5d6e7fd35fa1156670d20c6464d  libgcc/config/or1k/t-crtstuff
! 70416b4da394aa58fe184f5127607f71  libgcc/config/or1k/t-or1k
! 70448f01899578da48ef8788f6e9ebe6  libgcc/config/pa/fptr.c
! 9976a96429845eb018acdf22a4ba3054  libgcc/config/pa/gthr-dce.h
! 774f73c67b8646424bd790ca582029a1  libgcc/config/pa/hpux-unwind.h
! 8a9f138f33d8a4c87baec2057b46f003  libgcc/config/pa/lib2funcs.S
! e22303d1f2c7406b71fb2e8ca7d76a3e  libgcc/config/pa/linux-atomic.c
! 2c2782cc900c6ca399282af32f832683  libgcc/config/pa/linux-unwind.h
! 8cc3d8c1ab4938ec6429024b839a30a5  libgcc/config/pa/milli64.S
! 42ce53ce8cadf71652c0e61f4aa8cd8f  libgcc/config/pa/pa64-hpux-lib.h
! e150a0d1ae66cf8e422cf4355b0e6c77  libgcc/config/pa/quadlib.c
! fb39ec435f62a53ec232c099689a5b84  libgcc/config/pa/sfp-exceptions.c
! b70adf0e4ed048c8971c873786365d21  libgcc/config/pa/sfp-machine.h
! f0200b26bff9ab2308f91cde337efd9e  libgcc/config/pa/stublib.c
! 5eac061fee092ccc1481539dd8dd1649  libgcc/config/pa/sync-libfuncs.c
  be1d29d3044d55ee3e60d3e74a9e98fe  libgcc/config/pa/t-dimode
  8a3964d4f1eddb14d9260a0a72a23493  libgcc/config/pa/t-hpux
  73420715a92f162a61d33bbfbe7c4dee  libgcc/config/pa/t-hpux10
--- 118606,119176 ----
  3cc3f3d4611f64c4d5fc225a72d8ccc4  libgcc/config/ia64/t-softfp
  7508d41329db54ddeccc7e86a6cafae5  libgcc/config/ia64/t-softfp-compat
  552ede49162d3a4fb9e1e113de11e8b5  libgcc/config/ia64/t-vms
! 7dd2ec777870d883ba2bf79b54c86576  libgcc/config/ia64/tf-signs.c
! f829132df7b0bdd98ef979cc6406f24e  libgcc/config/ia64/unwind-ia64.c
! 3ab58b4c14b158a1685327864d2440b3  libgcc/config/ia64/unwind-ia64.h
! bdd08773400d12af9ac3b370d255ccca  libgcc/config/ia64/vms-crtinit.S
! 40eda5c7825bbaa25723845c3f9caabd  libgcc/config/ia64/vms-unwind.h
! 82cf742d0711f5ea45c5d4ae1837083b  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 04c1d1609f39d39ea95c46f84fcf886b  libgcc/config/libbid/ChangeLog
! c32cb18bbfd73dda967b708b16ce8e89  libgcc/config/libbid/_addsub_dd.c
! a0801827ba65b25ba20a91e765121b7f  libgcc/config/libbid/_addsub_sd.c
! 1047ed1c06b6914a7df19b0739d305c3  libgcc/config/libbid/_addsub_td.c
! c89e0e9c20119b2267badaa4a3257494  libgcc/config/libbid/_dd_to_df.c
! 31e092657d195989993aa8e41b6f565d  libgcc/config/libbid/_dd_to_di.c
! 8508678ab495fdf822274930de86e187  libgcc/config/libbid/_dd_to_hf.c
! 121435fb01d59551d762d35c873ce389  libgcc/config/libbid/_dd_to_sd.c
! 402d9cee148e63bf05c2942d2a5561cd  libgcc/config/libbid/_dd_to_sf.c
! 5a879798ce207a4a02bbded9ab4cf0ea  libgcc/config/libbid/_dd_to_si.c
! b5369fca7a89631be9f447128318eee8  libgcc/config/libbid/_dd_to_td.c
! 6984eb046b794088328d6c03fb958dc3  libgcc/config/libbid/_dd_to_tf.c
! a3313bfaed5a96ae215a9228c7208afc  libgcc/config/libbid/_dd_to_udi.c
! 6b840967574e46aeb214bca4ca1be6ca  libgcc/config/libbid/_dd_to_usi.c
! 8b21c322c1467225572a501cfea1e0eb  libgcc/config/libbid/_dd_to_xf.c
! 451f14f3351b84967c515fc42503eaf7  libgcc/config/libbid/_df_to_dd.c
! 391d626b7930d5b8aae72d0036be2913  libgcc/config/libbid/_df_to_sd.c
! 416b4189ebbf4f8e1d6c01496c7cfcce  libgcc/config/libbid/_df_to_td.c
! 9ac2a7117da8a0e35a4dfc4b1771314d  libgcc/config/libbid/_di_to_dd.c
! ca7e92b0662cfcc29b2cfe625031c82f  libgcc/config/libbid/_di_to_sd.c
! 316ebf10ff56fa7ec166a76877e54b8f  libgcc/config/libbid/_di_to_td.c
! 426dc2bd116caf218b9444971bbf99f2  libgcc/config/libbid/_div_dd.c
! 7989f99becd3c7a8f355ee37207814f6  libgcc/config/libbid/_div_sd.c
! aaeabfbb585b9d15ac0b57e999cc96fb  libgcc/config/libbid/_div_td.c
! 13c581b2718f2b32e2d5beee073141fc  libgcc/config/libbid/_eq_dd.c
! 2de35015a8644c025b168d2ba1f773a6  libgcc/config/libbid/_eq_sd.c
! f8374ff5129b5d8cad7eec4b3579eedc  libgcc/config/libbid/_eq_td.c
! 61ff87a6e944805472e806c215f0cae7  libgcc/config/libbid/_ge_dd.c
! 1265d469214da05634f2dbca7440c322  libgcc/config/libbid/_ge_sd.c
! 09f47946c1494ce1605842cf44e8cc70  libgcc/config/libbid/_ge_td.c
! d7a51e278194ac5d2c7476d6a41cf34d  libgcc/config/libbid/_gt_dd.c
! 49d7ef8071e18cc239a59a44718954c8  libgcc/config/libbid/_gt_sd.c
! d2ea210060375888fc9ea92b400128d1  libgcc/config/libbid/_gt_td.c
! f582038be3d927769ec1128f4e35d4c5  libgcc/config/libbid/_hf_to_dd.c
! eae8f1e3154646469e52036dc26d828e  libgcc/config/libbid/_hf_to_sd.c
! f3d516da1deef4091afb7d8769e9fbd7  libgcc/config/libbid/_hf_to_td.c
! cc38ecc570bc0bed2b570ef5a1481925  libgcc/config/libbid/_isinfd128.c
! 1afdaad7d6d2b8b9fb15e14b5cdc757a  libgcc/config/libbid/_isinfd32.c
! ddf576df04d444adba84479807239f3b  libgcc/config/libbid/_isinfd64.c
! e24736b3793db42383749888ea14b579  libgcc/config/libbid/_le_dd.c
! 6c4aaa3bbaf6bc19bcb9f6375d186594  libgcc/config/libbid/_le_sd.c
! 53a20b63e971d89bc6de39e833170410  libgcc/config/libbid/_le_td.c
! f6e7f13b39bea7c0e06aefe2243b8ba2  libgcc/config/libbid/_lt_dd.c
! 5c0609f1363c346edafd14212acc348e  libgcc/config/libbid/_lt_sd.c
! fdcc448e6858783bb59bd060abebbeaf  libgcc/config/libbid/_lt_td.c
! 89e4d28eafd8dfded32675ee836bd32c  libgcc/config/libbid/_mul_dd.c
! 6e32bd2883a2c4de4f121b6ad9ce74ee  libgcc/config/libbid/_mul_sd.c
! 1a10ba856579c8e3cd9c268b18255ee0  libgcc/config/libbid/_mul_td.c
! c4a397ad8b2adc79f682e54e9e65cf51  libgcc/config/libbid/_ne_dd.c
! b9fda66ee2ea44667465bd1d977cb6fb  libgcc/config/libbid/_ne_sd.c
! afa0b74c860ee45ffa728e7f85da41b2  libgcc/config/libbid/_ne_td.c
! be69bd085361424f0721b7062b46d388  libgcc/config/libbid/_sd_to_dd.c
! d518c7c8b483f1039aacceacfc9120ac  libgcc/config/libbid/_sd_to_df.c
! 4b189344408c1d96e81fd0640a51521d  libgcc/config/libbid/_sd_to_di.c
! 1b946f0ec6eb7078239c7604ab1c2e5b  libgcc/config/libbid/_sd_to_hf.c
! 152b3c4c6dabc1fea2cfbce8d7ab52a0  libgcc/config/libbid/_sd_to_sf.c
! 0809fd352a0e09a35a3269f24bdbf8f6  libgcc/config/libbid/_sd_to_si.c
! e634a54ebd1d6bd00d6482561da81c64  libgcc/config/libbid/_sd_to_td.c
! d155bdf239dab38b7daac2dd28951eb8  libgcc/config/libbid/_sd_to_tf.c
! 88a40b0fae5e24caffac22a7ebb97476  libgcc/config/libbid/_sd_to_udi.c
! e7ed8245b09c8fbb468783d070ebff8b  libgcc/config/libbid/_sd_to_usi.c
! 581e66175293a3031e22c5cbe64e89ae  libgcc/config/libbid/_sd_to_xf.c
! 4a4e15fd08ab24bc1a3eaf05c0bf36bf  libgcc/config/libbid/_sf_to_dd.c
! 65ef83d6e752bc4ab85487f71a8ed0cc  libgcc/config/libbid/_sf_to_sd.c
! 34eb4d8ad8b670f72a6c3a0019b84fe6  libgcc/config/libbid/_sf_to_td.c
! bc26edc93c13d6acb7de01178ad1300c  libgcc/config/libbid/_si_to_dd.c
! adc1f489e7298925027ea0ace77ea62b  libgcc/config/libbid/_si_to_sd.c
! 36872feaee02bcf20133da6b25fdabd8  libgcc/config/libbid/_si_to_td.c
! 0ef33dcc7b82b825f6a4df613364c5b4  libgcc/config/libbid/_td_to_dd.c
! 20edef0b2c0c36fb61ef734886aa0033  libgcc/config/libbid/_td_to_df.c
! 45cfa0237d91f00c55a6264904718ffe  libgcc/config/libbid/_td_to_di.c
! 281717d9f52e676b942ac62973d476b6  libgcc/config/libbid/_td_to_hf.c
! 3016a4516a910369f9da39ea1bbcc3b1  libgcc/config/libbid/_td_to_sd.c
! adb841ac8f44c40dae14372a91a830d7  libgcc/config/libbid/_td_to_sf.c
! 3e01e33e2a321095490efab93783d08f  libgcc/config/libbid/_td_to_si.c
! a5ece940302601a44da0a549e88e2aee  libgcc/config/libbid/_td_to_tf.c
! 54f482c7fc1062f5b3efd39a4d7b5924  libgcc/config/libbid/_td_to_udi.c
! d7ca0895a9d9e1f32a8a651434c8ba85  libgcc/config/libbid/_td_to_usi.c
! 03f2ba2c68bf7525e9dddc449290b76f  libgcc/config/libbid/_td_to_xf.c
! 454b6330cf6887c2e7baa2b1526e924d  libgcc/config/libbid/_tf_to_dd.c
! 283fbf7f1020fdcfe867df438ec903c2  libgcc/config/libbid/_tf_to_sd.c
! 6cf7e2fc5b7461e6db62345e41b11331  libgcc/config/libbid/_tf_to_td.c
! dac4d861bc6ffb0287c841505e1436ae  libgcc/config/libbid/_udi_to_dd.c
! 4a7b067a3461563ba991a48c591e5a68  libgcc/config/libbid/_udi_to_sd.c
! 574062ee5a9fab492039aa14940989b3  libgcc/config/libbid/_udi_to_td.c
! 8e0133c8e12dfdadc95dc0780e0882c1  libgcc/config/libbid/_unord_dd.c
! 5cde67e66e602c83df3221d8d4a0a15c  libgcc/config/libbid/_unord_sd.c
! 6a8dd29930361c77808586e01bfaec03  libgcc/config/libbid/_unord_td.c
! f5f6cca08422dcad19699a081f70e8ba  libgcc/config/libbid/_usi_to_dd.c
! 7204d58f85efe981b6f4ea71a3e042df  libgcc/config/libbid/_usi_to_sd.c
! 8e03d04c87f6af281b5e6ccb2393ec98  libgcc/config/libbid/_usi_to_td.c
! a192b80bae7e94596a4a0a262f826fb7  libgcc/config/libbid/_xf_to_dd.c
! c39a76ed9568f1439691789682818d11  libgcc/config/libbid/_xf_to_sd.c
! ff71fee3c4ee225f56f94a0a7ab9e0cb  libgcc/config/libbid/_xf_to_td.c
! 27b6076284cc3cf2f6f5869923658a42  libgcc/config/libbid/bid128.c
! 0f07703fba56cdd5b10c3981906e3780  libgcc/config/libbid/bid128_2_str.h
! 1967397ca2404f0b7e6ad106ca164c61  libgcc/config/libbid/bid128_2_str_macros.h
! b5950e7f6ef2032d560632e52f1f4bc0  libgcc/config/libbid/bid128_2_str_tables.c
! dcaf4e6ec366e3ce821a5769d26bef46  libgcc/config/libbid/bid128_add.c
! 43f6e16efc9420395d37b1fcc3376197  libgcc/config/libbid/bid128_compare.c
! 5e751588ae3fba3d429064e571657bfc  libgcc/config/libbid/bid128_div.c
! 1aed83ac430526168ee9b7e3d24ca3b1  libgcc/config/libbid/bid128_fma.c
! 77120d88329f0d2e45d045ddb8b5358e  libgcc/config/libbid/bid128_logb.c
! aa8cfec6ceee41ab192ba5aa0e7c17db  libgcc/config/libbid/bid128_minmax.c
! c7126c28b3d5dda35064923f5b649264  libgcc/config/libbid/bid128_mul.c
! 95ff3897d01f222640707210dc675e65  libgcc/config/libbid/bid128_next.c
! 2d0edb964e052049a89ebf9249985eb3  libgcc/config/libbid/bid128_noncomp.c
! 19dc2f0670e816378fe383d5cdde8de3  libgcc/config/libbid/bid128_quantize.c
! f9dd4c2de3d5d7f0a9e469c58bb96282  libgcc/config/libbid/bid128_rem.c
! e47002f8a9af1f723717744533373209  libgcc/config/libbid/bid128_round_integral.c
! 6aa496932e2793f99a679f3d8f2e8a6a  libgcc/config/libbid/bid128_scalb.c
! f96ef1bdedf3c677c0ab358daeac3087  libgcc/config/libbid/bid128_sqrt.c
! 63d2124e5e0459e6ce7253ace7228562  libgcc/config/libbid/bid128_string.c
! b04507fb39a7e74d05b983f493b37627  libgcc/config/libbid/bid128_to_int16.c
! 36356c2e9e46f1a6d4b135671c1a9051  libgcc/config/libbid/bid128_to_int32.c
! 2ca85383e6ab8dc7e175421fa567a2b3  libgcc/config/libbid/bid128_to_int64.c
! 4f1a89ebba440c7a70615bf2c58fec68  libgcc/config/libbid/bid128_to_int8.c
! 47ef6c9ddc6f3d4edd15dd433e8c0f52  libgcc/config/libbid/bid128_to_uint16.c
! dd48c10e8ead69c2d9e53b5831cc23c6  libgcc/config/libbid/bid128_to_uint32.c
! 3145430e86be8ba35d596761f3558aec  libgcc/config/libbid/bid128_to_uint64.c
! 44a15063c103503fc57073decc1eea66  libgcc/config/libbid/bid128_to_uint8.c
! b3384b90b90b33a36495a5a7734e1300  libgcc/config/libbid/bid32_to_bid128.c
! edc9f583eebaaf726fce3afe6f769fe2  libgcc/config/libbid/bid32_to_bid64.c
! 269931222e48149446c3fb9f09426672  libgcc/config/libbid/bid64_add.c
! 472d54e10499d28cf0507f1b3a27c15b  libgcc/config/libbid/bid64_compare.c
! da587f68f6856fd3ed81814dc8748100  libgcc/config/libbid/bid64_div.c
! f9a278f66006128281a11d14f511bced  libgcc/config/libbid/bid64_fma.c
! 8fed448879bf51a424392f7d0fc794bb  libgcc/config/libbid/bid64_logb.c
! 399408a69ab6e47ea529dfc4dcc6571b  libgcc/config/libbid/bid64_minmax.c
! 4022b738adfe346b8f3f71cac4d95857  libgcc/config/libbid/bid64_mul.c
! 24b0ba80ae1fdf6c5285ab9e328787e7  libgcc/config/libbid/bid64_next.c
! 0216f3b6a997a5a6be4e4e8eca41f8ce  libgcc/config/libbid/bid64_noncomp.c
! 8f42e9e0e7b74bae2e0df2fe6a616c9e  libgcc/config/libbid/bid64_quantize.c
! 5d823b373ea89220ccd35c75c73f8836  libgcc/config/libbid/bid64_rem.c
! 14d473db7e7f2c6ca32045c571985d1c  libgcc/config/libbid/bid64_round_integral.c
! c0a52eb14c37b3a7cd3c6054ea55b6e0  libgcc/config/libbid/bid64_scalb.c
! beb635ac557423ceb04bdddd6d9f1e3f  libgcc/config/libbid/bid64_sqrt.c
! cf98b71c0c16add4207dbaf0c29f6ae9  libgcc/config/libbid/bid64_string.c
! afab4c38bcf0adda9eb6aabf0be70cc7  libgcc/config/libbid/bid64_to_bid128.c
! 7ef439e322717e7834fcec6dbf25ff4b  libgcc/config/libbid/bid64_to_int16.c
! 4ec77cad60033a54fefe9ca5f7855bc0  libgcc/config/libbid/bid64_to_int32.c
! d5d62bfd9758d5a98034666a546d5172  libgcc/config/libbid/bid64_to_int64.c
! 656a55029b0dd7395fb5fb17bd5eac0e  libgcc/config/libbid/bid64_to_int8.c
! 6f738b658c7dee813ca655ab79ed0218  libgcc/config/libbid/bid64_to_uint16.c
! e8d114fdcf648fecb254d5fb8251dc3d  libgcc/config/libbid/bid64_to_uint32.c
! 0f3c04f1496cdbbc474f8231169766a1  libgcc/config/libbid/bid64_to_uint64.c
! 9d134112f07399d1f399c146e2ca9b83  libgcc/config/libbid/bid64_to_uint8.c
! b24fba58080e26dafa91ad5bfd068879  libgcc/config/libbid/bid_b2d.h
! ebbff94b4ae9e0e75dd19659f7c90a5d  libgcc/config/libbid/bid_binarydecimal.c
! 2df00524ee5cc9493a7a521cc277c12b  libgcc/config/libbid/bid_conf.h
! 73624cc921b0c1679f782553224ccd99  libgcc/config/libbid/bid_convert_data.c
! 7ed819d3f6e8d2474ffb5fcc48b6c4a9  libgcc/config/libbid/bid_decimal_data.c
! 30b0231dc6fddefe5f6f8e6de853c5aa  libgcc/config/libbid/bid_decimal_globals.c
! d72d2d47e65e624f35d6155a60da79b4  libgcc/config/libbid/bid_div_macros.h
! 50b18ef97aa347c39f45e31051abd213  libgcc/config/libbid/bid_dpd.c
! ce710792fc6b451151606adc697fe55e  libgcc/config/libbid/bid_flag_operations.c
! 93cffd46aee96d3fcec9f62981753535  libgcc/config/libbid/bid_from_int.c
! 1d8fd5b60d79b015054a04a3a7494eca  libgcc/config/libbid/bid_functions.h
! e9b1339b51f6969fe1556de082ea6a91  libgcc/config/libbid/bid_gcc_intrinsics.h
! bcfc00321102bb27f2e0fd458f2b01b4  libgcc/config/libbid/bid_inline_add.h
! 9ccaf19d795bcac78a72ba9c729bf4cb  libgcc/config/libbid/bid_internal.h
! 476daf58a9ae2a9f66f7e68e4a3b7f92  libgcc/config/libbid/bid_round.c
! c80a125d76b6ed065ae4767dfa45c5b8  libgcc/config/libbid/bid_sqrt_macros.h
! 7d0683f53e0d206602b9efd3cc40430d  libgcc/config/libgcc-glibc.ver
  a5b43383f528298ff2dc85061452e1e6  libgcc/config/libgcc-libsystem.ver
! 8e7932f751f7fded7e1be70399d9afbe  libgcc/config/lm32/_ashlsi3.S
! eb4aecaeaa78151eea6e7261d6bd508c  libgcc/config/lm32/_ashrsi3.S
! 2563ac87ace14c09b5e20ee615c46ab2  libgcc/config/lm32/_divsi3.c
! c2d7e751f43b7d4d9fe8a4859ba636d9  libgcc/config/lm32/_lshrsi3.S
! 7bdec4f343d5310e328223f65dd0aa6d  libgcc/config/lm32/_modsi3.c
! 9138b2fa2012727e02e3030ab6449cf4  libgcc/config/lm32/_mulsi3.c
! c3c3d0a1b533447e021d9171a14ee04c  libgcc/config/lm32/_udivmodsi4.c
! 62084f2b63e78a5b4dd685ceef53e1da  libgcc/config/lm32/_udivsi3.c
! 0cbf9f2c90b4575b8539ddf85430abd5  libgcc/config/lm32/_umodsi3.c
! a41ab3bf7ba8f6d047bf8369340f29e4  libgcc/config/lm32/crti.S
! 2ca012bfe3dc450d592b50afa2ef7723  libgcc/config/lm32/crtn.S
! 95718722eda05d72b57bf16ee1b71759  libgcc/config/lm32/libgcc_lm32.h
  813910d184e034c80a518f2ba3c4e1a5  libgcc/config/lm32/sfp-machine.h
  331dd855f33aa7a09d25fc757cedf2cf  libgcc/config/lm32/t-elf
  d6d4b530a7539331e6e553f26928de4e  libgcc/config/lm32/t-lm32
  df59d7c87fc0d2f761461ac4ba7ec440  libgcc/config/lm32/t-uclinux
! d119a58a81bebc60db32e4162e42d0fd  libgcc/config/loongarch/crtfastmath.c
! 524d3cd99dfcdda6c1a4895305cd4aa4  libgcc/config/loongarch/linux-unwind.h
! a3f0e7fc76c68352401e4963c88f85e9  libgcc/config/loongarch/sfp-machine.h
! 39d859f2463613a8181ae213154247d3  libgcc/config/loongarch/t-crtstuff
  5b9c4ae086bab2fa0eb006a6223eb270  libgcc/config/loongarch/t-loongarch
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/loongarch/t-loongarch64
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/loongarch/t-softfp-tf
! 31e6754c91ae8e2dd14b16d80959efa6  libgcc/config/m32c/lib1funcs.S
! 3204f14b3308625883db825df75f4d45  libgcc/config/m32c/lib2funcs.c
  9f1fc3a0f039273ded002a6713908bd3  libgcc/config/m32c/t-m32c
! e5814ae02e00f957582f57ec6a800d4f  libgcc/config/m32c/trapv.c
! e4f8c521e4df75f9dd7eae72e11618ee  libgcc/config/m32r/initfini.c
  e252c161ec4eb09d3b5a62d902b3d00f  libgcc/config/m32r/t-m32r
! 9b87f244eff9806e7b65befe75c480c6  libgcc/config/m68k/crti.S
! 5910f6ef4a045606b0fb8e1cecfc374e  libgcc/config/m68k/crtn.S
! 3114ddfa399eb3112881c407b63e87f3  libgcc/config/m68k/fpgnulib.c
! c47b3bf079eae30a2228e688f0264d7b  libgcc/config/m68k/lb1sf68.S
! aa51b0de1e8c4186ccdd41ec9786d047  libgcc/config/m68k/linux-atomic.c
! dcc978a3c5e465b27c3aabc0cce11766  libgcc/config/m68k/linux-unwind.h
  2e4fd3e401c9159da9f32d5965b5afa1  libgcc/config/m68k/t-floatlib
  de217c41c217f4341d6d546afa9a79f2  libgcc/config/m68k/t-linux
  4e281c631e54b8912258f84196fec9e6  libgcc/config/m68k/t-slibgcc-elf-ver
! b93a36dc529fa96a29d6c52dbb2d14e1  libgcc/config/mcore/crti.S
! 94eb04554329c83221c8e8b49979d5e2  libgcc/config/mcore/crtn.S
! 211725b90e3b872b330744d43c837eeb  libgcc/config/mcore/lib1funcs.S
  ef74fd63202d842bfe7120864186128c  libgcc/config/mcore/t-mcore
! 8a7b604a4c07d60e4b80233f3718981d  libgcc/config/microblaze/crti.S
! 4582baad3d0d1d586c2c4854e94cb76c  libgcc/config/microblaze/crtn.S
! 7170aae409541fff03bbdd97334f229d  libgcc/config/microblaze/divsi3.S
! f84b51ca621160928f2fa03d896bf077  libgcc/config/microblaze/divsi3_table.c
! 9f97c288657127d2900ede63b1840d55  libgcc/config/microblaze/moddi3.S
! e73d699a7c3aa9f4083319c0fdef45aa  libgcc/config/microblaze/modsi3.S
! 376930572c6598639b8ccf7bb7624264  libgcc/config/microblaze/muldi3_hard.S
! 373f217b9c5cef37b240f3b04a633f58  libgcc/config/microblaze/mulsi3.S
! a6ba6c655b66c26737489f312ef94661  libgcc/config/microblaze/stack_overflow_exit.S
  702cd2045c2c31581ecd56232d96d5f5  libgcc/config/microblaze/t-microblaze
! 959c208714cbcee52e2db85b1de8fbb8  libgcc/config/microblaze/udivsi3.S
! 46acadf369ab54149e0e479fe02e8e53  libgcc/config/microblaze/umodsi3.S
! 21a697b3742c466bc6b268a906529ab6  libgcc/config/mingw/t-gthr-win32
! 80f832afb70afb11a4a1c2e403944b73  libgcc/config/mingw/t-mingw-pthread
! bd20654bad4264867703b8c6fd20a7ff  libgcc/config/mips/crtfastmath.c
! 5c5206cd2eec89d93e19d969e54f5881  libgcc/config/mips/crti.S
! 3be246159af1304395702854d72dc620  libgcc/config/mips/crtn.S
  f69b446f168701e4fad37a3fa7bf7a2a  libgcc/config/mips/gnustack.h
! 27a1eefdb17a22f64ef43039bf9ea82a  libgcc/config/mips/gthr-mipssde.h
! 7bbb7988dc9d6c5d17504af596026aa5  libgcc/config/mips/lib1funcs.S
! 8d7ee8d013935250f836df81a9ff812a  libgcc/config/mips/lib2funcs.c
! bf0a0d4bfecb6a9b2483b24b733b199d  libgcc/config/mips/libgcc-mips.ver
! 022c00b07e4b7dcaf27543774a81f2fa  libgcc/config/mips/libgcc-mips16.ver
! 325c6d74cfbea0829a1d598287e71ee8  libgcc/config/mips/linux-unwind.h
! fe1c53caf42635f9edcd9b3a17af25cf  libgcc/config/mips/mips16.S
! f63f2e21821c3f55b612f2effe6122e0  libgcc/config/mips/sfp-machine.h
  5b43c15f4e003338742d215bcfdf5029  libgcc/config/mips/t-crtstuff
  33f2c96b7ccbbb062839ec1e7329e6bb  libgcc/config/mips/t-elf
  3a02ac9d841ae97e7bfb7f570f95e179  libgcc/config/mips/t-mips
! 5e2c2eed8991521e349074af534ed1ee  libgcc/config/mips/t-mips16
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/mips/t-mips64
  6403b3d85f0ed6751174f1088d074f62  libgcc/config/mips/t-sdemtk
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/mips/t-softfp-tf
  532a76f856d3755b780a19a91bdd1654  libgcc/config/mips/t-vr
! 7aa6a1092f6142f147818e0ca71f29ba  libgcc/config/mips/vr4120-div.S
! c884321dc078722a62a86cd558d507a2  libgcc/config/mmix/crti.S
! 7893fc73f728ca1dc6bc38d3a8167c9b  libgcc/config/mmix/crtn.S
  41478efd1b19b3c7c9426d8e843f3b39  libgcc/config/mmix/t-mmix
! c534c265b6320d00575515cb0da7c61a  libgcc/config/moxie/crti.S
! b9e2fdf2f8aa6ed59a1ecb5c46d9f7a6  libgcc/config/moxie/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/moxie/sfp-machine.h
  9b7000ea173c226d39e6a6dc116fdaf1  libgcc/config/msp430/cmpd.c
! ee7d0c7271cdd99a99aea03d876ec97e  libgcc/config/msp430/cmpsi2.S
! 3743b6d49a5e9a24abacb9989515d1de  libgcc/config/msp430/epilogue.S
  072a56de362c5e857510ca8401f30aa8  libgcc/config/msp430/floathidf.c
  07461b1abb61437fbc73d74801f6300b  libgcc/config/msp430/floathisf.c
  88792e557553f37a296bd8127a0dfc88  libgcc/config/msp430/floatunhidf.c
  754bbc793bc0e81b0a2168df9f47e1f3  libgcc/config/msp430/floatunhisf.c
! 0ef24c136c204eaaca3115441740e6b3  libgcc/config/msp430/lib2bitcountHI.c
! 63b8b436049010150078d239f93e6da5  libgcc/config/msp430/lib2divHI.c
! 28886fcf1d7dd780b736c09e1e04a69d  libgcc/config/msp430/lib2divQI.c
! f6b1fad9609ab0e9c93ad01f1590420a  libgcc/config/msp430/lib2divSI.c
! fd3a9602089a15ca05bf3f3a7d31de51  libgcc/config/msp430/lib2hw_mul.S
! 2598e9e2902ccaf0ffbbb76cf761fa2a  libgcc/config/msp430/lib2mul.c
! 0862933d2f159689818f1750424b6b62  libgcc/config/msp430/lib2shift.c
! 4cd58d6132b194ddd1f8fe2ce65f3fa5  libgcc/config/msp430/mpy.c
! 6e3eff4ae27452f4d2b3a626348e45db  libgcc/config/msp430/msp430-divmod.h
! 8821e3c54d61e2bbec5db9868dd9a220  libgcc/config/msp430/msp430-mul.h
! 40709a5babd5d083d21cc03169a40423  libgcc/config/msp430/slli.S
! 81b89902fe72243ccb461436750061fb  libgcc/config/msp430/srai.S
! 4a6c86a39217b58e79be509ba4900ce3  libgcc/config/msp430/srli.S
! d6421369fc90cfde4849c841730ec14f  libgcc/config/msp430/t-msp430
! 7b5cb682578d7af934a1bb47f214f4b3  libgcc/config/nds32/crtzero.S
! f70117c38da059ed0dd1a9bd47fbae75  libgcc/config/nds32/initfini.c
! 5028a756b2ca2d0a2930c404add915e8  libgcc/config/nds32/isr-library/adj_intr_lvl.inc
! b896256bd709109543ddd66b461d4077  libgcc/config/nds32/isr-library/excp_isr.S
! 43c82537d59e364b34273657c05d8b1a  libgcc/config/nds32/isr-library/excp_isr_4b.S
! 08d227d80f90f5a9323b9b0bbd372482  libgcc/config/nds32/isr-library/intr_isr.S
! 6554fcc379e5cebb0424115b9ef1e4ce  libgcc/config/nds32/isr-library/intr_isr_4b.S
! 8d13efe60194d626a6f917b656aeddb2  libgcc/config/nds32/isr-library/jmptbl_vid00.S
! 553df60c8f6b58f9d4f3edf0c3d0b361  libgcc/config/nds32/isr-library/jmptbl_vid01.S
! 54f6bfc455ad26101e273f0ce3d78f14  libgcc/config/nds32/isr-library/jmptbl_vid02.S
! 9812157810d1d37c01e5fb68e6287e7d  libgcc/config/nds32/isr-library/jmptbl_vid03.S
! 6fb1c380e66b4a5b807a9524cd6e047c  libgcc/config/nds32/isr-library/jmptbl_vid04.S
! d5dd0079dcf0ad59503c1b52d1bd0742  libgcc/config/nds32/isr-library/jmptbl_vid05.S
! f139f34bfd7f59ac4ac72f328413104b  libgcc/config/nds32/isr-library/jmptbl_vid06.S
! c3a0c4da06ebc7da34017addf07bf526  libgcc/config/nds32/isr-library/jmptbl_vid07.S
! 46f3cde1acf05c11741aa1fccce6f916  libgcc/config/nds32/isr-library/jmptbl_vid08.S
! d7288d67a7adba0b04a74a96ac2461b8  libgcc/config/nds32/isr-library/jmptbl_vid09.S
! f83b39e75bec5873f89c52f8b76153a2  libgcc/config/nds32/isr-library/jmptbl_vid10.S
! ee5d2d3004a1bcc7c94b3631386e64d2  libgcc/config/nds32/isr-library/jmptbl_vid11.S
! 72a8c920650ad9c11f0ad1aff12a51fc  libgcc/config/nds32/isr-library/jmptbl_vid12.S
! f7c74d0961d03dca229a41f9c14504d6  libgcc/config/nds32/isr-library/jmptbl_vid13.S
! bd6b635bebce1508ec22907510555e67  libgcc/config/nds32/isr-library/jmptbl_vid14.S
! b0a4e0d8ee747f2dbea89c2a9f7268f2  libgcc/config/nds32/isr-library/jmptbl_vid15.S
! 4615d759a8946948bd17e713c4ca7cba  libgcc/config/nds32/isr-library/jmptbl_vid16.S
! 6b587237f2a8089746dd7365a9515fd5  libgcc/config/nds32/isr-library/jmptbl_vid17.S
! 3b5ae215368f5879401b24a83c2fab41  libgcc/config/nds32/isr-library/jmptbl_vid18.S
! dd4a4e249c56cd79a681453b67f7e3aa  libgcc/config/nds32/isr-library/jmptbl_vid19.S
! bacaf70625c46fe7c43d97238bea2d9c  libgcc/config/nds32/isr-library/jmptbl_vid20.S
! 6340025927be3cdd4361889af6b5fed2  libgcc/config/nds32/isr-library/jmptbl_vid21.S
! 68a61728a00956232da36578e8b61a8f  libgcc/config/nds32/isr-library/jmptbl_vid22.S
! 0dcb483e78a25fb725c8c30ca64c6b2e  libgcc/config/nds32/isr-library/jmptbl_vid23.S
! 346d8d87f70e477f327425c95da0d6c6  libgcc/config/nds32/isr-library/jmptbl_vid24.S
! 40c3a6e2889784935045462ac43f7852  libgcc/config/nds32/isr-library/jmptbl_vid25.S
! e52f7f3531050018868aec66057e93fd  libgcc/config/nds32/isr-library/jmptbl_vid26.S
! 6446961ad5e1006ec7edd053609d0968  libgcc/config/nds32/isr-library/jmptbl_vid27.S
! 1b7e0ea97cf8c228d85c5a9bbece4479  libgcc/config/nds32/isr-library/jmptbl_vid28.S
! fea97557fe24670e9929485a3bae4733  libgcc/config/nds32/isr-library/jmptbl_vid29.S
! d43e8902037ae5b4ba943c941727f327  libgcc/config/nds32/isr-library/jmptbl_vid30.S
! a61c109abe64ae4ccad4223600813027  libgcc/config/nds32/isr-library/jmptbl_vid31.S
! 051b6abab9fb46d6e5adeffbdf3bd6dd  libgcc/config/nds32/isr-library/jmptbl_vid32.S
! 82b257a2753ca986ccbda9333b2861fa  libgcc/config/nds32/isr-library/jmptbl_vid33.S
! 441fb0f7b5298637522f7ba68f13c571  libgcc/config/nds32/isr-library/jmptbl_vid34.S
! d1981ca11f4d2b0a5f593dc1ace3f829  libgcc/config/nds32/isr-library/jmptbl_vid35.S
! 74f220e47677304f403522a0beaa7c69  libgcc/config/nds32/isr-library/jmptbl_vid36.S
! 1584301a6102900dd73ac6969c266e60  libgcc/config/nds32/isr-library/jmptbl_vid37.S
! 9cf974928536bc863aa12b34a733929d  libgcc/config/nds32/isr-library/jmptbl_vid38.S
! 186e76f3c48876ae186ec16357fcce97  libgcc/config/nds32/isr-library/jmptbl_vid39.S
! 6a5ae6ac94097c63a947bf8260c4d6ae  libgcc/config/nds32/isr-library/jmptbl_vid40.S
! d11e7920801767e51fd1d2d32a7c6466  libgcc/config/nds32/isr-library/jmptbl_vid41.S
! 29bf49290742f19011873bfefa35bcfd  libgcc/config/nds32/isr-library/jmptbl_vid42.S
! 4dc80fac2b87b4ce251037b4bcd47145  libgcc/config/nds32/isr-library/jmptbl_vid43.S
! f664961e27e92095998f5f80c9f49a7c  libgcc/config/nds32/isr-library/jmptbl_vid44.S
! 1d2585c565f891fa377f9f12fb1bc15f  libgcc/config/nds32/isr-library/jmptbl_vid45.S
! 2dec968f7ff3ecdb70abbfff44086746  libgcc/config/nds32/isr-library/jmptbl_vid46.S
! 4538cd105a83de9b827e6ed9d00433af  libgcc/config/nds32/isr-library/jmptbl_vid47.S
! 01541bfd96fbe68822406dadfeb01046  libgcc/config/nds32/isr-library/jmptbl_vid48.S
! 76b10e34f57783bd62978772c20fbf0f  libgcc/config/nds32/isr-library/jmptbl_vid49.S
! ac71b6df87bb9f0134e3acadcacde98b  libgcc/config/nds32/isr-library/jmptbl_vid50.S
! 496f278fff96fff9993a418d77cb064d  libgcc/config/nds32/isr-library/jmptbl_vid51.S
! c8867e582d7f399cd192f151e482d36c  libgcc/config/nds32/isr-library/jmptbl_vid52.S
! fb8f7f04117d28e701fef3907086d71e  libgcc/config/nds32/isr-library/jmptbl_vid53.S
! 6301901d0db794e32ec8b6081c201f2b  libgcc/config/nds32/isr-library/jmptbl_vid54.S
! 3b2b2f286f8b1f71e1547abc780e3dde  libgcc/config/nds32/isr-library/jmptbl_vid55.S
! e28bb34fa6bac0f51ac8539c231eb0f9  libgcc/config/nds32/isr-library/jmptbl_vid56.S
! f756fcaacbf542e389e15def490ecd6d  libgcc/config/nds32/isr-library/jmptbl_vid57.S
! f68788edfc1c638d2dd4c7d388a9fb2a  libgcc/config/nds32/isr-library/jmptbl_vid58.S
! a9d2d4709c3bb478505e688c7fb54e88  libgcc/config/nds32/isr-library/jmptbl_vid59.S
! b1f9f41cd68744340df0acce1a0ff235  libgcc/config/nds32/isr-library/jmptbl_vid60.S
! a02f124b058179122885fd67ea5c92f1  libgcc/config/nds32/isr-library/jmptbl_vid61.S
! dd4fa647f942770a00bff8470e3e6519  libgcc/config/nds32/isr-library/jmptbl_vid62.S
! d33550ea6d1842cbc12db02b9da33368  libgcc/config/nds32/isr-library/jmptbl_vid63.S
! 715d7f082459919fb4c53ffa7e70c339  libgcc/config/nds32/isr-library/jmptbl_vid64.S
! 05336e1fc7b9757aa9b3a880865cd484  libgcc/config/nds32/isr-library/jmptbl_vid65.S
! 8347f814808c207d8eabf8633111f9ce  libgcc/config/nds32/isr-library/jmptbl_vid66.S
! ade69a3ab9d7fa8bfccdc27de9df14cf  libgcc/config/nds32/isr-library/jmptbl_vid67.S
! 37058ca5a230cbb35926a739f9d6038e  libgcc/config/nds32/isr-library/jmptbl_vid68.S
! b057c928641b8acc857f8694db7f43eb  libgcc/config/nds32/isr-library/jmptbl_vid69.S
! 7fd74872d3b01e2c2faa8e12880f5e6d  libgcc/config/nds32/isr-library/jmptbl_vid70.S
! 0f4f6825e93b80a5e897c75d8656b968  libgcc/config/nds32/isr-library/jmptbl_vid71.S
! 3fb32cacb1ed369599ba8ed13752c961  libgcc/config/nds32/isr-library/jmptbl_vid72.S
! 4ca179676eaf46b7de791ac71b3e5f3a  libgcc/config/nds32/isr-library/nmih.S
! 9b1df3481835112aee11ff689228131d  libgcc/config/nds32/isr-library/reset.S
! d18ffbd404020f57a958e50ad5e35314  libgcc/config/nds32/isr-library/reset_4b.S
! af1098aedc142b9666a4fde10dff6d2e  libgcc/config/nds32/isr-library/restore_all.inc
! 404561b24061dfdd37fab22048abd82d  libgcc/config/nds32/isr-library/restore_fpu_regs.inc
! 1810026908dfd886a59c78e7b420023d  libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
! 3f176431b4f075f5d40bf34ee470e9b0  libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
! df61db1164a37cf03f0fa3b6eea72aa2  libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
! 0275f88b4b3bc9ecff2ba4e97ddee406  libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
! 926dc4eb6dcc1ca195701f8e012d279b  libgcc/config/nds32/isr-library/restore_mac_regs.inc
! 9d9f661d2756ee9795b27f1f26a0674a  libgcc/config/nds32/isr-library/restore_partial.inc
! 0e29b776c0ec74c966a1f63b2c9d9e7d  libgcc/config/nds32/isr-library/restore_usr_regs.inc
! a9d57418258daca93b9ac05932e065e0  libgcc/config/nds32/isr-library/save_all.inc
! 67f79dca5b121169655cceec19c28b4e  libgcc/config/nds32/isr-library/save_fpu_regs.inc
! c0b1788d08c901e51f0bddbb53cf1b30  libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
! 7807c713b73a3b5482934a0f1b605eb0  libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
! 56253cb5627b4424d9719b51178b5a34  libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
! 04b0abb2cc11e97cd62dbdf7535291f2  libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
! 91e0201cd3f86f9a8f19227ff42b1876  libgcc/config/nds32/isr-library/save_mac_regs.inc
! a2e26e01e8f5a01bd8aa3950e6b9fc9a  libgcc/config/nds32/isr-library/save_partial.inc
! 437afc482af67f215f8cc66eddba13e8  libgcc/config/nds32/isr-library/save_usr_regs.inc
! c631a05fd57d16d4db2fbac4ff512f1e  libgcc/config/nds32/isr-library/vec_vid00.S
! c718f9ffb71421141d31ba162f1e5aab  libgcc/config/nds32/isr-library/vec_vid00_4b.S
! 5c7a16e8cd3113941e6e31e0a126d440  libgcc/config/nds32/isr-library/vec_vid01.S
! b39ba1dd9d97676fcf6449842e8d2afe  libgcc/config/nds32/isr-library/vec_vid01_4b.S
! a5ebcf7942ee472552daf460a0ffca5f  libgcc/config/nds32/isr-library/vec_vid02.S
! 1001786c62828929c2d87c92a71d1fd0  libgcc/config/nds32/isr-library/vec_vid02_4b.S
! 6aa421b1f3a67d2dba8fc7f217ce1cb1  libgcc/config/nds32/isr-library/vec_vid03.S
! 203be7bc4f57284080fd60c3ce040588  libgcc/config/nds32/isr-library/vec_vid03_4b.S
! 99f1cbe9acfeb9731a20635cb3765c5d  libgcc/config/nds32/isr-library/vec_vid04.S
! 2b38e3fd2e6017cb9ceff3f6ed8cd07d  libgcc/config/nds32/isr-library/vec_vid04_4b.S
! 208133b7292ac471bc2041546e09f404  libgcc/config/nds32/isr-library/vec_vid05.S
! 83d5f492678456a762f323853901cfa6  libgcc/config/nds32/isr-library/vec_vid05_4b.S
! 74d8d8a5be9739d0f765c23289b0c071  libgcc/config/nds32/isr-library/vec_vid06.S
! 9b65a44874dc54b3ea354bd504c76cc0  libgcc/config/nds32/isr-library/vec_vid06_4b.S
! eb6233be546fb140e051049877cfeddb  libgcc/config/nds32/isr-library/vec_vid07.S
! 995340df5de77ef3ba7080a759643fd4  libgcc/config/nds32/isr-library/vec_vid07_4b.S
! 7f8b6ffd54829e504a274360fc1bd728  libgcc/config/nds32/isr-library/vec_vid08.S
! f66d5afab2cc72d41437f42b6d245d58  libgcc/config/nds32/isr-library/vec_vid08_4b.S
! 44b26644eb49da124be17ef994683332  libgcc/config/nds32/isr-library/vec_vid09.S
! d1386db6be2ac80c956ba025ee8f6d1c  libgcc/config/nds32/isr-library/vec_vid09_4b.S
! 369f819e8d9db97018d59cbbbaf01e8d  libgcc/config/nds32/isr-library/vec_vid10.S
! 9211c528f461e903fa77d3472b50974f  libgcc/config/nds32/isr-library/vec_vid10_4b.S
! a494405022bddb03ae4cf119fa491a86  libgcc/config/nds32/isr-library/vec_vid11.S
! 059667bb934e3aa3999d88ed8cf08d87  libgcc/config/nds32/isr-library/vec_vid11_4b.S
! 39fd6cae109d70a59341198ea52ce217  libgcc/config/nds32/isr-library/vec_vid12.S
! 1cb1cc67239786e5ac23af3e059ecc69  libgcc/config/nds32/isr-library/vec_vid12_4b.S
! d06550a42bf0a254db1ade7f66925917  libgcc/config/nds32/isr-library/vec_vid13.S
! c80a56839e717020efe312987b946f22  libgcc/config/nds32/isr-library/vec_vid13_4b.S
! b93ab317dd9a59b240d2d5723e6ab510  libgcc/config/nds32/isr-library/vec_vid14.S
! 8fe9db2e4dbb8c325950fda3583b68b6  libgcc/config/nds32/isr-library/vec_vid14_4b.S
! 0f4e9818a6625a4730f093092a0eb8df  libgcc/config/nds32/isr-library/vec_vid15.S
! a214749a7b99fe3efb34e68c1ee58073  libgcc/config/nds32/isr-library/vec_vid15_4b.S
! fd22b6df036e5221e3b117fb17142415  libgcc/config/nds32/isr-library/vec_vid16.S
! e6b2bf4185bd922e233ebfa7f2aa4a92  libgcc/config/nds32/isr-library/vec_vid16_4b.S
! 41a94c5b0cce4428b3a522f1e332fa27  libgcc/config/nds32/isr-library/vec_vid17.S
! 678d4b795b16621cb2e383426ced0cd5  libgcc/config/nds32/isr-library/vec_vid17_4b.S
! 015a804999adb4f9d8b38f5ebb0c3a9f  libgcc/config/nds32/isr-library/vec_vid18.S
! 2c40bba8026cd66ce9996f2d24090818  libgcc/config/nds32/isr-library/vec_vid18_4b.S
! a3f4217430e9c52369b48ab1879747ab  libgcc/config/nds32/isr-library/vec_vid19.S
! 0d4a1a2602e2cd600bc35c61b2daef96  libgcc/config/nds32/isr-library/vec_vid19_4b.S
! 16a7dc3c3905e33aaa8b395ebae535e2  libgcc/config/nds32/isr-library/vec_vid20.S
! dd46908d6a17fd7d25b2cad42f7ae2e3  libgcc/config/nds32/isr-library/vec_vid20_4b.S
! 6329cdf29a2ce9bf283887b7bd28ea9b  libgcc/config/nds32/isr-library/vec_vid21.S
! 4fe610b22763f4154064adf36995c998  libgcc/config/nds32/isr-library/vec_vid21_4b.S
! 64de8d564f4dfa87757c19eec19fd17b  libgcc/config/nds32/isr-library/vec_vid22.S
! 4da52ece309192db48eb857945ff36db  libgcc/config/nds32/isr-library/vec_vid22_4b.S
! bb8420f16888907523719f734a0369e3  libgcc/config/nds32/isr-library/vec_vid23.S
! a575db0b557314f6fcc42bf3e6c85949  libgcc/config/nds32/isr-library/vec_vid23_4b.S
! c339bb5c005ceaa3c3c4eeb661c87e9d  libgcc/config/nds32/isr-library/vec_vid24.S
! 2ba6a090a13ddd4bd708130310d3e3fd  libgcc/config/nds32/isr-library/vec_vid24_4b.S
! 49b73c4777618f84b09ec74d608b2ea4  libgcc/config/nds32/isr-library/vec_vid25.S
! 0fc43468bd695a62b6fd25238825d359  libgcc/config/nds32/isr-library/vec_vid25_4b.S
! 29360a0547e15f6be01c668fdbd29762  libgcc/config/nds32/isr-library/vec_vid26.S
! 7e259482ec52ba54fe68f068ea9435f9  libgcc/config/nds32/isr-library/vec_vid26_4b.S
! 5b0f47341586a6ef5bfda3a232e5a3ec  libgcc/config/nds32/isr-library/vec_vid27.S
! 1b5e55afc470d146deb23e00cb8cf466  libgcc/config/nds32/isr-library/vec_vid27_4b.S
! 1698d9de1cf1cd5739a564f0c8b3314d  libgcc/config/nds32/isr-library/vec_vid28.S
! ffe8e0c66028931d5d2e4d660265ddd7  libgcc/config/nds32/isr-library/vec_vid28_4b.S
! 7152812dd1dd654be05253d1b7aa661e  libgcc/config/nds32/isr-library/vec_vid29.S
! 0bfc424f06b6049fb17eba516dec4d63  libgcc/config/nds32/isr-library/vec_vid29_4b.S
! 33de20d2ec58004aba735e980f081d6b  libgcc/config/nds32/isr-library/vec_vid30.S
! a51393698b140b59133e3a5b81f10ae1  libgcc/config/nds32/isr-library/vec_vid30_4b.S
! 171d141b8714a70ff846d16526d1b2b5  libgcc/config/nds32/isr-library/vec_vid31.S
! 195db3157362de99bb51af07142e8279  libgcc/config/nds32/isr-library/vec_vid31_4b.S
! 9a2de58799b656f8343f62688fb0d8d6  libgcc/config/nds32/isr-library/vec_vid32.S
! 58b4751e550ca9b3b779c89f16e354f5  libgcc/config/nds32/isr-library/vec_vid32_4b.S
! a2c2e12c384c580cda1c46609d95c505  libgcc/config/nds32/isr-library/vec_vid33.S
! 12069b5fc225f6227e5b038a0796e826  libgcc/config/nds32/isr-library/vec_vid33_4b.S
! da1a9fd7891fdd87a16e7fd0d30fd276  libgcc/config/nds32/isr-library/vec_vid34.S
! c01958bca5499de3450a2aa0989eac63  libgcc/config/nds32/isr-library/vec_vid34_4b.S
! 603b377ea6b9b620f133c9add0b27da5  libgcc/config/nds32/isr-library/vec_vid35.S
! 9e39de628775f4e9152e2da2f37cb879  libgcc/config/nds32/isr-library/vec_vid35_4b.S
! 0d4f5e74800f50b325ab1ea457bf8a56  libgcc/config/nds32/isr-library/vec_vid36.S
! 0735294e9d5ea537c3c3e406bd0d8824  libgcc/config/nds32/isr-library/vec_vid36_4b.S
! 2c8809d9b48b22bc75db054f09047fb3  libgcc/config/nds32/isr-library/vec_vid37.S
! b1798b7df44fb2ea70c3af98443b125f  libgcc/config/nds32/isr-library/vec_vid37_4b.S
! ea90463a2a78f311b42c0ad86bc7099b  libgcc/config/nds32/isr-library/vec_vid38.S
! 0c870d0b1ff546a22b70c1b05fa21d81  libgcc/config/nds32/isr-library/vec_vid38_4b.S
! 999b2048ed86cfeddd942c4590d40cef  libgcc/config/nds32/isr-library/vec_vid39.S
! f5ce9b91255475c36acf61e62b9a9c45  libgcc/config/nds32/isr-library/vec_vid39_4b.S
! 770b348aa37aabdf35495a8773115ac7  libgcc/config/nds32/isr-library/vec_vid40.S
! 9be5fe7be95afa2bdcc65a6f9d528bee  libgcc/config/nds32/isr-library/vec_vid40_4b.S
! a905d07d88c7147bbc7542b75b1d4bd9  libgcc/config/nds32/isr-library/vec_vid41.S
! aad2e8038daafbc13f6c7e99cf6552c5  libgcc/config/nds32/isr-library/vec_vid41_4b.S
! 4a07f1cbd820922e8a1ca1c6513dd464  libgcc/config/nds32/isr-library/vec_vid42.S
! 988c3cf3fd21126c7708a248852377d5  libgcc/config/nds32/isr-library/vec_vid42_4b.S
! afb19ad2851156ac6e5b27b2afa209b1  libgcc/config/nds32/isr-library/vec_vid43.S
! 12d89cf392e12a9f98bd73ff6389eed9  libgcc/config/nds32/isr-library/vec_vid43_4b.S
! 3d0b56ddedf21d63375ab8fe57dce14b  libgcc/config/nds32/isr-library/vec_vid44.S
! c9d13462370d4ea6030a00c6cd14ca5d  libgcc/config/nds32/isr-library/vec_vid44_4b.S
! ee7c840b845dddebfbd0e2b8520b169d  libgcc/config/nds32/isr-library/vec_vid45.S
! 30e6a9ac613c6802511d9bcdd2d9955f  libgcc/config/nds32/isr-library/vec_vid45_4b.S
! b4293fe41662977be51fb5ce317128c6  libgcc/config/nds32/isr-library/vec_vid46.S
! d21b23320586a9f626e64cb7ba889312  libgcc/config/nds32/isr-library/vec_vid46_4b.S
! 83c482f6cdcc48d0f220134199af48ac  libgcc/config/nds32/isr-library/vec_vid47.S
! 3ab3f1f4df29b030ac92a5c883090227  libgcc/config/nds32/isr-library/vec_vid47_4b.S
! 957f4103fa1574c8a3d544ce7c17f021  libgcc/config/nds32/isr-library/vec_vid48.S
! d2944a42cc339dc1cf2081618cb10f6c  libgcc/config/nds32/isr-library/vec_vid48_4b.S
! 6698137ecda1a81fb76bda92343019e7  libgcc/config/nds32/isr-library/vec_vid49.S
! 6286c39937186d2fc871ce5985e833f6  libgcc/config/nds32/isr-library/vec_vid49_4b.S
! b236f84ed70a38fc23aa5459da9890f0  libgcc/config/nds32/isr-library/vec_vid50.S
! c469220e76b4f15992fbd73918046521  libgcc/config/nds32/isr-library/vec_vid50_4b.S
! e7576fecae822bfdf112e789b63d8055  libgcc/config/nds32/isr-library/vec_vid51.S
! 275e6b1793b02b5816194871693431f9  libgcc/config/nds32/isr-library/vec_vid51_4b.S
! eb7d387d44478c08b12f80cae544c441  libgcc/config/nds32/isr-library/vec_vid52.S
! c93828411d55ffcebe540bae38b8c9b9  libgcc/config/nds32/isr-library/vec_vid52_4b.S
! eb01504f2b65089b329f2130685af6ea  libgcc/config/nds32/isr-library/vec_vid53.S
! 458b3e984e622458d6c0bd3dd0ddc147  libgcc/config/nds32/isr-library/vec_vid53_4b.S
! 667241f86045e308122e5deb60114218  libgcc/config/nds32/isr-library/vec_vid54.S
! d6db014b922c1546dc9358bc538bf873  libgcc/config/nds32/isr-library/vec_vid54_4b.S
! b93206ac4fb2cce8833901e6f1074e53  libgcc/config/nds32/isr-library/vec_vid55.S
! f468423d5ae6a33d71f9bae3bb46bcab  libgcc/config/nds32/isr-library/vec_vid55_4b.S
! e94a9903e83a9c1578d3240e603cac90  libgcc/config/nds32/isr-library/vec_vid56.S
! 78b2e16cae5726096a3a92f41ddb01a3  libgcc/config/nds32/isr-library/vec_vid56_4b.S
! 5afb585750112b6a7faacd4eb937e386  libgcc/config/nds32/isr-library/vec_vid57.S
! 1e5ce2096a9ca9d062874d96bdd77e12  libgcc/config/nds32/isr-library/vec_vid57_4b.S
! 74072c7a9d77cd3bfae7fb53d5dfef94  libgcc/config/nds32/isr-library/vec_vid58.S
! 3006c8c0bf5db246c77780e3be1bf959  libgcc/config/nds32/isr-library/vec_vid58_4b.S
! 927b7b55fe077a09b0c8d9e44bad69f2  libgcc/config/nds32/isr-library/vec_vid59.S
! 4baf4e3202a8a755a07c62b580e4246e  libgcc/config/nds32/isr-library/vec_vid59_4b.S
! 6d1c642681871461c94202a3d6ef9fdb  libgcc/config/nds32/isr-library/vec_vid60.S
! 2fa3992751487393917c0c6122672751  libgcc/config/nds32/isr-library/vec_vid60_4b.S
! 0b9341020b638d2d8ae7889698884bed  libgcc/config/nds32/isr-library/vec_vid61.S
! 93f058b20d58dfc63fced6d373b54878  libgcc/config/nds32/isr-library/vec_vid61_4b.S
! ba252f5a4bba42dab6cf979caee1b6d9  libgcc/config/nds32/isr-library/vec_vid62.S
! c284fbb6212f7e1c181a0f22be89be0e  libgcc/config/nds32/isr-library/vec_vid62_4b.S
! 07b66e49b81410aa09ddce032dc32a70  libgcc/config/nds32/isr-library/vec_vid63.S
! 33ba6dda218adde7aede776ed0471058  libgcc/config/nds32/isr-library/vec_vid63_4b.S
! 0d05f5fa0d6e9d67feaef66acfc16e49  libgcc/config/nds32/isr-library/vec_vid64.S
! 581cfcd027b9569051d1fba872df7648  libgcc/config/nds32/isr-library/vec_vid64_4b.S
! 15db4b7ce7e892098ff2a0ee9c4b7288  libgcc/config/nds32/isr-library/vec_vid65.S
! 3d4b7e98a5d7f5787c6a86d38a2706cd  libgcc/config/nds32/isr-library/vec_vid65_4b.S
! 7789e0b88ae8ea700274ef835a16ea7f  libgcc/config/nds32/isr-library/vec_vid66.S
! e66e50c4a920deba267a6d94cffcd32c  libgcc/config/nds32/isr-library/vec_vid66_4b.S
! 1fcecb4943f1651c88b1c1b05489f873  libgcc/config/nds32/isr-library/vec_vid67.S
! a295000b75dada380dca696f615433c3  libgcc/config/nds32/isr-library/vec_vid67_4b.S
! 1dfd980ee112a529e067f30f8bd47599  libgcc/config/nds32/isr-library/vec_vid68.S
! 16a19bcc1ccd0721d24e9a32dbd3f438  libgcc/config/nds32/isr-library/vec_vid68_4b.S
! 0e67dd37d71b1f5512bd713e02501af8  libgcc/config/nds32/isr-library/vec_vid69.S
! 20d9e1768cc465846f0e14814074a638  libgcc/config/nds32/isr-library/vec_vid69_4b.S
! d0276432e5ad9b5dcbdf164249addec8  libgcc/config/nds32/isr-library/vec_vid70.S
! 54a1940c82df2ec6fae63cf3cb51f32f  libgcc/config/nds32/isr-library/vec_vid70_4b.S
! 4198defb4e63a987931c40fa15817d83  libgcc/config/nds32/isr-library/vec_vid71.S
! 08aeea05668a8a281166f68e3b44b5f0  libgcc/config/nds32/isr-library/vec_vid71_4b.S
! 120c3cde57436b5bc5c372259adb3000  libgcc/config/nds32/isr-library/vec_vid72.S
! 1d87ac6756b794e896202e3eef3d5a66  libgcc/config/nds32/isr-library/vec_vid72_4b.S
! 7e01e92eb26e5e52825ec56d74c42bc9  libgcc/config/nds32/isr-library/wrh.S
! ef1c384f4356617eea73e9a560d5051f  libgcc/config/nds32/lib1asmsrc-mculib.S
! 34d1e9cb7d28621f5511a04744a75ea9  libgcc/config/nds32/lib1asmsrc-newlib.S
! 6748d5e8cebd874d29d46c3710eb8221  libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
! 8f1fa13cb2e3678b5c7b92426d1574b9  libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
! 8cbec4fa18c0b1b5659c4bbf20cbacf0  libgcc/config/nds32/linux-atomic.c
! d7ec3faec198ddf9b963d8b7841aac1f  libgcc/config/nds32/linux-unwind.h
! c106364c593bd54bf7b8d42496937c1e  libgcc/config/nds32/sfp-machine.h
! 61a69595ab0f638a2770d1bdcf597566  libgcc/config/nds32/t-nds32
! 176bb3362153c892ddf1e7827647411b  libgcc/config/nds32/t-nds32-glibc
! c412495d933f65d23ede1718ece2f137  libgcc/config/nds32/t-nds32-isr
! 27abe276cdcd80d261ee1f2dca4fd1be  libgcc/config/nds32/t-nds32-mculib
! 109923a96eaabf6fb064b158543e24be  libgcc/config/nds32/t-nds32-newlib
  d554f3fc7ee3cecc697c448b8c5f61bb  libgcc/config/no-sfp-machine.h
! ec92cffa46d4d29b40309d537f263c3d  libgcc/config/no-unwind.h
! 99a3b68ba37dc9686f3d0fa2197f1c7a  libgcc/config/nvptx/alloca.c
! 2bdd9a454391a1df99bf3768cd3df318  libgcc/config/nvptx/atomic.c
! 93eb0a145bb1b9177c7cac0d24f143e3  libgcc/config/nvptx/crt0.c
! 25309a7524dd33c7e701ba6adddbcdce  libgcc/config/nvptx/gbl-ctors.c
! ba27b09b944db26218cdbfd8e8eb91e1  libgcc/config/nvptx/mgomp.c
! c4c8a0e707da7ed006a0e4c92ba16770  libgcc/config/nvptx/nvptx-malloc.h
! 771d66571807f37e90e005d41c391398  libgcc/config/nvptx/reduction.c
! aa62ff00e16b110cc225550ac5eaa389  libgcc/config/nvptx/t-nvptx
! 6c8b6245d4178fa81549fadca1a40511  libgcc/config/nvptx/unwind-nvptx.c
! 894f6fbf68c84dbb26090456aff16964  libgcc/config/or1k/lib1funcs.S
! d5dcb885da821851d731acf1c6511bda  libgcc/config/or1k/linux-unwind.h
  bb60ec15ea01e2d3f07f2b944b739c6d  libgcc/config/or1k/sfp-machine.h
  dc51b5d6e7fd35fa1156670d20c6464d  libgcc/config/or1k/t-crtstuff
! 2025569caa2e9a14d5849965096fd55c  libgcc/config/or1k/t-or1k
! 93b6cb3534c2e9018f0059c8e0a0421e  libgcc/config/pa/fptr.c
! 51b8c95d9fe76de0bddde2eb2a848706  libgcc/config/pa/gthr-dce.h
! 286d388f1f71f8a0c039661ddb7168df  libgcc/config/pa/hpux-unwind.h
! cba8a52e0967d6e6ca5056fb9bf0a3ab  libgcc/config/pa/lib2funcs.S
! 2986687d7916190179c5ba5138561373  libgcc/config/pa/linux-atomic.c
! c0232e618996dbb428c2fedfd7a02a72  libgcc/config/pa/linux-unwind.h
! 905674e09c6e49ffd1906f250a428e48  libgcc/config/pa/milli64.S
! cc7a0c8464e43f8ddc43b0e008343090  libgcc/config/pa/pa64-hpux-lib.h
! c2b0ea966c806ed2f8effdc0ba0ee6ba  libgcc/config/pa/quadlib.c
! 666c38faadf35ad97379044e7f1c4cb4  libgcc/config/pa/sfp-exceptions.c
! f1b59723483b1606db86ff39f32ff542  libgcc/config/pa/sfp-machine.h
! 4ae4175ce96af38ca14d4d8d2476db06  libgcc/config/pa/stublib.c
! 835468be8768eccdb9da6bb9ddf9b667  libgcc/config/pa/sync-libfuncs.c
  be1d29d3044d55ee3e60d3e74a9e98fe  libgcc/config/pa/t-dimode
  8a3964d4f1eddb14d9260a0a72a23493  libgcc/config/pa/t-hpux
  73420715a92f162a61d33bbfbe7c4dee  libgcc/config/pa/t-hpux10
*************** be1d29d3044d55ee3e60d3e74a9e98fe  libgcc
*** 111567,111727 ****
  cb3abad4947b17ef27c99d92fdcb14ae  libgcc/config/pa/t-pa64-hpux
  8b6e1d4848a895dd9e8e030f638c68bc  libgcc/config/pa/t-pa64-linux
  6b7616abedce76aaa866d73b08ea3a07  libgcc/config/pa/t-slibgcc-dwarf-ver
! 65797eb2348862798d8f2adcea30a464  libgcc/config/pa/t-slibgcc-hpux
  463a4121da251ad8e53013810a31914a  libgcc/config/pa/t-slibgcc-sjlj-ver
  ce4b287e3a507cf1707205fb5c6adfe3  libgcc/config/pa/t-softfp-sfdftf
  964be72d0cacc353ffda1509b63add90  libgcc/config/pa/t-stublib
  a2a61a2b6f3c9d3e3bd8cae0b0eb845b  libgcc/config/pdp11/t-pdp11
! ec98f42bac2ca9d4f5a9c96a16faec83  libgcc/config/pru/asri.c
! e63fbf95558574fe3f3f9c006de02155  libgcc/config/pru/eqd.c
! 37747b85e66c93c1399a915b657e88bf  libgcc/config/pru/eqf.c
! a1076dcf067480a2028c41fd36918544  libgcc/config/pru/ged.c
! 86c51860848841d068aec71cbce12466  libgcc/config/pru/gef.c
! 91789af196316f303c1cc64f25ba3366  libgcc/config/pru/gtd.c
! d178a72c9df52848a54836abe63c9288  libgcc/config/pru/gtf.c
! 1f5a324447efc88df5814d5f5acd35b7  libgcc/config/pru/led.c
! 378134a108284e5f09e18e3a5c92d018  libgcc/config/pru/lef.c
! 24252b6553351a371e997874a1dcac84  libgcc/config/pru/lib2bitcountHI.c
! 257dee33dad5638e8267fb522ac118db  libgcc/config/pru/lib2divHI.c
! f7a4f604335d8cbd1ce0d9adeba4b1e2  libgcc/config/pru/lib2divQI.c
! 33cd1dd89da4ba427c532973868e0914  libgcc/config/pru/lib2divSI.c
! 9c9be7d4c25408b7864e1b9058227392  libgcc/config/pru/libgcc-eabi.ver
! 086f1d3012010ee8782758dd289aaea4  libgcc/config/pru/ltd.c
! 768012ce80fb9ffdb905ba3035e6a7b5  libgcc/config/pru/ltf.c
! e0419aa73f31603cacb78055596ebee8  libgcc/config/pru/mpyll.S
! 408b2c9fb81c02ff6e51197b018b9930  libgcc/config/pru/pru-abi.h
! ea95025f8491b6148db0755aea4730e2  libgcc/config/pru/pru-asm.h
! 07c92c1390396110e9198216469ce9fc  libgcc/config/pru/pru-divmod.h
! 1988cd11f8595349219331e0364b245d  libgcc/config/pru/sfp-machine.h
! 6fd50461fb71b3fb8e04e97105a5b193  libgcc/config/pru/t-pru
! 8ba223c52f93c007c6858c383d4b3c6b  libgcc/config/riscv/atomic.c
! d61879f5ed9372bd52bba7f21bb79dbc  libgcc/config/riscv/crti.S
! 0485c6e233af87295472bb7a9f2767e0  libgcc/config/riscv/crtn.S
! aeb81a2bd71f983cdf6c4b90ddf5966c  libgcc/config/riscv/div.S
! b0b7a4016514cf4317443b5a4e4fc000  libgcc/config/riscv/linux-unwind.h
! 5c5746b1f5d3bf768a095ac285261e86  libgcc/config/riscv/muldi3.S
! 98940cc2aefdca6367fece720d2dcc5b  libgcc/config/riscv/multi3.c
! ee0d44451d0727afc160a462b22d1ab0  libgcc/config/riscv/riscv-asm.h
! 5c00f19259fa0901a2b7771a149c18c6  libgcc/config/riscv/save-restore.S
! 4f27653f3cd6e321927d13a8b8b3827d  libgcc/config/riscv/sfp-machine.h
  6a8be20744258bc3c31a34df112164ce  libgcc/config/riscv/t-crtstuff
! c42f201dbf0dcdfa26d4e52583c32f53  libgcc/config/riscv/t-elf
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf32
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf64
! 2aa3bf2f9129bbb5ccf56cd00d952c9a  libgcc/config/riscv/t-softfp32
! 494f987eb59c3f251a4a33bf3c6ce334  libgcc/config/riscv/t-softfp64
! 2f25675116d0f054661e5dd72b48f7ea  libgcc/config/riscv/value-unwind.h
! b1521420dbfa13b528e2361b0178c284  libgcc/config/rl78/adddi3.S
! 86ceee78f9485af39d9362d225e396ef  libgcc/config/rl78/anddi3.S
! f858e0a315a504240ffab1d430c7a690  libgcc/config/rl78/bit-count.S
! 1f18a1efd1bef991fee57baed56567c4  libgcc/config/rl78/cmpsi2.S
! 3d36c6e38f788f90f8783c69557e8b4c  libgcc/config/rl78/divmodhi.S
! 484c14c12028a70beec50c4569cf3e0a  libgcc/config/rl78/divmodqi.S
! 4153a85511ae60404f81ccabba63cb68  libgcc/config/rl78/divmodsi.S
  63e9b57af30110b61c3221ba465e2c5b  libgcc/config/rl78/fpbit-sf.S
  9099dff71d89768f77ed3ef7908d4265  libgcc/config/rl78/fpmath-sf.S
! 3df9034f2a758b0a943994701c0e104b  libgcc/config/rl78/lib2div.c
! 31aa0351b1b8f42eeeb177deb5c98608  libgcc/config/rl78/lib2mul.c
! 5f124c6142b1ff9f1e7afe9c2734bccf  libgcc/config/rl78/lib2shift.c
! 400de74ee338125181bfd350bdcc4018  libgcc/config/rl78/lshrsi3.S
! 0593d2d6d3bdfd16df4cbdf17bd08d53  libgcc/config/rl78/mulsi3.S
! 766d261a013fd6d9ee9cf17d41de6db3  libgcc/config/rl78/rl78-divmod.h
! ca4257e7bbd37d4dab38471c49dc0fb5  libgcc/config/rl78/rl78-mul.h
! 0c2c9b6ebacdf0edbbd694fec7d66f84  libgcc/config/rl78/signbit.S
! 684efe2d7c7e68a201b493e005456755  libgcc/config/rl78/smaxdi3.S
! b80af8f6b9a0c097604f85c4861ba00b  libgcc/config/rl78/smindi3.S
! c313b8dca032141921440f6217a5edfc  libgcc/config/rl78/subdi3.S
! 2da401bc3af87a1de885c0747ba6e13d  libgcc/config/rl78/t-rl78
! eaf7e9270a51730c25009538690fa794  libgcc/config/rl78/trampoline.S
! 5f336c4b9abdde25c7d80d5bf26a3f4f  libgcc/config/rl78/umaxdi3.S
! 780c93d92ec493b01c46471695e61d92  libgcc/config/rl78/umindi3.S
! 760912f22e59adbfe0317ee3df1b4849  libgcc/config/rl78/vregs.h
! b8724de96132f6a4a8fdf8d26138fb6c  libgcc/config/rs6000/_dd_to_kf.c
! fa1d1420c222b1e41aabf8a300f74b32  libgcc/config/rs6000/_divkc3.c
! c9df29d0a26e460f4a978f680e9ee14d  libgcc/config/rs6000/_kf_to_dd.c
! d20ece7b0393bafb0c635545db2e8ca5  libgcc/config/rs6000/_kf_to_sd.c
! ac41d928970c505eb1fcdc1fcf970ea7  libgcc/config/rs6000/_kf_to_td.c
! 00f8edb9eefd00240b0d74ad530acaa2  libgcc/config/rs6000/_mulkc3.c
! df34e34fd903efdbcd0e677088c9936f  libgcc/config/rs6000/_powikf2.c
! 19983877bffefc1e8ea2601cb53314f1  libgcc/config/rs6000/_sd_to_kf.c
! a1ab1675a32539d38df62e625d7a008c  libgcc/config/rs6000/_td_to_kf.c
! ce8e19c5d9196dbabed9f6c0e6d6e92e  libgcc/config/rs6000/aix-unwind.h
  737841f917469789a5f925e6f08da1de  libgcc/config/rs6000/aixinitfini.c
! a472e62c5ae8b5737db884a7db4fe863  libgcc/config/rs6000/atexit.c
! 16c48f0fa0bbe9243c886b9e57f04be5  libgcc/config/rs6000/crtcxa.c
! 4a00eab540c06f26b2f1f5ecbfd48e8a  libgcc/config/rs6000/crtdbase.S
! 16bea7a5acb5c2035761dd22b1a9ec93  libgcc/config/rs6000/crtresfpr.S
! cee2981193f467979e9cdbd47357bea3  libgcc/config/rs6000/crtresgpr.S
! 00e63596044de682df818b82c7156e3a  libgcc/config/rs6000/crtrestvr.S
! c6f844de1e1902a2690f4be0544a8021  libgcc/config/rs6000/crtresxfpr.S
! 0ccacbcd6bc11f085fb25de6d355c8f2  libgcc/config/rs6000/crtresxgpr.S
! a3c2bcb14998cba9ed7e11f47103ab32  libgcc/config/rs6000/crtsavevr.S
! 57530300fe746504f2ed53b2f6e3fb9e  libgcc/config/rs6000/crtsavfpr.S
! 3d01b0c86254104ab490f3c2303d0d38  libgcc/config/rs6000/crtsavgpr.S
! 3bd3151ea18a52f55cff3989128ccd03  libgcc/config/rs6000/cxa_atexit.c
! b819131f1aea3571e2bd52a6287a5183  libgcc/config/rs6000/cxa_finalize.c
! 7c2b0854e32121988a2c7b14a4c6aae0  libgcc/config/rs6000/darwin-asm.h
! d926a298536c3673a7b5a3ae855d4b58  libgcc/config/rs6000/darwin-crt2.c
! 4d9d465af5352394b9e73764bb599f97  libgcc/config/rs6000/darwin-fallback.c
! f6f7af651ca2d950226f4ba7da7b7700  libgcc/config/rs6000/darwin-fpsave.S
! bc14013c181ba4b0995e49eae9fbf236  libgcc/config/rs6000/darwin-gpsave.S
! aa74cd0ece7da20c1ceba0a5cbdc34ea  libgcc/config/rs6000/darwin-tramp.S
! 3d1c3e1ba403cf711e92b64af1c77f3d  libgcc/config/rs6000/darwin-unwind.h
! 6b5b0e858852a16ac786e7e907bd76a7  libgcc/config/rs6000/darwin-vecsave.S
! 61e010f743bb97e05b907a5d2f69685a  libgcc/config/rs6000/darwin-world.S
! 37c01928e50847a1f47d682e1550eb87  libgcc/config/rs6000/e500crtres32gpr.S
! 12e941d14d8e9dacf9b2440f022f6900  libgcc/config/rs6000/e500crtres64gpr.S
! 88bd58b1715c06c06536e971e49f6b89  libgcc/config/rs6000/e500crtres64gprctr.S
! 950442ff52d790ec31000e1b130fc013  libgcc/config/rs6000/e500crtrest32gpr.S
! 4c97610bed8fd895ba08a10dded939b9  libgcc/config/rs6000/e500crtrest64gpr.S
! 014adf36f04be5437ef1f7e1615a9374  libgcc/config/rs6000/e500crtresx32gpr.S
! 87209094ea0112b43624bf146b4a3426  libgcc/config/rs6000/e500crtresx64gpr.S
! 47881db25d028d0e689baceba051e547  libgcc/config/rs6000/e500crtsav32gpr.S
! 2dc649afeca7aea3188779c5a5a27e5b  libgcc/config/rs6000/e500crtsav64gpr.S
! fc3fd0f75d90361e455c9272bb9591dd  libgcc/config/rs6000/e500crtsav64gprctr.S
! 0dc34ddca03640f1707d00ae1c77bde3  libgcc/config/rs6000/e500crtsavg32gpr.S
! a9bc9c910bd338dca7fcfe5157eab9fd  libgcc/config/rs6000/e500crtsavg64gpr.S
! 6fda775015f8e4ae64a6e9603e29994e  libgcc/config/rs6000/e500crtsavg64gprctr.S
! 325027b3d37e5c0995d454e4611bff34  libgcc/config/rs6000/eabi-ci.S
! 67d947dafa01e35b3c6b8619b079f279  libgcc/config/rs6000/eabi-cn.S
! dc344a74efd64e3f856e60c27c8ab1f9  libgcc/config/rs6000/eabi.S
! 7f97ac4c661958d877787226600c0608  libgcc/config/rs6000/exit.h
! f1e33164a532c5dabefe0ed8e92f766c  libgcc/config/rs6000/extendkftf2-sw.c
! f72e978765492b436903ad7820592d85  libgcc/config/rs6000/fixkfti-sw.c
! f7cf889680043f4b9e7a8fa2645e3958  libgcc/config/rs6000/fixunskfti-sw.c
! f5d13a80cb5029b061c45ac857cc7fca  libgcc/config/rs6000/float128-hw.c
! e48e93602121caf151237d59e0bc0e6d  libgcc/config/rs6000/float128-ifunc.c
! 98643c88952f7001b121b2effe6ca95b  libgcc/config/rs6000/float128-p10.c
  82156c171c8648f2863486505efc417a  libgcc/config/rs6000/float128-sed
  81d8bfdd9028f651e74357a59a1352c5  libgcc/config/rs6000/float128-sed-hw
! fe9a058245f78e805cba446dc54e22cb  libgcc/config/rs6000/floattikf-sw.c
! 2ac1eddb454f1a10dc16f773d5f48491  libgcc/config/rs6000/floatuntikf-sw.c
! 4efdd8261a557deefc86e0f802c2f1f3  libgcc/config/rs6000/freebsd-unwind.h
! d82cc32c711e40c627fa2c2c831c8879  libgcc/config/rs6000/gthr-aix.h
! 12fc42170db04daa33d46d744091ea3f  libgcc/config/rs6000/ibm-ldouble-format
! 5df1f03e86f0f7c930d1078f897ee048  libgcc/config/rs6000/ibm-ldouble.c
  13bc252ed5254cf124822256760c6df0  libgcc/config/rs6000/libgcc-aix-cxa.ver
! f06955d14ed467babde9ad113dc72903  libgcc/config/rs6000/libgcc-glibc.ver
  7aa6f4e782960be3e2b43998ef395330  libgcc/config/rs6000/libgcc-ibm-ldouble.ver
! 168ce67c5160881e721e4f0d36bac3aa  libgcc/config/rs6000/linux-unwind.h
! 177338141ff4f12ceac928bd94e69a7a  libgcc/config/rs6000/morestack.S
! 6f703dd31c4fc83b91b3deb49fe545a1  libgcc/config/rs6000/on_exit.c
! e1e7c19e107b92d459cf5a479c67f241  libgcc/config/rs6000/quad-float128.h
! 7d6f4df3cdefe3ba6c1a2d3cb9c86ba1  libgcc/config/rs6000/sfp-exceptions.c
! 41c3896f925900fa6b81c0215a60075f  libgcc/config/rs6000/sfp-machine.h
! 79db8d44dd888cc9dd5af178b0f809ce  libgcc/config/rs6000/sol-ci.S
! 53690e61b80619f105c4f40c5d9a8acd  libgcc/config/rs6000/sol-cn.S
  3fa6bf8673b3a7fa2278aeb2fe1824f4  libgcc/config/rs6000/t-aix-cxa
  0d6637a7e112c021e7ce371918c7659c  libgcc/config/rs6000/t-crtstuff
! b780b81d7bccdf7af090dbcd3e639dd1  libgcc/config/rs6000/t-darwin
  a8ea28c94f3264c3602a98b4728fed82  libgcc/config/rs6000/t-darwin-ehs
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-darwin64
! 937ecf40521955d9efb093ab09a1e074  libgcc/config/rs6000/t-e500v1-fp
! 34b49ae8e2c71e6472a16674e9097452  libgcc/config/rs6000/t-e500v2-fp
  d5fb4aa675487367c8320cc2a6b80485  libgcc/config/rs6000/t-float128
  cd10df5a5f38111b136e54009c41d97c  libgcc/config/rs6000/t-float128-hw
  0c3cb3b39ba2a4a769c8467eba008f64  libgcc/config/rs6000/t-float128-p10-hw
! 6a2fc1760ddd9044150ecc31ad24fe44  libgcc/config/rs6000/t-freebsd
  4976aac1da0b181cf133fe8ef7243000  libgcc/config/rs6000/t-freebsd64
  565e9d6288ad496063af26b57e5fa264  libgcc/config/rs6000/t-ibm-ldouble
  ecf2c7e327e9df4e94343352b59b9fd2  libgcc/config/rs6000/t-linux
--- 119182,119331 ----
  cb3abad4947b17ef27c99d92fdcb14ae  libgcc/config/pa/t-pa64-hpux
  8b6e1d4848a895dd9e8e030f638c68bc  libgcc/config/pa/t-pa64-linux
  6b7616abedce76aaa866d73b08ea3a07  libgcc/config/pa/t-slibgcc-dwarf-ver
! f9b8425b43c2ca78b0e1f4ab5be3aceb  libgcc/config/pa/t-slibgcc-hpux
  463a4121da251ad8e53013810a31914a  libgcc/config/pa/t-slibgcc-sjlj-ver
  ce4b287e3a507cf1707205fb5c6adfe3  libgcc/config/pa/t-softfp-sfdftf
  964be72d0cacc353ffda1509b63add90  libgcc/config/pa/t-stublib
  a2a61a2b6f3c9d3e3bd8cae0b0eb845b  libgcc/config/pdp11/t-pdp11
! 328ee8b3c53c14c5b08b9b07f18b19de  libgcc/config/pru/asri.c
! c2df5c00d55867366fab85edc7e98b40  libgcc/config/pru/eqd.c
! 069ca4d3e1ba796bbf5017a041b048f9  libgcc/config/pru/eqf.c
! 55a2eef5ef96d9d0e962334f604cd4d2  libgcc/config/pru/ged.c
! 6203132abd9dd9711d696251fa47b28c  libgcc/config/pru/gef.c
! 7f8e8e527ff9791a2cca10a3865799f6  libgcc/config/pru/gtd.c
! 3a34cc832fedee019ad772cf41948dce  libgcc/config/pru/gtf.c
! be8817298cbbbcbd4904fa34274912be  libgcc/config/pru/led.c
! 19920466c2998fbe575518b29e263285  libgcc/config/pru/lef.c
! 60484597e39dd41de6f47d416806ed88  libgcc/config/pru/lib2bitcountHI.c
! 2823929694842637e43222f21144ff17  libgcc/config/pru/lib2divHI.c
! 877f653196c4e655d5d5409a19d3e935  libgcc/config/pru/lib2divQI.c
! 3ef8a6680870fb85508c4cca8a68a86f  libgcc/config/pru/lib2divSI.c
! f7648ce7590bff5a01ea315c0feb35c6  libgcc/config/pru/libgcc-eabi.ver
! d9e620cbbaf5252ceab2fc8cb9cda9df  libgcc/config/pru/ltd.c
! 9aa5994526dd0389b4a7b03642e006be  libgcc/config/pru/ltf.c
! 238bd14b5ba69fb3925a69d3230e5a1a  libgcc/config/pru/mpyll.S
! 2a0515f37e4f451771829f1391620005  libgcc/config/pru/pru-abi.h
! d65b5669ff491845b2596f7750e9f3d7  libgcc/config/pru/pru-asm.h
! 5c7458c821096b65dfd33fa47fa62655  libgcc/config/pru/pru-divmod.h
! ee0da5835773b7e4fd0bba1d3d4d34b2  libgcc/config/pru/sfp-machine.h
! 6304c93e3da5ac5f496f7648dad7c6e3  libgcc/config/pru/t-pru
! 3fded25288827e2bf766f60ef986888f  libgcc/config/riscv/atomic.c
! b542071feaa6f1914ec810a91b9f0e4c  libgcc/config/riscv/crti.S
! 196894f3e59520659e3b0ba14bb0a903  libgcc/config/riscv/crtn.S
! 1b454a062a58da73dfb1cfba6edae5f7  libgcc/config/riscv/div.S
! 693c5b2d7610e298df865bfc412d1b88  libgcc/config/riscv/feature_bits.c
! 1556ebe0dd4ea08a26e298fc8ce2b86e  libgcc/config/riscv/linux-unwind.h
! aa7e916de9b6c06f0f64c1dc074116f4  libgcc/config/riscv/muldi3.S
! b16ca56229fc2572843f9700f47307e9  libgcc/config/riscv/multi3.c
! 8129505e5b81842361c33b61dbd3db67  libgcc/config/riscv/riscv-asm.h
! ffbe65548b4c14b8ba9460ab449bf0a9  libgcc/config/riscv/save-restore.S
! 836194e6f01d55ef025a43716e7cf247  libgcc/config/riscv/sfp-machine.h
! faf23d25a3df3ab121abc7b9d6d7184f  libgcc/config/riscv/shadow-stack-unwind.h
  6a8be20744258bc3c31a34df112164ce  libgcc/config/riscv/t-crtstuff
! 36bce65087be6239f054fc6c97ca056c  libgcc/config/riscv/t-elf
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf32
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf64
! 385fba009156405608e80e71b8a6a1a0  libgcc/config/riscv/t-softfp32
! d687514a08d797924d3d6e5d3fb2fd84  libgcc/config/riscv/t-softfp64
! 59d2c490e4495d80afa139b73b9be871  libgcc/config/riscv/value-unwind.h
! 7919f8fb9028eb057994d99e1f0e08b9  libgcc/config/rl78/adddi3.S
! 8e3bb586bcbeadee2b24a516f99779cf  libgcc/config/rl78/anddi3.S
! 0b97824a35d0123e2e432d24c0eb263f  libgcc/config/rl78/bit-count.S
! 3bcf16ab6377e6d1ee77a327521a3825  libgcc/config/rl78/cmpsi2.S
! 14c89bdf67817b24f3ccb2d78e70e146  libgcc/config/rl78/divmodhi.S
! 9b3bb423df2ff68b029669d94e4b7af7  libgcc/config/rl78/divmodqi.S
! 562d7af5c5c1e8b4f59b972aa4b54c02  libgcc/config/rl78/divmodsi.S
  63e9b57af30110b61c3221ba465e2c5b  libgcc/config/rl78/fpbit-sf.S
  9099dff71d89768f77ed3ef7908d4265  libgcc/config/rl78/fpmath-sf.S
! 65251edf9e70a8c9f2faaccdc4cf69ae  libgcc/config/rl78/lib2div.c
! 2175f196df179466b7e69ac5a22abfc7  libgcc/config/rl78/lib2mul.c
! 19e783111e7f62c0111a65dcea5f2036  libgcc/config/rl78/lib2shift.c
! 802dcc669fe875ca7ee23e407b8c4d37  libgcc/config/rl78/lshrsi3.S
! 96cd4e6232e110164c2ec0b98a64ad2c  libgcc/config/rl78/mulsi3.S
! 050e61e0f70d3f335be6bd3153072310  libgcc/config/rl78/rl78-divmod.h
! 8821e3c54d61e2bbec5db9868dd9a220  libgcc/config/rl78/rl78-mul.h
! a010af2fff8dbfb1e35228d4be0d01ca  libgcc/config/rl78/signbit.S
! ae4fd882f03d2a61b1d9cbce29326bbb  libgcc/config/rl78/smaxdi3.S
! b8b7c0613d58423d476e0c7f06e4fd93  libgcc/config/rl78/smindi3.S
! 6a179d2fd7ff00aefb9f7d65ea121434  libgcc/config/rl78/subdi3.S
! dd9c088fe4b2c0e6051f0e85cdb0aef1  libgcc/config/rl78/t-rl78
! 1ae640e94d4b9d65221bb717d3850d7e  libgcc/config/rl78/trampoline.S
! 1f7b9323f935eddab17b576142d635ff  libgcc/config/rl78/umaxdi3.S
! d117baeef7ce2ad802877dc7b00e74e5  libgcc/config/rl78/umindi3.S
! 3fa1ffbe8b56d5173efea2ee2def55f3  libgcc/config/rl78/vregs.h
! 633fac39f4514db086609574f76be0e6  libgcc/config/rs6000/_dd_to_kf.c
! 9239c492f8f77195074e62a18ebaf848  libgcc/config/rs6000/_divkc3.c
! cf318cfdddd620cf0443d8f7ce507a6f  libgcc/config/rs6000/_kf_to_dd.c
! fc9e1c82e638c2756711be88c1431a07  libgcc/config/rs6000/_kf_to_sd.c
! 02a1e9f16683a234011ee7dc6a0aa7c7  libgcc/config/rs6000/_kf_to_td.c
! e63084f7f7a957559a6e7e9854e71b94  libgcc/config/rs6000/_mulkc3.c
! b7974e2a85e5cf34afb6c7f806ce8ba9  libgcc/config/rs6000/_powikf2.c
! 2ed1301f3de8e62c5b0a7a6fce49405f  libgcc/config/rs6000/_sd_to_kf.c
! cdb787b8be0577593cade061f0e1c9b8  libgcc/config/rs6000/_td_to_kf.c
! 0622d609fa5c31d12d1df32047a2f7f5  libgcc/config/rs6000/aix-unwind.h
  737841f917469789a5f925e6f08da1de  libgcc/config/rs6000/aixinitfini.c
! 7639813734b78b2da0ef5c93072e782d  libgcc/config/rs6000/atexit.c
! dc6f9d7be679c1c182894f257c8982c0  libgcc/config/rs6000/crtcxa.c
! bd5e72c7b6964a01e5455f29c2739de2  libgcc/config/rs6000/crtdbase.S
! ac51d7c5a2a70d542ee529574d1fd7ad  libgcc/config/rs6000/crtresfpr.S
! b70483c0839b864e9a6e7c62bfa647a5  libgcc/config/rs6000/crtresgpr.S
! 7be8cc47b2f137ff15a407226b7faf57  libgcc/config/rs6000/crtrestvr.S
! bdda72aab2df529c08ea30623e8e2bd5  libgcc/config/rs6000/crtresxfpr.S
! bab4d1c5af1dcf45174838961fbfdc76  libgcc/config/rs6000/crtresxgpr.S
! 40f7a1e1fdd19861d7c5ed9018ae19ad  libgcc/config/rs6000/crtsavevr.S
! bbedbc4c6f1ccc2aba245a6c62ae03f7  libgcc/config/rs6000/crtsavfpr.S
! 1e5f5d1dfbd5ec9d67a59ed6926a8dad  libgcc/config/rs6000/crtsavgpr.S
! 5b98ec06e3a64e18408be5b23eeb4eef  libgcc/config/rs6000/cxa_atexit.c
! 7d4801823f33e87d483330cfd107dd80  libgcc/config/rs6000/cxa_finalize.c
! c5f2beb1a760f448c5e9c9e5221bbbbc  libgcc/config/rs6000/darwin-asm.h
! 86efc41a6892c62447439ca53d34b5bb  libgcc/config/rs6000/darwin-crt2.c
! 8435f6ba6a054b0f31b818aecd4a843f  libgcc/config/rs6000/darwin-fallback.c
! 72b5ec0f1e591f5c014d0987e96609bd  libgcc/config/rs6000/darwin-fpsave.S
! cc9c07313c94c78d507f710a3840fa90  libgcc/config/rs6000/darwin-gpsave.S
! 072960289c69233b2e027ac9af734c67  libgcc/config/rs6000/darwin-tramp.S
! df537856e7a6553f9acaa56ec2ac2705  libgcc/config/rs6000/darwin-unwind.h
! 70a93c33bd1f7848f96c0de7d9fd1ecc  libgcc/config/rs6000/darwin-vecsave.S
! 4572d06306066a1d0044dc0d95bef16a  libgcc/config/rs6000/darwin-world.S
! 3527e7b00d3e1a61ae47eb94cbdd1a12  libgcc/config/rs6000/eabi-ci.S
! 44ea08a3c1d4b8612d6be173f00304d0  libgcc/config/rs6000/eabi-cn.S
! 4f56ade38de394e2c5761e75fee2390e  libgcc/config/rs6000/eabi.S
! 177a10e462e76db0db3eb18c1b01e9e1  libgcc/config/rs6000/exit.h
! bb7734ea72776212efd8996e1210cdc5  libgcc/config/rs6000/extendkftf2-sw.c
! fef2c801d736ac8709637ca56e84e9dd  libgcc/config/rs6000/fixkfti-sw.c
! e472b4a84c0be00d16db0ce01e9fd4b5  libgcc/config/rs6000/fixunskfti-sw.c
! 862e1d1d4ec665c19ed4d7d7e7a08660  libgcc/config/rs6000/float128-hw.c
! be01927bd5e42e1d761bbaf51c4b315c  libgcc/config/rs6000/float128-ifunc.c
! ffec51605217526011278ae4b2ee5c3a  libgcc/config/rs6000/float128-p10.c
  82156c171c8648f2863486505efc417a  libgcc/config/rs6000/float128-sed
  81d8bfdd9028f651e74357a59a1352c5  libgcc/config/rs6000/float128-sed-hw
! 5d4dda1aa36864824ffdb963a8153232  libgcc/config/rs6000/floattikf-sw.c
! 16c95355a032f4b9f93684fc722448de  libgcc/config/rs6000/floatuntikf-sw.c
! 76b01b28e73488e2023955f7a7d0dab6  libgcc/config/rs6000/freebsd-unwind.h
! b562fc8581023820d1db2ff6f27114ec  libgcc/config/rs6000/gthr-aix.h
! 66894f53bcedb3973c42927634904eec  libgcc/config/rs6000/ibm-ldouble-format
! 5a527a4f0fdc338d118edad8ebff348e  libgcc/config/rs6000/ibm-ldouble.c
  13bc252ed5254cf124822256760c6df0  libgcc/config/rs6000/libgcc-aix-cxa.ver
! 7d26778c7b9d3aaba5aacc3e50f40404  libgcc/config/rs6000/libgcc-glibc.ver
  7aa6f4e782960be3e2b43998ef395330  libgcc/config/rs6000/libgcc-ibm-ldouble.ver
! d0e34ba45ad98eee608dc6b79c593c90  libgcc/config/rs6000/linux-unwind.h
! faabdeebb213b6f7228449013c1e24f4  libgcc/config/rs6000/morestack.S
! 3ffb7b9906ce078ad28f9d4b3499f43e  libgcc/config/rs6000/on_exit.c
! b87ac5420aefb62760fa2615e196111d  libgcc/config/rs6000/quad-float128.h
! d5db9e00d332967f4531aefb5c43bd8d  libgcc/config/rs6000/sfp-exceptions.c
! c1f1e19bec1207af89205304d8d3a6b4  libgcc/config/rs6000/sfp-machine.h
! 1e163111ae95572559dc1a3585d85839  libgcc/config/rs6000/sol-ci.S
! 1f39728810c0438b07648fed07dffc97  libgcc/config/rs6000/sol-cn.S
  3fa6bf8673b3a7fa2278aeb2fe1824f4  libgcc/config/rs6000/t-aix-cxa
  0d6637a7e112c021e7ce371918c7659c  libgcc/config/rs6000/t-crtstuff
! bc91baf0523c8475334ca80d6ff265c4  libgcc/config/rs6000/t-darwin
  a8ea28c94f3264c3602a98b4728fed82  libgcc/config/rs6000/t-darwin-ehs
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-darwin64
! f39a273d8f90eca7a113565985991f8c  libgcc/config/rs6000/t-e500v1-fp
! 8ac33c1c71aa64cece871f93af2205a9  libgcc/config/rs6000/t-e500v2-fp
  d5fb4aa675487367c8320cc2a6b80485  libgcc/config/rs6000/t-float128
  cd10df5a5f38111b136e54009c41d97c  libgcc/config/rs6000/t-float128-hw
  0c3cb3b39ba2a4a769c8467eba008f64  libgcc/config/rs6000/t-float128-p10-hw
! 8c479641697b59794aad81f6bba223a3  libgcc/config/rs6000/t-freebsd
  4976aac1da0b181cf133fe8ef7243000  libgcc/config/rs6000/t-freebsd64
  565e9d6288ad496063af26b57e5fa264  libgcc/config/rs6000/t-ibm-ldouble
  ecf2c7e327e9df4e94343352b59b9fd2  libgcc/config/rs6000/t-linux
*************** ecf2c7e327e9df4e94343352b59b9fd2  libgcc
*** 111729,111791 ****
  ad6ae6684d4dec9ddd78efad67d1af4b  libgcc/config/rs6000/t-netbsd
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-ppc64-fp
  bd7ceb31787a37d9cb144c41d41acfb3  libgcc/config/rs6000/t-ppccomm
! 89dc5367808582c503f03a34193e467b  libgcc/config/rs6000/t-savresfgpr
! 4530bf10290962dcd1a5b3b3e2b21026  libgcc/config/rs6000/t-slibgcc-aix
  1d9dab8390b84ff0de504beefb72ce61  libgcc/config/rs6000/t-stack-rs6000
  04581882e1764bcc2a4240b21f3eaa8a  libgcc/config/rs6000/t-vxworks
! 5b6e2bd7882ec732715542f9160911d7  libgcc/config/rs6000/tramp.S
! 81bb7c5df0eaa478fc8d325eac3ad1eb  libgcc/config/rs6000/trunctfkf2-sw.c
! 8e8edbbd4af33b18932b2b9dd29d7981  libgcc/config/rx/rx-abi-functions.c
! 11a65040e5df03e5856c9ebb09ada712  libgcc/config/rx/rx-abi.h
  da7bc70013c60be91cf9f085fed52f1a  libgcc/config/rx/rx-lib.h
! ea6808c1d6b7b050bec102dbd726340a  libgcc/config/rx/t-rx
! a613d7090967474ed75e503312b113df  libgcc/config/s390/32/_fixdfdi.c
! 067bd7305dc951765d319fbbe4ea4fbc  libgcc/config/s390/32/_fixsfdi.c
! 9386e705ef65919babe68ade58a4592f  libgcc/config/s390/32/_fixtfdi.c
! b90ca867a2f933c46aaae99e484badd8  libgcc/config/s390/32/_fixunsdfdi.c
! 7675c2bbaf360944848be053355454dd  libgcc/config/s390/32/_fixunssfdi.c
! 6a2c54f765ef084a07c1128cfd1db09a  libgcc/config/s390/32/_fixunstfdi.c
  6101649604e2b3fdd6179e1aa53066bf  libgcc/config/s390/32/t-floattodi
! 99f0420d5f36b714c8c69c5b3e07923b  libgcc/config/s390/gthr-tpf.h
! b9b31237d0fe663548b94f74bef9fba0  libgcc/config/s390/libgcc-glibc.ver
! 37c74a89b124ef70f22d46ae9b091af2  libgcc/config/s390/linux-unwind.h
! cffb8461263d6b997e891b02f11bb1f8  libgcc/config/s390/morestack.S
  c150e28c734710584eba8e77d2ff5105  libgcc/config/s390/t-crtstuff
  35a77f8c50ecf16802e00e647ad94026  libgcc/config/s390/t-linux
  26d353eea9229af01124cc46b2e0cebd  libgcc/config/s390/t-stack-s390
  a5218871642ae69c55b0e826c41f3798  libgcc/config/s390/t-tpf
! c90a50684968ee74ed34e2b03549d3f4  libgcc/config/s390/tpf-unwind.h
! a00675fa1c51d963cc24e7bf9f073755  libgcc/config/score/crti.S
! b28afe23745ebdc7b13398a0edff2087  libgcc/config/score/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/score/sfp-machine.h
! bec245dd8d91a2c060f4c04b11de7b94  libgcc/config/sh/crt.h
! 89c65b967a5d9f72e4153cfd9ba940c0  libgcc/config/sh/crt1.S
! 8390a430ba79d305ccb763e721027e1e  libgcc/config/sh/crti.S
! 1f2f49f5f487eeec4f5432eab1c17f78  libgcc/config/sh/crtn.S
! 5add237a08af80820394041ec158f7b8  libgcc/config/sh/lib1funcs-4-300.S
! 96733607c910b7896f1399ea31151414  libgcc/config/sh/lib1funcs-Os-4-200.S
! e6cb57653f915c8807a736d2673e29aa  libgcc/config/sh/lib1funcs.S
! 02e452690af574db4b06db1870cdf695  libgcc/config/sh/lib1funcs.h
  68ddef94ef228a2e500c6f84ca5c5f73  libgcc/config/sh/libgcc-excl.ver
! 25936990c9453b1a96fb02d7fa250d4d  libgcc/config/sh/libgcc-glibc.ver
! 2455eeff19a40236d4231d83b5d18a91  libgcc/config/sh/linux-atomic.c
! 8958afbdafcb2c4f68dae49371159f37  libgcc/config/sh/linux-unwind.h
  d915cb58faa1ad2108733b662853057e  libgcc/config/sh/t-linux
  be1b06de574a22c34d2cf93d2d68a4f1  libgcc/config/sh/t-netbsd
! 1a54a118588d0d64acbb3c8b9ca10b35  libgcc/config/sh/t-sh
  00d4a30e4ed4a68cd6ec53feb398914b  libgcc/config/sh/t-superh
! 5b7840f3afd6e52b43439d268cf9bae1  libgcc/config/sol2/crtp.c
! 8325afcbddc6ca247d31257b92be51ef  libgcc/config/sol2/crtpg.c
! 5e87cfc189f02028b142950527a73c54  libgcc/config/sol2/gmon.c
! 9a480681d3b06a57082abdee3392719c  libgcc/config/sol2/t-sol2
! ae1b6553ae00f100ceb15f0dbe539bd8  libgcc/config/sparc/crtfastmath.c
! fc1438185b37f544fb0d92774016eeb3  libgcc/config/sparc/crti.S
! 2134748b114f7d16c4b49fa33947882f  libgcc/config/sparc/crtn.S
  b2a26791cd6002e4af29a7fa32510b3b  libgcc/config/sparc/lb1spc.S
! e5168502c8a5fcb35a902188201baabb  libgcc/config/sparc/libgcc-glibc.ver
! dd828815d4d22e7a7a558adca53f06e3  libgcc/config/sparc/linux-unwind.h
! 0d9f312520d058d697cb4b7b31c20d3d  libgcc/config/sparc/sol2-c1.S
! 71617da926284139df2eec5a0f4e393d  libgcc/config/sparc/sol2-unwind.h
  ef153c3f92e3dee09716d833736683eb  libgcc/config/sparc/t-linux
  180e9bc0e471bafa1c561931dc073ebe  libgcc/config/sparc/t-linux64
  dccc96847305efc8c465f1dedc591c23  libgcc/config/sparc/t-softmul
--- 119333,119395 ----
  ad6ae6684d4dec9ddd78efad67d1af4b  libgcc/config/rs6000/t-netbsd
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-ppc64-fp
  bd7ceb31787a37d9cb144c41d41acfb3  libgcc/config/rs6000/t-ppccomm
! 9583a9aed217116e54bc90a5464e493e  libgcc/config/rs6000/t-savresfgpr
! 877eea4ec27ee5942a88df85d5e5a5b8  libgcc/config/rs6000/t-slibgcc-aix
  1d9dab8390b84ff0de504beefb72ce61  libgcc/config/rs6000/t-stack-rs6000
  04581882e1764bcc2a4240b21f3eaa8a  libgcc/config/rs6000/t-vxworks
! 5a15231d86d041b489cd77a2c66d90b7  libgcc/config/rs6000/tramp.S
! 3a9c0df5d5ae5917a5a8d1a699ae14fb  libgcc/config/rs6000/trunctfkf2-sw.c
! 6ceb74ef76e78251c8b2aa54a47d81d9  libgcc/config/rx/rx-abi-functions.c
! 95dfd9d4b9b680cd3d8e240dd7d0c6a7  libgcc/config/rx/rx-abi.h
  da7bc70013c60be91cf9f085fed52f1a  libgcc/config/rx/rx-lib.h
! 3cbdc59aca7979fbdb861c53abc9fbba  libgcc/config/rx/t-rx
! c136ced8c4e10bc33163c6b6ca123205  libgcc/config/s390/32/_fixdfdi.c
! 41bc1edf47cfbe8d0a5764523229ea94  libgcc/config/s390/32/_fixsfdi.c
! f57d4ae5c4ac03674ce7b0d926d31a9a  libgcc/config/s390/32/_fixtfdi.c
! aae394eec29b8ce87e46d9fea11f2769  libgcc/config/s390/32/_fixunsdfdi.c
! 58294edab0c2cab49b10633c1dce59bb  libgcc/config/s390/32/_fixunssfdi.c
! 35ffd385fc68cbed68e47cec4e59c46b  libgcc/config/s390/32/_fixunstfdi.c
  6101649604e2b3fdd6179e1aa53066bf  libgcc/config/s390/32/t-floattodi
! 5ede8bfdefd00d2faf52a8c960a79d50  libgcc/config/s390/gthr-tpf.h
! d37b59e577d6bdd253ed91f84a950fa9  libgcc/config/s390/libgcc-glibc.ver
! 74c3a7231641ee7bb8f045e5b51979b2  libgcc/config/s390/linux-unwind.h
! 892aedb296eed00bf7516bdba3790fae  libgcc/config/s390/morestack.S
  c150e28c734710584eba8e77d2ff5105  libgcc/config/s390/t-crtstuff
  35a77f8c50ecf16802e00e647ad94026  libgcc/config/s390/t-linux
  26d353eea9229af01124cc46b2e0cebd  libgcc/config/s390/t-stack-s390
  a5218871642ae69c55b0e826c41f3798  libgcc/config/s390/t-tpf
! c06c11db33a4129e60e075061e8c9326  libgcc/config/s390/tpf-unwind.h
! 3281bea2cf85d3a4af3b83fd314f959b  libgcc/config/score/crti.S
! 0cc50361d6b8db5fc11415b212e4a36e  libgcc/config/score/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/score/sfp-machine.h
! 50cd82b198ecfd4c1c35ac74bc5383f8  libgcc/config/sh/crt.h
! 5c0c8ca18e7c6168ec09c55c392265ed  libgcc/config/sh/crt1.S
! 6010d0873c904253466e110a51372c22  libgcc/config/sh/crti.S
! 35a9e1c3edec4eeee8ee0aaa9583a0b2  libgcc/config/sh/crtn.S
! 3499c0f6ee94b74bac7368f8b7c2b3ca  libgcc/config/sh/lib1funcs-4-300.S
! b25fdf4436b932a732ffe26e6ea4c8ba  libgcc/config/sh/lib1funcs-Os-4-200.S
! 6afc746f22d8c7368f7ef05ba313ebc0  libgcc/config/sh/lib1funcs.S
! 59eb04e636bfae971c4f10ae5a5514e4  libgcc/config/sh/lib1funcs.h
  68ddef94ef228a2e500c6f84ca5c5f73  libgcc/config/sh/libgcc-excl.ver
! a994796db955e872100ea2f2537a657b  libgcc/config/sh/libgcc-glibc.ver
! c369ee6dc4a65a18e58e74b533392f33  libgcc/config/sh/linux-atomic.c
! 17243d93963ebb269ea529b1f9b8deb1  libgcc/config/sh/linux-unwind.h
! 4fae9d2da6361ba2affb68f5a3312750  libgcc/config/sh/sfp-machine.h
  d915cb58faa1ad2108733b662853057e  libgcc/config/sh/t-linux
  be1b06de574a22c34d2cf93d2d68a4f1  libgcc/config/sh/t-netbsd
! 5eb324f3a5ff66bc001214033c0398cf  libgcc/config/sh/t-sh
  00d4a30e4ed4a68cd6ec53feb398914b  libgcc/config/sh/t-superh
! 24fe13c8d73e0fe0594dc12432574429  libgcc/config/sol2/crtp.c
! 8e642606ebdae74c001ddfe105ebe615  libgcc/config/sol2/crtpg.c
! ef474ec06ef2d3574f6a26ca419bc3fa  libgcc/config/sol2/gmon.c
! 0c10ce2b65d39baae4e9d6d38f122ad7  libgcc/config/sol2/t-sol2
! 3ac0f3923ffb7cc89ffcafe4e1af7068  libgcc/config/sparc/crtfastmath.c
! 0fd1e3ae656b11cfffe8ccce6794d675  libgcc/config/sparc/crti.S
! 31773cfe6656fe3efbdf2b2363d3c23b  libgcc/config/sparc/crtn.S
  b2a26791cd6002e4af29a7fa32510b3b  libgcc/config/sparc/lb1spc.S
! 7d1f9ede5e51a354db0f3dceaab51426  libgcc/config/sparc/libgcc-glibc.ver
! a9815c6854c2132a2098ff73f8390fcc  libgcc/config/sparc/linux-unwind.h
! f2cfea32c35c2cd409b14542b220fdc6  libgcc/config/sparc/sol2-unwind.h
  ef153c3f92e3dee09716d833736683eb  libgcc/config/sparc/t-linux
  180e9bc0e471bafa1c561931dc073ebe  libgcc/config/sparc/t-linux64
  dccc96847305efc8c465f1dedc591c23  libgcc/config/sparc/t-softmul
*************** efbaa48f2cdd756a3e953deca1bd19c9  libgcc
*** 111799,111810 ****
  6cb0675d48c7276d43aa201bcc2fd60c  libgcc/config/stormy16/ctzhi2.c
  5bc65cdd345cb629c202f3e96a0410dd  libgcc/config/stormy16/divsi3.c
  3e736ac64edb45dddbedbcc751674354  libgcc/config/stormy16/ffshi2.c
! 0d7db925b826693c44c7a34ba9defc26  libgcc/config/stormy16/lib2funcs.c
  5620256715f30f1eeeb4bdf614b346a6  libgcc/config/stormy16/lshrsi3.c
  27b26d13ffac636e5de0fccdcb2b4515  libgcc/config/stormy16/modsi3.c
  514e4e067379e1bef2b0baac58a21afc  libgcc/config/stormy16/parityhi2.c
  a071c36e5256dc1e154c400ef3055556  libgcc/config/stormy16/popcounthi2.c
! 4f4d66f1b0e4ea04439d335aa1b08395  libgcc/config/stormy16/t-stormy16
  ada9a39786da3b2e999f7440a17a1ed7  libgcc/config/stormy16/ucmpsi2.c
  0db895a315f3ea78e45253f9c2c8e7f8  libgcc/config/stormy16/udivmodsi4.c
  6dca6fc4737c716575c264f3934bb6d9  libgcc/config/stormy16/udivsi3.c
--- 119403,119414 ----
  6cb0675d48c7276d43aa201bcc2fd60c  libgcc/config/stormy16/ctzhi2.c
  5bc65cdd345cb629c202f3e96a0410dd  libgcc/config/stormy16/divsi3.c
  3e736ac64edb45dddbedbcc751674354  libgcc/config/stormy16/ffshi2.c
! d22c2e6207aed9e2c6f6df6750184169  libgcc/config/stormy16/lib2funcs.c
  5620256715f30f1eeeb4bdf614b346a6  libgcc/config/stormy16/lshrsi3.c
  27b26d13ffac636e5de0fccdcb2b4515  libgcc/config/stormy16/modsi3.c
  514e4e067379e1bef2b0baac58a21afc  libgcc/config/stormy16/parityhi2.c
  a071c36e5256dc1e154c400ef3055556  libgcc/config/stormy16/popcounthi2.c
! 718c608178c8c5dc2742c4bfad568736  libgcc/config/stormy16/t-stormy16
  ada9a39786da3b2e999f7440a17a1ed7  libgcc/config/stormy16/ucmpsi2.c
  0db895a315f3ea78e45253f9c2c8e7f8  libgcc/config/stormy16/udivmodsi4.c
  6dca6fc4737c716575c264f3934bb6d9  libgcc/config/stormy16/udivsi3.c
*************** f199b38114ce849b77b38bd475d72cff  libgcc
*** 111813,111819 ****
--- 119417,119425 ----
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
  3189748f203afc9349dffab9fb4b3225  libgcc/config/t-darwin
  f699f9e7159ba2c6033406086c5c8299  libgcc/config/t-darwin-ehs
+ 1b055dd68e433300709a246c1b88d25b  libgcc/config/t-darwin-libgccs1
  5f05c653ae1e197bae3fc3fc5ca1e59d  libgcc/config/t-darwin-min-1
+ b1115059309b9095620433d14c0042cf  libgcc/config/t-darwin-min-11
  d8138086c2f686d6fb17804f19019954  libgcc/config/t-darwin-min-5
  830793a6b0d554dc6c4495bc27a0c9e3  libgcc/config/t-darwin-min-8
  10eac892139b4f3b6abce18db316f6ff  libgcc/config/t-darwin-rpath
*************** e70c5d58ebf79fd5741ec98848df7f6f  libgcc
*** 111827,111852 ****
  a5670d0218ee8d5011882573b6bd224b  libgcc/config/t-gthr-noweak
  925527af5cc046b48ad621a96e896dd3  libgcc/config/t-gthr-vxworks
  37f29328813c5ec6c35276b87457f6b8  libgcc/config/t-gthr-vxworksae
! aae94fe81b4619c986df907481fb2598  libgcc/config/t-hardfp
! f927890dedb2c6f2842273849e2bddc8  libgcc/config/t-hardfp-sfdf
  5b1981686da4ef8b1b62a20f10b3e715  libgcc/config/t-libgcc-pic
  5c40347f0b1274c8b5759d0ed9d1ccf8  libgcc/config/t-libunwind
! bf2a614fe98bad69a9f64f14cc4f586e  libgcc/config/t-libunwind-elf
  397d06701a9c354f5606477c578c9efb  libgcc/config/t-linux
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
! 410cb4738f37fd51343b9bd45df47fcb  libgcc/config/t-slibgcc
  8f731e727bedf843e1a93e29493db712  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
! fe90d2297461714074361f946e2afafa  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
  226b6f10bc32786901a79b070ed13468  libgcc/config/t-slibgcc-gld-nover
  429659ae1ff2531e3ba2fd0c676a320d  libgcc/config/t-slibgcc-hpux
! 9381c0847b27c2ef0fa7abb2e5e516f6  libgcc/config/t-slibgcc-libgcc
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 93092fc62fd552c7560c9f4a1c18b9ff  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
--- 119433,119458 ----
  a5670d0218ee8d5011882573b6bd224b  libgcc/config/t-gthr-noweak
  925527af5cc046b48ad621a96e896dd3  libgcc/config/t-gthr-vxworks
  37f29328813c5ec6c35276b87457f6b8  libgcc/config/t-gthr-vxworksae
! 1b5fbac6f92ce988b044c4dce1cea99d  libgcc/config/t-hardfp
! 3c81db32daa50074a49576fe3b8464f6  libgcc/config/t-hardfp-sfdf
  5b1981686da4ef8b1b62a20f10b3e715  libgcc/config/t-libgcc-pic
  5c40347f0b1274c8b5759d0ed9d1ccf8  libgcc/config/t-libunwind
! 045d55e29f2440a7f7af95dbdb859f77  libgcc/config/t-libunwind-elf
  397d06701a9c354f5606477c578c9efb  libgcc/config/t-linux
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
! 19383688acf223c6035ad62b2866f167  libgcc/config/t-slibgcc
  8f731e727bedf843e1a93e29493db712  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
! 5ca09c85f971706ae01efb529fcc7e0f  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
  226b6f10bc32786901a79b070ed13468  libgcc/config/t-slibgcc-gld-nover
  429659ae1ff2531e3ba2fd0c676a320d  libgcc/config/t-slibgcc-hpux
! 4a52b4fe15f32ea5ffc3d61bda466dbf  libgcc/config/t-slibgcc-libgcc
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 728706cea0cc1b4dba4d73e79ffe9aeb  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
*************** ff76526856565673089b174b185fab45  libgcc
*** 111858,111948 ****
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
  68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! 924fa7fedec7b5c8a28aaf9eee0628d3  libgcc/config/unwind-dw2-fde-darwin.c
! 61d7a072e64a708bee703e4f6da1480a  libgcc/config/v850/lib1funcs.S
  015fdb6e6a2a23f553dc5105691f7a6a  libgcc/config/v850/t-v850
! f1bd780198e83451f55acb20d17a1853  libgcc/config/vax/lib1funcs.S
  c668e63cf08f878538a0db39860696dc  libgcc/config/vax/t-linux
! 97ebfd5835366c1fa1b8cf17dcdc89c2  libgcc/config/visium/crti.S
! 61a0f8ebb7ec892d206185f310e40186  libgcc/config/visium/crtn.S
! 16d1c2290058524ee274e1c4c4788a2d  libgcc/config/visium/divdi3.c
! a01164706e1870df9d8fda3bdfcdc324  libgcc/config/visium/lib2funcs.c
! 99f00a7f3314c4d6d168ed9b421f20f6  libgcc/config/visium/memcpy.c
! 7429edd324f22fb1e04ef4344ad23679  libgcc/config/visium/memcpy.h
! 818c7d1dfd5ecd15d8f1ee40710c63b6  libgcc/config/visium/memset.c
! 26d26a0e0efa8f97181b2ee173b3ca12  libgcc/config/visium/memset.h
! 2f9f8c56f9fd63788bcaa7581a75c2cd  libgcc/config/visium/moddi3.c
! 0cf3b6baca880176db01d3dd1a563d48  libgcc/config/visium/set_trampoline_parity.c
! 03ffd58dffd91fcbda128f0fb2b90907  libgcc/config/visium/t-visium
! d863d15e73638115325395debd60ee06  libgcc/config/visium/udivdi3.c
! b72f89fcb4831901d22e89aa787dfc76  libgcc/config/visium/udivmoddi4.c
! eb15ae48fe5e903b5e8734df0c415725  libgcc/config/visium/umoddi3.c
  9383115b20d4126cf07541b5d7bf6c2a  libgcc/config/vms/t-vms
! 80cbf8282150ec251fab08dd211fdcf2  libgcc/config/vms/vms-ucrt0.c
  c8736f8e5c25d07733d84079727197a4  libgcc/config/vxcrtstuff.c
! 2dadcf04a875b59686fac55ef717e2d0  libgcc/config/xtensa/crti.S
! b827c39ca8bdbbf1900ff4c9bb377fce  libgcc/config/xtensa/crtn.S
! 773f9c8520f15d6885b5f512c068ff04  libgcc/config/xtensa/ieee754-df.S
! 1bcd4ec1ff8b7e9622f800908c56690a  libgcc/config/xtensa/ieee754-sf.S
! b463904ccaa4c6f9d78da6b9ed46bfdd  libgcc/config/xtensa/lib1funcs.S
! 5cc549c04e25784df0daf53158f7335c  libgcc/config/xtensa/lib2funcs.S
  8074695f5eea7b961c59ee9608973dac  libgcc/config/xtensa/libgcc-glibc.ver
! 11fec2b62907d8d1cb92bbcd2f34ee68  libgcc/config/xtensa/linux-unwind.h
  d437dc5394da39dbe1ece64723e90a76  libgcc/config/xtensa/t-elf
  4f2c91d0f57a675cc91b287ce2ad76aa  libgcc/config/xtensa/t-linux
  ce614fa17d52c2d7121d7e2d6f80b02d  libgcc/config/xtensa/t-windowed
  7d4f3d6a7f62649375059b5a7546195d  libgcc/config/xtensa/t-xtensa
! c66619071fcbaf106670e52f735f909a  libgcc/config/xtensa/unwind-dw2-xtensa.c
! 6b9a6b2b4fc731e5c037810edada4327  libgcc/config/xtensa/unwind-dw2-xtensa.h
! 2b819af73309d6f32c68341ecc746c05  libgcc/config/xtensa/xtensa-config-builtin.h
! d993f27cbc4d1714d45f1bda2b302a31  libgcc/configure
! 96290f86d2bae0a9cda298d06bb73da2  libgcc/configure.ac
! 1886a809cdde00922fbb6da4a2b4f46e  libgcc/crtstuff.c
! 081caeb8e1be40c5a1adbd91e9b7707d  libgcc/dfp-bit.c
! df49bf360d6c7641395e5956f6408f4c  libgcc/dfp-bit.h
! 7507d718d11bdf28400364185d13111d  libgcc/divmod.c
! 17319f3ad70cadd1bdffdfe29bf73971  libgcc/emutls.c
  aa52a8f7cb881c00c125ed5fd04ed4df  libgcc/enable-execute-stack-empty.c
! 174b5daa2ebf2d0801c4f9a2541a09e6  libgcc/enable-execute-stack-mprotect.c
! 9506024f8a19f36bcabaa76e911b080a  libgcc/find-symver.awk
! 75e4d7b1e66502277f4e959d20939fd2  libgcc/fixed-bit.c
! 25f9a8db6441c090dfd6325839743836  libgcc/fixed-bit.h
  064f7220d5fd5127bd136e8e2a9d62e7  libgcc/fixed-obj.mk
  651caf13863ec6f313b467d1d8531cd4  libgcc/floatunsidf.c
  6ca2d25d30233e6c7c94aa94c266cb72  libgcc/floatunsisf.c
  faedd2248586a9d50451e03d502eb147  libgcc/floatunsitf.c
  56fa552ac2ef58f6b1563d9c11fd3548  libgcc/floatunsixf.c
! e13580f5d734f5efe3d78f78bc0f18ba  libgcc/fp-bit.c
! ec0346600fd9eda188b340a34a8f91a1  libgcc/fp-bit.h
! 712d943f638d10ad429889c7c40b5103  libgcc/gbl-ctors.h
! ae84403259c9e519bbb25d441078a25e  libgcc/gcov.h
  c7b70dcc1f2024624fcba54a60ffcdda  libgcc/gen-fixed.sh
! cceb4f15a740cb88a0950445124a8fcf  libgcc/generic-morestack-thread.c
! 61db232518643973a11a900778a14388  libgcc/generic-morestack.c
! 1dfc5424c8fbd01fc1280bdcf595fc24  libgcc/generic-morestack.h
  971ff834e82a1a1964a019bfdac21c5c  libgcc/gstdint.h
! 1d9e3b9ee9aba0458e1afe9aa1899e84  libgcc/gthr-posix.h
! 1a23082c4a888683ec5e06660a025bc5  libgcc/gthr-single.h
! cd2527b66857f55d271695ccd63e0413  libgcc/gthr.h
! 0d6d2895ae328b8148215e0db78435f1  libgcc/hardcfr.c
! 5c6c68e0442013bd4ce08621dfee06bc  libgcc/libgcc-std.ver.in
! 4289931afa958de53f95514a6433a492  libgcc/libgcc2.c
! 1996ba8bf855a2477bb2084a93beec87  libgcc/libgcc2.h
! 78863f2a46939341b6754f09271be31f  libgcc/libgcov-driver-system.c
! 15ece9e72dc0089556475ec2b8be632e  libgcc/libgcov-driver.c
! baf92b9c284caba26c0e8d806e3bc1d5  libgcc/libgcov-interface.c
! 075f18936bc378f5efe4b29a51830204  libgcc/libgcov-merge.c
! bb97b1cfec1c706588ba93e6e1db5918  libgcc/libgcov-profiler.c
! c9cdade55c4e0aa97e7dba0fabe52299  libgcc/libgcov-util.c
! 42b04cf03e96a966eb392473d6cebb0b  libgcc/libgcov.h
  06287f034722081687f831dcb61e986c  libgcc/memcmp.c
  dad9e98504e8f79e6e97aa29c6b49d96  libgcc/memcpy.c
  135a2882c25ab6f90748b020a6cc2f02  libgcc/memmove.c
  eb54d3066646204ecc21ba5ecb67d572  libgcc/memset.c
! aaefeff7813c6d1647f9adcf43d831d4  libgcc/mkheader.sh
! 4baff56597b482324ad1ce7f127349db  libgcc/mkmap-flat.awk
! 7b3ae62971d314a43d866c9ad8ce14bc  libgcc/mkmap-symver.awk
! 3f8e791cf33f792ad19f6c3d4963d8e0  libgcc/offloadstuff.c
  0503a6ec2dc990ec5a02ea1d5ece9082  libgcc/shared-object.mk
  4320671e90e14eb5b9f91f106f923072  libgcc/siditi-object.mk
  5476b2a3295a19a0fb558d1db1aa17ae  libgcc/soft-fp/README
--- 119464,119554 ----
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
  68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! 8b0cd746bfd3708d6d816cf9c516e0b7  libgcc/config/unwind-dw2-fde-darwin.c
! b79b6486bdd127f443c42df225c3411d  libgcc/config/v850/lib1funcs.S
  015fdb6e6a2a23f553dc5105691f7a6a  libgcc/config/v850/t-v850
! 3b6378340df1a4df8318dc4ed891c70a  libgcc/config/vax/lib1funcs.S
  c668e63cf08f878538a0db39860696dc  libgcc/config/vax/t-linux
! 155e3dfd73a282df4d4a26e293620afb  libgcc/config/visium/crti.S
! 708cd1f08bffd8fd46524ae90726eb4d  libgcc/config/visium/crtn.S
! b4bb5d8eaa8c9995c966e3beffc9c25f  libgcc/config/visium/divdi3.c
! b491aa1c140d30e16cf6667a4c844edd  libgcc/config/visium/lib2funcs.c
! c231ac408a1e31465b7de36fcce57d12  libgcc/config/visium/memcpy.c
! e7241f0850a5a94a451e6958252cc4e5  libgcc/config/visium/memcpy.h
! 65e11db6a632d563dd4ec58c8facb97c  libgcc/config/visium/memset.c
! fc3778b8a7fdb2dc437f49c0a34813af  libgcc/config/visium/memset.h
! d3301384c42212f542a14824f6000a4a  libgcc/config/visium/moddi3.c
! bfec1bb440b3f6c245a0c1b203cbd014  libgcc/config/visium/set_trampoline_parity.c
! a4e0eadd6a4e9c1b89c6de001118e625  libgcc/config/visium/t-visium
! 6f187294701a55226756421194fa09e4  libgcc/config/visium/udivdi3.c
! 48651dbcad7df5b8e8d2b7f305564989  libgcc/config/visium/udivmoddi4.c
! f456b6d3784e3580b424588807ec5459  libgcc/config/visium/umoddi3.c
  9383115b20d4126cf07541b5d7bf6c2a  libgcc/config/vms/t-vms
! 271c1e0a1604b9ba3ac5816f315ed005  libgcc/config/vms/vms-ucrt0.c
  c8736f8e5c25d07733d84079727197a4  libgcc/config/vxcrtstuff.c
! 1647ac20f0e831444dce51f2783604e3  libgcc/config/xtensa/crti.S
! 69212678afaf7f8d76162f8d0fda9d6f  libgcc/config/xtensa/crtn.S
! 394e9e472f6167308781d7e8fa7e8008  libgcc/config/xtensa/ieee754-df.S
! 2b414a9297b7b16440073994529877df  libgcc/config/xtensa/ieee754-sf.S
! 4ecc8d833dcae5ea23a14d3bcc3e963c  libgcc/config/xtensa/lib1funcs.S
! 0b0d4bf5d57b9a04ae8ea0f9e915573d  libgcc/config/xtensa/lib2funcs.S
  8074695f5eea7b961c59ee9608973dac  libgcc/config/xtensa/libgcc-glibc.ver
! 787efe2acf2190dcec3cc605941cf537  libgcc/config/xtensa/linux-unwind.h
  d437dc5394da39dbe1ece64723e90a76  libgcc/config/xtensa/t-elf
  4f2c91d0f57a675cc91b287ce2ad76aa  libgcc/config/xtensa/t-linux
  ce614fa17d52c2d7121d7e2d6f80b02d  libgcc/config/xtensa/t-windowed
  7d4f3d6a7f62649375059b5a7546195d  libgcc/config/xtensa/t-xtensa
! dca6d35465143e4a68b87cc9c4e803ee  libgcc/config/xtensa/unwind-dw2-xtensa.c
! b99cc01380166f4692e0732bbc912212  libgcc/config/xtensa/unwind-dw2-xtensa.h
! 19ec14444518e397fc90d9fdb8667783  libgcc/config/xtensa/xtensa-config-builtin.h
! 5af73994c8475b4dc0103863bf096541  libgcc/configure
! 5f9f0e725d87d433ed6e08aad0d7bfb8  libgcc/configure.ac
! 67c2374dbad34029ec8371ef10329bcd  libgcc/crtstuff.c
! ab5a8eda1cc5a04c100d837a67f3c0c3  libgcc/dfp-bit.c
! 20a8155e167830f65cf1b081393e5207  libgcc/dfp-bit.h
! e0c38f07703dc61bfebd2a2c6a78b202  libgcc/divmod.c
! aad3268e63f00c54ab3e8d27ec6e4722  libgcc/emutls.c
  aa52a8f7cb881c00c125ed5fd04ed4df  libgcc/enable-execute-stack-empty.c
! 820142918672e2d0cf97f95269f4b8d7  libgcc/enable-execute-stack-mprotect.c
! 03a9946dfd8d23580378d51e3a9c8d9e  libgcc/find-symver.awk
! af848e3012c66af753c4dc8c779b360c  libgcc/fixed-bit.c
! d6af87c5413eead4bfffd8250d932a7e  libgcc/fixed-bit.h
  064f7220d5fd5127bd136e8e2a9d62e7  libgcc/fixed-obj.mk
  651caf13863ec6f313b467d1d8531cd4  libgcc/floatunsidf.c
  6ca2d25d30233e6c7c94aa94c266cb72  libgcc/floatunsisf.c
  faedd2248586a9d50451e03d502eb147  libgcc/floatunsitf.c
  56fa552ac2ef58f6b1563d9c11fd3548  libgcc/floatunsixf.c
! 1f2fc5e0a0f64f52fbac75767d485cf0  libgcc/fp-bit.c
! 4a4d6c95eb32705a9ca691c6f38b23a2  libgcc/fp-bit.h
! 88e58fde726c3cea4f797685e91f7156  libgcc/gbl-ctors.h
! f6dfcb41a1a30e240bb4971be6c4f6a3  libgcc/gcov.h
  c7b70dcc1f2024624fcba54a60ffcdda  libgcc/gen-fixed.sh
! 0e2ace6df7c783433a048433aef93566  libgcc/generic-morestack-thread.c
! e55ffb2cc0b7b184f2a4c6d072037541  libgcc/generic-morestack.c
! b85dc7aa0b0bae9b065906c39c6b22ea  libgcc/generic-morestack.h
  971ff834e82a1a1964a019bfdac21c5c  libgcc/gstdint.h
! bf0c23d230e0a178c0b5193ff6a607bc  libgcc/gthr-posix.h
! be4a0a8b74c78a101de66bdfd5901396  libgcc/gthr-single.h
! 213fd85cbbcdadf80a904e21cfd67bfd  libgcc/gthr.h
! 3ad13985439df4314eccfef65cc8b910  libgcc/hardcfr.c
! 5ccb161e81ace41d0f23963cfeea1124  libgcc/libgcc-std.ver.in
! c011a5992e2e17a6543bf3ffb54cbc2b  libgcc/libgcc2.c
! 3eae5dcf87ad630e35576a7e6f1f9486  libgcc/libgcc2.h
! 1fcaeb35d9890700f455327224d23e59  libgcc/libgcov-driver-system.c
! 590163b168c144b5c440a5e430342c2f  libgcc/libgcov-driver.c
! a136701458552e06510ead1d745a86f8  libgcc/libgcov-interface.c
! bd98b6b7911dd19a3b7a2ae1e6c8767c  libgcc/libgcov-merge.c
! 75e1d6730f8aa667a3d85ff5e9d10897  libgcc/libgcov-profiler.c
! 5a4672c8a8d10063c0707595d1c60fc2  libgcc/libgcov-util.c
! 9e6cee97e418da2d2baaf6831fe4b355  libgcc/libgcov.h
  06287f034722081687f831dcb61e986c  libgcc/memcmp.c
  dad9e98504e8f79e6e97aa29c6b49d96  libgcc/memcpy.c
  135a2882c25ab6f90748b020a6cc2f02  libgcc/memmove.c
  eb54d3066646204ecc21ba5ecb67d572  libgcc/memset.c
! 62cddb593a846b89e8658372295c6746  libgcc/mkheader.sh
! bb8dd143ea73edc996619c8ebe867080  libgcc/mkmap-flat.awk
! 96db6dd355ad21517dd99e95d8f14cdb  libgcc/mkmap-symver.awk
! de96265c7729e32d34788d54b20167e0  libgcc/offloadstuff.c
  0503a6ec2dc990ec5a02ea1d5ece9082  libgcc/shared-object.mk
  4320671e90e14eb5b9f91f106f923072  libgcc/siditi-object.mk
  5476b2a3295a19a0fb558d1db1aa17ae  libgcc/soft-fp/README
*************** e1aba14c8b19b67e96db9f797148af40  libgcc
*** 112022,112027 ****
--- 119628,119634 ----
  8d00b76a5e987b91468aebc92364888f  libgcc/soft-fp/floatdihf.c
  8101b8bd18bd5a883c49257253c57a66  libgcc/soft-fp/floatdisf.c
  4ab49a239a8c03bd5bc5f5ee03f7afb6  libgcc/soft-fp/floatditf.c
+ db2c3f24b8bf8daca993a6435665982d  libgcc/soft-fp/floatsibf.c
  f85e25a797c23cce258273754ddec970  libgcc/soft-fp/floatsidf.c
  42920c37d3ea2b90c0994cd4de2f4b80  libgcc/soft-fp/floatsihf.c
  54b4c5443e79e51443d4fad220bc2efd  libgcc/soft-fp/floatsisf.c
*************** c8c37355af10b7e73d8dd055f5fec1d1  libgcc
*** 112039,112044 ****
--- 119646,119652 ----
  c542677f46dcf90232bd2bfa584f00cb  libgcc/soft-fp/floatundihf.c
  37e794d54137162bc3508310c1e27957  libgcc/soft-fp/floatundisf.c
  c644c7fa122918424b557f6ef9e18094  libgcc/soft-fp/floatunditf.c
+ 084e0fb07841582724c65e1dd6391d97  libgcc/soft-fp/floatunsibf.c
  08d38ea8e5ef4b49a51589d5e7f3ce5e  libgcc/soft-fp/floatunsidf.c
  cc4e37dc543a3767b463816094f3c0b9  libgcc/soft-fp/floatunsihf.c
  a32ae0cec8bb9ac510eaf6f3c72fb19c  libgcc/soft-fp/floatunsisf.c
*************** fff9d95d160cd075bf3dd5afb28988a4  libgcc
*** 112093,112136 ****
  fbd2a4796cc1004ad95b2d302d55497a  libgcc/soft-fp/unordsf2.c
  008beb46d9f23d4020ebdd5cbcb0fe3d  libgcc/soft-fp/unordtf2.c
  8c64184cccab0ab994c69899c63f3260  libgcc/static-object.mk
! 009556a7e9a356de4a584c5b920ac583  libgcc/strub.c
! d1b091cfc429ac9e99a427aa850fee08  libgcc/sync.c
! 77536b0aa89033aeb0551a11bb14f6f9  libgcc/udivhi3.c
! 59951be04dd43989a798cbb240432e83  libgcc/udivmod.c
! 1a03c8b70bf85c7f736667ec34aaffd6  libgcc/udivmodhi4.c
! b4d5712a6a3c2ee776c6528d4fb99449  libgcc/udivmodsi4.c
! d97908aeea3315f9137f229a778b35b4  libgcc/unwind-arm-common.inc
! 0475b0197d358cbd037a6e3040167163  libgcc/unwind-c.c
! b54c177f21d74ce8a2ccb7642e4c455e  libgcc/unwind-compat.c
! 025ebf326a260dee594c3535ad06895e  libgcc/unwind-compat.h
! a82c9a0a02c03f7e7d5b19e1dd7db559  libgcc/unwind-dw2-btree.h
! dc8e04b87090bc0de3771f02dcba6281  libgcc/unwind-dw2-execute_cfa.h
! a2e4458bd1c4f22fd7b16085a77e3f12  libgcc/unwind-dw2-fde-compat.c
! f69ccdc9d0bfc93cd7111a4482ff4ee2  libgcc/unwind-dw2-fde-dip.c
! 86eb3a61bba8c0a61d1f0e84c785bf14  libgcc/unwind-dw2-fde.c
! c8aa66cb5ce6a6258c39a7360f22540b  libgcc/unwind-dw2-fde.h
! 9d2e3d09331b5db55f3023d4b683ff7e  libgcc/unwind-dw2.c
! 720d31240cb77a912de04ecd3849fe75  libgcc/unwind-dw2.h
! 0a9b05711fc71a0aaeefeac5f1beccef  libgcc/unwind-generic.h
! 3892ecbbd079c4a682b0a8f841237f52  libgcc/unwind-pe.h
! a769753dccb0ae384cb582b77e0bb6ab  libgcc/unwind-seh.c
! 31f4ae7205c13280210dbfa45d926dbe  libgcc/unwind-sjlj.c
! b699871c263b446d30c7cd7d0385bd1d  libgcc/unwind.inc
! f6c4d44f37206d08e1fbe17c599cb846  libgcc/vtv_end.c
! a772bb5e7a5802d9a8a1b189bd759625  libgcc/vtv_end_preinit.c
! 6693cc083342d326d63d41f6530df254  libgcc/vtv_start.c
! 34a208666457ea33f55c795c9cffe121  libgcc/vtv_start_preinit.c
! d59716dc5c72d3ed00051cf1bfdab29b  libgfortran/ChangeLog
! 9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
! 80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
! 9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
! 31ef5d7648a78cf591868c9cab0129af  libgfortran/ChangeLog-2005
! 17c18d7d132a14573e14bf9c83be2e68  libgfortran/ChangeLog-2006
! 586699ca61d97b7df80de78173c56cbc  libgfortran/ChangeLog-2007
! 0228e230a44dbb660f2216322f07f044  libgfortran/ChangeLog-2008
! bb2fa6bfdbfaa391e63cf5d821aaa69e  libgfortran/ChangeLog-2009
! 1e0998e79435e745a8647f8a9bf535a7  libgfortran/ChangeLog-2010
! 25ac7c9df4de4d3a55132262b4316667  libgfortran/ChangeLog-2011
  f565223da2dcb17328986889fbb15fa8  libgfortran/ChangeLog-2012
  14dbfdd08dc6c0b84f63f33b871a45c2  libgfortran/ChangeLog-2013
  7fcae7dd71256c9d8fc486e6b5aee74c  libgfortran/ChangeLog-2014
--- 119701,119774 ----
  fbd2a4796cc1004ad95b2d302d55497a  libgcc/soft-fp/unordsf2.c
  008beb46d9f23d4020ebdd5cbcb0fe3d  libgcc/soft-fp/unordtf2.c
  8c64184cccab0ab994c69899c63f3260  libgcc/static-object.mk
! d7020005e8c86d621de56f0f156e00b6  libgcc/strub.c
! 50291f0d9292412e92353cf5454f49af  libgcc/sync.c
! 1c4e57cb30cfea9bb633c3dd6ce897f5  libgcc/udivhi3.c
! 8b5b790205045c2b718278e1fc190a6a  libgcc/udivmod.c
! e82f553423b6a89fe955994d14e008a2  libgcc/udivmodhi4.c
! 3a36e872a0afa68af87adc8f4813d572  libgcc/udivmodsi4.c
! 91f3188f5e50d173d1a8e62301b37be2  libgcc/unwind-arm-common.inc
! f3dc0c57645518e8d2b46b9fdbd5d7a5  libgcc/unwind-c.c
! 79f7543f1c9a09208c5fdacbf0b85abb  libgcc/unwind-compat.c
! d1e7b8e7ddd4d78ad4316d9bef0af20b  libgcc/unwind-compat.h
! 972938238b38cc89f6c8a18176cfe021  libgcc/unwind-dw2-btree.h
! 88126c405676e0ae662342c6239001ff  libgcc/unwind-dw2-execute_cfa.h
! 55f0828308400fc873df145f39841b34  libgcc/unwind-dw2-fde-compat.c
! 450841dcb2aa834ada36d7645efce53e  libgcc/unwind-dw2-fde-dip.c
! f0d83596f67a3233c97761c4fa93d6b9  libgcc/unwind-dw2-fde.c
! 8920d7dec703bd28fdd5e9c6fc40e2e5  libgcc/unwind-dw2-fde.h
! 02f01ec35205ff55d7cd0828e70e0d0f  libgcc/unwind-dw2.c
! 8361eb4d29c311c8d8d67bbd4067b5d3  libgcc/unwind-dw2.h
! 8248b206509e2acb162551e882c98317  libgcc/unwind-generic.h
! dda16be6a3d3675f571665d41a05f2af  libgcc/unwind-pe.h
! 03d20b3028f9a64cf1b94778384da6f0  libgcc/unwind-seh.c
! aec6b594b329f0a6f06b12f2c9c2c5b1  libgcc/unwind-sjlj.c
! f017ba40c4699f1549cd341ad688007f  libgcc/unwind.inc
! 37b6afa65173840bbaf0f1a231020574  libgcc/vtv_end.c
! 804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
! 407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
! ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! ef48b94fef1f1455d01c64b8e2796817  libgcobol/ChangeLog
! 573e7a1dee0641f56d9b797b23dff44b  libgcobol/Makefile.am
! 23cf4646d213d05645a0bf48209b374d  libgcobol/Makefile.in
! ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
! 8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
! 0bf6afe766a6886d2ac1f175300477f2  libgcobol/aclocal.m4
! 01d874537a0c1097b229eb5d5af518e1  libgcobol/charmaps.cc
! 08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
! bc3d1f02ce5f6bee7c10bd1b36a6d1db  libgcobol/common-defs.h
! 07c063d2f73d09e8cea9163eb227fff4  libgcobol/config.h.in
! cfe2d215c4271d60e3f38be1acfa636b  libgcobol/configure
! 15b870274b7080041b1fdbbfed766f53  libgcobol/configure.ac
! 5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
! 795e97e53b8fe43c41e1b6169e9c2294  libgcobol/constants.cc
! 50c34404ebdad01c82b97ac6d262d7a2  libgcobol/ec.h
! c3916da3eb612bdfc67ae057bd7b08e3  libgcobol/exceptl.h
! 9d3945ff6b266e755806306ad5f097dc  libgcobol/gcobolio.h
! b609e2cae4a20192f8ddbcdeedb9186f  libgcobol/gfileio.cc
! 4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
! 1c551b7ea1202a1193beb270bd283e05  libgcobol/gmath.cc
! 9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 2c1e880eefa7922d7aad0c15e2026320  libgcobol/intrinsic.cc
! b40580a5065188e3a6887000b8ab9de2  libgcobol/io.cc
! b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
! 6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! ab5ceec27db3c928f977137e07f98ee5  libgcobol/libgcobol.cc
! a92501f6652c6261f981817076ae3254  libgcobol/libgcobol.h
! 469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
! 9d7af7d1d108f358d1abce503b889dbd  libgcobol/valconv.cc
! 04c19ca3fa2ce47103a80f82c288c484  libgcobol/valconv.h
! f89121c9da25779cdcd32797c67380ce  libgfortran/ChangeLog
! d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
! 522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
! 5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
! 531209fde409aa15e9d0f96a6fcdaf4c  libgfortran/ChangeLog-2005
! 92ec0b33fec01825238f426cbd3ad0e1  libgfortran/ChangeLog-2006
! 6b24a132b9b96e2dfb087f2902a275df  libgfortran/ChangeLog-2007
! 5ae5ca9b600eef2e84d4c27eec5e6b21  libgfortran/ChangeLog-2008
! bc739b9875bb64e3ab957453d16ee68e  libgfortran/ChangeLog-2009
! 28384ad175fd140cf282c83502a3cb3e  libgfortran/ChangeLog-2010
! b5b8799db5eba0e7b5191462d435b8f4  libgfortran/ChangeLog-2011
  f565223da2dcb17328986889fbb15fa8  libgfortran/ChangeLog-2012
  14dbfdd08dc6c0b84f63f33b871a45c2  libgfortran/ChangeLog-2013
  7fcae7dd71256c9d8fc486e6b5aee74c  libgfortran/ChangeLog-2014
*************** e9051611daf30b5672939006d2ab936c  libgfo
*** 112141,113077 ****
  a25a190e02c8ba2caa2c3dee224eba51  libgfortran/ChangeLog-2019
  561d7b7050b65ea8eac91bc825d5a816  libgfortran/ChangeLog-2020
  14d3ee4271b29519e2e38d5f4214dcc3  libgfortran/ChangeLog-2021
! 04ba4326735f4e023c1e7b6eac76c6d1  libgfortran/ChangeLog-2022
! 970e63612f1d7bcf41f16ec9d5099e88  libgfortran/ChangeLog-2023
! a8b176fe50f7a633bed26d804cb957d0  libgfortran/ISO_Fortran_binding.h
! 6086449c41b52dcb992109c2616c2b26  libgfortran/Makefile.am
! ebf3b51df2cae93d22d9ccbe42a811d1  libgfortran/Makefile.in
! afcceb7777065b494d4e0d779ffb764d  libgfortran/acinclude.m4
  77dad7b87b2adfbfda676696055ef90f  libgfortran/aclocal.m4
! be4654bfd0b79e5883d0d11ff04146dc  libgfortran/c99_protos.h
! f42105c9dee5f5bb266283b9bc39da9b  libgfortran/caf/libcaf.h
! af877ca1c4ebc1f45c4795cacda27901  libgfortran/caf/mpi.c
! 4a54c226d7633eed07ce1a88a5423117  libgfortran/caf/single.c
  8ae52aba7942d5b5531d2d61328be165  libgfortran/config.h.in
! a86007eb394a2d0b02ee7ab3eefd6a3b  libgfortran/config/fpu-387.h
! e2b09338910f62c843abbc21d042164d  libgfortran/config/fpu-aarch64.h
! 2d289f5bf3bf718f16a2a0e13ef24924  libgfortran/config/fpu-aix.h
! e99aef0c127ac2750dedc7bb11952d81  libgfortran/config/fpu-generic.h
! a98a35f477775aa216959722cab4ae43  libgfortran/config/fpu-glibc.h
! e495d8d763d1d4dbbe6a1c99a4ee2f1e  libgfortran/config/fpu-sysv.h
! 93375010faf12b59ff1618874a0beacd  libgfortran/config/t-aix
! 8be65c0a6fba9d2721b8f7e12c9f093a  libgfortran/configure
! 14e36ee4c8f22c67399a232fc99c384a  libgfortran/configure.ac
! addba668d966e9ffb0096f23df112487  libgfortran/configure.host
! 25dd6113d8f840fd9d76ee8131e5c200  libgfortran/generated/_abs_c10.F90
! 6bf4ac5f3e04b47cf25a551c00f037e9  libgfortran/generated/_abs_c16.F90
! 8f05172b33330101128f48f0bdcc8ba9  libgfortran/generated/_abs_c17.F90
! 28a540ca33cca6df6d0a3d0e911b64c3  libgfortran/generated/_abs_c4.F90
! f9ff0307efbe14bbe82922e117fd9554  libgfortran/generated/_abs_c8.F90
! 1936f16d14a981b12cdf93d5aa598c0b  libgfortran/generated/_abs_i16.F90
! ccf3fe23bc23151ed0d0659974960939  libgfortran/generated/_abs_i4.F90
! 845828b127364bcc6a8200c9997063de  libgfortran/generated/_abs_i8.F90
! f62746b3ae912ddbfcdbd4af2dd45c1b  libgfortran/generated/_abs_r10.F90
! 60a679eee9feb1236dac7897612a209b  libgfortran/generated/_abs_r16.F90
! 1210b55e35815590bcc8e72b3061f7f5  libgfortran/generated/_abs_r17.F90
! 9cae9d41fec430bfa126e8e7ab305721  libgfortran/generated/_abs_r4.F90
! 6cee211163c9642a4e0fa6eba59bcef4  libgfortran/generated/_abs_r8.F90
! 4fb5d3c297ecb4285b6773d6738e57c1  libgfortran/generated/_acos_r10.F90
! 30900a79668156acb64e4516a5a67536  libgfortran/generated/_acos_r16.F90
! 8fbfa0312562a40a2008b75a92717975  libgfortran/generated/_acos_r17.F90
! e5113af0fbf0e592291d17ce14c9ad71  libgfortran/generated/_acos_r4.F90
! 74ed12d207d88ed1f6c6d721077fa1fe  libgfortran/generated/_acos_r8.F90
! fac995f4f297cf4096e1274ccaf00dbb  libgfortran/generated/_acosh_r10.F90
! b72a434414e14fa5b197ea611c050204  libgfortran/generated/_acosh_r16.F90
! 300f9136426bf4d64ed28065dd743654  libgfortran/generated/_acosh_r17.F90
! 92a1fe2cc4da619af2de624d09434d35  libgfortran/generated/_acosh_r4.F90
! b806e4f72ba6d708c7a818c5a49e1e2a  libgfortran/generated/_acosh_r8.F90
! 3ec61ce3928e2c48dc7cc89b7f56840e  libgfortran/generated/_aimag_c10.F90
! 7298489ae59299cae248dc27c04151d6  libgfortran/generated/_aimag_c16.F90
! 6121fca82e653079e07d55c8ae6cccde  libgfortran/generated/_aimag_c17.F90
! cfa6b71780c458d1daa7fa9247531b25  libgfortran/generated/_aimag_c4.F90
! 6282484d4c1251766c2757fa56950fb2  libgfortran/generated/_aimag_c8.F90
! eb5de5cd72e1a7911c8d1e95e0b58081  libgfortran/generated/_aint_r10.F90
! 1e4795c3fa80741c13863f9520496e53  libgfortran/generated/_aint_r16.F90
! 3b955dd76a973437417f81b4a07e9c12  libgfortran/generated/_aint_r17.F90
! fd4992dba7b740002a067e5c374b277a  libgfortran/generated/_aint_r4.F90
! 49666752e0c20530246350df9f2b4ab3  libgfortran/generated/_aint_r8.F90
! 07885a47171c8233bbd818e2c1fee54c  libgfortran/generated/_anint_r10.F90
! eec06823356617fd29b6251ce20ab886  libgfortran/generated/_anint_r16.F90
! b762dd088fde7da9e0e60c255237a42e  libgfortran/generated/_anint_r17.F90
! ea1e0f477b9070f1e64f77e6232e5d01  libgfortran/generated/_anint_r4.F90
! d1fefacc5197ad8ec9fd45a4628b7e52  libgfortran/generated/_anint_r8.F90
! 4ac952122290ebe3d9295ec25302fa43  libgfortran/generated/_asin_r10.F90
! d17fd2c6c9dc8bdbbcb5c1d14c4ca79f  libgfortran/generated/_asin_r16.F90
! a366d5c9378d758dc1af5f32237d7612  libgfortran/generated/_asin_r17.F90
! bb45c7220d2651e5a479a39372279eb9  libgfortran/generated/_asin_r4.F90
! 57543201ca0deb16f3c68edcfaf44e00  libgfortran/generated/_asin_r8.F90
! 4aaf97ad8085cbd1f7b5ed58409badd8  libgfortran/generated/_asinh_r10.F90
! 9c2c50b8a638fa24d0077a56a4a09934  libgfortran/generated/_asinh_r16.F90
! 7d58a0ee99bff6491e86227f9f7161a3  libgfortran/generated/_asinh_r17.F90
! 5e998b8cfac012e72ca257161efdc887  libgfortran/generated/_asinh_r4.F90
! 96a203bb12221ae8ca53318267df71c6  libgfortran/generated/_asinh_r8.F90
! 158bc2f2bcb34d83621cfcf4f030b106  libgfortran/generated/_atan2_r10.F90
! 9ed6b6c593a6ac3e82fd95bb3458b001  libgfortran/generated/_atan2_r16.F90
! d74857691b9cd77d95bf4fe8f89e7ade  libgfortran/generated/_atan2_r17.F90
! 67d6dffeaea4d36e35a8b690e2a295ef  libgfortran/generated/_atan2_r4.F90
! 96df773837820bf981f282e66db8a560  libgfortran/generated/_atan2_r8.F90
! d6a5f6fe8a6b368df50efc87f070f038  libgfortran/generated/_atan_r10.F90
! 11a7e1d231216213aa17208e842377ac  libgfortran/generated/_atan_r16.F90
! 79981cb7e076044f4bc2eb65861e045e  libgfortran/generated/_atan_r17.F90
! 00b10ab9fd9a09d77c3bc29db29e43c4  libgfortran/generated/_atan_r4.F90
! 1da435f684e03d0ba92c82d5322bb623  libgfortran/generated/_atan_r8.F90
! 963bed2bf01c904ef9e81222ae88b972  libgfortran/generated/_atanh_r10.F90
! 5da824ffd7f92c0d56678cfbcb5fce6f  libgfortran/generated/_atanh_r16.F90
! b531f4c99ce27f96801acdcce42b8d99  libgfortran/generated/_atanh_r17.F90
! dfb8981ca3cffef4f59da7aefea2d42a  libgfortran/generated/_atanh_r4.F90
! c65c5b1d8a2be716e0fbd49ae2555d0c  libgfortran/generated/_atanh_r8.F90
! 5713153c96dc7b80992d78039db1ebea  libgfortran/generated/_conjg_c10.F90
! 2ff02d9e40502a9044c811d43b2f9943  libgfortran/generated/_conjg_c16.F90
! af18dcd79d5cbb201723186dadf1146d  libgfortran/generated/_conjg_c17.F90
! 2e16e3fb56eaafcbac26f7de3870c18d  libgfortran/generated/_conjg_c4.F90
! a3fcf73306c47949da601eb4e1c2a958  libgfortran/generated/_conjg_c8.F90
! 61f3de70574e9417a4369cf9fccbdb97  libgfortran/generated/_cos_c10.F90
! 795c2d81bd00336059121d337cc999f2  libgfortran/generated/_cos_c16.F90
! 7934c0e8135f56d64777b2ee8da11c06  libgfortran/generated/_cos_c17.F90
! 4ac6ad738c057283427a4b58ddfa0ca1  libgfortran/generated/_cos_c4.F90
! 33a199f891948687df9dde8d3c8bfc08  libgfortran/generated/_cos_c8.F90
! 315d28d2063cea77b909f1f9ce313a28  libgfortran/generated/_cos_r10.F90
! 86a814b69d0897827e4b17b411122b62  libgfortran/generated/_cos_r16.F90
! ddda4b0e0566bb46381724a1d47f8fe2  libgfortran/generated/_cos_r17.F90
! 6d38f1e6de0917a0677c2fee3e2461c2  libgfortran/generated/_cos_r4.F90
! 589ad1cd219bb7c285696243cdfafa88  libgfortran/generated/_cos_r8.F90
! 52c42dcb1f1cb69c9d63b1349d245dda  libgfortran/generated/_cosh_r10.F90
! 61d261f6a373ca83b0c4bde21383615d  libgfortran/generated/_cosh_r16.F90
! 49b8cb50043b58696f917c5b804faae9  libgfortran/generated/_cosh_r17.F90
! bcc80725372b770c778fa234b6ae3208  libgfortran/generated/_cosh_r4.F90
! 63807b7c5bb0ecf641cfa2e37309ff54  libgfortran/generated/_cosh_r8.F90
! 583291ba75347d859de7fa37149e56b4  libgfortran/generated/_dim_i16.F90
! a361a3b588f39fcf9765f0620d80deb5  libgfortran/generated/_dim_i4.F90
! c591d917fd7bfe7dba3368066ba043b9  libgfortran/generated/_dim_i8.F90
! ba360167faf4cf0e85026119b7435e90  libgfortran/generated/_dim_r10.F90
! bc1d3f65331581a35eb3d532ab898be6  libgfortran/generated/_dim_r16.F90
! 2ac04f02752ca9e3146400f354deae91  libgfortran/generated/_dim_r17.F90
! bd380cdae85a972a63452ec8347b797c  libgfortran/generated/_dim_r4.F90
! b82bd052b87ee18c81541e6f9413d366  libgfortran/generated/_dim_r8.F90
! 0520d81cfbaa3035daf209f2d84b74fc  libgfortran/generated/_exp_c10.F90
! 1e5d2aa55abbeaeb84daa18ca0b8a7a4  libgfortran/generated/_exp_c16.F90
! bafdd21745f0bb5fa4e7cf5b95489355  libgfortran/generated/_exp_c17.F90
! 2f1efca03273dfa8cb9bb0a584a925ce  libgfortran/generated/_exp_c4.F90
! b4a9f6a1d4c3b28ee6c22c425877b2de  libgfortran/generated/_exp_c8.F90
! c12d03a879b50a68479f37d645279d72  libgfortran/generated/_exp_r10.F90
! 41c0167e4eca521bfd0344d3dc9455e8  libgfortran/generated/_exp_r16.F90
! e95ac1a1276aa2adb0de7ab1bf9a2dcb  libgfortran/generated/_exp_r17.F90
! 5e670cf0ce510d571bc8f65e8042622d  libgfortran/generated/_exp_r4.F90
! 4a531aa5a15e6fbb5e2fa40134a1ec0a  libgfortran/generated/_exp_r8.F90
! ef75b0e5a403f15417ac6f4932b0a347  libgfortran/generated/_log10_r10.F90
! 8826773e0b501177a145381ed50fc8c1  libgfortran/generated/_log10_r16.F90
! 5a25ccf2fe92d754c2205cd1aaa8b060  libgfortran/generated/_log10_r17.F90
! 3ddf32fd556d56a73e253b32b82c7cd4  libgfortran/generated/_log10_r4.F90
! 6e83fd38546e5ddde16e4a86fba5a82a  libgfortran/generated/_log10_r8.F90
! d84173f60d1abf100706b235121253c2  libgfortran/generated/_log_c10.F90
! 7f1b983b46479f466a036511988355ef  libgfortran/generated/_log_c16.F90
! e89bc7dbfd2d7ebfbe62ed420ce92823  libgfortran/generated/_log_c17.F90
! 611ae9f11db36759aaab5f3f9fe64d8e  libgfortran/generated/_log_c4.F90
! e85ccee2b993dca12e42469974740433  libgfortran/generated/_log_c8.F90
! 8f3aaf7ffdcf3945eb47a9af8b3800ef  libgfortran/generated/_log_r10.F90
! 12ea8a8924fde6ad62692f869adbfdd1  libgfortran/generated/_log_r16.F90
! 230752c5161627bce87ffa587daed3c3  libgfortran/generated/_log_r17.F90
! 360b242c97c665276b38d91b808a41aa  libgfortran/generated/_log_r4.F90
! 69bc1abe9e1e75526bd140a9ce26dd1c  libgfortran/generated/_log_r8.F90
! 0de16ff899ca68492a85d8c50e9ea7f6  libgfortran/generated/_mod_i16.F90
! 32fd44713da17e6f619c9e3b2c1b205c  libgfortran/generated/_mod_i4.F90
! bb7b8cbe585b87aa732defa0af9520e2  libgfortran/generated/_mod_i8.F90
! 36a4a1cdcfb5b2d76d19f539c6726645  libgfortran/generated/_mod_r10.F90
! dc9858e0757029ed615da508b4a458bc  libgfortran/generated/_mod_r16.F90
! 61158ec0a9ec8f084dc005fec2f221c1  libgfortran/generated/_mod_r17.F90
! a42b75230dde2f2b91a6ce3b3da9c430  libgfortran/generated/_mod_r4.F90
! 0b75edd0a146c9933bc059719c457bde  libgfortran/generated/_mod_r8.F90
! f6f8244ba4a43d6940e0b24882c74ba3  libgfortran/generated/_sign_i16.F90
! 97a5e756e889b7e9c8b03b75f7d57cac  libgfortran/generated/_sign_i4.F90
! 73b93a7c9ca592f7d66c925e7422f8e1  libgfortran/generated/_sign_i8.F90
! 49113646d9f5970eb70f9ece861f372c  libgfortran/generated/_sign_r10.F90
! 53d7ad3f4a481875c6bdc20441ecc136  libgfortran/generated/_sign_r16.F90
! 95267cbfd2d8a8483171ba1ac6a07f2f  libgfortran/generated/_sign_r17.F90
! 24ea611554d683f6cb5094e92e4c5ba4  libgfortran/generated/_sign_r4.F90
! a5a1d64e82fd2c0e87e817ff2ed4e421  libgfortran/generated/_sign_r8.F90
! e2902173e0a6f1a1dbd65bfa198e4e88  libgfortran/generated/_sin_c10.F90
! 44f134a630ff5ab0bd6e2145543d5660  libgfortran/generated/_sin_c16.F90
! 9a1cd450859fe3cf4df33995714a91df  libgfortran/generated/_sin_c17.F90
! cddb203654c7213ab1671a1f4e7af248  libgfortran/generated/_sin_c4.F90
! 60bc3cbd582924a179f4f407cb13e0b1  libgfortran/generated/_sin_c8.F90
! 9349c1a1298054086842c72b085ed4ad  libgfortran/generated/_sin_r10.F90
! 2fc17a311152c688a91985f302ca2a7c  libgfortran/generated/_sin_r16.F90
! b73b3069db525604827c89cfdd346845  libgfortran/generated/_sin_r17.F90
! a2624f906a5eac58e559f4ed396456de  libgfortran/generated/_sin_r4.F90
! 58b10155831d4cad988148bd3e3d54be  libgfortran/generated/_sin_r8.F90
! ce757c0ba4b885860d3f79beaf20f276  libgfortran/generated/_sinh_r10.F90
! 2f6daab2c977dfbe04094afb56efe612  libgfortran/generated/_sinh_r16.F90
! d09a9c4167b8b5fa0c27c086039ca868  libgfortran/generated/_sinh_r17.F90
! 5728366c07e5e47b3c7bc66f2ee2895b  libgfortran/generated/_sinh_r4.F90
! 4c63490556e854b6e78925488372b20a  libgfortran/generated/_sinh_r8.F90
! e4110f4856eb68ab3c6a8bcf2ca9d04f  libgfortran/generated/_sqrt_c10.F90
! 84c7d33b2e10d8ba595a5e654f75f5cd  libgfortran/generated/_sqrt_c16.F90
! 1d3728f0b73c1db4fa77c5b22b41ba57  libgfortran/generated/_sqrt_c17.F90
! 8eb791de2586dc88637af7376498cc23  libgfortran/generated/_sqrt_c4.F90
! c9ed92072c4074fd020db58f522e0af0  libgfortran/generated/_sqrt_c8.F90
! bdeb598f3787f5e2dfcdcf197b2cbe47  libgfortran/generated/_sqrt_r10.F90
! 969a2ed19f23f8e6779c0fac9e1b6232  libgfortran/generated/_sqrt_r16.F90
! f03e623ad5c1f57dcb13d738b199ba58  libgfortran/generated/_sqrt_r17.F90
! 2cef820b1d6a4df95280e56c23c61f33  libgfortran/generated/_sqrt_r4.F90
! 4967d3b9f4d80bd9846c50d984c42215  libgfortran/generated/_sqrt_r8.F90
! 95e0750bf175203d3dd6c12dfea1c12d  libgfortran/generated/_tan_r10.F90
! 4ca9895932bd2fe38ea45b4b95c9587d  libgfortran/generated/_tan_r16.F90
! 466f1f55fff7f691d6c4b4d8fe38d591  libgfortran/generated/_tan_r17.F90
! cf18132619732d929d9b778122459fb6  libgfortran/generated/_tan_r4.F90
! 1ed07f71a73b0e67b31f0cafd50531be  libgfortran/generated/_tan_r8.F90
! bbdb12c8ebd21f2948db6f4a3453c806  libgfortran/generated/_tanh_r10.F90
! a508d6a2cb5ccea3274160d911e3e1c9  libgfortran/generated/_tanh_r16.F90
! 0d3448d41e42225ba0d3927814c513d8  libgfortran/generated/_tanh_r17.F90
! eecd5bff2a77f2db27313a874531a52c  libgfortran/generated/_tanh_r4.F90
! 69914f38bb7bf14382c1e9793c494cfe  libgfortran/generated/_tanh_r8.F90
! 08c61d7991596a5552aee7d9510bdf87  libgfortran/generated/all_l1.c
! 9aef3eac8107b78e15f08199799c76e5  libgfortran/generated/all_l16.c
! b7d5c7ccbf4059307de6bc084368a671  libgfortran/generated/all_l2.c
! edce97b776e9121252ae06e33cf7efed  libgfortran/generated/all_l4.c
! 851ffe90c034cbcb8f845d46d1124cb9  libgfortran/generated/all_l8.c
! 254b1ea5f46977508a5158b263016f07  libgfortran/generated/any_l1.c
! 242a0b2f238caad179fd0f7c52b5de1b  libgfortran/generated/any_l16.c
! 218323b4378c554b439b3670467f682c  libgfortran/generated/any_l2.c
! c23d90f8c70f2cc76b4ab134d128ae04  libgfortran/generated/any_l4.c
! 66ba885f5400356843b054ffa072b5cd  libgfortran/generated/any_l8.c
! d376e4e865768cf98955e156ca503b6b  libgfortran/generated/bessel_r10.c
! 1c0d49f3156c287da41d85f8d98dafb2  libgfortran/generated/bessel_r16.c
! 0a4dacb3190b9c36b23e3cf0197de8e9  libgfortran/generated/bessel_r17.c
! cce3a79bc28cd7b64149cb36659d2334  libgfortran/generated/bessel_r4.c
! 380aebb6b4803a087b9ff2b2bca92454  libgfortran/generated/bessel_r8.c
! 2fdf2703955a5222f94d25238eb10733  libgfortran/generated/count_16_l.c
! fa13ed8eade27847fff0a89f909fa9e9  libgfortran/generated/count_1_l.c
! 58f16011c7986566780926ca67d42f92  libgfortran/generated/count_2_l.c
! dcad8b3b68dac1ef540ab4305f17c74d  libgfortran/generated/count_4_l.c
! 919479cb236d48ade18f2ea8c9053555  libgfortran/generated/count_8_l.c
! 5fc81d341ca9aff8e7c2e7d7aae9c7ea  libgfortran/generated/cshift0_c10.c
! 5020e6dcf8af6175d60a96aa49db4472  libgfortran/generated/cshift0_c16.c
! 3fc9ff72d8d79a5cf835e020f26e3749  libgfortran/generated/cshift0_c17.c
! f519c182bb3cca3ac15dd628b97c6191  libgfortran/generated/cshift0_c4.c
! aee2bb3f9ac6a1be567a7c266009cbd4  libgfortran/generated/cshift0_c8.c
! d5d091d38171b0cdbe4277e8e005bb18  libgfortran/generated/cshift0_i1.c
! b7cbcd518c12a829163ca0d0212eccf4  libgfortran/generated/cshift0_i16.c
! 7a129a66b233a2d5596f03d12aadaf35  libgfortran/generated/cshift0_i2.c
! fe8dfc39ab688001447f76162f054bfe  libgfortran/generated/cshift0_i4.c
! 8ced175839b45ee4062c5e15d5af28de  libgfortran/generated/cshift0_i8.c
! fc5c2b368896c8e1a21c582d170f0417  libgfortran/generated/cshift0_r10.c
! 4fe7492bddc4612631ae264438c6b686  libgfortran/generated/cshift0_r16.c
! d4fc748089d3a1b4c549698a8e373621  libgfortran/generated/cshift0_r17.c
! 52287fce74d70e8b03d58910cb5b3aa5  libgfortran/generated/cshift0_r4.c
! 9411c1818c84085363c2dc7548564f1c  libgfortran/generated/cshift0_r8.c
! ea4d6a414cfd60ddfa5c5d5b068469e7  libgfortran/generated/cshift1_16.c
! be0d1b442cd5dfc56adc118041ac16c6  libgfortran/generated/cshift1_16_c10.c
! 0880f6b3bca5bee0ba9a6301d41cd643  libgfortran/generated/cshift1_16_c16.c
! b108e1f5c762becd81cf43c24f5a5bf2  libgfortran/generated/cshift1_16_c17.c
! feb0ac9cbc57300fdd58c23f8d99f4ad  libgfortran/generated/cshift1_16_c4.c
! 83b00c1bf34939cc353bda20e30b8f31  libgfortran/generated/cshift1_16_c8.c
! 7e1a125164b69bfe8f73fdafca253149  libgfortran/generated/cshift1_16_i1.c
! edf1ff72c7e796fed53f203766d4d02b  libgfortran/generated/cshift1_16_i16.c
! ca915a828882a87eedadf839d8c324d3  libgfortran/generated/cshift1_16_i2.c
! 5a477252b79a75ee2f659b9a52f9d2fe  libgfortran/generated/cshift1_16_i4.c
! 49b0124275cc95ecf118107a07ffb2cb  libgfortran/generated/cshift1_16_i8.c
! 261bbbd384072c4c4321d5b01cfb64d7  libgfortran/generated/cshift1_16_r10.c
! 464ba3082186d3b4bfae5aafbf828d44  libgfortran/generated/cshift1_16_r16.c
! 10ece1c2047a2744778bd22556f66c5f  libgfortran/generated/cshift1_16_r17.c
! 3fba009f493aafcdbd4c06d6fcba3a5e  libgfortran/generated/cshift1_16_r4.c
! c59adf8fde17836da2bf89057077b88c  libgfortran/generated/cshift1_16_r8.c
! 7d4ed023f7f6414fb6c0dba5a5dbacd2  libgfortran/generated/cshift1_4.c
! e601cf12f3f2d038ebb1ea2eef316a35  libgfortran/generated/cshift1_4_c10.c
! df490c0bf39511c9cf23016e11546d7b  libgfortran/generated/cshift1_4_c16.c
! 49f19e9a5674a1ef0add75ea41ba7fb4  libgfortran/generated/cshift1_4_c17.c
! 437258f135c07f2d82adfd488f24fa02  libgfortran/generated/cshift1_4_c4.c
! 62a5db8c932239f4a3cf10d1d8ad6472  libgfortran/generated/cshift1_4_c8.c
! abd8bbb1ac462fc2ef117035f33484d8  libgfortran/generated/cshift1_4_i1.c
! 6bf935de7dfa883f50f9800402525be2  libgfortran/generated/cshift1_4_i16.c
! 0c0964e720a2104cd71d9160f01fa058  libgfortran/generated/cshift1_4_i2.c
! 5bee981e5f1a3f3e75b1fdd2d0174d7c  libgfortran/generated/cshift1_4_i4.c
! f9ae889aead58bef4255bce2617c16f4  libgfortran/generated/cshift1_4_i8.c
! 49fef20f54c1065301cc45073e192ac2  libgfortran/generated/cshift1_4_r10.c
! 305a83fce492381fbcdfbb4e697f743f  libgfortran/generated/cshift1_4_r16.c
! 39201a2b9f1b5c56babe98352e90467e  libgfortran/generated/cshift1_4_r17.c
! f86b6df4c6294bff1655f100776f0573  libgfortran/generated/cshift1_4_r4.c
! 61041e4acf91c1fe83b388d51215983b  libgfortran/generated/cshift1_4_r8.c
! c0889386821591124e84a1d47b450c66  libgfortran/generated/cshift1_8.c
! c760726037415b290d961a4e4aebb005  libgfortran/generated/cshift1_8_c10.c
! 69f3716b6cb2c9965f94fb1910083c08  libgfortran/generated/cshift1_8_c16.c
! 84eef5118c46a6e759effe10464d08ae  libgfortran/generated/cshift1_8_c17.c
! f24ab9e16388b051572cbddeca85a0cb  libgfortran/generated/cshift1_8_c4.c
! 8a3690e2c5aed51a67295cca9f0d012c  libgfortran/generated/cshift1_8_c8.c
! d7a67b4e85df26be59d9d8c0f048440c  libgfortran/generated/cshift1_8_i1.c
! 8d845c9e8ef8bf76afaed2cf58302674  libgfortran/generated/cshift1_8_i16.c
! fb095f600eb4ecd87c87cb3d6ed17d9a  libgfortran/generated/cshift1_8_i2.c
! 2f68625e99652294483b0a139f954257  libgfortran/generated/cshift1_8_i4.c
! 21b57cdd6189ebf033171d4758134ab5  libgfortran/generated/cshift1_8_i8.c
! 4a61d9770ba86c32e3455572a9df5b3c  libgfortran/generated/cshift1_8_r10.c
! 11689129bf2c066db978588c525b71f7  libgfortran/generated/cshift1_8_r16.c
! b57acd46ffee4d64ad3cf0b59e934149  libgfortran/generated/cshift1_8_r17.c
! 304aa046222d3babea29441354bca9c1  libgfortran/generated/cshift1_8_r4.c
! dec4133a5255e31259bec47a8532fa79  libgfortran/generated/cshift1_8_r8.c
! 518f38fa52e9ea57ea2f29886e22f952  libgfortran/generated/eoshift1_16.c
! 37f3fe92d05c6baa534f6849f2a1b09a  libgfortran/generated/eoshift1_4.c
! 86f38a2721ea50985bfa98bbcca55c2f  libgfortran/generated/eoshift1_8.c
! 8e6102d0a4379345e2a23c485fdef6fd  libgfortran/generated/eoshift3_16.c
! 5b42b0ecdcc850ae06a32150da3df3f2  libgfortran/generated/eoshift3_4.c
! eeb3c15736137b9458ebcc7539b472b8  libgfortran/generated/eoshift3_8.c
! f342f987c2372555b02b5b2e19312ebc  libgfortran/generated/findloc0_c10.c
! 17b50f0f8f390b59a35c6409c1fcb871  libgfortran/generated/findloc0_c16.c
! 794817592c11d2a94ee60f6955d7be97  libgfortran/generated/findloc0_c17.c
! 346a9524fef4bd61bce75170cfedfe2c  libgfortran/generated/findloc0_c4.c
! 251a47f9e9ffd3c2b1498ac8f2438f1b  libgfortran/generated/findloc0_c8.c
! 8f8e194f83b908a82fb44ee640114a7e  libgfortran/generated/findloc0_i1.c
! be5f9e1b2d8f8d3752b2ee9e67fb859b  libgfortran/generated/findloc0_i16.c
! a0e05e41f1e0bb27589babc798b3415b  libgfortran/generated/findloc0_i2.c
! d8d78c4255c1eaa368392947efb71e4f  libgfortran/generated/findloc0_i4.c
! 2ee4f598fbc737c017297011e57c4be3  libgfortran/generated/findloc0_i8.c
! c6273b9835e4aba938add827df549ad5  libgfortran/generated/findloc0_r10.c
! 9037502e9d3e1797a952f09cf49ce994  libgfortran/generated/findloc0_r16.c
! f69b44c9df5d8febc9bcdc2dbcf49ba6  libgfortran/generated/findloc0_r17.c
! 0caba7e9d036380716bdaf1c8090c9d4  libgfortran/generated/findloc0_r4.c
! 66c2257d1e12f08bbe0841617e1c96ca  libgfortran/generated/findloc0_r8.c
! 22b9f1c83b0a9e5baca28f42a7d23dff  libgfortran/generated/findloc0_s1.c
! 6a3caccf94ea1636d1b66499bae49b6f  libgfortran/generated/findloc0_s4.c
! ed2c42d0ee24861370ef059323e102be  libgfortran/generated/findloc1_c10.c
! c64056d0735d52646585007c9e87f938  libgfortran/generated/findloc1_c16.c
! 1e79dd3407ae030d9a5cf980f8d02cf8  libgfortran/generated/findloc1_c17.c
! f1f3d37ebffe875edfacad56a33d4fc7  libgfortran/generated/findloc1_c4.c
! 641a76b1026b18084fb86718470ea1f4  libgfortran/generated/findloc1_c8.c
! cbbcdb29b51f0d0eafd56b4ca5b0f7c7  libgfortran/generated/findloc1_i1.c
! 9c827bb48473075c8cc159a5736f8abb  libgfortran/generated/findloc1_i16.c
! e6d8f55a78e368518ad91c43f7e7e8bd  libgfortran/generated/findloc1_i2.c
! aa07a3501df40f5e41297e8c21b84658  libgfortran/generated/findloc1_i4.c
! 8b0d700d998b50b038a7f3be69fa9eee  libgfortran/generated/findloc1_i8.c
! f9411ccc9006b92a9da8fb9543d87bff  libgfortran/generated/findloc1_r10.c
! 29c83fade0d329077e7822b9734edd83  libgfortran/generated/findloc1_r16.c
! 30dd1545da98ae9b967a5bdd0df52a9f  libgfortran/generated/findloc1_r17.c
! 401404c4ebca286cfbb90690ee22d460  libgfortran/generated/findloc1_r4.c
! 26fd560e6c7de1b0aec2b52bb1d42e70  libgfortran/generated/findloc1_r8.c
! e4a6840d29c622eccb399f5c81f4a9fb  libgfortran/generated/findloc1_s1.c
! bb51e94ffbc09461a0eb39cf16fc6f0f  libgfortran/generated/findloc1_s4.c
! 2942f76485cc39af747ce6084304c987  libgfortran/generated/findloc2_s1.c
! a1c01c9192d7994dd6c2f4f2824a8366  libgfortran/generated/findloc2_s4.c
! 688f0c37c26e2d950561ade4f535d193  libgfortran/generated/iall_i1.c
! e061607295b9d0befe789dc2efe9a9b3  libgfortran/generated/iall_i16.c
! 636272c7b14ba0ccf7d61ba0fc5cf8d6  libgfortran/generated/iall_i2.c
! 7a82b472039fe47669856c9254922303  libgfortran/generated/iall_i4.c
! a1b90b5dbe2597b012eb6b82fdd4e0da  libgfortran/generated/iall_i8.c
! 535fbb47d5b1b747a86e645127684605  libgfortran/generated/iany_i1.c
! 51a150d13282b80ccbe30e657de87036  libgfortran/generated/iany_i16.c
! b1f59af835311e60276c1e422bf04d12  libgfortran/generated/iany_i2.c
! 5249da37e94f2669bb8bcc6fcf172b58  libgfortran/generated/iany_i4.c
! bebbbe9013020c86de476ce9727344de  libgfortran/generated/iany_i8.c
! e0892c9db9c759f8dd0ce5c561433f0e  libgfortran/generated/in_pack_c10.c
! 95f31558829aff32e1927aa186c65df9  libgfortran/generated/in_pack_c16.c
! 533644dabd231588e259cef11db4d989  libgfortran/generated/in_pack_c17.c
! 7de0b3556b5c7b2c2dbe559270df4753  libgfortran/generated/in_pack_c4.c
! 75a20eef0b562c58eb83c28811648409  libgfortran/generated/in_pack_c8.c
! 59599c5fee5fb3a571edd4804bbd31aa  libgfortran/generated/in_pack_i1.c
! 27c1d7691e1b530e68881bd345d0e946  libgfortran/generated/in_pack_i16.c
! 333a40c662c4b8218fbe1e21b9e42424  libgfortran/generated/in_pack_i2.c
! 4454b6f379fb0181247c3b569f73ac92  libgfortran/generated/in_pack_i4.c
! aaa919149ba0f632186936ee6f6ee04c  libgfortran/generated/in_pack_i8.c
! 029b0afd039c66eaf127f1679a430bd5  libgfortran/generated/in_pack_r10.c
! 9c7acb23419eef8a1d53c606a137c280  libgfortran/generated/in_pack_r16.c
! 83c2a61327285ea8b3cb09ed0392c202  libgfortran/generated/in_pack_r17.c
! 9d2e44b3b41b837cd5cac38385a5d439  libgfortran/generated/in_pack_r4.c
! 455da1289e56afdd28976c0decadf224  libgfortran/generated/in_pack_r8.c
! 5db246988f3bdb9e664d9f165ed1b4b3  libgfortran/generated/in_unpack_c10.c
! 3d9ad612b98aabbcd1c13be57f7ec2c9  libgfortran/generated/in_unpack_c16.c
! c6cf575e400ff07dc98fb10f1110709d  libgfortran/generated/in_unpack_c17.c
! ea18d606d6f374241a07f1d6675a93ea  libgfortran/generated/in_unpack_c4.c
! 2160fb730dbfa997b813200edf82bd81  libgfortran/generated/in_unpack_c8.c
! 3ada84d82752ba9970774d6e6139f46f  libgfortran/generated/in_unpack_i1.c
! 768f114817eecdaeddb5e1780c98439b  libgfortran/generated/in_unpack_i16.c
! beec48e65252406a3de18aac138696a5  libgfortran/generated/in_unpack_i2.c
! 16e8e63db530433b5bab1c439f749954  libgfortran/generated/in_unpack_i4.c
! 5c415b71b5b0274c973cbac947f5c607  libgfortran/generated/in_unpack_i8.c
! 60d0830743ffd26faae6efb423954977  libgfortran/generated/in_unpack_r10.c
! a5a3ea77b1047e82bc2250d7434ec215  libgfortran/generated/in_unpack_r16.c
! 138dab47f9ff10a08dbcd42381643a60  libgfortran/generated/in_unpack_r17.c
! f554ad2d6d0d0d153d44d1bd4d0e3fc8  libgfortran/generated/in_unpack_r4.c
! a3120e42adf550088d578da79499fd6e  libgfortran/generated/in_unpack_r8.c
! b96d393ea9e23fc3642822fabcc94ab8  libgfortran/generated/iparity_i1.c
! aacea32c09e9ee701c9462f3b6042453  libgfortran/generated/iparity_i16.c
! 4e89a829a2a7dd7848fced6f4a155929  libgfortran/generated/iparity_i2.c
! 4ae8a4194c51c8dd7cdd6417a302113b  libgfortran/generated/iparity_i4.c
! f4793ea3173840df0bc4081c22a8b6e1  libgfortran/generated/iparity_i8.c
! e2607a02720b8c203d5e796b5b6d6dce  libgfortran/generated/matmul_c10.c
! 23f93a44d517d39e664a305e4cdc10e2  libgfortran/generated/matmul_c16.c
! 7261a642a0e0196bc460e1c03795059c  libgfortran/generated/matmul_c17.c
! 5d029cd79a4e1e16942ead7479f6b4f6  libgfortran/generated/matmul_c4.c
! 4678a84d93180588ae12db5e0472f1ef  libgfortran/generated/matmul_c8.c
! 2a85dd41ab3a127716f9a7bfb9e3dd6a  libgfortran/generated/matmul_i1.c
! 965fcf4a5e771fb23070b81bacbe04a0  libgfortran/generated/matmul_i16.c
! 1dfa100f0a197e3cf181aa0c4ff95a0e  libgfortran/generated/matmul_i2.c
! 9348d6d5145c163f77800c5e8e4c2419  libgfortran/generated/matmul_i4.c
! c4382709568a88190a96ff0673e784e3  libgfortran/generated/matmul_i8.c
! dbdf69ca30e8c0fe6d37b0a175e6612c  libgfortran/generated/matmul_l16.c
! 2b47f16cee9d65f7d2a2c04c78c86fb5  libgfortran/generated/matmul_l4.c
! e554caca2009e896c3688a3bdf809843  libgfortran/generated/matmul_l8.c
! ce9c730a1c904c5d95ade9cc9812691a  libgfortran/generated/matmul_r10.c
! 4d6edd15c81a146583092e9a7afff69b  libgfortran/generated/matmul_r16.c
! 5ceeb37d1da532551a01a769374d7236  libgfortran/generated/matmul_r17.c
! 23a858cfdc4d480f4fd575ebaa85d390  libgfortran/generated/matmul_r4.c
! 3e440f396cb7570b17ed88fdf32eccdc  libgfortran/generated/matmul_r8.c
! f55e252c11897f6091bab56bc2548719  libgfortran/generated/matmulavx128_c10.c
! edbe570ff85de120e872419017085ea6  libgfortran/generated/matmulavx128_c16.c
! 2406ee7b959351caf20baeed7c89a0c9  libgfortran/generated/matmulavx128_c17.c
! 997d6e1333d1c044671a1aafb3b82123  libgfortran/generated/matmulavx128_c4.c
! e1e81ece14de7d7fd19c7c85899373c9  libgfortran/generated/matmulavx128_c8.c
! cf1bd399101602c59d55aac5f13d083d  libgfortran/generated/matmulavx128_i1.c
! a5447abb904f8ff00ba884cce452797d  libgfortran/generated/matmulavx128_i16.c
! e492c06c30271e0059c539c168f2d016  libgfortran/generated/matmulavx128_i2.c
! f56deb0a6d3d0d3039915a0ad1d7cee2  libgfortran/generated/matmulavx128_i4.c
! 2c68c76f20d0441247e9040889a7ec7b  libgfortran/generated/matmulavx128_i8.c
! 830890b9879b6ae6b7efbb08dec0e3bd  libgfortran/generated/matmulavx128_r10.c
! 1179a6831152150085a0e0fa46472c2f  libgfortran/generated/matmulavx128_r16.c
! d1d8adce007a6be9c7056a45dc972000  libgfortran/generated/matmulavx128_r17.c
! a140ca71de487c6cf66caded2049bf8e  libgfortran/generated/matmulavx128_r4.c
! 86c8ccd28611f42a6cc5e418572e5cbf  libgfortran/generated/matmulavx128_r8.c
! f5685e112e7e64199b68410fd636575b  libgfortran/generated/maxloc0_16_i1.c
! 437f47398a5c59f0fe85cc870780c0cf  libgfortran/generated/maxloc0_16_i16.c
! f1c17b9becc843cfdc89a111f37ec3b5  libgfortran/generated/maxloc0_16_i2.c
! d9664a5ff66d59b60e34923e3e42960a  libgfortran/generated/maxloc0_16_i4.c
! e92cb91db79081fb16970212857ed08a  libgfortran/generated/maxloc0_16_i8.c
! dd2f969a927ef854302ab8d8ff7e06c9  libgfortran/generated/maxloc0_16_r10.c
! 2dfc13c5b1abf1f3741ec76292858fb7  libgfortran/generated/maxloc0_16_r16.c
! 65e4ff59acfb78007391e5ad4766db8a  libgfortran/generated/maxloc0_16_r17.c
! c960609fc231c368c62733992f70f4ff  libgfortran/generated/maxloc0_16_r4.c
! f5616b4568a6c87e9cf2ea046b697b34  libgfortran/generated/maxloc0_16_r8.c
! d4d3eb21cef615d4ccaf99d176e1149a  libgfortran/generated/maxloc0_16_s1.c
! c40aadffe302b1cd0bb9cf755eb3c4f9  libgfortran/generated/maxloc0_16_s4.c
! 635a812da30db3f5858477bac7733776  libgfortran/generated/maxloc0_4_i1.c
! dc4f88a261e5f19b8c391882488e4490  libgfortran/generated/maxloc0_4_i16.c
! 395598a786278123ab91f5581424abee  libgfortran/generated/maxloc0_4_i2.c
! ca57b5b779d61f73b78e566bb412f63a  libgfortran/generated/maxloc0_4_i4.c
! bee300640c10822e585608257c6ce40f  libgfortran/generated/maxloc0_4_i8.c
! d71a5eecf9a85a0eb2612fdd8f49449b  libgfortran/generated/maxloc0_4_r10.c
! e60c49ea3dcf838e9184609d7b3fe813  libgfortran/generated/maxloc0_4_r16.c
! c3af77b6d491f7730f98fe31df5f7170  libgfortran/generated/maxloc0_4_r17.c
! dd55ba82b1e225a6b75699d53599e9fe  libgfortran/generated/maxloc0_4_r4.c
! 0fb7ceedf174aa494ba0ccd092c592c4  libgfortran/generated/maxloc0_4_r8.c
! 4ca547920dbcf618e407515a006d993a  libgfortran/generated/maxloc0_4_s1.c
! f288e1dce0dd76fd015d248f9bb93202  libgfortran/generated/maxloc0_4_s4.c
! b05de630be3ed2c968c2b2e1d40b13bf  libgfortran/generated/maxloc0_8_i1.c
! c21dc54ddc8e17a2b5b0388e06a5abd2  libgfortran/generated/maxloc0_8_i16.c
! 59aee4f79d6999f584bae19580a258cb  libgfortran/generated/maxloc0_8_i2.c
! d0855ee3ef1bacc5db1628bbc2a90f4a  libgfortran/generated/maxloc0_8_i4.c
! b0b2c2258d57ec02c56178c12971d265  libgfortran/generated/maxloc0_8_i8.c
! 67998427b3aa72b673ccc2cda8643bb9  libgfortran/generated/maxloc0_8_r10.c
! d1e6ee0bc7f04608b2bb10cc9cb67e2f  libgfortran/generated/maxloc0_8_r16.c
! 3c0eb1af7fc815063b8a5874b01407da  libgfortran/generated/maxloc0_8_r17.c
! 2478e348e3acecb4b7dba01f00bfd11e  libgfortran/generated/maxloc0_8_r4.c
! eac92052ae6fe7401bf6183d8e4a8c6b  libgfortran/generated/maxloc0_8_r8.c
! dff2d1a84343f1c06f9b6237a31a7bc6  libgfortran/generated/maxloc0_8_s1.c
! 32209d3e437040e186a042a266b4343e  libgfortran/generated/maxloc0_8_s4.c
! 12201d39fdef793b23750c560932b60a  libgfortran/generated/maxloc1_16_i1.c
! b89cc040fb7d7dda1fa52f678b27db18  libgfortran/generated/maxloc1_16_i16.c
! 4d4860f0fa17b2e0b0d974793b9ecbc5  libgfortran/generated/maxloc1_16_i2.c
! 40ac9d49a62e49b545fbd6ff16c06440  libgfortran/generated/maxloc1_16_i4.c
! 7b58ac11d678d10bb9bd3932d7ad9dbb  libgfortran/generated/maxloc1_16_i8.c
! 6830843d27fe746a185cd073ab7e4d99  libgfortran/generated/maxloc1_16_r10.c
! 4cab2b0066be2ae301b9491fe2433933  libgfortran/generated/maxloc1_16_r16.c
! 1fcb966005454ae756d1416e75c5ab97  libgfortran/generated/maxloc1_16_r17.c
! 55fe4360653c229542c2ebdbcc04e75a  libgfortran/generated/maxloc1_16_r4.c
! cd4e6906724cec214a9088c0b1a7b6c0  libgfortran/generated/maxloc1_16_r8.c
! fb4dabcbde30400b05fea25ef9bf5df5  libgfortran/generated/maxloc1_16_s1.c
! b4b7a5d02f9a3a3ff598861e32dc3cb8  libgfortran/generated/maxloc1_16_s4.c
! ac9bded109c805f180ab795ed34182fd  libgfortran/generated/maxloc1_4_i1.c
! 31c7f79ebc0c2de664d101f7f0ea12e3  libgfortran/generated/maxloc1_4_i16.c
! 27ce0fa65fdf33eea73b172ef28307df  libgfortran/generated/maxloc1_4_i2.c
! 4907b27900ffbd97986f6d7db90ae48b  libgfortran/generated/maxloc1_4_i4.c
! d4ff14995972318ae4c31c6aa65564c7  libgfortran/generated/maxloc1_4_i8.c
! fb0fafd07a19c73278ab8137376f17bd  libgfortran/generated/maxloc1_4_r10.c
! f5a666db284650eca849bf6443b98008  libgfortran/generated/maxloc1_4_r16.c
! 5c7c06b0d203e9f1a5373aa5da9afc44  libgfortran/generated/maxloc1_4_r17.c
! 5d43efe60f963098bb7e8183bc6297cf  libgfortran/generated/maxloc1_4_r4.c
! 211cb8871e93621b04ce2db2ed1815a0  libgfortran/generated/maxloc1_4_r8.c
! a24c93ba99db6a8c0311a7882c024be0  libgfortran/generated/maxloc1_4_s1.c
! b22990df135b9731c617957d05b5d445  libgfortran/generated/maxloc1_4_s4.c
! 949612df9d869b75d6653c44cd857131  libgfortran/generated/maxloc1_8_i1.c
! 8233d7ead8f19aac1627b1b261dcf1e4  libgfortran/generated/maxloc1_8_i16.c
! 5017a3b29fd6c205c0b7774db652b8ee  libgfortran/generated/maxloc1_8_i2.c
! 1c883ee90f4a5dc4f5b62b8b0d93304b  libgfortran/generated/maxloc1_8_i4.c
! 41488ff57da46192361a2305d38b55c1  libgfortran/generated/maxloc1_8_i8.c
! 3e8d815bc04e827fff8e6aa42fbbf967  libgfortran/generated/maxloc1_8_r10.c
! e8cea44b2a02edca779b5cd90ee9218c  libgfortran/generated/maxloc1_8_r16.c
! 045ff8c57a8ffaf3dd257dbaff135c08  libgfortran/generated/maxloc1_8_r17.c
! 1f0c321a859c98b36d3e06257d9fbf21  libgfortran/generated/maxloc1_8_r4.c
! 968a7759508754e1129c75de3e03dc2d  libgfortran/generated/maxloc1_8_r8.c
! 010d7b87dc174f2b28981cb2d48db32e  libgfortran/generated/maxloc1_8_s1.c
! 29c42fcbd72d37762b5e8bf6f7d70877  libgfortran/generated/maxloc1_8_s4.c
! b60d2a7492ca85aac55061ad1f93889a  libgfortran/generated/maxloc2_16_s1.c
! 52c52996500bbb8796dbb98870d327ea  libgfortran/generated/maxloc2_16_s4.c
! d53b7682d95e68a2d701706d5e8d4816  libgfortran/generated/maxloc2_4_s1.c
! 286c256c3459efc546789e81e66f01ca  libgfortran/generated/maxloc2_4_s4.c
! 7714e423db88b250fd3a0e487e4dbdf3  libgfortran/generated/maxloc2_8_s1.c
! b6be9c5166c23884f06098df629e086c  libgfortran/generated/maxloc2_8_s4.c
! c037f06d5c12d0c777b8a54b162e2590  libgfortran/generated/maxval0_s1.c
! 964f58525bf7e4ae3f056bd1f60e4e0f  libgfortran/generated/maxval0_s4.c
! aefd5aca5907f28b47a4b948143c151c  libgfortran/generated/maxval1_s1.c
! f79c8c7f6932e2b91a594d6e8bc8ca9f  libgfortran/generated/maxval1_s4.c
! 226a17d108556326013fd80edc7739ac  libgfortran/generated/maxval_i1.c
! 17951237e5ce40cda6bea9aebd3d8a34  libgfortran/generated/maxval_i16.c
! 1f3ce946f0073b86b0c702a67598df56  libgfortran/generated/maxval_i2.c
! e35d1ce6fd2ac8ecbcfc9eca65d29947  libgfortran/generated/maxval_i4.c
! a27c480538b359db774b54e99e17ad96  libgfortran/generated/maxval_i8.c
! 363790db9a9faddd2888c48cea3a25c2  libgfortran/generated/maxval_r10.c
! 663a1da7e4995fb3862dd83bb1bcdc92  libgfortran/generated/maxval_r16.c
! 90569277c8b307fc3f3c804beadd3194  libgfortran/generated/maxval_r17.c
! 62732aaa1cac77eb6f3a393cc6472113  libgfortran/generated/maxval_r4.c
! d0ecc7b4606a927f429fae2f1d5dc238  libgfortran/generated/maxval_r8.c
! 11da25c1be5850af87410ea4da753c89  libgfortran/generated/minloc0_16_i1.c
! 56be040f0651589181a9208d5c345a58  libgfortran/generated/minloc0_16_i16.c
! 8d646810d4c4c807c0f3f9ac4a000e12  libgfortran/generated/minloc0_16_i2.c
! 4b8d4c5dcb8c49e796c89e7447510e6d  libgfortran/generated/minloc0_16_i4.c
! 6cebe5105515aad6ea69268de5683da6  libgfortran/generated/minloc0_16_i8.c
! 86ea8caae06d8818bf8100d9781a86a0  libgfortran/generated/minloc0_16_r10.c
! f8e30262483c24aabd9b7229bedd21f2  libgfortran/generated/minloc0_16_r16.c
! 0a98753fd5f96bc4630685ca4fee3e86  libgfortran/generated/minloc0_16_r17.c
! fabe67d458b5328aeadfaf4c135b92a6  libgfortran/generated/minloc0_16_r4.c
! daa3fa4f8dec71273a5a897369ba9375  libgfortran/generated/minloc0_16_r8.c
! 1d876c589be4bba84a30c7fdc4c56976  libgfortran/generated/minloc0_16_s1.c
! 0141f2c28544d5556434f2358e4b795e  libgfortran/generated/minloc0_16_s4.c
! 2d7d64923ba634494a30b5af8cecb8d0  libgfortran/generated/minloc0_4_i1.c
! 09faffbab512e0115729778d59223612  libgfortran/generated/minloc0_4_i16.c
! f7326011378007141c2d532cbcc344c7  libgfortran/generated/minloc0_4_i2.c
! 6f7452631ed4cd1edf2361d323109fb8  libgfortran/generated/minloc0_4_i4.c
! a6b6f65140be15feda9ae48381d7d7b0  libgfortran/generated/minloc0_4_i8.c
! 44bd4a31c366313387f3092f01a5e482  libgfortran/generated/minloc0_4_r10.c
! a455821ab99da50083023676afea1f4e  libgfortran/generated/minloc0_4_r16.c
! 49f2a52b31dfd1cc0d304575509765b0  libgfortran/generated/minloc0_4_r17.c
! d763e106da53b3e5962c0592a0807942  libgfortran/generated/minloc0_4_r4.c
! f6e90642522d301e38430fa4603721ea  libgfortran/generated/minloc0_4_r8.c
! 98a7eacc38df0fab83e3fc22d4273116  libgfortran/generated/minloc0_4_s1.c
! 202cc0fb0609337824956a5b368d8e95  libgfortran/generated/minloc0_4_s4.c
! 1f11842623597eaaca29b84587173b20  libgfortran/generated/minloc0_8_i1.c
! 4832c6bd8a3cebeb76579ea05be615b8  libgfortran/generated/minloc0_8_i16.c
! 3061c366253744425de28593ba0faff0  libgfortran/generated/minloc0_8_i2.c
! 2e49740c5ff62b4e832fb2666f655159  libgfortran/generated/minloc0_8_i4.c
! 32340a05d2445ff14803aee16c086536  libgfortran/generated/minloc0_8_i8.c
! 4c25ad94b18c9e5ce5e0aa7770b22a0a  libgfortran/generated/minloc0_8_r10.c
! 19923250b4cf2baef00aef7c2084f423  libgfortran/generated/minloc0_8_r16.c
! 06981bef6a28776b5bb6d9af6ed54ff9  libgfortran/generated/minloc0_8_r17.c
! 8eaab705d7ba445a14cb34dfb8225d9f  libgfortran/generated/minloc0_8_r4.c
! cce119aae77e1a44a762bdac01d7e6cc  libgfortran/generated/minloc0_8_r8.c
! de79d47957b23cb812004a7d4e001740  libgfortran/generated/minloc0_8_s1.c
! e752f872536d01ffd8f0c0df077a6541  libgfortran/generated/minloc0_8_s4.c
! b1988ee5eeb3b94131808512a0d15d58  libgfortran/generated/minloc1_16_i1.c
! 84dcf1c54b4ea1c0a56d38d7e0eafcb2  libgfortran/generated/minloc1_16_i16.c
! 427f124ba2a949266e3b73c4717c2192  libgfortran/generated/minloc1_16_i2.c
! 569c33734270bebfe8446e21192c63df  libgfortran/generated/minloc1_16_i4.c
! db00cccfb43e8d7555aae80d8dfa38ab  libgfortran/generated/minloc1_16_i8.c
! 767ab5dcc339ed46402238140c3821d4  libgfortran/generated/minloc1_16_r10.c
! c08422a1c64a6c2e11200127f89da74a  libgfortran/generated/minloc1_16_r16.c
! a56ee34e921a131d3a396d494ac3e32d  libgfortran/generated/minloc1_16_r17.c
! d55bd8f1a8754bf8b676b993af46f8c3  libgfortran/generated/minloc1_16_r4.c
! bd28c02381dc125b1e2c9d4ae9f4aed9  libgfortran/generated/minloc1_16_r8.c
! 1432283e46f61c40d86737be61b98b8a  libgfortran/generated/minloc1_16_s1.c
! 0a26c52c0106d35cb3c750b7eeb65825  libgfortran/generated/minloc1_16_s4.c
! 415c74d07a5048c5f20ecb72e8f65f30  libgfortran/generated/minloc1_4_i1.c
! 047d992ff3d74ebf0306825a63ab1fbd  libgfortran/generated/minloc1_4_i16.c
! a117bd16618c9710f3911681f32fd4f2  libgfortran/generated/minloc1_4_i2.c
! 0ab7224d283cdbeb77bab9e1502c0033  libgfortran/generated/minloc1_4_i4.c
! 2fc086344b44e03e136dc5949b66f93b  libgfortran/generated/minloc1_4_i8.c
! 37e75d50892be0d8365ce446a4e5b640  libgfortran/generated/minloc1_4_r10.c
! 069e1f8af360e54fe6ae866b43c3dcc1  libgfortran/generated/minloc1_4_r16.c
! 0f243c52adc93aaa997ffb27099106d2  libgfortran/generated/minloc1_4_r17.c
! ce3d1d3ea8171a911507a0ad76369e48  libgfortran/generated/minloc1_4_r4.c
! af898f81e4278b547b526193f873796e  libgfortran/generated/minloc1_4_r8.c
! 3ff8ce54d4acf75e03b4d60b0e920f03  libgfortran/generated/minloc1_4_s1.c
! 90eac85ef4a48572ee4e6cf9cf921c18  libgfortran/generated/minloc1_4_s4.c
! 2c2b42477a4a98c921bd4905ce4ccc01  libgfortran/generated/minloc1_8_i1.c
! 4464162f30efd58003a056cf7ad50d06  libgfortran/generated/minloc1_8_i16.c
! ddd136269919f969b5e627866af624b2  libgfortran/generated/minloc1_8_i2.c
! e009d35c47a4c6c648b16179f745bbb2  libgfortran/generated/minloc1_8_i4.c
! dbf02419244a20b4bfb13d047bc370a0  libgfortran/generated/minloc1_8_i8.c
! a9c5d0caadad81b121233e1c32582273  libgfortran/generated/minloc1_8_r10.c
! 3815f3b3a38760881d3f5b5b2c0f1111  libgfortran/generated/minloc1_8_r16.c
! c360240d0756b20a54b6243ed5bafcb9  libgfortran/generated/minloc1_8_r17.c
! e92a5c56e2631d88007cc005fbae3fdd  libgfortran/generated/minloc1_8_r4.c
! 21e898ce23b72a4062f2da81d8bdcf5c  libgfortran/generated/minloc1_8_r8.c
! 634b628733336dd061fae2a3f9588930  libgfortran/generated/minloc1_8_s1.c
! 79c39e06e385fc24ad49bf92d0d5442a  libgfortran/generated/minloc1_8_s4.c
! da343ac962d2847454f0f197bf80f9f2  libgfortran/generated/minloc2_16_s1.c
! a289dfebd47d7832c188d80f191087a1  libgfortran/generated/minloc2_16_s4.c
! a861ad510654eb1b21f3d11b5bf32ba6  libgfortran/generated/minloc2_4_s1.c
! d94cd0afa8bfc363f2430059e13e2c32  libgfortran/generated/minloc2_4_s4.c
! b3bee617b296038fea658bf01c455117  libgfortran/generated/minloc2_8_s1.c
! 5c014078c93c6af2d6f42aad983c7f3b  libgfortran/generated/minloc2_8_s4.c
! f6a517a45bd243571b3cfc9357b31f35  libgfortran/generated/minval0_s1.c
! b92f83fe69aa63ae5d0d785b591826cc  libgfortran/generated/minval0_s4.c
! 7062ae684759056ae786ef7b49118056  libgfortran/generated/minval1_s1.c
! ba9c2e497d54a1a060641b4dc6b8f0cb  libgfortran/generated/minval1_s4.c
! 3bd20d9fd715f90236269dc96323431a  libgfortran/generated/minval_i1.c
! 083dfc2f6ca740aa33f3e009b4467609  libgfortran/generated/minval_i16.c
! 9fbe32931316e0dd9189beb2bf558a41  libgfortran/generated/minval_i2.c
! 0406506fd8017e196ddbf27aae70b372  libgfortran/generated/minval_i4.c
! 7e117b21e2df4cc333645d9e2ca5b26b  libgfortran/generated/minval_i8.c
! fc968141f8780b874436e6ee59d29d72  libgfortran/generated/minval_r10.c
! 7eece02161cb5e87eb8d55c01302c18b  libgfortran/generated/minval_r16.c
! 035ecf8608de11e2734a25840a95fade  libgfortran/generated/minval_r17.c
! c9c166ac51e36ba3d032e6038a6dd6df  libgfortran/generated/minval_r4.c
! 92c08a9f4b5fe3d44c4a4bea7a1e097c  libgfortran/generated/minval_r8.c
! 0b5d17bfaf9f4ca2f15604290a7c9d37  libgfortran/generated/misc_specifics.F90
! 70066a751e9c9506c6706da7545f6479  libgfortran/generated/norm2_r10.c
! 8d8a09d8776f2423ceccb45049ba219e  libgfortran/generated/norm2_r16.c
! df8dd51c52cb54eab38df2716940d2e1  libgfortran/generated/norm2_r17.c
! 78da3901f9e778a5f671151cbe92b6c3  libgfortran/generated/norm2_r4.c
! afcb9cfe5f0598a855dad860690185b6  libgfortran/generated/norm2_r8.c
! 212e69ad9bf1600696e32201a29dc266  libgfortran/generated/pack_c10.c
! ccdaffb9f23cac270d78b28d54fa5def  libgfortran/generated/pack_c16.c
! c3770f37b1bc5de44aa17507bca6865b  libgfortran/generated/pack_c17.c
! 2c916e4ef647b60c97d8d69a2afb89b4  libgfortran/generated/pack_c4.c
! 98823de79f79d40cfe94896f3bd75e37  libgfortran/generated/pack_c8.c
! 38836db8bc658d1a00ca0299a2c642ec  libgfortran/generated/pack_i1.c
! 083148a285e44a17017b380252f692d3  libgfortran/generated/pack_i16.c
! 4ac0431c3a4827c4e9ad2d37a6b1f6c0  libgfortran/generated/pack_i2.c
! e8238ef1488d55979b8b802416a09fca  libgfortran/generated/pack_i4.c
! 740cff611dc785e7a882339c8985fcdd  libgfortran/generated/pack_i8.c
! e77670efe175d71cb884253f65031d88  libgfortran/generated/pack_r10.c
! 80777f8a907eaa19d8025889a7748b45  libgfortran/generated/pack_r16.c
! 8722a386c9f3c66b16a583eaabd32674  libgfortran/generated/pack_r17.c
! 77ea33347adb9eea4404e2cea548ad6c  libgfortran/generated/pack_r4.c
! 2048f02e9ac87356dbe95079ce4e6669  libgfortran/generated/pack_r8.c
! dc032ced49818833700388c6a3ae99a6  libgfortran/generated/parity_l1.c
! d7392edf205a5430837b1905cbce0dc2  libgfortran/generated/parity_l16.c
! b38d725aeb04becfdd08c26649b43678  libgfortran/generated/parity_l2.c
! f23e2a81255f812d7f04824917ab367f  libgfortran/generated/parity_l4.c
! 73d0459e4449d55926556174bbbc750e  libgfortran/generated/parity_l8.c
! 701748a6bb36b651433f38bb10d5350b  libgfortran/generated/pow_c10_i16.c
! 38c078cb92381f08fe6a1bc54ae20b4e  libgfortran/generated/pow_c10_i4.c
! 2f41872e9c296a4b49ce55c5c0da6d5a  libgfortran/generated/pow_c10_i8.c
! 95c00cc16fdc7676b4f74e7eb3735a84  libgfortran/generated/pow_c16_i16.c
! bed6570b76a8e5cea1b7148a894680fe  libgfortran/generated/pow_c16_i4.c
! 655409526d41d53f30d9c740f0b49c51  libgfortran/generated/pow_c16_i8.c
! 85186d41282e2e0993d98fe709cdd2c0  libgfortran/generated/pow_c17_i16.c
! 77f70ec6a3be7a74e8eb3fd63194986c  libgfortran/generated/pow_c17_i4.c
! 435be97355eb5af8d4351358b95a0417  libgfortran/generated/pow_c17_i8.c
! 08202e44a2a5db05bfc2f16835d8c589  libgfortran/generated/pow_c4_i16.c
! 41e5069fa9be6f953c3e6cc68b10b617  libgfortran/generated/pow_c4_i4.c
! bf36ce6dfad9388fe1a68128d0162e41  libgfortran/generated/pow_c4_i8.c
! 9a7c0f352e726c36e0c915c8c1729eb3  libgfortran/generated/pow_c8_i16.c
! 8236041cae0958e9eaf9164d9ecb43ec  libgfortran/generated/pow_c8_i4.c
! 708ed47a0c53f79c99cae41e803b6a35  libgfortran/generated/pow_c8_i8.c
! 28f4304bae8ed1e9799971ac89cfaba7  libgfortran/generated/pow_i16_i16.c
! d22506231965f91b64336b230c1702d0  libgfortran/generated/pow_i16_i4.c
! 9972a0c7139a746956f30f50f7d1c0aa  libgfortran/generated/pow_i16_i8.c
! 1207a0356c4e1a5e30d7e5a85361b4f2  libgfortran/generated/pow_i4_i16.c
! 2930e7357227e16009f78c0f07dd5b84  libgfortran/generated/pow_i4_i4.c
! cbc2f1f2c40abe38abe73d80989f577a  libgfortran/generated/pow_i4_i8.c
! ccee587d743e42efe437cdf3dc72466c  libgfortran/generated/pow_i8_i16.c
! baed70d31c20c4c56d477fa48107f925  libgfortran/generated/pow_i8_i4.c
! db322adc1e05c1162b3a42521a766e18  libgfortran/generated/pow_i8_i8.c
! fd227f51b9ac42741f18cd9c3b2f9b74  libgfortran/generated/pow_r10_i16.c
! 61d6e154711e45293a8a72be4eefefd7  libgfortran/generated/pow_r10_i8.c
! 53415af84a20b6536183d71434e2f076  libgfortran/generated/pow_r16_i16.c
! e29ee17882353547b1b20cae54a7dd49  libgfortran/generated/pow_r16_i4.c
! bd02a519caaf8c980cc00a78759f11ad  libgfortran/generated/pow_r16_i8.c
! eb14eafe1c04344ed6ba8ac52f5de413  libgfortran/generated/pow_r17_i16.c
! d742ea139913980a5afa5f4f72c0ca23  libgfortran/generated/pow_r17_i4.c
! d53a8870b17c825d1a0f8b0d13234044  libgfortran/generated/pow_r17_i8.c
! b7f2c4979979549a0f08fa110f92555f  libgfortran/generated/pow_r4_i16.c
! 5db531722f53b3fd1f1911c7e1b5e36a  libgfortran/generated/pow_r4_i8.c
! 40e6b5b8b3900e653e1ba06dba2ba909  libgfortran/generated/pow_r8_i16.c
! 77dbd47d99acb879712841d2e4a90c47  libgfortran/generated/pow_r8_i8.c
! 11e55380dcf991e5a8b32186a31fb8a2  libgfortran/generated/product_c10.c
! 4e56f5021dc2469c0a0795ede4181b89  libgfortran/generated/product_c16.c
! 88150ea99167ca4f6746d63244c1795b  libgfortran/generated/product_c17.c
! 64fecb5f63be7db2bc82a3dd8ce77322  libgfortran/generated/product_c4.c
! 0d052c07127a8014fb7fc96c4d1b94b4  libgfortran/generated/product_c8.c
! 4592c51997755264a61de4d2773e1575  libgfortran/generated/product_i1.c
! 340a02dae5eeed2b88e25c235e8628d0  libgfortran/generated/product_i16.c
! bafd3de70460212cc390b3ed0728e943  libgfortran/generated/product_i2.c
! 54d8762bab19dede35944e3610c942fe  libgfortran/generated/product_i4.c
! 9c8738d0aadc02ae89dd72fecdbe8cee  libgfortran/generated/product_i8.c
! e0a909a58195f31d13cba97ee0ddbbef  libgfortran/generated/product_r10.c
! 3b733535afa65d3cd77a5cc67fc2553c  libgfortran/generated/product_r16.c
! 88f05c002218d7be59a126138d903396  libgfortran/generated/product_r17.c
! e0c8ca2085452e0032ff20fdbf1472fa  libgfortran/generated/product_r4.c
! 8b4c8aa75b12cab08cb3c1c563bfe715  libgfortran/generated/product_r8.c
! 8d38bad821b312c6778a1a3952b0a8ec  libgfortran/generated/reshape_c10.c
! 1380a1b8864828987e5901ec5ef7d303  libgfortran/generated/reshape_c16.c
! 0e61fdd2dad776f0c9ea8d6584230eca  libgfortran/generated/reshape_c17.c
! a6b1beed83b706907dc41949234b943c  libgfortran/generated/reshape_c4.c
! e687ac5418361dfca93f68b0313f7e42  libgfortran/generated/reshape_c8.c
! d7f91aa8273e023db46086a5476c2e8c  libgfortran/generated/reshape_i16.c
! c7389103b142929b6cb18e43662c657b  libgfortran/generated/reshape_i4.c
! 7a4323647391698916803185b7dcefda  libgfortran/generated/reshape_i8.c
! d4b73087b73dc9ec3cfd560b33224557  libgfortran/generated/reshape_r10.c
! 2cc8c3d15de205dab043b6cd507d9494  libgfortran/generated/reshape_r16.c
! cf10220ed1a29068249bef4d643bba78  libgfortran/generated/reshape_r17.c
! 4a7f193b197673b2e2c90f01c86973dd  libgfortran/generated/reshape_r4.c
! c44b5c594dbd1dc214438374aff11152  libgfortran/generated/reshape_r8.c
! 3f56030ba9b6c8b7e1130ae3e3fbfaee  libgfortran/generated/shape_i1.c
! 98a5dad21945667822bd50ce4c29f185  libgfortran/generated/shape_i16.c
! cb04451adb5e5c937c0dc4e25e539fcc  libgfortran/generated/shape_i2.c
! 070cda897cfb9c9fd41e1cfa634a0ee0  libgfortran/generated/shape_i4.c
! 30c03f057197385476b173c1a81655d6  libgfortran/generated/shape_i8.c
! 00ea237958b863621782087c6161c1bc  libgfortran/generated/spread_c10.c
! 066d6c7e733c2867a4c09724eeb75420  libgfortran/generated/spread_c16.c
! 7bc46f85c3ad7b50ca7545303000581b  libgfortran/generated/spread_c17.c
! ee324a17cbb25f1af1d06c270c467f85  libgfortran/generated/spread_c4.c
! 93fc80f8ac77911f98032f7bfc119e70  libgfortran/generated/spread_c8.c
! 6ac348419c535493a15650b38e1d52bc  libgfortran/generated/spread_i1.c
! dc7347451ce47d0b1cab865b068046c8  libgfortran/generated/spread_i16.c
! f7894b568b2380650b30c599e9bec71e  libgfortran/generated/spread_i2.c
! 259dc2ba6d5bf7e348eaee4230f26848  libgfortran/generated/spread_i4.c
! a6d272ec069778a28ab3129539c6e78f  libgfortran/generated/spread_i8.c
! b497cc61aa0c4ed2271da5ceed4e1f71  libgfortran/generated/spread_r10.c
! 73661a5521fb16dc31b9614bcdcf0d09  libgfortran/generated/spread_r16.c
! c0a8af94db29ce3e3185cc25c266cd16  libgfortran/generated/spread_r17.c
! a332c403cbe718889693edcdf7ec13e1  libgfortran/generated/spread_r4.c
! c4bb94ecc3644e4103f791ce7174fee5  libgfortran/generated/spread_r8.c
! d621d353e490d59395bcab1bf8e634a0  libgfortran/generated/sum_c10.c
! d0d68536bfa4eefe9722ecf447af5131  libgfortran/generated/sum_c16.c
! 534292ebac528ea99e5b448ebc81bc4e  libgfortran/generated/sum_c17.c
! 8431c52e7737a2f69c84bc3f36f0f7bc  libgfortran/generated/sum_c4.c
! a181a5684c42d38ef21cb4c5aadf6538  libgfortran/generated/sum_c8.c
! 287b64f7d04f2cc24656f8af79dd2592  libgfortran/generated/sum_i1.c
! cc1cd193aeb0412a20c2182444e0f189  libgfortran/generated/sum_i16.c
! 56ba30418efe5463b571983531d70fa7  libgfortran/generated/sum_i2.c
! 9bbefee5414a75be52a0b227a9ae6628  libgfortran/generated/sum_i4.c
! da4df15920198fbb43cb48fe7235076c  libgfortran/generated/sum_i8.c
! 2cf67f4f8d7971553eb525d45c3e7ef8  libgfortran/generated/sum_r10.c
! 1876cfa37efd91919e32831071f2250a  libgfortran/generated/sum_r16.c
! df4dea61a560135b66d7a14f6c70b2a0  libgfortran/generated/sum_r17.c
! c3dda257f36b51ae28a43997f7cd9776  libgfortran/generated/sum_r4.c
! fb62dbd766870b3113f424117f86f59f  libgfortran/generated/sum_r8.c
! 0c52b9028e107e400c21345048affdfb  libgfortran/generated/unpack_c10.c
! 67490431f85f61145880b681a98180ee  libgfortran/generated/unpack_c16.c
! 8ee510d6bbd2d792c8f02bbefd55cde1  libgfortran/generated/unpack_c17.c
! 086a0e0d95d63ee5ca8f3783c483a033  libgfortran/generated/unpack_c4.c
! 643b1c1f83fdfa42faf9deedb2443cd1  libgfortran/generated/unpack_c8.c
! 10c9ab22033beb817aba7cfbce94b703  libgfortran/generated/unpack_i1.c
! 2923c6a08d85642d96d0a085b8163346  libgfortran/generated/unpack_i16.c
! 3e52f1bed108126ea0c3810452d90c39  libgfortran/generated/unpack_i2.c
! b19b045e41a84375f9e4f26354215abc  libgfortran/generated/unpack_i4.c
! 3b576dbafe0adcc52c5bd767a08bee95  libgfortran/generated/unpack_i8.c
! f459964ef1adcc0b37022cd8e59ddca8  libgfortran/generated/unpack_r10.c
! ef49376e512477111bf2e464fdfe8c80  libgfortran/generated/unpack_r16.c
! d041c71f2793b9c021c5fb462428cff2  libgfortran/generated/unpack_r17.c
! be05fe9c27b321605147e55bb5f7b686  libgfortran/generated/unpack_r4.c
! 997032b0510505b60596a9aa0843efbd  libgfortran/generated/unpack_r8.c
! 6047b324cdf9582fa357ad03af8413d0  libgfortran/gfortran.map
! 055b8efa0dff1369e110bd116c10bbe9  libgfortran/ieee/ieee_arithmetic.F90
! 9066096b7ac44f81786302d11e84670f  libgfortran/ieee/ieee_exceptions.F90
! 35cb0f0e42aa7f8c2415e890bada8516  libgfortran/ieee/ieee_features.F90
! c4fcf0eaa4c4e7eb0b4ec1602e128b73  libgfortran/ieee/ieee_helper.c
! d08b01c0dc91ecd26a7669ba42d281b8  libgfortran/intrinsics/abort.c
! 27a0dc516aaaf2d3874621499a46e607  libgfortran/intrinsics/access.c
! c80eccb1f791b937514452f4eb1288b9  libgfortran/intrinsics/args.c
! df4921567ab7370371869d2f5a627f66  libgfortran/intrinsics/associated.c
! cd02206976f9bcc5d879efcc9c0a2d79  libgfortran/intrinsics/c99_functions.c
! feb060b485964a6f35bf264f796e43b1  libgfortran/intrinsics/chdir.c
! 7972e586a9f6670aa340d5b15fcadf5c  libgfortran/intrinsics/chmod.c
! af8fd6a33cd2f85bc687ebc1a241c9ac  libgfortran/intrinsics/clock.c
! 761313e30dc0b21de145ec610f066ae8  libgfortran/intrinsics/cpu_time.c
! 9447b9569bbe845149ee73c207a56f6c  libgfortran/intrinsics/cshift0.c
! 91001ade201f9d9a91d31dad04013277  libgfortran/intrinsics/ctime.c
! e1f413cca6fac7c290ce41621d0d938f  libgfortran/intrinsics/date_and_time.c
! 6269a357e19e1dc713a3a48b9b138f73  libgfortran/intrinsics/dprod_r8.f90
! 5dd339b69ed0c3b0d832d425c6da2347  libgfortran/intrinsics/dtime.c
! 02d2b09d8ecc644693cef508c0fa9991  libgfortran/intrinsics/env.c
! 287f67051fa213992b56647fe6691199  libgfortran/intrinsics/eoshift0.c
! da554ed323cc545e89fbd2c24dfcf67e  libgfortran/intrinsics/eoshift2.c
! 11041756a471afca25976d2a4e2b8691  libgfortran/intrinsics/erfc_scaled.c
! d5a89af6c675e11091db796648c93e20  libgfortran/intrinsics/erfc_scaled_inc.c
! d891380bb39a5752d76edc3225d9c0f3  libgfortran/intrinsics/etime.c
! 8a51df901bf643ecd57613b8b1ec7534  libgfortran/intrinsics/execute_command_line.c
! 81a6796e2d0a57408929e783136a3e4a  libgfortran/intrinsics/exit.c
! bdf05dd5310030dda72ec1fe911585af  libgfortran/intrinsics/extends_type_of.c
! 47eec058e3b4e2cb54fe58922443f65c  libgfortran/intrinsics/f2c_specifics.F90
! 94bd342a4a06cae77f1af28bfc83cc23  libgfortran/intrinsics/fnum.c
! 7bb901e9f631fbad727c5aed9f41e00f  libgfortran/intrinsics/gerror.c
! ea181f6bb99f6d46495dd5838d588418  libgfortran/intrinsics/getXid.c
! 5e07db94446d2681125992a06c8c8df5  libgfortran/intrinsics/getcwd.c
! 96e2676066f6d39520ca8f5112e897dc  libgfortran/intrinsics/getlog.c
! 94033e5013cba735d5fee81b2d03255c  libgfortran/intrinsics/hostnm.c
! 7e743cbb56440d07bde1bfda8a6f22be  libgfortran/intrinsics/ierrno.c
! 2c0b10094f116b58d534dd02d1209515  libgfortran/intrinsics/is_contiguous.c
! 48e0e3e45f9046685fbdbc4af8600ff4  libgfortran/intrinsics/ishftc.c
! ed7bd4288ce8abf226e087f77fadf74a  libgfortran/intrinsics/kill.c
! 99fba0cbc1ab3cc0b685eb3ba61ea658  libgfortran/intrinsics/link.c
! 5a73d7c9991938c1a1636054010b81e9  libgfortran/intrinsics/move_alloc.c
! e0816d061ba029a12007eeb5fb46f0db  libgfortran/intrinsics/mvbits.c
! 237b78bbbb42f6333b0bc0fa832c8f0d  libgfortran/intrinsics/pack_generic.c
! bdb94b55d37edd16be21e7de6aac6d44  libgfortran/intrinsics/perror.c
! 836abcaa58f5c7208a11f5fd66891a76  libgfortran/intrinsics/rand.c
! f015abc89e01fca3c144cc3f3ba8d814  libgfortran/intrinsics/random.c
! 54986bf206b5b857d04267372f9d6784  libgfortran/intrinsics/random_init.f90
! 1bbd1e2286f7329f7fd736c783423ea6  libgfortran/intrinsics/rename.c
! df57a066dd903d9c4167596d00159d4d  libgfortran/intrinsics/reshape_generic.c
! 66652cdb0d8fbdb5f03f3ec70feb2b25  libgfortran/intrinsics/reshape_packed.c
! 74b450689819f72f3d48203cba98d599  libgfortran/intrinsics/selected_char_kind.c
! 122f7a173d1189a4fc2a899570b8135e  libgfortran/intrinsics/selected_int_kind.f90
! a011c865aaab50976965fd0d39aaa58c  libgfortran/intrinsics/selected_real_kind.f90
! 957d3a350a5668200e76e75db0e446b9  libgfortran/intrinsics/signal.c
! 4be954de4169eb94fc5b79bfc8c28d10  libgfortran/intrinsics/size.c
! f445a2a758e625e5cfad6b668d7a911a  libgfortran/intrinsics/sleep.c
! 6d65f62887b53c32506ff7c556515ad4  libgfortran/intrinsics/spread_generic.c
! ecbb7cd9d461afdf72edbf7ec1e83bbe  libgfortran/intrinsics/stat.c
! 9a64d2add4ef5ca616ceb24293ed585e  libgfortran/intrinsics/string_intrinsics.c
! 9b0928a5e17115737d1410038d48741a  libgfortran/intrinsics/string_intrinsics_inc.c
! 2ca9862be360f10071be791023ba226a  libgfortran/intrinsics/symlnk.c
! c40739a381259ae23d4f9b78b71e776e  libgfortran/intrinsics/system.c
! 149b973a05f9c6b5837eed39ad8f0bd0  libgfortran/intrinsics/system_clock.c
! f6233b629e217c1f3125252a3302888e  libgfortran/intrinsics/time.c
! 89be385aa1da64da8cd000981c8afb0a  libgfortran/intrinsics/time_1.h
! 10f8164f139018045f1f4f7d27f8bce2  libgfortran/intrinsics/trigd.c
! dd1141191f34346cca768ccd48909437  libgfortran/intrinsics/trigd.inc
! d6efad2fa5b6d25160113f5c2d2c3e81  libgfortran/intrinsics/trigd_lib.inc
! 83172a762cec273cf52848d5e4867c07  libgfortran/intrinsics/umask.c
! 1139a86b4a8753e572ff45dc0df6724e  libgfortran/intrinsics/unlink.c
! 0b48fb78aac38a0042fc3982d536910b  libgfortran/intrinsics/unpack_generic.c
! 8e5f1fdf0206325789ba30b5d7b9e8ae  libgfortran/io/async.c
! f1b55334aa08e4a9656ae7f9b86b4f8d  libgfortran/io/async.h
! 90ed96c1a267b8bfd357cda77b85414c  libgfortran/io/close.c
! d11d44b00a3cb1969fabb89194fce482  libgfortran/io/fbuf.c
! 49f6bc1bcf22cb20a15f0f53e64e3356  libgfortran/io/fbuf.h
! 94ec422dc217677b7c0c69ed787af7bc  libgfortran/io/file_pos.c
! 26d0704b2527b5ea7b76d3345dd6d611  libgfortran/io/format.c
! d84d231c04af4614dd9e28be87e05b1f  libgfortran/io/format.h
! 64e956135925903d17274d1df4c3c48b  libgfortran/io/inquire.c
! 4e4f53db5482e9b5207042f265419439  libgfortran/io/intrinsics.c
! 69200689654733c70bb3b6defa881b76  libgfortran/io/io.h
! 1de3d6d4d1b39adf5a8cbe9b457bbfdd  libgfortran/io/list_read.c
! 21ac9cecd79006ff6c4f8b2eb49382a0  libgfortran/io/lock.c
! 6fe4b3a0cbe866f7de74625f5596f210  libgfortran/io/open.c
! d01f39d2623c0b8272914fef4d0ac7aa  libgfortran/io/read.c
! fe2e22abf678f5d6d9a34c39a41bcdee  libgfortran/io/size_from_kind.c
! a5957dd8e0041c6da7b73a95e5d2d7fd  libgfortran/io/transfer.c
! 2238bdc6040948236828b74fd1c21f85  libgfortran/io/transfer128.c
! 43dd50a0e3b8ef9864a300c2b4beb295  libgfortran/io/unit.c
! 9edfb16de7691403cb43d9e7c443a685  libgfortran/io/unix.c
! 7b63d00cb1b4bca2ba0c1bbdf37d6190  libgfortran/io/unix.h
! 9c77fe2984f42ec49017cf30626892c1  libgfortran/io/write.c
! 01015b84777936b11b5db5bacb87cafa  libgfortran/io/write_float.def
! 90514a98f3de8cd15fb4a34551891e2b  libgfortran/kinds-override.h
! 7c67b16a135257e94558e9a4a986b02a  libgfortran/libgfortran.h
  387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
! 0a10d2fe710046a4d98308c8bbe8ae1b  libgfortran/m4/all.m4
! 617f52cf5e0d59aa85ba4266296fe05e  libgfortran/m4/any.m4
! 9de9d2dae4e921ed937b510010f628cc  libgfortran/m4/bessel.m4
! 72f1cd8c057e7ec05c8a1221609070ca  libgfortran/m4/count.m4
! 058a25b37edf23327a8f3012e198258c  libgfortran/m4/cshift0.m4
! a6a274adb1df94b6c277e2cfeee1a282  libgfortran/m4/cshift1.m4
! 570c35a831ac5be2fcb47df42f128f04  libgfortran/m4/cshift1a.m4
! bff32305d0bec51b936516a93c3f3e98  libgfortran/m4/eoshift1.m4
! d4837f629e00289b42506ae997dc8db3  libgfortran/m4/eoshift3.m4
  a70290662a995bcc0ff8ac868b6eddda  libgfortran/m4/findloc0.m4
  22271fa12e82c61051f302c3a5072376  libgfortran/m4/findloc0s.m4
  111ea74dceb547cbf63c12832d73d5f4  libgfortran/m4/findloc1.m4
  be432b0e528c65667e6d736e1537515d  libgfortran/m4/findloc1s.m4
  62c4506b866cb09ea489c455e7c2e8bf  libgfortran/m4/findloc2s.m4
! 6a2c6873f485089bfb4869ac7a3f6ec7  libgfortran/m4/head.m4
! 28880181c582e5571c541f34c14c5a34  libgfortran/m4/iall.m4
! abb53196394ee3a9c411949ae9458436  libgfortran/m4/iany.m4
! afeeaf8dc7f1645eef2978dc1bc558bc  libgfortran/m4/ifindloc0.m4
! a9c83a955705ca623049c26bb9a16165  libgfortran/m4/ifindloc1.m4
! 68d4e0f33849e74bb43c55c169324afc  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
  1512a0bd7ebcf39fdd9d1897042d6d6d  libgfortran/m4/ifunction-s.m4
  ae6c5100027c00b1dee83df8a20d56ac  libgfortran/m4/ifunction-s2.m4
! 16a0e345a100895cf0ec39166e09e5e8  libgfortran/m4/ifunction.m4
  10f323195ca3a220ce7b74b132d15fd7  libgfortran/m4/ifunction_logical.m4
! ce611bd2f50aaae304fcf98b3f8c2f0e  libgfortran/m4/in_pack.m4
! abfc023c9bff0e59dec6fef67457e5d8  libgfortran/m4/in_unpack.m4
! 03d9cb73f847cee2a4033f36efcf8b63  libgfortran/m4/iparity.m4
! 931d3e6134be8b18f8fd4b755b0f33cc  libgfortran/m4/iparm.m4
! 1696ca78ea2b84c0b183459b7d345811  libgfortran/m4/matmul.m4
! f90a0613ba9c7910fede3029a8db5527  libgfortran/m4/matmul_internal.m4
! 9549918f202eccefd9f844feebfa1522  libgfortran/m4/matmulavx128.m4
! f55ab938ae449648d633f4bb5d5c939f  libgfortran/m4/matmull.m4
! cc5dab19abf6522bc987ccb9c922dca3  libgfortran/m4/maxloc0.m4
! 3b456f29a7cdb2270325dc91d5471787  libgfortran/m4/maxloc0s.m4
! 5fb7122eea65fac7d173491f6416e427  libgfortran/m4/maxloc1.m4
! e988be09163f694b763fae1ffeaa7f28  libgfortran/m4/maxloc1s.m4
! cceba3884095d0eaaa8eb349b2035ebe  libgfortran/m4/maxloc2s.m4
! 205d49f646f31d2d169bf466178906f0  libgfortran/m4/maxval.m4
! f1a2b8c8046423c58d9fb99bc29698af  libgfortran/m4/maxval0s.m4
! e1fb783a9780e4cb4468a147fdf3ece8  libgfortran/m4/maxval1s.m4
! ae6c27a5efec6b813c20a7338c924e38  libgfortran/m4/minloc0.m4
! e0db65efd5541ed284ee8e8188b5b7e8  libgfortran/m4/minloc0s.m4
! 23d6d83d27dbe42746bbc15be1ec83da  libgfortran/m4/minloc1.m4
! 3409abe100b23ae7aa92e9ecbb55a562  libgfortran/m4/minloc1s.m4
! f64eef67f146508f5f4d0146356085c5  libgfortran/m4/minloc2s.m4
! cb74f79a85702612521129f3f044b297  libgfortran/m4/minval.m4
! 05b15f04af35b06c69b77566da81a5ac  libgfortran/m4/minval0s.m4
! 70e6fdadb9807835b5e9e65f579543a7  libgfortran/m4/minval1s.m4
  6d8cbcd1d1489f643839e7ac2c00a736  libgfortran/m4/misc_specifics.m4
  70d9300a1cebaef5ef324dad027b2fc3  libgfortran/m4/mtype.m4
! e43d2f51601c36d5a8f88352924a6833  libgfortran/m4/norm2.m4
! 7ff06deee5bbb48a7e00b5144d0e0f58  libgfortran/m4/pack.m4
! 117cbf79568c22d3a762e3f2b86affc0  libgfortran/m4/parity.m4
! e0e8e3d97b07f9a762df66277fe1f97c  libgfortran/m4/pow.m4
! ec8754f7a7e3de91f4ebd6c9c94d2a2e  libgfortran/m4/product.m4
! b96bb65163ea7106d1338fe4762575a9  libgfortran/m4/reshape.m4
! 677b3ce7f8cfff3be2080a1099df5643  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! 901fda7d189b06070636fce8a9563479  libgfortran/m4/spread.m4
! 59c2adcb4cf7529534829c143c2aa4e4  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
! d498bcfd635d78d5d2f74752f52732f6  libgfortran/m4/unpack.m4
! 1661b058a524a21873b501b1d9d972a6  libgfortran/mk-kinds-h.sh
  5cacd438c86553689eda2ce3d5623b45  libgfortran/mk-sik-inc.sh
  f8813ac773f6f6eb0ea6ecb287fb9250  libgfortran/mk-srk-inc.sh
! cf932ebb78b6e966dfe0c1ad0aaf6a4f  libgfortran/runtime/ISO_Fortran_binding.c
! 16494b872bc4ac5bd8a79a4ef4bcdd5f  libgfortran/runtime/backtrace.c
! 7f24efb008643e5cb7a7277e2120b8b0  libgfortran/runtime/bounds.c
! 738808a3ffc614e0fae0354e9f7b2545  libgfortran/runtime/compile_options.c
! 5654a8eab0fa79a110543187e0483127  libgfortran/runtime/convert_char.c
! e80fa3a24cdb7f0b210131f2fcc97af6  libgfortran/runtime/environ.c
! 18d740014f0b14c915f6c157510ea3c6  libgfortran/runtime/error.c
! 594c19ec7f5219b4c776c6e697fdf37c  libgfortran/runtime/fpu.c
! 378b181e43c111640d8ea871dc38bf65  libgfortran/runtime/in_pack_generic.c
! d56bd2acd81e572a1036a448f6e1f457  libgfortran/runtime/in_unpack_generic.c
! 66b21c868c45bd8c46b8e7746b84caea  libgfortran/runtime/main.c
! ec1ab6888793bb2ab3b6c8ebd3379546  libgfortran/runtime/memory.c
! e213bd65778f448065eda05d2e956cd9  libgfortran/runtime/minimal.c
! 9e80df5b7bac6299b6550936daa64dc4  libgfortran/runtime/pause.c
! ee8f314f67e6497239480f9e2a2a28a9  libgfortran/runtime/select.c
! 534c7a1ea44abe05a1a2bf8ae65eaf77  libgfortran/runtime/select_inc.c
! 7bf0cd1b3dbc67602275fca7b640fc35  libgfortran/runtime/stop.c
! 31ea40dff09a1f6657e0bd285cbabb9a  libgfortran/runtime/string.c
! 9122cd7fa17ff68e5ddbb8809e61587d  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! 29620b9c0cac0900c1629a043f9929c2  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! 3ce48f1057a820e8b1f37473c4362bc7  libgm2/aclocal.m4
! 090b090834f674319c9941418b902d11  libgm2/config.h.in
! f074dfd02ab3df0c6dbc6cc6afb96746  libgm2/configure
! 8ad70386caeaf5f65048f722e9faadbe  libgm2/configure.ac
  8cc7e77ebeeff228932145d5e583e1f7  libgm2/configure.host
  2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
  f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! 449d32379e2a9fbe240c57d2f51e4e4a  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
! 1f06a5aa78117852f125ffe8c8925116  libgm2/libm2iso/ErrnoCategory.cc
! 3ee11ef33d74600124af9d68ce66ccc3  libgm2/libm2iso/Makefile.am
! ed1c1f4dc9b122566cb3a18dc92c6420  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
! dee1d42a787fb16e7131d6133ebff6fb  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
! 0c6fafec8fbf7be12c2c90df42ad003e  libgm2/libm2log/Makefile.am
! 71fafeeaebdee51b48ae7b5abc3e23ff  libgm2/libm2log/Makefile.in
  36f227f41f6cb4fc9bd5eaa5345378f3  libgm2/libm2min/Makefile.am
! 3e41e67ff2e6c725c18e5fd8a8801ca7  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! c2cea9accad41239de7dcf8c166c29de  libgm2/libm2pim/Makefile.am
! 85782651b09561491f6978cd2a473c54  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
--- 119779,120816 ----
  a25a190e02c8ba2caa2c3dee224eba51  libgfortran/ChangeLog-2019
  561d7b7050b65ea8eac91bc825d5a816  libgfortran/ChangeLog-2020
  14d3ee4271b29519e2e38d5f4214dcc3  libgfortran/ChangeLog-2021
! 96575688a5b9b3eadc49b04c1a378000  libgfortran/ChangeLog-2022
! aa424ddf6a9e4e08b8023d3d5b371a0d  libgfortran/ChangeLog-2023
! 09537a69736f655d1e0ccf28367d3ddf  libgfortran/ChangeLog-2024
! 16ba29cf4184ed00d26fe02df17c83d7  libgfortran/ISO_Fortran_binding.h
! 44aefb120ad00e6d4eaf97832a3e0a72  libgfortran/Makefile.am
! a3dd5473adb7fc60c0121b193324d835  libgfortran/Makefile.in
! 43f0b2981fb15d556a8ee8292ef70ba8  libgfortran/acinclude.m4
  77dad7b87b2adfbfda676696055ef90f  libgfortran/aclocal.m4
! c89d50fda6cbf50698f2d324f8a6ec7e  libgfortran/c99_protos.h
! 024f251b214bdf462562d8e81b830c4b  libgfortran/caf/libcaf.h
! 482902a583e35b98bb90348a36ac4974  libgfortran/caf/mpi.c
! e55a4f2a46cc928bfe7c68452247f485  libgfortran/caf/single.c
  8ae52aba7942d5b5531d2d61328be165  libgfortran/config.h.in
! 5e865fd0c5d10dfb725cb1136ae75cb1  libgfortran/config/fpu-387.h
! d205944c99f5ca7bdb3b034ef38d4709  libgfortran/config/fpu-aarch64.h
! 9c768e7e407fd8895216c49aa4eedda4  libgfortran/config/fpu-aix.h
! 2684b65de06e2b188a97822dc5ca075b  libgfortran/config/fpu-generic.h
! 6576b5981f3d5dda00df79fcdc5e62fe  libgfortran/config/fpu-glibc.h
! a55ccf6890d641d3f0db92bf916d7acb  libgfortran/config/fpu-macppc.h
! 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
! bb7f76512fdf15f54d9bbc3e93bb485f  libgfortran/generated/_abs_c16.F90
! 2e1bb130fc36f8ea9cb045ccbded8d81  libgfortran/generated/_abs_c17.F90
! f4a0172c25aa5bfe0571778526283e88  libgfortran/generated/_abs_c4.F90
! e0600cd3d2d8c82e193baa797ad0db7f  libgfortran/generated/_abs_c8.F90
! 3e3c213aaba2c41e1090d80ea19269fa  libgfortran/generated/_abs_i16.F90
! e683f9e7c7f553d8b1d5b6a82bba5666  libgfortran/generated/_abs_i4.F90
! 79191bb06cca8ff7490d721bc9cd986b  libgfortran/generated/_abs_i8.F90
! 644398d7ac1dbdd588bc327ca814aef8  libgfortran/generated/_abs_r10.F90
! 6c84fb0a77e86360c1d5f9e851fe05a6  libgfortran/generated/_abs_r16.F90
! a14f1b078b927e896c65a71b93774dba  libgfortran/generated/_abs_r17.F90
! 9817d1156fdad9b64c9c85a7f6ef8c8d  libgfortran/generated/_abs_r4.F90
! de1c89bfda1b5e257b6e80f1f8a622d6  libgfortran/generated/_abs_r8.F90
! ddb566c6039eb7b1cc7c225457f9a16b  libgfortran/generated/_acos_r10.F90
! d1c279f832aa52c140e725ba62f65b4a  libgfortran/generated/_acos_r16.F90
! b9c5dc243396a32d061c06d8d76ca798  libgfortran/generated/_acos_r17.F90
! bb74e4b8af9ce1c94e0f0d85134d7caa  libgfortran/generated/_acos_r4.F90
! dca4a184684e764193c38ef985958f65  libgfortran/generated/_acos_r8.F90
! 652c27b2d22052c7b66ffefa2c5b41c6  libgfortran/generated/_acosh_r10.F90
! 09acd4010666640c0679a2390636e6f9  libgfortran/generated/_acosh_r16.F90
! 287348d15337ee4ba5cc1a69493f9e4d  libgfortran/generated/_acosh_r17.F90
! ed3ac90e5373024755f479e182327431  libgfortran/generated/_acosh_r4.F90
! 46b96cccb5384169bba2168938e62346  libgfortran/generated/_acosh_r8.F90
! 5e48ea645f2a1ef6ca3f2c9a0c56f0d9  libgfortran/generated/_aimag_c10.F90
! 10dc297e05732c891b7ac8633057c452  libgfortran/generated/_aimag_c16.F90
! 4fd5e5dd51d05385e4d9c983ba44445f  libgfortran/generated/_aimag_c17.F90
! 5d34eea5936a8ae6b0c88e369a708044  libgfortran/generated/_aimag_c4.F90
! ae24de04dbe4c1d2b89149b392d65e95  libgfortran/generated/_aimag_c8.F90
! 46df4a9ec298497de4ad475d25533907  libgfortran/generated/_aint_r10.F90
! c76118a907c03655d9c5f8a3580b8f91  libgfortran/generated/_aint_r16.F90
! a7d67c6917102d095bf18ff88bfdd041  libgfortran/generated/_aint_r17.F90
! c5517ae464e52e5b349fbad3e7015589  libgfortran/generated/_aint_r4.F90
! 08b9140497757608878e707e90b9f723  libgfortran/generated/_aint_r8.F90
! 968ae4d689436b9751244414984f54a4  libgfortran/generated/_anint_r10.F90
! f6adb5fd1e6a4694637128394f77275b  libgfortran/generated/_anint_r16.F90
! 8282a6025d89928533ec508a00527680  libgfortran/generated/_anint_r17.F90
! 625dff2816d1dd497a075e6463d1247d  libgfortran/generated/_anint_r4.F90
! 8126ce816b5a177ced976d3c8d808f93  libgfortran/generated/_anint_r8.F90
! e2f9573b94eef008bc6aa7cdc909df39  libgfortran/generated/_asin_r10.F90
! 6f96a98511620d58fb72d40dc51a0e6c  libgfortran/generated/_asin_r16.F90
! c05ca936bc7944ecd16abd0412513239  libgfortran/generated/_asin_r17.F90
! acbffcec08095d873b8c56db12bb68bc  libgfortran/generated/_asin_r4.F90
! 3339b8faa6c83e6e4fcc4cc119a66126  libgfortran/generated/_asin_r8.F90
! 0134be9ecd07650344e79df24ccb346c  libgfortran/generated/_asinh_r10.F90
! 37738ca7c8f22c29a96d30b379f15a13  libgfortran/generated/_asinh_r16.F90
! fab6c6d138a0e1d24c65d94f0a944835  libgfortran/generated/_asinh_r17.F90
! 447bbee29ec49089bd52d616c164baf2  libgfortran/generated/_asinh_r4.F90
! 1b4b96bb1c24653d460a9063e873444a  libgfortran/generated/_asinh_r8.F90
! 361da2675a521c03ac7ac17420a89237  libgfortran/generated/_atan2_r10.F90
! f83c54f159d476050d4170842237c2f5  libgfortran/generated/_atan2_r16.F90
! 0ba66b7616b28a5da211b2c40afaef2a  libgfortran/generated/_atan2_r17.F90
! 37823001a057a1a1c6d2d712bdf4ad97  libgfortran/generated/_atan2_r4.F90
! 538c0804e07128e708fe646c7c20ed01  libgfortran/generated/_atan2_r8.F90
! 358b5e952bf46edd1f430027fe6202eb  libgfortran/generated/_atan_r10.F90
! beb79c201f8c9532390f58dc4a894fef  libgfortran/generated/_atan_r16.F90
! 2b871cd526c0004614bd89bc1eb7b209  libgfortran/generated/_atan_r17.F90
! f7d348c92657ad046dda87361d46df03  libgfortran/generated/_atan_r4.F90
! eeda05429e10764616a7fa5096b87f15  libgfortran/generated/_atan_r8.F90
! 05aa99cf5f032e34cbd46dfb2e262537  libgfortran/generated/_atanh_r10.F90
! 9186b9281a84811afd95b903676a0cb2  libgfortran/generated/_atanh_r16.F90
! 8465ebd62819a698197ff8961edd213d  libgfortran/generated/_atanh_r17.F90
! e8e89dfaa215ca96901233b7c19fa1f6  libgfortran/generated/_atanh_r4.F90
! 97362163dc807c49fdc27a659fe445e5  libgfortran/generated/_atanh_r8.F90
! 86326fccd46f0623bd765d6ebd24663f  libgfortran/generated/_conjg_c10.F90
! a49068ba239e1d28a2fe0d6b9322e943  libgfortran/generated/_conjg_c16.F90
! 3ded53754e900d14c7ba507c69242a01  libgfortran/generated/_conjg_c17.F90
! 92b7a513c94d4ada0a8c0dc6872716d0  libgfortran/generated/_conjg_c4.F90
! 7efa702980fe9de546aef0007d115b8d  libgfortran/generated/_conjg_c8.F90
! e7161135af3e5a0059935d29fe25e069  libgfortran/generated/_cos_c10.F90
! 03f7f68339adda5e8a8a3af197494c25  libgfortran/generated/_cos_c16.F90
! 965ff2566dc5b7c2129649f75713a621  libgfortran/generated/_cos_c17.F90
! 6a2398a7f211e5547629209e85f95a97  libgfortran/generated/_cos_c4.F90
! 89cea2804d9832804a78afa9715173e4  libgfortran/generated/_cos_c8.F90
! d1d732a26572e421908fc9f7e58d7ce8  libgfortran/generated/_cos_r10.F90
! aa0f3c6db54d8f9afb3a5281fd1016d4  libgfortran/generated/_cos_r16.F90
! 4a64a55b5d711ae7283c5dab38c8ecd5  libgfortran/generated/_cos_r17.F90
! e30abcf862e6b6d41c6f89b88f252139  libgfortran/generated/_cos_r4.F90
! 315410fc7ae0e00f3648803ffe35e7d6  libgfortran/generated/_cos_r8.F90
! 03199fd8409b4d05e5076eea45a31860  libgfortran/generated/_cosh_r10.F90
! d51031bb3e3f7a490b7aa39b28c643ca  libgfortran/generated/_cosh_r16.F90
! 6b1e95d3888a19cef57c93dfc466f373  libgfortran/generated/_cosh_r17.F90
! ed2917fb7433f7daf7cdf2cc99a5ecc3  libgfortran/generated/_cosh_r4.F90
! 50ebd96a7879a86e4aa3f1b0a1ea4aca  libgfortran/generated/_cosh_r8.F90
! 4d3766a3df9031217d010dba90b40839  libgfortran/generated/_dim_i16.F90
! 50a4275866d90cf848a46acf197c3c4d  libgfortran/generated/_dim_i4.F90
! 96224e7d654587f13f277e1c77705716  libgfortran/generated/_dim_i8.F90
! f6b39175a19e403e36b91ebd85478577  libgfortran/generated/_dim_r10.F90
! 2769122ff89ca3ed511d37d714b8fc28  libgfortran/generated/_dim_r16.F90
! a8746f1c0abbe3ab5612e9183115c475  libgfortran/generated/_dim_r17.F90
! 96a6cbe397c32f395ba6514cb388047e  libgfortran/generated/_dim_r4.F90
! 654ee0fadc8d400aca6899fe4ac8af65  libgfortran/generated/_dim_r8.F90
! 27de7c9ef094c180d47943e71346ecb7  libgfortran/generated/_exp_c10.F90
! c6c57371e8057cbaf44eb67f056cb6f7  libgfortran/generated/_exp_c16.F90
! 15b553330700c54ffe171a01b9a6cac4  libgfortran/generated/_exp_c17.F90
! ba70a2dfc1397e55d8e50473064fdf45  libgfortran/generated/_exp_c4.F90
! da4ce4e1a7a988bef046b5554dcdd06e  libgfortran/generated/_exp_c8.F90
! 09dcfd9dd535bca48f8c870afac3f8c8  libgfortran/generated/_exp_r10.F90
! b0bfbb28b34c6f49cdaffc795239fffb  libgfortran/generated/_exp_r16.F90
! a99df8d1090eaa910821ab643b8ff68c  libgfortran/generated/_exp_r17.F90
! 1e5f9f1bd8fb8f3af4783b84eed37390  libgfortran/generated/_exp_r4.F90
! 0bc0ef04c77a22174e92b9ee20558905  libgfortran/generated/_exp_r8.F90
! f77dc03039759b8812a985a669775091  libgfortran/generated/_log10_r10.F90
! f3bfe9121596fc6d4941e63430e0e573  libgfortran/generated/_log10_r16.F90
! 1fe62bb92e69ec545b2017ec52a818a0  libgfortran/generated/_log10_r17.F90
! d1285ca579adc7c8663251fd95ca3687  libgfortran/generated/_log10_r4.F90
! e953f68738108edef8ba33b63a61fa09  libgfortran/generated/_log10_r8.F90
! 814a8acdc16333f640c288221f4fdc36  libgfortran/generated/_log_c10.F90
! 5ad3f941cb97e0953170ab5975e6e8a4  libgfortran/generated/_log_c16.F90
! fbe387eb37b61a7680bc6dd19f6360ec  libgfortran/generated/_log_c17.F90
! c8a84d1c2dffa80f2bb528ecb9c531d0  libgfortran/generated/_log_c4.F90
! 0b1c5568582e39a3c5bf8f2bf25d2480  libgfortran/generated/_log_c8.F90
! 03da2e3882c11866be179c0e7324d922  libgfortran/generated/_log_r10.F90
! f4a5f58f5887ef31ed6d37e34702b40f  libgfortran/generated/_log_r16.F90
! 3bee0d3195273d89c7f8eda70e498f92  libgfortran/generated/_log_r17.F90
! 2915a35d4cc2fde210eec16a626e66f9  libgfortran/generated/_log_r4.F90
! c9823882323aabb813bdafae70f048c3  libgfortran/generated/_log_r8.F90
! 659d54ad2990a9d19f6d577e9c6de093  libgfortran/generated/_mod_i16.F90
! 2d20e64facf442a95be3f076c87b88ee  libgfortran/generated/_mod_i4.F90
! ceec779ae46ac78f4abbe676a4537eb8  libgfortran/generated/_mod_i8.F90
! 3ca567ccd6f19119979d6b63b628c3c5  libgfortran/generated/_mod_r10.F90
! 766edc4d3e5fdaced43e28c574c8fbdc  libgfortran/generated/_mod_r16.F90
! 31e60ee8c3c24f720287f596d1768dd6  libgfortran/generated/_mod_r17.F90
! 9c57a93f88b064330886ab217d1901c8  libgfortran/generated/_mod_r4.F90
! 4eb99d9cd2004891d341b3fcb5bd8945  libgfortran/generated/_mod_r8.F90
! 10bba8d5765cba66b69c2521f4004bca  libgfortran/generated/_sign_i16.F90
! 23398abf7890699e8be39d11b0f9f161  libgfortran/generated/_sign_i4.F90
! 65ceb2a643db75088ccca6548f3ea856  libgfortran/generated/_sign_i8.F90
! 2d5a9413755c9938c8864d922d8b0fb7  libgfortran/generated/_sign_r10.F90
! 40be0b41be764d62ad57c2980b9fad7b  libgfortran/generated/_sign_r16.F90
! 0ce30806db52af793387c3bae7ec5c21  libgfortran/generated/_sign_r17.F90
! 6ec9a1694879ea0503a1483cba50c916  libgfortran/generated/_sign_r4.F90
! b1f97916cbd37a4f9e8b9b9cc9b3fd4b  libgfortran/generated/_sign_r8.F90
! 4e8a693d2924084adb3c280e9f387064  libgfortran/generated/_sin_c10.F90
! c8d5412550a5ac3a45b4a5f3bf08bfb0  libgfortran/generated/_sin_c16.F90
! 5219dd9523c0cf60bf566f6ffedb660d  libgfortran/generated/_sin_c17.F90
! a7e968c5bcd75a8f7fdc42d31d760d51  libgfortran/generated/_sin_c4.F90
! 5984ba94f8eacd5d6aa35f1d46720685  libgfortran/generated/_sin_c8.F90
! 0e23f301bb15b221780e9b93870d870f  libgfortran/generated/_sin_r10.F90
! b559f2ce949a0975c9ca11f43ddf9d21  libgfortran/generated/_sin_r16.F90
! 73e8d94fa3e423bd4e1dd8bcc400cfe4  libgfortran/generated/_sin_r17.F90
! ba5020a88637c7ce8e270f81fcb4970c  libgfortran/generated/_sin_r4.F90
! cb2938242f807e996c67e1726996c489  libgfortran/generated/_sin_r8.F90
! bbd5eed15dcc98fb2f53f217e4c3007f  libgfortran/generated/_sinh_r10.F90
! 91810eba1c06be4acc05ccbbaf82ebfe  libgfortran/generated/_sinh_r16.F90
! 9b72b429f2c9c1405c52c43979c47992  libgfortran/generated/_sinh_r17.F90
! 29047c9216820f6d6049d19844b8a3d6  libgfortran/generated/_sinh_r4.F90
! 66bde57d93b50df95c8d9599bdd598ef  libgfortran/generated/_sinh_r8.F90
! 769b84b9b0de46cfeea5d5904d5e5cf7  libgfortran/generated/_sqrt_c10.F90
! 471d8c2a22daa318101efee124086da6  libgfortran/generated/_sqrt_c16.F90
! 7cb4fecd2d660fdc64c09aca05346074  libgfortran/generated/_sqrt_c17.F90
! a432f234efad51b4bbe4e892539439ec  libgfortran/generated/_sqrt_c4.F90
! 3ee96c3b5ddd6e3e62f64161eeefee10  libgfortran/generated/_sqrt_c8.F90
! d5eef20afedff5d441d4939749219074  libgfortran/generated/_sqrt_r10.F90
! bb9929468f677ae4eaa23623e1b2234a  libgfortran/generated/_sqrt_r16.F90
! 0d953a7c500137e27c147264856e6429  libgfortran/generated/_sqrt_r17.F90
! 87ffa324244be22f74278a1d317725c2  libgfortran/generated/_sqrt_r4.F90
! db2c396b8a46c84d30a7a92c3028a66b  libgfortran/generated/_sqrt_r8.F90
! 9f8c32e38388002ed1f98803630c7313  libgfortran/generated/_tan_r10.F90
! 78b87483604e3c598a1663f824df27db  libgfortran/generated/_tan_r16.F90
! e42f6540140ae58d0fe2a194312ce946  libgfortran/generated/_tan_r17.F90
! 9bec015360ea8d4cd2c1ab16eff241d3  libgfortran/generated/_tan_r4.F90
! c81df93594140ccdf9c71f9059f4ea87  libgfortran/generated/_tan_r8.F90
! e934a1012b1ea59981e0fb0e7921c38d  libgfortran/generated/_tanh_r10.F90
! db5e4416fab645a60287bc381bb8b76b  libgfortran/generated/_tanh_r16.F90
! 90d7b388543ec638ea5fd23fdd34cb3f  libgfortran/generated/_tanh_r17.F90
! effd0b06abf29191c1a14eb794c9586b  libgfortran/generated/_tanh_r4.F90
! 22972f7381ee059cc1cd0ddc2c41a4b7  libgfortran/generated/_tanh_r8.F90
! 9635b09be8dd5b65e75c91240321a2d1  libgfortran/generated/all_l1.c
! 2fe103addb5ecc33db0c76c74b132e14  libgfortran/generated/all_l16.c
! c67924f6fd11955bb32bca767847cd61  libgfortran/generated/all_l2.c
! c31460475845a063d3a42b76d00aa6e5  libgfortran/generated/all_l4.c
! f8995c70dada62f112761ea29491320e  libgfortran/generated/all_l8.c
! c28f61da52ff3f8d695f9f0d727b7d98  libgfortran/generated/any_l1.c
! 51d106f62c0eedc16c39ce04a440467c  libgfortran/generated/any_l16.c
! 10cb02dd3e11aa6617912629564c78a5  libgfortran/generated/any_l2.c
! 8c7394805c783a31479da99d7a806d67  libgfortran/generated/any_l4.c
! 09f41b12a62f2c538ea75911fcc19b54  libgfortran/generated/any_l8.c
! 18674da5ed3ab4267b17d8a01156946f  libgfortran/generated/bessel_r10.c
! bca398f6aebd34f4f731327d7e9a76b5  libgfortran/generated/bessel_r16.c
! 202b7ed9d4a9905c1325d5173c49968f  libgfortran/generated/bessel_r17.c
! 4023ddbbfe14e87bdd7292f4a468a2d9  libgfortran/generated/bessel_r4.c
! 8e816341e5c5640c510d2a7e22aa3255  libgfortran/generated/bessel_r8.c
! 1eeb36543f4be298767f4b11c8d9abe8  libgfortran/generated/count_16_l.c
! f06cf95d4187d3133be0a59fbb09a0da  libgfortran/generated/count_1_l.c
! 3f66fc5851491b63b245e4b6c39468f1  libgfortran/generated/count_2_l.c
! 04743b159225f7fb1d0ad7cdffb8f6f2  libgfortran/generated/count_4_l.c
! 9ab0509a7a925d42a307ae61778404ef  libgfortran/generated/count_8_l.c
! a57adfd4605417b761447b4099beff67  libgfortran/generated/cshift0_c10.c
! 7d92b402ff4dc9c3815bbe37e23b9a43  libgfortran/generated/cshift0_c16.c
! 3b1006d46758bc5426af28b3d36e9c43  libgfortran/generated/cshift0_c17.c
! 21b29228560dacaa6c314293b403ae3b  libgfortran/generated/cshift0_c4.c
! 88e6a51530c24d1e55b472ca16adb097  libgfortran/generated/cshift0_c8.c
! 24673e703012c770c6aefd42cfd5503f  libgfortran/generated/cshift0_i1.c
! bb90ce9a5f80292e3ae35650fad8c603  libgfortran/generated/cshift0_i16.c
! 56175523f533c7c68b424184b242db70  libgfortran/generated/cshift0_i2.c
! 1711ae9e39a653840e07567cc1331165  libgfortran/generated/cshift0_i4.c
! 7a5c11ad141e8ba1353accb5ef5a1f98  libgfortran/generated/cshift0_i8.c
! 5e1db2e6408befb295d0b5ecae06f9b1  libgfortran/generated/cshift0_r10.c
! e0204a021e9bb1c14cf13e3f22169827  libgfortran/generated/cshift0_r16.c
! 4c58e29b13199de08643c59e541da95b  libgfortran/generated/cshift0_r17.c
! b7b88036471b1cde1eb0489dfdf965b2  libgfortran/generated/cshift0_r4.c
! 1496ee8dc5bb4cb07b6bcf3e3c0ece44  libgfortran/generated/cshift0_r8.c
! b466955a2041450ef963da2b0789cd38  libgfortran/generated/cshift1_16.c
! 9d1459229ca07a49f886c7e3c6df7e38  libgfortran/generated/cshift1_16_c10.c
! d0154e46fb6448eda953ba8e23dd5686  libgfortran/generated/cshift1_16_c16.c
! 0a962e5aee8f98df15998a30abd7f4fb  libgfortran/generated/cshift1_16_c17.c
! fc5af78cbc9f9631b8235b9455649c60  libgfortran/generated/cshift1_16_c4.c
! 0bbf52f27aa2065dc3a6ec2b8d3ed61a  libgfortran/generated/cshift1_16_c8.c
! e618aab45deb9f281005614a44d784c5  libgfortran/generated/cshift1_16_i1.c
! ec61062f22757a84fbd28a5bc2f53eb6  libgfortran/generated/cshift1_16_i16.c
! 88b77785e04895bf4ff2ae2e56e6c0f0  libgfortran/generated/cshift1_16_i2.c
! 045510c4e4db6d431ac89c27bc000dc0  libgfortran/generated/cshift1_16_i4.c
! cad8f29f7b9f29d1764b9e4ccc29425f  libgfortran/generated/cshift1_16_i8.c
! 3f9d942a83737c82e5b7a55acbc65e02  libgfortran/generated/cshift1_16_r10.c
! 7238015a558bc58a7508e8ac3f362827  libgfortran/generated/cshift1_16_r16.c
! 95c1a604ac36989af352565acf5efd9d  libgfortran/generated/cshift1_16_r17.c
! 438bed7cbe1062530515ddd4c723b301  libgfortran/generated/cshift1_16_r4.c
! 8b613a77fb2fbeb0601a0e0518494130  libgfortran/generated/cshift1_16_r8.c
! 70517bd23d0d10aca5e07fff49f9fa55  libgfortran/generated/cshift1_4.c
! 755225279fbb7affb814fdc25e6dbe00  libgfortran/generated/cshift1_4_c10.c
! 357e0a3adee414cb71967cce3f5565dc  libgfortran/generated/cshift1_4_c16.c
! 6da00a33586c691c8724aa00107de63d  libgfortran/generated/cshift1_4_c17.c
! 243b4727401bd9938858bdedb86c9df2  libgfortran/generated/cshift1_4_c4.c
! c00918733d18ff66c3ce1449e0820037  libgfortran/generated/cshift1_4_c8.c
! a2235dd26553eb3f27184a9e44bbf46f  libgfortran/generated/cshift1_4_i1.c
! 7041d8a7d0c03e2a2e9fb8a96d12d3c5  libgfortran/generated/cshift1_4_i16.c
! b534d331a6349a6b415418fd20b2c0ad  libgfortran/generated/cshift1_4_i2.c
! 17e77f4f1365c1bf4f10af08f067a9cd  libgfortran/generated/cshift1_4_i4.c
! 0ca13e46b0fadb9d721b9776a896da54  libgfortran/generated/cshift1_4_i8.c
! 3674294e136e57f71966607d2153b298  libgfortran/generated/cshift1_4_r10.c
! 3225df13fcba95a7f669f64c41d84c7b  libgfortran/generated/cshift1_4_r16.c
! 52685760d994e43d256e35bc7b26a99d  libgfortran/generated/cshift1_4_r17.c
! a32305827999506ddd815cfae99c67ec  libgfortran/generated/cshift1_4_r4.c
! 658fc96a60b9e4ad673d9741e7722061  libgfortran/generated/cshift1_4_r8.c
! e07c25cda7cd4e3342b62aa87d95c7f7  libgfortran/generated/cshift1_8.c
! 8c1be8156f988492441342dd72f2c025  libgfortran/generated/cshift1_8_c10.c
! df518578122f420020dc0213d0c93920  libgfortran/generated/cshift1_8_c16.c
! 21cfc8b417c98c92f2b687a5d300c3c4  libgfortran/generated/cshift1_8_c17.c
! 80cea2f05ed25b39456a86eb7b447046  libgfortran/generated/cshift1_8_c4.c
! d9861070831953b1f38e567487b59363  libgfortran/generated/cshift1_8_c8.c
! 91e38e907e480c4bca131ebaae7c0002  libgfortran/generated/cshift1_8_i1.c
! b2b83748abd2c293359bdb8147ed5aff  libgfortran/generated/cshift1_8_i16.c
! 3e31f14815037192e2d34a3e5b5e503a  libgfortran/generated/cshift1_8_i2.c
! fab8e7d4847ab87a25cf9f7ad610051b  libgfortran/generated/cshift1_8_i4.c
! 958b403888c89e59d16e6af21e6f21f0  libgfortran/generated/cshift1_8_i8.c
! 03eabff6ce67266c3700144e0cdb2f4e  libgfortran/generated/cshift1_8_r10.c
! 8bad077e35850b9c0a993aab7dcfdf65  libgfortran/generated/cshift1_8_r16.c
! 88ae8b278ec7a85df7989afdd488e196  libgfortran/generated/cshift1_8_r17.c
! d6cfae925163a628a3af4d422be4485d  libgfortran/generated/cshift1_8_r4.c
! 4df43cd98e66c09734da55151b9b13de  libgfortran/generated/cshift1_8_r8.c
! 7984312aeb89e15c5c39d44cdf2ac20d  libgfortran/generated/eoshift1_16.c
! 6eed8c16fe42e6ebf9f324bfe4dbad43  libgfortran/generated/eoshift1_4.c
! b9ca31ca7f0b6be4c3999df52a6ef248  libgfortran/generated/eoshift1_8.c
! bdf331db5d4901b99cca84214bcba9ee  libgfortran/generated/eoshift3_16.c
! f78d68c6b28671099c02b28e0235afa8  libgfortran/generated/eoshift3_4.c
! 96d7c357dc6730a1dc505fdee8525543  libgfortran/generated/eoshift3_8.c
! 6495c974ae834f60522c8411b32460aa  libgfortran/generated/findloc0_c10.c
! 935ae9f4b91f1d2e1e7615b458a4f838  libgfortran/generated/findloc0_c16.c
! 3744ace1fa87835601abedbaaf225483  libgfortran/generated/findloc0_c17.c
! d8ed985da564791f67dbc461017b1957  libgfortran/generated/findloc0_c4.c
! a5946210433e772408e65d51b3d6d931  libgfortran/generated/findloc0_c8.c
! 6ac32ef2f7518aea99992d925e3ff19d  libgfortran/generated/findloc0_i1.c
! cd90c1a5f0e523aa993d727dc0e83359  libgfortran/generated/findloc0_i16.c
! cc4c62a00f13b884d2d7d3fd6b2956db  libgfortran/generated/findloc0_i2.c
! 6aae5d340962f963b260067320b6fc1b  libgfortran/generated/findloc0_i4.c
! 360316d55d4fe66ab587f75f009deb28  libgfortran/generated/findloc0_i8.c
! b33014e8a89af8a90955abe9cbca1d61  libgfortran/generated/findloc0_r10.c
! f26c1b40a111c7ecfb089886b2af62a0  libgfortran/generated/findloc0_r16.c
! 2be2888a7f361d7ec01f48befd2db52b  libgfortran/generated/findloc0_r17.c
! 4a84a6056594a5ea7c543455d4bd708c  libgfortran/generated/findloc0_r4.c
! 38e2f484f6e75325257403f09f33ffd5  libgfortran/generated/findloc0_r8.c
! 3204bd7bc8d45e4cda8c9ee9df682dff  libgfortran/generated/findloc0_s1.c
! 2469d6a819be082fde1deccdab09acd7  libgfortran/generated/findloc0_s4.c
! b8f5faa82a28ebbf3bad7a7e2b3e7795  libgfortran/generated/findloc1_c10.c
! 3ef391120ce349edf399ca063b23024e  libgfortran/generated/findloc1_c16.c
! 8af00714e889f4b5b8e73e1ae5d34225  libgfortran/generated/findloc1_c17.c
! 953b6010e02cbdc4904a5917a9496472  libgfortran/generated/findloc1_c4.c
! c91e3e99d8986245daa59caec4413ff6  libgfortran/generated/findloc1_c8.c
! cb8dbdeb91544ace120b8d6e9d9db37f  libgfortran/generated/findloc1_i1.c
! 4b4deb23ac7606333a3fc406d7c2f6b8  libgfortran/generated/findloc1_i16.c
! 0b406415fb828f02099098caec562e23  libgfortran/generated/findloc1_i2.c
! 8022779f44baf3a7aaf58a2d6988d56e  libgfortran/generated/findloc1_i4.c
! 48d53623d90124ef161245b61741e1cb  libgfortran/generated/findloc1_i8.c
! 824e1943a8243f0f4b2990d734fdadc1  libgfortran/generated/findloc1_r10.c
! 2602f7d9811e055d399e4df6c1c17328  libgfortran/generated/findloc1_r16.c
! 9f867b22f47da8a351c8b1bcd5460bfd  libgfortran/generated/findloc1_r17.c
! 6f2206521fdc4812e56e494e3178ba66  libgfortran/generated/findloc1_r4.c
! 7fec096e54baf151d073e8fa402d2b52  libgfortran/generated/findloc1_r8.c
! 9a09232a929c70ac694823c41d5b9c30  libgfortran/generated/findloc1_s1.c
! 86560c471d5217f7f242301292489d37  libgfortran/generated/findloc1_s4.c
! dfea9322b65ce940755593772b53efe6  libgfortran/generated/findloc2_s1.c
! beb308bb629670462f3ed197d748b4b0  libgfortran/generated/findloc2_s4.c
! 2a472d01b88b567f12c049c3b6994e08  libgfortran/generated/iall_i1.c
! 7e0c1198cdd4477b6f14837c40160d7b  libgfortran/generated/iall_i16.c
! f17a2f6d03f9590e9036448882c6df13  libgfortran/generated/iall_i2.c
! 0f23809bd3e4da1e8c49befb91bf4d09  libgfortran/generated/iall_i4.c
! fe5018de92ec293f2d18a084b71f0492  libgfortran/generated/iall_i8.c
! 0abc5ef2f3073936d1b60a711c161692  libgfortran/generated/iany_i1.c
! c7c8f29b1443e3f41946e220c9308971  libgfortran/generated/iany_i16.c
! c7bbd00c80c28d6c91677fb25527bc7d  libgfortran/generated/iany_i2.c
! 49fc65c57f4988d988b8113b277df128  libgfortran/generated/iany_i4.c
! 5c21e254114e5ae72785d2fb463b789f  libgfortran/generated/iany_i8.c
! 954431b2d3a7b544abfe58432ee60820  libgfortran/generated/in_pack_c10.c
! 7d28b7d6453052f0c5cbaa6fe507f79a  libgfortran/generated/in_pack_c16.c
! 0fd5a397740c779fe9c0a01970076f6e  libgfortran/generated/in_pack_c17.c
! 0e3f007385cfff604d487ee75cea2722  libgfortran/generated/in_pack_c4.c
! 3d75aa8d95bb1b390f12939c745bd248  libgfortran/generated/in_pack_c8.c
! c1561645abf4564903406912cf5dcd26  libgfortran/generated/in_pack_i1.c
! 3f56be713f91da90599e25f23e3256af  libgfortran/generated/in_pack_i16.c
! 81e2366af9edda8bb56fc1ed8c953cac  libgfortran/generated/in_pack_i2.c
! de3dbb91cf089c3571d5309d53ff93b2  libgfortran/generated/in_pack_i4.c
! 7d9d701f74dddf5161895ed7036778e3  libgfortran/generated/in_pack_i8.c
! c2cafbc7c4bf7866c9f177df87b7cdf0  libgfortran/generated/in_pack_r10.c
! 9178c748c20bb65efb3020bbda4fa48f  libgfortran/generated/in_pack_r16.c
! 23421aa16ff8524d0552343611c551f1  libgfortran/generated/in_pack_r17.c
! c1adedb3f9804aa88f4e9566a68207a7  libgfortran/generated/in_pack_r4.c
! 66803326341168642e106db748d8f0c9  libgfortran/generated/in_pack_r8.c
! 79c42ea31bab47b1d8749c05d118dfaa  libgfortran/generated/in_unpack_c10.c
! 047565330a8f7def8e410b536fd5c783  libgfortran/generated/in_unpack_c16.c
! a7703bffd69ae1f9e89b3c82e0d56739  libgfortran/generated/in_unpack_c17.c
! 3ef1f0d744b025d173ae31b191e0c79e  libgfortran/generated/in_unpack_c4.c
! bbbc1fd8854b6646e5b41fc6ab183e65  libgfortran/generated/in_unpack_c8.c
! acf14b445303661061be77ffaa561a3d  libgfortran/generated/in_unpack_i1.c
! fc5b0656428f8cfe9a7b7c8fb8bcc3f6  libgfortran/generated/in_unpack_i16.c
! 566530a6073b6febf2f33b75580dd939  libgfortran/generated/in_unpack_i2.c
! 27c5dd3c4681aef1874f15e1671fa52a  libgfortran/generated/in_unpack_i4.c
! 66fe5d28bb7ec68d8989d65eb3df8a70  libgfortran/generated/in_unpack_i8.c
! b324fec352996733e0796fb6b3078d4c  libgfortran/generated/in_unpack_r10.c
! fb926836f60ca271ec304695d25acb69  libgfortran/generated/in_unpack_r16.c
! df761ca897c7e6448825118054857e48  libgfortran/generated/in_unpack_r17.c
! 957a95f8daaba04091d5ad12ac429ff6  libgfortran/generated/in_unpack_r4.c
! 918afac324dd55f7e729f558ebe2c864  libgfortran/generated/in_unpack_r8.c
! 8fee6d3d38318ae5548147512dba12e4  libgfortran/generated/iparity_i1.c
! 1e63ad51363cdc45667028597195074c  libgfortran/generated/iparity_i16.c
! 45cd47c994a972c79a00f427705715dc  libgfortran/generated/iparity_i2.c
! f1615850086efb063710e6706cfb9e8e  libgfortran/generated/iparity_i4.c
! 1d4bb10a98ce9dfcd91ae707aec17c58  libgfortran/generated/iparity_i8.c
! c311ef23fd7a55e5fb220340eb546466  libgfortran/generated/matmul_c10.c
! 46962aefa6ced7e56d5b092677a8be5b  libgfortran/generated/matmul_c16.c
! 747b757c13a8647246831da804c678be  libgfortran/generated/matmul_c17.c
! bf4a65ac27b3815e4d9605d2b511faea  libgfortran/generated/matmul_c4.c
! 98fcc16ff5f8c3a52fce09fb2a497c84  libgfortran/generated/matmul_c8.c
! 3b50fa089ca151cd4a5fb371230add77  libgfortran/generated/matmul_i1.c
! b2b1b327fedb5d4eee55e3c6b844f563  libgfortran/generated/matmul_i16.c
! 396e5ed7b84d52b1ea146a8fb070661c  libgfortran/generated/matmul_i2.c
! 1c7d8a9a630785612731a469b0c3fa8e  libgfortran/generated/matmul_i4.c
! 4e9c8a89b150c73a2f93bb4a4be3d864  libgfortran/generated/matmul_i8.c
! adf8c0d3faa5ba191c6252a93eebaf28  libgfortran/generated/matmul_l16.c
! 27a2a831510eb08680402f9163a94e4c  libgfortran/generated/matmul_l4.c
! 65e0175ec4c5a3e63a17fbbaff6865e9  libgfortran/generated/matmul_l8.c
! 53cb731954cc76436a08befeb157f11a  libgfortran/generated/matmul_r10.c
! 296f2bac5300eb36e93d3d5d42e89483  libgfortran/generated/matmul_r16.c
! f2c482fd0063ba40b92d292260cab8c7  libgfortran/generated/matmul_r17.c
! 22676c04856fb8e3c598148b31d73acb  libgfortran/generated/matmul_r4.c
! 4a9c027426ab096e92457e5fc09f3a22  libgfortran/generated/matmul_r8.c
! 77d1d4ea399d83c30a078852166e5d17  libgfortran/generated/matmulavx128_c10.c
! b3432fde978772827912ecf645b8b26d  libgfortran/generated/matmulavx128_c16.c
! 41aeedbfd42213bf6ff5e70e6432986a  libgfortran/generated/matmulavx128_c17.c
! 346c48c9b67d1ed95a3b285bc621414e  libgfortran/generated/matmulavx128_c4.c
! b70121d5172f09d387a37b0abf97fda9  libgfortran/generated/matmulavx128_c8.c
! 1c3b8aec3132096a186986117ba508a6  libgfortran/generated/matmulavx128_i1.c
! bff8cb1916f2483da9edf88e57f4547a  libgfortran/generated/matmulavx128_i16.c
! 30e7023a2f65a59e7973e4aecc363f39  libgfortran/generated/matmulavx128_i2.c
! 811a8665c29edf3ba214d2918a071494  libgfortran/generated/matmulavx128_i4.c
! 1949f75feb3f6459c55b796fd56dc4f7  libgfortran/generated/matmulavx128_i8.c
! 09585e1080ea474ebe90e75470879dd1  libgfortran/generated/matmulavx128_r10.c
! d61cf3db52ffb14978e8ac41ed50995a  libgfortran/generated/matmulavx128_r16.c
! fd7a83acd0589710a7bb6b827786e0f3  libgfortran/generated/matmulavx128_r17.c
! 1db23a0890d914e6a2b9f8e9a528172b  libgfortran/generated/matmulavx128_r4.c
! 2c2ba8a04b1986799b8b1c302e35aaf5  libgfortran/generated/matmulavx128_r8.c
! 7d7e6f6bfd1ae8d5b3728da6804c0a15  libgfortran/generated/maxloc0_16_i1.c
! dad7b7c6789f84c625d23027ea5d4ae3  libgfortran/generated/maxloc0_16_i16.c
! df8469bbb67460c431842b2c54e53c82  libgfortran/generated/maxloc0_16_i2.c
! a16c7142a153ebf7d5d6e435c7d89e77  libgfortran/generated/maxloc0_16_i4.c
! 549a4071938007d866fbb0a82f0f22bf  libgfortran/generated/maxloc0_16_i8.c
! 160bb110765445b10eac90f793aef48e  libgfortran/generated/maxloc0_16_m1.c
! 39c56f39e53c6712d59d9b3f9d872c86  libgfortran/generated/maxloc0_16_m16.c
! 584864b9b411009b6f21c01485b01789  libgfortran/generated/maxloc0_16_m2.c
! 3156d3b51564892a026bb1ef11c0bca1  libgfortran/generated/maxloc0_16_m4.c
! 3a3b4d9c73355b3820a41b86748964cf  libgfortran/generated/maxloc0_16_m8.c
! 7820c9fb5ed5d032114356e869dc5f1c  libgfortran/generated/maxloc0_16_r10.c
! 8d4f932bf7641bf91517d4fc38471267  libgfortran/generated/maxloc0_16_r16.c
! 81b5c254a405c225f45ea7608dca7b99  libgfortran/generated/maxloc0_16_r17.c
! 54640325c12dc3569cc208be3876a356  libgfortran/generated/maxloc0_16_r4.c
! 273c14f8c7d33d47d16d3163357c5d6d  libgfortran/generated/maxloc0_16_r8.c
! 3656e1697c1cf600302be0e0a57d2ef1  libgfortran/generated/maxloc0_16_s1.c
! d08b8c05a4fdeac8640036c6c033c5f8  libgfortran/generated/maxloc0_16_s4.c
! c843116bacf191a5257b118c306a96b9  libgfortran/generated/maxloc0_4_i1.c
! 3796b4b013ffe6844e4c1aa04556c332  libgfortran/generated/maxloc0_4_i16.c
! 619cf8a497a097efd9d766c56dd6e9e2  libgfortran/generated/maxloc0_4_i2.c
! 1c80d791312ab1ffba82cf186294fe39  libgfortran/generated/maxloc0_4_i4.c
! f0f943f738834fdcc9e1e2d68972c491  libgfortran/generated/maxloc0_4_i8.c
! 0c55d66775948180150e45d2c406efc3  libgfortran/generated/maxloc0_4_m1.c
! 2b1a015664daf5c55bc1ca88822ce9e3  libgfortran/generated/maxloc0_4_m16.c
! 784813550eae9d177f89830272ed1a1a  libgfortran/generated/maxloc0_4_m2.c
! 7dcc536ebc63c862bab2af9cca67a1cc  libgfortran/generated/maxloc0_4_m4.c
! 67917cd7dd5da531bda919642bd75691  libgfortran/generated/maxloc0_4_m8.c
! c253a75b8e58e1757faccb8c6acf71ca  libgfortran/generated/maxloc0_4_r10.c
! a4b61dffb736bcd82e3b6aa1c3bed71d  libgfortran/generated/maxloc0_4_r16.c
! 3e164563b9ad66b35ae038804bd6eb8a  libgfortran/generated/maxloc0_4_r17.c
! 16bb738c9ebf56da76e031fe6ed23e5f  libgfortran/generated/maxloc0_4_r4.c
! 84747b4c5a59db9cb4bd73f5fb8f492b  libgfortran/generated/maxloc0_4_r8.c
! e1148f81411156b7e475b135e637f29e  libgfortran/generated/maxloc0_4_s1.c
! 6fba82855d83f2777c7244c5813d7e52  libgfortran/generated/maxloc0_4_s4.c
! aef76e89e98478df282a0d537c9bb2ff  libgfortran/generated/maxloc0_8_i1.c
! 48e7fd82fb890c9e0dd23a7d88da5d44  libgfortran/generated/maxloc0_8_i16.c
! 68940fab157ac658d7c9bf659a42d67f  libgfortran/generated/maxloc0_8_i2.c
! fdcdea6842638a5c42495fc5f1b1cbca  libgfortran/generated/maxloc0_8_i4.c
! 96d1a856d52f9ee4fb83884e6a5e3b10  libgfortran/generated/maxloc0_8_i8.c
! e393ee060463a40ab2a35a4bbddc1fd6  libgfortran/generated/maxloc0_8_m1.c
! ac521b561e22ab282403bc1849e44b07  libgfortran/generated/maxloc0_8_m16.c
! 1dd4370bfcabb4b41cd774a7e939d2b9  libgfortran/generated/maxloc0_8_m2.c
! 1a62acbff945ff17ca7bc4708ffe0d36  libgfortran/generated/maxloc0_8_m4.c
! e35a58a8e46716c0426839c9a79e7c0d  libgfortran/generated/maxloc0_8_m8.c
! 669be684c62c2ab8113f040a122c2fc1  libgfortran/generated/maxloc0_8_r10.c
! be828e2f9482fb6f7cf5af2d1cafb362  libgfortran/generated/maxloc0_8_r16.c
! b235049fd0fb70aefca5b98d84448d1c  libgfortran/generated/maxloc0_8_r17.c
! bc7e80ccac43eeddf19ba016d2a32e85  libgfortran/generated/maxloc0_8_r4.c
! 46a85abb38366d94130159d1dfb93f3a  libgfortran/generated/maxloc0_8_r8.c
! 3a4aa1783fb14078a1bade70d2ce65b5  libgfortran/generated/maxloc0_8_s1.c
! ec38a5bf9ed47e74723b76f8a14f0b61  libgfortran/generated/maxloc0_8_s4.c
! 2dc6b3560213e1b426614ba9cf79287a  libgfortran/generated/maxloc1_16_i1.c
! eba2725b3fd4771a5b1bad48b2761a33  libgfortran/generated/maxloc1_16_i16.c
! c62e6a694bab2fbce0a02a86d8d37206  libgfortran/generated/maxloc1_16_i2.c
! e74fadaaa8707366eb592476129408a2  libgfortran/generated/maxloc1_16_i4.c
! bf7456ecb86d9445e5983acefc747d4c  libgfortran/generated/maxloc1_16_i8.c
! b0cfaae9b9253112b9d6d539f2de7219  libgfortran/generated/maxloc1_16_m1.c
! 282c05acf28a98132b6653d5f786ee36  libgfortran/generated/maxloc1_16_m2.c
! daece998012c11d663030d68a51f0bb8  libgfortran/generated/maxloc1_16_m4.c
! 84cf394c78971eb8b699d82c62c0d08d  libgfortran/generated/maxloc1_16_m8.c
! df2fe8c79d52586344d08578e4edfa4d  libgfortran/generated/maxloc1_16_r10.c
! eb7a9f2313c9b09f44560db9a23504df  libgfortran/generated/maxloc1_16_r16.c
! 7a0d7e2dc9e20c291c737e8ebbc60b0a  libgfortran/generated/maxloc1_16_r17.c
! da61bb7e11344478889dc47b7596d804  libgfortran/generated/maxloc1_16_r4.c
! d60c1a4df2a4d8eb9023de739b7155b8  libgfortran/generated/maxloc1_16_r8.c
! 2a94824ed1233c48cfff74fbed811a39  libgfortran/generated/maxloc1_16_s1.c
! bade5fb3f97e3c6634e068416e9272f6  libgfortran/generated/maxloc1_16_s4.c
! 552f89c8b58fc395b78a3e3d2e8b06cf  libgfortran/generated/maxloc1_4_i1.c
! c507fc2e66ec574faee3219eb3144b46  libgfortran/generated/maxloc1_4_i16.c
! e52232cebdac212023a61a56619c2a44  libgfortran/generated/maxloc1_4_i2.c
! f1e3cba6dd27158603c4d6cf077f942a  libgfortran/generated/maxloc1_4_i4.c
! 313907089e259e55f2491af268bebaa9  libgfortran/generated/maxloc1_4_i8.c
! cf98699372bc73ef6d3c4f82f75284ca  libgfortran/generated/maxloc1_4_m1.c
! 09a8932b29e60e68fa048a9536db50ca  libgfortran/generated/maxloc1_4_m16.c
! fb2d7b3ff312c8f56ef4368b88c58362  libgfortran/generated/maxloc1_4_m2.c
! d20a4b3912157d4bf60b09746f7bb0b6  libgfortran/generated/maxloc1_4_m4.c
! 3bb7d561369952d8f984020706837238  libgfortran/generated/maxloc1_4_m8.c
! 5b1577a3f3e4bbf842f5b849867cad83  libgfortran/generated/maxloc1_4_r10.c
! 6a0f8837f31b291f27309cb53e49a0c4  libgfortran/generated/maxloc1_4_r16.c
! 9f588351fd28ef8e20a5623ce93a59a5  libgfortran/generated/maxloc1_4_r17.c
! d103fd99202925df7c3dd23efe81af0a  libgfortran/generated/maxloc1_4_r4.c
! c94f0b95481a97720c29459379257219  libgfortran/generated/maxloc1_4_r8.c
! 55b41656c262f26739a51e5e3c1afc7c  libgfortran/generated/maxloc1_4_s1.c
! acf5c81c4ab5a9e6697a44e20d172e2d  libgfortran/generated/maxloc1_4_s4.c
! 64931a89d362e8f24837f797a0bf61c7  libgfortran/generated/maxloc1_8_i1.c
! 9caddfa85aa3a5cca5de76d1ea14defd  libgfortran/generated/maxloc1_8_i16.c
! 028d2b330373f81a647baf9a63cedfbc  libgfortran/generated/maxloc1_8_i2.c
! 3f643c098ec0ebf26207db9d01ee625b  libgfortran/generated/maxloc1_8_i4.c
! 9b57d8642a825f853fc39df445f7e6b8  libgfortran/generated/maxloc1_8_i8.c
! 30476ddf2fa8b485f115e51aff1d2818  libgfortran/generated/maxloc1_8_m1.c
! 9a28bd47f25c16981e5f92c2916872f2  libgfortran/generated/maxloc1_8_m16.c
! a6407c18314734fd022e5662e0294e9e  libgfortran/generated/maxloc1_8_m2.c
! 981e65fd1fb262843906b80e67d85194  libgfortran/generated/maxloc1_8_m4.c
! 04bc2284f060a82b0cc660899e5aecb2  libgfortran/generated/maxloc1_8_m8.c
! a5538f936916019edbe6eb586eefad22  libgfortran/generated/maxloc1_8_r10.c
! 22638b0085f2141a903df07c24d8d29c  libgfortran/generated/maxloc1_8_r16.c
! b0b0f18b4a4e9a2f027e0926258e37b3  libgfortran/generated/maxloc1_8_r17.c
! 88ad765cb7414fbcc9e952ff4d80f886  libgfortran/generated/maxloc1_8_r4.c
! 3a994917bb91815592d691ab8673ce89  libgfortran/generated/maxloc1_8_r8.c
! 953b3fbf7cb4391d2c66721954f8b9bb  libgfortran/generated/maxloc1_8_s1.c
! e1f12b67102ae4e073b7019d918689c2  libgfortran/generated/maxloc1_8_s4.c
! 9d699dda38cb4ead9a1ca077339f72a4  libgfortran/generated/maxloc2_16_s1.c
! 89144572d6255649e0fc4b839c06f7a7  libgfortran/generated/maxloc2_16_s4.c
! 8f2bec2cfb04e3a85366cab2924fe891  libgfortran/generated/maxloc2_4_s1.c
! 24e49c8e92f8dc9691880640f12eb49a  libgfortran/generated/maxloc2_4_s4.c
! 6be3e2b85a21d1183e6a858e95b85e73  libgfortran/generated/maxloc2_8_s1.c
! e138a99219a0d719d844a11a21c53b3e  libgfortran/generated/maxloc2_8_s4.c
! 2b4bce581a7f21a5e4531a3ca2448508  libgfortran/generated/maxval0_s1.c
! 12f244aa2226f5f6aed78d88719e3337  libgfortran/generated/maxval0_s4.c
! a10202db8770adae52b1dce48d7a9ec2  libgfortran/generated/maxval1_s1.c
! 0265035613871e942cc733dc7988e3d7  libgfortran/generated/maxval1_s4.c
! 38e1b26a461a75a5dc4ed57d479007bd  libgfortran/generated/maxval_i1.c
! 1b7d064eb68c74690c6cfb0b51be288e  libgfortran/generated/maxval_i16.c
! f53afc8b9c86ca0ddc693e82e87de988  libgfortran/generated/maxval_i2.c
! 6bf86c67e22ebfe43f188dc643059db8  libgfortran/generated/maxval_i4.c
! 55141f70a5064f36d896bdad18d0a95f  libgfortran/generated/maxval_i8.c
! 9309e2d800ba94aa505efeda3308b1cd  libgfortran/generated/maxval_m1.c
! 056ca1967323929c7ce3b7763f1f80fb  libgfortran/generated/maxval_m16.c
! a8d255859b817fa07e34697aeac1ab7d  libgfortran/generated/maxval_m2.c
! 17261ca7ebdcaabb6734fc065adc5cc4  libgfortran/generated/maxval_m4.c
! e6c92a47db622cc9d1ac9ec8d39cb0b8  libgfortran/generated/maxval_m8.c
! 39e930ec37ce56356a74830fb3a3216d  libgfortran/generated/maxval_r10.c
! aeab205938d6bab5d8319052dc6c3377  libgfortran/generated/maxval_r16.c
! e3ddd8a76a0f88fd0cb9ef759cd2773f  libgfortran/generated/maxval_r17.c
! 2fc63bfb5fc817b469ef4b73314f4210  libgfortran/generated/maxval_r4.c
! 44a12148288e1719492d12d7743142bd  libgfortran/generated/maxval_r8.c
! 3690455646e53b484921b84e230e6a18  libgfortran/generated/minloc0_16_i1.c
! c5752c281ce25818e807ead2d0594d1b  libgfortran/generated/minloc0_16_i16.c
! e01627cd3499c8d948b6be59333392c1  libgfortran/generated/minloc0_16_i2.c
! 66035e5ec7624e646b43f354df9a842a  libgfortran/generated/minloc0_16_i4.c
! d63c9f7586d0dd0abb653523e2f602b2  libgfortran/generated/minloc0_16_i8.c
! 9260802428edd1f6f935a50046d1e02a  libgfortran/generated/minloc0_16_m1.c
! e3c346c93c15990937cfbb1ab6a1d78f  libgfortran/generated/minloc0_16_m16.c
! 942e534325f1dfbbbf9fef75e9c28ee9  libgfortran/generated/minloc0_16_m2.c
! c7e32c50bd581bdc1456c5b5457d14f3  libgfortran/generated/minloc0_16_m4.c
! 8556c9cc09aae9635aeafddfc73e4807  libgfortran/generated/minloc0_16_m8.c
! 4a3f4a223b363c088d0ba51e73c60223  libgfortran/generated/minloc0_16_r10.c
! fba04a73623fc55c6c5fad7e5f9aefb8  libgfortran/generated/minloc0_16_r16.c
! 81dbe05c136845fa192cadec5465671e  libgfortran/generated/minloc0_16_r17.c
! 3119de3601830145b6a21f250f3e2de9  libgfortran/generated/minloc0_16_r4.c
! 4766fea0d039b3161c6e6a836d123805  libgfortran/generated/minloc0_16_r8.c
! eaf44bfee0e9c37a3ab56c3bdf5d428b  libgfortran/generated/minloc0_16_s1.c
! e4fb80e850e9ed779304b848d567757e  libgfortran/generated/minloc0_16_s4.c
! 1804b42c7b2697402c60dc5c08144fa5  libgfortran/generated/minloc0_4_i1.c
! fc73780d40d97901f1364986a1bad18d  libgfortran/generated/minloc0_4_i16.c
! 2303c189675be717b9c63e097c063091  libgfortran/generated/minloc0_4_i2.c
! fb764951b37bb687e609349c8c06e790  libgfortran/generated/minloc0_4_i4.c
! 71f91eed35f926367f8dc40ae53582d7  libgfortran/generated/minloc0_4_i8.c
! 685dc9a115b434e4182e33950b08bb57  libgfortran/generated/minloc0_4_m1.c
! c9f42c57bdf32efb6fcc742c8b02bb13  libgfortran/generated/minloc0_4_m16.c
! ae5ddee1a42398a0760268fef81430fa  libgfortran/generated/minloc0_4_m2.c
! 049d49b56cb83f63d2528610226eb099  libgfortran/generated/minloc0_4_m4.c
! abc77e1209aa7e735dc40911725ae183  libgfortran/generated/minloc0_4_m8.c
! 5119f85d5a3a2f50749dabe876324c8b  libgfortran/generated/minloc0_4_r10.c
! 7dc2727a71cf43e1a940ca56a068dc4e  libgfortran/generated/minloc0_4_r16.c
! 33172d34031df309c7829ae7604f17b9  libgfortran/generated/minloc0_4_r17.c
! 6fe4cee9b44cb2c9bdb9e4b93857ed84  libgfortran/generated/minloc0_4_r4.c
! aed47d3c6935f286725090875ae47845  libgfortran/generated/minloc0_4_r8.c
! 2b877114c212eaae0195404989f4bff0  libgfortran/generated/minloc0_4_s1.c
! 75de236628eaa622b5edb0c1ef03d44d  libgfortran/generated/minloc0_4_s4.c
! c5c82e5e646fc4fb2f052242dc60e182  libgfortran/generated/minloc0_8_i1.c
! 7cb46bde35544d641a03184eaa48951e  libgfortran/generated/minloc0_8_i16.c
! 04add6db42d993e20e21cbcfa6bf7965  libgfortran/generated/minloc0_8_i2.c
! a767cfd17171472470fb9fb7cd611aaf  libgfortran/generated/minloc0_8_i4.c
! 0150064da0246f18fa297dac550637f8  libgfortran/generated/minloc0_8_i8.c
! bdce422c5b7088ee0f1a9717f641702a  libgfortran/generated/minloc0_8_m1.c
! a0f70ef82cc4b46403201c4c9cf5cc66  libgfortran/generated/minloc0_8_m16.c
! 02288c2d75030790665814887e3a0fa3  libgfortran/generated/minloc0_8_m2.c
! f84d4415eb8eb0f7447f86f60f55ba95  libgfortran/generated/minloc0_8_m4.c
! bdfa549bf0b1682c1b10a5561c09ac7b  libgfortran/generated/minloc0_8_m8.c
! 0933e5d699a3dff0471c3e53504f6fc6  libgfortran/generated/minloc0_8_r10.c
! facb0c0679232e3932b5ba41a8936c7d  libgfortran/generated/minloc0_8_r16.c
! 1560070a69b9b87c83033d3e80367ca1  libgfortran/generated/minloc0_8_r17.c
! ed142e18d12363e27e780600da0809f4  libgfortran/generated/minloc0_8_r4.c
! 273b8bfd4b1c1bf031df45b4e491d685  libgfortran/generated/minloc0_8_r8.c
! 74a85838483370b112177d89189df6af  libgfortran/generated/minloc0_8_s1.c
! 27248e968978593f2d44de4ec6230e11  libgfortran/generated/minloc0_8_s4.c
! 8e92bfa8e09d235774651870d2bbf1a7  libgfortran/generated/minloc1_16_i1.c
! 18413008d6916d7595c47fb3f588401e  libgfortran/generated/minloc1_16_i16.c
! 2042e4cf8f37354776247ddb7027876f  libgfortran/generated/minloc1_16_i2.c
! a311e1a7b38c74f059b105d8d90e8016  libgfortran/generated/minloc1_16_i4.c
! 556abb17156f0e31c9aeaf67f9a71b82  libgfortran/generated/minloc1_16_i8.c
! 6a8b84c241145b0c2c26e05a6fea80e4  libgfortran/generated/minloc1_16_m1.c
! 5c61638ea02b910d462df178c02d0ff3  libgfortran/generated/minloc1_16_m16.c
! ec470cd823ff5e13c3e3f8933c39d888  libgfortran/generated/minloc1_16_m2.c
! 7613ad46320c10f94ed90ce136ff5e16  libgfortran/generated/minloc1_16_m4.c
! 5945f9202e621a370492275e8ab7a1ca  libgfortran/generated/minloc1_16_m8.c
! 4d0d14996a39df99924b89289d1e409a  libgfortran/generated/minloc1_16_r10.c
! 32547f87eea1a3c1414db054bbc4682c  libgfortran/generated/minloc1_16_r16.c
! 540d4454c6e452889d980e916947f147  libgfortran/generated/minloc1_16_r17.c
! 961ddcf37fca125693a81eb8beb50dea  libgfortran/generated/minloc1_16_r4.c
! d69a82a2f324afe9988430e522eacce2  libgfortran/generated/minloc1_16_r8.c
! 3ae5002560cd5f623f3e1e6fc5438c89  libgfortran/generated/minloc1_16_s1.c
! 85a6d5e1a8f64ff3d72b59b18e76f54b  libgfortran/generated/minloc1_16_s4.c
! 5847d66d480e9842d866c8eaf7c83887  libgfortran/generated/minloc1_4_i1.c
! 6d41e0a53d9b5f7cc912460023d0535e  libgfortran/generated/minloc1_4_i16.c
! d5a085137279dce24052958b942a5e1a  libgfortran/generated/minloc1_4_i2.c
! 5650ce7bc8f75d74dd255ccd94b6002f  libgfortran/generated/minloc1_4_i4.c
! 685a208de63e6a178dd4db7073f37fc7  libgfortran/generated/minloc1_4_i8.c
! 91a6fd235949c942ad17537b51eca268  libgfortran/generated/minloc1_4_m1.c
! 476c3325166b9d84dd79fa08a58b4713  libgfortran/generated/minloc1_4_m16.c
! 8420815d36da5c1eefa6ffc35238fa41  libgfortran/generated/minloc1_4_m2.c
! 2837b41a115e3d4435389a71f77b85c9  libgfortran/generated/minloc1_4_m4.c
! 71464c2d29232ac1a133589c8edab0db  libgfortran/generated/minloc1_4_m8.c
! 7f26469b4b38d0f998545bf4bbc60211  libgfortran/generated/minloc1_4_r10.c
! ab8c2b2038b7552e095765c8e7a49152  libgfortran/generated/minloc1_4_r16.c
! f644fd56ed5d739e84abfe762cbf26a8  libgfortran/generated/minloc1_4_r17.c
! 1d7696a514235166b23f0e187b760b95  libgfortran/generated/minloc1_4_r4.c
! 41a98f8720b5be14e3c4e7bc68ec158e  libgfortran/generated/minloc1_4_r8.c
! 5b7bc86e4c2b09a21735b871f3934eae  libgfortran/generated/minloc1_4_s1.c
! 546659412c691d972f4d913e2edb1f95  libgfortran/generated/minloc1_4_s4.c
! 672a7ed532ba86f641353e19a4cce24e  libgfortran/generated/minloc1_8_i1.c
! c39fd4b96d951718c9cdad74fdadff1d  libgfortran/generated/minloc1_8_i16.c
! 3eeca6f84edd91144ee4e44f3996d2dd  libgfortran/generated/minloc1_8_i2.c
! cbc34a659ead9c006a093a3b86dbd1ef  libgfortran/generated/minloc1_8_i4.c
! a21e56b73858b470758fc3190d33afeb  libgfortran/generated/minloc1_8_i8.c
! 2c198710cb24613a27e5356132dcea51  libgfortran/generated/minloc1_8_m1.c
! 98fa526f262522cc950a142830225fd5  libgfortran/generated/minloc1_8_m16.c
! 4a81a39b4d971679fd6b6c08d379b743  libgfortran/generated/minloc1_8_m2.c
! d25ca2efa33919775e5a47ad08b2b748  libgfortran/generated/minloc1_8_m4.c
! c911e305d6b6544970fb212eb0a4a826  libgfortran/generated/minloc1_8_m8.c
! e5be4044e10234d22cbf446c6fbb8611  libgfortran/generated/minloc1_8_r10.c
! 668c14a39f6eb36bbe717a789cd9fc8f  libgfortran/generated/minloc1_8_r16.c
! d96c62a9b844f9e4f1c2dbb14aaff660  libgfortran/generated/minloc1_8_r17.c
! 0066bca1fae1af406025e5efe30b1599  libgfortran/generated/minloc1_8_r4.c
! de5d5cc4c10f8007cdcc554c474f1673  libgfortran/generated/minloc1_8_r8.c
! a4bcc4d3f7720a4b6d958ed0208ff096  libgfortran/generated/minloc1_8_s1.c
! f9fd113a53bbc31d1e43969250589729  libgfortran/generated/minloc1_8_s4.c
! fbd4678e54a25d6960a0c17b4778ecd8  libgfortran/generated/minloc2_16_s1.c
! 70dc112a886b647555ddf9737789b2b4  libgfortran/generated/minloc2_16_s4.c
! add33a334bc490eae49df1787f9d4b82  libgfortran/generated/minloc2_4_s1.c
! 8d83ae2963fc80787c83db8049483d89  libgfortran/generated/minloc2_4_s4.c
! 33b6ef08fd2465e82709ff550d568eff  libgfortran/generated/minloc2_8_s1.c
! 4b1ace017e6780fff3b3aba64f48f9be  libgfortran/generated/minloc2_8_s4.c
! ffd2bdd1e465617800114f25032e41e7  libgfortran/generated/minval0_s1.c
! 91624b872dcd26edb52c4d13f7aa28a2  libgfortran/generated/minval0_s4.c
! 99ebdc6b36c8d7a9226e292f6d5062f3  libgfortran/generated/minval1_s1.c
! 9ada639d6bec5d4ae128ad658460ebdd  libgfortran/generated/minval1_s4.c
! 6589098e478df099739ab2ec2b1e0d3b  libgfortran/generated/minval_i1.c
! f7de54974b946e4b6e6d9df4df6807bd  libgfortran/generated/minval_i16.c
! 367d4449e0bc30778ce7fbcff398aa79  libgfortran/generated/minval_i2.c
! 7ecca091d36839b29a79f8d4ce0f7879  libgfortran/generated/minval_i4.c
! b48e50dd5de804a721defde8954d114c  libgfortran/generated/minval_i8.c
! 0a1bdf47661dfd0b4259128f60911db8  libgfortran/generated/minval_m1.c
! b2416cb98ec70fae39154034f94b6d2c  libgfortran/generated/minval_m16.c
! b5291d121040c5ae89c57353784ab932  libgfortran/generated/minval_m2.c
! 29cb319dfc9d0056208c83edd09174e5  libgfortran/generated/minval_m4.c
! 1d4366ce440c483a0fd9f3f00d4d0002  libgfortran/generated/minval_m8.c
! 3d259ffb5419b573aa40c203408e513e  libgfortran/generated/minval_r10.c
! b902b8b370cfe245d8da776efc3e8946  libgfortran/generated/minval_r16.c
! 6f54b6efdb65e1b28690f2634330a1dc  libgfortran/generated/minval_r17.c
! 04edaa1fbad18ecfc101759c8e6d9230  libgfortran/generated/minval_r4.c
! 2a28add4b5fe7719aee4165520a8f385  libgfortran/generated/minval_r8.c
! f106c39bafe501e72b1c237a787ccab5  libgfortran/generated/misc_specifics.F90
! cc3ec44031f4438a6165cd3d2a643feb  libgfortran/generated/norm2_r10.c
! fb3598b999e8e60fcca32cbad9bd720d  libgfortran/generated/norm2_r16.c
! ce802065802545ff898163bdd892685d  libgfortran/generated/norm2_r17.c
! 76f0e60ca53ca8255e67345a3b4760df  libgfortran/generated/norm2_r4.c
! 5e5412047aa83362a75d031139bb74a2  libgfortran/generated/norm2_r8.c
! c3422759e7d7950a29ca54c292d5bef5  libgfortran/generated/pack_c10.c
! e85a419fb41febf66c9fe55538bd17b1  libgfortran/generated/pack_c16.c
! 6ee54d0d224744b21e02e8589bb7f3df  libgfortran/generated/pack_c17.c
! e5a4f34ab1d7ca9e5a0fb06697a65ff3  libgfortran/generated/pack_c4.c
! 676473bf05b6664d2571d90a1675595b  libgfortran/generated/pack_c8.c
! 92827b801c9aef63ed0de3d09245d73a  libgfortran/generated/pack_i1.c
! 38ffb522d81cd41dd074c9cab4b042e2  libgfortran/generated/pack_i16.c
! 1c16c3815eb098eec669818ddc7f46ad  libgfortran/generated/pack_i2.c
! 37e2596b2f6383a265dff56fa8e197e1  libgfortran/generated/pack_i4.c
! 4b1be18f39db78a7b00d1fd226f161b3  libgfortran/generated/pack_i8.c
! e4d3ae67e81e8e29ad8050478d83604a  libgfortran/generated/pack_r10.c
! 0ec2048ea2c4637e0f025935367057ab  libgfortran/generated/pack_r16.c
! 4adb40f94b256b990b2461ac0949071e  libgfortran/generated/pack_r17.c
! 492d62c9d3fd471d3bb4a33cb9b012fb  libgfortran/generated/pack_r4.c
! 3a17e076d07b1350b937ca44dff87d86  libgfortran/generated/pack_r8.c
! aaadca8a2f030c7bb67d5862484aac97  libgfortran/generated/parity_l1.c
! 28985a3dedc9bc57cb284e6ee20ac1db  libgfortran/generated/parity_l16.c
! db6e5c625aab1eaeaf375392a239a81a  libgfortran/generated/parity_l2.c
! 1826a27d51003d01211ec95ac63e40ff  libgfortran/generated/parity_l4.c
! 9a6b61034e90647d19aea45a378b1c9f  libgfortran/generated/parity_l8.c
! 008aa33767fd9c7c5aadae3916d51c89  libgfortran/generated/pow_c10_i16.c
! 0d152971608c1364727ea9af2c4f7c86  libgfortran/generated/pow_c10_i4.c
! ff900f0934beb455c0e3ff171f14d049  libgfortran/generated/pow_c10_i8.c
! 3aeee12622fd70c4ad3ab2b870c67d1d  libgfortran/generated/pow_c16_i16.c
! b54d513dc4c8017fbeea1195c033fe54  libgfortran/generated/pow_c16_i4.c
! 69286530c700c54e2d390f16bfba6c4d  libgfortran/generated/pow_c16_i8.c
! 5aa2213c84e49ee3ad1974cac55e55d2  libgfortran/generated/pow_c17_i16.c
! 69861f736e821eea49c8595c8991db2f  libgfortran/generated/pow_c17_i4.c
! bd9428969c8e59525b2116f92fbad0fe  libgfortran/generated/pow_c17_i8.c
! cf0468261c48a19bb077616ccce492ca  libgfortran/generated/pow_c4_i16.c
! ae1797022131d78263fa90017719be8b  libgfortran/generated/pow_c4_i4.c
! 1b7931b162928be6a26c7ae52d02cb81  libgfortran/generated/pow_c4_i8.c
! 26ae1c0e7e7863f5b01e746fd91aa5cd  libgfortran/generated/pow_c8_i16.c
! 24da8cebe9f56abf0221df9a5215f72b  libgfortran/generated/pow_c8_i4.c
! adb2e513f065c3dc7505f8259c0e5453  libgfortran/generated/pow_c8_i8.c
! 3e61b334adf3eb8dd8a18ef3fa021ac8  libgfortran/generated/pow_i16_i16.c
! 1b6468a06040bbad2ddd559c0db3bee0  libgfortran/generated/pow_i16_i4.c
! 02216ece8385c91eb123716bb2478d32  libgfortran/generated/pow_i16_i8.c
! f30d1bbae423fcce0d14998fc0612f30  libgfortran/generated/pow_i4_i16.c
! a1e91f50a610bacf396eb5370f4b419a  libgfortran/generated/pow_i4_i4.c
! 1ab94afbec5966811d7246cc24876385  libgfortran/generated/pow_i4_i8.c
! 836390e7ff32b3697244a6e9cf881238  libgfortran/generated/pow_i8_i16.c
! a26bb6e2885217c9736486761bb67935  libgfortran/generated/pow_i8_i4.c
! 409fc40b6627acb7a02cd224db8b3494  libgfortran/generated/pow_i8_i8.c
! 25ad06a199791b61451b4c0182c0fcbd  libgfortran/generated/pow_m16_m1.c
! 0fcd874239bc6add3de78acf4609a9eb  libgfortran/generated/pow_m16_m16.c
! 7d1f1a459d5ffe7747780d3e14be51c8  libgfortran/generated/pow_m16_m2.c
! 7a10b705a813d3e04be3f5610f18958b  libgfortran/generated/pow_m16_m4.c
! 407a24a5aaf2b5b3c4e5328579ebbd22  libgfortran/generated/pow_m16_m8.c
! 504faf0ca15a2bb15e48b48d41234159  libgfortran/generated/pow_m1_m1.c
! 28a3de480072a8da58b7e64d936c3c16  libgfortran/generated/pow_m1_m16.c
! 0f986e816ddd43b36859d7140179f677  libgfortran/generated/pow_m1_m2.c
! 9cf03b361d17ac66d8f2bfa006ba7c8a  libgfortran/generated/pow_m1_m4.c
! 340777cf9c80c734628948d32a1367c5  libgfortran/generated/pow_m1_m8.c
! 259f2db148517ad77faff6fa6e5e210f  libgfortran/generated/pow_m2_m1.c
! 18c63aa63fdd848337a5a7ae9f9e2488  libgfortran/generated/pow_m2_m16.c
! 11f80a8838fe881880bdf9bee53276b1  libgfortran/generated/pow_m2_m2.c
! d115f8f3234bbcf9b67f87d657432256  libgfortran/generated/pow_m2_m4.c
! a238201d26399cea7da341fcbfb493c3  libgfortran/generated/pow_m2_m8.c
! 4d89467ef6c4cfac0807c96476193b97  libgfortran/generated/pow_m4_m1.c
! a9fe0e58b88905f28cf0115f22a9a8bf  libgfortran/generated/pow_m4_m16.c
! da467c9cae4251604b23dc5a963e3981  libgfortran/generated/pow_m4_m2.c
! 63eac2441f43abea90c5542b8316f376  libgfortran/generated/pow_m4_m4.c
! 3dc218a92658482d1be049900f28b466  libgfortran/generated/pow_m4_m8.c
! 9aba9eec462e0a621b4fd76c761d0e0d  libgfortran/generated/pow_m8_m1.c
! 77b884c3ab6a0438d1dc78e0c48e1768  libgfortran/generated/pow_m8_m16.c
! b23c007cce34127b09070645019b1256  libgfortran/generated/pow_m8_m2.c
! 6ba2373f0f7198407e53f07758b40463  libgfortran/generated/pow_m8_m4.c
! 98bb27f2ff25e790f3d52f2851518552  libgfortran/generated/pow_m8_m8.c
! cd65f14c9f336e279cd68ac5584eab4a  libgfortran/generated/pow_r10_i16.c
! 9558d3ea18bfa8195dc0adc43af78d58  libgfortran/generated/pow_r10_i8.c
! 9399821a7aa25c84a10ed700b9f49b87  libgfortran/generated/pow_r16_i16.c
! a17a4a575ac3a5f05a8e5b1adc98a650  libgfortran/generated/pow_r16_i4.c
! 985ef86b7056731396624c1c22268827  libgfortran/generated/pow_r16_i8.c
! 6e09ef462c6f9ba19311f095b60905dc  libgfortran/generated/pow_r17_i16.c
! e6f52d4e7e47b50d3c2d0cfe73fb11e4  libgfortran/generated/pow_r17_i4.c
! 87d2e51079dc7cd5f0fe4bc98880ffba  libgfortran/generated/pow_r17_i8.c
! e351e5fa3bdbb02396151d0569572a15  libgfortran/generated/pow_r4_i16.c
! 32753ba7186d0004e02667e45fdb08b3  libgfortran/generated/pow_r4_i8.c
! f61c10f422394ed59aa0ef73a79045e8  libgfortran/generated/pow_r8_i16.c
! d1985141ff3037d33210c577d78fa78a  libgfortran/generated/pow_r8_i8.c
! 3ea312017be039d2b5461e9d59de1cf0  libgfortran/generated/product_c10.c
! 2290f0183cf2a0f5bb74817efda1980a  libgfortran/generated/product_c16.c
! 41628b98744be796e6740e1f145276bc  libgfortran/generated/product_c17.c
! 13e1bd4ff705376e060e175ac56d45df  libgfortran/generated/product_c4.c
! 1076e072889b1c803f4b51006a86f115  libgfortran/generated/product_c8.c
! a3c75830df311c3bbc3e2d536f2a162c  libgfortran/generated/product_i1.c
! f96afb181ec3b781e6092c7c3601fcd3  libgfortran/generated/product_i16.c
! d10f514e7ee51add798df81f3c4e0c38  libgfortran/generated/product_i2.c
! fce2733520d0f7d28f500e5af393d96d  libgfortran/generated/product_i4.c
! e41e72e627fb0d415797add883121493  libgfortran/generated/product_i8.c
! ce953ff6ceb11d0b58969e110db02e23  libgfortran/generated/product_r10.c
! 8e5105ee625c24278c0d56d24c6ec781  libgfortran/generated/product_r16.c
! 6b78b32012d0fe49bc962ea1d0498d3d  libgfortran/generated/product_r17.c
! 6ac31ccae5897eeed1048896aead04db  libgfortran/generated/product_r4.c
! ef8cbf56ed850a5e8079284f83f64472  libgfortran/generated/product_r8.c
! 26813450ebc8231db9701891a38eea2e  libgfortran/generated/reshape_c10.c
! 503bbe30548d2b236f159e9a1c8f1835  libgfortran/generated/reshape_c16.c
! 6217748658b2b1da83c2a6d83bb312d6  libgfortran/generated/reshape_c17.c
! e3ade7ea29f5d5484bd5ff7aae6c207e  libgfortran/generated/reshape_c4.c
! ef0092f10959c6c84ed76adbb36f6a6e  libgfortran/generated/reshape_c8.c
! 31d4ee410de0cb98f2786463a3e848bc  libgfortran/generated/reshape_i16.c
! 5342d9198125aa6787072f90403546f3  libgfortran/generated/reshape_i4.c
! e9e7f4027592d4c8f2efcd2f381d98af  libgfortran/generated/reshape_i8.c
! 973cc7c4ff17871d3b26eb6251d8502b  libgfortran/generated/reshape_r10.c
! 50d69a59e08e64e1c1c48e4d94143965  libgfortran/generated/reshape_r16.c
! 29b343b099ff4a72f8105f65fc284028  libgfortran/generated/reshape_r17.c
! 9ccc195aff5a791c3777c258f033177d  libgfortran/generated/reshape_r4.c
! 63b5fcc45e424763ca92d487dc5f1184  libgfortran/generated/reshape_r8.c
! 057929e22263c91357d1f65e708afbdf  libgfortran/generated/shape_i1.c
! 804ef8aa064f58b4e360d4e397a8b466  libgfortran/generated/shape_i16.c
! 8bc674f15c6e6c60d4bb1d835f2d7cbe  libgfortran/generated/shape_i2.c
! 1caf8b2eb442c48cf7bd9d31eba6468e  libgfortran/generated/shape_i4.c
! 5f2d41813594b482192f9046cce27e34  libgfortran/generated/shape_i8.c
! 1c5f53e263e492869ac731746a235896  libgfortran/generated/spread_c10.c
! 174e326d9b8c877485b275c8151a577e  libgfortran/generated/spread_c16.c
! 5530b9bddd76c07ef054c1a01cd04d7c  libgfortran/generated/spread_c17.c
! 658d8cc55786040b13cc493b7b8dcf8c  libgfortran/generated/spread_c4.c
! e297a2a6ad9ca23ede0b969ef08d05cf  libgfortran/generated/spread_c8.c
! 8c1f0ff507661fc8bfab03b30119ec79  libgfortran/generated/spread_i1.c
! 14d3a284c50df76842c3be32b325f9f3  libgfortran/generated/spread_i16.c
! d47bf73768600c322eee45db93f51e28  libgfortran/generated/spread_i2.c
! 0233e8b3a4eb3112f96a56452ff909c1  libgfortran/generated/spread_i4.c
! 7b2afd91ce672970e42efe48a64e2881  libgfortran/generated/spread_i8.c
! 2bdce77a6163ab6d4cd8523884508b63  libgfortran/generated/spread_r10.c
! 5fd43c7ebb4cd77adca8058a111c5843  libgfortran/generated/spread_r16.c
! 7018563a88aaad177118b90794bfcd50  libgfortran/generated/spread_r17.c
! 9d86eaab84a7fb9c1a32041cb8970184  libgfortran/generated/spread_r4.c
! f8c3281a99c2141241623474bf1795e1  libgfortran/generated/spread_r8.c
! 34db755ab3364cd7509fa28f561b6dfd  libgfortran/generated/sum_c10.c
! edf519db44f572c09a22d35c8f580634  libgfortran/generated/sum_c16.c
! 802950675f82782aa6664ab9b6f0253b  libgfortran/generated/sum_c17.c
! d386118918b55447a0bacf3b345bdcb4  libgfortran/generated/sum_c4.c
! 73d623d4b6e567662e82233a96781caf  libgfortran/generated/sum_c8.c
! 786db7efd3319074f0d218d9880f5de5  libgfortran/generated/sum_i1.c
! 264b477364f4c70db782d397fb0030b5  libgfortran/generated/sum_i16.c
! f5a5498ab259d2dc0e26065766c47711  libgfortran/generated/sum_i2.c
! f8296ee2637e573a15b4aaf427e41768  libgfortran/generated/sum_i4.c
! 5aaea36caf429bde747151ea6a49508a  libgfortran/generated/sum_i8.c
! 9c65ceed66db864eeda1da6e0d197e25  libgfortran/generated/sum_r10.c
! 53ae490dd51b6884307b4f339d8bd381  libgfortran/generated/sum_r16.c
! 3938c3feaf0977979a1c6b632a364a31  libgfortran/generated/sum_r17.c
! ed09e25a8fc02adc9887714b6187c17b  libgfortran/generated/sum_r4.c
! ec20f8128d1eaef6a4a33114365b4fc0  libgfortran/generated/sum_r8.c
! c067195170d79a3522a378d3a770b05e  libgfortran/generated/unpack_c10.c
! 5e64ed4d6e85706a2d11d7b11dace5ec  libgfortran/generated/unpack_c16.c
! 874ea4e0c95368d32b965e66db6a11bb  libgfortran/generated/unpack_c17.c
! e56922c9a211b9c7aab649f185c11147  libgfortran/generated/unpack_c4.c
! 81b32a397ddf95406f5c9558078eb608  libgfortran/generated/unpack_c8.c
! dc5b2a723e6ae0f75127eafb01842a7e  libgfortran/generated/unpack_i1.c
! b98698922a8d329364583b849ae66dd1  libgfortran/generated/unpack_i16.c
! 7c399fb2ebe81d46b6b71f7925af0591  libgfortran/generated/unpack_i2.c
! 124c70368162614467ae38e0b17811a0  libgfortran/generated/unpack_i4.c
! 90efcd74ed4c2cca4fa998c13131fd2f  libgfortran/generated/unpack_i8.c
! 42eb5a5b5aab868c6a094ee1a54768a9  libgfortran/generated/unpack_r10.c
! 53a63915d9d1d032fe9fec1918c4e82d  libgfortran/generated/unpack_r16.c
! 825bc3c7f45b36f9ca82fb7b083bcd7d  libgfortran/generated/unpack_r17.c
! 8fcbe32bf70b0c8c128b4ab3cd41eae7  libgfortran/generated/unpack_r4.c
! f803423e0f42de429e6d05db06ea0511  libgfortran/generated/unpack_r8.c
! 3d1af775c6d2370f3140e9cdb0a41cb6  libgfortran/gfortran.map
! 081eb3c616ff1dc25f948c3390a45c25  libgfortran/ieee/ieee_arithmetic.F90
! 29aa422de12addef93a6a64a3de7acf1  libgfortran/ieee/ieee_exceptions.F90
! 526e069d40bcb9a6d33f16725646afed  libgfortran/ieee/ieee_features.F90
! 6410a673eb3512ab777fefdf888f2905  libgfortran/ieee/ieee_helper.c
! 53d1c07c1fb9c12af6fd831de3257b18  libgfortran/intrinsics/abort.c
! 4146f69c76379b994d9796438a2477a9  libgfortran/intrinsics/access.c
! 1f0eceb15b7ceca9cbec38e579acd212  libgfortran/intrinsics/args.c
! 169988f889a9034ed1163b3b58358f2c  libgfortran/intrinsics/associated.c
! c870cc3b772f2044537d3e70f9e29ee7  libgfortran/intrinsics/c99_functions.c
! be7579005b622e9841f7dd03c1552e96  libgfortran/intrinsics/chdir.c
! ef60900627366535ad97a15f4a517bca  libgfortran/intrinsics/chmod.c
! ad14f3ba911540cdd3c05407d734f625  libgfortran/intrinsics/clock.c
! 547d4085692628e56f1a75647e993613  libgfortran/intrinsics/cpu_time.c
! c7af31398c1938432dd9ec912ec8726b  libgfortran/intrinsics/cshift0.c
! b3e2a01919929cad584a96b5e974f3a6  libgfortran/intrinsics/ctime.c
! 16f1d70ba271ae6d961ad512d8edd2cd  libgfortran/intrinsics/date_and_time.c
! 3f410fd1245b25fd3e876df74203a105  libgfortran/intrinsics/dprod_r8.f90
! 96f682975f33cddecfe015cfdc840f7b  libgfortran/intrinsics/dtime.c
! 2def6ecd004c8187fd972e8ce066b497  libgfortran/intrinsics/env.c
! 87dea52b3e2a55e7a89755f8abf28e16  libgfortran/intrinsics/eoshift0.c
! 995be278705e45e36d7a88851cf8544d  libgfortran/intrinsics/eoshift2.c
! b01fa8b7db38b15da7b697296ba0a6f2  libgfortran/intrinsics/erfc_scaled.c
! 8663fe96d130fa63ab647504b8ffacb0  libgfortran/intrinsics/erfc_scaled_inc.c
! d3a799612cc35ef58a267c5e83124d49  libgfortran/intrinsics/etime.c
! 920ed11b0ea2d4beb19bf792087eb782  libgfortran/intrinsics/execute_command_line.c
! 25c2c18e045613626e526241868ca395  libgfortran/intrinsics/exit.c
! 6b0c78c073a6d0f8630a24ab1666e7dc  libgfortran/intrinsics/extends_type_of.c
! 4d21dd242eea56d82fcb7331750960be  libgfortran/intrinsics/f2c_specifics.F90
! ac656708764b53692c83a82540b3b6b3  libgfortran/intrinsics/fnum.c
! 86776515e2bc137f9a6daaf82b0b8a88  libgfortran/intrinsics/gerror.c
! 1a38515c89a4111e5fadad93bb7efe2d  libgfortran/intrinsics/getXid.c
! c84e51905e67b5deedd73cd1d123ae55  libgfortran/intrinsics/getcwd.c
! e15d27e48c2f33a10575340eb5356b79  libgfortran/intrinsics/getlog.c
! 3b61cdc1fb6256267062dbe6ee0e349a  libgfortran/intrinsics/hostnm.c
! 89c6e2fcb0af9254468b379218ad316b  libgfortran/intrinsics/ierrno.c
! ff2e3629222dee89fecbc343c646b902  libgfortran/intrinsics/is_contiguous.c
! e41ba7b144edcc9ee66b39ef45a2a17b  libgfortran/intrinsics/ishftc.c
! 6672f946c7290e3a367696138ee96e96  libgfortran/intrinsics/kill.c
! d7cd91fb88de6d735e04134bfa4c6fdc  libgfortran/intrinsics/link.c
! 9b45e7f4734e584025963b6b967671d0  libgfortran/intrinsics/move_alloc.c
! b12c12580817fdd69991728b7f81f679  libgfortran/intrinsics/mvbits.c
! beab16b72785559deecadd1ce2b3a919  libgfortran/intrinsics/pack_generic.c
! ccc51f15a414cec35d1c667bb904c354  libgfortran/intrinsics/perror.c
! 63bbffde487f5a10bb0f1ef1c24fb1ff  libgfortran/intrinsics/rand.c
! f3e770d92fdf10e59f0682249f59ad63  libgfortran/intrinsics/random.c
! 980afd31fe2acdb19847ed694cc1b91e  libgfortran/intrinsics/random_init.f90
! 6b1232a2364572f1170ef84c6ce57d43  libgfortran/intrinsics/reduce.c
! 8dcb1de4a7f8bbbd027cafb7c6a627af  libgfortran/intrinsics/rename.c
! 40e9cb225cad46d86c8ff274b0d519e3  libgfortran/intrinsics/reshape_generic.c
! 13097c566d0785e97eda32c57b95410d  libgfortran/intrinsics/reshape_packed.c
! e385d12a324d402919ba7d4d2704adc1  libgfortran/intrinsics/selected_char_kind.c
! f489e0b19aabec008a8af56b0599b523  libgfortran/intrinsics/selected_int_kind.f90
! 6525fa6bf7669a091f9445586b2cd1ae  libgfortran/intrinsics/selected_real_kind.f90
! b29ee7cae3fcc4d764be8a110d096020  libgfortran/intrinsics/signal.c
! dc8f1321adfc8e343b6a370305a09764  libgfortran/intrinsics/size.c
! a59513fa96d8a6c654cab456bd87cdc6  libgfortran/intrinsics/sleep.c
! a8a3ba18811d0fd758b4b3d1cd067b2d  libgfortran/intrinsics/spread_generic.c
! a92436fb0123e0dbb09b4196394fe40e  libgfortran/intrinsics/stat.c
! 47dcf8d004f075c126445c87fa1e4784  libgfortran/intrinsics/string_intrinsics.c
! ed16fb722c5320a24fdc6d9b74d1e225  libgfortran/intrinsics/string_intrinsics_inc.c
! 91e38077d5e75b08c370195e51e0ae91  libgfortran/intrinsics/symlnk.c
! af21978023b71650a6a63d0ebd41f3a1  libgfortran/intrinsics/system.c
! a4251342b62fa6ca0a56f2d2fa76e150  libgfortran/intrinsics/system_clock.c
! 0d380584e918eaeac64f5496b913a3bc  libgfortran/intrinsics/time.c
! 972c9b91663ce75fa42551d79a777a30  libgfortran/intrinsics/time_1.h
! 8b716f424e9869358b5314071d9c2ea6  libgfortran/intrinsics/trigd.c
! 8f46b040788e595c534ca02514f122d9  libgfortran/intrinsics/trigd.inc
! 8be63cef6beefc5bf98f2b39ecfcfdab  libgfortran/intrinsics/trigd_lib.inc
! fe83001f1630f772eaac198d321d16f3  libgfortran/intrinsics/umask.c
! 92610ac5306672dabe89169d93aa1821  libgfortran/intrinsics/unlink.c
! 1720a7d90512e2ea71b793cc3d2f706f  libgfortran/intrinsics/unpack_generic.c
! 59846a92fe149edc4bcd6e6fcbdc74ef  libgfortran/io/async.c
! a255d898311e104699cc608214c2f4d4  libgfortran/io/async.h
! 157c9dd5a723ebe943f2028f9fe0d184  libgfortran/io/close.c
! c7169b01bb969daf7e30948005f39988  libgfortran/io/fbuf.c
! 914bd3e77f8227a3400ba2868e316308  libgfortran/io/fbuf.h
! 9df5d9e5f674030f9bd193d261f25d47  libgfortran/io/file_pos.c
! 5449b8a8fac0f3133f4c32e7ddebc9ac  libgfortran/io/format.c
! 95ba22ac86e130ffe2d943ec142f4427  libgfortran/io/format.h
! 2c879686a9c5431b13c4d3a9323e5fed  libgfortran/io/inquire.c
! 9a1581b774b6fa5ddc5861750824984f  libgfortran/io/intrinsics.c
! 68b0f7c5c62320c0b053455824877d6e  libgfortran/io/io.h
! 1c54bed7757f4af9f4ad352a00614fd9  libgfortran/io/list_read.c
! bc0fa60eac17837b1c762e97a8c08673  libgfortran/io/lock.c
! d043bdbc42f0d079e46ba78d36d7d784  libgfortran/io/open.c
! fa8c3abd0f354521bcc23aa747c190fe  libgfortran/io/read.c
! bbdb872460edfc4fcf1cd9dc179d1a09  libgfortran/io/size_from_kind.c
! e083c5b62de7b249a0804185110e86ab  libgfortran/io/transfer.c
! 805eb28f9ed2d311c364b9576cc0626d  libgfortran/io/transfer128.c
! 337471349c0b56d9cd2e7efc2e52e586  libgfortran/io/unit.c
! 58b5a27a16dc0ce25690263431c5f8c1  libgfortran/io/unix.c
! 243898cf460c85d5c6cab26b8ef77511  libgfortran/io/unix.h
! 09d8185d4c2575441cc47355b8181e2d  libgfortran/io/write.c
! 0f29ff5c8f8c7bc519523ed8dfe91341  libgfortran/io/write_float.def
! 6dc0821df415d771739d27ea80a185cc  libgfortran/kinds-override.h
! 5d37f93986771c6ef7e85913967e9d57  libgfortran/libgfortran.h
  387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
! 972674f528a35a516f5278ea7d0e280c  libgfortran/m4/all.m4
! e695adba03c3272e47fd1ed2c52b4374  libgfortran/m4/any.m4
! c7bab9ca06b7503ff8838f5c1d4bfea9  libgfortran/m4/bessel.m4
! 9b120a6d01f9cdd87b64d766074f3334  libgfortran/m4/count.m4
! 0715dd59e24e3607d202b239500d666c  libgfortran/m4/cshift0.m4
! 25b31418a953c5289c5a9e5688cb5cb7  libgfortran/m4/cshift1.m4
! 46c8b5042a03be69ad1d136ca60c4bc7  libgfortran/m4/cshift1a.m4
! acbd266c4cd06037f193bf40701afbf1  libgfortran/m4/eoshift1.m4
! 807417d12c589441fd622913147ce308  libgfortran/m4/eoshift3.m4
  a70290662a995bcc0ff8ac868b6eddda  libgfortran/m4/findloc0.m4
  22271fa12e82c61051f302c3a5072376  libgfortran/m4/findloc0s.m4
  111ea74dceb547cbf63c12832d73d5f4  libgfortran/m4/findloc1.m4
  be432b0e528c65667e6d736e1537515d  libgfortran/m4/findloc1s.m4
  62c4506b866cb09ea489c455e7c2e8bf  libgfortran/m4/findloc2s.m4
! e68a39d309ff35e586d27d1604693df9  libgfortran/m4/head.m4
! 0eab81a545e3beeb9a01b0bd83f6dcd4  libgfortran/m4/iall.m4
! 54e1331779072eed8239e0d4cbbdbcc1  libgfortran/m4/iany.m4
! b4ef537e45249a57bc031f8c57435f9a  libgfortran/m4/ifindloc0.m4
! 0bb1689ff4087fff16f4264cba9cca72  libgfortran/m4/ifindloc1.m4
! 09292c73ffc265421e3b1d13bd1560f1  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
  1512a0bd7ebcf39fdd9d1897042d6d6d  libgfortran/m4/ifunction-s.m4
  ae6c5100027c00b1dee83df8a20d56ac  libgfortran/m4/ifunction-s2.m4
! 1a611de5949eec3ce316071b08967b77  libgfortran/m4/ifunction.m4
  10f323195ca3a220ce7b74b132d15fd7  libgfortran/m4/ifunction_logical.m4
! 9b3c805c9825c7f9db7ca20972103ff8  libgfortran/m4/in_pack.m4
! 106df9a6dfffc3dd117c54706ff1bb5e  libgfortran/m4/in_unpack.m4
! bcc34dd2812f475c425ce9ed5c0afb2c  libgfortran/m4/iparity.m4
! 4f485e84c613e8aa7191941553032a19  libgfortran/m4/iparm.m4
! 44c260e36d1fb1fec70c2deed856623d  libgfortran/m4/matmul.m4
! 404f92b6c287e61378cd84f231b65850  libgfortran/m4/matmul_internal.m4
! 6786592bda50da3680d84241fc597d70  libgfortran/m4/matmulavx128.m4
! 9b94dd0dea35857938a7bda5c519bca4  libgfortran/m4/matmull.m4
! 8ce50cbca31d2c09bfc76ea59c7a846f  libgfortran/m4/maxloc0.m4
! 1849c8d25155bbd8bed6da18da1af7c8  libgfortran/m4/maxloc0s.m4
! bd580aa5ad2aaadede4eefea4b462995  libgfortran/m4/maxloc1.m4
! c2676855eb0a099574c6ca428e1499b1  libgfortran/m4/maxloc1s.m4
! 8fd4f57a22e6a69acd06bef02c8250cd  libgfortran/m4/maxloc2s.m4
! 2ecf9fbe8c2dca8c17997695c7b1abd5  libgfortran/m4/maxval.m4
! adfb78f765e5d492c6efb37e1a1d7cbd  libgfortran/m4/maxval0s.m4
! 496ff8ff8492b461bb2694b5db123f29  libgfortran/m4/maxval1s.m4
! b3555c0a67b61d12f3204bf4576ab57d  libgfortran/m4/minloc0.m4
! 8ff3b2880462ad2896d2d4ef282c578c  libgfortran/m4/minloc0s.m4
! 832bcd62248887de68d828ed4cd75a65  libgfortran/m4/minloc1.m4
! fc78f796bf1976ea1daa206b2b2b0bbf  libgfortran/m4/minloc1s.m4
! ebc1ed30f32d438f2e6a282f426bc8e0  libgfortran/m4/minloc2s.m4
! a7484af20eb12e4a722d718815d9c64b  libgfortran/m4/minval.m4
! 63547debc8174d561d031e8457f1b88c  libgfortran/m4/minval0s.m4
! 2520c49397bcbcbaf51302aff2a5f888  libgfortran/m4/minval1s.m4
  6d8cbcd1d1489f643839e7ac2c00a736  libgfortran/m4/misc_specifics.m4
  70d9300a1cebaef5ef324dad027b2fc3  libgfortran/m4/mtype.m4
! 132e9893773a0778341f833ff99f4057  libgfortran/m4/norm2.m4
! f3048248065ff11f2fd05f5b521ad438  libgfortran/m4/pack.m4
! 3ce7d5273e6dbf6747887adce9adbf41  libgfortran/m4/parity.m4
! 50a98319ef30a5ea10eea5c4f6159a2a  libgfortran/m4/pow.m4
! 3f5a3b7ee26407c9ed3196c01c24fd12  libgfortran/m4/powu.m4
! 8afe80d1c8900c2d458c2af00dfafb84  libgfortran/m4/product.m4
! 749dd5eb92269e72a8a6ccd2c0a2a8ae  libgfortran/m4/reshape.m4
! 78a647074ba20a0e96e03d742cf3ff9c  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! a7a9839241a0b283764afd083ea0cb4e  libgfortran/m4/spread.m4
! 9c14e09f553c1a5759f0280eaba722f4  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
! a0ea91b654d17cf6d11adf8cd7080ee6  libgfortran/m4/unpack.m4
! 675f622f58b01feec2abd5d72f18b022  libgfortran/mk-kinds-h.sh
  5cacd438c86553689eda2ce3d5623b45  libgfortran/mk-sik-inc.sh
  f8813ac773f6f6eb0ea6ecb287fb9250  libgfortran/mk-srk-inc.sh
! 66d9a60e93850e25dc3c2ea0b6d25e4a  libgfortran/runtime/ISO_Fortran_binding.c
! 146c22571b8f675e6009e57849bd3aa3  libgfortran/runtime/backtrace.c
! 94a7b229d39dbcd4417158c27efc1985  libgfortran/runtime/bounds.c
! aaeba6162e3ff4f7663ef18464363aba  libgfortran/runtime/compile_options.c
! 4b6fde5936296d2bf26a255c3850c48a  libgfortran/runtime/convert_char.c
! ec508314e4b75ed58df92ccf7491380e  libgfortran/runtime/environ.c
! e1a1adb3e524ddf75ba8b9489bd2398e  libgfortran/runtime/error.c
! d2d90f1aabfe1ec4cda529291d2a7129  libgfortran/runtime/fpu.c
! dbc03cfea1a6e52ee327733d089847c5  libgfortran/runtime/in_pack_class.c
! f63a06d746592d67d8c161bc2461a24e  libgfortran/runtime/in_pack_generic.c
! 282c86a1285121980035fde58e25b76e  libgfortran/runtime/in_unpack_class.c
! 21794ce17ae356747f615a6d337af82a  libgfortran/runtime/in_unpack_generic.c
! 4d802b99b80867cb04428b525193d88a  libgfortran/runtime/main.c
! 5ce36cbc5894f7b5be62223200d3c3d2  libgfortran/runtime/memory.c
! 9f06680aeddc8c2eca0a13e0f0b524e9  libgfortran/runtime/minimal.c
! 0582a639f3205388696aa556014b0446  libgfortran/runtime/pause.c
! 788db7515943129f6636014ca47f8683  libgfortran/runtime/select.c
! e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
! fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
! 08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 8e72369d63e9e2d9155ac3455b633fdd  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! 38778826306c4efe1f6a33cb21cece23  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! b0383b92fc4bd0e9d6f2c894d2fc961d  libgm2/aclocal.m4
! ccbcfbf4b1288aa29954381448077572  libgm2/config.h.in
! 7e6f69d668fbd2ef5b1aae6f2ed2bc95  libgm2/configure
! 6010d278668d3951d827a24da488c534  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
! 26941eba9215610a8751469175c3d8f1  libgm2/libm2iso/Makefile.am
! 9226c2947deac943dd64c5faa28b5611  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
! f07f5e7ebaed0d3c87d968aec034ab6b  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
! 2990568f387a516f255792a1cc54039f  libgm2/libm2log/Makefile.am
! c0826ae4087216cbe3d07b7ac749be7c  libgm2/libm2log/Makefile.in
  36f227f41f6cb4fc9bd5eaa5345378f3  libgm2/libm2min/Makefile.am
! 0508f72ba2d22517546c50f880f3cf9e  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! 26e1cfb99ad6f72aa6ecedf590bada9b  libgm2/libm2pim/Makefile.am
! bf74dde0f66b5139acccabfa3477ac3c  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
*************** dee72a6a60e99528b0d17bf3ff9a1e15  libgo/
*** 113101,113108 ****
  bc2f6032c98896249eadb56177c7d357  libgo/config/ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  libgo/config/ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  libgo/config/lt~obsolete.m4
! 0117bac49db48cb650ff40340d0b2d7a  libgo/configure
! 9e8b46a6f341fa7277c97c2cfedd3794  libgo/configure.ac
  aac32f286f60f443762f017a205c38dc  libgo/go/archive/tar/common.go
  f7d12cedad0468bfe618b4d2f78e2389  libgo/go/archive/tar/format.go
  2bbe8478660c394e2178904d3b0fd954  libgo/go/archive/tar/fuzz_test.go
--- 120840,120847 ----
  bc2f6032c98896249eadb56177c7d357  libgo/config/ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  libgo/config/ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  libgo/config/lt~obsolete.m4
! 8f07e06843973c2d01aa48394227d1c5  libgo/configure
! 2e403fc48fff70ffa9cf29c469278ffd  libgo/configure.ac
  aac32f286f60f443762f017a205c38dc  libgo/go/archive/tar/common.go
  f7d12cedad0468bfe618b4d2f78e2389  libgo/go/archive/tar/format.go
  2bbe8478660c394e2178904d3b0fd954  libgo/go/archive/tar/fuzz_test.go
*************** dcdcea9380167bc0fc31fbcc9ae7cd70  libgo/
*** 114844,114857 ****
  1e4c9666f505813e54ed2b3d4056d2f8  libgo/go/crypto/tls/example_test.go
  6c121e7342c13fdc786312f66d8dbb99  libgo/go/crypto/tls/generate_cert.go
  92c22ddf04bfc1134e9ce858e4fe63d1  libgo/go/crypto/tls/handshake_client.go
! b1c3932241580b99b951fae0edb61fd8  libgo/go/crypto/tls/handshake_client_test.go
  0427ef397843c02f3be96cfacd0f14a3  libgo/go/crypto/tls/handshake_client_tls13.go
  46b69f2680156d5e71cb8c6ae2343e94  libgo/go/crypto/tls/handshake_messages.go
  0945ccb0c15b2deb95d8ca2b33b0ea54  libgo/go/crypto/tls/handshake_messages_test.go
  5acf20b462aafc7a101527ee55f5c865  libgo/go/crypto/tls/handshake_server.go
! 2b8b5b21bf0ce23f0cc1267b74babf93  libgo/go/crypto/tls/handshake_server_test.go
  4de3e07cdf2105cfcbfc08e792804987  libgo/go/crypto/tls/handshake_server_tls13.go
! b064ac2d0b92b42852f6ecd68366b46d  libgo/go/crypto/tls/handshake_test.go
  9a32a638fe102dd2d9c10bdc7fea9e5e  libgo/go/crypto/tls/handshake_unix_test.go
  a7f68e8d2ee39cb8a707a0e0eba8ca47  libgo/go/crypto/tls/key_agreement.go
  aa7a95034a03be2806fa57040be5dc21  libgo/go/crypto/tls/key_schedule.go
--- 122583,122596 ----
  1e4c9666f505813e54ed2b3d4056d2f8  libgo/go/crypto/tls/example_test.go
  6c121e7342c13fdc786312f66d8dbb99  libgo/go/crypto/tls/generate_cert.go
  92c22ddf04bfc1134e9ce858e4fe63d1  libgo/go/crypto/tls/handshake_client.go
! f76251738608d414afc6c3f485ba35a8  libgo/go/crypto/tls/handshake_client_test.go
  0427ef397843c02f3be96cfacd0f14a3  libgo/go/crypto/tls/handshake_client_tls13.go
  46b69f2680156d5e71cb8c6ae2343e94  libgo/go/crypto/tls/handshake_messages.go
  0945ccb0c15b2deb95d8ca2b33b0ea54  libgo/go/crypto/tls/handshake_messages_test.go
  5acf20b462aafc7a101527ee55f5c865  libgo/go/crypto/tls/handshake_server.go
! 20c613e2c2699d3c223d49f0ca1b8984  libgo/go/crypto/tls/handshake_server_test.go
  4de3e07cdf2105cfcbfc08e792804987  libgo/go/crypto/tls/handshake_server_tls13.go
! 6a407d52ecada2de1da0168e7271f0c0  libgo/go/crypto/tls/handshake_test.go
  9a32a638fe102dd2d9c10bdc7fea9e5e  libgo/go/crypto/tls/handshake_unix_test.go
  a7f68e8d2ee39cb8a707a0e0eba8ca47  libgo/go/crypto/tls/key_agreement.go
  aa7a95034a03be2806fa57040be5dc21  libgo/go/crypto/tls/key_schedule.go
*************** d6a3256a046d57feca0ff021235c9ede  libgo/
*** 114982,114988 ****
  e2ec9bd8f6f42c104c048bb324bf00d7  libgo/go/crypto/tls/testdata/example-key.pem
  e0281d4b0d8067540dc185550b995938  libgo/go/crypto/tls/ticket.go
  fb39d36797992586f3178188718b0c36  libgo/go/crypto/tls/tls.go
! 7f2c0871f5c00a0aeaa3fad129d50796  libgo/go/crypto/tls/tls_test.go
  fee50745a618969de6971115cea99c5b  libgo/go/crypto/x509/cert_pool.go
  6ba0dbba8fd8e3ffecd7972e85cfdc83  libgo/go/crypto/x509/hybrid_pool_test.go
  7fc12e96e70223731b3f6723c759bcee  libgo/go/crypto/x509/name_constraints_test.go
--- 122721,122727 ----
  e2ec9bd8f6f42c104c048bb324bf00d7  libgo/go/crypto/tls/testdata/example-key.pem
  e0281d4b0d8067540dc185550b995938  libgo/go/crypto/tls/ticket.go
  fb39d36797992586f3178188718b0c36  libgo/go/crypto/tls/tls.go
! bdd3816b98bd07ab38ad8cfdfc5ac82b  libgo/go/crypto/tls/tls_test.go
  fee50745a618969de6971115cea99c5b  libgo/go/crypto/x509/cert_pool.go
  6ba0dbba8fd8e3ffecd7972e85cfdc83  libgo/go/crypto/x509/hybrid_pool_test.go
  7fc12e96e70223731b3f6723c759bcee  libgo/go/crypto/x509/name_constraints_test.go
*************** c178d94c2363d68c114e7e28c23b1a25  libgo/
*** 117759,117765 ****
  21ca4bdb7d827c5d39c0f256ed673d6c  libgo/go/runtime/testdata/testprogcgo/threadpanic_unix.c
  4521507061b29e1f266a11e2a7a99698  libgo/go/runtime/testdata/testprogcgo/threadpanic_windows.c
  f8f779bc7501702ab96b2344ca3d8755  libgo/go/runtime/testdata/testprogcgo/threadpprof.go
! b26816479c9d329ce0ba946581ca4379  libgo/go/runtime/testdata/testprogcgo/threadprof.go
  a2d305ff02345fef6e1b5f2cebc673bc  libgo/go/runtime/testdata/testprogcgo/traceback.go
  bb9d48f3cabbeb1b3abed468ae591e9d  libgo/go/runtime/testdata/testprogcgo/traceback_c.c
  7b5b2a9d01baba8a1d2171d527a6d355  libgo/go/runtime/testdata/testprogcgo/traceback_gccgo.go
--- 125498,125504 ----
  21ca4bdb7d827c5d39c0f256ed673d6c  libgo/go/runtime/testdata/testprogcgo/threadpanic_unix.c
  4521507061b29e1f266a11e2a7a99698  libgo/go/runtime/testdata/testprogcgo/threadpanic_windows.c
  f8f779bc7501702ab96b2344ca3d8755  libgo/go/runtime/testdata/testprogcgo/threadpprof.go
! e7d6162433f2a035110d243a84454254  libgo/go/runtime/testdata/testprogcgo/threadprof.go
  a2d305ff02345fef6e1b5f2cebc673bc  libgo/go/runtime/testdata/testprogcgo/traceback.go
  bb9d48f3cabbeb1b3abed468ae591e9d  libgo/go/runtime/testdata/testprogcgo/traceback_c.c
  7b5b2a9d01baba8a1d2171d527a6d355  libgo/go/runtime/testdata/testprogcgo/traceback_gccgo.go
*************** e2663fe7606ce74f4c52a0432e1cc57d  libgo/
*** 118019,118026 ****
  21c7b2d93dc14b6c353aa068a648ee4d  libgo/go/syscall/syscall_freebsd.go
  9272cf24534b777af3e85023778fcda9  libgo/go/syscall/syscall_freebsd_arm64.go
  b6eddac020ed41f656c3b76b772d01f1  libgo/go/syscall/syscall_freebsd_test.go
! c25bc1aaa92b4df7004224c61b788425  libgo/go/syscall/syscall_funcs.go
! df40b9d47c052f91f1588367cbf76968  libgo/go/syscall/syscall_funcs_stubs.go
  c5702582446869e621267d7447ae1ae3  libgo/go/syscall/syscall_glibc.go
  43ed8fc077ec673bd235d2ab2c6054e0  libgo/go/syscall/syscall_js.go
  ac2e05c533b501753bd20e1de8901368  libgo/go/syscall/syscall_linux.go
--- 125758,125765 ----
  21c7b2d93dc14b6c353aa068a648ee4d  libgo/go/syscall/syscall_freebsd.go
  9272cf24534b777af3e85023778fcda9  libgo/go/syscall/syscall_freebsd_arm64.go
  b6eddac020ed41f656c3b76b772d01f1  libgo/go/syscall/syscall_freebsd_test.go
! e07393f0aac3848419088482816e1535  libgo/go/syscall/syscall_funcs.go
! 6e6cb48ab185fa12902715227712152b  libgo/go/syscall/syscall_funcs_stubs.go
  c5702582446869e621267d7447ae1ae3  libgo/go/syscall/syscall_glibc.go
  43ed8fc077ec673bd235d2ab2c6054e0  libgo/go/syscall/syscall_js.go
  ac2e05c533b501753bd20e1de8901368  libgo/go/syscall/syscall_linux.go
*************** bc8121acb97ddc7bf2ce153b0918ca35  libgo/
*** 118551,118561 ****
  1b81e55f6ff9cd0734e326617f8fb7ac  libgo/runtime/go-memmove.c
  98540d82f142ae2953bee5e0ed72cd92  libgo/runtime/go-mmap.c
  b532f1e01813112ca6cc108a5b8ffdf2  libgo/runtime/go-nanotime.c
! 7f766af44d2f922e4cfd15b9867eab8d  libgo/runtime/go-nosys.c
  e232a63e4af4c71972324051f3fd1c86  libgo/runtime/go-now.c
  d9925cb56c2ba2bc269933fc5c2ca259  libgo/runtime/go-reflect-call.c
  b2f07b4235f5d3afea32439a6620995b  libgo/runtime/go-setenv.c
! a418f2906ff832c7837140b6bf91492b  libgo/runtime/go-signal.c
  703164d8cf7bb26aaee3bce1ac6382ac  libgo/runtime/go-strerror.c
  6ade856ecb3d86b341bf182f31679cfe  libgo/runtime/go-string.h
  2b81afafd311c1c2b992982984c5e326  libgo/runtime/go-unsafe-pointer.c
--- 126290,126300 ----
  1b81e55f6ff9cd0734e326617f8fb7ac  libgo/runtime/go-memmove.c
  98540d82f142ae2953bee5e0ed72cd92  libgo/runtime/go-mmap.c
  b532f1e01813112ca6cc108a5b8ffdf2  libgo/runtime/go-nanotime.c
! 88c803bcbaf2699ed5880341b268f51c  libgo/runtime/go-nosys.c
  e232a63e4af4c71972324051f3fd1c86  libgo/runtime/go-now.c
  d9925cb56c2ba2bc269933fc5c2ca259  libgo/runtime/go-reflect-call.c
  b2f07b4235f5d3afea32439a6620995b  libgo/runtime/go-setenv.c
! 85ce5cdd65ce6fba29764d288be9bd0a  libgo/runtime/go-signal.c
  703164d8cf7bb26aaee3bce1ac6382ac  libgo/runtime/go-strerror.c
  6ade856ecb3d86b341bf182f31679cfe  libgo/runtime/go-string.h
  2b81afafd311c1c2b992982984c5e326  libgo/runtime/go-unsafe-pointer.c
*************** a069ce221f9436d070ef24e5b056f5a7  libgo/
*** 118566,118572 ****
  ee09b4a160083b328fd1b84c8e6bef3e  libgo/runtime/print.c
  d39dbcde4108cab98e6b46d3f76727a7  libgo/runtime/proc.c
  88236bd9baaae0e22c2fe3c097d9cfbf  libgo/runtime/rtems-task-variable-add.c
! 22e1fe86ecff5bdaeab4f22375951fdb  libgo/runtime/runtime.h
  5b900bdaaf4bbdf1139d11f6f0220757  libgo/runtime/runtime_c.c
  b0bef0d844dadebbe84ad9cf32c002bf  libgo/runtime/stack.c
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
--- 126305,126311 ----
  ee09b4a160083b328fd1b84c8e6bef3e  libgo/runtime/print.c
  d39dbcde4108cab98e6b46d3f76727a7  libgo/runtime/proc.c
  88236bd9baaae0e22c2fe3c097d9cfbf  libgo/runtime/rtems-task-variable-add.c
! 68ac330b3a7a654837fc5b8653b18a6d  libgo/runtime/runtime.h
  5b900bdaaf4bbdf1139d11f6f0220757  libgo/runtime/runtime_c.c
  b0bef0d844dadebbe84ad9cf32c002bf  libgo/runtime/stack.c
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 118579,118781 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! ee5cc72bc16657ca84e0d8dc621c7bd4  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! ea86ef6e739ee81b963e6f1f456ec887  libgomp/Makefile.am
! 175cf5d896d110ed86d9cd72e1565b83  libgomp/Makefile.in
! 61fe8e644000727dc3e4c6a40c02ed83  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
  30a64ccfecfa60e8b5098e9fe26ea707  libgomp/aclocal.m4
! 94684a0e1ce8bde5aaa266c86fffe4a2  libgomp/affinity-fmt.c
! c840b066d8a98a896bc6668a93ac9e31  libgomp/affinity.c
! 8321390299a0d343737578485bdb863e  libgomp/alloc.c
! aede47e38a9c413d8b14350a1a803f03  libgomp/allocator.c
! 11210b803bc36bd97afe47689a884d80  libgomp/atomic.c
! 3a71796122d2de02f2f36d2ee6564eef  libgomp/barrier.c
! b9daa163035ab7f06340a2e13d499d27  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
! af4a790d376cf8fb95037499d2f5341f  libgomp/config/accel/lock.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/mutex.c
! 2202e2d032ab35c827fefe93429e93db  libgomp/config/accel/mutex.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-async.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-cuda.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-host.c
! 16ad4ffbc6ca88dacefcf4a0dc19ef43  libgomp/config/accel/oacc-init.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-mem.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-plugin.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/accel/omp-lock.h
! e6f9610caa7c56bcc2d0f894358ddbfe  libgomp/config/accel/openacc.f90
! b9fd60ee991267c32331c3d07345d799  libgomp/config/accel/pool.h
! 2e7b66796d5783091cb62fff9eebe858  libgomp/config/accel/proc.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/ptrlock.c
! 77887fdeededf1729b92c41eda5f1353  libgomp/config/accel/ptrlock.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/sem.c
! 71957c749e5535651efd6b2b51ca1351  libgomp/config/accel/sem.h
! 165ac744518ca2de2ed2453a5f6dbbac  libgomp/config/accel/target-indirect.c
! c747888201c04b928c4a302c4afad483  libgomp/config/accel/thread-stacksize.h
! 5efb49f352213bc48ab993cdb454aa73  libgomp/config/bsd/proc.c
! 27ddf1f0baba4e90ca7325d6f1a391bc  libgomp/config/darwin/plugin-suffix.h
! 54f6d493023629951d0032cfba233fc3  libgomp/config/darwin/thread-stacksize.h
! 0bcc88713a30ee3580edfd909655e925  libgomp/config/gcn/affinity-fmt.c
! 2a4046939917a09ae3bf3fc701c0e58c  libgomp/config/gcn/allocator.c
! 58d1518b8ab65878be5f191b4e74715d  libgomp/config/gcn/bar.c
! dd9141233496bcc3db58c75fb767fe48  libgomp/config/gcn/bar.h
! 1388dc0994eab59359d1538c26648fba  libgomp/config/gcn/doacross.h
! 4afa699e02f8efb3f77f87ccd6f1a0f7  libgomp/config/gcn/icv-device.c
! f4dbd8c6c755b375c1daf06eb4d4ecb3  libgomp/config/gcn/libgomp-gcn.h
! 351fc43106615867ae0e9bcfbb02478a  libgomp/config/gcn/oacc-target.c
! 5eae1edc1c393767f0fb248c0460a639  libgomp/config/gcn/simple-bar.h
! 70d9fe750fdf2574f3bd3d174bbf5f18  libgomp/config/gcn/target.c
! dc7eaf959735348c4b0c7a496811285c  libgomp/config/gcn/task.c
! 2c025b5609922962dce5f615c236e789  libgomp/config/gcn/team.c
! 39bd46769a18fb2bdbf84f5013a5ce83  libgomp/config/gcn/teams.c
! 40ae98cf63129b877ce33cb4c6b09b99  libgomp/config/gcn/time.c
! bd5710297441ab8690b290dcc0720a87  libgomp/config/hpux/plugin-suffix.h
! e2effe97da57f6b6739da7eff9de4ff3  libgomp/config/linux/affinity.c
! 583c4c4c099a064aa872585c20075f52  libgomp/config/linux/allocator.c
! 493cc53a4b16d7d87300c28d8405b987  libgomp/config/linux/alpha/futex.h
! f8bf583f4db16fad1f0339eecd523c28  libgomp/config/linux/bar.c
! f94e5fe5f7ca01fe19aaf8357f371151  libgomp/config/linux/bar.h
! b6275ac8c936f81ad8b6f79d0ced20f6  libgomp/config/linux/doacross.h
! 82c4a3ddd5a855e89866cf77bb9d194c  libgomp/config/linux/futex.h
! eed282ee6b6bdf8a30a7842797362640  libgomp/config/linux/ia64/futex.h
! 11a4667528cd0b6e1f8e9602bf713f5d  libgomp/config/linux/lock.c
! 179f2c1f3840fc6a95af25f64c171a63  libgomp/config/linux/mips/futex.h
! e147a1f1603bd75d23e280f02f9df7d7  libgomp/config/linux/mutex.c
! 3ada81ae79bfc809acc2c66bd901522d  libgomp/config/linux/mutex.h
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
! 26ab735c1787064156a9be7c0b2fd6dc  libgomp/config/linux/powerpc/futex.h
! 8eeeffdabf15583cf57e7856367f3918  libgomp/config/linux/proc.c
! 8bb452acaca4429bced9298c8bdb61de  libgomp/config/linux/proc.h
! de2abc06316832bedf4e003d6d3b3c16  libgomp/config/linux/ptrlock.c
! 83dcc5de3958366c331b3d45c55a8592  libgomp/config/linux/ptrlock.h
! fb390d9da44cd2237946dbaa2453899d  libgomp/config/linux/s390/futex.h
! 4518d5bd4b801ae7b4db819fa507b346  libgomp/config/linux/sem.c
! f853733bb18c70fc25dcfda072bd9345  libgomp/config/linux/sem.h
! 8d19c271162dd100c19117251b2b1c7d  libgomp/config/linux/sparc/futex.h
! 5d819c7214350f9e7b05d8d731b866db  libgomp/config/linux/tile/futex.h
! 666c372a45e7178611b2a3689e9eb44b  libgomp/config/linux/wait.h
! 68057b8c80474a7cb97211cedb429f12  libgomp/config/linux/x86/futex.h
! 5b426e7ca17d8eee8919a70f45982574  libgomp/config/linux/x86/spincount.h
! 45a1bc3024cf62d357c6715d54be61b0  libgomp/config/mingw32/affinity-fmt.c
! 1ba54cf1ddbed9cea27f36cc4745ebd8  libgomp/config/mingw32/proc.c
! 8141e1048f76a72ecc0753e07ae1b612  libgomp/config/mingw32/time.c
! 16b0e92434e93b0200ee677b2d3bc177  libgomp/config/nvptx/affinity-fmt.c
! 0377a6e6660392bccd8610587a980f6c  libgomp/config/nvptx/allocator.c
  6bb7711f9ae2bc93662a9c5ece06f7ee  libgomp/config/nvptx/atomic.c
! 62b60b694ce7c3aee73b673d4e17a129  libgomp/config/nvptx/bar.c
! e0a5dc6abc341bcd6cc2bb23d9caed52  libgomp/config/nvptx/bar.h
! d18e35bd2afdc112616b0ab858157774  libgomp/config/nvptx/doacross.h
! c84194f42217b9673ace6c3e8c070b61  libgomp/config/nvptx/error.c
! e7cb042ca2a24892d351a95957a8d2ed  libgomp/config/nvptx/icv-device.c
! 3d5d9f23e2446d813b6733012cb7b16f  libgomp/config/nvptx/libgomp-nvptx.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/nvptx/oacc-parallel.c
! 44b690426328d8534d74ee609d821fb6  libgomp/config/nvptx/simple-bar.h
! 646379886cdbd0a2b5a6bfd8eb6722c9  libgomp/config/nvptx/target.c
! 6c450f3c1ad39d63e73838625308fbcb  libgomp/config/nvptx/task.c
! 2b3a21d17b1e63dd6e9e0e53338cf88e  libgomp/config/nvptx/team.c
! 95759ddb64fe075d0a1344c64789e87f  libgomp/config/nvptx/teams.c
! 4ede0dfa11a22382e419c8c399efaa14  libgomp/config/nvptx/time.c
! 3c5dd69fe7804db68e45d36c149abb38  libgomp/config/posix/bar.c
! 1c2c886da6382bd159b1c589e943de4b  libgomp/config/posix/bar.h
! 16f8d6a1e0f0e5b1f04ad9df769c2915  libgomp/config/posix/doacross.h
! 570f07b2a9ace3c61ab6f84317ffc70c  libgomp/config/posix/lock.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/mutex.c
! 29243c43996fc0619b9a8a0f448ea6a4  libgomp/config/posix/mutex.h
  e84e55894856b53abe34b30f6148b070  libgomp/config/posix/omp-lock.h
! ad4f6f8a0b0594f85ce11f5e916c3087  libgomp/config/posix/plugin-suffix.h
! 54de1eeefe550485cfb85f7a872fb00a  libgomp/config/posix/pool.h
! 45a4e55d4c8a881c8f44831d4a47ff06  libgomp/config/posix/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/ptrlock.c
! 6a653838a5332e85e974294f96951891  libgomp/config/posix/ptrlock.h
! e3d78587a9f79b8222ea957be030185c  libgomp/config/posix/sem.c
! 000a186f31fe25d068cfa854ab345ad0  libgomp/config/posix/sem.h
! 1de75793ae82eb993537d04064481779  libgomp/config/posix/simple-bar.h
! 1d71bad337fa45ca7f7edf77bf036b3f  libgomp/config/posix/thread-stacksize.h
! 702bc9161e2c0a80a13c5eb3c02db57f  libgomp/config/posix/time.c
! dcfd4b287ddff257485fc870959632b4  libgomp/config/rtems/affinity-fmt.c
! 22e50b9b0ebe30787f0f66aa3d4d7377  libgomp/config/rtems/bar.c
! 4d39af1133c8b04b5edfbbfc0ccbf896  libgomp/config/rtems/bar.h
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/mutex.c
! ba53bd07f91bc7a441cfd11c3c4a8b53  libgomp/config/rtems/mutex.h
! c9bb7c98433bb5ceba51e3bd3c49c924  libgomp/config/rtems/pool.h
! c68f8f3649141fc5d43f255899386e80  libgomp/config/rtems/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
! a8baa26cc7d226ec784692e2bf85f5a6  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! e1ac8cd041ca8b2eb7f6ced390842bde  libgomp/configure
  250e49a5865485507899765bf69913a0  libgomp/configure.ac
  0eb9aa41c92e30c6fb1494575b1c8daa  libgomp/configure.tgt
! 1a1821839c7c47f05477be3f393e95db  libgomp/critical.c
! 005deecaf970abe1c552840234fb93e4  libgomp/env.c
! 4f081f55348b1fc1e26780ec2f49dc9b  libgomp/error.c
! b6500eaf552c0da39c830a1a14a3058f  libgomp/fortran.c
! c3d3e689f97a6a1ac096a8fc893c93bb  libgomp/hashtab.h
! 29c283a899804d7986a4ce69aa256d6e  libgomp/icv-device.c
! 03affef84ebd1d5833a5a1deb1c3a250  libgomp/icv.c
! 83e6d9941c74f24b672206b83e59cb4a  libgomp/iter.c
! 358b9a20fc0c665b993229fd0a071ff1  libgomp/iter_ull.c
! 29ffc2d98897ade67adb2a0f60c4278a  libgomp/libgomp-plugin.c
! 70c0a3c82cb60714632903474553ec70  libgomp/libgomp-plugin.h
! b888c42439320a17a69b075cd32e0c30  libgomp/libgomp.h
! 89be488ee11d173f1dae1eac4dadb816  libgomp/libgomp.info
! e609d01257168984c31c75e8132e785d  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! b1b5c1758cb28db35eda3734919df43f  libgomp/libgomp.texi
! 7ac313b7761cf82376d507fc1fe39dca  libgomp/libgomp_f.h.in
! e2bc09691827f212e9893150bb72fe77  libgomp/libgomp_g.h
! f0794729835f6ab570d300774155d91a  libgomp/lock.c
! 23ed75cd5d983c6d6bac2985596ad0d2  libgomp/loop.c
! 9d000696e00d26e154e8448123e37413  libgomp/loop_ull.c
! b1ec0e5c83725e17f3de1133821cfd34  libgomp/oacc-async.c
! 6887aea4200a5237f4da287322e84030  libgomp/oacc-cuda.c
! 2b769a2aa147355bf61f6bc93ce049a7  libgomp/oacc-host.c
! 375d57650ff6295c29f277a1fbe203b5  libgomp/oacc-init.c
! b5abcd36406de6afeec7ba5929171930  libgomp/oacc-int.h
! 4641cdb62854ed6a7e714709013d878b  libgomp/oacc-mem.c
! 5a62f030c939f2ade4933f1c589dc8c9  libgomp/oacc-parallel.c
! d6026162a0180991d3549c40b8d40e70  libgomp/oacc-plugin.c
! ce9ff90ff4941712225cf33a6bca9391  libgomp/oacc-plugin.h
! f497dcfbdd19fc2cc14050f7044f3921  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! 52ea4dced6b46b4ffc21071bde984292  libgomp/omp.h.in
! c986250ee91aef3aca5d7b4b4f510cc4  libgomp/omp_lib.f90.in
! ac4f414a86c3ca9535dbe963511f34c2  libgomp/omp_lib.h.in
! 71d62117b9ed181882013c7078916120  libgomp/openacc.f90
! f86d8c2315e4afedba82a7c2e9380245  libgomp/openacc.h
! a1e40ccddb193f6e07c071d06179b9b8  libgomp/openacc_lib.h
! 3c5bf0fd945a922158545570346993f5  libgomp/ordered.c
! 1f9e3eae7bab71fa032725d67c184c2f  libgomp/parallel.c
! 9aa7eb2602500c1c6c0ea727f25ef7e5  libgomp/plugin/Makefrag.am
! 714018eaae432b3581c7b4c3f7416cef  libgomp/plugin/configfrag.ac
! 1676cd3e1ecd82f5e18fe8a0090c88ac  libgomp/plugin/cuda-lib.def
! d42bbe062642418c62a281ef90cfebc3  libgomp/plugin/plugin-gcn.c
! dd8e46702c053e667a7e3249d6aa1814  libgomp/plugin/plugin-nvptx.c
! 38d2a2f8ce3975fa0010e8c51d057a7d  libgomp/priority_queue.c
! 2b0d32daa4f82bcdb1857d9a21e51c6a  libgomp/priority_queue.h
! 8cde76abd7af4ee70781a57753b500f9  libgomp/scope.c
! aebbda5de35f8d9fb71d033e7655a73d  libgomp/sections.c
! fd0e1cc861ddf87474ae0f32af9d01c9  libgomp/secure_getenv.h
! 14e3eda76836dd4c52a1bbf7b1f0a485  libgomp/single.c
! 17ff6c83522ad44985d45cbcc614c753  libgomp/splay-tree.c
! ce76f5394f840db632ee3a6b9bf018cf  libgomp/splay-tree.h
! b688a26f9fe3c42166f7fe56691a542c  libgomp/target-indirect.c
! ea7883aba49b652fadde5584062b706b  libgomp/target.c
! b919af481da1537987d41ff5747f6525  libgomp/task.c
! a36bb3d522d6406aae78220a6e8f2bf6  libgomp/taskloop.c
! 962a1d92dcbd69b201674941f32d26ea  libgomp/team.c
! c1cd11f44114bcdded1d233def51f034  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
  8a802d519aa310eef9d41867d80ce779  libgomp/testsuite/Makefile.in
! 1f0457ba40fefe8928052f12b02cdba7  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
! 3c0abef4b79022f4279b3f86f4cd6b75  libgomp/testsuite/lib/libgomp.exp
  751966e2063e2e638eb537562f7d4551  libgomp/testsuite/libgomp-site-extra.exp.in
  6d56ea402ff11fa0bd533c6d73e2ecde  libgomp/testsuite/libgomp-test-support.exp.in
  75cc672a1bf25974c5f4c5e3bc1a74b1  libgomp/testsuite/libgomp.c++/affinity-1.C
  196ffcd43fb2edf60795e6aabf50d259  libgomp/testsuite/libgomp.c++/allocate-1.C
  2c957d1d7acf181ac6aa27218cc24d76  libgomp/testsuite/libgomp.c++/atomic-1.C
  75d6941396142273d25d6693d7556616  libgomp/testsuite/libgomp.c++/atomic-10.C
  5562ceebc0054102930e3944e3d8cea0  libgomp/testsuite/libgomp.c++/atomic-11.C
--- 126318,126522 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 7ae7b4bd503fab803400a7fc1d490ea8  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! a732cc940d0d19d8091745ee2a77daee  libgomp/Makefile.am
! a1cd9225f663ff9380c1e51eee8c4b14  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
! 94bb34cb9fc447759270a29394905c04  libgomp/allocator.c
! 4ade656c74aa8fd959caf250378befab  libgomp/atomic.c
! 5948a82c8edeab7b492b99495b93c1c4  libgomp/barrier.c
! 654ad0ee054a67331ba12bff0e9b71d3  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
! bff4908f94ab6414754d17e7bdb16d9d  libgomp/config/accel/lock.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/mutex.c
! efbbe4971a45fef4c057b3625204b388  libgomp/config/accel/mutex.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-async.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-cuda.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-host.c
! 5f7a16813fce5259ac6d4d268080e6cb  libgomp/config/accel/oacc-init.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-mem.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-plugin.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/accel/omp-lock.h
! 30b6cbbd4eba844c8be1a96697150acb  libgomp/config/accel/openacc.f90
! 8043237831e8ba0480da86294426188a  libgomp/config/accel/pool.h
! d6e096c697ab62b73e025ffc63d68ce8  libgomp/config/accel/proc.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/ptrlock.c
! 86ef0ecdd0892d6dc1c11f050e413147  libgomp/config/accel/ptrlock.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/sem.c
! e4e15589f222c2aec21754e3e5a46b08  libgomp/config/accel/sem.h
! 79cd9b5789e0ce828dabd7fac2c70478  libgomp/config/accel/target-indirect.c
! 967a256c3675ff0b33580d16d9c4d3fc  libgomp/config/accel/thread-stacksize.h
! 917b1d0f3380a24511e6dcd14130b388  libgomp/config/bsd/proc.c
! e71034ea32200ef9be7aef2679314d11  libgomp/config/darwin/plugin-suffix.h
! eef2d6ff66275df9ac2cdc6e1e4c623f  libgomp/config/darwin/thread-stacksize.h
! 7a7abbda7636b73d904438ed30f0dfc3  libgomp/config/gcn/affinity-fmt.c
! a6baab45f7291be4829b3eed2a856ed3  libgomp/config/gcn/allocator.c
! 544cf6af8de3e0cf7a4ca210dd2c6c44  libgomp/config/gcn/bar.c
! 981fa55ee1e8b5189ea72a980f7d1472  libgomp/config/gcn/bar.h
! e778c0c26ce27386bdd21021765caf9d  libgomp/config/gcn/doacross.h
! 502ad5cb908f4e4fd2b115ade60b45c1  libgomp/config/gcn/icv-device.c
! 9b16ed9ed84e93eb5f5a9cfcceaa7c18  libgomp/config/gcn/libgomp-gcn.h
! e06b66d85f9af6d6604069e35fbf2a9a  libgomp/config/gcn/oacc-target.c
! e4b6cb67b158f442665d13bb328b54d8  libgomp/config/gcn/simple-bar.h
! 38765671d422423c3247797bb4f1d8a6  libgomp/config/gcn/target.c
! 6f8b906d752f32dc41471244abcb677d  libgomp/config/gcn/task.c
! f3cb3f8d0f00e94aaa5ef1c69264a7c6  libgomp/config/gcn/team.c
! 3717defca7199ec75546417cfbd533bd  libgomp/config/gcn/teams.c
! 08f45643e2ed98e1720544184d88dd55  libgomp/config/gcn/time.c
! ce0a50bc726967d0319a49c79324bfb7  libgomp/config/hpux/plugin-suffix.h
! 2feb00269ee4729b72057dd715498c70  libgomp/config/linux/affinity.c
! 7c84aaf81209fc6e75f2a0f6a6216001  libgomp/config/linux/allocator.c
! 92db90a3fbac3defcfefb84928fb1c70  libgomp/config/linux/alpha/futex.h
! 1c2049dcd1f949262571445fd76ca9e4  libgomp/config/linux/bar.c
! 0f9a450d13be243bdc3d9c724a7f84a5  libgomp/config/linux/bar.h
! 1e08e9998ecc680d3d65efa2634626de  libgomp/config/linux/doacross.h
! b4a9aed98f1724e7506c6411571b53ce  libgomp/config/linux/futex.h
! c3ab2df3e9cbae7080887d615db38ef5  libgomp/config/linux/ia64/futex.h
! 0bcc28f2435b6d2f066461e6bc330576  libgomp/config/linux/lock.c
! 130b22c9d923ffe806722df6f9b66d24  libgomp/config/linux/mips/futex.h
! 2b6d4fcaee0ccc52cfc913d86237aa74  libgomp/config/linux/mutex.c
! a124d03b8ab79bf79e26708715fae7bd  libgomp/config/linux/mutex.h
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
! c0ec3755380193bb18e4a8fdc5124117  libgomp/config/linux/powerpc/futex.h
! 9f32d3f2df1c42e8eaf43c53d76fc11f  libgomp/config/linux/proc.c
! 32d787250d14b27a4a3056502b99d800  libgomp/config/linux/proc.h
! 3167cb54083043747b904051262b9a2d  libgomp/config/linux/ptrlock.c
! 38702e52269a11c0a7da00d633e60544  libgomp/config/linux/ptrlock.h
! 49b9b869482f56e0e1ebe55379a643c0  libgomp/config/linux/s390/futex.h
! 8d7910580c18519632e41a2825789f39  libgomp/config/linux/sem.c
! 143a106da7d28120ca134c98b0e82b29  libgomp/config/linux/sem.h
! b8809726951f1c6325f0a740e26c7232  libgomp/config/linux/sparc/futex.h
! 632559d5b44af76c6c1335b9bd440da2  libgomp/config/linux/tile/futex.h
! 5244211a170fc5de58475e90adc480a5  libgomp/config/linux/wait.h
! d1076e470bd5b228315a3a681b24de5a  libgomp/config/linux/x86/futex.h
! 04d99068e64df5a51d5c87f5681d099d  libgomp/config/linux/x86/spincount.h
! 6e6a2c624c62c8e4ef922bf9cffc95e3  libgomp/config/mingw32/affinity-fmt.c
! 357ab6475373413869b36f616da1c10c  libgomp/config/mingw32/proc.c
! 85be35a45ed5128be82baa1fe38ddd31  libgomp/config/mingw32/time.c
! 93b63ccb3756bf579cc914e73375e4b2  libgomp/config/nvptx/affinity-fmt.c
! fc73d12190b3c0fa2f979d4a02cc874e  libgomp/config/nvptx/allocator.c
  6bb7711f9ae2bc93662a9c5ece06f7ee  libgomp/config/nvptx/atomic.c
! 958f9e6b79e432a275a82d93fdfa4777  libgomp/config/nvptx/bar.c
! 473ee9cbd42d59eb389992bf102ee80e  libgomp/config/nvptx/bar.h
! 788ff5f0c69aaa73f65001b6d3151984  libgomp/config/nvptx/doacross.h
! 2b8c136954e42720454fc62563995a51  libgomp/config/nvptx/error.c
! 958f2ab3e5fcdc7e40577e6c3007c743  libgomp/config/nvptx/icv-device.c
! 3bee3571a5cb7bb4f8810de832b21864  libgomp/config/nvptx/libgomp-nvptx.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/nvptx/oacc-parallel.c
! 24405a02fbc20420cf05ae605fe2c6df  libgomp/config/nvptx/simple-bar.h
! d7b41fedfc02c566f5e61e46994a6b47  libgomp/config/nvptx/target.c
! 29de44d64f2e9faa08f2a984d1011d1a  libgomp/config/nvptx/task.c
! 71272babe617e066fb1c768188513815  libgomp/config/nvptx/team.c
! 07212d44ec2f60f09ee16aee782fe3e9  libgomp/config/nvptx/teams.c
! eb60875fc3bbaf9cf0d1870140fbca12  libgomp/config/nvptx/time.c
! 06f9d1c99954bad831dc1c7d8bafab7e  libgomp/config/posix/bar.c
! 12bfa9b0833f87ef665e259882a8409c  libgomp/config/posix/bar.h
! b465b8e58f70cf2392463519fc1fc861  libgomp/config/posix/doacross.h
! 333b62bd52b95a9cc29aef6219dec8e1  libgomp/config/posix/lock.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/mutex.c
! 473e2884fa583e15f07a8954e95f70f7  libgomp/config/posix/mutex.h
  e84e55894856b53abe34b30f6148b070  libgomp/config/posix/omp-lock.h
! fbfcf26f42d6abc53583afee1883ba78  libgomp/config/posix/plugin-suffix.h
! 003bd9df9cb232550a90c508e6e63a81  libgomp/config/posix/pool.h
! 3103ec86868660e8426f80860da42862  libgomp/config/posix/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/ptrlock.c
! 73c54fedeb6d66161ed52beae76ebf1e  libgomp/config/posix/ptrlock.h
! 634f0a3e3a1010190424ec86296f263f  libgomp/config/posix/sem.c
! d22e26c9594a696c55827519811ae6e7  libgomp/config/posix/sem.h
! 372cdf75b571c375e663c93fcfc6b6e6  libgomp/config/posix/simple-bar.h
! 0658c86d8048c85687c9389475774c36  libgomp/config/posix/thread-stacksize.h
! cd1adfaba05053df69ad8e81e41a4ff8  libgomp/config/posix/time.c
! c5341887a109cbd1577f68a86fed328d  libgomp/config/rtems/affinity-fmt.c
! 9e7a9349069fbd2ae605c9c6f14d917e  libgomp/config/rtems/bar.c
! f1f87cb4c5eb1271d62cc868ae4623aa  libgomp/config/rtems/bar.h
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/mutex.c
! 0db47dc47ab948bf2df27257697e2e71  libgomp/config/rtems/mutex.h
! 8a7285cb9e654adba03119abd6a8d3d0  libgomp/config/rtems/pool.h
! 18a673a419f4ec51919501eb7aadb46f  libgomp/config/rtems/proc.c
  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
! 8b0ce7c0a49c71670812fee324284192  libgomp/env.c
! de6d218010cbf7859c6b94615b21f35a  libgomp/error.c
! d98fb492b4e4c1c04a41a6bc6433de2b  libgomp/fortran.c
! 7f54b43cb86dd02741d33a360f1dbbe2  libgomp/hashtab.h
! f4c32f19e8df86d2ac9c3d4cc4e788f1  libgomp/icv-device.c
! 4b8f9b7d5eeb68462259c9d483f7ea4f  libgomp/icv.c
! c798aea0a594e97c71edb3bd8cb93579  libgomp/iter.c
! c3d837ee5481f078c8b7875c1c8306be  libgomp/iter_ull.c
! 0214d07a09a5c6e422ca9541c3f6cba4  libgomp/libgomp-plugin.c
! 1aa4ba0a2ee049ea5df6f42bca4e756e  libgomp/libgomp-plugin.h
! fc3083cc2e9ea14c5c0b8494006ee2e6  libgomp/libgomp.h
! d18f6d03f1045519e342c44068934d00  libgomp/libgomp.info
! 794094e4a415fa9d14baf5f132c3d098  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 407d25c7bf887d85293fd46c20e6021d  libgomp/libgomp.texi
! 519d28879206bae759d85cd3bb7b493b  libgomp/libgomp_f.h.in
! fdadcc861565b686070908326f5e5914  libgomp/libgomp_g.h
! a5060d745455b036a62cc46de1fe0576  libgomp/lock.c
! 22bfb3c347e1d60f5338c632c82e1f9f  libgomp/loop.c
! cab85a447a3c3a83164ef65672d00b92  libgomp/loop_ull.c
! 80411258a493fdb346dcf77f0c3192e3  libgomp/oacc-async.c
! 73dde5f03931d33935a36a1d968d7bc4  libgomp/oacc-cuda.c
! 266ba320079e69e58163b7adf1d2c441  libgomp/oacc-host.c
! 5eb42012fde17dd5875ac784c0d5f688  libgomp/oacc-init.c
! 1776f2de108801a59696220c3147b649  libgomp/oacc-int.h
! f651914b819b559f3365ac80f8e48c24  libgomp/oacc-mem.c
! ec5cbb804396f78976ddc8aa63a99e23  libgomp/oacc-parallel.c
! b6edffd0cc3b521c5885b285ddc3deaf  libgomp/oacc-plugin.c
! cabec5d2660028884f23c85bd403f01e  libgomp/oacc-plugin.h
! a6450e2f5f7558ce92992048a3735241  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! 6bcd80e4e6537ec863c1d376f34de561  libgomp/omp.h.in
! c86ce0e3a2aeecaa5351b6f1ba8032e5  libgomp/omp_lib.f90.in
! 49663c3c3b724a5241612aae66a868dd  libgomp/omp_lib.h.in
! 15d191aa150796691f341d8808a5f17d  libgomp/openacc.f90
! 4df662cad500e0c691a4fea12fe597e8  libgomp/openacc.h
! 43edbbeac3271b68d0e5066d23ca21d9  libgomp/openacc_lib.h
! 70196de117934b7f120ff364699b0142  libgomp/ordered.c
! 5d03c6596f36bc8b6127cd047fb71b81  libgomp/parallel.c
! b62a5d146dc237f28322cddf18c8a8bc  libgomp/plugin/Makefrag.am
! 5a5c5a37c066333fa237c308a243cda1  libgomp/plugin/configfrag.ac
! 89a0efb8035fb3af682d1d4081804427  libgomp/plugin/cuda-lib.def
! e035626b14d9141df4ba5b2b5b5ffba0  libgomp/plugin/plugin-gcn.c
! 4bebe1a11c4ab5644f9975d133ec51c5  libgomp/plugin/plugin-nvptx.c
! 0f2fc4f7d0850afd090ba2bb43681c8a  libgomp/priority_queue.c
! 5c28f5f7bbc16dada259efc296bbe9f3  libgomp/priority_queue.h
! f1eee47026bb1c516cd1b3a9b9c1c5fa  libgomp/scope.c
! 9ffecc292626b5af7bc2f960a91a888c  libgomp/sections.c
! 861663907e49ce3b02add14fc05a078c  libgomp/secure_getenv.h
! 1a659741443df556b83c96cee6a23405  libgomp/single.c
! 6197f832f373fba082a73a413e58be94  libgomp/splay-tree.c
! 6562eda8ef1a1fd0a2a0a9e5621f684b  libgomp/splay-tree.h
! a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! 5fce22dcfc1675b4810f1fca1901933f  libgomp/target.c
! 8f03749b5187ce4fb4dce3f7d5b2d9f7  libgomp/task.c
! 865cdfdff84a15247efff279e8aca77f  libgomp/taskloop.c
! 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
! 8383d32d5f8e2ebb8ebf591150f08e5c  libgomp/testsuite/lib/libgomp.exp
  751966e2063e2e638eb537562f7d4551  libgomp/testsuite/libgomp-site-extra.exp.in
  6d56ea402ff11fa0bd533c6d73e2ecde  libgomp/testsuite/libgomp-test-support.exp.in
  75cc672a1bf25974c5f4c5e3bc1a74b1  libgomp/testsuite/libgomp.c++/affinity-1.C
  196ffcd43fb2edf60795e6aabf50d259  libgomp/testsuite/libgomp.c++/allocate-1.C
+ 621f4af33dbb0ad8d27a2993a83c9953  libgomp/testsuite/libgomp.c++/allocator-1.C
+ 3f8b62419c2c8e4b2039644a97c006e3  libgomp/testsuite/libgomp.c++/allocator-2.C
  2c957d1d7acf181ac6aa27218cc24d76  libgomp/testsuite/libgomp.c++/atomic-1.C
  75d6941396142273d25d6693d7556616  libgomp/testsuite/libgomp.c++/atomic-10.C
  5562ceebc0054102930e3944e3d8cea0  libgomp/testsuite/libgomp.c++/atomic-11.C
*************** e4c259ceb3f0850ee4a9c2d8db93fa19  libgom
*** 118832,118838 ****
  46280f072d47ab513989684a0c34bbbd  libgomp/testsuite/libgomp.c++/ctor-7.C
  cf8630c02b905d98e08a439066bb9815  libgomp/testsuite/libgomp.c++/ctor-8.C
  0bd7fe39119bfc0574561c1e381edc5b  libgomp/testsuite/libgomp.c++/ctor-9.C
! 3d51a347dcff180e4481b2290c95f5b3  libgomp/testsuite/libgomp.c++/declare-target-indirect-1.C
  69326cfd40097e393a1bdb2e95e9052d  libgomp/testsuite/libgomp.c++/declare_target-1.C
  9680d8fd6dafdcd73ddfb70fce9898b5  libgomp/testsuite/libgomp.c++/default-1.C
  01456b503209d46ee61ee8a1877c839c  libgomp/testsuite/libgomp.c++/depend-1.C
--- 126573,126579 ----
  46280f072d47ab513989684a0c34bbbd  libgomp/testsuite/libgomp.c++/ctor-7.C
  cf8630c02b905d98e08a439066bb9815  libgomp/testsuite/libgomp.c++/ctor-8.C
  0bd7fe39119bfc0574561c1e381edc5b  libgomp/testsuite/libgomp.c++/ctor-9.C
! 23c42bd29433374ffd8ef4b669c3ab98  libgomp/testsuite/libgomp.c++/declare-target-indirect-1.C
  69326cfd40097e393a1bdb2e95e9052d  libgomp/testsuite/libgomp.c++/declare_target-1.C
  9680d8fd6dafdcd73ddfb70fce9898b5  libgomp/testsuite/libgomp.c++/default-1.C
  01456b503209d46ee61ee8a1877c839c  libgomp/testsuite/libgomp.c++/depend-1.C
*************** f07bd794cd101bd9ba1972e509ed440f  libgom
*** 118892,118897 ****
--- 126633,126639 ----
  d2827edf08309dd5d05a7ae82eb3a65f  libgomp/testsuite/libgomp.c++/map-comma-1.C
  76b1317d8fa0898f3ddb99d7d9719925  libgomp/testsuite/libgomp.c++/map-rvalue-ref-1.C
  f228bd69972ac57d7838e7a77158e192  libgomp/testsuite/libgomp.c++/master-1.C
+ 8efc996f883f46be409f4fe300a37b0a  libgomp/testsuite/libgomp.c++/matrix-no-directive-unroll-full-1.C
  b148cb9e7cea0a2c2871af156c98d443  libgomp/testsuite/libgomp.c++/member-1.C
  4d16af77bc5ead4ab34365affb08b16e  libgomp/testsuite/libgomp.c++/member-2.C
  a652f68c19d7a53a2e0eb5f8d5f6bc85  libgomp/testsuite/libgomp.c++/member-3.C
*************** bddf1919febc77ab73283f66e954b61e  libgom
*** 118899,118911 ****
  301298f906934810e9af9bf9aee958a2  libgomp/testsuite/libgomp.c++/member-5.C
  964d21c0697ac92d0cb3e9f216f8942e  libgomp/testsuite/libgomp.c++/member-6.C
  3bbd0f0d348eb705be604978b2e32097  libgomp/testsuite/libgomp.c++/member-7.C
  1af322f02a0df2cf1f3c2c01d328da07  libgomp/testsuite/libgomp.c++/nested-1.C
  3f755c96f4b692988ea0d1ddeef1ca9b  libgomp/testsuite/libgomp.c++/parallel-1.C
  918bd233ad318b00f080ec4f186b4ee1  libgomp/testsuite/libgomp.c++/pr108180.C
  47f9fb4165180e335283fecf1a9cd061  libgomp/testsuite/libgomp.c++/pr108286.C
  2b5f66e459a48cd1cbeb9dc42d3b751e  libgomp/testsuite/libgomp.c++/pr114572.C
  c57d4e906a72b08e5f49bef40306b63f  libgomp/testsuite/libgomp.c++/pr24455-1.C
! e922df8c56b5c5885b9aa8d370725ea9  libgomp/testsuite/libgomp.c++/pr24455.C
  ebbf9a13ba035141ba01b3281fd27fea  libgomp/testsuite/libgomp.c++/pr26691.C
  f22ddc230a1c3c9064a657fa7fa843e6  libgomp/testsuite/libgomp.c++/pr26943.C
  b7d3ba53e1428eb4ab2cf1cdcd576335  libgomp/testsuite/libgomp.c++/pr27337.C
--- 126641,126665 ----
  301298f906934810e9af9bf9aee958a2  libgomp/testsuite/libgomp.c++/member-5.C
  964d21c0697ac92d0cb3e9f216f8942e  libgomp/testsuite/libgomp.c++/member-6.C
  3bbd0f0d348eb705be604978b2e32097  libgomp/testsuite/libgomp.c++/member-7.C
+ 9b71b2f19126159af9deb8611588ecd5  libgomp/testsuite/libgomp.c++/metadirective-template-1.C
+ 3a19288ae272430cbe418d0403bcdc24  libgomp/testsuite/libgomp.c++/metadirective-template-2.C
+ c24b71428729c4477c68a326981f1502  libgomp/testsuite/libgomp.c++/metadirective-template-3.C
  1af322f02a0df2cf1f3c2c01d328da07  libgomp/testsuite/libgomp.c++/nested-1.C
  3f755c96f4b692988ea0d1ddeef1ca9b  libgomp/testsuite/libgomp.c++/parallel-1.C
+ 930dba8506c04bc3a0ed1285cf54ebb5  libgomp/testsuite/libgomp.c++/pr101544-1-O0.C
+ 4255b1cd4aa8da621665101c1b354277  libgomp/testsuite/libgomp.c++/pr101544-1.C
+ 0a4d31c36842026108385cca1b33c889  libgomp/testsuite/libgomp.c++/pr106445-1-O0.C
+ f707c9b8a0f7005cc93bc19e863bbd02  libgomp/testsuite/libgomp.c++/pr106445-1.C
  918bd233ad318b00f080ec4f186b4ee1  libgomp/testsuite/libgomp.c++/pr108180.C
  47f9fb4165180e335283fecf1a9cd061  libgomp/testsuite/libgomp.c++/pr108286.C
  2b5f66e459a48cd1cbeb9dc42d3b751e  libgomp/testsuite/libgomp.c++/pr114572.C
+ 8801d963ce68c757ce130916d88cfb17  libgomp/testsuite/libgomp.c++/pr119692-1-1.C
+ 6fc97c0ff0901911f7091f8eca32d1dd  libgomp/testsuite/libgomp.c++/pr119692-1-2.C
+ a728b6c3c12ff1bb22774ab07d33b777  libgomp/testsuite/libgomp.c++/pr119692-1-3.C
+ 64964da5710749d5a1691aa6e6bc4615  libgomp/testsuite/libgomp.c++/pr119692-1-4.C
+ efdbbfaf57e173262a8a65f272a81691  libgomp/testsuite/libgomp.c++/pr119692-1-5.C
  c57d4e906a72b08e5f49bef40306b63f  libgomp/testsuite/libgomp.c++/pr24455-1.C
! 54c6e1c645042b8c18d27e04190d4816  libgomp/testsuite/libgomp.c++/pr24455.C
  ebbf9a13ba035141ba01b3281fd27fea  libgomp/testsuite/libgomp.c++/pr26691.C
  f22ddc230a1c3c9064a657fa7fa843e6  libgomp/testsuite/libgomp.c++/pr26943.C
  b7d3ba53e1428eb4ab2cf1cdcd576335  libgomp/testsuite/libgomp.c++/pr27337.C
*************** dc7de2a56e857e340edadd8faabda685  libgom
*** 118934,118942 ****
  9262df59cf611b7f8a158b637ef46a9e  libgomp/testsuite/libgomp.c++/pr86542.C
  2f4b5b9cb40dd4bff2c3c0ebada29767  libgomp/testsuite/libgomp.c++/pr88988.C
  7cc253bb1b2c2c65f9d69743d9235b32  libgomp/testsuite/libgomp.c++/pr93931.C
! 21fb1c18428bd927c201491b036a6884  libgomp/testsuite/libgomp.c++/pr96390.C
  4cffa5137acf2753cd96b591d407c9ef  libgomp/testsuite/libgomp.c++/private-1.C
  b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
  a594cebdf052900dd0c8792068e14d85  libgomp/testsuite/libgomp.c++/reduction-1.C
  1473f55e3f6f9827b6dd281025b88b85  libgomp/testsuite/libgomp.c++/reduction-10.C
  bd119573b86fb5577edaf97dd86d2a6c  libgomp/testsuite/libgomp.c++/reduction-11.C
--- 126688,126703 ----
  9262df59cf611b7f8a158b637ef46a9e  libgomp/testsuite/libgomp.c++/pr86542.C
  2f4b5b9cb40dd4bff2c3c0ebada29767  libgomp/testsuite/libgomp.c++/pr88988.C
  7cc253bb1b2c2c65f9d69743d9235b32  libgomp/testsuite/libgomp.c++/pr93931.C
! ccbeb19f46d34074feddb4daec61a533  libgomp/testsuite/libgomp.c++/pr96390.C
! 27cb9c0ed40538d7ec95c23139a27be0  libgomp/testsuite/libgomp.c++/pr96835-1-O0.C
! fb886d6d4d2dfe2fd65c4409f786ca02  libgomp/testsuite/libgomp.c++/pr96835-1.C
  4cffa5137acf2753cd96b591d407c9ef  libgomp/testsuite/libgomp.c++/private-1.C
  b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
+ 04dc564b11f6e503f39552628affa8a8  libgomp/testsuite/libgomp.c++/range-for-1.C
+ 5b758d53cdb49aa2e6eef09ee91eed94  libgomp/testsuite/libgomp.c++/range-for-2.C
+ d1c9121d5b84b9bde37f37bd398698fe  libgomp/testsuite/libgomp.c++/range-for-3.C
+ 0134f1c5e3657862f4594e97dcd43b0f  libgomp/testsuite/libgomp.c++/range-for-4.C
+ c4ddb3d2386dc996c885c768f861212e  libgomp/testsuite/libgomp.c++/range-for-5.C
  a594cebdf052900dd0c8792068e14d85  libgomp/testsuite/libgomp.c++/reduction-1.C
  1473f55e3f6f9827b6dd281025b88b85  libgomp/testsuite/libgomp.c++/reduction-10.C
  bd119573b86fb5577edaf97dd86d2a6c  libgomp/testsuite/libgomp.c++/reduction-11.C
*************** ff04658f034a805f42f6227468e350d8  libgom
*** 118983,118988 ****
--- 126744,126752 ----
  537fc9ac07046ce042391dfa19843e8c  libgomp/testsuite/libgomp.c++/single-1.C
  6c9d8951c10a36292097716f431c385a  libgomp/testsuite/libgomp.c++/single-2.C
  7d0f24f8edab30e9e5aa2d3f5133e9f4  libgomp/testsuite/libgomp.c++/single-3.C
+ e000c578b89df6c6c969482c9249246a  libgomp/testsuite/libgomp.c++/static-aggr-constructor-destructor-1.C
+ 282bbb357153cede25202177dee31d7a  libgomp/testsuite/libgomp.c++/static-aggr-constructor-destructor-2.C
+ 4c1664fdbae0c3ee5188dbf0f415c2d7  libgomp/testsuite/libgomp.c++/static-aggr-constructor-destructor-3.C
  fc294ecae70ea0e846f751937b8f0cf4  libgomp/testsuite/libgomp.c++/struct-ref-1.C
  866b1595d3c521f9e048f3d196a4dea7  libgomp/testsuite/libgomp.c++/target-10.C
  584a99de04a66868ae3499eedc3e2195  libgomp/testsuite/libgomp.c++/target-11.C
*************** ab3063f8b6682d372e65d063a35a406d  libgom
*** 119006,119011 ****
--- 126770,126790 ----
  131b2ab5b78c2725e33c4249f59e5799  libgomp/testsuite/libgomp.c++/target-7.C
  1a7862ad9a2af6943f9928a670bcaf16  libgomp/testsuite/libgomp.c++/target-8.C
  e8abd1a92868914a2a5307268ef4b3d8  libgomp/testsuite/libgomp.c++/target-9.C
+ 41a06298f49599123721886f94ac2b15  libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-1.C
+ 64bd4e898ee85afe93f6f182b3a479fc  libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2-offload-sorry-GCN.C
+ 2ab3f03a68f64f25cb39af3017726c7c  libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2-offload-sorry-nvptx.C
+ eba6e28f5d005b8ebb2c31fda54646bf  libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2.C
+ 9468d6f7c442b38e2a9f23b34f45e7c4  libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-3.C
+ ae7bb9c1c480c291e9d0f9d010476738  libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C
+ f5d2aeeed3e81bd4e9eacea87c4fa70d  libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C
+ dd1839e84036f0ba4f78b08448f90bd6  libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C
+ ec937bfca18dd06fec284c99ab526c23  libgomp/testsuite/libgomp.c++/target-exceptions-throw-1-O0.C
+ b2a2c436f2c5b1abfffbda3ddc7902d5  libgomp/testsuite/libgomp.c++/target-exceptions-throw-1.C
+ 961f7fc05699b3948bbe43bf3cf3ea79  libgomp/testsuite/libgomp.c++/target-exceptions-throw-2-O0.C
+ 4ab0764b2ec0cc045b4a335a07bb8627  libgomp/testsuite/libgomp.c++/target-exceptions-throw-2-offload-sorry-GCN.C
+ 3520cefeeb0a8970211ae1a36941c0ba  libgomp/testsuite/libgomp.c++/target-exceptions-throw-2-offload-sorry-nvptx.C
+ 7ffb227695b66888f5076dda8f80c836  libgomp/testsuite/libgomp.c++/target-exceptions-throw-2.C
+ 488d32eeb21a3eeda82ddf89a2bfa708  libgomp/testsuite/libgomp.c++/target-exceptions-throw-3.C
  3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  4f1a5a6faf4e4b1e94a99f3df7f59dfd  libgomp/testsuite/libgomp.c++/target-has-device-addr-2.C
  c2ea975d3e14f144e2ade23a720b62bd  libgomp/testsuite/libgomp.c++/target-has-device-addr-4.C
*************** b3611556d31dd93c92d3f5f0f9099804  libgom
*** 119067,119072 ****
--- 126846,126853 ----
  c324270fa0263734570b806cb9dc8634  libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C
  c17f30fd1074dbee7b7ff0bc9e49fc8a  libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C
  22bcd6aa55135df4188eb236f0c8de9a  libgomp/testsuite/libgomp.c++/taskloop-reduction-4.C
+ 1c8b2b64c4221e935e377e1cf10d1a03  libgomp/testsuite/libgomp.c++/tile-2.C
+ 71cd0846135fd169fbe95edc731392a2  libgomp/testsuite/libgomp.c++/tile-3.C
  3f97f3f027f9dba0eb3df8a8ade40bc0  libgomp/testsuite/libgomp.c++/tls-init1.C
  ca187a3885ec8be16b14570ad41616fc  libgomp/testsuite/libgomp.c++/udr-1.C
  9dd31b976843626135a2c79a3f66610d  libgomp/testsuite/libgomp.c++/udr-11.C
*************** ea9d7efadb5b2c25e305ce1e8aee8d04  libgom
*** 119087,119092 ****
--- 126868,126876 ----
  05359c9369906184ed3a5b1b706ae2cb  libgomp/testsuite/libgomp.c++/udr-6.C
  18bc8983002568fa3de20df48f9b2c2f  libgomp/testsuite/libgomp.c++/udr-7.C
  a0ed7c5ec445acca5bb4d3efd5041bbf  libgomp/testsuite/libgomp.c++/udr-8.C
+ 4cd0ba873de52b9ab396b53894f5c989  libgomp/testsuite/libgomp.c++/unroll-1.C
+ 5b43fe8aeb058a5021d2786d420de521  libgomp/testsuite/libgomp.c++/unroll-2.C
+ 4d68cef79cc288211337eec1a9a334bc  libgomp/testsuite/libgomp.c++/unroll-full-tile.C
  8226094333b3623182b438aa1ab9a557  libgomp/testsuite/libgomp.c++/use_device_ptr-1.C
  9049517c3597f400ce3982fc59a9cb94  libgomp/testsuite/libgomp.c-c++-common/alloc-1.c
  fc7de9de760679e8b92e68cc05f02dcd  libgomp/testsuite/libgomp.c-c++-common/alloc-10.c
*************** ffae923e01f64777614298d5256aa1e4  libgom
*** 119134,119139 ****
--- 126918,126925 ----
  1583f97cbaa7d0b05f4bc3415cf9a901  libgomp/testsuite/libgomp.c-c++-common/depend-mutexinout-1.c
  744de86f8478d3f33bf9ae8549aa5d5f  libgomp/testsuite/libgomp.c-c++-common/depend-mutexinout-2.c
  34181537abfe326d25c077843377069a  libgomp/testsuite/libgomp.c-c++-common/depobj-1.c
+ 23ed3daffcef74a83bc8c9a418255362  libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c
+ fef31a569b597ba40791c9dbac3f8eb8  libgomp/testsuite/libgomp.c-c++-common/dispatch-2.c
  3035c770acef0fafa426b2d7148c9238  libgomp/testsuite/libgomp.c-c++-common/display-affinity-1.c
  4bb908a5492bbb499dc7bc00082d3676  libgomp/testsuite/libgomp.c-c++-common/error-1.c
  128ad362b06c9753ddbcbe2789351c1a  libgomp/testsuite/libgomp.c-c++-common/for-1.c
*************** ee0115a370a5b6a9e6990b3d15bdd431  libgom
*** 119156,119162 ****
  81a985257cde0e49d560ae8aee85cf96  libgomp/testsuite/libgomp.c-c++-common/for-9.c
  38b84120e95c50bcbe995ff760fb2f46  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c
  45a948d47bf9a9580f0eaaa779cabe59  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
! 08db5cb3c8bda6f774ec6fca7adf3539  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c
  082e4a8098a26fe0515142872ac3472f  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-2.c
  c09232193f6376e5d0b4ebdc9096118e  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-3.c
  9456fb67e20f4201187c7399bc4d2316  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-4.c
--- 126942,126948 ----
  81a985257cde0e49d560ae8aee85cf96  libgomp/testsuite/libgomp.c-c++-common/for-9.c
  38b84120e95c50bcbe995ff760fb2f46  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c
  45a948d47bf9a9580f0eaaa779cabe59  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
! 289803ddb56467011cd3c9f15600fb0e  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c
  082e4a8098a26fe0515142872ac3472f  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-2.c
  c09232193f6376e5d0b4ebdc9096118e  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-3.c
  9456fb67e20f4201187c7399bc4d2316  libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-4.c
*************** c09232193f6376e5d0b4ebdc9096118e  libgom
*** 119167,119172 ****
--- 126953,126960 ----
  4d6205636b7a7ee4172ae3682e8d45da  libgomp/testsuite/libgomp.c-c++-common/icv-7.c
  d41f9e5a7dfb9020f7fdc4083e485f06  libgomp/testsuite/libgomp.c-c++-common/icv-8.c
  3d0e07ae722b636a89063bdf36a01c8e  libgomp/testsuite/libgomp.c-c++-common/icv-9.c
+ deee82f51f570b093d8dccc22cb6ddcc  libgomp/testsuite/libgomp.c-c++-common/imperfect-transform-1.c
+ 1d2c5dd0c0d8e60b60c2e54421a06f8a  libgomp/testsuite/libgomp.c-c++-common/imperfect-transform-2.c
  0d143e1e7499dc55573b461e8f58fb0c  libgomp/testsuite/libgomp.c-c++-common/imperfect1.c
  f211c31e4f6b896359340ed8c1bc934d  libgomp/testsuite/libgomp.c-c++-common/imperfect2.c
  48aa16652ecb263b58bf28871a3c337d  libgomp/testsuite/libgomp.c-c++-common/imperfect3.c
*************** db84355be6497be803699536cec8df8e  libgom
*** 119174,119179 ****
--- 126962,126970 ----
  81e078bfc368de8d2c8e928d897ee2f8  libgomp/testsuite/libgomp.c-c++-common/imperfect5.c
  1c73b49722635b90556ce6935d2ff0dd  libgomp/testsuite/libgomp.c-c++-common/imperfect6.c
  b292d9e57e7d3e0182bd4d6e553e7747  libgomp/testsuite/libgomp.c-c++-common/ind-base-4.c
+ 852cd122fb08c5bc98afcacb1f89d53f  libgomp/testsuite/libgomp.c-c++-common/interop-1.c
+ af5c9b7672d901f08fc41aee85da89a5  libgomp/testsuite/libgomp.c-c++-common/interop-routines-1.c
+ 8beeff3961ba61952c5ee1257dc3593c  libgomp/testsuite/libgomp.c-c++-common/interop-routines-2.c
  2db7225fd29d77c0461e025f76bb7fce  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c
  4ea18b6b659c1a92c5928b282969d372  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c
  14c015447b26dcc91408ffe46450e85f  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c
*************** a47284d2352269483d0c53155360b633  libgom
*** 119193,119199 ****
--- 126984,127014 ----
  b89b9c70a8c4c9621441bbf286e6bc0d  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3.c
  5cdaccb404c42c94d2b0ed71fa9b4450  libgomp/testsuite/libgomp.c-c++-common/masked-1.c
  3c55e0ae7ee0559f4081eae1bd8bcff2  libgomp/testsuite/libgomp.c-c++-common/master-combined-1.c
+ 27c24d3b4c26f7da3f648202a22fa1e7  libgomp/testsuite/libgomp.c-c++-common/matrix-1.h
+ 826568a3f568f5f90eac3c16a2593e67  libgomp/testsuite/libgomp.c-c++-common/matrix-constant-iter.h
+ 21db8edc7c6d920ec21c472435c1d7ee  libgomp/testsuite/libgomp.c-c++-common/matrix-helper.h
+ 0e71a6cf3111cba4405c701f2ed5d96d  libgomp/testsuite/libgomp.c-c++-common/matrix-no-directive-1.c
+ 33aac51794cf0ab6d1691d72d36d79a1  libgomp/testsuite/libgomp.c-c++-common/matrix-no-directive-unroll-full-1.c
+ 786cd18a0a1351f362efcf96dd1e3944  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-distribute-parallel-for-1.c
+ 0c2b5ea4566cc36187c2c399843d1edb  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-for-1.c
+ c35f644c9ca09d77a080b0628b0c11bb  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-parallel-for-1.c
+ 2550a14e2e539289ad029927bc58691a  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-parallel-masked-taskloop-1.c
+ 97954330f9c0d3bfdd81dbbb4b27e5b7  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-parallel-masked-taskloop-simd-1.c
+ 7ae814a793cac6448b782fbf534ca929  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-parallel-for-1.c
+ 2e5b19847f36572875d5edd6c55449dc  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-target-teams-distribute-parallel-for-1.c
+ e42f1e345c7fcd9893f399df22eaed2f  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-taskloop-1.c
+ 5e024236e2e8282a8d8c6f87d7104d33  libgomp/testsuite/libgomp.c-c++-common/matrix-omp-teams-distribute-parallel-for-1.c
+ cfa794b61d7b642929f4141128dac867  libgomp/testsuite/libgomp.c-c++-common/matrix-simd-1.c
+ 50746be62833efa7f254f6d21e6a7d34  libgomp/testsuite/libgomp.c-c++-common/matrix-transform-variants-1.h
  6641003248aa3d1115dde398cabf5d6d  libgomp/testsuite/libgomp.c-c++-common/memcpyxd-bias-1.c
+ f10b3a5a5035a7c657d48900ff8144a0  libgomp/testsuite/libgomp.c-c++-common/metadirective-1.c
+ 1d83edce1d354aa18fd8d8acf0e56192  libgomp/testsuite/libgomp.c-c++-common/metadirective-2.c
+ 619fdbed63b97f6d4a1e0a1cabf0ebd9  libgomp/testsuite/libgomp.c-c++-common/metadirective-3.c
+ 29710e6fe72aca1f1ab459086956363b  libgomp/testsuite/libgomp.c-c++-common/metadirective-4.c
+ bf54e115e3ac6d8d1b44a07233c24021  libgomp/testsuite/libgomp.c-c++-common/metadirective-5.c
+ 9e2a7fb63de6e1d73eccc9e73ad6aae1  libgomp/testsuite/libgomp.c-c++-common/metadirective-late-1.c
+ 957a41bc37324bdc70bfb24dbbf759d5  libgomp/testsuite/libgomp.c-c++-common/metadirective-late-2.c
+ 31c50bc97af7fe33ed45cf89bac7e287  libgomp/testsuite/libgomp.c-c++-common/metadirective-target-device.c
  f959c1fe9d94d7321dbc7b419eefe7a7  libgomp/testsuite/libgomp.c-c++-common/monotonic-1.c
  cc6abf61b301e17286872d6d76d483c0  libgomp/testsuite/libgomp.c-c++-common/monotonic-2.c
  1c4ec2975c3dc84ae293e87a285260b4  libgomp/testsuite/libgomp.c-c++-common/nested-parallel-unbalanced.c
*************** e2bc55eb4581cd421c13c8ce68663678  libgom
*** 119213,119219 ****
  f57660e58c4d1e1085d45c8590d31ff9  libgomp/testsuite/libgomp.c-c++-common/pr106449-2.c
  5c7fd2f1e707d0e769a814bd91bb9ae8  libgomp/testsuite/libgomp.c-c++-common/pr106449.c
  010e1c442bf8c18b7045c53d36e8346e  libgomp/testsuite/libgomp.c-c++-common/pr106981.c
! 2f813609993cd155afe2c592b0f4f713  libgomp/testsuite/libgomp.c-c++-common/pr109062.c
  67c38424bb3c5c571b180f7bdadaa4f8  libgomp/testsuite/libgomp.c-c++-common/pr45784.c
  68cf777b22e15a310c790cabde33a5f1  libgomp/testsuite/libgomp.c-c++-common/pr64824.c
  800ed634329eb97a562e7e84ebd4044b  libgomp/testsuite/libgomp.c-c++-common/pr64868.c
--- 127028,127034 ----
  f57660e58c4d1e1085d45c8590d31ff9  libgomp/testsuite/libgomp.c-c++-common/pr106449-2.c
  5c7fd2f1e707d0e769a814bd91bb9ae8  libgomp/testsuite/libgomp.c-c++-common/pr106449.c
  010e1c442bf8c18b7045c53d36e8346e  libgomp/testsuite/libgomp.c-c++-common/pr106981.c
! 308425143a5065c8f126694d81756992  libgomp/testsuite/libgomp.c-c++-common/pr109062.c
  67c38424bb3c5c571b180f7bdadaa4f8  libgomp/testsuite/libgomp.c-c++-common/pr45784.c
  68cf777b22e15a310c790cabde33a5f1  libgomp/testsuite/libgomp.c-c++-common/pr64824.c
  800ed634329eb97a562e7e84ebd4044b  libgomp/testsuite/libgomp.c-c++-common/pr64868.c
*************** dff7a676c5c7625a109dad1fb29c317d  libgom
*** 119236,119242 ****
  08611a968d3d5d8544391a554aa64d2e  libgomp/testsuite/libgomp.c-c++-common/pr83046.c
  bbbd1b345adde5e2b11d48880c03841d  libgomp/testsuite/libgomp.c-c++-common/pr93515.c
  aa27b099930bc5b5e07e143f2ff6fedc  libgomp/testsuite/libgomp.c-c++-common/pr94366.c
! a86d9a83545e3b50c9acf939c20f319c  libgomp/testsuite/libgomp.c-c++-common/pr96390.c
  815799e957465c99070ca74ae5616589  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
  e76f2f2950cb51f5ef4d063e57da09be  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
  2d2748b0be4d42cf748c994d23973c0d  libgomp/testsuite/libgomp.c-c++-common/reduction-1.c
--- 127051,127057 ----
  08611a968d3d5d8544391a554aa64d2e  libgomp/testsuite/libgomp.c-c++-common/pr83046.c
  bbbd1b345adde5e2b11d48880c03841d  libgomp/testsuite/libgomp.c-c++-common/pr93515.c
  aa27b099930bc5b5e07e143f2ff6fedc  libgomp/testsuite/libgomp.c-c++-common/pr94366.c
! 9a833edb00c6348a6ec9bb286a7a041a  libgomp/testsuite/libgomp.c-c++-common/pr96390.c
  815799e957465c99070ca74ae5616589  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
  e76f2f2950cb51f5ef4d063e57da09be  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
  2d2748b0be4d42cf748c994d23973c0d  libgomp/testsuite/libgomp.c-c++-common/reduction-1.c
*************** c1475af16cfcc82bec0d85875d542fdb  libgom
*** 119289,119294 ****
--- 127104,127111 ----
  d87524b525b7f424e584af640f4b038b  libgomp/testsuite/libgomp.c-c++-common/target-42.c
  ae24e1c7b9fc9100ef17c4595417ef54  libgomp/testsuite/libgomp.c-c++-common/target-45.c
  1120f9e50460c0396d1ae405ffd3e780  libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
+ 038d0072f445d0120f15c605ec76e54a  libgomp/testsuite/libgomp.c-c++-common/target-imperfect-transform-1.c
+ 923df9fb10163f8d97c25a33b74c5b70  libgomp/testsuite/libgomp.c-c++-common/target-imperfect-transform-2.c
  37fce83633860f28a35df3d48f63ff79  libgomp/testsuite/libgomp.c-c++-common/target-imperfect1.c
  94c7429304d92c51fd9543fc11b3051c  libgomp/testsuite/libgomp.c-c++-common/target-imperfect2.c
  c194c024e42053dd95f6e219515d6619  libgomp/testsuite/libgomp.c-c++-common/target-imperfect3.c
*************** be9edae79e36592176a6ef4d75308c5f  libgom
*** 119301,119306 ****
--- 127118,127128 ----
  c59c2b50b25e1cc94ef1440dd9e22f71  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
  e4ae276ba05cf2521872c73349458117  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
  462413b33154db71951671a657737912  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-1.c
+ 69dd12ce5d2a48b7f97153765a590284  libgomp/testsuite/libgomp.c-c++-common/target-is-initial-host-2.c
+ 9e8fb2b92bd09fc8b76faad9bb3ef464  libgomp/testsuite/libgomp.c-c++-common/target-is-initial-host.c
+ d04c3cda0f5d9481f26ad3a000f4b3d3  libgomp/testsuite/libgomp.c-c++-common/target-link-2.c
+ 9ff30abde078f26fb73508314a1a4c1e  libgomp/testsuite/libgomp.c-c++-common/target-link-3.c
+ f050a6f90c7d48e4c829975976ab7e71  libgomp/testsuite/libgomp.c-c++-common/target-link-4.c
  4f49f4526eb91412060d42cdf5c84f65  libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c
  d989443106e2a262436792d18fb2f23b  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-1.c
  3737e3b4823c33573762510eb88c0f0f  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-2.c
*************** ca33c5f9c9903b757ed36247b61aad15  libgom
*** 119368,119390 ****
  5d8ecdbae4b1a48b2e6a1ddef6b0ca7f  libgomp/testsuite/libgomp.c-c++-common/udr-1.c
  04111c68e1e9fe8b6796a44f4ee69ee6  libgomp/testsuite/libgomp.c-c++-common/unary-ptr-1.c
  448f5dd482b6ef3000923aaa33bb3bfb  libgomp/testsuite/libgomp.c-c++-common/unmap-infinity-2.c
  b2587cfb605c9af09f5b45e95cdb2437  libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
! d151a4c7b828e7d6e60f4af8ca7cc525  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
! 22a9ad1a187b58527906d009d35c7b74  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
! d87d6bbce841a471996f894d474ce60c  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
! 81f12940572a770a3249e1f5f2b113f9  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
! 46930a2ae11525c03fb71ea729ea2c87  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
  fcaebb2fe201ab9ca6d533e58c770386  libgomp/testsuite/libgomp.c/allocate-4.c
  c0ceb47334b72704392f09754c63b979  libgomp/testsuite/libgomp.c/allocate-5.c
  d0031291832976a7279d71c7c7337482  libgomp/testsuite/libgomp.c/allocate-6.c
  a41ceafeacd26f2d6287304009f5b8d2  libgomp/testsuite/libgomp.c/allocator-1.c
  fc181e877b4a4f6fa28daee1df38e75d  libgomp/testsuite/libgomp.c/allocator-2.c
  cad3ba808079842bfb8fef54eb0840df  libgomp/testsuite/libgomp.c/allocator-3.c
  8da1128096dc09d63468a8bb3579b20b  libgomp/testsuite/libgomp.c/allocator-4.c
  b568fd245f44f7f9bc3a6e38b724bd00  libgomp/testsuite/libgomp.c/allocator-5.c
  3a12b14ddf962d07ae2dec95832c6b5c  libgomp/testsuite/libgomp.c/allocator-6.c
  1f6a1f1c31286073320fc1d55660da23  libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c
  16dafd2aadb62eb39423e7b2deb46cc1  libgomp/testsuite/libgomp.c/appendix-a/a.16.1.c
  e93a3e74972b33d2a0caef52cf757ee4  libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c
--- 127190,127228 ----
  5d8ecdbae4b1a48b2e6a1ddef6b0ca7f  libgomp/testsuite/libgomp.c-c++-common/udr-1.c
  04111c68e1e9fe8b6796a44f4ee69ee6  libgomp/testsuite/libgomp.c-c++-common/unary-ptr-1.c
  448f5dd482b6ef3000923aaa33bb3bfb  libgomp/testsuite/libgomp.c-c++-common/unmap-infinity-2.c
+ 96f4675f2ddb3142834360b1350ca6e5  libgomp/testsuite/libgomp.c-c++-common/unroll-1.c
+ 9c2abbff55e05e4a43196cca67da7778  libgomp/testsuite/libgomp.c-c++-common/unroll-non-rect-1.c
  b2587cfb605c9af09f5b45e95cdb2437  libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c
+ 50ce6b27289abfc41ac81fabefd8a020  libgomp/testsuite/libgomp.c-target/aarch64/aarch64.exp
+ 7a58e37c0b313a747771027b82cb2e03  libgomp/testsuite/libgomp.c-target/aarch64/firstprivate.c
+ 3564abd7107d431cc73324ef3175fc02  libgomp/testsuite/libgomp.c-target/aarch64/lastprivate.c
+ df9584266f64e9e94cc353ad659850cb  libgomp/testsuite/libgomp.c-target/aarch64/private.c
+ 6f7915c2579fa57736291c50da173f9b  libgomp/testsuite/libgomp.c-target/aarch64/shared.c
+ ee4539179e248da5dfa461b6f38b711a  libgomp/testsuite/libgomp.c-target/aarch64/simd-aligned.c
+ caca1aa745e9df985dc965e87fc08c02  libgomp/testsuite/libgomp.c-target/aarch64/simd-nontemporal.c
+ 22339699e5ead02323ff39f1b6fe0db9  libgomp/testsuite/libgomp.c-target/aarch64/threadprivate.c
+ 8a9f248e8f293171e99f2de7e100db25  libgomp/testsuite/libgomp.c-target/aarch64/udr-sve.c
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
! 35d465afcc91bf0b02e92e10cee649bb  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
! 1b1448194a2648787b620162406ed357  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
! 2e4c784bf6bd6891b8037bd6337a9224  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
! 5a9f7f1502d9a434247172a6c00396d6  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
! f4542a5373ce7b71dc15b9236833757f  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
! e8a461cfa8220a9d4229d0f8b11288fa  libgomp/testsuite/libgomp.c/alloc-pinned-5.c
! 9207105618a50b5da9c6ac47f84ec3a7  libgomp/testsuite/libgomp.c/alloc-pinned-6.c
  fcaebb2fe201ab9ca6d533e58c770386  libgomp/testsuite/libgomp.c/allocate-4.c
  c0ceb47334b72704392f09754c63b979  libgomp/testsuite/libgomp.c/allocate-5.c
  d0031291832976a7279d71c7c7337482  libgomp/testsuite/libgomp.c/allocate-6.c
+ d25f203b08e78c90c184d1221dbe59ae  libgomp/testsuite/libgomp.c/allocate-7.c
  a41ceafeacd26f2d6287304009f5b8d2  libgomp/testsuite/libgomp.c/allocator-1.c
  fc181e877b4a4f6fa28daee1df38e75d  libgomp/testsuite/libgomp.c/allocator-2.c
  cad3ba808079842bfb8fef54eb0840df  libgomp/testsuite/libgomp.c/allocator-3.c
  8da1128096dc09d63468a8bb3579b20b  libgomp/testsuite/libgomp.c/allocator-4.c
  b568fd245f44f7f9bc3a6e38b724bd00  libgomp/testsuite/libgomp.c/allocator-5.c
  3a12b14ddf962d07ae2dec95832c6b5c  libgomp/testsuite/libgomp.c/allocator-6.c
+ 70c52e61b3d634d0539af8b6652609bd  libgomp/testsuite/libgomp.c/append-args-fr-1.c
+ e286db53a176fba18c337c3fb068bdbc  libgomp/testsuite/libgomp.c/append-args-fr.h
  1f6a1f1c31286073320fc1d55660da23  libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c
  16dafd2aadb62eb39423e7b2deb46cc1  libgomp/testsuite/libgomp.c/appendix-a/a.16.1.c
  e93a3e74972b33d2a0caef52cf757ee4  libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c
*************** afbc465058b9ba3f4c999bbdd4f3d1ae  libgom
*** 119444,119468 ****
  6d6b0531c9f74483e6111b636da2edf2  libgomp/testsuite/libgomp.c/declare-variant-2.c
  d9c383822eb3728cd6eba3775b3e04bc  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
  1f68040131b346f50f3b863a32ef8916  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
  24ce05bd1621e2283a45e5631d7fd074  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
  a30c653b4c75613a04461c9dd4693f7c  libgomp/testsuite/libgomp.c/declare-variant-3-sm70.c
  c7e4450d857de7de3db653040f28ea54  libgomp/testsuite/libgomp.c/declare-variant-3-sm75.c
  f2efa95bfb9ba9e454c38688371551c9  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
  07f0d7a64507218c809e5e271bdb674b  libgomp/testsuite/libgomp.c/declare-variant-3.c
! caa4b70d649a56b9cb4acf9c1b9d33a0  libgomp/testsuite/libgomp.c/declare-variant-3.h
! b17eb6111458622ccbcd4c9d76401e09  libgomp/testsuite/libgomp.c/declare-variant-4-fiji.c
  9d4e38bf8232dbd3d2be1dac08f82dce  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
  60f1694019edecc52984a1baf24bc84a  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1036.c
  c345d04dc352b555cd84bcebe00359d4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1100.c
  7a2a68c31d5cce8c28d27587e0760409  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1103.c
- fa4a95e1bb6a723927a8e1658906e3fb  libgomp/testsuite/libgomp.c/declare-variant-4-gfx803.c
  db5fedb1611696cb835292ca099add57  libgomp/testsuite/libgomp.c/declare-variant-4-gfx900.c
  498883a95dd74060d939d1ca4bc3190f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx906.c
  462b7afc311815ebbf76742eba03d83f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx908.c
  a6a60705b94c7e6b7919df5a6678c9c4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90a.c
  16f43074bb4d4a130ccb0b731b6ed992  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90c.c
  1a4ae6cfa2b54902b0414a9c9adc6ec2  libgomp/testsuite/libgomp.c/declare-variant-4.c
! 70dc5f53fc16735f50accae725d3a702  libgomp/testsuite/libgomp.c/declare-variant-4.h
  de26bcca8c4e027a5ce130d6ff6fc370  libgomp/testsuite/libgomp.c/depend-1.c
  f064386a2df301c3135834944af37de9  libgomp/testsuite/libgomp.c/depend-10.c
  e46784f3cdfb38c461a2af6e0d9094a0  libgomp/testsuite/libgomp.c/depend-2.c
--- 127282,127307 ----
  6d6b0531c9f74483e6111b636da2edf2  libgomp/testsuite/libgomp.c/declare-variant-2.c
  d9c383822eb3728cd6eba3775b3e04bc  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
  1f68040131b346f50f3b863a32ef8916  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
+ 30b6bbbc024fc68fa9e69677007dbae3  libgomp/testsuite/libgomp.c/declare-variant-3-sm37.c
+ 4ea99858cb964012c477b246b7693494  libgomp/testsuite/libgomp.c/declare-variant-3-sm52.c
  24ce05bd1621e2283a45e5631d7fd074  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
  a30c653b4c75613a04461c9dd4693f7c  libgomp/testsuite/libgomp.c/declare-variant-3-sm70.c
  c7e4450d857de7de3db653040f28ea54  libgomp/testsuite/libgomp.c/declare-variant-3-sm75.c
  f2efa95bfb9ba9e454c38688371551c9  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
+ 0315cdf9221c890fcd6f827cf70b030e  libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
  07f0d7a64507218c809e5e271bdb674b  libgomp/testsuite/libgomp.c/declare-variant-3.c
! 4d7956a5fddbef82f0e6b3a34255fa81  libgomp/testsuite/libgomp.c/declare-variant-3.h
  9d4e38bf8232dbd3d2be1dac08f82dce  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
  60f1694019edecc52984a1baf24bc84a  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1036.c
  c345d04dc352b555cd84bcebe00359d4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1100.c
  7a2a68c31d5cce8c28d27587e0760409  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1103.c
  db5fedb1611696cb835292ca099add57  libgomp/testsuite/libgomp.c/declare-variant-4-gfx900.c
  498883a95dd74060d939d1ca4bc3190f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx906.c
  462b7afc311815ebbf76742eba03d83f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx908.c
  a6a60705b94c7e6b7919df5a6678c9c4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90a.c
  16f43074bb4d4a130ccb0b731b6ed992  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90c.c
  1a4ae6cfa2b54902b0414a9c9adc6ec2  libgomp/testsuite/libgomp.c/declare-variant-4.c
! 980980e128b04d71584e4188d4a0be81  libgomp/testsuite/libgomp.c/declare-variant-4.h
  de26bcca8c4e027a5ce130d6ff6fc370  libgomp/testsuite/libgomp.c/depend-1.c
  f064386a2df301c3135834944af37de9  libgomp/testsuite/libgomp.c/depend-10.c
  e46784f3cdfb38c461a2af6e0d9094a0  libgomp/testsuite/libgomp.c/depend-2.c
*************** ca47d9e0cacee8e7c1316c14a513cda4  libgom
*** 119473,119478 ****
--- 127312,127318 ----
  76154443f28fedf1bb0797e99da9263c  libgomp/testsuite/libgomp.c/depend-7.c
  ec897cbb2003f55279c80e8a2f700f48  libgomp/testsuite/libgomp.c/depend-8.c
  2b66f56c0267e26a89308845398264b1  libgomp/testsuite/libgomp.c/depend-9.c
+ b4ce4bef3ce3441508c44b70ff84cd82  libgomp/testsuite/libgomp.c/device_uid.c
  e5b7c99f7690e7d5a01b632a8bbf6c3a  libgomp/testsuite/libgomp.c/doacross-1.c
  3664b043d881889fef3f1a55197c60ab  libgomp/testsuite/libgomp.c/doacross-2.c
  60e6c95d8f6e038252d5ffaead6d3549  libgomp/testsuite/libgomp.c/doacross-3.c
*************** ae4ee25a98b96a2f6bbcd9bc817b5b90  libgom
*** 119524,119529 ****
--- 127364,127370 ----
  19b2705df361d5db0e54ab9b2dbb30d4  libgomp/testsuite/libgomp.c/examples-4/teams-6.c
  00d45ed4a463f0629d2d21a38fe0073a  libgomp/testsuite/libgomp.c/icv-1.c
  6619bda92e7a29f372b1a0bc19ef2c79  libgomp/testsuite/libgomp.c/icv-2.c
+ ee1bca91c6e853556cd65170329412cb  libgomp/testsuite/libgomp.c/interop-fr-1.c
  60295e2f73526594a93b118333ca7ff3  libgomp/testsuite/libgomp.c/lib-1.c
  af9d852282ae3da623a0727f1df789ab  libgomp/testsuite/libgomp.c/lib-2.c
  954e001a86eca6e39424518360cc7b36  libgomp/testsuite/libgomp.c/linear-1.c
*************** c526be410e3cf6c1c674405feb05cbb2  libgom
*** 119555,119560 ****
--- 127396,127403 ----
  a28f0449c06d99dd5b700e4d3e6bc6f9  libgomp/testsuite/libgomp.c/loop-7.c
  b0f5c1da84528f7536416837c59936a3  libgomp/testsuite/libgomp.c/loop-8.c
  675d1d2731b881ab81851bc2a4026c37  libgomp/testsuite/libgomp.c/loop-9.c
+ 45f151a915cc0a329c8d36570d0886f2  libgomp/testsuite/libgomp.c/max_vf-1.c
+ fb6c2dd0e49019031b9710d8acb09de2  libgomp/testsuite/libgomp.c/max_vf-2.c
  d84bb51b8ed9d10332e1e2199d17e364  libgomp/testsuite/libgomp.c/nested-1.c
  1d1a9a5fca15cd4628e275afcbca97e9  libgomp/testsuite/libgomp.c/nested-2.c
  accdda3ec5d8ad880d3578643fdff519  libgomp/testsuite/libgomp.c/nested-3.c
*************** b39893ba213997fb0f30060685879d54  libgom
*** 119620,119626 ****
  aa4bf5c713a6787268e4b1415f31402c  libgomp/testsuite/libgomp.c/pr104952-2.c
  37f576b8026bd1367998c4594550703d  libgomp/testsuite/libgomp.c/pr108459.c
  c522146f1617da47efbc34dedb563f61  libgomp/testsuite/libgomp.c/pr24455-1.c
! 4d9e31cef64ff399334db6c29e3a07db  libgomp/testsuite/libgomp.c/pr24455.c
  5f9c41745fbf27e0d2ca8e182c9ff34f  libgomp/testsuite/libgomp.c/pr26171.c
  171517da7341c8e6ca4c626ff76c80d4  libgomp/testsuite/libgomp.c/pr26943-1.c
  9bfbda21478e06f67c9337c227588d2c  libgomp/testsuite/libgomp.c/pr26943-2.c
--- 127463,127469 ----
  aa4bf5c713a6787268e4b1415f31402c  libgomp/testsuite/libgomp.c/pr104952-2.c
  37f576b8026bd1367998c4594550703d  libgomp/testsuite/libgomp.c/pr108459.c
  c522146f1617da47efbc34dedb563f61  libgomp/testsuite/libgomp.c/pr24455-1.c
! fc16ef4cc2849f9673cfa72118b38b03  libgomp/testsuite/libgomp.c/pr24455.c
  5f9c41745fbf27e0d2ca8e182c9ff34f  libgomp/testsuite/libgomp.c/pr26171.c
  171517da7341c8e6ca4c626ff76c80d4  libgomp/testsuite/libgomp.c/pr26943-1.c
  9bfbda21478e06f67c9337c227588d2c  libgomp/testsuite/libgomp.c/pr26943-2.c
*************** e770a162e63a8ef14578c664c60a1609  libgom
*** 119751,119757 ****
  04f33a75b031f016315e9e0a8f1fdb89  libgomp/testsuite/libgomp.c/simd-math-1.c
  21b382f164a90f3510cb97d72b5288b0  libgomp/testsuite/libgomp.c/single-1.c
  f96d46491425528d3d7b30c80c64952a  libgomp/testsuite/libgomp.c/single-2.c
! 9c7099305bcb542ee8212ddbdf2951a3  libgomp/testsuite/libgomp.c/sort-1.c
  fe7fdb3688e9cc0090e8bf29500cd119  libgomp/testsuite/libgomp.c/static-chunk-size-one.c
  b100c329df163acfa97656a24a5c1bb9  libgomp/testsuite/libgomp.c/switch-conversion-2.c
  7c841b55fe2c0baa3b9aa8b2656a1d60  libgomp/testsuite/libgomp.c/switch-conversion.c
--- 127594,127600 ----
  04f33a75b031f016315e9e0a8f1fdb89  libgomp/testsuite/libgomp.c/simd-math-1.c
  21b382f164a90f3510cb97d72b5288b0  libgomp/testsuite/libgomp.c/single-1.c
  f96d46491425528d3d7b30c80c64952a  libgomp/testsuite/libgomp.c/single-2.c
! d949aebaa065c468f63b2e2f5894020d  libgomp/testsuite/libgomp.c/sort-1.c
  fe7fdb3688e9cc0090e8bf29500cd119  libgomp/testsuite/libgomp.c/static-chunk-size-one.c
  b100c329df163acfa97656a24a5c1bb9  libgomp/testsuite/libgomp.c/switch-conversion-2.c
  7c841b55fe2c0baa3b9aa8b2656a1d60  libgomp/testsuite/libgomp.c/switch-conversion.c
*************** cbc8d1928586e24499210f2cd9438551  libgom
*** 119862,119867 ****
--- 127705,127712 ----
  20b043532a006fde073387f9a23e4054  libgomp/testsuite/libgomp.fortran/alloc-comp-1.f90
  21463b128d951cea6b4ea41176379b5c  libgomp/testsuite/libgomp.fortran/alloc-comp-2.f90
  c9531d367dce1d94d1c60a4798d79661  libgomp/testsuite/libgomp.fortran/alloc-comp-3.f90
+ 1067959d41c1d727cb8b2b0fb01911a7  libgomp/testsuite/libgomp.fortran/alloc-pinned-1.f90
+ 9ddc595eb654a0b9f09bb8a163862bd3  libgomp/testsuite/libgomp.fortran/allocatable-comp.f90
  a52dbb26d615e1710d36c7f03cfed8b2  libgomp/testsuite/libgomp.fortran/allocatable1.f90
  b73d611bbde74c512acf2673614d7883  libgomp/testsuite/libgomp.fortran/allocatable10.f90
  ce39f2ea81b75f298726442f5d24021a  libgomp/testsuite/libgomp.fortran/allocatable11.f90
*************** b6f0fb56203a24951779ba06548a5fdf  libgom
*** 119883,119888 ****
--- 127728,127734 ----
  0d85a7a7d82fc3a1cb843bfd2d569a50  libgomp/testsuite/libgomp.fortran/allocate-6.f90
  0c4e938e58564254af87788f3071c7da  libgomp/testsuite/libgomp.fortran/allocate-7.f90
  81149f56dc2424a239c1018c9772cfeb  libgomp/testsuite/libgomp.fortran/allocate-8.f90
+ 5e4bfaae7990e17182be61796245e45b  libgomp/testsuite/libgomp.fortran/allocate-static.f90
  e8e247710b175502d920dd45bc21dcc1  libgomp/testsuite/libgomp.fortran/allocators-1.f90
  417aa104f21cd017122168ef884904f3  libgomp/testsuite/libgomp.fortran/allocators-2.f90
  a3968845ddd44e2abfd5506503fcaff2  libgomp/testsuite/libgomp.fortran/allocators-3.f90
*************** abb0596997e88cb58af2f0077223279d  libgom
*** 119965,119971 ****
--- 127811,127822 ----
  97297d1a4a7d048fc250d3d3fd1db73a  libgomp/testsuite/libgomp.fortran/declare-target-indirect-2.f90
  6e1ba8b2cba3a90e740772cb731ac63e  libgomp/testsuite/libgomp.fortran/declare-target-indirect-3.f90
  2b63f475e04fe3e224db519aa8c2799a  libgomp/testsuite/libgomp.fortran/declare-target-indirect-4.f90
+ 2f31f813a923a7a182caf202625282c1  libgomp/testsuite/libgomp.fortran/declare-target-link.f90
  6f5fe664dff676bc9cc04b850f98d046  libgomp/testsuite/libgomp.fortran/declare-variant-1.f90
+ 44d8d9c3b1c7635e58de184e9c3880ad  libgomp/testsuite/libgomp.fortran/declare-variant-2-aux.f90
+ c22d4261003f9e9a24b78eb85be81a5d  libgomp/testsuite/libgomp.fortran/declare-variant-2.f90
+ 482984a687deae231dd6cee06019eeb2  libgomp/testsuite/libgomp.fortran/declare-variant-mod-1-use.f90
+ 0d6d48032bdd88a941e4e9033c179a13  libgomp/testsuite/libgomp.fortran/declare-variant-mod-1.f90
  645acb6b48e623ae2033047eff79d0d5  libgomp/testsuite/libgomp.fortran/defaultmap-8.f90
  085b168af19aac8a6dd4f31eda256d5c  libgomp/testsuite/libgomp.fortran/depend-1.f90
  f528c60f59b52a75c434ced5c9a53e30  libgomp/testsuite/libgomp.fortran/depend-2.f90
*************** dbefb5b9dae6eea372fe12a983f2bbd5  libgom
*** 119977,119982 ****
--- 127828,127837 ----
  0cfa1d2bc7945a8885b5261d221ac3fd  libgomp/testsuite/libgomp.fortran/depend-inoutset-1.f90
  555a9404bb8537a4e77d4f6182bc9e1a  libgomp/testsuite/libgomp.fortran/depend-iterator-2.f90
  31e5e093c62472c7dd338fd5cb6f0a15  libgomp/testsuite/libgomp.fortran/depobj-1.f90
+ c0fbcca0efaaf61f3ecd6c1f034b3c9b  libgomp/testsuite/libgomp.fortran/device_uid.f90
+ 29fcf93d970981537fa57ab05447d96a  libgomp/testsuite/libgomp.fortran/dispatch-1.f90
+ bfae3125cfb0609a9f16b296d3761d5b  libgomp/testsuite/libgomp.fortran/dispatch-2.f90
+ d399d484908827be2ebc1cab5ad149fb  libgomp/testsuite/libgomp.fortran/dispatch-3.f90
  927ba26a384b46f208146dc741c0d464  libgomp/testsuite/libgomp.fortran/display-affinity-1.f90
  b27fda28ea209679d1fd8dab627e1468  libgomp/testsuite/libgomp.fortran/do1.f90
  e5575c879fa22b33a94ebe42d9cfc7aa  libgomp/testsuite/libgomp.fortran/do2.f90
*************** a0fea6593244c117295ec1c75e63b64f  libgom
*** 120032,120038 ****
  e3121f156cff11c333c32e13f4f02f1c  libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90
  255a1aa7b86dde3cea9341a6850d7679  libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90
  6c628015411eeef98b837dc37be337bf  libgomp/testsuite/libgomp.fortran/fortran.exp
! fb9368b98109517ddb26d546887b9aac  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-1.f90
  59681f1526deaa72f324d5b09ec00037  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-2.f90
  79b569df0b523b1e1a1abdbb6fa23c80  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-3.f90
  214e5c1014665b90bf23c493992692ba  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-4.f90
--- 127887,127893 ----
  e3121f156cff11c333c32e13f4f02f1c  libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90
  255a1aa7b86dde3cea9341a6850d7679  libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90
  6c628015411eeef98b837dc37be337bf  libgomp/testsuite/libgomp.fortran/fortran.exp
! 776474989bb31e59c13e0ed55ef47c39  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-1.f90
  59681f1526deaa72f324d5b09ec00037  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-2.f90
  79b569df0b523b1e1a1abdbb6fa23c80  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-3.f90
  214e5c1014665b90bf23c493992692ba  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-4.f90
*************** e7790d5b8d8196c4fec93af270c96df1  libgom
*** 120043,120052 ****
--- 127898,127917 ----
  f000e2dd72f2da9ab0cc0d3c7dfbe4fc  libgomp/testsuite/libgomp.fortran/icv-6.f90
  6b05d305be8a6a014f76bf8c1b289fec  libgomp/testsuite/libgomp.fortran/icv-8.f90
  8098941e1aa1655f15036b2e1fc490e8  libgomp/testsuite/libgomp.fortran/imperfect-destructor.f90
+ 5eea9fb11ec1f6c7e59b02927fa2cd55  libgomp/testsuite/libgomp.fortran/imperfect-transform-1.f90
+ dacc8946cc2bbcc4839a0b9754c0dc62  libgomp/testsuite/libgomp.fortran/imperfect-transform-2.f90
  1ebac3c2dec882cae43be4e087d64102  libgomp/testsuite/libgomp.fortran/imperfect1.f90
  535e13ddb267fcda011d0f91a32a0e42  libgomp/testsuite/libgomp.fortran/imperfect2.f90
  271e2d9d749e1f5890f336e5f24f7826  libgomp/testsuite/libgomp.fortran/imperfect3.f90
  1c26032f958727f57e30b4319a2304c4  libgomp/testsuite/libgomp.fortran/imperfect4.f90
+ a38a422e315bd08e01ae56187b2d4580  libgomp/testsuite/libgomp.fortran/inner-1.f90
+ 90c092c2be0665ce5d2321dde75daca3  libgomp/testsuite/libgomp.fortran/interop-routines-1.F90
+ 4870363962ab0a448c018370ffd79024  libgomp/testsuite/libgomp.fortran/interop-routines-2.F90
+ 8e05d631995537a54328f3667c310bd6  libgomp/testsuite/libgomp.fortran/interop-routines-3.F
+ 2845f9902c3c3a60314290858a0b7abf  libgomp/testsuite/libgomp.fortran/interop-routines-4.F
+ 9c55850bde7bfabdf7cff657c5b44496  libgomp/testsuite/libgomp.fortran/interop-routines-5.F
+ 0f68219697c00a7ea66039969b5c4050  libgomp/testsuite/libgomp.fortran/interop-routines-6.F
+ 28d16a15587d67e51cb31aa8cad48d31  libgomp/testsuite/libgomp.fortran/interop-routines-7.F90
  1d7f490f3aa22662cdd277712b26a462  libgomp/testsuite/libgomp.fortran/is_device_ptr-1.f90
  e917c7e025fcc6df71315792522da77e  libgomp/testsuite/libgomp.fortran/is_device_ptr-2.f90
  2382b518f8fa444fc94c1e6cf51b5280  libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90
*************** fbe0e124aba46c9f69f236a8199dee70  libgom
*** 120060,120065 ****
--- 127925,127937 ----
  edb8cf0884ac73fb59ab5c66f1acb3ad  libgomp/testsuite/libgomp.fortran/lib4.f90
  7122ffee4ad568a67d404fe06da86cf8  libgomp/testsuite/libgomp.fortran/lock-1.f90
  12b2386c008a817a32688ca1ae228c42  libgomp/testsuite/libgomp.fortran/lock-2.f90
+ 1eaa07c1de6332c1ca4a804289b33425  libgomp/testsuite/libgomp.fortran/map-alloc-comp-3.f90
+ fb198f79d07000ba2794e9cc222e90f8  libgomp/testsuite/libgomp.fortran/map-alloc-comp-4.f90
+ 5ba90ef527497f7543014a700be824f4  libgomp/testsuite/libgomp.fortran/map-alloc-comp-5.f90
+ e0c7a627e2c061377a19883807aabfe2  libgomp/testsuite/libgomp.fortran/map-alloc-comp-6.f90
+ 6b6de91ce089e96b58d531319cf398d4  libgomp/testsuite/libgomp.fortran/map-alloc-comp-7.f90
+ 0240fb14a61ab47fba407a3a8493bfc6  libgomp/testsuite/libgomp.fortran/map-alloc-comp-8.f90
+ 6ac483ce7553e0f56e0a85f9bc2dec1e  libgomp/testsuite/libgomp.fortran/map-alloc-comp-9.f90
  f4ad2acbc3bf213777f658e4581eb805  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-1.f90
  794f9311ffd6c98b9329dc06aa6a39e3  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-2.f90
  fe829ea13169aa018e2a5ad40e7581b9  libgomp/testsuite/libgomp.fortran/map-subarray-2.f90
*************** b916bf010c1060aa6d0c7f50cf781f71  libgom
*** 120072,120078 ****
--- 127944,127957 ----
  a4b7a9ace17dd9b075800abbfd0733ce  libgomp/testsuite/libgomp.fortran/map-subarray.f90
  eaa2fd770a7d57561f30521ae9f2fc9f  libgomp/testsuite/libgomp.fortran/map-subcomponents.f90
  235b8f3fb869589084e0e80ba5622db7  libgomp/testsuite/libgomp.fortran/masked-1.f90
+ 7baca0f45786073c31a549db83ba6091  libgomp/testsuite/libgomp.fortran/metadirective-1.f90
+ e9a079a2d85004b1722782adaa37de8a  libgomp/testsuite/libgomp.fortran/metadirective-2.f90
+ 6aff6b0d1880a8753ea2d552f0048670  libgomp/testsuite/libgomp.fortran/metadirective-3.f90
+ 5ae2ae972961030d963d73631aecabe3  libgomp/testsuite/libgomp.fortran/metadirective-4.f90
+ 1ab6677b5e3bc30e5c3ea7f03141763c  libgomp/testsuite/libgomp.fortran/metadirective-5.f90
+ c27e3ff7785e28826ee4bdcf83b8105f  libgomp/testsuite/libgomp.fortran/metadirective-6.f90
  835cd687e20bf1f2c12df594c245ecdc  libgomp/testsuite/libgomp.fortran/my-usleep.c
+ ee59540d156de5375a9874d751f6ee09  libgomp/testsuite/libgomp.fortran/nested-fn.f90
  34e118b4de7cfbd20c7427abb1d4c7e5  libgomp/testsuite/libgomp.fortran/nested1.f90
  d85fd25e4c208bee65d5780465935a3c  libgomp/testsuite/libgomp.fortran/nestedfn1.f90
  7aabebf18cc6b5bbbdc0f8f4a85f1a60  libgomp/testsuite/libgomp.fortran/nestedfn2.f90
*************** f94173449f0106660c3c83b7da6eb1b2  libgom
*** 120192,120197 ****
--- 128071,128077 ----
  1582a3cbc05a3c7b9ac548941c98cd81  libgomp/testsuite/libgomp.fortran/scan-2.f90
  fbdab6e5a5617405737d6de640e5197a  libgomp/testsuite/libgomp.fortran/scope-1.f90
  d5c0f2d60e8a68a314e661ccc5e4d638  libgomp/testsuite/libgomp.fortran/scope-2.f90
+ 9f7f086d88ffa3ab2d91919688dc0081  libgomp/testsuite/libgomp.fortran/self_maps.f90
  e4cf951d5826f38fd2445b2bd21a6f3b  libgomp/testsuite/libgomp.fortran/sharing1.f90
  fb3e4ec0015a50f8ddd3f6a1306e2627  libgomp/testsuite/libgomp.fortran/sharing2.f90
  4b323aab0234bc26e21f874065725efd  libgomp/testsuite/libgomp.fortran/simd1.f90
*************** abbc97bdf2b7f6b7eb83b0ea35d12ca8  libgom
*** 120226,120231 ****
--- 128106,128113 ----
  59c61dfb9aba411df68fdeed8f3c5659  libgomp/testsuite/libgomp.fortran/target-has-device-addr-2.f90
  9ddb3d9bf13556db631c8e466cc523cc  libgomp/testsuite/libgomp.fortran/target-has-device-addr-3.f90
  9ae0f32be5dff9e05029e020cf6af7de  libgomp/testsuite/libgomp.fortran/target-has-device-addr-4.f90
+ 1120cb9ede417a50f14029808474d5c1  libgomp/testsuite/libgomp.fortran/target-imperfect-transform-1.f90
+ f87602c3f6e42476a68353c1dae50f56  libgomp/testsuite/libgomp.fortran/target-imperfect-transform-2.f90
  c253434fe103910b87d86dea9746db67  libgomp/testsuite/libgomp.fortran/target-imperfect1.f90
  0e8f7aaa57b34a25d7833f1c90ac7733  libgomp/testsuite/libgomp.fortran/target-imperfect2.f90
  0f4b9f6a1fbad648f8f18947bac3dca7  libgomp/testsuite/libgomp.fortran/target-imperfect3.f90
*************** c253434fe103910b87d86dea9746db67  libgom
*** 120233,120238 ****
--- 128115,128124 ----
  49908b2e3663c182a2478e5f28929c6d  libgomp/testsuite/libgomp.fortran/target-in-reduction-1.f90
  c604509b615d707812822a4f9559faca  libgomp/testsuite/libgomp.fortran/target-in-reduction-2.f90
  dbe3bc360ddea6525088228f741db5dd  libgomp/testsuite/libgomp.fortran/target-is-accessible-1.f90
+ 0a168e5a38556e28478014f8c502669f  libgomp/testsuite/libgomp.fortran/target-is-initial-device-3.f90
+ b205f9e12d1bd4e2fa5b8ecd4f50db58  libgomp/testsuite/libgomp.fortran/target-is-initial-host-2.f90
+ 6859dad56b2334740e8ca2b4290949fe  libgomp/testsuite/libgomp.fortran/target-is-initial-host.f
+ 27af88403c16b3dceba23e48c356e1be  libgomp/testsuite/libgomp.fortran/target-is-initial-host.f90
  c8674726b7e6d033a64557c340289db9  libgomp/testsuite/libgomp.fortran/target-map-1.f90
  01e2ad7b20b3a43df8961f12a00e15c3  libgomp/testsuite/libgomp.fortran/target-memcpy-async-1.f90
  df2f6664e447efa046e484854a127809  libgomp/testsuite/libgomp.fortran/target-memcpy-async-2.f90
*************** fa86dfefc4898bd33879aef257ad3fc1  libgom
*** 120243,120250 ****
  453ae3ce43888cc2b5758900879a735c  libgomp/testsuite/libgomp.fortran/target-present-1.f90
  beb86fd00c7159b7c9e64baab658450f  libgomp/testsuite/libgomp.fortran/target-present-2.f90
  7d30e6e2b116e1b138176f9d553356ec  libgomp/testsuite/libgomp.fortran/target-present-3.f90
! 7e2f3e496520976a37df3ba992f7f69a  libgomp/testsuite/libgomp.fortran/target-print-1-nvptx.f90
! bc18d7dcb406b7660308046e178bba0d  libgomp/testsuite/libgomp.fortran/target-print-1.f90
  b7c20b004458fd9909db3090ddfcd1d8  libgomp/testsuite/libgomp.fortran/target-simd.f90
  06e3ddc01cecc71c2af49a64f38f6a88  libgomp/testsuite/libgomp.fortran/target-var.f90
  1db1fe2cc8dbdf1b311a5f49a4004ed7  libgomp/testsuite/libgomp.fortran/target1.f90
--- 128129,128135 ----
  453ae3ce43888cc2b5758900879a735c  libgomp/testsuite/libgomp.fortran/target-present-1.f90
  beb86fd00c7159b7c9e64baab658450f  libgomp/testsuite/libgomp.fortran/target-present-2.f90
  7d30e6e2b116e1b138176f9d553356ec  libgomp/testsuite/libgomp.fortran/target-present-3.f90
! ffc4f536027a66699af0956fc5b0d785  libgomp/testsuite/libgomp.fortran/target-print-1.f90
  b7c20b004458fd9909db3090ddfcd1d8  libgomp/testsuite/libgomp.fortran/target-simd.f90
  06e3ddc01cecc71c2af49a64f38f6a88  libgomp/testsuite/libgomp.fortran/target-var.f90
  1db1fe2cc8dbdf1b311a5f49a4004ed7  libgomp/testsuite/libgomp.fortran/target1.f90
*************** b13aebac7e571badd867d06964d3a1e1  libgom
*** 120299,120304 ****
--- 128184,128195 ----
  25a920544d3094734b29affc551ff0ef  libgomp/testsuite/libgomp.fortran/threadprivate2.f90
  d846e2b2160ea0523761005dd9a5d3b1  libgomp/testsuite/libgomp.fortran/threadprivate3.f90
  ada9ab71922b9746c950c941975002f2  libgomp/testsuite/libgomp.fortran/threadprivate4.f90
+ 079dd42dd91732e4113dcca9af5356cf  libgomp/testsuite/libgomp.fortran/tile-1.f90
+ 10059ddbbf35e93ecfbff0e75a54e547  libgomp/testsuite/libgomp.fortran/tile-2.f90
+ a9fb7025054b44d715c53f9df0e22afd  libgomp/testsuite/libgomp.fortran/tile-unroll-1.f90
+ 57972a5a8db318d7b1f597c110c67a03  libgomp/testsuite/libgomp.fortran/tile-unroll-2.f90
+ 4c61134298bbd5c1a4dd7fa614ae5bd2  libgomp/testsuite/libgomp.fortran/tile-unroll-3.f90
+ 176b01ed1aa80e482336a70a48b6c440  libgomp/testsuite/libgomp.fortran/tile-unroll-4.f90
  48a661d5fb49e8b4fcf66f025f784531  libgomp/testsuite/libgomp.fortran/udr1.f90
  5c5b279adcf502a31ec5869b8ff020b0  libgomp/testsuite/libgomp.fortran/udr10.f90
  8e64a104830a0f1e4d7e2368862c91e1  libgomp/testsuite/libgomp.fortran/udr11.f90
*************** b7bd8336394b70d4872d7295b8dbb7c1  libgom
*** 120314,120319 ****
--- 128205,128224 ----
  4acdfed7d5a78fbd6187898ad99810ff  libgomp/testsuite/libgomp.fortran/udr7.f90
  89ffb07dc14b0e2f94bf00145094bb66  libgomp/testsuite/libgomp.fortran/udr8.f90
  31c4959eb52e7283b173aa396ebc899c  libgomp/testsuite/libgomp.fortran/udr9.f90
+ 892d156647ae8f9b22d746533b7201f1  libgomp/testsuite/libgomp.fortran/unroll-1.f90
+ bd21817d20023f0fab53f626584f416d  libgomp/testsuite/libgomp.fortran/unroll-2.f90
+ 5d538431b39d2112051b16beeee23c2e  libgomp/testsuite/libgomp.fortran/unroll-3.f90
+ 80c0c3544080fac61a3e5c19b7cadf02  libgomp/testsuite/libgomp.fortran/unroll-4.f90
+ 1944ec416016c672c3790a8a940fb2fb  libgomp/testsuite/libgomp.fortran/unroll-5.f90
+ 4fe51bb37ff79034b05e66be170a7b56  libgomp/testsuite/libgomp.fortran/unroll-6.f90
+ afd4b83329abad34468cad618f6a65bd  libgomp/testsuite/libgomp.fortran/unroll-7.f90
+ b5434e1f036eb04d48e5539a7a967ee0  libgomp/testsuite/libgomp.fortran/unroll-7a.f90
+ 2435c15e3f13de93f5029cd3d7ff2c01  libgomp/testsuite/libgomp.fortran/unroll-7b.f90
+ ec7578b439097f138537ceda021b5414  libgomp/testsuite/libgomp.fortran/unroll-7c.f90
+ 21656ac5a39071483f64f89fa3e7d34a  libgomp/testsuite/libgomp.fortran/unroll-8.f90
+ 913612500d63b7123cfc8155f8708ce4  libgomp/testsuite/libgomp.fortran/unroll-simd-1.f90
+ fac06f18dd8712fb3271e7860be58526  libgomp/testsuite/libgomp.fortran/unroll-tile-1.f90
+ 49997e112adc8ebd77cd7a76a76d892d  libgomp/testsuite/libgomp.fortran/unroll-tile-2.f90
  54228803a196ad0284ae69ea06360510  libgomp/testsuite/libgomp.fortran/use_device_addr-1.f90
  b1f5d4bd212151ec10ee5fcb2e86e8a9  libgomp/testsuite/libgomp.fortran/use_device_addr-2.f90
  9161a2c67f2086d26842275e652c2d09  libgomp/testsuite/libgomp.fortran/use_device_addr-3.f90
*************** bc89329871a4063322c6c6a75033c327  libgom
*** 120349,120355 ****
  c7c454ddd0e7815a3bcc65d728543f0c  libgomp/testsuite/libgomp.graphite/force-parallel-7.c
  ef7b761ee578290c488dcfb7c28a0b66  libgomp/testsuite/libgomp.graphite/force-parallel-8.c
  afbfc00298798c7c56e3095384ac408a  libgomp/testsuite/libgomp.graphite/force-parallel-9.c
! d757ef7d2919ee29300032a783ba2dee  libgomp/testsuite/libgomp.graphite/graphite.exp
  b274f32716465c48bfe021ad40ae5184  libgomp/testsuite/libgomp.graphite/pr41118.c
  c1dccb240f2f18f83a5757b41c15beb2  libgomp/testsuite/libgomp.oacc-c++/c++.exp
  453e6f1d9f502042e4ee6b8e52564c6a  libgomp/testsuite/libgomp.oacc-c++/cache-1.C
--- 128254,128260 ----
  c7c454ddd0e7815a3bcc65d728543f0c  libgomp/testsuite/libgomp.graphite/force-parallel-7.c
  ef7b761ee578290c488dcfb7c28a0b66  libgomp/testsuite/libgomp.graphite/force-parallel-8.c
  afbfc00298798c7c56e3095384ac408a  libgomp/testsuite/libgomp.graphite/force-parallel-9.c
! e170724c02b2d69af43ca4f6d8d6e9e9  libgomp/testsuite/libgomp.graphite/graphite.exp
  b274f32716465c48bfe021ad40ae5184  libgomp/testsuite/libgomp.graphite/pr41118.c
  c1dccb240f2f18f83a5757b41c15beb2  libgomp/testsuite/libgomp.oacc-c++/c++.exp
  453e6f1d9f502042e4ee6b8e52564c6a  libgomp/testsuite/libgomp.oacc-c++/cache-1.C
*************** d4976186c6059f98d3a33b36f5c4d896  libgom
*** 120358,120367 ****
--- 128263,128287 ----
  d0be357251fa9b81f47dc517c6dcf8d4  libgomp/testsuite/libgomp.oacc-c++/deep-copy-12.C
  a924aab65a7c7201de2adf4968e8e2e6  libgomp/testsuite/libgomp.oacc-c++/deep-copy-13.C
  121dfc93f39c716edacdd5ec8cff3ceb  libgomp/testsuite/libgomp.oacc-c++/deep-copy-17.C
+ 7f7ef578a77055ce4ee324fc4a6ec4b1  libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C
+ 44a27cda6a0c94185e1eb7e1fa55e9b3  libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2-offload-sorry-GCN.C
+ d0c153796cda95778b802ac4d3590e73  libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2-offload-sorry-nvptx.C
+ 814bbf1d6553b2bee54f0d29dbccdbec  libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C
+ e962cf32862ac6bcb2b6ea398edfdd50  libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-3.C
+ 1aa1c3391668558aede2dda89558df14  libgomp/testsuite/libgomp.oacc-c++/exceptions-throw-1.C
+ 1e0f321f082f24b85dbeb1f3cfa75053  libgomp/testsuite/libgomp.oacc-c++/exceptions-throw-2-offload-sorry-GCN.C
+ 540859b8772d35083fbdd37b9ef0fa7a  libgomp/testsuite/libgomp.oacc-c++/exceptions-throw-2-offload-sorry-nvptx.C
+ ee1a268c7fe34ad56245419b00297722  libgomp/testsuite/libgomp.oacc-c++/exceptions-throw-2.C
+ 7f4bae64b52c943b334dac88f571e845  libgomp/testsuite/libgomp.oacc-c++/exceptions-throw-3.C
  15c29e5b997581e16ab18ae5944430d9  libgomp/testsuite/libgomp.oacc-c++/firstprivate-mappings-1.C
  a336b372fbba053cbc1902f7a2bf87d7  libgomp/testsuite/libgomp.oacc-c++/non-scalar-data.C
+ c0a105b51a55dbef11b76edfc93cd66c  libgomp/testsuite/libgomp.oacc-c++/pr101544-1.C
+ 4698b8b8308b5b669cd341603df37e61  libgomp/testsuite/libgomp.oacc-c++/pr119692-1-1.C
+ fc5a312ca5952f1f240d2e02ba8f5595  libgomp/testsuite/libgomp.oacc-c++/pr119692-1-2.C
+ 7a608cff9a2e9e80397f7d901d8dd38c  libgomp/testsuite/libgomp.oacc-c++/pr119692-1-3.C
  8c2a8c355da4844ae1d1a8608c1274f3  libgomp/testsuite/libgomp.oacc-c++/pr71959-aux.cc
  b3bb9cd7e87ab639790a4db7f6dbd451  libgomp/testsuite/libgomp.oacc-c++/pr71959.C
+ 46f821e74b568dab44c75755db1bd531  libgomp/testsuite/libgomp.oacc-c++/pr96835-1.C
  7cf085e4cd9232a234391a24598f031e  libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
  7c276dbb0b80b21e1156186b75f899c8  libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
  b4fc04813771a8801e90ced112679b03  libgomp/testsuite/libgomp.oacc-c++/ref-1.C
*************** a4d99d199ec3cbe4e82f903964fd10b5  libgom
*** 120386,120392 ****
  d837f4ea5db569cd8eddbc87f1ed25f2  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4-2.c
  dcef4e59a85d0709464c0a18f8106c53  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4.c
  2621742288741202fe390b6f70ca54c4  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c
! f4167c1c583a543e5b5024652b6d74be  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-gcn.c
  5a4f7ebc57b87f5bfae177b2506c9e4f  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c
  e52bf66ad30053b87fac627a1f4109d6  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c
  49c9709dccc76f20b3a5c5ffd8092842  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property.c
--- 128306,128312 ----
  d837f4ea5db569cd8eddbc87f1ed25f2  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4-2.c
  dcef4e59a85d0709464c0a18f8106c53  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4.c
  2621742288741202fe390b6f70ca54c4  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c
! b97a6d8727397fb6ae27aa487b284883  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-gcn.c
  5a4f7ebc57b87f5bfae177b2506c9e4f  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c
  e52bf66ad30053b87fac627a1f4109d6  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c
  49c9709dccc76f20b3a5c5ffd8092842  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property.c
*************** c9683c99e94f6e35b6a3266a17594788  libgom
*** 120799,120807 ****
  23819c21b173d31a96499e53ce2c30bd  libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90
  b679de5ffd18c9aa9dde2bffdaf92c7f  libgomp/testsuite/libgomp.oacc-fortran/acc_get_property.f90
  4d28dca537d7fed909bb00ab9ac2565d  libgomp/testsuite/libgomp.oacc-fortran/acc_host_device_ptr.f90
! 0eac7e1af4d8ca7c4c42d76cd5015444  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
! c9d04d0d82b514d2de4958c54c12b349  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
! a29a811aa157e6d9fe6113fc76befbe0  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
  1156f6bd1e8853e97f454dde55593fcf  libgomp/testsuite/libgomp.oacc-fortran/allocatable-1-1.f90
  b5f50dc24e2c3eca23c78de810809df1  libgomp/testsuite/libgomp.oacc-fortran/allocatable-1-2.f90
  268441c3b6afe4ef21eb895887650817  libgomp/testsuite/libgomp.oacc-fortran/allocatable-array-1.f90
--- 128719,128729 ----
  23819c21b173d31a96499e53ce2c30bd  libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90
  b679de5ffd18c9aa9dde2bffdaf92c7f  libgomp/testsuite/libgomp.oacc-fortran/acc_get_property.f90
  4d28dca537d7fed909bb00ab9ac2565d  libgomp/testsuite/libgomp.oacc-fortran/acc_host_device_ptr.f90
! b6bba590bb04152334d347ff9ad78585  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
! 7eea7269e36d7c56e10c9b1d3a71f65a  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
! 4df44003cf3f41333ad84f1cdec2d686  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
! 847cfbd217a45de5ba18854f10d8bd96  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-4.f
! 8c4b4647ec245f1b042496435e13ea41  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-2.f90
  1156f6bd1e8853e97f454dde55593fcf  libgomp/testsuite/libgomp.oacc-fortran/allocatable-1-1.f90
  b5f50dc24e2c3eca23c78de810809df1  libgomp/testsuite/libgomp.oacc-fortran/allocatable-1-2.f90
  268441c3b6afe4ef21eb895887650817  libgomp/testsuite/libgomp.oacc-fortran/allocatable-array-1.f90
*************** cdfddf352df6c0dd2ff55366462575ec  libgom
*** 120865,120873 ****
  7094eb65ee7121b33edac2c4502fd4cb  libgomp/testsuite/libgomp.oacc-fortran/dummy-array.f90
  8db3687cdd62db5b1cdc1b4ab1991217  libgomp/testsuite/libgomp.oacc-fortran/dynamic-incr-structural-1.f90
  de0b6577a463e2b1228c30823e3d915e  libgomp/testsuite/libgomp.oacc-fortran/dynamic-pointer-1.f90
! dec0ff0c9d1763372e0d89a8d486c716  libgomp/testsuite/libgomp.oacc-fortran/error_stop-1.f
! b15b38824b1308517e500eed941b395c  libgomp/testsuite/libgomp.oacc-fortran/error_stop-2.f
! 4a500c43dca65f6d5bef5129616a5d0f  libgomp/testsuite/libgomp.oacc-fortran/error_stop-3.f
  1ca90666ec166deb31a532f320f58fa2  libgomp/testsuite/libgomp.oacc-fortran/firstprivate-1.f90
  3898dca187bae0ab73b978a11c0837ba  libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execute_math.f90
  4ca493cb70831d0e3f88ed2c377c967f  libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
--- 128787,128796 ----
  7094eb65ee7121b33edac2c4502fd4cb  libgomp/testsuite/libgomp.oacc-fortran/dummy-array.f90
  8db3687cdd62db5b1cdc1b4ab1991217  libgomp/testsuite/libgomp.oacc-fortran/dynamic-incr-structural-1.f90
  de0b6577a463e2b1228c30823e3d915e  libgomp/testsuite/libgomp.oacc-fortran/dynamic-pointer-1.f90
! 9f9b49fa3b4cb5186897688abb79582b  libgomp/testsuite/libgomp.oacc-fortran/error_stop-1.f
! d4c998afe3395a31057b032c8236cf84  libgomp/testsuite/libgomp.oacc-fortran/error_stop-2-nvptx.f
! 67b39c72d0e6742c03f1f29b8c4ccc62  libgomp/testsuite/libgomp.oacc-fortran/error_stop-2.f
! e9217ba84b371ae704c322d5d0b3039a  libgomp/testsuite/libgomp.oacc-fortran/error_stop-3.f
  1ca90666ec166deb31a532f320f58fa2  libgomp/testsuite/libgomp.oacc-fortran/firstprivate-1.f90
  3898dca187bae0ab73b978a11c0837ba  libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execute_math.f90
  4ca493cb70831d0e3f88ed2c377c967f  libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
*************** ae34a0a33c324e692b2da2ef2923edb3  libgom
*** 120982,120995 ****
  ab1bef1451508c50b6d75e5790e61c2e  libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
  57178f0c49f9adc4befee9c7b93d77af  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part1.f90
  0713d6f197e69942e0bf3ce291d92c25  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part2.f90
! b67bfba76f88f8ae8281c1e2e381706a  libgomp/testsuite/libgomp.oacc-fortran/print-1-nvptx.f90
! d09acc02b3ee700aec282c0904706dde  libgomp/testsuite/libgomp.oacc-fortran/print-1.f90
  ac9e80c7d1eb2f0ec65ce5a9226fb1d2  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-gang.f90
  8d0523f7afaa77909cc566ebb2000f86  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-vector.f90
  1c3ea6cf8b3fdbaaca48eede6a78b377  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-worker.f90
  a2a630debffe26086dcf2269428bc680  libgomp/testsuite/libgomp.oacc-fortran/private-variables.f90
  08b06d21055c0ae650695af3186e447b  libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-1.f95
! 952cf19c9f437fe5bca60825d6e099a0  libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
  c8960b2d870263545f61c78baeb03c7b  libgomp/testsuite/libgomp.oacc-fortran/pset-1.f90
  0094f0ea35e805d38b98b9fc1df88e12  libgomp/testsuite/libgomp.oacc-fortran/reduction-1.f90
  97e65050d6226da060e95c2fb1985e9d  libgomp/testsuite/libgomp.oacc-fortran/reduction-2.f90
--- 128905,128918 ----
  ab1bef1451508c50b6d75e5790e61c2e  libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
  57178f0c49f9adc4befee9c7b93d77af  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part1.f90
  0713d6f197e69942e0bf3ce291d92c25  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part2.f90
! fa39d40c522eeae1dc23fa3714cfed9d  libgomp/testsuite/libgomp.oacc-fortran/print-1-nvptx.f90
! cf4db0561d9e91fc948fa089a97a7fcc  libgomp/testsuite/libgomp.oacc-fortran/print-1.f90
  ac9e80c7d1eb2f0ec65ce5a9226fb1d2  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-gang.f90
  8d0523f7afaa77909cc566ebb2000f86  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-vector.f90
  1c3ea6cf8b3fdbaaca48eede6a78b377  libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-worker.f90
  a2a630debffe26086dcf2269428bc680  libgomp/testsuite/libgomp.oacc-fortran/private-variables.f90
  08b06d21055c0ae650695af3186e447b  libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-1.f95
! 624aa6c4c4d999ffb5608ff165b0e1fe  libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
  c8960b2d870263545f61c78baeb03c7b  libgomp/testsuite/libgomp.oacc-fortran/pset-1.f90
  0094f0ea35e805d38b98b9fc1df88e12  libgomp/testsuite/libgomp.oacc-fortran/reduction-1.f90
  97e65050d6226da060e95c2fb1985e9d  libgomp/testsuite/libgomp.oacc-fortran/reduction-2.f90
*************** a8976adc015f700fa25295be14447374  libgom
*** 121008,121031 ****
  ee7521ad4aa9a4706a403ccbc2d58f80  libgomp/testsuite/libgomp.oacc-fortran/routine-5.f90
  b17d9a6be87aa880c6f4edacb94c8b96  libgomp/testsuite/libgomp.oacc-fortran/routine-7.f90
  d8a29de950f49f4fc90c9401a7c03227  libgomp/testsuite/libgomp.oacc-fortran/routine-9.f90
! d875f4d51a3b5cbf9037bc9fd0dacfd6  libgomp/testsuite/libgomp.oacc-fortran/routine-nohost-1.f90
  b82c902991148e9e09bcbe3437ff8128  libgomp/testsuite/libgomp.oacc-fortran/self-1.f90
! b597915a52bb85b1298c867e37105162  libgomp/testsuite/libgomp.oacc-fortran/stop-1.f
! 31a78af6c9cd8024bc256da6bee7798e  libgomp/testsuite/libgomp.oacc-fortran/stop-2.f
! 6767d800c1c100b32b1dba2d6080c0a3  libgomp/testsuite/libgomp.oacc-fortran/stop-3.f
  118ff709f6293993e72747d0a8eb6170  libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90
  82af62e83e94b4aaa2e865016ba78741  libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
  e8a3245c095430c8ef2413afe2ee4c48  libgomp/testsuite/libgomp.oacc-fortran/update-1.f90
  1ee538b1d8c3361fa5c71fc8cac2aa7a  libgomp/testsuite/libgomp.oacc-fortran/update-2.f90
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
! 13ce3738623ad8cdb030ba13f77c9b21  libgomp/work.c
! 3d0cabfa826bbd99a3b1267994ad1db4  libgrust/ChangeLog
! 69faa7ff8ff314e60429e38bdc3a7752  libgrust/Makefile.am
! 58b9b650d5ea3aba25ea340d260f9329  libgrust/Makefile.in
  ec9513341b9bd1ba3b60bf6fec70f852  libgrust/aclocal.m4
! b27259f4e18a25f0c7968a7ca91d4a9b  libgrust/configure
! 1999a0f92627e8ac9047e595977071b1  libgrust/configure.ac
  cd0e90dee6ce145ad0d11c240826b07b  libgrust/libproc_macro/bridge.rs
  9be138886623ca0802ec7844b8846a76  libgrust/libproc_macro/bridge/ffistring.rs
  f1392f7b3d0188f2db18881276432afa  libgrust/libproc_macro/bridge/group.rs
--- 128931,129220 ----
  ee7521ad4aa9a4706a403ccbc2d58f80  libgomp/testsuite/libgomp.oacc-fortran/routine-5.f90
  b17d9a6be87aa880c6f4edacb94c8b96  libgomp/testsuite/libgomp.oacc-fortran/routine-7.f90
  d8a29de950f49f4fc90c9401a7c03227  libgomp/testsuite/libgomp.oacc-fortran/routine-9.f90
! 0913cd77ca5a104a19aca1258c7e88fb  libgomp/testsuite/libgomp.oacc-fortran/routine-nohost-1.f90
  b82c902991148e9e09bcbe3437ff8128  libgomp/testsuite/libgomp.oacc-fortran/self-1.f90
! 9aebdff3c875cae3883fa4571ea3eb33  libgomp/testsuite/libgomp.oacc-fortran/stop-1.f
! 49ae3cc5d2cea3e73d2890d1f16db12d  libgomp/testsuite/libgomp.oacc-fortran/stop-2-nvptx.f
! b5793422db2ab1fac971637e71a0e842  libgomp/testsuite/libgomp.oacc-fortran/stop-2.f
! ba2410557eb007f3742d7267cdb76ab4  libgomp/testsuite/libgomp.oacc-fortran/stop-3.f
  118ff709f6293993e72747d0a8eb6170  libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90
  82af62e83e94b4aaa2e865016ba78741  libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
  e8a3245c095430c8ef2413afe2ee4c48  libgomp/testsuite/libgomp.oacc-fortran/update-1.f90
  1ee538b1d8c3361fa5c71fc8cac2aa7a  libgomp/testsuite/libgomp.oacc-fortran/update-2.f90
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
! 9b8b2dd0e3a57784ab6771591edb6c3b  libgomp/work.c
! 3fcd313d6a6384d2252a24fad0940d5c  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
! 5b8c4f2c68e7e368ebf5dfe691f123cc  libgrust/libformat_parser/src/bin.rs
! 0bb7db29ef9484901df9c8432f3111be  libgrust/libformat_parser/src/lib.rs
! 5de0997e16db9a44190def85f9f13dfb  libgrust/libformat_parser/vendor.NOTES
! 52049d8cbe8ad32f775d60e1735bbc8a  libgrust/libformat_parser/vendor/libc/.cargo-checksum.json
! 51dc481112b59ff0e0e202e0ce38fe9a  libgrust/libformat_parser/vendor/libc/CONTRIBUTING.md
! 88e796ef7027e79e193c38c0f84dcad4  libgrust/libformat_parser/vendor/libc/Cargo.toml
! 22a53954e4e0ec258dfce4391e905dac  libgrust/libformat_parser/vendor/libc/LICENSE-APACHE
! 75e317e57cfa6ba43d97c6ed4504e2b0  libgrust/libformat_parser/vendor/libc/LICENSE-MIT
! 587e8de19d1029be482c5640187fb6b2  libgrust/libformat_parser/vendor/libc/README.md
! 6a49aedcd1f047a823d2d75f93ddb0d0  libgrust/libformat_parser/vendor/libc/build.rs
! e3d4f1408ba173725f5c457bb62b61ab  libgrust/libformat_parser/vendor/libc/rustfmt.toml
! 0994737e1a5a17e976c45a21d81c34fc  libgrust/libformat_parser/vendor/libc/src/fixed_width_ints.rs
! 7f127505eb1246d0d2ce5979caeab8c9  libgrust/libformat_parser/vendor/libc/src/fuchsia/aarch64.rs
! 0c25f86549943629058d8f4cd12a3170  libgrust/libformat_parser/vendor/libc/src/fuchsia/align.rs
! eee0774a2c32dd8c5dcfc9a654976ddd  libgrust/libformat_parser/vendor/libc/src/fuchsia/mod.rs
! 583db72084910403ba48688ddd12a9bb  libgrust/libformat_parser/vendor/libc/src/fuchsia/no_align.rs
! 8848864fe635f54a1ca14ae1ec444b66  libgrust/libformat_parser/vendor/libc/src/fuchsia/riscv64.rs
! bc91ab8cc809ab001088e3e3f17fc501  libgrust/libformat_parser/vendor/libc/src/fuchsia/x86_64.rs
! b0afc025135d0c970e3469a5346b10ed  libgrust/libformat_parser/vendor/libc/src/hermit/aarch64.rs
! e23d849908d4d225692e47c157058083  libgrust/libformat_parser/vendor/libc/src/hermit/mod.rs
! 752cc46394fb0fa3052d5c3624eaf01f  libgrust/libformat_parser/vendor/libc/src/hermit/x86_64.rs
! edba6df631a93d01a81267b80b454db4  libgrust/libformat_parser/vendor/libc/src/lib.rs
! 796806da1a42f7ae26415c7276ee62b1  libgrust/libformat_parser/vendor/libc/src/macros.rs
! a721c14f51c260f1e5109f6141ebcf14  libgrust/libformat_parser/vendor/libc/src/psp.rs
! cf39eb68a24d078739bf7e21fa5d4ab3  libgrust/libformat_parser/vendor/libc/src/sgx.rs
! fc95c9df3a153adb9c9b992245ad6132  libgrust/libformat_parser/vendor/libc/src/solid/aarch64.rs
! acfcb69914e5632409b18d9c662f3e75  libgrust/libformat_parser/vendor/libc/src/solid/arm.rs
! 4b03a3cb3390c9ba60ad080d8e9d258a  libgrust/libformat_parser/vendor/libc/src/solid/mod.rs
! 5465421a0dac1ca829376d084b7bd91b  libgrust/libformat_parser/vendor/libc/src/switch.rs
! 9450760ca2d3688c17e170dd87bb97a4  libgrust/libformat_parser/vendor/libc/src/teeos/mod.rs
! 0cd0ab82f6e07289bb01f09ccc58a4e9  libgrust/libformat_parser/vendor/libc/src/unix/aix/mod.rs
! f9eeb1111325bfbc21b5fc08f3c4c94a  libgrust/libformat_parser/vendor/libc/src/unix/aix/powerpc64.rs
! dd905fcbccfcea1221e06687b77b555f  libgrust/libformat_parser/vendor/libc/src/unix/align.rs
! 32e7c33392baac104febc91dce4e8956  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b32/align.rs
! e403b38ece4b3e1571cdfb2a5d80662c  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b32/mod.rs
! 5f7c5f1e9d76c17313b04c7d3f4e7271  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs
! 5e8d0568a572fe2229cd8d322af5155f  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs
! 32e7c33392baac104febc91dce4e8956  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/align.rs
! 3fc3cfddab63c19ad20fb631484e658b  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/mod.rs
! 32e7c33392baac104febc91dce4e8956  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/x86_64/align.rs
! 6200dddc6116f4da5e09feb7bd0db3ad  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs
! 22372030f7e6eae5656de877f02d3a0f  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/long_array.rs
! ec66892bab649e50b8a9a98eb9b467c2  libgrust/libformat_parser/vendor/libc/src/unix/bsd/apple/mod.rs
! 24319e6750366a5a7d336c55ca7fc2ba  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/errno.rs
! 5da33258d77c24d4da32477607f98b62  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
! 5370f6c5c67579ce18349bb89ada31e8  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
! 0d2b4a37fd28eb8904e8e9abdd0d071a  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs
! 0600484f3097294a7ddb37b5c3fa31e0  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs
! 378b4142b20fba909476f88a7b328541  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
! c576686eacf1c55678a214b025531550  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs
! af3323c801eb18c4cbe8106844b996bc  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
! 0d4c3638521044d74984a49fe91f05bb  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs
! c576686eacf1c55678a214b025531550  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs
! 6d6a1e0236b3d9a9cc34bb049c31ac5d  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
! 0d4c3638521044d74984a49fe91f05bb  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs
! c576686eacf1c55678a214b025531550  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs
! 7643aceba24312e8b3113aa22b201482  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
! 63d4fe5535832b97819fd2f86ae9f49f  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs
! c576686eacf1c55678a214b025531550  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs
! 2b56687fc2fd3fbbc445bcd819257a4a  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
! 63d4fe5535832b97819fd2f86ae9f49f  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs
! 07ac70a32bf092a9ce3835207aa4515a  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
! ddda51467ea8651af683c353c172ebf7  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs
! 3895ebfc6c49fc9ee214550dac84a429  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
! 0ad3ccf84482b5fee951343f7c137bfc  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs
! 1d14513d0ae9a1f51bd8d7e50d237c8f  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
! 05929c575627370bdb09af43b7cf3122  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs
! 50dccfef1ec11d7ff76931c0c84bae3b  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
! 84d44f2f07d9ae7f5ede559b9a1b8128  libgrust/libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
! 3c7d83e7740df5dac61650981c32d391  libgrust/libformat_parser/vendor/libc/src/unix/bsd/mod.rs
! f264ece0565ace1fb2aaa3a74b81fdd0  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
! 53e11c70cffc79ec55cda2138d5e3948  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs
! de0604a368192d86dd7a33f9572b7c5a  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs
! 7ff2ecacaf7172aefb6ae247e3735e9e  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs
! 88c2510249c906843d0ad0a18f420464  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
! 72116aec23b2a0e54b0ca8eba512c704  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs
! cae6b38f4a0776f48838c67d15342839  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs
! 38c4bbcd7897cf812c770c91e3cac7d1  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/sparc64.rs
! c0ebfaa2bce7f1c9878caa92c609eb80  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs
! 7fc3412313d359c61d1f4a4a15667b57  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs
! a61e170df983ea054b6b76fc77bd94a2  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs
! 00b9f8c7fc8d1f89445dc3d78e1efc7e  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs
! 579b1642eab920ee876adbd11908c857  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mips64.rs
! b02ae8688764b988a8ad6e03c45f1147  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
! 00b9f8c7fc8d1f89445dc3d78e1efc7e  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs
! ae12f5e7438fb7127478d5000bddbae8  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs
! 9bae6007b3519b2c1267bf27e485c0af  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs
! 492ba991a34ac2082602126f308f0c5d  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/sparc64.rs
! 49ccfb6800035c63cd83ce225260d2e0  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs
! 62c303339042d9224311021e5ea08ee5  libgrust/libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs
! fcd283e31dba8cc12e0ef1cae1a20db7  libgrust/libformat_parser/vendor/libc/src/unix/haiku/b32.rs
! 0ef2a50d1c84c3156a9e3b65f717e68b  libgrust/libformat_parser/vendor/libc/src/unix/haiku/b64.rs
! d81dd27b22c44b7964893ef7ba724a1a  libgrust/libformat_parser/vendor/libc/src/unix/haiku/mod.rs
! a566dfb92595129f54c650dae57536a0  libgrust/libformat_parser/vendor/libc/src/unix/haiku/native.rs
! 3318ffaf0497f7dbba58bf6ba87bb189  libgrust/libformat_parser/vendor/libc/src/unix/haiku/x86_64.rs
! 83238b95eb66f65d2ff80aa84461d737  libgrust/libformat_parser/vendor/libc/src/unix/hurd/align.rs
! 642ced9592f05a89fb56c7729e0772f8  libgrust/libformat_parser/vendor/libc/src/unix/hurd/b32.rs
! 62d670a65a132876998179c12a91e6e4  libgrust/libformat_parser/vendor/libc/src/unix/hurd/b64.rs
! 733a528abddc4d9043945a581540b274  libgrust/libformat_parser/vendor/libc/src/unix/hurd/mod.rs
! 83238b95eb66f65d2ff80aa84461d737  libgrust/libformat_parser/vendor/libc/src/unix/hurd/no_align.rs
! 81c3ecc345abfd0f25731bd813bde47b  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b32/arm.rs
! 452dca5deb068b7fd54d9502a81cd34e  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b32/mod.rs
! 570dc5580ea5ebfd772832c623d0fda0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b32/x86/align.rs
! 86c6b35bd28cb97d0e13493012d8ebe2  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs
! d2a711ae5b5aae8226da82e156a44c5c  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/align.rs
! bc39aa418464389272df52a81cb78e23  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/int128.rs
! 9711fd0427b2580c998af3fede4bd624  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs
! 2bbbc2d2298f46a8941478710fe74972  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/mod.rs
! 69636b20dfe0cd449649f5a93e0a724e  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/riscv64/align.rs
! 708355f8c83c9004572cfcf13c7fae87  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs
! e8d9a42409ce1237680086eed22917d0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/x86_64/align.rs
! 05db86d62b57627e25356f63a2d40bec  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs
! 760deddcfde2777968626b941b0f1fc6  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/android/mod.rs
! f30410dbec546f4a70ada3dae3711588  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/emscripten/align.rs
! e524bea7c9e2f6c579ef29b058dcb9ea  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs
! 5a20b95586d6664d64feac8cdb586630  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/emscripten/mod.rs
! dedf8dab66dfc736d1f82c6de36ba95d  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/emscripten/no_align.rs
! 567bb8fd47ebeb04220ef9f72bcbb864  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/align.rs
! 63ca1adbb5c980441c4d3f60c534a272  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs
! cc8490026ad68cb547dca01432ee3079  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs
! 85001adce11dedc3db0a4e054671057f  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/mod.rs
! 860a3673956816937921f6d789295de3  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs
! 916f9cc4200748bf3d63c02db949dd97  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs
! 971c565ef97c28c53fdfd7c6cd846c67  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/align.rs
! 63180f1a4b5479422148b7503d07c87f  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/align.rs
! ea535d83219a74ccc51d2c71ed514569  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
! fbe37dfa85c954f04bd6d8da4c999820  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs
! 3f072faa82dc47d1852a9829134bf7fc  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs
! a04082e7f4405f7865576fd55cb03657  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/align.rs
! 06259ed7754160da72ef8b92ce60a773  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs
! 2a441188ebef00afb4b3f8ff94f2eaf6  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/align.rs
! 97517007385f6677f78e1a7230cbc456  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs
! 00bada6bc94a49fe0b3900c6aaf545a0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs
! ee4b30d044c9485cc12f4431b8809301  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs
! 4e37b7a5480ade8dbf97c56ab9e83466  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs
! 15ad62969b1fc233847ccca905a720df  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs
! 3b67a8c33e7f9030b2077105127c16cf  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/align.rs
! 36848f95d1edb46c2c6f4878dacad63f  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs
! 7c5e5b37fb70c19b237b2d03671cfdf6  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/align.rs
! 6b8c850b9714e3d22ed84af9bc5e13bf  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs
! 540c52bc50593f2df94b00282d39ba5b  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
! 3aacbb02c15da2811665fcd57405ec81  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs
! d78373d69c1824d044a7d48bb687fbc6  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs
! bc39aa418464389272df52a81cb78e23  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs
! 02e90b0a9d7c5dbafa64c8e5cb5b7e19  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs
! 4470957d74897db955f6688b048fca3c  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
! fae8caa2fe4e39407c7b1c589e39b813  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs
! fb62083376b957568e9beca792a3908d  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
! e8d9a42409ce1237680086eed22917d0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/align.rs
! 10843c176f695bd89e224c4d2c29167a  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
! b2ed51a96bc06f17f1fddce06d4f130a  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs
! 761877ac1c1816cde788313896fd44f3  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs
! 00647f3afb060a1fb7497dd85ac68193  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
! 4e37b7a5480ade8dbf97c56ab9e83466  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs
! 1fb7dc86696674d79110b3557e5e2ca2  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs
! c78b91a08d4ffb21eb4a2b800e81cc3a  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs
! 761877ac1c1816cde788313896fd44f3  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs
! 2679b86600f54eb6e172196474f1adfb  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
! df34def39e9745bda8212169f915c69b  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs
! 00ca09a2a6ec60c77b7e105635d50c71  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
! 4a310741bce7642e6a17600cc1e21b8b  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
! d0a78958837a1dab1994f0d8fad0f0ec  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs
! 47b0403be4a5f6c351e400a2a1424da1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs
! 32674a709179ebf283912efc11158ec1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/no_align.rs
! f962f21af0239b59fac7f31a4a1d0bcb  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/mod.rs
! cd279dbbfc6ee5a238f42a9dbf7619f5  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/align.rs
! f35175c07ecc59714d0a6de0c09698f0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs
! 8a4d105660591e34700f3642cd87a0b5  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs
! 2a441188ebef00afb4b3f8ff94f2eaf6  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/align.rs
! 573d4177dab8f123daab329270da3ba0  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs
! 4eb8798a72a13cd71a45ad9eb5742ed1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs
! d67cebe79dbe0a7fc28f7088a4d92924  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs
! c21db6110780ca79531cd15f238a99c3  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/align.rs
! 36c9e673b9b871effbdc68fa793624d3  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
! 9070c69ae9897c408f8ea7d8dd635710  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/align.rs
! 5c615b76cfe8f232f9cf7f5ce25f887e  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs
! a8a719e1a562b41fbbd3d384ac7cfbf1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/align.rs
! bc39aa418464389272df52a81cb78e23  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs
! c95bb35044dba45255708308c20cca63  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
! bb76aa4b8d6df242c2f496b58ddd78be  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs
! 54c68ea5808ee693d3a1f1467970e724  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
! fef85797af759c1f2dec7b30726d9130  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs
! 4e37b7a5480ade8dbf97c56ab9e83466  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/align.rs
! 955cd13a621695575d8dc62046a93c16  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
! f198f71bf5093f1849c612fc41f24752  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs
! 2a8c46aa71d0ff0830903daf656a2fcc  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/align.rs
! c1db167fcc6b55a2b99eb4b027bc4b69  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
! 52db189e0de0ff8e88b62386ba14e910  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/lfs64.rs
! 4a7feb06baea37346a9b86a88039d6d4  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
! efc25e9af5fcbbb3e90d8f06d7390995  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/no_align.rs
! 9e4a7cc12f724a58c0b01c0f4eb0fa07  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/non_exhaustive.rs
! 35204f63a5a2066cd8ba37b774541e65  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/align.rs
! 971c565ef97c28c53fdfd7c6cd846c67  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/align.rs
! cbf8eaf4292414463960b6feec91a811  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs
! 32674a709179ebf283912efc11158ec1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/no_align.rs
! 971c565ef97c28c53fdfd7c6cd846c67  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs
! cc1d8d846be9582f03fee58f17065f22  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs
! 32674a709179ebf283912efc11158ec1  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs
! 95d632ed798cbf4d0c2bd1577df40e9c  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs
! ec6bb67a9c9590d2e2f695578428a96c  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs
! f2ce020c485bd43fa1967242d6d7e384  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs
! 9206056285fc7d69701d217cf180ffb2  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs
! 65724ca15fc65edcb6ddcaed744e5b14  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs
! 416d9e12ac33411099f70a969a7930de  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/no_align.rs
! e3fe537c2aef579bd3353dfffca4ba2a  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs
! 5965487b95524b4c431f7211fd199e20  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs
! d0472c7f2f6b994c6059cbe6797b92f4  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/other.rs
! 6ad51066e144ca482489ca6bfceab5af  libgrust/libformat_parser/vendor/libc/src/unix/linux_like/mod.rs
! a3706ab54ee8056465d5f4a03add5192  libgrust/libformat_parser/vendor/libc/src/unix/mod.rs
! d4fc9615ea77826c0bdd45dac0f604ab  libgrust/libformat_parser/vendor/libc/src/unix/newlib/aarch64/mod.rs
! 225029ec0179538cb50fdd6a23c04467  libgrust/libformat_parser/vendor/libc/src/unix/newlib/align.rs
! 04202290c5998a1a3dde9e67ee02402d  libgrust/libformat_parser/vendor/libc/src/unix/newlib/arm/mod.rs
! c307ee2bdbe7750e0528e1ffb9871460  libgrust/libformat_parser/vendor/libc/src/unix/newlib/espidf/mod.rs
! d8a8d6d188c5466254bda7dba4225aee  libgrust/libformat_parser/vendor/libc/src/unix/newlib/generic.rs
! 429a93acf247258e7625a3225bbee347  libgrust/libformat_parser/vendor/libc/src/unix/newlib/horizon/mod.rs
! db1fb80de9695e89159d724bcd09cde0  libgrust/libformat_parser/vendor/libc/src/unix/newlib/mod.rs
! c887642b168e9954205ddd9af091e13f  libgrust/libformat_parser/vendor/libc/src/unix/newlib/no_align.rs
! e6e942b684d19190da5c726ea80a0f72  libgrust/libformat_parser/vendor/libc/src/unix/newlib/powerpc/mod.rs
! 84b2962dabb009b9d753b000d9b25845  libgrust/libformat_parser/vendor/libc/src/unix/newlib/vita/mod.rs
! 33f627bdaf248b5299f6e95c4a0cb915  libgrust/libformat_parser/vendor/libc/src/unix/no_align.rs
! dc5405673952177827ee4fdb34756be4  libgrust/libformat_parser/vendor/libc/src/unix/nto/aarch64.rs
! ab5fe363e4f871d99359fcf16029c2ab  libgrust/libformat_parser/vendor/libc/src/unix/nto/mod.rs
! 8bdeb710a53336b67c7dc3935297480e  libgrust/libformat_parser/vendor/libc/src/unix/nto/neutrino.rs
! 1d5c2226e810c9a9d69f7300d571b6cd  libgrust/libformat_parser/vendor/libc/src/unix/nto/x86_64.rs
! e795879506a5303309ca809f11cf1411  libgrust/libformat_parser/vendor/libc/src/unix/redox/mod.rs
! 0a5fe57429d8e8f1a572fcde321f35f5  libgrust/libformat_parser/vendor/libc/src/unix/solarish/compat.rs
! 8bc1342d5cd3b773eae42801deb33679  libgrust/libformat_parser/vendor/libc/src/unix/solarish/illumos.rs
! 1921375308d5d96f40336ee47f9cc1ca  libgrust/libformat_parser/vendor/libc/src/unix/solarish/mod.rs
! f2cf57b301f000d8d506e05626d6d738  libgrust/libformat_parser/vendor/libc/src/unix/solarish/solaris.rs
! 93edc70bdad85ebd0aa0d3fc9891e28b  libgrust/libformat_parser/vendor/libc/src/unix/solarish/x86.rs
! d042d1fbdb762560f41a0bc650d468f2  libgrust/libformat_parser/vendor/libc/src/unix/solarish/x86_64.rs
! 572a4ae27ca71e49593767afa49597fe  libgrust/libformat_parser/vendor/libc/src/unix/solarish/x86_common.rs
! f6435f4ff4d56c2b1e87e33571339605  libgrust/libformat_parser/vendor/libc/src/vxworks/aarch64.rs
! b620cec2d47673c1beb997666243fb01  libgrust/libformat_parser/vendor/libc/src/vxworks/arm.rs
! 7768acf113c36dcec8c7a87c7ace8716  libgrust/libformat_parser/vendor/libc/src/vxworks/mod.rs
! b620cec2d47673c1beb997666243fb01  libgrust/libformat_parser/vendor/libc/src/vxworks/powerpc.rs
! f6435f4ff4d56c2b1e87e33571339605  libgrust/libformat_parser/vendor/libc/src/vxworks/powerpc64.rs
! 4281172ae3febaa3f5f6995c5d6ffab1  libgrust/libformat_parser/vendor/libc/src/vxworks/x86.rs
! 2285e6497df42a0c865cb33f7c2ea62d  libgrust/libformat_parser/vendor/libc/src/vxworks/x86_64.rs
! e6c34a64638f7fd2e1239377a116d8ed  libgrust/libformat_parser/vendor/libc/src/wasi.rs
! 8e946fb73c42b2f784c9401f49be86d0  libgrust/libformat_parser/vendor/libc/src/windows/gnu/align.rs
! 4868c32a58f58116eaa21065012a563b  libgrust/libformat_parser/vendor/libc/src/windows/gnu/mod.rs
! 62252b53b2f17883a3f0789c9f1a6d06  libgrust/libformat_parser/vendor/libc/src/windows/mod.rs
! 9403a9b77b47090156bf966897580be9  libgrust/libformat_parser/vendor/libc/src/windows/msvc/mod.rs
! 65387ea891e52568fa31e7c10c0d7623  libgrust/libformat_parser/vendor/libc/src/xous.rs
! 0fdb3080438e658b9713a092bf9f083d  libgrust/libformat_parser/vendor/libc/tests/const_fn.rs
! 07a04112a03baeaee97a4b5a06d0968c  libgrust/libformat_parser/vendor/unicode-xid/.cargo-checksum.json
! 37ace7095226db9416857c9ca8d1b090  libgrust/libformat_parser/vendor/unicode-xid/COPYRIGHT
! 4bdb2d41af55391bf92df6c6143e3dd1  libgrust/libformat_parser/vendor/unicode-xid/Cargo.toml
! 1836efb2eb779966696f473ee8540542  libgrust/libformat_parser/vendor/unicode-xid/LICENSE-APACHE
! 615cc94ba6f721c4ed3d6988605e85ca  libgrust/libformat_parser/vendor/unicode-xid/LICENSE-MIT
! 45a415b2281be73d399a92da0844e945  libgrust/libformat_parser/vendor/unicode-xid/README.md
! 9528e4bc14e313bb779737c416f0217d  libgrust/libformat_parser/vendor/unicode-xid/benches/xid.rs
! 59a2bbfdda5bc835c4f41f73ee19efe6  libgrust/libformat_parser/vendor/unicode-xid/src/lib.rs
! dc95b845e2144d59ed6a2b3c9398482d  libgrust/libformat_parser/vendor/unicode-xid/src/tables.rs
! 3fdb6814b819865c2b80a29f834bad03  libgrust/libformat_parser/vendor/unicode-xid/src/tests.rs
! 50e29468abb137cb388f115b990cff84  libgrust/libformat_parser/vendor/unicode-xid/tests/exhaustive_tests.rs
  cd0e90dee6ce145ad0d11c240826b07b  libgrust/libproc_macro/bridge.rs
  9be138886623ca0802ec7844b8846a76  libgrust/libproc_macro/bridge/ffistring.rs
  f1392f7b3d0188f2db18881276432afa  libgrust/libproc_macro/bridge/group.rs
*************** d310c3612a920f243d62620f007dec94  libgru
*** 121065,121080 ****
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! b5295ae4e91ddc331c613b05ca5c9492  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
! 4ec52efbaf3e8230220b57e77177d128  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
! 7af5d591b3cb40f1e59bb792e9f5d024  libiberty/_doprnt.c
! 13c18c367fc6e927fac085ecaac9f9e9  libiberty/acinclude.m4
  49e4e53c90bd47bd515e4f0493037ae8  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
! a03997af2b069bf085cd6fd8c9a51887  libiberty/argv.c
! ccaf766a779fd9f380fc088a74581599  libiberty/asprintf.c
  a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
  c34119797a13e71989722851c14b711b  libiberty/atexit.c
  ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
--- 129254,129269 ----
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! b299ffa87ad727d08b76ce54b1da1f73  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
! 9b063cff28e2237e897ffbd7475e05ac  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
  a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
  c34119797a13e71989722851c14b711b  libiberty/atexit.c
  ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
*************** a707d2e5daa09d204d4441e8713048ca  libibe
*** 121084,121319 ****
  0ce04768d60b33d4951e6542d1bcbdac  libiberty/bsearch_r.c
  4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
  4334ddc8cd0c2303bd7b4d61a8dd0e62  libiberty/calloc.c
! 2dd3b9162212efed340e64b565f834fc  libiberty/choose-temp.c
! 3e10505c5e8a27550619413a20b58926  libiberty/clock.c
! 27782b2dd4ad35331ccb25d390aa9718  libiberty/concat.c
  83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
! 9ddd5e8a00c3c49137d3340a3bc59f50  libiberty/config.in
  4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
  7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 606d4ca52fcf85555e6af34447efa655  libiberty/configure
! f5efa8d0ee64bb238fa0f02cb54cd8bf  libiberty/configure.ac
! 5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
! 7c4862c935c4e80c0f54083f20d2fc31  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
! 9619ec67ce88d0028e09aa3dbf067982  libiberty/cp-demangle.c
! 9cd0bfb5282d8fa4e14d448623d2a6fb  libiberty/cp-demangle.h
! d3145f5de7c655aebac3b192389edf01  libiberty/cp-demint.c
! 10884f330faf75e6c8244f965e283c3a  libiberty/cplus-dem.c
! 63f57dcc8759e59d23496fbb301656fc  libiberty/crc32.c
! 82c34296fd3f77fc69aaebb7c689f66b  libiberty/d-demangle.c
! daf887ed54f16c52e0a1c5f4e9a0e1bb  libiberty/dwarfnames.c
! 012b4ecd567c72358ec283eac76e2cc8  libiberty/dyn-string.c
! 33685405e5ccf20b2dc31386f7f4dafc  libiberty/fdmatch.c
  0c2635175b975823b40980974dfc2110  libiberty/ffs.c
! 5b0cfdb4a84e2763f0a23c24b185ff82  libiberty/fibheap.c
! 9af040f09706de4e926ab12571b30e9f  libiberty/filedescriptor.c
! f2066c818241036761d4706a6167290f  libiberty/filename_cmp.c
! d9fdbbe6e8e66b9221d8507a639b756c  libiberty/floatformat.c
! b526799e354a2b1d5279c9156698f343  libiberty/fnmatch.c
  145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
! 21980d8838c8665d510a69e747cf65b0  libiberty/fopen_unlocked.c
! 75ed047e84b4ed7b2d4c9fcb6cd2c955  libiberty/functions.texi
! a0b2fe3a922c5c906e2e9d8b1340f82a  libiberty/gather-docs
  754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
! 3df55a42fd343dc797dd2ffce7ba5f18  libiberty/getopt.c
! 5f840a686c48a763681c3a079cb1ae98  libiberty/getopt1.c
  bb0043d92c716691cc17b80c845c336b  libiberty/getpagesize.c
  5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
! f63e072d7d4f7a57533f0e659bcbda17  libiberty/getruntime.c
  0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
! 38c9fce18b5e240126519de03c50a52a  libiberty/hashtab.c
! ff47c606ce4654ae51bcdf418a921423  libiberty/hex.c
  4d485e7735be430b22aea0abb4938e26  libiberty/index.c
  9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
! b501c6af436c12c4af5db1dfebbc5d10  libiberty/lbasename.c
! e1693e8c535aafae362e14875d9a422d  libiberty/libiberty.texi
! 89e3886df4c5f4282118b28fc3f444fe  libiberty/lrealpath.c
! 8dd027cc5ecb776efe2b35ba2b2c58f5  libiberty/maint-tool
! 6dd98bb8db688fb9fec6e0ef331226ae  libiberty/make-relative-prefix.c
! 224bbe33ec92d734e13c56bc58861ed7  libiberty/make-temp-file.c
! 80367d734a974bd32e9ebc370dedd2e7  libiberty/makefile.vms
! 8319c2e9690c55e0c04247fd00ba50c4  libiberty/md5.c
  5b9d8d3532e276e22b798481bdcb3ec3  libiberty/memchr.c
  d2f8420243d7223cc896b7a6308fd19a  libiberty/memcmp.c
  873c437999202225c99e2039eb9896ce  libiberty/memcpy.c
! aae60a170c82f9ca905a780b978f267b  libiberty/memmem.c
  0d7465662f3756716c6dcdd1988940e5  libiberty/memmove.c
! 760917b3a1d20eb75cb81e60b9a99b78  libiberty/mempcpy.c
  5f0eb20e9ed4d7e6c2eb9d1baf4d9dc9  libiberty/memset.c
! 734406ec3f73a1efaa1295c74faef593  libiberty/mkstemps.c
  7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
! 27a6ed42be096f0bab0203e79ac85e89  libiberty/objalloc.c
! 321b7be4d23c488e68a367416aec00a3  libiberty/obstack.c
  60e853e97e156d94dfb6374f701b99ab  libiberty/obstacks.texi
! e47643b8066174b06ffdc03cf1f05e16  libiberty/partition.c
! 761af4d08c2047a70c2c4785bdc25286  libiberty/pex-common.c
! 269879bbf52a6c0828788c480fdbf6f2  libiberty/pex-common.h
! e61f58986233b75ddca8d2d386cbd4e6  libiberty/pex-djgpp.c
! c425731a31ec27059a8b06cccd67fbd8  libiberty/pex-msdos.c
! 9ff549d8b58c82a28504473ea5e6d0c6  libiberty/pex-one.c
! 1c76245d3c2b69627596826c0644d892  libiberty/pex-unix.c
! d8cfd084131bf36e513a4bf10bdcc598  libiberty/pex-win32.c
! 3a51a40716d71a35276578b5bfe5f3de  libiberty/pexecute.c
  a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
! 3f8a38243ad428609679ac836ccae8c1  libiberty/physmem.c
! b54c766ea66128d844ec87eb189c2319  libiberty/putenv.c
  e0e831dfd1e39695597e9f5c6951be8e  libiberty/random.c
! 86fc88428f562a639c16e81dc738581c  libiberty/regex.c
  24eab3d83825c3be13549dc62b6d63d6  libiberty/rename.c
  74850488731148a9c9f410042144f37d  libiberty/rindex.c
! d351edb2b51be89fbeeef806aaa56e77  libiberty/rust-demangle.c
! 33b2cda317c33bf3974e1170353e97f8  libiberty/safe-ctype.c
! ccbd25bbe26b9f56e4a23c85b34176d2  libiberty/setenv.c
! 5b84057bcb5fd11b0f51c310008bf1e5  libiberty/setproctitle.c
! f4a1e123c3ee5bd73aeb59c84be25dec  libiberty/sha1.c
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
! c14729da5696f1b0a2ef1f6cb11ca0a3  libiberty/simple-object-coff.c
! f8c4ea91a815e826a2bb98c1d9f770f8  libiberty/simple-object-common.h
! 378b0f8aa091a5d255ec9555d2dcd7e1  libiberty/simple-object-elf.c
! 6bd7fd61811d90dd9ddc454c724d0c51  libiberty/simple-object-mach-o.c
! c46b918305ab9e7d9644bdc4fd8ae094  libiberty/simple-object-xcoff.c
! 30c5ede9248a062a27b96e47a22c2755  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
! 3e5decc7d70885db43efc2edadd3f8b8  libiberty/snprintf.c
! 6a91dcba8ac7e873c8541304e552106a  libiberty/sort.c
! c7d8d8bfdd677b567204141931842f6a  libiberty/spaces.c
! ce07b42f384aa0e105d9fb086faf61c5  libiberty/splay-tree.c
! 3cbd69b2ebb2ea35cecdc27b113d1344  libiberty/stack-limit.c
! 95427d10a739000f03528acc63785513  libiberty/stpcpy.c
! 2881e7e88bae25e1db8b2d3654f2ffd4  libiberty/stpncpy.c
  0c900e9180d750a26ac0ddb237151832  libiberty/strcasecmp.c
  13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
  1be85270d5b20a93992f377f79fb68f0  libiberty/strdup.c
  6b3173ebb186ea3f9110addc7af3cf28  libiberty/strerror.c
  2d414e20c053293f373a5306192db8f5  libiberty/strncasecmp.c
  cc534c2ea00ea0b5e49ba8f61c6e467d  libiberty/strncmp.c
! f5d6be693d4877640749748b3769f859  libiberty/strndup.c
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  35b19177b9109e894fcfae29a3a52778  libiberty/strsignal.c
  118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
! 06ec100601d51cb5e73dbd06606e4b3f  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
  26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
  d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
! 4491e21d1f659b7e2371fdadf7555b8e  libiberty/strverscmp.c
! 1f851de6a6921f887894d39cbb53c2df  libiberty/testsuite/Makefile.in
  c6ed870948e340854930b0cfd9c39b99  libiberty/testsuite/d-demangle-expected
  cd082485429b6f621f45522499e0b1d2  libiberty/testsuite/demangle-expected
! 17efebc726b09107d7d0af07cfb493f4  libiberty/testsuite/demangler-fuzzer.c
  3a9dd86d23e50ad55b3af57e17c41a44  libiberty/testsuite/rust-demangle-expected
! 70fc5cd28ecc69d723e853db55789f5a  libiberty/testsuite/test-demangle.c
! 83ae444805ce0355fea185c875c8f0cf  libiberty/testsuite/test-expandargv.c
! a58dac251326e9ac48bd7f75c3962946  libiberty/testsuite/test-pexecute.c
! cd083a2c1a4e04c345d6a6d4cdc10a85  libiberty/testsuite/test-strtol.c
! 5f6f9391793be4c177f41ffb39ea66ae  libiberty/timeval-utils.c
  6b513119d8c36af928821e8ec24265d7  libiberty/tmpnam.c
! b8210de0712b151d01eadcba2370fe0e  libiberty/unlink-if-ordinary.c
! a4a776aae516982b4697fef39598ba3c  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
! ff094ea2fd1d980f8dd9dc77e2a55a5f  libiberty/vfprintf.c
! e8f85bef2b6e317841f2bdcc6d20d477  libiberty/vprintf-support.c
! e8ea85ee924395f288e67d7f516d29e4  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
! 9734987159a21bd63db9b5b76d398b00  libiberty/vsnprintf.c
! 80d3e40cd7aa8d177b588833eed2457e  libiberty/vsprintf.c
  3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
! 65bfb4838ab70121aa81d3927eede960  libiberty/xasprintf.c
  d4edda6072abc54e79d734250756816e  libiberty/xatexit.c
! d4888c4169c863eef3110d144ab60eb0  libiberty/xexit.c
! e1f481640f4dbe030d7e19d1e0ebfc40  libiberty/xmalloc.c
  e52d95644dc6f186070f349a5903ca72  libiberty/xmemdup.c
  4746095b1b67693ab6e78ed72ead1235  libiberty/xstrdup.c
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
! 3c1a8d14811fd6c839cbda811561fe49  libiberty/xstrndup.c
! e1dbec8de216db8128c1df3f58d8b27c  libiberty/xvasprintf.c
! 1cabba58d976d16112a7e198011bd3d3  libitm/ChangeLog
! 7ebc111a310317f8867ef3756d3dc68e  libitm/Makefile.am
! 49881590d13c9e5ad90c78517c55a3e3  libitm/Makefile.in
! b14ab4b7ab2bf2f4eacb6c9ba7de0343  libitm/aatree.cc
! 6c592ac7b9d3afeaddbb4d61a36a0db4  libitm/aatree.h
  724846b555020a9e223c8322082e775a  libitm/acinclude.m4
  c98774b09e6486e6a0818631af2fd088  libitm/aclocal.m4
! 7c45b00f31f360ea6fdcfede501aa1ac  libitm/alloc.cc
! 7f6bd4f038ef15240bf5d2b23ff36aa8  libitm/alloc_c.cc
! 2d539bc0f180dd06efd75487de913868  libitm/alloc_cpp.cc
! 3303afb947cec22a9cba1bf0dbab9be5  libitm/barrier.cc
! 8cf0a2aacc0496a27ddb9590544e3c36  libitm/beginend.cc
! 9507ee16f44e197db94320e94a7a9920  libitm/clone.cc
! 0ad367c2a0ec0f98f7423cf4c87d0865  libitm/common.h
  05ea82fd12c7b4a030b6310b862ff47d  libitm/config.h.in
! fae281c1d9c75040591880c91df64b49  libitm/config/aarch64/sjlj.S
! 257957c9074b3f1bc51e8d413e8b08bc  libitm/config/aarch64/target.h
! 9e21a60a0420316ef957f78ca4b59859  libitm/config/alpha/sjlj.S
! f65f82cc99de51992c53c65afcdcab7b  libitm/config/alpha/target.h
! c2761524c9cce948d25032c71fcf2871  libitm/config/arm/hwcap.cc
! e09acc28a40c55e049ae59d4114519c9  libitm/config/arm/hwcap.h
! f295a16c2456ee892819d59df342218d  libitm/config/arm/sjlj.S
! fa6dd75d0168c18542e5fe957ed6950f  libitm/config/arm/target.h
! 6f9b8680618e2e76ba8afa347ca45102  libitm/config/generic/asmcfi.h
! 8a887d7d16dde7cb3836eb2fa83c8c4b  libitm/config/generic/tls.cc
! 082fff277a5f11241d5d20e329e7ddb8  libitm/config/generic/tls.h
! 230ce2b119f500990fdec1b005eee80a  libitm/config/linux/alpha/futex_bits.h
! f42705a1707131956f8cfa37ebc4cc06  libitm/config/linux/futex.cc
! 89854181f2643551cdfe7c3c52dd2962  libitm/config/linux/futex.h
! b97e676741d1b239a2a8e95c41cf16ba  libitm/config/linux/futex_bits.h
! 55486fba35c72403de5db541dd2e2f83  libitm/config/linux/powerpc/futex_bits.h
! 8c0e676efc74f05e5455299bd30aab10  libitm/config/linux/rwlock.cc
! 4624e3c1c1e31e9bb355b0ee8ebc8501  libitm/config/linux/rwlock.h
! ca1abfa2250e0a03624a233753700e73  libitm/config/linux/sh/futex_bits.h
! d67c83abda0373dafafdc1de3c49a461  libitm/config/linux/sparc/futex_bits.h
! 1a90eb173cb12e5e6a2c4ac1e89dba55  libitm/config/linux/x86/futex_bits.h
! ac2e84be55bdc84bddc0d2db148bbf2f  libitm/config/linux/x86/tls.h
! f4fa4b1ee0ecb464a351e30e433c341b  libitm/config/loongarch/asm.h
! 23c865cd59d48e7284b87e0a73d59b23  libitm/config/loongarch/sjlj.S
! 7da888dada18b52a2d2a2f848873ab38  libitm/config/loongarch/target.h
! 7632b1f53003641e00b7b4ba031854e3  libitm/config/posix/rwlock.cc
! 51f98b574a1f5caf327847da8f583603  libitm/config/posix/rwlock.h
! fe5672a52b985d33277a6dae1763d14b  libitm/config/powerpc/sjlj.S
! 6adb1fbd1e39b927b4c132115bbaeb33  libitm/config/powerpc/target.h
! fd3886b858d81f09319e3afbc9a9f989  libitm/config/riscv/asm.h
! 7cfcbb00128db01df8cc1e0e9b84e175  libitm/config/riscv/sjlj.S
! cae11c92dcc945a446995058e9b3620b  libitm/config/riscv/target.h
! 94dfa22620129d1d60aaccc184c6d13e  libitm/config/s390/sjlj.S
! 2a3664a9289687835e922dff21553f48  libitm/config/s390/target.h
! f298a607520d93a3da738822c416915c  libitm/config/sh/sjlj.S
! 1eb846b3a9483d73d9e9c320e18d1e7c  libitm/config/sh/target.h
! c0982c6c9a727ad99c591ccce93c6f14  libitm/config/sparc/sjlj.S
! dac3feb91c831615f1355ae8de6b756b  libitm/config/sparc/target.h
! 5eaef0f01b620d8e369717805c6e9c58  libitm/config/x86/sjlj.S
! 8063e7e3ee9db848adb221c6d5f46eb6  libitm/config/x86/target.h
! b47650b491399b03bc69d6d4480ed69c  libitm/config/x86/x86_avx.cc
! a115938565bd39fc273afe30cfea1cc6  libitm/config/x86/x86_sse.cc
  989995ce0fd3c21357d949fc3e926af3  libitm/configure
! c75b863b293812486f3bc46d69871efc  libitm/configure.ac
! 21898e45d355c9c17172a6b6193c3024  libitm/configure.tgt
! 1c72155439045edca6e7a1f8de44a393  libitm/containers.h
! bd9c76a7c7124230d7cf426a2c0c2a31  libitm/dispatch.h
! ee07e0ba06bdb4d1ef3ab2ce45738cbd  libitm/eh_cpp.cc
! aeb355ee296325876b2b4c6cff101d0a  libitm/libitm.h
! 03460f82dbc60d864d63d4ca79024d16  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
! 632e609fed1811c7546f67e986bc1c26  libitm/libitm.texi
! e04d61a2b6d7365f10eb2608a68f28a5  libitm/libitm_i.h
! 2988031d50f90ef448ec1d6ea3f54041  libitm/local.cc
! 304dd1d94be7660e8c06c8d4c3418b11  libitm/local_atomic
! a0a9434aa088b548639451f0bdc85e51  libitm/method-gl.cc
! caaae05f0a6bf79ac8a7ac8654aeee97  libitm/method-ml.cc
! f90d1370246d14c8541ee93d81b68188  libitm/method-serial.cc
! ed7e2cfb0dddc1eb6c3ac80b484b77a5  libitm/query.cc
! 3de61fdfdb32d1afeb3b705ee9e27ccd  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
  797cc50d34c62697d9fd84bbc39b5a6b  libitm/testsuite/Makefile.in
! 68916cf6b5db990548ae36b9e4f310c1  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! c3c936ad66124cc19bfd27a034a0a16a  libitm/testsuite/lib/libitm.exp
! 0c9044d82c848fd023e2575006c3b86b  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
--- 129273,129510 ----
  0ce04768d60b33d4951e6542d1bcbdac  libiberty/bsearch_r.c
  4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
  4334ddc8cd0c2303bd7b4d61a8dd0e62  libiberty/calloc.c
! 316afc4ec32d07e8b367d16e4f2fb5c5  libiberty/choose-temp.c
! d3c732c9041e2a09c3ba6cac89cb8be5  libiberty/clock.c
! 76c3d2531f95ac27fb10191311754fb4  libiberty/concat.c
  83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
! 6867ba60ef3e4b6408fbfd112c5fe9ae  libiberty/config.in
  4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
  7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
  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
! a60c4de650e1d5be06269cbed01a0b3a  libiberty/cp-demangle.c
! bde73a26f419318ed455f6c233c93446  libiberty/cp-demangle.h
! d781ea9b31e628b9c38de46737f304c1  libiberty/cp-demint.c
! db344a3ee4596b8c8e9e246ee7137529  libiberty/cplus-dem.c
! 01aab56ae2f431811af07a24ef0941ff  libiberty/crc32.c
! 39896ca9288ce93fa04428850ae53e32  libiberty/d-demangle.c
! 368aa66a3f758b4cb8218006b1e7aca1  libiberty/dwarfnames.c
! 13ce724626c9c396a7f68240835b62b7  libiberty/dyn-string.c
! 59f069b24a92f1beff33aedf981ebbbf  libiberty/fdmatch.c
  0c2635175b975823b40980974dfc2110  libiberty/ffs.c
! b4078444460b3a2a301751f00f701e52  libiberty/fibheap.c
! 08ad518733687c6c2167de29e4b25d36  libiberty/filedescriptor.c
! 570732deadfb16f5479a62089681fbb6  libiberty/filename_cmp.c
! 9638c365fff2435e755dbbbce7ddeb8a  libiberty/floatformat.c
! 2b0162e98743af15eeed12915e482b5a  libiberty/fnmatch.c
  145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
! 858b59cfbed70183a686ed8c1a133ff7  libiberty/fopen_unlocked.c
! 1e601e0618cf3e4575301226533bbfb4  libiberty/functions.texi
! dacd8dc443114c0608ee94dbf9cce580  libiberty/gather-docs
  754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
! 7f8a0fef71c5a2c11af4ec317cf0ed5d  libiberty/getopt.c
! 797ae3060bac61837cfe83a1e996ed0f  libiberty/getopt1.c
  bb0043d92c716691cc17b80c845c336b  libiberty/getpagesize.c
  5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
! dd2d02cf1ad7234243a8bd1e24c8ea8a  libiberty/getruntime.c
  0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
! 6d51c4def6640951cee8ead3fe74313e  libiberty/hashtab.c
! 90c753eaba1db88df1284d164c8d95ee  libiberty/hex.c
  4d485e7735be430b22aea0abb4938e26  libiberty/index.c
  9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
! d6163df3534837e4279b54faf15861d4  libiberty/lbasename.c
! a432ecfaeecf3b8e2a5e4dbb96c7afac  libiberty/ldirname.c
! 59fd233921b27bc4b68a245980b1a87d  libiberty/libiberty.texi
! 26915a5917e9495d810eaf1f323f117b  libiberty/lrealpath.c
! 56c0124bb79c42824ec8f5b26628bff3  libiberty/maint-tool
! 92f13cc4b3b43535e87c8d856bbd5272  libiberty/make-relative-prefix.c
! 1c18a57e59e025036b90ce21ba2df366  libiberty/make-temp-file.c
! 2296f9992eccea8d2e0fb632a7c16629  libiberty/makefile.vms
! fa96833379dbf088ca718c994606817e  libiberty/md5.c
  5b9d8d3532e276e22b798481bdcb3ec3  libiberty/memchr.c
  d2f8420243d7223cc896b7a6308fd19a  libiberty/memcmp.c
  873c437999202225c99e2039eb9896ce  libiberty/memcpy.c
! eb0e6c4e893c0e5ea555c852afd9f9c0  libiberty/memmem.c
  0d7465662f3756716c6dcdd1988940e5  libiberty/memmove.c
! ea6fd71b8c82626e978d2a501eab2082  libiberty/mempcpy.c
! 51e2e72e693f1350334dac62dc0e7f3c  libiberty/memrchr.c
  5f0eb20e9ed4d7e6c2eb9d1baf4d9dc9  libiberty/memset.c
! 0c39ff4ada4ad9aeb6d351d775c4233c  libiberty/mkstemps.c
  7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
! 712703d4b66a0729ab20dd877525ebf6  libiberty/objalloc.c
! 8d6653a7e56010e6117292a05660d73c  libiberty/obstack.c
  60e853e97e156d94dfb6374f701b99ab  libiberty/obstacks.texi
! f7dc6bb6a19996e39d62d0c3d71a607b  libiberty/partition.c
! 836417d18d4395fa4e885bd2cbe64a6e  libiberty/pex-common.c
! 665eb2c5a6b9c8c72c8117ddb87d89be  libiberty/pex-common.h
! 7176cac4602608f2b38b81ad9968a070  libiberty/pex-djgpp.c
! 59fae983987a5c265f0c462a39c13055  libiberty/pex-msdos.c
! 7fd00a8afcf2a684058cb0e6e35e8c09  libiberty/pex-one.c
! 3b7fe95e54742532169833245c807af5  libiberty/pex-unix.c
! 66beaf5a2469e61edfdc7fe8a92e801a  libiberty/pex-win32.c
! 16971a5b508cfd0d782b4453a4a51200  libiberty/pexecute.c
  a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
! ebe0199ed4ea5483459817bfb5d6b018  libiberty/physmem.c
! 7152f6270ee7c20fc9be47478a2e2f87  libiberty/putenv.c
  e0e831dfd1e39695597e9f5c6951be8e  libiberty/random.c
! 8615844b5b1507f959e8fa88692d1058  libiberty/regex.c
  24eab3d83825c3be13549dc62b6d63d6  libiberty/rename.c
  74850488731148a9c9f410042144f37d  libiberty/rindex.c
! f98fe47aab466c45edb92920ca428192  libiberty/rust-demangle.c
! 4c3367672bc31621c6a4f732aaeedf1f  libiberty/safe-ctype.c
! ae76d17c1990e95bb6bd526b1922fabd  libiberty/setenv.c
! 808e22543957bf379506a9bfcb8fb044  libiberty/setproctitle.c
! e973bc72e9b2d610a4b9575612e4eb7e  libiberty/sha1.c
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
! 97bfe5e98ef3751ee12ae9405a0653f4  libiberty/simple-object-coff.c
! 6546a52f22cec73ea99280d84934f241  libiberty/simple-object-common.h
! ff1d42d1bf1c07e5ea2e937d699ca374  libiberty/simple-object-elf.c
! a14629c770304471edee893f66642041  libiberty/simple-object-mach-o.c
! fa900905f05a445431f7a9aacedbc87a  libiberty/simple-object-xcoff.c
! 216392f132c9fc61c2d3f0a5a73271a2  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
! 70cf700eee398fc6bf00ee58c616aba0  libiberty/snprintf.c
! ff47008e837114be5ffe97f256924c14  libiberty/sort.c
! d499989cef4ddccdcf84f06ce83c4b25  libiberty/spaces.c
! 1cab6181ff0d3c3977d821fefbfd6d9c  libiberty/splay-tree.c
! 03fdf1e103505def0a2e8153a916fbe3  libiberty/stack-limit.c
! 60b8d3e2d7b4bc8c12e2d69094747bab  libiberty/stpcpy.c
! 9c9c336a372903c6b464f28a6e878511  libiberty/stpncpy.c
  0c900e9180d750a26ac0ddb237151832  libiberty/strcasecmp.c
  13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
  1be85270d5b20a93992f377f79fb68f0  libiberty/strdup.c
  6b3173ebb186ea3f9110addc7af3cf28  libiberty/strerror.c
  2d414e20c053293f373a5306192db8f5  libiberty/strncasecmp.c
  cc534c2ea00ea0b5e49ba8f61c6e467d  libiberty/strncmp.c
! 72023a52fa63d05ab50221cc621cc5cf  libiberty/strndup.c
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  35b19177b9109e894fcfae29a3a52778  libiberty/strsignal.c
  118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
! 73c3049f2e9f80354b21e9c7e4a5a993  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
  26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
  d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
! 376ee771286cbdcc9c3c796f32eb2455  libiberty/strverscmp.c
! c465c6fcd70eea136ef668cac9468779  libiberty/testsuite/Makefile.in
  c6ed870948e340854930b0cfd9c39b99  libiberty/testsuite/d-demangle-expected
  cd082485429b6f621f45522499e0b1d2  libiberty/testsuite/demangle-expected
! 15e87a0456616ed192999f007babf098  libiberty/testsuite/demangler-fuzzer.c
  3a9dd86d23e50ad55b3af57e17c41a44  libiberty/testsuite/rust-demangle-expected
! 6af82d6fdd18f9a7558eb9e74759ab04  libiberty/testsuite/test-demangle.c
! f55a96de94210cb5e1f9c117c5056a48  libiberty/testsuite/test-expandargv.c
! 61e549265d767ba329babb1a85f4bc5e  libiberty/testsuite/test-pexecute.c
! 2535350a5d4a6615d96f724a79f88cd9  libiberty/testsuite/test-strtol.c
! 8aba73f2aba057b5f62bd32db83de11f  libiberty/timeval-utils.c
  6b513119d8c36af928821e8ec24265d7  libiberty/tmpnam.c
! 915d295f9de87c851136f48512e80609  libiberty/unlink-if-ordinary.c
! 3e38a8425e84575ad9ec51f2acb26a9f  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
! e3a4ec1faf0cb2978d5677d07973c0a0  libiberty/vfprintf.c
! d0b5a9a0297482c84a656b527562bd55  libiberty/vprintf-support.c
! 6c81619e01474fcf1f1238f67c2b50ef  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
! 8a7118f057c8280ee24a49f92bb657ba  libiberty/vsnprintf.c
! 7238f05ae3c63037d3fb0320ee072ae3  libiberty/vsprintf.c
  3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
! dcb2eb41aff899d68a0efa986fc33db1  libiberty/xasprintf.c
  d4edda6072abc54e79d734250756816e  libiberty/xatexit.c
! 82a993a211c35359ff92f49fa8c0a9e7  libiberty/xexit.c
! 222a85b93a4d7902fef6381afd80e863  libiberty/xmalloc.c
  e52d95644dc6f186070f349a5903ca72  libiberty/xmemdup.c
  4746095b1b67693ab6e78ed72ead1235  libiberty/xstrdup.c
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
! 9ee73c41e33c5385829971172a184c87  libiberty/xstrndup.c
! 264565e1673eec920dc95fb09d4605ea  libiberty/xvasprintf.c
! a6e4e74f6d6653d72f084e6e7e04ce08  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
! 9112c30f787491613e7198b018dbd37c  libitm/barrier.cc
! 1ed1e7f0b71a4c90bf0ccedaf06fa9dd  libitm/beginend.cc
! daa72f842019802b8e9aeb62baccf219  libitm/clone.cc
! c78e631eae4d5e2fb8aa9cf805c7548e  libitm/common.h
  05ea82fd12c7b4a030b6310b862ff47d  libitm/config.h.in
! a8b372c4bb486cb11c9022caf3143f71  libitm/config/aarch64/sjlj.S
! e23aba2d8bffe448eaa97a2765c6cb53  libitm/config/aarch64/target.h
! 82dbf04cdeca27b9797dfa3dccc0bba3  libitm/config/alpha/sjlj.S
! 04ebc96705d51226f17cbd2cb662aad1  libitm/config/alpha/target.h
! b4af5fc3a5ca69b834e3509e7ee575d2  libitm/config/arm/hwcap.cc
! be2fa06db7aa5e63e3272b2cfe80dcbf  libitm/config/arm/hwcap.h
! ea222ed247142631d13945ea153ef5de  libitm/config/arm/sjlj.S
! 510a1b426007b69aeec4dfb852345567  libitm/config/arm/target.h
! 50274da9292d6d4747be3b3e0318e622  libitm/config/generic/asmcfi.h
! ab545ff90caf8e18fc586ae663af009a  libitm/config/generic/tls.cc
! e9b745001c59e412804789a86d87f348  libitm/config/generic/tls.h
! c459c05aefdef0c17ab3355506ed8a30  libitm/config/linux/alpha/futex_bits.h
! 2b53c2024725cd7acc2a706ff84b907a  libitm/config/linux/futex.cc
! c8f7cfe5231d8250db3fe958690321f7  libitm/config/linux/futex.h
! cd613b18356ba810278d76a4a468118a  libitm/config/linux/futex_bits.h
! 7ffe7641d043bf6a4b6b145092421fa5  libitm/config/linux/powerpc/futex_bits.h
! d00046ba0a71e66edb15869d700d8c76  libitm/config/linux/rwlock.cc
! ee84ddc100b013b31392e0a4d30fb55c  libitm/config/linux/rwlock.h
! b0ee2b3c660bca0be10d4d265b39721c  libitm/config/linux/sh/futex_bits.h
! f076bedbecf3ec0d62f0099122bfb58f  libitm/config/linux/sparc/futex_bits.h
! 63e8dd4e7dbfef8c45cda6d9934d054f  libitm/config/linux/x86/futex_bits.h
! f306285d259eaf96e32faee0835e6bc0  libitm/config/linux/x86/tls.h
! 8ef81d13cc518dce479426aeecd226ef  libitm/config/loongarch/asm.h
! ab3414e82604f31286d990c8a88220fb  libitm/config/loongarch/sjlj.S
! f6fc4d93b33dbbb6b4160110d6f0b772  libitm/config/loongarch/target.h
! f0f0f24d5cb4dc1eb287a4e62d273847  libitm/config/posix/rwlock.cc
! ddf6b679fcb3160cda5d788931938a09  libitm/config/posix/rwlock.h
! 5b00bcf8a386e551af5001c3dada9d8d  libitm/config/powerpc/sjlj.S
! 4a6bd2973bd5982b15d0d890af969481  libitm/config/powerpc/target.h
! 231b8edab4efc1c43c9fd96f55e28c48  libitm/config/riscv/asm.h
! 083adbe2ee686b1343c682ed03a107a9  libitm/config/riscv/sjlj.S
! 80918d846494dd3402e6724f1cc787c8  libitm/config/riscv/target.h
! 060c1e6d8ca4e4f383c18af9f9979825  libitm/config/s390/sjlj.S
! b05cdd1c512cdcdac44af4d29054e1fb  libitm/config/s390/target.h
! 874b63f104c9f989dd66d7550f2fcd1a  libitm/config/sh/sjlj.S
! c3cd975a2a605664816f39c46195f247  libitm/config/sh/target.h
! dc8f1276000eb9639e3fbf241c9c405e  libitm/config/sparc/sjlj.S
! 9cf720526fc09bcc510842b8717c5a15  libitm/config/sparc/target.h
! f81355820da74dc94b07e34e2ece3f1a  libitm/config/x86/sjlj.S
! 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
! 55fafde8278ecdd1122f7e735d43c4b9  libitm/dispatch.h
! aa97ff433e8d46c311d09afd743c3ac9  libitm/eh_cpp.cc
! 227389b260f575acb56c4eed3d21f434  libitm/libitm.h
! 2b25f87acc4fce946ac41ffb3feb1b3b  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
! c5d0acd750d34c1d66b612bace5289a0  libitm/libitm.texi
! 48fbbe3245ab33c1f8aa3c876412761e  libitm/libitm_i.h
! 6abbbe62382eb276315166cb69c8ee7b  libitm/local.cc
! c3b3a1827d5169beabbdb77c52e15bc8  libitm/local_atomic
! ed458d8c7ab1ec6b1715cb658a7b794e  libitm/method-gl.cc
! 4cff3aebe6afaf7e2c92d3a89adf9917  libitm/method-ml.cc
! 9789e2590d07111e9300181f7020d7b6  libitm/method-serial.cc
! 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
! 7da1e51d9aaeea1b7a8b4d2b2dce99d9  libitm/testsuite/lib/libitm.exp
! 6af7b44a8dbc773c3cec463165e3f600  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 121340,121539 ****
  838bdb8846eac9161e3ffbe553049f2f  libitm/testsuite/libitm.c/simple-2.c
  7ecc8e520a5c494d159cb7571cca7cdc  libitm/testsuite/libitm.c/stackundo.c
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
! 415c65b029d6c9382904fd9f2f893f94  libitm/useraction.cc
! 13598dcd213d5c6c5b7a48535ccfbd4f  libitm/util.cc
! d9be99f8e8e4592da996801a7b23e8cd  libobjc/ChangeLog
! f7119799434fc82fe84eb992bca6cc83  libobjc/Makefile.in
! 9ab83dd9e8a6a68b343c271ae31a3070  libobjc/NXConstStr.m
! b77a61027fd5b3f821d0f139f5902c77  libobjc/Object.m
! bb48ec4ead158b0a2933fc9f831d552d  libobjc/Protocol.m
  d5edaeee0d84e4305368367019952ba7  libobjc/README
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
! ce41aa5aa944c410c6f78833ce21b893  libobjc/accessors.m
! 3cc1ad8d73093ce814490f0e3d7cbabd  libobjc/acinclude.m4
  005cfc1ff705e51549970f72513c195a  libobjc/aclocal.m4
! bbbe0924269fc042f5cb8e1ac089a7fe  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
  9b45035ec61a96a771e521f9944b0e1d  libobjc/configure
! c9410652b397aecfc8b4b76e1c7d1167  libobjc/configure.ac
! 96d2a6466e757a572c15cf270a603b87  libobjc/encoding.c
! 2ff1ddb92f9a7d3b4609d50ab97c2280  libobjc/error.c
! 3d57fc6a786cdebd81dadefb0667e226  libobjc/exception.c
! 111aef132bc66633b6dd59d4cd73aa1b  libobjc/gc.c
! c04130ff14476295ae0c80a2bdc4f854  libobjc/hash.c
! 171d010ec2d8f2d4646740582dfadc4f  libobjc/init.c
! d161c4e005da8bd7573189e50bbbfa08  libobjc/ivars.c
! 9f66367efb4a44f1b35f70f36964540b  libobjc/libobjc.def
! 614727ce61c5cbf7eedae0d4302eef86  libobjc/linking.m
! 399f635e1fb1828ed619a986a537bc18  libobjc/memory.c
! 3b54f378eed972bf0b97a7b965933566  libobjc/methods.c
! 8f8e3dce78e9755884d55177bf517535  libobjc/nil_method.c
! f444e9fae87cc6ed696f327039b12ab9  libobjc/objc-foreach.c
  4758c47369f62786c0dcdf45f3397ff7  libobjc/objc-private/README
! 44d6b3118949f123b6236ee686f84ec0  libobjc/objc-private/accessors.h
! 4d71039b09c6d2d820de2192a1da41df  libobjc/objc-private/common.h
! 85400852099eee70960f0820018ae5b8  libobjc/objc-private/error.h
! 6a5540202cd137f41b3168fadcc648e7  libobjc/objc-private/hash.h
! 80508cf8df4b85a76fa94290e322efde  libobjc/objc-private/module-abi-8.h
! e16b6d0433917e7aee23503e38ccacb9  libobjc/objc-private/objc-list.h
! 9a30a4914990135ca6b20c07ab536957  libobjc/objc-private/objc-sync.h
! 08fc0d3b2c487610ca54baec31fba42a  libobjc/objc-private/protocols.h
! 3afe08ca28fffd551045ce8d839b4b4a  libobjc/objc-private/runtime.h
! 9f0f8e7835b7b0a9662135a4f05cab48  libobjc/objc-private/sarray.h
! a53562e845a71996c9687bdbdb940474  libobjc/objc-private/selector.h
! 641470cd2ad13807b4a191553638b38c  libobjc/objc-sync.c
! acb5e116a66232e4ae53b129983b1182  libobjc/objc/NXConstStr.h
! e8e9111f872a0cee66d2628a7dfdd7ba  libobjc/objc/Object.h
! abf5bd9816511991cf918e0a582f2836  libobjc/objc/Protocol.h
  6a0d7c25fa8ddefde53bbaf36eea5bdf  libobjc/objc/README
! 891f96464a5d45d94a6fd7123f162db2  libobjc/objc/message.h
! e34ebe8871ddef9d8760d1e87ea090d6  libobjc/objc/objc-decls.h
! f83e2785f73af08f15120d3452c517b3  libobjc/objc/objc-exception.h
! 3d8aa53d56c6eff6d2543729df11741c  libobjc/objc/objc-sync.h
! 9b4b737447604a4d31312058692560a5  libobjc/objc/objc.h
! 028ed29d6a67ed651e91c52b19850dc7  libobjc/objc/runtime.h
! 18cfdca5ab9bf703d5622cbb89f58a01  libobjc/objc/thr.h
! 356821cb19106904b6d9433991f76b70  libobjc/objects.c
! 4caf4b87d8dfafd75ae919b8ccdb1c3e  libobjc/protocols.c
! 1a11a2674d3c52244c5e32f998a4d196  libobjc/sarray.c
! 1342bdc4c975033299dcf770cb6db3b8  libobjc/selector.c
! 0831a1b1e34ad2ca26cdb0bdf2af08c8  libobjc/sendmsg.c
! 4eb8a2e0c7b96a7c72c3693f47580e5f  libobjc/thr.c
! 192d927210e9f741ff576eab3540720f  libphobos/ChangeLog
! 8c232dd08160212c999236421a5c30cf  libphobos/Makefile.am
! 45e0b5a1db9a9605b698b5db9ecbf039  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
! bd6b1e55a3e7b6ed3d0c27f22d7aacda  libphobos/acinclude.m4
  fbb3c30724cb241010afacb0505c53e7  libphobos/aclocal.m4
  0c33f8a64a5c7307de4f56c482966852  libphobos/config.h.in
! ba8b47ae187f9bd2368a1ecc702baa9e  libphobos/configure
! 56e7ee603571d143c7dfdc3ae487c4e8  libphobos/configure.ac
! 92053a3816debf9c1a547e84d8aebffc  libphobos/configure.tgt
! 1800f195374bf35719e80242f80e953a  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! 9213651de0ab086aa7193a8e1286527d  libphobos/libdruntime/MERGE
! c531bd01bf373bb780ce90f499d40138  libphobos/libdruntime/Makefile.am
! 2391ff5c22b9e34a824ec7dbce24693b  libphobos/libdruntime/Makefile.in
! 6fd7f13320334754fe7a197fa80d446e  libphobos/libdruntime/__builtins.di
! 72ac519aea57510bb108c109680d3e1c  libphobos/libdruntime/__main.di
! c5bbdcac30bdb8b105262191ab354933  libphobos/libdruntime/config/aarch64/switchcontext.S
! 60163ef4ac7809662d68150fcefc3b16  libphobos/libdruntime/config/arm/switchcontext.S
! 182f1052fd2a1ba1d9292cd9e9c2ab52  libphobos/libdruntime/config/common/threadasm.S
! 75ddff667d86a78f0fc694c423dea1e2  libphobos/libdruntime/config/loongarch/switchcontext.S
! a00dbdca6a0aa2a33d1979725a9739c2  libphobos/libdruntime/config/mingw/msvc.c
! 5ecbec09c751de392daec61cbc5f4fab  libphobos/libdruntime/config/mingw/switchcontext.S
! e16e4266b7fbbb9283ed3cf8baf81392  libphobos/libdruntime/config/mips/switchcontext.S
! 88e51fb8c5f71e6950313bc6aeba3ff1  libphobos/libdruntime/config/powerpc/switchcontext.S
! 7def293a41dd1a376d08d90f2970860d  libphobos/libdruntime/config/s390/get_tls_offset.S
! d011365126320f08f419c96481e20406  libphobos/libdruntime/config/systemz/get_tls_offset.S
! 84757cc3d7a4194f21b7b4f678348a0e  libphobos/libdruntime/config/x86/switchcontext.S
  206534cdc7f180e23d651e0f346ef6d6  libphobos/libdruntime/core/atomic.d
! 146142b76ed307dc2d9b5a316ea71ff0  libphobos/libdruntime/core/attribute.d
! 49d61e2bb179d74c692b97a61a0bd2ff  libphobos/libdruntime/core/bitop.d
! 4a82ffb16f497f908bf37f14173450ca  libphobos/libdruntime/core/builtins.d
! 46c8a565a874deb70d23572b5b8f97bf  libphobos/libdruntime/core/checkedint.d
! 70aebaec9e457af4ce2c2fcede99ddae  libphobos/libdruntime/core/cpuid.d
! a23aad11e11ac320f0604d788ee05003  libphobos/libdruntime/core/demangle.d
  0dfd7378c6db36bc6ec25cea3ced4038  libphobos/libdruntime/core/exception.d
  456fa1344c86d322f867cb4b1736b33a  libphobos/libdruntime/core/factory.d
! 29b15a06fa6567c6eb960bb8f47b97d0  libphobos/libdruntime/core/gc/config.d
! 4ef58a3ac2165a7f0cbf25236599b610  libphobos/libdruntime/core/gc/gcinterface.d
  9473dda5fca28fa3b7f32a14603fd3c7  libphobos/libdruntime/core/gc/registry.d
! 35bb67fcbb42398aa3bfc42868b9fa17  libphobos/libdruntime/core/int128.d
! ed27a92c7d3ec4b856b3fa14ff3aee14  libphobos/libdruntime/core/internal/abort.d
! 13f8840263a454415b1813f4306f2aff  libphobos/libdruntime/core/internal/array/appending.d
! a787ab6da1f42aa7148e9dd03c831b29  libphobos/libdruntime/core/internal/array/arrayassign.d
  a8e988793db0c50993d68d20db7e69bd  libphobos/libdruntime/core/internal/array/capacity.d
! 38e927f0c952ad679e5cb6c1cde2c6a9  libphobos/libdruntime/core/internal/array/casting.d
  1905da04a68de992ae7b35c7b48368ba  libphobos/libdruntime/core/internal/array/comparison.d
! 2a93e90bbc23aa0e33b4fb07c3c6f4d7  libphobos/libdruntime/core/internal/array/concatenation.d
! dc89f7ec62ec74c3d9a28bb3f6b19af4  libphobos/libdruntime/core/internal/array/construction.d
! d1ea0e77ef862ca8a0af1ca907a96480  libphobos/libdruntime/core/internal/array/duplication.d
  f8f7c1514ef75305b82a937a1be23449  libphobos/libdruntime/core/internal/array/equality.d
  819931c48dd7002a422cf0408399c556  libphobos/libdruntime/core/internal/array/operations.d
! 351169c0017fd48912dbeda526a27846  libphobos/libdruntime/core/internal/array/utils.d
! ed786a25dfde135655fcc8a36db81e8a  libphobos/libdruntime/core/internal/atomic.d
  87f5099304bb6fa7f4723eb1c7b3aa7d  libphobos/libdruntime/core/internal/attributes.d
  1d80eef1b17b9b4ab7073ddd62d9e422  libphobos/libdruntime/core/internal/container/array.d
  196c764b6fe4523d0c4585b877b4aaa0  libphobos/libdruntime/core/internal/container/common.d
  651bcf61fd888da86b453d8a72d84069  libphobos/libdruntime/core/internal/container/hashtab.d
  f70666bdd80bfb970a17a9ed9be599ba  libphobos/libdruntime/core/internal/container/treap.d
! 0306fb8236a992e8cd0fd3c0eb09aea7  libphobos/libdruntime/core/internal/convert.d
! e7e655e35e9805f2deb65e7230f4f6ee  libphobos/libdruntime/core/internal/dassert.d
  963ea5f13b1323723157e4819d600aa2  libphobos/libdruntime/core/internal/destruction.d
  b7a158acc86998b63150c8e8767fff46  libphobos/libdruntime/core/internal/entrypoint.d
! 5de3efdd6ac2925e257c2085f3122dce  libphobos/libdruntime/core/internal/gc/bits.d
! 49cc90f532d437dc649abbbd5bbd63e1  libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
! 84d178aa0956b8959954507f60b40a75  libphobos/libdruntime/core/internal/gc/impl/manual/gc.d
! 58b402700499efd8f65a8cdd7e1e44ba  libphobos/libdruntime/core/internal/gc/impl/proto/gc.d
! 3e04dfec989e7d82fda7f7920db846ee  libphobos/libdruntime/core/internal/gc/os.d
! 8725bd40d9847f863beaa7d8376edea3  libphobos/libdruntime/core/internal/gc/pooltable.d
! 7375ec166484c4206c6eaf0e926fcbed  libphobos/libdruntime/core/internal/gc/proxy.d
! 57faa146e23e87068997584d8e1944c9  libphobos/libdruntime/core/internal/hash.d
  299e680f03c3ddc13696fd52fc8354c4  libphobos/libdruntime/core/internal/lifetime.d
  37bd48ea66ddb05259c7995f66a87815  libphobos/libdruntime/core/internal/moving.d
! 1405d81e93ea7e0349489215e40ec0f4  libphobos/libdruntime/core/internal/newaa.d
! c5b56e2fe48946d4cef0ea7bbd4b9193  libphobos/libdruntime/core/internal/parseoptions.d
! 0ebbb014070d4b7532bfc5ced87a65b9  libphobos/libdruntime/core/internal/postblit.d
! 37a7b02908553f326b63b84872281042  libphobos/libdruntime/core/internal/qsort.d
  eb7626a08581a41afe77af77f3194a7a  libphobos/libdruntime/core/internal/spinlock.d
! 6e631dc541aac8d0c60919703498eb46  libphobos/libdruntime/core/internal/string.d
  0e954400ebc20e538cb0df0607daaeca  libphobos/libdruntime/core/internal/switch_.d
! d424168d51fd3c547c006fcf823e6240  libphobos/libdruntime/core/internal/traits.d
! 8ba91f8fbc8ff1ce39558b645f33f5ef  libphobos/libdruntime/core/internal/utf.d
! 97a9cd2ebb0eaccf2946c14d4015ef93  libphobos/libdruntime/core/internal/util/array.d
  233370fbd6246580432384701cb2742a  libphobos/libdruntime/core/internal/util/math.d
  c4d2c8819aacb2a15f08b12dfd19b1cc  libphobos/libdruntime/core/interpolation.d
! 763bfeea7774bd6e02c87a322a961410  libphobos/libdruntime/core/lifetime.d
  59a885b29a1d35b8c88198114cea1937  libphobos/libdruntime/core/math.d
! f70e69af8ba6647839f01fb9a998cec0  libphobos/libdruntime/core/memory.d
! b6b591257431321f7ee553c9dc818d76  libphobos/libdruntime/core/runtime.d
  94caf334d4b82b52b161e23aec46505d  libphobos/libdruntime/core/simd.d
! 3969cc0b26e9202c40510bda687cd5f1  libphobos/libdruntime/core/stdc/assert_.d
  027bd40faf09b13abf5dc94da4aaa176  libphobos/libdruntime/core/stdc/complex.d
! 003dbb7810e3ca364f0e32b1bea89e86  libphobos/libdruntime/core/stdc/config.d
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
! d60774dc197b153746d401c68883291b  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! 12b84280ca25f7afc452be78a5f4f430  libphobos/libdruntime/core/stdc/fenv.d
  627bd812c57c65e72ca9360911ec5e37  libphobos/libdruntime/core/stdc/float_.d
  7b0fbc4eebf5b3364fd3541f51608b9a  libphobos/libdruntime/core/stdc/inttypes.d
! 1a30fd546325cb5ed6fe746ef0c6f995  libphobos/libdruntime/core/stdc/limits.d
  1ec5e1d4f9cc5f454f6885ae47882e5b  libphobos/libdruntime/core/stdc/locale.d
! d900ccaf4ec45e5968f1e14a27858ebc  libphobos/libdruntime/core/stdc/math.d
  0527cc19df281c6561cb089ae3887c88  libphobos/libdruntime/core/stdc/signal.d
  65a0d8a9876486120150abd25cc1d969  libphobos/libdruntime/core/stdc/stdarg.d
! f5a73dc83211fe19a165d41c83aee40c  libphobos/libdruntime/core/stdc/stdatomic.d
  bf552e1cf2ceeb05e2231ba9b15a4317  libphobos/libdruntime/core/stdc/stddef.d
! aa417eb2941ce05fcee7aecb46b52ef9  libphobos/libdruntime/core/stdc/stdint.d
! 9bfc8d1ae8783255a9090fa5077961c7  libphobos/libdruntime/core/stdc/stdio.d
! a547660b8d867bd1dc36f738792294df  libphobos/libdruntime/core/stdc/stdlib.d
  0552522717140740fe9a502700016f3a  libphobos/libdruntime/core/stdc/string.d
  b1b452c04a088565feada1af815d3ea2  libphobos/libdruntime/core/stdc/tgmath.d
  3f44e53505593c836ad3980244975710  libphobos/libdruntime/core/stdc/time.d
  05fe40f4e99fbfccd6872b16ff834442  libphobos/libdruntime/core/stdc/wchar_.d
! b1663e1953112eee39a60ee083f81988  libphobos/libdruntime/core/stdc/wctype.d
! a343caf6e115a78beda4a590a00c124b  libphobos/libdruntime/core/stdcpp/allocator.d
! 83a1cef26175a49cf10768716683fede  libphobos/libdruntime/core/stdcpp/array.d
! 66de5c8df7412ea8d5fa973ed6fdd047  libphobos/libdruntime/core/stdcpp/exception.d
! 11e2db1bb8b58d00c9828fe11c5db485  libphobos/libdruntime/core/stdcpp/memory.d
! 334d484af257d8cdc0f91f9d4a587256  libphobos/libdruntime/core/stdcpp/new_.d
! 981331913ea0755c4c8dd8e44746ccf4  libphobos/libdruntime/core/stdcpp/string.d
! 7c1c6a905460a22413803a99a8627604  libphobos/libdruntime/core/stdcpp/string_view.d
  12a17952827821958ee88a65eba6a869  libphobos/libdruntime/core/stdcpp/type_traits.d
! 0569b3425bd101daae472163154e504d  libphobos/libdruntime/core/stdcpp/typeinfo.d
  06dd797b544244f3a183b5a9e384cd06  libphobos/libdruntime/core/stdcpp/utility.d
  f6303bba4269a36c93ec5592d2096be9  libphobos/libdruntime/core/stdcpp/vector.d
! bf7620793265072a86a264afc1aa5e71  libphobos/libdruntime/core/stdcpp/xutility.d
  fbde46456ccf791794e8a05ff5e2514e  libphobos/libdruntime/core/sync/barrier.d
! d937186cf7d24ca8fbf0c754e14a4132  libphobos/libdruntime/core/sync/condition.d
! 32e65cd032b692a0bc7ef837d9b288e8  libphobos/libdruntime/core/sync/config.d
! de54d1c941d35b5a88abb448e9ddad59  libphobos/libdruntime/core/sync/event.d
  639f1741cd8b67f88b45de6877ebaf28  libphobos/libdruntime/core/sync/exception.d
! d8d35215eb69a255e73ec913bc1d1daa  libphobos/libdruntime/core/sync/mutex.d
  9d0c31c030496644e123ff3169d29034  libphobos/libdruntime/core/sync/package.d
! 51c9e98d49f72c5db1eb7260656f678d  libphobos/libdruntime/core/sync/rwmutex.d
! 2f67770ee754b7013cdcc2bd45ada38d  libphobos/libdruntime/core/sync/semaphore.d
  50fe5e30b4d51364e814298406f553f8  libphobos/libdruntime/core/sys/bionic/err.d
  d55bf2dad61f2510372f4bc81570b20b  libphobos/libdruntime/core/sys/bionic/fcntl.d
  61ec901bd4228ade72b80f786ea9f841  libphobos/libdruntime/core/sys/bionic/stdlib.d
--- 129531,129732 ----
  838bdb8846eac9161e3ffbe553049f2f  libitm/testsuite/libitm.c/simple-2.c
  7ecc8e520a5c494d159cb7571cca7cdc  libitm/testsuite/libitm.c/stackundo.c
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
! 5eec74b1eee8d819e88b284abf80ec7c  libitm/useraction.cc
! 6aa0b92295a7511a2af5672f4ad1cec4  libitm/util.cc
! 8cac871f21407684665c381f3b121bab  libobjc/ChangeLog
! da63bef4f8e0d2401aecc4ea0b7a15bd  libobjc/Makefile.in
! f641586fd7145ce4812e780e634634c0  libobjc/NXConstStr.m
! 1c7a98dcda1e595d5dfefb22b7ac0cd0  libobjc/Object.m
! d97000369ffa22b8a6b3dc0dfdb8f813  libobjc/Protocol.m
  d5edaeee0d84e4305368367019952ba7  libobjc/README
  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
! 61b7663dec7205498cc57416ca9109ff  libobjc/exception.c
! 60ecfa0c67475ec3a3710dad2a711740  libobjc/gc.c
! 06b0f3afcc08efc273cf497e0fd2f9a1  libobjc/hash.c
! 2f8268db5be32bc650dd968ee9fe4f83  libobjc/init.c
! 883d3b46626ab3c762230026c9cf677d  libobjc/ivars.c
! 6f8ff6a956d40d621df60c390f76abef  libobjc/libobjc.def
! 28349275d6dbe8dae4f8515af93f808f  libobjc/linking.m
! 94b05f80c48ed0ecb0eaf746433c5eec  libobjc/memory.c
! e36d684a025d4e4e4c45519da6ca202d  libobjc/methods.c
! 306245ad3bc5a603a8f074d8b52d701e  libobjc/nil_method.c
! a5e4084c811ede53bf1dedadd5298284  libobjc/objc-foreach.c
  4758c47369f62786c0dcdf45f3397ff7  libobjc/objc-private/README
! 1977207d4b523aaa0a632dec2bc176c0  libobjc/objc-private/accessors.h
! 718ceb1a036da9bb85ff2fe14c83604f  libobjc/objc-private/common.h
! 6dd1ddc6224445ea4483d4bc55e1be18  libobjc/objc-private/error.h
! bcf1dd6d67618c510cce5170cd006b33  libobjc/objc-private/hash.h
! d5a85de3da89a320d740a2f26ef5042e  libobjc/objc-private/module-abi-8.h
! be72a0d36239e0e1a63c9a818c3ec128  libobjc/objc-private/objc-list.h
! 0e1a614a8f1c523e3dc99aa6b80607fe  libobjc/objc-private/objc-sync.h
! 0a7967f0348d43e24596a744f9a7a027  libobjc/objc-private/protocols.h
! 700ead06ac5d452d3306b679bad49b8b  libobjc/objc-private/runtime.h
! f6c0b66cecb2bef71ba99904824dd7e6  libobjc/objc-private/sarray.h
! bad880b2f0f907c0a870863494bd984c  libobjc/objc-private/selector.h
! ab578bda5ef5bd07d41fd03207c4aa35  libobjc/objc-sync.c
! 3b95a1a519db08ffb699515c5a22fd51  libobjc/objc/NXConstStr.h
! 7cb03e6088799f6582fc7c8b6053977b  libobjc/objc/Object.h
! 7df13931397ac40acfbf39f9f88a1a89  libobjc/objc/Protocol.h
  6a0d7c25fa8ddefde53bbaf36eea5bdf  libobjc/objc/README
! aa723787da07d55821f50bb58d27896a  libobjc/objc/message.h
! 3f2c97796ee148926385857843fac8b9  libobjc/objc/objc-decls.h
! b1e548d1bd9bea3d01b69f32d3f039c4  libobjc/objc/objc-exception.h
! e0dc6105e81561343fce64bcd3343644  libobjc/objc/objc-sync.h
! 55d55ee98df2d981c3228892ed933270  libobjc/objc/objc.h
! d29870be03deacf147d9a221980f841f  libobjc/objc/runtime.h
! 912c97f1245e4305b378fc2873e5be64  libobjc/objc/thr.h
! fea5b980b750308bfd614d5f01453ab9  libobjc/objects.c
! 11810eb8b646401e448e6ec96e9e5c13  libobjc/protocols.c
! a50aaef4b803051d8c8de65277787205  libobjc/sarray.c
! 1529c9317f23aa02b19c43cda7528d66  libobjc/selector.c
! e48bb3c47cdcb1bfade3ef0007f5a149  libobjc/sendmsg.c
! 06be35842165837797461a0db264aeea  libobjc/thr.c
! 06244d2c384f7d8500028a5cbc788e55  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
! e67224389d81028699fa5631b7a00893  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
! 7c456e1efcebd93265c4bcefe74a9e2d  libphobos/libdruntime/config/arm/switchcontext.S
! 5eb8ee88bb68606cd7ad8ccacdee5f7d  libphobos/libdruntime/config/common/threadasm.S
! 0685b518a51dca511d79b57b1daaf731  libphobos/libdruntime/config/loongarch/switchcontext.S
! 978b82f3c15c721a55ee192880281af0  libphobos/libdruntime/config/mingw/msvc.c
! b28f7f17295d1c6fa30b7cca1cdbeffe  libphobos/libdruntime/config/mingw/switchcontext.S
! 8ba135e130f8dbd7e8c17769680ffa23  libphobos/libdruntime/config/mips/switchcontext.S
! 8c0b691abc50f1986a9d21a7f99b362f  libphobos/libdruntime/config/powerpc/switchcontext.S
! 41af158b7d8434c391b9c218b2632e11  libphobos/libdruntime/config/s390/get_tls_offset.S
! f952853042a3359435c9658791e80086  libphobos/libdruntime/config/systemz/get_tls_offset.S
! f62d4f7095fb72d92a3c94bd32c02e59  libphobos/libdruntime/config/x86/switchcontext.S
  206534cdc7f180e23d651e0f346ef6d6  libphobos/libdruntime/core/atomic.d
! e24e403e904318fd5631db949f475769  libphobos/libdruntime/core/attribute.d
! 3fd0a4eb2d172609d8c62bbe3756fc2d  libphobos/libdruntime/core/bitop.d
! e062253645c3da0b62cc738cf9f398da  libphobos/libdruntime/core/builtins.d
! bd1454b074a5890ef0e76c49f07e21d2  libphobos/libdruntime/core/checkedint.d
! 80d1d0596eb558e1552c3ec6dcb82f0e  libphobos/libdruntime/core/cpuid.d
! 0a882783a15c305d025968dfa221c98c  libphobos/libdruntime/core/demangle.d
  0dfd7378c6db36bc6ec25cea3ced4038  libphobos/libdruntime/core/exception.d
  456fa1344c86d322f867cb4b1736b33a  libphobos/libdruntime/core/factory.d
! 763ed71581c8c9dde7e7eb1321b0d560  libphobos/libdruntime/core/gc/config.d
! a78f9d16d411b849f49e83a802a48b5d  libphobos/libdruntime/core/gc/gcinterface.d
  9473dda5fca28fa3b7f32a14603fd3c7  libphobos/libdruntime/core/gc/registry.d
! 2ed55eecf31e050c4e1ee1074a0fc666  libphobos/libdruntime/core/int128.d
! 9b0990e1c273ba37e22e1016a832e50d  libphobos/libdruntime/core/internal/abort.d
! a2d32e80e72ade920dc6dbaa256f1901  libphobos/libdruntime/core/internal/array/appending.d
! 68baa61f91aaeccba5172391e123900c  libphobos/libdruntime/core/internal/array/arrayassign.d
  a8e988793db0c50993d68d20db7e69bd  libphobos/libdruntime/core/internal/array/capacity.d
! cbe4dc09f4613e01a08f6e28d87e28d1  libphobos/libdruntime/core/internal/array/casting.d
  1905da04a68de992ae7b35c7b48368ba  libphobos/libdruntime/core/internal/array/comparison.d
! e04c894eb42699fda826f43ab520dc56  libphobos/libdruntime/core/internal/array/concatenation.d
! ba90a42bde674417d6caed781390b176  libphobos/libdruntime/core/internal/array/construction.d
! 6e7bb2834943a4c4dd34882dbbe95ea8  libphobos/libdruntime/core/internal/array/duplication.d
  f8f7c1514ef75305b82a937a1be23449  libphobos/libdruntime/core/internal/array/equality.d
  819931c48dd7002a422cf0408399c556  libphobos/libdruntime/core/internal/array/operations.d
! 78fb9b7c8129d1c774eae41d517a5739  libphobos/libdruntime/core/internal/array/utils.d
! aea2a448de5ae93354679fe04200b02e  libphobos/libdruntime/core/internal/atomic.d
  87f5099304bb6fa7f4723eb1c7b3aa7d  libphobos/libdruntime/core/internal/attributes.d
  1d80eef1b17b9b4ab7073ddd62d9e422  libphobos/libdruntime/core/internal/container/array.d
  196c764b6fe4523d0c4585b877b4aaa0  libphobos/libdruntime/core/internal/container/common.d
  651bcf61fd888da86b453d8a72d84069  libphobos/libdruntime/core/internal/container/hashtab.d
  f70666bdd80bfb970a17a9ed9be599ba  libphobos/libdruntime/core/internal/container/treap.d
! 5d51abe313d956dbd5d96e541042c84a  libphobos/libdruntime/core/internal/convert.d
! 7ebc613824ac7845b1455ffd58392d8c  libphobos/libdruntime/core/internal/dassert.d
  963ea5f13b1323723157e4819d600aa2  libphobos/libdruntime/core/internal/destruction.d
  b7a158acc86998b63150c8e8767fff46  libphobos/libdruntime/core/internal/entrypoint.d
! 70f9d4829a77c3ffdee4e1c117c64265  libphobos/libdruntime/core/internal/gc/bits.d
! 22194c3ad9cef30f5aabd896d37dd76c  libphobos/libdruntime/core/internal/gc/blkcache.d
! e3dfc38f8a65bebf4c55f8e9baad6c26  libphobos/libdruntime/core/internal/gc/blockmeta.d
! 720ea0ae682aabdcef80c8ff1460b4e9  libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
! 3aeb450fa7602248f945b80f1d4a88e1  libphobos/libdruntime/core/internal/gc/impl/manual/gc.d
! d415620d052ae1db6d70544c35d1be49  libphobos/libdruntime/core/internal/gc/impl/proto/gc.d
! 2f460ecb63601828cb32f25093590fa3  libphobos/libdruntime/core/internal/gc/os.d
! 98ef57307184c4709cd3666b62371006  libphobos/libdruntime/core/internal/gc/pooltable.d
! 4786bea52d54dcb23ca699fbe6eb83c3  libphobos/libdruntime/core/internal/gc/proxy.d
! 46d4be5b2533d26c5d4c6281a6eda634  libphobos/libdruntime/core/internal/hash.d
  299e680f03c3ddc13696fd52fc8354c4  libphobos/libdruntime/core/internal/lifetime.d
  37bd48ea66ddb05259c7995f66a87815  libphobos/libdruntime/core/internal/moving.d
! 4f645e198123145858200ba494eff9a1  libphobos/libdruntime/core/internal/newaa.d
! 3da42716a2bb1df75cc2b61bf90a9b2c  libphobos/libdruntime/core/internal/parseoptions.d
! c4a519a49c6da8005c2078035b344cf7  libphobos/libdruntime/core/internal/postblit.d
! 033d129addd5b23c56c0f4e77446b299  libphobos/libdruntime/core/internal/qsort.d
  eb7626a08581a41afe77af77f3194a7a  libphobos/libdruntime/core/internal/spinlock.d
! ae51deb9af8fd5e2af56c159ecda8af6  libphobos/libdruntime/core/internal/string.d
  0e954400ebc20e538cb0df0607daaeca  libphobos/libdruntime/core/internal/switch_.d
! cc5fd49c62738f67b6c7d7cc5223eba2  libphobos/libdruntime/core/internal/traits.d
! 93ec0ce1146bd4851b47fdcecd00ea56  libphobos/libdruntime/core/internal/utf.d
! 31c5ef31a034f85a55e0763485479cee  libphobos/libdruntime/core/internal/util/array.d
  233370fbd6246580432384701cb2742a  libphobos/libdruntime/core/internal/util/math.d
  c4d2c8819aacb2a15f08b12dfd19b1cc  libphobos/libdruntime/core/interpolation.d
! 9591e2aa5efad6f205d58ebf1a7d8c25  libphobos/libdruntime/core/lifetime.d
  59a885b29a1d35b8c88198114cea1937  libphobos/libdruntime/core/math.d
! 652d52b28cd78e233da8416583b45593  libphobos/libdruntime/core/memory.d
! b9c6840aeaced95051c29d7184e88fa6  libphobos/libdruntime/core/runtime.d
  94caf334d4b82b52b161e23aec46505d  libphobos/libdruntime/core/simd.d
! e61cb90709bb42a1617c1aa648a6438c  libphobos/libdruntime/core/stdc/assert_.d
  027bd40faf09b13abf5dc94da4aaa176  libphobos/libdruntime/core/stdc/complex.d
! e5cb8a81d0e505497bcc7e4507abfebd  libphobos/libdruntime/core/stdc/config.d
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
! d1e3e7c34509fb3fe879924e72b6f30e  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! 55fd150a36649edd9a4239052a42a3b7  libphobos/libdruntime/core/stdc/fenv.d
  627bd812c57c65e72ca9360911ec5e37  libphobos/libdruntime/core/stdc/float_.d
  7b0fbc4eebf5b3364fd3541f51608b9a  libphobos/libdruntime/core/stdc/inttypes.d
! cc49d5c291f85a60da360856d321dba7  libphobos/libdruntime/core/stdc/limits.d
  1ec5e1d4f9cc5f454f6885ae47882e5b  libphobos/libdruntime/core/stdc/locale.d
! 942bd462653bafd8d70b5c0c6b223565  libphobos/libdruntime/core/stdc/math.d
  0527cc19df281c6561cb089ae3887c88  libphobos/libdruntime/core/stdc/signal.d
  65a0d8a9876486120150abd25cc1d969  libphobos/libdruntime/core/stdc/stdarg.d
! 306374fcd5c5628b804dc7b1f320399b  libphobos/libdruntime/core/stdc/stdatomic.d
  bf552e1cf2ceeb05e2231ba9b15a4317  libphobos/libdruntime/core/stdc/stddef.d
! 9f5f25dd44bf80a08150cdfbe9d111d4  libphobos/libdruntime/core/stdc/stdint.d
! 250214c008a135b64c56e6d946fd3d46  libphobos/libdruntime/core/stdc/stdio.d
! c1de87fcfd77ed5d18607da3217cdd08  libphobos/libdruntime/core/stdc/stdlib.d
  0552522717140740fe9a502700016f3a  libphobos/libdruntime/core/stdc/string.d
  b1b452c04a088565feada1af815d3ea2  libphobos/libdruntime/core/stdc/tgmath.d
  3f44e53505593c836ad3980244975710  libphobos/libdruntime/core/stdc/time.d
  05fe40f4e99fbfccd6872b16ff834442  libphobos/libdruntime/core/stdc/wchar_.d
! f270d462b19d597ac106f7c96f99119b  libphobos/libdruntime/core/stdc/wctype.d
! 53ec074d589170bbd51af2654a987fda  libphobos/libdruntime/core/stdcpp/allocator.d
! e0c850123380d629cb7d467ed907c628  libphobos/libdruntime/core/stdcpp/array.d
! 4b01e553920b55f684bde1b9e3a0013d  libphobos/libdruntime/core/stdcpp/exception.d
! 3eddadac69f83acab9d331f8f40d10f1  libphobos/libdruntime/core/stdcpp/memory.d
! ca3b2621c4836601de8b09d158ac3146  libphobos/libdruntime/core/stdcpp/new_.d
! 745b603b8b03c8d48d260283d52ca79c  libphobos/libdruntime/core/stdcpp/string.d
! 928773810f41fd2b44f30a53f03b5d9a  libphobos/libdruntime/core/stdcpp/string_view.d
  12a17952827821958ee88a65eba6a869  libphobos/libdruntime/core/stdcpp/type_traits.d
! 81021b3a29f068e9ade0f102f80de709  libphobos/libdruntime/core/stdcpp/typeinfo.d
  06dd797b544244f3a183b5a9e384cd06  libphobos/libdruntime/core/stdcpp/utility.d
  f6303bba4269a36c93ec5592d2096be9  libphobos/libdruntime/core/stdcpp/vector.d
! e834fb8a18c7d28865d5fe1a425c6688  libphobos/libdruntime/core/stdcpp/xutility.d
  fbde46456ccf791794e8a05ff5e2514e  libphobos/libdruntime/core/sync/barrier.d
! 563cd49f168991238254ee05b5900503  libphobos/libdruntime/core/sync/condition.d
! 81eda1261299ce4a5e7d3985af654f00  libphobos/libdruntime/core/sync/config.d
! 0a8c52ff58aacdff4d4a65eaec19b3a8  libphobos/libdruntime/core/sync/event.d
  639f1741cd8b67f88b45de6877ebaf28  libphobos/libdruntime/core/sync/exception.d
! 2d2913d37ef7bbf8f408873a5d678e27  libphobos/libdruntime/core/sync/mutex.d
  9d0c31c030496644e123ff3169d29034  libphobos/libdruntime/core/sync/package.d
! 812e07fc2fd1e1acb695d87fd9ab57b3  libphobos/libdruntime/core/sync/rwmutex.d
! 7b4cf45e1f494fcb10817a325f9f13e4  libphobos/libdruntime/core/sync/semaphore.d
  50fe5e30b4d51364e814298406f553f8  libphobos/libdruntime/core/sys/bionic/err.d
  d55bf2dad61f2510372f4bc81570b20b  libphobos/libdruntime/core/sys/bionic/fcntl.d
  61ec901bd4228ade72b80f786ea9f841  libphobos/libdruntime/core/sys/bionic/stdlib.d
*************** cdd965e1bc4060658a5783cea01da633  libpho
*** 121553,121559 ****
  b494cd41558ecb995c4333baf8fc06e5  libphobos/libdruntime/core/sys/darwin/mach/nlist.d
  27705f6828a0cd3d2ed10b37956cb52d  libphobos/libdruntime/core/sys/darwin/mach/port.d
  11f245cf78f453eec2ce6ab6ab994489  libphobos/libdruntime/core/sys/darwin/mach/semaphore.d
! 09669d73890b99bf78487d58f0bc57df  libphobos/libdruntime/core/sys/darwin/mach/stab.d
  6a7b6370ff94633dc40723b8e1135b29  libphobos/libdruntime/core/sys/darwin/mach/thread_act.d
  e0cfebfa42a04ef83e94ce398f8d572a  libphobos/libdruntime/core/sys/darwin/netinet/in_.d
  99642cacbd6ed7ea6c4ea68521cbd236  libphobos/libdruntime/core/sys/darwin/pthread.d
--- 129746,129752 ----
  b494cd41558ecb995c4333baf8fc06e5  libphobos/libdruntime/core/sys/darwin/mach/nlist.d
  27705f6828a0cd3d2ed10b37956cb52d  libphobos/libdruntime/core/sys/darwin/mach/port.d
  11f245cf78f453eec2ce6ab6ab994489  libphobos/libdruntime/core/sys/darwin/mach/semaphore.d
! 61e753842fb4276b8cdd4a7f0aaef5fe  libphobos/libdruntime/core/sys/darwin/mach/stab.d
  6a7b6370ff94633dc40723b8e1135b29  libphobos/libdruntime/core/sys/darwin/mach/thread_act.d
  e0cfebfa42a04ef83e94ce398f8d572a  libphobos/libdruntime/core/sys/darwin/netinet/in_.d
  99642cacbd6ed7ea6c4ea68521cbd236  libphobos/libdruntime/core/sys/darwin/pthread.d
*************** fdbaf03147cfe71d5470a4e029044a7c  libpho
*** 121590,121595 ****
--- 129783,129789 ----
  af280329e0c803d82636283b14c46642  libphobos/libdruntime/core/sys/freebsd/err.d
  380100960f334f1ed62e46fcde0154f3  libphobos/libdruntime/core/sys/freebsd/execinfo.d
  b9d71621d744e28f5408aca3599042ef  libphobos/libdruntime/core/sys/freebsd/ifaddrs.d
+ 0b59048b711d0736fb02a6aee1a5b4e4  libphobos/libdruntime/core/sys/freebsd/mqueue.d
  7d1694b6a4bd9cfd3cff0e4750662b1d  libphobos/libdruntime/core/sys/freebsd/net/if_.d
  0f81fd20e1c8f6bfe31f9d11013b7e8e  libphobos/libdruntime/core/sys/freebsd/net/if_dl.d
  307b5921875f2667f8c2a0195d46589e  libphobos/libdruntime/core/sys/freebsd/netinet/in_.d
*************** b5482e757cf68b7cab783fb27ff7e8dc  libpho
*** 121611,121617 ****
  2fd5d8f5c454e4d0236e0c6b4076b3f3  libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
  a0652e8ab6c7bebf06553fca2458400a  libphobos/libdruntime/core/sys/freebsd/sys/types.d
  7580b3a7ee4945c8401ff9ad2b1eb5d8  libphobos/libdruntime/core/sys/freebsd/time.d
! 58ce9c60b279b1d219d3f44f0c062f3e  libphobos/libdruntime/core/sys/freebsd/unistd.d
  2e58042b40b06181daf7cb32b0d0b3d6  libphobos/libdruntime/core/sys/linux/config.d
  24939ec8eecd1b249cedf4ecdae79cdd  libphobos/libdruntime/core/sys/linux/dlfcn.d
  9772302af1ce910f5d9341c067908b67  libphobos/libdruntime/core/sys/linux/elf.d
--- 129805,129811 ----
  2fd5d8f5c454e4d0236e0c6b4076b3f3  libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
  a0652e8ab6c7bebf06553fca2458400a  libphobos/libdruntime/core/sys/freebsd/sys/types.d
  7580b3a7ee4945c8401ff9ad2b1eb5d8  libphobos/libdruntime/core/sys/freebsd/time.d
! c68553e0e4c1471fcb8b5980937560d0  libphobos/libdruntime/core/sys/freebsd/unistd.d
  2e58042b40b06181daf7cb32b0d0b3d6  libphobos/libdruntime/core/sys/linux/config.d
  24939ec8eecd1b249cedf4ecdae79cdd  libphobos/libdruntime/core/sys/linux/dlfcn.d
  9772302af1ce910f5d9341c067908b67  libphobos/libdruntime/core/sys/linux/elf.d
*************** ef8603d93023778c9a704c8c96f513d7  libpho
*** 121630,121636 ****
  11cb68a053083c4e64d294dd92813bef  libphobos/libdruntime/core/sys/linux/linux/if_packet.d
  12fb5b8d3834b7b9da4b7c2158d39f82  libphobos/libdruntime/core/sys/linux/netinet/in_.d
  ef4ca38842cf7000f36294af3547a28a  libphobos/libdruntime/core/sys/linux/netinet/tcp.d
! 352822d08e8c64dafff0c40595183961  libphobos/libdruntime/core/sys/linux/perf_event.d
  0099ef95503090008310f7cfe82dad3a  libphobos/libdruntime/core/sys/linux/sched.d
  7931aab43c1ac5e2755373b67d411863  libphobos/libdruntime/core/sys/linux/stdio.d
  5865ee9cfca7ce97fb6444080e379440  libphobos/libdruntime/core/sys/linux/string.d
--- 129824,129830 ----
  11cb68a053083c4e64d294dd92813bef  libphobos/libdruntime/core/sys/linux/linux/if_packet.d
  12fb5b8d3834b7b9da4b7c2158d39f82  libphobos/libdruntime/core/sys/linux/netinet/in_.d
  ef4ca38842cf7000f36294af3547a28a  libphobos/libdruntime/core/sys/linux/netinet/tcp.d
! f58c0282735041f3fcc76e5989d6bd48  libphobos/libdruntime/core/sys/linux/perf_event.d
  0099ef95503090008310f7cfe82dad3a  libphobos/libdruntime/core/sys/linux/sched.d
  7931aab43c1ac5e2755373b67d411863  libphobos/libdruntime/core/sys/linux/stdio.d
  5865ee9cfca7ce97fb6444080e379440  libphobos/libdruntime/core/sys/linux/string.d
*************** ee7a0de6e2861775d2d754c5ac23bffb  libpho
*** 121639,121646 ****
  d24094280e490194dedf87b353ff18bb  libphobos/libdruntime/core/sys/linux/sys/file.d
  af70036400fa664c14befdea4312799d  libphobos/libdruntime/core/sys/linux/sys/inotify.d
  9a79d98834ca9d0b3bd6199520b99f4d  libphobos/libdruntime/core/sys/linux/sys/mman.d
  a4bc2500eb1954b8041afbfdf0c1c624  libphobos/libdruntime/core/sys/linux/sys/prctl.d
! f80d0aef18c502a635390c78983541dd  libphobos/libdruntime/core/sys/linux/sys/procfs.d
  be8020cc22c39cfb05963e86a584d8c6  libphobos/libdruntime/core/sys/linux/sys/signalfd.d
  f0914dd1a54b0ff2aee44bf97196d8ac  libphobos/libdruntime/core/sys/linux/sys/socket.d
  86a89527d97460eaf8460e185ad3f275  libphobos/libdruntime/core/sys/linux/sys/sysinfo.d
--- 129833,129841 ----
  d24094280e490194dedf87b353ff18bb  libphobos/libdruntime/core/sys/linux/sys/file.d
  af70036400fa664c14befdea4312799d  libphobos/libdruntime/core/sys/linux/sys/inotify.d
  9a79d98834ca9d0b3bd6199520b99f4d  libphobos/libdruntime/core/sys/linux/sys/mman.d
+ b9dff850521a81573032428e4ad6a659  libphobos/libdruntime/core/sys/linux/sys/mount.d
  a4bc2500eb1954b8041afbfdf0c1c624  libphobos/libdruntime/core/sys/linux/sys/prctl.d
! 8705c1f102a9e56f95b6accd221f1062  libphobos/libdruntime/core/sys/linux/sys/procfs.d
  be8020cc22c39cfb05963e86a584d8c6  libphobos/libdruntime/core/sys/linux/sys/signalfd.d
  f0914dd1a54b0ff2aee44bf97196d8ac  libphobos/libdruntime/core/sys/linux/sys/socket.d
  86a89527d97460eaf8460e185ad3f275  libphobos/libdruntime/core/sys/linux/sys/sysinfo.d
*************** f0914dd1a54b0ff2aee44bf97196d8ac  libpho
*** 121651,121657 ****
  3cc075f55b6c637e3edb96ab0b0dd212  libphobos/libdruntime/core/sys/linux/timerfd.d
  8b7729333b2e7c137f3d4a1e07783823  libphobos/libdruntime/core/sys/linux/tipc.d
  a8bd53389fa93de3a4d12b5d9e5a733d  libphobos/libdruntime/core/sys/linux/uinput.d
! 8f1a360b4a393855fca0731772e2fbee  libphobos/libdruntime/core/sys/linux/unistd.d
  1b582b30d3653f119276cadc05ee72d8  libphobos/libdruntime/core/sys/netbsd/dlfcn.d
  dfd28b5ab076802f136129647195c782  libphobos/libdruntime/core/sys/netbsd/err.d
  16687f12d9b35a350c3415c52d038cd0  libphobos/libdruntime/core/sys/netbsd/execinfo.d
--- 129846,129852 ----
  3cc075f55b6c637e3edb96ab0b0dd212  libphobos/libdruntime/core/sys/linux/timerfd.d
  8b7729333b2e7c137f3d4a1e07783823  libphobos/libdruntime/core/sys/linux/tipc.d
  a8bd53389fa93de3a4d12b5d9e5a733d  libphobos/libdruntime/core/sys/linux/uinput.d
! b452ccd9e332d323be1b74d37dde33f5  libphobos/libdruntime/core/sys/linux/unistd.d
  1b582b30d3653f119276cadc05ee72d8  libphobos/libdruntime/core/sys/netbsd/dlfcn.d
  dfd28b5ab076802f136129647195c782  libphobos/libdruntime/core/sys/netbsd/err.d
  16687f12d9b35a350c3415c52d038cd0  libphobos/libdruntime/core/sys/netbsd/execinfo.d
*************** ed254802fe236c52abe7ec9ebf7f8f79  libpho
*** 121683,121701 ****
  9ef4589d2a7508496db59af7ba4641ab  libphobos/libdruntime/core/sys/openbsd/sys/mman.d
  b4bd052f0e8e57db0716f807263ad759  libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
  26fdce9d3769cf37bf38b5ada08836f3  libphobos/libdruntime/core/sys/openbsd/time.d
! 66c49ab209f0d3477455b3eae8786336  libphobos/libdruntime/core/sys/openbsd/unistd.d
  c19da98e25834b2fc1c764a437973bf8  libphobos/libdruntime/core/sys/posix/aio.d
  d2d580de88e21c5ff2e144828e88cc50  libphobos/libdruntime/core/sys/posix/arpa/inet.d
! 753c44210c9c47befaf944347649165f  libphobos/libdruntime/core/sys/posix/config.d
! 77222df1174ce1bf824da174dea45def  libphobos/libdruntime/core/sys/posix/dirent.d
! d63d0faccd3a6f616671ba6885d1fd0c  libphobos/libdruntime/core/sys/posix/dlfcn.d
! 215db5114c3e505e212b18fdd8fc06f6  libphobos/libdruntime/core/sys/posix/fcntl.d
  702d6944ce1feced53f524d8c6410bae  libphobos/libdruntime/core/sys/posix/grp.d
  3b65fc6ea1e8b95dbe86c5d20e65f522  libphobos/libdruntime/core/sys/posix/iconv.d
  67f194a897054ed6b4b0ec07e3764a5e  libphobos/libdruntime/core/sys/posix/inttypes.d
  81dd20c53642e5d32550aab3d366f157  libphobos/libdruntime/core/sys/posix/libgen.d
  f872163f7db8d6c4044ed0ec34497240  libphobos/libdruntime/core/sys/posix/locale.d
! 41f755d1e19890c74530b6acc9c193eb  libphobos/libdruntime/core/sys/posix/mqueue.d
  1b0baf6dad835d2a338dfbd84007217b  libphobos/libdruntime/core/sys/posix/net/if_.d
  13b8dae9bab5062136d53ccebd082d85  libphobos/libdruntime/core/sys/posix/netdb.d
  c7dcd36f9e6a7e0c43c734446334ad92  libphobos/libdruntime/core/sys/posix/netinet/in_.d
--- 129878,129896 ----
  9ef4589d2a7508496db59af7ba4641ab  libphobos/libdruntime/core/sys/openbsd/sys/mman.d
  b4bd052f0e8e57db0716f807263ad759  libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
  26fdce9d3769cf37bf38b5ada08836f3  libphobos/libdruntime/core/sys/openbsd/time.d
! 85e2e3b07002dd9f07eee83af4369be0  libphobos/libdruntime/core/sys/openbsd/unistd.d
  c19da98e25834b2fc1c764a437973bf8  libphobos/libdruntime/core/sys/posix/aio.d
  d2d580de88e21c5ff2e144828e88cc50  libphobos/libdruntime/core/sys/posix/arpa/inet.d
! 6bd440cdece560ee8908ae48063c14eb  libphobos/libdruntime/core/sys/posix/config.d
! bef1c9ca8fa8d35225eaad453de630ea  libphobos/libdruntime/core/sys/posix/dirent.d
! e4f1943c701d8c5427a60c85adc0236d  libphobos/libdruntime/core/sys/posix/dlfcn.d
! bce3cd4d2c5e1f0f0f185fe211625e83  libphobos/libdruntime/core/sys/posix/fcntl.d
  702d6944ce1feced53f524d8c6410bae  libphobos/libdruntime/core/sys/posix/grp.d
  3b65fc6ea1e8b95dbe86c5d20e65f522  libphobos/libdruntime/core/sys/posix/iconv.d
  67f194a897054ed6b4b0ec07e3764a5e  libphobos/libdruntime/core/sys/posix/inttypes.d
  81dd20c53642e5d32550aab3d366f157  libphobos/libdruntime/core/sys/posix/libgen.d
  f872163f7db8d6c4044ed0ec34497240  libphobos/libdruntime/core/sys/posix/locale.d
! 056c7e93dce141484a044dc2cbfc20cd  libphobos/libdruntime/core/sys/posix/mqueue.d
  1b0baf6dad835d2a338dfbd84007217b  libphobos/libdruntime/core/sys/posix/net/if_.d
  13b8dae9bab5062136d53ccebd082d85  libphobos/libdruntime/core/sys/posix/netdb.d
  c7dcd36f9e6a7e0c43c734446334ad92  libphobos/libdruntime/core/sys/posix/netinet/in_.d
*************** a228203a75c388b65c27a7059185e352  libpho
*** 121706,121714 ****
  dca2ed8976351f808aaaaf8bfaa2ca34  libphobos/libdruntime/core/sys/posix/sched.d
  0d3f923f59a85545956c41021acd5c5b  libphobos/libdruntime/core/sys/posix/semaphore.d
  754f16078f3f2dc253c170d80d64ace4  libphobos/libdruntime/core/sys/posix/setjmp.d
! 5256ecb9a764a8e0a042b7ae816129bf  libphobos/libdruntime/core/sys/posix/signal.d
! e61bb22c1e4f3f67e5a4b10f660d6bc0  libphobos/libdruntime/core/sys/posix/spawn.d
! ce6e14eeb25bb2f98124ca8fa6cb3663  libphobos/libdruntime/core/sys/posix/stdc/time.d
  fbb04909de62a4a4f4a95cfff272c7a3  libphobos/libdruntime/core/sys/posix/stdio.d
  1dacf73803bc7f397074b38943d014f2  libphobos/libdruntime/core/sys/posix/stdlib.d
  f8ac1b696e7212c92caf062e9b8b6b8a  libphobos/libdruntime/core/sys/posix/string.d
--- 129901,129909 ----
  dca2ed8976351f808aaaaf8bfaa2ca34  libphobos/libdruntime/core/sys/posix/sched.d
  0d3f923f59a85545956c41021acd5c5b  libphobos/libdruntime/core/sys/posix/semaphore.d
  754f16078f3f2dc253c170d80d64ace4  libphobos/libdruntime/core/sys/posix/setjmp.d
! b6ff812d4893bb06cadc9a21c305a8c6  libphobos/libdruntime/core/sys/posix/signal.d
! af88cfa76758ed4a06ed76224d9edb61  libphobos/libdruntime/core/sys/posix/spawn.d
! 59214daa1b5028710de013d36b56eb9b  libphobos/libdruntime/core/sys/posix/stdc/time.d
  fbb04909de62a4a4f4a95cfff272c7a3  libphobos/libdruntime/core/sys/posix/stdio.d
  1dacf73803bc7f397074b38943d014f2  libphobos/libdruntime/core/sys/posix/stdlib.d
  f8ac1b696e7212c92caf062e9b8b6b8a  libphobos/libdruntime/core/sys/posix/string.d
*************** b02e329aa6c0d9275bc5c2570f426a80  libpho
*** 121719,121730 ****
  b925ee7e2e3334ef78aa53486af14a6a  libphobos/libdruntime/core/sys/posix/sys/ipc.d
  13815bc5f0c5c0179b9a4d0730ebf9df  libphobos/libdruntime/core/sys/posix/sys/mman.d
  1976f620d8e9fe05b793ca4130031dba  libphobos/libdruntime/core/sys/posix/sys/msg.d
! f2476c70ad36f4fe45fc21eae0d9b174  libphobos/libdruntime/core/sys/posix/sys/resource.d
  da026db04950018a474b54890f559b7e  libphobos/libdruntime/core/sys/posix/sys/select.d
  81d15dd9b6a8d1f517857d304968b834  libphobos/libdruntime/core/sys/posix/sys/shm.d
! 797199850e95f9d82c5466de16074db4  libphobos/libdruntime/core/sys/posix/sys/socket.d
! 7c437baa494e3756d24def9fd0a067e7  libphobos/libdruntime/core/sys/posix/sys/stat.d
! 0f34a241c1111f17546e0563ebf91972  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  ab3f7338ce7949e238728e6631e10e7b  libphobos/libdruntime/core/sys/posix/sys/time.d
  7c741b07659843e1e0332e784c324e3f  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
  1624217586c95bd2d793bd5bffcaccc8  libphobos/libdruntime/core/sys/posix/sys/types.d
--- 129914,129925 ----
  b925ee7e2e3334ef78aa53486af14a6a  libphobos/libdruntime/core/sys/posix/sys/ipc.d
  13815bc5f0c5c0179b9a4d0730ebf9df  libphobos/libdruntime/core/sys/posix/sys/mman.d
  1976f620d8e9fe05b793ca4130031dba  libphobos/libdruntime/core/sys/posix/sys/msg.d
! 4710c8aa76b800477c154e69ab2b452e  libphobos/libdruntime/core/sys/posix/sys/resource.d
  da026db04950018a474b54890f559b7e  libphobos/libdruntime/core/sys/posix/sys/select.d
  81d15dd9b6a8d1f517857d304968b834  libphobos/libdruntime/core/sys/posix/sys/shm.d
! 2921d77709c0a301e4d9f692bd2ab7c8  libphobos/libdruntime/core/sys/posix/sys/socket.d
! 35d9c456572db09b94487f1fc9952b64  libphobos/libdruntime/core/sys/posix/sys/stat.d
! 7d00f70c2445657318f7344d8b4dcb6f  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  ab3f7338ce7949e238728e6631e10e7b  libphobos/libdruntime/core/sys/posix/sys/time.d
  7c741b07659843e1e0332e784c324e3f  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
  1624217586c95bd2d793bd5bffcaccc8  libphobos/libdruntime/core/sys/posix/sys/types.d
*************** c3b9387d319e17b1825a2b306d1b524d  libpho
*** 121752,121803 ****
  0884e0943c7a980f29212b1293b12dba  libphobos/libdruntime/core/sys/solaris/sys/elf_notes.d
  f1f35972178ce37f816175ba4676fc2f  libphobos/libdruntime/core/sys/solaris/sys/elftypes.d
  cf08432132370b23ab8de6e57326066c  libphobos/libdruntime/core/sys/solaris/sys/link.d
! 01ad44a798d3a6cacf0f6e4e13d2989c  libphobos/libdruntime/core/sys/solaris/sys/priocntl.d
! 67eaa20b824ef3dbe41dfa081f40d971  libphobos/libdruntime/core/sys/solaris/sys/procset.d
! 62c2f92b9a740d50758085899522502d  libphobos/libdruntime/core/sys/solaris/sys/types.d
  f3220636fa9a34351a43f51401f4186d  libphobos/libdruntime/core/sys/solaris/time.d
  808bc3a894b23f128a067e177eb6ca6c  libphobos/libdruntime/core/sys/windows/accctrl.d
! 1d1dd386ba54d185582671453bd8ed5c  libphobos/libdruntime/core/sys/windows/aclapi.d
! 8fed00b7b5c95e5b94d866c430b877c0  libphobos/libdruntime/core/sys/windows/aclui.d
  a2bffd2b9b462b551ddd39c82589c6a7  libphobos/libdruntime/core/sys/windows/basetsd.d
  da757341fa2bf63b89a77fc158634cd0  libphobos/libdruntime/core/sys/windows/basetyps.d
  f66a616c8baaf64c29936cd3048d19e6  libphobos/libdruntime/core/sys/windows/cderr.d
  40cf12972559ab3d59832fa5372fb9fd  libphobos/libdruntime/core/sys/windows/cguid.d
  629b11b6597684f0a7fc2fe4f7903f68  libphobos/libdruntime/core/sys/windows/com.d
  55640e2c23753bb0bba7db96a69a7df2  libphobos/libdruntime/core/sys/windows/comcat.d
! 92a703df50d76cf3867e45e092cbecb3  libphobos/libdruntime/core/sys/windows/commctrl.d
  5fcc424ba57cfc222dbc3c99baa12384  libphobos/libdruntime/core/sys/windows/commdlg.d
  bf3823be2764fc604e8c83099bd0aa17  libphobos/libdruntime/core/sys/windows/core.d
  080a37029d0af10fff081dcb013c4520  libphobos/libdruntime/core/sys/windows/cpl.d
  82463589a4bed21f6f5bb3c590d3b4ac  libphobos/libdruntime/core/sys/windows/cplext.d
! 9f449f4c7f6621894c31f2e351bb0e3b  libphobos/libdruntime/core/sys/windows/custcntl.d
! 1ad43393b13b612872251604214436a9  libphobos/libdruntime/core/sys/windows/dbghelp.d
  5d026ec2e43ebbbe3f06a24f39348ee9  libphobos/libdruntime/core/sys/windows/dbghelp_types.d
  94f7cb8b5aabbcd911308efc2d9cccc0  libphobos/libdruntime/core/sys/windows/dbt.d
! f09eefe2d979ffa1e25e9954a2a4d3e4  libphobos/libdruntime/core/sys/windows/dde.d
! 1784e71281b7223f971b086be468f15b  libphobos/libdruntime/core/sys/windows/ddeml.d
! e1eb8890b4898774e2a3602882517bd6  libphobos/libdruntime/core/sys/windows/dhcpcsdk.d
  8bb836897d3d7f5aa12f841f5b353fd9  libphobos/libdruntime/core/sys/windows/dlgs.d
! 985fd93f6ae2b228381e39951ed891ac  libphobos/libdruntime/core/sys/windows/dll.d
  fc9f643ad5f4f8758f50dffad0f61578  libphobos/libdruntime/core/sys/windows/docobj.d
! 40d733fb80d2a5315e64353b464bb510  libphobos/libdruntime/core/sys/windows/errorrep.d
  a70075fe066cb624c031847f005428a6  libphobos/libdruntime/core/sys/windows/exdisp.d
  21344ae84f3cfdcad624405fd4f21b8b  libphobos/libdruntime/core/sys/windows/exdispid.d
! 05ded49abd236ef27c9891bc3609b8c6  libphobos/libdruntime/core/sys/windows/httpext.d
  7753f59cbc132e8a4800c4fc3741ec02  libphobos/libdruntime/core/sys/windows/idispids.d
! 9a45c04dcb25ffe0e0e1d7cc2d896272  libphobos/libdruntime/core/sys/windows/imagehlp.d
  4006bbd3a4b88dd0ec26602e87021b31  libphobos/libdruntime/core/sys/windows/imm.d
! 7224c7dcec6f991a4868c2c133df6172  libphobos/libdruntime/core/sys/windows/intshcut.d
  b649cd51a6d23be2250bd9cffda6db3c  libphobos/libdruntime/core/sys/windows/ipexport.d
! ea6cbf3f9e1b5ae6b153ce71a4aecca5  libphobos/libdruntime/core/sys/windows/iphlpapi.d
  4a361a77b16ca812d5966b8fe5263c1d  libphobos/libdruntime/core/sys/windows/ipifcons.d
  6bd8814cd825d325d4dfd873f999e986  libphobos/libdruntime/core/sys/windows/iprtrmib.d
  4210abb1e6e2a60be3d8e9cff6740fb7  libphobos/libdruntime/core/sys/windows/iptypes.d
  3cb08ac571b1a256214aabdbc13d2652  libphobos/libdruntime/core/sys/windows/isguids.d
  303f181285839cd91eae9077757b3f88  libphobos/libdruntime/core/sys/windows/lm.d
! d68382039b7b47aa10311b22b27dc038  libphobos/libdruntime/core/sys/windows/lmaccess.d
! 5df5325d1954c8e3009fab269b40bc3b  libphobos/libdruntime/core/sys/windows/lmalert.d
! 0dd23d8078b94a75924984e1e5768732  libphobos/libdruntime/core/sys/windows/lmapibuf.d
  edbd314f51428551deb33441a1a66004  libphobos/libdruntime/core/sys/windows/lmat.d
  50e043616a79130a667683040a885200  libphobos/libdruntime/core/sys/windows/lmaudit.d
  326512870a51c87757f0be386078a7f4  libphobos/libdruntime/core/sys/windows/lmbrowsr.d
--- 129947,129999 ----
  0884e0943c7a980f29212b1293b12dba  libphobos/libdruntime/core/sys/solaris/sys/elf_notes.d
  f1f35972178ce37f816175ba4676fc2f  libphobos/libdruntime/core/sys/solaris/sys/elftypes.d
  cf08432132370b23ab8de6e57326066c  libphobos/libdruntime/core/sys/solaris/sys/link.d
! 14ec20e79b81a931cf42ef796eee5790  libphobos/libdruntime/core/sys/solaris/sys/priocntl.d
! dc7980a052410dc02ca14cb5e51a13e8  libphobos/libdruntime/core/sys/solaris/sys/procset.d
! 530fa551e30320295f25931a5025ce4b  libphobos/libdruntime/core/sys/solaris/sys/types.d
  f3220636fa9a34351a43f51401f4186d  libphobos/libdruntime/core/sys/solaris/time.d
  808bc3a894b23f128a067e177eb6ca6c  libphobos/libdruntime/core/sys/windows/accctrl.d
! 2bbb1ebc3493cb45672097831b433d17  libphobos/libdruntime/core/sys/windows/aclapi.d
! 9019e80f7ab7f1246b0bcfcf83b6d5ac  libphobos/libdruntime/core/sys/windows/aclui.d
  a2bffd2b9b462b551ddd39c82589c6a7  libphobos/libdruntime/core/sys/windows/basetsd.d
  da757341fa2bf63b89a77fc158634cd0  libphobos/libdruntime/core/sys/windows/basetyps.d
+ aaa19b431331b227615fa463d6ed6f2a  libphobos/libdruntime/core/sys/windows/bcrypt.d
  f66a616c8baaf64c29936cd3048d19e6  libphobos/libdruntime/core/sys/windows/cderr.d
  40cf12972559ab3d59832fa5372fb9fd  libphobos/libdruntime/core/sys/windows/cguid.d
  629b11b6597684f0a7fc2fe4f7903f68  libphobos/libdruntime/core/sys/windows/com.d
  55640e2c23753bb0bba7db96a69a7df2  libphobos/libdruntime/core/sys/windows/comcat.d
! 03f4f12b61dc34e9a0924fc751b52d25  libphobos/libdruntime/core/sys/windows/commctrl.d
  5fcc424ba57cfc222dbc3c99baa12384  libphobos/libdruntime/core/sys/windows/commdlg.d
  bf3823be2764fc604e8c83099bd0aa17  libphobos/libdruntime/core/sys/windows/core.d
  080a37029d0af10fff081dcb013c4520  libphobos/libdruntime/core/sys/windows/cpl.d
  82463589a4bed21f6f5bb3c590d3b4ac  libphobos/libdruntime/core/sys/windows/cplext.d
! 00bf7d53832448b452802f90cfd78d70  libphobos/libdruntime/core/sys/windows/custcntl.d
! 0eb3d806d23ea59db37e74c4c84233cb  libphobos/libdruntime/core/sys/windows/dbghelp.d
  5d026ec2e43ebbbe3f06a24f39348ee9  libphobos/libdruntime/core/sys/windows/dbghelp_types.d
  94f7cb8b5aabbcd911308efc2d9cccc0  libphobos/libdruntime/core/sys/windows/dbt.d
! e0426218568fad89bba1620414ef705f  libphobos/libdruntime/core/sys/windows/dde.d
! e3898a3347a2f442cb800e4e94a38842  libphobos/libdruntime/core/sys/windows/ddeml.d
! 9733a6c5da78960e6f4aae4ff54b5b63  libphobos/libdruntime/core/sys/windows/dhcpcsdk.d
  8bb836897d3d7f5aa12f841f5b353fd9  libphobos/libdruntime/core/sys/windows/dlgs.d
! a07e59f02a6a473726c0bf3536ca40bb  libphobos/libdruntime/core/sys/windows/dll.d
  fc9f643ad5f4f8758f50dffad0f61578  libphobos/libdruntime/core/sys/windows/docobj.d
! 5925673ebcc593c62b1356726575323e  libphobos/libdruntime/core/sys/windows/errorrep.d
  a70075fe066cb624c031847f005428a6  libphobos/libdruntime/core/sys/windows/exdisp.d
  21344ae84f3cfdcad624405fd4f21b8b  libphobos/libdruntime/core/sys/windows/exdispid.d
! e8b03dfd8dfcbcfa48a163a3dd4682cf  libphobos/libdruntime/core/sys/windows/httpext.d
  7753f59cbc132e8a4800c4fc3741ec02  libphobos/libdruntime/core/sys/windows/idispids.d
! d542b40d2a97951f6e531e0fb419ca36  libphobos/libdruntime/core/sys/windows/imagehlp.d
  4006bbd3a4b88dd0ec26602e87021b31  libphobos/libdruntime/core/sys/windows/imm.d
! 06ef3db229980558ed6132179f407822  libphobos/libdruntime/core/sys/windows/intshcut.d
  b649cd51a6d23be2250bd9cffda6db3c  libphobos/libdruntime/core/sys/windows/ipexport.d
! 0802f3e8184dc25d68a90d07e3b02d95  libphobos/libdruntime/core/sys/windows/iphlpapi.d
  4a361a77b16ca812d5966b8fe5263c1d  libphobos/libdruntime/core/sys/windows/ipifcons.d
  6bd8814cd825d325d4dfd873f999e986  libphobos/libdruntime/core/sys/windows/iprtrmib.d
  4210abb1e6e2a60be3d8e9cff6740fb7  libphobos/libdruntime/core/sys/windows/iptypes.d
  3cb08ac571b1a256214aabdbc13d2652  libphobos/libdruntime/core/sys/windows/isguids.d
  303f181285839cd91eae9077757b3f88  libphobos/libdruntime/core/sys/windows/lm.d
! df6c6dc685442db28a955a39606863c8  libphobos/libdruntime/core/sys/windows/lmaccess.d
! e82168d54e57eb452e03e15035755065  libphobos/libdruntime/core/sys/windows/lmalert.d
! 6edfe3afe225448f7c29d0921b5f33bb  libphobos/libdruntime/core/sys/windows/lmapibuf.d
  edbd314f51428551deb33441a1a66004  libphobos/libdruntime/core/sys/windows/lmat.d
  50e043616a79130a667683040a885200  libphobos/libdruntime/core/sys/windows/lmaudit.d
  326512870a51c87757f0be386078a7f4  libphobos/libdruntime/core/sys/windows/lmbrowsr.d
*************** edbd314f51428551deb33441a1a66004  libpho
*** 121806,121813 ****
  f4871197701e5701ba12881da95f7962  libphobos/libdruntime/core/sys/windows/lmcons.d
  8e033a663d74c385b5589a23daa1d56c  libphobos/libdruntime/core/sys/windows/lmerr.d
  fad30be9ea33f5b2a646a01fc8cc5728  libphobos/libdruntime/core/sys/windows/lmerrlog.d
! b4425738dc9960b34c7439a5f3888b93  libphobos/libdruntime/core/sys/windows/lmmsg.d
! 137b61d5a938168b84e112b515a85256  libphobos/libdruntime/core/sys/windows/lmremutl.d
  d4b15887e244e3f2784a45eb1a0d52a8  libphobos/libdruntime/core/sys/windows/lmrepl.d
  1f8649e89b072dc415c0b0cfa1d4dd79  libphobos/libdruntime/core/sys/windows/lmserver.d
  ffe00fcc2d018da3926d14ad9bd42d06  libphobos/libdruntime/core/sys/windows/lmshare.d
--- 130002,130009 ----
  f4871197701e5701ba12881da95f7962  libphobos/libdruntime/core/sys/windows/lmcons.d
  8e033a663d74c385b5589a23daa1d56c  libphobos/libdruntime/core/sys/windows/lmerr.d
  fad30be9ea33f5b2a646a01fc8cc5728  libphobos/libdruntime/core/sys/windows/lmerrlog.d
! 233aeec4abc032152e27fdec2ea96603  libphobos/libdruntime/core/sys/windows/lmmsg.d
! 9581c3896dc336c8199ea87a3de02667  libphobos/libdruntime/core/sys/windows/lmremutl.d
  d4b15887e244e3f2784a45eb1a0d52a8  libphobos/libdruntime/core/sys/windows/lmrepl.d
  1f8649e89b072dc415c0b0cfa1d4dd79  libphobos/libdruntime/core/sys/windows/lmserver.d
  ffe00fcc2d018da3926d14ad9bd42d06  libphobos/libdruntime/core/sys/windows/lmshare.d
*************** f15343ede37ec86dcc75816d9d02868a  libpho
*** 121821,121827 ****
  2f7672e2bb6fa7af6b39e8bd5cd348e4  libphobos/libdruntime/core/sys/windows/mapi.d
  40944b56ee73c24d3046fc9d313639d0  libphobos/libdruntime/core/sys/windows/mciavi.d
  de0387ad10e69b94fa784ddce6bf5b52  libphobos/libdruntime/core/sys/windows/mcx.d
! fc96c46a0d401798fd635da28105ab12  libphobos/libdruntime/core/sys/windows/mgmtapi.d
  d163cc5abad963a37848b34f1d8a7cad  libphobos/libdruntime/core/sys/windows/mmsystem.d
  da02316c0286de98909d35dced85d22e  libphobos/libdruntime/core/sys/windows/msacm.d
  cb09a9571f48cb8da6c47240ab32a69c  libphobos/libdruntime/core/sys/windows/mshtml.d
--- 130017,130023 ----
  2f7672e2bb6fa7af6b39e8bd5cd348e4  libphobos/libdruntime/core/sys/windows/mapi.d
  40944b56ee73c24d3046fc9d313639d0  libphobos/libdruntime/core/sys/windows/mciavi.d
  de0387ad10e69b94fa784ddce6bf5b52  libphobos/libdruntime/core/sys/windows/mcx.d
! 4af5abe81ec30e4594f5165be0e787e6  libphobos/libdruntime/core/sys/windows/mgmtapi.d
  d163cc5abad963a37848b34f1d8a7cad  libphobos/libdruntime/core/sys/windows/mmsystem.d
  da02316c0286de98909d35dced85d22e  libphobos/libdruntime/core/sys/windows/msacm.d
  cb09a9571f48cb8da6c47240ab32a69c  libphobos/libdruntime/core/sys/windows/mshtml.d
*************** cb09a9571f48cb8da6c47240ab32a69c  libpho
*** 121829,121838 ****
  ea0a8ea5da9f6d375ee3e7b415586a7b  libphobos/libdruntime/core/sys/windows/nb30.d
  0d5ebf7ff5907a657c784cf45edc6a2b  libphobos/libdruntime/core/sys/windows/nddeapi.d
  a36e1c22cb0cd979eaeebff6b6cb786e  libphobos/libdruntime/core/sys/windows/nspapi.d
! e115a67e03a4c225fbf7096cdf91810b  libphobos/libdruntime/core/sys/windows/ntdef.d
! 46930e67c5829d102ce6737bacffaf3d  libphobos/libdruntime/core/sys/windows/ntdll.d
  e853cd965a604797654d7dd7b7fb3cc1  libphobos/libdruntime/core/sys/windows/ntldap.d
! 3b671199369040350d19d65e41304eb7  libphobos/libdruntime/core/sys/windows/ntsecapi.d
  cf14f024351e812f037a15e61e035b16  libphobos/libdruntime/core/sys/windows/ntsecpkg.d
  eec5257ed84683b9c6c8341222562d8c  libphobos/libdruntime/core/sys/windows/oaidl.d
  dc55a541ce748e353ed098be618b4dbe  libphobos/libdruntime/core/sys/windows/objbase.d
--- 130025,130034 ----
  ea0a8ea5da9f6d375ee3e7b415586a7b  libphobos/libdruntime/core/sys/windows/nb30.d
  0d5ebf7ff5907a657c784cf45edc6a2b  libphobos/libdruntime/core/sys/windows/nddeapi.d
  a36e1c22cb0cd979eaeebff6b6cb786e  libphobos/libdruntime/core/sys/windows/nspapi.d
! 04a5a3f41bebbba7ce9427f55a98dc4d  libphobos/libdruntime/core/sys/windows/ntdef.d
! 5a972328a9f001f96b7f7afa2b624f65  libphobos/libdruntime/core/sys/windows/ntdll.d
  e853cd965a604797654d7dd7b7fb3cc1  libphobos/libdruntime/core/sys/windows/ntldap.d
! 46b40764437cf84b5ff4d81eb1c1c614  libphobos/libdruntime/core/sys/windows/ntsecapi.d
  cf14f024351e812f037a15e61e035b16  libphobos/libdruntime/core/sys/windows/ntsecpkg.d
  eec5257ed84683b9c6c8341222562d8c  libphobos/libdruntime/core/sys/windows/oaidl.d
  dc55a541ce748e353ed098be618b4dbe  libphobos/libdruntime/core/sys/windows/objbase.d
*************** dc55a541ce748e353ed098be618b4dbe  libpho
*** 121841,121859 ****
  f74418c84313c701feb487e6505c0fff  libphobos/libdruntime/core/sys/windows/objsafe.d
  9bf8790b0a0d7407f091278334f4b537  libphobos/libdruntime/core/sys/windows/ocidl.d
  bc7b2c02d0149b6a56b6911f3106030b  libphobos/libdruntime/core/sys/windows/odbcinst.d
! 6b03bff70c22fa41b1d95499bc23ff9b  libphobos/libdruntime/core/sys/windows/ole.d
! 6dff17cb347a4f98eed5e4371d1be39a  libphobos/libdruntime/core/sys/windows/ole2.d
  314785a8f31488c44e22711f37b32e61  libphobos/libdruntime/core/sys/windows/ole2ver.d
! d80fb0403ed1d2b06e89fb72f25dd33c  libphobos/libdruntime/core/sys/windows/oleacc.d
! d1e1fc6d635d7ff3bfebe3d25072b3b5  libphobos/libdruntime/core/sys/windows/oleauto.d
  316de02bf25358124fc47d7d055b8889  libphobos/libdruntime/core/sys/windows/olectl.d
  8a2f4906efa1c72b408e26de16392c75  libphobos/libdruntime/core/sys/windows/olectlid.d
! 39fe62003b8ef18324507a455d852fbc  libphobos/libdruntime/core/sys/windows/oledlg.d
  733e9097a56d8b385408997cce3e814d  libphobos/libdruntime/core/sys/windows/oleidl.d
  de6fbc31298db523e7fca07ce18130f8  libphobos/libdruntime/core/sys/windows/pbt.d
  ca8c227a5d0a0aeb0a40b0e9c6433c90  libphobos/libdruntime/core/sys/windows/powrprof.d
! 8106ea518c453f9c827fd23389b5a73f  libphobos/libdruntime/core/sys/windows/prsht.d
! 16e4952dbe783d693c52b69a7a7f9773  libphobos/libdruntime/core/sys/windows/psapi.d
  c26b93da9ae25d60374c9b0d0c0a357f  libphobos/libdruntime/core/sys/windows/rapi.d
  6755da074a0351de4c9633e99c76c25a  libphobos/libdruntime/core/sys/windows/ras.d
  e1dbe738e4eceed9d0aba99688c99916  libphobos/libdruntime/core/sys/windows/rasdlg.d
--- 130037,130055 ----
  f74418c84313c701feb487e6505c0fff  libphobos/libdruntime/core/sys/windows/objsafe.d
  9bf8790b0a0d7407f091278334f4b537  libphobos/libdruntime/core/sys/windows/ocidl.d
  bc7b2c02d0149b6a56b6911f3106030b  libphobos/libdruntime/core/sys/windows/odbcinst.d
! 84149ec08cb7ee03a15912492a4a9782  libphobos/libdruntime/core/sys/windows/ole.d
! fb639dbdc66603824f6b26283a9c34ea  libphobos/libdruntime/core/sys/windows/ole2.d
  314785a8f31488c44e22711f37b32e61  libphobos/libdruntime/core/sys/windows/ole2ver.d
! f1014feeb7aa60f8966501198a1fd39b  libphobos/libdruntime/core/sys/windows/oleacc.d
! d2e35473d10776fb6b9732503668ed9c  libphobos/libdruntime/core/sys/windows/oleauto.d
  316de02bf25358124fc47d7d055b8889  libphobos/libdruntime/core/sys/windows/olectl.d
  8a2f4906efa1c72b408e26de16392c75  libphobos/libdruntime/core/sys/windows/olectlid.d
! 9b62bd960b416fb13336803877c65384  libphobos/libdruntime/core/sys/windows/oledlg.d
  733e9097a56d8b385408997cce3e814d  libphobos/libdruntime/core/sys/windows/oleidl.d
  de6fbc31298db523e7fca07ce18130f8  libphobos/libdruntime/core/sys/windows/pbt.d
  ca8c227a5d0a0aeb0a40b0e9c6433c90  libphobos/libdruntime/core/sys/windows/powrprof.d
! 29d39cfc0699b87f63f9fdce5367405c  libphobos/libdruntime/core/sys/windows/prsht.d
! dd4ac91e4767c5ac4005eb131a06db77  libphobos/libdruntime/core/sys/windows/psapi.d
  c26b93da9ae25d60374c9b0d0c0a357f  libphobos/libdruntime/core/sys/windows/rapi.d
  6755da074a0351de4c9633e99c76c25a  libphobos/libdruntime/core/sys/windows/ras.d
  e1dbe738e4eceed9d0aba99688c99916  libphobos/libdruntime/core/sys/windows/rasdlg.d
*************** d40036d2cab0345df2a1d1039ebf859c  libpho
*** 121863,121869 ****
  26142f5545d440a281af1f7218d7800a  libphobos/libdruntime/core/sys/windows/regstr.d
  8eec1097df061f6abc3c57933dfa9e18  libphobos/libdruntime/core/sys/windows/richedit.d
  e51846439234046f614d8d784f1f0c81  libphobos/libdruntime/core/sys/windows/richole.d
! e2c499859218569638d16d102c505aed  libphobos/libdruntime/core/sys/windows/rpc.d
  ac6f9cdd3c605d352c7dd493bcba5922  libphobos/libdruntime/core/sys/windows/rpcdce.d
  e23fe37d1fd42638696b51f435080017  libphobos/libdruntime/core/sys/windows/rpcdce2.d
  eb5a20ebad64bee40e555cc596626d33  libphobos/libdruntime/core/sys/windows/rpcdcep.d
--- 130059,130065 ----
  26142f5545d440a281af1f7218d7800a  libphobos/libdruntime/core/sys/windows/regstr.d
  8eec1097df061f6abc3c57933dfa9e18  libphobos/libdruntime/core/sys/windows/richedit.d
  e51846439234046f614d8d784f1f0c81  libphobos/libdruntime/core/sys/windows/richole.d
! 43930f9931b35dfff2a65ceb391bc9b3  libphobos/libdruntime/core/sys/windows/rpc.d
  ac6f9cdd3c605d352c7dd493bcba5922  libphobos/libdruntime/core/sys/windows/rpcdce.d
  e23fe37d1fd42638696b51f435080017  libphobos/libdruntime/core/sys/windows/rpcdce2.d
  eb5a20ebad64bee40e555cc596626d33  libphobos/libdruntime/core/sys/windows/rpcdcep.d
*************** c0479e24efb06797b2242dc8ffec02d8  libpho
*** 121872,121878 ****
  016d551012bc74ebd1b6db7d5e6f13d3  libphobos/libdruntime/core/sys/windows/rpcnsip.d
  c9fe813be1a12a243c975de9532ddc4f  libphobos/libdruntime/core/sys/windows/rpcnterr.d
  8c9c47bf6dc6160f2e0de47e1d43caa5  libphobos/libdruntime/core/sys/windows/schannel.d
! 707165ada70d625822daeaad2ed6e17b  libphobos/libdruntime/core/sys/windows/sdkddkver.d
  340c7b814e84fbeccda4a1bdee34d820  libphobos/libdruntime/core/sys/windows/secext.d
  c6327aff5cddc390305a2db5b5e3b56c  libphobos/libdruntime/core/sys/windows/security.d
  f45b998596c1b10efbcaaa154e3824a1  libphobos/libdruntime/core/sys/windows/servprov.d
--- 130068,130074 ----
  016d551012bc74ebd1b6db7d5e6f13d3  libphobos/libdruntime/core/sys/windows/rpcnsip.d
  c9fe813be1a12a243c975de9532ddc4f  libphobos/libdruntime/core/sys/windows/rpcnterr.d
  8c9c47bf6dc6160f2e0de47e1d43caa5  libphobos/libdruntime/core/sys/windows/schannel.d
! 639505f27a1f408cad2bb1bbaae182cf  libphobos/libdruntime/core/sys/windows/sdkddkver.d
  340c7b814e84fbeccda4a1bdee34d820  libphobos/libdruntime/core/sys/windows/secext.d
  c6327aff5cddc390305a2db5b5e3b56c  libphobos/libdruntime/core/sys/windows/security.d
  f45b998596c1b10efbcaaa154e3824a1  libphobos/libdruntime/core/sys/windows/servprov.d
*************** f45b998596c1b10efbcaaa154e3824a1  libpho
*** 121883,121906 ****
  c2126d4b550176dbad6b6615ad24e912  libphobos/libdruntime/core/sys/windows/shlobj.d
  000fc0a080bd483a02a25a4dadb2a494  libphobos/libdruntime/core/sys/windows/shlwapi.d
  b8e34210efaf228e2501f59f73077072  libphobos/libdruntime/core/sys/windows/snmp.d
! e7388e4e4b1f537730c18b1869b57155  libphobos/libdruntime/core/sys/windows/sql.d
! 4bfd6284d9c2f6208dc541281a1487bd  libphobos/libdruntime/core/sys/windows/sqlext.d
! d1fa2e2a9d4588e77585eef5b230c7aa  libphobos/libdruntime/core/sys/windows/sqltypes.d
! da35a4dce565322585d6f2388abb6008  libphobos/libdruntime/core/sys/windows/sqlucode.d
  1186df0a3e354e09f8574725247b1c3b  libphobos/libdruntime/core/sys/windows/sspi.d
! 0cd1266f61a84ccc88f8e474e2981809  libphobos/libdruntime/core/sys/windows/stacktrace.d
! 78f2425fa9d20c8f30923da75c392c02  libphobos/libdruntime/core/sys/windows/stat.d
  504474997e9ec2d7b220c5798cbd0639  libphobos/libdruntime/core/sys/windows/stdc/malloc.d
! 33fcc28066c3bb9129080337483b0f97  libphobos/libdruntime/core/sys/windows/stdc/time.d
  26d4e6b2dd6a9231368560919fe3fb2f  libphobos/libdruntime/core/sys/windows/subauth.d
! b89d21c2730d93dc7f157d4ae24795fe  libphobos/libdruntime/core/sys/windows/threadaux.d
  1c03170e8729fdd1bd3c2afd3155ad1e  libphobos/libdruntime/core/sys/windows/tlhelp32.d
  66bd241f4835318c2108f0125b4bad5f  libphobos/libdruntime/core/sys/windows/tmschema.d
  cc11561706a7991b9feb77841b680282  libphobos/libdruntime/core/sys/windows/unknwn.d
  cb98ff926684a18df476f1124b5354d9  libphobos/libdruntime/core/sys/windows/uuid.d
  5f290258828a86c1ab308dea34dc9a9d  libphobos/libdruntime/core/sys/windows/vfw.d
! 000a8b7395a3605236ec2f4de717e7eb  libphobos/libdruntime/core/sys/windows/w32api.d
! 20569bd672d71f7777065a207eba5678  libphobos/libdruntime/core/sys/windows/winbase.d
  36702b0a76945e3420222c08908bcae8  libphobos/libdruntime/core/sys/windows/winber.d
  2903bfe8992d2cb2bfaefea1db4dc184  libphobos/libdruntime/core/sys/windows/wincon.d
  6d69b260397c77dc2c3dae8bb21692e6  libphobos/libdruntime/core/sys/windows/wincrypt.d
--- 130079,130102 ----
  c2126d4b550176dbad6b6615ad24e912  libphobos/libdruntime/core/sys/windows/shlobj.d
  000fc0a080bd483a02a25a4dadb2a494  libphobos/libdruntime/core/sys/windows/shlwapi.d
  b8e34210efaf228e2501f59f73077072  libphobos/libdruntime/core/sys/windows/snmp.d
! f6fd3920815e6f0c460857384f5ef896  libphobos/libdruntime/core/sys/windows/sql.d
! 13a386881e1b7ef88979d19e085710da  libphobos/libdruntime/core/sys/windows/sqlext.d
! b276dc1b9ec6b033a467b1849662de6a  libphobos/libdruntime/core/sys/windows/sqltypes.d
! 996cc6ffc2a526f305b5e306a0a3966b  libphobos/libdruntime/core/sys/windows/sqlucode.d
  1186df0a3e354e09f8574725247b1c3b  libphobos/libdruntime/core/sys/windows/sspi.d
! d8933a9af92c9c5a5629e35a6807a3e2  libphobos/libdruntime/core/sys/windows/stacktrace.d
! 3878253238d28cf17d94b6d94d6a10ff  libphobos/libdruntime/core/sys/windows/stat.d
  504474997e9ec2d7b220c5798cbd0639  libphobos/libdruntime/core/sys/windows/stdc/malloc.d
! 4c8d906b0fdf92aa1689b344b4f58031  libphobos/libdruntime/core/sys/windows/stdc/time.d
  26d4e6b2dd6a9231368560919fe3fb2f  libphobos/libdruntime/core/sys/windows/subauth.d
! 60cbbe09e15045bbe2269b958d381ac0  libphobos/libdruntime/core/sys/windows/threadaux.d
  1c03170e8729fdd1bd3c2afd3155ad1e  libphobos/libdruntime/core/sys/windows/tlhelp32.d
  66bd241f4835318c2108f0125b4bad5f  libphobos/libdruntime/core/sys/windows/tmschema.d
  cc11561706a7991b9feb77841b680282  libphobos/libdruntime/core/sys/windows/unknwn.d
  cb98ff926684a18df476f1124b5354d9  libphobos/libdruntime/core/sys/windows/uuid.d
  5f290258828a86c1ab308dea34dc9a9d  libphobos/libdruntime/core/sys/windows/vfw.d
! 4633f2ba9df184085550d29f9d42125f  libphobos/libdruntime/core/sys/windows/w32api.d
! 8ec0205c8540cc503777abcef9744577  libphobos/libdruntime/core/sys/windows/winbase.d
  36702b0a76945e3420222c08908bcae8  libphobos/libdruntime/core/sys/windows/winber.d
  2903bfe8992d2cb2bfaefea1db4dc184  libphobos/libdruntime/core/sys/windows/wincon.d
  6d69b260397c77dc2c3dae8bb21692e6  libphobos/libdruntime/core/sys/windows/wincrypt.d
*************** cb98ff926684a18df476f1124b5354d9  libpho
*** 121908,122048 ****
  293f507b533fce5d73e47c24264d26ff  libphobos/libdruntime/core/sys/windows/windows.d
  b58950289b0dfb2d9e2ef2a62b697df3  libphobos/libdruntime/core/sys/windows/winerror.d
  37f09c0d53e0bd3bde999d57f0bfc0dd  libphobos/libdruntime/core/sys/windows/wingdi.d
! 7606e7e9a8fd92b793475c40ef20ea4e  libphobos/libdruntime/core/sys/windows/winhttp.d
  a6ef0f37410314e536a070e712f80c32  libphobos/libdruntime/core/sys/windows/wininet.d
  4ef49e596f406ad40b00780fe71c6313  libphobos/libdruntime/core/sys/windows/winioctl.d
  2fdae639c1094bb99ec4feab5c961471  libphobos/libdruntime/core/sys/windows/winldap.d
! 48abe9a63d3da4031eb0b48b9539830c  libphobos/libdruntime/core/sys/windows/winnetwk.d
  ce637be2829c4171626233b1baaee3b2  libphobos/libdruntime/core/sys/windows/winnls.d
  ea54a4308c111abdf0d903ad3aa593b3  libphobos/libdruntime/core/sys/windows/winnt.d
  aec0a54384dea87ba5f95eef663b8cc9  libphobos/libdruntime/core/sys/windows/winperf.d
  4bb0b47e114ccad718982a27943cfb7b  libphobos/libdruntime/core/sys/windows/winreg.d
! fe106920a5b1c11c8cc331880eb4b66c  libphobos/libdruntime/core/sys/windows/winsock2.d
  3fca7b46a6f195293e8bb548f25f4bf4  libphobos/libdruntime/core/sys/windows/winspool.d
! 19e5c25cdafdbc7e8deb29076fef08d9  libphobos/libdruntime/core/sys/windows/winsvc.d
! 1aa39fbeb376dc308e00f864a387bc91  libphobos/libdruntime/core/sys/windows/winuser.d
! 528e0d1a97b30643ff52942e64da30dd  libphobos/libdruntime/core/sys/windows/winver.d
  8a696576926989a12147948a41f20685  libphobos/libdruntime/core/sys/windows/wtsapi32.d
  db396938683f7ba1b2f3f8396c452873  libphobos/libdruntime/core/sys/windows/wtypes.d
  9094c28b1e25c7802bae1054ff893274  libphobos/libdruntime/core/thread/context.d
! 8503d5ac0f8faecee402e26288620d4e  libphobos/libdruntime/core/thread/fiber.d
! 3b56c6cd0e8fccc3095df5e8a7e1ddfd  libphobos/libdruntime/core/thread/osthread.d
  cc5f1b5b44f6a26421e39b60a8310c08  libphobos/libdruntime/core/thread/package.d
! e7c633f251badc9e222d3d4e4694292c  libphobos/libdruntime/core/thread/threadbase.d
! c1ed5b58527141cfd45c44e71ae05ec8  libphobos/libdruntime/core/thread/threadgroup.d
! 016b93c566a3b630a1d1d3fa7e7b1b6e  libphobos/libdruntime/core/thread/types.d
! bba70abbb96a722a9580d6d09ec286ae  libphobos/libdruntime/core/time.d
  dc2476225199a44698695428f73a3562  libphobos/libdruntime/core/vararg.d
  4cf99596b90593fec63debe10874dfdb  libphobos/libdruntime/core/volatile.d
  064f788d347802e25a84b4176ad920a0  libphobos/libdruntime/etc/valgrind/valgrind.d
  6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
! 4331eb5ed1992a91c2013de97074fd92  libphobos/libdruntime/gcc/attribute.d
! e5d417f7faadc01f6824cfa01ada2059  libphobos/libdruntime/gcc/attributes.d
! 4cd37d4a95d2a3e917e320bfd2d423a8  libphobos/libdruntime/gcc/backtrace.d
! 8586ed33f4c14e603eb7d9dc6620c749  libphobos/libdruntime/gcc/builtins.d
! b7f23238e46762796e559caafc270876  libphobos/libdruntime/gcc/config.d.in
! 96a0432c5a693b446e890c1eef6c6143  libphobos/libdruntime/gcc/deh.d
! 26b9478fb94850ae4f31067ba86961ff  libphobos/libdruntime/gcc/drtstuff.c
! b29a3f6fe4f026ad78316a43c913e828  libphobos/libdruntime/gcc/emutls.d
! 2dfd74c79213ebaa8a08c824b3dc6d07  libphobos/libdruntime/gcc/gthread.d
! 777697cbf3882a284bc01a0b66675233  libphobos/libdruntime/gcc/libbacktrace.d.in
! cddef933233f0f90b73fc3b13fc4aefc  libphobos/libdruntime/gcc/sections/common.d
! 8343cb3ac884329e27ff3737614ae497  libphobos/libdruntime/gcc/sections/elf.d
! 4a46c37ab5851fff53263623280074b7  libphobos/libdruntime/gcc/sections/macho.d
! 093b5a784c1912152b224d5118a978dd  libphobos/libdruntime/gcc/sections/package.d
! f7a4c074fdb2080f227c626bac9fdebe  libphobos/libdruntime/gcc/sections/pecoff.d
! 2f9fe26e24c92369114642fba7eef576  libphobos/libdruntime/gcc/simd.d
! 4a3d48522dc152b502f2ca3c61a8a540  libphobos/libdruntime/gcc/unwind/arm.d
! d1777a09203b8037c9dbc8210b48680f  libphobos/libdruntime/gcc/unwind/arm_common.d
! 09826fa63534829a63aa5206c78665e7  libphobos/libdruntime/gcc/unwind/c6x.d
! a84145920800f295853762b73d2dee99  libphobos/libdruntime/gcc/unwind/generic.d
! 4b7d947e99b9880fa9c900488a1f3513  libphobos/libdruntime/gcc/unwind/package.d
! 434d311b4b093d52fdaf4b6a418b9e55  libphobos/libdruntime/gcc/unwind/pe.d
! 7601dd5e96ee6b4c6e4d6e80a5c4a9f6  libphobos/libdruntime/object.d
! e630d4dc47182f616f9d6f5d43a72b72  libphobos/libdruntime/rt/aApply.d
! 8ac3a24eff6e1f57d5febe9f4abd7013  libphobos/libdruntime/rt/aApplyR.d
! 2741238336c2f606421a6ce22481df3a  libphobos/libdruntime/rt/aaA.d
! c50bbbb450796967c2c51cf3fef9da14  libphobos/libdruntime/rt/adi.d
! 8d7590e2d80123970d6ffadec3b61738  libphobos/libdruntime/rt/arraycat.d
! cc500d00bfed0f9defeec7c3499541ae  libphobos/libdruntime/rt/cast_.d
! e356126947e7110fb24ae47490f6dde1  libphobos/libdruntime/rt/config.d
  a0ed14f9f9820952df01a04539a0f23d  libphobos/libdruntime/rt/critical_.d
! 684277cb344c29190c7bb579c79a0d94  libphobos/libdruntime/rt/deh.d
! 5dc03dbd93b4cb4888c4b4786079b75f  libphobos/libdruntime/rt/dmain2.d
  94d63a76cd37f837fa8e39cf416590e6  libphobos/libdruntime/rt/dylib_fixes.c
! f3312264e684dc66345bcb692aaa1a2c  libphobos/libdruntime/rt/ehalloc.d
! 558c02062a26469537c962127a6722db  libphobos/libdruntime/rt/invariant.d
! 9c4961b192d312c3def45fd063650c54  libphobos/libdruntime/rt/lifetime.d
  3256fa529b5c773a7af9a6a8a2e989cb  libphobos/libdruntime/rt/memory.d
! 3a2394a3fbf4f0a342ab9fb8c12d9159  libphobos/libdruntime/rt/minfo.d
! c86d80a9087e08b9d7e8efbcd38bd4b8  libphobos/libdruntime/rt/monitor_.d
! de5ab3f0cbaf039229851762157782f9  libphobos/libdruntime/rt/profilegc.d
! 5846d4d60a1c8b37775423575f6884c9  libphobos/libdruntime/rt/sections.d
! c7a6041a6bac5ecaf2e2688bf5eea41b  libphobos/libdruntime/rt/tlsgc.d
! 85c2317bcbedee11e33f5a5aa59bd1e8  libphobos/libdruntime/rt/util/typeinfo.d
  b44590c842b754fede38a9a70a5b2d53  libphobos/libdruntime/rt/util/utility.d
  98e21634a122597ed7abb6150c41cdbf  libphobos/m4/autoconf.m4
  cbef578492ab132e253c07ad83e6ee8a  libphobos/m4/druntime.m4
  2157f801b8e7e6a834559bcfe402c105  libphobos/m4/druntime/cpu.m4
  85906ebe53a95f2ccaa626b006ea0256  libphobos/m4/druntime/libraries.m4
! bcf226bf8392b2181c4c8f9a386f0a26  libphobos/m4/druntime/os.m4
  be2340569194e9c072c40fc94eab3483  libphobos/m4/gcc_support.m4
  c49ab40607849fa623787878420e7207  libphobos/m4/gdc.m4
  458abf211dc60540bf28a9257d4bd4e5  libphobos/m4/libtool.m4
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
! 1f307b0ae375868426a82282dd3a5de1  libphobos/src/MERGE
! 35138558c181e92ae65a3202a60348c2  libphobos/src/Makefile.am
! 01152d1833902e50a9c0f4277eb7bc78  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
! 880a3b4c0174fd0b918810b24dfe9acb  libphobos/src/etc/c/curl.d
  7b80323c83065d7a653fce9728ebac50  libphobos/src/etc/c/zlib.d
  a39d2aad74f3f5fe083a190052cd9c31  libphobos/src/index.dd
  3a1ad66c3c47609c90c1f4d9cf8ddca2  libphobos/src/libgphobos.spec.in
! bafac6083c6d5c5b3eb742a3f8a8a893  libphobos/src/std/algorithm/comparison.d
  694c41f4d2a56ffa1cea9387144617a7  libphobos/src/std/algorithm/internal.d
! 04f499636461e1b627c68b9ac616d057  libphobos/src/std/algorithm/iteration.d
! 0533c3d9cf6ec970a9b654a0574eaf7e  libphobos/src/std/algorithm/mutation.d
  3f649d64367da82fd22630117d39a560  libphobos/src/std/algorithm/package.d
! 7c625913d44a56b298651f4ed6b2c11b  libphobos/src/std/algorithm/searching.d
! 77167ad7cf4c80bb39eeaf62f0ed0772  libphobos/src/std/algorithm/setops.d
! 8a821ea7d88ec0da604d3486e9329073  libphobos/src/std/algorithm/sorting.d
! ebaba54d54961133b1b55347002a7b2f  libphobos/src/std/array.d
  48d84292d39b7ff9bc2e13b8fa55c40c  libphobos/src/std/ascii.d
! 7ea96abed440e23fc8c05ec2ad71e051  libphobos/src/std/base64.d
! a665af54f57db1fafac5f0201da6b535  libphobos/src/std/bigint.d
! ca4b9b72333032ad8ff453d7730a883a  libphobos/src/std/bitmanip.d
! 9279fe59e5a736ec3148db1f92f748c9  libphobos/src/std/checkedint.d
  5c954cc53846cbfcfdab57ef4fcb6abc  libphobos/src/std/compiler.d
! 27e0d8d1f39bb422ce3b338986d576a4  libphobos/src/std/complex.d
! 29436f485218f854d5d4493fa055021d  libphobos/src/std/concurrency.d
  055473876e85cd377596e2eb86de9b41  libphobos/src/std/container/array.d
  b2899537b7218e7ff3c84509f244f1e3  libphobos/src/std/container/binaryheap.d
! fc676112cead2727df407a2aa05f631c  libphobos/src/std/container/dlist.d
! df3f67c15b5b7b1af94bf29d9744f005  libphobos/src/std/container/package.d
! 30f546db255833e0004dd1c9f0dfa883  libphobos/src/std/container/rbtree.d
! 4a327ea86a45ce1f67fa44aa634bfd06  libphobos/src/std/container/slist.d
! c8590ffcd747e9da50e3afc8e4c69111  libphobos/src/std/container/util.d
! 1dc5c608707d04f6fa269e9087a0affd  libphobos/src/std/conv.d
! 6aef79b4677f6bb259b947c1c3176dfe  libphobos/src/std/csv.d
! e9d818e994a694951a607a1aaa99c921  libphobos/src/std/datetime/date.d
! 8940289b80bf4d65f426f9625a18a7cc  libphobos/src/std/datetime/interval.d
  e7bc223bf781f9daca7e4f191059f339  libphobos/src/std/datetime/package.d
! 60a547458b0f105a74a4ec79271e034a  libphobos/src/std/datetime/stopwatch.d
! 6fa66b107f3655fabcc67e5cd242b166  libphobos/src/std/datetime/systime.d
! 4ae8ed05d6aeaee8d8fe5a89c422d5cd  libphobos/src/std/datetime/timezone.d
  221da1b10eb5da893eb97e28d5de3171  libphobos/src/std/demangle.d
  9074ecdf1c11c2074e412fd65bc86e53  libphobos/src/std/digest/crc.d
  d6b59ab3bb8a093b58e1c0dfb19b800e  libphobos/src/std/digest/hmac.d
  b47dbe3911d24e7ed5b66df2f0605ccb  libphobos/src/std/digest/md.d
  9aeb4b406d2d1f4056548c297e4e2f94  libphobos/src/std/digest/murmurhash.d
! a35cbabb8aa77d8451c285063c5c8211  libphobos/src/std/digest/package.d
  4a611bd9d6b92c30cfac32edfd614b54  libphobos/src/std/digest/ripemd.d
  140459aad8321d6a9b0c6e380d62ebed  libphobos/src/std/digest/sha.d
  cdc3d0431aa2e54b40e0570c9a848b27  libphobos/src/std/encoding.d
! 5ef3a84849de326ced462485ad7dd947  libphobos/src/std/exception.d
  c6b20fb62f7a0f07789137e4e07c65e6  libphobos/src/std/experimental/allocator/building_blocks/affix_allocator.d
  f5a9a6e6207580b72ba6df2195748c52  libphobos/src/std/experimental/allocator/building_blocks/aligned_block_list.d
! 283cb27edad5144242d015a95280ff86  libphobos/src/std/experimental/allocator/building_blocks/allocator_list.d
  54937f37e3907116b80036449560c873  libphobos/src/std/experimental/allocator/building_blocks/ascending_page_allocator.d
  81c04e6daf295821dbdc8654dbcb970e  libphobos/src/std/experimental/allocator/building_blocks/bitmapped_block.d
  aaab7cd4d84a361d433bb44d4301c0af  libphobos/src/std/experimental/allocator/building_blocks/bucketizer.d
--- 130104,130258 ----
  293f507b533fce5d73e47c24264d26ff  libphobos/libdruntime/core/sys/windows/windows.d
  b58950289b0dfb2d9e2ef2a62b697df3  libphobos/libdruntime/core/sys/windows/winerror.d
  37f09c0d53e0bd3bde999d57f0bfc0dd  libphobos/libdruntime/core/sys/windows/wingdi.d
! 338aff88cfe782c95631075e2dd75828  libphobos/libdruntime/core/sys/windows/winhttp.d
  a6ef0f37410314e536a070e712f80c32  libphobos/libdruntime/core/sys/windows/wininet.d
  4ef49e596f406ad40b00780fe71c6313  libphobos/libdruntime/core/sys/windows/winioctl.d
  2fdae639c1094bb99ec4feab5c961471  libphobos/libdruntime/core/sys/windows/winldap.d
! b2582e2c49b687ebe4fdd7ed150a5f99  libphobos/libdruntime/core/sys/windows/winnetwk.d
  ce637be2829c4171626233b1baaee3b2  libphobos/libdruntime/core/sys/windows/winnls.d
  ea54a4308c111abdf0d903ad3aa593b3  libphobos/libdruntime/core/sys/windows/winnt.d
  aec0a54384dea87ba5f95eef663b8cc9  libphobos/libdruntime/core/sys/windows/winperf.d
  4bb0b47e114ccad718982a27943cfb7b  libphobos/libdruntime/core/sys/windows/winreg.d
! 5282f73c2e2b77a86fa709b3ace991f2  libphobos/libdruntime/core/sys/windows/winsock2.d
  3fca7b46a6f195293e8bb548f25f4bf4  libphobos/libdruntime/core/sys/windows/winspool.d
! 5627876b09ddab4a33043aaa00363adb  libphobos/libdruntime/core/sys/windows/winsvc.d
! 602c631d29bd9c84f4f9a2606f38cee5  libphobos/libdruntime/core/sys/windows/winuser.d
! 91b924b795e506bbb8624edd7a5c04fe  libphobos/libdruntime/core/sys/windows/winver.d
  8a696576926989a12147948a41f20685  libphobos/libdruntime/core/sys/windows/wtsapi32.d
  db396938683f7ba1b2f3f8396c452873  libphobos/libdruntime/core/sys/windows/wtypes.d
  9094c28b1e25c7802bae1054ff893274  libphobos/libdruntime/core/thread/context.d
! 6cfc0c2485080e923e924b73defa7746  libphobos/libdruntime/core/thread/fiber/base.d
! 465ddbb387156a894b0eb2d80b928aaf  libphobos/libdruntime/core/thread/fiber/package.d
! 4560f1cba7c6752912b98a0b2d54b666  libphobos/libdruntime/core/thread/osthread.d
  cc5f1b5b44f6a26421e39b60a8310c08  libphobos/libdruntime/core/thread/package.d
! f7ff44bd21af42e5a4cc2d1226928dfc  libphobos/libdruntime/core/thread/threadbase.d
! e56fd11737f2c55b4255fe3d6ac1ef28  libphobos/libdruntime/core/thread/threadgroup.d
! 4b62ae0fdc1ad3c3f84e871d1805614e  libphobos/libdruntime/core/thread/types.d
! e64d0d602d45a7d0ff4f2d4918a511c1  libphobos/libdruntime/core/time.d
  dc2476225199a44698695428f73a3562  libphobos/libdruntime/core/vararg.d
  4cf99596b90593fec63debe10874dfdb  libphobos/libdruntime/core/volatile.d
  064f788d347802e25a84b4176ad920a0  libphobos/libdruntime/etc/valgrind/valgrind.d
  6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
! 3c35ffa43ae62631bdebefc063b85afd  libphobos/libdruntime/gcc/attribute.d
! 4326f042a268f30aa7ce45fed07b52d4  libphobos/libdruntime/gcc/attributes.d
! 29db25945893e4650f467deab27adac8  libphobos/libdruntime/gcc/backtrace.d
! 031c80104df62fe24d5661d0c5f3102e  libphobos/libdruntime/gcc/builtins.d
! 487e7f8061084aa6d057d6c5642162be  libphobos/libdruntime/gcc/config.d.in
! 74072f20063e19c5984172fe4ff24e6e  libphobos/libdruntime/gcc/deh.d
! f84bf21a7439158b9df9a84602abc8bf  libphobos/libdruntime/gcc/drtstuff.c
! e1e2c1c62a67a3172e40ab94f61c993d  libphobos/libdruntime/gcc/emutls.d
! ecba91b0357686d2ef956254a98a731e  libphobos/libdruntime/gcc/gthread.d
! 2d9dcf5e0b1f5a6619e13047f9aa0da5  libphobos/libdruntime/gcc/libbacktrace.d.in
! 99de6cc33a25bfc68723a81b48b5a4ed  libphobos/libdruntime/gcc/sections/common.d
! 45a52f26eac3cf83ca6e4d5316811602  libphobos/libdruntime/gcc/sections/elf.d
! a9ac88edef1bb1bf7dbf5f2db869e73d  libphobos/libdruntime/gcc/sections/macho.d
! 21bb11f9613c8d53428a95d48805ea2e  libphobos/libdruntime/gcc/sections/package.d
! caf093b19e4d3978f000b1cebd8e34c5  libphobos/libdruntime/gcc/sections/pecoff.d
! 20938cdc2a9a651d373bc0ef17d62cf0  libphobos/libdruntime/gcc/simd.d
! 50ceaa2cdd08ab8861944390446c48a2  libphobos/libdruntime/gcc/unwind/arm.d
! 3b6321970e302c2d8c97e95070a0b75a  libphobos/libdruntime/gcc/unwind/arm_common.d
! b6ff657def05a59b84b112c9e3a61fc1  libphobos/libdruntime/gcc/unwind/c6x.d
! b3a0f706da0ce2a911f05bec723685b4  libphobos/libdruntime/gcc/unwind/generic.d
! 00aab775d39d8ed8bac3f52c57eed013  libphobos/libdruntime/gcc/unwind/package.d
! 15cd5807c2a53892355c4e3c6b266fce  libphobos/libdruntime/gcc/unwind/pe.d
! 57c04bc56ae9b79300f63e4f559c059e  libphobos/libdruntime/object.d
! d8d516fbbcdaf56dbedecba292ccbbf0  libphobos/libdruntime/rt/aApply.d
! 354d74322247f84a028b3aa1a5e7504b  libphobos/libdruntime/rt/aApplyR.d
! c6462c0827ba2937ba0fa71c568718aa  libphobos/libdruntime/rt/aaA.d
! 029f6ffc53ca3b23270a0877dd98bb61  libphobos/libdruntime/rt/adi.d
! b647fb15bc7ed8eeaa50ad59ae9bfe24  libphobos/libdruntime/rt/arraycat.d
! 89f371cbb57e25b0ce593464440b7c8a  libphobos/libdruntime/rt/cast_.d
! b1e402d9e259d6f12026d20eea906cdb  libphobos/libdruntime/rt/config.d
  a0ed14f9f9820952df01a04539a0f23d  libphobos/libdruntime/rt/critical_.d
! 95971c2776b2763f2260ca4f40449ef7  libphobos/libdruntime/rt/deh.d
! e05a3767be1ffefec3d99bc3db51bbc7  libphobos/libdruntime/rt/dmain2.d
  94d63a76cd37f837fa8e39cf416590e6  libphobos/libdruntime/rt/dylib_fixes.c
! 6487fb837b4932675bbb23237f9a7c03  libphobos/libdruntime/rt/ehalloc.d
! 54c5f0846525d6e321ce6c2cbace4dbd  libphobos/libdruntime/rt/invariant_.d
! c3df17c6ca1188850a6d860e539afe12  libphobos/libdruntime/rt/lifetime.d
  3256fa529b5c773a7af9a6a8a2e989cb  libphobos/libdruntime/rt/memory.d
! 7991225305d723ea566edcbd11b4bbe4  libphobos/libdruntime/rt/minfo.d
! cdf59405351ba7c7e3d5450b0f0b0e0e  libphobos/libdruntime/rt/monitor_.d
! bd333879e9738908ba32ef93f52deafc  libphobos/libdruntime/rt/profilegc.d
! 1e50d613ef2c1ba6637c9f9dcc750d49  libphobos/libdruntime/rt/sections.d
! f6e3b55cca95e54705af45642c8759a3  libphobos/libdruntime/rt/tlsgc.d
! 730eec8db3cabdb78559e31f556377c3  libphobos/libdruntime/rt/util/typeinfo.d
  b44590c842b754fede38a9a70a5b2d53  libphobos/libdruntime/rt/util/utility.d
  98e21634a122597ed7abb6150c41cdbf  libphobos/m4/autoconf.m4
  cbef578492ab132e253c07ad83e6ee8a  libphobos/m4/druntime.m4
  2157f801b8e7e6a834559bcfe402c105  libphobos/m4/druntime/cpu.m4
  85906ebe53a95f2ccaa626b006ea0256  libphobos/m4/druntime/libraries.m4
! 5bcc0c9b5219a91f2eceeccc74630397  libphobos/m4/druntime/os.m4
  be2340569194e9c072c40fc94eab3483  libphobos/m4/gcc_support.m4
  c49ab40607849fa623787878420e7207  libphobos/m4/gdc.m4
  458abf211dc60540bf28a9257d4bd4e5  libphobos/m4/libtool.m4
+ b3025f8fcdacfcfd19b2f680771e0d5b  libphobos/scripts/.gitignore
+ 37d828e4dc5e0e309f9361189adc4eb9  libphobos/scripts/README
+ 03e0053018eb305b5a04cba7e401918c  libphobos/scripts/gen_druntime_sources.d
+ 37831246a7b8e5f71727b7a713352035  libphobos/scripts/gen_phobos_sources.d
+ 483b5aeff7dae9fe9839ad556013fb2b  libphobos/scripts/tests_extractor.d
  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
! 1049df949c6428776dc4ff960db42911  libphobos/src/etc/c/odbc/odbc64.d
! 51c85e7b3c77cd41ed251ec276ddb44f  libphobos/src/etc/c/odbc/package.d
! 7987187f09caf3e449fe8bfec9da4766  libphobos/src/etc/c/odbc/sql.d
! 68a56e23cce81c7be7348a5a770d1c55  libphobos/src/etc/c/odbc/sqlext.d
! 2aadec66531303905996a4cc4f8e6022  libphobos/src/etc/c/odbc/sqltypes.d
! af47372314d40b7e06fa4d38102fabb9  libphobos/src/etc/c/odbc/sqlucode.d
! 931c194ed998341ff80fd023dffed184  libphobos/src/etc/c/sqlite3.d
  7b80323c83065d7a653fce9728ebac50  libphobos/src/etc/c/zlib.d
  a39d2aad74f3f5fe083a190052cd9c31  libphobos/src/index.dd
  3a1ad66c3c47609c90c1f4d9cf8ddca2  libphobos/src/libgphobos.spec.in
! 0cdefe4e8043166cd0339c34b314777f  libphobos/src/std/algorithm/comparison.d
  694c41f4d2a56ffa1cea9387144617a7  libphobos/src/std/algorithm/internal.d
! f3882f6d14e4cd3f0dc79d9a3b4a54e6  libphobos/src/std/algorithm/iteration.d
! 46f68e46c1723e74daf59de7c3fcb33d  libphobos/src/std/algorithm/mutation.d
  3f649d64367da82fd22630117d39a560  libphobos/src/std/algorithm/package.d
! b6fe2af1aa91cdf69b5d1429eac4faf0  libphobos/src/std/algorithm/searching.d
! 0168970ef3ddd4482a1113ab62927465  libphobos/src/std/algorithm/setops.d
! c089a9994eed9a6f284bcecab22792e8  libphobos/src/std/algorithm/sorting.d
! 62e38c28a4b5080469bebe517ff56026  libphobos/src/std/array.d
  48d84292d39b7ff9bc2e13b8fa55c40c  libphobos/src/std/ascii.d
! 4343438cc03cd4133da56302010ceb07  libphobos/src/std/base64.d
! 2ed00320c4f6fe0bf39ad5cb882922b8  libphobos/src/std/bigint.d
! 0bc946de2143058018a539da33b0b774  libphobos/src/std/bitmanip.d
! d39b906087da34c3c097a9d293bf5278  libphobos/src/std/checkedint.d
  5c954cc53846cbfcfdab57ef4fcb6abc  libphobos/src/std/compiler.d
! 374506485b6de9f0b3b3b60a86be2947  libphobos/src/std/complex.d
! 075117d1c2173b99d010a1aef0b24927  libphobos/src/std/concurrency.d
  055473876e85cd377596e2eb86de9b41  libphobos/src/std/container/array.d
  b2899537b7218e7ff3c84509f244f1e3  libphobos/src/std/container/binaryheap.d
! 21f786eb5ba0ba4d7458c50bfe9c56ce  libphobos/src/std/container/dlist.d
! 65aae32a5b3a4a7f3e4e38bfe613eb94  libphobos/src/std/container/package.d
! 12b72228f182905b6e53e94c7215d55a  libphobos/src/std/container/rbtree.d
! 8c76a4701d3d87cb96d456a7267f5fa5  libphobos/src/std/container/slist.d
! 867341eefe22ccbb576dd75fd0283f0c  libphobos/src/std/container/util.d
! fdb5e62dd278889c019d19bf6225f170  libphobos/src/std/conv.d
! 169872ce9cf21699f0ef882327c045d9  libphobos/src/std/csv.d
! d42a5e6078c30b46feaf1a69835845ed  libphobos/src/std/datetime/date.d
! 18ad046c5d9ef5b4e1008f8a1e5c53ba  libphobos/src/std/datetime/interval.d
  e7bc223bf781f9daca7e4f191059f339  libphobos/src/std/datetime/package.d
! 2a0cd347d2cf782c312bf3eb59614d24  libphobos/src/std/datetime/stopwatch.d
! b521a12d5b5cbdfbe6e42a755d0f2f63  libphobos/src/std/datetime/systime.d
! 31234619e842e8ac5b65a4894601946c  libphobos/src/std/datetime/timezone.d
  221da1b10eb5da893eb97e28d5de3171  libphobos/src/std/demangle.d
  9074ecdf1c11c2074e412fd65bc86e53  libphobos/src/std/digest/crc.d
  d6b59ab3bb8a093b58e1c0dfb19b800e  libphobos/src/std/digest/hmac.d
  b47dbe3911d24e7ed5b66df2f0605ccb  libphobos/src/std/digest/md.d
  9aeb4b406d2d1f4056548c297e4e2f94  libphobos/src/std/digest/murmurhash.d
! 85ce5ae2e0d618bb94616d25761aef0b  libphobos/src/std/digest/package.d
  4a611bd9d6b92c30cfac32edfd614b54  libphobos/src/std/digest/ripemd.d
  140459aad8321d6a9b0c6e380d62ebed  libphobos/src/std/digest/sha.d
  cdc3d0431aa2e54b40e0570c9a848b27  libphobos/src/std/encoding.d
! 40bd5132c4f9aa29a50b0c785523791f  libphobos/src/std/exception.d
  c6b20fb62f7a0f07789137e4e07c65e6  libphobos/src/std/experimental/allocator/building_blocks/affix_allocator.d
  f5a9a6e6207580b72ba6df2195748c52  libphobos/src/std/experimental/allocator/building_blocks/aligned_block_list.d
! 9edf73cd032f7b469607ae2753d13b39  libphobos/src/std/experimental/allocator/building_blocks/allocator_list.d
  54937f37e3907116b80036449560c873  libphobos/src/std/experimental/allocator/building_blocks/ascending_page_allocator.d
  81c04e6daf295821dbdc8654dbcb970e  libphobos/src/std/experimental/allocator/building_blocks/bitmapped_block.d
  aaab7cd4d84a361d433bb44d4301c0af  libphobos/src/std/experimental/allocator/building_blocks/bucketizer.d
*************** dec0d094addeefa439e83569f2c74cce  libpho
*** 122051,122066 ****
  0d50c008cf3de079b8e5ef089f66b3b9  libphobos/src/std/experimental/allocator/building_blocks/free_tree.d
  1f286a74564243215a5618419314de37  libphobos/src/std/experimental/allocator/building_blocks/kernighan_ritchie.d
  52b04093760e06f9eae5cf5a73ae094c  libphobos/src/std/experimental/allocator/building_blocks/null_allocator.d
! 31812fc04ba5290600354280c2e1b276  libphobos/src/std/experimental/allocator/building_blocks/package.d
  e1f1ef2268cab16fb9a11654338cbb3c  libphobos/src/std/experimental/allocator/building_blocks/quantizer.d
! 406b3b1e889ce3c90c08e3b240287b26  libphobos/src/std/experimental/allocator/building_blocks/region.d
  b746c292389ecbe3217b416ec621331f  libphobos/src/std/experimental/allocator/building_blocks/scoped_allocator.d
  6fe076faf1a642577ab57e35a170846c  libphobos/src/std/experimental/allocator/building_blocks/segregator.d
! 72893e0bcb4753e434e315fbc37a8f96  libphobos/src/std/experimental/allocator/building_blocks/stats_collector.d
! e1443558a43a07fd0c77eca1c96a57b3  libphobos/src/std/experimental/allocator/common.d
  f39a9f5fa9bfdc9d8679091918adb41a  libphobos/src/std/experimental/allocator/gc_allocator.d
! 524b84b483f90e37e4c13a7458562373  libphobos/src/std/experimental/allocator/mallocator.d
! 1f302837e4f8c4355c52fcababcc23a1  libphobos/src/std/experimental/allocator/mmap_allocator.d
  234f5924ff3da5c9ec2bc4b030399795  libphobos/src/std/experimental/allocator/package.d
  95d3cda8eeb16d5098af629850dc17a2  libphobos/src/std/experimental/allocator/showcase.d
  d4a442037642d3549358dcee57652703  libphobos/src/std/experimental/allocator/typed.d
--- 130261,130276 ----
  0d50c008cf3de079b8e5ef089f66b3b9  libphobos/src/std/experimental/allocator/building_blocks/free_tree.d
  1f286a74564243215a5618419314de37  libphobos/src/std/experimental/allocator/building_blocks/kernighan_ritchie.d
  52b04093760e06f9eae5cf5a73ae094c  libphobos/src/std/experimental/allocator/building_blocks/null_allocator.d
! a163de86df71f23bd36c9b16fd87eda4  libphobos/src/std/experimental/allocator/building_blocks/package.d
  e1f1ef2268cab16fb9a11654338cbb3c  libphobos/src/std/experimental/allocator/building_blocks/quantizer.d
! 4766aada8d862013b10d79da66ce7f73  libphobos/src/std/experimental/allocator/building_blocks/region.d
  b746c292389ecbe3217b416ec621331f  libphobos/src/std/experimental/allocator/building_blocks/scoped_allocator.d
  6fe076faf1a642577ab57e35a170846c  libphobos/src/std/experimental/allocator/building_blocks/segregator.d
! cbd3688f5fd94f184fc92151c14e5dd9  libphobos/src/std/experimental/allocator/building_blocks/stats_collector.d
! d100248c00847c5c9f54243ebf4ba757  libphobos/src/std/experimental/allocator/common.d
  f39a9f5fa9bfdc9d8679091918adb41a  libphobos/src/std/experimental/allocator/gc_allocator.d
! 7b0928c319cdcbd65e54f735ba1a1296  libphobos/src/std/experimental/allocator/mallocator.d
! fe48c98a07e4341757788c70666ae999  libphobos/src/std/experimental/allocator/mmap_allocator.d
  234f5924ff3da5c9ec2bc4b030399795  libphobos/src/std/experimental/allocator/package.d
  95d3cda8eeb16d5098af629850dc17a2  libphobos/src/std/experimental/allocator/showcase.d
  d4a442037642d3549358dcee57652703  libphobos/src/std/experimental/allocator/typed.d
*************** f5600abfe1adcb27ff69f41acaab893b  libpho
*** 122071,122235 ****
  a6638776c1ae6dbc988632be56630654  libphobos/src/std/experimental/logger/nulllogger.d
  1d604e68182f77dfbe797dc01e78c297  libphobos/src/std/experimental/logger/package.d
  768b30d13593aba9e2715a7d868d763e  libphobos/src/std/experimental/note.md
! a6652c322adcb03eacd73d3b3e5cbccd  libphobos/src/std/file.d
! 976211597fb5df3c8e4d76a7165b02b4  libphobos/src/std/format/internal/floats.d
! 2d56c99084de17c03489845dd80ed3e8  libphobos/src/std/format/internal/read.d
! 2e01a84ef8bf1a9bdc977c1f351c0507  libphobos/src/std/format/internal/write.d
! 847801358d0ec1715dff5e3322f5f2a0  libphobos/src/std/format/package.d
! 073c9c82a5b5d074c708278ae3fbc051  libphobos/src/std/format/read.d
! 354de99a99f6a44d81c3e6a59d9ab694  libphobos/src/std/format/spec.d
! 178d675ce3c764789f9e8df0b7d2e27b  libphobos/src/std/format/write.d
! 82b84d013507bfe1df3a7698c768ac95  libphobos/src/std/functional.d
! 2938fbfcd3766978e04fb5d0e49f4fa2  libphobos/src/std/getopt.d
! 11957193b5878bfe6d07d39ff0f92c65  libphobos/src/std/int128.d
  8bc9fa8deafb0e80277b86268d55fa53  libphobos/src/std/internal/attributes.d
  4fc3dee264a23e6b241d6b1e77fc8a4c  libphobos/src/std/internal/cstring.d
! def4283a7fd5328efa5c796fe3d08687  libphobos/src/std/internal/math/biguintcore.d
  d3a41b19b71afaad9507ea2b7e63baa1  libphobos/src/std/internal/math/biguintnoasm.d
  8163acdb919296a99cd241f472263b56  libphobos/src/std/internal/math/errorfunction.d
  c85341045951a020b04a441a621bdfc3  libphobos/src/std/internal/math/gammafunction.d
  f25b12bd0896d34a7a63eeccbb71ddd1  libphobos/src/std/internal/memory.d
  b8a0549fa22a82b03b350b02592236a5  libphobos/src/std/internal/scopebuffer.d
! 0e5cac523b09a65e2fca9738dc08194d  libphobos/src/std/internal/test/dummyrange.d
! 8c74ab50895aaf9b04b114888ade41d8  libphobos/src/std/internal/test/range.d
  9d403089f5dfdab0c5fd3b765e0e5e07  libphobos/src/std/internal/test/uda.d
! 2785e71fec656b49a8c7c665e80c8556  libphobos/src/std/internal/unicode_comp.d
! a241c282cddf2e540a3f6ec2b88cbcfb  libphobos/src/std/internal/unicode_decomp.d
! 4eaa836318c02313f4c8be01c7483653  libphobos/src/std/internal/unicode_grapheme.d
! 3843dc0ff5434dcb9394240df32fcf7a  libphobos/src/std/internal/unicode_norm.d
! ac0b4166967b6dd819ac399549114615  libphobos/src/std/internal/unicode_tables.d
  1032174c14b8ed750d026d9e33c0f28d  libphobos/src/std/internal/windows/advapi32.d
! 977c8cb29f21a77968e0dfa01c1490f1  libphobos/src/std/json.d
! 780d576c658cd16c7975be52861dc2e3  libphobos/src/std/logger/core.d
! b0d9cdbf5d70f64ddded4a5121c713ec  libphobos/src/std/logger/filelogger.d
  23505f8d8333bbaab46e684fa3fb3e96  libphobos/src/std/logger/multilogger.d
  9c02c2498ffb731d11c25464e692a100  libphobos/src/std/logger/nulllogger.d
! 69eef3f1b948c22c779c79538ac05be4  libphobos/src/std/logger/package.d
! af29243d3e3bd97e16d14e4f1a58a501  libphobos/src/std/math/algebraic.d
  3cee3970cfe6bcde0d4b6c640b9aae04  libphobos/src/std/math/constants.d
! 500d3ac2883785702dd9c58bc42e3f35  libphobos/src/std/math/exponential.d
! 54ccd43663b5e6283b154a35ec5d3e01  libphobos/src/std/math/hardware.d
! 08c5e8d9445965530815cbd600156aa0  libphobos/src/std/math/operations.d
  ffd91c7d720a05cc92297bfa00f7150d  libphobos/src/std/math/package.d
  88694133c2ab2068b6250dbc41d3cb48  libphobos/src/std/math/remainder.d
! 6580ac141a96217548a775ef479d307a  libphobos/src/std/math/rounding.d
! 084ca4a2c5533593101163c36ab0501f  libphobos/src/std/math/traits.d
  bb6782b1bf2a9aaca15560a63e26a8c7  libphobos/src/std/math/trigonometry.d
  7fa986b6825d8e7e1d7602c9fae96379  libphobos/src/std/mathspecial.d
  3fcc7e62612171e7a4e18b8c0053b366  libphobos/src/std/meta.d
  5204762dc86326245efda7ef0935652e  libphobos/src/std/mmfile.d
! 324cfce8206dca065f4e47477d434cdd  libphobos/src/std/net/curl.d
! c8b18b34f9ff72e666e93c31469c4e16  libphobos/src/std/net/isemail.d
! c208ca0e4a58c2a3affa9af9f75babb4  libphobos/src/std/numeric.d
! eac913027614b686f9bf7fb8438c2e21  libphobos/src/std/outbuffer.d
  f0acf0010f4a57e539c9ce4e9d0f5755  libphobos/src/std/package.d
! 3d54ba1f0614c3b254af66b1eca2baf9  libphobos/src/std/parallelism.d
! 057e4a4c98d8baa927a558db9bf978ee  libphobos/src/std/path.d
! 6db47952f7cb0b7744925e62b37222ba  libphobos/src/std/process.d
! 9e3ece745db94141913113cbef55309e  libphobos/src/std/random.d
! c5cd4fcc3bcab89448fcfebb69227b4d  libphobos/src/std/range/interfaces.d
! 222e444cb6208cedac0f7c972859639b  libphobos/src/std/range/package.d
! b8c3f6213d2eb81fb5e36b608482a923  libphobos/src/std/range/primitives.d
! 3a226e10429f635b7ee2c4ab63c866cc  libphobos/src/std/regex/internal/backtracking.d
  44883eb43e246b6b244c1ff51ebf2822  libphobos/src/std/regex/internal/generator.d
! 5ce8cc5e47d819f159eed7f025fce734  libphobos/src/std/regex/internal/ir.d
  12c8dadaebb3d1657fa4dce91b6111d4  libphobos/src/std/regex/internal/kickstart.d
! 3e005a024d66ef29d04fc0abfdf36ec4  libphobos/src/std/regex/internal/parser.d
  ac0a9a606c95c4c1632599630d77cac4  libphobos/src/std/regex/internal/tests.d
  25f5ce0273dbf7fcc617aeb2137a0e7d  libphobos/src/std/regex/internal/tests2.d
! 14cb36bc3700d8a23494855192c0a666  libphobos/src/std/regex/internal/thompson.d
! 47cd81b1a0dc2adfe8e9da5a8ef5b63d  libphobos/src/std/regex/package.d
  86f746e01b6b2e0e808ade6f5dd08299  libphobos/src/std/signals.d
! 1893b4778036875546ea908f7ba063b7  libphobos/src/std/socket.d
  65fa3f6f1125566206c3a4ac3e8adfe3  libphobos/src/std/stdint.d
! e6e16482f18ebfe56b7271654bb1f366  libphobos/src/std/stdio.d
! b18b68b6b03d53ae603467bb670b5f76  libphobos/src/std/string.d
! ac6e9374fad99b8c7b2915f5fb6352a7  libphobos/src/std/sumtype.d
  fe0985971c6aad99d6e99e55e8705f09  libphobos/src/std/system.d
! af7b78b412f998a53a42c724c1c6b8aa  libphobos/src/std/traits.d
! 13cb16d41c02ecdf5dab9cc69aab0231  libphobos/src/std/typecons.d
  8592c7afe7a1de32c25d04e3fa0f2bca  libphobos/src/std/typetuple.d
! 30921375e2f8270111d077550b288075  libphobos/src/std/uni/package.d
  c2ff190df1f5298cbcc40494150b1d48  libphobos/src/std/uri.d
! 02e3af15d679c4ea40489186f14e9889  libphobos/src/std/utf.d
! 3a666d69aed573579bcbef378706e687  libphobos/src/std/uuid.d
! 06feadc915c94a6adc156e6db485e105  libphobos/src/std/variant.d
  fb2675bdcc716cb272a59ab642e3b40b  libphobos/src/std/windows/charset.d
  dd46a2873cda836b4a607e35ac2a3835  libphobos/src/std/windows/registry.d
! 2d02a363c97346a106c63e9894a52b65  libphobos/src/std/windows/syserror.d
  87f26ae34d849b4750d292a331ff26aa  libphobos/src/std/zip.d
  4e04d19560e31a1b8b799dd43fcd51f8  libphobos/src/std/zlib.d
! 3f809a672d932120f0ea2cc14efd1f05  libphobos/testsuite/Makefile.am
! a13be93a99fb4f3ac1cd895ac34c9305  libphobos/testsuite/Makefile.in
! 26d4dbdecfd9edab4a140b504a68c410  libphobos/testsuite/config/default.exp
! bcfb2568d144d8de04fa2053b76a2374  libphobos/testsuite/lib/libphobos-dg.exp
! ff5b895c0150bf7105d229cddb071575  libphobos/testsuite/lib/libphobos.exp
! 6eadc264766c9b3b79822cf2f6cf7ac6  libphobos/testsuite/libphobos.aa/aa.exp
! f242f91c78645f5850aa6ef68c87ebab  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.allocations/allocations.exp
  7dfee0831ce08cfd971056dee5ce8519  libphobos/testsuite/libphobos.allocations/overflow_from_existing.d
  39b50d25dc11230fd4d61a9d7c8cf7a0  libphobos/testsuite/libphobos.allocations/overflow_from_zero.d
  94c17250a195da16fb246ef8e28d3477  libphobos/testsuite/libphobos.allocations/tls_gc_integration.d
! bdaae3221bc8758c33f56709d7db187f  libphobos/testsuite/libphobos.betterc/betterc.exp
  62bfbf82ba7ca2ce9c06e31251b5f47c  libphobos/testsuite/libphobos.betterc/test18828.d
  2ffa89e25b800dccc9be63ee4390ba9c  libphobos/testsuite/libphobos.betterc/test19416.d
  30aa08f7286c05e97e1c42ab62639574  libphobos/testsuite/libphobos.betterc/test19421.d
  6054c54ba4f38d82f841383c51fbad63  libphobos/testsuite/libphobos.betterc/test19561.d
  8722fd8cd1adf0c7b508b9ce02328eb8  libphobos/testsuite/libphobos.betterc/test19924.d
! dff431eaf273342c672aaf2c74ab92a6  libphobos/testsuite/libphobos.betterc/test19933.d
  ac1556b23f971f5009959fb07f8166bf  libphobos/testsuite/libphobos.betterc/test20088.d
  3589455e03e693d6f583052b791e5f4f  libphobos/testsuite/libphobos.betterc/test20613.d
  a3cb48ed7c054296fe69ea02aaa283ef  libphobos/testsuite/libphobos.betterc/test22336.d
! 9568c12ad345ce998afc52fd4471fd6b  libphobos/testsuite/libphobos.config/config.exp
  0e3c934dac31e4a869413c3f3969211e  libphobos/testsuite/libphobos.config/test19433.d
  4c5e592032e7cbd4c033dc9af9201db0  libphobos/testsuite/libphobos.config/test20459.d
! 4cda878bfbdcad844a4124b36664f4a8  libphobos/testsuite/libphobos.config/test22523.d
! ad37222e975e5a8ba11cd880dd9e086e  libphobos/testsuite/libphobos.cycles/cycles.exp
  1d8fc1ccfee07e211685dad723c7c5ef  libphobos/testsuite/libphobos.cycles/mod1.d
  504ac65b81c5b13426dbccb387e5ea96  libphobos/testsuite/libphobos.cycles/mod2.d
  8fd2e066de9b173803c23766ec268bc6  libphobos/testsuite/libphobos.cycles/mod3.d
! 5eb2fa105c72138ef50f17293fb67263  libphobos/testsuite/libphobos.druntime/druntime.exp
! 55fb86e02e95c6d008e1fe6f0376a781  libphobos/testsuite/libphobos.druntime_shared/druntime_shared.exp
! 1b0ad49679c9a06598cfe65b1f98773d  libphobos/testsuite/libphobos.exceptions/assert_fail.d
  0853067452a85c65ff3629b907628f4d  libphobos/testsuite/libphobos.exceptions/catch_in_finally.d
! 53adf2e14495ca10a85a32022b69fa86  libphobos/testsuite/libphobos.exceptions/chain.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.exceptions/exceptions.exp
! d595be7092b8db6d94bfdad2f3582157  libphobos/testsuite/libphobos.exceptions/future_message.d
! 17d3680e349b715f2c8ae4cd23ab5dc5  libphobos/testsuite/libphobos.exceptions/invalid_memory_operation.d
! f20a3bb9bc82bda410377ab87e9dfa75  libphobos/testsuite/libphobos.exceptions/line_trace.d
! 5204c2c6007dd17d2eef187695f8c022  libphobos/testsuite/libphobos.exceptions/long_backtrace_trunc.d
  70b76ebf678e92adfb039cba075728ee  libphobos/testsuite/libphobos.exceptions/message_with_null.d
  fb328b5f9662d2fd858f69079b72370b  libphobos/testsuite/libphobos.exceptions/refcounted.d
  debfe4beaf54e77109e0c996fbdc45a7  libphobos/testsuite/libphobos.exceptions/rt_trap_exceptions.d
  d0b0d163e054a715940a0b8c19fc84a2  libphobos/testsuite/libphobos.exceptions/rt_trap_exceptions_drt.d
! bf5b834c84dce34c411728d08e740501  libphobos/testsuite/libphobos.exceptions/static_dtor.d
  31f5d626ceb6296159b2ba424ee49c32  libphobos/testsuite/libphobos.exceptions/stderr_msg.d
  1f17216ed3cb74970b34edf1fe76623d  libphobos/testsuite/libphobos.exceptions/unittest_assert.d
  68b182a855dd5d72a6c0afd27961c698  libphobos/testsuite/libphobos.exceptions/unknown_gc.d
  b6ebfcdaf3a8630eae6d2fea0200d718  libphobos/testsuite/libphobos.gc/attributes.d
! 5becf076c0fa4681b6900d0d305d77c1  libphobos/testsuite/libphobos.gc/forkgc.d
  df3ff72b86d93171f71ffc809fb04d95  libphobos/testsuite/libphobos.gc/forkgc2.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.gc/gc.exp
  3c24ec9d3e8f2608213d6879c1ee28bd  libphobos/testsuite/libphobos.gc/issue22843.d
  0cf45bd3741c0d5bed6c685e04bca300  libphobos/testsuite/libphobos.gc/nocollect.d
! 96e067519bb8d41abce482b6595333aa  libphobos/testsuite/libphobos.gc/precisegc.d
! 84728e02159c56717e2c7bbd57b0b7ea  libphobos/testsuite/libphobos.gc/recoverfree.d
  72c768e90bab4bb63d0d95c0f1d95f23  libphobos/testsuite/libphobos.gc/sigmaskgc.d
  1c1428f89e3640506d3d1b88c74aa9cd  libphobos/testsuite/libphobos.gc/startbackgc.d
! 6eadc264766c9b3b79822cf2f6cf7ac6  libphobos/testsuite/libphobos.hash/hash.exp
! 09b51557521e7370eafd85d775bc966a  libphobos/testsuite/libphobos.hash/test_hash.d
  d132751bd41e111dc5e97a83ea5cfe55  libphobos/testsuite/libphobos.imports/bug18193.d
! 4098fb94f12708ed89afab26768ac923  libphobos/testsuite/libphobos.imports/imports.exp
! 153b71c5896b0bfb4056c4c457d01283  libphobos/testsuite/libphobos.init_fini/custom_gc.d
! f4d2d6c778ba2ba530934efab69ec1ee  libphobos/testsuite/libphobos.init_fini/init_fini.exp
  b6bbf47234f6bdb61c628cae44fb04f9  libphobos/testsuite/libphobos.init_fini/runtime_args.d
  6e0f2e6611c4974eb8f6ad893e3243c9  libphobos/testsuite/libphobos.init_fini/test18996.d
! 6cf643d2e05d4806362cf62c56562e5e  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! 1bddd0113715cd335794274893717e1c  libphobos/testsuite/libphobos.phobos/phobos.exp
! 03d5b2f7d644749fc7714531a3f8427a  libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
  dc9924675718952b484eadd2d458553a  libphobos/testsuite/libphobos.shared/finalize.d
  a0025a5aec846b3bd54d13311de970b6  libphobos/testsuite/libphobos.shared/host.c
  568552f233800fa4522238fe4c907fb7  libphobos/testsuite/libphobos.shared/lib.d
--- 130281,130553 ----
  a6638776c1ae6dbc988632be56630654  libphobos/src/std/experimental/logger/nulllogger.d
  1d604e68182f77dfbe797dc01e78c297  libphobos/src/std/experimental/logger/package.d
  768b30d13593aba9e2715a7d868d763e  libphobos/src/std/experimental/note.md
! f4f06bbf7f086f3a622bfd7a11d749b6  libphobos/src/std/file.d
! ed69de5978237426e7bd4ad3c1739056  libphobos/src/std/format/internal/floats.d
! 23800e940269aaa2d047e31bdf1ba455  libphobos/src/std/format/internal/read.d
! 9927d3a6be00705545f393e93230439d  libphobos/src/std/format/internal/write.d
! 0b7939a8b36bc1ad7a1b39456a0f2f27  libphobos/src/std/format/package.d
! 8b55a2d263807b24820e6e80a2b9cd8a  libphobos/src/std/format/read.d
! 5ca6bf9438eb9b805e437decc0d26464  libphobos/src/std/format/spec.d
! 8aa87fd1333783a5a0eb34f8800e975d  libphobos/src/std/format/write.d
! e845921f2f8d4b89236548cef4365ba1  libphobos/src/std/functional.d
! c3a442458c258aada0ae9f6d97903e3d  libphobos/src/std/getopt.d
! 8069d722b3e53ce8fcea3acb84948ee2  libphobos/src/std/int128.d
  8bc9fa8deafb0e80277b86268d55fa53  libphobos/src/std/internal/attributes.d
  4fc3dee264a23e6b241d6b1e77fc8a4c  libphobos/src/std/internal/cstring.d
! 419502817b164d347a77473f6a6511dc  libphobos/src/std/internal/math/biguintcore.d
  d3a41b19b71afaad9507ea2b7e63baa1  libphobos/src/std/internal/math/biguintnoasm.d
  8163acdb919296a99cd241f472263b56  libphobos/src/std/internal/math/errorfunction.d
  c85341045951a020b04a441a621bdfc3  libphobos/src/std/internal/math/gammafunction.d
  f25b12bd0896d34a7a63eeccbb71ddd1  libphobos/src/std/internal/memory.d
  b8a0549fa22a82b03b350b02592236a5  libphobos/src/std/internal/scopebuffer.d
! 9d04fec81b9805b4cb23cb8c29ade815  libphobos/src/std/internal/test/dummyrange.d
! 03e83c05cb658326cc0437a70ecfc70b  libphobos/src/std/internal/test/range.d
! 54fe5a81d6c5ad4ef9cd0c8dab69c738  libphobos/src/std/internal/test/sumtype_example_overloads.d
  9d403089f5dfdab0c5fd3b765e0e5e07  libphobos/src/std/internal/test/uda.d
! 80b516164fcc539294e100086040a537  libphobos/src/std/internal/unicode_comp.d
! a81af891d911d203ff8431d130fe121d  libphobos/src/std/internal/unicode_decomp.d
! 86942b7bbf6a8b6c6fad904f336a90ef  libphobos/src/std/internal/unicode_grapheme.d
! 9e85724192d45f8482c5ade6cb407520  libphobos/src/std/internal/unicode_norm.d
! 716c1de066b906a19b3a81fa44d7d30d  libphobos/src/std/internal/unicode_tables.d
  1032174c14b8ed750d026d9e33c0f28d  libphobos/src/std/internal/windows/advapi32.d
! 8a68605320e57337881ecc17242eb7b0  libphobos/src/std/internal/windows/bcrypt.d
! 3646a1f94af8490ad26786f6f2c890b6  libphobos/src/std/json.d
! 929f2919fe4ac3248380ab2ac45c96d3  libphobos/src/std/logger/core.d
! 8b49c5a777ce35ba21edc2815b1a42a3  libphobos/src/std/logger/filelogger.d
  23505f8d8333bbaab46e684fa3fb3e96  libphobos/src/std/logger/multilogger.d
  9c02c2498ffb731d11c25464e692a100  libphobos/src/std/logger/nulllogger.d
! a3782d3b8580d60ebaf89a70af7f468e  libphobos/src/std/logger/package.d
! 05514505beeff1f6c3fb3f6357c279de  libphobos/src/std/math/algebraic.d
  3cee3970cfe6bcde0d4b6c640b9aae04  libphobos/src/std/math/constants.d
! c9f23c32532d09c3ef25b7da6865ccd4  libphobos/src/std/math/exponential.d
! e0c33ea9d408897be690f484f22beb74  libphobos/src/std/math/hardware.d
! 7ed460e316b0032b3afd54cbfaf4c2b9  libphobos/src/std/math/operations.d
  ffd91c7d720a05cc92297bfa00f7150d  libphobos/src/std/math/package.d
  88694133c2ab2068b6250dbc41d3cb48  libphobos/src/std/math/remainder.d
! 7d5f60b5115b54dbb62902f440eff6bc  libphobos/src/std/math/rounding.d
! 55d099fefe01ba1713d89a88e07604f7  libphobos/src/std/math/traits.d
  bb6782b1bf2a9aaca15560a63e26a8c7  libphobos/src/std/math/trigonometry.d
  7fa986b6825d8e7e1d7602c9fae96379  libphobos/src/std/mathspecial.d
  3fcc7e62612171e7a4e18b8c0053b366  libphobos/src/std/meta.d
  5204762dc86326245efda7ef0935652e  libphobos/src/std/mmfile.d
! e2e3e4448ee7a4a6949d9ee7cd374079  libphobos/src/std/net/curl.d
! 8f6dbfa8c1df10b8e6ef116eb55bbe40  libphobos/src/std/net/isemail.d
! 76d53c466a4130d76567b2f16a44955c  libphobos/src/std/numeric.d
! 9dc136f20a441f69fb85806ebd8d9971  libphobos/src/std/outbuffer.d
  f0acf0010f4a57e539c9ce4e9d0f5755  libphobos/src/std/package.d
! fb97c6706a8ec3eeff9a08855dbbc191  libphobos/src/std/parallelism.d
! e3dcbcb47e44c146bfe964c32e3405b7  libphobos/src/std/path.d
! 9f451091ebf983a7ebbc657afdd2033c  libphobos/src/std/process.d
! e50ec2f3b092d1ec03bb8d935f41fa85  libphobos/src/std/random.d
! 9aefa68666e3b2384142dd9837b4d2af  libphobos/src/std/range/interfaces.d
! 99450dfbc22ce9a2140c1d6ef5039620  libphobos/src/std/range/package.d
! ae94d782479273704d5fc6db0ddc4610  libphobos/src/std/range/primitives.d
! 4ca1f589b5a11920b25b46baeec8699a  libphobos/src/std/regex/internal/backtracking.d
  44883eb43e246b6b244c1ff51ebf2822  libphobos/src/std/regex/internal/generator.d
! a8c8d07b044b66c29d55c325992d2109  libphobos/src/std/regex/internal/ir.d
  12c8dadaebb3d1657fa4dce91b6111d4  libphobos/src/std/regex/internal/kickstart.d
! a431b3ed608107d318d493eed1a76852  libphobos/src/std/regex/internal/parser.d
  ac0a9a606c95c4c1632599630d77cac4  libphobos/src/std/regex/internal/tests.d
  25f5ce0273dbf7fcc617aeb2137a0e7d  libphobos/src/std/regex/internal/tests2.d
! 4c2dab023ef251a6ae3c3e03c1831614  libphobos/src/std/regex/internal/thompson.d
! 9d5ca0299241cbf15f55dba32d14fedc  libphobos/src/std/regex/package.d
  86f746e01b6b2e0e808ade6f5dd08299  libphobos/src/std/signals.d
! f1e5d9632198af0ed951b9298581129e  libphobos/src/std/socket.d
  65fa3f6f1125566206c3a4ac3e8adfe3  libphobos/src/std/stdint.d
! ba9b15fc7c0dacd4465cd8ac35bb1737  libphobos/src/std/stdio.d
! 5254adcca3d606e13ed19d6f8818f72f  libphobos/src/std/string.d
! 32b57e96d1127a6c8920a61eaa7fc6b1  libphobos/src/std/sumtype.d
  fe0985971c6aad99d6e99e55e8705f09  libphobos/src/std/system.d
! e1e754bd47a185fd7c5ce7857f2e9a8d  libphobos/src/std/traits.d
! f861aea339d5b71adcd4d085659a8018  libphobos/src/std/typecons.d
  8592c7afe7a1de32c25d04e3fa0f2bca  libphobos/src/std/typetuple.d
! 88046575f79aa525d347b8652fd2b9ba  libphobos/src/std/uni/package.d
  c2ff190df1f5298cbcc40494150b1d48  libphobos/src/std/uri.d
! 6925d1c023c389c0e8f51b64ef03a335  libphobos/src/std/utf.d
! d53dba64586b623edf2ae379fc36eb4c  libphobos/src/std/uuid.d
! 1245f559d26070a7dccc857105863503  libphobos/src/std/variant.d
  fb2675bdcc716cb272a59ab642e3b40b  libphobos/src/std/windows/charset.d
  dd46a2873cda836b4a607e35ac2a3835  libphobos/src/std/windows/registry.d
! c1a103b661be58e2c1a62e8aab13650e  libphobos/src/std/windows/syserror.d
  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
! b567031c21b7b8f9e8fedf7281a7f5f4  libphobos/testsuite/lib/libphobos-dg.exp
! 1999f40e93f2b276e103ac8dfdac5a06  libphobos/testsuite/lib/libphobos.exp
! 01be04287e1609c3b4b0921de1e8849c  libphobos/testsuite/libphobos.aa/aa.exp
! bdf16dafaa6a389d60b373bd2cb66abd  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
! 7905529910769ffe30261452b503ce3a  libphobos/testsuite/libphobos.allocations/allocations.exp
  7dfee0831ce08cfd971056dee5ce8519  libphobos/testsuite/libphobos.allocations/overflow_from_existing.d
  39b50d25dc11230fd4d61a9d7c8cf7a0  libphobos/testsuite/libphobos.allocations/overflow_from_zero.d
  94c17250a195da16fb246ef8e28d3477  libphobos/testsuite/libphobos.allocations/tls_gc_integration.d
! 8375148d039ff1ccffa059f985f4ea25  libphobos/testsuite/libphobos.betterc/betterc.exp
  62bfbf82ba7ca2ce9c06e31251b5f47c  libphobos/testsuite/libphobos.betterc/test18828.d
  2ffa89e25b800dccc9be63ee4390ba9c  libphobos/testsuite/libphobos.betterc/test19416.d
  30aa08f7286c05e97e1c42ab62639574  libphobos/testsuite/libphobos.betterc/test19421.d
  6054c54ba4f38d82f841383c51fbad63  libphobos/testsuite/libphobos.betterc/test19561.d
  8722fd8cd1adf0c7b508b9ce02328eb8  libphobos/testsuite/libphobos.betterc/test19924.d
! 7ce6bc9635b7071dd9bb42e2f7de7797  libphobos/testsuite/libphobos.betterc/test19933.d
  ac1556b23f971f5009959fb07f8166bf  libphobos/testsuite/libphobos.betterc/test20088.d
  3589455e03e693d6f583052b791e5f4f  libphobos/testsuite/libphobos.betterc/test20613.d
  a3cb48ed7c054296fe69ea02aaa283ef  libphobos/testsuite/libphobos.betterc/test22336.d
! ad2ed16a982ae335c5c7d0d4f43f70fa  libphobos/testsuite/libphobos.config/config.exp
  0e3c934dac31e4a869413c3f3969211e  libphobos/testsuite/libphobos.config/test19433.d
  4c5e592032e7cbd4c033dc9af9201db0  libphobos/testsuite/libphobos.config/test20459.d
! 3bdd36220c427991adad210c7b17af1b  libphobos/testsuite/libphobos.config/test22523.d
! 6f475abcd40dc6b2a98159c97053b368  libphobos/testsuite/libphobos.cycles/cycles.exp
  1d8fc1ccfee07e211685dad723c7c5ef  libphobos/testsuite/libphobos.cycles/mod1.d
  504ac65b81c5b13426dbccb387e5ea96  libphobos/testsuite/libphobos.cycles/mod2.d
  8fd2e066de9b173803c23766ec268bc6  libphobos/testsuite/libphobos.cycles/mod3.d
! 11ea8d6b488f46e6626eb811cd3d0485  libphobos/testsuite/libphobos.druntime/shared/druntime-shared.exp
! ed3ba4e18c0f2e660d08f8cb4681f9b4  libphobos/testsuite/libphobos.druntime/static/druntime-static.exp
! 5af926573cedf91c8805d0d2bc894112  libphobos/testsuite/libphobos.exceptions/assert_fail.d
  0853067452a85c65ff3629b907628f4d  libphobos/testsuite/libphobos.exceptions/catch_in_finally.d
! 456d7f5f2e09c23d6855dbe35e9f1877  libphobos/testsuite/libphobos.exceptions/chain.d
! 7905529910769ffe30261452b503ce3a  libphobos/testsuite/libphobos.exceptions/exceptions.exp
! aa269053b0b9c50f4d8236d0e92938d3  libphobos/testsuite/libphobos.exceptions/future_message.d
! 14fedde7d651a602fa9ec7a3e7856465  libphobos/testsuite/libphobos.exceptions/invalid_memory_operation.d
! 36e474e2a58b39c4b1db96a75bcfa1a6  libphobos/testsuite/libphobos.exceptions/line_trace.d
! 72643804bae793130f964c57c027baa1  libphobos/testsuite/libphobos.exceptions/long_backtrace_trunc.d
  70b76ebf678e92adfb039cba075728ee  libphobos/testsuite/libphobos.exceptions/message_with_null.d
  fb328b5f9662d2fd858f69079b72370b  libphobos/testsuite/libphobos.exceptions/refcounted.d
  debfe4beaf54e77109e0c996fbdc45a7  libphobos/testsuite/libphobos.exceptions/rt_trap_exceptions.d
  d0b0d163e054a715940a0b8c19fc84a2  libphobos/testsuite/libphobos.exceptions/rt_trap_exceptions_drt.d
! 0ef4e65f4bf4204ebda653684aaadcee  libphobos/testsuite/libphobos.exceptions/static_dtor.d
  31f5d626ceb6296159b2ba424ee49c32  libphobos/testsuite/libphobos.exceptions/stderr_msg.d
  1f17216ed3cb74970b34edf1fe76623d  libphobos/testsuite/libphobos.exceptions/unittest_assert.d
  68b182a855dd5d72a6c0afd27961c698  libphobos/testsuite/libphobos.exceptions/unknown_gc.d
  b6ebfcdaf3a8630eae6d2fea0200d718  libphobos/testsuite/libphobos.gc/attributes.d
! 27d5233a2f2f88a9c968da002a89f585  libphobos/testsuite/libphobos.gc/forkgc.d
  df3ff72b86d93171f71ffc809fb04d95  libphobos/testsuite/libphobos.gc/forkgc2.d
! 29f83053d2d179e397c77a65c6c2c38a  libphobos/testsuite/libphobos.gc/gc.exp
  3c24ec9d3e8f2608213d6879c1ee28bd  libphobos/testsuite/libphobos.gc/issue22843.d
  0cf45bd3741c0d5bed6c685e04bca300  libphobos/testsuite/libphobos.gc/nocollect.d
! f3b4f38bb94c3a23f33873b97c120854  libphobos/testsuite/libphobos.gc/precisegc.d
! 9785a7bb8ff8125991948d73e53552c6  libphobos/testsuite/libphobos.gc/recoverfree.d
  72c768e90bab4bb63d0d95c0f1d95f23  libphobos/testsuite/libphobos.gc/sigmaskgc.d
  1c1428f89e3640506d3d1b88c74aa9cd  libphobos/testsuite/libphobos.gc/startbackgc.d
! 01be04287e1609c3b4b0921de1e8849c  libphobos/testsuite/libphobos.hash/hash.exp
! d06bb08dcefe11cf56550d766ac037d9  libphobos/testsuite/libphobos.hash/test_hash.d
  d132751bd41e111dc5e97a83ea5cfe55  libphobos/testsuite/libphobos.imports/bug18193.d
! b1ee715c0030892b99e56375ec451042  libphobos/testsuite/libphobos.imports/imports.exp
! 3711270b62cf23653c36c22efc9cfdea  libphobos/testsuite/libphobos.init_fini/custom_gc.d
! 5149693bf0389060d53a0a64f6487774  libphobos/testsuite/libphobos.init_fini/init_fini.exp
  b6bbf47234f6bdb61c628cae44fb04f9  libphobos/testsuite/libphobos.init_fini/runtime_args.d
  6e0f2e6611c4974eb8f6ad893e3243c9  libphobos/testsuite/libphobos.init_fini/test18996.d
! 407f2a9b3adf7a263a2acd0b8ca96b1f  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
! 29f83053d2d179e397c77a65c6c2c38a  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! b4fc367e4a45dc0c74e6bf559fc5c9a4  libphobos/testsuite/libphobos.phobos/phobos.exp
! 567534721b13883b21f27399da6edbcf  libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp
! 19c2963c8de25df4bfa389b3c1595197  libphobos/testsuite/libphobos.phobos/static/phobos-static.exp
! 9457c3033983f7107b2b4ce7a29b6c01  libphobos/testsuite/libphobos.phobos/std_algorithm_comparison.d
! ebb196e2e3b71655f8ade028b9fe1a9a  libphobos/testsuite/libphobos.phobos/std_algorithm_iteration.d
! 964525d11b241c47bff9f80bf037a2e4  libphobos/testsuite/libphobos.phobos/std_algorithm_mutation.d
! 0d93242005551a8a30fbd36d3f6c0894  libphobos/testsuite/libphobos.phobos/std_algorithm_searching.d
! 739069e43b7215c10ab31870e6682d87  libphobos/testsuite/libphobos.phobos/std_algorithm_setops.d
! 224275f7b71f0e3d325c2a7d52e7b610  libphobos/testsuite/libphobos.phobos/std_algorithm_sorting.d
! 75848b5fb13ffd2e554773f220af48e3  libphobos/testsuite/libphobos.phobos/std_array.d
! 39d20870c220dd89cc7fe508c0153207  libphobos/testsuite/libphobos.phobos/std_ascii.d
! cff31f6fa748129365528215d94d7379  libphobos/testsuite/libphobos.phobos/std_base64.d
! 72290f38edcf25f9b11a8ad13361eb68  libphobos/testsuite/libphobos.phobos/std_bigint.d
! 1317db81b6126f130519b1fae06325c7  libphobos/testsuite/libphobos.phobos/std_bitmanip.d
! 326c54828b903ac80cbaa246abc3a05b  libphobos/testsuite/libphobos.phobos/std_checkedint.d
! a9984a38e82de9a5d423eaec017c0d12  libphobos/testsuite/libphobos.phobos/std_complex.d
! af6d95b0917584d5cc7ca851853f2d29  libphobos/testsuite/libphobos.phobos/std_concurrency.d
! b2b0504b1929da94c57e645de01fb6a1  libphobos/testsuite/libphobos.phobos/std_container_array.d
! 2249255bde5330c02aec8d092ea8db93  libphobos/testsuite/libphobos.phobos/std_container_binaryheap.d
! 2ae3fcc268fe3a73ea7d9ef79205f081  libphobos/testsuite/libphobos.phobos/std_container_dlist.d
! f99000f3420b27b5dd842f295bc38404  libphobos/testsuite/libphobos.phobos/std_container_rbtree.d
! 616c453ee21bb593b602fb976afec23a  libphobos/testsuite/libphobos.phobos/std_container_slist.d
! 982e3710513f015afd387cf92965c177  libphobos/testsuite/libphobos.phobos/std_container_util.d
! 9bef8ac02f53db569ee9cd0f80d4fabf  libphobos/testsuite/libphobos.phobos/std_conv.d
! cece42183db36163b19670796f1b09f2  libphobos/testsuite/libphobos.phobos/std_csv.d
! 3382e61e843922eb0de2067988d826c3  libphobos/testsuite/libphobos.phobos/std_datetime_date.d
! 831b3f8b7714662cb5678654010bf40e  libphobos/testsuite/libphobos.phobos/std_datetime_interval.d
! 4dbda9382772eec46a8c49847cb03380  libphobos/testsuite/libphobos.phobos/std_datetime_package.d
! c372e234d9ef7ea010a5c917beef0f7d  libphobos/testsuite/libphobos.phobos/std_datetime_stopwatch.d
! d92750e5c461d5b306db83fee61fb4dc  libphobos/testsuite/libphobos.phobos/std_datetime_systime.d
! c4d41092a2eedb4af5f32b550ff6b67c  libphobos/testsuite/libphobos.phobos/std_datetime_timezone.d
! 65536dc9def108a039ac9f5d0f9c5cf0  libphobos/testsuite/libphobos.phobos/std_demangle.d
! b88c131cda22b33bf56cbb06f2f1fff6  libphobos/testsuite/libphobos.phobos/std_digest_crc.d
! 5be9e55819ac5a8700f1469de9dd0ae5  libphobos/testsuite/libphobos.phobos/std_digest_hmac.d
! d7cc318430c12046053ed5c02100af7c  libphobos/testsuite/libphobos.phobos/std_digest_md.d
! f8de627caf6f29e53c0ecbd43980b788  libphobos/testsuite/libphobos.phobos/std_digest_murmurhash.d
! 53db54483e47c17985708f7d5aa994b2  libphobos/testsuite/libphobos.phobos/std_digest_package.d
! 7006bbbb6bd795f61bec4bde75bfec56  libphobos/testsuite/libphobos.phobos/std_digest_ripemd.d
! 7188e4d848185c72ed3cf3e1d74e18a1  libphobos/testsuite/libphobos.phobos/std_digest_sha.d
! cc7cb3161677c9ba3acde67a700d4221  libphobos/testsuite/libphobos.phobos/std_encoding.d
! f2ff64260b80720939bd7d765de95f47  libphobos/testsuite/libphobos.phobos/std_exception.d
! e212acca0dd9677bc86f672f54490cee  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_affix_allocator.d
! a2797a5b703c288cd345b294d7569b82  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_aligned_block_list.d
! fe45aef83557a8710663d483edba3c89  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_allocator_list.d
! f7f19f4e1ad9b5ff8d499df46e6b663f  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_ascending_page_allocator.d
! 294740f453eeadcce92e54aab49bc169  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_bitmapped_block.d
! 5195604155ef7b01e27c476a636e5271  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_bucketizer.d
! 8f016d77fae4dde9fb525207c707ede8  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_fallback_allocator.d
! 78fe2219f90c582cb028b822b491fdd6  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_free_list.d
! 2807febb82e84fa51371eec147efd81a  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_kernighan_ritchie.d
! e18fd5c3b7c8d804684b36c07ace6389  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_quantizer.d
! 603371a1a54e0e99385a20220f4fa50b  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_region.d
! 5ecb40a0612dc4c7698da61eb1e967ad  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_scoped_allocator.d
! 560cdbe1f688cfdc28e7cefdf98fc8f5  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_segregator.d
! 505300e9d5e1c9ee98dc804b8a15d34e  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_building_blocks_stats_collector.d
! 72a237916bb65821e08b4b4652093421  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_common.d
! 4e394f5e77dd7e9852033b90271b5cfc  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_gc_allocator.d
! e0b9b19b51910b3215a7f77fa9a0198f  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_mallocator.d
! a62bf32d07594aea8a1bfa1e66713809  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_package.d
! 726e2003a1151cdc1d7601ab66c02425  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_showcase.d
! cc39d3ef427ad17c18b0b090380f468f  libphobos/testsuite/libphobos.phobos/std_experimental_allocator_typed.d
! b1bf3767744ddabadc133319bce72521  libphobos/testsuite/libphobos.phobos/std_file.d
! 4e64b69988d45acf1a23f0ad37d9eb6d  libphobos/testsuite/libphobos.phobos/std_format_package.d
! 601f121ad22ad448f30f5650f7203d04  libphobos/testsuite/libphobos.phobos/std_format_read.d
! 5fcb3638f5197554b545e9ef774cae8b  libphobos/testsuite/libphobos.phobos/std_format_spec.d
! a30ca08ac2d47f19017e5b0e2073f1a1  libphobos/testsuite/libphobos.phobos/std_format_write.d
! c7e999b4de045ce46e29f60d9323c617  libphobos/testsuite/libphobos.phobos/std_functional.d
! 0912cc91a11498eee40c2cab27854560  libphobos/testsuite/libphobos.phobos/std_getopt.d
! 72fc28e9e34b3f29a43e46cef0281ba2  libphobos/testsuite/libphobos.phobos/std_int128.d
! 083c3369d264d66ad45b029480243a45  libphobos/testsuite/libphobos.phobos/std_internal_cstring.d
! 9bb1eaeba35d63a0e39feacd25997087  libphobos/testsuite/libphobos.phobos/std_internal_scopebuffer.d
! 77ab8ba3ce0bbe90e848a17803fef367  libphobos/testsuite/libphobos.phobos/std_json.d
! f02acd5f96b0d4feee95b886374e276a  libphobos/testsuite/libphobos.phobos/std_logger_core.d
! b47671d19f9e9f0dc33623986917d86b  libphobos/testsuite/libphobos.phobos/std_logger_nulllogger.d
! bf465ee882dbe74f6513a01b11b1ccac  libphobos/testsuite/libphobos.phobos/std_math_algebraic.d
! 37f6ee631b899e7e35efeb1b132ee38d  libphobos/testsuite/libphobos.phobos/std_math_exponential.d
! ea59a9682839a6d0bcb1bc6d718e2f4d  libphobos/testsuite/libphobos.phobos/std_math_hardware.d
! d31a62f0a309aa40e9f73a27158fab81  libphobos/testsuite/libphobos.phobos/std_math_operations.d
! 6a506ab6e69cd8acf79d118417729ef3  libphobos/testsuite/libphobos.phobos/std_math_remainder.d
! 74829372f70ed71b3c8c63184832e70f  libphobos/testsuite/libphobos.phobos/std_math_rounding.d
! 3c329e7ca6ca9cc50ffcbc1e1e829ef0  libphobos/testsuite/libphobos.phobos/std_math_traits.d
! 9e1784df3aab41ea867a4eb556f5ac38  libphobos/testsuite/libphobos.phobos/std_math_trigonometry.d
! 4946a336af70f7d4159acd9c473f20cf  libphobos/testsuite/libphobos.phobos/std_meta.d
! cec4cfd06338b26660b897cacc096e61  libphobos/testsuite/libphobos.phobos/std_mmfile.d
! d109a2497bf240b82689f962d3c8a909  libphobos/testsuite/libphobos.phobos/std_numeric.d
! dda3b23ec9702aebd7b2df5039bc2911  libphobos/testsuite/libphobos.phobos/std_outbuffer.d
! db0e4e237789d00e2f7a12d0f5d4af38  libphobos/testsuite/libphobos.phobos/std_package.d
! 23c346485ff9b516a1aaaa9729980e53  libphobos/testsuite/libphobos.phobos/std_parallelism.d
! 018d70aef09f9ac891c8934c08f214a6  libphobos/testsuite/libphobos.phobos/std_path.d
! 67eb46f1adf7ceeee58caf4888467c01  libphobos/testsuite/libphobos.phobos/std_random.d
! a3b94e42e71fdee1de0c3d2a9a554177  libphobos/testsuite/libphobos.phobos/std_range_interfaces.d
! 4e74fe29f266a262b06f220939551ffc  libphobos/testsuite/libphobos.phobos/std_range_package.d
! 867bab35ba75b2f9556f9e6af894a3ca  libphobos/testsuite/libphobos.phobos/std_range_primitives.d
! c385ea34f5c56c2e4337050f418c27a6  libphobos/testsuite/libphobos.phobos/std_regex_package.d
! cb5e26d683843031b5a563f593286cbc  libphobos/testsuite/libphobos.phobos/std_signals.d
! 67a8c1f64f55c6b600263e114af403d0  libphobos/testsuite/libphobos.phobos/std_socket.d
! fa1eea26cad9bca1297d421a3aaf1de7  libphobos/testsuite/libphobos.phobos/std_stdio.d
! fa121f0dcadbe337008e89396cccd32e  libphobos/testsuite/libphobos.phobos/std_string.d
! 14a4d8c0e2fa16da7eca5e1cc36f3b5c  libphobos/testsuite/libphobos.phobos/std_sumtype.d
! 8dbac28abee4bc685c7e9c8b5acd74ed  libphobos/testsuite/libphobos.phobos/std_traits.d
! 25a24387e654e7f6f919eb3c0368b847  libphobos/testsuite/libphobos.phobos/std_typecons.d
! 495b175f3262ffa0506c790f4a16467c  libphobos/testsuite/libphobos.phobos/std_typetuple.d
! e2e85a9531e4f0fc8df45f05a58cbf28  libphobos/testsuite/libphobos.phobos/std_uni_package.d
! 8008905b85f1d7353b90b000c8d31f50  libphobos/testsuite/libphobos.phobos/std_uri.d
! 372b19edf2342985111f88b1609a10c5  libphobos/testsuite/libphobos.phobos/std_utf.d
! c0e5f3a3d8397ff85f57ddf86f6657cc  libphobos/testsuite/libphobos.phobos/std_uuid.d
! acb1edf673d00211ab19a508b2af272b  libphobos/testsuite/libphobos.phobos/std_variant.d
! 8a91f32701f84ca3789714542722c0bc  libphobos/testsuite/libphobos.phobos/std_zlib.d
  dc9924675718952b484eadd2d458553a  libphobos/testsuite/libphobos.shared/finalize.d
  a0025a5aec846b3bd54d13311de970b6  libphobos/testsuite/libphobos.shared/host.c
  568552f233800fa4522238fe4c907fb7  libphobos/testsuite/libphobos.shared/lib.d
*************** df4c464d966dbbdce054e9d59018c866  libpho
*** 122247,122281 ****
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! db23d67e304fef662cbb022876fb5b39  libphobos/testsuite/libphobos.shared/shared.exp
! d76a16e148ca6be28bb070949f541b19  libphobos/testsuite/libphobos.thread/external_threads.d
! 2d54a30ddb78b9f0a38814a319846450  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  3e309c288aff9749089ac68af091756f  libphobos/testsuite/libphobos.thread/join_detach.d
  42d85aa4daa1f572a3dd573c6b4a7b79  libphobos/testsuite/libphobos.thread/test_import.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.thread/thread.exp
! d57071e219935d7e85956a6a6cffdee8  libphobos/testsuite/libphobos.thread/tlsgc_sections.d
! 2ae1787b8a29d9e252614d3d8c1c2e1e  libphobos/testsuite/libphobos.thread/tlsstack.d
  78f60a158455ee76966df72c07eb01b2  libphobos/testsuite/libphobos.traits/all_satisfy.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.traits/traits.exp
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  022137c81bdd2f5b3a98cba92fdad9a7  libphobos/testsuite/libphobos.typeinfo/enum_.d
  42891afbce3f3a03e17ba0e0e4b6dadd  libphobos/testsuite/libphobos.typeinfo/isbaseof.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
! f4d2d6c778ba2ba530934efab69ec1ee  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
! d3ca33295a3a7d8dce98defab11dd626  libphobos/testsuite/libphobos.unittest/customhandler.d
! e8c6c7ce87398e5528d094d325ad0d64  libphobos/testsuite/libphobos.unittest/unittest.exp
! 3f7137aeb14bd1df731b34e20c45ef12  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 5bc3f75099ef349e1c8bcf6124a2daa2  libquadmath/ChangeLog
! 435cab15ca3343eca0a698d93f37535a  libquadmath/Makefile.am
! bc41a993c2663da681a20a57613ef4cb  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
  1a1d1b5a61d685d544d98ec2e4b86d5a  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! b0fb0357e8376eb193456514d3a58cee  libquadmath/configure
! 5bc83c23c51ac78bff9270eabbe4264b  libquadmath/configure.ac
! ed98481a16edb9fb5819a58ec678b2f5  libquadmath/libquadmath.info
! f22088f045dba6416a9a844acf7238b0  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
--- 130565,130599 ----
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! f523c4847ee9bfb5ab4fead0c1b3560f  libphobos/testsuite/libphobos.shared/shared.exp
! 97e03d8104ae4e9dceccbc2133bfa4bc  libphobos/testsuite/libphobos.thread/external_threads.d
! 8d802a80fc3114c071c927e9c19be7b2  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  3e309c288aff9749089ac68af091756f  libphobos/testsuite/libphobos.thread/join_detach.d
  42d85aa4daa1f572a3dd573c6b4a7b79  libphobos/testsuite/libphobos.thread/test_import.d
! 7905529910769ffe30261452b503ce3a  libphobos/testsuite/libphobos.thread/thread.exp
! d35d1a38771a8836bff39c99e1781024  libphobos/testsuite/libphobos.thread/tlsgc_sections.d
! 8d26c6b6e8005750767428ff2a1357cf  libphobos/testsuite/libphobos.thread/tlsstack.d
  78f60a158455ee76966df72c07eb01b2  libphobos/testsuite/libphobos.traits/all_satisfy.d
! 29f83053d2d179e397c77a65c6c2c38a  libphobos/testsuite/libphobos.traits/traits.exp
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  022137c81bdd2f5b3a98cba92fdad9a7  libphobos/testsuite/libphobos.typeinfo/enum_.d
  42891afbce3f3a03e17ba0e0e4b6dadd  libphobos/testsuite/libphobos.typeinfo/isbaseof.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
! 5149693bf0389060d53a0a64f6487774  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
! b394cf23a598d3271d7bd5c679c7febd  libphobos/testsuite/libphobos.unittest/customhandler.d
! fc53a03ee850127a74ad6bd174963745  libphobos/testsuite/libphobos.unittest/unittest.exp
! a8de1f183b347afc269d237f3fd14b61  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 67c5352784af29f3e9ad6d7623cc76c6  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
! cf87ca21888f3d7976f185e6627ce43a  libquadmath/libquadmath.info
! 93e59a240cab0611f80fc5d34139c86a  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
*************** afdc9f496616fa82df7f0fe745c94715  libqua
*** 122314,122320 ****
  a79c69584ad8588015499b21237806e0  libquadmath/math/erfq.c
  33862b23bd6abcc57d8827fdc4186def  libquadmath/math/exp2q.c
  1548eb0dd3f9e6732da4a7fe975e29b8  libquadmath/math/expm1q.c
! e5817a6317e56b7de35ef78dd3f9aedc  libquadmath/math/expq.c
  0aeade4d60bd21701f9e751a4cea9acc  libquadmath/math/expq_table.h
  64ad2fc9b59a6759c6b929e0ac39ab85  libquadmath/math/fabsq.c
  b70fca866938cc819de3e4006b0c4b63  libquadmath/math/fdimq.c
--- 130632,130638 ----
  a79c69584ad8588015499b21237806e0  libquadmath/math/erfq.c
  33862b23bd6abcc57d8827fdc4186def  libquadmath/math/exp2q.c
  1548eb0dd3f9e6732da4a7fe975e29b8  libquadmath/math/expm1q.c
! cc79ca17cc585ecf1d9971ad99e91bad  libquadmath/math/expq.c
  0aeade4d60bd21701f9e751a4cea9acc  libquadmath/math/expq_table.h
  64ad2fc9b59a6759c6b929e0ac39ab85  libquadmath/math/fabsq.c
  b70fca866938cc819de3e4006b0c4b63  libquadmath/math/fdimq.c
*************** b16071854b0ba44a8f5e8cc68d57736a  libqua
*** 122365,122371 ****
  3ae505f55493f603f06df805c94e5218  libquadmath/math/sinhq.c
  ad657d32c64f4effd3a5d2250166ab7d  libquadmath/math/sinq.c
  d958e9e1df84ea84c5591ce130a7a7f6  libquadmath/math/sinq_kernel.c
! a15bd19f47dc594b0bbc03674c8848c7  libquadmath/math/sqrtq.c
  e6f79fda2700217261ed0304e78655b2  libquadmath/math/tanhq.c
  15a7d86ab44ef64e95dcb7eaaf880380  libquadmath/math/tanq.c
  2b435591dee49c47f54e15477b5a80a1  libquadmath/math/tanq_kernel.c
--- 130683,130689 ----
  3ae505f55493f603f06df805c94e5218  libquadmath/math/sinhq.c
  ad657d32c64f4effd3a5d2250166ab7d  libquadmath/math/sinq.c
  d958e9e1df84ea84c5591ce130a7a7f6  libquadmath/math/sinq_kernel.c
! 2e81d5c87802c204418cfbf959123d21  libquadmath/math/sqrtq.c
  e6f79fda2700217261ed0304e78655b2  libquadmath/math/tanhq.c
  15a7d86ab44ef64e95dcb7eaaf880380  libquadmath/math/tanq.c
  2b435591dee49c47f54e15477b5a80a1  libquadmath/math/tanq_kernel.c
*************** ba4d91797ef96f23e046d45eca89325b  libqua
*** 122377,122383 ****
  b780c27cded3b15283a89a244f0df38c  libquadmath/printf/_itoa.h
  f845f38cb4881746998a6efcc94bbb81  libquadmath/printf/_itowa.h
  5078fdf17a9a7864feafdaa1597c2f22  libquadmath/printf/add_n.c
! 3d51a619daed9fc6326b8f0b467f4ef5  libquadmath/printf/addmul_1.c
  8f2d24fed65ee13a776666f527aad84f  libquadmath/printf/cmp.c
  5d2e5d13e0f139603301b7f51ee529a1  libquadmath/printf/divrem.c
  9d27ac1d9a027dbe00e9679b7adba64c  libquadmath/printf/flt1282mpn.c
--- 130695,130701 ----
  b780c27cded3b15283a89a244f0df38c  libquadmath/printf/_itoa.h
  f845f38cb4881746998a6efcc94bbb81  libquadmath/printf/_itowa.h
  5078fdf17a9a7864feafdaa1597c2f22  libquadmath/printf/add_n.c
! 830ada07834fb2904d424f179163d4ac  libquadmath/printf/addmul_1.c
  8f2d24fed65ee13a776666f527aad84f  libquadmath/printf/cmp.c
  5d2e5d13e0f139603301b7f51ee529a1  libquadmath/printf/divrem.c
  9d27ac1d9a027dbe00e9679b7adba64c  libquadmath/printf/flt1282mpn.c
*************** d8a11a64ba7f3914e2eeaaaf9a274f75  libqua
*** 122386,122392 ****
  f82ab3e76785fdb6583fcc500defddc5  libquadmath/printf/gmp-impl.h
  5b9229a164e299bcff62c7696af4df94  libquadmath/printf/lshift.c
  dccfb932e7a4ec8c89731a6c7a7a9b82  libquadmath/printf/mul.c
! 1cfc3bffd2c94cb06e55b49841dc8f7f  libquadmath/printf/mul_1.c
  f387f032d813cca837e7cf5477e2f6d5  libquadmath/printf/mul_n.c
  8f689c2eecdac18dd2ba0d5492bfcd5d  libquadmath/printf/printf_fp.c
  9bc3ff4862b4fe31d0be46abc64a8bc4  libquadmath/printf/printf_fphex.c
--- 130704,130710 ----
  f82ab3e76785fdb6583fcc500defddc5  libquadmath/printf/gmp-impl.h
  5b9229a164e299bcff62c7696af4df94  libquadmath/printf/lshift.c
  dccfb932e7a4ec8c89731a6c7a7a9b82  libquadmath/printf/mul.c
! 00ace3262180f7a3f9351c1d0988ff1c  libquadmath/printf/mul_1.c
  f387f032d813cca837e7cf5477e2f6d5  libquadmath/printf/mul_n.c
  8f689c2eecdac18dd2ba0d5492bfcd5d  libquadmath/printf/printf_fp.c
  9bc3ff4862b4fe31d0be46abc64a8bc4  libquadmath/printf/printf_fphex.c
*************** e1960c6cccb78a5a2d60bdfe428c9d1b  libqua
*** 122394,122400 ****
  793f681760a8266fc2adf2810355df6a  libquadmath/printf/quadmath-printf.h
  4d100ac07c5c1c4033ef4b9f60c96605  libquadmath/printf/rshift.c
  1002d1058eca992119c86f1ab7b21907  libquadmath/printf/sub_n.c
! d2588a7f4e04e453e8926777100a5490  libquadmath/printf/submul_1.c
  09d64fc2bb44de8641f6fb46b932ed17  libquadmath/quadmath-imp.h
  50709da39971589779199b3433120e3e  libquadmath/quadmath-rounding-mode.h
  5d8430b45b7108d7bc3b0258d2ae154a  libquadmath/quadmath.h
--- 130712,130718 ----
  793f681760a8266fc2adf2810355df6a  libquadmath/printf/quadmath-printf.h
  4d100ac07c5c1c4033ef4b9f60c96605  libquadmath/printf/rshift.c
  1002d1058eca992119c86f1ab7b21907  libquadmath/printf/sub_n.c
! d55d3032fe03ed7eb285f9cb3b574e33  libquadmath/printf/submul_1.c
  09d64fc2bb44de8641f6fb46b932ed17  libquadmath/quadmath-imp.h
  50709da39971589779199b3433120e3e  libquadmath/quadmath-rounding-mode.h
  5d8430b45b7108d7bc3b0258d2ae154a  libquadmath/quadmath.h
*************** a21481cfd0382ef41901608376f2161c  libqua
*** 122403,122512 ****
  329998e9aacc0c36e45e0fc39f4848e1  libquadmath/sfp-machine.h
  e766022f8615b72cbc38335d262e9d3d  libquadmath/strtod/grouping.h
  a73fdec6746eaad8ccdc8e8403aac562  libquadmath/strtod/mpn2flt128.c
! e0bd9b8669e44ec6010f92da1d5188ad  libquadmath/strtod/strtod_l.c
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! da926314c76faf1f48f8a6f6fde55a98  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
! 894b596d6d81ab8f2fb0708e8bc83e83  libsanitizer/LOCAL_PATCHES
! ad450ad61ef8f46f168e5940c7f4d609  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
  11560950ba3e49bd41fc955a158263e6  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
  9157157843ddc468aad53af489d0645c  libsanitizer/aclocal.m4
! ee7db8f1f5f1fa1881cfe690bea3e06c  libsanitizer/asan/Makefile.am
! e57056f90517b4eceecafe0e457465d1  libsanitizer/asan/Makefile.in
  d07e95f3fda97a66cd02b78623fb2c53  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
! 0c4eef5fd1be176150aee3017f69989b  libsanitizer/asan/asan_allocator.cpp
! f8d158c51268c146b0c06d6fd4368174  libsanitizer/asan/asan_allocator.h
  67d7800157dbc7b40cc249055cc0b614  libsanitizer/asan/asan_debugging.cpp
! 9898ab4e54da2711978431393a8c5cb2  libsanitizer/asan/asan_descriptions.cpp
! 7b358db7fce5735bf54b9bd9ee5fea48  libsanitizer/asan/asan_descriptions.h
! 8195996429b99b4718714908f756718b  libsanitizer/asan/asan_errors.cpp
! a1aeee6e6e82a0d112fc625c8ae61331  libsanitizer/asan/asan_errors.h
  a551a1d2e1dd9007e7859fbe1c2142a8  libsanitizer/asan/asan_fake_stack.cpp
  a15f0895968debeada4576d3f50cd49f  libsanitizer/asan/asan_fake_stack.h
! 9aaecaf4a2d8dc7ab105857316357556  libsanitizer/asan/asan_flags.cpp
  62bf4dd74e13c5de98bece330fca0dae  libsanitizer/asan/asan_flags.h
  37604152159e9b0a148b7f9488ff5b51  libsanitizer/asan/asan_flags.inc
! ec768daab10de71351888f3fab66b944  libsanitizer/asan/asan_fuchsia.cpp
! 7eb9dda97aa276d622b438f85963ba18  libsanitizer/asan/asan_globals.cpp
! 6f0a3e5b544abc4a7e05109d94bc01f6  libsanitizer/asan/asan_globals_win.cpp
  70bdc70f05ca1bf6f615ea7609e3bf8c  libsanitizer/asan/asan_init_version.h
! 5488be5654605074a841906b075cf75b  libsanitizer/asan/asan_interceptors.cpp
! 27f9b2cf211646fdfa1f53193f82aa62  libsanitizer/asan/asan_interceptors.h
  6a6ab3d41155984bd4c7ab7a8a3ef654  libsanitizer/asan/asan_interceptors_memintrinsics.cpp
! 9c9f9e05b23ae036f1505e7824579c6d  libsanitizer/asan/asan_interceptors_memintrinsics.h
  47d1026d8b2923487aef9553f134bfe8  libsanitizer/asan/asan_interceptors_vfork.S
  1e7d255fa2c1933020b98cfd75b1d1e6  libsanitizer/asan/asan_interface.inc
  08eb391a8b97f054ee0255e42f76dd82  libsanitizer/asan/asan_interface_internal.h
! 55dd146ff8c31a59f55079315158bc3c  libsanitizer/asan/asan_internal.h
! 2ab2e7c29706837cd598bd40bd9f28c3  libsanitizer/asan/asan_linux.cpp
! d41d8cd98f00b204e9800998ecf8427e  libsanitizer/asan/asan_lock.h
! 7906a027df785061a8b3e56d1c96edcd  libsanitizer/asan/asan_mac.cpp
! 2ce3d9ca985c143e17d8e1d659b61e87  libsanitizer/asan/asan_malloc_linux.cpp
! 8312e851faaf5214b2ae3101af8f95b1  libsanitizer/asan/asan_malloc_mac.cpp
! 56ff7ffe167ead0e349f7b8b91bf134b  libsanitizer/asan/asan_malloc_win.cpp
! a3678c55a5b125584de0621e272ad188  libsanitizer/asan/asan_mapping.h
  30b2997bea78189e8a56bd135ede2a34  libsanitizer/asan/asan_mapping_sparc64.h
  71186b6e110dbb29131ad64b6604faf8  libsanitizer/asan/asan_memory_profile.cpp
! 0d0525aab44f125726588781faac86b7  libsanitizer/asan/asan_new_delete.cpp
! a70fe8121782ac235084779d26211414  libsanitizer/asan/asan_poisoning.cpp
  694cb52b66fd0f6d3f41d67429bfa1ba  libsanitizer/asan/asan_poisoning.h
! 7d2ff9c68e3723beec45e2db156ef557  libsanitizer/asan/asan_posix.cpp
! 72bdf1b7e38d574b81f7eda5e24a7341  libsanitizer/asan/asan_preinit.cpp
! 23f7337a787748e05b16643ac1acebdf  libsanitizer/asan/asan_premap_shadow.cpp
  a116a301835f4803dda6ba547a4efb13  libsanitizer/asan/asan_premap_shadow.h
! 54d6320af8f4cc74492f889138b7ad04  libsanitizer/asan/asan_report.cpp
! e1a5c24981c3ecf54a59c46afb177207  libsanitizer/asan/asan_report.h
! c5bc853c8f6a6c8c4b0a9fd778a30bfc  libsanitizer/asan/asan_rtl.cpp
  d28b754f660d002fcb71421b13dc895c  libsanitizer/asan/asan_rtl_static.cpp
! c83f0e6f4f485da0e0a39c1fa245f09d  libsanitizer/asan/asan_rtl_x86_64.S
  7a66ee99b1b671c738ca237415ef25b8  libsanitizer/asan/asan_scariness_score.h
  8072d65a81c5968f332de2a2db8778f5  libsanitizer/asan/asan_shadow_setup.cpp
  a9ee444b2c882f859206d5557c53796e  libsanitizer/asan/asan_stack.cpp
  2ff0bdf565589ed4b0b36ba24c542e25  libsanitizer/asan/asan_stack.h
  32d0551d66ab2b7e1b8cf0440aed0188  libsanitizer/asan/asan_stats.cpp
  89151303b3f73f562ecdcb3835396dee  libsanitizer/asan/asan_stats.h
! a2311345c440ff8eb171ae9fa30980b6  libsanitizer/asan/asan_suppressions.cpp
  8ab11db904fc944b69ba16601317c1c7  libsanitizer/asan/asan_suppressions.h
! 0a4e7e01a25cd8a6e7cda444f5ce332d  libsanitizer/asan/asan_thread.cpp
! d234a10e273021b9029f364c56e9bdf7  libsanitizer/asan/asan_thread.h
! a42ef7091192e9f689fabb5b4b3184c0  libsanitizer/asan/asan_win.cpp
! 008e2886a7d939dbd3c711f31a845a4c  libsanitizer/asan/asan_win_dll_thunk.cpp
! c38c4aad80d927b2557c5e1699d5ad04  libsanitizer/asan/asan_win_dynamic_runtime_thunk.cpp
! 92464876ef7c58cb739f8dbb05e2f3a9  libsanitizer/asan/asan_win_weak_interception.cpp
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
! e00043f7cff3822221ac73516f2ba1af  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
  37743cee23ef1c96f28a59dafcba2562  libsanitizer/configure
  4fb8fe43cd5510b08a3abc9a38bc4ea3  libsanitizer/configure.ac
  56772d73b7fdd0b7fdb1c25ed2202e65  libsanitizer/configure.tgt
! 67d732b22e0f89d44d33c1274b355326  libsanitizer/hwasan/Makefile.am
! 45187b6a718eed6a8aba76effd413df1  libsanitizer/hwasan/Makefile.in
! 445ab6ba3231ef20fd0b9abb852e90bb  libsanitizer/hwasan/hwasan.cpp
! 3a84e6cdb227e9e2dd4cbe2613993374  libsanitizer/hwasan/hwasan.h
! 23eb69fcaccc6cc73cbf49195734a469  libsanitizer/hwasan/hwasan_allocation_functions.cpp
! 3c053ac77fc9838eb5a5f7788dab697d  libsanitizer/hwasan/hwasan_allocator.cpp
  b315914d0329553c9658692b7254d3da  libsanitizer/hwasan/hwasan_allocator.h
! 5eba53ccfca0f0e26ee11bb0afcf998a  libsanitizer/hwasan/hwasan_checks.h
! 4cf3a55f32e00047bdea18be105fee25  libsanitizer/hwasan/hwasan_dynamic_shadow.cpp
  d2c53fada53bfee78b11f99e297aed7b  libsanitizer/hwasan/hwasan_dynamic_shadow.h
  9dfd44f3f73d7a5ff9183b8624869c27  libsanitizer/hwasan/hwasan_exceptions.cpp
  9750f099c8028db1b9c972cc7157280a  libsanitizer/hwasan/hwasan_flags.h
! a39d2381cea8d376c433c7fe8cfac72b  libsanitizer/hwasan/hwasan_flags.inc
  753ce92c601b47cf7a61b16b620865bb  libsanitizer/hwasan/hwasan_fuchsia.cpp
  20d20fc3b2ac6fb11e0a990d959c1a27  libsanitizer/hwasan/hwasan_globals.cpp
  e0f27a58c9d03369d2cbad572c5e99f4  libsanitizer/hwasan/hwasan_globals.h
! 4e86b7abc79bd9b49101e94749fcdc3c  libsanitizer/hwasan/hwasan_interceptors.cpp
  0ff1272e9d2ece4e771dfba1ecb0d538  libsanitizer/hwasan/hwasan_interceptors_vfork.S
! 04092e36180762712216c70e0ae3dec5  libsanitizer/hwasan/hwasan_interface_internal.h
! 11ee8c7aa827ff1a098fc93dbed6568b  libsanitizer/hwasan/hwasan_linux.cpp
  2ee3ae16d29b69720e9f2512908a45b5  libsanitizer/hwasan/hwasan_malloc_bisect.h
  4390a795bf11c5cb596462234bb81e09  libsanitizer/hwasan/hwasan_mapping.h
  70e3bc6498c0cfb6c675fda7a9b2bb10  libsanitizer/hwasan/hwasan_memintrinsics.cpp
--- 130721,130831 ----
  329998e9aacc0c36e45e0fc39f4848e1  libquadmath/sfp-machine.h
  e766022f8615b72cbc38335d262e9d3d  libquadmath/strtod/grouping.h
  a73fdec6746eaad8ccdc8e8403aac562  libquadmath/strtod/mpn2flt128.c
! 63b21fffce1e264f1d67357ee6457944  libquadmath/strtod/strtod_l.c
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! 045a4af24f0e97ab43105f48b49d8807  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
! 0e9e7ed9643d7f80cb3ec5a85a0a5233  libsanitizer/asan/asan_allocator.cpp
! 88608021ec8f5818112124d547f26b58  libsanitizer/asan/asan_allocator.h
  67d7800157dbc7b40cc249055cc0b614  libsanitizer/asan/asan_debugging.cpp
! b4b55d9289735f67683f0ba667449673  libsanitizer/asan/asan_descriptions.cpp
! 4b8ca0ce2211775f27225aa7694f671d  libsanitizer/asan/asan_descriptions.h
! b47db6725ad84b33aa879e1ad9adc4b9  libsanitizer/asan/asan_errors.cpp
! 0bc1a7566cf75121a39ccb07cb002ed5  libsanitizer/asan/asan_errors.h
  a551a1d2e1dd9007e7859fbe1c2142a8  libsanitizer/asan/asan_fake_stack.cpp
  a15f0895968debeada4576d3f50cd49f  libsanitizer/asan/asan_fake_stack.h
! 57760c802b7afb4e6e4bde9256d90899  libsanitizer/asan/asan_flags.cpp
  62bf4dd74e13c5de98bece330fca0dae  libsanitizer/asan/asan_flags.h
  37604152159e9b0a148b7f9488ff5b51  libsanitizer/asan/asan_flags.inc
! e73c27af53aea36cee643df17da9a406  libsanitizer/asan/asan_fuchsia.cpp
! be6eaef30dff75f718a87c86397c99e2  libsanitizer/asan/asan_globals.cpp
! b7ffd393031d20d605478b8457a018c7  libsanitizer/asan/asan_globals_win.cpp
  70bdc70f05ca1bf6f615ea7609e3bf8c  libsanitizer/asan/asan_init_version.h
! b4bb34d56bf3fe340fb0ca4a48e2d7c7  libsanitizer/asan/asan_interceptors.cpp
! 02996712bb908eea597a6f6b5210a28a  libsanitizer/asan/asan_interceptors.h
  6a6ab3d41155984bd4c7ab7a8a3ef654  libsanitizer/asan/asan_interceptors_memintrinsics.cpp
! 7ba71a70c4c17ea0f4e871dfff4ad59a  libsanitizer/asan/asan_interceptors_memintrinsics.h
  47d1026d8b2923487aef9553f134bfe8  libsanitizer/asan/asan_interceptors_vfork.S
  1e7d255fa2c1933020b98cfd75b1d1e6  libsanitizer/asan/asan_interface.inc
  08eb391a8b97f054ee0255e42f76dd82  libsanitizer/asan/asan_interface_internal.h
! eaa13188e4fbbd6220c2d7c78b1903cf  libsanitizer/asan/asan_internal.h
! 3e4d0d986b097bddd963d22596e163df  libsanitizer/asan/asan_linux.cpp
! 6abc2c335ae8b73464f5487f00575b69  libsanitizer/asan/asan_mac.cpp
! ddc9c80938e3ce9be9f41edc5c1d5f93  libsanitizer/asan/asan_malloc_linux.cpp
! 0ee3a5722bb42918f258a414f7b7aca1  libsanitizer/asan/asan_malloc_mac.cpp
! cc88f57a6afb9d070362be4cce503c0a  libsanitizer/asan/asan_malloc_win.cpp
! fa5272548138ecffb5872478a9e91b5e  libsanitizer/asan/asan_malloc_win_thunk.cpp
! fd00f6408101905225469957f90aa5de  libsanitizer/asan/asan_mapping.h
  30b2997bea78189e8a56bd135ede2a34  libsanitizer/asan/asan_mapping_sparc64.h
  71186b6e110dbb29131ad64b6604faf8  libsanitizer/asan/asan_memory_profile.cpp
! 5f212f5d60b6daf3fdf284910a1dba52  libsanitizer/asan/asan_new_delete.cpp
! b655b4da29065f138595f4f7631fba33  libsanitizer/asan/asan_poisoning.cpp
  694cb52b66fd0f6d3f41d67429bfa1ba  libsanitizer/asan/asan_poisoning.h
! e293eff907af7fb92387298e7969f380  libsanitizer/asan/asan_posix.cpp
! 5fc623355715dccd6edce041b1c257e6  libsanitizer/asan/asan_preinit.cpp
! 2dcbdfd71c0a6ab8273d7703aaec5bcb  libsanitizer/asan/asan_premap_shadow.cpp
  a116a301835f4803dda6ba547a4efb13  libsanitizer/asan/asan_premap_shadow.h
! cd71adefb70adf26d87061d104310a82  libsanitizer/asan/asan_report.cpp
! 79f0af80eb532c581070b6d432144cd6  libsanitizer/asan/asan_report.h
! 6f6d6ebc84e43ac5603c3aab74e26242  libsanitizer/asan/asan_rtl.cpp
  d28b754f660d002fcb71421b13dc895c  libsanitizer/asan/asan_rtl_static.cpp
! 9ce41550238a6796a363585ab8d13f73  libsanitizer/asan/asan_rtl_x86_64.S
  7a66ee99b1b671c738ca237415ef25b8  libsanitizer/asan/asan_scariness_score.h
  8072d65a81c5968f332de2a2db8778f5  libsanitizer/asan/asan_shadow_setup.cpp
  a9ee444b2c882f859206d5557c53796e  libsanitizer/asan/asan_stack.cpp
  2ff0bdf565589ed4b0b36ba24c542e25  libsanitizer/asan/asan_stack.h
  32d0551d66ab2b7e1b8cf0440aed0188  libsanitizer/asan/asan_stats.cpp
  89151303b3f73f562ecdcb3835396dee  libsanitizer/asan/asan_stats.h
! d6b033fd621ce9957b1647a3e4c31909  libsanitizer/asan/asan_suppressions.cpp
  8ab11db904fc944b69ba16601317c1c7  libsanitizer/asan/asan_suppressions.h
! 1199cdcff41933bad3ef8cf8049b82a7  libsanitizer/asan/asan_thread.cpp
! 5524d249b5666a805d4f692a2f75ef06  libsanitizer/asan/asan_thread.h
! 92ec3ca03d8667ff8bb45bb6c069a97d  libsanitizer/asan/asan_win.cpp
! 1302f2626df3bae206147f0ed2e9ab4b  libsanitizer/asan/asan_win_common_runtime_thunk.cpp
! 6f3d9b841ace96f7ab6fbab4e3b2b6fc  libsanitizer/asan/asan_win_common_runtime_thunk.h
! e7ba2e2cd6c818f19794c191561787a8  libsanitizer/asan/asan_win_dynamic_runtime_thunk.cpp
! f6023fedacb2c033b902f237dfb478e6  libsanitizer/asan/asan_win_static_runtime_thunk.cpp
  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
! 77c398709a899d6be47d63f035d309da  libsanitizer/hwasan/hwasan_allocator.cpp
  b315914d0329553c9658692b7254d3da  libsanitizer/hwasan/hwasan_allocator.h
! 7f009c36a326822ba1b1828cd9bf57d4  libsanitizer/hwasan/hwasan_checks.h
! 8aa4aa49be967aeb0756b4d50fb68dd3  libsanitizer/hwasan/hwasan_dynamic_shadow.cpp
  d2c53fada53bfee78b11f99e297aed7b  libsanitizer/hwasan/hwasan_dynamic_shadow.h
  9dfd44f3f73d7a5ff9183b8624869c27  libsanitizer/hwasan/hwasan_exceptions.cpp
  9750f099c8028db1b9c972cc7157280a  libsanitizer/hwasan/hwasan_flags.h
! 569536c809276273be6344267b2b960e  libsanitizer/hwasan/hwasan_flags.inc
  753ce92c601b47cf7a61b16b620865bb  libsanitizer/hwasan/hwasan_fuchsia.cpp
  20d20fc3b2ac6fb11e0a990d959c1a27  libsanitizer/hwasan/hwasan_globals.cpp
  e0f27a58c9d03369d2cbad572c5e99f4  libsanitizer/hwasan/hwasan_globals.h
! 83d86ea8a431a8cfa7a68b8b2146e77d  libsanitizer/hwasan/hwasan_interceptors.cpp
  0ff1272e9d2ece4e771dfba1ecb0d538  libsanitizer/hwasan/hwasan_interceptors_vfork.S
! f105a8a8561f900da250329f2e1e91a5  libsanitizer/hwasan/hwasan_interface_internal.h
! 55359d59843b4bc4362c024e04253002  libsanitizer/hwasan/hwasan_linux.cpp
  2ee3ae16d29b69720e9f2512908a45b5  libsanitizer/hwasan/hwasan_malloc_bisect.h
  4390a795bf11c5cb596462234bb81e09  libsanitizer/hwasan/hwasan_mapping.h
  70e3bc6498c0cfb6c675fda7a9b2bb10  libsanitizer/hwasan/hwasan_memintrinsics.cpp
*************** cf42fe809c9a5c6c76fd8243c8dbba0b  libsan
*** 122514,122549 ****
  320ae30eba3ba345b17c04f73aee67fc  libsanitizer/hwasan/hwasan_platform_interceptors.h
  7c0fe0939e5b6c7c7a7fccd79f6fb9f6  libsanitizer/hwasan/hwasan_poisoning.cpp
  dbbf5a6219c3628eace17cf1d008c47a  libsanitizer/hwasan/hwasan_poisoning.h
! a88f7c232a1a8e9337d73f11b2d1f2a6  libsanitizer/hwasan/hwasan_preinit.cpp
  b4c906553a888ce9c94c127fa2e0e452  libsanitizer/hwasan/hwasan_registers.h
! 33266a127ef6afda1038f7aeb5858018  libsanitizer/hwasan/hwasan_report.cpp
  a428030ea59c9750d767a61dfa6c7295  libsanitizer/hwasan/hwasan_report.h
  0aa0465cbf6b82abe9ada90e4dce9801  libsanitizer/hwasan/hwasan_setjmp_aarch64.S
  2cc1e1dfc1150cc465439b8e87f46264  libsanitizer/hwasan/hwasan_setjmp_riscv64.S
  c0879885e5a796a284631e5b4dd24126  libsanitizer/hwasan/hwasan_setjmp_x86_64.S
  2714ba0625c028be9633230ea1ebabf1  libsanitizer/hwasan/hwasan_tag_mismatch_aarch64.S
  2de869754f30f0e4fc56ea5e883d2957  libsanitizer/hwasan/hwasan_tag_mismatch_riscv64.S
! c5b5dc812d5af8e71941246bc61c8fb6  libsanitizer/hwasan/hwasan_thread.cpp
  ef3f94242327f05c5808584ae8f5212b  libsanitizer/hwasan/hwasan_thread.h
! 3551e459590e21cd26fb6cbd1d12331a  libsanitizer/hwasan/hwasan_thread_list.cpp
! 42add9fd37df749f923865e9901e0cb8  libsanitizer/hwasan/hwasan_thread_list.h
  0515919baf280afc79f60ae7056c0e36  libsanitizer/hwasan/hwasan_type_test.cpp
  c2d591f0e8a0a7d8a274ee310042f00c  libsanitizer/hwasan/libtool-version
! d6ba04f075e766fb8c3b09d140eba4fc  libsanitizer/include/sanitizer/allocator_interface.h
  0c2bc5ce39ede8e539ce74135146fc1e  libsanitizer/include/sanitizer/asan_interface.h
! ecf2aed307a1fd94d3e902ea1c6130a4  libsanitizer/include/sanitizer/common_interface_defs.h
  90240d85d7b6c6b61a9294033133a3c9  libsanitizer/include/sanitizer/coverage_interface.h
  d005d0a644120838c6dfd397d6aede70  libsanitizer/include/sanitizer/dfsan_interface.h
! 2bbfedf1506a0820d87ed849b872adca  libsanitizer/include/sanitizer/hwasan_interface.h
! 4f395991a27a989d213dfa0c300a74c2  libsanitizer/include/sanitizer/linux_syscall_hooks.h
  1bd34ad322a65afee9ed3ff08641cf5b  libsanitizer/include/sanitizer/lsan_interface.h
! 0da3e2f24af902ce1f30cf49a4c9a8e3  libsanitizer/include/sanitizer/memprof_interface.h
  4f75286f59f01d95e745922fadffc1c4  libsanitizer/include/sanitizer/msan_interface.h
  8cfb31c202da51942d071d62333feafa  libsanitizer/include/sanitizer/netbsd_syscall_hooks.h
  21f5e42c5cce93a45ec79348cb539845  libsanitizer/include/sanitizer/scudo_interface.h
  3ee81e9f99926181d5ca17317184a561  libsanitizer/include/sanitizer/tsan_interface.h
  82e3ce3ab2f016560e52dc733aba79ae  libsanitizer/include/sanitizer/tsan_interface_atomic.h
! f02f1f4393106fefcbe28255f9bcb3be  libsanitizer/include/sanitizer/ubsan_interface.h
  c06732d7b90bf79a06f7aa44d08a1fbb  libsanitizer/include/system/asm/ptrace.h
  7b7bed50874b18703cfc3f3e9405dc93  libsanitizer/include/system/linux/aio_abi.h
  a02871a535bceea4a946e8c8dbe3199d  libsanitizer/include/system/linux/mroute.h
--- 130833,130870 ----
  320ae30eba3ba345b17c04f73aee67fc  libsanitizer/hwasan/hwasan_platform_interceptors.h
  7c0fe0939e5b6c7c7a7fccd79f6fb9f6  libsanitizer/hwasan/hwasan_poisoning.cpp
  dbbf5a6219c3628eace17cf1d008c47a  libsanitizer/hwasan/hwasan_poisoning.h
! 3c4a35efb7e314907c4a8ee4e35d777e  libsanitizer/hwasan/hwasan_preinit.cpp
  b4c906553a888ce9c94c127fa2e0e452  libsanitizer/hwasan/hwasan_registers.h
! 58b05d957e9902e54032e1a196188158  libsanitizer/hwasan/hwasan_report.cpp
  a428030ea59c9750d767a61dfa6c7295  libsanitizer/hwasan/hwasan_report.h
  0aa0465cbf6b82abe9ada90e4dce9801  libsanitizer/hwasan/hwasan_setjmp_aarch64.S
  2cc1e1dfc1150cc465439b8e87f46264  libsanitizer/hwasan/hwasan_setjmp_riscv64.S
  c0879885e5a796a284631e5b4dd24126  libsanitizer/hwasan/hwasan_setjmp_x86_64.S
  2714ba0625c028be9633230ea1ebabf1  libsanitizer/hwasan/hwasan_tag_mismatch_aarch64.S
  2de869754f30f0e4fc56ea5e883d2957  libsanitizer/hwasan/hwasan_tag_mismatch_riscv64.S
! c91b6130437c5c0c0aa530ff3eac27fb  libsanitizer/hwasan/hwasan_thread.cpp
  ef3f94242327f05c5808584ae8f5212b  libsanitizer/hwasan/hwasan_thread.h
! 4e6f89f77d57040f630775bc12feeead  libsanitizer/hwasan/hwasan_thread_list.cpp
! 52586792b3176c9f9aabd0779041bff5  libsanitizer/hwasan/hwasan_thread_list.h
  0515919baf280afc79f60ae7056c0e36  libsanitizer/hwasan/hwasan_type_test.cpp
  c2d591f0e8a0a7d8a274ee310042f00c  libsanitizer/hwasan/libtool-version
! bd8436f182f19152757e515b854336d9  libsanitizer/include/sanitizer/allocator_interface.h
  0c2bc5ce39ede8e539ce74135146fc1e  libsanitizer/include/sanitizer/asan_interface.h
! 297505c5dbe11d29f05d730ab529da32  libsanitizer/include/sanitizer/common_interface_defs.h
  90240d85d7b6c6b61a9294033133a3c9  libsanitizer/include/sanitizer/coverage_interface.h
  d005d0a644120838c6dfd397d6aede70  libsanitizer/include/sanitizer/dfsan_interface.h
! 539a148aa5ee4d4d789d2b325b239c39  libsanitizer/include/sanitizer/hwasan_interface.h
! 1e763d9ba4112cb3d4e650a62381f7ca  libsanitizer/include/sanitizer/linux_syscall_hooks.h
  1bd34ad322a65afee9ed3ff08641cf5b  libsanitizer/include/sanitizer/lsan_interface.h
! 362411e1566639713f43de9ab6ac16c1  libsanitizer/include/sanitizer/memprof_interface.h
  4f75286f59f01d95e745922fadffc1c4  libsanitizer/include/sanitizer/msan_interface.h
  8cfb31c202da51942d071d62333feafa  libsanitizer/include/sanitizer/netbsd_syscall_hooks.h
+ d0a48348c6161ea0de82d6bf24c8b646  libsanitizer/include/sanitizer/nsan_interface.h
+ 70f1336d22dbcb6b1963e3b59060641f  libsanitizer/include/sanitizer/rtsan_interface.h
  21f5e42c5cce93a45ec79348cb539845  libsanitizer/include/sanitizer/scudo_interface.h
  3ee81e9f99926181d5ca17317184a561  libsanitizer/include/sanitizer/tsan_interface.h
  82e3ce3ab2f016560e52dc733aba79ae  libsanitizer/include/sanitizer/tsan_interface_atomic.h
! 01301cbe68b6d0ff4d5bbff82d176a37  libsanitizer/include/sanitizer/ubsan_interface.h
  c06732d7b90bf79a06f7aa44d08a1fbb  libsanitizer/include/system/asm/ptrace.h
  7b7bed50874b18703cfc3f3e9405dc93  libsanitizer/include/system/linux/aio_abi.h
  a02871a535bceea4a946e8c8dbe3199d  libsanitizer/include/system/linux/mroute.h
*************** e0f26bb761d75b6aac187f2c8d755c0b  libsan
*** 122551,122637 ****
  52441feaf66ebf0ecf003bd66b0845a1  libsanitizer/include/system/linux/perf_event.h
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
! 40db3b02f9746026f830c315351258a5  libsanitizer/interception/Makefile.am
! 9ec2b18ec29fde149fa4ca6f1b067e04  libsanitizer/interception/Makefile.in
! 5c812a8ee01440ffdc7f8166695add0b  libsanitizer/interception/interception.h
  a369bda2bdee55815c0587eeb2041947  libsanitizer/interception/interception_linux.cpp
! b644d92a6912ab3640bf57070b9a572a  libsanitizer/interception/interception_linux.h
  0e693fb7fe561dbbff408f6493c081d7  libsanitizer/interception/interception_mac.cpp
  0123641b0fbd5589d3819e5a27205e34  libsanitizer/interception/interception_mac.h
! 38b7738d6f045afb4c34a5818e5fd51a  libsanitizer/interception/interception_type_test.cpp
! f08c9c58e12a563c743e6e82d48678a0  libsanitizer/interception/interception_win.cpp
  6f3d21b72d6739cd636c58314329da52  libsanitizer/interception/interception_win.h
! cfd38bf924773ba7ef25458c574394bd  libsanitizer/libbacktrace/Makefile.am
! b2d8d4d2b16f69fe5c2ff93cab0fc8ce  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
! 8faa1dd1723bb2cea596331a774e4b38  libsanitizer/lsan/Makefile.am
! b51090ad18a7454ae4d2ba0c01eff418  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
! dfdf458a477a995341abcfa81d76e42f  libsanitizer/lsan/lsan.cpp
! 5919aaf4c4300d5eabf9449b33a2a9a4  libsanitizer/lsan/lsan.h
! a447fd8b86ffad123f150ae4b3579b37  libsanitizer/lsan/lsan_allocator.cpp
  17871f0b4c3ec3b70b00bbb7d87c2c0f  libsanitizer/lsan/lsan_allocator.h
! b92ee2d30409988833495882f728a83c  libsanitizer/lsan/lsan_common.cpp
! 6d4fc29cc52d245652f7a063ee6b650b  libsanitizer/lsan/lsan_common.h
  837b31d5c0aaab07f7afbc0cbef04f24  libsanitizer/lsan/lsan_common_fuchsia.cpp
! ff4505a3cb4b0026259542955e0f6b08  libsanitizer/lsan/lsan_common_linux.cpp
  e0c1fefc6d7a8d0f00122415d01fb44d  libsanitizer/lsan/lsan_common_mac.cpp
! 6af587085d16319361de6f118714b293  libsanitizer/lsan/lsan_flags.inc
! 7aeeb47f8a665410cf49e91ad1ced20c  libsanitizer/lsan/lsan_fuchsia.cpp
  0a42ef558db22ea416707423b4ee5313  libsanitizer/lsan/lsan_fuchsia.h
! e46921da19d5027a160496035ed6a615  libsanitizer/lsan/lsan_interceptors.cpp
  956639c4d9b147ff17fbd7c99f809223  libsanitizer/lsan/lsan_linux.cpp
  4fa725b880e76379f3f26408ca1558f7  libsanitizer/lsan/lsan_mac.cpp
  94e1495e5dfa6d86df31bfed27d4bb1a  libsanitizer/lsan/lsan_malloc_mac.cpp
! 1953276b1a1775169a05e59efb4635a7  libsanitizer/lsan/lsan_posix.cpp
  2d218702383904dd6ba0cbb97b0bfd82  libsanitizer/lsan/lsan_posix.h
! 7d7a28d8f42ca368b3ffa1b674377b25  libsanitizer/lsan/lsan_preinit.cpp
! a7bfd09208fe939f2c0ff52efb6ad0e9  libsanitizer/lsan/lsan_thread.cpp
  40250a40045098844f2cb7c1830cfa8d  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
! 0a4ece549637c9b6c314286fe53ce753  libsanitizer/sanitizer_common/Makefile.am
! 9d3b17327b1a18d07d8976ca9f9a4670  libsanitizer/sanitizer_common/Makefile.in
! d68aa097ee532430d26f11ec81234ed5  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
  affc5cdd93ea24c9d38ffeae121b992b  libsanitizer/sanitizer_common/sanitizer_addrhashmap.h
! 5263d17d6ca957a85eb42485cdc14274  libsanitizer/sanitizer_common/sanitizer_allocator.cpp
  25bb26805d66124793cada605bdb8059  libsanitizer/sanitizer_common/sanitizer_allocator.h
  58afe7ee0a8301bc2ee5e0495a5c3720  libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
  4ee074df007bb212ba0e23ec75009eca  libsanitizer/sanitizer_common/sanitizer_allocator_checks.h
  42255d2f0af0d6529e6562e12fe76714  libsanitizer/sanitizer_common/sanitizer_allocator_combined.h
! 96cb3d54c892bac183e5eea23d61a499  libsanitizer/sanitizer_common/sanitizer_allocator_dlsym.h
! 23db6a0cfddcedce7708498aa0200f20  libsanitizer/sanitizer_common/sanitizer_allocator_interface.h
  828ea8b0bdf238e32fccaa70b5b23cce  libsanitizer/sanitizer_common/sanitizer_allocator_internal.h
  077de40d6eda25e0f6b7713f2e9763f4  libsanitizer/sanitizer_common/sanitizer_allocator_local_cache.h
! d87d5af81a9b30ca3b3d1781d48b2b1a  libsanitizer/sanitizer_common/sanitizer_allocator_primary32.h
! 1ad2a2c81dbffdde63a26b7a42f7aed1  libsanitizer/sanitizer_common/sanitizer_allocator_primary64.h
  ff41eeb2a6f776ce3d9f5a913f70fa5c  libsanitizer/sanitizer_common/sanitizer_allocator_report.cpp
  5fca989318db3c792dfeea2a7a028c24  libsanitizer/sanitizer_common/sanitizer_allocator_report.h
  22d9f5ff34200de98c097dbbfd466bc8  libsanitizer/sanitizer_common/sanitizer_allocator_secondary.h
  68dd334ff39cff58dd4c6138bc1b725f  libsanitizer/sanitizer_common/sanitizer_allocator_size_class_map.h
  fea02c2bee302ef80068d06de6550959  libsanitizer/sanitizer_common/sanitizer_allocator_stats.h
  0136f420ff25cc446d086b8a05a982e9  libsanitizer/sanitizer_common/sanitizer_array_ref.h
! 7d644ce7934bebbec9e0cc8d764592f2  libsanitizer/sanitizer_common/sanitizer_asm.h
! 998bded7a554ef1499c0f9da7137fc8a  libsanitizer/sanitizer_common/sanitizer_atomic.h
! 94f3ed5236b7fdac7cb333faff3b5431  libsanitizer/sanitizer_common/sanitizer_atomic_clang.h
! 4628d0f9ff0c1cf2623aaa1a643234cb  libsanitizer/sanitizer_common/sanitizer_atomic_clang_mips.h
! 3686782bec0fb0a981c075ff25565e74  libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h
! 53ca180c9d422d41817722cfdb7f6264  libsanitizer/sanitizer_common/sanitizer_atomic_clang_x86.h
! a086d2b579c91b2576f9c35c798b8b04  libsanitizer/sanitizer_common/sanitizer_atomic_msvc.h
! f652b6a1b7460128cccd6c016c4828c6  libsanitizer/sanitizer_common/sanitizer_bitvector.h
  2c60255aaee6514e73b7c326d2edbc51  libsanitizer/sanitizer_common/sanitizer_bvgraph.h
! a32b38d2eae806bfe95f3e089a711f7a  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.cpp
! 6c98887c832c51853baba6c78b422e70  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.h
! 725eff9d21f83efefa734e8a3045f03b  libsanitizer/sanitizer_common/sanitizer_common.cpp
! 8d31e033038441d83d7dac7241fa7288  libsanitizer/sanitizer_common/sanitizer_common.h
! 0efb1be2c27a1a3b31edbde3b5472fc4  libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
  0a68626fb68e0f53b782fec8d795f632  libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc
  aa961fb0d47d9369601c5aa4bd24ea02  libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
! 92d324a2c8f8e44cf13d5f7c545d6c1d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
  c664d5fb1514c978d28a6a62b2040b53  libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc
  e19e7b0a6d9409a4b3a5c277ebba0b9a  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
  3d738bf27e973b3bebdbb87ed70467c0  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
--- 130872,130955 ----
  52441feaf66ebf0ecf003bd66b0845a1  libsanitizer/include/system/linux/perf_event.h
  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
  0e693fb7fe561dbbff408f6493c081d7  libsanitizer/interception/interception_mac.cpp
  0123641b0fbd5589d3819e5a27205e34  libsanitizer/interception/interception_mac.h
! 5e3580ad904d6532995eadf5a0f76e54  libsanitizer/interception/interception_type_test.cpp
! 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
! 320a8141b1e2196dad82367c5fd0c9bb  libsanitizer/lsan/lsan_allocator.cpp
  17871f0b4c3ec3b70b00bbb7d87c2c0f  libsanitizer/lsan/lsan_allocator.h
! 64528b935f4e7e240128985169440a22  libsanitizer/lsan/lsan_common.cpp
! b48fbea440a21dcb40deec3eb88817c3  libsanitizer/lsan/lsan_common.h
  837b31d5c0aaab07f7afbc0cbef04f24  libsanitizer/lsan/lsan_common_fuchsia.cpp
! f9d367e2c9430f40684ff02036db1dd5  libsanitizer/lsan/lsan_common_linux.cpp
  e0c1fefc6d7a8d0f00122415d01fb44d  libsanitizer/lsan/lsan_common_mac.cpp
! 2107cfb13c020efdf410726abf2d8979  libsanitizer/lsan/lsan_flags.inc
! 97051f0e348088d16f52cf49ae7ae2c3  libsanitizer/lsan/lsan_fuchsia.cpp
  0a42ef558db22ea416707423b4ee5313  libsanitizer/lsan/lsan_fuchsia.h
! a2bb4ce82517490a473b4f4a78a0a925  libsanitizer/lsan/lsan_interceptors.cpp
  956639c4d9b147ff17fbd7c99f809223  libsanitizer/lsan/lsan_linux.cpp
  4fa725b880e76379f3f26408ca1558f7  libsanitizer/lsan/lsan_mac.cpp
  94e1495e5dfa6d86df31bfed27d4bb1a  libsanitizer/lsan/lsan_malloc_mac.cpp
! 27e7a9acf4d6389c68679c2034a2e536  libsanitizer/lsan/lsan_posix.cpp
  2d218702383904dd6ba0cbb97b0bfd82  libsanitizer/lsan/lsan_posix.h
! 4ef9c81bd893835723a68ebd22cfa9ab  libsanitizer/lsan/lsan_preinit.cpp
! 2e5e2fa7ae3e1aff84765e97f03d95c9  libsanitizer/lsan/lsan_thread.cpp
  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
  affc5cdd93ea24c9d38ffeae121b992b  libsanitizer/sanitizer_common/sanitizer_addrhashmap.h
! f04b14c8928c5d1f093e2ae9138a4d97  libsanitizer/sanitizer_common/sanitizer_allocator.cpp
  25bb26805d66124793cada605bdb8059  libsanitizer/sanitizer_common/sanitizer_allocator.h
  58afe7ee0a8301bc2ee5e0495a5c3720  libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
  4ee074df007bb212ba0e23ec75009eca  libsanitizer/sanitizer_common/sanitizer_allocator_checks.h
  42255d2f0af0d6529e6562e12fe76714  libsanitizer/sanitizer_common/sanitizer_allocator_combined.h
! 3c645dfe014d04fa75d279647bae95d2  libsanitizer/sanitizer_common/sanitizer_allocator_dlsym.h
! 5fc70560e6fad39c418b5589426a8d82  libsanitizer/sanitizer_common/sanitizer_allocator_interface.h
  828ea8b0bdf238e32fccaa70b5b23cce  libsanitizer/sanitizer_common/sanitizer_allocator_internal.h
  077de40d6eda25e0f6b7713f2e9763f4  libsanitizer/sanitizer_common/sanitizer_allocator_local_cache.h
! 231e9ee76b69fc5da94ead1b51cdf94c  libsanitizer/sanitizer_common/sanitizer_allocator_primary32.h
! 3e4f8e80a5d9d4806dba8b20c38d9c50  libsanitizer/sanitizer_common/sanitizer_allocator_primary64.h
  ff41eeb2a6f776ce3d9f5a913f70fa5c  libsanitizer/sanitizer_common/sanitizer_allocator_report.cpp
  5fca989318db3c792dfeea2a7a028c24  libsanitizer/sanitizer_common/sanitizer_allocator_report.h
  22d9f5ff34200de98c097dbbfd466bc8  libsanitizer/sanitizer_common/sanitizer_allocator_secondary.h
  68dd334ff39cff58dd4c6138bc1b725f  libsanitizer/sanitizer_common/sanitizer_allocator_size_class_map.h
  fea02c2bee302ef80068d06de6550959  libsanitizer/sanitizer_common/sanitizer_allocator_stats.h
  0136f420ff25cc446d086b8a05a982e9  libsanitizer/sanitizer_common/sanitizer_array_ref.h
! 61f6307bbc3dfa55854a788367fa217a  libsanitizer/sanitizer_common/sanitizer_asm.h
! 7cd70281393ca476547040a412b9dbce  libsanitizer/sanitizer_common/sanitizer_atomic.h
! b31de3daf790ffbf0cf8bc366f7a9865  libsanitizer/sanitizer_common/sanitizer_atomic_clang.h
! 721be1dbdd1c54f48618db8de40da192  libsanitizer/sanitizer_common/sanitizer_atomic_msvc.h
! 62aea4a43bd8989b58929848b8bfc2ce  libsanitizer/sanitizer_common/sanitizer_bitvector.h
  2c60255aaee6514e73b7c326d2edbc51  libsanitizer/sanitizer_common/sanitizer_bvgraph.h
! 825779226b13ba3409ec77092a87f5fa  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.cpp
! 312f30c8f9914e5c1909e7b2bb105bc5  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.h
! 39b157e63816e5ec5dd61b84f98cda6a  libsanitizer/sanitizer_common/sanitizer_common.cpp
! c0dfa2350e2b5db939decb80322c27d8  libsanitizer/sanitizer_common/sanitizer_common.h
! 26f4454a89cf4851e1e674f38a21ee92  libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
  0a68626fb68e0f53b782fec8d795f632  libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc
  aa961fb0d47d9369601c5aa4bd24ea02  libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
! 1a89be9bea304a8e2a2c2ecb1b8942f3  libsanitizer/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
  c664d5fb1514c978d28a6a62b2040b53  libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc
  e19e7b0a6d9409a4b3a5c277ebba0b9a  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
  3d738bf27e973b3bebdbb87ed70467c0  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
*************** e19e7b0a6d9409a4b3a5c277ebba0b9a  libsan
*** 122639,122774 ****
  38347e4acdc72a8875c7924d7b50505f  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
  d5715d90f08ee5cca09715fd5b25b201  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
  77a89301257ab14bab0d4c024ad9c33d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S
! d27974f5c43a992a7b214cce4b6fef7d  libsanitizer/sanitizer_common/sanitizer_common_interface.inc
  bf8ce226f58b9794d275785342c4be6b  libsanitizer/sanitizer_common/sanitizer_common_interface_posix.inc
! 20a21017fabe012c9d9caa122bcb0d28  libsanitizer/sanitizer_common/sanitizer_common_libcdep.cpp
! 5da4d94a361ae04b45948a2d230f9c68  libsanitizer/sanitizer_common/sanitizer_common_nolibc.cpp
! 7fd6293debfd85e7546493046b94cc3c  libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc
! eddc7e8805ed848ea5725c8e56f8061d  libsanitizer/sanitizer_common/sanitizer_coverage_fuchsia.cpp
  c1a02c896ece2bae19c87b561049f73b  libsanitizer/sanitizer_common/sanitizer_coverage_interface.inc
! 69afd0c4c7d847c5cb0000dead119c94  libsanitizer/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
! f64c402c63e4fdccc3b91f46fa008563  libsanitizer/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp
! b23b66463d261a32c3e71eb67bdce1ea  libsanitizer/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp
  3f3a487b0f415ffaf2022c06c7e71af4  libsanitizer/sanitizer_common/sanitizer_coverage_win_sections.cpp
- ed3ef2b479c7d2116591b6f628dbce45  libsanitizer/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp
  c24845d0d3c29b56170aa71091426359  libsanitizer/sanitizer_common/sanitizer_dbghelp.h
  93c7f7cfe4584314922d85a50eb6f712  libsanitizer/sanitizer_common/sanitizer_deadlock_detector.h
  60b82132d1e67e37257799273c024824  libsanitizer/sanitizer_common/sanitizer_deadlock_detector1.cpp
  21a5fbc7da336c033aaaff3bf8de5f61  libsanitizer/sanitizer_common/sanitizer_deadlock_detector2.cpp
  714375c2f0080364d3f9636fb365cb50  libsanitizer/sanitizer_common/sanitizer_deadlock_detector_interface.h
! 237e8b48d89526cd936a719703f16f97  libsanitizer/sanitizer_common/sanitizer_dense_map.h
  2416325b5cdf8be42ab7069b88ad4a2d  libsanitizer/sanitizer_common/sanitizer_dense_map_info.h
  51f60f3e08112ffd8d2087e1118450d2  libsanitizer/sanitizer_common/sanitizer_dl.cpp
  56aa2ff246c77ba5a8c066d6cc0c8ea9  libsanitizer/sanitizer_common/sanitizer_dl.h
! dd71222889a46d09229b51c9a128a5aa  libsanitizer/sanitizer_common/sanitizer_errno.cpp
  b751f665e23f9c48eeffdb8ab7973e35  libsanitizer/sanitizer_common/sanitizer_errno.h
! 75f6c06a908c5278371c85a51dd1f8dd  libsanitizer/sanitizer_common/sanitizer_errno_codes.h
! ad56586f1276455526fe2f5e5cd53cae  libsanitizer/sanitizer_common/sanitizer_file.cpp
  1a5a447ab60a66359da740801bd8ba9d  libsanitizer/sanitizer_common/sanitizer_file.h
  fe75d2882844576020bba0da3fd2de97  libsanitizer/sanitizer_common/sanitizer_flag_parser.cpp
  1e99a92428a0c48f7a74933ba4f3f378  libsanitizer/sanitizer_common/sanitizer_flag_parser.h
  1f6a67b0728f9b8e7c3cca7b3d8efa8d  libsanitizer/sanitizer_common/sanitizer_flags.cpp
  50b07ed067f181e6df763aa0940acec1  libsanitizer/sanitizer_common/sanitizer_flags.h
! e94d472f60d95953c9c7b1f11eb69635  libsanitizer/sanitizer_common/sanitizer_flags.inc
! 51e0cdd7106d7bcb9f1990e06828aef0  libsanitizer/sanitizer_common/sanitizer_flat_map.h
! 3f779f66885b3027cad2a2af88a8a2f5  libsanitizer/sanitizer_common/sanitizer_freebsd.h
! 93f1f3fc4cc64073b5faf1d2892993b1  libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
  286b7995698dbe20223e1a3c05933d6d  libsanitizer/sanitizer_common/sanitizer_fuchsia.h
  1d8e62bbd8a595f6e44228e1dc7cbcd8  libsanitizer/sanitizer_common/sanitizer_getauxval.h
  f06be5c69a658d7ac5ebea616ebb001a  libsanitizer/sanitizer_common/sanitizer_glibc_version.h
! 0106ca8c2ac52a690196a29c2fd63de6  libsanitizer/sanitizer_common/sanitizer_hash.h
  14320fc600ec0b7789c3baf1cf923a1d  libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
! 896c341833359a7fe4247ab78166b54b  libsanitizer/sanitizer_common/sanitizer_interface_internal.h
! 242163f02da16c66a88194208a3d93db  libsanitizer/sanitizer_common/sanitizer_internal_defs.h
  45de936b7d4065758483844c920f2ba4  libsanitizer/sanitizer_common/sanitizer_leb128.h
  5da7cbe05015b8a52342cd8a74fb0ad2  libsanitizer/sanitizer_common/sanitizer_lfstack.h
  abc3d4588ee1b4576e4493c95b0b0583  libsanitizer/sanitizer_common/sanitizer_libc.cpp
  fcccc17ab9511f4da14279e7828a5ddd  libsanitizer/sanitizer_common/sanitizer_libc.h
! 537dd9a212b82bf6f062b47c5df57c86  libsanitizer/sanitizer_common/sanitizer_libignore.cpp
! 43841a8fb2414dc7836e2d07d6197776  libsanitizer/sanitizer_common/sanitizer_libignore.h
! 0c3aead2737020263a21f707e4ea31c0  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 0e3343052c51ec7527fc453c80350ae7  libsanitizer/sanitizer_common/sanitizer_linux.h
! eaca20a673cac17f216b625265e8b555  libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp
! 9ce22ccd9943bda9795a2efeccec7f16  libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp
  51d4c37472c1c2c6010e5d1eb5bf340f  libsanitizer/sanitizer_common/sanitizer_list.h
  15f5a30dda04b6f3bc49cb5206d92e7b  libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h
  b819992c5da123bc4d79e61fa5154215  libsanitizer/sanitizer_common/sanitizer_lzw.h
! 3628e69f0c97fc4768eb5cc4d0d90daa  libsanitizer/sanitizer_common/sanitizer_mac.cpp
  4a2287c1e441c3abcc5c9ee7aee2754d  libsanitizer/sanitizer_common/sanitizer_mac.h
  3c8a29762c7ecf7082ea5a28335716f6  libsanitizer/sanitizer_common/sanitizer_mac_libcdep.cpp
! 459a29cf06d03860fadccef108a8fab8  libsanitizer/sanitizer_common/sanitizer_mallinfo.h
  782e293828801abaf565a8fefd3cce35  libsanitizer/sanitizer_common/sanitizer_malloc_mac.inc
! 231790ca3e16e72faa2f393344107c51  libsanitizer/sanitizer_common/sanitizer_mutex.cpp
  7dc346968361491c8e35254fcd12ca5c  libsanitizer/sanitizer_common/sanitizer_mutex.h
  3ec767742997468be9817fb2a5fe4c1f  libsanitizer/sanitizer_common/sanitizer_netbsd.cpp
! b9966b23ae76d3ec9290c4a5e8c3d94c  libsanitizer/sanitizer_common/sanitizer_placement_new.h
! e18e7cdb6207fae4d5609577fbcfc43f  libsanitizer/sanitizer_common/sanitizer_platform.h
! 032e4109fb5b93b108cddab478756d15  libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
! f9fe05f7ffd45a48c2d004ae4cb1f825  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
! 1b9fc3fbeff7313d9bd812a15e3e55ab  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.h
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
  a4d7b3990585330fb0fbc99e5afaf019  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
! d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
! d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
! de3519edf4a524cdab4336d4eeed94e0  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! 1c6ecd7b7fd7b299a11f160ad0de1043  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
! e3606cc19e7b02bfba7878ba5d6ce75a  libsanitizer/sanitizer_common/sanitizer_posix.cpp
! 0213bb4fba63d9c40c7e45320ceaa40e  libsanitizer/sanitizer_common/sanitizer_posix.h
! 5ec19931360eacdd1bdd7eb328da501e  libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
! 395684fcbcb844538648999433acf7dd  libsanitizer/sanitizer_common/sanitizer_printf.cpp
  e74aaa19ad8d77b9c3fdc095cd85f72d  libsanitizer/sanitizer_common/sanitizer_procmaps.h
! 07676c2c521743d49b9ce9d443d98a99  libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp
! 2c5fca0fdfe3a04814815ffb2ab7d6df  libsanitizer/sanitizer_common/sanitizer_procmaps_common.cpp
  359d6e04536b11f84ee64fcc65fceff5  libsanitizer/sanitizer_common/sanitizer_procmaps_fuchsia.cpp
  cac752f7b42df7a26fc91e0aadc8aa36  libsanitizer/sanitizer_common/sanitizer_procmaps_linux.cpp
! 578c24e1321621932bbbb900ed4b6788  libsanitizer/sanitizer_common/sanitizer_procmaps_mac.cpp
! f873c2c0855223fd5d10002c1fde8b1e  libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
! f35117287ec4a6a6d785ad92db83acd9  libsanitizer/sanitizer_common/sanitizer_ptrauth.h
  6a13c5d77fcf1ab15a92498a30bfc5c2  libsanitizer/sanitizer_common/sanitizer_quarantine.h
  7991d1d21190a84ae23b6795d92b8228  libsanitizer/sanitizer_common/sanitizer_range.cpp
  63beefad8f822d08911997ce177551c3  libsanitizer/sanitizer_common/sanitizer_range.h
! 09d8e9a490c96501c18bd19c2bcac949  libsanitizer/sanitizer_common/sanitizer_redefine_builtins.h
  790117d4c85c98c499151ad830f99a49  libsanitizer/sanitizer_common/sanitizer_report_decorator.h
  490e9e2e338b8cd9b363bf836a1362d7  libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
  62a52ef4ab43d92a89baff5071bc1ded  libsanitizer/sanitizer_common/sanitizer_signal_interceptors.inc
  d81628c1f3c14142bf5218228d6bdcc6  libsanitizer/sanitizer_common/sanitizer_solaris.cpp
  379f4e42b7a717d642000a85a853e264  libsanitizer/sanitizer_common/sanitizer_solaris.h
! 44cf531f3ea724c10e12db0e154da4d0  libsanitizer/sanitizer_common/sanitizer_stack_store.cpp
  864eccc6e382e83b07083140ea11def8  libsanitizer/sanitizer_common/sanitizer_stack_store.h
! bf15e54f8c49d6dbf0b70f17a2bbab18  libsanitizer/sanitizer_common/sanitizer_stackdepot.cpp
! 7d9a7e41e6697230497277a7e15f2e70  libsanitizer/sanitizer_common/sanitizer_stackdepot.h
! 2e9c77f595e59b5fd833e23184556a92  libsanitizer/sanitizer_common/sanitizer_stackdepotbase.h
  7fab594cee994193cd21982e73ace63e  libsanitizer/sanitizer_common/sanitizer_stacktrace.cpp
  b647c573b756151c66842f4029cc50c8  libsanitizer/sanitizer_common/sanitizer_stacktrace.h
! 54ed7011fff25a1ccd3b985b99de3418  libsanitizer/sanitizer_common/sanitizer_stacktrace_libcdep.cpp
! f856673b71d569eb84d2023daca2c855  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.cpp
! f7c643362db54b2992f4562d4ab125f0  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.h
! 970bd85f99e504e1b5effed9862cc9c5  libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cpp
  76324ac84f5eb512c3e2351dbfd9ce24  libsanitizer/sanitizer_common/sanitizer_stoptheworld.h
  c1faa837dd50d9ad2162751a200fa58b  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp
  60c0888eff94b59773f87548c52f756a  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.h
! 177c0ff8df6a9bb506c71750b68b776e  libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
  c22a391491d33bcbef7758f001dc204d  libsanitizer/sanitizer_common/sanitizer_stoptheworld_mac.cpp
! c037ff7568ea4e12399926fdbde8a8c1  libsanitizer/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
  bdb416b455b14acf317962318eb84924  libsanitizer/sanitizer_common/sanitizer_stoptheworld_win.cpp
! 3f94c6f51c2361358cdb1890c9092488  libsanitizer/sanitizer_common/sanitizer_suppressions.cpp
  6dc05d23b94fb4783618dcd3cd4b1c9f  libsanitizer/sanitizer_common/sanitizer_suppressions.h
  9f7aefe7272c0c1ac5c83fba7988c9d3  libsanitizer/sanitizer_common/sanitizer_symbolizer.cpp
! 145073092f69370b7124d72fcb8e0576  libsanitizer/sanitizer_common/sanitizer_symbolizer.h
! 12fcc306e0ffc32a224b785eaec125a8  libsanitizer/sanitizer_common/sanitizer_symbolizer_fuchsia.h
  7f944ae09b27a906e595c100e8e459ee  libsanitizer/sanitizer_common/sanitizer_symbolizer_internal.h
  86502e8ef2c025574561f9f604e8652d  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
  57fad0f520b4b3e56bb19ce40a50676a  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
! 8da54a4ea61ff3a8c72843541a672532  libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
! 4e730f2029e47640a2ee4e08fa525cb1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.cpp
  cf53e533bc415a2a97e702de211878f1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.h
! 09856628324f521738c33dc217d25d31  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.cpp
! eacfa2c4b34c7ae59dd9e4d502d7d58b  libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
! 84a5737d5dd0557b20929bf3360bafff  libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
! 903c6846f81bc367a0fbe370e51043db  libsanitizer/sanitizer_common/sanitizer_symbolizer_win.cpp
  10bef8250d15b767f78688de7350a2a0  libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc
  9546e0a896837e1fc30d0f1421f2b220  libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
  0711f1c23e48efd357f77c0be4ab551c  libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc
--- 130957,131090 ----
  38347e4acdc72a8875c7924d7b50505f  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
  d5715d90f08ee5cca09715fd5b25b201  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
  77a89301257ab14bab0d4c024ad9c33d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S
! 2dd47762ea721b2d69ec546f4ebea68e  libsanitizer/sanitizer_common/sanitizer_common_interface.inc
  bf8ce226f58b9794d275785342c4be6b  libsanitizer/sanitizer_common/sanitizer_common_interface_posix.inc
! b6ababc124f0e5321f6bf7e80ca91800  libsanitizer/sanitizer_common/sanitizer_common_libcdep.cpp
! 7a1b36d01791b6039980a1da35cc7130  libsanitizer/sanitizer_common/sanitizer_common_nolibc.cpp
! 703f7b0472eb38d9388b20595f1e4ea8  libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc
! 780515c8fb1c7353dab146368fcc4da4  libsanitizer/sanitizer_common/sanitizer_coverage_fuchsia.cpp
  c1a02c896ece2bae19c87b561049f73b  libsanitizer/sanitizer_common/sanitizer_coverage_interface.inc
! 680aae8760de55d5a977003c75d4e31d  libsanitizer/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
! b626ecb5c331c559b84506d088ea006e  libsanitizer/sanitizer_common/sanitizer_coverage_win_runtime_thunk.cpp
  3f3a487b0f415ffaf2022c06c7e71af4  libsanitizer/sanitizer_common/sanitizer_coverage_win_sections.cpp
  c24845d0d3c29b56170aa71091426359  libsanitizer/sanitizer_common/sanitizer_dbghelp.h
  93c7f7cfe4584314922d85a50eb6f712  libsanitizer/sanitizer_common/sanitizer_deadlock_detector.h
  60b82132d1e67e37257799273c024824  libsanitizer/sanitizer_common/sanitizer_deadlock_detector1.cpp
  21a5fbc7da336c033aaaff3bf8de5f61  libsanitizer/sanitizer_common/sanitizer_deadlock_detector2.cpp
  714375c2f0080364d3f9636fb365cb50  libsanitizer/sanitizer_common/sanitizer_deadlock_detector_interface.h
! c0851917dc871b62dd2f570daa13eea4  libsanitizer/sanitizer_common/sanitizer_dense_map.h
  2416325b5cdf8be42ab7069b88ad4a2d  libsanitizer/sanitizer_common/sanitizer_dense_map_info.h
  51f60f3e08112ffd8d2087e1118450d2  libsanitizer/sanitizer_common/sanitizer_dl.cpp
  56aa2ff246c77ba5a8c066d6cc0c8ea9  libsanitizer/sanitizer_common/sanitizer_dl.h
! 2bfe2f83195a87b4f57151a8adc98706  libsanitizer/sanitizer_common/sanitizer_errno.cpp
  b751f665e23f9c48eeffdb8ab7973e35  libsanitizer/sanitizer_common/sanitizer_errno.h
! 204bc959e2b196b621b61cdf5894c34b  libsanitizer/sanitizer_common/sanitizer_errno_codes.h
! 17570b73ac0f8624e61847211f669fa7  libsanitizer/sanitizer_common/sanitizer_file.cpp
  1a5a447ab60a66359da740801bd8ba9d  libsanitizer/sanitizer_common/sanitizer_file.h
  fe75d2882844576020bba0da3fd2de97  libsanitizer/sanitizer_common/sanitizer_flag_parser.cpp
  1e99a92428a0c48f7a74933ba4f3f378  libsanitizer/sanitizer_common/sanitizer_flag_parser.h
  1f6a67b0728f9b8e7c3cca7b3d8efa8d  libsanitizer/sanitizer_common/sanitizer_flags.cpp
  50b07ed067f181e6df763aa0940acec1  libsanitizer/sanitizer_common/sanitizer_flags.h
! cae746d04ddd7dbb5cf06850d639c753  libsanitizer/sanitizer_common/sanitizer_flags.inc
! c494ec3dcc524f252a462aafb5d84148  libsanitizer/sanitizer_common/sanitizer_flat_map.h
! d6c6926a15bb2c56155cc4c06d30259f  libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
  286b7995698dbe20223e1a3c05933d6d  libsanitizer/sanitizer_common/sanitizer_fuchsia.h
  1d8e62bbd8a595f6e44228e1dc7cbcd8  libsanitizer/sanitizer_common/sanitizer_getauxval.h
  f06be5c69a658d7ac5ebea616ebb001a  libsanitizer/sanitizer_common/sanitizer_glibc_version.h
! 7437a0d8e50cbc7d1d25d27e390f9dc9  libsanitizer/sanitizer_common/sanitizer_hash.h
  14320fc600ec0b7789c3baf1cf923a1d  libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
! bd4f256aead593f4ef70966739361714  libsanitizer/sanitizer_common/sanitizer_interface_internal.h
! 6d09fb1e026a1a0e9c8b7de5dc584dd2  libsanitizer/sanitizer_common/sanitizer_internal_defs.h
  45de936b7d4065758483844c920f2ba4  libsanitizer/sanitizer_common/sanitizer_leb128.h
  5da7cbe05015b8a52342cd8a74fb0ad2  libsanitizer/sanitizer_common/sanitizer_lfstack.h
  abc3d4588ee1b4576e4493c95b0b0583  libsanitizer/sanitizer_common/sanitizer_libc.cpp
  fcccc17ab9511f4da14279e7828a5ddd  libsanitizer/sanitizer_common/sanitizer_libc.h
! ddfd6af3f87a47b1ce8919e05e930d24  libsanitizer/sanitizer_common/sanitizer_libignore.cpp
! 08871b2f457db946621b7b929d40e4c9  libsanitizer/sanitizer_common/sanitizer_libignore.h
! d548dbe3e01cfbec99a852d1f7efda02  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 0e9136f3c4cd9ebab1135b8c7fc95b49  libsanitizer/sanitizer_common/sanitizer_linux.h
! 9513a8f1d32126288f643f4d63acec31  libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp
! b744ae519d9a0007389121695e32a90b  libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp
  51d4c37472c1c2c6010e5d1eb5bf340f  libsanitizer/sanitizer_common/sanitizer_list.h
  15f5a30dda04b6f3bc49cb5206d92e7b  libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h
  b819992c5da123bc4d79e61fa5154215  libsanitizer/sanitizer_common/sanitizer_lzw.h
! 3a9e3b00fedce5149369f2f633bb0eb4  libsanitizer/sanitizer_common/sanitizer_mac.cpp
  4a2287c1e441c3abcc5c9ee7aee2754d  libsanitizer/sanitizer_common/sanitizer_mac.h
  3c8a29762c7ecf7082ea5a28335716f6  libsanitizer/sanitizer_common/sanitizer_mac_libcdep.cpp
! e93238f16cdf5cf465aa2c721a4e5447  libsanitizer/sanitizer_common/sanitizer_mallinfo.h
  782e293828801abaf565a8fefd3cce35  libsanitizer/sanitizer_common/sanitizer_malloc_mac.inc
! 37d72ef7a8199cc8557a541d81be679f  libsanitizer/sanitizer_common/sanitizer_mutex.cpp
  7dc346968361491c8e35254fcd12ca5c  libsanitizer/sanitizer_common/sanitizer_mutex.h
  3ec767742997468be9817fb2a5fe4c1f  libsanitizer/sanitizer_common/sanitizer_netbsd.cpp
! ceac766877c4c2363d959a0ebaa74421  libsanitizer/sanitizer_common/sanitizer_placement_new.h
! 2baabfc5be74c1737404850a1e7f22d4  libsanitizer/sanitizer_common/sanitizer_platform.h
! 50c1aed3617beff9d3ddbadf90e1e077  libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
! 9339dda2345e2e11200a7c44fe3aa71e  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
! c20619c1cdd5936e7b8b0c701a9389ef  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.h
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
  a4d7b3990585330fb0fbc99e5afaf019  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
! c2cfc9d018338259f8e89e96c740e067  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! 34236732f02da9f34af8dc685be838b9  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
! f0b890407c0f914a601ad28f17dadfee  libsanitizer/sanitizer_common/sanitizer_posix.cpp
! 5afb08036b6622b667986de89bc658de  libsanitizer/sanitizer_common/sanitizer_posix.h
! 3c1674ab91e6a5fd8475bfd7ac39cde6  libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
! 4dcc859b9034e8711c54a922aa2655e5  libsanitizer/sanitizer_common/sanitizer_printf.cpp
  e74aaa19ad8d77b9c3fdc095cd85f72d  libsanitizer/sanitizer_common/sanitizer_procmaps.h
! fae42c956eac7df94a6d84263f802737  libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp
! 2fa1929aff0076a2eb5e7e7723fea652  libsanitizer/sanitizer_common/sanitizer_procmaps_common.cpp
  359d6e04536b11f84ee64fcc65fceff5  libsanitizer/sanitizer_common/sanitizer_procmaps_fuchsia.cpp
  cac752f7b42df7a26fc91e0aadc8aa36  libsanitizer/sanitizer_common/sanitizer_procmaps_linux.cpp
! c11a721b657c9e27d2bbcde1c4a839b6  libsanitizer/sanitizer_common/sanitizer_procmaps_mac.cpp
! 2fb0efa00fc53422e18e61baadf421cc  libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
! 796a93e9377f8db4d1a9b36bd27ce711  libsanitizer/sanitizer_common/sanitizer_ptrauth.h
  6a13c5d77fcf1ab15a92498a30bfc5c2  libsanitizer/sanitizer_common/sanitizer_quarantine.h
  7991d1d21190a84ae23b6795d92b8228  libsanitizer/sanitizer_common/sanitizer_range.cpp
  63beefad8f822d08911997ce177551c3  libsanitizer/sanitizer_common/sanitizer_range.h
! ce37125aeef9e9fa5d27b36132a84f7f  libsanitizer/sanitizer_common/sanitizer_redefine_builtins.h
  790117d4c85c98c499151ad830f99a49  libsanitizer/sanitizer_common/sanitizer_report_decorator.h
  490e9e2e338b8cd9b363bf836a1362d7  libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
  62a52ef4ab43d92a89baff5071bc1ded  libsanitizer/sanitizer_common/sanitizer_signal_interceptors.inc
  d81628c1f3c14142bf5218228d6bdcc6  libsanitizer/sanitizer_common/sanitizer_solaris.cpp
  379f4e42b7a717d642000a85a853e264  libsanitizer/sanitizer_common/sanitizer_solaris.h
! d0c53826f3b557f2e124ec2c64fa02b2  libsanitizer/sanitizer_common/sanitizer_stack_store.cpp
  864eccc6e382e83b07083140ea11def8  libsanitizer/sanitizer_common/sanitizer_stack_store.h
! eea32544689e588b4612f89e96b64d4e  libsanitizer/sanitizer_common/sanitizer_stackdepot.cpp
! ece90d62c41a28fcb316be2ff6ec99a9  libsanitizer/sanitizer_common/sanitizer_stackdepot.h
! 7dfaa062c96cf19523a63800af95f61f  libsanitizer/sanitizer_common/sanitizer_stackdepotbase.h
  7fab594cee994193cd21982e73ace63e  libsanitizer/sanitizer_common/sanitizer_stacktrace.cpp
  b647c573b756151c66842f4029cc50c8  libsanitizer/sanitizer_common/sanitizer_stacktrace.h
! a0239ea33a0aa9852e7a41bfcc9a4d23  libsanitizer/sanitizer_common/sanitizer_stacktrace_libcdep.cpp
! c924ab59f0a14028d44589b5772ec4a4  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.cpp
! 633c7a616408195d104492b3f8d74d39  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.h
! 5ca09ec40d6a2d96e5146f3711376479  libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cpp
  76324ac84f5eb512c3e2351dbfd9ce24  libsanitizer/sanitizer_common/sanitizer_stoptheworld.h
  c1faa837dd50d9ad2162751a200fa58b  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp
  60c0888eff94b59773f87548c52f756a  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.h
! 98a554043ebfdd95ff2987dd09c6d64e  libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
  c22a391491d33bcbef7758f001dc204d  libsanitizer/sanitizer_common/sanitizer_stoptheworld_mac.cpp
! 0f7617268ce454b6bb3c1180966d7092  libsanitizer/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
  bdb416b455b14acf317962318eb84924  libsanitizer/sanitizer_common/sanitizer_stoptheworld_win.cpp
! fe8c1a0a2761d65e1bb01489459babb2  libsanitizer/sanitizer_common/sanitizer_suppressions.cpp
  6dc05d23b94fb4783618dcd3cd4b1c9f  libsanitizer/sanitizer_common/sanitizer_suppressions.h
  9f7aefe7272c0c1ac5c83fba7988c9d3  libsanitizer/sanitizer_common/sanitizer_symbolizer.cpp
! e1a480087ee92ca2798a0b831172ba8f  libsanitizer/sanitizer_common/sanitizer_symbolizer.h
  7f944ae09b27a906e595c100e8e459ee  libsanitizer/sanitizer_common/sanitizer_symbolizer_internal.h
  86502e8ef2c025574561f9f604e8652d  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
  57fad0f520b4b3e56bb19ce40a50676a  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
! 80669b590a417ebc2275714b67f9b450  libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
! e43082e26d355a72cad2912e888f797b  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.cpp
  cf53e533bc415a2a97e702de211878f1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.h
! abf52a3e832c9712775d39369c36700c  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.cpp
! 8d6bcc9e7430f340fc5568c35561d488  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.h
! 98b8ab75645b13d047205e528a21b227  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup_constants.h
! f1ec702dc3a4a44acfae0a30bc3c6618  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup_fuchsia.cpp
! 7f0871614fbeb39a46b3c3cdc3fe9598  libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
! f7d3dc332f1ca461481b2cadb3e970b5  libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
! cdddef85fd548c558a0e39808c64bb86  libsanitizer/sanitizer_common/sanitizer_symbolizer_report_fuchsia.cpp
! 4911379d3e13fcc97ce842cfacf45d4e  libsanitizer/sanitizer_common/sanitizer_symbolizer_win.cpp
  10bef8250d15b767f78688de7350a2a0  libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc
  9546e0a896837e1fc30d0f1421f2b220  libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
  0711f1c23e48efd357f77c0be4ab551c  libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc
*************** a14b05d5a122d962a0d8d477334c65e1  libsan
*** 122778,122810 ****
  e5a40190912f9655e972ed0025bf35f3  libsanitizer/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
  d8a9b7fa2b04f6a9489b693d2827c76a  libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
  dd3c422b6984d35ca7d0c2b990a064f7  libsanitizer/sanitizer_common/sanitizer_termination.cpp
! 9de2c0de4f09c0896aea014be6f878ea  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.cpp
! 90aff76fd964c34268b5b763716b2119  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.h
! 8f5ece2b5ed4c78c4bfae5d91ff9487e  libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp
! d00617e0240d20e556ffe9e9a03b177b  libsanitizer/sanitizer_common/sanitizer_thread_registry.h
  f337f2c9c679c772ddff2564c1e814e5  libsanitizer/sanitizer_common/sanitizer_thread_safety.h
! b8a0496996515c2230d13b6dd3907e7e  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.cpp
! b4526e156df12b232b2045b83c36f09f  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.h
  daf0a3ec50a14c09b41741865f11e807  libsanitizer/sanitizer_common/sanitizer_type_traits.cpp
  c7100b0c25734fc3c76d5416db5be325  libsanitizer/sanitizer_common/sanitizer_type_traits.h
  8b294afb5681a0b6adddd1dc224e8eb3  libsanitizer/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
! c81b4e41a8e4b42c37701357d1273b78  libsanitizer/sanitizer_common/sanitizer_unwind_win.cpp
  c6626ead5ce5eff397b6675bbf291cde  libsanitizer/sanitizer_common/sanitizer_vector.h
! e2442ccc6439126b7669c78afaaee071  libsanitizer/sanitizer_common/sanitizer_win.cpp
  ca31c361d0d8cc286a9c2a79da57a3ed  libsanitizer/sanitizer_common/sanitizer_win.h
  3a867f4ebec3e726e51526c82c85c978  libsanitizer/sanitizer_common/sanitizer_win_defs.h
! 192408cb784e2738287506aefa3d586d  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.cpp
! 3ba9cfc51a7bc5c10f9ec7074a16be60  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.h
! c8748a0184d2e5e1b50d9c106e5a45f1  libsanitizer/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp
! 61159becd1bfb41004e8fef8a36ccc1c  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.cpp
! eb330b64a368e29af662c65273f49815  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.h
! bc7086b0a2c7fae09dee84a73af06b21  libsanitizer/tsan/Makefile.am
! 50080a4adcf1dc19f8aec1c7edd9e94e  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
  c9463f7672b8955c8c5a62008e50d172  libsanitizer/tsan/tsan_debugging.cpp
! 3cb402cb2391c0a09d0d90ea374ab9b7  libsanitizer/tsan/tsan_defs.h
  2b8f57d3e2eee47095d7d41f44964f41  libsanitizer/tsan/tsan_dense_alloc.h
! 3104498336ec8a608c8338ecf1048b03  libsanitizer/tsan/tsan_dispatch_defs.h
  739c3934d530a14499813584df8a16d0  libsanitizer/tsan/tsan_external.cpp
  3d494f806f28e53275870211565852ef  libsanitizer/tsan/tsan_fd.cpp
  84644dcbcc7cf34528393f9790a85897  libsanitizer/tsan/tsan_fd.h
--- 131094,131129 ----
  e5a40190912f9655e972ed0025bf35f3  libsanitizer/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
  d8a9b7fa2b04f6a9489b693d2827c76a  libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
  dd3c422b6984d35ca7d0c2b990a064f7  libsanitizer/sanitizer_common/sanitizer_termination.cpp
! 995ce0fdf689a4588986a4fb1c206f58  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.cpp
! a7531068a4273b1bec8fd603f49f392f  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.h
! 902db1424df4d3b0660b1c65d7e09958  libsanitizer/sanitizer_common/sanitizer_thread_history.cpp
! 100d934af5f35007d9f12fd7926b344f  libsanitizer/sanitizer_common/sanitizer_thread_history.h
! 24ea9b7ab5b6de38df61d14d6808628f  libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp
! 5f71ee79c0197391a5c670da69dfe7cb  libsanitizer/sanitizer_common/sanitizer_thread_registry.h
  f337f2c9c679c772ddff2564c1e814e5  libsanitizer/sanitizer_common/sanitizer_thread_safety.h
! 81cfeed5164e74c68231f3c47a11842f  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.cpp
! b6930b12d743a8868664486ff99904ae  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.h
  daf0a3ec50a14c09b41741865f11e807  libsanitizer/sanitizer_common/sanitizer_type_traits.cpp
  c7100b0c25734fc3c76d5416db5be325  libsanitizer/sanitizer_common/sanitizer_type_traits.h
+ 011c202871bc5910625c34ae50dc7f03  libsanitizer/sanitizer_common/sanitizer_unwind_fuchsia.cpp
  8b294afb5681a0b6adddd1dc224e8eb3  libsanitizer/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
! eb0550c92bfbe239a01f3c921491c107  libsanitizer/sanitizer_common/sanitizer_unwind_win.cpp
  c6626ead5ce5eff397b6675bbf291cde  libsanitizer/sanitizer_common/sanitizer_vector.h
! 5647f17e36c6788f43d8590da9c312d7  libsanitizer/sanitizer_common/sanitizer_win.cpp
  ca31c361d0d8cc286a9c2a79da57a3ed  libsanitizer/sanitizer_common/sanitizer_win.h
  3a867f4ebec3e726e51526c82c85c978  libsanitizer/sanitizer_common/sanitizer_win_defs.h
! ad4e673c6991ddc18b59c25260ab7126  libsanitizer/sanitizer_common/sanitizer_win_immortalize.h
! aa4b962e69be86919c293ae4a3c82a2b  libsanitizer/sanitizer_common/sanitizer_win_interception.cpp
! 42ca7b2c876c3d47a803e3f1995eca1d  libsanitizer/sanitizer_common/sanitizer_win_interception.h
! 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
  2b8f57d3e2eee47095d7d41f44964f41  libsanitizer/tsan/tsan_dense_alloc.h
! 3f795e350589a36d74082d95246390a7  libsanitizer/tsan/tsan_dispatch_defs.h
  739c3934d530a14499813584df8a16d0  libsanitizer/tsan/tsan_external.cpp
  3d494f806f28e53275870211565852ef  libsanitizer/tsan/tsan_fd.cpp
  84644dcbcc7cf34528393f9790a85897  libsanitizer/tsan/tsan_fd.h
*************** d419772368c76a807ff66bafd0683028  libsan
*** 122816,122868 ****
  45bd7ec3e79167e3101e35f5ba81d51b  libsanitizer/tsan/tsan_ilist.h
  06a4b4cb6505540e613b010a75484946  libsanitizer/tsan/tsan_interceptors.h
  5ae7905d35628b6e1eed00f1fc25caa7  libsanitizer/tsan/tsan_interceptors_libdispatch.cpp
! 035179eff5a0fe4676a0b61658f71d42  libsanitizer/tsan/tsan_interceptors_mac.cpp
  a83781c196d253d2f7538367873b4d65  libsanitizer/tsan/tsan_interceptors_mach_vm.cpp
  fad10d5e8278f758dbd89e63f71aae9d  libsanitizer/tsan/tsan_interceptors_memintrinsics.cpp
! 265b0ba0499bbb4624aac82784c7f777  libsanitizer/tsan/tsan_interceptors_posix.cpp
  44e87b9222e50e4ce561458989a58e85  libsanitizer/tsan/tsan_interface.cpp
  13f1c6ec638214307e59922e63b441cb  libsanitizer/tsan/tsan_interface.h
  12c2d0a710c7eb00a61b269e3a5e2444  libsanitizer/tsan/tsan_interface.inc
! a972ff75c948c2898f836567e365f225  libsanitizer/tsan/tsan_interface_ann.cpp
  85e02689af55fa1cc3f98b5cfe3043a1  libsanitizer/tsan/tsan_interface_ann.h
  f098696b72ba6c84c36e80dd22ca5fe1  libsanitizer/tsan/tsan_interface_atomic.cpp
  fa41f071fdf51b20a993550241165dfd  libsanitizer/tsan/tsan_interface_java.cpp
  b6f28fd4519c6bc2e8cd9cdb820f72a8  libsanitizer/tsan/tsan_interface_java.h
  c7957f47ce5239b5caf8b53459f90f6e  libsanitizer/tsan/tsan_malloc_mac.cpp
  2ce89d665869a9e29509f68c3b093511  libsanitizer/tsan/tsan_md5.cpp
! 3a6953dd73cd623e0a13e0a87c5b1679  libsanitizer/tsan/tsan_mman.cpp
! 4d1f89b863af5a63e195ef894d03ec41  libsanitizer/tsan/tsan_mman.h
  fce523833cd619da90b4bb9efe7126aa  libsanitizer/tsan/tsan_mutexset.cpp
  5c2fffc76ce06a684d8c9fe407d8d735  libsanitizer/tsan/tsan_mutexset.h
  abb77573543b4ca2e18a84ae834d8ff7  libsanitizer/tsan/tsan_new_delete.cpp
! dd175c5cc97611eeb0a13dd2cb9c4cc0  libsanitizer/tsan/tsan_platform.h
! ffb967b5f13d9641d31afa9b62f01800  libsanitizer/tsan/tsan_platform_linux.cpp
! 78d132b697c82d459c129afb535ff70a  libsanitizer/tsan/tsan_platform_mac.cpp
! 8224f95ca4a69ba0feef1f52c598fcb0  libsanitizer/tsan/tsan_platform_posix.cpp
  3988e672409da51d77f562f3c17ad309  libsanitizer/tsan/tsan_platform_windows.cpp
  52a08181bf0cebd537f6ff681e4201d2  libsanitizer/tsan/tsan_ppc_regs.h
! 26e9eb9d1219608d4a3f8b5de755e6c7  libsanitizer/tsan/tsan_preinit.cpp
! 6b5ea016af0d4d7772b83b3da333cf22  libsanitizer/tsan/tsan_report.cpp
  c68d61aeee9a11bc4c3a287966347eb9  libsanitizer/tsan/tsan_report.h
! 640e534b1122906ae708891d6910c7ae  libsanitizer/tsan/tsan_rtl.cpp
! b17b88da9c9ed34ed36dd43ecf025125  libsanitizer/tsan/tsan_rtl.h
! be571e4354cecddcd2411e64a512b9f9  libsanitizer/tsan/tsan_rtl_aarch64.S
! a162c81534f415464750599a907f5adc  libsanitizer/tsan/tsan_rtl_access.cpp
  21a51361f4b9d69ba544bd2b24129994  libsanitizer/tsan/tsan_rtl_amd64.S
  9c988affea81c858d52b1b7ebf21e3b3  libsanitizer/tsan/tsan_rtl_loongarch64.S
  2e223da4b198b7996aa993b62da9470c  libsanitizer/tsan/tsan_rtl_mips64.S
! 6377ac5d4eaf7ca164273ec46eac6d26  libsanitizer/tsan/tsan_rtl_mutex.cpp
  d771c907949512e86f6221398475c2c1  libsanitizer/tsan/tsan_rtl_ppc64.S
  d23feb95e5ade35c9d1fa0203dfc64bb  libsanitizer/tsan/tsan_rtl_proc.cpp
  f3053726fb4fce5a28eec514926684eb  libsanitizer/tsan/tsan_rtl_report.cpp
  39578f7f0f1d3c5038bb6d1efb8d1335  libsanitizer/tsan/tsan_rtl_riscv64.S
  28f4e3484ccd9079551dd4c92a0c47f2  libsanitizer/tsan/tsan_rtl_s390x.S
! fc56488c2329a1f25fd4f02e96bd2888  libsanitizer/tsan/tsan_rtl_thread.cpp
  a10771eef091e41d3529a27da63b2c73  libsanitizer/tsan/tsan_shadow.h
  17ea88c98da50f5e75f508e49c6e098e  libsanitizer/tsan/tsan_spinlock_defs_mac.h
  d927f16e28e5fd7b5a8c718f575d7a09  libsanitizer/tsan/tsan_stack_trace.cpp
  fcdf88c4922b4bf531859f5e19f37f19  libsanitizer/tsan/tsan_stack_trace.h
! 4a4f5438536fc0f3b1e8145c79f442e7  libsanitizer/tsan/tsan_suppressions.cpp
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
--- 131135,131187 ----
  45bd7ec3e79167e3101e35f5ba81d51b  libsanitizer/tsan/tsan_ilist.h
  06a4b4cb6505540e613b010a75484946  libsanitizer/tsan/tsan_interceptors.h
  5ae7905d35628b6e1eed00f1fc25caa7  libsanitizer/tsan/tsan_interceptors_libdispatch.cpp
! 3dd09fadeccfcff17c53d9f3d477d441  libsanitizer/tsan/tsan_interceptors_mac.cpp
  a83781c196d253d2f7538367873b4d65  libsanitizer/tsan/tsan_interceptors_mach_vm.cpp
  fad10d5e8278f758dbd89e63f71aae9d  libsanitizer/tsan/tsan_interceptors_memintrinsics.cpp
! 4c2b8322723730eb16592589a5b5132e  libsanitizer/tsan/tsan_interceptors_posix.cpp
  44e87b9222e50e4ce561458989a58e85  libsanitizer/tsan/tsan_interface.cpp
  13f1c6ec638214307e59922e63b441cb  libsanitizer/tsan/tsan_interface.h
  12c2d0a710c7eb00a61b269e3a5e2444  libsanitizer/tsan/tsan_interface.inc
! d9d264f1180f3469f037bda22866604c  libsanitizer/tsan/tsan_interface_ann.cpp
  85e02689af55fa1cc3f98b5cfe3043a1  libsanitizer/tsan/tsan_interface_ann.h
  f098696b72ba6c84c36e80dd22ca5fe1  libsanitizer/tsan/tsan_interface_atomic.cpp
  fa41f071fdf51b20a993550241165dfd  libsanitizer/tsan/tsan_interface_java.cpp
  b6f28fd4519c6bc2e8cd9cdb820f72a8  libsanitizer/tsan/tsan_interface_java.h
  c7957f47ce5239b5caf8b53459f90f6e  libsanitizer/tsan/tsan_malloc_mac.cpp
  2ce89d665869a9e29509f68c3b093511  libsanitizer/tsan/tsan_md5.cpp
! 11161e3f887648c3ad7a5e16c86b867a  libsanitizer/tsan/tsan_mman.cpp
! 9aae8d8fa5ebb886928f6ad7ce84afc6  libsanitizer/tsan/tsan_mman.h
  fce523833cd619da90b4bb9efe7126aa  libsanitizer/tsan/tsan_mutexset.cpp
  5c2fffc76ce06a684d8c9fe407d8d735  libsanitizer/tsan/tsan_mutexset.h
  abb77573543b4ca2e18a84ae834d8ff7  libsanitizer/tsan/tsan_new_delete.cpp
! 21013f34fb38c39d923a4becc4cf3f4c  libsanitizer/tsan/tsan_platform.h
! 0ba234829c39ce12f5c331a7ef21f946  libsanitizer/tsan/tsan_platform_linux.cpp
! a5f1c5f77db8e9f3000e80a2e79061cf  libsanitizer/tsan/tsan_platform_mac.cpp
! a2153ea5e715c8b4cbd27c7974257d1b  libsanitizer/tsan/tsan_platform_posix.cpp
  3988e672409da51d77f562f3c17ad309  libsanitizer/tsan/tsan_platform_windows.cpp
  52a08181bf0cebd537f6ff681e4201d2  libsanitizer/tsan/tsan_ppc_regs.h
! 60c37ff46cc77df61a768bb1f5b8fe36  libsanitizer/tsan/tsan_preinit.cpp
! 7db544717620fcdfff2dff23ba583ee2  libsanitizer/tsan/tsan_report.cpp
  c68d61aeee9a11bc4c3a287966347eb9  libsanitizer/tsan/tsan_report.h
! fa80d813475718c4f54ce0d0761d8470  libsanitizer/tsan/tsan_rtl.cpp
! dca5f89ede3069ad9ba42144ac8343ad  libsanitizer/tsan/tsan_rtl.h
! 8c47cfcb64eab03f1b479fe81b8f28ab  libsanitizer/tsan/tsan_rtl_aarch64.S
! b6a8ad241afad6f1ad8719389ee85006  libsanitizer/tsan/tsan_rtl_access.cpp
  21a51361f4b9d69ba544bd2b24129994  libsanitizer/tsan/tsan_rtl_amd64.S
  9c988affea81c858d52b1b7ebf21e3b3  libsanitizer/tsan/tsan_rtl_loongarch64.S
  2e223da4b198b7996aa993b62da9470c  libsanitizer/tsan/tsan_rtl_mips64.S
! 5204d8d4182b601b778c97e5c50fd8fe  libsanitizer/tsan/tsan_rtl_mutex.cpp
  d771c907949512e86f6221398475c2c1  libsanitizer/tsan/tsan_rtl_ppc64.S
  d23feb95e5ade35c9d1fa0203dfc64bb  libsanitizer/tsan/tsan_rtl_proc.cpp
  f3053726fb4fce5a28eec514926684eb  libsanitizer/tsan/tsan_rtl_report.cpp
  39578f7f0f1d3c5038bb6d1efb8d1335  libsanitizer/tsan/tsan_rtl_riscv64.S
  28f4e3484ccd9079551dd4c92a0c47f2  libsanitizer/tsan/tsan_rtl_s390x.S
! 0e4c3cb20831d3c6b2f713091b53f792  libsanitizer/tsan/tsan_rtl_thread.cpp
  a10771eef091e41d3529a27da63b2c73  libsanitizer/tsan/tsan_shadow.h
  17ea88c98da50f5e75f508e49c6e098e  libsanitizer/tsan/tsan_spinlock_defs_mac.h
  d927f16e28e5fd7b5a8c718f575d7a09  libsanitizer/tsan/tsan_stack_trace.cpp
  fcdf88c4922b4bf531859f5e19f37f19  libsanitizer/tsan/tsan_stack_trace.h
! 1a3b971acb334d164e95ad12485e8cd3  libsanitizer/tsan/tsan_suppressions.cpp
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
*************** ac99e2a1604f10691ceb3d4a4600d0ed  libsan
*** 122870,122939 ****
  6f7b135e2c27d09f0db426a5f7427966  libsanitizer/tsan/tsan_sync.h
  8ca6a9e7f5c97b2069ca2eb034d7b61f  libsanitizer/tsan/tsan_trace.h
  7043f9d2d6d55a4a9dad3179e81ac578  libsanitizer/tsan/tsan_vector_clock.cpp
! 5f66ec32201aa975081f4ec4905d1343  libsanitizer/tsan/tsan_vector_clock.h
! a579dd7891454b86a0c06d5cd95fe628  libsanitizer/ubsan/Makefile.am
! 1aaa880ab3bc92764d9b71d2587f13b5  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
  09adf5cec3b2e75084c18928b377c4f3  libsanitizer/ubsan/ubsan_checks.inc
! 97c87b47edb4d23a6f71bed86b8e627c  libsanitizer/ubsan/ubsan_diag.cpp
! 78ecfd51a2b4b88d4595bb54c66abc8a  libsanitizer/ubsan/ubsan_diag.h
! e5abe4d439045c7ad13bf70bc237033f  libsanitizer/ubsan/ubsan_diag_standalone.cpp
  e3592cc9006c6b039a3cec6a3bf25efb  libsanitizer/ubsan/ubsan_flags.cpp
  c6447e64133bd56b1aa97dde6c16675f  libsanitizer/ubsan/ubsan_flags.h
  b27e02f11f51c44900f55d9f84490952  libsanitizer/ubsan/ubsan_flags.inc
! d24dda283ed3d572867287a63f7faab7  libsanitizer/ubsan/ubsan_handlers.cpp
! e8f2db5b019b64af9534d22e15cb47a0  libsanitizer/ubsan/ubsan_handlers.h
  0b47c9e3d0dd3bca13d9aabbfd1435aa  libsanitizer/ubsan/ubsan_handlers_cxx.cpp
  f68334ffc0e5ade2b4d76ef6927bebcb  libsanitizer/ubsan/ubsan_handlers_cxx.h
! f9ec1b0c9f332b087aa8f2d61ec0337b  libsanitizer/ubsan/ubsan_init.cpp
  6e2f838f2a1a00942ff6a510da152fac  libsanitizer/ubsan/ubsan_init.h
  6709b25bace5613d327e12057227eefc  libsanitizer/ubsan/ubsan_init_standalone.cpp
! 8b7c4cd2bd1ad8759b5d13c230fffb54  libsanitizer/ubsan/ubsan_init_standalone_preinit.cpp
  e370a3970bedb3db6e6c15b4c76c79b6  libsanitizer/ubsan/ubsan_interface.inc
  d86be2442566cf10902db54006f9794e  libsanitizer/ubsan/ubsan_monitor.cpp
  7311068be7eacbc04a232416cd95a29d  libsanitizer/ubsan/ubsan_monitor.h
  10edc94e5e8978df9e90a2d71b857b1a  libsanitizer/ubsan/ubsan_platform.h
! f8c2f7617c64e80f307fcd8f910dfac3  libsanitizer/ubsan/ubsan_signals_standalone.cpp
  80d12dc787dd1f9c2aff6e99ccf028a3  libsanitizer/ubsan/ubsan_signals_standalone.h
  c334521cda7aa18f71d0584166e5ed32  libsanitizer/ubsan/ubsan_type_hash.cpp
  cc7b9d72793a57ce775ed182634de360  libsanitizer/ubsan/ubsan_type_hash.h
! 80fbb3b60d4cc56d02b52268e4843ff2  libsanitizer/ubsan/ubsan_type_hash_itanium.cpp
  07c0334c044295c3fef2cabbb9973477  libsanitizer/ubsan/ubsan_type_hash_win.cpp
! da9dc2f23d9a9051a9539f05e372fcc5  libsanitizer/ubsan/ubsan_value.cpp
! bd58abd803667b3373381b6bb1b68f1b  libsanitizer/ubsan/ubsan_value.h
! 545e91fffb8d4987ca5d1c0054aadd11  libsanitizer/ubsan/ubsan_win_dll_thunk.cpp
! e9c85349d92ab1a6b66d0872077acd3b  libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp
! 72f297f487b6bb9db917cce361192c28  libsanitizer/ubsan/ubsan_win_weak_interception.cpp
! 625edcf76569c14f49e61780511e761a  libssp/ChangeLog
! 33b3a77c212c1263e92db5557b3cba2f  libssp/Makefile.am
! b265829fee949abbdeb896cbf2f9397d  libssp/Makefile.in
  f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
  91a807dee830170e3dc7cde11ae0662d  libssp/config.h.in
  ba49ad9141182570be4775bbda8fa6ed  libssp/configure
  89a15c32762c1812155bed2afe5a0ad0  libssp/configure.ac
! 0f569dfa7b6d46555ca81bf693831870  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
! 2c060c74b8952132c1206b5b072c46b4  libssp/memcpy-chk.c
! dec7dcb8f04fc4e7a9b4ef1bb045d9ed  libssp/memmove-chk.c
! 7df8b09544bc5c2c247ca4e26effb73e  libssp/mempcpy-chk.c
! 7b5b7334c3fb4c8fda888fa6d040f5c1  libssp/memset-chk.c
! f206460a4273a38616cc0d924eb3cfbc  libssp/snprintf-chk.c
! 5c3bb227ac0a3996f62533750dde9c0e  libssp/sprintf-chk.c
! 2ea2c5e90dc6fe38c1d1d04a6920becb  libssp/ssp-local.c
! 54ab9bd44c2772aa5155b986b48953e3  libssp/ssp.c
  a45e2fbfb70a8e0d68d726bb31ffe4cd  libssp/ssp.map
! 3f60e93570226d0cb4779d5b50b1171a  libssp/ssp/ssp.h.in
! a0ff02a28214ae2c0a556f67f2c2f5b9  libssp/ssp/stdio.h
! eb91204690c2b1ec4886d9edeb7e24d5  libssp/ssp/string.h
! 618a2af61f2f73d4623090d811cd239d  libssp/ssp/unistd.h
! 03e5012e1077193f6e3275c988725b0c  libssp/stpcpy-chk.c
! d828e38384c506bf5e7d5a3c02725a37  libssp/strcat-chk.c
! 6bd0bed6a78b11a5c75628a9c7cef917  libssp/strcpy-chk.c
! 83a89c244358cd2b7f6243f31ebd06c1  libssp/strncat-chk.c
! 7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
! a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
! 145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 44273f752fe6c7a2a20a9fc78772c274  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 131189,131257 ----
  6f7b135e2c27d09f0db426a5f7427966  libsanitizer/tsan/tsan_sync.h
  8ca6a9e7f5c97b2069ca2eb034d7b61f  libsanitizer/tsan/tsan_trace.h
  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
! 9128b5c2caa5c47d8afbac66a4ca0e52  libsanitizer/ubsan/ubsan_diag.h
! 909d094c1bf4569acc8c978d3f3e22b2  libsanitizer/ubsan/ubsan_diag_standalone.cpp
  e3592cc9006c6b039a3cec6a3bf25efb  libsanitizer/ubsan/ubsan_flags.cpp
  c6447e64133bd56b1aa97dde6c16675f  libsanitizer/ubsan/ubsan_flags.h
  b27e02f11f51c44900f55d9f84490952  libsanitizer/ubsan/ubsan_flags.inc
! d0304dbd04248253797b62c4db795d07  libsanitizer/ubsan/ubsan_handlers.cpp
! 34299cae3736d7df13faa9bd0ae27581  libsanitizer/ubsan/ubsan_handlers.h
  0b47c9e3d0dd3bca13d9aabbfd1435aa  libsanitizer/ubsan/ubsan_handlers_cxx.cpp
  f68334ffc0e5ade2b4d76ef6927bebcb  libsanitizer/ubsan/ubsan_handlers_cxx.h
! 9d08bdf4cae4efd5e51640e730a32049  libsanitizer/ubsan/ubsan_init.cpp
  6e2f838f2a1a00942ff6a510da152fac  libsanitizer/ubsan/ubsan_init.h
  6709b25bace5613d327e12057227eefc  libsanitizer/ubsan/ubsan_init_standalone.cpp
! 04f80173ed9f5e1dc4c569c15772f2f1  libsanitizer/ubsan/ubsan_init_standalone_preinit.cpp
  e370a3970bedb3db6e6c15b4c76c79b6  libsanitizer/ubsan/ubsan_interface.inc
  d86be2442566cf10902db54006f9794e  libsanitizer/ubsan/ubsan_monitor.cpp
  7311068be7eacbc04a232416cd95a29d  libsanitizer/ubsan/ubsan_monitor.h
  10edc94e5e8978df9e90a2d71b857b1a  libsanitizer/ubsan/ubsan_platform.h
! 06498b8dd96eb4aa136ecad80b88203e  libsanitizer/ubsan/ubsan_signals_standalone.cpp
  80d12dc787dd1f9c2aff6e99ccf028a3  libsanitizer/ubsan/ubsan_signals_standalone.h
  c334521cda7aa18f71d0584166e5ed32  libsanitizer/ubsan/ubsan_type_hash.cpp
  cc7b9d72793a57ce775ed182634de360  libsanitizer/ubsan/ubsan_type_hash.h
! f01966720c236be4a6f849bb79c2e3a0  libsanitizer/ubsan/ubsan_type_hash_itanium.cpp
  07c0334c044295c3fef2cabbb9973477  libsanitizer/ubsan/ubsan_type_hash_win.cpp
! 36c349526a8bcc6a104185c4571b5363  libsanitizer/ubsan/ubsan_value.cpp
! f95aed5d713e73ada16956190fa4ac58  libsanitizer/ubsan/ubsan_value.h
! f44dc970bc1adae9a128b178a339fd0e  libsanitizer/ubsan/ubsan_win_runtime_thunk.cpp
! e156d460e06759d0d2fcc4ea0da2cd3f  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
! 1ada6d601ce929e372509abcad7718a4  libssp/memcpy-chk.c
! e4aac77adcb57e95de6661f70dcc84e1  libssp/memmove-chk.c
! 126f9046a19a98d73626d5ed7c66506c  libssp/mempcpy-chk.c
! 06bacfc336bc9059d3e7b109ce62ac5c  libssp/memset-chk.c
! 411fa727495ea9d2a3df1ce62ba6be0b  libssp/snprintf-chk.c
! 5e591e994c9c86726a00063b38ab6ddd  libssp/sprintf-chk.c
! 7ebdecdd59471a57fccdb8d10b42aefe  libssp/ssp-local.c
! 8cdd406af0ff05ccb0e9100ed013bc5c  libssp/ssp.c
  a45e2fbfb70a8e0d68d726bb31ffe4cd  libssp/ssp.map
! 638c114ff50eccb2965f3fbcf8ca682e  libssp/ssp/ssp.h.in
! d85a7a6afd0b9caff41443fe09eefa5a  libssp/ssp/stdio.h
! c309cf29d3b25d93bf2ab29f102da3d5  libssp/ssp/string.h
! 1f4781834bb95dcccd0d82b01d564a31  libssp/ssp/unistd.h
! f45064a7f0dcc96aa20fde7095385c4e  libssp/stpcpy-chk.c
! 6e2ce8fc54e0d185490eb7d363b17b43  libssp/strcat-chk.c
! 3b57fd995f6cd9d567e32df121b02e4f  libssp/strcpy-chk.c
! d680e7307fb59fe24f8431e179191f16  libssp/strncat-chk.c
! 8477fd032a5d9556d4982c8af668cff7  libssp/strncpy-chk.c
! 534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
! 34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
! 9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 705a8165ab6ebc891eee051eb7b739d5  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** e439f9cd44c3a32cd74360d823502cef  libstd
*** 122949,122955 ****
  c5360387aec757f842dc6eb25ab7b966  libstdc++-v3/ChangeLog-2010
  cc62750c7521b28e9ccc412d82b41c30  libstdc++-v3/ChangeLog-2011
  f35941c59a16039a2da7e3bf66528e69  libstdc++-v3/ChangeLog-2012
! d32e923dd488c48b645a9ff5d12211a8  libstdc++-v3/ChangeLog-2013
  b331fae97e334afde1bd5fa125610458  libstdc++-v3/ChangeLog-2014
  8a8f082302e2eb659ac02e5036cccc4a  libstdc++-v3/ChangeLog-2015
  7bafaec51877b01c0fa5a1c20b004559  libstdc++-v3/ChangeLog-2016
--- 131267,131273 ----
  c5360387aec757f842dc6eb25ab7b966  libstdc++-v3/ChangeLog-2010
  cc62750c7521b28e9ccc412d82b41c30  libstdc++-v3/ChangeLog-2011
  f35941c59a16039a2da7e3bf66528e69  libstdc++-v3/ChangeLog-2012
! f7a5ac836bea0317839be8950aeb66b3  libstdc++-v3/ChangeLog-2013
  b331fae97e334afde1bd5fa125610458  libstdc++-v3/ChangeLog-2014
  8a8f082302e2eb659ac02e5036cccc4a  libstdc++-v3/ChangeLog-2015
  7bafaec51877b01c0fa5a1c20b004559  libstdc++-v3/ChangeLog-2016
*************** ced62eb7e4ae82690abb361aefcea876  libstd
*** 122958,122981 ****
  a8f4290dba5b481ad426148a03c75dd0  libstdc++-v3/ChangeLog-2019
  0f81783bc492458ec96cea677852a49c  libstdc++-v3/ChangeLog-2020
  80dfa9a5544b6411fbf1fb50c37abdaa  libstdc++-v3/ChangeLog-2021
! 69469ccef96be33069fcee2e2e019c04  libstdc++-v3/ChangeLog-2022
! 32e946b396946d57b6bdde2673bd9777  libstdc++-v3/ChangeLog-2023
! fdc4927d68eae63a30df5398f6d16407  libstdc++-v3/Makefile.am
! 1cebb76f8b9e3d20abd9512835fe4f16  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! e7cef22fddc1b3f17f44cee8b6ecebbd  libstdc++-v3/acinclude.m4
  13f29ef95664bfe876c83f7743ca504d  libstdc++-v3/aclocal.m4
! 485e268fee87415ff98cef8da214adf8  libstdc++-v3/config.h.in
! dd409cf77ca6cd8666d4a962b66877ab  libstdc++-v3/config/abi/compatibility.h
! 0dc23f94fb14b6d2d00c479b330c3bdf  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
  2aa3eecf221694c7bca037536cfc26de  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 8cf07bff5c860693f0f0d51bc0e41ec2  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! e797bdb2e388c82ae03d7f33983e8d8c  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! f08453ed7791293c2f259abdd7737beb  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
  01500b319bb297b4059106c465b92567  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 21a3379292743f4d47dd7679481adb5b  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
--- 131276,131300 ----
  a8f4290dba5b481ad426148a03c75dd0  libstdc++-v3/ChangeLog-2019
  0f81783bc492458ec96cea677852a49c  libstdc++-v3/ChangeLog-2020
  80dfa9a5544b6411fbf1fb50c37abdaa  libstdc++-v3/ChangeLog-2021
! 558bc9ac46bb09da0ecd634a9d046bdf  libstdc++-v3/ChangeLog-2022
! 73b3f28a75dc2722a3bbd6d45e6170c1  libstdc++-v3/ChangeLog-2023
! a94321c8d0dbbc71741ebf0f1cc9828c  libstdc++-v3/ChangeLog-2024
! b569b721263ae74c6a8e285903fb9906  libstdc++-v3/Makefile.am
! 5ae0a394d413d225772c3b38a114cce2  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! f801ad9baad07e266be912cfec758b44  libstdc++-v3/acinclude.m4
  13f29ef95664bfe876c83f7743ca504d  libstdc++-v3/aclocal.m4
! 3db093be66a490a9df3a791f64d34dd4  libstdc++-v3/config.h.in
! 9e25b4e524e0d639f272a9e96bab0ce3  libstdc++-v3/config/abi/compatibility.h
! 0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
  2aa3eecf221694c7bca037536cfc26de  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 13f901be7333a2072916659b04e88e8d  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! d45eb5f70812c01e9571ca948c4da8cd  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! 0feacae434c67857f81d494f83cf3851  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
  01500b319bb297b4059106c465b92567  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 97784a5e669593e12f36ff38c1ed28cd  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
*************** f08453ed7791293c2f259abdd7737beb  libstd
*** 122983,123177 ****
  a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
  a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
  7ee04ac578a5afd9323a6a82564f4e33  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! dff559cad7c992b52d3c2c3cc9d1e330  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! 4e1c0fa130ada6c505c86b52704eabcd  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! 2220d7f759f592da0200159546b654ff  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! fbe7850385a502f2adf2e948fe7f8a81  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! 3612310283680fd13fc53f2846198f18  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
! ebf1c408e326c18c0c1f337bc5108fae  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
! c224a11f9b7b76848462bffd472b20c2  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! f08453ed7791293c2f259abdd7737beb  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! afcac92e48a8a5a8dbb47f19d3ce9e61  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
  47c8d77956f3c48e132885f7b30c2cdf  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
! 2a6f12142df98a9c1309a3293af4ac25  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! fbed43d011049685b198caa9ba5befed  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
! 3becb3c9c166cfa30307f02324f429d2  libstdc++-v3/config/allocator/malloc_allocator_base.h
! f5a16c97ed877ffbc21c454a79b9ae21  libstdc++-v3/config/allocator/new_allocator_base.h
! 1e98f4b71217bda05cd15c8dd54cb147  libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h
! aaaa6c6500e45a7bd1954edd08324a46  libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
! ad3ea5101ba4414b045a989afd54a637  libstdc++-v3/config/cpu/arm/cpu_defines.h
! 12f94bd400b87a26b5ce799752b6da1f  libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
! 7176e9f92febcd639f520a0692b9c3c0  libstdc++-v3/config/cpu/cris/atomic_word.h
! c46e0a2d27d79db91418873a988de3fa  libstdc++-v3/config/cpu/cris/atomicity.h
! 5165caa9bff914a0ca66402ca53fc6f3  libstdc++-v3/config/cpu/generic/atomic_word.h
! c8e4c891dcee20bf86c4f87904dca153  libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h
! 65d424f0025fa397f42d1bced0e6e556  libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
! 4e7d197593fbba3a2339dd851f5dc955  libstdc++-v3/config/cpu/generic/cpu_defines.h
! d4e453c9644c4a35c5354f38d677a14d  libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
! d330894de84d74f4fc6a9fe24aba8198  libstdc++-v3/config/cpu/generic/opt/bits/opt_random.h
! 7b4c4f572c4316e802e69fc519f0ac61  libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
! 19724f297d1e78cd2ac97fc6ee400e1d  libstdc++-v3/config/cpu/hppa/atomicity.h
! 7a300797bf4dd76826a3f998d0df8bc6  libstdc++-v3/config/cpu/i386/atomicity.h
! 013176e905bae3178bfd6bdeb5a0a9a8  libstdc++-v3/config/cpu/i486/atomicity.h
! 7d448cb3bfaf843a2512502ed28f612c  libstdc++-v3/config/cpu/i486/opt/bits/opt_random.h
! 7f5f458cc62e9e70a36cbc1a40c9d79a  libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
  26d0c3551ab31de89ff6dfac25ba5415  libstdc++-v3/config/cpu/loongarch/t-loongarch
! d93b58022b388ddc1fb82687e3c86192  libstdc++-v3/config/cpu/m68k/atomicity.h
! c3ccd07160a9bea2e0993c0c8a7d7693  libstdc++-v3/config/cpu/microblaze/cpu_defines.h
! 5eaba26999beb18addf9dc4031017da1  libstdc++-v3/config/cpu/powerpc/cpu_defines.h
! 2125d10b9efc27578fdc1bd1b2298706  libstdc++-v3/config/cpu/sh/atomicity.h
! eeb172443402d009e2791dabc328b0b0  libstdc++-v3/config/cpu/sparc/atomic_word.h
! 52cd5ecd93103febc0f09c9b88cce85c  libstdc++-v3/config/cpu/sparc/atomicity.h
! c09efc996de5e464e95c5d8321c9a71d  libstdc++-v3/config/io/basic_file_stdio.cc
! b3a8d294ffed3fe630224835ecb5387b  libstdc++-v3/config/io/basic_file_stdio.h
! c582707e4e9d2bf26bb0e80fb1d53b37  libstdc++-v3/config/io/c_io_stdio.h
! 13ad2dfe48847bf3980a6d745cbc75e1  libstdc++-v3/config/locale/darwin/ctype_members.cc
! e53b206e392537d760a00767558c1ff9  libstdc++-v3/config/locale/dragonfly/c_locale.cc
! 0adb1057e008fd5f013ab616ee1061a9  libstdc++-v3/config/locale/dragonfly/c_locale.h
! 1d186bb17bb5ce5a622fb15fbc79ae3d  libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
! b0881a7372e03c96c3ea213f690ebd14  libstdc++-v3/config/locale/dragonfly/collate_members.cc
! 6113408f73996f73c99241e946917f56  libstdc++-v3/config/locale/dragonfly/ctype_members.cc
! 92f6508a276d0a9d159c0678d1c654bb  libstdc++-v3/config/locale/dragonfly/monetary_members.cc
! 4f3c4f7624571cd50df8f0925404c0c2  libstdc++-v3/config/locale/dragonfly/numeric_members.cc
! 468e9a472644789e1e45c797d60fdbc9  libstdc++-v3/config/locale/dragonfly/time_members.cc
! c77fc883d69172857ed8d62241261a0d  libstdc++-v3/config/locale/dragonfly/time_members.h
! 04f405dccb66798d6e0bcffc001a5e6a  libstdc++-v3/config/locale/generic/c++locale_internal.h
! a1da08fa41cc1778d48cde0e63813845  libstdc++-v3/config/locale/generic/c_locale.cc
! 6fe04cea32aa66efbd5151ba3cf7847d  libstdc++-v3/config/locale/generic/c_locale.h
! 4e49f15d8b8185ba2b6613abacb34278  libstdc++-v3/config/locale/generic/codecvt_members.cc
! 00cb99f5cb1183cc23842fdf00e9d271  libstdc++-v3/config/locale/generic/collate_members.cc
! 7bb8e896bf0036fc9f9c43463447abcc  libstdc++-v3/config/locale/generic/ctype_members.cc
! d588967133def576ecbdc4d9ed421478  libstdc++-v3/config/locale/generic/messages_members.cc
! 6dc4814e5fb3ad3d03e37358b95c2032  libstdc++-v3/config/locale/generic/messages_members.h
! 3b068ae8b1aec16d4f75096fb14e3758  libstdc++-v3/config/locale/generic/monetary_members.cc
! 1a9b45d684e5be3087921acd109cb515  libstdc++-v3/config/locale/generic/numeric_members.cc
! 77122b6e80613f411163c8af39b27eb4  libstdc++-v3/config/locale/generic/time_members.cc
! 30baf8e4ff2bc4aec0754558164e887a  libstdc++-v3/config/locale/generic/time_members.h
! df061879108e80be88e96057b7b26d6b  libstdc++-v3/config/locale/gnu/c++locale_internal.h
! f827200593ca85a41d3feae35dbd3928  libstdc++-v3/config/locale/gnu/c_locale.cc
! 4108fd77e3e97184dc6e52e28017410a  libstdc++-v3/config/locale/gnu/c_locale.h
! a26efd5d57232ccc7e13f3e6ff08085f  libstdc++-v3/config/locale/gnu/codecvt_members.cc
! eeb967fe13307d9b093daebb51717a49  libstdc++-v3/config/locale/gnu/collate_members.cc
! 010485948df26bb145ef467f2ebe5a90  libstdc++-v3/config/locale/gnu/ctype_members.cc
! 8dc72a159ed04c00cc58e7240a5f1005  libstdc++-v3/config/locale/gnu/messages_members.cc
! 766a7b4141af8269fb767072b267110b  libstdc++-v3/config/locale/gnu/messages_members.h
! cee5d2a8fdfb262f94117ec64b780881  libstdc++-v3/config/locale/gnu/monetary_members.cc
! e5d634c408de69c79c62cd84be1429b2  libstdc++-v3/config/locale/gnu/numeric_members.cc
! ccecee145db1692492d6c79c81af15de  libstdc++-v3/config/locale/gnu/time_members.cc
! 5b2be23d67409b71bace9d257ccaa799  libstdc++-v3/config/locale/gnu/time_members.h
! 7af94e170516ac90a71ecf2ea9b71457  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
! e5b08dbaa6c7228d6573f9fa8facf9da  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! c1d96129926ed80e9a5d935ff6362961  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
! 21af8642d390b5cdaddf7711a72be949  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
! e4d7a8e45ddc752e2b4cdb0dde511315  libstdc++-v3/config/locale/newlib/ctype_members.cc
! d00164bed03cb1fc43de46772cb050f9  libstdc++-v3/config/locale/vxworks/ctype_members.cc
! 01ae3c2f2f16317f678957812c14f192  libstdc++-v3/config/os/aix/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/aix/ctype_configure_char.cc
! 4ac9b16352c69c82ea732c7537c267f3  libstdc++-v3/config/os/aix/ctype_inline.h
! 64011d674de3c891a7940567d8e32b80  libstdc++-v3/config/os/aix/os_defines.h
  7d1373c31caa4fdc44bcb11af08b4ab3  libstdc++-v3/config/os/aix/t-aix
! aca6f1f647f4e050a77fcc7c3c69f3e1  libstdc++-v3/config/os/bionic/ctype_base.h
! ed93c9391a37f3cc75cb27e147ad4247  libstdc++-v3/config/os/bionic/ctype_configure_char.cc
! 7c02d99ad667188fcf129355aa0e3531  libstdc++-v3/config/os/bionic/ctype_inline.h
! a1bd8822ec35d463c058a8af51bed685  libstdc++-v3/config/os/bionic/os_defines.h
! 1d5d357556d430f0638b33befc73aeac  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
! 47c702f417ba236bf6d6ca7c1b19c7ba  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! 6c77ec588eb9291ea3403c24ed37310d  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
! df41d5e227c08bc35c33e096800b3c6a  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
! 721aa5e60a5fb4b0605b6d4aa22139fa  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
! 021e3850950e4b59ff600ff16405d501  libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
! e7438a4bf7383459b5993ae739e430e8  libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
! bfb3dd275dda6d404949711f0c5f2150  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
! 721aa5e60a5fb4b0605b6d4aa22139fa  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
! 47c702f417ba236bf6d6ca7c1b19c7ba  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! 53fd4a78322a664b8c31bc608ef31c2e  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
! 0f421f2ece494b1918ba1bfa718f339f  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
! d3e30350bc6d2476b9b3183ae7030144  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
! bc1000065b5a226b93bc602a72b93061  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
! 1c0f861ea119ea6f531fd35c8cb4d844  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! 10104f417ebf3f8b65178d2deabfad7b  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
! a3f5e6be5dffbbc2d000bb5cad09693c  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
! 7c02d99ad667188fcf129355aa0e3531  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
! 6bf57830358796b5378972adb508588c  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
! f039682369736fca189d649f19e8cdce  libstdc++-v3/config/os/djgpp/ctype_base.h
! 7916cfe24402a1d9a91f7f1990d2fec7  libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
! 06f6a2567cf019aa685ea8d539a12ee6  libstdc++-v3/config/os/djgpp/ctype_inline.h
! a56130dbfdf1524df3b70af9d130d858  libstdc++-v3/config/os/djgpp/error_constants.h
! 62519174a686c4a41522ca831b35d55f  libstdc++-v3/config/os/djgpp/os_defines.h
! cf683bce1b30be7f43685ac2e2f8a5c8  libstdc++-v3/config/os/generic/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/generic/ctype_configure_char.cc
! 58506c396fd698adce06b392533e8633  libstdc++-v3/config/os/generic/ctype_inline.h
! 07d7559af3da4ce3af2d65510776c232  libstdc++-v3/config/os/generic/error_constants.h
! 61470658d9542a5caeb4c3e414e2a040  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
! faa5740f9b8dd8555472ccd4b026df17  libstdc++-v3/config/os/gnu-linux/ctype_base.h
! 9d53ebeae050ef6ce04db720b3ce5c4c  libstdc++-v3/config/os/gnu-linux/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/gnu-linux/ctype_inline.h
  88403d88bac5d855fb07dee81eb8409e  libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
  ecafd9167cd304fae16637b488367a1b  libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver
! ba9e1665a0a85eb566a482ec7fa9bfc5  libstdc++-v3/config/os/gnu-linux/os_defines.h
! 4432b10d5c940ccebefc614f3a015bb9  libstdc++-v3/config/os/hpux/ctype_base.h
! e28b41cb33c8a27ba588d4ddaaf4ad3d  libstdc++-v3/config/os/hpux/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/hpux/ctype_inline.h
! 5381cef6bec5242dcd0e97bd8c2b61d2  libstdc++-v3/config/os/hpux/os_defines.h
! 731fe30426b6fd140066ad8f530ba60b  libstdc++-v3/config/os/mingw32-w64/ctype_base.h
! f42aba0a77c97fe133a9eb1fd4e74287  libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc
! df2fb2f80636c5377a49d5876a7bff79  libstdc++-v3/config/os/mingw32-w64/ctype_inline.h
! 3e7d2607b6ae517366ff6d2cd39d1116  libstdc++-v3/config/os/mingw32-w64/error_constants.h
! f6126a6e3ca90f157c0c0d890f4752ef  libstdc++-v3/config/os/mingw32-w64/os_defines.h
! 731fe30426b6fd140066ad8f530ba60b  libstdc++-v3/config/os/mingw32/ctype_base.h
! f42aba0a77c97fe133a9eb1fd4e74287  libstdc++-v3/config/os/mingw32/ctype_configure_char.cc
! df2fb2f80636c5377a49d5876a7bff79  libstdc++-v3/config/os/mingw32/ctype_inline.h
! 636c62d0487d5ecfb89c149e17f25dde  libstdc++-v3/config/os/mingw32/error_constants.h
! 92ac344292162de8ac7160772137d82a  libstdc++-v3/config/os/mingw32/os_defines.h
! 2577cf6e2760ed903298cb761b8dfcb6  libstdc++-v3/config/os/newlib/ctype_base.h
! ed93c9391a37f3cc75cb27e147ad4247  libstdc++-v3/config/os/newlib/ctype_configure_char.cc
! ffd52f29113a72dc6186d19d5ae68d18  libstdc++-v3/config/os/newlib/ctype_inline.h
! 1ad877e50f073f4ffbff76ff5a65844b  libstdc++-v3/config/os/newlib/os_defines.h
! 982124f23ac6dc38ac273b5c7ed146ae  libstdc++-v3/config/os/qnx/qnx6.1/ctype_base.h
! 0ec2cc02f729076e5b53faa3b0d9b5fa  libstdc++-v3/config/os/qnx/qnx6.1/ctype_configure_char.cc
! 9d64598ee5c66eb387740b00e2c29c63  libstdc++-v3/config/os/qnx/qnx6.1/ctype_inline.h
! ad53a3fbb367d83b44e16bcba4fcaff2  libstdc++-v3/config/os/qnx/qnx6.1/os_defines.h
! fe5ca962c84f82ac4889c210fc79bbae  libstdc++-v3/config/os/solaris/ctype_base.h
! 44ca6de921357a6f48295942a3cde394  libstdc++-v3/config/os/solaris/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/solaris/ctype_inline.h
! 9c90eb713422f7de5e29ed021599266b  libstdc++-v3/config/os/solaris/os_defines.h
! 02daafe53d0309ba63f7bb0456a40a92  libstdc++-v3/config/os/tpf/ctype_base.h
! a68956abc231032070d1c17291d03067  libstdc++-v3/config/os/tpf/ctype_configure_char.cc
! 80d343a39ab98ec12d1132464ce8c60c  libstdc++-v3/config/os/tpf/ctype_inline.h
! af249b451940ba4c42075bd661a399e7  libstdc++-v3/config/os/tpf/os_defines.h
! 6250c43d8430d3ea59cc286787f7eeb7  libstdc++-v3/config/os/uclibc/ctype_base.h
! 21318e26cc0b1a1b10072fe2bc33f91a  libstdc++-v3/config/os/uclibc/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/uclibc/ctype_inline.h
! d5257a836e841410a1a55db8eff6f4a1  libstdc++-v3/config/os/uclibc/os_defines.h
! bd8c15c9efad8290c2830b5f862c5dac  libstdc++-v3/config/os/vxworks/ctype_base.h
! d849abea519d28ba158a4dfbffa9c4d5  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
! 4865c9788d97189c7e5ca49ebf800a8e  libstdc++-v3/config/os/vxworks/ctype_inline.h
! bbdb4b03bbbcb116aaaf242952a3bb3a  libstdc++-v3/config/os/vxworks/os_defines.h
! 83e3e2c0d85c2f2799b78ad054a2d13b  libstdc++-v3/configure
! 65210fd2f1f24bdad917d4426734fa80  libstdc++-v3/configure.ac
! 32bd1d9563a5eddd6de993e64a56a7ea  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
! a49c1f48702d35a11b6493d099cee092  libstdc++-v3/doc/Makefile.am
  d66f986053e4755f0517ff5cfe90b2b5  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
! d9b077b82911753368f65f3014d3311d  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
  92f5430d44f06426f0d19bffc186ad05  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 1fa2b132573981e21958d76eafe013ac  libstdc++-v3/doc/doxygen/user.cfg.in
  66e139590a163a3e9d632f33fbe1d1b3  libstdc++-v3/doc/html/README
! c68ff21babfa14f20b98e36a2c808418  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! 4ad77cb0a65c93dd0294a64b4bfb3230  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
--- 131302,131498 ----
  a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
  a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
  7ee04ac578a5afd9323a6a82564f4e33  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! 9da62377eceb23bf6381d5e3ebca8c57  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! 3ed9ad145022e2626ac8fa1f90db2d12  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! c2f539d78b1b45f6e47b9f9aa356a5ef  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! b956a0c1d4368f5175f30b8da133a56e  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! abc6f4755fae8c6e8f45ce5fee798654  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
! 89e05baf29eb88995a099d75a8ea5d6e  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
! 315db7caf5823f4451b226448fb27662  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! 0feacae434c67857f81d494f83cf3851  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! 103fca270597909e88cb192ff00ca556  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
  47c8d77956f3c48e132885f7b30c2cdf  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
! 07b85b9691cd7b04b3427e50e222f983  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! 5115259bafa81c9269c0d5e13b641cc0  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
! f48bfa11a1f6ebbba6b09b9618c997f2  libstdc++-v3/config/allocator/malloc_allocator_base.h
! 229729de73da6f9ba6e1bf4c48f51f24  libstdc++-v3/config/allocator/new_allocator_base.h
! f06e38453bba322069b0828a7b5e1ef1  libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h
! 5f8ea4e387e1b79841e7689f2992e9d1  libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
! 44a250c664379c9b4e5753cd48af302a  libstdc++-v3/config/cpu/arm/cpu_defines.h
! ca2356577a0e1bcdbfb66b9dbfe81492  libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
! 1da21d919d87ef0fe1743c511ae8d597  libstdc++-v3/config/cpu/cris/atomic_word.h
! ce7311d1399c1f0691cb38e3ad18717a  libstdc++-v3/config/cpu/cris/atomicity.h
! 50eab59a8838f846549defd66d5f70fa  libstdc++-v3/config/cpu/gcn/cpu_defines.h
! 0ad9162550f3277362c643b1cf2a13b5  libstdc++-v3/config/cpu/generic/atomic_word.h
! 3cd02cad74575fe3da00ef4d4360bff0  libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h
! 9e07866e5e947f0fe4cc598f7b42d8fc  libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
! 3813a42a53e271357366c5b02417684e  libstdc++-v3/config/cpu/generic/cpu_defines.h
! 1f5c854d94c000df1a564da988b7a46e  libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
! 807032c4aff8e458fcf344530d4f0bff  libstdc++-v3/config/cpu/generic/opt/bits/opt_random.h
! 829ca584afa8d86dcf09dc43ac377f23  libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
! d49168a39646752494197c0db38bf360  libstdc++-v3/config/cpu/hppa/atomicity.h
! 719aed8366bc28796f1c4975ee6e0cad  libstdc++-v3/config/cpu/i386/atomicity.h
! 08bb730dfd9a1a5977428972bce12b08  libstdc++-v3/config/cpu/i486/atomicity.h
! dd73f558175d1ca64a16e24c0f7585c2  libstdc++-v3/config/cpu/i486/opt/bits/opt_random.h
! 99ba756d1213882b739939653acf08dc  libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
  26d0c3551ab31de89ff6dfac25ba5415  libstdc++-v3/config/cpu/loongarch/t-loongarch
! 90e9b58026b3a65973c489dfce22dc7b  libstdc++-v3/config/cpu/m68k/atomicity.h
! 748ab42fe22585cabe43ffd156949e66  libstdc++-v3/config/cpu/microblaze/cpu_defines.h
! 02c7709775208bf87c545280897d710c  libstdc++-v3/config/cpu/nvptx/cpu_defines.h
! 9d9d7e3080c7a677c6a38d242d9a7a43  libstdc++-v3/config/cpu/powerpc/cpu_defines.h
! c18895c1f15ff4ff7fb5a406ebee016a  libstdc++-v3/config/cpu/sh/atomicity.h
! 1f2b9d35e7d3fcc54f8faf32a7f587f0  libstdc++-v3/config/cpu/sparc/atomic_word.h
! 355c81a96b973d5d2a1fd568ee85772d  libstdc++-v3/config/cpu/sparc/atomicity.h
! e4ebe9ee9c6620b0a503eb82518f729d  libstdc++-v3/config/io/basic_file_stdio.cc
! c4685cb99e75d5306e814ccabcab7b93  libstdc++-v3/config/io/basic_file_stdio.h
! 3459672a51ccdc9f9a456ec393d0be83  libstdc++-v3/config/io/c_io_stdio.h
! 00a20d3df68c848e8d07f3a0af4103b7  libstdc++-v3/config/locale/darwin/ctype_members.cc
! 12b0b09ccf292b923997d4b77040fa73  libstdc++-v3/config/locale/dragonfly/c_locale.cc
! 49243c1163d3c1cdd19b075d9ef5a02b  libstdc++-v3/config/locale/dragonfly/c_locale.h
! 9d7f50ed0d36219eced266e1f1de7b39  libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
! 276b42822f2f6a15457b93e8596c8c21  libstdc++-v3/config/locale/dragonfly/collate_members.cc
! d240e90a0616e847ac228e675ffc40e6  libstdc++-v3/config/locale/dragonfly/ctype_members.cc
! eb44f2638eb22ffced89786ccf467c97  libstdc++-v3/config/locale/dragonfly/monetary_members.cc
! 87dc151571adc4ac458be25b006e1748  libstdc++-v3/config/locale/dragonfly/numeric_members.cc
! 9949a5db551967fcf87d4227509f70df  libstdc++-v3/config/locale/dragonfly/time_members.cc
! 84426ba1bb3f0d0036d770045185a438  libstdc++-v3/config/locale/dragonfly/time_members.h
! 47ec618d2720a6b6f3e1ec0aefc56988  libstdc++-v3/config/locale/generic/c++locale_internal.h
! d837e904a759d4a9a7bc841f733d1df4  libstdc++-v3/config/locale/generic/c_locale.cc
! 3827ed1d6f9d12ff793b8db856d1cbf2  libstdc++-v3/config/locale/generic/c_locale.h
! 2c4f0021d3cc4c037473ffc0b5296464  libstdc++-v3/config/locale/generic/codecvt_members.cc
! c02e4c6f46a720f950f0b184a5ae44f5  libstdc++-v3/config/locale/generic/collate_members.cc
! 5ea2c94486a436a9b5f691506108860b  libstdc++-v3/config/locale/generic/ctype_members.cc
! 93d050a1cfdf2a17665fba68aef38418  libstdc++-v3/config/locale/generic/messages_members.cc
! 75d0700e8408f71eafceea8311b182da  libstdc++-v3/config/locale/generic/messages_members.h
! 11880dca932d004f0fcd0db06cc62076  libstdc++-v3/config/locale/generic/monetary_members.cc
! b59aa041cc8eab6eaa3b51dc8c400a54  libstdc++-v3/config/locale/generic/numeric_members.cc
! edb2f2ff4f2b41de57f5473fe25995bd  libstdc++-v3/config/locale/generic/time_members.cc
! 1ad4bea096b6d043e0a36b5861e2eae8  libstdc++-v3/config/locale/generic/time_members.h
! 3ac30cad7c6be13230822700842d86b9  libstdc++-v3/config/locale/gnu/c++locale_internal.h
! 03713f4d9c8453cff8fd477db230559b  libstdc++-v3/config/locale/gnu/c_locale.cc
! 625e0d02662c9425e6aad55c432cd535  libstdc++-v3/config/locale/gnu/c_locale.h
! 224cf04eb9510c50ccb0baf5dd89bc05  libstdc++-v3/config/locale/gnu/codecvt_members.cc
! 2687d258abaca9be9c41fc33a9e0350d  libstdc++-v3/config/locale/gnu/collate_members.cc
! b4355444106eaf5add5405daf124b595  libstdc++-v3/config/locale/gnu/ctype_members.cc
! 34623cbfcf6dfb5d9465bff4b122b2f1  libstdc++-v3/config/locale/gnu/messages_members.cc
! aee69f58adadc38b5e00914de4ba6961  libstdc++-v3/config/locale/gnu/messages_members.h
! 427fb4b89578a4e6e3f9de32c0f6251e  libstdc++-v3/config/locale/gnu/monetary_members.cc
! 70bfec0e62304570d8f4702f3a4044f5  libstdc++-v3/config/locale/gnu/numeric_members.cc
! ce66fe203b4e3ae161751ff62aa44c8e  libstdc++-v3/config/locale/gnu/time_members.cc
! 36bc9d03c18b4be51e417b5f8d59f3c7  libstdc++-v3/config/locale/gnu/time_members.h
! 6c2e21eb5af8435a9613aa883c48de7f  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
! 7ae6418404671697fea4e2cc318a3393  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! 758b97f41658b76f03ad8dbad6349093  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
! ef73dce7fb64c5a348140957ecc45408  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
! 57c1f0968b50d6c0ab928eae886e74eb  libstdc++-v3/config/locale/newlib/ctype_members.cc
! 003241c8b3df47b0f0652808cbd7f9cf  libstdc++-v3/config/locale/vxworks/ctype_members.cc
! e03d45387677a0a6640ee576b687847e  libstdc++-v3/config/os/aix/ctype_base.h
! 377d7aadaa968541df615a89e3584e2e  libstdc++-v3/config/os/aix/ctype_configure_char.cc
! 31aa942cd2255eced9772e2abe45f482  libstdc++-v3/config/os/aix/ctype_inline.h
! 5f5f978437e34feafc6ef5ade24097d7  libstdc++-v3/config/os/aix/os_defines.h
  7d1373c31caa4fdc44bcb11af08b4ab3  libstdc++-v3/config/os/aix/t-aix
! e0934108f8f36fd3697e6ed0cef2e28c  libstdc++-v3/config/os/bionic/ctype_base.h
! d27a459d88b06414c4cb2fc0691b7390  libstdc++-v3/config/os/bionic/ctype_configure_char.cc
! 74c5e7dd386be126413a2f831a895040  libstdc++-v3/config/os/bionic/ctype_inline.h
! ecbe2b9932b43c56090ea69c8a343661  libstdc++-v3/config/os/bionic/os_defines.h
! e9f73267f77a8f82e0d6fe836ae0358d  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
! 377d7aadaa968541df615a89e3584e2e  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
! 5b6602df6955aad9710c930481716f19  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! d73e88989579a9f37f2e29524d218356  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
! 8d66b0c38da712a5dc9966249873c431  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
! 7c6524bc35f203b5a0bd66ed2bd03939  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
! b7bbac746a0ed20f155cdfb269afd277  libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
! 2db6c4f6b6747f9cfdc762d29fcd6ef3  libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
! 179b2e18b904e961a1e74aaf85ed3123  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
! 7c6524bc35f203b5a0bd66ed2bd03939  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
! 5b6602df6955aad9710c930481716f19  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! 6990c424c460d0cc586dace5cd8b99ab  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
! ee8ec6808513e54e6cf005218db8fce8  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
! 92afb69d7d2b54df9ebc046b672f26ca  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
! aa3902a399d921af6d8382224b015fe3  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
! 094e6e2b9a2dca0bfe9f5e162e9f87f9  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! b84131d60ca9b36091774b31503c63de  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
! 1ac89130be2a25c89d635c60a23ef161  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
! 74c5e7dd386be126413a2f831a895040  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
! 6aec304f5fba25e36b3f7ef8ee9e5497  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
! 5f044add34b83297b8a79f93d63ba20e  libstdc++-v3/config/os/djgpp/ctype_base.h
! 24f26120f924c816315a7bd00062e11e  libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
! 8154f304486129dff75d931ab60836ee  libstdc++-v3/config/os/djgpp/ctype_inline.h
! 4f2ba7832c431d91671b7a6271d93e2a  libstdc++-v3/config/os/djgpp/error_constants.h
! feab46e462d1b4590b9dd89cd024a69a  libstdc++-v3/config/os/djgpp/os_defines.h
! 4972e6e36e9bb11d2e9055e640dcdd9f  libstdc++-v3/config/os/generic/ctype_base.h
! 377d7aadaa968541df615a89e3584e2e  libstdc++-v3/config/os/generic/ctype_configure_char.cc
! be5e1b7b5745c7aa5d449d5fc0441a2d  libstdc++-v3/config/os/generic/ctype_inline.h
! 0e08b5197d6ac4d506ce66236887d70d  libstdc++-v3/config/os/generic/error_constants.h
! be724b85076cccd43962af912d117b93  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
! 90798bc0d807662b8ac1f87be44bc08b  libstdc++-v3/config/os/gnu-linux/ctype_base.h
! 2d7d0bba00be8488f1788268b0947734  libstdc++-v3/config/os/gnu-linux/ctype_configure_char.cc
! c85454824c20bb66695d72b0733c2d54  libstdc++-v3/config/os/gnu-linux/ctype_inline.h
  88403d88bac5d855fb07dee81eb8409e  libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
  ecafd9167cd304fae16637b488367a1b  libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver
! 291c554ac2bab515a750682ae8158bed  libstdc++-v3/config/os/gnu-linux/os_defines.h
! 22e3e176aaf2cc9ca13cb499854ea928  libstdc++-v3/config/os/hpux/ctype_base.h
! ae4f1d0e85b8d4c947d21876f661b8f9  libstdc++-v3/config/os/hpux/ctype_configure_char.cc
! c85454824c20bb66695d72b0733c2d54  libstdc++-v3/config/os/hpux/ctype_inline.h
! 9212ff0566bb015e9f716c8f671aec53  libstdc++-v3/config/os/hpux/os_defines.h
! bde027a723c2d8c3d63a6878dce6d0e4  libstdc++-v3/config/os/mingw32-w64/ctype_base.h
! b4e7e61f1004abb042359425cc117dd9  libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc
! 0e67e3c4ad62bc9d22bebe77f89dd73a  libstdc++-v3/config/os/mingw32-w64/ctype_inline.h
! 9f956dbe9cf2891c557bf3926f63f7e9  libstdc++-v3/config/os/mingw32-w64/error_constants.h
! 4bc2c3119600ecace2229a1da6875de3  libstdc++-v3/config/os/mingw32-w64/os_defines.h
! bde027a723c2d8c3d63a6878dce6d0e4  libstdc++-v3/config/os/mingw32/ctype_base.h
! b4e7e61f1004abb042359425cc117dd9  libstdc++-v3/config/os/mingw32/ctype_configure_char.cc
! 0e67e3c4ad62bc9d22bebe77f89dd73a  libstdc++-v3/config/os/mingw32/ctype_inline.h
! 2b8d181d47c02fbfcd3deb7dd04cf776  libstdc++-v3/config/os/mingw32/error_constants.h
! 5e7ece8ef11e54be677d823efde3dd28  libstdc++-v3/config/os/mingw32/os_defines.h
! 4d9e1298cb4d78de8a8665714809912e  libstdc++-v3/config/os/newlib/ctype_base.h
! d27a459d88b06414c4cb2fc0691b7390  libstdc++-v3/config/os/newlib/ctype_configure_char.cc
! 281484f0d7550847f08ea844c8ffbcec  libstdc++-v3/config/os/newlib/ctype_inline.h
! 6465b6058a26c2b6b5ddddc75e3827a2  libstdc++-v3/config/os/newlib/os_defines.h
! 02a1bda3ebd019b468c8aa4344330c55  libstdc++-v3/config/os/qnx/qnx6.1/ctype_base.h
! 0f773aa9dca3569007abce5bbf6acabc  libstdc++-v3/config/os/qnx/qnx6.1/ctype_configure_char.cc
! 634d501eff6526a3703eeccf584afb93  libstdc++-v3/config/os/qnx/qnx6.1/ctype_inline.h
! b4041e38662150f563528d088882b619  libstdc++-v3/config/os/qnx/qnx6.1/os_defines.h
! 068e14f6d77c036c30424c24d20de0d9  libstdc++-v3/config/os/solaris/ctype_base.h
! 986893698d818c94c2d6361da87b9c82  libstdc++-v3/config/os/solaris/ctype_configure_char.cc
! c85454824c20bb66695d72b0733c2d54  libstdc++-v3/config/os/solaris/ctype_inline.h
! f4fa64ff5ec2ab1f213d8142e1686c5e  libstdc++-v3/config/os/solaris/os_defines.h
! f6ad031c8e8f6fdf664d8a5a8cca3a16  libstdc++-v3/config/os/tpf/ctype_base.h
! 14f1915cf00fb4261105785a40d586d4  libstdc++-v3/config/os/tpf/ctype_configure_char.cc
! c93823c11273987a6c60e4322e5b1819  libstdc++-v3/config/os/tpf/ctype_inline.h
! 04f6aa2519f49ecdc6cc2d789ff5f52d  libstdc++-v3/config/os/tpf/os_defines.h
! ac5a1b7dad20b4b8808197a3638589a8  libstdc++-v3/config/os/uclibc/ctype_base.h
! 9dbd772d792082a5bf582a778ebbd803  libstdc++-v3/config/os/uclibc/ctype_configure_char.cc
! c85454824c20bb66695d72b0733c2d54  libstdc++-v3/config/os/uclibc/ctype_inline.h
! 977d583e349b9a0a7bd1d136232a040f  libstdc++-v3/config/os/uclibc/os_defines.h
! ed199f6700a016816d625b286bf25ead  libstdc++-v3/config/os/vxworks/ctype_base.h
! 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
! 478bb531ef9cb3ab0f673e64b8b8aece  libstdc++-v3/configure
! 315146bda822dcbf6f5677aac62442a6  libstdc++-v3/configure.ac
! 546d8799acc0db2a2a28b658d5665dc3  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
  92f5430d44f06426f0d19bffc186ad05  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 093d173a914422cd19c7708bc2d0e736  libstdc++-v3/doc/doxygen/user.cfg.in
  66e139590a163a3e9d632f33fbe1d1b3  libstdc++-v3/doc/html/README
! 6d16751d668adf69fac47cc69bde7d40  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! cbb6c24882a910ad87c8c7a8a8c78839  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
*************** d7249eb4d31bd107d0b09ea3c80cb723  libstd
*** 123251,123266 ****
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 95f7bd58639442e3e0d498bfa21aff33  libstdc++-v3/doc/html/index.html
! cd104b4f4cefdb20c6375cad02a09f81  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
! 4d04bc6affa9370678280a7e36951578  libstdc++-v3/doc/html/manual/api.html
! 0533c501430d5c40f424d741475a8eef  libstdc++-v3/doc/html/manual/appendix.html
  349dd21397f799989e513b2c3c7b44d4  libstdc++-v3/doc/html/manual/appendix_contributing.html
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! fc90e763c564799d3bc56e3d0caca15c  libstdc++-v3/doc/html/manual/appendix_porting.html
  ac3612f72ad76b3796526d161b19db59  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
--- 131572,131587 ----
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 9262cc16ae0b0edc20fbb4efeabaaccd  libstdc++-v3/doc/html/index.html
! 4e75c9ed55364b062b87405d233e6dd8  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
! 4fb7ffd9efe6e3547b24292c317aa5df  libstdc++-v3/doc/html/manual/api.html
! adafcaa8208ba56a2f53b5e10b57dde2  libstdc++-v3/doc/html/manual/appendix.html
  349dd21397f799989e513b2c3c7b44d4  libstdc++-v3/doc/html/manual/appendix_contributing.html
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! 482cee07da7c4a2382174e7ad504f024  libstdc++-v3/doc/html/manual/appendix_porting.html
  ac3612f72ad76b3796526d161b19db59  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
*************** c60c6ae778d5dedae24ac21abf948bdb  libstd
*** 123269,123293 ****
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
! e4aaeef0b98cb4c49ee46b83c543ca34  libstdc++-v3/doc/html/manual/configure.html
  af4e79b9e55fd023eeb0459df34a4a82  libstdc++-v3/doc/html/manual/containers.html
  c7e40c1085e414b3b4d5896db4013205  libstdc++-v3/doc/html/manual/containers_and_c.html
! 1a937490b245964deeb0497dfdbfa840  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7f6c5a9eb000f65ee1888d459beb9dd5  libstdc++-v3/doc/html/manual/diagnostics.html
! 872fd1cdab6839a9e0003d2b6c4de908  libstdc++-v3/doc/html/manual/documentation_hacking.html
  44375d933be3e667b4c31334c041decb  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
  f06c80959b51df8ead13e6679a537cbc  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
! 6ff2323d07ed91e8dec5a072df16f901  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
  0597d03ff215b7f17e0240178c030166  libstdc++-v3/doc/html/manual/ext_containers.html
! 2e4af551186521a7129b87ba249fa557  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  8f3bd86e04d263ad87cc258c289aae6d  libstdc++-v3/doc/html/manual/ext_numerics.html
--- 131590,131614 ----
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
! 2bb7c0f8b8c4c8d632b4bb16d5c77345  libstdc++-v3/doc/html/manual/configure.html
  af4e79b9e55fd023eeb0459df34a4a82  libstdc++-v3/doc/html/manual/containers.html
  c7e40c1085e414b3b4d5896db4013205  libstdc++-v3/doc/html/manual/containers_and_c.html
! 5905f8be24ae69bb804c3d5a6a4abf7d  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7f6c5a9eb000f65ee1888d459beb9dd5  libstdc++-v3/doc/html/manual/diagnostics.html
! 074e3891bbedea5b412c648e455f6adf  libstdc++-v3/doc/html/manual/documentation_hacking.html
  44375d933be3e667b4c31334c041decb  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
  f06c80959b51df8ead13e6679a537cbc  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
! 41d83456313998bffbded9e19febedc6  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
  0597d03ff215b7f17e0240178c030166  libstdc++-v3/doc/html/manual/ext_containers.html
! 561a364254927bdc578ac31f1b66747f  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  8f3bd86e04d263ad87cc258c289aae6d  libstdc++-v3/doc/html/manual/ext_numerics.html
*************** afcc2751dae09e088abc1e3175cb94cc  libstd
*** 123298,123367 ****
  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
! 58cfc859596a303e50e182a9020713b5  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  17d07c26f60433c6f5bf7f55a785fb3f  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
  89dd67b210011f646675fa2ede886305  libstdc++-v3/doc/html/manual/io_and_c.html
  32f6d6929349f8f96de44fbdd842ed48  libstdc++-v3/doc/html/manual/iterators.html
! ae9b2e57903953c857a0a2314010036c  libstdc++-v3/doc/html/manual/license.html
  945f5ecd78f495a46c64b58665a37d69  libstdc++-v3/doc/html/manual/localization.html
! 9d7282a3a92209b987a91b15973414af  libstdc++-v3/doc/html/manual/make.html
! 5fae64c968ebc0c27fa550b0507e14f1  libstdc++-v3/doc/html/manual/memory.html
  c40a00e2cba07156a6bd77b14cccc2e4  libstdc++-v3/doc/html/manual/mt_allocator.html
  4934caabf7eef9ff3618e9ac17acba49  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  bdbb1ff20830123a43576a05081312f9  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
  a40a3344663fbccc3184759981310047  libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html
! ac773b9e2b788115c3b30b9ab505c08f  libstdc++-v3/doc/html/manual/mt_allocator_impl.html
  9dabea61a71c003598f8a991e614e76c  libstdc++-v3/doc/html/manual/numerics.html
  88a009e3d0a8c9e08103a63fdce3f776  libstdc++-v3/doc/html/manual/numerics_and_c.html
  d569c55932dee4a3a4e8598da8998e28  libstdc++-v3/doc/html/manual/pairs.html
  f9f0e84051f62c45dfb0a2c150dff6ee  libstdc++-v3/doc/html/manual/parallel_mode.html
! 5f0f59eb4592f14c6f1d291939b42874  libstdc++-v3/doc/html/manual/parallel_mode_design.html
  ecf6c505a75fa3dff283b1fefdda671b  libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
  e2c97bcb68cbed2f84d4599f561c91d0  libstdc++-v3/doc/html/manual/parallel_mode_test.html
! 935f34a82f6ef3b0dc60b8d3a06563ae  libstdc++-v3/doc/html/manual/parallel_mode_using.html
  9979d7cb4d5cf7e6587881acebf84a4d  libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
! 6e9d39694dfe3eb4d8ac9ff0d499d99a  libstdc++-v3/doc/html/manual/policy_data_structures.html
  84c9bc8c54a3de8b4d90dfe3b438bc43  libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
  d973b7693c2b6c717784b81d549c61e5  libstdc++-v3/doc/html/manual/policy_data_structures_design.html
  9acf818681732e9c264224c86b5ffdb3  libstdc++-v3/doc/html/manual/policy_data_structures_using.html
! 46aa9a22800aa10982b2c82718b9606f  libstdc++-v3/doc/html/manual/profile_mode.html
! c000d7803b4aea724a6ea6b5846e17e7  libstdc++-v3/doc/html/manual/profile_mode_api.html
! 648cdc8ef5e8696f44900ec46483bf1e  libstdc++-v3/doc/html/manual/profile_mode_cost_model.html
! d6e655afa90caf559aa77ae772faf5dc  libstdc++-v3/doc/html/manual/profile_mode_design.html
! dc012f6bbeb24332ca023dc15d6da9cf  libstdc++-v3/doc/html/manual/profile_mode_devel.html
! d55e182adbf08772ec85b18d390b0dbb  libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
! 0e9a02c563561ad32d5b24fd930bf8f5  libstdc++-v3/doc/html/manual/profile_mode_impl.html
! 0aa43e199523434f7a21c96804a8aa51  libstdc++-v3/doc/html/manual/setup.html
  05fe12a35eeac73538be455d4b27f923  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
! d669a5dddae5af7b4f2efa65ff43f738  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
! dbb5f81a9e8864374fbb835eaa4e8b0d  libstdc++-v3/doc/html/manual/streambufs.html
! b69a09d4b90c10ccc914e41695cea3a5  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
  52f0c68b15c7a2b6e098bcfb8da0094b  libstdc++-v3/doc/html/manual/support.html
  fcdceeabf3a95117ea22e93a0354e564  libstdc++-v3/doc/html/manual/termination.html
! 29bff3c7b143958489cd92560cd24a7b  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  530b96535baacfe35df2e65f9dfe7efc  libstdc++-v3/doc/html/manual/unordered_associative.html
! ae44a39d1ac906098dd3e9fc8acd917e  libstdc++-v3/doc/html/manual/using.html
! a98d94ba8ccfb620e98ebfe01192e61e  libstdc++-v3/doc/html/manual/using_concurrency.html
! 79fb9de4a4c89a913a76e1828500499d  libstdc++-v3/doc/html/manual/using_dual_abi.html
! a372b01a93ca1beeb843a1440bd25cdd  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
! 90f1ace0e51461f3caa15a913228c521  libstdc++-v3/doc/html/manual/using_exceptions.html
! 6046d265a9d1a3d954dec8c82317fbff  libstdc++-v3/doc/html/manual/using_headers.html
! c8ee0e07a78cdcb3ed7cd3ed7ac16cc0  libstdc++-v3/doc/html/manual/using_macros.html
! ccc3b1a320ccc49a977c80546610195b  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
! ccbc0492a648982f2dc225595bdbc567  libstdc++-v3/doc/xml/api.xml
  8059eb81f5540dc3ae678ac09e1f3159  libstdc++-v3/doc/xml/authors.xml
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! 2e681cceb238178e7b9da9cd744cdbdc  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
--- 131619,131681 ----
  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
! 559ad34510db5c724ed2881282560ebc  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  17d07c26f60433c6f5bf7f55a785fb3f  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
  89dd67b210011f646675fa2ede886305  libstdc++-v3/doc/html/manual/io_and_c.html
  32f6d6929349f8f96de44fbdd842ed48  libstdc++-v3/doc/html/manual/iterators.html
! aa205efdc2e69588d568e2c1738a8581  libstdc++-v3/doc/html/manual/license.html
  945f5ecd78f495a46c64b58665a37d69  libstdc++-v3/doc/html/manual/localization.html
! 85ac3d22494cc64118e8df02fa68c90d  libstdc++-v3/doc/html/manual/make.html
! bed9104f8eff5fa454366f451181a04a  libstdc++-v3/doc/html/manual/memory.html
  c40a00e2cba07156a6bd77b14cccc2e4  libstdc++-v3/doc/html/manual/mt_allocator.html
  4934caabf7eef9ff3618e9ac17acba49  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  bdbb1ff20830123a43576a05081312f9  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
  a40a3344663fbccc3184759981310047  libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html
! 3113c1f4bb72a551ad756a0556819063  libstdc++-v3/doc/html/manual/mt_allocator_impl.html
  9dabea61a71c003598f8a991e614e76c  libstdc++-v3/doc/html/manual/numerics.html
  88a009e3d0a8c9e08103a63fdce3f776  libstdc++-v3/doc/html/manual/numerics_and_c.html
  d569c55932dee4a3a4e8598da8998e28  libstdc++-v3/doc/html/manual/pairs.html
  f9f0e84051f62c45dfb0a2c150dff6ee  libstdc++-v3/doc/html/manual/parallel_mode.html
! d0a5d1e6143763602cd06a3431e5eba7  libstdc++-v3/doc/html/manual/parallel_mode_design.html
  ecf6c505a75fa3dff283b1fefdda671b  libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
  e2c97bcb68cbed2f84d4599f561c91d0  libstdc++-v3/doc/html/manual/parallel_mode_test.html
! e5c19b8ff5bc3c648559dbeb909a643d  libstdc++-v3/doc/html/manual/parallel_mode_using.html
  9979d7cb4d5cf7e6587881acebf84a4d  libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
! 270766051c7a0ebb41d65856ebe73508  libstdc++-v3/doc/html/manual/policy_data_structures.html
  84c9bc8c54a3de8b4d90dfe3b438bc43  libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
  d973b7693c2b6c717784b81d549c61e5  libstdc++-v3/doc/html/manual/policy_data_structures_design.html
  9acf818681732e9c264224c86b5ffdb3  libstdc++-v3/doc/html/manual/policy_data_structures_using.html
! 11c010c0761e0a41441314b388899e23  libstdc++-v3/doc/html/manual/setup.html
  05fe12a35eeac73538be455d4b27f923  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
! ffc4385457fcc6e97de888cdb88965a5  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
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
  52f0c68b15c7a2b6e098bcfb8da0094b  libstdc++-v3/doc/html/manual/support.html
  fcdceeabf3a95117ea22e93a0354e564  libstdc++-v3/doc/html/manual/termination.html
! 994a609aea3823f777eda71567bc8ed4  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  530b96535baacfe35df2e65f9dfe7efc  libstdc++-v3/doc/html/manual/unordered_associative.html
! 8aa9b7bfbe5a730701f97de49e583432  libstdc++-v3/doc/html/manual/using.html
! 652cd331d7566fb24fe08739f467db7c  libstdc++-v3/doc/html/manual/using_concurrency.html
! f8898e59cc7155a01a17f15a3b853c30  libstdc++-v3/doc/html/manual/using_dual_abi.html
! 11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
! 09eeb2fa79fb240e032461adcbe2cb4a  libstdc++-v3/doc/html/manual/using_exceptions.html
! 91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! 3411d1e07939e0319750eceefff4b4c2  libstdc++-v3/doc/html/manual/using_macros.html
! e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
! 3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
  8059eb81f5540dc3ae678ac09e1f3159  libstdc++-v3/doc/xml/authors.xml
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! af144d4623f6d57e1bb38450ae860eb1  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
*************** cc132f90a00a3ca05f64b578f9e332aa  libstd
*** 123541,123549 ****
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! 6ccc8992f87a805952c14613cc397dfb  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
! 1ee61261fc508bc85b51cd5aeafa459d  libstdc++-v3/doc/xml/manual/allocator.xml
  b9f6d3637e7f129ed22277a507325bfc  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
--- 131855,131863 ----
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! e7d6be44d477d4dfab6f169057dc4002  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
! a87c9806b403e8eab90d3020e1111bd5  libstdc++-v3/doc/xml/manual/allocator.xml
  b9f6d3637e7f129ed22277a507325bfc  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
*************** b84cb983bda244285e1314327a420e66  libstd
*** 123554,124659 ****
  b3f117e4c677e60cf6035cf76714b185  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
! 86f27306f8b76aebd69ea92641fd2c94  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
! c814233bae2af79cc1273d72145d497c  libstdc++-v3/doc/xml/manual/configure.xml
  0af07cc2460e288292186ea8149169ee  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
! 73da07ff0c1a31e349529a066ddefd62  libstdc++-v3/doc/xml/manual/debug.xml
  a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
! c7467f13981c47fc740c948b16a42a53  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
! 637448870b4b88aaa661f1543c41dd5a  libstdc++-v3/doc/xml/manual/evolution.xml
! 5ae0548cfa13299fc5c3aa8cb372cb74  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! 51fce4cf657917cd7bc102d522b7c9ab  libstdc++-v3/doc/xml/manual/intro.xml
! 93c3158fe28bdfbbf03dd039cc4e79a2  libstdc++-v3/doc/xml/manual/io.xml
  5ac71d67674ea22bcf1e54043bf8e99d  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
  b00f98f125f6186c369ce588d795f978  libstdc++-v3/doc/xml/manual/localization.xml
  90cedee1e8e04d1ab87bbf41d47293ec  libstdc++-v3/doc/xml/manual/messages.xml
! ebd635927778d995ef9bf26d6ffa35fc  libstdc++-v3/doc/xml/manual/mt_allocator.xml
  42b8355117a7bd9aa755048290e70d2c  libstdc++-v3/doc/xml/manual/numerics.xml
! 7edd591e15a0bbc76d58e9edcb7c28d1  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  7c390b245068bcc2f3f52590bdf8526f  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
! 26c588a0ffa7f8fc5b3e09d398c52a3f  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! f934009b05c708b87c8e0a2b194ea477  libstdc++-v3/doc/xml/manual/prerequisites.xml
! ab6d91afc9a36e19a6524c6ca834170a  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  d7f222c42325cd44eadad2c59eef7e6f  libstdc++-v3/doc/xml/manual/spine.xml
! f5e5c164b379543f33fa58c890568600  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
! 3ef7bfd292118d8bd2bdbd09564ab5dc  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
! 76fe5dbda49c296862d18751dba25d48  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 356386c3ca52162ea521f80496d0163d  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 61a0688e4d261cfe30d6f43067137d49  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! 3e8ec618f250016b2f9d6aac6adf82a9  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
! 34d70ea8878798badc9d17080f247e71  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
! 57cffe9962527982e60fd711a05c949d  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! 6f88fb7dec269c11ecd8f6078e77e5cd  libstdc++-v3/doc/xml/manual/strings.xml
  2b80feb1b53a8d0895a292620ec430b2  libstdc++-v3/doc/xml/manual/support.xml
! 8f48e16895211927fa6aa4bd05fadb26  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 8a89a3209cc509111c293281b5fa5ea4  libstdc++-v3/doc/xml/manual/using.xml
! 8b2ecaf4e0a66bc6db1724038373671a  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  74a5acaa32b3d223bd413c1bb5b69ac6  libstdc++-v3/doc/xml/manual/utilities.xml
! e6f2e1ff035b9b144ac628a016da524a  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 0f80efcc13cbac62693edf0941b78978  libstdc++-v3/include/Makefile.am
! 74347629583baab2a09d4bc755121b78  libstdc++-v3/include/Makefile.in
! e80aa1cdcf7213d9b1735c8779502146  libstdc++-v3/include/backward/auto_ptr.h
! 0a5df32cdd2ccea6d7b2bccc32264c11  libstdc++-v3/include/backward/backward_warning.h
! 1685c415463ebd7e7ece8bc9fcd32ea2  libstdc++-v3/include/backward/binders.h
! 0ee75fc8763080a863c4587d0c22b904  libstdc++-v3/include/backward/hash_fun.h
! 4bb29d337511a09e0c1e773711b11c9d  libstdc++-v3/include/backward/hash_map
! c1f8e2eed52da3850a73c1898201073b  libstdc++-v3/include/backward/hash_set
! 5f3e8ab412c668d6ef8b102883194725  libstdc++-v3/include/backward/hashtable.h
! c175480f283c6faf24b090afb7b8a094  libstdc++-v3/include/backward/strstream
! fa33522083e1c68173d330c454484c4f  libstdc++-v3/include/bits/algorithmfwd.h
! c6b3be3f7c9e66db91c556f5614ccd86  libstdc++-v3/include/bits/align.h
! 3fe42d54b74b416796899c8f16cfeb3d  libstdc++-v3/include/bits/alloc_traits.h
! 0130a22c73e6916ce695d7a65b55e136  libstdc++-v3/include/bits/allocated_ptr.h
! 4303dd43fc7d56b49442b413b25dc805  libstdc++-v3/include/bits/allocator.h
! b12c0d79d9800c1c8324769220a13221  libstdc++-v3/include/bits/atomic_base.h
! 73ee78148831bfc99e48fa00cf4a9774  libstdc++-v3/include/bits/atomic_futex.h
! 670239be1d02c64eb81eb20244729696  libstdc++-v3/include/bits/atomic_timed_wait.h
! 86a7c6dd9198cedb31603235e5a08375  libstdc++-v3/include/bits/atomic_wait.h
! 7e4c44e3709a39e69e5926b8943aaeaa  libstdc++-v3/include/bits/basic_ios.h
! c5f0b0cf12a20c25f0e41914429011a4  libstdc++-v3/include/bits/basic_ios.tcc
! 67ec4d723d5c268cb187b239e3566815  libstdc++-v3/include/bits/basic_string.h
! e8d06b2e799ffc8083019f20acf0b4eb  libstdc++-v3/include/bits/basic_string.tcc
! c7a6720fba64940d0fa26db8b1690df2  libstdc++-v3/include/bits/boost_concept_check.h
! 40bbfd82087a88af5f846b2166bbb898  libstdc++-v3/include/bits/c++0x_warning.h
! c7622150fdcc7b3c0321a1e237e775a1  libstdc++-v3/include/bits/c++config
! 28aee543f6c9d197b0af864e888f0122  libstdc++-v3/include/bits/char_traits.h
! 6859feb7dcc6695a2c6234641b888038  libstdc++-v3/include/bits/charconv.h
! b3ba0378f24b45c0114b4c8f4c94bcc6  libstdc++-v3/include/bits/chrono.h
! bca5e071b24a8adf584af8653a955b48  libstdc++-v3/include/bits/chrono_io.h
! 88b76f5a51860ba832b9dc12ecb77d11  libstdc++-v3/include/bits/codecvt.h
! 51b1ac432b9720acddaea7defbbb9885  libstdc++-v3/include/bits/concept_check.h
! d586d6356d122baed87f500662924b14  libstdc++-v3/include/bits/cow_string.h
! d5abd9cd69be06b93a597ef3c0abbbd5  libstdc++-v3/include/bits/cpp_type_traits.h
! 4ccfca809e09548b2782e39a16c9b682  libstdc++-v3/include/bits/deque.tcc
! 769cf52788a336b71f976155bb6f43bd  libstdc++-v3/include/bits/elements_of.h
! afd1789a41d6c832f583d0a86e85d7b0  libstdc++-v3/include/bits/enable_special_members.h
! bfd9dcd277a4e1fc8264d9778a51a1fc  libstdc++-v3/include/bits/erase_if.h
! bda4c7f93e7fdfb3efab3e7dd3bd0293  libstdc++-v3/include/bits/forward_list.h
! 54988ffbb55b7b28d8e742246eeb7e7a  libstdc++-v3/include/bits/forward_list.tcc
! 172ec211e7b2dcd494223ec328be1424  libstdc++-v3/include/bits/fs_dir.h
! 2b5018cc2b1ec4f77c1063ee9f2bd1b9  libstdc++-v3/include/bits/fs_fwd.h
! fe7f67bed11b31530138ff9c95f24fb5  libstdc++-v3/include/bits/fs_ops.h
! 532b17e5c821d8c9b9967a09d34fff51  libstdc++-v3/include/bits/fs_path.h
! f5ce5aaa4dc85c0df9bbb9336377ec55  libstdc++-v3/include/bits/fstream.tcc
! f4bbb120a9815127b10a1ac27deb8d52  libstdc++-v3/include/bits/functexcept.h
! f4bcd858272323ada640c37deef0cc5b  libstdc++-v3/include/bits/functional_hash.h
! 1473baf2405d9ffd35b3d332d9a13757  libstdc++-v3/include/bits/gslice.h
! 85c0b55fd0900992d6c5c11046de0bb6  libstdc++-v3/include/bits/gslice_array.h
! 9db5d2cc0a33c9100511f30060f5bbc7  libstdc++-v3/include/bits/hashtable.h
! 13a3d132a6bab71e52a2d3af3b5d019c  libstdc++-v3/include/bits/hashtable_policy.h
! ddb9b204a4dedc774e89de355877f5d6  libstdc++-v3/include/bits/indirect_array.h
! bcc9f5642c1247e2d2717ca3c8c163c2  libstdc++-v3/include/bits/invoke.h
! 1b1bda3ff4fed85f81812a9d287c6954  libstdc++-v3/include/bits/ios_base.h
! 2efaa910577ef81bb2086b94a774628a  libstdc++-v3/include/bits/istream.tcc
! 88264c5e73779cf65cf3e28861176d96  libstdc++-v3/include/bits/iterator_concepts.h
! 9b7c0d07e9432ac9edc69cd1c6fe7b3c  libstdc++-v3/include/bits/list.tcc
! c42a12718346567bd13233cedde9bd5f  libstdc++-v3/include/bits/locale_classes.h
! dde6b13e56e00412ea36522f2d088e29  libstdc++-v3/include/bits/locale_classes.tcc
! 9b47557c0465d54213109e0296cf1d68  libstdc++-v3/include/bits/locale_conv.h
! 9e21648aef2225349d5142af6bb5ba37  libstdc++-v3/include/bits/locale_facets.h
! 91f1815040d47ced88e338b5ae9c4f87  libstdc++-v3/include/bits/locale_facets.tcc
! 25c0aa7ff5fa5a37c84bdbf120355b34  libstdc++-v3/include/bits/locale_facets_nonio.h
! c94e6d651d69ce1228285bd851eb6e00  libstdc++-v3/include/bits/locale_facets_nonio.tcc
! bd53916b6cfb8b5856227e40e60afebf  libstdc++-v3/include/bits/localefwd.h
! e643d94f8f3d4820728609e90fe33b35  libstdc++-v3/include/bits/mask_array.h
! 12759803d18a3143c9673b2d0c68cbb6  libstdc++-v3/include/bits/max_size_type.h
! 9d5dd3372b84e438e08ad5e9db100536  libstdc++-v3/include/bits/memory_resource.h
! cade9d0e3a37f9ef0746dfba8ed98cf6  libstdc++-v3/include/bits/memoryfwd.h
  7b351469ff54ea35e3e585733ed01c68  libstdc++-v3/include/bits/mofunc_impl.h
! 4b14dd9c6b47bcd92275b7eae5565f35  libstdc++-v3/include/bits/move.h
! 09d4412f8ae2610816888d0089a914ff  libstdc++-v3/include/bits/move_only_function.h
! 95d376ca9e9f8fec95af4618c51572d9  libstdc++-v3/include/bits/new_allocator.h
! 34f4e090534a50eb37116b0383cd19b9  libstdc++-v3/include/bits/node_handle.h
! 8d864c72edd571a87d7a1af7c87414df  libstdc++-v3/include/bits/ostream.tcc
! b3cc417d9bf80b45297f5caccd8e79c6  libstdc++-v3/include/bits/ostream_insert.h
! d99f9625098f07a9525cf5f41ad18321  libstdc++-v3/include/bits/out_ptr.h
! 23a6fd8c321e54ff587d296e0fd069cf  libstdc++-v3/include/bits/parse_numbers.h
! eb435bab187a1573a8b7d3ca8297ded1  libstdc++-v3/include/bits/postypes.h
! 6e5715ba617a5f0246f059bf9a9a7309  libstdc++-v3/include/bits/predefined_ops.h
! c005f46850d3b5df0f57a8470f409ff8  libstdc++-v3/include/bits/ptr_traits.h
! c1d468a0ee886f88b70ef47855bb5a42  libstdc++-v3/include/bits/quoted_string.h
! 9fecc04de83e464036e805070a7d633e  libstdc++-v3/include/bits/random.h
! afef6bb168d2a386d2dc4aaf2937c1d1  libstdc++-v3/include/bits/random.tcc
! 59fb2d3661995c86a3996a5d1af055af  libstdc++-v3/include/bits/range_access.h
! 7f038f6e1d76a0580936ce563d42d36d  libstdc++-v3/include/bits/ranges_algo.h
! 567b99dc12725a97059421ac2889bb0c  libstdc++-v3/include/bits/ranges_algobase.h
! 345c0bcd6d3225b952193e39ec5eef97  libstdc++-v3/include/bits/ranges_base.h
! 2b75fae9285c2ca3120c6d7191768285  libstdc++-v3/include/bits/ranges_cmp.h
! 5d224fa91e53e4f54ed4ccb8526d2bc2  libstdc++-v3/include/bits/ranges_uninitialized.h
! 9f51662b65ed80e42f5f6f68bf55a084  libstdc++-v3/include/bits/ranges_util.h
! a7e081671330fd3d6d40ef990c3a9db5  libstdc++-v3/include/bits/refwrap.h
! 310a26ba94975011af20323c3b2e791e  libstdc++-v3/include/bits/regex.h
! 033b17331af0c0e562ea71bc3e994022  libstdc++-v3/include/bits/regex.tcc
! c65f82851918475e6746a168a05feebc  libstdc++-v3/include/bits/regex_automaton.h
! 9cee0eb35fa466590222459a3d2f6822  libstdc++-v3/include/bits/regex_automaton.tcc
! 14e00d3a19a80946ac410cc1e3f9992a  libstdc++-v3/include/bits/regex_compiler.h
! f64f26ffe7d3c4e14c3fc9498ff3ac07  libstdc++-v3/include/bits/regex_compiler.tcc
! 9f5e9a67270f2372eb2a6c027d50d2c3  libstdc++-v3/include/bits/regex_constants.h
! ae4e407ef9be06b744708e5b1513d43f  libstdc++-v3/include/bits/regex_error.h
! df35d7d8b36a0bc46a6e5f6221ac092b  libstdc++-v3/include/bits/regex_executor.h
! 90acc349b008fe5686f4a45c99a5fb2a  libstdc++-v3/include/bits/regex_executor.tcc
! 2af9958541302c85816549931c0a1da2  libstdc++-v3/include/bits/regex_scanner.h
! ffc7507a47e4f46142f0884585cdc4bb  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
! 5109f35ca401eeff55b96d56c1f6362d  libstdc++-v3/include/bits/sat_arith.h
! 8e3a4aba69b57bbf801c0231fc5c257b  libstdc++-v3/include/bits/semaphore_base.h
! 48fe8952d8a396bf02bfe3357d15cdeb  libstdc++-v3/include/bits/shared_ptr.h
! 99a5df256c93ebb2a209690f3a69038a  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 5db7072fca6e80f99c23359a988ac52d  libstdc++-v3/include/bits/shared_ptr_base.h
! 3aa5cb4e1e4ba05b6b9f2a06325df1f7  libstdc++-v3/include/bits/slice_array.h
! 8b95c6e1a7676878090a6c78eaed8631  libstdc++-v3/include/bits/specfun.h
! 566c72d79d1a38ec59d61d0ea6387356  libstdc++-v3/include/bits/sstream.tcc
! 1f0d0b5626594df88e02436048b42ce9  libstdc++-v3/include/bits/std_abs.h
! 9bb67731f54230f82a1ad7ecefad61c0  libstdc++-v3/include/bits/std_function.h
! 9e64792df36a7184f512edafa65eb095  libstdc++-v3/include/bits/std_mutex.h
! cc051c68674baf68361ca6695a77f7e6  libstdc++-v3/include/bits/std_thread.h
! 45d6d1b0e170e6b47f075bcc8f7a470e  libstdc++-v3/include/bits/stl_algo.h
! 6c2c831983f6f22024d5a5c74e6aee8a  libstdc++-v3/include/bits/stl_algobase.h
! e9bd8ff664bd942513638e50a5c529dd  libstdc++-v3/include/bits/stl_bvector.h
! 6768219e2c3fc30ed6027137aafb710c  libstdc++-v3/include/bits/stl_construct.h
! fe9f70942169304bc132f9a7dddb56b7  libstdc++-v3/include/bits/stl_deque.h
! ef1b6b4ad02b6462ce918aef51a943c0  libstdc++-v3/include/bits/stl_function.h
! 75cf6d6cb1c1d44bd3a905a9544df4bc  libstdc++-v3/include/bits/stl_heap.h
! 1ec8ed9ad45a457c50d6fc5abe95ad96  libstdc++-v3/include/bits/stl_iterator.h
! 347505b7f4c350b156cf3d2bb3093b9e  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
! 581f098137ce46bc8bcf6c0d6e825ee2  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 301cb8d87f4806d1f7e31017450edd4e  libstdc++-v3/include/bits/stl_list.h
! 1570eba30b11d390ba970e2534f53d07  libstdc++-v3/include/bits/stl_map.h
! 34ac5312f223e57a26dd5c4a487ce281  libstdc++-v3/include/bits/stl_multimap.h
! d86680e177f4feb7cf161efc879069db  libstdc++-v3/include/bits/stl_multiset.h
! 669eaba4823456e8a1e6a9e197c42f3b  libstdc++-v3/include/bits/stl_numeric.h
! 447c3cf9f76b3ad6b88ca14e819ac4c5  libstdc++-v3/include/bits/stl_pair.h
! 8485f57bded7cb8f9b8b2e0fb2800e3a  libstdc++-v3/include/bits/stl_queue.h
! a3c6aa8aebb44198e86d15d59d6f59f8  libstdc++-v3/include/bits/stl_raw_storage_iter.h
! 3d31700ac326c163f7b606ab559287ed  libstdc++-v3/include/bits/stl_relops.h
! 36f2f9e594167ba600957d9059ef8136  libstdc++-v3/include/bits/stl_set.h
! dd78226efec632a1bf11d226184d7549  libstdc++-v3/include/bits/stl_stack.h
! 7add382d24ec7f9da1e6868f030e1182  libstdc++-v3/include/bits/stl_tempbuf.h
! 277ea4cba92cae0214f9b97fd114b02f  libstdc++-v3/include/bits/stl_tree.h
! e61ef36592961485fe7157cb4e460d5f  libstdc++-v3/include/bits/stl_uninitialized.h
! ba4a4db569ca433b6c74c4f5877c31e7  libstdc++-v3/include/bits/stl_vector.h
! efd6795d1859818275b215954d81b08a  libstdc++-v3/include/bits/stream_iterator.h
! 418d6c0a63477cd40da6d48bda8fdaa2  libstdc++-v3/include/bits/streambuf.tcc
! 44762e12d54d406bf2cc6315533a8b09  libstdc++-v3/include/bits/streambuf_iterator.h
! 9a0877aee26745b7bdf5574f5f54b0f2  libstdc++-v3/include/bits/string_view.tcc
! aabd3614c1c5899178db20dddafc44c0  libstdc++-v3/include/bits/stringfwd.h
  2eaea6618dd32c781462a159568c3920  libstdc++-v3/include/bits/text_encoding-data.h
! a4af1fa2d1034d27940b1ddb0d865807  libstdc++-v3/include/bits/this_thread_sleep.h
! e44faa2816a5abc669c4063837761dc4  libstdc++-v3/include/bits/unicode-data.h
! d1ca6f040561433bc57b5e84640fc088  libstdc++-v3/include/bits/unicode.h
! 2a07c5fd938c277d16917fa79db295da  libstdc++-v3/include/bits/uniform_int_dist.h
! 4c0ff2b76d8499d565fe166dc5782d62  libstdc++-v3/include/bits/unique_lock.h
! 38a4bccdbcd2c7c0ff6de9bf760f0a49  libstdc++-v3/include/bits/unique_ptr.h
! 04290a2b4e2eb981a7a071c4d01f074c  libstdc++-v3/include/bits/unordered_map.h
! 3493a96931461f30454b667f434197ad  libstdc++-v3/include/bits/unordered_set.h
! c4eaa17487280545ea73bc9386afcd4b  libstdc++-v3/include/bits/uses_allocator.h
! 5a8903147199f3d96ed4c5bbb409cec3  libstdc++-v3/include/bits/uses_allocator_args.h
! a77c524b65951d9871c6f58839e8080c  libstdc++-v3/include/bits/utility.h
! b051e1657f96388a3e7d5d0d670145e5  libstdc++-v3/include/bits/valarray_after.h
! 82dcb52b808193fbc7db29b11ae3736e  libstdc++-v3/include/bits/valarray_array.h
! d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
! 296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
! ae60bb6951fa3275774bfecb9175c61f  libstdc++-v3/include/bits/vector.tcc
! 34d950a54f7c7345709bf697345f6efd  libstdc++-v3/include/bits/version.def
! 81415423a46b9c3a9366464aeec99ad2  libstdc++-v3/include/bits/version.h
! f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
! 23670bf0ed7006b56169654e79313316  libstdc++-v3/include/c/cassert
! 54f4af5417eacea0760d6a9554d593bc  libstdc++-v3/include/c/cctype
! 2df3c3133e44fb2a2a2434bda206da7a  libstdc++-v3/include/c/cerrno
! 84627944527963ff4c54b0d900534c78  libstdc++-v3/include/c/cfloat
! 6ed10426a0959f42658a0c9ba1d137f0  libstdc++-v3/include/c/ciso646
! 92eb5c2363da6bd840bf4197796c40ae  libstdc++-v3/include/c/climits
! 0b3a53985d050ab75696b3c5df4eb661  libstdc++-v3/include/c/clocale
! 8452199d589809a1be94fd30d7ceeb21  libstdc++-v3/include/c/cmath
! 2efc61e6c5cbc7998240ae25f74e8b93  libstdc++-v3/include/c/csetjmp
! 3829c95f4b4b2678e60129a88b3a10dd  libstdc++-v3/include/c/csignal
! e9f6d30666bd5a1ab7d3e874ba19a8d7  libstdc++-v3/include/c/cstdarg
! 73aa32f6923d8cea0fe42ce79705507d  libstdc++-v3/include/c/cstddef
! 2f1b6b5ac631d59e4f740de51476c4c0  libstdc++-v3/include/c/cstdio
! 78373725669ed412c4dd008bf32bdd3d  libstdc++-v3/include/c/cstdlib
! d8c7075bdd48966c868c74cb5298c5dc  libstdc++-v3/include/c/cstring
! e8053f56c6dbe3c9ccbe86c19f3d4113  libstdc++-v3/include/c/ctime
! 9714fe3168ec6843fed5d7125d09cbf8  libstdc++-v3/include/c/cuchar
! 4af52e631cbdfd92761d52e4bd15a9bc  libstdc++-v3/include/c/cwchar
! e3b4cd63231436be25cfd5e16955e65a  libstdc++-v3/include/c/cwctype
! e3f4d14a1fcaf80b68bf6b4b8f8a48af  libstdc++-v3/include/c_compatibility/assert.h
! be6d1e5201a742f292e1270122292512  libstdc++-v3/include/c_compatibility/complex.h
! d7d7cc40b27e71e52d8aeb3493abc2a5  libstdc++-v3/include/c_compatibility/ctype.h
! 631576c56a16c83ac7d51f69fd1876ad  libstdc++-v3/include/c_compatibility/errno.h
! 36b7486810c69f8512a1d596d323a820  libstdc++-v3/include/c_compatibility/fenv.h
! 024de6d64d155e81882adc479769cfa5  libstdc++-v3/include/c_compatibility/float.h
! de6303666b4c7c40e9c6884997a8e624  libstdc++-v3/include/c_compatibility/inttypes.h
! f98008587ccc670a7a33da802bf53fc1  libstdc++-v3/include/c_compatibility/iso646.h
! a7962f58ce6936bada4903e0e459cf48  libstdc++-v3/include/c_compatibility/limits.h
! abd11dd3947209f696f94d932cc332bd  libstdc++-v3/include/c_compatibility/locale.h
! 277b861b9392ea4259113718e894d637  libstdc++-v3/include/c_compatibility/math.h
! 0b55ede415e9caa3e3362f45eb2ae23e  libstdc++-v3/include/c_compatibility/setjmp.h
! 072501af1fb92f6c61d905a889e23d55  libstdc++-v3/include/c_compatibility/signal.h
! 3ae16230a91e5f8f915c4572dd2de92d  libstdc++-v3/include/c_compatibility/stdarg.h
! a4ef565ae0e9463b4f7a9188f263b140  libstdc++-v3/include/c_compatibility/stdatomic.h
! b7d1a1feade359b17536b80612f1a5ad  libstdc++-v3/include/c_compatibility/stdbool.h
! 4779b1da6436870feccffd045fb554ce  libstdc++-v3/include/c_compatibility/stddef.h
! 7242a83084ab38257ea91cd3ff50b5af  libstdc++-v3/include/c_compatibility/stdint.h
! 427dd11a3c37411d439ac8c467768e3c  libstdc++-v3/include/c_compatibility/stdio.h
! 1f96f7dcc55c9928a1405539766e004f  libstdc++-v3/include/c_compatibility/stdlib.h
! 10d40f8521065341fe8eb03f41634f86  libstdc++-v3/include/c_compatibility/string.h
! 027148dd221784803c38ff54c4c4212f  libstdc++-v3/include/c_compatibility/tgmath.h
! 65ca4e8e6d8c4b2d69408647855ab97a  libstdc++-v3/include/c_compatibility/time.h
! d913dc948f08b7df8d9a0024fd18c37a  libstdc++-v3/include/c_compatibility/uchar.h
! b72c37dc86c490639a2976978066d096  libstdc++-v3/include/c_compatibility/wchar.h
! 3e61cfb85ae04eda04cb50276900721e  libstdc++-v3/include/c_compatibility/wctype.h
! 693781d7558908e907bac069fed5a110  libstdc++-v3/include/c_global/cassert
! 30532c35715ba7d23b3f554dab056a5d  libstdc++-v3/include/c_global/ccomplex
! 1fae8a9c7cc3b347ea5a12699791dcba  libstdc++-v3/include/c_global/cctype
! c677010aee0b50c55f5b70be2ad47c5a  libstdc++-v3/include/c_global/cerrno
! 1066b00c39e9541315b1ae6b71cb5b54  libstdc++-v3/include/c_global/cfenv
! 374e538fcd462706593d43f6709725bb  libstdc++-v3/include/c_global/cfloat
! c80d9a347ff1313df6f1fdcd6738adee  libstdc++-v3/include/c_global/cinttypes
! cab8280692b763d2480d948d43977c57  libstdc++-v3/include/c_global/ciso646
! f010c5f8d1a591217c31fc2e8c98364a  libstdc++-v3/include/c_global/climits
! 11ae858532969bfcfdbf40b0ea36cdbd  libstdc++-v3/include/c_global/clocale
! 12af10fc4d57615f33f4508f84d51149  libstdc++-v3/include/c_global/cmath
! 781951ffe444c3ebf3292bdd1385308d  libstdc++-v3/include/c_global/csetjmp
! d96a9a65818e7398cbd8731a87c642c8  libstdc++-v3/include/c_global/csignal
! 48b7524df7011e4d38f9ee556a9cc265  libstdc++-v3/include/c_global/cstdalign
! 0e216cc7f8e47ce8fc1a1e152a24d506  libstdc++-v3/include/c_global/cstdarg
! ef0a25a8c955b22abeca1d5ed8f2bd24  libstdc++-v3/include/c_global/cstdbool
! 571816f152edcb2e136ded3470501512  libstdc++-v3/include/c_global/cstddef
! 082c2346333c9ca86142dcd5511f508d  libstdc++-v3/include/c_global/cstdint
! 70f0252c98fe3660f9c2b580df7cdd76  libstdc++-v3/include/c_global/cstdio
! 8821805a0bc27513136837fac4843918  libstdc++-v3/include/c_global/cstdlib
! 4e815d74f97bf9ee96317c5651d1543c  libstdc++-v3/include/c_global/cstring
! 94c8da7961687c07941270968b00aa79  libstdc++-v3/include/c_global/ctgmath
! 972332aebf79e73163f67bca686de8e2  libstdc++-v3/include/c_global/ctime
! 36cde9dadc3eb291a819527123adf1ed  libstdc++-v3/include/c_global/cuchar
! 2e7c2f516f75f53625dff0293849460c  libstdc++-v3/include/c_global/cwchar
! f4ee79055fb5596bb16c419be85509e9  libstdc++-v3/include/c_global/cwctype
! 331ec3bb13927d93bc6ef3f8162d2ed0  libstdc++-v3/include/c_std/cassert
! 94d294f92fb730e3858d2709c2388830  libstdc++-v3/include/c_std/cctype
! e85e2ac62597e3e2b3181d8de9205eb8  libstdc++-v3/include/c_std/cerrno
! 99d5a48234a3d7e3ea14f0f2e579d4a9  libstdc++-v3/include/c_std/cfloat
! ff135a8cf8f6aba8a8d5843d14be1942  libstdc++-v3/include/c_std/ciso646
! 60be1df03d7186e574b08541df97c240  libstdc++-v3/include/c_std/climits
! e744820407fa14211ba1f30b86eb8ffa  libstdc++-v3/include/c_std/clocale
! 7b568979baa41c93dc28ef9ae162fe02  libstdc++-v3/include/c_std/cmath
! d3d173d37e9f3026c4b3f01e3480525d  libstdc++-v3/include/c_std/csetjmp
! d8dbf112bb9290ddd3a6ee266e9e0989  libstdc++-v3/include/c_std/csignal
! 2b84f950d1e2134b2c086b11f1fa0395  libstdc++-v3/include/c_std/cstdarg
! 0ac4761a445923cd65c04b906a76e07c  libstdc++-v3/include/c_std/cstddef
! 570d0d6509ff84bffdeb708bb7679399  libstdc++-v3/include/c_std/cstdio
! 3095e2d394c4e247f24b3c98a8095159  libstdc++-v3/include/c_std/cstdlib
! 332e8ab4628f6e405c3125a6ee0befa5  libstdc++-v3/include/c_std/cstring
! dd35cc66b31ef00943a3b208426fa665  libstdc++-v3/include/c_std/ctime
! df0e4d4bf0b66c949e2dce53ccaaf3bb  libstdc++-v3/include/c_std/cuchar
! 15fc74577cf2551986054fd39a26781e  libstdc++-v3/include/c_std/cwchar
! ee74413df0a8bc505a9060e5a75e0d0b  libstdc++-v3/include/c_std/cwctype
! f521398f6fa3640575b0c7fa7c562144  libstdc++-v3/include/debug/array
! d24f799ff610eeacd7a5237b9c0114fe  libstdc++-v3/include/debug/assertions.h
! 51c1a956c00e85e8991162aae7cf290a  libstdc++-v3/include/debug/bitset
! 0a57c7893084ad84a6659d59c4b881dd  libstdc++-v3/include/debug/debug.h
! f7cb15b4df02db39cbc450028a5f5d28  libstdc++-v3/include/debug/deque
! 6740b9085c1a6d638fbea3d70f3af66a  libstdc++-v3/include/debug/formatter.h
! 982517bc91bf90a590a2f20cd6a9f694  libstdc++-v3/include/debug/forward_list
! 9f6b9d9c2da303170800014dec853a00  libstdc++-v3/include/debug/functions.h
! 26c7990d8d8468253c6f89ce422d4264  libstdc++-v3/include/debug/helper_functions.h
! 837aa476c7a6e417c92db36e681816ad  libstdc++-v3/include/debug/list
! 9a16f34fe6ac47fcf828dcb897146181  libstdc++-v3/include/debug/macros.h
! 09135ff9ccf3396a35c7f86453e27556  libstdc++-v3/include/debug/map
! 62afaaf1c1e3f38b9ca841a4cc6cf694  libstdc++-v3/include/debug/map.h
! 872ca50aaead5a81a7674351ecf70c5e  libstdc++-v3/include/debug/multimap.h
! 079f1b1402b2134fe7c805d9dda8725c  libstdc++-v3/include/debug/multiset.h
! 0fff6268b8deae15594f92597d58ce01  libstdc++-v3/include/debug/safe_base.h
! 36f4be9332cd75fa9a9f3a7bc5a294eb  libstdc++-v3/include/debug/safe_container.h
! a04a8e4b886ad501fa11540de9500d42  libstdc++-v3/include/debug/safe_iterator.h
! 1f077ff09176366347bdee9fbf7184b1  libstdc++-v3/include/debug/safe_iterator.tcc
! d127ca181f9a4cbbc0ce354b91e44725  libstdc++-v3/include/debug/safe_local_iterator.h
! c2eaf97c9be3bd4b6d17666620c9eb31  libstdc++-v3/include/debug/safe_local_iterator.tcc
! 0b4542201e3a6625bd0f6782e7fa14bf  libstdc++-v3/include/debug/safe_sequence.h
! f22648c884fcc8ca260a9de47a8d83f6  libstdc++-v3/include/debug/safe_sequence.tcc
! 5b764db7b4712754937141098cc1e04a  libstdc++-v3/include/debug/safe_unordered_base.h
! 6534434ba435b12b8f0fa65bdee4aa5c  libstdc++-v3/include/debug/safe_unordered_container.h
! 72d9d9d8361816a9acea1eb5c954c055  libstdc++-v3/include/debug/safe_unordered_container.tcc
! 8c5997f8e06e60d4f2a838dd91cc2b32  libstdc++-v3/include/debug/set
! f83d447a53d85056ad297bc4a591eee2  libstdc++-v3/include/debug/set.h
! 5fb326fb0c8fcaf085a15ed1e64d8b05  libstdc++-v3/include/debug/stl_iterator.h
! f52773926bec80a14b887f6f37f7063e  libstdc++-v3/include/debug/string
! a1c883c703ae766a2c8e3e79dc40cd89  libstdc++-v3/include/debug/unordered_map
! d05c6ba14662d29d175132ed452ee488  libstdc++-v3/include/debug/unordered_set
! 8a3e0d1c4c7dcaac51ed1b7659ee94a5  libstdc++-v3/include/debug/vector
! 0eeaffafba0ad61f2e39fda7c20fa114  libstdc++-v3/include/decimal/decimal
! dfb20b1cf5aa27a949a3c3d622dacfdc  libstdc++-v3/include/decimal/decimal.h
! 34b1d0e414f6860af8dae4e532d023cb  libstdc++-v3/include/experimental/algorithm
! 0d30579364e1b70b41aec68925559a15  libstdc++-v3/include/experimental/any
! 96ced455e776540503c1d6fad1e0e4cd  libstdc++-v3/include/experimental/array
! e4ec1eab5037eb8b85a8b902bcf4a638  libstdc++-v3/include/experimental/bits/fs_dir.h
! a888015e519a8214f2eec377b8e21a90  libstdc++-v3/include/experimental/bits/fs_fwd.h
! cfd2a9edd0c254830542ea6fd2516e3e  libstdc++-v3/include/experimental/bits/fs_ops.h
! 28413c042c57c2f8597cfea3fce94a2d  libstdc++-v3/include/experimental/bits/fs_path.h
! ae92c612b39c5b2d9ebda806c103566d  libstdc++-v3/include/experimental/bits/lfts_config.h
! b4f1485dcbba5227bd21d747051cd3c9  libstdc++-v3/include/experimental/bits/net.h
! 53eaecc7c02b5975d54303c9ec7e8b7b  libstdc++-v3/include/experimental/bits/numeric_traits.h
! 5ab3bcf1b9e5c364d5f0635878087774  libstdc++-v3/include/experimental/bits/shared_ptr.h
! e379629d1193db2846bbbe07255f115a  libstdc++-v3/include/experimental/bits/simd.h
! 7af36256fb4e4464400b2e8c3bf03370  libstdc++-v3/include/experimental/bits/simd_builtin.h
! db8605784f99a1ed93cadfa02b3cd3f9  libstdc++-v3/include/experimental/bits/simd_converter.h
! c47df7723e8782c23a304878c539ea67  libstdc++-v3/include/experimental/bits/simd_detail.h
! eb633c2c3dc80f507455cda191a7ee3b  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 5ce895208c4531bccefadc6c750a9a39  libstdc++-v3/include/experimental/bits/simd_math.h
! 29100652632481444f7fe659de3a191c  libstdc++-v3/include/experimental/bits/simd_neon.h
! 48133c973f6ea03cf9f880072072b6bc  libstdc++-v3/include/experimental/bits/simd_ppc.h
! f2402a57e71eef7877bf462b6c358eff  libstdc++-v3/include/experimental/bits/simd_scalar.h
  82cf5cd853fbb734d4d3834ef245bf9a  libstdc++-v3/include/experimental/bits/simd_sve.h
! 6f9f4dd8f0212c77e532401255dd43e3  libstdc++-v3/include/experimental/bits/simd_x86.h
! ab91326e5930f95f72935ad20777c31f  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
! 18a276ea9d0ccebb01181a440a52bd85  libstdc++-v3/include/experimental/bits/string_view.tcc
! e3336e858a7ad37f004eab79f3824272  libstdc++-v3/include/experimental/buffer
! 833a83391217ee746ec521805b1d9104  libstdc++-v3/include/experimental/chrono
! e899dca1c9f3c490121f059949584c86  libstdc++-v3/include/experimental/contract
! 29b87177f87c58b671648cfb61f10573  libstdc++-v3/include/experimental/deque
! 3dc52d62b639aff15f1b3b9eb01cff1f  libstdc++-v3/include/experimental/executor
! 6259d676d4dc43ef3c15483921c40485  libstdc++-v3/include/experimental/filesystem
! c2ff338550ccbf963a085a075ff4ff20  libstdc++-v3/include/experimental/forward_list
! 8acd763c2072ae05411cefeb5b2609c0  libstdc++-v3/include/experimental/functional
! e41850570c27023a0a34171070f569cc  libstdc++-v3/include/experimental/internet
! f456649fb6591962fd7bfbf718afc36c  libstdc++-v3/include/experimental/io_context
! cf8b48d1f3b3fc46fe3c76830900edc4  libstdc++-v3/include/experimental/iterator
! d7784c5cff4280995ed043cf6f5436e1  libstdc++-v3/include/experimental/list
! 2be89af810fe75da80928855a81934b8  libstdc++-v3/include/experimental/map
! 4e8c9b3b1bb6e89c4cd76b6c404e9d27  libstdc++-v3/include/experimental/memory
! d4c8e3bda735288fb5950eb0d8956f7f  libstdc++-v3/include/experimental/memory_resource
! 4b71511332e468093db4a3db2d251367  libstdc++-v3/include/experimental/net
! 07696c41cf06e5d4f748ca07ed6f3345  libstdc++-v3/include/experimental/netfwd
! e56e48c7f8fc42482f55e2e1056b104f  libstdc++-v3/include/experimental/numeric
! 736ae01964793c0e11d0d0a36fe525a6  libstdc++-v3/include/experimental/optional
! 04d36c50677135ed5a5aa87410ec5616  libstdc++-v3/include/experimental/propagate_const
! 794bbe46bebc02562b30df30e6fc99a1  libstdc++-v3/include/experimental/random
! 550fa3221837175029779b27f4400093  libstdc++-v3/include/experimental/ratio
! fae1d322957b12f64d2d19b6b5de2385  libstdc++-v3/include/experimental/regex
! 9ef336527518f525a32383cb01802744  libstdc++-v3/include/experimental/scope
! bbacfc523f4934712db0d6559231d931  libstdc++-v3/include/experimental/set
! 21dff58555d5f3507a70c94cf61343cf  libstdc++-v3/include/experimental/simd
! 57d3a675dc2a161eb614d2b504a72618  libstdc++-v3/include/experimental/socket
! 6eeadb4433dda65a03645509a28f7e43  libstdc++-v3/include/experimental/source_location
! b5487b9d026a6e21097ab306b21e0ed7  libstdc++-v3/include/experimental/string
! 93768fd94e0f2601098478654536d42d  libstdc++-v3/include/experimental/string_view
! bde9aafc0ea69c3a16afd39f5eb2e5db  libstdc++-v3/include/experimental/synchronized_value
! 3d36743e60218a6846d3ba5bc4845e86  libstdc++-v3/include/experimental/system_error
! 4f10bc29992a731e2e65d0abe5f79877  libstdc++-v3/include/experimental/timer
! 4ccf63f0049dc26e6951a19c23809439  libstdc++-v3/include/experimental/tuple
! ff1022cc8b5f399bac0083693832072f  libstdc++-v3/include/experimental/type_traits
! 684d3c22de05109a8e439989c503d54b  libstdc++-v3/include/experimental/unordered_map
! 57588afdd89f0f146643b686f65e4410  libstdc++-v3/include/experimental/unordered_set
! ce0c3e001cbb8da6b8967364fdb31115  libstdc++-v3/include/experimental/utility
! d1ed718377b49db625dc5c696178ccd0  libstdc++-v3/include/experimental/vector
! 3bbb40af014d88fd0e28cb3c9aaad38c  libstdc++-v3/include/ext/algorithm
! 3a28cf83ad8818dcf321ab6e6d100de9  libstdc++-v3/include/ext/aligned_buffer.h
! 4e95fe1cab659e9b7ff3bea962f03293  libstdc++-v3/include/ext/alloc_traits.h
! 730b78abb06ca021c19dc15987fdca1f  libstdc++-v3/include/ext/atomicity.h
! 75504e7eaac88056c12bc15e6b2b38df  libstdc++-v3/include/ext/bitmap_allocator.h
! 05c0a091b13d83106f4363c15f79253f  libstdc++-v3/include/ext/cast.h
! fe7c2fa7f568ac304162fc1c4a387e5c  libstdc++-v3/include/ext/cmath
! 5080305abc45e50cecf35717098fce89  libstdc++-v3/include/ext/codecvt_specializations.h
! d6fe011aca0694cab9812c194d852591  libstdc++-v3/include/ext/concurrence.h
! a1500f84916331e29957c833c56c8697  libstdc++-v3/include/ext/debug_allocator.h
! d66a1dad7896ebdd469b41eccad92436  libstdc++-v3/include/ext/enc_filebuf.h
! 1ed63af94ccf46eece63101f1df86b59  libstdc++-v3/include/ext/extptr_allocator.h
! 3dab5e94eedfee9e1f255d217856b3bc  libstdc++-v3/include/ext/functional
! f5a092277117995276384fcad72b945c  libstdc++-v3/include/ext/iterator
! 78fca3b3679fb2b84237b0f3f535e4ec  libstdc++-v3/include/ext/malloc_allocator.h
! ee80063489b1612b14cc6c0ec3b28dab  libstdc++-v3/include/ext/memory
! d09114f4a70a71545359db131b65d534  libstdc++-v3/include/ext/mt_allocator.h
! 1c2c54daea91e6a52bf9aa7e0f8e413c  libstdc++-v3/include/ext/new_allocator.h
! 3919afbb386acfa22abd43c72e49bc94  libstdc++-v3/include/ext/numeric
! 0275fd08d15420025b39bd415f5dee1a  libstdc++-v3/include/ext/numeric_traits.h
! a5d55d93dc72cffa5cbd8185aac86fc5  libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
! 32436ecd1254b1231c2cf0218ca6e4b7  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
! 8ecfe723d3a66d6e2f91e164dde544bd  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
! 485c56f939502f834e41dab350633ded  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
! 4ccb8267ba64d07c9f2c7e23613da7bd  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
! 9a2234f066d4deb2dda76db188879071  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
! c0205ed662e8d7a58f596a2048ca91ca  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
! 1c914582b60c416ef1239a489a195633  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
! ccf114f0fd036bdf73f073958a1bec8c  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
! f830efa045d77f424d2a1bd267ff5e66  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
! 35e079758b1f1532fea673e91399ea73  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
! 43a1cfef8d588296a9956c0c1f89ca66  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
! 236f904e8e0b4b0c416274fd83b72b77  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
! e20b00721d138621c180e7d12c23c86d  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
! d825969105077199f71241414376d967  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
! 712c30b0b74ab7b6c4f37df827d91fc7  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
! 782e701c250a8c0a09ef59a0102101a8  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
! 452e3a4710dd5893f013645c15f4e5b9  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
! ae63d67ee28750a37c7690c9813191ac  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
! 76f8fcc82bd4ba26ba87f9a96d145010  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
! 9348ec96e8e9192ea6708b0fdb03e82f  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
! 3d54c4e2ca49f604b0fab4ff5d2ce12a  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
! e0c031cf6e0f8b621bde2cceeaf0e916  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
! 71f4366be0e5ebf53eb67e72b3a4bebd  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
! 51e4dede732addd49c38e41e6df73c43  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
! 407ae8f5963bcc49dccae382c70a3d69  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
! 93c643969532ac5eec3f77c35eccbf81  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
! 6eec629fdbc6628c47a75c64dba00e19  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
! 2adea4b026b769417bf9c145ae86750e  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
! 761c777e1097cd02f3222d61772270ba  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
! 0fd7282f18e3075111df7e62d702e775  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
! 71fe729c1fe248edeac35557c770e585  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
! f4e43715111983f0010cbc8909dceb99  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
! 8013c4f1b140b18af1f41926255099ff  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
! 186df938e49783a587e4a2cc3b414155  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
! 24a56bed9b051e3bdc545bc8ec30d232  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
! 4e3dafe28c7460f0c7c3143285ac742d  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
! 63cf6f3e96f8411b0d9dbfd673e044b9  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
! c442bcfae58f635b155b06905ffa4d75  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
! b0ce5837f20281963163f9d3f6f7f957  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
! 78468cf7e42283f37661b14209cb8f44  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
! 0ea438ec405e35ac9236f553cfa87d16  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
! 097e4e7c8c584d3737600b1907e0fc80  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp
! e41375619efa70507088200553461505  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
! 69a21fd6929d0e2634209f1bb498b6f5  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp
! 9c40248567af672084d3649a60934822  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
! 798553d8c7a4847132b1ee1bb9992d41  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
! 69a2d0f241c45e983dc0a4fc3c9a8dd3  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
! 74ec3a3f56485bd86e00e22fce62fcef  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
! 77bf265364b69e1db6bd0a03b8fc4bda  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! 60642a8b459bc25a202f8559d14d7a18  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 3af00bf47c1fd39f282828621b0b2bbd  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
! 5fbc7d34f92316ab264fbe427ab55837  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! 5af167e2b7b86c6cb850a2ac5d10d0a8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
! 975f67ab80491f8cab2ad7785a442f59  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
! a0d5bd2b2ea456fb516cf8c38cde4c73  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
! 94922e9759f7c7497e203937bee81e9a  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! eecfff88c368c589f8ff0c3358cc2ca8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
! b30e49a11ac7a23171c8ddecf1bd0487  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
! 425769404eebc15f283294e347d61632  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
! 01a04b40ad302aa50cd49d952edceef5  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
! 6950be3993c7e2743e4a4fac3e614edb  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
! cb16069d16843bcfc18c408b07b4557e  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! b8c553665ba02f3a6ed03581803365de  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
! 14a0a67405852518a30d4275321980f6  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
! 1914a8ae190fffb383cc04ab60a61208  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
! 927b9ec6ab508564947f5af592e6e200  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
! 7f5bd5948d5c06db5c9480439c813e77  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! cba3cf459b023aab0eca85e03166fece  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
! ce17539923865074ea41dde6f74ef4cc  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
! 1b05c5b9f993a694c3929dbfc95b94c8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
! 311fbe104acdc074563abbed10ac9205  libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
! 73f8f7272db114fc8512598e9b8c14e2  libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
! 1f80022adbd6cae256bbbbf405962623  libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
! a18584ab44db679bd2520e340fccdd6e  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
! a1113262a3d246573c4a8f37afce4c8a  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
! f0ef9b07711e12e917e50e47e4a5cfa7  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
! 4ef8b730e64dd21aa7f3cc59ff534372  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! c033441890a5530e1fb02eec9b0b5f11  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! b48e49d220d917c91905e9b15d6843d2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
! f05d40f753aa99194515b779295471f3  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! 7fe2312475824ff8abc7f5ffbb420824  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
! b1c2b17b687d8e77b5c5490fb2dc9b3a  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
! 2c870951f6b292f6448ff48bf0c66b13  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 0073e1a7dc9de355b8a186e31d21341f  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
! ce03aed20f80de885708cce5f68686fc  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
! 1abc2043d6fd0c851ddf2a201ab75347  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
! 65015f104fa35cf33513a0891d9ccaf2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
! ed29a7f1221d8f3db9a6ec3874cf3adf  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
! f774831f9ca92138e8951ae6b2c38420  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
! f3305ffca4da62ac242d567bbb4fef82  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
! 27fe1b41895bc26fe249fe93a67c111d  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! f7142efdaef5c8ef8963b5a2d3586acd  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
! 93068b5ad1078762f1baacbeacd511f9  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
! dbb5af41664ca699a8fd51cbe2eabdc0  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
! f89165333043b386f1ebdce65c63401b  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
! bff033895a4a7b86ec39399b1b8b6efb  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! c7beeabba7ae5eed370f88840d3b232e  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
! cb956570ed3afa43a3416e32bd6eb269  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
! 8a383672db3ad84b9c13b9c84d3dba39  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
! 2a39ace6efb140199ed3ccca5fe8361b  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
! cbe12d66f303ad4533c8645f1e8f7ab0  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
! db225b1aa1f05fced3a27accc81ee19f  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
! d89f5abe97ba4a1329c8bff48f780f86  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
! 64117e58232d4fe39d9b9fbc5686ffb1  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
! cbf186c6ec460298cdc0dadbc956135a  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
! b426a5193b41ffd9dd4895711add1e35  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
! e6a55e89430431242c752a66f13c26e5  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
! b6c39e00c22dd988222bdccec73e2589  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
! c46ce34eaa227243b95d8d69c6c7cda5  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
! 45534c6ffc562e1b41e4016a9ce46c19  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
! a691798e62c244d4b24f987fe8d37ea6  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
! 97ae84d9ae5dd0fbdca298050b3ac7c8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
! 85e4cae8a60fdbec26b3740e7f85cf34  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
! 064829abf4ff7151be88efc0f9ff5e49  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
! b965f737b34af4aa2399839a74d5697c  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
! 69ee7f796ea0527fc9a4e5c81c074804  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
! 9c9a270f305a26092ef7b992e94c50a7  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
! a879144f350a7451fee48ca2b19b5ad4  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
! 45870d32eaf5da17b1688d02bb0f56d8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
! 238dfba386a01cd4af2f3417f7341ec5  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
! 998c042c6d50fd360785979caee82a8e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
! be1c0f9e5684301c04ee7b0ca16e6b14  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
! e7ef82868adaecf68d657ac803bb796e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
! b808ab3874567bf1a30d2c28d5a514ea  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
! e8b4e366469d2e46483c396bfde70250  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
! 6911ea0190cae08f2fea54cb4ed0b31f  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
! ed39155e2d434ca54c86ac01e0a9f8f5  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
! b46bbfd7c010c3690f4190a07f1c1d53  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
! 43183c8aabf5a39f0ca69f1227dd76dc  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
! de561215c548464421ec08dc3a25f4eb  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
! b94ed39ff54ec7551ffb675b480981c8  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
! 962704f2c71c079e60fd8e88f0dab3ec  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
! 87e0eac58592cd7993c6f41b49b97170  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
! 43384c67f61e6d5e8450d4539d2d4eec  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
! 1b1234f40a19e518225ad56536b0249a  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
! a666f8208cc117e0892b091a1bda6a15  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
! ea744dac9a06874cfa78625da18588d6  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
! c19e78525b84b2e45423e1e215430be5  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
! 90573ecaaa5786ade4f6b2d444af1d0b  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
! 209c9f6988c8c8ab805c1b86af0306c4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
! 9937e96f3e0c12b7eed2269a6029fcd4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
! 5c455ff9fca7b822bd65701da447d8b4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
! f329e801f512d99ccbcf8f99dd7ccc39  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
! 8824ba26da055500a4b748d2a3e4747f  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
! 142bb8546852407c9bb27a25bcd46efd  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
! 3870e16d04ce171329a728c4b79f0138  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
! 21e8372f530f1c8aec0cdd36b7d914d8  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
! 239bc42143d66803d3aa43792ca8fc45  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
! bd93a6a3c7f7544b353754ef48dea18e  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
! 4c523f2c83087683b07a5fe4e2cf618d  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
! d0ba596192e1f557d15e3864b1cba49d  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
! 668aa2cece0ceaef7e0aa9d39f0aa9bf  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
! d30edcc3c27fa33a9d9931eb8796ca65  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
! 0d8afdae746e88b791b103241445dd7d  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
! 6bc9b596792d3d46bc25ef54918dff7c  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
! d97dc6fffbe6106f4c13d9c168222939  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
! cc4e25bcb6979cc19ff3c5efb9fd9356  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
! a939d0de8d7bcb72f54dd6b62c731e44  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
! a3192b27ba7cd7dc37d22d0e7ab62093  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
! 7d8f9b7786bd59faaee5c2090872dc29  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
! 09cd9a608e620d11f1805dd73e43e277  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
! 54224bafa2d3bb273ed1a4cae2dd26bf  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
! 6a7a5a0c454267a579efbc5b04bdeb79  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
! 074ec9cd96a91c27dfe85b400df0dd83  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
! 9d4d14604e668bf25e6ced988725dc07  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
! 04bdfd538420e835ca06c67d75bf253b  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
! 363b18743986330cd014c5bb7f4deb43  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
! bc41b718b4004c51d08259b3c249c30f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
! 7e13718400089b60b5d91965fd44bc50  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
! 30ae07808ce5e82ef4437d2cc02cbcb8  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
! 143387acad054db3f10f64ae9b60c616  libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
! 4e2bccb40cef04ead33e32611cae809f  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
! bdbfd8a1f469f4d844c04a3ee1c10608  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
! e424b55527b4225e3233f2350e4a507b  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
! 2408e3bb96eace5c00ef704fd5899733  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
! ff0501b3e5ffa1ac5e11ee06e5b1f68f  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
! 010b7db33f9995955e81994bcd61aa4e  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
! 21d38b0daf65ca37177fa2e1db877d2a  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
! ae1ee13cf18cc1fbfaa00bcf907545f5  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
! 1c1f83939805738865b139274f753554  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
! d83f81b3d97d76e2a82a680587c36585  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
! 588ea61bd062a960d38aea6d924ec9a1  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
! 1797cfa7f160a94c10edd450f94dcd53  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
! b76073f244d73e5bb1a73785051e38a8  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
! 645691362194b118f45a6badc3d78ab0  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
! 2cf519b416d44d9980e5be6adf61921c  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
! a715624876f609c5624f8d05e05e8b9e  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
! b40c7bc3c6d1c22e9aa597a217b3f76a  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
! 3290a57a090b86fb7c157eb0e3f5e9c1  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
! a5a496e3820c01d40ed72eb1d516bb7c  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
! b8ddaf892ab83bbc04457ff6b34411ac  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
! 26a1e06470a755505feb85bad8fcdd09  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
! 8a9f7ca7b753f158fa447fd10a6b0822  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
! ae0b622e0e27a450ba01bab4a4523158  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
! fe5b4bd0afdd11bacd8e621062139b4d  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
! 64dba7173ff1854d43ef4fd3bf669b55  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
! a857c452a93d21b889dcf5fa5ea297d6  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
! ad3dc2f6163bbc11156270480d978fb4  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
! fe6422602e99c01a9637f665b3a49962  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
! e06a98dbfb8e6aeb5c7eddefc09bce7d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
! b4ad2c2aa09569557a4b5ed4395ab6a8  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
! 8141366907f2f880d42fe1c660022b82  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
! 51f9c69363e8304eb856b71da2908615  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
! ebec53619d4aee282e651aa092fe8fc8  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
! a016f7e0cd09193fc2ad41dcea98084d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
! d2f0089eb3e222d639732f426830c474  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
! 048c7f0119dc241702bba82fdcdedc1d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
! 7d6eea8f9726c6f63b8c8db1990a0be9  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
! 617e62a68c80bfaaa56631d088734f22  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
! f8e910a13fcf5249b8d1c9007951c1bb  libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
! 3d0fe3cb0a32e9b81bfdc353da446bca  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
! 2c8d4949c4f34af3f360829ee083b716  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
! ec10959b0ff7cd4fb59a27a1cafae2b2  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
! b35a110116ce95a1ee45da0ad20fa1b4  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
! 4b65467d4cedf6c26ac4f80dea21ceca  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
! 00b941c41327cc884ad7d05f2e0ddaa8  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
! 6c618d8be0eb1631d184dddf1bf0e4f3  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
! 3e2125a1d8aff34b7ab9fb4fbed1c5d7  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
! dae7575faca412f3d552f82ead9b7e5e  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
! 46fe41b4457d5acc96ddbbb706f3f0e5  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
! e728217012ce1b2eb15971333e91260d  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
! fb6e9db97f8a25e85c39ee85de8e019e  libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
! 33862820ca5a96ec651afd00134b1d5f  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
! b4ea0d77634ed6ba813a39e2228f63ae  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
! 24b4de70d024da9efb127e7ec83e15bb  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
! 3828b3969938052d6d553f4eab5e7525  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
! 53599fe75d2cedff766d0119c1e21183  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
! b4f1318618d422531d2f0fe6f05cbfbd  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
! 7d02f1343a8ef6e385062205475d54b5  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
! 4a04e76845ca1e5e149a02fde0de7754  libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
! 357fdb7a9b778c8771781d2a26c4ab2a  libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
! a9bea08b0759f5b4b2d0e9069c12d88f  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
! 397df4dd8273d1211bf1f319d2efd195  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
! 75db4def4624be88602d93b3ce4146f9  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
! 2386f75910cd5da07fe8c2b7f1db8842  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
! b4eb477aa0fdd4db5d18a6c2d0231faa  libstdc++-v3/include/ext/pb_ds/exception.hpp
! 93890c4c5f15d27c11c50aeb8751321e  libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
! 4e1f543b8c601de3d19bb304faac97b6  libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
! 793bec35f0b43c04b5ff253dcedb2630  libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
! fb72314aa6a3a9bd92efa9e03a1dddef  libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
! f56df8d1708688a3d7e2478c6057aac2  libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
! 810a127158dc856366b1bb42a3c18fe3  libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
! 18277d3309cc02eaf7fed681cf6b4c43  libstdc++-v3/include/ext/pod_char_traits.h
! d599eb166c37e5652aa5ac604cf3a938  libstdc++-v3/include/ext/pointer.h
! 4fbe9ec2f3abca34ae1b3f21262e03d8  libstdc++-v3/include/ext/pool_allocator.h
! 34f82f4e89943de068471ad042ca5eee  libstdc++-v3/include/ext/random
! e424c2c65ced2ab29333a48fd89af9ca  libstdc++-v3/include/ext/random.tcc
! f6b81e2a61d8bf1019831733de43e9cf  libstdc++-v3/include/ext/rb_tree
! 4b6f7f3ba893e818d5ba060c260768d0  libstdc++-v3/include/ext/rc_string_base.h
! 726adfa0deea4952b350303884a6cc7b  libstdc++-v3/include/ext/rope
! f47db472dbb8dc2e97b982d308005526  libstdc++-v3/include/ext/ropeimpl.h
! 837e83907d8425d64b9b3a3b34aa3d99  libstdc++-v3/include/ext/slist
! 20a642e73c48425a0c3db2aaf9c19db2  libstdc++-v3/include/ext/sso_string_base.h
! 36c3e2e6b0bee147137f0a0d3d7066e3  libstdc++-v3/include/ext/stdio_filebuf.h
! 4f7010570c175fb90a6975005a119d7f  libstdc++-v3/include/ext/stdio_sync_filebuf.h
! 235e2ec51a8e871456225565a91d24dc  libstdc++-v3/include/ext/string_conversions.h
! 6d73b17bf9bf975f6604a9fc35c48a19  libstdc++-v3/include/ext/throw_allocator.h
! 0538e72e4f95930b55c3e441ce1a0a7b  libstdc++-v3/include/ext/type_traits.h
! b373ad2b360f9096cc83c40b1c8a9f77  libstdc++-v3/include/ext/typelist.h
! e9743e05f779c57f502a721a0d1ddd17  libstdc++-v3/include/ext/vstring.h
! 0fa024c2e999298431f07e6040f6fc42  libstdc++-v3/include/ext/vstring.tcc
! 4fa4c60d269a8ac2f858ce672e99093e  libstdc++-v3/include/ext/vstring_fwd.h
! 9f249ccd93a18a580d1c94f21e20bbb3  libstdc++-v3/include/ext/vstring_util.h
! 08a37f3e8c9c684c74ee29b665a0f159  libstdc++-v3/include/parallel/algo.h
! 7f50c88edaa6983c1e4d3cbf43c2159f  libstdc++-v3/include/parallel/algobase.h
! 304b368f2d7344a775c4d91cabd6d7f1  libstdc++-v3/include/parallel/algorithm
! c79945817a3abf1ed4b1d47d1e6ffbb2  libstdc++-v3/include/parallel/algorithmfwd.h
! be13ab9acd65b86ab927422a9a7e41e0  libstdc++-v3/include/parallel/balanced_quicksort.h
! 2aaa1ea1c981a6f45a74c31133dd8a1a  libstdc++-v3/include/parallel/base.h
! bc52c479cb09278d2dc985a7bd2d37cb  libstdc++-v3/include/parallel/basic_iterator.h
! 0051f14a648ddb9da572ff66e92dfbe1  libstdc++-v3/include/parallel/checkers.h
! 7bb5205b288f728958ab6021c0db8bf7  libstdc++-v3/include/parallel/compatibility.h
! 25cf1d5a9c42e9d662ecb31714a0d127  libstdc++-v3/include/parallel/compiletime_settings.h
! 44e7d2f3712607b62bad473a2b7322f8  libstdc++-v3/include/parallel/equally_split.h
! ca59b5fda7d494816cedfaddd8a89dd3  libstdc++-v3/include/parallel/features.h
! d181e037d11fefe3c7b75c38d3742efc  libstdc++-v3/include/parallel/find.h
! c89b1174fb68d70614eb361ba5d75e0e  libstdc++-v3/include/parallel/find_selectors.h
! c4ebc138161bac60bb77311853169af0  libstdc++-v3/include/parallel/for_each.h
! 978523a0356073c604f744edf87d4250  libstdc++-v3/include/parallel/for_each_selectors.h
! 875e66814c0086f9fa47df37426acf86  libstdc++-v3/include/parallel/iterator.h
! a3db6d537c22204a22d7e2d1b6aa1b17  libstdc++-v3/include/parallel/list_partition.h
! a3911127e7316de9dede086d9295383d  libstdc++-v3/include/parallel/losertree.h
! 8574a084e1bd6c6242a5c479f732b10d  libstdc++-v3/include/parallel/merge.h
! 0d9f0089f8c47ca636237cddd5beb57e  libstdc++-v3/include/parallel/multiseq_selection.h
! 50c8be67fa5af128532c2b6823d19af5  libstdc++-v3/include/parallel/multiway_merge.h
! ce79ac96807e5287f68e586ba039dbb6  libstdc++-v3/include/parallel/multiway_mergesort.h
! 71a6cade911e5ef1131cfcd5286c927f  libstdc++-v3/include/parallel/numeric
! 37b829c5a60723ea079216e9a86dd42c  libstdc++-v3/include/parallel/numericfwd.h
! 2ad7e242d9d4b05cbf6e6c674601a93d  libstdc++-v3/include/parallel/omp_loop.h
! cd8fa0534d1e7e16059d56a4bda7bcb0  libstdc++-v3/include/parallel/omp_loop_static.h
! e5564b5847a71323288b3e2823481ff4  libstdc++-v3/include/parallel/par_loop.h
! c42efa29787e4c04a6a838d19153ef29  libstdc++-v3/include/parallel/parallel.h
! 4b6b3919a66166fc691285060852a4fb  libstdc++-v3/include/parallel/partial_sum.h
! bfeced3375f6765ebc7c0099ccfd7ebe  libstdc++-v3/include/parallel/partition.h
! 669daaf67896c3a9b834cc10ea90b793  libstdc++-v3/include/parallel/queue.h
! 397d53be7099d7b6b0c6e1f0e0eb7857  libstdc++-v3/include/parallel/quicksort.h
! 885d4f426ddb3ae918db87d7d290622d  libstdc++-v3/include/parallel/random_number.h
! 5bcbaa42a2a16f00a86c470a2521d547  libstdc++-v3/include/parallel/random_shuffle.h
! 7166f528c1f73b73f605fbabc122f751  libstdc++-v3/include/parallel/search.h
! ba7f0741a4ac9c6a43584c4e5699df68  libstdc++-v3/include/parallel/set_operations.h
! 3f086de4b3bc10492929529820ae4243  libstdc++-v3/include/parallel/settings.h
! dfd7f69879f2801379a15b9f655ec5fb  libstdc++-v3/include/parallel/sort.h
! af620567c2dac8528b96639948651a40  libstdc++-v3/include/parallel/tags.h
! 5428e092dfc583417193d4bf8c693fd4  libstdc++-v3/include/parallel/types.h
! d7c4ef5d00868daddbb1475ae32af911  libstdc++-v3/include/parallel/unique_copy.h
! 08adac66ffceae82ac2661b0241db99c  libstdc++-v3/include/parallel/workstealing.h
! 874daab6f0a0caff5ae471708e7d7f6d  libstdc++-v3/include/precompiled/extc++.h
! a560921b58eff98f384a4419173da8ff  libstdc++-v3/include/precompiled/stdc++.h
! 8bc241eda992e14e9d417167e4a74289  libstdc++-v3/include/precompiled/stdtr1c++.h
  75cfb36aeb3ed8672bb4e2957272203c  libstdc++-v3/include/pstl/LICENSE.txt
  6aa52d6b70bfb53073697375741dff45  libstdc++-v3/include/pstl/algorithm_fwd.h
! daaba18ca431b26a73f9d9ec8e8a7a46  libstdc++-v3/include/pstl/algorithm_impl.h
  ae347741e840ff43bfc0c1800ecdbf63  libstdc++-v3/include/pstl/execution_defs.h
! 6e9e67224ea8b657e29e951ea1d906a0  libstdc++-v3/include/pstl/execution_impl.h
! 87b0d132d9a180f96cdd7cbbf15a9f57  libstdc++-v3/include/pstl/glue_algorithm_defs.h
  5b59c0a6c0cb7ddb2fa2f6d8f454b15d  libstdc++-v3/include/pstl/glue_algorithm_impl.h
  368ad5a8bcc8d830f5785113b6245f9d  libstdc++-v3/include/pstl/glue_execution_defs.h
  0b0a3983fbed012140824669c804e50a  libstdc++-v3/include/pstl/glue_memory_defs.h
! b8e4c4f0c5ac066a757e43a5b7223c10  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
! 614e375354fb0f349f7af0f7e01fe3bd  libstdc++-v3/include/pstl/glue_numeric_impl.h
  f9819c3fbab884d0ff4d0150023c3826  libstdc++-v3/include/pstl/memory_impl.h
  46b7494faaf72186343f13f46db3cac4  libstdc++-v3/include/pstl/numeric_fwd.h
! 298135dd5a0056c2dc6bda5721e0eb27  libstdc++-v3/include/pstl/numeric_impl.h
  531b6552c2b0ded549ed9bc9b03bebf4  libstdc++-v3/include/pstl/parallel_backend.h
  c6ea5607259b8e63bb887db39136b942  libstdc++-v3/include/pstl/parallel_backend_serial.h
! f440b4cc9ed25dc734c39310ac196140  libstdc++-v3/include/pstl/parallel_backend_tbb.h
  e128e525f970f3948feec2f4750919a8  libstdc++-v3/include/pstl/parallel_backend_utils.h
  688f2289e52048ec70461174eadd2efe  libstdc++-v3/include/pstl/parallel_impl.h
! fc443edc98096342d5fc5be5a9455d4b  libstdc++-v3/include/pstl/pstl_config.h
! 429c7831b6f1369c536eaa83e27cd111  libstdc++-v3/include/pstl/unseq_backend_simd.h
  6e7da3aed3b413aec47ea7457e6ea726  libstdc++-v3/include/pstl/utils.h
! f78159cfd177a7bc84957990754dbc3e  libstdc++-v3/include/std/algorithm
! e9bdf696bbd1bb6e25c770495b62ee1e  libstdc++-v3/include/std/any
! f682825b76fb6e9cd437c77ab30bb105  libstdc++-v3/include/std/array
! 40ce4527ff101adaa1eb3e248f7e7790  libstdc++-v3/include/std/atomic
! 01cf19d843a4461de3522fe15a305313  libstdc++-v3/include/std/barrier
! b6af1bbc3368d9c5b5a8c7182f8272ec  libstdc++-v3/include/std/bit
! 6c83353fc8d46581132ab76a4ff6552a  libstdc++-v3/include/std/bitset
! ac89056b371085656f9349b818aa8656  libstdc++-v3/include/std/charconv
! c333f4189dc2424a9d83da4e0ade79b3  libstdc++-v3/include/std/chrono
! e43c8d137c20c10ac051954a254c532c  libstdc++-v3/include/std/codecvt
! 650adbddee3c473863f9d814c33e8ea3  libstdc++-v3/include/std/complex
! 029c042214e60b24aae61965e2ba2f9a  libstdc++-v3/include/std/concepts
! 4c3e3b91f288c0a91fdf89dca455559c  libstdc++-v3/include/std/condition_variable
! 63a42f783a6f1e72f6eb9a867087ffed  libstdc++-v3/include/std/coroutine
! f52c3ff6f6b2bb10c194762c2e894726  libstdc++-v3/include/std/deque
! ae64ad244c17b2990bf7800baac14798  libstdc++-v3/include/std/execution
! 9bfd85bc53277978862f2c4840fe93fa  libstdc++-v3/include/std/expected
! cff63c5eb4adb15a28919e1ffaaaa7be  libstdc++-v3/include/std/filesystem
! db32f2d80e2b7a0f92b685e07ff38b12  libstdc++-v3/include/std/format
! 2d097767d2c66702a4ee70468b0376f0  libstdc++-v3/include/std/forward_list
! 4183b8200ed6ff28ecd64696007af811  libstdc++-v3/include/std/fstream
! 1a6230e0c904f63ba6fe1547fdd1905c  libstdc++-v3/include/std/functional
! cb2c0813896ec59fe1be8fa6a3dd324c  libstdc++-v3/include/std/future
! b0319ecb776f20bfc1b81173461f688d  libstdc++-v3/include/std/generator
! 8c0055832190ba951633bb463abc6e9f  libstdc++-v3/include/std/iomanip
! 25d3cde7ba909e5a4402b66b6876f669  libstdc++-v3/include/std/ios
! 458b165c45b928858eb506cf29827ba7  libstdc++-v3/include/std/iosfwd
! 85263f05eed8eaa8568b0c882e2c6222  libstdc++-v3/include/std/iostream
! fbb98a3a85dbb9d1d7f5334f966c9ad2  libstdc++-v3/include/std/istream
! ab071c7c019b51dde910e875fd3981aa  libstdc++-v3/include/std/iterator
! de9d16c58c0525a3af601dd8a558357a  libstdc++-v3/include/std/latch
! 99a421f78b6fc19e7a8f953c32ab3ee9  libstdc++-v3/include/std/limits
! 9afab6c422e97db6279cb51e83c5efe0  libstdc++-v3/include/std/list
! 49f6e0e6000077ee2b3f2633f47e4925  libstdc++-v3/include/std/locale
! 4b960aab24d5f36f08ae48806b3393b3  libstdc++-v3/include/std/map
! b1f89a49d34ca9aa81fe4ddc52e67b5a  libstdc++-v3/include/std/memory
! b95756c8b75f0ba0696fe0d53e25c2c8  libstdc++-v3/include/std/memory_resource
! 41cd6b791822b87ce3f2e3e2bc0d425d  libstdc++-v3/include/std/mutex
! b162db38fed9250df89cd38bf8a9f2a9  libstdc++-v3/include/std/numbers
! 325b8d455eb0cd34ffdfe94feb38eace  libstdc++-v3/include/std/numeric
! fa06e136fe019296e0c5f918628cfaef  libstdc++-v3/include/std/optional
! 0796479f8853b65c49e8ec2c11d75875  libstdc++-v3/include/std/ostream
! 07e31c70075a842a98e81ebc3305e85a  libstdc++-v3/include/std/print
! d68f065be22a4221aaa0a24978377953  libstdc++-v3/include/std/queue
! 30117f52180cd6e36edf1ccce29b8eaa  libstdc++-v3/include/std/random
! 609458f1bc31ec1dabe062935f3e66dd  libstdc++-v3/include/std/ranges
! 2b7ff9926dd64ac70ff5d2dc0c027a96  libstdc++-v3/include/std/ratio
! 433aa706c9a9150dc6c4149527013cd3  libstdc++-v3/include/std/regex
! eb34fd986e07061f3cad42681dbbd89e  libstdc++-v3/include/std/scoped_allocator
! dcfcd93b1470ad7b25a150c5ab816dc8  libstdc++-v3/include/std/semaphore
! 83cfe2f7e61a3bbbfc685c63a306e5d1  libstdc++-v3/include/std/set
! 09cfaa22e5a9d23f7a79f388fa6bad2a  libstdc++-v3/include/std/shared_mutex
! dfaa6ea502378573b76189598bfc35a9  libstdc++-v3/include/std/source_location
! 2943d42e93af655e96e0cda0e196f5a5  libstdc++-v3/include/std/span
! 150494e3c4d2c69af905516415888605  libstdc++-v3/include/std/spanstream
! f099bc998c2758cb164c891167ce8c5d  libstdc++-v3/include/std/sstream
! b8320e4989287bb5b75ee2f3a6a9cc1c  libstdc++-v3/include/std/stack
! 05553b3d3717703110844c07a9b70931  libstdc++-v3/include/std/stacktrace
! a0df6d15b0b61f28637877eac9b32416  libstdc++-v3/include/std/stdexcept
! 61ee2f87017fb12a433b912711616843  libstdc++-v3/include/std/stdfloat
! 406d5b03cbe8429f45aec26c93455b4d  libstdc++-v3/include/std/stop_token
! a638d14f025bfe69de610cd67bd7be1c  libstdc++-v3/include/std/streambuf
! 44e8dab6a7921f591ad1fd673d3bd0e4  libstdc++-v3/include/std/string
! a87699a50f435fba1de9cf21123c1d55  libstdc++-v3/include/std/string_view
! 9320934590547a708c259f9365f20d69  libstdc++-v3/include/std/syncstream
! ea3475b6634d2e3d92998c1122691d82  libstdc++-v3/include/std/system_error
! 7accb225f1102326d66c684639b89253  libstdc++-v3/include/std/text_encoding
! 4d1e7ccb1f7585f38eaa965dd767a630  libstdc++-v3/include/std/thread
! 86d04350de8bda135d4eb284235b10d8  libstdc++-v3/include/std/tuple
! afb45f547b370f7bc54ce5c85fa1ab93  libstdc++-v3/include/std/type_traits
! 91fe9927d579813b014eed3896aafbcd  libstdc++-v3/include/std/typeindex
! 1a9f797c585b2086b65a11c3b53449f8  libstdc++-v3/include/std/unordered_map
! e1fb9245c8369afd6467431f766e0045  libstdc++-v3/include/std/unordered_set
! d97dc9a59a84ecd3313f4602c45a055f  libstdc++-v3/include/std/utility
! eb18138f2bc8dab695f3a054253441cd  libstdc++-v3/include/std/valarray
! 770d1f484319d1538c69ce1a23068c2f  libstdc++-v3/include/std/variant
! 7d92f290f77ab1d0a4cb38062a17dd8c  libstdc++-v3/include/std/vector
! 575dd3875ecd60012bfe4acc7106d8a9  libstdc++-v3/include/std/version
! 4561db25a622c33cbeab9705fc4eaeda  libstdc++-v3/include/tr1/array
! 6fd1cedb4107fe0004865bb26aca49e7  libstdc++-v3/include/tr1/bessel_function.tcc
! 564d5c0547c6157c3f918ad5f363a4a4  libstdc++-v3/include/tr1/beta_function.tcc
! 23784ccb214a98ae3a9312ae150e52b7  libstdc++-v3/include/tr1/ccomplex
! 4d1278f9daa116614a6ecb94688edf23  libstdc++-v3/include/tr1/cctype
! 6cb56dd31b99fcba76aa1a6a21c74e70  libstdc++-v3/include/tr1/cfenv
! a4db74c2f55797883a9158f70ce5574b  libstdc++-v3/include/tr1/cfloat
! 260213871bc0adf73ab127de16dcc909  libstdc++-v3/include/tr1/cinttypes
! b6556f00ef4b82198ca35bcc8c069886  libstdc++-v3/include/tr1/climits
! a5453cabc5595d8cde38f053717db933  libstdc++-v3/include/tr1/cmath
! 3e5a3861ab67a586e508cf7234a82f7d  libstdc++-v3/include/tr1/complex
! 8a75f64f044a7f2c9e35142472120ee0  libstdc++-v3/include/tr1/complex.h
! b7e1e328d477240d2e01d3fe7397fe36  libstdc++-v3/include/tr1/cstdarg
! 52dff488a3e6a9778109dc79f6af2ac5  libstdc++-v3/include/tr1/cstdbool
! 654760c45946d98e1aa942283396c44d  libstdc++-v3/include/tr1/cstdint
! 37b6911a97eddcf178ea4d03e518130c  libstdc++-v3/include/tr1/cstdio
! 1763347fd871ce62ea9f98a12a487a5f  libstdc++-v3/include/tr1/cstdlib
! 3aadd51bdd92ebf7421191d96896012e  libstdc++-v3/include/tr1/ctgmath
! 295c36cabc653176ceb556d81d502c84  libstdc++-v3/include/tr1/ctime
! 6f15afae4ae3c997fcd46361f2c94c95  libstdc++-v3/include/tr1/ctype.h
! 529156ab608403140bc585a9f3de892f  libstdc++-v3/include/tr1/cwchar
! ffd681713aeb4361c70b9c23bc7ad712  libstdc++-v3/include/tr1/cwctype
! cbc72d95ebebc5a7500d3c7fdf159674  libstdc++-v3/include/tr1/ell_integral.tcc
! f4e40610c43e72cd684d4c6338cdf996  libstdc++-v3/include/tr1/exp_integral.tcc
! bc4a366fe643722e144d7435ba6d3679  libstdc++-v3/include/tr1/fenv.h
! ba2cf6ecdf1e1741acf83cdb5811a4d9  libstdc++-v3/include/tr1/float.h
! fe8c0dd15df920da7017e8a9dcf4382a  libstdc++-v3/include/tr1/functional
! 05301c537738e4a54312542c4ee6c198  libstdc++-v3/include/tr1/functional_hash.h
! e4f17b9d0ec06bfcb522bf783eda01d5  libstdc++-v3/include/tr1/gamma.tcc
! f3347809d4df4b91574d029d0d5f10fb  libstdc++-v3/include/tr1/hashtable.h
! aa5b73b9e968bd6c5b5e598ee30df0e2  libstdc++-v3/include/tr1/hashtable_policy.h
! 8524dcbbda486c325282a78d7ee08318  libstdc++-v3/include/tr1/hypergeometric.tcc
! b070fc29911163ba3a957de71b5cad2d  libstdc++-v3/include/tr1/inttypes.h
! 502349eaf4eeda1db1363358e39de301  libstdc++-v3/include/tr1/legendre_function.tcc
! e4ea7480d447023407bbcaee222f30b5  libstdc++-v3/include/tr1/limits.h
! a7abe833ade7fc7a3f48116b7d586645  libstdc++-v3/include/tr1/math.h
! 6af503fab279fdf65b1b18e1be722ba4  libstdc++-v3/include/tr1/memory
! 32bab140a8965b0ffe32268e716b577f  libstdc++-v3/include/tr1/modified_bessel_func.tcc
! 57968d88cb012ea0c336b485826607f8  libstdc++-v3/include/tr1/poly_hermite.tcc
! 45769b10c82d7d6873368fc56df3c4bc  libstdc++-v3/include/tr1/poly_laguerre.tcc
! eda7035bc80b82cf653cd77fabedf8cf  libstdc++-v3/include/tr1/random
! b30c06a6685dfc2cc9d76817ba6b2430  libstdc++-v3/include/tr1/random.h
! 4f96e73b97ab658e8584f1fee44e4966  libstdc++-v3/include/tr1/random.tcc
! b0154cb0389019105105970cae6b1bea  libstdc++-v3/include/tr1/regex
! d22a8097b07102d38ea171d73d55ae44  libstdc++-v3/include/tr1/riemann_zeta.tcc
! 1c04fc8af92bb5d31bf1053c52f461bc  libstdc++-v3/include/tr1/shared_ptr.h
! 38c4f0d1e1aced297622aa65327e0c73  libstdc++-v3/include/tr1/special_function_util.h
! 713648d7d1de42540835c695ac94507a  libstdc++-v3/include/tr1/stdarg.h
! 2062755bbf36e13fbfce8f67f9ece853  libstdc++-v3/include/tr1/stdbool.h
! 49cb5d78bec8c48a4db0c75a133ad356  libstdc++-v3/include/tr1/stdint.h
! c355791c765003d2eeafc0ca6b0e4ae5  libstdc++-v3/include/tr1/stdio.h
! fc6f7b66b7c4972efb3c8275a951c109  libstdc++-v3/include/tr1/stdlib.h
! 299776e985fcb18db9898b8efe6c94a7  libstdc++-v3/include/tr1/tgmath.h
! d35c5eb7a40e2947d5cedbd925e3745b  libstdc++-v3/include/tr1/tuple
! 42221ce216558d8102e0ba0b33fc22ca  libstdc++-v3/include/tr1/type_traits
! c32324bd4fbe007d05d5228ec547d94a  libstdc++-v3/include/tr1/unordered_map
! 6cac0f3a8c777016cc8fc26245dfae84  libstdc++-v3/include/tr1/unordered_map.h
! 7a2c4f4a051352ce10c30b5290b7e32b  libstdc++-v3/include/tr1/unordered_set
! 0c3316d7206500d02db6f17b9789fc34  libstdc++-v3/include/tr1/unordered_set.h
! b5c68cd23a28ca201242cf066c48aa85  libstdc++-v3/include/tr1/utility
! 97859c0b28ff3641ee3041878d40cb1b  libstdc++-v3/include/tr1/wchar.h
! 0896f1e3882e434e432e3ac231516993  libstdc++-v3/include/tr1/wctype.h
! 53c241602e166b18fc233d3b91699fcd  libstdc++-v3/include/tr2/bool_set
! 7212205c5a046c177c9da14ce97dffca  libstdc++-v3/include/tr2/bool_set.tcc
! 5fcfe6db580124d7b7079ec039817f4d  libstdc++-v3/include/tr2/dynamic_bitset
! 8bd32736a24d1d3488522b19ed6f1b7d  libstdc++-v3/include/tr2/dynamic_bitset.tcc
! 16964ced3b8cc6f1a7b87b46677b3345  libstdc++-v3/include/tr2/ratio
! 9a678c549c7140003e924e438d64fddc  libstdc++-v3/include/tr2/type_traits
! a350b0f077ba9b2957e4e9d60527cc6d  libstdc++-v3/libsupc++/Makefile.am
  89680042878a16ef20deacf944e7c75c  libstdc++-v3/libsupc++/Makefile.in
! e3f62f125a5413bbe82b32180bcec9a2  libstdc++-v3/libsupc++/array_type_info.cc
! cf478c0be6bd6446a5cad76fad3c9610  libstdc++-v3/libsupc++/atexit_arm.cc
! 0a6c3b75fd71f7015f28289ae5b81325  libstdc++-v3/libsupc++/atexit_thread.cc
! 84cabbaac7f2a1c5a0f606e191cfe1d6  libstdc++-v3/libsupc++/atomic_lockfree_defines.h
! 0953c61dbb00b285e775637b232c5d84  libstdc++-v3/libsupc++/bad_alloc.cc
! 83a21c896ffb84d8c35494385ef63afd  libstdc++-v3/libsupc++/bad_array_length.cc
! a4bfe8e7b7e1fcdb233d250f34d48b3c  libstdc++-v3/libsupc++/bad_array_new.cc
! 99bee300f6b2032bc884d190f8793068  libstdc++-v3/libsupc++/bad_cast.cc
! b5431c45ca63a8c33a822270b63ef91a  libstdc++-v3/libsupc++/bad_typeid.cc
! e4fce400a30b3c373310af56ffda6bb9  libstdc++-v3/libsupc++/class_type_info.cc
! 09e8468a6af8bd9856b984eaf6567691  libstdc++-v3/libsupc++/compare
! 3471d9112038dca877667a79bd8cee85  libstdc++-v3/libsupc++/cxxabi.h
! 9bcec4f6a2e90107b8caa460dc1787f0  libstdc++-v3/libsupc++/cxxabi_forced.h
! 3e0c1597f198c4ce7e4a75fbf6b6186d  libstdc++-v3/libsupc++/cxxabi_init_exception.h
! 6ce07d770722c2e4063c925320c3b37c  libstdc++-v3/libsupc++/del_op.cc
! 55a27c5e5f90f16a0a54a2281eb4b90c  libstdc++-v3/libsupc++/del_opa.cc
! 9297245e4d8051d4da0c7d733c0dfa10  libstdc++-v3/libsupc++/del_opant.cc
! 9ac4af73bb5420e80558423181655aef  libstdc++-v3/libsupc++/del_opnt.cc
! abac2b282128523529249ae4936742e7  libstdc++-v3/libsupc++/del_ops.cc
! 8c69e990dd287d00b593fce8c8c30134  libstdc++-v3/libsupc++/del_opsa.cc
! b0d770b477e01af573ad7d39bc92d63a  libstdc++-v3/libsupc++/del_opv.cc
! c626b284ce4c6b73f3e3a55421b6b6be  libstdc++-v3/libsupc++/del_opva.cc
! e4ebe3528245e5273e6a006f980fc4fc  libstdc++-v3/libsupc++/del_opvant.cc
! 4e46b304fe44ab87eda236126aaaf8ab  libstdc++-v3/libsupc++/del_opvnt.cc
! 2a261232b065b26efbacce889b44f209  libstdc++-v3/libsupc++/del_opvs.cc
! 3ce0a8a833e64716f93da63922c61015  libstdc++-v3/libsupc++/del_opvsa.cc
! 71f02d05b4208d195e34c9e7fc2d9ba3  libstdc++-v3/libsupc++/dyncast.cc
! 89eb61361f683d177e2f1766395830d0  libstdc++-v3/libsupc++/eh_alloc.cc
! 439f2cfae94a25ffb241eaea545b6b39  libstdc++-v3/libsupc++/eh_arm.cc
! 0a70751fb400f9a99cd498fcdf67f078  libstdc++-v3/libsupc++/eh_atomics.h
! c8db8cb7d5bab4c21e76b7e57ce499ed  libstdc++-v3/libsupc++/eh_aux_runtime.cc
! 5d3aeada1c762aad5cdb8ee68138fac0  libstdc++-v3/libsupc++/eh_call.cc
! e6cab97b8673536281fd5d4c3bbd4d14  libstdc++-v3/libsupc++/eh_catch.cc
! fe12ef3588e208b3239c47f967c6a9d5  libstdc++-v3/libsupc++/eh_exception.cc
! 300a907ab3f9d5650c3ae9cd65d9dc28  libstdc++-v3/libsupc++/eh_globals.cc
! 59a772283681c81ddc2d37602a007fbe  libstdc++-v3/libsupc++/eh_personality.cc
! 8fa57161fb8a87a0a50c9d4fde8426ec  libstdc++-v3/libsupc++/eh_ptr.cc
! f4597209bb8cc5130effa12bb37b41c8  libstdc++-v3/libsupc++/eh_term_handler.cc
! 858f13a73f73d0af500bfbdcf01475d4  libstdc++-v3/libsupc++/eh_term_handler.h
! b99277b6b812fd69bf32c2f1add18398  libstdc++-v3/libsupc++/eh_terminate.cc
! af0d86fee7d806e601c36b7c4b768edd  libstdc++-v3/libsupc++/eh_throw.cc
! 31ca20346959627e1f12c0540e546d8b  libstdc++-v3/libsupc++/eh_tm.cc
! 083dd31ff28fffe2d9c58a1ce06da151  libstdc++-v3/libsupc++/eh_type.cc
! b351ed63c38dce4d8d1ceb22f1aa826d  libstdc++-v3/libsupc++/eh_unex_handler.cc
! d80d58b26997b4308fe3f99b65525f8b  libstdc++-v3/libsupc++/enum_type_info.cc
! 9d6fccfca6ae57dfdf562641c5551cc9  libstdc++-v3/libsupc++/exception
! 1f1c783b2e75b44aee522e9af3e42788  libstdc++-v3/libsupc++/exception.h
! 2f3901c54adffc4da342eea94d80216a  libstdc++-v3/libsupc++/exception_defines.h
! 9454f1dc659a5fca82863c92df8f08bb  libstdc++-v3/libsupc++/exception_ptr.h
! f443098b4eb73f6499927ea7214a7f6f  libstdc++-v3/libsupc++/function_type_info.cc
! 360ff92f1e5ad9f6b27fe3c73ad3e0ea  libstdc++-v3/libsupc++/fundamental_type_info.cc
! ceb5b90de44b4423dff2dc1fb5e3a075  libstdc++-v3/libsupc++/guard.cc
! dab148e973f15454bcce3294b303ced9  libstdc++-v3/libsupc++/guard_error.cc
! 724751aafba7d641da69eb16543bddce  libstdc++-v3/libsupc++/hash_bytes.cc
! fe0d8ce5ddac479755faf3df5252989d  libstdc++-v3/libsupc++/hash_bytes.h
! 62efc15b729c2c5f4fc1a07d2ac9d84a  libstdc++-v3/libsupc++/initializer_list
! 00ffc571fbc1aa9a65b50856a7740859  libstdc++-v3/libsupc++/nested_exception.cc
! 2814facdeb9245b81679f7e5d36ff763  libstdc++-v3/libsupc++/nested_exception.h
! f457abe0e1b30147cc5151d425b115eb  libstdc++-v3/libsupc++/new
! 4f3550ce21cebe08e422b3d0dcd566eb  libstdc++-v3/libsupc++/new_handler.cc
! f67f9badfe01eb8b18ef54feebf74cbb  libstdc++-v3/libsupc++/new_op.cc
! d4ae2f8c8fd665908b8f3ccbc01cfcbd  libstdc++-v3/libsupc++/new_opa.cc
! 71a0c463f3b5c2699cdc3fb5d304921e  libstdc++-v3/libsupc++/new_opant.cc
! 7cc27aa49a5980d5530774fe43b9942a  libstdc++-v3/libsupc++/new_opnt.cc
! cffb93ed6ac5118c398753c432a03069  libstdc++-v3/libsupc++/new_opv.cc
! 75ba60bc593316999029ab88c19e2dbe  libstdc++-v3/libsupc++/new_opva.cc
! e7545e04999e15a470f1d216c33daf2f  libstdc++-v3/libsupc++/new_opvant.cc
! 18f387024f7604c91b751c971d7b0641  libstdc++-v3/libsupc++/new_opvnt.cc
! 362391c7cfaf3c4e3673b0dd74628134  libstdc++-v3/libsupc++/pbase_type_info.cc
! e97bd0c167eda8f1e41b98b2e5393b44  libstdc++-v3/libsupc++/pmem_type_info.cc
! 767dead7920c084b1652c7bbf4ab9c3e  libstdc++-v3/libsupc++/pointer_type_info.cc
! b0677bf627ecd9410d125361ac126ef8  libstdc++-v3/libsupc++/pure.cc
! b0a2fd773895e794b80099d53e0be909  libstdc++-v3/libsupc++/si_class_type_info.cc
! 60f0cb35a01fc939b4e7cebc90542d39  libstdc++-v3/libsupc++/tinfo.cc
! 7c088471a425f9529301b34a6393f0a4  libstdc++-v3/libsupc++/tinfo.h
! 06c78172805a3896a004afb470991051  libstdc++-v3/libsupc++/tinfo2.cc
! 50ddc107573118cc5b60cb4005e928a2  libstdc++-v3/libsupc++/typeinfo
! 1130b173c3143e3b930a3c662a30a1c4  libstdc++-v3/libsupc++/unwind-cxx.h
! 5cd280006dee3d1f4d0640e43bb5df7c  libstdc++-v3/libsupc++/vec.cc
! 7a17b3f4a88e107b1f557ab913fd7433  libstdc++-v3/libsupc++/vmi_class_type_info.cc
! 689bdda2b01f5c541628ee4c1875b29d  libstdc++-v3/libsupc++/vterminate.cc
! 297d0acf6017e95f53ce5eb791a24f82  libstdc++-v3/libsupc++/vtv_stubs.cc
  e88dc2fa68ea978011d41472f6dab4fa  libstdc++-v3/linkage.m4
! 3c8b20a4419be1376ac845cbd31aa73d  libstdc++-v3/po/Makefile.am
  a5457e41b18fa84291efc712d8c7db06  libstdc++-v3/po/Makefile.in
! 8b3fc400bb80aad4a934a66278ae88e5  libstdc++-v3/po/POTFILES.in
! d86c0404126a353a0c201248a257d30e  libstdc++-v3/po/de.po
! e30a7219a337fb92a14c26562c9295a0  libstdc++-v3/po/fr.po
! 6a8bdba7608b4b93306e4ca1334a590d  libstdc++-v3/po/libstdc++.pot
! 2c8ce2a605978156b479033f59c05fd4  libstdc++-v3/po/string_literals.cc
! 8a467cb35bf37a0bd14b9f83a90da8bf  libstdc++-v3/python/Makefile.am
  c94ad903b4e7baf364cdc3ef5e9f58a8  libstdc++-v3/python/Makefile.in
! 62f1003c183e55743342191dfa28b3f9  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
! 9873f3513a8a40453d41552eedca2d27  libstdc++-v3/python/libstdcxx/v6/__init__.py
! d51d52f357fcac8787b8d5b73c9391c6  libstdc++-v3/python/libstdcxx/v6/printers.py
! b5a48bab2103d59dab15b85159d77520  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
! a4c1d51bba293cee2307fc7f9dd090f7  libstdc++-v3/scripts/check_performance
  128d0fbc24e1d43d9ff93d14bd521aa6  libstdc++-v3/scripts/check_simd
  40f8ee10a4683f6c7f555f9450fcaa12  libstdc++-v3/scripts/create_testsuite_files
! 9be7721e01e33b1760f903210c455ed5  libstdc++-v3/scripts/extract_symvers.in
! ee3e66be2246276478c1c274f48a6761  libstdc++-v3/scripts/extract_symvers.pl
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
  5b2236b4942c92df14f93a36d7534a9d  libstdc++-v3/scripts/gen_text_encoding_data.py
  c3455b8d87dcefd65c7fdcd24e4ce3a4  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
! 34e672239aff8de4729422525d257d4d  libstdc++-v3/scripts/run_doxygen
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
! da83a48f31b065cd7eaf52421e89aaaf  libstdc++-v3/src/Makefile.am
! 2d886e50a06049390e2909e5b5a4e85e  libstdc++-v3/src/Makefile.in
! 9abc17a2015fb4ca07e750b293a53e74  libstdc++-v3/src/c++11/Makefile.am
! 17fe200d157298ad586d2f9c868ed5ce  libstdc++-v3/src/c++11/Makefile.in
! d71850725cec8df39fc63d584595cb1d  libstdc++-v3/src/c++11/assert_fail.cc
! 56cf354440118f824b41f6b8746d864c  libstdc++-v3/src/c++11/chrono.cc
! cf21378012850e1d83525650b62ca9c6  libstdc++-v3/src/c++11/codecvt.cc
! a07b92281f68e71680d063d74b3e7948  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
! 81a414e4d6a49dfefec902f2f5c3e151  libstdc++-v3/src/c++11/compatibility-c++0x.cc
! efd10c3d42f9fb143ebc536309bd34a2  libstdc++-v3/src/c++11/compatibility-chrono.cc
! e0d62524016dc385cfa9ee60cc14bee8  libstdc++-v3/src/c++11/compatibility-condvar.cc
! 17dad3aa7b052256efefcade9639d3e2  libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc
! 71226f361bd0300feb1aef2ffad4c70c  libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc
! 6477ec78b4c53450ba5a621e25f3a8b9  libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h
! 8fd600683c5fd7e32cf8a46c8974ee7e  libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
! 9e0a4d2aeb4bd78cb1f626ae9029aaf1  libstdc++-v3/src/c++11/condition_variable.cc
! ea87b0a1f88300eabac581533b62872f  libstdc++-v3/src/c++11/cow-fstream-inst.cc
! 4cc50d42864118f57baafb47970e1db2  libstdc++-v3/src/c++11/cow-locale_init.cc
! 8f474a0758148734cb372f7aae4184a9  libstdc++-v3/src/c++11/cow-shim_facets.cc
! c1aed0de0ce717633096b9cb1a4a7896  libstdc++-v3/src/c++11/cow-sstream-inst.cc
! 48fba16adc13c66dcf2134fdcff8c5d7  libstdc++-v3/src/c++11/cow-stdexcept.cc
! f9de409fb305b2f189a7b88f7c4adc5e  libstdc++-v3/src/c++11/cow-string-inst.cc
! f5ab005f1d5a01caa6acf288af6a0452  libstdc++-v3/src/c++11/cow-string-io-inst.cc
! a383c68ca8d149324624ad3a0e31fe4e  libstdc++-v3/src/c++11/cow-wstring-inst.cc
! 70cdaa46e7190bbc8dc94a139acc42b6  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
! 40901377b2daeee4735a634de194c02a  libstdc++-v3/src/c++11/ctype.cc
! 17e5ef0d8ef26d818817a906cd83b104  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 48bf42cc7aa73939d273f80223d3939c  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
! 56ffb832d7bcf5ad78fc52e5cc8949aa  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
! 58880d48b718ea1946b8881e4ad74679  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
! 4f546b994b3b8aea2ae4ce2801c3d3b2  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
! 8cc0509009a43e902d369953f62de2a3  libstdc++-v3/src/c++11/cxx11-wlocale-inst.cc
! e5b26ebaa08d8c918f54fc695bbeaf15  libstdc++-v3/src/c++11/debug.cc
! 795123f7a824729199d6736ab8c3369b  libstdc++-v3/src/c++11/ext11-inst.cc
  ba1e398802c7793fc33131cddac099d5  libstdc++-v3/src/c++11/facet_inst_macros.h
! 2ed27c67fe57366c1644bb3ba940f899  libstdc++-v3/src/c++11/fstream-inst.cc
! a6ed3b5987161bdf61eb508eab3bf784  libstdc++-v3/src/c++11/functexcept.cc
! a08c50593e70afdeaae59a62499b5dd4  libstdc++-v3/src/c++11/functional.cc
! 3daeaa3b212207123ec2257834da8e0a  libstdc++-v3/src/c++11/futex.cc
! aff1181ba24bd49217b54fb05e5729f0  libstdc++-v3/src/c++11/future.cc
! 310972f6afac51b9a856184b728dc336  libstdc++-v3/src/c++11/hash_c++0x.cc
! ed9c1514acb724da50bb7eb81c6258c1  libstdc++-v3/src/c++11/hashtable_c++0x.cc
! 565f994a8801eaefe64d4910d9234117  libstdc++-v3/src/c++11/ios-inst.cc
! 29fa3542a2cffa65cbda372c66e91958  libstdc++-v3/src/c++11/ios.cc
! b65eaf977cc6b89c383e874f740623db  libstdc++-v3/src/c++11/ios_errcat.cc
! aaa2191c9e912c82582ef4644402be28  libstdc++-v3/src/c++11/iostream-inst.cc
! a9a1164106bb483a9802bd9281c3b9be  libstdc++-v3/src/c++11/istream-inst.cc
! cee3c1cf70f2042cfa8b2b9b5a5337c3  libstdc++-v3/src/c++11/limits.cc
! 9c3751050becf31222ab032c4b833041  libstdc++-v3/src/c++11/locale-inst-monetary.h
! bbbc3c272ba55e55cad301a7af5993c8  libstdc++-v3/src/c++11/locale-inst-numeric.h
! 4d42723271952acfe8fa71a752baa409  libstdc++-v3/src/c++11/locale-inst.cc
! 988cd0f01e8bf3318b1f026fa913f0fa  libstdc++-v3/src/c++11/locale_init.cc
! 97b9801049b634efa1b5514b6aef7ab2  libstdc++-v3/src/c++11/localename.cc
! ff4c3259e7fb7e81a673dc2938ec81ea  libstdc++-v3/src/c++11/mutex.cc
! 85e8305f965014f221007d0bb1653662  libstdc++-v3/src/c++11/mutex_pool.h
! 3466f42524f2b30abdd99d7e3e5ca085  libstdc++-v3/src/c++11/ostream-inst.cc
! 1cc542ed86db6a7a25b7708f81aa5c2d  libstdc++-v3/src/c++11/placeholders.cc
! 14206c8cd16d24e4dd82e3a8180ddc76  libstdc++-v3/src/c++11/random.cc
! 95234089f218230e717c82fd7efb8f89  libstdc++-v3/src/c++11/regex.cc
! 8e878a933319cfd3d95b3a6ba5fef202  libstdc++-v3/src/c++11/shared_ptr.cc
! 78e2640030c6c3e15c06488083ae9e73  libstdc++-v3/src/c++11/snprintf_lite.cc
! 60af02e6add2738d2f205149d962561b  libstdc++-v3/src/c++11/sso_string.cc
! 64c0e8fcdf2345da8ce8a7c0a1b3b39f  libstdc++-v3/src/c++11/sstream-inst.cc
! e4c0cb19929c76a2045e33511d984d87  libstdc++-v3/src/c++11/streambuf-inst.cc
! bd1158111c9965fec151a80c651f1c18  libstdc++-v3/src/c++11/string-inst.cc
! 0ae2559f93b38cc2e8036ba74c58989a  libstdc++-v3/src/c++11/string-io-inst.cc
! 4132b83e77af1e0ae43a3dd197254060  libstdc++-v3/src/c++11/system_error.cc
! 58d682cf374e162a32211794bfae1d2d  libstdc++-v3/src/c++11/thread.cc
! 7d28667c7249373f11cc00a0e6eee313  libstdc++-v3/src/c++11/wlocale-inst.cc
! d118e7a266b9fcb368d1de732018c51c  libstdc++-v3/src/c++11/wstring-inst.cc
! 060f1b389192b449d6c0867c7576ac97  libstdc++-v3/src/c++11/wstring-io-inst.cc
! d34de55d44a66b4c82c58164887f05f6  libstdc++-v3/src/c++17/Makefile.am
  1fab41448c9ad9ce8c3f32fe49551fa8  libstdc++-v3/src/c++17/Makefile.in
! 4fedb3048e885ea5b28600fbf177526b  libstdc++-v3/src/c++17/cow-fs_dir.cc
! 7ee04116a23b24275d232572f84678f3  libstdc++-v3/src/c++17/cow-fs_ops.cc
! 832a27e7c0e19b561904a9985b7d777a  libstdc++-v3/src/c++17/cow-fs_path.cc
! 349dff472bd6821594422a0350153d16  libstdc++-v3/src/c++17/cow-string-inst.cc
! 584a5a366bc74ad4a50f2afae1b21285  libstdc++-v3/src/c++17/default_resource.h
! c347ef2c3ab2982bb980afb943891a83  libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
  cdf9c54ab7ea85aa42bbf32b2e749913  libstdc++-v3/src/c++17/fast_float/MERGE
  88af13a4cebd3e9f44449b09304147d9  libstdc++-v3/src/c++17/fast_float/README.md
! 093cc2d73328b5328c46320d9fb0ad05  libstdc++-v3/src/c++17/fast_float/fast_float.h
! eb207810586ea846576007018322c6e1  libstdc++-v3/src/c++17/floating_from_chars.cc
! 6310bd84805ba8da0ba88ee4704b7289  libstdc++-v3/src/c++17/floating_to_chars.cc
! 286baf8ceea2770abfc460321d508ec5  libstdc++-v3/src/c++17/fs_dir.cc
! bc84c4ad1868c34bd49313f884bb7291  libstdc++-v3/src/c++17/fs_ops.cc
! 4caf7cdad3b78037fc52bfcf6fcb19b7  libstdc++-v3/src/c++17/fs_path.cc
! e7ee94a1031a3b8d2c9f0fabc8511938  libstdc++-v3/src/c++17/memory_resource.cc
! 7d6a7293171f60a9406995fb4ddab5bd  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
  5c512389f4cbe0ea37ce2a8da0f070d6  libstdc++-v3/src/c++17/ryu/common.h
--- 131868,132982 ----
  b3f117e4c677e60cf6035cf76714b185  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
! 9da4610e32c81714e9188c6852c8dc93  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
! 1baba4ec8761c012c41a2ea967630fe1  libstdc++-v3/doc/xml/manual/configure.xml
  0af07cc2460e288292186ea8149169ee  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
! 0423695ef5d72eb026dfccb3b68e16ac  libstdc++-v3/doc/xml/manual/debug.xml
  a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
! 3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
! f300cfbcd39d07f1a1628c08ed8bc650  libstdc++-v3/doc/xml/manual/evolution.xml
! f9b28126e916ad19bb8350c6cb6bff95  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! fb1b8e4745ce0e8ee919f6013ad8ba87  libstdc++-v3/doc/xml/manual/intro.xml
! 01ddfa93b18eebb84ed0144728f9bc9e  libstdc++-v3/doc/xml/manual/io.xml
  5ac71d67674ea22bcf1e54043bf8e99d  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
  b00f98f125f6186c369ce588d795f978  libstdc++-v3/doc/xml/manual/localization.xml
  90cedee1e8e04d1ab87bbf41d47293ec  libstdc++-v3/doc/xml/manual/messages.xml
! ac9d3bd9fc0873aff36db0b07a78bf4a  libstdc++-v3/doc/xml/manual/mt_allocator.xml
  42b8355117a7bd9aa755048290e70d2c  libstdc++-v3/doc/xml/manual/numerics.xml
! 670fae5ac4c0fa1aec6d56273ad3e32f  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  7c390b245068bcc2f3f52590bdf8526f  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
! 44c53fbcb219a9a8db16061983e78759  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! bdc0ccd8cfd9d1d8cc970f825d5fe4bd  libstdc++-v3/doc/xml/manual/prerequisites.xml
! adadeaccd7e3be18b69dcc095e96f3af  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  d7f222c42325cd44eadad2c59eef7e6f  libstdc++-v3/doc/xml/manual/spine.xml
! 596c7aab458db3d67d78deb96cbc9d9b  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
! 644fc4f5809caba03388ce8159897214  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
! a1e5e1f330c7f2768f2ee7abc3e07ee8  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 338f85647afb4d26f03625a157258b1b  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! dfb20c2399649a914760f055f32dd178  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! a2c3a8c7166879a6792f6b1595645511  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
! 947cbcb30cf76f2d22ef124b555113b9  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
! 4d3d64f9d7fc245ed5d85a621393ffce  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! bfd38fc5f1090656a5139c94c16ea163  libstdc++-v3/doc/xml/manual/strings.xml
  2b80feb1b53a8d0895a292620ec430b2  libstdc++-v3/doc/xml/manual/support.xml
! c540dcb615e766afe887215bd7795e42  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 57bdabb57ce2153ad90ca3b1c6a6edbd  libstdc++-v3/doc/xml/manual/using.xml
! 257e301935b13b4b045e571fa248a4d8  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  74a5acaa32b3d223bd413c1bb5b69ac6  libstdc++-v3/doc/xml/manual/utilities.xml
! c587674e0c370a2d6ccc5213ab3e4e65  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! c78681db088e6c2a324c1eeb9abb8eda  libstdc++-v3/include/Makefile.am
! b08a39f51d72ac622e2e5e257ae3897b  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
! 57cc191bd1719e631e7271ce373ed1e6  libstdc++-v3/include/backward/hash_fun.h
! 63828a02b0887466a7096b1448cd2a21  libstdc++-v3/include/backward/hash_map
! 9dc91fcffffa4f8473ccd448eb6c9bb0  libstdc++-v3/include/backward/hash_set
! 951f75331ad416a6b7615226e2380700  libstdc++-v3/include/backward/hashtable.h
! 58ba738fed9ed2c246a3103041a0cf73  libstdc++-v3/include/backward/strstream
! 5bf7a6fc5e70783cfa8d69bf57bbad03  libstdc++-v3/include/bits/algorithmfwd.h
! 7bc72c71178202a8889ee8eaf3bd46e0  libstdc++-v3/include/bits/align.h
! c2f5862787920c2fc07b4f499e362a00  libstdc++-v3/include/bits/alloc_traits.h
! c124f049cd4f41ebcf3bbfd04df17cf5  libstdc++-v3/include/bits/allocated_ptr.h
! d18c16b3c9c3ab2e7d487de90ec27d17  libstdc++-v3/include/bits/allocator.h
! a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
! 7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
! c2ed9b9ed62b02a5aba9733f5b376172  libstdc++-v3/include/bits/atomic_timed_wait.h
! bb69994569d6bb0513c7fbd4d74bc697  libstdc++-v3/include/bits/atomic_wait.h
! 3f7a7ce2588d1e8ea4f282e9f41ac292  libstdc++-v3/include/bits/basic_ios.h
! c54b27ddff7542cc6baa362f62fb5778  libstdc++-v3/include/bits/basic_ios.tcc
! 811aa7875a4cc11129344e9a96ad1f5b  libstdc++-v3/include/bits/basic_string.h
! ae1074cab6b583707efdb40bf0099caf  libstdc++-v3/include/bits/basic_string.tcc
! 200662cd7d76e4a1990ec1207ae62a51  libstdc++-v3/include/bits/boost_concept_check.h
! a155d2afa910d24be0955f42c4585228  libstdc++-v3/include/bits/c++0x_warning.h
! 047d91e40a978dcbedbfd761ecb495d4  libstdc++-v3/include/bits/c++config
! 4ab7627c024bab75db708e43d35616aa  libstdc++-v3/include/bits/char_traits.h
! 195dabcb74f9b313c574745539925b0e  libstdc++-v3/include/bits/charconv.h
! 2ac54ed5e0fab6bc6f771ecb2e9a9757  libstdc++-v3/include/bits/chrono.h
! f174e14bb7b97d31dfd02ff21c38f6df  libstdc++-v3/include/bits/chrono_io.h
! 2ff73cb405cb01626a751e0fa0f339f3  libstdc++-v3/include/bits/codecvt.h
! 23fc42ee8644308c793f44d20f00420e  libstdc++-v3/include/bits/concept_check.h
! e999e0783a5ca2165919f352526501e9  libstdc++-v3/include/bits/cow_string.h
! 99157013f345a7984753e3d01fdd744f  libstdc++-v3/include/bits/cpp_type_traits.h
! 7cddddf44455557aa3a51978b5887fff  libstdc++-v3/include/bits/deque.tcc
! be08582d1795753f6e8fb613a7ec9fe0  libstdc++-v3/include/bits/elements_of.h
! 397af990234a7f718cce0f629f7d8b13  libstdc++-v3/include/bits/enable_special_members.h
! b194eb42ed4e3bc3a3f65805561d45c8  libstdc++-v3/include/bits/erase_if.h
! 117e69feccc3ef984ce6fdf9e5e7df7d  libstdc++-v3/include/bits/formatfwd.h
! 3c1cd1724fd697b7e7c6c0b2233c4c62  libstdc++-v3/include/bits/forward_list.h
! 8123372b7074a636b749e1e60f9f2b81  libstdc++-v3/include/bits/forward_list.tcc
! 547631f602a86bc167ed71b762904cd9  libstdc++-v3/include/bits/fs_dir.h
! 6b7b8aca89690d8a4558046e54c35af9  libstdc++-v3/include/bits/fs_fwd.h
! b13fecc1efb3b85dacbed61c6d2a7eed  libstdc++-v3/include/bits/fs_ops.h
! 5fa932fcea9eb5ed9e3683af8d5e9276  libstdc++-v3/include/bits/fs_path.h
! b3da24b61a3e8219dde982b2734707ec  libstdc++-v3/include/bits/fstream.tcc
! bda3ca60f2214f1bd6656e6612aff428  libstdc++-v3/include/bits/functexcept.h
! edde9c9d1c9e267663f60a9f5cfe3ebe  libstdc++-v3/include/bits/functional_hash.h
! f656180781457f5f36a26b5902da4b6f  libstdc++-v3/include/bits/gslice.h
! a94b98a38c3eb27aa6644a5fb468c9de  libstdc++-v3/include/bits/gslice_array.h
! df03a6e1a88ea69759bc32441b171cb9  libstdc++-v3/include/bits/hashtable.h
! bafd340e02d232fc7ced1eb5f68967ce  libstdc++-v3/include/bits/hashtable_policy.h
! 473034b12d8308be48d4a3b85fe19d83  libstdc++-v3/include/bits/indirect_array.h
! ab0c92c57c5ec5cb9d0bfb3a7963d00c  libstdc++-v3/include/bits/invoke.h
! 11d329b94f374c9cc8f95f7e5a958ee5  libstdc++-v3/include/bits/ios_base.h
! 2bc5cac03f5593d9be1d3d99b4b8f3b3  libstdc++-v3/include/bits/istream.tcc
! 397a68eebbac2594b59d178d5058fd5f  libstdc++-v3/include/bits/iterator_concepts.h
! 141c7da3c057e3f798bef5a54873d5cc  libstdc++-v3/include/bits/list.tcc
! 07d6a764dc4604a32ea343700b3a5a95  libstdc++-v3/include/bits/locale_classes.h
! 4c9c92e77c3450c6e65949fa769d4f93  libstdc++-v3/include/bits/locale_classes.tcc
! afddc91c09a8cf9d32d216928f6ac840  libstdc++-v3/include/bits/locale_conv.h
! d5313190529dc17f5c1b224649a2d12c  libstdc++-v3/include/bits/locale_facets.h
! 95b04bec0ba2313d398579c618ca282c  libstdc++-v3/include/bits/locale_facets.tcc
! 8ed9ff8d2d87faf4be29f26b0ab4df3c  libstdc++-v3/include/bits/locale_facets_nonio.h
! 9e782e5da4039aa3230bb96c97245039  libstdc++-v3/include/bits/locale_facets_nonio.tcc
! 1d2095e2488ff25b060768c176bc3199  libstdc++-v3/include/bits/localefwd.h
! ebe0e043997d2c8b674df27da18dc48c  libstdc++-v3/include/bits/mask_array.h
! 49e58e9ec2145ed684701aa13f71f5af  libstdc++-v3/include/bits/max_size_type.h
! 9eff13bd13b461742ae4d1e12f0cce28  libstdc++-v3/include/bits/memory_resource.h
! 27bdede74800b12180665889a05cca6b  libstdc++-v3/include/bits/memoryfwd.h
  7b351469ff54ea35e3e585733ed01c68  libstdc++-v3/include/bits/mofunc_impl.h
! 6ac85b21a9fb05014efe9345967c51b4  libstdc++-v3/include/bits/monostate.h
! 4ee2dc954f1d95f9c0bb230aec3778cc  libstdc++-v3/include/bits/move.h
! 9fdf7f4d854ba2c39f864c9364081c8d  libstdc++-v3/include/bits/move_only_function.h
! 46c2f3b679b1978ddb4dff0bf8b97610  libstdc++-v3/include/bits/new_allocator.h
! f0db6753fd67e8ef172c6851da248f62  libstdc++-v3/include/bits/node_handle.h
! d9b4799b2fcb53d3c0b0083520867135  libstdc++-v3/include/bits/ostream.h
! 6a70bf77d2af097179dfd48fd590bcfc  libstdc++-v3/include/bits/ostream.tcc
! 45be89105fdcb6d509423a07db106ba3  libstdc++-v3/include/bits/ostream_insert.h
! a0ff2aff5e6b290f02129d8fd5066f94  libstdc++-v3/include/bits/out_ptr.h
! 8a8a359cdcce476304e0c7a41f405f02  libstdc++-v3/include/bits/parse_numbers.h
! 5c23229552297aa0937e1eac544c60e6  libstdc++-v3/include/bits/postypes.h
! 5f3f6621fe24c343d0311ca670a32765  libstdc++-v3/include/bits/predefined_ops.h
! f79ccf9398c9456b79cbbb762eebd943  libstdc++-v3/include/bits/ptr_traits.h
! 083ee9dbf4a8803183e5f6a5d02a1c4f  libstdc++-v3/include/bits/quoted_string.h
! 053e1de38aef43bbaf1a9a4af1e3ad2f  libstdc++-v3/include/bits/random.h
! 840a9ec8406b934a97a1df66d37af685  libstdc++-v3/include/bits/random.tcc
! b0c29f09a819ac9aa11c3507409c11ef  libstdc++-v3/include/bits/range_access.h
! c4870f814a271600f0c3b220ce577780  libstdc++-v3/include/bits/ranges_algo.h
! 2739c66cfdc38cbad18771e2317ce548  libstdc++-v3/include/bits/ranges_algobase.h
! 8457ca60903b4ca07617a6f477e43ace  libstdc++-v3/include/bits/ranges_base.h
! 586727039587b10b560a902b1c7008b1  libstdc++-v3/include/bits/ranges_cmp.h
! 4a47bd7ff3afbf353ca7c097f3fda6f8  libstdc++-v3/include/bits/ranges_uninitialized.h
! 13ab6526ab5b8cd5e9a7b12e6bf761f6  libstdc++-v3/include/bits/ranges_util.h
! 222a1067e3c63fb19ed0996234a84884  libstdc++-v3/include/bits/refwrap.h
! 5b95e35539d0071176396cd82a6072b7  libstdc++-v3/include/bits/regex.h
! b5ae25c0469c7fb23c0914fcebced654  libstdc++-v3/include/bits/regex.tcc
! 8574b29ef7f78afa13942ca1525502d5  libstdc++-v3/include/bits/regex_automaton.h
! 1a5c4b076e644644ecb038a6c2e76ca3  libstdc++-v3/include/bits/regex_automaton.tcc
! fafbb831bf729a319ae2fdce7a89fa09  libstdc++-v3/include/bits/regex_compiler.h
! 46fa213f3ad5327440d62134c29dbb18  libstdc++-v3/include/bits/regex_compiler.tcc
! fce0df5e6bf950f27228a12451fbd226  libstdc++-v3/include/bits/regex_constants.h
! 6ca3bfbf5aafc309148a9ff8a58b7b80  libstdc++-v3/include/bits/regex_error.h
! d36de2845480e2dc51861df7b179eadc  libstdc++-v3/include/bits/regex_executor.h
! df3ef438d91412b71148268cb103fd3b  libstdc++-v3/include/bits/regex_executor.tcc
! 15dd5944c7cd223ab035591c92c65fc5  libstdc++-v3/include/bits/regex_scanner.h
! 27e294ed24336b703f9fb025b6d69f51  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
! 88c654658dd63604dd22c1f147bd3956  libstdc++-v3/include/bits/sat_arith.h
! 87a0d4884c4158e55cdf85ecb18c715e  libstdc++-v3/include/bits/semaphore_base.h
! 614b105136bea17f03ea2e00796f7f8e  libstdc++-v3/include/bits/shared_ptr.h
! 23c0ae833e9a425540f0dd796ba1f1fb  libstdc++-v3/include/bits/shared_ptr_atomic.h
! b9d5bd7f1c59e9ec96882129c5cb5d1b  libstdc++-v3/include/bits/shared_ptr_base.h
! d050e025f60dc3eef08990d737b75085  libstdc++-v3/include/bits/slice_array.h
! 67cd790795bafd7c20715ef4d1f9d2d3  libstdc++-v3/include/bits/specfun.h
! de3723b929f14af1731389010c14893b  libstdc++-v3/include/bits/sstream.tcc
! e447352e9df05640e24a5f9f85d288ce  libstdc++-v3/include/bits/std_abs.h
! 6e1cf8eef346161386cb55d7106c60d6  libstdc++-v3/include/bits/std_function.h
! 5b3bd66db6802c89905c016f488a41d0  libstdc++-v3/include/bits/std_mutex.h
! bb19c550085b43f6251959e05791f4c6  libstdc++-v3/include/bits/std_thread.h
! 551d2aa52bb5f639424652a68f20dae7  libstdc++-v3/include/bits/stl_algo.h
! ba1901789908a4eca42f3ec20afebc3a  libstdc++-v3/include/bits/stl_algobase.h
! 50378fb402a4f63ad663a2763f5cd08a  libstdc++-v3/include/bits/stl_bvector.h
! 8b19d3c29a5f7649b167865966c49a51  libstdc++-v3/include/bits/stl_construct.h
! bf0e42750b9f0a11336d82706c33fedb  libstdc++-v3/include/bits/stl_deque.h
! 8bd7e182b77be76921e6f1bead44217f  libstdc++-v3/include/bits/stl_function.h
! c6b4511debfbf2f7971dbae97dbcc998  libstdc++-v3/include/bits/stl_heap.h
! 1863181d6606bfedafc789dd95b2c52d  libstdc++-v3/include/bits/stl_iterator.h
! e377e5172a37470411327d66be24b6a0  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
! 252307c6170fb8ddbc0bb33c0c80f35b  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 4f93444bfce714698d1c4bd36a134164  libstdc++-v3/include/bits/stl_list.h
! 97a36b70cb7fa35e0e6b43ae0d6dc125  libstdc++-v3/include/bits/stl_map.h
! 2525257e0e5e980d1c62e5c335ccd152  libstdc++-v3/include/bits/stl_multimap.h
! ed492cb12f700a39913c303324c4d3d0  libstdc++-v3/include/bits/stl_multiset.h
! 480b44132613538ac869874bf3fc4e45  libstdc++-v3/include/bits/stl_numeric.h
! e767ec7b42d6a51baeeb74d932a1174f  libstdc++-v3/include/bits/stl_pair.h
! cd0c7f393d21cbaae598c9c688bc0eb9  libstdc++-v3/include/bits/stl_queue.h
! ef960a69cca203133e14f230f029c45f  libstdc++-v3/include/bits/stl_raw_storage_iter.h
! 8b75378d24bf1cd680dec9034e5fa6cf  libstdc++-v3/include/bits/stl_relops.h
! 16fc9446270db8b984da91f31a515a85  libstdc++-v3/include/bits/stl_set.h
! 84883a36a7f61c231471d0df8c91ccd1  libstdc++-v3/include/bits/stl_stack.h
! e090d043a8cdc4479dde4340af533938  libstdc++-v3/include/bits/stl_tempbuf.h
! c0874190fac1e81e66ba299a8440f4e4  libstdc++-v3/include/bits/stl_tree.h
! 875a120da5d87944fd151bca22a7703c  libstdc++-v3/include/bits/stl_uninitialized.h
! 61322e1e144e2a52f22fc08cc6ed88e5  libstdc++-v3/include/bits/stl_vector.h
! c021eea8ffb782c5cae76e39deaa7369  libstdc++-v3/include/bits/stream_iterator.h
! 69fecd7181ec71c850dba6e19cf9a58c  libstdc++-v3/include/bits/streambuf.tcc
! 512415517592a497decfef44b9a855e2  libstdc++-v3/include/bits/streambuf_iterator.h
! ac9255b35d438319d9bf5c821a6cc7e9  libstdc++-v3/include/bits/string_view.tcc
! bde7ef0245c6a48f1e86c1154662b9b3  libstdc++-v3/include/bits/stringfwd.h
  2eaea6618dd32c781462a159568c3920  libstdc++-v3/include/bits/text_encoding-data.h
! 69bea23b704fea0d9737f0fd16a14414  libstdc++-v3/include/bits/this_thread_sleep.h
! 1d895dad783b99f40983f70665fe73aa  libstdc++-v3/include/bits/unicode-data.h
! 0cd52362d57cc5fc0e0d07fab7c47853  libstdc++-v3/include/bits/unicode.h
! 8ee97d70f6b24f44125831164552e776  libstdc++-v3/include/bits/uniform_int_dist.h
! 0d7174a622374816c75ac03f78148fc9  libstdc++-v3/include/bits/unique_lock.h
! 2a66eb116b958ff020936c2699398133  libstdc++-v3/include/bits/unique_ptr.h
! d61a895413ba9f4aeab69b1af27eef73  libstdc++-v3/include/bits/unordered_map.h
! d85d327f1ca34fa9a7c0a77642f2da39  libstdc++-v3/include/bits/unordered_set.h
! a29de34311f884bb0a7bb8854fe4ce34  libstdc++-v3/include/bits/uses_allocator.h
! b9489856439b8ba5238cd45b2f65370a  libstdc++-v3/include/bits/uses_allocator_args.h
! 9365eb52cff94c5ebad645ee1c38ab45  libstdc++-v3/include/bits/utility.h
! a462fb6c466b34fa25624b7fab6323e3  libstdc++-v3/include/bits/valarray_after.h
! 315a9c07b613e42074ea6b8f4df4836a  libstdc++-v3/include/bits/valarray_array.h
! 3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
! a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
! 219f288570a1a64f28e936ca09d7eb14  libstdc++-v3/include/bits/vector.tcc
! 6eb4ca8804402074909ceb500e113de8  libstdc++-v3/include/bits/version.def
! df813fe4ed8cbab1fc15d7c3dc6963d1  libstdc++-v3/include/bits/version.h
! 0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
! 6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
! c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
! ab0b5681ea3d8b0b29b5d31153ca6ea2  libstdc++-v3/include/c/cerrno
! 59c77f9954ad0660fe77c105cd693587  libstdc++-v3/include/c/cfloat
! 2a298bac7aedc8708dc55b4a3bed6975  libstdc++-v3/include/c/ciso646
! 94c594eecc78af6f6d498e7b482721d2  libstdc++-v3/include/c/climits
! c066cdeec6677a5d9577815461e4fef5  libstdc++-v3/include/c/clocale
! 2ef421f5511fe81725ba8e6cfe529a73  libstdc++-v3/include/c/cmath
! 86852b2ead576291648f0ecb6f113d68  libstdc++-v3/include/c/csetjmp
! 753fb8a420cfb7a07ad005a615e7ce7c  libstdc++-v3/include/c/csignal
! 29bd37010bfeb02424f30130b540faa6  libstdc++-v3/include/c/cstdarg
! de116617d13debdbd6d9bf66250fb33c  libstdc++-v3/include/c/cstddef
! d6eefdf22dffaf4b4dc2b0e335550bc1  libstdc++-v3/include/c/cstdio
! 73833100be0ea248b1ec00feedd3dad8  libstdc++-v3/include/c/cstdlib
! c6961af884e9b924a72774200867c4c1  libstdc++-v3/include/c/cstring
! 6eec2dbe6c5f3410625afa6aafcc7fe9  libstdc++-v3/include/c/ctime
! f6a8e2b924360d88b59814348ff2d5a0  libstdc++-v3/include/c/cuchar
! 4a7c72149e6e05601f7567614dbd34ac  libstdc++-v3/include/c/cwchar
! afbe1e691e8e8e831096f7fac71516e9  libstdc++-v3/include/c/cwctype
! 261d6c05c7bac1705f709260d81be5e3  libstdc++-v3/include/c_compatibility/assert.h
! 753db3f7a9ae48c3cba49d9b872e74d5  libstdc++-v3/include/c_compatibility/complex.h
! 781e1833532b1127a7b936e8e189c0a3  libstdc++-v3/include/c_compatibility/ctype.h
! df656968fbe10de3009ba04c9d03e706  libstdc++-v3/include/c_compatibility/errno.h
! 8443c560c7bf4795c8e18b8b6cb3b0ff  libstdc++-v3/include/c_compatibility/fenv.h
! b29d177bac985ee97086b4154e57cdf2  libstdc++-v3/include/c_compatibility/float.h
! 54068037ec1c7a7aa6130b994092c1ac  libstdc++-v3/include/c_compatibility/inttypes.h
! 557ca516d1ff1cd56f45469ef6c6193d  libstdc++-v3/include/c_compatibility/iso646.h
! c9d3f1b6a3ed3ef75b7ff348ad798938  libstdc++-v3/include/c_compatibility/limits.h
! 5576efe331bbae442fb6ded36bf803e0  libstdc++-v3/include/c_compatibility/locale.h
! e8454f5245b3adcfe9ead86ffe0b9115  libstdc++-v3/include/c_compatibility/math.h
! ba651830ef81cb6553fde41b9364bf09  libstdc++-v3/include/c_compatibility/setjmp.h
! 89fc2cd5fc780fd78514769a27629c3b  libstdc++-v3/include/c_compatibility/signal.h
! 7819a7d000064f8b11fb803ca4bf35a9  libstdc++-v3/include/c_compatibility/stdarg.h
! e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c59b5e0eca126fcdb5d60553d7306e06  libstdc++-v3/include/c_compatibility/stdbit.h
! bd4f9cf4d767abec63404e4abde2e546  libstdc++-v3/include/c_compatibility/stdbool.h
! fca90211dcbb917c2de0be1f5c2aafb9  libstdc++-v3/include/c_compatibility/stdckdint.h
! 14c6a4cffa1b2fea2e123d46e682c66c  libstdc++-v3/include/c_compatibility/stddef.h
! 60d4a67454c28e4a3cf6d5ec2a8ea211  libstdc++-v3/include/c_compatibility/stdint.h
! 81ae737e201a48c65603b147fcf85175  libstdc++-v3/include/c_compatibility/stdio.h
! 6b5a21b1805b4429608f31a862826533  libstdc++-v3/include/c_compatibility/stdlib.h
! d81706e1fab2f06d3be8407738628e9d  libstdc++-v3/include/c_compatibility/string.h
! 95a07e404b2b2735b4701177bbf8c2c3  libstdc++-v3/include/c_compatibility/tgmath.h
! eedd87becada1e86119e5f8ef7bd33e4  libstdc++-v3/include/c_compatibility/time.h
! 95f1ce9e9740189b784b5ba04338f725  libstdc++-v3/include/c_compatibility/uchar.h
! 9cb6e61c9ce6aa2ebf7dc77d5be35e40  libstdc++-v3/include/c_compatibility/wchar.h
! fa35c20a8089393d720fdb1c4e420ad3  libstdc++-v3/include/c_compatibility/wctype.h
! de99821afe244ba9128936bfc19972f5  libstdc++-v3/include/c_global/cassert
! 2b053caaeeca3f9c3e89b715de0eb155  libstdc++-v3/include/c_global/ccomplex
! d3476aa227d01a785da2598d95849f62  libstdc++-v3/include/c_global/cctype
! 5a95389b3ba277af60a1c3db4bb6ae1d  libstdc++-v3/include/c_global/cerrno
! 753c9263dad45a297fa39afdb3cd6e8f  libstdc++-v3/include/c_global/cfenv
! f480e69017dc35cc6fab6630bada4617  libstdc++-v3/include/c_global/cfloat
! 13214559adeb534d1291fea3813f59e0  libstdc++-v3/include/c_global/cinttypes
! e9919bba76543d6739b2ead820d28fd1  libstdc++-v3/include/c_global/ciso646
! 9d260929c3a8f563e7d273517c02af88  libstdc++-v3/include/c_global/climits
! a5b91f8c38eddd257a048cb2d3085834  libstdc++-v3/include/c_global/clocale
! 6452d0c55d05c54dbae7cbd855dfeceb  libstdc++-v3/include/c_global/cmath
! 5674356fc9542152636dace9bfc3c2c8  libstdc++-v3/include/c_global/csetjmp
! 41b8204a8236e2ec4001289746a8abef  libstdc++-v3/include/c_global/csignal
! 850321be3ffed77bebb7bc891145f35d  libstdc++-v3/include/c_global/cstdalign
! e401f032dbe586c11b717738a97e0a80  libstdc++-v3/include/c_global/cstdarg
! cae3750dabc89198e6917d817c8b7456  libstdc++-v3/include/c_global/cstdbool
! 706d8a8b8e4539901a932f881126a58d  libstdc++-v3/include/c_global/cstddef
! 7536ee1dcc999c08a41c991ca26edbcf  libstdc++-v3/include/c_global/cstdint
! 140e9118c682fc556b5a634d4d0e0a02  libstdc++-v3/include/c_global/cstdio
! 745c77d592b579358a91081122d152be  libstdc++-v3/include/c_global/cstdlib
! 2896892bb4a3e8cfb6a4bf3a1b325e4c  libstdc++-v3/include/c_global/cstring
! 96a6b18d7c5712be653ffbd0eb0cc4bf  libstdc++-v3/include/c_global/ctgmath
! c71b95f8ba83f42a234bc5f0c3066ba9  libstdc++-v3/include/c_global/ctime
! 0f5d3eaa297d066168381a51ffec4a66  libstdc++-v3/include/c_global/cuchar
! 3d8d855628d5525fe2ca47230fcfcd55  libstdc++-v3/include/c_global/cwchar
! 32894772a679990eb913e19195b497d2  libstdc++-v3/include/c_global/cwctype
! 1fa7ae5bff314ba4b76d0a60f6df1ace  libstdc++-v3/include/c_std/cassert
! 14fcd686e7365408198106a9385b5aa3  libstdc++-v3/include/c_std/cctype
! 8a92b8e7ec3c33e3b46bdef71caae01e  libstdc++-v3/include/c_std/cerrno
! ebbcb906a1ea4c7aff2a7abd3d6a3ea1  libstdc++-v3/include/c_std/cfloat
! 40822449001a8aa6ba757e9e97fdedc2  libstdc++-v3/include/c_std/ciso646
! 7711aceae7cf8e8831d9b50ba698018d  libstdc++-v3/include/c_std/climits
! baa3ce9ea6739479cd272a3a4a86c9e9  libstdc++-v3/include/c_std/clocale
! c4ba570cd75c253b93275c17b968c390  libstdc++-v3/include/c_std/cmath
! 3555000466cda2ecfd6d3697771e17c9  libstdc++-v3/include/c_std/csetjmp
! 206e9571a84e553a82c9c115caa443db  libstdc++-v3/include/c_std/csignal
! e91e602d5fe24c5943c03c20323f78da  libstdc++-v3/include/c_std/cstdarg
! 038c877e7b8143bf5c57ab099f7415c5  libstdc++-v3/include/c_std/cstddef
! 492320c3b81a255240e9f032a37963dc  libstdc++-v3/include/c_std/cstdio
! c9551efe4a04490a1034b95e5e768380  libstdc++-v3/include/c_std/cstdlib
! bdb520fdac0ab0e63ced4d0cc5c420b9  libstdc++-v3/include/c_std/cstring
! ac42a1d1bbcfc098efce4cd75af7c41b  libstdc++-v3/include/c_std/ctime
! 0aafb7ed1c79590164e3b6a23b3db62d  libstdc++-v3/include/c_std/cuchar
! e9a6f8cd8ef6adf87f31afd4454d5b4c  libstdc++-v3/include/c_std/cwchar
! a46e56be8a5c7864bcb2f77a72d54330  libstdc++-v3/include/c_std/cwctype
! 68805c660b948571bc792c03bff11310  libstdc++-v3/include/debug/array
! 194fe21cb1d17e540e307f40839dd3a0  libstdc++-v3/include/debug/assertions.h
! dd865626b86d03c572a7b3ba8d459208  libstdc++-v3/include/debug/bitset
! 80ffd9396e36ed0eb5124a5fe3264bd2  libstdc++-v3/include/debug/debug.h
! 6a32c920e39a02b78bb914632c4cc645  libstdc++-v3/include/debug/deque
! 8b11b77754a41dfc2a3b22f49f17a211  libstdc++-v3/include/debug/formatter.h
! da0db59aefe20f491dc59d3f49cf1c6c  libstdc++-v3/include/debug/forward_list
! f24076b350dc9e5a87d645cb1c04b3fe  libstdc++-v3/include/debug/functions.h
! e8351ce24d977c21ec504a56e9a0fc71  libstdc++-v3/include/debug/helper_functions.h
! c671ee90f8af338c7b2aad28fb41de30  libstdc++-v3/include/debug/list
! 48ad2bbf8cb94bbfb81869406475eaa3  libstdc++-v3/include/debug/macros.h
! c5d850b63f4a5052d58fbaa66c5a6b9e  libstdc++-v3/include/debug/map
! f1c2c53c241e28a4547ac6ae472e7e82  libstdc++-v3/include/debug/map.h
! d4b2de3d2ea189b4008c7a08fac32061  libstdc++-v3/include/debug/multimap.h
! 2c68f73d9eb34b023d03705e9f4c8526  libstdc++-v3/include/debug/multiset.h
! 7e076b99794725488c411f9d02db1779  libstdc++-v3/include/debug/safe_base.h
! d404a676a7c00def9f1a8a3faa912a9f  libstdc++-v3/include/debug/safe_container.h
! 5d2bcdfe4c3d23a194bb54304ce92009  libstdc++-v3/include/debug/safe_iterator.h
! d6bcf138ca31811eb1e7b8c10ea1b3b8  libstdc++-v3/include/debug/safe_iterator.tcc
! 237db896edaed32e5d11baf81abf1ddd  libstdc++-v3/include/debug/safe_local_iterator.h
! 5d9deaf3dd1780277b9f1864d26b19ed  libstdc++-v3/include/debug/safe_local_iterator.tcc
! eda1288be702d6d56e5bf78239949714  libstdc++-v3/include/debug/safe_sequence.h
! bdb0cd221f95613781bc31018eedb8b5  libstdc++-v3/include/debug/safe_sequence.tcc
! 3d061124bf1b35b90dfb72942a5f197a  libstdc++-v3/include/debug/safe_unordered_base.h
! 8e8a851fc7cfaa021339fe4a7eb9b7c8  libstdc++-v3/include/debug/safe_unordered_container.h
! 66081187f65668ef10acb53f8e4e3f19  libstdc++-v3/include/debug/safe_unordered_container.tcc
! 9c8890168ebee87d21799e32dbd16dba  libstdc++-v3/include/debug/set
! bd48bf97a403684f5c0e1085f6008796  libstdc++-v3/include/debug/set.h
! 46c2a7aec8c2daf9a24cdd4abb5d5005  libstdc++-v3/include/debug/stl_iterator.h
! a1663f21be3a52bf667fd70462c38616  libstdc++-v3/include/debug/string
! e5876c4e97c1e5d8521072e95ea238ac  libstdc++-v3/include/debug/unordered_map
! ce37c19abaf252bee3db1c9242d1f57f  libstdc++-v3/include/debug/unordered_set
! 10d3703018f4c8ed7603146602ecef91  libstdc++-v3/include/debug/vector
! 8679a90f72c7d0f38831c0900918ee81  libstdc++-v3/include/decimal/decimal
! 248d4ac49f39decd0c1f0ded12edcf66  libstdc++-v3/include/decimal/decimal.h
! 74ee67bc9689b5385f63581bbcaeff91  libstdc++-v3/include/experimental/algorithm
! 073b02d0bec517db8ce6a6d1e7c30aeb  libstdc++-v3/include/experimental/any
! defd980400f22536acd2ec50d753ed41  libstdc++-v3/include/experimental/array
! 7851a2203069d66d2eb484f353ccf1f1  libstdc++-v3/include/experimental/bits/fs_dir.h
! a12ab5c7ed82defc536897a792182b01  libstdc++-v3/include/experimental/bits/fs_fwd.h
! 39c7a4f0ac457c953c4563f32256b3f5  libstdc++-v3/include/experimental/bits/fs_ops.h
! 49e3c02ff85fb05eeec535502dfbc7b2  libstdc++-v3/include/experimental/bits/fs_path.h
! d36ce0edfc25e219f7f0dc74f72e5083  libstdc++-v3/include/experimental/bits/lfts_config.h
! 8ce48043bd41cc1cbbd3c671d776c697  libstdc++-v3/include/experimental/bits/net.h
! 5801134206de01709d27c012c08f0de6  libstdc++-v3/include/experimental/bits/numeric_traits.h
! 024bc46c8cd6ace3857d3f663bd1bb9e  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 0cc3b6f42a10462a2320b6ed37eac60c  libstdc++-v3/include/experimental/bits/simd.h
! 4209cb371c86b5162d7a84388ab4ad0e  libstdc++-v3/include/experimental/bits/simd_builtin.h
! e45ef72070bc9f817c9ddaef379ff7da  libstdc++-v3/include/experimental/bits/simd_converter.h
! 97f90be8e0f8757438aa9b5bd9bb93cd  libstdc++-v3/include/experimental/bits/simd_detail.h
! aa166868abcd5fd1b7dac4ad079fa74f  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 1cadaa156ff6091ddfc5e852b569d916  libstdc++-v3/include/experimental/bits/simd_math.h
! e9ca775f35e2adbe90715bea72a922bd  libstdc++-v3/include/experimental/bits/simd_neon.h
! 22c74f7f89508bab4e98734e7daa3553  libstdc++-v3/include/experimental/bits/simd_ppc.h
! 4e9397305b68b3ad954f61b2e9f0dfef  libstdc++-v3/include/experimental/bits/simd_scalar.h
  82cf5cd853fbb734d4d3834ef245bf9a  libstdc++-v3/include/experimental/bits/simd_sve.h
! d83247b9257136f433e924e28396208a  libstdc++-v3/include/experimental/bits/simd_x86.h
! 8da3bf32c805fe5d361a477270778063  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
! d0f2808885d99611eeb143fa39b52264  libstdc++-v3/include/experimental/bits/string_view.tcc
! 4b3ebb79a038c820ec23d593c0a4205d  libstdc++-v3/include/experimental/buffer
! 45994edc423a96e70a8d80f5ddb755ff  libstdc++-v3/include/experimental/chrono
! c277d008a0e7721a5818a18d4cb56e06  libstdc++-v3/include/experimental/contract
! 2a8384b9a937406f24ae050ad863ee35  libstdc++-v3/include/experimental/deque
! fdd6331fffcd4083259c9c59cc6a4af2  libstdc++-v3/include/experimental/executor
! 2aa056f31c68e2cb22247b2605ce49a7  libstdc++-v3/include/experimental/filesystem
! 0a91e1223eb75e0ab7c9ee0da3d7da4f  libstdc++-v3/include/experimental/forward_list
! 1c017a642829d7b4bd0998b023592e2e  libstdc++-v3/include/experimental/functional
! 791947baa30bd5fb8b87599ed841bd41  libstdc++-v3/include/experimental/internet
! 0bdf9a09c8c51fdf264571504786db73  libstdc++-v3/include/experimental/io_context
! dc3973d63d28996340686b8ddaaf04ac  libstdc++-v3/include/experimental/iterator
! 038cc069ead1dee5b10d033167ed7c40  libstdc++-v3/include/experimental/list
! 667748bbb82ff351a8b1954c494730d9  libstdc++-v3/include/experimental/map
! d19a5bd56e860d6e01b54e3377d10220  libstdc++-v3/include/experimental/memory
! 792eb7081c4e6dc6a503b2839250d446  libstdc++-v3/include/experimental/memory_resource
! 244e2d1cb347f552f0c7c0e4e184997e  libstdc++-v3/include/experimental/net
! 1cfd73441f6f5cbb7a65e38a9dff1454  libstdc++-v3/include/experimental/netfwd
! f84411df58d82ebb5416fefb80d37fd6  libstdc++-v3/include/experimental/numeric
! 9fdec753f397579b6b388f6efa2287cf  libstdc++-v3/include/experimental/optional
! 63fb9a7c3f51e5ad8baa438388fec030  libstdc++-v3/include/experimental/propagate_const
! bcdf1b028ed797ae5718ba9e43bb63a9  libstdc++-v3/include/experimental/random
! d535f15e721c8bd249c6f6f8171e3d9f  libstdc++-v3/include/experimental/ratio
! e3470626b0cb5a44d7d0e446e2423cb0  libstdc++-v3/include/experimental/regex
! 37b73283a296ce777ff3768c5fc3a1d3  libstdc++-v3/include/experimental/scope
! a7689c6e059845d32f64e774a1618e31  libstdc++-v3/include/experimental/set
! 0ca8a6e928cf0f0448b6b029b30a9ed4  libstdc++-v3/include/experimental/simd
! 96492d9c68fca2824d8c5217086e939d  libstdc++-v3/include/experimental/socket
! 50c522cbce6b8df492456f4fe7b22773  libstdc++-v3/include/experimental/source_location
! 69b1fcf4fc108f138824a9775735a01d  libstdc++-v3/include/experimental/string
! f28d6fb2d046f770d9bf0923d1f98365  libstdc++-v3/include/experimental/string_view
! aba85fd9df4f326dddac0856c66bec83  libstdc++-v3/include/experimental/synchronized_value
! 7f3000e54945d83a1d69e7c93c66217f  libstdc++-v3/include/experimental/system_error
! d909cc40948cb6f1122a37340f6969a0  libstdc++-v3/include/experimental/timer
! e6eaa32ddadd876372878492a6750363  libstdc++-v3/include/experimental/tuple
! 06f027416e5fccf57f0de001ebbea39d  libstdc++-v3/include/experimental/type_traits
! 9b9f7ff48fb388a802643a6cf49c1b5f  libstdc++-v3/include/experimental/unordered_map
! 8906d88248aa769885b6dc6fd435c6c0  libstdc++-v3/include/experimental/unordered_set
! fb15991a673567e764a531363113bf9f  libstdc++-v3/include/experimental/utility
! faf9f2ab717f81b1e1f120be7de31c23  libstdc++-v3/include/experimental/vector
! 7da2b16ba42c2a096eafa6d90cd4935a  libstdc++-v3/include/ext/algorithm
! 1e85d61b1ab664fe9e83e4d05536cf0c  libstdc++-v3/include/ext/aligned_buffer.h
! b538cf34d296f3161c57558eea3bca8b  libstdc++-v3/include/ext/alloc_traits.h
! 1212e26f4d06ed389ac5490747e2f1ae  libstdc++-v3/include/ext/atomicity.h
! cd7c7fb3fb3d1f59882fb99a31eee718  libstdc++-v3/include/ext/bitmap_allocator.h
! cc0f2a5daeafb6e08b62720e44d9bd80  libstdc++-v3/include/ext/cast.h
! 9543d5277e2a8ea51632d885f21ed4fa  libstdc++-v3/include/ext/cmath
! a18f3d9fdb753daa4f7ac1d8a2583a14  libstdc++-v3/include/ext/codecvt_specializations.h
! 7eb73f693c5d4467e38c45c9b994f1b6  libstdc++-v3/include/ext/concurrence.h
! b3e9b1a358d402d9bf3410c77acb634e  libstdc++-v3/include/ext/debug_allocator.h
! 9cc2cde7a450b1a03f1b446f2bfd31ec  libstdc++-v3/include/ext/enc_filebuf.h
! 8fc0b02ab84277ebf33823eedf5a0d4e  libstdc++-v3/include/ext/extptr_allocator.h
! 0b5a8fc99466d7584034cb34e91edba9  libstdc++-v3/include/ext/functional
! a9710d6f73efed36ad5a227b51c4c339  libstdc++-v3/include/ext/iterator
! 84baebddebae5dbb43061f24adc09bad  libstdc++-v3/include/ext/malloc_allocator.h
! cfa37bd17a540b520d298dbe87c6ed0c  libstdc++-v3/include/ext/memory
! 2b7e1dbda06aa7c4d27af45cd6f54001  libstdc++-v3/include/ext/mt_allocator.h
! a4387732ff6f5fe0fd6bc87c3b3fa197  libstdc++-v3/include/ext/new_allocator.h
! 1fdce2bb945b0f1aed415a901ee902aa  libstdc++-v3/include/ext/numeric
! f7e6cac9b3c3e7914f4ec110f4171f0b  libstdc++-v3/include/ext/numeric_traits.h
! 7764167e114c092ba1e1921f64f8a7f2  libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
! 41e726c898f6cce1626871277a7c812b  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
! 86d62df690f670934b48412d9a9a98bb  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
! 6bc2b6fa5a4a9ab8a24d781858627bb0  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
! c080d4dbe4cef6b8bfa7ef497cf75fd9  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
! 297454a4a62817dbe7579a071f16ad9f  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
! 132f3289421cb221eece6f21679e6d35  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
! 6d9e5523870b8b172668d0911f63b2a2  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
! c71c53de5903e4b44f525d2436f87a69  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
! 0c746022576adfe90d96719243949ec5  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
! ec315910fe67e10bd78aa28ef56e70a8  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
! 4598e014b153eb28eeea8426149181fa  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
! 5debaabd3335ff6bd3356d99b70efe90  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
! 46ba3cb3191fd2c8936bf721174929cf  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
! 3ab2388e6950106caf4e4ac567e2a0d1  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
! 2a2524ea43bf488911f55bb885d180c7  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
! e0ea1a6df9fdc5541cc14407fad6fe33  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
! 3320bb430899ed69bf91b1b3d3735432  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
! dd8b7cd0321d76a4cb38599d19ebb405  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
! bf806a222754d25b8d3e2d56a32c788f  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
! 9e21896bdd2e255d562edee8bf473b7f  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
! 24c335d23712e9db71c974d95b1ec838  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
! 904eb297838c9568229af9292403ba1d  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
! 52723366c49f180e6a55a9102d68ac40  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
! 1bded8418a41a9d176e63ecdd328f0a5  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
! f37311d71c1ef6b02fe55b01a39d61c7  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
! 2c7f1084f3ae7549f80e7dbd5f94b193  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
! 3ccc91ec53c0f8b43b39e51da76d439e  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
! 82318ff31e49b5d02c0c46a87768943c  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
! 0f9c9cbbe6e5aee815c472deb97032d5  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
! 1903a28cdbf30a6739d1059622406599  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
! 0d76ec0afdcd8b2d8def86b1d05e69df  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
! bb228a3b7a9a33079b2e8fd02ef808b6  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
! 32c1335c677ea1399f7833a5b67dc374  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
! f2431182bc58ed744a813d7b1b756ac1  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
! b20a11cd4a078f73390c6a909bedc875  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
! afd73e573e935b09dec4437dc367d5d3  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
! f11c8edc348a9958351c82b94ac6b655  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
! 0ec3491cf6868b9682d6b281fc7ffb75  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
! 7af89ba50bc80794ebfbe16f8f4e77e5  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
! 51c7fd142d7bb1c1965a1201bf43d7a3  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
! 4c69d468f9c29bc279cf642c9d0f68d9  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
! 988f1a71fcb7d344f156b394f743b8f0  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp
! 94ac910329cea2a297379a5d23a66c3c  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
! 861c152bb92ae09636756ba7bcd99709  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp
! abf54cde0d3a90c568968f765b3796a8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
! 615aef0a6e6dba9da9bc3457de61ed12  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
! d24a9717bb12eac0edb7dea0ef01e689  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
! 4db67fca2e6148691b2f0089c48215ce  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
! 88e197f7e2b3b2bf5587543fd1ff7154  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! b233d9db12ff0d2a72f4444b2bf47336  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 9abe95ac09205bc0ed3ec8130d2a874a  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
! 1c5705984ffb79fd0286b7bc73bd0d01  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! ed65e7c8f79d7f90de1d747059e5e442  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
! c549859f6e5f5ff0e28688b88da2edf7  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
! 352bb260fd13bd62eea7b6a9d0e84d40  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
! 967bdf868c80a5cbb46806d5087efe86  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! c35af40c649c8256dd4b8cef69adefb0  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
! 79dc9ea37d3f9b4c810319c9eba1b3b5  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
! 2e36238b636c66881c85e559fefc6f09  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
! 682a67f4834795fc91075bb1777ff292  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
! 164be8f6e3e01c0511984e6a98d6900f  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
! 04d396d4a42de624858e46d55bd6950c  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! eb5f8377fd990dcb753890ebdbd7a9db  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
! 0030fb1ff8410709c42a6c147af654a9  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
! 0b08c856e4e989f028ae71b18297674a  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
! a39c1b2af0edb3ba6515b03464aff52f  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
! cd0056bb85828a23c5d7b203dfdbe674  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! 850104d70a177a895f7fb108f3dfc317  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
! 2a187388dfe36d8f29d45d1a2686524e  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
! 20401d52791eabfc6107e70507499dc6  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
! 391fe050d3aee6471b673c72683f54d5  libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
! b276b403d042e2ff40089d2537f0cae3  libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
! 22ee0894589b0aa9577fddaf91b31f3e  libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
! 3ef551aaa79b64ab9983e5c7958b66d9  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
! ed6a76253756d4671c75509942822813  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
! 01da9e29d7d3e51970cd496da2d8f43d  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
! fb39f44e0fd6abc469c5ffc645addab8  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! ce059ce5e4bf4037e4d92f3a93eaeed5  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! fb8ffc63da79a66db275ca0394d1c5a5  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
! 6132ca62a0a769cd73efbebf82e7000f  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! e93b2cb0d9bc080141a7be39bc3a07d0  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
! 9aa236020652a97a72aa36f7c9578eff  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
! 83c2bd11fd05fc5ea9738c73d7188437  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 0705e2e73b4f4c036a79952a06ed4ffe  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
! 32b309c25c17d20855b23ce25fba75dd  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
! 13aa20d9518130323a40374477d1092f  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
! 886b707ab29cc7adbeccbc8886dc06ad  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
! a03bf41a54bccd499e9a1b58101c05d4  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
! 4e1469c60d678de2406ed9bf2b67ebd1  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
! b1aeef9a8fda9b95fe39e90ec128d97b  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
! 93847774f5e75758df05ed5865a720c6  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! c7b6a55d831eea45d4a0b6a17f198bf7  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
! 6c7faf735b1e066a133f971b7de5e449  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
! 373c9873d260c8a39c7df7b67fc107b6  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
! b926fbc38677da1644c6d6bfc5368289  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
! d75866b26f0bf1c2e20a420bd55156ee  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! 8080ec6ea0622c49c330f8fa92dd4e0d  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
! 072d9230cabc29b96bd968eb80d22ec7  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
! 39c216603c89fea3911adf19bd4f29a3  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
! a48084ba595fc84744e8be568981131c  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
! 5b7f9f57a3d5421e791390fa1ea4f1c2  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
! 7f21bb08894e2c02041e7ac4ea8d041b  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
! a27d59d982c4a44680bc011b021cea5b  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
! 690179224928eb0b05515fe267dbae02  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
! 1a8209d83289d2b4c482f66f7d87e0f1  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
! 037d7435e808b7db1ba061ba8c3d5a6c  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
! 8215254f1b60f9e066e912cc12527d99  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
! 17353313c5493ca3dc7deddd16dab1ad  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
! b32295868642fab2adddda900d723eda  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
! fb739bbaf5c3bbd66cc0949cb79663cf  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
! c0b0e30240a356714754fc2568dd979f  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
! a062ff173dec7ce303cfc39e5e9017ac  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
! ac47daa198da66abf2220f8d88318a2e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
! 1d8327eb158b02f9012a9faa04aa3e3f  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
! af6b924320c49fac31ea4f318a50a3bb  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
! f606febafb6ab952aa9672e87f16f991  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
! e649a0707cd0bbbd9d9e690b4da472a5  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
! cf38ddb103ece37536652edc2e2aadb1  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
! c7d1be542c6fc246ac7cc94c448a9fc7  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
! a3266aaf94508b0c49de5cc7da02d33f  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
! 8019f85954a5dc0d4d2da48d70b9288e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
! ad10d08c37922e00b97646158b4343cb  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
! b5d6b102cc84d0eb3b121a815904f2b8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
! d10277ac2eaee87731adc19d570d8026  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
! 30b4f207d8cc62f1e9ca86015d143b62  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
! d977a4a83aebc50c88dc5fa86d48034d  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
! 3ee03dc155eba0a2e878c01e3ff67d05  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
! 9154e19a1b15045767359ed3423e1678  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
! d61926159bd1496b6817463d1b9af75c  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
! 0ece4a7c4affce47f743b3c6502f2b99  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
! 69b8bb5316b093681def833f1569c7a1  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
! ff4749662283d9e1658070d7298235a6  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
! eecaa132fd61a6e41b673d3ad4792be9  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
! 38b3c25dda260ac8780d7d021800edb6  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
! b209e7ef78092347ae48236df9e26de4  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
! 83fbfc03b99dd3609624c88339c7b3cd  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
! 80f77a5369f8f0869f11ab03f54a4053  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
! 13d9a3e6626e96782246c6c9b536b4ac  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
! 77e1e4abc232a5f9bb7b06757bb5593b  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
! 65f47473c1ebdca9f3cd7809131f0b55  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
! 4722553b529a7f3c1992603bfe357fad  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
! 52f6e7dbc548002fc11f9f3914590382  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
! 3aca22acfb28486d05e8f3a78e3ee966  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
! eb9bfcfecec8c4d7c42156b4b4548a47  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
! 1f55514cec41c7d216f0d6007e9db622  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
! 37d9350e2bcfeddece304ddead4a0d91  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
! dc6890722c44b2b8db62288c8241fe90  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
! 4764461af49c7c7fdee0834b5f26a01d  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
! 2c74dfe8244809a30fbb02c6b5d7ab6b  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
! 751d0603c79a67109e8ae45308777007  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
! 8fceae0239838714aeb7a77a3d3f1d52  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
! cee57a2135f1c8f34430cebb6ff88994  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
! 5e0d9bbda33197b3ca6af61559464045  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
! 84b791be340bd64adabf3eaafca7f3d5  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
! f6e72ea3e5e7413b9e4b8845bdeb44af  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
! d318ab492ecc469507fa15e77d740562  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
! c075eaaaab98aa3e18a3aef8dd0a4190  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
! 589cf11b2e31d0e8c85c3aeb071da83f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
! 1d2a9994d7b9bc9a8504181b4ce5c21f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
! baf0bf8f1119c69ad61599d1bbf99c3c  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
! 7ed929c07aa8658b4dc20f51e43abc54  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
! 63a50b97caf7b12dbff3b6b324a03fa0  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
! fa4d87d9a51926a9df87f432dc776c23  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
! b3920c428569ee53ae06878b2976b8bf  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
! d10f851c05cbf18bc5abe61e7c64a6ca  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
! 1b0cfcc5470665614fa1fa8e7d05568f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
! b041b8668cb284a65b68dca2c6d336c5  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
! dd777f4d0a60823fcc7d1d944c3bd23e  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
! a2402a3f25582ade9149aa6f21d40a6f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
! 72bce0e3758efd44ab1718b5adc6120f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
! 8acd7b0b1d39dbc8c7d2d5dabb0a2cdd  libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
! 979a6c3ffe6be7b1a040376a574c41ea  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
! 161011f837eabf650a5b627dd556150e  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
! a37b816c59e13b926667fbac1e98440d  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
! eaac5f1234da3b94c6d94eccadfe7d39  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
! 3594fb3496fdd42d7fa40bbaebc8363d  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
! fff3b61b18f4cc869a4ae79d002aedc2  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
! f5c2d4365147e4a4a61c22fbe65de3eb  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
! 28c6c756335712d830080a5e4689b955  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
! ad9593f4b582796f99b18403f1147dc8  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
! 75c4dcee348ceb577b9b58fb01c31bfa  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
! d9e459ba2ce2a45f633a0070c238a89b  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
! a98b1d6bd8cb8fc17fa39c164eeefb21  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
! ce2f33cf0c60df08648d76ebe0fa2bef  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
! 3f5dd10eb06f447a5b6f5acfee833796  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
! 2d1c645bc7fd95fa852efea57f45da17  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
! 0a572c874523d24baed6e17a7f8ebf51  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
! 5d5e6ef994257f563c9719bcf8aa290f  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
! 8d3a2ac9529a8ed011b6f4b008396fe0  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
! edabb4600dc8a07d6e90fb5b6c85daea  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
! 60c6a14bd1d3bfa25e6208c389129a20  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
! 4cfe74b44999a67f05e3e14294c7cac0  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
! 57e0dcebfc71ef2b3b2c24d1114ede2a  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
! df6fcd9c95476a827df1b04bc62f6393  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
! 015812cba3e42204d8d043455c316c0e  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
! 38ed3255171373f8441a0c4dcf3975da  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
! 0ae3727e39095f9c5b880d783dc05708  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
! 8a82e9cc4c9d8d7da85f85ffc0863e2a  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
! 6991efdfd112a222b5063ba93c072325  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
! 3f4962fcca6e41c1fff1edb845ca21e9  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
! 7a8a71dd5f1ac7b989ec487f71cb6c75  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
! 1c384d33f03f55f63fbfd7556cfea367  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
! 366ba64e390f58342245f5950e3c6fb8  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
! d6afa8807c4cd1986462d27199befdc5  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
! 6c681d0ddfc7755ecaea9e69cbe2d835  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
! 4e0f1ab2fa4c2d974eab3c74a855a6f6  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
! 1404fb904eae6138b2fdb3d63f95b3c3  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
! 2efc69c7a1ce5a7f8f1437573e479ede  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
! aff895f445d60086cd6b0dadd529e243  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
! 85ac71af27d50aea829ceb838a3bf96e  libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
! 484b032a40221fe15fe49f112c2e2feb  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
! 513ab7ae92e7362d8853b976ee3bc8a1  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
! ae9544db88226d0c0ea41f4e68799cb8  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
! ab5d5765e4a3db0a5286fee302728674  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
! 75fa8516ca2427c5f0f7080f4111b05a  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
! 11770195449e4856aeadbd431b287dce  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
! f95757cce25254efa2377ae2d92aa4a6  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
! 86600ac1600d6c401e32ffcc2c3dcf54  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
! 37a78a137a72fc2a8a69a6cef420761e  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
! 514674d064343fe8a50afbddb1a94bec  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
! 1f1e07038b94ae2e6339cd88f862b116  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
! 1f935ec738f505ecb470be3d61b38c27  libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
! d4ac3a839a066cf00ef1f1ad7da1b286  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
! c53bd9f61b509ab55e761970fbf8c9cf  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
! 46363b831c6e5ccabb362d87a41a338a  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
! 7ef8db6bd158444f9dd9536db27c7a75  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
! 4cd61755b7f4fe7f7bb232d09e09c7f5  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
! 273127b841c71900e657618fe9e83a0c  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
! 3581934f7bfddb58b45b78da2db34810  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
! c819ca8597e52451c41951ef3daaa652  libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
! 36fc849a217ee3bc9c1dd3e42d415099  libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
! d770b524b7c046d3cb057e1637ba1cf0  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
! 7c93263e91ce01aa9296f8f617f0298a  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
! 2b2d3a97b45c721c8e1c060f963d8a81  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
! ca4c2ec5c61c8acdc0d717c323ab2758  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
! a475ef24fda70f18f94553ce7bce8e0a  libstdc++-v3/include/ext/pb_ds/exception.hpp
! 1e74eff8e68133c7487dae7935137360  libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
! 4fe27958b51a49e3e372ec8f830f8a96  libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
! fcc955b62295ec860d3325dcc560c84d  libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
! 20b52497bcc6aff833ff7b7908281252  libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
! 2cf343e6aa6c9958f694b82002cb0ebc  libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
! 88e49bb63ce2d7e0b660d8e6d42f380b  libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
! 5a26ba93d8f758420b81f277bbf2b9ae  libstdc++-v3/include/ext/pod_char_traits.h
! c3b861479f216b935dce1631e21f1f40  libstdc++-v3/include/ext/pointer.h
! 632b168bc3f59ee2f8d768f850477130  libstdc++-v3/include/ext/pool_allocator.h
! b322a22912e51ceadd84487a08225730  libstdc++-v3/include/ext/random
! d4823ad58701997da39ea15b0978cef0  libstdc++-v3/include/ext/random.tcc
! 2b72feb0105170a5de344fa587f3297a  libstdc++-v3/include/ext/rb_tree
! e53018b54bbb57190313ae779d745211  libstdc++-v3/include/ext/rc_string_base.h
! 55baeec15e5bc3849934ddc50243e6b2  libstdc++-v3/include/ext/rope
! 78c85cb2e4775f9f013dc7e371c62285  libstdc++-v3/include/ext/ropeimpl.h
! f814222e34c98c60a69432fc93b84510  libstdc++-v3/include/ext/slist
! e2e8f9a88096423b8dadd2ce493f3bd4  libstdc++-v3/include/ext/sso_string_base.h
! 3b13c6088a860c66a8a50ad1e92437d4  libstdc++-v3/include/ext/stdio_filebuf.h
! 0e6b4d1614f8b6e1e005b89937a3f6e0  libstdc++-v3/include/ext/stdio_sync_filebuf.h
! 848821b40165a77461c2c977e3f3ec86  libstdc++-v3/include/ext/string_conversions.h
! 049ce3399778fdd27c13cb62fecffb5a  libstdc++-v3/include/ext/throw_allocator.h
! a6d9f7452ad80967178e3d0184f44516  libstdc++-v3/include/ext/type_traits.h
! d4df2219b3ddb5ebd7971cdf40f0db7e  libstdc++-v3/include/ext/typelist.h
! 986064df49d3e662956e8200fb69a037  libstdc++-v3/include/ext/vstring.h
! 7d8d81f520bc3287cc4053b7b1b8d75a  libstdc++-v3/include/ext/vstring.tcc
! 81ec4de938e605def06e6302504c3b99  libstdc++-v3/include/ext/vstring_fwd.h
! 639a678e355fee017da89b58703c8851  libstdc++-v3/include/ext/vstring_util.h
! 7107fa266ee21854c286a83f53c3f853  libstdc++-v3/include/parallel/algo.h
! bf6f5bfe1eb4de5b912c748fdebbabb7  libstdc++-v3/include/parallel/algobase.h
! e040768cc9509ba0b29693a5c1a19363  libstdc++-v3/include/parallel/algorithm
! 4f1f2e665681386a615514cdb3452e8e  libstdc++-v3/include/parallel/algorithmfwd.h
! 545ab4a79e92a71d8da2f5b7feb5fc42  libstdc++-v3/include/parallel/balanced_quicksort.h
! 7c4da7b9d9e9131d97833991f724e85d  libstdc++-v3/include/parallel/base.h
! 9f39c1f3bb78fdf82d146d43dab78385  libstdc++-v3/include/parallel/basic_iterator.h
! 3e4df79b69612f3e15be2fcfd8b7f1ec  libstdc++-v3/include/parallel/checkers.h
! 67a9651e3bfe21bbc5bff2d1195223d9  libstdc++-v3/include/parallel/compatibility.h
! 491d1e01c4a0886c9dc5888f8be27cf9  libstdc++-v3/include/parallel/compiletime_settings.h
! 85c2b2899e74115e89d2038d251a1c04  libstdc++-v3/include/parallel/equally_split.h
! 1f546ab7b078c5f22f75ea8b307a1133  libstdc++-v3/include/parallel/features.h
! 437be24dcf4681fdb161bc7d55c516f6  libstdc++-v3/include/parallel/find.h
! a9fc7478fdcb817ae9d0d5c9a69eb4de  libstdc++-v3/include/parallel/find_selectors.h
! 3c3b94d28cb5ed1c404c55249b05c275  libstdc++-v3/include/parallel/for_each.h
! bec376156aeaf17eb5c380bec199c53f  libstdc++-v3/include/parallel/for_each_selectors.h
! ccad78da6783de1ff06d834458e724f6  libstdc++-v3/include/parallel/iterator.h
! 41dbc095ce024be3537de45547abf72f  libstdc++-v3/include/parallel/list_partition.h
! 0c811dd23775a985df5714c743379910  libstdc++-v3/include/parallel/losertree.h
! b8f7429310dfc0d9e359b2a65332655a  libstdc++-v3/include/parallel/merge.h
! e3c75c5d65eaab605c10dc365aebcb9e  libstdc++-v3/include/parallel/multiseq_selection.h
! 4dcbf788675510a8d19863af740101f4  libstdc++-v3/include/parallel/multiway_merge.h
! 362049a54573227789958ea5404d3663  libstdc++-v3/include/parallel/multiway_mergesort.h
! 0b06fa3e5d4ae41c5f2fe1479c9070a5  libstdc++-v3/include/parallel/numeric
! 191e5822b76719be36ca2300523feabe  libstdc++-v3/include/parallel/numericfwd.h
! 7e300fda2269722625ca6d18c5642794  libstdc++-v3/include/parallel/omp_loop.h
! 21b43560615a1ef6a8e98f2a5f0dd466  libstdc++-v3/include/parallel/omp_loop_static.h
! 271ebcb406e02a889b55a732506d8b3e  libstdc++-v3/include/parallel/par_loop.h
! 7102d99240fa59475221604b02c3f125  libstdc++-v3/include/parallel/parallel.h
! 0ac64a5cf0cff46eab2938db5667f556  libstdc++-v3/include/parallel/partial_sum.h
! 2853e2a8656d81573de8a073facf703b  libstdc++-v3/include/parallel/partition.h
! 230a8ad282bbafdc29432fdd8b332758  libstdc++-v3/include/parallel/queue.h
! c65b462901554fbf111e08a8c38c78d9  libstdc++-v3/include/parallel/quicksort.h
! b388f56c8ea5847311a35c89d6e92c81  libstdc++-v3/include/parallel/random_number.h
! f65371857f82648466b0999c9024eee5  libstdc++-v3/include/parallel/random_shuffle.h
! 6e5b8e235775d048f55dcbbeb0543dda  libstdc++-v3/include/parallel/search.h
! 7d5509f155e8907a065eba52443e083e  libstdc++-v3/include/parallel/set_operations.h
! eb20df8190cb844a12f9fd68d043bcf0  libstdc++-v3/include/parallel/settings.h
! 9da505b9d9061ae777496a6b8f6cb621  libstdc++-v3/include/parallel/sort.h
! 16b22ccd6b6a0ce258fd667376e042fd  libstdc++-v3/include/parallel/tags.h
! 44d4d211c772a6d7858623a3153850b1  libstdc++-v3/include/parallel/types.h
! 7997eb362a00f19f0f8e29fe72718fba  libstdc++-v3/include/parallel/unique_copy.h
! 322d276913feb4b729019573db0593af  libstdc++-v3/include/parallel/workstealing.h
! 37ac2dd1c7910a98bcbb9619d27add88  libstdc++-v3/include/precompiled/extc++.h
! f0e7cc468f73a8275305a72b5912aab4  libstdc++-v3/include/precompiled/stdc++.h
! a62eb60403f5499c2d4a096e6a68b92b  libstdc++-v3/include/precompiled/stdtr1c++.h
  75cfb36aeb3ed8672bb4e2957272203c  libstdc++-v3/include/pstl/LICENSE.txt
  6aa52d6b70bfb53073697375741dff45  libstdc++-v3/include/pstl/algorithm_fwd.h
! a327a81367f960c92ab8eec7ff1f4690  libstdc++-v3/include/pstl/algorithm_impl.h
  ae347741e840ff43bfc0c1800ecdbf63  libstdc++-v3/include/pstl/execution_defs.h
! 2f581a415975d87328a3e39c015d38b1  libstdc++-v3/include/pstl/execution_impl.h
! 995f5473bbb55d043d61d10ba1776043  libstdc++-v3/include/pstl/glue_algorithm_defs.h
  5b59c0a6c0cb7ddb2fa2f6d8f454b15d  libstdc++-v3/include/pstl/glue_algorithm_impl.h
  368ad5a8bcc8d830f5785113b6245f9d  libstdc++-v3/include/pstl/glue_execution_defs.h
  0b0a3983fbed012140824669c804e50a  libstdc++-v3/include/pstl/glue_memory_defs.h
! 7d755330869711b38d6e8dd35b486645  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
! 652ee4efa524646a5f52e79ed472110b  libstdc++-v3/include/pstl/glue_numeric_impl.h
  f9819c3fbab884d0ff4d0150023c3826  libstdc++-v3/include/pstl/memory_impl.h
  46b7494faaf72186343f13f46db3cac4  libstdc++-v3/include/pstl/numeric_fwd.h
! 132bbb9d90975f7f11e2ba4b77bc3bbf  libstdc++-v3/include/pstl/numeric_impl.h
  531b6552c2b0ded549ed9bc9b03bebf4  libstdc++-v3/include/pstl/parallel_backend.h
  c6ea5607259b8e63bb887db39136b942  libstdc++-v3/include/pstl/parallel_backend_serial.h
! eb7da829c52c944d7125a8a18352a312  libstdc++-v3/include/pstl/parallel_backend_tbb.h
  e128e525f970f3948feec2f4750919a8  libstdc++-v3/include/pstl/parallel_backend_utils.h
  688f2289e52048ec70461174eadd2efe  libstdc++-v3/include/pstl/parallel_impl.h
! f1cc3238df41adc204bc4f90accc63f3  libstdc++-v3/include/pstl/pstl_config.h
! 9641fe465599079a5bc733f08bd242eb  libstdc++-v3/include/pstl/unseq_backend_simd.h
  6e7da3aed3b413aec47ea7457e6ea726  libstdc++-v3/include/pstl/utils.h
! 2bd04b33c3c9ee14ba8890fcbceb4328  libstdc++-v3/include/std/.editorconfig
! 9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
! d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
! d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 0629d22f554a52275f62402292b23e12  libstdc++-v3/include/std/atomic
! 4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
! 2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
! a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
! b992fa2a4889a430ba299555276bcf81  libstdc++-v3/include/std/charconv
! cb5ee04f24eb3f44950a511e7d8fd2e7  libstdc++-v3/include/std/chrono
! a90e2b9ed2c236c92f3f2387a39a0ac8  libstdc++-v3/include/std/codecvt
! 73ad0b394fec64fa4f07972401973741  libstdc++-v3/include/std/complex
! c3c1dced3bd41cb17dfb1d65d089f9d3  libstdc++-v3/include/std/concepts
! 4d4392c4b49029819ced576ee163366b  libstdc++-v3/include/std/condition_variable
! 264518c8a6bbba954d8dfbc74162a7e2  libstdc++-v3/include/std/coroutine
! 55eed7b7857afaaeaf8138c0485a60fa  libstdc++-v3/include/std/deque
! ae96a272e65886b9386e26db37971da1  libstdc++-v3/include/std/execution
! f6c65bdf51be390263eb6c028a8aa327  libstdc++-v3/include/std/expected
! c2e511ae49957a9f02446e544d201582  libstdc++-v3/include/std/filesystem
! 29c7966e8b912bc6dcd6b0ff9bd12dfc  libstdc++-v3/include/std/flat_map
! d0d553e82c9e4853d2ffbc2347c5891a  libstdc++-v3/include/std/flat_set
! cffed11ce31325600a430cb7daf00432  libstdc++-v3/include/std/format
! fa4316749922813b44f2ee282452813b  libstdc++-v3/include/std/forward_list
! e790ae6877466aa86b47f36d201e8563  libstdc++-v3/include/std/fstream
! 5b0f9576e4006baf8a1aba30625aa30c  libstdc++-v3/include/std/functional
! 402046e0243fe8908634a409777f8d0e  libstdc++-v3/include/std/future
! 997b004b654e51d3327a8b4882db91f3  libstdc++-v3/include/std/generator
! 90e01b4e65cec5c0a3786580b2529edb  libstdc++-v3/include/std/iomanip
! bf5ea5fbda7bfdc1dc462f0303fc4e99  libstdc++-v3/include/std/ios
! 4623e874877c5e927587c4bfe1a03c84  libstdc++-v3/include/std/iosfwd
! f7460188b5b2ffa503809fc888af8523  libstdc++-v3/include/std/iostream
! f025fc1b4184111fce84c2384de325d2  libstdc++-v3/include/std/istream
! b33cecab88c41408b5c244cc328a9cae  libstdc++-v3/include/std/iterator
! 0238ca5f0c5de4952acb632ab76978e1  libstdc++-v3/include/std/latch
! ed6663b9ff729b09c2bacefa3568d1fc  libstdc++-v3/include/std/limits
! c9ef2791c2dc0d6c98a1a85c8f6aa473  libstdc++-v3/include/std/list
! f4af31191dea172207576960ad71d42d  libstdc++-v3/include/std/locale
! 8b76fc7da76f0579c2fd1f22821d03be  libstdc++-v3/include/std/map
! f2d366f6ad99b96a708f9b404eec0c9e  libstdc++-v3/include/std/memory
! 9e86c11ff29d60fddf403674e9182b36  libstdc++-v3/include/std/memory_resource
! 0c1cb418026be858b68ab6539158db68  libstdc++-v3/include/std/mutex
! ef0d0725f5b70a4c1b5b62b84b2b63f7  libstdc++-v3/include/std/numbers
! dc13616d50b61cc61eb87d25bacd6a19  libstdc++-v3/include/std/numeric
! 79b194dcc53ff3f04fcf800d0fc26cfa  libstdc++-v3/include/std/optional
! e03c583ee7c5891df1c7b190275435c9  libstdc++-v3/include/std/ostream
! 0f1bf0fdfc91c5159496ce06fc478adc  libstdc++-v3/include/std/print
! fb909ecffbf7365acf974214bfcff94b  libstdc++-v3/include/std/queue
! 01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
! fec0869f0d5bc62d35559515d6ff9efc  libstdc++-v3/include/std/ranges
! a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
! 400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
! 1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
! d0ccdc68b53e4f9522c73c04bfb81928  libstdc++-v3/include/std/semaphore
! 9b8d5c4868a64371c6591ccd2d8ae5f0  libstdc++-v3/include/std/set
! ee32950ba29d7cda3e788de0776d8c16  libstdc++-v3/include/std/shared_mutex
! 61856a4d90554afdb8c60710d5dea8c5  libstdc++-v3/include/std/source_location
! f5759070e24ce7ac653599ead1274a2d  libstdc++-v3/include/std/span
! 148ae450ade3ff3a68ef3e55c1b19e46  libstdc++-v3/include/std/spanstream
! 885b7d229d8dcf3ad5bb087b5a5a1fb4  libstdc++-v3/include/std/sstream
! f1ae1e9e6ddb19fd431332d36e94ab61  libstdc++-v3/include/std/stack
! ceee5b8e3956e8b0b5cf0c37821eb61a  libstdc++-v3/include/std/stacktrace
! 03274bc404214a9a2c8235a5ae90f4fd  libstdc++-v3/include/std/stdexcept
! ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
! ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
! 56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
! 905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
! c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
! 362d06f047ef5267af7587a8d12e0c0d  libstdc++-v3/include/std/syncstream
! 21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
! 608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
! 96f0baf96cfb63439fb481bbfb6b17da  libstdc++-v3/include/std/thread
! af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
! 8f22fc68b35d01856ee0826270cfdc94  libstdc++-v3/include/std/type_traits
! 237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
! 520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
! c82be32edefaa23cc1228b092d319315  libstdc++-v3/include/std/unordered_set
! dd12ce8f665ffc66eeade1822f0de3d6  libstdc++-v3/include/std/utility
! e0096e013b19127692d1ed454892142d  libstdc++-v3/include/std/valarray
! d77f7c3f3a87abea407b92b2196d5010  libstdc++-v3/include/std/variant
! 0d0a38cd1a88e2528f889586625f8305  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
! 599d9660baa308be06aa240c15cff086  libstdc++-v3/include/tr1/beta_function.tcc
! b1b32edaf81f2844749113bd53d36d7c  libstdc++-v3/include/tr1/ccomplex
! d84db67356a0700f393b9efefe3ba3d1  libstdc++-v3/include/tr1/cctype
! 95edd75aa51b7ab81026f3722cb38d54  libstdc++-v3/include/tr1/cfenv
! 9ee30a89db309e0b9b62cf7f4de3f928  libstdc++-v3/include/tr1/cfloat
! dcea075f2e29f117f0b9c0aaa9c73f03  libstdc++-v3/include/tr1/cinttypes
! 1ffcf07a0381caa9dc38beab3973027b  libstdc++-v3/include/tr1/climits
! ff55f913004bb0c6b5d48b9f1baddad4  libstdc++-v3/include/tr1/cmath
! 40ee7eea9d539b2da5a5c71a353a29f0  libstdc++-v3/include/tr1/complex
! a002c5fc9728d0b19508e779f09c0fbf  libstdc++-v3/include/tr1/complex.h
! 54679a7afe6f52db477e51be481ea01b  libstdc++-v3/include/tr1/cstdarg
! 3f8de0054f636115d78693570bc4d9e8  libstdc++-v3/include/tr1/cstdbool
! 7be59587856df6b32030592bca1313d2  libstdc++-v3/include/tr1/cstdint
! e97bc4139e060c8781d5e2e4583db870  libstdc++-v3/include/tr1/cstdio
! 66079cff77d476916fe66b9a717a2302  libstdc++-v3/include/tr1/cstdlib
! 115cc99e7f46288c6cf76793e8402e0d  libstdc++-v3/include/tr1/ctgmath
! 02288a78cc492c4681d82154d08a4921  libstdc++-v3/include/tr1/ctime
! d666c65a9608d8786292631875abd5d8  libstdc++-v3/include/tr1/ctype.h
! e7dbd346d4a1a62dfe311ff160b2fdaa  libstdc++-v3/include/tr1/cwchar
! ce6c5e27f2c37d143116a2279c941c16  libstdc++-v3/include/tr1/cwctype
! 06b159701da6dc6034f938fb3eb957e0  libstdc++-v3/include/tr1/ell_integral.tcc
! 7941414d06e5f1785bdbb411f308733c  libstdc++-v3/include/tr1/exp_integral.tcc
! 82d5409e4932c4b568a78eaa607ace41  libstdc++-v3/include/tr1/fenv.h
! f43acfae2e8fbdd49de6d9f1e9e3076c  libstdc++-v3/include/tr1/float.h
! 7c6902443bb138453f209402381f8924  libstdc++-v3/include/tr1/functional
! 15e30c4741733030ccd2006f72d54e28  libstdc++-v3/include/tr1/functional_hash.h
! 37ccc8b1571a873d328ba0a4172de353  libstdc++-v3/include/tr1/gamma.tcc
! a771c7df2f524f496f1c889b33de088f  libstdc++-v3/include/tr1/hashtable.h
! c3488f67c0dc6dc8f6b6124ffaa76b79  libstdc++-v3/include/tr1/hashtable_policy.h
! 1e26ec708698904dde04e36841044228  libstdc++-v3/include/tr1/hypergeometric.tcc
! 1a0670f6d7169a024b740a4a8cb31861  libstdc++-v3/include/tr1/inttypes.h
! 47cd7db4db62fabae83bc0b97200d9e2  libstdc++-v3/include/tr1/legendre_function.tcc
! 553b30d64d3f839fb56e8b70e5c456bd  libstdc++-v3/include/tr1/limits.h
! 74548f8d1f1783ade9fa5810189c443b  libstdc++-v3/include/tr1/math.h
! 246a416af6c08f0306dc0d475d9ea931  libstdc++-v3/include/tr1/memory
! d4c56bce69f6f3dad6bd28b0a135efee  libstdc++-v3/include/tr1/modified_bessel_func.tcc
! 0948d9d2752321b693e06f389b02fbd2  libstdc++-v3/include/tr1/poly_hermite.tcc
! 8baa164d08aa9d95b163876c14f00453  libstdc++-v3/include/tr1/poly_laguerre.tcc
! 77a3013640c3fb104805fceb0bd94ca0  libstdc++-v3/include/tr1/random
! 84d08e9bb686bc15d0acf300c519e70a  libstdc++-v3/include/tr1/random.h
! fccb62d33bfd980ee8e194ffb4249efc  libstdc++-v3/include/tr1/random.tcc
! c9c5aa7e39b3413213ea2c10513559d2  libstdc++-v3/include/tr1/regex
! 8e6d1114f4b558f816a24ae46c3aab8b  libstdc++-v3/include/tr1/riemann_zeta.tcc
! 1a7460ea50d35fd6b2ccbecf962b9748  libstdc++-v3/include/tr1/shared_ptr.h
! 67b962b7e56cf0bcc57e73ea78a0be5e  libstdc++-v3/include/tr1/special_function_util.h
! 96fea456b0fc31076c551a196870b135  libstdc++-v3/include/tr1/stdarg.h
! bc0f7172472c351d06699c39bff5e30d  libstdc++-v3/include/tr1/stdbool.h
! e87b68659eb20d19656ca87420b29e54  libstdc++-v3/include/tr1/stdint.h
! 72b698f0ecd035dbe68cc6762e3f9ce7  libstdc++-v3/include/tr1/stdio.h
! d742047b78b0200494fd8ffc2c6c1f1d  libstdc++-v3/include/tr1/stdlib.h
! 7d325b414b83cc6fda798ec5151925ff  libstdc++-v3/include/tr1/tgmath.h
! e1bdb8694e5d09dae78ea8675cc544a6  libstdc++-v3/include/tr1/tuple
! f487ae48abf03543ce747d7b6997c36a  libstdc++-v3/include/tr1/type_traits
! 12cb05e9de571fd6bcdef2173824724d  libstdc++-v3/include/tr1/unordered_map
! a4fa17859302e98cc643059d8911b9f9  libstdc++-v3/include/tr1/unordered_map.h
! f0a104dd9047a07205485d8242344f76  libstdc++-v3/include/tr1/unordered_set
! 96342a98876f2ebfde3ace229e659fa8  libstdc++-v3/include/tr1/unordered_set.h
! aab0a49fb271d370b10c53e7820741a9  libstdc++-v3/include/tr1/utility
! af173f2ac584aa231089410810f5013b  libstdc++-v3/include/tr1/wchar.h
! 3c22002d2429083e821bc235c87ff446  libstdc++-v3/include/tr1/wctype.h
! 8799e79e5264fa4da547f8a07efea815  libstdc++-v3/include/tr2/bool_set
! f8dcce041b19d1bc99b84b4c8bd0ab65  libstdc++-v3/include/tr2/bool_set.tcc
! f885df8b9030299a1f48ba7dbf5bf6ba  libstdc++-v3/include/tr2/dynamic_bitset
! 020e4ef309cbacb213e801b1cdc2e794  libstdc++-v3/include/tr2/dynamic_bitset.tcc
! 7dd87c5c55dd5cc161e8bbde1bf48c0e  libstdc++-v3/include/tr2/ratio
! 5e8b74468be045996135279f106b9cf0  libstdc++-v3/include/tr2/type_traits
! 4bf324c34b00c45bbb781f7864278dd4  libstdc++-v3/libsupc++/Makefile.am
  89680042878a16ef20deacf944e7c75c  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
! d8e284a3fbab20ca86b2ca49f39df2e9  libstdc++-v3/libsupc++/atomic_lockfree_defines.h
! 1e8d06930e4d536addba13306ec14fd9  libstdc++-v3/libsupc++/bad_alloc.cc
! 3af7929a426557326ecaba316133f5e1  libstdc++-v3/libsupc++/bad_array_length.cc
! b60f1331eaf500ccce917653c90c02d1  libstdc++-v3/libsupc++/bad_array_new.cc
! 2c05bcb0a318121f8deb29df215a1a76  libstdc++-v3/libsupc++/bad_cast.cc
! ed96195b097b5c5644e754342e3159bc  libstdc++-v3/libsupc++/bad_typeid.cc
! d54dac42098e24364e0e8249016c78b8  libstdc++-v3/libsupc++/class_type_info.cc
! 4750a9c27a7c55d2578910cbec3ba47d  libstdc++-v3/libsupc++/compare
! ee57ed7a57d178fce16de2ec28a8340c  libstdc++-v3/libsupc++/cxxabi.h
! 563de5baf2c41e9759583af359bb650e  libstdc++-v3/libsupc++/cxxabi_forced.h
! 8aae4a67a18f5276de7831d7a44b7b2f  libstdc++-v3/libsupc++/cxxabi_init_exception.h
! 052df0b77a65da173ea9310ed9383603  libstdc++-v3/libsupc++/del_op.cc
! eb05039364af5b6f09a0d07e10f14128  libstdc++-v3/libsupc++/del_opa.cc
! 5d3bfc87f309556ba4473fc70386e238  libstdc++-v3/libsupc++/del_opant.cc
! 854d90f984119a8f9107647fcb8e3f6a  libstdc++-v3/libsupc++/del_opnt.cc
! 1987e653bedf5fb61c45d4fb82b9cf99  libstdc++-v3/libsupc++/del_ops.cc
! eadbaf050130012f34142f3a3f929a59  libstdc++-v3/libsupc++/del_opsa.cc
! 2f13f9932ae16636da234f7fde5bc34c  libstdc++-v3/libsupc++/del_opv.cc
! 1130a109090c9171d473da07f263a48b  libstdc++-v3/libsupc++/del_opva.cc
! 975a9e03d29ea59a0bbc8c288476dd36  libstdc++-v3/libsupc++/del_opvant.cc
! 7249a8d83e6f4420c882cb599ab03d5e  libstdc++-v3/libsupc++/del_opvnt.cc
! 2856348418efe8fa9b9be122dffe92b6  libstdc++-v3/libsupc++/del_opvs.cc
! 00c89bc92a4f291f86eed6e4472614a9  libstdc++-v3/libsupc++/del_opvsa.cc
! 11b0df9d777637a5fd14ce65cb6a02c1  libstdc++-v3/libsupc++/dyncast.cc
! 9a601fe860b9872d3f9153296789ed3f  libstdc++-v3/libsupc++/eh_alloc.cc
! fde21d164be788e5d0d9679610f9e051  libstdc++-v3/libsupc++/eh_arm.cc
! 87b6ef591d4a9aa86a2dff447830b2c4  libstdc++-v3/libsupc++/eh_atomics.h
! e13535ef9e66ae8a179fd299be9508a4  libstdc++-v3/libsupc++/eh_aux_runtime.cc
! 23ad0c481f73b4e7ae43d6f3a18dbca4  libstdc++-v3/libsupc++/eh_call.cc
! 9f4bac8b28e286b09960fe180b0fcec0  libstdc++-v3/libsupc++/eh_catch.cc
! a5f1f7b4dbeacb9e1830fa06b0349f30  libstdc++-v3/libsupc++/eh_exception.cc
! 2b1a27df0a30c87d761a6a232b74d703  libstdc++-v3/libsupc++/eh_globals.cc
! 4a74242aaafc541ed9e5b7ebcc5ca2d0  libstdc++-v3/libsupc++/eh_personality.cc
! e564f4e12725d547323ce44ef29859f2  libstdc++-v3/libsupc++/eh_ptr.cc
! e96ac716389e508b792c4ff284dccbd4  libstdc++-v3/libsupc++/eh_term_handler.cc
! 1a96001501657062b7dc237d9ba79aa0  libstdc++-v3/libsupc++/eh_term_handler.h
! 751bf4a2cf3e1923c969ad2e218aa801  libstdc++-v3/libsupc++/eh_terminate.cc
! f685a8a8bb6e5a481ab70c80575a29f7  libstdc++-v3/libsupc++/eh_throw.cc
! e93a6c516a51d1e04b8233a897e3588f  libstdc++-v3/libsupc++/eh_tm.cc
! 925b44e74cdf29e0bf443716d788d8bc  libstdc++-v3/libsupc++/eh_type.cc
! 6f2ba32375c733fff701a0cd7d8e0e55  libstdc++-v3/libsupc++/eh_unex_handler.cc
! a703e327cd408b5e3200f542691f8488  libstdc++-v3/libsupc++/enum_type_info.cc
! 5ec905b22ea1e428f63596de485509bd  libstdc++-v3/libsupc++/exception
! 8054fe12bb18b03b241ea2b0db66b0d0  libstdc++-v3/libsupc++/exception.h
! 8cb7ef9933695804f855459d4b0661ec  libstdc++-v3/libsupc++/exception_defines.h
! 7735536dd8c1fa8df641d3ac8e8fdf0c  libstdc++-v3/libsupc++/exception_ptr.h
! 031b50d84f4f67234d2b49e49a80206a  libstdc++-v3/libsupc++/function_type_info.cc
! f098af4b3136953260aa1e563ef265d3  libstdc++-v3/libsupc++/fundamental_type_info.cc
! 489d888cfad1d3ad98fc33d277619862  libstdc++-v3/libsupc++/guard.cc
! 5398eac347f29c20e7dee9d9a0cff155  libstdc++-v3/libsupc++/guard_error.cc
! 20e9d300b9a1acddce0bb894f7da46e8  libstdc++-v3/libsupc++/hash_bytes.cc
! ee0f63d65224d52e788ab443330fb28d  libstdc++-v3/libsupc++/hash_bytes.h
! 6d66eea53ad7b08f1adb945346f5d756  libstdc++-v3/libsupc++/initializer_list
! f93ba400e65ddaa04dad2dfa46a6d89a  libstdc++-v3/libsupc++/nested_exception.cc
! 3a2a9e0bb65d934c1ebc26e5e2de1fef  libstdc++-v3/libsupc++/nested_exception.h
! 66413fd18ad4db7a07c75524c3128fb6  libstdc++-v3/libsupc++/new
! 7c0c13b2135e3f50c1cd156ab1ed5344  libstdc++-v3/libsupc++/new_handler.cc
! cb888aa40aea823d1d70236de020abac  libstdc++-v3/libsupc++/new_op.cc
! 322cda8702abb03f45af9f34c50b9fd7  libstdc++-v3/libsupc++/new_opa.cc
! 61ec781dd21d5b09b9d8766535119246  libstdc++-v3/libsupc++/new_opant.cc
! 7a0bb6291b3d4faf33daf379ee9cd847  libstdc++-v3/libsupc++/new_opnt.cc
! 8beec894cb4a1754939859fd6016ca60  libstdc++-v3/libsupc++/new_opv.cc
! 24a6aee5b46fa80b50577839b73ebcf3  libstdc++-v3/libsupc++/new_opva.cc
! a66c41ec6b93924d726106074570df80  libstdc++-v3/libsupc++/new_opvant.cc
! bb7b7db407f50cd3448205e2fb042666  libstdc++-v3/libsupc++/new_opvnt.cc
! 38e7fb0d856783d9829ee24b56cbe813  libstdc++-v3/libsupc++/pbase_type_info.cc
! 782644b24c4f040158ac4f6e219a46cd  libstdc++-v3/libsupc++/pmem_type_info.cc
! a6e6f011614b6f6db9f9125f64728308  libstdc++-v3/libsupc++/pointer_type_info.cc
! 407071f7674e401e1412bc8cd300a92a  libstdc++-v3/libsupc++/pure.cc
! 27e8a1f66ec54b714f874dca530fa9c0  libstdc++-v3/libsupc++/si_class_type_info.cc
! c7f0af4fdf8c5808beeac7e29a768f87  libstdc++-v3/libsupc++/tinfo.cc
! 059d39699f5801c19807e54b140ed022  libstdc++-v3/libsupc++/tinfo.h
! f201f4b737942a2c1c91ff39144858f4  libstdc++-v3/libsupc++/tinfo2.cc
! b22c6dd59a36ff8588435dbabaeff3d2  libstdc++-v3/libsupc++/typeinfo
! efbe3c287d094428a3eabd73d34885da  libstdc++-v3/libsupc++/unwind-cxx.h
! 40f84cebd61d4380d74c03e002129427  libstdc++-v3/libsupc++/vec.cc
! eb7c05a57ed802e0ad08f707733b00cf  libstdc++-v3/libsupc++/vmi_class_type_info.cc
! 00967872a256ebd767d86e577fb7f5f7  libstdc++-v3/libsupc++/vterminate.cc
! 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
! bf53261d5fc8794ec46cfef0ed7f0ea3  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
! f3661044e04e7499daef1e53bba37dc7  libstdc++-v3/python/libstdcxx/v6/__init__.py
! 6bfb86e6eb00a1b6bcaee948565dc0db  libstdc++-v3/python/libstdcxx/v6/printers.py
! c4a63edebdca46a9468f6ce9cde53449  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
! 87c30a72c1d3ec2a203894ac24d78005  libstdc++-v3/scripts/check_performance
  128d0fbc24e1d43d9ff93d14bd521aa6  libstdc++-v3/scripts/check_simd
  40f8ee10a4683f6c7f555f9450fcaa12  libstdc++-v3/scripts/create_testsuite_files
! db724a6fa0555381c90302977970d0e3  libstdc++-v3/scripts/extract_symvers.in
! f501660a6c6b00aafeaef03458ae53a5  libstdc++-v3/scripts/extract_symvers.pl
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
  5b2236b4942c92df14f93a36d7534a9d  libstdc++-v3/scripts/gen_text_encoding_data.py
  c3455b8d87dcefd65c7fdcd24e4ce3a4  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
! 8cf4072c94a1116e1e32b203ca58de59  libstdc++-v3/scripts/run_doxygen
  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
! f14488db761993e3e72f1491d2c291c9  libstdc++-v3/src/c++11/Makefile.am
! a747a19e10e9ed516194fe5e8e99e1a1  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
! 01787673fe796a56622c39d02017e9e1  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
! 4e4ff682dade2f61307d9623cf42cfb4  libstdc++-v3/src/c++11/compatibility-c++0x.cc
! d2f5001699cdc2fe24d45d093891656e  libstdc++-v3/src/c++11/compatibility-chrono.cc
! 32efc7b40c03378f0ce64a58eb9f3934  libstdc++-v3/src/c++11/compatibility-condvar.cc
! 6ed920129080ef3eea1767871de3ce99  libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc
! 37b192614cc4ea47b74da27aa560b4c3  libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc
! dae2dac4e41c0fc98f3e85898a2cbfb6  libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h
! 7eb558e8e1d124c22a6eaf99e5336d1c  libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
! ddf9e89a3dd037d4d2d3c0dfdf4635d3  libstdc++-v3/src/c++11/condition_variable.cc
! a693e79b0fdc9762073bab89e4ce62b5  libstdc++-v3/src/c++11/cow-fstream-inst.cc
! c113bf704e53dd400f385cf931504740  libstdc++-v3/src/c++11/cow-locale_init.cc
! 1884482876acc0ef75ede22269d0a1b1  libstdc++-v3/src/c++11/cow-shim_facets.cc
! dd088fc029db779fa6d476532df5fcdc  libstdc++-v3/src/c++11/cow-sstream-inst.cc
! 5a5a140ba10941c729bd23bab9fc1cac  libstdc++-v3/src/c++11/cow-stdexcept.cc
! afd253550ec027f8e8d341e21dfa4623  libstdc++-v3/src/c++11/cow-string-inst.cc
! 90722a957087c6462f3ef39ffd689517  libstdc++-v3/src/c++11/cow-string-io-inst.cc
! 45600f6de3921379a947957cf08e7e2f  libstdc++-v3/src/c++11/cow-system_error.cc
! b31fbdc10a7762fe4f2f5863df625972  libstdc++-v3/src/c++11/cow-wstring-inst.cc
! 838ea772c9642f7ebe488d5a7c8c243c  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
! be851c10f3945fe16aa1b1801b870aa8  libstdc++-v3/src/c++11/ctype.cc
! 952b7f98e9319173578fab579122a899  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! f78e9adf39d62edc9f44441f4ffce00d  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
! d74f0f8275bf18d6fd12d78c6262397e  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
! daf9d8a898f565a06723000c5c391488  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
! 80e11b276ae6d1db74756d5ab0473853  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
! 91b8d40131424105b9c30e2e6733fa51  libstdc++-v3/src/c++11/cxx11-wlocale-inst.cc
! de6177a868325975a68fa6ce7c9e8a3c  libstdc++-v3/src/c++11/debug.cc
! ad1c239f49d4d2c9dd192171997fb461  libstdc++-v3/src/c++11/ext11-inst.cc
  ba1e398802c7793fc33131cddac099d5  libstdc++-v3/src/c++11/facet_inst_macros.h
! 27d40b8798cf34c87d7cbda825245029  libstdc++-v3/src/c++11/fstream-inst.cc
! fad8cae2c62479e470853dc8e04649c1  libstdc++-v3/src/c++11/functexcept.cc
! 9aecbf154f76f5bdcf192fe66bbef817  libstdc++-v3/src/c++11/functional.cc
! aa3245dbfb4354ba008403c69a43dee2  libstdc++-v3/src/c++11/futex.cc
! 059ad09619a17632b2644b52d9b81d7a  libstdc++-v3/src/c++11/future.cc
! b5ce976284416b5adcb9ffbd658e3299  libstdc++-v3/src/c++11/hash_c++0x.cc
! 2090ccdd4b248a60a56e877ef69a4ebb  libstdc++-v3/src/c++11/hashtable_c++0x.cc
! 6f3374fef45fa1b25dbd09f1cf96b38e  libstdc++-v3/src/c++11/ios-inst.cc
! eb18701dec73b580133ac3818cf6617f  libstdc++-v3/src/c++11/ios.cc
! 3794d0e48f2c9ca6947df4796db109ff  libstdc++-v3/src/c++11/ios_errcat.cc
! 86d1297e53a190aedd2143f558d1e48c  libstdc++-v3/src/c++11/iostream-inst.cc
! 1588934997b07ab44d3938db1a6415e5  libstdc++-v3/src/c++11/istream-inst.cc
! 18c29fea72b52982124dd665c94b5ca1  libstdc++-v3/src/c++11/limits.cc
! 060f39ad2319380bdd57bcf38163b47c  libstdc++-v3/src/c++11/locale-inst-monetary.h
! 8dacecbf0e088c2fc58525e4bc7edbd0  libstdc++-v3/src/c++11/locale-inst-numeric.h
! 8b2762ff1cf52ac591b65ff11d0285d5  libstdc++-v3/src/c++11/locale-inst.cc
! 039814637549f9711143c6b2687f4e03  libstdc++-v3/src/c++11/locale_init.cc
! 05e7c5185b6edd017225c0514d9d5c2c  libstdc++-v3/src/c++11/localename.cc
! fe798e7b6ed341445d180675eb4fb53d  libstdc++-v3/src/c++11/mutex.cc
! 08e22c5ba954ee9431bb4c897303ac16  libstdc++-v3/src/c++11/mutex_pool.h
! dbbbe37a5a3b86855b51fa69cb4fab23  libstdc++-v3/src/c++11/ostream-inst.cc
! 75a70286896b5e9d774527af220c188a  libstdc++-v3/src/c++11/placeholders.cc
! 635095a08b866936cfdcd45435613d3b  libstdc++-v3/src/c++11/random.cc
! a6c4bb899d00f4ad391b73d1730ab67f  libstdc++-v3/src/c++11/regex.cc
! 01b87724c99b2b823ad80998d13aced5  libstdc++-v3/src/c++11/shared_ptr.cc
! 2cb21eb00e407fc289925f91199359df  libstdc++-v3/src/c++11/snprintf_lite.cc
! 9e767a34d6cc919c18bd9e3ee372972f  libstdc++-v3/src/c++11/sso_string.cc
! f5af35184f655abcf9edbb76a7ac9985  libstdc++-v3/src/c++11/sstream-inst.cc
! 96c5a746ee563d36d5c93056996ec3ff  libstdc++-v3/src/c++11/streambuf-inst.cc
! 63b97d5a214a3ed86e82dff205caf8b0  libstdc++-v3/src/c++11/string-inst.cc
! 51eb59aec233df19c1193a1961362c36  libstdc++-v3/src/c++11/string-io-inst.cc
! b8e7b1593e5ed3dee7f0c98b40666a11  libstdc++-v3/src/c++11/system_error.cc
! 2c8e1fdeb39d12dc28ddf3a5f6aaaf99  libstdc++-v3/src/c++11/thread.cc
! 8f11c4680a8c193b75888713450f5ae3  libstdc++-v3/src/c++11/wlocale-inst.cc
! 9a2f4bc77bc2e1c94a8b5cefd3821420  libstdc++-v3/src/c++11/wstring-inst.cc
! c784e7e5223a16cc62f12abfdb1fe126  libstdc++-v3/src/c++11/wstring-io-inst.cc
! 9e7260349006318612b42b24109ec321  libstdc++-v3/src/c++17/Makefile.am
  1fab41448c9ad9ce8c3f32fe49551fa8  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
! 7266e27da39d210a30835bc6ee7ff87f  libstdc++-v3/src/c++17/cow-string-inst.cc
! bc3131d6bdec9830589c59816ed6fc9f  libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
  cdf9c54ab7ea85aa42bbf32b2e749913  libstdc++-v3/src/c++17/fast_float/MERGE
  88af13a4cebd3e9f44449b09304147d9  libstdc++-v3/src/c++17/fast_float/README.md
! c9dcdd9b0b5c806e787dc702505f57e1  libstdc++-v3/src/c++17/fast_float/fast_float.h
! 217207a30305c3c1757fee5e12d3ec34  libstdc++-v3/src/c++17/floating_from_chars.cc
! ac9644e2d8390587379964f6b7e51ef0  libstdc++-v3/src/c++17/floating_to_chars.cc
! 7c668fe3f79c2610268b1bc631741ad5  libstdc++-v3/src/c++17/fs_dir.cc
! 38394abc0e937c8a15f74a60356f174a  libstdc++-v3/src/c++17/fs_ops.cc
! f5a89254ae1d1bf53829159bd06faad2  libstdc++-v3/src/c++17/fs_path.cc
! 31b8948691651bc14d435c8e7b6fa79b  libstdc++-v3/src/c++17/memory_resource.cc
! 4f2f44032e04f77de92166a02f76089d  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
  5c512389f4cbe0ea37ce2a8da0f070d6  libstdc++-v3/src/c++17/ryu/common.h
*************** cdfce2fa1d76af09cfdf0989501826ca  libstd
*** 124668,125308 ****
  74bc36f5cffd7626c78090061e4416a9  libstdc++-v3/src/c++17/ryu/generic_128.c
  fbb127f006c65ae37d591c627cc6235c  libstdc++-v3/src/c++17/ryu/generic_128.h
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
! 659e1abcf08ff9050ba27012f642e5ec  libstdc++-v3/src/c++17/string-inst.cc
! edfaeb1bc759bccb53b3d9624f21c2be  libstdc++-v3/src/c++17/uint128_t.h
! d3813c41a1a392d3bd3fc819324240d4  libstdc++-v3/src/c++20/Makefile.am
! 1a78ce3875810d2fbde4c0259e6da49c  libstdc++-v3/src/c++20/Makefile.in
! bc750f6d75cc3d48552863c2403f8857  libstdc++-v3/src/c++20/sstream-inst.cc
! e2adbf62aa6624a603458198af4025e9  libstdc++-v3/src/c++20/tzdata.zi
! d479a36fc14363bb66160f6907e7c637  libstdc++-v3/src/c++20/tzdb.cc
! b65cec48a384351b09d3d7d12ee37660  libstdc++-v3/src/c++23/Makefile.am
! 5405bc5d3053e91ab5f6209a6e20a377  libstdc++-v3/src/c++23/Makefile.in
  2f142e6a788b76b05091ff09d99ae47c  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
! c3abb96b2eb91c3a6a79443b0f49fa7d  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
! dbac986ad8ea017ae1f6fda781e711e6  libstdc++-v3/src/c++26/text_encoding.cc
! a71f7ac875316576a2ea9cfea08c0011  libstdc++-v3/src/c++98/Makefile.am
  f5066be47fd9da3a68e3be9740a6243c  libstdc++-v3/src/c++98/Makefile.in
! c9901bfae8e228f9ec5a22d462799cbf  libstdc++-v3/src/c++98/allocator-inst.cc
! 1cfcf97057eed58b2a225b3edf23e6cb  libstdc++-v3/src/c++98/bitmap_allocator.cc
! fb2abdbde9f0951f9e1d41cc3577c87f  libstdc++-v3/src/c++98/codecvt.cc
! aa55dcdb3dd8abab2b32b92b256172ba  libstdc++-v3/src/c++98/compatibility-debug_list-2.cc
! 0e5117ad021af8a7533b23b8a71ef474  libstdc++-v3/src/c++98/compatibility-debug_list.cc
! da6a73d40cfa35c679c0d3699f90eb62  libstdc++-v3/src/c++98/compatibility-ldbl.cc
! fcfe5d807ba629ecd33e7a4f8428767f  libstdc++-v3/src/c++98/compatibility.cc
! 249f6b3f4edac0d4eeae3f5ea5c9f46b  libstdc++-v3/src/c++98/complex_io.cc
! 38184852763d30450b17a6fae58c39ab  libstdc++-v3/src/c++98/concept-inst.cc
! 80eb87cacb2b5aec18240a586b11eb7c  libstdc++-v3/src/c++98/cow-istream-string.cc
! eea059394bcd280420a4068c7bed3315  libstdc++-v3/src/c++98/ext-inst.cc
! 39e9b7e0c346d45897f2970c8d9a31db  libstdc++-v3/src/c++98/globals_io.cc
! 8dc601fb30c1c02bec12b94715439ef2  libstdc++-v3/src/c++98/hash-long-double-tr1-aux.cc
! d4f7d7a4035c928130381bdcf96ba4c2  libstdc++-v3/src/c++98/hash_tr1.cc
! bbe8c21ee6d399bd39aeac289ab75b30  libstdc++-v3/src/c++98/hashtable_tr1.cc
! 1ddeea994cc23597e5a821f10555258a  libstdc++-v3/src/c++98/ios_base_init.h
! 0e224a8da1961c1897e6bc379129831f  libstdc++-v3/src/c++98/ios_failure.cc
! 4a616bed83e021b816a9f0a5d5bf3fa6  libstdc++-v3/src/c++98/ios_init.cc
! 2c69d2801ef1ca7dc72a98a399b4d7a6  libstdc++-v3/src/c++98/ios_locale.cc
! 8754dc5c1f63bdaf1edb547686bec253  libstdc++-v3/src/c++98/istream-string.cc
! 4633730d7bd71c544def77aef22e72f6  libstdc++-v3/src/c++98/istream.cc
! a88bccd338c624dc41b50905ceb382c8  libstdc++-v3/src/c++98/list-aux-2.cc
! 0e2b76b63d04dbd736bea6055af12f65  libstdc++-v3/src/c++98/list-aux.cc
! 26f261fe4b962f1f498ca80a14f91467  libstdc++-v3/src/c++98/list.cc
! d1675708b7e0791f8b80127b8ef64fe5  libstdc++-v3/src/c++98/list_associated-2.cc
! d66b1793dbc810c2d9d5c15a8ba4a9c4  libstdc++-v3/src/c++98/list_associated.cc
! 645e19abb59c6444bee3d826b174f754  libstdc++-v3/src/c++98/locale.cc
! 390989087294ec017bc61b2c8ef7acb3  libstdc++-v3/src/c++98/locale_facets.cc
! 5378a0c7b8c7c26af85ce05d05db5cb7  libstdc++-v3/src/c++98/math_stubs_float.cc
! 0c6587c0e840be778c5a1ed3827c3325  libstdc++-v3/src/c++98/math_stubs_long_double.cc
! 6b7518d47524d12b932c2b300438dd5d  libstdc++-v3/src/c++98/misc-inst.cc
! cd2a5f8d421586c03bae2914ae8ed011  libstdc++-v3/src/c++98/mt_allocator.cc
! ed5486197e5b680db1b3e84bc65e3697  libstdc++-v3/src/c++98/parallel_settings.cc
! 448f9d5689da96305de181e9f9911f4b  libstdc++-v3/src/c++98/pool_allocator.cc
! 9b819b256e48deab3686e2634c03bf03  libstdc++-v3/src/c++98/stdexcept.cc
! 728afb044c738bd6aa07428f5f64d958  libstdc++-v3/src/c++98/streambuf.cc
! afa4c8a06a0cb3fce152f8f610f24d4a  libstdc++-v3/src/c++98/strstream.cc
! 086beaf8ca8d50138bbb9b0079d9184c  libstdc++-v3/src/c++98/tree.cc
! 179849cd61f94174477aea3012271201  libstdc++-v3/src/c++98/valarray.cc
! 06c8c98b71fcb5f73d628f76ead9dea5  libstdc++-v3/src/experimental/Makefile.am
  27279225a56c61bff8a4794d18007e3e  libstdc++-v3/src/experimental/Makefile.in
! 50dee20be6e6c1a2bf5b428ac9f495a4  libstdc++-v3/src/experimental/contract.cc
! 00392b132ecac3f0d41f6873c9a8aafe  libstdc++-v3/src/filesystem/Makefile.am
  a6f95078e97a60d866de0908aeb10897  libstdc++-v3/src/filesystem/Makefile.in
! 3d9f7d93a3afaab782b2167e071aeaa2  libstdc++-v3/src/filesystem/cow-dir.cc
! e76a68102b94e67b78e5373bb89fba15  libstdc++-v3/src/filesystem/cow-ops.cc
! 54ec2d5b20f9b937e2229987d22c5721  libstdc++-v3/src/filesystem/cow-path.cc
! c2201a7e547eb182262da97e2030eca2  libstdc++-v3/src/filesystem/dir-common.h
! 341e56d4ba937b489ee52675959f94a5  libstdc++-v3/src/filesystem/dir.cc
! 6829be44af3cde51c2e4d973bfe293af  libstdc++-v3/src/filesystem/ops-common.h
! c0ed6356e3b5f2590b65db1e58b65add  libstdc++-v3/src/filesystem/ops.cc
! a54d16a61a8c25de06cdb983ca85e293  libstdc++-v3/src/filesystem/path.cc
! ad6b84b402cc8df4fe7a1e81235f3ea4  libstdc++-v3/src/libbacktrace/Makefile.am
! a318b943444d17f9db3f42e434f11846  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
! 24de78ee16ffbf8b1588259e274f9c00  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
! b2c964e43bfef1597e6dd0dd2f806fb3  libstdc++-v3/src/shared/hashtable-aux.cc
! 7773a6010acf0449d4010c420cf491cb  libstdc++-v3/testsuite/17_intro/badnames.cc
! 681efa6b4fde6fc5d4dfaf426f7ef5ef  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
! be3b9af9ac9518b325b136215b688753  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
! 3241efcfe2034e9746daf2aef633af8e  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 77d826a85de1eb07fe7c1e38eebf7278  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
! ac45bb63ae1aaf00f91f9ef9487422bc  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
! 1302c985b2229f3a9c445f3fa5a9519a  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
! 6444347224955aff282d6ee93e2eeff4  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
! a0ce8f88b5683c7d2a31983bc9d1e591  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++1998/charset.cc
! 85cce4973b5a928cd6f5e85c46d786fb  libstdc++-v3/testsuite/17_intro/headers/c++1998/complex.cc
! 08bf71d425f29d1bffce0ec6c8af1a33  libstdc++-v3/testsuite/17_intro/headers/c++1998/operator_names.cc
! fe73186ee9afe1b04735837c0ae3d19e  libstdc++-v3/testsuite/17_intro/headers/c++1998/profile_mode.cc
! 27138d0d0ad9892e480520a5417d8edd  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc
! 1d1fe892987952c1a96ebd1b0e4ee050  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc
! 1f126851379dd19850ac6a8c0fa2fbf7  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
! 68c3db9b9695d3922929c5cbbafe445a  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
! b30722c7a14d2251f757369fc14b6406  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! 27d75082483f944f8a61bcdf9639c905  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
! 2945177fac388635818be96379015cca  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
! a5cd5b5d8b951786ddcf206b007490b3  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
! 92f418db13575632f0be4d37cbfc0c0a  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
! b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2011/charset.cc
! 1ef8d9f05992dcf41f7d7deba5e40ba9  libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
! 23f7408ee58d070d27976d8bc960964e  libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
! 108f2c00d0a8ed07f88b7d55fc4d626e  libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc
! 587f897a2111cbee03aca5672d8f470e  libstdc++-v3/testsuite/17_intro/headers/c++2011/profile_mode.cc
! 417264a2d44e11756eb636afa56ceb70  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
! 542e5b650755ef420adf57d83c712514  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! 42fe48a66159b5a8463c4bff471fe25c  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
! 54d7db13305afb23c8b00304c82fc0eb  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
! 2949212653e3f70f2c4bc40ead33513d  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
! 32ce911e3ffd799b7dd9c81110fc930e  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
! b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2014/charset.cc
! 2b8d12353adf98c55bcc73674c62a323  libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
! 084405fbccc2c4547b6bbcdf578833fa  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
! b712469594dba35e8a9a588b358d64b3  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
! 8ad4db377d96ec036fcc6ba66d7fc278  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
! a855caca5e0027d1c376f0993cf8f47e  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc
! 1fe47b8ace37e5d7db71a98464c30875  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_exceptions.cc
! a1834f713e2d55e973be0baaad908eb5  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_rtti.cc
! dab26573574b59083a34aebacd0912ed  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc
! b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2017/charset.cc
! 94c7ba2d6a7672c878000b2e2eac3b81  libstdc++-v3/testsuite/17_intro/headers/c++2017/operator_names.cc
! 1bf5a22170c2594517e448b311b38a46  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! e7e133911fbd7472c5c0072eb40eb10e  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++.cc
! f4b03e341af672277f12ae445a9dca27  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc
! fc7ce82ef92ad49e07b8601de324759d  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_attributes.cc
! 8911c9425fb1aa3a40080800cc9ebd2b  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_exceptions.cc
! ecac9f40e8e5cf2889e39ba24f3f9c1c  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_rtti.cc
! cf8e60efe03e0d4c2ddea36ab3ec4ef2  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc
! b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2020/charset.cc
! 5443708c0d6c9abdb53500f0fd4db206  libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc
! 9da657dc332cf768b764e1784ec584c1  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc
! 7654b88e3e7e4269beb1402cdeed0551  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc
! a03c1c75e350b8f2507d940b12910e20  libstdc++-v3/testsuite/17_intro/names.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
! aa39cebbb59168b36715cd6de8b65935  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
! b9a2b7a07c681fd2eb820222903fdc4f  libstdc++-v3/testsuite/17_intro/static.cc
! ca1ace0a8f00e042398729ac6dd7f251  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
! c7b41212616108fe37437d083d8e4f4e  libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
! c4bc79732aaaac9eb5b59644e1554ca3  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
! a8bba2abe103e6d601ef50f4e2a4e852  libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc
  8257c823b655a89013a0a1e788a69506  libstdc++-v3/testsuite/17_intro/versionconflict.cc
  165cb0e7c28903f02a4b4e2d0a08e544  libstdc++-v3/testsuite/18_support/105387.cc
  ed159a9e459da3e25bbcb9da82b17b38  libstdc++-v3/testsuite/18_support/105387_memptr.cc
! 0bcee43548c6476834ea9edeff2c2a6e  libstdc++-v3/testsuite/18_support/50594.cc
! 0422b4d676d39ba21325746a2e81602d  libstdc++-v3/testsuite/18_support/51333.cc
! d5625fd9b3aaa7f7154db4eb82099444  libstdc++-v3/testsuite/18_support/96817.cc
! 8bbbb05700779cfdbbebfaaa03939ae4  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
! 47439adeb45a97c32c50de0ef308a591  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
! 79634dc2af0d40bac3f6adce6d816ea2  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
! bc9a8024c73fb9b2d079cdecfa66deb0  libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc
! 7a2301f1a5bfb8f94026815ef17f8a52  libstdc++-v3/testsuite/18_support/bad_cast/what.cc
! 3dc28e49b00d08499804e5f2031a0204  libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c
! 1906a84074e3bf3a170ba3c25ca470e5  libstdc++-v3/testsuite/18_support/bad_exception/59392.cc
! 8bfcbc3130a73b639263c497f86c6255  libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc
! 0a1c6e78288ab3516303988ecc82eb6d  libstdc++-v3/testsuite/18_support/bad_exception/what.cc
! 1810e7e1f813806db61d75fee395687c  libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc
! e55fb8dc7ad54c5b42bfca24b0c437a2  libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
! 4baebed14a6182e3aa9fb1f29dec2a4a  libstdc++-v3/testsuite/18_support/byte/81076.cc
! 364950d1d0c1c32d816ba62f429207e4  libstdc++-v3/testsuite/18_support/byte/global_neg.cc
! cc997a661be1dd9165fd46f259df83a4  libstdc++-v3/testsuite/18_support/byte/ops.cc
! ac5010a037876f92d9f58a8697e25c1a  libstdc++-v3/testsuite/18_support/byte/requirements.cc
  4d2819facd9b669fb9ac9377f3b4564f  libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
! 42a86a6e9f7a4038b7ce954f2a8d0fbf  libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
! 9770d7bd8dc363ca6057f02e87ea841b  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
  3d4e5f117547d01b1118e29b4d4da2ae  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
! 11ac94017e26806a004744546fb12536  libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
! b5a6ac3aba4a40d1ff152d9637f0c740  libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
! 96723757874b8597e7ab3f771fb49f41  libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
! ad8b4a454d523681f6dfe47a86669148  libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
! cc95fdfc3ab36976569f0ea311afe4aa  libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
! 4f4e07ce53e597a766ba9bdeb4b254f3  libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
! a5823a0db0eb3c1da127985f03cd538f  libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
! c4d31451be3be99ff2a4c7181403bab6  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
! fde0666e320ef3ed076b7fe9ec38f59c  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
! c3bf8f9c5afeec7a7c9de665ecf47f76  libstdc++-v3/testsuite/18_support/coroutines/95917.cc
  783af524f848615e0b0b76d03bcc9e9c  libstdc++-v3/testsuite/18_support/coroutines/hash.cc
! b0b000a4dff01c482a3a3fee6d018b4f  libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
! f36bf4c0675d608bb4e49f40d24f1bc5  libstdc++-v3/testsuite/18_support/cxa_vec.cc
! 5927dda60cd157af134fe98dae4e1277  libstdc++-v3/testsuite/18_support/destroying_delete.cc
! a8f86c050805c3e3fe9a7c98336f513d  libstdc++-v3/testsuite/18_support/exception/38732.cc
! 3bcccf93d32101e685ecb525bd2f1a13  libstdc++-v3/testsuite/18_support/exception/what.cc
  8a3e4fc86620d59634749ffecd317237  libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc
! 81224320bb0d415f58b3964044a5d3ec  libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
! 2e46ed9401b36d166b7f6cc19d65e75d  libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
! ec2b790beb174833752696e9a08f2307  libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
! 7827eae5381873f06c39565167b97b4a  libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
! 7ffa88c67d2245dbe3176809a450e9cc  libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
! 1b02d954e2f337e5d9b37b32f4d4f095  libstdc++-v3/testsuite/18_support/exception_ptr/90295.cc
  8907da30a344e71f1227eec1fae72f2b  libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc
! 0c00e80a7868264d0a09c8837636da24  libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
! 10c3d04385993acad46345792f8f1cb4  libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
! c4d35be39d45b324db562680ad23655b  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
! 5ed1f01b7847137249b6e088b73a9e4c  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
! 29fca22ca298c07532552a292735bdd9  libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
! 5b821a8cd672f41d2dcb1e99f421fdd2  libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
! fb46c6eea428fad144368caff99626d4  libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
! a22e2c261173fe4ce094fb56af362df9  libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
! f6e798463b53da2dcbb815a1df57ab6f  libstdc++-v3/testsuite/18_support/free_eh_pool.cc
! 39fcc8f873ebab4d39e836af8a8b3171  libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
! b599ee74a2f36640e19e2d8187c94699  libstdc++-v3/testsuite/18_support/headers/cfloat/values_c++17.cc
! 90966c85d5e208da1542499c4a36e875  libstdc++-v3/testsuite/18_support/headers/climits/values.cc
! 42db8de5d5884310015d57c3c56d861a  libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
! 49fb89eb52a78f1c63ae7967a5428baf  libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
! 65fa5af6439afaa24a3b7b1c76e88775  libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
! 5d76b00ddd01e4e15f2b7da83becff87  libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
! 2c16b092a067c253ecf12b07bcec9a2f  libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
! 73ac8b088a1b26222fe0fa6ccb506e58  libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
! 7bb2fd8c67ab14d65a1e43fe639b91e7  libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc
! f5c4d3f82280b39b80b84e0cc1806db6  libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
! e8d67aefef081e67ad727ae0dc72ecb6  libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
! 952eb2163a5d21292091b84d3c5a63d2  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc
! c3a8b08037ddb3d2a27c583b8175eeb2  libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc
! 7579a2d21611b12a5094343a014e873d  libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
! 15bd9b13dadf18524cea6083a5ddfcbf  libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
! 5a44cbd1298fa26dde125f0511ed5b0f  libstdc++-v3/testsuite/18_support/headers/cstdint/std_c++0x_neg.cc
! 54f0ce7c13103cf54444f333526a0c79  libstdc++-v3/testsuite/18_support/headers/cstdint/types_std_c++0x.cc
! dd13dfb47b0c5fd488db1cbd00348821  libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
! 0203e602f6925ab9e32cd1eebd5856c6  libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
! 8f5d97dc2e9d8267f10090455c0af028  libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
! b04280c9aec26f815638802325f5802d  libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
! c3776701b258e72616ffec54a4f612b7  libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
! 3aada86189e5d4f1ac13ccbe94dc7237  libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
! 883775ccfc4b858c975b64fd64ca6980  libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
! d673753ef3236f39cb4a170fa2b69f18  libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
! 5d0a5c03d2690bdb3c331f03134b4e69  libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
! 7c28239fca1fb71da69e0ad5d860e140  libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
! 22d44016e8353a35528847d39463ceab  libstdc++-v3/testsuite/18_support/headers/new/synopsis_cxx98.cc
! d781a1ac4f23d686afb5e5af82069e6b  libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
! 44c942883fb37d037e0fc4a26271f220  libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
! b167ed2b886aeb49f30ed449bf4da302  libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
! 93af9d140db271afaf55560343815f58  libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
! ee4475981370b3540d38a2e05dc83776  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
! cbbc33af24caa98b6bbd385a8837d05c  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
! 57e58be3b57d4e6606bd915ecc5b2d75  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
! 18a431805321df18ea9ecc976c9aaa75  libstdc++-v3/testsuite/18_support/initializer_list/requirements/constexpr_functions.cc
! 36df094b244db7dfcc7485066e8db59c  libstdc++-v3/testsuite/18_support/initializer_list/requirements/explicit_instantiation.cc
! 54bebbf665a20fdd7dffc25076da62d2  libstdc++-v3/testsuite/18_support/initializer_list/requirements/typedefs.cc
! 710eddca3d88f36c831b910289f2810a  libstdc++-v3/testsuite/18_support/launder/1.cc
! beb5f67abbc14d4bbb3ea869a080c01d  libstdc++-v3/testsuite/18_support/launder/nodiscard.cc
! 6f9ba45041ddf75d0a04e11274e53f10  libstdc++-v3/testsuite/18_support/launder/requirements.cc
! a8ef8e2e8212c060b49a2fa1572b53b3  libstdc++-v3/testsuite/18_support/launder/requirements_neg.cc
! 2daa4a6a897f3813aa1a043ce6b4a034  libstdc++-v3/testsuite/18_support/max_align_t/requirements/1.cc
! 5465d140475bc3f5c3f6047ccd04f960  libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc
! 3d61b684fcd368776a4fa62bd37f082d  libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
! 818ac86c89541d5f7ba806bc3e9ae0fd  libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
! d89e5f90f22c20221b8f15db6da192df  libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
! b6e3942db1f8e50c22b3a109423d5cfc  libstdc++-v3/testsuite/18_support/nested_exception/79114.cc
! 9ad98aa3ed419d7e145e227cacdabf34  libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
! a8670800289bdf7474374ed5480b42c6  libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
  ee6662bc29b9fe5c14888dd97e1cf3bc  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested-term.cc
! 614a32fdf44bb6acf9abd38a74335ced  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
! 733312fb2802aeb7ad4eeedf7e9484aa  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
! 63120ad1f5126c43f7986dc408be8209  libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
! e4f03d5dfa57d5a8255b0c8bdce62fb6  libstdc++-v3/testsuite/18_support/new_aligned.cc
! fc0331b89589bcce1bc38b869d815949  libstdc++-v3/testsuite/18_support/new_delete_placement.cc
! 8f60ad51c166f69fbdabbc0b8c7dd6ff  libstdc++-v3/testsuite/18_support/new_handler.cc
! 03fdd09683bed8c302f360f37cd7a031  libstdc++-v3/testsuite/18_support/new_nothrow.cc
  49e7685f2fc05cdd1dd5d2a404340058  libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc
! e9bcf06133e787fb3b5f8ccd563a2205  libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc
! 384ab89ec86da4c7dc85e5d057ed494e  libstdc++-v3/testsuite/18_support/numeric_limits/40856.cc
! 1addfb90d0a3b060232a565d5cc95488  libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc
! 5cc229379a714044cdcd5e5f5ed230e0  libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc
! 39682ea26d38a8fcafe118b89ccd20eb  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
! 672ec9bfdffec82dc5674ad1dd5db38e  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
! 92dfd14494167b97d9cedfa943b1a2c7  libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc
! 6e09af2769ba4e58365525243b19a80a  libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc
! 078c8f8a8b2d3c9ce0c43f38cb390343  libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc
! 76efd5b81f1fa31b00514300979d86f7  libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc
! e194c3fb491999d59a93841d11efb38f  libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc
! 2d61aeae283a34d7382bc40b5aa47c1f  libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc
! 8fb598547f2d5846f70e42be31f7ee8a  libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
! c5ad0c013350b5de78b0db89deb1f6c8  libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
! 4f4f9d73bf486acf9f9b9c7e5f3dfb0e  libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc
! dc21ee9dae43f66a550d6a2f4cb42f57  libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc
! 832c97eb188b193cb95780be89e23342  libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc
! 91a56cf4fa0c149ed00e3044ad953647  libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc
! 0c9bcaf9368be93adf4321e534744dca  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
! 83d40433b54d2aaa467f51491e26053b  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
! 8322db3892b37696ed4aaed40067ffd2  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
! ea8b715f058f5afab54929db28252475  libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
! 02acdd7803b5bb6d73e1eb69a7b9db3e  libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
! d95ea590e6e5b472028be5a5077635da  libstdc++-v3/testsuite/18_support/pthread_guard.cc
! d33ae5da156ed02ac5bb66a6e703c45c  libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
! 082c43d9b21b101ce435cc6c89a43304  libstdc++-v3/testsuite/18_support/set_terminate.cc
! e3dd99b2077e500f760ae7b4c115cc75  libstdc++-v3/testsuite/18_support/set_unexpected.cc
! af03a90e813a64eb39233eccf99cac07  libstdc++-v3/testsuite/18_support/source_location/1.cc
! 58c5a736f045d61f7a7b7f27ad9c93c2  libstdc++-v3/testsuite/18_support/source_location/consteval.cc
! 0f57e74b7df1b98d08de44983c15c088  libstdc++-v3/testsuite/18_support/source_location/srcloc.h
! 5708b2767b5a877b38fcd32b8b6c7c17  libstdc++-v3/testsuite/18_support/source_location/version.cc
! 7541a6bb67e720df95535da2312ce4b8  libstdc++-v3/testsuite/18_support/terminate_handler.cc
  0ba910b833dd281cbb0614829d4c21d0  libstdc++-v3/testsuite/18_support/type_info/103240.cc
! d709c84d78d7d1d1ef4fec1e8eec1135  libstdc++-v3/testsuite/18_support/type_info/52562.cc
  9183aba89484917544d8e71ab7b95f72  libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
! 1a2fb02f0b9b987e9f2c3ae698ae26b6  libstdc++-v3/testsuite/18_support/type_info/fundamental.cc
! 2a0b335fcc9ea5ab02d8bb00ac72a5b4  libstdc++-v3/testsuite/18_support/type_info/hash_code.cc
! 76df297ece44eeb991841f6000db7b9c  libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
! 924d433726ed1e15a414c150854b529d  libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc
! c27023d76df1a8ee489fd30db8546489  libstdc++-v3/testsuite/18_support/unexpected_handler.cc
  e76078fa52225514dc89f9b1116c07ff  libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc
! eee24201b9bca26bf17bf49d625c488d  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
! 051ec5660307c75f8ea0f39bd5b6fc5c  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc
! 6332c44867f28a68fe8b2961adfbbb54  libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc
  0a66d8bbf6fa03d3f76f4e2fdde4daf7  libstdc++-v3/testsuite/19_diagnostics/error_category/noexcept.cc
! 1b30b467e55da62538054f4eabcd3e9f  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/equal.cc
! 34f9c0495bb1c5ae9006c62898cf569e  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/less.cc
! d594431ab14b462d038e2d55126aa9ea  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/not_equal.cc
! 7f0065bf8c56ee048f898bb64109ad4f  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
! ae1b5531d326071167608e61bcaa41f8  libstdc++-v3/testsuite/19_diagnostics/error_category/system_category.cc
! 8288f173799e1b689774eec2839094e4  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
! 33fe1ee105826a40559f7d027c4e6264  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
  81f9725b7658563bbe88b3ba6c3c1852  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/lwg3629.cc
! 79daf17e7436b7e7d6cd91c3d5363868  libstdc++-v3/testsuite/19_diagnostics/error_code/hash.cc
! edd7d11be4349d18cdd8bc87ca6ab6f4  libstdc++-v3/testsuite/19_diagnostics/error_code/is_error_code_v.cc
! 16f06989c8f127079159124c1a2cd802  libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
! 0e87204e72c39ef5563eaeead95a1437  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
! 3ef1bae0fa203638190aacf071c44cb2  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool_neg.cc
! 84a7eff3b30ab42d500ad5e20fae075f  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
! 6d05927acad6c1e3873a1577a19e5bf3  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/less.cc
! c6dff86ba122d114b025965f32895f59  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
! 3e8d05c8e755f3cd5ab2952012940a61  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
! 1324fa76af768b654f047a0c9879b341  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/1.cc
! 7298bed8f5fd6d7ecee654321c70b644  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
  0c9bc80a7caee067ec088b66373dcca8  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/lwg3629.cc
! b60c45c3a045ae244ce48fdb105d3318  libstdc++-v3/testsuite/19_diagnostics/error_condition/hash.cc
! 775f2702594564b2d28e21176b1516c5  libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
! 68597b064555adfe97d41c2abf2e9265  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool.cc
! a1f0517d4b0f25dba7832498f9423599  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool_neg.cc
! 4ce28577539ac7f6c84c033f0b7d5bd8  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/equal.cc
! 30d86032d1a46ff4a1116a7d20905255  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/less.cc
! 53091750c215e39d9f42017b71246931  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/not_equal.cc
! 67df4356ef270b4fd57ec803a6799374  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
! a61182061bd8ecd5a0f92373c2a98dec  libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
! 1f24f53b423a1780fca9e704829e6768  libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
! e67193ccc02a4d3e08926989f6976583  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
! b2ee773e831091cd51f7c0d847df2db0  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
! 975479537882c4943a410da522c26fe2  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc
! 32eec409ae8eb4c50db5bd05bff9b025  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc
! a8f775b7b748c4cda6e817d2cb3c39a2  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc
! 5277a48f8e3509f362a05c735304cc90  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc
! 6861fd1e48c4fa74d2e3a044a9988ec5  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc
! 32e8a08877fde308bf14710c0a1e7d7a  libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc
! 62bf661caf1e7e90f04f18f4744daa54  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc
! abb94671dd4ce03eb87b4dada7287ce4  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc
! 1f87b48b18be1dfce75bb9ff32e21c7f  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
! e0410e8febb4f757a3e8a8f485c803ef  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
! 8bbaff06769d83abb0bd14d666c5c88d  libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc
! d8d0c7afb17e32dd10b987ffb22261cf  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc
! 793c3b12849fddb69aef3bd85fe25459  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc
! 04a1c1421c723a2d7797bfc3a143b29c  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
! 41cc601187cef642f81552a851869aad  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc
  e56e9135727cc8426f415b40cb46ef9b  libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
  4e0abb2d09dc9011ed8dcf8bc3aeeaf8  libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
  0876ae74cd8dc05ca60b7808458106df  libstdc++-v3/testsuite/19_diagnostics/stacktrace/hash.cc
  0e264fa07b2eb0eff7170d83609d9308  libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
! ac67f25a8f7d3c1d502eae30eebd07f9  libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
  64572ab5c0e7f09f34c7fec8a15fb5a0  libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
  91c0a9d6d7a5bc7671054e6d03f6e28a  libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
! 27b5830c52c0bc9644d06080fc9682b0  libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc
! f14fac64cf792b60c82cdc34de6167ff  libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
! 4678a31900a4ac166e7b79e305e4a6f0  libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
! f084657cf7300229d171e939d2066d1d  libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc
  b8fd5b3cc781e4351fcba88c19391352  libstdc++-v3/testsuite/19_diagnostics/system_error/noexcept.cc
! e5a9d4a6b32c0f09a071a0a67ea6197b  libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc
! 0155c8d43d3ca78f3bd402eaea88663c  libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc
! c46dee551b7ffde6edc9745232bbf490  libstdc++-v3/testsuite/19_diagnostics/system_error/what-3.cc
! d3941957110e38a99445f37f3d6c53f0  libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
! b2914a2908bbed25d595086067de01b5  libstdc++-v3/testsuite/19_diagnostics/system_error/what-big.cc
! 46d99cdd9012713816efd7120fc51d90  libstdc++-v3/testsuite/20_util/add_const/requirements/alias_decl.cc
! a7e53df6be68f7d664e104fcc046e62b  libstdc++-v3/testsuite/20_util/add_const/requirements/explicit_instantiation.cc
! f9b94d3cb655856b60f03c5970d7d805  libstdc++-v3/testsuite/20_util/add_const/value.cc
! dc2a9a9d3f9f8208c3ac78a46e3a0ea0  libstdc++-v3/testsuite/20_util/add_cv/requirements/alias_decl.cc
! 01244ac2fd544ef19aff24f45002441c  libstdc++-v3/testsuite/20_util/add_cv/requirements/explicit_instantiation.cc
! 295ff3b0566661b6d560184cc3bbef17  libstdc++-v3/testsuite/20_util/add_cv/value.cc
! 38ae37f8244ec5478d529a869363de9c  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc
! df088b9d5d8a9dbd865df031f8d04707  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/explicit_instantiation.cc
! 59640f43f2581ff715d7f093ae403941  libstdc++-v3/testsuite/20_util/add_lvalue_reference/value.cc
! bdbbe8f878a319536537d5dc113a8f49  libstdc++-v3/testsuite/20_util/add_pointer/requirements/alias_decl.cc
! a2122555c73f96e5d2cf6351e69dc623  libstdc++-v3/testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc
! 4b48b7ced2325791f0982baa1a92bc16  libstdc++-v3/testsuite/20_util/add_pointer/value.cc
! e98d480ba9149af446aa58821ebd3b5a  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc
! 4d30a26cf5d5bf1a8f40666fa76c53d1  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/explicit_instantiation.cc
! 1d7aba8ad2bfebe69a173beafc67f5b0  libstdc++-v3/testsuite/20_util/add_rvalue_reference/value.cc
! 027c36b6be08ae84538010b8f89748fd  libstdc++-v3/testsuite/20_util/add_volatile/requirements/alias_decl.cc
! 263830bce1414216e877ade0d990aa86  libstdc++-v3/testsuite/20_util/add_volatile/requirements/explicit_instantiation.cc
! 1b19b2b560dfbfd0a2a8ad03f2e67523  libstdc++-v3/testsuite/20_util/add_volatile/value.cc
! 552480f1e6d76bdaec126ed97abc8b9e  libstdc++-v3/testsuite/20_util/addressof/1.cc
! 90b4d2470f9814a2c8f146b1930a98de  libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc
! 3cfedbf6b546e9ec820955b852e1d6f9  libstdc++-v3/testsuite/20_util/addressof/requirements/explicit_instantiation.cc
! b28312a9369dc5e207ee14984884d3c3  libstdc++-v3/testsuite/20_util/align/1.cc
! f5b73d1831b129e1267dfc0a85145ae2  libstdc++-v3/testsuite/20_util/align/2.cc
! a427c6566e8a40226491fe87c7a93240  libstdc++-v3/testsuite/20_util/align/3.cc
! 8d1e6de531f833e818eb6807f9ff7ada  libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
! f580b13960fcc9c0fe5cf1bcc90c46fc  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc
! 03f40b3f6ba98caf6f12a8bbf7fd2a27  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc
! 5a7d08570da3f1cb174bf5c5bc0ae66e  libstdc++-v3/testsuite/20_util/aligned_storage/value.cc
! c8cbab10f66360e698241e46d962acb6  libstdc++-v3/testsuite/20_util/aligned_union/1.cc
! 5ba7645fffe16f0cfc4dbcb77cf3ae00  libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
! f81626e8317322b18c7e633809f0c9c6  libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc
! 98de0343141f75fea8616155058b256b  libstdc++-v3/testsuite/20_util/alignment_of/requirements/explicit_instantiation.cc
! b87e91027f2d2e8c1f4a23ef682b308a  libstdc++-v3/testsuite/20_util/alignment_of/requirements/typedefs.cc
! e0fc3cb49c1029e73939945b437b0668  libstdc++-v3/testsuite/20_util/alignment_of/value.cc
! dfed9bff68c2b5fb56a28105dee8f6c8  libstdc++-v3/testsuite/20_util/allocator/1.cc
! 11c2b656443e53789b05e7777c68e496  libstdc++-v3/testsuite/20_util/allocator/10378.cc
  32cd2e02d33e0de43ae3997481aa26d3  libstdc++-v3/testsuite/20_util/allocator/105975.cc
! 4ee170c2b7b88dde73a732588b506cae  libstdc++-v3/testsuite/20_util/allocator/14176.cc
! be058e208d70566ba4ed7e678cd492c0  libstdc++-v3/testsuite/20_util/allocator/33807.cc
  ae49058091ac2f31814de6246e958d6a  libstdc++-v3/testsuite/20_util/allocator/64135.cc
! 89313ca3043e2bc0c4ac8f8dcccea69f  libstdc++-v3/testsuite/20_util/allocator/8230.cc
! 07bec2df6add67d8a249f38399859218  libstdc++-v3/testsuite/20_util/allocator/89510.cc
! c8e55f05737fba71233c8e185378beb4  libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc
! 3a33ea4cc7a484652498b15cd370eeaf  libstdc++-v3/testsuite/20_util/allocator/overaligned.cc
! bb3b5753f4e1809a317efa4a8b7b52d4  libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
! 9cc6034f5cb4959c12d349e01edf5100  libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
! 4c93a0fe8a2b99e2bf047f207c1738b8  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
! 574c4f17adfc6d4fdbc7a36be76189c2  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
! 6f2ddeea7fffd1f7ddda9867ddec0a37  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! 4b3d9fbc7a60013b02367dd99f1c2d2f  libstdc++-v3/testsuite/20_util/allocator/void.cc
! 2507ed44fb323118257bd6ce7bb095b8  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
! 85b2afd630810126ef82b1d7267ca846  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
! 5336f92bcae54f5d28badb5566393ac6  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
! e0d793a2d40bebde631ce2dcc8197ed6  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
! 05e3d7578747c9af441e54acf60ed80f  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc
! 0a40bd991f7ca6eb28c761cae625c765  libstdc++-v3/testsuite/20_util/allocator_traits/members/construct.cc
! f213e920552fd12f0ad1fb75158f26de  libstdc++-v3/testsuite/20_util/allocator_traits/members/destroy.cc
! a78691d0ab95c1359d92dc38fa992f46  libstdc++-v3/testsuite/20_util/allocator_traits/members/is_always_equal.cc
! 370888e6f3d86eeeffda6b196e38da63  libstdc++-v3/testsuite/20_util/allocator_traits/members/max_size.cc
! f01fdaa9853083ed05383d1c06da795f  libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc
! a7555c213c73da6cc3c94aa61e5edfac  libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc
! 17c10e3108d6b536413ffffa3122133b  libstdc++-v3/testsuite/20_util/allocator_traits/members/select.cc
! b609379c48e980fec3dc7847fbe18301  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
  bef0ecc9b87819710fa15591c4f27204  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/rebind_neg.cc
! 93063a96fa85a00c9d3ce6282fec75b9  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc
! 45d9f0a60a6156eb2246a47a64becc67  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc
  53d95c7e7934ce41b96d0a86033b6a99  libstdc++-v3/testsuite/20_util/any/102894.cc
! 498cf7837a9baaccbf1fec7ab569d083  libstdc++-v3/testsuite/20_util/any/assign/1.cc
! 13a858964073deed5e1fce0c8583d18f  libstdc++-v3/testsuite/20_util/any/assign/2.cc
! 1cec97c634727b4e6ea7a3944b88779b  libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
! f94bdf5e9e4a32f5cb8ad45595171dc7  libstdc++-v3/testsuite/20_util/any/assign/emplace.cc
! b0a0a00cf6f23466ef0a051dce36898e  libstdc++-v3/testsuite/20_util/any/assign/exception.cc
! 9cb8e9d1ed5ba4cca640f5c2e66e576d  libstdc++-v3/testsuite/20_util/any/assign/self.cc
! f53b2c19dba2ae1870b126344a051a7c  libstdc++-v3/testsuite/20_util/any/cons/1.cc
  097d518046e23537949952c936ddfa1c  libstdc++-v3/testsuite/20_util/any/cons/101034.cc
  335e5502fad2ac140247bdc170504f8f  libstdc++-v3/testsuite/20_util/any/cons/104242.cc
! 025db0c4cc7b0d5c7f64647a03539e7a  libstdc++-v3/testsuite/20_util/any/cons/2.cc
! 6e3e1a009248889ecf0e3785597d8e1d  libstdc++-v3/testsuite/20_util/any/cons/90415.cc
! 25ac0ba6f266c1888090c89235acc106  libstdc++-v3/testsuite/20_util/any/cons/92156.cc
! 282627f6c7bd763fc1e0c5f0d693afde  libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
! 0412a9f0b2bcff8b180b0e43afa56707  libstdc++-v3/testsuite/20_util/any/cons/aligned.cc
! 231f874e27319278643adbf63ec1c993  libstdc++-v3/testsuite/20_util/any/cons/explicit.cc
! e3d0bb76fbaef69c8f87fd9fe336aa4a  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
! 3ea6370f34c6012ae7832329612f0cf7  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
! 6ca02ecc8fd87a06fc82b76fa0a2de7f  libstdc++-v3/testsuite/20_util/any/make_any.cc
! bec7cebb72f10c82543548b6e21f6db6  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
! 23adc802b2a5933a24555115ed360703  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
! be41f5ae9653ed881e5d63894a548eb5  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
! 63e6fcda9a18cd1553d6284b22e32d05  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
! 32727e8b8c3a49e8631021e824f43291  libstdc++-v3/testsuite/20_util/any/modifiers/1.cc
! 5c116ab2982371cb31baad88dae9d90c  libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc
! e67522c95c6dcf3666f3a6ced8fe97ef  libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
! e7ad3f2602bd907d961a85b5990e5d2e  libstdc++-v3/testsuite/20_util/any/observers/type.cc
! 2e25f2cb1cd4511a3666a22ae725f0fc  libstdc++-v3/testsuite/20_util/any/requirements.cc
! effac063849e457e9d4c707c81e8ee96  libstdc++-v3/testsuite/20_util/any/typedefs.cc
! 3eb251588462b5163336c71609d67c80  libstdc++-v3/testsuite/20_util/as_const/1.cc
! cc2a49dd69e9908d0a3addecf2cb58a3  libstdc++-v3/testsuite/20_util/as_const/rvalue_neg.cc
! fc430c863cb0514854172ab6bcaf59db  libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
! 29cc44d0c6133ab62343e7d7d513f9d9  libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
! 5dc2ba55806e834782b020fc94233fe3  libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
! 9e43c2b2a7b22f7028e9be3d708d30b3  libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
! c900af4d30ecb95b5665d986b45d5cd2  libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
! b6755af01afa36b79400db75e974f235  libstdc++-v3/testsuite/20_util/auto_ptr/2.cc
! 58f8f49f70819af7fd80f63f7f9fe58f  libstdc++-v3/testsuite/20_util/auto_ptr/3.cc
! b367ba995129c9d8e254cec48319d933  libstdc++-v3/testsuite/20_util/auto_ptr/3946.cc
! c4682684b0c6bc2173148df4ed0a2c6c  libstdc++-v3/testsuite/20_util/auto_ptr/4.cc
! c84c4b22a8ac02fdd072a5bcf5d1e570  libstdc++-v3/testsuite/20_util/auto_ptr/5.cc
! b9764fb82ffa49f651d81b7c09940467  libstdc++-v3/testsuite/20_util/auto_ptr/6.cc
! cdbaa81a3761b74070324f090c0639b0  libstdc++-v3/testsuite/20_util/auto_ptr/7.cc
! 36925d4773ea2838ab2bed4b59530808  libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
! 325c3d0b3b9f9a7dfdd576c9f81b0870  libstdc++-v3/testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc
! a6d5bb673431b3f2ae4f3ee5f8bebc5a  libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc
! 9b38ad5efc97e4c2162832b034336409  libstdc++-v3/testsuite/20_util/bad_function_call/what.cc
! 99ed7abad982a6712bb388b6ff6105b9  libstdc++-v3/testsuite/20_util/bind/35569.cc
! b27d96902454e8a46b8c703b3d0f1318  libstdc++-v3/testsuite/20_util/bind/38889.cc
! cde85d7e3569e06d02806724c10c21e3  libstdc++-v3/testsuite/20_util/bind/42593.cc
! 56d44654e6349ef529fab59503daa808  libstdc++-v3/testsuite/20_util/bind/45924.cc
! d40fcd84c2a04d5c52a3f00d9551c4aa  libstdc++-v3/testsuite/20_util/bind/48698.cc
! 66be637781d496acc52d99be35f20495  libstdc++-v3/testsuite/20_util/bind/49058_1.cc
! cf053a66ce22cf0b73e63a6c473158b5  libstdc++-v3/testsuite/20_util/bind/49058_2.cc
! e5b0b9ab2fbbb0a09797c0551cda27ad  libstdc++-v3/testsuite/20_util/bind/57899.cc
! 759f6e00a2b91df4031ce7dcc0c64149  libstdc++-v3/testsuite/20_util/bind/60497.cc
! 56ad6153e4c76944e156c7ffb03c605f  libstdc++-v3/testsuite/20_util/bind/68912.cc
! a57d3d159e2ba7a8812b93961d1f931f  libstdc++-v3/testsuite/20_util/bind/79798.cc
! 124f54100921da7eb9db7a2662ebf114  libstdc++-v3/testsuite/20_util/bind/83427.cc
! ec1a9607d69bf3526299bd6a5f798294  libstdc++-v3/testsuite/20_util/bind/91371.cc
! e2f76b5206e29df12dc615016b3ce75f  libstdc++-v3/testsuite/20_util/bind/all_bound.cc
! 3bdd7013672792223bf85876da525e5c  libstdc++-v3/testsuite/20_util/bind/constexpr.cc
! 88cc38686b4519e51b8751ea2cf41ce7  libstdc++-v3/testsuite/20_util/bind/conv_result.cc
! a9df38b43b35b5e6e710883eaec01151  libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
! 159208c87f95c04af74e7011324d327c  libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
! 11113e2f480d7394c770e9a09ee0d46f  libstdc++-v3/testsuite/20_util/bind/cv_quals_3.cc
! ac8e93d4882e1ff9282d9a8a2b291031  libstdc++-v3/testsuite/20_util/bind/dangling_ref.cc
! 2ecc665ef3b257e9162bbc21854e3946  libstdc++-v3/testsuite/20_util/bind/is_placeholder_v.cc
! 5288d661707245b5f49b1d182c5efc3b  libstdc++-v3/testsuite/20_util/bind/move.cc
! be3a9da6ea678098c6798ffbca60906b  libstdc++-v3/testsuite/20_util/bind/nested.cc
! 9515917d7da7015d84320506d85afbb1  libstdc++-v3/testsuite/20_util/bind/placeholders.cc
! 925bf06b521a39faa7a6a078a2f6952e  libstdc++-v3/testsuite/20_util/bind/ref.cc
! 223b62118d756342ecc2722736bf4231  libstdc++-v3/testsuite/20_util/bind/ref2.cc
! beef1b17ec09089c1db67911138fa568  libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
! 44ab69a5d529fdf349dd6668072a2fae  libstdc++-v3/testsuite/20_util/bind/refqual.cc
! fde613852ee20acbd49ed2f4e20d9300  libstdc++-v3/testsuite/20_util/bind/socket.cc
  c0edeeaaf9a022df2a3ca636e28ac7f2  libstdc++-v3/testsuite/20_util/bitset/107037.cc
! 18aad7ac215ee932be37946a9fcd8422  libstdc++-v3/testsuite/20_util/bitset/18604.cc
! db33c0b07eb5d92575c4153385c6b2c6  libstdc++-v3/testsuite/20_util/bitset/45713.cc
  0be3c1005581d429a9faed927cfeb925  libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
! 559143fda7b00fba0df9fcba3dd5ca89  libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc
! 1f1e80918012b75c26a27daa909a11dc  libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc
! 950fc13cbef75c6fe204043da88e2bd2  libstdc++-v3/testsuite/20_util/bitset/access/to_ullong.cc
! dd95327d2bc1622818005a8b681bbf40  libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc
! fc025bc9d33d240e5f89460292363e0c  libstdc++-v3/testsuite/20_util/bitset/cons/1.cc
! f897a5aec46f00b1511d885009a86bf1  libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc
! fc34d41d19701a9862b43e6432bc4098  libstdc++-v3/testsuite/20_util/bitset/cons/2.cc
! 961e7eb357f41ba963869f0ad33602c9  libstdc++-v3/testsuite/20_util/bitset/cons/3.cc
! 7072f10b93369347cf75b1a83924fef8  libstdc++-v3/testsuite/20_util/bitset/cons/38244.cc
! 7f926fc576d108091b3830529ce66bde  libstdc++-v3/testsuite/20_util/bitset/cons/50268.cc
! 32a79bc6d4c4bf2ab7e047e0b83748e3  libstdc++-v3/testsuite/20_util/bitset/cons/6282.cc
! 1ce8640a35ed5ba46e13cf771739e3e3  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr.cc
  6abbb67385d01ef586af796804e437be  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
! 0e7481533d3c03ac5db0af66c589711f  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-1.cc
! 377d19db19f1df0254de855f63dc00d1  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc
! 83631827472f493f6103d152bbab51ba  libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc
  4739712fd7e238ea3f424a1b9a749ded  libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
! 599439b4c47e741ba0958fdbcc05d962  libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc
! c258df0f50cf81e780871264f7d1da77  libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc
  ae7a35e7dc58142db1f519ca7a92c236  libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
! 689e2e23fb71fddc19f7c174a8c01a14  libstdc++-v3/testsuite/20_util/bitset/hash/1.cc
! 86a95f61afe84af57b97e13a3663514a  libstdc++-v3/testsuite/20_util/bitset/io/input.cc
! 1eefe3a582f6379be861e12b3353cfb3  libstdc++-v3/testsuite/20_util/bitset/observers/6124.cc
! d5eb63af2a8ccf9e687cba1e97ad8c33  libstdc++-v3/testsuite/20_util/bitset/observers/all.cc
! 1b42961da799725158f8d16edc1d9ec2  libstdc++-v3/testsuite/20_util/bitset/observers/test.cc
! 90d665b829de78c5015158e12a6fb319  libstdc++-v3/testsuite/20_util/bitset/operations/1.cc
! a14bddce0bcf190782dca8c21dd53910  libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc
! a4a99aee42695d5a63d2dd65cd5c809a  libstdc++-v3/testsuite/20_util/bitset/operations/2.cc
! 6b64c547a68c1eab5d5d29a59a7d8eaf  libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
! 4a623a46d0893bfad72526fb6b865ec7  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr-2.cc
! d5fe9a70b8477f9214444520f52d1662  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr.cc
  cd35f526f71cd243c4965f834df24c89  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
! a7d09155358ecd459011c5433d691830  libstdc++-v3/testsuite/20_util/bitset/requirements/constexpr_functions.cc
! 2477ff0cfe4d807097a3dfe90ae8336d  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc
! 1f5f8908cbcd3df3f88a08881286bce1  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc
  eef2204d57edb98136c3ffd5d0879a97  libstdc++-v3/testsuite/20_util/bitset/version.cc
! afdbffdfd2201bf9132f963b55514c1d  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
  d9e3a835b6facefd71de42c8fe38c7ed  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
! 648fc9f2714b89854d9ead8c0f029c26  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
! 450eaccfc464752deaab6f55ea97db07  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
! 9e65342a9eecf6f6fce043e79021b218  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
! 34cd68f0a923784f29775f06fbfd7a16  libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc
! 53dbedd59e847b2383a138ab1a56d4ae  libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc
! a3b33b44713b2f369376940488e066b6  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc
! a9bd5862e38045b31604b56f2b5eaead  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc
! 60f69bf3a746e6b441135d520082f7a7  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc
! 88a2cfebee371ec492a004dfeaabdfe2  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc
! a90d6a12ed710d351217dac49b542059  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
! 6fa48790ab1d75b590002055143e6f68  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
! ee2f13c978e3982dfc65b20a79d50167  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 5ed9f41ce0f5de05949e5d4750c740df  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
! 6f353ec85e31bbf71741afb9404bd1d4  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
! 02a6a87d9cf304e3af1919ccc904bf0e  libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc
! e512975389b3de3c38405f8f669a55e3  libstdc++-v3/testsuite/20_util/declval/requirements/1.cc
! 1dfba8b683540ea5925f30e2f62a7e02  libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
! 1f64dd9989628e429797b89300f85599  libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
! c3a1df31a5b4ccd181a5a8ce7b5b68a2  libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
! 69706bd9f0fdaa514884f2d301307007  libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
  0623727991b764e8fe5d0e737d63679e  libstdc++-v3/testsuite/20_util/duration/114244.cc
! cd626e5368ec915c7f6584dc95897072  libstdc++-v3/testsuite/20_util/duration/arithmetic/1.cc
! ce5e26a8484170f6dcfb42f11628c0ce  libstdc++-v3/testsuite/20_util/duration/arithmetic/2.cc
! 275659e8f677d2f1b6d4704221d75636  libstdc++-v3/testsuite/20_util/duration/arithmetic/58850.cc
! 73f3124f94f7c37efb1cdd4aa24d6d1f  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr.cc
! 9fc85674766af289b4178357931cef13  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc
! a958783bbd71b99c3a16f298fca0d4da  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr2020.cc
! d3d86669646b0c14aaf45292ce65b983  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr3050.cc
! 0226bef4bd4a7fc1416eea1272b3fc6c  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-1.cc
! cdb6c102827259c5952d58d4ed977b0e  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-2.cc
  5bfbf049bfde3e1b9726b779cd22ff78  libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
! c176436a28435e1efcaa3591d5fb531e  libstdc++-v3/testsuite/20_util/duration/comparison_operators/1.cc
! 1606aef53325afbe7fd9612fdfe66525  libstdc++-v3/testsuite/20_util/duration/comparison_operators/constexpr.cc
! f934aa3110f2fe6cc24a5786921798e0  libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
! ddeeac26e81cf28e3568d60cd8256420  libstdc++-v3/testsuite/20_util/duration/cons/1.cc
! d571ef6cfd4f931275e7011dbe48b093  libstdc++-v3/testsuite/20_util/duration/cons/1_neg.cc
! ccca4cdb049f7d446ff2b4f97c4329f4  libstdc++-v3/testsuite/20_util/duration/cons/2.cc
! 72809d4744d2fbbbc8d622011efd90d8  libstdc++-v3/testsuite/20_util/duration/cons/54025.cc
! 4a43098936c4bb7c7961cac2dac143c2  libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
! 1726164c0b81121cfff0bcdb735bd353  libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc
! b824ca5978092e430a3d3f4c803c82cf  libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc
! 4e86217beff013ecded42a2cc13ef2c3  libstdc++-v3/testsuite/20_util/duration/cons/dr3050.cc
! 16becc34011f626abb225847bf1133b0  libstdc++-v3/testsuite/20_util/duration/cons/dr974_neg.cc
! ad23af56ed2d275a5abc780af8610d3a  libstdc++-v3/testsuite/20_util/duration/io.cc
! dbf5879153d46e9c8c6c9e8d689d1328  libstdc++-v3/testsuite/20_util/duration/literals/61166.cc
! ca36eb5afa2dde5e79a13d7af359387f  libstdc++-v3/testsuite/20_util/duration/literals/65499.cc
! f128b69697971933a1dbdd26509058ed  libstdc++-v3/testsuite/20_util/duration/literals/84671.cc
  f11b5a7d64db419bf2305c0f433c638b  libstdc++-v3/testsuite/20_util/duration/literals/ns_detail.cc
! 3f4c08fe719c0cfa7a4630b0337ec6ea  libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
! 89910fdd4ab7e8069215a46b2b8c4ff1  libstdc++-v3/testsuite/20_util/duration/literals/types.cc
! e68da3b095368e5fd5f9bdb7f28913d2  libstdc++-v3/testsuite/20_util/duration/literals/values.cc
! caf453b7eaac10104f0ff4b6a5d3df65  libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
! 243dfea7e11e816169f5603b96bcdd46  libstdc++-v3/testsuite/20_util/duration/requirements/explicit_instantiation.cc
! 9bfea3bd554b23f1a65b3aa6c9086c64  libstdc++-v3/testsuite/20_util/duration/requirements/noexcept.cc
! 8bf801da5056f612e041f69aee716c81  libstdc++-v3/testsuite/20_util/duration/requirements/reduced_period.cc
! d8715a502d83865bc0bcbf57bd4cf4fe  libstdc++-v3/testsuite/20_util/duration/requirements/sfinae_friendly_1.cc
! b6b3e1bdf4af4ce6ba75d500151305a6  libstdc++-v3/testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc
! 5d4a12d865b7a7380bd4a0986c605a12  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
! 775dc824001db4fd0f4515868fbc5e97  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
! c711bc67e8f8d7410fd6e04c6e764d8b  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
! cb89026fce57257b3d3e6afa0ad1d87c  libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
! 539e825150970a0e47713ffbcbf9991e  libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc
! b385caf2f97a7075df1830ae222713cd  libstdc++-v3/testsuite/20_util/duration_cast/rounding_c++11.cc
! 36f4c692f6be31e540d993f057df23a7  libstdc++-v3/testsuite/20_util/enable_if/requirements/alias_decl.cc
! e0fa0216dda447d640a1016deaf6f5ac  libstdc++-v3/testsuite/20_util/enable_if/requirements/explicit_instantiation.cc
! 47be29baf76b9e83a9e0829fd93a0be7  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
! fc5493c889c81a691e2de64ee77a625d  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
! 5b300ae44ade7554ccd1c024cf3be156  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
! 3b4e384ea08699d66ad5147d1a805bed  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
! 970fbb45f3c2e6754dcfdd3229dbdd17  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
! 07f9a413c71a3e99c4bbfb1bc0289936  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
! 1ecd17e4459908acbf76acd5512de621  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
! 9178144a2c806054426e1a235f8571ca  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc
! 063d28fe534053d50d2d1383b3b5053a  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc
! 3100aaf7662756739f63513d7edb9770  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc
! 9d9a08fd0d8c6da9278944271c8d8777  libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc
! 88e078da97821019d055059dd38cb0d0  libstdc++-v3/testsuite/20_util/exchange/1.cc
! 7b4c5ddd774f32fe28c067410777193b  libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
  54ac023f0845d5c919380e1309b7fb5b  libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
  af8a06346aa0e3af134afc89141593df  libstdc++-v3/testsuite/20_util/expected/assign.cc
! dc3a2cd47507d6f21e801bd45dbfd97b  libstdc++-v3/testsuite/20_util/expected/bad.cc
  e860269ac09079a27b177fc3da2839e7  libstdc++-v3/testsuite/20_util/expected/cons.cc
  56411bbfdf1df328a5b305222e4527ed  libstdc++-v3/testsuite/20_util/expected/equality.cc
  f56847054b7eea85a598a3299216a456  libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
  2fe263333a538ddd2a8cd7953725ff52  libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
  8717f284befd8d0ee8fe1e50dcc6a7a7  libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
  4824cecd15088232e3348b8bad95b2ce  libstdc++-v3/testsuite/20_util/expected/monadic.cc
  4bfafe03465669c57c9cf2717bc9b00e  libstdc++-v3/testsuite/20_util/expected/observers.cc
--- 132991,133619 ----
  74bc36f5cffd7626c78090061e4416a9  libstdc++-v3/src/c++17/ryu/generic_128.c
  fbb127f006c65ae37d591c627cc6235c  libstdc++-v3/src/c++17/ryu/generic_128.h
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
! e66e202fb59625eb933c316b0bf9ee34  libstdc++-v3/src/c++17/string-inst.cc
! 6bbe101ec337afce54e0c8dee6fdd6d3  libstdc++-v3/src/c++17/uint128_t.h
! 0edfe617c00f631005dac6355acaf259  libstdc++-v3/src/c++20/Makefile.am
! fc90aab2bcae05d7286b5666cd1f2be8  libstdc++-v3/src/c++20/Makefile.in
! 94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
! 939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
! e9e89f4578e59d252e4caaf0b63d6dfb  libstdc++-v3/src/c++20/tzdata.zi
! b01c0cfbca4e753f78f74ab41ce26267  libstdc++-v3/src/c++20/tzdb.cc
! 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
  2f142e6a788b76b05091ff09d99ae47c  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
! c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! ee35d9596867eb95f19f16644ad7df39  libstdc++-v3/src/c++23/std.cc.in
! ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
! 97527213996a1ca6a0910b1ab5f6c3a3  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
! 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
! 20a0f4ba676e1f27a818df5d35d85673  libstdc++-v3/src/c++98/compatibility-debug_list-2.cc
! 2a470ac8b732bee131a343ebb553a0f7  libstdc++-v3/src/c++98/compatibility-debug_list.cc
! b76cd019c3e6b5ec27ea7fd78b492a80  libstdc++-v3/src/c++98/compatibility-ldbl.cc
! 46aaa7566a266d7077f4438f7d7f21a0  libstdc++-v3/src/c++98/compatibility.cc
! 248dfbba7caecc6aa0d2ad6a30075762  libstdc++-v3/src/c++98/complex_io.cc
! bba27c56e0562102c641b74873ce7811  libstdc++-v3/src/c++98/concept-inst.cc
! 893eab8493893a093edf26d8cb5d5db3  libstdc++-v3/src/c++98/cow-istream-string.cc
! 210aae7d9990ef54831499f85ffaf4ef  libstdc++-v3/src/c++98/ext-inst.cc
! a57e39bda434e51e3747e5761356c2ac  libstdc++-v3/src/c++98/globals_io.cc
! ba4b20646d578d7b1ae702a4b86fc319  libstdc++-v3/src/c++98/hash-long-double-tr1-aux.cc
! 961820deaa7f5b1e43e1eef35b22acaa  libstdc++-v3/src/c++98/hash_tr1.cc
! 0d611c38fd110060226e5296fd23f7b2  libstdc++-v3/src/c++98/hashtable_tr1.cc
! 896909175cce2a7513d6ea43d18ba5f9  libstdc++-v3/src/c++98/ios_failure.cc
! d60e40ec47d2b0fb8e0541b1895738fe  libstdc++-v3/src/c++98/ios_init.cc
! 3e68530b0f9feaec78dab8b2d28095a5  libstdc++-v3/src/c++98/ios_locale.cc
! c44117887b546fe068afdee0ddf77755  libstdc++-v3/src/c++98/istream-string.cc
! 74920b0ce1e106d318ba26e0eaafe756  libstdc++-v3/src/c++98/istream.cc
! 9db2936fc2ca84e7cac2ac407834b854  libstdc++-v3/src/c++98/list-aux-2.cc
! 1f8a3725204b875d7c02c6725c1d231c  libstdc++-v3/src/c++98/list-aux.cc
! 68a2b0a0b7a1854cd6a708b45fe6c884  libstdc++-v3/src/c++98/list.cc
! 40e7f531ccbaf9b292e3ed3fe7d46f43  libstdc++-v3/src/c++98/list_associated-2.cc
! dd3e9520cf8ee644c3832c7c4f75249d  libstdc++-v3/src/c++98/list_associated.cc
! 38d8c8af591c44ea16794bd37514b582  libstdc++-v3/src/c++98/locale.cc
! b5df0408112aad3256f377a1587a4687  libstdc++-v3/src/c++98/locale_facets.cc
! 94fba1631226b8fa297bba346e1f377e  libstdc++-v3/src/c++98/math_stubs_float.cc
! 3570c89d87ec968537e66ded56120671  libstdc++-v3/src/c++98/math_stubs_long_double.cc
! 7d1c025f8d02044183b893c7f5cd790a  libstdc++-v3/src/c++98/misc-inst.cc
! 0cd57f072a69d5fa4bd192c0d341c97b  libstdc++-v3/src/c++98/mt_allocator.cc
! 38c67af50e605516c1125e8349006290  libstdc++-v3/src/c++98/parallel_settings.cc
! 99a82a84d45763e4d389e5f879b6919b  libstdc++-v3/src/c++98/pool_allocator.cc
! 75a07eb9f00e33c7c0b0c51074da788b  libstdc++-v3/src/c++98/stdexcept.cc
! 468b1c5376c10d69cbbbdba6d2561c4a  libstdc++-v3/src/c++98/streambuf.cc
! e9787f829287d26936fe1f7aff29a8a0  libstdc++-v3/src/c++98/strstream.cc
! 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
! b92adb30f5c707f7d2712de402cc66ba  libstdc++-v3/src/filesystem/dir-common.h
! 644e833e765e73e5e86bff4b150dab3e  libstdc++-v3/src/filesystem/dir.cc
! 1c849e5f01320436f2c86830e37637be  libstdc++-v3/src/filesystem/ops-common.h
! 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
! 8ddbdc7435772874d921480508b7d635  libstdc++-v3/src/shared/hashtable-aux.cc
! 9f5552f4018925c716ba0a0498c09af9  libstdc++-v3/testsuite/17_intro/badnames.cc
! ecc5ca146d152b00b47e21b42b75654e  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
! 345d73b159ab977cac2e2661993ce03a  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
! 834f0265b392711ace65bcb3dbec2e63  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 886105b90081de6ff824c6d35f4a3a75  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
! cef6538efd459dca7408eca86afd7fb1  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
! e6727856ceb639c5b7841fc176c587ab  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
! 0f6468c34c54e4d412a068790d074d79  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
! ca0a3d01d5520a405dd7d91f62b59c16  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++1998/charset.cc
! 982d8e26bc44a00af39d8465ded7fdbf  libstdc++-v3/testsuite/17_intro/headers/c++1998/complex.cc
! 3b8655d6ba2097616073507ae193e3fe  libstdc++-v3/testsuite/17_intro/headers/c++1998/operator_names.cc
! 871f71a25cb0a2e8e9022b769360d8ca  libstdc++-v3/testsuite/17_intro/headers/c++1998/profile_mode.cc
! 68efb122e218e910a6f9b1452b33e77c  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc
! aef041bae3719f48d004f53439beca16  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc
! 1a348612e7f9f2ad8a052e7a6b99f080  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
! 93ddf5b5e6075e3edb22691d2cc89d62  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
! bfe44018342421d38a0ae7c466c6964e  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! e10b210cba53e419fbc754d7b2a6f19d  libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
! b6d193d1eb4c0d4cd56ee5e63e31800e  libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc
! 5c232bb8664fa49b7210587542b53c97  libstdc++-v3/testsuite/17_intro/headers/c++2011/profile_mode.cc
! d100df3b99954e5e2a1e25ac7967528c  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
! fa6dd9de47fc1161957dd77bcc925b13  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! e4a354a67235724c5f38b1fc51630071  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
! 1b083d4d975f6db8c98c387c2bf43571  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! 0356cb159c4380ee8a1f33c09ac965fc  libstdc++-v3/testsuite/17_intro/names.cc
! d4446489cc9fd961dbc2f15b2b21fca7  libstdc++-v3/testsuite/17_intro/names_fortify.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
! 8f3a415b96537e8c5239f37d5726d87a  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
! d4ee131b256ea85531366c27f5487180  libstdc++-v3/testsuite/17_intro/static.cc
! 17747fbad103f74544da97a070e79b8a  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
! e8c3da2f658c287c1f98624fd46a99ba  libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
! 0e4763158dea8c63822682c298400501  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
! f5114b61d4bbbaa09a547c8e4def5525  libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc
  8257c823b655a89013a0a1e788a69506  libstdc++-v3/testsuite/17_intro/versionconflict.cc
  165cb0e7c28903f02a4b4e2d0a08e544  libstdc++-v3/testsuite/18_support/105387.cc
  ed159a9e459da3e25bbcb9da82b17b38  libstdc++-v3/testsuite/18_support/105387_memptr.cc
! 39dc5253efa37670077bc0be474bc0ea  libstdc++-v3/testsuite/18_support/50594.cc
! 5614ba32adaab0fd14f02baa8148d52d  libstdc++-v3/testsuite/18_support/51333.cc
! 7fd5ae07c634fb28c7e6791d9e8ffc53  libstdc++-v3/testsuite/18_support/96817.cc
! 7373bfd47cab65cfa5b812e2f06bd3a6  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
! 59eeb45946cade63baf50f1c079b8ac8  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
! fad2f16cb38afd449a2eaea965321c44  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
! 042535acca30b43f23318e1d7b1deee6  libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc
! 7179d8116c1e5fa8b99608d31993ae70  libstdc++-v3/testsuite/18_support/bad_cast/what.cc
! 8e834f8ffa61f9bf477dbc9a4179ec57  libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c
! 0a010b8160b75ba54bd5123bed180b0a  libstdc++-v3/testsuite/18_support/bad_exception/59392.cc
! f173a57e699c959e15ebdd8b65bd8ce3  libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc
! 5ca1b7079bd28dd739727fd7c722a57e  libstdc++-v3/testsuite/18_support/bad_exception/what.cc
! 3136c80adfc1c86822119644353578ad  libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc
! db4e118358b8358b1d4d7dd7bdecdadf  libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
! 936d73ca57c89c2bb8a1cf3c720cf9e7  libstdc++-v3/testsuite/18_support/byte/81076.cc
! 76f65e3f2fcaf8111e87a7c7af4391c8  libstdc++-v3/testsuite/18_support/byte/global_neg.cc
! 97e9d2113782996ab6afe43d8fd3a708  libstdc++-v3/testsuite/18_support/byte/ops.cc
! 847c3dfe06f67ba28c16afb4bbf848a9  libstdc++-v3/testsuite/18_support/byte/requirements.cc
  4d2819facd9b669fb9ac9377f3b4564f  libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
! 1a88dcbe7a589150c5402da6082473e1  libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
! 6eae698901443c7aa289aa4bef6e8790  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
  3d4e5f117547d01b1118e29b4d4da2ae  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
! 1593ea2268d7e6dba516592f47ebc18e  libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
! 44fe4a18b3a10e6bded398bcee5c96ba  libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
! 10e807bc0a985110191bafbf6bd1b7a7  libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
! 337fd5f805f9c78aa2ecf52b8a980b78  libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
! d46160d7e7cf897d1ddba5a0bf907b91  libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
! e83ffae8f6a01f3ce6a4a13bceaa570b  libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
! bfc352e556dfd06b9df0befc286c91f5  libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
! 1d63003425ec9b778636a9348657cb73  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
! eab9e55758287cff0a6db5f20c7e937c  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
! 7e12bf0ae32a08538ae4ac84eb6cb73f  libstdc++-v3/testsuite/18_support/coroutines/95917.cc
  783af524f848615e0b0b76d03bcc9e9c  libstdc++-v3/testsuite/18_support/coroutines/hash.cc
! 1040fa4ccbe7a6bcbdee3bf789197fe8  libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
! 078cee4676bbf4e43b6d9434dcbaa62f  libstdc++-v3/testsuite/18_support/cxa_vec.cc
! 37fe08e5125d8624f4aa4900e2c144a8  libstdc++-v3/testsuite/18_support/destroying_delete.cc
! 198455a37447986dc59d680adafc35c8  libstdc++-v3/testsuite/18_support/exception/38732.cc
! a50173907daec62db9e77f26b56a12b8  libstdc++-v3/testsuite/18_support/exception/what.cc
  8a3e4fc86620d59634749ffecd317237  libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc
! b68d3b924d0ec6839ff81111c3d60e3e  libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
! 3f5836eac9df6282dbc234c6af5bdfb8  libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
! 6572ee2f3a74385b6d38661ed86aad93  libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
! 624752daca49d5684700db981ee38028  libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
! 7d8727187aa2744639f9cd310c37562f  libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
! cc5dd043c9d14c6d41ee5c1ca240e563  libstdc++-v3/testsuite/18_support/exception_ptr/90295.cc
  8907da30a344e71f1227eec1fae72f2b  libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc
! 5ad138fdb1a7eba577340cd01d0f6c41  libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
! ee8560e001acdf60c93f0b858cf08201  libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
! 6fe7c52ba7ec7ed537581a961d292a99  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
! 7a48c334b8f976d3830aa87522a6ebe0  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
! 9f8896d3cdd36acce80f6c2f8c6944c1  libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
! 8a3be67022f5daacc4e13419789e71f7  libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
! 0e2cc6695ebe86cca4eba314ea24050b  libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
! a771eb011c81c640f771c44056da4e30  libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
! 2f17c70b88b52be2a4b98608a295313c  libstdc++-v3/testsuite/18_support/free_eh_pool.cc
! b463a2a67ea27b08374d4889e125f964  libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
! c5372769761fc046c0cfa9cabcb56311  libstdc++-v3/testsuite/18_support/headers/cfloat/values_c++17.cc
! 5bcc2598a10d845d5c864b600c04f9c1  libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc
! da426b23590d6339b17199f3fb1a7591  libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc
! 4de8a300b8ac7d7d14984afc243fe0a0  libstdc++-v3/testsuite/18_support/headers/climits/values.cc
! 082c209776f3662071f5b009da87f96b  libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
! bc578105a029c155931c577ecdc59269  libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
! 1a057de7b0717ab6ee21a7ef7e5b903e  libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
! b5037c54225f670c5262a07025dd43c6  libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
! 682c3dcd632ee47d34714dfac875efad  libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
! 3225502c0f5b9c18f6f2099c075d9b72  libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
! d540e641f1b565c2ccd5123b88fcce41  libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.cc
! 92d5042469c05e6c12c0c2896fbe80bb  libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.h.cc
! 9b23335f20888b21588289e2d67a86ec  libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
! 77677f772ad77ec60f009410d68916f2  libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
! e9140bd9fabb3a1df83f6573f5397b8b  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc
! 5e79c736ae8f9c2d368ca6d085ac9def  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc
! df4398dba4443326547195a9917f072f  libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
! 4c20dd8c3b805d6d649bdd814674e34d  libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
! 907c23f9662e0b16dc0213627607a230  libstdc++-v3/testsuite/18_support/headers/cstdint/std_c++0x_neg.cc
! c7b32f3c74a27ee15553fdacba80c0e8  libstdc++-v3/testsuite/18_support/headers/cstdint/types_std_c++0x.cc
! 064dd584e8d9e2cc22a58550037bc81a  libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
! e4cbec7848f5f68d2b2022c969ce7563  libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
! 108d34eb30f92f697b13146029d57604  libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
! a9c87f2f529fd79579b5ab1f4b91a466  libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
! 9a5fc42bea8db4773798f416032e6ca2  libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
! b9af608c6a4d22881cb63adf8ba63192  libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
! 5a3aac9064c6c4ce638cd9b7be4b2616  libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
! 4f75a3be6c90899d5a1f081e8fc110fd  libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
! c8cd653212ebb8cebb09e03c86274f5f  libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
! 618382140e43d184de71e83fa96f3feb  libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
! 9d909c7327329544c2ecc51023862851  libstdc++-v3/testsuite/18_support/headers/new/synopsis_cxx98.cc
! befaec8a438bea55f7e2eb65ca1c1519  libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
! c5394f5f34128ab3fc0d195585849a59  libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
! a6a7e433bd05da253e9b5fad1dd36b0b  libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
! f3979a70fed9fd4008d2c014bc139eda  libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
! 430cd7931356f5dc6d0484e38112baf8  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
! f684074413028ef7e11c609c1363bf2c  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
! 5d5846c81f95c2b622ac22323ea0136e  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
! 6ca5f87598d633069a846f2b60763919  libstdc++-v3/testsuite/18_support/initializer_list/requirements/constexpr_functions.cc
! ee57a4d4ac344f6f8e7422a110f98c51  libstdc++-v3/testsuite/18_support/initializer_list/requirements/explicit_instantiation.cc
! 3c920d59dd64be5ea81fcd8a413cf93f  libstdc++-v3/testsuite/18_support/initializer_list/requirements/typedefs.cc
! 8a24aecb8f8f48e78891d7c5f102a726  libstdc++-v3/testsuite/18_support/launder/1.cc
! c75fd9e059a8da96fb54720ad8c8e28a  libstdc++-v3/testsuite/18_support/launder/nodiscard.cc
! 515e03b17ee96e1cdad0fe3077c1db90  libstdc++-v3/testsuite/18_support/launder/requirements.cc
! d713260c24bb7512a03a348d32f25505  libstdc++-v3/testsuite/18_support/launder/requirements_neg.cc
! 81d5333e6310c813d4cd487af3f4528d  libstdc++-v3/testsuite/18_support/max_align_t/requirements/1.cc
! 74e00df2a98868eb0fdf2e70f9509d47  libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc
! e3c9236c9f7162106794ec6604c87546  libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
! f56ea2998b496a66e03e36e5b777dc60  libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
! d05810e315e844dd8ef2f987838a7069  libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
! cdeeaf068298e2a410d09fac087f6a14  libstdc++-v3/testsuite/18_support/nested_exception/79114.cc
! ee005c462c6bb77d42f5080693a3057e  libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
! c8360250b27c93cb434579cb236bfacf  libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
  ee6662bc29b9fe5c14888dd97e1cf3bc  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested-term.cc
! 14964ab4ca51a8fc3922b19781783c3c  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
! 0aca69d59e1ac8e2da3aa686cc0d918b  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
! c928488888eda816e615011cdcb4d90d  libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
! 09763c37f983ec40a4cc0093d7a4f890  libstdc++-v3/testsuite/18_support/new_aligned.cc
! 2d09e4cdefd06607002d0326a6ca6081  libstdc++-v3/testsuite/18_support/new_aligned_warn.cc
! 662dd5cb650a0a850bc5fe376b02bd76  libstdc++-v3/testsuite/18_support/new_delete_placement.cc
! 4029157ee3d03b1ba61e5d4a60e277cc  libstdc++-v3/testsuite/18_support/new_handler.cc
! 6a319e680b081fce4c520de674e32ee3  libstdc++-v3/testsuite/18_support/new_nothrow.cc
  49e7685f2fc05cdd1dd5d2a404340058  libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc
! e3d51c0ec766a987bfdde32fb16c811a  libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc
! 0277ffff4a7069a9ad290792be3467ca  libstdc++-v3/testsuite/18_support/numeric_limits/40856.cc
! 7f16120374b01ead698f1344e1feae95  libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc
! f70eeb5dac648875fa6f79c9a2503863  libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc
! e020b29ddb985017728dcbff4fd73401  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
! a83aa0466a504d9d45b93ed2ebd972b2  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
! 33ed38b4519635e92de7a3efdb556228  libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc
! 5d9bbf7959ae86c2591f462e90a42e83  libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc
! a15eb79a1a77452f03a5de89b30fcd6c  libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc
! 114aec908cdec4941d0e595df0055cc6  libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc
! 16795c55848b3cd29fd96839498f0b6d  libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc
! deb413efb2b04613ab8fe9246ecce62d  libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc
! 50ce12aa34d6b7b5d5d10f2b6ed50f39  libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
! a65fb1cab13bebeaddb29384b71a6290  libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
! cdf17697b5812b90c3e5a91d93af2dda  libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc
! fd2c0baaf4758444948231758dba36b1  libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc
! f0a41bc77dec5c96a5cc977196e3f808  libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc
! 31ae82ba17fc6fbb1a462000a0b32c2a  libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc
! 4027fbad69d54884e36f43fb03062373  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
! ea20be50f327c877349d64afcbe41efd  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
! a8f31b013ca1e086b4d8418a499e4d6f  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
! 3e3064ee776b5b04f73216ae25a114b3  libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
! 40ffb33fc98c80a042b8929c8ac147f8  libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
! 50d0b6553f7faed74d2b5c0b79da3e07  libstdc++-v3/testsuite/18_support/pthread_guard.cc
! f1bb93ef569ef034b72f156681fb73c7  libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
! 3e4e06abca3f6667cc6013867ba1ef9a  libstdc++-v3/testsuite/18_support/set_terminate.cc
! d60e3877ffa9addd4a00f6e451404b6e  libstdc++-v3/testsuite/18_support/set_unexpected.cc
! 7e0b317ff7196db5295a70524d8e24fd  libstdc++-v3/testsuite/18_support/source_location/1.cc
! 6e0a3d17d489a917c15aba097eb3d5e3  libstdc++-v3/testsuite/18_support/source_location/consteval.cc
! 2646f89eb5d02d99a7a35257d0ba763e  libstdc++-v3/testsuite/18_support/source_location/srcloc.h
! 81d3a3454c4ed6ce962c3cbb6cbc4dc7  libstdc++-v3/testsuite/18_support/source_location/version.cc
! 0972044c4f32e34ea6d59bab186ada40  libstdc++-v3/testsuite/18_support/terminate_handler.cc
  0ba910b833dd281cbb0614829d4c21d0  libstdc++-v3/testsuite/18_support/type_info/103240.cc
! 7ebcfb68075341c010e970da4d949e47  libstdc++-v3/testsuite/18_support/type_info/110572.cc
! 46be78f359662649893c1fa1bad41095  libstdc++-v3/testsuite/18_support/type_info/52562.cc
  9183aba89484917544d8e71ab7b95f72  libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
! d06826b7f4a21086751aa50f50f752fc  libstdc++-v3/testsuite/18_support/type_info/fundamental.cc
! 62adc85a01153ec617f5a0f38e519448  libstdc++-v3/testsuite/18_support/type_info/hash_code.cc
! 2c5b0e45ce8deeaa03a7eb8f9050d092  libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
! c7f4c43fefac85be376c808d2575a369  libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc
! 3a79bc516257e1fbcfc1fbb2db5e1710  libstdc++-v3/testsuite/18_support/unexpected_handler.cc
  e76078fa52225514dc89f9b1116c07ff  libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc
! 403924320cc925812a916bb9e3d96fd7  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
! 2f8b6ee72a26d34adead548d02463c98  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc
! f18e7cefbea6929c94bbd2d65539b270  libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc
  0a66d8bbf6fa03d3f76f4e2fdde4daf7  libstdc++-v3/testsuite/19_diagnostics/error_category/noexcept.cc
! 142d884e81c1203aac0ede1110840a99  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/equal.cc
! f5897a45c81923d805b6e5ff5a13315f  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/less.cc
! c2a9a6f57e2374ca35e3ff15856e5819  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/not_equal.cc
! d4d6fd6e2c4dd3c75ef8ea215bece650  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
! bafaff2a0448a9d24053e0a40a4cc2bd  libstdc++-v3/testsuite/19_diagnostics/error_category/system_category.cc
! 25ceafd7651ec34c0cdd5f53d98d4da1  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
! 07166070b38578a6b31c3c7fb96b0e85  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
  81f9725b7658563bbe88b3ba6c3c1852  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/lwg3629.cc
! 2ab2571b8cac386fdf04cc26a6872980  libstdc++-v3/testsuite/19_diagnostics/error_code/hash.cc
! 954e546a8c2ff065293a172c01b6232b  libstdc++-v3/testsuite/19_diagnostics/error_code/is_error_code_v.cc
! cdccea8af9cc0c466fb3be4849741724  libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
! 15e7e312e970f0f53fa862e937b050a0  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
! c2a5db40cf6a5f26dcc394515e09835d  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool_neg.cc
! a5311cdea0103520aea4cd211e916c1a  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
! 2035f3ec3713d094ac89bdc9261546c2  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/less.cc
! 426572cf367c69649cfc272884fff177  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
! 2c55a6ebf48d3717e21473853386c998  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
! 4807fc00428df2a4245de9e0bd172ac1  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/1.cc
! 40aa6816c4a482fccd2b3db64dd59576  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
  0c9bc80a7caee067ec088b66373dcca8  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/lwg3629.cc
! 11e2e0fff9b6db77fad12089d3697d69  libstdc++-v3/testsuite/19_diagnostics/error_condition/hash.cc
! 1170333ae359f55f7ff557a9d4eda035  libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
! c9e3c91e771b458f2cb95c5d753e13c1  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool.cc
! ddb4bd43aad790929ec7df732d464ee4  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool_neg.cc
! 78f94b1f7180594d004a958e06f29268  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/equal.cc
! 41733edec855b806d5f9af84b2c0aafd  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/less.cc
! 833a928bd32bf1700479d2c09d5bf4d2  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/not_equal.cc
! b993c63aa44508888d71e9c3e0d14c6a  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
! 3a5bc10b30dd3f9271d3712f71189634  libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
! 2c66677d3de8621d918e5cca45feeb18  libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
! fc983a5832136c395f79367b9ae13390  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
! ca810f42fe48b7c84e0bf80516ec67a4  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
! 231951e58fc01e7c15613cf4fbc0bee9  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc
! 7854cf45dae7fbe0afe099ba62d89005  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc
! 3d872899fb228bc488fc29036bc906f7  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc
! 163d9618cf6ef0d9d2f17cfc172f862f  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc
! b536c9afb85a1022cb103035fcd93a04  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc
! 9638e9cfb67573686ee977f4a75c7e7d  libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc
! ad0984eec50061c4936ee8f0e6774351  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc
! fe10001337efb3317a203f5de7cb4836  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc
! 072c061e7c6da4e7fcf5f4cfd735e668  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
! 844a0a7fb162c9de1b371138cddaacee  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
! caf636b4ba58f8cf8b65ce85f998759e  libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc
! 630ffbd2b7a17fe20de854167d931dcd  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc
! 831fb3ef7996018195e89821e90326e4  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc
! 4532c3db90095a70c3a0981e4c42da01  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
! 3e60781aac7d3dab410d20bf7e0876e4  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc
  e56e9135727cc8426f415b40cb46ef9b  libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
  4e0abb2d09dc9011ed8dcf8bc3aeeaf8  libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
  0876ae74cd8dc05ca60b7808458106df  libstdc++-v3/testsuite/19_diagnostics/stacktrace/hash.cc
  0e264fa07b2eb0eff7170d83609d9308  libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
! 96bdb34b4a173a220a807b90cb61d71e  libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
  64572ab5c0e7f09f34c7fec8a15fb5a0  libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
  91c0a9d6d7a5bc7671054e6d03f6e28a  libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
! d441ec734310bfb6cd3671f7acde592a  libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc
! 244b1d0f1aa75c2a55e9aed8b47c417a  libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
! 6308b58f8bb1325509ef89fc70fe4486  libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
! dc4e214d52dd3d78acedf6b947fe3373  libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc
  b8fd5b3cc781e4351fcba88c19391352  libstdc++-v3/testsuite/19_diagnostics/system_error/noexcept.cc
! 85c94d9a513ba59fbefb48e6e1b08322  libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc
! d024dd60b0c6acdc32ab773885ff39a1  libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc
! c61df7310131120b32eee1eb2255880a  libstdc++-v3/testsuite/19_diagnostics/system_error/what-3.cc
! aefcd1b11f64572c4ab22acb2d9d1556  libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
! 5c3444a26b9a17036e7e872a69ffc84e  libstdc++-v3/testsuite/19_diagnostics/system_error/what-big.cc
! 183eff7954f5ea0b4c844bb7dbe86079  libstdc++-v3/testsuite/20_util/add_const/requirements/alias_decl.cc
! 2f193d86954d154a95767279b905ab51  libstdc++-v3/testsuite/20_util/add_const/requirements/explicit_instantiation.cc
! 16cd2ddacaf627147b467116299d5463  libstdc++-v3/testsuite/20_util/add_const/value.cc
! 4003a98e89c743e340baf19ab478fa54  libstdc++-v3/testsuite/20_util/add_cv/requirements/alias_decl.cc
! 30c4137f15eba0059d7b80e767d9a811  libstdc++-v3/testsuite/20_util/add_cv/requirements/explicit_instantiation.cc
! 53a5e5d0c4ed283c77cce41cdc9476b2  libstdc++-v3/testsuite/20_util/add_cv/value.cc
! d1523b17b7fc4247bd80a46f4f03235f  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc
! 2ef9fdbc7f7e0f28491f96c4d1c7bc03  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/explicit_instantiation.cc
! f1f0e723e893199d80db10f1ad068699  libstdc++-v3/testsuite/20_util/add_lvalue_reference/value.cc
! 7f91a8e6f4246359cb74f1e807e92772  libstdc++-v3/testsuite/20_util/add_pointer/requirements/alias_decl.cc
! 9033e7253cd7da7d130da176b37813c5  libstdc++-v3/testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc
! 6dfd4fa85046b1fd6616164e483963cc  libstdc++-v3/testsuite/20_util/add_pointer/value.cc
! 6bab4ee514002f32b4894043fb2443df  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc
! 7af2739c236b3abf824683b451c75a11  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/explicit_instantiation.cc
! d84927890be4a4ea7c4b7056a1398078  libstdc++-v3/testsuite/20_util/add_rvalue_reference/value.cc
! f63f827d0d71fcc34f3800dad621f06f  libstdc++-v3/testsuite/20_util/add_volatile/requirements/alias_decl.cc
! 0f0008f12235dc9ad4151d5de292ff7f  libstdc++-v3/testsuite/20_util/add_volatile/requirements/explicit_instantiation.cc
! e804fc8faa57bef73a402de839f5eef0  libstdc++-v3/testsuite/20_util/add_volatile/value.cc
! 7b034c389a9eb3c1699176f7bb842a41  libstdc++-v3/testsuite/20_util/addressof/1.cc
! 96485b0930390db62f3631445fc5196b  libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc
! 835dc5e69bc0ecfae433ec8f4b40cb6e  libstdc++-v3/testsuite/20_util/addressof/requirements/explicit_instantiation.cc
! e2e9d1505257e8ed7e173de72de46261  libstdc++-v3/testsuite/20_util/align/1.cc
! 7f266774da069ddaecd426d3cd5df8bd  libstdc++-v3/testsuite/20_util/align/2.cc
! 1b02ed1a8af5ed98fb2848fabff71169  libstdc++-v3/testsuite/20_util/align/3.cc
! 99aed281de142fab3a13f0e9c0ecfc26  libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
! f04bbe651ff052531427b2a83cde361f  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc
! f0f494d466f95d6f3ddc00f640938446  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc
! 308112158f5c2ca2206c50377e212a84  libstdc++-v3/testsuite/20_util/aligned_storage/value.cc
! faafd79cce25ad2b3dd4ddbc40b0e05b  libstdc++-v3/testsuite/20_util/aligned_union/1.cc
! 0c42acb72238947f20db56bfcc382945  libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
! 2a5bca692bd4560c28a2ee0c136ad78e  libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc
! 1883f7e628180f630aa2f484dba5b1be  libstdc++-v3/testsuite/20_util/alignment_of/requirements/explicit_instantiation.cc
! d1193000441e65ec342d8cf004778af7  libstdc++-v3/testsuite/20_util/alignment_of/requirements/typedefs.cc
! d7d79e6c80fe44aa63340be2dd526a6f  libstdc++-v3/testsuite/20_util/alignment_of/value.cc
! f22afd46cc166493907d23f907fbb1d6  libstdc++-v3/testsuite/20_util/allocator/1.cc
! 4c8e34641b1c9bf4b389fc3dcc97c094  libstdc++-v3/testsuite/20_util/allocator/10378.cc
  32cd2e02d33e0de43ae3997481aa26d3  libstdc++-v3/testsuite/20_util/allocator/105975.cc
! 48683feee7818e6c72ecda09c77a17a7  libstdc++-v3/testsuite/20_util/allocator/14176.cc
! 91260fad647f9c78624c01103e88a2dc  libstdc++-v3/testsuite/20_util/allocator/33807.cc
  ae49058091ac2f31814de6246e958d6a  libstdc++-v3/testsuite/20_util/allocator/64135.cc
! fb7fcf8a1aea41ae7c75cf3365570a02  libstdc++-v3/testsuite/20_util/allocator/8230.cc
! 490035c1bc51b23b89b99a1849eb923f  libstdc++-v3/testsuite/20_util/allocator/89510.cc
! 9d8fd28144ff10ac90beb3fba4211b5e  libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc
! c645ab7a91ad3ea7f3d05fa51f71da72  libstdc++-v3/testsuite/20_util/allocator/overaligned.cc
! 24ef0ad73d422ddae3f7cb8193180a7b  libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
! 817775463d47d193f2fcdccfa4338c97  libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
! edd256ad9310906c2d51eb8584c07672  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
! 6cfc7f328d3211f2bdd4599b3004838a  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
! 33cb2d6fc05304f99226004a0899667c  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! 656675eb4fe4abfcd6fc3beb6a42ed94  libstdc++-v3/testsuite/20_util/allocator/void.cc
! 12c01cd79e66700ef712b23fc93482f0  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
! 46be2eaeeac01371e9fe24d81e996eb0  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
! a768e5494344491bd05c3b81506c8798  libstdc++-v3/testsuite/20_util/allocator_traits/members/108619.cc
! 4ac8a2af6d642dcecf45f0bd1bf2868b  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
! 08f2c937a1a5db2657a79729f9c08296  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
! 22d35c29ce9ef8a217ec63f6d8efe2a6  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc
! 938b989c94336f1d3fca6f91cb9d5c65  libstdc++-v3/testsuite/20_util/allocator_traits/members/construct.cc
! 97a9b0da6e52573281707014948dfdca  libstdc++-v3/testsuite/20_util/allocator_traits/members/destroy.cc
! 12616b451a7379a80d5ad1bd9c5560c2  libstdc++-v3/testsuite/20_util/allocator_traits/members/is_always_equal.cc
! 6e692f47c48152b65619dfeb2aca24a4  libstdc++-v3/testsuite/20_util/allocator_traits/members/max_size.cc
! 7724dda031e2762b680b096ca94eccbe  libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc
! 68d030184b8becd7b08fdf5c286c39dd  libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc
! c03fb81c0f3df06c4101c282cfdde986  libstdc++-v3/testsuite/20_util/allocator_traits/members/select.cc
! 84979ca342e4c911291bc3483f8b45a5  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
  bef0ecc9b87819710fa15591c4f27204  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/rebind_neg.cc
! 25d98ca35a5c19aff68cd770aad8c358  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc
! c3af7c5e99c8ba436c3b9caeaf96d25c  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc
  53d95c7e7934ce41b96d0a86033b6a99  libstdc++-v3/testsuite/20_util/any/102894.cc
! 22bce6993a60dfabe6347e9ffc50dc4f  libstdc++-v3/testsuite/20_util/any/assign/1.cc
! f71027a7c90646ec67cca45a0c5e057c  libstdc++-v3/testsuite/20_util/any/assign/2.cc
! b0055939f016c15e2113fbcff7fec473  libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
! ac06b4d39692fdbbfe972b2616c52537  libstdc++-v3/testsuite/20_util/any/assign/emplace.cc
! 338cda64a6532a00d28453e73b529df4  libstdc++-v3/testsuite/20_util/any/assign/exception.cc
! b5f1068ad7ecf0e81e5390b306e83c12  libstdc++-v3/testsuite/20_util/any/assign/self.cc
! 47eabe3695b58830d3693e551149abdb  libstdc++-v3/testsuite/20_util/any/cons/1.cc
  097d518046e23537949952c936ddfa1c  libstdc++-v3/testsuite/20_util/any/cons/101034.cc
  335e5502fad2ac140247bdc170504f8f  libstdc++-v3/testsuite/20_util/any/cons/104242.cc
! 8c855ab59128f04b67dae10c3517eca1  libstdc++-v3/testsuite/20_util/any/cons/2.cc
! 147491ee8632eb288a49208bef910596  libstdc++-v3/testsuite/20_util/any/cons/90415.cc
! 2fc9904e39c4a32afee7e842ebcef610  libstdc++-v3/testsuite/20_util/any/cons/92156.cc
! eda36ec39a3ddadcfe8e8ab16caefc48  libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
! 37966ada1e965b9e74b987245af08e4e  libstdc++-v3/testsuite/20_util/any/cons/aligned.cc
! 03fb1b5ac21e529d5d19fc8492023a56  libstdc++-v3/testsuite/20_util/any/cons/explicit.cc
! 2beadd2a57a7da9892bc1f2177fd5711  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
! 6ed0ab2c998ec4bc1bb98e96c1765b52  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
! a7c7d3cf31b77ca51ce57296221adf6d  libstdc++-v3/testsuite/20_util/any/layout.cc
! ce98d5d9b12fec73dbcbd896bed4e992  libstdc++-v3/testsuite/20_util/any/make_any.cc
! 510b58670ba5f173bf535ce0b6e3a448  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
! f286040b251865c06a7b926aed7002b2  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
! 6543b2cec5e0fb057721dff92b954218  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
! a576256da1fd0145043529eaf7e62e7d  libstdc++-v3/testsuite/20_util/any/misc/lwg3305.cc
! 64524fd415c3427160fee1e36c356aec  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
! cb5c403d0c86166452ee580fe96d066a  libstdc++-v3/testsuite/20_util/any/modifiers/1.cc
! dafbce24ef5a059bc99a5a89b61b4144  libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc
! ee31008de33ed630994d3936e1d9329a  libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
! 6641b02b5ec4a2dfb2e756ccc2881dce  libstdc++-v3/testsuite/20_util/any/observers/type.cc
! d78945131be774fbe4927d40aa36c9fa  libstdc++-v3/testsuite/20_util/any/requirements.cc
! 1d53f11dc31064132081ba8119c15348  libstdc++-v3/testsuite/20_util/any/typedefs.cc
! f547f947285cace5a3cfcbb3a4375226  libstdc++-v3/testsuite/20_util/as_const/1.cc
! 94151682f8be5233e3b22f4470be519b  libstdc++-v3/testsuite/20_util/as_const/rvalue_neg.cc
! d60315c3570f08b5cde15a1121fc5993  libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
! 917c1bd0745967eba96b7821465ae6dc  libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
! a0b67b0cf9638226fb8b51868fba6252  libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
! 80703bb0eadc29e8f3ff5a84e0ab3065  libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
! 78dba2e1852166ab4b811895305af950  libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
! 0f6b840c6fea9a221a3bcce84232e947  libstdc++-v3/testsuite/20_util/auto_ptr/2.cc
! ad80a9736fcd0ba0336c490aa7159ff5  libstdc++-v3/testsuite/20_util/auto_ptr/3.cc
! 5229156dd937efc5d6b8b2fecf6467fe  libstdc++-v3/testsuite/20_util/auto_ptr/3946.cc
! 258ee894804f9930ff18b0d46fbf4ccf  libstdc++-v3/testsuite/20_util/auto_ptr/4.cc
! 0909b50efa3f5e758d8b4f28806da6a5  libstdc++-v3/testsuite/20_util/auto_ptr/5.cc
! ed0790d267b1388e5a8c7839a6eed85e  libstdc++-v3/testsuite/20_util/auto_ptr/6.cc
! 43ff3b82dd1a0d968807fe09d4a15d5a  libstdc++-v3/testsuite/20_util/auto_ptr/7.cc
! a533e8504bf7bb167ad3a3018e7451be  libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
! ce71bfb791b1ab47d14d99ef8b68643f  libstdc++-v3/testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc
! 9f4499272d49421152265d9681560752  libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc
! fe8d42d588f1f9103d54bdd7c86fb1a0  libstdc++-v3/testsuite/20_util/bad_function_call/what.cc
! 02a42fde888bdfd77499c07a6c123fcb  libstdc++-v3/testsuite/20_util/bind/35569.cc
! 5d0bf2619397c7c24caca969532024bf  libstdc++-v3/testsuite/20_util/bind/38889.cc
! cdab5e201dc6718ebb6f9b5df5610494  libstdc++-v3/testsuite/20_util/bind/42593.cc
! 4ac04649b62f3d8519680e1935b0aaab  libstdc++-v3/testsuite/20_util/bind/45924.cc
! 098aacc9dc111aeb4cc1efed5084219a  libstdc++-v3/testsuite/20_util/bind/48698.cc
! 11de6c6a55bc22b589ca7d439139fbd3  libstdc++-v3/testsuite/20_util/bind/49058_1.cc
! 49e93e8c27a05fcb54a97c727ca029dc  libstdc++-v3/testsuite/20_util/bind/49058_2.cc
! 1d6d9ac4cfe0de483ad62029bfd01d97  libstdc++-v3/testsuite/20_util/bind/57899.cc
! 89d3120d9d7c44b7a1154cf495589327  libstdc++-v3/testsuite/20_util/bind/60497.cc
! 1abb9ee33a2b6bfb5cc7c75e4482283e  libstdc++-v3/testsuite/20_util/bind/68912.cc
! 7b3a3a8913a667244b224725ff321522  libstdc++-v3/testsuite/20_util/bind/79798.cc
! 7f527ce507278f94c530f093fc6ecdc3  libstdc++-v3/testsuite/20_util/bind/83427.cc
! 8b9b8bbfbf5c02e965426ed4b8e002bb  libstdc++-v3/testsuite/20_util/bind/91371.cc
! c5db106f73b52a878135d322fbbbb39f  libstdc++-v3/testsuite/20_util/bind/all_bound.cc
! 0fea9eed3c13c478a31d72ea6b052b5e  libstdc++-v3/testsuite/20_util/bind/constexpr.cc
! dc811926d3a0cc8410b37f38fd276e62  libstdc++-v3/testsuite/20_util/bind/conv_result.cc
! 7fdf3835a346e7ef9a3a8308d819b141  libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
! 3296aff77062491cdbb021ced8c9691a  libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
! eb24581e6901c23d8bdbfca254833195  libstdc++-v3/testsuite/20_util/bind/cv_quals_3.cc
! 7108e4b81832823bce96a6c579a9a3c4  libstdc++-v3/testsuite/20_util/bind/dangling_ref.cc
! 499a492e07678a83b4feca56bc7dec38  libstdc++-v3/testsuite/20_util/bind/is_placeholder_v.cc
! a8a56b45372ab9a92235b9c43274978f  libstdc++-v3/testsuite/20_util/bind/move.cc
! 113518e192b41e33301c903e8048d393  libstdc++-v3/testsuite/20_util/bind/nested.cc
! 0d5fcd12cb9b282b50865cadeb899ccd  libstdc++-v3/testsuite/20_util/bind/placeholders.cc
! 4944bb5ac21efc6649d385212a18a01f  libstdc++-v3/testsuite/20_util/bind/ref.cc
! edd97b36a8e740f4541e76b68c7983bf  libstdc++-v3/testsuite/20_util/bind/ref2.cc
! 16dbffbdcc11058cd0ce84c48c349016  libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
! 874167315e9615b2a4f2f567aa4c4b70  libstdc++-v3/testsuite/20_util/bind/refqual.cc
! 52e3e554b856e7eff5c1d25d3b870473  libstdc++-v3/testsuite/20_util/bind/socket.cc
  c0edeeaaf9a022df2a3ca636e28ac7f2  libstdc++-v3/testsuite/20_util/bitset/107037.cc
! 67af3181860f8c6b9b51e2c6a208f4c1  libstdc++-v3/testsuite/20_util/bitset/115098.cc
! 37b7467553508fb063e94fc77528c4a4  libstdc++-v3/testsuite/20_util/bitset/18604.cc
! b23338c1f6138984551479ca9bcd7963  libstdc++-v3/testsuite/20_util/bitset/45713.cc
  0be3c1005581d429a9faed927cfeb925  libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
! 43679a9f05c0485df0a2a3cfd30ef972  libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc
! 2ea21afce67de56cf0383869e4d48f60  libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc
! 0fabb05eeefcd5bd82fc4b42cfcb0d49  libstdc++-v3/testsuite/20_util/bitset/access/to_ullong.cc
! 48eb6defba9905258ff301e196c1d31c  libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc
! 9309c445c805dadd5e0ce8b4784b0129  libstdc++-v3/testsuite/20_util/bitset/cons/1.cc
! 4e71cc23d9d08f39edd1b405623e2ffb  libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc
! 309c953ae5d00367a068ed165be1055d  libstdc++-v3/testsuite/20_util/bitset/cons/2.cc
! 6f567fd09672d511777113e4729ddd5e  libstdc++-v3/testsuite/20_util/bitset/cons/3.cc
! fdb870f77bb25b869888d7bd7b426bb3  libstdc++-v3/testsuite/20_util/bitset/cons/38244.cc
! aec695dfa67c199a3b4539987fccb573  libstdc++-v3/testsuite/20_util/bitset/cons/50268.cc
! 25440aa87f8321d1d77897042351c05d  libstdc++-v3/testsuite/20_util/bitset/cons/6282.cc
! ed93021866f5024b5bede5df5a13a983  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr.cc
  6abbb67385d01ef586af796804e437be  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
! 2f909320aab04ee1c6cec89843920dac  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-1.cc
! 409e0135eb2eb16fce312c6099f4dced  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc
! 01edf39421083072f99f916088684dfa  libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc
  4739712fd7e238ea3f424a1b9a749ded  libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
! 68995ecb93baf7833c60d27ef2cd9ab1  libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc
! d2faecc969e0eab765ee7eefdca7d973  libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc
  ae7a35e7dc58142db1f519ca7a92c236  libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
! 96ceab4e5af738f4b5444d76db9909b8  libstdc++-v3/testsuite/20_util/bitset/hash/1.cc
! 5bd4214cf1a15b69c9d903c030ef58ef  libstdc++-v3/testsuite/20_util/bitset/io/input.cc
! 275501b13f242ca7308477a62ec6d194  libstdc++-v3/testsuite/20_util/bitset/observers/6124.cc
! 43bd1dc0a0157baddadf8df0681a93ef  libstdc++-v3/testsuite/20_util/bitset/observers/all.cc
! 07628362135f9b47e7478dec997ea06c  libstdc++-v3/testsuite/20_util/bitset/observers/test.cc
! a2ff75289fec87ef36b69b693fa9ec46  libstdc++-v3/testsuite/20_util/bitset/operations/1.cc
! c76dc6c473da11ed42594897edc27b51  libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc
! e7392363465cc2399fa14f2d17a95c35  libstdc++-v3/testsuite/20_util/bitset/operations/2.cc
! 929de9626db46ce5227311e975818ffd  libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
! 36618c05eca5a0ee204cc2a7b6aee287  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr-2.cc
! a62b6f7d212c9ec4568fb1cc9201f51b  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr.cc
  cd35f526f71cd243c4965f834df24c89  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
! 35d711f468c166f0b01bcfb85aa64d8d  libstdc++-v3/testsuite/20_util/bitset/requirements/constexpr_functions.cc
! 35cccd09f729e5061452ae59df864776  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc
! 9616a5b0f8b3c41a93a961181a10bee9  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc
  eef2204d57edb98136c3ffd5d0879a97  libstdc++-v3/testsuite/20_util/bitset/version.cc
! c8f50ba04b6971c9baf46f1890fc61ef  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
  d9e3a835b6facefd71de42c8fe38c7ed  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
! b231fe644af8f6c7b8e8db865b0335e8  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
! e874c307ac6cb1be4ebab7d34d4673c1  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
! 3ec71232a9e140f7524d6dbc2af6bd6a  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
! abc10a5e07fe56f3435d37edb62c49c7  libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc
! d62b7ad741a3c8cdcc07b8f8b38ff5cf  libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc
! 178c96608b7c4d01d732730e87e47019  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc
! d35e868bf5a0eaf909b396e725e0450e  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc
! a3b9ca97435d798fd3f8c7bb4032ebd9  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc
! 820e1c32e4f0393b78feddae47dca38d  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc
! 414f2d4aa5542289673f653f70daf19e  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
! 7c993d1a79f9898222dd51d8ce772ec0  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
! d3dd0426932e9c536f4b38fbebb59b84  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 8e23784a64bbd4264903dd6f0e5d6ca3  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
! 4f2ff053f2863571ccf7c9b5578267db  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
! f22d69159e77ab60071fd7d9652578da  libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc
! 8415773810be0bb1ccc82a73954a96ec  libstdc++-v3/testsuite/20_util/declval/requirements/1.cc
! c9ae45c4ccb2ad75cfbd460ab4222b4e  libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
! a9c18d48ec583488c95ac905b89802ce  libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
! d7822fa130031d56fae2abfdeeed11cf  libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
! 93dd57a8841c7326d590daae0288315a  libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
  0623727991b764e8fe5d0e737d63679e  libstdc++-v3/testsuite/20_util/duration/114244.cc
! dde2a285a6f1923642bd9de285fd87d8  libstdc++-v3/testsuite/20_util/duration/arithmetic/1.cc
! 1451175c522eeb3ceb37fdcf4650c61e  libstdc++-v3/testsuite/20_util/duration/arithmetic/2.cc
! 32ccdc2960db80e0641bf8ea6fcb63fa  libstdc++-v3/testsuite/20_util/duration/arithmetic/58850.cc
! 2b3394313d77e6f8a1a473ecf13d1364  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr.cc
! 4eff9a7eaa51087c9ece69578288c518  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc
! 50c04f8741b7e6f6cf72a997543a4411  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr2020.cc
! 336f92621392b8493e821ed579492785  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr3050.cc
! e3ae8db7be69292bb868f7a775da5f96  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-1.cc
! 063a91ee100eb801e3e225ee50cfad98  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-2.cc
  5bfbf049bfde3e1b9726b779cd22ff78  libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
! e838eb3660e6879d49ba6b49b1550405  libstdc++-v3/testsuite/20_util/duration/comparison_operators/1.cc
! e64b880d1b6d641a5dbff60e88b76ae3  libstdc++-v3/testsuite/20_util/duration/comparison_operators/constexpr.cc
! 5825b78d6ee4c5da3d8691c883fffb9d  libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
! 64c721b113ef1ab375d71943ece7b75f  libstdc++-v3/testsuite/20_util/duration/cons/1.cc
! 9ccd3a1e70d9f96f61dff978b8c2f0db  libstdc++-v3/testsuite/20_util/duration/cons/1_neg.cc
! d3d5356cf17bdb99474f18870cdd0318  libstdc++-v3/testsuite/20_util/duration/cons/2.cc
! 1add59fbcdc094c3f5c413652939e278  libstdc++-v3/testsuite/20_util/duration/cons/54025.cc
! 3be258f465b702230a4312179816f88e  libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
! c48b716bd057277baf9f02d09f7f7d68  libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc
! d7ad26e90ba10c6ea74caa1adf157f4f  libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc
! bac08585f7f9163dc273a6d043b71a17  libstdc++-v3/testsuite/20_util/duration/cons/dr3050.cc
! de34f29f1b5696f3e24a14be8b78259e  libstdc++-v3/testsuite/20_util/duration/cons/dr974_neg.cc
! 93cf20e0b55060e0dcd05410b753e29e  libstdc++-v3/testsuite/20_util/duration/io.cc
! 1613349c492474a2a8b5b56152b12345  libstdc++-v3/testsuite/20_util/duration/literals/61166.cc
! be9eeae7f88865def6489c1113824d53  libstdc++-v3/testsuite/20_util/duration/literals/65499.cc
! 9dd3351f1bf1eb22dcd96cd1190f9461  libstdc++-v3/testsuite/20_util/duration/literals/84671.cc
  f11b5a7d64db419bf2305c0f433c638b  libstdc++-v3/testsuite/20_util/duration/literals/ns_detail.cc
! c1f16c92ad73272c4ef750d14feb27b8  libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
! f9f5ae102656d4693b682e0ec626bbdd  libstdc++-v3/testsuite/20_util/duration/literals/types.cc
! da550d2b9d64ef1b8e3b14030a526a05  libstdc++-v3/testsuite/20_util/duration/literals/values.cc
! 7a9869b4f3cea4fd25ddbf9c478aba8a  libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
! 45ebda51d0cc19feb07891259f14334c  libstdc++-v3/testsuite/20_util/duration/requirements/explicit_instantiation.cc
! 9596b87e765bc5e1a4684e9a1d4bc304  libstdc++-v3/testsuite/20_util/duration/requirements/noexcept.cc
! 745f78f308e195b924efc046ca65286c  libstdc++-v3/testsuite/20_util/duration/requirements/reduced_period.cc
! 4f7112a8bd86184304a32f1a014e7b64  libstdc++-v3/testsuite/20_util/duration/requirements/sfinae_friendly_1.cc
! 72f0a8d716e43fb0471052d32c5b0d35  libstdc++-v3/testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc
! e0d828ce01c2a3dfb1bb91e969cde2db  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
! b3a5a64c5d80bfb788c1348cff911fc2  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
! 1bc1d0ed682a00451ca0eb909b1c8803  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
! b6745b00a40cc9b329a7b916509460c9  libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
! 246eacb5943961c930023dc104a69dcc  libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc
! 93cee88227b2c3237d88eec3621d22a9  libstdc++-v3/testsuite/20_util/duration_cast/rounding_c++11.cc
! 615497193248a79570076ec458d5e1c2  libstdc++-v3/testsuite/20_util/enable_if/requirements/alias_decl.cc
! b731f032a504a4afc18025723ba06fd5  libstdc++-v3/testsuite/20_util/enable_if/requirements/explicit_instantiation.cc
! 405a86ae68ff00806c02761c507f24da  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
! e55ecfa25dbf9ed58859722e9549639b  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
! 74fd0f1daf2f8e2f24f8c69340153cca  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
! 9c5ea4bd55f6d0dfadca405702449ade  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
! cfecb83f8e5e76ff0c259fb2251b2059  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
! bcd3992468cd4934d7b9ae2635355dba  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
! 628fc5119bcacadc2e2da8f7ffc8d03c  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
! 1f763af7bc4b823e7f4b928a6f9b707c  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc
! 76e228637f32b20ee7cc6805083530e6  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc
! 1bc39176c255e0409732f18032f7241a  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc
! a2db7fe0d3b99b5764f20de96ad52e76  libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc
! 50f9029effa9d09d5c7816c953592560  libstdc++-v3/testsuite/20_util/exchange/1.cc
! beb333f9bd7f4e30c7efbab779bc22d1  libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
  54ac023f0845d5c919380e1309b7fb5b  libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
  af8a06346aa0e3af134afc89141593df  libstdc++-v3/testsuite/20_util/expected/assign.cc
! e8a5d4c4f0e447896dac59a5a84ec9c0  libstdc++-v3/testsuite/20_util/expected/bad.cc
  e860269ac09079a27b177fc3da2839e7  libstdc++-v3/testsuite/20_util/expected/cons.cc
  56411bbfdf1df328a5b305222e4527ed  libstdc++-v3/testsuite/20_util/expected/equality.cc
+ 8bcfbe2481e180a50db20c6b10f2d6a0  libstdc++-v3/testsuite/20_util/expected/equality_constrained.cc
  f56847054b7eea85a598a3299216a456  libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
+ b6846002a3a56bb10b1621e1792c246a  libstdc++-v3/testsuite/20_util/expected/lwg3836.cc
+ 3f3a954cb96422e14f241df35baee8ad  libstdc++-v3/testsuite/20_util/expected/lwg3843.cc
  2fe263333a538ddd2a8cd7953725ff52  libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
+ 72b0fd75fcf0b218f79d93c61319bb5d  libstdc++-v3/testsuite/20_util/expected/lwg3886.cc
  8717f284befd8d0ee8fe1e50dcc6a7a7  libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
  4824cecd15088232e3348b8bad95b2ce  libstdc++-v3/testsuite/20_util/expected/monadic.cc
  4bfafe03465669c57c9cf2717bc9b00e  libstdc++-v3/testsuite/20_util/expected/observers.cc
*************** f56847054b7eea85a598a3299216a456  libstd
*** 125311,126167 ****
  44dfca2fb3ccdb8f3ea97514568bab14  libstdc++-v3/testsuite/20_util/expected/synopsis.cc
  4b84f057fc22805edcab3b394acb5a2f  libstdc++-v3/testsuite/20_util/expected/unexpected.cc
  841bab6e9626640a4289d6b2192a63e4  libstdc++-v3/testsuite/20_util/expected/version.cc
! 480579eec9d5658f9ba8f55bb324534e  libstdc++-v3/testsuite/20_util/extent/requirements/explicit_instantiation.cc
! 99d5be32bfe713656e8b681c48caa995  libstdc++-v3/testsuite/20_util/extent/requirements/typedefs.cc
! 15ee9bf44a238a47a929b86f06204e38  libstdc++-v3/testsuite/20_util/extent/value.cc
! a98e290710370c50589a249621012d9b  libstdc++-v3/testsuite/20_util/forward/1.cc
! d28d6099671946f0f0a8b485dab40831  libstdc++-v3/testsuite/20_util/forward/1_neg.cc
! 8272533c9234859461190b6dd2a67758  libstdc++-v3/testsuite/20_util/forward/a.cc
! 929ad742a0eaa5cd63b255e70eecd889  libstdc++-v3/testsuite/20_util/forward/b.cc
! 69b710153273277efc410b8a02c992c7  libstdc++-v3/testsuite/20_util/forward/c_neg.cc
! e175cea1461ae8487d41fcf1809c7af1  libstdc++-v3/testsuite/20_util/forward/d.cc
! ba0119d39d907fd3d4bc40685ba2d2d9  libstdc++-v3/testsuite/20_util/forward/e.cc
! 0aedcc861f750594dc61daf911ea7afd  libstdc++-v3/testsuite/20_util/forward/f_neg.cc
! 3fe5ac7af71f072b39fae5fa9b05c6ea  libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc
  ed57db4c99b7547ef1d1f77e0b4a5ecf  libstdc++-v3/testsuite/20_util/forward_like/1.cc
! 44e410459df619a3e753eaa4ff3f0517  libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
  a9e1ceee03428d699bf2f060477f330e  libstdc++-v3/testsuite/20_util/forward_like/version.cc
! c77f4d550a27b296f21321b9d5c24ab9  libstdc++-v3/testsuite/20_util/from_chars/1.cc
! 22474c1bc70dc7b7dbfb64c7327e78b7  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
! c72b0838cd78a44170f5c60d10785d15  libstdc++-v3/testsuite/20_util/from_chars/2.cc
! d21c2e426b56d1e511c5151a7aa7930e  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! 66b4e51c15590fe1466d6f94906a3f3f  libstdc++-v3/testsuite/20_util/from_chars/4.cc
! 7ce88b5edd24c61ef192468503f69d49  libstdc++-v3/testsuite/20_util/from_chars/5.cc
! ea3d5cee138c38efc8791b9aa649c4ad  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  33cb1fba3bfa8508f23e78bc210ae25d  libstdc++-v3/testsuite/20_util/from_chars/7.cc
! 5adacab3ebedc2c262e4777253b798af  libstdc++-v3/testsuite/20_util/from_chars/8.cc
! 6ae861c02a34098f1ee33f3182ad8c36  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
  af058ebcd1eb8155671cc66ccffeabb1  libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
  6772f8cd93ed8ce0eff86720c075a1f3  libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
! cd99fcf1ba4b3d2c9950f81c4b36368b  libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
! 4da209b7cc0efaccb8ec6fa9e04afef7  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
  9d285bb541483e8561f9c95180031bde  libstdc++-v3/testsuite/20_util/from_chars/result.cc
! 35024c8a2ca0fa6ada8da8c469d91b87  libstdc++-v3/testsuite/20_util/function/1.cc
! 68f2f116c11ed8ba7385404bee556ca1  libstdc++-v3/testsuite/20_util/function/10.cc
! b9ec359efb2e6994aacb69e64e1ad198  libstdc++-v3/testsuite/20_util/function/2.cc
! 13491f8f029dfdd66310a86c01b9f198  libstdc++-v3/testsuite/20_util/function/3.cc
! 8954b0ecdca8584467449580ce5c009f  libstdc++-v3/testsuite/20_util/function/4.cc
! ebec7769da844c5981255ef31193b8e4  libstdc++-v3/testsuite/20_util/function/43397.cc
! bbece0463ba8ce5f89a5baaf212254b5  libstdc++-v3/testsuite/20_util/function/48541.cc
! 6c00076dae644531f8e178854223591c  libstdc++-v3/testsuite/20_util/function/5.cc
! 18dd9ada97e698a577fa67653cf8e48e  libstdc++-v3/testsuite/20_util/function/58569.cc
! b56d9d134bdff0100c049ec1e61c84b3  libstdc++-v3/testsuite/20_util/function/6.cc
! 18e4ceab62074ca59214a60986ecc64e  libstdc++-v3/testsuite/20_util/function/60594.cc
! 1fdf638f49698571856d31a05de6c7b4  libstdc++-v3/testsuite/20_util/function/63840.cc
! 2c3b0b08facd9a74d3c7f14bbbfda3bb  libstdc++-v3/testsuite/20_util/function/65760.cc
! 2aab0627a0dc63fbdc99c01c48b3c5db  libstdc++-v3/testsuite/20_util/function/68995.cc
! d737b5b14859d8815888f9d20ffe6eb6  libstdc++-v3/testsuite/20_util/function/69222.cc
! bddbb7be2378eb8626192bffd40abb6a  libstdc++-v3/testsuite/20_util/function/7.cc
! 60f7b3d50fe8043087fb484086fb4cd0  libstdc++-v3/testsuite/20_util/function/77322.cc
! 18be6c57b0720d803a489f7b6aa09b35  libstdc++-v3/testsuite/20_util/function/8.cc
! 1c23be8e77871ba8a221774ba4caa58e  libstdc++-v3/testsuite/20_util/function/9.cc
! 6b5f31ad6ec8d825ff50f3e5b8166bcf  libstdc++-v3/testsuite/20_util/function/91456.cc
! 16b2bb58ef96f4e4c2371ec18faaf76e  libstdc++-v3/testsuite/20_util/function/assign/move.cc
! 09826da860794ee54a3d3694e743a079  libstdc++-v3/testsuite/20_util/function/assign/move_target.cc
! db0a805216c03f5a0a0db91705a543a1  libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc
! 598507498ac2d9a771f58691a2450753  libstdc++-v3/testsuite/20_util/function/cons/55320.cc
! 82e211f19ed1a01a982a4282d0559136  libstdc++-v3/testsuite/20_util/function/cons/57465.cc
  ca608fcc60b0b1c480c8cea18bc2d21e  libstdc++-v3/testsuite/20_util/function/cons/70692.cc
! 36ab35c19f1c162fe8810f0511535d8d  libstdc++-v3/testsuite/20_util/function/cons/72820.cc
! 3b7c473d093933125998cbe7248db125  libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
! 71bb895a176f7f859109376c80a523de  libstdc++-v3/testsuite/20_util/function/cons/callable.cc
! e290e9032ab3b9f123d79fab553406eb  libstdc++-v3/testsuite/20_util/function/cons/deduction.cc
  97c5266cfd231b50e676670e3fa70cf1  libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
  4b7e7e2f146d54b30a53e58d7a111cf0  libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc
! ff39bc4b7fabd6b2ffb8e93737d79731  libstdc++-v3/testsuite/20_util/function/cons/move.cc
! 1ddcc460032314ba4bd289559a45d08f  libstdc++-v3/testsuite/20_util/function/cons/move_target.cc
  d2a67a46055d71f856a2cdceb8f3c448  libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc
! 188d151a7a9da9546705504cc1661a30  libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc
! 5cacc2c06fe4115f749bf304aeb46ef8  libstdc++-v3/testsuite/20_util/function/cons/refqual.cc
! c8ff7bf363fa148a47f9014e165cc954  libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc
! 9200780ffbc29455e12593a5a14c8870  libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc
! 6901e966dd247aebda951765bcf939f6  libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc
! a42c7515fce970673504b4e6027d8f6e  libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc
! 1deb62444b98a9e3507764dda2993241  libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc
! 8be6513907a8b34c8a31d7970929ec9f  libstdc++-v3/testsuite/20_util/function_objects/83607.cc
! bb6b023ced7f18904919086598c32b14  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
  ee958473de98a12b182d429e35568836  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
! 6d2bb406a4cb431a00f5222070ad60c1  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
  b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
  93d1fc75e07731fda7dccf37968708d4  libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
! 24ffd5ea13e7fd711197fe5e12a77aaa  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
! 10bc9aeb0a694ea5fe9ac99fda54b837  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
! c56355cb5e2de33f96c86bf4db6c6be2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! 1a6302520e96ff342809b29337979ea1  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
! 863de17aa7ae07d75a900ee12560d23a  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
! 5926b29b8b7edffe0168ef1f8cb5e292  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
! 1dfa8ecea1f9f2d79177cc6bcdd7be2b  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
! a653a483d30999c2e7af07fe033af406  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
! 72c5169eb585d2cd1cdd098c058f58b8  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
! 0c0d37c2d6ac0fbb6d95ee39fe0d57c0  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
! 0f2bf1ce5f2c9bc988e24eb6f98215e6  libstdc++-v3/testsuite/20_util/function_objects/dr660.cc
! 36dc1a0d6d59083420743b475a46e408  libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
! 2a4094c7ea43779ffd6f7fcd388e7eba  libstdc++-v3/testsuite/20_util/function_objects/invoke/1.cc
! 97a097d20070020744df3867d0cbe34c  libstdc++-v3/testsuite/20_util/function_objects/invoke/2.cc
! c7cf26be7baaf4e5ffc1b97a5a87a762  libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc
  16f1c3ae8b224a6acd214a0bbbfad3ca  libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
! 939ccbddfecb983256fd3a88cc325d84  libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
! 310d97f9305877651e4090760f4d2951  libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
  db4aad8eee98e71f78ee6303282bff30  libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
! 30fd8514344593d417f545b29b2f3622  libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
  51a8225eb82549eba5a4e7ef51a785c3  libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc
! 6139c75820a481f4b1db17267224b609  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55463.cc
! 9343440c31a5e0a8af9f162f589cde72  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55908.cc
! e2ec08181990f45a7521f2d1d4e54204  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/68982.cc
! ca40d53d1be664f0b30ff2c93e3b798a  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc
! 139c2fad8087539a5fbbbf657430f4ee  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc
! 95bf2b6349022108b6910dbdeb63a03c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
! 810942a92810d7b882e26dff8edf4638  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/forward.cc
! 6526acc74ec9f71b452ac55540d3e63c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/refqual.cc
! 797f30be97c5200935ce45821606382b  libstdc++-v3/testsuite/20_util/function_objects/not_fn/1.cc
  aa8d69634a029bc703f7e9108347b384  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
! 92a13aadc81d220f79a8762cc2c90f0f  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
! 63091370f2af32e972f8ed8691d947c6  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 32374dda124f81bfd953c394b0bc34b3  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
! 0fd5dede5e6228556e50b25e45a03d22  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
! 12e6b84ec756d28c06fcdb8021cc5cd0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
! 12f1619d44656db0e736312e6dbf1ca7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
! 86ecd84a838f2bf97a7a28d01b4385ee  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
! b4b1790db72464fd01739ba70a04205e  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
! 77f577c577290c978b63ff6c47b5957a  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
! 722266a4031bc8550fa906c020b76e84  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! b001ef7d4b3eedb12113a0f6637bcc06  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
! d4226353c62f52abf6adf56ccdaf0429  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
! 7ed8a7013a7e17762a8fa97e8f755289  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
! 4b2fd7cb3c86cb8bc514a7f7568c015e  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/explicit_instantiation.cc
! 965b2f1d9e090dcdfb7d6aed84e91fe7  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/typedefs.cc
! 37875a6b9608e7783514fb653f5cc2cf  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
! 2c79c7a58906bd00cc86d7ec0e169db9  libstdc++-v3/testsuite/20_util/hash/52931.cc
! 13d100cd09969bce92d60a81a5109f10  libstdc++-v3/testsuite/20_util/hash/60970.cc
! e3debe66877f3fcac95037efd15a484f  libstdc++-v3/testsuite/20_util/hash/84998.cc
! 2106648f8e13cf305c04e25d9b61de0a  libstdc++-v3/testsuite/20_util/hash/89629.cc
! 49bb66014e1b2f76f9340b54bdb8c75a  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
! eee2a38c98b6d86505087bec71956c8e  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
! a00f42a2f076e043b9528123f8891d65  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
! ceb7ff33bd2aee553615c846c34ca0b1  libstdc++-v3/testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc
! 4ae191a524d1ee8e5084c6aa146d9429  libstdc++-v3/testsuite/20_util/hash/chi2_q_uniform_random.cc
! 797a028c2c085b2ff0e51b1f69de76dc  libstdc++-v3/testsuite/20_util/hash/chi2_quality.h
! 58544cb2f4382acf2e1525f946554992  libstdc++-v3/testsuite/20_util/hash/nullptr.cc
! ea583d6a044ed9003e9ddd379b013305  libstdc++-v3/testsuite/20_util/hash/operators/size_t.cc
! 926136aeba5efe6bf49c54a2235d377a  libstdc++-v3/testsuite/20_util/hash/quality.cc
! 54c998630ac52db8a284c351b039d46f  libstdc++-v3/testsuite/20_util/hash/requirements/explicit_instantiation.cc
! 5b3e2158238ad755ca528916f8c48171  libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc
! 29ae95d5ca75f9962e3f4269a5104c55  libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
! 55b67dcfd4b664033a741c27f96b7496  libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
! 9568bf6fe121190aec70b0e3c38babcd  libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
! f77208b7a1dae48bb785a819c65897fa  libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
! 886285f4e51f0b48d60c160e104b2628  libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
! 39183bd7b8869de018b601b4284e642c  libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
! 3475fa9d723b6ecddd87aab7e8136106  libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
! fa774fa8b9a0a78f6bd01d5e90405764  libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc
! dd5a0f9343939d245f3aaedf9400dfeb  libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc
  8b53fa85edafd52c50395631802734a2  libstdc++-v3/testsuite/20_util/headers/memory/114866.cc
! 39f3dfbffe021c3d53b6d1f4ae51f8c5  libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
! 78e045976302605b440747c3bc55acc1  libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc
! 0f1c7bc346a9c0c3cd16287166acf9da  libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc
! 5ec07052daaaf3291a88f0c4a2c8ab25  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc
! 288193ad5fa101b699095fa309756d94  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc
! 7c4a32c09f5665a651a40c0b0c187bb0  libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
! 54dc509c23e8f97703d9905e222293d2  libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
! 8cf6e220ccb7c0988d148b1d1abab974  libstdc++-v3/testsuite/20_util/in_place/requirements.cc
! 5a82f3e3089ac1da670eb960e54efcb6  libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
! 785de7aaf2535d4a6119940e31e37cc2  libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
! 6c64e6a00e33d075d694d08e40b9622e  libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
! 49d23000f0a042cae2e9b25c5fa2ed47  libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
  23268839cfbf52c1337d5616e250b6ea  libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
! b04d8715d311205750183a4202fac4d4  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
! b5222f6619da60f7bc98faca29294221  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
! 0175657cc78424ac9424d1bd0f66282a  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
! 5932b14310950bda8dccaa43872b9b2b  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
! 61822b9b54f61260d2a95238eccc6638  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
! d8da1e02f9b6522f465eba2d3b82859e  libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
! 78bbb693cf1a6c39cbe243f3c5380bbd  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
! 9c2ddff3d9467ea427b17596b01a9bb6  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
! 0c23948dc3016a8cc654fc1c89f757bc  libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
! 78cbf28ad8fd1fc60cbc890a5836544e  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
! 49d23000f0a042cae2e9b25c5fa2ed47  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
  01419816e55df10955ea47006b7fd41b  libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc
! 7c3545ff7575694feab8b576fde8a3f2  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
  b299881c5f8a46c9954c9cfffbb15437  libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
! a2054e16c64758b5098176978959d3c4  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
! 4035c75049d2dd6cdf5fc33cf41d93db  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
! 7e99dc93e6c20e282ac4041d1ae8ad02  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
! ec3e04ff7a30c11c0abc283cae3ad697  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
! d6e537ff6ef04d39f476e14f4e385075  libstdc++-v3/testsuite/20_util/integral_constant/requirements/explicit_instantiation.cc
! 76aff1f4fd12ea90a28555b7347bda72  libstdc++-v3/testsuite/20_util/integral_constant/requirements/typedefs.cc
! 06d11760011c0cf90e4bbd5f3e778022  libstdc++-v3/testsuite/20_util/integral_constant/static_definition.cc
! cc54cddec159cfb1c1831816b86396cc  libstdc++-v3/testsuite/20_util/integral_constant/true_false_type_typedefs.cc
! 55f243a2b9ccda2e2dec100825a3791f  libstdc++-v3/testsuite/20_util/integral_constant/true_false_value.cc
! f48437fdf154221e72af640f0a004a8b  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_args_neg.cc
! b8a05a739042877606d122de0b03bbc3  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_neg.cc
! 797ca4cc11fd0d8f69ab98c8917aa9ce  libstdc++-v3/testsuite/20_util/is_abstract/incomplete_neg.cc
! 529623cae2937ba8054db959c2ac11f8  libstdc++-v3/testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc
! 67fd7445af4c2241eb3411d527101951  libstdc++-v3/testsuite/20_util/is_abstract/requirements/typedefs.cc
! 3f8e92d392a8f4ca8de07755b224f402  libstdc++-v3/testsuite/20_util/is_abstract/value.cc
! c1bf8195f852c39c9df4eeab56e824f6  libstdc++-v3/testsuite/20_util/is_aggregate/incomplete_neg.cc
! f2b09fd2487da55f9012207a75525d3f  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
! fc51da9fb2c860619cb6fad14a126f43  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
! d4a2b5531c9dbc62cc6dd1078da057bb  libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
! 3fc223909f6857d0746e52ace4c08881  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/explicit_instantiation.cc
! 0e9a8098515478123e8545941ed46e72  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/typedefs.cc
! 45f7f9413622584b54fc06d8749aa321  libstdc++-v3/testsuite/20_util/is_arithmetic/value.cc
! 8475c43950afefb06f596d9c004241d9  libstdc++-v3/testsuite/20_util/is_array/requirements/explicit_instantiation.cc
! 32f0e7df8b4ed973ca6e9b29a17873ac  libstdc++-v3/testsuite/20_util/is_array/requirements/typedefs.cc
! d3632500b655043551856f697bf1552b  libstdc++-v3/testsuite/20_util/is_array/value.cc
  6768b922ca72460fc141a677fddef045  libstdc++-v3/testsuite/20_util/is_assignable/requirements/access.cc
! e0efb54ed83154f792d6102d5c6580f3  libstdc++-v3/testsuite/20_util/is_assignable/requirements/explicit_instantiation.cc
! 36577ccb4a7475a89b4993f841893019  libstdc++-v3/testsuite/20_util/is_assignable/requirements/typedefs.cc
! 28aaa0aa3a8bee8ea4b3fceb11fb4af0  libstdc++-v3/testsuite/20_util/is_assignable/value.cc
! 7ee2bd7bba0b57c2cee400427ae5ed53  libstdc++-v3/testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc
! 5fd33c836d0231b0c5cc3382168c57ae  libstdc++-v3/testsuite/20_util/is_base_of/requirements/typedefs.cc
! f15c35a1b120e2d8590d0f277cc30fb7  libstdc++-v3/testsuite/20_util/is_base_of/value.cc
! f3bf4e338545016c702c967d10754e80  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
! 5db76faaf4cfdfa925a05bd521751d24  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
! 22f6d9145cd488d1466e0032d6ee0413  libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
! 375880b3b9e2fe1625dd89251c636521  libstdc++-v3/testsuite/20_util/is_class/requirements/explicit_instantiation.cc
! b989e8cf40f3ea4dfad7f7c048d5981b  libstdc++-v3/testsuite/20_util/is_class/requirements/typedefs.cc
! 3a95d114cb7afb87e0105938c4b50898  libstdc++-v3/testsuite/20_util/is_class/value.cc
! 36350013d5cb09daee78d96dfb5a0627  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization.cc
! c29bc42b30a84caafaaed7648bdf1ef9  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc
! 155c0670d72c7b053194807e07002d7e  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/value.cc
! 00b79dab1ba1b0efcdda4b2a10dfbfa6  libstdc++-v3/testsuite/20_util/is_compound/requirements/explicit_instantiation.cc
! ec73ac1516fa150d5654ce283eb74ed3  libstdc++-v3/testsuite/20_util/is_compound/requirements/typedefs.cc
! f0997906de4bf93c4627e53995229ac1  libstdc++-v3/testsuite/20_util/is_compound/value.cc
! d49fef00a767cad360029a095ddbb52e  libstdc++-v3/testsuite/20_util/is_const/requirements/explicit_instantiation.cc
! 05c622315850f8993031accdcba8b946  libstdc++-v3/testsuite/20_util/is_const/requirements/typedefs.cc
! a4f2299c3acb5effbc763f55c028c8f9  libstdc++-v3/testsuite/20_util/is_const/value.cc
! a835f1bdcc9de67098d141b465b1b15b  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
! 4b2020a36590672c27f1db5d90b68c15  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
! 056ff8c550ece042c89843295f6ab59f  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
! 2e24cc20e383c68773cc93e4fa184bf6  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
! f4c0da6dd43d3053228d4af199a5515c  libstdc++-v3/testsuite/20_util/is_constructible/80812.cc
! 5a3ea0029f8d1667f742254e0b964896  libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
! 0507a9d6c98a54bd986fdb15d1a1fdf8  libstdc++-v3/testsuite/20_util/is_constructible/94003.cc
! 5cccff3cb1628b57942d142e0c2e8024  libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc
! 038fcf7c9b9ad8497cfcb18a446f8fcd  libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc
! cff6423d12eaad35f8bd10705fe8ffb1  libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
! af85f91241a892a928fc9fce2bb5f9a8  libstdc++-v3/testsuite/20_util/is_constructible/value.cc
  09d897b8e5e8f52ce748db0bdf75aa0e  libstdc++-v3/testsuite/20_util/is_convertible/requirements/access.cc
! 474a9b531f102dbfe0c8924d4eb1db5c  libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc
! 65e2161735c14287342620f181803175  libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc
! 7fc4e69cdc0cd9049acd11f4444bd722  libstdc++-v3/testsuite/20_util/is_convertible/value.cc
! bb1c02f1892083b25a807bf7119e82a8  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/explicit_instantiation.cc
! 59e438e859a87f4a652475d952df3d1f  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/typedefs.cc
! ab5e509d676d3a640d6b80fc6804f969  libstdc++-v3/testsuite/20_util/is_copy_assignable/value.cc
! 29b13737b72aaa3361159c5f12785b9f  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/explicit_instantiation.cc
! ebff810ac0b1fe7e447d19fc9547817b  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/typedefs.cc
! 512e9dc7d924c6039495bcfe76042b64  libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc
! b6ce6dde5709c76909fd4563f7078304  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc
! a6501d9c9bf2399331895441ea161f77  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc
! e467b48989e367e4d857750cf5d94e4b  libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc
! 732e370cc80d8ca86bf87c8b0fa30f1e  libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc
! 952b10e219c8194899c57388e4b2287b  libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc
! 010c758d38ba3bc50053aca949ec763d  libstdc++-v3/testsuite/20_util/is_destructible/value.cc
! c31f38f780dee5e498a176e86e403bd3  libstdc++-v3/testsuite/20_util/is_empty/incomplete_neg.cc
! 2eb2699e95e8d5823db8057f077c1b67  libstdc++-v3/testsuite/20_util/is_empty/requirements/explicit_instantiation.cc
! aad430b9789776712bcd58a362921b40  libstdc++-v3/testsuite/20_util/is_empty/requirements/typedefs.cc
! a516b5c8fd30e98b76236ca40874a7b4  libstdc++-v3/testsuite/20_util/is_empty/value.cc
! e2fa660104afa92456abc33a379739c2  libstdc++-v3/testsuite/20_util/is_enum/requirements/explicit_instantiation.cc
! ce535d1452092db7922aaec0b5a23471  libstdc++-v3/testsuite/20_util/is_enum/requirements/typedefs.cc
! 21951244910fb878c3f11a671d92996f  libstdc++-v3/testsuite/20_util/is_enum/value.cc
! 8e732768c79a2623f84d23ebe127c9cf  libstdc++-v3/testsuite/20_util/is_final/incomplete_neg.cc
! 7bb3945fa1890d252de45600cdbd4968  libstdc++-v3/testsuite/20_util/is_final/requirements/explicit_instantiation.cc
! 700a61fe04379e721f5e4b95a33b091d  libstdc++-v3/testsuite/20_util/is_final/requirements/typedefs.cc
! 09f3e9ded45d86b07a8c79ed7113690f  libstdc++-v3/testsuite/20_util/is_final/value.cc
! b236169e34a93d388f1f70051679c9de  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
! c2486ac21fc13bea14e98086cdbf0525  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
! 16cc663fb337f11d6be57b64091e8b81  libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
! c4819484961de83021627b7f6e0166eb  libstdc++-v3/testsuite/20_util/is_function/24808.cc
! 79962786a6e339f201ef58eebada60b7  libstdc++-v3/testsuite/20_util/is_function/35637.cc
! 9e9c947447e8422ca270a87035c00ff1  libstdc++-v3/testsuite/20_util/is_function/91371.cc
! ebcb719824b2bd91423696f03c5dcaa7  libstdc++-v3/testsuite/20_util/is_function/requirements/explicit_instantiation.cc
! 48747309cff45c8c72f0515688e70737  libstdc++-v3/testsuite/20_util/is_function/requirements/typedefs.cc
! c48bcf7bb7446ac916b6422d2695d0e8  libstdc++-v3/testsuite/20_util/is_function/value.cc
! 6343fbb3568e3fe51384f23e2f123320  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/explicit_instantiation.cc
! 6176afe80e1b00b01f66172cc1671d72  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/typedefs.cc
! 3cd2e9d3139090a052bff03cf9e6dfe4  libstdc++-v3/testsuite/20_util/is_fundamental/value.cc
! a5bdd79a24a6fcd57053b32d1df0cb33  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc
! 2f12ded64efee2505b514064299008c1  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc
! bbaa9889625f94a83821107ecba8f1d8  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/value.cc
! 57e4c8dfd037cc99e35ff519553855e5  libstdc++-v3/testsuite/20_util/is_integral/requirements/explicit_instantiation.cc
! dd5cf6d4dac26402f49fc0b13f5789cf  libstdc++-v3/testsuite/20_util/is_integral/requirements/typedefs.cc
! b97f0614d55a40b2361747517625e41b  libstdc++-v3/testsuite/20_util/is_integral/value.cc
! 3861020d0c48d80304f5183999c019dd  libstdc++-v3/testsuite/20_util/is_invocable/83395.cc
! e32ee207f0d802c500e483c29a5d89ad  libstdc++-v3/testsuite/20_util/is_invocable/91456.cc
  15e39483dc403920d82c01777fcbfd43  libstdc++-v3/testsuite/20_util/is_invocable/dangling_ref.cc
! 67731891f8b383b74186aade4518a22d  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_args_neg.cc
! 2543b673aa1eae29d89e99c70e5dc4d4  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_neg.cc
! 26db1c2c024ad61005ae803f1219773d  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc
! ecf6f8f2dcf8ab9f3cb5874934dc9356  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation_ext.cc
! 54003662ce541c1e0f2ec1b49acfd7b6  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs.cc
! a31786a54ab01eff933d6e12e6e913d1  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs_ext.cc
! 53d4d7dea8e3a814e54f6b6eb0e6f9e6  libstdc++-v3/testsuite/20_util/is_invocable/value.cc
! eeee8a32d419c9f4f0ae8ab7c55d8934  libstdc++-v3/testsuite/20_util/is_invocable/value_ext.cc
  1079591eafc5af1141e10c7791fcaa6d  libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
  31a740f1c6844e8db8616f864b8448c1  libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
  238b3120b9f8359df017f0d5349ddc89  libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
! da30edc9e173cb4998a5f6a5fcf24cd2  libstdc++-v3/testsuite/20_util/is_literal_type/deprecated-1z.cc
! 7cc123b8cab57073a07b1dac45c3f985  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
! 97c9b56a2cc9dbf6898c9b378422de19  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/typedefs.cc
! 6a3710745295519355019b8b7db8ad2e  libstdc++-v3/testsuite/20_util/is_literal_type/value.cc
! 0fe86163042a595cb18fd27222a96512  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/explicit_instantiation.cc
! 628f771da14166395a9eb45f7d6831cf  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/typedefs.cc
! 8ac9105a320346ccbf98976aa273beee  libstdc++-v3/testsuite/20_util/is_lvalue_reference/value.cc
! ad84b80a8f46f7d76146a040a90b419d  libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
! 8b24936c024df75b043c44d62bb22b38  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/explicit_instantiation.cc
! b580dc981e6c5aa5282727e8bb3c328b  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/typedefs.cc
! 536bfb2df9054527a04ec8271468fc86  libstdc++-v3/testsuite/20_util/is_member_function_pointer/value.cc
! e9270e129d3bfdc56c22bf7861068a9e  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/explicit_instantiation.cc
! 999822f3de803446863ee09ca3e6b660  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/typedefs.cc
! dad3bb8d8ee0339dd9f51f63fbb436c6  libstdc++-v3/testsuite/20_util/is_member_object_pointer/value.cc
! f148b72ffd4510ce9dc0f1a42f06eced  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/explicit_instantiation.cc
! 655d33ba0c7e301073172987cd16509a  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/typedefs.cc
! 68ee5f12d70e8a847306527d3face52e  libstdc++-v3/testsuite/20_util/is_member_pointer/value.cc
! 31621b98ef1fc2b94697f922d63f2148  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/explicit_instantiation.cc
! 10bc645ce7a9ada204627514ac92248a  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/typedefs.cc
! 15345aef1939c771e50aea1ae2d55a53  libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc
! 6e231a5294ebf5f0f8a1ec8da5a9a5b6  libstdc++-v3/testsuite/20_util/is_move_constructible/incomplete_neg.cc
! f79b0d105bd445adce9f033f5b66d163  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/explicit_instantiation.cc
! f7c69544cbe4d7fd2d7b054322e2f3d4  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/typedefs.cc
! 90ddfdc74ec6dc89d9d11b4d5842404f  libstdc++-v3/testsuite/20_util/is_move_constructible/value.cc
! f92e185e84fa966811299ccf468a8310  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/explicit_instantiation.cc
! e9b2d147f83fe1098353d2f758176e8a  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc
! 5fb36a682a2c8c171dddbf8ba14d0c75  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/value.cc
! 1fd5515e975da614eea5b40aaedf12dd  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/94003.cc
! 136d65cb0d59502c10a8752dbea9af3f  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/explicit_instantiation.cc
! a5dd02227a7983e8cf91df0eeb6b4e64  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/typedefs.cc
! a8ad78237c54260869976aaa6402e641  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value.cc
! 4d5fbbff3d0de676319f872965f511aa  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
! acbac3585c3e871d6bbd93ca4e4c6100  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
! 89637513c05d702b156951b452dbac35  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! a226141787996d1baecebe45dd3ded3e  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! 3a9230beecbf9d3d8d8f9980965e8ac0  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
! 7129e833c8178e1cc1a823151f564242  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
! 2bc9c9ecef73512b9eda96f8c7e6c17c  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
! 8502a85138007b2e9bf1f53ad66bf6fa  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/explicit_instantiation.cc
! 4983b76c9ffcacae4dca98e90d0ac760  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/typedefs.cc
! 8b9495556679ec0b9e44130d45220399  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc
! c74b74663bd4c7bfd07b945cc957e875  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/explicit_instantiation.cc
! e8ca1802a3cceb1cb0c3ed30db3379f8  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/typedefs.cc
! b2fbdb9a5ab74c97fd347cca6d2f8c8b  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/value.cc
! 1a0e9650a2f5aad581c7b3708ee2576b  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/explicit_instantiation.cc
! dd5bfe08fa17b0ae238c5dd6fc708730  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
! ecaa306c20ed5a9aca0b1245af35ded7  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
! 789a1c4cb64226a6e4a28d2bd311df7a  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
! f8a48de994af40d40dce3389d2ec3aac  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
! 4511e1b8fa60382a5d73340a069ba6f3  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
! afc993953f7cbdce30e69a483d227648  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
! 33efdc0c57ce5535a11381ee62a2c7a9  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
! 44632c7f42004ed3662c8d89d5aa995e  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc
! 7548a604b429663b3cd0adb29c26e614  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc
! 8e89c9571f76a2adbd3685c7503d526b  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc
! ea25dca280a50ccc5c955ff568e2a3dc  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc
! d66800e8f2013a4541692224ceff1845  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc
! 18d49a3e3cf8f008fe3c743adbb8fd01  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc
! d84931cbb8fe9dd2a6583335df8bf5eb  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc
! faac95ce861592a909e3c71484a5771e  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc
! 03411cfbc21e1e5360d01cfe8e744cd4  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/value.cc
! cadcfb88ea88c0ae5ca256fdb3de8524  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/explicit_instantiation.cc
! 387547f180ada59ab94f2e2acc304cc7  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/typedefs.cc
! aea6f1314c34c2ff4cedccd3e9779992  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/value.cc
! 4b3ca40787e9d1d328d6f485b6192b53  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc
! 2e25aaad0357d740edb628c946e01ec8  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc
! d91e3731bb2999a30cdc8c7c580e6b20  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation_ext.cc
! 9d3547b0c199c41dce3c7b7a612b496e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc
! bc527c5f7e347518f3e6b8014b8a6d1e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc
! 28173cba9d90ca9129c1ca70e34ba41d  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc
! e7a4a8c6eee738afd95494e1ebf32376  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h
! d0cfcb83d2ab9ac44b8716cc99c7a9af  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value_ext.cc
! 14cf8fba062658965d22d53ff486137f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc
! 2f422494a0b1485741617e5c3f6eaeb4  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc
! fb5c2259b077502352f35c4b39aadf2e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc
! 70974ef146c59878e95059c83080107e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc
! 560afde788330fcf29866348e5b7f6c2  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/explicit_instantiation.cc
! 29e41670004134967979982be4c999d3  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/typedefs.cc
! a5e05a70f95b6cc8c9dc31892a038dd4  libstdc++-v3/testsuite/20_util/is_null_pointer/value.cc
! a599e90ae28fc66819e60dab604045b8  libstdc++-v3/testsuite/20_util/is_object/24808.cc
! a3b1d7cb08628a6c9e75f7e1a4892e71  libstdc++-v3/testsuite/20_util/is_object/91371.cc
! 0d99eb8d41b3cb9150c562be932febb7  libstdc++-v3/testsuite/20_util/is_object/requirements/explicit_instantiation.cc
! efbbd660b5f078df12280b21a4c5df99  libstdc++-v3/testsuite/20_util/is_object/requirements/typedefs.cc
! 8761397a84fdde2f852483bd0b714bde  libstdc++-v3/testsuite/20_util/is_object/value.cc
! 72dcba4de6a6eb2dd43386a0beead704  libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
! 9d34c6597f50ed6bcd72c9946cbeef26  libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
! e07435a5547e601264b5d724e2aeaa1b  libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
! 5e37bf29aa7c133ab6d5519c33cfa8bc  libstdc++-v3/testsuite/20_util/is_pod/value.cc
! 41b9af9d34a7ff5f49c8f0c42f3636d8  libstdc++-v3/testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
! eccda7da78e0ad8df579f5bcb0c225d6  libstdc++-v3/testsuite/20_util/is_pointer/value.cc
  e9378376f3c816595bd186a3a1c0f891  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
  f169bdc3e67f0f5bc01e3bb0e270046e  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
  d637ec4fe9a801365e4669014a78359b  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
! 5e034c23934f74234f3e828d282e8ab9  libstdc++-v3/testsuite/20_util/is_polymorphic/incomplete_neg.cc
! 943ea11c7c7d947822ba1a6182dca12d  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/explicit_instantiation.cc
! e07e65e5035630548919ce2a01c7a893  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/typedefs.cc
! f74ac6049e5d3a84b4fe6eb58430d919  libstdc++-v3/testsuite/20_util/is_polymorphic/value.cc
! f62458ee0eca69fa59861f4276aa3d84  libstdc++-v3/testsuite/20_util/is_reference/requirements/explicit_instantiation.cc
! ffc400ea945c47bc8bfa1d96150fea81  libstdc++-v3/testsuite/20_util/is_reference/requirements/typedefs.cc
! 3bb164e1586aefd01d634be5bc15cf7c  libstdc++-v3/testsuite/20_util/is_reference/value.cc
! 311e86da3c9d5276381e7d4523e835a3  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/explicit_instantiation.cc
! f41ed607b123229d42b0d7fa875e5ca3  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/typedefs.cc
! c784dbf0b378290223dff48811383cd5  libstdc++-v3/testsuite/20_util/is_rvalue_reference/value.cc
! 021697503263931f6ea9ab74efc0d781  libstdc++-v3/testsuite/20_util/is_same/requirements/explicit_instantiation.cc
! 8a1efb4170cf2826129d08b8283ff690  libstdc++-v3/testsuite/20_util/is_same/requirements/typedefs.cc
! fde3b854007afe65db46c435e63a652f  libstdc++-v3/testsuite/20_util/is_same/value.cc
! c86e56a9fbf8820b31dcce17f781d51c  libstdc++-v3/testsuite/20_util/is_scalar/requirements/explicit_instantiation.cc
! 001c2050b9354d0f9d38233b3a61182d  libstdc++-v3/testsuite/20_util/is_scalar/requirements/typedefs.cc
! 623e8eee81251454c762667204e70fc5  libstdc++-v3/testsuite/20_util/is_scalar/value.cc
! 854bbf010fefc0627a184de57236c8d5  libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
! 437c7b107b408e4eed48a32eab4f0cb2  libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
! cafaaa470a092d7e3dcdbbdd338d51dd  libstdc++-v3/testsuite/20_util/is_signed/requirements/explicit_instantiation.cc
! a44af1bacbf18ba4b83f49324dfbb9ba  libstdc++-v3/testsuite/20_util/is_signed/requirements/typedefs.cc
! 63bb4335f5b0360c3435833f13cbbcee  libstdc++-v3/testsuite/20_util/is_signed/value.cc
! 49b298e6a43e04896d8b1bd7dc89d03c  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/explicit_instantiation.cc
! b210b5d6d6776814a9f8a1e70f9fcd75  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/typedefs.cc
! 8c2ad4ee30bf06080b454dd0aa8196bd  libstdc++-v3/testsuite/20_util/is_standard_layout/value.cc
! 2295770d604ff0b06643957a6bad066e  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc
! 56d54348662eb8619d25ee5b5f24f96e  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation_ext.cc
! c4e0e5818e38a9ad7dd81a14fb520ae5  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc
! f33216f4a5289d36c2423968e7fcf90d  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs_ext.cc
! ccf51b1369b5aa620955f1449b7ddec6  libstdc++-v3/testsuite/20_util/is_swappable/value.cc
! e5070bca36859891396cb4cb246ab643  libstdc++-v3/testsuite/20_util/is_swappable/value.h
! 81e796d0d0b86e4ad4a122794d2287cf  libstdc++-v3/testsuite/20_util/is_swappable/value_ext.cc
! 34dcbbff4e5b204dd4cfaee0dad3f99d  libstdc++-v3/testsuite/20_util/is_swappable_with/incomplete_neg.cc
! 925095cc46da9b42cdd686c814a43cbc  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc
! 53721d9173b83315f6a75d67019108f6  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc
! c00e84db8f6d6d124de51d8153a7ade6  libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc
! dbf0ef211ad9ea8204395192c33981db  libstdc++-v3/testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc
! fa0c297e7c9187106f3e5865c1b4577f  libstdc++-v3/testsuite/20_util/is_trivial/requirements/typedefs.cc
! e2704900e460b56caaaf3cac026aadf5  libstdc++-v3/testsuite/20_util/is_trivial/value.cc
! 96697767fb1f329944c407c49a0f5ce7  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/explicit_instantiation.cc
! 307c4463e8c011047944e404f3c0b9a9  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/typedefs.cc
! 589a4a5095681fde5ed07983a105e381  libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc
! 848dc2c3e4eaf0f11a411f660e4d7f7e  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc
! 5f8035769bcf50b6969af73286f69f3f  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc
! 6798620568f8eef2e9bf595b093f7161  libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
! adfb3d1e83c5e781d0a3ef15d964cfd7  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc
! 309fa86877c5da079427c558ca8236ca  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc
! a0c9ee101d07e16185993ec48e3b788d  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc
! 873c3cf9c179d4ceee2c2b22afdf60e8  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/explicit_instantiation.cc
! b1936b7d3ea06fbd0f5c60409586879c  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/typedefs.cc
! b218441d2be9ee311f9bdd0a7c55c02c  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/value.cc
! 7c56d08fee5d7a2548c6b7d2b63c570d  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/explicit_instantiation.cc
! 915f16008b0e1a0ef39bce0834de6138  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/typedefs.cc
! 34be16667db8f5c2c7f122f2b57515d3  libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc
! 978651917d7d9395e1867eddd695ae86  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc
! 440b275d942f7bbeb7fbec8c8671d89b  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc
! c3432ea20550487ad2621f18d20ce6b3  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc
! f39f82bc6e8e2e96f2a84d3ede1c4b73  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc
! 7ed8a4bced8829cffd1c73ef1d769c6c  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc
! e81cb65067f7b0a8e7d074313876880a  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc
  7713786ec02e2fd53bdb2116cbfdc65e  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value_v.cc
! ecddd6ff4b73f77a6df38f1428a4b506  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/explicit_instantiation.cc
! eb3b4b9893848fa377fa0c8e5072a1a3  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/typedefs.cc
! 63f36cfac0679528b0f60696e1ca8e23  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/value.cc
! 3a472616ccc2712de8415a454b13edaa  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/explicit_instantiation.cc
! 0681bbc9e3d29f0cf95f2dc2f0c7959d  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/typedefs.cc
! b094b6d202530b122e090650e42a395e  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/value.cc
! 93c0afe6454090d43c58f45087c999c6  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
! 5db76faaf4cfdfa925a05bd521751d24  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
! d00f83f6d4e161472b8d1c925faa1058  libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
! d12ba3cdc00ee66e8cbf9c13f6de27ab  libstdc++-v3/testsuite/20_util/is_union/requirements/explicit_instantiation.cc
! 53a984f8a082b8bf034da2615b4a2b10  libstdc++-v3/testsuite/20_util/is_union/requirements/typedefs.cc
! 71c56becd52a7d92d7f07b7990e33842  libstdc++-v3/testsuite/20_util/is_union/value.cc
! c5236a005010d9b174368e22db7f2097  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc
! 4b61f048aa496e61f16d6ebc9eff7f8e  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/typedefs.cc
! c843aa82573a8f1e94b6afe2979380a4  libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
! dc82999c266c41b8c7d0c7caf27f9b4f  libstdc++-v3/testsuite/20_util/is_void/requirements/explicit_instantiation.cc
! dc48c559a5d853cfc014442af41382ae  libstdc++-v3/testsuite/20_util/is_void/requirements/typedefs.cc
! ad8322cc70dcfd41876427a9c1aeb43e  libstdc++-v3/testsuite/20_util/is_void/value.cc
! 2a455b260a42f53005f15b88d7726b29  libstdc++-v3/testsuite/20_util/is_volatile/requirements/explicit_instantiation.cc
! 8123220e87c8128e04531334ca536147  libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc
! 5fed02232453220bb5b74553ab16414c  libstdc++-v3/testsuite/20_util/is_volatile/value.cc
! 795e696aa8cf616770a7445e3fb91f13  libstdc++-v3/testsuite/20_util/logical_traits/83134.cc
  6f771d4e7b8b937d187f18a61f28fd4a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/base_classes.cc
! dba750f1275d7958f091b2b33a734ecd  libstdc++-v3/testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc
  119b399190409df0e8ccdcf9b10c3e35  libstdc++-v3/testsuite/20_util/logical_traits/requirements/short_circuit.cc
! 149d7f62e98449a770ca083ba71604df  libstdc++-v3/testsuite/20_util/logical_traits/requirements/typedefs.cc
! 40177689c69bc9abb97e800dc508f1e5  libstdc++-v3/testsuite/20_util/logical_traits/value.cc
! c004ec9d102a7b20e9c9e46b18821d27  libstdc++-v3/testsuite/20_util/make_signed/requirements/alias_decl.cc
! 7e2efdcb609d0b9d40576891f8e380a2  libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc
! 682fcdd53017c46266803359eae0c703  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
! 46b044a97fc6197dba0314697e7e82c1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
! 29d75423bde5af1f5ef19ca4b6e20609  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
! d3ec252c20ea36f9a1926737e3a4e9e2  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc
! ea5591dad1aea804139f0a4d18ae82a1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
  8f0db74dad9a1b305718ac6e066eedf2  libstdc++-v3/testsuite/20_util/make_signed/requirements/uninstantiated.cc
! e776377019a0cf388de6f12a6eb753c0  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/alias_decl.cc
! d9691cbb09caaf3f5589a41c61a6e49d  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc
! 521e5ca25bc3679fe23f25004c79134f  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
! 9bee80531d5e5b05048a47b4fefc79be  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
! 3cae148f60fe30f7c0267aae52eac2bb  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
! 2a19402ec69e784ec75d94063d6fbf4a  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
  a8e73ef02c8dd2e09fa65d0cba094035  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/uninstantiated.cc
! 8ebcc7a01c9502f4a085a187e9088047  libstdc++-v3/testsuite/20_util/memory_resource/1.cc
! a9c73dede76222bf992900640f9a4fde  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
! 5ecaa06c782530ff0dc0c22e62c51a31  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
! b3fe8ba9412fe55232367617687b12d9  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! 7784713d3be6bee8009e64d722be6e70  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
! 024cc29f316b3e99278b34c011f1aae0  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
! 101cd3e1aaf40212fa5093da8848b688  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
! 6393ba23f0602b24529560e7a3a9081a  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
! 23fce524a852d9f3708f2e63224f5178  libstdc++-v3/testsuite/20_util/move/1.cc
! 18094e0514787a855fcb79daae28c913  libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc
! 8a84b62683326ec2fb1176bdff1c8778  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
! cff5764c6d456cd0cab27e19b93b7274  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
! 687d72a88714a7df3756d0e69d85fd78  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
  e609b5832e6e14b189c71b01fc31595a  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
  a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
  5f5e72e772029cc74c37aed7a9effe5f  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
  cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
! d7937ad3f5498df871f8ed65ec9f3c00  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
! a627273fb8b6963b820fa1e54a3a09f4  libstdc++-v3/testsuite/20_util/optional/77288.cc
  f669af40876c317318f47db8330b7058  libstdc++-v3/testsuite/20_util/optional/84601.cc
! 993ba88a5d7d9b071309b5f1eb182e1e  libstdc++-v3/testsuite/20_util/optional/assignment/1.cc
  5f2a36dc053d6d68a81135df84e7f4cb  libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc
! ae794d838cd9fe5c8e32745e3c996f1d  libstdc++-v3/testsuite/20_util/optional/assignment/2.cc
! 27e123b113410accc4a434becd979b03  libstdc++-v3/testsuite/20_util/optional/assignment/3.cc
! 7e472f300929948c26328af234d40861  libstdc++-v3/testsuite/20_util/optional/assignment/4.cc
! ec68d2acbdd7c0425c97febe29df4a20  libstdc++-v3/testsuite/20_util/optional/assignment/5.cc
! 702361a1785de6a16972eb2c5122405a  libstdc++-v3/testsuite/20_util/optional/assignment/6.cc
! 2beb75b53376318cac1c53ec8019fe6b  libstdc++-v3/testsuite/20_util/optional/assignment/7.cc
! 15ae43804697aa6a0bff8dff9a3f3e10  libstdc++-v3/testsuite/20_util/optional/assignment/8.cc
! 9a065a4ece84f3e1b02889ec64d1d8b8  libstdc++-v3/testsuite/20_util/optional/assignment/9.cc
! f70d6ae2265df99c73708992a1e5c56a  libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
! 33b66344fd31e6af09bbdafc68cb252d  libstdc++-v3/testsuite/20_util/optional/assignment/noexcept.cc
! 32cf4286ada831e1ef28c378b9b8878d  libstdc++-v3/testsuite/20_util/optional/bad_access.cc
! ffad674455b009d5e050d3b02204f05e  libstdc++-v3/testsuite/20_util/optional/cons/77727.cc
! a423f6061c0bb30c9d2a94f19d3dc699  libstdc++-v3/testsuite/20_util/optional/cons/85642.cc
! 5cead16cdb6c9bacdc61deb4c4a27754  libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
! f2bdf72d71a8b9705f39196ada9f3083  libstdc++-v3/testsuite/20_util/optional/cons/copy.cc
! 3d328b7541076ea7fa8b26265ac42588  libstdc++-v3/testsuite/20_util/optional/cons/deduction.cc
! 502379c7b8e404a8ef6fa9715dfac8fe  libstdc++-v3/testsuite/20_util/optional/cons/default.cc
! 0960276ca4a49a226b6f15a135264ee4  libstdc++-v3/testsuite/20_util/optional/cons/move.cc
! 1b88e934ba1cf95efb3bd0f19f07d71c  libstdc++-v3/testsuite/20_util/optional/cons/noexcept.cc
! ecc9569a1d73371e745b96e575c5c74a  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
! da79b7d3ceafb2561205c579cbd684e4  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
! efde22b553a6abcf9a8a78963d1af29d  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
  bdaab2c7a277b9ab7e3419b9414abbd3  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
  c90cd072fff0310ee397532e79baeb6c  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
! 7660f8ac1285fb06073b39bffbdbf414  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
! d0a84051dbdafa467674b2346cc78f07  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc
! bc62b99f5d490c64b1087d4155e6c33c  libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc
! 95698e3c4497863525aa70eab6499819  libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc
  d892473bccf7714d4d0029f52c64922a  libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
! de4396aedb7684d5d758d0378ba5a501  libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc
! 6340d02fbfe9001da23017bd26ee9fba  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc
! e0378ee99c6290cd4f1ddd36b94c543f  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc
! 88a0555e73730269d692da25519dea61  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc
! 241c6c3a8db73dc3f03358bae8a11309  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc
! 9a0dfea87b80f2dbd0e055141448bd84  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc
! e598bc25c64541d15a596ba616f47cc1  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc
! 3f1511f5594a6422d3f11dc74f68402a  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc
! 891a97073f20beae125ee3ed5155d24d  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/3.cc
! 23e4e78f95f0bbe288fe6aefa58cd2da  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc
! b808220e3f1d4ea1851869a27672204a  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc
! 87c7d58185ee30931c737698af022b10  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc
  9245416041a04e7eab9f7bb25bdaeec7  libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
! 0f3ae8c93d67e0cf488ab78ace6d18d4  libstdc++-v3/testsuite/20_util/optional/hash.cc
! d7a24227ddb29fdc00a4a49d4abc7883  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! 4d53222bf83a8329548f408c8b0c9f74  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
! 6c8609fb26e6a50a293cf90721d7357f  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
  9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
  ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
  ee09f6b0b65aa45b2df39f550d3fa064  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
  72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
  b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
! bbb20ea75551c928424ee7616993b7c3  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
! ee11c9023f0ad3cc0068043fdf0dc7bb  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
! a7c6bd31ccf10d58750aecfc71e652d1  libstdc++-v3/testsuite/20_util/optional/observers/2.cc
! 909f4f233bb0cd472ec5214c8885e7ad  libstdc++-v3/testsuite/20_util/optional/observers/3.cc
! 6c3e22bd4e6ade6496404f190dfbe415  libstdc++-v3/testsuite/20_util/optional/observers/4.cc
! 6fcc804664ff5aa29fa5387577eec7a7  libstdc++-v3/testsuite/20_util/optional/observers/5.cc
! a6a5e91a2b78bfd09c463e395dce671d  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
! a89ef9f9d43ab52b904d2b275abb2f16  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
  9b0c6c5d74424693ceca6e756d7db294  libstdc++-v3/testsuite/20_util/optional/relops/104606.cc
! b3b4439d9e36e080985ce45e8b301a2f  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
! e165f5d6cbe882d7bec5a469f8cc0dba  libstdc++-v3/testsuite/20_util/optional/relops/3.cc
! e27001f8e4328050dcc0fd57199acc21  libstdc++-v3/testsuite/20_util/optional/relops/4.cc
! b20ccd622eca09d6dad1040a90594cbb  libstdc++-v3/testsuite/20_util/optional/relops/5.cc
! 110a7b8c288ed7b0d65bd179a46ca185  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
! 57a425536f82d123a4594a26902dd338  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
! 13ff1846e1e60b9c80c5e47975367055  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! acc9ce832232aa4029b9bd7c1c769f1f  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! 5cdf907ddef01857d7dc6939b07d9d28  libstdc++-v3/testsuite/20_util/optional/requirements.cc
  dbea899b3c675ff68a2a4b74a3b78bca  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
! 8a0c876d36a73cfe54bbaaa6f2faddaf  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
! 4172595f5f9702b0b8d6d8fca4310397  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
! 61f84d179e30dec495a8d520d352ebf2  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
  63ddf373eb5a6d0bf6cfa6e8e5949381  libstdc++-v3/testsuite/20_util/optional/version.cc
! 91fd6aff8687311b90817e9054b8b8ae  libstdc++-v3/testsuite/20_util/owner_less/cmp.cc
! 45922cfdd3a0d34846c21e6f51617814  libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc
! 71bab00cc9f9b0b6866aae696db0ec1b  libstdc++-v3/testsuite/20_util/owner_less/void.cc
! 8966551e82d68a84dd5ab4dc1d5639e6  libstdc++-v3/testsuite/20_util/pair/1.cc
! 124ce37c5406ff5e0492e5059297957a  libstdc++-v3/testsuite/20_util/pair/2.cc
! 32ea938662322f1e41251b3796b4179a  libstdc++-v3/testsuite/20_util/pair/3.cc
! e68c783d5312be8fc8432581de946837  libstdc++-v3/testsuite/20_util/pair/4.cc
! 7ab026ed0dce3391668cd3b50ef0d691  libstdc++-v3/testsuite/20_util/pair/40925.cc
! 92e9d20d01052601fdf90fd12d4e49bd  libstdc++-v3/testsuite/20_util/pair/44487.cc
! aeceb7ed4a37e0d5069368b492298fd2  libstdc++-v3/testsuite/20_util/pair/70437.cc
! 51a46412304b77714b872e1e8e6f3de4  libstdc++-v3/testsuite/20_util/pair/79141.cc
! 822a3840be07e7e5c4780213a93d4434  libstdc++-v3/testsuite/20_util/pair/86751.cc
! 1cb13ea4644f86457d5deadd4202795e  libstdc++-v3/testsuite/20_util/pair/87822.cc
! 42a0e350327f8ee76e3eb851b8a88e51  libstdc++-v3/testsuite/20_util/pair/astuple/astuple.cc
! 9969b9e7b879fdc41bd2c8b1b8430694  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
! 9e5fd8c7ab53e88dcb27e8210fadc0b9  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
! 569d4f537539699020228db3183ae301  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
  f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
! 615717268a9494269a748b818516a857  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
! 5c2898a94510144572f642d26387084a  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
! 3e35724c208766af1ed84086f2284e05  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
! 0441756220779ea66d01fd82ab2fcbb0  libstdc++-v3/testsuite/20_util/pair/astuple/get_neg.cc
! 5f0d03c78883f0d5388117a60da7ebfa  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr.cc
! 4e56b4719b84bc0f400050717f12c07d  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
  04fed045318edda260e590d9ad1630a6  libstdc++-v3/testsuite/20_util/pair/comparison_operators/lwg3865.cc
! 0bfa2a6f102c47434fccf1cd29449891  libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
  c5964cf74c99c86ce570bfdb15835bb8  libstdc++-v3/testsuite/20_util/pair/cons/99957.cc
! a5671a9536df9d6651ad08288b3776b1  libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
! 39b1a117d414bee9d35e015445c91ae0  libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
  942a80b2cd63f8a170cc399f96dc99bf  libstdc++-v3/testsuite/20_util/pair/cons/default_tmpl_args.cc
! 4757c42c82a0068a539be8435735e004  libstdc++-v3/testsuite/20_util/pair/cons/explicit_construct.cc
! ae152713ca2bca96402ab590daab836a  libstdc++-v3/testsuite/20_util/pair/cons/noexcept_move_construct.cc
! 3c4d5b149b2e789df645e318955f5e6d  libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
! 795306c5760a967b9955f68de7f1504c  libstdc++-v3/testsuite/20_util/pair/constexpr_get.cc
! a78dc430c3f45637770e40a41338b268  libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
! 51d0155d543510207ec1049b36d11330  libstdc++-v3/testsuite/20_util/pair/dangling_ref.cc
! a2739811b62dbf085ce28e077d6df214  libstdc++-v3/testsuite/20_util/pair/make_pair/constexpr.cc
! 5ae6b8a04d61e6bbed6795586cdcde21  libstdc++-v3/testsuite/20_util/pair/moveable.cc
! 7e070936df885fea7d6b8a55ce5b5d79  libstdc++-v3/testsuite/20_util/pair/noexcept_move_assign.cc
! c8ba4a1fa85f8f3799d5d48e94c32f85  libstdc++-v3/testsuite/20_util/pair/noexcept_swap.cc
! 7a6c4156d1271972780cbef2bfc83584  libstdc++-v3/testsuite/20_util/pair/noncopyable.cc
  9f58a82f3464503f5b27380328198a6c  libstdc++-v3/testsuite/20_util/pair/p2165r4.cc
  f027f1875a4d3380e81bb134cfcba1f4  libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
! 7ce51f333e5e9e899a073b9aed650ba9  libstdc++-v3/testsuite/20_util/pair/piecewise.cc
! a06d8a0e0c9f32096a6406a88c96c972  libstdc++-v3/testsuite/20_util/pair/piecewise2.cc
! f9e2cbe79169b3cc8a8892e3b5de9c3c  libstdc++-v3/testsuite/20_util/pair/ref_assign.cc
! 7f5b4254129e73ad35f53ca7acdda0ba  libstdc++-v3/testsuite/20_util/pair/requirements/dr2367.cc
! 71ed619bdf64adf8f349fdcd8dbdb028  libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc
! d1f371b73d8273e08ecc5c3a47d854b3  libstdc++-v3/testsuite/20_util/pair/requirements/explicit_instantiation/1.cc
  03b33ab350fe86d88f4609f7fd82a60d  libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
! 5c7a05adee50d6aa61bbaa13e835b52a  libstdc++-v3/testsuite/20_util/pair/swap.cc
! 653df1cb837a9b8918e5ea93aac93408  libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc
! 6bf118cb458d6810bedd4cd44b932677  libstdc++-v3/testsuite/20_util/pair/traits.cc
! 3d2897cb91c946db15f421b6d62698e5  libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
  4ea61b01821ef91d050e7dc8bc19448b  libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc
! 2fc6a25698d3c1c76baeb310a4fde760  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
! 494db7bd8556d25204b5a5f6dc63772a  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
! 711d85748851372cd7c3ac3afd6e1bcd  libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc
! e91d88b3e37385d48b338e0111c3b19a  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc
! 39417a163d0bddb1e47a2be07b62859a  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
! 78297ec0a148ff215a2c9ae1ceb79323  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
! ef7bf7286cd39430029e319cf7395631  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
! d56f27d868d9f0dc3a4ac6abcc9aa724  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
! 5c081cb82e5f2978a33927c1b613afd3  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
! f91f68a13c9063e863fc90ad12950f66  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
  918078cc6c6d9bc5d48247416402bca6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3683.cc
! f94c5278b7faaa4983f57a762493920d  libstdc++-v3/testsuite/20_util/polymorphic_allocator/resource.cc
! 1f2404a40ac1338901a71357b1ec54c1  libstdc++-v3/testsuite/20_util/polymorphic_allocator/select.cc
! da685ad0f8e4e4fa0693d687d64bbf01  libstdc++-v3/testsuite/20_util/rank/requirements/explicit_instantiation.cc
! 5e5f5f36eece81a25a3fd7bf2fa17be4  libstdc++-v3/testsuite/20_util/rank/requirements/typedefs.cc
! 909d6a0d9bb1effec30504cccc91a316  libstdc++-v3/testsuite/20_util/rank/value.cc
! 06acc7b9f11d74633555c0a9ee3b054b  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp1.cc
! 58c629bd18122457010a91bf85f556c8  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp2.cc
! da29bca9095a0a7f089182e33ac18092  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp3.cc
! 4bb458797366e28b33306643f4cefc4e  libstdc++-v3/testsuite/20_util/ratio/cons/cons1.cc
! 59d8e4868433218deb962a9d7fdd1c89  libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
! dbb53c8138f3f14dd77ec984e0e3134e  libstdc++-v3/testsuite/20_util/ratio/operations/45866.cc
! f327a54be474f59fa6e75a338b821faf  libstdc++-v3/testsuite/20_util/ratio/operations/47913.cc
! eca6ccbf51d82ff5b987cd9aaced3795  libstdc++-v3/testsuite/20_util/ratio/operations/53840.cc
! 5e7b70871875efa66006547f45751b27  libstdc++-v3/testsuite/20_util/ratio/operations/ops1.cc
! 35e3f31c6c42678d93aeefed4ebccd02  libstdc++-v3/testsuite/20_util/ratio/operations/ops2.cc
! 1d65030d6917c2356c86c0e586da9a0f  libstdc++-v3/testsuite/20_util/ratio/operations/ops3.cc
! a9a24b19d5092c0313862ae3b1c732f0  libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
! 0214e01b9866348ef658b509210a5c3e  libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
! a33853183d3467306152eb66eea86f42  libstdc++-v3/testsuite/20_util/ratio/requirements/ratio_equal_v.cc
  d8bbe2c17046f08594a91f5a8e216ba7  libstdc++-v3/testsuite/20_util/ratio/requirements/type_constraints.cc
! f8cc33ad57ac67363aba1a64af35e7e2  libstdc++-v3/testsuite/20_util/raw_storage_iterator/base.cc
! 6e228d3d28cfb2302d82e05b89679d95  libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
! a9adba76d2fe490a7832742e7e4823c9  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc
! 2b4cfa074f04e948380d84e307d1f090  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc
! 9a89968da9b4325b21c4fcb951a2537f  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
! eba5de17eca1978d1e3c5225521f6636  libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
! c40f99eb8fa2bb3c9a7bd277b2978e71  libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
! 386ac1a7c747803dd596e39bb1a3b0fc  libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
! 4a84de3c42172db1d21479af249eca9b  libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
! 1a369bf662a5b94158d905648be7aac3  libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
! 1d70b7b9c54fffceaf77005ed677af8b  libstdc++-v3/testsuite/20_util/reference_wrapper/80504.cc
! b547cfe46e081cef4d5dd0f06dcaac0e  libstdc++-v3/testsuite/20_util/reference_wrapper/83427.cc
  d29855594ad103b670136d89c6c8d2d8  libstdc++-v3/testsuite/20_util/reference_wrapper/compare.cc
! 4fa11dbe92b0cf7f9980be8cda7fc942  libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
! e1dd2bf2f169f12583007616b46b7f94  libstdc++-v3/testsuite/20_util/reference_wrapper/deduction.cc
! d030df0029b347b4469c0b258449fe65  libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
! d8f661a86af9a16f994f900e3a3941fe  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
! f89272cc8d675ab3e85d631cb642da4e  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-3.cc
  3a4e290fbbefce397c537f6f76360292  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-noexcept.cc
! f1df4b8ffd8fbb8045d2609c25bae217  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
! 2fe6ee6c90d10bbbd7e33d9785485d2f  libstdc++-v3/testsuite/20_util/reference_wrapper/lwg2993.cc
! 782dd3a6d19c5cd91d186ea45c941af4  libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
! 76e162d2c98bac588fb6ddc52f05850f  libstdc++-v3/testsuite/20_util/reference_wrapper/requirements.cc
! 74477b6e613ee251f7260e87d71b6599  libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
! 153bed9230a9747ff0927ad1d4ce8839  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
! e577311ad229024124658061b0e3b5d9  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
! 759acc37e59835e83bc566c3187c4e0a  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
! b806de2c2ff259b6a2c1fff4bdd327a1  libstdc++-v3/testsuite/20_util/rel_ops.cc
! d2923f7a0850ab99b74d8e7706d83ba7  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/alias_decl.cc
! eb813f98b6ff87fa629604ff3d29cf7b  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/explicit_instantiation.cc
! d55cd625eeac776d8260721f3acadb94  libstdc++-v3/testsuite/20_util/remove_all_extents/value.cc
! 3123e1f95aee8cb8108d743f9e3f0a24  libstdc++-v3/testsuite/20_util/remove_const/requirements/alias_decl.cc
! 60a624d80bbaa154a91db80aa4a1b47a  libstdc++-v3/testsuite/20_util/remove_const/requirements/explicit_instantiation.cc
! 5c7f5ae3376835cc2cd001debd7a4232  libstdc++-v3/testsuite/20_util/remove_const/value.cc
! ddab12a6f756e0d42617009b9b89648a  libstdc++-v3/testsuite/20_util/remove_cv/requirements/alias_decl.cc
! e7632e58482812165621e743960acf5f  libstdc++-v3/testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc
! e01d7c4fdf88f7076af50644eb96c540  libstdc++-v3/testsuite/20_util/remove_cv/value.cc
! ee22633b5715c8097504aeb8926c3411  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
! 5f2da0584b4abe8c6de79e13be7320c9  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
! f1dadf8a57dc96c806eeb9c6ae6a6ca1  libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
! c9804f1188d6221c3d534987b19b705f  libstdc++-v3/testsuite/20_util/remove_cvref/value_ext.cc
! 3f0d9a53359601a091bd8e5442e8c87f  libstdc++-v3/testsuite/20_util/remove_extent/requirements/alias_decl.cc
! 0d6268ecefba01c5b5be1641b127ba89  libstdc++-v3/testsuite/20_util/remove_extent/requirements/explicit_instantiation.cc
! f7db508e1b430c89c6dcfea6272d2508  libstdc++-v3/testsuite/20_util/remove_extent/value.cc
! 078896fa757c90a9e3b61bd65526d4ec  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/alias_decl.cc
! 73736d1c78db36e11a3342f48259c141  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/explicit_instantiation.cc
! d443f1ef217a43436cf8c41d47bdf91b  libstdc++-v3/testsuite/20_util/remove_pointer/value.cc
! 52d47f4a5bd3cd213768c5364f1743fb  libstdc++-v3/testsuite/20_util/remove_reference/requirements/alias_decl.cc
! 67746248c33f0f87725a0afc575fdb43  libstdc++-v3/testsuite/20_util/remove_reference/requirements/explicit_instantiation.cc
! c1dc50bbf702d5d63670ede0f0e3a245  libstdc++-v3/testsuite/20_util/remove_reference/value.cc
! e4e95c17ca631ea965a4181a7ea11c03  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/alias_decl.cc
! 0503f61181ce068efd79ab94f3289630  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/explicit_instantiation.cc
! 84b2f7b3c696e3f7fa0709eb4a740183  libstdc++-v3/testsuite/20_util/remove_volatile/value.cc
! aa1e079d6fe130b606d801bf2a3ee4e1  libstdc++-v3/testsuite/20_util/result_of/1.cc
! 3bf380e3bd0030fdec44bf2af707298e  libstdc++-v3/testsuite/20_util/result_of/2.cc
! ac637ca532e4352307cb8f3a69f39ae8  libstdc++-v3/testsuite/20_util/result_of/requirements/alias_decl.cc
! 09b38d087b05f7e98e73c5f54f9dbb5b  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
! 1222bc2d17fe8754107a1caf4feca134  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
! 987792a96e6975b45d9bca45a0e247c6  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
  da8b1f9f56123156faf50b7277670b45  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
! 5cee0680314acb863b686cb1948a7cda  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
! 2b2683abe73127a11f3548aff7d59654  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
! 9c51d08d3cf49e4e24d935667b37f61b  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
! 9c42d8d15dc5036185bce75090e0666f  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
! e46fdeefe82e5a41bba301deebad1f13  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
! 541a8b9d5c43ffdce92d908782e15129  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! 922b21a18bd343c05db406f9cf341a16  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
! 38809dc7b95b295e964229c4de168ad7  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
  21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
! 18660ade8aa20d53fb49ad206e792414  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
! 321f03b00b48b90ada318542e9cbe260  libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc
! 76abbc28a63381ed13d8edb2ec1f1846  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc
! 07eb38ceefbc254bbded82ff94952912  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/typedefs.cc
! b7626d295c0c0927c5c5579384780632  libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc
! 3c3bf6d5d0405dbd94bdb6ace1a88285  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc
! 465895e3dc5ae5fa0f5506fdaa475c86  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
! f3261a80c598384b1585a5446f0b7f9e  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
! 1d40e097286b922704a45fc3356e843f  libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc
! 2baa70236d0f9624cb7b74d6d6ac79a1  libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc
! c73356476b9695d42921d2eace47aa9f  libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc
! b27864ff382abf361e012859d3e38554  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc
! eb098ee5e3fad5f26985bfc72c6e7b78  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc
! a1f4f3ca0de98bbdee6632dd8a1149a2  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
! ed6d6b65ca8d75039f8a9f80b2c5ce91  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc
! 27a491ca4f914d5d23c86d0a8bcbc778  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
! 34ed98a9a8a7abe291b00514008fd599  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
! d71c09ef6b4ca2597bcbf670d938db4a  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
  218bfa15322cbf3d4699fd75868ce542  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
! 3e13cdd9dc241e585997d2cef360747b  libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
! 557d76d4ee6966b198518993ea2e98e5  libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
! cb88c09a39e386354f7d6d2bb4989316  libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
! b8fd0a2f8651f16d1ce8874c6bc5ebf7  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc
! f5945a3f0fd4874a8364be985f324ab2  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc
! 944f5e7dcb8c46339acffb9c14672ccd  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
! 3ed750e3193dfe9084c38a1dec70738b  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
! 98122cb75a987259813931f90e9a62d3  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc
! 91d88f768ef91dea7b236ce8ca1ac22c  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
! d5d747833d875a2bdc0a8d0738606dc0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
! 4cbd9627f54ffb06dec30b2690e799e8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
! 350ff667975e499e697810cf9aeb10f0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
! 8c49b150721065da8b33f7c3067aa4c0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc
! fc255ad8343bb896830d474560fe1aa3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
! cca8744cf35b34b8150f880ac0d715b4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc
! 02296250bea83d3db0f730fcde2d98c3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc
! e2722ab32bba06f168c1f3f5c3e4aceb  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
! 740712ffb4743cf2c06b125f3c88e0b1  libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc
! 7d5ea3d2feef7321599d16958f1e631a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc
! f7a92a1c02e0bba26cf97d25c1ab1037  libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc
! 4bc10b472312cb675aff125e6ee9ac03  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
! 6cb4a1245ca66231a283d2eb72fa4f97  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
! 091cc24e72113750bfaa6a6dc0b021d3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
! 3827f72619f0338757a751d2f0040566  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc
! f80591525b801339925ea4d3f257ced8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc
! 3c2badd37fa4c6e08045ccddb0b8f4e7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc
! bee83ec82f47bb1be9144b1aac09af64  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
! bd46630a9f32a8c2975d7d0c9b15dbed  libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
! 0067c07a226c605cbf51bca998174a27  libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc
! 133300b478c870452db3bf554cfbbdd4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc
! 64096c8e105a0d63178bd08d419a1359  libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc
! 4f455829d9b28a486dbb810ad1818db6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc
  23dbae4c540e8990b44404c82f23bc80  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc
! 76c04edd3519b29f52319c22b541b6a6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc
! 072402e5ec83ebe0764f5e6c708ec09c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
! e15ab94015434e40ec7656dbc1d64aaa  libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc
! a43beb56f59653174d3ab89a358ceb54  libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc
! 1d8e7490fba3dbc7a4bded7d13396a49  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc
! 6d38e72be2fd22b33fcd256863353cec  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc
! 2c0f0b15d6f747d031b9b9c87b4fbf4c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc
! ccef1fc4376079ff2a6ae818173194a3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
! 2137ee4e169f8777d334e7eeb2950a2b  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc
! f97e4cd1e38c79ca90cafbadfd872a70  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
! f4f53549ced17f2cec982721ee6d70e1  libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
! 41c835f5b4d623036f2ef9d6aad9baff  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc
! 8b9b48896078186e693060a55f2ffc2c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc
! fa8c288672095a3796cf0810b88b6fef  libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc
! 637e230e4f31ccd64bd957512f0b2978  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc
! 4af18cbe7b24d170de4c539fc0a9d1c9  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc
! 283e38cdb9b7afdc21fb353793959c16  libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc
! c848410c9b4e3da10603cf10316aa0c7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
  81f7fb60e4aacbe92da9a1eab6fd4f82  libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc
! 8d7862519b839c2932719acd5d3c3ba7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc
! f87b665422100e02b26935a13a6d6f3d  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc
  404e20ed4771707f76a3b3d269fa453a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
! faba610dbe8a8da981242ff2d566d631  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc
! a3142e663fb8a3a2074a10540a65c896  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc
! 41e4ebaeb04ea6548e6af8064b98508f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc
! ef6c2838698a15ffb8035297c3553a1c  libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc
  26903b42fbcdb2e18b2f10007122a450  libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
! 6c83efce7c5ae794ca6c80fe5f139a05  libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc
! efbea56767359ec8d52d9474724ee03f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc
! b97378eab1a8ee0d46b0e388d6201746  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc
  98eeeb9df65778568c9dfbdc6dcf1713  libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
! e01bc358bf8cfdcec270e48bac448fb0  libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc
! 14d2d1117ff112fe0637058f78c2eeb8  libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc
! 739ec86c795451e739a22329b2259738  libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc
! b9e2d3e145c26a7e22077a3b54bcd58d  libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
! b0988cbaf968b536612eec6aa5b1282a  libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc
! 3ad0edb9e5fb912631074349fe3aafa4  libstdc++-v3/testsuite/20_util/shared_ptr/misc/io.cc
! d4c48bf82a4442a4c79eb32296ead7c8  libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc
! c91953e8fc313aceb300bd76662d81e3  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/24805.cc
! 205eaea93cb17abe2ec5bd918ab6e331  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc
! 0c3722fc47143cea16c6d48cc10c85d8  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc
! 35d09d4b6d15507479c967ea035535d7  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
! 4795d4ac5d9a3d2b75ec3d4cd9ec8f6f  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc
! 7c81ab0389436f8a9574ecd9a84d3acd  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc
! b4823b92b3803b0ff87322103d60a98b  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc
! 6243ad11f3d8848b9ae850d42316a08b  libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc
! 301cb21186c7bf3af8f29db2f4e978db  libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc
! c4040ddafb4996fabd1901d7d8e72765  libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc
! 6ff8d87d5d3d085604975998a212f74f  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc
! ea203dcee9ac7166ecba4c58a326cc7c  libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc
! 5594e19e9b158e97426d6089840fa1cc  libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc
! 4bf456010b41da55e3097acd3283eca6  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
! 139de8c288b3d1231ea2273f5d6ab169  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
! f29912cc6495bc9bb56ab937962df84b  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc
! 4754d67920d7fbb9d5a6ba6a9605e8fb  libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
! dd16dd3fdc39e584c2c4a70618085d59  libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
  106a32d2ad06ba7e04446290e6e7f969  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/1.cc
  9550a34a49f76d4f65809d5bdecb8f24  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc
  28208b70b1a0fd268c87a39c74ede57f  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc
--- 133622,134493 ----
  44dfca2fb3ccdb8f3ea97514568bab14  libstdc++-v3/testsuite/20_util/expected/synopsis.cc
  4b84f057fc22805edcab3b394acb5a2f  libstdc++-v3/testsuite/20_util/expected/unexpected.cc
  841bab6e9626640a4289d6b2192a63e4  libstdc++-v3/testsuite/20_util/expected/version.cc
! a575f97946121367a0e597dae96cb9dd  libstdc++-v3/testsuite/20_util/extent/requirements/explicit_instantiation.cc
! 4b8ed997a5c31981f1fc4aae96c15b38  libstdc++-v3/testsuite/20_util/extent/requirements/typedefs.cc
! 87c36e56af23d836f365244a25996af2  libstdc++-v3/testsuite/20_util/extent/value.cc
! 712defda3a8befa35c72db13c29b6fa3  libstdc++-v3/testsuite/20_util/forward/1.cc
! 460f62fa5e6d9071f62ddc89f652e110  libstdc++-v3/testsuite/20_util/forward/1_neg.cc
! 574b8cac2bbf599d5e78077129cbea6b  libstdc++-v3/testsuite/20_util/forward/a.cc
! 0a1112ccbf731de87896f891a1cdbb35  libstdc++-v3/testsuite/20_util/forward/b.cc
! cf7ad3115af1d53b2253ff5aa6795c04  libstdc++-v3/testsuite/20_util/forward/c_neg.cc
! d9cde900d2f00dc4e56452e294cc1681  libstdc++-v3/testsuite/20_util/forward/d.cc
! b54c7882ab92d17c90a3cb3a3bc896d4  libstdc++-v3/testsuite/20_util/forward/e.cc
! 92c08b239512331be5adf21d3b38c8fc  libstdc++-v3/testsuite/20_util/forward/f_neg.cc
! 832b10a8e635d78cfb99c8b50e362641  libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc
  ed57db4c99b7547ef1d1f77e0b4a5ecf  libstdc++-v3/testsuite/20_util/forward_like/1.cc
! 2c68b928797bbc656ad6ba1a430106be  libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
  a9e1ceee03428d699bf2f060477f330e  libstdc++-v3/testsuite/20_util/forward_like/version.cc
! 8ab0202e3859d5c4a2e52070673c3caa  libstdc++-v3/testsuite/20_util/from_chars/1.cc
! eeedcebb4ec072523081d1cc5680a59b  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
! d8357f05742c64c97c38936a7b76b7e0  libstdc++-v3/testsuite/20_util/from_chars/2.cc
! 78f48754e836fda3cc8522b6b60c658c  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! a710475d94f219e9f5577d07b8c2bd27  libstdc++-v3/testsuite/20_util/from_chars/4.cc
! bfa15c9d25f9f8f5d6da00123a01bb56  libstdc++-v3/testsuite/20_util/from_chars/5.cc
! 67ec97d0f76a53412677dd2d8d73ff17  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  33cb1fba3bfa8508f23e78bc210ae25d  libstdc++-v3/testsuite/20_util/from_chars/7.cc
! 50ecb451ae565041c682b8ca6aa88296  libstdc++-v3/testsuite/20_util/from_chars/8.cc
! a3559141f9bf13aae6ce23d449f09fe8  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
  af058ebcd1eb8155671cc66ccffeabb1  libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
  6772f8cd93ed8ce0eff86720c075a1f3  libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
! ab28bdce2a2574e5ea4e2ae33f1f9148  libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
! b08f85ef311d5c50735c0f585af97709  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
  9d285bb541483e8561f9c95180031bde  libstdc++-v3/testsuite/20_util/from_chars/result.cc
! 6d34c3790a491b67962918d449443b45  libstdc++-v3/testsuite/20_util/function/1.cc
! 3d8f5f0c6d5fae84376164caaa9d6299  libstdc++-v3/testsuite/20_util/function/10.cc
! d5a1bbbc836d6d35cb7b22a681f3b7c6  libstdc++-v3/testsuite/20_util/function/2.cc
! ce0cbad0a04cf516e48185ec69ea8855  libstdc++-v3/testsuite/20_util/function/3.cc
! fd68b8fe9fa137f3990576f3aff061b5  libstdc++-v3/testsuite/20_util/function/4.cc
! ebc650a3774f64ed9585134bafb32ea9  libstdc++-v3/testsuite/20_util/function/43397.cc
! 5aca75268ea723f116b2287d513b017f  libstdc++-v3/testsuite/20_util/function/48541.cc
! 8f4948e7146951e60509f88e0c55fe54  libstdc++-v3/testsuite/20_util/function/5.cc
! 170684b394cb0f66f2483bdc730b48a3  libstdc++-v3/testsuite/20_util/function/58569.cc
! 45807d43a77288f54e758d38c79d1e04  libstdc++-v3/testsuite/20_util/function/6.cc
! 543d726c5b87e28b206b1d13d19b188d  libstdc++-v3/testsuite/20_util/function/60594.cc
! 83ed6062f9249b5f132bffbcb6f4e998  libstdc++-v3/testsuite/20_util/function/63840.cc
! 7cc701cff7125000a948179686c54a93  libstdc++-v3/testsuite/20_util/function/65760.cc
! 21b954fe45cd88223cb321e73934e565  libstdc++-v3/testsuite/20_util/function/68995.cc
! 193ad0114eefa819123ed6e6ed2a9cc1  libstdc++-v3/testsuite/20_util/function/69222.cc
! f351ebeb729a1eaf7a5c148b4d8c72db  libstdc++-v3/testsuite/20_util/function/7.cc
! 721f619ecd740857c93cdb2b9d4f79b7  libstdc++-v3/testsuite/20_util/function/77322.cc
! 2278f308ae0c8c6c68a1a77ba1ca6f01  libstdc++-v3/testsuite/20_util/function/8.cc
! 265b132d4d3f2900c131ea5c0c25f358  libstdc++-v3/testsuite/20_util/function/9.cc
! 2c6e1dd9e3d5206174d22acea3bcddcf  libstdc++-v3/testsuite/20_util/function/91456.cc
! 0f4129f9b96a250952dd197018a2d9f6  libstdc++-v3/testsuite/20_util/function/assign/move.cc
! 5fbf97fdc157cfba0233d9e9b8bd1a2f  libstdc++-v3/testsuite/20_util/function/assign/move_target.cc
! c37e586f4dfaa73d0feb92bdc3bc9180  libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc
! 5a348c602440a620fc1f3434835daf0e  libstdc++-v3/testsuite/20_util/function/cons/55320.cc
! 318c76fdbf1f8a22641574b749f9bea4  libstdc++-v3/testsuite/20_util/function/cons/57465.cc
  ca608fcc60b0b1c480c8cea18bc2d21e  libstdc++-v3/testsuite/20_util/function/cons/70692.cc
! 29c76a4d8fbb8d27c5600781c4542705  libstdc++-v3/testsuite/20_util/function/cons/72820.cc
! 29fce3ae557166b491f825fde5e9fafe  libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
! ea570cffd5e859d4612f3ce4fea6de4a  libstdc++-v3/testsuite/20_util/function/cons/callable.cc
! a7f490270266e115671777eb8e1396d3  libstdc++-v3/testsuite/20_util/function/cons/deduction.cc
  97c5266cfd231b50e676670e3fa70cf1  libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
  4b7e7e2f146d54b30a53e58d7a111cf0  libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc
! 2e0e56fe3676d2d0177794f60c3e61e9  libstdc++-v3/testsuite/20_util/function/cons/move.cc
! 7b9b1ae0cb5eded09c7a15bd81cee549  libstdc++-v3/testsuite/20_util/function/cons/move_target.cc
  d2a67a46055d71f856a2cdceb8f3c448  libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc
! b4bc08b21d04d70a8027a854f375a8cd  libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc
! 634187168a9f961e6e971b74bdbeedc3  libstdc++-v3/testsuite/20_util/function/cons/refqual.cc
! 50c75b6b320c7fe78e1eeb818cd9e480  libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc
! da651dd004d0c17e3757b420f0f651be  libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc
! cf0e17bbd866d9cd26def3c1b550256c  libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc
! 927fc7212da895d9c6ec8127e5916b36  libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc
! 301115b4ac6059939af6a41b978b489a  libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc
! 8f5e17f706249e407588401c4f4da0c4  libstdc++-v3/testsuite/20_util/function_objects/83607.cc
! aa72d6da468d29b49666c63e589e7321  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
  ee958473de98a12b182d429e35568836  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
! 2f63cd2255fde6cd4f014efb1ad34b27  libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
! f059d399ef4164f7ac6ea422fddd3df3  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
  b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
  93d1fc75e07731fda7dccf37968708d4  libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
! 586c9c5a05cff6578318e5d46789f1c9  libstdc++-v3/testsuite/20_util/function_objects/bind_front/116038.cc
! 1a693160b90575d90d17b98c05d54334  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
! ca6516aefe54fd40ebaa1dafa0a11255  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
! 3cfdb7914d47020c2f60f9d7e8289c83  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! 24b9567e8fc21dd935610beedfbf85aa  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
! 6bab66b664cfd3bdfffcc4a40e8765c9  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
! 9eada3d910abb2dab015aedf3bc0d541  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
! 40c2bbe125de63af1786acb3b1450c2e  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
! 87c00b085541617e0f20937088cd5ecf  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
! 5a3606d23c3021668b59cd384a9efe76  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
! 3ec127bce751f23d1edd40dc15a421d5  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
! 0f702fa30319c9b8b6e7fcfab1fe748f  libstdc++-v3/testsuite/20_util/function_objects/dr660.cc
! f6e99d929068b16a445b2e8cb95e9143  libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
! 4e605c5e4eff147b4e9d8ff44fb762be  libstdc++-v3/testsuite/20_util/function_objects/invoke/1.cc
! 6c1f4185326f886b52193f48b67adf24  libstdc++-v3/testsuite/20_util/function_objects/invoke/2.cc
! 0398511e40b142cf8d8111138a9e57a7  libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc
  16f1c3ae8b224a6acd214a0bbbfad3ca  libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
! 1e622a1d2b412618ae2a5999bcc14340  libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
! 94267961ad15547f85c8b87e66cb702e  libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
  db4aad8eee98e71f78ee6303282bff30  libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
! 87125fdc86dbfd0071c25013e31b0500  libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
  51a8225eb82549eba5a4e7ef51a785c3  libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc
! 6e3be9a5f314205456d064c5a0806b99  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55463.cc
! 3993f53175bc179007a98accb5dfd53e  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55908.cc
! 69db21a7a5d7872ee5590c8915502f16  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/68982.cc
! efe0713d02aeb9eb4bab4f0fea9f66dc  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc
! ed22f1a32cfdccf5200689be87c1cc39  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc
! 7ccb646f1029b4228632276f9efe07de  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
! ff6c4579fd9a68a2d44a0b8d16f91b70  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/forward.cc
! 710e7f4fd797055d7c14e47abdc082f1  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/refqual.cc
! 1919fd19d4b3213099623c7a396bae90  libstdc++-v3/testsuite/20_util/function_objects/not_fn/1.cc
  aa8d69634a029bc703f7e9108347b384  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
! 09052f313029340fd1ab81b3fb208f6e  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
! 09755c5f4b9f88cb66ad1af5db8c2de8  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 91cfdce8c977003b54d30276c3da4de7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
! b1e66e2c7061c4da356d95b75e45b9f1  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
! 9e953a7e9438d39f962eb82c52623a4a  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
! 5ed4e358c8e505c68bdbc81b19bec284  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
! 8c0a8dc461cfd6820129f3f65033f4d7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
! ae2ce9313b5b55e9f92c8d0a2fdcd6ba  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
! d0675e06358623699e0ac00ab3a3b4ff  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
! aaf31ad5f5751b35d44492f62dcf0929  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! 73764ddebcfc0e9d84061e05bfaa4b19  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
! 602383b745f03a3986179ef6272aa326  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
! 7bbb4b378536783fcfba507c0ee6d368  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
! 14972943be2afdf1ebc4aa76f0cf74d2  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/explicit_instantiation.cc
! e7d694c1bb910834df9bdd2f3cb80298  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/typedefs.cc
! 73b08164de3dc744c4f6683e1d9ef27d  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
! d2dc29240b4a8c7194f7d02f946bd428  libstdc++-v3/testsuite/20_util/hash/52931.cc
! ba90ceba12d02d8e23486f475f8b3398  libstdc++-v3/testsuite/20_util/hash/60970.cc
! 1ba845e0c4b7411473ce1e2f98875f04  libstdc++-v3/testsuite/20_util/hash/84998.cc
! 09c8c501d29b3250e4a6c1fb3bc0c6e2  libstdc++-v3/testsuite/20_util/hash/89629.cc
! 763c6359aa1fd53af4965fd8bccf6e1f  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
! bf71539b18800143c3bbaf959c006626  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
! 5f9dd81500f1e6953b9542d4c982fa6e  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
! a5b9268557bb699fec69720dc328e165  libstdc++-v3/testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc
! b71085113a5b3b725833cb368fdae198  libstdc++-v3/testsuite/20_util/hash/chi2_q_uniform_random.cc
! ee255807f9fef2336c1319c3cb631071  libstdc++-v3/testsuite/20_util/hash/chi2_quality.h
! 3e832194def228533295260d4b4f20dd  libstdc++-v3/testsuite/20_util/hash/nullptr.cc
! a4bc065e63d289954387f000646d1a3b  libstdc++-v3/testsuite/20_util/hash/operators/size_t.cc
! 16f4d1451fe145bf8975b8bdd80a9228  libstdc++-v3/testsuite/20_util/hash/quality.cc
! 373eee2965fa5a0c1b39732e2b0321f6  libstdc++-v3/testsuite/20_util/hash/requirements/explicit_instantiation.cc
! 8f65fa7e7f822bfad3b2d0169b9dc77f  libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc
! 735b68d7706772290762c7553504f898  libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
! d55d5bf67dba4af720e01e21a62a0be5  libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
! 8555e593af1e9e647640562ad30fea12  libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
! c74a827c144ff0e444812aa72303f939  libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
! d9263c70ce78dea057221091a1defbb4  libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
! c321382f19a792acb5701f0f9c65a376  libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
! 1949a66ac63785b744802e205dd66249  libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
! 5cd2bc24ab7286fc3de79184c1ebbce9  libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
! 8e22bcce2b7196ff33d088efc48ff1ec  libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc
! a69299709ad55c8e891216919470533c  libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc
  8b53fa85edafd52c50395631802734a2  libstdc++-v3/testsuite/20_util/headers/memory/114866.cc
! 55f5eda06de1ef3c6e132e04e98ea054  libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
! 272460dfbecaa542ec482d22035f4cf2  libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc
! ab228be36ab386f60d442030820f1348  libstdc++-v3/testsuite/20_util/headers/memory/version.cc
! daf90d8ed8797ee551ba5bc0a0aa71b0  libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc
! 2b5c7631c9fc571e2357b26a342c0800  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc
! 2be10e3816ca330b10e8dd826eb4a3ec  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc
! 4639f197c1e25cc8d10d75f29c0030cc  libstdc++-v3/testsuite/20_util/headers/utility/ignore.cc
! b5303bbd9648122aa1945fc55a8a9c83  libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
! 4263a96f70827736ff8bf04e95844744  libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
! 0e02e40bb542f218fd15244f5f7a1d8d  libstdc++-v3/testsuite/20_util/in_place/requirements.cc
! 06308925f78d8fdf3f47be3c8d2deaf7  libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
! f31f633e0212b476ca41c3f6a0c4f628  libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
! 7bd5a7e45d99985c6dded52e7c805868  libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
! 8d96ef7bb50f3f92d2f26416ed49f679  libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
  23268839cfbf52c1337d5616e250b6ea  libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
! 04b4397e9095f0eac4bf443ab0be31bd  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
! 78ece8f175d389c51988e90a6c1d037e  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
! 1be085163b0b5d54bf3b0aee6e793451  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
! 5c205d375f4808e40e9e67c63e890864  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
! 134e316525bd57fec6bff57aa898d206  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
! 7ef35ab0e6ecc0283c1fa738f89c1a4c  libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
! 6fe74759b17918a7bf94a20d304f81f0  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
! 6b8db2cf10aca7019e3f5169c4faf949  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
! c49bbb44e554edcc8230ba9903c5a03c  libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
! f630e1f5ae0fc074dcb56248b1b6f6b6  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
! 8d96ef7bb50f3f92d2f26416ed49f679  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
  01419816e55df10955ea47006b7fd41b  libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc
! bbe36442782331b937fc9ef5f4fe38b4  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
  b299881c5f8a46c9954c9cfffbb15437  libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
! c4212b67fd6be0a579057228b717e2a9  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
! 98bfce73af2048ecfd06b93b6aeefbf0  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
! c56d98a7b7af7268149e44aaf789208b  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
! cd411a2f1fcecd1d91e55a6e67af8569  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
! 8887c40efa7e5a13c05025f913133914  libstdc++-v3/testsuite/20_util/integral_constant/requirements/explicit_instantiation.cc
! 663b9b87a4af7c06a53a108ba3f15268  libstdc++-v3/testsuite/20_util/integral_constant/requirements/typedefs.cc
! cddaf629dc76319841b277cd4801a886  libstdc++-v3/testsuite/20_util/integral_constant/static_definition.cc
! 2898cebb77b4aebe9148fadf39d277a2  libstdc++-v3/testsuite/20_util/integral_constant/true_false_type_typedefs.cc
! 7c2384d2dd02d351c6254cbd838e2d2d  libstdc++-v3/testsuite/20_util/integral_constant/true_false_value.cc
! 6d2204114ac035773ad0b98a139b1a9b  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_args_neg.cc
! 87e2d6905eb352a285b1adabe039887f  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_neg.cc
! 235c44a0a574c48e47f0d3b113894516  libstdc++-v3/testsuite/20_util/is_abstract/incomplete_neg.cc
! c64ce1d71c3e73288a217a5d40f1101b  libstdc++-v3/testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc
! 9dfd039aff58c5f9f902bc9cb0e73833  libstdc++-v3/testsuite/20_util/is_abstract/requirements/typedefs.cc
! 62184232ab94c74e009950c7cc48f362  libstdc++-v3/testsuite/20_util/is_abstract/value.cc
! f65d82e4e2d188f8b92bb8352d22e316  libstdc++-v3/testsuite/20_util/is_aggregate/incomplete_neg.cc
! 760b90266094e459780c18e0619fd2b1  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
! c563f4eb7898aee1fb93fbf1f6fde091  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
! 591c5e1990b09053a7feab72d19af067  libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
! de00f6bf96c35f41c393f4ed88c6d6e8  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/explicit_instantiation.cc
! b965e5d951cb414a4abd4fc3ed043a45  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/typedefs.cc
! 40fee47e94747f30c96fcd0d7ba276e4  libstdc++-v3/testsuite/20_util/is_arithmetic/value.cc
! acc0ab3c67601f4341919b7bac661a47  libstdc++-v3/testsuite/20_util/is_array/requirements/explicit_instantiation.cc
! 3eda3e5c58811818e29cae9ad6208729  libstdc++-v3/testsuite/20_util/is_array/requirements/typedefs.cc
! 8ce2ab26c0914a33db72622cc03339fc  libstdc++-v3/testsuite/20_util/is_array/value.cc
  6768b922ca72460fc141a677fddef045  libstdc++-v3/testsuite/20_util/is_assignable/requirements/access.cc
! d5a39830e73e51c3236aba2950f8cc00  libstdc++-v3/testsuite/20_util/is_assignable/requirements/explicit_instantiation.cc
! c3d67801ae20208b5673016d9b70f2cc  libstdc++-v3/testsuite/20_util/is_assignable/requirements/typedefs.cc
! a707511d2d777cd56756cad57162e248  libstdc++-v3/testsuite/20_util/is_assignable/value.cc
! 8f6d8d7d3f8e789f55cde7a0e15b127b  libstdc++-v3/testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc
! a2f8c36af4c56adfbac539477c76f397  libstdc++-v3/testsuite/20_util/is_base_of/requirements/typedefs.cc
! f180f23c9ab09f2a6555699282f8f4e0  libstdc++-v3/testsuite/20_util/is_base_of/value.cc
! 4c55f5c29bcaca998ada210992d6df1c  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
! c348ff89d182ca605abdd38410d38e4e  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
! 7ec1d24c4b811822de6ecab2f6726218  libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
! 35a5a8388dff81d0b60f03635c2412bc  libstdc++-v3/testsuite/20_util/is_class/requirements/explicit_instantiation.cc
! e560ce8df64321f55cb514b3433acccc  libstdc++-v3/testsuite/20_util/is_class/requirements/typedefs.cc
! f4e459f87411ef38d5b77f9cdcea5f4d  libstdc++-v3/testsuite/20_util/is_class/value.cc
! 8e0262639198bc494335575cf9f2d602  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization.cc
! 7d18ecaf4f8613ec2212da82f4958303  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc
! a65f69464a6a814f65cacc6d13d28a90  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/value.cc
! abd275a41bc30e06dd5afcc9de6d6fa6  libstdc++-v3/testsuite/20_util/is_compound/requirements/explicit_instantiation.cc
! b562522b4260521d81485c8d96aca789  libstdc++-v3/testsuite/20_util/is_compound/requirements/typedefs.cc
! 996b85302625c18db2a477f78ee221df  libstdc++-v3/testsuite/20_util/is_compound/value.cc
! 156a2a2ea2c40f4dc8b8abd94809d0e3  libstdc++-v3/testsuite/20_util/is_const/requirements/explicit_instantiation.cc
! 06a384e01b0a732d43db16d3d4c3eeb6  libstdc++-v3/testsuite/20_util/is_const/requirements/typedefs.cc
! d80fa106e6fec165fcf8be2220459890  libstdc++-v3/testsuite/20_util/is_const/value.cc
! b5b4c6b40ddc09278342e4fc7093efd4  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
! eee79ca29a9e73c94b0e56aacfc0b975  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
! aa2b89173d39761657a829df732e08f7  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
! 8a2649a3e58bf8e673b5192274b3baa9  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
! 35a2cf778f0afff5505a3cabbf1690d1  libstdc++-v3/testsuite/20_util/is_constructible/80812.cc
! aa9f1b5bec7c731e70f9226572ba8401  libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
! 0cd7eec3a35636f71d9484afd4bf70e1  libstdc++-v3/testsuite/20_util/is_constructible/94003.cc
! 956aef2b105cb42e87409c7ccfba5778  libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc
! 65087484a9fbd6998fe4178928ccdb1a  libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc
! 5e5abf9e1e101bfa31efd25cea386a71  libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
! 208f1b8f29fa7b2aef257e077b8a6b94  libstdc++-v3/testsuite/20_util/is_constructible/value.cc
  09d897b8e5e8f52ce748db0bdf75aa0e  libstdc++-v3/testsuite/20_util/is_convertible/requirements/access.cc
! 4d4005a085f10a3622e905dc28b1190b  libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc
! 244e65cd605dbaada6a60e2c95bff9ee  libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc
! e5221f95fd13d8f35b84f24c1922e005  libstdc++-v3/testsuite/20_util/is_convertible/value.cc
! a11189273140f6f12613150dfeeb745c  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/explicit_instantiation.cc
! 89b9ce3dfe94039a085b7c783f915af1  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/typedefs.cc
! 7e84441e2c92d7b531d16687766d9be0  libstdc++-v3/testsuite/20_util/is_copy_assignable/value.cc
! 2484536f81b43e30058cfa0fd33b96e9  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/explicit_instantiation.cc
! 5b5e04bc5d978fa973dc81d5aee4c871  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/typedefs.cc
! 41325d542b76aa60e77a6811876b58ef  libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc
! e7a137800c1b497759199492c8c33f02  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc
! 2da3b3afe6198e72e570b11a06053cc3  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc
! 19e05ba31e9459bce4b3e42941bd5df9  libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc
! 8ce4c2a8a781bd662f23402b54178c69  libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc
! d0d5441ec5a0a42d2d0c05a34b380d11  libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc
! 495515dcbff8080f84a26decb7f20d34  libstdc++-v3/testsuite/20_util/is_destructible/value.cc
! 3931e84d148701da3135b8640ae1457f  libstdc++-v3/testsuite/20_util/is_empty/incomplete_neg.cc
! 690d65267c0023a88804e948c40c7908  libstdc++-v3/testsuite/20_util/is_empty/requirements/explicit_instantiation.cc
! dd9bff88737e63455693c257f7a5dd4f  libstdc++-v3/testsuite/20_util/is_empty/requirements/typedefs.cc
! b3553f7cc2b5077c5c2447d7661928a4  libstdc++-v3/testsuite/20_util/is_empty/value.cc
! 8a3a929e5381adc975a9c9f7557ab4a6  libstdc++-v3/testsuite/20_util/is_enum/requirements/explicit_instantiation.cc
! 76ec91643a06e0cd347b01762c826195  libstdc++-v3/testsuite/20_util/is_enum/requirements/typedefs.cc
! c5f07cff993223cb98c102bf5f807f27  libstdc++-v3/testsuite/20_util/is_enum/value.cc
! 5555de5fe6e8051efbe01ac88da2684d  libstdc++-v3/testsuite/20_util/is_final/incomplete_neg.cc
! c6ebecb30da6e597577d180930bd5dfa  libstdc++-v3/testsuite/20_util/is_final/requirements/explicit_instantiation.cc
! 985247ce33036a1db8269876357e5371  libstdc++-v3/testsuite/20_util/is_final/requirements/typedefs.cc
! d0735e969c9299b68df1ea2c7925e33f  libstdc++-v3/testsuite/20_util/is_final/value.cc
! 1a4e839765852f992f317a2300c97368  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
! e0cf2b857ef03b34f4ace7f29f25d049  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
! 6fd539bf7d4e03ab18aa8781268eab3a  libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
! ad5f3cd8661fb142457256a1c32f716d  libstdc++-v3/testsuite/20_util/is_function/24808.cc
! 3b770592ce7c53b859ab7d42a4e19463  libstdc++-v3/testsuite/20_util/is_function/35637.cc
! 29b68831a186cfb168a1a6d076b3d421  libstdc++-v3/testsuite/20_util/is_function/91371.cc
! 668b7eb99a8df8aebd4d8d75a786fc13  libstdc++-v3/testsuite/20_util/is_function/requirements/explicit_instantiation.cc
! 397db7ffd216718d9cc7a158e4bbdfe7  libstdc++-v3/testsuite/20_util/is_function/requirements/typedefs.cc
! ef314c08bd7a5b34f764c545ce84dfe2  libstdc++-v3/testsuite/20_util/is_function/value.cc
! 949cb8b4df5c7ecaccbc0c2a6bacd48f  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/explicit_instantiation.cc
! 96005635102ccd03db221fd3fc8953d8  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/typedefs.cc
! 373db358b865e693f68e7ec98ccd75fe  libstdc++-v3/testsuite/20_util/is_fundamental/value.cc
! d3547bda272766318da8619b4e121bdb  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc
! 8e5506f359172e965cf6094dfdc9d0cc  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc
! 99eec75693146f737f64e63ecad63d46  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/value.cc
! b55a7d864c277ad079ec822ada4f711f  libstdc++-v3/testsuite/20_util/is_integral/requirements/explicit_instantiation.cc
! 0d0463cc980042829723ecd1b6d738c1  libstdc++-v3/testsuite/20_util/is_integral/requirements/typedefs.cc
! 14263a686b7b2281bbe0ebb1fc9797f8  libstdc++-v3/testsuite/20_util/is_integral/value.cc
! 57e0f074988635c6f6210d3a3e586dec  libstdc++-v3/testsuite/20_util/is_invocable/83395.cc
! ddd7c5c130588f2f44209d6b4a85d8cc  libstdc++-v3/testsuite/20_util/is_invocable/91456.cc
  15e39483dc403920d82c01777fcbfd43  libstdc++-v3/testsuite/20_util/is_invocable/dangling_ref.cc
! a2601139356aa6ba4f72f37d5ec72fb0  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_args_neg.cc
! 6eeedcbfd7f969e750416edc4abcc752  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_neg.cc
! c7cbce4e3b1d0652250f695240500648  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc
! b177a724e51756602efd9dd786180e98  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation_ext.cc
! 61cfd4b92f6b43133f39c193a6ff49e4  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs.cc
! 39d71d74970a98876126fd6c0ff641a7  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs_ext.cc
! 67c55376cbc1482b5e90649a80738289  libstdc++-v3/testsuite/20_util/is_invocable/value.cc
! 03c8b607242406513f2e1e40798c729d  libstdc++-v3/testsuite/20_util/is_invocable/value_ext.cc
  1079591eafc5af1141e10c7791fcaa6d  libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
  31a740f1c6844e8db8616f864b8448c1  libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
  238b3120b9f8359df017f0d5349ddc89  libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
! 84dbc0c58ae82b3e267e1d3a00c82637  libstdc++-v3/testsuite/20_util/is_literal_type/deprecated-1z.cc
! 946e91b80efcd3a06f7bc89860f7a4fb  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
! 78ced3ba9ea39afc59e265b010bae58b  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/typedefs.cc
! 699368f9693a2e2b2a8794928a6e9a92  libstdc++-v3/testsuite/20_util/is_literal_type/value.cc
! 84f611ff88f79f0a0b9b70ac818fedfe  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/explicit_instantiation.cc
! 43bab44e026ebfaef17fe77282093068  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/typedefs.cc
! 9dbca1cc9064b8ce9cff6039fcb77404  libstdc++-v3/testsuite/20_util/is_lvalue_reference/value.cc
! 8d481be01881b7be778b082fbc8f786e  libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
! ac142a8a56b13aad39cae55e38033e04  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/explicit_instantiation.cc
! 1eb66fd22acabfacb1aed07ddc0c0301  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/typedefs.cc
! 13a2bc8d696fa7626d2e7e1496a32556  libstdc++-v3/testsuite/20_util/is_member_function_pointer/value.cc
! 3cb49d5b77ae99b41b138ed29375ef7f  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/explicit_instantiation.cc
! cba925058528b869353c1b5083f91047  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/typedefs.cc
! b658c75b34b1f9f1dd291f9d67498293  libstdc++-v3/testsuite/20_util/is_member_object_pointer/value.cc
! 066ae2aa3c5c63aa440c7d8b056856cc  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/explicit_instantiation.cc
! 51e08229c003762e7b867006582980ce  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/typedefs.cc
! 4c6b1bad3965dd13975b3ef19ac35614  libstdc++-v3/testsuite/20_util/is_member_pointer/value.cc
! 399aad61989cd54b7d19a59d7c73d0cb  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/explicit_instantiation.cc
! bfa78a496db1f2dbde7de8c93e45a0ad  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/typedefs.cc
! d272682003db36429f3ac5f799ef6092  libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc
! 1961243a3fd65c926a2c364aa4d6b237  libstdc++-v3/testsuite/20_util/is_move_constructible/incomplete_neg.cc
! 98e6971539c4dc8f0cfa40d6f7cefa51  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/explicit_instantiation.cc
! 4f13e701899b0c040c49a7c7347c9b82  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/typedefs.cc
! fdb50a891a50c61593d4c146fefba336  libstdc++-v3/testsuite/20_util/is_move_constructible/value.cc
! a8f3b635f39c822bef1efe06490d89f7  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/explicit_instantiation.cc
! 7e7d976084b56d9e414e7fb8e82ecfc2  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc
! cd4ec49056752eca97e7c31459d76321  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/value.cc
! 8f25e788e25c503649b2c0a1bf8c4c3d  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/94003.cc
! 074b00c248c7757525c0a300256414de  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/explicit_instantiation.cc
! 1f1a82b119f6d67a90a6d8a09e60f43e  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/typedefs.cc
! 15c0561e30e25f123ca71e7a31f0f98f  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value.cc
! 416c63381ec53e91bc8619fd49d642c4  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
! 384ce90217c293a3accca11d4c2c292f  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
! 8774b691fdbb538b1d6e3440f33cc2e0  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! ce4ee772564aa0fd8286df8b58e7f86b  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! 7c91ca744e4763bf04d78f7f55737081  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
! 92b99ad5ccda61de538c784f2a8ebe32  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
! f298b9110f804b0f6e45be2d0dea9055  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
! b66c310f66b6ffd596b6193f00cbc34f  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/explicit_instantiation.cc
! cd222187659ee51e29bb1647388f80ae  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/typedefs.cc
! 8a87d00617190ccc0a01834628eeefea  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc
! 9a6e3ae291f4a8e692627ee0535a5bdd  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/explicit_instantiation.cc
! 0754cd41c4c37c47b9eebd32c1acd0e7  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/typedefs.cc
! 15a74a6a5383996d4161eebe2991fbff  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/value.cc
! 874785e599624f90337ca63d2904a829  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/explicit_instantiation.cc
! d92052d2fe1bdf81937438fe9d8151a9  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
! 7955183ba866a6549b564c1deb94ea02  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
! 5684f4ef9eadb68bb2024b0e2bfbe340  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
! 56c7937dd12ed6a4a413496419e76486  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
! 7f720f6c03d87146f8137480604bf42c  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
! 15a73bb474613c34c77351cb1f87f445  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
! 7392adafc5635e6aa730a13d8dbfa530  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
! b1bd317e440fba644001ff238a344cca  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc
! 8807dfa48ef7869e3906433896eb4383  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc
! d280218117b0166d37d0d2f84c0f4a89  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc
! 03166004664e17817a9934f9d1e0e873  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc
! 4a97a85c28937cc288156f91ec26741c  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc
! 5761f9ef6010bbc7bdee326674944a37  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc
! 7819399cf9a2b5877e5c9fc56f24d652  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc
! 7540080530e51278d9415e021087d584  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc
! 08ca45fa678db163ab5a62d901e9b7cd  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/value.cc
! b20308caaed957da07eedd793e1b3065  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/explicit_instantiation.cc
! 65734306b62edaa61bbeb4b28fa962a9  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/typedefs.cc
! ecb1d29364e3f53a5a2afcb348ef7093  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/value.cc
! 2afe6e3e6f5442d3dc54b8e8fbe5a5a5  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc
! 14da95a540225a8d8065bcb30e8fa84e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc
! a691090d7ba66b60565bcf8bbd6c49d4  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation_ext.cc
! f0282da70ee40bca2bf68030050c633f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc
! 02fc00fcf8a0fe2d4d067eb022a012cc  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc
! 2a04bd3dc9294303068cafae5546bb9f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc
! b4975fd0bbc971ff25cd0556aa7a6745  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h
! 80901753d992003cf896d532f887e75f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value_ext.cc
! 0b9d14016693b43e4ac08fc71f6b82a9  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc
! 52171e4aea871b360b9a4318f407a1d3  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc
! 77b63c355dc415ccc45ce6030cc06347  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc
! dcbd870d17bad46e9e108dc6e21662c7  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc
! a2049e0bf6d1300b16f7cf0a6040dac3  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/explicit_instantiation.cc
! f76ab368189eb1693873730774e763ef  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/typedefs.cc
! 3931948c5e23ea48c5669e3234f4b558  libstdc++-v3/testsuite/20_util/is_null_pointer/value.cc
! 22f032414da8400eb0ff3ec911842e94  libstdc++-v3/testsuite/20_util/is_object/24808.cc
! 71f298e4c1d27dfd186edcbe3012b522  libstdc++-v3/testsuite/20_util/is_object/91371.cc
! da8e5e15cf8ba526c334c9402eef42c1  libstdc++-v3/testsuite/20_util/is_object/requirements/explicit_instantiation.cc
! 665bdfeb135d546d33671b4fcd6ba307  libstdc++-v3/testsuite/20_util/is_object/requirements/typedefs.cc
! d8269e503a575731264d0aa0830d176f  libstdc++-v3/testsuite/20_util/is_object/value.cc
! 8ba9ef61a05b312af3092c1295ca175e  libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
! acf0bcee2abde1e5ffdbbb0b03bff9f4  libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
! ca25badf29433660f59b67d6d305b781  libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
! 0ddcd1add0d7378d2f57f4a42721f896  libstdc++-v3/testsuite/20_util/is_pod/value.cc
! a10fea2a89214a4b110c85c8226b0657  libstdc++-v3/testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
! 507702a7a97a1110f817ba9ed3ea268b  libstdc++-v3/testsuite/20_util/is_pointer/value.cc
  e9378376f3c816595bd186a3a1c0f891  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
  f169bdc3e67f0f5bc01e3bb0e270046e  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
  d637ec4fe9a801365e4669014a78359b  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
! ba05300e868793f69eaf4f96fe3fe4c0  libstdc++-v3/testsuite/20_util/is_polymorphic/incomplete_neg.cc
! 49e719b6e12a2edaf66f3d0972e62768  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/explicit_instantiation.cc
! 5d3f1c2168151938f0742c78903eb8de  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/typedefs.cc
! e9677a2727c98efe4d8ec47321e89ea7  libstdc++-v3/testsuite/20_util/is_polymorphic/value.cc
! 853df19f78984deaf18249514bb49bc7  libstdc++-v3/testsuite/20_util/is_reference/requirements/explicit_instantiation.cc
! 315d5886b25d1d64303b3d9ed7878808  libstdc++-v3/testsuite/20_util/is_reference/requirements/typedefs.cc
! b84e819d19e22e40df1c5b7d9464ec33  libstdc++-v3/testsuite/20_util/is_reference/value.cc
! 2a5c967de9bacf73353ec9c4ebcd1223  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/explicit_instantiation.cc
! d4728fc4e5e0057d756c3de6e699d621  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/typedefs.cc
! b8a59a9961ea2dc51db1bea2ae5efdfb  libstdc++-v3/testsuite/20_util/is_rvalue_reference/value.cc
! a5d6def4afeac1215416e2df12146d74  libstdc++-v3/testsuite/20_util/is_same/requirements/explicit_instantiation.cc
! dcbed955520e6c0a1d0679b343d5e367  libstdc++-v3/testsuite/20_util/is_same/requirements/typedefs.cc
! 76629eafb27abacd214f013b841a815a  libstdc++-v3/testsuite/20_util/is_same/value.cc
! 46a059541af7dccc34ff1677fe33316f  libstdc++-v3/testsuite/20_util/is_scalar/requirements/explicit_instantiation.cc
! f9619c12eb8ae59c5fc983adbed3abfb  libstdc++-v3/testsuite/20_util/is_scalar/requirements/typedefs.cc
! 0bd7704609d06200d5be490dd52cbde8  libstdc++-v3/testsuite/20_util/is_scalar/value.cc
! 7ef6bf0c8a8954182c5e05f4d3502c1b  libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
! 73f9b0a40c25e441dca3b286e07f17bf  libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
! c46c663c156f9e2ee369deb30dd80e9b  libstdc++-v3/testsuite/20_util/is_signed/requirements/explicit_instantiation.cc
! 7e84e4071040bff5963e2f4cde2c131d  libstdc++-v3/testsuite/20_util/is_signed/requirements/typedefs.cc
! 6857a5994dd52731ad48ab7f4fc440fa  libstdc++-v3/testsuite/20_util/is_signed/value.cc
! 43d02c664afa698ec643fd4ae5918274  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/explicit_instantiation.cc
! 0240f6b763072f895cbee9b3c4c6f652  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/typedefs.cc
! 4e267c56809ee314570c23331d58e6b1  libstdc++-v3/testsuite/20_util/is_standard_layout/value.cc
! 17801fbbb2dc1e6e1721ea7f937b3228  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc
! 27ac8a07dae66e1bd8a22ca774dfd9e5  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation_ext.cc
! 2affb41599636e81a82a5ead24d37769  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc
! 6fe7a8108ecd9036837d1cdc6f504395  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs_ext.cc
! 00803a7c7d446f9bc1cba84d8bcebb68  libstdc++-v3/testsuite/20_util/is_swappable/value.cc
! 7305f0821d6e19aa8af5c4116c01295b  libstdc++-v3/testsuite/20_util/is_swappable/value.h
! b2973ab6ca425919a33db3bc67d7cb5d  libstdc++-v3/testsuite/20_util/is_swappable/value_ext.cc
! 036cd5a354f5362206ec99421e602884  libstdc++-v3/testsuite/20_util/is_swappable_with/incomplete_neg.cc
! 57efc15922c43d69ebb23854cb1f8856  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc
! f4fc052e33ee08e50e0085a518223fff  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc
! fec549810719ca58ae4d5cc1fa1aace2  libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc
! 58890f944df3c0f3d5e945307ffeabf8  libstdc++-v3/testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc
! 1a6c53f3676eb0f78c1897623670f2f8  libstdc++-v3/testsuite/20_util/is_trivial/requirements/typedefs.cc
! 8cc5521dc75e8a702045367a0a4d276c  libstdc++-v3/testsuite/20_util/is_trivial/value.cc
! 4697d36ec16bc82fd454f07ed40bdb0d  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/explicit_instantiation.cc
! af48c61ccd7e51e699d5c509513f5ebc  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/typedefs.cc
! 2649af9ca53c6554bd97511e1884c595  libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc
! d41fd383694e9f3346b2379df7ff5351  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc
! dd122e11597662959b34c9fcf8534334  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc
! 8a5a564f1d3e0722942e4eecf1b302ec  libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
! 42be2d578946b959a017ed6ac76d5f93  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc
! d5ea0251eb01bd78e1d2b9a1122ac0c2  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc
! 047c9edba93bb5fe5779a999b28122d8  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc
! f8eb376d5fbed09d1d6aee9195df46d7  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/explicit_instantiation.cc
! 64e1dba5c268edadd083a234f362a3dd  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/typedefs.cc
! 69dbd03ac270d4186d9f981195f65b90  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/value.cc
! f0e195e34c738a6bfbff09f15f95e96e  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/explicit_instantiation.cc
! 7450c0c463fd9a14a206ae5e42fcced0  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/typedefs.cc
! 63bdfebf23058fcbf8455bee8c7bcdb3  libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc
! 0a384b06da9adadce8d68b29a7696eb4  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc
! 5e0f155bba8bc56461ef13fbd09e682e  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc
! e9bfd9739d4822a313138c12cb6f2e82  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc
! d333034068c6827d6d8ea8248f761294  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc
! b2fa37a4ca39144963b3af624953a215  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc
! 9b9e8c3b806f6ea864c4bf87937d6706  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc
  7713786ec02e2fd53bdb2116cbfdc65e  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value_v.cc
! 2cd4f7cbc642604f2c484d6f71437d52  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/explicit_instantiation.cc
! bc94d029b75fffb0b4aaebb4b0e94b5d  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/typedefs.cc
! fc96e919f8873195361577e6ee82eccc  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/value.cc
! 7e51b506c828c55866bdde626ae69b5f  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/explicit_instantiation.cc
! ef867641ca277a1f40b4b6da667d5e33  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/typedefs.cc
! 3cf7fd7532353579fd027fafab487ddd  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/value.cc
! f0610c63f9a6ab4a89cfabecf7b73549  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
! c348ff89d182ca605abdd38410d38e4e  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
! 9951beb4da46514a5df05e85eda099a0  libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
! 94e97df7b6385871173fdaad521c8878  libstdc++-v3/testsuite/20_util/is_union/requirements/explicit_instantiation.cc
! cb4560c6bc382951b6a1ce7653f68b14  libstdc++-v3/testsuite/20_util/is_union/requirements/typedefs.cc
! d9d3034a242841d36afcc251bd62454b  libstdc++-v3/testsuite/20_util/is_union/value.cc
! 6dea093c2de344876c42aeaf57ec35a3  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc
! de36d6722538357b5979d5b23bcf72f5  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/typedefs.cc
! 29195ba802f6eb3eb7f8df56d174bc76  libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
! bd694936766b5779ed96d3b486cf3bec  libstdc++-v3/testsuite/20_util/is_virtual_base_of/value.cc
! 8aaa008088b178b9c7b6364a3294d763  libstdc++-v3/testsuite/20_util/is_void/requirements/explicit_instantiation.cc
! 56f82a54c332e3a4b799dfab86a3afff  libstdc++-v3/testsuite/20_util/is_void/requirements/typedefs.cc
! b49338b9eda4e244431a0b68ef6b9ba9  libstdc++-v3/testsuite/20_util/is_void/value.cc
! e948976b96b6e4d992d7a57e17d98f47  libstdc++-v3/testsuite/20_util/is_volatile/requirements/explicit_instantiation.cc
! 42e02fc65f15c83d79fae9c861cb566c  libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc
! d58a65283f3ae67452ca279c884d9cf4  libstdc++-v3/testsuite/20_util/is_volatile/value.cc
! a2473d91d2150d58686795aa5d48f3fa  libstdc++-v3/testsuite/20_util/logical_traits/83134.cc
  6f771d4e7b8b937d187f18a61f28fd4a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/base_classes.cc
! edbd5f90992b82b8a8663838673a5e89  libstdc++-v3/testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc
  119b399190409df0e8ccdcf9b10c3e35  libstdc++-v3/testsuite/20_util/logical_traits/requirements/short_circuit.cc
! 1931c4ffa034b625f430fdb077c68aac  libstdc++-v3/testsuite/20_util/logical_traits/requirements/typedefs.cc
! b14ef5954b6f51452a0a0dc57d2025db  libstdc++-v3/testsuite/20_util/logical_traits/value.cc
! b63cb6f6fa7b6756a495f9b9145ddc3e  libstdc++-v3/testsuite/20_util/make_signed/requirements/alias_decl.cc
! bceeae3cf22b90b69e9600ed5bf1ab49  libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc
! 78b9e04c5e9c173dd3c426642ed90b20  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
! adf42de87b0ae8da30bfe8da3ca1eeb4  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
! a5c3abf1e6cc95f7f1635ecc08263bbe  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
! 8a2e44264b94c1250f3a532324560ebd  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc
! b3fa943cb67d0145fd57db468fa9d346  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
  8f0db74dad9a1b305718ac6e066eedf2  libstdc++-v3/testsuite/20_util/make_signed/requirements/uninstantiated.cc
! b2ab6d5db51568abb1f5d8a75e7f5008  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/alias_decl.cc
! 913d1fd5068a4efba9d4e5b789a89c6a  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc
! cd4b7d564202f9aae28ba0594d69f041  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
! c6444539257b00603053ef48b24ed4e4  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
! f579149791529080918b4ebd41a2a576  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
! a520d16f8cfb669d7fbf821361aa6dcd  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
  a8e73ef02c8dd2e09fa65d0cba094035  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/uninstantiated.cc
! 9e4c49ffd07b5af243187a7f23b7bc61  libstdc++-v3/testsuite/20_util/memory_resource/1.cc
! 07c81d0b8c910b01c4eb6d0c08e553f3  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
! 329298ddd8f910ec9295c7b2137034d9  libstdc++-v3/testsuite/20_util/monostate/requirements.cc
! 5182176aecce02d7cb8057a7d6b88272  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
! 160a1f7f88abfaabf52baf806198d5ef  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! 151d04ecd0dae17af74f564836a9cf32  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
! b31ad6a0828b0dd8579d4d73e922dfe9  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
! 8aecc5bf2f4a13d83ddce0d0b29641d3  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
! fb519a4b4b950e75c7541408b2c1f711  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
! 8d63492fd73a04a0d262e18f12507f4c  libstdc++-v3/testsuite/20_util/move/1.cc
! 102386ad5eb55ee72f915037de2fb601  libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc
! 3a7fc4002948841398e165a8c78094b6  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
! 4bdefefb0438a5b9e79b07a712ef66f1  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
! 1d1a8b8a8d0549a7606a768d5eeae646  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
  e609b5832e6e14b189c71b01fc31595a  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
  a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
  5f5e72e772029cc74c37aed7a9effe5f  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
  cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
! 9fcafb98ed0f6058577644e7dfae368d  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
! 5a70996ada65af02a04514f25f469212  libstdc++-v3/testsuite/20_util/optional/77288.cc
  f669af40876c317318f47db8330b7058  libstdc++-v3/testsuite/20_util/optional/84601.cc
! 8af848098657de998579ea5440f524fb  libstdc++-v3/testsuite/20_util/optional/assignment/1.cc
  5f2a36dc053d6d68a81135df84e7f4cb  libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc
! 7df98e07fec9a9b951fe364c4dadd9a3  libstdc++-v3/testsuite/20_util/optional/assignment/2.cc
! e66b232578f2ef6a02c791a92b20df76  libstdc++-v3/testsuite/20_util/optional/assignment/3.cc
! 6fcb18176a5a5a19b46a9d54653f193d  libstdc++-v3/testsuite/20_util/optional/assignment/4.cc
! a63a5f22ae4f7fff4740a0a35336ef88  libstdc++-v3/testsuite/20_util/optional/assignment/5.cc
! 51abb2c06335b0af3fb04876e226f6a5  libstdc++-v3/testsuite/20_util/optional/assignment/6.cc
! 7681203dd1e276d3c42f821989710437  libstdc++-v3/testsuite/20_util/optional/assignment/7.cc
! 3ca69c02aaa37bc3467b3bd9407f67a3  libstdc++-v3/testsuite/20_util/optional/assignment/8.cc
! 56c63a5cc4fed042d1ad2b359091ec31  libstdc++-v3/testsuite/20_util/optional/assignment/9.cc
! ed46c8244ea8417be9cfa81d9dd609b5  libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
! 54a5beb4840fe1132afb7a6baa6f39b6  libstdc++-v3/testsuite/20_util/optional/assignment/noexcept.cc
! d1236e620de0702fd9b9017471b4438f  libstdc++-v3/testsuite/20_util/optional/bad_access.cc
! 57fac572ed4307c44ed58afe60e02f29  libstdc++-v3/testsuite/20_util/optional/cons/117858.cc
! 5a1fb598e05b37727dbc197a47876303  libstdc++-v3/testsuite/20_util/optional/cons/77727.cc
! f83f1d748ab2e345f5073a97abc28c45  libstdc++-v3/testsuite/20_util/optional/cons/85642.cc
! 3f609cbaf5754d9d4869adde629f9dc2  libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
! 981583ae062b176bab15fb0222e7c3fe  libstdc++-v3/testsuite/20_util/optional/cons/copy.cc
! 4ad22b5e2aea6a2793934f125686ac52  libstdc++-v3/testsuite/20_util/optional/cons/deduction.cc
! 34a6979150d655fccf06e3cb1a5e9191  libstdc++-v3/testsuite/20_util/optional/cons/default.cc
! 3d2bf80492ef59a84b906aefc4996e0f  libstdc++-v3/testsuite/20_util/optional/cons/lwg3836.cc
! e2f2b723f45998760103330891bfb5a1  libstdc++-v3/testsuite/20_util/optional/cons/lwg3886.cc
! 06849bf4975a5c4b4003c0fcccbeedaf  libstdc++-v3/testsuite/20_util/optional/cons/move.cc
! 78320cecf8405d4abd44c83a5e5301bc  libstdc++-v3/testsuite/20_util/optional/cons/noexcept.cc
! 30f77fe6987594e2c80f5cbb7249f0b6  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
! 8ab908beadfea4829ea7585a16a720a6  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
! e9255b792fa3b1be456ed1c98103585f  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
  bdaab2c7a277b9ab7e3419b9414abbd3  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
  c90cd072fff0310ee397532e79baeb6c  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
! ed96754436e8b1bf4008cbee1808ccfc  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
! 7d7bb77be32147c1645e2959017a343f  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc
! 1efa6987a13e8a1a7d98332fa349e211  libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc
! d43c2ead5ec45417a87ab45bf98d620d  libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc
  d892473bccf7714d4d0029f52c64922a  libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
! 8e32eb0ded59abc21ad1cfcffabfbe26  libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc
! a0d2ccc0eac2ac278229cb3fc253699a  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc
! 75cf05127469eca1069a1374a4535f5d  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc
! 7a878bf14780ed5e8fe3c270477c2e6d  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc
! 24ca0455e1571dcc4fe94d7d5e76338a  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc
! b7825db9aa7633869f61a71b32800fa0  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc
! d800a92f881461a0c2ceea3762631cfd  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc
! 5dc5167b78a62ce4096761b336046bdc  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc
! afe0ff9aad22f318ec0d458043235536  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/3.cc
! f5ea3eb5236ebc98cb9ed8addd563f2c  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc
! 6b96b0a0521bfd501cf81077a1efc12c  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc
! a97926deeb496a76093d2fc9bb4fd879  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc
  9245416041a04e7eab9f7bb25bdaeec7  libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
! 097a9abad6aa8ccc85f5f05001397c8c  libstdc++-v3/testsuite/20_util/optional/hash.cc
! 4bdc5f9e73310dc13e1b0097f1271ee9  libstdc++-v3/testsuite/20_util/optional/hash_abi.cc
! 8c2aae92ed69b08f9fc5de1a53024678  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! 093a5d32de57a454ec134f8d7a27885c  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
! 711b1737b784a943fe0e18612d0dd1a2  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
  9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
  ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
  ee09f6b0b65aa45b2df39f550d3fa064  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
  72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
  b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
! d329c4116ef0ed3bde8a1621b437e53d  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
! f3be4bce8af5098a64d5fe459b66c06d  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
! 222257c6ee17c7324b718d1f64ff2d97  libstdc++-v3/testsuite/20_util/optional/observers/2.cc
! e87baf85f6f908100f4517bca965289b  libstdc++-v3/testsuite/20_util/optional/observers/3.cc
! 715029483b7f1f82aec0da1445d78352  libstdc++-v3/testsuite/20_util/optional/observers/4.cc
! 17d39f79ed38d2fa6bc9f0966d658070  libstdc++-v3/testsuite/20_util/optional/observers/5.cc
! f7bf5549fbdf589877e5795a24ddd3fb  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
! 778cdd933451ff624c66d739396a7772  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
  9b0c6c5d74424693ceca6e756d7db294  libstdc++-v3/testsuite/20_util/optional/relops/104606.cc
! b835a2c9ae7cb087a474e27645b6d22c  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
! 17125831e2cdf345d47dab77e8aa5424  libstdc++-v3/testsuite/20_util/optional/relops/3.cc
! 2b079a4122be3ffed06432c16b443891  libstdc++-v3/testsuite/20_util/optional/relops/4.cc
! 60344c7ee449655905c5c0f3abd7a208  libstdc++-v3/testsuite/20_util/optional/relops/5.cc
! dbd726f4171f9408e8c45e2f2b43e9e5  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
! afabd677238f896ac79974ff6bd1b17c  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
! 91928ddee4b1d4e6cc7c17b2deab803f  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! 4aa0afbba59f122b3ae230a227cad99e  libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc
! e3f072156342b6c647320bda37312faa  libstdc++-v3/testsuite/20_util/optional/relops/lwg3746.cc
! b236f0aad10a3a47d7a8537aa15ab65d  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! 047a9755231c4d777ed3a37878d2de09  libstdc++-v3/testsuite/20_util/optional/requirements.cc
  dbea899b3c675ff68a2a4b74a3b78bca  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
! 0f3d45388c61f51b7f6df124ff507aaa  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
! 001a4c1e1cdc738cbb337a561fdf8f1b  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
! 87b708c4b560c5395ed1befec2f78c20  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
  63ddf373eb5a6d0bf6cfa6e8e5949381  libstdc++-v3/testsuite/20_util/optional/version.cc
! 769c51ec9bdc631d6362fa951c05cccf  libstdc++-v3/testsuite/20_util/owner_less/cmp.cc
! e0f9fb4daf676dc4e6d66cb9401c7ee8  libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc
! dc4de23526f5805bc83f55f427e70ab3  libstdc++-v3/testsuite/20_util/owner_less/void.cc
! 9151c064c2150dc8910427dc8194b416  libstdc++-v3/testsuite/20_util/pair/1.cc
! b2c5fcab7b6c9251e187ac92af916eac  libstdc++-v3/testsuite/20_util/pair/2.cc
! c9ea6a87fade7e648697a2aca1c2008d  libstdc++-v3/testsuite/20_util/pair/3.cc
! 538172851be5ff3e3bc6f02f65387c4b  libstdc++-v3/testsuite/20_util/pair/4.cc
! c326aff04824cfd97a97668c23ef5b7c  libstdc++-v3/testsuite/20_util/pair/40925.cc
! 7ade5a6e0770407ae20f25d128aa9fe0  libstdc++-v3/testsuite/20_util/pair/44487.cc
! a879e48d58ecbcccfa09ae56c3d69b7a  libstdc++-v3/testsuite/20_util/pair/70437.cc
! 5010e4b2aa748aac0e3fe24ada0f8964  libstdc++-v3/testsuite/20_util/pair/79141.cc
! 34ae552b98d4d026817699aa6f90e21a  libstdc++-v3/testsuite/20_util/pair/86751.cc
! bf59ec4a551572346b0a87b03c62e9c9  libstdc++-v3/testsuite/20_util/pair/87822.cc
! 6154878be57d28d7b4babab24ec4257a  libstdc++-v3/testsuite/20_util/pair/astuple/astuple.cc
! 407b50f033e26eb5e7620a62c789d5cf  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
! c27224cc73720e56bd8e333f40d4c8b6  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
! b6ec6940575a0e07d16235c054dfd511  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
  f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
! ec6b64ce59fd0cdc4da2c87413aca483  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
! c091b1a30d02efa1a5c4242c9a095b10  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
! 3fda333c62a545fe2651bddf9f002ece  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
! 564f7d68dbe4fd3956684aa724ffa91e  libstdc++-v3/testsuite/20_util/pair/astuple/get_neg.cc
! 2d9ee0ff43279e9bf93015d92d067695  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr.cc
! d9787fa4df26e7d94fdf4b2e072b1cf2  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
! 1554d14710a3f9fa155dc38437c6c3ae  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constrained.cc
  04fed045318edda260e590d9ad1630a6  libstdc++-v3/testsuite/20_util/pair/comparison_operators/lwg3865.cc
! 94af77da42e85818ea59aed3c5fef8db  libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
  c5964cf74c99c86ce570bfdb15835bb8  libstdc++-v3/testsuite/20_util/pair/cons/99957.cc
! 8627f9e27d2f45fb1bcbc23d24e6eaaf  libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
! d6c222e7d6885d287e2476e268e1344d  libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
  942a80b2cd63f8a170cc399f96dc99bf  libstdc++-v3/testsuite/20_util/pair/cons/default_tmpl_args.cc
! f723097be0d36fe4e58b45a7d6da090b  libstdc++-v3/testsuite/20_util/pair/cons/explicit_construct.cc
! 591a60605faabd320f8b399bf93caea6  libstdc++-v3/testsuite/20_util/pair/cons/noexcept_move_construct.cc
! a810fbf21804bfd28d4ce6808bf518f4  libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
! 691ebe9de234a2697d67c995c0d55e74  libstdc++-v3/testsuite/20_util/pair/constexpr_get.cc
! f40b3ac3db65b83db692555be69175ed  libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
! 4d3ef1370192c1d9fe87b96bd1a66330  libstdc++-v3/testsuite/20_util/pair/dangling_ref.cc
! a41bd3df78295412287dad521d09c51f  libstdc++-v3/testsuite/20_util/pair/make_pair/constexpr.cc
! 878992950fac58e59175d826368ac751  libstdc++-v3/testsuite/20_util/pair/moveable.cc
! 06b57f1c526ed07eabcba9b76d8fdd11  libstdc++-v3/testsuite/20_util/pair/noexcept_move_assign.cc
! 10f059d5feeabbd4bc559728ae067eae  libstdc++-v3/testsuite/20_util/pair/noexcept_swap.cc
! b4d2832545f53a1e803a3f81f7de1c1c  libstdc++-v3/testsuite/20_util/pair/noncopyable.cc
  9f58a82f3464503f5b27380328198a6c  libstdc++-v3/testsuite/20_util/pair/p2165r4.cc
  f027f1875a4d3380e81bb134cfcba1f4  libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
! 6a79c36b8e71547f4be46a4691bd3398  libstdc++-v3/testsuite/20_util/pair/piecewise.cc
! 080f9a58866d7bd21fc3fa9d4421fcae  libstdc++-v3/testsuite/20_util/pair/piecewise2.cc
! 87d5ce88c0e049016d76073096dac64b  libstdc++-v3/testsuite/20_util/pair/ref_assign.cc
! fc54643b691ad483d4242135fb632d12  libstdc++-v3/testsuite/20_util/pair/requirements/dr2367.cc
! 7e760505269457b5674ef81396de9b21  libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc
! e91fd051a188896aa11bb6c0b18bb344  libstdc++-v3/testsuite/20_util/pair/requirements/explicit_instantiation/1.cc
  03b33ab350fe86d88f4609f7fd82a60d  libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
! 7b7977b50b17d38511b565465d79bd75  libstdc++-v3/testsuite/20_util/pair/swap.cc
! 1464b1e76bc317abf1c8e54fb6a1ce15  libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc
! 2ed8b045a90b18e5a4b93ab3a91ea33d  libstdc++-v3/testsuite/20_util/pair/traits.cc
! 262d8b002d8d8618e81848715466f8e3  libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
  4ea61b01821ef91d050e7dc8bc19448b  libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc
! 092850ba54d343e1916e7326c1f7a83d  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
! aa0fc375d309b530b8cf3a3f13d4711f  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
! bd751dd31e8b1568dca896e257bb34d8  libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc
! 1125f54bc15f147ffe895a77faa6e1a7  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc
! 2c22b9ce4ceae4198a291a221f93fa94  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
! d35b0a24e533e7e150c9b64e500abfe8  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
! 8e8435999f2e7f8fb48bc6cacde329ad  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
! c4b92f38d65ce6b0af1758278eb722ba  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
! ed373e7025b2384f5d54f5dce50ba724  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
! a93444f168bf7179249da3659c446ce1  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
  918078cc6c6d9bc5d48247416402bca6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3683.cc
! 28cf1e267aecca9d68cc25e6df9d6dde  libstdc++-v3/testsuite/20_util/polymorphic_allocator/resource.cc
! b8ede268968fab600990bdea7ce1cb2c  libstdc++-v3/testsuite/20_util/polymorphic_allocator/select.cc
! a272226b761b3a96d5a506dddae9d717  libstdc++-v3/testsuite/20_util/rank/requirements/explicit_instantiation.cc
! da7c53616cdb91adc449a1c34ec90b59  libstdc++-v3/testsuite/20_util/rank/requirements/typedefs.cc
! dec1d48301f41efbeb04d7eb63f4ac7d  libstdc++-v3/testsuite/20_util/rank/value.cc
! afa150c42140a0047baec677849b46d2  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp1.cc
! a31fe70d9bdf48aa17d249ca91b2a2ad  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp2.cc
! 1f69835922473cb189021facb2cffadb  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp3.cc
! 4a158e4b39ef39a3f76ca65e1b814157  libstdc++-v3/testsuite/20_util/ratio/cons/cons1.cc
! 2012e25103f28c599882eaa4fd2f9dad  libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
! ebeda840ab198e26290326de036cf02f  libstdc++-v3/testsuite/20_util/ratio/operations/45866.cc
! 95dc6f38185e6cb85a17e72d3302646e  libstdc++-v3/testsuite/20_util/ratio/operations/47913.cc
! bdfa105b922bad5336a8c6d4533fc51f  libstdc++-v3/testsuite/20_util/ratio/operations/53840.cc
! ff0ccdc05468ddce08d4ada91d33b781  libstdc++-v3/testsuite/20_util/ratio/operations/ops1.cc
! 57f67e63ff4fb275bd9b09db383ca4df  libstdc++-v3/testsuite/20_util/ratio/operations/ops2.cc
! 30cad9ff52b866b92a63310ead4f5c6c  libstdc++-v3/testsuite/20_util/ratio/operations/ops3.cc
! ad80681b6b901b11613ce8bef15006b3  libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
! 2397ab3807a9eb62ad653d874d58d857  libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
! 69afdb8700e22b161a1f973e70aff227  libstdc++-v3/testsuite/20_util/ratio/requirements/ratio_equal_v.cc
  d8bbe2c17046f08594a91f5a8e216ba7  libstdc++-v3/testsuite/20_util/ratio/requirements/type_constraints.cc
! 89b3cc4d11ed500701b0d42a8afd3b77  libstdc++-v3/testsuite/20_util/raw_storage_iterator/base.cc
! 8cf99ad228f290849d28653c6d85de1b  libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
! cecc6f2bd0ad30f912c43bfe42f270b7  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc
! 2944b3db449c70da9935b1d86e4855b1  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc
! e2c62d5367fb99dab914003bcfb472d6  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
! 500f6d22988c52d43a1b3ca54a5334c3  libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
! 78c8307288a52f2bd53d99f14fa603f5  libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
! 99bd94892e64a9fb5ea645830a2c7632  libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
! d2c1fb0e62ef0782b29d889e4afc943d  libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
! c01ae14e5c3c23237029a26b540f4800  libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
! ec5699581cf84fe6a1f3f9a658a52628  libstdc++-v3/testsuite/20_util/reference_wrapper/80504.cc
! b788b08b7fa3b2a764a549f9456d8d3f  libstdc++-v3/testsuite/20_util/reference_wrapper/83427.cc
  d29855594ad103b670136d89c6c8d2d8  libstdc++-v3/testsuite/20_util/reference_wrapper/compare.cc
! 588e92aeb2bb0e067443873f0bd9434d  libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
! 2de919eedd583a60a7e697081b3b1553  libstdc++-v3/testsuite/20_util/reference_wrapper/deduction.cc
! 1cbac55e4b4abe5fdf6bf74526a93985  libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
! fc5be5d36104b42d43116e3506037956  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
! 93efe464a46d633122b6defe67d4c03e  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-3.cc
  3a4e290fbbefce397c537f6f76360292  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-noexcept.cc
! b2201235fae80a383258a58745a2bed4  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
! c364f6bd3aced75ba7ed9b09d1af6f88  libstdc++-v3/testsuite/20_util/reference_wrapper/lwg2993.cc
! 0f169888ac660d973263a927ee070788  libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
! fe072fcf0dc6cb0a2dadd2d6121eee9e  libstdc++-v3/testsuite/20_util/reference_wrapper/requirements.cc
! 630f3ee72e38723828e78b49e3c51237  libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
! c568e9b3dbd4ea893bfc4333711d8a34  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
! 6c8f0c963eca18b57f185d87a1cc28bc  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
! bb3e06b7a6eca883ef464d4485377797  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
! 6978338f319a1fdd5a31af9813ba1a3e  libstdc++-v3/testsuite/20_util/rel_ops.cc
! 3a942629ae661f7872b8df88546d9ba4  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/alias_decl.cc
! 149aecc48247feca9776eb1341fdd01a  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/explicit_instantiation.cc
! d520b94a0aa4d445e7060967934cb01c  libstdc++-v3/testsuite/20_util/remove_all_extents/value.cc
! 69cd9a5af232a06f2b6d54c66f1589ff  libstdc++-v3/testsuite/20_util/remove_const/requirements/alias_decl.cc
! e2433cfa18d1a88e1293f4c348f62450  libstdc++-v3/testsuite/20_util/remove_const/requirements/explicit_instantiation.cc
! a2f494afdcaa35f3807917c992833005  libstdc++-v3/testsuite/20_util/remove_const/value.cc
! 0c93813e5d4a32baa7ce8a2939bae257  libstdc++-v3/testsuite/20_util/remove_cv/requirements/alias_decl.cc
! 3d666f12dadb2981cf7b27007a74a54d  libstdc++-v3/testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc
! 2309fe1b2177de4e692381de5e5fa92d  libstdc++-v3/testsuite/20_util/remove_cv/value.cc
! 6f66978f639a5754d44374738bc49157  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
! b5dbe716be4c3f0c28796bf17478ce88  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
! 02e285acdc5fde1b55807bc554e3d7ea  libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
! 2f9ec92239a269b538fdd9e4e1fa4a8e  libstdc++-v3/testsuite/20_util/remove_cvref/value_ext.cc
! 04bd3c65472d71f1d935abe6f2b1210a  libstdc++-v3/testsuite/20_util/remove_extent/requirements/alias_decl.cc
! 40b41d3e5cd4efbd97c44bf01a1156dd  libstdc++-v3/testsuite/20_util/remove_extent/requirements/explicit_instantiation.cc
! 6bc09e2b0b6ab599ecbb90f67fb0ea49  libstdc++-v3/testsuite/20_util/remove_extent/value.cc
! 3909ebd4ec16bcc3e3ba24052eb201aa  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/alias_decl.cc
! 76f4b07c4f6fe608a5a225bfaf8dac3d  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/explicit_instantiation.cc
! af3869addc932f0632fcaa63b735517f  libstdc++-v3/testsuite/20_util/remove_pointer/value.cc
! a71009b972c0a1580d9415eaee18ad8a  libstdc++-v3/testsuite/20_util/remove_reference/requirements/alias_decl.cc
! 3cc36bcc565edc7b8ceb14250cdc072e  libstdc++-v3/testsuite/20_util/remove_reference/requirements/explicit_instantiation.cc
! 4c7a6cc9e693aeba637474d74c8f6d9b  libstdc++-v3/testsuite/20_util/remove_reference/value.cc
! 2204908f453f89cb7d67f354b5ed11f2  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/alias_decl.cc
! fbd37b54a108d2f2e3809112b404822b  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/explicit_instantiation.cc
! 82d9087b70bdc23d99111bc6707a7f33  libstdc++-v3/testsuite/20_util/remove_volatile/value.cc
! 105f333be6965378b05a56c4b8080654  libstdc++-v3/testsuite/20_util/result_of/1.cc
! 875b282fa1837d4b8541fa8dfd197210  libstdc++-v3/testsuite/20_util/result_of/2.cc
! 4d5f1e60b4e01b470c8add5bc6a22292  libstdc++-v3/testsuite/20_util/result_of/requirements/alias_decl.cc
! 9e03e54b3a17325fade9f86ae7f2b12c  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
! 6dac9d4c033824feb087dcc3844fba03  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
! c4091089ce274740e1ff94b72e1197b0  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
  da8b1f9f56123156faf50b7277670b45  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
! f10c53da1ad2efda8b4a17abce407af7  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
! 8636d1547f34f8a70c856fe0ebdb2134  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
! fb3e8e157995b543362bc1698f768ba9  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
! 0a522fe491a1d16b1d86a1f3fd68d610  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
! 0feba5de8827f09208bc04f99333809c  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
! b1d5af0851b21ebe4c159a352b368cd5  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! ad3573ba994090e3b5570333ef7daf91  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
! afd2fd797282699713b39859e1195c39  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
  21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
! 31db4e9ddf8893833e7e7b5631a4b961  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
! 42f5d7c62446a543d270e6039eeeb3fb  libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc
! e3122d59216d5576472a0c4bfce65e43  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc
! 83efd26cef2336d6f4e3da69eaa5c307  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/typedefs.cc
! 7a0a4219eb894f53965657051cc390fe  libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc
! 1bb1caa976eb0d72fea62721b9745abb  libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc
! da9145a0185055b61b241cc561abd20a  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc
! 6cf4c9f10e797199efb793cddcd24a39  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
! 97a57035bdd3e49c7f90a04af4f353c0  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
! 5427a00ec56f778ede20902ecbda714f  libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc
! 8b73f346a42b834dd780941ea41801c8  libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc
! 5a101c3338946d84bf07526edf97287c  libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc
! 026c33acdd225f0811daaf9e27e54aa4  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc
! 2fa64ace7c5dd55676fc58c8ea0aa606  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc
! 3314ee850605e35d0fa7931d0af845f1  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
! 1d69bc2865a8d093f06ee829214a2a04  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc
! 0628ca75fea328006384bf3d75c0eb1e  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
! cc8f100514fc776c44855526cd4c4f98  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
! f0aa77432ff68dc1bc3bb39abb798574  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
  218bfa15322cbf3d4699fd75868ce542  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
! 0ed58f781f6defac8f2adf9165c5b843  libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
! f71b39c4f3422ca74560b507e3238d70  libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
! 66b0af9f169e4254c6e08f75f365502c  libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
! 60bf13fa0beb56cc39ba0648c6be71fc  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc
! 67e9d5e4185bde3afaf6038d6e8bce63  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc
! 3026afd05a9d97a7318c29aa07139812  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
! 446aa113e55440e9706735b040502dd9  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
! 970dc28c192c9aad53208ba1644b67b5  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc
! 8e6ec3a3b13e29ad93929e4c07a5e28a  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
! 47d906d64b6786712cfc84be8917cf42  libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
! e5aa55d48aa202ddbcd372e32aceb7e3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
! be76d910219dd1911bf27a4e579b1ff8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
! 9a385eb6e279be3fd52f5b7727898d5f  libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc
! 67b60f7091299c08f3ab68cd345be1eb  libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
! bf19d5eec7e76721955fd2815ff39e98  libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc
! d0fe8f93f22b034e454cfe683bd04ebf  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc
! e125ec7cf528f233390d9e902d396a1d  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
! ec5c4e6b8c1e298e35d9981cff04f39d  libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc
! 062f6948e8102440ef45887619a4078e  libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc
! 912cea10276478a2a6b87a818ef3df11  libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc
! d8fb3b4ac0bd125ee453e79e3356aead  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
! 06d1695e686c21e30a87252125523868  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
! 8d4aaae30c20e2e1505b3253bfb14a68  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
! 79a6927d705dcdf6b9885ab8e279081c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc
! 4f1ca5b83048d1f4ce03aebe7a7b8d07  libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc
! 6d3b22a0fb79470b7efb4d6fabcfa542  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc
! 2a523bcc3b74f25cab2c97ccd528ab50  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
! 3d5984ebf9fd9270cace5d0c67e6993a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
! b7740e881f4aae241319701626cdfb47  libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc
! 5c0050cd7e09a5272a5b584caabece6a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc
! e702e14d5e1a531a19bc88eb3cad9c3d  libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc
! f1483f709d6f88b88fec375841b80a8f  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc
  23dbae4c540e8990b44404c82f23bc80  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc
! 6d5b083d8befbdbcf0d6a8bd0e601c24  libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc
! 5b5fab6ccec61fb5401ebc70bfb5322c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
! 65d23064c788bd2e261ae913e97e46fb  libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc
! 0f6d310d4d1f122291f2b5ab84bfb5cf  libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc
! ec36324bd11cc334dc3110d3afe6090a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc
! 3386fa1963ffe07d99335a02c301b012  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc
! fa1d608d4ef0d05f49621d6263c051aa  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc
! 12eebe4c57d29f678467e76319157b6f  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
! 36ed77768adbadaa937291376cb65723  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc
! 03236c76fdf392128bd12c63d68d9283  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
! efc6f298eb3730b68042bf854902a6dd  libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
! 24bc569286442b100da65a3d0872e033  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc
! cd80d2e2e370aae7076139654d356511  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc
! 148bdab67878cde28a5d9ecec2f184a8  libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc
! cbe44fa7a55d694039b166a078738710  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc
! 414b97b1ba54ed6fd9cb1aca40ad6a2d  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc
! 8295d5c1c05597f65e8caab5a5c37377  libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc
! cd5f4183a10cd869dd52d087986e6bfd  libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
  81f7fb60e4aacbe92da9a1eab6fd4f82  libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc
! 36d308bcf50782e48be6108b34fe8cb4  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc
! 912a30cde4ccf052aeee5b3596a2c99a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc
  404e20ed4771707f76a3b3d269fa453a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
! 860e94bed11663d0b11a7f824d76b2ab  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc
! 24969b795188d290d80cc4c5cdb927ed  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc
! fddeec2187d6b2c6bff23bb6c9c6c644  libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc
! 1cf04284e3f554d80f52574f5d401001  libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc
  26903b42fbcdb2e18b2f10007122a450  libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
! 6b8734c176217f1f48865ee3596172c6  libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc
! 266543d3bc6cce2773d62e8416b73839  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc
! 1194a604aebe5ea0c3a79e65ccc0e0b7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc
  98eeeb9df65778568c9dfbdc6dcf1713  libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
! 2fc53abc403df606db8c5e85f8c65de7  libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc
! fa8ef2e0dc8954b5a6c651a361bbc263  libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc
! e6d4bf08bde43ea4d585985d125dc0ce  libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc
! 66d6b06472d5eeb8b6f2dfc87276222c  libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
! b91f654e366be48e945e397a39c1f945  libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc
! 0f91cf22e8847e10563810413a6286bd  libstdc++-v3/testsuite/20_util/shared_ptr/misc/io.cc
! 253a506852efcfe819eb1b713cbaf401  libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc
! 5b2140ed7318f87417926a7d3a06f00e  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/24805.cc
! 650268b48811bb3b704288f891266748  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc
! db81f770fcb5fc03fa9fce4158f1877e  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc
! 4e4c296f1dbb903a1d438703fa2f11fd  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
! e8586844c10c79d5222f6b948155206d  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc
! 5554df9a7c5dcb945ca88df47c4ef5ed  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc
! 46a1f27f0f33aea4275fecfe4b16a6c6  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc
! 5f81623145f6d3ae77ec6bce327d27bb  libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc
! cba286cd039776e28e7f5ded351da6bf  libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc
! b8da8ce59b963f60d5c412009f3f7a86  libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc
! f3fe60a27d1cf7b43d52391bb6edf853  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc
! 19e078ddf9b1fbc902ddc3f44c368b18  libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc
! 3af2f5ad87d5eb07d833e15b2c47542e  libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc
! 549b70e5de4de4416498a203f84f2f0c  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/1.cc
! 2f71d43bd3d65475418d9a9fee381486  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
! 7881e55b46645f5d8a4a9cd5bbeb1aa1  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
! 214be68c0d9560ab77e37cb688363d7b  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc
! 9d15f1aa25949d717d434ef3cf317c53  libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
! 98075f2a0cab9ee2e0257bc1de40f44a  libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
  106a32d2ad06ba7e04446290e6e7f969  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/1.cc
  9550a34a49f76d4f65809d5bdecb8f24  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc
  28208b70b1a0fd268c87a39c74ede57f  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc
*************** cd717663f0d3445596231c41fa91ea08  libstd
*** 126171,129756 ****
  b01430f482e2a4603171e5e1c4a8d3fb  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc
  065522370780e0a3f44efe105f40218e  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc
  d3d5d50fc5b7244958b52fef6db43877  libstdc++-v3/testsuite/20_util/smartptr.adapt/version.cc
! e3f61f582ecf58daf9067b80d518c249  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
! 463555f11aefff439c86d765f646969d  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
! 0fec65974cb6f5812af2edc743e20e00  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
! de351e8d21347f48b3c1745ab1d1164d  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
! 122fcdc0346fb41ec738602d721a1126  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 44738eac1a7caa467741f819e5770e42  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
! c4cb80eeb9e22fd9ca3df8d210abb00b  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
! 806a4d85a82c14d68ce64ea6a7245ab7  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
! 50a11c290676b6f106cb647a502e64ac  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
! 3d39b28f6c965fdee09cf96342586f75  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc
! efb0b570168ffe84d6e2f37ece809386  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc
! 951db5f8f312749e333a55533d8a78b3  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc
! d6cbfcc9f2068716bbd18161f27cff23  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc
! b7b16db3326462eb0f4df55ba7fc3b26  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
! c787cbbf3f2ec5367257506e78caed07  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
! 33a70bb1c127f7b71726cfd1970dcc47  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc
! 7bc502b1061a9ffdfab93fbbd8a9e7d7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
! 8d454bfef983ceb99520a95bbb5a5aea  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/move_iterators/1.cc
! 9b3e4f319f44ee77ea0c657fdf58b9fc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc
! da90a64a0e3c414ea6b31e0ef72183f8  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/58982.cc
! 2222c4da6f1a9aac1b44d8162c2e541b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc
! f80eeebc45db1de9fc2691fc9f4c8803  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/move_iterators/1.cc
! 7848e99e7df740650a17e15c3b40b233  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
! 1d0c17e1cdfc6c0f08bb2f1e4cb62091  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
! adc9bb3fb8eab2ac44b6a4a762a796bb  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
! bb5f284f232f9374d3a87aaf8642858a  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc
! b3a76cdacc3eabc45c217e3d5a8738a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc
! 303d31124d274182d26150ae877a7db5  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc
! 8b6da4a73a45dea64304e9e6b30f8aae  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/58982.cc
! eab87ac4047c1930bdb8992fe03397e2  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc
! 8e81c9969fae85c10da1b8614c7d0336  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
! 038ccf0ce134793feed3879def680a8e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
! 2b8079d02ae431daa7c5a8e3743eb7a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc
! 1a0da1561011f9eb9e0b0d88eee7f077  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/16505.cc
! 11c877cae02d21505c170ab68fc5f4f4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/58982.cc
! 93f82d487ea44d06b817e2e2a0fc1bac  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc
! d51501b3f1c953bf07451e37f647dd89  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
! 126d82242ad1f882be5d3c516a5ceb49  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/dr1339.cc
! 6f72d66b8b03622bc6f836e3c7b21449  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc
! 53cc6e069c73ca1d29ab7ccb09cda50b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
! 8cd519b4cccf16154eb892cd8985f7bc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
! af272d624589bd0cea4be7993057018e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc
! 1db0d2b929cddb30cbf502122f80ede6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
! 74d5a6acdfccbcb7ae9ef6668edf9505  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
! f6bd7c6a0c64d34b4e17ebe0a952a3fb  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc
! c76dd58eb12d4adce24d74cfb072fc19  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
! e24c511998a94418031de4297b1760d0  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
! dc6c6bff46ec2e1289afb29019038359  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
! 53f638a23baba221761db8a79d46a114  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
! 796e06637b42a7d4e074b70dd4a47f2f  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
! 2480a9a5780670157df24057e09cc91b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
! 3fdfc2395fda8f5f72db43a26d8308e7  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
! 98de6007ed64d73448a2ec0cba7cde6b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
! 7ce526c9a6256391f9ec83573d350595  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
! 6ff439348720463d3ddb23e39d28f26b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
! 35fae0105c98e525d2fe63303daabde9  libstdc++-v3/testsuite/20_util/system_clock/1.cc
! a8b7dcc1b90032b42d3873d82d9de20e  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
! 90153d938750542f30eaa47de22d7e0b  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
! 0026f2cc7274967cf0c76d743235a395  libstdc++-v3/testsuite/20_util/time_point/1.cc
! fb5e62a037ae88ffc9ae9f88e68f8212  libstdc++-v3/testsuite/20_util/time_point/2.cc
! 89f563c6b4ae03bc29ad777291612797  libstdc++-v3/testsuite/20_util/time_point/3.cc
! fd31f7127ae14776a8f4d039997a5218  libstdc++-v3/testsuite/20_util/time_point/4.cc
! 8c4e37594858b5c40e5b96b09a2fb798  libstdc++-v3/testsuite/20_util/time_point/arithmetic/constexpr.cc
! 3b0d9e92abebdbc6fa5da07433a134ef  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/constexpr.cc
! 645ec4070b68a323e198fe20c4c1a7c8  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
! d0d7a276723847bae668d385b79412fc  libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
! d593b8e5914b2469512767fe07cf2576  libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
! b28e318ae51fb7ddd597c055c350b1da  libstdc++-v3/testsuite/20_util/time_point/nonmember/constexpr.cc
! 7627343a1064e5e7fcbba21bcb671fa8  libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
! 68f908e2ea3ac3a0636a05eb35cd35d4  libstdc++-v3/testsuite/20_util/time_point/requirements/duration_neg.cc
! 69c4085028859d6ff3e82edce23e61a2  libstdc++-v3/testsuite/20_util/time_point/requirements/explicit_instantiation.cc
! f6867babeb5aba0b5cbd7d1d1f0b28f8  libstdc++-v3/testsuite/20_util/time_point/requirements/noexcept.cc
! 6e892fda1ec5e66353971a2a03fbd137  libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
! 91b1d5637864d28dab8f596fc9919926  libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc
! 58cf3866bfbbead9b9c5a0b025711277  libstdc++-v3/testsuite/20_util/to_address/1.cc
! 6e0d3af0dc5eb62ce947d77fd5025bd7  libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
! b2af388fb471efdad1c978efd8e8bda3  libstdc++-v3/testsuite/20_util/to_address/debug.cc
  29603a4268440d346dba99e438f03306  libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
! 889f9853e28cad1bfbc002c317128381  libstdc++-v3/testsuite/20_util/to_chars/1.cc
  cf4f3947ea6ae8a691cad8b85ffb82b7  libstdc++-v3/testsuite/20_util/to_chars/103955.cc
! d8d2f069539a7c4517f1dc9e73b0a66c  libstdc++-v3/testsuite/20_util/to_chars/2.cc
! bab68a3e8b76da21ea36105d91baac3a  libstdc++-v3/testsuite/20_util/to_chars/3.cc
! 5890b6cefcbe1662fbd69aa7c63c46b3  libstdc++-v3/testsuite/20_util/to_chars/4.cc
! 5ad5a6f75c385a1852638745a33ab85e  libstdc++-v3/testsuite/20_util/to_chars/95851.cc
! 7d9df524e1a637cdbed06c275211bb6b  libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc
! 0b7b3ab51e86b9e6ca1cdfdfac9a0431  libstdc++-v3/testsuite/20_util/to_chars/compare.cc
  23d208ed5b68f4c9b549bc14fe374bd4  libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
  c72624e57107b29f1eb13c16eb2177c2  libstdc++-v3/testsuite/20_util/to_chars/double.cc
  77b9817d9f7a5e3dca39a0a2eea53935  libstdc++-v3/testsuite/20_util/to_chars/float.cc
! ff523278899f7b06bafd02f8753bb116  libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
! 8682cbcbc1df9781451ac3cefc3f90b4  libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
! a1c08399f76c7cc93a26456bfe1fddac  libstdc++-v3/testsuite/20_util/to_chars/long_double.cc
! 92da145c5f763fdcad49c232442187fc  libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc
! 4a952b40ae20bd32cf756ecd867d2279  libstdc++-v3/testsuite/20_util/to_chars/requirements.cc
  1757dd414b89995c49a363c2491b4a9f  libstdc++-v3/testsuite/20_util/to_chars/result.cc
  d8a79bd3dfe3ece682e5892540d13aab  libstdc++-v3/testsuite/20_util/to_chars/version.cc
! fd2aca83407ecbb3f8d9ca6ad10e86aa  libstdc++-v3/testsuite/20_util/to_underlying/1.cc
! 5835208ec32d0e06cde1cde7c788014f  libstdc++-v3/testsuite/20_util/to_underlying/version.cc
! 38718c72886d2578830a7fa55464f7ea  libstdc++-v3/testsuite/20_util/tuple/48476.cc
! 132e2e7cf5d6b27e82dbe245d25ee901  libstdc++-v3/testsuite/20_util/tuple/51365.cc
! f2e22036793b23027bcfc50290f475f9  libstdc++-v3/testsuite/20_util/tuple/53648.cc
! ee02c4448f967f95673cf3a4edcdbf36  libstdc++-v3/testsuite/20_util/tuple/56785.cc
! a9a675ba4d485391f31ea99aefe34471  libstdc++-v3/testsuite/20_util/tuple/60497.cc
! c6aae63ba5139907982ade07fd4cb757  libstdc++-v3/testsuite/20_util/tuple/61947.cc
! 44bb86b453a9ffb8b7fe480d9a7d25a1  libstdc++-v3/testsuite/20_util/tuple/67844.cc
! eaf02c833452122b40572b3aaea6a4d1  libstdc++-v3/testsuite/20_util/tuple/77395.cc
! 97972dbe82e44ab2d9bd309a3ebb8ea9  libstdc++-v3/testsuite/20_util/tuple/77802.cc
! 056802e359c4f769886c91b86c60d600  libstdc++-v3/testsuite/20_util/tuple/78939.cc
! 68d0f406f54b71b4a1bd8fe3fd10927e  libstdc++-v3/testsuite/20_util/tuple/apply/1.cc
! 4b0acfbf1e7bc2ff9fed9e03f022492c  libstdc++-v3/testsuite/20_util/tuple/apply/2.cc
! 765f19d6da84d511982458202946ffa4  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc
! aa091cca29098d0130e75ee4dd1a5940  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc
! 7ce8fb36220e79f3b3b5ab1c45b7fc8e  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc
! fc7755a4435e2b99fc4fc5cd1eefff3c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc
! a4d8ad071879c6906f7fce75376fd7f9  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc
! 0add5fa1418861677cddddbcd8e7629c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded2.cc
! 4aefe6875ff437786795c4669068d3d8  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
  187ef5eb9d79f3cb6e7970796ffabd33  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
  9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
! 663ba20c45ee2bbf63a3146a5cac0f23  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
! 783384ae9c6ca19657a9c90778e7fc96  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
! 034dacfd01ba7e63192ee47bc865c854  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
! 55bb66127091d8e2a80653ccc417e4e1  libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
! 358690958220131afd4e03540a26412b  libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc
! 845506c2e18951a9b1d9ebae0636f3a6  libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc
! 635f791b82cc0bb384095f8f64b72868  libstdc++-v3/testsuite/20_util/tuple/cons/96592.cc
! 055b034b6d9040fbd7f95ad4f4752544  libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc
! 87c82682ff9ee8b8097d2e309795642f  libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc
! be0fe4bb2ba543f85cd364179bedd9a6  libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc
! 19afecf41ef712542e97f355f0131504  libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
! a49161313da5dd77d19f2d9b12be686e  libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
! 0309fd1dbae3b4fc0ab2dcf0fdbd8274  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc
! 23faf3e30fddcf47aaafc5a1983578e2  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc
! 5667d7964dfa2ca1cb7fcd92b8d0569b  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
! 74a3086ea01614213536db7d36e410ad  libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
! 9f750fa1c66e40c5dc886e3cca2d76d4  libstdc++-v3/testsuite/20_util/tuple/cons/converting.cc
! a727a427e5ba3447cd12bda06587cd1d  libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc
! 43055756d0d1bb6e12c481bedb6c32e9  libstdc++-v3/testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc
! 91526241de853eb16239ac7a9057ab5a  libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc
! a994f69d62d24d37fd1139e826f291c1  libstdc++-v3/testsuite/20_util/tuple/cons/nested_tuple_construct.cc
! a9f3318a29980a65dabd86473fd32004  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_move_construct.cc
! b888b82c2ce9e079be78cd033077cb2b  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc
! adfddbfc258f282829ea80455dc45ee6  libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
! 455a68cf5af395416d104cc7b8f284e4  libstdc++-v3/testsuite/20_util/tuple/creation_functions/23978.cc
! 1351cf31665d18a58d1f31ba6be38399  libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
! e733f9c9b1837bdf9ab11b918dd614cf  libstdc++-v3/testsuite/20_util/tuple/creation_functions/55713.cc
! 6d3fd3ef05585cb7a74497f1d77cff20  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr.cc
! 83a4dfd4ad7b3c773feb41d6f99735f0  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc
! 4cfd9d483d6ca5a90798949dda94eba3  libstdc++-v3/testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc
! e5dd06821bee182f8476de0cc5b911ac  libstdc++-v3/testsuite/20_util/tuple/creation_functions/make_tuple.cc
! a10a8c68b01af10dbe58adf5738c1223  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie.cc
! e7e1031e1282cda9f13e7842cb73ebf8  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
! 9449138c9e052c587c6bc20c4cb08831  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tuple_cat.cc
! de00d1be0a7203f7e2c4879a1f02d2d4  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_element.cc
! fa7b72a751b7125a656bb24e49cc9100  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size.cc
! ac6278994e54bb6ed7197664939c4ef2  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size_neg.cc
! b90e13e5569b2ce1c794e6d8589a3511  libstdc++-v3/testsuite/20_util/tuple/dangling_ref.cc
! 3af3a6d380bac34679976f94da3d6c97  libstdc++-v3/testsuite/20_util/tuple/dr2729.cc
  5c4d5220d3eb9f735e8817b5ea562b55  libstdc++-v3/testsuite/20_util/tuple/element_access/101427.cc
! 5402e39ed15d2e56b32d1b009432ca4b  libstdc++-v3/testsuite/20_util/tuple/element_access/71096.cc
! e8a26b310f3d04b4db7b452813c93570  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get.cc
! c2fadff29b8c841535ee787cd7c6fcef  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc
! 681c612d7652c4234aba7d73aec3c5a6  libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
! 50d1e86104517d02d814ccd2269272b6  libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc
! 9080e7a26e50d960459c04b3d69ab109  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
! e5ce41f80b3d7ae75452f5205136b902  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
! d75c733fa96f3c1979ed826e1db96904  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
! 37c74c0a9c7dd4ee0fe1eadbf134bcee  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
! ba23f1fc2e6ea79282f070162d97e156  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
  5f205a0115c4b3b8b249446d156f2d7c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/tuple_like.cc
! 9a41bf8a625c07ad93b31a834a1b5418  libstdc++-v3/testsuite/20_util/tuple/moveable.cc
! 6aee9edaed2f490062ec0f8e901cdfc5  libstdc++-v3/testsuite/20_util/tuple/moveable2.cc
! ffc0e79f009afbb58b2fff4bef8d2a69  libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc
! d7524e0a167af945ac1c6ae1d6f529a9  libstdc++-v3/testsuite/20_util/tuple/noexcept_swap.cc
  c7189ba7b664b74191b9f4e28b5c9940  libstdc++-v3/testsuite/20_util/tuple/p2165r4.cc
  4400d6ca0a17478edfaf976996b94876  libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
! e8fa5b3db225ca76d2c4691a837d383a  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
! 43befa2342df9c97d37d36bfc5fc5c51  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
! ed99510af8eedb1219414932a693a4ff  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 2c4e76f4352a1b5f2c29ac4327b7a21b  libstdc++-v3/testsuite/20_util/tuple/swap.cc
! 237e87a5178ce2b9aa89b313d2d6ccb4  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
! a6caaf5d20261361ad44ac2ad3d0691e  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
! 0b689c964de583e9beaa6189445fc7a4  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
! 7cf16a87462c05071ee9f91e8c9213b7  libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
! 119bdf4a1f25c79241208ce7b0f130b5  libstdc++-v3/testsuite/20_util/tuple/tuple_size_v.cc
! 30751bc98d6322cbfacccf1a3a3f76e9  libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
! 81e83b5a9aa1dd558a26f3a10421f91d  libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
! 5c1f9934cd4d4e435485b715370a529f  libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
! 8e2707f4ad537e8d460c878f72908350  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc
! 36ad50334b4ee9d6b118883a50d512d1  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
! 894e32f4f0b59f3016754e6aa6c365a8  libstdc++-v3/testsuite/20_util/typeindex/hash.cc
! a03674886fd438ef2365a340ffdb8f09  libstdc++-v3/testsuite/20_util/typeindex/hash_code.cc
! 4a2fe6758ad7408e3e145bab940f1136  libstdc++-v3/testsuite/20_util/typeindex/name.cc
! e99ee02aef6db01dc327c93315595b7b  libstdc++-v3/testsuite/20_util/underlying_type/requirements/alias_decl.cc
! b53ed0233c25aeed95f490e70b6c4418  libstdc++-v3/testsuite/20_util/underlying_type/requirements/explicit_instantiation.cc
! 41f91fa7972f40c9b94c820afeeb3f19  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-1.cc
! ea00ef243c02bc6c728b584b5f474955  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
! e8ff3c3d3148e660a8f6822b29dd75be  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-3.cc
  270e7f9293f9dc29e06013f0194d2249  libstdc++-v3/testsuite/20_util/unique_ptr/101236.cc
! c56a7221674b57d1da3290d72f141b7e  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
! f6ed073440b50d410adf3f6c89deda6f  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! ff45517036fbb19cd1e22f5c78f00811  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! 8192f1706d48d7259e2fe765c63c9e09  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
! 14ab92e80f72d0e23201fee32cde5ea2  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
  97249a3e9b0a47e876b2dabfd66182d4  libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
! 3b6b213de148b891228e238898a85a03  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
! 7424b9b0a8be4c765a7597db8b20337e  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
! 00c0ee3cd028a21a6abc15676bab80c7  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move_array.cc
! 0a5e212c93cbfb441bf3c4da4b5644b8  libstdc++-v3/testsuite/20_util/unique_ptr/assign/nullptr.cc
! f91230e60402db36e35471f06753de4d  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/42925.cc
! 3417a67753ae6dbc06d4ae97e2cb0c7e  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare.cc
! d97afbb4595881f1d136425a8b966417  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
  159e8f797a9e0b16b7daedccc9cc3e7a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
! 96e8a401e2c830ccd876f5ccd294b35a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/dr1401.cc
! 5f3f182f47a2ace88e1e4a54f63313fc  libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
! cd2b4d2e3859d8525e8f29f7ddd21eb4  libstdc++-v3/testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc
! 6e45b60507adad36872a6573b539d14d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr.cc
! cf8177198daaffadf670fd5d67d50e24  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
! 88d71a894c3b3690bb93b5fbbd0b3691  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
  b476290d7a7cd33dbf90702dda410872  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
! 4800a2324a78a8783a1dd4e4d4185ef0  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
! 936cd9d0dba0e388c3cdf9d16e6e7ab5  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! d1dff6f2ef8c01615e2383674ec6a5f6  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
! 7cec8a60cea6c71daaf6ab30c1f6c07d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
! e38451bb281d866e9310f0ad46862b16  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
! acfd51ce36d5d84c7d04d3eb2c296493  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
! 42930c248ab5d88581f5b308806a1c04  libstdc++-v3/testsuite/20_util/unique_ptr/cons/lwg2905.cc
! 0edc2bb32c38c40ead9bc7ba056fb26b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
! e33dd8bc56b978820598ab8c593a367b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/nullptr.cc
! e1dc508ed510292b94841144b9766b7e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer.cc
! 602fa8c56256d1ac99ac6e32e1255e67  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array.cc
! 6ffdaeac4979c8e31274b192f5970368  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
! 1da2cb26c66024db0bc6591a3508f15e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter.cc
! 437ad32fc85c48399c58f1fd63a8b294  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc
! 4aad379915fa0e3292df83de0876f1de  libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
! f05ad4d48fb107b4c5b82e0dfb7fce9a  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc
! 072464a8a1fbcfbd871c2ff50880852c  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc
  582ddb2143f3eb8853e9a8c84aa99a59  libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
! 72269fee9604ace19633305ade1424ae  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
! f1869b7e151e31d15dd5807df2ccb809  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
! 64f2365f48fb3acdc1e725fa5023756f  libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc
! 2a251d38f66988129f26a621a81b7ba1  libstdc++-v3/testsuite/20_util/unique_ptr/dr2228.cc
! c5c41f8e7dab99c170cd167972963f81  libstdc++-v3/testsuite/20_util/unique_ptr/dr2899.cc
! 91d78938dbd6314810d7e97a76cb82a7  libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc
! ea32adcd755e3e5015910e5fa249b04f  libstdc++-v3/testsuite/20_util/unique_ptr/hash/90388.cc
! 281ae0f377799255cc0fcb1962a9604a  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
! 55628c39e73148ee6b15e0891b42b2ae  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
! da4557af0997e21e129121a971cffa40  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! f855591858218dc88355760ebc4885ce  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
  5e50545281dc7c1b91f14ab2c0f11bc6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
! b9b4c8473926fd30d8b3daf10dc5b23b  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
! 1322c8f0e59c39f1bc812623267d853c  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
! 93c7f76ec444571cc40ddd545dcae394  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc
! 09bb8fd7c17e9a8615d75aeced192e14  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/incomplete.cc
! cc6d55eb49c9a110b862ae24c12af4f7  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
! d99dbc84e59a4681b7eae8ec262256f8  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc
! 78ad159dea99abce3ba0e5f6954ddeaa  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons.cc
! 5b31ec34dd8b987dc630fa855e7b89ec  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons_array.cc
  9e8690fc2de02bbc9080d442b7647cb8  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
! c8a7e1418906450a87ab25022a8ce3a4  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
! f8f82d94f3bba2535a3585beac627154  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
  b752f343c2b8407affea1923b7fdbc6b  libstdc++-v3/testsuite/20_util/unreachable/1.cc
  f47805823c079035961580cdb36d1e63  libstdc++-v3/testsuite/20_util/unreachable/version.cc
! d283339a007e8306689113b6a5c93fad  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! ef0994168e310cd0acc3cd45c7502d36  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
! 68e6068da6f699dde076e3143dad3821  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
! cb43203583888b7c1969b1de11ea86f1  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
! fccb32892ce692a414f7c77f0a37f3d8  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
! 7fcc45845a1d3ed5ee28762a01202ca5  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc
! a87af230ebdf1d8450b2051acbebab59  libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
! c69c0c463011f9b4ceb1da46f271591b  libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
! 9fd225672ad5651b8600df6c615fd7e0  libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
! 0106c5fc26e0f5f763d59829da9e2750  libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc
! 5907ffb6ec4a20e45cfaa5d3b20aeb27  libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
! e9db62a19ed20612dac8ad801a04a56a  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
! 2a0591a63ae950083a44bcb898286dad  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
! 5c93115c00e4bf86b32e8ce1c334e79c  libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc
  cebc96b73422fa65854df12a733a6bd4  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
  cf03e866a34ae9811ca29a9fdf5472f3  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
! b4a0f40790c7f1a4c94eae689dab86c7  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
! 9081e751d3484ced2e85c31e49965944  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
! 903a83d078107a9460d516e1978d65c7  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
! 5af488effaaf427292b890ff0ece1fb6  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
  696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
! 369da6a70dd9482135c224f6080bbe0e  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! c9bf8a99e70d8bf5cf246fb27890a564  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  909e769606f79e2311fe65f425279584  libstdc++-v3/testsuite/20_util/variant/80165.cc
! 7292f7fadacc262ccf2f3fecd6c95218  libstdc++-v3/testsuite/20_util/variant/85183.cc
! 7b3c960332024666588f3253470ccb03  libstdc++-v3/testsuite/20_util/variant/86874.cc
! fe8b5f315898288d07ad098cb5052f85  libstdc++-v3/testsuite/20_util/variant/87431.cc
! fde96936bae4edf01e06264c16c6f085  libstdc++-v3/testsuite/20_util/variant/87619.cc
! 5f2e464ba04a64308a6ced6c1b79be79  libstdc++-v3/testsuite/20_util/variant/91807.cc
! 31a91cc7537ee4d6d8f141b67c946373  libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
! 0ceaf2953b50792f3c506e0ee92eaf82  libstdc++-v3/testsuite/20_util/variant/95915.cc
! b6d08e82a1063298d6e602a024656620  libstdc++-v3/testsuite/20_util/variant/any.cc
! 120aac766779a4be993def3ec21da0b6  libstdc++-v3/testsuite/20_util/variant/compile.cc
  e917c228c28a3a18beec5914b0f19474  libstdc++-v3/testsuite/20_util/variant/constexpr.cc
! 150a4e1582dccc18f49e3bbab1985ac3  libstdc++-v3/testsuite/20_util/variant/deduction.cc
  1fc2162ff0864215d7d9683e80eb2be2  libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
! 8c033624c9cdb6462d59ac061576719d  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
! d149997837a12454306d9ffde201b421  libstdc++-v3/testsuite/20_util/variant/hash.cc
! 307486e72e58467d2156368d0bfcd3e9  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
! 804a87a49ff4e4a874fbade1ca779e6d  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
! dd3cbd004c5e2a05726a53db550c960e  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
! 529e77cf853f67d562a16f83c78953d5  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
! 24de4e76ea00a4d76571d92e75c5ac76  libstdc++-v3/testsuite/20_util/variant/run.cc
  b482e6581851c371b03755ce99bd22c7  libstdc++-v3/testsuite/20_util/variant/version.cc
! d343ef47785c272de6d0e964435c8e1a  libstdc++-v3/testsuite/20_util/variant/visit.cc
  17098b13758ee1e3f169c2ee138604aa  libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc
! 59bbad3f9af67f128469b5eca79d7a2c  libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
! 71244e88636896a4c9bddfc6e4b3cf6a  libstdc++-v3/testsuite/20_util/variant/visit_r.cc
! 0edbda0351b20f4a12e6789823db6fc2  libstdc++-v3/testsuite/20_util/void_t/1.cc
  2a3f4c8a412a038d7981789c996eea5c  libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
! 92380769454532f1635f1c4e38f45ebd  libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
! 32f2dcca6f19e5a8dba10faf3a330add  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
! b35834c4a9da455585d4f464c3ee1034  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
! 9e0579f9d0276096f490dae413bcbf88  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
  6b897d033cb55ff130e351833c656265  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
! 3e5f4fd7115282166271cb4cf0d1416f  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
! 188d587f6435fead910a6d57289108ca  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
! 5717b53c16c4f11f4ec5f7cbd4b8f680  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
! 7bf497ba385011f9bbb1d6961bfce3bc  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
! cafbe413de74a53bbf9c5ba4c1534383  libstdc++-v3/testsuite/21_strings/basic_string/40160.cc
! f4e5079b1eb55de552c9dd9629b3ad1e  libstdc++-v3/testsuite/21_strings/basic_string/56166.cc
! 2c5b669cbae5a33a66d50efede9ad69f  libstdc++-v3/testsuite/21_strings/basic_string/79162.cc
! 7d7d55ce6a65a623740c02ebe44e1d74  libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc
! faac721d320d75339e08da82643a0b5e  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc
! b6b9a0ba9a2ea05cc8b4a02eec7db3aa  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
! 515c1bfd516025c09340996fd44e0193  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc
! 388ea44b496f8f8d470c54ae5a5748bc  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc
! 5a42d95b104179c21e963837e15a48f1  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc
! 88cc54f21ad5794856c58f343be31b7c  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
! d4fe32ca26162039523da8d443b4a2d7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc
! f536015f242008c6d505262cf4b34b04  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc
! 46948e4c76b31dd04d75eee98890bf02  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc
! 34da7ad392a1bef6e45052672612df3f  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc
! 61db02712c993e3e63e5cb5b25506a60  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc
! 2ca1ad08885d95bb63fb77e00c1ba5ee  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc
! c7349f108c0588cc77cbdf2bfb70c7ac  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc
! 8f865de31ce2c0bf162a39e0186fe75b  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc
! 429aa8af48e298882992a3ab8f48e7a3  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
! edc32cb5bdc319dcc7611638865a433e  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc
! 15958600873a5e26693d96e29a1c975a  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc
! bbb74fdcdb8b744c2e83e14efda4bbea  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc
! b5cb0b4c2ae3356d9239ca25aa2093c1  libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
! 50499dfb90fb1297446fd6679c1317f8  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
! 6acc3aa112e1c0bb4bf51255ead4e601  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
! 5e46c3c76cb20b4844d2133b5740ec10  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/2.cc
  e5836542231b7ec7b12a157aefb23656  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
  92fd664564ddcbc3da3f7299d2f4b92f  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc
! 1d283c642545b951b44a9671159e83ea  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc
! 169227b913010ff90efa38f396d64ba6  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
! 56d422860766dc226d93d5655d0f2880  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
! cb998951e97d61695d7e4cf2211a20de  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc
! bed0e7b14f0ba5d4a1a3873f9941c7f4  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc
! 8a10cdbe83f99b27901257121f038971  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc
  122070b73ab61f4cd7f3bf7dca05ad4c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc
  3cee8884d5dd774cb7646b925906f230  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
! 7a3e71964b48270f9a930d3fd40b5a1a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc
! 009cfefc473f1c982d2d2f97698174c0  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc
! 009502b6c9ce1e53c8864903829064cd  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc
! f0131dbee066993ddf9e5d21bb9fa299  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
! 99bf211b86598b21da11f6cea358121b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/5.cc
! 4b94cf176d40774a7b34ffa1476e6a42  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/6.cc
! 7245d6128c08334f1313056377d08675  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/64657.cc
! f293254924dbbb66b8f940776ff16a28  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/65085.cc
! 43c713fbaa1d3a2da0715a23de7d8f2e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/69092.cc
! 6b1d9f838faf955c3632bbd05b0b3e84  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/7.cc
! c1b2d1c44a4b2034db8a106b4235d649  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/79162.cc
! f27f736cdc834a1dfbdcc4617d795ae1  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc
! 2f180db9a1f3984a1088dd01f1d66599  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
! 373cd6c6b4849118186c4b9947c4f43b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
  cb9791fc25754e1c39b72501940f5e6e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
! 4901d31aecf7a00a4ecec92aa5e2a14f  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 560b1dc27dff97b9894f125f6808d768  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 2312151ad0bcd4f5b1784f5fecc441d9  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! 01c4b9526fc7200c22f858a109b81280  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
! 7d434e72f310d82ffbf058525286266d  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  ca9ae628b034a9ec99cd3e60951cfecc  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/nullptr.cc
! 7f311a4311cf10e44324a7842d547ec3  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
! 6a222702668b9c345e3fc59ec327bd30  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
! 09f3019be27bf9ff91ca74d229ba30c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/2.cc
! e2433e8ca2c0fd08d5479a4a135cb69f  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/3.cc
! cfa7719350f1985fee157fe89ebeb730  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/4.cc
! 26841414e0bc1f183c923d5db7fee6de  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
! f798b3b571d61de70e80f98c23efc3d9  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/5.cc
! 5326d5f3f7f94e5e4bf6818703a06a1d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/6.cc
! fd78eaeac48ed85cfb6cce283606a743  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/7.cc
! c1b2d1c44a4b2034db8a106b4235d649  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/79162.cc
! e6b79cfb3f5bcee20680c2cc68c5d936  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc
! 8a3549e59632f485bd3c454e255b7a52  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
! 571c17c97aa79074920aea3c1b1b0e07  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
  e316abf8f7c3a7d57083ebd0294d09c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
! 07cd8f16fcc5894f0f9e8c101570bdd6  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! 8e62d666908104974a07707c767726ba  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! 34d06c8d965b1bd69f8ecb0ed673a41e  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! 33350e47c1f7229490a4547647273bb7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
! 4bc5e634d7530715442d08b77037f4c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
! 2fd4a9d89bbb71ae31593a2a76f0c968  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
! b93704befaa0c2fcf33c9c6724827f90  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
! 654c0f6326f518cd673f1ab24b734aca  libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
! ce7959ea0ff764ba01218e7d329f465d  libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
! 184c8247f1e779917757a6dd026e2ad7  libstdc++-v3/testsuite/21_strings/basic_string/dr2268.cc
! 8f0d3b7ad5dbc5debb108c3276885de7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/1.cc
! e4c1befafa078d8b66d3f73560d8b4aa  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/2.cc
! 1124ae695a47bc51af59af182960aaee  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
! f40653b82145e0ad42b70852e633f722  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/3.cc
! e7e1528c8db3d594880d3f101f4ae447  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/4.cc
! 75ec2e5c289cf7326673c6cd37275c4e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/58163.cc
! 30b36e43490faf04ea6b25b40ab0f2e1  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc
! 43bec994a39f7e5aa7bfa9a62798e9b7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/front_back.cc
! 66a9266e06b6a9290e357ed5177efd6d  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/1.cc
! f53e3a596f65183a20e3b25d9fd702bd  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/2.cc
! 1c29bf49592af6c79e55be303d1dbde8  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
! 55a576fbe0519e7a51661ec8c3df08f0  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/3.cc
! 01f3df8d38fc3591b682373f00f4b08b  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc
! 6d45ceab0f3756c06dad2994649e498e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc
! a2fa6ab7224c795a91bbf2bb697ee6bd  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc
! 16810527abb11f90d5b013fdaab57f14  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/front_back.cc
! 72c1c52a7ffb655d95146c8d20090369  libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
! 7f79f090e1b0a8ded66c065c21944359  libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
! f657a054b3d6cb8e2820f49f3f69679b  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash.cc
! 778f6cbb7011c195e2c6e1712c6b9b86  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
! 2ec0d56a96eb2096e8247b3b80379b5f  libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
! 9790112aa7c792053861e8fc4a54ef5b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/1.cc
! e1983b3b399e13d46f8598b1aada5de0  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/10.cc
! ef40be2f594d31702322d29f0b9300b6  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/11.cc
! 4476bbadd8d9cc2af07f695a4a12ad73  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/12.cc
! 346b6fe8a5f50b7ba8cce0667390a276  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
! bcee8414a00292f123d013ee5991b559  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/28277.cc
! 6ceb1fad949f43a7d049bd822abeb18b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/4.cc
! 773aed5bb47e50b3a57f112001118c42  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/5.cc
! d73d0abdee9fff5ef6b6778993813b39  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/6.cc
! b983fb343396bf2c0edd250d059acf31  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/7.cc
! 3c220aef4960b8066225078daeac0ef8  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/8.cc
! 8ae6f87907c9227f183fd953b801aa75  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/9.cc
! 3bd1587ca9ed7907bcd34e50de982408  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-in.cc
! 2ab945977fe96b7dd174b366296d8b3a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-out.cc
! 76701f3a3d07c17ef8138acf8f3a5e17  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc
! 8be257087e8e5108a51a334aff527f18  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc
! 25c5ef69f5611ee417db45f654f698aa  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc
! dd57502167d606214bff6706040e1961  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc
! 808c4d1f57088224ed2194e7fd1aaedd  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
! 9aea611b6fdc5ac87fb9a574460cf8ea  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/28277.cc
! 5aec7b8d82154f5dbacea19143d1d1a7  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc
! 51d158552e1ebb1a2032c89129e4af6a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc
! 0efa59b43efe44a0abb07c3353212ec9  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc
! 6c0437bb517f1cc5b84218081518641a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
! 3bdb064bf3e5e72a43f8f478ea518167  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
! d0fd4c48dc2325fe0371478ce28585bb  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
  5b256fb360837928c3a4fae2af348978  libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
! 8b7f3f98ce4ca681a4d8446c4d8e8fe0  libstdc++-v3/testsuite/21_strings/basic_string/literals/types-char8_t.cc
! 4ef0c635ec268814e3bc6338a6b646dc  libstdc++-v3/testsuite/21_strings/basic_string/literals/types.cc
! 80c94804c3ea0c4d90f46e06c3926fbb  libstdc++-v3/testsuite/21_strings/basic_string/literals/values-char8_t.cc
! b761a39b3f98f635d88fc996ec8d1907  libstdc++-v3/testsuite/21_strings/basic_string/literals/values.cc
! 095662e6889a55c3c1861a1d3963d818  libstdc++-v3/testsuite/21_strings/basic_string/lwg2758.cc
! 182bfcf8b2b67a7c3f7d36f12d5bdbbc  libstdc++-v3/testsuite/21_strings/basic_string/lwg2946.cc
! c0e6751cd04fd55fe2277efe45bc0916  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/64422.cc
! 8f96352340b3af61ea29704b2a332f18  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/1.cc
! c8dcbacdb06966611ac55abbed2dc3ff  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc
! ed4fac13314aa002195cd7f16a7940f4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc
! 9dfff5803845229412404be03294867f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc
! 1a30e7321bdf13350491194693231589  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc
! 294807f7ea6a5966fc73eaf33befa903  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc
! 981016c4f676d414f545d341866f9ce6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc
! 7ff3739dcc40ef9d2330cfc636a3bc45  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc
! 3d27d472e067078cca784257f6fcb47e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/1.cc
! 9a93399d2a05806151161418154d5413  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/2.cc
! 4bdc0d7afd6fc64df5c114c4cdda817a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
! a8795ec95d6c7b0b9c2800d727e41ea4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
! c99cde77a00182c39b31de18f5942aac  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 4e2ab41d3ccf14b0468782a70ee5fb01  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
! c5c834d8093d60b550f80e326879a476  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
! e96b239734fb69ac47869ad90bd4d39f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
! 88f9ecb99d7eceb84c6413c2b0c666d9  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
! 8b1f3e43e138500a143076f95a570335  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
! 58cf870e38fc716dcedefd4bc4a13abf  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
! e220a69d94473362abb8229f65b200af  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 0cecebf86aa098aa4bc227f1aeca7e39  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
! c43f0426bdcbebb7552009d252fa0718  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
! e66e3fb8318e502497062239c82b98d0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
  6d18cfe84438ca7628eded6d32714553  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
! 80589a2994db16e71f9c038f458c24eb  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
! 09401e806e722480348a23bf6187375a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
! 71b58d693223b110d06de8790048efde  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc
! 442c570a14894146e1e4c32b42b0fd29  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
! 79019f332e26ebade4ba016b3e314087  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc
! ba47107f9f201196eacff8070e30176f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc
! a23e978e1a054224ce979aaca0c3b58c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc
! 6d4ab16964cf318122ceb3bc955731ed  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc
! e77f000ba16a7e6e8a9daf57404949c7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char.cc
! 509997865807838cb5a6cdf311e0f764  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc
! 33c8aa33f97c64d0c860d57432454064  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc
! 6871ae135006660b37948305473d03b6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/2.cc
! ecbb12857f1cf2bdc75d42837cab6dbc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/3.cc
! f6003fb4eb670f3f390209cba632c45d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/4.cc
! 03c5e2bd24038da56f2a162819e53afb  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/5.cc
! a1c83230791527bf4e111214fe1e12b1  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/6.cc
! fabf7345f70b88c2afbd242ad9b97b14  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/7.cc
! c9c7b2284bede10dc1f2ec8c6a35c1ad  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc
! 5ee136a9dd9fda7acf0c340e56f8881b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc
! d0c05d8f7eb9bd841a433ac92ce34418  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc
! 6c0c62adc137e08c7727db746787967d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc
! 2427ed2c846e37f30142c1e20525f857  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc
! e1816bf48ce15972df44ade7461276bc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc
! 2f40327c74356f45a6e326a25a45ada2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc
  2f6ea0520f0d0f2bd01b39b319539932  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
  5bee8e4869f348d2c36517bf3af378f2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
! 8e824456d506d7e1247315ccea17cb3d  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
! 9b007c00f60e871ca4b5731762a3f75e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc
! 501df7f38d1f4817b24297a0826d4367  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
! 6ee35d70569d143995e250c14e5f82b6  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
! a8ab4e2372583d3f5cd688f27a558313  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
! d5ea3e71e45701d2706fce66d21ef702  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
! a4fe3bd6672b8e318a809cca0a024bea  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc
! 9a37f22d711e74e7e339b960df569454  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
! 396a5d428e303334596ce95c6820614b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
! 5569c66cb378ef18e8c6911db9a661bf  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
! a98db4f3330e3cf381217394323adf79  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc
  a18fb67b3cd283797c0270b2dffcd9fd  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc
! b127d7e9aa9b577ec517cec1dd22b8bc  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc
  a6b6a9a6139a9783749ab68361f3c902  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc
! a69cc6d174c7f2be19743bfd38c8ca0e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
! 15cb15cfc637b0c276d3d72aeb0e1933  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
! ddc45035f88ad0cfe5b8139671ee57f2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
! c316edccb3a86cd00bdc8b6eb19d15bf  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
! 327560d7794aaa35a1bc5979e0458280  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
! f7adbac34a8104a27dd5405c0cf4e39f  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
! 5e4946a46288d9022148224ecede3179  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
! e3cf80f7ac179fe87114036e2ca07d81  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
! b556aac21d41332929350cfa43c2d400  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
! 37a3fe8449f7948f044f2900e75f7ebb  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
  fecb5f76794dcb7b16941f3d83836e9e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc
! 182461449a4aca8037e8e00cc0ec7c97  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
! 1825123cdc2a89da27c870140d19f6df  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
! 341f66319a26204336b01dcd1f1b1565  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
! d892172578ee0d5468b089850bdcf92b  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
! 5d726f732ddc53dbbef5e882e4bf47a4  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
! 397affbca97b3f41c20f5554e14b7cfb  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
! 3f4df1904984cdc6acf7f07255d1cf87  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
  ae24673f13edfb3394be4338e100ab0d  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
! 38be8793706221c8d56b74c98939c18e  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
  da3f700a53d22cd029a604673e059e11  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char.cc
  9ccbc06738d22d9f941b8f2b369c7915  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/2.cc
  fabf5d00ed38687c6c74b03d67132fac  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/86169.cc
  ca74682c72cb547cf309e380caad822d  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t.cc
  ebeb1bb794a93823182dc633b65b1594  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc
! c16d64c9f40d549f37ea55466f7ce85c  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
  5c15e736abafad8f6ffb265e32985635  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
! 039d1ea6465ffd9f0b9dc35b7ce713ca  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
! e2ebaa7bec3234e7feb4b5076eee9748  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc
! a474292cab45e4315c1719c5d328d657  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc
! b0b286a5fc006902328de6a7bb843416  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc
! 268c33723cb1fb447fa35f7a541b6c5f  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc
! db6f07f7fa81baf946c38330fe93dbb6  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/5.cc
! 3791bd84bbdba96651963ac6ceee1e98  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/6.cc
! 674a08257c1a37c130f65255cfc3e879  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc
! 4157bd21cf02e56dd2a8c04586316cd9  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc
! 35f9491609c467b303ba2abce6757c4f  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc
! ef61aed2ff215f0ef9a968ff31779b54  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc
! db09018ce7680cbc3c148f5ebc1f92e7  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc
! 548ab21557d19c6cca9ea903a9f0972d  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc
! 1412fc3db4b84b2974668a1e0bee32ae  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc
! 9ad1236b2310f565ec2eeca454acb99f  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc
! 06601ee91daee8047e846837cc92eb9c  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc
! 6a4dd274f1d3aa0ed68a16b50a33b72e  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc
! d99f4529266851c7671e66c244b1dc0c  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc
! 7a6ebcd41bfdfb7acbde27fcc08a2aab  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc
! 4735dab6b4bdd5831069e4705de7375f  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
  140fe654a2aa08440fc10cc943a5996a  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
! 39c3c1245de10f700d86c742bcde37d7  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
! c2649aef213d4c8a8b77fbb90a93a0e5  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char.cc
! 0cc3c8c668729a956caea3c02761bffa  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t.cc
! 578ff3beddf6b61da539d31b2cecfb40  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/1.cc
! 3e27b42cb9b4fedf719ab7bea842a71f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/2.cc
! 2d244221b6a8f183e7e4359c8fcb06bc  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/3.cc
! ccff9968b0e54b0b2af5a784cf7a9c1d  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/4.cc
! b5afcd021bb1e9ade5f0a5156f88b20f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/5.cc
! ac7b3ad827bb432769a6a0abfd5ce4ed  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
! 2fa4ad0c6e45a75cf5c17a4e8489a582  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
! f44edf54d627d798fdef70d5a3920eca  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/1.cc
! e54856f899a3fb7d5adabfc418ccf69e  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/2.cc
! 615779b81ea5167253d93f7528ad82b0  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/3.cc
! 8a4ec3f77ddcad3640e6cb5ce91104bf  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/4.cc
! 49d9cdc4f29ab276e9f14ad30f9f65df  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/5.cc
! 6bc37aef0a972b53ae2afa389bb3e520  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
! 5d54c4acf8671e9f6c2c43e753db20f7  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
! 3858b79a87dc61d923add6a204f1ef7f  libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
! 2ccb730ed26646cfad2150443f5802b6  libstdc++-v3/testsuite/21_strings/basic_string/pthread33394.cc
! 68389e9ba569696be08fd1a6ef3170ac  libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
! bc5af750f51215ef8cd192e39bb0cef1  libstdc++-v3/testsuite/21_strings/basic_string/range_access/char.cc
! 7d872347a6bbc1d8e455fa27b3e94b97  libstdc++-v3/testsuite/21_strings/basic_string/range_access/wchar_t.cc
! b097a859865da881ea63e738eb829b13  libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
! 4fbd6f1a252a639e8838af20abb47ff8  libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc
! 91749b9e1d685215d276075ccd964a57  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
! 4260db9dec917e7dae87e8640aa98ba9  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
! 16158b1a25f6bd4fe0f337b14e0d2489  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
! 8bf73e7fe480fe6547091df0eb554e2a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc
! 770a17aae9716545c2ed2f15835c5ea2  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc
! 56361d626b7196766c6d281e70ab77dc  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc
! 9c7a0e7e21a50a497920117096e9143a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc
! 9cb6a53f2d78f6e813dc823eab0f355e  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
! 1cd23eb45de036e9d69d9b8f9025b5f3  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc
! e8b429db550a7554a3cb8680af9cabba  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc
! c11cbd855b181d3ff3fa4e4b81cb62de  libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc
! 8c523fc757baae0802c4748c16035060  libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc
! c9585781ddd4c8037380b9313344e8e1  libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc
! 7baae5837cbeeb43dcc7090506bdc5b0  libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
  c3282f46cf0aa8f94d0ccd179b173e9e  libstdc++-v3/testsuite/21_strings/basic_string/version.cc
! e4ed14bdb1879d2b5885b5a552277459  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc
! 2a58904cead996bd0258a6c606e362a9  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc
! a0e36a6acd0746d6beafcf2f532a1f22  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc
! 44e0b19a8a295160ff7759863355fb33  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc
! 96b9ff59359f27697e6905a6afa723f7  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
! 0b352cb3fcab7153b204be5c9c991a48  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
! 5d29644c2bdb9cebc6e016c54fd29431  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! 0e4a3b3385a8cd3fc766a454469a37e8  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
! bb18016296732b92636ab251b1459be5  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
! 95c13914b8f6d87ef0c0311619987d0f  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
! 49ed1a5811d0972672ac20f692f1c09b  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
! 5df951b66f5a231f78ba256a6d3553bc  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 780c809f2308dc1018db9190dcb74c91  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
! 91b12198a7a92ff75ca24936a6c09f8f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
! b13d87a2fbd18fdaa6b5d9a830e7bac9  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
! 50355bc6f287879db28550310d1af61e  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
! e1fdc444175211e2452231e2169b31ed  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc
! 8ada581a302a4b0a89ae85aa4ad98c5d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc
! 556aa79c575eef820f04d5da021748bc  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/empty.cc
! 984647aa123a7bc8d4ba184026ab480d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back.cc
! 7c10bd57234761de2c84f5fb1509753d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc
! 2f71b91e758ed38d641e65ace5956e47  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc
! f3f36410d488bf3e4faea8a51ed6d67a  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc
! 3ba5841847dd5cdce8bf47d3e6c8b6ca  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc
! 3a64c81bba53eceff5e9b0096ea8c07f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc
! 4bd59b5b434b404550ce6a75e7b3647b  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc
! 98a02a37b31b7b9a38a6860abf043672  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc
! 3e4648c1458dfa1236dbcf301dd5a91c  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc
! d6cb833ea1745b600cb0642bbc649962  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc
! 7d3a770eb29ca593715eddbd27f4a9dd  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc
! 11284d94df43983b69385893e1415719  libstdc++-v3/testsuite/21_strings/basic_string_view/include.cc
! ebdfcb6190ba4937877878196a7fba1b  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/94051.cc
! ea9b5b89f16765e118f8c9bf7ee618ee  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/1.cc
! 60775a1e3e8e62a160890416f7dded99  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/2.cc
! 1f4ce5ffc3c65fd40276d1768a40ebae  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/3.cc
! 157372003edd922818926b580040a1b0  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
! 2197136b692b0010f8e801d36348e7a5  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc
! f67c886e27fa1326a8367490ffc25d2b  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc
! ff0003e4af603fa1d727bf3072b8929c  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc
! 93a118f76446745ad861a91c6fbe2cd0  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types-char8_t.cc
! f138d5190c21d619787a28d10d9b7d3a  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types.cc
! e5069d26b4a9c4918cfb81a05f61efac  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc
! 42a20bbcd3635e356207874a5d5513a1  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc
! f560fd575d6fb4c991f3456776544668  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc
  817336bed4f7cd14c0d5efe6c2c0e601  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc
! 3a0161426378296285402d5a63376c72  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc
! 69427885e8f2ac36c5d7900628867b02  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc
  573b0debbcc6c79e199fdf28a9980e05  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc
! 4c5383e695c9a0a4453a39f79f72e411  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc
! f1acf3381fa9d26e6ae6582fa46009f8  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char.cc
! df11973046904daddcea3d48a8b7abc7  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc
! b4869dc6fbed2373837b3c3bcec1805f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/1.cc
! 585e98d42bdebdf3b8e4c53d88edb42e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc
! 2c5bd4f177b72682a85a21205575ed23  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/2.cc
! 0d1d81c9aa4e60ad7ad54b4c620d111d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc
! ce0cf005301df64eddb6c27d6f0eb419  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc
! d696ea1a7e1cadf7cb6a8e8e1ff48c3a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc
! 1fff778f57536adca60c3d0bfb911cdd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc
! bbc8043455039fa4c00e88e40a13c48e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc
! 4b6cf852faf1d293ba74ee8ab4dc18ac  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
! a2b6671c9b8565d82916428af84e6af4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
  01c66f10bb2c3e980577715e74100c1e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
! e29362492830f8528d236b677dfd7fee  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
! 2d28156bfafc7c6209ee44ef661025fd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
! 4b91a2cae8539e06351c7870ff48c295  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! f4b525947eb0f0b184ada8c6e0c65c57  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
! 92a3d3927530a28b6b96ddfe670bba18  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
! a2f9250d402539b1d722e6000d455a90  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
! 202266d40cea7bd02979d9c356af74f3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
  49684812d0e6e538d983a81cc02ea19b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/char.cc
  3aca8654c80e2a1ffcc111b84f41adec  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc
! 0e9f5d5df1a05f3bffe4689a5e0ca24f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
  2c07e8f3750aea9490378f7c14e98383  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
! 94bc1acdecdadaad61799e136acff2e8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
! e67dfd9ca6f79ce72723cd9e8b4a8d04  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/1.cc
! 7a33b37856eee9c83680e34e94ebe701  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/2.cc
! 57a2dae42f2776695b855b39e7ac17a7  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/3.cc
! df83914a80ef21eeafc099b3144b3cfc  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/4.cc
! 3363f4b0f5b9f879b269febe540f31e2  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc
! ec7f7d6344de45d3c5cf855c22015e02  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc
! 79600c9adf2e76b12553f55372b3b6d9  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc
! 0ce040451ce3a6699dbb018529faa5d3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc
! ea1fcf420b5d902292af7c3631d2bbd1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc
! a5ab3da641b07e7286510df39229df01  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc
! d03d4c99a714adc344869006eb920af0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc
! 7144c39386a8d1fa588f3d70c489b508  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc
! 5a1502844b1b3fd17b84a37b7cdb66cc  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc
! 2701ed9d4772b8072133adde988d8014  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc
! 347511a3e05ad6c394bca95c135bff33  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc
! 146c01d4b26ab66fdd0bacbc09c3290a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc
! 03311950a271cf28cddbe756c0c22711  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
  2e92d8dc3a6c35a45ee8e2b150d825e8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
! 2ccd739b635000e3e9e2982ce42b0b45  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
! c14b0d80b146d1dfcd8a275117d715b1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc
! 5574675d22d0626ff87b29b37b4cf8c5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char.cc
! a6451c9ffb1b4bef6a48e0974d856013  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc
! 8a7d08554854f694794417018628e6e0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc
! 124739c01a0de45d59072c65589f500c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc
! cdd9c2aed543a17fe30a1d09017c30b4  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
! 1ae64f87c44a0f6b7d46172a41d20f51  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
! 8f0115e6f29d26295100df014a4275af  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
! 3eff3f3f4ab1b14122c640ccef0294a2  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
! 722c39c72070a88eb301d0b3a64c8078  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
! e801b975cd8fe5a73fab900564edf005  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
! 44a6b5716b625115d9bcefa0b81a8091  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char.cc
! e575a95a25144cd56c0ff6a5aff7b8f0  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t.cc
! 0149a8128066c3f658dadf6a2ea0b5e8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
! 275de5786cee964c349934d778de8286  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc
! bbe6855e407e756bca96a7f48c4ac6f8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc
! 8cfd4e1dcf79dffaed6f1ee568647170  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc
! 8238c1de221bcf7ee11021c4b9e17aa7  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc
! 6f5dbf30d4fa7535c4a6b161f5480982  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc
! d05a0c0cdc824912a2c26db94f86a6a6  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc
! cb6e90e59b3e6621cdc48c63d492f9a7  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc
  58947d8735c23b82574427ce2851e965  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc
! e0f010aab13bfd649e4cfe778cec0aa1  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc
  e79ffa6e2df79e903d738baa8867e3d8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/version.cc
! 42403b55ce4f7077d82f58e16e54bd09  libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc
! 3cfd688bad169253ae919624578c9be0  libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc
! f16401c3680ab6e2e9e427e43b1c3f25  libstdc++-v3/testsuite/21_strings/c_strings/char/1.cc
! 4949192e7accc8bba1c74a29c5e4f753  libstdc++-v3/testsuite/21_strings/c_strings/char/2.cc
! 5304dd9ba90aa7c93c32f62ac2a986c1  libstdc++-v3/testsuite/21_strings/c_strings/char/3_neg.cc
! bc80353f8b8f94dbcedffa5a8a03f69e  libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc
! 42ff41c39c5947b7ebf79a19ce304e1a  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/1.cc
! e89d57672812a70306504b1e050a993c  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/2.cc
! 716a8cf8f3bab7c0bc04444c4aadc76a  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
! 5ee269d49005262fb74f53020ad9433f  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/3_neg.cc
  82d6b4f00580779800e341ec6c9ffaea  libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc
! 9a89307f3fd30353760d58e7f2fe6a49  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/1.cc
! 417f04425326292627a556f609ff074d  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/57704.cc
! c82578c58f9b24d9aeb891464ae4a0b6  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/65049.cc
! 2d916a782e53b2995e247f696cfa5b48  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/99181.cc
! 67de0adca97f9aa18e30182e26b79a19  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
! c2de1a4c7c1102d93ed2c67626090f7c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/65049.cc
! 54c97ea7587ecaab9c1ee867ed0ac24e  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/eof.cc
! fbbce34811a0239b381fc730967d8576  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/typedefs.cc
! 435e560b82be9795f44dba34953fd5fa  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/65049.cc
! 3e818aaf7cada3f443bf5396880ad613  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/typedefs.cc
! d87dd9185fd1b91787799b4d2be040db  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc
! 5c60af03e1487973d9e34075dffe797a  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc
! 020c4c1d6801fdd80c8628582cc29954  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
! 1d81dd8ce36b58958fb183f2be21abfe  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc
! d0e5558ad509d484acf6e55897d95d06  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
! 37a8dc135124881142248564112cd68c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc
! cd3e103dd70faecf0ab8f8251f4c2803  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc
! 40d2de07b2f875948bacd9efe235d23f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc
! 9135f70833b5899e1f42ff47ed438a85  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc
! 23eaaada5d633d867d08f88b1ff54cc2  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc
! f6ec0f68c7458c480bb6dd6133e3eabf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc
! 2fb6130c051d5b1d8e03a50d2e9f18b3  libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc
  819f386019c36ff55ef68149f90bbfdf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc
! c3204fb2c40c36c87e506b3ff5e894f9  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
! 599af1427edecbdd6b73fe286579a72f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc
! dcc0ba7d78b748b4625f029b7725d459  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
! 8423072937603708261142b3839f43a4  libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
! c50ddf9051ccb16a68d1a55ce197fc70  libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
! 4f155d9f6bfd84954de893977ca955fa  libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
! 92426f47ab7f89a35beeee8a40bcb01c  libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
! 9568bf6fe121190aec70b0e3c38babcd  libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
  7c0cc35cae3c984b824f4f9da4550e7e  libstdc++-v3/testsuite/21_strings/headers/cstring/version.cc
  515e21fc42c1a4dd194f9115ed799701  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
  bf5af2094c9ef74f8a08d7d077043065  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc
! fd9f53eeaec84dfbb231150f340126d8  libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
! ce2181af62f39a45b90379492a303e86  libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
! e722974c6881c0d6bd0402317829669d  libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
! a4692ba69e011f230acb931dc88c2de8  libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
! 01730063955654c0e5d8e9582fd9a816  libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
! 32de349370d5b5b3f4e2b3b86dafedab  libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
! ff2d30d6d41f8efb4fb5377e0087e0e1  libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
! 2bc6b07205ee499cc6332413dc7da16a  libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
! 03fd535efe804cd7c08d725194a6ef37  libstdc++-v3/testsuite/21_strings/headers/string/types_std_c++0x.cc
! e52fa52ba6bc01c5bac3106c86632634  libstdc++-v3/testsuite/22_locale/classification/isblank.cc
! c4c81a0efb57857a6e2ad5f9abe5d106  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc
! 14ba73f2d5c6e80b8409f9531d5fbd93  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc
! ca5fe9fbbe0a9150d9e9363a9d851d71  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc
! 4fe75e61b646ff024e8e38c6cc527083  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc
! f3500e78c852fbf2c1fc5c8a74f70f65  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc
! 55b71e6d788fc2eec682e32424459ef9  libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
! 3463b3ded566c06c1a8b9013a9c4d5dd  libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
! 613bee3cf86321fb26b3ef4f4dbaf2e4  libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
! 4fabfb7b9cf29e2090f9dab75d1868ec  libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
! ae145ea71fddf32abe140e2c0f87968b  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc
! 53d537f0cba185ad78bb6f416c9e2438  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h
! 8152bd39e1e0175301295d4099360cf4  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc
! 70274dd25327b59715ad4c94ec2591b8  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc
! 533ac652df4847cf0dce32f2d42108c2  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
! cabc47f12123aacf267796c5d04e276e  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc
! c6b48c4f9c94e09f9b247a11d10c36f4  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/80041.cc
! 065638501c81519cd009f26b1dd22ba3  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/members.cc
! 7787c98d0fd14eecd43e0ba64f6cab07  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc
! f64c98af8248a9e001c7bcae7d90338c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc
! 20671a1f48d0ea64f4c867f0c095a8d8  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
! c54294609f4234db6e6cb4515be4ec37  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
! 894fa3913f1c1a5a1f4e5cd0f388e600  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/members.cc
! ea59d132f377caec5df34143b2700ca3  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc
! 4fd48a0a47cc1785406fac7b73ade785  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
! 01c8be292d478b60e6e5e816cb5db028  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc
! 101188bdf96db9f37ec45adfee2e97bc  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc
! 4c3ea36750020e62ba77d58adbed676d  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc
! 1d1a777966977241c6e70faea499f16f  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc
! d825f4607097ef52f40045189dd277ba  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc
! 23bbf50846eb877194266fac9a823667  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/1.cc
! 8bad67f05118fa2e368f3d84fcdebde5  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc
! 576f07cb2646f262b64277bf538726a7  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc
! 4876f1760eb69d22343f5e3706fd37df  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc
! 1b9f883aa2dc53c195b42179e02c5a81  libstdc++-v3/testsuite/22_locale/codecvt/in/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc
! 3540a8bfca796bdab8561f32a88477e8  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/1.cc
! bd5f75e035054d99cc07be424d0926a4  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc
! e046e8bc529286bee9b686b9e458d58e  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc
! 729708ac47e53c21f530637a617cffbf  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/4.cc
! 38712252afa1c8309ecf45f2be123a5a  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/5.cc
! e5237cbaec61829e21853911dcf610cd  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/6.cc
! cfc3e7be5078c3e1c4466c9cc861ed22  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/7.cc
! 63567fe80ecc5dccc9b74f25153d43a9  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/8.cc
! 6cb5d974782f6175d1359a4d696c6685  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/9.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc
! 820742327218b26fde6db5bd5cb29be8  libstdc++-v3/testsuite/22_locale/codecvt/length/char/1.cc
! 1c71cbc09e2f205805a96d2d09d7503f  libstdc++-v3/testsuite/22_locale/codecvt/length/char/2.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc
! fdd042665b212ba396b5b348a054e403  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/1.cc
! bf06c594254abfd04cc001e62c0328a2  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc
! 313bfc6e230795e49ca28d046fb29d2b  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc
! 681c6a1806913e4a8e8276b7f3cc60e8  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/4.cc
! 123362623047cebcb8da5445ee5a9a19  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/5.cc
! 6bc58bc0d66a573c59c4247ef0b6c86d  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/6.cc
! df00c78c4897de3ee0f367f794b079f0  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/7.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc
! 48be40d67d828bb1882741d15a4e8193  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc
! 435610c696f57ab1f206f9307ee7ed7b  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/1.cc
! 13ab92911841140540f5d4c46ac9c663  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc
! 5cf79241a621a6198cc8c00f8421ecb9  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc
! 89572e9a4f2da3c78ab9ce14412705f0  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc
! ce930143d2b46b7f12da1546870d8e74  libstdc++-v3/testsuite/22_locale/codecvt/out/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc
! 1afc80391686bb467e77bee60fdc417b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/1.cc
! bf4964b5ca83895c7aba2f025f86ae96  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc
! 88298f3acfce9194e5cb61d2aa58ac7b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc
! ad3d7245f339bf78a64cf5331af9636d  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/4.cc
! 53dffbe63ac5720478382b6f674914fd  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/5.cc
! 0e4e20c5b639f95bfd4d2bf16b4b5d35  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/6.cc
! ebcd26292f32f30825abd68a008ec616  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc
! 31a362717c2b0f41f7b87ae1b9112c24  libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
! 326fbe0f37d40fb233a06f97c3644af4  libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
! 86d3e4d5ec1443f7c1ba0abda23066f8  libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
! c9c365c6f94c355176c4ea616db08deb  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc
! c81c482540f2c396d8223fb4b8f61ce5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/1.cc
! 3fad21f3dce52e7ac2662e0ec2f0a1ab  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc
! 9393efdc45255335190c1ef942264cd5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc
! 70d2ebd37774f3daf991ffbc8b975d4b  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc
! 3bc56667708f03b3918c05ed7688c1ce  libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
! 6dad41e0eb9df1fa3006d16d7e0ff58a  libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
! 1ff459b4a55886962687ef35348a078d  libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
! 5c6467ebf1bce65b949ead4ac38aba74  libstdc++-v3/testsuite/22_locale/codecvt_byname/50714.cc
! 0a38c7ff5fd297c53e6e296dc4e3ebd7  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
! b7babf7700fe7f40f7cbbe407271048b  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
! 6d1b3eee6ce1a047d8aa03c5c9eee64e  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
! c8e4f757d698f1340a6e3ebf7776b1d1  libstdc++-v3/testsuite/22_locale/collate/compare/char/1.cc
! 303792f69a074ebedb3a5c4242a61b35  libstdc++-v3/testsuite/22_locale/collate/compare/char/2.cc
! 8a7ca70d78ef340547cab46fe2e6bf38  libstdc++-v3/testsuite/22_locale/collate/compare/char/3.cc
! 028a421bfea067a85da64cda3d80806c  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_env.cc
! e5ac50b2872c1cb1a4ab067571a2ceca  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc
! 6bad420cac9daa53a4b0bbccb221810e  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/1.cc
! d50ef178cafe6ad1ff26ea76be8fa417  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
! 6e08bb688cd7cb29ae2aa4be3f924981  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/3.cc
! a82f2d87077944bfecce2e9f6762557c  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
! 6e18b5b2565120c5d83cf5840242d884  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
! af86fb298ed7860c529d4957fbd8ea2c  libstdc++-v3/testsuite/22_locale/collate/hash/char/1.cc
! da439031a7d6b89eb01caf64c6de4e4e  libstdc++-v3/testsuite/22_locale/collate/hash/char/2.cc
! f6d5b054c02746d1ce62998352b64d30  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_env.cc
! 3cec725959007d09582ab3c3a836f1ee  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc
! fe23cb75f130d947059a19e26595cd59  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/1.cc
! 1af61de0c6f7c287852c4f8bf7b84e85  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
! a82f2d87077944bfecce2e9f6762557c  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
! 6e18b5b2565120c5d83cf5840242d884  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
! 0cfed6ba3dc0a3c58b3a9e4d069becc1  libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
! 1fc702ca57f8ad6a6b317e269a90f537  libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
! 2c31c691e4d3a986f4f1b42a19e92ccf  libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
! 012b3ac078d6a67fa956238871687570  libstdc++-v3/testsuite/22_locale/collate/transform/char/2.cc
! 3a3d24df63037c6bb81be43c7a1a3d2d  libstdc++-v3/testsuite/22_locale/collate/transform/char/28277.cc
! 0d19d8c4a6c7cc1b6ef2b8cf21974810  libstdc++-v3/testsuite/22_locale/collate/transform/char/3.cc
! c4df719bd793db68f296a600121a008d  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_env.cc
! 92cd80c6073105e2deffeeb194c7feaa  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc
! 7e2f2fb9c0dc6475ec152de87f506956  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
! c4a261c08dc5afe68e543eaa095f8f36  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/28277.cc
! 328b56754e68a2e2de72990c68b53403  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/3.cc
! 8f36e155ff62d365c2f0371707b7e87b  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
! a4d27f66b2ab40eb74515ddf0643d17d  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
! 9c5fa9d4afcac7870f583df4c6d80752  libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
! e11c2288ed3edc68e4f5074f109fc01d  libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
! 92f70bfedbad02d9de31d98c6d9c65fc  libstdc++-v3/testsuite/22_locale/collate_byname/named_equivalence.cc
! ad7b3b6ba04abb6f23d88036df9a19ea  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
! 704cc90ba0c27730a3f49f4ec90d1f61  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
! 41ecd91220ccf53b3b06b08fcd239157  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
! 56bf2268aa26d68532f2171e8e35b6b4  libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc
! c883cc419cb04b31831781a211828738  libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc
! fc30c7de7ba353a4227469d364985b2e  libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc
! 528a8daf7be46d9dc40101be3caa991c  libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc
! 7a874df8ad3211a83c4b8869f2a8407e  libstdc++-v3/testsuite/22_locale/conversions/string/1.cc
! a45f075d84791de46bca366bd791b77a  libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
! 47ab2b9acab37e3eea60b1e6202d96cc  libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
! b27646b5046384daf139b7916b227de5  libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
! 1aa9695bed1880585a044845744687e1  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs-2.cc
! 13f0827e389e899b438b3d2078593288  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs.cc
! 1d79e560ff163ec7f1906279adc75555  libstdc++-v3/testsuite/22_locale/ctype/2.cc
! a46be9010c2363eb21802e1c91da3faf  libstdc++-v3/testsuite/22_locale/ctype/cons/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc
! 36c90bb139518538dffc064f089ef617  libstdc++-v3/testsuite/22_locale/ctype/dr695.cc
! ee7d83e81ba5bc1d4965125b719b95bd  libstdc++-v3/testsuite/22_locale/ctype/is/char/1.cc
! 700a5fe3f649b2665b4ea3bacfc1d8d6  libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
! f380bd63a601a95831c0d49c57b5ef38  libstdc++-v3/testsuite/22_locale/ctype/is/char/3.cc
! 2b02fd98f493637c8f95a5f593b9a0ea  libstdc++-v3/testsuite/22_locale/ctype/is/char/9858.cc
! 65d8bfdbfed0a095c0f35ffe4495c773  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_env.cc
! 35232b4234c6b2f0442bbb9d98565d24  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc
! 991d0916d123a95e6595c3eeba36efda  libstdc++-v3/testsuite/22_locale/ctype/is/string/89728_neg.cc
! 78ad711ea785297a13e29e3cef881a0f  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/1.cc
! 9f2e26c00d5e8b6d05d65bbac6432cc7  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/11740.cc
! 0bb454b1f4879386a5d267a2f4b9b7c5  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc
! a1f9bdf53752865515fcab77b44742ef  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc
! 6af812175a49876a68130a9353a012f6  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc
! 0703ecb1b26924dc05364a16e0ac9978  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc
! f605641cc02d5ca0702d9e3fc9d7de55  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc
! e8a5725141b2ba8a2cbc5ab91354abe1  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc
! 40aa76c4c37d219447e7f30939550ef4  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/1.cc
! 06c24fde80cac9511341fa5552b5f917  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/2.cc
! 614118a2d3fd2a1e8958bbaf4c4f2482  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc
! e8a5725141b2ba8a2cbc5ab91354abe1  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc
! 6741aeb28057b4dd302ce621c589bada  libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
! 58155770e820c00c350246ddc0ddcba0  libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
! 692a426be6ad5c99b5008501d987b366  libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
! 04c74c322b2ae9e171f2d056a642b5c2  libstdc++-v3/testsuite/22_locale/ctype/scan/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc
! 3e96488a49edf8e84ef74320bc3f7f6c  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc
! 5e205fe1ef66f470100d3f16e5b086e5  libstdc++-v3/testsuite/22_locale/ctype/to/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc
! 28fccc464509b9b581292a48df16eef9  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc
! 18ece7865a756ad8efe10cf985b9e4e5  libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc
! 5246ec9eb96de39cdce21c26908b76aa  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/1.cc
! 77b0c395d353bfcc1445cda8b096a9a8  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc
! c124876379178e603c8d36c3a91dbff4  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc
! 0358f07cf6133ce89ded0382c58bdd46  libstdc++-v3/testsuite/22_locale/ctype_base/11844.cc
! 5b617508c0137b88a4f16c4f3356fb19  libstdc++-v3/testsuite/22_locale/ctype_base/53678.cc
! ecb1b0e5a9d718408425230c6ded6077  libstdc++-v3/testsuite/22_locale/ctype_base/blank.cc
! 56680f3381830f69be13f957f1868f2b  libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
! 4b71f208fbaa306bdaa8c63e88f74bf8  libstdc++-v3/testsuite/22_locale/ctype_byname/1.cc
! b1bfa87e4fa2abe2088fc7446c851a60  libstdc++-v3/testsuite/22_locale/ctype_byname/2.cc
! eb26ee33a378074dcf6f5164a24830b7  libstdc++-v3/testsuite/22_locale/facet/1.cc
! a8dfb30be732797ec524ac2f07bcc8fd  libstdc++-v3/testsuite/22_locale/facet/2.cc
! 28f637355f5bab3aeb1683dbde7a6119  libstdc++-v3/testsuite/22_locale/facet/25421.cc
! f72098ab00c467e487bd4a7d16f68790  libstdc++-v3/testsuite/22_locale/global_templates/1.cc
! 243b566dcbd8350c197ff8e846f4ae5a  libstdc++-v3/testsuite/22_locale/global_templates/standard_facet_hierarchies.cc
! c276a86a0d4545b824450c607b1269e1  libstdc++-v3/testsuite/22_locale/global_templates/user_facet_hierarchies.cc
! ecf6a4ad73c439f5375656063b03893c  libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
! 85d748d2bdd45ea17b472efdf34703cd  libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
! 349d05859ae1f10040a0891a3b2c8d50  libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
! 1abc8148c5336d970af499cc1c2ef7a0  libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
! 9d29fc77a01bdca5bfd9ffc0d5d539b4  libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
! d08945accc4e521ab31ebd984c82fee8  libstdc++-v3/testsuite/22_locale/locale/13630.cc
! 9a1fb4716f2e1a82ee17ec0e91102980  libstdc++-v3/testsuite/22_locale/locale/cons/1.cc
! b91d4c623965c4381800534a0f1e5b9c  libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc
! cc13dec2359cb9314c66ef6d5397f719  libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
! 4ad73ac45c13a08f4bb6d15c1d0a7df6  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
! ba54ff03538ebbdabacfdc6e8f7264d4  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
! dbe14cb95420a84d668d11c203a2dfde  libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
! 56e0b6386e78b7faa2468b79d5ab7361  libstdc++-v3/testsuite/22_locale/locale/cons/29217.cc
! d9de32c0e4140446d10f5d1e1c848b09  libstdc++-v3/testsuite/22_locale/locale/cons/38365.cc
! e9773ed0ad72e12504d42f922e6a3473  libstdc++-v3/testsuite/22_locale/locale/cons/38368.cc
! f60fe0f17de9eac89d81e9b7c73a774f  libstdc++-v3/testsuite/22_locale/locale/cons/4.cc
! f9b5e0f78a51c0d512449c447b111e15  libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc
! ab548709e0df5d87d6cbf42cd6280a54  libstdc++-v3/testsuite/22_locale/locale/cons/5.cc
! c2ab48f755b346a937533327032b5c2c  libstdc++-v3/testsuite/22_locale/locale/cons/6.cc
! 3ade0892209e40fc0655bda93e20dc23  libstdc++-v3/testsuite/22_locale/locale/cons/7.cc
! e4eb77f0ce8df6d8b5a7aae89b7431c9  libstdc++-v3/testsuite/22_locale/locale/cons/7222-c.cc
! 384adcb24e50b04c37a258e7878c540c  libstdc++-v3/testsuite/22_locale/locale/cons/7222-env.cc
! 9fbbdd44aa0e81dd3fb61e83b23f68ad  libstdc++-v3/testsuite/22_locale/locale/cons/8.cc
! eec51b194d4343b4c05416a84b471fc3  libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
  5b40dd8bfef055000483f3fc3a4b621e  libstdc++-v3/testsuite/22_locale/locale/encoding.cc
! 6ddcf4968ae2fc2e41cb0a19ade4e7d8  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc
! 0a15951429bb0bbbc3651a9e1c959aa5  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/14071.cc
! 0689c9571f9667f30ef5c230ef1b4c8e  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc
! 1923578b053f4e12c635df63d8841122  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
! 4a9fc76b2c81cadbbcaad9fa6fc02211  libstdc++-v3/testsuite/22_locale/locale/operations/1.cc
! 4b5d492a961b1e0981e75da8acea0435  libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
! 5259063b164fddd7f1447e9bab2f31fe  libstdc++-v3/testsuite/22_locale/messages/13631.cc
! 8a648df259fea524d7a6f9961bff848f  libstdc++-v3/testsuite/22_locale/messages/members/char/1.cc
! 1386cccc580da6b3430d9cded887526c  libstdc++-v3/testsuite/22_locale/messages/members/char/2.cc
! 1cc7a2b1ee6fd216d3ca4257ac4c5002  libstdc++-v3/testsuite/22_locale/messages/members/char/3.cc
! 0bf4d7b6914959dce8462adf5dbc21fd  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_env.cc
! 43b46de2c08a33e0d803766f614c1cda  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc
! d7e1103220b626985f25fbcc331b81e5  libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
! 334b4b533e680e58ea0ce0340ddddde4  libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
! f95bccd7b576d5ad3ae935e7e8e96e64  libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
! 42de257b2bfca0268ab71525a86330da  libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
! 4e4e0f09f2764b44fa184bf83e84d204  libstdc++-v3/testsuite/22_locale/messages_byname/named_equivalence.cc
! ef019265d3a72baa6839a2ae0a77e782  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
! fb58eb15e198c0209df990169dc8a9d0  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
! af03f4740a28a4eae2f605568504cbec  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
! 92a2b07622b22fd950222bffaf5cc27a  libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
! c6ca6a31c1c1e24b13da0a92319d0224  libstdc++-v3/testsuite/22_locale/money_get/get/char/1.cc
! aef115b16d149c88d55e8459afc4228e  libstdc++-v3/testsuite/22_locale/money_get/get/char/10.cc
! 526a45a643d15bb1ca9ce5815351b169  libstdc++-v3/testsuite/22_locale/money_get/get/char/11.cc
! 3a8d0832f43396901f5afc35a172f16d  libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
! 103cb9f691732a669cbf58353a705af3  libstdc++-v3/testsuite/22_locale/money_get/get/char/12.cc
! 4fc4ac2af30a0bffb8c09fc1d82b4c8e  libstdc++-v3/testsuite/22_locale/money_get/get/char/13.cc
! 93ca856235ee1401e6bb88150412024a  libstdc++-v3/testsuite/22_locale/money_get/get/char/14.cc
! 45964692f1332735400c3c6423a4c3ea  libstdc++-v3/testsuite/22_locale/money_get/get/char/15.cc
! f240ba2e6c7e7a843075bdaf28dd0bc6  libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc
! 7fe35f27f6a7e156ecc4283c2eb25e37  libstdc++-v3/testsuite/22_locale/money_get/get/char/17.cc
! 78d7f6307a9791f26701dae43075295f  libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc
! cf74d73cb798d07e649914291e4af481  libstdc++-v3/testsuite/22_locale/money_get/get/char/19.cc
! 8d3c51931fbc43240a7275f8e8f292ac  libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc
! 3bbf9ac9d4dfaa1367f3ea17581572b3  libstdc++-v3/testsuite/22_locale/money_get/get/char/22131.cc
! 635c3ddbd3900e0a597edd7a82211232  libstdc++-v3/testsuite/22_locale/money_get/get/char/3.cc
! ac4751befc8dedee2260ad007bbb1ca1  libstdc++-v3/testsuite/22_locale/money_get/get/char/38399.cc
! 3df20a5a7160956de0d31dbd82e96d39  libstdc++-v3/testsuite/22_locale/money_get/get/char/39168.cc
! 61367018e3b9cfe5e56339d7256d8b63  libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc
! 6be7ecad3583aa2b5033c912e6c9c878  libstdc++-v3/testsuite/22_locale/money_get/get/char/5.cc
! 9edd8a0e06af79eaeb15ff48d271d7bd  libstdc++-v3/testsuite/22_locale/money_get/get/char/6.cc
! 133b7f407ac41167750028b59028301e  libstdc++-v3/testsuite/22_locale/money_get/get/char/7.cc
! 5bd529c6bf2908c50e2f65432dfcf412  libstdc++-v3/testsuite/22_locale/money_get/get/char/8.cc
! 2a835bccd2eee9ff0c296e5ec6cd40a2  libstdc++-v3/testsuite/22_locale/money_get/get/char/9.cc
! be523362019b1f12445e161b34ce46b6  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc
! e84ed6dbe89b24f7969eafbb7b880422  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc
! 11f561249d203ddf8f894bcbde26022b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/1.cc
! 83ed79eefb57eebdb3f1cbb831d0d5af  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/10.cc
! b6f31e9b1d63359cb4a091a57996440f  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11.cc
! 63656b4666485545af7e4482f99fbbf2  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11528.cc
! de34cd1e8edd1873fee6914524024337  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/12.cc
! 3155ad39c0de04b888d5186178d36f2c  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/13.cc
! 5b010b3e0f6dca590b5ecd7f587b083d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/14.cc
! e7fc470c65f36652e8eb9e9807e069cb  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/15.cc
! 0219d807a7ffbd42526ccd448a83cea6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc
! 9018904b6fc745051e3b12e85a0bb9bd  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/17.cc
! 8e85668e5d4ea7900645708227eb6dac  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc
! 30bc6194a2a33405f03ba8992b6a538d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/19.cc
! 0f6cbad1f59a4621b0608347f78cc64f  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc
! 43d39ae15c235918fd8f94c5ce2652eb  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/22131.cc
! a85b5f871b0993de8ff57a80c4686120  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/3.cc
! a38f9fd9d60a85ab5745def2a1fe5bfc  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/38399.cc
! 46e006760905ce7045afa260b0f928a1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/39168.cc
! 9bb578ca8fb46a53a32783dec46487f1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc
! 2632c5e7e0f9c0851284a4970fe8080b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/5.cc
! 5df71b9ee97e69e45e6d72b1f763decf  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/6.cc
! 47059508338657abb9990a975b97b03a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/7.cc
! 2fd5415f51d28ca6f2be3b3f025aa389  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/8.cc
! 119535ea17f2c78ce8aab1baaed15746  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/9.cc
! be523362019b1f12445e161b34ce46b6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc
! e84ed6dbe89b24f7969eafbb7b880422  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc
! 9a37a231596b7b3c034b85b71e0f4f53  libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
! e3d5144344424acd9ff28417269f2fb7  libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiation.cc
! c096295e49ac5af21bc194585cde1b42  libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
! 16261fbdd54db22cb98397fba523758c  libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
! ab095dcdb4968beb5c9ee88f83da2add  libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc
! 147f82d9db8b6151eb414f120f728e70  libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc
! 127fac0c2c4f7df0e6fea81400241c81  libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc
! 24fefb31099978a621b82cf8e11ea043  libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc
! 0c01a75423d9fc0e7831bb9b2de69cbf  libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc
! 71d8be50e4692c91f32be57e28515b70  libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc
! 76d0cdd60f9f134fb3e46b8934b7b8fe  libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc
! a7d7f1275930171cbdb71f428ca1fe12  libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc
! e043a55046e15e61b71f3d1624bbb666  libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc
! b06cef87405d83f2085cb8f50d8b0d10  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc
! 5a54d3958691211bfcd2e4dd8ce839dd  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/1.cc
! a922524413d4a5a71f33f1008fe66522  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/12971.cc
! 3c127cdbe9bd73964491f3c0e7c79bb3  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc
! b40bb4a8a517fa74131a66d88408569c  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/3.cc
! 451bfafdcf4fb5371101e5002f12bbc4  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/39168.cc
! 558dc238a58b16bff8a060e128464251  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/4.cc
! bb87bd2d80355890558306c0dd0adceb  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/5.cc
! 4f5515a504e25c2ae0d666e8d9e7a6d6  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/6.cc
! b06cef87405d83f2085cb8f50d8b0d10  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc
! 34967aacad6c34d58d6cc76c2033a758  libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
! c1beb506a1668c35db84192ea559f2ca  libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
! 407c30732b4dd0caec48ff64d2cb2448  libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
! bb3fd2dcf99438c38befbd27bed24174  libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc
! 4274461391655a556ef3a31b0cecc3d5  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/1.cc
! add46196b8c8de977ec8a19bf3aa1c05  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_env.cc
! 52cbcaee7de19ecfd097204926cd6d23  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc
! d09b9aee0fb793932b91a31d18420192  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/1.cc
! 74c833a1578b5f776da29fab9a641ced  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc
! a1f9bdf53752865515fcab77b44742ef  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc
! 4b251f72ee0a72ab37a99aba719708bc  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
! f2fa90d3448998642bba8821e0266f4b  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
! ec133d1c374f1a00ed7efaf92d2c6d27  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
! f83af8f595268f81d5a2b2088ea6b489  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
! 48f18d8f48c9b6899026fdb22e80f050  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
! a9eb3ebda35179aa658a574d23a017b2  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
! c01dfd4f93cd4626348b5cd9a8247b10  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
! 0cb12a87ef674c279b22c8dfb4ac093f  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
! 8c04f386afcd44f1f6ac29114b232707  libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
! 65f27009639b4ad683f05d90bb534322  libstdc++-v3/testsuite/22_locale/moneypunct_byname/named_equivalence.cc
! 9fcbdb69e353b04c13795058f821154e  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
! b6aad7dd1689fe521d86f3d1d5ecacd4  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
! 1f4e7e46631acfc110ee72698f630732  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
! 53dadbb1124370cad401279a08ea7b63  libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
! 5ff37dd5af9b6bd4005d55ea38cc9bed  libstdc++-v3/testsuite/22_locale/num_get/get/char/1.cc
! 2bc5522f256634bfa1b0c4842d6e08c3  libstdc++-v3/testsuite/22_locale/num_get/get/char/10.cc
! 6f917b66912fce049294abfc386820ea  libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc
! 240c2ec5a9d3e95dd45b8cc039ea451f  libstdc++-v3/testsuite/22_locale/num_get/get/char/12.cc
! 9eb01aa28bed08d4df9cf5aae9c9306a  libstdc++-v3/testsuite/22_locale/num_get/get/char/13.cc
! c5b08a970e388952d58bdde394c6da61  libstdc++-v3/testsuite/22_locale/num_get/get/char/14.cc
! 9e80deb68965a6899c9b10ba48b88e6a  libstdc++-v3/testsuite/22_locale/num_get/get/char/15.cc
! 95edb9c65f44ce5a634fb2006ee22121  libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
! 1b6eec42f163cb5aaabdf9f4799355b2  libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
! 5fee6bb3a7f8ef5c03c95fe17f41630c  libstdc++-v3/testsuite/22_locale/num_get/get/char/22131.cc
! cf87b6e4afe0f70b6ce47171112744bc  libstdc++-v3/testsuite/22_locale/num_get/get/char/23953.cc
! 386d2e99ffe8de2002df7a5a90416bc1  libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc
! c22292146028ceb1ecadb3ba34b30b8a  libstdc++-v3/testsuite/22_locale/num_get/get/char/37958.cc
! bcec347d4ac9826b430eb613d2f3b874  libstdc++-v3/testsuite/22_locale/num_get/get/char/39168.cc
! 68cda25d8c5e2f2051dd7d91633eb5a4  libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
! 48f8485fabd2e1f5ce28bc9f1381e1ae  libstdc++-v3/testsuite/22_locale/num_get/get/char/4.cc
! 7b9599561ff342bc109ee3ff493c3877  libstdc++-v3/testsuite/22_locale/num_get/get/char/5.cc
! 3bf1b681b9755d883c09e8af23521466  libstdc++-v3/testsuite/22_locale/num_get/get/char/6.cc
! 8054af13e68c60698b6c0f92c700a827  libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc
! 5466996390c0f11f8b5f4c90847cc7a3  libstdc++-v3/testsuite/22_locale/num_get/get/char/8.cc
! 0a74bb1f0cd7f42994a315a7aff2770b  libstdc++-v3/testsuite/22_locale/num_get/get/char/9.cc
! d514df1291661baa44a7601e060d0e5a  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc
! be9c94afedcfdd55ee9a5a5f6feb099c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/1.cc
! ad554b258238ba51b1482045e71f9b87  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/10.cc
! 3804354ec3f605dc42e60d3a32032036  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/11.cc
! aa1b96ce442034d62925a6f9c3428416  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/12.cc
! 727134ce0fb0bc46e4e6a576829bccf6  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/13.cc
! 8406987a3b7fa5bc882038f61d1ea99b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/14.cc
! 5dd8c70a02ceda6510e19a70b3c3fd00  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/15.cc
! eb8f6d4bec6980aa34db5ef28d3e1264  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
! e326f8d751756517ee561e736210c418  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
! 965c7712644b79c757edfd065acd4ae8  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/22131.cc
! 84934ee9e671a2593eef37abffe1c421  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/23953.cc
! 39300579dac1038e112c7fee973dd6e1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc
! 8b994213f18f4c42a862b496325dd06e  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/37958.cc
! 57ca77d8b23a8aae4f08d2c94385de92  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39168.cc
! 2941958c307e7352ad2f941d907a57e5  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
! 96db26f26ae3bf2f8b676d70c78d7300  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/4.cc
! 4c6e959a8bb67d4aa4aea9f700ff3e2a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/5.cc
! 743c3f2ca3fe451bc4476f2a0b98782d  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/6.cc
! 7f8e5f3dda4c2bb9b3f7e98a7819439f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc
! 0ad31d12594a2d0cf1973f1fe251153b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/8.cc
! 630c588f4f22faaae01f429026886615  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/9.cc
! d514df1291661baa44a7601e060d0e5a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc
! 470e4ff6bcc31f21df36450b8b686b57  libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
! a89092d0c447008f5daae53f0aa852a6  libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
! e8418d1dca005a10ff39d73c46a330e0  libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
! 00899d6514c7589e6bf192262e3760fd  libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
! 54a030144ff5089e9776cae491506b4a  libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc
! 0d16b3d5f13ada75f3e616ce78f2d7c6  libstdc++-v3/testsuite/22_locale/num_put/put/char/10.cc
! ead74d6c7d9b89092f65850f2f21b842  libstdc++-v3/testsuite/22_locale/num_put/put/char/11.cc
! bcba91fe55d648eb4b1d7d37cb90ba44  libstdc++-v3/testsuite/22_locale/num_put/put/char/12.cc
! 029535b8ec3fff3833bbc057202d25eb  libstdc++-v3/testsuite/22_locale/num_put/put/char/14220.cc
! d23ab2ded890c4a48594cdf1c5581a50  libstdc++-v3/testsuite/22_locale/num_put/put/char/15565.cc
! d26a643f0716f918dc73bb22677c71c5  libstdc++-v3/testsuite/22_locale/num_put/put/char/2.cc
! c5391193866132bc8dbbe8e396874943  libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
! 3fde6ced5702540147f8d6217f5aa2d1  libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc
! 24ddb5674ffd2334cd7ad1005b6b33ad  libstdc++-v3/testsuite/22_locale/num_put/put/char/23953.cc
! 4a1e85302f244ce1db3e576a4698df40  libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc
! e9ede252131338fda7c8fd67124c7179  libstdc++-v3/testsuite/22_locale/num_put/put/char/38196.cc
! 884b8eeda0c2ab5e8b7cab88a43647ea  libstdc++-v3/testsuite/22_locale/num_put/put/char/38210.cc
! 85b6064a399bc5b8048a6b1b178b9a41  libstdc++-v3/testsuite/22_locale/num_put/put/char/4.cc
! 42185aa5d93b26aab4d496ca86edd4b2  libstdc++-v3/testsuite/22_locale/num_put/put/char/5.cc
! 41cad3d54479fc46748ca95c94c4b57b  libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
! 550ad5bce40dbfeebd69be352e00d55f  libstdc++-v3/testsuite/22_locale/num_put/put/char/7.cc
! 0df8fa3cae616b59176fe01fdabdea14  libstdc++-v3/testsuite/22_locale/num_put/put/char/8.cc
! 24af41afdcd968d2e577c397fe284107  libstdc++-v3/testsuite/22_locale/num_put/put/char/9.cc
! 5c9a770639e74a899eb247ffcbbe16dd  libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc
! d2eb6fee85854f81a7578e99aa0a1cd1  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc
! 0686a4310e8098eff5e6d87953c95ba8  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc
! 5f8bfe33d992c7509de3028120003aea  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/1.cc
! 4b993ca9d253d66dd6df87b4927cb606  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/10.cc
! 988be1039da8004f94b3d670c637368e  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/11.cc
! 261a9c9456c57e78e2387b877a22567c  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/12.cc
! d9c6d55a14a82246972c0a3334d98ff1  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/14220.cc
! af8581087aea7d91e8eec5d4b9ae3463  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/15565.cc
! 03129218e16799d81009e5709a9eab61  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/2.cc
! 553ae549ec81110ab8b13bc92baecb03  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
! 0d07e40120cc3d04cf10203bbbe4af69  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc
! 2ea5a6f5421cb2adb79ed24e592f1f8d  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/23953.cc
! 48b7aa8f3ba3df666e9b8ddf1fa7ae22  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc
! d5016873f14fd80d2fcb56fe6100d595  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38196.cc
! 4d9f36f393e3c423d8805b0352febee9  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38210.cc
! 1674f09271726523ffa685d1fb8cce31  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/4.cc
! e5255306374124fdf1805beb14126cdf  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/5.cc
! b93cd39b38fc40475adf67024a75ecfd  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
! c11397a3f3ee09145fddc83672b8c4b2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/7.cc
! 6ab6c6e06c022f42e0a32560e8530afc  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/8.cc
! fea741dce58d7367a0a61e867e7332f8  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/9.cc
! 48fe5a6b2f15f1aba70e53f3c171e2f3  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc
! 06127ff269cc8b148187a49f8385e40d  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc
! e0046934637d9b471bc0fb38520f8ac9  libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
! 8d45eb3f164e55414b896428e6b12f8c  libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiation.cc
! c6a4c40f42a7d77d958fe93ec98d04f6  libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
! 0c061f67c89d72927976476b7a001034  libstdc++-v3/testsuite/22_locale/numpunct/members/char/1.cc
! 3080a1a32ec6582900de71d4380ccc00  libstdc++-v3/testsuite/22_locale/numpunct/members/char/2.cc
! 49bf1bb4976743e8a70380edec4afeaa  libstdc++-v3/testsuite/22_locale/numpunct/members/char/3.cc
! 4926df57d4cf4d09806fb61d7080b88d  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_1.cc
! 174d516658f1f05c520540fc42ff5a8a  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_2.cc
! ac770168d573ad3bc58bdd449fd97661  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_env.cc
! e5ba60c462da213bbf18a9f6a337ba15  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc
! a7228f024dc3118e9ac96786bb881ba6  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/1.cc
! b4932530c9ff27109041a1dab5a977e0  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc
! 0824e9cbeaf86624294d3354980aa27a  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/1.cc
! d62d07ddec3a1dbd716aa1675b777463  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/2.cc
! 3ca3f5bbfdae70394e3af1be8b48290f  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc
! 995233b263335ecb9f32da223b61cc93  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc
! ac770168d573ad3bc58bdd449fd97661  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc
! e5ba60c462da213bbf18a9f6a337ba15  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc
! eee454682fb20d41b1622ef17e99952b  libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
! e11e17ad3051e7be37d2db5ddda4dd79  libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiation.cc
! df7ad9ec53f558317ab2a7f84298aed8  libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
! 1d42327b201e4f6ecc958827c2a90f4a  libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
! 4805ce8bb4674a2173bec6106e81cb25  libstdc++-v3/testsuite/22_locale/numpunct_byname/named_equivalence.cc
! e0f0940e0358b0c45252116285c39eba  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
! 36d06adc2d26ff2344a3e7ec1f1b9dfc  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiation.cc
! dde5ebf379b63569413deaecd90fbcd9  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
! c847c15ba6302eb9ede9e5050e872932  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc
! 926a6e109d86b180a43cb510b49eeb57  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
! 0503a1e7d1ec2843f276fefcaa0c99a6  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
! c6fcfa74158731c22e992391a646a323  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! 9799c682247423911f123bfa91c50a4d  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
! 8d1ff81ea0afdb6de574eba0d9a7e685  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
! 6155ecdd4d1c7d2d010bfcce169078ba  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
! 777e255a4a6933dda4db3c9a95cbf861  libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
! ad21bf22d17823c69f4c09063c823e93  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
! ba0db490c6bcb97058a9ece3207486ac  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
! 683514fbba74bf93224deb18bc490fd3  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! dbc7486b3fa858ad7059e6ca8d4db20e  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
! 5557056e5f3f5d27aa6f902a17859bef  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
! 8536e118cd08aa91debc1c482c501d08  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
! a72ae86dca9f44a5b6b7c060f2084523  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
! 512754e4938001a4a4b65c6209f26cca  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
! d2c60e27715a8cadc5e818e10aea37af  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/1.cc
! 2cd096427cef924f1653e51e32335e43  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc
! 5af5e69489fcf25f853f8475f548b318  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
! 34d7c30c1e21df6b76c98050d0ad1128  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc
! 5780a943afb7b30a7dd5b7f7265ee7b3  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc
! 2b9001cd45fcf32aca4868169506f760  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/3.cc
! 8bce2e8e80f6c0f8259965cc365f6945  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/5.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc
! 340eef1e91c9ecc7dcde880a069203aa  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/1.cc
! ac6cf189d36d03e4c65a634ee263c8e8  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc
! f321612e06346dc3b722639c153986d4  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
! 4ec2f6d0b8fa2eb81e800dd9403234ec  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc
! 3f6078820178666ec6787f5513809f63  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc
! a0596d4eec4dec2796231dee5d9b7647  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/3.cc
! 2bd597a715d3dde4bc535ce45b8768fc  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc
! b6552f2cd536b206704739e9b1a2591d  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/5.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc
! e126686ce1e0bfffbcc2254b1378fb63  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/1.cc
! 2579a0e1ceda73155277366ffdc907b7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc
! 5773d760d4f85b529b47ef0b443fe012  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/3.cc
! f639340265d0f7d4da6e7e3e5e5db269  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/4.cc
! f4cd156ba1ceae96b59c652069269e7f  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/5.cc
! e7e1ceb84197b2fa2c10b8a27b4b0622  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc
! df5d4d48ce4482eb0b413ee71ec5ced9  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc
! 38ac02ceb06bc2d0e08cc45265f9a6cb  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc
! fb5d844631f39de0e8f2fa2d6812b157  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/3.cc
! 9aa7e1b61981bf9427b636e735f46c5e  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc
! 9c1c0a157780fa992c64ea42e773d25b  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc
! a8b2edce27f45b78c7b3d3f843f86173  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc
! 1dc042527a0d3f8ba96a94d8c96535f8  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
! afda0cc25e0076d34a98aee6211757b0  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
! fb86e53d97891c6b9c2438ce4f035067  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
! c88864b1aaf19b13bccab3cd6948e4cc  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
! 3a9f8aa9324c9e37915215ca4589d827  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
! d470039e416e2773e93c2230e9ce92c2  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
! ce6fe18c4cef47fe4d82dad359560a9a  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
! 16b22b05187fd4c9d4cbc56658bdfcc5  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
! 57237904fe3593b1c6084e636e16ae4d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
! 18edef944efccf67561eb365c22c804d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
! b929ef1e8001780de16baf180fc5059f  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
! 98c82d6a97d9710bd31175251e73205c  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
! b9444b4c146b22256963c7bf12ecac14  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
! 204cf8d2e234acc7a0722fba06cf9b21  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
! bd94b7f06b78db193f94302c8854d470  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
! 9dc51357d3f741818611207050bd7717  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
! ed93338e79afc5446b33b2e6c728e0b9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
! 5a1f64783a703c030ea0984d70735350  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
! b86baa0a1574a4e3c2d58ef7763448fa  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc
! 5c67cf18bb94e704c8724dc2ad0d9206  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc
! 0398c431b88f05ccb66422e23d5c5966  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc
! faaf898f6640bfabde0bb66b233852f6  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc
! 9b0005df572fd84ba3973f1e04c8845a  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc
! ff05f4d7199e283073b32f68f71ca2b9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/6.cc
! ed3d90b57e831b9d204270e53a262848  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc
! f0bef1eb177804024b818728d98d3ecd  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc
! 980b37dc2d6812e02ce3454d5b6d8dbd  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
! 6d0881afa55adee24f639912b313891f  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/3.cc
! ed6425ff142fd5d4f6e7fba3c612db72  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/5.cc
! d3400d892e2b77752d734ae46b131f51  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
! d5ce098ee2f2ef217f82be6cc72ec63a  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_env.cc
! 6627273e1bfd7c55b49779513f45143f  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc
! 16be90e20e2cc42b2dec8dd374084adb  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
! 60d97b3a172cf28a3e0d3df8f40bf527  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/3.cc
! 2fe81229093623f4a94de14002d7c583  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/5.cc
! fff5ed22138c003d0da02b7b42faf02c  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
! d5ce098ee2f2ef217f82be6cc72ec63a  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc
! 6627273e1bfd7c55b49779513f45143f  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc
! ef0f75ac92a8a74ce8bfb455a6113305  libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
! 5538f54d410c0d19de0855feff964e75  libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiation.cc
! 43fa65196f52135b36fd3e9b0d8e0c37  libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
! 438d2cc586f67f9aa3e1ace5e2c89cce  libstdc++-v3/testsuite/22_locale/time_put/put/char/1.cc
! b0447676dcea7f8aaeef35cc0f5b8245  libstdc++-v3/testsuite/22_locale/time_put/put/char/10.cc
! 0b24557ab4072cd8979e07849d27eef6  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_1.cc
! 62da754aa64d366f5ba54198fc601d54  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_3.cc
! e62d1b77ef9efe5981a3b9cddb7caa7c  libstdc++-v3/testsuite/22_locale/time_put/put/char/17038.cc
! 70abace27836472e7c089c9a90750304  libstdc++-v3/testsuite/22_locale/time_put/put/char/2.cc
! ec15d61e8dbd6f84dcec557fd82f8fc2  libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc
! c7896fba579a2e5fefa6780f4580f6c8  libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc
! 4154cfaaa23330034cc6eaf3f0a438a5  libstdc++-v3/testsuite/22_locale/time_put/put/char/5.cc
! 0e9583f64ba61992b0b13fc41f555870  libstdc++-v3/testsuite/22_locale/time_put/put/char/6.cc
! 67a5bc8fc1fbe0b109c6999876b60acb  libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
! e13d63a650e02bad0f0552f97409c443  libstdc++-v3/testsuite/22_locale/time_put/put/char/8.cc
! 0704f6fdf8155adace642576305d69b4  libstdc++-v3/testsuite/22_locale/time_put/put/char/9.cc
! de9a8c89443c83982bd592a901415f46  libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
! 52ef3bf88483eb80eccb5dc5bcdd0802  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc
! a5111286a0f64bcf9ff04eaeed3bae55  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc
! 0c4b3688c68320571634e926e4859c0b  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/1.cc
! 27a164e38dfd14296d3eb4af3b9025c4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/10.cc
! f2d20133c8dbe91f4fc953e2e0f6f0dd  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_1.cc
! c066cb8bb1c9614277e9c791bd38dbee  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_2.cc
! e1949cd6d3ab1400d48efd25a0e551ad  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_3.cc
! 5713d84453d1147fd2e9816ed6981afc  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/17038.cc
! 9e3f4177e75363fc261a9dab67096199  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/2.cc
! 8c7a925e2ed281a3400e000bd328e012  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc
! 0173f62747863eaed9351d88c9e2d315  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc
! 3db8441931ab0e155c1a6a2071e9eff9  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/5.cc
! 77f095d7087665290af4ff51288d4c4f  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/6.cc
! eb6bf14680f6d098106e04c2e9b98bf1  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc
! a5d245dca143a88845e7c497578dadd4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/8.cc
! 6d2863733b4e529052510b69615d35e2  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/9.cc
! 52ef3bf88483eb80eccb5dc5bcdd0802  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc
! a73aeeb5811dfdc6bccf58f3d50e5495  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc
! 33d9494240c6fc4c68d639f3c172ac2b  libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
! e6457e44818f9d4dd13d3d2dc2fa6932  libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiation.cc
! 22861fbe78aa661a600a0851e86c9cac  libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
! 48390801a6a1e20107b78d22e86bb8f2  libstdc++-v3/testsuite/23_containers/array/capacity/constexpr_functions.cc
! 89624c623d472b64e4b26435e0374f54  libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc
! 6334b7925d2cf31bffb4ad0eafc6c06b  libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc
! 1075fe2c8d7308d2606743357091f030  libstdc++-v3/testsuite/23_containers/array/capacity/size.cc
! 83677186d813979c9a57cb4eca3bdca7  libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
! d79cf66378d76533c3a926b4772a12cd  libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
! 032354990ab6a3c4a2300d49b0f4ebde  libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc
! 06edfc70a2f32ad047bbe0d4512c60d0  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc
! 2bd5ad3d876acfc354a1aaaba7044d7a  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater_or_equal.cc
! fb40834bd593a0117b21cce709f3c455  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less.cc
! d9e2c2ef1ed80edbb7e468dee88c476b  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less_or_equal.cc
! fb9539d915315f1f3514f23473ba1a8e  libstdc++-v3/testsuite/23_containers/array/comparison_operators/not_equal.cc
! 9ceeeaa0da0219aca51427b53dd0ac45  libstdc++-v3/testsuite/23_containers/array/cons/53361.cc
! 95958e9314a7a8b16c3c42d494cedb0e  libstdc++-v3/testsuite/23_containers/array/cons/aggregate_initialization.cc
! f8faf9baa730a80c50c9bb0f0db34098  libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc
! b4614baae77ca592bf38291e1eb3a2bd  libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc
! a21fa6d5e82b94a04206d4dd6f5dbd6e  libstdc++-v3/testsuite/23_containers/array/creation/1.cc
  55ad1543c1b5e8b2f14060f3eabb5f1e  libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
  224417afded5fa24d407144744d6700e  libstdc++-v3/testsuite/23_containers/array/creation/111512.cc
  11bac09ddbd90a00219248b83c052d06  libstdc++-v3/testsuite/23_containers/array/creation/115522.cc
! d47842a9750561497202f924d18ddf1f  libstdc++-v3/testsuite/23_containers/array/creation/2.cc
! a17ed38e383d40ead3c46ec221858669  libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
! 9687fa0d39b16984cd2ab66d84e100d4  libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
! a082988618171e1b242d6f91465ac77c  libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
! 5de04c620ef1a16930d049838ff52e5a  libstdc++-v3/testsuite/23_containers/array/debug/constexpr_c++11.cc
! 496c77aee088f61b3d31609623760f5b  libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
! ea4a569b7d8bc6449d5014beb7eb7a44  libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
! 3b6c9c21c66abe67df5974a885930dab  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
! 0c63b134047e9d7ae0741c85b57c1bf2  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
  d43444f5dac4465508d56c015a638fca  libstdc++-v3/testsuite/23_containers/array/element_access/110139.cc
! dca328e8be581ed29d70939c412f81c2  libstdc++-v3/testsuite/23_containers/array/element_access/54388.cc
! bc2b033cf61476d1f28803c3330e47d4  libstdc++-v3/testsuite/23_containers/array/element_access/60497.cc
! 732e47d9a0425ab21f60234c735e67ed  libstdc++-v3/testsuite/23_containers/array/element_access/at_neg.cc
! be7f6f5f1dca58112c62c2ef31ce1b52  libstdc++-v3/testsuite/23_containers/array/element_access/at_out_of_range.cc
! f6918ae2a70f746136e1b07ecee85531  libstdc++-v3/testsuite/23_containers/array/element_access/back.cc
! 7f991f3c24cff8c1745430d1135b8791  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc
! a9448709ac946efb168c0c541a173e88  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_element_access.cc
! 6080ae8f8acf4b0d8835777608f3d572  libstdc++-v3/testsuite/23_containers/array/element_access/data.cc
! d5ef8ba0bf5bbd2649c24932dcde80d7  libstdc++-v3/testsuite/23_containers/array/element_access/front.cc
  6a70864d40e873666241bcb5b4a33a61  libstdc++-v3/testsuite/23_containers/array/iterators/begin_end.cc
! d4c155f13a07ae32b87a608235a99907  libstdc++-v3/testsuite/23_containers/array/iterators/end_is_one_past.cc
! 07da667660466a8607640a4fa4e51e36  libstdc++-v3/testsuite/23_containers/array/range_access.cc
! 9228827a75822fc76a8eaa6ad527c54b  libstdc++-v3/testsuite/23_containers/array/requirements/citerators.cc
! 8369e87c377d84112fd3118fab4596eb  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
! c46373f7ebe33c377f36caa30aafc13b  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc
! bd85c58cc19314a9a226a1f55269901d  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
! 1c63d094fb556fa24c8a1480372cbddb  libstdc++-v3/testsuite/23_containers/array/requirements/contiguous.cc
! b00efb9a23fb6f81c4c7c7c34f2f7d0a  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/1.cc
! 7944494f86da571f6ded3ac3ca78e6c6  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/2.cc
! 45dfabf5b876618aa375b47b7d85d532  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/3.cc
! d67ea31be196fd18bf27429dda17b269  libstdc++-v3/testsuite/23_containers/array/requirements/fill.cc
! 46a8c56a126bef2d7e376fedc9c1e3bc  libstdc++-v3/testsuite/23_containers/array/requirements/member_swap.cc
! d120fdf76cbbe7c6da78f24913693b77  libstdc++-v3/testsuite/23_containers/array/requirements/non_default_constructible.cc
! 88bf76d018b68e27cb6a12c1de760f93  libstdc++-v3/testsuite/23_containers/array/requirements/typedefs.cc
  27ad3c766cb9157bada40b979affed03  libstdc++-v3/testsuite/23_containers/array/requirements/version.cc
! 92ee8709da31a3e9ebdb0ce38d2e0b2b  libstdc++-v3/testsuite/23_containers/array/requirements/zero_sized_arrays.cc
! e29bad74185a252914e3b51079e6f1f0  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap.cc
! ea8aca68b4f9042214cb7d0d9309ea83  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc
! dc3e5127b092891d6a7cc272f613d377  libstdc++-v3/testsuite/23_containers/array/tuple_interface/constexpr_get.cc
! b63461e823d80fddbbbee2f2e47961d1  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get.cc
! 940993178b11bcc9a9d2dc9af4172868  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
! a0e95a58ed30997115e5d1cda40450d2  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element.cc
! 121dcb79430e64745a86d8b83a58dd85  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc
! a7f61daf6194b008bfcce27e6d8c449d  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
! b11fdf6dc9114b54d16fddb80d96ceca  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_size.cc
  ddf767067d4b89b063a9cdaf9a38233c  libstdc++-v3/testsuite/23_containers/deque/100516.cc
! 5cc1b0dcc05ee211b8ecab2ba54f6ad7  libstdc++-v3/testsuite/23_containers/deque/14340.cc
! 220da88499f0d7296af6b435a48901bf  libstdc++-v3/testsuite/23_containers/deque/18604.cc
! 14e2400b4329fbb52b5e077831c0548a  libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
! b52afa2e4315d6cae475f5e735aec51b  libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
! 8e45f73f3adcaddcd64477c01473bffa  libstdc++-v3/testsuite/23_containers/deque/48101_neg.cc
! 44be805219a727b9fc2b812475d6b551  libstdc++-v3/testsuite/23_containers/deque/58764.cc
! 20e9eb5a571ec72a3bf8c553b79a2465  libstdc++-v3/testsuite/23_containers/deque/70303.cc
! 3a7d8fb16c3cd3b436162b144f39a7d7  libstdc++-v3/testsuite/23_containers/deque/92124.cc
! 9e7ce1f654b1a6ab0e11e89bd2facae0  libstdc++-v3/testsuite/23_containers/deque/allocator/copy.cc
! 135c4a522ec10adde062941093b58e8b  libstdc++-v3/testsuite/23_containers/deque/allocator/copy_assign.cc
! 9f386ef2b668424c732506feca049ac8  libstdc++-v3/testsuite/23_containers/deque/allocator/default_init.cc
! 2c5c7108e9db2dd91b1b6a12d68dc671  libstdc++-v3/testsuite/23_containers/deque/allocator/ext_ptr.cc
! 2892c580537ec1bdca335343b9fd917b  libstdc++-v3/testsuite/23_containers/deque/allocator/minimal.cc
! 7aad7498bfecb0e6d7d09aee9e8eb41e  libstdc++-v3/testsuite/23_containers/deque/allocator/move-2.cc
! c6a1f35ae0cf061621efa8be28099697  libstdc++-v3/testsuite/23_containers/deque/allocator/move.cc
! bc58c6a174bada903a92241bfd58d714  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign-2.cc
! 55882cbae8cd1f40e87440fd1449dcb3  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
! 52c56b2aaa250bd844cca755cd0cf5e2  libstdc++-v3/testsuite/23_containers/deque/allocator/noexcept.cc
! 376d80f7b298d45c0242d22df84c9f0d  libstdc++-v3/testsuite/23_containers/deque/allocator/swap.cc
! dbea8ca2cdab360526b4dedd61e65c19  libstdc++-v3/testsuite/23_containers/deque/capacity/29134-2.cc
! fb95cabe2c4afc05fd912fd71a6cdcec  libstdc++-v3/testsuite/23_containers/deque/capacity/29134.cc
! a02d87ff1f750671ab98e3c8bd81a194  libstdc++-v3/testsuite/23_containers/deque/capacity/max_size.cc
! 7606961d53785951ffce9a794d943975  libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc
! c521baddc809648ec112499f7a2c3c65  libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc
! 559a491d2011e639d21e4e05d388db89  libstdc++-v3/testsuite/23_containers/deque/capacity/shrink_to_fit.cc
! 3e15a1464c8c414f93dfd7dc82a278a8  libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
! b27440f01aacb8f5020f96b956535d4e  libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
! 16bfae5436e936a39986a44a356fef40  libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
! 4b8b7f27bc15024b8d1fbc590ac414c9  libstdc++-v3/testsuite/23_containers/deque/cons/55977.cc
! f69be2335fb35b08da8138a4bb0a7cdd  libstdc++-v3/testsuite/23_containers/deque/cons/assign/1.cc
! 5bf5121267e2161999dbfd09f1987cbf  libstdc++-v3/testsuite/23_containers/deque/cons/clear_allocator.cc
! 816753b37cc63ade45947a2c61254802  libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc
! 19fc73fad1fbb75f331d1d5ce188e1d3  libstdc++-v3/testsuite/23_containers/deque/cons/deduction.cc
! 3f496dd49eec2518a1126cb7d2adba72  libstdc++-v3/testsuite/23_containers/deque/cons/moveable.cc
! e9019f39d5a32a45f33b1d6f7cba4a2f  libstdc++-v3/testsuite/23_containers/deque/cons/moveable2.cc
! ef394b6e0b3d0de4a1d35be2a81e61bb  libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
! cc9280eaabdc305c93e3ef9b3b6dc059  libstdc++-v3/testsuite/23_containers/deque/debug/90102.cc
! 8499eeccb299acb36483024185fa2e59  libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
! 4b7bb9b13cef647afb0f3908ef964e5e  libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
! c49846b265690d900470e835a024ac41  libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
! 0cfe2b77488c08af3987ee1cbb3e4aba  libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
! f27d3f24b93c83809ef2e174886da4c5  libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
! 196af65237823a718b52596cd17391cf  libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
! 421f0584c064beb4dc5354114d3b1139  libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
! 8fdea1f90feb6bce691c4637530e3a43  libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
! 4301398c1d2c14af303aeccf3fa2b8bc  libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
! 0c320233d1ff5230ee626656043979d6  libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
! 824ff8d8c9b8c02acfd00080a72eb190  libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
! 64c4e7e8c5cc252a5a88cb39e4c5d455  libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
! 291d92d6b24230a5d3d4a168883abb0a  libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
! 076276f923ab5ccde073ca85cdf20d2a  libstdc++-v3/testsuite/23_containers/deque/debug/insert5_neg.cc
! e295704fe654521f4e26d051fbd0940c  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
! 0479f44496f1d4c6d238663264dcb0b9  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
! e1efad8e43b97300eaeee69a9fdbccbe  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
! 98297bf39bff5f252591f5c59bd25354  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
! c2022692be27eafcd9a689d47b6da295  libstdc++-v3/testsuite/23_containers/deque/debug/iterator1_neg.cc
! 4e2ac820ffbe233139f48df25eb3f49c  libstdc++-v3/testsuite/23_containers/deque/debug/iterator2_neg.cc
! c9f3024b486521a5466624a6a415433a  libstdc++-v3/testsuite/23_containers/deque/debug/shrink_to_fit.cc
! c8b8bfb8a7594b3f0ed79f91995808c2  libstdc++-v3/testsuite/23_containers/deque/erasure.cc
! 5ed53c44fe576edd9730f3c4df831ad7  libstdc++-v3/testsuite/23_containers/deque/init-list.cc
! 82b10a888b3ac4f8bf2d255d5d10aff9  libstdc++-v3/testsuite/23_containers/deque/modifiers/assign/1.cc
  5b30438ec704fa2989c2780d4b7988b0  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/1.cc
! 728af238431da232afd684481e330552  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
! d270bb45a63a5ffd3068572046fb24ea  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc
! f35a0ab9a73c6843f642079be78d3f53  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/1.cc
! c9e63f090ccc18d0c3d5c5cd810180a3  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/2.cc
! 2eee523adec914eddcb46975f3b1420b  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/3.cc
! d55b8da6bbe9193e6df30104965a6e45  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/50529.cc
! d0148a444d3d8fa8dfbb4cba9bc8286f  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/54577.cc
! 81ab37087ac30e540dc5ad0df851105c  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/moveable.cc
! 1ccbfddcadea236a58661046840694a0  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc
! 91d0befb6e8473b285eae3668a4bc925  libstdc++-v3/testsuite/23_containers/deque/modifiers/moveable.cc
! eca0fea544995deb3535d143aaee8082  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_back/49836.cc
! 5d55261383a6d856ec7085dad8f3c26d  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_front/49836.cc
! cb8440c2679694153184d733d88a8203  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/1.cc
! 2f6f3234a5dee93f61d370f3989b4413  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/2.cc
! 543c91743c699605d5003fb9369123dc  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/3.cc
! d9dbf47431b3e2973ecdbdb7be57e69f  libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
! 88fdb3efdc223c74f34bfce269ce7d08  libstdc++-v3/testsuite/23_containers/deque/operators/2.cc
! 3f4d2882f8a31d89fb7c5d1d9e567571  libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
! da806e1b649dd8d7ea2f0f977bafc041  libstdc++-v3/testsuite/23_containers/deque/range_access.cc
! 871ba6e4e8d796566790a773dcae66be  libstdc++-v3/testsuite/23_containers/deque/requirements/citerators.cc
! 1a0a2c0a7ead0813cfcad8112cafb318  libstdc++-v3/testsuite/23_containers/deque/requirements/do_the_right_thing.cc
! 4808a41ea433da8d8e6b6164f0233cc5  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
! a26faccc257f719b5c03482e5ddb269d  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor.cc
! a8015b5bf51201f7b97f4ff49bec5290  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
! 5a282030527b02bc248d58c990268e32  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
! c2739ab9f6df99071362618fc156aba4  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
! 11738228ccb530d28e15042ecda6f554  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/basic.cc
! 2b2b0e7dd6e5fa69fe358769957ecd3d  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
! d342a18708d48809b0f427be6ae1f8cf  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/propagation_consistent.cc
! 8ad2a29b486837fb2c09d4a996a43eb1  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
! be3651365682dbe79da7e7a7e3ed5a81  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
! 4915ef83b4a1c1155ee59ec67497e626  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
! b53f8959a3013ca5ffc7d3988d433cbc  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/4.cc
! e91acc2bf807474a098800c60d0aa6c0  libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
! f14a304fb6bb392e3db619fd91a2da52  libstdc++-v3/testsuite/23_containers/deque/requirements/typedefs.cc
! 19b812cef1a9f421ae2b903941d20edc  libstdc++-v3/testsuite/23_containers/deque/types/1.cc
! a3807a00ae3e9e06f5fddc933ad25e69  libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
! 975731eb0e9bbc0c71a5ac36bc2fa915  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
! 768ec20cee0a9508d5c2ecfa49ffb459  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
! 97888d847920c23c8480eb7812812fb9  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
! 8f9cca817a9a6412cedd908994e0138f  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
! f97047251b7baae078fd402135b90156  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
! ae8b91f1a934aecc1af1975621537085  libstdc++-v3/testsuite/23_containers/forward_list/92124.cc
! a13a5274670af14c82135c41c158303c  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
! 9a2f41c3b3ea217380117fa7720ebe5e  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy_assign.cc
! 5743f1e9c9456132f4fb7565546b5248  libstdc++-v3/testsuite/23_containers/forward_list/allocator/default_init.cc
! 14b39146b2a895f9551a4cb4db0fe714  libstdc++-v3/testsuite/23_containers/forward_list/allocator/ext_ptr.cc
! a5c952d34084dcfa2f4e039042f785a6  libstdc++-v3/testsuite/23_containers/forward_list/allocator/minimal.cc
! 7be05b1677cbde644a24d5028c81a4ad  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc
! f88946887af9a57c49d47fe3bb38fe47  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
! a0cd4a72f5184d03c6e2215af1e360bb  libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
! be96d1f87c9acd8251bc9ec7f2b243cd  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
! f1bfc4a10ff41d05a33618ee9be7ded9  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
! 1d0578a44a80df9a9b87d1827033f7d6  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 1413c770109ff09810f5a1b1e9fb3ca3  libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
! a55cdeccbbf5a5c05d24beab8dd14ece  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
! 197f24e8fecad8b20e64618746cdc85f  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
! 1a45610ba84b8ef48879a96db981cd67  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
! d9d5584e22983f38dd2cffa229176807  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
! e81bf08a4bb3353228ee8f042ab3c103  libstdc++-v3/testsuite/23_containers/forward_list/cons/12.cc
! 2619f8da184f869f33ddeb0952a8eb02  libstdc++-v3/testsuite/23_containers/forward_list/cons/13.cc
! 0fc6c473a7a3a2ea8a62dd68621c88f4  libstdc++-v3/testsuite/23_containers/forward_list/cons/14.cc
! 61fb0104d0d279559de5ab6907973e55  libstdc++-v3/testsuite/23_containers/forward_list/cons/2.cc
! 2db3da8a261f0a5b180ac3cec654097b  libstdc++-v3/testsuite/23_containers/forward_list/cons/3.cc
! 7b86f28a7b44b23e8a0e0aa909044be7  libstdc++-v3/testsuite/23_containers/forward_list/cons/4.cc
! a5c05f6f872916ea0c8ba3681fc0ad8a  libstdc++-v3/testsuite/23_containers/forward_list/cons/5.cc
! 9bb322677b34c0b6ecec3deb43e45bce  libstdc++-v3/testsuite/23_containers/forward_list/cons/6.cc
! e12840a89a88c16cf3bf79d46be14331  libstdc++-v3/testsuite/23_containers/forward_list/cons/7.cc
! 602284ae0160391c99db80150fed56ed  libstdc++-v3/testsuite/23_containers/forward_list/cons/8.cc
! 446442e6a93fba403eceef922b49527b  libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc
! 58ef295d065ef390e4f8f9154b5d7176  libstdc++-v3/testsuite/23_containers/forward_list/cons/9.cc
! 9ec7bda2239bc14c9f1b52f46a8b10b4  libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc
! 20c18dedaf3e1e0995abfe7d9684071e  libstdc++-v3/testsuite/23_containers/forward_list/cons/deduction.cc
! a560e7f8aa019bccd6d311880b7d6732  libstdc++-v3/testsuite/23_containers/forward_list/cons/moveable.cc
! 91ca7b6ecc501e3f24e6b069ff6dfc24  libstdc++-v3/testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc
! 8b0fa6e8b38389a65630b4cec4e4c10d  libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
! e7f4a7c05fc4c630bd2d776a7981dff9  libstdc++-v3/testsuite/23_containers/forward_list/debug/60499.cc
! bbde552d05e84fea10a527a83dc29a19  libstdc++-v3/testsuite/23_containers/forward_list/debug/90102.cc
! 72d01f737283f4ba789ab762ee11dd68  libstdc++-v3/testsuite/23_containers/forward_list/debug/clear.cc
! be93fbd4e8b961b2c994660e32c02e14  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct1_neg.cc
! 951d7ad709e5db462fd0a26b7725f99c  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct2_neg.cc
! 6616dc287540b4b26399d572bcbe638f  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct3_neg.cc
! 48634c7eb646d6cd93f5c7485687ee96  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
! ddcbf41803d092dd871d57feffa281ea  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after1_neg.cc
! 15d8547068ab9943f90977fae8e4134f  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after2_neg.cc
! dc62001b7fc1033aece2b7d7103bdf5b  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after3_neg.cc
! a16ad5b028f45a6aacd10c6a85e29581  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after4_neg.cc
! 219a205217365402e676f60a0a83eca5  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after5_neg.cc
! 93b4af8c08753ba9cf3732e591c64eed  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after6_neg.cc
! 79d5077e0da38945c8847060d3bc8101  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after7_neg.cc
! 3d3e7280b357c6de902e363e6e02dcd2  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after8_neg.cc
! 52e87491287a32a100ae9eb18c66eed6  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after9_neg.cc
! 686d593a03a66631034b13c56afe72ab  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after1_neg.cc
! b164e5a0649a85886a473a7a69a89e0c  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after2_neg.cc
! 5960bad984b710623f83f4133cc0ca0b  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after3_neg.cc
! 893bd4df78aa1cc1e0b42a992d168b52  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after4_neg.cc
! 64768d0d9e66e4fbbbb8224baa146662  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator1_neg.cc
! f93bd1915f9e8b144b13a9d6647f0fa7  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator2_neg.cc
! 2deba0510abc10f651d94e1faebbda10  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator3_neg.cc
! 106a847600b66e7e23d786453050bd19  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
! ac6e89288fa002662db5a7bacb581900  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_constructor.cc
! 275360b02dae7f65fb86b8db1b322d6a  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
! a1e689433c9ce74f027b409292847203  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
! 6618063047cb6965c0d613d4031320d5  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after1_neg.cc
! 92f1da7ea03d8961a03eb8c69f4e06af  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after2_neg.cc
! 1664758b6d1fcce3682d7197747c9516  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after3_neg.cc
! ce5eacfb9ff3f403dbb4409e7351f17d  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after4_neg.cc
! 9b6a80a8c5371fc4e93e0e9187088f5b  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after5_neg.cc
! fb018d57f6cc2e240c170397a8ed4059  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after6_neg.cc
! 26191bb987abccb6c7a503cbd112094e  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after7_neg.cc
! 542d7d58f0b3b0cd721a5a5958f136a2  libstdc++-v3/testsuite/23_containers/forward_list/debug/swap.cc
! 449fdda1b1591199ac44be62d977e2d1  libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
! 299edaedac65cc73f80f2a1de6b711ae  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/1.cc
! 00369c0e4f1e049991ce5a760c783849  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/2.cc
! 83a7645be508f9301d9c0920e26111ea  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/3.cc
! 3abf44e18dda8a51140c71919cb1f07c  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/4.cc
! 20079f6bcc26b31ad7ab104389a8390f  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/5.cc
! da4b59252c3177daaa2706702f9cb1eb  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
! 30189ec69d1ce84ba3ffc9b9cb6ea3a4  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
! 394d91f34fea0178e31fa9bd662269a0  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/addressof.cc
! 92604133c05032540242c5fa0a882b44  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc
! 7f583ee8aa17b86642e7ee71a791821f  libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
! b876d9fe81312d200aa4bb0c8583e659  libstdc++-v3/testsuite/23_containers/forward_list/operations/2.cc
! fef49927d3d17a3d088fd141d128fac4  libstdc++-v3/testsuite/23_containers/forward_list/operations/3.cc
! f273e3dd67d65685d98c039289cf38fe  libstdc++-v3/testsuite/23_containers/forward_list/operations/4.cc
! b8a1aef36370884213102d010defe918  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
! 4d95d661f6cbac4e2e3880cb6d8e1191  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
! 369b4d5de53a66700ca9ce238748f496  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
! 88bd9ec448155ad6dda5253b3bc77d22  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
! 43b8c6fa5b4a36a704aece1b6756a7ee  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
  7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
! 8635f3b171069a7fc99b0d4625b137db  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
! d3f7c0ecd7a64afd4727008482fc0750  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
! a41e9c892faaec84e5c52a2f768d16eb  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
! a0046acadcbdfbd3c9bfbc47d458629d  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs.cc
! 7f102b02b01ca5af9b4252ccd0c12b2f  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc
! 0b6f2aef9ae09d705c4b44cea7153e5f  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
! 5f2e66a9b1a85ee8c62d017dc1e03e5a  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
! ac33138d7503945560bc17adfd8ba96b  libstdc++-v3/testsuite/23_containers/forward_list/requirements/do_the_right_thing.cc
! 053676b9b16a9e9d724da4e1f3b9309d  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
! d5e332a02fd59a9e6a2ebe5255d7cc19  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor.cc
! f1325a0540ea3bfd26ffc33c8511ff62  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
! 57a646414f5f106c5ba2c9dfb2451736  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
! d10b297e494dcc853f75b5eadee9b560  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
! 07936a82bf6b450d73a13613510e603b  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/basic.cc
! 3c443b330dd487a291ae369e941c9d39  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/generation_prohibited.cc
! 1a3a57efc343e62103ad8ed260756cf4  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/propagation_consistent.cc
! 27a8a2a73851a233df49108707779e51  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/1.cc
! 64d0eacf81bd3567cd88992aa63f1bc2  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc
! 7b0dabdee48645b5b4534788f3cb3481  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/4.cc
! 9174323cb2caa9da955a1c52d76ec0eb  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/5.cc
! 2861ed15d1bdbb971033b6027e83af78  libstdc++-v3/testsuite/23_containers/forward_list/requirements/typedefs.cc
! 7a6ff8b98a05e4c677c92748ab4c26c7  libstdc++-v3/testsuite/23_containers/forward_list/types/1.cc
! c7bc34821c8dd90e5224d38c7697e6b5  libstdc++-v3/testsuite/23_containers/headers/array/std_c++0x_neg.cc
! 784726b4c6dc063241a3f3ff36e7bc24  libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
! b701467a343652898f1f0cde877f3bd5  libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
! 1f7883249c8b31e96dc0abb668c3c110  libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
! ed7df8852bae7a6a7c7c478d6e6459b4  libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
! d714a04c5da2702a7e038390351458a0  libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
! deff37cb6f6bf277c84b50a0e273fb4f  libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
! f079f3300591e571313f5e1b0b760564  libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
! 0621d4c9166c4222451031fc81f723fb  libstdc++-v3/testsuite/23_containers/headers/tuple/std_c++0x_neg.cc
! e2273d1971472c3881d9ac2c9dafe379  libstdc++-v3/testsuite/23_containers/headers/tuple/types_std_c++0x.cc
! e1497020ec9e6e018c174c096b38fa20  libstdc++-v3/testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc
! 39b3935a4c50d4a348a36be1fda2cc0e  libstdc++-v3/testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc
! 049227e1d39f72cafffa2a27e10a765a  libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
! ea5b2b4f40c8c51dda6427f768eeaa53  libstdc++-v3/testsuite/23_containers/list/14340.cc
! cb8018e6fe82ea8f73a170cd93a46a4f  libstdc++-v3/testsuite/23_containers/list/18604.cc
! bb48bc0b9201bef2011fa6e1900d56e6  libstdc++-v3/testsuite/23_containers/list/23781_neg.cc
! 83a0e02149e4d96bb898b40d1e45ecfd  libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
! 9aa5364574efb9e1094403b6241b19b7  libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
! 375715b78c004eb1d8497a4d3547b57c  libstdc++-v3/testsuite/23_containers/list/48101_neg.cc
! c0e86f4f9bbf8bef6183501239481792  libstdc++-v3/testsuite/23_containers/list/58764.cc
! dce4a4828d2c84de54f2b7bb06d805ce  libstdc++-v3/testsuite/23_containers/list/61347.cc
! a462230b4f7da4d6dec01aae50df238d  libstdc++-v3/testsuite/23_containers/list/68222_neg.cc
! a9828b8243b0e42b132788cac6cf335e  libstdc++-v3/testsuite/23_containers/list/92124.cc
! 89bab88c7c5e111f22f8160112598b98  libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc
! cdc66618934db5d8848fd333871a9561  libstdc++-v3/testsuite/23_containers/list/allocator/copy_assign.cc
! e4a7668168273b107dcb66278a1cf8ff  libstdc++-v3/testsuite/23_containers/list/allocator/default_init.cc
! 0936a6268c57757c3c834c57e9dc90c4  libstdc++-v3/testsuite/23_containers/list/allocator/minimal.cc
! 34f1ba81729fcfe4a59d924625229d21  libstdc++-v3/testsuite/23_containers/list/allocator/move.cc
! 1016f3e68f0cdb746dbfd1d828c5f2be  libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
! 1d3c273fec8ceebbe6f742494cc69c95  libstdc++-v3/testsuite/23_containers/list/allocator/noexcept.cc
! e96982803882a24d8032e1a1736fcadb  libstdc++-v3/testsuite/23_containers/list/allocator/swap.cc
! c1c553e82814af68433c1e8d465f88d8  libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
! 9a50a61900dad36c2125907774caa392  libstdc++-v3/testsuite/23_containers/list/capacity/1.h
! 82f017a3b198413279640732c55a63ad  libstdc++-v3/testsuite/23_containers/list/capacity/29134.cc
! ebf3d2dcd3801c836f4d741cfadf20b9  libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc
! 0e91f04c9e50da42445ff4da7d0846b4  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.cc
! 25d5c55d0ba82f5fb344c32b6c9d95a9  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.h
! ff2d5b8cffd0c899c0725e8724810413  libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
! 0c4294120919843b7c43199e5570135e  libstdc++-v3/testsuite/23_containers/list/cons/1.cc
! c76d984743b8f34079f0ae32045136c8  libstdc++-v3/testsuite/23_containers/list/cons/1.h
! 07e4fcfa122c03e118c2d3a10724a1cb  libstdc++-v3/testsuite/23_containers/list/cons/2.cc
! 0dd0d545a161b1abe69170e55f40b031  libstdc++-v3/testsuite/23_containers/list/cons/2.h
! ea6729f81cd3f0d3b24eb4cb4f78e495  libstdc++-v3/testsuite/23_containers/list/cons/3.cc
! 39baa0cb1c3cc8f87da62cc5349cc880  libstdc++-v3/testsuite/23_containers/list/cons/3.h
! 7f42d8058129939409ded6471817ee82  libstdc++-v3/testsuite/23_containers/list/cons/4.cc
! 2da4c08ca8ab5cdf75e4531ed5988c07  libstdc++-v3/testsuite/23_containers/list/cons/4.h
! d6b053577de0ef636e198658308cfa02  libstdc++-v3/testsuite/23_containers/list/cons/5.cc
! 8cdb6408dff835eb1674ea1cf42bee61  libstdc++-v3/testsuite/23_containers/list/cons/5.h
! ba8dd072a98bb9a0517878bb5860fe39  libstdc++-v3/testsuite/23_containers/list/cons/55979.cc
! cb2b6f3a4b60b67cc4ccb4d30afa3634  libstdc++-v3/testsuite/23_containers/list/cons/6.cc
! 554a69df2a3fd52b2d486e653200cf1f  libstdc++-v3/testsuite/23_containers/list/cons/6.h
! 5b2f5e08343713b75916a7c1b0ec043d  libstdc++-v3/testsuite/23_containers/list/cons/7.cc
! 97e553f838a1c50ca3cdc14a57bd4f38  libstdc++-v3/testsuite/23_containers/list/cons/7.h
! 2713174b0324a08cf9a07c65c763b490  libstdc++-v3/testsuite/23_containers/list/cons/8.cc
! fad3866cef234fee3766958ce84f85d8  libstdc++-v3/testsuite/23_containers/list/cons/8.h
! cd6bc2095cd9216eb51ab717690fc9d3  libstdc++-v3/testsuite/23_containers/list/cons/87809.cc
! b076fdf8929bcb001b95dd12c8aac88d  libstdc++-v3/testsuite/23_containers/list/cons/9.cc
! ef76317df70f0e2e5cb03ea0d6716213  libstdc++-v3/testsuite/23_containers/list/cons/9.h
! 09585ea40ebcd05bdc174c131e991869  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.cc
! b7fb5bd2b9cad2e9dc51bc368f097d3d  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.h
! 36e4076c442f97e598fa6100268598e2  libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc
! 4940d6745f0e07f4f1965d31ef5de531  libstdc++-v3/testsuite/23_containers/list/cons/deduction.cc
! fa655c50995fb806cb27d2533094e863  libstdc++-v3/testsuite/23_containers/list/cons/moveable.cc
! b508b09578c7da2a463faa775731ac38  libstdc++-v3/testsuite/23_containers/list/cons/moveable.h
! 3cafc217d0991ea682c96efeb6b19cc2  libstdc++-v3/testsuite/23_containers/list/cons/noexcept_move_construct.cc
! 367f2ce2b0634c371536e85ed491554a  libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
! b8574c30e62e55f13e5fdd86b893995a  libstdc++-v3/testsuite/23_containers/list/debug/90102.cc
! 3c051fa61ed8984c28ed78f909fff294  libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
! c9053a38c60c171e082293e38aeca3a7  libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
! 0bdd892cf19538d6ff9ae7b23f4798da  libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
! 57f5e8dc22cc3655aa5ae132d532064e  libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
! 070408ceb448c50f03f712ee7a294c7a  libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
! b73ebef5ddc2e1824526d9fdcb22f8c1  libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
! c3a29478bb606a1fee90c9ae5847666d  libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
! 524a700d258b9d9619ac2e9637ffffa7  libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
! d1f0eb4c378d01d27b6852873faa4dd1  libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
! 81410e22259553faf050ba7e7212dc1a  libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
! d22c7eb1467bb0ce6efab4eadd683d51  libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
! 8a1eab0159a2110fb823c3e880b71a74  libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
! 54ee57a6efc7924d91558e65214986f6  libstdc++-v3/testsuite/23_containers/list/debug/insert5_neg.cc
! 0bb2653fd4df290d508bfe26161deb97  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
! 1cf9bc58f809e057d1de47e5bd78ac4d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
! 2b58c952471916f1efa69884f8de686d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
! 6a6f9f352acfa66bb9bb052531f5d329  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
! 4cec669fe4af186e9cb7317d0f301db4  libstdc++-v3/testsuite/23_containers/list/erasure.cc
! 4f550028e62c334aaf0725d9f22ec73b  libstdc++-v3/testsuite/23_containers/list/init-list.cc
! a3f9425931554ffbcf98bb71d8943487  libstdc++-v3/testsuite/23_containers/list/init-list.h
! be04ea11441a264f21af3dfb2d23ff2f  libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
! 89d79aa082bf05160efe098fbf5594cd  libstdc++-v3/testsuite/23_containers/list/modifiers/1.h
! b803c8dce00956c8dd5a983275b7cfc0  libstdc++-v3/testsuite/23_containers/list/modifiers/1_c++0x.cc
! 1c5ae30d56ba2bb59084bfdcc502b69a  libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
! 52705779687b2ed43f3b0e58c2277f6d  libstdc++-v3/testsuite/23_containers/list/modifiers/2.h
! ee87ad993bf9d292d995a225d58415a0  libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
! 45576fb020c559ac89c85fbc000e6018  libstdc++-v3/testsuite/23_containers/list/modifiers/3.h
! c1a6170463abb2e59fc7c9fa96d18969  libstdc++-v3/testsuite/23_containers/list/modifiers/addressof.cc
! 3c87d838aca90c1a24d8942996e971bf  libstdc++-v3/testsuite/23_containers/list/modifiers/assign/1.cc
  c25b0a9dc317b9f58288d8f92299007f  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/1.cc
! 68e2d576cbd8e399ccfdc94dd42a6d49  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
! af56b2ad1240ee8bab8298aa4e2892c4  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc
! bd01877006f90ad7a491ce79bc3bbcc9  libstdc++-v3/testsuite/23_containers/list/modifiers/erase/54577.cc
! b42198d9519830afbfc19aff8cf5cd32  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
! 72582aa97e74a92258a51c385aa432a3  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.h
! 1315edf1eb4c629159965b1f980cdb43  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc
! 42b127a62265ba23c9f0a7ebc0fcad4b  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.cc
! 2ea94e3accb86df81b4b245cd3a47934  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.h
! 41930bcedb104478587662382700759d  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.cc
! 84f85650fcb73190ed665a31ca245579  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.h
! cd3738f5143bdc2dd63bd959f974ac23  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.cc
! edc85d43524528f8eac67b03630b42b4  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.h
! 4fce162eb8cacaf4571dd4531a1e67db  libstdc++-v3/testsuite/23_containers/list/operations/1.cc
! f268dcc4b786e183bafbea880df1cda7  libstdc++-v3/testsuite/23_containers/list/operations/1.h
! 6af9cfba66f56f8883f7addcc7bc8fe9  libstdc++-v3/testsuite/23_containers/list/operations/2.cc
! cc7b2e9c398acb9030defea0b273edd2  libstdc++-v3/testsuite/23_containers/list/operations/2.h
! 5a08eff67e3e64b9a1d568245c2c6dd6  libstdc++-v3/testsuite/23_containers/list/operations/2_c++0x.cc
! a1a3498074b7e352bee7c1525896813d  libstdc++-v3/testsuite/23_containers/list/operations/3.cc
! de85da35bb00ed7550cd6df98b829c25  libstdc++-v3/testsuite/23_containers/list/operations/3.h
! bca076e8304c9fc5e84c67e1b51d2460  libstdc++-v3/testsuite/23_containers/list/operations/35969.cc
! 9f32d2767dc2edd14cf6a4e27548b9bc  libstdc++-v3/testsuite/23_containers/list/operations/3_c++0x.cc
! dd3519981e158549efeab0347a0ad957  libstdc++-v3/testsuite/23_containers/list/operations/4.cc
! a98d8e8d60b4e4247935468f9674fb16  libstdc++-v3/testsuite/23_containers/list/operations/4.h
! 8cd4561520ea07622b9b8d27d733417c  libstdc++-v3/testsuite/23_containers/list/operations/42352.cc
  e9b09b08be9f79aee16cdfe50434376c  libstdc++-v3/testsuite/23_containers/list/operations/66742.cc
! 91280810227a69ada9fa99c50a29be10  libstdc++-v3/testsuite/23_containers/list/operations/78389.cc
! 20fab440a601d7a67ed4d903fcd46536  libstdc++-v3/testsuite/23_containers/list/operations/80034.cc
! a8900352ace47ec9c4dc8fc3e8808330  libstdc++-v3/testsuite/23_containers/list/operations/91620.cc
! a862190b618229642b2f605f7e46d13d  libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
! ebe6d0b44a2f45fb879a96f2cac9e12d  libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc
! 3694e9a9887847e6d2a59bfc0ba88824  libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
! 1cfa0f764f9f1a01e48649ed6728092c  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs.cc
! f9f1c1e13671876c529c1926037f10a0  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc
! 1b97b5192875eab176c1a5927aa6c464  libstdc++-v3/testsuite/23_containers/list/pthread1.cc
! 9eb79d2538ef4f26cfdbbe5f0239b8cb  libstdc++-v3/testsuite/23_containers/list/pthread5.cc
! 02d54d9b4a4037aa2ab948bc9b8b2544  libstdc++-v3/testsuite/23_containers/list/range_access.cc
! 0ace65775316f130ca9c17e7233b8295  libstdc++-v3/testsuite/23_containers/list/requirements/citerators.cc
! 5aa0abd76548489ebac6420e710f5544  libstdc++-v3/testsuite/23_containers/list/requirements/do_the_right_thing.cc
! 339404d00254c83971107fc7132250e8  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
! a4bbc4fdc958b9aeb17673849efd4e88  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor.cc
! 9af2f35eca9adeb15f8926cb113fec25  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
! 9337bed7bc56d2e483318eadd7af2d5d  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
! 762704eaa0b5025feb289a9eafd49e9d  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
! 21d4fde5908b98c1455b07bdaf6ad048  libstdc++-v3/testsuite/23_containers/list/requirements/exception/basic.cc
! 2871d8f141ee2447719ff2fb9d6101fe  libstdc++-v3/testsuite/23_containers/list/requirements/exception/generation_prohibited.cc
! 1f3d564fc902d72885034e19997ca44a  libstdc++-v3/testsuite/23_containers/list/requirements/exception/propagation_consistent.cc
! 4045259e051275e43346b7983a5f6e39  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
! c5f5956015c846cc067eec46a46d3edc  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
! b190887e50133e461a5396162440a4f2  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
! 26d26f184bfa84cba814f9540fa417c5  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/4.cc
! b5ce23996a64f1a88f204a44baa82865  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/5.cc
! 422d03159e6f157f656d03a103ea87cb  libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
! 035b1a28f01d5d52c35d85fa4d8d77cd  libstdc++-v3/testsuite/23_containers/list/requirements/typedefs.cc
! 5aa6165355c80714ba18e4d4b1be01e5  libstdc++-v3/testsuite/23_containers/list/types/1.cc
! 8ca7a584a6a5735761dabe95547c4a9d  libstdc++-v3/testsuite/23_containers/map/14340.cc
! 3e3469731019dac1d3c3931d488e8cae  libstdc++-v3/testsuite/23_containers/map/18604.cc
! 88c493721a3b1291aafd344de1cf9588  libstdc++-v3/testsuite/23_containers/map/23781_neg.cc
! 871a239486b7e16f06af68d7262f5bc4  libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
! 42ed44e4d5d31eaca300187135b9154b  libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
! 92e754067b9039a50abcbe1de92c8499  libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
! 86609a3c5d43743d2d219b14893ea6d8  libstdc++-v3/testsuite/23_containers/map/56613.cc
! 4a4d3c9e0f69d7a3790ecfb70289ed64  libstdc++-v3/testsuite/23_containers/map/58764.cc
! bdd3f33789b732f27bcb28fc2f13523c  libstdc++-v3/testsuite/23_containers/map/59872.cc
! 09526a7b959c647bc23702935972828a  libstdc++-v3/testsuite/23_containers/map/77334.cc
! 4e80531b121d6aaa0d65f6d3be94d1f3  libstdc++-v3/testsuite/23_containers/map/92124.cc
! d3dc2ead93b6a71e8f8e6c4daa5b9473  libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc
! 10d2fa756c16e1845b5c3837551aee63  libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
! f2db7db29b3779ef7a6b6bfe716bff8a  libstdc++-v3/testsuite/23_containers/map/allocator/default_init.cc
! 9354564ba00adcef31704bc096c35dcd  libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
! 88ec43e16b5d333b3635139b98de31ff  libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc
! d194e90a448124b9bb609d071d99585b  libstdc++-v3/testsuite/23_containers/map/allocator/move.cc
! 3c33c13fe68c5c2bd55e3fbe74d0df5e  libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
! f657b13652f75ac458e00665a814aec3  libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc
! e65e20dc8289995347195bd0b9ad1907  libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
! bc5cd83c2753b406b04df71fea970f50  libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc
! d1460edbfed341ef38da48e3d7e319a3  libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc
  16c187179e9e1a4ff16cf122fb20804e  libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc
! 1eaa7223ef654627d1fa9f1ef462ab80  libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc
! 0ade37955779ff31ffc9742b089ddc1e  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc
! 750322d3568c195fae0798d846a9d0b6  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc
  62c8fc35a2126407d843225adf9afd90  libstdc++-v3/testsuite/23_containers/map/debug/112477.cc
! 74c36eee07d98f189c52e684f7eb6ca7  libstdc++-v3/testsuite/23_containers/map/debug/60499.cc
! 15ec9e8ec8034036716c4cad080445db  libstdc++-v3/testsuite/23_containers/map/debug/90102.cc
! 7b7e533cd4a989c0ac6650b2e32294e2  libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
! 26f40236f4dcd21fa41b7f8fd92b5b2c  libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
! 8be2bfde1baf83431480f03101a4e247  libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
! fb1df876c29c9ea7dbad327041ec7f4d  libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
! 8cfd8594aeeaa3d34f66df4f093a9a6a  libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
! f034580d0230e0252a9d8deec5f8c3ea  libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
! a63d80115f8f926e8f09cf56f9c78ec1  libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
! 8756b1d11542ccee13937bd931f04e07  libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
! ee6a1fe45e765fbe2ed9e73fa8196c92  libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
! 6b9c55b317781ef79318a3909d7254f8  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
! 3dc25ea0e919997e7c9b2fca71e6f778  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
! 98b746c2af2ea594e4b36317f940e4e9  libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
! 51563447ff6774b215648b6cec23a7af  libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
! 949f05cd375c821022cdbf104541de22  libstdc++-v3/testsuite/23_containers/map/element_access/1.cc
! 2c573f3d5020e34d14b8dd53a57c2562  libstdc++-v3/testsuite/23_containers/map/element_access/2.cc
! 429651ab7f8a18c1fbe4732aec45c2a3  libstdc++-v3/testsuite/23_containers/map/element_access/39901.cc
! 4f044d7c856a72a47706794437ec7528  libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
! d94b658caa7aa48ab494c9a6374eeffd  libstdc++-v3/testsuite/23_containers/map/erasure.cc
! 595be6f694388bed51e9366813e30553  libstdc++-v3/testsuite/23_containers/map/init-list.cc
  8642b25c59832140c46994b559a3d1a8  libstdc++-v3/testsuite/23_containers/map/modifiers/108554.cc
! 99ba064601426041678ca84d0c302b9f  libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
! fb92cae47943e18852d9b87a41b8a85b  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/1.cc
  205086c15a257b2b3847ce68833198f5  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
! 7957a64f32bb5a5c0a403e31d4eb90d7  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
! 69a9ba077884ac9446ea0266672c7d67  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
! e63a2a5c4899bace1e49eab8cc1600ea  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
! aff256e28e0be7f762837156cf41e504  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
! b3e20df1d03f0a25d5836292b27b618b  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
! d93f3834dc1bf1d4841fb2728dcd232f  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
! 4bf68d3c3bd89ce570e2a775f50fb645  libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc
! 494f81c752dcb098fefa034cd9dd5678  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
! f96a7189cc24757bc5b0db464935a751  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
! ad5bc338e782607943dd7088034f216c  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
! 666bc0b3e601ca404c9e609534030e54  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/3.cc
! dd0a8ad0be34d5214165abf9f814ba61  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/4.cc
! 623a09b30e2189f355ecd14509ad9c32  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/5.cc
! b0711a5c2475374ec3e077313f11461f  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/78595.cc
! ca72bc8a40e58c031f771286bd226301  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/83226.cc
! 4b86828fed822c415bdc2a8b0747c882  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/87194.cc
  bf1079f7dbecd612e1c7ff8cc0558abc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
! 5a75092ac6b740025ba027c10e814bd4  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/dr2354.cc
! 0cfcaf597eed6aa5a78eec443d5e524b  libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc
! f8c1facf212385b9543f0784941db2bb  libstdc++-v3/testsuite/23_containers/map/modifiers/merge.cc
! 414c15501d7b2d342433216312f21d70  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/1.cc
! b2e490e157f5532791e1bc58e2059be4  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/2.cc
! 85aa8bc7a02daf443b23b1613044ca16  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/3.cc
! c0dfaa5647ed729781c5a3c887782f6d  libstdc++-v3/testsuite/23_containers/map/modifiers/try_emplace/1.cc
! e67765ddaaf1ccdc4cb5e7b3fe35aaf1  libstdc++-v3/testsuite/23_containers/map/operations/1.cc
! 2948d704baedf014e094015b395f3d69  libstdc++-v3/testsuite/23_containers/map/operations/2.cc
! bd2352a13529370d154af1832dbeb8e1  libstdc++-v3/testsuite/23_containers/map/operations/31440.cc
! 2aac170d8c85dd3061c727b2119303f8  libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
! b2d56ac7f318e901bb49419a107206a0  libstdc++-v3/testsuite/23_containers/map/operations/count.cc
! 0301eda512d82142315b633364294af8  libstdc++-v3/testsuite/23_containers/map/operators/1.cc
! 9018b1fc15b0112e4ec95e7b13111246  libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
! 6136f8dbb1578c616ac541f2440d5c52  libstdc++-v3/testsuite/23_containers/map/operators/2.cc
! e201d2fcfa94cc66613422b926af2dc7  libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
! 119f8fdf19cbe385bef7283f40befc4d  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs.cc
! e5ab9289dbf8d09ccac91fa89dc93886  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc
! 01ac2d7068808d93e0308594c4fbe8a2  libstdc++-v3/testsuite/23_containers/map/pthread6.cc
! af54fdf6879d69ed370d01359d96dbec  libstdc++-v3/testsuite/23_containers/map/range_access.cc
! 2584a90a9d925fef9255bb0874f88f6b  libstdc++-v3/testsuite/23_containers/map/requirements/citerators.cc
! 38169a4843bca92e044eff25328075d2  libstdc++-v3/testsuite/23_containers/map/requirements/exception/basic.cc
! 80eb9018309713d66964a729b6f654fd  libstdc++-v3/testsuite/23_containers/map/requirements/exception/generation_prohibited.cc
! aab16ddff60dcb2380c2eeb63dcff0e0  libstdc++-v3/testsuite/23_containers/map/requirements/exception/propagation_consistent.cc
! 294d6daa3c977f34210d9a892b722bac  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
! a2aa61f64159f22fcb93d4aa325f6b25  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
! e99f3bd7380039ff3a17f3a936d7e25a  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
! 531999f40d25e65f6fb514c7fd5dc70c  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/4.cc
! c776d7b3f34dff6474482d9b5de1880e  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
! 1f5b3026e9aae71bcbbf6ef0057d6504  libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
! 5de6b6b0e81c96ba45e88205922dcdfd  libstdc++-v3/testsuite/23_containers/map/requirements/typedefs.cc
! 463c3823f39c8c9c555954370f65f690  libstdc++-v3/testsuite/23_containers/multimap/14340.cc
! 6ccaee04985ce224c33e5fc73a956456  libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc
! 150338a084f3a0738a36afc5f15ed10f  libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
! c4624b6419b4f7adb80f886cc6aeb43f  libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
! b614f8d8ebf7b70f2e84512fa25e8cbc  libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
! b825a0f92eb4993a864667b2efd64cfd  libstdc++-v3/testsuite/23_containers/multimap/58764.cc
! 29eec7cec87b92e6f2404ed82ac65ff1  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc
! d9f45f7ea6025867790aaedde3f907fc  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
! 51790f6504bb15d9ec2b569e0f91a91d  libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
! 5d61524a7f518013e336001af1e3e248  libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc
! eaab3be4d9129e427922128ce710eb0d  libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc
! 59a3cb69105923114305f15f3de7ba0c  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
! 424252f2b08d5373fd842149953b73fb  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc
! b4020626eec7bd07fc481121dc3b702c  libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
! 479555d7dd070d5cb49f4a2527e81dc3  libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc
! 409117372fb459883504e72c59eeafdd  libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc
  9fc3989fb543a9b01e92a0c23926622f  libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc
! ca0fe11a0f71a3918b71005a9789e2ac  libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc
! 232aa1175f28b7d126186f5f2cb98346  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc
! f6f2ef8ebbeb82495c10b56cb2ca0e96  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
! a194881adfe976298dd4e97d2622f3f8  libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc
! 888d49bd11a67b193379b959205ea08c  libstdc++-v3/testsuite/23_containers/multimap/debug/90102.cc
! f8ccadbbc2090280ad42fff63bfcd86f  libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
! a500a2fe54b07d4698d9a3c0b54e7dcc  libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
! 0384ccd3b8b613e1ef9d5b420503f72d  libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
! 66b7dceb127d3d7f6f068518368eb9bc  libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
! 199568d7886061653f98c249ddce8c12  libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
! 6900688154367e10cccddd6b9aff19e5  libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
! 2a3d7118dc2faab95635413aa4050e0f  libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
! 36b6898b5d8046f7d6f0fac2b08e2b3a  libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
! c9dbc5af0cc7d91494c2c410e98a3e6f  libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
! 3e548f3b6d05fe68e982635c09465871  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
! 94ed49ac5f20203ad46924d2f01f4c79  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
! 2d1f1fcc5107f025fc7c40a97cb82d24  libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
! d7bf1cd67391e3d5991554795a3b5a25  libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
! 0e56a472624c1d37ee61e1012dce58a9  libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
! e5dd6b6fbdf794fcddf3358eca9f5ea8  libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
! 1f7321445165b1d96fae07eae83c782f  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/1.cc
! 20440b39bdcf845ec0050dc1b320c755  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
! 1ad34775e81c557d49df53ffc262c06b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
! 2eda9c5152b6aab7a3388d62f83469be  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
! 9cffbc2dd9191ee8546c8bbfb739e97d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
! aa5f398c6cfff9ad3cde46bc8601c97e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
! e61b5ee82afd9c6db0cbc15a5c5045ee  libstdc++-v3/testsuite/23_containers/multimap/modifiers/extract.cc
! 4f5fbd6bec5b43b15ad5cac834ee7bb2  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
! d6b9bbb8d267b24b45ecd90710d20788  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
! 89c85eab4035498d93ba9779278c7ab1  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
! 99962dc0717ef055e6a5705a52507188  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/3.cc
! f06c27f32fa396b83c85ba3b7db9252e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/4.cc
! cd259b147fff545d98864e87c6537968  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/78595.cc
! 7d0d466d41818ec81eecc98836ecbb5c  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/87194.cc
! ee2a94355474c73a79a832ddf0d3de40  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/dr2354.cc
! 9283aa1447744bd5c176cea3aad3cfa4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/merge.cc
! 31d11f25074198a7836d5e13da13bc7b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/1.cc
! d00c06a89fea5b2921419ee2b4aeec7d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/2.cc
! 30b6b783702b9f9629d9910706697ae1  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/3.cc
! 683f759b64be7f18bc72f60986704eaf  libstdc++-v3/testsuite/23_containers/multimap/operations/1.cc
! 3ca61b64ec45abd2e9b16bbb90248540  libstdc++-v3/testsuite/23_containers/multimap/operations/2.cc
! 3ba54b589325e0bf3178b775f30dec63  libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
! 94c70e6d5e2b94d66858e91569d64d1e  libstdc++-v3/testsuite/23_containers/multimap/operations/count.cc
! 2ba7f74d3c3f1c179d73630a70984810  libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
! 0581cf4f3a276fb7388c56dee8cfa48f  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs.cc
! f2a8eff7b3108d706da86b754a636020  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc
! 8ca08f54b804a97e117d3502c2ee224a  libstdc++-v3/testsuite/23_containers/multimap/range_access.cc
! 082cb5a4ff86c36aabf75eca4b638918  libstdc++-v3/testsuite/23_containers/multimap/requirements/citerators.cc
! 167dbd47f312ef8844d35dc893413049  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/basic.cc
! c15b547315cee1adb00e01d8a0a38cf1  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/generation_prohibited.cc
! 748bf7a271a12b1550020abac5505f1b  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/propagation_consistent.cc
! 83d3f4c964d163e788bfaa8090a7f303  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
! dfa496830613091f1cc0807578ced664  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
! 61c38a6133ceff704d71601b503f9326  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
! a64be2f8ccc9454dccc602b2e31b7bb1  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/4.cc
! aaeb76d8ee4689a1b97621fe25b20e00  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc
! 15f5acc973e40526a7dcef545f762f6c  libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
! 39c27a0e16cb9e90e1f55886c61d86d9  libstdc++-v3/testsuite/23_containers/multimap/requirements/typedefs.cc
! 766698d2087ea7981375a3eddb40fb73  libstdc++-v3/testsuite/23_containers/multiset/14340.cc
! 8abfe782f33343a6e46476942027e9d7  libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc
! 81aed3e1e5ad3d792e6ec83f31cc4d23  libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
! f4ba2a33ce042bda5389dc49e12a402a  libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
! ad5612631f3f09a147db9f5c8037bd2b  libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc
! 50427d2de58ffba7bede5c2209623f73  libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  c599e48655ea2e75c592ab5a1cf5ae3c  libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc
! 871b11bf9b713fc725fb1d4e4c78e40c  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc
! ff34094a404818d44391876292329f52  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
! 58b03b022c148a795955bdd59a8b1ea8  libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
! 218720e91e7fb8ac110b236c8f8fb3cb  libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc
! 7674976436e028b8f1bea18cd08324c0  libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc
! bbfcd4c30eb8ed873f552997b34100f3  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
! f062ef42a8176f68636f6cda446f71a7  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc
! 9e1f544cfa461df0f6ca8d6c55d53380  libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
! 320129f024e20442e4be0317b02253d6  libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc
! 04b84c18863c2a19f1aa3f6071dc44cc  libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc
  bbb896871fd7c7c3f4be6d45db152294  libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc
! 37320438456677beb2586a81b4829d34  libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc
! 42ae1b9a757b9bee74a1e27438f13816  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc
! 728b073c8cce604892b8197f843d31d5  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc
! f636fd636b150f87ce2affd72082537c  libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc
! fc95b9bea8d474f8aeb306b540dafdf6  libstdc++-v3/testsuite/23_containers/multiset/debug/90102.cc
! cab14529d3ea2e19efaa256388f3a50b  libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
! b35361c4220df77a538f14f0ef2bf260  libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
! bd5d11b995bd274dd3cbba68be3e3a96  libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
! 41885dd0f015b9d6fc079c96a3313376  libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
! 78f73168718264284330595935290784  libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
! d09f6412adf0d7f380e5fdec89a5d5f9  libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
! 3d97704f3a96d5067b07d5328162e89f  libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
! 62d83b7cf60967b293af987d559821b5  libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
! f50fbe9f01dd7c8e91b03a44d40b2db4  libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
! 694164ef8a0f1e180e8eccdf22e63673  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
! c504cd4c2fd7acba89289c93ac4f1618  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
! f94249ddf13f2ca7ec195ec4385a406e  libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
! 7ad2e8e20e30c61b57f97ada97bfb117  libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
! 885c2c3d5634f24705ffbf856a6bb3ce  libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
  b761d5230bf4935944006f713e5604d5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc
! 42d301762ea993dc1240db041786b423  libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
! b1b6c3d02ebd4518b57abdc0e316b2c8  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc
! e633a28a2bff142a3826898771936699  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
! 569d63869a875dbe01cd043cbc39d5c9  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
! 067aa3561f1d64b5885695cd7c6d0f28  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
! de88c726760a8aa3d56990eb1bbb70ae  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
! 35f16239471ee428d6f8cb5ce05185dc  libstdc++-v3/testsuite/23_containers/multiset/modifiers/extract.cc
! 3112b3a885e968e9c4db2018fb7450e5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
! d7827937cf4c7b69a93a3a106ffd6be0  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
! 17fe7c5d114e8e5aad625d99513769a7  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
! 5503237f4945d2ad3c0c597cac5305d1  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/3.cc
! e8f00f755cfab49214f9b0a8f371d201  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/4.cc
! 9a1e9e9b9324f47b12cd6c3d63a9d335  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/87194.cc
! 59b2ec4a55b8781e79d538f9dd3c422e  libstdc++-v3/testsuite/23_containers/multiset/modifiers/merge.cc
! c1273264225b4be54501d53560513b08  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/1.cc
! c4b53085bfff7a5896558dc4f750f7fe  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/2.cc
! 3b78c109abcf1835999fff982d168be0  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/3.cc
! 7d31a9b737310a65e0a904003a2e5e15  libstdc++-v3/testsuite/23_containers/multiset/operations/1.cc
! 8edc6e27cbae3704cad7eb4cbdfa2986  libstdc++-v3/testsuite/23_containers/multiset/operations/2.cc
! b61217f1ff9ed0dd9cf872239d7a9246  libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
! 0021c50fd1b6b4a07cbc92a067e93f5b  libstdc++-v3/testsuite/23_containers/multiset/operations/count.cc
! edd9abe087da4944e9714b31568a8c93  libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
! c758f47c38a8ab095455ed9cda516bbc  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs.cc
! 1753d6f20d2424d38d2bb3b12f544442  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc
! f2dc994a44c0a816f1cd924e4162b880  libstdc++-v3/testsuite/23_containers/multiset/range_access.cc
! 97b8d74a93c9a49c06c4527f6371ffe5  libstdc++-v3/testsuite/23_containers/multiset/requirements/citerators.cc
! 94007a219cc05a15933eec4fdf48f3eb  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/basic.cc
! a29286e8d0b2375da5fd5ba3f87720f9  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/generation_prohibited.cc
! 1b3dba1191c24fc81b4d23f4d33c3b55  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/propagation_consistent.cc
! 1f67158fd90b6eb386418abd3dbfbe71  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
! 404334e8b40b24f835787d8c34945e33  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1_c++0x.cc
! f87a04c9b643cf28961d208e6331d4c5  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
! f0a755b273d6f3d619c96a088dd1da40  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
! f36240251845dcaf230295841eba7646  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/4.cc
! a70e420831c858a101440ad9ee1c8cf4  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
! cfdc458b3774704d0d63dc4d8f1d92e9  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
! 77b71a9f5e9d611e3cc7b879e78658ac  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
! 7f0e30f8df9b60251d6205e919b8e00f  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
! 9f8fd4de0112a6c04d13168021e79ed1  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
! c293382ebc0258702f13f7b675577d1f  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
! cbdf954b1caad2f8c064e5cf4b2e95cc  libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc
! d7a4a3793a9a15d16015216a2eb7643e  libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
! 5304d790c9cd4aba495f6c460ef80727  libstdc++-v3/testsuite/23_containers/priority_queue/dr2537.cc
  d28290e2547d3a24b7652041265d30c0  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3506.cc
  1b78335293495d23cdfab47884650bc1  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3522.cc
  a0bec79150ce876cf8e27c12caf9e151  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3529.cc
! 7f0bbe6457815316c5e615bb5b5d097f  libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
! b53e32c900518efff90b0841bf341fdb  libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc
! 196e42ca5237e8406064f8ced2d9ba67  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc
! eb2b28a91e61c2d85f0b489013f0fcf4  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
! 993a5b26b63a648d648eb8df75aa9c2b  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
! 24f557cc7a30866b628e32e95c9b6ff4  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/typedefs.cc
! 28d673da0fdf275e8dd74cf60e3b8a15  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/uses_allocator.cc
! 37371f34726c9352f8fb51ebd62dc196  libstdc++-v3/testsuite/23_containers/queue/77528.cc
! a5939a7802619728b68ae6e419ece394  libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
! 152b2aafb730133ca538d33b64f0ea98  libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
! 2fd4029498f1a344f20ca27d9e20be9a  libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
! 3a1733fb9d00d5b0d220b397f457825f  libstdc++-v3/testsuite/23_containers/queue/deduction.cc
! 91e56109d1d233a7252e3d1641cb2a67  libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
! 0415809d32428cc2ae111fd702918b8d  libstdc++-v3/testsuite/23_containers/queue/members/emplace_cxx17_return.cc
! 941fc3eba346d817ccf83d8620e84072  libstdc++-v3/testsuite/23_containers/queue/moveable.cc
! b3d2ad4a5b8f2314685d388fbd66e23b  libstdc++-v3/testsuite/23_containers/queue/requirements/constructible.cc
! 94d5f4996503140873752cddd6227bc3  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
! 8d0da03d9bda7e7c8991a7bef025278c  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
! b2cd2b6db7084613b301f45e64cf4419  libstdc++-v3/testsuite/23_containers/queue/requirements/typedefs.cc
! 5d78bea97ebce1c5f24cedef5dd83ad0  libstdc++-v3/testsuite/23_containers/queue/requirements/uses_allocator.cc
! 7d2730ee254fa92fddd975673799a69a  libstdc++-v3/testsuite/23_containers/set/14340.cc
! 94e1c6a9f5edbf1bf9516a808983a663  libstdc++-v3/testsuite/23_containers/set/18604.cc
! 7e8a2053fe092da386b9e075db752894  libstdc++-v3/testsuite/23_containers/set/23781_neg.cc
! f78256775857986a0298f6e1cdaaf88d  libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
! 880c58cd4ad9d821a9e0339bbadc40ef  libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
! 017908e680c88bd0afca54db86fb9c65  libstdc++-v3/testsuite/23_containers/set/48101_neg.cc
! 5166226f009f24acfc5ecd389afb78dd  libstdc++-v3/testsuite/23_containers/set/58764.cc
! e1c2b1464451d8a20a895092f5ffae95  libstdc++-v3/testsuite/23_containers/set/85965.cc
! a04486eed5b3ce1578876e3fbe24a959  libstdc++-v3/testsuite/23_containers/set/92124.cc
  4934612c2b7203e0e300739be2067260  libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc
! bcc3e5045cea0097283938d6b2f79e04  libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc
! d491ab00afe9dc561060e6a13a75211a  libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc
! 4733a4509e897e61c0b96894fea2a880  libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
! db153f2eb94650c40ac7088a72aabcdd  libstdc++-v3/testsuite/23_containers/set/allocator/default_init.cc
! 28a6f3c48802fd8dc816797a50d7a81e  libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
! 892e7d56b43d75ce2f62fe639dcf4b0a  libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc
! e0bcc50117ca7607c79c8ec93b09acf1  libstdc++-v3/testsuite/23_containers/set/allocator/move.cc
! 70b59549670fe9b2715b0d95d8b98390  libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
! bdc69c136905016f5ae633adc6535161  libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc
! 18b4a368a4d48fa23d3d4d34c0dc5934  libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
! 34da867a8dbcde7052fc41c7af552c97  libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc
! 3fa4160726b2f78bab260ed35dd108f3  libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc
! 3f6e6f1c0541bc3397ceed5579dec0f1  libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc
! f389f900ca23e843719dc5defe5bd20d  libstdc++-v3/testsuite/23_containers/set/cons/61023.cc
  481e4d5cd05c18aecc038aaa29dea042  libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc
! de845dba911ceb5c2eac894727f73b9b  libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc
! f558c7be705d514d0c2f73b7a0663ae6  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc
! b7c695b785f6268951961101de2f22d3  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc
! 6a2293b2f9893504f1b325318b5556d5  libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
  83968696d0a7067ff4a850c2eb0eea82  libstdc++-v3/testsuite/23_containers/set/debug/114316.cc
! 47f6529020c14aa2a71f4181090c36ac  libstdc++-v3/testsuite/23_containers/set/debug/60499.cc
! 9f66ca0f5ecc5c74e67a6d3c07ba7d38  libstdc++-v3/testsuite/23_containers/set/debug/90102.cc
! 65b57a3b5d86509e9fe1c2fe89526b73  libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
! f5cd589b8a6b8459691889d4635c89e2  libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
! cd40de654d482dee1a3556b91fa135a2  libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
! e38b16983b9a4a03f4d3fc2c07a59f9c  libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
! 0880cb692ac0a9936779dcb22dc8be85  libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
! 0029f287c304db75c799294129a872b1  libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
! 03e61b14d16273eab976d90c7b4a7eaf  libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
! b633e17e531626fc21c6f53d8d87c187  libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
! b2c7bee955ed3d2c7f288b7ee2719313  libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
! d2ab22858f207aaab44a4c89f6a45fcb  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
! 6474ce232e6817cb888e3c7f9b16247d  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
! e422839705cd2f8c982b69861910f10c  libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
! f634f106967c3cabd7279b03e7385270  libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
! c1255aabc0d24e4308170a8162ba7f98  libstdc++-v3/testsuite/23_containers/set/erasure.cc
! 523e6c020c3b3ccb07442703c5672945  libstdc++-v3/testsuite/23_containers/set/init-list.cc
  600f3a07c5d12def9ca643094daf86cd  libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc
! 79185099b8bc299346aca816270affe0  libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
! f9ed8e79ff2a319d1045f09265291b01  libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
! 1ced9d4b5167eaf134d2185e49817d67  libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
! b556fc0acff4f5ff67d18858d97f574b  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/1.cc
! 6e23e0c62a4199ac4d3479a38d1d64e8  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
! 52a4548346601d7e6d220a29a5835f36  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
! 2f54dee5fc2881280c6a02eb0bb2752f  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
! 88a1b24d294b05e8d7e49d2a11fef39c  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
! d7e1e6eba0bf605935862f63177e98fd  libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc
! f435f00e64477623a7e9c021d990c106  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
! 7c63544d97c5aae395f8033f9b62aa80  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
! e1003775cd286d1fa5960f227fcfb121  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
! d8af70d75a75b09998e72495adfbc54e  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/87194.cc
! 3ce8b11cdd461be1ecf47eb276863ad9  libstdc++-v3/testsuite/23_containers/set/modifiers/merge.cc
! be63701041d22c45c0cfa986d0dfd7b9  libstdc++-v3/testsuite/23_containers/set/modifiers/node_swap.cc
! ca710fff4438f1ea178b469e8709a2b3  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/1.cc
! 14e781aa9266335aa8a95ebfe6efdef2  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/2.cc
! 96a4f0aee7a8b571726b27f001e23752  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/3.cc
! 5c8d90f583aef70b045967c77d8c9241  libstdc++-v3/testsuite/23_containers/set/move_comparison.cc
! bd8330f0ac4a90c9c301987628a57e2f  libstdc++-v3/testsuite/23_containers/set/operations/1.cc
! f8e7431c9690a2824df83325aa524437  libstdc++-v3/testsuite/23_containers/set/operations/2.cc
! be9271d492d13db0cc8ab0af5bb7aab4  libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
! 05c150316eaf93e136dc8b5dc1e78058  libstdc++-v3/testsuite/23_containers/set/operations/count.cc
! 0f957b1dcaf94acc33b222fc636d2363  libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
! 92140a1260f95524b249a55e0e1324e4  libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
! dd948a09e72694e09d2ff52ae7ca0e4f  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs.cc
! 8f4a8a2eb950fccdda69acc735374765  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc
! 1e7bbeaf94f70dc30bb7df5109ce51b2  libstdc++-v3/testsuite/23_containers/set/range_access.cc
! ead3a0009675a8d232740cfd03a621f8  libstdc++-v3/testsuite/23_containers/set/requirements/citerators.cc
! 414419ca79c24434040c64925d321284  libstdc++-v3/testsuite/23_containers/set/requirements/exception/basic.cc
! 996650343994e80fd4b7973abf1f91eb  libstdc++-v3/testsuite/23_containers/set/requirements/exception/generation_prohibited.cc
! 2f3d7bf8945dd568ba7d9348f03cffae  libstdc++-v3/testsuite/23_containers/set/requirements/exception/propagation_consistent.cc
! 586ed8ca93109de56dfc2dcbf4245b6b  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
! 9eb1ce9317a4bf763a59c9819adae952  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
! 275ece31f17dc8e096f38ed577b112e8  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
! 588c8067adda5c88fdfd81d75ae781b8  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/4.cc
! 23757e59501f67145849f830b0a7b574  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
! b7d75aeb2d1f9953cbb5cb73f5661d71  libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
! 66ec80c70c50571844477ef975fe74c5  libstdc++-v3/testsuite/23_containers/set/requirements/typedefs.cc
  c40a530a9f9d8a0a09f73891bef444f3  libstdc++-v3/testsuite/23_containers/span/101411.cc
  abef8cc189d28e6cb89211d1b0abd4df  libstdc++-v3/testsuite/23_containers/span/at.cc
! b81b0cc6cb632e5dea362f65818c5b94  libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
! d60f7b59e825b845efbe645f5aee08c7  libstdc++-v3/testsuite/23_containers/span/back_neg.cc
  3079136837b68baf200eeff8d2de46b2  libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
  bf42ecf9e224c05daf99ea1027024d94  libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
! 289c8854c4e87a36c166c36f73d8c435  libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
! d827eb1450e0b6fde95d024f6f3965c4  libstdc++-v3/testsuite/23_containers/span/deduction.cc
! f63eb7669ca69113f20945452727cd7e  libstdc++-v3/testsuite/23_containers/span/everything.cc
! daef7a1fdef86febf45bfcdc4fbb8ffe  libstdc++-v3/testsuite/23_containers/span/explicit.cc
! 35bff1d8c8ee59e6657eaeb69d0c21e4  libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
! e94bf802d24f91679a410e38cc02af25  libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
! 419135866e42bf2ed07b3f6eeb78c055  libstdc++-v3/testsuite/23_containers/span/first_neg.cc
! 7128f2373277518dc64e48f8ca8c6507  libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
! 3998250f617c3a26bc0048e180aeed33  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
! 01e127170abf2735e867f8e00077bae0  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
! eb7281babdc4924716f90c5ce9dafc6c  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
! 6fb54d5a3cf34ce242a9468755b4fe87  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
! 41636b18c867b81c543d7012f972bbdf  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
! 0d96bc2b1d2dfe11a3ef15b3755b316f  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
! 6263fe0ace74c88294d6d286b5ef353e  libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
! 9510d3da7bc2397614cc93e225bb2053  libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
  e45c1853ec6f098abc263746f2bf72fa  libstdc++-v3/testsuite/23_containers/span/nodiscard.cc
! 7b48d29b091f0ec96951a4c3b28133e2  libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
! 567af604dfdff0b018fc6af176fa17bd  libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
! 6897286740d372c157bad377e55bf9f9  libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
! 1da4b6a40a2117ea7b71953781ffe531  libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
! 1d200f1333426bb7b4948cfb1a639258  libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
! b57756ce6360ca0ba533ae435f3176f9  libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
! 6a69261e6ee3896ae92d8af8a326c05e  libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
! a9affc9a7a2ae9465d6265105e8e1cf0  libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
  b1ca4face6583d5fd3a66308ce733f8d  libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
! 90148a074f452f1c06a14e8df75fc8f3  libstdc++-v3/testsuite/23_containers/span/version.cc
! e3155a15eac5cbb89f353dfa05d31a74  libstdc++-v3/testsuite/23_containers/stack/77528.cc
! b8dd7c4a388ea72848eefd4ec36cddc8  libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
! 30eff68d4d52f61fa1505e333664692a  libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
! 8ba2702d17144859c5efb79e1ba62d86  libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
! ee726c14895e899aea074edb15c9832e  libstdc++-v3/testsuite/23_containers/stack/deduction.cc
! 339c5d4e7fdf492589eceddd234ef643  libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
! c1835580cd413f176c3f486b04ad99ea  libstdc++-v3/testsuite/23_containers/stack/members/emplace_cxx17_return.cc
! 2f579cdd875dfd0ca839a249012b11b4  libstdc++-v3/testsuite/23_containers/stack/requirements/constructible.cc
! 0c77fe032b7ac9161e505a1faffb2312  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
! 5262cee696938079d277a2d01aa32d1b  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
! 20faaf09f37f10fe6cdc57a9f0ac1a92  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
! 355112e32b0507338a00b4238a0c56b2  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
! fd000ba511dbe7bac030715d7814cf6d  libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
! 821fb99baacdeaf0109a9b127e8d50e9  libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
! cc161a7626cfb496af2eb74cd506fb5c  libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc
! 3c627ccdc5327c36faae165812afef3a  libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc
! a2850a3b6b0df1002eb322f2ab44d901  libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc
! b385b1a1f9731323c8396d2b30c1849a  libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc
! 219fccd5cd9dc2df16336e48b36071c0  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
! 30a5accf497f2adf546ed835e237d4d6  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc
! 958bcc9742e2748a7afbaab516c3f3f3  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc
! 4b47bb0c4e3ff6c0da81c71e4b482f05  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc
! e67aa22f292d7a625cc47e7e64fe5dd0  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc
! cc222fe54a1c7d01792856e3101bbb27  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
! 062926fb6a9ea090375836cc0a12a4b7  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
! 55460bba3fb207b2dff13b6fd54c4b71  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/swap.cc
! 8407a8afd5d37091597f15651adb72aa  libstdc++-v3/testsuite/23_containers/unordered_map/cons/56112.cc
! 5a9499eb11b5534391332f1eb2f598c5  libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc
! 8c73ea13ab531a10fe2d13c7e3d0f602  libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc
  85260b346a96810f495c68331eefcc0e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc
  85f9f0cfc8a07ac716292470ac0bda11  libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc
! 08688ec59a007da187531d860b75533f  libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc
! b8434ff6a10b871bc7df51dd255391bf  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc
! 471212e20e210d8b8bc4ab19bc088279  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc
! 7521ff92bd39aabce2206e3f6385293a  libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc
! 8dbefcc6f1143831d74aacb2fc3a9bd9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/90102.cc
! 4d6bfbd836cfd6629a1b3602cec5df55  libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
! c9ad2d85e28a10cf61fce412dd9f3ad5  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
! e7d73872cbc153bd2bb903e991a3e5f7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
! 0efbaaad54da144a06aae0e2ce2d09f4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
! e19d3b2746b52082f3fc30ba13198782  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
! 31fbb1c11f2127b4d148989cdc370a59  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
! 8bbff5f9dee2bc975242cc52b4b36aed  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
! f7d258560456f3ea80a39cd06ebe2322  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
! 80b3cfd27f0cac238e0375cdc41662a4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
! 83801837d84725df194faca485741ff2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
! 9883c0b0b04ee3dc81d39c85731b7d26  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
! 21917bce5dca3794056e4442e6816713  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
! 5f54cf5db695a26a4d9bb6c700193c61  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
! 70f120de36f8d4bae389362072c66cf4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
! 7564be6185d00c228c1b02fc2507aac4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
! 5411a8456187ed2ee0e3b414326f3952  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
! fe4bbbd9e4c731bace9ab4ca5d98a003  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
! 464d0ff9020bce6a7aa42f6e11dd1d37  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc
  1edf6281b3ca9799ae88148d55d8050c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc
  6a98e53837af8954af5380d0b48b0baf  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc
! 28608b00ea586532c11bd4b42b7ab9d7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc
! 4e8f12758d1b9bcd6a1b1f5f75d457ba  libstdc++-v3/testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc
  ec5f25200eab229dcb114c539335f057  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge1_neg.cc
  1b50fcbac0e81550e3f02766b2163b1e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge2_neg.cc
  d54806c3c63e301a8ace90147e276428  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge3_neg.cc
  a6d92cb4a8083799e28f1557ec3dc5ea  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge4_neg.cc
! 8797ae0e60562145855bb444ac0dfe75  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
! fe16b787a829c5d10622ee585309689d  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
! f9b1947cfd83e965cab0447f98164811  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc
! cb25d23ac1f3e9c1e730336d59ce5be7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc
! 612a358578568d98b36c30e93e6b1cd0  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc
! c9de29657a64a3145b21248844ca626e  libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
! 654eef0fe6f7666e7de9d5fe4c2e6f98  libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc
! 978844b27a20e80ce3dc8ff8c64ce0dc  libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
! 9a3873bae61afbf9f39e529ae4a661f9  libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
! 3d6a249c1f6994522bf2f91d65355488  libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
! 3ddffea618ecf17092e3be58b7fa4e2c  libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc
! 94f37f7485e9c35e4371d0fc78e17dce  libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
! 6f6466b86e51864eb4c87194e7cd1cf4  libstdc++-v3/testsuite/23_containers/unordered_map/final_hash.cc
! f78ae800ee13da4050595f5856ff64e4  libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
! b24290e8c07ac3dccdb32694680a6866  libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
! fb4965761879a69b2d8f31bf9749d7a3  libstdc++-v3/testsuite/23_containers/unordered_map/insert/105717.cc
! 69f5f5cea901d3a31d5747cb433f1796  libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
! 44ed175b6550a94a349451542a3f39f6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.cc
! 24df39806ff32c2c5ccce2f46456c81c  libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc
! 5fcf290e731f0bedad77997c242040a6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax.cc
! 74133ad0282534ebbf219013178ed22a  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax_move.cc
! fcdb0cd112d59ea5b4e6348679dc047c  libstdc++-v3/testsuite/23_containers/unordered_map/insert/dr2354.cc
! 1d6002d8e94eac465a8cd54a79ba84eb  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_range.cc
! af7471df5154f4df90a940c4ef704617  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single.cc
! 47a66639baf1323cec4b3411948fc61d  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-1.cc
! a92f8be0dad196d867da2349e0470d5d  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-2.cc
! 49e0172362459e1f9446f95608947710  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/61667.cc
! ee62949105fda60f7ebb6c2e68e0abeb  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/78595.cc
! 6ffe152002713cd08a13406632c30fd5  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
! da71e4f89e8437c9c45192c987d91847  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/emplace.cc
! ab60ab4a2b93357cd0e01c84f59a133c  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc
! 20987b301d9588f39fd4596264b4d9b7  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc
! 01a0c0142b658255327e569cb7975fcb  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc
! b0a1e9c1510a5d603bfb16c3ae8e3921  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc
! ed483fbb5e61b6dbadaaafe898e8611c  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
! 9488281957b76b0ea08f42a7f4002911  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc
! ece0578de973f89f86a70059a968f1ce  libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc
! 8ed9604a9151cb891c46ce02d28fc68e  libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
! f01fbeec3333c50635b681bc61983586  libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
! 06790e08d929106bbb6753af8b8643be  libstdc++-v3/testsuite/23_containers/unordered_map/operations/count.cc
! 427675ebf66d617a8eb19198bf3dbc89  libstdc++-v3/testsuite/23_containers/unordered_map/operators/1.cc
! 2d367fa6c2cc53999dc3c91c685a142e  libstdc++-v3/testsuite/23_containers/unordered_map/operators/2.cc
! cf536f8042d885ebdff9add0c6388be5  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs.cc
! 3d097eef3c0aad3235546a09559b11b0  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc
  45f46b4cea5268d1bf8f903d79e3c350  libstdc++-v3/testsuite/23_containers/unordered_map/profile/hash_map.cc
  6bcaac31a8700749f12b90fa8913629b  libstdc++-v3/testsuite/23_containers/unordered_map/profile/unordered.cc
! 47852d8898c74cc1b1fc0718fc98512b  libstdc++-v3/testsuite/23_containers/unordered_map/range_access.cc
! 8940dafb16d06d921fa19aff1e48d3be  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
! f4e4ca9b52fcb02f63fb2bb62eefe91b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
! 5eec5eefa1c3df0eb44b8713640841a7  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53339.cc
! 626321f45ce6c5a0bb35d5d6ac6a7526  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/citerators.cc
! e493aef2aa2318fea0aef9a54830a845  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/cliterators.cc
! 5f4d2e9bbca3b92c3e63c88a73daeade  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
! 5b14b21db4eb4967c6c059e5dfcafbd9  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_mode.cc
! ad89205564a664751cb6fd424c82e150  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/basic.cc
! a7625053d900c5b075790fe706e9caec  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/generation_prohibited.cc
! 12b60114c403e26bfc0879e1bd9fd171  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/propagation_consistent.cc
! bf41825f845c9f0757ddb7e5a3754137  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/1.cc
! 744ae3919b37f53d0b8378f600464873  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/2.cc
! dbe25e58e40222d4dffb86d9738c3033  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
! 8421ec7dc7b3efbef291a32b87ee39c1  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/4.cc
! 0c9a02b7ffa37a4e032813417d1ca806  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc
! 4be197da129cd8618a86190ced877d5e  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
! c5b0de167d3ac561b4abeaad639e8652  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
! 7ea18f51445c32f40115099caa4e35c6  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
! 3e01b3ff3f82c5763c37ac142c72bd68  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc
! a1724de3ee7fc522f0b553378ae44ff8  libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc
! 2cc3fb63000336e44809523c5dd03240  libstdc++-v3/testsuite/23_containers/unordered_multimap/96088.cc
! 50ca0d209d5d6d3e5e7b33b82feb225d  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
! ea27368c66ead710680b89828a374868  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc
! 6e03983f5bff905904b83e7d674e0388  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/minimal.cc
! b602fb8f03bcd7711c66107d774a3dd5  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc
! 8c83bef47d2ded21b828735786b16dd3  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
! 2bf40aa3b52ef92ec7b7457136c44293  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
! 5cc3e86e9629d75ce822c1c57a175c0c  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/swap.cc
! a314036bbbcc9869d8245e26b9f2b280  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc
  1339c52ecafcfc46a0f64547b8873082  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
! c79c76ec5a6315281e7d1d2fbfe1bed6  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc
! c106071f55bbca53f3cca0fc747456dc  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc
! 244c6a7f98c1ec86698aaed6591e939e  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc
! a7977b570770a283323d09904e0b7adc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc
! 55119e07c5859379365c8b78842e0f73  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/90102.cc
! f43fcf1fec2300ab0eb874c42866185b  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
! e7d73872cbc153bd2bb903e991a3e5f7  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
! 0efbaaad54da144a06aae0e2ce2d09f4  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
! e19d3b2746b52082f3fc30ba13198782  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
! 31fbb1c11f2127b4d148989cdc370a59  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
! 01de47b6e7cef32c410b6b358b53f5d3  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
! c71304daa6172b941ef59acaa9b944fb  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
! 74aca66f75838a4fefdfe5fb8e1f46ba  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
! 0021ac7e0abedebb11a5201a4dc01a19  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
! 112e0ce273e24967137becc3654efb33  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
! 21917bce5dca3794056e4442e6816713  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
! 5f54cf5db695a26a4d9bb6c700193c61  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
! 074149c581847acccc7720b051659cfd  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
! 8f656d147000701666bf5041f4b99101  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
! b62dd9eebd3bb0ce36b3e336bafb850e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
! c57828f745e549a9da5c6164321779b0  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
! a1a47fc7d66551b1b43b22d22728ae29  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc
! efaf1bb85bd7d2d1b886b2ba3b2e9ef7  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc
! 0379d015e70b1e03dc2edafb82018064  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc
  4590d5159c6810e053d83e37afdfdccc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc
  10748ae08ea59767c0dec11efeda3ecf  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc
  5711a56e85b25164885d87e3528b0d4e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc
  f30bce9979bec5403e8d4079e23bd752  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc
! 60d4924bdc38b587b6fad8966dd69641  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
! 46a5d77549a85be47f51849ac766b619  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
! c0a9c96d683bb4ad012d5f9a19113200  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc
! e7564429e414794ba5e60f12c135728c  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc
! 83fd56ac6ed2cab4be57b01dfa344857  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc
! 6934c88ab955bada45cfead6a0f8af04  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
! d2e6effe90800ceee17cd91bf9832b97  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/2.cc
! ed966f8387f366d97d79a31d67404fb9  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
! 1e8964e5b539e450b6878f7970d894ff  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
! 951365a3c5672f936e56ee62e508a6f1  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc
! 2ee36ba15d0afbe3f9314661d303947d  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc
! 93f027068b73c0bffbf4fc7daa6798e1  libstdc++-v3/testsuite/23_containers/unordered_multimap/final_hash.cc
! 6097f345ad6c21530cd601d0eb057fef  libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
! 14bbe51fba7ba97a29cadf35d2fa9488  libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
! 133c16e951cb82cda9d2e6eb08569aa3  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
! 73258b67ad9e9d8f88a4155666ed5f90  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/51866.cc
! c228b1d9f0a4ea24aa8e695fc7843ad5  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
! 9bb401ff080940b40ff40669b52c59ff  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
! cf34e1bae4b3ab07e8ef975c7b1b4144  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
! 6aa4aee838cb8ef164f54ee061e5868b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.cc
! cad67eb11b9cb4d0db9d906b24958b9f  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/dr2354.cc
! 40d837d6fbbaa861bd8a2d01862847ae  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc
! 86c5b372596d5c5d5dc835e615e2849f  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_range.cc
! 3d8ea79df94579be76218c54260a46bf  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single.cc
! 98f8159d2cab740575bb19c29579f28a  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-1.cc
! 7eb3ba3e0602e5e1dcf526882b5edb6e  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-2.cc
! f7ff37b7c1d49168d557f14b81e81019  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/78595.cc
! d1cb1cc251968c3772af2fe17c4e6d0c  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
! 890b9093d01d519a1b2c7d2c7bfd3754  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/emplace.cc
! d62ed976b80332ffeaee3e2dd4200bb8  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/extract.cc
! edc981c2472dccfaefcf7b48a896a552  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/merge.cc
! 745bd29c89e1966abc125417d9284ff5  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/reserve.cc
! 1d70d53c6973a54b0f4c7acf3ab068ec  libstdc++-v3/testsuite/23_containers/unordered_multimap/observers.cc
! ec06561cfe37c99b50780d803d90e5c9  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
! 8f5817f4576e37e74146da980cd19ae8  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
! 74c0b5af8b9b53c1417d550e219ded68  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/count.cc
! 82a6e2ef3bb22b4ce69958e6cf07d5dc  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/1.cc
! a1deb9f79d2b3ff766f94ddac574b63f  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/2.cc
! 45a6e576e5c25369864274942513e3f6  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs.cc
! 0562b54c43f8df99d3ee1ea9272b0c1f  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc
! 639f3ae3bc3d9b8f5ae80c0818a90994  libstdc++-v3/testsuite/23_containers/unordered_multimap/range_access.cc
! a70486c5332ceca3baf45a0d704eaaef  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/53339.cc
! 1a3102da46bc71f9fe667e0bdc2bebe4  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/citerators.cc
! 0abd1a77229e2a1ddc49e408994063d9  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/cliterators.cc
! a5096bb492b6a0b5e1ac9e9e22aacf50  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
! 460507d876c1ec82c87b3d7dec96b62a  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/basic.cc
! 205d8746e5b7810d225d82c8b65570bc  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/generation_prohibited.cc
! d0a5a9d70b794c3b2c832a1cfe2625f8  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
! 54cb51130d69c6645d98e8a583a17323  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/1.cc
! 8b4c044134066c8f49d4c11e8e5a8852  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/2.cc
! a085c85079fa43d6a27706771374c47a  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
! acbcac9816ffddab6b9e855939277530  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/4.cc
! 5c0ad249d41506523f69ba2dfc84e8ab  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc
! 259fe413e24a8f4814206dcac7f753f9  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
! dfdd52d3d0fd84e0d648cf5bbbd31a41  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
! 5ce7ab9472b39a630a4c662176494188  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
! 00941eda65ce9c52011167c4f85bfa07  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc
! 0cdcb6278d311beffb0b639b71e0f057  libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
! 7a8d87424a257c3ca1fe6de6e5c4e06b  libstdc++-v3/testsuite/23_containers/unordered_multiset/96088.cc
! e0d42a566b5a34016ec52a970b6da4d0  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
! f8aff15803fc1882eb94c744d2566b82  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc
! 5bd876c8c26b4ce8510bfde0faeacf2c  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/minimal.cc
! 2f367c5274559a26fbc09607f49f46b2  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc
! 66568b41db4aba7e5bf1b4a85ab8cb2a  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
! b85fcefef4d65668f8d8dbd6d2b951e6  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
! 75c18f96bcd882c393c71ccb6c444b22  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/swap.cc
! afb477ee3563e7251739546eb7258997  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/66055.cc
! 43b6c4f93e200fdd9e6641d7be1a8764  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc
  23f594bcb112a45f141a57ae69a39c30  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc
! a694c51a2ca79dab25309a4b948d1ad5  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc
! 5e4e35000e2ef4c29225a1e6b265d228  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc
! ac7a76b420706ecf6fefecb4afac205d  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc
! 577a6f08aa09005ae193142b26ff905c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc
! d4b1279273880620f6d8c3921445600f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/90102.cc
! 90ecafa11aa365a7be7297f24e6a55a8  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
! 07d37a6b65ba0551021abb2bfa390cd6  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
! e866c8970c3033684b4c972ca210456f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
! 0c3f2944f58d9f6ad80b8a98ee1a52a0  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
! f4cfed9436bf4fcc9237c5a0c32190f1  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
! a55227fe96f7dd754315e199c2932851  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
! 5d954c065057f206ee7e011f1add401b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
! d080bbcf7c126017edc2100674b6b617  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
! db5256e2b4f556141755ef1215c8a5d4  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
! 99e9c894745237b8a025ef2410a27b19  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
! 0cf884a278a8989bafffbbf84b3c7980  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
! bdaac72c76871db05983de72ac5f9035  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
! 77915ea01764ffc4ef84a634c9c40fa5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
! fa501b0b6e9b278371cc1fb5e387a2e5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
! 8735bdc954c2dd2525a844cc78b54d5a  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
! 2db348ef9f950f0e795f593368f6dc68  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
! e72928183823a03c66fa503458e64f58  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc
! e121df943489b26874c99f527a75375c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc
! bfe54e28dd114bd666bb4f31fed72817  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc
  57b376626504f59753991e34bc78237c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc
  4780603df65da907f59b5dc2271c7d4b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc
  d1a56802059f8869425e49137d01db11  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc
  ced06789a8924ce0bc694421897b8fc2  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc
! 0573d6011fa030771a9905c52ee40063  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
! 011e3e52fef17f2b3f27ed860d3d3cd4  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
! b6453d3ea533c455c1f89c15763cce5d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc
! 575d1781035ccb11679c183703effcfe  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc
! c329d95a1d0785abc1d7abb40aa5d517  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc
! b14a9c91bce333cbd4b5ef989612cd45  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
! 86ec182c65c07bd73302f68b9296efc8  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/2.cc
! 27fc37a710a617d1b50f3e529f75fe7c  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
! a86d4db4d5a774121ca87940884b911b  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
! f0beb6ffb5d462486c484f531dd00b20  libstdc++-v3/testsuite/23_containers/unordered_multiset/final_hash.cc
! 9bbfcd09cb90dabf1a62cdf090631792  libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
! 27307bf64008368222ad05c2b15f9a3c  libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
! 430cc6597f24db683ebb376fae8e96ff  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
! 17d500fec09ad7b413d5f0c0968b2ee6  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/51866.cc
! 50f28aa514f00a9e2cf46344a03c1785  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
! 192b15c12141f896746fdb37d511942d  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
! 8fd8f8a2d426338c356119704d738603  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/hash_policy.cc
! 0b32bce39b2bee66c8849c0c0a5fc889  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc
! 64f0e907fbd556b407f79f590c1e0038  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc
! 5b6266c64ac6856490e7a9781121e1ba  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc
  81ce776a3ac75fcc704e7f3efc65de81  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc
! e20bbec56f0fbfba82caf9bb12cb04df  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
! d2d68a3b2aed63924afccbc0c33af154  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc
! 0134bbbe8481b7dfb58b73429e28ff22  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc
! 06e82cb54c8465c7c7ec57836a6f80b6  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/merge.cc
! d51e95fe58c406a49062533d9785413f  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/reserve.cc
! 5e739d568a66104fa0025b4caee86d10  libstdc++-v3/testsuite/23_containers/unordered_multiset/observers.cc
! 94982738adf2cec9870fc3f795bcc456  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
! 7213d4d14a0335bc52a0538259c97436  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
! 6b67b6017de9c7d25f33c3066e525517  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/count.cc
! 44c84262f3e779c5d6bbd6ea3134ccb0  libstdc++-v3/testsuite/23_containers/unordered_multiset/operators/1.cc
! ff35f212acf5391b567cb10df48f8daf  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs.cc
! de09dc139ca701d74974333c8470c8f1  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc
! b43e96f1d8e47058cb5d97071665efbf  libstdc++-v3/testsuite/23_containers/unordered_multiset/range_access.cc
! 67e52533c5ef0e654bf36fd54f5521a8  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/citerators.cc
! a71d5184a885082cf3d634bef2c29071  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/cliterators.cc
! 25b13267eb897744d12e6a27c0aedfc7  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
! c3f8e624ea60537a9c0af3542398acc4  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/basic.cc
! 2b851609237a51ecc0aa743c2c7b1324  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/generation_prohibited.cc
! 03aef0953d00b17cfeac693bc7329543  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
! bbd7196ab25e0478161e577515f2f968  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/1.cc
! fcda47d1ba88d4eb4a8556f5b4aa6f08  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/2.cc
! 968b23c06e4c46fb478f26df08230aba  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
! bca08f5252b7511aa0da220c12d87526  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/4.cc
! 0ca18e0d752c0e48f7a2b360f906c2bb  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc
! 5e5991c30cbcf9d96e4ce94eca12df04  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
! 0f34c4a5210f1abb73ed6cb74dc42254  libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
! 883a4186996fdada50e9c8ccfd92060d  libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
! ead4e5c6b5de0086ec5b9bc72d8f365c  libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc
! 3f8b1335e3b4ff5bb08e6ca50081e43c  libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc
! 9bbe567e8a83513e30531235dcc57ffd  libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
! d0e9ab1f74d8732ba962dc2d18c482b7  libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc
! f2dbd79aa284ce4c4d911341fc13bf6b  libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc
! 5bebcd35cc594277dfda554397879f75  libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
! c77752e6693518a189db1389046853e3  libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc
! 52d7c8d9534437526aa8a876f01a4a9e  libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc
! 80c1d8acb9fb010fd924b71710ca96fe  libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
! ae9936080af24c002231ec180be019de  libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc
! cccdc9a860e9fde8d4aa8694851c8811  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
! 7ba9daf9b0b7cfd4df6b4f900f01966a  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc
! b85278913d21d3262c9960f7992d53b7  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc
! bd56be716b22cf2d4b2e95a6271217b4  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc
! 712e12f785d850b4075750bea1cfdaf1  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc
! 3ddcdd1bc9534867b821285db5e84da5  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc
! 7214a5fe19d53ead3379affa563d8e83  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
! f6621242d4710885bbec3a270208e004  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
! 00158cef7c8ea3b5232aaab1d8ca857f  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc
! de02275423b715ddfb352666a8fef08c  libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc
! 5aa5f8e5a0b77cf4cd501c3377c6d6d2  libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc
! 3ac532b36aa99dbb1f07cb1c971f4991  libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc
! 35acdc4bfc6dbbd6e78de119359f68d3  libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
  50d3a4852641ffb5d38114a701a2047e  libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc
  247af40f0de6e07e87bdde64812f8659  libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc
! 8b9a7b56022e65b6fef9ecc035f9b57f  libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc
! 11043f8c6852d80ffb32a1b1344b31de  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc
! 6baf362c934a94e421b7ce08c4026084  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc
! 6d1ee6068796085ea03d2979d54166f1  libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
  1ff3da9ccb1453e5c696c1a351a88689  libstdc++-v3/testsuite/23_containers/unordered_set/debug/114316.cc
! ca2f171a80f33e532e23af456594edbc  libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc
! 605f33c766cf1a4ef0bb12d34524a556  libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc
! 00e402b01128c2a5ec1103e88ce15119  libstdc++-v3/testsuite/23_containers/unordered_set/debug/90102.cc
! ac359458cd96ed9078097b8a40f2e2d3  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
! 3ad005a9ae947a25c9d220a99e86a71a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
! 3feb9d6b037a6fb4355cf6a2e8a58d75  libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
! c95009b335892b327d5ad396ad37cbbf  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
! 55bb523a62c97532b5552ff9a92799f0  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
! 3f8ee4594785aa661fa4588fa623d71e  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
! a1c1a0746e24d390b477e58eb38cca43  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
! 0a75f586f1668668857a02ed1a010e57  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
! 41cfec6aea069d3e0d2b575b62b6ee8f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
! f1e714b2ba9812b517a135e8909a32a4  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
! d3599d7845dd1997bfd13b9cde4222ea  libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_functions.cc
! 73286325ee583d1ae92f9edc5217b130  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
! ad3e019490c4f8d49e85e157163246ce  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
! 72a2b53771c70d70ca447554dfee572f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
! ad2bc7aa92588accfaeca70c0d51c4bc  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
! b9f78afe85471395c75fa7b458d77bc0  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
! 5800829b18b7968d327f012b6150046f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
! bfd266951f441b66e1fb6d564bdfb054  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc
! afc9a0aaa6afd80693790e5ba636a2be  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc
! 8d1e51096ea8e7c3f06f7f114c1da71a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc
  8121fd537a86b2d9c88f3a74d9dfd917  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge1_neg.cc
  8abc555d1b878f2729647a5a9b417280  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge2_neg.cc
  fb91af2ae75ed5745c8773ed8318a311  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge3_neg.cc
  00a3aa9959b3b6aa3847806d2fcccfb2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge4_neg.cc
! 0961dccee25c6839fa4ba6408a2b1699  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
! 19b9cbcdbd0df95a744b8043ae8190ef  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
! d3fe0245e2be839f37002a900872d191  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc
! 808d94476eff30d17acaea06ccada2e9  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc
! a1be2873d3142d78f270de2b17cf737d  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc
! 78b25f180964565744f1e8d26dfc2e45  libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
! 0450f52e7cf92482bfc2f1c98091270f  libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
! cbb173337ca93a38579868883ac090a2  libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
! f222a52c290fb0d96e43fca3314e8ac5  libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
! 1611c46155f0b2fad0109ff3de5661f5  libstdc++-v3/testsuite/23_containers/unordered_set/final_hash.cc
! 5f609e06477f487ac670f15536ea6258  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
! a8ebd6df4b0d69790a9c3b72572d063d  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
! 65256ad1e0531ea44d3723fbd79d0454  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
! ead480a4f416f04ac807da233bbe0c51  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/load_factor.cc
! 5c37a41d2643ca1c8e25bbd08e07e9f4  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
! 73dba94981df67c0733fb05be32c1478  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc
! c83ae44897a92c2a3f91327b8b4c7e33  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/rehash.cc
! d419d64c74190e0fe829676f32e973b1  libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
! 52112198d70a19f6322244ee547c2864  libstdc++-v3/testsuite/23_containers/unordered_set/insert/105717.cc
! 25fdd3b383d5352b36880b203fb31d5d  libstdc++-v3/testsuite/23_containers/unordered_set/insert/24061-set.cc
! 4e4c5f3dffff004f4cf2f0ac9b4e2c13  libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc
! 566c6c0cd2ffe3ef6adbedd8ab02d3e5  libstdc++-v3/testsuite/23_containers/unordered_set/insert/hash_policy.cc
! 23926be00a140486b6a946cf76fc6a64  libstdc++-v3/testsuite/23_containers/unordered_set/insert/move_range.cc
! 415b043d82b7f8283cf75cdfb9cba98e  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_range.cc
! 407051864b035295f6ec37e655c95af2  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
! 2303c8d2105087c8ec9c141fe608ee76  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
! 7806ab6054c4e04ab281ac6cfc38a301  libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
! b6b7c7b4ac6631bd9c1933c123d4d3d1  libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc
  48b51763d3c882761e49bc54aa3174c2  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc
! cd4bee79c1e98b57b4208ea60ce54ee1  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
! b87145f3345faf73412c211c508b515e  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc
! 6d626c0e3793cf568046ed4fec4ddad3  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc
! 575a6fb1ef03b18a28ecac99dce64b5f  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
! b1b3ab51de3dc552fbff37d9e481edb6  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/merge.cc
! c5e6f9355d3c870d101254f4b7eeef6c  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc
! e563dcbcd4261b8e6b394d8d70b5c250  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
! 9c26492a58ea731469b10594d83244f8  libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc
! 60eef5e2076403a8c1928b06f54e5c98  libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
! a05013dbea532a0e8adf37f8ae5e2e0d  libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
! 8d42558db26b8d96740831da1e7016b7  libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc
! 010af23e4e221899486e3f2377890628  libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
! 8a2444c44f89f5d64af1acb9a7f80aba  libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
! 53ad944f0b913c8294652175fb3cf323  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs.cc
! 781331541b6ee6fa95c2c158853d3883  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc
! fade91ee94f454b455d87044a7b42dea  libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
! c21131c685279060f173de7532d7984c  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
! 673c6fdd5e0635b7ca9e7706300d4270  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
! 5e019c5c44dbd24f36c3b40960d58540  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
! 2fccb336d6c4fd63fb10ac1de5b69029  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
! fde32ab880d7e05f866bb180aba74952  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
! ddc8abc6ab8a3e790cb8484a265c2f8a  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_mode.cc
! 8ca00d802e6c2e65eabd2ee9784882c1  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/basic.cc
! 00cc8d5fa2aa117a4d60e3eb1313cc86  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/generation_prohibited.cc
! 9d1f4aa1939b1eef694b61d8cc9863df  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/propagation_consistent.cc
! 90153cc38a6027b0e554ddedd861b2ed  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/1.cc
! e760ba34277aa6e0600aac1af9f75e26  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/2.cc
! a6c30cb472e43a3d3978bcdba7c22437  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
! 1d7933939f5dda930bfe8c7d81e99111  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/4.cc
! d9420f81c3f11a14dfc063c1497c1f2d  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/5.cc
! d4801cbb97be9d2b861c059c2b9d36c5  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
! c4a5b436cd582514c8739a73fc6f47b7  libstdc++-v3/testsuite/23_containers/vector/14340.cc
! bfc27aa16f90eea78bbd66e3494efa5e  libstdc++-v3/testsuite/23_containers/vector/15523.cc
! b9a80d666fe2c8a78ac8925fd6db4b27  libstdc++-v3/testsuite/23_containers/vector/18604.cc
! 84326e87a842ad7c728552ced841da62  libstdc++-v3/testsuite/23_containers/vector/26142-1.cc
! 0c59ec432278ce68292f3bb94daebb89  libstdc++-v3/testsuite/23_containers/vector/26142-2.cc
! f5fa30504847b2e76efef8e888850679  libstdc++-v3/testsuite/23_containers/vector/40192.cc
! 038049edbc23f4763d022c8844ca7ae1  libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
! 4a3b3b6fac3e1c7c9f4453b300cf27df  libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
! 02f550dffd623ff09bcaa4604a2d1426  libstdc++-v3/testsuite/23_containers/vector/48101_neg.cc
! 642e13bb5056753d0fb21c03f07041ea  libstdc++-v3/testsuite/23_containers/vector/52591.cc
! b73b867cf793729e420639a90b40498c  libstdc++-v3/testsuite/23_containers/vector/58764.cc
! fac3696f2e0219cbd1be347e92805695  libstdc++-v3/testsuite/23_containers/vector/59829.cc
! a0b2636991e86ed0708000cd6750cf64  libstdc++-v3/testsuite/23_containers/vector/63500.cc
! eb685f9ef1f0b6b1b159a590df2a5c99  libstdc++-v3/testsuite/23_containers/vector/70303.cc
! cf20427de49e93f3aa5fb2d45d031397  libstdc++-v3/testsuite/23_containers/vector/92124.cc
! 6c8a3c0736e4302b19cd2432e47d1f1a  libstdc++-v3/testsuite/23_containers/vector/allocator/construction.cc
! 95bc89e855705c53662937c0d0d5cdae  libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
! 5c58000fc319eab287f8ec450051940e  libstdc++-v3/testsuite/23_containers/vector/allocator/copy_assign.cc
! 6fa69e2dd7dcd63b18117c39f1fe4035  libstdc++-v3/testsuite/23_containers/vector/allocator/default_init.cc
! 05f9301dd9435c3965f75c787e7b2f69  libstdc++-v3/testsuite/23_containers/vector/allocator/ext_ptr.cc
! 1a9d01cbb4360e1d1a21dbc9731acf47  libstdc++-v3/testsuite/23_containers/vector/allocator/minimal.cc
! c7201205ff723c47859f03288046e82d  libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
! 6b006ab8e5b9ffa99089f0921b24b803  libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
! 86035a66a3fbd660c41b5278f99fe9f0  libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
! 75c5b9c3d06ca7174753babab8a5191a  libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
! 3082f2406344145be2eb620e6926252e  libstdc++-v3/testsuite/23_containers/vector/bool/1.cc
  4fc9d9cf0cfa9e9f3a7219a3ee234caf  libstdc++-v3/testsuite/23_containers/vector/bool/110807.cc
! be5c3faf37233a420510802a256b1243  libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
! c24897242a19a1dd8abbec78d83e6345  libstdc++-v3/testsuite/23_containers/vector/bool/23632.cc
! 6df224898d2f38d959deca744e5d1431  libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
! 492252b86215370a47d4a597acdf45dc  libstdc++-v3/testsuite/23_containers/vector/bool/72847.cc
! 25fb1167c159fb7ad5df674991357ee3  libstdc++-v3/testsuite/23_containers/vector/bool/80893.cc
! 66521b50b88932bdd2a71ffada50038b  libstdc++-v3/testsuite/23_containers/vector/bool/82558.cc
! b303f3d945bc01fbe6f7cc35839ad46f  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy.cc
! b74165de61685eb049a059064c656ba3  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy_assign.cc
! 4ad8817af802254509ee2e46dc315e9e  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/default_init.cc
! dbe9d9bde8fbe9f2884a281502ed5a10  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/ext_ptr.cc
! e239fbb6ce2ecc9031e199d9d3aaf315  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/minimal.cc
! a7ff7fc8e5da47e55c97fe5365f24bdb  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move.cc
! eca6f6a77d9afd99c5f2312f3e1aa386  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
! 9237f55c7f6779f2e0bec6daeabdf9e3  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/noexcept.cc
! bdb7eb579c36ec731235478918636173  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/swap.cc
! 40934c073d8f939aaf277a5e990aaefa  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/1.cc
! 828fa8f81f659bb438b713d707d2e650  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
  bc99c897bc30ba1f3a12dd71e4619b8c  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
! f1039c48908c38003d21d43a24aaca24  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc
! e4aa6f7b1e06e695a1f9f2c372b67a8a  libstdc++-v3/testsuite/23_containers/vector/bool/clear_allocator.cc
! 61c2bb3e90bf0310c0d4b2d9d8b4c702  libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
! f3d712f11f28215856d450cf5b00aa2f  libstdc++-v3/testsuite/23_containers/vector/bool/cons/1.cc
! c21ec609f0c5dd72f82df3eb447ed1c8  libstdc++-v3/testsuite/23_containers/vector/bool/cons/2.cc
! e640102c8e0b6e61cdef8f3bacf64e69  libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc
! eec79623339783e21b7aaf391dfb6585  libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
! 58fb57a4264c29e25b768d548fd62040  libstdc++-v3/testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc
  e0b11c4dbbdafef2f8d275b74b88c682  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
! c48c63b68d98a14dfe873dee7e5431eb  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
! 0267d1951ce0294746f362645f002b8e  libstdc++-v3/testsuite/23_containers/vector/bool/emplace.cc
! 5712c89cd3774a9217e65a8b7bef0331  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_cxx17_return.cc
! c59fbf4c665f509ebecea5df0b139d83  libstdc++-v3/testsuite/23_containers/vector/bool/hash/1.cc
! c2003c9d5e46b599fbae48cc392dbc12  libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
! 66cadf90db4d10ca4e010209810f99f6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/1.cc
  c2caffba87c853ac017ff0008682574f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
  564442c432d0e1aa5d2ed0fc5baea507  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
! 9d7cfef9a62332a454d5a9b6e7fc7c9f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/1.cc
! 71f57f918061fd7aa405ba75770e4fdc  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/54577.cc
! feadc2357e3eb474898e4e6521c0f23b  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/1.cc
  8411c535ec979be02e85103a2ce6a933  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/104559.cc
! 4eea4e19cc15409790e6e9fe074a4493  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
! 1b2632e901588c9420a8c1ed730ccf8d  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc
! f002a8ae37e2ba5159adc4b909a67ff6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/1.cc
! eae3bb2eb533ea2e9f3f416f2e1b648d  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/2.cc
  780e46ea3d7c50d8c8512793253f488f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
! 748d72a942d1235f239927393774f8be  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/citerators.cc
! 94c6ec024f35b45670a26b3ca48d6194  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/dr438/constructor.cc
! cb1672508293cf8aee81e33f5f556c63  libstdc++-v3/testsuite/23_containers/vector/bool/swap.cc
! 09405452ebfec264fb302c50be2c23d4  libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
! 4e62da2903b5154a45b2f5e4d175917c  libstdc++-v3/testsuite/23_containers/vector/capacity/2.cc
! 46726ed9bb892192e3e4b2ae450f3c8f  libstdc++-v3/testsuite/23_containers/vector/capacity/29134-2.cc
! 7b80bfdd8c94fb5578090542beaa80d3  libstdc++-v3/testsuite/23_containers/vector/capacity/29134.cc
! 35034d70affdc7419bb0594b33ce8ddb  libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
! b3b230bd497a698e265e49e70133a966  libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
! ace54672e1a4e9510c9b7cd4c40986a5  libstdc++-v3/testsuite/23_containers/vector/capacity/87544.cc
  459061d5a624ef8241999a7a4d7abc99  libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
! 62ce95e4e272b6aa97effef407d39f38  libstdc++-v3/testsuite/23_containers/vector/capacity/max_size.cc
! c8badbdaa93b0934fb851e1aa15fac0f  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable.cc
! 400e26b60644985b305386a1058cc3d8  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable2.cc
! 7e9be411b1c107e35297d6d98fb10c5a  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/1.cc
! f474c3b067251a9f2d67de175dc3cb3e  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc
! bddb2e62ea19da58c4f01ca4f90ca184  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable2.cc
! ae337dce31aa8bd7197d0cb6c8b578a1  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc
! 7b36d036e01a8c9e7ce0872fd8506fa5  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
! ec893c866182efbe20fce8299b47b98f  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit.cc
! db7796650941b20c41bc6b77f4a4e3c1  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit2.cc
! eb0422571284f36e7793f94e2bbd46fc  libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc
! b721816c39e08323f298db2119a474e5  libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
! bb991efa5afdd5df7f54c4f8b98da002  libstdc++-v3/testsuite/23_containers/vector/cons/1.cc
  6bfe3fe60e55efb3d1e962aa17c03c0a  libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc
! ccf234c11b313b8cf8ae976eba6a599c  libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
! 46571f6f1d7d7697d6802bcd7fd4dbe0  libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
! 8fdfe2fa350a66e0ea2ab7a236cc08f3  libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
! 00b4b91688b28f3c89e9ec9e929df1a5  libstdc++-v3/testsuite/23_containers/vector/cons/55977.cc
! 949739c3c9715931abf44b31a49dd46a  libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
! 4d97311c2c9ab894282d965a3f07fd9b  libstdc++-v3/testsuite/23_containers/vector/cons/86292.cc
! 0211f41f5272d37e21a9b05a2c6f25dd  libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc
! 23a191908d1ff4d9c0f1156664603800  libstdc++-v3/testsuite/23_containers/vector/cons/89164.cc
! 0c87c41898d50a59a66e8a33e3a02a84  libstdc++-v3/testsuite/23_containers/vector/cons/89164_c++17.cc
! 4b3310eaebd76738414de023df5fc1d4  libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
! 74eaa2d34032e8bee8d4bae08ea94a61  libstdc++-v3/testsuite/23_containers/vector/cons/94831.cc
! 2228661326b322cdb4ca181fd6ccce66  libstdc++-v3/testsuite/23_containers/vector/cons/clear_allocator.cc
! 6b6ce80ff08158487e914b6bdc2aeba0  libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc
! fb48eef9819fb9b9420c789b10345994  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
! 49e7077b6d0fc87fecd23a8bda909ccd  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! 006fc011a43ddbf758237846b0e783c2  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! 4620aebd78f00de979bb2e05d7655e23  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
! 3c482a502f4b14275ffc4a8bdb723de3  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
! 030430e7c08653a216e024bffde111c8  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
! 98f7d0a5529604ca7db7ae3c26222e15  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
! ab07a83089823f57eb7595b5b9ec1b62  libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
! 4e92d698cd0683ac4ef98bc6c56eee16  libstdc++-v3/testsuite/23_containers/vector/data_access/1.cc
  a76f6e7c31b7d8f9240bd352b9466d53  libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
  4fa73e98667e45918cf4c25a7c91ca77  libstdc++-v3/testsuite/23_containers/vector/debug/114316.cc
! 00542f14369ac62716328b63bdc3b61b  libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
! 363590f02fca9f3176f8b3adebeb6e86  libstdc++-v3/testsuite/23_containers/vector/debug/57779_neg.cc
! 6530cd126c973591248932c47c2059ef  libstdc++-v3/testsuite/23_containers/vector/debug/60499.cc
! ad06548445e319d3a69b73aad2cbf98d  libstdc++-v3/testsuite/23_containers/vector/debug/60587.cc
! 2655d92be3dbe924708b2bde8513191b  libstdc++-v3/testsuite/23_containers/vector/debug/60587_neg.cc
! 831105b1477f956ba579a7406cf49251  libstdc++-v3/testsuite/23_containers/vector/debug/90102.cc
! 004390941f117abbaf7bb146108d26a2  libstdc++-v3/testsuite/23_containers/vector/debug/alloc_prop.cc
! 0aa9e9af47236d9253a0455515b8831d  libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
! 682475b76bd351d8bfb4e44cec5356ea  libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
! 46ed063717547a08d1eebc101a0af1d9  libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
  36541de3ba8c9a1aa64b2f64e2664b68  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
! e3693e3bcef01856985509bd2ddf5030  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
! 022d11a4fa8bbc19fd2a27f036a7bc5b  libstdc++-v3/testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc
! ac1cbdd99f40af3cf0c5d099d6e72645  libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
! 1434d0f4cbae9ab9add549e93778527b  libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
! c085e03cf1d1421d003a475758e16bd4  libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
! a07343a07cdb20816421db21338b2049  libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
! 3783841cd74513d83630ff9fb57f7b2a  libstdc++-v3/testsuite/23_containers/vector/debug/debug_functions.cc
! 8226d512458d97386f2232fb271b33bd  libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
! c8cd9fe70bc8e0987156df42c474980d  libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
! d650220dc1448b88f45c77882cd31e85  libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
! 8b07fd98f926a50660acac9af7c744fd  libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
! 4d07d7941e6d6079266018a6f6c8bbb9  libstdc++-v3/testsuite/23_containers/vector/debug/insert5_neg.cc
! 56d6d695676a66747ea4919fc3963242  libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
! fa46d03daae73ec22bc18e1aba2aecaa  libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
! 823d6f5601ce5a17f323b54b7adb6a70  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
! a547117293a92f128b665602a4103122  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
! 87913c0eb8359535ef1f84d2fe845c5c  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
! 40dfa198df80e35ecb3b2c759288dc42  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
! 24954741a34b5e5a3eb9dded4d8ea9e6  libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
! 65887c9b0011cbaa6bfcd6baee68e92c  libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
! 78f18b590fa0b7b6282799e8bc1b4680  libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc
! c76b6ad610690c711375ee99ba83affa  libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
  7f7ee046dd79fd0dbaee1477492faa9d  libstdc++-v3/testsuite/23_containers/vector/debug/n3644.cc
! e07b809702a5d5267e29ec166f7d27ce  libstdc++-v3/testsuite/23_containers/vector/debug/shrink_to_fit.cc
! 37d59728327fcf8a52833b62697afd56  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-1.cc
! 940fa04e42e2faf8e626f4be6ecdfc72  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-2.cc
! 281426757a24d2143f6f102eefdcf02d  libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
! 3aa8ea3d6bf9030fb6b562f19cea8459  libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
! fc3bd21c86a1d870c040b2ab89488cb6  libstdc++-v3/testsuite/23_containers/vector/erasure.cc
! efb2d1a89a8d128174a6c7a7bbfde695  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/citerators.cc
! fd2a4fb24aed5d7860795f09882235d7  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/data_access.cc
! f0c3e70bfedcae832c95953b1ba6db97  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/1.cc
! 68750df9c2bde7dc7d494d75d6d21b0b  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc
! 6173e2820e0f35f5e2a14165b0a69cc4  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/element.cc
! 5a09c36a881e1e0d330b252c8fe2e9b3  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc
! 5e97e21d151fcfe8e90ce1c781084ea7  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc
! 116d933558ca1d904b27c612aa23f534  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/resize.cc
! d5ad75961cebafbac099d4b42638968b  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/1.cc
! 3a3bc050c5fd44a62a869987df06a520  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/2.cc
! 745b8b759922db49a639b9e35186eded  libstdc++-v3/testsuite/23_containers/vector/init-list.cc
! 904931710617095f31a1129eba4c10f8  libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
! 4fcc90c6f3c0b358d0dc45e3a22a8efe  libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
! 6effd9cef2c74c606feac1e830216c65  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/1.cc
  953c68b9c8f36c7a72454dbf1966be8c  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
  000698581016741f52c8bf2bfe086a46  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/no_realloc.cc
  a325122e6a6afa548900873f460f4121  libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
  00bc8fb19959079360f78f326f302b5b  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/1.cc
! 9d1f407123b520ce46bb60da87998437  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
! 0de3d5113d99b44104a54ccb98a783b4  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc
! e55c1c15b136e5edc42a063ca1347b98  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc
! 8d9d461d409be4d831622855a1228b1d  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
! e536a94eb2a06ca884beb88359f8ec0e  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/50529.cc
! 8c5dd1473ef70562dba7ffcc151b0097  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/54577.cc
! 9955af410e0aecdc5b97e89a83b41df4  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/moveable.cc
! 32d82b5c416375bd2ed9e9c6f492f887  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/1.cc
! 37d0222471007c4e52ecbd07e6490ab3  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/58148.cc
! d89a9720f07a14c9e86e6f07e4c83bf5  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
! 005243a58b67a49326d93516edecb628  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
! 404a093d2a58fb8971363e6a1fa02a56  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! b592190b0f316200dd18d0acfdf59ac8  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
! 7ad68b2965cffcacc1bfb6bcc694f371  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
! d3441c48a102fc3c48ef330b6d906b55  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
! 5e891b22a8f3333fe993e9f8ab6c121e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
! 13446821e8cabbd255d7581ffa01bc9e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
! 4b4815c96f7f7bd01cecb6bd6c8b7e4e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
! 1cbe0435d6c258bbf5c62cb499c8dd17  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
! 94ae253a6ed1499fca9623d71c0008de  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
! 2ce333567224f761a6833356d4cc3a02  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
  ea251e0e3973cbfd8ecc45113a07deea  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
  5e2c71260e3bea608524a7b15d7c37f2  libstdc++-v3/testsuite/23_containers/vector/nodiscard.cc
! e378e2711006e4173a4a9bc46926e249  libstdc++-v3/testsuite/23_containers/vector/pmr_typedefs.cc
  33db2bb591e55ad911ea124e372841ca  libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc
! ab3ae1e09760f32a8314255f6349790c  libstdc++-v3/testsuite/23_containers/vector/range_access.cc
! b5387e3eb3d6c1bc30e8c91b2ecd0d74  libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc
! 18a02d20ab7a0188437997f99d568ea8  libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc
! f5fb839ddbd2fbbed5de88934bde52ee  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
! 23bb4497bcee54ba51e63d3944ed4cef  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc
! 16b5800c698252d541c3191d2d9da46a  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
! a4af4f5262a857fa5c37cce378c6cafb  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
! 9caff166a0b9f9d07aa661cb4aa89663  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
! e9080d8d64f1f98d85a522390dd1c86c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc
! f9ed85c9a57badc522211aa8c1e1360d  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
! a776866fdac4b5118299210993f5ca4c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc
! c801ba844df00bd69803103b148fcaf0  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
! e80322a8b054f071df5ebfd53a8f5d53  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1_c++0x.cc
! bb9f5b42db98779bd320afcb7bb7b0d5  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
! 00d58e5943df5251977b50b8d71edcf9  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
! 2421b13d3e9aca19019599384a9f1ffd  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/4.cc
! e33c6f97d50503ac74e3dcb8283753bb  libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
! e06b30fe534b916fec0e57c270dd59ea  libstdc++-v3/testsuite/23_containers/vector/requirements/typedefs.cc
  2ee39d513e4a8853a8cc693625426333  libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
! 6ccd847e59f9b377352dfc7a8ec084a8  libstdc++-v3/testsuite/23_containers/vector/types/1.cc
! a763002c73a199c9ea7a38534537a0ae  libstdc++-v3/testsuite/23_containers/vector/types/23767.cc
! 71c5913c9a520a6fa2378fb7b5ad044b  libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc
! 4d2e02505654ad97c704559acf585c47  libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc
! 1d7e816d88be1d68182ec1bafe1dc910  libstdc++-v3/testsuite/24_iterators/aliases.cc
! ed5f75c29152f59bfd2611b691b1559a  libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
! 291c87c1d2a34581eeb9ec15d3c09a8d  libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
! 059ad526a1df693c9d465f3d1d68ad72  libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
! 3ed2562411114bec1018cef2845d63e2  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
! a401cc93d18c9926a4c3a524543eea06  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
! bdab2b57139d0bdcd9c56a2df351ae23  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
! ef42c6dea71912180e164aa833daa9d7  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
! 2b7b9faabc2c37b315528f9fc6a4f51c  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
! aff8511491014bf8573bd1937d23f40a  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
! 471ac5e5a89a8bef8bafa0360126dd14  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
! c546cc775c2f4aacb2ab246105d49be4  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
! 398ae11152122c4daec281878e987ae9  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 12c5aeb756c35ada3a370efee65bdd7c  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
  9f4e16d24466d0905c256e141d9b7e91  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
! de5e3bacb355ac6331ac4ae3d0d7e069  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
  c78691d1ff6bc1b3ae254334b058b5ca  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
! 514f5f79e39424bc555c834fdf742bab  libstdc++-v3/testsuite/24_iterators/container_access.cc
! 0783d01d06994d30f114de931fab9034  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
! 0467df8893456374e945a35f254e7aaf  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
! ebf8d6da7346a10bd378c213537248a1  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
! 5c6a08bb9da216dd03337d3a8a5085a4  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
  b37a6542819dd8a42cc6e9fee97b5944  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
! c494b2e9b94276d516a5204528151420  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
! eec78f8a6a00c559e2af6457efe7d6de  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
! 5bd1c430466800a51c5ca06e9d8f8293  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
! 6c7822c29901f2275ee04bafdadff9ee  libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
! 34987018d385fa05614bea993e3f0ec1  libstdc++-v3/testsuite/24_iterators/forward/concept.cc
! fedfb7eef383fcda6c6fb251f11f0868  libstdc++-v3/testsuite/24_iterators/forward/tag.cc
! 25cb76424618748e1e781fa4fc0be6ca  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
! 7f28e40b07e06512a4a21a43c48e932f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
! 03de0923882730b560df9907a526f1ad  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
! 4e40bebdf375f094938f6a74955b7706  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
! 9c50750e622326b353df7eaa9623cf1d  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
! 5bdb7316c4182902b23e7db77167ab32  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
! 9612cda4371e959439e39b683f820a5f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
! 360a52b91efd4a055b23ed391bbd62b0  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
! 7e9193337a842fb0ecfb489b4c51047f  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
! 829ff678d7d73fa482cd99f69f9128af  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc
! 623958421858d01e23c5d78b04b248db  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
! 99d940eca2551ae535b34164f49b66d9  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc
! e05443873f084bf99826aa557dcd8e34  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc
! 2d8fdf829fdcf0d953d759e3a11c64d7  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc
! 495877ac5259c8d6cc0e729545ad78c0  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
! cc92f31820665f8e2f5f208ba9706e57  libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
! d42bc6ec2bcce0138a686c8be72b8186  libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
  1f15796626d974829bb6df211b0b4318  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
! 0335bc245c94a1b21f5a509fa5bc911c  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
! 67720072e93010635087b776cc40e9e0  libstdc++-v3/testsuite/24_iterators/input/concept.cc
! 14e6f085a7bcc44f7dd2bd0b1bec0431  libstdc++-v3/testsuite/24_iterators/input/tag.cc
! c6da0ef6e64e0cc9d6ee2a3e48579dd1  libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
! 7fcae2868f258352205f51e02dcebabd  libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
! b6e6cb1fca21ad54771598ec59a11dc9  libstdc++-v3/testsuite/24_iterators/insert_iterator/dr561.cc
! bf13294c8e1ba5a00b1f2bf2f87d191f  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
! 7aa37df3e5b468351e17d871662802d1  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
! 44e287f68a5090a0f116c376feaf68fc  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
! 59dbae8f0f18841e432b6583b0f8c855  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
! 3fcad769c888ce67145afb946cfe4954  libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc
! dbb6965510a04e3fba7551a980378073  libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
! 1fba607597cdb7ea82c2f91e193dc0b9  libstdc++-v3/testsuite/24_iterators/istream_iterator/70766.cc
! d37c4e49eb4480c26dc88261b44d7e2a  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
! 895177ddc0bc3b3aa513296281a8cc56  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
! 6997db6ee68833e6159bbbd2ed8cb573  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
! bace6ef2912a30047b09a18d919361fc  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
! 5ad66aa35e8f7dbb83dbcc33355e384d  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
! 98d49deb4bbcb615dd24659838d78d0f  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
! 1713c306a8a41af2ca9052c8c8e72eb4  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
! d3cd71a28bbc84054ec728f34461d270  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
! 5561389ef10093963146739453d3922f  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
! 7bc4f8604cf2787880569e71c50fe082  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
! abebc6a7a58e4863631bcbbbe8d78951  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
! 0f339c69fc44cad77ac1619f6e271fd7  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc
! 1ce758a49b69fbfe965ff39cec83c8bf  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc
! b375059b9cae9cfeef23db41b2eca2e3  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
! 958faf3c2527618894b22e5c368e09c3  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc
! 58cb8c206f673e4c9d8c8e1c2371b163  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
! cd53fdfed92724a4bfe1f573cf70ceaa  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
! 78c676d00e9f462101beffec6877eb03  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
! c29a487173cbfe41cbbae4548020c935  libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
! 3205255e51d0888bbf8aaf04493e88b8  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
! 3900cdf8d3bbd8cdaadc18bfa3373f27  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
! 3c58afbdd7e6f4157ba8fe62474de461  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 5ca8f3a2cd9778e7338db57284444d75  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
! 6dbcc6c37cbe0cd8342c60eba2907358  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
! e85f9795a24e23383fd6e6220adc27c0  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
! 9aefa852afc55a0fb53e3e0a20166294  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
! 4b4ba925a0dddea27da981b0fd972d24  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
! 0a77158b76594401e20579384d0ef499  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
! edcb66e7e59338289534d533b79953b4  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
  5b709c0c24b86afd9aaf272fe6396999  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
! f557f700bc0e75fcbec962ac451dc1a4  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
! 321a3c9ee80f47a2217bc20d2dac1734  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
! 2c7e0f92cd7e5e9a9dfddf921503d577  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
! 199fe4ba95e3f78d3df5a5b83fc289ce  libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
! 9e53dd2448ab1653f1d0f9a8b0b2f4d0  libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
! 103acda9fbbaa0b23365ff463483034a  libstdc++-v3/testsuite/24_iterators/normal_iterator/greedy_ops.cc
! 4ff5db259d95f86dab8a3a9b2f91f78c  libstdc++-v3/testsuite/24_iterators/normal_iterator/to_address.cc
! a51eff3c31623987792c1365c4191776  libstdc++-v3/testsuite/24_iterators/operations/26020.cc
! d1a1c74a394f17ad92589ad14dc1a2b1  libstdc++-v3/testsuite/24_iterators/operations/40497.cc
  631af97d6c75b598ecf8901dc62067b2  libstdc++-v3/testsuite/24_iterators/operations/lwg2353.cc
! 50552b565664b08c873684a4affb92ab  libstdc++-v3/testsuite/24_iterators/operations/next.cc
! e14312f3ba803d0ac52ffbc520eb7a36  libstdc++-v3/testsuite/24_iterators/operations/prev.cc
! 5346ba838ce8a4d186580a36f32b3d67  libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
! c8ebe8cdbf907e5681d10743b7ea108f  libstdc++-v3/testsuite/24_iterators/ostream_iterator/1.cc
! 2a84b93d1ef479991011e36446f3c9ef  libstdc++-v3/testsuite/24_iterators/ostream_iterator/70766.cc
! 9913005d40654ec8a715591b0c759948  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
! b2ca3e179fc3223a283c65504a567dc7  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
! ee3580206bbbd0cdc4f763c47736e217  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
! 50316e93dfcdadf152c79ed90e4e22b0  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/2.cc
! 135089edfa8696693ebd9bc8222dc827  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
! 80e9929f1bd880e5c14bc3f20102311e  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
! 098ff110e359cc27575f357afefdf224  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
! 6640e820c51d256f270c77a68a78316c  libstdc++-v3/testsuite/24_iterators/output/concept.cc
! 5b0d03cacc161b3372df04b5c1352fa6  libstdc++-v3/testsuite/24_iterators/output/tag.cc
! 4ebb436a834f089386ec145076a4c9a6  libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
! 7d3343787564e66173eb1d9ea0236b68  libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
! 96941ba4f759ad890c569fe9cc2e775a  libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
! e123a68ce6550e7bd116558f7bc6da72  libstdc++-v3/testsuite/24_iterators/range_access/range_access.cc
! 58867cfb11f646e84535b88b801e0540  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp14.cc
! eb7be4e449dc90f0a99e107255e53401  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17.cc
! 8c76ca22cd753d3194f153ca745567b1  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc
! 8d4ea93f1e6258e5deb6d7f8058cffae  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
! a437c8f93b4125736e30726ab15a565c  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
! ce2cd1a733345f8dcf29822e0e20f766  libstdc++-v3/testsuite/24_iterators/range_generators/01.cc
! e376c042ffbb3b8e563e5f69b3cbb80e  libstdc++-v3/testsuite/24_iterators/range_generators/02.cc
! 91bcb0ed1291d112763e336731e05d46  libstdc++-v3/testsuite/24_iterators/range_generators/copy.cc
! 2b6f69b84cf184bccb215c566c32f32d  libstdc++-v3/testsuite/24_iterators/range_generators/except.cc
! a8099c52aafba6c8fb084f296635b3c7  libstdc++-v3/testsuite/24_iterators/range_generators/iter_deref_return.cc
! 858c1b57d8af0a64d2cd4891aa1299cc  libstdc++-v3/testsuite/24_iterators/range_generators/subrange.cc
! 51bca99a8cab4d7a4511013140c30af3  libstdc++-v3/testsuite/24_iterators/range_generators/synopsis.cc
! 7b5fe98259265b808b4ba62b094396b3  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
! 7aae953003171769a9cea7ac73f094ff  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
! dc51a0470cd8f6003d8067846f2c39c1  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
  f3e9bd715fe13148d21f32ce807ccb06  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
! da8fe4d2d8dd74883778a7e681324405  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
  a921cc7d3fdaaf8546958618d0214e1b  libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
! ac5ccfa49cca821af5880f70589760bf  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
! bbd6f22084b815b461403fd59a5f420e  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
! e2ae7e18301ca847e59136735b6d2176  libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
! 0245af256f0a7a807d092676959e4c19  libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc
! 1504bff5447b98c90b617e2bf1009141  libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
! 8eac001b4c6696c37c4a742024a45706  libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc
! c270d22dd76880fd2204d447bd3f516b  libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
! 2ffe7291850b1b03c9a2a13b163d69af  libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
! 522429a473683288cf1d639f14443d44  libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
! 09b82756144465c5d8a19ff2902978e9  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr1052.cc
! bef585548b463d1227978a68233053d8  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr2188.cc
! 36034339ab5915c559d1563e2b58dcd7  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
! 24d052f5602ae223ee3310471edbf0b6  libstdc++-v3/testsuite/24_iterators/reverse_iterator/greedy_ops.cc
! 4bea967c2d445f314465d638ff52ee47  libstdc++-v3/testsuite/24_iterators/reverse_iterator/make.cc
  b0c0208d50f550375365900191253233  libstdc++-v3/testsuite/24_iterators/reverse_iterator/noexcept.cc
! 240e3e33c8831f30314c7f79489087b3  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops.cc
! 1f4c4fcf3e9aab423092647bcd3ab276  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
! 1a031dce2e43ef75bfd325498db2ccf0  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
! 3f5ab26bb70433c878469da41a1e0919  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
! b5adeb77d505f4a966a0def2782cae08  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
! 76e2f75781110c3103dc9609147a2c8d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
! 15220435ec5d5956ba01dd20b585548f  libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
! 25dbae943131df76980ed44f4218ec4a  libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
! d6620eb9e22af1d28db1bd1d0b3c0b5b  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
! 0633b11b11fe682a4a282f09f7848915  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
! e1a44236e935c7bd43607741b2d4323d  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/2.cc
! 41e2c24065c0cc7d5a7e617836b9cdc5  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/pod.cc
! 56fb48806208a821a9b4e53d149dffed  libstdc++-v3/testsuite/25_algorithms/adjacent_find/vectorbool.cc
! f96c4e1d3ff05fc4a1736eddad853f5e  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc
! 0990dfc3d5cd1e6801aba7025aa97a8e  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc
! 87a29b4c68ca3e899ac20fd66b5a7900  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc
! 153391ff77f8d9975f17bcd87e8490e0  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc
! e08316fe99c0dfdcdf41149c87d304c1  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc
! ecfb91574951c9b3100964d07a16c85c  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc
! 465a11acabd262325aec49d97cacd4e6  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc
! 42f9124d0e00b81a4cd8d6481411c07f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc
! 9ece7246011e63a7652dcfdc286a3d5f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc
! b9e11e34b871c641ce315c5d12e79e5d  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc
! a7c7d7e188fb4eb6426f4111e28395ec  libstdc++-v3/testsuite/25_algorithms/all_of/1.cc
! 693e04645a7c8a348a19174514e45f27  libstdc++-v3/testsuite/25_algorithms/all_of/check_type.cc
! aeac60428ee364b4c37bd5a1ed1f6dfa  libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
! 1991158143d625f3d83b900231d5772e  libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
! 32a9426a69a8b1996b1f3849f5d1146d  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc
! abde11eb422b2a6e18a604e9988fac8d  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc
! cd8b74ae66b529d0e989f2fdd9c822b5  libstdc++-v3/testsuite/25_algorithms/any_of/1.cc
! 633ae9615e85a930abefdb7a280f18af  libstdc++-v3/testsuite/25_algorithms/any_of/check_type.cc
! f474774f71866a38449e1edc185c502f  libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
! 49a3cf7cdbbe3aa47c6f4123e7d478c7  libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
! 6542a656b1393d97c5fbe5e6876cdb24  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc
! e1d5f171b1080eae737d3f465e65f48d  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc
! f07157aaf3f12bcb54fc6defe2540b2d  libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
! 71f171607fbb9289b4c3a15585c87634  libstdc++-v3/testsuite/25_algorithms/binary_search/2.cc
! daecb52a160bcf4668f0e99e3a8abcf0  libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
! 837b157899d5448ebbc657cfe5f569cd  libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
! 3ef6cbaf43ec9725e034b8721b8bb64a  libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
! f7c2ad4a67f65594b781901a4f594b49  libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
! 44529528c6cc5b69e8dd1113ab3f941a  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
! a6b9edcfee52f4cee35461cde5deaf10  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/pod.cc
! a4ae0664deb08654d0dddd1b1c4999f3  libstdc++-v3/testsuite/25_algorithms/clamp/1.cc
! 1f2e23e34eeba5431d33bd256d069a7d  libstdc++-v3/testsuite/25_algorithms/clamp/2.cc
! 4238c9408146351b089599bcc3973249  libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc
! 81166131e8071cd4fd67d49b96c65ab2  libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
! 74de3c0a9c066a73c6fe40bad314dfe9  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
! 4f2668ea94b7e6aa817a2321394026d1  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
! 2b5f91d3b576b0300d3c13ea95a72893  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 64732d73f3f60fa36be913a0bd97dbc9  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
  30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
! 0195468f52eef0faf3e1931030dc77dc  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
! ab3dc855e72ee51df3a966a7fda86fc5  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
! 03bda0e2563f0a8104209580c5e7cb9a  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
! 76761ae2eaec352d5d7a829bf55cd3ef  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
! 78744f46186a2f2e9fc4d46676024c88  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
! df8e712ba66e994dacb8d4b2168e1fb4  libstdc++-v3/testsuite/25_algorithms/copy/4.cc
! 1249587f1b154bbafac4ca6b5c2df891  libstdc++-v3/testsuite/25_algorithms/copy/58982.cc
! 145bea249440acd1ecc97ca9633bbe2f  libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
! e0bb9d2a4f85a5083878eb89bdc75bc8  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
! 6c2cd84ac65dbb92c6b904bf5b3d5b2f  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
! 2ee2d7f1bb5f9a6151aed01ea410212e  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! 1b14380b28f1a71887f19a18c8c55edf  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
! 4c378c31fd5d274e42e13188fb32c533  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
! 3f99385a318175f92207f5dff76bca47  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
! 149dd85c2d1316706861fdcf06f19e7c  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
! 6087772c0bda62619d0000896f53e6ca  libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
! 4ac2181f4f6f9ef4461f598fb52d6b8c  libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
  a4e3b919e921272cb082f7fa810f39d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc
! 61ac3240bf1ef88377265d7f024ea52f  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc
! 2e96adc5a2711341c4fbeba3e6e62546  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc
! df9316351698d76f7c172938bdcd146a  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/32.cc
! 824635c928ee634cfc991a2d3aada307  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/33.cc
! 84fdcee1abc6c33f6a692eac7057ff67  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/41.cc
! cad2179884cee6dd1b1ea411f53feeae  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/42.cc
! 16001b4497641173ae9218c98b8bcf82  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/43.cc
! ec731f612b5586260d4dde0be50ef5a6  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/1.cc
! 7a8c3e543eb72d9d0d3a9066b6df7a71  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc
! c646ee36f95338b162a2e6abdfc866c7  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/2.cc
! 0d21ea0d8bd79be5386ab15963227e51  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/pod.cc
! 5a8b5b7adbece0c2b99810f5162d86b7  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc
! c4da902c069661f754645bbd4aedc6cf  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc
! 40e51756d88b020f82ac2eb33543b807  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc
! 56adda1d99c7643f73b9c379ea1ac5cd  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
! 1356dd205a48a22b9c21d2662a5d7ca5  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc
! 2b4027067c5599dca84cfca32814fbc4  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc
! e7a8d230db9e3eeaf1f8457e3c126b00  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc
! 7603cfae355de764f346404353886ed9  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc
! 54287a9076fc6b6e80779df5e3d47b6f  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc
! bb0e824b90574124bc4bf32ff7dc510b  libstdc++-v3/testsuite/25_algorithms/copy_backward/108846.cc
! 8794b15398530eeb093fcc3a1b2b7b56  libstdc++-v3/testsuite/25_algorithms/copy_backward/94013.cc
! da190c3ccf24b4679c15f440da042ac0  libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
! 94b622c03e06e7a56869b015cfe5a988  libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
! 9ad74124ba154aa420464d6710966eed  libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
! 836ca76c33d594067fdd877d54f572de  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc
! e4ab8ece25a0a0365db338273680c753  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc
! c31ad1ca1f2210d7e3ab437f1a21e2cd  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc
! bcd751ed00a96b95bc5d87d10b61c395  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
  da1fb78d5a3cd469ddf537052865be96  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc
! 386e06c7aec8b77417e7c3938421214c  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc
! 3dfd18013e3cdad29abbe7e0a965e718  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc
! 4df046a4afbe9dad13f5a429c1f2c860  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc
! 9e6a13193b2ada8f96a6f7e38037de32  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc
! 4acf8394db5ad6f9569550b5fea8c595  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc
! ea5fb89cd1912d7e30d20469109d76fa  libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc
! 0520a651b0f2fea4c52bb3661f4dbe6d  libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
! 6d5e20e550f0f2f8f32cf796786bda9d  libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
! fd8977d407aec340c95be7402460d729  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc
! 58b90edf6ee3a1a07aebef9a44312a66  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc
! c8dca7692585a913ebdcdd04b35881cd  libstdc++-v3/testsuite/25_algorithms/copy_n/1.cc
! 1e20df47bf8b9c2d7325fca62a0f583e  libstdc++-v3/testsuite/25_algorithms/copy_n/108846.cc
! ed94106b5c6e2bf27df6aa23c1940506  libstdc++-v3/testsuite/25_algorithms/copy_n/2.cc
! a4dae0ba6deb335f80a1cd35a0ed1514  libstdc++-v3/testsuite/25_algorithms/copy_n/3.cc
! a65dd1008ce5d076a8d76b4f75efd726  libstdc++-v3/testsuite/25_algorithms/copy_n/4.cc
! 840756c35da0a8370bbe1bae728cf50d  libstdc++-v3/testsuite/25_algorithms/copy_n/5.cc
! 338536e6e14b6413fc0f62beb733fa60  libstdc++-v3/testsuite/25_algorithms/copy_n/50119.cc
! 215bdf90f60187f3f0b7e4dba7164dd5  libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc
! 7a7c836dd318c375dc16eec6352ebaad  libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
! bd2421e2a31d1c949da1e0ffcb5788ad  libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
! 8f49c4cd2ab620f7397f6e0c4688290f  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/1_neg.cc
! d6c97ae0f0349f661205a1c9e2af470b  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/2_neg.cc
! 1d000339254e56e704842c66f4d91873  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc
! 689cd916eda6b7f8a1cfaa87cc544713  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc
! 65c6c2dd6ff61c3c33bbf8b1b971bedb  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc
! 4ea87e91fc501a87a06b7985a744c7f2  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc
! 40baa3c0182380926306311f59b81cff  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc
! 78623d9d4a1ff84a4d70454aadb14243  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc
! d970eaec93fcf43eb17922d1d2834563  libstdc++-v3/testsuite/25_algorithms/copy_n/move_iterators/1.cc
! 6b1f9c77b4a109323b154de24608b4c1  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/2.cc
! fa6448fd6a3d524871ebf9f652b9add7  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/pod.cc
! 02e4d4a31ef676f5351a3615abc377e4  libstdc++-v3/testsuite/25_algorithms/count/1.cc
! b7c70ca963313a1ff13df173e526e62e  libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
! bff91956f5f0b5d2e884bbe139fe1f60  libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
! 2f3885058a0451d1e937e90c007a38f8  libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
! 869c7fbc76f10f8d1547664fa398b43b  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/2.cc
! eeab4fefa7670e11b1d3f7246eae5c55  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/pod.cc
! ce7b7df34bd93c7c03d2b95f0358fd2d  libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
! e5554114137b64b9692275a7ceec8fe3  libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
! 41b07358e8d11152f302ff8fd46a6438  libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
! c78e8b1f17de6ce39eb48bd7a2ac584a  libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
! b8e3befa4526e36bf53dd7b96843b7f4  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
! d4c02a8a86155584f51a6849acaa0f17  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
! 93a2d4ed485bb3d72fdefa800c617a20  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! 1c84ff1c0266730e9e30010b98ff68bc  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
! 6ea5606f98557f685c6ba91ece8c7413  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
! d69cc0a8311180fbedae6d35d801db60  libstdc++-v3/testsuite/25_algorithms/equal/94013.cc
! ee4db103c65057c383ddf64608e71e90  libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
! d163001f32f43b329d8a9ad5b19789e2  libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
! 155d04d022f0ac5d77aec74ef94e7171  libstdc++-v3/testsuite/25_algorithms/equal/check_type2.cc
! 17568091179949a7d62a693ff6b83ac8  libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
! c9f9f956b66b5b49320d1c41b4f1d644  libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
! 9d2438956be242b5058e9511be2f1697  libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
! 7c29ffdc003e15bbfda33f18fe2cbfbc  libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc
! 51b521155b2d201a9ba86a98dbdf20fe  libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc
! 792b18f90815ad5f10ceec908fda00cd  libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc
! b20543160eabbe6fdb520d25c22c258d  libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
! 7648bfc9ed09629ce40be30c6213be0a  libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc
! 0c963fc2bca63d13ac9194401044b06d  libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc
! 84fd8bca1520c14b30d9c7177fffc763  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc
! 4febaff6a741b91f36d936f22323fc50  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/pod.cc
! 62bcfe1aba3bf519115236645976b33d  libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
! f51e7c08d1006ba896a4ee5387a72f6d  libstdc++-v3/testsuite/25_algorithms/equal_range/2.cc
! c491db7181856851de326d6cf6e9b6e1  libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
! 3a7a9dd469d20600667df0da39507500  libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
! 0805b73374a51f73a72f187732604b05  libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
! 644eb49af6af1b1a860ecca155d10b96  libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
! 6a456520ed9e1a637da10624245e9a35  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
! b7a785b357da64d957555816ab0a5e21  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/pod.cc
! b946e0d8c24c5ec549004cb8bddee95f  libstdc++-v3/testsuite/25_algorithms/fill/1.cc
! 4cb888d133dea0a0cd9067137fdbf17e  libstdc++-v3/testsuite/25_algorithms/fill/2.cc
! 0036e77db9916ad579e9b8a5d2c62e4c  libstdc++-v3/testsuite/25_algorithms/fill/3.cc
! bd58325791d7e65f688ba413847fdf6f  libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
! 26a5f1352b1a77495facd940924f8b7e  libstdc++-v3/testsuite/25_algorithms/fill/4.cc
! 89e2e32a39892c120356e14289e1361e  libstdc++-v3/testsuite/25_algorithms/fill/94013.cc
! 8453a8deb85199fdfa307b31f764a155  libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
! 08c120cb2e16b6a7c7d92430ee0e6951  libstdc++-v3/testsuite/25_algorithms/fill/bvector/1.cc
! 3d718a16781b5a3b78987e7728d6138e  libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
! 4748cd5f1edde31b9f12c1fd589a1529  libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
! 12c07b8a4ed27503e429aa09faf9788e  libstdc++-v3/testsuite/25_algorithms/fill/deque_iterators/1.cc
! 616266248f296c754e8b0bf61f651970  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/2.cc
! 4a0b5ae0476c3de4431fcc3bdb98ce81  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/pod.cc
! b49b9d13f1d75d4fec41cb98e82022ad  libstdc++-v3/testsuite/25_algorithms/fill_n/1.cc
! 5deadf747b2aa81647d52c65f8587337  libstdc++-v3/testsuite/25_algorithms/fill_n/2.cc
! 4c793bb2f0d8ee51834a159f3e752b05  libstdc++-v3/testsuite/25_algorithms/fill_n/25306.cc
! e678db24aaa5590e0b079e964112be32  libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
! b77de848e200e4b775a4be5d3040ee5f  libstdc++-v3/testsuite/25_algorithms/fill_n/87982.cc
! f9d40fa328d0eb70203f94d16ec576ef  libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc
! e07edc7c46273d13824fafe346632c1e  libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
! 3a13df2c2970e64ceae8c858b3350a8a  libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
! f2c5f64129f0a941770f71e6219744cc  libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
! bce2265b1185c4352fcc6a184cda0bfe  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc
! 786d4cf13aa20273fcd3a2817cbc5214  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc
! 2d7074d34be495d49e40c1e62329f785  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc
! 2341b04b25a68058298e50f195b83548  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/4_neg.cc
! fb98e32b757db42dd5970a90890472fc  libstdc++-v3/testsuite/25_algorithms/fill_n/dr426.cc
! 84fd8bca1520c14b30d9c7177fffc763  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/2.cc
! 4febaff6a741b91f36d936f22323fc50  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/pod.cc
  6d5ca26b4036cb7671730c8021b8ad10  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/version.cc
! c53cbd3849f3f67bddb618769ad3975c  libstdc++-v3/testsuite/25_algorithms/find/1.cc
! ceebe74a37abba4ed5c98d8c3fa0d419  libstdc++-v3/testsuite/25_algorithms/find/17441.cc
! 4628fe9f4e3121044ece82d584573b99  libstdc++-v3/testsuite/25_algorithms/find/39546.cc
! e81fc1f222ab370ad59cccd25c1e3136  libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
! 9412e8616c998ffba5b55487a44b487d  libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
! 971282aac7b44e6b7d5b8a3c390f22e7  libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
! 98b5cc13331d7562a30a34c0ffbc6bad  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc
! 822748cd682b5fc82e42c25b323515a4  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
! 155e28efe5bf40457fadfd9b6cb9ff6f  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc
! 4685a0a6a6bb32f9afa8143e65bea4ef  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc
! 5b23960b4e7b3c052faace4297cf786f  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/2.cc
! 720db90e945aa3c084642a584c817653  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/pod.cc
! ba745dafcfe3662a8395a7b853deb79e  libstdc++-v3/testsuite/25_algorithms/find/vectorbool.cc
! e70f76f439a61ea29f9d9cfc6d5d7b75  libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
! ba7241c4a9896239f32b583b8ed583a7  libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
! c90a7503b3a6c39dde67eb333475dc97  libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
! e7bcfdd35dfc58ca915a1728707e4c6c  libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
! c1c39dddee70ed78dcc5a41df28effd2  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
! 804aa30cd30c7884b2a006641f9bdb78  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc
! c2f0314f606fc07489dfaafd1415032f  libstdc++-v3/testsuite/25_algorithms/find_end/vectorbool.cc
! d1d4977b07fc255f11c06d35402d50fb  libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
! 6377ab263cd7df43df2c534e2437240c  libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
! 6825f04a613b345fec3e7b8797eee0fb  libstdc++-v3/testsuite/25_algorithms/find_first_of/concept_check_1.cc
! cbe4bc75010d39587ff2c579bfe2bbe0  libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
! fa5c379913d1531f13f78cf607e14a72  libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
! af9c21519db79acf8c960ff70d5d25cc  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
! 807970dee314163b8045981cedf492c9  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc
! 5e3bd4f7b7683318f2e67c6d2f62db6d  libstdc++-v3/testsuite/25_algorithms/find_first_of/vectorbool.cc
! 044b74f0fa0246afe00a02e261aa9a70  libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
! 5189361e0c9bab29d942a6f7d968912f  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
! 216867149161b665feb9a0d7b63c73c9  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
! 112a61642fce49fcbbb15ed50aa69e5d  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
! 0f4a4b0b945fd75ef9c023c825c8188e  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
! 1ab8940f3983149c384f4b157bba1894  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
! ba745dafcfe3662a8395a7b853deb79e  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
! ca4c7b47dcc3c918c91a40b8c7aa2d2f  libstdc++-v3/testsuite/25_algorithms/find_if_not/1.cc
! b20bc9d3fb9181f9fdc2186f85d84c1b  libstdc++-v3/testsuite/25_algorithms/find_if_not/check_type.cc
! a46b35758563fe302e8159e2096010d2  libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
! 549f7d58a932f684c2d9e617fd2fc5f6  libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
! 96f6fbf9f9ed7571944aa8c033efa1f2  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc
! e8b3c81e912d10777dce4b7b087f8606  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc
! a7722208d1e7bb601491d806326bd945  libstdc++-v3/testsuite/25_algorithms/find_if_not/vectorbool.cc
! d517d1f59452266c9eedb67f0a7364d1  libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
  82c17fed89cbde765b0270fb957c019f  libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
  5b5717f5711847b437c3588c70868f12  libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
  6b985533aa79367496bfceb82a572b22  libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
  bc01793a6c62ab08aa86899d2bfc2f93  libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
! 8949b5e0d8f7db05063f670d61cfe622  libstdc++-v3/testsuite/25_algorithms/for_each/1.cc
! 9b8d05f1065b64db61d05b6d5ee14f83  libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
! f058a93701f88fdb6a44719d4199515a  libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
! 9a7687d1deeb0c96458216b98bb1d563  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
! 77a0a7ee6c97c94897d2c6903a524676  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
! 6495751ac82d4130509a05a2c6367491  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
! 67d99f100e4d5b0174e7d22771b28aac  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc
! 73851b9c91cdcdf3b38427edeb091916  libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
! ce08a5b1129d3e5d24ad286b407e42f6  libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
! 3a371ca4967779032fb83ede00d0a7d9  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/2.cc
! 8c7deba529d86cd4ca948e89cd93f801  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/pod.cc
! 6b2e1355e13e827792029973efb8e371  libstdc++-v3/testsuite/25_algorithms/generate_n/1.cc
! 98e73ad02818543dd649f9939aa8c9d1  libstdc++-v3/testsuite/25_algorithms/generate_n/25306.cc
! f01c6fd57f25d9b33286236490776d90  libstdc++-v3/testsuite/25_algorithms/generate_n/87982.cc
! 8e5423f3c9b014c6b503f5740c3cbdfe  libstdc++-v3/testsuite/25_algorithms/generate_n/87982_neg.cc
! 77320a3dc2b5dbcbd8b075d558ce7753  libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
! a2573f1d648d44db649be50d848d866d  libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
! b4975779561a6e03da2b5b935f755c50  libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
! a7291c339193f96801975080f0cbfbf1  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/2.cc
! 1bc1d9dd50a1d7320a074e1cb47e5416  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/pod.cc
! 60f7771d074bda2459fd3055a8032a71  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/algorithm_parallel_mode.cc
! 0fd0f34a913775e45157aa78be969141  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc
! c8017c609bc263bf0d6fdebcb3c7c519  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
! 03abc7e87c22c67586281d2f702dc193  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
! 1347d108841e0529adc28829373a96ba  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed1.cc
! 6c10cebdf3b7ed6c77ef51c4ac3a4ebd  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed2.cc
! 01ff04fb219d28da8d1a5a4b2f3f754b  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
! 4530518163a68ddb66a6e66f08080b8c  libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
! 15f60ee61d6f115150a0553f375c0163  libstdc++-v3/testsuite/25_algorithms/heap/1.cc
! 444729c3f5daef627b457407240638f1  libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
! 8cb7ca19372d560b4c9e274906216df9  libstdc++-v3/testsuite/25_algorithms/heap/moveable.cc
! 803083ebd3539a0c46f5680abae30bba  libstdc++-v3/testsuite/25_algorithms/heap/moveable2.cc
! bdd9c165cbb632f8aad107ef0b821617  libstdc++-v3/testsuite/25_algorithms/heap/vectorbool.cc
! efc480665ab579e8b1274690b49515c0  libstdc++-v3/testsuite/25_algorithms/includes/1.cc
! 75b3f48100fe9615d51e9c5b20ba6f88  libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
! 5b2c53725c920edaf7785ef622f4a9b6  libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
! d605fa3aae3b809e3b6c809d41d11aaa  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
! 1b2668a2c5943075488199ca26e6eb72  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/pod.cc
! 54c181243463ceb209b2ed7a6ce1ee9a  libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
! 90affe5cdaf58dabd27635fcaf9af6f8  libstdc++-v3/testsuite/25_algorithms/inplace_merge/49559.cc
! 0ec27ec0142c0c739f9f7200829362d6  libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
! 89974b36b8c8375197a1277432b641b2  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
! 283a8232f42fde3dc205375c175c71df  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable.cc
! f8cd472d3d8bb84c217dd050934cfc2e  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable2.cc
! 474eee9d65e58120e4dad1a02bad609c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
! da566957bff4a8d05432c1842bb59aad  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/pod.cc
! f67f78358d8ef507eba967232518edb8  libstdc++-v3/testsuite/25_algorithms/iota/1.cc
! 6b1d8360df71039a9a68a1bc548999ae  libstdc++-v3/testsuite/25_algorithms/is_heap/1.cc
! aa28d8ce6336ad538a243bd3dff9798d  libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
! bf38d7ae5e5153e5d0a0b3a648c0b31d  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/2.cc
! 8d2d5d15e377a63eff415e2db7b7f7dd  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/pod.cc
! ebe00c6e53f546ec09fecf3cf445eaa1  libstdc++-v3/testsuite/25_algorithms/is_heap_until/1.cc
! 01999bf35ddd1cea7198f0ab84646fa7  libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
! d005127821f21b9e0b77dae7497580fb  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/2.cc
! 3b8ed6531f86075bc8843d4aa745935b  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/pod.cc
! 5fd4f646e6dac01fc0a4d918d184893c  libstdc++-v3/testsuite/25_algorithms/is_partitioned/1.cc
! 71a657a627c4facf5cee2d51deaf4158  libstdc++-v3/testsuite/25_algorithms/is_partitioned/2.cc
! 99eaa526288f93ae90a2b03570f60d2a  libstdc++-v3/testsuite/25_algorithms/is_partitioned/check_type.cc
! 86eb194c23fd3b8b4bd3d228e4bf011f  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
! 84b27033d91ae077beeb9d5a58f0eeef  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
! b8ba6ec38ad5995655324985bf81dd51  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc
! 98e115d1b6ee1959346d2591a7d3765e  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc
! 9573f0a40f878b77f9e14f1a8232036f  libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc
! e400bd5dde317fbee2301b748cb6c3fc  libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc
! 6447ed0147e5516ba468abadc9162308  libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc
! b2867f034a73e0c142e78966b2b84793  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc
! 2cc8f8150dc7a4cdf61c30e9ef54a093  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc
! 03e4ef02447c271dedcbaaff807c2134  libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
! ebec2e04223322e44c13ab2c6cfe91f4  libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
! a9271d6faa3ba6db94b673fbac8ed3e2  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc
! c15da625d0654c606b1a2a2d433381ba  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc
! 952767710f55bd66b5017ba25b51f243  libstdc++-v3/testsuite/25_algorithms/is_permutation/vectorbool.cc
! 6ff8fe96835ffe880b221ae42d313c93  libstdc++-v3/testsuite/25_algorithms/is_sorted/1.cc
! 2b47149a0cc34fa3c4e809029ccda1c0  libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
! 52e36e6cf8a75708130fdefcad1bda8d  libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
! 02de953a70ae96d5da84be23a57023a4  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/2.cc
! b99732efd78ffde343d0c1fa26e5d205  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/pod.cc
! ca59feba98923c6f486a5de8c0755205  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/1.cc
! f57f292d824816a12627c3e7cca97c21  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
! 4918d4277648854af8769f1dee093096  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
! a64eb90b2543227afc1c6fb188bab77a  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/2.cc
! 7f90ae8cef35c77b7eaab1631ee05630  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/pod.cc
! ec8746bbc9e8c4a9fdd2364f4f7dca87  libstdc++-v3/testsuite/25_algorithms/iter_swap/20577.cc
! 1b24f95169be6ab976e29862e8487700  libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
! d0ca1ae87edd2e00f3b9a2156b15f057  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/2.cc
! c51b77c9f6f8b0a4952b9f4a9ec695ec  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/pod.cc
! a0206f65833b50de2f6572c03f68f8c7  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
! b2ff6b70a1d843ef91b6757443e81467  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc
! bc0cd90b6e4f82ac4e907f559ae75e16  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
! db10c65e75323c867bd84661a5d10ce0  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/94013.cc
! ac23b6f82e6eee6a33232d1eece61090  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
! e2243f5b28d0adc25895806a59f722a6  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
! 3d6823c6c19b1638c3b3f4fd31a9ccbb  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
! 3c02af69486d5932189f78cde7a10b00  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
! 65148eb8fd39cec2e91eaf26f7cbef64  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc
! c88da6bdfc1ce6af23dcc3fb708925fe  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
! 20234fa714bbefcd3b48545d6b1b6f71  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc
! a642f3cd0f2a3dbd8e173772abb2685c  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc
! 1c68bec9e981d8ce35c3a666be7e3935  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
  fda158d264fd98a45243c1135a92fa52  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc
! 8e70064395c37d027fdf2528698d0c18  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
! 01788acc9ec3ab87ad9180ebfeca254c  libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
! 7f77c0aa744bd5fa601271d4744f984a  libstdc++-v3/testsuite/25_algorithms/lower_bound/2.cc
! dead7c5ae9ce90c9a041ab27893f6064  libstdc++-v3/testsuite/25_algorithms/lower_bound/33613.cc
! bcf786c115a99f73cb6a519597c98131  libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
! fd4c6319389b1490af9f9362a4b758e0  libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
! d955201a65785f11dcd0d82b0de27071  libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
! 49431d07a5539657240f0b8adeee397c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
! d49b964715d53d79f46cea5cf5b2276c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
! 9d06ade1f4576d67a58796bd972f0250  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
! 8fe10bb1d8b27afd199ef1fd8952a900  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc
! 31a0a729cb0654e9ed8e30cd4c8b287c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc
! ae16c16dca98db0ae798e50020e9551e  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc
! 2db25131d64efd6c1582797fe24b6545  libstdc++-v3/testsuite/25_algorithms/lower_bound/no_operator_ne.cc
! dc80d0836937f85cefaa7c8f5ed4598d  libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
! 2fda6570a696cee2611daebad1c2c39c  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
! 6bd94f08747f3f3a2f06abf66bf6baca  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/pod.cc
! 99dbda4840f361fdc4f47bfdbe7c827f  libstdc++-v3/testsuite/25_algorithms/make_heap/80064.cc
! a38f00630f15d5345dafbcdf854c5c16  libstdc++-v3/testsuite/25_algorithms/make_heap/complexity.cc
! 082d8295d7ca10f08c539684a81fa93f  libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
! 6e2ca73799d500b23811b8bdf0014257  libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc
! b73f044386e89d162686a3e6f67ef55a  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
! c7d682258e377137d071b322e260ec58  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/pod.cc
! a8f22246754b898b3906084e12a3c3c8  libstdc++-v3/testsuite/25_algorithms/max/1.cc
! 589697bae7d89f6e54aabe23cfa8f713  libstdc++-v3/testsuite/25_algorithms/max/2.cc
! be413438a619e878e5ab707e96d97f62  libstdc++-v3/testsuite/25_algorithms/max/3.cc
! 92529bc08813839035b298ca317853ed  libstdc++-v3/testsuite/25_algorithms/max/37547.cc
! ba108b9d2f16c5360553aca7b21e7071  libstdc++-v3/testsuite/25_algorithms/max/4.cc
! 13039fc2fb347e4095c2d761c1a7f0e4  libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc
! 7f74d7326ae897cad4d64ae80057eea7  libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
! fd3b56c5cdaacb0d9dc42a017fde8378  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
! 487c46528bcdeb2ab0f9c1f6d16ebc69  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/3.cc
! bfaa83201fcc979110c0f4a0a4b7dbf6  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod.cc
! 32201e9641abfe77d95af151a122514a  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod2.cc
! dcc03b0154c579b03903e6650da4788b  libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
! 617a9a9183cc2638b46935f7e4e4815c  libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
! 5bb3e27604ebbe321711b5cb6635337c  libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc
! 1e4315fa4c4787380f4a77a8d4c743b4  libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
! d2e1aeb2ce87eb6b7dbd7d11776c4977  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
! cf5fb94d8919113f2c841c5de86e3ba9  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/pod.cc
! fb865541981c8159b50dc853ccf958da  libstdc++-v3/testsuite/25_algorithms/merge/1.cc
! 4aa71ac3850ca4631b313f2a12483071  libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
! 377f45074dc2493534db472e8e6845d5  libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
! 0f7205af5f83b3139dbd32cb7e72582e  libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
! e26ea1f340e1ac8b0fc15fc4dc6ac191  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
! e5729144574ac3fc4cc88c60c16ce77b  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/pod.cc
! ed2de81334f97473f35df7fdcfbdf1c5  libstdc++-v3/testsuite/25_algorithms/min/1.cc
! 62b44315ae7f984eedd108e4bbc4ac12  libstdc++-v3/testsuite/25_algorithms/min/2.cc
! bcce6963568cfca159b3132b6539fe90  libstdc++-v3/testsuite/25_algorithms/min/3.cc
! 068d6dabed0f3b44631c8b4db328c256  libstdc++-v3/testsuite/25_algorithms/min/37547.cc
! c4f2ae870a28bbe3ee2d21bce42168df  libstdc++-v3/testsuite/25_algorithms/min/4.cc
! 86675c129899387da52ed1f654cc6f17  libstdc++-v3/testsuite/25_algorithms/min/concept_checks.cc
! 6656717faec57c9ef72df787a239daaa  libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
! 06152bb02b57c7d271af40f6bac7698d  libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
! 46aae32b18dd330edbfae26028dbb6dc  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
! ac94231301970450fae0122f2a374b5d  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/3.cc
! 874936d31cce65507813c565b31df795  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod.cc
! cb2cb57c956783b60c20a46c89781ad8  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod2.cc
! 65bd04e3bf02f9cffd3f8449761038a2  libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
! d3de46a2bf8279216e4f2c1db1a27f20  libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
! 324b1d47de0aeacd9781cdeb48bba269  libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc
! ec9f956d8dbd230151c3963659d48352  libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
! bf9cfb76c2df20ea26f3f2e6162e0e4e  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
! eb957ceb85cbac4897656e95d86f4d21  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/pod.cc
! 275c780df3ed6faac4cad83fd9387058  libstdc++-v3/testsuite/25_algorithms/minmax/1.cc
! 87f9fd0b1fb494df5c5c68c87d2a1019  libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
! 1a9a11005a5b0e9bc58099e73336260e  libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
! 87991ec9058e17f07054e20e3158aece  libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc
! fe0d867bf5def3bfc9427f7b2a805520  libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc
! 7c111c088d2751a493cb8f73aeaa5893  libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
! bf6641e80b9c99185229fee49f8862be  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc
! 3dcf1a03a60e7de57cfbe5e4da87761b  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc
! 1755db37bf23701ec071ddef06941cc1  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc
! b9f3885e5aef90e6307893351a241ae1  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod2.cc
! d5665ba9f727ec2993244033afb2482d  libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc
! c8c11061fea23c60d48ad42e87d607f5  libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc
! ee9a710a60d44921212aa6844cb94927  libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc
! d6fc5e798412f9888bf51434773158da  libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
! 3f7a1b2030e4a52d3b44f63da2793fc0  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc
! 9d6b6e351593c7eceee93ad621293fae  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc
! 0e9a69b72d8ccddba7e9eacee051cee9  libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
! f3d2663b867803a156746b030e4d7cae  libstdc++-v3/testsuite/25_algorithms/mismatch/2.cc
! 46b46cb164a139e62f676011f98ebc73  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
! 09492ae45fb261a3c133d1fb7e4f912b  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
! 74ed0e7ac9791393fb8cdb1b0655c73f  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
! e5de5f14ac656061d0e2805cd3d8be9b  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
! 0d714fbdca8b8e38d6eaafd3765ed555  libstdc++-v3/testsuite/25_algorithms/move/1.cc
! 4ae907818586f505a2d4d108b85aff1d  libstdc++-v3/testsuite/25_algorithms/move/108846.cc
! 1f5e6afce460a3baeb8fe184993e3397  libstdc++-v3/testsuite/25_algorithms/move/69478.cc
! 6ccb45bdd208d4e934a8a790526f05d5  libstdc++-v3/testsuite/25_algorithms/move/93872.cc
! b82a4e0e45a6205070dc5ca383d4d8ae  libstdc++-v3/testsuite/25_algorithms/move/94013.cc
! 7f2579177bef0a2707bfc98eb9428235  libstdc++-v3/testsuite/25_algorithms/move/95578.cc
  84aa86eee8e864094db55390b46b1e0a  libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
! 99de82725432ad4d1f2cd138a7d3fb9d  libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
  c41fedc68e3cee79d652221a1c6b2c9a  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc
! eda78e208db932c175f035b9ee0f450c  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc
! 1f90e792b31a14c8ca7e859707c5ea92  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc
! fa391f9e6f9ae935d6ffb94754239c50  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc
! 70298e526cc1759b837585d931c313bc  libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc
! ad56a2e5738139bc09cd67e855d44a07  libstdc++-v3/testsuite/25_algorithms/move_backward/108846.cc
! 6a7652b3b99eaf363c2613556ef2285d  libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc
! 3a4daf23e463a75bc66dafe73b2d44ff  libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
! f814bb749bc12143b72e2a3048c051cf  libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc
! f0286ebd4e50041a3d536c95842b4d64  libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
! 8f0c2df57c69b445c7b2f751324c9c46  libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
  d798b4d62b339492aca582244b60767f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/1.cc
! 36ad2c3f6601afab92e0bc07427d574f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/2.cc
! 445f26c336152931ce15f8a242aaff5c  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/2.cc
! 45366eb84ad24e1c0a6f957070fce22b  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/pod.cc
! 378d69665fafd43a0776db7c1f361233  libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
! c8dbaea9def0cd09398f2c1ef23f3a0f  libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
! 5d2638b44066e4b2e130d0f540867d1c  libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
! 5794dcdbf4055d0da768c1b39a3e3b81  libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
! 1caf7350ed832014e1cf9ed6d6828d6a  libstdc++-v3/testsuite/25_algorithms/next_permutation/moveable.cc
! 75dcef81b515e35aba9975e1c860741c  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
! 856946eda2402c07c886de9c3f8e12df  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/pod.cc
! 77c300f302bd9b3bd53694cc87d29169  libstdc++-v3/testsuite/25_algorithms/none_of/1.cc
! 992ddd092e7304b5f73abb12294622da  libstdc++-v3/testsuite/25_algorithms/none_of/check_type.cc
! b34f78ba3fa496c051f4d2bf09017247  libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
! 84369408136e862abc1fca75a9cfc7d0  libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
! 9c2307e9e170919f023b7aa45d2d09b0  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc
! b1b328362b4bea49e708a8c01a78fd9d  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc
! 20d0cbdc4fa92d79bb7e455d435ca2f7  libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
! a47215c20d413fbad5a881247d4771aa  libstdc++-v3/testsuite/25_algorithms/nth_element/2.cc
! 1fbdef9f386ad5cff37a621d075d69f9  libstdc++-v3/testsuite/25_algorithms/nth_element/3.cc
! 10eeea6beace5ce3a5343e60e6d98e0a  libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
! 895b7b272c3dbbba99d83f209666e21c  libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
! 494020b138acdace7f62bd264a3bf3f7  libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
! 4750764d592c112e202ae4001c0dc210  libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
! f4e4d8402b7ec68555f230fb7d25fd4d  libstdc++-v3/testsuite/25_algorithms/nth_element/moveable.cc
! 51c2f105b8f5db611c015515cc2ff2bd  libstdc++-v3/testsuite/25_algorithms/nth_element/random_test.cc
! a1a4c46a332fc84a1218b614044b1a9b  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
! df60a9634ebb64473d1713b49410ebf9  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/pod.cc
! ca47f9b9b47187121719831941a20a25  libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
! 9f181635098875d7b58f0d77e96be0a1  libstdc++-v3/testsuite/25_algorithms/partial_sort/2.cc
! c1aab6aeb73145e9a6e86d928f189c03  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_compare_by_value.cc
! cd3a5634a707bb60b55931fedbdbdaab  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
! 08e33accf2f1c4eaf845b2615e996b45  libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
! 94d8b53312a11be47e02086f79f1cde1  libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
! 2984362743d9b74970cfa5de42e92433  libstdc++-v3/testsuite/25_algorithms/partial_sort/moveable.cc
! db6467faacdfda9df08b74cb89c29d58  libstdc++-v3/testsuite/25_algorithms/partial_sort/random_test.cc
! 187ef0c5b02aea53403afca3a1425139  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
! 78951da8918813a19c0a0f2cc1901272  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/pod.cc
! 54930b87feb38068ecccb21c807629a5  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
! 95e683f5560954cee38ad7a72bb7ea58  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/2.cc
! bbb843c20bc42661d95826454edf67c3  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
! 7c3ee2ffa86de93d31a31799ea229302  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
! 29879e709a1d6ff8064c80f16f0a0fe6  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
! 94dd0f19f36e740ea7a5f16c28e23344  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc
! ea9e6f6f458ca93c25393f9a6cb26315  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/random_test.cc
! 9ac20d7323d172f02fb22435d6ca35fe  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
! dce91afe67dfc9dad65b8b61feba589d  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/pod.cc
! cd7b6381a374414ea4029250ca63a631  libstdc++-v3/testsuite/25_algorithms/partition/1.cc
! c1bdbcd080ccb913cb49e698cdd120e4  libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
! 7f89747d5f8826d273c089eefb3b05b6  libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
! e8514a78be45766a41a9a78379106552  libstdc++-v3/testsuite/25_algorithms/partition/moveable.cc
! e0537bdde3f3f82ef48e194211672627  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
! b9ba2cf88794b45ffffa1d43c94aee8a  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc
! 5097571b056c526de4fb947065931f49  libstdc++-v3/testsuite/25_algorithms/partition_copy/1.cc
! dd362fefe035e90278e92433bc02b68f  libstdc++-v3/testsuite/25_algorithms/partition_copy/check_type.cc
! 35fbb136b5dbc68269bbdb72726a43b5  libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
! 1ef48b5577618b3c6e7d5b5a53ee8cd7  libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
! 1db1a0b69f348af1d581b25b308aadc1  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc
! 99e01e3f91e2b4f4a07a4c96e9fc9e83  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc
! a600e60b51c7b8e5035e5e18503b3917  libstdc++-v3/testsuite/25_algorithms/partition_point/1.cc
! e10331397f89082f7c8e433ffda892a3  libstdc++-v3/testsuite/25_algorithms/partition_point/check_type.cc
! 53d621d3b16b6a98ef875d3c0226a28f  libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
! 597784404f788aff55d6c3fda12ee473  libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
! 6cb2a8fcadc1cb43a4c71b9e2de26425  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc
! daa397ea456a7a626c8a8fe6c9dfd559  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc
! 5866a6fb69da038efca6472630b6abca  libstdc++-v3/testsuite/25_algorithms/pop_heap/57010.cc
! f94842a9ebf85bcc779732acf1e67659  libstdc++-v3/testsuite/25_algorithms/pop_heap/complexity.cc
! c1f76199cb583749dc3b2d72d4abb471  libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
! 840255ce513af166b846630dd1d3b81f  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty2_neg.cc
! c77b01a79470767d5c9c3fda81d16187  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty_neg.cc
! 0170412508c7b9d2f00f5fa414457f9a  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
! fe20fd6914a28792d9ef2c58c1cab12c  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/pod.cc
! 4ec09966572e89707cb3d1a44493ac81  libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
! 6d8be952bdf36fc83b273932716f54cd  libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
! e2a2856bcc2ba6ca8bd03b96591eceb5  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
! 9c186fef99978131907b015f001698af  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
! e8bc837aad0936d457dd2e1af15bb063  libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc
! dda3d3b0a72a7e8edbfc35b4bb737412  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
! 35b32e0e70089ace45c8b51b4acf6ade  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc
  483f0d2b982ffd637fea37a0569b88bb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc
  ab4ae24cbfbe0eb49c83491ec0a881ef  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc
  29d2598210aed8b859e0500304329f34  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc
--- 134497,138252 ----
  b01430f482e2a4603171e5e1c4a8d3fb  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc
  065522370780e0a3f44efe105f40218e  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc
  d3d5d50fc5b7244958b52fef6db43877  libstdc++-v3/testsuite/20_util/smartptr.adapt/version.cc
! 2fba5c729b60ee90e8a6bc9b6c0f34cb  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
! a52bfedb1a381a0202dbb55c703013a0  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
! 980e926159cebba5708f141afaad365f  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
! 770455453020c0d458916a59bcbdb05c  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/array.cc
! 42055bc3e8554f98c1584cd0a75a0ed7  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/array_neg.cc
! 7c6df795389d4f9adf111d4d879fa257  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
! 0c389150c2f95a24f62d342469a7c67e  libstdc++-v3/testsuite/20_util/specialized_algorithms/feature_test_macro.cc
! e7f673de33f454714074c0cd02339d78  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! cd86fee2a39f32a183ffe460241c5d26  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
! ef6acc638fee193e17ccbdb06ce4dde8  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
! 09c95029dd16edca10e38b6f40f9859b  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
! cc190104693360d7b581aac2061c8a7c  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
! aebefe41dae2854032c8842030e82863  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc
! 027f08249d39e35bcd405e19b88af21e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc
! 5b1248caef9d58abd0461bbc1a7a6d26  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/114817.cc
! eba5759bf4dbe66d12c6dc5a0e89c938  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc
! df29baad3d826ecf0aba2abe9213a8ef  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc
! 8ae5851cab5af4267882a528d155e167  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
! 34243eec14cf67a6af69b909a1d0c76e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc
! b08e4109a3d82dd852731e8f302ee31b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc
! c1d02704b0ca48f960e4264bad4da166  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
! 4444b0810229ae650fb75c54efbe7ad7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/move_iterators/1.cc
! 4c438243f8760e3359efeda90af09349  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc
! 5b1248caef9d58abd0461bbc1a7a6d26  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/114817.cc
! 53be062a824868a5762bb1216ad82066  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/58982.cc
! 2aa46a4daa14b4d9bbc06a909fa0db4a  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc
! e476f8f907b3f12bba040b0981f2fe90  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/move_iterators/1.cc
! 5c529f66ba2dff99128282e6b9d61eca  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
! d3159b84b2e9833a521af84ceffbacfa  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc
! 80b1e241c174cb2c19fe3bad0cdeb746  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
! 131fd8d66b4f4501ac218ad00b557ef8  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
! 0de29c71eed69f5dd9c1663e99323429  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc
! 39a02fadd67d7b20114705bd3af7113d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc
! 1bd6a89394feba8d8f6fff469ba5ea32  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc
! 2e5dfaf792edfc3d054bd2df519fac37  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/58982.cc
! e7d66f65613424b0c5442bcd109b99dc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc
! cdf12de69fb2c16485a545a794e8896f  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
! a39af5e2ccf32afc9e1baf5461eebaf6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc
! 1ae78ec1a5bed66952a2831bc5f81d8b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
! f965d986e70a4a8e4205944d0da1280c  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc
! 05f30829202514c0d7d3ec2402d34f50  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/16505.cc
! 2b59304c6350b44a390c690a0101bdfc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/58982.cc
! 17a5f922c9d3fe8274330a4dbce04729  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc
! 5174ea5b19888da8ed7fa7ea66e4b3e1  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
! 88bcd3ec0af37f8290b1ceb92888bb1c  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/dr1339.cc
! b9c754b752d700e95d0174f85d7a37a4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc
! 6cf4cb93cbec42025a516fa8bc8fc11d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc
! ce078b3c7da72093e79d78462d6765e3  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
! eab81dcb9803ffba589d84a1d9a6a38a  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
! 0139ac3e23d77cfa549f7bdcd27bb8b6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc
! 65ad5bb2124a2dd98e70c1bfadea4655  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc
! 642169fe96ef0ee4cece8dbeb7d42b3f  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
! b31374ff19602d8b2b4487b6165d26b4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
! fffe3da8b9ae0c99352127c5de40b241  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc
! f30bdf792e0f46416fc86011f645fd6f  libstdc++-v3/testsuite/20_util/stdbit/1.cc
! 6bc85c1a8428fb1dca9eb3dd36c44157  libstdc++-v3/testsuite/20_util/stdbit/2_neg.cc
! 18f28f7e4aa0f105ac8f10c288b309ab  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
! ea0313e410a637869d6b0c7a07fb4e19  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
! ec6997cdd9a94dff1e8525a338851cc5  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
! 8299c42ad553b70e0c750e300d1311c4  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
! 94ec8e6ad50a0a31384c834dd2951c91  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
! 906231d8ddbb145f9db4e7faf29d1266  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
! 5012ec2bc8095815785ad949dd32a8f7  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
! 21fd49fba0cf636618f94cc383cf6845  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
! 2a6a31d77778debf3fc91b1cea557b6b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
! a30e63b74d043813ec682fada12affcf  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
! b1affac1600571c2a58ec6515df38a45  libstdc++-v3/testsuite/20_util/system_clock/1.cc
! 8aa7e890744708e387c4df2ef0ccd70e  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
! 873e1494b6fbf3f61d9ef79c899f447a  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
! 5d657fa8f16a4aecffcad1fb7165bb7b  libstdc++-v3/testsuite/20_util/time_point/1.cc
! 452190cbf0a5d9a9249625aba587e1d2  libstdc++-v3/testsuite/20_util/time_point/2.cc
! 9ef7816e1e53c8e013090060485a514b  libstdc++-v3/testsuite/20_util/time_point/3.cc
! 20518a41fbb304957a305508b90a1f90  libstdc++-v3/testsuite/20_util/time_point/4.cc
! e2156f50fa18fc17081f66de992b2abd  libstdc++-v3/testsuite/20_util/time_point/arithmetic/constexpr.cc
! cd83d7ca61bb933d3a088b6a140651a8  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/constexpr.cc
! 396ff9232ba34aeb900ce2d1e50a0f1c  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
! 11bd12afab5817a97e18e1c36ff39e97  libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
! 0808875f1538f62c44288b7805b951ea  libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
! 9637a2f334ae1ef720c7b75b1650e2d4  libstdc++-v3/testsuite/20_util/time_point/nonmember/constexpr.cc
! 011dfcfd0beb9d9c99ebebfe6d851d19  libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
! 32e64552cd5a06e01f53adbe74292059  libstdc++-v3/testsuite/20_util/time_point/requirements/duration_neg.cc
! 6b82824933564d8bae56a2088165ac35  libstdc++-v3/testsuite/20_util/time_point/requirements/explicit_instantiation.cc
! 169abfe6e3b905863971fdbee0310aae  libstdc++-v3/testsuite/20_util/time_point/requirements/noexcept.cc
! 2da65279f8c43b3ff1c4c990c949ffe8  libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
! 3a88129174aad0c60f436099b41d19c4  libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc
! e7b89537b25ed9aebd85fdd51669f896  libstdc++-v3/testsuite/20_util/to_address/1.cc
! eb6a68068f3b91bdc3b3b12362019d13  libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
! bf0714993681b5b628ca37c7b6be9b9b  libstdc++-v3/testsuite/20_util/to_address/debug.cc
  29603a4268440d346dba99e438f03306  libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
! fb363a70cef9d27849a49cc9143b3958  libstdc++-v3/testsuite/20_util/to_chars/1.cc
  cf4f3947ea6ae8a691cad8b85ffb82b7  libstdc++-v3/testsuite/20_util/to_chars/103955.cc
! e320df609ec27370097c72de2e38e4df  libstdc++-v3/testsuite/20_util/to_chars/2.cc
! 8425be08cd843016ebae3d0afa9bd7cb  libstdc++-v3/testsuite/20_util/to_chars/3.cc
! 0e4f386cadbc41ae97a1ebb1fa5aab94  libstdc++-v3/testsuite/20_util/to_chars/4.cc
! 04a8751aa830afddeb43f58afb4d7f04  libstdc++-v3/testsuite/20_util/to_chars/95851.cc
! 208dc51e1dce14d61a91f9ba2a07be9f  libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc
! 0b332b9abd680d65c01a6cdfa73b6f24  libstdc++-v3/testsuite/20_util/to_chars/compare.cc
  23d208ed5b68f4c9b549bc14fe374bd4  libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
  c72624e57107b29f1eb13c16eb2177c2  libstdc++-v3/testsuite/20_util/to_chars/double.cc
  77b9817d9f7a5e3dca39a0a2eea53935  libstdc++-v3/testsuite/20_util/to_chars/float.cc
! 5e85ae728fb5d2737b0b8baeb643d771  libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
! 65a85ef7b576f5f69121192e4996f136  libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
! 6b3f1a287868200a175b57652aa961d6  libstdc++-v3/testsuite/20_util/to_chars/long_double.cc
! eec52b7f8f8dcdf4a1e58613b26ef129  libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc
! 635a84bd3fb85f99fcf7fdc91d6d04a8  libstdc++-v3/testsuite/20_util/to_chars/requirements.cc
  1757dd414b89995c49a363c2491b4a9f  libstdc++-v3/testsuite/20_util/to_chars/result.cc
  d8a79bd3dfe3ece682e5892540d13aab  libstdc++-v3/testsuite/20_util/to_chars/version.cc
! 139b194813e9e7358350bfbccc4b749c  libstdc++-v3/testsuite/20_util/to_underlying/1.cc
! 5dbdb88a0b11921215148caa29489260  libstdc++-v3/testsuite/20_util/to_underlying/version.cc
! 3244a34e0688df6907987292af7f42b2  libstdc++-v3/testsuite/20_util/tuple/116440.C
! 581380ed9600a61398199d96968bff5e  libstdc++-v3/testsuite/20_util/tuple/48476.cc
! 1790ece6b4c2006d1eb305e8257f31db  libstdc++-v3/testsuite/20_util/tuple/51365.cc
! ef088067f875337fab305e0f8ebe4664  libstdc++-v3/testsuite/20_util/tuple/53648.cc
! 8cb1bee53c8495e0ffe7b03b7cfbd3da  libstdc++-v3/testsuite/20_util/tuple/56785.cc
! 78ff37344a4fff58df0a20147553b624  libstdc++-v3/testsuite/20_util/tuple/60497.cc
! 3edbdab8c743ed73d38e0dbb0acbda68  libstdc++-v3/testsuite/20_util/tuple/61947.cc
! 97ba94a66fc914f6132ccd1146346eca  libstdc++-v3/testsuite/20_util/tuple/67844.cc
! 2fa6f98405402e0071f2cd209f9b2e13  libstdc++-v3/testsuite/20_util/tuple/77395.cc
! 0c9a43fbd984ceb6d12f7a00da996bfe  libstdc++-v3/testsuite/20_util/tuple/77802.cc
! 42de0320c4cae3707039069959bd73bd  libstdc++-v3/testsuite/20_util/tuple/78939.cc
! bf7c0c0942f93f7da619cf6c4f8d4b6e  libstdc++-v3/testsuite/20_util/tuple/apply/1.cc
! 62b8377f81e7a485592c29d32a1be2d8  libstdc++-v3/testsuite/20_util/tuple/apply/2.cc
! 8f28717785cfc117c567f54057734704  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/119545.cc
! 874c1d9dc0b5a45f57a62aa23188bbf2  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc
! c8bd1541f87d420dedf7cbbd6d3a0699  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc
! b476188dcd60a78a354f813360a6615e  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc
! 3756e76853159d3fae00bda87775e69e  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc
! 64bce70231548e51e7caa19e616dad12  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constrained.cc
! 8b6e7e54a8d5c4809862baa2a9fd67ed  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc
! 2f727d7f5243551a7b6e61fd4d21951d  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded2.cc
! 0178012fa6183beac13afe4d94d9f9c0  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
  187ef5eb9d79f3cb6e7970796ffabd33  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
  9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
! 9fa494077b0931d8ef4ec90162b9567f  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
! 24632668d622491f2552c805cb356772  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
! bd39d5b823bb9848e5a616ed07d127a6  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
! 3f6f95adb05c2362b5f511591bff0545  libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
! a2347bb9a4a2bccc26d180ccb7aa7887  libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc
! 844ef28b961b08c8e4ef79ec4fb2998e  libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc
! fb2895ca8f2a8b7d3e77f6b580dba1ff  libstdc++-v3/testsuite/20_util/tuple/cons/96592.cc
! 5d6f4ec24eae35d01f7ab3b8fa58dd72  libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc
! 3544d84d0429e9b6fd981f5cd777370c  libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc
! 340758cda93c75b33e3c059c98f0c1b5  libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc
! 68e7fb47b9254ebc3a4bdde49f08ea7d  libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
! 21b5a0702310b304fc7c5a4e6e69cd09  libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
! ad500fcd2ffe736c3f4bcad9244abef3  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc
! 4834880ba49e9f20157ef8215d05c294  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc
! 57f4456bb6d5961c531b51b87dcd7099  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
! 7b44afd3b5933c1a85b142144ca5619b  libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
! 9280f395cde5c94b4d290ef1646e5f1a  libstdc++-v3/testsuite/20_util/tuple/cons/converting.cc
! 84c0761c41c81dface62560684a11683  libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc
! 2efed8d00d5eb655ece510a153682ca8  libstdc++-v3/testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc
! beeea2c315c74d3ee66258fcc6b8dddf  libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc
! d28f8e8a8d177e29c96e35359f0018a1  libstdc++-v3/testsuite/20_util/tuple/cons/nested_tuple_construct.cc
! 2c1d29b7df5803452da08122bf89d7ed  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_move_construct.cc
! 33af9df5077fadd5fd1c1dff3cc934ef  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc
! 1c20c1f54dcf48887a28577f0728801e  libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
! 1eb7db414b9935dc0867f89875287923  libstdc++-v3/testsuite/20_util/tuple/creation_functions/23978.cc
! 78f4227656d070878f799876c8afe68e  libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
! da02e105acaa6171fee26eb57063ff03  libstdc++-v3/testsuite/20_util/tuple/creation_functions/55713.cc
! 54a01c62adcf463e59cf92ad96283e75  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr.cc
! 14af5733105a0a0e8259fc9d53d327d1  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc
! f345bcc4c3fb8b3db7b99a0cefb6a0e1  libstdc++-v3/testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc
! e8c635dc01532d527bb967cfbb080ac2  libstdc++-v3/testsuite/20_util/tuple/creation_functions/make_tuple.cc
! 114cf5237e0b70d564d2bee09f5d5635  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie.cc
! b568587287dac71e6c1a8831971ae842  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
! f43cc05336b875167bdec69f5e428c1c  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tuple_cat.cc
! db7eb287a5e0045f349675e65e3d5983  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_element.cc
! 824f44cdf90a3a1011e3f3fe6e00843e  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size.cc
! c22b5ea71779420d97ca79d2eb1af226  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size_neg.cc
! f25fde8d3328cd18ff9cfb34d726e252  libstdc++-v3/testsuite/20_util/tuple/dangling_ref.cc
! c8f4ff27366ac7d9ff03d3d0c004b58e  libstdc++-v3/testsuite/20_util/tuple/dr2729.cc
  5c4d5220d3eb9f735e8817b5ea562b55  libstdc++-v3/testsuite/20_util/tuple/element_access/101427.cc
! ea626a193cd7bb449bf138394371a456  libstdc++-v3/testsuite/20_util/tuple/element_access/71096.cc
! ee985f91c48f897adf41b921928d75a8  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get.cc
! 45c32974b5b54bb0eb5589a0f9f08ba2  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc
! 793deedfaa0b2b296e71a6625dea97a6  libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
! 64bdf029e5ea5d1148d5e2a89ef20f92  libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc
! d922fe8e79d3e86ac354ab0e0256952c  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
! 8573fa3644dbd176e2bbd582f6b48a47  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
! 0aea233cae271ebb151db0e95fbd33ad  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
! 24cf6fce53b62e7e590414377b03e940  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
! 4acaee05ee09c523e8ae0adfb2f55551  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
  5f205a0115c4b3b8b249446d156f2d7c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/tuple_like.cc
! 8948ebe46bf2bbf96b625680c2b117e7  libstdc++-v3/testsuite/20_util/tuple/moveable.cc
! 9a81f2b1e920f2de84de7860868e2ddc  libstdc++-v3/testsuite/20_util/tuple/moveable2.cc
! 7f17bd0c4700bc431c6a1f134b4d5496  libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc
! 3f5a8f5ba14e72a715b5a8ec07e28adc  libstdc++-v3/testsuite/20_util/tuple/noexcept_swap.cc
  c7189ba7b664b74191b9f4e28b5c9940  libstdc++-v3/testsuite/20_util/tuple/p2165r4.cc
  4400d6ca0a17478edfaf976996b94876  libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
! 3244ebd23c35360f15435952a5d771c3  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
! 52b5b988bb33a29c9b7c1549994ef2b2  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
! 258626493913ff952c40a6cd5db7d5cc  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 38e4d0ea3881b0bf1b486da4ad59f68c  libstdc++-v3/testsuite/20_util/tuple/swap.cc
! cd376663e3dd2f5dbae94a2e6a708738  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
! cf97726b975a9bb1e25d6c354d7a483e  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
! 2f9b4d0fd5e525bdaaeef03d086908f0  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
! e58fcb1714497eed819ca78aceea997b  libstdc++-v3/testsuite/20_util/tuple/tuple_like_ftm.cc
! 7e0303846f1a24ee28d0b99e57df8439  libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
! 8f6ec5e0125185ca4a4531168c90fb74  libstdc++-v3/testsuite/20_util/tuple/tuple_size_v.cc
! baa328940e26661e7c937349f5197d44  libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
! e0f45ebddfa54ef6a9db23604e2715d2  libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
! f6731b479c39112eee979f0b16dc6f33  libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
! 4946a5ffffcce3caf384ba5ac3455657  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc
! ed6e7fa7e5d819fb56e4d8de7d63b20b  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
! 8172d16e8c96173bfc44824a47837b1f  libstdc++-v3/testsuite/20_util/typeindex/hash.cc
! ed80e7241018907033570316da83b4ea  libstdc++-v3/testsuite/20_util/typeindex/hash_code.cc
! 940c5ec8d93a79dddd80112994a1a49b  libstdc++-v3/testsuite/20_util/typeindex/name.cc
! 4a1811e2ccee99efa9f80ef3a0db6f01  libstdc++-v3/testsuite/20_util/underlying_type/requirements/alias_decl.cc
! 7cd18e24109f7aab68913549d4bc2a04  libstdc++-v3/testsuite/20_util/underlying_type/requirements/explicit_instantiation.cc
! 12391e4e34ff2fba9a273950055e2bdb  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-1.cc
! 6bad136a4bc110ff0c5b25523da36692  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
! 7acb8c6fc8343f010b7c67faf29ab2ba  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-3.cc
  270e7f9293f9dc29e06013f0194d2249  libstdc++-v3/testsuite/20_util/unique_ptr/101236.cc
! af540f8775b9d57e5f4bc0bfabad2b04  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
! 70031e9f52dac36ce765ec11cd1d0e81  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! 0c82ca23c7a4db1c7f702dce5cd32095  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! afbe1d426b0fbd851139149bcaed5131  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
! b4856dc51b95d973e8663cab0a9b6ee4  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
  97249a3e9b0a47e876b2dabfd66182d4  libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
! 722a5a527dc8531ee275722d4b0f74a3  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
! 6f4a2ec325e7dccdf3ff713871fc218d  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
! d4e6d0069de82f6da8cf5e81ca44d0a1  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move_array.cc
! ff4145b898ff341991a7c93fb8d19385  libstdc++-v3/testsuite/20_util/unique_ptr/assign/nullptr.cc
! 481d05b06bffe4f1b04d214606709c6a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/42925.cc
! c10cdc2f3d24ab62667d8f768a50a3d2  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare.cc
! c1ebe6d6240bdbc46e33128bc582fe98  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
  159e8f797a9e0b16b7daedccc9cc3e7a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
! f3e69c4239240ac41a05441383a83dcf  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/dr1401.cc
! 81a4fa711c98e36ca6f4571e61cc9bef  libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
! 7c3caba38a62d663207df543e5e0af23  libstdc++-v3/testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc
! 682b5da7b3d356e35c582cd0d2fbfd9b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr.cc
! fae6faa5df4273461432a57a5b8d4e44  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
! 035527dc4d97130b516d1ec362785ccb  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
  b476290d7a7cd33dbf90702dda410872  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
! 965a0413ed6a51ad463126e64e044751  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
! 5e0918455cd4240eeb1aa8ce9be9e11d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! 370c52d18f3908629ad75872735d3c2a  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
! 1af11a4b71af21e5804f9371fd6ee82b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
! 298741bb60bd46b06e3cf9c945a9607d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
! 9cb1fe72972621813070ae7b9a1ce636  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
! 392f8f8ffc0be5bae58d3c826803b71a  libstdc++-v3/testsuite/20_util/unique_ptr/cons/lwg2905.cc
! c8c1cc9cc3e82b639fdaffa6b594551e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
! 1ba62375f140f0f0fd46cb8dab574892  libstdc++-v3/testsuite/20_util/unique_ptr/cons/nullptr.cc
! 0c339dc9db56b59ade242c6f2d835093  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer.cc
! 6cf90e89a10f2f32f3bf24bb3679a605  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array.cc
! 14751371677e4932956f9ec77f65d490  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
! a63404731dd1f6a2e1e611bdb5d3c85a  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter.cc
! 5c535e0500f87724c6568911fa928dbc  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc
! a4344d749cfe74a0cf8b876a8d24f991  libstdc++-v3/testsuite/20_util/unique_ptr/creation/116529.cc
! 29952f9316f9d470b6c2da5f1e6f86de  libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
! 492306a095c830b2715335c95b99196b  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc
! fdd319cee9dd138acf3cf448e35fc418  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc
  582ddb2143f3eb8853e9a8c84aa99a59  libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
! a714d08b8efdc7c6e6d71480c16855b9  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
! 8e32df7ea80361dbf8d339991b266adf  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
! 8485a5bd6435abd4fbc323559a072868  libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc
! ef65bec2444d541585216b68adc91778  libstdc++-v3/testsuite/20_util/unique_ptr/dr2228.cc
! e2b40f273adc9c3cdf931a505b25a3e3  libstdc++-v3/testsuite/20_util/unique_ptr/dr2899.cc
! 04541b03b17a088d0bfa6eb90236818e  libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc
! 2b0d87c0c7e173ac8c0df6ea23e682dd  libstdc++-v3/testsuite/20_util/unique_ptr/hash/90388.cc
! 32a8c58b151792df33e381dad8ea0387  libstdc++-v3/testsuite/20_util/unique_ptr/hash/abi.cc
! 7cc86eac7379c689c0ac47faf59dee7f  libstdc++-v3/testsuite/20_util/unique_ptr/hash/types.cc
! 865ecdda52bcc46067ae1155b4fc802d  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
! a5234a3d63fc5d686aba74601e09973e  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
! 62c1848b5463ae0b073981b774f268a9  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc
! 4798d0d581df52f369c2dc5cf9d59e5a  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/incomplete.cc
! 510983eb8be27c4a3b6b648adcff39b0  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
! 026661b8faf78e6906692e1bded52109  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc
! 3e4c1cee407ec4365f7d79af0bfcb5f5  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons.cc
! 5c46080ac91dfa19382ff1483e97179b  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons_array.cc
  9e8690fc2de02bbc9080d442b7647cb8  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
! f7ee1bc74a50145c0a42b3eb2f58b253  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
! 1de6dc64a6ce089ab563a3d28c4a4438  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
  b752f343c2b8407affea1923b7fdbc6b  libstdc++-v3/testsuite/20_util/unreachable/1.cc
  f47805823c079035961580cdb36d1e63  libstdc++-v3/testsuite/20_util/unreachable/version.cc
! 9b3f6aa068382ae25823e682508b634b  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! be03f2147068320a3cb055580ad9aad1  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
! 2f889433d26aa8da343a019a1ba43254  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
! 616b5058652a2e8504198513ece46160  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
! 5641efec4e3185fb471a4a9a376012ed  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
! 4c28ae61c281367dd41268ae3d5ec6a4  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc
! 60e883be9a7cb8601d71a9396b899cba  libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
! 9b4e4fba9b5d718dde983ef27c6008b5  libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
! a839051aa5a0d3f4ab5220600126a3c0  libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
! e56057cc4833de4d2e7610a57f651cdc  libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc
! bcc0b78881415e4b80fa60aaf324bc26  libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
! f25e87cf7376d68e10d2e9d09ea0c052  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
! ac2ad158dbb3a4bf2dcc82121bc70509  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
! ec598b52e3fe60934b0d58efe12c8aa9  libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc
  cebc96b73422fa65854df12a733a6bd4  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
  cf03e866a34ae9811ca29a9fdf5472f3  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
! c0d0894e01701f6aa6203635b796c2da  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
! 64646f27c3a32bd7021f0d5993aa74d2  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
! 4c0e77cfff1d533bd0da1bcfe491cf40  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
! 75138b81b5f7ab087c74c92ab6b1ab4a  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
  696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
! c2e30b2ec16642f486b80b9842fc91fd  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! 7a02efd3caf611de361e638cf60014f7  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  909e769606f79e2311fe65f425279584  libstdc++-v3/testsuite/20_util/variant/80165.cc
! 7e5da65bff44ca0a6b8805cd0e06fd94  libstdc++-v3/testsuite/20_util/variant/85183.cc
! becaf5bd5913b3b0b3dcd36c9153e633  libstdc++-v3/testsuite/20_util/variant/86874.cc
! a084c83ce7846b185f9f540c49cb60f6  libstdc++-v3/testsuite/20_util/variant/87431.cc
! bce3a4580ff37d79d98e71266087eb6c  libstdc++-v3/testsuite/20_util/variant/87619.cc
! 2e13e6354cedec70f64a2ef435650983  libstdc++-v3/testsuite/20_util/variant/91807.cc
! 181a72d05a435779f40ed14fb4820675  libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
! 28fd4c72a6ef9871a51383855db7d4bd  libstdc++-v3/testsuite/20_util/variant/95915.cc
! 2f9a0e0955b9a4162468e53d1072e9d6  libstdc++-v3/testsuite/20_util/variant/any.cc
! d26bd75bbd8dc15059edfed867c29f06  libstdc++-v3/testsuite/20_util/variant/compile.cc
  e917c228c28a3a18beec5914b0f19474  libstdc++-v3/testsuite/20_util/variant/constexpr.cc
! aca7fd5a5c0afed062d12c96f859019b  libstdc++-v3/testsuite/20_util/variant/deduction.cc
  1fc2162ff0864215d7d9683e80eb2be2  libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
! 8f533dbbd716d58c270e44701e17905c  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
! 85c2e3d2bc801c5f72546665d984c317  libstdc++-v3/testsuite/20_util/variant/hash.cc
! bbb776a24ac89aacdb5d1e03cb0bc4b2  libstdc++-v3/testsuite/20_util/variant/hash_abi.cc
! a0f81b9e90c32be5828df9ed6eb74312  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
! 04e80f49e9982a3130fab3556d7da366  libstdc++-v3/testsuite/20_util/variant/relops/115145.cc
! 4aa80f324f37a7fa511a23cf185dd295  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
! 13da7125a59fe16f76ad83be751211c7  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
! 11295d708b0b34d0e481261450b7c640  libstdc++-v3/testsuite/20_util/variant/relops/constrained.cc
! 42dd952bd177e86fe26e8cf83e7a8513  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
! 569408f6d5bf9ab3ed633fdd7024c149  libstdc++-v3/testsuite/20_util/variant/run.cc
! 064e84504a9fc3d50cfd8e95617bd6e1  libstdc++-v3/testsuite/20_util/variant/types_neg.cc
  b482e6581851c371b03755ce99bd22c7  libstdc++-v3/testsuite/20_util/variant/version.cc
! e412b98c1d840f8bb2292ef008408afe  libstdc++-v3/testsuite/20_util/variant/visit.cc
  17098b13758ee1e3f169c2ee138604aa  libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc
! 26d4f9b70627db347289a0f52da37eb4  libstdc++-v3/testsuite/20_util/variant/visit_member.cc
! fde3a218834ce1b1a4b072bd69bbbae6  libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
! 9b465bdbf51b41f13e8aa3b237e9b69c  libstdc++-v3/testsuite/20_util/variant/visit_r.cc
! 0a5e540ab0ae2cb91b591965ebe9049b  libstdc++-v3/testsuite/20_util/void_t/1.cc
  2a3f4c8a412a038d7981789c996eea5c  libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
! 128cbb0a6befbb9adfa57fef3521eff6  libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
! 5baf4f61b49c798ee9fe342eb68f7969  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
! ee84c9c566056e33e070142ac43e90f8  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
! a1d1d379d8c0c213b9058d05c9184434  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
  6b897d033cb55ff130e351833c656265  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
! 6fdd90819e8fbbf7973c9baf79dd26b3  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
! 81caf89f5d2508b4ffd2bbeeb2fcefa5  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
! 5932ad1030d5abe0125342125560f5b2  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/1.cc
! 1dab19854741ecc627d9ec99f37870cf  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
! a610c0786f4a061921c8ff0f20be9f5d  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
! 9ea3217672cce0af4c51c9cbae0c9b97  libstdc++-v3/testsuite/21_strings/basic_string/40160.cc
! 17727b52f1493a7fd26daa722762424b  libstdc++-v3/testsuite/21_strings/basic_string/56166.cc
! b42536c6351f3e7df21b20378e5fd8ae  libstdc++-v3/testsuite/21_strings/basic_string/79162.cc
! 6248db4fb7f9c3f83628abf0ac9a21f7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/116641.cc
! 126596981820fa77bbd3c89f315fe5f7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc
! 84af31f5f38d525b53dcc36f9da26f09  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc
! f766f15fbad69979c3035de50af6d295  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
! 1e95aac2c987bc603c87f5e860298bb8  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc
! a0080527016d8be86c454cc88bc35679  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc
! b7d3f4532ff7571c75cb4dde11b746ec  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc
! 0040f8f057122446644ad9771dc142b0  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
! a0ac7c8aa5200e8653d125b267b4b733  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc
! 6884083e4f985770bb8c5c6677825fe1  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc
! 33625b8d4889cae48ce1cd70f69ccb66  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc
! dd0cc831545523ce9860c634709599c8  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc
! ae5ec874e91374e463976c9e8a20c83c  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc
! 21c99458382f331cbe1781c4c01ef81d  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc
! f1483cae8f9139d0ab4e0cc7083772b7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc
! 1f4f9d258f914b15ac2501cc56486dc1  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc
! c3e94d86a774c5291e8711d4f542849d  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
! 9f516294adb09ccd1d3aa6fcbd8ab1a8  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc
! 2e4ac324e1fb0f786fbb0b527a3142e0  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc
! 6fcdb595ba21cbb7a50d49c5da600e74  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc
! 5eacef2e554892d1ea3acbe2362e5386  libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
! 4fae4a2d440c211ab6c9cde33b492085  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
! 6c803a34b146b9931cb7119b6da86420  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
! 690ae3d856282ccf745fcb34899a0645  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/2.cc
  e5836542231b7ec7b12a157aefb23656  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
  92fd664564ddcbc3da3f7299d2f4b92f  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc
! edadd72b3aeb7948290dd138dcab55a8  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc
! df99e66a5d1754e453f1bbaaefc1e45d  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
! b240d27685ba7abe8ced04a6f6e1ea9d  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
! ccdc80db5ccc0e65ed69e933ffafe017  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc
! 39e0aa51312d6ea0e9e22c6b251d1e71  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc
! 137f7c6d797769f46d64da2125223e09  libstdc++-v3/testsuite/21_strings/basic_string/cons/113841.cc
! 9b32c9a50ca9378a6df7f4f8bb4e97ad  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc
  122070b73ab61f4cd7f3bf7dca05ad4c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc
  3cee8884d5dd774cb7646b925906f230  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
! 66d11428163702812f3795476c591957  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/119748.cc
! edda6bc69b4d84fa6991ca886991de10  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc
! 466dac6aaf39ab912a0c8f263ad80471  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc
! cb36151d04382cafc8f990bb61c3c7c3  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc
! b4fdf5595aa1548441614267aa28208c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
! 0b06b20f716653584ed816a7b38c345d  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/5.cc
! d69bdcd95ba46e37adc8649a897fe868  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/6.cc
! ede45d0d1a496985cb1a649185abeae8  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/64657.cc
! 43d74c9c01d966ace80ba9a44b254f8b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/65085.cc
! a81f43fb850420cb513a2f3e6470fbeb  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/69092.cc
! 7eb5392169abb5715f66c7b3f8378c70  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/7.cc
! b3a622775e4fd7f9c3e1f7cd8acc46b2  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/79162.cc
! 03d16cfc66eea5dc1487fdb363f4c2ef  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc
! 0135333f8ed4f81bdcd11f6a4726fc59  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
! e5c11278d6a14585613bb27d8aefecf2  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
  cb9791fc25754e1c39b72501940f5e6e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
! 191c466a55b131d84825603f843a0bf7  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! f4cd79a32c4d00bd9817a25cef9fe909  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 064d2197a77f1b4f10a81f50a5d015aa  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! 06d189ccbcf2ebd058fb28b271e80dd5  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
! 35c34576a3006668440e983476df9da4  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  ca9ae628b034a9ec99cd3e60951cfecc  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/nullptr.cc
! 3830f2c4dcb298975cf3a65181dc6757  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
! f9a4ecd017de67a4a931d6102f497ce7  libstdc++-v3/testsuite/21_strings/basic_string/cons/from_range.cc
! 9b0b0442eb5e35b3881502ae2dee1e00  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
! a038ee254fac0e0abf9184282e6605c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/119748.cc
! 6b59fcbfe23000c829fa14a5b8aa9cb6  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/2.cc
! 3246cac4457d357650acb9a90225ad88  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/3.cc
! c014991058459ac25a9abb8531011525  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/4.cc
! f77ad7cabfe89b052f0ad271c4f58fec  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
! eab164e5dffe5514404b4885607a1b89  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/5.cc
! cb3f2ec815eda1223a75d5092f0d808a  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/6.cc
! 24d4f3418330009b95ae9f434127be58  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/7.cc
! b3a622775e4fd7f9c3e1f7cd8acc46b2  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/79162.cc
! 67ff6193f105b7e56fcf44237eaf44fc  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc
! b4e9d181e96c134f25fb3ea9d5fd0abf  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
! ad3d7d226b3c9e92b5db4375670d4157  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
  e316abf8f7c3a7d57083ebd0294d09c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
! 9d733fbc59ab8032cd5c13006dbebb76  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! e1d95040e3c50434754746ef8e4b6fc9  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! 65005be0311d71ba6772e4a3ef5e8bda  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! d56afb8d06bb54218e0683888f68a428  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
! 0eda743aa3444e01f4130959a85e31b0  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
! 14e27121f556cca9db978f55cb66c589  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
! 956ddeb63679dd02e25f20cdf17ed198  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
! c7a5fef76ea9d1bb801e475cd5a54049  libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
! 885a054398288075d9a1460eb3a7915d  libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
! 9e72c52240d4716e52e55241566cc2d1  libstdc++-v3/testsuite/21_strings/basic_string/dr2268.cc
! 8efdaf45248181f7ba8586a7d63682c9  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/1.cc
! 65dc1495e1e393db37ddd1a457a71d73  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/2.cc
! ee496d579bfb4d4c9ce0a7caa5ec09c5  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
! 06bfee604a7a783ec8ae982936bc6f6e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/3.cc
! 4f2700aff398647c76b4e70cfdd82837  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/4.cc
! 36f40fd0676b7db9e75c845011080fc6  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/58163.cc
! 56d0758b3ef608021cded22677f48c1a  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc
! 27edf482b3e037a160f9bbaeafa64e44  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/front_back.cc
! 39303d50b3501ec2cd0653b9fb0d8088  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/1.cc
! 9817b3a7e1e014d2b48cdf2b15989b37  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/2.cc
! 0114792239884d6a3255f2122f732ff1  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
! e278a5a50a9cf5d2704dec20f0437a8e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/3.cc
! 1272ece6663d8522627cbdfff23a4b85  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc
! 2ea7d8914ee6f44629365c094c8e7ad5  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc
! 52218ba5bc3899841d4afee16e3bfdd7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc
! f2bdb51ebcac70dd61d0dc848c669698  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/front_back.cc
! 6b84162a1070bf1443440d9a70ef4c64  libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
! 948475993fa798b39b7d0c0997b5ad0e  libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
! 2f2db3945841af2be6feba590b907aa6  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash.cc
! b462d850ed0ed14427b9bf151ee67daa  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
! b97de28c9c5ed02e7c1805a6e18c31cb  libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
! ea8f13ea1970e56461ba313c264527a4  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/1.cc
! 0c36ed2b5a18c91e26e8cb7d9d8fab83  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/10.cc
! af97120ed0c4454dfc23f7f3ce239ae9  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/11.cc
! 72e0d65e178d21e15bbd2840ed25f6db  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/12.cc
! c0c56f957f0afb9be872140c26e07aba  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
! 2cf3523f87785efd1c9f333a85a37b61  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/28277.cc
! 5ff39c9f0b9e2f21de38ff79ef245020  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/4.cc
! 0295e08c3f5e407298847cfbcb2ce74b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/5.cc
! 3a5c942cdd4b655e52aac7b72b23c0ef  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/6.cc
! 0a0d3000056e6a686b8edfcd3d4e1beb  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/7.cc
! 1f3c99c3282ffe2fd23f691e446bae74  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/8.cc
! e151c41e0c91b0373cfee920178d6ca2  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/9.cc
! 34af4dbdd27319cf7c4db3fbd1042699  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-in.cc
! f5231533796b500ece355f9d719b2382  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-out.cc
! 3fb92761b2e582a3088198e2bdde9543  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc
! 86c8e84f588b9bea0089089a10669dfb  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc
! 2d1f0d51a56bc83f485c181af82ac747  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc
! 63d92056e61a9f33da86334e5530f4ff  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc
! 0b66132816c9612b3c533af5f8abcea2  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
! f542fd166bdeab27050119abc2d534f9  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/28277.cc
! a701116a6072ea40877687b487dda904  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc
! 1da12c1c698bf7ac70bcef97bcbd1d03  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc
! fdef6239107be7f74ffee393aea4bb3f  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc
! 7f6c55df8c174b030ef8cff87ab4a808  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
! 2dd4d09349f2855c375def00105fbf49  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
! d165f72371063739f334affb3ca21c91  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
  5b256fb360837928c3a4fae2af348978  libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
! a050c30d79190a363e572d88ef530fbc  libstdc++-v3/testsuite/21_strings/basic_string/literals/types-char8_t.cc
! 26d8a4b5c52c340c35740c3d67a8b881  libstdc++-v3/testsuite/21_strings/basic_string/literals/types.cc
! 1c458fffcb8167a355a76cbfd0e55334  libstdc++-v3/testsuite/21_strings/basic_string/literals/values-char8_t.cc
! fed3452b9fd695c2fcacf169f97f7fbc  libstdc++-v3/testsuite/21_strings/basic_string/literals/values.cc
! 21fd19580e8a6912e0d8c76f04cf5107  libstdc++-v3/testsuite/21_strings/basic_string/lwg2758.cc
! 6a7fb5daaab33be9e1e454e0efe5a4f0  libstdc++-v3/testsuite/21_strings/basic_string/lwg2946.cc
! bbf91f21f3febff3e3db164981ba2a41  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/64422.cc
! 4e4cc95e48d2bd94ad3c1a4c07001500  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/append_range.cc
! eed5a5683962fbcb4b5b280bc1c336a5  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/1.cc
! 5e4d455700e44db51617c187a038d68b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc
! f2236ef5628630aad4fd1655bbddb0d0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc
! 51125305375337d87a907122510de8e4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc
! ce7c816e1a9a7fb3459333bb0684e346  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc
! de61dd744862e54686ec6688e808fd28  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc
! fed9da6c780fcdc59bd5781a606e6421  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc
! b6e8f45c09ff882a388994cc33c71c7c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc
! 1bc674adbe130b9899a4e0ad5eeaf445  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc
! b4b1bb82a2d753bdac19752570cc5095  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/1.cc
! ab2a8a66cc0816b289c0a17b601a4352  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/2.cc
! 6f5dabf607ff6c861ef3e1c198a2993f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
! 4985ed66ac9e03db938b4fa9761194dd  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
! de131d45771933b3292b7b07235684af  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 83b01fb88790bc9153134345a82e0269  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
! 1330b0157459b6b90100909c7b5e91d9  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
! d01b3118a374bc24b579baa219e63ef2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
! f492f24ebac145a485825aaa941a1de3  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
! a8d042449d2c057959b1a48ed4143ec6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
! 2b3b043f46f599ea3a470c0f40d2684e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
! cf584fe6fc59dafefaa8b549ec289950  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 967cdc37611abd421f7070a5bf3cdb6e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
! 1774cd537a10a84248e66f6e30c66d0b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
! 350e6b545eb748328851ed144822d942  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
  6d18cfe84438ca7628eded6d32714553  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
! b5440b36ca04a745bfb69aecfee0f46d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
! 077b7632d260b62f5e1fc9228457c85a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
! 1c7c0fb681b78944772899f010f9223c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc
! 3a9d0880cc6073c2bf9eaf974890307d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
! fb7988c8a3ebdedf57c7dfd30fca0d4f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc
! c64cf801b1910a6ed890da26a4377e52  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc
! 55ef493bebf3bf1720aa45f0c27340e2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc
! 304c98866d7f4a3467a76efe0aac8c55  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc
! 3e88d675d807aebdb5ff729c0977d59d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc
! 6ff5e369f1d15db41d97b21be3073f37  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char.cc
! 91a974cfbb151f9b29aad18f25175d44  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc
! 59681216161c5cb0e456abcecd261ab1  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc
! 7a9bbb5e104cf76a94cbfb5d317ff24f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/2.cc
! a4111fb145e96a8b80299e0e9834161b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/3.cc
! ef9978cee4400b81ac57a10cf690d4a7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/4.cc
! 140972c10d31106908a1272141cc227f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/5.cc
! 17d10d7b47c3f6fe0545251cdd36011c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/6.cc
! 17e6c7430bc930a5e8dee4672f219657  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/7.cc
! 94707a49de6995544f18f62eb7001456  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc
! 57858f24253f9e4f40cc8a5859938ea0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc
! 427dbe3bf18378981dc0b85b01dff1b1  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc
! faff29c1520d6755a9fa9e565a6ffad6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc
! fb8e13d91d381d3c8291d9b24340a2e3  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc
! db6d0eb5e7f585877361f6ef87401fc0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc
! 61c1ee5c1fa7957e4a5296a03bf76c32  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc
! 4a18d316d058d4076e2e87fd4b65d1bc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc
  2f6ea0520f0d0f2bd01b39b319539932  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
  5bee8e4869f348d2c36517bf3af378f2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
! 407018d0644344a57607359bc5ebb684  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
! 55866146245c65ac793d7a32ce34935c  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc
! ebde987c113a55b32ea322fba95ec3f2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
! de68a2633d601fbfd9f5501202a433c5  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
! 6b6735c2885477b5563b6455ce0a063c  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
! c46e9466d31d10951084cd80a85a6df2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
! 595411d04f967e3ea5a3b14b25374b70  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc
! 8bfb66475758e82e18afb690a98e3300  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
! 7a0e335930b576532d833cc34357e350  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
! 89c59f7c29485df591ce3b0741ac26c2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
! c42d1d871553450a1513e54826bc8660  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc
  a18fb67b3cd283797c0270b2dffcd9fd  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc
! 946598561a0910962b4172b37f6ed585  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc
  a6b6a9a6139a9783749ab68361f3c902  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc
! 2796e960412dc435b6a6d9aa69058935  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
! f4e026c2e8260e3ce2e84d6cfc5d870d  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
! 4e73eba81dcd7c87a8cb88baaaf7da5b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
! 66885b13aa81d44b0981ded4c005357e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
! 6b5187adc96c256e5a4f7a0cacd84b1d  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
! e00866609954d9d4e09b9ee43d56039a  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
! c74617b7cb5947f79c93794519e33de6  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
! 054abb6ea1e57a4cb2c18e900ffe8fb4  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
! dd27d37e228d376460f2fda9aee33443  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
! 3b08188db997d606499bfea78a86a3d7  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
  fecb5f76794dcb7b16941f3d83836e9e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc
! 07566e373883a954b71c561432ec0678  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
! f07b308f074673d92ba8c20c68c108e8  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
! b04b8c40e5387e81144707d8be2bf9c6  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
! b224efd629e9e7ebc8872ba94d3cd565  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
! d075354ce70a50537b2c548670651dd6  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
! 2f1a71838c6fedcdc0645a37a63a203b  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
! e0c2465a8e27301df596bd29409f3212  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
  ae24673f13edfb3394be4338e100ab0d  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
! f0f83c4c8b88ad239bfe6f0205e41b3f  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
  da3f700a53d22cd029a604673e059e11  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char.cc
  9ccbc06738d22d9f941b8f2b369c7915  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/2.cc
  fabf5d00ed38687c6c74b03d67132fac  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/86169.cc
  ca74682c72cb547cf309e380caad822d  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t.cc
  ebeb1bb794a93823182dc633b65b1594  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc
! b7c679776252ea5feec3a60f14fded17  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
  5c15e736abafad8f6ffb265e32985635  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
! 1d67958583b6d49d3d180b2bae85b09d  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
! 8a04abfc4078b7cbf743d06bcb668cc0  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc
! 42ad228d84d874d9e512e67be2d22db0  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc
! ab3fea983877ecfa87b693d86b66aa1e  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc
! 8cbec8178804a15360a14b49d2763eca  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc
! 231eeca3ebfcc0c8b16eb23fe1f9e213  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/5.cc
! 4f4ab8fffb25a9305dabb471de3ad167  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/6.cc
! 116e8ade233b9600ea6a979c75b244df  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc
! 898d6d641e9afc3a9524f1f5167e35c2  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc
! 8c4954614375e41d2941877ea3cbe50c  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc
! 1410ab557c21bebffa04a6375df43af9  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc
! e3fb7a91a03216ea7690d73eb61bbaf3  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc
! b2575e6fa743a98d95fb07ccac748cef  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc
! dc1c1db83f03b1deac1f8846e2247647  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc
! 7d9b26e00c925ca540e750d78b973aa2  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc
! 740b37b3644171da5a2b4910a59faacd  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc
! 8108b1b4bb14c7b117298cc6db709928  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc
! d6b3d4e660573483c36092be01724e0e  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc
! 88d595b01887d0767714897d8c9ca3ee  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc
! ef0364633c86640e5ff7ca7c76f7d0f2  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
  140fe654a2aa08440fc10cc943a5996a  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
! f3c2b089b141a94126fb6dbb390027f3  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
! 010bcbdab00c47a37cae9ec80d9eacce  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char.cc
! cfb72fc0a67dd58ed4c53ef461c07665  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t.cc
! 73d19a5eb809ae8bae88a6856044a654  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/1.cc
! b8480a59a371a757d933a921b06f1c59  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/2.cc
! 8e789079477fc6af07ffaadfbf980a8c  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/3.cc
! afd430fb7789932f01fc8c3d42c7bac4  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/4.cc
! 6439a627ee00e72d9de7b70027af94ea  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/5.cc
! 94f4399e94f9c7eff96f7ce3a46f1f1d  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
! 8348179ad2d61a15b535f94fba531b9f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
! 547fe25f025290675909c08ab8d1d860  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/op_plus_fspath_neg.cc
! cb40c48881654d9b24f2e279997ea0e6  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/op_plus_string_view.cc
! 0283a0404b7a4cd61ac177986b517208  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/op_plus_string_view_compat.cc
! 62d174f8ad36d8eedee1d55d7b052615  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/1.cc
! d4af631ef57f854c83be9437684a471f  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/2.cc
! e05151c4781c010e03580e5c06c30bd1  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/3.cc
! 0f9b583c90fa0185ce52de13bef01559  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/4.cc
! 08f677c3dad3777a5e4d7edfe550a249  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/5.cc
! ef8303505e4843baec43817889b6fffc  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
! 16fb027abce494cd5d272cf8d4f635e5  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
! c192cbb7e9301640f3165ad0f89ab701  libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
! fb37b2cd53c5cd61a9c9e125db098f17  libstdc++-v3/testsuite/21_strings/basic_string/pthread33394.cc
! 76bcdeb1b925396a53a18fe0cb8224ab  libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
! e0f93b4c2a51c524fe37df54c1114385  libstdc++-v3/testsuite/21_strings/basic_string/range_access/char.cc
! f9344b3478fab788179c8986be16b485  libstdc++-v3/testsuite/21_strings/basic_string/range_access/wchar_t.cc
! d4cc7eb987a86c9a718b1b47103535a4  libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
! ac31e3871d37079c6350bf290b7ac018  libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc
! 0bcc966818b2cfe1a8835fcf59601d3a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
! d78c527c7a52067582b3edcdb45fcd8f  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
! 991a10f45357ef1cdb06239b51bba191  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
! 3d6f5228721f7e02b7d6acf3f0e97bea  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc
! 41e0937cb5e39a8430fb184032db8375  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc
! d66170ac2eb986f8693f9b6eabc3b4eb  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc
! 89c091869f03eb7433a95234c54f9270  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc
! b284d344cbc060c516e9cdf312996a20  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
! 82fe355d9a5922f31219aa7727609973  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc
! 0960daac80daa5706a0549b6722fcca1  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc
! 512af37c443c05629f6f3cc8b9c281f9  libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc
! eeb90e8a9f53c1e7dd6dd978119278e5  libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc
! e5bb1ab6da60553c63d2c6ec2b090db4  libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc
! 2f30a884f7249981599fc3c27de77f0e  libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
  c3282f46cf0aa8f94d0ccd179b173e9e  libstdc++-v3/testsuite/21_strings/basic_string/version.cc
! 1e124b20edbe468e3882300580064cf4  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc
! 49a2eaa6b59344eff141cffc05fc755c  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc
! b623c5a2bd7ca1521d8306f80f757457  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc
! 6688f11acac0e9d7bf0c9915c1bd5774  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc
! 13f9a6a5bb9cd08250177b2821331d6a  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
! 0c79d442083d283ba4bc7e97cd37a390  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
! b393a08595034b6c759533737d820d38  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! f9b77b99b431e8b353286ac373c2cda1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
! 11e9100119163067dc4f338665bb0ecb  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
! f204ce8ee583e4fea132d25c478bd797  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
! 32b99857af656a7b0168f0409d2b2ca5  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
! 3bba2575d63cd34e01bb5e4b541e460b  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! e1884821e1ef53730eddc8a3ba15de37  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
! 8860c0b5d15b218efeb040153d05cb36  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
! 20426b78ea90808ebfb1a5ea62694a25  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
! b20bbdda2099da22bbc57b8044ed4675  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
! 7a4d53807e0d8ed7303b9405d1779402  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc
! 31fd7c3305e0e358e01f9ce14b3b7076  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc
! dda413b6be9f966ad640013df827311f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/empty.cc
! 337fca46d0102ea13aa391b77e110840  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back.cc
! bf841e43d426dec6555119ee0fa15ef8  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc
! fc48af57232edad5bb4a4e2a1f3eafcd  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc
! 97561b0709b0e5c8b82d7fa527a425d9  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc
! 7cd6ddda70e6393d267744633cae6353  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc
! afb0c1631443910c49d6c5ee92a3c14e  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc
! db4a99dd8e2899106cfc82ef62165707  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc
! 22524681fab21f4bf1007bcf3c08312c  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc
! 59d0ca0e3e39f360ab1bc3d58c7a5906  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc
! 8c187e1e08fa51683ee7b424c1f0b99a  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc
! 204ec738e4e28aaee0d75b12f77dfc46  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc
! c261ea82da9f8c4889a13d90f53578e7  libstdc++-v3/testsuite/21_strings/basic_string_view/include.cc
! 116900743a7d9931fa0708dd44c5f0c7  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/94051.cc
! a29891a9a5ecdd1d00be08eb3122aec1  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/1.cc
! be71f38b187830bc56ecaf0e6986d9f9  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/2.cc
! 11b407e70bbd9e89aa4b662f3ff65ceb  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/3.cc
! 1bc8e2427284753cf2b82ae06450e7a7  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
! 5e88cb9ef79e11185207f193003d3f9e  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc
! 94c31cadcc97b330ee786572a60b36c2  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc
! 8b318a6cfc67e5103f6193908340f6dc  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc
! f0b6f46d49b8032f32178a3332db53e2  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types-char8_t.cc
! cc15e0be7099c77d745d2342bfb97d30  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types.cc
! fe177141d7d3a6999979dd2ad6d56636  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc
! 7e80ad9fc5e4872737acb6e01bbc4e9f  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc
! fbca9b1aa81d2c73d8fd29c48eb77574  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc
  817336bed4f7cd14c0d5efe6c2c0e601  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc
! 95fcebbab9d997d058779c385a37737d  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc
! 60f8a25a2605eca4437ebb862bbe6651  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc
  573b0debbcc6c79e199fdf28a9980e05  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc
! 87479534a99f85a5b5fb8239383c40a0  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc
! c31e2179458fb9b8ca1fbc432e5783a9  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char.cc
! 705a4a61a9e1ec817ffd12e5f405b36c  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc
! 478cd57fc2ea02e329e814926e8e59c3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/1.cc
! 91230b434edd98957c375e5b125249a8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc
! d5900548c411987378300be4031ade31  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/2.cc
! f1fc2557534f58c2fb14a7b875d04cb4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc
! a1dc01bada85721c965d240bb93b86ce  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc
! 810bb4a2491a92d6d3f169780474f694  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc
! 48ea35f83648f4f53727af65fb6fa2cd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc
! 998c0ec729e2536977c63b29532b5ce5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc
! 91685d132b8b03b78618b450f92942f6  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
! bfb8a9c22c850459d42ecdfc8ca21859  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
  01c66f10bb2c3e980577715e74100c1e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
! a5aafeadf902936c973380ed74830e3f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
! f4223a13c49b0b7dc6151ab7a8fe6a19  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
! a534752dbd31e3b2e1b9f37d169291de  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! 6dfeddd9ebaac4a17b6d76748b15e7d0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
! ec27ae538cce97ce024497db46f25b35  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
! eeb85d546b9c0755192c98aa60aa1ea8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
! e39f1416c9f1e3a9a8c8b4c1fd7d381b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
  49684812d0e6e538d983a81cc02ea19b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/char.cc
  3aca8654c80e2a1ffcc111b84f41adec  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc
! e48cfb2655db1aac59304461e151e301  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
  2c07e8f3750aea9490378f7c14e98383  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
! 6349fd4db0e0f9cdfe730fa32ed804ba  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
! 62a6906b97535eb8f8bd9d1e5291e5f4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/1.cc
! e91c27d59e9802146a89c0f3ac5ce51d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/2.cc
! f4f906086db9f26d5c971780eb8c90f1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/3.cc
! f6253c58c6fc3aecef25787f7d5207d3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/4.cc
! 7d46908cbd8486540664fe8550e10fe2  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc
! 1707a7a8e6c6d15e460fa7b5f86a10f5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc
! 5cca8572641722aa4d53e93bce6a9f91  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc
! 851641d7a4aea3b8c6813711a92f2849  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc
! 58620b0813305239cc4dc9bc972ebdbe  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc
! eb8dc3ffec24ea78ff71ef31833e9f5b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc
! 80f5f562ca7250ff04a491ec68cd81c5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc
! d22d0ec394ba18fce333022c633045f0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc
! 7bafa1904375ece25d5b4488018b91a7  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc
! 53c1fb272724510ab409e0aa96a4130c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc
! 26cff461e8ab02337d3eedaefabec1b9  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc
! ae192824312e844036889137c44ab9e9  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc
! 6baf65c0e83e9137015f297076d9af20  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
  2e92d8dc3a6c35a45ee8e2b150d825e8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
! 8f15973a2954494aba254e9653c0b3da  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
! 6237a26c8221bda814c0c3ef19384d29  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc
! e557e0d70933bc2f2fb4a97e09efdb9c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char.cc
! bf123e81bccba53462b213568147a51f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc
! e58553019cfab05fe7a91edee41f4f43  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc
! 0c1879fadc9358e6aab8cec41f4b5b51  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc
! 51010bcb6dceed494feeb3b4ffb0a7f7  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
! 51f9169ffbabd846354f81d26640f49e  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
! b713b15e01373ddf48e5be9b9d535dce  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
! eb0dfdcd7a412e0b64b83b8bcb6defdb  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
! 4070b854910bcfd2400cc4d7f00337b2  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
! 96c28868da8ebb9889e954920aac38ab  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
! 727c11170eeb474095e5236ed69199c9  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char.cc
! d019011c89e78615df3dae677061315c  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t.cc
! 603dc8c7ff396408371ef95441d1ad6a  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
! 2c600952fd8609751f4757c66ecc3a34  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc
! 0ddf5c71041ef87daf2a677429b70409  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc
! 78c10ece0df866e9717656cb1422d3a5  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc
! 3b3ca070270d8cc72da6e1ce8c2d9bf0  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc
! eaabee042cab52adf4766722786e5450  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc
! 4a6d26cb0f15f3836f887feb8d80ca28  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc
! 7b924be68143fbfaf3a6e8eefa399550  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc
  58947d8735c23b82574427ce2851e965  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc
! 27e7dd70463884842b29143b8cec1f63  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc
  e79ffa6e2df79e903d738baa8867e3d8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/version.cc
! e51909feea4e61b6b03c647bb405cc63  libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc
! bfd62f5b5d5b6a9ccb5af055a6b29440  libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc
! 14d8a70627ee7d943b1da2e48a38eda9  libstdc++-v3/testsuite/21_strings/c_strings/char/1.cc
! 1389f19c4686e36b3cf67243199b90fb  libstdc++-v3/testsuite/21_strings/c_strings/char/2.cc
! 7f0e2642d714105f85259c6374f129f2  libstdc++-v3/testsuite/21_strings/c_strings/char/3_neg.cc
! b38eae43fb7a6520d37cfc3d8144bbff  libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc
! d2db3a86a4fe94b8cf1457784be3e42f  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/1.cc
! 6c12e6c336f342a94e6f7cd27de99d02  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/2.cc
! 33a37051bb0f8c73504d28c758f69447  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
! e676c7bd414e1f3dbe38796c092835cb  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/3_neg.cc
  82d6b4f00580779800e341ec6c9ffaea  libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc
! 0969a42b032c0b29516d64a92340590b  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/1.cc
! 55bf113073d58693063e1063318efec8  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/57704.cc
! 54235ddac9021bca87d50b17e6eb23f4  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/65049.cc
! 695d527d6141f1a720e1ac793631948c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/99181.cc
! 84fe818847920e1bbd31bd4709d47cde  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
! 2f6e043cae40822b020c12c45743227d  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/65049.cc
! 1163ca31b8d0fd34bed5cbbb3b31315f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/eof.cc
! 2669aba417a5c9fc9a5bd1637030bf82  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/typedefs.cc
! d11446ca9d13cb68c74b07c3b9e1b648  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/65049.cc
! e418a35f1ff22b3c3fac2b5ac219e008  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/typedefs.cc
! 708775dd1d206500e15c62e740151cf5  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc
! 938d2bb48076f412fa926fb17610158b  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc
! ce42501040457e70fe154b4fe97bbf41  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
! cc0016a33933d7274804271f7f66cce7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc
! 3f8bcdfbfd43d4ca6d333f1fba927981  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
! 147ae61db3989ef0418e38620c8b4ce4  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc
! 65d69af69eed543cfb6dc7e528225468  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc
! f3bf0731b39df1dc9e1b42dd223d3682  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc
! e8329234e52d2592218214dcff28808b  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc
! 4f8d2a2e0a89560194dfb4842c9f1a91  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc
! 09c353c86e0ed88160a944b82b4a78a7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc
! 55b0de03feb542214138ae026aa61ade  libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc
  819f386019c36ff55ef68149f90bbfdf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc
! 0d8c76a55d125d77feec488cac9cba9c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
! 1aa797b0432d7953974b0021275a9cae  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc
! d7d138555ed6530aaac10478f38a4acf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
! 9420bdbd78e9f4fd3645ee8ba531911b  libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
! 900ef0008383e91432cf838ec4fbf90b  libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
! 9198d096bc84d3abfca162ff79a57d2f  libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
! 8555e593af1e9e647640562ad30fea12  libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
! 4a1e4911efe1ee7b2615b7b5acad5af7  libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
! 8555e593af1e9e647640562ad30fea12  libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
! c74a827c144ff0e444812aa72303f939  libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
  7c0cc35cae3c984b824f4f9da4550e7e  libstdc++-v3/testsuite/21_strings/headers/cstring/version.cc
  515e21fc42c1a4dd194f9115ed799701  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
  bf5af2094c9ef74f8a08d7d077043065  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc
! a63e744bb25633b97c719ade67981712  libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
! 797c58750c518e9c8aac53c7d95baf37  libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
! 79dfcb7c4b0ff2b11b71aa35ce353b15  libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
! 9312fbe4ac360d3ed021f94522bd463d  libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
! d0e090da092533566290e13ff98af883  libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
! 8bc54e64212e1d2f97757d4f7ae210ce  libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
! 069ecf27a525022179f0bec9dda7e63e  libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
! 8b956731d0c09cd7b664316c6b81504c  libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
! b43ce7dad1ff6e09ded593b76b896641  libstdc++-v3/testsuite/21_strings/headers/string/types_std_c++0x.cc
! 01a4570fc4371bc8227fc5ae7ddd6f7f  libstdc++-v3/testsuite/21_strings/headers/string/version.cc
! 925dd7b1ab6adf3286d88b3b24ef050f  libstdc++-v3/testsuite/22_locale/classification/isblank.cc
! ce5fae4fd322f4bcb9a2473ecd5d2236  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc
! a288b215175a8c78d9a52692cfbb378c  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc
! f913af60f906818ac1fb7aded93cf0dc  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc
! 0426701df3c7370d9917fdcfd1d1d01e  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc
! 60fffe7b85650133419d3033f53c7be4  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc
! c0929bfa000bf6168e57abf09fc8f173  libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
! 41719be117731bd0b12da6c6575cde36  libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
! 00a7fc34643c8109f9f323ab064df56d  libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
! e4563dc09556b73954728ea49140381b  libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
! 684e91fdaa2fc79d43815ba9c4879311  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc
! 7e492e411b0b63ed955e75a1c28f7e42  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h
! 546928487762347b6a224f63a4f040b3  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc
! 85b164af969eb7630df7152d70ed3791  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc
! 62ff6c541da58c0aa624d2218b6ca337  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
! 0cd0b8a1523138202a46b40ecee60ad0  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc
! 34fe1bda31ea5e29f59222bdc2c879c1  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/80041.cc
! 1d01f029f4bb8ec602e91cbb21127116  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/members.cc
! e39609e2132d844edef957df6fabcb1a  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc
! 3d820dedfbce89b1bfd5171f6f26f196  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc
! b0df4936fd56163629c199321d11917e  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
! 795f4746541e90bf49961a9fa33aca13  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
! 853e0ba9554c08fc558fff97a8b0b54a  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/members.cc
! 835393034340aa483152206e0b705ac6  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc
! 02757a99085724dddc7c20b208697a54  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
! a25d851f98736cfd4d52ea213d57f7d4  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc
! 9632906934b17881669d1e799b11e0dd  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc
! 11692a3fcffaad62b84bf35c2a934d6c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc
! d2f32214880f39b69a38e63c929fab3f  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc
! de1b14ef0eeec73e0244777b5d265353  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc
! f91e548f4ffac89190f2727e8e33b729  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/1.cc
! ba3ac0be78a24eefc26f8510595dde84  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc
! bbc9c94c547e0fbf6d01f0fb1455ccae  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc
! ac40a99c92011012067022744cfbf6b6  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/4.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc
! 617eaecdc27a8f3856b1985fd3532a42  libstdc++-v3/testsuite/22_locale/codecvt/in/char/1.cc
! 1d9e47cad8d277161961c1e14ab19679  libstdc++-v3/testsuite/22_locale/codecvt/in/char/37475.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc
! ceef16e832d59563a382ef9614f0b2ce  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/1.cc
! 8bd7fa70bf090ff29621b63a56f90fc6  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc
! 57a94257f34736f552293daad2e34b5b  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc
! 1ee73a35d306029a4d74b51cbd89d43b  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/37475.cc
! 865dd84c865db7f58a1305471c4ff2bd  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/4.cc
! c7927c6972e40fa376c31be5471389da  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/5.cc
! 92c42fbe5abb93ed50a0943fe03454dc  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/6.cc
! 3b4d9d46c1c71d5a82542c7709ffd9b0  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/7.cc
! 63c35c12e783aa04bc2d95d030596219  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/8.cc
! d00d327616eb8430e6d7dd5264ad8491  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/9.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc
! 566f767e71e9e6f8b9895d88d7864d96  libstdc++-v3/testsuite/22_locale/codecvt/length/char/1.cc
! 115ecbd01947ee2fd459e35ab31f3dfa  libstdc++-v3/testsuite/22_locale/codecvt/length/char/2.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc
! 514eb8fc70d2979b3209cc5c7021ff1f  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/1.cc
! d1962df70f021ebd3de8499b1b388c4e  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/105857.cc
! d62eef584080c918ebf3d8ceadb85d24  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc
! 43129bab18a4d5398e57df6cd7eef365  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc
! 716ce4bb027530ab4c8a5d1c09d85494  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/4.cc
! 7d0e6800b62a0f17c5f766bfd8671611  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/5.cc
! bedc722d2730f43139dca45930fd00d2  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/6.cc
! 3e17480895c0599cd19d9d1059736951  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/7.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc
! 17ee4e786ac09be36123e73072e84dc9  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc
! 4d0a44a6dad6a2bb288273793f9f9930  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/1.cc
! fa170165101bf75a34f43b1c1128b33e  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc
! 4fb311807b92133e04b8a59d73734674  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc
! fb4b07cc32688a78c6102a0e1fb5d140  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/4.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc
! 633f20e30ec95856028d5553aace672f  libstdc++-v3/testsuite/22_locale/codecvt/out/char/1.cc
! 48cebea552743e08d96381726bac93c5  libstdc++-v3/testsuite/22_locale/codecvt/out/char/37475.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc
! 8b5e1f6d8889693814aff0da6b89081c  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/1.cc
! 4b597c07d19b961b291983cf9a9e4096  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc
! bb45826ca6cbc898a0c4cae4d0191741  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc
! 81eff80da4f24f4c59b798dd7afd8384  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/37475.cc
! d2a74b4d76e8257026e0bc2394ef3e29  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/4.cc
! 49397feadec0966eb8749d39d5ccda9b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/5.cc
! 368e493c38ee77a2edee5ba8c991b737  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/6.cc
! 55dc2e7f39bb9005404a0d2877b099a4  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc
! 55f07cb594cb07455db07a108312e21f  libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
! 26cf64e401a1ced55541f2f5ee843583  libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
! c5c4e5feba489fbc699814f6fba507d1  libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
! 58c967b899e9048dda68d5a2cd49b1ae  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc
! 0f9c35010b2553d85c478a0b7fb4c93d  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/1.cc
! 2df5b975ce183c06f71ad532106b585c  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc
! a8d6d766fe0d4e32331496844e3c06b9  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc
! ca48deb7eed48ceec7411f0c9cdb6867  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/4.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc
! bc7e342b418a93b55db89c011936ad78  libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
! 3cd5a2048ce0953ce51235196a3790a9  libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
! 64dba3b1822621084abd7eaf00718824  libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
! 9d00cdb373107af282c606eeb2eb03bc  libstdc++-v3/testsuite/22_locale/codecvt_byname/50714.cc
! e71af6902aa9df57c8326babf124facf  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
! 7c1c4841dbdc1f5f260bc1bb4526c356  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
! d85efc4e510062eb6668d551b4e5ba30  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
! 54003f85cf589d165125992d440074bd  libstdc++-v3/testsuite/22_locale/collate/compare/char/1.cc
! ad5fe406273b2148ceb0d2ce55e55c16  libstdc++-v3/testsuite/22_locale/collate/compare/char/2.cc
! 8b469fe35dcc6ad5b839734bfe278bb2  libstdc++-v3/testsuite/22_locale/collate/compare/char/3.cc
! 123a9f51b8db37100f09438ff994a014  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_env.cc
! 76b8f22728fce11a481a9cfdad91a381  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc
! ec5f52237f9ed569639f24254413a357  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/1.cc
! c34c5c09cdc6516a72d3a8cf2bac0bb4  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
! 85c3859eb0cb391dfd6fd3a840ebce4b  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/3.cc
! 10077b491019c0822968b89e28c9b2e7  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
! 2a3fa38cb45e8e1b1fa3eca5d4d9a936  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
! 301859947fced8c0c7cb3d3b4ed5ae7b  libstdc++-v3/testsuite/22_locale/collate/hash/char/1.cc
! 572257225c793cd9cfed3c9821a02fe1  libstdc++-v3/testsuite/22_locale/collate/hash/char/2.cc
! a4330818e244151c15922db5b2a0f37b  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_env.cc
! 2245d8aa08ccc392970ed781159fc58b  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc
! 0f5c4e20d19df0082e4be3221294e2d2  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/1.cc
! b4211969d7836679b65d84a3017c5528  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
! 10077b491019c0822968b89e28c9b2e7  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
! 2a3fa38cb45e8e1b1fa3eca5d4d9a936  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
! fc65af09239ec10f7fed242e0c1d6256  libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
! beef8c3dc2f5d9acf19a00732d2df21e  libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
! 8492c41a52324f3a922c9b9d1d4b5f2e  libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
! f05cfe9cda1ab00bbc0275dcf81d340b  libstdc++-v3/testsuite/22_locale/collate/transform/char/2.cc
! 22d687e0c4b5887738f87f21e3ed2275  libstdc++-v3/testsuite/22_locale/collate/transform/char/28277.cc
! a3e2ecfcb1a2712320b1148ba68c1f08  libstdc++-v3/testsuite/22_locale/collate/transform/char/3.cc
! 7b8c23301de7f52998211ad525b16b33  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_env.cc
! f8a1f15d19ab78de494bd6934589bb1d  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc
! 1e0492b4e02313a17241cca232c1491f  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
! 543c05fac2737e7ccd06105e16dc229b  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/28277.cc
! d8d09bd7a03d4a67dbfe12de656e9a85  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/3.cc
! 2ff41d64d236ad03afc176bdd2a68c4b  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
! 4d97a30597aa1184d4839048859d5d15  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
! a77dd5c2a4c16239b41c38abb08dad99  libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
! 3f62305c52cf09cdd55455d1aa41b9c0  libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
! 7527c57868267b9436f3c02959c7bdfd  libstdc++-v3/testsuite/22_locale/collate_byname/named_equivalence.cc
! e365d2a100260eb1bcc65de2a1bbcd22  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
! 94bc22fc2db0de5c5f11e9c4549489de  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
! eba491dc0d126a284c9a09cc0174d8b3  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
! 735c26ebcd576f5dcd437ee98412200f  libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc
! cfba5769d14cfa861465ec276268044d  libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc
! c1df90af06c50971419828f4d79e21bf  libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc
! 014d3014bbb20b166bfb3425f162fae2  libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc
! 1d8eee150b9c349007bdc4409a2fb581  libstdc++-v3/testsuite/22_locale/conversions/string/1.cc
! 7eb0d9749ef2e4c19102b67f9b7996f6  libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
! 46351ebde0894e9eaeb02b12c8e432e7  libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
! a1eb6dcdd59f98dd6fc254ea18665591  libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
! 9a19f373ee2baaaa5d0a9536bb07fbaf  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs-2.cc
! adf370f4948872e98b8927853c53659e  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs.cc
! 3f21e8b5274eebd561bc5dd6e0fc5752  libstdc++-v3/testsuite/22_locale/ctype/2.cc
! 0d6851db1e40f965a52bc52ecfe7d53e  libstdc++-v3/testsuite/22_locale/ctype/cons/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc
! f5915c2f0e0906a110b6deb11376d7d2  libstdc++-v3/testsuite/22_locale/ctype/dr695.cc
! c5e78a89b086b6d479c8e37042093a50  libstdc++-v3/testsuite/22_locale/ctype/is/char/1.cc
! 1944c4c28817937efc202776da6d2164  libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
! 85f9a4548286afb93cf0e6a5eadd383e  libstdc++-v3/testsuite/22_locale/ctype/is/char/3.cc
! ca3af8ce14be2cd4a1d38e1a3cc3dae9  libstdc++-v3/testsuite/22_locale/ctype/is/char/9858.cc
! de519fb6540866a2536faef4778bb080  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_env.cc
! 7ea4f954ac2976a416889c53337d3324  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc
! 8c39c749c84822c1bdb70f3fa06f62c0  libstdc++-v3/testsuite/22_locale/ctype/is/string/89728_neg.cc
! 8e1376ee8979285cad19ec1b6466fa5a  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/1.cc
! 80097cf53f8809e45165bfaf6fbc8df4  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/11740.cc
! c559ad5ca80c18b149616bf8d6863a2d  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
! 8770b5aee8196f06c036970745c0ffa7  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc
! 962cf5a7079c06f642cebbfcb4d76f9c  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc
! 36a76b1f339ab9a1d31a40680f6fbf60  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc
! c7492b695e3e2ea29aef20aa0a076f6a  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc
! 9dee5989d889c6a71aff6598b59bf9e1  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc
! 8770b5aee8196f06c036970745c0ffa7  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc
! e41f81a754a815bac81847cea66f2cea  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc
! ae04b93cdbeecbc953d8e92dbb46ca65  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/1.cc
! 766bebc2b08f9af4381d7fd778980524  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/2.cc
! 67db9ff35d8c88f6c5ecc219344e6f1f  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc
! 8770b5aee8196f06c036970745c0ffa7  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc
! e41f81a754a815bac81847cea66f2cea  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc
! 69663145b8851f398598ce399fd4f5c6  libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
! b3fc51442969a2c96a7ce1b083a2fdab  libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
! c20a26658af44fb17b9a86641aaecb7f  libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
! 7a95fa150278df7ff0e4e51cd65d766a  libstdc++-v3/testsuite/22_locale/ctype/scan/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc
! 9ea95e698d7d12059fdd9f860ff291e3  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc
! 4da1004f958293605359b7cf10450dad  libstdc++-v3/testsuite/22_locale/ctype/to/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc
! 73624d54b9933f1b0cabf0bfd098a60c  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc
! 5d37258bc36e0534565010a292ef10cc  libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc
! 6e049c75bb684aee0edcad6e5cbd6c27  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/1.cc
! 32874f33bdac065f674ef86bb02a1e71  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc
! 65acaa5e747ea5e1bf837a6b8c519c00  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc
! dc5b815d0517797146657fdb5cf56192  libstdc++-v3/testsuite/22_locale/ctype_base/11844.cc
! 309130a768393a7bbd5487c28e067e3f  libstdc++-v3/testsuite/22_locale/ctype_base/53678.cc
! 8c29762cfafeda13328d052f7a4cd3f7  libstdc++-v3/testsuite/22_locale/ctype_base/blank.cc
! 0d455c4973b9a6e544415fa38ef7149f  libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
! a42eab84193763a0f1f8e9d7ba65bf79  libstdc++-v3/testsuite/22_locale/ctype_byname/1.cc
! 7c3475bfefd6502891e6142a8f3fb40b  libstdc++-v3/testsuite/22_locale/ctype_byname/2.cc
! 7bdc5a2e1625a340ab608ae8dab1ec71  libstdc++-v3/testsuite/22_locale/facet/1.cc
! a5684832c3c7310c1e3a7c7a3c9b4291  libstdc++-v3/testsuite/22_locale/facet/2.cc
! 1196510f5667dab2d5336b68e6959e4b  libstdc++-v3/testsuite/22_locale/facet/25421.cc
! dd069c88fc7966ca63dd705576b64115  libstdc++-v3/testsuite/22_locale/global_templates/1.cc
! fe1331f9e6cf2e431c0f44e79c8e1d55  libstdc++-v3/testsuite/22_locale/global_templates/standard_facet_hierarchies.cc
! bf59854bfa089e89e598bed52db773bd  libstdc++-v3/testsuite/22_locale/global_templates/user_facet_hierarchies.cc
! e5f9b7755609fd1a7dcdd85329b3a48d  libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
! c427a040151c7f3b70dd445bcf129c38  libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
! 7c99bbe5b16f9e95089df18ea9611b20  libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
! eac65029a4a22ba422404b091aa07790  libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
! 4755c334b3b2ae7d2a3e3059fc9c5288  libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
! e653eb9302731d5b559f5401d05b35fd  libstdc++-v3/testsuite/22_locale/locale/13630.cc
! 073a426efe8cfdbdfdc9678c08a8a457  libstdc++-v3/testsuite/22_locale/locale/cons/1.cc
! fbf21e4aad58437e4f16105f27d5cc2a  libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc
! ca374353f0f6c5e528b6aec4de6c1f60  libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
! 1c0cb95f089375d9484032a5c0cf8679  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
! 00b2ca4c3ab00a65e81197909bb1455f  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
! bd4b10c98ac64778ff4c367651ff7084  libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
! 3e483883b0c559fb76bf82e3827614d6  libstdc++-v3/testsuite/22_locale/locale/cons/29217.cc
! 12219f7da4af3f449e8ee551b6ff6e62  libstdc++-v3/testsuite/22_locale/locale/cons/38365.cc
! b8cc5db2406570888be14cf28519ea88  libstdc++-v3/testsuite/22_locale/locale/cons/38368.cc
! c9092a47695d5c746a06fe08435937ee  libstdc++-v3/testsuite/22_locale/locale/cons/4.cc
! 67ef5a5807a550cb909fcc9b93f5c72e  libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc
! 3751ae85645b65907304c67db6ba32c4  libstdc++-v3/testsuite/22_locale/locale/cons/5.cc
! 35502d21251032c1dfd8474eb4a4bfa0  libstdc++-v3/testsuite/22_locale/locale/cons/6.cc
! a341d73a368cf1027f7f22ea5895b749  libstdc++-v3/testsuite/22_locale/locale/cons/7.cc
! 7b3a728716d2c605f61404cf73feaa2f  libstdc++-v3/testsuite/22_locale/locale/cons/7222-c.cc
! c9cf6e8c1d0d172be36f0055cbf69698  libstdc++-v3/testsuite/22_locale/locale/cons/7222-env.cc
! 6afd1ce3a2b1e4413b289c9d88a489ce  libstdc++-v3/testsuite/22_locale/locale/cons/8.cc
! 76cf78f8dc2430c26f70da5dbdb00d13  libstdc++-v3/testsuite/22_locale/locale/cons/names.cc
! 86e2eeb5f8c3e27e2752ca82ef403897  libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
  5b40dd8bfef055000483f3fc3a4b621e  libstdc++-v3/testsuite/22_locale/locale/encoding.cc
! 0c521d89acd2081680a97f31cd1efb70  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc
! a3a45b2be5bc6625f85a93566153b470  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/14071.cc
! c2371f0f9c3eb5ff44e3384d3002af90  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc
! 9e708269e6303fc9c8b445790faa8890  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
! 56e6b3f9e65a5e327cb5c52ec1244448  libstdc++-v3/testsuite/22_locale/locale/operations/1.cc
! 3881109c2ac987350d920eae804da38a  libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
! 756dbde9f73779fe4db0a9c78e3ecc24  libstdc++-v3/testsuite/22_locale/messages/13631.cc
! f1f49eb534fd515cb2c3f1a57ee42b07  libstdc++-v3/testsuite/22_locale/messages/members/char/1.cc
! b3adaca9803215daddac561157ed0341  libstdc++-v3/testsuite/22_locale/messages/members/char/2.cc
! 4cb508bada2f204e0a1275e23e42136d  libstdc++-v3/testsuite/22_locale/messages/members/char/3.cc
! 596a6f7a5aeb536b0286c10c6fd9c6e7  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_env.cc
! 553a96056245e00afe4e4e425a7d0202  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc
! fdb11fc293a6c178241e39d11ea553f8  libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
! d927e3ccce12943d329a5ec776591c80  libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
! ec0bd532d7d9a2ef48f661cb8795fbb9  libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
! 1d2c590261dcf97597077772ee873a02  libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
! f0188c42f19fa70f2f8bf053b1ec8fc7  libstdc++-v3/testsuite/22_locale/messages_byname/named_equivalence.cc
! b0cc1980ec15d3dd4b6e1b7a050bb697  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
! ac1391c3bc4fe9d9450654a63566ff6b  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
! 6287dd3d1e3b9c399715a97d50941b6e  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
! f8fa355540121a8598d082baf93befae  libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
! 9bd968985c598785199ad4405869d554  libstdc++-v3/testsuite/22_locale/money_get/get/char/1.cc
! 6391a306cac01a96b1321b3fe16b7efc  libstdc++-v3/testsuite/22_locale/money_get/get/char/10.cc
! 3d935ba5448de2d7313f69b5817b4d7e  libstdc++-v3/testsuite/22_locale/money_get/get/char/11.cc
! 03829a8320761e0263c2c3c74b058b4a  libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
! 16ed4c4a219afdc47c3e5070520674c2  libstdc++-v3/testsuite/22_locale/money_get/get/char/12.cc
! 3ecc5bca8c45de0370d1839fd6197f66  libstdc++-v3/testsuite/22_locale/money_get/get/char/13.cc
! 66d22a987c7af7d122543fed973cb359  libstdc++-v3/testsuite/22_locale/money_get/get/char/14.cc
! 5f41648fb068efc04c1e61b332177365  libstdc++-v3/testsuite/22_locale/money_get/get/char/15.cc
! 25e7ea0a3a94250963423603e42025ad  libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc
! 2b5f96f369dab30a91479f18095c4ffa  libstdc++-v3/testsuite/22_locale/money_get/get/char/17.cc
! ae62c4c7b74037760ebc38ae5d71747a  libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc
! 348ac204097c310df6fbd7d01170607d  libstdc++-v3/testsuite/22_locale/money_get/get/char/19.cc
! b22b637903a1ebdcd5298b29097f4165  libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc
! 671a051052a0198abe8bf842a4a7d154  libstdc++-v3/testsuite/22_locale/money_get/get/char/22131.cc
! 68b5905f528105a53ca1a23d0a676b97  libstdc++-v3/testsuite/22_locale/money_get/get/char/3.cc
! fd64f869f8c7468c9b83b2022e1fe92c  libstdc++-v3/testsuite/22_locale/money_get/get/char/38399.cc
! dcb8152e885b703ea11557131d2b1fb7  libstdc++-v3/testsuite/22_locale/money_get/get/char/39168.cc
! 23739146597cc17fb8efad2744487abc  libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc
! e2e5ead70c0b8d241dee3873e1dcc125  libstdc++-v3/testsuite/22_locale/money_get/get/char/5.cc
! eb87b0ff68d8b60077e744e9a89cc6d1  libstdc++-v3/testsuite/22_locale/money_get/get/char/6.cc
! 13d657e505297f47dd1f20ac16aba6d6  libstdc++-v3/testsuite/22_locale/money_get/get/char/7.cc
! 9c21cee6f3bb5adb1bba36e7420385c3  libstdc++-v3/testsuite/22_locale/money_get/get/char/8.cc
! 3984bba0112e85f57bb8e5f94adfd551  libstdc++-v3/testsuite/22_locale/money_get/get/char/9.cc
! fe0f4ec5df89f64d84f8e2c3a6f742c0  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc
! 8c245ba3326550a31041a286e919f6d4  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc
! b1c47159eea03b46d75a261f8c8a91cb  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/1.cc
! 588d982468b2c3e72925fb8bf1ca8ada  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/10.cc
! 5beb3a13d5e4e086dac38c0c6c71874d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11.cc
! c3281fd474f2db3b3b30f0ff5ea9e493  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11528.cc
! b863336842760b2ac6c9718069e4d8d4  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/12.cc
! c0637f1aefbbe4a567513ef725bdbe28  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/13.cc
! 36cfbfbbe98f902fc20f61f05d1f5819  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/14.cc
! baa1fdcdd3c9bc86804c24535a6414c1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/15.cc
! 401d0248f2bbbb6f0feb1cf10594f5c0  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc
! 907aea939ec4bad6b5c0eb075641b7ae  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/17.cc
! b82f546ae27a5ba469a2d55fdcd5abee  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc
! 52e45a30e1b386de32d379ed8469bab3  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/19.cc
! d9312e9b98f6f8885b97a16ab0775589  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc
! cb2fe0330a37f2ba1db503b3647487c3  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/22131.cc
! 843c17b182f179d582b727539d4c67db  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/3.cc
! e10cf7b9e67a9289f64b1cd84f4b03ff  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/38399.cc
! 1a779bbdc1a32a92cc6d4b943cdec44b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/39168.cc
! 0c0d1e6da9ace7da525c0f7ce4b982d6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc
! 816a41156883b2da7e735ba11aa080f7  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/5.cc
! 00ac216564f2d5db9f87aa3f215fbc48  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/6.cc
! 33f63710bc722b2515108dced2233baf  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/7.cc
! aaabf28df59670b0ea339ec7b38b04c6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/8.cc
! b7c228e7ce0978a80a072d37adf1ce95  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/9.cc
! fe0f4ec5df89f64d84f8e2c3a6f742c0  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc
! 8c245ba3326550a31041a286e919f6d4  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc
! bc14185a1f2e09dd407b68ee437c60ef  libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
! 94a26b6aac098f3ac258ff1908c9c904  libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiation.cc
! 35720fce6de4f2e2e7a2a10da6ff1e44  libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
! 7936ad17a16d82c766068835265bdb7c  libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
! ade1f0f69cd9fe62438e7bc3cb96c539  libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc
! 7047bc7470d9709576ef5cc5854e0ad9  libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc
! 86fe355d87caa3481bb3c9aa002bb855  libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc
! a302852881c524262d6ab5682dc3c492  libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc
! 6038f9ccd56b9b7a7681fc9e188367d6  libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc
! 38759c7c74134f3dd30d76fc696dc98f  libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc
! c8db8f9389f20cd63c1dcbce2a3226f0  libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc
! 03fb397417bc8223ac8d9b2fb76060a7  libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc
! 84eb90fa04d1ae732e97e1cc989930e2  libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc
! 13907422905ccef678631164e48302fa  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc
! 575c2e5fc218aafa3b6c0ecb0cf5fff1  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc
! eb2cdfeab271e2a8ae981fd7f922b429  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/1.cc
! 438d9c5a9e26ae72f3c1903d9e97fdb9  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/12971.cc
! 37155aad028c34d9786658c1d329492c  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc
! aa200aa3f30938c0d1a1e34133caf891  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/3.cc
! df1c7c882e0a6e93198fc2d7373b7d3d  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/39168.cc
! 8c53bf089bbd3a3fc467ec5bfba33654  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/4.cc
! 8562179538aa1425070d4e0f097f1bc1  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/5.cc
! 07cd7c400afb689134cfcc097889a0da  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/6.cc
! 13907422905ccef678631164e48302fa  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc
! 575c2e5fc218aafa3b6c0ecb0cf5fff1  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc
! 63cbd81bfe1e27751148464a846e3d0e  libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
! 4d743ef181f3db9d3d52e552f4b52265  libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
! 8a6f95bbb42d2064551a79cab7a2d05e  libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
! 3024096a0d7cf4fed372a008aeef887d  libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc
! 199fd5cd97d67d31b4dc068b0b8adc8b  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/1.cc
! 2d5df3f713a056cd34edcb0578787dbd  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/2.cc
! 8770b5aee8196f06c036970745c0ffa7  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_env.cc
! 0083a61c5ca1c8e67870986ea163a48d  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc
! d075215e4e3fb48163a5866d04d989e6  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/1.cc
! 0b35369e9cafa5b43a0f260187296b2e  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/2.cc
! 8770b5aee8196f06c036970745c0ffa7  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc
! 962cf5a7079c06f642cebbfcb4d76f9c  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc
! 0f7a8580546d54a756ddca17c469b6db  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
! ea079236167e768220e00d69d20eb12d  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
! 5005b5e42fdc5cdc0f51eb06cd6452ca  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
! a35f0c4df288006de706e0a7a67fe7da  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
! 6ef082ef0d78e1ee0ae13e1e099b51cc  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
! 87050a9e594ac0c4ac4bea5c97a3918d  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
! 0c0ff9d197513df17e1b13b5ae5d863b  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
! 965a467a3bb6816df31c9caf9c583d4e  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
! 69e4706fd60a23a61dcff4a2892bd2d6  libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
! e3a6121d76f28f7f4897cfd9fee34c76  libstdc++-v3/testsuite/22_locale/moneypunct_byname/named_equivalence.cc
! 2800e090618d130ac62ec7a985714a66  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
! 35862e2922dc510ab0ccc385ad110ea1  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
! 6b81d6a1bad429ae9acaa9fde3a120d0  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
! e90cc5b470ea1233e13a40f519c35b8e  libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
! 23e651479c366c93b88be201394d1f61  libstdc++-v3/testsuite/22_locale/num_get/get/char/1.cc
! f880c000ede3c4a755a35de991cca3ef  libstdc++-v3/testsuite/22_locale/num_get/get/char/10.cc
! 2aaf230a435b50f1b0de043bc7f60c44  libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc
! f17faa80acc67c596119d0c90186680e  libstdc++-v3/testsuite/22_locale/num_get/get/char/12.cc
! c4b55cfb0a47d0f59ada8e1122f505a1  libstdc++-v3/testsuite/22_locale/num_get/get/char/13.cc
! f53113bf696ed11d0e7e98c436270f7e  libstdc++-v3/testsuite/22_locale/num_get/get/char/14.cc
! 90f8b78a5c808ba0e7ebb60ba6e7f308  libstdc++-v3/testsuite/22_locale/num_get/get/char/15.cc
! 1dea2351f280cc9a7365d448d26bfa34  libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
! 2b8b9a021367e156974001e0cfc6856f  libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
! 550b0b4a4214dff054f699e3942602f3  libstdc++-v3/testsuite/22_locale/num_get/get/char/22131.cc
! 267298eb66f9aae348fc836873bbf86f  libstdc++-v3/testsuite/22_locale/num_get/get/char/23953.cc
! 12f8e603096dda8d271acc9c20753774  libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc
! 034d929ff1b0a7fbd806b6fa0fa7006a  libstdc++-v3/testsuite/22_locale/num_get/get/char/37958.cc
! 9bf51e6f04b8b31fd9e222493a403bd4  libstdc++-v3/testsuite/22_locale/num_get/get/char/39168.cc
! e717634e2b080f87079da7abe6508a3c  libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
! cc3e5eb3af84da4e3216ceb9a89b9bbf  libstdc++-v3/testsuite/22_locale/num_get/get/char/4.cc
! c06ba024d807064657c22a15840558c9  libstdc++-v3/testsuite/22_locale/num_get/get/char/5.cc
! 01c000e2e9d51c39b051a51eb50db724  libstdc++-v3/testsuite/22_locale/num_get/get/char/6.cc
! 6769300f9f2b8c53e8f678852cae37c3  libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc
! 1c96691e953d56ebd40abc8551725c70  libstdc++-v3/testsuite/22_locale/num_get/get/char/8.cc
! 654a5b9337fdd5e257be6c8df1721405  libstdc++-v3/testsuite/22_locale/num_get/get/char/9.cc
! 1edb8fffc7e1901a2d6ca6ef6e991a8a  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc
! 575c2e5fc218aafa3b6c0ecb0cf5fff1  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc
! 4145fe3c0763159419c2840f3b76ce7d  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/1.cc
! 21eef89458701504753167e0381e53df  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/10.cc
! bded62b62d872a3ebaa55bd3f72e7005  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/11.cc
! 5c58a7e2aa752cebb600d6d6dda356e5  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/12.cc
! efdf1fac03bed48ccec43c9ec31696dd  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/13.cc
! 8777203688a3ab765e5e1569fe483053  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/14.cc
! f6c562982f4c31b2b7c6e7b49ac6291a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/15.cc
! f1f1a629d97b197dd1f076e3f2ec4e71  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
! 594c4f4ebe106d63c1edd00acc995212  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
! 7db67889d54b09aaa3b9e6c931e53d7f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/22131.cc
! 048254a720cd26674e66a7cc1b0ed1a4  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/23953.cc
! ed0c97b21cffa260ff8e723483515fe5  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc
! 1524d4cf7774d95be14566975cd6c26f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/37958.cc
! 9c4162fe27720ab794213db79710c716  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39168.cc
! 8b1bf4f36ce954a32d7a1176ed8bace3  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
! 678e0b872a09a1c6bc0792995217258f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/4.cc
! 56f5d0dde04a42e9f1b151a919ebc91c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/5.cc
! 23fece309e627137c87eeb54224428d1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/6.cc
! 8574590629ec5c938703e68e08a61623  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc
! 76238e3091fef22b25c20f211afd59b4  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/8.cc
! aa7f677b976363f21ff7160815ff223f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/9.cc
! 1edb8fffc7e1901a2d6ca6ef6e991a8a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc
! 575c2e5fc218aafa3b6c0ecb0cf5fff1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc
! cf0e453888335557930d282012ebc91b  libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
! c5cac3ed9b5efda6d957e5f004c1df3c  libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
! 5e3899a29f00f422bcdedccc0810450c  libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
! 40ef7eb4c100eb387cad5512178504e3  libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
! 322c73117696c0399a9ffd5a27a1647a  libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc
! 956beb56956865300641856580b48632  libstdc++-v3/testsuite/22_locale/num_put/put/char/10.cc
! 5112ddaf4c5a0524929f77c934df2501  libstdc++-v3/testsuite/22_locale/num_put/put/char/11.cc
! 29c4ca17d29464af97dfb81bb20f5e7b  libstdc++-v3/testsuite/22_locale/num_put/put/char/12.cc
! da3e4b27136799e2d8d1bf7f604fe732  libstdc++-v3/testsuite/22_locale/num_put/put/char/14220.cc
! bbebd28d1e5ea9317c40f4e7756bf2da  libstdc++-v3/testsuite/22_locale/num_put/put/char/15565.cc
! 4fbbb547712a3021aeebadf31fce9362  libstdc++-v3/testsuite/22_locale/num_put/put/char/2.cc
! 8f1fe2ac8d00a67cc0e6da612cfeec18  libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
! 0b41037aa1a69801333cd0ac0312f99a  libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc
! b92130f14bbcc0591d62efccca64dc56  libstdc++-v3/testsuite/22_locale/num_put/put/char/23953.cc
! 07e67754bc79203589a4b080c737ac64  libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc
! cd69330e520bbc3c90ff9dac7c1cf71d  libstdc++-v3/testsuite/22_locale/num_put/put/char/38196.cc
! be58a874706f28b332403952fa766cf0  libstdc++-v3/testsuite/22_locale/num_put/put/char/38210.cc
! f79a07ba39e713a57e3c6660d616e6b6  libstdc++-v3/testsuite/22_locale/num_put/put/char/4.cc
! e186d3f180ce06ba17c9e9023db8ab8a  libstdc++-v3/testsuite/22_locale/num_put/put/char/5.cc
! a7a35556c59d5e1ad18b95e1dd1b842d  libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
! 8e7438e29e1c69090dee18b97fb4701e  libstdc++-v3/testsuite/22_locale/num_put/put/char/7.cc
! b213bdb1eb571850e3ef2c115fb2f51b  libstdc++-v3/testsuite/22_locale/num_put/put/char/8.cc
! 7014b4561d2c8eb753c766b1284b32c1  libstdc++-v3/testsuite/22_locale/num_put/put/char/9.cc
! c93ea9b9ac462cdfb14dee7252bb6a80  libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc
! 100f3767472d256f64668bf920a042c6  libstdc++-v3/testsuite/22_locale/num_put/put/char/lwg4084.cc
! 1df5c4694a982d1e8fa4f9b7730c524e  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc
! 2e044021a8a0a495d19fc9213be4c111  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc
! 1a46293029fd8c2e8dfd1c6c3d2cbcf2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/1.cc
! 19f43b0140c3b9f73448dd60ff285506  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/10.cc
! bc80e2a3ea723c7aa8de2b27769a1043  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/11.cc
! 1e029e096c4b4fad2c7f60a7aaafa3c2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/12.cc
! 12a23b89460d412094f89e9d4f15592b  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/14220.cc
! 2bf4b13330597ff26cad657dd306605a  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/15565.cc
! 770c2851bd6a16ee6207e98f1e6ea318  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/2.cc
! 27831b4c9cae0021f3468cdaa3c2fa30  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
! ccc3af0c1c9141ecab53ddac4e5cb8aa  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc
! aa4d6e04399e41b5c0c524d4e9ef8757  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/23953.cc
! 40c0f8d97811764069b92cbc86733146  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc
! 9205b5f7dd69c8e32c9c58db1e4b8950  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38196.cc
! 6a66c36a9ae077dd7c02c62b2dea4050  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38210.cc
! c6b2c17164485686b702db1957fe25f0  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/4.cc
! 46aca0564b761f70728f3af17780b6ae  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/5.cc
! a149d06966504a112083e856708382eb  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
! 18a25aad525c761694a3722aaf6cc09a  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/7.cc
! 163599311497ebc37cb251affaf725e3  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/8.cc
! 2b3e287349ec0fd571d83d670cbca423  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/9.cc
! 3b4216a583e928c7d2f0a7dcb8936f58  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc
! a79df27f96c724268c4c95645b8048e2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc
! d6c764e2c8438ef799a3be0627e3ce20  libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
! 070ad219fd5dc6e835168cd15ea9ec8b  libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiation.cc
! a36b2e0c859638ede7ecf9d1cfcbb5af  libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
! 0f173310cbed96654227ab3322785193  libstdc++-v3/testsuite/22_locale/numpunct/members/char/1.cc
! 40399165a60f42f2a953928a3f88826b  libstdc++-v3/testsuite/22_locale/numpunct/members/char/2.cc
! ed2183453fb9f1e91713c3a863c355ee  libstdc++-v3/testsuite/22_locale/numpunct/members/char/3.cc
! 5cecefbeeb379dd7505003153e2767ca  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_1.cc
! fd11986319cb49ac50c93993acc18e2f  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_2.cc
! da1b513d279e8c76e2daeeb82e7697bb  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_env.cc
! 83e0448501414841fdc0d8acacefcf73  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc
! f1711f05851f69cd6a74c636a3e235d8  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/1.cc
! 6892d7a9d48e6627005ba84dc0ff7b27  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc
! 0a095bc90dadd9988387feff3f5e4a91  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/1.cc
! eb871927a3fca4880a5d903f24bc6c2d  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/2.cc
! ae517af03cd08c1cd2938006911e0cf8  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc
! 2b39ed58a3bf7724d6474c9231a293ac  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc
! da1b513d279e8c76e2daeeb82e7697bb  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc
! 83e0448501414841fdc0d8acacefcf73  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc
! 1fb5dfc8edfe261fef8f2907b429ce26  libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
! f647eeccc883632aba8056af6e18e471  libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiation.cc
! f50d56a7207af45324f9738b227c9e2d  libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
! 84d31426ca49ecf271eb9d5f69500295  libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
! 4cd8f6f22b53323c093aafadf608f291  libstdc++-v3/testsuite/22_locale/numpunct_byname/named_equivalence.cc
! 0a510304947fbe810c850217b673bcb7  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
! b63cae75b230b7a946a7a3a58fd94617  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiation.cc
! 3c62c54b3d99b80a44ddfade527490be  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
! 466555515f138115d6e1fd1e17724af4  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_env.cc
! 39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc
! 6e8c42ac1af099f08fe88812ffeff837  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/1.cc
! 2d12d0413573bf218dd809902f6c749b  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc
! 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
! a18ac372a519c895d93ecf55f5e230d6  libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
! 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
! 12739047adf50afc548e13cb64006a1f  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
! df227bbb00a02753c1b4b2d96b8096d5  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
! 3c3b57d154c2c0815d174fd42206fb9a  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/1.cc
! 3b68dfe0065255b2b7f6a912dfb85d4e  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc
! 67f61779c3602a36c6a7708847ee313e  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
! 0ae5ec8ebfcd90449ff78a615bd02854  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc
! 1c4aefaa99e85afcc3791a4034d22dfb  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc
! 912853298f26cc42c7cccb9e61bdacc4  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/3.cc
! 724874a63adbad6b6b21388f9f84ca1a  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/5.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc
! ef7a639d1d17dc2dc662c6d85c21726d  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/1.cc
! cd577a755b18085556a61eed0fe84a48  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc
! b3bebe55d09461790405dfcf6f0302d7  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
! 5925cf7ddd5f4ed25ee40eb2f889259c  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc
! 1a1a3b321198b7e69057f4fa226b95ea  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc
! e177b4ecbc9a0ee7877cc9284b561e85  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/3.cc
! 224787dff19753acb87b88bb3f7af21d  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc
! a6f29aefc907a3f9282f620de7530d8e  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/5.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc
! af111defc507a438e8f8754d698d1320  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/1.cc
! d3c72af9a41d0f6e99a164884bafceab  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc
! a08f05789fc462dc82a0728e19c03b37  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/3.cc
! d7feb845c822158f8c93e58cd96639a7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/4.cc
! 853791ca120eb8adcf1296d22fce1c62  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/5.cc
! 6ab957c644ceb5ed76ab7f56bef12ff1  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/6.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc
! 72be6dc4926d865847bde22a7c093d8c  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc
! 61569faad3cd77fb8f46796e28822ad6  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc
! 08428a3baa9545fb1e57001494e4cf58  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/3.cc
! 275ac6457879e41d5a9813785da4d7b6  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc
! 0c058b82f11a709433a9ae8cba714c03  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc
! 25334105e4e6cb9c323958aca05bc093  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/6.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc
! 6a875c05b415287ef3268044258e1608  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
! 0f598d62bbb9787c3457f3776a3a1875  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
! 9485e917025de0d950529d438b0d79de  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
! 877896897c5d601acc4bd5687a2a70e6  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
! d132e06d99c529c335a790ae3bd92e03  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
! 37017a2454f644d9cd16547b4e46ca4c  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
! 2fb4a95af0e5b6b335d699a4aa489882  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
! ce42a8ada672cf6258c83970867e14da  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
! 3b4e7522fc17491d35cc763efda09412  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
! 688437cf8e98c58ba75f1dff18fb281d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
! d778f6769f539b4c455e95ac927eb86f  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
! 7261b407cb40a3ee9c72fb695d597611  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
! 4061c9a06643374b7676c4f80ee3988a  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
! 51bec337016a569aa678a9e6a18ca279  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
! 3463a7ade64a2b20c15213e012f66425  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
! 4111e274abbb4140062ea8e7958ea9e9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
! 830f0d6bc2c545ff1d394dea7b1c3177  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
! 67b169196aab7276e7034c95ce2787bd  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
! 871266ee73f01daf5deb6db364b866c1  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
! ce25f8dc184a765a7ef2287e19e671b4  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
! 4569369b37c6ccaa29c1ca9fb77d64c0  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc
! 62ccfd602d908198e1f0971056eb9eae  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc
! 6bfdf1a6b1274701ae196254df276708  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc
! e3925f57d3edff00a61d4ea52fb82297  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc
! 397393388ac74bf4febdf0a778885b8c  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc
! 6531a7124ecc62bf33ebb930ab80f720  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/6.cc
! 327562c21bf4195601d4bdc08f3a5ae8  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc
! a86b78a706384fea6d117f7752c9811f  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc
! 62f93451d7ea2445c00d8c98565b6e2b  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
! ebe4e3ff598def51e23e004c37a49b43  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/3.cc
! 7ca125937cfbb6b1b551a3a61a51c232  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/5.cc
! cfb1f44c2480010b0a4e5a63227d9806  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
! 6728082d861611f0dcef41e37ce45916  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_env.cc
! 7b6108f45f8e8fb2bef2049b8aa3081b  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc
! b1db00748fdb030cd2c89ce8f453505e  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
! eee94640351a3921f3abcef17105cf0b  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/3.cc
! ef64a82a423bb96d71f8f12cf000b0f6  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/5.cc
! c78677b29903157fef9b7d67b8411d02  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
! 6728082d861611f0dcef41e37ce45916  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc
! 7b6108f45f8e8fb2bef2049b8aa3081b  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc
! b2a6ec4842d4127900ad7b0978f51a21  libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
! fb71833aea72660c9fa4233511c422f6  libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiation.cc
! c70613958f711061de99d7a25cc8dcab  libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
! 0125f0f641d7da22bb17e4959c3d4f23  libstdc++-v3/testsuite/22_locale/time_put/put/char/1.cc
! 000c85231a7b01008aaeb611b92c8a73  libstdc++-v3/testsuite/22_locale/time_put/put/char/10.cc
! be297dda8acd83d4932ce6876ae2d134  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_1.cc
! ab8d41a5369c73fa06ed260029ecaa86  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_3.cc
! 2391d08faa8281b946548a9c906660b3  libstdc++-v3/testsuite/22_locale/time_put/put/char/17038.cc
! 841d48cc709b962a644edaef4494aa93  libstdc++-v3/testsuite/22_locale/time_put/put/char/2.cc
! 9c948730bfa2bf552b44f3fa3a2286ab  libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc
! 87b0d531b127ba66bb032ff3cff35649  libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc
! ea5616af6e6324aa5f8de91955dd9458  libstdc++-v3/testsuite/22_locale/time_put/put/char/5.cc
! 885e2cbc24111242420093517099d0cf  libstdc++-v3/testsuite/22_locale/time_put/put/char/6.cc
! 9aa6b51a5115189ce7d17cefe071a500  libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
! 813d05d9282d585f0a1fcb4e1bfc9f09  libstdc++-v3/testsuite/22_locale/time_put/put/char/8.cc
! 84a35126b758dd19789177a9a18918e8  libstdc++-v3/testsuite/22_locale/time_put/put/char/9.cc
! 619105c0a38728e5d4f10cc3c6a8317f  libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
! 1746890aad92f692f8c804621549c20f  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc
! bfafe3bb7d0f2a848c51cd322a451a58  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc
! ad005a3a819d289368bb11b69d24a1b5  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/1.cc
! daf486e6ee43f2533d9f8ed9e605c0e0  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/10.cc
! 4d11c7698a5c3c9bc427d0235c8d5de4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_1.cc
! 5255abe45484ac22836374126bc50aef  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_2.cc
! 27e0e327b12cdd10d1dda194894c1987  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_3.cc
! 204183a069094933b3d1e6f1a17a8426  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/17038.cc
! b5880c82267d2b0408f82b901fd6fb84  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/2.cc
! 56ca90bab2b852c9cda20faad52f82e3  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc
! 7bf7729ca323b8498f34048eb45b9ac3  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc
! 00343583f8bbe9f87d8c14d313639663  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/5.cc
! 07a0d2c2e47bbeede35ec516451f9f96  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/6.cc
! 68cf8b0fe672df3f962860ada1591005  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc
! bb63bb9b0f75c7018082d752a4b4c7c6  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/8.cc
! c00de88343a49357f66601571d0e58f4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/9.cc
! 1746890aad92f692f8c804621549c20f  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc
! 5ce533025bd874dab8ab0757fe12853e  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc
! ce113bab8e39ad56780305f69ab5d913  libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
! e6938d94673b0ea62a22aa69eb24005b  libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiation.cc
! d1c65d737ef03844b4bde90191d956f4  libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
! aa9340faaead4cf3c46bda2ad13d1571  libstdc++-v3/testsuite/23_containers/array/capacity/constexpr_functions.cc
! a90cc328ab0e47b5f798b19061513a2f  libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc
! 98ffe0d731a0eef582c5226341e3470c  libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc
! d7836d08031aa34fd6cec934740f5a50  libstdc++-v3/testsuite/23_containers/array/capacity/size.cc
! ecc38f7846787862f441b71921676a98  libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc
! b06c7c804de7662bb49bb461d775ac74  libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
! 1e325750974429bb4f341fbc39552797  libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
! c5d867a953831fceccbedd132c86fe01  libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc
! c6c88374eae766dc57c507f930d1539c  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc
! 0406145476fdece1e00d132cc486b9b8  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater_or_equal.cc
! 015381512d50b82ce708659b221114a0  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less.cc
! ba739065b7f74cb55e6de342645dc49d  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less_or_equal.cc
! 163b396a1a86ddba2a5b4e7590fbd20b  libstdc++-v3/testsuite/23_containers/array/comparison_operators/not_equal.cc
! ebaa6f1c5954620b216b82550e73927b  libstdc++-v3/testsuite/23_containers/array/cons/53361.cc
! 1c9f753e6795ed0b816171773eb3af23  libstdc++-v3/testsuite/23_containers/array/cons/aggregate_initialization.cc
! c69b0ac3d55e0ff234feb0c9b3eee43e  libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc
! bff6f6553b83fccf074416f412f13b95  libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc
! c0fce4eb756201fee341ec1f012adb26  libstdc++-v3/testsuite/23_containers/array/creation/1.cc
  55ad1543c1b5e8b2f14060f3eabb5f1e  libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
  224417afded5fa24d407144744d6700e  libstdc++-v3/testsuite/23_containers/array/creation/111512.cc
  11bac09ddbd90a00219248b83c052d06  libstdc++-v3/testsuite/23_containers/array/creation/115522.cc
! 39bd1870ddd8084fed6cc356d9b2d952  libstdc++-v3/testsuite/23_containers/array/creation/2.cc
! 2a0a83b8b6a2b113f23713574ba45c26  libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
! 2f5c6d72baa5aa45312df9c3d3cb6090  libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
! 51813f6cb86cc6d68db8b7da3df64aa3  libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
! 9e5540d125cd257a19c4a1b00e7f253a  libstdc++-v3/testsuite/23_containers/array/debug/constexpr_c++11.cc
! eb3510f469d8dc0c19572dcde9248839  libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
! 4cbe8001249049b0b3da2530a87e224b  libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
! 952d66d724d3d61f56784d5531179a00  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
! f6f77ec9a00a4068c01fd88d3c6b4ab2  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
  d43444f5dac4465508d56c015a638fca  libstdc++-v3/testsuite/23_containers/array/element_access/110139.cc
! e6124045253f44fd939d44bcc654f12f  libstdc++-v3/testsuite/23_containers/array/element_access/54388.cc
! 1fab8ac7cb29046e6d3dfa43dfada294  libstdc++-v3/testsuite/23_containers/array/element_access/60497.cc
! e53c74b493ad63732aed6fed625ea1dd  libstdc++-v3/testsuite/23_containers/array/element_access/at_neg.cc
! 3909232d3758fedb8dbb5b5c654e9966  libstdc++-v3/testsuite/23_containers/array/element_access/at_out_of_range.cc
! d055713c601521f968fc4e9d89711e3c  libstdc++-v3/testsuite/23_containers/array/element_access/back.cc
! 43bb162f8081b980ad8c238f941c1b4b  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc
! 4cb9bebea2d9b97cce840b10d6eb7c61  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_element_access.cc
! 8feea791c6fbf97522dcd7a89136bb56  libstdc++-v3/testsuite/23_containers/array/element_access/data.cc
! fa1474aad14409e5021031e49a20e041  libstdc++-v3/testsuite/23_containers/array/element_access/front.cc
  6a70864d40e873666241bcb5b4a33a61  libstdc++-v3/testsuite/23_containers/array/iterators/begin_end.cc
! a3718c1b464a3024fc472fefa1045cd8  libstdc++-v3/testsuite/23_containers/array/iterators/end_is_one_past.cc
! 1e7197f52e7743a0b267f90351d5031b  libstdc++-v3/testsuite/23_containers/array/range_access.cc
! 2f414f4aae146d2ded40a396feab4e1b  libstdc++-v3/testsuite/23_containers/array/requirements/citerators.cc
! 0e89598436066b0ea70d681119682c7f  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
! 4a9b14251ad92fe6cf277731ce725e84  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc
! 775b82040dd72163275edd19b022c0a7  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
! 365854c30c0b27b0e8c79db65639de83  libstdc++-v3/testsuite/23_containers/array/requirements/contiguous.cc
! 03525fd54fb984269508d6198081139f  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/1.cc
! e61507248067f8be938e9dee0978f7ab  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/2.cc
! 7f5782ffabfd9cc75853218a6d926e88  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/3.cc
! 91c19123123ad2f071c91523474a4907  libstdc++-v3/testsuite/23_containers/array/requirements/fill.cc
! 6f9c183c3efbb2a1144ba3cc2ff66705  libstdc++-v3/testsuite/23_containers/array/requirements/member_swap.cc
! daf51b0339605928764531dbb5213284  libstdc++-v3/testsuite/23_containers/array/requirements/non_default_constructible.cc
! 60eac2641f24ba283879d67f975ec4ee  libstdc++-v3/testsuite/23_containers/array/requirements/typedefs.cc
  27ad3c766cb9157bada40b979affed03  libstdc++-v3/testsuite/23_containers/array/requirements/version.cc
! 299a57eec5408f814deff5fc9a47f1cd  libstdc++-v3/testsuite/23_containers/array/requirements/zero_sized_arrays.cc
! 3240b55e3f61f17c84b73e9115d81c56  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap.cc
! 8e35c81d3f936de0b4dae26e0b5307d5  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc
! f50b344887169898d9d2c249df76fb75  libstdc++-v3/testsuite/23_containers/array/tuple_interface/constexpr_get.cc
! e5b9d428a771e75804704a3cd5fc6d0e  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get.cc
! 7d304e8c7ffe137a19e9736998fe7394  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
! 9d924fe33929bbc2f7a38113d58064f1  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element.cc
! f0143765eb42f5ac1f3cc10a8877e4fe  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc
! 221fcf16a916cb4860cf59422110ec47  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
! a35c7d026a144928d0fab4b21808ad49  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_size.cc
! 2f8e551de300bee33bdef57bbf631b4d  libstdc++-v3/testsuite/23_containers/default_template_value.cc
  ddf767067d4b89b063a9cdaf9a38233c  libstdc++-v3/testsuite/23_containers/deque/100516.cc
! 898345578704e39b9b4de6265ac378a5  libstdc++-v3/testsuite/23_containers/deque/14340.cc
! de0cbb886f1676a304357c26594846dc  libstdc++-v3/testsuite/23_containers/deque/18604.cc
! 2285c1e04c8e2d6845268f2cca365413  libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
! b33adc5529ec8c3f3c2540c29e88913b  libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
! e7b052ae4e4ba66b6f3bbc62d9144a8e  libstdc++-v3/testsuite/23_containers/deque/48101_neg.cc
! 268cc2cd3094c47252d7c28832f077b6  libstdc++-v3/testsuite/23_containers/deque/58764.cc
! 5d09d04277d5d4c66cb3c44f72cc5b1b  libstdc++-v3/testsuite/23_containers/deque/70303.cc
! f21256abb37be97818499d440f0df3a8  libstdc++-v3/testsuite/23_containers/deque/92124.cc
! e508b08f85ce003eacb23f56c39a410a  libstdc++-v3/testsuite/23_containers/deque/allocator/copy.cc
! a92637a47ead8ed8ab58721df510e89b  libstdc++-v3/testsuite/23_containers/deque/allocator/copy_assign.cc
! 770dfef015e331cf47d4d57e5831e1de  libstdc++-v3/testsuite/23_containers/deque/allocator/default_init.cc
! 8bf9594e7a3e8d5040a758a532c9b99c  libstdc++-v3/testsuite/23_containers/deque/allocator/ext_ptr.cc
! 928c4db33163d0bd92812b155ef3f47c  libstdc++-v3/testsuite/23_containers/deque/allocator/minimal.cc
! 0882ea45ec6f5f191ba8e50eb9640363  libstdc++-v3/testsuite/23_containers/deque/allocator/move-2.cc
! 2dd1354001ef2257a034974c70f85754  libstdc++-v3/testsuite/23_containers/deque/allocator/move.cc
! ac362436b756e42757d50fb124dcf99b  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign-2.cc
! 5ca1c592bcd1ff53880aec39083654fb  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
! fed94c950cb0e7ee34bd0eaf1f853d80  libstdc++-v3/testsuite/23_containers/deque/allocator/noexcept.cc
! 66aa23c3d98ffdf0c0a72f15cefa55e7  libstdc++-v3/testsuite/23_containers/deque/allocator/swap.cc
! 0c451f428730172040f3b9b5c8a5060f  libstdc++-v3/testsuite/23_containers/deque/capacity/29134-2.cc
! 1c5f6d50b11aa95a1b72170eda367157  libstdc++-v3/testsuite/23_containers/deque/capacity/29134.cc
! cd3f181e118a4a1f049fea0eb75d38fb  libstdc++-v3/testsuite/23_containers/deque/capacity/max_size.cc
! b2ef79fde4fc391feb864d1b62136ec8  libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc
! 1e4ac3b2c61f13624b43c2ad43f4b938  libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc
! 7f7838d1f09cde0380ab2abb9b01c353  libstdc++-v3/testsuite/23_containers/deque/capacity/shrink_to_fit.cc
! 16b3c7ec13b7c7f8383897b0b9b43e15  libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
! 8079c5b7928faa98b0949b4b5b6c5546  libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
! 266cc333b3bdeca8fadc10be6f05b182  libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
! 16b9d1bb156c7a4229dddb0a8366810d  libstdc++-v3/testsuite/23_containers/deque/cons/55977.cc
! 1920b2eabb254a0618216d01b727f976  libstdc++-v3/testsuite/23_containers/deque/cons/assign/1.cc
! c943627c31e64d3e1c66fc0873601603  libstdc++-v3/testsuite/23_containers/deque/cons/clear_allocator.cc
! 5fd9cde453ac6cdc58f33a6915847b4f  libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc
! d0e1458dcfea61523107da34a544727a  libstdc++-v3/testsuite/23_containers/deque/cons/deduction.cc
! 9ed639434b2083e9c8709427c62875c5  libstdc++-v3/testsuite/23_containers/deque/cons/from_range.cc
! 3925bec75415991f0617d78283df1e82  libstdc++-v3/testsuite/23_containers/deque/cons/moveable.cc
! adbe824d176e23368606660d1f03067f  libstdc++-v3/testsuite/23_containers/deque/cons/moveable2.cc
! bad6c3c67f668d4470ea2c9446e1edf7  libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
! 24b95bc0405908c4dbec8ce9dfb3a0c4  libstdc++-v3/testsuite/23_containers/deque/debug/90102.cc
! 1b08599a2749295c94682893846c3c7a  libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
! 8c1b84eccbf1dee29f14f768b94afc43  libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
! 4e5ac42e21bef91ee0d2f23efa34118e  libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
! 352aecc5a55a12b3cbe43fb2f6790674  libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
! dd79b78e31adabec5cba08ade1228f24  libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
! b689b9284136a8f539f41ca45d35a809  libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
! 95a799e3b8d76afa510b0df08077af02  libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
! 1bbd49c3f81b53c11e67d53d1d016346  libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
! 3419ac59d5d19e2242c78938b2407c7e  libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
! cb7136c838f00eface86ee0965a63f97  libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
! b12d57baf1623d47f7e9970f12d0d9f1  libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
! a079bb93c4aaa7c00621270109c425db  libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
! 1567db5a248563b5c1dc770b56555174  libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
! 7b01b9bf3707bc0b4c5f9564a70002d6  libstdc++-v3/testsuite/23_containers/deque/debug/insert5_neg.cc
! 6cdca44ee6a644a3f336e75116de02d5  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
! 33499c35aca776e26db583c5e69820f3  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
! fd8c7a56b823d3be49b2c29aa4b199aa  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
! a295235abb9e2be84b35302cd0f4b896  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
! ffe16938dd35690b0c5cb48f21358def  libstdc++-v3/testsuite/23_containers/deque/debug/iterator1_neg.cc
! 76964670de76efe13c5601ab5045dcb8  libstdc++-v3/testsuite/23_containers/deque/debug/iterator2_neg.cc
! df6f3979278ab7bd9df1ab015d437ddc  libstdc++-v3/testsuite/23_containers/deque/debug/shrink_to_fit.cc
! 741a4b6c25b337dac215da01965458f0  libstdc++-v3/testsuite/23_containers/deque/erasure.cc
! c54bdc3ece3cf2e3dcee5a99ea8e298a  libstdc++-v3/testsuite/23_containers/deque/init-list.cc
! d6389dca6900efed9092c757879cb4bb  libstdc++-v3/testsuite/23_containers/deque/modifiers/append_range.cc
! be1cdb99e2d8cc902e0fa86221ea595c  libstdc++-v3/testsuite/23_containers/deque/modifiers/assign/1.cc
! 4a86c29df4110cc1da37d6a22ee13c88  libstdc++-v3/testsuite/23_containers/deque/modifiers/assign/assign_range.cc
  5b30438ec704fa2989c2780d4b7988b0  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/1.cc
! 0ff485943b32fb63316f65b20ffe13b8  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/90389.cc
! 86e4c93c9c08920cf9749fc590d5b57a  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
! 46bbcc8a91f4e6758407a442926aa036  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc
! 38cb456fa80b982d584af41a7c8b292f  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/1.cc
! d68515b16b539e467dddd1cecef6125e  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/2.cc
! 8a65e5a7297a86068f03b95442e4c810  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/3.cc
! 0a13085af8899f90af9cfc25a39f74b4  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/50529.cc
! b1d39fcb770c512be0c15e58f91d13b3  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/54577.cc
! 16276c131e74c3d725760e598bce1eec  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/moveable.cc
! bba735cdd63b156bce7cabf7cc2f280d  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/118035.cc
! dd69795db7b5bd96786bc6232403411c  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc
! f513ce4091b4adef72d00ff67df368b7  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/insert_range.cc
! a79c8acec2c909375d812e003f5f5ff0  libstdc++-v3/testsuite/23_containers/deque/modifiers/moveable.cc
! 442d1b6fc40cd6f0eb4c25700992eee4  libstdc++-v3/testsuite/23_containers/deque/modifiers/prepend_range.cc
! 8fb593ed2c52f41086c5de1d69a4994a  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_back/49836.cc
! 29b97746b889d626ff44a049ce40e710  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_front/49836.cc
! b4548f3d00cd73689cf565a6a63c1d81  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/1.cc
! f6869a3f6ab5fb7a27881c22c62ba5f7  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/2.cc
! 48b115cdc34acc2dbb30184f753e04d2  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/3.cc
! 743911167793eabd30922214d15108b8  libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
! 8e3ad979d5bdc9daaed8d17f77fc2170  libstdc++-v3/testsuite/23_containers/deque/operators/2.cc
! 2d2c2770ea29162ab986654e2c153830  libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
! 9954d5d8ab00f48506e3b358365e5911  libstdc++-v3/testsuite/23_containers/deque/range_access.cc
! ca723d80e6558ed5f91add724f3d6336  libstdc++-v3/testsuite/23_containers/deque/requirements/citerators.cc
! d4e8d641877f250c66698b6f4c1aab3d  libstdc++-v3/testsuite/23_containers/deque/requirements/do_the_right_thing.cc
! 7aed7cb7b88228b71bbdbf85ae4ca494  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
! 7d6b376a98bc2730cfffdd9725e31af8  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor.cc
! 768a134125c151a9a37acb54c6e27416  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
! b7dd16b577db44de0398e364d8948f07  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
! 871f1b55d04a55a186de9571e37305eb  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
! ebf8bab4026552b6bd4112b626fd4302  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/basic.cc
! d4da5892089007b4ae488b4ab83addb6  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
! 561e13eba0aa8350c1ce87786f2a70c8  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/propagation_consistent.cc
! 314e8dd5571f777f8f614370f71c102b  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
! c5f32b33de65013c0fc106b121d9adb9  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
! 8849c7c283c3f91984b199084b3e7c51  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
! 9d8033b923d44a8f952f0c3ae47d202a  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/4.cc
! 80bb2399df42ea7d06e4ea4e5b28661a  libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
! 2e3a570d45adc2869ced444e2b1229e9  libstdc++-v3/testsuite/23_containers/deque/requirements/typedefs.cc
! 25ea9643bed1f90c51438b6cefa76149  libstdc++-v3/testsuite/23_containers/deque/types/1.cc
! 651e22c6c4b8a4f33663c999d160196c  libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
! 66d8e0b64dc2f55b235d2a74c80953c3  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
! 2ef42205ec9719ecefddda3ad2adc42a  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
! ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! 03d9e9eeec6602cf8a768590ed9a3135  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
! a079edcb6a203a044afe2c9557e32280  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
! 718951cc7205e7c1bcd1c30473a4bde9  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
! 0781724cbea5a0d97f01629c7507e9c9  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
! 0c9946a785a1bcd0c52de4c0d17ff0e9  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
! db346e707266a3e88546dac4c00c987b  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
! 31b26a71c11b5ffe0b267d345e784244  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
! 23bf2211410c5687ee618c689a87b32c  libstdc++-v3/testsuite/23_containers/forward_list/92124.cc
! 70e043c08360f48dfc412680ed06730c  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
! 914a558e348b0f33f55af59e7e3822a6  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy_assign.cc
! 4ade38bb148512d7e32732ff76c3f5ae  libstdc++-v3/testsuite/23_containers/forward_list/allocator/default_init.cc
! 9ce126b363fcee04382fb9de2118772e  libstdc++-v3/testsuite/23_containers/forward_list/allocator/ext_ptr.cc
! 3a66b98b888c43eb3c5dc6c24bc7cb37  libstdc++-v3/testsuite/23_containers/forward_list/allocator/minimal.cc
! 17cb1028b0b0b0a4de36b4877e97d4b4  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc
! 735bfd80bb6fd8eeab61ef1ff0b8a23c  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
! 1476489f266476ceca9f7a51078cde5b  libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
! 325b5b8bd8a9bde4600a257655ccf749  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
! 20aebe186cc875a4fe2271d9568a2c4c  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
! 5cce50111e2baccda5d72efd393ad7f8  libstdc++-v3/testsuite/23_containers/forward_list/capacity/node_sizes.cc
! aad81c1bb7384d674f459d32a98a3d34  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 6ebdc1b9c972583c90365f7842a60d06  libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
! 8aebb7b5515f74264c36134cdf87f8d4  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
! e7b5b4fe5db0e847ee402540667c1535  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
! d20be67c8aed171df5450165caa3e434  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
! 6feb82926b59399bad24e98feff8a5bd  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
! bfaaae570b7be1498cfc26084d273428  libstdc++-v3/testsuite/23_containers/forward_list/cons/12.cc
! 6c055e9f65849ad4f9a5ffcd3feae6ad  libstdc++-v3/testsuite/23_containers/forward_list/cons/13.cc
! 87c83a9af3cfb5d0f7c60435c8b15a61  libstdc++-v3/testsuite/23_containers/forward_list/cons/14.cc
! 017b145bffb51bc5e9c8793b4fe29da2  libstdc++-v3/testsuite/23_containers/forward_list/cons/2.cc
! c76d4ce6fcc2ba445021b8ae72467694  libstdc++-v3/testsuite/23_containers/forward_list/cons/3.cc
! 901299044e7f5e7b92fd21e012c5a0db  libstdc++-v3/testsuite/23_containers/forward_list/cons/4.cc
! 47b060ebbe594a3ec1382fd5f1d57614  libstdc++-v3/testsuite/23_containers/forward_list/cons/5.cc
! c5259ff6599936d00631abce817badd5  libstdc++-v3/testsuite/23_containers/forward_list/cons/6.cc
! ceeca532e0a25cf7880f99eda02b6d52  libstdc++-v3/testsuite/23_containers/forward_list/cons/7.cc
! 9fa8e39d1aa239df2d91731de44ad6a2  libstdc++-v3/testsuite/23_containers/forward_list/cons/8.cc
! 15c82e3de5703565eb1dccb5bef6f5bf  libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc
! 5223820cbdd794d1b8363418c2d4054d  libstdc++-v3/testsuite/23_containers/forward_list/cons/9.cc
! e4833d098207d31e387f1f0d0d7a4adf  libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc
! 00356b9196cfcb71707b4824d76fe44f  libstdc++-v3/testsuite/23_containers/forward_list/cons/deduction.cc
! 51d51bf26bd5f1e9689d287ced801020  libstdc++-v3/testsuite/23_containers/forward_list/cons/from_range.cc
! 4ca950b9ad694d55ca8ae31f6bf7b3e6  libstdc++-v3/testsuite/23_containers/forward_list/cons/moveable.cc
! 8985ab73b9b45a76f5baf0f0e5700e38  libstdc++-v3/testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc
! cccf56c873b29a60252b6cb5f4b9ff78  libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
! b3757e09c95bc868fc693a7a3cc0887c  libstdc++-v3/testsuite/23_containers/forward_list/debug/60499.cc
! 62251c0227217cbcb028534dd591ac70  libstdc++-v3/testsuite/23_containers/forward_list/debug/90102.cc
! 81d69905081247cf295d135bcf2cfe56  libstdc++-v3/testsuite/23_containers/forward_list/debug/clear.cc
! fcfce10a7503c41c1d89614f88e5c928  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct1_neg.cc
! cd1d6ff2e50f918fdee2c1bd33f69c00  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct2_neg.cc
! 89811beb08663dc85ec814da56023792  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct3_neg.cc
! 817c944161cbaaedd01a6e7cb3c3c41d  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
! 1bcac44e04de2777f888ad6ef55aeb3f  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after1_neg.cc
! bb9520e4b2090109a7b7866c889596e2  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after2_neg.cc
! 133a41e958a9079d8ba62dbe992cf485  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after3_neg.cc
! 5b0b44d7a6aa4af20520575cf2aedaf5  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after4_neg.cc
! 734ee85db2b9c4f3768c77ff059f4e9e  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after5_neg.cc
! c9e3c967b5cb5c0ef627138aabafa50e  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after6_neg.cc
! dd1022f2416470be57bce713e34a4c29  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after7_neg.cc
! e22bc7005e32b7e8920063250c3e3457  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after8_neg.cc
! fcf276fc200d8294b05b50800d951807  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after9_neg.cc
! 820ff1cb29a02037acf770d25a0adee1  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after1_neg.cc
! d6506b4e090830b1624054078fb90ac0  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after2_neg.cc
! 332b839af348b6af22249668571d7054  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after3_neg.cc
! fc8bb4fd600f7ffc96685f0ced8e71de  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after4_neg.cc
! b3e5b63aac5ed266d97080bb63b0ccec  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator1_neg.cc
! f164e651d8b15f0c4d0b2e1ab27e1b53  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator2_neg.cc
! 3549c721ab941f0e9bca650ec07916d0  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator3_neg.cc
! c575fdce83c0bbef7be1440740980ee0  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
! 685c54a6ce8b1d041d5556f8d224d0de  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_constructor.cc
! 82a9067570c135d060f672b52c7254c7  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
! 8f52674d7734ea8a3b67329e35fdc10d  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
! 9a285be0b5628bf358e0637c99098471  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after1_neg.cc
! 85319b311fbe75f341c7c19f16861c87  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after2_neg.cc
! ce4c666a174c7b2320c4649d8d598fad  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after3_neg.cc
! 989cccf92971ca01966e527cc90fca27  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after4_neg.cc
! 9fbcdd97722ce1944fcf90fd721920e0  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after5_neg.cc
! fe39ac5f8a3ed8f75fa708806707dba2  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after6_neg.cc
! f853e3faba83946cba803ed2d336b949  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after7_neg.cc
! db268bed47f60f6b1af825ba47d9208f  libstdc++-v3/testsuite/23_containers/forward_list/debug/swap.cc
! d4ee51b84c0cfe50159e901ceab77d6d  libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
! 5a7c8f9f19c0dbd31aa26ec68ade8aeb  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/1.cc
! 6092207fd698ea7bfc4c337073f78a5a  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/2.cc
! 5773fab502955c01595fb7f7ae84f130  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/3.cc
! 1c061ac6a6811e5026f0fedb58f277e1  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/4.cc
! b31a37ef437f35ad57699cb9d2faa295  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/5.cc
! 33414dfd6721c981e2ce888aa684a21a  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
! a96d9de0861fd2ed45f771232e92380c  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
! b513470cb778c065a8057c7cd164102e  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/addressof.cc
! 6dadc5bddc21acaff258baec3c0eceef  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/assign_range.cc
! 9b957530bf54b4901fada735c373646b  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc
! 0154a8686a71119af12258c3ebac01ee  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/insert_range_after.cc
! c6db790e0b1b7ee34854a9500c8a7cda  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/prepend_range.cc
! c0d2d075a99961fc5913222eaf6b5fb3  libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
! 85a8fc728bc7e6e63c73d76ce6bdde10  libstdc++-v3/testsuite/23_containers/forward_list/operations/2.cc
! b2db8bda7f691c759143d7e24b6a2819  libstdc++-v3/testsuite/23_containers/forward_list/operations/3.cc
! 7686c865be7d00c0beebb4b15b19257b  libstdc++-v3/testsuite/23_containers/forward_list/operations/4.cc
! 0b8effeb56e019e783deed8f706f4497  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
! d27585e183c602b948c5270fe53bbee5  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
! c0ddfadc277157bbbf0a1af4100aaf57  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
! 2668b7fb16dcd516bbff1360b9e07870  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
! 4aff730cefe638248971b8d70f85aaea  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
  7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
! a46f0234773942f1cbcec9a724e09266  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
! 87a4738b3c1c4a96f68150aa2e00ee68  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
! 547cecf5a90710c03d26312977100985  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
! 57f5369ca7b76dc603446d74d3fc9dea  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs.cc
! 7d44536067303a17f9d780052d508088  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc
! d483d82b25027f958271fa7f2076d7fe  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
! b61223ea75d461f7b357dfa1f85f42dd  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
! aee6d611266dc192e5298aa0bef936aa  libstdc++-v3/testsuite/23_containers/forward_list/requirements/completeness.cc
! af04d42bb354816952426708741109de  libstdc++-v3/testsuite/23_containers/forward_list/requirements/do_the_right_thing.cc
! 9cb86c076381f9de71316620e9facaa4  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
! 226f5dc42f688cc28af79f557d1574d1  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor.cc
! f9b23be52df49680aaf8081c1547d972  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
! a1f8dc1885a7321a0fe2cbd42e71fb9a  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
! e6a5fc152870981a226cd2c83b548be7  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
! 63bf8197b14bab1168907e1a987f2850  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/basic.cc
! 98761bd77e7cd7b151bb2b07050f57d1  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/generation_prohibited.cc
! ac08a124d0c1b5c85dcaeaa8f6816564  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/propagation_consistent.cc
! a43185a5b69b85e77575e8d49abcef55  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/1.cc
! 5c3499a2de29235e678aeff1beb2dc49  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc
! 30d3554cdb442b2f7de26fc1e5f1b03e  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/4.cc
! 2c44e5911532da3a8743df96faddba34  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/5.cc
! 831788fd59ab7a57be70ee205dd81c6e  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc
! 1cde00a165e47407126164d18de0e2ec  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr_ignored.cc
! 2e176df2382f53e3a5fb88696c6c5622  libstdc++-v3/testsuite/23_containers/forward_list/requirements/typedefs.cc
! df83499e1883132220e83d223c35fceb  libstdc++-v3/testsuite/23_containers/forward_list/types/1.cc
! 1f989bd4fe44c3ed5563eec35aaa8600  libstdc++-v3/testsuite/23_containers/forward_list/version.cc
! 94bdb044a871b79f988cc493564ca3df  libstdc++-v3/testsuite/23_containers/headers/array/std_c++0x_neg.cc
! a86e424f27a4c8b5865df7a653717ee1  libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
! 02491531a52b56ee2e627a4bbb7c2409  libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
! 1fbb42b4d17f7031f98c04d7c3d4c8d0  libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
! bb935ed697d08edad79b7c46caab8a3a  libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
! bffd5e77f2efce1f0f559ca719b33a38  libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
! ea47a105defca55bb455999c45e54577  libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
! e3e09982fc0a4eaa8bc42ef7730d873a  libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
! b310b77a8acb8e1c9644c670d6ee708d  libstdc++-v3/testsuite/23_containers/headers/tuple/std_c++0x_neg.cc
! 20677cd64a842b37324e3ac263d292bd  libstdc++-v3/testsuite/23_containers/headers/tuple/types_std_c++0x.cc
! da421f8c7821a0a6d7eab3d8001476e3  libstdc++-v3/testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc
! 43de62af8d3c543b80596072975c9266  libstdc++-v3/testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc
! 50bc010406caef63380764c8105e79c8  libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
! 094ef547af977ed770df7574cebf8f92  libstdc++-v3/testsuite/23_containers/list/14340.cc
! 3b20e1014b3833ee8e7934fb97c31e84  libstdc++-v3/testsuite/23_containers/list/18604.cc
! 0c57216d95b8e011d998b31199a3f48e  libstdc++-v3/testsuite/23_containers/list/23781_neg.cc
! f9ba9264d72096689327287251a61955  libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
! bf4a469f6a6ee6fa54b1bfd1e8bc89ad  libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
! 4ccae9a3ae5c677936481fc46e0b44a0  libstdc++-v3/testsuite/23_containers/list/48101_neg.cc
! e2a137f6eb363cf505246e2c0a9a0e6d  libstdc++-v3/testsuite/23_containers/list/58764.cc
! 50e16312ae535864a72d03c368d38e25  libstdc++-v3/testsuite/23_containers/list/61347.cc
! c806c4226001b62dcd0bbd3ea163eedd  libstdc++-v3/testsuite/23_containers/list/68222_neg.cc
! 95f9a50e5f31cf58e96ee90361a7a0a4  libstdc++-v3/testsuite/23_containers/list/92124.cc
! b050b7f408e55ed8666b35011180d2c3  libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc
! f04a6c5370470200f8cb9fe338eba264  libstdc++-v3/testsuite/23_containers/list/allocator/copy_assign.cc
! 65b39db46b79571393e812293eb009d4  libstdc++-v3/testsuite/23_containers/list/allocator/default_init.cc
! e7e37d9c0d0dbb30b1b46189540fd7d3  libstdc++-v3/testsuite/23_containers/list/allocator/minimal.cc
! 50ab9e9edf81dd28110ee302ef1f2c1f  libstdc++-v3/testsuite/23_containers/list/allocator/move.cc
! f954770882609e36d2340aa90009c6a3  libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
! 6609b9415acf5ae052c144d0f1eec1b1  libstdc++-v3/testsuite/23_containers/list/allocator/noexcept.cc
! 787e4fc5c316ca9a72a0204bdc043727  libstdc++-v3/testsuite/23_containers/list/allocator/swap.cc
! b858ce69b8aefdecdf5ff45f6b5a2306  libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
! d056b4d2e12e3e6fb5293e61e8798064  libstdc++-v3/testsuite/23_containers/list/capacity/1.h
! ad62dbedc2ba760e99aa8eeb525dc9de  libstdc++-v3/testsuite/23_containers/list/capacity/29134.cc
! 793274c6c1ec83475ed9394aa671518c  libstdc++-v3/testsuite/23_containers/list/capacity/node_sizes.cc
! 4787f23d978876cf8f9d55e7dbeec592  libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc
! 90a40c1cebd3112882970d45658c5962  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.cc
! cccb371e40eadcc8c692680f9148b857  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.h
! 4fab509fb428ba76a41cb6be2fe0f749  libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
! 6761ed21af62bd3dd2b228607a49a17c  libstdc++-v3/testsuite/23_containers/list/cons/1.cc
! eef9a7d8f050db67ec1ae4120623fa8a  libstdc++-v3/testsuite/23_containers/list/cons/1.h
! c5f86d9b8e2bc2eb3180072659517931  libstdc++-v3/testsuite/23_containers/list/cons/2.cc
! d3a94eae3ffa737419d58dd49c0a1dfc  libstdc++-v3/testsuite/23_containers/list/cons/2.h
! e95012a3fcc8ed06d7f74c424a5f15c2  libstdc++-v3/testsuite/23_containers/list/cons/3.cc
! 0a61e9c3253f3c49dd84476a8571e0a6  libstdc++-v3/testsuite/23_containers/list/cons/3.h
! b3129176f6d2abbb5757bf691879fa91  libstdc++-v3/testsuite/23_containers/list/cons/4.cc
! 3b0263fa1f9fd32ab5b8c5445936a98a  libstdc++-v3/testsuite/23_containers/list/cons/4.h
! 785c8c1c44829ab0294afde209a5003c  libstdc++-v3/testsuite/23_containers/list/cons/5.cc
! 24912c75889d19f38784495f3beb0ac8  libstdc++-v3/testsuite/23_containers/list/cons/5.h
! 23021255d5eb2dbc1b43691661cc2a77  libstdc++-v3/testsuite/23_containers/list/cons/55979.cc
! b117ad56fb00a57d323f86fdb11e1473  libstdc++-v3/testsuite/23_containers/list/cons/6.cc
! 522214b2d217ce873aace09e45cbe004  libstdc++-v3/testsuite/23_containers/list/cons/6.h
! fac9ddb585e56277ac1a412a1436e3a0  libstdc++-v3/testsuite/23_containers/list/cons/7.cc
! 65cf55cb50a82906beb3e65284cf95ea  libstdc++-v3/testsuite/23_containers/list/cons/7.h
! 205b714d556f14936a1f809a890dcff2  libstdc++-v3/testsuite/23_containers/list/cons/8.cc
! 28ea5dc733202b09bb2073fa318cdd53  libstdc++-v3/testsuite/23_containers/list/cons/8.h
! fa6b0157ef5924e917be6c15f7869c85  libstdc++-v3/testsuite/23_containers/list/cons/87809.cc
! c9d5e2f44926a3ccb107cf92c9b7fbd3  libstdc++-v3/testsuite/23_containers/list/cons/9.cc
! cd7e0f9e5061972d36040935df88a847  libstdc++-v3/testsuite/23_containers/list/cons/9.h
! 22129c5559b504225dfdcc96a17f6925  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.cc
! 67bee662027d395d42acf3a226dd7a21  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.h
! dd79bb5b698696c8ca344dfa1e5658bd  libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc
! 63c98f5f3444856f37218e79d68e9ab3  libstdc++-v3/testsuite/23_containers/list/cons/deduction.cc
! 936e15cfecb41f6f331c4d2f40ff3cfa  libstdc++-v3/testsuite/23_containers/list/cons/from_range.cc
! 876fa69dbd444eac1b95089b95c7fc89  libstdc++-v3/testsuite/23_containers/list/cons/moveable.cc
! faa103da8fc4c759ef876d6b1c88478d  libstdc++-v3/testsuite/23_containers/list/cons/moveable.h
! e42ab7e2757f48b5f07cd0c74f6cc05b  libstdc++-v3/testsuite/23_containers/list/cons/noexcept_move_construct.cc
! 66f6417377194203c834175f1e628cc9  libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
! cf504a27ba1e8f7073cb39b7385073ba  libstdc++-v3/testsuite/23_containers/list/debug/90102.cc
! cc68601c9983096bce17e967608ede82  libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
! de7be83b23aae556372e1c1558df2ede  libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
! cee8c6a2bbf3956c714292e0c4ece084  libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
! 393edc9052d95b607b64b59139efaae0  libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
! 26bcd7a2b9bd7de1ca85b8ed89b7e9a8  libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
! 7a341269b9c7834b80e211ab7f65b4f8  libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
! e4429321fd6d5bcd4a093e5ecf3ac829  libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
! 222b9e74868d962a18f951b3d041de56  libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
! 09560773189d86908d808d0b14d8bec5  libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
! 877afaf1c905c536b4395df72c53dcad  libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
! 467b66643fa4ba978007ed6400b2b631  libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
! ba0d354aeac0c609a162e37eafd9fc82  libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
! bfc19eb18dfd002a3d489716dc8c7887  libstdc++-v3/testsuite/23_containers/list/debug/insert5_neg.cc
! 27013df986a30adc76c4dfaa9eb842b8  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
! 3dabc8b6c72a644898e0229d7f62d4bc  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
! 7e791f1592a31708bc6045f91e475ede  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
! 3629e8f8bb926f7f55c39f7a82bc2e4d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
! feac5e80c1a117c48a8ffbd5260496a5  libstdc++-v3/testsuite/23_containers/list/erasure.cc
! 8b6d0c3eac54275082613b409bc02af5  libstdc++-v3/testsuite/23_containers/list/init-list.cc
! 7d580d670a68a68ea95b223afe5bcf70  libstdc++-v3/testsuite/23_containers/list/init-list.h
! ec2d48c0dd4c60022757ab1e5f68d07f  libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
! 153375d6c1b181e22b723cfcb2b7ec7e  libstdc++-v3/testsuite/23_containers/list/modifiers/1.h
! bf9f48604d4902674422bd59ec34ab2e  libstdc++-v3/testsuite/23_containers/list/modifiers/1_c++0x.cc
! 186bf5b5943fc33e7dd5d20cd1387e9d  libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
! 27a8adaad086c15bb49a9e4d55f5e8bf  libstdc++-v3/testsuite/23_containers/list/modifiers/2.h
! f0829768ffc87d5bf47f78f4f21e7c26  libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
! cd96a82ef1f8ac179186f4e43ade7db2  libstdc++-v3/testsuite/23_containers/list/modifiers/3.h
! 1f63d5a37e9ea97f74a73b7f6e2d2408  libstdc++-v3/testsuite/23_containers/list/modifiers/addressof.cc
! 565180e0ce1af4e8a8c23f4ad41d0957  libstdc++-v3/testsuite/23_containers/list/modifiers/append_range.cc
! 34cd7e87155d3175f6af5da57111f5b3  libstdc++-v3/testsuite/23_containers/list/modifiers/assign/1.cc
! 4f52fa8b3d4028385b4d97e04db340c6  libstdc++-v3/testsuite/23_containers/list/modifiers/assign/assign_range.cc
  c25b0a9dc317b9f58288d8f92299007f  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/1.cc
! 48027842ff1c328fdd87b71d61fbf867  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
! 4df59fc0099fda4156efc3a58c741b83  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc
! e89d0befcad06c8faae569ce4f21b88e  libstdc++-v3/testsuite/23_containers/list/modifiers/erase/54577.cc
! 61111c5e9d228e171630ae81d7f4ab38  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
! 9273f6e4ec1bc358e411c2fd1e2318e6  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.h
! e5b5f656d353d57a423104eb67d0d99b  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc
! 1f56b3eaac169b33652a3f997642ffc7  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/insert_range.cc
! 382c6c7325007005faac4f30baf3eedc  libstdc++-v3/testsuite/23_containers/list/modifiers/prepend_range.cc
! 454e9c588fd9f3629aa7ad8901820646  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.cc
! 3c7d854629cc15e1095cadd79706706e  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.h
! ad5bf0845c17b7e5799c9f2a9ec77ad0  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.cc
! 24a721796be598aeead7b40cab4a420a  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.h
! c0498c49f7cef5432ba245363edf3c77  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.cc
! 734211d7f8fcf4d6171fa0d2b596a642  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.h
! 0ffafed6b6d5093a9234953dec53335f  libstdc++-v3/testsuite/23_containers/list/operations/1.cc
! 7791648852daedcde75aad64cade0b31  libstdc++-v3/testsuite/23_containers/list/operations/1.h
! 43814eac45ae74811a034e793f8ed715  libstdc++-v3/testsuite/23_containers/list/operations/2.cc
! ba66478dfac6d4207b17006a9d432335  libstdc++-v3/testsuite/23_containers/list/operations/2.h
! 11fbbd31e862bbe4937548dfaecb2c33  libstdc++-v3/testsuite/23_containers/list/operations/2_c++0x.cc
! 36e6a6eb5b639a53c37572e9f61457f8  libstdc++-v3/testsuite/23_containers/list/operations/3.cc
! 4df7aa3159005105c14007083347f682  libstdc++-v3/testsuite/23_containers/list/operations/3.h
! 3f52dadf49eb51124821cfbaaff82c3c  libstdc++-v3/testsuite/23_containers/list/operations/35969.cc
! 1b7d5a43d1536437787dff34d04cc363  libstdc++-v3/testsuite/23_containers/list/operations/3_c++0x.cc
! b1f0df26cb7d27f9a6241a29b4c81956  libstdc++-v3/testsuite/23_containers/list/operations/4.cc
! 4d4960475c53719dc6c8b5e069fb56b3  libstdc++-v3/testsuite/23_containers/list/operations/4.h
! f76065448fe9ee3d5abf6fe68ce3c787  libstdc++-v3/testsuite/23_containers/list/operations/42352.cc
  e9b09b08be9f79aee16cdfe50434376c  libstdc++-v3/testsuite/23_containers/list/operations/66742.cc
! 651259dd3016519a26ba8d676084fa3a  libstdc++-v3/testsuite/23_containers/list/operations/78389.cc
! 994af7f60e9c4f85d170ee34f8df1320  libstdc++-v3/testsuite/23_containers/list/operations/80034.cc
! 1e51354ff866687a47466bc93c8592ea  libstdc++-v3/testsuite/23_containers/list/operations/91620.cc
! 2e6e995f995c435be769a99e4625160b  libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
! eab6530fc31748f6885a50e91506551a  libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc
! 81449ffae52a0fd56971eff52975c3b1  libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
! 1dfc7aef760483ee823262a746b67c0f  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs.cc
! ebf935fd3eb22971a628464106b89738  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc
! 25cd85b337d3abf03069f3b53b6c62c5  libstdc++-v3/testsuite/23_containers/list/pthread1.cc
! 88063e408ae0e3abfe39ebb0a4058ed9  libstdc++-v3/testsuite/23_containers/list/pthread5.cc
! 21e714f90ff2cfee9579747797cd1e57  libstdc++-v3/testsuite/23_containers/list/range_access.cc
! 658831d66531b20b8339f73329386d28  libstdc++-v3/testsuite/23_containers/list/requirements/citerators.cc
! c362cfb78f30b143680fde0c7db01334  libstdc++-v3/testsuite/23_containers/list/requirements/completeness.cc
! 929ffd641bf7919e384c9fdcc1124cee  libstdc++-v3/testsuite/23_containers/list/requirements/do_the_right_thing.cc
! 158ac2f23fd151920783c56428e5c755  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
! f2394d263c531a6ed3cdf81f0e4a737c  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor.cc
! 04ae621c93e10297ca1aaa59b455a18e  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
! 60cc2fe68fa1ea355f9784f301a36718  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
! 6797a99728cc2b88ece5a145bddbfd21  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
! c7dafeda2403f18ab0c50ebddc2e6a2d  libstdc++-v3/testsuite/23_containers/list/requirements/exception/basic.cc
! b94335c75d4571b1852d631e0c1618ad  libstdc++-v3/testsuite/23_containers/list/requirements/exception/generation_prohibited.cc
! 673124ee4b94c34c2b9b8a674305e1ff  libstdc++-v3/testsuite/23_containers/list/requirements/exception/propagation_consistent.cc
! 935654c1253cbdc3b53fd81c2c6ccb34  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
! fb74dfbafa81397faf2dbfdd768ae0a6  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
! d4a671902bc37dcb5e32ca32b50c4b8c  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
! 930ea772188e1ba87bcbb780afaa0355  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/4.cc
! 341995a7ebabab404e6728e4a7789e23  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/5.cc
! 9d96b0adfd2a1f4476f82e535f52ff09  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc
! 11786da66641492635ea892f71e202d7  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr_ignored.cc
! 3d427329b69d008aca1897616c92b12d  libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
! 9f1d2b93a795510233a440e9d174c1ef  libstdc++-v3/testsuite/23_containers/list/requirements/typedefs.cc
! 902f5ab938670b2853d02ffdfd56c876  libstdc++-v3/testsuite/23_containers/list/types/1.cc
! 6f77f8f5355e921917c6eb07503b9c94  libstdc++-v3/testsuite/23_containers/list/version.cc
! b02bc76dc999d095e709c7f4281efc16  libstdc++-v3/testsuite/23_containers/map/14340.cc
! 474231f53f047961292e1c1e1d8a7ede  libstdc++-v3/testsuite/23_containers/map/18604.cc
! f8cbb59bbd281864373f3f8f0964c9ae  libstdc++-v3/testsuite/23_containers/map/23781_neg.cc
! 8c4a232e3ba9d740a2d9669df02a5313  libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
! c0915289dca85ca83fd9341d9b82b08b  libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
! f7523b75165214c52a3358abe926852b  libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
! 224d3b5effa1903f92b351db7228126d  libstdc++-v3/testsuite/23_containers/map/56613.cc
! 80c0b094e095f6e7d9e6d4fef5ecd5be  libstdc++-v3/testsuite/23_containers/map/58764.cc
! 69f78614222763748d1f429459359237  libstdc++-v3/testsuite/23_containers/map/59872.cc
! 35275b26df001323923ae118b0d3c92d  libstdc++-v3/testsuite/23_containers/map/77334.cc
! 1773901b24ff4caded74b04cd8b4845e  libstdc++-v3/testsuite/23_containers/map/92124.cc
! 624221f3628371a8e1b23aeb7339f4e8  libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc
! 4d3d8b88ef7ccdb7517d77672761378a  libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
! 207205dc81035363141e81e2fa5c0dc1  libstdc++-v3/testsuite/23_containers/map/allocator/default_init.cc
! b2a57dc64f4a4f35ddb6c2faa83deb1c  libstdc++-v3/testsuite/23_containers/map/allocator/ext_ptr.cc
! 6795354b5c9e3f98108705ece6a13328  libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
! 60f05c1ee02c8785a064324455d63a1f  libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc
! d12fbe32efaa977e8bb457fcf560fdfb  libstdc++-v3/testsuite/23_containers/map/allocator/move.cc
! 081f1d426c613f004986efc254f13bd1  libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
! 393d2a2a419c4029d7a4624068626598  libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc
! 346bccacdd95c3295e208b50bbd77ba6  libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
! cff9faa220513d3bdaf1133e4e84785d  libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc
! c7ebc5ef6d95a77e079321eabfed370d  libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc
  16c187179e9e1a4ff16cf122fb20804e  libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc
! ba09b7f0b0d7f8180650a9e7854a4fb2  libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
! 09ed0fef475ed3e5f3f64a50a804df1c  libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc
! 033cb096bd5033db7b28c465b0ed21af  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc
! 684d8c537316b2619b2e286cbef7d729  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc
  62c8fc35a2126407d843225adf9afd90  libstdc++-v3/testsuite/23_containers/map/debug/112477.cc
! e95a03233f94b13d5137e645686dff2f  libstdc++-v3/testsuite/23_containers/map/debug/60499.cc
! c59935ace3c3590f9743a79a2f573cde  libstdc++-v3/testsuite/23_containers/map/debug/90102.cc
! 2a0664f5da1b89c131b58e208d1098a1  libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
! 1f1124a8a55e0034ea5e839380069784  libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
! 7875c56fee7ca02470573a34acae9705  libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
! 214bc2acded81171fdb99f5adbc9571f  libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
! 0db8e866eb5a90606d08e75c14672ad7  libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
! 38ba936fc92f2d4707f0c66098632857  libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
! 2aca41d8bb56d1dd18cfed3f1b356ed1  libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
! 3cb102903ca1643aa6ed5a7a351607af  libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
! a582314a4dbb7d23ec711fbdb0b0f215  libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
! a0177c2da35cdbf0f95aaf37dede3219  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
! 892c6e20d0f95e2b137d154ac3245ff1  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
! 373a47c8e339e1c2d8c446835c2567db  libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
! 0fc613f9ae934cb52695c73b8d549382  libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
! a260f2bd45c7128b1f57ab71f19c2938  libstdc++-v3/testsuite/23_containers/map/element_access/1.cc
! 094a27feb68bb2c53387683e3a35e98c  libstdc++-v3/testsuite/23_containers/map/element_access/2.cc
! edfccadaaa739ca9c97a5d6889e0c28d  libstdc++-v3/testsuite/23_containers/map/element_access/39901.cc
! 202e2fb7d5bb6951a2290d54f0202580  libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
! a36accad1b38d2abc19234b3f5f8847f  libstdc++-v3/testsuite/23_containers/map/erasure.cc
! 55ae53d4b84e0b2a65019a2b8e1f7212  libstdc++-v3/testsuite/23_containers/map/init-list.cc
  8642b25c59832140c46994b559a3d1a8  libstdc++-v3/testsuite/23_containers/map/modifiers/108554.cc
! 2b1967ff257da3f55169974e93819e4f  libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
! ce0195160622cf131e4aad6aa41dc47f  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/1.cc
  205086c15a257b2b3847ce68833198f5  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
! 7f6c2434034411e28fad8be57884d7b1  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
! c50cf51c55c9deb951f8f2096c71a9c2  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
! 3958353959e87a3fabc666fcaa739e3a  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
! 0dfbcf13a93d5e81fe37eb8162ea5d94  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
! 33c59432b6419654050aea3e198d0311  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
! cb67b48e3117426a173c32697f08f81f  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
! 7f2f0399c8f64f873726e762f1f12b39  libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc
! 9392d0d30ba265dfe8eaaa44e8aad53e  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
! 639699876e29211bf06be9c0c12231e5  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
! 7b128ac5f2761c2f7aa6279f798d68bc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
! 4fc7498fbb01de1f131442c446429786  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/3.cc
! 05ee96fe03057105e0d906564ef6af64  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/4.cc
! 0ae597c1fe45374df47795275a917cf9  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/5.cc
! aa6fe6f58d9f64fcdaf04fbb7ea1d648  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/78595.cc
! 1286a3d550b4e89f04c63b5c1c934ccb  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/83226.cc
! 854e271353bc984a0cd045b2600abdb3  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/87194.cc
  bf1079f7dbecd612e1c7ff8cc0558abc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
! ae9cd13a05de55fb8c877c965a323c50  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/dr2354.cc
! 35e76b4638a4cdc67a000488ae5d7e86  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/insert_range.cc
! eb7c2a0ef0b677ea8a511c3230a4b3da  libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc
! cd045f1468d6e4918e0dec2a9815eca1  libstdc++-v3/testsuite/23_containers/map/modifiers/merge.cc
! ad8783e55ca71cfba22c8f38e0ad0b07  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/1.cc
! 93b9f3043aa357c541fcc4f71efd6761  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/2.cc
! 6497a07486055ba1b5b4a95ee1b818f6  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/3.cc
! 1aeeaebb612b2081140871642a86374e  libstdc++-v3/testsuite/23_containers/map/modifiers/try_emplace/1.cc
! 1f971b624c33abc868a85278c9422052  libstdc++-v3/testsuite/23_containers/map/operations/1.cc
! 5350d367977c046495223ca97cbc9a3f  libstdc++-v3/testsuite/23_containers/map/operations/2.cc
! 208f380fe51a94e5d2cbb45d22fb068b  libstdc++-v3/testsuite/23_containers/map/operations/31440.cc
! 48654aa0be69aa74ca73c4e27db6a690  libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
! 81926b0038274f272cd67dcd6598c75e  libstdc++-v3/testsuite/23_containers/map/operations/count.cc
! 426754cd0b2a1057a1fa66080fbde6f6  libstdc++-v3/testsuite/23_containers/map/operators/1.cc
! da80e7967fd3db9a29feb11df8cbcd86  libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
! 2f4a83c4e5d8830eec7b5e72e167fdf7  libstdc++-v3/testsuite/23_containers/map/operators/2.cc
! 765d79e4816974f4f840ddb80190d3c5  libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
! ebe178af08e002505c0d911c6cd2af7c  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs.cc
! 6ea1481e94de44d1d2993264930e2fbd  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc
! e03915901958cc29b41dbd764458f51f  libstdc++-v3/testsuite/23_containers/map/pthread6.cc
! b7be543cf36524a347ef7122dacb912b  libstdc++-v3/testsuite/23_containers/map/range_access.cc
! 32cb141925bec0fd9797b357c05ebaa0  libstdc++-v3/testsuite/23_containers/map/requirements/citerators.cc
! c66d908f1f2272200e099c4ec789b4b8  libstdc++-v3/testsuite/23_containers/map/requirements/exception/basic.cc
! d7322d7fc18f07242a9c605efef61054  libstdc++-v3/testsuite/23_containers/map/requirements/exception/generation_prohibited.cc
! 0195a4a300e3e18bcfa0a5a2acbe3e0d  libstdc++-v3/testsuite/23_containers/map/requirements/exception/propagation_consistent.cc
! 0e5c694a219766e1ea4799acb7cc2cc2  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
! 06d81a7d10f68b49c3d283fdb842df14  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
! 3fa2582c2034c7a40755a769b88b54fe  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
! 9be825433a9bd33f507bd2b89924d286  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/4.cc
! cc42abd3f12e4e2d740c196077e9dfbd  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
! 1e719131ce8d3c52ab96fb6320a2682e  libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
! ef8992fce519e4aeb10d10129736a163  libstdc++-v3/testsuite/23_containers/map/requirements/typedefs.cc
! 1a429dd433a9cca8518d6eeaf0db7ff4  libstdc++-v3/testsuite/23_containers/map/version.cc
! 351e436ffeeb8e47804c6992b75a81cb  libstdc++-v3/testsuite/23_containers/multimap/14340.cc
! 5bf01016c0929346c0086fb8a71129b5  libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc
! e49224c2f36823b4ec1be684dd0c8090  libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
! 292eec117056e97e330ef594e6902524  libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
! 8c85d6badbfbe6f06079a7cfe27b5177  libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
! 4da4c1fb4ca1295b65ba9da8d254e16c  libstdc++-v3/testsuite/23_containers/multimap/58764.cc
! 59820d7f6cc3480b57f92d5e34360cfc  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc
! 813e4b0de87bf63eaa7e6077014b8067  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
! aab122fa30d9865d25fec417a7a74b33  libstdc++-v3/testsuite/23_containers/multimap/allocator/ext_ptr.cc
! 14afe37e4f2f6b55bcdb6b9d2b69a09c  libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
! 0c25a78b295bb447def8f9f67a651ed7  libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc
! 7d1bee77cc07e1a9568d2c4a6265f05d  libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc
! ad91e078e5a0fae31c63a28dcbba8933  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
! b8da5d4bfbf7818358970c30ef14a61d  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc
! d6b1a09c9ea9d780b4de5acdae3be570  libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
! 96cdd753c3b4051c8d3ae02d75d64bf7  libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc
! 6f75d965f8f0cedef9c412617a181607  libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc
  9fc3989fb543a9b01e92a0c23926622f  libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc
! 988329f1a3a13597252b2f3c5c7a71ad  libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
! 8c28ca28b236123ece1cad21e48effc3  libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc
! 24dc1212a66a79c4e381497c9de4d35b  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc
! c537ade094ed25b49d5b15012f5ec343  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
! 2c07c9ddf924bf70b4ee554db9af4e87  libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc
! 4a2fd972fdf6a16d2d002b0581233e30  libstdc++-v3/testsuite/23_containers/multimap/debug/90102.cc
! bc83179e4aab43ea9df2950449a946a8  libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
! 2a93686a83ae6ee53bbd21f34bdd447f  libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
! 16446e39be22d6d28f2f736b34cf3f45  libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
! 50036bb2b4bddcb35d7ea2e2b36feded  libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
! 8703c0285bef18a19a0848bdaaacd1f8  libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
! f8aeb8039c16b4dc5aa12b3b5c3fea96  libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
! 74cd9c57c9776e3d9aedd842a53cd02e  libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
! 4fd372cdba1ebaf9f2fe48c0c0e6d601  libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
! 2734606dbb91eb2dd5c134992cdbc224  libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
! 21b5d7c9da8b695175ec2e4d33421535  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
! 41c5288e848c3b291155631b60992703  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
! e1ce11442eacde01756a8a4091d2a00e  libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
! 8a3c354a779e5f061583eaa52f86214a  libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
! 578308c5e12d1458ddf7c81a7b89c4e4  libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
! 4fb4952b7e31df19b3f8a8ec49d24714  libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
! 28c8b0a6947f2fc018be01a70f31e8e4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/1.cc
! 46df865f26368b21f3a8498f8764f82d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
! 7e7d3c478b49acd5da91b8e562953f12  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
! 3518c896ec9d2cb766d3bde8eb56f1fc  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
! 79a82e47f787ca3e8f0beb7cc2087d76  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
! a274b92962bfff8b43ab3eda00368c93  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
! 6d1fa93d203729ed0d9ed3c994d9dc4b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/extract.cc
! f5f6cd855087c99a1736a7b2f72adcf4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
! 7d4d8b1417d3e69124c7b73ec2a2277b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
! 93a7eea90561af990e28a224d0ff910a  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
! 82a78ef95b5e6f253bde47cff08f30d7  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/3.cc
! 85438bde3d2aab9ac6be50814b9bf5a3  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/4.cc
! f0ec7d1fed78b195e94432a5e78f9384  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/78595.cc
! 8cf3315786ca2d4aee09f6bdb2890282  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/87194.cc
! 39f62d8a1526ddb46137cec1425d6f9d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/dr2354.cc
! afa5f753174b312ca04573c15027ee8a  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/insert_range.cc
! 011c68ca831face28cd5f0442e6b6ece  libstdc++-v3/testsuite/23_containers/multimap/modifiers/merge.cc
! 42efb08d276cb84034dfe1811628b8d9  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/1.cc
! 9e0a7903891d38f139b20aab99ee94a3  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/2.cc
! 59ea8fdc3482bf33f53530c54cc1d725  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/3.cc
! 942ff87741ccb3d4263eda8567b1aa96  libstdc++-v3/testsuite/23_containers/multimap/operations/1.cc
! 2a87cd617291e6de2e95e53642e98fe2  libstdc++-v3/testsuite/23_containers/multimap/operations/2.cc
! b6a0af397db2ab355e40eb667ecdd339  libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
! 278f998904f85ff0ebfdcd13cd775a17  libstdc++-v3/testsuite/23_containers/multimap/operations/count.cc
! 74de99dfd24261ad8429d39d83b37d20  libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
! 1f5d2149d65c13056fccc552bc1caccc  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs.cc
! 9a502e49a011b510d023854017c815c8  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc
! a74167caa58f1e77fcb3d921c421a4ce  libstdc++-v3/testsuite/23_containers/multimap/range_access.cc
! d157d051baf7d1f9a86802c723a16ff1  libstdc++-v3/testsuite/23_containers/multimap/requirements/citerators.cc
! 11f9b62ebbf2a23c4e59c47051353289  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/basic.cc
! 6e8629f47b8beaaa320853cf4ea09277  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/generation_prohibited.cc
! f77f9016af48525de34be9fca777f72f  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/propagation_consistent.cc
! 105c43ac05f66f3557eb09e419c9715a  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
! b733da7e706ef69d9bc54e42239e476a  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
! fc4cb06d78ce1493333aa225eb8fc5a3  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
! fc05e05e6a593886bcdeb26b315d9a9f  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/4.cc
! 9af83cd419dacdda9775d9f4430c487b  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc
! 34683de848609391cdd27819ae39afa7  libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
! f96d165525267450c6d67650dcbcf368  libstdc++-v3/testsuite/23_containers/multimap/requirements/typedefs.cc
! 7dede90a1cbf2ed31dd43cf3e142ecde  libstdc++-v3/testsuite/23_containers/multiset/14340.cc
! cb0a3e63b90f2b233aae9f43145b9e9c  libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc
! 721633374267ee4aa569ef1c52be4798  libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
! 12f97f4a98ee5eebeb891823c686f12f  libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
! 07081b7bdcf7fb679cea4a99b79ce81d  libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc
! 1567bb0963d1736efeeb5066ddab3528  libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  c599e48655ea2e75c592ab5a1cf5ae3c  libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc
! 8d7f8c485a67a7b7ded260b7dd8cd858  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc
! dd1f053e4b9ad4f1efd04a82cf190f86  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
! 198a4529b4a90febfb29faa4e8947500  libstdc++-v3/testsuite/23_containers/multiset/allocator/ext_ptr.cc
! b96ad330a67a49383bf78a4abbb23e10  libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
! 94bfb73f8aa4ff8f3eb2a7d00b95f79f  libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc
! 8808c5f1fa45870f5e7fb658faeed8b7  libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc
! e3152eda31b8bb7af1230254b1b494ec  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
! 65e2b272260db341894df6da790b12f5  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc
! a618836d524957820997977e4b5bdf87  libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
! fdbac16d5a2329ae21ebbc420a024f6d  libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc
! 1941c422603874ea5fc447af7fe02355  libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc
  bbb896871fd7c7c3f4be6d45db152294  libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc
! 93db749c371bc6921c917cf1d6ec0fbc  libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
! 4870bd2ded5c5c2a58bde7896089a966  libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc
! 45529da7f9670a2d359c2b87160de893  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc
! 1e53c638526c7ac837364f1df451bb2a  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc
! 7c8ff634ecb57d57aeafb483e2518b3b  libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc
! 9104e070104fb78bdc65dcb5eeec7728  libstdc++-v3/testsuite/23_containers/multiset/debug/90102.cc
! 09e876b3ea2869f26649b5c44462cbc6  libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
! 93e6aa6b32e7b293c7d7461a6200f7ad  libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
! 17d8ea5c339cafc507b743e27237c9e0  libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
! 39b9e6e8ad495860cb0eaa819f823032  libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
! dfcf3994476085b1c358a0a29f4662f1  libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
! c279c88257bc4bf06b798b8a4e913564  libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
! 8df8b8af4a2f65c28c1224c9feef88fa  libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
! 150837fc66ebd744055c4292d8b8f380  libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
! 6424060b9081208e04faada842e6efbc  libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
! 74fb0e14bced03978ddd859063babefc  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
! 2afa908d15253ba0de778e3cc8a54f9d  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
! a3b9cd454b231647102271549bf761eb  libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
! f8d48fadc072c39aa8ff6d9aa2cb8114  libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
! 4aa69a21adce76e211516412a97e9b9b  libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
  b761d5230bf4935944006f713e5604d5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc
! 1fd2ac24f835c2e379e0d6934677762c  libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
! 6f86b153ae9d69991d892abf98427c94  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc
! 90d7e4c453df5ca7c13f0c1698479329  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
! 4163ffd2fa02010f58ec869b9a65d176  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
! 961ab729c145e772a71b7a6d3760a43f  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
! 5589dfd8ac09b42190377ffe04aff0ea  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
! 111797990086a61af40b156c8816cdfe  libstdc++-v3/testsuite/23_containers/multiset/modifiers/extract.cc
! d27ecff8e3f564bd19ce4577ffae3b79  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
! 9897a255c08140ebddd9afc5daff7554  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
! a948c86556093083de4036fe140bfbb6  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
! d8ca731d959ecc0e0a0167265b5e85df  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/3.cc
! 7c09de005712c9d828f3c6a665d03223  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/4.cc
! 2e22ff4c5e05ac3e9d1f8d5c7460b436  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/87194.cc
! 7c14040f27b9d6d1ddc33d97bbb38abb  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/insert_range.cc
! 0b4ebfa75381f987326bfca93f570f57  libstdc++-v3/testsuite/23_containers/multiset/modifiers/merge.cc
! bec558d71e13b0ad16cf7772e27e463a  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/1.cc
! 8fd8e9869eb2bda324903ffe46ca18ac  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/2.cc
! ac104eb746980ff338f40eb86fa39e11  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/3.cc
! 0b4828bac7eddc9d3c632b1a7f8f3be8  libstdc++-v3/testsuite/23_containers/multiset/operations/1.cc
! a136ae5586e507fc004a84be37a290a4  libstdc++-v3/testsuite/23_containers/multiset/operations/2.cc
! 46dddaedfc0a8935632186391e9079fc  libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
! f1809cef61ecec9e0944d637f96fc88f  libstdc++-v3/testsuite/23_containers/multiset/operations/count.cc
! 64718d7ff23a112e16d1c045d8973c20  libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
! 1c0f0455cc1744d8052f260b74f0474b  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs.cc
! 91f7e9419b52f8f79da96570624dc69a  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc
! 8fb9cce46414eb10a19823cd321eaeba  libstdc++-v3/testsuite/23_containers/multiset/range_access.cc
! a50c8dc323133455a18cf1678b2c1ead  libstdc++-v3/testsuite/23_containers/multiset/requirements/citerators.cc
! 3ae3be16286f1b1fe2a55617ac33a2fa  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/basic.cc
! 0c0f108a8292406f4e7d4d42b5e81885  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/generation_prohibited.cc
! e24e08f3698bf53e669059207ef437ac  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/propagation_consistent.cc
! 807db2d240c32713634541b3d863854c  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
! 1287ee7c8be2f2b5a9110d009af45aef  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1_c++0x.cc
! b0e01fd6e6e6beceb4087c605fb04da0  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
! adf8ac77cade53852abf157a6b1f3698  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
! 18161c2468ce61112e97d69803f14ac7  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/4.cc
! 0503c833bcc2ab2620996df60a82f2f5  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
! 6a796be0d01daf1f4b8f3e0751da4a18  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
! b373b445138c62c7b97eff24aadfdb99  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
! c2def03f80594fdacabf96a3fe28473a  libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc
! 041af59f6d27051084ca1920733ddf7e  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
! 15759ca9293204b2aaddf85911a75a43  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
! 4fa9d4c1bb60631fd13dd3a3949bc62c  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
! 9acecc106d67e0e39077b7af2e594746  libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc
! 3b183dd93ee947a513bf68c877e9bf62  libstdc++-v3/testsuite/23_containers/priority_queue/cons_from_range.cc
! 058ffd2d9c8a5ce3f89fdb5b036420b5  libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
! e695330b9b97e54e1c6e4f6b0f69ace7  libstdc++-v3/testsuite/23_containers/priority_queue/dr2537.cc
  d28290e2547d3a24b7652041265d30c0  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3506.cc
  1b78335293495d23cdfab47884650bc1  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3522.cc
  a0bec79150ce876cf8e27c12caf9e151  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3529.cc
! e8d6309c2f168fe4c4a6642fee8a4ffb  libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
! 8241ae79f4eb459fc333bf2d68d79047  libstdc++-v3/testsuite/23_containers/priority_queue/members/push_range.cc
! a892150ef8227a7cb7c4f8b804952092  libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc
! 6c1a906e66d54e5439a8c5f4938e2e09  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc
! 867e3d7c47acd1562ba85ad2f9972598  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
! 8bb31659b7ba8ec1f21eda82c90975af  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
! bf41977e8479f73dcdbfcd612dab5c23  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/typedefs.cc
! 7cd8aa7474758026cca0ad8ed9833343  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/uses_allocator.cc
! f9dfe0c64860c781d21af563d512e3b0  libstdc++-v3/testsuite/23_containers/queue/77528.cc
! 6e0544e245c6caaada731a8c67b6d419  libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
! 83c3ed57aaf705fe8f97cdf105f322a3  libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
! d0d21df3f0eefe94db4277fab2a54354  libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
! dc7631b4b7f464f3e69220e4b2fc9b3c  libstdc++-v3/testsuite/23_containers/queue/cons_from_range.cc
! 8a242b4adbf0cd9ee8e2c3d5e0dbe506  libstdc++-v3/testsuite/23_containers/queue/deduction.cc
! 641b571ad59a55f9c3f1d939a51f31dd  libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
! 48c35751ff63bc594a7ea6e43b5c0979  libstdc++-v3/testsuite/23_containers/queue/members/emplace_cxx17_return.cc
! 7862723a7e643cd75b64dbbf4ce85889  libstdc++-v3/testsuite/23_containers/queue/members/push_range.cc
! ffede9e365a0162408cedc12ed331c4d  libstdc++-v3/testsuite/23_containers/queue/moveable.cc
! c3268e8691225d60b7b49f3954a58715  libstdc++-v3/testsuite/23_containers/queue/requirements/constructible.cc
! a0a53f37e52c90ad943d282525473ece  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
! 266eeead73052eaa947f8c952c3b11da  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
! c4804ec43c795f4633320a75cea81b07  libstdc++-v3/testsuite/23_containers/queue/requirements/typedefs.cc
! 81f2d28363c34fb918f6f491648726a8  libstdc++-v3/testsuite/23_containers/queue/requirements/uses_allocator.cc
! e84db5fb6b047bd6dc20f95944aa2a8c  libstdc++-v3/testsuite/23_containers/set/14340.cc
! b10a29716fd6e4bdef5ea2f1b175c1b1  libstdc++-v3/testsuite/23_containers/set/18604.cc
! 0cee3410038d18ef302679e00961900b  libstdc++-v3/testsuite/23_containers/set/23781_neg.cc
! 80049b2712f011348299cb3a04379353  libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
! 34b5de2ad02c6e7fcdf995b11b8613a1  libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
! a158eb74c3e4ff6b6641a12ecd12a2a9  libstdc++-v3/testsuite/23_containers/set/48101_neg.cc
! 146f825da793861477291a135dcd3b73  libstdc++-v3/testsuite/23_containers/set/58764.cc
! 2f4e45a1dbd39289fca3d4558c48dbd1  libstdc++-v3/testsuite/23_containers/set/85965.cc
! e144215122935e61b0fbbd6a80f030f4  libstdc++-v3/testsuite/23_containers/set/92124.cc
  4934612c2b7203e0e300739be2067260  libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc
! bc71f05921ea40c5491c0a4cc49fc3ec  libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc
! aefd60d1edb2a09b4ff4a84c2a6ad619  libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc
! 4c1f9b3056d898251ee800e5743798c5  libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
! c765c95bcff7df9a9a84c1c86822c3d2  libstdc++-v3/testsuite/23_containers/set/allocator/default_init.cc
! 4d3f6415cb8f27aac132f5dcbeabc7c9  libstdc++-v3/testsuite/23_containers/set/allocator/ext_ptr.cc
! 21da0688729d1c5e6a6c70deb03f6b77  libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
! 27970ae2e301c4058ca8c736e6982f27  libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc
! b51abbc4df897b575baea9c331a376af  libstdc++-v3/testsuite/23_containers/set/allocator/move.cc
! cc9ac306faf34730b2f971f125d7b031  libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
! 207ffea5881a3dd32625fbcd588c69ee  libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc
! c6ce42ddb1419bb34ccb90b303059387  libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
! a14af78cb28169cc11cb7fc63f61667b  libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc
! f63daab9032e8d471bfcd68b801ffeba  libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc
! 894b1f9a691778ee9bca9a11466531c7  libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc
! dd79a3ed18ad8daf26a9d2d20cd91548  libstdc++-v3/testsuite/23_containers/set/cons/61023.cc
  481e4d5cd05c18aecc038aaa29dea042  libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc
! 5f41b250597ab0af500a2624ab73c09c  libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
! a99d2e12bb7472b7254116c815c584ed  libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc
! acf907d8b94f4f2d74579f2f8245167e  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc
! 6c1be252c3ab065ba0bfe60bbdc092be  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc
! f51df0cd3236c9aca826da6127a0637a  libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
  83968696d0a7067ff4a850c2eb0eea82  libstdc++-v3/testsuite/23_containers/set/debug/114316.cc
! 146db84f49ee0d0eccf7c298f1de25a5  libstdc++-v3/testsuite/23_containers/set/debug/60499.cc
! 979ce8355313315696cc5a21c3900f2f  libstdc++-v3/testsuite/23_containers/set/debug/90102.cc
! 40ef00e572658ffba650d3554bb2f562  libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
! 6e9fa4367aad745bc1902cf3a3ab2484  libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
! df4a18fb66c30c6788ef5d566c0b75b2  libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
! b803c0541e3d16a68efe33f2ca6237bd  libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
! b15b9444927630060dd2a2229678fb62  libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
! 439435d03d9f3a24ef7aea30df013a8f  libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
! 19cd65d07f21627760df9c635e23af18  libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
! 3580d92af3d037015033a66c2a7afff6  libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
! 18354a23135f79715258d48ce238c7c2  libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
! bae9b2b0e364c1c66c6400bcf8e4ba24  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
! aad61f752b5827c654bb9433b9a42310  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
! b86829718c262d3482f0d0be2096451b  libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
! 126365ff8e405799ce2cc1db19a50a12  libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
! 83f6ac6465ae406135a0b2383365c02a  libstdc++-v3/testsuite/23_containers/set/erasure.cc
! e86f8660eefa5a9f78e7383718359c92  libstdc++-v3/testsuite/23_containers/set/init-list.cc
  600f3a07c5d12def9ca643094daf86cd  libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc
! 77d9061b51b0f22873ab13d53a702f39  libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
! e80b02f6be14a80c72e8bb88b2744ec7  libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
! d94ebe0d5434c122380562702ded54e6  libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
! 39d58e905b231c5af67a70144d707bbe  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/1.cc
! 1176202391baa373808e5bae81cf2bb9  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
! 8eb3adfad233c8049d65c3f575bf071e  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
! 861a8ef121693e5f0d0b96150982aa03  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
! 9f72be261042abce2a05a351121c92a2  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
! 59e4e93d6cad6bdfc43bb2919df3ac80  libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc
! cc4ee0d086bcd5bc877f4f663e601c96  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
! be5f2318b5546c596e37f4942107094e  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
! 60e2725f59122d0a4fa5e23d298de38f  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
! 1aa28cce10c4297e6484bd91ad543c4d  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/87194.cc
! 00e1c15781735a596854401bdb2b0475  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/insert_range.cc
! c66dbfb2d58430899b852fd43921e76e  libstdc++-v3/testsuite/23_containers/set/modifiers/merge.cc
! 20b0a3f38a551dad2e5b92efbb15496c  libstdc++-v3/testsuite/23_containers/set/modifiers/node_swap.cc
! 1c44d2243e3e5eb1885420a11a980681  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/1.cc
! 7ee4bd09a0c3550d96d3850b2cd3b636  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/2.cc
! be02e82d3b04917123544d9de8c8ec33  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/3.cc
! c9dab4e9f5ce7812fc0b1b7df1af319c  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
! 2baa3a478d2917e1ed285aa5f9d804eb  libstdc++-v3/testsuite/23_containers/set/move_comparison.cc
! 07fe490a863d5312dc9852392ac6ebc2  libstdc++-v3/testsuite/23_containers/set/operations/1.cc
! 6a59227c2b0c34344e62f950405e5df9  libstdc++-v3/testsuite/23_containers/set/operations/2.cc
! 1ab728651d86bb5e2699e2a87df748d5  libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
! dda3c51d46aac63ec1413f1960af2130  libstdc++-v3/testsuite/23_containers/set/operations/count.cc
! 065a68ad028dbc0bc280a1c97fa26875  libstdc++-v3/testsuite/23_containers/set/operations/equal_range_adl.cc
! 507f6253437cda459140ac8b0a4896a5  libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
! 82bf083abc22ff5eb9ac6af2f02b421d  libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
! ea00c0734f7aafd65dc492d0fb69c2ff  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs.cc
! 22b369c96db2a70a0299953ee81ab8e4  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc
! f18e35d8bd19529f6538adc4f74ad3c7  libstdc++-v3/testsuite/23_containers/set/range_access.cc
! 69464ee7778b9e3e5dbabd010dd80811  libstdc++-v3/testsuite/23_containers/set/requirements/citerators.cc
! 6c4f5d8a78dcd7e5bdfbbbe9e3247349  libstdc++-v3/testsuite/23_containers/set/requirements/exception/basic.cc
! 8b51334fbcc82d485c5ba3a0e14bd46f  libstdc++-v3/testsuite/23_containers/set/requirements/exception/generation_prohibited.cc
! 59218b26d482abc7baecc6f0a5906e18  libstdc++-v3/testsuite/23_containers/set/requirements/exception/propagation_consistent.cc
! 9db4a0cde247c975fe3edcc374ebd3f9  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
! b0071416aa0a6f53b28afc78b7a40a2d  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
! ba56b438b2d56566f058cf8ce6656fa1  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
! 711f28c3a1e4373501efb6c5fe5b7872  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/4.cc
! ceb9291d0683a997845a07adb23a022d  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
! 4a674aa885102f77037e7182eba162cc  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc
! 1353ebd8c91295f0a35ed14f37fd9e3e  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr_ignored.cc
! 2e5158bec0c8ac1703a0811ae529afa3  libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
! 6a584bdbda8f933f87394a111cff7040  libstdc++-v3/testsuite/23_containers/set/requirements/typedefs.cc
! 477351f32ec06664e65cfa311a1de85c  libstdc++-v3/testsuite/23_containers/set/version.cc
  c40a530a9f9d8a0a09f73891bef444f3  libstdc++-v3/testsuite/23_containers/span/101411.cc
+ 49274ed9414661e55727add63f009adf  libstdc++-v3/testsuite/23_containers/span/117966.cc
  abef8cc189d28e6cb89211d1b0abd4df  libstdc++-v3/testsuite/23_containers/span/at.cc
! 9e2fddd2cf58e28a70982d16965beca6  libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
! 0c9cb5dc8d6cbca4651037c03c390aac  libstdc++-v3/testsuite/23_containers/span/back_neg.cc
  3079136837b68baf200eeff8d2de46b2  libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
  bf42ecf9e224c05daf99ea1027024d94  libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
! c0aed394fddbfd237f7a20a67d537e9d  libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
! d39dc74bd26a7a667f38ee45f36c7c88  libstdc++-v3/testsuite/23_containers/span/deduction.cc
! 1465ef02795ed098463db1e362b222c8  libstdc++-v3/testsuite/23_containers/span/everything.cc
! 7e562b99a70f160b518dee3c848cf5b1  libstdc++-v3/testsuite/23_containers/span/explicit.cc
! 2e8334b5c5bd86f2208c33e107c543e7  libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
! 41bf1b72d4438f07bfe6ec7431753c12  libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
! ae0f66078e14a62442d77ec432ac02fa  libstdc++-v3/testsuite/23_containers/span/first_neg.cc
! 76813a45ff14e437b43614893697d603  libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
! 74d8e3865ee96bd77a0eff154e7a0db4  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
! 55f1fb4392461f82af71b19e1f6b15aa  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
! 2fc50d3faf328785732adf35ca6a8fc6  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
! dfac1399cb31d1925502402ef9d495df  libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc
! b5a274cdea28724ff494ebbb50296de8  libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc
! 9316faeade4b0d7a953bb5d611aa97ce  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
! 399b461b4846a6005b4d8fa1047f66e1  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
! 3ad5a219914a4f09dabbfeee9d7533d7  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
! 0e4c5eec70465ae1873debe6afba6fd7  libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
! c0237efb29374af04131357373e79787  libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
  e45c1853ec6f098abc263746f2bf72fa  libstdc++-v3/testsuite/23_containers/span/nodiscard.cc
! 77c320620fd047660250959fc7da90d7  libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
! b8978dddd1e4f46f5c8b1261fa60bf6b  libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
! aa841eae0926b95067e61c8120448cb7  libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
! bf28766817dba1bee5c11798e83bc1e1  libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
! c31df7a65170f2fde88e0fb59bb0fe29  libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
! d42b08c56a1c770cc552f33614728a1b  libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
! fdfd5f8b777347a13f5144a787a44cb8  libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
! 01a666f51d2f325174762851897f95e5  libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
  b1ca4face6583d5fd3a66308ce733f8d  libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
! 3d4b2a9700be784dead41688434f7836  libstdc++-v3/testsuite/23_containers/span/version.cc
! fcc16eab87bd5ef3fab2a01223b1cf1a  libstdc++-v3/testsuite/23_containers/stack/77528.cc
! 744722456e53b17208cc506e3ed8a2e0  libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
! 9d2be6482ec382164126ca0936ff6d3d  libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
! 382ca0ba369a6ff5da3da863b7adf533  libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
! c81962f05580816062aa40e502ff7fbb  libstdc++-v3/testsuite/23_containers/stack/cons_from_range.cc
! 98a89b1944da4ebda053faec64dac196  libstdc++-v3/testsuite/23_containers/stack/deduction.cc
! 7c8cf811a509e9034ca51e137f32c92f  libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
! edde5981a7d6629c0862ce03a7b7973a  libstdc++-v3/testsuite/23_containers/stack/members/emplace_cxx17_return.cc
! eadbff32059d27d5c636bcf56ca39f42  libstdc++-v3/testsuite/23_containers/stack/members/push_range.cc
! dc21c20f2d7856e37948bf45ae121685  libstdc++-v3/testsuite/23_containers/stack/requirements/constructible.cc
! 802471d496ad244182acc01a1004692b  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
! eae00516950607c685e378a89490d58a  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
! b66bcfae0b08efa092a933f5fe5f3c8f  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
! 7c1d12ad44406aeb78b3ade48a98809e  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
! 156b154caf5f9ae3faee45845e073878  libstdc++-v3/testsuite/23_containers/unordered_map/115420.cc
! f9ade43cfbd598c0df31fad70de89cb8  libstdc++-v3/testsuite/23_containers/unordered_map/115939.cc
! 9e42a24164f0ee90157fad5433807e3b  libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
! 64af6f8ad1a5aac9520ab9bf9a8b4943  libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
! 035338db38454e0c8e7d3350734c07be  libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc
! a4ce6f287792de7483f5a6b7747c931f  libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc
! 6d6d17f3a9efdbb10a024915c0a1156e  libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc
! 1f15cd9ba0c8adc02adb6ba31ffaad0f  libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc
! 67dd0e5b43af479051df9dfac62efc18  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
! a8a01e13c592c286a47b813f1503adbb  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc
! 15f0e9013d8974f1ea0f47d999658e75  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc
! 821e49037a88c9ac889ca2b572470e33  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc
! fa2bb75f32c9858b120badcb82b92cf4  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc
! 662f54ea680a9838dfcb50ad1ac28b95  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
! 93d55958630dca74d3bfa9c3fd8fd6ef  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
! f8e99276a3fd17ff4a386a2b1811902c  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/swap.cc
! fb7850bf473c7fed5d10ac6e55ec9410  libstdc++-v3/testsuite/23_containers/unordered_map/cons/56112.cc
! 9357c28330b2ad6be8bbb5b99d590eed  libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc
! 6cbf222c3adcd95d7d6bab2f2524ba36  libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc
  85260b346a96810f495c68331eefcc0e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc
  85f9f0cfc8a07ac716292470ac0bda11  libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc
! 26c6730ee5da385a1a0aa22db353929a  libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
! 1a12396bee69153d53949ba0277827ee  libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc
! 105aaf9b7a6a75fdd976d4ce76e0937d  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc
! 145d7ad4a2e8b71f838ac49dd505119e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc
! 81208916206c30ebbdffcec68e3b4ba0  libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc
! 05e526682d00b9b1e0dd907d6716daeb  libstdc++-v3/testsuite/23_containers/unordered_map/debug/90102.cc
! fff51da02ad2473e8ff53ee53adc44c9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
! 4f9ca69b5d60b1c992aac004fe84912f  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
! dbba29fef5b6a948fb507ea9e3a65387  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
! b142b00f45875263c03933dcbec2b810  libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
! e9616618b5d1e33cc6f172665b8ebbb6  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
! 1a1af2b689666090648162cad1f6cce9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
! 87c8039b70db5fab19787e00a91e651c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
! 211a0d9e13ced20273f7201e728419e2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
! 87900a69ff7f3822f192935c3258070b  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
! 14e920ba68f30f282b1410c854e79258  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
! 3e3ee7729330b7b50ac8984a504bcf7c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
! d1c82685af7e418735bf3dbc2340c707  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
! 2d1245b3aad86104731b46a38ccc0f4a  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
! 131aef3554acc29e10eba2faca9e8349  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
! 3bf1e838acd34cfefefd908b833f44ce  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
! 1f9e3378ffdc59fe0d35ec467a479361  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
! 8cba10677351697a0c32e365ced492d8  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
! b518385cbb268809c6c7fe963aa6cb22  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc
  1edf6281b3ca9799ae88148d55d8050c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc
  6a98e53837af8954af5380d0b48b0baf  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc
! 738b8285f8a764e083f73e94bc86b8bc  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc
! 5fc08e625f57ffe3c1651ae8a4aecc04  libstdc++-v3/testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc
  ec5f25200eab229dcb114c539335f057  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge1_neg.cc
  1b50fcbac0e81550e3f02766b2163b1e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge2_neg.cc
  d54806c3c63e301a8ace90147e276428  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge3_neg.cc
  a6d92cb4a8083799e28f1557ec3dc5ea  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge4_neg.cc
! 0ad5466173b9f70a42c71c812e69538b  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
! 0beb42b0d2e634af485050134ce1f8c5  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
! 2355de8699c75a9953261bed2d904682  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc
! 614173f510c40f2f3ca49a8521680095  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc
! 86ac00a0017912a0c10bd40f0e6baf00  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc
! 3122497d2d08b0d5afcd42e052d17aee  libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
! cbec3aecbef7880e7188484bf3748610  libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc
! 1393cfb065e20891c3e46a30ea754ea1  libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
! 361a012cc256fbf90b7e7d494951af73  libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
! 555e8b722cfd85b044d8ca7624f8d845  libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
! d717dc4d5667b0d8b2a49693d59f9d85  libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc
! 05b4b4bbc0e3fe9095e1931c42b0ae4f  libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
! d059442c656453b5a224a50026ec4183  libstdc++-v3/testsuite/23_containers/unordered_map/final_hash.cc
! b54b6954cdc269fddd7f2f8d756019d4  libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
! a29d87ecc0bce3c8bad4b4a45fd4e7fe  libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
! 221b1a6147eee3ac1b7013f2e04de4d7  libstdc++-v3/testsuite/23_containers/unordered_map/insert/105717.cc
! cb783701a139d172b4c025ec54b9bad6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/115285.cc
! 7d9a53855b3311512d20de38d6e584dd  libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
! 4ffe7a841c33785fa95340116d6d5faa  libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.cc
! 8981e36c822140b947f6e0fda6774600  libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc
! e59daf8e6f07078ea1235006c199731d  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax.cc
! f2fb3cb39e06be3f5e45aabd00ed7ee5  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax_move.cc
! c3876d1295b53e2b8d5383943f319e59  libstdc++-v3/testsuite/23_containers/unordered_map/insert/dr2354.cc
! 58d9a6fb56506cb73d5549aa498e8891  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_range.cc
! 5f29ea0581bec20c4e54c4125b73d91f  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single.cc
! b8b84df398590e098ba645e7a93db0a1  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-1.cc
! 57c014018f38ffc8e0aed94cce57b790  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-2.cc
! 1710e01c1a4682f5e2a632cc5a664bec  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/61667.cc
! 443f64f1cf32e3a0e96feea28e59ed4a  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/78595.cc
! 82f129238a972d95d1fec29e56bb43b7  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
! 0e4699a622e00d0386595c66ea96c6e0  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/emplace.cc
! 20fd742643ea951a8b64572836169291  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc
! 16b117b967a7ce2edeab8be9da377df7  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc
! ad01e00eff3c7f80c31b6f90669ad326  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_range.cc
! d55cdfa31286fa541695291d6dc06ffa  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc
! 645169b20e2c02f08e942392d3502f12  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc
! 5ed98f7feeb70441901f9cd400f62302  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
! 422a176f877d3da4795eb3bc1768fd70  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc
! 50220d50098bf9b4896447a6897763a9  libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc
! d332359ea5a3804421978e4957a1e565  libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
! 40484bbbdefe1a38797d5d75ef2bc375  libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
! 9fc1e7eedcf09f47d7a0952f3da197af  libstdc++-v3/testsuite/23_containers/unordered_map/operations/count.cc
! f6c5221189f6269c83ad918f8386974f  libstdc++-v3/testsuite/23_containers/unordered_map/operators/1.cc
! 138113c14448fd4daa2cc3862a00b2d2  libstdc++-v3/testsuite/23_containers/unordered_map/operators/2.cc
! ae682b4f4f2b785f55c0fe268ac07823  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs.cc
! 1281db434a369d8751b07faf9bc6d544  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc
  45f46b4cea5268d1bf8f903d79e3c350  libstdc++-v3/testsuite/23_containers/unordered_map/profile/hash_map.cc
  6bcaac31a8700749f12b90fa8913629b  libstdc++-v3/testsuite/23_containers/unordered_map/profile/unordered.cc
! ad3910372c3741177cd6863c8b5563c4  libstdc++-v3/testsuite/23_containers/unordered_map/range_access.cc
! cd67c209886849342ac0eaecc7ae1bfa  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
! b12b806aa4e2b0d8b366fa9fb8c6feab  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
! 5be09c335bd389b635fbf9643912cea6  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53339.cc
! 757009c8db24f360c87e2f7ccdfc212b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/citerators.cc
! bc9e5ecd48eadb1ef8c709d7933ad023  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/cliterators.cc
! 226c88548260c0ee7676cb3369a013bb  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
! 74a6e0bb872e7a4433d6659b7eec102f  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_mode.cc
! 3a545045a63a8691e4a637d939c573a7  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/basic.cc
! 07beab390f007b81b0a3300ce0b8326c  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/generation_prohibited.cc
! 1ca7aa35f5411d3c5cc96567a632f01f  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/propagation_consistent.cc
! f62970f753e65080bcb3bcb4c61a2277  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/1.cc
! 92d125366791eb567061b87daf24fa2b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/2.cc
! 8bb5b43e1f0c8de6cf58df23b460b3e6  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
! 9c7b81ff8f95299148a66b3a6e1868b1  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/4.cc
! 585957b12af194d10730e69d82c973e3  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc
! 8b1e4164238c9346cbcc687ba0e9b4ab  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
! 550a360423a3f9d2c80bcb95f509334e  libstdc++-v3/testsuite/23_containers/unordered_map/version.cc
! c96a367e9d58f24cfb14a39371dff105  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
! aa96d0376e9aba476cba14d071c087db  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
! 18afb1f0601e09d960a83179b09bdc99  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc
! 2eb6297ac36c6e2001df2b3a08d9675e  libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc
! 89d672ca658454c8a1406d06339c2a7f  libstdc++-v3/testsuite/23_containers/unordered_multimap/96088.cc
! 754f47800400fdbd4c9cd9f51eff9561  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
! 4017a3428f0b11c9aaab8585328070fd  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc
! 5ebdfe9c6d24f8f5cbc9a78f13da2f21  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/minimal.cc
! 066a91769792c394b4365e12b9fa46a5  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc
! ebc749fbd9537791ef75f9dc04d961ff  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
! 63eb9f8378189acdb697a7f543b1b499  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
! 87351ed8cae9f731b42325b9857ec26b  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/swap.cc
! 8f053611b6647127ebb1b8c21029e072  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc
  1339c52ecafcfc46a0f64547b8873082  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
! a177c3a329726e0a35725f4442976c26  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
! 70c2c4716ad4929b089a632b133112f4  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc
! ff7971214c7a0c1a041e98b1c7c50991  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc
! b35a95ddeb5d98a456f47d0e8f64b45a  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc
! 1c793da2667a3cee3a98b725447bd7e2  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc
! 46b8780989c8cb711f7dd227d9ec0013  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/90102.cc
! a96d143c8c7fb66805e2152c0b79515f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
! dbba29fef5b6a948fb507ea9e3a65387  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
! b142b00f45875263c03933dcbec2b810  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
! e9616618b5d1e33cc6f172665b8ebbb6  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
! 1a1af2b689666090648162cad1f6cce9  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
! fa9b59e686db53fd5c45479d8181049b  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
! 315a7dbe28336789f4a04a1ee0b3eec2  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
! 2dc1916b3f16da0d34282e5355e244c5  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
! 9a0c8128cd946ecb0f1c7e15bf6db72e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
! 4d76e6cccb34b46b088d200a00e11058  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
! d1c82685af7e418735bf3dbc2340c707  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
! 2d1245b3aad86104731b46a38ccc0f4a  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
! 7e193f6f3939d72e3ff3d764ed4802d3  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
! 395b835c9ae1c7352a18ca3bc5b02f41  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
! 80482bf024272dc66544474da1efe5c1  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
! 3769b9912b02ecc8e170af6ae5069e1b  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
! 0fc5c35588d2880c82989428ee99c5c0  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc
! 658737ca435783c3cf03f0d8ff8fb015  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc
! 087d4f46240f30d391fa1d66d2cb86a9  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc
  4590d5159c6810e053d83e37afdfdccc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc
  10748ae08ea59767c0dec11efeda3ecf  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc
  5711a56e85b25164885d87e3528b0d4e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc
  f30bce9979bec5403e8d4079e23bd752  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc
! d694a818c78575a8a677283093a8fd0f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
! 193986de74fbf73406c6236e880b9ce5  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
! 905d88b9d5907b34b899f66de7a58944  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc
! 6111cdc873b6b13e7fa7eb25d1d064da  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc
! 21430d13c6337afb787a73e80cdbfbe0  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc
! 47ea7722ec3da29ba9c9dabfdc4f23c9  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
! c6ce723b21fffc9e55be129a3c12c47e  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/2.cc
! 7c2bcab4d85cf24707f1eea0d1eac2c9  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
! 47aeddaf621a2b495dd2f904d6ae7fac  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
! d20b2d0a7be956d8bc50627e40b85b07  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc
! 17dc87de316282bb5ca0f0bde3070aea  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc
! e56896d7fbe1422e8a34aab320f324b3  libstdc++-v3/testsuite/23_containers/unordered_multimap/final_hash.cc
! 0dbbc387e1deeee8ad1c57bfcb3febf9  libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
! f4a0b82217e1952b6bfe35b78027b3b3  libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
! d603d420a1891ddeca599b91b0f3249b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
! 18dbf1c4d142e4fa0e8bf5d6bdc4c830  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/51866.cc
! b4de00ea37739681c58dc9a25c26542c  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
! 219759808c475cd13b0a098373d88d1b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
! dace9a3779b08f6bd199e87aa563c783  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
! 0fcb18168ad0e12326d223b21229b5b1  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.cc
! 6cd9bb425d586d2c33f5a3c9eca93be5  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/dr2354.cc
! de2f71ce8931aef19dabef305f2249b3  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc
! 4525265201cffb97177830a9e1013009  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_range.cc
! f113566b04d3795c2214ceaf19cb6ee9  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single.cc
! e38370391e1aff79c37e53cb8625c758  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-1.cc
! 4740352f6cbef83c107f81faadbf7f83  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-2.cc
! 79ce9642e3c141c71fea71f793a2ff50  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/78595.cc
! b93e0a18b6cb600534b29c53ca51c42d  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
! 31b163462302abf887b76a16861975e0  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/emplace.cc
! 12330092b6c027ed502943063375a745  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/extract.cc
! 73d0c8e42401f6cf69f1f0af0ff90e3a  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/insert_range.cc
! 47b571c44daa0da030edb958d0e1b2a9  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/merge.cc
! 7d7cd1ae79022f02e6f7dbac5ea23abd  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/reserve.cc
! 65bb66cf354327a09e6a681b7822b093  libstdc++-v3/testsuite/23_containers/unordered_multimap/observers.cc
! df0d2fdc23c186837464d96b5ac6a106  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
! b51d818a7335c8adf1cfdf38382b27c8  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
! e6f26651f198f8c27fb2191ce7a01698  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/count.cc
! fabe75a8b4f977a4a77837ce186c01ea  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/1.cc
! 66fe6049c87d85ef9f2a1224ec61fba5  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/2.cc
! 6f94fa826435d160d206d8c47d1b4f46  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs.cc
! a65c0ea3d27f8ece514a44a3b7ddbd48  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc
! 128aff60670b5645b3c7a5e7ac258252  libstdc++-v3/testsuite/23_containers/unordered_multimap/range_access.cc
! 411a7cb3feb0b20d16a361b75720c1e9  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/53339.cc
! 9ed937bf35c684b8d21e07056cae4bda  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/citerators.cc
! 000ddf32375867e97dd60bf5d4695e11  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/cliterators.cc
! 71385b73f151d3e0c8a55e0b6c49286c  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
! 222f884e30360dacd0734d4e14dd8395  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/basic.cc
! 391dd76a74893ede51cffee887bdb8a2  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/generation_prohibited.cc
! 570c9476d95f5d9707c9729d24a9866f  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
! 320dfaae9d989d62ff54a9b08d8303f8  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/1.cc
! 59f3f6d76a90b4862ab59e51f9282918  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/2.cc
! e9483856d776cb864c24735441f0baff  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
! 9887b30e02926c2d42be7b5a35e5474a  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/4.cc
! 086c9e67565e5b8f732f179bba363ede  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc
! 5e7e12e0bf03bb4028271ca57b0095ed  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
! 89c28f63efd395f76f7c1f78e247ee12  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
! 861e93d0d620b135b1b3e673b5c8d1f5  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
! eca7eab5ba65fe69c4dbecd9a94b3127  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc
! a5e65f31bf9cd70a00a9ac951b7f5e14  libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
! b5bbd6d87e68629a916c735a8b244b36  libstdc++-v3/testsuite/23_containers/unordered_multiset/96088.cc
! 12ebd6ff35e9eb092907ff50a2384f2e  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
! e9de85537441201577412baa78db4c53  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc
! e0662f8f290eaa08f77eb2fb62245070  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/minimal.cc
! 961a271e65cc6eb76632f9c7c9ab391a  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc
! 898af4b6cec8e2a889fda6e1016c5494  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
! 4e76b05c093fae95c6af037c45f0b04c  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
! 267a8c373cb83b2f7a484b2a4e709827  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/swap.cc
! 1546f2766288c21eb12bb2d501b30ef4  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/66055.cc
! d60757fac5dc060b24d128ba4c04477f  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc
  23f594bcb112a45f141a57ae69a39c30  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc
! 17d60c799a6711a62410319c734bbbd2  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
! 712f35ec6acfb8a86b2075053328b5e5  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc
! 8080e575551f67dcd2c4711d04de0f93  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc
! 42378ca06026c81e3f8ab8b4140e08c5  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc
! 93c766c2e3ec3fc6513d7d0553c55551  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc
! e542a5da08b66be83f4601c9d2272ced  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/90102.cc
! 865e24bff7717fcffab50959d1cf6313  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
! 7ca4ea19ca8ddb143c4a3af3822a2acf  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
! aecef93da3577814b08c9095c335504e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
! efab6ac60e06d20e917dc386c5e46c55  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
! 94611ae16a96ff08495001c3b981569e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
! 909ab3dcd41f827e4c658c99fa12a1bf  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
! 20687e0263024b7d01dd3cbf5a2ec8df  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
! eb282b6633da43498512eb98bdedb55d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
! 9e6f132afa99215353e76fbaa263002b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
! bea378aefaa8deb0c102964e1abedc33  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
! 41dc984e44c5aeba9ebd70d9383e9a23  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
! dbd10ab7560a4279f25dcd4c50b95cd7  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
! af65232c29079226ce345b9e7db1603d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
! 7c2df914377d2dfd02155006c8adea60  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
! 761eba13b9dfb00fd0342041e2ee8a45  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
! c04af1553f7e2c0aee2c89670b452aa6  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
! 5fb9b4f17a34e7fbe738df0df2d7e8fd  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc
! 6cc621dbea3837f6ff5d660b36a7eaa0  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc
! b42f9a991204f3160b5a85e5b409498b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc
  57b376626504f59753991e34bc78237c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc
  4780603df65da907f59b5dc2271c7d4b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc
  d1a56802059f8869425e49137d01db11  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc
  ced06789a8924ce0bc694421897b8fc2  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc
! 63c5828efef065654ea0abea6089c37e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
! 1db68d0de35bb030c65c61b9e905e545  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
! d4e0c63dc85d4a2efe513c580fe532b6  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc
! 1f076d284b9459629a6c829a7895c1a7  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc
! b3a914991d555d888fe3ad09250180c8  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc
! 514f0ac43cdad3bf67a2f459b91505c5  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
! 9b8b6cbafc3190ed3a2f62b6e5f4807f  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/2.cc
! e8b48d69e74c484010b09f475096d101  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
! 8b294fca724ed4b83566be9dfc1f18ee  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
! 84b7db35c2046e5e77a583fa76527b00  libstdc++-v3/testsuite/23_containers/unordered_multiset/final_hash.cc
! 1d057a7db132e0227130fdaca6295ff4  libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
! 0cb361555b4488e1f7af5a61d9d68c15  libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
! 353cf366797d9b8a3d910d64624cc1f8  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
! 64d450621062a3272c4d9b823f813eb9  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/51866.cc
! aa08d0a39457b474f7bcfe7a81a65ae4  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
! 2c1e5a42d3ac887a8b66e149e6cb4416  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
! 780a395795d2ad67c76ba4568a296503  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/hash_policy.cc
! c964be93c867d088843b214819db13cc  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc
! af1320a74544a8985966f0e3943d6942  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc
! 45f8b3679abffb3cb426f63048be0b13  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc
  81ce776a3ac75fcc704e7f3efc65de81  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc
! fa5b3379df9388086d5345dc4494f2f4  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
! 9447de2a4fc9e3a4778d33091c12b907  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc
! c974ca81dfffd62cc8b43a13eea45f58  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc
! c0e606fdb83ff823f737ea8ed1a87a92  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/insert_range.cc
! 7a958261dfdebdd9834f198a7920ff73  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/merge.cc
! bcf60d5286980e2bb4d7786345e87b52  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/reserve.cc
! d328895cdc69e91badea7b96cbf5a4a6  libstdc++-v3/testsuite/23_containers/unordered_multiset/observers.cc
! 0ac9fedacedd45fb9e7fd7b174d9dc9d  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
! f699c5de8118d69dc11e711d99f82b3a  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
! c9f6417e5e9dbb9be964fb8dec8a2226  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/count.cc
! 0ec34cfd98149faa7864182506a7bf4e  libstdc++-v3/testsuite/23_containers/unordered_multiset/operators/1.cc
! 93c127ce34202c912b8652e12057335c  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs.cc
! 70fe751c2e7e6540fed199342671e286  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc
! 875fb9003d47c05de09da5043f7ff25c  libstdc++-v3/testsuite/23_containers/unordered_multiset/range_access.cc
! cc33b439d5dcf811d405bb29402d272d  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/citerators.cc
! 6b0119253f61c83fa23abaa215b841cb  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/cliterators.cc
! d3dd312c038e313e20ec568d4bc41d11  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
! 5cf26e01621c123d10593486678a6dec  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/basic.cc
! 745c0dd9a6e21626d157abb7ce902bc6  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/generation_prohibited.cc
! d5e20b189a811eb07b33374d7d7b3489  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
! 99630eacf817e047e0707cc274204952  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/1.cc
! bfa6160d39d44718d72f91325c81c280  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/2.cc
! a9ebc55df8b31754ce60aa7fc577a8c4  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
! 75d577104757eb7430dccfbca2e5006a  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/4.cc
! 8981bcc69cd9e07c0d9e2a47f2c4c7cc  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc
! f88b3041f613aaf78331d0e13c2c3815  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
! 7affec17e63c7929ef427dbddd3fc8e4  libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
! bd649d72d62e5164363bd947c5cd54a7  libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
! 7638002f5fc313cd15b4c066e715ed2c  libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc
! 980845b9f782dfbadb3b1fcb649ac1e9  libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc
! 064323c688f2272e2feb44dbc4c272e2  libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
! b13f99d996405e38b1dc630805471686  libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc
! d2146145a60cc49e2fdb57e67bc1d105  libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc
! 36fc6e768261621146d9bb7557febc5e  libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
! 193ce48cff616f92f00463cf14ccdf7b  libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc
! a368a2fc967b8932d7c2716356398fed  libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc
! 081be01cca50da520b0af531462a08a0  libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
! ba5ca65519316fa0bcdf231d6641a767  libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc
! bd41b183f230e2d83442d5babc12736b  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
! 47f414ad4c89c9086d261ca21e83af4a  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc
! 31f3c884b6892a5138691283c8bc5e9d  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc
! eca76904ddf5d60283e68d72fbe40f68  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc
! 5d70dd4c6d4959135efafdc657262b4b  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc
! 6b79d9c675b92309f2da6399d519c174  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc
! 21a32dfad6f11a7a7547cb5977e0011f  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
! dd013b03aacf873dc227ee17c8b169c5  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
! 142d236842546cb45d63376aa3b540d8  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc
! adf2580153ee97d303e383e1264e405f  libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc
! 3e115576eb3128cb0af049c9853261a8  libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc
! 944b800a8486142788f13badf4c8a83d  libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc
! a3f80356b94f4f31b1f306c228588757  libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
  50d3a4852641ffb5d38114a701a2047e  libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc
  247af40f0de6e07e87bdde64812f8659  libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc
! 2623c2766e76075e353324899deabd4b  libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
! 1f4e76a316647eeddc0710484de4e3dd  libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc
! 962ddb897d50d2fbb9a798ef2cef5f7d  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc
! 28ee73031ca5967508143d3fe46d6dea  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc
! 24dafc80dceadd2c15b5d6373cef4ccd  libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
  1ff3da9ccb1453e5c696c1a351a88689  libstdc++-v3/testsuite/23_containers/unordered_set/debug/114316.cc
! daa7b08c97f64412451f7b08255254de  libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc
! ff5eb6e5079177c3867e66bae6704670  libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc
! 9e129cbf429cdcbd8ffdb21f2434e472  libstdc++-v3/testsuite/23_containers/unordered_set/debug/90102.cc
! 930cc394a864f46d8079536aeb72b816  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
! 03516067183a6dc599f4fd23f1c80980  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
! d2c6fa0267f424b1a888cc38bb8bb77e  libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
! a304eab77a79b3fa0814ed49c8c52edf  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
! c9192246de78f685157bbe6f6c6ff502  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
! 2c5226958ad70025f5cbc1acd4fa4f93  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
! 6032a2cb859e9b972c776426b2f84475  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
! 687fb2e7bf5be1953bb88528104207aa  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
! a9b072b68728847eb1221d24fa7c9099  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
! 7a84af01524974875ffab781a5cefb13  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
! f7e33da5fbc8b4cb3cc3b7504a88f71f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_functions.cc
! 857507b68e5fc770b18a0f31d392e652  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
! d26eac070231a4b5c55487a1254dd110  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
! 2d562d741ce76f966f0d16a1d54a250c  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
! d04b967634709ee790ce738e6471bf6c  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
! ad3696e0f33923443fc1fb8704b6c1ca  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
! 8d1466e32afe3026fc50afd7720ddcc2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
! 98f4e0598673e9daa7b0790419115ca5  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc
! 4c7433c7f73409ea8065db6a55535e5a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc
! 7135a13786fd0f880c76ee52ac3dcee5  libstdc++-v3/testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc
  8121fd537a86b2d9c88f3a74d9dfd917  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge1_neg.cc
  8abc555d1b878f2729647a5a9b417280  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge2_neg.cc
  fb91af2ae75ed5745c8773ed8318a311  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge3_neg.cc
  00a3aa9959b3b6aa3847806d2fcccfb2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge4_neg.cc
! f0b0821a02adf1e932bded47d76cb2e8  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
! a444739d78a0c8160803a9245e331585  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
! a0435c9647cd0d946ce9bb183685b5da  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc
! 677ab7953dd4cff1c695d2b84bf87d4e  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc
! ece4988079d97d5d72b514b7d85a1601  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc
! c24ac801cedc495770e40aeed08e0606  libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
! ebbaecdb1c56d20e7bc3f835f24738e8  libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
! 311566022f5c563c5dfbd85884f19022  libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
! d13848da1724f1fc1c964734b73e51c8  libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
! 8e8f002996625c759f9b8325e1d37f8a  libstdc++-v3/testsuite/23_containers/unordered_set/final_hash.cc
! 456af88d8c6d35cb9b934dd3c4d93e76  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
! 34c9cdbf45421ed09eafdee2cb94b3f9  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
! b18617b063f94cd6e7fcaf98416210af  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
! 963a8914892ebc7292d82be80918a9f4  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/load_factor.cc
! e606bb85571a5f8192c3f0a95f37c277  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
! 19939ee5bd91a2b9c771203d7dd614da  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc
! c8d91bea6d99ca3c047237daf66b907f  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/rehash.cc
! cd2119359248cee4cec95f4bfdbbd45a  libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
! 7ead93033fa86b6e4b3a7e9bed40ecfe  libstdc++-v3/testsuite/23_containers/unordered_set/insert/105717.cc
! 5ccb7e4b74638820b0f3a9b5925abc10  libstdc++-v3/testsuite/23_containers/unordered_set/insert/115285.cc
! 57b35b86f7573986a37f7b73be583b3e  libstdc++-v3/testsuite/23_containers/unordered_set/insert/117686.cc
! 328cb691cdfec467b97ce2a6c5e26cdf  libstdc++-v3/testsuite/23_containers/unordered_set/insert/24061-set.cc
! 045beb20a7b8ec5fa776987c266488a3  libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc
! 85712e907527771bf6a153481e80180d  libstdc++-v3/testsuite/23_containers/unordered_set/insert/hash_policy.cc
! a4346f7c0c5ebb8ef7e142bf95b685da  libstdc++-v3/testsuite/23_containers/unordered_set/insert/move_range.cc
! 503ec3786edb457de7ba81f5bcab4692  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_range.cc
! 292db28bc4079d9e8872ebd81728cf8c  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
! 55b036e07c959a853a8ae7b5ac0147f9  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
! ec0aef022eb9f383795b01881253eae2  libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
! 1e7abb5f325db0cd5c1f21bc07c7fea1  libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc
  48b51763d3c882761e49bc54aa3174c2  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc
! d00b6c6f341179f3acab5792c98f8a62  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
! 57e2315901ba7fe0e8f978bf29530e36  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc
! 68c23ce5e89de37a87fc9f4f3bc5ce91  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc
! d52e2e013bb88e3a13c0c39558d93c52  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
! 0d6ba2efbfbcb910de8b5c5a7482640b  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert_range.cc
! d189526b18f207c197a85338239a03e8  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/merge.cc
! d4853f92d6b5b1d3efb23239bbcc1299  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc
! 9d5104a849f5b22d1c0f45bf45fbe3f3  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
! ea2e2b46880174b00a60e40ed87acc45  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
! 3dbb5c75d4b974c2bbf7f9769850bf49  libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc
! 20b7e21e39898fef7a195891825c3bb2  libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
! 2c4c83b802b0f01e54a57b85efea1dd2  libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
! 5d7a7c18dbd2cf4700922e28baa5cc71  libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc
! b2a2c04db58c98d9c593e7cdfb73277f  libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
! 64029797e78f21834cc29f9baaf0d551  libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
! 7d4da2d2fb2102735d46539077cf35a8  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs.cc
! a2400bef9337fe73a0055c27fa54c53b  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc
! 4a1a079c582e7959c6ee5f2cb8255a10  libstdc++-v3/testsuite/23_containers/unordered_set/pr115285.cc
! d1da81aa2f44cd016bbafeb787781321  libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
! e2cdc965e8b6f372da351b538d26f93d  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
! cab6b46c98c4f16457f18ec07a47ec1a  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
! d6f7b31c362b7ca24ead53ff7d196f69  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
! e2e821184c8b7d6c50f38c18af814dce  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
! ec0edb1806099f1493355efcc01e5f13  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
! 18915b542805ff1dc3f976e512513ee0  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_mode.cc
! 90495f966cb09feb41821a28dc264389  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/basic.cc
! bbbb36f11237d02534e293c94c5da787  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/generation_prohibited.cc
! 999cfe6ed11f1f0fb172b6674bacef40  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/propagation_consistent.cc
! ee656cac55018c4f76f7dcd412949d16  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/1.cc
! e6856815dc14efe3f6f7ef6904c1974f  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/2.cc
! a0e929a14c301dfbc040218f17ae52da  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
! 80624ca2e7eb1ca4ec118d50fef02dc3  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/4.cc
! e0ca83c623bc3983064caa0e10e4c220  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/5.cc
! 6ce28c189c6bbfddbb9c298de5610f8c  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
! e6499e4d59d19aca75b129fd2f6e317b  libstdc++-v3/testsuite/23_containers/unordered_set/version.cc
! 59e70f39dc572c0777f49e3364958560  libstdc++-v3/testsuite/23_containers/vector/14340.cc
! eff111cb89df5511c5d8e5a577e3cf9d  libstdc++-v3/testsuite/23_containers/vector/15523.cc
! cec5b90cd17cbab8eb43060f4ceafde0  libstdc++-v3/testsuite/23_containers/vector/18604.cc
! cc314b7a9c68defcab9c32b15a51d5af  libstdc++-v3/testsuite/23_containers/vector/26142-1.cc
! abee2cf75a2a178c96891e1edc7d65f7  libstdc++-v3/testsuite/23_containers/vector/26142-2.cc
! 701b402f22a2c3e7b83a49a0c15a70da  libstdc++-v3/testsuite/23_containers/vector/40192.cc
! 829eeb1ea5cadce74fd45ac468fe9af3  libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
! 5ef10ef108961f6dbdbc1fa3bb3b48c0  libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
! c8ab3dfef82b0b79964e0de2d74c516a  libstdc++-v3/testsuite/23_containers/vector/48101_neg.cc
! e9d0364fd9d8461508f7429fb2848476  libstdc++-v3/testsuite/23_containers/vector/52591.cc
! 558fa4e1bfda24def24410a764474496  libstdc++-v3/testsuite/23_containers/vector/58764.cc
! 37dc57e41ab3ee72dab45f606ce96d59  libstdc++-v3/testsuite/23_containers/vector/59829.cc
! 7a8f7ca9588335a95f8df12965fd09f9  libstdc++-v3/testsuite/23_containers/vector/63500.cc
! c9297b3120cb2df809c1615591963282  libstdc++-v3/testsuite/23_containers/vector/70303.cc
! 021d6e4e9db4f2283ace99e623b1950f  libstdc++-v3/testsuite/23_containers/vector/92124.cc
! 371791c0200fa087edd099071f38f4ca  libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc
! 553e343cafaefbc36897c9bed5e3e530  libstdc++-v3/testsuite/23_containers/vector/allocator/construction.cc
! e04999152c57ed989b1b56751449dea9  libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
! 4b94070a776502ff68382e2fc2bd0abb  libstdc++-v3/testsuite/23_containers/vector/allocator/copy_assign.cc
! a0f1a80b43f2e702893486fbfdd5b4f5  libstdc++-v3/testsuite/23_containers/vector/allocator/default_init.cc
! 89a63378ec0936882ef62ec35740e07c  libstdc++-v3/testsuite/23_containers/vector/allocator/ext_ptr.cc
! 7db1ea9f6457f65ed4cf5742698b7ecb  libstdc++-v3/testsuite/23_containers/vector/allocator/minimal.cc
! 6a95cde5f65634a9d3efa20e38ae0dd3  libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
! 6fb94418abe49c9e1a09ce01a7f648c1  libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
! 4d9e348bf5d76bb9a11cabfda7976d00  libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
! 07d88d348d91f5d697629b90ff6349ac  libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
! d11d7da1e5a13b93d339e372a3def766  libstdc++-v3/testsuite/23_containers/vector/bool/1.cc
  4fc9d9cf0cfa9e9f3a7219a3ee234caf  libstdc++-v3/testsuite/23_containers/vector/bool/110807.cc
! b79d5dbc93076138950cb956e0ae07ad  libstdc++-v3/testsuite/23_containers/vector/bool/115098.cc
! 6e4f3a189d18abfa4cf3423a0c6b3bbe  libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
! 8d253149c9be6bd58d1cf2e8ab8d7c94  libstdc++-v3/testsuite/23_containers/vector/bool/23632.cc
! 3dfbbdf1aecda1cc888f50d6bcd910b1  libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
! 189752f8b10fddf643e15e8e52a10c24  libstdc++-v3/testsuite/23_containers/vector/bool/72847.cc
! 1e4aa5ffd769f9fe85fe2a884635fe0d  libstdc++-v3/testsuite/23_containers/vector/bool/80893.cc
! f096c91a214cb8d7d7463cd88cbc272b  libstdc++-v3/testsuite/23_containers/vector/bool/82558.cc
! 73c5b9c54b2908f68ed5159e5d3cb134  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc
! 084bfe26a692010d0012c9849f43c3d4  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy.cc
! f8c9267aa027c6d8657c611a5866f7ec  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy_assign.cc
! acabb4ce34c39df86ca9ca9746d631e1  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/default_init.cc
! 4ea6febafb3e1225be5111d54dcea841  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/ext_ptr.cc
! ee70314fc3cd78ef884c188e3d9e5897  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/minimal.cc
! cc77f2e9dde4ab522f710cf6b2a701ca  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move.cc
! 1edf3010d8adedb5f42e755936fce063  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
! 5aab4228bad8bd6d8c5a28dfdf04ae9d  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/noexcept.cc
! a9d32da6b5c113e25eab977d987d9987  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/swap.cc
! 3803662020478b875cfc37feed5c25e6  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/1.cc
! ca8351d4967fdc6250d4e4e128468cd7  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/110498.cc
! 72275a308b2551a92b76be856311e9ae  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/114758.cc
! 8db0d3c1257e8e962c53ce42c3af996a  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
  bc99c897bc30ba1f3a12dd71e4619b8c  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
! 30e9c58d524b1f3b78da2bac458060b5  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc
! c8e22de0067f6dc0df87f0170e3c90e4  libstdc++-v3/testsuite/23_containers/vector/bool/clear_allocator.cc
! dc5770e2a72ee15a5dc6ef9c51c1eca8  libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
! b10e477ceb2448b2bd45fd0fdee32d8b  libstdc++-v3/testsuite/23_containers/vector/bool/cons/1.cc
! c16513cc4d3631e94cfd316c6566d30a  libstdc++-v3/testsuite/23_containers/vector/bool/cons/2.cc
! ebc47e5dcba86666ba23cc0aabe3a291  libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc
! 8d0b07e1cf5846334fc00f9f4705e3fe  libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
! 312b72f70797bc0ed11cf6e071944149  libstdc++-v3/testsuite/23_containers/vector/bool/cons/from_range.cc
! 5ae4b10af939a0161833a11ff6188af3  libstdc++-v3/testsuite/23_containers/vector/bool/cons/lwg3778.cc
! 349038f10da6c12b9247b98ba3680cb4  libstdc++-v3/testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc
  e0b11c4dbbdafef2f8d275b74b88c682  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
! 84a82a207e12552b87bf4fb648202e46  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
! 4a80c4aed13525641b84766318cd6f8c  libstdc++-v3/testsuite/23_containers/vector/bool/emplace.cc
! f05d61ed2f2f49da266a6dd1825c57fb  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_cxx17_return.cc
! 61dccf009d507fd3f577a5aeacafcbf6  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_rvalue.cc
! 75b250a8f0bd8993a250939859718a5f  libstdc++-v3/testsuite/23_containers/vector/bool/format.cc
! 981d796e31f85b155c22e4537df612da  libstdc++-v3/testsuite/23_containers/vector/bool/hash/1.cc
! ab56a6e398445099c12ca1122424277f  libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
! 3830dcd977751429dffbc55d64b358c1  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/1.cc
! 7526dc14638b2890353c7cc93a5cf891  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc
  c2caffba87c853ac017ff0008682574f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
  564442c432d0e1aa5d2ed0fc5baea507  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
! 3046d906fd328453b47f6c0e97fb486f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/1.cc
! 0efcb194ad0b999647ff1872d25b9aa2  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/54577.cc
! 919862c93c1c6fcafdc9459c5324dfdd  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/1.cc
  8411c535ec979be02e85103a2ce6a933  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/104559.cc
! 62e93654c5187d851af4b4c264b5bfb8  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
! 8d6363ee67654eb1d0fdefc69076e1c6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc
! 1897e319a5208a48e633774cef003076  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc
! e235ea87a6293213703f9853b990f44f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc
! 25c099d5a4a3e08165ccddba9ddad9f5  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/1.cc
! 3200035d0929245106f6c6e3567c10a4  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/2.cc
  780e46ea3d7c50d8c8512793253f488f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
! 593bf5189617d172a4485e3375409408  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/citerators.cc
! c9f2712162354d7fad301ad19bd7f0ad  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/dr438/constructor.cc
! f05b25f5ada432a2ee1fb7cd7fe9c2d2  libstdc++-v3/testsuite/23_containers/vector/bool/swap.cc
! fd863d663d3d266763b656a46a8cb0a5  libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
! 587e21047f223d01e9861ad7d3854d32  libstdc++-v3/testsuite/23_containers/vector/capacity/114945.cc
! 8037bd85bc3337a6ef2860bbf383f971  libstdc++-v3/testsuite/23_containers/vector/capacity/2.cc
! 4ce27ca129cd115b58dbf0af38885dc2  libstdc++-v3/testsuite/23_containers/vector/capacity/29134-2.cc
! 3d184383e5e204fd2ca27350902c6f0c  libstdc++-v3/testsuite/23_containers/vector/capacity/29134.cc
! c0573f98eee92105efb3aabecd482ce3  libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
! 7ba57d2731579f54532bb7df4aa5f903  libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
! 4ab28a9ced05505aae8e80bd18105ccd  libstdc++-v3/testsuite/23_containers/vector/capacity/87544.cc
  459061d5a624ef8241999a7a4d7abc99  libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
! ddf01ed521b5ead2c9bc904d4df41a8e  libstdc++-v3/testsuite/23_containers/vector/capacity/max_size.cc
! 3b07a048fee28f952d7871b97d166f5e  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable.cc
! 19eb928b7cff1eb66410c612a2fdce63  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable2.cc
! 5d59c4fbe7e1196342bc8f84e10f3b29  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/1.cc
! b0725f27daa00dcdfe9ec58885784fb7  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc
! 4f1e842b4eaf06fa4b0734e054e63b9c  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable2.cc
! 528506871eee0ad3846ad9e1c805380f  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc
! 633068546f85f6a51bca38948d80a36e  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
! da5a232436379364a187ae1951b29b59  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit.cc
! 358c387922ebc2c83f69e849613fe2a4  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit2.cc
! 33c76430c7dcfcf6fe0374eef6a15f36  libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc
! 6334be936a75635454edca1da447545f  libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
! fec19de1a30ee6058eb82eb7b27b95d7  libstdc++-v3/testsuite/23_containers/vector/cons/1.cc
! b2cc3cce260a0b7927d617818fbdc738  libstdc++-v3/testsuite/23_containers/vector/cons/108487.cc
  6bfe3fe60e55efb3d1e962aa17c03c0a  libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc
! a8c5d10cde46fdb93074356d62eca257  libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
! abd6fe2e418b731816bcaa586d7dcb27  libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
! 5d1a6cb0f7ede5208953e43304adf5e4  libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
! ba5b0d5092740b504d09d50d145eef87  libstdc++-v3/testsuite/23_containers/vector/cons/55977.cc
! aa8a2c80db1657e52719e9fd4d41db92  libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
! e3eb212137f2101dd4ceb83392d4f604  libstdc++-v3/testsuite/23_containers/vector/cons/86292.cc
! 2ed6c5bd5af8dbc9048f5df22933725c  libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc
! 05f1b3897faf4e9eba046b7b51ceeca2  libstdc++-v3/testsuite/23_containers/vector/cons/89164.cc
! 2b0c1571f0e625a4d0f396c2f60f6bd5  libstdc++-v3/testsuite/23_containers/vector/cons/89164_c++17.cc
! 10ee717eb9de9a9eb3cbb0b36e6ddbc5  libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
! 051ca33114794c9a04bfabb23fbae0a5  libstdc++-v3/testsuite/23_containers/vector/cons/94831.cc
! 640ffe56cb99068705f94a64fcf456b7  libstdc++-v3/testsuite/23_containers/vector/cons/clear_allocator.cc
! 7bd59afadf82d19a706e87165aad3f3b  libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc
! 61e8da4cd434fb8870df8cc065622ac8  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
! 6273d6891837720e35cbfccb6eaa7e66  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! 03d4bbea96b2b7d622e0f0d4ed285e82  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! c321498bb25d81efcdb153b4281a5653  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
! e3eb5ec108c278899d4e5ba74e9a28f9  libstdc++-v3/testsuite/23_containers/vector/cons/from_range.cc
! 95343136dbd192e25dfe16b3a4eda01d  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
! f1d10ca32c2d09fd89ac466ce1077fce  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
! 7e7b7e0e0333f9178ee8f602413f5ce6  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
! 6ddce64394751aeb3b3c322d62805e5d  libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
! 8cbe4c9a0098268c83b5c049b2b9a339  libstdc++-v3/testsuite/23_containers/vector/data_access/1.cc
  a76f6e7c31b7d8f9240bd352b9466d53  libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
  4fa73e98667e45918cf4c25a7c91ca77  libstdc++-v3/testsuite/23_containers/vector/debug/114316.cc
! 70f162d2d539cb9402412c915523ded6  libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
! 23bf0482684c7300af199b31b0984707  libstdc++-v3/testsuite/23_containers/vector/debug/57779_neg.cc
! 6f631159c39ef50d38ff438d1a70ddea  libstdc++-v3/testsuite/23_containers/vector/debug/60499.cc
! 7a0fa9669cca39ad166891eb42007ec5  libstdc++-v3/testsuite/23_containers/vector/debug/60587.cc
! 072b993a36571c32720249b49eb88f30  libstdc++-v3/testsuite/23_containers/vector/debug/60587_neg.cc
! edd72aa18226d8fa96187605a1bdc509  libstdc++-v3/testsuite/23_containers/vector/debug/90102.cc
! b8eab5530c029b604e9427db3d3b4ea6  libstdc++-v3/testsuite/23_containers/vector/debug/alloc_prop.cc
! 527f510d9cd87c11f9e546d8669e50d9  libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
! dcdac7b69f55e9be0b08bc023f6c8dd1  libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
! 86b104fae346e50bad1644306ee0be64  libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
  36541de3ba8c9a1aa64b2f64e2664b68  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
! 771ce91200a6f75a196ab218cf4b3b05  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
! f7bc53472d2f38b7911cfa4382834ee6  libstdc++-v3/testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc
! bfefd9678f199467ec469dc5e384ee1f  libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
! 689f52be7bcf5eb15102a75b4c7e356f  libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
! fade2671607014821f8103337e0869e7  libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
! 29e4b6d4e51d8aa65701c18e4da23dfe  libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
! c52e333b9eaac0c710f5f6ecb32246e5  libstdc++-v3/testsuite/23_containers/vector/debug/debug_functions.cc
! f39d5883cf6d94791fed952e09170907  libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
! 508b4922ff0983ab94677a552d81820a  libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
! 28e0a26b8b5462e2214a8222e79155b5  libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
! 5f3af4de4277cab9093619863be49a43  libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
! 83e3706ac9f82627783a551c9ec35598  libstdc++-v3/testsuite/23_containers/vector/debug/insert5_neg.cc
! 4ff7d75096ab51cc7b109b423c171e52  libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
! 7368672f08abf5c394c3536de6e0d89d  libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
! 6a88e8b96f8dde17c94bf775aeb12982  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
! 9cf431c7a469ec50023f7c9ab9131c61  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
! e288a97447a7285419a841cccea6c155  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
! 216ea46d1c1c99db2b8765bb00916eb1  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
! cf1a79bd27d2ce249fe88f728eb55753  libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
! 7c11c030521322b9405de43761b8d8f5  libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
! 3a65e1ca61c767b7d7ea9535672f53ff  libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc
! 2b7de821297fe5a22f3ae7ea5a650c46  libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
  7f7ee046dd79fd0dbaee1477492faa9d  libstdc++-v3/testsuite/23_containers/vector/debug/n3644.cc
! 322014c2e13e065572551e499f3cd003  libstdc++-v3/testsuite/23_containers/vector/debug/shrink_to_fit.cc
! 8373942dc042377ade8586da8534ff9c  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-1.cc
! e0139f988e33f60726f9b2111f67f2ae  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-2.cc
! c90359120f3f9c226348a7a1978b145b  libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
! ce4b8e0e670f29f22e065079390df4f7  libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
! 5d8082f61b3a74dfe8033cbd3f9f8ab3  libstdc++-v3/testsuite/23_containers/vector/erasure.cc
! 219dcc2ada9dcc1f89c12824607a0c41  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/citerators.cc
! 390d90f91efcc799afdee55d7ca7572e  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/data_access.cc
! 3a88f0b2517cdb282e8ccefa9d7438ac  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/1.cc
! 9b0319a9e3207ef93025911a400ff970  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc
! ebdda32eab4942bd9f08ea022f5f9703  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/element.cc
! 46df9b9622651b2f081befcccb8d82e1  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc
! 69821558b99cec4b7ff7032ba0ab5355  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc
! 0ee40344b189d52e1bf8e3e7f401f84d  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/resize.cc
! d25f291816575ab3288d7ef11616c8c4  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/1.cc
! 7f4f6bcb6fd489c0f3d21e9a992f9365  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/2.cc
! fd4fcb831fe8650097c41c5e89dac0b9  libstdc++-v3/testsuite/23_containers/vector/init-list.cc
! c1b88d2f8969f3db574edd537b12aa9f  libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
! 1290761e41a3824f22113332e9e7e2f3  libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
! e767eac7e8c20f96c48d462609c4d0b4  libstdc++-v3/testsuite/23_containers/vector/modifiers/append_range.cc
! 871e71919a8ead646df53a68cf98d0ee  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/1.cc
! 3961fb1e7e3cf628954d162eb59723e1  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/assign_range.cc
  953c68b9c8f36c7a72454dbf1966be8c  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
  000698581016741f52c8bf2bfe086a46  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/no_realloc.cc
  a325122e6a6afa548900873f460f4121  libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
  00bc8fb19959079360f78f326f302b5b  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/1.cc
! 67c2a2fd9cc970913461306a5b4da65a  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
! aad704b55907097597d2fa152d71c15a  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc
! aee0079b8a6c9908a4779f111bae6eb6  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc
! deccf532aede730ba5283608ae0f7a93  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
! 605e484eacd05bb3245e26d7f223cbde  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/50529.cc
! 8c3269b49f144605d3c9731e5a2e5885  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/54577.cc
! a5f7ae14b6844d43b1081a499624f525  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/moveable.cc
! 3165049b41b708a8be02e3d1ddf60d56  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/1.cc
! 4efef42f0cfbeb752b2c967583ca4237  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/117983.cc
! 7d27fdbd20b83aa5340cdab8ef4c3ce8  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/58148.cc
! 28a3af6e38881699bccce32dfeee9612  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
! 26744f861734b6a0aa5bad87665a2ad9  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
! be9bdc7d3330f3394771c82f96ecc66f  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/insert_range.cc
! 35e70ddc10ee243c7ae40dfd6fba7ce6  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! 2301f3312f26a25c0cecd650693c1ee6  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
! 071692d93dc4cd16ba56c3ef394403d9  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
! 7499329ab40a3f8d9ec96557afc9fdf5  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
! 19a7aa23a562ce123f59840732f99484  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
! 39ea516b4e78257b10729b1294b8b0e1  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
! d5a10e609929e6fcd8ef4875e82e9fab  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
! 129e06da1f884b42b2e5f2d423c2fb99  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
! f7d7b18ce6d96f9d3f0358f60af4bff3  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
! 291b9ca09e8fdf6c34b88c801b0b8072  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
  ea251e0e3973cbfd8ecc45113a07deea  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
  5e2c71260e3bea608524a7b15d7c37f2  libstdc++-v3/testsuite/23_containers/vector/nodiscard.cc
! edc3189a2827fd9c1befa1d255b6e89e  libstdc++-v3/testsuite/23_containers/vector/pmr_typedefs.cc
  33db2bb591e55ad911ea124e372841ca  libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc
! 9e49898c17e63119c4cc79b91afd8816  libstdc++-v3/testsuite/23_containers/vector/range_access.cc
! 14437f90903ebe8ac60713c2d8bb330f  libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc
! 58a2363d7aa4c0478d913b9342bab8a0  libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc
! d9dfeeffd1bd1009e4f8c033b1ffa804  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
! 475f99e583e77ab2de9214584c6c94c0  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc
! 5e226b4d5013f6ee8e1732ea80da2b53  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
! 6466c5dbe2a1ffe9516e9de254733f60  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
! 043e858b3707e3119b2962046ba35aba  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
! 79c5468c3e1f80d528d414e220c10936  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc
! 583a82da592a916962eef47afad4a056  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
! 2dc982007317b360300b2b5fddb88600  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc
! 421af9b50d60a24abbac304d877e7612  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
! 02b6febb96db6ec521eb117d7659985d  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1_c++0x.cc
! 28cb73e189c474ea44bdbbb942226ec7  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
! 3a311e665b124ee0ea157248bd2467c5  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
! 22db93e465d1a20e135b52d0cb48dcde  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/4.cc
! 563ec7aecb13f7f5ebee8497669c9963  libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
! 4b98a98577c800f97ac80a85cff8d3d0  libstdc++-v3/testsuite/23_containers/vector/requirements/typedefs.cc
  2ee39d513e4a8853a8cc693625426333  libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
! 7d2a5e47f8a044a7e082147193355b39  libstdc++-v3/testsuite/23_containers/vector/types/1.cc
! 0110706a1dc231b022b4cee134b094db  libstdc++-v3/testsuite/23_containers/vector/types/23767.cc
! 9453e19250d3cfa0ec2e8f0b1b98b494  libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc
! 0843785a8c96facdcf360abd4429ea06  libstdc++-v3/testsuite/23_containers/vector/version.cc
! be28022a3301b6bd25204640c5a4357d  libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc
! c82482ec12ddffee8ee1538cba313b48  libstdc++-v3/testsuite/24_iterators/aliases.cc
! 8fb934291308eccdbf7e9e2e28594930  libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
! 812cd59b1fc19895acd1e862677e6316  libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
! e5957bde741ea649959dae0643127498  libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
! 44ff6bb7fe6634c37dfae7c3141565eb  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
! b3058c425f7138e4bd553a0d1946ff73  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
! 16f8a640c516fe1799730e3527bd463a  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
! 901d9f0f287fb881748083f56e34944c  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
! 17c331f4e84bd70e91df09fd3353bf9b  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
! 033058f89715b15ec3ca8ef37110bfd6  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
! 43f8f09b6793d6c0e44b0d8076faf1b0  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
! 161af4d8651c929a6353ed1d1a428253  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
! 9af528aa578284e50a9e01a7999916d0  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! b767444cc42a2221df71f8bbc317e333  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
  9f4e16d24466d0905c256e141d9b7e91  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
! 2c61f978dca854377a1f045080bfc407  libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc
! 51fc15623a3885b80419b7193df04bca  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
  c78691d1ff6bc1b3ae254334b058b5ca  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
! 3fcc24ac9868ef19598ff1bf296928bb  libstdc++-v3/testsuite/24_iterators/const_iterator/112490.cc
! 7455dfdc03b09fe8e0234649b4bc47f2  libstdc++-v3/testsuite/24_iterators/container_access.cc
! f18f6649cb045c0b15cc4cac54ee8f59  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
! 91b3d484dfdfcb2698ed0e1b9f701fdb  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
! 58bfea5a3d57127078480f25286a2bc2  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
! 7ca90fde51a1d54bde839b0d0e9048ca  libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc
! bc64ed922ec836f9bb4a4f37b2cec77d  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
  b37a6542819dd8a42cc6e9fee97b5944  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
! b27cc1a5f2277e7fb2c12c7fb84b2c05  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
! 1ff4f506d520fb37fcabe44cb6e4fb3f  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
! af2463ce0867d0ce3efea5297240e2f9  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
! eb0f280d4b4cb91a75cd722820c887b9  libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
! f44f905280661a21f54de72aac5dfdd7  libstdc++-v3/testsuite/24_iterators/forward/concept.cc
! 256bc701fad657af9bedfd09b344b827  libstdc++-v3/testsuite/24_iterators/forward/tag.cc
! 489f681db3e5a08a3ac13a959b8bda55  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
! 7e0d924c160b119722080e1bead5896f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
! be11fe3e8ed240eae488a614a8fef038  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
! 6eeaf41ce2c073a8ba8832c73b485a04  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
! a8724a64da9952034c95d674de9b9d6a  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
! 068dfd1cb4ade8f8a5218b46f50c7f50  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
! ded412c200406b702d7c3b396c52d430  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
! 3d7dec9bca500e79adda73e6e9ce9761  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access.cc
! eac8ebd78055f826a958a1bec0762f08  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
! 1103743ed213cec3a523f4006ad68d60  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc
! 92acf45dd9df52c38d7caae4459aa674  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc
! 25a73e72c57951177eaf365adc303700  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc
! 1c8f7208af397f9dce2cd3293817d97a  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
! 52fcdc2114762fbcbbc5264f0fb9f9f0  libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
! e39ca26c83715e8ca39d20238db3fbdd  libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
! 46c2807d709b0e314daef46cd4eae37f  libstdc++-v3/testsuite/24_iterators/indirect_callable/p2609r3.cc
! 1577329123945c82f762c113850c4364  libstdc++-v3/testsuite/24_iterators/indirect_callable/p2997r1.cc
  1f15796626d974829bb6df211b0b4318  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
! 9dd441ab2f923d69e568c0adf0c12622  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
! 49d4ca3920e8fd4356bdae01235028a8  libstdc++-v3/testsuite/24_iterators/input/concept.cc
! ab57b375a5e10f7933aa0bcf016c88c9  libstdc++-v3/testsuite/24_iterators/input/tag.cc
! b8f8b860ad518bcf0ff9d89a3c02b9d3  libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
! ecedc0962a94f479ba5225338a134a14  libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
! 9fe20728b39b9fdde077ae75d3b9055c  libstdc++-v3/testsuite/24_iterators/insert_iterator/dr561.cc
! 7dbebbffcad22c2e6b2dbcd2698339d9  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
! 04c965c639804c785f0e3a57aa383305  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
! 1b7844dd2d3c694a82abe29aabd30742  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
! 740bd1cb4ce642e0f636673fc034f994  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
! d64690b5f8fcd9d20607adf7baed1748  libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc
! ba158069f7f92a8cc9c0efa0649fd210  libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
! 8d592c446444c6a1bc678a91c0c959b8  libstdc++-v3/testsuite/24_iterators/istream_iterator/70766.cc
! a9cdb8e686465e04357dd6853b03f1db  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
! 78c4bbbe85235658392c1be76cf57e0b  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
! 187c5e84490111ae5f3e7626716f4d43  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
! 56a66c737c731f21039a8d95b0de27dd  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
! f2795e80740d31215c14df45bcfec94d  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
! 6b194bacfaa14edb84157fbb83ce9363  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
! c89dc09a75ce203a2f073d2be856c3e2  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
! 0eaf0a5eab483b6a8cf11573a6d6192d  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
! 3cf2980e126910c918c18f35cd60f00c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
! 9fffa91fb4e6dfa9b3628017c1595a91  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
! f4e1ce2b266a87192f92afdda7ae8f04  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
! 59168fcbb1af0de7f9bc01a90d0a0f48  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc
! f6b8056c78860c33b56cc53ec15333da  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc
! 310036639c28258ad34fcc3d5d86dd6b  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
! b1fff41c3f059b4956a2ca9f67f6ff6c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc
! 4885e75d3c55ac4ba58b4474014ccb1a  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
! 01d855729a82cb625c3ec5a10e35e12c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
! 19e5eb648cb55a6d4bb8ba420ce4a98e  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
! 73c2948a2ef31c0cf14d60c29ddd24af  libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
! a30350852f57c271df676a90c15f656f  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
! 97bc0b21aa4a877c9e3703403ad86dfb  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
! d107a86e12a03b642b5d6dc62301ef53  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 9ba2a0a4d59a3e755ff4646f5d51f468  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
! dd14de2ef7ddd4e3bce3396375170f08  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
! 16fce44f0633688bbd4868895e6f0c1d  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
! fb31ea94205c0e8f20f4059b4b1ccc7c  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
! 1bfeaa2b2f3094c4f9c1dceb28acd991  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
! b06f405b42bb5b274476027d459929f9  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
! 5cce12d5802292914a78be13dd754c09  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc
! 072df45e44a08a85553c0f83b247dd31  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
  5b709c0c24b86afd9aaf272fe6396999  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
! 335c0b39ba81223ee43cbd754442f85b  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
! 3bf5162cf9bd9a8028b89b4e504051b2  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
! dd098e3ad711e1f89c13d3f705328645  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
! 7cf0a10087196fa4c395e573900fda3d  libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
! 951b3d1d41afb63d1de42db9f70ccd6f  libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
! a207edf509d95c3128c827ff3bab1b91  libstdc++-v3/testsuite/24_iterators/normal_iterator/greedy_ops.cc
! dbf77bad38ce01a34ca48b8453f71b33  libstdc++-v3/testsuite/24_iterators/normal_iterator/wrapping.cc
! 05a1202214e99b96da0c1f5144ed7f7f  libstdc++-v3/testsuite/24_iterators/operations/26020.cc
! 41e15ca0d4468882373e6668b831faec  libstdc++-v3/testsuite/24_iterators/operations/40497.cc
  631af97d6c75b598ecf8901dc62067b2  libstdc++-v3/testsuite/24_iterators/operations/lwg2353.cc
! 6bde3bb2f9a2b62486e8c9685deaf408  libstdc++-v3/testsuite/24_iterators/operations/next.cc
! 63d0109ebf6fe2e478e89b2605e32b4b  libstdc++-v3/testsuite/24_iterators/operations/prev.cc
! 95675cb492b581170fee6e0845b372a9  libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
! 61b9c09bf9d35ba5395570c0bedc3eff  libstdc++-v3/testsuite/24_iterators/ostream_iterator/1.cc
! 0a63df123798a9a002bf1c744d12f2fb  libstdc++-v3/testsuite/24_iterators/ostream_iterator/70766.cc
! 7120f4eb778bdec67204b3c5ac16886a  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
! 34e3a8ed22e284c7e26eb3b2e86abff9  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
! 0bcff506c2e0c81ba7def72268e5cacc  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
! 63337c1edfefa055c8d277ef0cb8f148  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/2.cc
! 9ba6e41ca36141c845ccbb56f48868f3  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
! e5f996fbd7c463c5cdce92d1cfeec2c1  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
! 4594fb0692e970b83863e5593fb670c0  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
! 52d8e3f0c0e27fec1f58a5ba479d93f5  libstdc++-v3/testsuite/24_iterators/output/concept.cc
! 682bd05ac09bdd08c584fcd1728f928c  libstdc++-v3/testsuite/24_iterators/output/tag.cc
! 1e373c51fd12f6b0ddc4d653f0a8246a  libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
! 713b6634126689a91f1d403206e3ed1f  libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
! 559c614ab19722e055aaaa325a00536b  libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
! 0954a0794f753047e5654d11d59f7d0e  libstdc++-v3/testsuite/24_iterators/range_access/range_access.cc
! 22be42b7219401f9c6d645e2efc3d0be  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp14.cc
! 939b6383459581609871080707131990  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17.cc
! 2ce2a0e7b6d87b1739fcd53328d0c1f1  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc
! c6e5f42aa2e99c1de646e3f726088007  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
! 7eea4f123a6b77e756f31046b294cdc7  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
! af6c0a1d0c8ca4041c973a2c311ceb20  libstdc++-v3/testsuite/24_iterators/range_generators/01.cc
! ba0abde05e8c541159d199794efbb997  libstdc++-v3/testsuite/24_iterators/range_generators/02.cc
! c8a50553dd3b7126efd679c539a6fe59  libstdc++-v3/testsuite/24_iterators/range_generators/alloc.cc
! 1ab4ef758a1fc460ab423aefe9232c72  libstdc++-v3/testsuite/24_iterators/range_generators/copy.cc
! b73d317c5a2565fa5bdea7235d84b955  libstdc++-v3/testsuite/24_iterators/range_generators/except.cc
! 2655d5bd5e2ec076f8bc48c4004c50de  libstdc++-v3/testsuite/24_iterators/range_generators/iter_deref_return.cc
! 563b847dbbebfa4128d4c633fae82ec7  libstdc++-v3/testsuite/24_iterators/range_generators/lwg3900.cc
! 1e1d86dc401e097273fc12a0dc17640f  libstdc++-v3/testsuite/24_iterators/range_generators/pr118022.cc
! a7fdd4ef46d148c07b2306186a300c7e  libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc
! ccbbe51e2f862feaa3f4e717ef2f1cd6  libstdc++-v3/testsuite/24_iterators/range_generators/subrange.cc
! 176a646a1b7559b26db737da71d00cd9  libstdc++-v3/testsuite/24_iterators/range_generators/synopsis.cc
! 02f28e9c43d1c6870cb37adefe922b06  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
! 15713890df454c3323b70750ba44f7a5  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
! cd26960c17e204b57f33cfd344c760f5  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
  f3e9bd715fe13148d21f32ce807ccb06  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
! 82cf546702856f1c245234aaea7e34de  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
  a921cc7d3fdaaf8546958618d0214e1b  libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
! c94655864ba2882dc50a399859218ed5  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
! 3e7a771ea1304cfaba714e6e9e595296  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
! 0a2b9dd2018f7496319d6986344db9b6  libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
! 77a2bae1c47ef6bee88339ab15162667  libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc
! b6a7122c37f1f7910a17dbabbf578a0d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
! 0cff3e007e079e78595e520e872c0306  libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc
! 397368325d919416acdef4da104b8a17  libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
! dbd5383f26717300ed689756a88dd773  libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
! d367c05e302988f5c954a7dcd441b8d2  libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
! 4b8af3724de48d6d8a18b4fcbd0573c7  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr1052.cc
! 1e7c406be44f6e86f4074d1e7a46a2f5  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr2188.cc
! 673f301d26c4e795708efc091c641d81  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
! 341e63f64304fbcdd7d06f5cf5765e7d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/greedy_ops.cc
! c1883ded42b36d77a7b0e12b1f53373a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/make.cc
  b0c0208d50f550375365900191253233  libstdc++-v3/testsuite/24_iterators/reverse_iterator/noexcept.cc
! 3488b5a1269edaca3bb051cdd73a7aba  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops.cc
! 68cd1637c5617c75d03aca1c67d91e0f  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
! ad828192c6e2c1e48a83ee7ad098113a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
! aea0a498cd28c6026a1b3a1c223e5b65  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
! 032b64eface3d77e3ffb4cf705c13e1d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
! b779fdf15822af893dbb0f9556cd555e  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
! 71a44ba76041b818c0ec4981ba903a79  libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
! 534bf7c877dc82b6dea22c9712c28c3b  libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
! 9f66f287508477b29640400927ca8440  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
! b7b1648afe6276546628ae234df040b3  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
! 61b3431e913776860fc22698e29be51b  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/2.cc
! b4a1c382f106ffd5e93cbcb3ce1390c3  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/pod.cc
! 7c2be543ca8b9176be1f02a930f9beb4  libstdc++-v3/testsuite/25_algorithms/adjacent_find/vectorbool.cc
! 9530fe96839f281bf50fd447378c4965  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc
! 4a4ea2be5612ef4887006948b3000ab9  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc
! 92404401a1d5681cdcac30a7c8255b25  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc
! 0eb3c31e9bcb7aa6bbc5f5f804b66ad3  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc
! 14a86097a164ec6edcde0d109a3c2232  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc
! 9b22b4c59e275e7f45e7e4c175c821dd  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc
! 2523b9fc965dcf690e9108ba600225e9  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc
! c25253eec26f39b40a94b2708de1a692  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc
! bedeff3fad31497f4170d2a7c299554c  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc
! 6ba3d339f1306ba197639a98e36281af  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc
! 950f00335444e4c94fc29e6c4e867588  libstdc++-v3/testsuite/25_algorithms/all_of/1.cc
! 55a537d5180acacb678e6f3e391627fd  libstdc++-v3/testsuite/25_algorithms/all_of/check_type.cc
! c552916071b96c5f106de5a645134d56  libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
! de5f13850fc8d15628ada49b999377be  libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
! 3fb270299aa5a6051caea4577596d948  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc
! e042b040094e4d8e446e9f74ca7a90a5  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc
! 71814619aaab7d3ef08da0b01763925d  libstdc++-v3/testsuite/25_algorithms/any_of/1.cc
! 6973544c961a0174a5ab90a73aed4bd3  libstdc++-v3/testsuite/25_algorithms/any_of/check_type.cc
! 540377fde5f3e4a2e9f8e00be6b67416  libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
! f18e4791067eb5cbf9742694a9944b62  libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
! 78479f6cef17c8c248c25f14ddc71247  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc
! 903408c3d2356d4d5949b00bbfd6b46a  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc
! 527f8658594033cdd55e26573dbe476f  libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
! 6c8270ebd6f2a0fefaf012468258cd03  libstdc++-v3/testsuite/25_algorithms/binary_search/2.cc
! 0b9eaf1ddaa279c413e2d4e232e8dd1c  libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
! cf8af96548a90a87ef2027ff940cb272  libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
! 58b066089eac6e8073c8256757d55cb5  libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
! d23cdef7f62c1c6e7785020a5d3681cb  libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
! 1ea0801ab99d3fa4baf29d01a392d7c2  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
! ad334e3a70b542e71e616f7954f592c3  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/pod.cc
! afad8047854b6496b6d21a24ac2fcf28  libstdc++-v3/testsuite/25_algorithms/clamp/1.cc
! b3d45c29d5a2c403abc175fec1b99a6b  libstdc++-v3/testsuite/25_algorithms/clamp/118185.cc
! 9f3ca6d4d901cba644cd2c3c69a69a2f  libstdc++-v3/testsuite/25_algorithms/clamp/2.cc
! c6121acbe0e7e2cfbc613c8b813e4046  libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc
! 8ead257025277e6bd489691f00cad171  libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
! 7f756023af6f9dea40e5394a731f488a  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
! 8c2e27e6259e4f6514e5e5ac6e49ab4c  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
! 176b65415b3ecc4f67aa74028b35f21f  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 79277a645228a8c8365516a6cdb9bbd2  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
  30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
! dc51bf8ec0600eaf13a5e97b344b0c79  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
! ae049046b45a395504fd1e8a19c4f18b  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
! 6f8c3f9d5e1238778b6e1ba3a9bb80ef  libstdc++-v3/testsuite/25_algorithms/copy/114817.cc
! 23b0d913d66888b7f56b9fe9040957c3  libstdc++-v3/testsuite/25_algorithms/copy/115444.cc
! 5003c29765774a7418c3443878d83332  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
! 273dff5a2d0cc6cda1596a2c8a114fec  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
! 809bbcd5453cb854bf0b20b8491fb7da  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
! d98fd7a3edb10458ebb34ab3a08821a7  libstdc++-v3/testsuite/25_algorithms/copy/4.cc
! cffca8214727cb33b9ba4933897ce32a  libstdc++-v3/testsuite/25_algorithms/copy/58982.cc
! 5f4f69009efb986fa7b4d87039f12f7b  libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
! bdd2df76a9c9c3cfd2657afdebf61b6d  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
! e3fc455f0da2c9dd1ad4804bfffd782e  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
! 6ac404564648e7d8c4b56b58834848f6  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! 73009f347add3a3d14e916606a8f4953  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
! 64ea5ba049127b1ac430ad8d38d2a97c  libstdc++-v3/testsuite/25_algorithms/copy/contiguous.cc
! 7da68c7d9ec31b91b5f5e64c4170582c  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
! c95baee85dd7d9b64bf4a239160956b6  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
! 44f232001120db9ec0874d925b55d86e  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
! 1728c5de79b2df2142b437d3408a169b  libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
! 312b0a8d0adf5e25215b30c63e33437c  libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
  a4e3b919e921272cb082f7fa810f39d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc
! 9311ce56aa2ba737a075f7becee4db85  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc
! 4fc327a23c964ded6850bbdf5377e284  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc
! 9129a59590935e97abb312129c9f071e  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/32.cc
! e56b3352f60d6c6993cb5120df4428d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/33.cc
! fd2904d61537c14101c4169407fd9c72  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/41.cc
! b7040ca91f1b05cb9e230278ab306569  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/42.cc
! 749faceb02a1bb023797b41c3d61755b  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/43.cc
! af70e70a49bd6cde113a4eac471f1aba  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/1.cc
! 246d70d3d49b950ef34aeecf501dc287  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc
! af8df818a686782c97b7b6c984ef3225  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/2.cc
! e18000029fadc061a0fa92f6cdab609a  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/pod.cc
! bf7c78be9c7eeb87cb306d50154983fc  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc
! d39008796f8411d37a268e36813ea6cf  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc
! e5c1e101ca0322f2162d77e3eccdcf91  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc
! 999390a90e47f0796784772248ecd941  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
! cb73337e0a101fa10f3a296a1e7e2f0f  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc
! 8ddfea3d755ecccddf08e1a2941dc924  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc
! 28839c69aa6cfe7812f4d97061d522e9  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc
! 09c5f2d45fc618cabdeb89feb988bc53  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc
! deaa7fa1a362265455095e3d31e4217b  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc
! ea6103a279f6870c767eeb7c52ec5c64  libstdc++-v3/testsuite/25_algorithms/copy_backward/108846.cc
! c12ddd617d1b7d6e16b7eb9db123240b  libstdc++-v3/testsuite/25_algorithms/copy_backward/94013.cc
! ab0eab1813dd6e305cc8b2804e10c90f  libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
! f064fbaaed881afaea8fd0d89312ecbe  libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
! 1b75ba44338439f4b21f8687c1637126  libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
! 22fc4dc6e3e1e83a146c05d4acf678c1  libstdc++-v3/testsuite/25_algorithms/copy_backward/contiguous.cc
! b01e1fb055fcf7754dfb0d474b586837  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc
! 03cd1cfafb10ef1fac75aec1c3f39a51  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc
! 89c24fe107f353f95333338fed0811b4  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc
! da329c7e13089abeefb5fdd4b4408e9c  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
  da1fb78d5a3cd469ddf537052865be96  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc
! c3a418b941bf4ba469bfc782f462984a  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc
! 86f21f0ba143930b33bc5289d5fc7fb8  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc
! 7cabb3048f9e2fbbfcfee8f159cd8f5b  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc
! d0fc0a4f2743f8bf7815042052722a7c  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc
! b0019905edb01a56fab41e60b032bcdd  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc
! 7f8b7223d6de070b5b0042c5bb8613cd  libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc
! 3ad0396d2a00e80efb61069aea29a6e3  libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
! c4c22e34fe68cea068d6da219d28c44e  libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
! 59ff42fec36bcf2637ed7c7be9335ab7  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc
! e2b376adfc53f0fdd7dc5e632d1ac42a  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc
! 841b2664ac826ed397987b40d803379d  libstdc++-v3/testsuite/25_algorithms/copy_n/1.cc
! 09578b9aadb39524362e19a9314c8e28  libstdc++-v3/testsuite/25_algorithms/copy_n/108846.cc
! 90c9702234f8880aca2cc1bb85a62ffd  libstdc++-v3/testsuite/25_algorithms/copy_n/114817.cc
! f6fe8af9e00634d3945e0272c4d559af  libstdc++-v3/testsuite/25_algorithms/copy_n/2.cc
! 9ad177658dd1cef5f898535699b91810  libstdc++-v3/testsuite/25_algorithms/copy_n/3.cc
! 007c2bc64206ea6ec45babbc64457089  libstdc++-v3/testsuite/25_algorithms/copy_n/4.cc
! 9f72823246a34d9bad8b70f8b75fe3ef  libstdc++-v3/testsuite/25_algorithms/copy_n/5.cc
! bf8ab76640abe023e21a27a0034e324b  libstdc++-v3/testsuite/25_algorithms/copy_n/50119.cc
! 8986f7ded3fb86902e033f4978388983  libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc
! ebccbf663bd9c94626264e3ae9f2cb6b  libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
! e47eb0293ec4463d318ac0c125e1b3a2  libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
! 72e2fefcaa366bd09649076f661374bb  libstdc++-v3/testsuite/25_algorithms/copy_n/contiguous.cc
! 54f8668a6d97ca4bd2c368b5eee0eb19  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/1_neg.cc
! 7a801e912b1c42cfcb90ff63edc8c25c  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/2_neg.cc
! d82a91065a60afee727b640b6af48172  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc
! ffa797ad0b680c27e70b093a4fc0ca8f  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc
! 17f588ec9cee64d0a7e8444e78f0bfda  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc
! 2b0d10aeb5877cab85c602924331138e  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc
! 037a5eded7b232a27e922ecb42f7aa1a  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc
! 7a9a5a04d8d84dc42b365e770420ba25  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc
! b1060fc0f96ac2a8e0106ca95bd842e7  libstdc++-v3/testsuite/25_algorithms/copy_n/move_iterators/1.cc
! d77033994c4c03793dc0945297de20a2  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/2.cc
! c747e883fd8fe929ce178a74ee9f8294  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/pod.cc
! 95a45f28701d9557f203e6bd504bd33f  libstdc++-v3/testsuite/25_algorithms/count/1.cc
! 338b3635415edbb53c7e6233ab17f99a  libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
! 6980bdc497527380d366eacab6cbd547  libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
! 848f69f9c836ecd2cedc0d730d26853f  libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
! 660df40aebcb4056e0b7261dd10a22df  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/2.cc
! 8be98ced9d87360118592bad180895a2  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/pod.cc
! 356fe845d5de3bf45818cd658eefffd0  libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
! 2f517963ba4d2d70f054a33fbe323866  libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
! adc2648dfe1a7935b7056247fe6a464c  libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
! 1f552f401fc600667e0c47a089b35e7c  libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
! 30f728183008565e86d8e883b1959919  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
! 3a74b3aece4270d0428dedf9edad4fd1  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
! fb3438dc74bb18899d6862fa0a336f0d  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! f6209221dd7311dbe1d42f0de88a731e  libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
! 480e89db71d3dc273b8a94f68c6ca8a5  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
! da701df52f121ca10189a8abe1f5e2af  libstdc++-v3/testsuite/25_algorithms/equal/101485.cc
! fef2789a32f1fdce19d3ec94d109104a  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
! 0058e48c9329db16b7128be2f6ca1f5d  libstdc++-v3/testsuite/25_algorithms/equal/94013.cc
! 41c9a77a96b48e6d96aef420482ae5ee  libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
! 0ad4fa5be1475af90a12004801c55d6f  libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
! b9edd3d2edd25a9d6a302db6eb5761ca  libstdc++-v3/testsuite/25_algorithms/equal/check_type2.cc
! 4e39d34a3612705d3b4d48c8376b5aa3  libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
! 7864e684a4f1fc919624e8d9fb7992a8  libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
! 7775049bd29dbb295dd2ccd6a3c71b74  libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
! ffd7a7df4823e29d0033046c73daa455  libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc
! 92409a53b6c54f0bdde64aff45912cc2  libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc
! cd3bdedacd48390778b99a5866b5cb9d  libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc
! 18e6b6418786d105ba163fab8d5bdb48  libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
! 4ba00fc010fecaa320d3d271548ed7b0  libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc
! c0b18a7b4d710c241043a8c5994fa56b  libstdc++-v3/testsuite/25_algorithms/equal/lwg3560.cc
! 11f65abe712154c4a7550c755b00eb6d  libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc
! 3d416671da63e9be28c25ba9cd1fdd7e  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc
! 1642b85042c8b3a50538108945441f8f  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/pod.cc
! ea3a3fc106d80114cead39bcd27054aa  libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
! 7f142af3792649140f1ed1189e992d20  libstdc++-v3/testsuite/25_algorithms/equal_range/2.cc
! a22e26fa0abef307baaa78e89293130b  libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
! 94fed2ab1a68d0862bdb56171205482a  libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
! 0422cdd4a9431d99bc8d27dc3c680cf8  libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
! 69eb4bff05d6c1ed9da6555fd0d3db8b  libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
! 6310a006218fa90a29770109a81efecf  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
! af35009d2f4401875b1b1b4e331cecbe  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/pod.cc
! 99219b504b874c1b8adc7469290ff343  libstdc++-v3/testsuite/25_algorithms/fill/1.cc
! 3f5c13fbbfdd75f85ce1a83e235665d6  libstdc++-v3/testsuite/25_algorithms/fill/109150.cc
! e4a91fb3a66a7884ab456a86c37a1578  libstdc++-v3/testsuite/25_algorithms/fill/2.cc
! 9cc8d3a58dafdf2e19d08b771dee5fdc  libstdc++-v3/testsuite/25_algorithms/fill/3.cc
! 370ef3a26c7051f7048504b5fd5e8e2b  libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
! e30fd368934931d2472ec9a71939d2ab  libstdc++-v3/testsuite/25_algorithms/fill/4.cc
! 71482e4b97c2a51062bdde756e965e10  libstdc++-v3/testsuite/25_algorithms/fill/94013.cc
! 30dde4c9a3309b0fc19949b44b4d3679  libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
! c0cdac1011bb31b3131aefad8a80edee  libstdc++-v3/testsuite/25_algorithms/fill/bvector/1.cc
! e6b329b9c53ea6810d055908182ac1df  libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
! f5bc157202fddebada84b49603fcb5c7  libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
! ae00af8e59556e6024be95d0fc4051a6  libstdc++-v3/testsuite/25_algorithms/fill/deque_iterators/1.cc
! 939f3a23d06bd3f185a9c38d7aaa32a2  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/2.cc
! 93ef2ff7af1b4edfb984c5d72d67adf6  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/pod.cc
! 961b1ef6a6627a48d08b8179498ed6a2  libstdc++-v3/testsuite/25_algorithms/fill_n/1.cc
! eb2b2a56b7b69f178708e45eead4f571  libstdc++-v3/testsuite/25_algorithms/fill_n/109150.cc
! e186d07f7386f5bbe391dcd7e70c0b89  libstdc++-v3/testsuite/25_algorithms/fill_n/2.cc
! 4de752de9a1e6d590d17436a41993389  libstdc++-v3/testsuite/25_algorithms/fill_n/25306.cc
! b939494e8e09724cadee168a24fd9624  libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
! 54aae6002b348ee93d8d9c6dd4727236  libstdc++-v3/testsuite/25_algorithms/fill_n/87982.cc
! e7af3eecb1cb2193329c81769d2dd0dc  libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc
! f4c2663436cce3112be3cc4fda78aa31  libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
! 5b82a8ace0354f66f911f7b87c08808c  libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
! c7b814f3a3013e1381d3a596a8aa9e0b  libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
! 3930b9b95bf85f8336305df6eac8c42a  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc
! fe4a3a324375fed9391472380a75a084  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc
! d6aa10a5a345aeee3e4410caf3658526  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc
! c4faf9c14b041d197dd925b1b143180d  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/4_neg.cc
! c69b037aba162499e03cf8e6fc1272e4  libstdc++-v3/testsuite/25_algorithms/fill_n/dr426.cc
! 3d416671da63e9be28c25ba9cd1fdd7e  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/2.cc
! 1642b85042c8b3a50538108945441f8f  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/pod.cc
  6d5ca26b4036cb7671730c8021b8ad10  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/version.cc
! 7d5d87e6d372666d17ec0c4ef29f2841  libstdc++-v3/testsuite/25_algorithms/find/1.cc
! c9e6fc57b0d8f2cbb88a8f2813db1bd1  libstdc++-v3/testsuite/25_algorithms/find/17441.cc
! e0524cc7d97e492cd0ebe227571db416  libstdc++-v3/testsuite/25_algorithms/find/39546.cc
! e1032367658aba44902f7eac2ebfde3b  libstdc++-v3/testsuite/25_algorithms/find/bytes.cc
! 0ac88bd70ef70d391c19c55d2d02f07e  libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
! d21a742deae0368908cd214d240e8db1  libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
! 0d3bd473037da53b0e6adad9da7b7bba  libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
! ade513e8a2631e60e9567596c05ded98  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc
! 2a4aa3bd05231123ea8aad3d0000ed0f  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
! 46708a9c00e7568f53928952a705a44f  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc
! 6c79c843bbdd4ab4bf3d4b99ae99bf2a  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc
! 912f00fc821e532e99a03de55f4be5d1  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/2.cc
! 34713408c7f0886835ce8dd3cf18f41d  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/pod.cc
! 3ec7f0cb7f5f29b18bb2756be9611163  libstdc++-v3/testsuite/25_algorithms/find/vectorbool.cc
! 5d6621b2a92af06f338e0cc4fdcc0f8d  libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
! 7ced33941da7067dd9f9d4c7c547cd53  libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
! 6e280f2da18a0a2f3697874279b91b29  libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
! 5748d0b0273ef0ac444f3b563aeb6c53  libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
! 49fb128ed58da8579178c059bcd92572  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
! f6b31e53df89ca809acf0230de1bde32  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc
! 1045c8c4af716fa945a1ee8c644000b0  libstdc++-v3/testsuite/25_algorithms/find_end/vectorbool.cc
! 7c07bdf605d4efcb1cd55d5e83b51529  libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
! a50fdc28563763705063f3cb477a887a  libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
! 19e52344b6b75d2075137efba07c390b  libstdc++-v3/testsuite/25_algorithms/find_first_of/concept_check_1.cc
! 797906ff7b37f6d2ee4391b3a7364925  libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
! 919581c1a39c3b85890f5634d3e54dee  libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
! 693b25d64fd00c454803f0a79bed3c39  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
! 1ca09ba836cd9581b050595614943d69  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc
! b748e93006410e35c99ed9afad9c8c1c  libstdc++-v3/testsuite/25_algorithms/find_first_of/vectorbool.cc
! dbd5ace3229013ced70bbdcf8bbd7e7b  libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
! d6e92997058787b0b5a5b2fe6a10a4ae  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
! 2f05dfb0ff7724c57bdacb82c9034951  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
! 5158e5e953175ae6e0b2091d5fad0a33  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
! f765812c9416b00344d485be250fe582  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
! 82fc2d82228d235e8c04e691b084dba6  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
! 3ec7f0cb7f5f29b18bb2756be9611163  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
! c4b2a36fb11e766ce006be36ef5b0325  libstdc++-v3/testsuite/25_algorithms/find_if_not/1.cc
! 40ba27e5bd013fd9c1bb677de84cf4be  libstdc++-v3/testsuite/25_algorithms/find_if_not/check_type.cc
! 61cb831aef6a9ce43d5b69e6b083e421  libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
! af65445a62a36bab9fda550c5a11db79  libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
! 17b4727aa62c255cefef28e4fc896f67  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc
! 2b18b3261d90d3f37091a9ec02dc82e8  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc
! ee4ca8fb621e806dd90ec89114a298dd  libstdc++-v3/testsuite/25_algorithms/find_if_not/vectorbool.cc
! 19de1e424002b87cc9dcc08652fa0b70  libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
  82c17fed89cbde765b0270fb957c019f  libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
  5b5717f5711847b437c3588c70868f12  libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
  6b985533aa79367496bfceb82a572b22  libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
  bc01793a6c62ab08aa86899d2bfc2f93  libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
! 97ec78f4cb6196fbe83aa95fe0ccb627  libstdc++-v3/testsuite/25_algorithms/for_each/1.cc
! a33230058d8c123841da0b2a04135471  libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
! 253a152c6a8be0ef0b51f49deea0a052  libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
! c945f28538561d64a8c2688d6c1badfd  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
! 877ed5050fbeb8f16df2a24d92f1b35d  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
! c7e527ae9094ebc0ab262e61a27f14b6  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
! de6c9b56700355aef78630514865408b  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc
! 1c5b2a753d28c7dff362cc6d84ec8587  libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
! 31269deb0f1380b84e8158daf55b2ede  libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
! a70bc4fbc0207811f4ba3c2639ef599d  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/2.cc
! 958f474401c8ee35aab62746511fd724  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/pod.cc
! 1e70336c26bca3aa4691d94518d3b625  libstdc++-v3/testsuite/25_algorithms/generate_n/1.cc
! 3b5415bd0676ce7361fae74a29a96ec5  libstdc++-v3/testsuite/25_algorithms/generate_n/25306.cc
! 99f978cad5a15e412d92ea0f77a9a6cf  libstdc++-v3/testsuite/25_algorithms/generate_n/87982.cc
! def1e1b02dd5439d190f52b70e384338  libstdc++-v3/testsuite/25_algorithms/generate_n/87982_neg.cc
! e30d75e54e16f5fd57a940f9f6803431  libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
! 55f58e84691d770fe08e790913e77cc8  libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
! 9fb0b6f9db22c954eab7d6df11af0d65  libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
! 4f1ad6374818c8938daa986ff57f8e71  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/2.cc
! b3601222f8f44fde5e5c84e7fe90e75c  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/pod.cc
! 831eaf4620ad2ef2e51239d5424f6991  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/algorithm_parallel_mode.cc
! e12d59155657a7d00e46c12cc614d74e  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc
! 60fd036e387d3aa00fe4a9915ce835a9  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
! bfbf4410957794ffa548017116e70bd0  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
! a20ccb818db4b53f04e172f6cb11a28d  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed1.cc
! e7d81d19fa1701f4b7b239e8528e7f53  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed2.cc
! 2fc150610ded15046bfce4a02f56d4fe  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
! d5ead7d283c37eff914130974709f3a1  libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
! a23c605624d9254eeb17598e3e952e1c  libstdc++-v3/testsuite/25_algorithms/heap/1.cc
! 90aa3feeacfebcb704e607a4fbc9c30d  libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
! a345eb9266fc296ae4c7294a1ce6fd15  libstdc++-v3/testsuite/25_algorithms/heap/moveable.cc
! e58c80478bf02f0dd49e5b91c4326c0b  libstdc++-v3/testsuite/25_algorithms/heap/moveable2.cc
! 28140f2c7221373324ed1254c62f5aaa  libstdc++-v3/testsuite/25_algorithms/heap/vectorbool.cc
! 54cee5ee26a643f999dd22e27fe2863c  libstdc++-v3/testsuite/25_algorithms/includes/1.cc
! 521734ea04d2aad7d43c3d4fe31b6bba  libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
! 3a62b93a5ca2029c66a11837197845d8  libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
! 494d8734610d7a682a8cfc49614c275a  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
! c5e84e45032b1cb3d9e995f31c379e6e  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/pod.cc
! c4d51fca9ad710cbbe5ec668a861ac21  libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
! 696cefedb224df0ed44476d1ecc418af  libstdc++-v3/testsuite/25_algorithms/inplace_merge/49559.cc
! 860742fa76242e04de107c8bfb5fea30  libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
! 237d5748a0ddade76621aadbebdbb31e  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constexpr.cc
! 065f9d717483b96038d8b05ff5b7a62a  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
! 6046bbd6c3e914d5187d45195e5a054c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable.cc
! 082fd98cb407de8504a274d370d40f92  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable2.cc
! cacf8a0206017b4fcc254abcfd8f037a  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
! 7217f05230837ecbbc8ca8f27f9caf4c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/pod.cc
! 72c70be2b0c1118427a6de24557acb11  libstdc++-v3/testsuite/25_algorithms/is_heap/1.cc
! e8421b3893ea8688f497b0faa4e600a2  libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
! 058f1a5359b27b6c6a953f090e423a18  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/2.cc
! 481e26fbca6c71d62ffaba2da9ac537a  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/pod.cc
! 239128a069fb20466f71fb93a07da83c  libstdc++-v3/testsuite/25_algorithms/is_heap_until/1.cc
! 533e5a59c894dc368bbbd57e052f6ad2  libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
! 6f68ebd4a85c462bd3bbd81442b4c6d0  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/2.cc
! 786dae4ccdf05ba1c87492e864477f59  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/pod.cc
! 8b4e0e2122db1eaaccb6241d2e7cfb23  libstdc++-v3/testsuite/25_algorithms/is_partitioned/1.cc
! 7736b4d9f5196c490b1224b9d872b642  libstdc++-v3/testsuite/25_algorithms/is_partitioned/2.cc
! e56682c432150ca44d3dfd20855796a1  libstdc++-v3/testsuite/25_algorithms/is_partitioned/check_type.cc
! 9c769b7ab74120017e38644892093a5c  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
! 774898335e3a5dd472ba237dc082703c  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
! 18a93755bffb281d8032d26712b60176  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc
! 0c6b13baa0fee920610d5571b86b5eba  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc
! a397b20a7b1f35c11091da0947ba95cd  libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc
! 703a4d5435ecebae0857762ff757eac8  libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc
! 719e6d01370e8edc3c356314ee6687d3  libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc
! e1ae26d0d4653de8a5758b1dadf3bc29  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc
! bb8f7466211e9bd8e83f2d33158fb4b4  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc
! de7b60fad26864a8e4b3a7391a2aaf8e  libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
! 08bc46ca4f65aee018f0a1ed064dd8ed  libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
! a0615ab26a59e9cc0d5d52830fdeaa83  libstdc++-v3/testsuite/25_algorithms/is_permutation/lwg3560.cc
! afee58dc6b02712b475c594583f28181  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc
! e8d5d10aa3437900f8ef56750e234b34  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc
! 22f84f0ea5e09f4b3416cae1c4a87a62  libstdc++-v3/testsuite/25_algorithms/is_permutation/vectorbool.cc
! c4e66e321ff4e7b2c8b1897e5782fd89  libstdc++-v3/testsuite/25_algorithms/is_sorted/1.cc
! bf2b0fb515a834b28b3d9824f0319598  libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
! e3b551c6b217164bdd9f2ac765de3b79  libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
! f41a78919390c338ed03cab73d2ce8a9  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/2.cc
! 0d66439552e2778a701e61ea50e9ad76  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/pod.cc
! e204e6c8d9314a3d9c1d37438a323c45  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/1.cc
! 077e43184c3419a228b6e3c644297fa9  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
! b88593e8b4e5a3ccfd0cc8173a165108  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
! dff78fa2bcd87681082e57aa187ba64f  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/2.cc
! 5935827afb9bd47ade3cee35e8073720  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/pod.cc
! a124ac4cc52a91252202ea36a3c788e5  libstdc++-v3/testsuite/25_algorithms/iter_swap/20577.cc
! cee8d71ac6ee4933e6be539ed17505c7  libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
! b67b4c41690e1407e38d3d5764eb4c80  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/2.cc
! 57ffdef9cf8357869332dab3d72bd28e  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/pod.cc
! eea356c8a11f95e31ab1d27566c5fcc1  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
! 86d86ad4b3449a9d32ddf792914635d0  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc
! 6db191b7e8bcac6a6d9e909509e5a57a  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
! 7a64d9e4fdc46a8117e56f9d5e3ae804  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/94013.cc
! cc435e73205248f7798a7b0a1c988553  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
! 0a26738e5ba27a0c6c803b016963bf1e  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
! 5c445aad728e91c14a226df73c1f2dd6  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
! dbf91f202774977633e2efb7288a1404  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
! f5aafea9ce0993e0fe2dcc4d707306c1  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc
! f1c4cfebacea3a76855cc4f6359948ed  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
! 132775c06b88b4f4dabb26d9363b06e5  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc
! 2f74bd0c2563df2b65a1d763adc008c1  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc
! f3496e834db32b04bec185fd7873ef5e  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
  fda158d264fd98a45243c1135a92fa52  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc
! b425a5c186633309a14494efeb3c2188  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
! f021e4d6e29e8ddd29c0516059008a5e  libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
! a1a0d0bd8e37216ee56028d29b4cdcae  libstdc++-v3/testsuite/25_algorithms/lower_bound/2.cc
! 114c9d8c2e68b739eaedbf5349f3bfcf  libstdc++-v3/testsuite/25_algorithms/lower_bound/33613.cc
! 5a54a40483106001c14cbc80fbdd31e4  libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
! 22fb2446437260e88f6c2bcb87bdd131  libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
! c131b0193a2657a857427e8f49e3ee5e  libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
! bcf5680c95ceef844ac5d66399539227  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
! 8f1c8a8719c50c8926e5e9b390669a13  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
! 1ff4771c38e67fd44477545bfe075d0c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
! 8a251d0a19092522b92c2b6dd7217743  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc
! 8ad73578772eee2e4e2755c797c3c1f5  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc
! a3413995c7159da73691af57db16fe9a  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc
! 63eba04299586eff6c8629918d685ea2  libstdc++-v3/testsuite/25_algorithms/lower_bound/no_operator_ne.cc
! f0d31d1db245870e703a3a87d398dfcb  libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
! cb0bc11a17ac07daf8bc5886de7e538b  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
! 2f75f60694df8299c835faf0400fd217  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/pod.cc
! 5ded6392bb2c37e0ad57e65acee7e588  libstdc++-v3/testsuite/25_algorithms/make_heap/80064.cc
! a4a11314586ce4fd00f4b3e3e72b276b  libstdc++-v3/testsuite/25_algorithms/make_heap/complexity.cc
! 6542ce28d5a8ca1baeee93a1e5819bd0  libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
! 97c3619a6bd49371e2504e55d19fdd54  libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc
! 58cd98f3f49c7d21e1d769ed79464bdd  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
! ea76b7808a3a5633cbac9ccdbb8b2c79  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/pod.cc
! b36c147654d4c07eacfbefc7d9df0e18  libstdc++-v3/testsuite/25_algorithms/max/1.cc
! c7b1f8b48d924f65c961d5bfd519a2a5  libstdc++-v3/testsuite/25_algorithms/max/2.cc
! c934d375cfad0d3f3ee89515e59b0ea9  libstdc++-v3/testsuite/25_algorithms/max/3.cc
! 987aee4f611fe8cc2d77024cc91cfec8  libstdc++-v3/testsuite/25_algorithms/max/37547.cc
! 7a25c4e2ed32459603e6b911a4103614  libstdc++-v3/testsuite/25_algorithms/max/4.cc
! 18f228a0e49db52508e2dbb811c0050d  libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc
! 73b16232dfdfad0abb7ee1e1dbe72d48  libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
! 47a6d6b51a48508cc98461b403cbc651  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
! 7a411d58f67cb4ac8ecd92c39f8ea62c  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/3.cc
! 070132dda2ef2217e02abab55388bfb1  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod.cc
! d65109a73ae901944afbeb6302f76f12  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod2.cc
! 8aa7e96672e77cbecae01c1952f44900  libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
! c662c2f77e7397c386693fdbd1c4b26c  libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
! e2f577b87f94b5b7d212fcc5f1e63bbb  libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc
! f8e3fc9d02f75820263b7e7b017354e5  libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
! cf88c56fbdf70286d6ed4f830b8f5de8  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
! 375b63e161e8075b1d9400bea3d5ea76  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/pod.cc
! 1207327ee2c1452cad79fa69c1c46c1f  libstdc++-v3/testsuite/25_algorithms/merge/1.cc
! 487a312e3994751d174e9f29a9739724  libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
! 3b779d66504d370b8b2b0636c5417418  libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
! 62c3a2aeb84c63fe58723419a7e4136d  libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
! da085f19840eebefbd30d1bb4025d717  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
! 8bb776b20fe0b2e58264489ff8cbd570  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/pod.cc
! 58a6b9284b41892921498e77e43cb7b6  libstdc++-v3/testsuite/25_algorithms/min/1.cc
! ad7e0a7a84eaf12b718fa99f5c00c1d1  libstdc++-v3/testsuite/25_algorithms/min/2.cc
! 852dd53eddc294b8a71914a45787af67  libstdc++-v3/testsuite/25_algorithms/min/3.cc
! f0b8bf624d2d3c64226f97aa6655fd25  libstdc++-v3/testsuite/25_algorithms/min/37547.cc
! d35527c59c3878294d69067537bb749f  libstdc++-v3/testsuite/25_algorithms/min/4.cc
! c106702b1ea6ed88524cf7afb9d87d62  libstdc++-v3/testsuite/25_algorithms/min/concept_checks.cc
! cd97668ba5ed2733f59c9aab00124cc0  libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
! 46310d8d75ec87e2df69b95220467a04  libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
! edeaaad9d63ce98e9b5909d4d8aefc49  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
! 049c8fa3d3ec0cfbdee1ecb3c56f7ac4  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/3.cc
! de6c7127749cb42e2753e0d72c837267  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod.cc
! 3f8dc21be576eea383a2aa3486185189  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod2.cc
! b4b3dc5a14f58098816296da7e6035c7  libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
! 64276a9479e76a89a58349cb02cf4a85  libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
! b7a2f53959ab54774216e0c20d900645  libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc
! ff5316b00c429728bb8f4892829413a1  libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
! 38fa9b639c4f2458b7f32c222976f1cb  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
! 65836f3eadf34ac2e16b3325fdb5299c  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/pod.cc
! de367a9e90762dcd34762ccd0f26aa23  libstdc++-v3/testsuite/25_algorithms/minmax/1.cc
! a1171fa6c47f7cd7e10491c30f83fa83  libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
! ddae76c67bc42cd22a1f198c2e7591c6  libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
! 21ad77cdaa4acf02917f38f40822f5ce  libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc
! 7c63c3fa741a57d163d924c87f08c391  libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc
! f9ea8bdd31f8f5062cfaf2cb2d16e27a  libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
! aece909b115a810da11a54d042b67c99  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc
! 5d37f289efe01a755f23c643f172c469  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc
! 0de055b1fcd4da33364f786de555ed96  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc
! 15df420b3fdd3ea026103923fcb989b1  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod2.cc
! 7b1c3f90a0a9cb9e38e6afafeddb1dbd  libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc
! 451720835dbd51284ef217853fbfb17c  libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc
! e5a6690313b8f4041aa53d70bec1c79d  libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc
! 05c45d39f6f587a59b188b4e44c69918  libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
! 9bd6e6b571e443454c8fa0cfa59fa4c4  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc
! 058620f081e21307eac17d53110d8f5b  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc
! cbf22825f8cd11d117c2fabef0725b0d  libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
! 3438011378f1913b1f4b65bfd0f426cd  libstdc++-v3/testsuite/25_algorithms/mismatch/2.cc
! 574feb89eb31827e9a8260c1e05fd42a  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
! b4b348a2ac3f2f4da1b8ebfe91fd7ed7  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
! 5b02cf4dbccb942efa7248099e5ffb29  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
! 4d10d613bb2df27e4dbcc2d7af5ab742  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
! fefd6aebc408049f82916163ef0115ce  libstdc++-v3/testsuite/25_algorithms/move/1.cc
! 2c569f31dfe379911229d187a44ffca6  libstdc++-v3/testsuite/25_algorithms/move/105609.cc
! aace0cdd5e42f11fdd7c78151e077cda  libstdc++-v3/testsuite/25_algorithms/move/108846.cc
! 0c2aa8304e5f12108bd25aa7108e29dc  libstdc++-v3/testsuite/25_algorithms/move/69478.cc
! a8f0d9971b60e413cf893504142495cf  libstdc++-v3/testsuite/25_algorithms/move/93872.cc
! 5a72d530100536307ebd0d9547100119  libstdc++-v3/testsuite/25_algorithms/move/94013.cc
! 8f1725589bbd2a69af0059996523ce20  libstdc++-v3/testsuite/25_algorithms/move/95578.cc
  84aa86eee8e864094db55390b46b1e0a  libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
! 9efb82f1723305a8819f28ab1fa92811  libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
  c41fedc68e3cee79d652221a1c6b2c9a  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc
! e495de3638d0ac005170f64bf36ddcaa  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc
! e9eba23866f0d6b9faf78492df20736e  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc
! 0cbe0a413c26a2ccd51bb83dca546109  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc
! 4ba7930c1fe3c9c1cd0bcc5eb38dbcb0  libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc
! c1181932d8f6bb7e2f3c7c8a0c3620e5  libstdc++-v3/testsuite/25_algorithms/move_backward/105609.cc
! f96f2b153f5a6c89fcfd083b81e845f7  libstdc++-v3/testsuite/25_algorithms/move_backward/108846.cc
! 6b028b40cc32b48b56319ffb01dc5243  libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc
! 100cc4025d43d6273bd6be79947870e1  libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
! 9f101d9179c1b9e950c7c2fefe4dba0a  libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc
! a79dc4055f226eacd0889086b9c9e662  libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
! e3ca10e9cd683bb33b935f05dd01848e  libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
  d798b4d62b339492aca582244b60767f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/1.cc
! 721b848924ae7a86ee5f9ac70efed57e  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/2.cc
! d504303366e8989d5021378dc0f238ae  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/2.cc
! 210ce9eb70488ed8f0b76557d54897da  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/pod.cc
! 07360b165595b01b29777b022fcb473a  libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
! a5e9ac9b9d2e313db953ce156b24dd99  libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
! 83f61dca47d925e454819e86c98e01f4  libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
! 023fd2224a86ee9db5d5ff4dc0a9c464  libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
! f2da81b20883506d1c86f2ab1aff2972  libstdc++-v3/testsuite/25_algorithms/next_permutation/moveable.cc
! e2828c199a71151a2a2080a6a47f32d2  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
! 6eb1d74686f8bf34b4b7404c51d9156d  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/pod.cc
! 116d5c2ac8ca8d4eef4893a5ebe067d2  libstdc++-v3/testsuite/25_algorithms/none_of/1.cc
! c8fa1a478b6af65fb5552f71888cd409  libstdc++-v3/testsuite/25_algorithms/none_of/check_type.cc
! 13202261be1acbac347328eabb17086d  libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
! 2592a24d351dbfb3bedb0dd71cdce2c8  libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
! 29f1a7b09a0be2412c78984375925318  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc
! 9056fe6a60c8fbc9d160693bb576611d  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc
! 14913d2c02e21a0bd1f0c157e6a0bb62  libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
! 4196860d38c03d5f1796dc0333932786  libstdc++-v3/testsuite/25_algorithms/nth_element/2.cc
! bfc0fe0e2bf3a188298e2f8c59a11c25  libstdc++-v3/testsuite/25_algorithms/nth_element/3.cc
! fc5197743bd756be8a94ec05a75a66c5  libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
! de5bc2f064937a358af6a92925c84d25  libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
! 91114d9c33183df2b667bbd7732c19a7  libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
! 12530e0c7420ec1ef49e75794efb5c89  libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
! 34ef5373a87c5539aba797972da8db9b  libstdc++-v3/testsuite/25_algorithms/nth_element/moveable.cc
! 9d31960c54ebe92e93d690440cbbc57a  libstdc++-v3/testsuite/25_algorithms/nth_element/random_test.cc
! 421fe937ace4d92b749cc311dab19e35  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
! 272dd2fdc3294a37e8bff95ed27c213b  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/pod.cc
! ccb0169f47366f0d71d1221408607b0b  libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
! 64f412b409d5f991917af23e8e2a1d06  libstdc++-v3/testsuite/25_algorithms/partial_sort/2.cc
! 7bb9fddecb357ba1aeb4ca7e5bdd2b52  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_compare_by_value.cc
! 102e6bd75cd48b24effe37de90b3ac42  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
! 7520ea4c090ff5e4224374b13bb724af  libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
! 4d5b2675f5b9f6688f64cabf4e43bf69  libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
! e04050bf9f656d70513c7b3e520d660a  libstdc++-v3/testsuite/25_algorithms/partial_sort/moveable.cc
! f3c9df835045953497a5a9f755321cd1  libstdc++-v3/testsuite/25_algorithms/partial_sort/random_test.cc
! 0614da01e0a9f6ce77258d1ab7835874  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
! 4e8fa77d5cee69a0e6ad22bfb20c6385  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/pod.cc
! d569a9b798c0cf2b094a3854b298de1b  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
! 36fd18cbc296fbdcfc81c9a4fc3c05b0  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/2.cc
! a7180dfc1948ec155a45a6429110547f  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
! 9b2f2a0f8e54684c623a4661bc4eeb92  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
! 1549eda83a287da0bfcf373b0e198cc3  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
! 6806ff18905f943ba5b7efb93a549397  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc
! a1f4bd78654896581dd28106fb7e00aa  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/random_test.cc
! 53cd1ee806937caca001d0d0c280233e  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
! 149af51b61861f0c681c4a60b9de29ea  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/pod.cc
! 88b0643dd97f7bddd3ab8ab92d0c8772  libstdc++-v3/testsuite/25_algorithms/partition/1.cc
! 8dd59d827e8c3e2aa68cd7f2d47d9797  libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
! 2685b1806d0a539ec0cac9cf0c582cff  libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
! f742c4a934d64a26056a562b38f16103  libstdc++-v3/testsuite/25_algorithms/partition/moveable.cc
! f8312a11855ae803b300e651198a3c3e  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
! 2a72a06239a68bd64ba36ab20733ff12  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc
! 3261e96f2732a568797285252a777835  libstdc++-v3/testsuite/25_algorithms/partition_copy/1.cc
! db591cdbb33b94883a9b566efae38a4c  libstdc++-v3/testsuite/25_algorithms/partition_copy/check_type.cc
! 316bc2d40c307583f6bea372b4d7b3e5  libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
! 3a4c428089cf0e0ba2d97cc1000fd54c  libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
! 793e9923de3c8f462cfc27515dcb86b7  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc
! 2fc2866e61d1f6be6ced783bcc7cff02  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc
! a6da1c35f9488620ee6379d749440c8d  libstdc++-v3/testsuite/25_algorithms/partition_point/1.cc
! 871f2989a0e87117c90ece420ba8be8c  libstdc++-v3/testsuite/25_algorithms/partition_point/check_type.cc
! d326b418e528bfb3f60b0cc35361f598  libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
! 8b45df81fed8c0a6a7c1cd296c367c7b  libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
! d5f4d94a8dfaae0548c91b1258003287  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc
! 2c0a9ac77ee8470f5a301225574608f1  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc
! 06020b86d6c2e8663e65e81496860702  libstdc++-v3/testsuite/25_algorithms/pop_heap/57010.cc
! 503d636854aa81b17c976b4009173d65  libstdc++-v3/testsuite/25_algorithms/pop_heap/complexity.cc
! f0502c30a914ef22f596bc9dd6e9024d  libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
! 2aaf6ccd2e27acef4498e86c73ed75b6  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty2_neg.cc
! 220e4bd293e13223c41ae3e0dcfd67dd  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty_neg.cc
! 941b326aadd48eb1e68ee9b5f3e5dd8c  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
! eeca43becaba823ef07ff93c717cdf5d  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/pod.cc
! a6f4a16a59efb5656743a8b4f6d6a11e  libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
! 7e14bda0350f7d500b99613b5bfa47b4  libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
! 9d24e69392ade6b7ee7b991d678265cd  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
! 2911716324707003242a15049afc2f92  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
! 12ca4b6fbc44e9eb20d246a6bf2c13a0  libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc
! b0cc4eb1ec93abd77a66f709aa48cfa2  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
! bc761fd805d253b70389d18b99cbe6b8  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc
! 0972ce10a4b2a7d68da9a23063fed10e  libstdc++-v3/testsuite/25_algorithms/pstl/110512.cc
  483f0d2b982ffd637fea37a0569b88bb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc
  ab4ae24cbfbe0eb49c83491ec0a881ef  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc
  29d2598210aed8b859e0500304329f34  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc
*************** e6f44866a825e6ce8195ef2d3919effb  libstd
*** 129758,129773 ****
  38614956c719121de66b08ad5f78d915  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc
  9bd3a34e92e7621b2ee85a782e2057c0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc
  13c60b596417396a3f12c14f33422b99  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc
! 4ddf5b572dd3495244b5350b7a7a0ef9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc
  1c2452b19213c4c081002c5a15b4f291  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc
  e6eb5f0c9039200e2f47c2a7c0a7008f  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc
  3d6f8cac7302700c1ecbc2cb9dcd4bf0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc
  419427233d1ea75a23e0e0bb16d82d38  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc
  a8dd4df5b2d95fd890c7b6768b553171  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc
  760addc9f8df0aa2481bd9f1593152e1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc
! 19311150796a8e27a5923f15455a7637  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
  be7cdecfaf7aee19340a014c32dc3bb9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc
! 96439854006077aac451e7c2bb3575db  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
  a154eccfbe9a3db0cf499398fbbdd3b8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc
  1b5617f96a3494cc8905c19014f2cd94  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc
  bc48e74412654c4c814738bcd1a2b413  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc
--- 138254,138269 ----
  38614956c719121de66b08ad5f78d915  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc
  9bd3a34e92e7621b2ee85a782e2057c0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc
  13c60b596417396a3f12c14f33422b99  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc
! a827e158da643698114f362961e91927  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc
  1c2452b19213c4c081002c5a15b4f291  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc
  e6eb5f0c9039200e2f47c2a7c0a7008f  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc
  3d6f8cac7302700c1ecbc2cb9dcd4bf0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc
  419427233d1ea75a23e0e0bb16d82d38  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc
  a8dd4df5b2d95fd890c7b6768b553171  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc
  760addc9f8df0aa2481bd9f1593152e1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc
! 09a3691043e9b3c3a492c6ca864dd6c5  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
  be7cdecfaf7aee19340a014c32dc3bb9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc
! 0a3a330d1c07d4b1474c6f2e8765fe62  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
  a154eccfbe9a3db0cf499398fbbdd3b8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc
  1b5617f96a3494cc8905c19014f2cd94  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc
  bc48e74412654c4c814738bcd1a2b413  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc
*************** a11568cd0a36433d122194a386a37a97  libstd
*** 129781,130532 ****
  d04efb81674c596fba83553974fdd698  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc
  127a079a90b69ae40b1b53db130e27eb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc
  9ee150e42cd2236b5d7fbb52e5bc77d7  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc
! 087430ef08346e98be1070a35e8977aa  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
  fdffab2892b525799dd5504450175904  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc
! 9c7e30f4e15afab84d90447c17ab74cf  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
  c79161ba8499d6d20555f0c5a9842a3d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc
  5fbd7ceff3e8ce89f9100e620a0850b1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc
  eaaf09138f9c89061c5cd2835ee22dd9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc
! 217665f6bd1e2e59b9cef4da86e46b4e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
  4baa175d84575e9b8eb6c56ded27ea43  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc
  3976ac394882d12b8b5646eefdd364ba  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc
! 5eaa55ed214210af78887829f4e731b5  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
! f1dd929728cefe90180fd699f6eb82b6  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
! f76a5a8f90c2a299d90b4d10e13bece1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
  d5e4ba72f1a9b9d6478a6a92b71b518b  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc
  ac8890df44a550f4ce2ae489e8713185  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc
  552f40613000b64b21b1a507fbc855bf  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc
! 989856f48f5566b6f6a145523fa4435e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
  8ed63becaff8d7ddcc953bf11aeae917  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_union.cc
! b3af02c7ce3935c437421b2b3a0115a8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
  cfcd5a50c41caba901b388ea5eb06156  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc
! cbfa429d6a137226f503373bc32d5601  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc
! c4e37e5f5682bc63c16525aedb9b42b5  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc
! 7758e72ea4a6602fcf7b5d775f025c2f  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc
! 4468c5e7d78fdb4f1fb28f154ed3ef28  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc
! a42a0660d839f3a00c827d83373927ad  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc
! 6e534cc473fa3979492ba96f52d51587  libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc
! 06f3a8d54468729a57fa046eecdf5cc6  libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
! 958f73d6ab90e8acbce8cd759cc2126e  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
! da9386bb899d5e4895259983d1cdb551  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/pod.cc
! 21646e68e60fe569c6a0fec8c2893382  libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc
! 8647c870841cb160b3a8e629a1749486  libstdc++-v3/testsuite/25_algorithms/random_shuffle/59603.cc
  f010199fc562cf76b8dcad255735e3e3  libstdc++-v3/testsuite/25_algorithms/random_shuffle/deprecated.cc
! 5c2ce15e451a7cd69949c23df4be7c81  libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc
! 2767a1927121933fd8d6dc08ba06a450  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
! 0dc3af92cc0bd41338706f009e5aef03  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc
! 2c6b70642f32093070db39f568d6bd8b  libstdc++-v3/testsuite/25_algorithms/remove/1.cc
! 072443034da10a2c01a763e7c8c0870a  libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
! e0df8872420305f76da61d29df5bb336  libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
! d4d2fb84d3b3e1bb50a2a1926621bde1  libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
! b52ac8099a52cff4fcba9bb854640b4c  libstdc++-v3/testsuite/25_algorithms/remove/moveable.cc
! feec63889901019ae9016a10b80a373e  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/2.cc
! 13acfb23db9442650cd76d491049c10d  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
! 724412fc39e6783feaf57ca08696a46b  libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
! d7d3a5d95af14f8360421d47d644ffc6  libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
! 233a2aabe395729feec7731247e8f43f  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/2.cc
! 13d152c4307c6d40f5d31f062e251d12  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/pod.cc
! 55f4054cdbdb0d1ee681c83de0f9e507  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/check_type.cc
! cb4106952f027333ca2ac7c47d2659a0  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
! e9cd3f5e8ed3d92badb1d6bda7cd830d  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
! efa85cfbd5440a7ed5ee4e3af8585f75  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
! 936aae42b6cad6dee5a396d2ecc3ba00  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc
! 753f06aacf9f6d461175fac86e6a2a8b  libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
! 395478ca028b929db8653b6cb4234dbd  libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
! a43aaa3b4000d630f3c7e74f768615ad  libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
! 8646d3ba4ece4e977e81b97baab6cf20  libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
! 79c825eeab30a6dcc5f5e03acb3e2ae3  libstdc++-v3/testsuite/25_algorithms/remove_if/moveable.cc
! accffcf6e225a28f862edce0ff24924e  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
! 9de30eefe819b295d91cabbb5a29cebc  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc
! 6fbf0f4ee7393cfd5b3104f24dc8fe7b  libstdc++-v3/testsuite/25_algorithms/replace/1.cc
! 2bfc4e18a11f43434211e3d493ab052d  libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
! 94e6512d8a3abb9c577a6a0d6e9c2f60  libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
! 0d74d1b8ab2d0c20d73e339725071daf  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/2.cc
! 2fc52e2e6be56ce3d7e004c0b241fbb0  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/pod.cc
! c1f1b97a6f69931c294a735388ae9d6e  libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
! cf6af75c7847fdbec07ddb0f50d3e759  libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
! a1375a7d4f887b1ebf461c88ad3522f3  libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
! ce98d959c6a52b46f40d9eeb5108a6d2  libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
! 7c6e828e7bf274e93731d467d060d77a  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/2.cc
! ed34ec725b6c5a9e5c8f968d893a5ff1  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/pod.cc
! 16309c80e48b39c00e024cc61e3eaf79  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
! f259aa3eee08889f05d78f0fff95fe3b  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
! 7158634d942975a703c5abb76749560c  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
! c425360874982a56d74c74f1e8998e5d  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
! 843192f5ec1f68f0e345b217e192f760  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
! 6c59c6ef877d9159c9a5c3edbdc1a35d  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc
! e90ee2bcdcf20caf6aef42afc8442e9a  libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
! 464762a4cdfc1cf1c7a88cdf0d85298a  libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
! f5226a205248511a908428cb6669aec9  libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
! de0966008cdb1a02319a6ed548773d31  libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
! 57d8e3839b7d2d6e1092b30e1ad9eadd  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
! 0d5bd404c1b8abea3c231e7156abd4f2  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc
  01eb615b6b94d9d8808b71bb50d162b4  libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
! 62fee89c9124de417d9fe85c03cc564e  libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
! d2b0d9f04fbd9171c49b545003f20360  libstdc++-v3/testsuite/25_algorithms/reverse/moveable.cc
! 83b7ebcc07879c23b904b4ec25fdbe7e  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/2.cc
! c21f1132c4be79c8733d45536ba1d3b2  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/pod.cc
! b89bc6571cd8466a6bc0b14a84f6d793  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
! 250c943fcc9c0af4f825ffe1e2fe4305  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
! e706cdb5c17a0cce7b6915d1956212be  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/2.cc
! c11529fc6f6e891bb9e0e1f7f0df5822  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/pod.cc
! 78e7cb2076ecbe9c56fdfb2721b7a62b  libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
! 348d3e7486c8b76110ec83d8d2072ece  libstdc++-v3/testsuite/25_algorithms/rotate/90920.cc
! 6de302238c89772b27d72213b8aabf03  libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
  2dc282def9ae5ab490a0d65707d78625  libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
! 19d2d4d07bf4acb382c07e6c2733b8bc  libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
! 8d97511594ef73de55b18e6d8af1eddd  libstdc++-v3/testsuite/25_algorithms/rotate/dr488.cc
! 9270f88c4053f2fb31997cf57207e7a3  libstdc++-v3/testsuite/25_algorithms/rotate/moveable.cc
! 11ba5da23637b58f1d9d0e629837da62  libstdc++-v3/testsuite/25_algorithms/rotate/moveable2.cc
! faf2fdb802bd1557b353ee81352e5444  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/2.cc
! 4502abd1f335ce9263121ab523668f46  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/pod.cc
! 83c1beffe59083715d58354c56943390  libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
! 7be944887824b13420d1b10ecc94b674  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
! 37564c9c22d282749b8c7df0996c5df2  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
! ccc411fc12a468e1604dccdf3d0c26e7  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
! 319d92587db785cacbb5160d334e07d5  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
! d4c61a4b8b9cf95994a87ad10db42142  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
! b68878a54b6a4667fac398754db8fea9  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
! caa6720348cfdc1315a7c71de866adcc  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
! a256e7fdb61950f06a19184e63844906  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
! 73310f2a0ab126c19ad46e359ae36d44  libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
! bb8a093e85ee799d43310b17e092afb0  libstdc++-v3/testsuite/25_algorithms/search/1.cc
! 0d1bef0d71b1ec10566487564bc4d90b  libstdc++-v3/testsuite/25_algorithms/search/78346.cc
! ad5706d1633b857cae9740eea5ab3811  libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
! 0fb9beb98a98165ace6c827a2047e029  libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
! 751c2c73612b3478530c0b4ebbba7cce  libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
! 191134d0e24960139a8b56f0423d64b9  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
! 400afb0d1675fac51ae1c5b68c77f5ba  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc
! cc772574f268132a6d3d69913dda4763  libstdc++-v3/testsuite/25_algorithms/search/searcher.cc
! b945a0097fe7d40c0f902559dbc859ec  libstdc++-v3/testsuite/25_algorithms/search_n/11400.cc
! 3ab32eec10a6525ce50a0bbee6545e0a  libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
! ac03a0a64fe08ba5892e0ef1cc19e984  libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
! 1aa4cb8cd5553dddd3e0a5912a27993b  libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
! 4a091c0bb6ca34bd0433f0f5fbfea0b5  libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
! 47c86fc6ebc2d048466e9f300bbe72b1  libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
! 968696725a07d324560613bfeb90d584  libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
! 65bc26c63dae0f941233e9297cb768d9  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
! 9c49334651741587f06d63e3ca753f31  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc
! 070909156573187a72391b824dd5caa4  libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
! 078c96067bcfc09d4c944d4684494f9b  libstdc++-v3/testsuite/25_algorithms/set_difference/35541.cc
! 8d90e2ff73ea0bd7adce971e51414fe9  libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
! 6c0fb43dd138912425c7e59b18ac7262  libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
! 9dd390fe37d045649dd1ef45fcf49ee2  libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
! b79d02c27a1df63992a81e6c6120d888  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
! 8bc7bdc091de7777946c35b1e1726920  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/pod.cc
! a7db1b0ee70037ef494c1e09a1a0ee58  libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
! c356b7d187e065aa50c656d073c623c9  libstdc++-v3/testsuite/25_algorithms/set_intersection/34730.cc
! aaeb768b0a75a3f5610c0631b1fd6973  libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
! 99b9d4c60bf85eb5df62e1055a5c7397  libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
! e2649c169f550a4c358ef3782fb095af  libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
! f760575484641a4a6221e0c93be4ab9a  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
! 8c7173aa67dbd34dc2592aeedb116717  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/pod.cc
! eb5c7044b5f58b547f0c99044b9cd520  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
! d665919a2ba1fd3ce298d325c78465a1  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
! c4eb8325f7c45087ab1c8d3ea5e72585  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
! 15bf491e029a6e300285bc06107359e8  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
! aefa8102b9337ee145d0515930362d2a  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
! ec4deedec51fe9d3900844ee4e14f54d  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/pod.cc
! a7a3eea0dacc02ea8620ae9c958d27fd  libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
! 54c5606ac9a9381afd3cdfd24b6da887  libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
! 5f7e99290defece5f7e069db2650678d  libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
! 3aa466b38c30034af0ff287912aea1f4  libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
! 10f9880b45e2c43171952dd53cca9015  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
! d160bf7b60e55e21064992e97f49fa21  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/pod.cc
! 5af682735ecde72398ff9d0499fde395  libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
! ccf392d4808f74be9b6255055b05b6f2  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
! dffb6803769560525e2b4693148c521e  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
! 4c452f64c90fa6ce7dc34fa98017473a  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
! a475fe342f6bfb5d6edf9bfda505ecf2  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
! bac5dfe670322a0990b60be6b33c79be  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
! 55086767bb6b2b3ff6f5f1a7421b427b  libstdc++-v3/testsuite/25_algorithms/sort/1.cc
! d0031fc76e6ed984c39c4f54e3113161  libstdc++-v3/testsuite/25_algorithms/sort/34095.cc
! 4afea5cde8b0265e72d37a58ec268404  libstdc++-v3/testsuite/25_algorithms/sort/34636.cc
! 4e04ceb277d5f84569932d8cd5d0246b  libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
! c75128abbdf617077b01fbf23e81f5fa  libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
! 0a1f0089ddd3f3c9c7498eb9e4fa52e2  libstdc++-v3/testsuite/25_algorithms/sort/check_compare_by_value.cc
! 6cf8b718c5927bbc72ffdfc672705700  libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
! d516cb96ab75cc7a078e3f71e65d3c3e  libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
! 39d913ab9102c1f770211da47bd82e77  libstdc++-v3/testsuite/25_algorithms/sort/moveable.cc
! c8bc128986e8ef59238d85df0542ea51  libstdc++-v3/testsuite/25_algorithms/sort/random_test.cc
! 6ad76fee74d311f539eafec70c1f21b1  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
! f265a0335db404d4ba0bef528b6d713f  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/pod.cc
! c0e2391f67e5eefd90af30fe11dcc31a  libstdc++-v3/testsuite/25_algorithms/sort/vectorbool.cc
! 63701ebf9406eccc51a39b75bf117194  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_compare_by_value.cc
! 8d3f2022a02b80f3de9882a4c747b1aa  libstdc++-v3/testsuite/25_algorithms/sort_heap/complexity.cc
! 1992021dfa13f06464003f73f836cb34  libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
! afea79a363c28f8b795225d8ba69b190  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
! 48785539cfdb5952852feba162a6722a  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/pod.cc
! fa5afaa1b5e9cb24efcea0c3c2f892bb  libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc
! e2ca1395d3c45a43e8e8bce75f92787a  libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
! 82c8fb5f20724a411323fabb319fae5a  libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
! 2d93301b8943cdfb28bcbdfc7d0557e1  libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
! c814b61bb61d487d22ee0b2cc4ff20e8  libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
! 09dd882d88be1769fb59fcb2496647d1  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
! 47df89f0d47355365457c4d458e4878f  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc
! f915f6010a3c08626f9b64367ee67ece  libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
! 61def6eacc8d58d1327a1b915d02b209  libstdc++-v3/testsuite/25_algorithms/stable_sort/2.cc
! aa304b0f9cef26fc93865495a52ad3a5  libstdc++-v3/testsuite/25_algorithms/stable_sort/3.cc
  b3f58b622470c2e75b734eba5c7ee60a  libstdc++-v3/testsuite/25_algorithms/stable_sort/4.cc
! 6ade561dee3802f43c370a53d9304ac8  libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
! 63a06aa879b31b7b671b53abdcabda96  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_compare_by_value.cc
! d30831fb02624dc77f85ecec4d54291f  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
! 9d22546efd9ca99e3740c9100933b56a  libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
! 18f24e8918f68a5494291e1a0af8e4c1  libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
! f29bd9175ea4dc69977bb45193ff9bbb  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable.cc
! e90e57de3018995485c34c5b947a1f65  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable2.cc
! 317ca46de72d7d4dc50015cd5970fa98  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
! 3728ed0a0d049d7169218c80d60abfd2  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
! 6a520733dc478ee9fa75a4a2af5cba7e  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
! d8c8cc86d48db2cb4d3a8a3bb28cdad8  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
! 917f93a23e05b625335b069c2bfd4c31  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
! 57c46b13ee0dd7aa814f1a4bf1e41b7b  libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
! dcdcaa76ea34d8b6661a57f4b40b4b3f  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/2.cc
! 2902db0e9743aa1c4aafbc6b6d190b5b  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/pod.cc
! 920ac60c0a3c41c363a8d350dd302556  libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
! ce3e258350b0a43b307ee206846ba7c9  libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
! c48e3ca3aac35356037737b0a1d4263d  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
! 013c58c3aa1a3a855640923bf6df34d3  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
! 3f7444904d3b738654f599986db2b8c5  libstdc++-v3/testsuite/25_algorithms/swap_ranges/moveable.cc
! 5338ebe365940bbc24dea978777b02d8  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/2.cc
! a27e0a4482034224528ea6fcb3c3d0d6  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/pod.cc
  58f6adb71334ef10f577004ee1e4843a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/version.cc
! 98268bb34a254fa63621eb060a6a54e0  libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
! 379d2465154ff90e3ff417b72a8c2240  libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
! 80bf786d06490cba8a2624f459a67f55  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
! 1115dc05fbd79d872568cf40a190f4df  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc
! a8b59a6405373e537737905205ecbcbf  libstdc++-v3/testsuite/25_algorithms/unique/1.cc
! b134aa48b2765a2d7112bc3370cb66aa  libstdc++-v3/testsuite/25_algorithms/unique/11480.cc
! c9abc1995ed5d1037b4f2fe5d70e959b  libstdc++-v3/testsuite/25_algorithms/unique/2.cc
! 7b5c1e31b19ca86f504095dbaa45ebc7  libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
! ea9ffd7ef8cd05637ebf75b4aab84047  libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
! 94c3b2b47b675d58ec1a32b2ac2e16e2  libstdc++-v3/testsuite/25_algorithms/unique/moveable.cc
! a166d87c8383f89447a153a9b4255a38  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
! 19aa08674f00184a3ec25f7aed16b4f1  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/pod.cc
! 72c07d4bfad301da5d91100b8f1aa0be  libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
! b4b97bd1a0fb358544881640ad8299fe  libstdc++-v3/testsuite/25_algorithms/unique_copy/2.cc
! 26dbbb8e2eed581b34b49a9fc09c5ac7  libstdc++-v3/testsuite/25_algorithms/unique_copy/26133.cc
! 7751db3fba979c7968921b9fa954a899  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
! 7f61675007933bb902d8c30736ca2bd0  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
! 86d6e971d045c68cf2ca9e4978217d01  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
! c42339ae0a10a37a9cde14bb54ff0756  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
! 9671131bc6967bf8f19459e15cb797fd  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
! ec69ac49b74f99bcbfb72abb1235c74f  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
! 5ee29dfc9be5b5e7f68fa8bcd048cbf7  libstdc++-v3/testsuite/25_algorithms/upper_bound/2.cc
! 6c36875b60422100cde6b24173f91966  libstdc++-v3/testsuite/25_algorithms/upper_bound/33613.cc
! 4aba79c220518c18511241507317f8a1  libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
! 1096e07741775939afe682be627ca495  libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
! f628604fb387014e32d60e7cac61af0f  libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
! 7ce83012682f17028d79d11d42db7880  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
! 3dcf44cdbe1787dd00e4f9c3f1811fe6  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
! e76eb57b42d8b9d990bd77d492176b3e  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
! ac62a9ebb05f612ca360b6563ef58562  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc
! 3fcc35fe57b8910a1fc049859c0a10ee  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc
! 208435c8c3f7aecd6d050079d03ddb8b  libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
! b73267dfd4d7e6010eff3d8afc56f945  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
! 0d0ca4e45556ed0ed909468ddb39c2cc  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/pod.cc
! 66ef0dd3d42d677312df3fd1ff5390d9  libstdc++-v3/testsuite/26_numerics/accumulate/1.cc
! 2d6616e8c10bf5f8a615069b5b05aa7a  libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
! fa21e6762fe7740e9ba7470338c85184  libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
! 40eee3032cc6cdca46edb2160328ccae  libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
! fe86a572737335deeb36bd23e79c0828  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/2.cc
! 0c00e3f170587365ce57120062746dbd  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/pod.cc
! 869e3c13b0643631cdd2457cd78220a7  libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
! c742d728c7c027c5e53305de838bcbad  libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
! cf9540a5dc823b74b9254172d5f3cab7  libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
! 44d9e8296d0e05f9338ef1b7bf9107ce  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
! be4ec645ebdd215e08bb5394bceabccf  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
! 4935060b57afe253a92f0c0269fdcac7  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
! 9cec15d732a386d74e5a63155ef1e747  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
  8837bf0bc456a0e99d2e723a8e9b7357  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
! 474e31eeb1d3cd30f2579d109ed3d135  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
! aaef945e09049d90425c3dfdca9bda1d  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
! 63458eb71d80db1df9cc993c1c2c1303  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
! 2c27bf96debee02a59ff901d8830718d  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
! 3b911d8030ef23116cbe90b40ce0f361  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
! f101b565a60385eff8a995df7b2c1ac4  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
! ef38249a108e50f9bd945255fdffd4e0  libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
! d15c5b8ece016ec16031df7c74e440c0  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
! 5a1e0421380691bd6bc387e040526d07  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
! 83cf609d49e6c2077ef3b19a039bf53f  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
! 600f301596c06bb354120310256e9fe1  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
! 8ecba91692b0784c247edd65b6aa4042  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
  75fa3c6b57b5d30fe1a0bad01755da26  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
! c612c2bf63c98cac7d7d9949712eb1ea  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
! a05cbe708b43c38eac14ba944e29d524  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
! f261c99c1d474c8e46c1fc99c08db2e4  libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
! d265d375d917c212b77510b066fbd72d  libstdc++-v3/testsuite/26_numerics/bit/header.cc
! 766fee09f3d54f4377208fa6405584b7  libstdc++-v3/testsuite/26_numerics/complex/1.cc
! 69b6833ddc3609cb5d5ce749a9ab89d7  libstdc++-v3/testsuite/26_numerics/complex/13450.cc
! 014b077a6e9b0abb6a236bcfa49a5d1e  libstdc++-v3/testsuite/26_numerics/complex/2.cc
! 039cd4c7c0a615430c7f54798d720766  libstdc++-v3/testsuite/26_numerics/complex/50880.cc
! 583325990435c6d0cbd53860612d4fad  libstdc++-v3/testsuite/26_numerics/complex/51083.cc
! c3cd7b4376bc0ee7c5b48312059f4627  libstdc++-v3/testsuite/26_numerics/complex/56111.cc
  af7877b96aa74cdfc7f025c671e3d6c2  libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
! 913914b737a0169dadefedfb758307de  libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
! 54cf4b544a66cb316294aaf136ac6996  libstdc++-v3/testsuite/26_numerics/complex/c99.cc
! dd4ea47d4b59458c0e9a09ec93d86164  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
! b8cd77e5cf88d4981f91dba39cb80acf  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
! 4ef016fe4873b0086cda9a430d7771b5  libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
! 28efed234dd869628621bb24dd85f782  libstdc++-v3/testsuite/26_numerics/complex/cons/48760_c++0x.cc
! ecd3ee40c8b4d4acee53e546a26cd717  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
! 91ea3819eeeb25fecc5dbf1f7ce43fb5  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr_primary.cc
! ee44057d545fb6e23220bbc24250b0c5  libstdc++-v3/testsuite/26_numerics/complex/dr387_2.cc
! ab235cba51a40a2ed39ef4860514a386  libstdc++-v3/testsuite/26_numerics/complex/dr781.cc
! 2109cb6e5993cb37b0507a31c1d154e5  libstdc++-v3/testsuite/26_numerics/complex/dr844.cc
! d10bb8a3d67dfdf2b3a6683a7b0d177b  libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
! 7a1254a309ed6ab3a8a48f74414a5e22  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/1.cc
! e0749f8c4313ffa435214bfff1e98380  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
! e8b8c4240c9699c0222842a1d5f10894  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/wchar_t/1.cc
! f3b2f0638c8767f039ea9adc78d2d878  libstdc++-v3/testsuite/26_numerics/complex/literals/types.cc
! c92212a2b27c98501b97bed340a2c01a  libstdc++-v3/testsuite/26_numerics/complex/literals/values.cc
! 405b41c523d71f28a6f8d22b3ae99004  libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
  906619ecf0877a7ff5302dd409c34714  libstdc++-v3/testsuite/26_numerics/complex/pow.cc
! 5f927fe5e2ee4df8d2ea44d1af3cde01  libstdc++-v3/testsuite/26_numerics/complex/proj.cc
! c5107f6725faed76c6ece703cdd5e7e5  libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
! 5eb63cece3f2736ffbf128453627adf6  libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
! 66e864ff1d4dbccd769d855f82ef6920  libstdc++-v3/testsuite/26_numerics/complex/value_operations/1.cc
! 1881f64d5d09bf1233286e5b51d492e7  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr.cc
! d078d2434649ba7c7a0c471b591d81c6  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
! 5005b65a268cd888dab8082da8454019  libstdc++-v3/testsuite/26_numerics/complex/value_operations/dr387.cc
! ad6369fac1b101ba854eb7a8fcb08b73  libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
! 771942d092d6f9af0763a2996a94ab93  libstdc++-v3/testsuite/26_numerics/complex/value_operations/pr88341.cc
! 98fa9ca4160382c1edf577998fa35d8e  libstdc++-v3/testsuite/26_numerics/endian/1.cc
! a4ca950c8f3220595c080a1a2c4a3ce9  libstdc++-v3/testsuite/26_numerics/endian/2.cc
! 23c3b52e39970b32196b0ea7c8766f0e  libstdc++-v3/testsuite/26_numerics/endian/3.cc
! e3e55ae0a1defede361345746d1c12d7  libstdc++-v3/testsuite/26_numerics/endian/4.cc
! 6119141d56fefa37281d4c8a5a05f00b  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
! 1ca6f5362dffebbd51b79f65c1c36c43  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
! 0d39e398d84523d35e2c64634c510f19  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
  c0592f39e604ea2889d72927c929cbdb  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
! 84f1b2c016a3baa9cb35f30e865d10a6  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
! 2ed4df8a209dd51c9d2ad18cb910433f  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! dbd753d02f69db885ef03aa59b3b7d58  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
! 9c605f8c3c51cae02db911b605e858c9  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc
! 839149a804de566a41d0580c37c717c3  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
! 258c97e4c4e97b6c5cc99f1d1518f410  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
  2c248a4dde912eb37b2f452da846b228  libstdc++-v3/testsuite/26_numerics/headers/cmath/109758.cc
! 5c507f3324a28c3ee98721a06726b912  libstdc++-v3/testsuite/26_numerics/headers/cmath/14608.cc
! f88a9b7c9690aac07303fb37be0a8102  libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
! cac60b27a689928aa3ff44b788b3eaa6  libstdc++-v3/testsuite/26_numerics/headers/cmath/25913.cc
! a05836289db7adf77bddce09d12264d5  libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
! 90333c959a3be50faf83b0e73510369c  libstdc++-v3/testsuite/26_numerics/headers/cmath/48891.cc
! 6104141917912bf5ac05db0ee76d55a5  libstdc++-v3/testsuite/26_numerics/headers/cmath/51083.cc
! 8e22a89ffc69b25bb814c219ded94988  libstdc++-v3/testsuite/26_numerics/headers/cmath/53503.cc
! 942d3f60d4698d39ce0a2ec6b7f1e912  libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
! b90bf638e3d496923ee647dc80457242  libstdc++-v3/testsuite/26_numerics/headers/cmath/60637.cc
! ae5f5cd09a22745e77349b093acf3416  libstdc++-v3/testsuite/26_numerics/headers/cmath/82644.cc
! 98c9cda5da9d66ad511e2933b7169892  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++11.cc
! 40cba6a59403d2fddb61b9d757ac7855  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
! d9af1aa649448f94aee15e0e3084c231  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc
! a6925d342b58551f32a4f01bdf385f39  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
! c1f27024fd51e08e1948151e9a8a5e70  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
! 2d393fb7600c8792225c680f1a4aff1a  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
! 46867dd495652c286a5a67a40a61d05c  libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
! 44caccbbced4574a23b5a0f3a4850ca4  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192.cc
! ebf7e5cf9dfc1d7b6f7952aee4023c7c  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192_neg.cc
! 877e857ba80091a7ba38341a2c69a313  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr550.cc
! 4c5e3d73c4eba0a441b24e93b4c9c8d8  libstdc++-v3/testsuite/26_numerics/headers/cmath/equivalent_functions.cc
! e609e6006a2b917060de6c7bc5e04b41  libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
! 331bd862f7befa17f2c6e6fa661f9ea7  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global.cc
! 4e5ee07ce76e83889fe0d7d644b3b00f  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
! 9217471ea074424d044d989010d29191  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc
! e188a67388efb84eb6ab20fa6db08dea  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
! 75c1acdb466435329aaf0c063c0fd197  libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc
! 51569abcb9904789918e952415f8afef  libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
! e0f07d99c9706e62cd96b9257883ea93  libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
! dfdf923896e3eb97ad3acfafdf0843ed  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
! fa7127e1ffc60a11c0fcd29d282a710e  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc
! 26f21352d3906b665f31b955d1c54710  libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
! ab6722af69b75c3854a2fdbe9319ccfd  libstdc++-v3/testsuite/26_numerics/headers/cmath/special_functions_global.cc
! 2112c8d903031f058d26178e834cdfc7  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x.cc
! dd0335308b5ad40825f3fc88dbf1278b  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc
! 34d9d176640ec4b02afc6417355a49f8  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.cc
! 5aa14924a1337cfecba96311a5d993fb  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.cc
! 6761b4318e950a1bfc8c7a06eaf85865  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.cc
! 024435a303f5e6b522a1b43a39342cff  libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
! e885e9e10fca72b8527be2bb28d098e2  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
! 3c8d4455b3dab012868ae406d25bb5a3  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
! 9cc8e414d2658acce80d7307957ca69f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/54686.cc
! f2d51921ad8c44f98375e900666aae9d  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc
! 24aee7cc870d42d53733e690e3eeb1fb  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc
! a98582f290f9acce3cd257b3bb995349  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc
! 670ef5e8b9d62521f6a4410ced57c9a1  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc
! 621886acf9a2170ca8de0ecef5a54b0c  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
! 9ed5ce907094fb3ff373045416da7c3f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
! 8790b3ea4cd1220bf26c0b1a1667ee43  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
! 983104cfeaf42d51ff8ffff02eac7e17  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc
! 47bbfe79dc20e31f987933f481290b9c  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
! d5a5ac50613f5832257a422b5997d2f8  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc
! 6c73e8184b5db9bed4e9d3e70ddf374c  libstdc++-v3/testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc
! aad9058d978a7a560b6d0458b09cd3da  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric.cc
! a536f65bcdf068fa8da9998b2eb295bf  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed1.cc
! 1f2a182b0b1935e827d52c9aaa8bc6b8  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed2.cc
! 89c1fbb521ef1da2dfe1db9d08fcf774  libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
! c42995403099d2a442cba51e7cbea02e  libstdc++-v3/testsuite/26_numerics/headers/random/std_c++0x_neg.cc
! 6b2407961fb0f88a7e0b8b71f25b94d3  libstdc++-v3/testsuite/26_numerics/headers/random/types_std_c++0x.cc
! d94cbb3bdc7af1e42f87b71adb27c348  libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
! 201b79004297cdb29361e50bdd083954  libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
! a3ba59cf7de9453ed64262d8b7515e12  libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
! 6f4838c3ffadc5c1eb331df53db359d3  libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
! a191a23b9257ea97b0f777ab55489888  libstdc++-v3/testsuite/26_numerics/inner_product/1.cc
! 0137a15ea614ed3b4ee7913bbe44640a  libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
! bd2e47845a838724513b7930af9c0f5b  libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
! ff25845d8c9171856feb4305c7204c5a  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/2.cc
! f05c84dfa8f97b0ee9a60f34c6ebe748  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/pod.cc
! f4c403fdfd5826f3012758aaa0273e3d  libstdc++-v3/testsuite/26_numerics/iota/1.cc
! 6cbc7f628c009e191e83c2e3763defa8  libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
! 713d5404d4a607dfe978a32e0cc75daa  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
! eb7b2a56764fb15af964460cb4b596c2  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
! 502b4a1bae7d362eea4d0ff7013756c2  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
  06e27c5d0bebfd86a30f02761b07fd55  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
! 31211249dd665c4388e310506219168a  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! fce70ca611ec272650a28158f2f82da2  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
! 6dccfd28d40db30d296fb0c37c4f81d2  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
  e5503759ad254e3d4e531982b2332cf6  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
  b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
! ffcee4259de62f62f64a01052082b565  libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
! 48a2f82fa61be44adbe251b3d20e4ca1  libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
! 1a43640770262e55e8d3f954c644f272  libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
! e5183ff5e9e7d7b05a388660e090ab1b  libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
  b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
! dd691ec24a70d0aa83df34d990f5a032  libstdc++-v3/testsuite/26_numerics/numbers/1.cc
! 7e8e6d23f15b66234b509bcc06abcfa3  libstdc++-v3/testsuite/26_numerics/numbers/2.cc
! e6f6145550698334a28f2e15b4902182  libstdc++-v3/testsuite/26_numerics/numbers/3.cc
! 5df2a992e6efc601a1adc3b75793f88d  libstdc++-v3/testsuite/26_numerics/numbers/4.cc
! db5f47cb555dc8e9968603f6f06f150d  libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
! 1af70584af3e238973da2f32281fc1ad  libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
! 8d47735b1e0eec5cd01b8e9745df9ffb  libstdc++-v3/testsuite/26_numerics/partial_sum/1.cc
! 3e8ee0a64d3bb27dccace44d86edc5d3  libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
! 99448e21adfa6551816d957fe243d16b  libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
! 091d307f6188159df2109062bc6b5880  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc
! 90b9ac90acc4a72ba2057167cd8931dc  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc
  c77f5444168b58d256585ece5f094189  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc
  248df0829f90cb1d8e89a85fce08aa0a  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc
  f2befccb7997036bb753da67e9e718b5  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc
  2f68d0ffd63ef33412e1a1bd5399db50  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
  ed8b405503adae8aa36f1ed9f9781777  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc
! 0cc391cd3c3506272f39443c41fd1eb0  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc
! 257a4e822160c5d209183854180503ac  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc
! 953ebebc17db2d48b6bbd4ee4a052d4c  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc
! 2c11b429e73629829d38aec96fa172a9  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/inequal.cc
! 110d395c659d18ce5861aaf174f7f635  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/serialize.cc
! bcfabc4dc1ccbe2564adeabf74039b63  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc
! 34ce8e1289414f10373768494129e3b6  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/requirements/typedefs.cc
! 334c22069a56db08670dd630ad02a516  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/114359.cc
! 18e9f45141ef5b025775ecf5a92fef6c  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc
! 76ba243b6caf317c7ed711e134485e9d  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/parms.cc
! 7a771bdb86058718df1e0483b04ef65b  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/equal.cc
! dd0fd6fefecced65ffc1d0c752c06dd9  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/inequal.cc
! 7e645892ca0b2803dac6c24f8ec6deee  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/serialize.cc
! 46f8a4035bd3db210b2cc71fb4904dd5  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
! ad9989a30a4daee1adbc51bd3037d984  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values2.cc
! 6381c5962e6505be25890b7a36e418c8  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values3.cc
! a316e986469c0835734d7c9d62b790ca  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values4.cc
! 81dafb5acb2fec31948881a55d0566d6  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values5.cc
! ec162ad5d039388464861a60c72ec9b3  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
! 8aaf93752b5c1fc89e6dab24d0989ded  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/typedefs.cc
! a129abd8ae35b7dd873168ecf2d95466  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
! 0a65d67c3b83a2a9e5173b54f1726971  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
! 43b12d254441ac9984674e50919cdfa2  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/equal.cc
! 17a6ab051646b34af913cfc2793f9824  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/inequal.cc
! 1095c6338979ec5c7ec7eacde04fd023  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/serialize.cc
! dc85a6be393e5c09f677a6c8e449fba6  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
! 2cc9782a9f37ab8b5159e17726133a78  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/typedefs.cc
! 10ddca3ea904348660175ab1d23af85e  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/83833.cc
! 49e54125effcf6489e6d2cf5c84295b2  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc
! ca026d18f87819de4ad3ab31a7512a06  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc
! 16def5418b4d1f9416e40b7c42d4a305  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/equal.cc
! d1f8a81572c56b37324c2c3c3cb2244b  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/inequal.cc
! 199e78ef009689c7e68c431e3dd28e93  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/serialize.cc
! 150d7b7f3a729aab356fc286e4178f7c  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
! 184923d63e973a281643c5901c4a8af7  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/typedefs.cc
! f35a0ef4823f86d56eb36229e7a43846  libstdc++-v3/testsuite/26_numerics/random/concept.cc
! c288d93216c02b22a29b68cf0d45dca0  libstdc++-v3/testsuite/26_numerics/random/default_random_engine.cc
! 8d67ddbcc9e08031b2ab6ae02e5ff08f  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/55215.cc
! da8cc0b9a86c72d08f6b82c4fa9daebe  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc
! 92b22039bb1a00aeac101797ea87037c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc
! 53ba215b1b327a4a8b7b93b6c504d55c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/copy.cc
! 9b2e953cc22a8ce326d1e0df249d5092  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/default.cc
! e47e9efc908c230d0b25b4d5da8dc2ba  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc
! bf14afe8c85dffab2ffa5fca4858c35f  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc
! aae4b7b9736f1db41165e25b61069673  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc
! 2e76d61c65ffa7123e4ddbff01c3b41c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc
! 8fff50a18bd068560e4c56b4937a429d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/equal.cc
! 53630c3ec12727621cd5ab0b38ed7b61  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/inequal.cc
! 1d3324518b86bb73e1e01df15ea937d7  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/serialize.cc
! c5422b0137e0cec91c01c7fd11fb3bd2  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
! 6b633481fa7aa14cc226d2000b54620d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
! 66a4ddd122d2ff7407e401002d9b28a5  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/typedefs.cc
! c7853104dbb60591e0e8f3ec67d6f93c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc
! ca7b88491955e6907fca580ffa786cc1  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/initlist.cc
! 048d3a5ef2dd8b05cd4856633984e91a  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc
! ec9011a8b4a1bd751aa7a8405ad48208  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc
! 28ef34442109c93f9292cdeea140fc5c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/call-default.cc
! 8c533fcd8c1a56c5acda68f2566afb8a  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/equal.cc
! 8400f22d24a1a14e719cfd3368256d56  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/inequal.cc
! 3bf42e71a1b0d87ceb66bd257d4f187c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/serialize.cc
! 41ab2cfbd6160d31403822f102e34a11  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/values.cc
! e77f20ccc0cea289120d40fb3cb857d8  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
! 145212aa84bc3fb92202a0146770b8b7  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/typedefs.cc
! 62ece7b2aff4e7d8b73cb86d8ecb5a1e  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
! 184a891b2abb6445045f1987544719ff  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
! d5e4478cf02d06398ed82a19321e4275  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/equal.cc
! 347702df0ab13a63a0452e6abb529af4  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/inequal.cc
! 7b6737219b108e0bc79d3826d39de9d3  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/serialize.cc
! 20cc3fcbc41f7e4eac93027c8b6ee8c1  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
! bbb49558937aba950eb7c0b09038f802  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/typedefs.cc
! b56126bd13f191422fe389501a05f947  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
! c828dc18c7f8a907e651862ab5d5b2ff  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
! df360fd0d4e93b374364f8a6fb2d1f1b  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/equal.cc
! 7c3a113661efedde446ef4076b36883f  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/inequal.cc
! 72e5629ec03629c50def3aa0c71945fd  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/serialize.cc
! 413b4e5d5f07df4928f7c5a37ccf4fd7  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
! efed0508211ecb9af411a88de3ed781e  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/typedefs.cc
! b47ccbcf12643a0bbb7de8390de77dba  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc
! 3505ae8d1453e0992e55bf6cd8cc6c76  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc
! a68c592207b01a58db4706dffc4beaad  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/equal.cc
! 0cc972f9e51350b05be8c9e00a994fda  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/inequal.cc
! ca1fbaf5b9d78ccd557f29eda14d655a  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/serialize.cc
! 386528a1d65c5fa807fac659b93cd0f4  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
! 8f8780a02ff7df35d04deacfc148a539  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/typedefs.cc
! c5bdb853524139ad56a0f727cd5ccda3  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc
! ddd24949d37708151046d7fddf4586f1  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/parms.cc
! dab70c365024c4baeb6f8d3b0eb16f24  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/equal.cc
! 92462b28fe14fd17f01b24b1350ad6e8  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/inequal.cc
! 39cecffe238f51ae0a7eb53b7f2ab1d3  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/serialize.cc
! e86cfe323da015466a186a4da76c2f34  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
! 142f9af5964dbac822668575fc64eb8b  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/typedefs.cc
! a570102b82364653bcf86738a9324fa8  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc
! 18dc33fb83b8c731294773a337e889cc  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/parms.cc
! 50f1dc0bf0cb26b2b010657af9ee7cf9  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/equal.cc
! 22f11d9741f6232636256482c14e501f  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/inequal.cc
! 5d7c98c924598544a985f7229720812f  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/serialize.cc
! 8f84b7e28e5eacd7907b1fe28184429b  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/values.cc
! fd6757a04d5cde7f7aaaa294a7858be3  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
! d566b454c4f3379374a5b63fbf348d30  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/typedefs.cc
! 96393192b1d6f773060a6adaa7cb7bb3  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc
! 4e3bc2856406fba6f274a57d01944d2f  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc
! e5da66dd4ce257d90dd105096c23a951  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_move.cc
! de7dac8d8fbea2dac533c6831a29f9e8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc
! f23f9882bcbc58448de7bc986bf99a70  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/default.cc
! 4659676335be55314ac3228f1e85fee4  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc
! 497342ba2c92fb16cfdb85af8886918b  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc
! f444deedbf30589599e31d63ce87f2fd  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq.cc
! 2ad08cb09a27c62258c6384816307c0b  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc
! f952a5ad7e60561616ebaadeefdfa524  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/equal.cc
! fa539c0947d04e565233eefcd91480b8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/inequal.cc
! 16a1086d5bab5f99768c361729bf69e4  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/serialize.cc
! c97c17af3762a45d5ad6bb92cdb373bb  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
! 23b111f84232bb261e8adcc42acb0600  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/typedefs.cc
! 85a6cf4f6f0ff67d4e4af7ed53d9a3eb  libstdc++-v3/testsuite/26_numerics/random/knuth_b.cc
  45b91bf0319782738db89dd5c35f9b4e  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/87744.cc
! 48603c676c84924d767c4625138a8227  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/55215.cc
! 259af404d9386365fad438034a01d2d6  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/copy.cc
! 6addda6aece38cc70e52514847b47f6a  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/default.cc
! 0153f47040765b1d7299c0b560bd00f5  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed1.cc
! 8804f9b439ca9032d0aef2a28211d27c  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed2.cc
! 4261ed7882d7e61bc6d04509b31c7163  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq.cc
! 0e1da9cd0d0e29198f201950ed8d36a8  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc
! bcc38c74c3eb2eee636bbfa13221fbd1  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/51795.cc
! c3da8a4d6ccc936ab0882395b7183866  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc
! 383bd80b5a7428450791dd3865800edb  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/equal.cc
! 21749f2394fe7c7f7735cb615e6d2728  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/inequal.cc
! 06181a2f6ddc354ddebb97447b96ce41  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/serialize.cc
! 727ccd67220e28d5231c47dfc88a4d20  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
! 32e2e41ca1a5c1a6f7d8c93e5a3174a0  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
! ad72bd8fc89edee6630906fceef3b8f9  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
! 5329102a366d478732c05547d9b8efba  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
! ffcc7289bd01d20e8896c01d7689beba  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/typedefs.cc
! a52a5b14116f2b77241247872221ba4f  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc
! 2e59f6fbb9753803e80e35b3b281a29f  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc
! 9087ffc535ab00189f6597cfa4cded67  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/equal.cc
! a1df76da7c38124054eb7abef272dd0a  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/inequal.cc
! 9db0e9e689a58d611d7b1641b6de3dad  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/serialize.cc
! 0c7e67b3c051dbf460513a5ae182bd7d  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
! 2fa5da5bf081d106054bbe28f50b69f5  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/typedefs.cc
! 9cf0551226bdc45474f1a30e6d2dbeff  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc
! 524e08e767890ddb4179a9fcf55cbe18  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/copy.cc
! 8ddef75cfb6442162f79315575273a6b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/default.cc
! d4a9c865b7db48fb98837c2741f071cc  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc
! 74900d0142942c4da0514243c467e81f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc
! 11b04620221e0ae35b01299bd4da8c68  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq.cc
! ce1eda56460a4645881423434574c1d2  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc
! 12c13550855ce1987e7c6d631eb98169  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/equal.cc
! eb9a237a445634ecb73a4fda97368eea  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/inequal.cc
! e25e4485fddcb9ae93e003287e68c69f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/serialize.cc
! ab11c3d37d348964c14f97862a5f1034  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
! 6f12ccc6a98d1663965117fcd7b266ad  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
! 552207ea17841a8a5e173d5fbc70a820  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
! 0a89c6ff7b9813734383deb2d5c7b1d2  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/typedefs.cc
! 6c16df6973ae71e2b7a467a49c4ce49b  libstdc++-v3/testsuite/26_numerics/random/minstd_rand.cc
! 9e7f2fffc45e98fb8a605224146ca793  libstdc++-v3/testsuite/26_numerics/random/minstd_rand0.cc
! 5f1a64988f1e250c1bef99521cbde4a3  libstdc++-v3/testsuite/26_numerics/random/mt19937.cc
! 8d3fc5e6e5cfc016120d0ff8bffeb654  libstdc++-v3/testsuite/26_numerics/random/mt19937_64.cc
! 2aca007b8e7ac5e7ee54b580e0482919  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc
! d59e20154cebe2a29aa70e4587395a96  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/parms.cc
! 48f8eb464377b94d96ce2a0fdf6b4337  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
! 694fe469435f78de16394321b2a141a6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/equal.cc
! 9c45a0b8434e676fbd396360620db3b6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/inequal.cc
! 7994c673c5d136f76d80688b71d5763d  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/serialize.cc
! 1c586daf4feb1082c53cf3577d9136d4  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc
! 531737b3defe20aee59e646597308e28  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
! 3cdf5549564e5aeafa53013c30d7d410  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/typedefs.cc
! 9d3ef05a70571e8cff8d404832b637aa  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
! 997adafd61229025797b43bb04346d79  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
! a59ca3fa2d2dd414384d49f7643c4732  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
! 6b6df4b7a8f262a5987a97905a4a1cc3  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! fa051b94c05ae51defc1258265283a68  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
! b550cc92e1d171d70be705b729b0c56e  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
! f2c8203503276d5063bea61597ddff2a  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
! d55ee869185c35d2fe433f3e8c321766  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
! 18ab0734af4b9cf93949a97bc6d1594e  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
! 17f248f7b933281bc1353b2b28968a83  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
! cd422a158da5f66ba8fea000f6955bf7  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
! c6ceb341839cf4bf1da7a822eb3372de  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
! 238ac973fa3c0c0d984026c644f04b13  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
! e8bf0379af76e52e3d3ec9cf31ad2d95  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
! 755de65cfdfdc0ea1d3a709a41c0c712  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! e63eaf3980053a8838a7515a9e776e0b  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
! 05822bfb9a7e707b9a25b9a4077a235a  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
! cfc2b16ef743f23a4b2b081c52aee933  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
! 2a089c33c99162d42501f51796316051  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
! 98356b0dac11f02a9501aa282eafea76  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
! 2a39a5790b27e8c2213e9d6b68c3a916  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
! 4a022d9017b380435af6f73838d668f5  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
! 7e8e7d23ab41cb036a55fedaf5be9292  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
! 055010a2bcaa95aa497a91d965cafc30  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
! 9fd7de5e282b80400c46cd496d6bafc8  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! 53989a2d9d74820daeab2e67520180cd  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
! 7b4a42a3d94a5a34cbf40af023fe624a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
! a5210e560653579b4fe6a680a11c3956  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
! ca42bc22ffe6aa21bfaf5d591848ef85  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/parms.cc
! d764e635bdafa64cc541e5ed8beed357  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/equal.cc
! 58e7c9bb0a3f95b938396a7d64026ba0  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/inequal.cc
! 08641ba3eb99e3de9a3564c8abb6208c  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/serialize.cc
! bf3ce81a74b74a34a2b424383bb0a279  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc
! 1f3263a8972a5a1b8016b1a0b0de2aa2  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
! 05cc9dfcd9fee06888aa2c3378493a4b  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc
  222b8e8700d8093ce9456ba54d36e1e7  libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc
! e07fd6cffb3fc8c0e4598e157d2301b2  libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc
! 59a922851bc81862b3b9fee017031293  libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc
! a353e770a745656b0729a85fd2673080  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc
! 4e36767d3728a37852aa7bd301858aa6  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc
! ad557c4240470c544b53b55b72150d1f  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
! b58b0627741172f23a1476ee917f59d8  libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc
! 85184b5fe6e88b5a8b136b52d0939cff  libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc
! 84a17b2ce9bbe1a0f088a22011753133  libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc
! 27a6638f4f607c365ca8cea44b39b8a4  libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc
! fa6c9490ed745b5691bf5c2a00c5ab58  libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc
! 7f4e1445bdf69528dccce4e217ff99ce  libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc
! 1af1e9e50a54a5a50a454234615baa9f  libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc
! 7f2cd5098166eaa4fa520d3c70844169  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
! f053f62f066fbb2959c23d20da6c45dc  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc
! 880326e169d4a9c30447163ef0336082  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc
! c9989ef11631eb594496cd386bdeaef2  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc
! aa271ec7d3cb77fb3732e12a239831c1  libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc
! 80c2ebe24f8c89fed5be31d87689bcd9  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc
! 40e4ce04df0238b05567b4c7e1c454dd  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc
! d6947504f1a325baf17860f3770ef24a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc
! 89438758b91941970a2ea275764c2ab9  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/copy.cc
! 477307a8cfe42f83ffb45a63e9e74bec  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc
! 8b9c1c3531a55d42624389c59cc91426  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc
! 0426c64eca7982b981110f1c7323e6ac  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc
! 6d458f8e234674b60da43aee55a55967  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc
! d2875f511b5f58c1c9de7f4fb6f064e1  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc
! 8c589c22c98b0116d7eefe2492747827  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/equal.cc
! b695b75d18655c7041ccd8005ee53df1  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/inequal.cc
! c9b22f2ec03881c19711a540a25de268  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/serialize.cc
! 9a3c5b23e5b4076d89ff6c08729deb59  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
! 5737e17a8e918beba581fdbbc0a8e829  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
! 217dc5d2e936afde964d05a3c7c8271a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
! 1e84818116c7f936a934f50b55f0f24d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/typedefs.cc
! bbad32b0a41ee57a82138a4d10a85d46  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
! b4d0588774f933d4eed51df22760af82  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
! 89569398e08f8b85d1e65250d1ac1106  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/equal.cc
! 65419d189b615c502a3c637e54c17233  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/inequal.cc
! d185eba153b4dbe37658c600c896b69e  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/serialize.cc
! abbf042874cdd1edca4092eade1a5ddc  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
! 5d3a2cb819b3f760cc1227aac58950b4  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/typedefs.cc
! 689af6d40e08ad09465b71093d4b667c  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/55215.cc
! e1e8978b33c083b8ad503eae2b5a6977  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/copy.cc
! e117ef2b3530bf971f65cdf51511a3fb  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/default.cc
  7fdf0ab9b87bcd0e74ad97ad9667a1e1  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc
! aff99b296792e9b78783d52453435173  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed1.cc
! a6fea853e6c642ebe6f0d46eca81c668  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed2.cc
! 4e95d7cbb8d3a62cf12c20821d3f408f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq.cc
! d99353b47ffc6273c6a6198d3a87b23b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc
! 89cac02f8848b7cad6f9b7fc7bae8324  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/equal.cc
! aebc8e5767e35e8fb85ed02919d24686  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/inequal.cc
! 838e940be37293475beda2f31cae2d38  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/serialize.cc
! e547cca5b5e62b5ce7ae2a047592de4a  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
! 1df55ae1eb5cde9f6f6c03ff87fd5ec3  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
! 0b6797064e20b1e6723605ae62c65a1b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
! e1b69dd612c440cbef916c1c238e3702  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/typedefs.cc
! 3637214256cc4b21a415355e0c1e0f67  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc
! 8aeea278fc40f109d6e4aa36569a205c  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc
! eb2749954360c83f0dafabc88928464a  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/equal.cc
! ac5ae2eb5b4f3561785e20980ee0edc9  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/inequal.cc
! d7f7e2a3a6793660a6ed94e2d8a4c49c  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/serialize.cc
! cc3f9e1d42274a104c3de4abdf609145  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc
! cd6a66fa44b456042d98af0f41e0feb1  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
! 61f717669a1e629ce6f9a966e57ad5a6  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/typedefs.cc
! cca54edeb1ef9ed735b6e92fe550b970  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc
! 8b666bd03d06cda23fd90b6f829f7d66  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
! 7e57de7592bb2f662469618079afcf71  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
! d4fbfd97a88879fd58b6b219c0b4fdee  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 4adacf376adea1aa0239321ecfe61c7d  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
! 264f017cf6a7fd39171d752f89e75008  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
! e4912a35f4dfbfdcacc3e02daef632bf  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
! bd7768ddaf466c5575af81be714ab52a  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/typedefs.cc
! 29794cf50de761667351cffb7b9fee3b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc
! 7a204bcd01e6feaba9c13543f5df8ff8  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/parms.cc
! d40f287be0c9855a0a1e7f12478ea567  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/equal.cc
! 8f6f50fdfbceaa5ee06e323eca9960cb  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/inequal.cc
! 2fe403dd992b9cdaa8449456ec12c4df  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/serialize.cc
! dd4ca201520edc50ac1da8ea63c9fa3b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
! e5f8c38d09869af614fc218a78a4a865  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc
! 5ea442d73cdba88361cb136688bd696f  libstdc++-v3/testsuite/26_numerics/reduce/1.cc
! 360bbad4873fabe0f43b42bd8a990e5c  libstdc++-v3/testsuite/26_numerics/reduce/2.cc
  51f14806bbec80c2d5883800a91dfc2e  libstdc++-v3/testsuite/26_numerics/reduce/95833.cc
! 4080bb04fa19dafb42d8c2ef706b184d  libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
  6bb58f9b93a31777eaa590f067c50cc1  libstdc++-v3/testsuite/26_numerics/saturation/add.cc
  5be1ca6a5d00473905a4f368a38b7f1d  libstdc++-v3/testsuite/26_numerics/saturation/cast.cc
  64f614494e0dd24586ed97ac2ae00b92  libstdc++-v3/testsuite/26_numerics/saturation/div.cc
  776511df4abf99defad25c6424876f05  libstdc++-v3/testsuite/26_numerics/saturation/mul.cc
  952a33bca1e57c78c0a4003723e8399a  libstdc++-v3/testsuite/26_numerics/saturation/sub.cc
  f9e438a747cc86dc8b59ed2ec2243bc8  libstdc++-v3/testsuite/26_numerics/saturation/version.cc
! ac2c2e993d2f52b33ebc1bca88500eeb  libstdc++-v3/testsuite/26_numerics/slice/1.cc
! 610f0a03b2dbb1d9a1abcbed8291795a  libstdc++-v3/testsuite/26_numerics/slice/compare.cc
! 06d08fc72dca5267716b538e28d586c0  libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc
! 74ae82fe433da6ef83fb71cae20c5cf0  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc
! 61f053ddfa648c8008f186f556bbfccd  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/typedefs.cc
! 3f792c54287a955c10b0ce10e9b13a40  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
! 02dc1b1b9ab240870cc09a96dae03422  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
! e2ef1b16c022e7d6a5c3f0c482cbbcc5  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
! a4983c1fe66b47635da49492c67f4581  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
! ed0baa85e5c7d497c342bf1d12e9c7a1  libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
! 9c17b09b571ceae8433226957a63cfbb  libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
  525e5798867d708e7cc13551760f93c8  libstdc++-v3/testsuite/26_numerics/valarray/103022.cc
! 93d19541c8f75be4fc688456295c73b3  libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
! ee1f1dc2b4a72901badb224e8a810a85  libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
! 5088337565ded1c1bd192cc165448049  libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
! c65350fc7f7dadd231d9f0026f22ea77  libstdc++-v3/testsuite/26_numerics/valarray/33084.cc
! d1e448f099ce379c6c8a162abb25c199  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
! 16f56370ce0fa1a6ff1134022355e0d4  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
! 662adf7261c27fbcaafb3b9eb5bf3e5f  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! 9128a985c36900ceb8215e20a507ab89  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
! adaef97378f37cae015238d72438a57a  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
  660f003ff214d812c5b64389a98e24fa  libstdc++-v3/testsuite/26_numerics/valarray/99117.cc
! 87c1db27b2d982abd69d5bdb1d3cff2b  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
! 22e7cd2532f731e5c4450dba4d4e3e93  libstdc++-v3/testsuite/26_numerics/valarray/const_bracket.cc
! 1c3e3d94194bf3a499f09b36fa2136f2  libstdc++-v3/testsuite/26_numerics/valarray/deduction.cc
! c65d442158d6d207d4922e75035cc57f  libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
! 37331b5a59cb9dca9c24f4c62bb90e3b  libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc
! 3f76d7dab34cd393e37de7f26c4b07d1  libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc
! 1f1f52aa41047ffaa5ec076de3a31c6e  libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc
! 70ecd8b29668572600a4149eb6e34a6c  libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc
  92989179308d98e75a76c225b10da0be  libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
  989404228c79ae94725c36342fe840d7  libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
  03eb7e42a8c3f54875026dd4540970b1  libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
--- 138277,139041 ----
  d04efb81674c596fba83553974fdd698  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc
  127a079a90b69ae40b1b53db130e27eb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc
  9ee150e42cd2236b5d7fbb52e5bc77d7  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc
! fb6aa73747e2bea6b7fda852c40a25d9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
  fdffab2892b525799dd5504450175904  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc
! 723f0f86e0bd3144d568e5ae33141316  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
  c79161ba8499d6d20555f0c5a9842a3d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc
  5fbd7ceff3e8ce89f9100e620a0850b1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc
  eaaf09138f9c89061c5cd2835ee22dd9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc
! 85a2efa390c0322aaebf213659698370  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
  4baa175d84575e9b8eb6c56ded27ea43  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc
  3976ac394882d12b8b5646eefdd364ba  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc
! 038c90cb46c6b428483cf2c2fbd9e9ff  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
! b37d9cc6348d80b3465b1577d74b6d7a  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
! 51fd3c4098c1861566cbf9b6c277b0ac  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
  d5e4ba72f1a9b9d6478a6a92b71b518b  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc
  ac8890df44a550f4ce2ae489e8713185  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc
  552f40613000b64b21b1a507fbc855bf  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc
! 110c962206d677da511cc2e999725c3d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
  8ed63becaff8d7ddcc953bf11aeae917  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_union.cc
! 01bda59938f000b106703a2b821285b2  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
  cfcd5a50c41caba901b388ea5eb06156  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc
! 88b8fc77076ac42855121d57443f95fb  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc
! b43d8c946dd181083b9b02f144083917  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc
! 7cf83305a77326673da35d2096e0bf9d  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc
! 214581931e39b0ae8fc13ac0e902fc48  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc
! 461b89cd12aa61893fec38890fba34ac  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc
! 3ca334bccbf974ca055f8fb41ef491d0  libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc
! 169ff44054f5cc558366c4ced60c489e  libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
! 7494f9c3eadde604d513fece43381123  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
! 68fb193da25181b905099bfa29c8582b  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/pod.cc
! ff642ff372723796ddadd918ca18df07  libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc
! c2a0bf8d71d3263ef6f17336108e3d50  libstdc++-v3/testsuite/25_algorithms/random_shuffle/59603.cc
! a035997d47f397e0199ba133b336307a  libstdc++-v3/testsuite/25_algorithms/random_shuffle/88935.cc
  f010199fc562cf76b8dcad255735e3e3  libstdc++-v3/testsuite/25_algorithms/random_shuffle/deprecated.cc
! 631410b6cc858ec90cbe21191ab02315  libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc
! 9b612ff55492b822ad9896ca45604560  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
! c64e7437e4e56a20392714c10499dccc  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc
! a7c0b67da806d08f496422d3c1c9c7f5  libstdc++-v3/testsuite/25_algorithms/remove/1.cc
! b1af4e21cabd09648dde7bb6ecad85ba  libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
! 559edfdeec46c6f1ef2c1c30b23458cf  libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
! ffc5f460261f5b40b700bbc3ec7f301a  libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
! 6782dfca265b234b2dda7041ad04e531  libstdc++-v3/testsuite/25_algorithms/remove/moveable.cc
! d3a65d1db6d15d585a3bdc32957d60e3  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/2.cc
! 41ae91096684db1afce00f6797e1112d  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
! 0889efe356b8708b7423be916745efc4  libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
! 7951ee432e9fef0ea8cf64a2e5ede479  libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
! c56498e8c9de39acbff6dfb23d070404  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/2.cc
! 78f7bda90b2e7a876a2e8c00089615c9  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/pod.cc
! e36f51e2b34b3e526d44041e6bb6e707  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/check_type.cc
! de85f21369d8088d33700e19607a14d8  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
! da6b9cea5f235e2b213bc339e6f3e108  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
! 9b49cd894afc0849551f18e6a3ae9dad  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
! 08ce520470c2cc3960c9e999f60ce4a4  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc
! f5a9097eb16672d6c05a87340096c086  libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
! 6ad9c03d796a5ea1c1db4dd2e57ffd11  libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
! 1f4beb3d917a723881a7b3bc10780924  libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
! 95f6c3e6d7249235adc5bdb54c85cd0c  libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
! da130f7e7f877aed3a0ea7b6a34e5f04  libstdc++-v3/testsuite/25_algorithms/remove_if/moveable.cc
! 20b9c17df5e8ea0ab7cc9662c7eefeee  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
! 946df8888c73643340060d3485ad183f  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc
! 7e1f2a95fc09f5729539649b79e5bfa2  libstdc++-v3/testsuite/25_algorithms/replace/1.cc
! 2184093c03e0e57c35413f65c60121df  libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
! 66d0773e3ac1a40dbd950b3ad8a2d455  libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
! a254dbbdc8154b5b724a49da9c972246  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/2.cc
! dd84a1c16f4b9924431437b2c1b06d2d  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/pod.cc
! 6b5a1db4f7ecc8824d946ed9366e818f  libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
! 35d66d0539a1a864b0aad9867277889c  libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
! d9e13b235f6b54e9fa368aa2a3abecb9  libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
! 498f5f54a20a5f337af79c0b0e29c24f  libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
! 8fdd8c38bccfc134f64792826ec59263  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/2.cc
! 1c4175bd5a75c8e787f64e0a791b008a  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/pod.cc
! 4d618cc699d494af7579ea62e910dee5  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
! bc444775e0cf4e026cb001fbd1146a62  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
! d548259549ab51d21c363f057bf86fce  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
! 6867af5959d5fe9a594fc8aa370aee8e  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
! 7b18013ad2a888c8b6aa002d7ee67e4e  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
! 71d5c6b6cb2743bda0dc35821564d033  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc
! e204aa5866f69cc269d53976eeb42893  libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
! e35e89e0487c4f7604e0dee55fef76f6  libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
! 45a3c4cdab18772e0c334e38d7aae87b  libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
! 26575959d9dbb2ce1fc42afccc2c334a  libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
! 1d2f657c3ae7719b24b2e3f9ab7677fe  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
! 0a7371faad655373e1f77ac5915d9058  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc
  01eb615b6b94d9d8808b71bb50d162b4  libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
! 38a9c46ea2d6e4082a03a1543381e268  libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
! 7551e2b11a352b1fc5dbfbff03afaae3  libstdc++-v3/testsuite/25_algorithms/reverse/moveable.cc
! 2158195dc6cf37ef08cec5ac98b1c152  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/2.cc
! fb9a94fdbc2173f208966fdc9c5c149a  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/pod.cc
! 48a1c37d7272912f982c82ac8e935584  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
! 2d7f7f1e017f50b3cd38bedb03570b73  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
! a491d331ad9a26245682da60b15e814b  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/2.cc
! 30644a0af9574d32698dd049024db7de  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/pod.cc
! 4fc56cc276502f56141a45539c066b24  libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
! 7c7766e78eb5757dc57d0458abdb76f0  libstdc++-v3/testsuite/25_algorithms/rotate/90920.cc
! f03a100044eb6a8828fae0cd2c3d42ab  libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
  2dc282def9ae5ab490a0d65707d78625  libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
! f316e945160c2f2947dd756c0878d3bc  libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
! 614dad31c86a7998e1197034aa3a37bc  libstdc++-v3/testsuite/25_algorithms/rotate/dr488.cc
! d809bd314b06d9fcbc588c5133a218ce  libstdc++-v3/testsuite/25_algorithms/rotate/moveable.cc
! ad7828682102d5d93e04dca386cc8126  libstdc++-v3/testsuite/25_algorithms/rotate/moveable2.cc
! 0a47eebf5e5e6eb60020cb4786eb029d  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/2.cc
! f85527739c22f6990850af90763be435  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/pod.cc
! 7612419a7a9f569b94fd0ebe72f961d0  libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
! 9bd814793538730a5a0845ca667447be  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
! 39e2c0dbb3a2e961daddf018829023cb  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
! 4f82d4289a93c8f6adb1c308c53c0b17  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
! 6e20a313fcccae935699b9df5e26a34a  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
! 580a1278de50a553fbdb1c5af4d813f5  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
! 37265ad69c9265f70fcea53333e1710f  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
! 2f39e5fff2bde6d594bfef4d07df43b6  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
! ece9a25a8b175fc144eaa3d670f457c2  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
! 581adbfff04809c660c1820b210b98f6  libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
! 4b86b57fa032c39d07624855123a8805  libstdc++-v3/testsuite/25_algorithms/search/1.cc
! 59c71531359e5eec4244bffd6153ac2c  libstdc++-v3/testsuite/25_algorithms/search/78346.cc
! 3f6754195d7ac92facc777348d08ae20  libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
! 409c8749fa0b46cd4c3fc78ed9549815  libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
! 69271c0e18352a727db68f2c3e8b00ba  libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
! a928cb4237d66d3f29e70bd0efc36daf  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
! 513352f510cf4a08b803b8ed5b564f00  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc
! 7ef3004dfbad7e1d86993777f76f8d63  libstdc++-v3/testsuite/25_algorithms/search/searcher.cc
! 871e52b49c4ea87127a625d78bb44339  libstdc++-v3/testsuite/25_algorithms/search_n/11400.cc
! 9463cf2ddc8430ef51456da84915d185  libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
! 98c8fdffd0f3dc67acb72be83c6ecbe3  libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
! 108a009373103e3f7c019c20648d0214  libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
! bd27c4ffa098323cf8a705ee92ed955f  libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
! 0f0e121d31d0d3cf51072530ab344dab  libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
! 6084277282e9f3e3f47b08b70015426a  libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
! cd61e4e39245d96b79de2af06daa9a57  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
! 0b74290e4a88f936c53b803ca63c9c67  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc
! d18ed9a88906a808da508747b3d2eca2  libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
! 96e37bb3dd93518ef7b7227ff41c975a  libstdc++-v3/testsuite/25_algorithms/set_difference/35541.cc
! 3c64f172d701409dd48993efa069e676  libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
! bbb43a3030a5d8e192d7555456a10740  libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
! b6106f006a6d5cae90f7e947aa55aafa  libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
! fb031388c504eca6196ede9b1d9e60ab  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
! ac93b8c668754182367862a361103b6b  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/pod.cc
! 003d6e3aa352f465371dfa121f0bd76e  libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
! 048f3d7aa3ccf915b6fa5bafb6f19960  libstdc++-v3/testsuite/25_algorithms/set_intersection/34730.cc
! e0dedd1acaa15ef7b9e2c7bf9daa1c5b  libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
! 80890ce602cd8a55c4be9fa25b56f27b  libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
! f9f5ebc77dbd0a14bcdfb12d6f6efdc9  libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
! 32a9117cfa8efcda469b45731083871c  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
! ed9f27f8315328b3ad15680b570c5694  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/pod.cc
! 3f32d5baa2c2c058a5eed037db65fa0e  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
! 9e3ca718d26df86a38f2546febe1d9d6  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
! 89283f2ef69159e27a6d41956aa4a677  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
! e2e0b715f82bf06a44e88dd7ba18474b  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
! 947c80c415663e2db966f4b1c444b432  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
! bbc8ec6674bacd7fa39bb0d79d2e34e1  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/pod.cc
! cb588cb5fec0b19b7c78f4dfd30d85ef  libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
! 220d3c3f9f7bcdf5dd6c2334698beaca  libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
! 59221bd8353b4935c085adb8398db5ab  libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
! 3e75ff617cdc6c0377fe37c1ac3f84fe  libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
! b9e15f9c132b851daa48841f10764363  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
! b2ea87e9205e641b5475df5f3f8d9ac7  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/pod.cc
! 407d8b99e25d61c6c691dd66db308b9c  libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
! 960464186034ba5de96696d8b4b40874  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
! 13fef40827fc69a1a6fa8ae8d2d22db6  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
! 05c31295a781de31923e5ee955c17d3e  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
! fdc8ebf89947b64544c3b407c7df39b9  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
! ff217b553c3adffe4da34e77ba3308cb  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
! d76872375020f06b1b84a7b659a1e7f3  libstdc++-v3/testsuite/25_algorithms/sort/1.cc
! 3daeacb7172387bdc98e71f511ff00c1  libstdc++-v3/testsuite/25_algorithms/sort/34095.cc
! 10ffe4f5dd003e2003b6759533ae4e5c  libstdc++-v3/testsuite/25_algorithms/sort/34636.cc
! 3f466f639cfd583e3bbd55a98462eea6  libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
! 53962be570205dfe17e47184aeb147b3  libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
! 7a0cd0d742d2768970bc7e677544259b  libstdc++-v3/testsuite/25_algorithms/sort/check_compare_by_value.cc
! a9e3cb4559c5098d87e08ea2c6db0d04  libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
! fa8eeed51ee848deafddf77f3c50f389  libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
! 46d4c4a21e7eb8845a7a0b23fc66db78  libstdc++-v3/testsuite/25_algorithms/sort/moveable.cc
! fe1522f8cbdfa2591bdaed9860637c04  libstdc++-v3/testsuite/25_algorithms/sort/random_test.cc
! df0b3711b1f8e8950cf48f7e66952d47  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
! cfd45b85229a2bd2ff27746876cb1011  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/pod.cc
! 96cc8d157d58343cedcba58de0dff04d  libstdc++-v3/testsuite/25_algorithms/sort/vectorbool.cc
! dceb85770c9a9a8a3f339992f5be805d  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_compare_by_value.cc
! b1c60c87033872d36d5dfd5de92b7145  libstdc++-v3/testsuite/25_algorithms/sort_heap/complexity.cc
! c2a6e4f5167c14f8a67e8cb05be28dc5  libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
! 522ec50069f2a94657e1e03b0bfcc0be  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
! 46f3cffc66ce9d7c97be80d4fe92249e  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/pod.cc
! 4163b43bef2855b04d41eb72b825c8dc  libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc
! 2b0dcaff18087a7dde97bf450fe08b34  libstdc++-v3/testsuite/25_algorithms/stable_partition/constexpr.cc
! fc778b86490f2b5068b8f602f5ad2b15  libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
! 742b3b07fb8baeef7435058fe61dc0fb  libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
! 4b4375fe996a4b0cf55e123b4dd3a799  libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
! 76081569d6a57304527af21415e3cc3e  libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
! 8ee79280c6de5cb635aa18e0b3b6d847  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
! c37229ac5f227adfb20d4c9fa73ca7b1  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc
! 7af8b4edc6d0a0725b4940df3fa97949  libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
! 8f083109c13605d840c022d54a71a078  libstdc++-v3/testsuite/25_algorithms/stable_sort/2.cc
! d14b7dc2735ee0cc55652801b7160261  libstdc++-v3/testsuite/25_algorithms/stable_sort/3.cc
  b3f58b622470c2e75b734eba5c7ee60a  libstdc++-v3/testsuite/25_algorithms/stable_sort/4.cc
! 27d9989b33a60e30dc11488a5445689e  libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
! 11e30b9f75705d643766da7bc074d7e7  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_compare_by_value.cc
! 440e95c61a795a58b7f29a01fe85b441  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
! 09797652d5c2649f6e49be9c2d8e6af0  libstdc++-v3/testsuite/25_algorithms/stable_sort/constexpr.cc
! 74d6c7951edb22e0547191e44acee335  libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
! 89814dfdbc4b2679fe1e9694bbe3b862  libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
! 5eb05937e1a13c8389594438d2251b68  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable.cc
! bfa5e3860296b4181f34cde9caeac92f  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable2.cc
! aed5b5a1bbd68cf60e20fcece3ee0863  libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc
! 1518c073deb3f2c39cdf5c09da636943  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
! 418e36cf4cf27f47b0792b634f97a1a1  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
! 23e3dbfe578ca46a82c7382e4f6ffea3  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
! 221e743662b6406dd6a2e8dc22549874  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
! 909f0d7c881a2b61f0f9fa468c5db6a3  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
! 20611cf6aef0e66b868aae1986500193  libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
! 8f56ef98cba3a7893e4d418a87bb1f56  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/2.cc
! 243096e4dc6a2f1754572eb3dd3fb48b  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/pod.cc
! 8069c2dd036e0c7c1d4a30dc585bd52d  libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
! 687af8b0af03242c5539ecbb501c7117  libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
! 05e2bea9c8e62c326beea9c3fa979ab9  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
! 34094d5cf30ee4e64b8d1926234b1564  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
! 504fc12a2bc7a8718ba750c4968d2ce9  libstdc++-v3/testsuite/25_algorithms/swap_ranges/moveable.cc
! 7df06e3f823ac565da902053e48ef57a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/2.cc
! 7d3074f823cd5f24532d4053341965bd  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/pod.cc
  58f6adb71334ef10f577004ee1e4843a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/version.cc
! 4fb121d0b03f922232dfaf2005ba580a  libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
! 4d2a38a0e9ad5c0cfd7a08d4c3baf70b  libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
! 330f55053d220993a2139e016865a8f9  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
! 599daadb3db6b6b5291b2fd1508d55b8  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc
! df013990874a60d054aa46070d1ac5bb  libstdc++-v3/testsuite/25_algorithms/unique/1.cc
! 9fc8b2e62a27f41f89e4f6bafd064f54  libstdc++-v3/testsuite/25_algorithms/unique/11480.cc
! b844c411edd6cbdfcbf585555ffc293e  libstdc++-v3/testsuite/25_algorithms/unique/2.cc
! 72b6f4e940949680db65cbf48a320570  libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
! dc72aaba1141a4d064d97cb11b1948ff  libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
! 2788ac6e6eb24af2ce6f3e902dffffbb  libstdc++-v3/testsuite/25_algorithms/unique/moveable.cc
! e926410ecd98200362050b556c737fe6  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
! 8cbfbe8c64ba99a379dcb9628a6ff052  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/pod.cc
! 18e3546d23e1a57a6cb1ade1374222f5  libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
! 566c21bbd932c2ff2ea7ab5d0d026853  libstdc++-v3/testsuite/25_algorithms/unique_copy/2.cc
! bccc2620741d0bb50ee990ac03515498  libstdc++-v3/testsuite/25_algorithms/unique_copy/26133.cc
! 9017b16aa2b3514d77f2217dfa840239  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
! 025c3b6404eb8b477ce9e6cfe7cc6c9f  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
! 8aa85ba6eb17f92a2514e964dece3932  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
! 7919be45417a16080b52507c963b33aa  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
! 344dbd3215f1a1cbbdecbd992213837c  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
! 114cc2af89a8c0c92666c66a57ad7d45  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
! 867db789b0a189f2c05ffdab287a5042  libstdc++-v3/testsuite/25_algorithms/upper_bound/2.cc
! 135ad4fafb510f8d8104f916a51b2ef7  libstdc++-v3/testsuite/25_algorithms/upper_bound/33613.cc
! 72c9d50858f3993dfc800f491dd8b066  libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
! 3e4a079b06af9f63af13f9f3ce546082  libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
! 94cc8d2d0b4ba6cba93b35231354a356  libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
! 39e475c35b340ee8830947c24f76bff0  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
! a579455423423ccb7baaa32370bc2bb0  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
! 68f847146169be4cedba81c5a4dd71ee  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
! 7fdc36e61d06b60697b0b788be6f058b  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc
! 95d91e9b4b81c2bc2fec9edaa422c838  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc
! dc395eb90938c5ff6f722f1541fb31d4  libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
! 409238f64374729d22802e3b4f843aa1  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
! afe09261fe09156626218d7b10b6fbcb  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/pod.cc
! be8035e7a26afba6672400ccb118fe0b  libstdc++-v3/testsuite/26_numerics/accumulate/1.cc
! c543b916d8b190b7ef5e1b736800a11f  libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
! b2494865a3d1150c1125a390a51fe3ba  libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
! 5aabfbaaedb33e87a954788206b52fd3  libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
! 9d8c96eeccfb388d606877c327a05168  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/2.cc
! 78fe62eaf3b24ecc2181f8c4120132f2  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/pod.cc
! c152c71496944b90cf5c4a51700c95a2  libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
! 4b5fd98b2e62fdcef09a6e412260b914  libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
! 19c1491a2ce66fde373ee3f36d2e10f3  libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
! 896d2767ae9e580ce4bcf1483dd1fc8a  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
! ab0314fd71482ac7f616cf265e88f927  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
! 83db668417fc2e0c1576782cff424749  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
! f9ddd5659b82cda52267e26433569b32  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
  8837bf0bc456a0e99d2e723a8e9b7357  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
! c8111f3b2574043a10a5fd68314e4af7  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
! 6f77da62d71cd42a57504032d282454c  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
! 62c27fa796ad1e2a2dd32d409a905073  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
! e6d900475cb8b00938e77ece79de79ea  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
! 66d01a6856fc946ef9b6959e1c56e15a  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
! ccc03c371bb251f69e50c0018f2f0e7d  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
! 341944b66f1088aae31eafaeafb440d4  libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
! bc2ca5f6f10490209bb0125151090184  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
! 4853ce67f28d311983eca728d0e969db  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
! 370d024c17d58e0bfa473a6572acb475  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
! 5f23cbb5d57fe15355309bb9aeb22bd6  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
! 591fa26500e2d981e8be7588269cab5d  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
  75fa3c6b57b5d30fe1a0bad01755da26  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
! cfe98be7f28cc27162f7f2a6dca749c5  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
! a4c42c7a841e12497d183cf78c6c1fc0  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
! 9670fe892c4e084b93c3c4af5c9d528e  libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
! 134cdae7c0a601e3c808e447faa92bc3  libstdc++-v3/testsuite/26_numerics/bit/header.cc
! f1a8ec7293622fecbf9645bbe3786c68  libstdc++-v3/testsuite/26_numerics/complex/1.cc
! d96afe388d63f42f2273d4e7aeff4f5c  libstdc++-v3/testsuite/26_numerics/complex/13450.cc
! 44a894025a3674b1de5597f58bf452ff  libstdc++-v3/testsuite/26_numerics/complex/2.cc
! f2139be39a6bde385cf931ae06a4a7f2  libstdc++-v3/testsuite/26_numerics/complex/50880.cc
! b2f778299d86b72f0378ebc6bd79c4dc  libstdc++-v3/testsuite/26_numerics/complex/51083.cc
! 1b4d76cc52068a89d00b9f85b42c3610  libstdc++-v3/testsuite/26_numerics/complex/56111.cc
  af7877b96aa74cdfc7f025c671e3d6c2  libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
! 7d52c243448a07a4c59e419210330cb8  libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
! cbc10d60832f90a8280d2bb020cd3c6e  libstdc++-v3/testsuite/26_numerics/complex/c99.cc
! f413aca946ff32b822a3a97b596f5364  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
! 5299e0e8c5a1d2492ba02d142d844f3a  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
! 71df1ad2341843de224a867bb786ef59  libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
! 8bbb02162ff196658a643a9bc03c7d27  libstdc++-v3/testsuite/26_numerics/complex/cons/48760_c++0x.cc
! fa5eb2db4f5b2baeeda15655cbd1947b  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
! e068893f3af1982623fb89d4059ffe4a  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr_primary.cc
! 29d9d4101cb30ea0119cc3d80b5c76ac  libstdc++-v3/testsuite/26_numerics/complex/dr387_2.cc
! ac251804b3d5a9875fdf37c568cecabc  libstdc++-v3/testsuite/26_numerics/complex/dr781.cc
! a0fa72bf3957cba70ba15215cd0f6501  libstdc++-v3/testsuite/26_numerics/complex/dr844.cc
! 3841d0a20f918c2f31a880aef737229d  libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
! 8b28401b158b27e45f0645ba7203ec21  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/1.cc
! 204ec4c48695de16b38bfe5c37152219  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
! 5263916bd4ded6fd522f62c5182399f4  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/wchar_t/1.cc
! c2aaa6c9ed695d76c31430cfd867dfc3  libstdc++-v3/testsuite/26_numerics/complex/literals/types.cc
! 757b01cd90af01789228f28da515df77  libstdc++-v3/testsuite/26_numerics/complex/literals/values.cc
! 5a1bf9365ba1ff947a8ac92df467bcf6  libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
  906619ecf0877a7ff5302dd409c34714  libstdc++-v3/testsuite/26_numerics/complex/pow.cc
! eb1b6091040f82e29f9a6c4bcd828f91  libstdc++-v3/testsuite/26_numerics/complex/proj.cc
! a9b597d743e6a76df2fecf5eb05a9f4c  libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
! 21350c04868bfe516c04e8070075209b  libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
! db7d79fa6c0acee091931a053080039e  libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc
! 835a19abf7f50e7532db0ceabb52f32a  libstdc++-v3/testsuite/26_numerics/complex/value_operations/1.cc
! b4b27a2d487f6a4ed60a85fa4e2f98cf  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr.cc
! 831ca8701bde919fd06f2c1a9942a644  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
! d869fc8420c3e62da0ae25bb3c707fa6  libstdc++-v3/testsuite/26_numerics/complex/value_operations/dr387.cc
! f4313d0431382ca193301e5f9e3562d6  libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
! a1a5273f2307a0aa8707797e17dce5ae  libstdc++-v3/testsuite/26_numerics/complex/value_operations/pr88341.cc
! 8d41af50cae5eb7db7291c96ff348679  libstdc++-v3/testsuite/26_numerics/endian/1.cc
! 4f6a559be332c3b88ee1a3d939422cb6  libstdc++-v3/testsuite/26_numerics/endian/2.cc
! d17a110e890819b4e22d10d5c836a1c2  libstdc++-v3/testsuite/26_numerics/endian/3.cc
! 4bc18d1e793db2074c5b2b94a50690d9  libstdc++-v3/testsuite/26_numerics/endian/4.cc
! 6f43fdf56a53119cf4dc726f178a5fe1  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
! dad3be405305f6b99125a0379a0d3209  libstdc++-v3/testsuite/26_numerics/exclusive_scan/2.cc
! 68448b661c8e9b6f94f1136cd7842086  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
! e0c2fd998ea3b5afde2afc829a68c9f5  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
  c0592f39e604ea2889d72927c929cbdb  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
! 9bf1f37057851311713964a0ed67a20a  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
! 61d4a33079d8206b50d7ec92d57213f9  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! e3631157dc6407692900f1942430e026  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
! ed8551069aac3a17599d7eb36a13a767  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.cc
! 8eb7d4c4d781617246569d74f0aef50a  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.h.cc
! be881a2a11026018825335d91da94aa5  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
! cb09ed394164c57d72d16724aded7968  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
  2c248a4dde912eb37b2f452da846b228  libstdc++-v3/testsuite/26_numerics/headers/cmath/109758.cc
! af10fc053f51e030716c8fdd4b80b646  libstdc++-v3/testsuite/26_numerics/headers/cmath/117321.cc
! aa6a4757b89a420d977fbb5a1e1d46d9  libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
! 4852240dc9baf1008d06ec71cbc4b09b  libstdc++-v3/testsuite/26_numerics/headers/cmath/14608.cc
! cb66ee2b1f833459bf2ec2d731b49a51  libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
! c75c5e513a21ad518c3cf5ea081e0b17  libstdc++-v3/testsuite/26_numerics/headers/cmath/25913.cc
! b9ca560d061fd2101bc5bf3bf7502040  libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
! 4417f66beffbebb3cc7ed9abcb8e9fb7  libstdc++-v3/testsuite/26_numerics/headers/cmath/48891.cc
! 3c714dba00dc8dd85a3949e4c7c99ecb  libstdc++-v3/testsuite/26_numerics/headers/cmath/51083.cc
! 410db2e8aa8df74425347e0e0885c613  libstdc++-v3/testsuite/26_numerics/headers/cmath/53503.cc
! c2d021928b9f2195d6c1170479bb3859  libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
! b5e07de73b5610780344c3969cbf1b72  libstdc++-v3/testsuite/26_numerics/headers/cmath/60637.cc
! 05618c9a2dd1a7db9d47d3c1a29cd9aa  libstdc++-v3/testsuite/26_numerics/headers/cmath/82644.cc
! dbf2d5c557791261217976d7c10e2c8a  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++11.cc
! 48f4f7bb7c17ea98a9d02f4491ed03d8  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
! 61ad87d18d985c605d0c8c5121333121  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc
! 82875ca70e89bb4439bcf9f538b808fa  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
! b62b24ea63a4d45774034a8567fb16f7  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
! d81863f8268efbf94cb5f15ecb8e7f2f  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
! 52fc13c639d55c455f86367d2949f7ef  libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
! d1267eea3b48f1667f527624e5af8815  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192.cc
! 1638267ad925cf458f06086e6ba7fbe4  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192_neg.cc
! 2297a3e355f01aef2b5e83b7fb7e9c22  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr550.cc
! d245be31215aa2da05bbaae957024a44  libstdc++-v3/testsuite/26_numerics/headers/cmath/equivalent_functions.cc
! 676b50d2292e1c387ebafcb4ecbf4c9c  libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
! 7ae63e35915e3d4ecf9de2ab6d6fe91f  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global.cc
! 7a8305b63ffac6f6817c236f754258e6  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
! 7838eb54ff4fc6aff58cee790495e3ad  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc
! ac2d6ea2165aea4f05ba396b82708325  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
! fe7e38d87ebed41f542891a8ecca30b7  libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc
! 8326a8a723c857047ceef296b5a0f001  libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
! 496920b5d7a6cf1383977f3c573ead22  libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
! 50abc66166c08ced2a1788f33d7bc10e  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
! 65df6b6e351a62f6c640d8a34e5433eb  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc
! e9990dadb033d754d048721cf2a4f569  libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
! f325b0efa821eaf6bf3348e4a5a8ed8b  libstdc++-v3/testsuite/26_numerics/headers/cmath/specfun_c++17.cc
! b72cc0c12bc96bb5d9d89ce4b565c13f  libstdc++-v3/testsuite/26_numerics/headers/cmath/special_functions_global.cc
! f62701d2b7e9919472da6f4d237efe38  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x.cc
! 1311294afad22a5765146f9915b62c0c  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.cc
! 8c54a66c3b131b34f9aa71332b36b4be  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.cc
! 817fc3e63f0d3ca2ecad68c7f1fa2cf7  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.cc
! b4a1036dbf46d7e277660a1926812272  libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
! f496e93f7e9535af5c3ac36949b1562b  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
! fa2fffdc74d1c71da3e95f4d5fea4eed  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
! 72e849e5c3dbbff5f037a450a9e3b39f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/54686.cc
! 9e358b76611496435f600dff7787a72d  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc
! 0a2851cd7f729df2c512cac5fd7cd753  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc
! a8e61a4c82556e91891f6f1f968aedbf  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc
! 8533d4433e4e18a391b3160983b61c7e  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc
! 1f24d581da40fd5200731856195305ba  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
! c60ac09848d3295c77f806fe6f20ea53  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
! fe13398bc597bad594f9a2b482b4d6cd  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
! c9b44cb0d92191e4c1098afcaaee4267  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc
! f3d077441366a8a7bf012529024a5b14  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
! aa74bb9dd3090424d8460a09de5f0419  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc
! b600d9a0b84d645222a8221d90f79307  libstdc++-v3/testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc
! 186618e7630f30aadc5276083504a0d6  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric.cc
! c45783e2e5f1105b958daba442294d4d  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed1.cc
! c66820805cf06634dd752a3287e88639  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed2.cc
! 8fa8b11cf596fb44c150f414882cb835  libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
! 4a7f22fc2ca810d60139319ca7340d7e  libstdc++-v3/testsuite/26_numerics/headers/random/std_c++0x_neg.cc
! 7fa4a9e5d47f5762877d1cab5cedd256  libstdc++-v3/testsuite/26_numerics/headers/random/types_std_c++0x.cc
! 185eaf91d6c6b75715f833d6781171d6  libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
! 6159ad8e029a620d4ad0add12527f8df  libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
! 345b5a89d85a2a9f42356504b5481fb4  libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
! 765b700e23d52c20fc3c98ebe065fc89  libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
! 64249bae5ee7a02a2f195280988e62b2  libstdc++-v3/testsuite/26_numerics/inner_product/1.cc
! 6e5df95abe24085fac9d4e6d90d2aba7  libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
! fdf1ef5ff0f093ced9dba176a09f70a0  libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
! a99f5088c0a6a104095491f54f128088  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/2.cc
! 45ff8dc11af7fb9ae8b7dbe823c52820  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/pod.cc
! 93f3806c69e46835ce1370be3ab98950  libstdc++-v3/testsuite/26_numerics/iota/1.cc
! fd7a1db1ae5f90be874b250f5212d66c  libstdc++-v3/testsuite/26_numerics/iota/2.cc
! 19a272406a54c2c23763b107cd8f3881  libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
! 427e50a644de3bf8ab1cd72f1f14bed6  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
! 86d9fb790e1890295f0f3b48b5cc5927  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
! c0587eadc3db26d4e3ff9e5e56bfd373  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
  06e27c5d0bebfd86a30f02761b07fd55  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
! deb6164e94ba5ba2c7144550303683a5  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! bdc3396412dce251561b36d9a64cf03b  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
! 04cd5d9a33791dac1f3d9179312220a3  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
  e5503759ad254e3d4e531982b2332cf6  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
  b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
! 15092cfc54fd93d997d842dc249b6c61  libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
! 27a1e3f1025653c7efdb91db7777e69e  libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
! 11a029a221ea5b5594d39f0755566473  libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
! dc84bc40a5d9f6eb4edfed568cf9f7a8  libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
  b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
! ec4a55fe42b566507f392a398ef5adc5  libstdc++-v3/testsuite/26_numerics/numbers/1.cc
! 3b9f16936fc6c90c92f6f57dff72d883  libstdc++-v3/testsuite/26_numerics/numbers/2.cc
! 2f6e7943a15b562a7ed978760ffa7124  libstdc++-v3/testsuite/26_numerics/numbers/3.cc
! 318aa2ec68936aa2fce534035e2aa687  libstdc++-v3/testsuite/26_numerics/numbers/4.cc
! 82dd58642384741db2e5a2f5474ef32a  libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
! 51d8fc69e12dc65c0dc0137559855a82  libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
! 5c00c1dc95e597b7938e2198fe79dabb  libstdc++-v3/testsuite/26_numerics/partial_sum/1.cc
! 7097646151520a804763375fe0559a31  libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
! b46bab0d782bcf241352fd3063b9c3ef  libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
! 6da589649446a5910010c573a75cbbdb  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc
! e4acb888bbf39f45fff83f251f7420fd  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc
! e4a16c3ad7049351e7aa5c01c10241f5  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/108236.cc
  c77f5444168b58d256585ece5f094189  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc
  248df0829f90cb1d8e89a85fce08aa0a  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc
  f2befccb7997036bb753da67e9e718b5  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc
  2f68d0ffd63ef33412e1a1bd5399db50  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
  ed8b405503adae8aa36f1ed9f9781777  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc
! 2e6c0d3b6a924e800651e3821830c259  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc
! a416d57e681378f7b99c0f1993801cd3  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc
! e38e6b0fe4a01bd4ef85ddb73e6a0fee  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc
! 0b108ad09f1100d617f20a7300438c1c  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/inequal.cc
! 3467134580a963963b297e6e2a1b1269  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/serialize.cc
! c7db2b4874b3d9476dc81405d358ba30  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc
! 42277cda29e9e6ad58f047f8229969d8  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/requirements/typedefs.cc
! 2fc6c487a03711c1e879e86c61969626  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/114359.cc
! 22dbc938ccede15fed6059f25528b209  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc
! c480576a7ba21aeadd92b4e5555fd5e9  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/parms.cc
! 323932f4e5a0651de2f4d11c944b774e  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/equal.cc
! c4d0a1827529da1877fa0e9e3c16d70f  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/inequal.cc
! 97cfec9f00ff11e4732c6ba72987054a  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/serialize.cc
! a4fecf770c2d416bd40050b10d174542  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
! d65c8fb2a2ff8d13a8b28beee46fb519  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values2.cc
! e6236e4ed0c1c2b94262dc1cb00a7715  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values3.cc
! caa742c765bcf4d28b08a019ef3d9954  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values4.cc
! 37f1373d26c62e7b254e0a23e3fb0a14  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values5.cc
! a24246bf7af705e8f4ef9f37f33c084a  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
! ef078e974283079230c3d10caea8bc53  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/typedefs.cc
! 811eafffd8124182adcc803c05e13b9c  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
! 0d435859e45c2a15b706656005106c71  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
! 70f5ae512eec4cdfd47b0708bca89d8d  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/equal.cc
! db285d638ecf36513cc3f4436deb0564  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/inequal.cc
! 5e27cb8808e0725053043c7cbe281767  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/serialize.cc
! 9b209d0b20d99a7585204613e3e0c330  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
! 8e65ece91dcdb5e952b05dc4512706a6  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/typedefs.cc
! f32e761d551a9fc100a94db430546a7a  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/83833.cc
! 5218019a3e83fa01716a2d72a97d2c05  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc
! 6c1f7d3d6e7a8d138eb93574b7f0f72e  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc
! e9cecde1783d99e0bdcb90d0afa9bc63  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/equal.cc
! 41fce4dae60ba1285725d7482f7de685  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/inequal.cc
! 7e92fd62373e504d5f5f886ffac4acad  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/serialize.cc
! bf1c3e50dc5da2310f589a4dfe48f099  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
! 27f21d9b1b2dbb0e59dab7855186a65b  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/typedefs.cc
! 8091474b9ee1dd12ec5d9239abba8f50  libstdc++-v3/testsuite/26_numerics/random/concept.cc
! 27638625e3d6a182a2fdb06316cc31a8  libstdc++-v3/testsuite/26_numerics/random/default_random_engine.cc
! 53107ef8333dc29555963beca98c3704  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/55215.cc
! 7cee66612caa409869699573c751cacb  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc
! 9c40b02cf7d98af771cad8cb62d4e1f1  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc
! f70703f656f387c1086164bdc32c8b8b  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/copy.cc
! 74e56d10498e8f6c507d6cd377903453  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/default.cc
! ea4a1fbe583987297c1397ade9a7868e  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc
! 704cca4c6dc7c7e868a5c2bdf6947b3b  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc
! 78ff2bf11944c792a545a9380eaeac50  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc
! 3ab972045aac862318700348f858091d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc
! 2eeda363972ae14f1763cb9181eb3e4c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/equal.cc
! b84e06994b9061867f4af074014a9b8a  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/inequal.cc
! b282cffe2606b58f2bc3d1fcab63a11c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/serialize.cc
! 8d79dfbfa728802de70d7898284a6953  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
! db017a23e73a3b12e699a64abc0f3657  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
! 96db1542271c669954670fc6b04367b3  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/typedefs.cc
! 8db6dfe74b6de72d61fc31721952084d  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc
! 88ad66c94c79590bf918c627c1c92b9b  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/initlist.cc
! 8572a904a71d9517e5a16345f00c8430  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc
! 8a80ddbbdb278206ba499ce28e2a5df4  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc
! 2db4f68335ee730f3bcce4b0b709d04a  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/call-default.cc
! 415c7510bbdee6812c0aeb28e9af8a6b  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/equal.cc
! a18a86573d1a71a4858490f1b32ad8c9  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/inequal.cc
! dc092e935697b0023d78cf37de1d27c4  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/serialize.cc
! af0f93d0084ee56fa2e5c2a38f0caf74  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/values.cc
! 5afc135bd44edd9d6c29439ac8e6ce79  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
! f747eaa40d328a9cf7201244ea49d413  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/typedefs.cc
! 94dfcbc19045bac0a7afb3a7f7983585  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
! edc02a305a9ff777716c126c20470485  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
! 87eaf5d51bdd9481fb7cf4b509fd5af6  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/equal.cc
! c695477bdf6a4cd5f94850bda74987c4  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/inequal.cc
! d9a1f10a13ff05e9de4402f2552abe2d  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/serialize.cc
! 0a73f943e06cca30938823f1182e35da  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
! 14a138436b225447540e9effc5019918  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/typedefs.cc
! 0b274600ddd776e950e79620cf2f3bad  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
! 63ea3aee1f850bc6c39f11c1edca716a  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
! 223db5b96791b2010cc31aec90817ea8  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/equal.cc
! 2921d1653b9c98b74d1ba21764a0471d  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/inequal.cc
! 1444a58f1f8f93acf2fe506d780d3a14  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/serialize.cc
! d2e69e91ef0395a6e4974c050e365df6  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
! fdb384def2162956a759f492d05f2e8b  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/typedefs.cc
! d45e7841ef8d4aab4fc22b1e19b7011f  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc
! 28288d0383f8bb916b6926fc118440de  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc
! 4fda894f37699c955bf3beaa382020fc  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/equal.cc
! fd4ae625c54c32be381c15c13adeabdd  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/inequal.cc
! 86a47deb34516161f07f64267e159b9b  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/serialize.cc
! 32c037b200ba3396c3429a2670e44621  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
! 63c35efc680f5680c98b36af24671b76  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/typedefs.cc
! 41d57de06abb805cbaa59ef442e031b5  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc
! e4b0714d28c7fe477b88f279f22721d1  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/parms.cc
! 9bb8765ae8f6a1fd4d575b51f19d74a8  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/equal.cc
! 35a7e64604e3fe4ba69e2b71a26663e5  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/inequal.cc
! 7b79adba813e5a2386beab628052ea87  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/serialize.cc
! 8061e2cb08aaeb362cd38dfe9fcb6065  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
! 1557c101bd481fcd535770fe2fcb3b9b  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/typedefs.cc
! b0214fbf91a26aed4ab2e385d2fbb920  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc
! 0d7e611c9ad0ecad27032d42c25a057d  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/parms.cc
! a82f0c1dcd52f1ff253f63644fe46774  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/equal.cc
! fc289c8694ac7302ff865b4555fcd722  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/inequal.cc
! a8e6ae8093000e1c99be4dd1df3a541c  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/serialize.cc
! 8f85036f606421391335e11af515aa0c  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/values.cc
! d38e48f1225ded60c11120aef09ed122  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
! f16da44371940d25d31ce4734ac48569  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/typedefs.cc
! f8cec6e604786e8d992fbceb1e474aee  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc
! 52ee6b6743960d18e14f2d320d6327b3  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc
! 949a2bd684d8a6aef4f0a9a8bb689c8c  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_move.cc
! 1e2b713b38155f22d50534a5b265aaba  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc
! cfa0dad9ad765c4182e4231bd7b9406c  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/default.cc
! 735bd09074ce2cc69a9d8498cdabf355  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc
! 99982dc9dda6691a03f717076ae77726  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc
! da80614aa4f0a54c87d1ed3d90201e01  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq.cc
! b44b1ba7eb157642e679b7b5e0a935ea  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc
! d5e9a94f75d6cdb666e2d21fbeb2e32d  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/equal.cc
! d49c2fb7ec057b607eb652e81b49dd80  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/inequal.cc
! 5355f66fa393b8757ca58046f0cfc1b2  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/serialize.cc
! be984915156d3161abcf8cc267e679dc  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
! 6c2b0310ea52d97541bc3700c586f6a1  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/typedefs.cc
! a6075034f6e918d3e08089c1ddfa3a04  libstdc++-v3/testsuite/26_numerics/random/knuth_b.cc
  45b91bf0319782738db89dd5c35f9b4e  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/87744.cc
! 233a380a4f5d60f7b48619a5c298a625  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/55215.cc
! 96390521db6c03a386de9e5176acb292  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/copy.cc
! 54eddcba5a7573f5ec886547f14ee3cd  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/default.cc
! 25029ab3db7c191f4bce3034e2009743  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed1.cc
! 1e086e0034dc72ba776ee146b52355cb  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed2.cc
! 81f4fabd24d7e836b4b925686683d29b  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq.cc
! ad0400e4dc1da086ce50742bc84c01ea  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc
! cff0603437c96f35f5b68296ceefd3d9  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/51795.cc
! b4e1a7cddb705d4c7ff60c755b5b9894  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc
! 204cccb7b4f5c8812004c3d5274d4eee  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/equal.cc
! 7b593983df324974f493a11163e94479  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/inequal.cc
! 84a2904d51e7e3ef7b39f0533f3c0473  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/serialize.cc
! b42430803f45a3c0687fb3ccd06ddf11  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
! d41eddaa9ba8678282ce877651659849  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
! b07c69fc6854e460a10af56f0881c386  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
! 4d6403847485443fe023e59ee650262c  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
! 61387d651c625f929b617fbb2c222766  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/typedefs.cc
! 2ce287d3c826998081239e85dba3a47e  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc
! d44f1b615c7bc383452c98bcc9344b01  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc
! 125cec612a2a931cc0f4b16a533e40d9  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/equal.cc
! b21657f6e7494d431202fa76e391a886  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/inequal.cc
! add1da73f4c57b9968b69977ba2dbf1a  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/serialize.cc
! 868202f02d4fb6a70308fe51ea90bcb2  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
! d2d1decbdde99ecbb993249a7b5f0026  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/typedefs.cc
! edc889684e216b847aa0921effa73591  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc
! 0fd094757be0a822129b6e63af0d9225  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/copy.cc
! 5d2c73356ed48826be96b35e1a1d6a39  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/default.cc
! 74400f6574408e2f42bc74aed655db9f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc
! 2c4a7e003244cd67de3b088917255d40  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc
! 16e064ad6abad172f51564d457c2e529  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq.cc
! d625052267a8b051e78b48568ca5d6d4  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc
! e4a195d19b90a805dcfa247240eda55a  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/equal.cc
! 3250eb140789822b107161134fa0413b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/inequal.cc
! 5b489adc0ec51f0a5550b8f955d77127  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/serialize.cc
! afb19df0102071647ab5939ab07b9654  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
! 38c65a647d50729742d275d19e61523f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
! 98075ffda302d15ae3d84cd09499dfe7  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
! 30b3ecce96d55d871386d087d93b5627  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/typedefs.cc
! 2b4512d757aec6ee6f35c59d88732b42  libstdc++-v3/testsuite/26_numerics/random/minstd_rand.cc
! ca0e6010e72056677bc9fbf6419216db  libstdc++-v3/testsuite/26_numerics/random/minstd_rand0.cc
! 19226e90d72b53e93e2eb04deca5976f  libstdc++-v3/testsuite/26_numerics/random/mt19937.cc
! f3db0e13c81487f3c97409983c7ec309  libstdc++-v3/testsuite/26_numerics/random/mt19937_64.cc
! 3b030008afb7d63150edc83db68e430a  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc
! 796e516b18d800281b5a3dbd232c84cb  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/parms.cc
! 71e18595698918eff9ee0bf473cef299  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
! a3d86cb5efd7a6da6cef0df9b1306f0d  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/equal.cc
! a5c839ac69ecc7dbc9814a9f0e69f7bc  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/inequal.cc
! b87089dce69d81aef17df74955738fe9  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/serialize.cc
! 4b3dfbd72de398e7cbca2254adb2585d  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc
! c71e8351d90ea47171192a27410fd95e  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
! cda00f041bc7c766be518fce9f533d54  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/typedefs.cc
! 166a1da8bfb4abe83d4a90d5def5092f  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
! 0b3b7afe7dde03bf6ddcee2b52b79b80  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
! 3c6120a954ba1960924903a2152ffa1f  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
! 3fa68df97dd54b2c979376ee14558342  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! 23f65a251c55843e9da2ee98b63a9e1e  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
! a1110c1451e4a44827a2e6970c8b7233  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
! d651f18a094c3dfc0e8c45c131f3cb7f  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
! 8af781af7df41c657a94ff0828bdaafe  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
! 14729ec22164b6cdcf385a2d1b90b755  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
! 9b0f96efc6c0d7e3986d215840097ef2  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
! 5f1c7af971ee65ee083f97263850de6e  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
! 2bdaf041c605d74add4a628911ae5899  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
! acc288d04b3a73568d5201ad5d6c08e0  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
! 66ba6d725f65cfbf756c1a56212fbd01  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
! b17776ecba967116e9d79caa7701413a  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! 2a0447d8d19bae4620c991f9cf77009d  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
! 5afae932ca0107a29bf73a8c55da95cd  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
! a9c2727c68b0bf8115dd197939502cca  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
! 99546b5e1ad01df10d3956ccc0fa48c4  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
! 69e3b80ed51308d2bcbd9b1196852310  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
! fc14c8002d415d22df4428de04cf9794  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
! 6c0899cb861af92d9c4628c83d099425  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
! 9c2d2d7922806bf89067065412fc24b3  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
! dd41672c07b8569659cfb46b4cf2a01f  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
! 5a5588ea30b7d901b44a3daa4a028585  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! 6e5f9ebd5f5be17473ec85bf128417ca  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
! 19c9d14c505c417a0f4548c27f957d9d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
! eb1a925878a6ceb1cd8efc1e491fc03a  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
! e43cdd13883e4c61fad3883e6a993f5b  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/parms.cc
! 02791dea65c15adb61a72c4e0ca500ec  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/equal.cc
! f611d8403b58b7a1b84d9b3716a087e1  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/inequal.cc
! f50f08ea0f3c56fb4f3f904226197961  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/serialize.cc
! d83d81a4149ce8c9ff230914f3cf74c1  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc
! 737dbd8856530e44be7a70115fa0ce96  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
! 64087aa200aa0ddee5d103b4cb4b77b5  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc
  222b8e8700d8093ce9456ba54d36e1e7  libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc
! 1c30a2a995b0786c632ceb76a66a91b0  libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc
! dd58fca2d95b558ae402a2cbee1158fd  libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc
! 26c74a52d1fac9cc4f712bf483f369d6  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc
! baf88a208945496c497263b3732605be  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc
! 7b5d44e62114dc40e0f6606b9c17ab9f  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
! f1798bce6b9cd34abe402fa50903386f  libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc
! 002317d9b926063758ba6ca0a0efcaf0  libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc
! 4273cf94f989a94b8e5430d45c97fe8e  libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc
! 92d92d87db66c3308b552c0c382439a4  libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc
! 491c6c2620902dd4c0798d741bca8825  libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc
! 704c0803e1dbf0cb4068abe528a503d4  libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc
! 63568c994d5da5d696411383e635ec99  libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc
! e117708a0bc368755d40d9a0f3a92fbe  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
! c6f4d1396386011ac9b327058d127c05  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc
! e8167816ec6dd8ed3ac15d21bcd0b7e2  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc
! a63c616e836af547d1b4f146ef1f705c  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc
! 0f0daa545fdf666143d2c930cf683f9f  libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc
! 95e45181ee9dea7dce4ba2da31e96137  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc
! 4ad4e6b1006688676a30da36214dca0f  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc
! 29f93535014054270365a1603f82d36a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc
! 04fdd76c880855ce751531d2154dced4  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/copy.cc
! e9d89e96ada4e9b0bd83974af9b0e7ea  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc
! 0635e047e8ef19ea1a641156d92ce3b4  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc
! 9a76751e49cfe6d6276fdf9b0cfcfa19  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc
! ea0596dd4a194cf7d9ec267d08c377cc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc
! bdd4880584f657681aa780db0641125d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc
! e382e7d857743d6d6295b1c38075ec80  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/equal.cc
! b2efca8150daa8c47253d4051536e616  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/inequal.cc
! 8e7ff07ff1f3f07ac79ede5f45f27701  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/serialize.cc
! 0ab98c5b1ef9841525842f5564c649f7  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
! c1ebcbbcb4d84beff2b39c4f1a1da46d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
! 86da2c62d2b812ed34fee7e533624a35  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
! fd30b77c4ebe09a0cd0166c96c631cfd  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/typedefs.cc
! 039b5ee201bb936c43189abe8930133a  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
! 3643cca13a535ee58964b87780f08732  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
! e47c24a70a5c83209dc81ca3a0d4bad1  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/equal.cc
! 7df5bc5434aab953d116c91d927d6c09  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/inequal.cc
! 7da3b4f146369ba02be8765147c29105  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/serialize.cc
! e5b59136239789c158b4b3d1b764afbe  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
! 1df78dd2690d7e90e482c0d3b2a7e3dd  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/typedefs.cc
! 21a1a4291f655f29fe64d71da3a4a933  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/55215.cc
! 4ee7e28a11cb859e9b73e4417c7e189b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/copy.cc
! 4458d49ce900a966cc0bc91065555db7  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/default.cc
  7fdf0ab9b87bcd0e74ad97ad9667a1e1  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc
! 9f470eee7011dd84a52c845cdc98874f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed1.cc
! ca75f65e33406b8582d7741ab72242d3  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed2.cc
! 0f0fcb9a752ada3c1dfc731b6eead0d0  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq.cc
! ec7bd98841a9137797b7dfa288f013f1  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc
! e2737623b96814ab66883bb7afd6ba2b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/equal.cc
! a293ec901a6740d78fe55be0c6ac8a9c  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/inequal.cc
! ea022c1fc98c1d3cef10d3dd7e5fd295  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/serialize.cc
! ab0d57938311442ce033de8af9aa6e56  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
! dfe39b6890d0e70e8bd3f59dd67e2b0d  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
! f30108e8f3bb81423214ac31bb0f978d  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
! 18c254b7a9639215a3b2db5f98516251  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/typedefs.cc
! 24d04b2b9e14f225b6c66c5005fd1a43  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc
! 3f6e6f80ab000636715c2e9bca268975  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc
! 852aefdb4fd32b46dfdadd4368d0dd39  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/equal.cc
! 1fdf6c176fb4388d9dd877eb06b101c9  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/inequal.cc
! cf67202311bf128140eaf3e3b6bf217b  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/serialize.cc
! 62178df90605b174edda59c95c413b36  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc
! 5ff792379f4b1cce060e4f2f18d103c6  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
! f294d11fe950a7b40373322a491aa1a2  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/typedefs.cc
! 8f4a87663000cf7de408ce4d2cf38b0a  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc
! fda6b0912853b2162da8354eccb88ba6  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
! ad318d48b67e4e1b4b8c49b48fcf87a6  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
! 965db3accbc424e178ff18873d5f5426  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 6cb8e3dc1e8ec83b32f8800b5d974425  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
! bf6f79fa40e9c446a409a565fa8a5785  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
! 829ba8e03756696f0180568217ae164f  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
! 40f029553ec30f8836eca3b776b6020c  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/typedefs.cc
! 9559c119c82e9e8c07c3d6b14b497ef2  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc
! 44967857f1766cdfa060c71b48feb608  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/parms.cc
! 7bdf4d0a879d5be5a82be1889719ae8c  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/equal.cc
! 2083d4d139ff1cc070fdb57a084d8d37  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/inequal.cc
! d2ed0c05573a753febdf2d8906ca4c69  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/serialize.cc
! f4eae55cabd12939461eb591f262d3c6  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
! 08bcae75fd9da85cdeb8522cbbcbb146  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc
! 245d7d95572763815a42c4a488e20f55  libstdc++-v3/testsuite/26_numerics/reduce/1.cc
! ca36a30a00e6109523175f48bb73e5a1  libstdc++-v3/testsuite/26_numerics/reduce/2.cc
  51f14806bbec80c2d5883800a91dfc2e  libstdc++-v3/testsuite/26_numerics/reduce/95833.cc
! 4ed85954339a57b884b2b7c34a0fc7af  libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
  6bb58f9b93a31777eaa590f067c50cc1  libstdc++-v3/testsuite/26_numerics/saturation/add.cc
  5be1ca6a5d00473905a4f368a38b7f1d  libstdc++-v3/testsuite/26_numerics/saturation/cast.cc
  64f614494e0dd24586ed97ac2ae00b92  libstdc++-v3/testsuite/26_numerics/saturation/div.cc
  776511df4abf99defad25c6424876f05  libstdc++-v3/testsuite/26_numerics/saturation/mul.cc
  952a33bca1e57c78c0a4003723e8399a  libstdc++-v3/testsuite/26_numerics/saturation/sub.cc
  f9e438a747cc86dc8b59ed2ec2243bc8  libstdc++-v3/testsuite/26_numerics/saturation/version.cc
! 07f8f66b5e11528334feebff5cbb029a  libstdc++-v3/testsuite/26_numerics/slice/1.cc
! 6be2f3c7ff84e9a29ccb5a788ab24fda  libstdc++-v3/testsuite/26_numerics/slice/compare.cc
! 2417b8d8d6c80531bb5059212a45e850  libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc
! 77b9462bc0aeb5d6ea925030bd61b5e9  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc
! 92759f71585f6a99a4dac915cde0cf1c  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/typedefs.cc
! 3c2e739337d1d66a837ee9dff70bfa34  libstdc++-v3/testsuite/26_numerics/stdckdint/1.cc
! b751aceaf1e04e945c13e67131969e4d  libstdc++-v3/testsuite/26_numerics/stdckdint/2_neg.cc
! 63118b59cc2533ace3ff2c6bbff4ec81  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
! f390f86204baf313c67a2c534070bb22  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
! 240eca205b86e0fc7e983c75b2fd0687  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
! ddded97f8b58f9e50bbc4370585073f6  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
! 7e36579ad1a51af4f24628bbc8643ee7  libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
! f80993352e92bc9bb185f3a73f29cd8a  libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
  525e5798867d708e7cc13551760f93c8  libstdc++-v3/testsuite/26_numerics/valarray/103022.cc
! 7d4de27ec326547be82a019a237a8466  libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
! 15eeb7b65bd3548741bb52a6fe01deb2  libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
! 983eedc1113fec3a1465bf15cd53f73b  libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
! cd6f50f04e38b15f18a84ced4d47f63d  libstdc++-v3/testsuite/26_numerics/valarray/33084.cc
! bc08b369980644b835784c78e1a9d6f1  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
! ee2bab9201c0c80e7b14cc92162e8347  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
! 9a83364ae8cf0cef7998e269adfe3de6  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! d328e5d3f400177ed30b803f8cfe06a7  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
! 0f428780679942f835114b85e7b39504  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
  660f003ff214d812c5b64389a98e24fa  libstdc++-v3/testsuite/26_numerics/valarray/99117.cc
! 0da39b01b59937b7672cf700b912538c  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
! 11997d329f97ba527789836661817c21  libstdc++-v3/testsuite/26_numerics/valarray/const_bracket.cc
! 25be31d0fd93a371777cefd11572a439  libstdc++-v3/testsuite/26_numerics/valarray/deduction.cc
! f4210494474178c989acec384108e20e  libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
! 3bf276b9d0e9b31d26a4600e364ecb74  libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc
! d4f7dc4865bbe6acb8ee5d354e362312  libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc
! 601fec082ec5d323ea77c04a84b9e8e4  libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc
! 2ea67af1015c7e33f2025a969e28676e  libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc
  92989179308d98e75a76c225b10da0be  libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
  989404228c79ae94725c36342fe840d7  libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
  03eb7e42a8c3f54875026dd4540970b1  libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
*************** d7d40b53cc9eccab2f4add4a3767074a  libstd
*** 130536,132445 ****
  69530b581e1f96f9614208c43d0c9854  libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
  3f797cc15e7e8d36add18ade39f64ccd  libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
  0750f0a7a2c692d4ce110fab2faa8583  libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
! da11dc004df68e1018f9a6c1da884043  libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc
! 8ea91255c501a7c4aa28bbcc1320e8cb  libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
! 04d9bce5d36bcc7c2a914c671250cc49  libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
! efa4320d6e6e8ef2dee71606d5cf8bf5  libstdc++-v3/testsuite/26_numerics/valarray/operators.cc
! a4dff501a334d5dba67aa71d5c71a4b7  libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc
! 2c1469cd1906a2ad2c08ebdfc86c3a0f  libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc
! 78d8f0aad877f85099a06d2f30ea291c  libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc
! 55f6d77a6b07843e9d997ab786738e1c  libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc
! ad3ef24435ba6b9f6e8979d1f4bff7b0  libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc
! 50e8fa822f437c669082362f4d1121d7  libstdc++-v3/testsuite/26_numerics/valarray/swap.cc
! 2dce0a2ccef0186a0756d2b2ea5d3087  libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc
! f7ff4ff31a9d00c5b7a41ab25adb581e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc
! 429f4fb9a500d72f6a061d17457b16db  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
! 050d94953403d9c3cc8dcd2c60c8813c  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc
! f6e8646471e5311fd88f48fd1179850d  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc
! c2b031829b8cfb45cd127e3e9226cb81  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-3.cc
! f3917468dba98c033cde8fa6714e645d  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-4.cc
! 0db09749867606b4ce6f7886df193f79  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
! 93aaeda445e1a6c560d0bdd38db38055  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
! f2c1648d38c6699876ba0ffa8b0ce17a  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
! b9f7287816fa96318fcb4232dc04e795  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
! a905a7f8e1655e570ffc0a7719aae77b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
! e4a06d8316f5d8f323d30d3c9b065845  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
! 678fa24d1586b42272514250f650292b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc
! 7824d932368cadc9754c7a25a4557507  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc
! a5d712b06328d9a85d58cfee97576a89  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc
! 959e03dd250589a49b0b67900c68a00e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc
! 70070ec47b793e65c0b9de72a4ea2a2b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
! 954bad5c6e80bcd4a72f7f04f0e1ea46  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
! 495df4a01a26af8d1236957cf990e129  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc
! 03c06805359de6be6b08e51cebf009e2  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
! 881e95cebb9ea939283f2c5db0bb9787  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc
! 995648c7fccbea92e07d3c859df5acfe  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc
! 82c47c568f14025e816a0eb9380666ca  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/12206.cc
! 45638160e863109a0bb2edb879222b72  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/1.cc
! f43f2f9b778ed6a5103c81ad07e9f255  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13007.cc
! d67ae6d56686c3ed6f5bc11f53a411b0  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc
! b7782aa36783b433e49f67755e327264  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
! 3f2f6fd02fa042c21684e434917e5eb5  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc
! 097e34f33eecef3a85beff3df4239be3  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc
! d165e27e1146dab544425d6bbfe28073  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc
! 9e38ac6f2a07478106cf6a2b150b206d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/2.cc
! 189ba6a6bbc0ad9f8127403c4a8dcdfa  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/3.cc
! fa4121aa000b19ff075cb5d65cc941d7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/9322.cc
! 8b4d9f1b6654ff6ef363dd0b2486dca7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc
! 31c24e95817b519ca9e8868c1d57a2fa  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc
! 3858a38cbab883ada398f7693889ba1e  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc
! a70743309d8eba2c3d1c734c19a11c74  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc
! 7fe7c493bac85effe63c694dbc73f182  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc
! 792bdced77470d63ed872da2d310dec6  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc
! 6de06ca1425584b87e04e45de9f2543b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
! 4db15dd5abcf611a5cd32b856130d3a7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc
! b77d4d5dcc62faba8acb0715ada6d39f  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc
! 394133ac25c2c2de5a8b01faf1de318d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc
! 0c7a6b154146a8e8fbe020e0b1a4a82f  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
! bf3faa066b712f0515cfd19c379bb269  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
! a99973db1743fe6863990bdf8bd0a281  libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
  9ea3052b628709239f02165e8ce7b838  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc
  7f227dd30a9b0bb4fbd5e2e64716e5f7  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc
  3df31280d906ad4697c37209af10e1a0  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc
! ecb7b12c293d158219ff1c56c614542f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/12790-1.cc
! 1d0b7027230602414565bd727f0042e6  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
! ad81b8320848ebc9365dffaa60cf273f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
! a2d94c3886be4da2d349aa978de82d60  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/3.cc
! 575beb4e018ed7700f607c647b82d208  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
! f57aa735f50d8bc864c88137c03bc04f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/5.cc
! 9e76ec85d975a3e9dcf0ddf1ca0ec9b0  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/9507.cc
! 6e5c337c305a1299776fea09286cdfbc  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/path.cc
! 30630608cb3c531567da758d9a078a7b  libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
! e48e94af4b019ec54e19e84ccdd4b8c6  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/1.cc
! 5001b6b73b7479d6557a5ae52eacc40a  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/13858.cc
! fadf5dcd532876825c69ec9a049c1383  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc
! ccd77a8441f22f63caa5d69e629fd4de  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2.cc
! 1bb06be66c6876a372b34cc3efde195e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/3599.cc
! 241f3703bd268e2a408a2ddd9dedad74  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9169.cc
! 72118936ae85845f417359ee7d541d02  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc
! f8a2c3f3281e602b5cfabe89fbfacedd  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9988.cc
! ef0c0e07b04dbee178a1660fc7c230d0  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc
! 82eb3ef23a2c8c888434fabd0b82ae25  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc
! a1ba4c785f32ddf899a2da4755e77952  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc
! 25cda67291ea93f9ac7a04ac77692329  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc
! 443ef6c2e7073d0333befe198cbd95f0  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc
! 1acdba37a99cdfdd7aec205d0d678927  libstdc++-v3/testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc
! 7ffba8d4047a98b8453c4ea554bb206f  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
! ba842e1f57cdd2d6f9567647ba369d1c  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
! 6dbf178b5a215f12d46dac67452de4dd  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
! d92e60bbcebf487a9abd85e3b42f6d2e  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
! b61417666b935f3e583388c6e14ed350  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
! fd6ae7e1587d1ce3049f29a7eb6ee49c  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc
! 23ad7bc147b7f8fa3401d2b7d3579194  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
! 17c4a7c52b732aecb974d4bedc57adde  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
! 97bfaf75a2fb0b5fef4d9a7fd8fa9ea4  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc
! e9a84b2cca2ffb9b49d1c907f9ce8215  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc
! 660d10d84ce488c5742bc463eee25a14  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/10132-2.cc
! 9de54b8947969f5a01e86cba40a6ff57  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-1.cc
! 998df9d99ec6e6b1d6d9edafd41dcee0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-2.cc
! 98572b10d11849496c3f1c000f701f7f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-3.cc
! 994a117587147966a37dbe726276d779  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-4.cc
! 99050d4acba117d66b03f582688bd079  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/45628-2.cc
! b29c80a752438900f19552cd22c50782  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
! 758f178cf2856c1c17934633ab7868aa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
! dc4764b957ec8a97949b74821947c859  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
! b6bbfc091a43ad89e85157f5808a3302  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc
! 5204c554f0c2e92b36f5a44e933114cf  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12232.cc
! 12fc6f2c1d6d06c521a7dff5c7da0c9a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc
! aa17b5adf335f3cd0b846748dbe891c8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc
! ea100d472e125509f26123ea451e3681  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc
! b174c3c9f3402f0c443a8fa954fd12f3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc
! 2721188ffb84eded4bddc8769d17a14b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
! 43658b2d5f7165f69d6a00934b084e20  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
! 9a0c9d15316709362c19a68e971887d1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
! 28571df29e3b33f27b2dafa2b69fbe13  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
! fbe291506e8a5f6955e41d12fba47866  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc
! 2f4ccc6c9f92a179a9c90fe2f905713c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc
! 69406c18e9eba4aaee1b59bb78085d79  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc
! 71e71a10c00b0bb58d4c37517ed082cd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc
! e7cd32ec749af7f82039c8f75d0542fa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
! f06f4eaf713110f05667550068a5ebee  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc
! 3f6901c9bb51ca98385b5f8d5381f8f8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc
! 2b88ac046b5e685cfc0c67c617b586a3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc
! 16a08f7ace859f46dd4a4ba6db3058d7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc
! c523721612e245379501f0e7aaaff9e7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc
! c9cf29d6bfca7ae83f265f6023dc073e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc
! f07b43bfb50d11a92dcc363084a5a946  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
! 1211ea2d770db670143cd89eacabc454  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
! 6cde23d0d17fe1f2e0e2819cb9fcee6f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! a0270dbe06e6ec9267907a828d491ccd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
! cf349ab5733e210b9ec44b657daa428e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
! 4673285e12fcadde8d339cc67adb50e3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
! eeb0a64a187b397a9ab29feddbb99f8f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
! 468832c910a97c51720889f5f5c1040e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-3.cc
! cd529a8c7fb01449efb3a1d90e76c3f5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
! d4a5ce3aeb9cde4b4bf5cf39f5950e43  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
! c4eed83ef169477d9454d909a2ae273a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
! 0350d2f86e2486bc90cbe9164ad6e2d4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc
! 414be34c92535e6d570feeb29738ab78  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc
! 1f111103b5b15aabe119589b359bb363  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc
! ad26f9aee916449010178d4ba339ad59  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc
! 4acc1565f2236a6fc87e09a776dc6a98  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
! 214158beb36d2388af1b05c019b41e7d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
! b702c10047afae978c4248003674fdd8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
! 02f4e5e65b68ee457c81141cbe0d3cb5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc
! e5bab524f7348222ef6fd6dbde5c0c43  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc
! 6726e19a67b4edb520a19f2abb8a7e6a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc
! 093dae68a99b577a1e19cf9d5735bdc3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc
! 0841066541d53a38a5f49c6929fa5673  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc
! 5a2745a81c04871d41b621f35661edb2  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc
! 7787db9d9ef704e9e7b9377fc2906efe  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
! dc43ed4cbf601856bd14fc1c60d7e8fa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
! 0aaf33ec0ccc1556ac96ad80a981e709  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! a21722a0836f44820a22cf1eed59d2d8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
! 06f7f1b1b8fcf6b4c64a1929e1c52f35  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
! a58132bf7d5514764c3e3dbf426071d4  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
! 07d651ee3351cfa59253f48951426ab9  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
! 1a4af0f7af7539598649f0153af63257  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/2.cc
! bddd1d0f3867f01fb6ec511e96e48e2f  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/3.cc
! 404bd35e7e59d9fb1bf2071f517cb2ab  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
! eb13ae1a123483c3d16952fa08994ba6  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
! ec561a9da2cf800f567489f0bde3c8e9  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc
! 59f582df42b27233c3d0ff06a20f0cf2  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
! 48b9048a850f9261b7a9e829ea19f98d  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
! abe94d6adac959fd05eee373e598eeee  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc
! 21c8b5e44ca99096e97f4309a75f64d6  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
! 3fc29c67406cc843e3dd564d1485fd52  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
! eb3ba858f5b6ca47fa720420cfab215a  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc
! a48a7735d6c73b33a00bef28c5cfc398  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
! afcdcb01390086d8ca683ca49c08822c  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
! 4f3da793b6b345b9ed3eae6d0f156885  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc
! 465c907b32f58e03573d36a4febfe3f1  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/3.cc
! 43c86a2c0b4d58a7f29da2faa782bd97  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/81395.cc
! a63fa7f7222b5b61676a600418bbb088  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc
! 6664c45ebdbd4a3214a6851c12806e65  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc
! c66ed4cf28a31aae2630a90ff37e6cce  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
! 1c40e5b12aa981d25ecdf1e7f3fba0ef  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
! 8ede788a747b18ded9e1f09d27d68bcf  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
! 79059d41e8a7dae6293cc89de1342152  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
! 3be8bf95763e8f57ade64b148ec2d43e  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
! 2dcca170dc8e00d757d50d9ff9833d48  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-out.cc
! 9a5913646d93dbb50bdc8b83eed6c08a  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
! ba168c74264740fb178fb6101de715de  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc
! 950f847b2e6034b39eeaad891111fb9e  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc
! cda2f1aba9421c1ae383f271c1a99217  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
! 77ba322acd6aa37be33f18e34fc6e385  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc
! 59dcbd1126443fffebdfe75d517936de  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc
! 7d2d509d8d6271d7c9a02d0379d23999  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc
! 35f4c849309b23926288de694c9565df  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
! 552df726e0b388b977573c4fc6bc0a34  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-io.cc
! f9e408eafecb84392c913e0c8c57eb80  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-out.cc
! 74cc6c2a939dc88c7ac01c50749103f0  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1057.cc
! 48611affd1e0ecce2489f3e57d130233  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
! c1093bccbbf3514ba6c35fff46c45fe0  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
! c4d54464fd1953fa82e6cfb7b851a853  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-out.cc
! 828e33bfc3e771b6070fe4b15fdbb418  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/59427.cc
! 809a1d4e2db02bddae1d73024a06bd82  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc
! 52945370a8d2658665cec03307554726  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
! c5710b13b346d648a9ad28cbd10121b1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
! 142c37852f23eb9bb9858f0a42378ddb  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-out.cc
! 8912ce0c0802fe98a39c7beded2a0237  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1057.cc
! 24d1dc141638edeb8379e0825a5917ee  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
! 7bd34085d715a5da4951c63d01995348  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-io.cc
! bc396d32148765ec483582b3f4c0c66b  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-out.cc
! b5887fdb771e96c7877d2268924a23a3  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/59427.cc
  73d4eb67443415996209b1af2dbebbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/63746.cc
! 812efe5f94099c8a88f55a4bfd105426  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9339.cc
! 7e317d29b3fa890b99b1efba78c17422  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc
! 9eb9a2af5b9fa79e410de371d0e06e77  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
! f99b518db3fe450b7de61fe3114bc503  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc
! 2578897223480d27d3fe4c125c53cc5f  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc
! 601833352c8def339138582d3d8705ff  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
! 225918d86e05622f35c55430c92701c3  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc
! 526310f60246a336898800776eab0c2d  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc
! a45707d3a15e47c5847fdbda507b2c04  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
! 00541668ae9bd05e523d8e57d4e5fe66  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
! 767bc72b6ba96038cf741caf4f383cb5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! ff378fce60ab980c113cc93c313b1a26  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
! a8e7a4eff23d7fbb69d1b82025fa2c32  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
! 50d42192f65a49abf0dfb7530f5611d1  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
! a6b847ab314b1ec91fc1c107eb9fa8f4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
! b209213d0aa339617be8ea074be4948b  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/45841.cc
! 11515737174bca4a5b6b76253eb5f771  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/9027.cc
! 2d859c9d3b0b24b67617c1e76e3babab  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc
! e88742cdece39027be36fb8fddb224d8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc
! b06faefb4c9a6efb32f6fc34b66e9a97  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc
! 4c1639c4843c46cbb2383d634181de7d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc
! 1434259d766c113c02c3e8615b596a55  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
! 444f96238408f8a7db772baa5689fbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
! 5ac52688824ed2479cce7ef5502fca76  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! 76ab32db78b8f78381661f6abc9799a0  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
! 5e261d2019a314e22d3f9dbfb511f6c5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
! 5678a7a89f9aba79371834e4419f33e5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
! d276d6eac532397ca8f124455b4f67f4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
! 1511b5d00a045e74d994124d7b2d8eeb  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc
! daec1db185e151e3ecf24af1ad74d6c5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc
! 6dcc4ddfa595d558014af02148de7fb4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc
! 7c7df4f87708cafe2d44eb31999326d8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc
! 7f51e1897b272360a5c4c966661fa61e  libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc
! f648d80753d1a6d500534e2c88060316  libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
! a9adf02124ff691a80f281ab9e11e80c  libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
! 64f0b47dbafe8d9f7123dfa9fc22a405  libstdc++-v3/testsuite/27_io/basic_fstream/cons/base.cc
! 435cbcfff35af502e9e9b829c6ef3f9c  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/1.cc
! e316de1cc92e4bc42ad4b1ff5dc0bff3  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/path.cc
! 3c6c7ddcc0caf4aed360fc488cdbfb17  libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
! 04fbbb2802b2a00eef35971a3e7293f6  libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/1.cc
  69980d2bcbecc6a5a4729e3ac50e8b66  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc
  14126d2598e6c553f9daec41ad04cfac  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc
! ab17c5b837a902bea4abdda52e0fe50f  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
! f2bf217a59f323f77cf1756bb7ae322a  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/path.cc
! 3220a3cb423032ddea9dbf8355074753  libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
! 233c7357e99cf5bf9e10b862c2c0372a  libstdc++-v3/testsuite/27_io/basic_fstream/rdbuf/char/2832.cc
! de440ddfb2a635ab5bcfbf60c4ad5e28  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
! 854139b8eac748c35f25a9be1fd18264  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
! c68e1dcc237b4de405955aae357bc6c9  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
! 2f84362f18faecab947b6af5932c655a  libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
! fc9f97e80be11bb7a0f7153c8ff69b92  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
! 1be7f73f093047ba1fdbbe96f1652429  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
! eed6b18826b26bfc289f9164f1ae5281  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/2.cc
! 14785f62dfdf57ee9a995c5680285c80  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/path.cc
! e843feb23255bfc4fab9dab4b475127c  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc
! 11738e7d04ef42180fd1bb8bf072c7c8  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc
  d1dbfb61d085bf5907b5a0f89443ccf7  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc
  e1d62403868e87c75c61c1c45f275fc4  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc
! 95f468f2f7b7cc5f996ccb7921a0477c  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
! 8fb83f69afe5382c75290eafea63be04  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/2.cc
! 10f45935dad1039fdc73135a11a7039b  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/path.cc
! dc16f87997f0d618043c5352506e5a8a  libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
! a056d6928b779f5b7ea19c11b7133b67  libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
! d896bfbc55f453471a9f0af5d200cd9a  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
! 0664cb584a97c60350f9f1f56dda3861  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
! 993736b9e13be9c973fe68b50d220bfa  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
! 02a8fdf8a9cecd3061ac574836d10d9e  libstdc++-v3/testsuite/27_io/basic_ios/clear/char/1.cc
! 75a5b340f335876b99e612907b26ad26  libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
! 59331829b302895f83dbd23c5695519d  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/1.cc
! 80e7e39365f003fec6852e119334831a  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/2.cc
! 4f716633996d3deb4a00756a4d6f4ba5  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/3.cc
! 1af030c22c4ecf5b1db89e1156b324e8  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool.cc
! 8b1e485a53f91b0b997d244fa9617130  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool_neg.cc
! 66085574036005709f2a3a386276a8d7  libstdc++-v3/testsuite/27_io/basic_ios/conv/voidptr.cc
! d9039a6e57082ae6d15db1ece79ba69a  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc
! 3f00af58c39e5421455651466f66d619  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/2.cc
! 51d8cc88134ed762be9caa11387ecb75  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc
! 028f60505d59b8e1737ad9a74efe3808  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/2.cc
! df2b94a65201843f100ecc7c01ad4341  libstdc++-v3/testsuite/27_io/basic_ios/imbue/14072.cc
! 3b7b379195abd1915722e50605e0925e  libstdc++-v3/testsuite/27_io/basic_ios/locales/char/1.cc
! a3e37a31c2f4c5ed307201e37bf979d0  libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
! 051d93f5d2a98947be484fb4be9e3b47  libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
! 8a9f6b1437340b43ddf88f118d147894  libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
! e35c3697de2a647e9e9279210561ac22  libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc
! e7fa6eb1d6456c1b90e748e8188bc8bc  libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
! 13b5ea6065b4177a98f57df1f45e3e85  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
! cb3287081e7e309b46d6b46c45f0ae87  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
! a0beabcb5cde9b3f6b62a669290c76ad  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
! a1017d458d1e8b1e314bf3ec73967684  libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
! f92fb497429964ebf530ae8cc145d916  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/char/9561.cc
! 5dfe57d962ccb9596e24c2621738de02  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc
! e1b9f19e2c144354de2f8ebdc3b524b0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc
! 52c91e3c6465e75104c5b0b6668561eb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc
! b8eba289adbf87e4d0ed1c7eb78bb922  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc
! 6bc1f56c7eb865efce471395de4e9add  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc
! d0f20da2d4e762a7c5bdf09580f0bbb3  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc
! d5ea9c9b4f057900abc3f75f196ab67b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc
! 024ab2e2cd734de3ff40b13e07810093  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc
! 775464300c1f1046f8199314ccffb636  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc
! 9c36a631577c4ec73a859c2c613ef8d8  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc
! 78806c8b061b568d57c849c65cee2c21  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
! b29f92de53071845313d2f38ea1b723d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc
! f3210a41d0d07ad120b255b77d049cce  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc
! e08387ed3e0111fea3620bfb2069cda9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc
! 5423488bb5710a05917346c94045149d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
! 757158def78efbbd4525bc25914a4117  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc
! 26da6967ee5da63e7f86f263e101e2a6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit_throw.cc
! f457bb5367be2d5d845e97e699501400  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc
! 77fe1947e4eecfee99abbf32c2768689  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc
! 3aee65a8cdf901f666797796cdfba385  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc
! 80cb30ddd6fc782c452abb8787c4afec  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc
! 3ba05bcfb1441d5f0ce2920d2bbc5582  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc
! 749053a4e5716fef67991aaaaf406546  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc
! dbe09d00a014aa612f23f0275ad9cd47  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc
! 8338dc2977f5f86ed6c086ec237a09e0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc
! 8324c7731c4544e4066562d9f4af2264  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc
! ab8bd3774b858add62af06f02a7599d2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc
! 3ed1ab05d03c3c5ebc8ae872a58d764b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
! cf0ae74e51fc659cc944bc18a93aa02c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc
! ca8878ee0534b80b368c3431614d3aa1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/9555-ia.cc
! aef1c50b3c941b4b5d6c6fbd1608886d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc
! 4c1b2fb8a2f879b6731bcf329c223f66  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 23c1262369d901a5a1f2c0b152e1ce61  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc
! ade31a097abbf43d3b02b248642a98d6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit_throw.cc
! a5462cdc328502de011e05be15679228  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/1.cc
! 50ff02404800a89163d9d15d0b9a8b39  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc
! f5a93fa7eb4517b7ba1ef53b1e1335df  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/2.cc
! 00269d04b6a4b321fb37d6df18690dcd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/3.cc
! c19e2de9bf9a33f8ec1d1df18e6eb056  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/4.cc
! 2776dc3830c3e01c4d54b3d93631b772  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/5.cc
! 7692896576baa833ab8ead25da61d8e3  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc
! e7ac0ad19369e55ba1d14ea523deaee6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9826.cc
! 084bbcfe70bd706211e807b355b39b7e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
! af89a74ae3910bb4d9b56b98e2e0e3c9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
! baa3c83fc719925b0e352f6e0c374854  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/overflow.cc
  4f3d3110437af7e4f5208a2434cf525b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc
! bc1b38a3bd76a9791420c8552860c837  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
! 8ec71123c05116d3d61952876c025088  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
! 514700613e8b769aa739f9e49d93a8bf  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
! eb2cabc4a775c182511a2b82114ebff2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc
! 6060449cb9cdae3825b2544c12c433e0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc
! 300b81e44315736c3f50e0c872989792  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc
! 02dcf90edec454012b55666b9740564d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc
! b7fb037f4aeb0d87ea69271ba0f28019  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc
! e258d88b65d16872f3ab7ba1b363e981  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
! b2602ba94e9b422672c0a4694ef4e1d7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
! 356aa6d2a0d7c9913b74e65497287a8f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc
  b4f815b9c39f208740f02123c6525269  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc
! 0890d37aadba8a19fc5e643803d7ee26  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
! 295dcc550b7dfd1137b0cb526f0bb13b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
! 21ee5f8204dbfa106da9ce8f4d00f29a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
! 7774e442753fe678c5fdbe5419398ea5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/3.cc
! f992c058fa1d199b25ce6ea180592475  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/4.cc
! a64796673f98cbfa6c6bd299bcb73e4a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc
! f90ca27fbf0f44a8021744176f3ae097  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc
! ffc6498a0f8d8fb9f7e27d19e53cae47  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc
! 4d52142541b4e95b8980e19173181175  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/error_failbit.cc
! 94e6c0eb93062d6a822cfef22f817c5e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_badbit_throw.cc
! 1dadc1d71400b3deb8bf52b1b38373d7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
! 8a8921229052f7849e7c33301de94a7d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc
! f329ec33ce2920c52bf54f52f60cc560  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc
! bd0faf0a5b434022c36e9e12b2b09d0d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc
! 35d3a83790eca5f6c0867dc6fb0fdda4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
! 438cc7bb95452f9c7e1e50065d995dce  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc
! 2d8eb740c3ac45c4abb4f7edd478429d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc
! 4d948121f6711bca8952b57d7c367572  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc
! 256bcf6a3b378683fc9c0a5fb41c84f5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc
! 5ca3dcfacc55198019feec85fc0b4943  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc
! e9c9c93b1a5dd85a53f6c222daae6809  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc
! f5e8fc37c4463743892cba5ce55ff277  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/error_failbit.cc
! 76e7e434d19f47bcd9846a5a86e883e6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_badbit_throw.cc
! 0f826c55ff46a22bf36c772ad11e5f3a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
! 8a03f1924459e302de628b96ef944e95  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc
! 590847d1dad6bbb4002f274dcaeabfdb  libstdc++-v3/testsuite/27_io/basic_istream/get/char/1.cc
! f962e76f50c8ffa81286a9b5992475b5  libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
! 27f934eb7b7e149b45dec78b61fab22d  libstdc++-v3/testsuite/27_io/basic_istream/get/char/3.cc
! 8881a34ddc461b815b338ae7751158b0  libstdc++-v3/testsuite/27_io/basic_istream/get/char/lwg3464.cc
! fc10ee0bf789cd7bf7c483190cc2cff8  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/1.cc
! 984aa0cb008e20732e96fce32dfb8a80  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
! 424652c4bf7a4f9f4fb8f8e5b1961e0c  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/3.cc
! 7258b581feadacb85aded98ec1fb4daa  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc
! b804df65e05dad3ce47738b296e5b5bf  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/1.cc
! 6dfd935bd32cc38e9fb6fafbf912e8db  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/2.cc
! 19f8b5a97fb3131ca400c2ccd70c7c91  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/3.cc
! 477c7b96acc76e61f838f1fe3baf60af  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/4.cc
! edeaa244d276ad2b52aa313800dbe15f  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/5.cc
! d2dd88426ba2ea219141988930532830  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/6.cc
! 51cc04793547e67c3b06ea6fcf355e2f  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/1.cc
! 64b347d69605874b11f6422c78b3d9e8  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/2.cc
! ae2eae0c22279f67833e759ddf6b0be2  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/3.cc
! 4ab65b8ebae88de3c7e70870f85a6885  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/4.cc
! bcc7fec4da4ae7e9e69e8a36b549a413  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc
! 45f8f7b4ce4a4da5394a432977e5d3de  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/6.cc
! 3ac751d7e9bac8bf4a06b614ad8d629d  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/1.cc
! f4e4af310ad8eed1cc87e193b208ec58  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/2.cc
! ee57988e32136812c8904a74c90f9815  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
! ec4cb86a244eae739fe29bb38ec066c8  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/6360.cc
! 50f2ed1613e963e8fc6e85b674d20aa5  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/7220.cc
  e0b8c86bd25f4fc4a5f4baa02e810d07  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/93672.cc
! 99c3ccbcde65bcb9df3e7af4c2538c94  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/94749.cc
! 4538bf850c058fe29f5ab1944b998313  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/96161.cc
! ac48218a4e75d446b91fbde721c2d309  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/1.cc
! adea77d2df62275a5a5ecd4479b594de  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc
! 87e751975400e07c1851386f59d1f270  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
! 5e45107eebf830790cde32edd13ff9f0  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc
! 8ce46f153302fa2d071a54a7225f6121  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/7220.cc
  b970ffcefa492a97a5e8206924debd61  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc
! 3a0415c2cd93afec259e0f61a797d0bc  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc
! 07b11b266832214d1dcfced08268e6b6  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc
! 48f6c25ba0b6a31a2c26c331cb9ed03c  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/1.cc
! 8a348bcc5087470158b3e6af65d579fa  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/12296.cc
! 00e951e9a4cb6549348cf04f06571b82  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
! 705009a9bfd3d2208dc78d423efda1bd  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/1.cc
! cf8386f9381837f90cb836bcb42bf67f  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/12296.cc
! 38a86c0d7d6a2173db51bd2952c10d4b  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
! 6874a9103ec6a285d4c19540b9933c6b  libstdc++-v3/testsuite/27_io/basic_istream/putback/char/1.cc
! d5f6c6f982706a1f87916d4c0fb2f421  libstdc++-v3/testsuite/27_io/basic_istream/putback/wchar_t/1.cc
! ce2d0377fab6cae113e55da72b5fb91d  libstdc++-v3/testsuite/27_io/basic_istream/read/char/1.cc
! d2687fb66dcab6d749ec9c745016e9e5  libstdc++-v3/testsuite/27_io/basic_istream/read/char/2.cc
! ef31bd432f13e098238267129255982d  libstdc++-v3/testsuite/27_io/basic_istream/read/char/3.cc
! 10f658644c7acff9d16eac2107112f3d  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/1.cc
! 27f8eec747b3ad4b754090ddb1fc0d33  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/2.cc
! c98aa31780e4b74b83dc095d8c717381  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/3.cc
! a2f69a9db56acb584de53e31d7b6dc64  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-1.cc
! d1af0e24285bf295717fccec1f602d06  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
! 41a3d76035d9fe3e933ec8e6857e89e8  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/8258.cc
! 10a82a126fe2ad06f6e8d3643218c9bb  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc
! 9e20ab61ad14915321978b19034c8697  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
! 585db93d2cff09c76fa78d5a2f78242b  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc
! 052a277fecd7c1092db8b9d886eb4c57  libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
! afcde2d5ac34e2f0fb6f85061d7aa07e  libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
! 962e4ddf84b4df4768d9a24ee303f20e  libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
! 323f1f4de526118eef8358cf66683eb7  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc
! 5a8044a1164f673a9e711161de9ec94c  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc
! e42823b440d492b82a7c7bf627adc3f4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-1.cc
! f527504366db55ac91a698dfcc6f1ad2  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-2.cc
! a2c562da6172670a0fddabac016abc41  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc
! bded178c01979bf524d647abe2a8f287  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
! 3d7fad662b7722fc83935a6adf44bf71  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
! 6216ba815cf872814092ddf37b5fb3de  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/2.cc
! cf7731a2cd69ecf02ec8df15d81df185  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc
! 767654e64f54d55be8c58bd3f3d63fb4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc
! 41d0c38bf0c9a86659aae0dde6ca7ec8  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc
! 63c513423979a845ccdb7705065548e4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc
! 3588a5f72ed35bb18f86a5a316b767f7  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
! 522a9f6f4d41b6e4188247f94d845f98  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
! c381a5ea79c0b7609e6f27c5b4e06d22  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/1.cc
! 61b9b14339b89a1652a2b75e3429526c  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc
! b8bd9d39d970a4364aec84b02020d57d  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/2.cc
! 11982287dff6345952cae6a8263798bf  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/3.cc
! 22c7c9736a7a4495226d77ff01c58a73  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
! 3c6795d14041aee88627f3762082e6c9  libstdc++-v3/testsuite/27_io/basic_istream/sentry/pod/1.cc
! ddd398fac4c07e3c398023ae81ddf927  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/1.cc
! 47b048c57eb78ac9bb0f56fa16c164ff  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc
! df97aeab8c9640848f222ccf2ad47535  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/2.cc
! 8beca44b9cf88967bd49ae13a0d23bdb  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/3.cc
! 89cd54064798e5c7e6abd7062d9bfaae  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
! 5485f914c985129f482988e0eeda485e  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/2.cc
! 780c683ab59e22524e4f18c9373516a7  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc
! 804d63f24dd536d3fda802aced437f0a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/8348.cc
! 8c0b2e527b0887e88b9a265e191792ef  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc
! 11ca488466de6c06655d1a92eee01fd5  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
! 1ec4df542e2ffed0fee91423f6ce969a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
! 6980b2463b3922e99dd428bcc04ac956  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
! 14f4a3ac22ffab3564feea5768aa39ad  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/2.cc
! 267920418138228cb40e9526e0bdd479  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc
! 3babe5ed508a5f42a32ba144bafba55a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc
! 08726315316063946ad9a15b0ed477c5  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc
! c83921c82b5f9111bdb89d652235d3a0  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
! c8803c0a6dcf6e29d22537051760521a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
! c6b93ab60b2e1a2a673d842db91952f0  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/1.cc
  f839f1109e54bd94ee7c87d858176de5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
! a9b28dba5270c171f449a26a90597e93  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc
  b9907ab1fd112fa27bbaea52ca154a99  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
! bfe054b9e363c20aea5951e680aa8d51  libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc
! 0f1753b7e9d3533f1e1599a8975874eb  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
! 436077dc979b5f63140826a85a570368  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
! b142377a744868669aa38f423cce3a51  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc
! 567171237fad29602ad97f7c73911548  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc
! 066e7620560dc44c25e31eb43f312883  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
! 8b83b6540442b8f6935024b2cae39781  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc
! 628ac96b9e0af3c16ed12ee3fbfead14  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc
! 8a2c6907ee692fc19446d8ea168a9d7c  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
! 0c6d94b1203ac0fb5ec4b826873fe674  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
! 100272418277b9e02c48269fe1c4a69a  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
! 584e8a7d035bcc8f4755a326641bea25  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc
! 84b696f84a6f503e0fe664c12ff871c6  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
! 38577f59b738ec691645649f1605f994  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc
! cbc573822158f7103cde46dd539a92a4  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
! 5f1fcaded2e1a4dce842e3a6c98b6d61  libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
! 49fb6c61d2d4ac075b9c9324f6316501  libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
! 9259d1341c0fd0bc78ffab0a58982e48  libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc
! 34f8925cb11be4f37bbd5b24fa727fc8  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
! d59825a5eda2125b9d570240044a260e  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
! 269e7e6f7eb97c705f248cb6299c8b0a  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/2.cc
! 57bb998b85ccff0ace0cfbc4323b745a  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/path.cc
! baf42a331a14c049dc50bab4682cc024  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/move.cc
! d243d73d06eb6de76b76bae56e04bd4c  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc
  58b32fcc6d893b14587659de8f2a4882  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc
  efe6976e6c85b407572c5d0d1f555a7d  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc
! 670d3749f2b04712e622bf374dc919ea  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
! 7dc3f8031e79785a94ebc55862d94d81  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/2.cc
  888ecdebb025b2ab4a82eb0b6f4d859a  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
! 29301843cc669b8bd53222bf79ded8d5  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/path.cc
! a72c94dbfaf939f14e687132d8a9479f  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/1.cc
  f07ec8dae6b45db16185451bfc562fb7  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
! cf2ecac498a793576291d268578c39ed  libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
! 443f209bf1f7c71798807e7b23ca7810  libstdc++-v3/testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc
! 0e93e8474bca29ae2b537e1f994b8463  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
! 21a749756b8d7b2aece5bfbe2f27d9b6  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiation.cc
! 5d7fce728347f722ac87b0f5f0f2e95f  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
! 43f00f3f33c5a4d028c151d6876f5e38  libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
! 1c76ba6ff5f930edaab224892c4c87dc  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc
! f7757e85064fb36a23ef7c81dd08af32  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc
! 975c6253a1e04fa29dca2c8f0c85f5e4  libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
! 7c5eadfe77a6edefb45268dde53983df  libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
! 2ab0ce668a0433d5fd5c3301dbe5c965  libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
! afff1bf83adf2efa9e19bd7bfe7eb98d  libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
! 088778b1f21d84eea91a945111cefd33  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
! 85c1aa773d4410614457e398cb93aca4  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/2.cc
! 41d7f0eaf6d495fe9e363ef50983be9b  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
! 7d8c930cedffef830feb89601a95b1ac  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
! fbd2f48c048ce177036fa0f130283e71  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
! 5ea7ed2dedf5aa07e97a058d397f12e6  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc
! fcfa76ea9fca94bde4f26de05e1fcb3b  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
! c85d6a5e43b3f42c42f779af3af63675  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
! 0bb7a34cb87e75cb678ac0504c4bdbc3  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
! c07bcc86717d0c345fa6d00da68124a7  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
! c085c03c9513cefc75323939c311bf19  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
! e5970835fe5b6dbedd12d947cbe55499  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
! 5caf9a7fb44c15f26eabc12f122c926f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc
! d54d9bbaa4a72a5cb3015aee745b2582  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
! 0fcf5441bfe9086ac14775cb6f5a42a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/23871.cc
! b680ac2c02a1c166cd397a5b25911dcd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
! 2b69744679cee5a8ce1949f940620fb9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/31031.cc
! 4ee7cbb1a4d6f9485899670509c938ac  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
! 6b7e62fd0a14dd35cb850545632417ee  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
! 7e6a247ce6a73e534438cfa5be82713c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
! 2096a7c23da6b9160b5affa019268001  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
! 026e6c43f9d380f6ac5e8c613e39b7f8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc
! 666ff1dbd6d3fdd2e95eef11271abe77  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc
! d34dafeeea51a1c87483ffd566dc6967  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
! c86b5e77c0b3bca2a13b57f04c03c8ea  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc
! 3d5cd81ca3fc7b9383f4c90f9f69bc82  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc
! 07592a82a8ba8a94f7f7b0d08c769b16  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc
! d1ac6507509348e488dd2eaea1a641e8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc
! b47702728be476494f24467c77f1e136  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
! e4f3857ab19f32dc656e8191d55910c8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
! dfbfed812b557ff91b416008eda1c220  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/31031.cc
! 0feea3a6c14100fbf0ee1e48d1e22f33  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
! c517e97cfaa8d9152f0f3a57ed9b50d8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
! 0366f5d8ed6bb445d53d2fbd4ee62a80  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
! baf86460c6fbc153e6da83315bca33d9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
! f3654875d91e6f353c0daa2af906a419  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc
! 1d4d28ccbe53d2fb7c81247f0ac8b358  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
! e705c76a5343aa34dbbe58164052e95f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 67b8cfc86233d9fa42e04d71e64a5402  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 244bc3f28743cb60c639f618765286ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/1.cc
! f9713430ab7cc69d35b040406d449201  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc
! be04879a065986a93902619a7650ebff  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc
! 3ef60606677004a4cbe2b7838d8f497f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc
! 8e6c2eb5a5beb45d23b9639422e36415  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/2.cc
! f26b19b128799459abae881c15336f3d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc
! 4885a5aabd70e5b9f0ae9d44c612cf73  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc
! 3cc1bca8978a0f7b1090631f78a7f07c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/3.cc
! d2dfbd4f26874dd88649258222dd2462  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
! 6ddef508b715f6a83f2a51ff2bbbc9a2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/5.cc
! aaac341846d66a6fff7e14b3ebcac9d9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/6.cc
! 4a975fded8faddf98260d1092e65e138  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/8.cc
! 20b0fc3c41fb9926b8ee452bada0f254  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc
! f79ab87350d8e994c29f00a1c040a5cf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
! 376dc492548aa433709db0eca0c23ac4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
! 48dbc63de8dd66e1531d5b71c321ca44  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-od.cc
! d8274667a28dda06c953019327c872e5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-oe.cc
! 046b97e58ec5d50f7ad61bc593fa49fe  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-of.cc
! 688b55f686887a0de44b4392e7308c31  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
! 063f9c172cc3936fb470ce11784060e6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc
! 26e7a3f7f28b0cebafff7d4da472d42c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc
! 5a70312fe40879032033f4e0a1575961  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-3.cc
! 0983b6e4161453e27728e6b822881907  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-4.cc
! f02ed3fefe81a202bb284bbb9edb2995  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
! f60112cb71605daf3c263c65c544b76a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
! 97dbf532d6d02b3a26604f7ff060113d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
! 27f437ccf72b172129d7e9afa9d6a772  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
! 3b590ff6ac2d977511aac77948e91868  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc
! 128d597961073c195198de89b77099c1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc
! 124aaa12c980cf7a44ea7a75447317bf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
! d7e1a9804d95500b8e7849271290c83f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
! 384074c961ac89f82355911ea1235c18  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
! 0885eb618a5e5678325b80e619560ea9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
! 0f09ec2948288ba23ce25797043429c7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/3.cc
! 4155c69ee05d24c96a73266e6ff6a8a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/4.cc
! da2db59e8931a215c9112eeb1767f80c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
! d12bfd066b19a5b5d7d37d13bdeb8e66  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
! 2668bc343bc7ad7b5e927013e7f443f7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc
! 991f40504d8c548f76dfc7f5e99a73b7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc
! e3d490903daf2ab18e0e1d285a40a462  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9555-oo.cc
  d175b74cdf90be7b308276fabe9bfedc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/99692.cc
! 284a3c771ffb29597fab5acc816bdabd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
! ddc58db7278116c62e7a1bed7488bc30  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
! d9b55a9f91e4ecf148e18d6480e439ce  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
! 5cbd5a55c578dbe781db7cbb421ba3f1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
! d22b9bfd19ee7bb25ff4aa2f802031c6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc
  ebb7447c68529f67037c0007369c17ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc
  8ca312efc1bacdd7f01c7bde4387eed5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
! 38f307c55c7fc7635bd5cac376061fac  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
! 0104a3e4e111565cb5ff369b4f349f1d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
! 450bbb05a82ef30e64cef5d157e85074  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
! 753092a89e3b0db834ca2aa06a05930d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
! 73d7739a2325ed34200a7054b1c7a1bf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
! bb35a97b0bf6deaa33a3445bc401721c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
! 931f9bcdda95954fcaed8103b7b1209d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
! 26ad7b6de5121cf8f6d27114da2495b2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
! e21d0460ea1157d2a4109cc325703576  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
! 77f6257bb8c158d50548459c2763727b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
! e030e602bf65bbf522ed5b697d40cfba  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
! 9bd655446864cf9e9fc6446bbcadf77d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
! 7e16484af17fe56e0a07270428adb206  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
! 4d291bb59f97fe20e9721d54871daaf9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc
! ac682c2043e9f5fc3a0e22d30cafad60  libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
  1bae61507a695195b3563ba6ac5c932a  libstdc++-v3/testsuite/27_io/basic_ostream/print/2.cc
! 98917a45d90775e48daba4392f9c50ce  libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
! e737403a217039d6412b935805ac208e  libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
! 6761144917798e8086ff84fa686dcf3f  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
! 3d0186a663b22210e415ecc3a2d070f2  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
! 0fafae3698d47ea2f3d14f135b957a0a  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
! dc1846b8b07b091fe89ca5ef4e7e96fd  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc
! 63db9cc79c51db62caaeb3d39be7d5e8  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc
! 518f53b105338a62ccb8ff81c11dd811  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
  83ecf48decd6af498e926fc3a67f113b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
! e9c7b7add78051c64797e2e527db534d  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
! 5116634f6cf1876ddabf27add7b9b83b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
! d911af62f2914b553b745cb1364a94e4  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
  7ddb76aa072349435f647b2c8021dbd9  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
! 5de08763b35e784900ed1fe9f02a20cd  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/1.cc
! 696153b0da3e0752b488398d96b48347  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
! 85e7ae065169a15745d2b34c3863408f  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/pod/1.cc
! 186f6cfc08c1d03d902a14631bd6673d  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
! c26ee47f0c7cf10abf91912d29f7a9bf  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
! 31363ebe07dfad8db311b063ba970fa8  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc
! 667d4517eeb3959228bfae80f8692ce0  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc
! 6a27403a5f3ac7be78dc91f6f4740c26  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
  34b746c25af9062ff603699f54f8417c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
! 5a62b0121837865fee8209de5f302902  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
! 708ea29bca763b0ca0abd521ea1bd797  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
! 5bf7241d1ea1cf55d36a2094d2400370  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
  374b556b2a046b8a0b8b251715467b42  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
! 54370549e396565079b1fae043f59ce9  libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
! a1fa87d6fa1b8cb88b65721a3d487bc4  libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
! 9318d0e9198e86639508dfbdb7c8345b  libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc
! 7da7bbe9584204d50bad13bc59fdd51a  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
! fc110be4affbd5c2d1b7a853b3693c99  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
! a7fadd5678cc29e01b4a2494fdcb6580  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc
! 9397614c03df4ea321aeddb4c93e0e4d  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc
! e22d752b857bfac62e53185e65adb8b6  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc
! 264916498255d19707e5afa87fa7b576  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
! b2e5eabc65e3119bbe96a0cfb47c9446  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc
! 6381161a1ba2f414ef8b58793a75d73d  libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
! fececbb274eea54d247254c759b081cd  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc
! a77ad9e71fd0d59205bda274bef164c0  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc
! 8b11b63540da5eb5926712697412a5ad  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
! 18d08896b82c25325d0c6f5f21954e6a  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
! 81436307e1e7c49ae8b806a2c0b21613  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
! 52e7b8f86ff7736f867ab4bfffb2c454  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc
! 912ed4a3730fde378aa1b10219f6ead4  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc
! 9f6be055886e580ffdd15ece0623164f  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
! bb0b461ca2e60ca6dfa807c0b34b41bf  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc
! 48d98dab972c17d444ea8b1a5b3b5b5e  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc
! abe6ac2af7e814cd6355f9bcd92a06bc  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
! 443d94581b4b4b420ec7a3c64e90cded  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
! 9a976a6e81179742acfbcf17f1112915  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
! 7603a1474a23e65b9ae0734efb780035  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
! 4b1125f236db2184809a85600dd073d2  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc
! 5f545e9523116cb78ca3e1b5cb899e53  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
! d13093c634777465e0eca7353ee8e228  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc
! 3c3862d037c530ea4a4d5cf804251074  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/1.cc
! b88586ad4bfd167ac9de54cc512eb045  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc
! d1c19cf8de7116c4adb52c3de1966d5f  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc
! 3a38ff16b10568d7c80b5bd3966b71b4  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/9322.cc
! 01ff92cfe2659b8fed96ec58d1a1b132  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc
! 2d5fb6510863676f18b4a30873f5f586  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc
! de7cb1612d2e2cf6c8203cd3b1577777  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc
! b1dd6cd26263c1f2538ca9207d12ec8d  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc
! f187adfda46b1f9bfc601c3f72dfbd51  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
! 05c64164ba17fba87d1676d35979a4c9  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
! 2d263aef0140ac5d426d7a01e198312c  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
! c123ea9a1e81ae5c5c63a1fd048d400e  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/2.cc
! 081339cc4957402efe7a46d3a8fc3032  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/3599.cc
! 3e16e599f9556575e715dae9fe02569c  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc
! ebdeced53942e6822268be853bc0f8df  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc
! 8d299e7ae28727f4792b51e7409ba080  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc
! 6102d7b86f32c83993fd93530e370fed  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
! ed24e64a2966d05e7a34f6805d7061d1  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
! 2e5e1f2ece3ebb9c883e735b6d9fb07a  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
! 6a0067733b4f1f558ec3fe81bd2dd1a3  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc
! abee036f0add6198a6d8c0cf3da162da  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc
! 2f9564c766dd63d9172fc9a2ecc775c4  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
! 42674d67aa9650a8cf3f223638cb88fc  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc
! e668a8bf365d4a2115dad23e4be9a0cf  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc
! 253cd1a929c6970fa037af67c2ce19d5  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc
! d3f179052eee74b0bf78480d9ad1f987  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char/1057.cc
! c1dca2b92015bfa63d9ae1043daf30d2  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc
! ffce028a929e681e4ed93d81fef2bcd6  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc
! c6a9882210ea9aa92253c5f8e3b35f89  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
! 3ab9f474d998ad8b45f9c53b89c4b0aa  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1057.cc
! 77f5f45c53ec71e409e3208789ef8384  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc
! 0db342a0eebd385989ab02ac00188709  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1057.cc
! bc081fae65da75bab94fe6ff3c31d946  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/char/1057.cc
! 3604b61650b385850d6cc9e3d23555b1  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc
! b33b4e8112db1644cdf8223fb0ee61a5  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
! a8cc33fb968e9bee9082500586c32ebc  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc
! c665b53b740376b0349e9f57789cbc12  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc
! afc5e1061cf2c2b663cd0e772a87a7d1  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
! 0502d1f2f2837dd919b2cae6e21c2aff  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc
! a84eeb8b5f149b281e1e36025db8b460  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc
! 13267c9b67720320c0b79da42824959f  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
! 51c3cc1c826b664be1ed51b75a3db1d2  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc
! 2371c77506d528d08d0499c648a7ea5f  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc
! 1eb43ec6f74fd2ed2d6dc9646dc43b39  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc
! 5a5596ccb6564a24ad032739b1e1e718  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc
! d4f9a65fc9235dbd17598942f7a62f9d  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc
! 6b365d398229587482a9cf10d254f8ad  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
! 6e561ba0909cd20dd5e358237f30ad4b  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
! aaf9c2cbcb8f4dbf9b3d5e21b903d792  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
! 2271ff89560d03dd382d5353e49bb24c  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
! 0f8901fea5f0a8735dd9da8049c55c8b  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/2.cc
! 95484678a14bde42f2b93a506da390e8  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/26250.cc
! 651f70f02bd7b8ec6d791b1ffc9899aa  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/3599.cc
! cbd8f0a0a2badcfc3f04bb4b6e9b5c6d  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/9988.cc
! 134033e6af44a9bc50dc31f4c6d0b98c  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc
! 4d2e9b29735130465e76e060403d3ae0  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc
! b749237ed411f7afbd09e2ae040047c6  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc
! ac06dc0f2b3031b75b1f89d20e53b8e0  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc
! 011a9cc8d678d42b71cdac8b742c8392  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc
! 19d257547b5ca67d030c268048bcba41  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc
! 5b0a10790884927403c3034c46edbd71  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc
! eb34a480768a8aae8a305470598461dc  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc
! f842253eadf3142c50947cca2e3faef6  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc
! 4fdc02e95d50c67e41c3dbf6cab14a8d  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
! d75cc0bf9e2f7c90e8e5a0bc4241c863  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
! cabfd6ad384617828e085d9b8d9dec4f  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
! 3b6bfcee44df10926a9ea461670a1afa  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
! 9431ae6599137378d6d29612e80087e4  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc
! 39b0328ff87fdd27f2ce89bc787fe627  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc
! d8ffc517bc00988722fd45601242c344  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc
! 1bd801326378216da2d766aa064b2064  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc
! 47df229b20d86324d583ae9b81e2cd72  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc
! 51a91fa313e89b22edd09122f84fd108  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc
! eddc229c1f6e1d0c474b353f8d9c3cc7  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc
! 74e29b4870f68505b92075ba5744587f  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/2.cc
! f37f26db3d575ea01ca5aa5213c971ca  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc
! 14c3656d20aa48d0724fe0835f629409  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc
! 6984a88a739af2d78b9b074b0b788f5e  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc
! 6e0ec9dc1e630c54c8ce23119bf6dc3c  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc
! 9f5706de1e0ec1798b6d7fd7b4798cfd  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc
! b1c2308eeb4786b2dbd033ee1322a5f6  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/2.cc
! cc15d3c5001271468a9c3b906e40a6df  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc
! 3e8c0cd801232d311ab7b163d348c2fc  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/3.cc
! 487f8db87cd5b782292ff5615d371b90  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc
! 36e21cc4ee533b786108d3e67d24ede9  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc
! 072ec78bf59a24111b6454bfd7ea02ec  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc
! 5355046f0412d8b7776dd6e34964e3d8  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc
! 59c5cde557ee84e3b75638a17fac7ba1  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/1.cc
! 00f7182ff6b9728958db17baf6c551c3  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/2.cc
! 577e2d4b593e40f908ea0733450fae7c  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/3.cc
! 3c164357a75ed1b1492e13c797b5b8c2  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/4.cc
! 666faa804df4f2bda4bed77ec04dc506  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc
! 38f7b34b8d04056fb5834b4f482781a8  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc
! e1ebb2d8ceb9b647a161d7d6deab690a  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc
! 9ff8b6340328ca6dae0795807e9ab3ef  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc
! 472ad0fbfcec23cfab73867c72568288  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/char/1.cc
! ecf72762010ea2a4ce0f38d52a57ff7e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc
! da91572bd197e777f777bee9591865db  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/char/1.cc
! 72ca1b4dfd506d28e939838e9e1575c3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc
! ece25ea10b68992757110686ec234b77  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/char/1.cc
! 3cf5cf86408cb05cb3c691e0fea6ca7d  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc
! ed0f181319c2dc5f7739740080d22ab8  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc
! 200eb3978227aad19c2bfa19999dd611  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc
! 0c431d60e2bd178aafb2824e1bab93d2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc
! 851bace4232050a2432323f9f58ce65f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc
! 2d6488c4aac9714a66a7905149279876  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1.cc
! f29827d70bd1698ee80d925b76f0a59d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1057.cc
! fa958f44e3eb02c6ea510cd4f6693cd9  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc
! 1cbf8c9228dc249bcb2cc027ca862bf3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc
! 322eeb36fe6ffc30a12441c053adc2f2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1057.cc
! cd9ecd04e1c6aeb91d7d9385c0b1a567  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc
! c11bb47da89752795c346b70af2ffa4e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1.cc
! 136c3e66549511567b0a515936dc6e38  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1057.cc
! 328be2838b0efbba1b553bdcb47cd2e7  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc
! d02768a383f43d2bdb10cada8328b159  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc
! 56eb8885b97731c8e480469c9fca4246  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
! cca2d2ccbbea4dda9fb5c4f3c39267d6  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
! b3ae8704753579a0002195a186322a0d  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
! 6096791a50e73fccc36caa94a9c87920  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
! 161ab5a9afddbade1f0f4cc148e37a14  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
! 5b154da1ad402e6b2ae093911748ac19  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
! 49f43ed26b9e86829e2b4ecbcc905af2  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
! 540cf3a303cebdaa21588babde0fa5f5  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
! c029ff2402e43ff03c95740c9c110aec  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc
! 03ff572bd9c885eb5a5cd1f663138e21  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc
! 80632d158bf7a1514ef89261415607a6  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc
! ae0de236ea76e97ef4f86d4ed76d4658  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
! 38a0e5b5dd223f7122b3d8f865df1342  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc
! 6bbd85a9b71390eb727c59a118deb142  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc
! 3225d815db363824124d132b2bdff13e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc
! efb5367f054d0e2b7a02a043bfad66c9  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc
! 246a8bc222f0a55d87b3e0ae70cd9dec  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
! 18870d492751518ae14a82b1ea8569d8  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
! 752a6617e90399af3848ff4b02bf5d4a  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc
! 4cf1022e96b965865fb2152857a30b5b  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc
! 72855916cff4bba8ddeacc2d31cafe68  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
! 7a8d48fa4d01da5584009e5106e4426e  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
! ff3fa85936367b095a25742cb145294b  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
! 4208616181dc58a38d28f9ea7f7dbcdd  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc
! 89d74fe0c3c616bee86ecafa85136995  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc
! c6f88dc75377dcb84e96a20839692a73  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
! 14b094b241a9866f0a786c200225bf11  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc
! 0cc2f375e9c6ce532c3d8cd9bd06b149  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc
! f58329cc90221048baf1a06fac07aec0  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
! 86561f853f8b836e1b63059aefae1940  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
! 0ab0d1791494f7dc9eb077444ed268b6  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
! 227fe67d475de3c69dc3dfc268913884  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
! c17bb65332ab3dd45398c827fe6a3d9a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc
! 2687eb0a0f2122843ab0aeefb9814a34  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc
! 18f97aaeb26747270dbce26681ab7ace  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc
! 70dd63b6b0dfced2ad188de08bd7ee8d  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
! 877a98b17e1b87f84d02c723452e6d9e  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc
! 9a591d5b551043d3cd2f07d71ecec9f1  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc
! b37ef7e1949fc8fe4eaaa5bfdc996a71  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc
! 8d398f7ca6f9d3813f183d6bae3dc13a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc
! 29e4e848f478fc39a466ccdb95c2c8cf  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
! 2ff67c28bdba24c793f838239dde6575  libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
! 5fba12f7aca4a1edf33ab22b8d4b6e55  libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
! 70baaedcd3cade5a5c25f209871efe04  libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
! d88e4a9fd8846a7dca861ebe0aa3d571  libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
! ff79380afa0728303212c22208a63e68  libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
! a4614d392b5acbb3796b79939cb5e5a5  libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
! 9ad457ceb040dcec2f98cedb74a6f5ab  libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
! 70baaedcd3cade5a5c25f209871efe04  libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
! d88e4a9fd8846a7dca861ebe0aa3d571  libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
! b9398dc263155ad5a384297bf5673834  libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
! f089f6d79280ba27d5970728c9547b24  libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
! 196ee909c6aea9f701cc4a963a164d7c  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc
! ec756ea61fc3041c9e9a8651108196e9  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc
! dcaa17c99fca79cfaec0b231fb64c21a  libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc
! c5a5f4054d918d25389a38e43e598870  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc
! 33940d3d4a781effc1b43653a4f377d8  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc
  332c803edbdff9c841b88227cc22332e  libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
! 49bf86eac7b5b6a8d21b39a0c214af81  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
! b8deaa8852d28886d65d3159b18583b8  libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc
! 87387d500b0dcbaff00f6481f75c1773  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
! 8b77320325e081868ebcaac6f7831105  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! 5e4c6c3080b949018ddcc973e07a09d4  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
  46997fabaf4a1fd147c82cc9004cf051  libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
! c3004b2333f0602855ef3fea926469af  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
! 1790fb9cb40a1f0f720b3fc15e69f789  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
! 8e02e46740c761022f6f32bfa2166c1d  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! f114cc7a36247c423c6ac8a561782d50  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! cc97f63a43df384b6daadef4016481b0  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
  c4a0f1988ab64c05d8acb1647b35c6b6  libstdc++-v3/testsuite/27_io/filesystem/operations/bitmask_types.cc
! cb4b3d456ead29d94bf3b5767d4b6877  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! 1d1b4b77926114fce38d0b0b554b15a0  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
! 4f37dad736d5830dcf3282c65c29c238  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  10b6e95add9984bd29138cd25bc3a19f  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc
! 109310d29e04f76e6b1ff071033cc77e  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
! e352fdad70e1a6320e74ba1e9fd4a706  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
! b1f8b3755d5e961b4c0964b36eb92914  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
! 1f18e7971e7b3cd2f6175956cafe0e41  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
! c8bdaff70360a60269d6e8a996aca443  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! 69965d0015b9d203a1cfbfaaac52c1f7  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
! 04c86b3afacdc145261be0d64532227b  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! ec03f03a8b2b9270baa4037f7a176e20  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
! 76e17e2212f83c5585729e958147caab  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
! 09b9e11e72efa1a08e2d8572058d1f0c  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
! cecb46fce2cba2e40d35bdb10f5f2047  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! 79b89b081feab625ec98a379d0affc15  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
! 3758fee1ba06fba8ecf9ea5789a4f69d  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
! 40ddc534166b73723cb3cf2f17775536  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
! 18abd8c8f676eee660331074eeb24b46  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! c562c13d312277dd683218b9c8293552  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
! 3ffca5f28a466d05823facdae80f605d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
! 8328a09db3e4efe031a6a2ba359d1c7b  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 641661017a1404a9d3867cbb09e3b531  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! 6368c9e9607057138337981ed1424216  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! b2df1f29a4d5c0a766252c28fb48c690  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
! e4272894265d6a0c5e1f3f39aea705dd  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
! b2970ce50b620a0f99e06931534c3d14  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
! b354aec57495879f12015eeedca7bd3e  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
! 6aef0c5f9d0d8a832b7c2868db251cba  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
! 9204b3e9caaba97beb7202b881a2082c  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
! 5ea2a27db7c0138d09dc975fdbc21f51  libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
! bd0b3ffbf0b5d42a3102341682967b7f  libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc
! 69a1e1cd94571e915ecad1418d14dbef  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
! d9c79dd452a58cfd063e49ff476fe370  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
! 841597b8188f1acb8cd097ab51e19134  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
! 0bab77a18fa3ca7723e4133a41f95bbf  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
! a2763ee4993b7a1eb74183a35b05454b  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
! d6cf66594b90a2255355df35b0276d5f  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
! 8dc6bdd998bb023e72c439e2cdb12dfd  libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc
  a22e69eb2c027825b8fb3e0e6df6a97d  libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc
  3bc7c7fa91cdfae8b85e98c050b994cc  libstdc++-v3/testsuite/27_io/filesystem/path/construct/102592.cc
! d97498f04c005f4a31da7e2972e0c26b  libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc
! bd9c5f697a418a609546d19eb4e3dcff  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc
! 1e4d3a8d363e35b211f3ec4dcce1fbb0  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc
  7e3f9d185f69161e92a1fe6e162069f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc
! 2680a78d2f852fba3c2fc535cfc55d86  libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc
! ece59cd95a760acb397eab8866beeeb7  libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc
! 7e47e2b4ee076be43e7ef1e068603ab7  libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc
! a328cfa8c9e6f44df8b1b3db7d98afe3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/locale.cc
! 556b316187bf945dd03cd31223f4aeb9  libstdc++-v3/testsuite/27_io/filesystem/path/construct/range.cc
! cffd1d3a38d2fa6c467bd78c7493bba4  libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc
! ad821503f4290f68de6737d9645f2ca2  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc
! fd22923740f046e7d35f4450b7e8665d  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc
! 5a846cb1a4e9009ae5691a24540f0dd1  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc
! 9e41ad44ce0986d6f2cdfbd76674b532  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc
! 5d547bb36a475e482ae08a6cd72c38b4  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc
! 95e3d7c436c02bee323437d82be3d14a  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc
! 08051fd61f98309f5322ec33d7a9b83e  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc
! 2b0fec0d2cb6169bf98d54ba19a6ca28  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc
! 5949d91392f0f47b291992a5d8870eb9  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc
  8f37bcc6544c96dc14a1dda07d716d75  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
! 2c32782c98ff7bd0d7c28f954da5e523  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path.cc
! 37f45d2abe6ac580fed0d4704de88a51  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc
! 782387a3994c980d729fe8a9fbed0fe6  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc
! 5df411a80fee492b1c9fa0e0ef2fbfa7  libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc
! e2537955c7c695b6ee57ad0d3f1600e8  libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc
! af0d0eff128a7d415f016b32526dda9d  libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc
! c2c07f3547501abfd5bdaef06ad1a5cf  libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc
! 5a2ebda0faf2a038840d0cf1502429e6  libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc
! fbf5f0e67e282961f7342c8ecabd8c41  libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc
! 6ad06eaf4da562555c6f24e8caf32ad1  libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc
! 5e630c490ff113924221b5f76acb8644  libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc
! 25515fb226c1c25f386bf3bb563fd3bc  libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc
! 87ef6ea550704f9fb38783baf979bfe5  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc
! 346aeeb5766f625d868a66e4c2f1bca3  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc
! 9d5b779a9adaf271e13799afc86bd567  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc
! 301983a4df5f74a8927a99c85ab5bc50  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc
! f2137d1f94e085dea015de968a9ff931  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc
! 70e104f0be5fd586be7a7f16adc0f8fa  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc
! 718937e90cd08658c91f8d28b0bbe607  libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc
  18be18b6013e71480b71b201979f3916  libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
! 5a9fed39fc27423161826ebdc588c669  libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc
! 426b1ac4a6278ab70bfd9d3806818cd3  libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc
! a29a48e3f573f8b543e5d5b289dbc5f9  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
! 51c2bdb85adbc7ea64554994a5bfbca6  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
! cfa1f7460adf99767a32176a2ff3419c  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! 794f9379dd4188162c675ab78b4c9d12  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
! c26d3cb3091abc69924e9d05c61d3449  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
! 3c35b0a1830350f041d6e3338db874cd  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
! 765a0327b22ef182d6a20ff7338a3175  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
! 641aee17653a2301baf0cb761b712432  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_filename.cc
! b1a52a15da8fd5f103c6b34f1c82e29d  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_parent_path.cc
! 17ab412838cff3abdcf7c8460ddc0fed  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_relative_path.cc
! f75d4bedcd47e132d9cd3292998c249a  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_directory.cc
! 463319c6e69919334899e3a1ce808d80  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_name.cc
! 38929a67ea1192381d1978376d9ac119  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_path.cc
! fc51cbee843135bad383ca5f9dce6a84  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_stem.cc
! 0e1d985a533d63983e7297ab15b87936  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_absolute.cc
! f99f5a9d705861a26c3704ca5da3f5c3  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_relative.cc
! ecf760b26e8f3c7bcb2933c88f9b12ed  libstdc++-v3/testsuite/27_io/fpos/11450.cc
! e6bd3b1841bec35d5d3fd71479f84877  libstdc++-v3/testsuite/27_io/fpos/14252.cc
! 7fb10435866d20f35e76be32e50f7aca  libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
! c9bb816dd7b87793a6cd45feb2ca985a  libstdc++-v3/testsuite/27_io/fpos/14320-2.cc
! 253b5440033964af24cf52b336af8b09  libstdc++-v3/testsuite/27_io/fpos/14320-3.cc
! c6dedb73ca096bca1f623173c3886efb  libstdc++-v3/testsuite/27_io/fpos/14320-4.cc
! c2df050d95f20a950ee57a4a0a1b6bc9  libstdc++-v3/testsuite/27_io/fpos/14320-5.cc
! 5008c8e32f7d6074268a97843dd8b0fc  libstdc++-v3/testsuite/27_io/fpos/14775.cc
! c706d77bec2ac8ebe91d4460d2f8eb48  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc
! 94165b861d4864537b011f5b8cafc3fb  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc
! 645dd90ed07b1afe960553ad095e2b62  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc
! 771fff6a1c8c6d4762e8cf514cc50046  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc
! f3c27efb11f4bf989eccef8b4cbde896  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc
! 762672f7a1cb153a5372e50979a71672  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc
! 0af9131581942ac99f5fa920fb7c1f3b  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc
! 7e1ec3f8521d863c6e587017dfe1f513  libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
! 98cdd88a4322de3761fe42bc7b6fb9a5  libstdc++-v3/testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc
! 3a0d5c7ee1067340549da7c775dd6f5b  libstdc++-v3/testsuite/27_io/headers/cinttypes/types_std_c++0x.cc
! fd1d8c2194d13eb73972815e3df9fdc4  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
! 04ce95bc69fb361f0b9ed6b6a61c76a1  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
! 7fbfa82907331a706544a4cb85c12354  libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
! 5827abfa7a3b1f921f26aa9bc1089f54  libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
! 7e510b9ed7a26c95dc0fe343b459bc9e  libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
! f422a6d7ea1042a43b0576a7f30b6f3d  libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
! 3d5323867286a267c237c8687ec08f11  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
! 22d5b1264ec60efcac5396e705a59687  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
! dff476a40260ea1d41499a4d9a1dc431  libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
  563e1beef4d8fc03f62916396fccea88  libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
  16eebae0b45ab9320a5df94e03dfa4e7  libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
! dc62241fce8c23c4083b7ec1f29b49e2  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
! 8cce5d350646ba2d98abe6abc18dff47  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
! d3814d3d47f1342e0ef519e0420dfab5  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
! 4c1cc797e3baf6f7d95261b91e4023ec  libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
! 950cc6ae6462e9fc8a2b7de673a1db45  libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
! fee5dcd00f0f05fb8bde8d7a71652f4e  libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
! 7644308dbe39cf5314a6618f540802c8  libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
! 37bb88e75c045567d0c8170261853697  libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
! 1df81c0672cc34f5e7914e1cdfe08b8e  libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
! e84e149e766157a466f9c374285213e2  libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
! 6dbde6b146666f55d5f0a16c23d27ca2  libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc
! a2a28bce7b4b617997b4ef0a9a049662  libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
! 94be1e9ee572ecce699779f18a14f6a6  libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
! 1f3fbf4ee8970f9391ecdcaaad82bf8e  libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc
! c355cecef1ea32072fafc285f4ff7524  libstdc++-v3/testsuite/27_io/ios_base/failure/cxx11.cc
! 89cc2ff868d8169b86ba811a146d0831  libstdc++-v3/testsuite/27_io/ios_base/failure/dual_abi.cc
! a0d3de10c0fe38daacbcfc317ba2b821  libstdc++-v3/testsuite/27_io/ios_base/failure/error_code.cc
! 2e932fd1df6980792958f2fc6b51cdc8  libstdc++-v3/testsuite/27_io/ios_base/failure/what-1.cc
! b545ff35fdf2d4cdfa03486b9139322d  libstdc++-v3/testsuite/27_io/ios_base/failure/what-2.cc
! 60e6e7160fe2b4430797a630d5b25fa3  libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc
! b105c33626efa976a9440b8fe2910033  libstdc++-v3/testsuite/27_io/ios_base/failure/what-big.cc
! a3e44ac248231f649765705f687050fe  libstdc++-v3/testsuite/27_io/ios_base/state/1.cc
! b3ef0bc9b48f109224671e83615d03d4  libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc
! 346223f26498d5826a9a896c17128847  libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
! c11b4bc4dc5c6a94355b4b436ccfc132  libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc
! 9a82223397ef26de3cb2450ea05ee035  libstdc++-v3/testsuite/27_io/ios_base/storage/3.cc
! fb4d081c152e35e33c7936c2bca59241  libstdc++-v3/testsuite/27_io/ios_base/storage/68197.cc
! 0316685c64248173f75ec670964b9708  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
! d801d2dcdf9fa1051a74f9ee571c7672  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc
! 3ea969b549da25ad4dfaf0bf81b5537f  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc
! 6aa1911658c5e48634b522a5183a075a  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc
! b3c32a6314dc1e38acc88c932945e3e0  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
! 9925c6c11280a8f3350089c5a088c4f4  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
! bd993ab72b9c76da098b0a30d9c7a2d2  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
! 00b2aad84a5b789eb902576004fa1f4d  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
! 97523a0fcfb8904bab7dd4434d185d76  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
! b96cfc1e0656069fc8c71dc3c445a713  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
! ded7eef52c8e0c46d4c8e0bc3305c4a0  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
! a02ea99f6be016fe4e75204f57b441ad  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
! 1e325a3744482f71eb9dbd0ee970942e  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
! 3c1501ff9250c065753deb5659db5199  libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
! 6262d8d581e3ebe7a8217362432bc5cd  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc
! d67e4c466523e8aa8c81798e76f1d843  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc
! 1a734624013ed784004fbcd885e75687  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc
! a6c35ee770858821661385d72e57ac4a  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc
! 9828a7df6a3a56a45fc99f0322809b3d  libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc
! f2c7f4f9afb593d8b185495e7e03fa65  libstdc++-v3/testsuite/27_io/manipulators/basefield/wchar_t/1.cc
! 454865e0034c8074585a62ff5023ca35  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/1.cc
! 91d4eaaf5970272a9eb14032fa97a49b  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/51288.cc
! 056c5da0a526df04d25b1ff452a5e4eb  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc
! ce3eb3ccc7b339b74aa03f2b94010be8  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc
! 58432a08c48f1fbf89d1cb539bdff636  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
! 4419be4cb2e37bb9739fe691ad1912b4  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
! 498df9b93ace141c21d16e312b974096  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
! 0fb63863eac23591b14c8ae12f829c15  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
! 09ee7844da1ec460b05d5a58956c6c38  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/1.cc
! 37ed6e2db4109dd40a983a2087cc718b  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/51288.cc
! 3fc4676d0454161e6cd285791cd97d43  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc
! 22732f0533bcd2f507b2f24bbcecd006  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc
! 7afcc5b1171f079dfb7e0da6d949e719  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
! 4df62e8671ab311533feb977690d66e1  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
! f14e0316bebefb6f125fc071b2ead9e6  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
! fe373fc9aaca598bcb3fdafa3ceb676c  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
! cac688919b1669f2c78ab76f12086624  libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc
! d8a570bc7cd144dd526a653777686a0a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc
! b44e9e5800c82bfc1dc35ed5cd255d0a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc
! 4179785abf4325bf96011bed619d0f07  libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc
! b31ccd2d8df0c4099fc4071f2f8cd7ab  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc
! dbe9390f64c1120ce8e10ab15fde1df4  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted_sv.cc
! ef4b08ff502d09b5638ebc18885e40ab  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc
! 005a69c959272b2f0dbdef76006faea8  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc
! e422f00620e6f0cfd05e714e5f41f7da  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc
! 9f39fa78b26fa7c978868bbe71b684fd  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc
! 561330c438a11e61ffa3cd99b647f71a  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc
! bc77ca8307ff2d75a7ea2fb8a68c914a  libstdc++-v3/testsuite/27_io/objects/char/1.cc
! 2e8caca5047404ba5cbea55d67fd3236  libstdc++-v3/testsuite/27_io/objects/char/10.cc
! be875f448476c6aa3944364998add9db  libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc
! e01b9aed2fac661dd73dc334277d1117  libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc
! 8fbb0f9a91916f45c746b6d95b8b386e  libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc
! 9970976f17cd8f1dee2d99a1d605b265  libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc
! 53aef638ee05d69df4851c71dbb9dd79  libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
! ba5ca57940e57f3201108f6d8c965a0d  libstdc++-v3/testsuite/27_io/objects/char/2.cc
! eb1956b75e4e6831b720f55cabdc746f  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.in
! ad805f32baa23dadbbc2679f30818fe3  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.in
! b6335102d1fa1f8bf34cbd680953aa41  libstdc++-v3/testsuite/27_io/objects/char/3045.cc
! 2eb77add287d3b6360dc6b94c669aa0e  libstdc++-v3/testsuite/27_io/objects/char/3647.cc
! c9ce44908dcf6f707686a56e35c17e4c  libstdc++-v3/testsuite/27_io/objects/char/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/char/3_xin.in
! d482b1dd2d3c95c7e35583b9949c7cc8  libstdc++-v3/testsuite/27_io/objects/char/41037.cc
! 94e4e1722efadc984bc506490bf9470f  libstdc++-v3/testsuite/27_io/objects/char/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/char/4_xin.in
! c55e4b8f60ce19ac4ffab683e5fbe0f8  libstdc++-v3/testsuite/27_io/objects/char/5.cc
! 7206810e8c8c95350a97b5fafe69f039  libstdc++-v3/testsuite/27_io/objects/char/5268.cc
! ee629dc62ac6e038ab7337340d9712ca  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.cc
  81dc9bdb52d04dc20036dbd8313ed055  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.in
! 5b4c5cd27a0687fcd7f9318496fd5cff  libstdc++-v3/testsuite/27_io/objects/char/6.cc
! b3799b5b0f6b22d2b064ebc7ec99e8ca  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.in
! 763a66863b06acda295113c48c8dc178  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.in
! 9fa89b61318218da818315f8c3efe6b5  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.in
! 41d214157756b1bdb9180fc85c202965  libstdc++-v3/testsuite/27_io/objects/char/7.cc
! 88dda9b7f210da516090e1832e1f303d  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.in
! b98e1a5d9443ed64ce5a1d4f434cae58  libstdc++-v3/testsuite/27_io/objects/char/8.cc
! 128e3394d260c4856914a4c0675aebab  libstdc++-v3/testsuite/27_io/objects/char/9.cc
! 603d094ed1412a65d5f783371231d9e0  libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
! b644773ce18330031bc0d59c6167effa  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.in
! 981685daae4267a6ea20fcad49578e4f  libstdc++-v3/testsuite/27_io/objects/char/dr455.cc
! a56170dbdba99b4b8e86f8481d678867  libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc
! 4be31e3fe71986c1b7b15f7069e239a8  libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc
! 9d0565e4f5c893a6ad890bfc059cbdff  libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc
! caeb0b79c91e1ae6648df83a33eb3880  libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc
! 0c16a44430524adfad94d7017b9d6ca7  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc
! ce886be14ead17f197543cea7225dc31  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc
! b6f1b9c78b41b69c1bc54e6badd772ee  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc
! 7ee5bcb6f6f1396a3ecfad2be26d9cb8  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc
! 1550ddfdab5a82f6198941cb62a69cf9  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc
! 1ccee35a4e01556fca83999ff88810d3  libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc
! 0bc29860ce1a43a1ffaee14df048c217  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.cc
  d577273ff885c3f84dadb8578bb41399  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.in
! d5123b18d47c5f525af13e04272ca512  libstdc++-v3/testsuite/27_io/objects/wchar_t/2.cc
! e8f3cc6052c3f66b569193e3708eeba0  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.in
! 4e8ea3305744c531ca0440fb0dc2cb3c  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.in
! ba109b2a60d16f6cbd4f8eb739154a3a  libstdc++-v3/testsuite/27_io/objects/wchar_t/3045.cc
! ab90b05934492349f10b018902efed20  libstdc++-v3/testsuite/27_io/objects/wchar_t/3647.cc
! 7bfa4a9009a0521864cdbf838df533bc  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.in
! a0a6fd4ad5e7e3e08857c64c4555e61d  libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc
! 942a79f6f076f065ac365e2870f56f7f  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.in
! 856f519e964b48a4aa22119ef021a6c9  libstdc++-v3/testsuite/27_io/objects/wchar_t/5.cc
! 24710b7d1278af14382a18281a5900e0  libstdc++-v3/testsuite/27_io/objects/wchar_t/5268.cc
! aef7cbdaa4c241a4c2a8169c5c9a1a19  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.cc
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.in
! 51562ebf4246cb3095d639b7b78b942f  libstdc++-v3/testsuite/27_io/objects/wchar_t/6.cc
! 86659accee41cee13a174d1198d17de1  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.in
! 5ce858cca41ecda9c0d1ffc234b0ca95  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.in
! 986f795d3d9486f60dd71ad5c14fbe47  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.in
! 4e1432f3e91f50e1d413cd43b67f9fae  libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
! be8eef6e9ddb10cf16fa321ffc92c9a9  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.in
! 2fb0a71b5f670c5e67662e8ca73ba20f  libstdc++-v3/testsuite/27_io/objects/wchar_t/8.cc
! 6c6a93755a669dcfc3609cdf99d4067a  libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc
! 96a11dfa332bfb13ca3027bdf6c8213a  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
! b40de0dc8675fe32a019df24e85b8328  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.in
! cd4006f591d8b40dedddd2cbdaa5ab4c  libstdc++-v3/testsuite/27_io/objects/wchar_t/9662.cc
! 28613ae2987acee0efe4f1ea6a3768b2  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
! b16ca97a127484dafe83aa10e1ba1de6  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! f3927c1ad189aef93b673255bda6e2ea  libstdc++-v3/testsuite/27_io/print/1.cc
  a439eaf7ea52a89548ecd3344bd3c08d  libstdc++-v3/testsuite/27_io/print/2.cc
! 802c2d2f005dfe50ca9dc609b585af68  libstdc++-v3/testsuite/27_io/print/3.cc
! 288394f5bb6a16ebf7b629b2ecd1d30c  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
! 73a09176587eb419ed50762ec5d35b69  libstdc++-v3/testsuite/27_io/rvalue_streams.cc
  9f91196bd2ee848a8c2cfc4258d112cb  libstdc++-v3/testsuite/27_io/spanstream/1.cc
  d8cec34c2a6b668a6dc232e2f6df1ff5  libstdc++-v3/testsuite/27_io/spanstream/2.cc
  33aa6ce2c2e3d3959e5a01a4971407e1  libstdc++-v3/testsuite/27_io/spanstream/version.cc
! 543694372788e31d27b953c35a5cb3d8  libstdc++-v3/testsuite/27_io/types/1.cc
! 0e9f1451a64852d166a2a1d862bf4c3c  libstdc++-v3/testsuite/27_io/types/2.cc
! 5d3c1a17c72f684739f4a3dfb9d0e92c  libstdc++-v3/testsuite/27_io/types/3.cc
! ecbcdc3c6d5d5c9f9a454b3e3ffbd567  libstdc++-v3/testsuite/27_io/types/4.cc
  2311cea628cce5b052734c24d5a5cae9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/107376.cc
! 67ccf2b0cee8cb5525edbeae7a75d962  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc
! 89fedef6923835de46f9300172708c19  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc
! 0dc8e7a56ad12a214604946a079d4964  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc
! a78a0425021466a319741f5048cabbb6  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
! fea8ffebaf73727632118301a7828d4b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
! 9e1fd06ec6be193a1293f7d6328a1934  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! 3d41b941cf9432ea7eb9ce360f9ec308  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
! 586405c03e6abe6151a225f2cedf502e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
! 5df24d8ded15bf0cae9ab45fd0f586a1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
! d5169eb7b84675c8ff235ac98c0b919e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
! 87f987f4a0cd88a014cb0be4ddf256eb  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc
! c4fb6e8b6452b7000ca7a5147b56eadd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
! 0f3702702a01a689f2b815cce37a8383  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc
! 1e14cfbad58b6316f76d585f9ca7fb6b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc
! 4f84df250a7ba7566a859dbeb091fdc1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc
! 86e38bfc1fb67219849e7eeabae4e56c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc
! 08979870608f4706134c47637d81168c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc
! 2eed31c9d4cca1f2665b339c572daace  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc
! d297b4df1e74511a34e980410132dea2  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc
! fa67b0a0d287c6cce3b7ca625c776daf  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc
! 8699264521bbaa383329e3bd6933da5e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc
! 9b266d0ebb7bbcca0bb60242ef064a55  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc
! fe9baee95159e232fcd8d675cb2535d2  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc
! 23a2395313e6c4f6b174a5e68df28305  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc
! aeaed531d2ac57cd592d87441f38333d  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc
! 7325843bada76716fc297710e77a33a0  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc
! d49926b6010365fe905bae97388193db  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc
! 3547b16dc26554ea2e0d01b8708b0233  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc
! b14f43ffd390fae3081df8babaa1beb1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc
! 898ab4310f59b5fb27127bba2a26b229  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
! 9ea10c17c5eccb678c6d6db14adce3f1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
! fd50b117bc67e4d2e29a395db585083b  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
! 7c0f0425102d045e3baf95aa3e878b06  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
! bfe0e8a522c01ae62d4d05cd55fa509d  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
! 2e8156cd00d216594eff35aaba36feca  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
! 95d9ffc344116112e7b2e97e1afa2d7c  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc
! c1ecc73aebc0f04ea3b7031c1ca1a551  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
! 8f25a8df1670ed8d8301f67bbcd92dbe  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
! afc52c23ced9f8cbb01214824e155092  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61424.cc
! 677e33b8c07fedd41a84557ec0ab36da  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61720.cc
! 8ae139f046f47f6fe355c45f37058fa4  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/basic/string_01.cc
! f941b4d6c4655efd20cdeb702c3b932c  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/dr2332_neg.cc
! c1ba40d4db9f00669d868b073317f2de  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
! d6d1cbfec95c6727f054468112ade45f  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
! 7ac246b75a6168f8baf6178b9aed7615  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
! 9c9b7310d908eb726dc8e4570b6c8f18  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc
  5a7641749deafb9050db1a58a28b53ec  libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc
  be5036bc868f3f3488b30d40a412c9c5  libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc
! ac4a1c2b53a40e9c9017c876f7102ef8  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
! 05b339ad6b0f4ef8ea291be13c900a59  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
! d8d2bbe0f112853de1bc3dd7c1c188d1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
! e74444eb7fe42fd71e25a707c105f68c  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/lwg3296.cc
! cd00d3b63468e36de414a20db6e86d7d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
! 90a462330abefa274ba7fa7e6747793c  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc
! 51a4aece9828cc5de70f690394ffa7f7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
! 2d5246801ff7d76e94798701be6173d1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
! 7febe845c22b414c0f5a06bacfd19ac0  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
  195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
! bd48582bf864e39142d6b53183e873d3  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
! a32fef1bcbf45d70f775aba1a876e0a7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
! 106be44dbeb073dd48eecce16f4410c6  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! a3532e5e4026e9d6a2aaf3cfc943d05d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
! 0c4fb84b79af690246baf1014b94f2be  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
! db92b4bc54851b993244debb28e5e4db  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
! 5cea5225eb1a8f653aa885df18563f63  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
! 0b8e2546eb7145c3deb826dc36201ce1  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc
! 018ee70b096d931b6290bd834626d5d3  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/83598.cc
! a1f3a835e515cdc0806e242eb6bda3cd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc
! 800d2e0f38340ac52f5d51c209ac95eb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc
! 3bb5ac71f5f21ff753dc2f06718a1556  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc
! f9bebe952a736a6d0e46f6e7cd8ef785  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc
! 718af06e59504167d7fe17e9a9587b20  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc
! e979cd95f8714d518c72f7dd7f5bf988  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc
! c83b053f5675c25842644093b64dd949  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc
! e1c273a7866a2a017117d5ca059a09a1  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc
! 2e7803b3bd67fc1d5dc614118ed55f9b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc
! f600bfb2d4563a66d4486d480e9958ad  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc
! 92c4893620bf241518518f58b06e5aac  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
! 6d9b53308d4a5487197bc2cc66ae4835  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
! 3411876f8b5cd6ab5fbe5698dd2d2e0a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
  9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
! 1c550190e63267b3730c1640ec717ff2  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
! 821deec40b5e0780707a423ab7c4e7d4  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
! 3d9a0e4347b9d3b3a0182c01805d6fd6  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
! 0eaf1abb8c3efb36c91245d97d308f1c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
! 6ab64b744e051f74d168529b41cd33b0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc
  2e401c1bf8aabcb389e6eb25f1356cc9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc
! eb1d30f92a477545f2db54192121ab5e  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
! 641971b443944c669932669477e25e08  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
! 531505043f5fc82c66acde5097de7d6b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
! 270f500ff1ea9cbfdc90ff323a789e64  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc
! aeeaf1fbffbb51849df77447eef14807  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc
! 7d7f86e780ecc9e9ac02b3bb5d7aa240  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc
! bbbbcde1c2bc33ad975c00702f6a4074  libstdc++-v3/testsuite/28_regex/basic_regex/imbue/string.cc
! d89325abc678c37e95268fa2d0a32781  libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
! 0d33d3835bbad0506c7c81bdd0870c74  libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc
! 29e588546ae55518491aaf6dda3ec4e6  libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
! 82beccf3a11a58e5b6c4f63c8727c6c2  libstdc++-v3/testsuite/28_regex/constants/error_type.cc
! 73b2478b4dcd7ff666e59ccef506c135  libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
! 6deb9f90d0027c1a5a8ec88ffe62ff0c  libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
! 94b340c411aab5949b69bfb6a4823bf6  libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc
! a5ceffc6aaecea9db0dc01fa0987367c  libstdc++-v3/testsuite/28_regex/init-list.cc
! a56081012e8f95a86e73ee2fbfefaac1  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/64140.cc
! 8d7016c54aeda32441d9ed2fd9156497  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_01.cc
! ecd58b21a14d6d933189bbf7f26630a2  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_position_01.cc
! 31fede9d5d97bb613154261888c44946  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc
! 803d24fbd295e630c8acddafec4cfb83  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc
! aae38c8cc21f8f96d58288f255b3ce0a  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc
  fb837b2517e3a52c0fd562c8a8f23065  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
! 0a3077a646e7248fdb489b2dd88b0a77  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc
! 3ad54b65b841cf4de70e9064a9f125ea  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc
! c3af139f4778bf923fe5ee3d5e69c0c8  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc
! 8fe9c48450c81ccc602ac4380fd0b744  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/64303.cc
! 2f0781b6fc98431136f55d9580e99279  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc
! 7c59b6606f631b4cb6d6432251e108ee  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc
! 33f59e85f0bbd5bcf8a6157886523c1e  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/dr2332_neg.cc
! 27130408c4867dd6efc98f85a5a6bc18  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc
  01b6adc11e3690db0828583cec9212dd  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
! 6c379aeebd35f098b8452981af205296  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
! a3d7ef0ffc77bf19528c95e5d5255f5c  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
! 8d08e03f4d1049493c17577ee9db1863  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
  e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
! 665e1b4c53da1a80a21079f67d0a2084  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  ae3c69a2af41b63301190a3e8902a808  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/alloc.cc
! 986e933ae22427cb3166e6b31e4aad0d  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
! c86f2b93735f09c40c0c93e2bc440277  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
! 2389aabd9e29a0002ddfda88a74f6fe6  libstdc++-v3/testsuite/28_regex/match_results/format.cc
! b8eaecc509771e1d8e8cb5cf76ef0957  libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc
! 08fed7de8839f6b0178547f3942b9466  libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
! f1e59c573ea9d71965009bba4feb3c5c  libstdc++-v3/testsuite/28_regex/match_results/swap.cc
! 041b8944bc2507a2e187ccb5f3e62321  libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc
! 0497fdeaccadcb66595886be7957f27d  libstdc++-v3/testsuite/28_regex/range_access.cc
! fcc188ef45d47a174ef60f7aa3d19d7b  libstdc++-v3/testsuite/28_regex/regex_error/base.cc
! 680ae3c09d299dd0078606d77993f3eb  libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc
! 28a8ed6cd224c61c0f99d86309d987c3  libstdc++-v3/testsuite/28_regex/regression.cc
! bef62820b8089b47129b3ebe26b785e8  libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc
! 873a3b5b678a835402cf480aaeade5f6  libstdc++-v3/testsuite/28_regex/simple_c++11.cc
! 2a56e9bb700fd7d65c0452de278f50c2  libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc
! a3082440e761a710608140f721a3a1ed  libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc
! fdb05068ea0ec2e2c054e5452fe22597  libstdc++-v3/testsuite/28_regex/sub_match/compare.cc
! 14d73926675e8a4db27298255924bb7b  libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
! d6491c3bafb893669df1ab0292e9d4ec  libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc
! e1fbe99956156f30edffc8da221e8c96  libstdc++-v3/testsuite/28_regex/sub_match/length.cc
  491895502310c40d3c4fac8105f3662c  libstdc++-v3/testsuite/28_regex/sub_match/lwg3204.cc
! d7e5ad2427185dd498303cf15e8de1f4  libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc
! b246f46b68179ba914e94a9258d1db10  libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
! 305fec0ea6dc6505efe171a6aefc6f11  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
! 2ac6ce850770c5c6cb93284b1b8dccdc  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
! 7fb853dc002b50b2eb4714ebf5bdb67a  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! f24a884cd3db25e10e69a6ba477b25ba  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
! 348dfcb394253d690606477b5446fbc6  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
! 0c99372df756a6818ac70263545c3400  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
! ac26a772516974da4124fd9b826718e3  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
! 874f6cc840e61b604213a2de6f261761  libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
! ade0a19d59885ad2a4df3d368ebd9322  libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
! 01550adfd621ad02461d767a23dc5956  libstdc++-v3/testsuite/28_regex/traits/char/user_defined.cc
! 9fa70773f3353e1a16a2ea23be1608a6  libstdc++-v3/testsuite/28_regex/traits/char/value.cc
! 75c050a5686aad9a653242f961ded161  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
! 278d80d81838cf9f47305845f6720fe6  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
! b9e0110a970800a36eb2e14f778cc923  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! c49d94b1060905e2d079c460f16b27b9  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
! 368decb5b5fb608898729b9d6c0b1b1c  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
! 7661bf4824b90173f9d846214053387e  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
! fe1c01b152a90c37809c40d2a3881220  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
! 61940d952d5d43d4699a90db69f9e48b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
! 3f8f7aadbb227dd1f785d5677d11114c  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
! df5b2cb318209984b9465ddeeaba3ab3  libstdc++-v3/testsuite/28_regex/traits/wchar_t/user_defined.cc
! 16cb1edb5347d3f7e2ca01ce0946c42b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
! b025cc6ec4d7ae3132d67fe05cf5ddfa  libstdc++-v3/testsuite/29_atomics/atomic/60658.cc
! b33a0b3c7995f3e74ada63272f838776  libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
! ebb5372907fa94af6f3064722cd0e28b  libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
! a4690afe44b2057dd036b2e2992cb9fd  libstdc++-v3/testsuite/29_atomics/atomic/64658.cc
! 2f7fa86e7336bfde7c856a56e9fd74d0  libstdc++-v3/testsuite/29_atomics/atomic/65147.cc
! f34c13e0eef44f80fc10f6cc39105956  libstdc++-v3/testsuite/29_atomics/atomic/65913.cc
! 72abcb446eb40e0bc7c2435bf03cbfb9  libstdc++-v3/testsuite/29_atomics/atomic/69301.cc
! 7de4e52d03fe19c0a05d5a8cd6bc8267  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
! 5e2e08488f2a545f948bd16834cf8ee5  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  ce997c946b9d815d3b58c18b6822f7d2  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
! c7cee233a1d080b1dffc7cd5311d27c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
! 8a3545374cb8fbbd33dd2b2906c3cbf8  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
! b27d4e8f6e45d96e8ec5c36abd854471  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
! 89506cbcfdeb38f8e35caedaaa9e4ef5  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
! 99ef9f92e611ce2e395838d3e9bd94eb  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
! c0881d1e2eb764c023ab5b7d8a6c85b7  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
! 9c92ca4b4eb03e692afb6da704017d10  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
! 66bdc51662fd70d30902211a53dedff4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! 9e2a8388686f3e26628f06d374c98d11  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
! 6eaa7fecae6788d01a20ae43260848b9  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 4c8038b479383b8690e30cb9dd1b7a3a  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
! 91f812389d5388048921088248621c59  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
! e60e491db955c40476864016c325c635  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
! 4e5e9095b57fccee6acb88d48375653e  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
! 6b80e06d1316952c42182ee6870618d4  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
! a6d61ece14a2ac1cb88f202e320d2678  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
! 5077e2998a3075360a362dda91ad489c  libstdc++-v3/testsuite/29_atomics/atomic/operators/pointer_partial_void.cc
! 88cb63e8f111a7a3c727598a518674a1  libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
! 177ade384daee9305258f2accf7ea158  libstdc++-v3/testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc
! 1a12382ca32ebb7250ad7d1e14ef6c1c  libstdc++-v3/testsuite/29_atomics/atomic/requirements/explicit_instantiation/1.cc
! 505dd15440cb5d45a0724da46b456b8b  libstdc++-v3/testsuite/29_atomics/atomic/requirements/typedefs.cc
! 5df3afcb07ceba496b30c2bf5cab7652  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
! 177f19872718e6be3ff6a938b901d418  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
! 603a9bdfeed5c8fbc884b5989a359352  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
  0c57c2f91f968ace2a2fc16b2f362a94  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
! 4929ac2c85cf10722d91cd94d2a40f74  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
! 689ee25b236678d2608d182f55db8e83  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
! d8c124c3976f32b4028068c4882f8b64  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
! a310e6ac9c3f1069f17e468a934dbdcb  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
! e124e1d049bc76694ed1c7ad25f0b579  libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
! 177e11249ea9e911009de658b3e9d647  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
! 8848824dce5b83e4138cc75e21f8c5bb  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/56012.cc
! 892e2552c2ffe823f6d8f513b49fe93e  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/aggregate.cc
! 35300e5206de081cc58207f2d5a50871  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
! 359672c77a286c14a8eebc0332fc2b22  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
! 799154660ac32ed68ca0d753e645f511  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/default.cc
! 20f380377b6b4588dba90162c91f303d  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
! 69e99c0275b12c847c3e114852880789  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
! 3c4c1168ad305955669c68695bcf8122  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! 1e7ab1c41ded8c11d3d951929d654a43  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! f23277f91a5462d108bbb8c36abffb5b  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
! c03755c748cd79d2f18930432ba91482  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
! ba0c2f92ca85222415ae789d073932ba  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
! ba0c2f92ca85222415ae789d073932ba  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! 091d9f43e76b044f3069a396b381d632  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
! 93e5e28db009c5727ec4b0ac5d9c9a96  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
! 4728c3d1b5c8622a7398bcf8c0d893da  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
! f6824be47c343a93b5129a8d40cd5f37  libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
! d0fa9f13b49567ec79d8ace05baf270b  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
! e9c3082d95bdcf75d84e17829bbbce4f  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
! 01b9626b2a289a1c31a5803746520cf9  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
! 4f98204db054b6051e78a00723ddf115  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
! 280689977a79a773378a128fd3d6cbf0  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
! 9367b35ad862e3e55260981438b3b938  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
! d673595a1a9a4a12208c70e0c4f4b145  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
! 8177929e78257450ccc9df5ebf88610d  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
! b38d23bc6eacaf7c44d40cf190e2f104  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
! 8a1cc4b7510f4c90bf41561dc7d8f574  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
! 718e6878a13955b223a15b299671cbf9  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
! d8eea151c2fd2aedb74e5530b1df0d08  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
! d64c4c553d4e1bf29f0e390d9ff5d80c  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
! 7da2aa321d8bb557180b9d32be608164  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
! 7f941fab7bb0c54db1be80a9030a53d5  libstdc++-v3/testsuite/29_atomics/atomic_integral/is_always_lock_free.cc
! 117450186430e3536aaae592f522d885  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers.cc
! f8c19ad65ca561ee0980e34056243fd7  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
! 9516b1153c672e2f24c0f7d43bd0e64f  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
! bffb4ba3d70a201725705b2a117609c5  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
! 8ff505d4da86551e1a422778bd6a743c  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
! b613b29a45f740249b6a97ad605318f6  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
! d7c4fe8b050c99dcbc313d2e581cc57b  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
! f12b4cd8034ec2be8b3951e9260ef478  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
! c2b340ae85167955a4cefe1ab002f1f3  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
! 781eb89b54963b1d08ee551685a9e043  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
! fd5147c87752ada7d90ac3c0b95cc7e7  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/trivial.cc
! c1d47867efc3a286c5a601bf09a43fd5  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/typedefs.cc
! 1c70aa111d7667f9283747d8fc055164  libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
  32c306fa56643321c7e2c4c7920c2990  libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
! c397af515fc1a3e276eb45babe9e462d  libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
! ed6031f056a036d9938658afb24bdf10  libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
! f13dc9fc9e9e41a376d161fb6c616e97  libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
! 6a9f1eacf3142959967040a7c33ddeff  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
! 6f69a8423361e514f214826d16e3c887  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
! 77996fe80215b22e165eaf28b9c54dc9  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
! da7ff50e767743cb9456b0b105d2bd8e  libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
! 8ca9720bb5ce81b0fa0a343f608414d9  libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc
! 2884492cb153f766a77d6f244504ad36  libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
! eca21dd52ebcaa048c261b1567df7804  libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
! 0ccec6a9f86c068f7813f641aca828c1  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
! cc1ad51ca0bad13f42121bcdde44bb3c  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
! aa6e6b5b03fcb5974c9ba9385d5ab4a8  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
! 92d0b980ed0ed0d635f068b216140f9c  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
! 160c9cce728d3532664306f302ce9799  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
! 293de47313edd0de99234b5deabb661d  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
  a1f6f6e1e31959c1455d2b3f17e75885  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc
  a99cb8b3fa386993e78051b226f5f4eb  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
  94ba8a23b5b0d9459ea5daebd6c365de  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
  5b1af9fe172aee7236f683fc11c916e0  libstdc++-v3/testsuite/30_threads/async/106695.cc
! b56a7c152180627a1a4eebd325c0e9d4  libstdc++-v3/testsuite/30_threads/async/42819.cc
! 935fe85325c34bb67efa739f31c69c33  libstdc++-v3/testsuite/30_threads/async/49668.cc
! 3022274c68f63cca2818dd7672c41729  libstdc++-v3/testsuite/30_threads/async/54297.cc
! e329123b794c7804fbbed67119db204d  libstdc++-v3/testsuite/30_threads/async/69724.cc
! 07c3f4b2577bb65ad06b1ba020256968  libstdc++-v3/testsuite/30_threads/async/84532.cc
! bbf286c401f7b4709857d0c356d3ccd2  libstdc++-v3/testsuite/30_threads/async/any.cc
! 9aa507615e12b771467e3672cb4ad2b5  libstdc++-v3/testsuite/30_threads/async/async.cc
! 829a2caa69c72a087dfda23e3c2679e9  libstdc++-v3/testsuite/30_threads/async/except.cc
! b533d9e7848801846157b017b6e2fafc  libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
! b1c936f984ea3d1315ffd5d9b71960e3  libstdc++-v3/testsuite/30_threads/async/launch.cc
! f35501275c528fa526c58620c77307ea  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
! 875f766167b6514813a764ab76a20e84  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 5c790818aaafb1bfdd6cee05af4f9feb  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! 4fdb67ac9bfd4fe05b380ff7de19b755  libstdc++-v3/testsuite/30_threads/barrier/2.cc
! 6e444b5db71fbc4899e3ce7daa07037e  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
! 1cf2bd96cfcde6d36ab2e25e7a01a7ef  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
! 27206a60a1f14de792699938df2d7cc4  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
! eee35c0538bd349ce45e52ce0338fe1e  libstdc++-v3/testsuite/30_threads/barrier/completion.cc
! 9b8e1d581000511da78bed8ccd1adfe7  libstdc++-v3/testsuite/30_threads/call_once/39909.cc
! d599e4b54769eacb8533318544a8c772  libstdc++-v3/testsuite/30_threads/call_once/49668.cc
! 605c219d961c3c97d429cd61ca40074b  libstdc++-v3/testsuite/30_threads/call_once/60497.cc
! 6ba76b1734d2f181296d2c89b8836290  libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc
! 637ea4365d5fac875d8ce02a80d921d4  libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
! 90dd2bb6891e45c90caf55d0f8fe2527  libstdc++-v3/testsuite/30_threads/call_once/once_flag.cc
! 22850cefe1a9055d059c235b4a7a116e  libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc
! 07520cea1050424b352ef808d44a7c3f  libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc
! 51474d0634bd0e70414d2a7e2b1f2934  libstdc++-v3/testsuite/30_threads/condition_variable/cons/assign_neg.cc
! b41e46681b5bee5448420b1097b71fb7  libstdc++-v3/testsuite/30_threads/condition_variable/cons/copy_neg.cc
! a9e2dc4ea6537f6f20958845f0c65e5e  libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc
  a22ffec2ff77db41215e429fe83d58ac  libstdc++-v3/testsuite/30_threads/condition_variable/members/103382.cc
! 56b82a33c656565141f6bd0d146bd995  libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc
! 9f32e431e9950f7abfe418dc932dcc80  libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
! 827ea68d7fffaa475ae582c07ae4a7ae  libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc
! 099bdf8306135e556aae2ab9fdccb5a2  libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
! 664fd6f7494caf73869dc8c57b5bf8eb  libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
! a730707dad757b88658bfc3a4bc978f7  libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
! 6ab1384f78f614b5077d2fbb05f8a4a2  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
! e973722a4219dd88725eee08936d5128  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
! 034b9ca72d20a555a9ccf0ab4b19bbdf  libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
! f8515f2639db47f73b2a2d281b9a5e06  libstdc++-v3/testsuite/30_threads/condition_variable_any/53830.cc
! 94bacf4182881787b1ae6a4ded49bd97  libstdc++-v3/testsuite/30_threads/condition_variable_any/cond.cc
! 8c68875668de468bd230fd7d2d47c1e8  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
! d2612f234f7cea484da04fa80a60d13c  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
! 0fe0c13df0226ee94f33044fdbd5f07a  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
! 8af68a092629755c341c5c857503fad5  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc
! e8003a26f1e3b36eb36eaa5d7bbe908a  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc
! 797227249c68c7aac2289b09f69bab1d  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
! 863f985e0618ddcc16560c5a603c753a  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
! a7572567aa68408b244fa68516a98615  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
! 255e39c2e7d6462eb3583dc99526e2c1  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
! 1c020fed6823719f6e3b7cfb2abd7521  libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
! f5fd7a6bb614212d964981006b412c04  libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
! 7e5ffe2750ab52f11e8e9f8d68585c74  libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
! a95d1d17735e24dcba75b5a82e875180  libstdc++-v3/testsuite/30_threads/future/cons/default.cc
! cd7af11cb78dd409cbe18f1d31412eaa  libstdc++-v3/testsuite/30_threads/future/cons/move.cc
! 780a26ab136385db3fb6e1b33805c539  libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
! a684a5cea61484e168c2f2a8d515f033  libstdc++-v3/testsuite/30_threads/future/members/45133.cc
! 67da8d4e775dbe2d1a407e8e7698c2e2  libstdc++-v3/testsuite/30_threads/future/members/93456.cc
! cf72fd0b2c85d0af6bde40f612f010c1  libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
! eda46f0ea185d0de7ca92039d856badc  libstdc++-v3/testsuite/30_threads/future/members/get.cc
! 6c3ea16660c6f270cc68299666705c02  libstdc++-v3/testsuite/30_threads/future/members/get2.cc
! a0c58f98f90b97a33ed618f2bdb7a173  libstdc++-v3/testsuite/30_threads/future/members/poll.cc
! 1467d3e516a7e7937f6ac4210f91947a  libstdc++-v3/testsuite/30_threads/future/members/share.cc
! 8ac0efeda8ed2e437f8bfa755049aa90  libstdc++-v3/testsuite/30_threads/future/members/valid.cc
! 2c3f8b5d92fda591bbc8bd0e7aaa3cd0  libstdc++-v3/testsuite/30_threads/future/members/wait.cc
! 98b8af2b3f22fc554a607c4b6518f18f  libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
! af621b2c1d2b03d8b5120ea092441c09  libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
! ae97a5456f1624af8f2eea613b8b2558  libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
! d3e4262159584590d045f01be921f8c9  libstdc++-v3/testsuite/30_threads/future/requirements/lwg3458.cc
! 4c8ee8af6560fc67962d2291b1377f06  libstdc++-v3/testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc
! 37c00c30e3c3185f9d2bbfaa03122fee  libstdc++-v3/testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc
! 86e1100d896626df0c34321951e54d07  libstdc++-v3/testsuite/30_threads/headers/future/std_c++0x_neg.cc
! 5382f2ee12b47989a7540f012a38e64e  libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
! 5189f2455244c4e77a109ddb51cb23df  libstdc++-v3/testsuite/30_threads/headers/mutex/std_c++0x_neg.cc
! c44e07655ea02876aea46dc83dd90b82  libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc
! 1dc590994be53b3b8d805de5febc4638  libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
! 555c696e5d5e5b1fffcc301b677612a4  libstdc++-v3/testsuite/30_threads/headers/thread/std_c++0x_neg.cc
! 479daa667c5231ba3627b755241f98a0  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++0x.cc
! d515c97ac58b887460354aa3fade24a0  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
! 69829dac053eebed2533437071478e7a  libstdc++-v3/testsuite/30_threads/jthread/1.cc
  7bcf5ad4022b2e3087ff5f773e489144  libstdc++-v3/testsuite/30_threads/jthread/100612.cc
! c5404633def8935cc6302f7acd9b83ab  libstdc++-v3/testsuite/30_threads/jthread/3.cc
! 75c775fedbe86bfdb2966bf7fcfd7d52  libstdc++-v3/testsuite/30_threads/jthread/95989.cc
! 5da4af74e0c6974ea771423ae341543a  libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
! 4e0cf6182b9cde2130e24a3bf55c3ee6  libstdc++-v3/testsuite/30_threads/jthread/version.cc
! 4e2f631502ae2e089dba2a1f003ac784  libstdc++-v3/testsuite/30_threads/latch/1.cc
! 7b7fc29e872e3d53f126127ad49a58fa  libstdc++-v3/testsuite/30_threads/latch/2.cc
! 483782a7e197606708ab15a79d634d80  libstdc++-v3/testsuite/30_threads/latch/3.cc
! 9c0199b409f0208c7065f8ae30d5dc6b  libstdc++-v3/testsuite/30_threads/lock/1.cc
! e0afff7f308453ea46d7cbc8b965d15f  libstdc++-v3/testsuite/30_threads/lock/2.cc
! 7557240ab3f451df449a22ec4350aab6  libstdc++-v3/testsuite/30_threads/lock/3.cc
! 5d88f6eeffc54e03fbcfc36604419e6a  libstdc++-v3/testsuite/30_threads/lock/4.cc
! 712a27ba2aa4b2f8c1dab6146fd670fd  libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
! b5bca1f4b3eb3965a31482b3e20a812f  libstdc++-v3/testsuite/30_threads/lock_guard/cons/deduction.cc
  462211b16f32c8238aeef8f418897b81  libstdc++-v3/testsuite/30_threads/lock_guard/cons/nodiscard.cc
! 7c533f8fbd189be75fa31a45cac1753e  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/explicit_instantiation.cc
! ac23aa7d8da2195d5d35ead8d2507ba6  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/typedefs.cc
! ea7acc05c24bb1056619c93183bd9fff  libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
! 03517cb95b5bc27889cd83a6e0815bbf  libstdc++-v3/testsuite/30_threads/mutex/cons/assign_neg.cc
! 4dbea691583d27c6f3d4405e29da226c  libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
! 59b91e41ff20069563ae10fb0815e85a  libstdc++-v3/testsuite/30_threads/mutex/cons/copy_neg.cc
! 6f348987d310bef6c7070ee9bac34681  libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc
! ab62f8e8e537a0cee641e5db24a98035  libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc
! 8d8e9422c561acc0205ebd45e609f808  libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc
! 9aff91d830f451677d1105315c19128b  libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc
! 2d8f3045cf702110bf0c39be1b719c04  libstdc++-v3/testsuite/30_threads/mutex/requirements/standard_layout.cc
! a57d043b05536b36f47ef5c9d72d769e  libstdc++-v3/testsuite/30_threads/mutex/requirements/typedefs.cc
! c169f466802ba739e96645cb9ce1a970  libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc
! c47b0d14ae766859a5fbcff2d5b5cf97  libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc
! dfba526c53d45281b4a8a0705b84a7a9  libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc
! 7d052f763e7eaae56b1615cbd44119d7  libstdc++-v3/testsuite/30_threads/mutex/unlock/2.cc
! bf232f51fa1e4ce50181933caa5eeff7  libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
! e7a3e0aea1d629a0bf61e4344ba22554  libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
! 9f0622b13d700645659f19d3172c5c44  libstdc++-v3/testsuite/30_threads/packaged_task/79486.cc
! ed9bf282f10701802f70b3ccc5f81605  libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
! d5d98f7ec1f3a2787cbfc1245031dcee  libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
! a7d0e139e7cf75f203affb2f639330d2  libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
! 976bb856fade892f9565e998c0b6ef18  libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
! c0b583c748f7e9df1b6ba57eef003a5b  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
! 581655b703eabf53f6883b00d3e15351  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
! 0f43f445c9cf91ce838cd370e936cd3c  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
! b0a3fa6c14115f4485e5f5fa4d3e5208  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
! d76d953b956682a1e65caf48cfd059be  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
! 61b6c7d530f3a7caba002211060c13d2  libstdc++-v3/testsuite/30_threads/packaged_task/cons/dangling_ref.cc
! bf572723301e0723551ea63a282f2671  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
  ba4413ab6f8707eecf7439c419b333f6  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
! 64636ad096f7bd22a64e7b6419331587  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
! f586c36d7cb7cea0b7731b1925eda445  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
! d0fe1d77375b002a8eb13e71c921e640  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
! 2d9962d14f386b63009118fa430b9118  libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
! 789ab6c07edb10d1a0c2c47c850b5b36  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
! ae93971360629d95df9b999aa4d6aee5  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
! 9c10728176fb9cc910c97756247dfbc4  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
! 6b4dd003bbce7fdbd5aafdf8a56deb91  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
! 4162acb8f0d0b00bf8e94e8d9be64c49  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
! 362d354b4ad37d97e9ede6e4d6c6a560  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
! 8a36e2c362d30d154ca6669583eb7296  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
! d46002a3fcdd79d3b291d455b5fa67e1  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
! b483b642b02c8473a616171c7efd36ef  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
! 0136766f8d6f4fd6f5182e5267ffcb1f  libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
! 85f48521363a92572c6306ba266091d4  libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
! b86e427d0a03daab736fd07020ca9dc2  libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
! 0ed9fd4ea78c0a315d4cf133fc9238fe  libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
! 39637c63e0cf57aa86242ed82f645090  libstdc++-v3/testsuite/30_threads/promise/60966.cc
! a6a25ebda7b227300b249fe48c9ece6c  libstdc++-v3/testsuite/30_threads/promise/69106.cc
! ecedde4d8dd5d8ecc022e58006e94ad6  libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
! b05971f94b6956aa6fc73869d72582f4  libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
! d9212fc04e0911a3edbbd496d412f53a  libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
! c1fb3b5aba13eff708e8c3179d8b5954  libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
! 0363dc5baf8b151ddb6dbf6e1b8b5d61  libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
! 9682f912cff810353ed682aa75414965  libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
! f871eab6b8c49421cf800a501e1f1449  libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
! 58238b004e3e96ca708e7f341300a2b1  libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
! 763f5b1b454fab8acf38de87c7353183  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
! 2090c8fd3db4ef545dcf70e7252f1ee8  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc
! 8b8f73d228c70a663cdc9e870bb2d02a  libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
! 3e452f9671cec4d121ec418bf70f3127  libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
! d5e05bac351a6eac7ab4ae5ed522ebb6  libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
! a1f49a32fc11236c82ca09294f9c976d  libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
  8d747bcd5afe04faffaed0b4915aa245  libstdc++-v3/testsuite/30_threads/promise/members/set_exception_neg.cc
! dc344c9b20c6287d7e19b2ae4238145c  libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
! 91b02daefa7da725788a987eaa373a82  libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
! 21cda9e2c8633a28835fb5f4ca4c2c3d  libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
! 78c3c09c895eeece7d422f39cba77007  libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
! 55c1b02837c721fca1d1804f5f97fc88  libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
! 06ac543c9818e27285ddc0ab2d6aa999  libstdc++-v3/testsuite/30_threads/promise/requirements/lwg3466.cc
! 2f651d33af46b62cbe56f127239fa37d  libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
! 7828b318d3a0238d54a3adb0a3879dab  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc
! 307ec8240393e410184f69f8b23faf51  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/assign_neg.cc
! 4ca0daad2be0eaf44f989c045df12a34  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/copy_neg.cc
! 9c0ba02dd1479fd451f5daa35622cec2  libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc
! cf08cacaecdc44204da3c9746ecf5768  libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc
! 317aec315bb8b27281e8ddf456e7e231  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc
! 2e1e1ed5c5f8d4e828104be0e6a49c12  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc
! d4edd326964bc804d167247657253671  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc
! 44a3ba9d03c6d599c941eb811ed95223  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/typedefs.cc
! 4371c7737e1bd3e9cae1b0a791c7517a  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
! 5b99b09084e7674e5428a231458e0b85  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc
! df949e0648c564cb6ff46af3646ad3d1  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc
! c90c08c4566ce2d77ca6afc0a6d7918b  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/2.cc
! a23166fdbbdad2dbb8c6d6eae915c2b9  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc
! f28defee3b337c20a5e8fca19ede2288  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc
! 05411b46428e983e2a4e7cd9de940c45  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc
! cab317f3f1250c9c00c3f722c0799e24  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc
! 518f4e876e33242cd5c88f1e785016d8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc
! 767bd4858c68f545a39d96016f2434f0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc
! 8506ff0618dd8f5b65ee270024bd3667  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc
! 0b5456ac7263577605dab7407dc1e8a7  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc
! 52bf8bbbd71281f16ad159b33f4e9d87  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc
! eaa5d4c0a427bcd0b1d1c9f58dcaf66b  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc
! c542d14f6df89c6691ad7f97f789cccf  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc
! 64167b66a231e846679a46d829384d48  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc
! aa8b73eac2df5cadf2e77b143b8e7d7a  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc
! 05693e36690dd3b01e15d922c1c0a69d  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc
! eaa5d4c0a427bcd0b1d1c9f58dcaf66b  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc
! d88db28ec1a30d641693477c0d8fa974  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc
! 23c5306de0bd895284584750ebe0acf0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc
! 462654fffc3ecd3a30023956e456ccec  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
! 920a7d46bcca8a0833b2835991290063  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc
! ec2d916d29f41eebdfbc81ea79b0a8a4  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/2.cc
! b9e8970e7d57e4de969143926bc08cbd  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc
! 23e1fb2b4450d6c2fa8b07c29fdfc7fa  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc
  6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
! 348d44238d6d182ae0833dab91bd7f5a  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
! 6969786caeadffcbffb81e51f43699cd  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! ed9bdd9b73d78e1002dffec5e3823b86  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
  e7a6c2bc00e156939f96d542373fea2d  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 7e0d9d03a7b2b56e626e592af5a44b25  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! 5f980b1d07f3c14e740169962dfc7d20  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! e6bf030c5738d42cf7405d07d059f3dd  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
! 3dc0ec45cd6df87919befaf6d3f3c369  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
! 9e6151027c6ebc2c1f94b60ed1dbffd4  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
! b3f9f817b11f04094a30b5e79b585010  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
! b666c4b1ea6dca829e3f76aa76faf6a5  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
! 5fc65eb55075b13146abc23fde80435f  libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
! 625c9395fb8356e43424d11a43b7a09f  libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
! 7c61c7830df31ffd1b34a58584d18f2c  libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
! b200e1f24664aec90db487ef6143dc65  libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
! ee217541aa14a1cadcf4fd5d96dc29c4  libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
! cf9283e3f5056d53bdbdd64861284506  libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
! d79bcb72e6c22bfc480b723c5109c6ad  libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
! 66ef15a8856244376b40bfd4faa2dae0  libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
! a7dab9556827a045f9c1a54a27ea6690  libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
! 2691a9d71869e02618c9a7beed973c87  libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
! 7f2d60c1dce61c37b983367d8d82088e  libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
! d43c21798bfb7939162c99438f6b9beb  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
! 28778fd9f5cdc6aea99ba53370bbf8c1  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
! 5c0049f09643b3a071246aaecdbf1c70  libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
! 685e4ab24040cf2935bf5708c71a3b73  libstdc++-v3/testsuite/30_threads/shared_future/requirements/lwg3458.cc
! 492a58f031c290268e2e64012a1f5f01  libstdc++-v3/testsuite/30_threads/shared_lock/70766.cc
! 9f25737a0fee31d693ee6aec98cc12bb  libstdc++-v3/testsuite/30_threads/shared_lock/cons/1.cc
! b364db1f288786edc41d68a0283fe6d2  libstdc++-v3/testsuite/30_threads/shared_lock/cons/2.cc
! f0b0bde2b46d16c1794fef97225c99b6  libstdc++-v3/testsuite/30_threads/shared_lock/cons/3.cc
! 98ff49432075611b28090e1bfc634f99  libstdc++-v3/testsuite/30_threads/shared_lock/cons/4.cc
! 2965775f624b12a0b93099e4b7beee34  libstdc++-v3/testsuite/30_threads/shared_lock/cons/5.cc
! ac171a66254686b1e6256f4082c88f1f  libstdc++-v3/testsuite/30_threads/shared_lock/cons/6.cc
! b040f05c38f3f53f4a61b3e39cbd7c84  libstdc++-v3/testsuite/30_threads/shared_lock/locking/1.cc
  f73343e4c89cb77298874c0578e423c3  libstdc++-v3/testsuite/30_threads/shared_lock/locking/112089.cc
! a89aba43b6f1c88526344e0172b5fac0  libstdc++-v3/testsuite/30_threads/shared_lock/locking/2.cc
! cc6de8d0a5fdd21a4c7fe9022ddfe48e  libstdc++-v3/testsuite/30_threads/shared_lock/locking/3.cc
! 513ef91fcdb79e39c3a326d4c77cfb34  libstdc++-v3/testsuite/30_threads/shared_lock/locking/4.cc
! 7ec40d6ac385abdb030f594668a5e98e  libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
! 3cd597c0c9f6e004d9d30c5d650db232  libstdc++-v3/testsuite/30_threads/shared_lock/modifiers/1.cc
! 2b51638034c7d3ed40b3274684eb7975  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc
! 3542fffe66ceeb67256b18210f64fd51  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/typedefs.cc
! 699090ca9e76f7c8d44a22bd792a0ddd  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/1.cc
! 9e91ab2d4387642ac3756f88e6793778  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/assign_neg.cc
! f15e8916a902ef813e1dbc3940ec2b40  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/copy_neg.cc
! e5c08074e5b38d40a9dd495532aa28ae  libstdc++-v3/testsuite/30_threads/shared_mutex/requirements/standard_layout.cc
! 7a41e50589dd7dc6a178a668a13c2628  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/1.cc
! 45b0b2c7f269a16d2d124ec09c8772fb  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/2.cc
! 66bdd64d5c95f73a2000bd55c152e23b  libstdc++-v3/testsuite/30_threads/shared_mutex/unlock/1.cc
! 69e3ea0fa8d9c2ce7fa036833d7d969d  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/94069.cc
! fa724cffb394749e139023790f2977d7  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/1.cc
! dea039c393c9575879d845152e1b328f  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc
! 694e1573532a465b3ac1219d631db29a  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc
! 26452292cbf0726dd62c4f30946ee024  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/requirements/standard_layout.cc
! dd74a9966d4192a7ad4212aff2b878a9  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/1.cc
! 8bb8d4635fa38d86029e60f11f88fb5c  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/2.cc
! e2a5b01fb570ed22ed1508503d747c3d  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/3.cc
! 7809609bdcef74d700ef15274aa70dc7  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc
! 50019f9570f9919ac9d9aebb1c0c6b10  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc
! e018b6914fd18f39493a964915211546  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
! a11a02a270613855e48d9388f12a11d8  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/unlock/1.cc
! 1b078069a680a7db39e6f9843c070b70  libstdc++-v3/testsuite/30_threads/stop_token/1.cc
! a7572567aa68408b244fa68516a98615  libstdc++-v3/testsuite/30_threads/stop_token/2.cc
! 910e319a32d8946418965d4a135c3510  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
! 4ab430725d8819d5bf90e054bd4cfeb1  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
! 89e01ca0de91d82b135beec1d57e4319  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
! 5b6abafb7e5a0cad4d78f1aa36150ae7  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
! a3ede982d0b6c7ff474162a8eb20236e  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
! 48b0ba0b6a6f6828a7c279ac46016e9a  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
! f3c3d01778e6cc6995daf255dd3e4c69  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
! 8ef567ae352ded7e364eedfe7ee4f88d  libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
  97c265fb2eb60646be155e18f47b2f61  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/109339.cc
! eaabd4096f9dd500bdd39bf72c974e0a  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
! 92d9f248e0cd8c1af766139f375d75bc  libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
! 26c64612e0ee0c80bf403fbf4db2a6a3  libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
! 53e7b776b3754f0f5930d9ba5d416779  libstdc++-v3/testsuite/30_threads/this_thread/1.cc
! 9cc9b74b912dac52db610498ac2d7533  libstdc++-v3/testsuite/30_threads/this_thread/57060.cc
! 2be94e9e6520264376434815a4d2bd83  libstdc++-v3/testsuite/30_threads/this_thread/58038.cc
! 96a4fcafe0452ca0718fcb3c952ffb86  libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
! 764f93292965e9460a4f0afe1eb9f406  libstdc++-v3/testsuite/30_threads/this_thread/95989.cc
! 133b82de690c0811129a185962a8c549  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for-mt.cc
! 464a4c1fd66b701c66e8d46c37c4bfb0  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for.cc
! b8db07e438a16b575a90f1c193ac0b4c  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
! c4ced7918354143463b45aac707471db  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
! 66d9bafeca119610f296c0b36200e3e8  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
  01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
! 30f4712f8ae2528d02755f7f24ea57be  libstdc++-v3/testsuite/30_threads/thread/70503.cc
! fe46f311f7f3028c871b97ccedc0f815  libstdc++-v3/testsuite/30_threads/thread/84532.cc
! 616e61bbfbaec34d089b08bb85ff9a13  libstdc++-v3/testsuite/30_threads/thread/adl.cc
! 063d4361a7ad7073fa16c45950c6aa77  libstdc++-v3/testsuite/30_threads/thread/cons/1.cc
! e62775ee7ded9cf710abdc819cc59509  libstdc++-v3/testsuite/30_threads/thread/cons/2.cc
! f89ecfd8b8185a2438fa32c5b7a03ee9  libstdc++-v3/testsuite/30_threads/thread/cons/3.cc
! dcd5e227de268763a0be4583b2caaab6  libstdc++-v3/testsuite/30_threads/thread/cons/4.cc
! ff2c947b19383c5e420de6687401d042  libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc
! 1bf9e31c14cbaf7eed10d3423f81482c  libstdc++-v3/testsuite/30_threads/thread/cons/5.cc
! 05d8a1c865f5f17aa9d4192d063d87b6  libstdc++-v3/testsuite/30_threads/thread/cons/6.cc
! 4e1a85234955e9751c0a9c9d582505d3  libstdc++-v3/testsuite/30_threads/thread/cons/69724.cc
! f1927d0a164262cfcf7ebd73d75e59b6  libstdc++-v3/testsuite/30_threads/thread/cons/7.cc
! 7cacaee911d31115b4411c611e140fdd  libstdc++-v3/testsuite/30_threads/thread/cons/8.cc
! 1c81d0a2040d551acf717ba04647c623  libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
! 6eb7802734f775cc5f9f2ef9f869c22c  libstdc++-v3/testsuite/30_threads/thread/cons/9.cc
! 6012f92dfa19fcdcf961cb5cbb891834  libstdc++-v3/testsuite/30_threads/thread/cons/assign_neg.cc
! 51a69d1d0435619d52b8fc72927dab79  libstdc++-v3/testsuite/30_threads/thread/cons/copy_neg.cc
! 8d4b26d6ccd59f9322bd2a7661782e43  libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
! bf5a37d74c3ac41544ae9380538e05fc  libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc
! c17cb67d1a666b35e571d75d942dc1b8  libstdc++-v3/testsuite/30_threads/thread/cons/terminate.cc
! fe40d214fcf9bd99323f5f870876a1c8  libstdc++-v3/testsuite/30_threads/thread/id/70294.cc
! 8535fc8e830b6f0e891cb1cff044b943  libstdc++-v3/testsuite/30_threads/thread/id/hash.cc
! 6eaa7183d66159aaa1a4d8bec32f9b54  libstdc++-v3/testsuite/30_threads/thread/id/operators.cc
! 2a9a501b9654131b46c92cfe702500a4  libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
  37f9e8abefc6a35a32b6d2bd13c56c45  libstdc++-v3/testsuite/30_threads/thread/id/output.cc
! 80eb200cb5c204fcbec51a4f5febad0c  libstdc++-v3/testsuite/30_threads/thread/members/1.cc
! 2860e9fdf84916f3f96261f846390f00  libstdc++-v3/testsuite/30_threads/thread/members/2.cc
! 0d97c988fac2a69e90ea7023ac8466ad  libstdc++-v3/testsuite/30_threads/thread/members/3.cc
! ee5f3203fc97276db56370642ab22958  libstdc++-v3/testsuite/30_threads/thread/members/4.cc
! 9b995d2484dc7127240e1ed09a37b8da  libstdc++-v3/testsuite/30_threads/thread/members/5.cc
! a9371eca1def310151c76a30b432f8f4  libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc
! 6edcba06b4872175448a92ca927140ee  libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
! 5da0087b1f4c4a37321692aea903ee72  libstdc++-v3/testsuite/30_threads/thread/native_handle/typesizes.cc
! 85650ea69acc8067542b3ba070aafbab  libstdc++-v3/testsuite/30_threads/thread/swap/1.cc
! b30217126b0de99c06b6b3f01a010427  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc
! 3ac0b06cbdce363a1e834490f371a3ee  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/assign_neg.cc
! e5da47bb4a87780f44f63cce05d2c93c  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/copy_neg.cc
! 96a34d203e40630802c50616bc911454  libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc
! 24190046e4b4c0d71c000d7008981912  libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc
! 2f6f62321f64b7739b7567cef0d132d7  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc
! 99163cb4b0e8d0b7f0c9ba6291e1096f  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc
! e5278f00fc79d6caba515fbc5b324fb2  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/standard_layout.cc
! 57729e8fc125335b81000348ae0bc9ef  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/typedefs.cc
! 2600eb51c949a5ee12ad7ec6787c9a43  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc
! e8a48fef525c4d6d45456910c7fecbff  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc
! 0926e28b18d47785ad71c6a2a7526e18  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc
! a490a4ab0473324ba7338a9984339294  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc
! 6e4dfa0c290f2fa1e05d7719ed5f8901  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc
! 2600eb51c949a5ee12ad7ec6787c9a43  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc
! e8a48fef525c4d6d45456910c7fecbff  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc
! 7a2e1ecad93b6ee9ea71b71c9525b6ca  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/3.cc
! ca48cfb3d026cb5904c2d42f11495dbc  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/4.cc
! 0dd8bdea6177fd9687992a8e4698a0dc  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/57641.cc
! 76827572d87d37622e6ff3247578f16b  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
! 142d000e106f9fc49da65a75aba54112  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc
! 2a7f733b2670e777d231aa58e5649768  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/2.cc
! 0c54985bf483ff823516fdf0853980f5  libstdc++-v3/testsuite/30_threads/try_lock/1.cc
! 9f6701ad5f460a06f15046e85bd67a8b  libstdc++-v3/testsuite/30_threads/try_lock/2.cc
! 7020b7cc620bb7ddaace768e1e777c67  libstdc++-v3/testsuite/30_threads/try_lock/3.cc
! a8ad217f1997ea0ca03c36a62421e116  libstdc++-v3/testsuite/30_threads/try_lock/4.cc
  84b7f4186aa09b29885c62c89d8b8d64  libstdc++-v3/testsuite/30_threads/try_lock/5.cc
! 52fbabf5536d93fdb17888856781555e  libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc
! 9d09a28b1197f9a29b588206967a42da  libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc
! 2d37566b1bd07f43dcb62c4b841ecab0  libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc
! d825fcff2860ff5f4efb91e56edf6a80  libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc
! 5056f817b57aecd95ab4bf8a7590c1a9  libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc
! d4301f9aa19eadb217620d1419eb3b45  libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc
! 926c1d752f206dce64864f8b47287322  libstdc++-v3/testsuite/30_threads/unique_lock/cons/60497.cc
! 4e5b375f24a94f0c59ce66caafe9eaea  libstdc++-v3/testsuite/30_threads/unique_lock/cons/deduction.cc
  4065ead73235836622eebbd59a14b63c  libstdc++-v3/testsuite/30_threads/unique_lock/cons/nodiscard.cc
! eb0a04afdaf0cf458540c25a68065477  libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc
! 6a6ede452ebc03ccb6c165d02fa4f914  libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
! ae0e98aff1de08939972e6e8f368c5db  libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc
! 352afe80af5a248bd9dfdde68d3e6c0a  libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc
! 69b1200ecdc753bff3e04f2eb07ea577  libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
! e31ffb0a2c9c6d74f548a8bdb533b08c  libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc
! b2b6cec0887fb57fce89d4355e01d242  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
! 57cb308a7b58073a3e2b741333da5582  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
! cacd0f423defbb1862cdba18e3dc08be  libstdc++-v3/testsuite/Makefile.am
  87ec6e49ebcf181e6a1c9ee1225c8951  libstdc++-v3/testsuite/Makefile.in
! 460bc8cdd256ab295bcf16003349fbc0  libstdc++-v3/testsuite/abi/30586.cc
! 2163ef79d59e1fd6b61c3f6b6b2c54bd  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
! 7a8c331ed81908083ee0f491a838b7d7  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
! 8effa067cf6c81055227d0072f428687  libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
! 582119e8819ad8c81e11910310e3c2de  libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
! eee89e2d2984e34fd9da239210c686b2  libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
! b90dbb30cd5be3e51266ff4538b313c0  libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
! 67f05fc3be2092d774409f1a7c902ea5  libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
! fcb3310f27b8f143f6df28ac63e347bd  libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
! c035f4d78d9cd6ab3b5de9547158e190  libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
! d60eec9b0cb9f3c4c91bad646903e6a9  libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
! 2980363ddc0810b12a82a7381b5f43b8  libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
! 320b832f954bf0ecb7df77000191fcdf  libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
! 37c9984f49fe5084ecf8ff4dc9d551f2  libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
! ba1fd7edf5c425e6ebb4b7f19c6159db  libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
! 5ad368fb90b3099f12d680e0b196aff4  libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
! f729cc7dfce450395607d11394624827  libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
! 7a4c54cbe3eadbc36c4e92df7e8f8918  libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
! 98e198f88dc2a67ff7f5f27f73467817  libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
! 119bad403b636cb8012b0da7ba354c89  libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
! 5736210ba45d2228eaed42bc0c43b960  libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
! b1cef2ef8a3f3a5b1e3d452975b1d7c8  libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
! 0c00e6710e71dc558c3d5823b3385642  libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
! 0c00e6710e71dc558c3d5823b3385642  libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
! 5920150ba01ffa72447c7f98150d2ff2  libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
! a8643521b77f3a5ea501bfad370130eb  libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
! 8b53cc27a24219889849896bb5c93257  libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
! 61af9652e5eb23bcd2d2d7cb5440b1bd  libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
! d5e72b6227d117a314266993018a1628  libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
! 7e9486eff201d26afd271f8cbadbbfd2  libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
! 73119e866e2cf1b02a9ba4c242a3704a  libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
! 841acf7406450c8023f88d02fb6408fa  libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
! 9d94b62ce8e8dd78909e9ded1a397fdc  libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
! 1c4c56e5d6a83120d33076771b5de948  libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
! b22ad8fc8b739e16e0ce3ecb76fd75ac  libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
! 9c52a1526399fc14eeaa66849188ece0  libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
! 6b0adc3d8e5994267837dc47dd83f0fa  libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
! ad2779cf6ac51bad85de015a1d7ec58d  libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
! 76130ea1cd8588c7cf816356a6176157  libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
! 7503bbc34d4cf7dbe64f135b1b07583c  libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
! 779656ff39087f6880878c1e8cec369f  libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
! 72892275295dea79a122ea0df570111e  libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
! ce1ff1d0688e4a09d578f712ab8f78a9  libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc
! f12be4ca07e7b297fc92802c92015a0e  libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
! 2a7332635bc60b4c4957de8c8a5c4913  libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
! bc011f9e641701731821259c835a7fcc  libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
! 6f36c344e18d61f633456271d38c2613  libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
! 985211755cbaa4c3e6b2fa759bd34c14  libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
! 4c19897d3f615d683f1df2ee3278a6b4  libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
! 25f995145bc51e63c9e77e6ebcdb8180  libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
! 4620c4682b554fe045e5d94ddb7b7524  libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
! 6499731ebd14ee374b40d95c20def705  libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
! 8138b3afef78b4c49f91dafc98a49e48  libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
! 2aef50af28a0f9f7343000ffc20d7a1d  libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
! 6e5791ed3866b8e515f4be1c0fbe7a6e  libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
! da654aeb25105e35955d52be8576e51e  libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
! 757528c57599ff582ca092136c092249  libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
! 7e6ec4a86d4a4a937a22f845abe02f61  libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
! ce4282dce3bf9521b7dceea4031ad1f7  libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
! 64395d304f18dae8a690a2f0056e232d  libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
! 936076114d10f499deff58e0824c5c6b  libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
! 750f1b27b86a328b5eb9772c40268a43  libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
! 8e88369aadbab74fbbde533302e053f5  libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
! 2abab643b18b980c4f82e1c0d3053772  libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
! 5d47c7334becd67f6f9e813e4c6fad8f  libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
! e6256ef6f2b57f8f3b0aaf3a4a6e8cbe  libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
! ea327c1979b7ec2b9c9599e036468d46  libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
! 782f726590c440609eeb68d77f3a72b5  libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
! 91807139bda6e3a3a23d807972b0e795  libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
! 9b93127b03314d1fe8e6253a70f0222a  libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
! b95e29835e70f667c4ffab42096ada6d  libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
! 5bd6b2492b1a51a7c8f20b5dabf9b030  libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
! d4c543133407930845e00d71f0703bed  libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
! 5245470ade0e616e4916cb8a6a37fcb6  libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
! efd4c67d637b221742fe4248d47fed66  libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
! 33b72d209fee162ff6d97ba6cd9abc44  libstdc++-v3/testsuite/abi/demangle/regression/old.cc
! 6c60c202e95f7265577dd2db8d715fa6  libstdc++-v3/testsuite/abi/header_cxxabi.c
  026f7646f4161e79273f7580a661c0cc  libstdc++-v3/testsuite/abi/pr42230.cc
! 364f867dbac080b401875e42c07d7b1b  libstdc++-v3/testsuite/backward/11460.cc
! 81d8d654eaee65ab7265a01afddde7e5  libstdc++-v3/testsuite/backward/hash_map/1.cc
! 3f6848cede1ffc1bc45cb23558058bec  libstdc++-v3/testsuite/backward/hash_map/14648.cc
! 756e07b85f61d3ba3dbc156082abde01  libstdc++-v3/testsuite/backward/hash_map/23528.cc
! 83bc46552258f697fa3dde0b1be65e6a  libstdc++-v3/testsuite/backward/hash_map/25896.cc
! 1498e2e461711390c6314b8c19e5f913  libstdc++-v3/testsuite/backward/hash_map/requirements/explicit_instantiation.cc
! cdf3ccdd510207748f101f6478638db9  libstdc++-v3/testsuite/backward/hash_set/1.cc
! a7b8c9fe054fcdca3d423c045c72171c  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! 879596921400555f43b6a4ba0ff7ec36  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
! c92b9786603b94690d2cf39f66fb11e4  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
! f3d7a910f0170b61f3a70077acd25f65  libstdc++-v3/testsuite/backward/strstream_members.cc
! d96a1e87bb7bfbfcead85c1d0166038b  libstdc++-v3/testsuite/backward/strstream_move.cc
! 21c0a93b61537b3cab0bf2b3dd238106  libstdc++-v3/testsuite/config/default.exp
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/data/cin_unget-1.txt
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.txt
--- 139045,140972 ----
  69530b581e1f96f9614208c43d0c9854  libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
  3f797cc15e7e8d36add18ade39f64ccd  libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
  0750f0a7a2c692d4ce110fab2faa8583  libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
! f0b3c4177ccdab5c22d05b57d7905843  libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc
! 3feed6fe41379c0ebccc2183ec595028  libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
! 0345c3fc70d747759d93a7e136432d36  libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
! c55021b473383e5632a00e7b4d34b386  libstdc++-v3/testsuite/26_numerics/valarray/operators.cc
! f9497cec090faf0fc2d3e093121ae072  libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc
! 95b11c91bddd9f4188312c9f0203a07f  libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc
! 4a8d3cba172af4919d44a808f8f8dca3  libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc
! d8e63672500b672f0d86ed8fd0aa3f6e  libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc
! 699a5c75cd9dc16aad0122b740b3750c  libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc
! 619e0f6b507bda21a8dfafc46e211d40  libstdc++-v3/testsuite/26_numerics/valarray/swap.cc
! 934033c09688fd9ab762eb0cd76e3d57  libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc
! 632523170d6ef8395fb75d03f5b6d2c4  libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc
! 179fc2fae37bb5d703b66ab400f03771  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
! 502a917e1c5d350207bd57ed1e900781  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc
! 3fc1399734ce60579f256ac0df08a829  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc
! b3313e7934a5b2754cb789bc05d161ae  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-3.cc
! 8e7deeb50e8d5e783790c7508f410158  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-4.cc
! 50bb973b5b4d22f520d2de6a409347d7  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
! ddb9d9592312b8e92c8571c15124e086  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
! b9625c12d05e36ed46dd9b2f018d8cec  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
! 10471ba1f4e8ef3f975fbd823f93813a  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
! 1a9a4779ec87500ba6aa48d2fafa5ad2  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
! f2bad6bd98cd1a927fffd22132964679  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
! c9e59beed138833ac0d362f77df90f4e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc
! 479722e6111ab42f3ea3b7fcb1e904a8  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc
! 3cace43e2ba9c7dc1d69e83d8222c048  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc
! 6086bd822f7325f12f947768d810ac86  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc
! 79ad890766a7c71c7a1d7572c92680a3  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
! d65d029086b8c83543b45293b3c1a7d9  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
! ab2ae3839ae5e26bf36014a352982c70  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc
! 6f27687279e30e56e59263e26900f3d6  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
! f3bceb493444f24eda57a4dc07ee6e80  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc
! 57c6d22a7bb1ea3a6bac28acda19c434  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc
! 2446f4bae9c52cad3ec915016271d505  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/12206.cc
! bc08dfd00d149f15e27e90c62db36efa  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/1.cc
! 9d9cfe4802e7ae37d688fa4e8837e51d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13007.cc
! dfed1b45b661944c96ffbbdf72808323  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc
! 6f4e65b4d2597136ea6689fa0947c5d1  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
! 00ad0688ce566da8a2809c43d2a305b6  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc
! 5b9a4b97fd3816c8635eed594a5a0078  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc
! 6ab1e4acaa247a5a3c6b1eb227dfb15a  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc
! 110e4c5a6e6c4aac661dfa8cda4c41ad  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/2.cc
! 40d75f8b20c4436ce99c82cba1b5f142  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/3.cc
! c0597f84dfc78d33036fa5f3d9239405  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/9322.cc
! 751608c7e46c5ebf54b7d8cba65a518a  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc
! db3e1d273a200fc6a0c42e47c5ede4eb  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc
! 6016cd5ce7a11f78213e478a277993e6  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc
! 885927aafe7e3de6e4bc267ec5425110  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc
! 074a233b5239f9af1d8afd68af9a28a7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc
! 6f1a6d49b0ad7482dc28f6465bfc15ef  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc
! a16713ac7ee32954622f619c07eb0a10  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
! 9a3dc402795fcb3d013436b2ba2bd4bf  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc
! 9cca7bd176c2211b7f3338f769d3949b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc
! 7177ed662acf3fb4c82ef72b271d40e9  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc
! e737c1364970fc2bead2c8bd94123f44  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
! 98ac0fb5b13efea96a87ffbb7f927743  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
! 8a056f34ab3088ccecd1a94c78c3add9  libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
  9ea3052b628709239f02165e8ce7b838  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc
  7f227dd30a9b0bb4fbd5e2e64716e5f7  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc
  3df31280d906ad4697c37209af10e1a0  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc
! 86384653b7aabd01f2aaa9b9300ac5b4  libstdc++-v3/testsuite/27_io/basic_filebuf/open/12790-1.cc
! e37a8ebc77411964b44d3c52ca422c9b  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
! 9009f2b8c2f266a9ed6723da121d5abe  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
! b968e79b990148d08f86494b6212bd7c  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/3.cc
! badafbf66525f309c011dbb8e8fd21d7  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
! 09237f46d5761dab2a06742914d5600f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/5.cc
! bc0894fac6b34bd13e8f7764d9fc636a  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/9507.cc
! d1c51ba8340a26268072a06c4b372ad2  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/path.cc
! c472b78530295f5520b115674e3567de  libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
! f823d83e175aa03a20fa7465e18b5a8e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/1.cc
! 062db1865f80de6a760f9f8dafa41a7a  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/13858.cc
! ee6a5e5812c4bdc3ee4edb069e626eb2  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc
! 295bc7734e8fba596b76ef05edd6ac45  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2.cc
! 40af61d762f2c5f2a3e4ba4c63bedb38  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/3599.cc
! 4b8555d69ef1a3f1f8fd0d36840c5588  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9169.cc
! caa5aecaf4699516a6b9f99b4e43832c  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc
! 0bea115617f0f244671e87f8418c1ea0  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9988.cc
! 10e05cd6a77d70506bad46c1d956b213  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc
! 98231f84df6a08ff5020d3162b218f40  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc
! 4547e78c785957146387927c1308f5f2  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc
! c40061a867a371472450fd694d81f59e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc
! 81e26d395647b7748698702e400a7576  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc
! 6538422c8ecc1ae068ca1e8c20cf9a39  libstdc++-v3/testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc
! bf75ac9f5e1d7efcd8edf6c2c9a4eef0  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
! 6f9a1ca50a6d731c72ad4e6586997f48  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
! 6a9cf851cba952ee3da7b57d9344f257  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
! 94be19707741ff9a121a8e07fad31e1c  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
! dd618da319e84172cdde1e37d9d240e9  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
! 55e82cc0e5635e923539bb865169e6c7  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc
! 1c25ca3a03d0857f16c3d67e76ff102d  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
! a847db0f252e9c03e973465f57c4e5d1  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
! a0f263b36d7ee7daae190b2316dee90b  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc
! 4e634d18e3a89b5528e88d82652dc8a6  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc
! 0af4d9dca8636b774d9464733a370de7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/10132-2.cc
! 5203a5975313b88fef18513eb0d50550  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-1.cc
! b8a1c54e711532df28de8349a8d8d081  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-2.cc
! 6adb4aa038eae66b3f40e29464921f06  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-3.cc
! aa6fcac465744f1b9b68a45073367f2a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-4.cc
! 36b1772b2e71ac32485592e10822b008  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/45628-2.cc
! 566b8b2eba749956db7dab5bb5fb7b00  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
! 95e352d2db582f13dd0e5cb5135ac6ce  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
! 6653426686f5769949737c4b9ed69e23  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
! cc97da6d9b8c7ac3b492e440504eabdb  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc
! da86183ed8ab0696fce91af85d3d9fb8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12232.cc
! d7d212cfcd5a650d81de1ebc1398bab2  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc
! a6884739635bd2881e8588bee9dd37a0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc
! ceb4d92548ee90a9faa88cc2e1acec64  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc
! 816915bd4b86ecf6a18ac9f2256c4c6d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc
! 33cd5c1a9917372547aa07080bfd1cf7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
! 663969d072ad754980cfe988a6aed992  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
! 157aff372f7b76dc1ac26d612bb0c82d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
! 7593e493d287b6c169e80d347dbcdd0e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
! 7c45f479e6227fc103a031995d501ad9  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc
! 10c416b66db2e5a1bdda6860a73da596  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc
! 9f194d39bb05c1a4394d675b6eb19e07  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc
! a0271af610761ce0fb102d4e8426e12d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc
! 146299ca9d0969e399a37b730ab875f1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
! b3a5881feae0c986b7758d07e5c62f28  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc
! a1c2f50eee58bbde4f72998e5131e86c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc
! 8242d00d3c150af87336d80150bfb4e6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc
! 8ab18884479a3a797f338afc4d8f5f13  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc
! 9e45357b10169b9ad75cea72fd35ecdb  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc
! 8e84da7c5bf08a2991c9fe66d30924dd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc
! 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
! c218fef0e6d8a92b7cbc842e5dc687e1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-3.cc
! ff00839a28f4b54e945e1fd77fb255ac  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
! 3a3236786956d78d7da1302f5c9bafdd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
! b00b4dfdc69386659f4756506ffc7ece  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
! 2ef917e9a5820f0a166d61559a62201c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc
! 96c11eaf2b196eeb05dfd54506b9672d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc
! 52e959aa97a0db02db3f83e7aecad421  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc
! 70934bdcfda0c1652aa5c0b87339db6d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc
! 5f2c38738db8ec18addb1c63dfd5a131  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
! 4bfac7daf9ad5fead95409606a95f042  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
! 97789d835d5e7c8acdff565a4ea85dd6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
! 45ec317be0685f30495c67b891eda150  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc
! bb638d35b9b5db5716173cebe89dee80  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc
! c0860efb894789aedd2cc8161e8a2d1d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc
! 52be22d559a41e11b5647437278ef071  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc
! 1df45aab92824727cc0aa0e25c380356  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc
! a1c8d14e82b978097edd530f1b6e665f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc
! 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
! 58a1bb711bc11d5c3bae67abe1d03b00  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/2.cc
! 39bf3decf4e63d76189f830db95862fe  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/3.cc
! ca7e497865b33c9291500b3b8c2cf69b  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
! 8c95e45515f0260945486f609db92684  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
! 35b6914d8bdce1f26cc7225d7e136f46  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc
! 39834304ad4f009f02dbad03fe112aac  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
! 3ce10f543334b23cf9ea823157d5ba3f  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
! d1c27b3c2d31382b9824346941d8b8ee  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc
! c5e27ef90b170a3b0fa369c4a5f79b6f  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
! 939b7d1a5af138638d90a45ae1474035  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
! 21bf3a167f1f17c4089aa1bfc358acdc  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc
! 6118c6e9ef5b560d2002133ca1e3b883  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
! 228d3cc73493abeac9329d34de38fde0  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
! cf76fd7f485780587d2d77a12c426cf8  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc
! 81a85c1c6625fce27eb40cb63f03c970  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/3.cc
! 0f681ac397a7a117e9ebbab1b53df479  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/81395.cc
! 86b8f6378cb02fe63c2b1296faa225d1  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc
! 97f340b9628731ae22f6f9c6b654f4fc  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc
! cf73f4789442fb596794efe094750d5a  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
! 99665dd8d65cb008fc1d9756f7849b01  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
! c46e6df77ae5e53f6b02730ef78953a6  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
! ac9db3d7b0bfdc0fcd63598381265be4  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
! 1d0ebe8daf1b8ce4078aa14f2f00f962  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
! 3ee3c21bde5aab816640f169a388fe1c  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-out.cc
! 884a3ceafce76429531327575f149a77  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
! 10c6cbc5209af2f4f0815500e7c65427  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc
! b3bd05f11f2c377aa42d2e05d8811624  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc
! 88590ec94952602a2a682fc048550ce9  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
! 955be002c78970fd61374553c3bf4d56  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc
! d46e14a0f0e2ce341271d31a447721a1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc
! 444e64fbb4c203d3b817ab229a5537b5  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc
! fa94f28b60b83ea305d77470a2822429  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
! d541614df1bb489779bc7601d9b78f0c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-io.cc
! 447af08b7e119fe5951deefb964c34e3  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-out.cc
! dd260410510eddf870b6d94ec56d7912  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1057.cc
! 431f03e2a8139fe5aced9b76cec15e2e  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
! b2987f40fa97dfd4188833cf821f14d9  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
! 6782bd78f85344d6b7097efe763f3be5  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-out.cc
! fb51d10a85f22fea07239351ddc4f5da  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/59427.cc
! 83ac6a86ffe7a31713f95dad1bec09c9  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc
! a25aa508b5cb1fe873a895125665f24d  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
! 5b54bc698adf25842b61e363edd2f64a  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
! 2657a9aacdf7af2e2514813b2033a7be  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-out.cc
! 9996a474a7f2d8d78c285ebfc6415b4a  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1057.cc
! 230b08801ea0f8482de3cf1e5c94c298  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
! 2886ec4b119a8196674b658dd9468f45  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-io.cc
! 158dc1c7b5f7edc0b4e2c8a298d07d23  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-out.cc
! 5ff958ff3fe8f41dd5741738a6f75e23  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/59427.cc
  73d4eb67443415996209b1af2dbebbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/63746.cc
! 49af89d1ca5316bdf117aab7fb453870  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9339.cc
! fde7781546e4102440cfc04dd52775e9  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc
! f60fd4f31b23bc63020f466e08bfe034  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
! 5a5ed7f27008ac2e1e46108e5b719c42  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc
! c71eba6806b08a661876999a2cdcfc42  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc
! 35dd6c3f390afa1c494366f53e506062  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
! 60ed8e5dfb6f819533682ad8c4820185  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc
! bcec4a7c8f23caac63753788c9f2f1b8  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc
! 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
! a7e3c3d5309fbc0f2c64071851aeaf33  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/45841.cc
! c7242ab7e5029adbb391df685e26a152  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/9027.cc
! f75c25f73bc2eb9e1a936d55d13c6742  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc
! c564d4b592056a18c60bfacb6723c24e  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc
! 1d81833fd069467594c7d3976a0abb21  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc
! 57482fee6fbbd27bad301ff2a00d3d39  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc
! 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
! 77ec78b8f637e2dc31e7cf401de52b8c  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc
! 77c702842e711fed3e728074d48e1d55  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc
! 14235ea5b085ceeddc97d81ba518352e  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc
! 09dbd991fee40ee0779450d479a2f2f4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc
! 4ddef3dcde9ff17e2323d10cc58e7f39  libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc
! c466e25888e217318ee1a6a08c34a947  libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
! 5e6c7dad067ae0a9da6dddbde407b715  libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
! c7c846280fa3e33ad8bf83d0cd17f664  libstdc++-v3/testsuite/27_io/basic_fstream/cons/base.cc
! 65f64d1a13fda13f7ad08c9884433ab0  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/1.cc
! be74995b4379e0d8ab29b27bad8414f1  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/path.cc
! 6b47857300d0a6ee4513ef8527c71c2a  libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
! 946eebd6686392ed5f07e7ab31cedc86  libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/1.cc
  69980d2bcbecc6a5a4729e3ac50e8b66  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc
  14126d2598e6c553f9daec41ad04cfac  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc
! 6350ce1ab782d097992ea5b9d3ca6860  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
! d5fb8942c04bdbb044b9fddb1e275127  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/path.cc
! 74f1e044120e82269cdc44a998cc8a68  libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
! 166a9c6f683212306312728e3f3259bb  libstdc++-v3/testsuite/27_io/basic_fstream/rdbuf/char/2832.cc
! 11b276b857a06e5e4b19134267b106c9  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
! 16418a063c4c72271c6a57a3f2361d0e  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
! 55e5eeb1d69714806116739ce530aaaa  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
! 92efefdd99a5f9ae73550d7e73c2dcaa  libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
! 2eff984d49ff76a241f5f92274ba43e9  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
! 304a3b370a013a70d98f132d20d321dc  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
! 811849767807c7b366227710c9a5c1b3  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/2.cc
! 203b62bae316125c308410666aa56308  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/path.cc
! 0e6529553e697a779ef9a04e7abd19da  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc
! 22feddf4850e8aadad5793e417e763ac  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc
  d1dbfb61d085bf5907b5a0f89443ccf7  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc
  e1d62403868e87c75c61c1c45f275fc4  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc
! a67500742a95e67509def36880b0ea85  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
! 71d3322f746a822b1e688b19c22cce0c  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/2.cc
! 0d0767f5c56c805f6a522c0faea3b500  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/path.cc
! 060a035575e3f5eedaea3c75c5d004ea  libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
! f581ea7acec22d50844d7271a5bd053f  libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
! c88df818e391dec897ef780d7dc3cd9b  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
! 14c57f2bbc11d2f4a7d583ce798698ad  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
! 7a2184272725177e56e093180d50ee2c  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
! f2a965a4d9d9b0cf5b57beac1d77d555  libstdc++-v3/testsuite/27_io/basic_ios/clear/char/1.cc
! beb31ff584b712c4e6a2eee072b1636b  libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
! dc7e99239b9d4e6100487e5fbd8cccab  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/1.cc
! 8c8127ab9c532597f74c9c9263c29ea2  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/2.cc
! 087d1b324f7d2f5fb3290256fe38f427  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/3.cc
! c02daf702f40c081266374cb2063311a  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool.cc
! 45533564e81db83380faa43ff8840849  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool_neg.cc
! 0d0a9104ed59de90bf812636a18422fb  libstdc++-v3/testsuite/27_io/basic_ios/conv/voidptr.cc
! e72228564754555485f8635a198810ad  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc
! 8e46afb79931edeee9d1e4fc317993f2  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/2.cc
! 2439e2640de6371b9c5e69d88ad95b56  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc
! ccd809b6069b51b3e233c119a1b67ed5  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/2.cc
! 5ebd4db1f4b61fe133635fcb8fee3dcd  libstdc++-v3/testsuite/27_io/basic_ios/fill/char/1.cc
! 8913ab10dd2ad1e5d597efc09fb6d8b7  libstdc++-v3/testsuite/27_io/basic_ios/fill/wchar_t/1.cc
! 146a341e1d8a845515df7fecd74e842f  libstdc++-v3/testsuite/27_io/basic_ios/imbue/14072.cc
! b35a8f01829a52948bab170296605999  libstdc++-v3/testsuite/27_io/basic_ios/locales/char/1.cc
! 383ee00620ca4d99b92f8dba058f3697  libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
! 32146e241016452e568151a5059c5bc8  libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
! cf97fb53edf1b63b6404c61e69e975f4  libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
! 7dfd9e80ac3759460462f72a05ade673  libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc
! 646474b5b750c7ac1efdb854b37b6a79  libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
! 6e6668ee9171ffc031addb56b6e083a6  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
! a008e3b4cba1f61384a3f2f1649726c9  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
! dfafbe0c35032d8ab3704695b796adb4  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
! 0910a7d62bffdcfb3bcf3941878b56f5  libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
! f527926c8c8ab69798ae311ca4cc67b5  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/char/9561.cc
! ba281a4afec5c0092c3939408274cc42  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc
! 68e5d56662665e9a447fdbaec66b2739  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc
! 702b96b98c73fe5a35f929e6547b29dc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc
! a31003da9e0c994f73754ad665891af0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc
! cbefbf4f979280cf8bba3dd8a76b6bc1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc
! 2e5bcef59c5cb57f6d52ac3787a1b05c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc
! 7d4dbcb15339ea30c7bb73cc2ed1e70c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc
! 59f18114c4447c1328977df84dbaa7c1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc
! 49a3a5a82fbf5969650edb1a3c0a792d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc
! d103dc49c2db57e1fd547e902885d8bc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc
! 3ddc1ec4fab58f2b81de06f2c4d252a2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
! 283d4454ce46127c4c867dd9c0c6ba27  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc
! 152fc7d523771c73eeeb7133fcda9932  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc
! 35a29ea4440b61528aca769d9589bf53  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc
! 077a9e15f6618765ba98fdaebfdaf133  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
! 38a812e29127cae187fad29aeb76a555  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc
! dde741b03861208566267352def0a513  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit_throw.cc
! 3edc8945708cf56121ca82477a990628  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc
! 304b0cab209a0d79462e318a214ac6c6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc
! cef9fbcfe8872eaf410ca24317e98e39  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc
! 32afb961e0a89971595b6897cd60dac3  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc
! 42819a8ae83770033708c291417f3b4e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc
! 0c5e82a03e5e4d346baeb9088169c4e1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc
! 46071602f3aa35b35c46210119698053  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc
! 9d12490d0d149b57cade01dd545cc17e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc
! 084e34661f7ff54915a1769e36c191a1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc
! d7c5a951cff03b036b1eb7e4eee52c5a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc
! 6eb2de89b10b1c1b74d0a6532c9f1c0e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
! b053ca1bd73200cb3e92a06990ba75f1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc
! f3dfd97ba48d16e338bf0f0062e6b3ad  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/9555-ia.cc
! 19cc8efe532817d4971505dd4235df67  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc
! ad9a64aab6cf50a51fe98106afcf3746  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
! ac8559640f19872316430e555181c054  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc
! e7b5cbb926b0faa5b6542f84f9476b1d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 90b40c95b562374ce0ef2d393411885b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/1.cc
! fbae1ffe939cbe6633269ef5e7513304  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc
! 734d1d2545f308950ec96b8b19da29be  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/2.cc
! aadcac9a3c781a2d770bfcd77f8e2b57  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/3.cc
! a9198e93484ad006ba5e02d2c6177bbd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/4.cc
! acf3fc74c3f78af1973893bc59b90262  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/5.cc
! 7db8077494a687bb87964f48e5eec398  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc
! b93827c8c952db0f7a25e9d84e4542ab  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9826.cc
! bc8511fcc0b703d1f1bd471b86e8efb5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
! 003301cc63886c9a64a89edeba2825ef  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
! f6fbbb263374be99934c8301a7fd3bc9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/overflow.cc
  4f3d3110437af7e4f5208a2434cf525b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc
! cd0d9fc82cf0d93dc3bc7b9cce62c9f0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
! 96a0140f401202cca4a18105d5df2430  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
! 7b632acaf63f1ae5da12e86518e1f435  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
! 3f07a56d1f9b60bc768e9d0c5e9ac618  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc
! 9579a1505fa4ba0c8ff3b92d80acf969  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc
! 6e21fde7a6d3eb4e41561b8d50f9c66c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc
! 45599757a0fdd05785e7a444fb9665b4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc
! ed310eba9f896ab25e01002d7100a316  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc
! a1967ac583975dce297e50b627496728  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
! 1b852cffe6f44b7d3fbe9c061b7be68c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
! d8f314422b95f6f53456b9a9eedb5fe6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc
  b4f815b9c39f208740f02123c6525269  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc
! d5d2c4e83ba919a2aad23e638bd3bc4f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
! c038a1312abe200da6824c987298f496  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
! d28469673a309bb6109abf857270e391  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
! 592c998e5b8846e0122447f6a6024c0f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/3.cc
! 03598ab5251e3f4cdf50160054edec3a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/4.cc
! 2a000197536b35c432451dcbbad74c61  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc
! b1c3e774221ff33102dd71262306d505  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc
! 368109e1e5f9d1547ec8964380681ba5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc
! b89c9156394eed3437579962d5e58c10  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/error_failbit.cc
! 6447937299d7c45ce5e55c6203b4767b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_badbit_throw.cc
! d91d6f084da20e09ffaeff456c452bd4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
! 8db48672df4103f51c270643482d7abb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc
! 42c164c4229751e8741e97ab8272d646  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc
! c0d0b3b5b7c6286410a3d459f469c096  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc
! 1965c36856e2425debb4ffa904a3f0c6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
! 8eebd74ae5910a62d2db53c888baa7cb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc
! 184276b3b27d172fbed6e41f4c70cc6e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc
! d92ad2e472f15a383a159d2ca650327e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc
! 02242366c9fb50defaa33d4e4d01774d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc
! 6f1673455ddd4d3c92d1ec71fbb34322  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc
! 964df5ce172f93a82f5ad24f3c5deef0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc
! 51cfd8dba8ed6142f8c72114dfade39c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/error_failbit.cc
! 2b2e1533ee3910c0e70f18ed4bc787ef  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_badbit_throw.cc
! 2eabc7a0fbc8cd3fbdd1e3929139a47c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
! c027076ec6b6951b84a95a4a20278199  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc
! d396f52ed7b2d6cdd41eae5506895cbd  libstdc++-v3/testsuite/27_io/basic_istream/get/char/1.cc
! d7ec6288b03c2bab53f2a54df94de72d  libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
! b5c178b412c3a5394a47de2473a835e7  libstdc++-v3/testsuite/27_io/basic_istream/get/char/3.cc
! 9fdf706e13b92e9cce04e4a6f2a07549  libstdc++-v3/testsuite/27_io/basic_istream/get/char/lwg3464.cc
! 1428ae91e9ecbbd8916d742476eafa98  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/1.cc
! 9964cfd65cde9d9ec1f0ee4dbc9d2abb  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
! 0914a1732760d0f2f1c97170973a453d  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/3.cc
! 015ef04585d491d5410f3fdc300c2477  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc
! 95cdbc87ebc879e58ae0184c3c482102  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/1.cc
! b169c74e767521e71365d846cb54be41  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/2.cc
! 13b1777e4ec3b238b4fb5c93d271c093  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/3.cc
! 9c1d2ba25e75871a6a9929d2aed43daf  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/4.cc
! 7b7606dde3afe4833610220ecde314bb  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/5.cc
! 24cacc7a2208ea3096039fafd8048222  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/6.cc
! fade561bfb1ae3803fc240712c4cc314  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/1.cc
! a67f367407fb098c22bfdbea653c6794  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/2.cc
! 7994ae7987e16e4fdb952528708ca561  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/3.cc
! 3224b6ab64087c52bee4dacd98e37441  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/4.cc
! c39ad911e8680a15c396a668601ce6d9  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc
! 88e711c8eeb9dffc9688be08118da60f  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/6.cc
! fb0fe2962e7f17cf17c17454ff2cfa79  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/1.cc
! 8a62dbba7fe626130179504b5304230a  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/2.cc
! fb71d7277ac46768cccfe7eb78814dc1  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
! d5b143042bc50b2579e153f786d652d5  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/6360.cc
! 5809ae819e82ce0cccafa320d9e667e9  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/7220.cc
  e0b8c86bd25f4fc4a5f4baa02e810d07  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/93672.cc
! cbb5c84b6d12aa7e7f4fb9de30d270fb  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/94749.cc
! 7869e782cfc0d27d70d9a411620bdcd7  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/96161.cc
! b2a35545be438e518a05f4abf197a253  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/1.cc
! f38f5f504afb934ddf45ea555741fec7  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc
! 6f9f747a48771ffef2676c4477efe153  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
! 27038a0a2b90a79f298584d370f25cc4  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc
! bc8afebbe08efad2cbbb86730d7a6083  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/7220.cc
  b970ffcefa492a97a5e8206924debd61  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc
! 858b929b464f30ed93da594add578938  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc
! bf06aac844f1c62e7334fc03a601e68b  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc
! af5eec7c284c78a3d3a612878e9a8ab6  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/1.cc
! c7038a299f4e6badb8947aabc92d11e2  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/12296.cc
! 17cb616d47a96c7ff57eb883092d571c  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
! 06000bbb2c3beb1528cd16326ed841c1  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/1.cc
! 59d7ab0d95f2c5b684e4170ba0b791e2  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/12296.cc
! 3e4433f78d4fb49de8e928b820bca101  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
! 510ab35ae1b4d6621b441eec952e4718  libstdc++-v3/testsuite/27_io/basic_istream/putback/char/1.cc
! 3cf0929194556b246fc2f01b4753b539  libstdc++-v3/testsuite/27_io/basic_istream/putback/wchar_t/1.cc
! 427733fbb43468b88e27e4a8799e7317  libstdc++-v3/testsuite/27_io/basic_istream/read/char/1.cc
! 05adb5d431391620a313529b0ea71a25  libstdc++-v3/testsuite/27_io/basic_istream/read/char/2.cc
! 2d5d82b4809adacb21ec5fdec694862e  libstdc++-v3/testsuite/27_io/basic_istream/read/char/3.cc
! be50c6bf3a0aba50f661cea80bb929a7  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/1.cc
! 72fcc3ca8846256ad0b034290d9d3dc4  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/2.cc
! ec16cd58a5f56571766e9d5dce4e2754  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/3.cc
! 4e34dd0239d86c2055ae1108bc868fc8  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-1.cc
! 8bc2c92484528a4bb32e0642c86d9465  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
! 4dd5dddd5792bd23731e42437a51a413  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/8258.cc
! 8684bd38a5634dea10d5fe93614e6712  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc
! 83a4bd04b845d4365c99207717ba6a57  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
! 0052ddd384c8dba6853f78d58786d3f1  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc
! c6dbfb97aaf92a7f19d4602bc85e61b0  libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
! a5d558b2a516cc14238b2938b197fed4  libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
! f9766a7bde0ee6384841ae36bea4caee  libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
! a2b13d5272e7b624fcd0a2b74dce4e49  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc
! e71235f9af97edf1f480b35aa6d4f680  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc
! abd57c527ee4bf8868df813e5da40740  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-1.cc
! bf7ddca8e547deafa32dcb88a8c0dc83  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-2.cc
! b384517dcf841ae871df92f727def1db  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc
! 680527274f23ce2456505d4b98f7195d  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
! 0e9599e0e954088f425edc4a60e2a779  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
! ac9358d38315e96bc82db3c8df907559  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/2.cc
! 244b1fd1aa7169cf590fc46dbedb7bd5  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc
! 7556fc77ff300c1dc91e43c903206c4b  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc
! 2b4bcc85f04f22c4745bcae2645949b9  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc
! f03fc3df850ebe753b86fb859b288620  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc
! ddfe0a3c8683b9599290084cb295e143  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
! f002be2a8ab7e85382898cac56e060b4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
! 351bebaeeb6c825984d7f74ec35c0a81  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/1.cc
! a8aa24fc874be76d84731c616524840f  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc
! 7b43770644e6aa3fac1aa1cac293f1c6  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/2.cc
! f2933759ed71e1edf4efbc1bf298cf3c  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/3.cc
! e99d30ede896cd852e7e5b040f2b2939  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
! 04ae45871a27170ed2dde2142ddb6c40  libstdc++-v3/testsuite/27_io/basic_istream/sentry/pod/1.cc
! 190cf53105b503280edc113063a5df31  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/1.cc
! eed277e3b5bb0ea42b5e2b5f530581f0  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc
! 9770dfef4b0f740a23100c6337a4625b  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/2.cc
! 81da1df0f5e93dea260637c5621e53f7  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/3.cc
! 314b86525ef7d060da283522d3bbb2f4  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
! b28d2b4f986d106a6e5a214e6ad93382  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/2.cc
! 9d7102e117c8d7ff37d3c967d068fa7f  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc
! b2b062a0dc605c8d1c621497c65b837e  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/8348.cc
! 257f7a046385b5038a39a9814983641d  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc
! 45fdabb5dd2264d9fd96f2dd0deb4029  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
! 0602dd5e7388f098787c6b04afce7285  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
! 4a007ac89b9819d62d9ff48dc7787fa6  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
! ff0cb5950ccec152edf4f4fc7832c598  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/2.cc
! bb78d6f10b62c6b24d3304bd3bb939ba  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc
! 34e54e63d33856d2d0f3ec76011b8693  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc
! dd744f23540e2f04ab0662ab39e9eee8  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc
! 271dc46da61c6873abb93177dfc10b01  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
! b86ab71bd9f48a69ed98fb7f9294d31f  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
! ba0d6672e943c2991c0810403bd6ca27  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/1.cc
  f839f1109e54bd94ee7c87d858176de5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
! 044d135f8e976e172121a5d8c7cda1af  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc
  b9907ab1fd112fa27bbaea52ca154a99  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
! bebf7a07ac27dbfcc901db9147fe5d33  libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc
! c4102d45976ca7c177875aeb7a9c3d2d  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
! 5316681d4e8205fb90d01589912e9786  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
! 7ef3ba48f5633fcf4066d083d5d64533  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc
! 8b711f3805237726219ea9c388081158  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc
! 213748997487128fb0dce550dbc35112  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
! 987516275235b1eb4c298acb701d0c31  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc
! b3cfbb11e8ee2d9bff86d2a19f58c120  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc
! 55a67e27f3f1ac21ec3d7221716b0da9  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
! 881da518caff24daaf33c072b170248b  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
! bd372946a0c35cafcad9c0fddda0277f  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
! f5768dbb42f69df7af30b3a5a3bcd3ef  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc
! dd48e8ddbe125742bc4acd1ac0d3bed9  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
! eff3074de5bcde1403f808d02c6dd083  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc
! bf91603badb6736b48a06cacf3d37dd3  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
! b7fcf798de596b8ce497f58c9671daaf  libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
! 98d03f4b524e321ad654930ee1a00459  libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
! 9accf2c5bdcf8267050adfcfce79aaa0  libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc
! 493cb97aabf1387bc52f64467105a514  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
! c100240c379a9c26a9a2733253f7b6a4  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
! 44805ddc0a16a03dfc73ac8cf519b5ac  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/2.cc
! 48b84a0b4507aed97e96a62f28ac7bd8  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/path.cc
! 2a3f97c230d3886e2fb17339772155d1  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/move.cc
! ec1b7235e3490ebb4ecbfa49fd17a929  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc
  58b32fcc6d893b14587659de8f2a4882  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc
  efe6976e6c85b407572c5d0d1f555a7d  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc
! f8b17fe405ac752e51c1701b99a7c804  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
! 1102b91c5c9e897b1473d06bff6f4734  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/2.cc
  888ecdebb025b2ab4a82eb0b6f4d859a  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
! f2a302e6ab39efe65e49e2e78c6bb723  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/path.cc
! ff67e5f6db658d478f0c22c3a4e185e5  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/1.cc
  f07ec8dae6b45db16185451bfc562fb7  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
! 5cc95401f5a49ab1b2a497912accc581  libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
! 0138f77d7d43366ef1515bc9a2013c6c  libstdc++-v3/testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc
! 7a5589cb40f4734bd28954418600ba32  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
! 8a13aa15d654bd009a8aaad2c4f4dda0  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiation.cc
! 8a71064fa2b28a7ef5157d9636e5414d  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
! 595846f55c6f2361058133209d9751f9  libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
! 01e50903f096d4ce501d268436e3b529  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc
! ddecf5f53888ac8b1d31dc488325a434  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc
! 901ca31c8617f387e4fdc34fbfb515b6  libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
! cb5617f06a75660c858b4efd202ca3f3  libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
! f336da489096ad19bfc175732d90fcd0  libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
! c1615e5b3ceebd1effbcbc011877f911  libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
! 3edc8c9279eeb1dcbf4a11bcfd5ee49c  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
! 0a4bcb200b68a767e0bebea299e01e80  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/2.cc
! d163153d92a9a7790d68d4d90d379b14  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
! a18c4b2c2b520f29d030b98ad6227ff2  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
! 339e289f2b1142c6c5281d1d9f8ea363  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
! 5057d332428ae18566e2bdf8079845c5  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/lwg4188.cc
! d7db5bce087f395f04ecc8f6ebf0900d  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc
! 25dec65dbaedaad7683fe6ed1e48a56b  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/lwg4188.cc
! 667735ec7ac63bd101f05c299fd7f2b1  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
! eead85af0fe8cf3538a561472c489157  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
! 88fa4b26307375fcba2d2feb03b0d2ec  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
! 4c55cc41f68ad5d95bf618dd17a25539  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
! 7301c243cc9881c74d0408e90bdc56db  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
! 74bde2320960ddb0d45e1be20f0b2f79  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
! 3fb6872724b92c4378a2e6ee288f79b4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc
! 8002860174ca7a7b5aa10361a9f784f1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
! 95d633202a2cff78026d0db44c44ff11  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/23871.cc
! bc3a7822104db63921d43b873b0b3e7d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
! 599de6ef6ed27b0a2f849718d3fbc05f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/31031.cc
! 3ceff23fbf49409de761da7df01a6d98  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
! cdb92f70036b85eadabd37e7c70f65e1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
! 4f647b79c33107acfe9964cc0fd4d923  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
! 6de8b008108c7296b4a5287cffbb7bde  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
! aa87a2a9dc3943eaea6fd74a739d684e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc
! 46012fb4c31f720d39ac8181d8f93b3a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc
! c55789b83011162a25fae5a534df8475  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
! 29f84588cd31cfd1b105074d9378bc90  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc
! f16d41a17fdbe919be3478162a77b9a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc
! d2a0eb246a96a8167b3794e2ea4912ab  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/lwg4101.cc
! 6312d8efa7d92f8d6a16519ac3d21cb8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc
! 456db46635888232194e7ccd53e8b6cf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc
! 8e98607c427c732fb59c806346fca5b6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
! 90b695855ea9b3eb6ee960e4c0f7508e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
! b0276431562f46ee6d0d3736f313d230  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/31031.cc
! 07165ec79913013712cd09ce124e3ac7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
! 7e0682a0681e2887cce719eb6fb23992  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
! 56b3d276ee0a1b02a455b05c08fe8f27  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
! ff98d20eb05deb048a6e23a77791a352  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
! 738e896aab613cca08f04383c0c19ac7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc
! a7d5a891d969c5a31eedccdaad2061b9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
! d3ea0707f7f3f583217cf142db06b08b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 4b8f0dfd5d944ebdeeba6fcc4914c15f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 18dcb5fc570ab98c9f98de8a55b687af  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/1.cc
! 52d73c6b618d4db1f75feb7c53647475  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc
! c8dd8d212d6ed4c38af4209317d28fe1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc
! ebffef060630f1f0bcb52685203dfce4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc
! 018ebafc9e840d559ab89b0690fff2b3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/2.cc
! 048d3ebe3b5a556130bf34933db55bb0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc
! bed1f083fbab1a0f21fe58d241ad3853  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc
! cf649b7bdb003b0d1ad1efc5ecbd2140  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/3.cc
! 8d1f70518c62ab6c515fab55339c1fea  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
! 03d7b0cfd5f0fc7257452ffd77084c63  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/5.cc
! fff099b7f63b8f8cb4f440ad578a74a3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/6.cc
! 4384d1335343536b0121fe7e4684ca68  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/8.cc
! 0d911bc0ca4ec4d6615b9e406cca3e46  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc
! cd65d1b2d05e50f889342dbd68216caa  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
! 8a6614156a116b78c10622d48444ab45  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
! e18b0e89331f1b5a637f77b996952fff  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-od.cc
! 15312b9ad0a861e7596bded1c13ba55e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-oe.cc
! e3647dcb4a89b3cd6f78932197cb2f6c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-of.cc
! f0d66236c51cb7e9e3952607c038eb16  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
! 3e798ceeccf025ba9b2e2690f239b55a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc
! 076887850096ed99891d7005f2948062  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc
! a132825d2c6faacb66984f17a36c5423  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-3.cc
! 04c1511dd9ded0f64b6f46179ab56711  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-4.cc
! 973d3824ca44c1978e17055a70cad682  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
! 2837fb46ff890cca418e2c6ab19fcc91  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
! 002d54f5268674040ada50a6f3c3ef50  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
! 8a5a6b0d682bf75811ad4df85274e09f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
! d5c2707584f9f9c0eccde4782110e41e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc
! 0a46e2f2413f3bf0645275d31d203e42  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc
! c8049d8d9e8fece0985355e3df3464c6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
! acdbc524f06d001a69bcd7f32a0da4bb  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
! 860b99737bb443a596e0151cc4e24a1c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
! 6af92b99aca4e9647fb21f5309834a49  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
! af40063eb9f5d4a8566472367ae755df  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/3.cc
! 16313bf46130aec6fc4deb5efc07e548  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/4.cc
! 903e8300e049e18ddbb3deb91f837aaa  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
! 60f14d4569db38d825e5df28b0a6ded3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
! b7910721dbc1f8444f7673ed363b0a35  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc
! 9e007632d9ad25759f95402a46419db0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc
! 0c6c0a1edd8273d4e9a7814221d46208  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9555-oo.cc
  d175b74cdf90be7b308276fabe9bfedc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/99692.cc
! caea00b94d3fd0f093c3e62d90aaffd6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
! f4a7de6a649beb323cf0732d0e90edb0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
! 3815495bc2409cf9164e4acf819e0d21  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
! 54155705fc123702ef2b39822751855e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
! 4b13c4ed581c3a2333fc726c0e2fe7d8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc
  ebb7447c68529f67037c0007369c17ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc
  8ca312efc1bacdd7f01c7bde4387eed5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
! d64b94a6517d40486c45fc44b11ff70a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
! 6c5af155a07bc753cb29f3205ef3bdc2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
! 02a0380ef9148e7670a5da54bbceb9f2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
! 1ebc55ced21f6bb3037e5a8317ebd82d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
! b1e3997795bbfbee3423e8f4dd7380e4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
! cba8ca0caa7af71da96d41e25db17b1c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
! cf092bafad72b6b406c6e84b0407138c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
! 19626e34c89af86db70faddc71bb1851  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
! 7c302afa44451aec6382cd7fc2824e86  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
! 74014ce88cd5ceeee475391d2fea9d5e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
! d038a82bda82bd2e33937c08da7ed389  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
! 17f3248ad0ea8ebbf7dbf9f92454c880  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
! 04806b25524911621c4f643dda5234be  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
! 1b8e6c3ec4bc6b612ed30b8fcad62950  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc
! 48f388a070ef008d386d72e4e2af9165  libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
  1bae61507a695195b3563ba6ac5c932a  libstdc++-v3/testsuite/27_io/basic_ostream/print/2.cc
! af1944851ec828f70d726dab0323a69c  libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
! 615ed69bd77d2d1b79bcb9b10f0fac25  libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
! 7ceb7e0a471319bca5cf548b15857408  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
! a1d6716fae2ca2e523f99c4e6339338b  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
! 375a24869f8b5e47299bca39486edcb3  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
! a3cb2a1dee1ca600776953f464d0151f  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc
! 05721a84b074ce25bbd71a4812bc1d2e  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc
! b2147c72c2e1eaecb05432bed9871367  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
  83ecf48decd6af498e926fc3a67f113b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
! 5e34175c7f483d5b9fb6e5b3db06a542  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
! 96c18f2bd70ca57a5c774c5ffc259d41  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
! c522bfe4e1d741a96a0ab14ed9b6a3dc  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
  7ddb76aa072349435f647b2c8021dbd9  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
! 52caf7d25b13ba51e567aa9bdbbb4562  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/1.cc
! fec2e88287a2106f82965622a58f9873  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
! 76a4b274c6899f0630d6580c3c74ab9f  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/pod/1.cc
! c8e278ba4e08c54c069a9dabfe938ef4  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
! c65c218eb2716457e482fd35c1cc70a8  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
! 9b028edd097a687acd5adb34e6803a17  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc
! 3009e2761dec6c65c8a33150d65c7bbe  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc
! b6458568d71a82a28f2ff7b5ddddb15c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
  34b746c25af9062ff603699f54f8417c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
! aafa09d244bb60e2537a532377a02ffd  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
! 38d541b460fab99e53fe6c4a665cce96  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
! 887b0b5c44e1335dcf8e8cdefb9e4986  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
  374b556b2a046b8a0b8b251715467b42  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
! 83d00a4f27bc01e0bb179f655df1978f  libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
! 3d1d4776f67812b57caa942055f2efd7  libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
! 31522e1dca0791025e49b08715cea9de  libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc
! 8cf21505b7c57bbbdb2458d40ef91cc3  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
! 37c017aed89ca93195776523aacebf2f  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
! 4cfd677ee3ccfe4c53cd82bc0391a39a  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc
! 0034586c5534795efa76c00892f9270b  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc
! be52236370614302a7c457609aaa50eb  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc
! ed16e4df5a5c6b34b2818a1e7d21ea4c  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
! 71a006531de7ee318dd65366d1afe812  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc
! 223977105923aabe68294894139c7941  libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
! bcdc3d1e6c1707d3f7a584058e9a0f55  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc
! 90897520f40b1d36029ab67314d15e6b  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc
! 2c168723bea45c5665b0ed5f0351d6b9  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
! 3fde30060243d7c020acc2666e150460  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
! 108f95bbd4dd602c5c141af5cc2a5e3a  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
! 6e3c55bc850872b1343c50b4428a45e8  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc
! 34012c6d717ad4b02653df93f926f06a  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc
! eaf4381b92a93a4feff692ed884c077c  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
! e8368a1f5a4507021271e5f468143434  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc
! abbd9b1fb4fdaa230d64572b409058c9  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc
! 800a137f0513323483e858a0f7d1782e  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
! 853cd92f3893eae7b41fb159d4c04dd5  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
! 669d15f5933a5daa2fcb3bbf0315a55d  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
! 90124f80d799779e0e87349a98bda043  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
! da2c2b467183ad5f29fba8e49599ecb2  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc
! 3fb33756ea6c11ee14b8e099a70211d7  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
! 4d4a596ee0d665153de74b3a7c46ace2  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc
! 2cde8a32de1891ba15cb5c9a17603870  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/1.cc
! 4ff3ba41d05dbc8364c05b2e51eb70a1  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc
! cdfb1ddb6021d0d1099b4c07012f2081  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc
! 5a07ab3c6ab6a1b71fecbabb321c6d9f  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/9322.cc
! 47856fc43102b85a84d9dcc64714b7e8  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc
! cc1305b6e56c65bd362e182efe52c021  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc
! 59f5428a4e1abc6c1865d76d309cec45  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc
! 264e966a6258968adc580a6076c1575f  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc
! e88660d672785f9f84a4b673ddd8ef52  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
! a2863ef94dcc4791ad14b6d5d520ea08  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
! ce619b9ac2e7e409dfffb61fa1143031  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
! 30f74398a51fd08ad17ee145f295e569  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/2.cc
! 7a308adc664098fc6ea7e9ae8949cb15  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/3599.cc
! 0cd4ada793521de3e97eb22430327db4  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc
! 3e341489f7768e52ca3c5683294f3c20  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc
! ddfc84e68a2d21ef3ffb4b570ba31451  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc
! 88adaf64a524c034ec57a4bc36818a80  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
! ad1c97908db0416a7d532e5a4e56e6b6  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
! 1a5de91ea2ad03f159755b85504d401b  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
! 4b624602cb14331a7f6864a258204c2d  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc
! e82308e827b964dc6a01445f20e6bbb7  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc
! ecb48f1111e77389dfad5b7bb579ba69  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
! 32dc38233ca209f8cc955f791f92b48b  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc
! d4feb5471f5641e258552d573f398749  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc
! 0e07da4d045dd41229e69749f124422e  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc
! 94a74395b9fc8872c7a8949e784cbd08  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char/1057.cc
! a5153cd9581d72d73d86bb42ab5318d1  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc
! b4a3041533419f5c0fcd0d982acc5cbb  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc
! c4d5da150c52d1633ef34e48b8fe52ce  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
! 52bc3841d171f331dba0b5e5e955bb11  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1057.cc
! 0a441f883ccc19c87ab539fc723f6aa7  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc
! d7db8e2b41f38b909a1e0920380c88b2  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1057.cc
! fec94b5be948c6fbe130c86fe5e07479  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/char/1057.cc
! efd0685b9bebc2bb5bca2a1f6896737b  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc
! 7fd0e38500578efe1fda7cea3aa8ac50  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
! 78f8efe736fae25dc2b9c879f245a5e3  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc
! 2f05a1c756fe0700d9237c1fa23ea781  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc
! e858aa991970a61f9123814202a4e3a2  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
! 26381397ad49887883fc473db9923738  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc
! 9ccbe8160b0b3f44e6ea409381df308a  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc
! 9f8eb1e05c9b9d6567fbd466917939ab  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
! 4132683e1ae9dc52c75fcc3a1908ef6b  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc
! 7a54b1c941aef9006d9187f166b46335  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc
! 8f14c91d23da03f9166f102c2b09db58  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc
! 5b8d835400404644d180da140841af2e  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc
! bd842a95f97e9ee17ca125721f706bfc  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc
! 3c21a92d26e1e37b8562b9b1c261ac79  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
! a6cf7bbeb2188760d92bb22acd063d8a  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
! 2158b6359686db6870694504957a6556  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
! a4a4fa0ea8566d83f3f8eec1207d1181  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
! c0c2b9d52a88611164c0ef8d07817111  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/2.cc
! a43f512cd2deac3c24fcbc026472c9c9  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/26250.cc
! 58e0ccec532a1140f04b4b148d01d1ef  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/3599.cc
! 5b64661eb54acf95bd689b7f7960c716  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/9988.cc
! 0c522088fc23d09a6c38cc872dfb382f  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc
! 70af868e4d2aaa6ca79d84609397144e  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc
! 1d5519f5d84c3192cf118db44922f1f3  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc
! 2bdcecceb66270dfb4e4c92910b0c53f  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc
! ffe38b0e5279c7c29a14208194630ff8  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc
! ac6f0c7c5d470a637432dbc7801b4165  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc
! bbbbda7b170f6ecefbe22f5cf3136994  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc
! b22ffa6707c636739ffedf33ec5cd465  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc
! 99d51340bfa5239eca4aafa441a779b7  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc
! 58fa7abebf55f20b13fd347895420449  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
! bce9ba7ec10c07c809a2294b6488df22  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
! 25917f105c915bec384331701418e77b  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
! 8f0abe601cbe743cb9f35b04d60abcba  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
! 60bcb0c63e3dd110245836cdb0804c4f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc
! 735924198d169c55ae0a609c039665a6  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc
! 06743310fd1388888d6f177a19dacc0a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc
! 861f3fa03ccba25d1abaa98ab1ce90c3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc
! 86db7458c491bb0c6d4fabe0e132be99  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc
! 9188e93419adb308769e25c8178a6d81  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc
! 223be98a3802be47d5e3d6484ab8a740  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc
! 73fa9f3e82157af51ec56b5a0088412e  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/2.cc
! 0bf08df93f51c25173e9a54b0d441a93  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc
! e9581ed0d710956b228b1f3bfd4aca0b  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc
! 14ce4ccaa759ec0f3e290a9c9464cf39  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc
! 199525fcb38cea11898c58ac360f7903  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc
! 9235dd8d53de0a60465778e962cc9ccb  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc
! 89321698e2e243e6b5bdf223cab5560f  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/2.cc
! 072fe5caad7d1ad38761c6cb93184918  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc
! 4a78fe44443713b09af78011c0e54c89  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/3.cc
! 23e1b505613271b4a9f29f40ced0c502  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc
! c9469735da680f653c3abfaba5aa08bf  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc
! fa73fec26fbfa2ee36384dc5864f1140  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc
! ae0addf170466b634c7b36a0703b4abc  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc
! 0acb0055de455b1aa1eafb695da245aa  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/1.cc
! 20897f43558c6ed045fbb780131d56f2  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/2.cc
! 06b86a2f8f838f2f3a191eb36b2f6ab9  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/3.cc
! b444903defe42539d3ab439f14fda09b  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/4.cc
! 2e2ceabfed7effa93ccc53121d84d3eb  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc
! a52c6e575433bd6c9c4a6ed1367a2d6b  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc
! b7cc147c3a812f5f2da6b318c0bc15bb  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc
! 5d8ff25e44a643ff42eb905039664d63  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc
! ca0cc10b31ac515b5759357b97f0eff5  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/char/1.cc
! 93a0628fbd25fb39f68f640a5d2647cb  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc
! 9dc06c7a004ffb1687c8143ddbdf4b2f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/char/1.cc
! 3a83bb366c1de93a41f71f3b9340c0a8  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc
! 136b4cb13c552a33554601be584b35b5  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/char/1.cc
! 629190a0b3893a8abb5a22093445aa01  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc
! a02642301927514f5ef977773ed213d5  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc
! 7d44dec950853aa9e0d242f5410c2917  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc
! 084ef0657cdfbfc97dbf5d66110c1c1f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc
! e41c61824e5010bec11ea4d4fe6de909  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc
! 970c954d49a75f4098ffaf86aaf24150  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1.cc
! 76290251999c291edc10232c669eeabc  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1057.cc
! 2f19aafb7b38f61885a4ad07afc61026  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc
! 95ae4131ec9443e20ab701bcb4906331  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc
! e04480d7145ce32dec8a7341a42191e0  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1057.cc
! 5d5763931498f8765e2b3974596a0829  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc
! 74b7cd869a03e9d7aa1a92258e32a2d4  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1.cc
! 82ec9cd87e71de77976877f4db7c2e36  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1057.cc
! 5db8f1c1375d0025aa2d290b00c7bdb8  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc
! 2b27192737376570179c9e1b8b876349  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc
! f8aa587512ea87bee4653998bc8698a1  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
! b87fd9bae83b808001e3ee87d0feb501  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
! 7de37da1e279afed871c3828a6207e71  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
! 204f77fd451f3bd1806404fc960fd04f  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
! c980c2a0238b7f2bf45c99ef24a3f395  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
! 2c05a0e0d5e4ac8d232d3470c245b185  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
! 2e35c17a7a4a4a47b972bf8feb19aac4  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
! d449877293554738a9d852c892014ae2  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
! 6f0e199b6dd362302b7d0267818576b9  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc
! 5ad4ecbad3dc478f34eb22eb8897347e  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc
! aec1d60765be5f4bd5b8d412f61e91e7  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc
! 7de1c1b003dc0553c2a8d42f24249a19  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
! 3ca377401664424f8d2ffee1deea44dc  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc
! 6b819b49ad485b6a1167fccb45da476c  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc
! 3390b605b7dca999f72c9d3a28579190  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc
! 10d739e3c272b847d0bae58c005af352  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc
! da08e10dcc531fb464c2c64d877ef751  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
! 8538e86d929d3582e117e69002504c48  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
! 10dc6d2aba71975fdc36d4c5877a83dc  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc
! 2f8d3a60b795b99ebadde47922aad85e  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc
! 13620a124051ad4ca76e7c1f6cd5f73f  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
! ef3c66fdb5c8f1f37370d898bd3a1467  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
! a02fd111cec2a8fb9a282ed9f700b7ad  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
! 3b19cb34fa2f6ea2d15969ce93f1ab63  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc
! 326d6601e84f065e6a8ab2a59a6b57ee  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc
! 3d88fecc512207cf2a3f6b1b584c0e88  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
! 01311f3ef19fb29de40638a75344cae4  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc
! d2585b125d7da8bde228e6fe97b58667  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc
! 51d6c99dc70b5397218c5ba449a02ee4  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
! c51ad6429b3cead78636516df9120a26  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
! 946004c81702227205252b447a6481b7  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
! abb3e0d75dacf27436c8c71f20515e5a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
! 9154d5289024a978fb9bf9ef9ce5a54b  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc
! 231d1123b8483cacfe2f1df42658c186  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc
! fdef4d3158c6ccccc4494407a70cab45  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc
! 9e0ccf7d2ac0993397ce3e46677abc2c  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
! 7e8170644d92a29e5bdb8b6868d2b911  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc
! 3108fa03fce60e27b2ccaf7d05bf1a81  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc
! e0d337f552cbb4c70741dd038d8a3b46  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc
! f5f3471373e393533d92f5ac657061b0  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc
! 8754fc343e14d37c5819158dca2886f5  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
! 16bcbb06d519751930c97d6683547fcb  libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
! 652128f78948693317b33d8829c43a43  libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
! 107d2e3f73def0503b40d614ec79d3c1  libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
! 09ed17aa2c439da88d2f773413b0669c  libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
! 050ce10ed8420e7b77c78ec5d223cda7  libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
! c1d00d776bcc2faf7e9d7852dc35328c  libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
! 959968799c249260067888b9268c30cb  libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
! 107d2e3f73def0503b40d614ec79d3c1  libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
! 09ed17aa2c439da88d2f773413b0669c  libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
! 23e0152a291b92cb68298cc03b345bbf  libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
! 4f8408b879907f8c16dbbfb58377b133  libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
! c3110f937bb5f7fb967e7e02a4dd3d92  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc
! 22591c6716497c7e3980d55bb9a6455a  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc
! e2b14632b61d76b6f6f8b604ebcb8ee5  libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc
! 3fd9b3fde01f287a469e7f09dd1cfca6  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc
! 2dff616eb308390c0717c3321c6c66d2  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc
  332c803edbdff9c841b88227cc22332e  libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
! d1f0e916f229734e625b546c6a662e5b  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
! 781eed66eee1915b9df3f877a0dc21c4  libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc
! 94058ff22097cead2c6fedb6506197ba  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
! ee142306ed24cf1d5154f59deee36164  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! 372359d55de72ec3a093fc0900ad08a2  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
! fc8586a4769e2c15574ee03725911c7f  libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc
  46997fabaf4a1fd147c82cc9004cf051  libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
! c6340bccda7626541040d7e41372d9a1  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
! e4b54876d5f4a0667a143654a6dcc028  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
! 5e17c21676430821e73c45a469892221  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! 7e6e98d18354569689fb8d97fca22b61  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! ec7abc9cce2e0a24384fcc664f165a9b  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
  c4a0f1988ab64c05d8acb1647b35c6b6  libstdc++-v3/testsuite/27_io/filesystem/operations/bitmask_types.cc
! 4ecf73b34ab721e899db28994ada53db  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! ef3daf825f2874adbe038a334604c7a2  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
! 50201cbf3d5f7e083fdb4d19f27b8f9a  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  10b6e95add9984bd29138cd25bc3a19f  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc
! 20f36f4dce08a83db851972d65d11183  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
! e103789b6f55eb129bcb0786297ccbc1  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
! 0715d26bf1aaa9d25a4c593ebc739a75  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
! 1e65ae2a168ce43c3d4d4fc0e9070147  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
! 9a115daa1607b65bb88504dcc55cda39  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! cdd75a3aa3fdbf1c96804e429dfb100d  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
! 090e5153f83cb40464b4fbb0b41652a1  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! 25af75aca20d7f43b2517d9ce56b7c4b  libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
! 63be5a3c067bf8c58df4f2e1a10e1d34  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
! 22c88037b133d9c9afac864b57d4f75a  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
! 09e787d93c83c353884b09f81f023b10  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
! d3bfb9763a0417404cbf25c413706c20  libstdc++-v3/testsuite/27_io/filesystem/operations/pr118158.cc
! bf078a936e8205966cc6741bda17e038  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! b1bbe044bf2cc15fe9a6ecc95613510d  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
! ab943d9bc5490bc757c8302dfa9a2a91  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
! fb0171897b130763a1ebe8406ab18b30  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
! 99ec46decac90cdf2549db4a6bc128d9  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! 2bb08fe7776156238f12f9a7f4798d55  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
! 05d39af031ecce987270ceb9b70d409d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
! 1d9f3065c6978d26c56d44c42e70dc5f  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 099ce0270a6ab9db7d982f896efdd3ed  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! ba135d702a00f91c63a3d3a9ed5a5215  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! b194b68fd58de57a858ec853a4df3b06  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
! a0808d3059f8f754091190b67b5ff9a9  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
! 6dfbc01f57a0a31caab30c71dc1b23ba  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
! edf752b97ccbe2f44c85dd9790fac631  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
! 00bbf0cef1ef8d71c42683220e5fc1c5  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
! c9e627eef8b26fa8fa1472dd18c06ad1  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
! d8b5c7bbcaa9de60c969091d64c33068  libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
! 252c140b112051a3529e549c369601e8  libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc
! 8827bc9f09af2eced5f1d143bac148f2  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
! d406f9f786619de550b6d317827282fe  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
! 09db1d962da8c300144c6fe67a87123b  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
! f9564ca33867f98acac58615ac2496ea  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
! a11e1676ce109cebd57b9180939646b0  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
! ac83ba1d2034f5ffe1e0fdb36e996b29  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
! 2858222d172a0e848d0d2377558dad59  libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc
  a22e69eb2c027825b8fb3e0e6df6a97d  libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc
  3bc7c7fa91cdfae8b85e98c050b994cc  libstdc++-v3/testsuite/27_io/filesystem/path/construct/102592.cc
! 08cac3b3ea2a0589b5bd5a0943d3e6e8  libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc
! 357c74c41c28b6c405c5f38283f6c05d  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc
! cbad5bd8a3f1a3843c3e4303877c52f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc
  7e3f9d185f69161e92a1fe6e162069f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc
! f06b223825c629f2242a2b90af07ca2c  libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc
! 28164ffb4a1eefc5b68fa7be5172bc56  libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc
! d0ef1d2ec3c62d17327d8b8811f65b39  libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc
! 43b6a703827ddb73997821dec89fbca2  libstdc++-v3/testsuite/27_io/filesystem/path/construct/locale.cc
! 464e5e282e5dd19db998455991c5ef86  libstdc++-v3/testsuite/27_io/filesystem/path/construct/range.cc
! 98d57cbd7be5154a069e89ea721f2774  libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc
! fabed521ebb3b0b0e8beb4b8316daca5  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc
! 7efec456417838b9440f1eefe0dbf0f7  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc
! a0e38966c3ca7e1b8345ee5f73d65d02  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc
! ac9a98c042737dde3696a1ea7526f026  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc
! 716386928959c1ae287cafe5e65c9a8d  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc
! a8505d74d86f40a4252dfac09c8027f2  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc
! ae7f8dfc3c0a094d27de0e7380d0796f  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc
! 89ac5283edaaee13bbf56b519cfe7cc8  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc
! 415071740b075c23205fd03fc2583025  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc
  8f37bcc6544c96dc14a1dda07d716d75  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
! 1315a344fa7932d3d9e74dc5d4b956f4  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path.cc
! 0f8324032a87480c05b529defd4e519c  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc
! be4a0cb865708fcbe980ba2520935cba  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc
! a770e6eb8118a890c8b58b2062f46eb5  libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc
! 8b51b82f0e27ef327d943ce1d6341d57  libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc
! 9a67bf80772166b613f3240e6df4c954  libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc
! dc3399ac3a008e39c83b77528ddd4dd2  libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc
! 3d760c1903e2bcda593d7f0b13717518  libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc
! c79dddd5c3ed40e1925f8203a007e6d2  libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc
! 7e1c092bba5d694799a5fbf88ee9fa77  libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc
! 0fb11e6e9fbe3b11e208cf09a49e49e1  libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc
! 6b2807ceda5738361b68ac369d3ffae1  libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc
! 06f30f8e65dc0a517e853f0b05ddf86f  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc
! 8b96f1c14d1079f040ed1950889ba06c  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc
! 27526d4dca3df186ffc39b634fccb93e  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc
! eb9f158da14283dc5751de944b2716b4  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc
! 1f4a16f9da23fc664962a80c49fa4966  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc
! 529b0974da931f3d7db2fd67df520357  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc
! e4ee1848de36352b2073ee5198545622  libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc
  18be18b6013e71480b71b201979f3916  libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
! 30c3d7e847486d5ba98240d75662cbbe  libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc
! 7972a76ee589e45a50253113cabe0240  libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc
! 7a3c5ade30f4092436fe0f94cf149e8a  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
! 982e6898fc2bc164301e7328c8e02506  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
! 98cec1adbd2f4ac0d14d935cbc9ebd4d  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! ff6fbf429be82dae39153ee6baf1d0d9  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
! e7ddb257026a459a2a64961669cafb62  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
! dbdee3ff1235159355ba43d4190ef07d  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
! 2df2d7786b5baa35e61d981612a941d0  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
! c814560c4c75b31cd8b89eddbd6772f5  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_filename.cc
! 508b60e1bbc31635998a6d752bf52fc4  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_parent_path.cc
! 3f0e887045b804f3924c7b987baf4709  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_relative_path.cc
! e5cfe1331cd8d4d442f54e2c3ed2693f  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_directory.cc
! 513b5858de73bf1bd4201355e3ae57b1  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_name.cc
! 30b8cd299098cc3ade06cf5da5f8deb2  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_path.cc
! a3f2de94f4a54fdd4574fa4ec29ce575  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_stem.cc
! 34fa1a1df8647360b87166201edb90f0  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_absolute.cc
! 8974f5b8a0d5af48ba2b581263e2b335  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_relative.cc
! a6e413663425cff9f65527bd9e3a0733  libstdc++-v3/testsuite/27_io/fpos/11450.cc
! 4c8427589b1798bd65491158d660c166  libstdc++-v3/testsuite/27_io/fpos/14252.cc
! bd9a4f99a09536ef65da70baed8b0bc4  libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
! 879673652bb9bd096f59e50894c28928  libstdc++-v3/testsuite/27_io/fpos/14320-2.cc
! 3ab1ab57c82e41872c3ae75195082f4f  libstdc++-v3/testsuite/27_io/fpos/14320-3.cc
! 7bb092764fbe5223f8417ca8ab6a755d  libstdc++-v3/testsuite/27_io/fpos/14320-4.cc
! 142bdff2c1caae03814a95ff3bedde92  libstdc++-v3/testsuite/27_io/fpos/14320-5.cc
! b788c8216cd02809e9d9897f3b7ad404  libstdc++-v3/testsuite/27_io/fpos/14775.cc
! b64d7b895052f40334956e0042c9d725  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc
! d099a382f32243aed494593109b04f04  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc
! 8e6370eac0cf29ed899b064f5acd27d6  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc
! a66e8ecfc5b61b836257b71359853f22  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc
! bf91e61f85cfc562221129d367d07471  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc
! f20155f112fb54678d41c28a4e072de7  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc
! 004f652ef3a837c010b66709353319c9  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc
! f1bcff451df49480bc72405be72cd044  libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
! 2f658dc1e07940fb5a9acc0a43c0957c  libstdc++-v3/testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc
! 8c1e90769fca2e8d28cd9ccc873144a4  libstdc++-v3/testsuite/27_io/headers/cinttypes/types_std_c++0x.cc
! 7ac8b5c670feb29571c1d8a5fd952acd  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
! 509d73f0c3be4c8baf67c48e71d3563f  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
! 7672a3b6a76926189372e4c4602dc4df  libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
! 7e56c85a5105b1e3c077e8b1ae0c3a62  libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
! 095aea38c24df19ebf1a75cc45346799  libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
! 016cba95e79f1982a806a31a3d385476  libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
! 9dc71dacd680d46169723913d06d0d92  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
! c1887347e4ca9992a6489e1356e1f8f4  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
! b03883ceda3b68f2d77a3d1aed1e97b5  libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
  563e1beef4d8fc03f62916396fccea88  libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
  16eebae0b45ab9320a5df94e03dfa4e7  libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
! c05c396c7021dc9411a1ccb06fd306e4  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
! 40333fe978fdeaf8740ec0bb3f4be8cc  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
! 6681f33f70d7ed7b5dcbdef73c7aa294  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
! 6cc93b5467b93269af8e4490dc75ff9c  libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
! c46ca8790e107b7a98b503f52dd33a81  libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
! 0f1edbfe9293358cc2fbb7a16e029815  libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
! aac962e3f0adc58120b8813a11b30466  libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
! 63773c0ebae0c1b03ee0f681ba56329f  libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
! 454002910cb0a807f53e595464904df8  libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
! 3f68ddc5d81fe79675ec5862de657281  libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
! 3c83bf3cbbc8d8eb32ec23f11e289834  libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc
! 6f11d4801598decf8aa8e9c702882e93  libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
! 798697a0ad1d00e7b617caed01c2ebb7  libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
! 244cf6db5895d1e95b596da287cfbc88  libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc
! 8539dc870d0ccc903741c767fb93aec8  libstdc++-v3/testsuite/27_io/ios_base/failure/cxx11.cc
! 432ca1310043e643ce57ab8763fd7128  libstdc++-v3/testsuite/27_io/ios_base/failure/dual_abi.cc
! b918021301eb05be84f09e32ca40b71f  libstdc++-v3/testsuite/27_io/ios_base/failure/error_code.cc
! 7a4e56868706bb912c1ce08355b52177  libstdc++-v3/testsuite/27_io/ios_base/failure/what-1.cc
! f9dda0e68201ee45b10e6fe86447b27c  libstdc++-v3/testsuite/27_io/ios_base/failure/what-2.cc
! 1a1b0975c2062f9d1e2b02d86c684965  libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc
! 67942dd6159bf964279c3cba1374b16d  libstdc++-v3/testsuite/27_io/ios_base/failure/what-big.cc
! f8427d1bbabce142cb333e5086245cbe  libstdc++-v3/testsuite/27_io/ios_base/state/1.cc
! 3909e5a922951cd36e7e6dc64bdb78d6  libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc
! f4eaa4b6bc99bfeed6341124626583fc  libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
! 48234fea7e2fe9169521cccf66606151  libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc
! c9e8d26e4be74f217fa6ba6a0d1aa515  libstdc++-v3/testsuite/27_io/ios_base/storage/3.cc
! 0452318d0e7a2a074999b6dd8b1733dd  libstdc++-v3/testsuite/27_io/ios_base/storage/68197.cc
! dc8128a10008fb2669cf618266b747a3  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
! a7d2f54afc515189e362a4ceecd33e09  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc
! 89a09409ee60724ad1389bea43bbbb8f  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc
! 9e29f94e16fbab207f9fd160fe7e5acb  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc
! 673dee88b12e3373e936bc6870bbb7c9  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
! bd30f27bd84c19b0a6212dfb5420be27  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
! 42937b07101bd5ed8ff152fc384804a9  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
! 65b21c3059044e4092830a89d44cf179  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
! 41be8953ba699620a2547f0e70ed300b  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
! c5cafa28356ad1c4a5daf35024f54e38  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
! e33110c333c0021a0181ae1290a18ca6  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
! cd674e3aedf4cc13a9f9816f93b2def9  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
! 206b006df6b8eedb36c4a416b0d23993  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
! 69d21176d452f11164e992d365386836  libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
! 65af6259234e3498f73e3a288143621c  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc
! 20a39fd83926fb481fc8d8ec39130834  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc
! 7ff6dda4bc5de3678e7593af74b5f041  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc
! 78dcb3dc39d7f7a88193e360126bca71  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc
! 72305d4600068624a2a6a2a897d3b47b  libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc
! 1285ed12a03e59dbec82d0cfc9eb020f  libstdc++-v3/testsuite/27_io/manipulators/basefield/wchar_t/1.cc
! 10d7ffecc82fd006746e5db12720c64d  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/1.cc
! c5bc2b9f1870ff02e2e2c2aa0f571a9f  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/51288.cc
! a10caeff98ffba4a534ee168a2227d04  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc
! f4920f7469ce2f2ea5f7cd4b4e216828  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc
! ff367b161b7c1e1001008f5353af4fe5  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
! d3cf38cc49c8d8bbddf8b6cc8c74d83f  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
! 01caa26d687f37447ec9f62e433e434a  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
! 9c44a00519ecbf72020411e6e3632a31  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
! 74767619ede9787fd0bf1bf544a89f95  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/1.cc
! c10ea17bf23165a0edf23e1a71a51ef5  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/51288.cc
! 43d282a663e4dd3ac946e02671127b0b  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc
! e2bf0e740561a03ad1ec670805dfeca6  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc
! d82a2907416a6653623fcb2e90fed11e  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
! 220fed63b47200eb1f6eb3e44448f9e9  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
! 4801cf29ad3965e045949069c78215fd  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
! b2078f4bb38593125682ebbc44003b71  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
! 34fb54ba092f61e661874259dc0f163f  libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc
! 8284a7025ac5bd6f16804ef712cb6dec  libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc
! f59dc0745a98b37dfedddbc7f6f31b6c  libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc
! 8049c487f0cfae2541449ff7260712f9  libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc
! 7234e17a709d4f49afab17680efba661  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc
! 55d366046bc242ee0dcc8f45ea872771  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted_sv.cc
! 0e410aff9561f982af7353366284d4ef  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc
! 313da0500efcf592e61f9c82eabea721  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc
! 0aaae08bb2efa4e29963e382a356886e  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc
! 3ea1e4f1cbf74f77828f7da0dab0c0d9  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc
! 6002b5034de256aa0471c9e08a67e909  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc
! b1e7842889640db93be0b5750993bf58  libstdc++-v3/testsuite/27_io/objects/char/1.cc
! 9f848475c8ab32884954f1a596264605  libstdc++-v3/testsuite/27_io/objects/char/10.cc
! 27cf6211d4798799fbb706fafc00b26f  libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc
! 063d6011f7f15baa6f35104a3e0aaf61  libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc
! fbe333583e26e55b3c2db9e514fad672  libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc
! 013eb8569471935944b8ef41b53190af  libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc
! bc2e26d450284fbb0474d4bb3694a757  libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
! 02aa1eb7405035482af32bf0551687fc  libstdc++-v3/testsuite/27_io/objects/char/2.cc
! 40daed130ad42cb3c6f94430ddcd6899  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.in
! 131404c501fd041b38e26b66d1f95324  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.in
! 75b06928a74e001568b6878427505ecb  libstdc++-v3/testsuite/27_io/objects/char/3045.cc
! 287b9554366887197fbc7c3cc0b54821  libstdc++-v3/testsuite/27_io/objects/char/3647.cc
! edf800dfae057994437384914e40f6d1  libstdc++-v3/testsuite/27_io/objects/char/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/char/3_xin.in
! d38d0a1eae6a2c5420b8e30c319c8402  libstdc++-v3/testsuite/27_io/objects/char/41037.cc
! 5329949713c42f918db6e3f7fad39f93  libstdc++-v3/testsuite/27_io/objects/char/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/char/4_xin.in
! 0a0c0924f564f9851385002144c5cbee  libstdc++-v3/testsuite/27_io/objects/char/5.cc
! b31ed3165ff2b5ffbafad89ff19afd91  libstdc++-v3/testsuite/27_io/objects/char/5268.cc
! b0cf74db6341b633b30415330c9024b8  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.cc
  81dc9bdb52d04dc20036dbd8313ed055  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.in
! e145f362b389ab2423fafdb7832604c1  libstdc++-v3/testsuite/27_io/objects/char/6.cc
! f0b4bbda7277b15a5e47d5f30971abc4  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.in
! 501c711441eb9bc12538061d4e7ae902  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.in
! 384959b15501a5c0aa36f87d15e718c7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.in
! ecbca6fed7123cc1a961b8100266e346  libstdc++-v3/testsuite/27_io/objects/char/7.cc
! 1bd56ac11fee7ef8be5521e271a88f42  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.in
! 52b8df3c348e66d5429bf56bbfdde4e3  libstdc++-v3/testsuite/27_io/objects/char/8.cc
! 49b0d8aca1f438b6a004e73ad5a97974  libstdc++-v3/testsuite/27_io/objects/char/9.cc
! 27a5ac1f219254f1a8ccbc59bb2be648  libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
! f02f4c84bcd7d418bd9edc404f1c0b0f  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.in
! 3206a62630fd7603ae5e2b7958039c67  libstdc++-v3/testsuite/27_io/objects/char/dr455.cc
! 8b8df6cc99a4729d153d3b44bc8dddc5  libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc
! 45c80af0ab5ab423c6a577093b4ec7ab  libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc
! 7e3bb8a737e3f2c4031c62cb5b620c6a  libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc
! d6984074f6fd55d19b1afd62c28587bb  libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc
! 487d03dd5541251e863bff571fc4de92  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc
! 5648d0b6226b5f6a96e267f86200fa18  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc
! fa0eb4fd26d594247b33390e478dbfc0  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc
! 2cb6469b546fe3fe2503aeb8ed876569  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc
! 1a6ae39eb15b4d024bdbff0f0889a81b  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc
! dd7b092c79773bb79f156c5982975e20  libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc
! 6eb19f81107bf2ea579c70e711d30bb1  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.cc
  d577273ff885c3f84dadb8578bb41399  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.in
! 4fe46ae11b907e504b02cb5700f18dc7  libstdc++-v3/testsuite/27_io/objects/wchar_t/2.cc
! 3d4bdcea9867dff64ecfcd849086b6f5  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.in
! b748931f738c08dd8ab967fb9c374f22  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.in
! fc8ef86d557f935c7554b9b164780d03  libstdc++-v3/testsuite/27_io/objects/wchar_t/3045.cc
! a4c892ade810bc673e7d4bfdbe148a09  libstdc++-v3/testsuite/27_io/objects/wchar_t/3647.cc
! 5409f53f0cd51564cabc7b67573e2168  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.in
! a4ab44192184051ed5be9e1f9a254d1a  libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc
! f731f7b0c86d5a734d5d6589dfce786c  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.in
! 701e2aa47076e7eb3becf4ca9922c38c  libstdc++-v3/testsuite/27_io/objects/wchar_t/5.cc
! 392790834e9f4fc06c486980e4756502  libstdc++-v3/testsuite/27_io/objects/wchar_t/5268.cc
! 9748ac042b760af3c1f0c1c9c6f7e49d  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.cc
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.in
! b12165f42c67998d5160f7cdbfc7c48a  libstdc++-v3/testsuite/27_io/objects/wchar_t/6.cc
! 9f80db6baa7b33451840a776a49f5249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.in
! b7436f6153242055b2ca7d790ffb96ce  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.in
! 62d8e9ddb9f2cd00a33d5240db073821  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.in
! b060125a0d2a4ef3f57ce5cd7d45e0d3  libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
! e56dab50f67b690d713b72f208b00df5  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.in
! 205a268dfd7e9a26ad3170e7645baf7a  libstdc++-v3/testsuite/27_io/objects/wchar_t/8.cc
! 75188dfd00ef93b5dbad6127034b6fe2  libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc
! dc50237b9a188dca3ad1b419917dc0ac  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
! a162ea18ff3d28cd7aeeea1675c6a24b  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.in
! a1c4f918083d14a8f68c408d81dc2b13  libstdc++-v3/testsuite/27_io/objects/wchar_t/9662.cc
! d095945bfa8f4820be22bcf1f8dfdc41  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
! 467ec92b026e6b4f0a1bdab6dc8a349d  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! ba42996521876c8d789f0ef5b3fd846f  libstdc++-v3/testsuite/27_io/print/1.cc
  a439eaf7ea52a89548ecd3344bd3c08d  libstdc++-v3/testsuite/27_io/print/2.cc
! f6c79e469ea2b0dddd1990749fa4b787  libstdc++-v3/testsuite/27_io/print/3.cc
! 41c3964b32a5464ba221ffa3ea74a0d8  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
! 79d9837b37043df8bea853fceafe9add  libstdc++-v3/testsuite/27_io/rvalue_streams.cc
  9f91196bd2ee848a8c2cfc4258d112cb  libstdc++-v3/testsuite/27_io/spanstream/1.cc
  d8cec34c2a6b668a6dc232e2f6df1ff5  libstdc++-v3/testsuite/27_io/spanstream/2.cc
  33aa6ce2c2e3d3959e5a01a4971407e1  libstdc++-v3/testsuite/27_io/spanstream/version.cc
! 43acbccd4081a397d8a655d965216fbd  libstdc++-v3/testsuite/27_io/types/1.cc
! d8b4b3f3f7c9267804db56f477da4446  libstdc++-v3/testsuite/27_io/types/2.cc
! 381210bf9d9a3ae18d2880f325328894  libstdc++-v3/testsuite/27_io/types/3.cc
! a0227b6d0b9de02ee5e9bc1791ab1743  libstdc++-v3/testsuite/27_io/types/4.cc
  2311cea628cce5b052734c24d5a5cae9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/107376.cc
! 05564ec41fa1cc5efbab112e962bc752  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc
! 7f04c3af0f5cffa4bbe5d817c0700964  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc
! 993e97a35c87e21131829e7beb93f7fb  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc
! 78181719df43d47fb207cf3b1f6ea6f0  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
! 2ba2e2ddeeb967b80f14cb8605aa7c6a  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
! 0c965d074818819f21b17f1e2ac9a24c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! a4670e4b210f2200aaf59e9ef7ba1f98  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
! 6fc4126c3f209aaac7b08b6499a7c2e9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
! ec3b2f66935345bb6175d1871bc24a5f  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
! 5fb3776ad0b90358473fe02331c28497  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
! c16380c60d110ecccb6c9d7da2ad234b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc
! 8ff2667b809b1d0a148d6853c8cf8818  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
! 23d934aa6e1ea0cf1fd2afd6d1e382d8  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc
! 96960d2541db4acbb35fc2af6cb45134  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc
! 9d7f5e519696e4f3011c4e1922f36b6f  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc
! cc967c3cf015373df21f7c3046009def  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc
! f5d43de4a7dd518b69caa3a333d36879  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc
! 88832fe77b7b73f8d28aa155d3b94b6f  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc
! f6cbeff5f9270d1d4837d59b60e9979b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc
! 39d92c94d81cbf9dfcbed819bd30997c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc
! eb3e93d670d686830364d02f35735323  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc
! a89fdf05f917664da2d4933b3c1500d3  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc
! 92cd6e1ea1fd47cdc7f93a56ac8288b3  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc
! 568ae9b8a0c25b6fbece370f1c5c51e1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc
! bc899b4bf08bbb43e947d62ae6f7ac44  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc
! 863a0c4f80aadfc6e7f011a41a025276  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc
! 35d98e4dad5e50fa964bc16e1f0f3426  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc
! b4b96b87aa343a484cd4ca3d5a6fa59a  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc
! 69a24bff36239a2181901e229d7751bb  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc
! 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
! 8584e3c174f7d94dc02e2d976b604fb9  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
! 402d55d11005861916ddff439bd5af7c  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc
! 3d2c7f9fcbb6442b485bf2afbf7e3c42  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
! 72488e47d970d504dff8edfb25d0dc3b  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
! d68bf85f1a45bf55c005b4ff402d0905  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61424.cc
! 73452515755482f186d9004790e01b6d  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61720.cc
! 57a5e2dd011c6c6cd23a5634740caa01  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/basic/string_01.cc
! ff2635f9b8567373d09b4babb2fa2398  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/dr2332_neg.cc
! 76241fe1aea9f5182c6f2c70e13d11b6  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
! 646f95caf5173817e0784d16e105c87a  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
! 852bcb70c38158a96377b57ee7cf5ca2  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
! 08c76bdb61f677d6facc3c95aaabd1af  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc
  5a7641749deafb9050db1a58a28b53ec  libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc
  be5036bc868f3f3488b30d40a412c9c5  libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc
! 3f019f1909aa0a45bd370cb5fc5828b4  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
! 0f25a5de104865054614a1e303ec4b3d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
! 89de34f711deaf4e801eef66ab9e201f  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
! 4abdb5c8e06d5b84dce9779c7b54537d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/lwg3296.cc
! 00f809898929df2901eabb0ca2ac692f  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
! 301661a8f024dd5719732828a3f44c20  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc
! 5785e08333360d1255e58ece0c281f9c  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
! de8848791a322f41510a1168af3dfdf5  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
! f96c681201fbef39ad138ca4712eda8d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
  195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
! 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
! 652adb4bd8048b006c471ccc14e2d729  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc
! 6ba7fc33bd9bf551385404108aa7afdf  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/83598.cc
! c96d3654d02e2e3158f1024ddae1e024  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc
! 2aa2378eab6ad84db316e844fcb797b9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc
! e457e14f0e7409b99bc85f5223b060d7  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc
! 97a1f56f7e29c87e715c4bb867bc32a3  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc
! 69388f9d6c0ca45d718d23940cd8cd2a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc
! 6b0d17e12c4d6ac49eec4230af92ead6  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc
! f073ee99ba3e393441d0740c4afeaf1e  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc
! 3c1a3cb48b2426a3c6f22921b6aee014  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc
! 128dd4025698c5f3045d4ee70bee3006  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc
! 3225aeaa0557a791369a7375c2d7b141  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc
! fd705e7123f7c295610dc2a880d16fda  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
! 6d3b92ddc39248596c4204af2e1cf9cd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
! 9b6202d0acbf0b57905ddc68c41a9e1c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
  9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
! 630a80296f9212e506220703031f2fee  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
! 5dcc5c31b672521e361b47aba5ae51b2  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
! b8707e176cb9577140181eac7289fab8  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
! 7f5d5f0366b39db8b0cdc4f6301bb7d5  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
! b886698077f452348c59fe26e9554df0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc
  2e401c1bf8aabcb389e6eb25f1356cc9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc
! 084d28e7e5d6ac15b6db60eac18cd4f6  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
! db7ea8a0f108956dacb627ceac279905  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
! a2094f2041c85f567385d615b7b947d2  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
! 38fd56bb84843f7e6b9c1148df7c2f73  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc
! cbeff48f79eb8f09d2fd6a6ccd66611a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc
! b73478886c6bf59d04d3cc03d106a770  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc
! 6c938178ca664f843f4645295a0fcc48  libstdc++-v3/testsuite/28_regex/basic_regex/imbue/string.cc
! bb79628165c701ff11cee244906eb931  libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
! 0483bc1618c9113e3d4733c3a3caccf9  libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc
! 0589148bfca5ca85fd07239da55cda0f  libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
! 0c590168b436c1293636d4f4bd87f1bf  libstdc++-v3/testsuite/28_regex/constants/error_type.cc
! e535311e14e594d2802edb7295d393c3  libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
! 5c443eb638d358488214f137f72c2f82  libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
! 7516def478253628c5aa04bd934a4bc0  libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc
! c7012662763460aa69c80bafd3ec7d59  libstdc++-v3/testsuite/28_regex/init-list.cc
! 240c4d9209dff595bbfdd7eb407fc744  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/64140.cc
! ca546c8c49660a0f6d1830153b95919f  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_01.cc
! 14482d7bf902432bed3d1cdb27e831a2  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_position_01.cc
! 77d8a2e27b35fc981d6d0b3fff3e7f55  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc
! aff6044a03ef805b9cb471768b0feedc  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc
! 499dab4e6a8465fe484858c3f5f0719f  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc
  fb837b2517e3a52c0fd562c8a8f23065  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
! e17cb837cfd564075de56be29ea55c5e  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc
! 1678c6d7f4dbe929e4023433edc20129  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc
! 24a6866fedba0227cf0b0e28f1f13f3f  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc
! ad56f2e34d09714620c6413552c9a1b8  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/64303.cc
! 1783c8b3861000ede7c014719ee53148  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc
! c568ebcaef4a4206e187337830641f95  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc
! 5570adc14b154552446d1ec261a70161  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/dr2332_neg.cc
! 593ff2107db4a5f166526701db3e1d56  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc
  01b6adc11e3690db0828583cec9212dd  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
! 05fe82da8378e6c8b25049ae5f27d8d3  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
! d1177179e9404eff22c185aa33a79682  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
! d4da49c91fef98b9dc6e85c46a39b1f4  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
  e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
! 4ac4d52e9f3540c01b25b8b65883f2c5  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  ae3c69a2af41b63301190a3e8902a808  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/alloc.cc
! 2c4f7aba0811e993bcacb3e10000f380  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
! 8a9a71313d99bbadeb3a7cc288e0f0ae  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
! 961d9162bd7ddba970e5aeb9940196de  libstdc++-v3/testsuite/28_regex/match_results/format.cc
! c7d8ad8a817d41cc35494ec21732ee7e  libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc
! 23a118dfe3a16ff9ed1059bb6b0c4f13  libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
! aa57ed68e4edcfb3e7596bc48a72370d  libstdc++-v3/testsuite/28_regex/match_results/swap.cc
! f48cd8f8404faea7406bca79065432c9  libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc
! 12ca08b767c3b23fe894d09761ecff74  libstdc++-v3/testsuite/28_regex/range_access.cc
! 2a3ed315aa8d9af70545a577c0ac3328  libstdc++-v3/testsuite/28_regex/regex_error/base.cc
! a08e441754442ad6ffddb8e72f6e770b  libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc
! 6d0f794b188102b0b969e5328cc364ee  libstdc++-v3/testsuite/28_regex/regression.cc
! 6ac263ed235e89d2160774454d851c56  libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc
! 8a83d9bbfdd0672fdd43300d2969a39f  libstdc++-v3/testsuite/28_regex/simple_c++11.cc
! 3fcaa26bc2a68e480801b6db79daf0db  libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc
! bf35830eec7bc80303c1f749391f1a89  libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc
! dd7ff1a980ecea0123b389f23e011538  libstdc++-v3/testsuite/28_regex/sub_match/compare.cc
! 744927bb9641037a3ae33052b86e218c  libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
! 21a85f5481dbe4b5391ca3d7fe897a00  libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc
! 76dd75db91b1c5d9b38815491a1ee838  libstdc++-v3/testsuite/28_regex/sub_match/length.cc
  491895502310c40d3c4fac8105f3662c  libstdc++-v3/testsuite/28_regex/sub_match/lwg3204.cc
! 791fba259b6de7a673e9bda016ef3b6a  libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc
! a6b63f76b9699e67684f422ed69846ea  libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
! 7ea53405296926a9dc506025eecceaa0  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
! 1c2ad6f1c4280d73dac215f3581c07df  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
! dfbd1a31b7ec7e45e870d37fd51310d6  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! b6c9cf762295b0d7d88d4b954a0b445b  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
! 1fcd1886ad09dcdaeb561247a69c7fe8  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
! c6faa575752439d2eed0745f81bb4e92  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
! fe6d2f1b3deda1d666cee906ed0a4dbf  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
! 05b3b0dc573daa5dcaee8d4926abdd65  libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
! 2254b11e2bef1e3225aefc1a2cb29c3c  libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
! 411d0ba8b06c8394c861a6730f783321  libstdc++-v3/testsuite/28_regex/traits/char/user_defined.cc
! 926c48180431469b6497ee822fdbe51b  libstdc++-v3/testsuite/28_regex/traits/char/value.cc
! 5ac30c0a4dec6bc04be8a868164cf4c6  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
! aa9686b0c3bcd59574521b890fd352fa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
! 425887f80f14050dd767888a2c0dc3aa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! eda39c39a10010a17f161490dce86444  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
! ca05d7f5bb0250803906816453df3b79  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
! 820a5295b162a1df93b43517d5c33a75  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
! a12544c2b7c481a4e5018a8105a97909  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
! 3e24d150001b0313601b7a5c2db1fb5d  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
! 512e9dd8571b9259b11c42904eaf1cc7  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
! cfd76657af55dfe2767487b6a6d48dd4  libstdc++-v3/testsuite/28_regex/traits/wchar_t/user_defined.cc
! 1a50119a9d28ec676fb28fbf094542d2  libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
! 3ee331ebffbe6bb4bd7149a9f2121198  libstdc++-v3/testsuite/29_atomics/atomic/60658.cc
! 9a87d17cc2daaf6e27a472aea573ee21  libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
! 86606a4a915ddff3dfeb925f152d207c  libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
! 5bf5215ba993ec7bf7eebb36febbc85a  libstdc++-v3/testsuite/29_atomics/atomic/64658.cc
! b4446dd038cc4651c4d9ffff16b212fa  libstdc++-v3/testsuite/29_atomics/atomic/65147.cc
! 69ed71d48907465fa7bc4438ba16063b  libstdc++-v3/testsuite/29_atomics/atomic/65913.cc
! c68b5f0836c6d6755d79db2260009ea2  libstdc++-v3/testsuite/29_atomics/atomic/69301.cc
! f055bbfee2c4b973d46e29e09006ca8d  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
! a45c4fc47b3926e8d1e9582f0c633bf7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
! 63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
  ce997c946b9d815d3b58c18b6822f7d2  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
! 39232eeaf175bdf8b48338d14b625dd7  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
! 0bef884e926cfd674ed04909c99b9880  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
! 1219539990355c9690f03a2f08ac601e  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
! 7ae1b52ae01e8bd8b902a5ce909c6986  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
! 3887d323e625ed2599317e030f4b0ef3  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
! 94f0f1156747c43950419e6cc34bb149  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
! a2043c78a7d22995c8f2064cfb29d9f2  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
! b5add270eb89557e0c8d61fa1ace86e7  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! 8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
! 0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
! d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
! b6baf771c86d380ecf1dcb4393e97d0e  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
! c1f319ba7f6ad7a6795bac75046271d0  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
! 6afaee620f593086673491093e9e2c83  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
! e4b6fcfd2a515534e7ba19934850347b  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
! 23d004ef8bc7604cf4a60c8c4af4adc1  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
! b3d8282607956ee4826df350c5a70605  libstdc++-v3/testsuite/29_atomics/atomic/operators/pointer_partial_void.cc
! 68b6db9b9df1ee4ad267757efbd252a7  libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
! 4770655eced43833b45a7bff9815589f  libstdc++-v3/testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc
! 638a3151b6917b31577257fe25faead9  libstdc++-v3/testsuite/29_atomics/atomic/requirements/explicit_instantiation/1.cc
! f08bda434201147cbbae0882f57b6f85  libstdc++-v3/testsuite/29_atomics/atomic/requirements/typedefs.cc
! f51c048c81346d717df317430049cb80  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
! 4ba60a21ca727b934f2ac2dcda3e7eba  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
! db9040fffdbcb3b64ec9382c91ed665d  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
  0c57c2f91f968ace2a2fc16b2f362a94  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
! 62513df9153146f9259029770f2ed55b  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
! 051d0476748c18a98db0b8aa7f357b8e  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
! cf2ec05124502af82f69b781bd937b55  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
! ff936c5a08d5c7d4c080ce386ecc49ab  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
! 95438ac1180bed405399313d599078b3  libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
! fb7a8f2de87388620625c71c18709cfc  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
! f8c55c93e516d5c2ac8d55f47f656897  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/56012.cc
! 6e5f182dfea6abd092119f452390b3ba  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/aggregate.cc
! 5ae9b7c2838d3e9e822dce6ecfe54c2c  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
! d9672715bf29a6ab341a5e30c900d2b1  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
! 1138742d964438d87672c0bb744e3f74  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/default.cc
! 9e20df8c1007c60ff83f12400a5243c6  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
! 945b8f97fd6b7e2831328b990fa2c47e  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
! 392a976aa35cf626618525bf308ec967  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! d7cbc490ea482077cad20acfd16422a1  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! 2de3babc0a0bf0c27d568728cfba052b  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
! 182fbb249034e77d36414847ba103456  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
! 96883f552e3d63af722e72375ad5c323  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
! 96883f552e3d63af722e72375ad5c323  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! 4bfd7ec7e8f694c75a9a00f0a13d4185  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
! abf8bc17a7987d8a58fdca1af3239370  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
! af0b4f29b4020ef54bc1ecffaa4f8681  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
! a11647f0a7197b8bca75ec68b5130c4d  libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
! 265cff3969586b70609f1bb1bd32bb86  libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc
! 7d2ddb0cb031c7745d14b19ba8afe333  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
! 867a677947829787048e19ca55ac4223  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
! b765e7275b7fa1a7aaa78ec19d83f8f2  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
! d3adedcb21c25a0282b31ce1181cbd83  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
! 133286452aebb9434cb1ec964820b1fc  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
! 6275533b1e69b1592edebc928f8d7210  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
! a5fcec06638ffc2ee576a3828e54d5a2  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
! 439700e5420f84287077d77c71c195ab  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
! 9a7dc92b978b03a45c0e6c42cbf92546  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
! 6a97aa83522e483fcb872f4c00a8086d  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
! fe6a096eb51ef3dddb012918145934c2  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
! 01a298e29b23183f984c33c1274f1609  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
! 9b2208791dfad94cb4fa03afcb3e82af  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
! 16dc873119ce9f9f1183a0a39fbf8c9b  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
! 25601ddb3559c26ba62a5c87cb2eee5c  libstdc++-v3/testsuite/29_atomics/atomic_integral/is_always_lock_free.cc
! 400ba8264a7d27ef2060e7316f3896cc  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers.cc
! 7cf0f352ac7a5583da60dc4e644035e0  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
! 88187ad095e7ff2b956f938f15783eab  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
! 7e39c243f4ac48e7744ac8da8ec1898b  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
! eca6aed27f97547fe0b726f3f5b51a87  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
! bf411fecac53e5b512419083c91bd495  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
! d8113b1741061ea9e18a21992a52e9b3  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
! 1d030f94a1effdd1f83dd4a63d51fc92  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
! 85d17787baa17538cbb7cb8a1ad37f62  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
! ae6700b4bf5b034e318443bed6ddfe00  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
! 67a7c5f355d86ec391313b189990e536  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/trivial.cc
! 60777342aa8417d9342641e5ddea0ff6  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/typedefs.cc
! 77d86dcb08ba2fbe354e43ff82613b7e  libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
! 2520a5ed0800d70a9eed602c5f43cdb9  libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc
  32c306fa56643321c7e2c4c7920c2990  libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
! d2f689741866931a30a544aad7d4f9de  libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
! 15b4d19a87416626bee33fdb5c2ba7e8  libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
! 548005e919c14a7226c2b8e1c4f28c67  libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
! 3c1b2de74fb338422a5ae46b97bf749c  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
! 59938378c35895062462192b15b6f912  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
! 076148c349e83f23e24c4287112a9793  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
! bf59d469bebfc84c86e2dfd6ca99edec  libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
! f81d6ad658abe8431f2e678c88663057  libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc
! 1e531cf1ab4b9acdd1c483f08e6bacbe  libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
! b43106756199f06e89c892be086a47f8  libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
! 88ba44a98247624599779a1ca64ef39a  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
! b78a13b1b122e23ebedfdc1fc0fbbc5e  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
! 75fcf2ab743c593e073064fefba541ec  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
! 4b0484af7025f699d12617e700727da3  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
! 64a4d02027251d2b7902d70a571c4293  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
! 455bf561e23c8612db2994883427eeee  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
  a1f6f6e1e31959c1455d2b3f17e75885  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc
  a99cb8b3fa386993e78051b226f5f4eb  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
  94ba8a23b5b0d9459ea5daebd6c365de  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
  5b1af9fe172aee7236f683fc11c916e0  libstdc++-v3/testsuite/30_threads/async/106695.cc
! d4b1d29626043a5ab20fe3a7af6cbb9d  libstdc++-v3/testsuite/30_threads/async/42819.cc
! e093ff52d716c4582ac8939a3f01bd49  libstdc++-v3/testsuite/30_threads/async/49668.cc
! 79a5f06af0a80c0c576133b32a986676  libstdc++-v3/testsuite/30_threads/async/54297.cc
! 8ba7dbb2e795d5da8222839398f8e4f0  libstdc++-v3/testsuite/30_threads/async/69724.cc
! d0d3bd2de78945d8c79395cda0997fa0  libstdc++-v3/testsuite/30_threads/async/84532.cc
! 08a980093002c01ef1eae095cf35603a  libstdc++-v3/testsuite/30_threads/async/any.cc
! 76da2963d78de3ea575928633bcac0e3  libstdc++-v3/testsuite/30_threads/async/async.cc
! b889bce255448147adab76febf762c52  libstdc++-v3/testsuite/30_threads/async/except.cc
! d508988e912552a146d894cae609ff0a  libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
! 012a28a975155453dc4d1a1a42b83c05  libstdc++-v3/testsuite/30_threads/async/launch.cc
! 0ab71466a096fb9b01892baae2d90094  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
! 60a42d79d9965410b9f49c6e650d3b26  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 000429d401150382fad415f2a5edcfef  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! d64918f853977f3af217ab9dc4e7db07  libstdc++-v3/testsuite/30_threads/barrier/2.cc
! 2e4b4a1edc554b62a8dec9a53502f295  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
! a5d6607362cb1730b0eb170378baada8  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
! d44eb2ed4480e7bdd222001853336093  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
! 22c8451c0cac084a6c1677ab2d250568  libstdc++-v3/testsuite/30_threads/barrier/completion.cc
! 5fec9dcec58b3fdb79b6bc04bbc6b8ac  libstdc++-v3/testsuite/30_threads/call_once/39909.cc
! 189b59966abaa4bc85553e6d82e6d90b  libstdc++-v3/testsuite/30_threads/call_once/49668.cc
! 574a14df8931e79947604a5c5324e3db  libstdc++-v3/testsuite/30_threads/call_once/60497.cc
! e4356096911c61dc2d410c486d4bfbfa  libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc
! 0d5e90deef2c850c21e6112f2b819f81  libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
! 5bc7bc76bff38f24d5fb30863bfaa6bf  libstdc++-v3/testsuite/30_threads/call_once/once_flag.cc
! 2af70de79c60589e1e81d50ba03f0eb3  libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc
! 5163717e91100ecb1c1249564396e28c  libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc
! 0ac4634b0e98b02538e2541e4e0ef4a1  libstdc++-v3/testsuite/30_threads/condition_variable/cons/assign_neg.cc
! fda513aa57b58ec8ae495a3e37a6b741  libstdc++-v3/testsuite/30_threads/condition_variable/cons/copy_neg.cc
! 0f490f659fdd6710c43edb49ad4a8f23  libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc
  a22ffec2ff77db41215e429fe83d58ac  libstdc++-v3/testsuite/30_threads/condition_variable/members/103382.cc
! 21078e84f52823d7f9c94acbea81af30  libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc
! 3aed92976d281053bc431a346d0de030  libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
! c4bfd4842c673512f72f2d9fe332a218  libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc
! fdf0da44f16897b219abb635115e6d25  libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
! 10a396f8dfdeae6a7da003c019f65f7a  libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
! af8ed097a8efe6f7194f3ce919206f1e  libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
! c3a7f5843e80e38029882ee7ddf602de  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
! 4b7597a9a54ec12c4d3fc7bebcb2e158  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
! f04c3ca6b6e30311eb906f600bf19579  libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
! 563d06396aba8dcef3b34d9f8e2f8921  libstdc++-v3/testsuite/30_threads/condition_variable_any/53830.cc
! 323370fcadd0db9a982c965b0581d908  libstdc++-v3/testsuite/30_threads/condition_variable_any/cond.cc
! d49190dcf25e15645c506fd61684ada5  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
! 1764157400faef06b2229cf10f751972  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
! 0f308d9ee9364eaf669659382e565059  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
! dc989aaee8ca1c5123bc1513753d3bfe  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc
! 2cb1e0234417a2002c7aad1cebb59325  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc
! dfe8358af00126e3d769a7e254bea021  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
! 5bc9187252ec48be5330bccde47091cc  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
! 4cc88c60e938b5a46569b322ecf284d9  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
! e01fe847062c2bfd6ed37031f9ca2ff8  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
! 911da4623af3897e43b7b473fe0613a4  libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
! 111439efee36bd9f9c2090c5be250403  libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
! 4798d7e0eb6e2bb01a548c13d58f17c3  libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
! b4923d7ca0c8c0104802bc08d5e1c2ae  libstdc++-v3/testsuite/30_threads/future/cons/default.cc
! ec49e5336cb3c45afbf2ddddf5583473  libstdc++-v3/testsuite/30_threads/future/cons/move.cc
! cf15d4f41297a7f05235f6491cd35c3b  libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
! 558c2f7e2a442daebbbc612ba05b66c5  libstdc++-v3/testsuite/30_threads/future/members/118093.cc
! f88638743807ef6884b09ef6b56cc393  libstdc++-v3/testsuite/30_threads/future/members/45133.cc
! a372a9c3e841573c8df7d991b892f56f  libstdc++-v3/testsuite/30_threads/future/members/93456.cc
! e0887b8d5146ef4bfd674727b30edb24  libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
! d60c1e376601c218f4bdafa582e86556  libstdc++-v3/testsuite/30_threads/future/members/get.cc
! 7b37c46402fd9d89b4366c5c9f5d8510  libstdc++-v3/testsuite/30_threads/future/members/get2.cc
! 1db065aee972a4ed0d769c54a928a834  libstdc++-v3/testsuite/30_threads/future/members/poll.cc
! 500bc0fa5e8069f3fd7031a48ce75938  libstdc++-v3/testsuite/30_threads/future/members/share.cc
! 67b4c502f61d98a200da8c27b2b9d97a  libstdc++-v3/testsuite/30_threads/future/members/valid.cc
! 41a9d2909f52f0a5338ab72f0fc202c8  libstdc++-v3/testsuite/30_threads/future/members/wait.cc
! cbdd75e7f63da4274fdc03eddad56853  libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
! 12bb803de011024d5655d863f41efab9  libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
! c9e98d55920221207bec636c52664703  libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
! 279feef2fa03f6b2908917f802286256  libstdc++-v3/testsuite/30_threads/future/requirements/lwg3458.cc
! b7feae68857374d9af1f1d2db1105be6  libstdc++-v3/testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc
! 16a51695224d38409027e31d5a833d3b  libstdc++-v3/testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc
! ea1b5c8e9f1e975c7b87447dcb89a7a6  libstdc++-v3/testsuite/30_threads/headers/future/std_c++0x_neg.cc
! 0e944d21a8ad5a3321b7332e0044cafc  libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
! 0e41b269a4cc02940fdd89c3f2df1aa8  libstdc++-v3/testsuite/30_threads/headers/mutex/std_c++0x_neg.cc
! 7e1e7c250b2ac1fb2859e342394ed311  libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc
! a1d0c638bd5a17a20b574601277a560f  libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
! 67fbce563f8dd19de3d786d2f673c33c  libstdc++-v3/testsuite/30_threads/headers/thread/std_c++0x_neg.cc
! e99f6b5e34b31fe0940e37262c2490e1  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++0x.cc
! f6438685b9a866758781ab103979e7e8  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
! 4771f68ec38818f4cf8fa8c85fc6a76a  libstdc++-v3/testsuite/30_threads/jthread/1.cc
  7bcf5ad4022b2e3087ff5f773e489144  libstdc++-v3/testsuite/30_threads/jthread/100612.cc
! ff370117ac6d1f71e7afa797144a9bf2  libstdc++-v3/testsuite/30_threads/jthread/3.cc
! 56ad6e09789fcf6110038270ffd48c23  libstdc++-v3/testsuite/30_threads/jthread/95989.cc
! 568da01618bb949e15644cc940ff9046  libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
! 4b7ba8bea7d245c7e645bbe2366af0d8  libstdc++-v3/testsuite/30_threads/jthread/version.cc
! 66bca777e4c36d589904eef0a0e04054  libstdc++-v3/testsuite/30_threads/latch/1.cc
! b94222776aec54425d89be15c82ac0e5  libstdc++-v3/testsuite/30_threads/latch/2.cc
! 1eef452292a56db4d4757a8f130fc951  libstdc++-v3/testsuite/30_threads/latch/3.cc
! 8f1206d8f212b7b9171bf1567329fdee  libstdc++-v3/testsuite/30_threads/lock/1.cc
! 8625e4cf4f9867ebad65707046674dbf  libstdc++-v3/testsuite/30_threads/lock/2.cc
! de1e3b2de9896888f364732ca99f367c  libstdc++-v3/testsuite/30_threads/lock/3.cc
! 4e0f2cc143ee12139eb0446492b014d6  libstdc++-v3/testsuite/30_threads/lock/4.cc
! 5ab934d101c9d3cd3bdfd518b3baa75d  libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
! 215c54bcd87deb92fff2bc74e0ceb4f3  libstdc++-v3/testsuite/30_threads/lock_guard/cons/deduction.cc
  462211b16f32c8238aeef8f418897b81  libstdc++-v3/testsuite/30_threads/lock_guard/cons/nodiscard.cc
! 60c4db71b25017e4afa1e01af2decb8a  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/explicit_instantiation.cc
! 6cf88dc20c65f6b132d146de23a1c3fc  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/typedefs.cc
! ba642168ee882d1fa88ced5682fc3842  libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
! 007aa1a4f8baaa5f4f5bb78ea188ffae  libstdc++-v3/testsuite/30_threads/mutex/cons/assign_neg.cc
! ab8b3de084a4a89e120ac575090e2337  libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
! a273e241c250e4cee537e421962064a7  libstdc++-v3/testsuite/30_threads/mutex/cons/copy_neg.cc
! 847fbced390dd83e995e5023486d3128  libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc
! 3948a50df34dba03ba99a1b14141a239  libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc
! cd073ac505ec3498c15f9c3297c78c19  libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc
! d3ad8030f7187354802d97a9cad6611f  libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc
! 54c2ad3407b9146cf05d7dc4751044e5  libstdc++-v3/testsuite/30_threads/mutex/requirements/standard_layout.cc
! f01924a65862adb49ba764315667d589  libstdc++-v3/testsuite/30_threads/mutex/requirements/typedefs.cc
! 2c8f9bff5ccef7b73272d870cda3a0f6  libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc
! 26aed94764798061ac8ea787e7502aa8  libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc
! f013c4f40dffcc5465c70c5ce26b19fb  libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc
! 55153354f92a5556c3265aad6ac39a08  libstdc++-v3/testsuite/30_threads/mutex/unlock/2.cc
! d3da25f4c92d7b29963bfe2f9cab1de1  libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
! b857b8df467d5bc6657459480632904f  libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
! 980895b6d246d4940010b02df99f69d5  libstdc++-v3/testsuite/30_threads/packaged_task/79486.cc
! 1b06622c044390372d7f94625c31129e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
! 74dc8f9e96ba9ce1c567f6d99f0d4204  libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
! 0e1a8993682b0a88de43452812c57ae4  libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
! 9ccd3b1d557ab2a97af945888cdef1e1  libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
! ad9034013bdd2437cca11f0ba1ddc77e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
! 9970d8680de87ba3e6291c5e0aec935f  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
! 541a642f684120cf15e3efab97dbb1c6  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
! f928b71e8e3379df3dec12c6778d93f9  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
! 0333461d9839e0cd5897823f742b9d34  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
! ae44041381823a46a5ac2d066c71150e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/dangling_ref.cc
! e3cd3b55ab1655176e9eae1b0b5f762e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
  ba4413ab6f8707eecf7439c419b333f6  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
! a7699861951a48bd37d8f9e4d7d4d6ef  libstdc++-v3/testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc
! 3680bfe186885b95c20e77aa209500ea  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
! 31d594d800ba6c3418d15b2c634e95e9  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
! 8cce5cd0b92e1edc39193a31bde9b6ea  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
! c884985bd3c44b7de8799b4c03594cee  libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
! 0837bebae948fc64bdfe642e04661892  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
! 3de49258601808aad2d348627f83746e  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
! c6913f4677c833dacaf5c374ec4535a8  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
! 151d915589dbb36cf89c02d5ac70529e  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
! 156c26d55243cc62f82254cc15e724d4  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
! d1c7ebea7b3ecbb7898be18d451df00a  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
! deb4635979c22e565a87949e24883a44  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
! 8bb5cd5f505f2ae6e40154835884fed9  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
! cc69945c9d05168bf120cc30d90a255e  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
! 69d3c1b055982d5374efaebda5ffbd60  libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
! 998e3c8163a539aed2ae83a5a3e36b4c  libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
! 4b3670906eb35664714df09e311f5f23  libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
! d67ed43e17c59419f814aa71e7fefc12  libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
! b2e674dcac1d8e203418de5cd77ee668  libstdc++-v3/testsuite/30_threads/promise/60966.cc
! 6b72e22a19e7617b84aa1b57631bd706  libstdc++-v3/testsuite/30_threads/promise/69106.cc
! a5965b527c408b09074ae479e28d3f5d  libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
! 1009e9c72ed8ca8238a6bf72c2973332  libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
! c88e675ed97ccd2e6552340e5fb0d708  libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
! a5e162071b4df2973da821d8ab59c976  libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
! 1e135671484b52f59c456a7d2eaab6d4  libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
! 81c87f3594b88133409c39e7b0a75039  libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
! f2f5c0a38f301ec8052e68dadc7b97fa  libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
! 3e831d125e4122f79c86c4d0eaaae9d6  libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
! 6ca36d2880839312b1ad0cc5d9d0714e  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
! 06aabff5d7683bd80df2b1989abeb372  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc
! c5af57a3ae56a661d88b4293331285bb  libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
! 933f851fe303871a535ba81c1f0843e2  libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
! 8dbef586be27503b361022985dde8a74  libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
! 2591fb0692cb736d552f21415fdf9d6a  libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
  8d747bcd5afe04faffaed0b4915aa245  libstdc++-v3/testsuite/30_threads/promise/members/set_exception_neg.cc
! 72a2cb1f1c7ec55c1e96c888ef7b68ed  libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
! 573f7a9ef62d77bac7b37e49524b0d34  libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
! b1e7a7d2c59acc0599cda409b7aab7c9  libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
! e56b728aa6b8a2ffb390f96b1f73ddb0  libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
! 882559193b5f5a84bf10ff79b6eeff82  libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
! 4d4179a2f2fe1393fc678185b6704004  libstdc++-v3/testsuite/30_threads/promise/requirements/lwg3466.cc
! 25d23d8129378a176aef16d8b5119407  libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
! 98b0a6baaa8853e383aefed11ccc1782  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc
! 16161bd762cf5b3d14d96222059803ea  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/assign_neg.cc
! b5e546e3e268771141cdd1933a255078  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/copy_neg.cc
! f1a18f55c054f37b8713a1f6a5d588f4  libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc
! e51807ac927e8e43a181089ceac34535  libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc
! 75a364e0c9af873e21067abfc699730c  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc
! ee58c98b6eb4c9e8c27de32af3dcce52  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc
! 53960aa98017e29984d834734dffad99  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc
! ac0bd730b85a14a5fc4239c8ccccae1a  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/typedefs.cc
! 00f62d54a6557e1e05bc101715b0dd86  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
! 27d44e66eac3fb24a417db1ea7a5dd22  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc
! b2a4a6c2a4b4e29ac19decab34de7dfc  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc
! 4a513d4580c7462c9d7b6c2884dd1092  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/2.cc
! 5f3165284e57561022fb4baa2ce93ee7  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc
! a48b015cf0827c154d4066f8ba5ff85e  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc
! a3b149314c9fff2a4214832d41868be1  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc
! 5dfe857487465f891bcef2f5cb5ecc31  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc
! b345f64b0d4b9323f7ac615a6111dee8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc
! 8256ac640bcb9d232a2d4efa04a95237  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc
! c4741bd0338ec7cec54d5b61c96ac0c1  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc
! 3f384be14e39ca361bd379c29e1caae6  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc
! 7e47c2ea442805b7d499a77023f01f2c  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc
! 3e2a19730f6e8d7b2331586580f4ccc8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc
! 704d59686e2b56b06a249d0d0c862ba9  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc
! 635c1444aff908bac4d9e2b866700bb0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc
! f2759cbb0122645741437d53d0c3d79e  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc
! 946ea647b882005c7260176e523bbdd1  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc
! 3e2a19730f6e8d7b2331586580f4ccc8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc
! f6e332e0da5679ff09b7bdefac8dd227  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc
! 65ceb0dce688f7d22f2c0ac2db4de262  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc
! c08ecc556763caa8424e75d0366adda3  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
! 50509d4318b751fbf60c2e8e907c0261  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc
! 945e2b6134739a4c5e884548ea365fa2  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/2.cc
! 749c94f7744362e6d07235f6a84b1526  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc
! 2b2602563c19e4e216d402425ca2c227  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc
  6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
! f4a8a2d74bc16221b34e102342dd7256  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
! 93aa6a3a62353044e47801bd7399ac4f  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! ca8bc8826b00f7ab2b7b4922e5f675c6  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
  e7a6c2bc00e156939f96d542373fea2d  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 6c93d0876a2bf86d96675d4c9a30d8b7  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! 9b53d7368cacb8dc413d6a74cb85bcb5  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! b8ca5db991085efe7f58473647eff82a  libstdc++-v3/testsuite/30_threads/semaphore/platform_try_acquire_for.cc
! 5afa3086b34916390261ea23a2491501  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
! 4f207de1d73d5bd34d9e8795669f8336  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
! 015184b0a1766764ba755a3942a47ae0  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
! c9dd80031d6b79f53eaac381d40b5587  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
! c5cb880fec7ba8a061cab8fbdfa71e18  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
! f1e22f182f98e9cd74e79b69efe28617  libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
! 115e4c493488052ccc3ef944b611d39c  libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
! a34901b05b76da5b842328f7e07c37b2  libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
! c8042d74710789dbe1bf7d3076091ca8  libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
! 31b7897916391be4141526bfe576bf70  libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
! 61e8c544ef68150fab0511d3a1579154  libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
! 73642bd9ff278bf6c0813906ecfb1be2  libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
! 64e5f0e7e37dccc1841ca279a67a0169  libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
! dbdd68a81d7f20f2c5fe2f5e8860bf11  libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
! ea74eefa24479d7fe3abaf1351c4b0ea  libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
! f64b19aa988060217dff1a8a348efa19  libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
! 6d4c3115da861caab7b10ef3ef866bc2  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
! 23e35f22256c5949f14479eb3b3be338  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
! 30edf5a0eaeb7923bef5825d749cba83  libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
! 59e3bca2abf0e71e548a8d240b1b7ca1  libstdc++-v3/testsuite/30_threads/shared_future/requirements/lwg3458.cc
! 05fd7714aa1d655473c14bf0ec5ba0d5  libstdc++-v3/testsuite/30_threads/shared_lock/70766.cc
! 9111bb4f229b0e239cc236bfeb00918c  libstdc++-v3/testsuite/30_threads/shared_lock/cons/1.cc
! 4bce941d63aceeae092ff27d1c0d1798  libstdc++-v3/testsuite/30_threads/shared_lock/cons/2.cc
! 3d638d12703b5521b1fa03d486c3092d  libstdc++-v3/testsuite/30_threads/shared_lock/cons/3.cc
! 0076bdb1986d121439302f4704bf1f5f  libstdc++-v3/testsuite/30_threads/shared_lock/cons/4.cc
! 04a4653a60ea020ef5450a7b71ccbc90  libstdc++-v3/testsuite/30_threads/shared_lock/cons/5.cc
! 90852c806d8c1bba57adc5dc928c6713  libstdc++-v3/testsuite/30_threads/shared_lock/cons/6.cc
! 0fad0906d724c76cfba27dcba83ea843  libstdc++-v3/testsuite/30_threads/shared_lock/cons/lwg4172.cc
! 50057ca516d838ed16774e270a690e22  libstdc++-v3/testsuite/30_threads/shared_lock/locking/1.cc
  f73343e4c89cb77298874c0578e423c3  libstdc++-v3/testsuite/30_threads/shared_lock/locking/112089.cc
! e7697e933f0899440d4b374660e0f51a  libstdc++-v3/testsuite/30_threads/shared_lock/locking/2.cc
! adb2fe72afba784c9a44531c8cda8541  libstdc++-v3/testsuite/30_threads/shared_lock/locking/3.cc
! 20ef5cf3ed40d1fbc5d8528ec46b190a  libstdc++-v3/testsuite/30_threads/shared_lock/locking/4.cc
! b8bac798bb9bae3c676ac161d31dbc89  libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
! 1d0bccda38c30398563dbac95a39825d  libstdc++-v3/testsuite/30_threads/shared_lock/modifiers/1.cc
! ab7209790be6a03a672e455100251da3  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc
! c36f7975763c932467f01e94d1b324d0  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/typedefs.cc
! 1f732063863468e6d3f8b6bd4e1c985b  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/1.cc
! 8c7ac4557a782275c52ccd6d840e84f1  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/assign_neg.cc
! 51517828382128729ca4e12931a2731c  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/copy_neg.cc
! 684c7a275a186843b52856f598ec6638  libstdc++-v3/testsuite/30_threads/shared_mutex/requirements/standard_layout.cc
! 580944e18ee31128b3861ba05de06157  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/1.cc
! a207076f53693320c82b17cd2eca5104  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/2.cc
! 1ce6e70d60bd78973506e3ad18daee1b  libstdc++-v3/testsuite/30_threads/shared_mutex/unlock/1.cc
! 8d2441d67cea8839dbe9f61003f604b8  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/94069.cc
! 3ff57bbd764721f005993feb8250ef7b  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/1.cc
! 82db3ba99f15a56f514735655d373abc  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc
! e14fd00717853776aa866f06d9692348  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc
! 085a521d6f356bbfe0aa6fe02b4bf8cd  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/requirements/standard_layout.cc
! b67dbc60a5b0d5e68b3301d42c89d370  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/1.cc
! 7f25c665770f98206c485d5d7f18e115  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/2.cc
! a27f2488c39a2a0bcf060befdd7c5e7e  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/3.cc
! 03a4955f029924a2d0eb6f2d31110f26  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc
! b2646746018971b2f7502408ba69b812  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc
! bef525fe56599b2234510898b1e956af  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
! 033af8991cda03faee5e75cb045b81f7  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/unlock/1.cc
! 704b14ef2986113c57de56a4ea9bbf3b  libstdc++-v3/testsuite/30_threads/stop_token/1.cc
! 4cc88c60e938b5a46569b322ecf284d9  libstdc++-v3/testsuite/30_threads/stop_token/2.cc
! a50ee762289c16f526e565c1a4a289ab  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
! 669054b4f77b1f37c01d79ce1b681488  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
! 104890270a2a7c83c8d352ae82ee1200  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
! 1a21d7046e422b44dade576e8c4faea5  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
! 225227649f89f2d61cb45eba484ff2ff  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
! 4162f3e41a2f8c1f05ae1e77d4e026ca  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
! a5bb4a6df861f69ede87d5ede99afcae  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
! e468465d90804d3f3333e522da3498fc  libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
  97c265fb2eb60646be155e18f47b2f61  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/109339.cc
! e0b287d23f3c6a2c92f6574cdec22f59  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
! 6696471c5417ab178a3f6b9c7524848c  libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
! 36218cdab1e2c5d51ff4d8ae699e0185  libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
! 99f4c17a30daa2cbca2792f1cc6c10c5  libstdc++-v3/testsuite/30_threads/this_thread/1.cc
! fd7b13449dd263f145184f6e4110a599  libstdc++-v3/testsuite/30_threads/this_thread/57060.cc
! 6684d8c3a6f87f4490e5216b54190cb7  libstdc++-v3/testsuite/30_threads/this_thread/58038.cc
! b35562bb203255b4535e0e14d368d26c  libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
! 14e298c71b3f5fc8671ac5308ebac780  libstdc++-v3/testsuite/30_threads/this_thread/95989.cc
! 77326bf7b369b536bbcc4b886dc59315  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for-mt.cc
! 02d916acf97706f88f67e119126cc34f  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for.cc
! 01b4077c28dafcff953634a85c9d0dd9  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
! 61bf79ae0036c2a4060432c07dd508ee  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
! 24395d4b13ba32e69312de6cb7dceee6  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
  01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
! 540efe2cd7e8818a634cc153d50d4499  libstdc++-v3/testsuite/30_threads/thread/70503.cc
! 8b76d1c3fb303213e996d445b2d4747b  libstdc++-v3/testsuite/30_threads/thread/84532.cc
! e94e06ca7bc0db2cf36b44e6597e9265  libstdc++-v3/testsuite/30_threads/thread/adl.cc
! bf9a4d783ff08460a8b8df0f8c4a1182  libstdc++-v3/testsuite/30_threads/thread/cons/1.cc
! 955fc1acc9a3737605cfbf19cfb5b38d  libstdc++-v3/testsuite/30_threads/thread/cons/2.cc
! 006df61ef0852c04230ee26baae80a19  libstdc++-v3/testsuite/30_threads/thread/cons/3.cc
! 301d0e4b340bc54b497fbacc3ea18bc2  libstdc++-v3/testsuite/30_threads/thread/cons/4.cc
! 12b528fd1b4603abe3fa3d71d0d1061c  libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc
! cb43dae5961c1452a37c23efa8cccc1e  libstdc++-v3/testsuite/30_threads/thread/cons/5.cc
! 609531e507a2145e441595c4d0e724c2  libstdc++-v3/testsuite/30_threads/thread/cons/6.cc
! c7d4099bb7842ff697ae890e90dbcb28  libstdc++-v3/testsuite/30_threads/thread/cons/69724.cc
! 0af632b9b009da3f7c70e9b3be76e178  libstdc++-v3/testsuite/30_threads/thread/cons/7.cc
! dd169599d3e52e24223b54d2c3834ed2  libstdc++-v3/testsuite/30_threads/thread/cons/8.cc
! d4f81363698308dcb8b24e86a83c9b11  libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
! 072a5be608e7afde59978becc6c87871  libstdc++-v3/testsuite/30_threads/thread/cons/9.cc
! 99b52f60626a989a461848f8d73fc75b  libstdc++-v3/testsuite/30_threads/thread/cons/assign_neg.cc
! bc9d16c1baf1e0c529c59d7c295a9552  libstdc++-v3/testsuite/30_threads/thread/cons/copy_neg.cc
! da9bfea0b06e79b830ba2f671f696fcd  libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
! c502623e0882901ce38225c444ffe2eb  libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc
! f7bfbbf71d070c85b53410a1a06891fa  libstdc++-v3/testsuite/30_threads/thread/cons/terminate.cc
! 96917737b3042aee6a086e40cb5c00cb  libstdc++-v3/testsuite/30_threads/thread/id/70294.cc
! 56068f5df278c490905e4e3c47d61296  libstdc++-v3/testsuite/30_threads/thread/id/hash.cc
! 41586eb66c45cb800204f4232e790d25  libstdc++-v3/testsuite/30_threads/thread/id/operators.cc
! f190a864ca8938eade83d3c84f881b82  libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
  37f9e8abefc6a35a32b6d2bd13c56c45  libstdc++-v3/testsuite/30_threads/thread/id/output.cc
! 1bd4e6ae30a5c0f1196e60d6e39cc8c2  libstdc++-v3/testsuite/30_threads/thread/members/1.cc
! c3ecddc3966782e2dab175e0bfbf673e  libstdc++-v3/testsuite/30_threads/thread/members/2.cc
! 8b95877f7ffc1e5583bb90089cef793d  libstdc++-v3/testsuite/30_threads/thread/members/3.cc
! d15cdcf55f49de39c4fdefc419be3fea  libstdc++-v3/testsuite/30_threads/thread/members/4.cc
! 6846fe78eba143b4f182246487e33208  libstdc++-v3/testsuite/30_threads/thread/members/5.cc
! 28a4cc72497e4561703020d1cc93f90a  libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc
! 96c8307cdf633de4f51db02425271ebe  libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
! 8fff897afa187580148ceece57bbcb70  libstdc++-v3/testsuite/30_threads/thread/native_handle/typesizes.cc
! 679cf57e4a61942ecaa9210578320dff  libstdc++-v3/testsuite/30_threads/thread/swap/1.cc
! c5b715fd07d0ce109f0f584a1f179b22  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc
! d54d8adc4826a7b1e97afcd4d9b8f264  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/assign_neg.cc
! 6032a54633b105ccfa64ff5ea2dd4b06  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/copy_neg.cc
! 238ef981fb8f12175851e98dd111d18c  libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc
! 4d94d84534c250e760cf3393f98ffea8  libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc
! b1902a39654ce0d4060ffd1a74c8e381  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc
! 3187f90ca2c148d638d9a1670cfcc937  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc
! 14407c38b7a9f6664438a4661da1bff7  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/standard_layout.cc
! 322fea739aca4c90ad84268cafce7d3b  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/typedefs.cc
! 51c77818442245e20c5e53c64e4e0567  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc
! 31ce608d68b642f713059eda18ef9a18  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc
! 1a5e86268fc25b552e5d2e43d3adf793  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc
! 6b1831573e79689f5a49f446bce2592c  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc
! fc48623baac54f5a09dc5e613e2ae69c  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc
! 51c77818442245e20c5e53c64e4e0567  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc
! 31ce608d68b642f713059eda18ef9a18  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc
! 34de6efad334dd0925a8b9651ec7b771  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/3.cc
! efcc6326f2e872928c4939e867ffab24  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/4.cc
! 4380ea15a77d5c39e1763f7c355db705  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/57641.cc
! e9d2e5f3b7ea59b4519b7a25186a582f  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
! cb0b6bb1d842ff7397215f1ff17a1d04  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc
! 8cba92f16cdb34717ce1f38d9ab9b8f8  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/2.cc
! 1515dd13243f9eb7858f54e4e0075abf  libstdc++-v3/testsuite/30_threads/try_lock/1.cc
! df42f21ff58c24d37a24481b23d97e9c  libstdc++-v3/testsuite/30_threads/try_lock/2.cc
! c6ed234e7123d7a900a0db571954c7dd  libstdc++-v3/testsuite/30_threads/try_lock/3.cc
! ac40b1cb39cac37e7d66dc7371abd43c  libstdc++-v3/testsuite/30_threads/try_lock/4.cc
  84b7f4186aa09b29885c62c89d8b8d64  libstdc++-v3/testsuite/30_threads/try_lock/5.cc
! 5124eb31be8e81240b8d4bbe6b479535  libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc
! 7df195a093bb6f99ad8b623cf0827a29  libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc
! e2f27fa87ed4236e3afeced82d3c1df5  libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc
! 34a7d3b40aaeeaad34ca89f2e57aa640  libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc
! b8524ac0979bdb4a1fe9c407210d1aa5  libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc
! addc7d58a08999b21890ce8fd9575152  libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc
! 798e2528a40485cf6c5f7ae2140f8e4d  libstdc++-v3/testsuite/30_threads/unique_lock/cons/60497.cc
! ee4deff04e288735d578e69cbd93481e  libstdc++-v3/testsuite/30_threads/unique_lock/cons/deduction.cc
! c66303f8ebf7dc28e865bdb5f8571d02  libstdc++-v3/testsuite/30_threads/unique_lock/cons/lwg4172.cc
  4065ead73235836622eebbd59a14b63c  libstdc++-v3/testsuite/30_threads/unique_lock/cons/nodiscard.cc
! a02f1b071324c8b5d6ef10ce1d18a0bc  libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc
! 381f1787489b5c31700999f5986580f2  libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
! 8d75ee645cc690efa5e21053e375f6a0  libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc
! 3b7eb2076d72d19b2e348aff97e7e58e  libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc
! dc078d737467372d2b0426ec2f645cdf  libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
! 31de2e8abf3317853518773768f63f60  libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc
! 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
! 8109f1681ea3bfd7e63675600601c2f8  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
! 7f2a56ff63ab685d41251d6c948ecc72  libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
! 26990183c4b72ea55a26a0b5dfea83a5  libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
! db4753fa685fc2bfc7b796e1b3534614  libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
! bbc33fbce307eecd0d61dcf16a0935a2  libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
! 5bd5494023e13c816d17cdc1925fbc20  libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
! 2ba044bc02655d65e7979015d4172270  libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
! cccad0f0a2da2fc34f8e08b2ad570f4b  libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
! 700fd4a616d642a7d541bae743ae1cb4  libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
! ad1bcede786b1a8c78d78cbd31bb6c3f  libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
! 7ed43434338475f5bcb09ef29e0ec24f  libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
! 3a0cfb3541215026a20902f71a82a9bc  libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
! 4e7a7a4a8d1dcab94fd28e80ef543820  libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
! 5f4c982ddb2d9b318d1d2780ad6294dd  libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
! be20b2b67fc21a9cb9b1d8ef20efc5e4  libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
! a8ad12804aa1622ad29e346993cfd31c  libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
! b908344a64c4d2d29672c27fd7ea1909  libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
! 24d7dee75465d82b76b91d69237226c8  libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
! 4040592d04ffe2be92d7f8da57f109d5  libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
! 0bb81fb1d9d4e4e1608641e0691c3acd  libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
! 35c89fa6bc13292faec8172a59a23e76  libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
! 35c89fa6bc13292faec8172a59a23e76  libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
! 34ef8b151433d5d1547dc1b3421a37c1  libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
! 2b903d9b16c31c413ea10f0968576ae7  libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
! 889e590e549c7e190381ae3be49f9632  libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
! 98f4480d86257c513b6ee259cd93b6ae  libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
! a4e9adbb32c37addbdc63e48b41c15f8  libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
! f24a63faa5adcded3ff4c265d22ff2c0  libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
! 30ca54d07a47151dff00b44c6b5c3a2e  libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
! 8e77221161463b4026797133e8532287  libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
! 05b31d7d7930d6de6b1e0838212b63c6  libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
! 11ceb63071ec40f7ebe60b95ee1ca899  libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
! 2dac9c10ff7b7e9fd14bd1231afe731a  libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
! 7ac36a4a8919b96eef9af12e064aa0a2  libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
! 28a910bc84ecd3198e94e13dba2ac0b3  libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
! 23767587f5e89c1145894a52499b0bcc  libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
! 3691727c0055169a0e099939e78d7607  libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
! 19098534a2f28c9806d967ee5cfd8ea4  libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
! 5fb8eb860f93ea88aa0d6b2cb3a9aacf  libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
! 9fb16410f3c3ebabdff92637ce83c280  libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
! 7c6ef59b52b39c47178dfc1d76594644  libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc
! e002b57207304f9a22055248ce3ca9a8  libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
! 0b009a1cbbfde6b410721130b53814b5  libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
! 33e609d653e314494f005086c0b06f0b  libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
! d65fe031eb74e0b0deb8a0e4f8789157  libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
! aa4d68a084de36690390dd1a487b9e23  libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
! d9d8069b0aa194798b8686b996dfeb7d  libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
! f8971e5a0466012a15afa6113ee8aefc  libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
! e4657949ad0064daae74f1667966583a  libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
! 81df1a0146108fcc304b2648bbfb0acb  libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
! c89667b64d734ba079db42221831eeca  libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
! 6304659c86c651464a59c9523a856306  libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
! cf51b4f4440a651e69477ef81f78383d  libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
! 8db1471cf0c0a94a215a4e7a6340a0b3  libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
! 07b68b4a127f43f734776247cabd2dec  libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
! 336aa97c69c8754ae23fa9d49c995c9a  libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
! f2ed1468d54b16aab01ab23858349054  libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
! 8480a7d3ad849323ea83a1244a816267  libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
! 8831eae87b2c6505260a2f2d27936cef  libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
! d7514d0840024898368533ea02d3d7bb  libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
! e59feaff17cf6c4c037c9631660a1bb0  libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
! e598ba083d1569952229040697473736  libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
! 531fb93c3050ad30a5729986ae465f0d  libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
! 61f3518bc1d299d5fab3d621e0ab2749  libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
! 2031dd1739946ed0c0040e8a02648033  libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
! 2b6cf83d3ee43e42bf1d4d8403cc7c91  libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
! 3ac76b9f3dbd0156330bdc44f5aa2074  libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
! d9fcb0c27e7ba83e0538c222cfb10da4  libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
! bf3af319a1ffee008991752a1d469a24  libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
! b7b6d70b36186809a43531e31c0f0066  libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
! aa4f0f6ecf20d31469cec2dbdab1b447  libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
! 670b43200a599d2868dbe822dcf3ea31  libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
! fbdf365a9233acd8976ea3906425aa90  libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
! 91363bf875c2dc76dec95a1b9696e38b  libstdc++-v3/testsuite/abi/demangle/regression/old.cc
! 6329ffa616ec8b36bdec4559efc5cd57  libstdc++-v3/testsuite/abi/header_cxxabi.c
  026f7646f4161e79273f7580a661c0cc  libstdc++-v3/testsuite/abi/pr42230.cc
! a4663a2a9328871bb6db249c4cb88059  libstdc++-v3/testsuite/backward/11460.cc
! f12da74b317d3e2a5a88c8d48f289674  libstdc++-v3/testsuite/backward/hash_map/1.cc
! 6f8b8cf74e81e4fabd42aba1f3f2f8b4  libstdc++-v3/testsuite/backward/hash_map/14648.cc
! 0676f5412217f9dfe5752fa6bb290d90  libstdc++-v3/testsuite/backward/hash_map/23528.cc
! 9d900368fc18b76757494824da56b552  libstdc++-v3/testsuite/backward/hash_map/25896.cc
! 3dd6ce595ca890c8958c7a8e55131418  libstdc++-v3/testsuite/backward/hash_map/requirements/explicit_instantiation.cc
! 6fc43afff360ceef0b6d73943ee38f61  libstdc++-v3/testsuite/backward/hash_set/1.cc
! 89a0e58a522391e68d2680afa635aeb2  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! 2698a443e19f71cbab30ef4754778267  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
! 9fad04735388a6a4650701a8a040e5e5  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
! 9fe399a1fb42687787771b8cfef37157  libstdc++-v3/testsuite/backward/strstream_members.cc
! f7c72527b115ae77f289202a9e1439ac  libstdc++-v3/testsuite/backward/strstream_move.cc
! ad07a3c247428908db3ef9234d39708c  libstdc++-v3/testsuite/config/default.exp
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/data/cin_unget-1.txt
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.txt
*************** c301fea40cf8411c67e670f55107c746  libstd
*** 132492,132796 ****
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/wostream_seeks-1.tst
! 516eeabbc099f74b6c068d49c67a485f  libstdc++-v3/testsuite/decimal/binary-arith.cc
! c2754de4aa8696b8036d4c0c3e9f3e94  libstdc++-v3/testsuite/decimal/cast_neg.cc
! e1fec4fb56e33656126897adb0161b8b  libstdc++-v3/testsuite/decimal/comparison.cc
! 1910cbc379d1211fe9684f250684376c  libstdc++-v3/testsuite/decimal/compound-assignment-memfunc.cc
! 25b9558e66c98e69723725d96d5384ac  libstdc++-v3/testsuite/decimal/compound-assignment.cc
! a7245eac0dc17bf7d1ada58ffc03a363  libstdc++-v3/testsuite/decimal/conversion-from-float.cc
! 534e94a113094be92f50024b0548f639  libstdc++-v3/testsuite/decimal/conversion-from-integral.cc
! 8f8094bfa1e93078fdf5bfad0c1cf4a6  libstdc++-v3/testsuite/decimal/conversion-to-generic-float.cc
! 436de9da19cae822d7c1bc04cc709a91  libstdc++-v3/testsuite/decimal/conversion-to-integral.cc
! 9a62ddcf8b506674345ee1987efba0df  libstdc++-v3/testsuite/decimal/ctor.cc
! a7c8fd5c48dd10275e65a0815500d3ba  libstdc++-v3/testsuite/decimal/incdec-memfunc.cc
! 63c695621a9f7d791e9d25d60a433e4d  libstdc++-v3/testsuite/decimal/incdec.cc
! 5300eda63cb91f7d2a2ce973d07f874a  libstdc++-v3/testsuite/decimal/make-decimal.cc
! a5febb7da036ba69f176fb01a0f61749  libstdc++-v3/testsuite/decimal/mixed-mode-arith_neg.cc
! c84ac8879d56f54be6170fd7dc5a8ecd  libstdc++-v3/testsuite/decimal/mixed-mode-cmp_neg.cc
! 6399aa03d23fc60ec3594aeebfe04f72  libstdc++-v3/testsuite/decimal/operator_neg.cc
! cb1163ea7e874ff4488260540a2a6f14  libstdc++-v3/testsuite/decimal/pr54036-1.cc
! 2699a4cae75c4c8a0dfe8c218ddcdd06  libstdc++-v3/testsuite/decimal/pr54036-2.cc
! 52b7dcf0fb073eeec75b5c72b8e0ad62  libstdc++-v3/testsuite/decimal/pr54036-3.cc
! a23ff432f43b6319e7f9200f672418d9  libstdc++-v3/testsuite/decimal/pr58815.cc
! 8e4ffb76cbca7392ad9bcc9558508e20  libstdc++-v3/testsuite/decimal/unary-arith.cc
! 4ff6921cc44e52b17465a825d2a41d6c  libstdc++-v3/testsuite/experimental/algorithm/sample-2.cc
! a2dd153c02b22fc69215f106c60d8c4c  libstdc++-v3/testsuite/experimental/algorithm/sample.cc
! 4b58bc750c2d0e3d9bf3bc617f69f9d2  libstdc++-v3/testsuite/experimental/algorithm/search.cc
! 84d43b255910c9089f4558252299c525  libstdc++-v3/testsuite/experimental/algorithm/shuffle.cc
! dd0fb9146c229c391d5aacf222cff252  libstdc++-v3/testsuite/experimental/any/assign/1.cc
! 84e8a5f65a487da0ae8c39c2cf2d3aa1  libstdc++-v3/testsuite/experimental/any/assign/2.cc
! 0c728ce0d65f20bd9487e7a943213d59  libstdc++-v3/testsuite/experimental/any/assign/exception.cc
! 37d04db089283e152e86c4ce596cc723  libstdc++-v3/testsuite/experimental/any/assign/self.cc
! 01fa8c094ec0ab5619cd7e002215460e  libstdc++-v3/testsuite/experimental/any/cons/1.cc
! 5416e2b9e55cfd63ade9e31ed5b1cb6f  libstdc++-v3/testsuite/experimental/any/cons/2.cc
! 953ea0c00790a91cdc3ed0b0f6a28065  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
! 32cdcfbaad80e84a5918a6e8c7dcd106  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! adef7f7a1605752093d06d98a7219158  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! 3dc37489dd65c42d1f33cb2ce1d0b400  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
! a96c75503f70fec6091fe7a58189ac25  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
! ab41b5dcc43f802014b86c64d572a2b0  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
! 84524dda386a67df935ded48e501c6ff  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
! d394c2c7b00c588bdaed93ff4221183c  libstdc++-v3/testsuite/experimental/any/observers/type.cc
! 53c2dbc5176aaaf96a8b6bb637e8123a  libstdc++-v3/testsuite/experimental/any/typedefs.cc
! 87509d6dea9ddc50347d2ba2482d765a  libstdc++-v3/testsuite/experimental/array/make_array.cc
! 33d2c4667286e2a4a6069dc9b7b0b082  libstdc++-v3/testsuite/experimental/array/neg.cc
! 6c87999b8c8ad337449642653c31be43  libstdc++-v3/testsuite/experimental/chrono/value.cc
! 37a0c560aa30d1b00e15bbfdd92f1619  libstdc++-v3/testsuite/experimental/deque/erasure.cc
  188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
  f34b212f23de6dcc11255fe68924e1e3  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
! 490e699866a0afc805e801dfcd7102dc  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
! affd44df47a6f466b71d26637038d217  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
  9f02c90fb45915ed51e3b5fc2dff19df  libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
! 01bcf48cff8913b398ff1ad6b86481b4  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
! 92c93df8b10926f3221cb48cd1d10993  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! 43ec43ea7c1e2d56774b386974f2bcfd  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
! 5f6b0668f68666545619552a8156304e  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
! 3e7a4dff246b26a4980ade424540a024  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
! 3778ee7aac6d742cf30a1a0b1261efa5  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 2286877b6c223a67d1ee1ca76dee6c59  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 04cbd205862315ca4bc7166ea5d326c9  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
! 4105a8dd62fd05902829c925b0e5a54b  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
! 8ec5bb7e9cb8d6ff34b6602ab5a8b878  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
! 124caf76154b94e6a5b1ece1bd9bb1e6  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
! 708f758d8fff81d5bce1dd9525f58d25  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
! 4a32621a9df3de84e8cf31b5db5ebb05  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
! 6d7cf2cca9cb0a5185c47d5d3c18dbf3  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! f691b4d741a58e928ecae6ba92c5aedf  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
! 6f15ca3b4d6d2781430a66dd05adc1c1  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! 79afa5d352b88d7d1abe46e9d9f4ac22  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
! d36cc04e0dc02cac98563042ed3506ba  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
! 0d032918fb304ca47492fc7b81d66c92  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! 8dfb2e37f163f51c828d46b906d8466d  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
! 37fb018bb51b60878ba7b54b488a369d  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
! b8d1d4fe6560d29cd9f99177502c855f  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
! 4456f08d27f488532c5cba8eeb0026c7  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
! cc7125bc60e34f68540efd871dda5640  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
! 70871937b64c5b4523eb8717ee956dd0  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! 3bb0215d6834f3e3070b6ea1bc38486f  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
! 3eb7b7ffa06f78daf7eea828fc4d7d6f  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
! 6d353d9ded4c460a24b4fcd62618fdcf  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
! 345628ead60c6094fefe8b7916ceb564  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
! ba96c96e39c464f5314b33a61dfdefd1  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
! 1091b8690897ed9ab62fbefdcf505667  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
! ba07232a1772681c7223e5d244165c9b  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
! 8cc01c2bd70482e4228fdd50255efa6f  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
! dfe8fa5ece3b1045a958f3f2744f6537  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
! af566a6e9dca44de14ad8f5ec825186c  libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc
! 9036719c335e605196831ccec902942a  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc
! 6a97f79a857cd806808b47973f5eeab9  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  bc0c58037ed5ab6415d0899ccc8799af  libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc
! 367240ce5278016d6611d393dc976721  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
! 552df30edfe997123984a5bee809d0a7  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
! 850de3f9a95725a2e9cd31bae1a2b70c  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
! f3f0028458166ddfab8f69e717bc6a45  libstdc++-v3/testsuite/experimental/filesystem/path/construct/range.cc
! 768144627429c64582c85fe8ad92fde8  libstdc++-v3/testsuite/experimental/filesystem/path/construct/string_view.cc
! ab3cda30bf9a3a4046fad19a0f4c1603  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/extension.cc
! efcd43b9b3cd1afad38bcbb03e728571  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/filename.cc
! 527f6ef6cc2aeacdc90a813a7aae62d9  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/parent_path.cc
! 65c1dab514dbde099089b545bf3145e6  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/relative_path.cc
! 1e29fdc072ffbb767219e6806d94d2bc  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_directory.cc
! a5007968bf93eb4d90eebfce5da0f300  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_name.cc
! 78c24f65213dc0ee79b92f60de781630  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_path.cc
! 6271e5788df29ff8bf447027a2cdaf3a  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc
! 5abb8b16194a8741e6b8a1572e91deb7  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc
! dbe8b303373dc5f789f9704ded0b2c31  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc
! b11c36d0860c06799dc191b8b4dbb2ac  libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc
! fd5a860ccb8249cce18ece300746b738  libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc
! 618472eb98f90223e69df8028e7dcb33  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc
! 2cb294e115a39b784fa27d57ee02ac10  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc
! d9a09dac43ff798098e3a2a842f70a3d  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/remove_filename.cc
! 18690b3cbba50f53aa0d401b90109ff7  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc
! db4ee59e04c8266009ef2e15b51d91fc  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc
! 4e0c7d7dc3c8ba61c5d7ee26cec5a303  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc
! 4e117acd9b409a8d5faa7a60b6cb832f  libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc
  9dd0c350cd1f231c2cf27e190e15b473  libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
! e2fd417cb75d9f1a0c40cb1660296781  libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc
! b6a539ca6dffe06f195dcbdc457eaa17  libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc
! 8ef741019ef1aa28b1f61c9b8de96038  libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc
! 3b68f49aacc291aa7cf5e62648a79d94  libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc
! c90bc6d314335104476809c69374739f  libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc
! edee04ed688a8fd56604e8e8919bbc9b  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_extension.cc
! e10b0a9f6e6fd08fc09224881ec8bff5  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_filename.cc
! 897be1854386c48c8ac6aebbea2eeaa5  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_parent_path.cc
! a11f30ee25df0a059a17ca706d2166cb  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_relative_path.cc
! df9b895dfc35be056ba1649d90d95277  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_directory.cc
! b2d178ca08bb9b02827e939e77de0500  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_name.cc
! ff480bc840b148b84b424ff5743a9a95  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_path.cc
! e4a9231a3325c67ccd074f860b53abe4  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_stem.cc
! 5bfe3fd444b23dffa62714361296bfec  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_absolute.cc
! 85a1c4e0c679ba7aaa2c77e2e02a283c  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_relative.cc
! bb61877e6e05188fb7f1d1d41ff67b68  libstdc++-v3/testsuite/experimental/forward_list/erasure.cc
! a33fd156a0c917c1c6c44ffda11d8699  libstdc++-v3/testsuite/experimental/functional/87538.cc
! 6ad6915c3bdc7b387f5ea261d9917eb2  libstdc++-v3/testsuite/experimental/functional/not_fn.cc
! e9a3c70eb2ff298f50c7d5ef6ac6bd01  libstdc++-v3/testsuite/experimental/functional/searchers.cc
! 3627a8fce414bf5183114e6f4d92fce4  libstdc++-v3/testsuite/experimental/functional/value.cc
! 438b058e9374f5375bdc531ff356dd8a  libstdc++-v3/testsuite/experimental/iterator/make_ostream_joiner.cc
! 11e294792d331afd10d33673a0ea8944  libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc
! bd6e280fc47ff9c29d90137dc2792ee6  libstdc++-v3/testsuite/experimental/iterator/requirements.cc
! fa02909e76d5e171d9b40adae230dabb  libstdc++-v3/testsuite/experimental/list/erasure.cc
! 8937d26052cefcddbb45546d3d72957d  libstdc++-v3/testsuite/experimental/map/erasure.cc
! 39f17418467664274f4539e5a056e6af  libstdc++-v3/testsuite/experimental/memory/observer_ptr/assignment/assign.cc
! 5ba37d924bc9af2df2629d251aab9d4c  libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
! cd426da31a88efa280bece2cc0bb6b78  libstdc++-v3/testsuite/experimental/memory/observer_ptr/hash/hash.cc
! a6d41b050f7c60926d196f2084647b72  libstdc++-v3/testsuite/experimental/memory/observer_ptr/make_observer.cc
! e3e3da7b4600fa7010084c35e8140d99  libstdc++-v3/testsuite/experimental/memory/observer_ptr/relops/relops.cc
! 58c29f565a3f10e5a52a611831d4f8ad  libstdc++-v3/testsuite/experimental/memory/observer_ptr/requirements.cc
! 6f4c213a7074987ccc5f650f2c33740a  libstdc++-v3/testsuite/experimental/memory/observer_ptr/swap/swap.cc
! 6f956835416e434f9cdc134f0279bf3e  libstdc++-v3/testsuite/experimental/memory/observer_ptr/typedefs.cc
! abae1b9fab2e9b4162da5bf48c8ce0a6  libstdc++-v3/testsuite/experimental/memory/shared_ptr/assign/assign.cc
! 4c18f805b48ca8d3e66544516aed237a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cast/cast.cc
! a7583ea412de47395596e7831a719422  libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
! b1790c90d1068983e242cb6b3fa34ac9  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc
! c06d858ba6f5401050ba153162f2f6dc  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc
! 0074d1251cccd4898251f963907c9c3a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc
! 32848f4a858003c582dc5da5bb65918e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc
! 1c89145db15b68cda3dd80a42bff2e69  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc
! 5c5970cd29c136cb3d755f15ff717cf6  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/enable_shared_from_this.cc
! d20690a23b45d655329feb4637d367d4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc
! 6b97173107c0a521c32976a68c7509c3  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
! a314ced7c399bec1a62ac55e1d3f5a43  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
! 650a7bd1a63e9ae96c05cb5840b7dca4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
! a51178bb332ee8228fc33556f6d41c49  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
! e1d4b411f7cf08482135603a9d56b2ea  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
! 843e63913effdb03fb7e4f316db7af6e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/dest/dest.cc
! cfa21ca72e32c666be126165a348134e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
! ef1c8f4f7b3f19a3bebbb78d40d4fefa  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
! 72de3a9c204b06196d63c1d005e7becd  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/swap.cc
! c75ddc931685176099259c3c505578f8  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc
! b71e33814bdc18b8064e5cbcd54f7d8d  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/operators.cc
! 9641835cf1b7476610b6be4271ea6c1f  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/owner_before.cc
! 8630cbcbfdfc9d5b1a8f465002fac855  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
! ac9046ac92f5930a8a2c51b5bef53377  libstdc++-v3/testsuite/experimental/memory_resource/1.cc
! d33a6f078d9ce70ff56e4e27a6eb91c5  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
! 4cc2e29b1d267fe87dbe9dc486c54668  libstdc++-v3/testsuite/experimental/memory_resource/new_delete_resource.cc
! 1e0c9f1ac15332275005b3823879e468  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
! 95ba58e6a6d0b9229fef873c16e37696  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
! 2450a6c34421cec2b2cef2cf194d3160  libstdc++-v3/testsuite/experimental/names.cc
! 00b86d58e696a6eba510a1389afbd000  libstdc++-v3/testsuite/experimental/net/buffer/arithmetic.cc
! f591cb02f022c8c06f8298a867c89ecc  libstdc++-v3/testsuite/experimental/net/buffer/const.cc
! 60819500fe46be4bb4be4ba768522d17  libstdc++-v3/testsuite/experimental/net/buffer/creation.cc
! ffd127bc0c341e1a8ffb10b3f9168823  libstdc++-v3/testsuite/experimental/net/buffer/mutable.cc
! f20707a50d9c100ece45a9ab5c50372b  libstdc++-v3/testsuite/experimental/net/buffer/size.cc
! dcea1da4cc2c9ba90dc5aa5863900722  libstdc++-v3/testsuite/experimental/net/buffer/traits.cc
! ffa8a5a47ad3cf9103c4dafbfde7b8ce  libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
! 89c40946965df4431d12cdd521f1e19c  libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc
! c8b43bb7bd07c41486431d2ba06d360e  libstdc++-v3/testsuite/experimental/net/executor/1.cc
! 0c7593ad5936f76bd011783766a0a456  libstdc++-v3/testsuite/experimental/net/headers.cc
! f77789a18aecafc6f0d5e6c29393de3f  libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
! 8515e32a82ccd07947b2d738e5a561f7  libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
! 807117cbe64f77d9574dd4c5abdb9353  libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
! 01a7048ff8b76e3953ef4e544956d0a7  libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
! e9cc185b9c85c45a9731e23dc6c65ae4  libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc
  c5933a59fa35123b5f7476b94a3b153c  libstdc++-v3/testsuite/experimental/net/internet/endpoint/cons.cc
  2ebb41182bd0ccc894c6ea518d3ea2eb  libstdc++-v3/testsuite/experimental/net/internet/endpoint/extensible.cc
  ec468421255febe9f30c0b08480f9b93  libstdc++-v3/testsuite/experimental/net/internet/network/v4/cons.cc
  effbee31a73742de94b337a743054276  libstdc++-v3/testsuite/experimental/net/internet/network/v4/members.cc
  b289bacb72f52125d6995bdc98f9a336  libstdc++-v3/testsuite/experimental/net/internet/network/v6/cons.cc
! 8a397cbc36ef94b1f642dfaa70d5eb23  libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
! fedfb02508c56c0b3da088ad03384176  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
! 80420cd4cae95346d4b4b7b3c228936d  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
  760dec58bec2534cd56103a2710b1e16  libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc
  47ab303b0324b578953893e188a1c4e8  libstdc++-v3/testsuite/experimental/net/internet/tcp.cc
  31837180dee34f479c2c7eaafac7b04a  libstdc++-v3/testsuite/experimental/net/internet/udp.cc
! 7da5a885d165aa4852258bd8c5f9283d  libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
! 8f65b6c0de57cce2be5cb3074c48002f  libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc
! 777c41a94f602cc4d2ae3010e81fa1a7  libstdc++-v3/testsuite/experimental/net/system_context/1.cc
! 02dfa28d6ff8dfb6ba6dc1076d92ed60  libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
! 5dbe3b7e0cc1c4aacb417162777fc673  libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
! b6c1ecb6459bd82f37f8d54beeca63b0  libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
! 6b6159970397e10355293691e7e1537e  libstdc++-v3/testsuite/experimental/numeric/77801.cc
! f97256bab708393ae015bafb1da7ca86  libstdc++-v3/testsuite/experimental/numeric/92978.cc
! 3f00a3d44bc9e30301b7e308484e6af1  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
! 447e67b4bf794ce87715c9a75cc6a291  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
! 713149b786e2bde7d9f1ebd994122a43  libstdc++-v3/testsuite/experimental/optional/77288.cc
! 9ed3992aa11a9bd9de0cb4e017496f16  libstdc++-v3/testsuite/experimental/optional/assignment/1.cc
! 39dbee18d8624bda450ec27e0c6c8458  libstdc++-v3/testsuite/experimental/optional/assignment/2.cc
! 1cbc2353426ff299200a4c5eaa18a3fa  libstdc++-v3/testsuite/experimental/optional/assignment/3.cc
! 8a2849566a3783ff2ef6248b2e312500  libstdc++-v3/testsuite/experimental/optional/assignment/4.cc
! 54adc42d88a8ca484c0dd1fdbc266f2e  libstdc++-v3/testsuite/experimental/optional/assignment/5.cc
! f7b40a872b1d205c7cc5debbb319c6eb  libstdc++-v3/testsuite/experimental/optional/assignment/6.cc
! a2f3e56445130583d68347441a13d06a  libstdc++-v3/testsuite/experimental/optional/cons/77727.cc
! 6870d82c4b1e875418286204e6bddeb4  libstdc++-v3/testsuite/experimental/optional/cons/copy.cc
! 91f4060d01831534c55cc6eaaf6f02b6  libstdc++-v3/testsuite/experimental/optional/cons/default.cc
! bbdeeae83f76da6681d67bdd88628bdd  libstdc++-v3/testsuite/experimental/optional/cons/move.cc
! e8a722dd57f90d4fc51bcdf01510d4c1  libstdc++-v3/testsuite/experimental/optional/cons/value.cc
! c035d0afc0d8c87058028348549754e2  libstdc++-v3/testsuite/experimental/optional/cons/value_neg.cc
! d069fddb48e6073e0303e9f4b6eeb147  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/default.cc
! 3c00ec5d7c075a4ce3a2bb26a7d9dbb3  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/value.cc
! ad75f821ea70801dbf4c9fcfe1314992  libstdc++-v3/testsuite/experimental/optional/constexpr/in_place.cc
! 3a89c2fcfab548798c50fe173f6b5d6e  libstdc++-v3/testsuite/experimental/optional/constexpr/make_optional.cc
! 0916246303c1f816f71f3f72003e4709  libstdc++-v3/testsuite/experimental/optional/constexpr/nullopt.cc
! 463471309cd86bcfc83377d260a88434  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/1.cc
! aac4263db94d99b89b9dc4a90bd6878f  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/2.cc
! 215610e798ef993f14dc7f9c37943cb1  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/3.cc
! b7a42ab84c80e20d00753ce5ed4e1a8c  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/4.cc
! a72f5a0df59153e67727d97b56c05ba0  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/5.cc
! a7ade8a780a635d57b50a0f4af090ff8  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/1.cc
! 856ac67d96bf3973ee411874935f341d  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/2.cc
! f51189f15607d647662323116a269ab2  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/3.cc
! dcf281044d19d5c47c5284f86143f6d3  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/4.cc
! 75a6cee0d53d6697e2703883480ad196  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/5.cc
! 4fb3f3c9c62b5538473ecba1fd36ff28  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/6.cc
! 5761456f6613175dbe07273bd9c7e982  libstdc++-v3/testsuite/experimental/optional/in_place.cc
! 5cf6ca4e79c8e815fede0ec6071918d3  libstdc++-v3/testsuite/experimental/optional/make_optional.cc
! b18a3f35e614d27f6b78be2779255529  libstdc++-v3/testsuite/experimental/optional/nullopt.cc
! 486167f8a6bcca0036c3240518506266  libstdc++-v3/testsuite/experimental/optional/observers/1.cc
! 87629bab56f97857398cf1ffba1650b4  libstdc++-v3/testsuite/experimental/optional/observers/2.cc
! 7da75cfb57a160a6b5284a46174f88c4  libstdc++-v3/testsuite/experimental/optional/observers/3.cc
! 822e36e8656842ba3546150ff1b2b579  libstdc++-v3/testsuite/experimental/optional/observers/4.cc
! 160a07e1c77b741f57340d7e0ef09e21  libstdc++-v3/testsuite/experimental/optional/observers/5.cc
! 9b01efb44709d7ffdc228a2a8d48bf2d  libstdc++-v3/testsuite/experimental/optional/relops/1.cc
! b041e707a633492ba9d26794937b6c28  libstdc++-v3/testsuite/experimental/optional/relops/2.cc
! ee87f258b0fe10fc3cc9c69cb49d3d60  libstdc++-v3/testsuite/experimental/optional/relops/3.cc
! 6e8a04d2e29433f9480d382864227066  libstdc++-v3/testsuite/experimental/optional/relops/4.cc
! bfa9317f4e7fc8dfd10b6180e6483190  libstdc++-v3/testsuite/experimental/optional/relops/5.cc
! b8121cd7fa60b7227268c92134f2ec87  libstdc++-v3/testsuite/experimental/optional/relops/6.cc
! e65d9068c19a685aaa182e5717bdd56f  libstdc++-v3/testsuite/experimental/optional/requirements.cc
! 1dad8d881991978d2a29116679c88493  libstdc++-v3/testsuite/experimental/optional/swap/1.cc
! 034a582277abf45b43faab644000eb89  libstdc++-v3/testsuite/experimental/optional/typedefs.cc
! 3f227bc1f298357e436d5d2d1c37b622  libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
! 5cae0ae8c704caad406fe3798ffedd81  libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
! b9af7a571d5eaaa6ef34763c35fd7d25  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
! d8d2eccd1435586e41710d2feebae1c4  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
! 9312548f664201ed773936c48c086889  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
! 4dd1bf4cd172f5eaf083fd1d55201698  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
! ae3d1f92780049bf67cf133361d29abc  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
! a5e3524975e05e64443f00b970899a4b  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
! 7c67db18140b6fd0c6a81bb04df0457e  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
! 5f395f142dfc85b7166a7b89c0196ef8  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
! 089360b991ecc94e30ba27bdda9a1a47  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
! 5f4ef486f53ceae719a18c951cd74eb9  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
! 82a36e4711006720583025580105e8db  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
! 836ef625bb0f30d368cff1082d99d270  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
! 30c6afdcc811fcce344eaeeb3b6b0c61  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
! 7b22f1e2e23bada2d7830f71896291f2  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
! 706361eabf5e9e5a9cc9eb814d2c4af3  libstdc++-v3/testsuite/experimental/propagate_const/assignment/copy.cc
! c89839207e0babb6d6ddcc2a14940475  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move.cc
! b1649d67f6501b7ed6b59a125e95efec  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
! eb774e949f401323c019daeb0a35f88d  libstdc++-v3/testsuite/experimental/propagate_const/cons/copy.cc
! 32c5b720510072f70f375fe900c4aeee  libstdc++-v3/testsuite/experimental/propagate_const/cons/default.cc
! ddb9f18e2ef3c5586bc485e53ce0617e  libstdc++-v3/testsuite/experimental/propagate_const/cons/move.cc
! 86803d701b4f4b15bfdc6c153ccf92d7  libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
! 2e9897976662a6a2d5f7f0231a4217a9  libstdc++-v3/testsuite/experimental/propagate_const/hash/1.cc
! 0ba3859a0d3e05064e4c52269efd285f  libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
  04b09dce4e740e5b8a2e2620eb6b3ef4  libstdc++-v3/testsuite/experimental/propagate_const/observers/107525.cc
! 2b01b2f2fd9ad4c731a1dddd039ba570  libstdc++-v3/testsuite/experimental/propagate_const/relops/1.cc
! b2ee3fa44c8407e56099123ffd2390c5  libstdc++-v3/testsuite/experimental/propagate_const/requirements1.cc
! 2ad66ded2adda652ce596f22f25a6e39  libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
! bcb82f93d055961d43ca32692acf3cff  libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
! 4b93c641557e9ab53e8fc0ab80b4d3ba  libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
! 2f072b9556f1500d379d644e7ecad640  libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
! 11b29db57a0e3ba43f7a6b30012f9e79  libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc
  f622008c5ec7680a2ac920136d22446f  libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc
! 72d6f91270b24452a08b38315dd5365e  libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc
! 926ae755b5001104ff1265489a621615  libstdc++-v3/testsuite/experimental/random/randint.cc
! 03d474b16204d94d7dd6656ce59b5fb0  libstdc++-v3/testsuite/experimental/ratio/value.cc
  18f1edf3ab8b0c093f8d5f79063f64d3  libstdc++-v3/testsuite/experimental/scopeguard/114152.cc
  9196640538c8c2a7906a7a61af7e0409  libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
  256696a1234796126b8e5234f58103b1  libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
! f225333d3063d4bcaa8d22f44576a8dd  libstdc++-v3/testsuite/experimental/set/erasure.cc
  d6f0083479e5097ec27151965ff89e5d  libstdc++-v3/testsuite/experimental/simd/README.md
  2c666451450a60415a52ed94723ea1a6  libstdc++-v3/testsuite/experimental/simd/driver.sh
  2653d8586849bef6493c2e5b408777ae  libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
--- 141019,141323 ----
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/wostream_seeks-1.tst
! d375faf44c3ffbb8920838dbab043417  libstdc++-v3/testsuite/decimal/binary-arith.cc
! cd01ab258a657552812ad9584847bdf8  libstdc++-v3/testsuite/decimal/cast_neg.cc
! 714b5ce5bd48958afcb97a5e7d27adb8  libstdc++-v3/testsuite/decimal/comparison.cc
! 0d9649812b5c74fa4384e3ede91330eb  libstdc++-v3/testsuite/decimal/compound-assignment-memfunc.cc
! 353c1f1d7effdbc63e1b79d7476bf960  libstdc++-v3/testsuite/decimal/compound-assignment.cc
! 873889658139144010309283276549b4  libstdc++-v3/testsuite/decimal/conversion-from-float.cc
! ec1035d21052eeaad761bb2c1ea5bed3  libstdc++-v3/testsuite/decimal/conversion-from-integral.cc
! b7eba2205bb5c3877c0567afa779a764  libstdc++-v3/testsuite/decimal/conversion-to-generic-float.cc
! 7c754b7f75350c9e09752db486adc94f  libstdc++-v3/testsuite/decimal/conversion-to-integral.cc
! 1574ee7d629e06362df16a5068f67c60  libstdc++-v3/testsuite/decimal/ctor.cc
! 62959f807395f3fd2bbe47f571d5e25f  libstdc++-v3/testsuite/decimal/incdec-memfunc.cc
! c46120506b6aacd30e9f6c19ea72fb09  libstdc++-v3/testsuite/decimal/incdec.cc
! 977cae48632264791e22d0a0a036215b  libstdc++-v3/testsuite/decimal/make-decimal.cc
! 2ee78410c0981f2abea3b53de0913ad7  libstdc++-v3/testsuite/decimal/mixed-mode-arith_neg.cc
! c24dc61cf9ad1e0d0579c0af76a55ffd  libstdc++-v3/testsuite/decimal/mixed-mode-cmp_neg.cc
! 211bb8778b185766b68e86f20f1ee9f4  libstdc++-v3/testsuite/decimal/operator_neg.cc
! 48ab7ab004e1ceac5cf7e1597529095a  libstdc++-v3/testsuite/decimal/pr54036-1.cc
! ae9fd42748547410ff1c6642319e4cdd  libstdc++-v3/testsuite/decimal/pr54036-2.cc
! e97b2a4fe18e39e73a714b353c96c224  libstdc++-v3/testsuite/decimal/pr54036-3.cc
! e108d0f0b3401da567003a068a869bcd  libstdc++-v3/testsuite/decimal/pr58815.cc
! ef17f7dedebad1465a755985382fe2ca  libstdc++-v3/testsuite/decimal/unary-arith.cc
! 237819de2b913c421f06f799580c55eb  libstdc++-v3/testsuite/experimental/algorithm/sample-2.cc
! 5b48fe4eb154911252d35908ba8ed910  libstdc++-v3/testsuite/experimental/algorithm/sample.cc
! 8c69062a963a1c0efc1111e39027db63  libstdc++-v3/testsuite/experimental/algorithm/search.cc
! 55b359c79e017904c911c44567abdbae  libstdc++-v3/testsuite/experimental/algorithm/shuffle.cc
! 512ce570e727a5e2ddde9d2447301be1  libstdc++-v3/testsuite/experimental/any/assign/1.cc
! 5552d2591bfcef1216e409c506dad063  libstdc++-v3/testsuite/experimental/any/assign/2.cc
! d2d0a14683af119a25944c7a6ef0e423  libstdc++-v3/testsuite/experimental/any/assign/exception.cc
! 238d0562897d6a837825152c7e34e02d  libstdc++-v3/testsuite/experimental/any/assign/self.cc
! 9bd5ce4937242c31162f500a7f1767ca  libstdc++-v3/testsuite/experimental/any/cons/1.cc
! 61cd81f59a62b58be784372ecf7be5ad  libstdc++-v3/testsuite/experimental/any/cons/2.cc
! 0aa8568bf89937240aa3d3b636dba9ac  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
! 5e795dcbc7b0ba7bb84193859b771ed9  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! 11bb63a150a0a441ba317e1798fe8953  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! 7711c213d75796ba3d0736791690d73b  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
! 5ed8e1842940bf1a95de69d55fcb3733  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
! f4d5486926484ddbe1621b2a4f5f85ad  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
! aeffbecae1f8d8110305d18b39399355  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
! a7780117287b843da84ecb024f1162e3  libstdc++-v3/testsuite/experimental/any/observers/type.cc
! 7bbf7383a6957b587176f23ef9cad0bd  libstdc++-v3/testsuite/experimental/any/typedefs.cc
! c1655e28ec971e3358ff4f0527ae3469  libstdc++-v3/testsuite/experimental/array/make_array.cc
! 587701276e57dff16d53fb85d6a1f15c  libstdc++-v3/testsuite/experimental/array/neg.cc
! 010e4a29de76d52f1b65412619cb87d3  libstdc++-v3/testsuite/experimental/chrono/value.cc
! 8db8785e3b64ddb869fe02a3dc67392b  libstdc++-v3/testsuite/experimental/deque/erasure.cc
  188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
  f34b212f23de6dcc11255fe68924e1e3  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
! 9f99e8284b14849205c6e2e409d61515  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
! 2377a3f43280f6e9ce5a421639596057  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
  9f02c90fb45915ed51e3b5fc2dff19df  libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
! 1f8dd9417ce815b34fb2d6bbf9eb86a6  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
! 3c0f471d07e2d76d400d684ea227c0ac  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! c8bdbf8344d33bb170c3db12c6bea729  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
! 4745cabead93f08ea205add8d7e8ae26  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
! 88b64094d14fa7768a3b51b88e8fc335  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
! 42516f06c870cb504d233311d0d74234  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 1448d80eb738f146ec375bf3f5cf21da  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 2efa3c05c0f27ac2f793227754e85215  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
! 49225585a68346a7c8abf8908bbf1cee  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
! f2640440f79acb093aecc749650ed729  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
! 0ab5802e6fe0ed19ccee1078a84fd8f2  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
! 9dc0721d2b1dddb7e81e485850b2b0a9  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
! f9ef4b5e4903db574727bea6287bf068  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
! d85f9416560411a8e81a0153ad6b2634  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! f8494696c4389eeafd01d84c7fddd075  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
! 330c425bac704be38efa1834dc110a92  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! 6b42207de0b49dbfc39ba8090e51dccb  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
! 0516c89dca45e713ecd887294b82913f  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
! 00cd77fd7519f5e7df9c05ceda703765  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! f2b222ef5398b216b18cfc2a2a9f33b9  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
! 4c644f87531a5aa5d9ddef53ff6ff387  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
! 3b59bc743caf9433932efa7479e9ec92  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
! 32f3092702ad657c63487ca9c17ad579  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
! 71e249f87500445098bf8d33a7097ba0  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
! 2201d20ec32d3a69c4f68e7be2060932  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! f63cb88fa0ab760997d498c32ac6b386  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
! ad4d0e37f9c3cd2fddce7c9f9008c951  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
! 4ec6d5313915d76f1da95956a040f992  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
! 7c95c78d561593c3dd7fed9d21a9c9f8  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
! ad770979eea82aaceea1cc0c911a2a0a  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
! 405c2389ab893cf75376cdcfadf3f39e  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
! 1b1233a0d5a89bc6333811d22af3027f  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
! c81179c8345b2c7cea96af7f701d9a7a  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
! d007e99ea64e98101aa9ed705d31d597  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
! 5f7539ad38f5ea8442cceccdfd99f518  libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc
! bfe1728372045eb8873dee3606cc485b  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc
! 7be716e6ffccd72a684420c44e7db936  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  bc0c58037ed5ab6415d0899ccc8799af  libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc
! e8ada0b5873a7c47cd91b5983c361d49  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
! 2607e980299780ff88b24103ba3ff7cd  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
! 57d08d134a9e156b73f378ca15cf79b2  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
! 4713fe59366fc42eac708e893a6b4496  libstdc++-v3/testsuite/experimental/filesystem/path/construct/range.cc
! 8f4418315ea1fe5de2c2b9f2f5a72f80  libstdc++-v3/testsuite/experimental/filesystem/path/construct/string_view.cc
! a29b9f2359b6ab75d75fe3df8aee06ba  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/extension.cc
! 1d40f76c016fea8d1fcafa168205666b  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/filename.cc
! 6c2c3cdae806cd83ed41c03a311c4afe  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/parent_path.cc
! 6a191d0fa9c492c41c7cfac722884598  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/relative_path.cc
! 01daec01b4a190cdb2b1fee9d02a9880  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_directory.cc
! 11c09095699745b969c7e9c0b397447d  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_name.cc
! 81db19880094ecd14519fd6c49aec090  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_path.cc
! e1871adee90ac1abbaa7bbde4dd249c4  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc
! 03ee73f8f28bbfab3a6530fde8deccff  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc
! 3f2971f501ed5c91a28e4be0213f73b5  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc
! f571e78f4a3c1b532902e924699d87e1  libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc
! 581ef4250b5bada43d73a8813839ba15  libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc
! e5ac1a9d05c6cc555e20594be76d1d5b  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc
! b54e0db082cd464b6c113a97dbe691f6  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc
! 632d1e8998f196ce629327733383fefe  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/remove_filename.cc
! 346d7c888b882b5eff95454fb306c7ff  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc
! 6198ce658be43a6c2c5e55508717b637  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc
! af4b4869c0e453a74b47afb9cdd75e28  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc
! 13a6ceb1656011f3ce1669a08930cb60  libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc
  9dd0c350cd1f231c2cf27e190e15b473  libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
! e07aa5fb5c0d31c8181ce88d0800da48  libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc
! aec90d2ef179b18aa0d111b1e512ff2e  libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc
! 84e057a71810ead7edbfa912b931a570  libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc
! a223acc3a3e5df73bd94c4a11810d08d  libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc
! cfc976f04ac0f47e4e5f59623708fb0e  libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc
! 6ab5bbe82661624c6b558eab9a7171b4  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_extension.cc
! c30df50e7c797b0a1a0b833dc84b13db  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_filename.cc
! 3b4ed176cbfa34b84e85cd29d2b757fc  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_parent_path.cc
! b0fe022b99b2595eafa9b23666298667  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_relative_path.cc
! 5555edd4dfc5b1ff616ae39f3a81485f  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_directory.cc
! f968b1e7cc1c7b2ee428cece8b649995  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_name.cc
! da441928034df83ff925f3b85cd42513  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_path.cc
! 6bd1cce3f67d97f901f320759c6e4daf  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_stem.cc
! bda1efbbfa3203488bb52321ffb93eb6  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_absolute.cc
! 67e645ba4797a336429a9cd2faedcae8  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_relative.cc
! 3cf2e3ae7d5f96982375994db65481c9  libstdc++-v3/testsuite/experimental/forward_list/erasure.cc
! 71f913a0e0420b93ae408000968d6e12  libstdc++-v3/testsuite/experimental/functional/87538.cc
! e9b19e6aefc841e980fc57841aae54ee  libstdc++-v3/testsuite/experimental/functional/not_fn.cc
! caea9d4029e5e27c1226ed9b2c62c51d  libstdc++-v3/testsuite/experimental/functional/searchers.cc
! 8aacce4871ea2d97e738036d8fff8e8b  libstdc++-v3/testsuite/experimental/functional/value.cc
! 4be4fc9120bf87aae09d08488c83d80c  libstdc++-v3/testsuite/experimental/iterator/make_ostream_joiner.cc
! c9e50a267318077fe14c285bb6686b45  libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc
! 77d2959c68e071cea2f191c224058f4a  libstdc++-v3/testsuite/experimental/iterator/requirements.cc
! 2f20a3848a926f9a00a8c7e86ebc1ddc  libstdc++-v3/testsuite/experimental/list/erasure.cc
! 404b1578b5a7b5328cbfab5f6c895575  libstdc++-v3/testsuite/experimental/map/erasure.cc
! 26f583cb2c7a7e61048bc2e0750314c7  libstdc++-v3/testsuite/experimental/memory/observer_ptr/assignment/assign.cc
! 43c685daab2b6cb90a4a25c0e0c489df  libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
! d53d603990e7420ae6db56c7d66a0863  libstdc++-v3/testsuite/experimental/memory/observer_ptr/hash/hash.cc
! 13c7a8d487aa43d561ddec86b4425c32  libstdc++-v3/testsuite/experimental/memory/observer_ptr/make_observer.cc
! 28134e8e912cc6a0113de1212efcffec  libstdc++-v3/testsuite/experimental/memory/observer_ptr/relops/relops.cc
! 13291e6d9fa773352ddc3b82d0c0219f  libstdc++-v3/testsuite/experimental/memory/observer_ptr/requirements.cc
! c8ce560fa288b996cb69aed32ab38a38  libstdc++-v3/testsuite/experimental/memory/observer_ptr/swap/swap.cc
! ee695df08ae6857a7d6483969a6bec26  libstdc++-v3/testsuite/experimental/memory/observer_ptr/typedefs.cc
! 6c8b9e33f9481340a6ec6bf3244b5c84  libstdc++-v3/testsuite/experimental/memory/shared_ptr/assign/assign.cc
! 1511163326cbf48845154bdc980c8ce9  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cast/cast.cc
! e37e5a0e7dfa05b0b08cc5875f33f55c  libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
! 7bd9955674c80e940951d4ef1d777afb  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc
! 31d28be8f45c99a03b35f11a6134e963  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc
! ed0ff03e9ed69a2ffb8a4dec55f89a2c  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc
! 1fe42933ed1d350292d8a2389b653838  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc
! bb4b0102b6d5bd562df01e641b90fd53  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc
! 7229c042afbb784a77826753536f5d54  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/enable_shared_from_this.cc
! b414b354947b93e904ff3dae18388b68  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc
! 7b47957feccb217be84f528003828152  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
! c7851fc35f3f95a1eca69dd776a56dc4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
! 0d310ae36298756132fd95d9d0c3a877  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
! 4cdeaeacf31db3e6fa75a28694c99d79  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
! dce0b3436052bec15f49df40f1b7884d  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
! bf5d0209ee19a45dd627919f7bc4cbe7  libstdc++-v3/testsuite/experimental/memory/shared_ptr/dest/dest.cc
! ab8392dbe4aee981733a1d306f6a4823  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
! 4df05b00e32cb077ed13a72499c55a1d  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
! 78aa875368e639523aef1d18eaeff040  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/swap.cc
! c681550941fe0c74c4b2ca1bc31237f6  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc
! ea236c4cb413ebd92e0e85a36f63b6ab  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/operators.cc
! a6950a363c3fcfd40aa8cf786beb6faf  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/owner_before.cc
! 38240c252d932fc9349aa4ed9b62593b  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
! a1a7b3040a059ceb7f01824842115e6b  libstdc++-v3/testsuite/experimental/memory_resource/1.cc
! cad95ece17e740fb1f7b03b1d78b76a1  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
! a2a09869b9694d902f8143e6fe259895  libstdc++-v3/testsuite/experimental/memory_resource/new_delete_resource.cc
! ae07841c664c8d013f629a5ace0dfe50  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
! 3107784fe960cbb520edd9c5bc6fe291  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
! bee6e51d376b6b2953327fed03cca438  libstdc++-v3/testsuite/experimental/names.cc
! c3a63eae7968117044a7c2462f8fca16  libstdc++-v3/testsuite/experimental/net/buffer/arithmetic.cc
! 9b444aabd71eae2c828b01f2c72a01c1  libstdc++-v3/testsuite/experimental/net/buffer/const.cc
! e5f7a5f053b81f20998e5834b64d953e  libstdc++-v3/testsuite/experimental/net/buffer/creation.cc
! a655c3131fbbb953da58224ebd27fa9b  libstdc++-v3/testsuite/experimental/net/buffer/mutable.cc
! 3bd1c31d4492efe4dbd9c8067f8e30b5  libstdc++-v3/testsuite/experimental/net/buffer/size.cc
! fea29039bb37f69b7e62f937b97f8f42  libstdc++-v3/testsuite/experimental/net/buffer/traits.cc
! 806df93a573b30fb0068e38badda9563  libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
! dd86115093485fa9283de73189fa56fa  libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc
! 1e3ad92b641d98ecc87938eb920a9069  libstdc++-v3/testsuite/experimental/net/executor/1.cc
! 7949df77bb48e778a3919582bc4ece83  libstdc++-v3/testsuite/experimental/net/headers.cc
! 9b03492ea7c491f3bbf66a9ccd7ac3ce  libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
! acd2e3669c92ce5d8689750b330e1cdd  libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
! e7a767a390a25ef5f037f9bad9d23c0f  libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
! cbd886086392a242e8eba6b6d3ca58f9  libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
! 8514e4ba17d39ddb35611e7a895f7d4b  libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc
  c5933a59fa35123b5f7476b94a3b153c  libstdc++-v3/testsuite/experimental/net/internet/endpoint/cons.cc
  2ebb41182bd0ccc894c6ea518d3ea2eb  libstdc++-v3/testsuite/experimental/net/internet/endpoint/extensible.cc
  ec468421255febe9f30c0b08480f9b93  libstdc++-v3/testsuite/experimental/net/internet/network/v4/cons.cc
  effbee31a73742de94b337a743054276  libstdc++-v3/testsuite/experimental/net/internet/network/v4/members.cc
  b289bacb72f52125d6995bdc98f9a336  libstdc++-v3/testsuite/experimental/net/internet/network/v6/cons.cc
! dd321bfe51cc26b51d1b1a6f4dea94e6  libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
! 560c1dd835caf866c80f510aad7265d0  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
! 066219f106d76a7225ae64fb5b0da1f1  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
  760dec58bec2534cd56103a2710b1e16  libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc
  47ab303b0324b578953893e188a1c4e8  libstdc++-v3/testsuite/experimental/net/internet/tcp.cc
  31837180dee34f479c2c7eaafac7b04a  libstdc++-v3/testsuite/experimental/net/internet/udp.cc
! 045d777362c936c67868983c1356e743  libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
! c0f9d478c9a3b5cd3ac28eb80fb8394d  libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc
! 45f99a8921e9e5487b995db3e98e1116  libstdc++-v3/testsuite/experimental/net/system_context/1.cc
! b841d806630070477f80c610a8b3884b  libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
! e11c5b789552b3777154393ab4b52aa2  libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
! d7eb2ae104ff870b7b76904f6792cc6c  libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
! 22acfb1a6813c7e0364d9f40983c58e7  libstdc++-v3/testsuite/experimental/numeric/77801.cc
! c939cfd2ee239479e54b9183a53b4bb7  libstdc++-v3/testsuite/experimental/numeric/92978.cc
! 6fb30a61893fac984cce8a86c5607bff  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
! 131b6c9c5b9f0779692998313cc4453d  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
! 7200c8916aa85cab472dc38d6838238e  libstdc++-v3/testsuite/experimental/optional/77288.cc
! 2365891ece6016442466521e2a3c52c3  libstdc++-v3/testsuite/experimental/optional/assignment/1.cc
! 46221bfa5298dfbfda73896c6dda2e21  libstdc++-v3/testsuite/experimental/optional/assignment/2.cc
! c20a811a82cddaf969f62777f82baec8  libstdc++-v3/testsuite/experimental/optional/assignment/3.cc
! 7477bbc84a385013c13c82e89b99f908  libstdc++-v3/testsuite/experimental/optional/assignment/4.cc
! d54a6a137e4aa6e1c18577571b4d743f  libstdc++-v3/testsuite/experimental/optional/assignment/5.cc
! c52ed4195ef6a501f758a9558d109a4a  libstdc++-v3/testsuite/experimental/optional/assignment/6.cc
! 900c04974cd3cc31ac45ed780b0936b9  libstdc++-v3/testsuite/experimental/optional/cons/77727.cc
! 62c15a56de45927940a6dcc426319b1d  libstdc++-v3/testsuite/experimental/optional/cons/copy.cc
! d1ab63d1ef6c56f3dc21a7cb737abe7e  libstdc++-v3/testsuite/experimental/optional/cons/default.cc
! 7e201b4aba29e052d10231bce5e4b7af  libstdc++-v3/testsuite/experimental/optional/cons/move.cc
! 6983a7b18004ee66502b729d3f6c2e99  libstdc++-v3/testsuite/experimental/optional/cons/value.cc
! 6958a72517f5e65a8761b17ef8671d09  libstdc++-v3/testsuite/experimental/optional/cons/value_neg.cc
! b695e32b82a8f0c081de3c4d79611f6f  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/default.cc
! 0ec65ea3dc4f2f843d17c29a8a39029c  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/value.cc
! a267bb90a8e43d1b163d9097407b6195  libstdc++-v3/testsuite/experimental/optional/constexpr/in_place.cc
! 28ae8cd026aa1247b8b44e1b98e6cfda  libstdc++-v3/testsuite/experimental/optional/constexpr/make_optional.cc
! 669b446d6293bc872d027d60e4c57f6d  libstdc++-v3/testsuite/experimental/optional/constexpr/nullopt.cc
! a1df44aab615556714335cfa01be1072  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/1.cc
! 84012e7ccda998abdd9095bb96dba6a0  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/2.cc
! ea5468d554cc71d9c922b3d7d201bec1  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/3.cc
! 6c05e1f2b4058c7995181bc8d968c78d  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/4.cc
! ecb9cbede7a65dfaf4857e26f107c140  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/5.cc
! 77fa3d8e33af8e6f10bbe6a649239209  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/1.cc
! 245ef82833550fc36c3f59b43dcd4519  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/2.cc
! 4b94bf0439c95dd5476a606040c4ed15  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/3.cc
! e27bfe346e8b11ea25886ec44fc50948  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/4.cc
! db4023ce37bc34af652a0066ed3424e8  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/5.cc
! d465c0c3a61fe713af5eb5f2875f15db  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/6.cc
! 77bc2d4cbd2780fa1ae41f072c0ceb82  libstdc++-v3/testsuite/experimental/optional/in_place.cc
! 1a18e964f0256b3a9be3c7e7165da83e  libstdc++-v3/testsuite/experimental/optional/make_optional.cc
! 14ea4904725a4a558ded62f0540d1425  libstdc++-v3/testsuite/experimental/optional/nullopt.cc
! d0a60a378380f2da53f5b48963660b17  libstdc++-v3/testsuite/experimental/optional/observers/1.cc
! d24e37e42aa77d397a2af7133276a590  libstdc++-v3/testsuite/experimental/optional/observers/2.cc
! 368f3e08f3e9f2d79b2b1c4c2b81ec05  libstdc++-v3/testsuite/experimental/optional/observers/3.cc
! 64e4e938ba173098125e05a9350de1b0  libstdc++-v3/testsuite/experimental/optional/observers/4.cc
! e505597369328b8aa8e0789d70126076  libstdc++-v3/testsuite/experimental/optional/observers/5.cc
! fff912a9eb8c9492521131e6ddd41fab  libstdc++-v3/testsuite/experimental/optional/relops/1.cc
! 5e8c042d995ca2f13ec873bb740ec5d4  libstdc++-v3/testsuite/experimental/optional/relops/2.cc
! 64a5613d2f2fe9f2415fb5e966166dcb  libstdc++-v3/testsuite/experimental/optional/relops/3.cc
! 8a73c79df93a76a3b152314a65a0c81a  libstdc++-v3/testsuite/experimental/optional/relops/4.cc
! 06fbc66cd11bacf60ddacb6fc8957f8c  libstdc++-v3/testsuite/experimental/optional/relops/5.cc
! b498d589f11959a44059e3353f97a786  libstdc++-v3/testsuite/experimental/optional/relops/6.cc
! eb85de1724fc49c1aa1912b0e50a499c  libstdc++-v3/testsuite/experimental/optional/requirements.cc
! ce43aa90a30afff3a26e4c7b0db126e5  libstdc++-v3/testsuite/experimental/optional/swap/1.cc
! eda8e4e4e04515cdc02b0a32842721f6  libstdc++-v3/testsuite/experimental/optional/typedefs.cc
! 8c3342c4b5f74a5f111513b709581977  libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
! bed90951c23719d5fdeb7fefa378047c  libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
! be3202489d37b062bf132447cace913b  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
! 147ec9a4519dcbc1da97add62dbd1f70  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
! c9dfabcdae0261f01eb8d3a61f7452d4  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
! 49125a0aaa169317782f7180854a4f3f  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
! 521c344b3997e082309f76869c8d6db0  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
! 63851afc83bc0a9d962092c69700deb9  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
! 47f109d584323b0b041c05dd02f47030  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
! 40101ffb179929b14f92e8e4a301f71a  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
! f1205c6632b46af77fec23fa75274246  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
! 1d5718c2b569694bbb1a96ba7461ab0d  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
! 359a208baff6c9971aa1e42531cf2d87  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
! d05781d4bf126ef9397bb9133d88f1ff  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
! eecb5d91e2985ce17616e85cd17075f4  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
! 4c1a693554d3adc595265eda9617d772  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
! e12242cd7105b05b4238ca8cc7a49edf  libstdc++-v3/testsuite/experimental/propagate_const/assignment/copy.cc
! 19e9ea658d14945c9427266d054e3056  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move.cc
! a6fdb225a3741de6c1a198dfc9afb25d  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
! b6b7d94aceb2c2212be6923f9b99a1ba  libstdc++-v3/testsuite/experimental/propagate_const/cons/copy.cc
! 4a2f81550d90e7f2ceca53ba701cb6b7  libstdc++-v3/testsuite/experimental/propagate_const/cons/default.cc
! 61ce9a61e4aa19538662a2bbd16012cf  libstdc++-v3/testsuite/experimental/propagate_const/cons/move.cc
! ead64ece2e7ad6e968a6500553e489e7  libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
! d779dd80643760e2565ce6ac64176147  libstdc++-v3/testsuite/experimental/propagate_const/hash/1.cc
! 7698aa196e4ef158b145117e7fbcafc0  libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
  04b09dce4e740e5b8a2e2620eb6b3ef4  libstdc++-v3/testsuite/experimental/propagate_const/observers/107525.cc
! 213e9be3fee6c1b9cbfd38cf954455f8  libstdc++-v3/testsuite/experimental/propagate_const/relops/1.cc
! 922db60bc343ad68d7c012c8ea5a7ef2  libstdc++-v3/testsuite/experimental/propagate_const/requirements1.cc
! 0d4caf4639838f0a6cee36eaddb3564a  libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
! 7f6e472155a89dd3031f2431ca45f56f  libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
! 9c263649adc13904dfd7cda84765e416  libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
! 4b93c74cac694ee7e1bedd3fcd3441df  libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
! 155bfbe2ea494dabb034bcdba98af591  libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc
  f622008c5ec7680a2ac920136d22446f  libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc
! 4745636f718239fa62d1ebd59f570c3b  libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc
! 2a21ebccd08d5b562fd5654a85eab959  libstdc++-v3/testsuite/experimental/random/randint.cc
! b7b920f67085213f4677a60740342362  libstdc++-v3/testsuite/experimental/ratio/value.cc
  18f1edf3ab8b0c093f8d5f79063f64d3  libstdc++-v3/testsuite/experimental/scopeguard/114152.cc
  9196640538c8c2a7906a7a61af7e0409  libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
  256696a1234796126b8e5234f58103b1  libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
! 0e9369b16a049b09c59423b6886fee4d  libstdc++-v3/testsuite/experimental/set/erasure.cc
  d6f0083479e5097ec27151965ff89e5d  libstdc++-v3/testsuite/experimental/simd/README.md
  2c666451450a60415a52ed94723ea1a6  libstdc++-v3/testsuite/experimental/simd/driver.sh
  2653d8586849bef6493c2e5b408777ae  libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
*************** d6f0083479e5097ec27151965ff89e5d  libstd
*** 132799,134499 ****
  4abe9d75da280cd5bcef090bd6898210  libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc
  45c291024c5937a6b04df53d5af53f6e  libstdc++-v3/testsuite/experimental/simd/pr114958.cc
  8321e9c97cfe9622f4b70a13cf623661  libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc
! 3e961970c7fe3e69976dce41fddd9c4d  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  3718cfdb2ca6d6f1e0fb585a7350e074  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
! afa8f491cd900276be54b014f00662fd  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
! fd19b38ef277c6083a0bee8c3b14c0ea  libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
! 4fa3713ba286da7bcdd58ef6041071df  libstdc++-v3/testsuite/experimental/simd/tests/bits/conversions.h
! eda11a21a6a432499ebb6b43743aac6a  libstdc++-v3/testsuite/experimental/simd/tests/bits/main.h
! efe3a49ce9344aede87b25916b214e75  libstdc++-v3/testsuite/experimental/simd/tests/bits/make_vec.h
! 24843dcbd95330d97d0bf60c9e1c3070  libstdc++-v3/testsuite/experimental/simd/tests/bits/mathreference.h
! e1d57f3e7ce571e632173df379e6d8e4  libstdc++-v3/testsuite/experimental/simd/tests/bits/metahelpers.h
! 4277769251ff496c56aab1dd05df4486  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
! c06cabe123ccc2d94723061ce076025f  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
! 370603caac3d752098f5d54267c5bfb6  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 4e24710acfe7b2d1fb7f6145e2da1950  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
! 94757d8a1078d2300f60e06d4b5eff22  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
! 555ec4467d71c5589dae3e8828e7b5cc  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! 13b16433b3d00accf9256bd61dba394f  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 9c757f90994752dbc22b25cd0d6f64e7  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
! 22996b1a85454f69656afa3f0135603d  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
! 5447a25fc7938ed3c9536ba6f8a64382  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
! de575075e584830625efd6ad4893fef6  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 0222600c2ee8943561c4ce555d048d9a  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
! d84adcfc2f26d1cd98054604aed2495b  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! cbf394cf8e55fabaffb9867ed595b2cd  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
! b0c9fe6eee6617e4bf74fb9ffc652a72  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
! bec46d931379c37366e273a3b5e2e4d1  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
! 452a584ebcc5578bf262dcc1a603e159  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
! bea6b9132e2e42b08ebda0bedbe8d5d5  libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
! bc0482cb65c4e139d0f0d429f38d7a8e  libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
! cad789e0b5faa8fcc5b52c4dfe1b6bdd  libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
! 47bacc2b4c739e36e510d11d28606724  libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
! 84d9baebc9c351aa97af9bf6a8076206  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
! f6a98f333bcf78f233b9462f19f9aa86  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
! a3398c918f36f9e5a0992a467c21c6ce  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 346aba77ed98edbe9b9c1ba97cea523d  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! ae8371bfe6affbe2a4178419a18d1ef7  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
! 5d9815ceaad1f0df352691c80b43debd  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
! 25e7a7507cb9f72e732fef012701da12  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
! 67d76ba48c00fcf9c034fa39005907c6  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
! cddbb0157e160fa621192721155dba11  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
! 23df0fa43883722ed48f7a95e5230bcb  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
! 545e4fd1ed6ee2c70980722ae22259cc  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! a40cd96cd2e94180dbbbe8b8b55992c4  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
! 1f22f3c54ea8964ab6df8d7fd55c4ba5  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
! f0416b05f0296272da7f75ae013a26e1  libstdc++-v3/testsuite/experimental/source_location/1.cc
! 8644f4f1c9a0d7b59077f6417da203fa  libstdc++-v3/testsuite/experimental/string/erasure.cc
! 7128e2d84a6a6524f6cb76969b7b1f3f  libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc
! 8faaf282d51e444cc37b6a6abba89af6  libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc
! 26fbd9036a12166e1056c953f0e37da2  libstdc++-v3/testsuite/experimental/string_view/cons/char/2.cc
! 535bf955888216ca562396dbf98dac0c  libstdc++-v3/testsuite/experimental/string_view/cons/char/3.cc
! 54e859359161804392acf881bb6399d8  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc
! 459cc57216788e52e49ab2459a680301  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/2.cc
! 772804fccda4e8ec0e7fa020a238ea2e  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/3.cc
! fc4ae83d20ee2a313fc9674895be986c  libstdc++-v3/testsuite/experimental/string_view/element_access/char/1.cc
! d840b159d2e305dd65946a77e7d4fec3  libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
! e7558edb710ce0efe8d2e6068a7b4c48  libstdc++-v3/testsuite/experimental/string_view/element_access/char/empty.cc
! b117c26f44048f13115f98b4496b7ca6  libstdc++-v3/testsuite/experimental/string_view/element_access/char/front_back.cc
! 2640f808d33494318553434d92d27e6e  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/1.cc
! 9df8f6276c0bcd6b3e676c1c04d3b5a5  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
! a8455caa89e70fffd3a18dce0652f36d  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/empty.cc
! 14b58f3edbd4371be818f73e0f1bcaa5  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/front_back.cc
! ca350cf216a2ab5a87ab507fa06b69b2  libstdc++-v3/testsuite/experimental/string_view/include.cc
! 3a76ebacad4cae15870f114b016c1ceb  libstdc++-v3/testsuite/experimental/string_view/inserters/char/1.cc
! bd9733512da7d70393e58d9060b5c7ca  libstdc++-v3/testsuite/experimental/string_view/inserters/char/2.cc
! 6d3768476b4e92744d09b6a1b7de9dc3  libstdc++-v3/testsuite/experimental/string_view/inserters/char/3.cc
! bac7ac0fd4715f941c44e9025ebf01d9  libstdc++-v3/testsuite/experimental/string_view/inserters/pod/10081-out.cc
! 3cfa70b957b3d87984db0a3103c73888  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/1.cc
! 514a497340285d46a45428bd20887b66  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
! 202065f333f51fe3d6e31deebccaf756  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/3.cc
! d26e08ec2fc0928f8cf05ba2de080797  libstdc++-v3/testsuite/experimental/string_view/literals/types-char8_t.cc
! d082cde8775a2b192bde8b25a097576e  libstdc++-v3/testsuite/experimental/string_view/literals/types.cc
! d93cd1fb1157e3b731cf6df09d0bdfbd  libstdc++-v3/testsuite/experimental/string_view/literals/values-char8_t.cc
! 50147d70f18565e21d5b954a4994861a  libstdc++-v3/testsuite/experimental/string_view/literals/values.cc
! 94a7dbe1790d65ffa9c8c8f866e37797  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc
! a160d6da79d75b975ac4b4014e9b2436  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/1.cc
! 0e54664f85b163f7a8da45e6234f70a0  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc
! 3cf214a5f87e8e6938f1e1887da04f36  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/1.cc
! 68b1de1931154422d0622418d28c2698  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc
! 421c295dc654e60bbcf40981fb190179  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc
! 0d408bde3f977e1eb5b380d06afccdb8  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc
! 5cd506244446cc370f064312a673ae3d  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc
! 9b4fd3188ce547dcdeb4a6e64b00626a  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc
! 6eac2fd4f85ca279a932f42a9bd4037f  libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc
! cf624f677c08460f302c6ca585d5132c  libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc
  672cb4f94c8a852e6bdb846e926365f9  libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc
  3500b68ff8c9b68295a6f4a0a348e9d8  libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc
! 1f60ec6270f8028cedfb9f19a2c3d431  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/1.cc
! 642aadb2a1095691dfa3640f7adabfee  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/2.cc
! e5190871d31804b89079485f39d50d44  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/3.cc
! 0fad588e35e7b2777cdceffa085f57fe  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/4.cc
! 1d552dd3b911f55cbfeaca49048a0264  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/1.cc
! 2c0be4305521835ca719b99b51fb6af6  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/2.cc
! c34172e178c0a1bf0b7beab9694ae1e8  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/3.cc
! 4dfb98e5286e986d900cb82041872045  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/4.cc
! 75909a90ab8656aa6f4f9f6ac5fbe62e  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/1.cc
! 8a49166c1889dd67f0681e2ee20c56b4  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/2.cc
! f6baefd6edd06292a7c26cc0e60fbd86  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/3.cc
! a75ed26aceb5c3be08a1df5062db3710  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc
! 6dcca2c81fab535cf69bca794a12d264  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc
! d84f9019477a99bd3d1855f650131981  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc
! 55e0fa5b6a7b58bc4b6bf1745d2d1035  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/1.cc
! c579ee57d30f9d054b3f25b3ef60d9e1  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/83511.cc
! 9653f03eedc12439800f12f2e637492c  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/1.cc
! 1dc507de5b97f234d568a6097ae71693  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc
! 7fe989d39390876fa389a14fcf9b6d5a  libstdc++-v3/testsuite/experimental/string_view/operations/to_string/1.cc
! d5d12142702429438016e9c5b1d2aa82  libstdc++-v3/testsuite/experimental/string_view/operators/char/2.cc
! a1f7deb57bcbafc1abc1fbfe16423a5a  libstdc++-v3/testsuite/experimental/string_view/operators/wchar_t/2.cc
! 534d94b9bf408bc35082b5d242ee3b3a  libstdc++-v3/testsuite/experimental/string_view/range_access/char/1.cc
! c6ad9e6b9452e5157d42ee9f81f231af  libstdc++-v3/testsuite/experimental/string_view/range_access/wchar_t/1.cc
! b2fdb996433df930cf4bf9dd534bb9db  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/1.cc
! 95738ad1337ffd096e78c2925022dee3  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char/1.cc
! 0848a9814bc643f61dc6e41f8ac403df  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char16_t/1.cc
! 4b5479cb00c1801338569fc38cfb3434  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char32_t/1.cc
! 9698cee6e975f12a80fa20eb9e483fd3  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char8_t/1.cc
! 3ae802ac422a41b06d4c7c659afa9d50  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/wchar_t/1.cc
! a670512e3978e9719e315e77aa2a874d  libstdc++-v3/testsuite/experimental/string_view/requirements/typedefs.cc
! 805c0c13d309b33a7d9487710e539b86  libstdc++-v3/testsuite/experimental/string_view/typedefs.cc
! ca275565fa5e6fbd8009b06004f7a2b6  libstdc++-v3/testsuite/experimental/string_view/types/1.cc
  b89c4bdefa0bf886e09684838214bb81  libstdc++-v3/testsuite/experimental/synchronized_value.cc
! 925081e93ee74ae226a3f3963487f531  libstdc++-v3/testsuite/experimental/system_error/value.cc
! 5a652a0810ddfd01a5b120fe230bcdc8  libstdc++-v3/testsuite/experimental/tuple/apply.cc
! 9f09565a23a676c0b2efc8be2edffd5e  libstdc++-v3/testsuite/experimental/tuple/tuple_size.cc
! 34431a5b3cc28c411b9d64bee1c24eab  libstdc++-v3/testsuite/experimental/type_erased_allocator/2.cc
! b03d7c1e0f00761e66e02198e12c533d  libstdc++-v3/testsuite/experimental/type_erased_allocator/uses_allocator.cc
! 958f0b51872c8efc53f3061cfb0866bb  libstdc++-v3/testsuite/experimental/type_traits/detection.cc
! 5e2e4c14718ce9496f286b5cb11b5841  libstdc++-v3/testsuite/experimental/type_traits/nonesuch.cc
! b985e2bf090b671eb3af9aa055aab0fc  libstdc++-v3/testsuite/experimental/type_traits/value.cc
! c0b70966ba4e67c2f0019ab179b355f8  libstdc++-v3/testsuite/experimental/unordered_map/erasure.cc
! 2b777f319efe6df3e515ca0a6dca1c4a  libstdc++-v3/testsuite/experimental/unordered_set/erasure.cc
! 98d4f7e37b4c0675f8b4bb7eff0f23a8  libstdc++-v3/testsuite/experimental/vector/erasure.cc
! 175a2fbce2494716ab1d5423ad550a32  libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
! 71f6074037a228e4e2606fc1d616c1f1  libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
! b10fc8741903fe9ab188c1190798ecfc  libstdc++-v3/testsuite/ext/bitmap_allocator/check_delete.cc
! 75de7cbd33a2fed465c50c4e83e0c415  libstdc++-v3/testsuite/ext/bitmap_allocator/check_new.cc
! f74c0beba9e0204823b89c85d8f846b4  libstdc++-v3/testsuite/ext/bitmap_allocator/overaligned.cc
! a43fd9651d22c3cdb7bdf422e09ce5a9  libstdc++-v3/testsuite/ext/bitmap_allocator/variadic_construct.cc
  846dc8224edb857bb6953efa8b4cdb2d  libstdc++-v3/testsuite/ext/char8_t/atomic-1.cc
! 04a141c840396002e14155d8fb295506  libstdc++-v3/testsuite/ext/codecvt/1.cc
! 2d4b424089b3e97c4ffd66845a29d487  libstdc++-v3/testsuite/ext/codecvt/char-1.cc
! f214857eed61ac6ac3c9165810bf3164  libstdc++-v3/testsuite/ext/codecvt/char-2.cc
! c8c41f34b4f2266688170ff634c29b73  libstdc++-v3/testsuite/ext/codecvt/wchar_t.cc
! 4a62417fd14e77e8d141e75927d3fd55  libstdc++-v3/testsuite/ext/concept_checks.cc
! 12c5f06e314bbdaf4b27721b43a8080a  libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc
! e0aeaf490321207b19e1d9ae4efe390e  libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc
! 2f5904ae29b61219638619a768200057  libstdc++-v3/testsuite/ext/debug_allocator/56170.cc
! 24bd5baaa290c3572c887b71e4450483  libstdc++-v3/testsuite/ext/debug_allocator/check_deallocate_null.cc
! 312dd618d89e49af6ba8248ec8d1b660  libstdc++-v3/testsuite/ext/debug_allocator/check_delete.cc
! af9908c2dc9978a5410ffe2cb5298d34  libstdc++-v3/testsuite/ext/debug_allocator/check_new.cc
! f24dc6855a9efc6c5cca0c38116df054  libstdc++-v3/testsuite/ext/debug_allocator/eq.cc
! 503bcc85806df75a9468f57318131709  libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
! 725b444e9d5fd9c6862c1964fedaaa82  libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
! bc54e40d5d54ea20f07f2d0df098dd9d  libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
! 34cffddd12a60846ab1321f0cb13056d  libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc
! a9097c81f657f928d6c44de116d3943a  libstdc++-v3/testsuite/ext/ext_pointer/1.cc
! 79b3606275b3d5ab9e0bebd09aa738f4  libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
! d38a1fa157fc099131e6f911942a10a4  libstdc++-v3/testsuite/ext/ext_pointer/alloc_eq.cc
! 69c0a9cccc5e8f79fd1c046fe93f0c8a  libstdc++-v3/testsuite/ext/forced_error/cons_virtual_derivation.cc
! 2385a751995c9f41e713ed60ae02beaf  libstdc++-v3/testsuite/ext/headers.cc
! 8674884c4c7f3695dd7aefb030fac66c  libstdc++-v3/testsuite/ext/iota/cxx0x.cc
! 63787c3843b5e77c108a0c1f7aee8134  libstdc++-v3/testsuite/ext/is_heap/1.cc
! 158a9f3ded2c30a4f3f85c9e31663598  libstdc++-v3/testsuite/ext/is_heap/47709.cc
! 0218d88c8edfcdd98aa4d72742de2229  libstdc++-v3/testsuite/ext/is_heap/check_type.cc
! 1be67aa6cbda44aab81871a7facad480  libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
! 2085f50d2ab6328f892f7c69413571bb  libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
! 6e6fc46bf1e64c1d0eb1dbe96f73e407  libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc
! 5f7a533138f0acdaf4b92d97958dac38  libstdc++-v3/testsuite/ext/malloc_allocator/check_deallocate_null.cc
! a9ff6783072c4aa754834c0500082538  libstdc++-v3/testsuite/ext/malloc_allocator/check_delete.cc
! 7e07c6387f0f4fc28905c1a66fb9ca17  libstdc++-v3/testsuite/ext/malloc_allocator/check_new.cc
! e473ba09893caafa090c61707e3dbb3a  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
! c1c52f8d5f61a2a06912faffea03ad8b  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
! 4b7397ba113655a293a59f95c907f1f2  libstdc++-v3/testsuite/ext/malloc_allocator/eq.cc
! 67e9c59e01f5e4226284bfc36244d171  libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
! 038b56db8d826511a9defdb7fde30124  libstdc++-v3/testsuite/ext/malloc_allocator/overaligned.cc
! 76a6ad93b202c31c6a97cb61b8c9a905  libstdc++-v3/testsuite/ext/malloc_allocator/sanity.cc
! c8b3ff2b62dc8c2545bff5f83363fddf  libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
! 6c5a6131fb877b2ea4d2141eceafde28  libstdc++-v3/testsuite/ext/median.cc
! c2aa3e6faf134821b44321853c795a6d  libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
! 6bb0fe59bffd57c67f889c77d5d22d76  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type.cc
! c381454915bdf40fb104aead1c2c580b  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc
! ad3d83b2aa597013cac2a5b890aeb2d2  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null.cc
! c1c2febce55b08466267b22dfef83094  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null_thread.cc
! 0ffa75df8a2296663dc75977d305784f  libstdc++-v3/testsuite/ext/mt_allocator/check_delete.cc
! fa7acc5bc8947c26bf8f624b7dc00bfc  libstdc++-v3/testsuite/ext/mt_allocator/check_new.cc
! 582df058b25edb95a1b25b5c7cbe6f2e  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc
! 030033c625e7473e31de86bda0e43849  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc
! 4a0b5777720a0aef46f062aab5e186f7  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-1.cc
! 3cef910264a8b13eb832a5734d81600b  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-3.cc
! 5653055eef0667e247aad226baa0db4a  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc
! 3fbbc6fbe5ef78276d4e70ec16bb4a74  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc
! 5e229f98914026ec385b76a1bdf10b20  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc
! 06483a072a6c087d3ba03e0a40510c84  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-8.cc
! 24d1f4239835006cf53ede15b296e4d9  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-1.cc
! 3703a33bd07511e893604b0aeab4756c  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-3.cc
! 52a5383d3165a79581923677c8232d4e  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-5.cc
! 660a5d9135f55793bfb04cde59d7012d  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-7.cc
! f98d3bb6439519d837dc92663a5998fd  libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
! 00a44c03babac69ee36781df8d2e598b  libstdc++-v3/testsuite/ext/mt_allocator/overaligned.cc
! ab839655cad3d93ae361cc9c36f3e282  libstdc++-v3/testsuite/ext/mt_allocator/tune-1.cc
! 0bd80f857e0b8ea86149769a4986fd36  libstdc++-v3/testsuite/ext/mt_allocator/tune-2.cc
! 8e590ac7776f11f0b4dea625cc867800  libstdc++-v3/testsuite/ext/mt_allocator/tune-3.cc
! a86934f05babe252bf91e6fd6b79b97b  libstdc++-v3/testsuite/ext/mt_allocator/tune-4.cc
! 4bba8d2b415650fc0d88944bc49cc843  libstdc++-v3/testsuite/ext/mt_allocator/variadic_construct.cc
! a027768bf7ff00816742c0ff0631e675  libstdc++-v3/testsuite/ext/new_allocator/89510.cc
! 7d6e75ebb27950c9ca87627f2b183f2a  libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc
! a2b477f1fa5d394e37c483f96b8bab7c  libstdc++-v3/testsuite/ext/new_allocator/check_deallocate_null.cc
! dae17fa7c9f00171ce02a0882f4f919d  libstdc++-v3/testsuite/ext/new_allocator/check_delete.cc
! ad386a28605722f39afcd60c366f3e77  libstdc++-v3/testsuite/ext/new_allocator/check_new.cc
! eff5eee86699ac5a2e0d6d6a7b89b5bf  libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc
! 6039a74cf325fb748d3b473614e1db2b  libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc
! 80f19b8099b5e236da37e5f6f760e064  libstdc++-v3/testsuite/ext/new_allocator/eq.cc
! 6fb4872e60873de35c149b6691f2b882  libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc
! 33fd335390014c6b0237f17a365f14c5  libstdc++-v3/testsuite/ext/new_allocator/overaligned.cc
! 24b29541f650ba6bd84c3f30743571cf  libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
! 2928b4d91e58e277eac83f942b4dba5a  libstdc++-v3/testsuite/ext/numeric_traits/numeric_traits.cc
! 3dd1ecdeaaf8256eefbfe77950dd1efa  libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
! 16104a4b369990e11a5ba24eb97aaad5  libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
! 905ce42ee323b0b0d077e11bb9e48512  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
! 3d66478d333a7f92e9981b1dac0ba51b  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
! 946e57e33a33ec69c7eebe74d8e9ff9c  libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
! f16ab6649f8351a6fa31c26c71e35cd1  libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
! 6855c3b239519d35055270f810686b04  libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
! b829b8d7d869907272a08fe9b6ea7d47  libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
! 3cb119bb36f47088244e6cbccb5389ae  libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
! 72853f4134c3c692443cb1244b8fb298  libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
! 0099ad85be05f2fb556a480ba6b14625  libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
! 3819ee45ff414d635617d445f5d0cbb0  libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
! 56af7c883159fe4cf3578f0078653fc0  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
! 3bd7e7fa33d6cfc1b99c99b10aee74ca  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
! ed3942007ad9191baba8c7602642220a  libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
! 21e1fcf49c6eb81dff9df4245ccb4851  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
! 8c65715c9c8943cfee312aeb062fddd8  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
! 0cf94620b2475be260be314f9d809ac2  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
! cff09db96ace28a2f6dec827c6d547e4  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
! d980fcb378378742d703c68d3accb387  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
! 0effcde26861cc61d98aad61b47be689  libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
! 3cde76eca60839b5df09480f1b28b19e  libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
! d928b317a608165e677ce71739b92282  libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
! a35317621fa1832c5493eff06852cc08  libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
! 38f5ff2fa58ba77b8b3c66352af4077d  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
! 2f3efdaea9029198890a337126e478d0  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
! c328de18a5ebf3b2dd1052e0e82015b8  libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
! 00d2ee96f19c7a5da0af9a2d47369e67  libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
! 1833fbdfb751ce281576bee9bf70c880  libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
! 37e55dff22aaad2b9e501e8079729625  libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
! 4ef12c3fddfce9aca32fa9b79cc90126  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand.cc
! cc8a72a08ad5bfce6fbfb4adeb667119  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand_debug.cc
! 844cb83a201ef49d5f96084c8f7180b2  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand.cc
! 618c59e240405f45664136dd16605052  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand_debug.cc
! f547214985ee447a8e25b1c69fa24282  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand.cc
! 4d6f4eb96895a0becc068f946779633b  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand_debug.cc
! efd61932082c136b008a17fc9de5bff5  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand.cc
! 7c76306e0348d344f2f1aa85eefc3a77  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand_debug.cc
! 41d1eac0a88988003e4b47d146babd2c  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc
! dd87a163735d111b3e87a3b1f79a63e4  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
! dd136abb33774b747a7a0e18a38c89dd  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
! 3782c221cd322638bbf25d8ad934c518  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
! c493810bb9950b5f4402626d726ca382  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand.cc
! 28d860022aed717b0acff11d80893498  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc
! 26efc6e1cbbc053d7dfae397f2a8c826  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand.cc
! 89a9215526d8b48c6ec657e496eaaf85  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc
! 621b6e8368c5bf75b0008353e0bc5211  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand.cc
! f6f071bd25a6b4363880a223360a20a9  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand_debug.cc
! 3b4d2e0ab6b02271c4d8f22a878033c5  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand.cc
! 9b4b5b94fe60d848b2591308f179d466  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand_debug.cc
! 364b766333582f357003e3c6100ce9d3  libstdc++-v3/testsuite/ext/pod_char_traits.cc
! baa85df416608ad613b47c8a34e73709  libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc
! 12c71d3fc14831cd041763451ea8c711  libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc
! 54d4dc0abf2d02bc98dbf0369519a790  libstdc++-v3/testsuite/ext/pool_allocator/check_deallocate_null.cc
! 9c243b27a9c773c5975eff7900a97abc  libstdc++-v3/testsuite/ext/pool_allocator/check_delete.cc
! 061b0c2eee3050711f314cbb0ec07104  libstdc++-v3/testsuite/ext/pool_allocator/check_new.cc
! d7a7719535d92e6efd713aedea805ea1  libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
! d972abcfebbe0eb4349dc5f94314ab7a  libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc
! 55e107e4f70c8f735dfdafa623b3e776  libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc
! c4400adc9736395db83774f81ff73970  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc
! 73f84e5f6425b27b289b865b5c4d776d  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/parms.cc
! e1d551d185a87431b9d3add32e6b85c8  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/equal.cc
! 9538f2d8bdc073340ff16c385b26c213  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/inequal.cc
! b85824808defc49dc2a0fbcabe0db5a1  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/serialize.cc
! 220eadf328ff001fcac83798cab892c1  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/explicit_instantiation/1.cc
! fc556f22d131847ab07cb71290614e5b  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/typedefs.cc
! a14b2bd4365b06b7a84d6a47a7b77b09  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc
! e528334a44cbc9006383041d809fbedc  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/parms.cc
! 0f3d240881d85400e880f8295ce40796  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/equal.cc
! 1cd48fd1e7ab9bd9984f9309c3a91b9a  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/inequal.cc
! cb983fc57a619d4e39dea743aa6e2b91  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/serialize.cc
! c4986534c13492af2deac28d8611f697  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/explicit_instantiation/1.cc
! 47b6d59ffdb3a477986460fcd6708211  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/typedefs.cc
! e41693616850b0f250cd2d92268dddca  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc
! 3dd6e40f98902ac9571cc399c8a01a8a  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc
! 0e37162d89e255bbe725fe5e4dcb0119  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/equal.cc
! 6aeb14f6c15795597de0b0e535b8d02e  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/inequal.cc
! f419c15b48fc8b981d01011f783fb5b4  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/serialize.cc
! 9e8de72c7c49a7129939c5e7898d5dbb  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/explicit_instantiation/1.cc
! 8b90b68ac64be5d4c846b7fdac302e53  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/typedefs.cc
! 3d8972fd6c9176e33ca96a4e89c7aa21  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc
! 41c962cb42700045b4db241917d7a52d  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/parms.cc
! 025c6c958352bb9c0600faac8050ed90  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/equal.cc
! cc04ee467c2d871c985fb3b6e23651a0  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/inequal.cc
! 3447881bc6aabfdc4fcdc85ba71bdbb3  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc
! bb4ee68014e03feca49578182c76e695  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/values.cc
  5310d63384a16aab3ca0056f2cb3b3dc  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/pr60037.cc
! 76f573fdb1e4dfdea5418875eedab2c4  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/explicit_instantiation/1.cc
! d1c17b79eaa18910871def8d7b3d5896  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/typedefs.cc
! 169d2b1c04e1ec87dea7ab6cd83fb1cc  libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc
! a47fb5c249451aa7d41dfbfd360dc280  libstdc++-v3/testsuite/ext/random/k_distribution/cons/parms.cc
! b55167220646f35e4eb243d717819291  libstdc++-v3/testsuite/ext/random/k_distribution/operators/equal.cc
! f8cb185ec54eb0cc1197880961776eb7  libstdc++-v3/testsuite/ext/random/k_distribution/operators/inequal.cc
! 2daee8069b5be648a4b538b1b4b25713  libstdc++-v3/testsuite/ext/random/k_distribution/operators/serialize.cc
! d9fc453a466404ed91899d7c3f7f653b  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/explicit_instantiation/1.cc
! f59e724dec3b48798d84ea48e6562c9c  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/typedefs.cc
! f043a5200c6583a20bd99b4ee4ca2420  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc
! 3d5daef403c38da27ee262a97300d343  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/parms.cc
! c282dfb18ce28b4f21aad91f57660cff  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/equal.cc
! b5a6a135b35bdd47f0112394719d413f  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/inequal.cc
! 600b492a58b5ef5f80eba603cb6c5a55  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/serialize.cc
! a29a8f7c1dc2593b3120b475b2b33b6d  libstdc++-v3/testsuite/ext/random/logistic_distribution/requirements/typedefs.cc
! 2c609b368ae62d245e131aa14dcc7fac  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
! 3fdb42810117945afd79b751d3ca65e3  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
! 90339df9938602088427ba1380f174e7  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
! 7ba3844af7d49acf79ebf12aa3b3c561  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
! 5b758de578e048b1c93d80cac1cb7939  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
! 26bc6af4760e1a48b6e153cc58b1cf07  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
! 00136ef1d1e45da50029d9de4c1792bc  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
! 41492077b50b1f4bc3334b83490ced01  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
! f68a8a2bf1949a3b87721ef68957a536  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
! 2a5d52cccc820bdc5ca2089453f87484  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/equal.cc
! 11b3d6cadef4b37b0ede0bb00f9bc40e  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/inequal.cc
! 409567d05f3567eabe1f0a5d2b42825d  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/serialize.cc
! fcede63dcc0a61ae71204f01f25c3faa  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/explicit_instantiation/1.cc
! 3d4938236ee0f340dcf3c23b984ad909  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/typedefs.cc
! df69f74d1b45dbc2f41e0f4bc5fddfd8  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
! 0c253d5afde34b5ad22bfc3851ff4fbe  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
! 1b2782cc5d80ddbdd9fa2ae26a791343  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
! 25d5696e678ff6ccd32c9fa9b454e738  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
! 4d8ddc03f9d41ddbe0c72dc97fd847fa  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
! 5a2ba704f253617e89fba0dc7fcc5041  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
! a757be26655f9d19ded270ceb8965df1  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
! cd88c678db781ac2e82dd1f2deb70d73  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc
! 7ea1d79f33c44b98c5f46075eae695ef  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/parms.cc
! ad767662a68fb2c2aaa2a3a64238737a  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/equal.cc
! 9311da7793b1012b705fe25d10f51ed8  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/inequal.cc
! a7938fd3239212aec94da0bc8a959f52  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/serialize.cc
! f967a590e666bb51384bf2bc36b8aac4  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/explicit_instantiation/1.cc
! 7140957ae63a103f4e0086e74ece3743  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/typedefs.cc
! a8b729a5d65fc6ab48b8c7ccdec00fdd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/copy.cc
! 3edb1ddcf410dc4f18847798391f9cbd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/default.cc
! 4a2647100bf1a6f53f4eb6f3c3bb3c28  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed1.cc
! 7bd8afad2d90a7a0de6d042c2dda08c0  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed2.cc
! 249c0d51579db0c3350981e490cc5e50  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq.cc
! 667be932f7638bd11f7c4987a256a7d6  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc
! bda96ea0eaf321d57d7cba4011dbff99  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/equal.cc
! 15277cabda8447911e147c2b663c3b25  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/inequal.cc
! d37a913c5fa17c0eca9f095e0a58ce20  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
! e6e0ee1be87a21ed872b8e912dbfc0b1  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
! ffc5b65893f6f3ce63648bd0b314d562  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
! 60a1a090e9ef27f8893ba0c53279de14  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
! 3c39b6d1620c9ccd88e219524837bad3  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
! e8982c3d9a4b5736f926cfbc96e3d040  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
! 1765fc69e8849ae9b76f26e97fb06bb6  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
! 65625d96f4f9602b2e783e39b4b2d78c  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
! d0880fc8250642367a189454f76648d1  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc
! 762c1854faad6dbe416a8136ff0377a4  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/parms.cc
! 287aed0094cefa58e132249f53e599ee  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/equal.cc
! 8b55cec82110d122769589078bee5fa9  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/generate.cc
! 58ac688b41544cf9623eb5a125bdcea2  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/inequal.cc
! 2faa9e8f7284dd70b7db4799d89635b6  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/serialize.cc
! af2d7fee5d2809090459266a538c21e4  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc
! 4eedb956803bbd59d1b9ee469dcb1da0  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/equal.cc
! 4edf62ed010af11404b269e56b91bb40  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/generate.cc
! c0493ded0814bc3055ede5bc22fe8d3a  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/inequal.cc
! 8a6df5759cbd94a2b9af7c726af10993  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/serialize.cc
! 309e24078832604fa65ec9a9a734fdab  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
! e5bc7d66edc9d582c5b2ee80a8f39026  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
! ea12d1d69dde3be7c64fb31d11395d1c  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
! 7ff64a14b4cad1d17005fc76f4c6085c  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
! d88cb49b2b87b0c1aaecdbf49eda10ff  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
! d2f8c148167468ee10add9bb8e1e8513  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
! e2f0e32f81271e1afb724b1feccb2a69  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
! ac420d9d05b7ef256c3e57c1b3267828  libstdc++-v3/testsuite/ext/rope/1.cc
  4b4043d9b7ee0d0043f2c34bac5eae23  libstdc++-v3/testsuite/ext/rope/101542.cc
! b34a6952f072be849566b21140f0d202  libstdc++-v3/testsuite/ext/rope/2.cc
! 43b71428966be8ce5c3ba0b4f3bb6ff0  libstdc++-v3/testsuite/ext/rope/3.cc
! e56e53bc3e2599c937f0d529429b96e8  libstdc++-v3/testsuite/ext/rope/36832.cc
! 54a826b4228a2953cafb5917d91cf78f  libstdc++-v3/testsuite/ext/rope/4.cc
! d53ca637c2d4ae154fd9c2a31136ec96  libstdc++-v3/testsuite/ext/rope/40299.cc
! 2fbcd508088d272d08bcce7057314634  libstdc++-v3/testsuite/ext/rope/44708.cc
! 40f561506826bae964b4011d9bafe8c8  libstdc++-v3/testsuite/ext/rope/44963.cc
! 08c6451319e4873b570853ec6d2cfdd7  libstdc++-v3/testsuite/ext/rope/5.cc
! dc0d9a3d1570fdb94c620f8ca4d2fbb1  libstdc++-v3/testsuite/ext/rope/6.cc
! e59747c55d6449284204cff5b115d721  libstdc++-v3/testsuite/ext/rope/61946.cc
! cf53af5a72e452c7cc25004b8ba47d34  libstdc++-v3/testsuite/ext/rope/7.cc
! a9f7b362e4c09252708353053761be90  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
! 1e9b508f2355fd7f33db06371fbb4666  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
! 3ce6c6b8f579329e5380944833f824b0  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
! 8b0a1925cd366c40c12cc0998e57c609  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
! 84efe9542f84fef881cfb255b1f0d94f  libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
! 3314b4388c0c255a9dfbd2c58547cd3a  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_nan.cc
! 8f47e8ec65522650be4c631af74cdfe1  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_value.cc
! 29ffbed49a3e6135634551166044256b  libstdc++-v3/testsuite/ext/special_functions/airy_ai/compile.cc
! 5b62696f0e7bff99fd63cc4c3366c653  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_nan.cc
! 2b57da12cce79b2b2c2f045cb6d2f732  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_value.cc
! 1368777491a2c9bf00f3a58496bc94a0  libstdc++-v3/testsuite/ext/special_functions/airy_bi/compile.cc
! 87fd9c3ec819152814a664e2f4c89101  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_nan.cc
! 74050466475dee0f665fec627ad90d92  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
! dde00cd680d2ea622e242ae09d70f3f4  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/compile.cc
! 09a430a4141c41e9d71915aae26b4486  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_nan.cc
! 90bf88134e73bc1b30c4c93b9e113165  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_value.cc
! 48e99ee385311ac462fc32b2cb1abcf3  libstdc++-v3/testsuite/ext/special_functions/hyperg/compile.cc
! faf06217f04d316a17ba152875056a00  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc
! e5b0cf6567f16dd60b74cbbe6162cdaf  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc
! 96d8bcd1b3c08e439d6cb7f2c061c503  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-3.cc
! 6928635c3596aa09a63b59926adb9077  libstdc++-v3/testsuite/ext/stdio_filebuf/char/2.cc
! e65e0d921cd13e13da47b9ed1df44168  libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
! 16677596cd26982b3b5238b25aed76ff  libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
! 2ba335d5f925e93a6cdc391fe327184d  libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
! ce40a92882f321cc8830c8a5c7dfcec3  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc
! f330aa11e701f5549a116c314f239c5d  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-1.cc
! f20f8cc9b5c4a704acc9ddff166b3729  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-2.cc
! 1395d4404829a5567e1facf1e93af2a8  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-3.cc
! 138b917098d85ea6f4804a854a4bf488  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-4.cc
! b8f6e193cd3ec2ef2bd9b0f05cad50f6  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc
! 5f5e5c61274d2962a437417aeea13e09  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc
! ad8df3215ee3582bdc271325c15db565  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc
! 777961a17af48109c8bb2e7f071cd239  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc
! b15782ba5c9dff87da0e7db28b0e8b88  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc
! c59afa1bc4a7753ebfe2ade851e9d084  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc
! 445c62fb7b92e31eeabddc89d99a87ab  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc
! bd63dab79a0be36c1d0c533ee00b91c2  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc
! 8f69b73285d62ca8c1dd0ce08e662cff  libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
! 6d61a05564519825572488f9ea13f3b0  libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
! 09a14824e68677eff276c633c131d240  libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
! 8d4d7b0a6a61774dc9731f6622bd4ceb  libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
! 683ce1b3400af7fb06e983e06f19453c  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
! 52b4402aac4ae7d776e5fbb2cc3c41db  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
! a5ba39ae968e794c9a303540f7cbe902  libstdc++-v3/testsuite/ext/throw_allocator/explicit_instantiation.cc
! f3a5e6c692e51d7278cf83d714c7444c  libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
! 675e339de3f6674d4b73e0ba2e709306  libstdc++-v3/testsuite/ext/throw_value/cons.cc
! 88721543a85bf99f9943a99512dcd7b8  libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
! 1b38e78de335a55a863ceb848c570446  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
! cdd5afa57e6fbd30eaca9075a125c2de  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
! 040056d2eb9dd8c39280d2b690f9b6ff  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
! a5968f3f5270de8ee1e81dbf7dfbe643  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
! c3acc27c38a3f5ce39fc64a8886c882d  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
  53e931d667b5351e2c83d9753880deca  libstdc++-v3/testsuite/ext/unicode/charset_alias_match.cc
  21033b8a9d07ff00d54806ae81ae7b35  libstdc++-v3/testsuite/ext/unicode/grapheme_view.cc
! 16680f8139883e38254462313d50ba4a  libstdc++-v3/testsuite/ext/unicode/properties.cc
  eb379d71e3596cc2e06b1156ee0ca92e  libstdc++-v3/testsuite/ext/unicode/view.cc
! 83e9a215a42e28b13cfc24a2385f6549  libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
! a323f59c881aaaa781fc9faccd347f53  libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
! a204d2965a3fa381099f78c9e4683f8c  libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
! 59124794a8be9e28fe755aa2ee87cac5  libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
! b28a8d199296833aa0a8a2ec5c6990e5  libstdc++-v3/testsuite/ext/vstring/cons/moveable.cc
! 7128df84ac48001cb4d9aa13eea5371d  libstdc++-v3/testsuite/ext/vstring/cons/noexcept_move_construct.cc
! 9cb5bb5ccee57d6696f296349e50081d  libstdc++-v3/testsuite/ext/vstring/element_access/char/58163.cc
! ba71e335afed54080f47390001b1472c  libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
! ceab910f974856a57268ca4e39a432a4  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/58163.cc
! 16b99f997c579217c09cb8fc2644a34b  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
! 9e064ca0c8d3273e763488b183079a6b  libstdc++-v3/testsuite/ext/vstring/hash/char/1.cc
! f4b4deead4f08ba9be4b8d41357372cf  libstdc++-v3/testsuite/ext/vstring/hash/wchar_t/1.cc
! b9d5b76e15d929362e67ed91398da678  libstdc++-v3/testsuite/ext/vstring/init-list.cc
! c6712ef691aacd1a688a8ccc59abfd9d  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/char/28277.cc
! 3764dcf9c7aac0fea03c636f321c9129  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc
! d50baa6f63a5292cc9891ef63aadb926  libstdc++-v3/testsuite/ext/vstring/modifiers/assign/move_assign.cc
! cc4bfcacb1998b63bdf457fc990867e2  libstdc++-v3/testsuite/ext/vstring/modifiers/clear/56166.cc
! 7f0d4564c2a5e2929a43eaa0db7074bd  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/char/54577.cc
! 0c853bf4b4fba78653beec96b74b3156  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/wchar_t/54577.cc
! 1cf842027a8746859f1291268ca28ba5  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc
! 506c5a7e632806a86214f9f2392bc627  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc
! c36518e86aaa890d31b0d38f5877a8bb  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/char/1.cc
! fe1bb9353fd725715fa38869fb928b3c  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc
! 24f5acf9c8dfc1977aa5620516bfd08f  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc
! 8b9d6c84a9ee4088288b5a821a555e37  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc
! 9aad7555bbdcdfd2b3205fc1e0d9735e  libstdc++-v3/testsuite/ext/vstring/operators/1.cc
! 297225366128de41cf101415ec9c36c4  libstdc++-v3/testsuite/ext/vstring/operators/2.cc
! 28de0d4173e79a309ec8e732f0f704ae  libstdc++-v3/testsuite/ext/vstring/range_access.cc
! 2c40a55a32a24146c993b1694a568cee  libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
! f7577f56b3a0cb443e68085535a421ec  libstdc++-v3/testsuite/ext/vstring/requirements/do_the_right_thing.cc
! 756930a676197504b88551d9c17a0215  libstdc++-v3/testsuite/ext/vstring/requirements/dr438/constructor.cc
! 0916eb17d6395439202ed4bc34a50329  libstdc++-v3/testsuite/ext/vstring/requirements/exception/basic.cc
! 3bf46b5f337915db2ea3c4fec4200952  libstdc++-v3/testsuite/ext/vstring/requirements/exception/generation_prohibited.cc
! c08b52e80bf8037a708520802f4e039f  libstdc++-v3/testsuite/ext/vstring/requirements/exception/propagation_consistent.cc
! fb312d1079a7b9cc13c13c7abb7529d2  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
! 80aad0a8a672cc18748af4a53cbe129f  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
! 9b5c920874fb6593144b5ec0bdcdbc02  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
! d4e1a02ec10d770d5a15da3be32a6ead  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
! 74227cd9177345a07c2a659fcfb4d20a  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
! 0f0176d6e244a7600fc15398150420ac  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
! c893d8deea738e2cbab248ee750a4c96  libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc
! ab66f3fa4dc139afcc156c59a479336f  libstdc++-v3/testsuite/ext/vstring/types/23767.cc
! 7d11f440e59011cd0bc021ec389521c9  libstdc++-v3/testsuite/lib/dg-options.exp
! d7309c84b46425cbe14dfc56cd4fd2c4  libstdc++-v3/testsuite/lib/gdb-test.exp
! 4c7b663155b9ca86ed02bd0385249e31  libstdc++-v3/testsuite/lib/libstdc++.exp
! f0a7b9635ac2bde028508eae4e1b07d1  libstdc++-v3/testsuite/lib/prune.exp
! e99f7b2b082ed0e08179c7c2b4da912e  libstdc++-v3/testsuite/libstdc++-abi/abi.exp
! 69f91895143eb7ed5f04fbed3b016005  libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
! 02cb850acc68ebacaf65996eeb322953  libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc
! 4a7005723aba171d6dc38b97f367aca8  libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc
! bd459b2405184515770436b1c9b29467  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
! aba4c7e81e8846a459dfbd114df7467e  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
  d7c372bf46cc2da8c3399d8fdc2381dc  libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
! 8ae0f980c8c289e6ab3fb7c9e6623159  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! 95f44c2c268c1afd8ff06a167af8a17b  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
! 78942c400579aee275bcb264e4e0cfd2  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! cc5c06bbfa825451a60d72a69657a567  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
! 9fba74ff569ae0d1101e0ff41a0f9302  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
! 9923979e44c8c0fa551ad9de36eb0e2b  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
! 0778d54e5b3ed11c4356b07a025b87d5  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
! 8416ca7175755b4fae784319ff376413  libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
  6a9ac7f69736076c75da48c32d9d24b2  libstdc++-v3/testsuite/libstdc++-prettyprinters/locale.cc
! 3e638c6cfcf1ff6dd7adf57423f9b908  libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
! b76c54fb311880eaa87c2c522955762d  libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc
! caa15067b7cb67df38cfc6c999e75cfe  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
! ce27adb45c9045b7c69ee1c0cf20a6d0  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
! a8471d5938c5b0cb5fbcc89d9e87eccb  libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc
! ade8ebf8618da64de638b06a53ca946e  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc
! 32276e183fc175387c9340c3adb7d472  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc
! 95c4ef31ac778daf058103390ad8f6ea  libstdc++-v3/testsuite/libstdc++-xmethods/array.cc
! 7d6ae39fad149c75623b1e0204488ea8  libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc
! c6ab465b2f1968cf6359d44943b9f5cc  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
! 873e8e1c0af51a1b03289c782f81fb69  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
! f3402a028f00c9be1794b14dc16ea8bd  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 8d8c1ae5e7d0dbac783086cee2a56cc3  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
! dad8fd6d8c77217b54a8a030ace3401d  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
! 0eb7d518763164ec18ff43f2b6ade7d0  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
! d2c2f17f37bd37fa24c1ef2724024a84  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
! af003639dee7c3edb68531616f1c3b8c  libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc
! bdc3656ece824440e00788c227197c34  libstdc++-v3/testsuite/performance/21_strings/append-1.cc
! 0827ca1ef6db0d7439f412ea40721c1c  libstdc++-v3/testsuite/performance/21_strings/append-2.cc
! ef3d31fe5d4ef2502c1b2320ff9d7766  libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
! a9ae3adfcb49108e0d8d6ea9c8bf16ba  libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
! 9ee6bcf4acb38c3e6a7ab0b455040c7f  libstdc++-v3/testsuite/performance/21_strings/find.cc
  efa1608e1841a10bba94a6d4de361846  libstdc++-v3/testsuite/performance/21_strings/hash.cc
! 5f105132a7f4e319c6cc15c4b8ff8287  libstdc++-v3/testsuite/performance/22_locale/is_wchar_t.cc
! a9e498f0942eddf6d40630a65866ccff  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_char.cc
! bdbad1885ef1925edb9b4578833861d1  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_wchar_t.cc
! 70cb67b83b16543a8908b5cdfc0ae782  libstdc++-v3/testsuite/performance/22_locale/wchar_t_in.cc
! c49c9016dfa5e74856ac2add444a8efd  libstdc++-v3/testsuite/performance/22_locale/wchar_t_length.cc
! 53238143d1b2a642801ba2c29f66261a  libstdc++-v3/testsuite/performance/22_locale/wchar_t_out.cc
! 5fe40b71fc2b8e5f66bd213c632d2368  libstdc++-v3/testsuite/performance/23_containers/copy_construct/unordered_set.cc
! 908957505767ec3ae331636b74ad20b4  libstdc++-v3/testsuite/performance/23_containers/copy_construct/vector_bool.cc
! a1b6808123e900f9d53871346147524d  libstdc++-v3/testsuite/performance/23_containers/create/map.cc
! ef47ceaca678652a25b2cf48b284f7ed  libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
! e236e0574b7cd78a24133afdf0ae4bc5  libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
! ea34635073f644e52b8abc14c821f754  libstdc++-v3/testsuite/performance/23_containers/find/map.cc
! 37e5c54c42958cc488823dfe658d50bd  libstdc++-v3/testsuite/performance/23_containers/index/map.cc
! 787102477b32e44b26bacd2b6f5afd7e  libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc
! 0e55d76e6a564eeea8145e4dc1858c9c  libstdc++-v3/testsuite/performance/23_containers/insert/81476.cc
! bc06c88e5bc9fee635e7ecd018836c2c  libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
! b240fffa987eaaab64c4274e29cebb3d  libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
! 37ce49fec1014a153e1687f955d05923  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
! 7071af5721d1fc018a13ccc3700a792f  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc
! 31c20f39493a3542012eb8be50afcc0a  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set.cc
  d2d15ac0b6856da21290a976e7d429ce  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_hint.cc
  7e3d3c58207071b4938472807b23589a  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_range_insert.cc
! 781e2e4e4c310c6041160904df14b22c  libstdc++-v3/testsuite/performance/23_containers/insert_erase/41975.cc
! b4c57a1aa1545ffe055da5f5c8c8156b  libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
! b1a6d8e0ca1dc0145ba9df31f5948d1d  libstdc++-v3/testsuite/performance/23_containers/insert_erase/unordered_small_size.cc
! 9ac3a72ae03e319b4062677dda9f0a58  libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
! 152d84e7a5c3ce22c846774c729803ea  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
! 0287ba17ee6c18095eb2672967162691  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
! f533561753d6139dd4825fe432e443ab  libstdc++-v3/testsuite/performance/23_containers/range_construct/deque_construct.cc
! 48614e97a77a9c1d7a0c528783e4aa02  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct1.cc
! 918b1fd6217fa127b04354a8cd374b86  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
! c0e022b9d384608a474b9c1c98a77cb8  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
! aefe4e6d039254142c7f266ba1bc9de5  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! d467b0e54729076a2b4caf869c4ce71e  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
! 8eb4946306c54ea72d6140266e5f73d6  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! cb16ffb11755a0c11eb7c0b2d2b3d536  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
! 5459591142440720d856a569f74dbe3f  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
! 37d5b8cb1e4cd8eb7702d29d4c748703  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
! a528982fc287e8d0d675100b30e5b351  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
! 782aa587c2afb3930ea3c3e1980691da  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! ccca909e8be7d120956a91b1760ed73f  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
! f2e1968833249d37eebc648f94e9b3a3  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
! 89b3ba901b6422ccac7f30ab39b795ea  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
! fa4ec411468b0a1a4d033c168d59cb15  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
! b970041db4c38e1319b1625b64379a18  libstdc++-v3/testsuite/performance/26_numerics/complex_norm.cc
! 7586203c658f8d5d506114e6375f90bb  libstdc++-v3/testsuite/performance/26_numerics/random_dist.cc
! d498b55a3afcb21ac781f541e7b9bc6e  libstdc++-v3/testsuite/performance/26_numerics/valarray_gslice_to_index.cc
! cc01cc457a322f3f95d104aa253f863b  libstdc++-v3/testsuite/performance/27_io/cout_insert_int.cc
! 473a1dfe2fe1744b6122266460c8c6a3  libstdc++-v3/testsuite/performance/27_io/filebuf_copy.cc
! 35418a7e5a167624524ac0c3ced39996  libstdc++-v3/testsuite/performance/27_io/filebuf_sgetn_unbuf.cc
! 964e35586ab7caf44d13c40a7418610f  libstdc++-v3/testsuite/performance/27_io/filebuf_sputc.cc
! 72fc0a4bdbf74d69ff53d191260fa2b1  libstdc++-v3/testsuite/performance/27_io/filebuf_sputn_unbuf.cc
! cd5b3aa43c0974cb6db0ca28f5066b98  libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc
! d4e5538a7d5fc3030fd8c3d043e2470e  libstdc++-v3/testsuite/performance/27_io/fstream_seek_write.cc
! 72eb961da56682d109f4ffc31241f29c  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_chars.cc
! 6826e74588ded944bd21398be93174a4  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc
! 42dc7181d91372e117a1624934120641  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_int.cc
! de58bfdeea084923fb7a069094b834db  libstdc++-v3/testsuite/performance/27_io/ifstream_getline-2.cc
! 57f640d635c8de3315cab3390fe4efbc  libstdc++-v3/testsuite/performance/27_io/ifstream_getline.cc
! 63129bcb8661758aa8ea24cbda5fef38  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_float.cc
! bd85ee843fc88a7877ccbcb9ed82ca5b  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc
! cb443f1f1e650ed64b245b32171165ab  libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc
! 5ca231d29cee16fa58356166c8fded11  libstdc++-v3/testsuite/performance/28_regex/range.cc
! 56acfc5a844715f4ee8a763f65ad807f  libstdc++-v3/testsuite/performance/28_regex/split.cc
! 97c6eb130dc5a7ca6dad802595da8755  libstdc++-v3/testsuite/performance/28_regex/split.h
! 9dd4aba49c7f0acc6774f745703fc42a  libstdc++-v3/testsuite/performance/28_regex/split_bfs.cc
! 263b3d3db7954ed831d249a2fe1a5da5  libstdc++-v3/testsuite/performance/29_atomics/atomic_flag.cc
! e713f78981bf83d4c4eb9cceee9fe9d7  libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
! ad765e80eaff9914d81449f7c135684d  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_find.cc
! 6f12bfbb34450d27e8ce772ac0b3f329  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_find.cc
! 5da7e7697d1fc4dff007008d875ab685  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_insert.cc
! bf766d9e32489ce5bd390471178153aa  libstdc++-v3/testsuite/performance/ext/pb_ds/all_text_find.cc
! ee61c9c3f9cd1a2ef47fdf7d8c69880f  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc
! b69e29ee50e4f2005a145b038bc87529  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_int_find.cc
! 71a9c07d962ab5104dcb7814eea7fee2  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find.hpp
! 7cadde52e93308407ddb7c1c21aac18c  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_large.cc
! 8d80b9a6f7ed92ca36c086d0bfc1f0ff  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_small.cc
! abb8829657b0aa82f195c9b51d6dc6f1  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert.hpp
! f1b084a9f5e73a74fa8c4e7daa13e5af  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_large.cc
! 1cc80d79cbd177a732989cb4d6f5f224  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp
! 1128e12c169f6d6b7140eaeffa9d4b34  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_large.cc
! 743e5ea364281c1a9a45fd6e26bf34f6  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_small.cc
! 278eecc1340372ff92aaa519e2051961  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_small.cc
! 358ae81fcc7e57377433dd6138bb4e1b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push.cc
! c65a55663a4a93ac3a817b57e330475a  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push_pop.cc
! 3f45ead3f5fec9293dbfbbe2ab4fcf8b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join.cc
! 902bd8c3eac5d6018a9f5d94dccbb333  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp
! 109412ec8d685a2550643015c12f146b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down.cc
! f39fea305153716dda65c1251f61519a  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up.cc
! 8f9d666eff3931376538686f3f189018  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc
! cc1abc3be23022ea0ee8c3f5c1b0ef94  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push.cc
! 3c59f0cbf67d3e84cc88fbc835cb1b56  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc
! 072282163c80911a8e8cf08503881a47  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics.cc
! 2d8097a4870ab09d14cedc7f9d947e7e  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join.cc
! d2b06132803bc8e5c64ca40bb9543ca0  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert.cc
! 5b676d6471ad0e6b72f011bd974a9c03  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find.cc
! 322d949c0ff7622494ad9bf8c4585f08  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_nan.cc
! 85a49284cfd0f095a71bcf9f1d2b1a01  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_value.cc
! aec663bac758ae86ab69d83556a7d286  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile.cc
! 16eef9241e951025a974d5e33c87f12f  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile_2.cc
! bfbb0aac19d1a8673ace4f1255bda74e  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_nan.cc
! c2dda6b2d88524f1aae2e8e21fbfb881  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
! ba7a09441aad74fb267b5912d6db7246  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile.cc
! c0f1b032915f6010c5ce472fe734039f  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile_2.cc
! b6b2752daefdf995caee3ee0a6c83431  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/pr86655.cc
! 6b9fc3bc344c2bb3dbd17ae179c5138b  libstdc++-v3/testsuite/special_functions/03_beta/check_nan.cc
! 84e6bb803d99e9c4d57433877975a6de  libstdc++-v3/testsuite/special_functions/03_beta/check_value.cc
! 3accd94fd3d8d2c2dbd1fdc1dcf8f3f8  libstdc++-v3/testsuite/special_functions/03_beta/compile.cc
! e230bef9d33e26ca15ea6cbab88c3bdd  libstdc++-v3/testsuite/special_functions/03_beta/compile_2.cc
! 7e7401cd63b3b09e03789b5bffcf1a8a  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_nan.cc
! 44311d609961d98ef8f827d7721fb201  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_value.cc
! b09aa8e0cd121024bdd0aa4a28b6fd99  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile.cc
! 2fd69a77d824254451770c7c4f7689e6  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile_2.cc
! 02a2452b21716d65fcc03945863b7dc1  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_nan.cc
! 0c54bd695d2a16b08a25e46675b4eea0  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_value.cc
! c54b2ab2f0801071fc60c89c38c48bd3  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile.cc
! 4dde0ea3204262551afc27d931228f7f  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile_2.cc
! 5d2355b21af296d46fd79b62dfa75f55  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_nan.cc
! 7a6e99d4f3b73731695164570b740ea6  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_value.cc
! 9ce1438778d3b2b7c5ea11d0d68a6cf4  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile.cc
! 6d54c2ee04ead60be906e5293e2cd310  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile_2.cc
  d40969d8e7a8973cde9b227f9ce95961  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/pr66689.cc
! 82f64eef74e595526db8889e3e95ff5b  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_nan.cc
! 5319ffcccd1f0e0646e42216ff4808c7  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_value.cc
! c81bd0b710fc4b8023d849b808fb6815  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile.cc
! 992c1e5e080aae85d0ef4aee25aa5a5a  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile_2.cc
! 03f705be710edf2f5a1c24464b447571  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/pr56216.cc
! f4f71ffee348470a87eab046ab49e0bd  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_nan.cc
! c8813f60653258369183847641e4bbcc  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
! c88e99d4c30711138ee2eb686156626b  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile.cc
! 3b1baa4b25d4d4ec4d9b073ff6122c21  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile_2.cc
! c9e579f451e933ecef074188f59588bb  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_nan.cc
! 818c7e6de98dc2f11a74c7f5808d4a6c  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_value.cc
! 798b78a8e45d1769835ad9771e1b4b3b  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile.cc
! 325644405accd46b6d29c681e68b5a74  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile_2.cc
! 46e1cf7e9e40f084db86e1258e76ade1  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_nan.cc
! 487ebd11cfef3324a14f02a0205da56f  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
! 92c6935411830483214f30dcb601bd34  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
! 01f98e33cff443ad49867e66b1ebf3b5  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
! b8e323e5fe8b4c8a1cfe5086b4a9f60d  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
! 68174ec39c4e084fc1a041dc0810f501  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
! 4932f0a4be7e672751f95f1c2810bb0b  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
! 7b7fc81e2d779d85f40d272c3c0d8210  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
! d74154617b48a50eb830f0673629a5f1  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
! 5991044db8bb075dd97ed52137fece98  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
! 0c367b21f3150af060ec2f2885988fb6  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
! 6f6a7e2ea8957a562af98758f37fd40b  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
! 2ba22a5101e8ef1696907630c4d825e1  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
! 070ea8642c0289661055fa3e96789e21  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
! ad73df55f4cb2e69df328c9bb70728ab  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
! e3e332eb4c67d155524900fa87ab986e  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile_2.cc
  51586062b3eeaebd7af37c198695dc60  libstdc++-v3/testsuite/special_functions/13_ellint_3/pr66689.cc
! ac178606cd18a429917f97a863132f09  libstdc++-v3/testsuite/special_functions/14_expint/check_nan.cc
! 91c3a39b15c9c73906f16f7d46a72b00  libstdc++-v3/testsuite/special_functions/14_expint/check_value.cc
! 5784cdbf142a3cb522dfd86ba09d6804  libstdc++-v3/testsuite/special_functions/14_expint/compile.cc
! 9f565d1209529ece9ac8c3de0f315a37  libstdc++-v3/testsuite/special_functions/14_expint/compile_2.cc
! abaada8a9ed4d1f02e45b3049b98bfc4  libstdc++-v3/testsuite/special_functions/14_expint/pr68397.cc
! d9ad19ca123942bdd9bdd95c1197733c  libstdc++-v3/testsuite/special_functions/15_hermite/check_nan.cc
! d61d1e6dede1b8937d4b7c3d2b368317  libstdc++-v3/testsuite/special_functions/15_hermite/check_value.cc
! 09616f7f0ecbc4089fcfdade07ad12f6  libstdc++-v3/testsuite/special_functions/15_hermite/compile.cc
! af2f8c6691f369f94424ea0f139f816c  libstdc++-v3/testsuite/special_functions/15_hermite/compile_2.cc
! 2604636c2260f0d7a96bfd0168a00de7  libstdc++-v3/testsuite/special_functions/16_laguerre/check_nan.cc
! 53a4b1ef930c812c8d1150fb261cc7e7  libstdc++-v3/testsuite/special_functions/16_laguerre/check_value.cc
! ff2eb5b4821979676750e40644aeb9ed  libstdc++-v3/testsuite/special_functions/16_laguerre/compile.cc
! 674744a201153ad79a6fee5570de5c4e  libstdc++-v3/testsuite/special_functions/16_laguerre/compile_2.cc
! 3db0a6f2173306f172a98d745d519971  libstdc++-v3/testsuite/special_functions/17_legendre/check_nan.cc
! d4a4a70db3e3122998597cdb1f9a386e  libstdc++-v3/testsuite/special_functions/17_legendre/check_value.cc
! 21f054a9151d7d824a1030b8716dcf5b  libstdc++-v3/testsuite/special_functions/17_legendre/compile.cc
! 9110e8b8cf4f231453a09d0350daa405  libstdc++-v3/testsuite/special_functions/17_legendre/compile_2.cc
! 6c061fba18df9e8efa5546aa40a8659b  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_nan.cc
! ea6b24bdc092cc7e2f605dbe6970c105  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_value.cc
! f834e3015287750bc2b16c48c58a02f0  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile.cc
! e3072f56e14f201a1b93bfe316663dcf  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile_2.cc
! 9954f363e001169ba1b7363bd11dab0f  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_nan.cc
! 053d36d2af55b9a835252e4a6854e527  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_value.cc
! a39e63fee6506397ef216be84c12da87  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile.cc
! d85374a4f6eccfc2404f9361294b1cc2  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile_2.cc
! 793f053fccb9a9824d278115457ec6ab  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_nan.cc
! 99517cc9cca87837e2d2220194ba961e  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_value.cc
! 0fdf0c6f1c0088a75eaf18142bb9ebb8  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile.cc
! 2ada03a94aa7f735a4eb021c4d74dc25  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile_2.cc
! df8b1f34ef8422966fcac88d335adb20  libstdc++-v3/testsuite/special_functions/20_sph_legendre/pr86655.cc
! 8741131d3a7dd5c5fee90115f601ebbe  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_nan.cc
! 958b54b4438b998699650258bb949e6c  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_value.cc
! d3c5f77ed4efbc797c4fd3f795dc86da  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile.cc
! 9bb30db6e1f848d8f348ba5bbc578c99  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile_2.cc
! 8c392e6642db56e1e7542b41656debb3  libstdc++-v3/testsuite/std/concepts/1.cc
! d674f1865ea1991ab7ee8b95ff5fb508  libstdc++-v3/testsuite/std/concepts/2.cc
! 050f8067ced712aefe9b05657c3f1bf3  libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
! 8547d5a7a04e4c2bf28f182c6ac722bc  libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
! e5e363ca45366fb3727be9805800b4dc  libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
! e96d5c59ddf322bd97adb09733c52a99  libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
! 2b8a591c767dc68731dc1f9e83a60fb4  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
! c64b00afc776cdc70fb6cf215d913c72  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
! 1c8e3fed4324417e6b18e1bbe2a28eeb  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
! 52ba792a56531bf792b82df6e020074d  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
! e0e050d86ea22cc21657a6198c2d27ac  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
! e8abcd9d0c697885e2f0bee80291c0c0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
! 04da095c8d51c2ce1890089b77f37b0f  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
! 410457b3e1a3dad167705fca87bddc71  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
! 0b451397818c6ebe1283a868035c518c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
! 282d2ad4d1f484aefd50f11a211aeec2  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
! f7e278a975942effac7d6a10d118f9b1  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
! d1e0c1b7a1dcc92bd457b92369781f7c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
! 03d9075f77bbfaa8e7aafe00a547742e  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
! 626abedb92ab6448b1458c5217e37625  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
! 3ca8f7afc0e2b5428de405c013346fe3  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
! e0cfe8f00496d148828d8dfeaea1ba96  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
! e82430670f2416915510c235a029b731  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
! 077c05f5fa93fc2e3eec6f4a6f51ed61  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
! 8b2dd214e9a7e6ed92546425b75be4e0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
! f119c46c763c18261f9a88800bd83075  libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
! 70cd06e484ddd6b1578bbfb4b69f6884  libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
! 729eea6a2f231316f6bb8f309c497bd9  libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
! 1616b8467812379b3a70b9cb7998152e  libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
  576d75aaf7d2aae28e341cda63776ff9  libstdc++-v3/testsuite/std/format/arguments/112607.cc
! 21af34769376f807e34e898c6b2b96d6  libstdc++-v3/testsuite/std/format/arguments/args.cc
  d52aff2e6dfd886a32da7955635ed09e  libstdc++-v3/testsuite/std/format/arguments/args_neg.cc
  0ae0aa3194832d790df652a9ef7d17c7  libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
  3f84148bfc5153a2278f3c8c413dad98  libstdc++-v3/testsuite/std/format/error.cc
  6425de3f85b700ce40dd3b11d934ee43  libstdc++-v3/testsuite/std/format/format_string.cc
  6fa5a2c92632d72f763333e89659d4a5  libstdc++-v3/testsuite/std/format/formatter/112832.cc
  6dfab89727d04a1035aba73afcf4d6a8  libstdc++-v3/testsuite/std/format/formatter/basic.cc
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
  43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
! aff20c8c5cf69b2711343c5d3b008187  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
! 0ed1eb1472a411af201d54f2c88b04b5  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
  a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
  a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 66b0f2294a4671acc9ae4487ca64726c  libstdc++-v3/testsuite/std/format/functions/format.cc
  8ee425f04d2e4782e67ab2eb62208b7f  libstdc++-v3/testsuite/std/format/functions/format_to.cc
  c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
  f859e29ec6cd7017c9d0abc60ed4b8ce  libstdc++-v3/testsuite/std/format/functions/size.cc
  fc7c0a7a8dd0259caaa437eac20a9eca  libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
! 10bb9a11a9d12bb96629f93bede794d2  libstdc++-v3/testsuite/std/format/parse_ctx.cc
  22af3c8593871c64b40b11663417f80a  libstdc++-v3/testsuite/std/format/runtime_format.cc
! ed909591d843b27ed408293b14d4c393  libstdc++-v3/testsuite/std/format/string.cc
! cf134684ab65cd2ba549ffca0640fb98  libstdc++-v3/testsuite/std/format/string_neg.cc
! 781bf327eea561eaa1fa7002dba90223  libstdc++-v3/testsuite/std/ranges/97600.cc
! adf951476b71b82d5b9c948b4a722885  libstdc++-v3/testsuite/std/ranges/access/101782.cc
! 210ac4a231ec17fb9a070c7981ba29ef  libstdc++-v3/testsuite/std/ranges/access/begin.cc
! 6c9c13d6ff776ca4e793c7ee906a1ed0  libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
! 66a5ef2aabbf504b1d59bde113ab5e66  libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
! bf36dbf46d04b0f6baeb7acbda70343b  libstdc++-v3/testsuite/std/ranges/access/cdata.cc
! 41559c4d6a630d6ef81c1018bdba7066  libstdc++-v3/testsuite/std/ranges/access/cend.cc
! 78aa0964159f240b50b1631d76dad66e  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
! 3f05bfcce99b1cb617e95addda53e1c5  libstdc++-v3/testsuite/std/ranges/access/crend.cc
! d2128b0082102a1cb5c2165cea8c1391  libstdc++-v3/testsuite/std/ranges/access/data.cc
! 20c3074a30d80bcc84bd6f1d3eded3e3  libstdc++-v3/testsuite/std/ranges/access/empty.cc
! 51299ab6655c15d166ed637184750b43  libstdc++-v3/testsuite/std/ranges/access/end.cc
! eea7c955ef3e6b9443c1a0d2f4631219  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
! 41d0b8968c5879e827b42f15acff7a65  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
  e542ec9539e3379d7c1a274e65589907  libstdc++-v3/testsuite/std/ranges/access/p2602.cc
! dfbe3f07d5ef1b5a0ecf8c5541e9c585  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
! 10eb9e12cce30d20e49378eb1aa386f8  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! 3ebe851f7ca2c7e6a6d627e388794013  libstdc++-v3/testsuite/std/ranges/access/size.cc
! 9bb1627982cec8c218a5cf6925b44f60  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
! 56652dfd2f2ff9e60dbfdc5f777d848f  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
! 077949dcb13c6a3e5447afa8a0c2d1ce  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
! b98ad4cb2f356d14ec886501b9508d6a  libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
! f69b53c2e0ab4241f2517f4b538bcfaa  libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
! 13af79d383c1236ee7f65dd9cdd5af10  libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
! cfaa9427b7a5c76a0759a48568317d9a  libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
! 4ec327b61b35210be440da8a50f34177  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
! 4c3528bf1beeb7852061eecb524666a4  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
! 45fb48998b5ebce2a1181761e55573d5  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
! af0834ac3d4fc37e237a2705519a343a  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
  0139b03b03632380b03a6ab7c2b27a55  libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
! 3330317b4977d57cb724b80ca0486283  libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
  ca1524a8471629f0f7af342981b490ce  libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
! 277035d0fb9e4f122a6fe651df769f25  libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
! 05fc7e7e5275f19c4719ce9034ddf93c  libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
! 1036dfed79c22fd6875cf771537a10b4  libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
! 68d9f76622b0297752461f42f4941d3c  libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
! 0a54dd9c0925351f6d52122e46ff5b7d  libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
! ee65a6de8ad143105b408542046b3555  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
! 594f3e5faa8dc7e429e999cdd162ac2d  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
! f73af39b33a64ba02dc022a734aab875  libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
! 5109b35cb89a31b5279ae5b25082e778  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! 50c1180f3aca9863af474d8de23e11a6  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  037c6e0dbd2e478a74843d86dddc6737  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 8b18ce8c4ce0aaa7f3ba523452a0939d  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
! 21ecf6ed24c7b5d99de05b75bbf93812  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
! 9af77ee410180a897ccbc264412203f7  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
! eacfe85a80a9510edb9e0d5b76db2f13  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
! 1771c9c860ea3bad649896228f807cb0  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
! e3c6aebe3533413c75b0ebb7ab7e9b9d  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
  917e7f710623226ae63dac580aab687b  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
  adfcabf1da0146163b35a934650cc5fd  libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
! 764b867de641a0070ae8aa3eccdb1469  libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
  c48ca1c4effaac34b1f94b789c370533  libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
! fea229b0b5fff81228e3cac486b97db3  libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
! ea54d220ca18f153ec158224b3c21f3a  libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
! 4cccc1e8c6b56e98b49336a4896929d4  libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
! 90c2335f48a47534d686b693e690bdc5  libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
  a0e630899068a41f2ddf2c81cbd386a4  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
! 013c5d59b1d7d98320fd7d7586e0fca9  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
! bbebb8997ec35b5c8b696a0f0d25c54e  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
! 9075847b05663784945b48dc9af43dd6  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
  c1b23609040e813a09294f54b708a162  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
! 41be7290c02060700426245314eda0c2  libstdc++-v3/testsuite/std/ranges/conv/1.cc
  30b021647d63542228568a19a21f2fd4  libstdc++-v3/testsuite/std/ranges/conv/2_neg.cc
  7fdf1d111e43ff7fc5474a37da96e300  libstdc++-v3/testsuite/std/ranges/conv/version.cc
! 40f87faf1107f4929a6a5b29da2fbecc  libstdc++-v3/testsuite/std/ranges/empty_view.cc
! 4f66bbf6c34947742227195084675b7a  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
! 3bc8ca3c41434fe8f2555d0080e50958  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
! 45ec8eac0b9eefa7a17dfb3dfb0e5d8a  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
! 71b15342137e0432e3db2bd576953876  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
! d8d26963b24f98a9126e6ab1740f57a2  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
! e2ab64fd21884cc9fc62d54bf850247d  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
! 3214de3067064c7001fa7f02445406fc  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! fec9952b3846d37e2efd2b41b8070d18  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
! e7828f3ea357891a499d33268599b1c5  libstdc++-v3/testsuite/std/ranges/iota/size.cc
! c9a80ec838a578b3d98b3744d73acd9e  libstdc++-v3/testsuite/std/ranges/istream_view.cc
! c8087d896f789370e3f336013dde6d88  libstdc++-v3/testsuite/std/ranges/p2259.cc
  69defd43e76475db81c3e8bb6e87fcb0  libstdc++-v3/testsuite/std/ranges/p2325.cc
! caf6a0f4cd8a45e6290dd386dfff06ec  libstdc++-v3/testsuite/std/ranges/p2367.cc
! 7e558c74e0fde8897665deacbbc1c44f  libstdc++-v3/testsuite/std/ranges/range.cc
  db3ad291e2e791f736d68a27e4606352  libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
! e00025521226baba8157db26eefe4302  libstdc++-v3/testsuite/std/ranges/refinements.cc
! 3b8d326d22eac8026ea4c2e42ea72c52  libstdc++-v3/testsuite/std/ranges/repeat/1.cc
! 3a41f0854e4356c3f7b3bbbc43761ee1  libstdc++-v3/testsuite/std/ranges/safe_range.cc
! 5e2101b443aa972e410625def599521b  libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
! 5613c6ae4806002db6c6b60eebe05724  libstdc++-v3/testsuite/std/ranges/single_view.cc
! 0be250aaf015c572323e4d9310e74c15  libstdc++-v3/testsuite/std/ranges/sized.cc
  8d1ae5cbc51b66963081b4178b295a2d  libstdc++-v3/testsuite/std/ranges/subrange/1.cc
  1b1867dca54804ebf61ac12f0ff3e7fc  libstdc++-v3/testsuite/std/ranges/subrange/111948.cc
! f30152467737cd46d83e6535d156dec5  libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
! de8e991189ee21fe3d84d568bd7e1957  libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
  deebf06a9086f7bbf73404c005fcee70  libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
! 449421e97ab330e845dad45930a47104  libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
! a0ca51f2e6eb88eb1dea2e806241b2d1  libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
! 31b9a654ceaa7773051736053800bc10  libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
! 2554aeff366fbe1639a4aa984841f206  libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
! fd6ec7a01ca1f369cac087641b882804  libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
! e7a573aac90ab8bf072b662618be108c  libstdc++-v3/testsuite/std/ranges/version_c++23.cc
! 9fad6c4340450aec86dc902526e38fbc  libstdc++-v3/testsuite/std/ranges/view.cc
  e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
! 49863faa867396e029bc4a3a9ddcc50a  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
  a0efc42f3d3e1e881d69063fe7f2c586  libstdc++-v3/testsuite/std/text_encoding/cons.cc
! 5fefea08d07771a5195a2976d3b20615  libstdc++-v3/testsuite/std/text_encoding/members.cc
  e9ef3f2b572f799b265913487f27690b  libstdc++-v3/testsuite/std/text_encoding/requirements.cc
! 829f62feba3a8d88bdba61776f8980da  libstdc++-v3/testsuite/std/time/clock/file/io.cc
! 80a2961c5977de8c0d12064222e4427c  libstdc++-v3/testsuite/std/time/clock/file/members.cc
! bb27fc01a394046e2e420e57a1e6925f  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  811bf06fb6123b7a4dc922fa36ba8a06  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! 0a79f149c67bc35f2c5afa5f6504446d  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 35bb731208c0d393e6eb642440f3a663  libstdc++-v3/testsuite/std/time/clock/local/io.cc
! 423a8d821e5306daefaa2d142a56c137  libstdc++-v3/testsuite/std/time/clock/system/io.cc
  b3cda48993495a5d2ff69f7f1ad2c695  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! 0f2ad290eb91c08f3de238b60ddafc29  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  33b0f61f2113641c61ba5cd53d9a52a3  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
! 0d059ebbdaaad044ee1ede6c816c555f  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
  01f8f5b7e0644716179c7a0f95af5d9d  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
! 2bf53d186ffb828ec6dc3552076ba23e  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
  1cfa2f31c3dde7297b8ca55ba69d3f47  libstdc++-v3/testsuite/std/time/exceptions.cc
! 90714e66b9741259bb9b9cd2ea23288c  libstdc++-v3/testsuite/std/time/format.cc
! 72592157c99ae9026101f0e0c545c14e  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  4ba93d13314c788e419728411ae7229d  libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
  6c6293d902ac026c41fc45336767194d  libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
! d63a04c2619e7f9df1d20e82508f63af  libstdc++-v3/testsuite/std/time/is_am/1.cc
! e392f16e8eb2d68a77adc2d2df60f81f  libstdc++-v3/testsuite/std/time/is_pm/1.cc
! 6e488c817855559a4ed1760ba594c3d5  libstdc++-v3/testsuite/std/time/make12/1.cc
! f29bcbc066033ca2819b05175b8dee01  libstdc++-v3/testsuite/std/time/make24/1.cc
! 03eba64bb4cfa00c17b58c9eaee89fc6  libstdc++-v3/testsuite/std/time/month/1.cc
  b7a5373ed0797aa495f69436f1939726  libstdc++-v3/testsuite/std/time/month/2.cc
  a95c6365a674d691a5049d10b94bd3f0  libstdc++-v3/testsuite/std/time/month/io.cc
! 8a95ef041c00b8fa37e0b546df95bd51  libstdc++-v3/testsuite/std/time/month_day/1.cc
  bb39685baac5f09d22f4582faf8cb04f  libstdc++-v3/testsuite/std/time/month_day/io.cc
! afae455a190b352d4f6c554aef5f1fab  libstdc++-v3/testsuite/std/time/month_day_last/1.cc
  dcb9d587d1738c8bdb50039c6928431e  libstdc++-v3/testsuite/std/time/month_day_last/io.cc
! 8eeb04dc9e558a5c02e77e5538112a75  libstdc++-v3/testsuite/std/time/month_weekday/1.cc
  993b5f3ea8c445dcd9622633b93de2cf  libstdc++-v3/testsuite/std/time/month_weekday/io.cc
! f954da011c6ea0feb7c2873b94f28bf2  libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
  54378d7890a365088cc6292493caf83d  libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
  60231b6bb71cc9175500ebf6d9f92ceb  libstdc++-v3/testsuite/std/time/parse/114240.cc
  a0be85b8053be995a48a4cfec6a5b675  libstdc++-v3/testsuite/std/time/parse/114279.cc
  a62052228d6df7ad716017e0526fa955  libstdc++-v3/testsuite/std/time/parse/parse.cc
! 8c45e082cd6e5a390fe00acc45db4e51  libstdc++-v3/testsuite/std/time/syn_c++20.cc
  f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
  d041367e20c424ad627fce102335edd0  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
  efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
! 177951f44d73c4d37968affebeee98f5  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
! f09a06d086ac0cfcb07b8557e5e4316c  libstdc++-v3/testsuite/std/time/tzdb/1.cc
  c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
  6950b88828afb2cebccd6617fe0d64a5  libstdc++-v3/testsuite/std/time/tzdb/links.cc
  fbaa899641d17201d9f891486537af1b  libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
  3f7dc336d0ee3feaddb94ae16964cbf1  libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
! f475943f7d01e9a226fe3ce2eeb4d1dd  libstdc++-v3/testsuite/std/time/weekday/1.cc
  d6cb5f0804c9bd14e047294d47decf33  libstdc++-v3/testsuite/std/time/weekday/2.cc
  28074137f005d49856c15e773a2debf7  libstdc++-v3/testsuite/std/time/weekday/io.cc
! 5420288d2f546a1c8860a407458efbd5  libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
  f1130e870851ec40302fbaceeb797501  libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
! a84241eb0f284b6cdac20d12b2284cb5  libstdc++-v3/testsuite/std/time/weekday_last/1.cc
  4143eb043bbe78b96a20fd85b2d9457c  libstdc++-v3/testsuite/std/time/weekday_last/io.cc
! 7aea2d5455b311e4467dd7d40943bef4  libstdc++-v3/testsuite/std/time/year/1.cc
! 546f49413ee2c0bd433b6b3e33d8f215  libstdc++-v3/testsuite/std/time/year/2.cc
  31aee8f1dc8300b4c3ce95f8b013467a  libstdc++-v3/testsuite/std/time/year/io.cc
! 79c901c993fe91f2b7b60f8f46d51a51  libstdc++-v3/testsuite/std/time/year_month/1.cc
! 02a1d8c016bfce2c1cb04173d82a8417  libstdc++-v3/testsuite/std/time/year_month/2.cc
  f3bc72e48f5192cf9f187425e1bc3ab2  libstdc++-v3/testsuite/std/time/year_month/io.cc
! 20b09edf842b465e9969b36376d275fa  libstdc++-v3/testsuite/std/time/year_month_day/1.cc
! 84ac9bd6208676c3345e74082227b6c9  libstdc++-v3/testsuite/std/time/year_month_day/2.cc
! 1e11ce47f84e6c8da04be592b6dc2ed7  libstdc++-v3/testsuite/std/time/year_month_day/3.cc
! 424cc6975bc213ed3ae494f63b8f0038  libstdc++-v3/testsuite/std/time/year_month_day/4.cc
  d12b1ce84dd8aa47821e932aa1466dec  libstdc++-v3/testsuite/std/time/year_month_day/io.cc
! b45e93cfd476a8a03b097389f9351046  libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
! 7c31940411f0afc337273cdf6b011921  libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
  88d90bf0d08da6a2546594d62c819008  libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
! 6b76147293a3944728699839a3568d4c  libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
! 31ea8b0b7c2e9cfaa7716b51f55a721a  libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
! db2342ab5aa62775fcff2371992f119d  libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
  7f6baff837825ddad9bedd5582dfab64  libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
! 87daeaa88e2f3d911785507d88a44563  libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
! c2f53197b596c13f15dfe63dd08f77dc  libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
  e794c3c683b129a1bc27715ff3ee3b37  libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
  728832c3eb4e89e18aaf1a2ed1be2271  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
  6e26d84ca6efe0ea496ba2fcc8ee280b  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
  6abf80ca9a7f01e8d061066eecdd2022  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! 2af126843677c397f37d0ec04aab8ffe  libstdc++-v3/testsuite/std/time/zoned_time/io.cc
  1ffbda059634e8047ba1c3ed8ea40cdf  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
  46d6b45f45908ebc179f768a8757f7de  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
  a666cbbccdbd1212e56956d4d552eceb  libstdc++-v3/testsuite/std/time/zoned_traits.cc
! cdd1cc41e1d24fd592fdc294519969b3  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/1.cc
! 0ccdc67242ac7ff3b0fbc0b2d18b43d7  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared.cc
! 9d5b08867dc8775a3b8eb63d2cebdde2  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared2.cc
! 6e21cb30cb6adf388bf03ae7160403f7  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared3.cc
! f68f6d09bcbe6eab7bf3797b416a2365  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/requirements/explicit_instantiation/1.cc
! 6cf78c58bd5f50381a1a39f30f76d679  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/shared.cc
! b94495d34f1b472e02b758b916c3764f  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
! 396f64bdad4a0594e3edfe9e8ef70ce6  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
! a1ea5967e5eb9c2d2cc98b7ace23f55e  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
! 7cf65e5c0db829129b174e85a0046240  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
! 49992fc0f9882e269469819af4c22268  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/assign.cc
! 2050eb8a98ddc9f2e4ebb0ed82ede668  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc
! 7d9298ea3cb4a13840b2ade368c8a50c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc
! 776733f779d72854fb52027bcc983c42  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
! 101c8d0b7f67dcba4b65c142e87806bc  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/dr541.cc
! 5f05fed3f866b6932b4e9ae4f791988f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr.cc
! 54fc39ab7de32dd4349ab9b6d7731ad8  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc
! e6633293a08a874648c0be1efe990d97  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/casts/1.cc
! 968325ca046eb7f045de26e30a79dbea  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/comparison/cmp.cc
! 6b53585367070122a53f7022c542d65b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
! 9d26e11b0b9b71a626684d0890137ab7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
! 3c35daef08631c97558f78892a443e48  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc
! ef160a657b604cfbc7817275eb1a30c7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc
! e235a6adb63b54d53640b31ef4411ace  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/copy.cc
! 2a86dd7568a0fab1d65ea4d143205780  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/default.cc
! 3ab923cddb10fa840468fa4193b6f315  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/pointer.cc
! b0f3e58ac67b00442b4bdd7a8ff24664  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr.cc
! 91d99f711d09f94df5747f744bbcaae2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr_expired.cc
! e380a63d5be20afe85a811f09aa35762  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/dest/dest.cc
! ec99099d0fecdf08a960d6d4f1eff8e6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/24595.cc
! b81d8e58c28367dbe38f36f2558ce42d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
! e6a8a0b3787cfda9761e27a71aa1c51c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/io.cc
! 44a51628f8ad30f998690276b2e32148  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/swap.cc
! db06be1894465a7326a1b1e04fabdf9e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/24805.cc
! 9be259d4d206c57fca29d8071f398bc2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset.cc
! 2276c0672cb03d5dbc278efac964ee45  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
! a2a903e02fc80d3250ecbffcf2287331  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap.cc
! 53cb766a283505fe787614aa8fd236f1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap_neg.cc
! 2ea47c0b09c6f9dac541f31ebddde2f0  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc
! 2a05fd0b69ab7cece63adf9866d84e2c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/get.cc
! 1de3e5da494606b30634fa1e32f735cd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/unique.cc
! f696cc68ef7e47cda0e9148c9a82a7cb  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/use_count.cc
! 214f0a81b01325b16a1935dc2bd0379a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/1.cc
! 7c4cca3a3e0b56735e49179e0ecc4e80  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/2.cc
! f4f523c2e352f37653dbcfc038a32643  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
! 34ecf5e5a5c08311bc65e2778c1dca14  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
! d116ea4af549980401ba531754ed0734  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/lock/1.cc
! 57a45cc12fd282e02038b979131c047f  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/1.cc
! b60f0694d27d470837c4ec706ef9a55b  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/2.cc
! 25a6ecb01fa7e75a6f4df34539c34eef  libstdc++-v3/testsuite/tr1/3_function_objects/bind/all_bound.cc
! 58df1b6c8d4df58d1e8218b272166c51  libstdc++-v3/testsuite/tr1/3_function_objects/bind/cv_quals.cc
! 1d44e4e50fb9755ea689fa8db1399295  libstdc++-v3/testsuite/tr1/3_function_objects/bind/mixed.cc
! a86b6302e4eb0290580f6f85518e14ec  libstdc++-v3/testsuite/tr1/3_function_objects/bind/nested.cc
! 2c6b161d03f89f66e81f891e03a18dae  libstdc++-v3/testsuite/tr1/3_function_objects/bind/placeholders.cc
! 2bf15c5d342df9edb4479bea25a1bca3  libstdc++-v3/testsuite/tr1/3_function_objects/bind/ref.cc
! 58dcfa7047501c065f0f0f17f13dcb28  libstdc++-v3/testsuite/tr1/3_function_objects/function/1.cc
! f072bbb599e0cfce303d0d0e9e8dc7cf  libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
! 009c9a506d8d8ed94501e72186fcfa3d  libstdc++-v3/testsuite/tr1/3_function_objects/function/2.cc
! 732c2e75ea1bd2a946238671e89e25f2  libstdc++-v3/testsuite/tr1/3_function_objects/function/3.cc
! 36d8f2ded6ce3b311e3bd18bdaa3379e  libstdc++-v3/testsuite/tr1/3_function_objects/function/4.cc
! c32d71d9eac414f48115da7a9bcd8d43  libstdc++-v3/testsuite/tr1/3_function_objects/function/5.cc
! f5fcd5e8a4b37d1e145e65e049a3e467  libstdc++-v3/testsuite/tr1/3_function_objects/function/6.cc
! 5910f524843c9904e0abd8ad97852a1a  libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc
! e8303f20a9a014397d2bd77f8ffca8a4  libstdc++-v3/testsuite/tr1/3_function_objects/function/7.cc
! 86ecab34fc8b4f3688652d0b05c1768d  libstdc++-v3/testsuite/tr1/3_function_objects/function/8.cc
! d812f5d4f2733908194632a27a348a42  libstdc++-v3/testsuite/tr1/3_function_objects/function/9.cc
! d7be6e00392da1f8e1e32c708fea47a3  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
! 7a59a9461295e957be6e84f7ee6dd686  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
! 645fd8e08d189d0d0d5db50430c62035  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
! bf5a5208660a193fd39b9b091c3b8231  libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
! 7f07c5f964a6e894b30c6aa1504e18c3  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc
! a5c75cad33cd9ae410fdf1458b0e5e96  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc
! 08edcdf994c83aac22cb27995de1da53  libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
! 5a64b661fa2d78e9144292f592a9e411  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/requirements/explicit_instantiation.cc
! d59df283158fcefd4425e47a95773bda  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/value.cc
! f729818c5ba712f63139a36f11ac7598  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/requirements/explicit_instantiation.cc
! bd4f08e7af33439021893325a7130a7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/value.cc
! 0044115b30fe47b04e50d09bd893d93d  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/requirements/explicit_instantiation.cc
! e1ebdfe48fe8f331b9771db3b14eabc2  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/value.cc
! 670c63dcddf6fa535a36360e0ac1d6ba  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/requirements/explicit_instantiation.cc
! df0cd33ebc45a663b152675b45d920f7  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/value.cc
! 4f4e7fe6386f9ac73deff7ebaa2b6ce6  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/requirements/explicit_instantiation.cc
! 877f5628d098934625d828b823dd829c  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/value.cc
! fa59a782e6ba52a83882d679e7b149e9  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/requirements/explicit_instantiation.cc
! e9343c6971d22039ef9c79c6b3c90c61  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/value.cc
! 2126259c3709a386b7a751f8c5ad287d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/explicit_instantiation.cc
! c4c03afd6fa7c864e6d990f615e612ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/typedefs.cc
! 6cb82988bb85772acab5c653916a137d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/value.cc
! ee34dc859eeb13748c743a9de030a8ae  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/explicit_instantiation.cc
! c7d67a312ad1d584ad08245179ff4d12  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/typedefs.cc
! bb8f39b9b75af1e8b7758683d998210e  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/value.cc
! cdbde41ac560e26d5acbcc05fe24c8a9  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/explicit_instantiation.cc
! dc554df86155f9f1c08848813dc8678d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/typedefs.cc
! ccf26a9848db2be20fcffb77b6b0f5de  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/value.cc
! 22b1c271721fd3192ca0daf164361c98  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/explicit_instantiation.cc
! 1a4bfc69cd186a801c1fbcefc7253a7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/typedefs.cc
! 115484fbc3dd49d6563b5ec2a1dc748c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/value.cc
! 4527daa7ab5239ea006bfafa4083d4b5  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/explicit_instantiation.cc
! 4c636feb7b51c5d4fe9fa445b190e462  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/typedefs.cc
! ff438a1be3fe27bc96dcbb2e50f5c93a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/value.cc
! afc56fce02babb92da9401ba4ac65821  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/explicit_instantiation.cc
! 571185caac964eb5b29ee71b23c74e31  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/typedefs.cc
! a234522f06e8d96ead6550da5efacb99  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/value.cc
! 92d274b2c4d49f4341e2584808eb6cd6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/explicit_instantiation.cc
! e31a12d237af56530de985df9a3707bd  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/typedefs.cc
! c0c1e7f180de0ab8e9bd470e29857b7b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/value.cc
! 7f54af455bc2249836e301c8a05d3a3b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/explicit_instantiation.cc
! c55ab7f87d8a8f69724418373c843dc0  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/typedefs.cc
! 68f99008e1740e5aa404f1d15fe61d5f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/value.cc
! 64f3f24c334dff2ca084b7c0fda5596d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/explicit_instantiation.cc
! 004a1cebe2a8b4592ab6603cd6eba9a2  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/typedefs.cc
! 8d851dca14797dd07e700c5475966687  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/value.cc
! 9bd9139d4c370a660bb56c2cbdef9dd7  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/explicit_instantiation.cc
! 65883a6c94f4fdd63154be4a345a5b31  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/typedefs.cc
! 5ff0b6a2b2f5a659df312522b126eb52  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/value.cc
! a15ea2fc8486ae61c9f2609bae897b56  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
! 973126063df62b1df18be1c808494cfc  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
! 83f684ef62920e602179511400292024  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/explicit_instantiation.cc
! 30b4458773c4685710bae06686f8b3e3  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/typedefs.cc
! 88202a29a1e80970d72e48e6c694c6b8  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/static_definition.cc
! 87120a60de98234b7ce55a4d084e4426  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_type_typedefs.cc
! 1d19ab88e514817212699f6d836bc70e  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_value.cc
! cd93e041f203aee37ffc96593bd2e09b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/explicit_instantiation.cc
! bfc0a4ed1d0818fad49c2b958dc49429  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/typedefs.cc
! ea13a90ae3bbcf25b3cd58c93bb08d72  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/value.cc
! cbf84eeb7e010b0c97454f93f33a8068  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/explicit_instantiation.cc
! 25206d78134c0e34929ab1a9400b4b7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/typedefs.cc
! ad8bea98978e159a24423a16388b6fb7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc
! 247143bc4e1aa2c600d40429564fdc42  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/explicit_instantiation.cc
! 71980341d47fbc84b6f5d95602598eb7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/typedefs.cc
! 3df7cc73abd0e365d9807b0be3c6fcec  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/value.cc
! 5a910e523914e92a46d2db10bb92ada7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/explicit_instantiation.cc
! 3ec2f21c29d66d55af155987e0bc78c7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/typedefs.cc
! 531f50b68f110d0e3dba5d19f5f8bf22  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/value.cc
! a839981b2cd3626f3eec9820f515e8f0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/explicit_instantiation.cc
! 3c3ffcbc77fc5daba6b60dc8158b7510  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/typedefs.cc
! 4ad9bc466faee3582d35baef21b1318c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/value.cc
! 42a17b40671285338e3a32e49dc43fd5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/explicit_instantiation.cc
! 2df2320c3549dd36f45e1c8a0a7311f9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/typedefs.cc
! 306a500ba109fc1d7ea476da1f1c23cd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/value.cc
! 8e31cadbe676e40950a3cbb0deec3697  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/explicit_instantiation.cc
! cfbb35a5559999da01a3fae30159bc1c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/typedefs.cc
! b47267b4fee54d96a953191e704ae8a2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/value.cc
! 0f5c5f73f7c4ce70f92973b6db690269  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/explicit_instantiation.cc
! 68d69929a7a5d731cd8b32e4de9280cb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/typedefs.cc
! c2a7c7485d6b780e71a7b484bf601750  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/value.cc
! 2a787b74cf94873d2b7325aeba675b9c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/explicit_instantiation.cc
! 935f450d5fdebaa73e9b598550dcb716  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/typedefs.cc
! 5a160dea9c02ebeb1022f85583e30ba6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/value.cc
! 3ae4f62a9c53c745fbdda9f80f7595b4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/24808.cc
! 5e1d8bd5bed5d61f041ce64b8d1c35e9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/explicit_instantiation.cc
! abaa8bc1dba3d282390f956541005821  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/typedefs.cc
! 3964402d09fc1db951d4732ed1ec16d7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/value.cc
! 004d821a2531f07ab341846a187e7de6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/explicit_instantiation.cc
! 68f9911985e88eb3f17c3ef5ea1f1019  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/typedefs.cc
! e597db86e2d399a7802b770cbc8bb85f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/value.cc
! 9d41f02c8817c6d8a20d70f22f030e3b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/24808.cc
! 29ac31457248d90ce534cf0f5428ec44  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/35637.cc
! 4308685240bef8da36413b6c69369642  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/explicit_instantiation.cc
! 5eaaa7d2f1ab3dc672d1aa5337f03014  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/typedefs.cc
! 051cb7e659068c1c5fbc0915d308ae8d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/value.cc
! 9ea75e6f3e7f4215ccf6de2c3889cc51  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/explicit_instantiation.cc
! 1ea7eb9b18a880107c6b83e9ca340eed  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/typedefs.cc
! 15e146a833d8a0554ce2a863d804fcca  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/value.cc
! 79c6fe497acc6504768f4c5587ecb7d4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/explicit_instantiation.cc
! ac7ef1e95565936e5ebd4ad9d32cb6b2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/typedefs.cc
! 7e109016fd3676144983802d58d378ea  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/value.cc
! 854e624df4aa1fb304b5d55a83dafd27  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/explicit_instantiation.cc
! 8625a3d891d1931899083ee73e4a8abc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/typedefs.cc
! 68ac1fd60be6b5bc9792ad306197513d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/value.cc
! b483a9fff13165fb02af65f2e2598028  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/explicit_instantiation.cc
! b50d20a07ee7200c697cbc22f86af9d8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/typedefs.cc
! e29daf40cb4609f2a22d977466a3a6da  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/value.cc
! c49cf95db3a87d0f03c840059ad0a48c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/explicit_instantiation.cc
! 7a21b97caf4a0b80b02613788f8d2e1e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/typedefs.cc
! 3cac8d2eaa5a38f83145dd6ef8056956  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/value.cc
! beef8b0c11f0cba18d1b8f473874c185  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/24808.cc
! 3042964318a76bf7f625e43014c18061  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/explicit_instantiation.cc
! 299c1971a65a715922d46f22c478a0d5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/typedefs.cc
! 63d261910d64b0782cf7f491c52691d8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/value.cc
! a4520d1fa282459f2274720f977166c9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/explicit_instantiation.cc
! 6f54aac0596a8528c17762824efc3ccd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/typedefs.cc
! c47bdd3b5c522295a7fcc746982caa7a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/value.cc
! c762d9dc941ee74bc71d663da582acbc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/explicit_instantiation.cc
! 1ef584c143ace6c876e59c4339cb96f1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/typedefs.cc
! 72b05d77f361527a187b05b39058a335  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/value.cc
! f0c3d32ff31f70def1a689d2d9c1d6d6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/24809.cc
! 6ca35707e71264d5a3f9aa56af38a0ab  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/explicit_instantiation.cc
! 9eca54e60b32883a4c203047731a374e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/typedefs.cc
! 94908ac7856232e0ce30506fcd1e0f3a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/value.cc
! 9383fa65a66b09f1415fe71cddb7748a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/explicit_instantiation.cc
! 6107fa7ad9fb92633da99a05fd4d3298  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/typedefs.cc
! 0fc6f0623483829f121ad1e5872b20df  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/value.cc
! 093c083e31b4ddbbc2a13c0f84197f77  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/explicit_instantiation.cc
! ea186a82d29b9f20a62e8840831219be  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/typedefs.cc
! 00ba16b784d0c16778895b18c58c1cae  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/value.cc
! e495feae47d868cb6260d143ce7217c8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/explicit_instantiation.cc
! 175eb402079d449fb22df49d28afbcdd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/typedefs.cc
! b6c2035758098fad731b6c2a7bb9ee33  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/value.cc
! e3abc7b12a86bbb04caf17abac060faf  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/explicit_instantiation.cc
! 0f6e8d909fbe34b22aa28d26cd66e835  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/typedefs.cc
! b4b32fc8eb68428aba3691a406b7db91  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/value.cc
! 9df9779824862fd9604111a0ac035b7d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/explicit_instantiation.cc
! 75790598d8ed931a9bda043fd9b0b8d2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/typedefs.cc
! c4486dc81712d27df28e31e779e49183  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/value.cc
! 2d5d6b20b39f23268ffb1985284efcd7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/explicit_instantiation.cc
! ddc0222ca042cd61e002279168f1d612  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/typedefs.cc
! 96caca9b767a35eafee2a56bb7994e69  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/value.cc
! 9377b607fedf644482d795262d744739  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/explicit_instantiation.cc
! f926dd25ff787eaae55d6b8c8ec991af  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/typedefs.cc
! 7cc6619e588e4b04e302e6098aee259b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/value.cc
! f44dd3cae40a0c4b006e407d881c7378  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/explicit_instantiation.cc
! f0163c46d09fce19b7ae4106d6c71a10  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/typedefs.cc
! 2d59f85b67d3a17b7b39564f9bb133f6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/value.cc
! 64b8e69dbc47cda54fc0cc8268bed4bf  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/explicit_instantiation.cc
! 1ee4be7bdc7877cf67399a19bc54512a  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/typedefs.cc
! 003d32c7778a96500e6c21e7418f51f9  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/value.cc
! 3a4d25c176cda7954372823d8c0ad91a  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/requirements/explicit_instantiation.cc
! 5a9f4d65211e0cd01fa8b957175b3a80  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/value.cc
! a17953b7261572c042ca98c1ca44b1ec  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/requirements/explicit_instantiation.cc
! 79b5d274e9771537f75733999e0e9ab7  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/value.cc
! f7b2b94d38bc39112582dd7e341db45d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/requirements/explicit_instantiation.cc
! 014b382bf853f568c242fa6ab907c18e  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/value.cc
! 49ceb60e85bab58f179c1f2a9f0ca84c  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/requirements/explicit_instantiation.cc
! 8bd41087983fa4b645c833b8b5aabcbc  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/value.cc
! 56cc9bf9aa4000621690eb6c5de32af2  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/requirements/explicit_instantiation.cc
! 1134f58462296f6453ee5b75159c1dd2  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/value.cc
! f7b52cd9f3b030bd108127082aef0db5  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/requirements/explicit_instantiation.cc
! be546b1d32d8ca86637b112f4903d45e  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/value.cc
! 07cf20c848bf4826be2c0a787c1648ed  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/requirements/explicit_instantiation.cc
! 45e67dd183bfa1bd1d38981d7d6c3c8c  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/value.cc
! b61d4eb5e8b55b70a57139a1590ad802  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
! 85c01c1d539f1ea23bd4dd676bd8e7ba  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
! aa30eea4102e0fe75f72d11091552f12  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/bernoulli_distribution/requirements/typedefs.cc
! e3c413571cde6db9f27a66d85b65b0e6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/binomial_distribution/requirements/typedefs.cc
! 7e368934cbb8368c9ba3aa74c0aa6b78  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/equal.cc
! 022960b32b5d3fddbcfd746cb9c437f7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/not_equal.cc
! 7228c0f69a5ffbe5265fa0ec7e3115cb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/serialize.cc
! ce1f617d4692cfb9941d60f3ad8eba03  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
! 56bd367c121ffbca95d68a4b3bc425d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
! ae77ba612b4710270e31215927bdadb7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/exponential_distribution/requirements/typedefs.cc
! 075e787576bbcd4c2b8459377b462829  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/gamma_distribution/requirements/typedefs.cc
! e588fcaa521261c55caab2194dc1e2d8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/geometric_distribution/requirements/typedefs.cc
! 2b4a77776176765796509e58f9fbe4d5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/default.cc
! e400c1b3a4a06a6ccc900a1ba7ac8515  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
! c6ff0de9024f7bbfec3440a52f8b9341  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed1.cc
! 92a404e0c7e79da4ea3864f10e76585b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed2.cc
! 36613c9555a75883ae031e395d33ad1d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/equal.cc
! adf9545c24f71afdd8f2bb7608fb4402  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/not_equal.cc
! 694cbd2d5deb2828ee68e20c0bf94319  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/serialize.cc
! 881f6c8f51b8d34c45168359586f822b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
! 1cf2bfd3a42742e8df1cadd203eaabbe  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
! 6ef8af6b4013825b1a9460c4ca7b76f1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/typedefs.cc
! 2fde750903d6077d00cc4f737f17e45e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/default.cc
! 0d621d7050bb8d6653f6f2d59a990391  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
! 206a183a4d6d4d9ada506570972e7221  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed1.cc
! 3f9b34192aab49c53c440a9f249880d3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed2.cc
! 65a05a78313501714f39f2a76331ca19  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/equal.cc
! 589c29770325eabfa5748ad8cf411a35  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/not_equal.cc
! 1f1055fab9d207a31d743add5068c97a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/serialize.cc
! 35ef834eb8f6e2ff38c29dd191cc1acd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
! 4453ec657399cfd1b8c7347aedf46db2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/typedefs.cc
! fab7b686159819520c25eaf7df893b1e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand.cc
! 45949d381b6fc0a4fed481a12bbd237a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand0.cc
! ae9c9bbff2ef31c37eba85a256e8a7e9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mt19937.cc
! 0bcb66040072b500a1bf5f13f071d500  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/normal_distribution/requirements/typedefs.cc
! f5d04fe6180d3d6097cb2ec7513a8b4c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/poisson_distribution/requirements/typedefs.cc
! 2b390b76076c2a11fb04139aa526f94b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/default.cc
! e10a5244a1366f6c7b13cc5bb640795e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/token.cc
! 9fab0e1890ebfce3f88c99b457402758  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/requirements/typedefs.cc
! 587ae5105dc0992b0752b58a577dbc56  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3.cc
! 2b55a539ed453cb83e3403db27ab2c95  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc
! b82aad15ee5166ab0b32538a4184c0ef  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4.cc
! 7bfe3303e0757e1dae99049e328a1e7c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc
! 1da93ec0d5157972f3581f381bc5eb28  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
! f20d984edc554cbaba19d2effc5903c3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
! 63f8ddcc344bc456faf40d564b9a0ead  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed1.cc
! 2e0078fc803e7cf36ae0dd0f65e6b98d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed2.cc
! d1286363f45c639efcb2bfad7fcb741b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/equal.cc
! da8e103623bcd350fc18514b52970bab  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/not_equal.cc
! d88b75220aa2c2ce77d03f77d012e314  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/serialize.cc
! d033dc9ca27d6e3cbd1566734ebce1b6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
! de0e19c547c34d0c4fe750e3df8c1d9a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/typedefs.cc
! bd66c00277de9d35581d64c3653edbc6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/default.cc
! a3553703c85e047c62bcf48bea989ebb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
! 793cffdb15a3a2a933d9fcd44cdb96ca  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed1.cc
! 1ac6c2f28749dbb191b325e701164373  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed2.cc
! 8c91ec1a93669bb4c858975a16a0b55c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/equal.cc
! 029c2853a424cc02bfaf4e6c984b6438  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/not_equal.cc
! 844cb0fe95ea7c1d0a4798f9045d50ec  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/serialize.cc
! fe8666d6531aec6bb9e822a00cabab88  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
! edef5b00bbc6ec6b39f87bd474edca9e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/typedefs.cc
! f4643869052f9df5f9be696998ecc232  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc
! 9c904436885d040e07e4d5038e4fd1cc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/default.cc
! 4aab2b682d719d0facd5cae8e0b1cc09  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/range.cc
! 5094067ad4775e593a243d9285073b6d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/requirements/typedefs.cc
! 536e8eeeb358554d31f60055bebbfaca  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_real/requirements/typedefs.cc
! 3a02a2070e71e09adb0d959a86c3cc43  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
! 75ab9d5dd6d4e889634103da316ddd63  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc
! 58312b673857344c2dd17c135b228777  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/cons/default.cc
! 5e7248d9bc2c54c0f4d7aa6836367ef7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/equal.cc
! d6e464776ff329427cfb66270716767e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/not_equal.cc
! c5e6d49ae9be09b65c5cda3af8cbccf2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/serialize.cc
! 9c33141c803ff670a24ef3b28b9086c8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
! 0f68bd65614d6adb7b397b14b100e6d4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/typedefs.cc
! f6bb745be1293956c9a8b41bf06babd7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc
! 813f218b3d57b91c571efef0a281fe6c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc
! c63ddd767cade32cd3dbcf860a027960  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile.cc
! 5323cae1855ca8cf687dc229a8805136  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile_2.cc
! 84441a8392ec888365e5b4d30b403ad6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_nan.cc
! 54609ef34f4cbc84e01e62a15031e01d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
! ca08a5ea440afd5dfc331086370a8354  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile.cc
! b425c697fea950bda5d234883d4d1836  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile_2.cc
! d9d2930908e1e6b800cac38ca9b55064  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc
! b0a9c916e74749f27144234584f65341  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_nan.cc
! 688511e4cb448128ce064dc88b59f90d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc
! 4a3b9c1b50aab2720488bd57b5047ee3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile.cc
! 4b9edd0b629ef08e3892ba36e873512d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile_2.cc
! 89ff95178c4b98798629504770014cc0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_nan.cc
! c0e4d940a40ca4b9e1cff8fcec38e547  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc
! 2d8871cd92fbb66758800569642468e0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile.cc
! afb38524b3181033aeda70bd528cf0b4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile_2.cc
! 7d8cc0a68a2201f94b737d60635083cb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_nan.cc
! 5f8edc5b7051360e9191c4b2c4c3ed44  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc
! a130de8f87a8f3b0294a4f38b4de53b9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile.cc
! fa382baf110e994b9828806905d44385  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile_2.cc
! 6ae49ed3246cf5b4a614b165040c6b9a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_nan.cc
! 06121657d81c0317fbe4498e20c5a10e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc
! 43034d1634691ac1f0cd197b85aa8cb6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile.cc
! 4024c7d36b6930ae251ba9dad1e0964c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile_2.cc
  4618aff82312f2efbcdba760637d68b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/pr66689.cc
! 9b3078a504bb5b8a9bf8b01fb8b3c406  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_nan.cc
! ab72a53398eb16486b0be25de3a52526  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc
! 81615480ca415783a545c33daf39b62f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile.cc
! 3aeab951ea9edcd6dea55a9fdef9305e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_2.cc
! 4e05f780e46585a3a2103c457e6d5a53  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
! 615425c2c246d87b0a7104abe20f3781  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_nan.cc
! 84dfabcdea67ba72904fe956902f1ca5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc
! af4b17f9eadf9403b79e8f9a892b0daf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile.cc
! 6861d4aeb7d9caf4b08e9ef8cf690ec5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile_2.cc
! 03e7994b25793f8b114a962031648950  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc
! 23805067e85e8988289bc867c0d3e036  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_nan.cc
! dc67ceb3e161a0faf694c1395a95c6c2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
! 2b2497a11570c07363fb525727cbf7c1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile.cc
! 1b9a69162f9f5945d38579ca696f99b8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile_2.cc
! 0d4e7141907693c074205ffad67e48e3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/airy.cc
! 7cb6363fd8ad69531fa5a73f5b9a6e7e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_nan.cc
! 1ec6e906ed2b1dd7d40857d6c38e7df2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc
! eeb12daa44b40c4c83a4d0b2a934885f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile.cc
! d6723af964441f356e35dd8d522f0cb4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile_2.cc
! 3205afe019df3f7a2d805147b8d4d5f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_nan.cc
! 0e0fe39ced48f5834122c725295e548c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
! e66f160b65d522f5956e6eecfd545e8f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile.cc
! ead4f416e44792949e31814bee49a967  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile_2.cc
! 65389ebf4b1c36e6a5ee32026f15e947  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_nan.cc
! 826e5102f6b89ea852e0f417b7476cf4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc
! 89137219f1586c91c030db53d1c68aa5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile.cc
! aaae8059b814330fcb3a80e769121a18  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile_2.cc
! 9d9cc1fa26e0ab0b202fd702b8d9c02d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_nan.cc
! 2dda9d321f984682ea247c0186b18cdd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc
! c0fbbbb77dd3e950e20c00bd8074b25a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile.cc
! cd3cc0e4f01fdebe209b5abfb66bf998  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile_2.cc
! 493009d3835525aef4a610f390ee602d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_nan.cc
! d656a0b8adb6f127e47d576a34697aa8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc
! cda4d3ed8c6c56c3cda0ba5a3eda426e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile.cc
! 446ea60821522d9d638f8cb2ecf08776  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile_2.cc
  b780a349356e83ff98346ea066a7c8c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/pr66689.cc
! 9359b7406e3da42f7060cb04dd23a0ee  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_nan.cc
! 9e83beb0808db318f00f028150ff2c3e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc
! eb002834bb5d9487df58f88b4b369c97  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_pos.cc
! 03f1aa7fccfac99a7e1a5db0e4fee972  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile.cc
! e5224bfbf8a611e85648640b84384bb7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile_2.cc
! 15e9ee1bf758177636f00cd70790f4e4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/pr68397.cc
! 4c1f6111be708b4e593d1abe482310c6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_nan.cc
! 256c9affc33d80442af1b66bdb467252  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc
! 29eb3f8b16f7796e9417c57c8c43cc7f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile.cc
! 7099e5b0fa4c49516b96a71809b2a9e0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile_2.cc
! 51ad997535d975cc7fce2cd68dc8ec82  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
! 228bfc53b2fbdeaa7385737b2b89aa38  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc
! 42ff434209508e124dcf144a744a03f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc
! cba9b33462e78f0db5956c1da6744bc3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc
! 1b3e571fe6d50946ecdf08ca5b96b7f8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
! 05196b8104adc119296f417f5508957b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_nan.cc
! e504cd442141b58dade42f3ceb2e3bda  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc
! fe89b55d92d3aa5a933c33a850887498  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile.cc
! e946a0b7840eb4d90ce9cad5f9b706d7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile_2.cc
! 2d7e33896db2fe74f68d9c8568ef0d72  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_nan.cc
! 22f21c503d835059cd9ebfd77292fbfc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc
! e9b731803333ad79a24e42336b68edd7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile.cc
! 6636ef8d9d86981908456ad00f0a663e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile_2.cc
! 7709d62eb7ee48a1ac5cc44ae56b63db  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_nan.cc
! f7db16f2a2928aa9162e69def4796851  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc
! a1853878f1ffcdc3f807a84267f7e072  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_pos.cc
! a4540ea0f33d4378730a105599f77267  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile.cc
! f97c61bdb1c9cefbafb5c5a0fd060047  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile_2.cc
! 5021800b06c0d8b00b825e2d4c177256  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_nan.cc
! 87f954cf4fa248bacfb274423f4510b0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc
! e6e6ad06e66c4188945ff08d757be312  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile.cc
! fab680d4e1028403a939991d0e515320  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile_2.cc
! 54945f7b82e466ab598d87e48a93472e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_nan.cc
! 68ab45718e56dbbb4810b66b3a71b7b3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc
! 00391a08dc9ed784eb6807674c4c2fc6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile.cc
! 0845786c25d9d39e62e7b380d92d34d5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile_2.cc
! 553e0e0ad1de286eec12ff25cc8708ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc
! f0a648b1e06a4564caaae81550c67e5e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_nan.cc
! 843ab7fcec5ebc1eadc3464bcd6eb87d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc
! 0a31101ff4df59742d3b55a18c5cc072  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile.cc
! d1cf98c2c9ed769ff8cefebf642381a1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile_2.cc
! 3e59c3ad89db9937998cb65f34b065e1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/testcase.h
! 616bbdef9ca0aacc8afe1212bc819d80  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/empty.cc
! 8b5c50064c527dd833cdd4b749541547  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/max_size.cc
! 7d539e4b5dad5b607b4275ccb3c8a28d  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/size.cc
! a724af4d253dbb3f6eaccc9e7b706ade  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/equal.cc
! 90711837f390f035d1225c93887b90c5  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater.cc
! f07c66860613a5cbb28afcfd2ccb4785  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater_or_equal.cc
! cde4479fc278d81686a77d4bf6cbe31e  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less.cc
! 3c997881bea8f8a3a56ed5cc8dfaf2f9  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less_or_equal.cc
! f65e8e0c7a17562c364beb436c121561  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/not_equal.cc
! aa662ca80c14de06c3cf760e18a6b556  libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
! 4f1b06ea782f0dc53aef99c1eba8bcb4  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc
! 8f2b9f81f60b98732a9d09aa34a33653  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/back.cc
! 91c5fa85d892c41b068d9047d59513f8  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/data.cc
! 858fc15f2f5fb8d19da277a2a6440694  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/front.cc
! 3fd02fcf63a2aa5b71f4013ddc23753a  libstdc++-v3/testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc
! 49e80b9407a4a2f706d61a4f22721c91  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/assign.cc
! 1d694425a0a5e8aad6b99fdfd37443df  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/contiguous.cc
! d1fadb43a390380a13fd6717d1b80e32  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
! 335e22f7f9a89ba996a9d9a9d1f5e226  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/member_swap.cc
! c580d9414ef0b6ab49c6f7205d8a97c2  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/typedefs.cc
! 7d6b12604f66282b00592dc4e9afc4a1  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
! 303e98dc4c11589d34e4cc18c5415159  libstdc++-v3/testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc
! 372cc1a42f908d640f39f700f986e3b3  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/get.cc
! 68b2caadc52a4c25684e2fce1b67e110  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_element.cc
! 74b2443072bbc996a18979b377ef4069  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_size.cc
! 6fdbd80ee18a3fe9d10a30a0931c7d9f  libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
! 1a09f0a08e00c8b5d142a8aef9368e2b  libstdc++-v3/testsuite/tr1/6_containers/hash/operators/size_t.cc
! dc7db6a5d600e5d7b08c027ccac31227  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
! 759c2ebd72bd00917dae8380daceac0f  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
! 702cc460514538a89aa372599d9a7b7c  libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
! 7912bbdc150724ab997e3e1ba80507e8  libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
! 9986e87e7cb2655b13f097210de78a0b  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
! 9851e7ac0320b58f5ab8e501a0c30d09  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
! eb08310a8597a2a1baf10c223c073388  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
! efbbcd740c7018f6e51cda7ffc828754  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
! c11e76eac82b960c95066e6b3dee3d20  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc
! 267f2a7ffdb8591e5416ef924e6c5262  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc
! c04206e75ba28a407a3b957584a3f057  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/assignment.cc
! 76a8aa17024cffcbe7101ba25e48d88b  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/big_tuples.cc
! 6d6363ee48045984ee3074ff10a6b9aa  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/constructor.cc
! 009f478bb1202eac06bc97f8d4b73837  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/23978.cc
! 77d348268af07651eb27705617eb3dd2  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc
! fe191197f136e39e57b04b169c2651a8  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie.cc
! ffeada877190c8787e771abead14f03a  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
! db07f4e7f8cb9088b92b7ff0791b7294  libstdc++-v3/testsuite/tr1/6_containers/tuple/element_access/get.cc
! 5c72e135bf411ff0e055adec57494589  libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
! 411b3957ca65401551eedae5f39b118f  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_element.cc
! 916ef61b2fc9de6d0077c0ecf42ee33f  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_size.cc
! 9def57126749156333ff15e1dd6b8b3f  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
! 97f6168cda6bb9bbe311d7aadee8a379  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
! adfe3f2cb9ead12a3012007657c62a24  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/1.cc
! 5a4b798f7b52a3f7fe81c0f7556101de  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
! 1b4f221bba0a830488f70f433d3ebcf2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
! 370c9351120aa452edeb1518a7fa80a2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
! 7deb57662684f3a4a1b2d9b40fa49914  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
! e9a400ad6d077e7af0c7378d2a409a90  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
! 535d72069ca8bb694b2bac18d0d34196  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
! 9c040f338629674ee574221af03ab469  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
! 064938eee7132c06197a0adcde256c14  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
! 631821f7d84761f1fb6e808725bf8001  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
! 1e2bb619a27bfe0780fc114a14ce04ac  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
! fe32a20673e1fd7a885543cc8b97e1ab  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
! b7273250f5a0e5d66fee19c28a9ccb79  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
! d7fd821aacfb2dfdeebc2a97b4a5fd0c  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
! e3edff883c85e65fd5613a4b70284260  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/1.cc
! a79b73ae036e67355049bd5d0f9f9359  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
! e27d6cc3b4b3841f52c2bf92a7d887da  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
! fde52ce4bc0f02c20dfd81ec979e23a5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
! a4948ca282ee07fb0c6602059e4d9ab3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
! fd32686bfc48133f678367065a580ed1  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
! 24673621f07a7e6ae0e920cf0148d3f5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
! 578251d832dddc3f24872afcb42f900d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
! fa8705557710bf24cf421f3f4a6fe9b5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
! bfa9664696a8de57b2507c0d01b42530  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
! 20c6a8b95a193231d230a4a0c8d9b4ae  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
! 12786bdeb91aa8994f512cde04c44fe3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
! 296dcd4f26c093e2e42aeb49819978f2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
! 2a4a4e9275f66cd14a95f3d2128f56c7  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
! e6bda74230a30df0b2dfca96e128d546  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/1.cc
! 6c0793b572c90e136539c5bd28171b78  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
! 55ffe2dbf5aa8c080b75e753f1ac731f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
! 21bb6ba828a6da798ad023290b3bd664  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
! d2db6ebff6a11db260dd066d481fba47  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
! db8830c24675d6eab14d6d7baa2c84eb  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
! fc8c94078a2b6c65f1e1ad0d0fe46a94  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
! 7e128179582d579f440c43753e5672aa  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
! 7ccf023e8a69958f88818465b2c7d689  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
! 282675ff5048f756fa9213b93b441b63  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
! 68c99ab8cea079051259b0b5508a6663  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
! e254d2bfdc3c8d070590411db48e3215  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
! be51765caa691f72d48357bfbf60c934  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
! 993a5e935635f4ffcb4da1120484c88a  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
! e9ac6b60dfdc6b6338260048f661224f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
! 5a98a9724acb86c10d08ffc173f389e2  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
! 358e8d90f4c1d9a2b991b75bc1c22b53  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
! 83158ed1561b4c9274017b3f234e4c3a  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/1.cc
! d2ec42944df0263dfb4c3748ebdcd915  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
! a3d2fed65bf447f7b3585ced0d5a4e6c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
! 6753235092c1badfcc620f54d894c9fb  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
! 7b55e191c60a68085cf9bbcf849da3e7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
! 8d8ae54530583239ec43cd1618b0f2a7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
! 6d3888e86191137db1f344126d758075  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
! 999e6eeb2c8f2ea1d04cd05e3328a555  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
! 8e7580e68b0b380f7b304a037aaf1b56  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
! 52ed91dbee687f937dc753013c70f42c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
! 07d80b4c89e753068ef14d696047a077  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
! 09be7294c1ef525c2bb56fc9d729689f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
! 8e04d42cf887fe84ea3116b3b827e665  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
! 1aa144a49fa8012d1096c0ee6e5b1089  libstdc++-v3/testsuite/tr1/6_containers/utility/19535.cc
! 73f0dcd556b3a1f012e59f28fde6b9d5  libstdc++-v3/testsuite/tr1/6_containers/utility/pair.cc
! f25cd81c7336002e8e521a5468f137dd  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
! 4c88aa7ac9fd7248ff45a2987fa4c319  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
! b04d83c706b5acc7da05e2f44ee7d110  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
! dd4e771a4847bbb26d632bf812a0cac9  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
! 193fb59b72ab73a12151745a2b7c9197  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
! 30c2e6b94311d2dd1e0e637a78b3e3f6  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
! 00e07b0d94c67a74ddb23f25b279ff82  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
! 1f062e5df54794b8cc4c6f4d774bd293  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
! 3a058ce81628588018303df0194793ad  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
! 68989ff85614588a085718a66603e0d0  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
! fca13ef03a81bb74ec3c23f20dbdff50  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
! a202c62a0f7ca4d4d124f7e4e153599c  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
! a516ff7b72db9cb1ca7628e6efbf3d2e  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
! 68fa1f9bb87e818ba4b32456724e36b7  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
! 0acb6e270cbde19b3c6646603b88345d  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
! c661a58eff05b83ed553e716e02a1e0a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
! a47c6bc5d66e0937d04618e0b46cd6f7  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
! 83c44ca5cac275e043e2bb4fa5856d2a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
! 8fe63700c4cb15328faf4ae3d7a9854b  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
! fc0802d52c970727aee9ebc3af441f28  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
! 0358ffc730f5e5480ceefdc28b93c3ca  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
! df9e28f9a9778d519dc0968f62340809  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
! f6d0c2ac551696ccbe8ae63b76b028be  libstdc++-v3/testsuite/tr1/7_regular_expressions/match_results/ctors/char/default.cc
! 099830806962c5060ac92d8cc1bd34a7  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_awk.cc
! 6ee3e1fde8e766b19d544309a9ee189a  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_basic.cc
! 9823ba9c79eff631b19f9629054cade6  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_ecma.cc
! f699e2cf899c389e1e83b59c65e774c3  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_egrep.cc
! 26ff94c75c2d3c1e7c8ddc0c38c8a4d4  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_grep.cc
! bfa46934ca3deb2dd281d852a22d8eb5  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/default.cc
! 5006fb939259dd9232e21d0d2d815663  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/ctor.cc
! 8fe781dd386f89a89769f0ea478c7816  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/translate_nocase.cc
! 71dc2def7fa8d3f152350b678f752aaf  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/value.cc
! a23bd179b0aae20831a2479b43e99fda  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/ctor.cc
! 9a9ae404dd82f8391f943fd3f2db66f6  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/translate_nocase.cc
! 71dc2def7fa8d3f152350b678f752aaf  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/value.cc
! 9b2e49a89c28669fcca44d241d9a4757  libstdc++-v3/testsuite/tr1/8_c_compatibility/cctype/functions.cc
! a2e4acd9512313de8aabee94ef7ef185  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/functions.cc
! 005949128aa3c85dad43e13c2820e950  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
! 2ba56ea4eb8346be96f4749ac3f4d268  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
! ecf09f1199d66024befa29f54e7a97d2  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
! 66a4c8927d3863fb1a5fe99c4d6d0243  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
! 907a034cc1aa108abcff46acc527aa6c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
! cc4599f56a2397b5d648298cc8e08210  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
! e9ca77e828334b2941c279e802ff9337  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc
! 1f59d838f34067b9bd8779be6ed9781f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc
! 87b7584c4486ba9c2daca2d5fed7b797  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
! 07173bd5ef90db2732281625b9712d23  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
! 9955b7af9587a692fc0943aed897e8f5  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
! 9fb9c3a6ade4d68056f73972a68ea8ae  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
! 96b452eeba25592ebdef0e1bb3254066  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
! 9b6e63ec0f69adb963d1e8bb8cc113ed  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
! d605b42925a0aeabcfb2fac64b2205e5  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
! 4adc9ee9857a1a01a8c8aa166692b47f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc
! ae956c96576c060f0e7609a758ff2677  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc
! ce8b761e796d57e18fd979461a9d51b0  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc
! 29a13641d6d75bf5f29927933c98e00f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc
! ef78729b7b710ad0bdf168d4d0a85e81  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc
! 176058424d673e00ab0e12b0b008ce12  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc
! d2cfb8ae709159b1f5abf17070d0f22d  libstdc++-v3/testsuite/tr1/headers/all.cc
! 4357683b098e992b9d90e74e2350bd5a  libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc
! 42deafd73807af3399d8362dabe033bb  libstdc++-v3/testsuite/tr1/headers/c++200x/math.cc
! 77aa6ac4bb3f27ea7131745b408fe094  libstdc++-v3/testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc
! aae313eaada14bd7e2f458a4f4694b7c  libstdc++-v3/testsuite/tr1/headers/using_namespace_std_tr1.cc
! a2533fa33e3d8eaad7622f1ef5a4e6a2  libstdc++-v3/testsuite/tr2/bases/requirements/explicit_instantiation.cc
! 50abc487de7d4c082dd45ecbc020c623  libstdc++-v3/testsuite/tr2/bases/requirements/typedefs.cc
! fe6b20ff4b3a1e1fef1a7eb53360b2d4  libstdc++-v3/testsuite/tr2/bases/value.cc
! 84ebc6e8da6db557169d943ecb353058  libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc
! 3c8832af88e2f2b58a465685512a69b4  libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc
! 1a487f58cf23d9c99d3efb6f8ece4882  libstdc++-v3/testsuite/tr2/direct_bases/value.cc
! beddee4ddf76972fd3cd4c246b60de53  libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc
! 991e9187e5e2cfb410895e6d00cc6e12  libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc
! 918442f8cb806d175ad7e90bff1b5f93  libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc
! 6d0f596c7637a7dca4069a595bc97257  libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc
! 4b9ed47580b8051f43b32cf90e355182  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc
! 0f300523abb3f1c3ab8923732e24f61c  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr87784.cc
! f1cec99a51a8234b7abe366632c71ea3  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc
  ecda9a957b2187c0e03c98357f9a8f67  libstdc++-v3/testsuite/tr2/dynamic_bitset/string.cc
! f02828a41d8c22f0029695cd5bd910ab  libstdc++-v3/testsuite/tr2/headers/all.cc
! d534009d336b70640a526636a626afb6  libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc
! b39c43d5015f1f270658bd8500c593d5  libstdc++-v3/testsuite/util/atomic/wait_notify_util.h
! 345fa38037e1e41ba97bd9b0c69ec865  libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
! 8d46d186ab96b2a14d972d7669ef8acc  libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
! 6214c494c7b11194224c0e841bf9f8ea  libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
! 7b6e7777ea7b8ca821f33623cbfe9d24  libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
! 5a59940a27d9fafbfbf8bdefe4a771d5  libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
! 2a68f2141f4bcfda16db43919d285ad1  libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
! 40aa3cf01abc87a1a553f447cef883be  libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
! f6cea26b5fdd408783af0ddcbd1e7f20  libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
! 3e68edd033f1bb93bb5e98257d5d846b  libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
! 056fb216cfb45779291c3fe7a5d7a122  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
! 57c981337f2e0a7ec9db29030e1bf33f  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
! 89aa65aa30fc75c3dbd41d70db31448c  libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
! 7760499a7f7d0f2709d063ad5a600a1c  libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
! 35ed8a78a1d9de6d4cc5f23619c806e3  libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
! 9279c8bee756495d0586b8c49e70fa4f  libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
! 8a834527a3937ab48259ae405783e49c  libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
! b046a9e5c806246eef8dd12c7342e002  libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
! ea549679a7956f2ca903e14a82b9c6a4  libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
! 8fe21adf94591a5f22cfda89cb18d4bb  libstdc++-v3/testsuite/util/debug/checks.h
! fd640809991afaf2fc92b95e2bdf4745  libstdc++-v3/testsuite/util/debug/unordered_checks.h
! 145f00653ba9a908cd7de0825f3a8c4a  libstdc++-v3/testsuite/util/exception/safety.h
! 8ac874976beccb71befb2c9cba8cd01f  libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
! 3a7c6661667450891118eb33649d2337  libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
! eebfe965d66f3bce1a45046f1458c198  libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
! 44291324acabcfb5d0b112c619990ea7  libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
! adf5e8704e31363e1d0b7991327be582  libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
! 101bc5912f7a377574a3f5caabff3d89  libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
! 8d4c20ce00cd34faefb3f8efac021f61  libstdc++-v3/testsuite/util/io/prog_bar.cc
! 847a32679c6a7dfc56a67ffef0f55f7b  libstdc++-v3/testsuite/util/io/prog_bar.hpp
! 3313872a376471d10580ce14455759c4  libstdc++-v3/testsuite/util/io/text_populate.hpp
! d16f05449c415ae1d15205c3286a302d  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
! 425eb79c521812fe3b85505de8399f7d  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
! 13d1b601a74115d9ffcc48eeaa206d6b  libstdc++-v3/testsuite/util/io/xml.hpp
! a76f029535daf1b9ac2ad4860a17f368  libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
! 945e0f36c8bd478c6df4b5940becc093  libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp
! c9fdd801b14956a878c85e31be742813  libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp
! ca0ffcbe920a1c7737435c540719326f  libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp
! 7e1a54cd67d13020f3f579e8775f7294  libstdc++-v3/testsuite/util/native_type/native_hash_tag.hpp
! 257912d53fed20be9b246654d363cf67  libstdc++-v3/testsuite/util/native_type/native_map.hpp
! c2cf0a8359fd6e26e1bd2985e067d95e  libstdc++-v3/testsuite/util/native_type/native_multimap.hpp
! a3e3f3bef2af5c3e67098ca4b62543a9  libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp
! 277edfcc86672f5993c56da1008a4a86  libstdc++-v3/testsuite/util/native_type/native_set.hpp
! f22cd5c9b8c9dbb8802255454339d7ee  libstdc++-v3/testsuite/util/native_type/native_tree_tag.hpp
! 77c2cc2cf251d8c2c4f6861dfd2b20bc  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
! e6e2f5950532d49c6954f17257f26932  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
! e10057391e675fed5c8306f1951366b1  libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
! e043570662f16d239a5306dd48c9c1e4  libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
! e08e5a619b686fc978a47595f91a3358  libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
! 3f95c9a2692278195af8d14aada2e785  libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
! 4ff146ae1073842453524930ef07d5fd  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
! 666e76dee701994bec661720224661f0  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
! 80fbdb3c5d9ba03d0b2e93d9ce77ab34  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
! bd55241cc55c614d740167e07158ab81  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
! fa9d57006b3088b0ea184c0792b85cf9  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
! 04deb115feea1593d8a61e03585d78cc  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
! 31455c48789b9e94003ab3ec9ed22a35  libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
! c979ce99082f8fe3724c54c0af46262f  libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
! c9f85fb996fc49bd10884c12199b4de9  libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
! 603826eaad7df65c6b69a375337bb4f6  libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
! 851c0043b97785293e9221a6ff2fee9d  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
! 27a0df38ff41cfa2301f739da97dd946  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
! 0410968211b0676ee2b888396bfc80bb  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
! 249843e0a4ebff6546e745c45787bc0a  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
! 7da44b26d82ba663aa935423bb50b1f5  libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
  f229f005fb6b0edfab2a25224f4aa670  libstdc++-v3/testsuite/util/pstl/pstl_test_config.h
  c9e37353b8b63e5ef350dccbc4776562  libstdc++-v3/testsuite/util/pstl/test_utils.h
! 9aeb604488c18b1363edef186f6dc0d4  libstdc++-v3/testsuite/util/regression/basic_type.hpp
! 2b30586c706a0803b0c7b0b5340c3b09  libstdc++-v3/testsuite/util/regression/common_type.hpp
! 90f5844c133f111e44f96033010b670c  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h
! 6fdc6896d3864ab50cafa6a5c87114d0  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc
! 82d3d2eae951077b5e10e86b3ea8bd2d  libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
! 19a39ad91a74ecc4619a6099d9a9ee1d  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.h
! 21b2a8b35d48082f5be1de1089450aec  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc
! 4e95e26c69102e90542378fcbf6db2bb  libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
! 344d2c395dd08b3ba3eceac864ded2f7  libstdc++-v3/testsuite/util/regression/rand/xml_formatter.hpp
! ba25b32db39d7a9e6456dde308758028  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
! 578e9a4c1a17518d2bdbeba90a937b26  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
! 257bfeec27adc369b0e62d41b8ba9b54  libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
! f303bcbc15176a080e3bed2777181197  libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
! 5a04d3854d2791d3fb3af3d781a836f0  libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
! 5f601c1eab8b2500a95d7797813e48b1  libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
! 0263e41e8228b1655fbe9bed0657a529  libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
! 059fc4cbbb6aa0e7688b38d9f6577685  libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
! 9667c25af29b9f4810f7db76ecf8d47d  libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
! 70777027278d4c3ee2722f74b1b4e4da  libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
! a78d6e28346bcd5f6da00992fbcec516  libstdc++-v3/testsuite/util/replacement_memory_operators.h
! b118360dc53729081653af920dc53983  libstdc++-v3/testsuite/util/slow_clock.h
! dc7e1c2d35ebb40191dc796454b3474a  libstdc++-v3/testsuite/util/specfun_testcase.h
! 51bbc5037f917aa59b4899000102dc99  libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
! 7a47e183ee0fd183832654cb3a3f2a03  libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
! 4be0434bdafb55fc91f65c96548b1c11  libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
! 1168103a2b0dd6ad7ad775b13d83f642  libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
! ac85a2fee4d063e1ebad0fbcee293502  libstdc++-v3/testsuite/util/testsuite_abi.cc
! c6987513d2eef3e10efc78b4c1aabffa  libstdc++-v3/testsuite/util/testsuite_abi.h
! b15d0bf0655a1bd7218a612eeb242a71  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
! 2c7d42c55d24d2cb66c15a8cd6b896dd  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! cb33cbf800f972cf0ed4b0c7d0c358d2  libstdc++-v3/testsuite/util/testsuite_allocator.h
! 3406f1b8a71fea2b28ce19cf8a6faf5c  libstdc++-v3/testsuite/util/testsuite_api.h
! 082749bdffa5cfed38ca7609044e405c  libstdc++-v3/testsuite/util/testsuite_character.cc
! 34cf9127fd7fbbec37b752c3460e7ed7  libstdc++-v3/testsuite/util/testsuite_character.h
! deeb0ac4fe1897a26b55b44220d68712  libstdc++-v3/testsuite/util/testsuite_common_types.h
! 87cdaf1a3d907e96defc6af2cd5eb212  libstdc++-v3/testsuite/util/testsuite_container_traits.h
! 3c13371cde57856ebe6c5f438c97e47b  libstdc++-v3/testsuite/util/testsuite_containergen.h
! 1b7eaae8691b77441a8aeabab38e19cd  libstdc++-v3/testsuite/util/testsuite_containers.h
! 9e66b0ae033d72daff2cad1b4555ef20  libstdc++-v3/testsuite/util/testsuite_counter_type.h
! 2f7b070ba10750e78d46a356704fee0a  libstdc++-v3/testsuite/util/testsuite_error.h
! 126e6fe772371247f4add2cf892e5d92  libstdc++-v3/testsuite/util/testsuite_fs.h
! a8bcb944757bcc7f605ed53ad91f03a3  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
! 0ad473ca78a70f73efb816533566bfac  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! 6ed57c26205928f2b0b236d9babe2c16  libstdc++-v3/testsuite/util/testsuite_hooks.h
! ccc8dfd3f357e398a838d554ef4a98bf  libstdc++-v3/testsuite/util/testsuite_io.h
! 038c40a42fb90be7627e50dbdedb5e17  libstdc++-v3/testsuite/util/testsuite_iterators.h
! ec325974543a8838d03b1e894caa3ca8  libstdc++-v3/testsuite/util/testsuite_new_operators.h
! 8fdbc9c4bd37cfa3e9b88de93100118d  libstdc++-v3/testsuite/util/testsuite_performance.h
! cdb7e49f89752ff0e4f7cb6cdbb48e25  libstdc++-v3/testsuite/util/testsuite_random.h
! ef79296d08438958b9946bfc8ec1c943  libstdc++-v3/testsuite/util/testsuite_regex.h
! 967ba1f8adc4f1ffca6625d5d7e8bf22  libstdc++-v3/testsuite/util/testsuite_rng.h
! d7779feb385e2abd3a9fa02c408e7fd0  libstdc++-v3/testsuite/util/testsuite_rvalref.h
! e6ddb60824e5d886b176ccc72c7d224b  libstdc++-v3/testsuite/util/testsuite_shared.cc
  529d22babbd76400264568f2be0d13df  libstdc++-v3/testsuite/util/testsuite_string.h
! 6fd0e670469f359b4992751da4f672a8  libstdc++-v3/testsuite/util/testsuite_tr1.h
! 684ba2644f92fb0e41e873a71397783a  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  39cc83ca69ddbbe398dd79a2ba6b5499  libtool.m4
! 3377c6c18791230b0c95fd5899235b28  libvtv/ChangeLog
! 88dfe796542bb4167f39d24ca10de5b1  libvtv/Makefile.am
  b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
  84c8143a9310ea291315dcd0c276df5d  libvtv/aclocal.m4
  469c28bea4ff3f61901f851a93dd6e75  libvtv/configure
  aef48e6e222ecdfc5d416dc52541151f  libvtv/configure.ac
! 0b9f020da784c8393d762557e818283b  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
! b0372e2489a3791e6ebc0c0c8b0b1861  libvtv/testsuite/config/default.exp
  f2f173b97a24edb63425420b6dafac67  libvtv/testsuite/lib/libvtv-dg.exp
! b01596489f4e825c77d9429f5bd51424  libvtv/testsuite/lib/libvtv.exp
  dc26824f08dd227e0cba7e7ebc8f4d3a  libvtv/testsuite/libvtv.cc/bb_tests.cc
  9d9288724a9873c407e84c96ef43f56a  libvtv/testsuite/libvtv.cc/const_vtable.cc
  fe36de4d4d62f71439d7698d24cbb0c2  libvtv/testsuite/libvtv.cc/dataentry.cc
--- 141326,143054 ----
  4abe9d75da280cd5bcef090bd6898210  libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc
  45c291024c5937a6b04df53d5af53f6e  libstdc++-v3/testsuite/experimental/simd/pr114958.cc
  8321e9c97cfe9622f4b70a13cf623661  libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc
! 6c222a6f0c4b446811f9c04b68e820f4  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  3718cfdb2ca6d6f1e0fb585a7350e074  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
! 620a93e25abac3f495f7b24bd96a8b33  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
! 0bd5931c25d8e28628921a244274db3f  libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
! 2680d4816f7ca9a6f40c012a73bf04d1  libstdc++-v3/testsuite/experimental/simd/tests/bits/conversions.h
! 748d85a37a779c7d28fd1473931ccc40  libstdc++-v3/testsuite/experimental/simd/tests/bits/main.h
! e9a610156ef73e4b0721d58a3b17fa93  libstdc++-v3/testsuite/experimental/simd/tests/bits/make_vec.h
! e156d7ff260fe97cf68f79badbc67a92  libstdc++-v3/testsuite/experimental/simd/tests/bits/mathreference.h
! b6320a46678cdca4a38a009bfa55a4c3  libstdc++-v3/testsuite/experimental/simd/tests/bits/metahelpers.h
! 58eeb1832d5204aa62ee87dbf521c33b  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
! a1c2227c92159b6794b3d125d3ef51aa  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
! 77d933ab9a9daaa146956e22323bc172  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 9fb36b26d72ec906fa5724ec33b55632  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
! a4a3da7c76c5549db410c71644474a0d  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
! 02fd1a9700a8215e7efdd2e38f9c537b  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! 578e806359630968998d0d00ee8b803a  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 7dbb5bb6148999f25ee47f1a9a4b8439  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
! ac4fe94074f42752e67490a41b0c304f  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
! bc4599c4d896287fd0e5cd557ed184db  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
! f8b766ad72aec1de0c8f26f47a52fbcd  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 276ae8cd8a4b0e504bd9d86156b00f1f  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
! f921e520475fb86c863e9a0668fa7006  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! 2dcff1e1d9f0a1e04303f2980f19d03a  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
! bb96b1d693e655c0e9e383c6ba4eab33  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
! 78d83f3c3ce1b8899e7b8b65750aa426  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
! 9909d3fb4b2d87220da1f8e475491e0a  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
! 3d2c23a619ea858f1e5acbb2985aa936  libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
! 4d84ba680e7c66178f9ab4b86ca20995  libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
! 708ee24b14a3a8ca5875e3b283159b73  libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
! 9e97530b8a68a04b0f3ada4e70952b23  libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
! 602d5affb2738aaf273cacce6b5b7c90  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
! 36178bfd048f85681821b4ba087d0653  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
! 8e7cc832da493fc65b33fe61e88e6266  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! b67041dc24525f94f3b99bb3032afb41  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! d16781c4710c2e3a76a69c32eca9ba3c  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
! fcaecc216ba6de82447c180ff94f3dde  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
! 1451b770af5b8dfbaf37d9884134491e  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
! 537dacc3a59264eb4cf180a45ae26334  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
! ec1dfae63446825d40ee238ada8c53c4  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
! 27e453ab9dd1e5615417045bba735a0b  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
! 3d47dfebfa540bffe226007f27e8e143  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! 7bb64f7e10db82d0f26bdb2fc8aca29a  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
! 6d530cd4337608180495a56a60bcd3a8  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
! 004670a024e99b8246e965e7eda41277  libstdc++-v3/testsuite/experimental/source_location/1.cc
! e70b9de370f85d8ed315f8dc75116f83  libstdc++-v3/testsuite/experimental/string/erasure.cc
! f234af745f87a2771ac75f876295cb7d  libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc
! 27b5e9926b6e9e50c38857d1900126ca  libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc
! 73db2a304523a32f8308891e72eafa74  libstdc++-v3/testsuite/experimental/string_view/cons/char/2.cc
! 2ae5c130f7700086ba26f8fb98a4d1c7  libstdc++-v3/testsuite/experimental/string_view/cons/char/3.cc
! 2e7c18c91d0de91ec1301a401ad2543c  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc
! 82272a2ce79544504f8a7c98969920bb  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/2.cc
! 970d905c104081a7a95dcf516dbe8d7c  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/3.cc
! bed2ddfcdd7bc819490a45d2c017e47f  libstdc++-v3/testsuite/experimental/string_view/element_access/char/1.cc
! 9ecd32c1bfedc98e493ce2361e48e1b1  libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
! 87a6090e37c16d4abe9579ca3d119f42  libstdc++-v3/testsuite/experimental/string_view/element_access/char/empty.cc
! d90ac072244b907b7357c0a468a26941  libstdc++-v3/testsuite/experimental/string_view/element_access/char/front_back.cc
! 61ed2e93eea2145cf52de0a072f89a6f  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/1.cc
! 932c32dc11084205564be6e7fdcf4ba7  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
! aac7a8486146f27a052a88e654d2df0b  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/empty.cc
! d8105fb50eaf2c29f9468fa7957cca9a  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/front_back.cc
! af6c39e51f3fecccc131376cb6603382  libstdc++-v3/testsuite/experimental/string_view/include.cc
! 0a8d77ee6f06a81d83c7de670bbe2be0  libstdc++-v3/testsuite/experimental/string_view/inserters/char/1.cc
! 9afc8ded10032b8f4292615b35e002e3  libstdc++-v3/testsuite/experimental/string_view/inserters/char/2.cc
! ab382422e723320b486a10614c046991  libstdc++-v3/testsuite/experimental/string_view/inserters/char/3.cc
! a04481b76f74facc9fb30ed0d04aa3a9  libstdc++-v3/testsuite/experimental/string_view/inserters/pod/10081-out.cc
! 0ac0e48eb1e167247654b9d2de6c4c68  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/1.cc
! 59e4e11c3ec43e3a67e288bd37c41429  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
! 731db3319c6b6cf1cc24b5a53cf9a196  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/3.cc
! c8cb5541c8d87af55583c74e631a4a0a  libstdc++-v3/testsuite/experimental/string_view/literals/types-char8_t.cc
! 395ea71ccf8afda9b79a3e9282ada689  libstdc++-v3/testsuite/experimental/string_view/literals/types.cc
! 09a72d27b9b55b0f3d6dc199bf6f0baf  libstdc++-v3/testsuite/experimental/string_view/literals/values-char8_t.cc
! 1290d019c8172ebdf033a096f5e72f6f  libstdc++-v3/testsuite/experimental/string_view/literals/values.cc
! c71181256a1cdb4949124f63b0d156d0  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc
! 295c390adea770f014cec84b3d0ed424  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/1.cc
! 3356af3d78403675488381da4a04540c  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc
! e747d316231c9d2f04ef6b828c0ce029  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/1.cc
! edba00a54b716feff1f3995d9e5cf547  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc
! bf16091dd2a068ed669217977561000d  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc
! 7870726cf3ae2e1e2ea5555d381cdb1e  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc
! d1aaac94986ab92cdc6e7d467475ded6  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc
! 79000007fc514444d0aa200ea875ddbd  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc
! caf2af8f74f7cb79803a3ae3c6272a3d  libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc
! c8c9d50f38d2540c90498f89d4aab352  libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc
  672cb4f94c8a852e6bdb846e926365f9  libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc
  3500b68ff8c9b68295a6f4a0a348e9d8  libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc
! daa3894674f819a3e01771a269eeff94  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/1.cc
! 1ea63b6603b42bd3f79da426b783d71e  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/2.cc
! 69d34e72d17e4c624138d78c252c8788  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/3.cc
! 7e691d358b49db698b247172af6bbe8d  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/4.cc
! 9b3e1a177746533aca14f47dbeb5fa07  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/1.cc
! 8792b0c02792c05865df587f01214b3e  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/2.cc
! 3ac6bce45c834e5f9dd879f6a9e5850b  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/3.cc
! be32cad7d2aa9f442a546651ba052948  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/4.cc
! cefac13035dacda403f10d5168294ca0  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/1.cc
! 649dacd79e38ae2c87b18562a79f13be  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/2.cc
! 8fc9b647f3368348a8616d6237e71c18  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/3.cc
! 317bf9414f70af68edb1ccf3ab9e6e1a  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc
! 85c60958fc11c6917980a411b7ed3435  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc
! cf71f1c2375389030899d147c90f749d  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc
! 5cb44dff5bf0198cccd5b5c8c62e7852  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/1.cc
! 4aafc4a3aaf54db8bfe6bb4936f89d0b  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/83511.cc
! ee4f91bece8666adffe56de28b7b17a2  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/1.cc
! 44e9eea24507b10c0cf8969d07444f09  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc
! bd1f29a200cdebdce3044a0df8af1692  libstdc++-v3/testsuite/experimental/string_view/operations/to_string/1.cc
! d9c01d4282ea53b08f8e0ef2e1c0c51d  libstdc++-v3/testsuite/experimental/string_view/operators/char/2.cc
! c702683a0dbeb236c5952c54cf9e76f7  libstdc++-v3/testsuite/experimental/string_view/operators/wchar_t/2.cc
! 3958a6c335c028b388322ee4fd5b2c9c  libstdc++-v3/testsuite/experimental/string_view/range_access/char/1.cc
! 95608be060289d8e7ebb90644d3a847b  libstdc++-v3/testsuite/experimental/string_view/range_access/wchar_t/1.cc
! 5b9e7524655a53ac56b583b32e923c7a  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/1.cc
! 5dd20d3b741998b885e8f56505965859  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char/1.cc
! 44519c4d43c222303bd31b41e465472f  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char16_t/1.cc
! d5da5af3ee6a2d1a92506fc87c89b38f  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char32_t/1.cc
! b300f57b2d94ffc26c0278c9a66f4b2c  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char8_t/1.cc
! 91f8afc5fc2f24d7bb4dd86c94b9a097  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/wchar_t/1.cc
! c0eb9589f80cc94d1af697b3052f5a34  libstdc++-v3/testsuite/experimental/string_view/requirements/typedefs.cc
! 5eb3b13912c36462b590a9e94d738266  libstdc++-v3/testsuite/experimental/string_view/typedefs.cc
! a0728537884ac125a0391cf04655ad05  libstdc++-v3/testsuite/experimental/string_view/types/1.cc
  b89c4bdefa0bf886e09684838214bb81  libstdc++-v3/testsuite/experimental/synchronized_value.cc
! 5df539718f060c1bb7a239c9326ab255  libstdc++-v3/testsuite/experimental/system_error/value.cc
! f1050eb592809a1b8463bc9b692cdb83  libstdc++-v3/testsuite/experimental/tuple/apply.cc
! 60eea5a75da7eb10fd2940b8172b4cd4  libstdc++-v3/testsuite/experimental/tuple/tuple_size.cc
! fe7ef9320c8af2eeb8878c51dea0e0e7  libstdc++-v3/testsuite/experimental/type_erased_allocator/2.cc
! f42739a361cd81018faeb21672e5eb44  libstdc++-v3/testsuite/experimental/type_erased_allocator/uses_allocator.cc
! 579b7a11f0bb07085b1ea463f1dd9847  libstdc++-v3/testsuite/experimental/type_traits/detection.cc
! e6db62a2d0fb2c39c0b52ada6f0de939  libstdc++-v3/testsuite/experimental/type_traits/nonesuch.cc
! 1649cb3848c6f7726ff4aa0ebb9e2910  libstdc++-v3/testsuite/experimental/type_traits/value.cc
! 95bf24339e4b859d432fca04f7d29d08  libstdc++-v3/testsuite/experimental/unordered_map/erasure.cc
! 93da75917d9ca024d31587b3b41fa3af  libstdc++-v3/testsuite/experimental/unordered_set/erasure.cc
! c4bc859fc864d5ea373702867c4280c2  libstdc++-v3/testsuite/experimental/vector/erasure.cc
! 95a373500a567d97002f91fef18ca2e2  libstdc++-v3/testsuite/ext/104395.cc
! 15e70a3838ea66c64c024a2ff3a4bacb  libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
! 0f4d48fb29b10e7562c66c47f47d4438  libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
! ef47cf2ad727b64a7f8c27526520b653  libstdc++-v3/testsuite/ext/bitmap_allocator/check_delete.cc
! 7c8f0c0dba156edef51b7d73a619985c  libstdc++-v3/testsuite/ext/bitmap_allocator/check_new.cc
! 73525f504a0cc5444c19cbc43ee6fca9  libstdc++-v3/testsuite/ext/bitmap_allocator/overaligned.cc
! c90050ecd2a19de66e97907492b79cee  libstdc++-v3/testsuite/ext/bitmap_allocator/variadic_construct.cc
  846dc8224edb857bb6953efa8b4cdb2d  libstdc++-v3/testsuite/ext/char8_t/atomic-1.cc
! a4565ca885e61c0edc0368ba280ddc5c  libstdc++-v3/testsuite/ext/codecvt/1.cc
! 219dd4b0261832a8b73722fa511fb5db  libstdc++-v3/testsuite/ext/codecvt/char-1.cc
! 275c57451984f892871d5d34e354b5cf  libstdc++-v3/testsuite/ext/codecvt/char-2.cc
! 6813f3fbe3a96b45e28c8a448755ef22  libstdc++-v3/testsuite/ext/codecvt/wchar_t.cc
! 8ef14c0ac8916b6bbc5b2b7ff5216579  libstdc++-v3/testsuite/ext/concept_checks.cc
! ad6bc5f1852b80b204e61911d3995cae  libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc
! b5e78c5cfd9d4f15d639cec4a133d162  libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc
! 76934f1fad537f8e435328aca6e92381  libstdc++-v3/testsuite/ext/debug_allocator/56170.cc
! abefb6d7b37034ba69af32d3abfa180f  libstdc++-v3/testsuite/ext/debug_allocator/check_deallocate_null.cc
! 2626492a708fa3e9aa5c1da02e1e0ae6  libstdc++-v3/testsuite/ext/debug_allocator/check_delete.cc
! f4b55931fad0822d4b8f58ba2c79b191  libstdc++-v3/testsuite/ext/debug_allocator/check_new.cc
! 6f733dc5fa0ffdc8e9743a31ecc61157  libstdc++-v3/testsuite/ext/debug_allocator/eq.cc
! 1cc6fbf2cb9fd5663ecf5cc0f39fbb2e  libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
! 5c4bf6a76ca3665298318aed1264e7a2  libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
! e36b65950781c3c418042f696cd781f3  libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
! 522b879643114e8ef1a915e87821e4b5  libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc
! 9a9bc2a6369250769fcca70966ce602e  libstdc++-v3/testsuite/ext/ext_pointer/1.cc
! cb881a046fa222c9587b45063ce4773c  libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
! 577488cd1cf6dae0d77beae1d33304c6  libstdc++-v3/testsuite/ext/ext_pointer/alloc_eq.cc
! 6310624721d382134456abe416638575  libstdc++-v3/testsuite/ext/forced_error/cons_virtual_derivation.cc
! e3ca1ba09d1815a4fb606942a8937f8e  libstdc++-v3/testsuite/ext/headers.cc
! 6e9f4a80f7f540292ec13fdbfcde7e55  libstdc++-v3/testsuite/ext/iota/cxx0x.cc
! dbd8f1ba75a7bf1d9a520aff8a76e1ed  libstdc++-v3/testsuite/ext/is_heap/1.cc
! 34e356c0efb2a2e2e261777d7dcdd41f  libstdc++-v3/testsuite/ext/is_heap/47709.cc
! a23fe1791b48ff3d865a3f0a2177b561  libstdc++-v3/testsuite/ext/is_heap/check_type.cc
! aa122fd6f52adbf48d25ed00a731cec6  libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
! 70273708f6a63abf897a821b328734c5  libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
! 27f8897515a5b442c5fbdeb94c180076  libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc
! 170c4c2d33fda51706f2f2341810b2cc  libstdc++-v3/testsuite/ext/malloc_allocator/check_deallocate_null.cc
! 99ee61b9d20a750fb71d5a7c64ca7afa  libstdc++-v3/testsuite/ext/malloc_allocator/check_delete.cc
! 9ba02c7b8febae4675e966f169ca1341  libstdc++-v3/testsuite/ext/malloc_allocator/check_new.cc
! 367ac0a26b76b301864c647bcd8ddede  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
! 3b5a42e6a31793fe8add685b5316722d  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
! 28259a86360b33997e73c99789505f6b  libstdc++-v3/testsuite/ext/malloc_allocator/eq.cc
! ab24d36540d72be93dea5cb66dcdd9bf  libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
! ee50b6f4f0b93aee04365ace4f3eaf48  libstdc++-v3/testsuite/ext/malloc_allocator/overaligned.cc
! c54c06336b3249a6f005b2fc1fc32b73  libstdc++-v3/testsuite/ext/malloc_allocator/sanity.cc
! 77d1ca3a8c453c42497dcf3bb513026f  libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
! 9735fd434816b5a7ead282fa793affd3  libstdc++-v3/testsuite/ext/median.cc
! a3f6f0ec66a3137896767b12f9d86188  libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
! bb7b121277b7e7f2b5a9d8787f1df366  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type.cc
! 4c6a6e1ae2a09b0820513d6d2cfd02ba  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc
! 163864fd8ee4585ae168d6eb2cb2c795  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null.cc
! 1637ff6b1fc0be552807902b83c8b599  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null_thread.cc
! 946de63f5bb30e584a52fe8604b0a7f1  libstdc++-v3/testsuite/ext/mt_allocator/check_delete.cc
! ed7461c898693d1dbadd114cfa4ad66b  libstdc++-v3/testsuite/ext/mt_allocator/check_new.cc
! 4f47d89c13c1b7d3370dae9488a7a935  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc
! af89b6bfd4473fdadfadbc86c11ec685  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc
! 6f7c514d137fa36729ba1d5b18914044  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-1.cc
! b23d74d4aa235be2445b74ab5004a54b  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-3.cc
! f55b9462eb08a90ef30de7b61f98e217  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc
! e2d3cede570eca555c1f6768e32570fa  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc
! e4a99d76f5523a2dadb45d71832fe8dc  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc
! 9ab42869057debabf9e174a22dbb6da2  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-8.cc
! 2eb653166e1ba67849dfd61ddb8159f6  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-1.cc
! a4cd866ce211e1e314898abc03b5978d  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-3.cc
! 16c72f9e71613fb7f425956c445c8034  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-5.cc
! 783da19c712cc31c4c4d950cd0f85d9a  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-7.cc
! bad688c20e5a4c5fdc0886eb3923013c  libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
! c2cc49b75db76be5369f1c488a998711  libstdc++-v3/testsuite/ext/mt_allocator/overaligned.cc
! 3b2b1358290359ca3e416c08cfaa2d05  libstdc++-v3/testsuite/ext/mt_allocator/tune-1.cc
! 140866f9e5da76c9453b4dbc48d653a8  libstdc++-v3/testsuite/ext/mt_allocator/tune-2.cc
! 7e2d213cb52ed86583b5087c32fe4ef3  libstdc++-v3/testsuite/ext/mt_allocator/tune-3.cc
! 3d48809c980e3d601394dffb4ce1b0eb  libstdc++-v3/testsuite/ext/mt_allocator/tune-4.cc
! a42fd57f9ac8bf6f9b6f2aeda0c29c94  libstdc++-v3/testsuite/ext/mt_allocator/variadic_construct.cc
! 879e9207bb985e8a121f4ac36a1e6c5f  libstdc++-v3/testsuite/ext/new_allocator/89510.cc
! 62d0311fc39ed68cffb26d39d3568184  libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc
! 9667c5183be7c7559fe4a09cdc2e6da1  libstdc++-v3/testsuite/ext/new_allocator/check_deallocate_null.cc
! 23d4cc5e1814b369503ea788708ff223  libstdc++-v3/testsuite/ext/new_allocator/check_delete.cc
! 0395148798bbdc905318c9d9c19858a6  libstdc++-v3/testsuite/ext/new_allocator/check_new.cc
! 994345d8847beb2796c14be77104fe7f  libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc
! 8559917d32dea1a2b97cda7be289dce5  libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc
! 4e8f82843e7d0ce95b5f7503588c18a2  libstdc++-v3/testsuite/ext/new_allocator/eq.cc
! 5d9d2dd96e9a1ee5c4c6f76df6a6fbe5  libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc
! fe1e8e8350a9e6a53c683bdb03a88e87  libstdc++-v3/testsuite/ext/new_allocator/overaligned.cc
! 6f44c8701c801ac4a101543383384fca  libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
! ae979836901da5149b47362e7df02ed9  libstdc++-v3/testsuite/ext/numeric_traits/numeric_traits.cc
! 8e97216cb7f4ad2fb6cd78b97429ada0  libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
! 04dae3932a2e633f16f60121e28a8a5d  libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
! d02c6b4f9e432d16db399a381a042f30  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
! cc319944ca69d5f71219d09f7609adce  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
! cbce2e858d546677335f8ebd1e95a75b  libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
! bc11a62b00681fd89a4f386f9b6c4ad9  libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
! 58d8a7bb83e60969f15c96fbd2732c20  libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
! 241fb08ab916cf2a1b73b74f21a29623  libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
! b3e2bc97bd3f758b415dedb335a85dd9  libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
! 351eeabefb0f2db20a0dab31d51901dd  libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
! c7a168a389a5405e503feca8f68f6ed4  libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
! c1366ca5fc1e558b8d91cc00ca1d8557  libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
! 7946aa16b0b71e56950cece11e598c52  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
! 3eb8c5c9ad1b8b5c7155f57bf826b85c  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
! 54a4a1d78f1e4a2b2d79bcfdb3075733  libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
! e6f5bce490824cc41546de071183ba27  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
! 5df7aae6297fda2e6ad8ee91da38255a  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
! e5c4589b414f6fa4f229577085a4ede1  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
! 689d02ffcf0598540f530e9abd273d8a  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
! 46c004f20b6cb988910d13fba9a171c2  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
! a02ddbee08a9077c0bee8e7dda7b120e  libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
! c39c0cbe0571eee447e36fee588fb686  libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
! 098ced106b1be9385fb49e3cd06c0280  libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
! a474ca8c2f85a7455355dc40055fc3ac  libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
! 1b16b137b06acaaec820f1183218f95d  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
! 0af16653871a03e5c4a2b4d79d87475d  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
! 267c03c5911268bbe72a3410fe450bfa  libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
! aeca82cb7481be5ce095a5c604d2c798  libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
! 87205f7ee9f95465433d0b19269490db  libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
! c90a9c77c710ddfe0a98cf8a9cecaf1c  libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
! 59f44ca25f9d3279e738d9ba969d0583  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand.cc
! ca603ef4e2cc39a2a328c1d9a7a40e65  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand_debug.cc
! bb78294e1f4f92dfb7b494c3d6ccc323  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand.cc
! f01eacc5b9b11d05f89cb7050b417226  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand_debug.cc
! e058eadb11b8010a58bd888eb20d4d47  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand.cc
! 55cc51b33158d1442d8ceff36611c7bd  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand_debug.cc
! bda6a397fb0607856e67debefd2c7890  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand.cc
! 18af3a162bfc926628eb016ee2f0120d  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand_debug.cc
! a4f4953bcfd5ea3b3e527d8f5628e0ed  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc
! 10a3452e0a1f7ade2ede65406d22fdef  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
! 6f070c997ce1f65be1587c4e3e858f27  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
! c26aef2bdc130503bd1f21e1f64da585  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
! bb4c312d4ac5e768b37ec7eeb8870d0b  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand.cc
! 3d169aed395467fc171ff66dffc18a61  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc
! facd08d6833aea9f92c1199b0be54fcb  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand.cc
! aff170e9fe63523e4971baa06e56f72e  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc
! a7ff7babf27761d8b8eaef5fd7fb974e  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand.cc
! 09b01da70f0967c3c2c8dd8193a98795  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand_debug.cc
! 118b4bd8a2f0b491a0cdea2504d8a36d  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand.cc
! e793af8be1e6b5643ccab0817849406a  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand_debug.cc
! 3504a4116e3dc30797038bc170c218c3  libstdc++-v3/testsuite/ext/pod_char_traits.cc
! 7471b9525d6e9e106d27e1f3e70420e7  libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc
! e81821fe7a5b72d3ff781edac832ebcf  libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc
! c745cecaf7a49cbcb21f982d4991b7e8  libstdc++-v3/testsuite/ext/pool_allocator/check_deallocate_null.cc
! 60ad9dcd6c215a825df74a969b4c1b25  libstdc++-v3/testsuite/ext/pool_allocator/check_delete.cc
! fb7cc798f4ca09d11e2ec35f5d556231  libstdc++-v3/testsuite/ext/pool_allocator/check_new.cc
! 2c224f0ffd8727224ea2cbf4aab6c928  libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
! 9d7951ed2db5344bdd0b03d3e172699e  libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc
! aec01843872907efbb3181cfd7d5de51  libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc
! a642a5c7a677bfcc748dea3135ec2b02  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc
! 3b6c425a637b4865fa46c9d8e5441868  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/parms.cc
! 564df44a6e20309f8a7adc461170e2e2  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/equal.cc
! f9b4ffcd4231745d101c56d00ce814bb  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/inequal.cc
! a5f4b86fa99cc714cbb9c9c7d4cd1ea5  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/serialize.cc
! f5f1005f88f76a1ed7aff525ba99abb0  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/explicit_instantiation/1.cc
! 4602ba82ea330496a66b8498e2fdd07c  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/typedefs.cc
! d9c10a7fa6d95b48a0f3fe97fb093b83  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc
! 5e8f63719376a27feda9552bba59a318  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/parms.cc
! b6a17f8d5684117eab92847d309994fa  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/equal.cc
! a8be5960fd95363ada8bbdd788cf5d0f  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/inequal.cc
! da1fee241531c3a7625a75b2974069d5  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/serialize.cc
! dcd1de7af27c979fe14afe54123604ac  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/explicit_instantiation/1.cc
! 78d2c05a7fbb387a788522007fa3ab39  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/typedefs.cc
! 3f6e5cacf60e9876221e51d80e618582  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc
! 56134920d538f0192a4f03d668854057  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc
! 8d3d2b0ab619ca9a0cdd1e73f0e23a73  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/equal.cc
! 773f1304179e1da7f7620f62b92edbae  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/inequal.cc
! 6291bb91435ef56ecf28470467c748f8  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/serialize.cc
! c50343b44970e5eb2c3a49e7fda0be38  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/explicit_instantiation/1.cc
! a55e96ededdc89c7c7cd7d73c10a24cc  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/typedefs.cc
! 512cf7247c5fa90ef6ef1edf44c70327  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc
! 13528d84ad5ca3a4fb75da26c2badc36  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/parms.cc
! b8a5e18783d218a747a305407c1c44d0  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/equal.cc
! 30ea2ab6230c3ca2d05ca4b2a93a99a1  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/inequal.cc
! 0010cfe7446f36db97e7351aea5eabcf  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc
! 70ed16a671842b47b682fae318007910  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/values.cc
  5310d63384a16aab3ca0056f2cb3b3dc  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/pr60037.cc
! 64a66ed50873117adb4d655f33c28656  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/explicit_instantiation/1.cc
! 80de57cea21dbc61f967cea20c6cce48  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/typedefs.cc
! 29324da283daed316ebe6e5ef7438522  libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc
! d53be86813ce306470f0d8772394cf46  libstdc++-v3/testsuite/ext/random/k_distribution/cons/parms.cc
! 0015ae9652e0647e328f4bd4f852ea7c  libstdc++-v3/testsuite/ext/random/k_distribution/operators/equal.cc
! 3af613e7e94391cc22296515fbee0351  libstdc++-v3/testsuite/ext/random/k_distribution/operators/inequal.cc
! 1e2e5fa980c63a2ac20ad7458edcc319  libstdc++-v3/testsuite/ext/random/k_distribution/operators/serialize.cc
! 60203dfce44791d9c0c9b4391b6edffd  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/explicit_instantiation/1.cc
! 78e2100778c92b7fbc0fe08e5e4c24f4  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/typedefs.cc
! f5cb10b9175e4c2a608a55214a020975  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc
! fd493884bb18f04b4d4ea5d1f514c4cb  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/parms.cc
! de4b1e72b08dee044365748b20068e8e  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/equal.cc
! a22cacfb6599439de96da2ea0d381421  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/inequal.cc
! 4fa62e905479e882c81a22a77e00cbac  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/serialize.cc
! 58148d8b72dff243b9806ace820c635b  libstdc++-v3/testsuite/ext/random/logistic_distribution/requirements/typedefs.cc
! be2591854dee0d1014eb76b15beebe5a  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
! 525432eaf118fb420b57cb278bd9245d  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
! 5473a3c6890cedc2b7ef53cc26dd8e74  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
! d9b44dfa68d385c0edfc568828ad7136  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
! 1b30948bd7f0dfe4f1a76f6505ba51a0  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
! a486a43ded39c7f96a15d4b2c969ea1e  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
! f2cd4e58a2f51851ec932ef40dfa8d8c  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
! e3fd1e2788207c2a3b52fca32829bd8f  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
! 84cf128395203f8274d2aaf0ef8ec7ea  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
! 7f3035ac75deac7fefa78aa6e6061a86  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/equal.cc
! 5abccec85ddfa1ae2182083b0851a5ea  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/inequal.cc
! 23f66444fb5d63eccda525798066a25e  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/serialize.cc
! 9be5239903cea70ae83ca4e7ee8c0b9c  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/explicit_instantiation/1.cc
! 0365d1332c40f48da7b44ab055e893a3  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/typedefs.cc
! 410ac5bbd6be317a38793ed9acc0de57  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
! 6d0a3cb701a78d79e2a233399047bd25  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
! 7625ec1ee2cc837f59ede659c6b045dc  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
! 08c8e9350c05ef09c4ffaab721b88417  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
! 2ac2355d70f952c90751e875147d3dd7  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
! 552433f4a1174a582f0867b158520b20  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
! 2bb0b7a39c3997ba7118942f5de0ad7b  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
! 1ce554f22c7e28aae7b1b482f718d5ca  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc
! 97f6a7589294bbedc573f9d2bd313de6  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/parms.cc
! 85100fc5db388d5534e2658b03fc6b4b  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/equal.cc
! 8683a0d31ca568b2731d7e5a198d8d34  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/inequal.cc
! 68f018fd847dc1f2c646dbc0e229b39f  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/serialize.cc
! eb2735aca5a41f8fa5beb07765476d38  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/explicit_instantiation/1.cc
! 7fe625b89ffeb27e3658f435e7707072  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/typedefs.cc
! 7dbab6a58d7faa37cb18a8335ca392ce  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/copy.cc
! 4a431354fbdcb1ccfd09ad5c31887931  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/default.cc
! fcef46197aeb38e4d51e098af1304809  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed1.cc
! a404cd61e06595b6d769853fd5fa1d58  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed2.cc
! 4f25c7a576e9026ab56edf70c5158126  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq.cc
! 1ac49e47513623f8051d9a574929474f  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc
! 9d35a3c2e6a0cc8032bff619887797a1  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/equal.cc
! cc4220724d9e9a5b40d373197330ba11  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/inequal.cc
! bd83a1b14b84e8dc4f1f0a1b8f7e93a2  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
! 9e6a03329f4aa665fe82d1ebbc9a6916  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
! f4911c3c5a88a9dd84fcb54e6c95b4df  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
! f2b3326166686d1e9dceaaf8977ed263  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
! cf99a379ac39f73918ced86aec870a1e  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
! 38ecbc3b689ed6e7a9ac0ae3bfb37e75  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
! f78cc6869c6d37d6a2a9f344f590ad1d  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
! 336969c9acabfa5fbc66042961d0e490  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
! bd870f26b2a7da51a412d30164e05f5e  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc
! ad0776d748a1e46cc877726ef43a143a  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/parms.cc
! cf6793e9b2f647d153a67ff98d92c0f9  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/equal.cc
! 4b97af6886780b82c56195750eba7182  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/generate.cc
! 9cbd15226cf7302c1094512066451fbf  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/inequal.cc
! e7b67e98184a2905384fd462fe6cd7af  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/serialize.cc
! de6dd9964a61dd3949eeed4211fab81b  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc
! 4b6b2c9475a7262af1c895a534ae1808  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/equal.cc
! e4bd399b2d0498851a17cc2805596aa3  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/generate.cc
! 63f3af3c0dd6233111560a82516172a9  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/inequal.cc
! 0724282c491ee8f1b72c1e110628a591  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/serialize.cc
! c96482bff1b9b51984a4e7818825baa1  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
! 06548a0e03816c23dd81dd7d795ed149  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
! a162e32104692dea1546b7e9a4efae45  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
! ea5d9790b07c2490cca1f9a8a6c490d9  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
! 3f76c451f20ff3564dd14bee7f4b6631  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
! 9a2beefc78311f85a4857f5537697912  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
! 079e5b353d7cc4558ae99eb0f952b3ef  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
! 9567c37a5033f1c7abaf9af48be82d6c  libstdc++-v3/testsuite/ext/rope/1.cc
  4b4043d9b7ee0d0043f2c34bac5eae23  libstdc++-v3/testsuite/ext/rope/101542.cc
! 7ebdc217cd04274f0b826f30f96bd6a7  libstdc++-v3/testsuite/ext/rope/2.cc
! 559e93dc075e81158577adaafc95654f  libstdc++-v3/testsuite/ext/rope/3.cc
! a04d68799bea75cc102544138e84b3c6  libstdc++-v3/testsuite/ext/rope/36832.cc
! 30961f0db997428862c62c351add3f39  libstdc++-v3/testsuite/ext/rope/4.cc
! 06e8914c2ec679f6c15cc72ccf541e49  libstdc++-v3/testsuite/ext/rope/40299.cc
! a408a75a2df7df8c995d80ad78b73630  libstdc++-v3/testsuite/ext/rope/44708.cc
! 48571103e05358c14afb31b2197d5f47  libstdc++-v3/testsuite/ext/rope/44963.cc
! 321eddc462b0c56d3cfea8d176bcf55d  libstdc++-v3/testsuite/ext/rope/5.cc
! 801bffc103d381ec2dd65c6a3fc11357  libstdc++-v3/testsuite/ext/rope/6.cc
! 102626005f64e7cf528bb5e7415c9608  libstdc++-v3/testsuite/ext/rope/61946.cc
! 38daacbd3b444fb9fc043a4d6bb7b7c8  libstdc++-v3/testsuite/ext/rope/7.cc
! 255f96c9e2c360a037bf648dbd63b5e2  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
! fa4e4b98c8f8635456c592adc18c413f  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
! 2ee5089d1adf347b33ed84d6876ad9ba  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
! 6ab4f41a954e390a433eb318844f4dd4  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
! 96e8f13a87f1080b06b8cceecc8e3957  libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
! 0bd8c9325568334f8d9fc07f26efd7e2  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_nan.cc
! 0d11760c0805130c535968c3908f661e  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_value.cc
! 24952700fbd596befd020d37b5730395  libstdc++-v3/testsuite/ext/special_functions/airy_ai/compile.cc
! a4171b6952dc603715b9a58f91fe6175  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_nan.cc
! 2c94e7fdbbb620a557867364b59e664b  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_value.cc
! 52e41cc9f919354e1dedd76f7e3ea7aa  libstdc++-v3/testsuite/ext/special_functions/airy_bi/compile.cc
! 971a06f5b724952f7de0278afc47eef0  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_nan.cc
! 97bb8e2ce2328e98630ffeaf14cabe5b  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
! 87b1def64f5d3a7a5867608101e82442  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/compile.cc
! 38c071ef00474085bcca9b6b8a263baf  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_nan.cc
! bd764c83e80c9baa2db8c0d968c95177  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_value.cc
! 728ad1e387f396e909e9b047ce3d1032  libstdc++-v3/testsuite/ext/special_functions/hyperg/compile.cc
! 11bb3602d16ddaf60f7a38510179a45f  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc
! a254b71df9850741d8925557f35d2c06  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc
! bad5fd0f935ace4be4abc86dad7bef21  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-3.cc
! ff2324a9f0e15e034add47ada12408b7  libstdc++-v3/testsuite/ext/stdio_filebuf/char/2.cc
! cbf453023907fbfa008045a0d8a720c4  libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
! 175f0fd615a7510aa4004cd5a256379e  libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
! 811e03e59cf6ef719d743dc037d4a5ab  libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
! 921ee50fc8b32fd97cd8daaa05f02708  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc
! 1be8de5dd13e85af2f6b66f25cb4b73b  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-1.cc
! e38d762c54628fd94937ee762e6aaf8d  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-2.cc
! cda4b20a73e00895adea2191964f0915  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-3.cc
! 62203c988cd6e9e3c11b9ad84433675f  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-4.cc
! 53773dca7661d6f06ba80b5cf18deeff  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc
! 3a61280d67dcd3e1b42bc2f8a5a0ae19  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc
! 13761110c2e06e172dbec5dd3760846a  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc
! b9b3ccadef0aa603b846bf827c6e0f34  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc
! 6282dd43698256738de6209a0085508c  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc
! b484e787c659d80b214db0c898f7b59f  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc
! c00b87e4e010e09ddb8ffe565dfc1f98  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc
! e6d6f8c4daaff462a88744297b82fe8a  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc
! a5e429fb44ee13b52342cf13cce24ed1  libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
! 2a058108285c09764ed5c5f3481162f7  libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
! 2c4ee83ec4ace6c2e4598bf3da119489  libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
! a3fff55139d280b5cd88544f3e6516b6  libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
! a99cdbb004a7160b08cad56e026b0409  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
! d065ff0b669c9ba726ca78951405b95a  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
! 2ddfda9c3f157467f64fed5fea0bfa52  libstdc++-v3/testsuite/ext/throw_allocator/explicit_instantiation.cc
! cfb4ea771a52329bef7c19448aa19a32  libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
! d2cea67281ad098f60ce1bd9f3e180d5  libstdc++-v3/testsuite/ext/throw_value/cons.cc
! 6ad1f36ab828fc59f52ca2832c35fd02  libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
! 499189c7ea9e5d7549b548fcc3c1f4d1  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
! c417980f489298d06ca723bc9c6e180b  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
! 1cb245fbada12c357eadd7ef00e88053  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
! d00c0a73fcb76116eb1807c0bf0bd1aa  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
! 358ff3226e7048fbeca18ab399b37818  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
  53e931d667b5351e2c83d9753880deca  libstdc++-v3/testsuite/ext/unicode/charset_alias_match.cc
  21033b8a9d07ff00d54806ae81ae7b35  libstdc++-v3/testsuite/ext/unicode/grapheme_view.cc
! 49e64e150a28ed6d9c582912bd617a78  libstdc++-v3/testsuite/ext/unicode/properties.cc
  eb379d71e3596cc2e06b1156ee0ca92e  libstdc++-v3/testsuite/ext/unicode/view.cc
! 884670ca6489dae936f917510c2e840b  libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
! b313e3bec63f292be9c30fcc7790f481  libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
! 410d09d60ff6b38ec38827554c00a82f  libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
! dd30165a2eca7445344116d1d67adbb8  libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
! 721535a37a7fe7c3b7564fd139f2fedd  libstdc++-v3/testsuite/ext/vstring/cons/moveable.cc
! d8db9652f1d49df389281bdbbf1638ef  libstdc++-v3/testsuite/ext/vstring/cons/noexcept_move_construct.cc
! ca3b77f1179b470277904460fdfaa89c  libstdc++-v3/testsuite/ext/vstring/element_access/char/58163.cc
! ba25ac99859dade59acb29c6861a097c  libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
! 24bd62080f5efe1df19ea0cedec01d6a  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/58163.cc
! 6f661722830549daf29f3c923af47612  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
! c35b5163c84f11fb21475c6dfefa5074  libstdc++-v3/testsuite/ext/vstring/hash/char/1.cc
! 837559e9f5c35daa9ee87a2350f23133  libstdc++-v3/testsuite/ext/vstring/hash/wchar_t/1.cc
! bc72f22cdda8f020995cbba41e65a7af  libstdc++-v3/testsuite/ext/vstring/init-list.cc
! c1d318771ec31e741c7dcfbbd4644a09  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/char/28277.cc
! 71267edf3a8b6c5a1f3caa75f064fbc2  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc
! 369d160fa08eb742e69099f53139ab3d  libstdc++-v3/testsuite/ext/vstring/modifiers/assign/move_assign.cc
! ceefc2e8b36b0468bdbb2f54bcaecb73  libstdc++-v3/testsuite/ext/vstring/modifiers/clear/56166.cc
! ccb64454a09cad4f0f0085f86c73523d  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/char/54577.cc
! 098f761413d78dc427a1311c2bdd074a  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/wchar_t/54577.cc
! 2584c7ca4e8f4e8ca84e43aa6448fb47  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc
! 3f1e4f12db5fc321937de88b48f3eb24  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc
! 894feaef455b54be90d57560922b7dbb  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/char/1.cc
! 3b83536a3d8ca1674d2c50607353746e  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc
! b27a3a07e4a706e7f44efa70685572e0  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc
! 7322d4cce17f1c16564b9bd700e134a1  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc
! 3c2f9e335435f35387b20e8ddfa69b75  libstdc++-v3/testsuite/ext/vstring/operators/1.cc
! 42832be936734dc7f65590b01d918786  libstdc++-v3/testsuite/ext/vstring/operators/2.cc
! 0f8ed8678aee462fd75805dd4391572c  libstdc++-v3/testsuite/ext/vstring/range_access.cc
! badafdd378eb59850317d52fbf30dd0e  libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
! 8b0b0310f6f3b318d1ae3a50f6e2f5cb  libstdc++-v3/testsuite/ext/vstring/requirements/do_the_right_thing.cc
! 9a658f29423f7a0456a42ce3f55d978b  libstdc++-v3/testsuite/ext/vstring/requirements/dr438/constructor.cc
! b942785439e0bded50423b8122060ffa  libstdc++-v3/testsuite/ext/vstring/requirements/exception/basic.cc
! d4457edf2d828dfa43b794d9e6371a61  libstdc++-v3/testsuite/ext/vstring/requirements/exception/generation_prohibited.cc
! 0efa160e5fc95cc1fbcd890601292bee  libstdc++-v3/testsuite/ext/vstring/requirements/exception/propagation_consistent.cc
! 39d9809fae968cacfa9aecc87463d5b3  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
! 50b6c01de61f0be7b9bdd467496d11d7  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
! 9da5acff05cce8b44eff047ad329563d  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
! b355773cc82e0e5036bba347dfda1d0d  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
! 0bccd3a75b6a4c260ffd4448b381336c  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
! 25c52ea03707db6a14d1c247bf5b2265  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
! a6b263685ef489371877099687c56a81  libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc
! 0994b0bdd099a3dda63f7e4a254f28e5  libstdc++-v3/testsuite/ext/vstring/types/23767.cc
! 1cbf73e75666c657e4aa45990e6aeb03  libstdc++-v3/testsuite/lib/dg-options.exp
! a974a2ccf1152b37304e5b3202056ace  libstdc++-v3/testsuite/lib/gdb-test.exp
! c613a4d5c16f2472c89dc9d1177ec69b  libstdc++-v3/testsuite/lib/libstdc++.exp
! c0b950f007edf56d206dbb862b081279  libstdc++-v3/testsuite/lib/prune.exp
! 33e43b63e93544d8165fe54e55d40041  libstdc++-v3/testsuite/libstdc++-abi/abi.exp
! c7b1096d1cba1418bd68c171b66a64eb  libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
! afa76efb2823a3336711424b15136bce  libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc
! 516836cfa1707508d663c5d9efd4c316  libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc
! a6d90611d135b306c328b156ea41939e  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
! 029254469ea4c75153c5960d6f10cf84  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
  d7c372bf46cc2da8c3399d8fdc2381dc  libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
! 191c1e9a3ce18cce6b695d0c408a8418  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! de57040ae80a6bea324a98397b0160ff  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
! 70e89a62818112cf09fcf3e778021f50  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! dca0adf1fa8e36ab686b1de723da2e61  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
! 8a6dd22eeb18b4fcaf6e2a7c500aa7f8  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
! f23cb95a2abc96e1a141528a64b4ee2c  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
! 4c14b1ea2781eef7175d96768cc6c76c  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
! 30f1c909da695a3cee88bf762f833e61  libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
  6a9ac7f69736076c75da48c32d9d24b2  libstdc++-v3/testsuite/libstdc++-prettyprinters/locale.cc
! ddb4b2ac62d1ef33e6f3329545c98e58  libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
! fc69e70d0015cbf9affb5d9bb20a20bb  libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc
! dcc63b27e0d9554ce26b11c24bdec8e9  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
! eaf96d48833e8d6690defa87377ea10f  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
! ec45c98b37a962f79b388ebee0f4f272  libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc
! b14883cd5ffab4d0b05f94980ccf4977  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc
! 9513ddadd4f44bb2db19879ac9d91a3f  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc
! 50075a2899a8f471e59e9b3755bc9926  libstdc++-v3/testsuite/libstdc++-xmethods/array.cc
! 8711ba52750daa66337e85f2b9a4aa24  libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc
! 620c6179800c0aaf86b0f1d0a33da58d  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
! fb92280e98c19944d88abf98c670004f  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
! 099f23559825e4175e1521e3e0d6cbb2  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 4dd94eb9dc12d18f3c12b624574c34b2  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
! ae9c3d5f426eb76377f2638ef8e5e459  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
! 2ff467dc107e7217e842813a64541994  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
! 175b5ada4bff556e1b6dccbcb2a5781f  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
! b820b00ba5cbe4223008917eaf7e1778  libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc
! 27f130d2574bb727c14bde65db14c95a  libstdc++-v3/testsuite/performance/21_strings/append-1.cc
! f8d8bafca367c024c0ce321c899a5739  libstdc++-v3/testsuite/performance/21_strings/append-2.cc
! 2ad36a08174b767b0bfe75c19740d115  libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
! 1c7f03b1d79377f1bed92f4284ff7120  libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
! 118a2b07e13103696ff30c2653b0d673  libstdc++-v3/testsuite/performance/21_strings/find.cc
  efa1608e1841a10bba94a6d4de361846  libstdc++-v3/testsuite/performance/21_strings/hash.cc
! 7019cb545cf9b925b5eb2f3e3df76dc1  libstdc++-v3/testsuite/performance/22_locale/is_wchar_t.cc
! f72647b093a7f62d20bd73755158eeab  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_char.cc
! 4efa4f2c418bb2c4972db82b7ca52f9d  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_wchar_t.cc
! edfa1f756aef0e1a40b08b653a752611  libstdc++-v3/testsuite/performance/22_locale/wchar_t_in.cc
! 13d5760dc402ad1c740443beed54a394  libstdc++-v3/testsuite/performance/22_locale/wchar_t_length.cc
! 94fd41e70240560609a04f66ada41e47  libstdc++-v3/testsuite/performance/22_locale/wchar_t_out.cc
! 2e07c67477be783fe75bec2ca5edf971  libstdc++-v3/testsuite/performance/23_containers/copy_construct/unordered_set.cc
! a4bb988532656d9e89392f85c5630e09  libstdc++-v3/testsuite/performance/23_containers/copy_construct/vector_bool.cc
! 13f104f94ce21cd614d260ee2e0bfd8d  libstdc++-v3/testsuite/performance/23_containers/create/map.cc
! 57d3222b86091d268b3de9909015de7c  libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
! 7549a8e251386d56693bbb93a4079df2  libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
! 23eb42bf8dd03185936a22857880d9a7  libstdc++-v3/testsuite/performance/23_containers/find/map.cc
! 050cf038721f8cd847dc33fb345ce51d  libstdc++-v3/testsuite/performance/23_containers/index/map.cc
! 14db8872a22a6e83bb38e3c9a6e7fa08  libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc
! 810eb5714f7aaf5ea35be44c569712cc  libstdc++-v3/testsuite/performance/23_containers/insert/81476.cc
! 362a32d7ffcb6c9f401811652e5a0def  libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
! cd6922c5113252aba9c4116b309abb7d  libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
! aeda0f943d348e91a401c89aa0654fb4  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
! 3f5365408a1fb692e7cbe4c89d54fb79  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc
! e0af0d24af407996cc06759ae4f0268c  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set.cc
  d2d15ac0b6856da21290a976e7d429ce  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_hint.cc
  7e3d3c58207071b4938472807b23589a  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_range_insert.cc
! e04292c00467864b2f41dcc66ebe2823  libstdc++-v3/testsuite/performance/23_containers/insert_erase/41975.cc
! 4223d32a9e8a53d024c742392b2d060e  libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
! 46d995534e84f457188bf54777ed536e  libstdc++-v3/testsuite/performance/23_containers/insert_erase/unordered_small_size.cc
! 64085ef2662927bdf92eb6ec81b6f15c  libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
! a2feb0d4188822f2c7fecc640c2de5a0  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
! 7578df6cbe7102579ba36cefb4142ac5  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
! 9ac45454a24cc9ab6481cc7eff5ae242  libstdc++-v3/testsuite/performance/23_containers/range_construct/deque_construct.cc
! d860508e08a414ec1460e80180e40393  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct1.cc
! ef2f4e85b3f385730ab4bd1fad98ccab  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
! aa50ec94a0aa77a0703874fe58208719  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
! 5aebf4bc3a180504c2fa2e43e74dd6d6  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! 9a2163e6878e3e22225129681ca96a75  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
! 6a6944457d6145fee939caa81a0bf393  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! 824f5174ad4f4597cb17e7b0af108f7c  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
! 6c237c6ab42e10e29629ddec6e8f7325  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
! d02f1d737a7f2c7fafab78435fa78e93  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
! ff3f9bba9ccad4d1fc7a866b7a751251  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
! 075844d01b94cfd34e1708cab1e2f312  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! ee0e492f7b0b50118dbda480520c67c1  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
! e3d7908e495b67a7f37be76db8ed2169  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
! aef4f91004ab79c0eddaf5c332c6d491  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
! 7f064f37490bfa8d7841ad0fffb3de89  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
! b2a6019b24a7b66e2e144b179e215ee8  libstdc++-v3/testsuite/performance/26_numerics/complex_norm.cc
! 38f50d3d178cd325e18af2c468765e7e  libstdc++-v3/testsuite/performance/26_numerics/random_dist.cc
! 84442969e2dd8871dd50800d4e5b39d6  libstdc++-v3/testsuite/performance/26_numerics/valarray_gslice_to_index.cc
! 1126047a2bb2c080e088cfea5c30c12d  libstdc++-v3/testsuite/performance/27_io/cout_insert_int.cc
! 30e69db756d8a85d2eab174f6ef8194c  libstdc++-v3/testsuite/performance/27_io/filebuf_copy.cc
! 47a72a5675406f20a63ede7c3fde41ff  libstdc++-v3/testsuite/performance/27_io/filebuf_sgetn_unbuf.cc
! 55af4fa0f69e583dd25c23b182b0048f  libstdc++-v3/testsuite/performance/27_io/filebuf_sputc.cc
! 93675fac8337a14508afb3e8873256f6  libstdc++-v3/testsuite/performance/27_io/filebuf_sputn_unbuf.cc
! cc37e56c7a56fdae9e0fbad4f62f7cb3  libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc
! c0ae1f3adb432f342f9569b2c6cd4450  libstdc++-v3/testsuite/performance/27_io/fstream_seek_write.cc
! 2dcf90f2c71c4a578b7324f1ebd55298  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_chars.cc
! 346b4cbdee33cd075bda8579849a4ab1  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc
! 6d691609c840c57fd01c0e3ed0076be3  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_int.cc
! 99d47a460c7bbac3c1d91cc2ff32a479  libstdc++-v3/testsuite/performance/27_io/ifstream_getline-2.cc
! c2897a1e02c3bb6daeccd2f40b937ef3  libstdc++-v3/testsuite/performance/27_io/ifstream_getline.cc
! 20137c8f945407eb8f45814db5128e36  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_float.cc
! f0a7dcc67130d0d97e323f176e233916  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc
! 0fc636510b601157d98523be88404ef2  libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc
! 8b0596080507da2a7fcdead947bd7297  libstdc++-v3/testsuite/performance/28_regex/range.cc
! 2b3c9fc1436c604df962f2675247934e  libstdc++-v3/testsuite/performance/28_regex/split.cc
! a9a6ec4b60e850451dcffcc0107e0a9d  libstdc++-v3/testsuite/performance/28_regex/split.h
! 4a80fb718073139918433486f7001258  libstdc++-v3/testsuite/performance/28_regex/split_bfs.cc
! 286bf2e177ee319491f837e014af8303  libstdc++-v3/testsuite/performance/29_atomics/atomic_flag.cc
! ec65b8a1a5c482fa0539090c02d16ec5  libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
! 31a9b758ab6165a6c2900535a7c8fb6d  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_find.cc
! cbf7e9703dad42eaf2041881301d1f07  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_find.cc
! ffe5b4e1981b7b9d34817a921932cf76  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_insert.cc
! d4d60a32c471e76b8e8a76460d0943bd  libstdc++-v3/testsuite/performance/ext/pb_ds/all_text_find.cc
! c180dfd388e5942b60b947919b4e7307  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc
! 2d106fb005d9608ed4390bc898ad9bf3  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_int_find.cc
! 4cf11d36536c193faaa1d0fc45769ff7  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find.hpp
! ea2c15f7a506b255b8d33bea68832c19  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_large.cc
! 59e4676a2944e93bdf9c2c9cfa49efa3  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_small.cc
! 0cc5c02d680b4e3be5df6c6dc6183ac6  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert.hpp
! 2c6e0cb1666ab2fb574fdc1bb3ab833c  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_large.cc
! bd14175b5c17fbbc0018597971a2d178  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp
! 5091a8295d9c7c0f4071dc88960e4136  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_large.cc
! e8c3c9bac47a34967e493d412b33b56b  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_small.cc
! f502a9054322f333874ca28e236fae24  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_small.cc
! 30b8c6e14f742ffffb5ebbdeba757868  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push.cc
! 03869cef82b101407afeec3d79eb7abd  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push_pop.cc
! 2feac670eabb2b8f870fc8d6ea30fc80  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join.cc
! 7f6d1275e7c18c051528b13300b6d009  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp
! c444ab2c2f0103bceefa9a7444718f2d  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down.cc
! 8ee683b23b4cfb06c8dfdf0ac1d6a90b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up.cc
! 44ee1fbba73cf58493e30d48dc036304  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc
! 2350312e485e6cacc070ff2a31027242  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push.cc
! 7e595bfbabc1fa0fbec6c630faca5a6f  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc
! 32e788316b713107f320495561de0efb  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics.cc
! 2de24790d0c520d34ab346b486e4b76f  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join.cc
! b33c4ae16d1b60c561a1164e6f3b7fa5  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert.cc
! 0e3743945e8aae1bf3dea785d39f9096  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find.cc
! 136b0fddb33dd722bfa9ba61352b8ae8  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_nan.cc
! 42cb1464d83365b9c0dc015bb30f596b  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_value.cc
! b4608f87b61b6cb60ba6833916a7cfaa  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile.cc
! 01856fc91b73dab39b232eb48d6de4a3  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile_2.cc
! 94576b7c648142104d017d57bdaa62bf  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_nan.cc
! be18226f81f7ef08eab15f3eb4448e35  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
! 0f6cff3305de7c2011680fb1b9fab310  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile.cc
! c0aca6dab47cf90820046b24076f62b5  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile_2.cc
! 3e9801255b02ff9cf600c9954cbb16b3  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/pr86655.cc
! 727945333cfac8d73b637dcac2a79fa9  libstdc++-v3/testsuite/special_functions/03_beta/check_nan.cc
! 04df3b664cb4a6d29cbf75e3085bae50  libstdc++-v3/testsuite/special_functions/03_beta/check_value.cc
! e67a716f9a63667852e88b4b593e5096  libstdc++-v3/testsuite/special_functions/03_beta/compile.cc
! 061a2f3eccd400d4c30356d45cdabe7d  libstdc++-v3/testsuite/special_functions/03_beta/compile_2.cc
! ddad496fa60c33be017a496daf51d47b  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_nan.cc
! b85c7d97ac9033e6d56182f9095f686e  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_value.cc
! 7b0c39a174ac374ae7a1bd52fff46819  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile.cc
! 3ff494321644d0cba65fee6be221df6f  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile_2.cc
! 7aad9c3d2a1bb6f2d3eec291d71e0b31  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_nan.cc
! 6b6b1eb55676082e101b70aab0dea35e  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_value.cc
! a8819b8a2cd45be6f579dbcb2900b610  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile.cc
! 6a0a7bc40eaab918c917a3cd3c82684f  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile_2.cc
! bd8d79afa228e6f6a638746dcd682172  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_nan.cc
! 1c5930e495da450795f505b41587a09f  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_value.cc
! 33dd4cb9b4493c6aa32e8161ef48df8a  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile.cc
! 7ff01b869267667540d811f76020ee0b  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile_2.cc
  d40969d8e7a8973cde9b227f9ce95961  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/pr66689.cc
! bc72b408d4a9fa37a6ffd64f22728c75  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_nan.cc
! 8268f8b53a6f220e7f6fea6896aece7d  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_value.cc
! ca0816827d7b5d5f78f79c131c118889  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile.cc
! 2a0ccbc101f3e2229c571f64e8faed15  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile_2.cc
! 464b9c2119b9a3c7da2aca208818c540  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/pr56216.cc
! 9381287440a416fad72936cc045ee8cf  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_nan.cc
! aa439f6e2740f6918654b8e7d0d8cb54  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
! ded6518481dcb19014a3011ead3702ed  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile.cc
! 92a7b20905f10a638105d2bc017d1154  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile_2.cc
! 488490c53b1c32e73c94c049532009cd  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_nan.cc
! 15595ca639d6580901d81686adf4ffeb  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_value.cc
! f2bb9766f85b88e1e3ac2202922a44cf  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile.cc
! bc15b5a1b2cec6c204eb269f66b418ce  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile_2.cc
! 9cc4cc77890fb416088ef1c01d5e6962  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_nan.cc
! 6bf18d87f20195755ce94bb4b5ae6d79  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
! 198f1c7d481d70206119c45407ef9e2e  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
! a6bcd482522b01638cc225a42ba90f24  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
! 08a3bd501d27e1b855828b6e52f9cd1b  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
! 5a95c143c53f18fd2f2f5e94d8185a6f  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
! af4dadd050d97629e98aa4bc19e0d940  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
! 4b2d859c8f5c25f4dd1f65495ee7dc9a  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
! 60de0983a880dfe14f5f3b6d8b36642e  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
! 503cb1f7ab13430ae8fd930a6e29376f  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
! 86ab73f3d1e456ed8315ba89c5e326ab  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
! 2b652b796dde56108c6abc20b0b9a304  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
! 5746a0749df4f950a30e76c0d78e5c23  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
! 3d2629df9b18fd65e0e626e6417a142b  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
! b5152c30c9293d7bb73bce5ff903960f  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
! 2e38a671e08330209c8b044dde513e97  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile_2.cc
  51586062b3eeaebd7af37c198695dc60  libstdc++-v3/testsuite/special_functions/13_ellint_3/pr66689.cc
! 3c7f388dbe79cd24ee97ea182e2805e7  libstdc++-v3/testsuite/special_functions/14_expint/check_nan.cc
! db84dd5cc4577616fb0ee3fcab2f7a56  libstdc++-v3/testsuite/special_functions/14_expint/check_value.cc
! 3ff8b074b972818e2d04bafb624164e5  libstdc++-v3/testsuite/special_functions/14_expint/compile.cc
! 549c4066a0ff68ebcf63b59918394810  libstdc++-v3/testsuite/special_functions/14_expint/compile_2.cc
! 1c60310d46c7a1010cf65ad821856afe  libstdc++-v3/testsuite/special_functions/14_expint/pr68397.cc
! 3d98d83f815403cd503a34c186cdbd9d  libstdc++-v3/testsuite/special_functions/15_hermite/check_nan.cc
! e87744f52fa9fe8526a2f0956fd0118d  libstdc++-v3/testsuite/special_functions/15_hermite/check_value.cc
! 2a6ec898e1d8bb772ad5fd73585e58ab  libstdc++-v3/testsuite/special_functions/15_hermite/compile.cc
! a53d826325006320da29a1fb44638640  libstdc++-v3/testsuite/special_functions/15_hermite/compile_2.cc
! 606cb587cd2747ccec156b76a7a529b6  libstdc++-v3/testsuite/special_functions/16_laguerre/check_nan.cc
! 097647df6045486c7eeea1ec87434b06  libstdc++-v3/testsuite/special_functions/16_laguerre/check_value.cc
! e00f99e68cd521e183837b04810c0ae4  libstdc++-v3/testsuite/special_functions/16_laguerre/compile.cc
! 1718a3b472a3939850ad65d29faa6e60  libstdc++-v3/testsuite/special_functions/16_laguerre/compile_2.cc
! 109207d01e2c45de9699c967bc417564  libstdc++-v3/testsuite/special_functions/17_legendre/check_nan.cc
! 06848787bfa5a4e6d0f6dfb9f45f7b29  libstdc++-v3/testsuite/special_functions/17_legendre/check_value.cc
! f6bc661b70f618a5b89394b21ef6d609  libstdc++-v3/testsuite/special_functions/17_legendre/compile.cc
! 716861be5d927aed4641bb40f655aef4  libstdc++-v3/testsuite/special_functions/17_legendre/compile_2.cc
! 1d86d7514fa1b2355749601498036df7  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_nan.cc
! d7ea70a54a47ed0907cc056f7ee02645  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_value.cc
! 3b60d687fdb0acf261238b6c0f04a2d9  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile.cc
! e2192a6ade4c08120fc75105a09a93ab  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile_2.cc
! 24897a909fa8847bcfd2cce725a0fb4e  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_nan.cc
! ad63545847faf4bef3959cadbf62652c  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_value.cc
! 43a814be9ca8b5016dc4bcb4f2e295d4  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile.cc
! 39a5cf9c73429332cc8def52b3eb3f94  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile_2.cc
! fa55bac54c4daf01580dde4c9f6a6879  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_nan.cc
! d1215e687e6f2d25c62690bde7f8ccf7  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_value.cc
! 400a294aff4d967433011b1509c22265  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile.cc
! e3932c9e04e30e174f8e2c7d4be03725  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile_2.cc
! edb0b32fb5927caf83f590823c3d5a8a  libstdc++-v3/testsuite/special_functions/20_sph_legendre/pr86655.cc
! 14e684e51bbd97f3a488bb3c1e03e971  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_nan.cc
! 6d1293049bc11c9e18227593e5e692b1  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_value.cc
! 9d291c36bb67bdcbc01ec09b692ee3a6  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile.cc
! fbb9cb6aa1afed0d56fc6427306fa22e  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile_2.cc
! 462c353e4232e973ac6947e6356f9296  libstdc++-v3/testsuite/std/concepts/1.cc
! 043d4477919029f6f3707502c724b032  libstdc++-v3/testsuite/std/concepts/2.cc
! 63ab30754f2453c6820384dec6369388  libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
! e46257417edb60880f2f4539034bfefe  libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
! ca94d547d32777414cb2658a3b86100b  libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
! cd1638d72ab32c3e7043d3272b7f5641  libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
! a3aa3d586e77ebe62a22b2d42da1ac38  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
! 4af4f0601495d614cce753507513341f  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
! 72df2efd64e584c4d468a1f247c1e971  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
! 406462697dd7383c08c55cb11e6ab903  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
! 72d34671c9ba9ac5f9e4724e807d59ff  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
! 367c57c0a3f54c3e37329e91459d8e58  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
! 40f9716d44a22926d57414f59e93b9c1  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
! 92dc51aeb58be256eb75fd036ee0bc49  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
! 126d9a2f614a6b3ab49b9526e8058a04  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
! 62aedc6b77a3ae700bcc73367be58744  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
! e1f115cef281c6b8b5a39a41c67924ce  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
! 06b99aca42c9b94180f92e1933d8b87a  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
! aad45001dff355df3ce4cd795b420ad2  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
! 3893f7cde84e13cf0ed141e4cfd37e56  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
! 94f2432ad38589ea075631157cd25ced  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
! cd4529cac2690a77ae1d7bb88790a0d3  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
! 0e9508769c4264dc54fdbcf163de95e9  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
! 0b5bca4b3232b40b9920e3a4b8c9b743  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
! 35e76401300b3e04595fb486cda50381  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
! 5c1484adecc54603c9f10247d1c1a37f  libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
! 1f73db475b94acf71b005d917dd93d0d  libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
! cce32ddc9f763f73b9ecdd456f62dad8  libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
! 553fa21f46dadf88c0986882e76d0ccf  libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
  576d75aaf7d2aae28e341cda63776ff9  libstdc++-v3/testsuite/std/format/arguments/112607.cc
! 6294535c9400f12b739853926eafd814  libstdc++-v3/testsuite/std/format/arguments/args.cc
  d52aff2e6dfd886a32da7955635ed09e  libstdc++-v3/testsuite/std/format/arguments/args_neg.cc
  0ae0aa3194832d790df652a9ef7d17c7  libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
+ 088e48d84af728cffa21af00b37e3c04  libstdc++-v3/testsuite/std/format/context.cc
+ ba0338f26a871a1d2585f82e2ee43984  libstdc++-v3/testsuite/std/format/debug.cc
+ 4e1e1bd1eb1b2db2e9f55215527ebcd0  libstdc++-v3/testsuite/std/format/debug_nonunicode.cc
  3f84148bfc5153a2278f3c8c413dad98  libstdc++-v3/testsuite/std/format/error.cc
  6425de3f85b700ce40dd3b11d934ee43  libstdc++-v3/testsuite/std/format/format_string.cc
  6fa5a2c92632d72f763333e89659d4a5  libstdc++-v3/testsuite/std/format/formatter/112832.cc
  6dfab89727d04a1035aba73afcf4d6a8  libstdc++-v3/testsuite/std/format/formatter/basic.cc
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
  43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
! ea651b325f74b82682d62073f4f54284  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
! 9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
  a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
  a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 237708e398bc572134fcc5d5ca701f62  libstdc++-v3/testsuite/std/format/functions/format.cc
  8ee425f04d2e4782e67ab2eb62208b7f  libstdc++-v3/testsuite/std/format/functions/format_to.cc
  c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
  f859e29ec6cd7017c9d0abc60ed4b8ce  libstdc++-v3/testsuite/std/format/functions/size.cc
  fc7c0a7a8dd0259caaa437eac20a9eca  libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
! 8c03d68c7c511ad9acd3904f67ba37ba  libstdc++-v3/testsuite/std/format/parse_ctx.cc
! 98a750919025b1a6b7cbab28d1aba84a  libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc
! 23c2d31669b319d0063a28d6dd8353cc  libstdc++-v3/testsuite/std/format/ranges/format_kind.cc
! 3fa7ea13575f3418a2f660f7f1668262  libstdc++-v3/testsuite/std/format/ranges/format_kind_neg.cc
! 6cb5d9fc875882db914c7abe02a8f948  libstdc++-v3/testsuite/std/format/ranges/formatter.cc
! 533e25e218217c606aaf67745b9dbb5f  libstdc++-v3/testsuite/std/format/ranges/map.cc
! 94eb38239ab3228ac384cd8993a156d3  libstdc++-v3/testsuite/std/format/ranges/sequence.cc
! d7de22183439c27afc99361af6710aa0  libstdc++-v3/testsuite/std/format/ranges/string.cc
  22af3c8593871c64b40b11663417f80a  libstdc++-v3/testsuite/std/format/runtime_format.cc
! e526d2a3f721354ce91286c62043c3be  libstdc++-v3/testsuite/std/format/string.cc
! 9818aa3a29f6312d9efbbdc1369fdc1f  libstdc++-v3/testsuite/std/format/string_neg.cc
! 92a6106bb3c2b81e62ccb7d145734561  libstdc++-v3/testsuite/std/format/tuple.cc
! 716be24e6491ab60adb349f3f5c0b720  libstdc++-v3/testsuite/std/ranges/97600.cc
! 9f1ea1f1671d48aea7ae18a55694c05d  libstdc++-v3/testsuite/std/ranges/access/101782.cc
! ccd1ddf5ca05fc6916f617c3d3b1a4c6  libstdc++-v3/testsuite/std/ranges/access/begin.cc
! 19cdbdfa991a9da56dd842e6dc46c870  libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
! ca30790d0e00cac72253c16345872ce3  libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
! 83f6ea846714c6ae476b61260d5b9839  libstdc++-v3/testsuite/std/ranges/access/cdata.cc
! 000f7f85b8603d75045dd339c50b6714  libstdc++-v3/testsuite/std/ranges/access/cend.cc
! 6d79a6d4735c6c8ff534aed00a72a5aa  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
! 701db4288f2ad94b0b66632396ee7527  libstdc++-v3/testsuite/std/ranges/access/crend.cc
! ea33da7e2254c42d71549e264f3b5d95  libstdc++-v3/testsuite/std/ranges/access/data.cc
! 361b8286f18783a9c45e115cd5e071b0  libstdc++-v3/testsuite/std/ranges/access/empty.cc
! 82761df8d3c38457180cb78b2109ab58  libstdc++-v3/testsuite/std/ranges/access/end.cc
! 81d335b7a73c876bb8d57ba6293dc7ca  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
! 57b80946df4aff8caeb960cda7347ddb  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
  e542ec9539e3379d7c1a274e65589907  libstdc++-v3/testsuite/std/ranges/access/p2602.cc
! e9167d827d8f12d4367b705160cc5ff6  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
! 915271812086ca65d3840ba22b3c2ead  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! c9cb8b3083c870403e7141a2ac183761  libstdc++-v3/testsuite/std/ranges/access/size.cc
! 27e715ee4ad10062fcae56b44aa40f9f  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
! 5c3955344b54e4702df39f9e86fd2329  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
! 8f0da8e85356a6c5f1c2fc8505e319c9  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
! 98338fe18517b0f72c50995bf40ac5cd  libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
! c955965c3f553d2f22124d0ec851dc46  libstdc++-v3/testsuite/std/ranges/adaptors/116038.cc
! 23554ff7bbdc68842b9ba4c3ea00fa3d  libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
! dbe6f7435db569aaba924f0481d026a0  libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
! 72968de065d8a0a9308fe2f187ffa2b7  libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
! 4ee1b0892ddf6ab45e039a6dd52e09dd  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
! 2af3437ec090989e51b23e262005c228  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
! dac51659b91550d54e99335145514b51  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
! 72da4c7ac2546f0a5f6407897e1bd475  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
  0139b03b03632380b03a6ab7c2b27a55  libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
! c869a29dd96e2c1f3e229b1c37f22ab2  libstdc++-v3/testsuite/std/ranges/adaptors/cache_latest/1.cc
! 28870445b45c887945870e82f7ede402  libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
  ca1524a8471629f0f7af342981b490ce  libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
! b7854f4608d1d0feb88b4885cce489b4  libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
! 05868c1aaac909e8a76cc492a1d4b3b2  libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
! d6f43aa2aa28ccf6f02960749550aac6  libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
! 40721f1e30af6d3ae5a93d0f3326d89d  libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
! 6274dca506d8c9c1f7a277be7c410a6c  libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
! 00f2749a0f541f84b8c76fe5412d04d5  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
! 3f44f7941efe01ca6d9866ad6a152776  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
! 40e31845569daf0829a17a44a8ee56a0  libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
! 98b483f4295fbf685f4fe582088c3473  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! a4f9ebbafc46d31afc253713a37fc230  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  037c6e0dbd2e478a74843d86dddc6737  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! b1323cdec1760609fd69bd805ad3e54d  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
! 54271889e88b8f08f76cff98d9dfb68b  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
! 52a7e19aa4c7f3a80c76630b6c935fd3  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
! 09fc4e2885ef672deb76aa23b85e9bc0  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
! 3f4b37b6ff7c064b9d74cabf7714ac55  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
! 59d8b2f09578b1c38e2195b437b611ab  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
  917e7f710623226ae63dac580aab687b  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
+ ac76b0005fe3e7eed837e76d4a59f32c  libstdc++-v3/testsuite/std/ranges/adaptors/lwg4112.cc
  adfcabf1da0146163b35a934650cc5fd  libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
! 94030f1a71f6a9e63a94bcfac14f455c  libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
  c48ca1c4effaac34b1f94b789c370533  libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
! e39104563e342c5d9638814951254e5d  libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
! 8c1f3b6e21f352a16c1a2306168ea28e  libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
! 4cf87dc727e180a71a41f9ae3161a3e2  libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
! 8693266e965c3670fd068e24f7fcb4ea  libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
  a0e630899068a41f2ddf2c81cbd386a4  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
! 90369337fa5642d6d93f54b333836826  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
! 66691dbef221bbf5e355c8d462e1e3cc  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
! b84e90f734d1e8ca59322b53758c6f9c  libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc
! 05b5fe236bc0b5ee3fe341b1435caeba  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
  c1b23609040e813a09294f54b708a162  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
! dc17d5542c1969aa4c52c6a15de5c4fa  libstdc++-v3/testsuite/std/ranges/concat/1.cc
! 474d22d474aece24ab6833bba4c36b37  libstdc++-v3/testsuite/std/ranges/conv/1.cc
! 63a2d6de25511179d0f6232f1739a1bd  libstdc++-v3/testsuite/std/ranges/conv/112803.cc
  30b021647d63542228568a19a21f2fd4  libstdc++-v3/testsuite/std/ranges/conv/2_neg.cc
+ 97013a8071f9131593ed4850aded1bb0  libstdc++-v3/testsuite/std/ranges/conv/lwg4229.cc
  7fdf1d111e43ff7fc5474a37da96e300  libstdc++-v3/testsuite/std/ranges/conv/version.cc
! d903595f1086b1a93019d4c8a97f5dad  libstdc++-v3/testsuite/std/ranges/empty_view.cc
! d3bf5960bbf322a75ce617acc8293723  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
! 458c2a38c3af3c51339166319d994f97  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
! ace05307666a5a3bcf5266016bd4c004  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
! 7edf268c8652a4341005faa640aef60b  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
! 44137aa80598ab34f7738bab92bbae34  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
! 75efd0b5a361beafcd03c1943efc9c04  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
! 67598573f701e95d4d0df9108e8b7e0d  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! 0e79934369836841f02d89d4d7a50e1f  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
! a928432e3c8b4b4e0e289fb494385ff3  libstdc++-v3/testsuite/std/ranges/iota/size.cc
! 24ebb927ae39382e06cc730b99241813  libstdc++-v3/testsuite/std/ranges/istream_view.cc
! c5aeada458be2e96d710b53a50ba6023  libstdc++-v3/testsuite/std/ranges/p2259.cc
  69defd43e76475db81c3e8bb6e87fcb0  libstdc++-v3/testsuite/std/ranges/p2325.cc
! 4fff1613706cc7ddd00120422032ca76  libstdc++-v3/testsuite/std/ranges/p2367.cc
! dc07704b2001e1ee4fc7b9ca933da691  libstdc++-v3/testsuite/std/ranges/range.cc
  db3ad291e2e791f736d68a27e4606352  libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
! 064f39ef33f9fb617db8c96badd1f576  libstdc++-v3/testsuite/std/ranges/refinements.cc
! 56f9938ca42bc5dbcbb10bba12c02dac  libstdc++-v3/testsuite/std/ranges/repeat/1.cc
! 7fab3646af8bf345e4ecdefa86814fc4  libstdc++-v3/testsuite/std/ranges/safe_range.cc
! e3c6019fc0650c7938e63484348a15b1  libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
! d544f058b682e61255b7c2e209b125ef  libstdc++-v3/testsuite/std/ranges/single_view.cc
! 26c92d6bf395e59d7622316a1a92eae2  libstdc++-v3/testsuite/std/ranges/sized.cc
  8d1ae5cbc51b66963081b4178b295a2d  libstdc++-v3/testsuite/std/ranges/subrange/1.cc
  1b1867dca54804ebf61ac12f0ff3e7fc  libstdc++-v3/testsuite/std/ranges/subrange/111948.cc
! 41da664f28f03c57c34cb7b7b49e7e42  libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
! 8a68687ba929243d2d1284ef0689e31e  libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
  deebf06a9086f7bbf73404c005fcee70  libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
! a6a48c281c2bde0963d106b6e326eaf6  libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
! c55d5ab5115f5eaf54c9fec5c7591e6c  libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
! 8a970ab46ced89b87414cc5c5b0da41d  libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
! b694262e9c10340bdb562c2e01ff78bf  libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc
! 000e2155727286909f4a15eb4de4e9e4  libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
! 6b8ab4802e692963ab60a16655e418bf  libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
! c342957ead076d6f0de9efbca3f72903  libstdc++-v3/testsuite/std/ranges/view.cc
  e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
! b2cb281cb5cdf9bae7226558f0640d4e  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
  a0efc42f3d3e1e881d69063fe7f2c586  libstdc++-v3/testsuite/std/text_encoding/cons.cc
! bfa6a93e5c5cd2d11c1eddd5572fd5de  libstdc++-v3/testsuite/std/text_encoding/members.cc
  e9ef3f2b572f799b265913487f27690b  libstdc++-v3/testsuite/std/text_encoding/requirements.cc
! 365a7f463b1100ef31ca370c19759af0  libstdc++-v3/testsuite/std/time/clock/file/io.cc
! 6a1c72c0dd10f92cc7aa1fc924421290  libstdc++-v3/testsuite/std/time/clock/file/members.cc
! 1cd9b515badcd164d6958b0fbbbb52cf  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  811bf06fb6123b7a4dc922fa36ba8a06  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! e9c8ba287435179e8670bb6951a6b4fa  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 7d24bd5e236b9d29304e5b9940a2df32  libstdc++-v3/testsuite/std/time/clock/local/io.cc
! 13ae31163906c8eda2c2021c882bdc89  libstdc++-v3/testsuite/std/time/clock/system/io.cc
  b3cda48993495a5d2ff69f7f1ad2c695  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! a87e1152f6bc2804b93ce070a51eeb54  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  33b0f61f2113641c61ba5cd53d9a52a3  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
! 91c1a13a9f62d24541dc87bd44c15db4  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
  01f8f5b7e0644716179c7a0f95af5d9d  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
! 61d414725d4c256089a1075c566c8b58  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
  1cfa2f31c3dde7297b8ca55ba69d3f47  libstdc++-v3/testsuite/std/time/exceptions.cc
! 90714e66b9741259bb9b9cd2ea23288c  libstdc++-v3/testsuite/std/time/format/format.cc
! 06b738d93b3d78681b0da48efd0a60bf  libstdc++-v3/testsuite/std/time/format/localized.cc
! 9cd4d6791c125e40939cae77277f928d  libstdc++-v3/testsuite/std/time/format/pr117085.cc
! 419cdd8872b10325a937888fac85a489  libstdc++-v3/testsuite/std/time/format/pr117214.cc
! 107c8c7bd6daa477dad84b5cfee3eacf  libstdc++-v3/testsuite/std/time/format/pr119517.cc
! 2be47743c9d490923037b020cfc220b7  libstdc++-v3/testsuite/std/time/freestanding.cc
! e1b4a0af956607fcdfe6d75e391ae49c  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  4ba93d13314c788e419728411ae7229d  libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
  6c6293d902ac026c41fc45336767194d  libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
! 5f11680daaec424850e1018e0db1f05a  libstdc++-v3/testsuite/std/time/is_am/1.cc
! 9dbdcce64a365fd24855e700a2ae34aa  libstdc++-v3/testsuite/std/time/is_pm/1.cc
! b8df75e467825e8a9438d51c4ece08dc  libstdc++-v3/testsuite/std/time/leap_seconds/io.cc
! e815444177567ac116972b30b45549c6  libstdc++-v3/testsuite/std/time/make12/1.cc
! ac023f20cb115a4c9e7919a4393475de  libstdc++-v3/testsuite/std/time/make24/1.cc
! 44a646990ce554f7ce04aab06249b80c  libstdc++-v3/testsuite/std/time/month/1.cc
  b7a5373ed0797aa495f69436f1939726  libstdc++-v3/testsuite/std/time/month/2.cc
  a95c6365a674d691a5049d10b94bd3f0  libstdc++-v3/testsuite/std/time/month/io.cc
! 0bd2c98bac6c877d6d3e4c0c618fe5f4  libstdc++-v3/testsuite/std/time/month_day/1.cc
  bb39685baac5f09d22f4582faf8cb04f  libstdc++-v3/testsuite/std/time/month_day/io.cc
! 8fbe2e4183732ea109e43f11310099f7  libstdc++-v3/testsuite/std/time/month_day_last/1.cc
  dcb9d587d1738c8bdb50039c6928431e  libstdc++-v3/testsuite/std/time/month_day_last/io.cc
! 3b0d291ac5b46ab5d35141b37c84ae98  libstdc++-v3/testsuite/std/time/month_weekday/1.cc
  993b5f3ea8c445dcd9622633b93de2cf  libstdc++-v3/testsuite/std/time/month_weekday/io.cc
! 3c640205d8d63e42e49267025757f1d6  libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
  54378d7890a365088cc6292493caf83d  libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
  60231b6bb71cc9175500ebf6d9f92ceb  libstdc++-v3/testsuite/std/time/parse/114240.cc
  a0be85b8053be995a48a4cfec6a5b675  libstdc++-v3/testsuite/std/time/parse/114279.cc
  a62052228d6df7ad716017e0526fa955  libstdc++-v3/testsuite/std/time/parse/parse.cc
! 8e3bf07939ba94874a6652e2a596d549  libstdc++-v3/testsuite/std/time/syn_c++20.cc
  f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
  d041367e20c424ad627fce102335edd0  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
  efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
! 105f0ca3c8074ef3b2c1751d37ec2b96  libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
! fb1501eaac6167bb3503c953bd7315db  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
! 3c922068cf98b21e732c0de16c319289  libstdc++-v3/testsuite/std/time/tzdb/1.cc
  c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
  6950b88828afb2cebccd6617fe0d64a5  libstdc++-v3/testsuite/std/time/tzdb/links.cc
  fbaa899641d17201d9f891486537af1b  libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
+ 5c4efe4c1fd019cb6e7bfda4081a2dbe  libstdc++-v3/testsuite/std/time/tzdb_list/pr118811.cc
  3f7dc336d0ee3feaddb94ae16964cbf1  libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
! 8b77834100b27cd3083bd80ddeb5db15  libstdc++-v3/testsuite/std/time/weekday/1.cc
  d6cb5f0804c9bd14e047294d47decf33  libstdc++-v3/testsuite/std/time/weekday/2.cc
  28074137f005d49856c15e773a2debf7  libstdc++-v3/testsuite/std/time/weekday/io.cc
! e725171cf2c18ad2bb62cab49a9ff309  libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
  f1130e870851ec40302fbaceeb797501  libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
! 38acf4a6e21a083db8a6dbee1a75ad7f  libstdc++-v3/testsuite/std/time/weekday_last/1.cc
  4143eb043bbe78b96a20fd85b2d9457c  libstdc++-v3/testsuite/std/time/weekday_last/io.cc
! eedb8aa8dab94861572a2e0f9b7827a1  libstdc++-v3/testsuite/std/time/year/1.cc
! ddbf780d2b10b4213c9d110f9344b533  libstdc++-v3/testsuite/std/time/year/2.cc
  31aee8f1dc8300b4c3ce95f8b013467a  libstdc++-v3/testsuite/std/time/year/io.cc
! 397a2bf0b36e2d595901be8c86ba80d9  libstdc++-v3/testsuite/std/time/year_month/1.cc
! 010fd94824344e727f6135a07470a987  libstdc++-v3/testsuite/std/time/year_month/2.cc
  f3bc72e48f5192cf9f187425e1bc3ab2  libstdc++-v3/testsuite/std/time/year_month/io.cc
! 7d64059a0fd6829f71b96d9b5b2f8970  libstdc++-v3/testsuite/std/time/year_month_day/1.cc
! 3f9fcbf0af1cdb5c5b503cef22cd9394  libstdc++-v3/testsuite/std/time/year_month_day/2.cc
! b7c64f232b54b107438e4d09b7a482a0  libstdc++-v3/testsuite/std/time/year_month_day/3.cc
! fb81614a5410f53328449fdd57e18a7a  libstdc++-v3/testsuite/std/time/year_month_day/4.cc
  d12b1ce84dd8aa47821e932aa1466dec  libstdc++-v3/testsuite/std/time/year_month_day/io.cc
! 2bf8f80dc7da8604e27e6654433dd7ea  libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
! 9aaae50fe881bb76fea156e9419bde1d  libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
  88d90bf0d08da6a2546594d62c819008  libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
! bf2b91908da86e848eeb327e73fc15f4  libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
! d780f45c315b5280ef3a3d36e39304c4  libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
! b7fda84fbeda06910b868e9c1900c04c  libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
  7f6baff837825ddad9bedd5582dfab64  libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
! c83ddc50378f7dedd8a117c97828123a  libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
! d331c4d1f095f322242d26131db04e1b  libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
  e794c3c683b129a1bc27715ff3ee3b37  libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
  728832c3eb4e89e18aaf1a2ed1be2271  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
  6e26d84ca6efe0ea496ba2fcc8ee280b  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
  6abf80ca9a7f01e8d061066eecdd2022  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! b817e9c1855b1b139f12f498f1c9db67  libstdc++-v3/testsuite/std/time/zoned_time/io.cc
  1ffbda059634e8047ba1c3ed8ea40cdf  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
  46d6b45f45908ebc179f768a8757f7de  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
  a666cbbccdbd1212e56956d4d552eceb  libstdc++-v3/testsuite/std/time/zoned_traits.cc
! 3e120b256f8f89efd13f2349342b3ba0  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/1.cc
! b744100fdbd8cc45f951544e883708f2  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared.cc
! 4064c2eb39dadead8ec2f1a233da73b0  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared2.cc
! 2d8b7d3be34906dec44c446c4458e335  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared3.cc
! 2a58c36fb12d1bd5644f2e919103e070  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/requirements/explicit_instantiation/1.cc
! 235f8a84eb0fe90860d7ac5e8499132b  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/shared.cc
! 103ef5ef2231b82fb569f1dc2ee1ab1e  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
! 52c094f54ca49e3770772e80abffa0fc  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
! bb3a296d12aefc48345cc93be2bd81f9  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
! 83500918ff2e0cee5cb3482392c51f5a  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
! 98425b9887e8736a9ffbf0447eb8805f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/assign.cc
! d4c1ec71f15c9a633f7d72013bd5469c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc
! 466692e812322ce663ebe38e38fa956c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc
! 32768f8c7d142eb7f711e6c26e1156fd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
! 5196598ee313615ded4f97c811775d73  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/dr541.cc
! f0e0ccaa531c9f84e7cb8fccbf2c073f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr.cc
! 94936510a99e3c23c7001137c42da8cd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc
! 5b45548c720408528d5c7bb7eca7ec5c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/casts/1.cc
! bb6bc79bb32da1c391d81d396391ab81  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/comparison/cmp.cc
! 29f4aed8133c8285250dd3871bd7e088  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
! ba0d846d3a2f974241a20397d827b1c2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
! af5ab8cdcee40aebe7de92703da6917b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc
! 9176623e4bdde1530a2ab7b513f75c6e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc
! 4aaca50ec0c759add3f9529ca60aa271  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/copy.cc
! 28b6d7a2ddb57127d772aa47b49cd35b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/default.cc
! f65923b394ca0643f52b1e658d76acf5  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/pointer.cc
! fae74e5d731b489e95df973264aff057  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr.cc
! 69487d258ecca333d95be4a8fbee3e81  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr_expired.cc
! 69d62b1afac375bdde4379eb751be38e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/dest/dest.cc
! ff10f513235d4e8c823fcbd469ac167d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/24595.cc
! a28ae2772ab066131b1857e8c52f22d2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
! e5bf9c037cceaa9730d7a3a061562b2e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/io.cc
! 38c4113b2290b691bf1d335504c5bafe  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/swap.cc
! b977d197e540429eb2971545f30554a3  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/24805.cc
! b4b807f40bf70122b87c968ac54957dc  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset.cc
! af41aa5a8c7d0de0abaec8490c53465a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
! 62983807e1c6b7cef288b3f4ddc04811  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap.cc
! 68e28155a53042477dd353a3080b93c2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap_neg.cc
! 7f7ef18ba3c106dc2d3b41b7d82f294c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc
! 9db5e1ab9fa96a5e8add7032ee25a252  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/get.cc
! 35c47353f2c64566cffa3ee9241bd6bc  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/unique.cc
! 656116ddac6532fb5648d704b9a2c29a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/use_count.cc
! 8e89f95700b7dc0aaa40a9ef708483a4  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/1.cc
! ec7bd12ff2661381db3e56000547d5b0  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/2.cc
! 2156099a1306e94480b34266fe031af1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
! 1bbaf0aaf91df550e016e589a945f241  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
! e2250cd7c41fd75d50c486bddd9513be  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/lock/1.cc
! 575f5921fc0582bab57397b4bf5672ee  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/1.cc
! e4aed32356f2703c1b82f522205a5fcc  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/2.cc
! 534c604df4f0bc0ef65f116f30476b90  libstdc++-v3/testsuite/tr1/3_function_objects/bind/all_bound.cc
! b32040340a8e7526632e7db64ceec382  libstdc++-v3/testsuite/tr1/3_function_objects/bind/cv_quals.cc
! eac2e9ae8e8c15bd057445964118b6f4  libstdc++-v3/testsuite/tr1/3_function_objects/bind/mixed.cc
! e6d1ecb01e9529dde12dad08e82c196a  libstdc++-v3/testsuite/tr1/3_function_objects/bind/nested.cc
! 9bf206211fc25eeb0a2de99c1dcc7e73  libstdc++-v3/testsuite/tr1/3_function_objects/bind/placeholders.cc
! eb4dd541b5b653de7a789c942b4d5caa  libstdc++-v3/testsuite/tr1/3_function_objects/bind/ref.cc
! 61c425199cd0cfb94184901ae3858af5  libstdc++-v3/testsuite/tr1/3_function_objects/function/1.cc
! 5f3678e98051d56b1e582c3fa1acedb2  libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
! 50a2f3577a32c81abd48aeb9bc97e9da  libstdc++-v3/testsuite/tr1/3_function_objects/function/2.cc
! fa87a6131fe8340e81790b9a486fd49e  libstdc++-v3/testsuite/tr1/3_function_objects/function/3.cc
! b373956a044f4518e3f80d2199868719  libstdc++-v3/testsuite/tr1/3_function_objects/function/4.cc
! 3a38e0d22e7cab1b56e841e54226532b  libstdc++-v3/testsuite/tr1/3_function_objects/function/5.cc
! 3d7d671e327673b8f3f1a8b5ca369998  libstdc++-v3/testsuite/tr1/3_function_objects/function/6.cc
! 37c43a691d3d33d1fc01e4f3787d0408  libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc
! 95c3c7dd4fa776e47d5cd4d210cc9242  libstdc++-v3/testsuite/tr1/3_function_objects/function/7.cc
! 12798c00a6e9e1bbea30b1b33b60402b  libstdc++-v3/testsuite/tr1/3_function_objects/function/8.cc
! 643e31e00ba6967f7d4b47ba7bee5045  libstdc++-v3/testsuite/tr1/3_function_objects/function/9.cc
! 9e722131d5f7a3825405dd0993c416bf  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
! c30e4abdd3911db225fc6195a4583824  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
! c7844ac04aada952017e9630f99eace2  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
! d966675bf901c9cde83c6979861b951d  libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
! a3842b4a5443f6498fb8642e1cb146ee  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc
! b8d97423ce3133c6b1b09568f776ba3f  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc
! 59e7d376592b7afa9c7eb0026a6128dc  libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
! 8bfa49a96feff6a9c3a87c8310bcaaee  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/requirements/explicit_instantiation.cc
! a0a8a4c537338ab5d0849eb38a07e6c8  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/value.cc
! a00c62ce7d49c9d35b62080a115bb264  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/requirements/explicit_instantiation.cc
! e5d2aed8e5a553e75676743d0df1eb02  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/value.cc
! d18120249b044ca5830b5ebb7c52b411  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/requirements/explicit_instantiation.cc
! 77178b371560a0ccdf5dbfc4a848213a  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/value.cc
! d721d6b2c443fe1ea6d18ac93b35cc44  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/requirements/explicit_instantiation.cc
! bbe458c9e9980f1ee8ce9059d3edf593  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/value.cc
! 783a1615f56a8c0a3d3541031a2a1ca1  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/requirements/explicit_instantiation.cc
! ae1603ed6d82085bbd82423f7da7d33c  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/value.cc
! 252fda2921ec5f409b12074d8c92055f  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/requirements/explicit_instantiation.cc
! b7f377db4e5025429905bfe78685f6d5  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/value.cc
! 18fd34d3d3f2db1d1e8320956e67e465  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/explicit_instantiation.cc
! 80f55bf17854667449d2a163be9c717c  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/typedefs.cc
! 3e62e8687bac1e5b86c1d79af06adb21  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/value.cc
! 540a2d0ba49a1f3cf2bcf34fd5bdf0de  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/explicit_instantiation.cc
! 703ccef928d0e75d424fb0a262db4604  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/typedefs.cc
! ba59eadec43749f3ef027f5034dcb713  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/value.cc
! a0f6414051a4c767762ec3e7f5c67cc1  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/explicit_instantiation.cc
! a738faa9d56b746443cefc062827c336  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/typedefs.cc
! e5e3dcf63b3ec93826d3a00e86bde9f8  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/value.cc
! 5b2626b76182e3f459b1bf40441f74f5  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/explicit_instantiation.cc
! debd9fefb1bd8fa64aef463dc99382b7  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/typedefs.cc
! dd16a4bbba771da0ef3b162f7e82e78a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/value.cc
! acd58a7f0150ddf8e5732c4634122f93  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/explicit_instantiation.cc
! 6029ce36f4856af1af81b8320ccdaa1d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/typedefs.cc
! 60000565b427a57f3ba89b84c0d562f6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/value.cc
! 48e271b42ede8ff8dfba261cb06bd1b0  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/explicit_instantiation.cc
! b514b15281003188da2a3b2c94527e0a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/typedefs.cc
! 04e512e7cf18fae1b81821cfc27dd247  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/value.cc
! 406bfc5a2b913b27ea44bc1a5411ad69  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/explicit_instantiation.cc
! 251a17cd6e0e8648a4110481fae3f91e  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/typedefs.cc
! 954d6e7c511af3e7e6b382b3dab803fa  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/value.cc
! 2b73067523d289b8defe10ac4c299d47  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/explicit_instantiation.cc
! c9440eb4355f128ac8686fa8cd47b03b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/typedefs.cc
! 66388fea8dc50728e415018d0961d08b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/value.cc
! d4385c0d952a8e9e25e5b474bc40fe09  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/explicit_instantiation.cc
! 308c628bcb3450564ad1480a038d4bbe  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/typedefs.cc
! 0a18c93f1299d79f0fa32b915b9ef99f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/value.cc
! 83618d72db8d407451b00129ee494184  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/explicit_instantiation.cc
! 0d6758936faf248e412582d754c13e79  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/typedefs.cc
! 708c267e921b685718429118a845b7b5  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/value.cc
! f1d68709eebb7dd1f9601f2c0efe207c  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
! 7da36a7e5f2e44d1d620c394245a5794  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
! fb3f85aab5a9dc49ef377fc007ae7e14  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/explicit_instantiation.cc
! e30a1673a7cbc6f5b4564a15e6134fc2  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/typedefs.cc
! d3ecd4eaf15cbe72885036ca4770eaeb  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/static_definition.cc
! a6eb2a0285b29009123d63287017c451  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_type_typedefs.cc
! 76794c4a60b84475ceab27a2591bfa56  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_value.cc
! e710497f1a6a7291425ed0b9eb09e80c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/explicit_instantiation.cc
! 1561ab6c9db57cf27d8281b93fb061eb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/typedefs.cc
! ecf2c9f522d12a3a0b1426315db1d0a2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/value.cc
! a677add5f265fde59e860f56026d44f6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/explicit_instantiation.cc
! c3145375caf742389b8127d330f4b1d0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/typedefs.cc
! 0eb15b81307a1468b9c044eb2fe76e2d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc
! b758df6cec25f85e44d7109b93ca1f83  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/explicit_instantiation.cc
! fab7c2259645e5a46fe3953ad78e9055  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/typedefs.cc
! b880db3f4b1928ce6d13da2acef275ec  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/value.cc
! 3cbcdf8dee402f226265d160bf342f05  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/explicit_instantiation.cc
! 0ca2ba2f3009c4f38439e1c9ca190e1f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/typedefs.cc
! ead5e8adc91faaecb5bfcaef05dc0ce8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/value.cc
! fe8a1c158d8d6be9177a7b105afec173  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/explicit_instantiation.cc
! 8e137ac0ab4c17cf5a1a3c30a2cb671d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/typedefs.cc
! 322289356d938befd89999c977d99947  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/value.cc
! a722023a77a3503f7340b7b96e013996  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/explicit_instantiation.cc
! c410a21f63cfa7048f6f0cada4a57513  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/typedefs.cc
! baf24f555f41c8c1c0426373ef5ca69f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/value.cc
! c33c0751d55c7a8491ca96c849e2b5ba  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/explicit_instantiation.cc
! efdc70bfeb59ce4adbdd6ade596268f5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/typedefs.cc
! 2d406fe89de7a6227539570a50e77e7f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/value.cc
! cb8871190f8c6f1abd619531dae57373  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/explicit_instantiation.cc
! fab7546c1dbe34609f7a3e2dc327c16f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/typedefs.cc
! 1a14831017a47c40452dde461cd889bc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/value.cc
! 72095953cf727c4cbb1d3a129273b1bb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/explicit_instantiation.cc
! 66c7efda030d1adba9cd8a33ca6a37ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/typedefs.cc
! 362cf9fc7ea8ca36eddc5fc207fc1fc3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/value.cc
! 728307bba0152931760732f615557dce  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/24808.cc
! 25e781cff6c6413dc19c1e74a2e478df  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/explicit_instantiation.cc
! 360eb9bdf3f486368fe05fd2441d0c21  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/typedefs.cc
! dc28c7060c185a3590eac9fdf5799679  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/value.cc
! d062d97baf16f453521b431bfdafbd61  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/explicit_instantiation.cc
! 25066b70a20d5ba365a9c9e30cfeb7ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/typedefs.cc
! ba0d5b4ba0ca57f91f111923973c66a3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/value.cc
! 6532688f98799df162d9988da8b16529  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/24808.cc
! 7352f6941b966a985b539ddaee96e3c2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/35637.cc
! 349f4e2c362cdce1d75c17f7f202ece9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/explicit_instantiation.cc
! 2d8e29d725070a8dc7c647a37446e369  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/typedefs.cc
! 13cb32add5cd88c44c0ce673773f1e43  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/value.cc
! d02c7acdf8eaa140a15e02d3c36142e8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/explicit_instantiation.cc
! c76f583b23fe90237896e8afcd1bee91  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/typedefs.cc
! 988736d15a2c00b3efaa676fe351a4d0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/value.cc
! 5d1c76d2d4fd9f4521f0647df134c1a0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/explicit_instantiation.cc
! 43a2c408bd18e38ef51feab3d4f08da3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/typedefs.cc
! 946aa9b110d33fd65bc6fcd3ec703072  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/value.cc
! c9cb5e860b029b0bc0e753db11651bfe  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/explicit_instantiation.cc
! d2d6c9b2e84d837cac196f5c43b63078  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/typedefs.cc
! 5434466bc417328807261627c6d01894  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/value.cc
! 783c43654b4f4b6dd7110e87151164d1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/explicit_instantiation.cc
! 008c8ba1c9193445d173319787bb23e3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/typedefs.cc
! 98ec2748585df419ac5b336f272dfe16  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/value.cc
! e1a0d4db50406beaf7d91837cf223b92  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/explicit_instantiation.cc
! 2b5e303f1924cbd9daf3a7a92deda00c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/typedefs.cc
! 3f0751e26288ae879f0db6a800603037  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/value.cc
! 992476cf88b2eb7472bb957a82f600e2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/24808.cc
! b159c2e10b841ba8f5786f089582b1c3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/explicit_instantiation.cc
! dc6dd798af09ed4e4036d22d4668afd2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/typedefs.cc
! 01aef36812ac26f73eea1933768da914  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/value.cc
! d15811970cd433ff4da5a577fb09a5dc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/explicit_instantiation.cc
! 106b6928758b3a0033f400addbd895fb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/typedefs.cc
! 8246d0e3b3acbc90087b500b4b360223  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/value.cc
! 022fddd098718c873a1a53b7ba37ee96  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/explicit_instantiation.cc
! f9cfdf3cba396cd751b9b8bb473bf2d6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/typedefs.cc
! 4f84acf2721511f5668b7664f864e05b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/value.cc
! a2c500159c6c4b498c4bcc7a28481d80  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/24809.cc
! 54ad04db7c2dc36e4f69979793bdf66a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/explicit_instantiation.cc
! 8301393495c650b7d853ff19046a1053  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/typedefs.cc
! e20c9648b61126523831cfde9e1864a8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/value.cc
! d57cd3fdc3eefb0e791beb14f26b174a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/explicit_instantiation.cc
! ed39c404d9bd14b191616a27e507e5a7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/typedefs.cc
! 707ed3e8382ab052fcdfc5297c7d7fc5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/value.cc
! a556a8d8d094fdca8f4da01777444b55  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/explicit_instantiation.cc
! 911692f78ce2bff47ac90d99d67bd60e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/typedefs.cc
! 12be9e8f551434b06e3e408da4a37fcd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/value.cc
! be70e43d4f7aec9c7d94844aaf97465e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/explicit_instantiation.cc
! a7d37d704a2a3469a13c49d1a2005ef6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/typedefs.cc
! 24f56ae885b8327d0c1791d46436acd2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/value.cc
! f5a326d91738cd13393f1374c1e2b77a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/explicit_instantiation.cc
! 52c5bbab2ab0ddbf116bb8d0fb1213ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/typedefs.cc
! 0f22b4b851fb854ab4d8d25dae5cbd31  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/value.cc
! 4dc82a98c1ee1ebd846543f5e10f2981  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/explicit_instantiation.cc
! 8b37db5018a44586b28ed61e8b862302  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/typedefs.cc
! f6585b0fbf8215ebfaac216aa4409bb2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/value.cc
! e67ea8f6a0ab882458bf2b01d3a984f2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/explicit_instantiation.cc
! e9249ff24763072d2db5aa8ac762ef48  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/typedefs.cc
! 15b0ed7a6e6977a9d4e178ffdfb5232c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/value.cc
! 29fc667ecfd662c157dabf564ae92748  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/explicit_instantiation.cc
! b15452b3afe81579fe06a741498a0ab2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/typedefs.cc
! df44b2f2dd34859be23a141bc0ee4087  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/value.cc
! 1e3e9b92883abcbf4afc0616d4ca6fab  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/explicit_instantiation.cc
! 06052bc3de8741a4fda69795b4fa967e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/typedefs.cc
! 65e0e91526a2330bc84e4ff165cc436f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/value.cc
! 1bdfb19938b8c85a864bbc7c0953a77b  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/explicit_instantiation.cc
! 203bc2af4b10a6476a1a50fe0c9ee6df  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/typedefs.cc
! 8ac11794ca8a0b8689b5fa357c7e4e31  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/value.cc
! 052eaf12c66d9c9f7aaed4619e74853d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/requirements/explicit_instantiation.cc
! 71396b03805940b960ee9ca37a7dbca5  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/value.cc
! 13422e705f2de1844b40e2fd0ee20d57  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/requirements/explicit_instantiation.cc
! 176dab8bad9ba037ca0830359f7ca332  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/value.cc
! 6018fb30ce2c0debb425212f595bb525  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/requirements/explicit_instantiation.cc
! 46ecb1367e7e9b749f183af6239b2b41  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/value.cc
! 173a22b2f0b0a827450f6dbb7aad373b  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/requirements/explicit_instantiation.cc
! 6d5b9869611192e52fcf9dd709415a0d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/value.cc
! d04c0255044b77244820b3f2e40a3bd4  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/requirements/explicit_instantiation.cc
! 6e8942ba1f295c655f1fec73d07cd6a4  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/value.cc
! c1c2053b520c641dc858eb8abea0c0fb  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/requirements/explicit_instantiation.cc
! 84fbba53649dcb66c37af272d66fdb27  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/value.cc
! 8f2e68f69af66c99d4ad0a0a6a5b318b  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/requirements/explicit_instantiation.cc
! 1c74c8077d0563ffb895144c11246262  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/value.cc
! 162577b35709f7ab862df8eb58310d14  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
! 7a70dbe61ad630ab5f414ad26cb31847  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
! 0572f984775771fc6a11c0855c3c98a4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/bernoulli_distribution/requirements/typedefs.cc
! a9aea198387b84d36b35065bb6b59872  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/binomial_distribution/requirements/typedefs.cc
! f6107acf3dd64be3a7c33e036d42de8e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/equal.cc
! 90871b87ada2b593ea38bc03c62e566b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/not_equal.cc
! 0a2ba1c4c092769e91ae793db732e8d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/serialize.cc
! c157785ef2a7753199b32d364b42f991  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
! 1ee2ae3eb44b8e54843b587f032fd4b3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
! e5af214f0aa57f4501091e2970326cad  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/exponential_distribution/requirements/typedefs.cc
! 86eaaf07b85d0ef619cf35a1cb746e5c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/gamma_distribution/requirements/typedefs.cc
! 759a3906bf0e3064a545d8a77e9fd46c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/geometric_distribution/requirements/typedefs.cc
! 488781e5746479ae521a69f0d8eeb8ec  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/default.cc
! 9436ce24356c282f6748de09e578a129  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
! 9fcc8c2a7b47c5ad2b640ad36d3d24ff  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed1.cc
! 1d0764ad179a867c7ed6a2f54f59cc69  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed2.cc
! 801bdeb9814d238e80f6add194d454c8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/equal.cc
! af8d049c5a9b4a9c08849d741ac4ec71  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/not_equal.cc
! 0a729b936edfcaebef93018296584dc4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/serialize.cc
! 32c505c9799e28a8ba13f26206899af0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
! d21ed844218a3f41b08ea254e25762d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
! 32d9b3913306be417fc0738b7bbc2231  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/typedefs.cc
! 4d1ea40ad75975593100b89b910b56c2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/default.cc
! d32d3f6922b298a0263298fc610ed7d8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
! 7d30288ced702a587cfa3e0ba52975a8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed1.cc
! e0938afa8f1cb7a8ab251fcfb9640060  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed2.cc
! 3823586e6af9564bef690671053ccf96  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/equal.cc
! 53a54a0adbea77a0d9925a56185d3143  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/not_equal.cc
! a8ad021b762c607dd44069ac2f581d91  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/serialize.cc
! 14f1b42b5a51c0a4613a104cbfc7ff0d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
! ce322f52d2ea104ba05eb521c3bd4893  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/typedefs.cc
! f329ac2ec48aad28163f108c8cabdb23  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand.cc
! 5a52d3781877db899959c044718c4182  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand0.cc
! 36247b78774c8b9f37ffdede430a7a11  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mt19937.cc
! 4b237d6397e2ce18b4ac16222ae01074  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/normal_distribution/requirements/typedefs.cc
! 0f0e5e4b8392cc86a60681806b2f8405  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/poisson_distribution/requirements/typedefs.cc
! 46de671478acbff72b5d94a47f18c7b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/default.cc
! 3b0f3a99116d1344beda8a77a999996b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/token.cc
! 4e8e03eabae0e534bd76e5da4b6984a3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/requirements/typedefs.cc
! 1415927ccdfd3c13dece3e9e055b2da9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3.cc
! 034d4a377e29d7f9f7af0e127967ccee  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc
! a869792bf3d6047dbf6281e3e5f201ab  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4.cc
! 57957f9694dc6886f4e56b9aaa20ac1f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc
! 3697e2b1eaba29c6fea161b4218c1415  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
! 7cc014e8aed9a8955da7b6f8c7883631  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
! 334badfc42cf3f6fbcf165ad94965b60  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed1.cc
! 9bb6d062b60fb85a4f40e5a719d030ca  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed2.cc
! 65f1173ee71535446417401fcbc68ff0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/equal.cc
! 17b893e4eb9b5f8cd22c111464679079  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/not_equal.cc
! 4559163cfaaa0569bbd2f665531fd2e1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/serialize.cc
! dd1ccf1d3fe9fb393d4426e81e992ac5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
! ce80b9e8a830fc2095a4e4e9591d96f2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/typedefs.cc
! cec7e24c4457a5796b4a86648f662719  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/default.cc
! b30f6e9e3aaeb9ec5ae88d22d79d6de1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
! 30a68fc5c53d052c6dea328df01c47da  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed1.cc
! 57729bfa2c478c6d700fcca8ea1bc5b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed2.cc
! e43d3851f564a2f80a0d82cd5b381611  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/equal.cc
! 0513784994412012b2f897e34cbc2192  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/not_equal.cc
! eca2d040fb686eca512a269def8c6baf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/serialize.cc
! 34bd65e5e05ad2cf53907d7ae7579418  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
! 85a9d7c51a463450e44efca7beac2a6b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/typedefs.cc
! d2c09e11029a1ba4154a322671cd1204  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc
! 47e406c8d65179ae5db798b597e2d351  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/default.cc
! cbe66c04bb20f3948c9efb62fb01b8da  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/range.cc
! f9bddc99bec4280cf4707bbba52f55e5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/requirements/typedefs.cc
! 47cdeb5fff1806654f6db46f314207c5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_real/requirements/typedefs.cc
! 5d21902761bffcd75aaccdc0787b66fc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
! 0af09a9387a83a931b49c0d0179c57ee  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc
! c0e4bf11eac5e1c11995f2dae766d8a8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/cons/default.cc
! f87aa9e2bd46adf474531b87623d77cf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/equal.cc
! fc6e156cb4053e02d18443bac4d17931  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/not_equal.cc
! f3776d41209fee3bd4b919d5a4e8fe88  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/serialize.cc
! 98264698423c670927f5402c0d8d5c77  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
! fc61d41ec82fba5ffa348863796b0046  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/typedefs.cc
! 9f616098fbe5fcaa6cb28df368d1441d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc
! bd5f5e508a5cee9f21114f6eea78026b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc
! 4eeba283c8a2a17dba96e7640bc4bb0a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile.cc
! 360089bb266f081392b7a3136fedfa13  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile_2.cc
! e4e937776b6ce164119ccc3b8cc7001f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_nan.cc
! f0f3b09ba8da69796c62ff9ef60b8d77  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
! 27dddcf822912380b8498fe8639f6ec1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile.cc
! e71d15a2c931e6c0117dfa17b0b526d1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile_2.cc
! 419ce7602fa44b9877a43efcd7c0be2e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc
! 014d9a168a68ba29c3ffd5400fa6ab6a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_nan.cc
! d3e80dfb3a06aea47f046b01705c4086  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc
! ee3a1b439ad2a069617fa9eda5a76e6a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile.cc
! 44f6f92fb35ccbbb7d994cf826f4ba53  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile_2.cc
! f02000bd385f8d387eac8e27dc3ebc52  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_nan.cc
! 3fdd9ce56caf1cb09152a713312b30e1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc
! 7cd92df40936823bf19d2db6b14ea1b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile.cc
! ab17bb6fe2abbdae7dce5184cd3016da  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile_2.cc
! 784e42a974476c445bc48ce4982eac2d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_nan.cc
! 5663eaeec68d7b88c271c594fca09463  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc
! 020684c065ef848fe2579821cc34bd1f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile.cc
! 5f92097abbf7c25a38b2df783dbf6c59  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile_2.cc
! bb00fb24b57c246e36fc1252c77b432e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_nan.cc
! d567fb40fd3a12a1d7d9a57144122a67  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc
! ec1ac7bb9dac1b5e07c5fea0914aa042  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile.cc
! 40a3fded46cd556c31b1ff12cb496935  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile_2.cc
  4618aff82312f2efbcdba760637d68b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/pr66689.cc
! f3f6e765aee4e9745d109aad6fabbb27  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_nan.cc
! 3b3c3ab9d4a6e6399d644eb703079a00  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc
! 0e182482e62176361acda8363587b7f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile.cc
! a32d9f279188f9b6df2163db0d9abf06  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_2.cc
! c02835f8ad29ff08748d84dba93b8b08  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
! 779880a6ca23ab481027acc02e212551  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_nan.cc
! c567d62abc8f9012db2cb4d8b9575209  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc
! 389626228945247d27f9bbe1849e06ed  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile.cc
! 0c567a6aa257c0402fbef0182fde866b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile_2.cc
! 682a3bef175970f9c3de5d77aa9e0ff6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc
! d42ad08a4164074acda288bfc737968c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_nan.cc
! 7a81c910c1c5f388395f1bcefb3b83d9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
! 7c01ba243a7624a29ef39fdba0b8be99  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile.cc
! c9bbbdf2d75589425554dd4668e5ba41  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile_2.cc
! 94f01bde9c056d42e3aced764ce54982  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/airy.cc
! 6ad40f993f600d66b508c5ebfedee8f9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_nan.cc
! e2f9a0bedbaf79d4d5eb73d1f2d76747  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc
! 58d85b6d07a8257b52dc8ff20937c63a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile.cc
! 1fa502f5b8899b7706de023922b0bb2f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile_2.cc
! f128f18741c212df51320d2e9e925dcc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_nan.cc
! 82843850b2564321db0cd52b70d6a1c4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
! c158f5b462ec44a970cbe649b1dcf4e6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile.cc
! b78c1156c932cf131cbc8b6938978c75  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile_2.cc
! 7bd86b3f1e046d7c848e5f5c980f6ff7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_nan.cc
! 1aad96c981f21d218040b265945a0937  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc
! 833766834e2ab16931477aa44fa58ed5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile.cc
! e7edf8e982c1b923ce6a14b97897cb1b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile_2.cc
! 0152ebc42f7675b95871678ff347cfed  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_nan.cc
! 7cd501a3b6753896fa39fcfae98e6707  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc
! 5e96f7d51459dfd097b8af6c1401cd89  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile.cc
! 402913df1bb220fc5191f6e15c28013e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile_2.cc
! ba40da57157187b813da60f7fe42220c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_nan.cc
! 92cec458e9bf94b76c4ca85ed182d8b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc
! 635ca88963641bb1d3bbaff9656661a1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile.cc
! 7f07a236c2fb3f08781c90dad1849e09  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile_2.cc
  b780a349356e83ff98346ea066a7c8c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/pr66689.cc
! 16fa984c3e3f61424d8e02b36aad0097  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_nan.cc
! 4caa2989f36f3b5e060d6e8c2dcaa64c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc
! 4e9053fe4b543b774caa7b32d6e0e88b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_pos.cc
! 4395d8ec04ee817ea70a178640232467  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile.cc
! e44ee37a4df22a226aaeb7bac4069b46  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile_2.cc
! 6a7e48963e97dffa64c5763435ec93b0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/pr68397.cc
! 415f72364c761835916198b66f583068  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_nan.cc
! ffc7c7a64e9d09e751fb73f115e1273c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc
! 34e229fd8fa88447c37fa08fbefac008  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile.cc
! fa4f5dc652b011ac8362bdeb3dd0bb76  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile_2.cc
! cddb9ec64f3881f450720cc89b032658  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
! 08e05154b450546a09815b2897c57b0f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc
! e3c56a189b7c4c56b6d4ddb68f8a9fb4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc
! cd8da7240d5ff13ffc7c6bf6803ab84c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc
! 9ea123e03b709726def29bf436b46eda  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
! b5ee34d907a9193fa6fae45ef1d493dc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_nan.cc
! 4a71c9665b11df08760a020c5fa0c1c0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc
! f37fefd2e7437e90bb1b8ea5ee2cf701  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile.cc
! 73b5f3878fcb700477d633be0c3d2d1b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile_2.cc
! f56905b221dfaa6a1620296e42798b56  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_nan.cc
! 8677530283e9f568a5a75085e142dae7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc
! 08567b281094ffd8d3510c08435db8ec  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile.cc
! 22f87116a7f0d5c320b8d939be684247  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile_2.cc
! 01961307971b1363dfd58ed431e6b3fc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_nan.cc
! 3c61bebe45202052b1e2c6961a393e81  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc
! b41cb8dc0d8ba68bc59212e1f7299a43  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_pos.cc
! c32764df0cccac45fdba40b11349bd90  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile.cc
! 5c9f0f60253aafc9f1b92d2c4c3e6e8f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile_2.cc
! acf6a436760da2cc78acb244ba3ffcc4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_nan.cc
! afc5c6cb0c6a0cd67b25fdee1ac316bd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc
! eded7d635c1d6cb21cf67bbe9329a76f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile.cc
! 07ee7063fcbb85220f479aa03c18fefa  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile_2.cc
! 455510f43d6bef6937192dc65addcd83  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_nan.cc
! 2998c8f0517c1dc9d427fb9ac802e71a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc
! d09874cab449b8706d58e8131ed7416d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile.cc
! ee8b1d5be39af661a2d5e4162119366d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile_2.cc
! ae04fb7d1aad2847fec8c052c810ce08  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc
! ee8595eb2e31d94778047c6d9d959b8b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_nan.cc
! efee4be1a6c88b9a10b68bd6e259126c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc
! 2ff7a9a07a69694dda8157199da29f44  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile.cc
! 7ce4983b75ba5db9eac286c610c1bfe7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile_2.cc
! 3f985ed9b6ca49e01d9635b77c8b42c9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/testcase.h
! 5d259c4f07c84bd85d8960239ce010f9  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/empty.cc
! 70573c9c4c30f05f59b02fc5e57c221e  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/max_size.cc
! f57784bfa054914d7ad12c269aa86692  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/size.cc
! 4b57a95bd12fa3c5f2d941c0e6eb75e8  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/equal.cc
! ef25a3539fb5fa40048949756cf098a7  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater.cc
! 295e102f5be47ba3d6da8ff32b0fc71b  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater_or_equal.cc
! f655316d60032d4827a69bd4702c2709  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less.cc
! c9fa2098c5c37f93b9f57996babbdb8a  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less_or_equal.cc
! 5387de20585eaa039e469210f1ae8230  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/not_equal.cc
! d79d5e5b1b4eeecfc1f11ea0ef7e1cc2  libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
! 61450fe3b124847059c6218af3eb9419  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc
! 5ac4f97a6295467718213851230e9707  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/back.cc
! 28b1374cdfa189a2aa0452546555db45  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/data.cc
! 52ed4426d6cd37ea1f29093bf4a1d2d5  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/front.cc
! 5390e127a46c0e1e2aa7c296b77b68b8  libstdc++-v3/testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc
! 56136205468107ddd0daa225593bc36b  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/assign.cc
! 2cc7641471f0c7e4f4a181c83e9c1dba  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/contiguous.cc
! e1a19b585c09ca13422f55dbe8845b7a  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
! ccdb046a6abc176a9e7fa52dbf98d497  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/member_swap.cc
! 78f3b34f057c492eccca5a04cfb80992  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/typedefs.cc
! 4b5f521220c0ce3cde331b88bf2d0899  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
! 262d683ae69762eaa350fb8f4b8457b8  libstdc++-v3/testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc
! a2609e4d76cde30f8f3250aa28b4e9ed  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/get.cc
! 3fdde839f0f032aeb796ff09d5b53309  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_element.cc
! 8b4f53498121780e9c12037a9d34d05f  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_size.cc
! a0f27925a2c5b657695b44e6de1748e6  libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
! 137e717547ee2b5c3ca5215163fa3a85  libstdc++-v3/testsuite/tr1/6_containers/hash/operators/size_t.cc
! 8bab343a620be61d999d4d3586d0ac7c  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
! e88c2d02d5e34a69f55a106ddc0bfae7  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
! 671c2cb9d7e99e0f80e343ad22c7d664  libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
! 344f235b3eaf0e8628b99adf824fd167  libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
! 58cfd75aab66da3fc8aeb8622a229c42  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
! 677d91cc8bda86cabf82760c56df57cb  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
! 1c5d4a7a7141681681882a201c67bbe7  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
! 1271c379e8ed80a561c126305764a61e  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
! 6f493a830be88d572a7cf0fa9bf81be3  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc
! c3bf2a2458201ab6be2ab7d25fcd861a  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc
! 3cf852fe0d226c74a70b9d95821ed62c  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/assignment.cc
! 3c7056bacc22df0fa3a014b9b3edf132  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/big_tuples.cc
! 245da43cf85bd6d780863e6fac4d5201  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/constructor.cc
! 68fad2de190b0051b575f5395090c502  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/23978.cc
! 250f54714df98d3f9c3f7c86c208bd6e  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc
! 87fc9a96cd8c64d1030630363f96e776  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie.cc
! a9a8b0b5af553b2e307a79d68ecc3076  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
! da7761fd53d462a4d73565b8088a053d  libstdc++-v3/testsuite/tr1/6_containers/tuple/element_access/get.cc
! 4bf17f0b38277742f0cc05e171ec2f64  libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
! ee1154e43d4777343d71f3c9ac01c804  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_element.cc
! 691eccc435ec8525682658ca315f2ab1  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_size.cc
! d92371d963cfe1718cd5e9382b079707  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
! 5c824713e2c767a74d2528d2a79f1e56  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
! 9222971be2c716d1a4a6c60527963d8e  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/1.cc
! a8a353d6f75b19c2f5f593bf7a3c65af  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
! 83da44d139274f7697e2f273f52ad742  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
! 86b178f711f49578456b790b37a44c64  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
! 4b569a4159b7101a7ead427a71e9f716  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
! 6a3adb71325b9aa8c6b886e333776ebd  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
! 5bda109b8130913be482cac4efb9f626  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
! a1378f929f6fa57fd02ef7f08c10dc87  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
! 275535e25f699fef16af5fa77ec545b8  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
! 9f2fb64516ff2cb4bf314d123afce1c2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
! 1d4a2e5665e01e418cfd9864607b5e4e  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
! 6a836956ab4dde4b91ebf7fa2db3b2d2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
! 012f393071928f1d6fe57cd68b9b9b7a  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
! b2e94d07997ba509739e3fa25fda2bdd  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
! c40965530ba34a09465cf577c6750df8  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/1.cc
! c7a69e3634bfdee75185744a9b070a4f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
! 602da3f8ba0342731cd903bdb4fe262d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
! 8cbfd69f3ea40045110837abb8e7047d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
! a723dd497639ebf59756c72d084b1a1a  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
! ae34e04e50a85933c47f09c70a8d1f98  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
! 81fbf4fc77fede065bebce1489345cf2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
! 0eb310ec0306a313ddea316ded91409a  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
! d2c404ed0e22cfe93ace6ed0b3fcc87d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
! b3ad97b4bd2e10e01195e440115c2f10  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
! b416299a50e9cf9c7d2a629132d92968  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
! 5c94c92accc7923dc81e90d2d5446bc0  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
! 4ec3f5b6b4c8aedbacef815bbec5c02f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
! 71c9f556b0bc2b46a460eb0b782fd0ac  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
! 4bc13fcaf1645a330154379a3f24b7bc  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/1.cc
! 623182b3ccd250a9e290474d45465964  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
! 6d1f5cc93da83990b0bb5186c7f155a3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
! cf996d26bcb0a74b702297aea584119e  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
! 5b06ddce8b9af38afc6414251b3f9d12  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
! a1d4becc3a3df1e10e46e2ef78dbc5e7  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
! 09db96720ea7fe6a26de06cb297a2feb  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
! d3ec5945c428dde4f1f579cb404959d3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
! 4c23ad1a5792cf3c173e1207fe1a62b0  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
! 815be3e06a0e70af48d7ea0b94b1861a  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
! 756c445887e6d6b353b6d96bbd1a9da1  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
! 332d50683911a5f84487e3290dd66ae7  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
! 564ec0554dbbd23c385bf7d00cf65ac4  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
! 2e47fceabcec66b461c5aad45cf0ed20  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
! e01b639a4d295e88d134b411472c9b3b  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
! db9ebb18e8c173e91bd9c6038154fe02  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
! 968367246fbe093a16dc8b51150c525c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
! 8e7067fd2bc27d4680983b5b4bbf2019  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/1.cc
! fba241f40bcc3509dc5e61eabc4c6ecd  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
! 7ea0c89ee3ede70e04c47052ec16c9ae  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
! 01177154a9bbd62e9d07185a43609a5c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
! 1be515f50491caaf846dc3dc29d97c02  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
! 371f07d85bb0163157e439553995f5f0  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
! 56190734a70803d0e0360cdfefd8ec7b  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
! ca66758d122e47f1341c8861b110e3ac  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
! dcf674b418280f8fbe5065823b969e09  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
! 366828bcb90b99d7fb94bd1131dd8b39  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
! 660af0720bf04a7c391354df85487322  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
! 4a06db706bc3054a8bc8535de82345e2  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
! 666d46e4c715f6e207cb3044e0348ecc  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
! 5b01dd11b1279519fb0642826afdbbdb  libstdc++-v3/testsuite/tr1/6_containers/utility/19535.cc
! 17e0328e2ca12ebaca02ad76ea72ea53  libstdc++-v3/testsuite/tr1/6_containers/utility/pair.cc
! ef993f9580a82d7292250d7f95c364f1  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
! 5baff78506460606a3f14dd63f135cca  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
! ae5b150e19d49f9104cdad58ce4c6b50  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
! 42e45070bfb2e653dacf33796b877d96  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
! 1d6b64c6b7e17a79214b88ee00a4f056  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
! 84acdb4032d1239fb84694bbbfed2948  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
! 8047c1607163df9c9b405257221f0226  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
! c7f60d8b140d0cc08e3a15c362970304  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
! 9d3090c06251ca24c02d9d3bd934a17a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
! 59b9142b76233f05f7d90d102175e534  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
! 71eec3b6ad7ee3472f61a65aa5a1a1dd  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
! c3815073e2ddffca338687899fb6ca15  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
! 594cec6328e349abe7f8284cb35fb2f4  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
! 6f4720fc12ead355f37333f01744a228  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
! 731f2d92d23ff429daaecb2b3e6ab727  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
! 98576404354452d57ba8e2ee7ddcf454  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
! eaa0225d9df9b4ccadd927cca7c9d531  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
! 6d67cc8d9173c4d98d7668367858006f  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
! f5622c60dfeba5d1bbd3afe4bc65ed57  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
! 9531409ca7f57fb6ce1b3a75cbd00c43  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
! c09b9340884c9c613bae10bfeb0ef0ea  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
! c31d76f30c7df28d12110a46192026cd  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
! 34b85230dc304b609109566d9f7fb43d  libstdc++-v3/testsuite/tr1/7_regular_expressions/match_results/ctors/char/default.cc
! a36e5778b5b7fd9d93ec96ca70b8051f  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_awk.cc
! 6115b37bc5998c1186daa0676e966666  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_basic.cc
! 90e810a9532d7a25b66b32119c28eef5  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_ecma.cc
! f4a92f678cb19eb429e37d8ae5e83805  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_egrep.cc
! 753edf9431c3a8d828f33ca0dddc1521  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_grep.cc
! 4b3319e34b94ac1e4d935311144538c1  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/default.cc
! 3c31d6c5a04e0a2ea1b3365a4883e649  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/ctor.cc
! 61639ae6f23134474d0abc86c0a2b51e  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/translate_nocase.cc
! 1f5a0a08fe43ce170d273d7c46b3601b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/value.cc
! 6ed52dd7a269e4b7db38fe2ebf6c124b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/ctor.cc
! 71ebf3e047d676a8dee547be506fffb0  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/translate_nocase.cc
! 1f5a0a08fe43ce170d273d7c46b3601b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/value.cc
! e476706ce0b57190191a143d17c1173c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cctype/functions.cc
! 403af2f9cb2dfb3caaeadcc5e48cf999  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/functions.cc
! ca3ee5ec87ed2edaab0b42774cd362d4  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
! d7e50fc1c189f05adc97f96156f12f32  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
! f68a0d323aad7b0c337e3c684fb9b1ef  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
! c25352339c45f9727a28eecd8d48141c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
! d2ea5b47fae98ef8aa129edc62c77298  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
! f99c89838f636654ff556c8c0e55b448  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
! a9ca951dc1441d37693eae8cc2e57045  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc
! 61e5a112692ba01c350f8ef29a910fc5  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc
! c1a5ac9c686bbae28fc5615e94293b7d  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
! ec840c386620b3d13e3a6861c1a09232  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
! 1ee3ff61314e0fa5ab6f056b07810747  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
! 8b1f7e7f9a9dadd3d3eeb7773eab0ae9  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
! b699a3106f72c93e3aca26c64648fa23  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
! 6a553f5301e0ef97265996b98af4b38f  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
! ffca8aa60bab03e9e9bbb9ee6b451640  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
! 4e5e61e540b618cb204acf62153c2b2e  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc
! 2c4010e64c79bccc61dc734e91b5414c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc
! ae4a84b6eabb38c4a4776acd53263959  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc
! 54c7e81fabe4ddca22edd1ae5e004d56  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc
! 410ce1663be30070dd0000cc32e846d3  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc
! 442d4765c539325df7e5ce897fcef761  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc
! d25dfd02897acbd0ecebe28ab9b99d2d  libstdc++-v3/testsuite/tr1/headers/all.cc
! 205683a43b3f81c33de90c6c1c334e89  libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc
! 3d23e70b1273eaaca098cecd6eb2ceba  libstdc++-v3/testsuite/tr1/headers/c++200x/math.cc
! 40e988522e2ad4eb6a70105fa44c3779  libstdc++-v3/testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc
! 540bc3a9e02366150ec4bbbbd2b96ce0  libstdc++-v3/testsuite/tr1/headers/using_namespace_std_tr1.cc
! e2c55b44198caea18547f41b39c41f2a  libstdc++-v3/testsuite/tr2/bases/requirements/explicit_instantiation.cc
! 60fbd937f339e814085e1817b21db6e6  libstdc++-v3/testsuite/tr2/bases/requirements/typedefs.cc
! 3b7316947a614d36ee44edcfe4330e44  libstdc++-v3/testsuite/tr2/bases/value.cc
! b906e928139fde91717691506d92eacd  libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc
! c6200645b1e1b00436b30eac22955e1a  libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc
! 6e94155e838a79f49ebe0e2af127aed6  libstdc++-v3/testsuite/tr2/direct_bases/value.cc
! 863ffe0784ea37a5f0003b86fa79265a  libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc
! 2823c34e2d405bc62f4810f866550e99  libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc
! d18bebb2d8a9af65ee4af7fa4575e0b2  libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc
! b7f6d39a8955d27281c234f4eb1b7b43  libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc
! bb455cd7974df6cd892858b5c801e9eb  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr115399.cc
! 4e30abe5b29961ab0e7bff25f9e38a3b  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc
! 60dfadecb11b8ec0e174440a86c93d46  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr87784.cc
! fe7e144477f49551ce7c216ccf6241d9  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc
  ecda9a957b2187c0e03c98357f9a8f67  libstdc++-v3/testsuite/tr2/dynamic_bitset/string.cc
! c2d82a64712e696a84172eee992e6e6b  libstdc++-v3/testsuite/tr2/headers/all.cc
! 02e73d52c942bfce3f7f101f125ec1cb  libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc
! 16af9bb932bfa9faea73e9628122752b  libstdc++-v3/testsuite/util/atomic/wait_notify_util.h
! e6aeb1f2acb61179af9747f186eb96cf  libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
! 7090f052a67012a426cfcda428190816  libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
! 7f8e9a544d0ea38cf954d00d4eba6dce  libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
! f56c87f7229a2dd8cc154f1a03d1a7e2  libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
! 19cca0cb54eaf2d6151ed255cc4899ad  libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
! 72a16fd318b0cfa65800fa4abb55c444  libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
! 8ee09da84ebedcedd9a46878882781ba  libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
! 4590afd0a4f4aa7e716564a3355d6d99  libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
! bd807b019a4ba77566998c99313db859  libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
! 78b9a714795bb08a26383fe956b28608  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
! 62a49bda7d59fa833025d596ee61183b  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
! 03faa1c2527263836aeb85787e2fb9e5  libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
! 56ba08f0e41257214468dc382dad8c45  libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
! 22d092f97202e4a459e5056b54ac2137  libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
! 9b7d50fb82c202d838d554969dc67e2e  libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
! 7c187c082e20bb57d454656467eb1b04  libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
! ff2b916d222771b590e8628ab36923e5  libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
! 1e9ec7b42c6e4f14d1419d9ef5a5a7d1  libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
! 80b99e023b02012abf71a149f21b1652  libstdc++-v3/testsuite/util/debug/checks.h
! 2662b34c777180c849b111b7f7550ddd  libstdc++-v3/testsuite/util/debug/unordered_checks.h
! 768e395a1ea93c9426b2c8b01c6798ec  libstdc++-v3/testsuite/util/exception/safety.h
! 5fcb49246388ddc3a703251c5e0283f9  libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
! 26816e0afab9ddc20b02de41dd8b2071  libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
! ca50f7282a6fd2cb8cc768faf6fdb917  libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
! 0190f33dabb9d3e7a7642591f1874025  libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
! 5035371b1359c2cd18d4207674b1f097  libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
! bd5779b644465dbdc75ed60bde08fbe5  libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
! 8e55c7c02f1c784bbcebb10b6a1040dd  libstdc++-v3/testsuite/util/io/prog_bar.cc
! b40e7e686448efbd1cff4b3a35330671  libstdc++-v3/testsuite/util/io/prog_bar.hpp
! c936728cecf14db4860b0afb2f6c7533  libstdc++-v3/testsuite/util/io/text_populate.hpp
! 0a637f162bc634be1e0e507465a59918  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
! 8e18a80d99a09350177abe2a855551bf  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
! 6a3e0d5c97deb5ce67c6768f10fd28a4  libstdc++-v3/testsuite/util/io/xml.hpp
! 820486d6cc4d1ba745c5e3f0d19121c7  libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
! 6757d1a0f1f24008db0a5de8ffb63d54  libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp
! a45d4a32f3391abe7aebd5f8f37c7444  libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp
! d730c403b5305236e20e84e3502cb1bf  libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp
! 8b01d59758bc9d33746681f1219d41ad  libstdc++-v3/testsuite/util/native_type/native_hash_tag.hpp
! 5e71e8277ab4ff11f2219b412dee53db  libstdc++-v3/testsuite/util/native_type/native_map.hpp
! 84ee58599d235b4842b36347c8a82f54  libstdc++-v3/testsuite/util/native_type/native_multimap.hpp
! 724c0f0d64894f8a7b885d69c0a7f4be  libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp
! b6172d195eb21f6c47475ac11789bf0c  libstdc++-v3/testsuite/util/native_type/native_set.hpp
! 08e7825ad46b40ecdf8f6f8cc816f698  libstdc++-v3/testsuite/util/native_type/native_tree_tag.hpp
! f3da0193385383d6b7db05ed8c0cd059  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
! 6960d3c1eb4a361991750ead2b73c2b2  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
! 67ba89d42d6a281abd04230e44d3c21d  libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
! 4449833edc01d172ef60ad69824ef1d7  libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
! 47d719f8ff8a0b57f74db44566de0262  libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
! 61528dc70efc86d55cf517bfb0c2e720  libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
! d561a88a896e9c8fa6fc6ba90b409da1  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
! d5523074781e1d056089422a35ee1688  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
! ce135489612ab4363a0712ee61bf8f39  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
! fee9b628d94a10457af5239d579647ef  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
! 7a596cc490484e3d1bd717f04d870fbc  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
! 47fc82e9d4a86c52d4b3697f347292db  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
! e29f74bbc0a12ccb70484ba0a25cb7a3  libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
! efbea5298f4ecfbcc2a71c85c157a31b  libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
! 0d47a7a840879e2db4c021c08a0c8610  libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
! b618d65d5562c4bb577f62548207bba1  libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
! ecc7497b9ce6e3ebde1b7116430c94b3  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
! c3f6449e12f804b01646cd21242151c3  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
! 4b9e00ad740a4c55ae8619d5fb737463  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
! 19c2fa8ba9e2522c878cabf63c5d9665  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
! c0f380760212f23bd9a8e7a78a05ff79  libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
  f229f005fb6b0edfab2a25224f4aa670  libstdc++-v3/testsuite/util/pstl/pstl_test_config.h
  c9e37353b8b63e5ef350dccbc4776562  libstdc++-v3/testsuite/util/pstl/test_utils.h
! 4cf92cc043ea255a4575695899068aa8  libstdc++-v3/testsuite/util/regression/basic_type.hpp
! 28c3a04a29ae10b23f618124e0c23fab  libstdc++-v3/testsuite/util/regression/common_type.hpp
! 1920340387faacc66cc1e6d9fff1c203  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h
! 8e5f0ece6e8a06287e450076f9dae92a  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc
! 7b6dbe494026f9c29246bdd75bc23452  libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
! 06193bd20a2b43966f991097beaf1fe4  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.h
! 0cd23d052f967ba1719984ccbe08ec4c  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc
! 147dcda05e01b3b72883e837c7f21fe9  libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
! 4a15f2b66cf545c56becfef480efa7d1  libstdc++-v3/testsuite/util/regression/rand/xml_formatter.hpp
! cdec2f77fec0b1e97ffc4a03107630b0  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
! 08ed9b9f1078ac4055b24d3164033665  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
! 401704211e90744c41448de4a030aeef  libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
! 7f6d71068b8d28d19e2b6df139c2b27d  libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
! 4b005bbd971b6ea9358e8ea84b6a1e6b  libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
! 245f6071749b9175af0e53145118dc54  libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
! cc3322daf32dfef10226dac03182f2ee  libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
! 522c871c32be54b18c6b9845ad9b89d9  libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
! 3c369cc334af7327665156f8646eb08c  libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
! 1f3ffde1cbc3c2deaaba4aa8a1c5cc42  libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
! 070850df3f741abb7e903823693f4a5d  libstdc++-v3/testsuite/util/replacement_memory_operators.h
! 99d4cbaba75ebd82b873e8d7925ceea2  libstdc++-v3/testsuite/util/slow_clock.h
! 51dbf138b96548a6af63f2fa5aee085a  libstdc++-v3/testsuite/util/specfun_testcase.h
! bbbd22e9353d1437c3adc6e0ff6b5a3a  libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
! b42a4c3e06ba1cc6a691782e7e7471a8  libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
! e40ab277ce041f5e5e285fc7d50cb06f  libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
! f2b0e4d916814dffed575ea22219e282  libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
! 5ab8e17bb3b378fb1cafbe3b78b41f07  libstdc++-v3/testsuite/util/testsuite_abi.cc
! 115aa7d14fbe6ab56dfbe3ea70aae859  libstdc++-v3/testsuite/util/testsuite_abi.h
! 48ffba86c4669f3a97144b731fcff6cd  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
! 5181eaba4b9bb86b0b6e535b11d64fe3  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! ef74fba6265426ac0bf19e4ccde316a9  libstdc++-v3/testsuite/util/testsuite_allocator.h
! 476f839662a77a0eadd8ff8fa3c9fa2c  libstdc++-v3/testsuite/util/testsuite_api.h
! 760319735b19378de98320351aac54d8  libstdc++-v3/testsuite/util/testsuite_character.cc
! ebb4d891741cf15170ea7d0b26f6ec9e  libstdc++-v3/testsuite/util/testsuite_character.h
! 6a11f85c018158caacf8d7fccde67822  libstdc++-v3/testsuite/util/testsuite_common_types.h
! 2ead6d150332edbff29cd2d40ffd1434  libstdc++-v3/testsuite/util/testsuite_container_traits.h
! 7a36c10b230fb72df354f42343a4ec9a  libstdc++-v3/testsuite/util/testsuite_containergen.h
! 3b6370deb381b3702593a041a7b67270  libstdc++-v3/testsuite/util/testsuite_containers.h
! ab18c25a487f146f5efc9b083a3125c3  libstdc++-v3/testsuite/util/testsuite_counter_type.h
! 81b9ae06f180fe125b5fdc623e163c47  libstdc++-v3/testsuite/util/testsuite_error.h
! 2ee9777061e449a5c7ca5d294f695bac  libstdc++-v3/testsuite/util/testsuite_fs.h
! aa52b04bf095d0226a1314474cb5c3c4  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
! 3d3f95e4c126c7714834db5c046f0867  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! ceb3b471b822ddfb66b4affdd25b568a  libstdc++-v3/testsuite/util/testsuite_hooks.h
! 2cc9d485ece15882c52d8b6a9c1094e8  libstdc++-v3/testsuite/util/testsuite_io.h
! 60fa54c9757059b5e4745847d8b1c310  libstdc++-v3/testsuite/util/testsuite_iterators.h
! bb471f730bbdca73a1658e3b1e4295c0  libstdc++-v3/testsuite/util/testsuite_new_operators.h
! cb452b2ea9afe9f303a9f003d3d6412b  libstdc++-v3/testsuite/util/testsuite_performance.h
! 9e7f7529d1423cbb841bf18d5251891d  libstdc++-v3/testsuite/util/testsuite_random.h
! ea884f70143c35d477bb93d35594c1cf  libstdc++-v3/testsuite/util/testsuite_regex.h
! a44ae6829c2d6cbdbd08359d948c3328  libstdc++-v3/testsuite/util/testsuite_rng.h
! 6e40ca16c3343b0a966b15dca7b1c7fb  libstdc++-v3/testsuite/util/testsuite_rvalref.h
! 32f61a6e93a1a2d287dc27a69ce5895a  libstdc++-v3/testsuite/util/testsuite_shared.cc
  529d22babbd76400264568f2be0d13df  libstdc++-v3/testsuite/util/testsuite_string.h
! 7295ecbf1840cd9a5a4201f3630d1cee  libstdc++-v3/testsuite/util/testsuite_tr1.h
! 8b5ea64e3eece45f10f299183d0e13bd  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  39cc83ca69ddbbe398dd79a2ba6b5499  libtool.m4
! 79a4e8a6b571ff146defcf4d7f9c673b  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
  f2f173b97a24edb63425420b6dafac67  libvtv/testsuite/lib/libvtv-dg.exp
! 23cdea9b6b348caec27ef4f42a08de8f  libvtv/testsuite/lib/libvtv.exp
  dc26824f08dd227e0cba7e7ebc8f4d3a  libvtv/testsuite/libvtv.cc/bb_tests.cc
  9d9288724a9873c407e84c96ef43f56a  libvtv/testsuite/libvtv.cc/const_vtable.cc
  fe36de4d4d62f71439d7698d24cbb0c2  libvtv/testsuite/libvtv.cc/dataentry.cc
*************** e18c427700b2de867318b8dfb4ccdc4e  libvtv
*** 134527,134533 ****
  1af090cb318f05dcac1de1af35049bf3  libvtv/testsuite/libvtv.cc/thunk.cc
  4342d1f35d7a127cbf072aea14c40ca4  libvtv/testsuite/libvtv.cc/thunk_vtable_map_attack.cc
  af622745e9d1ebd1a80806c6a477adda  libvtv/testsuite/libvtv.cc/v8-test-2.cc
! c1c127e3d2356071466b33c87fb7f461  libvtv/testsuite/libvtv.cc/virtfunc-test.cc
  02687d81e25b3d8b61f75737f0a618a9  libvtv/testsuite/libvtv.cc/virtual_inheritance.cc
  85e4bee8e57399ebf8c098da2a829dd0  libvtv/testsuite/libvtv.cc/vtv.exp
  85942493419912cb30bceeaf62d53da8  libvtv/testsuite/libvtv.cc/xlan-test.cc
--- 143082,143088 ----
  1af090cb318f05dcac1de1af35049bf3  libvtv/testsuite/libvtv.cc/thunk.cc
  4342d1f35d7a127cbf072aea14c40ca4  libvtv/testsuite/libvtv.cc/thunk_vtable_map_attack.cc
  af622745e9d1ebd1a80806c6a477adda  libvtv/testsuite/libvtv.cc/v8-test-2.cc
! a08b3af96616fae47e34cde5e4d0dec0  libvtv/testsuite/libvtv.cc/virtfunc-test.cc
  02687d81e25b3d8b61f75737f0a618a9  libvtv/testsuite/libvtv.cc/virtual_inheritance.cc
  85e4bee8e57399ebf8c098da2a829dd0  libvtv/testsuite/libvtv.cc/vtv.exp
  85942493419912cb30bceeaf62d53da8  libvtv/testsuite/libvtv.cc/xlan-test.cc
*************** dc2332c7582cf3d236d0ee930f63eca3  libvtv
*** 134537,134543 ****
  8ef0aa7efe1764eeb6f68dbd51e6d4b5  libvtv/testsuite/libvtv.mt.cc/mt.exp
  bb4ece037690dc6ecdd0c04662562123  libvtv/testsuite/libvtv.mt.cc/register_set_pair_inserts_mt.cc
  4028191848aead5f1025ef6d51d6460e  libvtv/testsuite/libvtv.mt.cc/register_set_pair_mt.cc
! 8718882bbc6bab92e7d80bfbcfc1bdcd  libvtv/testsuite/other-tests/Makefile.am
  481aa959d973aa72ca282a2b6db129e3  libvtv/testsuite/other-tests/Makefile.in
  ed7bc4ea169d6384a32fd76063d7af7f  libvtv/testsuite/other-tests/README
  32bbdc8e2683c298b41d8d68281dd6ea  libvtv/testsuite/other-tests/dlopen.cc
--- 143092,143098 ----
  8ef0aa7efe1764eeb6f68dbd51e6d4b5  libvtv/testsuite/libvtv.mt.cc/mt.exp
  bb4ece037690dc6ecdd0c04662562123  libvtv/testsuite/libvtv.mt.cc/register_set_pair_inserts_mt.cc
  4028191848aead5f1025ef6d51d6460e  libvtv/testsuite/libvtv.mt.cc/register_set_pair_mt.cc
! 91a8655eb219cea33e7734486492e018  libvtv/testsuite/other-tests/Makefile.am
  481aa959d973aa72ca282a2b6db129e3  libvtv/testsuite/other-tests/Makefile.in
  ed7bc4ea169d6384a32fd76063d7af7f  libvtv/testsuite/other-tests/README
  32bbdc8e2683c298b41d8d68281dd6ea  libvtv/testsuite/other-tests/dlopen.cc
*************** a39c1926ca0a1bac2ffa3e5389fe2eb2  libvtv
*** 134550,134591 ****
  fd1ee5c194e5759320643df81103775d  libvtv/testsuite/other-tests/temp_deriv.cc
  a28f0d44162e9d978de21ea4c82b411e  libvtv/testsuite/other-tests/temp_deriv2.cc
  fd44dfd4ba421163f0a14a74988ea97a  libvtv/testsuite/other-tests/temp_deriv3.cc
! 88870f63b78f08eedfa71c929cda9989  libvtv/vtv_fail.cc
! 5e3d7333363a763d2f51dff7fb2e6f04  libvtv/vtv_fail.h
! e8c3a50e00723ff3af14b3bffe87e621  libvtv/vtv_malloc.cc
! 9ac847eeceec83fbe23b9a0e532704b9  libvtv/vtv_malloc.h
! 25f5f96cb0b1e5ef4282b29a0ad0b548  libvtv/vtv_map.h
! e6d3e9b6f3d0315207ff8d39a58b5883  libvtv/vtv_rts.cc
! a937e32b16998a00acabb213ae6ea637  libvtv/vtv_rts.h
! 44bc0a6622cf27dda03030f9e4f87e7e  libvtv/vtv_set.h
! e425b1ea462f3c529b34b9ff001bbf9a  libvtv/vtv_utils.cc
! cd4cfb8e65a8423c9c7dd4fc50514f25  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
! 06c2854f9cfe5864b2885e0d0e9c512f  ltmain.sh
! 0793839dbe365524698d23676a976eb6  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
! 9dfea491b8578d0e7ca53f900f5d5c6b  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
  dee72a6a60e99528b0d17bf3ff9a1e15  ltoptions.m4
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 94e74dcdaefc7680c3a9a8b0a5dca1fa  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 7e28134a228d7e3d37cc3f4d1e04a082  maintainer-scripts/crontab
! 1658fae6d4e2e516394d6b3a24f43cd4  maintainer-scripts/gcc_release
  262d529ab10d5bd398f14fc1ec9fed1a  maintainer-scripts/generate_libstdcxx_web_docs
  33d97164a8610c7abf67eff7d28f47ff  maintainer-scripts/maintainer-addresses
  1fcc4f18e9f9043eaea6c3c990d96d9b  maintainer-scripts/setup.cfg
  1012437849cecda6e54b3948f279ae93  maintainer-scripts/update_version_git
! b06e088f73db888cd627fb23eaa2a58d  maintainer-scripts/update_web_docs_git
  89960da3ee98bea76c62bf0bf235d1f9  maintainer-scripts/update_web_docs_libstdcxx_git
  5f2a276ee7b8decec541391229d03591  missing
  fbe2467afef81c41c166173adeb0ee20  mkdep
--- 143105,143146 ----
  fd1ee5c194e5759320643df81103775d  libvtv/testsuite/other-tests/temp_deriv.cc
  a28f0d44162e9d978de21ea4c82b411e  libvtv/testsuite/other-tests/temp_deriv2.cc
  fd44dfd4ba421163f0a14a74988ea97a  libvtv/testsuite/other-tests/temp_deriv3.cc
! ca81e76211810321475545014630abc5  libvtv/vtv_fail.cc
! 54106ee4885f205a10a6a885a6d363ee  libvtv/vtv_fail.h
! e03ab66ca96aa5422e0d7695afd112c2  libvtv/vtv_malloc.cc
! eb35f91b168df67df3af4474b5d3cb56  libvtv/vtv_malloc.h
! 7db59067764bb7125654449f41491176  libvtv/vtv_map.h
! 99111a3a0f93cb77c50d536823273a79  libvtv/vtv_rts.cc
! 36b3ad80a7988dfc75b4ce67cfcf827e  libvtv/vtv_rts.h
! b75b4606a8f849a2e4931aeabb4c2165  libvtv/vtv_set.h
! 7fd9b0b2a4a969b7412e6146b0443ef1  libvtv/vtv_utils.cc
! 343510afde83a825cc4129be092e4f05  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
! 2d10540be0b9516e14daf48616877aad  ltmain.sh
! 34b7a40559e115a0cf9665ef724ecb12  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
  dee72a6a60e99528b0d17bf3ff9a1e15  ltoptions.m4
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 139a1b67a8aabd91f007421ce201d624  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 60e7f0e20854a0ea157c28792ffb31c6  maintainer-scripts/crontab
! cf8961e163bb73d37e0d1cf9774c385e  maintainer-scripts/gcc_release
  262d529ab10d5bd398f14fc1ec9fed1a  maintainer-scripts/generate_libstdcxx_web_docs
  33d97164a8610c7abf67eff7d28f47ff  maintainer-scripts/maintainer-addresses
  1fcc4f18e9f9043eaea6c3c990d96d9b  maintainer-scripts/setup.cfg
  1012437849cecda6e54b3948f279ae93  maintainer-scripts/update_version_git
! d5ee8d725eecdfbceac1dafa2748d5f5  maintainer-scripts/update_web_docs_git
  89960da3ee98bea76c62bf0bf235d1f9  maintainer-scripts/update_web_docs_libstdcxx_git
  5f2a276ee7b8decec541391229d03591  missing
  fbe2467afef81c41c166173adeb0ee20  mkdep
*************** cf2baa0854f564a7785307e79f155efc  symlin
*** 134596,134602 ****
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! d2b9c7859847eb54ae082676733c2e55  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
--- 143151,143157 ----
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! 7ed2cf76762884814bbd67eb5a52e2ea  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
diff -Nrcpad gcc-14.2.0/Makefile.def gcc-15.1.0/Makefile.def
*** gcc-14.2.0/Makefile.def	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/Makefile.def	Fri Apr 25 08:17:59 2025
*************** target_modules = { module= libgomp; boot
*** 209,214 ****
--- 209,215 ----
  target_modules = { module= libitm; lib_path=.libs; };
  target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; };
  target_modules = { module= libgrust; };
+ target_modules = { module= libgcobol; };
  
  // These are (some of) the make targets to be done in each subdirectory.
  // Not all; these are the ones which don't have special options.
*************** lang_env_dependencies = { module=libgcc;
*** 655,660 ****
--- 656,662 ----
  // built newlib on some targets (e.g. Cygwin).  It still needs
  // a dependency on libgcc for native targets to configure.
  lang_env_dependencies = { module=libiberty; no_c=true; };
+ lang_env_dependencies = { module=libgcobol; cxx=true; };
  
  dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
  dependencies = { module=all-target-fastjar; on=all-target-zlib; };
*************** dependencies = { module=install-target-l
*** 690,695 ****
--- 692,699 ----
  dependencies = { module=install-target-libitm; on=install-target-libgcc; };
  dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
  dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
+ dependencies = { module=install-target-libgcobol; on=install-target-libstdc++-v3; };
+ dependencies = { module=install-target-libgcobol; on=install-target-libquadmath; };
  
  // Target modules in the 'src' repository.
  lang_env_dependencies = { module=libtermcap; };
*************** dependencies = { module=configure-target
*** 703,708 ****
--- 707,713 ----
  dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath; };
  dependencies = { module=configure-target-libgfortran; on=all-target-libbacktrace; };
  dependencies = { module=configure-target-libgo; on=all-target-libbacktrace; };
+ dependencies = { module=configure-target-libgcobol; on=all-target-libquadmath; };
  
  languages = { language=c;	gcc-check-target=check-gcc; };
  languages = { language=c++;	gcc-check-target=check-c++;
*************** languages = { language=d;	gcc-check-targ
*** 727,732 ****
--- 732,739 ----
  				lib-check-target=check-target-libphobos; };
  languages = { language=jit;	gcc-check-target=check-jit; };
  languages = { language=rust;	gcc-check-target=check-rust; };
+ languages = { language=cobol;	gcc-check-target=check-cobol;
+ 				lib-check-target=check-target-libgcobol; };
  
  // Toplevel bootstrap
  bootstrap_stage = { id=1 ; };
diff -Nrcpad gcc-14.2.0/Makefile.in gcc-15.1.0/Makefile.in
*** gcc-14.2.0/Makefile.in	Thu Aug  1 08:18:42 2024
--- gcc-15.1.0/Makefile.in	Fri Apr 25 08:17:59 2025
***************
*** 10,21 ****
  # 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; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
--- 10,21 ----
  # 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; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
*************** HOST_EXPORTS = \
*** 197,202 ****
--- 197,203 ----
  	$(BASE_EXPORTS) \
  	CC="$(CC)"; export CC; \
  	ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
+ 	CRAB1_LIBS="$(CRAB1_LIBS)"; export CRAB1_LIBS; \
  	CFLAGS="$(CFLAGS)"; export CFLAGS; \
  	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
  	CXX="$(CXX)"; export CXX; \
*************** RAW_CXX_TARGET_EXPORTS = \
*** 338,343 ****
--- 339,345 ----
  
  NORMAL_TARGET_EXPORTS = \
  	$(BASE_TARGET_EXPORTS) \
+ 	CXX_FOR_TARGET="$(CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
  	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
  
  # Where to find GMP
*************** GOCFLAGS = $(CFLAGS)
*** 450,455 ****
--- 452,459 ----
  GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
+ CRAB1_LIBS = @CRAB1_LIBS@
+ 
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
  GUILE = guile
*************** STAGEautofeedback_CONFIGURE_FLAGS = $(ST
*** 607,620 ****
  STAGE1_CFLAGS = @stage1_cflags@
  STAGE1_CHECKING = @stage1_checking@
  STAGE1_LANGUAGES = @stage1_languages@
! # * We force-disable intermodule optimizations, even if
! #   --enable-intermodule was passed, since the installed compiler
! #   probably can't handle them.  Luckily, autoconf always respects
! #   the last argument when conflicting --enable arguments are passed.
! # * Likewise, we force-disable coverage flags, since the installed
! #   compiler probably has never heard of them.
  # * We also disable -Wformat, since older GCCs don't understand newer %s.
! STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
--- 611,621 ----
  STAGE1_CFLAGS = @stage1_cflags@
  STAGE1_CHECKING = @stage1_checking@
  STAGE1_LANGUAGES = @stage1_languages@
! # * We force-disable coverage flags, since the installed compiler probably
! #   has never heard of them. Luckily, autoconf always respects the last
! #   argument when conflicting --enable arguments are passed.
  # * We also disable -Wformat, since older GCCs don't understand newer %s.
! STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
*************** configure-target:  \
*** 1162,1168 ****
      maybe-configure-target-libgomp \
      maybe-configure-target-libitm \
      maybe-configure-target-libatomic \
!     maybe-configure-target-libgrust
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
--- 1163,1170 ----
      maybe-configure-target-libgomp \
      maybe-configure-target-libitm \
      maybe-configure-target-libatomic \
!     maybe-configure-target-libgrust \
!     maybe-configure-target-libgcobol
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
*************** all-target: maybe-all-target-libitm
*** 1366,1371 ****
--- 1368,1374 ----
  all-target: maybe-all-target-libatomic
  @endif target-libatomic-no-bootstrap
  all-target: maybe-all-target-libgrust
+ all-target: maybe-all-target-libgcobol
  
  # Do a target for all the subdirectories.  A ``make do-X'' will do a
  # ``make X'' in all subdirectories (because, in general, there is a
*************** info-target: maybe-info-target-libgomp
*** 1464,1469 ****
--- 1467,1473 ----
  info-target: maybe-info-target-libitm
  info-target: maybe-info-target-libatomic
  info-target: maybe-info-target-libgrust
+ info-target: maybe-info-target-libgcobol
  
  .PHONY: do-dvi
  do-dvi:
*************** dvi-target: maybe-dvi-target-libgomp
*** 1557,1562 ****
--- 1561,1567 ----
  dvi-target: maybe-dvi-target-libitm
  dvi-target: maybe-dvi-target-libatomic
  dvi-target: maybe-dvi-target-libgrust
+ dvi-target: maybe-dvi-target-libgcobol
  
  .PHONY: do-pdf
  do-pdf:
*************** pdf-target: maybe-pdf-target-libgomp
*** 1650,1655 ****
--- 1655,1661 ----
  pdf-target: maybe-pdf-target-libitm
  pdf-target: maybe-pdf-target-libatomic
  pdf-target: maybe-pdf-target-libgrust
+ pdf-target: maybe-pdf-target-libgcobol
  
  .PHONY: do-html
  do-html:
*************** html-target: maybe-html-target-libgomp
*** 1743,1748 ****
--- 1749,1755 ----
  html-target: maybe-html-target-libitm
  html-target: maybe-html-target-libatomic
  html-target: maybe-html-target-libgrust
+ html-target: maybe-html-target-libgcobol
  
  .PHONY: do-TAGS
  do-TAGS:
*************** TAGS-target: maybe-TAGS-target-libgomp
*** 1836,1841 ****
--- 1843,1849 ----
  TAGS-target: maybe-TAGS-target-libitm
  TAGS-target: maybe-TAGS-target-libatomic
  TAGS-target: maybe-TAGS-target-libgrust
+ TAGS-target: maybe-TAGS-target-libgcobol
  
  .PHONY: do-install-info
  do-install-info:
*************** install-info-target: maybe-install-info-
*** 1929,1934 ****
--- 1937,1943 ----
  install-info-target: maybe-install-info-target-libitm
  install-info-target: maybe-install-info-target-libatomic
  install-info-target: maybe-install-info-target-libgrust
+ install-info-target: maybe-install-info-target-libgcobol
  
  .PHONY: do-install-dvi
  do-install-dvi:
*************** install-dvi-target: maybe-install-dvi-ta
*** 2022,2027 ****
--- 2031,2037 ----
  install-dvi-target: maybe-install-dvi-target-libitm
  install-dvi-target: maybe-install-dvi-target-libatomic
  install-dvi-target: maybe-install-dvi-target-libgrust
+ install-dvi-target: maybe-install-dvi-target-libgcobol
  
  .PHONY: do-install-pdf
  do-install-pdf:
*************** install-pdf-target: maybe-install-pdf-ta
*** 2115,2120 ****
--- 2125,2131 ----
  install-pdf-target: maybe-install-pdf-target-libitm
  install-pdf-target: maybe-install-pdf-target-libatomic
  install-pdf-target: maybe-install-pdf-target-libgrust
+ install-pdf-target: maybe-install-pdf-target-libgcobol
  
  .PHONY: do-install-html
  do-install-html:
*************** install-html-target: maybe-install-html-
*** 2208,2213 ****
--- 2219,2225 ----
  install-html-target: maybe-install-html-target-libitm
  install-html-target: maybe-install-html-target-libatomic
  install-html-target: maybe-install-html-target-libgrust
+ install-html-target: maybe-install-html-target-libgcobol
  
  .PHONY: do-installcheck
  do-installcheck:
*************** installcheck-target: maybe-installcheck-
*** 2301,2306 ****
--- 2313,2319 ----
  installcheck-target: maybe-installcheck-target-libitm
  installcheck-target: maybe-installcheck-target-libatomic
  installcheck-target: maybe-installcheck-target-libgrust
+ installcheck-target: maybe-installcheck-target-libgcobol
  
  .PHONY: do-mostlyclean
  do-mostlyclean:
*************** mostlyclean-target: maybe-mostlyclean-ta
*** 2394,2399 ****
--- 2407,2413 ----
  mostlyclean-target: maybe-mostlyclean-target-libitm
  mostlyclean-target: maybe-mostlyclean-target-libatomic
  mostlyclean-target: maybe-mostlyclean-target-libgrust
+ mostlyclean-target: maybe-mostlyclean-target-libgcobol
  
  .PHONY: do-clean
  do-clean:
*************** clean-target: maybe-clean-target-libgomp
*** 2487,2492 ****
--- 2501,2507 ----
  clean-target: maybe-clean-target-libitm
  clean-target: maybe-clean-target-libatomic
  clean-target: maybe-clean-target-libgrust
+ clean-target: maybe-clean-target-libgcobol
  
  .PHONY: do-distclean
  do-distclean:
*************** distclean-target: maybe-distclean-target
*** 2580,2585 ****
--- 2595,2601 ----
  distclean-target: maybe-distclean-target-libitm
  distclean-target: maybe-distclean-target-libatomic
  distclean-target: maybe-distclean-target-libgrust
+ distclean-target: maybe-distclean-target-libgcobol
  
  .PHONY: do-maintainer-clean
  do-maintainer-clean:
*************** maintainer-clean-target: maybe-maintaine
*** 2673,2678 ****
--- 2689,2695 ----
  maintainer-clean-target: maybe-maintainer-clean-target-libitm
  maintainer-clean-target: maybe-maintainer-clean-target-libatomic
  maintainer-clean-target: maybe-maintainer-clean-target-libgrust
+ maintainer-clean-target: maybe-maintainer-clean-target-libgcobol
  
  
  # Here are the targets which correspond to the do-X targets.
*************** check-target:  \
*** 2823,2829 ****
      maybe-check-target-libgomp \
      maybe-check-target-libitm \
      maybe-check-target-libatomic \
!     maybe-check-target-libgrust
  
  do-check:
  	@: $(MAKE); $(unstage)
--- 2840,2847 ----
      maybe-check-target-libgomp \
      maybe-check-target-libitm \
      maybe-check-target-libatomic \
!     maybe-check-target-libgrust \
!     maybe-check-target-libgcobol
  
  do-check:
  	@: $(MAKE); $(unstage)
*************** install-target:  \
*** 3020,3026 ****
      maybe-install-target-libgomp \
      maybe-install-target-libitm \
      maybe-install-target-libatomic \
!     maybe-install-target-libgrust
  
  uninstall:
  	@echo "the uninstall target is not supported in this tree"
--- 3038,3045 ----
      maybe-install-target-libgomp \
      maybe-install-target-libitm \
      maybe-install-target-libatomic \
!     maybe-install-target-libgrust \
!     maybe-install-target-libgcobol
  
  uninstall:
  	@echo "the uninstall target is not supported in this tree"
*************** install-strip-target:  \
*** 3133,3139 ****
      maybe-install-strip-target-libgomp \
      maybe-install-strip-target-libitm \
      maybe-install-strip-target-libatomic \
!     maybe-install-strip-target-libgrust
  
  
  ### other supporting targets
--- 3152,3159 ----
      maybe-install-strip-target-libgomp \
      maybe-install-strip-target-libitm \
      maybe-install-strip-target-libatomic \
!     maybe-install-strip-target-libgrust \
!     maybe-install-strip-target-libgcobol
  
  
  ### other supporting targets
*************** maintainer-clean-target-libgrust:
*** 63688,63693 ****
--- 63708,64198 ----
  
  
  
+ 
+ 
+ .PHONY: configure-target-libgcobol maybe-configure-target-libgcobol
+ maybe-configure-target-libgcobol:
+ @if gcc-bootstrap
+ configure-target-libgcobol: stage_current
+ @endif gcc-bootstrap
+ @if target-libgcobol
+ maybe-configure-target-libgcobol: configure-target-libgcobol
+ configure-target-libgcobol: 
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	echo "Checking multilib configuration for libgcobol..."; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \
+ 	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcobol/multilib.tmp 2> /dev/null; \
+ 	if test -r $(TARGET_SUBDIR)/libgcobol/multilib.out; then \
+ 	  if cmp -s $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; then \
+ 	    rm -f $(TARGET_SUBDIR)/libgcobol/multilib.tmp; \
+ 	  else \
+ 	    rm -f $(TARGET_SUBDIR)/libgcobol/Makefile; \
+ 	    mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; \
+ 	  fi; \
+ 	else \
+ 	  mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; \
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcobol/Makefile || exit 0; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	echo Configuring in $(TARGET_SUBDIR)/libgcobol; \
+ 	cd "$(TARGET_SUBDIR)/libgcobol" || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(TARGET_SUBDIR)/libgcobol/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgcobol; \
+ 	rm -f no-such-file || : ; \
+ 	CONFIG_SITE=no-such-file $(SHELL) \
+ 	  $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+ 	  --target=${target_alias}  \
+ 	  || exit 1
+ @endif target-libgcobol
+ 
+ 
+ 
+ 
+ 
+ .PHONY: all-target-libgcobol maybe-all-target-libgcobol
+ maybe-all-target-libgcobol:
+ @if gcc-bootstrap
+ all-target-libgcobol: stage_current
+ @endif gcc-bootstrap
+ @if target-libgcobol
+ TARGET-target-libgcobol=all
+ maybe-all-target-libgcobol: all-target-libgcobol
+ all-target-libgcobol: configure-target-libgcobol
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-target-libgcobol))
+ @endif target-libgcobol
+ 
+ 
+ 
+ 
+ 
+ .PHONY: check-target-libgcobol maybe-check-target-libgcobol
+ maybe-check-target-libgcobol:
+ @if target-libgcobol
+ maybe-check-target-libgcobol: check-target-libgcobol
+ 
+ check-target-libgcobol:
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: install-target-libgcobol maybe-install-target-libgcobol
+ maybe-install-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-target-libgcobol: install-target-libgcobol
+ 
+ install-target-libgcobol: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: install-strip-target-libgcobol maybe-install-strip-target-libgcobol
+ maybe-install-strip-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-strip-target-libgcobol: install-strip-target-libgcobol
+ 
+ install-strip-target-libgcobol: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
+ 
+ @endif target-libgcobol
+ 
+ # Other targets (info, dvi, pdf, etc.)
+ 
+ .PHONY: maybe-info-target-libgcobol info-target-libgcobol
+ maybe-info-target-libgcobol:
+ @if target-libgcobol
+ maybe-info-target-libgcobol: info-target-libgcobol
+ 
+ info-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing info in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           info) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-dvi-target-libgcobol dvi-target-libgcobol
+ maybe-dvi-target-libgcobol:
+ @if target-libgcobol
+ maybe-dvi-target-libgcobol: dvi-target-libgcobol
+ 
+ dvi-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing dvi in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           dvi) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-pdf-target-libgcobol pdf-target-libgcobol
+ maybe-pdf-target-libgcobol:
+ @if target-libgcobol
+ maybe-pdf-target-libgcobol: pdf-target-libgcobol
+ 
+ pdf-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing pdf in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           pdf) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-html-target-libgcobol html-target-libgcobol
+ maybe-html-target-libgcobol:
+ @if target-libgcobol
+ maybe-html-target-libgcobol: html-target-libgcobol
+ 
+ html-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing html in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           html) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-TAGS-target-libgcobol TAGS-target-libgcobol
+ maybe-TAGS-target-libgcobol:
+ @if target-libgcobol
+ maybe-TAGS-target-libgcobol: TAGS-target-libgcobol
+ 
+ TAGS-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing TAGS in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           TAGS) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-install-info-target-libgcobol install-info-target-libgcobol
+ maybe-install-info-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-info-target-libgcobol: install-info-target-libgcobol
+ 
+ install-info-target-libgcobol: \
+     configure-target-libgcobol \
+     info-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-info in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-info) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-install-dvi-target-libgcobol install-dvi-target-libgcobol
+ maybe-install-dvi-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-dvi-target-libgcobol: install-dvi-target-libgcobol
+ 
+ install-dvi-target-libgcobol: \
+     configure-target-libgcobol \
+     dvi-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-dvi in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-dvi) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-install-pdf-target-libgcobol install-pdf-target-libgcobol
+ maybe-install-pdf-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-pdf-target-libgcobol: install-pdf-target-libgcobol
+ 
+ install-pdf-target-libgcobol: \
+     configure-target-libgcobol \
+     pdf-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-pdf) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-install-html-target-libgcobol install-html-target-libgcobol
+ maybe-install-html-target-libgcobol:
+ @if target-libgcobol
+ maybe-install-html-target-libgcobol: install-html-target-libgcobol
+ 
+ install-html-target-libgcobol: \
+     configure-target-libgcobol \
+     html-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-html in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-html) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-installcheck-target-libgcobol installcheck-target-libgcobol
+ maybe-installcheck-target-libgcobol:
+ @if target-libgcobol
+ maybe-installcheck-target-libgcobol: installcheck-target-libgcobol
+ 
+ installcheck-target-libgcobol: \
+     configure-target-libgcobol 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing installcheck in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           installcheck) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-mostlyclean-target-libgcobol mostlyclean-target-libgcobol
+ maybe-mostlyclean-target-libgcobol:
+ @if target-libgcobol
+ maybe-mostlyclean-target-libgcobol: mostlyclean-target-libgcobol
+ 
+ mostlyclean-target-libgcobol: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           mostlyclean) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-clean-target-libgcobol clean-target-libgcobol
+ maybe-clean-target-libgcobol:
+ @if target-libgcobol
+ maybe-clean-target-libgcobol: clean-target-libgcobol
+ 
+ clean-target-libgcobol: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing clean in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           clean) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-distclean-target-libgcobol distclean-target-libgcobol
+ maybe-distclean-target-libgcobol:
+ @if target-libgcobol
+ maybe-distclean-target-libgcobol: distclean-target-libgcobol
+ 
+ distclean-target-libgcobol: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing distclean in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           distclean) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ .PHONY: maybe-maintainer-clean-target-libgcobol maintainer-clean-target-libgcobol
+ maybe-maintainer-clean-target-libgcobol:
+ @if target-libgcobol
+ maybe-maintainer-clean-target-libgcobol: maintainer-clean-target-libgcobol
+ 
+ maintainer-clean-target-libgcobol: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgcobol"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgcobol && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           maintainer-clean) \
+ 	  || exit 1
+ 
+ @endif target-libgcobol
+ 
+ 
+ 
  @if target-libgomp
  .PHONY: check-target-libgomp-c++
  check-target-libgomp-c++:
*************** check-gcc-rust: gcc-site.exp
*** 63822,63827 ****
--- 64327,64340 ----
  	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-rust);
  check-rust: check-gcc-rust
  
+ .PHONY: check-gcc-cobol check-cobol
+ check-gcc-cobol: gcc-site.exp
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-cobol);
+ check-cobol: check-gcc-cobol check-target-libgcobol
+ 
  
  # The gcc part of install-no-fixedincludes, which relies on an intimate
  # knowledge of how a number of gcc internal targets (inter)operate.  Delegate.
*************** configure-stagefeedback-target-libatomic
*** 67383,67388 ****
--- 67896,67902 ----
  configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-gcc
  configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc
  configure-target-libgrust: stage_last
+ configure-target-libgcobol: stage_last
  @endif gcc-bootstrap
  
  @if gcc-no-bootstrap
*************** configure-target-libgomp: maybe-all-gcc
*** 67410,67415 ****
--- 67924,67930 ----
  configure-target-libitm: maybe-all-gcc
  configure-target-libatomic: maybe-all-gcc
  configure-target-libgrust: maybe-all-gcc
+ configure-target-libgcobol: maybe-all-gcc
  @endif gcc-no-bootstrap
  
  
*************** install-target-libvtv: maybe-install-tar
*** 68654,68662 ****
--- 69169,69180 ----
  install-target-libitm: maybe-install-target-libgcc
  install-target-libobjc: maybe-install-target-libgcc
  install-target-libstdc++-v3: maybe-install-target-libgcc
+ install-target-libgcobol: maybe-install-target-libstdc++-v3
+ install-target-libgcobol: maybe-install-target-libquadmath
  all-target-libgloss: maybe-all-target-newlib
  all-target-winsup: maybe-all-target-libtermcap
  configure-target-libgfortran: maybe-all-target-libquadmath
+ configure-target-libgcobol: maybe-all-target-libquadmath
  
  
  @if gcc-bootstrap
*************** configure-target-libgomp: maybe-all-targ
*** 68873,68878 ****
--- 69391,69397 ----
  configure-target-libitm: maybe-all-target-libgcc
  configure-target-libatomic: maybe-all-target-libgcc
  configure-target-libgrust: maybe-all-target-libgcc
+ configure-target-libgcobol: maybe-all-target-libgcc
  @endif gcc-no-bootstrap
  
  
*************** configure-target-libatomic: maybe-all-ta
*** 68923,68928 ****
--- 69442,69450 ----
  
  configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss
  
+ configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss
+ configure-target-libgcobol: maybe-all-target-libstdc++-v3
+ 
  
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
diff -Nrcpad gcc-14.2.0/Makefile.tpl gcc-15.1.0/Makefile.tpl
*** gcc-14.2.0/Makefile.tpl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/Makefile.tpl	Fri Apr 25 08:17:59 2025
*************** in
*** 13,24 ****
  # 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; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
--- 13,24 ----
  # 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; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
*************** HOST_EXPORTS = \
*** 200,205 ****
--- 200,206 ----
  	$(BASE_EXPORTS) \
  	CC="$(CC)"; export CC; \
  	ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
+ 	CRAB1_LIBS="$(CRAB1_LIBS)"; export CRAB1_LIBS; \
  	CFLAGS="$(CFLAGS)"; export CFLAGS; \
  	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
  	CXX="$(CXX)"; export CXX; \
*************** RAW_CXX_TARGET_EXPORTS = \
*** 341,346 ****
--- 342,348 ----
  
  NORMAL_TARGET_EXPORTS = \
  	$(BASE_TARGET_EXPORTS) \
+ 	CXX_FOR_TARGET="$(CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
  	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
  
  # Where to find GMP
*************** GOCFLAGS = $(CFLAGS)
*** 453,458 ****
--- 455,462 ----
  GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
+ CRAB1_LIBS = @CRAB1_LIBS@
+ 
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
  GUILE = guile
*************** STAGE[+id+]_CONFIGURE_FLAGS = $(STAGE_CO
*** 530,543 ****
  STAGE1_CFLAGS = @stage1_cflags@
  STAGE1_CHECKING = @stage1_checking@
  STAGE1_LANGUAGES = @stage1_languages@
! # * We force-disable intermodule optimizations, even if
! #   --enable-intermodule was passed, since the installed compiler
! #   probably can't handle them.  Luckily, autoconf always respects
! #   the last argument when conflicting --enable arguments are passed.
! # * Likewise, we force-disable coverage flags, since the installed
! #   compiler probably has never heard of them.
  # * We also disable -Wformat, since older GCCs don't understand newer %s.
! STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
--- 534,544 ----
  STAGE1_CFLAGS = @stage1_cflags@
  STAGE1_CHECKING = @stage1_checking@
  STAGE1_LANGUAGES = @stage1_languages@
! # * We force-disable coverage flags, since the installed compiler probably
! #   has never heard of them. Luckily, autoconf always respects the last
! #   argument when conflicting --enable arguments are passed.
  # * We also disable -Wformat, since older GCCs don't understand newer %s.
! STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
diff -Nrcpad gcc-14.2.0/NEWS gcc-15.1.0/NEWS
*** gcc-14.2.0/NEWS	Thu Aug  1 08:19:56 2024
--- gcc-15.1.0/NEWS	Fri Apr 25 08:25:16 2025
*************** that led to GCC 3. For information on GC
*** 5,10 ****
--- 5,938 ----
  see ONEWS.
  
  ======================================================================
+ http://gcc.gnu.org/gcc-15/index.html
+                              GCC 15 Release Series
+ 
+    April 25, 2025
+ 
+    The GCC developers are pleased to announce the release of GCC 15.1.
+ 
+    This release is a major release, containing new features (as well as
+    many other improvements) relative to GCC 14.x.
+ 
+ Release History
+ 
+    GCC 15.1
+           April 25, 2025 ([1]changes, [2]documentation)
+ 
+ References and Acknowledgements
+ 
+    GCC used to stand for the GNU C Compiler, but since the compiler
+    supports several other languages aside from C, it now stands for the
+    GNU Compiler Collection.
+ 
+    The GCC developers would like to thank the numerous people that have
+    contributed new features, improvements, bug fixes, and other changes as
+    well as test results to GCC. This [3]amazing group of volunteers is
+    what makes GCC successful.
+ 
+    For additional information about GCC please refer to the [4]GCC project
+    web site or contact the [5]GCC development mailing list.
+ 
+    To obtain GCC please use [6]our mirror sites or [7]our version control
+    system.
+ 
+ 
+     For questions related to the use of GCC, please consult these web
+     pages and the [8]GCC manuals. If that fails, the
+     [9]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+     web pages and the development of GCC are welcome on our developer
+     list at [10]gcc@gcc.gnu.org. All of [11]our lists have public
+     archives.
+ 
+    Copyright (C) [12]Free Software Foundation, Inc. Verbatim copying and
+    distribution of this entire article is permitted in any medium,
+    provided this notice is preserved.
+ 
+    These pages are [13]maintained by the GCC team. Last modified
+    2025-04-25.
+ 
+ References
+ 
+    1. https://gcc.gnu.org/gcc-15/changes.html
+    2. http://gcc.gnu.org/onlinedocs/15.1.0/
+    3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+    4. https://gcc.gnu.org/index.html
+    5. mailto:gcc@gcc.gnu.org
+    6. https://gcc.gnu.org/mirrors.html
+    7. https://gcc.gnu.org/git.html
+    8. https://gcc.gnu.org/onlinedocs/
+    9. mailto:gcc-help@gcc.gnu.org
+   10. mailto:gcc@gcc.gnu.org
+   11. https://gcc.gnu.org/lists.html
+   12. https://www.fsf.org/
+   13. https://gcc.gnu.org/about.html
+ ======================================================================
+ http://gcc.gnu.org/gcc-15/changes.html
+                              GCC 15 Release Series
+                         Changes, New Features, and Fixes
+ 
+    This page is a "brief" summary of some of the huge number of
+    improvements in GCC 15. You may also want to check out our [1]Porting
+    to GCC 15 page
+ 
+ Caveats
+ 
+      * Support for Nios II targets, which was marked obsolete in GCC 14,
+        has now been removed entirely.
+      * In the AArch64 port, support for ILP32 (-mabi=ilp32) has been
+        deprecated and will be removed in a future release.
+      * {0} initializer in C or C++ for unions no longer guarantees
+        clearing of the whole union (except for static storage duration
+        initialization), it just initializes the first union member to
+        zero. If initialization of the whole union including padding bits
+        is desirable, use {} (valid in C23 or C++) or use
+        -fzero-init-padding-bits=unions option to restore old GCC behavior.
+ 
+ [2]General Improvements
+ 
+      * The default vectorizer cost model at -O2 has been enhanced to
+        handle unknown tripcount. But it still disables vectorization of
+        loops when any runtime check for data dependence or alignment is
+        required, it also disables vectorization of epilogue loops but
+        otherwise is equal to the cheap cost model.
+      * The vectorizer now supports vectorizing loops with early exits
+        where the number of elements for the input pointers are unknown
+        through peeling for alignment. This is supported for only for loops
+        with fixed vector lengths.
+      * -ftime-report now only reports monotonic run time instead of system
+        and user time. This reduces the overhead of the option
+        significantly, making it possible to use in standard build systems.
+      * Incremental Link-Time Optimizations significantly reduce average
+        recompilation time of LTO when doing small code edits (e.g. editing
+        a single function). Enable with [3]-flto-incremental=.
+      * For offloading using OpenMP and OpenACC, issues preventing some
+        host–device architecture combinations have been resolved. In
+        particular, offloading from aarch64 hosts to nvptx devices is now
+        supported. Additionally, the support for using C++ in offload
+        regions has been extended.
+      * Improvements for compiling very large input files. The compile time
+        for large input files with -Wmisleading-indentation has been
+        significantly improved. The compiler can now track columnn numbers
+        larger than 4096. Very large source files have more accurate
+        location reporting.
+ 
+ [4]New Languages and Language specific improvements
+ 
+   [5]OpenMP
+ 
+    See the [6]GNU Offloading and Multi-Processing Project (GOMP) page for
+    general information.
+      * Support for unified-shared memory has been added for some AMD and
+        Nvidia GPU devices, enabled when using the unified_shared_memory
+        clause to the requires directive. The OpenMP 6.0 self_maps clause
+        is also now supported. For details, see the offload-target
+        specifics section in the [7]GNU Offloading and Multi Processing
+        Runtime Library Manual.
+      * GCC added ompx_gnu_pinned_mem_alloc as a [8]predefined allocator
+        and, for C++, allocator class templates in the omp::allocator
+        namespace for the predefined allocators as specified in the OpenMP
+        specification 5.0, including omp::allocator::null_allocator of
+        OpenMP 6.0 and ompx::allocator::gnu_pinned_mem; the allocator
+        templates can be used with C++ containers such as std::vector.
+      * In C and Fortran, the allocate directive now supports static
+        variables; stack variables were previously supported in those
+        languages. C++ support is not available yet.
+      * Offloading improvements: On [9]Nvidia GPUs, writing to the terminal
+        from OpenMP target regions (but not from OpenACC compute regions)
+        is now also supported in Fortran; in C/C++ and on AMD GPUs this was
+        already supported before with both OpenMP and OpenACC. Constructors
+        and destructors on the device side for declare target static
+        aggregates are now handled.
+      * For Fortran, mapping derived-type variables with allocatable
+        components is now supported.
+      * The OpenMP 5.1 unroll and tile loop-transforming constructs are now
+        supported.
+      * OpenMP 5.0 metadirectives are now supported, as are OpenMP 5.1
+        dynamic selectors in both metadirective and declare variant (the
+        latter with some restrictions).
+      * The interop construct and the OpenMP interoperability API routines
+        for C, C++ and Fortran are now implemented, including the OpenMP
+        6.0 additions. This includes foreign-runtime support for [10]Cuda,
+        Cuda Driver, and HIP on Nvida GPUs and for [11]HIP and HSA on AMD
+        GPUs.
+      * The OpenMP 5.1 dispatch construct has been implemented with support
+        for the adjust_args and append_args clauses to the declare variant
+        directive, including the following OpenMP 6.0 additions: the
+        interop clause to dispatch and the syntax extensions to append_args
+        are supported.
+      * OpenMP 6.0: The [12]get_device_from_uid and
+        [13]omp_get_uid_from_device API routines have been added.
+ 
+   [14]COBOL
+ 
+      * GCC now includes an ISO COBOL compiler, gcobol. It has been tested
+        on x86-64 and AArch64 targets. It is not expected to work on 32-bit
+        systems. Efforts are underway to adapt it to other machine
+        architectures that support native 128-bit computation.
+      * gcobol passes much of the NIST CCVS/85 test suite (except for parts
+        that are now obsolete). It uses ISO/IEC 1989:2023 as a reference
+        specification. Some parts of that document, notably
+        object-orientation features, are yet to be implemented. Beyond ISO,
+        gcobol recognizes some syntax common on other compilers, with
+        special attention given to IBM.
+        More information about GCC COBOL can be found at [15]the COBOLworx
+        website.
+ 
+   [16]Ada
+ 
+      * GNAT now allows the [17]'Round attribute also for ordinary
+        fixed-point types.
+      * The new GNAT attribute [18]'Super can be applied to objects of
+        tagged types in order to obtain a view conversion to the most
+        immediate specific parent type.
+      * [19]Mutably tagged types with a defined size are now available
+        through the use of Size'Class. This allows defining a maximum size
+        for the tagged. Example:
+ type Base is tagged null record with Size'Class => 16 * 8;
+      -- Size in bits (128 bits, or 16 bytes)
+ 
+ type Derived_Type is new Base with record Data_Field : Integer; end record;
+      -- ERROR if Derived_Type exceeds 16 bytes
+ 
+      * New [20]Finalizable aspect. It is a GNAT language extension which
+        serves as a lightweight alternative to controlled types.
+ type T is record
+      ...
+ end record with Finalizable => (Initialize           => Initialize,
+                                 Adjust               => Adjust,
+                                 Finalize             => Finalize,
+                                 Relaxed_Finalization => True);
+ 
+ procedure Adjust     (Obj : in out T);
+ procedure Finalize   (Obj : in out T);
+ procedure Initialize (Obj : in out T);
+ 
+      * The aspect [21]No_Raise has been added, it declares that a
+        subprogram cannot raise an exception.
+      * The aspect [22]External_Initialization has been added, it allows
+        for data to be initialized using an external file which is loaded
+        during compilation time.
+      * The aspect [23]Exit_Cases has been added to annotate functions and
+        procedures with side effects in SPARK (see [24]SPARK reference
+        manual) . It can be used to partition the input state into a list
+        of cases and specify, for each case, how the subprogram is allowed
+        to terminate.
+      * Language extensions are enabled through the use of pragma
+        Extensions_Allowed (On | Off | All_Extensions); which has had its
+        syntax changed. An argument of All_Extensions has the same effect
+        as On, except that [25]some extra experimental extensions are
+        enabled.
+      * Several new compilation flags have been added, some examples
+        include [26]-gnatis, [27]-gnatw.n, [28]-gnatw_l and [29]-gnatw.v.
+        The internal debugging utilities for the compiler have also
+        received a lot of new options, please refer to [30]debug.adb for
+        more information.
+      * The diagnostics code has seen a major refactor, it now supports the
+        sarif format -fdiagnostics-format=sarif-file among other
+        improvements. More changes are expected in following releases.
+      * System.Image_A has now printing routines to output address
+        information in HEX.
+      * Several program units have had contracts added to them and SPARK
+        analysis has been enabled.
+      * Support for FreeBSD, Android and aarch64 targets has been improved.
+      * Task priorities on MinGW have been reworked.
+      * The documentation has been rearanged for clarity, mainly the
+        sections related to tasking and platform dependent information.
+      * REMOVAL: Generic_Formal_Hash_Table has been removed, the [31]SPARK
+        Library is recommended as a substitute.
+ 
+   [32]C family
+ 
+      * A [33]musttail statement attribute was added to enforce tail calls.
+      * [34]Extended inline assembler statements can now be used with some
+        limitations outside of functions as well. New constraints have been
+        added for defining symbols or using symbols inside of inline
+        assembler, and a new generic operand modifier has been added to
+        allow printing those regardless of PIC. For example:
+ struct S { int a, b, c; };
+ extern foo (void);
+ extern char var;
+ int var2;
+ asm (".text; %cc0: mov %cc2, %%r0; .previous;"
+      ".rodata: %cc1: .byte %3; .previous" : :
+      ":" (foo), /* Tell compiler asm defines foo function. */
+      ":" (&var), /* Tell compiler asm defines var variable.  */
+      "-s" (var2), /* Tell compiler asm uses var2 variable.  */
+                   /* "s" would work too but might not work with -fpic.  */
+      "i" (sizeof (struct S))); /* It is possible to pass constants to toplevel a
+ sm.  */
+ 
+      * The "redzone" clobber is now allowed in inline assembler statements
+        to describe that the assembler can overwrite memory in the stack
+        red zone (e.g. on x86-64 or PowerPC).
+      * The [35]nonnull_if_nonzero function attribute has been added to
+        describe functions where some pointer parameter may be NULL only if
+        some other parameter is zero.
+      * The [36]-Wtrailing-whitespace= and [37]-Wleading-whitespace=
+        options have been added to diagnose certain whitespace characters
+        at the end of source lines or whitespace characters at the start of
+        source lines violating certain indentation styles.
+      * The [38]-Wheader-guard warning has been added and enabled in -Wall
+        to warn about some inconsistencies in header file guarding macros.
+ 
+   [39]C
+ 
+      * C23 by default: GCC 15 changes the default language version for C
+        compilation from [40]-std=gnu17 to [41]-std=gnu23. If your code
+        relies on older versions of the C standard, you will need to either
+        add [42]-std= to your build flags, or port your code; see [43]the
+        porting notes.
+      * Some more C23 features have been implemented:
+           + #embed preprocessing directive support.
+           + Support for unsequenced and reproducible attributes.
+           + __STDC_VERSION__ predefined macro value changed for -std=c23
+             or -std=gnu23 to 202311L.
+      * Some new features from the upcoming C2Y revision of the ISO C
+        standard are supported with -std=c2y and -std=gnu2y. Some of these
+        features are also supported as extensions when compiling for older
+        language versions.
+           + Generic selection expression with a type operand.
+           + Support ++ and -- on complex values.
+           + Accessing byte arrays.
+           + alignof of an incomplete array type.
+           + Obsolete implicitly octal literals and add delimited escape
+             sequences (just partially implemented, support for new syntax
+             added but nothing deprecated yet).
+           + Named loops.
+           + More Modern Bit Utilities (addition of
+             __builtin_stdc_rotate_left and __builtin_stdc_rotate_right
+             builtins for use in future C library <stdbit.h> headers).
+           + Case range expressions.
+           + if declarations.
+           + Introduce complex literals.
+           + Abs Without Undefined Behavior (addition of builtins for use
+             in future C library <stdlib.h> headers).
+           + Allow zero length operations on null pointers (just the
+             compiler side, C library headers will need adjustments too if
+             using nonnull attribute).
+ 
+   [44]C++
+ 
+      * Several C++26 features have been implemented:
+           + [45]P2558R2, Add @, $, and ` to the basic character set
+             ([46]PR110343)
+           + [47]P2552R3, On the ignorability of standard attributes
+             ([48]PR110345)
+           + [49]P2662R3, Pack indexing ([50]PR113798)
+           + [51]P0609R3, Attributes for structured bindings ([52]PR114456)
+           + [53]P2573R2, = delete("reason"); ([54]PR114458)
+           + [55]P2893R3, Variadic friends ([56]PR114459)
+           + [57]P3034R1, Disallow module declarations to be macros
+             ([58]PR114461)
+           + [59]P2747R2, constexpr placement new ([60]PR115744)
+           + [61]P0963R3, Structured binding declaration as a condition
+             ([62]PR115745)
+           + [63]P3144R2, Deleting a pointer to an incomplete type should
+             be ill-formed ([64]PR115747)
+           + [65]P3176R0, Oxford variadic comma ([66]PR117786)
+           + [67]P2865R5, Removing deprecated array comparisons
+             ([68]PR117788)
+           + [69]P1967R14, #embed ([70]PR119065)
+           + [71]P3247R2, Deprecating the notion of trivial types
+             ([72]PR117787)
+      * Several C++23 features have been implemented:
+           + [73]P2615R1, Meaningful exports ([74]PR107688)
+           + [75]P2718R0, Wording for P2644R1 Fix for Range-based for Loop
+             ([76]PR107637)
+      * Several C++ Defect Reports have been resolved, e.g.:
+           + [77]DR 36, using-declarations in multiple-declaration contexts
+           + [78]DR 882, Defining main as deleted
+           + [79]DR 1363, Triviality vs multiple default constructors
+           + [80]DR 1496, Triviality with deleted and missing default
+             constructors
+           + [81]DR 2387, Linkage of const-qualified variable template
+           + [82]DR 2521, User-defined literals and reserved identifiers
+           + [83]DR 2627, Bit-fields and narrowing conversions
+           + [84]DR 2819, Cast from null pointer value in a constant
+             expression (C++26 only)
+           + [85]DR 2867, Order of initialization for structured bindings
+           + [86]DR 2918, Consideration of constraints for address of
+             overloaded function
+      * Inline assembler statements now support [87]constexpr generated
+        strings, analoguous to static_assert.
+      * Qualified name lookup failure into the current instantiation, e.g.
+        this->non_existent, is now proactively diagnosed when parsing a
+        template.
+      * The [88]-fassume-sane-operators-new-delete option has been added
+        and enabled by default. This option allows control over some
+        optimizations around calls to replaceable global operators new and
+        delete. If a program overrides those replaceable global operators
+        and the replaced definitions read or modify global state visible to
+        the rest of the program, programs might need to be compiled with
+        -fno-assume-sane-operators-new-delete.
+      * The [89]-Wself-move warning now warns even in a
+        member-initializer-list.
+      * The support for Concepts TS was removed. -fconcepts-ts has no
+        effect anymore.
+      * A new option [90]-Wtemplate-body was added, which can be used to
+        disable diagnosing errors when parsing a template.
+      * C++ Modules have been greatly improved.
+      * C++11 attributes are now supported even in C++98.
+      * New [91]flag_enum attribute to indicate that the enumerators are
+        used in bitwise operations; this suppresses a -Wswitch warning.
+      * The [92]-Wdangling-reference warning has been improved: for
+        example, it doesn't warn for empty classes anymore.
+      * The front end's handling of explicitly-defaulted functions has been
+        corrected to properly handle [dcl.fct.def.default]. The new
+        [93]-Wdefaulted-function-deleted warning warns when an explicitly
+        defaulted function is deleted.
+      * The implementation of [94]DR 2789 was refined.
+      * Compilation time speed ups, e.g. by improving hashing of template
+        specializations.
+      * Support for __builtin_operator_new and __builtin_operator_delete
+        was added. See [95]the manual for more info.
+      * More prvalues are evaluated at compile time ([96]git).
+      * Various diagnostic improvements.
+ 
+     [97]Runtime Library (libstdc++)
+ 
+      * Debug assertions are now enabled by default for unoptimized builds.
+        Use -D_GLIBCXX_NO_ASSERTIONS to override this.
+      * Improved experimental support for C++26, including:
+           + views::concat.
+           + Member visit.
+           + Type-checking std::format args.
+      * Improved experimental support for C++23, including:
+           + std and std.compat modules (also supported for C++20).
+           + std::flat_map and std::flat_set.
+           + Clarify handling of encodings in localized formatting of
+             chrono types.
+ 
+   [98]D
+ 
+      * Support for the D programming language has been updated to version
+        2.111.0 of the language and run-time library. Full changelog for
+        this release and previous releases can be found on the
+        [99]dlang.org website.
+      * On supported targets, the version GNU_CET is now predefined when
+        the option -fcf-protection is used. The protection level is also
+        set in the traits key __traits(getTargetInfo, "CET").
+      * A new option [100]-finclude-imports was added, which tells the
+        compiler to include imported modules in the compilation, as if they
+        were given on the command-line.
+ 
+   [101]Fortran
+ 
+      * Fortran 2018 and 2023 locality specifiers to do concurrent are now
+        supported.
+      * Experimental support for unsigned modular integers, enabled by
+        -funsigned; see [102]gfortran documentation for details. This
+        follows ([103]J3/24-116). With this option in force, the
+        selected_logical_kind intrinsic function and, in the
+        ISO_FORTRAN_ENV module, the named constants logical{8,16,32,64} and
+        real16 were added. The ISO_C_BINDING module has been extended
+        accordingly.
+      * Missing commas separating descriptors in input/output format
+        strings are no longer permitted by default and are rejected at
+        run-time unless -std=legacy is used when compiling the main program
+        unit. See Fortran 2023 constraint C1302.
+      * The Fortran module *.mod format generated by GCC 15 is incompatible
+        with the module format generated by GCC 8 - 14, but GCC 15 can for
+        compatibility still read GCC 8 - 14 created module files.
+      * Coarray support has been reworked to allow access to components in
+        derived types that have not been compiled with coarray support
+        enabled; especially, when the derived type is in a binary only
+        module. This has changed the ABI and may lead to link-time errors
+        with object files generated with a previous GCC version and to be
+        linked to the current caf_single library. If this library is to be
+        used, then it is recommended to recompile all artifacts. The
+        OpenCoarrays library is not affected, because it provides backwards
+        compatibility with the older ABI.
+      * The -Wexternal-interface-mismatch option has been added. This
+        checks for mismatches between the argument lists in dummy external
+        arguments, and is implied by -Wall and -fc-prototypes-external
+        options.
+      * The -fc-prototypes now also generates prototypes for interoperable
+        procedures with assumed shape and assumed rank arguments that
+        require the header file <ISO_Fortran_binding.h>.
+ 
+   [104]Modula-2
+ 
+      * The keyword FORWARD has been implemented in the compiler and is
+        available by default in all dialects.
+      * The SYSTEM module now exports the datatype COFF_T mapping onto the
+        POSIX off_t type. The size of this datatype can be controlled by
+        the new option -fm2-file-offset-bits=.
+      * Access to the GCC builtins clz, clzll, ctz and ctzll are now
+        available from the module Builtins.
+ 
+ [105]New Targets and Target Specific Improvements
+ 
+   [106]AArch64
+ 
+      * Support has been added for the AArch64 MinGW target
+        (aarch64-w64-mingw32). At present, this target supports C and C++
+        for base Armv8-A, but with some caveats:
+           + Although most variadic functions work, the implementation of
+             them is not yet complete.
+           + C++ exception handling is not yet implemented.
+        Further work is planned for GCC 16.
+      * As noted above, support for ILP32 (-mabi=ilp32) has been deprecated
+        and will be removed in a future release. aarch64*-elf targets no
+        longer build the ILP32 multilibs.
+      * The following architecture level is now supported by -march and
+        related source-level constructs (GCC identifiers in parentheses):
+           + Armv9.5-A (arm9.5-a)
+      * The following CPUs are now supported by -mcpu, -mtune, and related
+        source-level constructs (GCC identifiers in parentheses):
+           + Apple A12 (apple-a12)
+           + Apple M1 (apple-m1)
+           + Apple M2 (apple-m2)
+           + Apple M3 (apple-m3)
+           + Arm Cortex-A520AE (cortex-a520ae)
+           + Arm Cortex-A720AE (cortex-a720ae)
+           + Arm Cortex-A725 (cortex-a725)
+           + Arm Cortex-R82AE (cortex-r82ae)
+           + Arm Cortex-X925 (cortex-x925)
+           + Arm Neoverse N3 (neoverse-n3)
+           + Arm Neoverse V3 (neoverse-v3)
+           + Arm Neoverse V3AE (neoverse-v3ae)
+           + FUJITSU-MONAKA (fujitsu-monaka)
+           + NVIDIA Grace (grace)
+           + NVIDIA Olympus (olympus)
+           + Qualcomm Oryon-1 (oryon-1)
+      * The following features are now supported by -march, -mcpu, and
+        related source-level constructs (GCC modifiers in parentheses):
+           + FEAT_CPA (+cpa), enabled by default for Arm9.5-A and above
+           + FEAT_FAMINMAX (+faminmax), enabled by default for Arm9.5-A and
+             above
+           + FEAT_FCMA (+fcma), enabled by default for Armv8.3-A and above
+           + FEAT_FLAGM2 (+flagm2), enabled by default for Armv8.5-A and
+             above
+           + FEAT_FP8 (+fp8)
+           + FEAT_FP8DOT2 (+fp8dot2)
+           + FEAT_FP8DOT4 (+fp8dot4)
+           + FEAT_FP8FMA (+fp8fma)
+           + FEAT_FRINTTS (+frintts), enabled by default for Armv8.5-A and
+             above
+           + FEAT_JSCVT (+jscvt), enabled by default for Armv8.3-A and
+             above
+           + FEAT_LUT (+lut), enabled by default for Arm9.5-A and above
+           + FEAT_LRCPC2 (+rcpc2), enabled by default for Armv8.4-A and
+             above
+           + FEAT_SME_B16B16 (+sme-b16b16)
+           + FEAT_SME_F16F16 (+sme-f16f16)
+           + FEAT_SME2p1 (+sme2p1)
+           + FEAT_SSVE_FP8DOT2 (+ssve-fp8dot2)
+           + FEAT_SSVE_FP8DOT4 (+ssve-fp8dot4)
+           + FEAT_SSVE_FP8FMA (+ssve-fp8fma)
+           + FEAT_SVE_B16B16 (+sve-b16b16)
+           + FEAT_SVE2p1 (+sve2p1), enabled by default for Armv9.4-A and
+             above
+           + FEAT_WFXT (+wfxt), enabled by default for Armv8.7-A and above
+           + FEAT_XS (+xs), enabled by default for Armv8.7-A and above
+        The features listed as being enabled by default for Armv8.7-A or
+        earlier were previously only selectable using the associated
+        architecture level. For example, FEAT_FCMA was previously selected
+        by -march=armv8.3-a and above (as it still is), but it wasn't
+        previously selectable independently.
+      * -mbranch-protection has been extended to support the Guarded
+        Control Stack (GCS) extension. This support is included in
+        -mbranch-protection=standard and can be enabled individually using
+        -mbranch-protection=gcs.
+      * The following additional changes have been made to the command-line
+        options:
+           + In order to align with other tools, the SME feature modifier
+             +sme no longer enables SVE. However, GCC does not yet support
+             using SME without SVE and instead rejects such combinations
+             with a “not implemented” error.
+           + The options -mfix-cortex-a53-835769 and
+             -mfix-cortex-a53-843419 are now silently ignored if the
+             selected architecture is incompatible with Cortex-A53. This is
+             particularly useful for toolchains that are configured to
+             apply the Cortex-A53 workarounds by default. For example, all
+             other things being equal, a toolchain configured with
+             --enable-fix-cortex-a53-835769 now produces the same code for
+             -mcpu=neoverse-n2 as a toolchain configured without
+             --enable-fix-cortex-a53-835769.
+           + -mcpu=native now handles unrecognized heterogeneous systems by
+             detecting which individual architecture features are supported
+             by the CPUs. This matches the preexisting behavior for unknown
+             homogeneous systems.
+           + The first scheduling pass (-fschedule-insns) is no longer
+             enabled by default at -O2 for AArch64 targets. The pass is
+             still enabled by default at -O3 and -Ofast.
+      * Support has been added for the following features of the Arm C
+        Language Extensions ([107]ACLE):
+           + guarded control stacks
+           + lookup table instructions with 2-bit and 4-bit indices
+             (predefined macro __ARM_FEATURE_LUT, enabled by +lut)
+           + floating-point absolute minimum and maximum instructions
+             (predefined macro __ARM_FEATURE_FAMINMAX, enabled by
+             +faminmax)
+           + FP8 conversions (predefined macro __ARM_FEATURE_FP8, enabled
+             by +fp8)
+           + FP8 2-way dot product to half precision instructions
+             (predefined macro __ARM_FEATURE_FP8DOT2, enabled by +fp8dot2)
+           + FP8 4-way dot product to single precision instructions
+             (predefined macro __ARM_FEATURE_FP8DOT4, enabled by +fp8dot4)
+           + FP8 multiply-accumulate to half precision and single precision
+             instructions (predefined macro __ARM_FEATURE_FP8FMA, enabled
+             by +fp8fma)
+           + SVE FP8 2-way dot product to half precision instructions
+             (predefined macro __ARM_FEATURE_SSVE_FP8DOT2, enabled by
+             +ssve-fp8dot2)
+           + SVE FP8 4-way dot product to single precision instructions
+             (predefined macro __ARM_FEATURE_SSVE_FP8DOT4, enabled by
+             +ssve-fp8dot4)
+           + SVE FP8 multiply-accumulate to half precision and single
+             precision instructions (predefined macro
+             __ARM_FEATURE_SSVE_FP8FMA, enabled by +ssve-fp8fma)
+           + SVE2.1 instructions (predefined macro __ARM_FEATURE_SVE2p1,
+             enabled by +sve2p1)
+           + SVE non-widening bfloat16 instructions (predefined macro
+             __ARM_FEATURE_SVE_B16B16, enabled by +sve-b16b16)
+           + SME2.1 instructions (predefined macro __ARM_FEATURE_SME2p1,
+             enabled by +sme2p1)
+           + SME non-widening bfloat16 instructions (predefined macro
+             __ARM_FEATURE_SME_B16B16, enabled by +sme-b16b16)
+           + SME half-precision instructions (predefined macro
+             __ARM_FEATURE_SME_F16F16, enabled by +sme-f16f16)
+           + using C and C++ prefix operators, infix operators, and postfix
+             operators with scalable SVE ACLE types (predefined macro
+             __ARM_FEATURE_SVE_VECTOR_OPERATORS==2, enabled by +sve)
+           + __fma (in arm_acle.h)
+           + __fmaf (in arm_acle.h)
+           + __chkfeat (in arm_acle.h)
+      * In addition, the following changes have been made to preexisting
+        ACLE features:
+           + The macros __ARM_FEATURE_BF16 and __ARM_FEATURE_SVE_BF16 are
+             now predefined when the associated support is available.
+             Previous versions of GCC provided the associated intrinsics
+             but did not predefine the macros.
+           + OpenMP tasks can now share scalable SVE vectors and
+             predicates. However, offloading of scalable vectors and
+             predicates is not supported.
+           + ACLE system register functions (such as __arm_rsr and
+             __arm_wsr) no longer try to enforce the minimum architectural
+             requirement.
+           + A warning is reported if code attempts to use the Function
+             Multi-Versioning feature. GCC's current implementation of this
+             feature is still experimental and it does not conform to the
+             ACLE specification.
+      * Support has been added for the indirect_return function-type
+        attribute, which indicates that a function might return via an
+        indirect branch instead of via a normal return instruction.
+      * 128-bit atomic operations have been extended to make use of
+        FEAT_LRCPC3 instructions, when support for the instructions is
+        detected at runtime.
+      * There have been many code-generation improvements to the AArch64
+        port. Some examples are:
+           + automatic use of AArch64 CRC instructions
+           + automatic use of AArch64 saturating vector arithmetic
+             instructions
+           + better code generation of population counts
+           + improved handling of floating-point and vector immediates
+           + improved handling of vector permutations
+           + more use of SVE instructions to optimize Advanced SIMD code
+           + more folding and simplification of SVE ACLE intrinsics
+           + improved CPU-specific tuning
+           + improved register allocation, such as eliminating some vector
+             moves
+ 
+   [108]AMD GPU (GCN)
+ 
+      * The standard C++ library (libstdc++) is now supported and enabled.
+      * Experimental support for supporting generic devices has been added;
+        specifying gfx9-generic, gfx10-3-generic, or gfx11-generic to
+        [109]-march= will generate code that can run on all devices of a
+        series. Additionally, the following specific devices are now have
+        experimental support, all of which are compatible with a listed
+        generic: gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033,
+        gfx1034, gfx1035, gfx1101, gfx1102, gfx1150, and gfx1151. To use
+        any of the listed new devices including the generic ones, GCC has
+        to be configured to build the runtime library for the device. Note
+        that generic support requires ROCm 6.4.0 (or newer). For details,
+        consult GCC's [110]installation notes.
+      * Support for Fiji (gfx803) devices has been removed (this was
+        already deprecated in GCC 14).
+ 
+   [111]AVR
+ 
+      * Support has been added for the signal(num) and interrupt(num)
+        [112]function attributes that allow to specify the interrupt vector
+        number num as an argument. It allows to use static functions as
+        interrupt handlers, and also functions defined in a C++ namespace.
+      * Support has been added for the noblock function attribute. It can
+        be specified together with the signal attribute to indicate that
+        the interrupt service routine should start with a SEI instruction
+        to globally re-enable interrupts. The difference to the interrupt
+        attribute is that the noblock attribute just acts like a flag and
+        does not impose a specific function name.
+      * Support has been added for the __builtin_avr_mask1 [113]built-in
+        function. It can be used to compute some bit masks when code like
+        1 << offset is not fast enough.
+      * Support has been added for a new 24-bit [114]named address space
+        __flashx. It is similar to the __memx address space introduced in
+        v4.7, but reading is a bit more efficient since it only supports
+        reading from program memory. Objects in the __flashx address space
+        are located in the .progmemx.data section.
+      * Apart from the built-in types __int24 and __uint24 supported since
+        v4.7, support has been added for the signed __int24 and unsigned
+        __int24 types.
+      * Code generation for the 32-bit integer shifts with constant offset
+        has been improved. The code size may slightly increase even when
+        optimizing for code size with -Os.
+      * Support has been added for a compact vector table as supported by
+        some AVR devices. It can be activated by the new command-line
+        option [115]-mcvt. It links crtmcu-cvt.o as startup code which is
+        supported since AVR-LibC v2.3.
+      * Support has been added for the new option [116]-mno-call-main.
+        Instead of calling main, it will be located in section .init9.
+      * New AVR specific optimizations have been added. They can be
+        controlled by the new command-line options [117]-mfuse-move,
+        [118]-msplit-ldst, [119]-msplit-bit-shift and
+        [120]-muse-nonzero-bits.
+ 
+   [121]IA-32/x86-64
+ 
+      * New ISA extension support for Intel AMX-AVX512 was added.
+        AMX-AVX512 intrinsics are available via the -mamx-avx512 compiler
+        switch.
+      * New ISA extension support for Intel AMX-FP8 was added. AMX-FP8
+        intrinsics are available via the -mamx-fp8 compiler switch.
+      * New ISA extension support for Intel AMX-MOVRS was added. AMX-MOVRS
+        intrinsics are available via the -mamx-movrs compiler switch.
+      * New ISA extension support for Intel AMX-TF32 was added. AMX-TF32
+        intrinsics are available via the -mamx-tf32 compiler switch.
+      * New ISA extension support for Intel AMX-TRANSPOSE was added.
+        AMX-TRANSPOSE intrinsics are available via the -mamx-transpose
+        compiler switch.
+      * All of new feature support for Intel APX expect for CFCMOV was
+        added, including CCMP/CTEST, NF and ZU. APX support is available
+        via the -mapxf compiler switch.
+      * New ISA extension support for Intel AVX10.2 was added. AVX10.2
+        intrinsics are available via the -mavx10.2 compiler switch.
+      * New ISA extension support for Intel MOVRS was added. MOVRS
+        intrinsics are available via the -mmovrs compiler switch. MOVRS
+        vector intrinsics are available via the -mmovrs -mavx10.2 compiler
+        switches.
+      * EVEX version support for Intel SM4 was added. New 512-bit SM4
+        intrinsics are available via the -msm4 -mavx10.2 compiler switches.
+      * GCC now supports the Intel CPU named Diamond Rapids through
+        -march=diamondrapids. Based on Granite Rapids, the switch further
+        enables the AMX-AVX512, AMX-FP8, AMX-MOVRS, AMX-TF32,
+        AMX-TRANSPOSE, APX_F, AVX10.2, AVX-IFMA, AVX-NE-CONVERT,
+        AVX-VNNI-INT16, AVX-VNNI-INT8, CMPccXADD, MOVRS, SHA512, SM3, SM4,
+        and USER_MSR ISA extensions.
+      * Support for Xeon Phi CPUs (a.k.a. Knight Landing and Knight Mill)
+        were removed in GCC 15. GCC will no longer accept -march=knl,
+        -march=knm, -mavx5124fmaps, -mavx5124vnniw, -mavx512er, -mavx512pf,
+        -mprefetchwt1, -mtune=knl, and -mtune=knm compiler switches.
+      * -mavx10.1-256, -mavx10.1-512, and -mevex512 are deprecated.
+        Meanwhile, -mavx10.1 enables AVX10.1 intrinsics with 512-bit vector
+        support, while in GCC 14.1 and GCC 14.2, it only enables 256-bit
+        vector support. GCC will emit a warning when using these compiler
+        switches. -mavx10.1-256, -mavx10.1-512, and -mevex512 will be
+        removed in GCC 16 together with the warning for the behavior change
+        on -mavx10.1.
+      * With the -mveclibabi compiler switch GCC is able to generate
+        vectorized calls to external libraries. GCC 15 newly supports
+        generating vectorized math calls to the math library from AMD
+        Optimizing CPU Libraries (AOCL LibM). This option is available
+        through -mveclibabi=aocl. GCC still supports generating calls to
+        AMD Core Math Library (ACML). However, that library is end-of-life
+        and AOCL offers many more vectorized functions.
+ 
+   [122]LoongArch
+ 
+      * Support has been added for target attributes and pragmas. For more
+        details on available attributes and pragmas, including their proper
+        usage, please refer to the provided [123]documentation.
+      * Support has been added for the new option
+        [124]-mannotate-tablejump. Which can create an annotation section
+        .discard.tablejump_annotate to correlate the jirl instruction and
+        the jump table.
+      * Add CRC expander to generate faster CRC.
+      * Add ABI names for FPR.
+ 
+   [125]NVPTX
+ 
+      * The standard C++ library (libstdc++) is now supported and enabled.
+      * GCC's nvptx target now supports constructors and destructors. For
+        this, a recent version of [126]nvptx-tools is required.
+ 
+   [127]SH
+ 
+      * Bare metal sh-elf targets are now using the newer soft-fp library
+        for improved performance of floating-point emulation on CPUs
+        without hardware floating-point support.
+ 
+ [128]Operating Systems
+ 
+   PowerPC Darwin
+ 
+      * Fortran's IEEE modules are now supported on Darwin PowerPC.
+ 
+ Other significant improvements
+ 
+ [129]GCC 15.1
+ 
+    This is the [130]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 15.1 release. This list might
+    not be complete (that is, it is possible that some PRs that have been
+    fixed are not listed here).
+ 
+ 
+     For questions related to the use of GCC, please consult these web
+     pages and the [131]GCC manuals. If that fails, the
+     [132]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+     web pages and the development of GCC are welcome on our developer
+     list at [133]gcc@gcc.gnu.org. All of [134]our lists have public
+     archives.
+ 
+    Copyright (C) [135]Free Software Foundation, Inc. Verbatim copying and
+    distribution of this entire article is permitted in any medium,
+    provided this notice is preserved.
+ 
+    These pages are [136]maintained by the GCC team. Last modified
+    2025-04-25.
+ 
+ References
+ 
+    1. https://gcc.gnu.org/gcc-15/porting_to.html
+    2. https://gcc.gnu.org/gcc-15/changes.html#general
+    3. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-incremental
+    4. https://gcc.gnu.org/gcc-15/changes.html#languages
+    5. https://gcc.gnu.org/gcc-15/changes.html#openmp
+    6. https://gcc.gnu.org/projects/gomp/
+    7. https://gcc.gnu.org/onlinedocs/libgomp/Offload-Target-Specifics.html
+    8. https://gcc.gnu.org/onlinedocs/libgomp/OMP_005fALLOCATOR.html
+    9. https://gcc.gnu.org/onlinedocs/libgomp/nvptx.html
+   10. https://gcc.gnu.org/onlinedocs/libgomp/Foreign-runtime-support-for-Nvidia-GPUs.html
+   11. https://gcc.gnu.org/onlinedocs/libgomp/Foreign-runtime-support-for-AMD-GPUs.html
+   12. https://gcc.gnu.org/onlinedocs/libgomp/omp_005fget_005fdevice_005ffrom_005fuid.html
+   13. https://gcc.gnu.org/onlinedocs/libgomp/omp_005fget_005fuid_005ffrom_005fdevice.html
+   14. https://gcc.gnu.org/gcc-15/changes.html#cobol
+   15. https://www.cobolworx.com/
+   16. https://gcc.gnu.org/gcc-15/changes.html#ada
+   17. https://gcc.gnu.org/onlinedocs/gnat_rm/Attribute-Round.html#index-Round
+   18. https://gcc.gnu.org/onlinedocs/gnat_rm/Attribute-Super.html#index-Super
+   19. https://gcc.gnu.org/onlinedocs/gnat_rm/Mutably-Tagged-Types-with-Size_2019Class-Aspect.html
+   20. https://gcc.gnu.org/onlinedocs/gnat_rm/Generalized-Finalization.html
+   21. https://gcc.gnu.org/onlinedocs/gnat_rm/No_005fRaise-aspect.html
+   22. https://gcc.gnu.org/onlinedocs/gnat_rm/External_005fInitialization-Aspect.html
+   23. https://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Exit_005fCases.html#index-Exit_005fCases
+   24. https://docs.adacore.com/spark2014-docs/html/lrm/subprograms.html#program-exit-aspects
+   25. https://gcc.gnu.org/onlinedocs/gnat_rm/Experimental-Language-Extensions.html
+   26. https://gcc.gnu.org/onlinedocs/gnat_ugn/Info-message-Control.html
+   27. https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_002en-_0028gcc_0029
+   28. https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_005fl-_0028gcc_0029
+   29. https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_002ev-_0028gcc_0029
+   30. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ada/debug.adb
+   31. https://docs.adacore.com/spark2014-docs/html/ug/en/source/spark_libraries.html
+   32. https://gcc.gnu.org/gcc-15/changes.html#c-family
+   33. https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#index-musttail-statement-attribute
+   34. https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
+   35. https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-nonnull_005fif_005fnonzero-function-attribute
+   36. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wtrailing-whitespace_003d
+   37. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wleading-whitespace_003d
+   38. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wheader-guard
+   39. https://gcc.gnu.org/gcc-15/changes.html#c
+   40. https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-std-1
+   41. https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-std-1
+   42. https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-std-1
+   43. https://gcc.gnu.org/gcc-15/porting_to.html#c23
+   44. https://gcc.gnu.org/gcc-15/changes.html#cxx
+   45. https://wg21.link/P2558R2
+   46. https://gcc.gnu.org/PR110343
+   47. https://wg21.link/P2552R3
+   48. https://gcc.gnu.org/PR110345
+   49. https://wg21.link/P2662R3
+   50. https://gcc.gnu.org/PR113798
+   51. https://wg21.link/P0609R3
+   52. https://gcc.gnu.org/PR114456
+   53. https://wg21.link/P2573R2
+   54. https://gcc.gnu.org/PR114458
+   55. https://wg21.link/P2893R3
+   56. https://gcc.gnu.org/PR114459
+   57. https://wg21.link/P3034R1
+   58. https://gcc.gnu.org/PR114461
+   59. https://wg21.link/P2747R2
+   60. https://gcc.gnu.org/PR115744
+   61. https://wg21.link/P0963R3
+   62. https://gcc.gnu.org/PR115745
+   63. https://wg21.link/P3144R2
+   64. https://gcc.gnu.org/PR115747
+   65. https://wg21.link/P3176R0
+   66. https://gcc.gnu.org/PR117786
+   67. https://wg21.link/P2865R5
+   68. https://gcc.gnu.org/PR117788
+   69. https://wg21.link/P1967R14
+   70. https://gcc.gnu.org/PR119065
+   71. https://wg21.link/P3247R2
+   72. https://gcc.gnu.org/PR117787
+   73. https://wg21.link/P2615R1
+   74. https://gcc.gnu.org/PR107688
+   75. https://wg21.link/P2718R0
+   76. https://gcc.gnu.org/PR107637
+   77. https://wg21.link/cwg36
+   78. https://wg21.link/cwg882
+   79. https://wg21.link/cwg1363
+   80. https://wg21.link/cwg1496
+   81. https://wg21.link/cwg2387
+   82. https://wg21.link/cwg2521
+   83. https://wg21.link/cwg2627
+   84. https://wg21.link/cwg2819
+   85. https://wg21.link/cwg2867
+   86. https://wg21.link/cwg2918
+   87. https://gcc.gnu.org/onlinedocs/gcc/Asm-constexprs.html
+   88. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-fassume-sane-operators-new-delete
+   89. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wself-move
+   90. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wtemplate-body
+   91. https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute
+   92. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
+   93. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wdefaulted-function-deleted
+   94. https://wg21.link/cwg2789
+   95. https://gcc.gnu.org/onlinedocs/gcc/New_002fDelete-Builtins.html
+   96. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=12de1942a0a673f9f2f1c2bfce4279a666061ffc
+   97. https://gcc.gnu.org/gcc-15/changes.html#libstdcxx
+   98. https://gcc.gnu.org/gcc-15/changes.html#d
+   99. https://dlang.org/changelog/2.111.0.html
+  100. https://gcc.gnu.org/onlinedocs/gdc/Runtime-Options.html#index-finclude-imports
+  101. https://gcc.gnu.org/gcc-15/changes.html#fortran
+  102. https://gcc.gnu.org/onlinedocs/gfortran/Unsigned-integers.html
+  103. https://j3-fortran.org/doc/year/24/24-116.txt
+  104. https://gcc.gnu.org/gcc-15/changes.html#modula2
+  105. https://gcc.gnu.org/gcc-15/changes.html#targets
+  106. https://gcc.gnu.org/gcc-15/changes.html#aarch64
+  107. https://github.com/ARM-software/acle
+  108. https://gcc.gnu.org/gcc-15/changes.html#amdgcn
+  109. https://gcc.gnu.org/onlinedocs/gcc/AMD-GCN-Options.html
+  110. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
+  111. https://gcc.gnu.org/gcc-15/changes.html#avr
+  112. https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html#index-signal_0028num_0029-function-attribute_002c-AVR
+  113. https://gcc.gnu.org/onlinedocs/gcc/AVR-Built-in-Functions.html#index-_005f_005fbuiltin_005favr_005fmask1
+  114. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html#AVR-Named-Address-Spaces-1
+  115. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-mcvt
+  116. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-mno-call-main
+  117. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-mfuse-move
+  118. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-msplit-ldst
+  119. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-msplit-bit-shift
+  120. https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html#index-muse-nonzero-bits
+  121. https://gcc.gnu.org/gcc-15/changes.html#x86
+  122. https://gcc.gnu.org/gcc-15/changes.html#loongarch
+  123. https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Function-Attributes.html#LoongArch-Function-Attributes-1
+  124. https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Options.html#index-mannotate-tablejump
+  125. https://gcc.gnu.org/gcc-15/changes.html#nvptx
+  126. https://gcc.gnu.org/install/specific.html#nvptx-x-none
+  127. https://gcc.gnu.org/gcc-15/changes.html#sh
+  128. https://gcc.gnu.org/gcc-15/changes.html#os
+  129. https://gcc.gnu.org/gcc-15/changes.html#15.1
+  130. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.0
+  131. https://gcc.gnu.org/onlinedocs/
+  132. mailto:gcc-help@gcc.gnu.org
+  133. mailto:gcc@gcc.gnu.org
+  134. https://gcc.gnu.org/lists.html
+  135. https://www.fsf.org/
+  136. https://gcc.gnu.org/about.html
+ ======================================================================
  http://gcc.gnu.org/gcc-14/index.html
                               GCC 14 Release Series
  
*************** Caveats
*** 93,101 ****
         source code and modify them.
       * C: Certain warnings about are now errors, see [5]Porting to GCC 14
         for details.
!      * [6]-fcf-protection=[full|branch|return|none|check] is refactored,
!        to override -fcf-protection, -fcf-protection=none needs to be added
!        and then with -fcf-protection=xxx.
       * Support for the ia64*-*- target ports which have been unmaintained
         for quite a while has been declared obsolete in GCC 14. The next
         release of GCC will have their sources permanently removed.
--- 1021,1030 ----
         source code and modify them.
       * C: Certain warnings about are now errors, see [5]Porting to GCC 14
         for details.
!      * [6]-fcf-protection=[full|branch|return|none|check] has been
!        refactored. To override -fcf-protection with a more specific
!        setting, add -fcf-protection=none followed by a specific
!        -fcf-protection=xxx.
       * Support for the ia64*-*- target ports which have been unmaintained
         for quite a while has been declared obsolete in GCC 14. The next
         release of GCC will have their sources permanently removed.
*************** Caveats
*** 105,143 ****
       * [7]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
  
! General Improvements
  
       * For offload-device code generated via OpenMP and OpenACC, the math
         and the Fortran runtime libraries will now automatically be linked,
         when the user or compiler links them on the host side. Thus, it is
         no longer required to explicitly pass -lm and/or -lgfortran to the
!        offload-device linker using the [8]-foffload-options= flag.
       * New configure options: --enable-host-pie, to build the compiler
         executables as PIE; and --enable-host-bind-now, to link the
         compiler executables with -Wl,-z,now in order to enable additional
         hardening.
!      * New option [9]-fhardened, an umbrella option that enables a set of
         hardening flags. The options it enables can be displayed using the
         --help=hardened option.
!      * New option [10]-fharden-control-flow-redundancy, to verify, at the
         end of functions, that the visited basic blocks correspond to a
         legitimate execution path, so as to detect and prevent attacks that
         transfer control into the middle of functions.
!      * New type attribute [11]hardbool, for C and Ada. Hardened booleans
         take user-specified representations for true and false, presumably
         with higher hamming distance than standard booleans, and get
         verified at every use, detecting memory corruption and some
         malicious attacks.
!      * New type attribute [12]strub to control stack scrubbing properties
         of functions and variables. The stack frame used by functions
         marked with the attribute gets zeroed-out upon returning or
         exception escaping. Scalar variables marked with the attribute
         cause functions containing or accessing them to get stack scrubbing
         enabled implicitly.
!      * New option [13]-finline-stringops, to force inline expansion of
         memcmp, memcpy, memmove and memset, even when that is not an
         optimization, to avoid relying on library implementations.
!      * New function attribute [14]null_terminated_string_arg(PARAM_IDX)
         for indicating parameters that are expected to be null-terminated
         strings.
       * The vectorizer now supports vectorizing loops which contain any
--- 1034,1076 ----
       * [7]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
  
! [8]General Improvements
  
       * For offload-device code generated via OpenMP and OpenACC, the math
         and the Fortran runtime libraries will now automatically be linked,
         when the user or compiler links them on the host side. Thus, it is
         no longer required to explicitly pass -lm and/or -lgfortran to the
!        offload-device linker using the [9]-foffload-options= flag.
       * New configure options: --enable-host-pie, to build the compiler
         executables as PIE; and --enable-host-bind-now, to link the
         compiler executables with -Wl,-z,now in order to enable additional
         hardening.
!      * New option [10]-fhardened, an umbrella option that enables a set of
         hardening flags. The options it enables can be displayed using the
         --help=hardened option.
!      * New option [11]-fharden-control-flow-redundancy, to verify, at the
         end of functions, that the visited basic blocks correspond to a
         legitimate execution path, so as to detect and prevent attacks that
         transfer control into the middle of functions.
!      * New type attribute [12]hardbool, for C and Ada. Hardened booleans
         take user-specified representations for true and false, presumably
         with higher hamming distance than standard booleans, and get
         verified at every use, detecting memory corruption and some
         malicious attacks.
!      * New type attribute [13]strub to control stack scrubbing properties
         of functions and variables. The stack frame used by functions
         marked with the attribute gets zeroed-out upon returning or
         exception escaping. Scalar variables marked with the attribute
         cause functions containing or accessing them to get stack scrubbing
         enabled implicitly.
!      * New option [14]-finline-stringops, to force inline expansion of
         memcmp, memcpy, memmove and memset, even when that is not an
         optimization, to avoid relying on library implementations.
!      * New option [15]-ftrampoline-impl=, to choose the placement of
!        generated trampolines. The default remains the stack for almost all
!        targets. To override the default, -ftrampoline-impl=heap can be
!        passed on supported ABIs (x86_64 Darwin, x86_64 and aarch64 Linux).
!      * New function attribute [16]null_terminated_string_arg(PARAM_IDX)
         for indicating parameters that are expected to be null-terminated
         strings.
       * The vectorizer now supports vectorizing loops which contain any
*************** General Improvements
*** 166,185 ****
         compile time or the vectorizer must be able to determine based on
         auxiliary information that the accesses are aligned.
  
! New Languages and Language specific improvements
  
!      * [15]OpenMP
!           + The [16]GNU Offloading and Multi Processing Runtime Library
              Manual has been updated and extended, improving especially the
              description of ICVs, memory allocation, environment variables
              and OpenMP routines.
            + The requires directive's unified_address requirement is now
              fulfilled by both AMD GCN and nvptx devices. AMD GCN and nvptx
!             devices now support low-latency allocators as [17]detailed in
              the manual. Initial support for pinned-memory allocators has
!             been added and, on Linux, [18]libnuma is now used for
              allocators requesting the nearest-partition trait (both is
!             described in the [19]memory allocation section of the manual).
            + OpenMP 5.0: The allocate directive is now supported for stack
              variables in C and Fortran, including the OpenMP 5.1 align
              modifier. In C and C++ the map clause now accepts lvalue
--- 1099,1118 ----
         compile time or the vectorizer must be able to determine based on
         auxiliary information that the accesses are aligned.
  
! [17]New Languages and Language specific improvements
  
!      * [18]OpenMP
!           + The [19]GNU Offloading and Multi Processing Runtime Library
              Manual has been updated and extended, improving especially the
              description of ICVs, memory allocation, environment variables
              and OpenMP routines.
            + The requires directive's unified_address requirement is now
              fulfilled by both AMD GCN and nvptx devices. AMD GCN and nvptx
!             devices now support low-latency allocators as [20]detailed in
              the manual. Initial support for pinned-memory allocators has
!             been added and, on Linux, [21]libnuma is now used for
              allocators requesting the nearest-partition trait (both is
!             described in the [22]memory allocation section of the manual).
            + OpenMP 5.0: The allocate directive is now supported for stack
              variables in C and Fortran, including the OpenMP 5.1 align
              modifier. In C and C++ the map clause now accepts lvalue
*************** New Languages and Language specific impr
*** 189,195 ****
              using this allocator and all files that might directly or
              indirectly (intrinsic assignment, intent(out), ...) de- or
              reallocate such-allocated variables must be compiled with the
!             [20]-fopenmp-allocators option.
            + OpenMP 5.1: Support was added for collapsing imperfectly
              nested loops and using present as map-type modifier and in
              defaultmap. The indirect clause is now supported. The
--- 1122,1128 ----
              using this allocator and all files that might directly or
              indirectly (intrinsic assignment, intent(out), ...) de- or
              reallocate such-allocated variables must be compiled with the
!             [23]-fopenmp-allocators option.
            + OpenMP 5.1: Support was added for collapsing imperfectly
              nested loops and using present as map-type modifier and in
              defaultmap. The indirect clause is now supported. The
*************** New Languages and Language specific impr
*** 206,212 ****
            + OpenMP 6.0 preview (TR11/TR12): The decl attribute is now
              supported in C++ 11 and the directive, sequence and decl
              attributes are now supported in C 23.
!      * [21]OpenACC
            + OpenACC 2.7: The self clause was added to be used on compute
              constructs and the default clause for data constructs.
              Additionally, the readonly modifier is now handled in the
--- 1139,1145 ----
            + OpenMP 6.0 preview (TR11/TR12): The decl attribute is now
              supported in C++ 11 and the directive, sequence and decl
              attributes are now supported in C 23.
!      * [24]OpenACC
            + OpenACC 2.7: The self clause was added to be used on compute
              constructs and the default clause for data constructs.
              Additionally, the readonly modifier is now handled in the
*************** New Languages and Language specific impr
*** 218,245 ****
              acc_memcpy_to_device_async, acc_memcpy_from_device, and
              acc_memcpy_from_device_async.
  
!   Ada
  
       * New implementation-defined aspects and pragmas:
!           + [22]Local_Restrictions, which specifies that a particular
              subprogram does not violate one or more local restrictions,
              nor can it call a subprogram that is not subject to the same
              requirements.
!           + [23]User_Aspect_Definition and [24]User_Aspect, which provide
              a mechanism for avoiding textual duplication if some set of
              aspect specifications is needed in multiple places.
       * New implementation-defined aspects and pragmas for verification of
         the SPARK 2014 subset of Ada:
!           + [25]Always_Terminates, which provides a condition for a
              subprogram to necessarily complete (either return normally or
              raise an exception).
!           + [26]Ghost_Predicate, which introduces a subtype predicate that
              can reference Ghost entities.
!           + [27]Exceptional_Cases, which lists exceptions that might be
              propagated by the subprogram with side effects in the context
              of its precondition and associates them with a specific
              postcondition.
!           + [28]Side_Effects, which indicates that a function should be
              handled like a procedure with respect to parameter modes,
              Global contract, exceptional contract and termination: it may
              have output parameters, write global variables, raise
--- 1151,1178 ----
              acc_memcpy_to_device_async, acc_memcpy_from_device, and
              acc_memcpy_from_device_async.
  
!   [25]Ada
  
       * New implementation-defined aspects and pragmas:
!           + [26]Local_Restrictions, which specifies that a particular
              subprogram does not violate one or more local restrictions,
              nor can it call a subprogram that is not subject to the same
              requirements.
!           + [27]User_Aspect_Definition and [28]User_Aspect, which provide
              a mechanism for avoiding textual duplication if some set of
              aspect specifications is needed in multiple places.
       * New implementation-defined aspects and pragmas for verification of
         the SPARK 2014 subset of Ada:
!           + [29]Always_Terminates, which provides a condition for a
              subprogram to necessarily complete (either return normally or
              raise an exception).
!           + [30]Ghost_Predicate, which introduces a subtype predicate that
              can reference Ghost entities.
!           + [31]Exceptional_Cases, which lists exceptions that might be
              propagated by the subprogram with side effects in the context
              of its precondition and associates them with a specific
              postcondition.
!           + [32]Side_Effects, which indicates that a function should be
              handled like a procedure with respect to parameter modes,
              Global contract, exceptional contract and termination: it may
              have output parameters, write global variables, raise
*************** New Languages and Language specific impr
*** 250,275 ****
       * Support for the LoongArch architecture.
       * Support for vxWorks 7 Cert RTP has been removed.
       * Additional hardening improvements. For more information related to
!        hardening options, refer to the [29]GCC Instrumentation Options and
!        the [30]GNAT Reference Manual, Security and Hardening Features.
!      * Improve style checking for redundant parentheses with [31]-gnatyz
!      * New switch [32]-gnateH to force reverse Bit_Order threshold to 64.
       * Experimental features:
!           + [33]Storage Model: this feature proposes to redesign the
              concepts of Storage Pools into a more efficient model allowing
!             higher performances and easier integration with low footprint
!             embedded run-times.
!           + [34]String Interpolation: allows for easier string formatting.
       * Further clean up and improvements to the GNAT code.
  
!   C family
  
       * The Clang language extensions __has_feature and __has_extension
         have been implemented in GCC. These are available from C, C++, and
         Objective-C(++). This is primarily intended to aid the portability
         of code written against Clang.
  
!   C
  
       * Some more C23 features have been implemented:
            + Bit-precise integer types (_BitInt (N) and unsigned _BitInt
--- 1183,1208 ----
       * Support for the LoongArch architecture.
       * Support for vxWorks 7 Cert RTP has been removed.
       * Additional hardening improvements. For more information related to
!        hardening options, refer to the [33]GCC Instrumentation Options and
!        the [34]GNAT Reference Manual, Security and Hardening Features.
!      * Improve style checking for redundant parentheses with [35]-gnatyz
!      * New switch [36]-gnateH to force reverse Bit_Order threshold to 64.
       * Experimental features:
!           + [37]Storage Model: this feature proposes to redesign the
              concepts of Storage Pools into a more efficient model allowing
!             higher performance and easier integration with low footprint
!             embedded runtimes.
!           + [38]String Interpolation: allows for easier string formatting.
       * Further clean up and improvements to the GNAT code.
  
!   [39]C family
  
       * The Clang language extensions __has_feature and __has_extension
         have been implemented in GCC. These are available from C, C++, and
         Objective-C(++). This is primarily intended to aid the portability
         of code written against Clang.
  
!   [40]C
  
       * Some more C23 features have been implemented:
            + Bit-precise integer types (_BitInt (N) and unsigned _BitInt
*************** New Languages and Language specific impr
*** 288,387 ****
       * GCC supports a new pragma #pragma GCC novector to indicate to the
         vectorizer not to vectorize the loop annotated with the pragma.
  
!   C++
  
       * Several C++26 features have been implemented:
!           + [35]P1854R4, Making non-encodable string literals ill-formed
!             ([36]PR110341)
!           + [37]P2752R3, Static storage for braced initializers
!             ([38]PR110346)
!           + [39]P2361R6, Unevaluated strings ([40]PR110342)
!           + [41]P2738R1, constexpr cast from void* ([42]PR110344)
!           + [43]P2741R3, User-generated static_assert messages
!             ([44]PR110348)
!           + [45]P2169R4, Placeholder variables with no name ([46]PR110349)
!           + [47]P2864R2, Removing deprecated arithmetic conversion on
              enumerations
!           + [48]P2748R5, Disallow binding a returned reference to a
!             temporary ([49]PR114455)
!           + [50]P2809R3, Trivial infinite loops are not undefined behavior
!             ([51]PR114462)
       * Several C++23 features have been implemented:
!           + [52]P0847R7, Deducing this ([53]PR102609)
!           + [54]P2280R4, Using unknown references in constant expressions
!             ([55]PR106650)
!           + [56]P2564R3, consteval needs to propagate up ([57]PR107687)
!           + [58]P2582R1, Class template argument deduction from inherited
!             constructors ([59]PR106653)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [60]DR 532, Member/nonmember operator template partial
              ordering
!           + [61]DR 976, Deduction for const T& conversion operators
!           + [62]DR 2262, Attributes for asm-definition
!           + [63]DR 2359, Unintended copy initialization with designated
              initializers
!           + [64]DR 2386, tuple_size requirements for structured binding
!           + [65]DR 2406, [[fallthrough]] attribute and iteration
              statements
!           + [66]DR 2543, constinit and optimized dynamic initialization
!           + [67]DR 2586, Explicit object parameter for assignment and
              comparison
!           + [68]DR 2735, List-initialization and conversions in overload
              resolution
!           + [69]DR 2799, Inheriting default constructors
       * When a diagnostic occurs involving a C++ template, GCC will now
         quote the source code of the context at which the template is
         instantiated ("required from here"), rather than just print
         filename and line/column numbers.
       * New built-in __type_pack_element to speed up traits such as
!        std::tuple_element ([70]PR100157)
       * goto can cross the initialization of a trivially initialized object
!        with a non-trivial destructor ([71]DR 2256)
       * -Wdangling-reference false positives have been reduced. The warning
         does not warn about std::span-like classes; there is also a new
!        attribute gnu::no_dangling to suppress the warning. See [72]the
         manual for more info.
       * noexcept(expr) is now mangled as per the Itanium ABI
       * the named return value optimization can now be performed even for
         variables declared in an inner block of a function, see the
!        [73]test
       * New -Wnrvo warning, to warn if the named return value optimization
         is not performed although it is allowed by [class.copy.elision].
!        See [74]the manual for more info.
       * The backing array for std::initializer_list has been made static,
!        allowing combining multiple equivalent initializer-lists ([75]git)
       * New -Welaborated-enum-base warning, to warn if an additional
         enum-base is used in an elaborated-type-specifier
!      * Better #include hints for missing headers ([76]PR110164)
       * The arguments of a variable template-id are coerced earlier than
!        before, so various problems are detected earlier ([77]PR89442)
       * -Wmissing-field-initializers is no longer emitted for empty classes
!        ([78]PR110064)
       * The constexpr code now tracks lifetimes in constant evaluation;
         this change helps to detect bugs such as accessing a variable whose
!        lifetime has ended ([79]PR70331, [80]PR96630, [81]PR98675)
       * Array destruction can now be devirtualized
       * In-class member variable template partial specializations are now
!        accepted ([82]PR71954)
       * Improved diagnostic for explicit conversion functions: when a
         conversion doesn't work out only because the conversion function
         necessary to do the conversion couldn't be used because it was
!        marked explicit, explain that to the user ([83]git)
       * Corrected mangling of static/thread_local structured bindings at
!        function/block scope ([84]PR111069)
       * [basic.scope.block]/2 violations are detected even in compound-stmt
         of function-try-block and for block-scope external variables
!        ([85]PR52953)
       * Improved "not a constant expression" diagnostic when taking the
!        address of a non-static constexpr variable ([86]PR91483)
       * Non-dependent simple assignments are checked even in templates
!        ([87]PR18474)
       * Attributes hot and cold can be applied to classes as well. See
!        [88]the manual for more info.
       * Function template constraints, as well as CTAD placeholders, are
         now mangled
!      * Various decltype fixes: [89]PR79620, [90]PR79378, [91]PR83167,
!        [92]PR96917
       * New option -fdiagnostics-all-candidates to note all candidates
         during overload resolution failure
       * -Walloc-size and -Wcalloc-transposed-args warnings are enabled for
--- 1221,1320 ----
       * GCC supports a new pragma #pragma GCC novector to indicate to the
         vectorizer not to vectorize the loop annotated with the pragma.
  
!   [41]C++
  
       * Several C++26 features have been implemented:
!           + [42]P1854R4, Making non-encodable string literals ill-formed
!             ([43]PR110341)
!           + [44]P2752R3, Static storage for braced initializers
!             ([45]PR110346)
!           + [46]P2361R6, Unevaluated strings ([47]PR110342)
!           + [48]P2738R1, constexpr cast from void* ([49]PR110344)
!           + [50]P2741R3, User-generated static_assert messages
!             ([51]PR110348)
!           + [52]P2169R4, Placeholder variables with no name ([53]PR110349)
!           + [54]P2864R2, Removing deprecated arithmetic conversion on
              enumerations
!           + [55]P2748R5, Disallow binding a returned reference to a
!             temporary ([56]PR114455)
!           + [57]P2809R3, Trivial infinite loops are not undefined behavior
!             ([58]PR114462)
       * Several C++23 features have been implemented:
!           + [59]P0847R7, Deducing this ([60]PR102609)
!           + [61]P2280R4, Using unknown references in constant expressions
!             ([62]PR106650)
!           + [63]P2564R3, consteval needs to propagate up ([64]PR107687)
!           + [65]P2582R1, Class template argument deduction from inherited
!             constructors ([66]PR106653)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [67]DR 532, Member/nonmember operator template partial
              ordering
!           + [68]DR 976, Deduction for const T& conversion operators
!           + [69]DR 2262, Attributes for asm-definition
!           + [70]DR 2359, Unintended copy initialization with designated
              initializers
!           + [71]DR 2386, tuple_size requirements for structured binding
!           + [72]DR 2406, [[fallthrough]] attribute and iteration
              statements
!           + [73]DR 2543, constinit and optimized dynamic initialization
!           + [74]DR 2586, Explicit object parameter for assignment and
              comparison
!           + [75]DR 2735, List-initialization and conversions in overload
              resolution
!           + [76]DR 2799, Inheriting default constructors
       * When a diagnostic occurs involving a C++ template, GCC will now
         quote the source code of the context at which the template is
         instantiated ("required from here"), rather than just print
         filename and line/column numbers.
       * New built-in __type_pack_element to speed up traits such as
!        std::tuple_element ([77]PR100157)
       * goto can cross the initialization of a trivially initialized object
!        with a non-trivial destructor ([78]DR 2256)
       * -Wdangling-reference false positives have been reduced. The warning
         does not warn about std::span-like classes; there is also a new
!        attribute gnu::no_dangling to suppress the warning. See [79]the
         manual for more info.
       * noexcept(expr) is now mangled as per the Itanium ABI
       * the named return value optimization can now be performed even for
         variables declared in an inner block of a function, see the
!        [80]test
       * New -Wnrvo warning, to warn if the named return value optimization
         is not performed although it is allowed by [class.copy.elision].
!        See [81]the manual for more info.
       * The backing array for std::initializer_list has been made static,
!        allowing combining multiple equivalent initializer-lists ([82]git)
       * New -Welaborated-enum-base warning, to warn if an additional
         enum-base is used in an elaborated-type-specifier
!      * Better #include hints for missing headers ([83]PR110164)
       * The arguments of a variable template-id are coerced earlier than
!        before, so various problems are detected earlier ([84]PR89442)
       * -Wmissing-field-initializers is no longer emitted for empty classes
!        ([85]PR110064)
       * The constexpr code now tracks lifetimes in constant evaluation;
         this change helps to detect bugs such as accessing a variable whose
!        lifetime has ended ([86]PR70331, [87]PR96630, [88]PR98675)
       * Array destruction can now be devirtualized
       * In-class member variable template partial specializations are now
!        accepted ([89]PR71954)
       * Improved diagnostic for explicit conversion functions: when a
         conversion doesn't work out only because the conversion function
         necessary to do the conversion couldn't be used because it was
!        marked explicit, explain that to the user ([90]git)
       * Corrected mangling of static/thread_local structured bindings at
!        function/block scope ([91]PR111069)
       * [basic.scope.block]/2 violations are detected even in compound-stmt
         of function-try-block and for block-scope external variables
!        ([92]PR52953)
       * Improved "not a constant expression" diagnostic when taking the
!        address of a non-static constexpr variable ([93]PR91483)
       * Non-dependent simple assignments are checked even in templates
!        ([94]PR18474)
       * Attributes hot and cold can be applied to classes as well. See
!        [95]the manual for more info.
       * Function template constraints, as well as CTAD placeholders, are
         now mangled
!      * Various decltype fixes: [96]PR79620, [97]PR79378, [98]PR83167,
!        [99]PR96917
       * New option -fdiagnostics-all-candidates to note all candidates
         during overload resolution failure
       * -Walloc-size and -Wcalloc-transposed-args warnings are enabled for
*************** New Languages and Language specific impr
*** 391,403 ****
       * GCC supports a new pragma #pragma GCC novector to indicate to the
         vectorizer not to vectorize the loop annotated with the pragma.
       * C++ module scanning for named modules is now available, based on
!        the format described in [93]P1689R5, Format for describing
         dependencies of source files. The -fdeps-format=, -fdeps-file=, and
         -fdeps-target= flags may be used to generate dependency
         information. In GCC 14 p1689r5 is the only valid argument for
         -fdeps-format=.
  
!     Runtime Library (libstdc++)
  
       * The libstdc++exp.a library now includes all the Filesystem TS
         symbols from the libstdc++fs.a library. The experimental symbols
--- 1324,1336 ----
       * GCC supports a new pragma #pragma GCC novector to indicate to the
         vectorizer not to vectorize the loop annotated with the pragma.
       * C++ module scanning for named modules is now available, based on
!        the format described in [100]P1689R5, Format for describing
         dependencies of source files. The -fdeps-format=, -fdeps-file=, and
         -fdeps-target= flags may be used to generate dependency
         information. In GCC 14 p1689r5 is the only valid argument for
         -fdeps-format=.
  
!     [101]Runtime Library (libstdc++)
  
       * The libstdc++exp.a library now includes all the Filesystem TS
         symbols from the libstdc++fs.a library. The experimental symbols
*************** New Languages and Language specific impr
*** 436,442 ****
       * Added missing functions for float and long double to <cmath>.
       * Using the std::setfill manipulator with std::istream is deprecated.
  
!   Fortran
  
       * The compiler now accepts the -std=f2023 option, which has been
         added in preparation of support of Fortran 2023. This option
--- 1369,1382 ----
       * Added missing functions for float and long double to <cmath>.
       * Using the std::setfill manipulator with std::istream is deprecated.
  
!   [102]D
! 
!      * Support for the D programming language has been updated to version
!        2.108.1 of the language and run-time library. Full changelog for
!        this release and previous releases can be found on the
!        [103]dlang.org website.
! 
!   [104]Fortran
  
       * The compiler now accepts the -std=f2023 option, which has been
         added in preparation of support of Fortran 2023. This option
*************** New Languages and Language specific impr
*** 446,452 ****
         extension will be generated from free-form source files such as
         .F90 and .fi from fixed-form files such as .F.
  
!   Modula-2
  
       * The automatic dependency generation options: -M, -MD, -MF, -MMD,
         -MP, -MQ and -MT have been implemented in the compiler.
--- 1386,1392 ----
         extension will be generated from free-form source files such as
         .F90 and .fi from fixed-form files such as .F.
  
!   [105]Modula-2
  
       * The automatic dependency generation options: -M, -MD, -MF, -MMD,
         -MP, -MQ and -MT have been implemented in the compiler.
*************** New Languages and Language specific impr
*** 454,460 ****
         implemented to provide compile-time warnings against missing case
         clauses and uninitialized variables respectively.
  
!   Rust
  
       * Experimental support for the Rust programming language has been
         added. The compiler is incomplete, but already supports a subset of
--- 1394,1400 ----
         implemented to provide compile-time warnings against missing case
         clauses and uninitialized variables respectively.
  
!   [106]Rust
  
       * Experimental support for the Rust programming language has been
         added. The compiler is incomplete, but already supports a subset of
*************** New Languages and Language specific impr
*** 463,485 ****
         real-world Rust code yet. However, you can experiment with the
         compiler to run Rust code on #[no_core] targets.
  
! libgccjit
  
       * The libgccjit API gained 6 new entry points:
!           + [94]gcc_jit_type_get_restrict for adding restrict to types
!             ([95]LIBGCCJIT_ABI_25).
            + 4 functions for setting attributes on functions and variables
!             ([96]LIBGCCJIT_ABI_26):
                 o gcc_jit_function_add_attribute
                 o gcc_jit_function_add_string_attribute
                 o gcc_jit_function_add_integer_array_attribute
                 o gcc_jit_lvalue_add_string_attribute
!           + [97]gcc_jit_context_new_sizeof for accessing the size of a
!             type ([98]LIBGCCJIT_ABI_27).
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
--- 1403,1425 ----
         real-world Rust code yet. However, you can experiment with the
         compiler to run Rust code on #[no_core] targets.
  
! [107]libgccjit
  
       * The libgccjit API gained 6 new entry points:
!           + [108]gcc_jit_type_get_restrict for adding restrict to types
!             ([109]LIBGCCJIT_ABI_25).
            + 4 functions for setting attributes on functions and variables
!             ([110]LIBGCCJIT_ABI_26):
                 o gcc_jit_function_add_attribute
                 o gcc_jit_function_add_string_attribute
                 o gcc_jit_function_add_integer_array_attribute
                 o gcc_jit_lvalue_add_string_attribute
!           + [111]gcc_jit_context_new_sizeof for accessing the size of a
!             type ([112]LIBGCCJIT_ABI_27).
  
! [113]New Targets and Target Specific Improvements
  
!   [114]AArch64
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
*************** New Targets and Target Specific Improvem
*** 499,505 ****
            + Support is added for the Arm Streaming Matrix Extensions SME
              and SME2 through the +sme and +sme2 extensions to -march=. In
              particular, this includes support for the Beta state of the
!             [99]SME ACLE in the form of a new intrinsics arm_sme.h
              intrinsics header and a number of new keyword attributes to
              manage use of the new Streaming SVE state. For more
              information please refer to the ACLE documentation.
--- 1439,1445 ----
            + Support is added for the Arm Streaming Matrix Extensions SME
              and SME2 through the +sme and +sme2 extensions to -march=. In
              particular, this includes support for the Beta state of the
!             [115]SME ACLE in the form of a new intrinsics arm_sme.h
              intrinsics header and a number of new keyword attributes to
              manage use of the new Streaming SVE state. For more
              information please refer to the ACLE documentation.
*************** New Targets and Target Specific Improvem
*** 527,533 ****
       * Conformance with the ACLE specification is improved and a number of
         features aimed at helping developers deploy Arm architecture
         features are added:
!           + Support for the Beta version of the [100]Function
              Multiversioning Specification. This feature provides
              facilities to annotate functions with attributes that allow
              the compiler to generate multiple versions of the function,
--- 1467,1473 ----
       * Conformance with the ACLE specification is improved and a number of
         features aimed at helping developers deploy Arm architecture
         features are added:
!           + Support for the Beta version of the [116]Function
              Multiversioning Specification. This feature provides
              facilities to annotate functions with attributes that allow
              the compiler to generate multiple versions of the function,
*************** New Targets and Target Specific Improvem
*** 535,542 ****
              available in the system. Please refer to the ACLE
              specification for more details.
            + Support for more ACLE intrinsics in the arm_acle.h header,
!             including the [101]Memory prefetch intrinsics and the
!             [102]Special register intrinsics. This also includes
              intrinsics for the extension to 128-bit system registers,
              enabled through the +d128 extension to -march=.
            + Intrinsics enabled by the +dotprod, +fp16, +fp16fml, +i8mm,
--- 1475,1482 ----
              available in the system. Please refer to the ACLE
              specification for more details.
            + Support for more ACLE intrinsics in the arm_acle.h header,
!             including the [117]Memory prefetch intrinsics and the
!             [118]Special register intrinsics. This also includes
              intrinsics for the extension to 128-bit system registers,
              enabled through the +d128 extension to -march=.
            + Intrinsics enabled by the +dotprod, +fp16, +fp16fml, +i8mm,
*************** New Targets and Target Specific Improvem
*** 544,562 ****
              -march=armv8.2-a or higher to be specified. Likewise, the
              intrinsics enabled by +memtag no longer require
              -march=armv8.5-a.
!           + Support for the [103]NEON-SVE Bridge intrinsics. These are
              intrinsics that allow conversions between NEON and SVE
              vectors, enabled through the inclusion of the
              arm_neon_sve_bridge.h header.
       * The option -mtp= is now supported for changing the TPIDR register
         used for TLS accesses. For more details please refer to the
!        [104]documentation.
  
!   AMD Radeon (GCN)
  
       * Initial support for the AMD Radeon gfx90c (GCN5), gfx1030, gfx1036
         (RDNA2), gfx1100 and gfx1103 (RDNA3) devices has been added. LLVM
!        15+ (assembler and linker) is [105]required to support GFX11.
       * Improved register usage and performance on CDNA Instinct MI100 and
         MI200 series devices.
       * The default device architecture is now gfx900 (Vega).
--- 1484,1502 ----
              -march=armv8.2-a or higher to be specified. Likewise, the
              intrinsics enabled by +memtag no longer require
              -march=armv8.5-a.
!           + Support for the [119]NEON-SVE Bridge intrinsics. These are
              intrinsics that allow conversions between NEON and SVE
              vectors, enabled through the inclusion of the
              arm_neon_sve_bridge.h header.
       * The option -mtp= is now supported for changing the TPIDR register
         used for TLS accesses. For more details please refer to the
!        [120]documentation.
  
!   [121]AMD Radeon (GCN)
  
       * Initial support for the AMD Radeon gfx90c (GCN5), gfx1030, gfx1036
         (RDNA2), gfx1100 and gfx1103 (RDNA3) devices has been added. LLVM
!        15+ (assembler and linker) is [122]required to support GFX11.
       * Improved register usage and performance on CDNA Instinct MI100 and
         MI200 series devices.
       * The default device architecture is now gfx900 (Vega).
*************** New Targets and Target Specific Improvem
*** 564,577 ****
         from a future release. The default compiler configuration no longer
         uses Fiji as the default device, and no longer includes the Fiji
         libraries. Both can be restored by configuring with
!        [106]--with-arch=fiji .
  
!   arm
  
       * The Cortex-M52 CPU is now supported through the cortex-m52 argument
         to the -mcpu and -mtune options.
  
!   AVR
  
       * On AVR64* and AVR128* devices, read-only data is now located in
         program memory per default and no longer in RAM.
--- 1504,1517 ----
         from a future release. The default compiler configuration no longer
         uses Fiji as the default device, and no longer includes the Fiji
         libraries. Both can be restored by configuring with
!        [123]--with-arch=fiji .
  
!   [124]arm
  
       * The Cortex-M52 CPU is now supported through the cortex-m52 argument
         to the -mcpu and -mtune options.
  
!   [125]AVR
  
       * On AVR64* and AVR128* devices, read-only data is now located in
         program memory per default and no longer in RAM.
*************** New Targets and Target Specific Improvem
*** 587,593 ****
              hardware default for bit-field NVMCTRL_CTRLB.FLMAP.
            + When a non-default block is used, then NVMCTRL_CTRLB.FLMAP
              must be initialized accordingly by hand, or AVR-LibC v2.2 that
!             implements [107]#931 can be used. The latter initializes
              NVMCTRL_CTRLB.FLMAP in the startup code and according to the
              value of __flmap or __RODATA_FLASH_START__.
            + When AVR-LibC with #931 is used, then defining the symbol
--- 1527,1533 ----
              hardware default for bit-field NVMCTRL_CTRLB.FLMAP.
            + When a non-default block is used, then NVMCTRL_CTRLB.FLMAP
              must be initialized accordingly by hand, or AVR-LibC v2.2 that
!             implements [126]#931 can be used. The latter initializes
              NVMCTRL_CTRLB.FLMAP in the startup code and according to the
              value of __flmap or __RODATA_FLASH_START__.
            + When AVR-LibC with #931 is used, then defining the symbol
*************** __asm (".global __flmap_lock"  "\n\t"
*** 608,622 ****
            + Read-only data is located in output section .rodata, whereas
              it is part of .text when located in RAM.
            + The feature is only available when the compiler is configured
!             with a version of Binutils that implements [108]PR31124, which
              is the case for Binutils v2.42 and up.
            + The implementation consists of two parts:
!               1. Binutils support new emulations avrxmega2_flmap and
                   avrxmega4_flmap. The sole purpose of these emulations is
                   to provide adjusted default linker description files.
                   Apart from that, these emulations behave exactly the same
                   like avrxmega2 resp. avrxmega4.
!               2. The compiler uses a [109]device-specs file which links
                   the program with -mavrxmega2_flmap or -mavrxmega2
                   depending on -m[no-]rodata-in-ram; and similar for
                   -mavrxmega4[_flmap].
--- 1548,1562 ----
            + Read-only data is located in output section .rodata, whereas
              it is part of .text when located in RAM.
            + The feature is only available when the compiler is configured
!             with a version of Binutils that implements [127]PR31124, which
              is the case for Binutils v2.42 and up.
            + The implementation consists of two parts:
!               1. Binutils supports new emulations avrxmega2_flmap and
                   avrxmega4_flmap. The sole purpose of these emulations is
                   to provide adjusted default linker description files.
                   Apart from that, these emulations behave exactly the same
                   like avrxmega2 resp. avrxmega4.
!               2. The compiler uses a [128]device-specs file which links
                   the program with -mavrxmega2_flmap or -mavrxmega2
                   depending on -m[no-]rodata-in-ram; and similar for
                   -mavrxmega4[_flmap].
*************** __asm (".global __flmap_lock"  "\n\t"
*** 626,644 ****
       * A new compiler option -m[no-]rodata-in-ram has been added. The
         default is to locate read-only data in program memory for devices
         that support it, e.g. for AVR64* and AVR128* devices as explained
!        above, and for devices from the [110]avrxmega3 and [111]avrtiny
         families.
       * The new built-in macro __AVR_RODATA_IN_RAM__ is supported on all
         devices. It's defined to 0 or 1.
       * A new optimization tries to improve code generation for indirect
!        memory accesses on [112]Reduced Tiny devices. It can be controlled
         by the new compiler option -mfuse-add=level where level may be 0, 1
         or 2.
       * On the Reduced Tiny devices, the meaning of register constraint "w"
         has been changed. It now constrains the registers R24…R31 as is the
         case for all the other devices.
  
!   IA-32/x86-64
  
       * New compiler option -m[no-]evex512 was added. The compiler switch
         enables/disables 512-bit vector. It will be default on if AVX512F
--- 1566,1587 ----
       * A new compiler option -m[no-]rodata-in-ram has been added. The
         default is to locate read-only data in program memory for devices
         that support it, e.g. for AVR64* and AVR128* devices as explained
!        above, and for devices from the [129]avrxmega3 and [130]avrtiny
         families.
       * The new built-in macro __AVR_RODATA_IN_RAM__ is supported on all
         devices. It's defined to 0 or 1.
       * A new optimization tries to improve code generation for indirect
!        memory accesses on [131]Reduced Tiny devices. It can be controlled
         by the new compiler option -mfuse-add=level where level may be 0, 1
         or 2.
       * On the Reduced Tiny devices, the meaning of register constraint "w"
         has been changed. It now constrains the registers R24…R31 as is the
         case for all the other devices.
+      * Support for the following devices has been added in v14.3:
+           + AVR32SD20, AVR32SD28, AVR32SD32, AVR64SD28, AVR64SD32,
+             AVR64SD48.
  
!   [132]IA-32/x86-64
  
       * New compiler option -m[no-]evex512 was added. The compiler switch
         enables/disables 512-bit vector. It will be default on if AVX512F
*************** __asm (".global __flmap_lock"  "\n\t"
*** 652,661 ****
         -mapx-inline-asm-use-gpr32 and user should ensure the instruction
         supports EGPR.
       * New ISA extension support for Intel AVX10.1 was added. AVX10.1
!        intrinsics are available via the -mavx10.1 or -mavx10.1-256
!        compiler switch with 256-bit vector size support. 512-bit vector
!        size support for AVX10.1 intrinsics are available via the
!        -mavx10.1-512 compiler switch.
       * New ISA extension support for Intel AVX-VNNI-INT16 was added.
         AVX-VNNI-INT16 intrinsics are available via the -mavxvnniint16
         compiler switch.
--- 1595,1607 ----
         -mapx-inline-asm-use-gpr32 and user should ensure the instruction
         supports EGPR.
       * New ISA extension support for Intel AVX10.1 was added. AVX10.1
!        intrinsics are available via the -mavx10.1-256 compiler switch with
!        256-bit vector support. 512-bit vector support for AVX10.1
!        intrinsics are available via the -mavx10.1-512 compiler switch.
!        -mavx10.1 enables AVX10.1 intrinsics with 256-bit vector support in
!        GCC 14.1 and GCC 14.2. Since GCC 14.3, it enables AVX10.1
!        intrinsics with 512-bit vector support (and emits a warning due to
!        this behavior change).
       * New ISA extension support for Intel AVX-VNNI-INT16 was added.
         AVX-VNNI-INT16 intrinsics are available via the -mavxvnniint16
         compiler switch.
*************** __asm (".global __flmap_lock"  "\n\t"
*** 671,676 ****
--- 1617,1624 ----
         -march=clearwaterforest. Based on Sierra Forest, the switch further
         enables the AVX-VNNI-INT16, PREFETCHI, SHA512, SM3, SM4 and
         USER_MSR ISA extensions.
+      * GCC now supports the Intel CPU named Gracemont through
+        -march=gracemont. Gracemont is based on Alder Lake.
       * GCC now supports the Intel CPU named Arrow Lake through
         -march=arrowlake. Based on Alder Lake, the switch further enables
         the AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8 and CMPccXADD ISA
*************** __asm (".global __flmap_lock"  "\n\t"
*** 688,694 ****
         -mavx5124fmaps, -mavx5124vnniw, -mavx512er, -mavx512pf,
         -mprefetchwt1, -march=knl, -march=knm, -mtune=knl or -mtune=knm
         compiler switches. Support will be removed in GCC 15.
!      * [113]Hardware-assisted AddressSanitizer now works for the x86-64
         target with LAM_U57. -fsanitize=hwaddress will enable -mlam=u57 by
         default.
       * GCC now supports AMD CPUs based on the znver5 core via
--- 1636,1642 ----
         -mavx5124fmaps, -mavx5124vnniw, -mavx512er, -mavx512pf,
         -mprefetchwt1, -march=knl, -march=knm, -mtune=knl or -mtune=knm
         compiler switches. Support will be removed in GCC 15.
!      * [133]Hardware-assisted AddressSanitizer now works for the x86-64
         target with LAM_U57. -fsanitize=hwaddress will enable -mlam=u57 by
         default.
       * GCC now supports AMD CPUs based on the znver5 core via
*************** __asm (".global __flmap_lock"  "\n\t"
*** 702,723 ****
         arithmetic support of these types instead of __FLT16_MAX__(or other
         similar Macros).
  
!   MCore
  
       * Bitfields are now signed by default per GCC policy. If you need
         bitfields to be unsigned, use -funsigned-bitfields.
  
!   LoongArch
  
!      * Support for the following [114]-march parameters has been added:
            + la64v1.0
            + la64v1.1
            + la664
         It is now recommended to use -march=la64v1.0 as the only compiler
         option to describe the target ISA when building binaries for
         distribution. For more information on LoongArch ISA versions, see
!        [115]Toolchain Conventions of the LoongArch™ Architecture.
!      * Support for the following [116]-mtune parameters has been added:
            + generic
            + la664
       * New ISA Extension
--- 1650,1671 ----
         arithmetic support of these types instead of __FLT16_MAX__(or other
         similar Macros).
  
!   [134]MCore
  
       * Bitfields are now signed by default per GCC policy. If you need
         bitfields to be unsigned, use -funsigned-bitfields.
  
!   [135]LoongArch
  
!      * Support for the following [136]-march parameters has been added:
            + la64v1.0
            + la64v1.1
            + la664
         It is now recommended to use -march=la64v1.0 as the only compiler
         option to describe the target ISA when building binaries for
         distribution. For more information on LoongArch ISA versions, see
!        [137]Toolchain Conventions of the LoongArch™ Architecture.
!      * Support for the following [138]-mtune parameters has been added:
            + generic
            + la664
       * New ISA Extension
*************** __asm (".global __flmap_lock"  "\n\t"
*** 754,777 ****
              1 or undefined (iff __loongarch_version_major is undefined).
            + __FLOAT128_TYPE: It's defined to 1.
       * New Intrinsics
!           + [117]__builtin_thread_pointer
!           + [118]__lsx_*
!           + [119]__lasx_*
!           + [120]__frecipe_{s/d} and __frsqrte_{s/d}
       * New Compiler Option
!           + [121]-m[no-]lsx
!           + [122]-m[no-]lasx
!           + [123]-m[no-]frecipe
!           + [124]-m[no-]div32
!           + [125]-m[no-]lam-bh
!           + [126]-m[no-]lamcas
!           + [127]-m[no-]ld-seq-sa
!           + [128]-mrecip=
!           + [129]-m[no-]recip
!           + [130]-mexplicit-relocs={none,always,auto}
!           + [131]-m[no-]relax
!           + [132]-m[no-]pass-mrelax-to-as
!           + [133]-mtls-dialect={trad,desc}
       * Support for Ada and D.
       * Support for libffi.
       * Enable -free by default at -O2 or higher.
--- 1702,1725 ----
              1 or undefined (iff __loongarch_version_major is undefined).
            + __FLOAT128_TYPE: It's defined to 1.
       * New Intrinsics
!           + [139]__builtin_thread_pointer
!           + [140]__lsx_*
!           + [141]__lasx_*
!           + [142]__frecipe_{s/d} and __frsqrte_{s/d}
       * New Compiler Option
!           + [143]-m[no-]lsx
!           + [144]-m[no-]lasx
!           + [145]-m[no-]frecipe
!           + [146]-m[no-]div32
!           + [147]-m[no-]lam-bh
!           + [148]-m[no-]lamcas
!           + [149]-m[no-]ld-seq-sa
!           + [150]-mrecip=
!           + [151]-m[no-]recip
!           + [152]-mexplicit-relocs={none,always,auto}
!           + [153]-m[no-]relax
!           + [154]-m[no-]pass-mrelax-to-as
!           + [155]-mtls-dialect={trad,desc}
       * Support for Ada and D.
       * Support for libffi.
       * Enable -free by default at -O2 or higher.
*************** __asm (".global __flmap_lock"  "\n\t"
*** 782,796 ****
       * Optimizing built-in functions for memory-model-aware atomic
         operations using hierarchical dbar instructions.
       * TLS descriptors support. It is not enabled by default, and can be
!        enabled with [134]-mtls-dialect=desc. The default behavior can be
         configured with --with-tls=[trad|desc].
  
!   RISC-V
  
       * The SLP and loop vectorizer are now enabled for RISC-V when the
         vector extension is enabled, thanks to Ju-Zhe Zhong from
!        [135]RiVAI, Pan Li from [136]Intel, and Robin Dapp from
!        [137]Ventana Micro for contributing most of the implementation!
       * The -mrvv-max-lmul= option has been introduced for performance
         tuning of the loop vectorizer. The default value is
         -mrvv-max-lmul=m1, which limits the maximum LMUL to 1. The
--- 1730,1744 ----
       * Optimizing built-in functions for memory-model-aware atomic
         operations using hierarchical dbar instructions.
       * TLS descriptors support. It is not enabled by default, and can be
!        enabled with [156]-mtls-dialect=desc. The default behavior can be
         configured with --with-tls=[trad|desc].
  
!   [157]RISC-V
  
       * The SLP and loop vectorizer are now enabled for RISC-V when the
         vector extension is enabled, thanks to Ju-Zhe Zhong from
!        [158]RiVAI, Pan Li from [159]Intel, and Robin Dapp from
!        [160]Ventana Micro for contributing most of the implementation!
       * The -mrvv-max-lmul= option has been introduced for performance
         tuning of the loop vectorizer. The default value is
         -mrvv-max-lmul=m1, which limits the maximum LMUL to 1. The
*************** __asm (".global __flmap_lock"  "\n\t"
*** 798,816 ****
         LMUL value based on register pressure.
       * Atomic code generation has been improved and is now in conformance
         with the latest psABI specification, thanks to Patrick O'Neill from
!        [138]Rivos.
!      * Support for the vector intrinsics as specified in [139]version 1.0
         of the RISC-V vector intrinsic specification.
       * Support for the experimental vector crypto intrinsics as specified
!        in [140]RISC-V vector intrinsic specification, thanks to Feng Wang
!        et al. from [141]ESWIN Computing
       * Support for the T-head vector intrinsics.
       * Support for the scalar bitmanip and scalar crypto intrinsics,
!        thanks to Liao Shihua from [142]PLCT.
       * Support for the large code model via option -mcmodel=large, thanks
!        to Kuan-Lin Chen from [143]Andes Technology.
       * Support for the standard vector calling convention variant, thanks
!        to Lehua Ding from [144]RiVAI.
       * Supports the target attribute, which allows users to compile a
         function with specific extensions.
       * -march= option no longer requires the architecture string to be in
--- 1746,1764 ----
         LMUL value based on register pressure.
       * Atomic code generation has been improved and is now in conformance
         with the latest psABI specification, thanks to Patrick O'Neill from
!        [161]Rivos.
!      * Support for the vector intrinsics as specified in [162]version 1.0
         of the RISC-V vector intrinsic specification.
       * Support for the experimental vector crypto intrinsics as specified
!        in [163]RISC-V vector intrinsic specification, thanks to Feng Wang
!        et al. from [164]ESWIN Computing
       * Support for the T-head vector intrinsics.
       * Support for the scalar bitmanip and scalar crypto intrinsics,
!        thanks to Liao Shihua from [165]PLCT.
       * Support for the large code model via option -mcmodel=large, thanks
!        to Kuan-Lin Chen from [166]Andes Technology.
       * Support for the standard vector calling convention variant, thanks
!        to Lehua Ding from [167]RiVAI.
       * Supports the target attribute, which allows users to compile a
         function with specific extensions.
       * -march= option no longer requires the architecture string to be in
*************** __asm (".global __flmap_lock"  "\n\t"
*** 824,837 ****
         for scalable vector types. This option is optimized for specific
         vector core implementations; however, the code generated with this
         option is NOT portable between the core with different VLEN, thanks
!        to Pan Li from [145]Intel.
       * Support for TLS descriptors has been introduced, which can be
         enabled by the -mtls-dialect=desc option. The default behavior can
         be configured with --with-tls=[trad|desc].
       * Support for the TLS descriptors, this can be enabled by
         -mtls-dialect=desc and the default behavior can be configure by
         --with-tls=[trad|desc], and this feature require glibc 2.40, thanks
!        to Tatsuyuki Ishi from [146]Blue Whale Systems.
       * Support for the following standard extensions has been added:
            + Vector crypto extensions:
                 o Zvbb
--- 1772,1785 ----
         for scalable vector types. This option is optimized for specific
         vector core implementations; however, the code generated with this
         option is NOT portable between the core with different VLEN, thanks
!        to Pan Li from [168]Intel.
       * Support for TLS descriptors has been introduced, which can be
         enabled by the -mtls-dialect=desc option. The default behavior can
         be configured with --with-tls=[trad|desc].
       * Support for the TLS descriptors, this can be enabled by
         -mtls-dialect=desc and the default behavior can be configure by
         --with-tls=[trad|desc], and this feature require glibc 2.40, thanks
!        to Tatsuyuki Ishi from [169]Blue Whale Systems.
       * Support for the following standard extensions has been added:
            + Vector crypto extensions:
                 o Zvbb
*************** __asm (".global __flmap_lock"  "\n\t"
*** 904,910 ****
            + SiFive's P600 series (sifive-p600-series).
            + XiangShan's Nanhu microarchitecture (xiangshan-nanhu).
  
!   SPARC
  
       * The implementation of calling conventions for small structures
         containing arrays of floating-point components has been changed in
--- 1852,1858 ----
            + SiFive's P600 series (sifive-p600-series).
            + XiangShan's Nanhu microarchitecture (xiangshan-nanhu).
  
!   [170]SPARC
  
       * The implementation of calling conventions for small structures
         containing arrays of floating-point components has been changed in
*************** Documentation improvements
*** 919,967 ****
         option in quotes in a diagnostic message, the option is a clickable
         hyperlink (assuming a suitably capable terminal).
  
! Improvements to Static Analyzer
  
       * New warnings:
!           + [147]-Wanalyzer-infinite-loop warns about paths through the
              code which appear to lead to an infinite loop.
!           + [148]-Wanalyzer-overlapping-buffers warns for paths through
              the code in which overlapping buffers are passed to an API for
              which the behavior on such buffers is undefined.
!           + [149]-Wanalyzer-undefined-behavior-strtok warns for paths
              through the code in which a call is made to strtok with
              undefined behavior.
       * Previously, the analyzer's "taint" tracking to be explicitly
!        enabled via [150]-fanalyzer-checker=taint (along with
!        [151]-fanalyzer). This is now enabled by default when
!        [152]-fanalyzer is selected, thus also enabling the 6 taint-based
         warnings:
!           + [153]-Wanalyzer-tainted-allocation-size
!           + [154]-Wanalyzer-tainted-array-index
!           + [155]-Wanalyzer-tainted-assertion
!           + [156]-Wanalyzer-tainted-divisor
!           + [157]-Wanalyzer-tainted-offset
!           + [158]-Wanalyzer-tainted-size
       * The analyzer will now simulate API calls that expect
         null-terminated string arguments, and will warn about code paths in
         which such a call is made with a buffer that isn't properly
         terminated, either due to a read of an uninitialized byte or an
         out-of-range accesses seen before any zero byte is seen. This
         applies to functions that use the new
!        [159]null_terminated_string_arg(PARAM_IDX) attribute, functions
!        that use the [160]format attribute, and to the library functions
         error (parameter 3), error_at_line (parameter 5), putenv, strchr
         (parameter 1), and strcpy (parameter 2).
       * The analyzer now makes use of the function attribute
!        [161]alloc_size allowing [162]-fanalyzer to emit
!        [163]-Wanalyzer-allocation-size, [164]-Wanalyzer-out-of-bounds, and
!        [165]-Wanalyzer-tainted-allocation-size on execution paths
         involving allocations using such functions.
       * The analyzer's knowledge about the behavior of the standard library
         has been extended to cover fopen, strcat, strncpy, and strstr. The
         analyzer will also more precisely model the behavior of memcpy,
         memmove, strcpy, strdup, strlen, and of various atomic built-in
         functions.
!      * The warning [166]-Wanalyzer-out-of-bounds has been extended so
         that, where possible, it will emit a text-based diagram visualizing
         the spatial relationship between
           1. the memory region that the analyzer predicts would be
--- 1867,1915 ----
         option in quotes in a diagnostic message, the option is a clickable
         hyperlink (assuming a suitably capable terminal).
  
! [171]Improvements to Static Analyzer
  
       * New warnings:
!           + [172]-Wanalyzer-infinite-loop warns about paths through the
              code which appear to lead to an infinite loop.
!           + [173]-Wanalyzer-overlapping-buffers warns for paths through
              the code in which overlapping buffers are passed to an API for
              which the behavior on such buffers is undefined.
!           + [174]-Wanalyzer-undefined-behavior-strtok warns for paths
              through the code in which a call is made to strtok with
              undefined behavior.
       * Previously, the analyzer's "taint" tracking to be explicitly
!        enabled via [175]-fanalyzer-checker=taint (along with
!        [176]-fanalyzer). This is now enabled by default when
!        [177]-fanalyzer is selected, thus also enabling the 6 taint-based
         warnings:
!           + [178]-Wanalyzer-tainted-allocation-size
!           + [179]-Wanalyzer-tainted-array-index
!           + [180]-Wanalyzer-tainted-assertion
!           + [181]-Wanalyzer-tainted-divisor
!           + [182]-Wanalyzer-tainted-offset
!           + [183]-Wanalyzer-tainted-size
       * The analyzer will now simulate API calls that expect
         null-terminated string arguments, and will warn about code paths in
         which such a call is made with a buffer that isn't properly
         terminated, either due to a read of an uninitialized byte or an
         out-of-range accesses seen before any zero byte is seen. This
         applies to functions that use the new
!        [184]null_terminated_string_arg(PARAM_IDX) attribute, functions
!        that use the [185]format attribute, and to the library functions
         error (parameter 3), error_at_line (parameter 5), putenv, strchr
         (parameter 1), and strcpy (parameter 2).
       * The analyzer now makes use of the function attribute
!        [186]alloc_size allowing [187]-fanalyzer to emit
!        [188]-Wanalyzer-allocation-size, [189]-Wanalyzer-out-of-bounds, and
!        [190]-Wanalyzer-tainted-allocation-size on execution paths
         involving allocations using such functions.
       * The analyzer's knowledge about the behavior of the standard library
         has been extended to cover fopen, strcat, strncpy, and strstr. The
         analyzer will also more precisely model the behavior of memcpy,
         memmove, strcpy, strdup, strlen, and of various atomic built-in
         functions.
!      * The warning [191]-Wanalyzer-out-of-bounds has been extended so
         that, where possible, it will emit a text-based diagram visualizing
         the spatial relationship between
           1. the memory region that the analyzer predicts would be
*************** Improvements to Static Analyzer
*** 972,978 ****
         direction of the access (read vs write), and, in some cases, the
         values of data involved.
         Such "text art" diagrams can be controlled (or suppressed) via a
!        new [167]-fdiagnostics-text-art-charset= option.
         For example, given the out-of-bounds write in strcat in:
  void test (void)
  {
--- 1920,1926 ----
         direction of the access (read vs write), and, in some cases, the
         values of data involved.
         Such "text art" diagrams can be controlled (or suppressed) via a
!        new [192]-fdiagnostics-text-art-charset= option.
         For example, given the out-of-bounds write in strcat in:
  void test (void)
  {
*************** void test (void)
*** 1013,1032 ****
       * The analyzer will now attempt to track execution paths involving
         computed gotos, whereas previously it gave up on such paths.
  
! Improvements to SARIF support
  
!      * The SARIF output from [168]-fdiagnostics-format= now adds
         indentation and newlines to reflect the logical JSON structure of
         the data. The previous compact behavior can be restored via the new
!        option [169]-fno-diagnostics-json-formatting. This also applies to
         the older output format named "json".
       * If profiling information about the compiler itself is requested via
!        [170]-ftime-report, and a SARIF output format is requested via
!        [171]-fdiagnostics-format=, then the timing and memory usage data
         is now written in JSON form into the SARIF output, rather than as
         plain text to stderr.
  
! Improvements for plugin authors
  
       * GCC diagnostics have been able to have execution paths associated
         with them since GCC 10, but previously these were required to be
--- 1961,1980 ----
       * The analyzer will now attempt to track execution paths involving
         computed gotos, whereas previously it gave up on such paths.
  
! [193]Improvements to SARIF support
  
!      * The SARIF output from [194]-fdiagnostics-format= now adds
         indentation and newlines to reflect the logical JSON structure of
         the data. The previous compact behavior can be restored via the new
!        option [195]-fno-diagnostics-json-formatting. This also applies to
         the older output format named "json".
       * If profiling information about the compiler itself is requested via
!        [196]-ftime-report, and a SARIF output format is requested via
!        [197]-fdiagnostics-format=, then the timing and memory usage data
         is now written in JSON form into the SARIF output, rather than as
         plain text to stderr.
  
! [198]Improvements for plugin authors
  
       * GCC diagnostics have been able to have execution paths associated
         with them since GCC 10, but previously these were required to be
*************** Improvements for plugin authors
*** 1034,1073 ****
         multiple named threads associated with them, with each event being
         associated with one of the threads. No existing GCC diagnostics
         take advantage of this, but GCC plugins may find this useful for
!        their own diagnostics; an [172]example is provided in the
         testsuite.
       * GCC's diagnostics can now optionally add per-diagnostic property
         bags to the SARIF output, allowing plugins to capture custom data
         as needed with their diagnostics.
  
! GCC 14.1
  
!    This is the [173]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 14.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 14.2
  
!    This is the [174]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 14.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [175]GCC manuals. If that fails, the
!     [176]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [177]gcc@gcc.gnu.org. All of [178]our lists have public
      archives.
  
!    Copyright (C) [179]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [180]maintained by the GCC team. Last modified
!    2024-08-01.
  
  References
  
--- 1982,2021 ----
         multiple named threads associated with them, with each event being
         associated with one of the threads. No existing GCC diagnostics
         take advantage of this, but GCC plugins may find this useful for
!        their own diagnostics; an [199]example is provided in the
         testsuite.
       * GCC's diagnostics can now optionally add per-diagnostic property
         bags to the SARIF output, allowing plugins to capture custom data
         as needed with their diagnostics.
  
! [200]GCC 14.1
  
!    This is the [201]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 14.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [202]GCC 14.2
  
!    This is the [203]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 14.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [204]GCC manuals. If that fails, the
!     [205]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [206]gcc@gcc.gnu.org. All of [207]our lists have public
      archives.
  
!    Copyright (C) [208]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [209]maintained by the GCC team. Last modified
!    2025-04-16.
  
  References
  
*************** References
*** 1078,1256 ****
     5. https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
     6. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html
     7. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html
!    8. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C-Dialect-Options.html#index-foffload-options
!    9. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fhardened
!   10. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-control-flow-redundancy
!   11. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-hardbool-type-attribute
!   12. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-strub-type-attribute
!   13. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Optimize-Options.html#index-finline-stringops
!   14. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
!   15. https://gcc.gnu.org/projects/gomp/
!   16. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/
!   17. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/Offload-Target-Specifics.html
!   18. https://github.com/numactl/numactl
!   19. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/Memory-allocation.html
!   20. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gfortran/Fortran-Dialect-Options.html#index-fopenmp-allocators
!   21. https://gcc.gnu.org/wiki/OpenACC
!   22. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Local_005fRestrictions.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Pragma-User_005fAspect_005fDefinition.html
!   24. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-User_005fAspect.html
!   25. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Always_005fTerminates.html
!   26. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Ghost_005fPredicate.html
!   27. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Exceptional_005fCases.html
!   28. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Side_005fEffects.html
!   29. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-compares
!   30. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Security-Hardening-Features.html
!   31. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_ugn/Style-Checking.html#index--gnatyz-_0028gcc_0029
!   32. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_ugn/Alphabetical-List-of-All-Switches.html#index--gnateH-_0028gcc_0029
!   33. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Pragma-Storage_005fModel.html
!   34. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/String-interpolation.html
!   35. https://wg21.link/P1854R4
!   36. https://gcc.gnu.org/PR110341
!   37. https://wg21.link/P2752R3
!   38. https://gcc.gnu.org/PR110346
!   39. https://wg21.link/P2361R6
!   40. https://gcc.gnu.org/PR110342
!   41. https://wg21.link/P2738R1
!   42. https://gcc.gnu.org/PR110344
!   43. https://wg21.link/P2741R3
!   44. https://gcc.gnu.org/PR110348
!   45. https://wg21.link/P2169R4
!   46. https://gcc.gnu.org/PR110349
!   47. https://wg21.link/P2864R2
!   48. https://wg21.link/P2748R5
!   49. https://gcc.gnu.org/PR114455
!   50. https://wg21.link/P2809R3
!   51. https://gcc.gnu.org/PR114462
!   52. https://wg21.link/P0847R7
!   53. https://gcc.gnu.org/PR102609
!   54. https://wg21.link/P2280R4
!   55. https://gcc.gnu.org/PR106650
!   56. https://wg21.link/P2564R3
!   57. https://gcc.gnu.org/PR107687
!   58. https://wg21.link/P2582R1
!   59. https://gcc.gnu.org/PR106653
!   60. https://wg21.link/cwg532
!   61. https://wg21.link/cwg976
!   62. https://wg21.link/cwg2262
!   63. https://wg21.link/cwg2359
!   64. https://wg21.link/cwg2386
!   65. https://wg21.link/cwg2406
!   66. https://wg21.link/cwg2543
!   67. https://wg21.link/cwg2586
!   68. https://wg21.link/cwg2735
!   69. https://wg21.link/cwg2799
!   70. https://gcc.gnu.org/PR100157
!   71. https://cplusplus.github.io/CWG/issues/2256.html
!   72. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   73. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/g++.dg/opt/nrv23.C;h=9e1253cd830a84ad4de5ff3076a07c543afe344f;hb=7e0b65b239c3a0d68ce94896b236b03de666ffd6
!   74. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Warning-Options.html#index-Wnrvo
!   75. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=4d935f52b0d5c00fcc154461b87415ebd8791a94
!   76. https://gcc.gnu.org/PR110164
!   77. https://gcc.gnu.org/PR89442
!   78. https://gcc.gnu.org/PR110064
!   79. https://gcc.gnu.org/PR70331
!   80. https://gcc.gnu.org/PR96630
!   81. https://gcc.gnu.org/PR98675
!   82. https://gcc.gnu.org/PR71954
!   83. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=85ad41a494e31311f8a6b2dbe930a128c5e85840
!   84. https://gcc.gnu.org/PR111069
!   85. https://gcc.gnu.org/PR52953
!   86. https://gcc.gnu.org/PR91483
!   87. https://gcc.gnu.org/PR18474
!   88. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Attributes.html#index-cold-type-attribute
!   89. https://gcc.gnu.org/PR79620
!   90. https://gcc.gnu.org/PR79378
!   91. https://gcc.gnu.org/PR83167
!   92. https://gcc.gnu.org/PR96917
!   93. https://wg21.link/P1689R5
!   94. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/types.html#c.gcc_jit_type_get_restrict
!   95. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-25
!   96. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-26
!   97. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_sizeof
!   98. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-27
!   99. https://github.com/ARM-software/acle/blob/main/main/acle.md#sme-language-extensions-and-intrinsics
!  100. https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning
!  101. https://github.com/ARM-software/acle/blob/main/main/acle.md#memory-prefetch-intrinsics
!  102. https://github.com/ARM-software/acle/blob/main/main/acle.md#special-register-intrinsics
!  103. https://github.com/ARM-software/acle/blob/main/main/acle.md#neon-sve-bridge
!  104. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AArch64-Options.html
!  105. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  106. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  107. https://github.com/avrdudes/avr-libc/issues/931
!  108. https://sourceware.org/PR31124
!  109. https://gcc.gnu.org/wiki/avr-gcc#spec-files
!  110. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrxmega3
!  111. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  112. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  113. https://gcc.gnu.org/gcc-11/changes.html
!  114. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-march-7
!  115. https://github.com/loongson/la-toolchain-conventions/
!  116. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtune-8
!  117. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  118. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-SX-Vector-Intrinsics.html
!  119. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-ASX-Vector-Intrinsics.html
!  120. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  121. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  122. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  123. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mfrecipe
!  124. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mdiv32
!  125. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlam-bh
!  126. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlamcas
!  127. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mld-seq-sa
!  128. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip_003dopt
!  129. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip
!  130. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mexplicit-relocs-1
!  131. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrelax-2
!  132. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mpass-mrelax-to-as
!  133. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  134. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  135. https://rivai-ic.com.cn/
!  136. https://www.intel.com/
!  137. https://www.ventanamicro.com/
!  138. https://www.rivosinc.com/
!  139. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v1.0.x
!  140. https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/234
!  141. https://eswincomputing.com/
!  142. https://plctlab.org/
!  143. https://www.andestech.com/
!  144. https://rivai-ic.com.cn/
!  145. https://www.intel.com/
!  146. https://bluewhale.systems/
!  147. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop
!  148. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-overlapping-buffers
!  149. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-strtok
!  150. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker
!  151. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  152. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  153. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  154. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index
!  155. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!  156. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor
!  157. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset
!  158. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size
!  159. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
!  160. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-format-function-attribute
!  161. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute
!  162. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  163. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!  164. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!  165. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  166. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!  167. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-text-art-charset
!  168. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  169. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-json-formatting
!  170. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Developer-Options.html#index-ftime-report
!  171. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  172. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a1e9f3ed7aa49adad02190ace0614e0b37fc089
!  173. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.0
!  174. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.2
!  175. https://gcc.gnu.org/onlinedocs/
!  176. mailto:gcc-help@gcc.gnu.org
!  177. mailto:gcc@gcc.gnu.org
!  178. https://gcc.gnu.org/lists.html
!  179. https://www.fsf.org/
!  180. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/index.html
                               GCC 13 Release Series
--- 2026,2233 ----
     5. https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
     6. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html
     7. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html
!    8. https://gcc.gnu.org/gcc-14/changes.html#general
!    9. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C-Dialect-Options.html#index-foffload-options
!   10. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fhardened
!   11. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-control-flow-redundancy
!   12. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-hardbool-type-attribute
!   13. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-strub-type-attribute
!   14. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Optimize-Options.html#index-finline-stringops
!   15. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Code-Gen-Options.html#index-ftrampoline-impl
!   16. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
!   17. https://gcc.gnu.org/gcc-14/changes.html#languages
!   18. https://gcc.gnu.org/projects/gomp/
!   19. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/
!   20. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/Offload-Target-Specifics.html
!   21. https://github.com/numactl/numactl
!   22. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/libgomp/Memory-allocation.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gfortran/Fortran-Dialect-Options.html#index-fopenmp-allocators
!   24. https://gcc.gnu.org/wiki/OpenACC
!   25. https://gcc.gnu.org/gcc-14/changes.html#ada
!   26. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Local_005fRestrictions.html
!   27. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Pragma-User_005fAspect_005fDefinition.html
!   28. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-User_005fAspect.html
!   29. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Always_005fTerminates.html
!   30. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Ghost_005fPredicate.html
!   31. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Exceptional_005fCases.html
!   32. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Aspect-Side_005fEffects.html
!   33. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-compares
!   34. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Security-Hardening-Features.html
!   35. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_ugn/Style-Checking.html#index--gnatyz-_0028gcc_0029
!   36. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_ugn/Alphabetical-List-of-All-Switches.html#index--gnateH-_0028gcc_0029
!   37. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/Pragma-Storage_005fModel.html
!   38. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gnat_rm/String-interpolation.html
!   39. https://gcc.gnu.org/gcc-14/changes.html#c-family
!   40. https://gcc.gnu.org/gcc-14/changes.html#c
!   41. https://gcc.gnu.org/gcc-14/changes.html#cxx
!   42. https://wg21.link/P1854R4
!   43. https://gcc.gnu.org/PR110341
!   44. https://wg21.link/P2752R3
!   45. https://gcc.gnu.org/PR110346
!   46. https://wg21.link/P2361R6
!   47. https://gcc.gnu.org/PR110342
!   48. https://wg21.link/P2738R1
!   49. https://gcc.gnu.org/PR110344
!   50. https://wg21.link/P2741R3
!   51. https://gcc.gnu.org/PR110348
!   52. https://wg21.link/P2169R4
!   53. https://gcc.gnu.org/PR110349
!   54. https://wg21.link/P2864R2
!   55. https://wg21.link/P2748R5
!   56. https://gcc.gnu.org/PR114455
!   57. https://wg21.link/P2809R3
!   58. https://gcc.gnu.org/PR114462
!   59. https://wg21.link/P0847R7
!   60. https://gcc.gnu.org/PR102609
!   61. https://wg21.link/P2280R4
!   62. https://gcc.gnu.org/PR106650
!   63. https://wg21.link/P2564R3
!   64. https://gcc.gnu.org/PR107687
!   65. https://wg21.link/P2582R1
!   66. https://gcc.gnu.org/PR106653
!   67. https://wg21.link/cwg532
!   68. https://wg21.link/cwg976
!   69. https://wg21.link/cwg2262
!   70. https://wg21.link/cwg2359
!   71. https://wg21.link/cwg2386
!   72. https://wg21.link/cwg2406
!   73. https://wg21.link/cwg2543
!   74. https://wg21.link/cwg2586
!   75. https://wg21.link/cwg2735
!   76. https://wg21.link/cwg2799
!   77. https://gcc.gnu.org/PR100157
!   78. https://cplusplus.github.io/CWG/issues/2256.html
!   79. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   80. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/g++.dg/opt/nrv23.C;h=9e1253cd830a84ad4de5ff3076a07c543afe344f;hb=7e0b65b239c3a0d68ce94896b236b03de666ffd6
!   81. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Warning-Options.html#index-Wnrvo
!   82. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=4d935f52b0d5c00fcc154461b87415ebd8791a94
!   83. https://gcc.gnu.org/PR110164
!   84. https://gcc.gnu.org/PR89442
!   85. https://gcc.gnu.org/PR110064
!   86. https://gcc.gnu.org/PR70331
!   87. https://gcc.gnu.org/PR96630
!   88. https://gcc.gnu.org/PR98675
!   89. https://gcc.gnu.org/PR71954
!   90. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=85ad41a494e31311f8a6b2dbe930a128c5e85840
!   91. https://gcc.gnu.org/PR111069
!   92. https://gcc.gnu.org/PR52953
!   93. https://gcc.gnu.org/PR91483
!   94. https://gcc.gnu.org/PR18474
!   95. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Attributes.html#index-cold-type-attribute
!   96. https://gcc.gnu.org/PR79620
!   97. https://gcc.gnu.org/PR79378
!   98. https://gcc.gnu.org/PR83167
!   99. https://gcc.gnu.org/PR96917
!  100. https://wg21.link/P1689R5
!  101. https://gcc.gnu.org/gcc-14/changes.html#libstdcxx
!  102. https://gcc.gnu.org/gcc-14/changes.html#d
!  103. https://dlang.org/changelog/2.108.1.html
!  104. https://gcc.gnu.org/gcc-14/changes.html#fortran
!  105. https://gcc.gnu.org/gcc-14/changes.html#modula2
!  106. https://gcc.gnu.org/gcc-14/changes.html#rust
!  107. https://gcc.gnu.org/gcc-14/changes.html#jit
!  108. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/types.html#c.gcc_jit_type_get_restrict
!  109. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-25
!  110. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-26
!  111. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_sizeof
!  112. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-27
!  113. https://gcc.gnu.org/gcc-14/changes.html#targets
!  114. https://gcc.gnu.org/gcc-14/changes.html#aarch64
!  115. https://github.com/ARM-software/acle/blob/main/main/acle.md#sme-language-extensions-and-intrinsics
!  116. https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning
!  117. https://github.com/ARM-software/acle/blob/main/main/acle.md#memory-prefetch-intrinsics
!  118. https://github.com/ARM-software/acle/blob/main/main/acle.md#special-register-intrinsics
!  119. https://github.com/ARM-software/acle/blob/main/main/acle.md#neon-sve-bridge
!  120. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AArch64-Options.html
!  121. https://gcc.gnu.org/gcc-14/changes.html#amdgcn
!  122. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  123. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  124. https://gcc.gnu.org/gcc-14/changes.html#arm
!  125. https://gcc.gnu.org/gcc-14/changes.html#avr
!  126. https://github.com/avrdudes/avr-libc/issues/931
!  127. https://sourceware.org/PR31124
!  128. https://gcc.gnu.org/wiki/avr-gcc#spec-files
!  129. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrxmega3
!  130. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  131. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  132. https://gcc.gnu.org/gcc-14/changes.html#x86
!  133. https://gcc.gnu.org/gcc-11/changes.html
!  134. https://gcc.gnu.org/gcc-14/changes.html#mcore
!  135. https://gcc.gnu.org/gcc-14/changes.html#loongarch
!  136. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-march-7
!  137. https://github.com/loongson/la-toolchain-conventions/
!  138. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtune-8
!  139. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  140. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-SX-Vector-Intrinsics.html
!  141. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-ASX-Vector-Intrinsics.html
!  142. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  143. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  144. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  145. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mfrecipe
!  146. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mdiv32
!  147. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlam-bh
!  148. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlamcas
!  149. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mld-seq-sa
!  150. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip_003dopt
!  151. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip
!  152. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mexplicit-relocs-1
!  153. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrelax-2
!  154. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mpass-mrelax-to-as
!  155. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  156. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  157. https://gcc.gnu.org/gcc-14/changes.html#riscv
!  158. https://rivai-ic.com.cn/
!  159. https://www.intel.com/
!  160. https://www.ventanamicro.com/
!  161. https://www.rivosinc.com/
!  162. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v1.0.x
!  163. https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/234
!  164. https://eswincomputing.com/
!  165. https://plctlab.org/
!  166. https://www.andestech.com/
!  167. https://rivai-ic.com.cn/
!  168. https://www.intel.com/
!  169. https://bluewhale.systems/
!  170. https://gcc.gnu.org/gcc-14/changes.html#sparc
!  171. https://gcc.gnu.org/gcc-14/changes.html#analyzer
!  172. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop
!  173. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-overlapping-buffers
!  174. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-strtok
!  175. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker
!  176. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  177. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  178. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  179. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index
!  180. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!  181. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor
!  182. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset
!  183. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size
!  184. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
!  185. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-format-function-attribute
!  186. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute
!  187. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  188. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!  189. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!  190. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  191. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!  192. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-text-art-charset
!  193. https://gcc.gnu.org/gcc-14/changes.html#sarif
!  194. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  195. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-json-formatting
!  196. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Developer-Options.html#index-ftime-report
!  197. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  198. https://gcc.gnu.org/gcc-14/changes.html#plugins
!  199. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a1e9f3ed7aa49adad02190ace0614e0b37fc089
!  200. https://gcc.gnu.org/gcc-14/changes.html#14.1
!  201. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.0
!  202. https://gcc.gnu.org/gcc-14/changes.html#14.2
!  203. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.2
!  204. https://gcc.gnu.org/onlinedocs/
!  205. mailto:gcc-help@gcc.gnu.org
!  206. mailto:gcc@gcc.gnu.org
!  207. https://gcc.gnu.org/lists.html
!  208. https://www.fsf.org/
!  209. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/index.html
                               GCC 13 Release Series
*************** Caveats
*** 1367,1375 ****
         Future GCC releases will mitigate the problem so that the program
         cannot be run at all with an older libstdc++.so.
  
! General Improvements
  
!      * [9]OpenMP
            + Reverse offload is now supported with AMD GCN and nvptx
              devices. Additionally, the requires handling has been improved
              and all clauses are now accepted. If a requirement cannot be
--- 2344,2352 ----
         Future GCC releases will mitigate the problem so that the program
         cannot be run at all with an older libstdc++.so.
  
! [9]General Improvements
  
!      * [10]OpenMP
            + Reverse offload is now supported with AMD GCN and nvptx
              devices. Additionally, the requires handling has been improved
              and all clauses are now accepted. If a requirement cannot be
*************** General Improvements
*** 1401,1407 ****
              added in Technical Report (TR11) is already handled.
            + For user defined allocators requesting high bandwidth or large
              capacity memspaces or interleaved partitioning, the
!             [10]memkind library is used, if available at run time.
       * AddressSanitizer defaults to detect_stack_use_after_return=1 on
         GNU/Linux targets. For compatibility, it can be disabled with env
         ASAN_OPTIONS=detect_stack_use_after_return=0.
--- 2378,2384 ----
              added in Technical Report (TR11) is already handled.
            + For user defined allocators requesting high bandwidth or large
              capacity memspaces or interleaved partitioning, the
!             [11]memkind library is used, if available at run time.
       * AddressSanitizer defaults to detect_stack_use_after_return=1 on
         GNU/Linux targets. For compatibility, it can be disabled with env
         ASAN_OPTIONS=detect_stack_use_after_return=0.
*************** General Improvements
*** 1414,1424 ****
       * -Ofast, -ffast-math and -funsafe-math-optimizations will no longer
         add startup code to alter the floating-point environment when
         producing a shared object with -shared.
!      * GCC can now emit its diagnostics using [11]SARIF. This is a
         JSON-based format suited for capturing the results of static
!        analysis tools (like GCC's [12]-fanalyzer), but it can also be used
         to capture other GCC warnings and errors in a machine-readable
!        format. Specifically, the [13]-fdiagnostics-format= option has been
         extended to support these new values:
            + -fdiagnostics-format=sarif-stderr
            + -fdiagnostics-format=sarif-file
--- 2391,2401 ----
       * -Ofast, -ffast-math and -funsafe-math-optimizations will no longer
         add startup code to alter the floating-point environment when
         producing a shared object with -shared.
!      * GCC can now emit its diagnostics using [12]SARIF. This is a
         JSON-based format suited for capturing the results of static
!        analysis tools (like GCC's [13]-fanalyzer), but it can also be used
         to capture other GCC warnings and errors in a machine-readable
!        format. Specifically, the [14]-fdiagnostics-format= option has been
         extended to support these new values:
            + -fdiagnostics-format=sarif-stderr
            + -fdiagnostics-format=sarif-file
*************** General Improvements
*** 1428,1442 ****
         where the json-prefixed variants refer to GCC's own JSON diagnostic
         format.
       * Support for profiling and test coverage in freestanding
!        environments has been added, see also [14]Profiling and Test
         Coverage in Freestanding Environments.
       * New options -fharden-compares and -fharden-conditional-branches to
         verify compares and conditional branches, to detect some
         power-deprivation hardware attacks, using reversed conditions.
  
! New Languages and Language specific improvements
  
!   Ada
  
       * Traceback support added in RTEMS for the PPC ELF and ARM
         architectures.
--- 2405,2419 ----
         where the json-prefixed variants refer to GCC's own JSON diagnostic
         format.
       * Support for profiling and test coverage in freestanding
!        environments has been added, see also [15]Profiling and Test
         Coverage in Freestanding Environments.
       * New options -fharden-compares and -fharden-conditional-branches to
         verify compares and conditional branches, to detect some
         power-deprivation hardware attacks, using reversed conditions.
  
! [16]New Languages and Language specific improvements
  
!   [17]Ada
  
       * Traceback support added in RTEMS for the PPC ELF and ARM
         architectures.
*************** New Languages and Language specific impr
*** 1448,1508 ****
         been further improved.
       * Documentation improvements.
  
!   C family
  
       * New warnings:
!           + [15]-Wxor-used-as-pow warns about uses of ^, the exclusive or
              operator, where it appears the user meant exponentiation
!             ([16]PR90885)
       * Three new function attributes for documenting int arguments that
         are file descriptors:
!           + [17]__attribute__((fd_arg(N)))
!           + [18]__attribute__((fd_arg_read(N)))
!           + [19]__attribute__((fd_arg_write(N)))
!        These are used by [20]-fanalyzer to detect misuses of file
         descriptors.
!      * A new statement attribute for C++23 [21]P1774R8 Portable
         assumptions support also in C or older C++:
!        [22]__attribute__((assume(EXPR)));
       * GCC can now control when to treat the trailing array of a structure
         as a flexible array member for the purpose of accessing the
         elements of such an array. By default, all trailing arrays in
         aggregates are treated as flexible array members. Use the new
!        command-line option [23]-fstrict-flex-arrays to control which array
         members are treated as flexible arrays.
  
!   C
  
       * Several C23 features have been implemented:
!           + [24]N3042, Introduce the nullptr constant
!           + [25]N2963, Enhanced Enumerations (fixed underlying types)
!           + [26]N2975, Relax requirements for variadic parameter lists
!           + [27]N3007, Type inference for object definitions (auto)
!           + [28]N3018, The constexpr specifier for object definitions
!           + [29]N3038, Introduce storage-class specifiers for compound
              literals
            + typeof (previously supported as an extension) and
              typeof_unqual
            + New keywords alignas, alignof, bool, false, static_assert,
              thread_local, true
!           + [30]N2764, The noreturn attribute
            + Support for empty initializer braces
            + __STDC_VERSION_*_H__ header version macros
            + Removal of ATOMIC_VAR_INIT
            + unreachable macro in <stddef.h>
            + Removal of trigraphs
            + Removal of unprototyped functions
!           + printf and scanf format checking with [31]-Wformat for %wN and
              %wfN format length modifiers
!           + [32]N2836, Identifier Syntax using Unicode Standard Annex 31
       * In addition to those C23 features, existing features adopted in C23
         have been adjusted to follow C23 requirements and are not diagnosed
         with -std=c2x -Wpedantic.
       * New warnings:
!           + [33]-Wenum-int-mismatch warns about mismatches between an
!             enumerated type and an integer type ([34]PR105131)
  
!   C++
  
       * Excess precision support (which has been available in C since GCC
         4.5) has been implemented for C++ as well. It is enabled by default
--- 2425,2485 ----
         been further improved.
       * Documentation improvements.
  
!   [18]C family
  
       * New warnings:
!           + [19]-Wxor-used-as-pow warns about uses of ^, the exclusive or
              operator, where it appears the user meant exponentiation
!             ([20]PR90885)
       * Three new function attributes for documenting int arguments that
         are file descriptors:
!           + [21]__attribute__((fd_arg(N)))
!           + [22]__attribute__((fd_arg_read(N)))
!           + [23]__attribute__((fd_arg_write(N)))
!        These are used by [24]-fanalyzer to detect misuses of file
         descriptors.
!      * A new statement attribute for C++23 [25]P1774R8 Portable
         assumptions support also in C or older C++:
!        [26]__attribute__((assume(EXPR)));
       * GCC can now control when to treat the trailing array of a structure
         as a flexible array member for the purpose of accessing the
         elements of such an array. By default, all trailing arrays in
         aggregates are treated as flexible array members. Use the new
!        command-line option [27]-fstrict-flex-arrays to control which array
         members are treated as flexible arrays.
  
!   [28]C
  
       * Several C23 features have been implemented:
!           + [29]N3042, Introduce the nullptr constant
!           + [30]N2963, Enhanced Enumerations (fixed underlying types)
!           + [31]N2975, Relax requirements for variadic parameter lists
!           + [32]N3007, Type inference for object definitions (auto)
!           + [33]N3018, The constexpr specifier for object definitions
!           + [34]N3038, Introduce storage-class specifiers for compound
              literals
            + typeof (previously supported as an extension) and
              typeof_unqual
            + New keywords alignas, alignof, bool, false, static_assert,
              thread_local, true
!           + [35]N2764, The noreturn attribute
            + Support for empty initializer braces
            + __STDC_VERSION_*_H__ header version macros
            + Removal of ATOMIC_VAR_INIT
            + unreachable macro in <stddef.h>
            + Removal of trigraphs
            + Removal of unprototyped functions
!           + printf and scanf format checking with [36]-Wformat for %wN and
              %wfN format length modifiers
!           + [37]N2836, Identifier Syntax using Unicode Standard Annex 31
       * In addition to those C23 features, existing features adopted in C23
         have been adjusted to follow C23 requirements and are not diagnosed
         with -std=c2x -Wpedantic.
       * New warnings:
!           + [38]-Wenum-int-mismatch warns about mismatches between an
!             enumerated type and an integer type ([39]PR105131)
  
!   [40]C++
  
       * Excess precision support (which has been available in C since GCC
         4.5) has been implemented for C++ as well. It is enabled by default
*************** New Languages and Language specific impr
*** 1517,1558 ****
         are supported those are evaluated in float precision.
         -fexcess-precision=fast restores previous behavior.
       * Several C++23 features have been implemented:
!           + [35]P2324R1, Labels at the end of compound statements
!             ([36]PR103539)
!           + [37]P2255R2, A type trait to detect reference binding to
!             temporary ([38]PR104477)
!           + [39]P2327R1, De-deprecating volatile compound operations
!           + [40]P2437R1, Support for #warning ([41]PR106646)
!           + [42]P2290R3, Delimited escape sequences ([43]PR106645)
!           + [44]P2071R2, Named universal character escapes ([45]PR106648)
!           + [46]P2513R3, char8_t Compatibility and Portability Fix
!             ([47]PR106656)
!           + [48]P1169R4, static operator() ([49]PR106651)
!           + [50]P2266R3, Simpler implicit move ([51]PR101165)
!           + [52]P2468R2, The Equality Operator You Are Looking For
!             ([53]PR106644)
!           + [54]P2362R3, Remove non-encodable
              wide character literals and multicharacter wide character lite
!             rals ([55]PR106647)
!           + [56]P2448R2, Relaxing some constexpr restrictions
!             ([57]PR106649)
!           + [58]P1467R9, Extended floating-point types and standard names
!             ([59]PR106652)
!           + [60]P1774R8, Portable assumptions ([61]PR106654)
!           + [62]P2295R6, Support for
!             UTF-8 as a portable source file encoding ([63]PR106655)
!           + [64]P2589R1, static operator[] ([65]PR107684)
       * New warnings:
!           + [66]-Wself-move warns when a value is moved to itself with
!             std::move ([67]PR81159)
!           + [68]-Wdangling-reference warns when a reference is bound to a
!             temporary whose lifetime has ended ([69]PR106393)
!      * The [70]-Wpessimizing-move and [71]-Wredundant-move warnings have
         been extended to warn in more contexts.
!      * The [72]-nostdlib++ option has been added, to enable linking with
         g++ without implicitly linking in the C++ standard library.
  
!     Runtime Library (libstdc++)
  
       * Improved experimental support for C++20, including:
            + <format> header and std::format.
--- 2494,2535 ----
         are supported those are evaluated in float precision.
         -fexcess-precision=fast restores previous behavior.
       * Several C++23 features have been implemented:
!           + [41]P2324R1, Labels at the end of compound statements
!             ([42]PR103539)
!           + [43]P2255R2, A type trait to detect reference binding to
!             temporary ([44]PR104477)
!           + [45]P2327R1, De-deprecating volatile compound operations
!           + [46]P2437R1, Support for #warning ([47]PR106646)
!           + [48]P2290R3, Delimited escape sequences ([49]PR106645)
!           + [50]P2071R2, Named universal character escapes ([51]PR106648)
!           + [52]P2513R3, char8_t Compatibility and Portability Fix
!             ([53]PR106656)
!           + [54]P1169R4, static operator() ([55]PR106651)
!           + [56]P2266R3, Simpler implicit move ([57]PR101165)
!           + [58]P2468R2, The Equality Operator You Are Looking For
!             ([59]PR106644)
!           + [60]P2362R3, Remove non-encodable
              wide character literals and multicharacter wide character lite
!             rals ([61]PR106647)
!           + [62]P2448R2, Relaxing some constexpr restrictions
!             ([63]PR106649)
!           + [64]P1467R9, Extended floating-point types and standard names
!             ([65]PR106652)
!           + [66]P1774R8, Portable assumptions ([67]PR106654)
!           + [68]P2295R6, Support for
!             UTF-8 as a portable source file encoding ([69]PR106655)
!           + [70]P2589R1, static operator[] ([71]PR107684)
       * New warnings:
!           + [72]-Wself-move warns when a value is moved to itself with
!             std::move ([73]PR81159)
!           + [74]-Wdangling-reference warns when a reference is bound to a
!             temporary whose lifetime has ended ([75]PR106393)
!      * The [76]-Wpessimizing-move and [77]-Wredundant-move warnings have
         been extended to warn in more contexts.
!      * The [78]-nostdlib++ option has been added, to enable linking with
         g++ without implicitly linking in the C++ standard library.
  
!     [79]Runtime Library (libstdc++)
  
       * Improved experimental support for C++20, including:
            + <format> header and std::format.
*************** New Languages and Language specific impr
*** 1582,1618 ****
       * Support for many previously unavailable features in freestanding
         mode, thanks to Arsen Arsenović. For example, std::tuple is now
         available for freestanding compilation. The freestanding subset
!        contains all the components made freestanding by [73]P1642, but
!        libstdc++ adds more components to the freestanding subset, such as
!        std::array and std::string_view. Additionally, libstdc++ now
!        respects the -ffreestanding compiler option and so it is not
!        necessary to build a separate freestanding installation of
!        libstdc++. Compiling with -ffreestanding will restrict the
!        available features to the freestanding subset, even if libstdc++
!        was built as a full, hosted implementation.
  
!   Fortran
  
       * Finalization is now fully supported.
  
!   Go
  
       * GCC 13, like GCC 12, provides a complete implementation of the Go
         1.18 user packages.
       * Although Go 1.18 includes support for generic programming, that
         support is not yet available in GCC.
  
!   Modula-2
  
       * Support for the language Modula-2 has been added. This includes
         support for the ISO/IEC 10514-1, PIM2, PIM3, PIM4 dialects together
         with a complete set of ISO/IEC 10514-1 and PIM libraries.
       * The <* noreturn *> attribute is supported with the -Wreturn-type
!        [74]option.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * The AArch64 target now supports Decimal Floating-point in the BID
         format through the libbid library.
--- 2559,2633 ----
       * Support for many previously unavailable features in freestanding
         mode, thanks to Arsen Arsenović. For example, std::tuple is now
         available for freestanding compilation. The freestanding subset
!        contains all the components made freestanding by [80]P1642, and
!        libstdc++ adds more components such as std::array and
!        std::string_view. Additionally, libstdc++ now respects the
!        -ffreestanding compiler option and so it is not necessary to build
!        a separate freestanding installation of libstdc++. Compiling with
!        -ffreestanding restricts the available features to the freestanding
!        subset, even if libstdc++ was built as a full, hosted
!        implementation.
  
!   [81]D
! 
!      * Support for the D programming language has been updated to version
!        2.103.1 of the language and run-time library. Full changelog for
!        this release and previous releases can be found on the
!        [82]dlang.org website.
!      * The following GCC attributes are now recognized and available from
!        the gcc.attributes module with short-hand aliases for convenience:
!           + @attribute("no_sanitize", arguments) or
!             @no_sanitize(arguments).
!           + @attribute("register") or @register.
!           + @attribute("simd") or @simd.
!           + @attribute("simd_clones", mask) or @simd_clones(mask).
!           + @attribute("visibility", arguments) or @visibility(arguments).
!      * New aliases have been added to gcc.attributes for compatibility
!        with ldc.attributes.
!           + The @hidden attribute is an alias for @attribute("visibility",
!             "hidden").
!           + The @noSanitize attribute is an alias for
!             @attribute("no_sanitize").
!      * Vector operation intrinsics prefetch, loadUnaligned,
!        storeUnaligned, shuffle, shufflevector, extractelement,
!        insertelement, convertvector, and blendvector have been added to
!        the gcc.simd module.
!      * New warnings:
!           + [83]-Wbuiltin-declaration-mismatch= warns when a built-in
!             function is declared with the wrong signature.
!           + [84]-Wmismatched-special-enum warns when a special enum is
!             declared with the wrong base type.
!      * New version identifier D_Optimized is now predefined when the -O
!        option, or any higher optimization level is used.
!      * The predefinition of version D_Exceptions can now by controlled by
!        the option -fexception.
!      * The predefinition of version D_TypeInfo can now by controlled by
!        the option -frtti.
!      * The -fdebug= and -fversion= compiler switches no longer accept an
!        integer argument.
! 
!   [85]Fortran
  
       * Finalization is now fully supported.
  
!   [86]Go
  
       * GCC 13, like GCC 12, provides a complete implementation of the Go
         1.18 user packages.
       * Although Go 1.18 includes support for generic programming, that
         support is not yet available in GCC.
  
!   [87]Modula-2
  
       * Support for the language Modula-2 has been added. This includes
         support for the ISO/IEC 10514-1, PIM2, PIM3, PIM4 dialects together
         with a complete set of ISO/IEC 10514-1 and PIM libraries.
       * The <* noreturn *> attribute is supported with the -Wreturn-type
!        [88]option.
  
! [89]New Targets and Target Specific Improvements
  
!   [90]AArch64
  
       * The AArch64 target now supports Decimal Floating-point in the BID
         format through the libbid library.
*************** New Targets and Target Specific Improvem
*** 1637,1650 ****
       * The FEAT_LSE2 feature is now supported through libatomic and
         provides lockless 16-byte atomics on systems that implement it.
  
!   AMD Radeon (GCN)
  
!      * Support for the Instinct MI200 series devices ([75] gfx90a) has
         been added.
       * SIMD vectorization support has been improved; this and
!        stack-handling changes [76]require newlib 4.3.0 (or newer).
  
!   arm
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
--- 2652,2665 ----
       * The FEAT_LSE2 feature is now supported through libatomic and
         provides lockless 16-byte atomics on systems that implement it.
  
!   [91]AMD Radeon (GCN)
  
!      * Support for the Instinct MI200 series devices ([92] gfx90a) has
         been added.
       * SIMD vectorization support has been improved; this and
!        stack-handling changes [93]require newlib 4.3.0 (or newer).
  
!   [94]arm
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
*************** New Targets and Target Specific Improvem
*** 1656,1662 ****
         jump-oriented attacks. It can be enabled through the
         -mbranch-protection= option.
  
!   AVR
  
       * Support for the following devices has been added in v13.3:
            + ATtiny102, ATtiny104, ATtiny424, ATtiny426, ATtiny427,
--- 2671,2677 ----
         jump-oriented attacks. It can be enabled through the
         -mbranch-protection= option.
  
!   [95]AVR
  
       * Support for the following devices has been added in v13.3:
            + ATtiny102, ATtiny104, ATtiny424, ATtiny426, ATtiny427,
*************** New Targets and Target Specific Improvem
*** 1667,1674 ****
              AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28,
              AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48, ATA5787, ATA5835,
              ATA5700M322.
  
!   IA-32/x86-64
  
       * For both C and C++ the __bf16 type is supported on x86 systems with
         SSE2 and above enabled.
--- 2682,2692 ----
              AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28,
              AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48, ATA5787, ATA5835,
              ATA5700M322.
+      * Support for the following devices has been added in v13.4:
+           + AVR32SD20, AVR32SD28, AVR32SD32, AVR64SD28, AVR64SD32,
+             AVR64SD48.
  
!   [96]IA-32/x86-64
  
       * For both C and C++ the __bf16 type is supported on x86 systems with
         SSE2 and above enabled.
*************** New Targets and Target Specific Improvem
*** 1717,1723 ****
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
  
!   LoongArch
  
       * New features
            + The new command-line option -mexplicit-relocs decides whether
--- 2735,2741 ----
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
  
!   [97]LoongArch
  
       * New features
            + The new command-line option -mexplicit-relocs decides whether
*************** New Targets and Target Specific Improvem
*** 1727,1733 ****
              time.
            + The new command-line option -mdirect-extern-access can be used
              to prevent accessing external symbols through GOT.
!           + The new variable attribute [77]model has been added.
       * Built-in functions
            + The rint and copysign mathematical builtins (and their float
              variants) are now implemented as inline LoongArch intrinsics.
--- 2745,2751 ----
              time.
            + The new command-line option -mdirect-extern-access can be used
              to prevent accessing external symbols through GOT.
!           + The new variable attribute [98]model has been added.
       * Built-in functions
            + The rint and copysign mathematical builtins (and their float
              variants) are now implemented as inline LoongArch intrinsics.
*************** New Targets and Target Specific Improvem
*** 1743,1760 ****
            + Address sanitizers other than HWASan and TSan are now
              supported on LoongArch.
  
!   NVPTX
  
!      * The default value for the [78]-march option can be now changed when
!        [79]building GCC using the [80]--with-arch= configure option. GCC's
!        target libraries are then build both with sm_30 and the specified
!        target architecture. If not specified, GCC defaults to sm_30.
  
!   RISC-V
  
!      * Support for vector intrinsics as specified in [81]version 0.11 of
         the RISC-V vector intrinsic specification, thanks Ju-Zhe Zhong from
!        [82]RiVAI for contributing most of implementation.
       * Support for the following standard extensions has been added:
            + Zawrs
            + Zbkb
--- 2761,2779 ----
            + Address sanitizers other than HWASan and TSan are now
              supported on LoongArch.
  
!   [99]NVPTX
  
!      * The default value for the [100]-march option can be now changed
!        when [101]building GCC using the [102]--with-arch= configure
!        option. GCC's target libraries are then build both with sm_30 and
!        the specified target architecture. If not specified, GCC defaults
!        to sm_30.
  
!   [103]RISC-V
  
!      * Support for vector intrinsics as specified in [104]version 0.11 of
         the RISC-V vector intrinsic specification, thanks Ju-Zhe Zhong from
!        [105]RiVAI for contributing most of implementation.
       * Support for the following standard extensions has been added:
            + Zawrs
            + Zbkb
*************** New Targets and Target Specific Improvem
*** 1795,1803 ****
         best-fit multi-lib candidate instead of requiring all possible
         reuse rules to be listed at build time.
  
! Operating Systems
  
!   Windows
  
       * The GNU threads library used by the win32 thread model has been
         reimplemented using direct Win32 API calls, except for the
--- 2814,2822 ----
         best-fit multi-lib candidate instead of requiring all possible
         reuse rules to be listed at build time.
  
! [106]Operating Systems
  
!   [107]Windows
  
       * The GNU threads library used by the win32 thread model has been
         reimplemented using direct Win32 API calls, except for the
*************** Operating Systems
*** 1808,1878 ****
         recommended to use a recent version of MinGW-W64 in conjunction
         with the win32 thread model.
  
! Improvements to Static Analyzer
  
       * The analyzer has gained 20 new warnings:
!           + [83]-Wanalyzer-allocation-size
!           + [84]-Wanalyzer-deref-before-check
!           + [85]-Wanalyzer-exposure-through-uninit-copy
            + Seven new warnings relating to misuse of file descriptors:
!                o [86]-Wanalyzer-fd-access-mode-mismatch
!                o [87]-Wanalyzer-fd-double-close
!                o [88]-Wanalyzer-fd-leak
!                o [89]-Wanalyzer-fd-phase-mismatch (e.g. calling accept on
                   a socket before calling listen on it)
!                o [90]-Wanalyzer-fd-type-mismatch (e.g. using a stream
                   socket operation on a datagram socket)
!                o [91]-Wanalyzer-fd-use-after-close
!                o [92]-Wanalyzer-fd-use-without-check
              along with special-casing handling of the behavior of open,
              close, creat, dup, dup2, dup3, pipe, pipe2, read, and write.
!           + [93]-Wanalyzer-imprecise-fp-arithmetic
!           + [94]-Wanalyzer-infinite-recursion
!           + [95]-Wanalyzer-jump-through-null
!           + [96]-Wanalyzer-out-of-bounds
!           + [97]-Wanalyzer-putenv-of-auto-var
!           + [98]-Wanalyzer-tainted-assertion
            + Four new warnings for misuses of <stdarg.h>:
!                o [99]-Wanalyzer-va-list-leak for complaining about missing
!                  va_end after a va_start or va_copy
!                o [100]-Wanalyzer-va-list-use-after-va-end for complaining
                   about va_arg or va_copy used on a va_list that's had
                   va_end called on it
!                o [101]-Wanalyzer-va-arg-type-mismatch for type-checking of
                   va_arg usage in interprocedural execution paths against
                   the types of the parameters that were actually passed to
                   the variadic call
!                o [102]-Wanalyzer-va-list-exhausted for complaining in
                   interprocedural execution paths if va_arg is used too
                   many times on a va_list
         along with numerous other improvements.
  
! Improvements for plugin authors
  
!      * GCC diagnostics can now be [103]associated with rules such as from
         coding standards documents, or specifications. Such rules have a
         code name and can have a URL, which GCC can print in text form or
!        capture in its [104]SARIF output when emitting diagnostics.
  
  Other significant improvements
  
! GCC 13.1
  
!    This is the [105]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 13.2
  
!    This is the [106]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 13.3
  
!    This is the [107]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 2827,2897 ----
         recommended to use a recent version of MinGW-W64 in conjunction
         with the win32 thread model.
  
! [108]Improvements to Static Analyzer
  
       * The analyzer has gained 20 new warnings:
!           + [109]-Wanalyzer-allocation-size
!           + [110]-Wanalyzer-deref-before-check
!           + [111]-Wanalyzer-exposure-through-uninit-copy
            + Seven new warnings relating to misuse of file descriptors:
!                o [112]-Wanalyzer-fd-access-mode-mismatch
!                o [113]-Wanalyzer-fd-double-close
!                o [114]-Wanalyzer-fd-leak
!                o [115]-Wanalyzer-fd-phase-mismatch (e.g. calling accept on
                   a socket before calling listen on it)
!                o [116]-Wanalyzer-fd-type-mismatch (e.g. using a stream
                   socket operation on a datagram socket)
!                o [117]-Wanalyzer-fd-use-after-close
!                o [118]-Wanalyzer-fd-use-without-check
              along with special-casing handling of the behavior of open,
              close, creat, dup, dup2, dup3, pipe, pipe2, read, and write.
!           + [119]-Wanalyzer-imprecise-fp-arithmetic
!           + [120]-Wanalyzer-infinite-recursion
!           + [121]-Wanalyzer-jump-through-null
!           + [122]-Wanalyzer-out-of-bounds
!           + [123]-Wanalyzer-putenv-of-auto-var
!           + [124]-Wanalyzer-tainted-assertion
            + Four new warnings for misuses of <stdarg.h>:
!                o [125]-Wanalyzer-va-list-leak for complaining about
!                  missing va_end after a va_start or va_copy
!                o [126]-Wanalyzer-va-list-use-after-va-end for complaining
                   about va_arg or va_copy used on a va_list that's had
                   va_end called on it
!                o [127]-Wanalyzer-va-arg-type-mismatch for type-checking of
                   va_arg usage in interprocedural execution paths against
                   the types of the parameters that were actually passed to
                   the variadic call
!                o [128]-Wanalyzer-va-list-exhausted for complaining in
                   interprocedural execution paths if va_arg is used too
                   many times on a va_list
         along with numerous other improvements.
  
! [129]Improvements for plugin authors
  
!      * GCC diagnostics can now be [130]associated with rules such as from
         coding standards documents, or specifications. Such rules have a
         code name and can have a URL, which GCC can print in text form or
!        capture in its [131]SARIF output when emitting diagnostics.
  
  Other significant improvements
  
! [132]GCC 13.1
  
!    This is the [133]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [134]GCC 13.2
  
!    This is the [135]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [136]GCC 13.3
  
!    This is the [137]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 13.3
*** 1889,1906 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [108]GCC manuals. If that fails, the
!     [109]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [110]gcc@gcc.gnu.org. All of [111]our lists have public
      archives.
  
!    Copyright (C) [112]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [113]maintained by the GCC team. Last modified
!    2024-05-25.
  
  References
  
--- 2908,2925 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [138]GCC manuals. If that fails, the
!     [139]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [140]gcc@gcc.gnu.org. All of [141]our lists have public
      archives.
  
!    Copyright (C) [142]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [143]maintained by the GCC team. Last modified
!    2025-04-16.
  
  References
  
*************** References
*** 1912,2022 ****
     6. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
     7. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/ARM-iWMMXt-Built-in-Functions.html
     8. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic
!    9. https://gcc.gnu.org/projects/gomp/
!   10. http://memkind.github.io/memkind/
!   11. https://sarifweb.azurewebsites.net/
!   12. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   13. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   14. https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html
!   15. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wxor-used-as-pow
!   16. https://gcc.gnu.org/PR90885
!   17. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute
!   18. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute
!   19. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute
!   20. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   21. https://wg21.link/p1774r8
!   22. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Statement-Attributes.html#index-assume-statement-attribute
!   23. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
!   24. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3042.htm
!   25. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2963.htm
!   26. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2975.pdf
!   27. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm
!   28. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3018.htm
!   29. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3038.htm
!   30. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf
!   31. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wformat
!   32. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf
!   33. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wenum-int-mismatch
!   34. https://gcc.gnu.org/PR105131
!   35. https://wg21.link/p2324
!   36. https://gcc.gnu.org/PR103539
!   37. https://wg21.link/p2255
!   38. https://gcc.gnu.org/PR104477
!   39. https://wg21.link/p2327
!   40. https://wg21.link/p2437
!   41. https://gcc.gnu.org/PR106646
!   42. https://wg21.link/p2290
!   43. https://gcc.gnu.org/PR106645
!   44. https://wg21.link/p2071
!   45. https://gcc.gnu.org/PR106648
!   46. https://wg21.link/p2513
!   47. https://gcc.gnu.org/PR106656
!   48. https://wg21.link/p1169r4
!   49. https://gcc.gnu.org/PR106651
!   50. https://wg21.link/p2266r3
!   51. https://gcc.gnu.org/PR101165
!   52. https://wg21.link/p2468r2
!   53. https://gcc.gnu.org/PR106644
!   54. https://wg21.link/p2362r3
!   55. https://gcc.gnu.org/PR106647
!   56. https://wg21.link/p2448r2
!   57. https://gcc.gnu.org/PR106649
!   58. https://wg21.link/p1467r9
!   59. https://gcc.gnu.org/PR106652
!   60. https://wg21.link/p1774r8
!   61. https://gcc.gnu.org/PR106654
!   62. https://wg21.link/p2295r6
!   63. https://gcc.gnu.org/PR106655
!   64. https://wg21.link/p2589r1
!   65. https://gcc.gnu.org/PR107684
!   66. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wself-move
!   67. https://gcc.gnu.org/PR81159
!   68. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   69. https://gcc.gnu.org/PR106393
!   70. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   71. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   72. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Link-Options.html#index-nostdlib_002b_002b
!   73. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html
!   74. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gm2/Compiler-options.html
!   75. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/AMD-GCN-Options.html
!   76. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!   77. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/LoongArch-Variable-Attributes.html#LoongArch-Variable-Attributes
!   78. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Nvidia-PTX-Options.html
!   79. https://gcc.gnu.org/install/
!   80. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!   81. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v0.11.x
!   82. https://rivai-ic.com.cn/
!   83. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!   84. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-deref-before-check
!   85. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-uninit-copy
!   86. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-access-mode-mismatch
!   87. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-double-close
!   88. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-leak
!   89. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-phase-mismatch
!   90. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-type-mismatch
!   91. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-after-close
!   92. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-without-check
!   93. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-imprecise-fp-arithmetic
!   94. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-recursion
!   95. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-jump-through-null
!   96. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!   97. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-putenv-of-auto-var
!   98. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!   99. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-leak
!  100. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-use-after-va-end
!  101. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-arg-type-mismatch
!  102. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-exhausted
!  103. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0b14f590e3e9d95b8211b77d992589d5ab4c25f0
!  104. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  105. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.0
!  106. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.2
!  107. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.3
!  108. https://gcc.gnu.org/onlinedocs/
!  109. mailto:gcc-help@gcc.gnu.org
!  110. mailto:gcc@gcc.gnu.org
!  111. https://gcc.gnu.org/lists.html
!  112. https://www.fsf.org/
!  113. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/index.html
                               GCC 12 Release Series
--- 2931,3071 ----
     6. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
     7. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/ARM-iWMMXt-Built-in-Functions.html
     8. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic
!    9. https://gcc.gnu.org/gcc-13/changes.html#general
!   10. https://gcc.gnu.org/projects/gomp/
!   11. http://memkind.github.io/memkind/
!   12. https://sarifweb.azurewebsites.net/
!   13. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   14. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   15. https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html
!   16. https://gcc.gnu.org/gcc-13/changes.html#languages
!   17. https://gcc.gnu.org/gcc-13/changes.html#ada
!   18. https://gcc.gnu.org/gcc-13/changes.html#c-family
!   19. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wxor-used-as-pow
!   20. https://gcc.gnu.org/PR90885
!   21. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute
!   22. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute
!   23. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute
!   24. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   25. https://wg21.link/p1774r8
!   26. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Statement-Attributes.html#index-assume-statement-attribute
!   27. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
!   28. https://gcc.gnu.org/gcc-13/changes.html#c
!   29. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3042.htm
!   30. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2963.htm
!   31. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2975.pdf
!   32. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm
!   33. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3018.htm
!   34. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3038.htm
!   35. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf
!   36. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wformat
!   37. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf
!   38. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wenum-int-mismatch
!   39. https://gcc.gnu.org/PR105131
!   40. https://gcc.gnu.org/gcc-13/changes.html#cxx
!   41. https://wg21.link/p2324
!   42. https://gcc.gnu.org/PR103539
!   43. https://wg21.link/p2255
!   44. https://gcc.gnu.org/PR104477
!   45. https://wg21.link/p2327
!   46. https://wg21.link/p2437
!   47. https://gcc.gnu.org/PR106646
!   48. https://wg21.link/p2290
!   49. https://gcc.gnu.org/PR106645
!   50. https://wg21.link/p2071
!   51. https://gcc.gnu.org/PR106648
!   52. https://wg21.link/p2513
!   53. https://gcc.gnu.org/PR106656
!   54. https://wg21.link/p1169r4
!   55. https://gcc.gnu.org/PR106651
!   56. https://wg21.link/p2266r3
!   57. https://gcc.gnu.org/PR101165
!   58. https://wg21.link/p2468r2
!   59. https://gcc.gnu.org/PR106644
!   60. https://wg21.link/p2362r3
!   61. https://gcc.gnu.org/PR106647
!   62. https://wg21.link/p2448r2
!   63. https://gcc.gnu.org/PR106649
!   64. https://wg21.link/p1467r9
!   65. https://gcc.gnu.org/PR106652
!   66. https://wg21.link/p1774r8
!   67. https://gcc.gnu.org/PR106654
!   68. https://wg21.link/p2295r6
!   69. https://gcc.gnu.org/PR106655
!   70. https://wg21.link/p2589r1
!   71. https://gcc.gnu.org/PR107684
!   72. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wself-move
!   73. https://gcc.gnu.org/PR81159
!   74. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   75. https://gcc.gnu.org/PR106393
!   76. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   77. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   78. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Link-Options.html#index-nostdlib_002b_002b
!   79. https://gcc.gnu.org/gcc-13/changes.html#libstdcxx
!   80. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html
!   81. https://gcc.gnu.org/gcc-13/changes.html#d
!   82. https://dlang.org/changelog/2.103.1.html
!   83. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gdc/Warnings.html#index-Wno-builtin-declaration-mismatch
!   84. https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gdc/Warnings.html#index-Wmismatched-special-enum
!   85. https://gcc.gnu.org/gcc-13/changes.html#fortran
!   86. https://gcc.gnu.org/gcc-13/changes.html#go
!   87. https://gcc.gnu.org/gcc-13/changes.html#modula2
!   88. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gm2/Compiler-options.html
!   89. https://gcc.gnu.org/gcc-13/changes.html#targets
!   90. https://gcc.gnu.org/gcc-13/changes.html#aarch64
!   91. https://gcc.gnu.org/gcc-13/changes.html#amdgcn
!   92. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/AMD-GCN-Options.html
!   93. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!   94. https://gcc.gnu.org/gcc-13/changes.html#arm
!   95. https://gcc.gnu.org/gcc-13/changes.html#avr
!   96. https://gcc.gnu.org/gcc-13/changes.html#x86
!   97. https://gcc.gnu.org/gcc-13/changes.html#loongarch
!   98. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/LoongArch-Variable-Attributes.html#LoongArch-Variable-Attributes
!   99. https://gcc.gnu.org/gcc-13/changes.html#nvptx
!  100. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Nvidia-PTX-Options.html
!  101. https://gcc.gnu.org/install/
!  102. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!  103. https://gcc.gnu.org/gcc-13/changes.html#riscv
!  104. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v0.11.x
!  105. https://rivai-ic.com.cn/
!  106. https://gcc.gnu.org/gcc-13/changes.html#os
!  107. https://gcc.gnu.org/gcc-13/changes.html#windows
!  108. https://gcc.gnu.org/gcc-13/changes.html#analyzer
!  109. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!  110. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-deref-before-check
!  111. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-uninit-copy
!  112. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-access-mode-mismatch
!  113. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-double-close
!  114. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-leak
!  115. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-phase-mismatch
!  116. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-type-mismatch
!  117. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-after-close
!  118. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-without-check
!  119. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-imprecise-fp-arithmetic
!  120. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-recursion
!  121. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-jump-through-null
!  122. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!  123. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-putenv-of-auto-var
!  124. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!  125. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-leak
!  126. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-use-after-va-end
!  127. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-arg-type-mismatch
!  128. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-exhausted
!  129. https://gcc.gnu.org/gcc-13/changes.html#plugins
!  130. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0b14f590e3e9d95b8211b77d992589d5ab4c25f0
!  131. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  132. https://gcc.gnu.org/gcc-13/changes.html#13.1
!  133. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.0
!  134. https://gcc.gnu.org/gcc-13/changes.html#13.2
!  135. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.2
!  136. https://gcc.gnu.org/gcc-13/changes.html#13.3
!  137. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.3
!  138. https://gcc.gnu.org/onlinedocs/
!  139. mailto:gcc-help@gcc.gnu.org
!  140. mailto:gcc@gcc.gnu.org
!  141. https://gcc.gnu.org/lists.html
!  142. https://www.fsf.org/
!  143. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/index.html
                               GCC 12 Release Series
*************** Caveats
*** 2141,2153 ****
         supports the bitmap, mt, and pool arguments. Those configurations
         had been broken for some time.
       * D: Building and bootstrapping GDC, the D compiler, now requires a
!        working GDC compiler (GCC version 9.1 or later) and D runtime
!        library, libphobos, as the D front end is written in D. On some
!        targets, libphobos isn't enabled by default, but compiles and works
!        if --enable-libphobos is used. Other targets may require a more
!        recent minimum version of GCC to bootstrap. Specifics are
!        documented for affected targets in the [6]manual for installing
!        GCC.
       * Fortran: OpenMP code using the omp_lib.h include file can no longer
         be compiled with -std=f95 but now requires at least -std=f2003.
         Alternatively, use the omp_lib module, which still supports
--- 3190,3201 ----
         supports the bitmap, mt, and pool arguments. Those configurations
         had been broken for some time.
       * D: Building and bootstrapping GDC, the D compiler, now requires a
!        working GDC (GCC version 9.1 or later) and D runtime library,
!        libphobos, as the D front end is written in D. On some targets,
!        libphobos isn't enabled by default, but compiles and works if
!        --enable-libphobos is used. Other targets may require a more recent
!        version of GCC to bootstrap. Specifics are documented for affected
!        targets in the [6]Installing GCC manual.
       * Fortran: OpenMP code using the omp_lib.h include file can no longer
         be compiled with -std=f95 but now requires at least -std=f2003.
         Alternatively, use the omp_lib module, which still supports
*************** Caveats
*** 2171,2191 ****
       * The optimization level -Ofast now implies
         -fno-semantic-interposition.
  
! General Improvements
  
       * Vectorization is enabled at -O2 which is now equivalent to what
         would have been -O2 -ftree-vectorize -fvect-cost-model=very-cheap
         in the past. Note that the default vectorizer cost model has been
         changed; it used to behave as if -fvect-cost-model=cheap had been
         specified.
!      * GCC now supports the [7]ShadowCallStack sanitizer, which can be
         enabled using the command-line option
!        [8]-fsanitize=shadow-call-stack. This sanitizer currently only
         works on AArch64 targets and it requires an environment in which
         all code has been compiled with -ffixed-r18. Its primary initial
         user is the Linux kernel.
  
! New Languages and Language specific improvements
  
       * OpenMP
            + OpenMP 5.0 support has been extended: The close map modifier
--- 3219,3239 ----
       * The optimization level -Ofast now implies
         -fno-semantic-interposition.
  
! [7]General Improvements
  
       * Vectorization is enabled at -O2 which is now equivalent to what
         would have been -O2 -ftree-vectorize -fvect-cost-model=very-cheap
         in the past. Note that the default vectorizer cost model has been
         changed; it used to behave as if -fvect-cost-model=cheap had been
         specified.
!      * GCC now supports the [8]ShadowCallStack sanitizer, which can be
         enabled using the command-line option
!        [9]-fsanitize=shadow-call-stack. This sanitizer currently only
         works on AArch64 targets and it requires an environment in which
         all code has been compiled with -ffixed-r18. Its primary initial
         user is the Linux kernel.
  
! [10]New Languages and Language specific improvements
  
       * OpenMP
            + OpenMP 5.0 support has been extended: The close map modifier
*************** New Languages and Language specific impr
*** 2210,2236 ****
              the memory-allocation routines added for Fortran and extended
              for C/C++ in OpenMP 5.1. In Fortran code, strictly structured
              blocks can be used.
!           + The [9]OpenMP Implementation Status can be found in the
              libgomp manual.
!      * Version 2.6 of the [10]OpenACC specification continues to be
         maintained and improved in the C, C++ and Fortran compilers. See
!        the [11]implementation status section on the OpenACC wiki page and
!        the [12]run-time library documentation for further information. In
         addition to general performance tuning and bug fixing, new features
         include:
!           + OpenACC worker parallelism for [13]AMD GPUs (already for a
!             long time supported for [14]Nvidia GPUs).
            + Data privatization/sharing at the OpenACC gang level.
            + Considerable improvements for the experimental OpenACC
!             'kernels' decomposition ([15]--param
              openacc-kernels=decompose).
!           + A new warning flag [16]-Wopenacc-parallelism to warn about
              potentially suboptimal choices related to OpenACC parallelism.
       * The offload target code generation for OpenMP and OpenACC can now
!        be better adjusted using the new [17]-foffload-options= flag and
!        the pre-existing but now documented [18]-foffload= flag.
  
!   Ada
  
       * Ada 2022
            + Added the -gnat2022 flag to indicate strict Ada 2022
--- 3258,3284 ----
              the memory-allocation routines added for Fortran and extended
              for C/C++ in OpenMP 5.1. In Fortran code, strictly structured
              blocks can be used.
!           + The [11]OpenMP Implementation Status can be found in the
              libgomp manual.
!      * Version 2.6 of the [12]OpenACC specification continues to be
         maintained and improved in the C, C++ and Fortran compilers. See
!        the [13]implementation status section on the OpenACC wiki page and
!        the [14]run-time library documentation for further information. In
         addition to general performance tuning and bug fixing, new features
         include:
!           + OpenACC worker parallelism for [15]AMD GPUs (already for a
!             long time supported for [16]Nvidia GPUs).
            + Data privatization/sharing at the OpenACC gang level.
            + Considerable improvements for the experimental OpenACC
!             'kernels' decomposition ([17]--param
              openacc-kernels=decompose).
!           + A new warning flag [18]-Wopenacc-parallelism to warn about
              potentially suboptimal choices related to OpenACC parallelism.
       * The offload target code generation for OpenMP and OpenACC can now
!        be better adjusted using the new [19]-foffload-options= flag and
!        the pre-existing but now documented [20]-foffload= flag.
  
!   [21]Ada
  
       * Ada 2022
            + Added the -gnat2022 flag to indicate strict Ada 2022
*************** function Multiply (S1, S2 : Sign) return
*** 2283,2291 ****
         improved. Memory pools have also seen some minor enhancements.
       * Improvements to embedded-RTOS targets such as RTEMS, VxWorks and
         QNX. Older targets were removed or cleaned.
!      * Added some [19]hardening features.
  
!   C family
  
       * Support for __builtin_shufflevector compatible with the clang
         language extension was added.
--- 3331,3339 ----
         improved. Memory pools have also seen some minor enhancements.
       * Improvements to embedded-RTOS targets such as RTEMS, VxWorks and
         QNX. Older targets were removed or cleaned.
!      * Added some [22]hardening features.
  
!   [23]C family
  
       * Support for __builtin_shufflevector compatible with the clang
         language extension was added.
*************** function Multiply (S1, S2 : Sign) return
*** 2295,2314 ****
       * Support for __builtin_dynamic_object_size compatible with the clang
         language extension was added.
       * New warnings:
!           + [20]-Wbidi-chars warns about potentially misleading UTF-8
              bidirectional control characters. The default is
!             -Wbidi-chars=unpaired ([21]PR103026)
!           + [22]-Warray-compare warns about comparisons between two
!             operands of array type ([23]PR97573)
       * Enhancements to existing warnings:
!           + [24]-Wattributes has been extended so that it's possible to
              use -Wno-attributes=ns::attr or -Wno-attributes=ns:: to
              suppress warnings about unknown scoped attributes (in C++11
              and C2X). Similarly, #pragma GCC diagnostic ignored_attributes
              "vendor::attr" can be used to achieve the same effect
!             ([25]PR101940)
  
!   C
  
       * Some new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
--- 3343,3362 ----
       * Support for __builtin_dynamic_object_size compatible with the clang
         language extension was added.
       * New warnings:
!           + [24]-Wbidi-chars warns about potentially misleading UTF-8
              bidirectional control characters. The default is
!             -Wbidi-chars=unpaired ([25]PR103026)
!           + [26]-Warray-compare warns about comparisons between two
!             operands of array type ([27]PR97573)
       * Enhancements to existing warnings:
!           + [28]-Wattributes has been extended so that it's possible to
              use -Wno-attributes=ns::attr or -Wno-attributes=ns:: to
              suppress warnings about unknown scoped attributes (in C++11
              and C2X). Similarly, #pragma GCC diagnostic ignored_attributes
              "vendor::attr" can be used to achieve the same effect
!             ([29]PR101940)
  
!   [30]C
  
       * Some new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
*************** function Multiply (S1, S2 : Sign) return
*** 2320,2360 ****
            + Digit separators (as in C++) are supported for C2X.
            + The #elifdef and #elifndef preprocessing directives are now
              supported.
!           + The printf and scanf format checking with [26]-Wformat now
              supports the %b format specified by C2X for binary integers,
              and the %B format recommended by C2X for printf.
  
!   C++
  
       * Several C++23 features have been implemented:
!           + [27]P1938R3, if consteval ([28]PR100974)
!           + [29]P0849R8, auto(x): decay-copy in the language
!             ([30]PR103049)
!           + [31]P2242R3, Non-literal variables (and labels and gotos) in
!             constexpr functions ([32]PR102612)
!           + [33]P2334R1, Support for preprocessing directives elifdef and
!             elifndef ([34]PR102616)
!           + [35]P2360R0, Extend init-statement to allow alias-declaration
!             ([36]PR102617)
!           + [37]P2128R6, Multidimensional subscript operator
!           + [38]DR 2397, auto specifier for pointers and references to
!             arrays ([39]PR100975)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [40]DR 960, Covariant functions and lvalue/rvalue references
!           + [41]DR 1227, Mixing immediate and non-immediate contexts in
              deduction failure
!           + [42]DR 1315, Restrictions on non-type template arguments in
              partial specializations
!           + [43]DR 2082, Referring to parameters in unevaluated operands
              of default arguments
!           + [44]DR 2351, void{}
!           + [45]DR 2374, Overly permissive specification of enum
              direct-list-initialization
!           + [46]DR 2397, auto specifier for pointers and references to
              arrays
!           + [47]DR 2446, Questionable type-dependency of concept-ids
       * New command-line option -fimplicit-constexpr can be used to make
!        inline functions implicitly constexpr ([48]git)
       * New command-line option -ffold-simple-inlines can be used to fold
         calls to certain trivial inline functions (currently std::move,
         std::forward, std::addressof and std::as_const). In contrast to
--- 3368,3408 ----
            + Digit separators (as in C++) are supported for C2X.
            + The #elifdef and #elifndef preprocessing directives are now
              supported.
!           + The printf and scanf format checking with [31]-Wformat now
              supports the %b format specified by C2X for binary integers,
              and the %B format recommended by C2X for printf.
  
!   [32]C++
  
       * Several C++23 features have been implemented:
!           + [33]P1938R3, if consteval ([34]PR100974)
!           + [35]P0849R8, auto(x): decay-copy in the language
!             ([36]PR103049)
!           + [37]P2242R3, Non-literal variables (and labels and gotos) in
!             constexpr functions ([38]PR102612)
!           + [39]P2334R1, Support for preprocessing directives elifdef and
!             elifndef ([40]PR102616)
!           + [41]P2360R0, Extend init-statement to allow alias-declaration
!             ([42]PR102617)
!           + [43]P2128R6, Multidimensional subscript operator
!           + [44]DR 2397, auto specifier for pointers and references to
!             arrays ([45]PR100975)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [46]DR 960, Covariant functions and lvalue/rvalue references
!           + [47]DR 1227, Mixing immediate and non-immediate contexts in
              deduction failure
!           + [48]DR 1315, Restrictions on non-type template arguments in
              partial specializations
!           + [49]DR 2082, Referring to parameters in unevaluated operands
              of default arguments
!           + [50]DR 2351, void{}
!           + [51]DR 2374, Overly permissive specification of enum
              direct-list-initialization
!           + [52]DR 2397, auto specifier for pointers and references to
              arrays
!           + [53]DR 2446, Questionable type-dependency of concept-ids
       * New command-line option -fimplicit-constexpr can be used to make
!        inline functions implicitly constexpr ([54]git)
       * New command-line option -ffold-simple-inlines can be used to fold
         calls to certain trivial inline functions (currently std::move,
         std::forward, std::addressof and std::as_const). In contrast to
*************** function Multiply (S1, S2 : Sign) return
*** 2364,2423 ****
         the fundamental operations from which they're defined (e.g.
         std::move versus static_cast). This flag is enabled by default when
         -fno-inline is not active.
!      * Deduction guides can be declared at class scope ([49]PR79501)
!      * [50]-Wuninitialized warns about using uninitialized variables in
!        member initializer lists ([51]PR19808)
!      * [52]-Wint-in-bool-context is now disabled when instantiating a
!        template ([53]git)
       * Stricter checking of attributes on friend declarations: if a friend
         declaration has an attribute, that declaration must be a
         definition. Moreover, a C++11 attribute cannot appear in the middle
!        of the decl-specifier-seq. ([54]PR99032)
       * New warning options for C++ language mismatches:
         -Wc++11-extensions, -Wc++14-extensions, -Wc++17-extensions,
         -Wc++20-extensions, and -Wc++23-extensions. They are enabled by
         default and can be used to control existing pedwarns about
         occurrences of new C++ constructs in code using an old C++ standard
         dialect.
!      * New warning [55]-Wmissing-requires warns about missing requires
!        ([56]git)
       * The existing std::is_constant_evaluated in if warning was extended
!        to warn in more cases ([57]PR100995)
!      * [58]-Waddress has been enhanced so that it now warns about, for
         instance, comparing the address of a nonstatic member function to
!        null ([59]PR102103)
       * Errors about narrowing are no longer hidden if they occur in system
         headers
!      * Ordered comparison of null pointers is now rejected ([60]PR99701)
!      * Anonymous structs with bases are now rejected ([61]git)
       * The compiler rejects taking the address of an immediate member
!        function ([62]PR102753)
       * The compiler has support for C++20
         __cpp_lib_is_pointer_interconvertible and
         __cpp_lib_is_layout_compatible to help the C++ library implement
!        [63]P0466, Layout-compatibility and Pointer-interconvertibility
!        Traits ([64]PR101539)
       * Memory usage of constraint subsumption has been improved
!        ([65]PR100828)
       * constinit thread_local variables are optimized better
!        ([66]PR101786)
       * Support for C++17 std::hardware_destructive_interference_size was
!        added, along with the [67]-Winterference-size warning ([68]git)
!      * Many bugs in the CTAD handling have been fixed ([69]PR101344,
!        [70]PR101883, [71]PR89062, [72]PR101233, [73]PR88252, [74]PR86439,
!        [75]PR98832, [76]PR102933 ...)
       * Two-stage name lookup for dependent operator expressions has been
!        corrected ([77]PR51577)
       * Several issues with constrained variable templates have been fixed
!        ([78]PR98486)
       * The compiler performs less instantiating when doing speculative
!        constant evaluation ([79]git)
       * Various diagnostic improvements; e.g., a more precise caret
         location for pointer-to-member expressions
       * The new -fconstexpr-fp-except flag allows IEC559 floating point
         exceptions in constant-expressions.
  
!     Runtime Library (libstdc++)
  
       * Improved experimental C++20 support, including:
            + std::vector, std::basic_string, std::optional, and
--- 3412,3471 ----
         the fundamental operations from which they're defined (e.g.
         std::move versus static_cast). This flag is enabled by default when
         -fno-inline is not active.
!      * Deduction guides can be declared at class scope ([55]PR79501)
!      * [56]-Wuninitialized warns about using uninitialized variables in
!        member initializer lists ([57]PR19808)
!      * [58]-Wint-in-bool-context is now disabled when instantiating a
!        template ([59]git)
       * Stricter checking of attributes on friend declarations: if a friend
         declaration has an attribute, that declaration must be a
         definition. Moreover, a C++11 attribute cannot appear in the middle
!        of the decl-specifier-seq. ([60]PR99032)
       * New warning options for C++ language mismatches:
         -Wc++11-extensions, -Wc++14-extensions, -Wc++17-extensions,
         -Wc++20-extensions, and -Wc++23-extensions. They are enabled by
         default and can be used to control existing pedwarns about
         occurrences of new C++ constructs in code using an old C++ standard
         dialect.
!      * New warning [61]-Wmissing-requires warns about missing requires
!        ([62]git)
       * The existing std::is_constant_evaluated in if warning was extended
!        to warn in more cases ([63]PR100995)
!      * [64]-Waddress has been enhanced so that it now warns about, for
         instance, comparing the address of a nonstatic member function to
!        null ([65]PR102103)
       * Errors about narrowing are no longer hidden if they occur in system
         headers
!      * Ordered comparison of null pointers is now rejected ([66]PR99701)
!      * Anonymous structs with bases are now rejected ([67]git)
       * The compiler rejects taking the address of an immediate member
!        function ([68]PR102753)
       * The compiler has support for C++20
         __cpp_lib_is_pointer_interconvertible and
         __cpp_lib_is_layout_compatible to help the C++ library implement
!        [69]P0466, Layout-compatibility and Pointer-interconvertibility
!        Traits ([70]PR101539)
       * Memory usage of constraint subsumption has been improved
!        ([71]PR100828)
       * constinit thread_local variables are optimized better
!        ([72]PR101786)
       * Support for C++17 std::hardware_destructive_interference_size was
!        added, along with the [73]-Winterference-size warning ([74]git)
!      * Many bugs in the CTAD handling have been fixed ([75]PR101344,
!        [76]PR101883, [77]PR89062, [78]PR101233, [79]PR88252, [80]PR86439,
!        [81]PR98832, [82]PR102933 ...)
       * Two-stage name lookup for dependent operator expressions has been
!        corrected ([83]PR51577)
       * Several issues with constrained variable templates have been fixed
!        ([84]PR98486)
       * The compiler performs less instantiating when doing speculative
!        constant evaluation ([85]git)
       * Various diagnostic improvements; e.g., a more precise caret
         location for pointer-to-member expressions
       * The new -fconstexpr-fp-except flag allows IEC559 floating point
         exceptions in constant-expressions.
  
!     [86]Runtime Library (libstdc++)
  
       * Improved experimental C++20 support, including:
            + std::vector, std::basic_string, std::optional, and
*************** function Multiply (S1, S2 : Sign) return
*** 2438,2457 ****
            + std::invoke_r
            + constexpr std::type_info::operator==
  
!   D
  
       * New features:
            + Support for the D programming language has been updated to
              version 2.100.1 of the language and run-time library. Full
              changelog for this release and previous releases can be found
!             on the [80]dlang.org website.
            + On supported targets, the __traits(compiles) expression can
              now be used to determine whether a target-specific built-in is
!             available without error during CTFE ([81]PR101127).
            + Functions annotated with pragma(inline, true) are now compiled
!             into every module where they are used from ([82]PR106563).
            + Partial support for directly importing C99 sources into a D
!             compilation ([83]ImportC) has been added to the language. A
              notable missing feature is support for preprocessing C
              imports, which can be worked around by preprocessing all C
              sources used for importing ahead of time.
--- 3486,3505 ----
            + std::invoke_r
            + constexpr std::type_info::operator==
  
!   [87]D
  
       * New features:
            + Support for the D programming language has been updated to
              version 2.100.1 of the language and run-time library. Full
              changelog for this release and previous releases can be found
!             on the [88]dlang.org website.
            + On supported targets, the __traits(compiles) expression can
              now be used to determine whether a target-specific built-in is
!             available without error during CTFE ([89]PR101127).
            + Functions annotated with pragma(inline, true) are now compiled
!             into every module where they are used from ([90]PR106563).
            + Partial support for directly importing C99 sources into a D
!             compilation ([91]ImportC) has been added to the language. A
              notable missing feature is support for preprocessing C
              imports, which can be worked around by preprocessing all C
              sources used for importing ahead of time.
*************** function Multiply (S1, S2 : Sign) return
*** 2482,2488 ****
              switches have been renamed to -fpreview=dip25 and
              -fpreview=dip1000.
  
!   Fortran
  
       * WG5/N1942, "TS 29113 Further Interoperability of Fortran with C",
         is now fully supported. In addition to implementing previously
--- 3530,3536 ----
              switches have been renamed to -fpreview=dip25 and
              -fpreview=dip1000.
  
!   [92]Fortran
  
       * WG5/N1942, "TS 29113 Further Interoperability of Fortran with C",
         is now fully supported. In addition to implementing previously
*************** function Multiply (S1, S2 : Sign) return
*** 2501,2544 ****
         -fconvert option, the CONVERT specifier of the OPEN statement and
         the GFORTRAN_CONVERT_UNIT environment variable.
  
!   Go
  
       * GCC 12 provides a complete implementation of the Go 1.18 user
         packages.
       * Although Go 1.18 includes support for generic programming, that
         support is not yet available in GCC.
  
! libgccjit
  
       * The libgccjit API gained 30 new entry points:
            + 17 new "reflection" entry points for querying functions and
!             types ([84]LIBGCCJIT_ABI_16)
!           + [85]gcc_jit_lvalue_set_tls_model for supporting thread-local
!             variables ([86]LIBGCCJIT_ABI_17)
!           + [87]gcc_jit_lvalue_set_link_section for setting the link
              section of global variables, analogous to
!             [88]__attribute__((section(".section")))
!             ([89]LIBGCCJIT_ABI_18)
            + 4 new entry points for initializing global variables and
!             creating constructors for rvalues ([90]LIBGCCJIT_ABI_19)
            + Support for sized integer types, including 128-bit integers
!             and helper functions for such types ([91]LIBGCCJIT_ABI_20)
!           + [92]gcc_jit_context_new_bitcast for reinterpreting the bits of
!             an rvalue as a different type ([93]LIBGCCJIT_ABI_21)
!           + [94]gcc_jit_lvalue_set_register_name for setting a specific
!             register for a variable ([95]LIBGCCJIT_ABI_22)
!           + [96]gcc_jit_context_set_bool_print_errors_to_stderr
!             ([97]LIBGCCJIT_ABI_23)
            + 2 new entry points for setting the alignment of a variable
!             ([98]LIBGCCJIT_ABI_24)
       * libgccjit has gained support for the use of various atomic builtins
!        ([99]PR96066, [100]PR96067)
!      * [101]gcc_jit_context_new_cast is now able to handle truncation and
!        extension between different integer types ([102]PR95498)
  
! New Targets and Target Specific Improvements
  
!   AArch64 & arm
  
       * Newer revisions of the Arm Architecture are supported as arguments
         to the -march option: armv8.7-a, armv8.8-a, armv9-a.
--- 3549,3592 ----
         -fconvert option, the CONVERT specifier of the OPEN statement and
         the GFORTRAN_CONVERT_UNIT environment variable.
  
!   [93]Go
  
       * GCC 12 provides a complete implementation of the Go 1.18 user
         packages.
       * Although Go 1.18 includes support for generic programming, that
         support is not yet available in GCC.
  
! [94]libgccjit
  
       * The libgccjit API gained 30 new entry points:
            + 17 new "reflection" entry points for querying functions and
!             types ([95]LIBGCCJIT_ABI_16)
!           + [96]gcc_jit_lvalue_set_tls_model for supporting thread-local
!             variables ([97]LIBGCCJIT_ABI_17)
!           + [98]gcc_jit_lvalue_set_link_section for setting the link
              section of global variables, analogous to
!             [99]__attribute__((section(".section")))
!             ([100]LIBGCCJIT_ABI_18)
            + 4 new entry points for initializing global variables and
!             creating constructors for rvalues ([101]LIBGCCJIT_ABI_19)
            + Support for sized integer types, including 128-bit integers
!             and helper functions for such types ([102]LIBGCCJIT_ABI_20)
!           + [103]gcc_jit_context_new_bitcast for reinterpreting the bits
!             of an rvalue as a different type ([104]LIBGCCJIT_ABI_21)
!           + [105]gcc_jit_lvalue_set_register_name for setting a specific
!             register for a variable ([106]LIBGCCJIT_ABI_22)
!           + [107]gcc_jit_context_set_bool_print_errors_to_stderr
!             ([108]LIBGCCJIT_ABI_23)
            + 2 new entry points for setting the alignment of a variable
!             ([109]LIBGCCJIT_ABI_24)
       * libgccjit has gained support for the use of various atomic builtins
!        ([110]PR96066, [111]PR96067)
!      * [112]gcc_jit_context_new_cast is now able to handle truncation and
!        extension between different integer types ([113]PR95498)
  
! [114]New Targets and Target Specific Improvements
  
!   [115]AArch64 & arm
  
       * Newer revisions of the Arm Architecture are supported as arguments
         to the -march option: armv8.7-a, armv8.8-a, armv9-a.
*************** New Targets and Target Specific Improvem
*** 2548,2554 ****
         dot-product operations, taking advantage of instructions in the
         Advanced SIMD (AArch64/AArch32) and SVE (AArch64) instruction sets.
  
!   AArch64
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
--- 3596,3602 ----
         dot-product operations, taking advantage of instructions in the
         Advanced SIMD (AArch64/AArch32) and SVE (AArch64) instruction sets.
  
!   [116]AArch64
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
*************** New Targets and Target Specific Improvem
*** 2556,2562 ****
            + Arm Cortex-A710 (cortex-a710).
            + Arm Cortex-X2 (cortex-x2).
       * The 64-byte atomic load/store intrinsics to accelerator memory from
!        the [103]2020 Arm Architecture extensions are supported through the
         +ls64 option extension.
       * Initial code generation support is supported for hardware
         instructions used to accelerate the memcpy,memmove and memset
--- 3604,3610 ----
            + Arm Cortex-A710 (cortex-a710).
            + Arm Cortex-X2 (cortex-x2).
       * The 64-byte atomic load/store intrinsics to accelerator memory from
!        the [117]2020 Arm Architecture extensions are supported through the
         +ls64 option extension.
       * Initial code generation support is supported for hardware
         instructions used to accelerate the memcpy,memmove and memset
*************** New Targets and Target Specific Improvem
*** 2569,2575 ****
         cores that have a total vector bandwidth of 512 bits. Please refer
         to the documentation for more details.
  
!   AMD Radeon (GCN)
  
       * Debug experience with ROCGDB has been improved.
       * Support for the type __int128_t/integer(kind=16) was added.
--- 3617,3623 ----
         cores that have a total vector bandwidth of 512 bits. Please refer
         to the documentation for more details.
  
!   [118]AMD Radeon (GCN)
  
       * Debug experience with ROCGDB has been improved.
       * Support for the type __int128_t/integer(kind=16) was added.
*************** New Targets and Target Specific Improvem
*** 2579,2585 ****
         wavefronts in total, per CU). Additionally, the number of used
         wavefronts and workgroups was tuned for performance.
  
!   arm
  
       * Support is added for accessing the stack canary value via the TLS
         register through the -fstack-protector-guard=tls and
--- 3627,3633 ----
         wavefronts in total, per CU). Additionally, the number of used
         wavefronts and workgroups was tuned for performance.
  
!   [119]arm
  
       * Support is added for accessing the stack canary value via the TLS
         register through the -fstack-protector-guard=tls and
*************** New Targets and Target Specific Improvem
*** 2587,2599 ****
         Linux kernel development. Please refer to the documentation for
         more details.
  
!   BPF
  
       * Support for CO-RE (compile-once, run-everywhere) has been added to
         the BPF back end. CO-RE allows to compile portable BPF programs
         that are able to run among different versions of the Linux kernel.
  
!   IA-32/x86-64
  
       * New ISA extension support for Intel AVX512-FP16 was added.
         AVX512-FP16 intrinsics are available via the -mavx512fp16 compiler
--- 3635,3647 ----
         Linux kernel development. Please refer to the documentation for
         more details.
  
!   [120]BPF
  
       * Support for CO-RE (compile-once, run-everywhere) has been added to
         the BPF back end. CO-RE allows to compile portable BPF programs
         that are able to run among different versions of the Linux kernel.
  
!   [121]IA-32/x86-64
  
       * New ISA extension support for Intel AVX512-FP16 was added.
         AVX512-FP16 intrinsics are available via the -mavx512fp16 compiler
*************** New Targets and Target Specific Improvem
*** 2610,2616 ****
         function symbols when the new -mno-direct-extern-access
         command-line option is specified.
  
!   LoongArch
  
       * Support for the LoongArch architecture instruction set has been
         added.
--- 3658,3664 ----
         function symbols when the new -mno-direct-extern-access
         command-line option is specified.
  
!   [122]LoongArch
  
       * Support for the LoongArch architecture instruction set has been
         added.
*************** New Targets and Target Specific Improvem
*** 2620,2626 ****
            + Loongson LA464 core (la464).
            + LoongArch 64-bit generic core (loongarch64).
  
!   MIPS
  
       * The ABI passing arguments containing zero-width fields (for
         example, C/C++ zero-width bit-fields, GNU C/C++ zero-length arrays,
--- 3668,3674 ----
            + Loongson LA464 core (la464).
            + LoongArch 64-bit generic core (loongarch64).
  
!   [123]MIPS
  
       * The ABI passing arguments containing zero-width fields (for
         example, C/C++ zero-width bit-fields, GNU C/C++ zero-length arrays,
*************** New Targets and Target Specific Improvem
*** 2636,2642 ****
         through 11. GCC 12 on MIPS will report such incompatibilities as an
         inform unless -Wno-psabi is used.
  
!   NVPTX
  
       * The -march flag has been added. The -misa flag is now considered an
         alias of the -march flag.
--- 3684,3690 ----
         through 11. GCC 12 on MIPS will report such incompatibilities as an
         inform unless -Wno-psabi is used.
  
!   [124]NVPTX
  
       * The -march flag has been added. The -misa flag is now considered an
         alias of the -march flag.
*************** New Targets and Target Specific Improvem
*** 2662,2674 ****
         predefined macros allows code to check the PTX ISA version being
         targeted by the compiler.
  
!   PowerPC / PowerPC64 / RS6000
  
       * The internal implementation of Power's target-specific built-in
         functions has been rewritten to be easier and less error-prone to
         maintain. Every attempt has been made to ensure that the new
         behavior matches the old behavior, but inevitably some bugs can be
!        expected. Please [104]report any problems.
       * The built-in functions __builtin_get_texasr, __builtin_get_texasru,
         __builtin_get_tfhar, __builtin_get_tfiar, __builtin_set_texasr,
         __builtin_set_texasru, __builtin_set_tfhar, and __builtin_set_tfiar
--- 3710,3722 ----
         predefined macros allows code to check the PTX ISA version being
         targeted by the compiler.
  
!   [125]PowerPC / PowerPC64 / RS6000
  
       * The internal implementation of Power's target-specific built-in
         functions has been rewritten to be easier and less error-prone to
         maintain. Every attempt has been made to ensure that the new
         behavior matches the old behavior, but inevitably some bugs can be
!        expected. Please [126]report any problems.
       * The built-in functions __builtin_get_texasr, __builtin_get_texasru,
         __builtin_get_tfhar, __builtin_get_tfiar, __builtin_set_texasr,
         __builtin_set_texasru, __builtin_set_tfhar, and __builtin_set_tfiar
*************** New Targets and Target Specific Improvem
*** 2680,2694 ****
         now behave as documented. On prior releases, these built-in
         functions had incorrect semantics on little-endian targets.
  
!   PRU
  
!      * The [105]__regio_symbol variable qualifier has been added. It
         allows easier access in C programs to the __R30 and __R31 CPU I/O
         registers.
  
!   RISC-V
  
!      * The default ISA spec version was bumped to 20191213; see [106]this
         announcement for details.
       * New ISA extension support for zba, zbb, zbc, zbs was added.
       * New ISA extension support for vector and scalar crypto was added,
--- 3728,3742 ----
         now behave as documented. On prior releases, these built-in
         functions had incorrect semantics on little-endian targets.
  
!   [127]PRU
  
!      * The [128]__regio_symbol variable qualifier has been added. It
         allows easier access in C programs to the __R30 and __R31 CPU I/O
         registers.
  
!   [129]RISC-V
  
!      * The default ISA spec version was bumped to 20191213; see [130]this
         announcement for details.
       * New ISA extension support for zba, zbb, zbc, zbs was added.
       * New ISA extension support for vector and scalar crypto was added,
*************** New Targets and Target Specific Improvem
*** 2699,2747 ****
         Distributions that have out-of-tree workarounds for -latomic should
         check their ABIs again.
  
! Operating Systems
  
! Improvements to Static Analyzer
  
       * The analyzer has gained a
!        [107]-Wanalyzer-use-of-uninitialized-value warning, similar to
!        [108]-Wuninitialized and [109]-Wmaybe-uninitialized, but based on
!        an interprocedural path-sensitive analysis ([110]PR95006).
         Such warnings are not disabled by the new
!        [111]-ftrivial-auto-var-init (see below), as the latter is
         considered a mitigation option.
!      * [112]-Wanalyzer-write-to-const and
!        [113]-Wanalyzer-write-to-string-literal will now check for
!        [114]__attribute__ ((access, ....)) on calls to externally-defined
         functions, and complain about read-only regions pointed to by
         arguments marked with a write_only or read_write attribute
!        ([115]PR104793).
       * The analyzer's "taint" mode, activated by
!        [116]-fanalyzer-checker=taint (in addition to [117]-fanalyzer), has
         gained four new taint-based warnings:
!           + [118]-Wanalyzer-tainted-allocation-size for e.g.
              attacker-controlled malloc and alloca,
!           + [119]-Wanalyzer-tainted-divisor for detecting where an
              attacker can inject a divide-by-zero,
!           + [120]-Wanalyzer-tainted-offset for attacker-controlled pointer
              offsets,
!           + [121]-Wanalyzer-tainted-size for attacker-controlled values
              being used as a size parameter to calls to memset or to
!             functions marked with [122]__attribute__ ((access, ....)).
!        The existing [123]-Wanalyzer-tainted-array-index has been reworded
         to talk about "attacker-controlled" rather than "tainted" values,
         for consistency with the new warnings.
!        A new [124]__attribute__ ((tainted_args)) has been added to the C
         and C++ front ends, usable on functions, and on function pointer
         callback fields in structs. The analyzer's taint mode will treat
         all parameters and buffers pointed to by parameters of such
         functions as being attacker-controlled, such as for annotating
         system calls in an operating system kernel as being an "attack
         surface".
!      * The analyzer now respects [125]__attribute__((const)): it will
         treat such functions as returning the same value when given the
!        same inputs ([126]PR104434), and as having no side effects
!        ([127]PR104576).
       * The analyzer is now able to split its analysis into multiple
         execution paths in places where there isn't a split in the control
         flow graph. For example, it now handles realloc calls by splitting
--- 3747,3795 ----
         Distributions that have out-of-tree workarounds for -latomic should
         check their ABIs again.
  
! [131]Operating Systems
  
! [132]Improvements to Static Analyzer
  
       * The analyzer has gained a
!        [133]-Wanalyzer-use-of-uninitialized-value warning, similar to
!        [134]-Wuninitialized and [135]-Wmaybe-uninitialized, but based on
!        an interprocedural path-sensitive analysis ([136]PR95006).
         Such warnings are not disabled by the new
!        [137]-ftrivial-auto-var-init (see below), as the latter is
         considered a mitigation option.
!      * [138]-Wanalyzer-write-to-const and
!        [139]-Wanalyzer-write-to-string-literal will now check for
!        [140]__attribute__ ((access, ....)) on calls to externally-defined
         functions, and complain about read-only regions pointed to by
         arguments marked with a write_only or read_write attribute
!        ([141]PR104793).
       * The analyzer's "taint" mode, activated by
!        [142]-fanalyzer-checker=taint (in addition to [143]-fanalyzer), has
         gained four new taint-based warnings:
!           + [144]-Wanalyzer-tainted-allocation-size for e.g.
              attacker-controlled malloc and alloca,
!           + [145]-Wanalyzer-tainted-divisor for detecting where an
              attacker can inject a divide-by-zero,
!           + [146]-Wanalyzer-tainted-offset for attacker-controlled pointer
              offsets,
!           + [147]-Wanalyzer-tainted-size for attacker-controlled values
              being used as a size parameter to calls to memset or to
!             functions marked with [148]__attribute__ ((access, ....)).
!        The existing [149]-Wanalyzer-tainted-array-index has been reworded
         to talk about "attacker-controlled" rather than "tainted" values,
         for consistency with the new warnings.
!        A new [150]__attribute__ ((tainted_args)) has been added to the C
         and C++ front ends, usable on functions, and on function pointer
         callback fields in structs. The analyzer's taint mode will treat
         all parameters and buffers pointed to by parameters of such
         functions as being attacker-controlled, such as for annotating
         system calls in an operating system kernel as being an "attack
         surface".
!      * The analyzer now respects [151]__attribute__((const)): it will
         treat such functions as returning the same value when given the
!        same inputs ([152]PR104434), and as having no side effects
!        ([153]PR104576).
       * The analyzer is now able to split its analysis into multiple
         execution paths in places where there isn't a split in the control
         flow graph. For example, it now handles realloc calls by splitting
*************** Improvements to Static Analyzer
*** 2754,2774 ****
         to track calls through function pointers.
       * The analyzer now makes the assumption that if we know PTR is
         non-NULL, then (PTR + OFFSET) is also non-NULL. This isn't strictly
!        true, but eliminates false positives in practice ([128]PR101962).
       * The analyzer has gained some initial support for inline assembler
         code. This is extremely limited, and is purely to help suppress
         false positives when analyzing the Linux kernel, which makes heavy
!        use of inline assembler ([129]PR101570).
       * The way the analyzer tracks the state of memory along an execution
         path has been improved in various ways for GCC 12:
            + An optimization for representing bulk updates to memory (e.g.
              zero fills) has been removed as it never worked well. In GCC
              12 it has been replaced with a simpler and more accurate
!             approach, eliminating many false positives ([130]PR95006).
            + Various optimizations have been added, speeding up the
              analysis on a particularly problematic source file from 4
!             minutes down to 17 seconds ([131]PR104943, [132]PR104954, and
!             [133]PR104955).
            + The analyzer now tracks the sizes of dynamically-allocated
              regions, both on the heap (via malloc etc) and stack (via
              alloca), though none of the analyzer warnings make use of this
--- 3802,3822 ----
         to track calls through function pointers.
       * The analyzer now makes the assumption that if we know PTR is
         non-NULL, then (PTR + OFFSET) is also non-NULL. This isn't strictly
!        true, but eliminates false positives in practice ([154]PR101962).
       * The analyzer has gained some initial support for inline assembler
         code. This is extremely limited, and is purely to help suppress
         false positives when analyzing the Linux kernel, which makes heavy
!        use of inline assembler ([155]PR101570).
       * The way the analyzer tracks the state of memory along an execution
         path has been improved in various ways for GCC 12:
            + An optimization for representing bulk updates to memory (e.g.
              zero fills) has been removed as it never worked well. In GCC
              12 it has been replaced with a simpler and more accurate
!             approach, eliminating many false positives ([156]PR95006).
            + Various optimizations have been added, speeding up the
              analysis on a particularly problematic source file from 4
!             minutes down to 17 seconds ([157]PR104943, [158]PR104954, and
!             [159]PR104955).
            + The analyzer now tracks the sizes of dynamically-allocated
              regions, both on the heap (via malloc etc) and stack (via
              alloca), though none of the analyzer warnings make use of this
*************** Improvements to Static Analyzer
*** 2778,2802 ****
  
  Other significant improvements
  
!   Eliminating uninitialized variables
  
!      * GCC can now [134]initialize all stack variables implicitly,
         including padding. This is intended to eliminate all classes of
         uninitialized stack variable flaws. Lack of explicit initialization
!        will still warn when [135]-Wuninitialized is active. For best
         debugging, use of the new command-line option
!        [136]-ftrivial-auto-var-init=pattern can be used to fill variables
         with a repeated 0xFE pattern, which tends to illuminate many bugs
         (e.g. pointers receive invalid addresses, sizes and indices are
         very large). For best production results, the new command-line
!        option [137]-ftrivial-auto-var-init=zero can be used to fill
         variables with 0x00, which tends to provide a safer state for bugs
         (e.g. pointers are NULL, strings are NUL filled, and sizes and
         indices are 0).
  
!   Debugging formats
  
!      * GCC can now generate debugging information in [138]CTF, a
         lightweight debugging format that provides information about C
         types and the association between functions and data symbols and
         types. This format is designed to be embedded in ELF files and to
--- 3826,3850 ----
  
  Other significant improvements
  
!   [160]Eliminating uninitialized variables
  
!      * GCC can now [161]initialize all stack variables implicitly,
         including padding. This is intended to eliminate all classes of
         uninitialized stack variable flaws. Lack of explicit initialization
!        will still warn when [162]-Wuninitialized is active. For best
         debugging, use of the new command-line option
!        [163]-ftrivial-auto-var-init=pattern can be used to fill variables
         with a repeated 0xFE pattern, which tends to illuminate many bugs
         (e.g. pointers receive invalid addresses, sizes and indices are
         very large). For best production results, the new command-line
!        option [164]-ftrivial-auto-var-init=zero can be used to fill
         variables with 0x00, which tends to provide a safer state for bugs
         (e.g. pointers are NULL, strings are NUL filled, and sizes and
         indices are 0).
  
!   [165]Debugging formats
  
!      * GCC can now generate debugging information in [166]CTF, a
         lightweight debugging format that provides information about C
         types and the association between functions and data symbols and
         types. This format is designed to be embedded in ELF files and to
*************** Other significant improvements
*** 2807,2822 ****
         The compiler can generate BTF for any target, when enabled with the
         command-line option -gbtf
  
! GCC 12.1
  
!    This is the [139]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 12.2
  
!    This is the [140]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 3855,3870 ----
         The compiler can generate BTF for any target, when enabled with the
         command-line option -gbtf
  
! [167]GCC 12.1
  
!    This is the [168]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [169]GCC 12.2
  
!    This is the [170]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 12.2
*** 2830,2836 ****
         all optimization levels but -O0 and -Og. The old behavior can be
         obtained by explicitly passing -mcheck-zero-division to GCC.
  
! GCC 12.3
  
    Target Specific Changes
  
--- 3878,3884 ----
         all optimization levels but -O0 and -Og. The old behavior can be
         obtained by explicitly passing -mcheck-zero-division to GCC.
  
! [171]GCC 12.3
  
    Target Specific Changes
  
*************** GCC 12.3
*** 2840,2871 ****
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
  
!    This is the [141]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 12.4
  
!    This is the [142]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [143]GCC manuals. If that fails, the
!     [144]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [145]gcc@gcc.gnu.org. All of [146]our lists have public
      archives.
  
!    Copyright (C) [147]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [148]maintained by the GCC team. Last modified
!    2024-07-04.
  
  References
  
--- 3888,3919 ----
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
  
!    This is the [172]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [173]GCC 12.4
  
!    This is the [174]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [175]GCC manuals. If that fails, the
!     [176]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [177]gcc@gcc.gnu.org. All of [178]our lists have public
      archives.
  
!    Copyright (C) [179]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [180]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 2875,3022 ****
     4. https://gcc.gnu.org/PR42217
     5. https://gcc.gnu.org/gcc-12/changes.html#mips_zero_width_fields
     6. https://gcc.gnu.org/install/specific.html
!    7. https://clang.llvm.org/docs/ShadowCallStack.html
!    8. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Instrumentation-Options.html#index-fsanitize_003dshadow-call-stack
!    9. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/OpenMP-Implementation-Status.html
!   10. https://www.openacc.org/
!   11. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-12
!   12. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/Enabling-OpenACC.html
!   13. https://gcc.gnu.org/gcc-12/changes.html#amdgcn
!   14. https://gcc.gnu.org/gcc-12/changes.html#nvptx
!   15. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-param
!   16. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wopenacc-parallelism
!   17. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload-options
!   18. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload
!   19. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gnat_rm/Security-Hardening-Features.html#Security-Hardening-Features
!   20. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wbidi-chars
!   21. https://gcc.gnu.org/PR103026
!   22. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Warray-compare
!   23. https://gcc.gnu.org/PR97573
!   24. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wattributes
!   25. https://gcc.gnu.org/PR101940
!   26. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wformat
!   27. https://wg21.link/p1938
!   28. https://gcc.gnu.org/PR100974
!   29. https://wg21.link/p0849
!   30. https://gcc.gnu.org/PR103049
!   31. https://wg21.link/p2242
!   32. https://gcc.gnu.org/PR102612
!   33. https://wg21.link/p2334
!   34. https://gcc.gnu.org/PR102616
!   35. https://wg21.link/p2360
!   36. https://gcc.gnu.org/PR102617
!   37. https://wg21.link/p2128
!   38. https://wg21.link/cwg2397
!   39. https://gcc.gnu.org/PR100975
!   40. https://wg21.link/cwg960
!   41. https://wg21.link/cwg1227
!   42. https://wg21.link/cwg1315
!   43. https://wg21.link/cwg2082
!   44. https://wg21.link/cwg2351
!   45. https://wg21.link/cwg2374
!   46. https://wg21.link/cwg2397
!   47. https://wg21.link/cwg2446
!   48. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=87c2080b
!   49. https://gcc.gnu.org/PR79501
!   50. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!   51. https://gcc.gnu.org/PR19808
!   52. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wint-in-bool-context
!   53. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a2b12bc
!   54. https://gcc.gnu.org/PR99032
!   55. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmissing-requires
!   56. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e18e56c7
!   57. https://gcc.gnu.org/PR100995
!   58. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Waddress
!   59. https://gcc.gnu.org/PR102103
!   60. https://gcc.gnu.org/PR99701
!   61. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3ead06c1
!   62. https://gcc.gnu.org/PR102753
!   63. https://wg21.link/p0466
!   64. https://gcc.gnu.org/PR101539
!   65. https://gcc.gnu.org/PR100828
!   66. https://gcc.gnu.org/PR101786
!   67. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Winterference-size
!   68. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=76b75018
!   69. https://gcc.gnu.org/PR101344
!   70. https://gcc.gnu.org/PR101883
!   71. https://gcc.gnu.org/PR89062
!   72. https://gcc.gnu.org/PR101233
!   73. https://gcc.gnu.org/PR88252
!   74. https://gcc.gnu.org/PR86439
!   75. https://gcc.gnu.org/PR98832
!   76. https://gcc.gnu.org/PR102933
!   77. https://gcc.gnu.org/PR51577
!   78. https://gcc.gnu.org/PR98486
!   79. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=1595fe44
!   80. https://dlang.org/changelog/2.100.1.html
!   81. https://gcc.gnu.org/PR101127
!   82. https://gcc.gnu.org/PR106563
!   83. https://dlang.org/spec/importc.html
!   84. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-16
!   85. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_tls_model
!   86. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-17
!   87. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_link_section
!   88. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Variable-Attributes.html#index-section-variable-attribute
!   89. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-18
!   90. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-19
!   91. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-20
!   92. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_bitcast
!   93. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-21
!   94. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_register_name
!   95. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-22
!   96. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/contexts.html#c.gcc_jit_context_set_bool_print_errors_to_stderr
!   97. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-23
!   98. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-24
!   99. https://gcc.gnu.org/PR96066
!  100. https://gcc.gnu.org/PR96067
!  101. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_cast
!  102. https://gcc.gnu.org/PR95498
!  103. https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2020
!  104. https://gcc.gnu.org/bugs/
!  105. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Named-Address-Spaces.html#PRU-Named-Address-Spaces
!  106. https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/aE1ZeHHCYf4
!  107. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-uninitialized-value
!  108. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!  109. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized
!  110. https://gcc.gnu.org/PR95006
!  111. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  112. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const
!  113. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal
!  114. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html
!  115. https://gcc.gnu.org/PR104793
!  116. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker
!  117. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  118. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  119. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor
!  120. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset
!  121. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size
!  122. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html
!  123. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index
!  124. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute
!  125. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-const-function-attribute
!  126. https://gcc.gnu.org/PR104434
!  127. https://gcc.gnu.org/PR104576
!  128. https://gcc.gnu.org/PR101962
!  129. https://gcc.gnu.org/PR101570
!  130. https://gcc.gnu.org/PR95006
!  131. https://gcc.gnu.org/PR104943
!  132. https://gcc.gnu.org/PR104954
!  133. https://gcc.gnu.org/PR104955
!  134. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  135. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!  136. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
   137. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  138. https://ctfstd.org/
!  139. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.0
!  140. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.2
!  141. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.3
!  142. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.4
!  143. https://gcc.gnu.org/onlinedocs/
!  144. mailto:gcc-help@gcc.gnu.org
!  145. mailto:gcc@gcc.gnu.org
!  146. https://gcc.gnu.org/lists.html
!  147. https://www.fsf.org/
!  148. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
                               GCC 11 Release Series
--- 3923,4102 ----
     4. https://gcc.gnu.org/PR42217
     5. https://gcc.gnu.org/gcc-12/changes.html#mips_zero_width_fields
     6. https://gcc.gnu.org/install/specific.html
!    7. https://gcc.gnu.org/gcc-12/changes.html#general
!    8. https://clang.llvm.org/docs/ShadowCallStack.html
!    9. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Instrumentation-Options.html#index-fsanitize_003dshadow-call-stack
!   10. https://gcc.gnu.org/gcc-12/changes.html#languages
!   11. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/OpenMP-Implementation-Status.html
!   12. https://www.openacc.org/
!   13. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-12
!   14. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/Enabling-OpenACC.html
!   15. https://gcc.gnu.org/gcc-12/changes.html#amdgcn
!   16. https://gcc.gnu.org/gcc-12/changes.html#nvptx
!   17. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-param
!   18. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wopenacc-parallelism
!   19. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload-options
!   20. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload
!   21. https://gcc.gnu.org/gcc-12/changes.html#ada
!   22. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gnat_rm/Security-Hardening-Features.html#Security-Hardening-Features
!   23. https://gcc.gnu.org/gcc-12/changes.html#c-family
!   24. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wbidi-chars
!   25. https://gcc.gnu.org/PR103026
!   26. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Warray-compare
!   27. https://gcc.gnu.org/PR97573
!   28. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wattributes
!   29. https://gcc.gnu.org/PR101940
!   30. https://gcc.gnu.org/gcc-12/changes.html#c
!   31. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wformat
!   32. https://gcc.gnu.org/gcc-12/changes.html#cxx
!   33. https://wg21.link/p1938
!   34. https://gcc.gnu.org/PR100974
!   35. https://wg21.link/p0849
!   36. https://gcc.gnu.org/PR103049
!   37. https://wg21.link/p2242
!   38. https://gcc.gnu.org/PR102612
!   39. https://wg21.link/p2334
!   40. https://gcc.gnu.org/PR102616
!   41. https://wg21.link/p2360
!   42. https://gcc.gnu.org/PR102617
!   43. https://wg21.link/p2128
!   44. https://wg21.link/cwg2397
!   45. https://gcc.gnu.org/PR100975
!   46. https://wg21.link/cwg960
!   47. https://wg21.link/cwg1227
!   48. https://wg21.link/cwg1315
!   49. https://wg21.link/cwg2082
!   50. https://wg21.link/cwg2351
!   51. https://wg21.link/cwg2374
!   52. https://wg21.link/cwg2397
!   53. https://wg21.link/cwg2446
!   54. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=87c2080b
!   55. https://gcc.gnu.org/PR79501
!   56. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!   57. https://gcc.gnu.org/PR19808
!   58. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wint-in-bool-context
!   59. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a2b12bc
!   60. https://gcc.gnu.org/PR99032
!   61. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmissing-requires
!   62. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e18e56c7
!   63. https://gcc.gnu.org/PR100995
!   64. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Waddress
!   65. https://gcc.gnu.org/PR102103
!   66. https://gcc.gnu.org/PR99701
!   67. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3ead06c1
!   68. https://gcc.gnu.org/PR102753
!   69. https://wg21.link/p0466
!   70. https://gcc.gnu.org/PR101539
!   71. https://gcc.gnu.org/PR100828
!   72. https://gcc.gnu.org/PR101786
!   73. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Winterference-size
!   74. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=76b75018
!   75. https://gcc.gnu.org/PR101344
!   76. https://gcc.gnu.org/PR101883
!   77. https://gcc.gnu.org/PR89062
!   78. https://gcc.gnu.org/PR101233
!   79. https://gcc.gnu.org/PR88252
!   80. https://gcc.gnu.org/PR86439
!   81. https://gcc.gnu.org/PR98832
!   82. https://gcc.gnu.org/PR102933
!   83. https://gcc.gnu.org/PR51577
!   84. https://gcc.gnu.org/PR98486
!   85. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=1595fe44
!   86. https://gcc.gnu.org/gcc-12/changes.html#libstdcxx
!   87. https://gcc.gnu.org/gcc-12/changes.html#d
!   88. https://dlang.org/changelog/2.100.1.html
!   89. https://gcc.gnu.org/PR101127
!   90. https://gcc.gnu.org/PR106563
!   91. https://dlang.org/spec/importc.html
!   92. https://gcc.gnu.org/gcc-12/changes.html#fortran
!   93. https://gcc.gnu.org/gcc-12/changes.html#go
!   94. https://gcc.gnu.org/gcc-12/changes.html#jit
!   95. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-16
!   96. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_tls_model
!   97. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-17
!   98. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_link_section
!   99. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Variable-Attributes.html#index-section-variable-attribute
!  100. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-18
!  101. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-19
!  102. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-20
!  103. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_bitcast
!  104. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-21
!  105. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_register_name
!  106. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-22
!  107. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/contexts.html#c.gcc_jit_context_set_bool_print_errors_to_stderr
!  108. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-23
!  109. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-24
!  110. https://gcc.gnu.org/PR96066
!  111. https://gcc.gnu.org/PR96067
!  112. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_cast
!  113. https://gcc.gnu.org/PR95498
!  114. https://gcc.gnu.org/gcc-12/changes.html#targets
!  115. https://gcc.gnu.org/gcc-12/changes.html#arm-targets
!  116. https://gcc.gnu.org/gcc-12/changes.html#aarch64
!  117. https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2020
!  118. https://gcc.gnu.org/gcc-12/changes.html#amdgcn
!  119. https://gcc.gnu.org/gcc-12/changes.html#arm
!  120. https://gcc.gnu.org/gcc-12/changes.html#bpf
!  121. https://gcc.gnu.org/gcc-12/changes.html#x86
!  122. https://gcc.gnu.org/gcc-12/changes.html#loongarch
!  123. https://gcc.gnu.org/gcc-12/changes.html#mips
!  124. https://gcc.gnu.org/gcc-12/changes.html#nvptx
!  125. https://gcc.gnu.org/gcc-12/changes.html#powerpc
!  126. https://gcc.gnu.org/bugs/
!  127. https://gcc.gnu.org/gcc-12/changes.html#pru
!  128. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Named-Address-Spaces.html#PRU-Named-Address-Spaces
!  129. https://gcc.gnu.org/gcc-12/changes.html#riscv
!  130. https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/aE1ZeHHCYf4
!  131. https://gcc.gnu.org/gcc-12/changes.html#os
!  132. https://gcc.gnu.org/gcc-12/changes.html#analyzer
!  133. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-uninitialized-value
!  134. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!  135. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized
!  136. https://gcc.gnu.org/PR95006
   137. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  138. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const
!  139. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal
!  140. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html
!  141. https://gcc.gnu.org/PR104793
!  142. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker
!  143. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
!  144. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
!  145. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor
!  146. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset
!  147. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size
!  148. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html
!  149. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index
!  150. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute
!  151. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-const-function-attribute
!  152. https://gcc.gnu.org/PR104434
!  153. https://gcc.gnu.org/PR104576
!  154. https://gcc.gnu.org/PR101962
!  155. https://gcc.gnu.org/PR101570
!  156. https://gcc.gnu.org/PR95006
!  157. https://gcc.gnu.org/PR104943
!  158. https://gcc.gnu.org/PR104954
!  159. https://gcc.gnu.org/PR104955
!  160. https://gcc.gnu.org/gcc-12/changes.html#uninitialized
!  161. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  162. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized
!  163. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  164. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init
!  165. https://gcc.gnu.org/gcc-12/changes.html#debug
!  166. https://ctfstd.org/
!  167. https://gcc.gnu.org/gcc-12/changes.html#12.1
!  168. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.0
!  169. https://gcc.gnu.org/gcc-12/changes.html#12.2
!  170. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.2
!  171. https://gcc.gnu.org/gcc-12/changes.html#12.3
!  172. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.3
!  173. https://gcc.gnu.org/gcc-12/changes.html#12.4
!  174. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.4
!  175. https://gcc.gnu.org/onlinedocs/
!  176. mailto:gcc-help@gcc.gnu.org
!  177. mailto:gcc@gcc.gnu.org
!  178. https://gcc.gnu.org/lists.html
!  179. https://www.fsf.org/
!  180. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
                               GCC 11 Release Series
*************** Caveats
*** 3138,3147 ****
       * Some short options of the gcov tool have been renamed: -i to -j and
         -j to -H.
  
! General Improvements
  
!      * [5]ThreadSanitizer improvements to support alternative runtimes and
!        environments. The [6]Linux Kernel Concurrency Sanitizer (KCSAN) is
         now supported.
            + Add --param tsan-distinguish-volatile to optionally emit
              instrumentation distinguishing volatile accesses.
--- 4218,4227 ----
       * Some short options of the gcov tool have been renamed: -i to -j and
         -j to -H.
  
! [5]General Improvements
  
!      * [6]ThreadSanitizer improvements to support alternative runtimes and
!        environments. The [7]Linux Kernel Concurrency Sanitizer (KCSAN) is
         now supported.
            + Add --param tsan-distinguish-volatile to optionally emit
              instrumentation distinguishing volatile accesses.
*************** General Improvements
*** 3160,3170 ****
         columns, and its UTF-8 encoding requires four bytes.
         In GCC 11 the column numbers default to being column numbers,
         respecting multi-column characters. The old behavior can be
!        restored using a new option [7]-fdiagnostics-column-unit=byte.
!        There is also a new option [8]-fdiagnostics-column-origin=,
         allowing the pre-existing default of the left-hand column being
         column 1 to be overridden if desired (e.g. for 0-based columns).
!        The output of [9]-fdiagnostics-format=json has been extended to
         supply both byte counts and column numbers for all source
         locations.
         Additionally, in previous releases of GCC, tab characters in the
--- 4240,4250 ----
         columns, and its UTF-8 encoding requires four bytes.
         In GCC 11 the column numbers default to being column numbers,
         respecting multi-column characters. The old behavior can be
!        restored using a new option [8]-fdiagnostics-column-unit=byte.
!        There is also a new option [9]-fdiagnostics-column-origin=,
         allowing the pre-existing default of the left-hand column being
         column 1 to be overridden if desired (e.g. for 0-based columns).
!        The output of [10]-fdiagnostics-format=json has been extended to
         supply both byte counts and column numbers for all source
         locations.
         Additionally, in previous releases of GCC, tab characters in the
*************** General Improvements
*** 3172,3191 ****
         prefixed with whitespace or line number information, leading to
         misalignments in the resulting output when compared with the actual
         source. Tab characters are now printed as an appropriate number of
!        spaces, using the [10]-ftabstop option (which defaults to 8 spaces
         per tab stop).
!      * Introduce [11]Hardware-assisted AddressSanitizer support. This
         sanitizer currently only works for the AArch64 target. It helps
!        debug address problems similarly to [12]AddressSanitizer but is
         based on partial hardware assistance and provides probabilistic
!        protection to use less RAM at run time. [13]Hardware-assisted
         AddressSanitizer is not production-ready for user space, and is
         provided mainly for use compiling the Linux Kernel.
         To use this sanitizer the command line arguments are:
            + -fsanitize=hwaddress to instrument userspace code.
            + -fsanitize=kernel-hwaddress to instrument kernel code.
       * For targets that produce DWARF debugging information GCC now
!        defaults to [14]DWARF version 5 (with the exception of VxWorks and
         Darwin/Mac OS X which default to version 2 and AIX which defaults
         to version 4). This can produce up to 25% more compact debug
         information compared to earlier versions.
--- 4252,4271 ----
         prefixed with whitespace or line number information, leading to
         misalignments in the resulting output when compared with the actual
         source. Tab characters are now printed as an appropriate number of
!        spaces, using the [11]-ftabstop option (which defaults to 8 spaces
         per tab stop).
!      * Introduce [12]Hardware-assisted AddressSanitizer support. This
         sanitizer currently only works for the AArch64 target. It helps
!        debug address problems similarly to [13]AddressSanitizer but is
         based on partial hardware assistance and provides probabilistic
!        protection to use less RAM at run time. [14]Hardware-assisted
         AddressSanitizer is not production-ready for user space, and is
         provided mainly for use compiling the Linux Kernel.
         To use this sanitizer the command line arguments are:
            + -fsanitize=hwaddress to instrument userspace code.
            + -fsanitize=kernel-hwaddress to instrument kernel code.
       * For targets that produce DWARF debugging information GCC now
!        defaults to [15]DWARF version 5 (with the exception of VxWorks and
         Darwin/Mac OS X which default to version 2 and AIX which defaults
         to version 4). This can produce up to 25% more compact debug
         information compared to earlier versions.
*************** General Improvements
*** 3221,3233 ****
         This statement can be transformed into a switch statement and then
         expanded into a bit-test.
       * New command-line options:
!           + [15]-fbit-tests, enabled by default, can be used to enable or
              disable switch expansion using bit-tests.
       * Inter-procedural optimization improvements:
            + A new IPA-modref pass was added to track side effects of
              function calls and improve precision of points-to-analysis.
!             The pass can be controlled by the [16]-fipa-modref option.
!           + The identical code folding pass (controlled by [17]-fipa-icf)
              was significantly improved to increase the number of unified
              functions and to reduce compile-time memory use.
            + IPA-CP (Interprocedural constant propagation) heuristics
--- 4301,4313 ----
         This statement can be transformed into a switch statement and then
         expanded into a bit-test.
       * New command-line options:
!           + [16]-fbit-tests, enabled by default, can be used to enable or
              disable switch expansion using bit-tests.
       * Inter-procedural optimization improvements:
            + A new IPA-modref pass was added to track side effects of
              function calls and improve precision of points-to-analysis.
!             The pass can be controlled by the [17]-fipa-modref option.
!           + The identical code folding pass (controlled by [18]-fipa-icf)
              was significantly improved to increase the number of unified
              functions and to reduce compile-time memory use.
            + IPA-CP (Interprocedural constant propagation) heuristics
*************** General Improvements
*** 3240,3254 ****
            + Memory allocation of the linking stage was improved to reduce
              peak memory use.
       * Profile driven optimization improvements:
!           + Using [18]-fprofile-values, was improved by tracking more
              target values for e.g. indirect calls.
            + GCOV data file format outputs smaller files by representing
              zero counters in a more compact way.
  
! New Languages and Language specific improvements
  
       * GCC 11 adds support for non-rectangular loop nests in OpenMP
!        constructs and the allocator routines of [19]OpenMP 5.0, including
         initial allocate clause support in C/C++. The OMP_TARGET_OFFLOAD
         environment variable and the active-levels routines are now
         supported. For C/C++, the declare variant and map support has been
--- 4320,4334 ----
            + Memory allocation of the linking stage was improved to reduce
              peak memory use.
       * Profile driven optimization improvements:
!           + Using [19]-fprofile-values, was improved by tracking more
              target values for e.g. indirect calls.
            + GCOV data file format outputs smaller files by representing
              zero counters in a more compact way.
  
! [20]New Languages and Language specific improvements
  
       * GCC 11 adds support for non-rectangular loop nests in OpenMP
!        constructs and the allocator routines of [21]OpenMP 5.0, including
         initial allocate clause support in C/C++. The OMP_TARGET_OFFLOAD
         environment variable and the active-levels routines are now
         supported. For C/C++, the declare variant and map support has been
*************** New Languages and Language specific impr
*** 3260,3308 ****
         extensions of OpenMP 5.0, if clause with simd and cancel modifiers,
         target data without map clause, and limited support for the
         requires construct.
!      * Version 2.6 of the [20]OpenACC specification continues to be
         maintained and improved in the C, C++ and Fortran compilers. See
!        the [21]implementation status section on the OpenACC wiki page and
!        the [22]run-time library documentation for further information.
  
!   C family
  
       * New attributes:
!           + The [23]no_stack_protector attribute has been added to mark
              functions which should not be instrumented with stack
              protection (-fstack-protector).
!           + The existing [24]malloc attribute has been extended so that it
              can be used to identify allocator/deallocator API pairs. A
!             pair of new [25]-Wmismatched-dealloc and
!             [26]-Wmismatched-new-delete warnings will complain about
!             mismatched calls, and [27]-Wfree-nonheap-object about
              deallocation calls with pointers not obtained from allocation
              functions. Additionally, the static analyzer will use these
              attributes when checking for leaks, double-frees,
              use-after-frees, and similar issues.
       * New warnings:
!           + [28]-Wmismatched-dealloc, enabled by default, warns about
              calls to deallocation functions with pointers returned from
              mismatched allocation functions.
!           + [29]-Wsizeof-array-div, enabled by -Wall, warns about
              divisions of two sizeof operators when the first one is
              applied to an array and the divisor does not equal the size of
              the array element.
!           + [30]-Wstringop-overread, enabled by default, warns about calls
              to string functions reading past the end of the arrays passed
              to them as arguments. In prior GCC releases most instances of
              his warning are diagnosed by -Wstringop-overflow.
!           + [31]-Wtsan, enabled by default, warns about unsupported
              features in ThreadSanitizer (currently
              std::atomic_thread_fence).
       * Enhancements to existing warnings:
!           + [32]-Wfree-nonheap-object detects many more instances of calls
              to deallocation functions with pointers not returned from a
              dynamic memory allocation function.
!           + [33]-Wmaybe-uninitialized diagnoses passing pointers or
              references to uninitialized memory to functions taking
              const-qualified arguments.
!           + [34]-Wuninitialized detects reads from uninitialized
              dynamically allocated memory.
       * For ELF targets that support the GNU or FreeBSD OSABIs, the used
         attribute will now save the symbol declaration it is applied to
--- 4340,4388 ----
         extensions of OpenMP 5.0, if clause with simd and cancel modifiers,
         target data without map clause, and limited support for the
         requires construct.
!      * Version 2.6 of the [22]OpenACC specification continues to be
         maintained and improved in the C, C++ and Fortran compilers. See
!        the [23]implementation status section on the OpenACC wiki page and
!        the [24]run-time library documentation for further information.
  
!   [25]C family
  
       * New attributes:
!           + The [26]no_stack_protector attribute has been added to mark
              functions which should not be instrumented with stack
              protection (-fstack-protector).
!           + The existing [27]malloc attribute has been extended so that it
              can be used to identify allocator/deallocator API pairs. A
!             pair of new [28]-Wmismatched-dealloc and
!             [29]-Wmismatched-new-delete warnings will complain about
!             mismatched calls, and [30]-Wfree-nonheap-object about
              deallocation calls with pointers not obtained from allocation
              functions. Additionally, the static analyzer will use these
              attributes when checking for leaks, double-frees,
              use-after-frees, and similar issues.
       * New warnings:
!           + [31]-Wmismatched-dealloc, enabled by default, warns about
              calls to deallocation functions with pointers returned from
              mismatched allocation functions.
!           + [32]-Wsizeof-array-div, enabled by -Wall, warns about
              divisions of two sizeof operators when the first one is
              applied to an array and the divisor does not equal the size of
              the array element.
!           + [33]-Wstringop-overread, enabled by default, warns about calls
              to string functions reading past the end of the arrays passed
              to them as arguments. In prior GCC releases most instances of
              his warning are diagnosed by -Wstringop-overflow.
!           + [34]-Wtsan, enabled by default, warns about unsupported
              features in ThreadSanitizer (currently
              std::atomic_thread_fence).
       * Enhancements to existing warnings:
!           + [35]-Wfree-nonheap-object detects many more instances of calls
              to deallocation functions with pointers not returned from a
              dynamic memory allocation function.
!           + [36]-Wmaybe-uninitialized diagnoses passing pointers or
              references to uninitialized memory to functions taking
              const-qualified arguments.
!           + [37]-Wuninitialized detects reads from uninitialized
              dynamically allocated memory.
       * For ELF targets that support the GNU or FreeBSD OSABIs, the used
         attribute will now save the symbol declaration it is applied to
*************** New Languages and Language specific impr
*** 3313,3319 ****
         sections.
         This functionality requires Binutils version 2.36 or later.
  
!   C
  
       * Several new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
--- 4393,4399 ----
         sections.
         This functionality requires Binutils version 2.36 or later.
  
!   [38]C
  
       * Several new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
*************** New Languages and Language specific impr
*** 3341,3358 ****
            + Labels may appear before declarations and at the end of a
              compound statement.
       * New warnings:
!           + [35]-Warray-parameter, enabled by -Wall, warns about
              redeclarations of functions with ordinary array arguments
              declared using inconsistent forms. The warning also enables
              the detection of the likely out of bounds accesses in calls to
              such functions with smaller arrays.
!           + [36]-Wvla-parameter, enabled by -Wall, warns redeclarations of
              functions with variable length array arguments declared using
              inconsistent forms or with mismatched bounds. The warning also
              enables the detection of the likely out of bounds accesses in
              calls to such functions with smaller arrays.
  
!   C++
  
       * The default mode has been changed to -std=gnu++17.
       * Several C++20 features have been implemented:
--- 4421,4438 ----
            + Labels may appear before declarations and at the end of a
              compound statement.
       * New warnings:
!           + [39]-Warray-parameter, enabled by -Wall, warns about
              redeclarations of functions with ordinary array arguments
              declared using inconsistent forms. The warning also enables
              the detection of the likely out of bounds accesses in calls to
              such functions with smaller arrays.
!           + [40]-Wvla-parameter, enabled by -Wall, warns redeclarations of
              functions with variable length array arguments declared using
              inconsistent forms or with mismatched bounds. The warning also
              enables the detection of the likely out of bounds accesses in
              calls to such functions with smaller arrays.
  
!   [41]C++
  
       * The default mode has been changed to -std=gnu++17.
       * Several C++20 features have been implemented:
*************** New Languages and Language specific impr
*** 3366,3377 ****
            + P1009R2, Array size deduction in new-expressions
            + P1099R5, using enum
            + Modules, Requires -fmodules-ts and some aspects are
!             incomplete. Refer to [37]C++ 20 Status
       * The C++ front end has experimental support for some of the upcoming
         C++23 draft features with the -std=c++23, -std=gnu++23, -std=c++2b
         or -std=gnu++2b flags, including
            + P0330R8, Literal Suffix for (signed) size_t.
!        For a full list of new features, see [38]the C++ status page.
       * Several C++ Defect Reports have been resolved, e.g.:
            + DR 625, Use of auto as a template-argument
            + DR 1512, Pointer comparison vs qualification conversions
--- 4446,4457 ----
            + P1009R2, Array size deduction in new-expressions
            + P1099R5, using enum
            + Modules, Requires -fmodules-ts and some aspects are
!             incomplete. Refer to [42]C++ 20 Status
       * The C++ front end has experimental support for some of the upcoming
         C++23 draft features with the -std=c++23, -std=gnu++23, -std=c++2b
         or -std=gnu++2b flags, including
            + P0330R8, Literal Suffix for (signed) size_t.
!        For a full list of new features, see [43]the C++ status page.
       * Several C++ Defect Reports have been resolved, e.g.:
            + DR 625, Use of auto as a template-argument
            + DR 1512, Pointer comparison vs qualification conversions
*************** New Languages and Language specific impr
*** 3384,3426 ****
            + DR 2303, Partial ordering and recursive variadic inheritance
            + DR 2369, Ordering between constraints and substitution
            + DR 2450, braced-init-list as a template-argument
!      * G++ now performs better access checking in templates ([39]PR41437).
       * reinterpret_casts in constexpr evaluation are now checked more
!        completely ([40]PR95307).
       * The diagnostic for static_assert has been improved: the compiler
         now shows the expression including its template arguments (if there
         were any), and can point to the failing clause if the condition
!        comprised of any logical AND operators ([41]PR97518).
       * New warnings:
!           + [42]-Wctad-maybe-unsupported, disabled by default, warns about
              performing class template argument deduction on a type with no
              deduction guides.
!           + [43]-Wrange-loop-construct, enabled by -Wall, warns when a
              range-based for-loop is creating unnecessary and expensive
              copies.
!           + [44]-Wdeprecated-enum-enum-conversion, enabled by default in
              C++20, warns about deprecated arithmetic conversions on
              operands of enumeration types, as outlined in
              [depr.arith.conv.enum].
!           + [45]-Wdeprecated-enum-float-conversion, enabled by default in
              C++20, warns about deprecated arithmetic conversions on
              operands where one is of enumeration type and the other is of
              a floating-point type, as outlined in [depr.arith.conv.enum].
!           + [46]-Wmismatched-new-delete, enabled by -Wall, warns about
              calls to C++ operator delete with pointers returned from
              mismatched forms of operator new or from other mismatched
              allocation functions.
!           + [47]-Wvexing-parse, enabled by default, warns about the most
              vexing parse rule: the cases when a declaration looks like a
              variable definition, but the C++ language requires it to be
              interpreted as a function declaration.
       * Enhancements to existing warnings:
!           + [48]-Wnonnull considers the implicit this argument of every
              C++ nonstatic member function to have been implicitly declared
              with attribute nonnull and triggers warnings for calls where
              the pointer is null.
  
!     Runtime Library (libstdc++)
  
       * Improved C++17 support, including:
            + std::from_chars and std::to_chars for floating-point types.
--- 4464,4506 ----
            + DR 2303, Partial ordering and recursive variadic inheritance
            + DR 2369, Ordering between constraints and substitution
            + DR 2450, braced-init-list as a template-argument
!      * G++ now performs better access checking in templates ([44]PR41437).
       * reinterpret_casts in constexpr evaluation are now checked more
!        completely ([45]PR95307).
       * The diagnostic for static_assert has been improved: the compiler
         now shows the expression including its template arguments (if there
         were any), and can point to the failing clause if the condition
!        comprised of any logical AND operators ([46]PR97518).
       * New warnings:
!           + [47]-Wctad-maybe-unsupported, disabled by default, warns about
              performing class template argument deduction on a type with no
              deduction guides.
!           + [48]-Wrange-loop-construct, enabled by -Wall, warns when a
              range-based for-loop is creating unnecessary and expensive
              copies.
!           + [49]-Wdeprecated-enum-enum-conversion, enabled by default in
              C++20, warns about deprecated arithmetic conversions on
              operands of enumeration types, as outlined in
              [depr.arith.conv.enum].
!           + [50]-Wdeprecated-enum-float-conversion, enabled by default in
              C++20, warns about deprecated arithmetic conversions on
              operands where one is of enumeration type and the other is of
              a floating-point type, as outlined in [depr.arith.conv.enum].
!           + [51]-Wmismatched-new-delete, enabled by -Wall, warns about
              calls to C++ operator delete with pointers returned from
              mismatched forms of operator new or from other mismatched
              allocation functions.
!           + [52]-Wvexing-parse, enabled by default, warns about the most
              vexing parse rule: the cases when a declaration looks like a
              variable definition, but the C++ language requires it to be
              interpreted as a function declaration.
       * Enhancements to existing warnings:
!           + [53]-Wnonnull considers the implicit this argument of every
              C++ nonstatic member function to have been implicitly declared
              with attribute nonnull and triggers warnings for calls where
              the pointer is null.
  
!     [54]Runtime Library (libstdc++)
  
       * Improved C++17 support, including:
            + std::from_chars and std::to_chars for floating-point types.
*************** New Languages and Language specific impr
*** 3441,3447 ****
         Parallelism 2 TS, thanks to Matthias Kretz.
       * Faster std::uniform_int_distribution, thanks to Daniel Lemire.
  
!   D
  
       * New features:
            + A new bottom type typeof(*null) has been added to represent
--- 4521,4527 ----
         Parallelism 2 TS, thanks to Matthias Kretz.
       * Faster std::uniform_int_distribution, thanks to Daniel Lemire.
  
!   [55]D
  
       * New features:
            + A new bottom type typeof(*null) has been added to represent
*************** New Languages and Language specific impr
*** 3563,3592 ****
            + The -fweak compiler switch has been removed, as it existed
              only for testing.
  
!   Fortran
  
       * Added DEPRECATED to !GCC$'s attributes directive.
  
!   Go
  
       * GCC 11 provides a complete implementation of the Go 1.16.3 user
         packages.
  
! libgccjit
  
!      * libgccjit was marked as merely "Alpha" quality when [49]originally
!        added in GCC 5. Given that we have maintained [50]API and ABI
         compatibility since then and it is in use by various projects, we
         have removed that caveat.
       * libgccjit can now be built for MinGW
       * The libgccjit API gained 10 new entry points:
!           + [51]gcc_jit_global_set_initializer
!           + 9 entrypoints for [52]directly embedding asm statements into a
              compile, analogous to inline asm in the C front end
  
! New Targets and Target Specific Improvements
  
!   AArch64 & arm
  
       * A number of new CPUs are supported through arguments to the -mcpu
         and -mtune options in both the arm and aarch64 back ends (GCC
--- 4643,4672 ----
            + The -fweak compiler switch has been removed, as it existed
              only for testing.
  
!   [56]Fortran
  
       * Added DEPRECATED to !GCC$'s attributes directive.
  
!   [57]Go
  
       * GCC 11 provides a complete implementation of the Go 1.16.3 user
         packages.
  
! [58]libgccjit
  
!      * libgccjit was marked as merely "Alpha" quality when [59]originally
!        added in GCC 5. Given that we have maintained [60]API and ABI
         compatibility since then and it is in use by various projects, we
         have removed that caveat.
       * libgccjit can now be built for MinGW
       * The libgccjit API gained 10 new entry points:
!           + [61]gcc_jit_global_set_initializer
!           + 9 entrypoints for [62]directly embedding asm statements into a
              compile, analogous to inline asm in the C front end
  
! [63]New Targets and Target Specific Improvements
  
!   [64]AArch64 & arm
  
       * A number of new CPUs are supported through arguments to the -mcpu
         and -mtune options in both the arm and aarch64 back ends (GCC
*************** New Targets and Target Specific Improvem
*** 3603,3609 ****
         in the Armv8.3-a (AArch64/AArch32), SVE (AArch64), SVE2 (AArch64)
         and MVE (AArch32 M-profile) instruction sets.
  
!   AArch64
  
       * In addition to the above, the following AArch64-only CPUs are now
         supported:
--- 4683,4689 ----
         in the Armv8.3-a (AArch64/AArch32), SVE (AArch64), SVE2 (AArch64)
         and MVE (AArch32 M-profile) instruction sets.
  
!   [65]AArch64
  
       * In addition to the above, the following AArch64-only CPUs are now
         supported:
*************** New Targets and Target Specific Improvem
*** 3611,3628 ****
            + Arm Cortex-R82 (cortex-r82).
       * The AArch64 Armv8-R architecture is now supported through the
         -march=armv8-r option.
!      * Mitigation against the [53]Straight-line Speculation vulnerability
         is supported with the -mharden-sls= option. Please refer to the
         documentation for usage instructions.
       * The availability of Advanced SIMD intrinsics available through the
         arm_neon.h header is improved and GCC 11 supports the full set of
         intrinsics defined by ACLE Q3 2020.
  
!   AMD Radeon (GCN)
  
       * Initial support for gfx908 GPUs has been added.
  
!   arm
  
       * Initial auto-vectorization is now available when targeting the MVE
         instruction set.
--- 4691,4708 ----
            + Arm Cortex-R82 (cortex-r82).
       * The AArch64 Armv8-R architecture is now supported through the
         -march=armv8-r option.
!      * Mitigation against the [66]Straight-line Speculation vulnerability
         is supported with the -mharden-sls= option. Please refer to the
         documentation for usage instructions.
       * The availability of Advanced SIMD intrinsics available through the
         arm_neon.h header is improved and GCC 11 supports the full set of
         intrinsics defined by ACLE Q3 2020.
  
!   [67]AMD Radeon (GCN)
  
       * Initial support for gfx908 GPUs has been added.
  
!   [68]arm
  
       * Initial auto-vectorization is now available when targeting the MVE
         instruction set.
*************** New Targets and Target Specific Improvem
*** 3632,3638 ****
         +nomve.fp to control generation of MVE and MVE floating-point
         instructions.
  
!   IA-32/x86-64
  
       * New ISA extension support for Intel TSXLDTRK was added to GCC.
         TSXLDTRK intrinsics are available via the -mtsxldtrk compiler
--- 4712,4718 ----
         +nomve.fp to control generation of MVE and MVE floating-point
         instructions.
  
!   [69]IA-32/x86-64
  
       * New ISA extension support for Intel TSXLDTRK was added to GCC.
         TSXLDTRK intrinsics are available via the -mtsxldtrk compiler
*************** New Targets and Target Specific Improvem
*** 3670,3676 ****
       * GCC now supports micro-architecture levels defined in the x86-64
         psABI via -march=x86-64-v2, -march=x86-64-v3 and -march=x86-64-v4.
  
!   Nios II
  
       * The options -mcustom-insn=N no longer produce compiler warnings if
         the custom instruction is not generated due to missing optimization
--- 4750,4756 ----
       * GCC now supports micro-architecture levels defined in the x86-64
         psABI via -march=x86-64-v2, -march=x86-64-v3 and -march=x86-64-v4.
  
!   [70]Nios II
  
       * The options -mcustom-insn=N no longer produce compiler warnings if
         the custom instruction is not generated due to missing optimization
*************** New Targets and Target Specific Improvem
*** 3681,3687 ****
         custom instructions supported by the Nios II Floating Point
         Hardware 2 Component.
  
!   NVPTX
  
       * The -misa default has changed from sm_30 to sm_35.
       * The -m32 compiler switch has been removed.
--- 4761,4767 ----
         custom instructions supported by the Nios II Floating Point
         Hardware 2 Component.
  
!   [71]NVPTX
  
       * The -misa default has changed from sm_30 to sm_35.
       * The -m32 compiler switch has been removed.
*************** New Targets and Target Specific Improvem
*** 3689,3695 ****
         it accepted -msoft-stack-reserve-local<n>. It now accepts
         -msoft-stack-reserve-local=<n>.
  
!   S/390, System z, IBM Z Systems
  
       * The behavior when compiling with -fexcess-precision=standard (e.g.,
         implied by -std=c99) on s390(x) targets can now be controlled at
--- 4769,4775 ----
         it accepted -msoft-stack-reserve-local<n>. It now accepts
         -msoft-stack-reserve-local=<n>.
  
!   [72]S/390, System z, IBM Z Systems
  
       * The behavior when compiling with -fexcess-precision=standard (e.g.,
         implied by -std=c99) on s390(x) targets can now be controlled at
*************** New Targets and Target Specific Improvem
*** 3701,3707 ****
         builds and cross compiles that have target libc headers, GCC will
         by default match the definition of float_t in the installed glibc.
  
!   RISC-V
  
       * Support address sanitizer for RISC-V.
       * Support big-endian for RISC-V, thanks to Marcus Comstedt.
--- 4781,4787 ----
         builds and cross compiles that have target libc headers, GCC will
         by default match the definition of float_t in the installed glibc.
  
!   [73]RISC-V
  
       * Support address sanitizer for RISC-V.
       * Support big-endian for RISC-V, thanks to Marcus Comstedt.
*************** New Targets and Target Specific Improvem
*** 3728,3736 ****
       * Introduce shorten_memrefs optimization, which reduces the code size
         for memory access, thanks to Craig Blackmore.
  
! Operating Systems
  
!   AIX
  
       * GCC for AIX can be built as a 64-bit application and the runtime is
         built as FAT libraries containing both 32-bit and 64-bit objects.
--- 4808,4816 ----
       * Introduce shorten_memrefs optimization, which reduces the code size
         for memory access, thanks to Craig Blackmore.
  
! [74]Operating Systems
  
!   [75]AIX
  
       * GCC for AIX can be built as a 64-bit application and the runtime is
         built as FAT libraries containing both 32-bit and 64-bit objects.
*************** Operating Systems
*** 3739,3748 ****
       * Use thread-safe access in ctype.
       * Link with libc128.a when long-double-128 enabled.
  
! Improvements to Static Analyzer
  
       * The implementation of how program state is tracked within
!        [54]-fanalyzer has been completely rewritten for GCC 11, fixing
         numerous bugs, and allowing for the analyzer to scale to larger C
         source files.
       * The analysis of allocations and deallocations has been generalized
--- 4819,4828 ----
       * Use thread-safe access in ctype.
       * Link with libc128.a when long-double-128 enabled.
  
! [76]Improvements to Static Analyzer
  
       * The implementation of how program state is tracked within
!        [77]-fanalyzer has been completely rewritten for GCC 11, fixing
         numerous bugs, and allowing for the analyzer to scale to larger C
         source files.
       * The analysis of allocations and deallocations has been generalized
*************** Improvements to Static Analyzer
*** 3750,3808 ****
            + As preliminary work towards eventually supporting C++, the
              malloc/free checking will also check new/delete and
              new[]/delete[]. However, C++ is not yet properly supported by
!             [55]-fanalyzer (for example, exception-handling is
              unimplemented).
!           + As noted above, the existing [56]malloc attribute has been
              extended so that it can be used to identify
              allocator/deallocator API pairs. The analyzer will use these
              attributes when checking for leaks, double-frees,
              use-after-frees, and similar issues.
!           + A new [57]-Wanalyzer-mismatching-deallocation warning has been
              added, covering such mismatches as using scalar delete rather
              vector delete[].
       * The analyzer has gained warnings
!        [58]-Wanalyzer-shift-count-negative,
!        [59]-Wanalyzer-shift-count-overflow, [60]-Wanalyzer-write-to-const,
!        and [61]-Wanalyzer-write-to-string-literal, all enabled by default
!        when [62]-fanalyzer is enabled.
       * The analyzer can now be extended by GCC plugins, allowing for
         domain-specific path-sensitive warnings. An example of using a
!        [63]GCC plugin to check for misuses of CPython's global interpreter
         lock can be seen in the test suite
       * The analyzer has gained new debugging options
!        [64]-fdump-analyzer-json and [65]-fno-analyzer-feasibility.
  
  Other significant improvements
  
       * GCC has gained a new environment variable
!        [66]GCC_EXTRA_DIAGNOSTIC_OUTPUT which can be used by IDEs to
         request machine-readable fix-it hints without needing to adjust
         build flags.
  
! GCC 11.1
  
!    This is the [67]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 11.2
  
!    This is the [68]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 11.3
  
!    This is the [69]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 11.4
  
!    This is the [70]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 4830,4888 ----
            + As preliminary work towards eventually supporting C++, the
              malloc/free checking will also check new/delete and
              new[]/delete[]. However, C++ is not yet properly supported by
!             [78]-fanalyzer (for example, exception-handling is
              unimplemented).
!           + As noted above, the existing [79]malloc attribute has been
              extended so that it can be used to identify
              allocator/deallocator API pairs. The analyzer will use these
              attributes when checking for leaks, double-frees,
              use-after-frees, and similar issues.
!           + A new [80]-Wanalyzer-mismatching-deallocation warning has been
              added, covering such mismatches as using scalar delete rather
              vector delete[].
       * The analyzer has gained warnings
!        [81]-Wanalyzer-shift-count-negative,
!        [82]-Wanalyzer-shift-count-overflow, [83]-Wanalyzer-write-to-const,
!        and [84]-Wanalyzer-write-to-string-literal, all enabled by default
!        when [85]-fanalyzer is enabled.
       * The analyzer can now be extended by GCC plugins, allowing for
         domain-specific path-sensitive warnings. An example of using a
!        [86]GCC plugin to check for misuses of CPython's global interpreter
         lock can be seen in the test suite
       * The analyzer has gained new debugging options
!        [87]-fdump-analyzer-json and [88]-fno-analyzer-feasibility.
  
  Other significant improvements
  
       * GCC has gained a new environment variable
!        [89]GCC_EXTRA_DIAGNOSTIC_OUTPUT which can be used by IDEs to
         request machine-readable fix-it hints without needing to adjust
         build flags.
  
! [90]GCC 11.1
  
!    This is the [91]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [92]GCC 11.2
  
!    This is the [93]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [94]GCC 11.3
  
!    This is the [95]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [96]GCC 11.4
  
!    This is the [97]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 11.4
*** 3821,3829 ****
       * Add CS prefix to call and jmp to indirect thunk with branch target
         in r8-r15 registers via -mindirect-branch-cs-prefix.
  
! GCC 11.5
  
!    This is the [71]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 4901,4909 ----
       * Add CS prefix to call and jmp to indirect thunk with branch target
         in r8-r15 registers via -mindirect-branch-cs-prefix.
  
! [98]GCC 11.5
  
!    This is the [99]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 11.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 11.5
*** 3836,3859 ****
         the compiler is configured without explicit --with-arch=,
         --with=cpu= and/or --with-tune= configure options the compiler
         without explicit -march= etc. options might act as if asked for
!        cortex-a34. This can be fixed by applying manually the [72]r12-8060
!        commit patch on top of GCC 11.5.0. See [73]PR116029 for more
!        details. GCC 11.4.0 or earlier releases are not affected.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [74]GCC manuals. If that fails, the
!     [75]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [76]gcc@gcc.gnu.org. All of [77]our lists have public
      archives.
  
!    Copyright (C) [78]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [79]maintained by the GCC team. Last modified
!    2024-07-23.
  
  References
  
--- 4916,4939 ----
         the compiler is configured without explicit --with-arch=,
         --with=cpu= and/or --with-tune= configure options the compiler
         without explicit -march= etc. options might act as if asked for
!        cortex-a34. This can be fixed by applying manually the
!        [100]r12-8060 commit patch on top of GCC 11.5.0. See [101]PR116029
!        for more details. GCC 11.4.0 or earlier releases are not affected.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [102]GCC manuals. If that fails, the
!     [103]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [104]gcc@gcc.gnu.org. All of [105]our lists have public
      archives.
  
!    Copyright (C) [106]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [107]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 3861,3941 ****
     2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://wg21.link/p0522r0
     4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html
!    5. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
!    6. https://www.kernel.org/doc/html/latest/dev-tools/kcsan.html
!    7. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-unit
!    8. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-origin
!    9. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   10. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Preprocessor-Options.html#index-ftabstop
!   11. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
!   12. https://github.com/google/sanitizers/wiki/AddressSanitizer
!   13. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
!   14. https://dwarfstd.org/doc/DWARF5.pdf
!   15. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Code-Gen-Options.html#index-fno-bit-tests
!   16. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-modref
!   17. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-ocf
!   18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values
!   19. https://www.openmp.org/specifications/
!   20. https://www.openacc.org/
!   21. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-11
!   22. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute
!   24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
!   25. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmismatched-dealloc
!   26. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
!   27. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wfree-nonheap-object
    28. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmismatched-dealloc
!   29. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wsizeof-array-div
!   30. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wstringop-overread
!   31. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wtsan
!   32. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wfree-nonheap-object
!   33. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized
!   34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized
!   35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter
!   36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter
!   37. https://gcc.gnu.org/projects/cxx-status.html#cxx20
!   38. https://gcc.gnu.org/projects/cxx-status.html#cxx23
!   39. https://gcc.gnu.org/PR41437
!   40. https://gcc.gnu.org/PR95307
!   41. https://gcc.gnu.org/PR97518
!   42. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wctad-maybe-unsupported
!   43. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wrange-loop-construct
!   44. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-enum-conversion
!   45. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-float-conversion
!   46. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
!   47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse
!   48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull
!   49. https://gcc.gnu.org/gcc-5/changes.html#jit
!   50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html
!   51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer
!   52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html
!   53. https://developer.arm.com/documentation/102587/0102/Straight-line-speculation-frequently-asked-questions
!   54. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   55. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   56. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
!   57. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-mismatching-deallocation
!   58. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-negative
!   59. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-overflow
!   60. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const
!   61. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal
!   62. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   63. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=66dde7bc64b75d4a338266333c9c490b12d49825
!   64. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-fdump-analyzer-json
!   65. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-fno-analyzer-feasibility
!   66. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Environment-Variables.html#index-GCC_005fEXTRA_005fDIAGNOSTIC_005fOUTPUT
!   67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0
!   68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2
!   69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3
!   70. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.4
!   71. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.5
!   72. https://gcc.gnu.org/r12-8060
!   73. https://gcc.gnu.org/PR116029
!   74. https://gcc.gnu.org/onlinedocs/
!   75. mailto:gcc-help@gcc.gnu.org
!   76. mailto:gcc@gcc.gnu.org
!   77. https://gcc.gnu.org/lists.html
!   78. https://www.fsf.org/
!   79. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/index.html
                               GCC 10 Release Series
--- 4941,5049 ----
     2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://wg21.link/p0522r0
     4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html
!    5. https://gcc.gnu.org/gcc-11/changes.html#general
!    6. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
!    7. https://www.kernel.org/doc/html/latest/dev-tools/kcsan.html
!    8. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-unit
!    9. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-origin
!   10. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   11. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Preprocessor-Options.html#index-ftabstop
!   12. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
!   13. https://github.com/google/sanitizers/wiki/AddressSanitizer
!   14. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
!   15. https://dwarfstd.org/doc/DWARF5.pdf
!   16. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Code-Gen-Options.html#index-fno-bit-tests
!   17. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-modref
!   18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-ocf
!   19. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values
!   20. https://gcc.gnu.org/gcc-11/changes.html#languages
!   21. https://www.openmp.org/specifications/
!   22. https://www.openacc.org/
!   23. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-11
!   24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html
!   25. https://gcc.gnu.org/gcc-11/changes.html#c-family
!   26. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute
!   27. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
    28. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmismatched-dealloc
!   29. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
!   30. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wfree-nonheap-object
!   31. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmismatched-dealloc
!   32. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wsizeof-array-div
!   33. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wstringop-overread
!   34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wtsan
!   35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wfree-nonheap-object
!   36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized
!   37. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized
!   38. https://gcc.gnu.org/gcc-11/changes.html#c
!   39. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter
!   40. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter
!   41. https://gcc.gnu.org/gcc-11/changes.html#cxx
!   42. https://gcc.gnu.org/projects/cxx-status.html#cxx20
!   43. https://gcc.gnu.org/projects/cxx-status.html#cxx23
!   44. https://gcc.gnu.org/PR41437
!   45. https://gcc.gnu.org/PR95307
!   46. https://gcc.gnu.org/PR97518
!   47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wctad-maybe-unsupported
!   48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wrange-loop-construct
!   49. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-enum-conversion
!   50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-float-conversion
!   51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
!   52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse
!   53. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull
!   54. https://gcc.gnu.org/gcc-11/changes.html#libstdcxx
!   55. https://gcc.gnu.org/gcc-11/changes.html#d
!   56. https://gcc.gnu.org/gcc-11/changes.html#fortran
!   57. https://gcc.gnu.org/gcc-11/changes.html#go
!   58. https://gcc.gnu.org/gcc-11/changes.html#jit
!   59. https://gcc.gnu.org/gcc-5/changes.html#jit
!   60. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html
!   61. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer
!   62. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html
!   63. https://gcc.gnu.org/gcc-11/changes.html#targets
!   64. https://gcc.gnu.org/gcc-11/changes.html#arm-targets
!   65. https://gcc.gnu.org/gcc-11/changes.html#aarch64
!   66. https://developer.arm.com/documentation/102587/0102/Straight-line-speculation-frequently-asked-questions
!   67. https://gcc.gnu.org/gcc-11/changes.html#amdgcn
!   68. https://gcc.gnu.org/gcc-11/changes.html#arm
!   69. https://gcc.gnu.org/gcc-11/changes.html#x86
!   70. https://gcc.gnu.org/gcc-11/changes.html#nios2
!   71. https://gcc.gnu.org/gcc-11/changes.html#nvptx
!   72. https://gcc.gnu.org/gcc-11/changes.html#s390
!   73. https://gcc.gnu.org/gcc-11/changes.html#riscv
!   74. https://gcc.gnu.org/gcc-11/changes.html#os
!   75. https://gcc.gnu.org/gcc-11/changes.html#aix
!   76. https://gcc.gnu.org/gcc-11/changes.html#analyzer
!   77. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   78. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   79. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
!   80. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-mismatching-deallocation
!   81. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-negative
!   82. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-overflow
!   83. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const
!   84. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal
!   85. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
!   86. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=66dde7bc64b75d4a338266333c9c490b12d49825
!   87. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-fdump-analyzer-json
!   88. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html#index-fno-analyzer-feasibility
!   89. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Environment-Variables.html#index-GCC_005fEXTRA_005fDIAGNOSTIC_005fOUTPUT
!   90. https://gcc.gnu.org/gcc-11/changes.html#11.1
!   91. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0
!   92. https://gcc.gnu.org/gcc-11/changes.html#11.2
!   93. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2
!   94. https://gcc.gnu.org/gcc-11/changes.html#11.3
!   95. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3
!   96. https://gcc.gnu.org/gcc-11/changes.html#11.4
!   97. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.4
!   98. https://gcc.gnu.org/gcc-11/changes.html#11.5
!   99. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.5
!  100. https://gcc.gnu.org/r12-8060
!  101. https://gcc.gnu.org/PR116029
!  102. https://gcc.gnu.org/onlinedocs/
!  103. mailto:gcc-help@gcc.gnu.org
!  104. mailto:gcc@gcc.gnu.org
!  105. https://gcc.gnu.org/lists.html
!  106. https://www.fsf.org/
!  107. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/index.html
                               GCC 10 Release Series
*************** Caveats
*** 4061,4091 ****
         std::istreambuf_iterator was changed in C++98 mode to be consistent
         with C++11 and later standards. See the [5]libstdc++ notes below
         for more details.
  
! General Improvements
  
       * New built-in functions:
!           + The [6]__has_builtin built-in preprocessor operator can be
              used to query support for built-in functions provided by GCC
              and other compilers that support it.
            + __builtin_roundeven for the corresponding function from
              ISO/IEC TS 18661.
       * New command-line options:
!           + [7]-fallocation-dce removes unneeded pairs of new and delete
              operators.
!           + [8]-fprofile-partial-training can now be used to inform the
              compiler that code paths not covered by the training run
              should not be optimized for size.
!           + [9]-fprofile-reproducible controls level of reproducibility of
!             profile gathered by [10]-fprofile-generate. This makes it
              possible to rebuild program with same outcome which is useful,
              for example, for distribution packages.
!           + [11]-fprofile-prefix-path can be used in combination with
              -fprofile-generate=profile_dir and -fprofile-use=profile_dir
              to inform GCC where the base directory of build source tree is
              in case it differs between instrumentation and optimized
              builds.
!           + [12]-fanalyzer enables a new static analysis pass and
              associated warnings. This pass performs a time-consuming
              exploration of paths through the code in the hope of detecting
              various common errors, such as double-free bugs. This option
--- 5169,5201 ----
         std::istreambuf_iterator was changed in C++98 mode to be consistent
         with C++11 and later standards. See the [5]libstdc++ notes below
         for more details.
+      * GCC 10.5 does not bootstrap with a C++98 compiler; if you need to
+        start from C++98, you should build 10.4 or 9.5 instead.
  
! [6]General Improvements
  
       * New built-in functions:
!           + The [7]__has_builtin built-in preprocessor operator can be
              used to query support for built-in functions provided by GCC
              and other compilers that support it.
            + __builtin_roundeven for the corresponding function from
              ISO/IEC TS 18661.
       * New command-line options:
!           + [8]-fallocation-dce removes unneeded pairs of new and delete
              operators.
!           + [9]-fprofile-partial-training can now be used to inform the
              compiler that code paths not covered by the training run
              should not be optimized for size.
!           + [10]-fprofile-reproducible controls level of reproducibility
!             of profile gathered by [11]-fprofile-generate. This makes it
              possible to rebuild program with same outcome which is useful,
              for example, for distribution packages.
!           + [12]-fprofile-prefix-path can be used in combination with
              -fprofile-generate=profile_dir and -fprofile-use=profile_dir
              to inform GCC where the base directory of build source tree is
              in case it differs between instrumentation and optimized
              builds.
!           + [13]-fanalyzer enables a new static analysis pass and
              associated warnings. This pass performs a time-consuming
              exploration of paths through the code in the hope of detecting
              various common errors, such as double-free bugs. This option
*************** General Improvements
*** 4095,4101 ****
            + The inter-procedural scalar replacement of aggregates
              (IPA-SRA) pass was re-implemented to work at link-time and can
              now also remove computing and returning unused return values.
!           + [13]-finline-functions is now enabled at -O2 and was retuned
              for better code size versus runtime performance trade-offs.
              Inliner heuristics was also significantly sped up to avoid
              negative impact to -flto -O2 compile times.
--- 5205,5211 ----
            + The inter-procedural scalar replacement of aggregates
              (IPA-SRA) pass was re-implemented to work at link-time and can
              now also remove computing and returning unused return values.
!           + [14]-finline-functions is now enabled at -O2 and was retuned
              for better code size versus runtime performance trade-offs.
              Inliner heuristics was also significantly sped up to avoid
              negative impact to -flto -O2 compile times.
*************** General Improvements
*** 4105,4116 ****
            + During link-time optimization the C++ One Definition Rule is
              used to increase precision of type based alias analysis.
       * Link-time optimization improvements:
!           + A new binary [14]lto-dump has been added. It dumps various
              information about LTO bytecode object files.
            + The parallel phase of the LTO can automatically detect a
              running make's jobserver or fall back to number of available
              cores.
!           + The LTO bytecode can be compressed with the [15]zstd
              algorithm. The configure script automatically detects zstd
              support.
            + Most --param values can now be specified at translation unit
--- 5215,5226 ----
            + During link-time optimization the C++ One Definition Rule is
              used to increase precision of type based alias analysis.
       * Link-time optimization improvements:
!           + A new binary [15]lto-dump has been added. It dumps various
              information about LTO bytecode object files.
            + The parallel phase of the LTO can automatically detect a
              running make's jobserver or fall back to number of available
              cores.
!           + The LTO bytecode can be compressed with the [16]zstd
              algorithm. The configure script automatically detects zstd
              support.
            + Most --param values can now be specified at translation unit
*************** General Improvements
*** 4123,4149 ****
       * Profile driven optimization improvements:
            + Profile maintenance during compilation and hot/cold code
              partitioning have been improved.
!           + Using [16]-fprofile-values, an instrumented binary can track
              multiple values (up to 4) for e.g. indirect calls and provide
              more precise profile information.
  
! New Languages and Language-Specific Improvements
  
!      * Version 2.6 of the [17]OpenACC specification is now supported by
!        the C, C++ and Fortran compilers. See the [18]implementation status
!        section on the OpenACC wiki page and the [19]run-time library
         documentation for further information.
!      * GCC 10 adds a number of newly implemented [20]OpenMP 5.0 features
         such as conditional lastprivate clause, scan and loop directives,
         order(concurrent) and use_device_addr clauses support, if clause on
         simd construct, and partial support for the declare variant
         directive, getting closer to full support of the OpenMP 5.0
         standard.
!      * OpenMP and OpenACC now support [21]offloading to AMD Radeon (GCN)
         GPUs; supported are the third-generation Fiji (fiji) and the
         fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906).
  
!   C family
  
       * New attributes:
            + The access function and type attribute has been added to
--- 5233,5259 ----
       * Profile driven optimization improvements:
            + Profile maintenance during compilation and hot/cold code
              partitioning have been improved.
!           + Using [17]-fprofile-values, an instrumented binary can track
              multiple values (up to 4) for e.g. indirect calls and provide
              more precise profile information.
  
! [18]New Languages and Language-Specific Improvements
  
!      * Version 2.6 of the [19]OpenACC specification is now supported by
!        the C, C++ and Fortran compilers. See the [20]implementation status
!        section on the OpenACC wiki page and the [21]run-time library
         documentation for further information.
!      * GCC 10 adds a number of newly implemented [22]OpenMP 5.0 features
         such as conditional lastprivate clause, scan and loop directives,
         order(concurrent) and use_device_addr clauses support, if clause on
         simd construct, and partial support for the declare variant
         directive, getting closer to full support of the OpenMP 5.0
         standard.
!      * OpenMP and OpenACC now support [23]offloading to AMD Radeon (GCN)
         GPUs; supported are the third-generation Fiji (fiji) and the
         fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906).
  
!   [24]C family
  
       * New attributes:
            + The access function and type attribute has been added to
*************** New Languages and Language-Specific Impr
*** 4158,4189 ****
              inline assembly with GNU as symver directive because the
              latter is not compatible with link-time optimizations.
       * New warnings:
!           + [22]-Wstring-compare, enabled by -Wextra, warns about equality
              and inequality expressions between zero and the result of a
              call to either strcmp and strncmp that evaluate to a constant
              as a result of the length of one argument being greater than
              the size of the array pointed to by the other.
!           + [23]-Wzero-length-bounds, enabled by -Warray-bounds, warns
              about accesses to elements of zero-length arrays that might
              overlap other members of the same object.
       * Enhancements to existing warnings:
!           + [24]-Warray-bounds detects more out-of-bounds accesses to
              member arrays as well as accesses to elements of zero-length
              arrays.
!           + [25]-Wformat-overflow makes full use of string length
              information computed by the strlen optimization pass.
!           + [26]-Wrestrict detects overlapping accesses to dynamically
              allocated objects.
!           + [27]-Wreturn-local-addr diagnoses more instances of return
              statements returning addresses of automatic variables.
!           + [28]-Wstringop-overflow detects more out-of-bounds stores to
              member arrays including zero-length arrays, dynamically
              allocated objects and variable length arrays, as well as more
              instances of reads of unterminated character arrays by string
              built-in functions. The warning also detects out-of-bounds
              accesses by calls to user-defined functions declared with the
              new attribute access.
!           + [29]-Warith-conversion re-enables warnings from -Wconversion,
              -Wfloat-conversion, and -Wsign-conversion that are now off by
              default for an expression where the result of an arithmetic
              operation will not fit in the target type due to promotion,
--- 5268,5299 ----
              inline assembly with GNU as symver directive because the
              latter is not compatible with link-time optimizations.
       * New warnings:
!           + [25]-Wstring-compare, enabled by -Wextra, warns about equality
              and inequality expressions between zero and the result of a
              call to either strcmp and strncmp that evaluate to a constant
              as a result of the length of one argument being greater than
              the size of the array pointed to by the other.
!           + [26]-Wzero-length-bounds, enabled by -Warray-bounds, warns
              about accesses to elements of zero-length arrays that might
              overlap other members of the same object.
       * Enhancements to existing warnings:
!           + [27]-Warray-bounds detects more out-of-bounds accesses to
              member arrays as well as accesses to elements of zero-length
              arrays.
!           + [28]-Wformat-overflow makes full use of string length
              information computed by the strlen optimization pass.
!           + [29]-Wrestrict detects overlapping accesses to dynamically
              allocated objects.
!           + [30]-Wreturn-local-addr diagnoses more instances of return
              statements returning addresses of automatic variables.
!           + [31]-Wstringop-overflow detects more out-of-bounds stores to
              member arrays including zero-length arrays, dynamically
              allocated objects and variable length arrays, as well as more
              instances of reads of unterminated character arrays by string
              built-in functions. The warning also detects out-of-bounds
              accesses by calls to user-defined functions declared with the
              new attribute access.
!           + [32]-Warith-conversion re-enables warnings from -Wconversion,
              -Wfloat-conversion, and -Wsign-conversion that are now off by
              default for an expression where the result of an arithmetic
              operation will not fit in the target type due to promotion,
*************** int get_naïve_pi() {
*** 4197,4203 ****
    return π;
  }
  
!   C
  
       * Several new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
--- 5307,5313 ----
    return π;
  }
  
!   [33]C
  
       * Several new features from the upcoming C2X revision of the ISO C
         standard are supported with -std=c2x and -std=gnu2x. Some of these
*************** int get_naïve_pi() {
*** 4231,4237 ****
         errors. With -fcommon such definitions are silently merged during
         linking.
  
!   C++
  
       * Several C++20 features have been implemented:
            + Concepts, including P0734R0, P0857R0, P1084R2, P1141R2,
--- 5341,5347 ----
         errors. With -fcommon such definitions are silently merged during
         linking.
  
!   [34]C++
  
       * Several C++20 features have been implemented:
            + Concepts, including P0734R0, P0857R0, P1084R2, P1141R2,
*************** int get_naïve_pi() {
*** 4268,4280 ****
              initializer-list
            + DR 1710, Missing template keyword in class-or-decltype
       * New warnings:
!           + [30]-Wmismatched-tags, disabled by default, warns about
              declarations of structs, classes, and class templates and
              their specializations with a class-key that does not match
              either the definition or the first declaration if no
              definition is provided. The option is provided to ease
              portability to Windows-based compilers.
!           + [31]-Wredundant-tags, disabled by default, warns about
              redundant class-key and enum-key in contexts where the key can
              be eliminated without causing an syntactic ambiguity.
       * G++ can now detect modifying constant objects in constexpr
--- 5378,5390 ----
              initializer-list
            + DR 1710, Missing template keyword in class-or-decltype
       * New warnings:
!           + [35]-Wmismatched-tags, disabled by default, warns about
              declarations of structs, classes, and class templates and
              their specializations with a class-key that does not match
              either the definition or the first declaration if no
              definition is provided. The option is provided to ease
              portability to Windows-based compilers.
!           + [36]-Wredundant-tags, disabled by default, warns about
              redundant class-key and enum-key in contexts where the key can
              be eliminated without causing an syntactic ambiguity.
       * G++ can now detect modifying constant objects in constexpr
*************** int get_naïve_pi() {
*** 4288,4295 ****
         context as per [class.mem].
       * The attribute deprecated can now be used on namespaces too.
       * The ABI of passing and returning certain C++ classes by value
!        changed on several targets in GCC 10, including [32]AArch64,
!        [33]ARM, [34]PowerPC ELFv2, [35]S/390 and [36]Itanium. These
         changes affect classes with a zero-sized subobject (an empty base
         class, or data member with the [[no_unique_address]] attribute)
         where all other non-static data members have the same type (this is
--- 5398,5405 ----
         context as per [class.mem].
       * The attribute deprecated can now be used on namespaces too.
       * The ABI of passing and returning certain C++ classes by value
!        changed on several targets in GCC 10, including [37]AArch64,
!        [38]ARM, [39]PowerPC ELFv2, [40]S/390 and [41]Itanium. These
         changes affect classes with a zero-sized subobject (an empty base
         class, or data member with the [[no_unique_address]] attribute)
         where all other non-static data members have the same type (this is
*************** int get_naïve_pi() {
*** 4309,4315 ****
         the ABI argument passing decisions as they should be. Both of these
         ABI changes are now diagnosed with -Wpsabi.
  
!     Runtime Library (libstdc++)
  
       * Improved experimental C++2a support, including:
            + Library concepts in <concepts> and <iterator>.
--- 5419,5425 ----
         the ABI argument passing decisions as they should be. Both of these
         ABI changes are now diagnosed with -Wpsabi.
  
!     [42]Runtime Library (libstdc++)
  
       * Improved experimental C++2a support, including:
            + Library concepts in <concepts> and <iterator>.
*************** int get_naïve_pi() {
*** 4337,4345 ****
         subobjects of type std::istreambuf_iterator<C> and another iterator
         type with a std::iterator<input_iterator_tag, C, ...> base class.
         The layout of such a type might change when compiled as C++98.
!        [37]Bug 92285 has more details and concrete examples.
  
!   D
  
       * Support for static foreach has been implemented.
       * Aliases can now be created directly from any __traits that return
--- 5447,5455 ----
         subobjects of type std::istreambuf_iterator<C> and another iterator
         type with a std::iterator<input_iterator_tag, C, ...> base class.
         The layout of such a type might change when compiled as C++98.
!        [43]Bug 92285 has more details and concrete examples.
  
!   [44]D
  
       * Support for static foreach has been implemented.
       * Aliases can now be created directly from any __traits that return
*************** int get_naïve_pi() {
*** 4365,4373 ****
         whether to build only the core D runtime library, or both the core
         and standard libraries into libphobos.
  
!   Fortran
  
!      * use_device_addr of version 5.0 of the [38]OpenMP specification is
         now supported. Note that otherwise OpenMP 4.5 is partially
         supported in the Fortran compiler; the largest missing item is
         structure element mapping.
--- 5475,5483 ----
         whether to build only the core D runtime library, or both the core
         and standard libraries into libphobos.
  
!   [45]Fortran
  
!      * use_device_addr of version 5.0 of the [46]OpenMP specification is
         now supported. Note that otherwise OpenMP 4.5 is partially
         supported in the Fortran compiler; the largest missing item is
         structure element mapping.
*************** int get_naïve_pi() {
*** 4426,4447 ****
         change therefore breaks the ABI, but only for cases where this 126
         character limit was exceeded.
  
!   Go
  
       * GCC 10 provides a complete implementation of the Go 1.14.6 user
         packages.
  
! libgccjit
  
       * The libgccjit API gained four new entry points:
!           + [39]gcc_jit_version_major, [40]gcc_jit_version_minor, and
!             [41]gcc_jit_version_patchlevel for programmatically checking
              the libgccjit version from client code, and
!           + [42]gcc_jit_context_new_bitfield
  
! New Targets and Target Specific Improvements
  
!   AArch64 & arm
  
       * The AArch64 and arm ports now support condition flag output
         constraints in inline assembly, as indicated by the
--- 5536,5557 ----
         change therefore breaks the ABI, but only for cases where this 126
         character limit was exceeded.
  
!   [47]Go
  
       * GCC 10 provides a complete implementation of the Go 1.14.6 user
         packages.
  
! [48]libgccjit
  
       * The libgccjit API gained four new entry points:
!           + [49]gcc_jit_version_major, [50]gcc_jit_version_minor, and
!             [51]gcc_jit_version_patchlevel for programmatically checking
              the libgccjit version from client code, and
!           + [52]gcc_jit_context_new_bitfield
  
! [53]New Targets and Target Specific Improvements
  
!   [54]AArch64 & arm
  
       * The AArch64 and arm ports now support condition flag output
         constraints in inline assembly, as indicated by the
*************** New Targets and Target Specific Improvem
*** 4449,4455 ****
         A32 and T32 targets. Please refer to the documentation for more
         details.
  
!   AArch64
  
       * There have been several improvements related to the Scalable Vector
         Extension (SVE):
--- 5559,5565 ----
         A32 and T32 targets. Please refer to the documentation for more
         details.
  
!   [55]AArch64
  
       * There have been several improvements related to the Scalable Vector
         Extension (SVE):
*************** typedef svbool_t pred512 __attribute__((
*** 4534,4540 ****
         options, for example: -mcpu=cortex-a77 or -mtune=cortex-a65ae or as
         arguments to the equivalent target attributes and pragmas.
  
!   arm
  
       * Support for the FDPIC ABI has been added. It uses 64-bit function
         descriptors to represent pointers to functions, and enables code
--- 5644,5650 ----
         options, for example: -mcpu=cortex-a77 or -mtune=cortex-a65ae or as
         arguments to the equivalent target attributes and pragmas.
  
!   [56]arm
  
       * Support for the FDPIC ABI has been added. It uses 64-bit function
         descriptors to represent pointers to functions, and enables code
*************** typedef svbool_t pred512 __attribute__((
*** 4555,4575 ****
            + Arm Cortex-M55 (cortex-m55).
         The GCC identifiers can be used as arguments to the -mcpu or -mtune
         options, for example: -mcpu=cortex-a77 or -mtune=cortex-m35p.
!      * Support has been extended for the ACLE [43]data-processing
         intrinsics to include 32-bit SIMD, saturating arithmetic, 16-bit
         multiplication and other related intrinsics aimed at DSP algorithm
         optimization.
       * Support for -mpure-code in Thumb-1 (v6m) has been added: this
         M-profile feature is no longer restricted to targets with MOVT. For
         example, -mcpu=cortex-m0 now supports this option.
!      * Support for the [44]Armv8.1-M Mainline Architecture has been added.
            + Armv8.1-M Mainline can be enabled by using the
              -march=armv8.1-m.main command-line option.
!      * Support for the [45]MVE beta ACLE intrinsics has been added. These
         intrinsics can be enabled by including the arm_mve.h header file
         and passing the +mve or +mve.fp option extensions (for example:
         -march=armv8.1-m.main+mve).
!      * Support for the Custom Datapath Extension beta ACLE [46]intrinsics
         has been added.
       * Support for Armv8.1-M Mainline Security Extensions architecture has
         been added. The -mcmse option, when used in combination with an
--- 5665,5685 ----
            + Arm Cortex-M55 (cortex-m55).
         The GCC identifiers can be used as arguments to the -mcpu or -mtune
         options, for example: -mcpu=cortex-a77 or -mtune=cortex-m35p.
!      * Support has been extended for the ACLE [57]data-processing
         intrinsics to include 32-bit SIMD, saturating arithmetic, 16-bit
         multiplication and other related intrinsics aimed at DSP algorithm
         optimization.
       * Support for -mpure-code in Thumb-1 (v6m) has been added: this
         M-profile feature is no longer restricted to targets with MOVT. For
         example, -mcpu=cortex-m0 now supports this option.
!      * Support for the [58]Armv8.1-M Mainline Architecture has been added.
            + Armv8.1-M Mainline can be enabled by using the
              -march=armv8.1-m.main command-line option.
!      * Support for the [59]MVE beta ACLE intrinsics has been added. These
         intrinsics can be enabled by including the arm_mve.h header file
         and passing the +mve or +mve.fp option extensions (for example:
         -march=armv8.1-m.main+mve).
!      * Support for the Custom Datapath Extension beta ACLE [60]intrinsics
         has been added.
       * Support for Armv8.1-M Mainline Security Extensions architecture has
         been added. The -mcmse option, when used in combination with an
*************** typedef svbool_t pred512 __attribute__((
*** 4577,4588 ****
         -mcmse), now leads to the generation of improved code sequences
         when changing security states.
  
!   AMD Radeon (GCN)
  
       * Code generation and in particular vectorization support have been
         much improved.
  
!   ARC
  
       * The interrupt service routine functions save all used registers,
         including extension registers and auxiliary registers used by Zero
--- 5687,5698 ----
         -mcmse), now leads to the generation of improved code sequences
         when changing security states.
  
!   [61]AMD Radeon (GCN)
  
       * Code generation and in particular vectorization support have been
         much improved.
  
!   [62]ARC
  
       * The interrupt service routine functions save all used registers,
         including extension registers and auxiliary registers used by Zero
*************** typedef svbool_t pred512 __attribute__((
*** 4595,4601 ****
       * Remove -mq-class option.
       * Improve 64-bit integer addition and subtraction operations.
  
!   AVR
  
       * Support for the XMEGA-like devices
  
--- 5705,5711 ----
       * Remove -mq-class option.
       * Improve 64-bit integer addition and subtraction operations.
  
!   [63]AVR
  
       * Support for the XMEGA-like devices
  
*************** typedef svbool_t pred512 __attribute__((
*** 4608,4614 ****
         to provide a custom device-specs file by means of
  
       avr-gcc -nodevicespecs -specs=my-spec-file <options>
!        and without the need to provide options -B and -mmcu=. See [47]AVR
         command-line options for details. This feature is also available in
         GCC 9.3+ and GCC 8.4+.
       * New command-line options -mdouble=[32,64] and -mlong-double=[32,64]
--- 5718,5724 ----
         to provide a custom device-specs file by means of
  
       avr-gcc -nodevicespecs -specs=my-spec-file <options>
!        and without the need to provide options -B and -mmcu=. See [64]AVR
         command-line options for details. This feature is also available in
         GCC 9.3+ and GCC 8.4+.
       * New command-line options -mdouble=[32,64] and -mlong-double=[32,64]
*************** typedef svbool_t pred512 __attribute__((
*** 4616,4630 ****
         double and long double types, respectively. Whether or not the
         mentioned layouts are available, whether the options act as a
         multilib option, and the default for either option are controlled
!        by the new [48]AVR configure options --with-double= and
         --with-long-double=.
       * A new configure option --with-libf7= has been added. It controls to
         which level avr-libgcc provides 64-bit floating point support by
!        means of [49]Libf7.
       * A new configure option --with-double-comparison= has been added.
         It's unlikely you need to set this option by hand.
  
!   IA-32/x86-64
  
       * Support to expand __builtin_roundeven into the appropriate SSE 4.1
         instruction has been added.
--- 5726,5740 ----
         double and long double types, respectively. Whether or not the
         mentioned layouts are available, whether the options act as a
         multilib option, and the default for either option are controlled
!        by the new [65]AVR configure options --with-double= and
         --with-long-double=.
       * A new configure option --with-libf7= has been added. It controls to
         which level avr-libgcc provides 64-bit floating point support by
!        means of [66]Libf7.
       * A new configure option --with-double-comparison= has been added.
         It's unlikely you need to set this option by hand.
  
!   [67]IA-32/x86-64
  
       * Support to expand __builtin_roundeven into the appropriate SSE 4.1
         instruction has been added.
*************** typedef svbool_t pred512 __attribute__((
*** 4637,4643 ****
         -march=tigerlake. The switch enables the MOVDIRI MOVDIR64B
         AVX512VP2INTERSECT ISA extensions.
  
!   MIPS
  
       * The mips*-*-linux* targets now mark object files with appropriate
         GNU-stack note, facilitating use of non-executable stack hardening
--- 5747,5753 ----
         -march=tigerlake. The switch enables the MOVDIRI MOVDIR64B
         AVX512VP2INTERSECT ISA extensions.
  
!   [68]MIPS
  
       * The mips*-*-linux* targets now mark object files with appropriate
         GNU-stack note, facilitating use of non-executable stack hardening
*************** typedef svbool_t pred512 __attribute__((
*** 4646,4655 ****
         configured with --with-glibc-version=2.31 against glibc 2.31 or
         later.
  
!   PowerPC / PowerPC64 / RS6000
  
       * Many vector builtins have been listed as deprecated in the
!        [50]64-Bit ELF V2 ABI Specification for quite a number of years.
         The vector builtins listed in Tables A.8 through A.10 are now
         deprecated for GCC 10, and will likely be removed from support in
         GCC 11. Note that this does not result in any loss of function.
--- 5756,5765 ----
         configured with --with-glibc-version=2.31 against glibc 2.31 or
         later.
  
!   [69]PowerPC / PowerPC64 / RS6000
  
       * Many vector builtins have been listed as deprecated in the
!        [70]64-Bit ELF V2 ABI Specification for quite a number of years.
         The vector builtins listed in Tables A.8 through A.10 are now
         deprecated for GCC 10, and will likely be removed from support in
         GCC 11. Note that this does not result in any loss of function.
*************** typedef svbool_t pred512 __attribute__((
*** 4660,4676 ****
         will be unlikely to affect much if any code, and any required code
         changes will be trivial.
  
!   PRU
  
       * A new back end targeting TI PRU I/O processors has been contributed
         to GCC.
  
!   RISC-V
  
       * The riscv*-*-* targets now require GNU binutils version 2.30 or
         later, to support new assembly instructions produced by GCC.
  
!   V850
  
       * The ABI for V850 nested functions has been changed. Previously the
         V850 port used %r20 for the static chain pointer, now the port uses
--- 5770,5786 ----
         will be unlikely to affect much if any code, and any required code
         changes will be trivial.
  
!   [71]PRU
  
       * A new back end targeting TI PRU I/O processors has been contributed
         to GCC.
  
!   [72]RISC-V
  
       * The riscv*-*-* targets now require GNU binutils version 2.30 or
         later, to support new assembly instructions produced by GCC.
  
!   [73]V850
  
       * The ABI for V850 nested functions has been changed. Previously the
         V850 port used %r20 for the static chain pointer, now the port uses
*************** typedef svbool_t pred512 __attribute__((
*** 4678,4695 ****
         where a call to a nested function would unexpectedly change the
         value in %r20.
  
! Operating Systems
  
! Improvements for plugin authors
  
       * GCC diagnostics can now have a chain of events associated with
         them, describing a path through the code that triggers the problem.
         These can be printed by the diagnostics subsystem in various ways,
!        controlled by the [51]-fdiagnostics-path-format option, or captured
!        in JSON form via [52]-fdiagnostics-format=json.
!      * GCC diagnostics can now be associated with [53]CWE weakness
         identifiers, which will appear on the standard error stream, and in
!        the JSON output from [54]-fdiagnostics-format=json.
  
  Other significant improvements
  
--- 5788,5805 ----
         where a call to a nested function would unexpectedly change the
         value in %r20.
  
! [74]Operating Systems
  
! [75]Improvements for plugin authors
  
       * GCC diagnostics can now have a chain of events associated with
         them, describing a path through the code that triggers the problem.
         These can be printed by the diagnostics subsystem in various ways,
!        controlled by the [76]-fdiagnostics-path-format option, or captured
!        in JSON form via [77]-fdiagnostics-format=json.
!      * GCC diagnostics can now be associated with [78]CWE weakness
         identifiers, which will appear on the standard error stream, and in
!        the JSON output from [79]-fdiagnostics-format=json.
  
  Other significant improvements
  
*************** Other significant improvements
*** 4701,4728 ****
       * For many releases, when GCC emits a warning it prints the option
         controlling that warning. As of GCC 10, that option text is now a
         clickable hyperlink for the documentation of that option (assuming
!        a [55]sufficiently capable terminal). This behavior can be
!        controlled via a new [56]-fdiagnostics-urls option (along with
         various environment variables and heuristics documented with that
         option).
  
  GCC 10.1
  
!    This is the [57]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 10.2
  
!    This is the [58]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 10.3
  
!    This is the [59]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 5811,5838 ----
       * For many releases, when GCC emits a warning it prints the option
         controlling that warning. As of GCC 10, that option text is now a
         clickable hyperlink for the documentation of that option (assuming
!        a [80]sufficiently capable terminal). This behavior can be
!        controlled via a new [81]-fdiagnostics-urls option (along with
         various environment variables and heuristics documented with that
         option).
  
  GCC 10.1
  
!    This is the [82]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [83]GCC 10.2
  
!    This is the [84]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [85]GCC 10.3
  
!    This is the [86]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 10.3
*** 4747,4755 ****
       * GCC 10.3 supports AMD CPUs based on the znver3 core via
         -march=znver3.
  
! GCC 10.4
  
!    This is the [60]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 5857,5865 ----
       * GCC 10.3 supports AMD CPUs based on the znver3 core via
         -march=znver3.
  
! [87]GCC 10.4
  
!    This is the [88]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 10.4
*** 4763,4789 ****
         MMX no longer changes how they are passed nor returned. This ABI
         change is now diagnosed with -Wpsabi.
  
! GCC 10.5
  
!    This is the [61]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [62]GCC manuals. If that fails, the
!     [63]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [64]gcc@gcc.gnu.org. All of [65]our lists have public
      archives.
  
!    Copyright (C) [66]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [67]maintained by the GCC team. Last modified
!    2023-07-07.
  
  References
  
--- 5873,5899 ----
         MMX no longer changes how they are passed nor returned. This ABI
         change is now diagnosed with -Wpsabi.
  
! [89]GCC 10.5
  
!    This is the [90]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 10.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [91]GCC manuals. If that fails, the
!     [92]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [93]gcc@gcc.gnu.org. All of [94]our lists have public
      archives.
  
!    Copyright (C) [95]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [96]maintained by the GCC team. Last modified
!    2025-03-21.
  
  References
  
*************** References
*** 4792,4859 ****
     3. https://gcc.gnu.org/gcc-10/changes.html#empty_base
     4. https://www.mpfr.org/
     5. https://gcc.gnu.org/gcc-10/changes.html#iterator_base
!    6. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin
!    7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce
!    8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training
!    9. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-reproducible
!   10. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-generate
!   11. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-prefix-path
!   12. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Static-Analyzer-Options.html
!   13. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-finline-functions
!   14. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/lto-dump.html
!   15. https://facebook.github.io/zstd/
!   16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values
!   17. https://www.openacc.org/
!   18. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-10
!   19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1
!   20. https://www.openmp.org/specifications/
!   21. https://gcc.gnu.org/wiki/Offloading
!   22. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wstring-compare
!   23. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wzero-length-bounds
!   24. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   25. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   26. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wrestrict
!   27. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wreturn-local-addr
!   28. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wstringop-overflow
!   29. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Warith-conversion
!   30. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-tags
!   31. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-tags
!   32. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94383
!   33. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94711
!   34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94707
!   35. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94704
!   36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94706
!   37. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92285
!   38. https://www.openmp.org/specifications/
!   39. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_major
!   40. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_minor
!   41. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel
!   42. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield
!   43. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics
!   44. https://developer.arm.com/Architectures/M-Profile Architecture
!   45. https://developer.arm.com/architectures/instruction-sets/intrinsics/
!   46. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension
!   47. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs
!   48. https://gcc.gnu.org/install/configure.html#avr
!   49. https://gcc.gnu.org/wiki/avr-gcc#Libf7
!   50. https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture
!   51. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-path-format
!   52. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   53. https://cwe.mitre.org/
!   54. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   55. https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
!   56. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-urls
!   57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0
!   58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2
!   59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3
!   60. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4
!   61. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.5
!   62. https://gcc.gnu.org/onlinedocs/
!   63. mailto:gcc-help@gcc.gnu.org
!   64. mailto:gcc@gcc.gnu.org
!   65. https://gcc.gnu.org/lists.html
!   66. https://www.fsf.org/
!   67. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/index.html
                                GCC 9 Release Series
--- 5902,5998 ----
     3. https://gcc.gnu.org/gcc-10/changes.html#empty_base
     4. https://www.mpfr.org/
     5. https://gcc.gnu.org/gcc-10/changes.html#iterator_base
!    6. https://gcc.gnu.org/gcc-10/changes.html#general
!    7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin
!    8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce
!    9. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training
!   10. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-reproducible
!   11. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-generate
!   12. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html#index-fprofile-prefix-path
!   13. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Static-Analyzer-Options.html
!   14. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-finline-functions
!   15. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/lto-dump.html
!   16. https://facebook.github.io/zstd/
!   17. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values
!   18. https://gcc.gnu.org/gcc-10/changes.html#languages
!   19. https://www.openacc.org/
!   20. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-10
!   21. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1
!   22. https://www.openmp.org/specifications/
!   23. https://gcc.gnu.org/wiki/Offloading
!   24. https://gcc.gnu.org/gcc-10/changes.html#c-family
!   25. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wstring-compare
!   26. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wzero-length-bounds
!   27. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   28. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   29. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wrestrict
!   30. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wreturn-local-addr
!   31. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Wstringop-overflow
!   32. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Warning-Options.html#index-Warith-conversion
!   33. https://gcc.gnu.org/gcc-10/changes.html#c
!   34. https://gcc.gnu.org/gcc-10/changes.html#cxx
!   35. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-tags
!   36. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-tags
!   37. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94383
!   38. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94711
!   39. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94707
!   40. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94704
!   41. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94706
!   42. https://gcc.gnu.org/gcc-10/changes.html#libstdcxx
!   43. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92285
!   44. https://gcc.gnu.org/gcc-10/changes.html#d
!   45. https://gcc.gnu.org/gcc-10/changes.html#fortran
!   46. https://www.openmp.org/specifications/
!   47. https://gcc.gnu.org/gcc-10/changes.html#go
!   48. https://gcc.gnu.org/gcc-10/changes.html#jit
!   49. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_major
!   50. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_minor
!   51. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel
!   52. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield
!   53. https://gcc.gnu.org/gcc-10/changes.html#targets
!   54. https://gcc.gnu.org/gcc-10/changes.html#arm-targets
!   55. https://gcc.gnu.org/gcc-10/changes.html#aarch64
!   56. https://gcc.gnu.org/gcc-10/changes.html#arm
!   57. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics
!   58. https://developer.arm.com/Architectures/M-Profile Architecture
!   59. https://developer.arm.com/architectures/instruction-sets/intrinsics/
!   60. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension
!   61. https://gcc.gnu.org/gcc-10/changes.html#amdgcn
!   62. https://gcc.gnu.org/gcc-10/changes.html#arc
!   63. https://gcc.gnu.org/gcc-10/changes.html#avr
!   64. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs
!   65. https://gcc.gnu.org/install/configure.html#avr
!   66. https://gcc.gnu.org/wiki/avr-gcc#Libf7
!   67. https://gcc.gnu.org/gcc-10/changes.html#x86
!   68. https://gcc.gnu.org/gcc-10/changes.html#mips
!   69. https://gcc.gnu.org/gcc-10/changes.html#powerpc
!   70. https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture
!   71. https://gcc.gnu.org/gcc-10/changes.html#pru
!   72. https://gcc.gnu.org/gcc-10/changes.html#riscv
!   73. https://gcc.gnu.org/gcc-10/changes.html#v850
!   74. https://gcc.gnu.org/gcc-10/changes.html#os
!   75. https://gcc.gnu.org/gcc-10/changes.html#plugins
!   76. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-path-format
!   77. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   78. https://cwe.mitre.org/
!   79. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   80. https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
!   81. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-urls
!   82. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0
!   83. https://gcc.gnu.org/gcc-10/changes.html#GCC10.2
!   84. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2
!   85. https://gcc.gnu.org/gcc-10/changes.html#GCC10.3
!   86. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3
!   87. https://gcc.gnu.org/gcc-10/changes.html#GCC10.4
!   88. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4
!   89. https://gcc.gnu.org/gcc-10/changes.html#GCC10.5
!   90. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.5
!   91. https://gcc.gnu.org/onlinedocs/
!   92. mailto:gcc-help@gcc.gnu.org
!   93. mailto:gcc@gcc.gnu.org
!   94. https://gcc.gnu.org/lists.html
!   95. https://www.fsf.org/
!   96. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/index.html
                                GCC 9 Release Series
*************** Caveats
*** 4988,5002 ****
         installed <bits/c++config.h> headers to define the
         _GLIBCXX_USE_CXX11_ABI macro to 0.
  
! General Improvements
  
     The following GCC command line options have been introduced or
     improved.
       * All command line options that take a byte-size argument accept
         64-bit integers as well as standard SI and IEC suffixes such as kb
         and KiB, MB and MiB, or GB and GiB denoting the corresponding
!        multiples of bytes. See [9]Invoking GCC for more.
!      * A new option [10]-flive-patching=[inline-only-static|inline-clone]
         generates code suitable for live patching. At the same time it
         provides multiple-level control over IPA optimizations. See the
         user guide for more details.
--- 6127,6141 ----
         installed <bits/c++config.h> headers to define the
         _GLIBCXX_USE_CXX11_ABI macro to 0.
  
! [9]General Improvements
  
     The following GCC command line options have been introduced or
     improved.
       * All command line options that take a byte-size argument accept
         64-bit integers as well as standard SI and IEC suffixes such as kb
         and KiB, MB and MiB, or GB and GiB denoting the corresponding
!        multiples of bytes. See [10]Invoking GCC for more.
!      * A new option [11]-flive-patching=[inline-only-static|inline-clone]
         generates code suitable for live patching. At the same time it
         provides multiple-level control over IPA optimizations. See the
         user guide for more details.
*************** General Improvements
*** 5005,5011 ****
         Bash-completion.
       * GCC's diagnostics now print source code with a left margin showing
         line numbers, configurable with
!        [11]-fno-diagnostics-show-line-numbers.
         GCC's diagnostics can also now label regions of the source code to
         show pertinent information, such as the types within an expression.
  $ g++ t.cc
--- 6144,6150 ----
         Bash-completion.
       * GCC's diagnostics now print source code with a left margin showing
         line numbers, configurable with
!        [12]-fno-diagnostics-show-line-numbers.
         GCC's diagnostics can also now label regions of the source code to
         show pertinent information, such as the types within an expression.
  $ g++ t.cc
*************** e>' and 'boxed_value<double>')
*** 5021,5041 ****
        |                |
        |                boxed_value<[...]>
  
!        These labels can be disabled via [12]-fno-diagnostics-show-labels.
!      * A new option [13]-fdiagnostics-format=json has been introduced for
         emitting diagnostics in a machine-readable format.
!      * The alignment-related options [14]-falign-functions,
!        [15]-falign-labels, [16]-falign-loops, and [17]-falign-jumps
         received support for a secondary alignment (e.g.
         -falign-loops=n:m:n2:m2).
!      * New pair of profiling options ([18]-fprofile-filter-files and
!        [19]-fprofile-exclude-files) has been added. The options help to
         filter which source files are instrumented.
       * AddressSanitizer generates more compact redzones for automatic
         variables. That helps to reduce memory footprint of a sanitized
         binary.
       * Numerous improvements have been made to the output of
!        [20]-fopt-info.
         Messages are now prefixed with optimized, missed, or note, rather
         than the old behavior of all being prefixed with note.
         The output from -fopt-info can now contain information on inlining
--- 6160,6180 ----
        |                |
        |                boxed_value<[...]>
  
!        These labels can be disabled via [13]-fno-diagnostics-show-labels.
!      * A new option [14]-fdiagnostics-format=json has been introduced for
         emitting diagnostics in a machine-readable format.
!      * The alignment-related options [15]-falign-functions,
!        [16]-falign-labels, [17]-falign-loops, and [18]-falign-jumps
         received support for a secondary alignment (e.g.
         -falign-loops=n:m:n2:m2).
!      * New pair of profiling options ([19]-fprofile-filter-files and
!        [20]-fprofile-exclude-files) has been added. The options help to
         filter which source files are instrumented.
       * AddressSanitizer generates more compact redzones for automatic
         variables. That helps to reduce memory footprint of a sanitized
         binary.
       * Numerous improvements have been made to the output of
!        [21]-fopt-info.
         Messages are now prefixed with optimized, missed, or note, rather
         than the old behavior of all being prefixed with note.
         The output from -fopt-info can now contain information on inlining
*************** mory");
*** 5071,5097 ****
  
         The old behavior can be obtained via a new -internals suboption of
         -fopt-info.
!      * A new option, [21]-fsave-optimization-record has been added, which
         writes a SRCFILE.opt-record.json.gz file describing the
         optimization decisions made by GCC. This is similar to the output
         of -fopt-info, but with additional metadata such as the inlining
         chain, and profile information (if available).
       * Inter-procedural propagation of stack alignment can now be
!        controlled by [22]-fipa-stack-alignment.
       * Propagation of addressability, readonly, and writeonly flags on
         static variables can now be controlled by
!        [23]-fipa-reference-addressable.
  
     The following built-in functions have been introduced.
!      * [24]__builtin_expect_with_probability to provide branch prediction
         probability hints to the optimizer.
!      * [25]__builtin_has_attribute determines whether a function, type, or
         variable has been declared with some attribute.
!      * [26]__builtin_speculation_safe_value can be used to help mitigate
         against unsafe speculative execution.
  
     The following attributes have been introduced.
!      * The [27]copy function attribute has been added. The attribute can
         also be applied to type definitions and to variable declarations.
  
     A large number of improvements to code generation have been made,
--- 6210,6236 ----
  
         The old behavior can be obtained via a new -internals suboption of
         -fopt-info.
!      * A new option, [22]-fsave-optimization-record has been added, which
         writes a SRCFILE.opt-record.json.gz file describing the
         optimization decisions made by GCC. This is similar to the output
         of -fopt-info, but with additional metadata such as the inlining
         chain, and profile information (if available).
       * Inter-procedural propagation of stack alignment can now be
!        controlled by [23]-fipa-stack-alignment.
       * Propagation of addressability, readonly, and writeonly flags on
         static variables can now be controlled by
!        [24]-fipa-reference-addressable.
  
     The following built-in functions have been introduced.
!      * [25]__builtin_expect_with_probability to provide branch prediction
         probability hints to the optimizer.
!      * [26]__builtin_has_attribute determines whether a function, type, or
         variable has been declared with some attribute.
!      * [27]__builtin_speculation_safe_value can be used to help mitigate
         against unsafe speculative execution.
  
     The following attributes have been introduced.
!      * The [28]copy function attribute has been added. The attribute can
         also be applied to type definitions and to variable declarations.
  
     A large number of improvements to code generation have been made,
*************** mory");
*** 5099,5105 ****
       * Switch expansion has been improved by using a different strategy
         (jump table, bit test, decision tree) for a subset of switch cases.
       * A linear function expression defined as a switch statement can be
!        transformed by [28]-ftree-switch-conversion. For example:
  
  int
  foo (int how)
--- 6238,6244 ----
       * Switch expansion has been improved by using a different strategy
         (jump table, bit test, decision tree) for a subset of switch cases.
       * A linear function expression defined as a switch statement can be
!        transformed by [29]-ftree-switch-conversion. For example:
  
  int
  foo (int how)
*************** foo (int how)
*** 5126,5134 ****
            + Improved scalability for very large translation units
              (especially when link-time optimizing large programs).
       * Profile driven optimization improvements:
!           + [29]-fprofile-use now enables [30]-fversion-loops-for-strides,
!             [31]-floop-interchange, [32]-floop-unroll-and-jam,
!             [33]-ftree-loop-distribution.
            + Streaming of counter histograms was removed, which reduces the
              size of profile files. Histograms are computed on the fly with
              link-time optimization.
--- 6265,6273 ----
            + Improved scalability for very large translation units
              (especially when link-time optimizing large programs).
       * Profile driven optimization improvements:
!           + [30]-fprofile-use now enables [31]-fversion-loops-for-strides,
!             [32]-floop-interchange, [33]-floop-unroll-and-jam,
!             [34]-ftree-loop-distribution.
            + Streaming of counter histograms was removed, which reduces the
              size of profile files. Histograms are computed on the fly with
              link-time optimization.
*************** foo (int how)
*** 5156,5200 ****
  
     The following improvements to the gcov command-line utility have been
     made.
!      * The gcov tool received a new option [34]--use-hotness-colors (-q)
         that can provide perf-like coloring of hot functions.
       * The gcov tool has changed its intermediate format to a new JSON
         format.
  
! New Languages and Language specific improvements
  
!    [35]OpenACC support in C, C++, and Fortran continues to be maintained
     and improved. Most of the OpenACC 2.5 specification is implemented. See
!    the [36]implementation status section on the OpenACC wiki page for
     further information.
  
!   C family
  
!      * Version 5.0 of the [37]OpenMP specification is now partially
         supported in the C and C++ compilers. For details which features of
         OpenMP 5.0 are and which are not supported in the GCC 9 release see
!        [38]this mail.
       * New extensions:
!           + [39]__builtin_convertvector built-in for vector conversions
              has been added.
       * New warnings:
!           + [40]-Waddress-of-packed-member, enabled by default, warns
              about an unaligned pointer value from the address of a packed
              member of a struct or union.
       * Enhancements to existing warnings:
!           + [41]-Warray-bounds detects more instances of out-of-bounds
              indices.
!           + [42]-Wattribute-alias also detects attribute mismatches
              between alias declarations and their targets, in addition to
              mismatches between their types.
!           + [43]-Wformat-overflow and [44]-Wformat-truncation have been
              extended to all formatted input/output functions (where
              applicable) and enhanced to detect a subset of instances of
              reading past the end of unterminated constant character arrays
              in %s directives.
!           + [45]-Wmissing-attributes detects instances of missing function
              attributes on declarations of aliases and weak references.
!           + [46]-Wstringop-truncation also detects a subset of instances
              of reading past the end of unterminated constant character
              arrays,
       * If a macro is used with the wrong argument count, the C and C++
--- 6295,6339 ----
  
     The following improvements to the gcov command-line utility have been
     made.
!      * The gcov tool received a new option [35]--use-hotness-colors (-q)
         that can provide perf-like coloring of hot functions.
       * The gcov tool has changed its intermediate format to a new JSON
         format.
  
! [36]New Languages and Language specific improvements
  
!    [37]OpenACC support in C, C++, and Fortran continues to be maintained
     and improved. Most of the OpenACC 2.5 specification is implemented. See
!    the [38]implementation status section on the OpenACC wiki page for
     further information.
  
!   [39]C family
  
!      * Version 5.0 of the [40]OpenMP specification is now partially
         supported in the C and C++ compilers. For details which features of
         OpenMP 5.0 are and which are not supported in the GCC 9 release see
!        [41]this mail.
       * New extensions:
!           + [42]__builtin_convertvector built-in for vector conversions
              has been added.
       * New warnings:
!           + [43]-Waddress-of-packed-member, enabled by default, warns
              about an unaligned pointer value from the address of a packed
              member of a struct or union.
       * Enhancements to existing warnings:
!           + [44]-Warray-bounds detects more instances of out-of-bounds
              indices.
!           + [45]-Wattribute-alias also detects attribute mismatches
              between alias declarations and their targets, in addition to
              mismatches between their types.
!           + [46]-Wformat-overflow and [47]-Wformat-truncation have been
              extended to all formatted input/output functions (where
              applicable) and enhanced to detect a subset of instances of
              reading past the end of unterminated constant character arrays
              in %s directives.
!           + [48]-Wmissing-attributes detects instances of missing function
              attributes on declarations of aliases and weak references.
!           + [49]-Wstringop-truncation also detects a subset of instances
              of reading past the end of unterminated constant character
              arrays,
       * If a macro is used with the wrong argument count, the C and C++
*************** New Languages and Language specific impr
*** 5203,5209 ****
         threshold for similarity has been tightened, to avoid nonsensical
         suggestions.
  
!   C
  
       * There is now experimental support for -std=c2x, to select support
         for the upcoming C2X revision of the ISO C standard. This standard
--- 6342,6348 ----
         threshold for similarity has been tightened, to avoid nonsensical
         suggestions.
  
!   [50]C
  
       * There is now experimental support for -std=c2x, to select support
         for the upcoming C2X revision of the ISO C standard. This standard
*************** New Languages and Language specific impr
*** 5215,5221 ****
         added in C2X (such warnings are also enabled by use of -Wpedantic
         if not using -std=c2x or -std=gnu2x).
       * New warnings:
!           + [47]-Wabsolute-value warns for calls to standard functions
              that compute the absolute value of an argument when a more
              appropriate standard function is available. For example,
              calling abs(3.14) triggers the warning because the appropriate
--- 6354,6360 ----
         added in C2X (such warnings are also enabled by use of -Wpedantic
         if not using -std=c2x or -std=gnu2x).
       * New warnings:
!           + [51]-Wabsolute-value warns for calls to standard functions
              that compute the absolute value of an argument when a more
              appropriate standard function is available. For example,
              calling abs(3.14) triggers the warning because the appropriate
*************** New Languages and Language specific impr
*** 5225,5246 ****
              This warning can be suppressed with an explicit type cast and
              it is also enabled by -Wextra.
  
!   C++
  
       * New warnings:
!           + [48]-Wdeprecated-copy, implied by -Wextra, warns about the
              C++11 deprecation of implicitly declared copy constructor and
              assignment operator if one of them is user-provided.
              -Wdeprecated-copy-dtor also warns if the destructor is
              user-provided, as specified in C++11.
!           + [49]-Winit-list-lifetime, on by default, warns about uses of
              std::initializer_list that are likely to result in a dangling
              pointer, such as returning or assigning from a temporary list.
!           + [50]-Wredundant-move, implied by -Wextra, warns about
              redundant calls to std::move.
!           + [51]-Wpessimizing-move, implied by -Wall, warns when a call to
              std::move prevents copy elision.
!           + [52]-Wclass-conversion, on by default, warns when a conversion
              function will never be called due to the type it converts to.
       * The C++ front end has experimental support for some of the upcoming
         C++2a draft features with the -std=c++2a or -std=gnu++2a flags,
--- 6364,6385 ----
              This warning can be suppressed with an explicit type cast and
              it is also enabled by -Wextra.
  
!   [52]C++
  
       * New warnings:
!           + [53]-Wdeprecated-copy, implied by -Wextra, warns about the
              C++11 deprecation of implicitly declared copy constructor and
              assignment operator if one of them is user-provided.
              -Wdeprecated-copy-dtor also warns if the destructor is
              user-provided, as specified in C++11.
!           + [54]-Winit-list-lifetime, on by default, warns about uses of
              std::initializer_list that are likely to result in a dangling
              pointer, such as returning or assigning from a temporary list.
!           + [55]-Wredundant-move, implied by -Wextra, warns about
              redundant calls to std::move.
!           + [56]-Wpessimizing-move, implied by -Wall, warns when a call to
              std::move prevents copy elision.
!           + [57]-Wclass-conversion, on by default, warns when a conversion
              function will never be called due to the type it converts to.
       * The C++ front end has experimental support for some of the upcoming
         C++2a draft features with the -std=c++2a or -std=gnu++2a flags,
*************** New Languages and Language specific impr
*** 5251,5257 ****
         attributes, class types in non-type template parameters, allowing
         virtual function calls in constant expressions, explicit(bool),
         std::is_constant_evaluated, nested inline namespaces, etc. For a
!        full list of new features, see [53]the C++ status page.
       * The C++ front end now preserves source locations for literals,
         id-expression, and mem-initializer for longer. For example it is
         now able to pin-point the pertinent locations for bad
--- 6390,6396 ----
         attributes, class types in non-type template parameters, allowing
         virtual function calls in constant expressions, explicit(bool),
         std::is_constant_evaluated, nested inline namespaces, etc. For a
!        full list of new features, see [58]the C++ status page.
       * The C++ front end now preserves source locations for literals,
         id-expression, and mem-initializer for longer. For example it is
         now able to pin-point the pertinent locations for bad
*************** d*, int)'
*** 5311,5317 ****
      3 | void callee (int, void *, int)
        |                   ^~~~~~
  
!      * The C++ front end's implementation of [54]-Wformat now shows
         precise locations within string literals, and underlines the
         pertinent arguments at bogus call sites (the C front end has been
         doing this since GCC 7). For example:
--- 6450,6456 ----
      3 | void callee (int, void *, int)
        |                   ^~~~~~
  
!      * The C++ front end's implementation of [59]-Wformat now shows
         precise locations within string literals, and underlines the
         pertinent arguments at bogus call sites (the C front end has been
         doing this since GCC 7). For example:
*************** _SIZE'?
*** 5393,5403 ****
        |             ^~~~~~~
        |             BUF_SIZE
  
!     Runtime Library (libstdc++)
  
       * Improved support for C++17, including:
            + The C++17 implementation is no longer experimental.
!           + Parallel algorithms and <execution> (requires [55]Thread
              Building Blocks 2018 or newer).
            + <memory_resource>.
            + Using the types and functions in <filesystem> does not require
--- 6532,6542 ----
        |             ^~~~~~~
        |             BUF_SIZE
  
!     [60]Runtime Library (libstdc++)
  
       * Improved support for C++17, including:
            + The C++17 implementation is no longer experimental.
!           + Parallel algorithms and <execution> (requires [61]Thread
              Building Blocks 2018 or newer).
            + <memory_resource>.
            + Using the types and functions in <filesystem> does not require
*************** _SIZE'?
*** 5425,5436 ****
         Filesystem TS on Windows.
       * Incomplete, experimental support for the Networking TS.
  
!   D
  
       * Support for the D programming language has been added to GCC,
         implementing version 2.076 of the language and run-time library.
  
!   Fortran
  
       * Asynchronous I/O is now fully supported. The program needs to be
         linked against the pthreads library to use it, otherwise the I/O is
--- 6564,6575 ----
         Filesystem TS on Windows.
       * Incomplete, experimental support for the Networking TS.
  
!   [62]D
  
       * Support for the D programming language has been added to GCC,
         implementing version 2.076 of the language and run-time library.
  
!   [63]Fortran
  
       * Asynchronous I/O is now fully supported. The program needs to be
         linked against the pthreads library to use it, otherwise the I/O is
*************** _SIZE'?
*** 5452,5480 ****
         specific way, one needs to explicitly check for NaN's before
         calling MAX or MIN, e.g. by using the IEEE_IS_NAN function from the
         intrinsic module IEEE_ARITHMETIC.
!      * A new command-line option [56]-fdec-include, set also by the
!        [57]-fdec option, has been added to increase compatibility with
         legacy code. With this option, an INCLUDE directive is also parsed
         as a statement, which allows the directive to be spread across
         multiple source lines with line continuations.
!      * A new [58]BUILTIN directive, has been added. The purpose of the
         directive is to provide an API between the GCC compiler and the GNU
         C Library which would define vector implementations of math
         routines.
  
!   Go
  
       * GCC 9 provides a complete implementation of the Go 1.12.2 user
         packages.
  
! libgccjit
  
       * The libgccjit API gained a new entry point:
!        [59]gcc_jit_context_add_driver_option.
  
! New Targets and Target Specific Improvements
  
!   AArch64 & Arm
  
       * Support has been added for the following processors (GCC
         identifiers in parentheses):
--- 6591,6619 ----
         specific way, one needs to explicitly check for NaN's before
         calling MAX or MIN, e.g. by using the IEEE_IS_NAN function from the
         intrinsic module IEEE_ARITHMETIC.
!      * A new command-line option [64]-fdec-include, set also by the
!        [65]-fdec option, has been added to increase compatibility with
         legacy code. With this option, an INCLUDE directive is also parsed
         as a statement, which allows the directive to be spread across
         multiple source lines with line continuations.
!      * A new [66]BUILTIN directive, has been added. The purpose of the
         directive is to provide an API between the GCC compiler and the GNU
         C Library which would define vector implementations of math
         routines.
  
!   [67]Go
  
       * GCC 9 provides a complete implementation of the Go 1.12.2 user
         packages.
  
! [68]libgccjit
  
       * The libgccjit API gained a new entry point:
!        [69]gcc_jit_context_add_driver_option.
  
! [70]New Targets and Target Specific Improvements
  
!   [71]AArch64 & Arm
  
       * Support has been added for the following processors (GCC
         identifiers in parentheses):
*************** New Targets and Target Specific Improvem
*** 5511,5517 ****
       * Support has been added for the Arm Neoverse E1 processor
         (-mcpu=neoverse-e1).
       * The AArch64 port now has support for stack clash protection using
!        the [60]-fstack-clash-protection option. The probing interval/guard
         size can be set by using --param
         stack-clash-protection-guard-size=12|16. The value of this
         parameter must be in bytes represented as a power of two. The two
--- 6650,6656 ----
       * Support has been added for the Arm Neoverse E1 processor
         (-mcpu=neoverse-e1).
       * The AArch64 port now has support for stack clash protection using
!        the [72]-fstack-clash-protection option. The probing interval/guard
         size can be set by using --param
         stack-clash-protection-guard-size=12|16. The value of this
         parameter must be in bytes represented as a power of two. The two
*************** New Targets and Target Specific Improvem
*** 5524,5530 ****
         option can now be used to enable the return address signing as well
         as the new Branch Target Identification feature of Armv8.5-A
         architecture. For more information on the arguments accepted by
!        this option, please refer to [61]AArch64-Options.
       * The following optional extensions to Armv8.5-A architecture are now
         supported and only affect the assembler.
            + Random Number Generation instructions through the
--- 6663,6669 ----
         option can now be used to enable the return address signing as well
         as the new Branch Target Identification feature of Armv8.5-A
         architecture. For more information on the arguments accepted by
!        this option, please refer to [73]AArch64-Options.
       * The following optional extensions to Armv8.5-A architecture are now
         supported and only affect the assembler.
            + Random Number Generation instructions through the
*************** New Targets and Target Specific Improvem
*** 5543,5549 ****
       * Corrected FPU configurations for Cortex-R7 and Cortex-R8 when using
         their respective -mcpu options.
  
!   AMD GCN
  
       * A new back end targeting AMD GCN GPUs has been contributed to GCC.
         The implementation is currently limited to compiling
--- 6682,6688 ----
       * Corrected FPU configurations for Cortex-R7 and Cortex-R8 when using
         their respective -mcpu options.
  
!   [74]AMD GCN
  
       * A new back end targeting AMD GCN GPUs has been contributed to GCC.
         The implementation is currently limited to compiling
*************** New Targets and Target Specific Improvem
*** 5554,5572 ****
            + Fiji (fiji).
            + Vega 10 (gfx900).
  
!   ARC
  
       * LRA is now on by default for the ARC target. This can be controlled
         by -mlra.
       * Add support for frame code-density and branch-and-index
         instructions.
  
!   C-SKY
  
       * A new back end targeting C-SKY V2 processors has been contributed
         to GCC.
  
!   IA-32/x86-64
  
       * Support of Intel MPX (Memory Protection Extensions) has been
         removed.
--- 6693,6711 ----
            + Fiji (fiji).
            + Vega 10 (gfx900).
  
!   [75]ARC
  
       * LRA is now on by default for the ARC target. This can be controlled
         by -mlra.
       * Add support for frame code-density and branch-and-index
         instructions.
  
!   [76]C-SKY
  
       * A new back end targeting C-SKY V2 processors has been contributed
         to GCC.
  
!   [77]IA-32/x86-64
  
       * Support of Intel MPX (Memory Protection Extensions) has been
         removed.
*************** New Targets and Target Specific Improvem
*** 5577,5583 ****
         following ISA extensions: AVX512F, AVX512VL, AVX512CD, AVX512BW,
         AVX512DQ, AVX512VNNI.
  
!   MIPS
  
       * The Loongson loongson-mmi and loongson-ext extensions have been
         split from loongson3a:
--- 6716,6722 ----
         following ISA extensions: AVX512F, AVX512VL, AVX512CD, AVX512BW,
         AVX512DQ, AVX512VNNI.
  
!   [78]MIPS
  
       * The Loongson loongson-mmi and loongson-ext extensions have been
         split from loongson3a:
*************** New Targets and Target Specific Improvem
*** 5601,5612 ****
         -mtune options (as in -mcpu=gs464 or -mtune=gs464e) or as arguments
         to the equivalent target attributes and pragmas.
  
!   OpenRISC
  
       * A new back end targeting OpenRISC processors has been contributed
         to GCC.
  
!   S/390, System z, IBM z Systems
  
       * Support for the arch13 architecture has been added. When using the
         -march=arch13 option, the compiler will generate code making use of
--- 6740,6751 ----
         -mtune options (as in -mcpu=gs464 or -mtune=gs464e) or as arguments
         to the equivalent target attributes and pragmas.
  
!   [79]OpenRISC
  
       * A new back end targeting OpenRISC processors has been contributed
         to GCC.
  
!   [80]S/390, System z, IBM z Systems
  
       * Support for the arch13 architecture has been added. When using the
         -march=arch13 option, the compiler will generate code making use of
*************** New Targets and Target Specific Improvem
*** 5636,5644 ****
         containing pointers to each profiling call stub. This is useful for
         automatically patching in and out calls.
  
! Operating Systems
  
!   Solaris
  
       * g++ now unconditionally enables large file support when compiling
         32-bit code.
--- 6775,6783 ----
         containing pointers to each profiling call stub. This is useful for
         automatically patching in and out calls.
  
! [81]Operating Systems
  
!   [82]Solaris
  
       * g++ now unconditionally enables large file support when compiling
         32-bit code.
*************** Operating Systems
*** 5649,5657 ****
         Solaris 11/x86. It requires the use of GNU as. Solaris 11/SPARC
         support is still work-in-progress.
  
!   Windows
  
!      * A C++ Microsoft ABI bitfield layout bug, [62]PR87137 has been
         fixed. A non-field declaration could cause the current bitfield
         allocation unit to be completed, incorrectly placing a following
         bitfield into a new allocation unit. The Microsoft ABI is selected
--- 6788,6796 ----
         Solaris 11/x86. It requires the use of GNU as. Solaris 11/SPARC
         support is still work-in-progress.
  
!   [83]Windows
  
!      * A C++ Microsoft ABI bitfield layout bug, [84]PR87137 has been
         fixed. A non-field declaration could cause the current bitfield
         allocation unit to be completed, incorrectly placing a following
         bitfield into a new allocation unit. The Microsoft ABI is selected
*************** Operating Systems
*** 5662,5674 ****
            + SuperH targets when the -mhitachi option is specified, or
              __attribute__((renesas)) is used
  
! Improvements for plugin authors
  
       * GCC's diagnostic subsystem now has a way to logically group
         together related diagnostics, auto_diagnostic_group. Such
         diagnostics will be nested by the output of
!        [63]-fdiagnostics-format=json.
!      * GCC now has a set of [64]user experience guidelines for GCC, with
         information and advice on implementing new diagnostics.
  
  Other significant improvements
--- 6801,6813 ----
            + SuperH targets when the -mhitachi option is specified, or
              __attribute__((renesas)) is used
  
! [85]Improvements for plugin authors
  
       * GCC's diagnostic subsystem now has a way to logically group
         together related diagnostics, auto_diagnostic_group. Such
         diagnostics will be nested by the output of
!        [86]-fdiagnostics-format=json.
!      * GCC now has a set of [87]user experience guidelines for GCC, with
         information and advice on implementing new diagnostics.
  
  Other significant improvements
*************** Other significant improvements
*** 5676,5705 ****
       * GCC's internal "selftest" suite now runs for C++ as well as C (in
         debug builds of the compiler).
  
! GCC 9.1
  
!    This is the [65]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 9.2
  
!    This is the [66]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 9.3
  
!    This is the [67]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 9.4
  
!    This is the [68]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 6815,6844 ----
       * GCC's internal "selftest" suite now runs for C++ as well as C (in
         debug builds of the compiler).
  
! [88]GCC 9.1
  
!    This is the [89]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [90]GCC 9.2
  
!    This is the [91]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [92]GCC 9.3
  
!    This is the [93]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [94]GCC 9.4
  
!    This is the [95]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 9.4
*** 5722,5748 ****
         for all SVE implementations. Adding -msve-vector-bits=512 makes the
         code specific to 512-bit SVE.
  
! GCC 9.5
  
!    This is the [69]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [70]GCC manuals. If that fails, the
!     [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [72]gcc@gcc.gnu.org. All of [73]our lists have public
      archives.
  
!    Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [75]maintained by the GCC team. Last modified
!    2024-05-09.
  
  References
  
--- 6861,6887 ----
         for all SVE implementations. Adding -msve-vector-bits=512 makes the
         code specific to 512-bit SVE.
  
! [96]GCC 9.5
  
!    This is the [97]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 9.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [98]GCC manuals. If that fails, the
!     [99]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [100]gcc@gcc.gnu.org. All of [101]our lists have public
      archives.
  
!    Copyright (C) [102]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [103]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 5754,5826 ****
     6. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90920
     7. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-frepo
     8. https://gcc.gnu.org/PR90361
!    9. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-GCC.html#Invoking-GCC
!   10. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-flive-patching
!   11. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-show-line-numbers
!   12. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-show-labels
!   13. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   14. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-functions
!   15. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-labels
!   16. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-loops
!   17. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-jumps
!   18. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fprofile-filter-files
!   19. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fprofile-exclude-files
!   20. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Developer-Options.html#index-fopt-info
!   21. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Developer-Options.html#index-fsave-optimization-record
!   22. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fipa-stack-alignment
!   23. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fipa-reference-addressable
!   24. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fexpect_005fwith_005fprobability
!   25. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fhas_005fattribute-1
!   26. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fspeculation_005fsafe_005fvalue-1
!   27. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Common-Function-Attributes.html#index-copy-function-attribute
!   28. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-switch-conversion
!   29. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fprofile-use
!   30. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fversion-loops-for-strides
!   31. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-floop-interchange
!   32. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-floop-unroll-and-jam
!   33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution
!   34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov
!   35. https://www.openacc.org/
!   36. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-9
!   37. https://www.openmp.org/specifications/
!   38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html
!   39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector
!   40. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Waddress-of-packed-member
!   41. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   42. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wattribute-alias
!   43. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   44. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat-truncation
!   45. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wmissing-attributes
!   46. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
!   47. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wabsolute-value
!   48. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-copy
!   49. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Winit-list-lifetime
!   50. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   52. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion
!   53. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
!   54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat
!   55. https://github.com/oneapi-src/oneTBB
!   56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include
!   57. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec
!   58. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/BUILTIN-directive.html#BUILTIN-directive
!   59. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/jit/topics/contexts.html#gcc_jit_context_add_driver_option
!   60. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fstack-protector
!   61. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/AArch64-Options.html#AArch64-Options
!   62. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
!   63. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   64. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gccint/User-Experience-Guidelines.html
!   65. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.0
!   66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2
!   67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3
!   68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4
!   69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5
!   70. https://gcc.gnu.org/onlinedocs/
!   71. mailto:gcc-help@gcc.gnu.org
!   72. mailto:gcc@gcc.gnu.org
!   73. https://gcc.gnu.org/lists.html
!   74. https://www.fsf.org/
!   75. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-8/index.html
                                GCC 8 Release Series
--- 6893,6993 ----
     6. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90920
     7. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-frepo
     8. https://gcc.gnu.org/PR90361
!    9. https://gcc.gnu.org/gcc-9/changes.html#general
!   10. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-GCC.html#Invoking-GCC
!   11. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-flive-patching
!   12. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-show-line-numbers
!   13. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-show-labels
!   14. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   15. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-functions
!   16. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-labels
!   17. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-loops
!   18. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-falign-jumps
!   19. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fprofile-filter-files
!   20. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fprofile-exclude-files
!   21. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Developer-Options.html#index-fopt-info
!   22. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Developer-Options.html#index-fsave-optimization-record
!   23. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fipa-stack-alignment
!   24. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fipa-reference-addressable
!   25. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fexpect_005fwith_005fprobability
!   26. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fhas_005fattribute-1
!   27. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fspeculation_005fsafe_005fvalue-1
!   28. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Common-Function-Attributes.html#index-copy-function-attribute
!   29. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-switch-conversion
!   30. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fprofile-use
!   31. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-fversion-loops-for-strides
!   32. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-floop-interchange
!   33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-floop-unroll-and-jam
!   34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution
!   35. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov
!   36. https://gcc.gnu.org/gcc-9/changes.html#languages
!   37. https://www.openacc.org/
!   38. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-9
!   39. https://gcc.gnu.org/gcc-9/changes.html#c-family
!   40. https://www.openmp.org/specifications/
!   41. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html
!   42. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector
!   43. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Waddress-of-packed-member
!   44. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   45. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wattribute-alias
!   46. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   47. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat-truncation
!   48. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wmissing-attributes
!   49. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
!   50. https://gcc.gnu.org/gcc-9/changes.html#c
!   51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wabsolute-value
!   52. https://gcc.gnu.org/gcc-9/changes.html#cxx
!   53. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-copy
!   54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Winit-list-lifetime
!   55. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   57. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion
!   58. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
!   59. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat
!   60. https://gcc.gnu.org/gcc-9/changes.html#libstdcxx
!   61. https://github.com/uxlfoundation/oneTBB
!   62. https://gcc.gnu.org/gcc-9/changes.html#d
!   63. https://gcc.gnu.org/gcc-9/changes.html#fortran
!   64. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include
!   65. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec
!   66. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/BUILTIN-directive.html#BUILTIN-directive
!   67. https://gcc.gnu.org/gcc-9/changes.html#go
!   68. https://gcc.gnu.org/gcc-9/changes.html#jit
!   69. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/jit/topics/contexts.html#gcc_jit_context_add_driver_option
!   70. https://gcc.gnu.org/gcc-9/changes.html#targets
!   71. https://gcc.gnu.org/gcc-9/changes.html#arm-targets
!   72. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Instrumentation-Options.html#index-fstack-protector
!   73. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/AArch64-Options.html#AArch64-Options
!   74. https://gcc.gnu.org/gcc-9/changes.html#amdgcn
!   75. https://gcc.gnu.org/gcc-9/changes.html#arc
!   76. https://gcc.gnu.org/gcc-9/changes.html#csky
!   77. https://gcc.gnu.org/gcc-9/changes.html#x86
!   78. https://gcc.gnu.org/gcc-9/changes.html#mips
!   79. https://gcc.gnu.org/gcc-9/changes.html#or1k
!   80. https://gcc.gnu.org/gcc-9/changes.html#s390
!   81. https://gcc.gnu.org/gcc-9/changes.html#os
!   82. https://gcc.gnu.org/gcc-9/changes.html#solaris
!   83. https://gcc.gnu.org/gcc-9/changes.html#windows
!   84. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
!   85. https://gcc.gnu.org/gcc-9/changes.html#plugins
!   86. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   87. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gccint/User-Experience-Guidelines.html
!   88. https://gcc.gnu.org/gcc-9/changes.html#GCC9.1
!   89. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.0
!   90. https://gcc.gnu.org/gcc-9/changes.html#GCC9.2
!   91. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2
!   92. https://gcc.gnu.org/gcc-9/changes.html#GCC9.3
!   93. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3
!   94. https://gcc.gnu.org/gcc-9/changes.html#GCC9.4
!   95. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4
!   96. https://gcc.gnu.org/gcc-9/changes.html#GCC9.5
!   97. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5
!   98. https://gcc.gnu.org/onlinedocs/
!   99. mailto:gcc-help@gcc.gnu.org
!  100. mailto:gcc@gcc.gnu.org
!  101. https://gcc.gnu.org/lists.html
!  102. https://www.fsf.org/
!  103. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-8/index.html
                                GCC 8 Release Series
*************** http://gcc.gnu.org/gcc-8/changes.html
*** 5923,5928 ****
--- 7090,7096 ----
  
  Caveats
  
+      * The default mode for C is now -std=gnu17 instead of -std=gnu11.
       * Support for the obsolete SDB/coff debug info format has been
         removed. The option -gcoff no longer does anything.
       * The Cilk+ extensions to the C and C++ languages have been removed.
*************** Caveats
*** 5938,5944 ****
         revive them, the next release of GCC will have their sources
         permanently removed.
  
! General Improvements
  
       * Inter-procedural optimization improvements:
            + Reworked run-time estimation metrics leading to more realistic
--- 7106,7112 ----
         revive them, the next release of GCC will have their sources
         permanently removed.
  
! [4]General Improvements
  
       * Inter-procedural optimization improvements:
            + Reworked run-time estimation metrics leading to more realistic
*************** SUMMARY: AddressSanitizer: invalid-point
*** 6125,6140 ****
  void __attribute__ ((no_sanitize ("alignment", "object-size")))
  f () { /* Do something. */; }
  
! New Languages and Language specific improvements
  
!   Ada
  
       * For its internal exception handling used on the host for error
         recovery in the front-end, the compiler now relies on the native
         exception handling mechanism of the host platform, which should be
         more efficient than the former mechanism.
  
!   BRIG (HSAIL)
  
     In this release cycle, the focus for the BRIGFE was on stabilization
     and performance improvements. Also a couple of completely new features
--- 7293,7308 ----
  void __attribute__ ((no_sanitize ("alignment", "object-size")))
  f () { /* Do something. */; }
  
! [5]New Languages and Language specific improvements
  
!   [6]Ada
  
       * For its internal exception handling used on the host for error
         recovery in the front-end, the compiler now relies on the native
         exception handling mechanism of the host platform, which should be
         more efficient than the former mechanism.
  
!   [7]BRIG (HSAIL)
  
     In this release cycle, the focus for the BRIGFE was on stabilization
     and performance improvements. Also a couple of completely new features
*************** New Languages and Language specific impr
*** 6168,6181 ****
       * libhsail-rt: Assume the host runtime allocates the work group
         memory.
  
!   C family
  
       * New command-line options have been added for the C and C++
         compilers:
!           + [4]-Wmultistatement-macros warns about unsafe macros expanding
              to multiple statements used as a body of a statement such as
              if, else, while, switch, or for.
!           + [5]-Wstringop-truncation warns for calls to bounded string
              manipulation functions such as strncat, strncpy, and stpncpy
              that might either truncate the copied string or leave the
              destination unchanged. For example, the following call to
--- 7336,7349 ----
       * libhsail-rt: Assume the host runtime allocates the work group
         memory.
  
!   [8]C family
  
       * New command-line options have been added for the C and C++
         compilers:
!           + [9]-Wmultistatement-macros warns about unsafe macros expanding
              to multiple statements used as a body of a statement such as
              if, else, while, switch, or for.
!           + [10]-Wstringop-truncation warns for calls to bounded string
              manipulation functions such as strncat, strncpy, and stpncpy
              that might either truncate the copied string or leave the
              destination unchanged. For example, the following call to
*************** void copy (const char *s)
*** 6203,6226 ****
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
              The -Wstringop-truncation option is included in -Wall.
!             Note that due to GCC bug [6]82944, defining strncat, strncpy,
              or stpncpy as a macro in a system header as some
              implementations do, suppresses the warning.
!           + [7]-Wif-not-aligned controls warnings issued in response to
              invalid uses of objects declared with attribute
!             [8]warn_if_not_aligned.
              The -Wif-not-aligned option is included in -Wall.
!           + [9]-Wmissing-attributes warns when a declaration of a function
!             is missing one or more attributes that a related function is
!             declared with and whose absence may adversely affect the
!             correctness or efficiency of generated code. For example, in
!             C++, the warning is issued when an explicit specialization of
!             a primary template declared with attribute alloc_align,
!             alloc_size, assume_aligned, format, format_arg, malloc, or
!             nonnull is declared without it. Attributes deprecated, error,
!             and warning suppress the warning.
              The -Wmissing-attributes option is included in -Wall.
!           + [10]-Wpacked-not-aligned warns when a struct or union declared
              with attribute packed defines a member with an explicitly
              specified alignment greater than 1. Such a member will wind up
              under-aligned. For example, a warning will be issued for the
--- 7371,7394 ----
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
              The -Wstringop-truncation option is included in -Wall.
!             Note that due to GCC bug [11]82944, defining strncat, strncpy,
              or stpncpy as a macro in a system header as some
              implementations do, suppresses the warning.
!           + [12]-Wif-not-aligned controls warnings issued in response to
              invalid uses of objects declared with attribute
!             [13]warn_if_not_aligned.
              The -Wif-not-aligned option is included in -Wall.
!           + [14]-Wmissing-attributes warns when a declaration of a
!             function is missing one or more attributes that a related
!             function is declared with and whose absence may adversely
!             affect the correctness or efficiency of generated code. For
!             example, in C++, the warning is issued when an explicit
!             specialization of a primary template declared with attribute
!             alloc_align, alloc_size, assume_aligned, format, format_arg,
!             malloc, or nonnull is declared without it. Attributes
!             deprecated, error, and warning suppress the warning.
              The -Wmissing-attributes option is included in -Wall.
!           + [15]-Wpacked-not-aligned warns when a struct or union declared
              with attribute packed defines a member with an explicitly
              specified alignment greater than 1. Such a member will wind up
              under-aligned. For example, a warning will be issued for the
*************** warning: alignment 1 of 'struct S' is le
*** 6255,6265 ****
         optimization levels. Using -fsanitize=signed-integer-overflow is
         now the preferred way to audit code, -Wstrict-overflow is
         deprecated.
!      * The [11]-Warray-bounds option has been improved to detect more
         instances of out-of-bounds array indices and pointer offsets. For
         example, negative or excessive indices into flexible array members
         and string literals are detected.
!      * The [12]-Wrestrict option introduced in GCC 7 has been enhanced to
         detect many more instances of overlapping accesses to objects via
         restrict-qualified arguments to standard memory and string
         manipulation functions such as memcpy and strcpy. For example, the
--- 7423,7433 ----
         optimization levels. Using -fsanitize=signed-integer-overflow is
         now the preferred way to audit code, -Wstrict-overflow is
         deprecated.
!      * The [16]-Warray-bounds option has been improved to detect more
         instances of out-of-bounds array indices and pointer offsets. For
         example, negative or excessive indices into flexible array members
         and string literals are detected.
!      * The [17]-Wrestrict option introduced in GCC 7 has been enhanced to
         detect many more instances of overlapping accesses to objects via
         restrict-qualified arguments to standard memory and string
         manipulation functions such as memcpy and strcpy. For example, the
*************** warning: 'strcpy' accessing 5 bytes at o
*** 6277,6283 ****
   4 [-Wrestrict]
         The -Wrestrict option is included in -Wall.
       * Several optimizer enhancements have enabled improvements to the
!        [13]-Wformat-overflow and [14]-Wformat-truncation options. The
         warnings detect more instances of buffer overflow and truncation
         than in GCC 7 and are better at avoiding certain kinds of false
         positives.
--- 7445,7451 ----
   4 [-Wrestrict]
         The -Wrestrict option is included in -Wall.
       * Several optimizer enhancements have enabled improvements to the
!        [18]-Wformat-overflow and [19]-Wformat-truncation options. The
         warnings detect more instances of buffer overflow and truncation
         than in GCC 7 and are better at avoiding certain kinds of false
         positives.
*************** unclosed-2.c:8:45: error: expected ')' b
*** 6358,6364 ****
  
         They will also emit fix-it hints.
  
!   C++
  
       * GCC 8 (-fabi-version=12) has a couple of corrections to the calling
         convention, which changes the ABI for some uncommon code:
--- 7526,7539 ----
  
         They will also emit fix-it hints.
  
!   [20]C
! 
!      * New options -std=c17, to select support for the 2018 edition of the
!        ISO C standard (__STDC_VERSION__ == 201710L), and -std=gnu17, for
!        C17 with GNU extensions.
!      * The default mode has been changed to -std=gnu17.
! 
!   [21]C++
  
       * GCC 8 (-fabi-version=12) has a couple of corrections to the calling
         convention, which changes the ABI for some uncommon code:
*************** unclosed-2.c:8:45: error: expected ')' b
*** 6371,6377 ****
              a class was impossible.
            + WARNING: In GCC 8.1 the second change mistakenly also affects
              classes with a deleted copy constructor and defaulted trivial
!             move constructor (bug [15]c++/86094). This issue is fixed in
              GCC 8.2 (-fabi-version=13).
         You can test whether these changes affect your code with -Wabi=11
         (or -Wabi=12 in GCC 8.2 for the third issue); if these changes are
--- 7546,7552 ----
              a class was impossible.
            + WARNING: In GCC 8.1 the second change mistakenly also affects
              classes with a deleted copy constructor and defaulted trivial
!             move constructor (bug [22]c++/86094). This issue is fixed in
              GCC 8.2 (-fabi-version=13).
         You can test whether these changes affect your code with -Wabi=11
         (or -Wabi=12 in GCC 8.2 for the third issue); if these changes are
*************** unclosed-2.c:8:45: error: expected ')' b
*** 6384,6390 ****
         preferred alignment should use __alignof__ instead.
       * New command-line options have been added for the C++ compiler to
         control warnings:
!           + [16]-Wclass-memaccess warns when objects of non-trivial class
              types are manipulated in potentially unsafe ways by raw memory
              functions such as memcpy, or realloc. The warning helps detect
              calls that bypass user-defined constructors or copy-assignment
--- 7559,7565 ----
         preferred alignment should use __alignof__ instead.
       * New command-line options have been added for the C++ compiler to
         control warnings:
!           + [23]-Wclass-memaccess warns when objects of non-trivial class
              types are manipulated in potentially unsafe ways by raw memory
              functions such as memcpy, or realloc. The warning helps detect
              calls that bypass user-defined constructors or copy-assignment
*************** o trivial copy-assignment [-Wclass-memac
*** 6403,6409 ****
         including designated initializers, default member initializers for
         bit-fields, __VA_OPT__ (except that #__VA_OPT__ is unsupported),
         lambda [=, this] captures, etc. For a full list of new features,
!        see [17]the C++ status page.
       * When reporting on attempts to access private fields of a class or
         struct, the C++ compiler will now offer fix-it hints showing how to
         use an accessor function to get at the field in question, if one
--- 7578,7584 ----
         including designated initializers, default member initializers for
         bit-fields, __VA_OPT__ (except that #__VA_OPT__ is unsupported),
         lambda [=, this] captures, etc. For a full list of new features,
!        see [24]the C++ status page.
       * When reporting on attempts to access private fields of a class or
         struct, the C++ compiler will now offer fix-it hints showing how to
         use an accessor function to get at the field in question, if one
*************** ctor<double> >()' from 'map<map<int,vect
*** 6548,6554 ****
         result of this change, -Wreturn-type warnings are enabled by
         default for C++.
  
!     Runtime Library (libstdc++)
  
       * Improved experimental support for C++17, including the following
         features:
--- 7723,7729 ----
         result of this change, -Wreturn-type warnings are enabled by
         default for C++.
  
!     [25]Runtime Library (libstdc++)
  
       * Improved experimental support for C++17, including the following
         features:
*************** ctor<double> >()' from 'map<map<int,vect
*** 6569,6575 ****
       * Extensions __gnu_cxx::airy_ai and __gnu_cxx::airy_bi added to the
         Mathematical Special Functions.
  
!   Fortran
  
       * The main version of libfortran has been changed to 5.
       * Parameterized derived types, a major feature of Fortran 2003, have
--- 7744,7750 ----
       * Extensions __gnu_cxx::airy_ai and __gnu_cxx::airy_bi added to the
         Mathematical Special Functions.
  
!   [26]Fortran
  
       * The main version of libfortran has been changed to 5.
       * Parameterized derived types, a major feature of Fortran 2003, have
*************** ctor<double> >()' from 'map<map<int,vect
*** 6615,6621 ****
         hierarchical subsets of images that execute independently of other
         image subsets.
  
!   Go
  
       * GCC 8 provides a complete implementation of the Go 1.10.1 user
         packages.
--- 7790,7796 ----
         hierarchical subsets of images that execute independently of other
         image subsets.
  
!   [27]Go
  
       * GCC 8 provides a complete implementation of the Go 1.10.1 user
         packages.
*************** ctor<double> >()' from 'map<map<int,vect
*** 6626,6646 ****
         Go front end. This significantly reduces the number of heap
         allocations by allocating values on the stack instead.
  
! libgccjit
  
     The libgccjit API gained four new entry points:
!      * [18]gcc_jit_type_get_vector and
!      * [19]gcc_jit_context_new_rvalue_from_vector for working with
         vectors,
!      * [20]gcc_jit_type_get_aligned
!      * [21]gcc_jit_function_get_address
  
!    The C code generated by [22]gcc_jit_context_dump_reproducer_to_file is
     now easier-to-read.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * The Armv8.4-A architecture is now supported. It can be used by
         specifying the -march=armv8.4-a option.
--- 7801,7821 ----
         Go front end. This significantly reduces the number of heap
         allocations by allocating values on the stack instead.
  
! [28]libgccjit
  
     The libgccjit API gained four new entry points:
!      * [29]gcc_jit_type_get_vector and
!      * [30]gcc_jit_context_new_rvalue_from_vector for working with
         vectors,
!      * [31]gcc_jit_type_get_aligned
!      * [32]gcc_jit_function_get_address
  
!    The C code generated by [33]gcc_jit_context_dump_reproducer_to_file is
     now easier-to-read.
  
! [34]New Targets and Target Specific Improvements
  
!   [35]AArch64
  
       * The Armv8.4-A architecture is now supported. It can be used by
         specifying the -march=armv8.4-a option.
*************** New Targets and Target Specific Improvem
*** 6684,6690 ****
         options, for example: -mcpu=cortex-a75 or -mtune=cortex-a75 or as
         arguments to the equivalent target attributes and pragmas.
  
!   ARC
  
       * Added support for:
            + Fast interrupts.
--- 7859,7865 ----
         options, for example: -mcpu=cortex-a75 or -mtune=cortex-a75 or as
         arguments to the equivalent target attributes and pragmas.
  
!   [36]ARC
  
       * Added support for:
            + Fast interrupts.
*************** New Targets and Target Specific Improvem
*** 6702,6708 ****
         Introduced -mlpc-width command-line option to control the width of
         the lp_count register.
  
!   ARM
  
       * The -mfpu option now takes a new option setting of -mfpu=auto. When
         set to this the floating-point and SIMD settings are derived from
--- 7877,7883 ----
         Introduced -mlpc-width command-line option to control the width of
         the lp_count register.
  
!   [37]ARM
  
       * The -mfpu option now takes a new option setting of -mfpu=auto. When
         set to this the floating-point and SIMD settings are derived from
*************** New Targets and Target Specific Improvem
*** 6725,6731 ****
         arguments as -mcpu but only the CPU name has an effect on tuning.
         The architecture extensions do not have any effect. For details of
         what extensions a particular architecture or CPU option supports
!        please refer to the [23]documentation.
       * The -mstructure-size-boundary option has been deprecated and will
         be removed in a future release.
       * The default link behavior for Armv6 and Armv7-R targets has been
--- 7900,7906 ----
         arguments as -mcpu but only the CPU name has an effect on tuning.
         The architecture extensions do not have any effect. For details of
         what extensions a particular architecture or CPU option supports
!        please refer to the [38]documentation.
       * The -mstructure-size-boundary option has been deprecated and will
         be removed in a future release.
       * The default link behavior for Armv6 and Armv7-R targets has been
*************** New Targets and Target Specific Improvem
*** 6767,6794 ****
         options, for example: -mcpu=cortex-a75 or -mtune=cortex-r52 or as
         arguments to the equivalent target attributes and pragmas.
  
!   AVR
  
       * The AVR port now supports the following XMEGA-like devices:
  
       ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
       ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617,
       ATtiny3214, ATtiny3216, ATtiny3217
!        The new devices are listed under [24]-mmcu=avrxmega3.
            + These devices see flash memory in the RAM address space, so
              that features like PROGMEM and __flash are not needed any more
              (as opposed to other AVR families for which read-only data
              will be located in RAM except special, non-standard features
              are used to locate and access such data). This requires that
              the compiler is used with Binutils 2.29 or newer so that
!             [25]read-only data will be located in flash memory.
            + A new command-line option -mshort-calls is supported. This
              option is used internally for multilib selection of the
              avrxmega3 variants. It is not an optimization option. Do not
              set it by hand.
!      * The compiler now generates [26]efficient interrupt service routine
         (ISR) prologues and epilogues. This is achieved by using the new
!        [27]AVR pseudo instruction __gcc_isr which is supported and
         resolved by the GNU assembler.
            + As the __gcc_isr pseudo-instruction will be resolved by the
              assembler, inline assembly is transparent to the process. This
--- 7942,7969 ----
         options, for example: -mcpu=cortex-a75 or -mtune=cortex-r52 or as
         arguments to the equivalent target attributes and pragmas.
  
!   [39]AVR
  
       * The AVR port now supports the following XMEGA-like devices:
  
       ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
       ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617,
       ATtiny3214, ATtiny3216, ATtiny3217
!        The new devices are listed under [40]-mmcu=avrxmega3.
            + These devices see flash memory in the RAM address space, so
              that features like PROGMEM and __flash are not needed any more
              (as opposed to other AVR families for which read-only data
              will be located in RAM except special, non-standard features
              are used to locate and access such data). This requires that
              the compiler is used with Binutils 2.29 or newer so that
!             [41]read-only data will be located in flash memory.
            + A new command-line option -mshort-calls is supported. This
              option is used internally for multilib selection of the
              avrxmega3 variants. It is not an optimization option. Do not
              set it by hand.
!      * The compiler now generates [42]efficient interrupt service routine
         (ISR) prologues and epilogues. This is achieved by using the new
!        [43]AVR pseudo instruction __gcc_isr which is supported and
         resolved by the GNU assembler.
            + As the __gcc_isr pseudo-instruction will be resolved by the
              assembler, inline assembly is transparent to the process. This
*************** New Targets and Target Specific Improvem
*** 6803,6820 ****
            + The feature is turned on per default for all optimization
              levels except for -O0 and -Og. It is explicitly enabled by
              means of option -mgas-isr-prologues.
!           + Support has been added for a new [28]AVR function attribute
              no_gccisr. It can be used to disable __gcc_isr pseudo
              instruction generation for individual ISRs.
            + This optimization is only available if GCC is configured with
              GNU Binutils 2.29 or newer; or at least with a version of
!             Binutils that implements feature [29]PR21683.
       * The compiler no more saves / restores registers in main; the effect
         is the same as if attribute OS_task was specified for main. This
         optimization can be switched off by the new command-line option
         -mno-main-is-OS_task.
  
!   IA-32/x86-64
  
       * The x86 port now supports the naked function attribute.
       * Better tuning for znver1 and Intel Core based CPUs.
--- 7978,7995 ----
            + The feature is turned on per default for all optimization
              levels except for -O0 and -Og. It is explicitly enabled by
              means of option -mgas-isr-prologues.
!           + Support has been added for a new [44]AVR function attribute
              no_gccisr. It can be used to disable __gcc_isr pseudo
              instruction generation for individual ISRs.
            + This optimization is only available if GCC is configured with
              GNU Binutils 2.29 or newer; or at least with a version of
!             Binutils that implements feature [45]PR21683.
       * The compiler no more saves / restores registers in main; the effect
         is the same as if attribute OS_task was specified for main. This
         optimization can be switched off by the new command-line option
         -mno-main-is-OS_task.
  
!   [46]IA-32/x86-64
  
       * The x86 port now supports the naked function attribute.
       * Better tuning for znver1 and Intel Core based CPUs.
*************** New Targets and Target Specific Improvem
*** 6830,6841 ****
       * GCC now supports the Intel Control-flow Enforcement Technology
         (CET) extension through -fcf-protection option.
  
!   NDS32
  
       * New command-line options -mext-perf, -mext-perf2, and -mext-string
         have been added for performance extension instructions.
  
!   Nios II
  
       * The Nios II back end has been improved to generate better-optimized
         code. Changes include switching to LRA, more accurate cost models,
--- 8005,8016 ----
       * GCC now supports the Intel Control-flow Enforcement Technology
         (CET) extension through -fcf-protection option.
  
!   [47]NDS32
  
       * New command-line options -mext-perf, -mext-perf2, and -mext-string
         have been added for performance extension instructions.
  
!   [48]Nios II
  
       * The Nios II back end has been improved to generate better-optimized
         code. Changes include switching to LRA, more accurate cost models,
*************** New Targets and Target Specific Improvem
*** 6844,6850 ****
         added.
       * The stack-smashing protection options are now enabled on Nios II.
  
!   PA-RISC
  
       * The default call ABI on 32-bit linux has been changed from callee
         copies to caller copies. This affects objects larger than eight
--- 8019,8025 ----
         added.
       * The stack-smashing protection options are now enabled on Nios II.
  
!   [49]PA-RISC
  
       * The default call ABI on 32-bit linux has been changed from callee
         copies to caller copies. This affects objects larger than eight
*************** New Targets and Target Specific Improvem
*** 6852,6858 ****
         x86 and resolve issues with OpenMP.
       * Other PA-RISC targets are unchanged.
  
!   PowerPC / PowerPC64 / RS6000
  
       * The PowerPC SPE support is split off to a separate powerpcspe port.
         The separate port is deprecated and might be removed in a future
--- 8027,8033 ----
         x86 and resolve issues with OpenMP.
       * Other PA-RISC targets are unchanged.
  
!   [50]PowerPC / PowerPC64 / RS6000
  
       * The PowerPC SPE support is split off to a separate powerpcspe port.
         The separate port is deprecated and might be removed in a future
*************** New Targets and Target Specific Improvem
*** 6867,6880 ****
         target (-maltivec=be) is deprecated and will be removed in a future
         release.
  
!   Tile
  
       * The TILE-Gx port is deprecated and will be removed in a future
         release.
  
! Operating Systems
  
!   Windows
  
       * GCC on Microsoft Windows can now be configured via
         --enable-mingw-wildcard or --disable-mingw-wildcard to force a
--- 8042,8055 ----
         target (-maltivec=be) is deprecated and will be removed in a future
         release.
  
!   [51]Tile
  
       * The TILE-Gx port is deprecated and will be removed in a future
         release.
  
! [52]Operating Systems
  
!   [53]Windows
  
       * GCC on Microsoft Windows can now be configured via
         --enable-mingw-wildcard or --disable-mingw-wildcard to force a
*************** Operating Systems
*** 6884,6890 ****
         obtained by not using the above options or by using
         --enable-mingw-wildcard=platform.
  
! Improvements for plugin authors
  
       * Plugins can now register a callback hook for when comments are
         encountered by the C and C++ compilers, e.g. allowing for plugins
--- 8059,8065 ----
         obtained by not using the above options or by using
         --enable-mingw-wildcard=platform.
  
! [54]Improvements for plugin authors
  
       * Plugins can now register a callback hook for when comments are
         encountered by the C and C++ compilers, e.g. allowing for plugins
*************** Improvements for plugin authors
*** 6895,6910 ****
       * The API for creating fix-it hints now supports newlines, and for
         emitting mutually incompatible fix-it hints for one diagnostic.
  
! GCC 8.1
  
!    This is the [30]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 8.2
  
!    This is the [31]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 8070,8085 ----
       * The API for creating fix-it hints now supports newlines, and for
         emitting mutually incompatible fix-it hints for one diagnostic.
  
! [55]GCC 8.1
  
!    This is the [56]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [57]GCC 8.2
  
!    This is the [58]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 8.2
*** 6920,6947 ****
  
     GCC 8.2 fixed a bug introduced in GCC 8.1 affecting passing or
     returning of classes with a deleted copy constructor and defaulted
!    trivial move constructor (bug [32]c++/86094). GCC 8.2 introduces
     -fabi-version=13 and makes it the default, ABI incompatibilities
!    between GCC 8.1 and 8.2 can be reported with -Wabi=12. See [33]C++
     changes for more details.
  
    Target Specific Changes
  
      IA-32/x86-64
  
!      * -mtune=native performance regression [34]PR84413 on Intel Skylake
         processors has been fixed.
  
! GCC 8.3
  
!    This is the [35]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
    Windows
  
!      * A C++ Microsoft ABI bitfield layout bug, [36]PR87137 has been
         fixed. A non-field declaration could cause the current bitfield
         allocation unit to be completed, incorrectly placing a following
         bitfield into a new allocation unit. The Microsoft ABI is selected
--- 8095,8122 ----
  
     GCC 8.2 fixed a bug introduced in GCC 8.1 affecting passing or
     returning of classes with a deleted copy constructor and defaulted
!    trivial move constructor (bug [59]c++/86094). GCC 8.2 introduces
     -fabi-version=13 and makes it the default, ABI incompatibilities
!    between GCC 8.1 and 8.2 can be reported with -Wabi=12. See [60]C++
     changes for more details.
  
    Target Specific Changes
  
      IA-32/x86-64
  
!      * -mtune=native performance regression [61]PR84413 on Intel Skylake
         processors has been fixed.
  
! [62]GCC 8.3
  
!    This is the [63]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
    Windows
  
!      * A C++ Microsoft ABI bitfield layout bug, [64]PR87137 has been
         fixed. A non-field declaration could cause the current bitfield
         allocation unit to be completed, incorrectly placing a following
         bitfield into a new allocation unit. The Microsoft ABI is selected
*************** GCC 8.3
*** 6955,6970 ****
         resolve only those regressions, we decided to resolve all the cases
         of this defect in single change.
  
! GCC 8.4
  
!    This is the [37]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 8.5
  
!    This is the [38]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 8130,8145 ----
         resolve only those regressions, we decided to resolve all the cases
         of this defect in single change.
  
! [65]GCC 8.4
  
!    This is the [66]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [67]GCC 8.5
  
!    This is the [68]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 8.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 8.5
*** 6982,7046 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [39]GCC manuals. If that fails, the
!     [40]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [41]gcc@gcc.gnu.org. All of [42]our lists have public
      archives.
  
!    Copyright (C) [43]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [44]maintained by the GCC team. Last modified
!    2023-01-11.
  
  References
  
     1. https://gcc.gnu.org/gcc-8/porting_to.html
     2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
!    4. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros
!    5. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
!    6. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82944
!    7. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wif-not-aligned
!    8. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Common-Variable-Attributes.html#index-warn_005fif_005fnot_005faligned-variable-attribute
!    9. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmissing-attributes
!   10. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wpacked-not-aligned
!   11. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   12. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wrestrict
!   13. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation
!   15. https://gcc.gnu.org/PR86094
!   16. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess
!   17. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
!   18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector
!   19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector
!   20. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned
!   21. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/function-pointers.html#gcc_jit_function_get_address
!   22. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/contexts.html#gcc_jit_context_dump_reproducer_to_file
!   23. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/ARM-Options.html#ARM-Options
!   24. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/AVR-Options.html
!   25. https://sourceware.org/PR21472
!   26. https://gcc.gnu.org/PR20296
!   27. https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html
!   28. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/AVR-Function-Attributes.html
!   29. https://sourceware.org/PR21683
!   30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0
!   31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2
!   32. https://gcc.gnu.org/PR86094
!   33. https://gcc.gnu.org/gcc-8/changes.html#cxx
!   34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413
!   35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3
!   36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
!   37. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.4
!   38. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.5
!   39. https://gcc.gnu.org/onlinedocs/
!   40. mailto:gcc-help@gcc.gnu.org
!   41. mailto:gcc@gcc.gnu.org
!   42. https://gcc.gnu.org/lists.html
!   43. https://www.fsf.org/
!   44. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-7/index.html
                                GCC 7 Release Series
--- 8157,8251 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [69]GCC manuals. If that fails, the
!     [70]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [71]gcc@gcc.gnu.org. All of [72]our lists have public
      archives.
  
!    Copyright (C) [73]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [74]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
     1. https://gcc.gnu.org/gcc-8/porting_to.html
     2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
!    4. https://gcc.gnu.org/gcc-8/changes.html#general
!    5. https://gcc.gnu.org/gcc-8/changes.html#languages
!    6. https://gcc.gnu.org/gcc-8/changes.html#ada
!    7. https://gcc.gnu.org/gcc-8/changes.html#brig
!    8. https://gcc.gnu.org/gcc-8/changes.html#c-family
!    9. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros
!   10. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
!   11. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82944
!   12. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wif-not-aligned
!   13. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Common-Variable-Attributes.html#index-warn_005fif_005fnot_005faligned-variable-attribute
!   14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmissing-attributes
!   15. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wpacked-not-aligned
!   16. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Warray-bounds
!   17. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wrestrict
!   18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-overflow
!   19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation
!   20. https://gcc.gnu.org/gcc-8/changes.html#c
!   21. https://gcc.gnu.org/gcc-8/changes.html#cxx
!   22. https://gcc.gnu.org/PR86094
!   23. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess
!   24. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
!   25. https://gcc.gnu.org/gcc-8/changes.html#libstdcxx
!   26. https://gcc.gnu.org/gcc-8/changes.html#fortran
!   27. https://gcc.gnu.org/gcc-8/changes.html#go
!   28. https://gcc.gnu.org/gcc-8/changes.html#jit
!   29. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector
!   30. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector
!   31. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned
!   32. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/function-pointers.html#gcc_jit_function_get_address
!   33. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/contexts.html#gcc_jit_context_dump_reproducer_to_file
!   34. https://gcc.gnu.org/gcc-8/changes.html#targets
!   35. https://gcc.gnu.org/gcc-8/changes.html#aarch64
!   36. https://gcc.gnu.org/gcc-8/changes.html#arc
!   37. https://gcc.gnu.org/gcc-8/changes.html#arm
!   38. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/ARM-Options.html#ARM-Options
!   39. https://gcc.gnu.org/gcc-8/changes.html#avr
!   40. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/AVR-Options.html
!   41. https://sourceware.org/PR21472
!   42. https://gcc.gnu.org/PR20296
!   43. https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html
!   44. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/AVR-Function-Attributes.html
!   45. https://sourceware.org/PR21683
!   46. https://gcc.gnu.org/gcc-8/changes.html#x86
!   47. https://gcc.gnu.org/gcc-8/changes.html#nds32
!   48. https://gcc.gnu.org/gcc-8/changes.html#nios2
!   49. https://gcc.gnu.org/gcc-8/changes.html#hppa
!   50. https://gcc.gnu.org/gcc-8/changes.html#powerpc
!   51. https://gcc.gnu.org/gcc-8/changes.html#Tile
!   52. https://gcc.gnu.org/gcc-8/changes.html#os
!   53. https://gcc.gnu.org/gcc-8/changes.html#windows
!   54. https://gcc.gnu.org/gcc-8/changes.html#plugins
!   55. https://gcc.gnu.org/gcc-8/changes.html#GCC8.1
!   56. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0
!   57. https://gcc.gnu.org/gcc-8/changes.html#GCC8.2
!   58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2
!   59. https://gcc.gnu.org/PR86094
!   60. https://gcc.gnu.org/gcc-8/changes.html#cxx
!   61. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413
!   62. https://gcc.gnu.org/gcc-8/changes.html#GCC8.3
!   63. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3
!   64. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
!   65. https://gcc.gnu.org/gcc-8/changes.html#GCC8.4
!   66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.4
!   67. https://gcc.gnu.org/gcc-8/changes.html#GCC8.5
!   68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.5
!   69. https://gcc.gnu.org/onlinedocs/
!   70. mailto:gcc-help@gcc.gnu.org
!   71. mailto:gcc@gcc.gnu.org
!   72. https://gcc.gnu.org/lists.html
!   73. https://www.fsf.org/
!   74. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-7/index.html
                                GCC 7 Release Series
*************** Caveats
*** 7160,7166 ****
         is enabled (on by default) the compiler will emit a diagnostic note
         for code that might be affected.
  
! General Optimizer Improvements
  
       * GCC 7 can determine the return value or range of return values of
         some calls to the sprintf family of functions and make it available
--- 8365,8371 ----
         is enabled (on by default) the compiler will emit a diagnostic note
         for code that might be affected.
  
! [6]General Optimizer Improvements
  
       * GCC 7 can determine the return value or range of return values of
         some calls to the sprintf family of functions and make it available
*************** Address 0x7fffb8dba990 is located in sta
*** 7255,7272 ****
         information remains the default until consumers of debugging
         information are adjusted.
  
! New Languages and Language specific improvements
  
     OpenACC support in C, C++, and Fortran continues to be maintained and
!    improved. See the [6]OpenACC and [7]Offloading wiki pages for further
     information.
  
!   Ada
  
       * On mainstream native platforms, Ada programs no longer require the
         stack to be made executable in order to run properly.
  
!   BRIG (HSAIL)
  
     Support for processing BRIG 1.0 files was added in this release. BRIG
     is a binary format for HSAIL (Heterogeneous System Architecture
--- 8460,8477 ----
         information remains the default until consumers of debugging
         information are adjusted.
  
! [7]New Languages and Language specific improvements
  
     OpenACC support in C, C++, and Fortran continues to be maintained and
!    improved. See the [8]OpenACC and [9]Offloading wiki pages for further
     information.
  
!   [10]Ada
  
       * On mainstream native platforms, Ada programs no longer require the
         stack to be made executable in order to run properly.
  
!   [11]BRIG (HSAIL)
  
     Support for processing BRIG 1.0 files was added in this release. BRIG
     is a binary format for HSAIL (Heterogeneous System Architecture
*************** New Languages and Language specific impr
*** 7275,7281 ****
     GCC-supported targets. An implementation of an HSAIL runtime library,
     libhsail-rt is also included.
  
!   C family
  
       * New command-line options have been added for the C and C++
         compilers:
--- 8480,8486 ----
     GCC-supported targets. An implementation of an HSAIL runtime library,
     libhsail-rt is also included.
  
!   [12]C family
  
       * New command-line options have been added for the C and C++
         compilers:
*************** note: 'snprintf' output between 3 and 5
*** 7577,7583 ****
              more cases of the problem than in prior GCC versions.
            + The -Wstringop-overflow=type option detects buffer overflow in
              calls to string handling functions like memcpy and strcpy. The
!             option relies on [8]Object Size Checking and has an effect
              similar to defining the _FORTIFY_SOURCE macro.
              -Wstringop-overflow=2 is enabled by default.
              For example, in the following snippet, because the call to
--- 8782,8788 ----
              more cases of the problem than in prior GCC versions.
            + The -Wstringop-overflow=type option detects buffer overflow in
              calls to string handling functions like memcpy and strcpy. The
!             option relies on [13]Object Size Checking and has an effect
              similar to defining the _FORTIFY_SOURCE macro.
              -Wstringop-overflow=2 is enabled by default.
              For example, in the following snippet, because the call to
*************** enum {
*** 7634,7640 ****
    c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b
  };
  
!   C
  
       * The C front end now supports type names _FloatN for floating-point
         types with IEEE interchange formats and _FloatNx for floating-point
--- 8839,8845 ----
    c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b
  };
  
!   [14]C
  
       * The C front end now supports type names _FloatN for floating-point
         types with IEEE interchange formats and _FloatNx for floating-point
*************** enum {
*** 7661,7680 ****
       * Compilation with -fopenmp is now compatible with the C11 _Atomic
         keyword.
  
!   C++
  
       * The C++ front end has experimental support for all of the current
         C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if
         constexpr, class template argument deduction, auto template
         parameters, and structured bindings. For a full list of new
!        features, see [9]the C++ status page.
       * C++17 support for new of over-aligned types can be enabled in other
         modes with the -faligned-new flag.
       * The C++17 evaluation order requirements can be selected in other
         modes with the -fstrong-eval-order flag, or disabled in C++17 mode
         with -fno-strong-eval-order.
       * The default semantics of inherited constructors has changed in all
!        modes, following [10]P0136. Essentially, overload resolution
         happens as if calling the inherited constructor directly, and the
         compiler fills in construction of the other bases and members as
         needed. Most uses should not need any changes. The old behavior can
--- 8866,8885 ----
       * Compilation with -fopenmp is now compatible with the C11 _Atomic
         keyword.
  
!   [15]C++
  
       * The C++ front end has experimental support for all of the current
         C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if
         constexpr, class template argument deduction, auto template
         parameters, and structured bindings. For a full list of new
!        features, see [16]the C++ status page.
       * C++17 support for new of over-aligned types can be enabled in other
         modes with the -faligned-new flag.
       * The C++17 evaluation order requirements can be selected in other
         modes with the -fstrong-eval-order flag, or disabled in C++17 mode
         with -fno-strong-eval-order.
       * The default semantics of inherited constructors has changed in all
!        modes, following [17]P0136. Essentially, overload resolution
         happens as if calling the inherited constructor directly, and the
         compiler fills in construction of the other bases and members as
         needed. Most uses should not need any changes. The old behavior can
*************** test.cc:4:11: error: expected ';' after
*** 7695,7704 ****
       * -Waligned-new has been added to the C++ front end. It warns about
         new of type with extended alignment without -faligned-new.
  
!     Runtime Library (libstdc++)
  
       * The type of exception thrown by iostreams, std::ios_base::failure,
!        now uses the [11]cxx11 ABI.
       * Experimental support for C++17, including the following new
         features:
            + std::string_view;
--- 8900,8909 ----
       * -Waligned-new has been added to the C++ front end. It warns about
         new of type with extended alignment without -faligned-new.
  
!     [18]Runtime Library (libstdc++)
  
       * The type of exception thrown by iostreams, std::ios_base::failure,
!        now uses the [19]cxx11 ABI.
       * Experimental support for C++17, including the following new
         features:
            + std::string_view;
*************** test.cc:4:11: error: expected ';' after
*** 7734,7740 ****
       * A new power-of-two rehashing policy for use with the _Hashtable
         internals, thanks to François Dumont.
  
!   Fortran
  
       * Support for a number of extensions for compatibility with legacy
         code with new flags:
--- 8939,8945 ----
       * A new power-of-two rehashing policy for use with the _Hashtable
         internals, thanks to François Dumont.
  
!   [20]Fortran
  
       * Support for a number of extensions for compatibility with legacy
         code with new flags:
*************** end program test
*** 7764,7770 ****
  At line 8 of file do_check_12.f90
  Fortran runtime error: Loop iterates infinitely
  
!      * Version 4.5 of the [12]OpenMP specification is now partially
         supported in the Fortran compiler; the largest missing item is
         structure element mapping.
       * User-defined derived-type input/output (UDTIO) is added.
--- 8969,8975 ----
  At line 8 of file do_check_12.f90
  Fortran runtime error: Loop iterates infinitely
  
!      * Version 4.5 of the [21]OpenMP specification is now partially
         supported in the Fortran compiler; the largest missing item is
         structure element mapping.
       * User-defined derived-type input/output (UDTIO) is added.
*************** Fortran runtime error: Loop iterates inf
*** 7778,7784 ****
       * Improved diagnostics (polymorphic results in pure functions).
       * Coarray: Support for failed images (Fortan 2015 feature).
  
!   Go
  
       * GCC 7 provides a complete implementation of the Go 1.8.1 user
         packages.
--- 8983,8989 ----
       * Improved diagnostics (polymorphic results in pure functions).
       * Coarray: Support for failed images (Fortan 2015 feature).
  
!   [22]Go
  
       * GCC 7 provides a complete implementation of the Go 1.8.1 user
         packages.
*************** Fortran runtime error: Loop iterates inf
*** 7788,7803 ****
         -fgo-optimize-allocs option. The -fgo-debug-escape prints
         information useful for debugging escape analysis choices.
  
!   Java (GCJ)
  
     The GCC Java front end and associated libjava runtime library have been
     removed from GCC.
  
! libgccjit
  
     The libgccjit API gained support for marking calls as requiring
     tail-call optimization via a new entry point:
!    [13]gcc_jit_rvalue_set_bool_require_tail_call.
  
     libgccjit performs numerous checks at the API boundary, but if these
     succeed, it previously ignored errors and other diagnostics emitted
--- 8993,9008 ----
         -fgo-optimize-allocs option. The -fgo-debug-escape prints
         information useful for debugging escape analysis choices.
  
!   [23]Java (GCJ)
  
     The GCC Java front end and associated libjava runtime library have been
     removed from GCC.
  
! [24]libgccjit
  
     The libgccjit API gained support for marking calls as requiring
     tail-call optimization via a new entry point:
!    [25]gcc_jit_rvalue_set_bool_require_tail_call.
  
     libgccjit performs numerous checks at the API boundary, but if these
     succeed, it previously ignored errors and other diagnostics emitted
*************** libgccjit
*** 7806,7814 ****
     are emitted, they are visible from the libgccjit API, and that the the
     context is flagged as having failed.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * GCC has been updated to the latest revision of the procedure call
         standard (AAPCS64) to provide support for parameter passing when
--- 9011,9019 ----
     are emitted, they are visible from the libgccjit API, and that the the
     context is flagged as having failed.
  
! [26]New Targets and Target Specific Improvements
  
!   [27]AArch64
  
       * GCC has been updated to the latest revision of the procedure call
         standard (AAPCS64) to provide support for parameter passing when
*************** New Targets and Target Specific Improvem
*** 7818,7824 ****
       * The option -msign-return-address= is supported to enable return
         address protection using ARMv8.3-A Pointer Authentication
         Extensions. For more information on the arguments accepted by this
!        option, please refer to [14]AArch64-Options.
       * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point
         Extensions are now supported. They can be used by specifying the
         -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit
--- 9023,9029 ----
       * The option -msign-return-address= is supported to enable return
         address protection using ARMv8.3-A Pointer Authentication
         Extensions. For more information on the arguments accepted by this
!        option, please refer to [28]AArch64-Options.
       * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point
         Extensions are now supported. They can be used by specifying the
         -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit
*************** New Targets and Target Specific Improvem
*** 7834,7840 ****
         options, for example: -mcpu=cortex-a73 or -mtune=vulcan or as
         arguments to the equivalent target attributes and pragmas.
  
!   ARC
  
       * Added support for ARC HS and ARC EM processors.
       * Added support for ARC EM variation found in Intel QuarkSE SoCs.
--- 9039,9045 ----
         options, for example: -mcpu=cortex-a73 or -mtune=vulcan or as
         arguments to the equivalent target attributes and pragmas.
  
!   [29]ARC
  
       * Added support for ARC HS and ARC EM processors.
       * Added support for ARC EM variation found in Intel QuarkSE SoCs.
*************** New Targets and Target Specific Improvem
*** 7844,7850 ****
       * Fixed PIE for ARC CPUs.
       * New CPU templates are supported via multilib.
  
!   ARM
  
       * Support for the ARMv5 and ARMv5E architectures has been deprecated
         (which have no known implementations) and will be removed in a
--- 9049,9055 ----
       * Fixed PIE for ARC CPUs.
       * New CPU templates are supported via multilib.
  
!   [30]ARM
  
       * Support for the ARMv5 and ARMv5E architectures has been deprecated
         (which have no known implementations) and will be removed in a
*************** New Targets and Target Specific Improvem
*** 7873,7883 ****
         of intrinsics such as cdp, ldc, and others.
       * The configure option --with-multilib-list now accepts the value
         rmprofile to build multilib libraries for a range of embedded
!        targets. See our [15]installation instructions for details.
  
!   AVR
  
!      * On the reduced Tiny cores, the progmem [16]variable attribute is
         now properly supported. Respective read-only variables are located
         in flash memory in section .progmem.data. No special code is needed
         to access such variables; the compiler automatically adds an offset
--- 9078,9088 ----
         of intrinsics such as cdp, ldc, and others.
       * The configure option --with-multilib-list now accepts the value
         rmprofile to build multilib libraries for a range of embedded
!        targets. See our [31]installation instructions for details.
  
!   [32]AVR
  
!      * On the reduced Tiny cores, the progmem [33]variable attribute is
         now properly supported. Respective read-only variables are located
         in flash memory in section .progmem.data. No special code is needed
         to access such variables; the compiler automatically adds an offset
*************** const int* get_address (unsigned idx)
*** 7905,7915 ****
         off — or turns into errors — warnings that are reported for
         interrupt service routines (ISRs) which don't follow AVR-LibC's
         naming convention of prefixing ISR names with __vector.
!      * __builtin_avr_nops(n) is a new [17]built-in function that inserts n
         NOP instructions into the instruction stream. n must be a value
         known at compile time.
  
!   IA-32/x86-64
  
       * Support for the AVX-512 Fused Multiply Accumulation Packed Single
         precision (4FMAPS), AVX-512 Vector Neural Network Instructions Word
--- 9110,9120 ----
         off — or turns into errors — warnings that are reported for
         interrupt service routines (ISRs) which don't follow AVR-LibC's
         naming convention of prefixing ISR names with __vector.
!      * __builtin_avr_nops(n) is a new [34]built-in function that inserts n
         NOP instructions into the instruction stream. n must be a value
         known at compile time.
  
!   [35]IA-32/x86-64
  
       * Support for the AVX-512 Fused Multiply Accumulation Packed Single
         precision (4FMAPS), AVX-512 Vector Neural Network Instructions Word
*************** const int* get_address (unsigned idx)
*** 7917,7928 ****
         (VPOPCNTDQ) and Software Guard Extensions (SGX) ISA extensions has
         been added.
  
!   NVPTX
  
       * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs.
!        See the [18]Offloading Wiki on how to configure it.
  
!   PowerPC / PowerPC64 / RS6000
  
       * The PowerPC port now uses LRA by default.
       * GCC now diagnoses inline assembly that clobbers register r2. This
--- 9122,9133 ----
         (VPOPCNTDQ) and Software Guard Extensions (SGX) ISA extensions has
         been added.
  
!   [36]NVPTX
  
       * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs.
!        See the [37]Offloading Wiki on how to configure it.
  
!   [38]PowerPC / PowerPC64 / RS6000
  
       * The PowerPC port now uses LRA by default.
       * GCC now diagnoses inline assembly that clobbers register r2. This
*************** const int* get_address (unsigned idx)
*** 7943,7949 ****
         -mstack-protector-guard-offset= change how the stack protector gets
         the value to use as canary.
  
!   S/390, System z, IBM z Systems, IBM Z
  
       * Support for the IBM z14 processor has been added. When using the
         -march=z14 option, the compiler will generate code making use of
--- 9148,9154 ----
         -mstack-protector-guard-offset= change how the stack protector gets
         the value to use as canary.
  
!   [39]S/390, System z, IBM z Systems, IBM Z
  
       * Support for the IBM z14 processor has been added. When using the
         -march=z14 option, the compiler will generate code making use of
*************** const int* get_address (unsigned idx)
*** 7954,7969 ****
       * Builtins for the new vector instructions have been added and can be
         enabled using the -mzvector option.
  
!   RISC-V
  
       * Support for the RISC-V instruction set has been added.
  
!   RX
  
     Basic support for atomic built-in function has been added. It is
     currently implemented by flipping interrupts off and on as needed.
  
!   SH
  
       * Support for SH5/SH64 has been removed.
       * Improved utilization of delay slots on SH2A.
--- 9159,9174 ----
       * Builtins for the new vector instructions have been added and can be
         enabled using the -mzvector option.
  
!   [40]RISC-V
  
       * Support for the RISC-V instruction set has been added.
  
!   [41]RX
  
     Basic support for atomic built-in function has been added. It is
     currently implemented by flipping interrupts off and on as needed.
  
!   [42]SH
  
       * Support for SH5/SH64 has been removed.
       * Improved utilization of delay slots on SH2A.
*************** const int* get_address (unsigned idx)
*** 7983,8005 ****
            + mov.w R0,@Rn+
            + mov.l R0,@Rn+
  
!   SPARC
  
       * The SPARC port now uses LRA by default.
       * Support for the new Subtract-Extended-with-Carry instruction
         available in SPARC M7 (Niagara 7) has been added.
  
! Operating Systems
  
!   AIX
  
       * Visibility support has been enabled for AIX 7.1 and above.
  
!   Fuchsia
  
!      * Support has been added for the [19]Fuchsia OS.
  
!   RTEMS
  
       * The ABI changes on ARM so that no short enums are used by default.
  
--- 9188,9210 ----
            + mov.w R0,@Rn+
            + mov.l R0,@Rn+
  
!   [43]SPARC
  
       * The SPARC port now uses LRA by default.
       * Support for the new Subtract-Extended-with-Carry instruction
         available in SPARC M7 (Niagara 7) has been added.
  
! [44]Operating Systems
  
!   [45]AIX
  
       * Visibility support has been enabled for AIX 7.1 and above.
  
!   [46]Fuchsia
  
!      * Support has been added for the [47]Fuchsia OS.
  
!   [48]RTEMS
  
       * The ABI changes on ARM so that no short enums are used by default.
  
*************** x-early-inliner-iterations'?
*** 8114,8134 ****
            + GCC's C front end has been extended so that it can parse dumps
              of GCC's internal representations, allowing for DejaGnu tests
              that more directly exercise specific optimization passes. This
!             covers both the [20]GIMPLE representation (for testing
!             higher-level optimizations) and the [21]RTL representation,
              allowing for more direct testing of lower-level details, such
              as register allocation and instruction selection.
  
! GCC 7.1
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 7.2
  
!    This is the [23]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 9319,9339 ----
            + GCC's C front end has been extended so that it can parse dumps
              of GCC's internal representations, allowing for DejaGnu tests
              that more directly exercise specific optimization passes. This
!             covers both the [49]GIMPLE representation (for testing
!             higher-level optimizations) and the [50]RTL representation,
              allowing for more direct testing of lower-level details, such
              as register allocation and instruction selection.
  
! [51]GCC 7.1
  
!    This is the [52]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [53]GCC 7.2
  
!    This is the [54]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 7.2
*** 8153,8161 ****
       * Support for 64-bit PowerPC using the ELFv2 ABI with 64-bit long
         double has been added.
  
! GCC 7.3
  
!    This is the [24]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 9358,9366 ----
       * Support for 64-bit PowerPC using the ELFv2 ABI with 64-bit long
         double has been added.
  
! [55]GCC 7.3
  
!    This is the [56]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 7.3
*** 8164,8170 ****
  
      SPARC
  
!      * Workarounds for the four [25]LEON3FT errata GRLIB-TN-0010..0013
         have been added. Relevant errata are activated by the target
         specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches.
  
--- 9369,9375 ----
  
      SPARC
  
!      * Workarounds for the four [57]LEON3FT errata GRLIB-TN-0010..0013
         have been added. Relevant errata are activated by the target
         specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches.
  
*************** GCC 7.3
*** 8174,8207 ****
  
       * Support has been added for Epiphany target.
  
! GCC 7.4
  
!    This is the [26]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 7.5
  
!    This is the [27]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [28]GCC manuals. If that fails, the
!     [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [30]gcc@gcc.gnu.org. All of [31]our lists have public
      archives.
  
!    Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [33]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 9379,9412 ----
  
       * Support has been added for Epiphany target.
  
! [58]GCC 7.4
  
!    This is the [59]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [60]GCC 7.5
  
!    This is the [61]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 7.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [62]GCC manuals. If that fails, the
!     [63]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [64]gcc@gcc.gnu.org. All of [65]our lists have public
      archives.
  
!    Copyright (C) [66]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [67]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 8210,8243 ****
     3. https://gcc.gnu.org/wiki/LRAIsDefault
     4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
!    6. https://gcc.gnu.org/wiki/OpenACC
!    7. https://gcc.gnu.org/wiki/Offloading
!    8. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html
!    9. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
!   10. https://wg21.link/p0136
!   11. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html
!   12. https://www.openmp.org/specifications/
!   13. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call
!   14. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options
!   15. https://gcc.gnu.org/install/configure.html
!   16. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html
!   17. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html
!   18. https://gcc.gnu.org/wiki/Offloading
!   19. https://fuchsia.googlesource.com/
!   20. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0
!   23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2
!   24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3
!   25. https://www.gaisler.com/index.php/information/app-tech-notes
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4
!   27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5
!   28. https://gcc.gnu.org/onlinedocs/
!   29. mailto:gcc-help@gcc.gnu.org
!   30. mailto:gcc@gcc.gnu.org
!   31. https://gcc.gnu.org/lists.html
!   32. https://www.fsf.org/
!   33. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
                                GCC 6 Release Series
--- 9415,9482 ----
     3. https://gcc.gnu.org/wiki/LRAIsDefault
     4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
!    6. https://gcc.gnu.org/gcc-7/changes.html#general
!    7. https://gcc.gnu.org/gcc-7/changes.html#languages
!    8. https://gcc.gnu.org/wiki/OpenACC
!    9. https://gcc.gnu.org/wiki/Offloading
!   10. https://gcc.gnu.org/gcc-7/changes.html#ada
!   11. https://gcc.gnu.org/gcc-7/changes.html#brig
!   12. https://gcc.gnu.org/gcc-7/changes.html#c-family
!   13. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html
!   14. https://gcc.gnu.org/gcc-7/changes.html#c
!   15. https://gcc.gnu.org/gcc-7/changes.html#cxx
!   16. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
!   17. https://wg21.link/p0136
!   18. https://gcc.gnu.org/gcc-7/changes.html#libstdcxx
!   19. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html
!   20. https://gcc.gnu.org/gcc-7/changes.html#fortran
!   21. https://www.openmp.org/specifications/
!   22. https://gcc.gnu.org/gcc-7/changes.html#go
!   23. https://gcc.gnu.org/gcc-7/changes.html#java
!   24. https://gcc.gnu.org/gcc-7/changes.html#jit
!   25. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call
!   26. https://gcc.gnu.org/gcc-7/changes.html#targets
!   27. https://gcc.gnu.org/gcc-7/changes.html#aarch64
!   28. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options
!   29. https://gcc.gnu.org/gcc-7/changes.html#arc
!   30. https://gcc.gnu.org/gcc-7/changes.html#arm
!   31. https://gcc.gnu.org/install/configure.html
!   32. https://gcc.gnu.org/gcc-7/changes.html#avr
!   33. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html
!   34. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html
!   35. https://gcc.gnu.org/gcc-7/changes.html#x86
!   36. https://gcc.gnu.org/gcc-7/changes.html#nvptx
!   37. https://gcc.gnu.org/wiki/Offloading
!   38. https://gcc.gnu.org/gcc-7/changes.html#powerpc
!   39. https://gcc.gnu.org/gcc-7/changes.html#s390
!   40. https://gcc.gnu.org/gcc-7/changes.html#riscv
!   41. https://gcc.gnu.org/gcc-7/changes.html#rx
!   42. https://gcc.gnu.org/gcc-7/changes.html#sh
!   43. https://gcc.gnu.org/gcc-7/changes.html#sparc
!   44. https://gcc.gnu.org/gcc-7/changes.html#os
!   45. https://gcc.gnu.org/gcc-7/changes.html#aix
!   46. https://gcc.gnu.org/gcc-7/changes.html#fuchsia
!   47. https://fuchsia.googlesource.com/
!   48. https://gcc.gnu.org/gcc-7/changes.html#rtems
!   49. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html
!   50. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html
!   51. https://gcc.gnu.org/gcc-7/changes.html#GCC7.1
!   52. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0
!   53. https://gcc.gnu.org/gcc-7/changes.html#GCC7.2
!   54. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2
!   55. https://gcc.gnu.org/gcc-7/changes.html#GCC7.3
!   56. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3
!   57. https://www.gaisler.com/app-notes-tech-notes-and-white-papers
!   58. https://gcc.gnu.org/gcc-7/changes.html#GCC7.4
!   59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4
!   60. https://gcc.gnu.org/gcc-7/changes.html#GCC7.5
!   61. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5
!   62. https://gcc.gnu.org/onlinedocs/
!   63. mailto:gcc-help@gcc.gnu.org
!   64. mailto:gcc@gcc.gnu.org
!   65. https://gcc.gnu.org/lists.html
!   66. https://www.fsf.org/
!   67. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
                                GCC 6 Release Series
*************** Caveats
*** 8359,8365 ****
         there is a patch in the bug report to allow it to be fixed by
         anybody packaging GCC 6.5 or installing it themselves.
  
! General Optimizer Improvements
  
       * UndefinedBehaviorSanitizer gained a new sanitization option,
         -fsanitize=bounds-strict, which enables strict checking of array
--- 9598,9604 ----
         there is a patch in the bug report to allow it to be fixed by
         anybody packaging GCC 6.5 or installing it themselves.
  
! [6]General Optimizer Improvements
  
       * UndefinedBehaviorSanitizer gained a new sanitization option,
         -fsanitize=bounds-strict, which enables strict checking of array
*************** General Optimizer Improvements
*** 8430,8439 ****
            + Function cloning now more aggressively eliminates unused
              function parameters.
  
! New Languages and Language specific improvements
  
     Compared to GCC 5, the GCC 6 release series includes a much improved
!    implementation of the [6]OpenACC 2.0a specification. Highlights are:
       * In addition to single-threaded host-fallback execution, offloading
         is supported for nvptx (Nvidia GPUs) on x86_64 and PowerPC 64-bit
         little-endian GNU/Linux host systems. For nvptx offloading, with
--- 9669,9678 ----
            + Function cloning now more aggressively eliminates unused
              function parameters.
  
! [7]New Languages and Language specific improvements
  
     Compared to GCC 5, the GCC 6 release series includes a much improved
!    implementation of the [8]OpenACC 2.0a specification. Highlights are:
       * In addition to single-threaded host-fallback execution, offloading
         is supported for nvptx (Nvidia GPUs) on x86_64 and PowerPC 64-bit
         little-endian GNU/Linux host systems. For nvptx offloading, with
*************** New Languages and Language specific impr
*** 8463,8474 ****
         argument, the function call evaluates to a compile-time constant
         value only for C and C++ but not for Fortran.
  
!    See the [7]OpenACC and [8]Offloading wiki pages for further
     information.
  
!   C family
  
!      * Version 4.5 of the [9]OpenMP specification is now supported in the
         C and C++ compilers.
       * The C and C++ compilers now support attributes on enumerators. For
         instance, it is now possible to mark enumerators as deprecated:
--- 9702,9713 ----
         argument, the function call evaluates to a compile-time constant
         value only for C and C++ but not for Fortran.
  
!    See the [9]OpenACC and [10]Offloading wiki pages for further
     information.
  
!   [11]C family
  
!      * Version 4.5 of the [12]OpenMP specification is now supported in the
         C and C++ compilers.
       * The C and C++ compilers now support attributes on enumerators. For
         instance, it is now possible to mark enumerators as deprecated:
*************** you mean 'color'?
*** 8534,8540 ****
            + -Wmisleading-indentation warns about places where the
              indentation of the code gives a misleading idea of the block
              structure of the code to a human reader. For example, given
!             [10]CVE-2014-1266:
  
  sslKeyExchange.c: In function 'SSLVerifySignedServerKeyExchange':
  sslKeyExchange.c:629:3: warning: this 'if' clause does not guard... [-Wmisleadin
--- 9773,9779 ----
            + -Wmisleading-indentation warns about places where the
              indentation of the code gives a misleading idea of the block
              structure of the code to a human reader. For example, given
!             [13]CVE-2014-1266:
  
  sslKeyExchange.c: In function 'SSLVerifySignedServerKeyExchange':
  sslKeyExchange.c:629:3: warning: this 'if' clause does not guard... [-Wmisleadin
*************** test.c:3:1: error: version control confl
*** 8554,8560 ****
   <<<<<<< HEAD
   ^~~~~~~
  
!   C
  
       * It is possible to disable warnings when an initialized field of a
         structure or a union with side effects is being overridden when
--- 9793,9799 ----
   <<<<<<< HEAD
   ^~~~~~~
  
!   [14]C
  
       * It is possible to disable warnings when an initialized field of a
         structure or a union with side effects is being overridden when
*************** test.c:3:1: error: version control confl
*** 8564,8584 ****
         and unions has been introduced. It specifies the storage order (aka
         endianness) in memory of scalar fields in structures or unions.
  
!   C++
  
       * The default mode has been changed to -std=gnu++14.
!      * [11]C++ Concepts are now supported when compiling with -fconcepts.
       * -flifetime-dse is more aggressive in dead-store elimination in
         situations where a memory store to a location precedes a
         constructor to that memory location.
!      * G++ now supports [12]C++17 fold expressions, u8 character literals,
         extended static_assert, and nested namespace definitions.
       * G++ now allows constant evaluation for all non-type template
         arguments.
       * G++ now supports C++ Transactional Memory when compiling with
         -fgnu-tm.
  
!     Runtime Library (libstdc++)
  
       * Extensions to the C++ Library to support mathematical special
         functions (ISO/IEC 29124:2010), thanks to Edward Smith-Rowland.
--- 9803,9823 ----
         and unions has been introduced. It specifies the storage order (aka
         endianness) in memory of scalar fields in structures or unions.
  
!   [15]C++
  
       * The default mode has been changed to -std=gnu++14.
!      * [16]C++ Concepts are now supported when compiling with -fconcepts.
       * -flifetime-dse is more aggressive in dead-store elimination in
         situations where a memory store to a location precedes a
         constructor to that memory location.
!      * G++ now supports [17]C++17 fold expressions, u8 character literals,
         extended static_assert, and nested namespace definitions.
       * G++ now allows constant evaluation for all non-type template
         arguments.
       * G++ now supports C++ Transactional Memory when compiling with
         -fgnu-tm.
  
!     [18]Runtime Library (libstdc++)
  
       * Extensions to the C++ Library to support mathematical special
         functions (ISO/IEC 29124:2010), thanks to Edward Smith-Rowland.
*************** test.c:3:1: error: version control confl
*** 8608,8614 ****
       * Improved std::locale support for DragonFly and FreeBSD, thanks to
         John Marino and Andreas Tobler.
  
!   Fortran
  
       * Fortran 2008 SUBMODULE support.
       * Fortran 2015 EVENT_TYPE, EVENT_POST, EVENT_WAIT, and EVENT_QUERY
--- 9847,9853 ----
       * Improved std::locale support for DragonFly and FreeBSD, thanks to
         John Marino and Andreas Tobler.
  
!   [19]Fortran
  
       * Fortran 2008 SUBMODULE support.
       * Fortran 2015 EVENT_TYPE, EVENT_POST, EVENT_WAIT, and EVENT_QUERY
*************** test.c:3:1: error: version control confl
*** 8626,8644 ****
         divisions of integer constants which are truncated. This option is
         included in -Wall by default.
  
! libgccjit
  
       * The driver code is now run in-process within libgccjit, providing a
         small speed-up of the compilation process.
       * The API has gained entrypoints for
!           + [13]timing how long was spent in different parts of code,
!           + [14]creating switch statements,
!           + [15]allowing unreachable basic blocks in a function, and
!           + [16]adding arbitrary command-line options to a compilation.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * A number of AArch64-specific options have been added. The most
         important ones are summarised in this section; for more detailed
--- 9865,9883 ----
         divisions of integer constants which are truncated. This option is
         included in -Wall by default.
  
! [20]libgccjit
  
       * The driver code is now run in-process within libgccjit, providing a
         small speed-up of the compilation process.
       * The API has gained entrypoints for
!           + [21]timing how long was spent in different parts of code,
!           + [22]creating switch statements,
!           + [23]allowing unreachable basic blocks in a function, and
!           + [24]adding arbitrary command-line options to a compilation.
  
! [25]New Targets and Target Specific Improvements
  
!   [26]AArch64
  
       * A number of AArch64-specific options have been added. The most
         important ones are summarised in this section; for more detailed
*************** New Targets and Target Specific Improvem
*** 8652,8658 ****
         is limited to 28KiB under the LP64 SysV ABI, and 15KiB under the
         ILP32 SysV ABI.
       * The AArch64 port now supports target attributes and pragmas. Please
!        refer to the [17]documentation for details of available attributes
         and pragmas as well as usage instructions.
       * Link-time optimization across translation units with different
         target-specific options is now supported.
--- 9891,9897 ----
         is limited to 28KiB under the LP64 SysV ABI, and 15KiB under the
         ILP32 SysV ABI.
       * The AArch64 port now supports target attributes and pragmas. Please
!        refer to the [27]documentation for details of available attributes
         and pragmas as well as usage instructions.
       * Link-time optimization across translation units with different
         target-specific options is now supported.
*************** New Targets and Target Specific Improvem
*** 8698,8704 ****
         for big-endian targets have been fixed resulting in improved code
         generation for ACLE intrinsics with -mbig-endian.
  
!   ARM
  
       * Support for revisions of the ARM architecture prior to ARMv4t has
         been deprecated and will be removed in a future GCC release. The
--- 9937,9943 ----
         for big-endian targets have been fixed resulting in improved code
         generation for ACLE intrinsics with -mbig-endian.
  
!   [28]ARM
  
       * Support for revisions of the ARM architecture prior to ARMv4t has
         been deprecated and will be removed in a future GCC release. The
*************** New Targets and Target Specific Improvem
*** 8710,8716 ****
         arm7tdmi is still supported. The values of -march that are
         deprecated are: armv2,armv2a,armv3,armv3m,armv4.
       * The ARM port now supports target attributes and pragmas. Please
!        refer to the [18]documentation for details of available attributes
         and pragmas as well as usage instructions.
       * Support has been added for the following processors (GCC
         identifiers in parentheses): ARM Cortex-A32 (cortex-a32), ARM
--- 9949,9955 ----
         arm7tdmi is still supported. The values of -march that are
         deprecated are: armv2,armv2a,armv3,armv3m,armv4.
       * The ARM port now supports target attributes and pragmas. Please
!        refer to the [29]documentation for details of available attributes
         and pragmas as well as usage instructions.
       * Support has been added for the following processors (GCC
         identifiers in parentheses): ARM Cortex-A32 (cortex-a32), ARM
*************** New Targets and Target Specific Improvem
*** 8718,8724 ****
         identifiers can be used as arguments to the -mcpu or -mtune
         options, for example: -mcpu=cortex-a32 or -mtune=cortex-a35.
  
!   Heterogeneous Systems Architecture
  
       * GCC can now generate HSAIL (Heterogeneous System Architecture
         Intermediate Language) for simple OpenMP device constructs if
--- 9957,9963 ----
         identifiers can be used as arguments to the -mcpu or -mtune
         options, for example: -mcpu=cortex-a32 or -mtune=cortex-a35.
  
!   [30]Heterogeneous Systems Architecture
  
       * GCC can now generate HSAIL (Heterogeneous System Architecture
         Intermediate Language) for simple OpenMP device constructs if
*************** New Targets and Target Specific Improvem
*** 8739,8745 ****
  
         into parallel HSA GPU kernels.
  
!   IA-32/x86-64
  
       * GCC now supports the Intel CPU named Skylake with AVX-512
         extensions through -march=skylake-avx512. The switch enables the
--- 9978,9984 ----
  
         into parallel HSA GPU kernels.
  
!   [31]IA-32/x86-64
  
       * GCC now supports the Intel CPU named Skylake with AVX-512
         extensions through -march=skylake-avx512. The switch enables the
*************** New Targets and Target Specific Improvem
*** 8760,8775 ****
       * Support for address spaces __seg_fs, __seg_gs, and __seg_tls. These
         can be used to access data via the %fs and %gs segments without
         having to resort to inline assembly. Please refer to the
!        [19]documentation for usage instructions.
       * Support for AMD Zen (family 17h) processors is now available
         through the -march=znver1 and -mtune=znver1 options.
  
!   MeP
  
       * Support for the MeP (mep-elf) architecture has been deprecated and
         will be removed in a future GCC release.
  
!   MSP430
  
       * The MSP430 compiler now has the ability to automatically distribute
         code and data between low memory (addresses below 64K) and high
--- 9999,10014 ----
       * Support for address spaces __seg_fs, __seg_gs, and __seg_tls. These
         can be used to access data via the %fs and %gs segments without
         having to resort to inline assembly. Please refer to the
!        [32]documentation for usage instructions.
       * Support for AMD Zen (family 17h) processors is now available
         through the -march=znver1 and -mtune=znver1 options.
  
!   [33]MeP
  
       * Support for the MeP (mep-elf) architecture has been deprecated and
         will be removed in a future GCC release.
  
!   [34]MSP430
  
       * The MSP430 compiler now has the ability to automatically distribute
         code and data between low memory (addresses below 64K) and high
*************** New Targets and Target Specific Improvem
*** 8787,8793 ****
         compiler what to do with objects that do not have one of these new
         attributes.
  
!   PowerPC / PowerPC64 / RS6000
  
       * PowerPC64 now supports IEEE 128-bit floating-point using the
         __float128 data type. In GCC 6, this is not enabled by default, but
--- 10026,10032 ----
         compiler what to do with objects that do not have one of these new
         attributes.
  
!   [35]PowerPC / PowerPC64 / RS6000
  
       * PowerPC64 now supports IEEE 128-bit floating-point using the
         __float128 data type. In GCC 6, this is not enabled by default, but
*************** New Targets and Target Specific Improvem
*** 8861,8867 ****
       * The "q", "S", "T", and "t" asm-constraints have been removed.
       * The "b", "B", "m", "M", and "W" format modifiers have been removed.
  
!   S/390, System z, IBM z Systems
  
       * Support for the IBM z13 processor has been added. When using the
         -march=z13 option, the compiler will generate code making use of
--- 10100,10106 ----
       * The "q", "S", "T", and "t" asm-constraints have been removed.
       * The "b", "B", "m", "M", and "W" format modifiers have been removed.
  
!   [36]S/390, System z, IBM z Systems
  
       * Support for the IBM z13 processor has been added. When using the
         -march=z13 option, the compiler will generate code making use of
*************** New Targets and Target Specific Improvem
*** 8888,8894 ****
         setting for that system. If GCC is unable to detect the host CPU
         these options have no effect.
       * The IBM z Systems port now supports target attributes and pragmas.
!        Please refer to the [20]documentation for details of available
         attributes and pragmas as well as usage instructions.
       * -fsplit-stack is now supported as part of the IBM z Systems port.
         This feature requires a recent gold linker to be used.
--- 10127,10133 ----
         setting for that system. If GCC is unable to detect the host CPU
         these options have no effect.
       * The IBM z Systems port now supports target attributes and pragmas.
!        Please refer to the [37]documentation for details of available
         attributes and pragmas as well as usage instructions.
       * -fsplit-stack is now supported as part of the IBM z Systems port.
         This feature requires a recent gold linker to be used.
*************** New Targets and Target Specific Improvem
*** 8897,8910 ****
         from now on defaults to -march=z900 if not specified otherwise.
         -march=native on a g5/g6 machine will default to -march=z900.
  
!   SH
  
       * Support for SH5 / SH64 has been declared obsolete and will be
         removed in future releases.
       * Support for the FDPIC ABI has been added. It can be enabled using
         the new -mfdpic target option and --enable-fdpic configure option.
  
!   SPARC
  
       * An ABI bug has been fixed in 64-bit mode. Unfortunately, this
         change will break binary compatibility with earlier releases for
--- 10136,10149 ----
         from now on defaults to -march=z900 if not specified otherwise.
         -march=native on a g5/g6 machine will default to -march=z900.
  
!   [38]SH
  
       * Support for SH5 / SH64 has been declared obsolete and will be
         removed in future releases.
       * Support for the FDPIC ABI has been added. It can be enabled using
         the new -mfdpic target option and --enable-fdpic configure option.
  
!   [39]SPARC
  
       * An ABI bug has been fixed in 64-bit mode. Unfortunately, this
         change will break binary compatibility with earlier releases for
*************** New Targets and Target Specific Improvem
*** 8916,8939 ****
         register %d32 in lieu of on the stack as per the SPARC calling
         conventions.
  
! Operating Systems
  
!   AIX
  
       * DWARF debugging support for AIX 7.1 has been enabled as an optional
         debugging format. A more recent Technology Level (TL) and GCC built
         with that level are required for full exploitation of DWARF
         debugging capabilities.
  
!   Linux
  
!      * Support for the [21]musl C library was added for the AArch64, ARM,
         MicroBlaze, MIPS, MIPS64, PowerPC, PowerPC64, SH, i386, x32 and
         x86_64 targets. It can be selected using the new -mmusl option in
         case musl is not the default libc. GCC defaults to musl libc if it
         is built with a target triplet matching the *-linux-musl* pattern.
  
!   RTEMS
  
       * The RTEMS thread model implementation changed. Mutexes now use
         self-contained objects defined in newlib <sys/lock.h> instead of
--- 10155,10178 ----
         register %d32 in lieu of on the stack as per the SPARC calling
         conventions.
  
! [40]Operating Systems
  
!   [41]AIX
  
       * DWARF debugging support for AIX 7.1 has been enabled as an optional
         debugging format. A more recent Technology Level (TL) and GCC built
         with that level are required for full exploitation of DWARF
         debugging capabilities.
  
!   [42]Linux
  
!      * Support for the [43]musl C library was added for the AArch64, ARM,
         MicroBlaze, MIPS, MIPS64, PowerPC, PowerPC64, SH, i386, x32 and
         x86_64 targets. It can be selected using the new -mmusl option in
         case musl is not the default libc. GCC defaults to musl libc if it
         is built with a target triplet matching the *-linux-musl* pattern.
  
!   [44]RTEMS
  
       * The RTEMS thread model implementation changed. Mutexes now use
         self-contained objects defined in newlib <sys/lock.h> instead of
*************** Operating Systems
*** 8947,8953 ****
         thread pools for each scheduler instance via the environment
         variable GOMP_RTEMS_THREAD_POOLS.
  
!   Solaris
  
       * Solaris 12 is now fully supported. Minimal support had already been
         present in GCC 5.3.
--- 10186,10192 ----
         thread pools for each scheduler instance via the environment
         variable GOMP_RTEMS_THREAD_POOLS.
  
!   [45]Solaris
  
       * Solaris 12 is now fully supported. Minimal support had already been
         present in GCC 5.3.
*************** Operating Systems
*** 8959,8965 ****
         linker.
       * libvtv has been ported to Solaris 11 and up.
  
!   Windows
  
       * The option -mstackrealign is now automatically activated in 32-bit
         mode whenever the use of SSE instructions is requested.
--- 10198,10204 ----
         linker.
       * libvtv has been ported to Solaris 11 and up.
  
!   [46]Windows
  
       * The option -mstackrealign is now automatically activated in 32-bit
         mode whenever the use of SSE instructions is requested.
*************** gcc: error: unrecognized command line op
*** 8976,8984 ****
       * The --enable-default-pie configure option enables generation of PIE
         by default.
  
!                                     GCC 6.2
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 10215,10223 ----
       * The --enable-default-pie configure option enables generation of PIE
         by default.
  
!                                   [47]GCC 6.2
  
!    This is the [48]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 8992,9000 ****
       * Support for the SPARC M7 (Niagara 7) processor has been added.
       * Support for the VIS 4.0 instruction set has been added.
  
!                                     GCC 6.3
  
!    This is the [23]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 10231,10239 ----
       * Support for the SPARC M7 (Niagara 7) processor has been added.
       * Support for the VIS 4.0 instruction set has been added.
  
!                                   [49]GCC 6.3
  
!    This is the [50]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 9003,9045 ****
  
    IA-32/x86-64
  
!      * Support for the [24]deprecated pcommit instruction has been
         removed.
  
!                                     GCC 6.4
  
!    This is the [25]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! Operating Systems
  
!   RTEMS
  
       * The ABI changes on ARM so that no short enums are used by default.
  
!                                     GCC 6.5
  
!    This is the [26]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [27]GCC manuals. If that fails, the
!     [28]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [29]gcc@gcc.gnu.org. All of [30]our lists have public
      archives.
  
!    Copyright (C) [31]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [32]maintained by the GCC team. Last modified
!    2023-02-20.
  
  References
  
--- 10242,10284 ----
  
    IA-32/x86-64
  
!      * Support for the [51]deprecated pcommit instruction has been
         removed.
  
!                                   [52]GCC 6.4
  
!    This is the [53]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [54]Operating Systems
  
!   [55]RTEMS
  
       * The ABI changes on ARM so that no short enums are used by default.
  
!                                   [56]GCC 6.5
  
!    This is the [57]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 6.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [58]GCC manuals. If that fails, the
!     [59]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [60]gcc@gcc.gnu.org. All of [61]our lists have public
      archives.
  
!    Copyright (C) [62]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [63]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 9048,9080 ****
     3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html
     4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822
!    6. https://www.openacc.org/
!    7. https://gcc.gnu.org/wiki/OpenACC
!    8. https://gcc.gnu.org/wiki/Offloading
!    9. https://www.openmp.org/specifications/
!   10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf
!   12. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
!   13. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html
!   14. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch
!   15. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/contexts.html#gcc_jit_context_set_bool_allow_unreachable_blocks
!   16. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/contexts.html#gcc_jit_context_add_command_line_option
!   17. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/AArch64-Function-Attributes.html#AArch64-Function-Attributes
!   18. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/ARM-Function-Attributes.html#ARM-Function-Attributes
!   19. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Named-Address-Spaces.html#Named-Address-Spaces
!   20. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/S_002f390-Function-Attributes.html#S_002f390-Function-Attributes
!   21. http://www.musl-libc.org/
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2
!   23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3
!   24. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html
!   25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5
!   27. https://gcc.gnu.org/onlinedocs/
!   28. mailto:gcc-help@gcc.gnu.org
!   29. mailto:gcc@gcc.gnu.org
!   30. https://gcc.gnu.org/lists.html
!   31. https://www.fsf.org/
!   32. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-5/index.html
                                GCC 5 Release Series
--- 10287,10350 ----
     3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html
     4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822
!    6. https://gcc.gnu.org/gcc-6/changes.html#general
!    7. https://gcc.gnu.org/gcc-6/changes.html#languages
!    8. https://www.openacc.org/
!    9. https://gcc.gnu.org/wiki/OpenACC
!   10. https://gcc.gnu.org/wiki/Offloading
!   11. https://gcc.gnu.org/gcc-6/changes.html#c-family
!   12. https://www.openmp.org/specifications/
!   13. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266
!   14. https://gcc.gnu.org/gcc-6/changes.html#c
!   15. https://gcc.gnu.org/gcc-6/changes.html#cxx
!   16. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf
!   17. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
!   18. https://gcc.gnu.org/gcc-6/changes.html#libstdcxx
!   19. https://gcc.gnu.org/gcc-6/changes.html#fortran
!   20. https://gcc.gnu.org/gcc-6/changes.html#jit
!   21. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch
!   23. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/contexts.html#gcc_jit_context_set_bool_allow_unreachable_blocks
!   24. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/contexts.html#gcc_jit_context_add_command_line_option
!   25. https://gcc.gnu.org/gcc-6/changes.html#targets
!   26. https://gcc.gnu.org/gcc-6/changes.html#aarch64
!   27. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/AArch64-Function-Attributes.html#AArch64-Function-Attributes
!   28. https://gcc.gnu.org/gcc-6/changes.html#arm
!   29. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/ARM-Function-Attributes.html#ARM-Function-Attributes
!   30. https://gcc.gnu.org/gcc-6/changes.html#hsa
!   31. https://gcc.gnu.org/gcc-6/changes.html#x86
!   32. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Named-Address-Spaces.html#Named-Address-Spaces
!   33. https://gcc.gnu.org/gcc-6/changes.html#mep
!   34. https://gcc.gnu.org/gcc-6/changes.html#msp430
!   35. https://gcc.gnu.org/gcc-6/changes.html#powerpc
!   36. https://gcc.gnu.org/gcc-6/changes.html#s390
!   37. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/S_002f390-Function-Attributes.html#S_002f390-Function-Attributes
!   38. https://gcc.gnu.org/gcc-6/changes.html#sh
!   39. https://gcc.gnu.org/gcc-6/changes.html#sparc
!   40. https://gcc.gnu.org/gcc-6/changes.html#os
!   41. https://gcc.gnu.org/gcc-6/changes.html#aix
!   42. https://gcc.gnu.org/gcc-6/changes.html#linux
!   43. http://www.musl-libc.org/
!   44. https://gcc.gnu.org/gcc-6/changes.html#rtems
!   45. https://gcc.gnu.org/gcc-6/changes.html#solaris
!   46. https://gcc.gnu.org/gcc-6/changes.html#windows
!   47. https://gcc.gnu.org/gcc-6/changes.html#GCC6.2
!   48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2
!   49. https://gcc.gnu.org/gcc-6/changes.html#GCC6.3
!   50. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3
!   51. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html
!   52. https://gcc.gnu.org/gcc-6/changes.html#GCC6.4
!   53. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4
!   54. https://gcc.gnu.org/gcc-6/changes.html#os64
!   55. https://gcc.gnu.org/gcc-6/changes.html#rtems64
!   56. https://gcc.gnu.org/gcc-6/changes.html#GCC6.5
!   57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5
!   58. https://gcc.gnu.org/onlinedocs/
!   59. mailto:gcc-help@gcc.gnu.org
!   60. mailto:gcc@gcc.gnu.org
!   61. https://gcc.gnu.org/lists.html
!   62. https://www.fsf.org/
!   63. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-5/index.html
                                GCC 5 Release Series
*************** Caveats
*** 9186,9200 ****
         C++11 traits is_trivially_default_constructible,
         is_trivially_copy_constructible and is_trivially_copy_assignable
         should be used instead.
-      * On AVR, support has been added for the devices
-        ATtiny4/5/9/10/20/40. This requires Binutils 2.25 or newer.
-      * The AVR port uses a new scheme to describe supported devices: For
-        each supported device the compiler provides a device-specific
-        [2]spec file. If the compiler is used together with AVR-LibC, this
-        requires at least GCC 5.2 and a version of AVR-LibC which
-        implements [3]feature #44574.
  
! General Optimizer Improvements
  
       * Inter-procedural optimization improvements:
            + An Identical Code Folding (ICF) pass (controlled via
--- 10456,10463 ----
         C++11 traits is_trivially_default_constructible,
         is_trivially_copy_constructible and is_trivially_copy_assignable
         should be used instead.
  
! [2]General Optimizer Improvements
  
       * Inter-procedural optimization improvements:
            + An Identical Code Folding (ICF) pass (controlled via
*************** General Optimizer Improvements
*** 9318,9326 ****
         bounds to detect pointer bounds violations (overflows). The Pointer
         Bounds Checker is available on x86/x86-64 GNU/Linux targets with a
         new ISA extension Intel MPX support. See the Pointer Bounds Checker
!        [4]Wiki page for more details.
  
! New Languages and Language specific improvements
  
       * [5]OpenMP 4.0 specification offloading features are now supported
         by the C, C++, and Fortran compilers. Generic changes:
--- 10581,10589 ----
         bounds to detect pointer bounds violations (overflows). The Pointer
         Bounds Checker is available on x86/x86-64 GNU/Linux targets with a
         new ISA extension Intel MPX support. See the Pointer Bounds Checker
!        [3]Wiki page for more details.
  
! [4]New Languages and Language specific improvements
  
       * [5]OpenMP 4.0 specification offloading features are now supported
         by the C, C++, and Fortran compilers. Generic changes:
*************** New Languages and Language specific impr
*** 9335,9344 ****
         devices such as GPUs. See [7]the OpenACC wiki page for more
         information.
  
!   C family
  
       * The default setting of the -fdiagnostics-color= command-line option
!        is now [8]configurable when building GCC using configuration option
         --with-diagnostics-color=. The possible values are: never, always,
         auto and auto-if-env. The new default auto uses color only when the
         standard error is a terminal. The default in GCC 4.9 was
--- 10598,10607 ----
         devices such as GPUs. See [7]the OpenACC wiki page for more
         information.
  
!   [8]C family
  
       * The default setting of the -fdiagnostics-color= command-line option
!        is now [9]configurable when building GCC using configuration option
         --with-diagnostics-color=. The possible values are: never, always,
         auto and auto-if-env. The new default auto uses color only when the
         standard error is a terminal. The default in GCC 4.9 was
*************** New Languages and Language specific impr
*** 9391,9397 ****
       * A new built-in function-like macro to determine the existence of an
         attribute, __has_attribute, has been added. The equivalent built-in
         macro __has_cpp_attribute was added to C++ to support
!        [9]Feature-testing recommendations for C++. The macro
         __has_attribute is added to all C-like languages as an extension:
  
  int
--- 10654,10660 ----
       * A new built-in function-like macro to determine the existence of an
         attribute, __has_attribute, has been added. The equivalent built-in
         macro __has_cpp_attribute was added to C++ to support
!        [10]Feature-testing recommendations for C++. The macro
         __has_attribute is added to all C-like languages as an extension:
  
  int
*************** calloc (size_t x, size_t y)
*** 9439,9445 ****
         C++, and for C99 and later C versions. Various bugs in the
         implementation of extended identifiers have been fixed.
  
!   C
  
       * The default mode has been changed to -std=gnu11.
       * A new command-line option -Wc90-c99-compat has been added to warn
--- 10702,10708 ----
         C++, and for C99 and later C versions. Various bugs in the
         implementation of extended identifiers have been fixed.
  
!   [11]C
  
       * The default mode has been changed to -std=gnu11.
       * A new command-line option -Wc90-c99-compat has been added to warn
*************** calloc (size_t x, size_t y)
*** 9463,9488 ****
       * The -pg command-line option now only affects the current file in an
         LTO build.
  
!   C++
  
!      * G++ now supports [10]C++14 variable templates.
       * -Wnon-virtual-dtor doesn't warn anymore for final classes.
       * Excessive template instantiation depth is now a fatal error. This
         prevents excessive diagnostics that usually do not help to identify
         the problem.
       * G++ and libstdc++ now implement the feature-testing macros from
!        [11]Feature-testing recommendations for C++.
       * G++ now allows typename in a template template parameter.
  
  template<template<typename> typename X> struct D; // OK
  
!      * G++ now supports [12]C++14 aggregates with non-static data member
         initializers.
  
  struct A { int i, j = i; };
  A a = { 42 }; // a.j is also 42
  
!      * G++ now supports [13]C++14 extended constexpr.
  
  constexpr int f (int i)
  {
--- 10726,10751 ----
       * The -pg command-line option now only affects the current file in an
         LTO build.
  
!   [12]C++
  
!      * G++ now supports [13]C++14 variable templates.
       * -Wnon-virtual-dtor doesn't warn anymore for final classes.
       * Excessive template instantiation depth is now a fatal error. This
         prevents excessive diagnostics that usually do not help to identify
         the problem.
       * G++ and libstdc++ now implement the feature-testing macros from
!        [14]Feature-testing recommendations for C++.
       * G++ now allows typename in a template template parameter.
  
  template<template<typename> typename X> struct D; // OK
  
!      * G++ now supports [15]C++14 aggregates with non-static data member
         initializers.
  
  struct A { int i, j = i; };
  A a = { 42 }; // a.j is also 42
  
!      * G++ now supports [16]C++14 extended constexpr.
  
  constexpr int f (int i)
  {
*************** constexpr int f (int i)
*** 9494,9500 ****
  
  constexpr int i = f(42); // i is 42
  
!      * G++ now supports the [14]C++14 sized deallocation functions.
  
  void operator delete (void *, std::size_t) noexcept;
  void operator delete[] (void *, std::size_t) noexcept;
--- 10757,10763 ----
  
  constexpr int i = f(42); // i is 42
  
!      * G++ now supports the [17]C++14 sized deallocation functions.
  
  void operator delete (void *, std::size_t) noexcept;
  void operator delete[] (void *, std::size_t) noexcept;
*************** void operator delete[] (void *, std::siz
*** 9507,9513 ****
         namespaces) to improve code generation. These warnings can be used
         at compile time, but they are more useful in combination with
         link-time optimization.
!      * G++ no longer supports [15]N3639 variable length arrays, as they
         were removed from the C++14 working paper prior to ratification.
         GNU VLAs are still supported, so VLA support is now the same in
         C++14 mode as in C++98 and C++11 modes.
--- 10770,10776 ----
         namespaces) to improve code generation. These warnings can be used
         at compile time, but they are more useful in combination with
         link-time optimization.
!      * G++ no longer supports [18]N3639 variable length arrays, as they
         were removed from the C++14 working paper prior to ratification.
         GNU VLAs are still supported, so VLA support is now the same in
         C++14 mode as in C++98 and C++11 modes.
*************** void operator delete[] (void *, std::siz
*** 9524,9532 ****
         member with type std::nullptr_t which changes position due to this
         change.
  
!     Runtime Library (libstdc++)
  
!      * A [16]Dual ABI is provided by the library. A new ABI is enabled by
         default. The old ABI is still supported and can be used by defining
         the macro _GLIBCXX_USE_CXX11_ABI to 0 before including any C++
         standard library headers.
--- 10787,10795 ----
         member with type std::nullptr_t which changes position due to this
         change.
  
!     [19]Runtime Library (libstdc++)
  
!      * A [20]Dual ABI is provided by the library. A new ABI is enabled by
         default. The old ABI is still supported and can be used by defining
         the macro _GLIBCXX_USE_CXX11_ABI to 0 before including any C++
         standard library headers.
*************** void operator delete[] (void *, std::siz
*** 9535,9541 ****
         counting.
       * A new implementation of std::list is enabled by default, with an
         O(1) size() function;
!      * [17]Full support for C++11, including the following new features:
            + std::deque and std::vector<bool> meet the allocator-aware
              container requirements;
            + movable and swappable iostream classes;
--- 10798,10804 ----
         counting.
       * A new implementation of std::list is enabled by default, with an
         O(1) size() function;
!      * [21]Full support for C++11, including the following new features:
            + std::deque and std::vector<bool> meet the allocator-aware
              container requirements;
            + movable and swappable iostream classes;
*************** void operator delete[] (void *, std::siz
*** 9558,9571 ****
         prevent the use of hexadecimal notation for floating point types
         use str.unsetf(std::ios_base::floatfield) to clear the relevant
         bits in str.flags().
!      * [18]Full experimental support for C++14, including the following
         new features:
            + std::is_final type trait;
            + heterogeneous comparison lookup in associative containers.
            + global functions cbegin, cend, rbegin, rend, crbegin, and
              crend for range access to containers, arrays and initializer
              lists.
!      * [19]Improved experimental support for the Library Fundamentals TS,
         including:
            + class std::experimental::any;
            + function template std::experimental::apply;
--- 10821,10834 ----
         prevent the use of hexadecimal notation for floating point types
         use str.unsetf(std::ios_base::floatfield) to clear the relevant
         bits in str.flags().
!      * [22]Full experimental support for C++14, including the following
         new features:
            + std::is_final type trait;
            + heterogeneous comparison lookup in associative containers.
            + global functions cbegin, cend, rbegin, rend, crbegin, and
              crend for range access to containers, arrays and initializer
              lists.
!      * [23]Improved experimental support for the Library Fundamentals TS,
         including:
            + class std::experimental::any;
            + function template std::experimental::apply;
*************** void operator delete[] (void *, std::siz
*** 9576,9588 ****
            + function template std::experimental::not_fn.
       * New random number distributions logistic_distribution and
         uniform_on_sphere_distribution as extensions.
!      * [20]GDB Xmethods for containers and std::unique_ptr.
  
!   Fortran
  
       * Compatibility notice:
            + The version of the module files (.mod) has been incremented.
!           + For free-form source files [21]-Werror=line-truncation is now
              enabled by default. Note that comments exceeding the line
              length are not diagnosed. (For fixed-form source code, the
              same warning is available but turned off by default, such that
--- 10839,10851 ----
            + function template std::experimental::not_fn.
       * New random number distributions logistic_distribution and
         uniform_on_sphere_distribution as extensions.
!      * [24]GDB Xmethods for containers and std::unique_ptr.
  
!   [25]Fortran
  
       * Compatibility notice:
            + The version of the module files (.mod) has been incremented.
!           + For free-form source files [26]-Werror=line-truncation is now
              enabled by default. Note that comments exceeding the line
              length are not diagnosed. (For fixed-form source code, the
              same warning is available but turned off by default, such that
*************** void operator delete[] (void *, std::siz
*** 9596,9604 ****
              by -Wall, -pedantic and the f95, f2003, f2008 and f2008ts
              options of -std=.
       * Incomplete support for colorizing diagnostics emitted by gfortran
!        has been added. The option [22]-fdiagnostics-color controls when
         color is used in diagnostics. The default value of this option can
!        be [23]configured when building GCC. The GCC_COLORS environment
         variable can be used to customize the colors or disable coloring
         completely. Sample diagnostics output:
        $ gfortran -fdiagnostics-color=always -Wuse-without-only test.f90
--- 10859,10867 ----
              by -Wall, -pedantic and the f95, f2003, f2008 and f2008ts
              options of -std=.
       * Incomplete support for colorizing diagnostics emitted by gfortran
!        has been added. The option [27]-fdiagnostics-color controls when
         color is used in diagnostics. The default value of this option can
!        be [28]configured when building GCC. The GCC_COLORS environment
         variable can be used to customize the colors or disable coloring
         completely. Sample diagnostics output:
        $ gfortran -fdiagnostics-color=always -Wuse-without-only test.f90
*************** void operator delete[] (void *, std::siz
*** 9618,9635 ****
         public entities of the used module.
       * Formatted READ and WRITE statements now work correctly in
         locale-aware programs. For more information and potential caveats,
!        see [24]Section 5.3 Thread-safety of the runtime library in the
         manual.
!      * [25]Fortran 2003:
            + The intrinsic IEEE modules (IEEE_FEATURES, IEEE_EXCEPTIONS and
              IEEE_ARITHMETIC) are now supported.
!      * [26]Fortran 2008:
!           + [27]Coarrays: Full experimental support of Fortran 2008's
              coarrays with -fcoarray=lib except for allocatable/pointer
              components of derived-type coarrays. GCC currently only ships
              with a single-image library (libcaf_single), but multi-image
              support based on MPI and GASNet is provided by the libraries
!             of the [28]OpenCoarrays project.
       * TS18508 Additional Parallel Features in Fortran:
            + Support for the collective intrinsic subroutines CO_MAX,
              CO_MIN, CO_SUM, CO_BROADCAST and CO_REDUCE has been added,
--- 10881,10898 ----
         public entities of the used module.
       * Formatted READ and WRITE statements now work correctly in
         locale-aware programs. For more information and potential caveats,
!        see [29]Section 5.3 Thread-safety of the runtime library in the
         manual.
!      * [30]Fortran 2003:
            + The intrinsic IEEE modules (IEEE_FEATURES, IEEE_EXCEPTIONS and
              IEEE_ARITHMETIC) are now supported.
!      * [31]Fortran 2008:
!           + [32]Coarrays: Full experimental support of Fortran 2008's
              coarrays with -fcoarray=lib except for allocatable/pointer
              components of derived-type coarrays. GCC currently only ships
              with a single-image library (libcaf_single), but multi-image
              support based on MPI and GASNet is provided by the libraries
!             of the [33]OpenCoarrays project.
       * TS18508 Additional Parallel Features in Fortran:
            + Support for the collective intrinsic subroutines CO_MAX,
              CO_MIN, CO_SUM, CO_BROADCAST and CO_REDUCE has been added,
*************** void operator delete[] (void *, std::siz
*** 9640,9682 ****
            + Support for IMPLICIT NONE (external, type).
            + ERROR STOP is now permitted in pure procedures.
  
!   Go
  
       * GCC 5 provides a complete implementation of the Go 1.4.2 release.
       * Building GCC 5 with Go enabled will install two new programs:
!        [29]go and [30]gofmt.
  
! libgccjit
  
     New in GCC 5 is the ability to build GCC as a shared library for
     embedding in other processes (such as interpreters), suitable for
     Just-In-Time compilation to machine code.
  
!    The shared library has a [31]C API and a [32]C++ wrapper API providing
     some "syntactic sugar". There are also bindings available from 3rd
!    parties for [33]Python and for [34]D.
  
!    For example, this library can be used by interpreters for [35]compiling
     functions from bytecode to machine code.
  
     The library can also be used for ahead-of-time compilation, enabling
     GCC to be plugged into a pre-existing front end. An example of using
     this to build a compiler for an esoteric language we'll refer to as
!    "brainf" can be seen [36]here.
  
     libgccjit is licensed under the GPLv3 (or at your option, any later
     version)
  
     It should be regarded as experimental at this time.
  
! New Targets and Target Specific Improvements
  
!   Reporting stack usage
  
       * The BFIN, FT32, H8300, IQ2000 and M32C targets now support the
         -fstack-usage option.
  
!   AArch64
  
       * Code generation for the ARM Cortex-A57 processor has been improved.
         A more accurate instruction scheduling model for the processor is
--- 10903,10945 ----
            + Support for IMPLICIT NONE (external, type).
            + ERROR STOP is now permitted in pure procedures.
  
!   [34]Go
  
       * GCC 5 provides a complete implementation of the Go 1.4.2 release.
       * Building GCC 5 with Go enabled will install two new programs:
!        [35]go and [36]gofmt.
  
! [37]libgccjit
  
     New in GCC 5 is the ability to build GCC as a shared library for
     embedding in other processes (such as interpreters), suitable for
     Just-In-Time compilation to machine code.
  
!    The shared library has a [38]C API and a [39]C++ wrapper API providing
     some "syntactic sugar". There are also bindings available from 3rd
!    parties for [40]Python and for [41]D.
  
!    For example, this library can be used by interpreters for [42]compiling
     functions from bytecode to machine code.
  
     The library can also be used for ahead-of-time compilation, enabling
     GCC to be plugged into a pre-existing front end. An example of using
     this to build a compiler for an esoteric language we'll refer to as
!    "brainf" can be seen [43]here.
  
     libgccjit is licensed under the GPLv3 (or at your option, any later
     version)
  
     It should be regarded as experimental at this time.
  
! [44]New Targets and Target Specific Improvements
  
!   [45]Reporting stack usage
  
       * The BFIN, FT32, H8300, IQ2000 and M32C targets now support the
         -fstack-usage option.
  
!   [46]AArch64
  
       * Code generation for the ARM Cortex-A57 processor has been improved.
         A more accurate instruction scheduling model for the processor is
*************** New Targets and Target Specific Improvem
*** 9704,9710 ****
       * The transitional options -mlra and -mno-lra have been removed. The
         AArch64 back end now uses the local register allocator (LRA) only.
  
!   ARM
  
       * Thumb-1 assembly code is now generated in unified syntax. The new
         option -masm-syntax-unified specifies whether inline assembly code
--- 10967,10973 ----
       * The transitional options -mlra and -mno-lra have been removed. The
         AArch64 back end now uses the local register allocator (LRA) only.
  
!   [47]ARM
  
       * Thumb-1 assembly code is now generated in unified syntax. The new
         option -masm-syntax-unified specifies whether inline assembly code
*************** New Targets and Target Specific Improvem
*** 9737,9748 ****
       * The transitional options -mlra and -mno-lra have been removed. The
         ARM back end now uses the local register allocator (LRA) only.
  
!   AVR
  
!      * The compiler no more supports individual devices like ATmega8.
!        Specifying, say, -mmcu=atmega8 triggers the usage of the
!        device-specific [37]spec file specs-atmega8 which is part of the
!        installation and describes options for the sub-processes like
         compiler proper, assembler and linker. You can add support for a
         new device -mmcu=mydevice as follows:
           1. In an empty directory /someplace, create a new directory
--- 11000,11018 ----
       * The transitional options -mlra and -mno-lra have been removed. The
         ARM back end now uses the local register allocator (LRA) only.
  
!   [48]AVR
  
!      * Support has been added for the devices ATtiny4/5/9/10/20/40. This
!        requires Binutils 2.25 or newer.
!      * The port uses a new scheme to describe supported devices: For each
!        supported device, the compiler provides a device-specific [49]spec
!        file. If the compiler is used together with AVR-LibC, this requires
!        at least GCC 5.2 and a version of AVR-LibC which implements
!        [50]feature #44574.
!        As a consequence, the compiler no more supports individual devices
!        like ATmega8. Specifying, say, -mmcu=atmega8 triggers the usage of
!        the device-specific [51]spec file specs-atmega8 which is part of
!        the installation and describes options for the sub-processes like
         compiler proper, assembler and linker. You can add support for a
         new device -mmcu=mydevice as follows:
           1. In an empty directory /someplace, create a new directory
*************** New Targets and Target Specific Improvem
*** 9771,9786 ****
          -mn-flash=size
                  Specify the flash size of the device in units of 64 KiB,
                  rounded up to the next integer as needed. This option
!                 affects the availability of the [38]AVR address-spaces.
  
          -mskip-bug
                  Set if the device is affected by the respective silicon
                  bug.
  
!        In general, you don't need to set these options by hand. The new
!        device-specific spec file will set them as needed.
  
!   IA-32/x86-64
  
       * New ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of Intel's
         CPU codenamed Skylake Server was added to GCC. That includes inline
--- 11041,11057 ----
          -mn-flash=size
                  Specify the flash size of the device in units of 64 KiB,
                  rounded up to the next integer as needed. This option
!                 affects the availability of the [52]AVR address-spaces.
  
          -mskip-bug
                  Set if the device is affected by the respective silicon
                  bug.
  
!        These options are used internally in order to communicate between
!        the compiler and the device-spces file. They are set in the
!        device-specs file as needed. Don't set them by hand.
  
!   [53]IA-32/x86-64
  
       * New ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of Intel's
         CPU codenamed Skylake Server was added to GCC. That includes inline
*************** New Targets and Target Specific Improvem
*** 9812,9818 ****
         when SSE is disabled and there are no variable arguments passed in
         vector registers. This can be used to optimize the Linux kernel.
  
!   MIPS
  
       * MIPS Releases 3 and 5 are now directly supported. Use the
         command-line options -mips32r3, -mips64r3, -mips32r5 and -mips64r5
--- 11083,11089 ----
         when SSE is disabled and there are no variable arguments passed in
         vector registers. This can be used to optimize the Linux kernel.
  
!   [54]MIPS
  
       * MIPS Releases 3 and 5 are now directly supported. Use the
         command-line options -mips32r3, -mips64r3, -mips32r5 and -mips64r5
*************** New Targets and Target Specific Improvem
*** 9863,9869 ****
         .set directive to override the global assembler options when
         compiling for soft-float targets.
  
!   NDS32
  
       * The variadic function ABI implementation is now compatible with
         past Andes toolchains where the caller uses registers to pass
--- 11134,11140 ----
         .set directive to override the global assembler options when
         compiling for soft-float targets.
  
!   [55]NDS32
  
       * The variadic function ABI implementation is now compatible with
         past Andes toolchains where the caller uses registers to pass
*************** New Targets and Target Specific Improvem
*** 9875,9881 ****
         models on code generation. The -mgp-direct option became
         meaningless and can be discarded.
  
!   RX
  
       * A new command line option -mno-allow-string-insns can be used to
         disable the generation of the SCMPU, SMOVU, SMOVB, SMOVF, SUNTIL,
--- 11146,11152 ----
         models on code generation. The -mgp-direct option became
         meaningless and can be discarded.
  
!   [56]RX
  
       * A new command line option -mno-allow-string-insns can be used to
         disable the generation of the SCMPU, SMOVU, SMOVB, SMOVF, SUNTIL,
*************** New Targets and Target Specific Improvem
*** 9885,9891 ****
         programmer is concerned that the I/O space might be accessed. The
         default is still to enable these instructions.
  
!   SH
  
       * The compiler will now pass the appropriate --isa= option to the
         assembler.
--- 11156,11162 ----
         programmer is concerned that the I/O space might be accessed. The
         default is still to enable these instructions.
  
!   [57]SH
  
       * The compiler will now pass the appropriate --isa= option to the
         assembler.
*************** New Targets and Target Specific Improvem
*** 9918,9941 ****
         in the original SH7055) by specifying the new option
         -mcbranch-force-delay-slot.
  
! Operating Systems
  
!   AIX
  
       * GCC now supports stabs debugging continuation lines to allow long
         stabs debug information without overflow that generates AIX linker
         errors.
  
!   DragonFly BSD
  
       * GCC now supports the DragonFly BSD operating system.
  
!   FreeBSD
  
       * GCC now supports the FreeBSD operating system for the arm port
         through the arm*-*-freebsd* target triplets.
  
!   VxWorks MILS
  
       * GCC now supports the MILS (Multiple Independent Levels of Security)
         variant of WindRiver's VxWorks operating system for PowerPC
--- 11189,11212 ----
         in the original SH7055) by specifying the new option
         -mcbranch-force-delay-slot.
  
! [58]Operating Systems
  
!   [59]AIX
  
       * GCC now supports stabs debugging continuation lines to allow long
         stabs debug information without overflow that generates AIX linker
         errors.
  
!   [60]DragonFly BSD
  
       * GCC now supports the DragonFly BSD operating system.
  
!   [61]FreeBSD
  
       * GCC now supports the FreeBSD operating system for the arm port
         through the arm*-*-freebsd* target triplets.
  
!   [62]VxWorks MILS
  
       * GCC now supports the MILS (Multiple Independent Levels of Security)
         variant of WindRiver's VxWorks operating system for PowerPC
*************** Other significant improvements
*** 9950,9958 ****
         automatically generates a developer-friendly reproducer whenever an
         internal compiler error is encountered.
  
!                                     GCC 5.2
  
!    This is the [39]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 11221,11229 ----
         automatically generates a developer-friendly reproducer whenever an
         internal compiler error is encountered.
  
!                                   [63]GCC 5.2
  
!    This is the [64]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 9991,9999 ****
         make use of these builtins the vecintrin.h header file needs to be
         included.
  
!                                     GCC 5.3
  
!    This is the [40]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 11262,11270 ----
         make use of these builtins the vecintrin.h header file needs to be
         included.
  
!                                   [65]GCC 5.3
  
!    This is the [66]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 10013,10028 ****
         the GO runtime environment. GCC 5.3 has proven to be able to
         compile larger GO applications on IBM z Systems.
  
!                                     GCC 5.4
  
!    This is the [41]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
!                                     GCC 5.5
  
!    This is the [42]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 11284,11299 ----
         the GO runtime environment. GCC 5.3 has proven to be able to
         compile larger GO applications on IBM z Systems.
  
!                                   [67]GCC 5.4
  
!    This is the [68]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
!                                   [69]GCC 5.5
  
!    This is the [70]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 5.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 10031,10105 ****
  
    IA-32/x86-64
  
!      * Support for the [43]deprecated pcommit instruction has been
         removed.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [44]GCC manuals. If that fails, the
!     [45]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [46]gcc@gcc.gnu.org. All of [47]our lists have public
      archives.
  
!    Copyright (C) [48]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [49]maintained by the GCC team. Last modified
!    2024-06-08.
  
  References
  
     1. https://gcc.gnu.org/gcc-5/changes.html#libstdcxx
!    2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
!    3. https://savannah.nongnu.org/bugs/?44574
!    4. https://gcc.gnu.org/wiki/Intel MPX support in the GCC compiler
     5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf
     6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf
     7. https://gcc.gnu.org/wiki/OpenACC
!    8. https://gcc.gnu.org/install/configure.html
!    9. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   10. https://gcc.gnu.org/projects/cxx1y.html
!   11. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   12. https://gcc.gnu.org/projects/cxx1y.html
    13. https://gcc.gnu.org/projects/cxx1y.html
!   14. https://gcc.gnu.org/projects/cxx1y.html
!   15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html
!   16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
!   17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011
!   18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
!   19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
!   20. https://sourceware.org/gdb/current/onlinedocs/gdb#Xmethods-In-Python
!   21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html
!   23. https://gcc.gnu.org/install/configure.html
!   24. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Thread-safety-of-the-runtime-library.html
!   25. https://gcc.gnu.org/wiki/Fortran2003Status
!   26. https://gcc.gnu.org/wiki/Fortran2008Status
!   27. https://gcc.gnu.org/wiki/Coarray
!   28. http://www.opencoarrays.org/
!   29. https://pkg.go.dev/cmd/go
!   30. https://pkg.go.dev/cmd/gofmt
!   31. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html
!   32. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html
!   33. https://github.com/davidmalcolm/pygccjit
!   34. https://github.com/ibuclaw/gccjitd
!   35. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial04.html
!   36. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html
!   37. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
!   38. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html
!   39. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2
!   40. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3
!   41. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4
!   42. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5
!   43. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html
!   44. https://gcc.gnu.org/onlinedocs/
!   45. mailto:gcc-help@gcc.gnu.org
!   46. mailto:gcc@gcc.gnu.org
!   47. https://gcc.gnu.org/lists.html
!   48. https://www.fsf.org/
!   49. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/index.html
                               GCC 4.9 Release Series
--- 11302,11404 ----
  
    IA-32/x86-64
  
!      * Support for the [71]deprecated pcommit instruction has been
         removed.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [72]GCC manuals. If that fails, the
!     [73]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [74]gcc@gcc.gnu.org. All of [75]our lists have public
      archives.
  
!    Copyright (C) [76]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [77]maintained by the GCC team. Last modified
!    2025-02-28.
  
  References
  
     1. https://gcc.gnu.org/gcc-5/changes.html#libstdcxx
!    2. https://gcc.gnu.org/gcc-5/changes.html#general
!    3. https://gcc.gnu.org/wiki/Intel MPX support in the GCC compiler
!    4. https://gcc.gnu.org/gcc-5/changes.html#languages
     5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf
     6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf
     7. https://gcc.gnu.org/wiki/OpenACC
!    8. https://gcc.gnu.org/gcc-5/changes.html#c-family
!    9. https://gcc.gnu.org/install/configure.html
!   10. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   11. https://gcc.gnu.org/gcc-5/changes.html#c
!   12. https://gcc.gnu.org/gcc-5/changes.html#cxx
    13. https://gcc.gnu.org/projects/cxx1y.html
!   14. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   15. https://gcc.gnu.org/projects/cxx1y.html
!   16. https://gcc.gnu.org/projects/cxx1y.html
!   17. https://gcc.gnu.org/projects/cxx1y.html
!   18. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html
!   19. https://gcc.gnu.org/gcc-5/changes.html#libstdcxx
!   20. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011
!   22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
!   23. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
!   24. https://sourceware.org/gdb/current/onlinedocs/gdb#Xmethods-In-Python
!   25. https://gcc.gnu.org/gcc-5/changes.html#fortran
!   26. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html
!   27. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html
!   28. https://gcc.gnu.org/install/configure.html
!   29. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Thread-safety-of-the-runtime-library.html
!   30. https://gcc.gnu.org/wiki/Fortran2003Status
!   31. https://gcc.gnu.org/wiki/Fortran2008Status
!   32. https://gcc.gnu.org/wiki/Coarray
!   33. http://www.opencoarrays.org/
!   34. https://gcc.gnu.org/gcc-5/changes.html#go
!   35. https://pkg.go.dev/cmd/go
!   36. https://pkg.go.dev/cmd/gofmt
!   37. https://gcc.gnu.org/gcc-5/changes.html#jit
!   38. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html
!   39. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html
!   40. https://github.com/davidmalcolm/pygccjit
!   41. https://github.com/ibuclaw/gccjitd
!   42. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial04.html
!   43. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html
!   44. https://gcc.gnu.org/gcc-5/changes.html#targets
!   45. https://gcc.gnu.org/gcc-5/changes.html#stack-usage
!   46. https://gcc.gnu.org/gcc-5/changes.html#aarch64
!   47. https://gcc.gnu.org/gcc-5/changes.html#arm
!   48. https://gcc.gnu.org/gcc-5/changes.html#avr
!   49. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
!   50. https://savannah.nongnu.org/bugs/?44574
!   51. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
!   52. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html
!   53. https://gcc.gnu.org/gcc-5/changes.html#x86
!   54. https://gcc.gnu.org/gcc-5/changes.html#mips
!   55. https://gcc.gnu.org/gcc-5/changes.html#nds32
!   56. https://gcc.gnu.org/gcc-5/changes.html#rx
!   57. https://gcc.gnu.org/gcc-5/changes.html#sh
!   58. https://gcc.gnu.org/gcc-5/changes.html#os
!   59. https://gcc.gnu.org/gcc-5/changes.html#aix
!   60. https://gcc.gnu.org/gcc-5/changes.html#dragonfly
!   61. https://gcc.gnu.org/gcc-5/changes.html#freebsd
!   62. https://gcc.gnu.org/gcc-5/changes.html#vxmils
!   63. https://gcc.gnu.org/gcc-5/changes.html#GCC5.2
!   64. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2
!   65. https://gcc.gnu.org/gcc-5/changes.html#GCC5.3
!   66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3
!   67. https://gcc.gnu.org/gcc-5/changes.html#GCC5.4
!   68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4
!   69. https://gcc.gnu.org/gcc-5/changes.html#GCC5.5
!   70. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5
!   71. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html
!   72. https://gcc.gnu.org/onlinedocs/
!   73. mailto:gcc-help@gcc.gnu.org
!   74. mailto:gcc@gcc.gnu.org
!   75. https://gcc.gnu.org/lists.html
!   76. https://www.fsf.org/
!   77. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/index.html
                               GCC 4.9 Release Series
*************** General Optimizer Improvements
*** 10276,10288 ****
              handle cross-module calls when link-time optimization is
              enabled.
  
! New Languages and Language specific improvements
  
!      * Version 4.0 of the [4]OpenMP specification is now supported in the
         C and C++ compilers and starting with the 4.9.1 release also in the
         Fortran compiler. The new -fopenmp-simd option can be used to
         enable OpenMP's SIMD directives while ignoring other OpenMP
!        directives. The new [5]-fsimd-cost-model= option permits to tune
         the vectorization cost model for loops annotated with OpenMP and
         Cilk Plus simd directives. -Wopenmp-simd warns when the current
         cost model overrides simd directives set by the user.
--- 11575,11587 ----
              handle cross-module calls when link-time optimization is
              enabled.
  
! [4]New Languages and Language specific improvements
  
!      * Version 4.0 of the [5]OpenMP specification is now supported in the
         C and C++ compilers and starting with the 4.9.1 release also in the
         Fortran compiler. The new -fopenmp-simd option can be used to
         enable OpenMP's SIMD directives while ignoring other OpenMP
!        directives. The new [6]-fsimd-cost-model= option permits to tune
         the vectorization cost model for loops annotated with OpenMP and
         Cilk Plus simd directives. -Wopenmp-simd warns when the current
         cost model overrides simd directives set by the user.
*************** New Languages and Language specific impr
*** 10291,10304 ****
         macros are used. Those macros might prevent bit-wise-identical
         reproducible compilations.
  
!   Ada
  
       * GNAT switched to Ada 2012 instead of Ada 2005 by default.
  
!   C family
  
       * Support for colorizing diagnostics emitted by GCC has been added.
!        The [6]-fdiagnostics-color=auto will enable it when outputting to
         terminals, -fdiagnostics-color=always unconditionally. The
         GCC_COLORS environment variable can be used to customize the colors
         or disable coloring. If GCC_COLORS variable is present in the
--- 11590,11603 ----
         macros are used. Those macros might prevent bit-wise-identical
         reproducible compilations.
  
!   [7]Ada
  
       * GNAT switched to Ada 2012 instead of Ada 2005 by default.
  
!   [8]C family
  
       * Support for colorizing diagnostics emitted by GCC has been added.
!        The [9]-fdiagnostics-color=auto will enable it when outputting to
         terminals, -fdiagnostics-color=always unconditionally. The
         GCC_COLORS environment variable can be used to customize the colors
         or disable coloring. If GCC_COLORS variable is present in the
*************** late struct X<1000>;
*** 10322,10328 ****
  
      test.C:2:46: error: incomplete type ‘X<100>’ used in nested name specifier
  
!      * With the new [7]#pragma GCC ivdep, the user can assert that there
         are no loop-carried dependencies which would prevent concurrent
         execution of consecutive iterations using SIMD (single instruction
         multiple data) instructions.
--- 11621,11627 ----
  
      test.C:2:46: error: incomplete type ‘X<100>’ used in nested name specifier
  
!      * With the new [10]#pragma GCC ivdep, the user can assert that there
         are no loop-carried dependencies which would prevent concurrent
         execution of consecutive iterations using SIMD (single instruction
         multiple data) instructions.
*************** late struct X<1000>;
*** 10349,10359 ****
       * A new C extension __auto_type provides a subset of the
         functionality of C++11 auto in GNU C.
  
!   C++
  
!      * The G++ implementation of [8]C++1y return type deduction for normal
!        functions has been updated to conform to [9]N3638, the proposal
!        accepted into the working paper. Most notably, it adds
         decltype(auto) for getting decltype semantics rather than the
         template argument deduction semantics of plain auto:
  
--- 11648,11658 ----
       * A new C extension __auto_type provides a subset of the
         functionality of C++11 auto in GNU C.
  
!   [11]C++
  
!      * The G++ implementation of [12]C++1y return type deduction for
!        normal functions has been updated to conform to [13]N3638, the
!        proposal accepted into the working paper. Most notably, it adds
         decltype(auto) for getting decltype semantics rather than the
         template argument deduction semantics of plain auto:
  
*************** int& f();
*** 10361,10374 ****
           auto  i1 = f(); // int
  decltype(auto) i2 = f(); // int&
  
!      * G++ supports [10]C++1y lambda capture initializers:
  
  [x = 42]{ ... };
  
         Actually, they have been accepted since GCC 4.5, but now the
         compiler doesn't warn about them with -std=c++1y, and supports
         parenthesized and brace-enclosed initializers as well.
!      * G++ supports [11]C++1y variable length arrays. G++ has supported
         GNU/C99-style VLAs for a long time, but now additionally supports
         initializers and lambda capture by reference. In C++1y mode G++
         will complain about VLA uses that are not permitted by the draft
--- 11660,11673 ----
           auto  i1 = f(); // int
  decltype(auto) i2 = f(); // int&
  
!      * G++ supports [14]C++1y lambda capture initializers:
  
  [x = 42]{ ... };
  
         Actually, they have been accepted since GCC 4.5, but now the
         compiler doesn't warn about them with -std=c++1y, and supports
         parenthesized and brace-enclosed initializers as well.
!      * G++ supports [15]C++1y variable length arrays. G++ has supported
         GNU/C99-style VLAs for a long time, but now additionally supports
         initializers and lambda capture by reference. In C++1y mode G++
         will complain about VLA uses that are not permitted by the draft
*************** void f(int n) {
*** 10383,10389 ****
    &a; // error, taking address of VLA
  }
  
!      * G++ supports the [12]C++1y [[deprecated]] attribute modulo bugs in
         the underlying [[gnu::deprecated]] attribute. Classes and functions
         can be marked deprecated and a diagnostic message added:
  
--- 11682,11688 ----
    &a; // error, taking address of VLA
  }
  
!      * G++ supports the [16]C++1y [[deprecated]] attribute modulo bugs in
         the underlying [[gnu::deprecated]] attribute. Classes and functions
         can be marked deprecated and a diagnostic message added:
  
*************** A aa; // warning: 'A' is deprecated : A
*** 10401,10407 ****
  int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use fo
  o() instead
  
!      * G++ supports [13]C++1y digit separators. Long numeric literals can
         be subdivided with a single quote ' to enhance readability:
  
  int i = 1048576;
--- 11700,11706 ----
  int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use fo
  o() instead
  
!      * G++ supports [17]C++1y digit separators. Long numeric literals can
         be subdivided with a single quote ' to enhance readability:
  
  int i = 1048576;
*************** int n = 0b0001'0000'0000'0000'0000'0000;
*** 10413,10419 ****
  double x = 1.602'176'565e-19;
  double y = 1.602'176'565e-1'9;
  
!      * G++ supports [14]C++1y generic (polymorphic) lambdas.
  
  // a functional object that will increment any type
  auto incr = [](auto x) { return x++; };
--- 11712,11718 ----
  double x = 1.602'176'565e-19;
  double y = 1.602'176'565e-1'9;
  
!      * G++ supports [18]C++1y generic (polymorphic) lambdas.
  
  // a functional object that will increment any type
  auto incr = [](auto x) { return x++; };
*************** auto incr = [](auto x) { return x++; };
*** 10426,10432 ****
  auto add = [] <typename T> (T a, T b) { return a + b; };
  
       * G++ supports unconstrained generic functions as specified by §4.1.2
!        and §5.1.1 of [15]N3889: Concepts Lite Specification. Briefly, auto
         may be used as a type-specifier in a parameter declaration of any
         function declarator in order to introduce an implicit function
         template parameter, akin to generic lambdas.
--- 11725,11731 ----
  auto add = [] <typename T> (T a, T b) { return a + b; };
  
       * G++ supports unconstrained generic functions as specified by §4.1.2
!        and §5.1.1 of [19]N3889: Concepts Lite Specification. Briefly, auto
         may be used as a type-specifier in a parameter declaration of any
         function declarator in order to introduce an implicit function
         template parameter, akin to generic lambdas.
*************** auto incr(T x) { return x++; }
*** 10438,10450 ****
  
      Runtime Library (libstdc++)
  
!      * [16]Improved support for C++11, including:
            + support for <regex>;
            + The associative containers in <map> and <set> and the
              unordered associative containers in <unordered_map> and
              <unordered_set> meet the allocator-aware container
              requirements;
!      * [17]Improved experimental support for the upcoming ISO C++
         standard, C++14, including:
            + fixing constexpr member functions without const;
            + implementation of the std::exchange() utility function;
--- 11737,11749 ----
  
      Runtime Library (libstdc++)
  
!      * [20]Improved support for C++11, including:
            + support for <regex>;
            + The associative containers in <map> and <set> and the
              unordered associative containers in <unordered_map> and
              <unordered_set> meet the allocator-aware container
              requirements;
!      * [21]Improved experimental support for the upcoming ISO C++
         standard, C++14, including:
            + fixing constexpr member functions without const;
            + implementation of the std::exchange() utility function;
*************** auto incr(T x) { return x++; }
*** 10470,10476 ****
         and will be removed in a future version. std::make_exception_ptr
         should be used instead.
  
!   Fortran
  
       * Compatibility notice:
            + Module files: The version of the module files (.mod) has been
--- 11769,11775 ----
         and will be removed in a future version. std::make_exception_ptr
         should be used instead.
  
!   [22]Fortran
  
       * Compatibility notice:
            + Module files: The version of the module files (.mod) has been
*************** auto incr(T x) { return x++; }
*** 10483,10489 ****
              object files and libraries are fully compatible with older
              versions (except as stated below).
            + ABI changes:
!                o The [18]argument passing ABI has changed for scalar dummy
                   arguments of type INTEGER, REAL, COMPLEX and LOGICAL,
                   which have both the VALUE and the OPTIONAL attributes.
                 o To support finalization the virtual table associated with
--- 11782,11788 ----
              object files and libraries are fully compatible with older
              versions (except as stated below).
            + ABI changes:
!                o The [23]argument passing ABI has changed for scalar dummy
                   arguments of type INTEGER, REAL, COMPLEX and LOGICAL,
                   which have both the VALUE and the OPTIONAL attributes.
                 o To support finalization the virtual table associated with
*************** auto incr(T x) { return x++; }
*** 10511,10517 ****
       * The compiler no longer unconditionally warns about DO loops with
         zero iterations. This warning is now controlled by the -Wzerotrip
         option, which is implied by -Wall.
!      * The new NO_ARG_CHECK attribute of the [19]!GCC$ directive can be
         used to disable the type-kind-rank (TKR) argument check for a dummy
         argument. The feature is similar to ISO/IEC TS 29133:2012's
         TYPE(*), except that it additionally also disables the rank check.
--- 11810,11816 ----
       * The compiler no longer unconditionally warns about DO loops with
         zero iterations. This warning is now controlled by the -Wzerotrip
         option, which is implied by -Wall.
!      * The new NO_ARG_CHECK attribute of the [24]!GCC$ directive can be
         used to disable the type-kind-rank (TKR) argument check for a dummy
         argument. The feature is similar to ISO/IEC TS 29133:2012's
         TYPE(*), except that it additionally also disables the rank check.
*************** auto incr(T x) { return x++; }
*** 10527,10544 ****
         contrary to NO_ARG_CHECK assumed-rank arguments pass an array
         descriptor which contains the array shape and stride of the
         argument.
!      * [20]Fortran 2003:
            + Finalization is now supported. It is currently only done for a
              subset of those situations in which it should occur.
            + Experimental support for scalar character components with
              deferred length (i.e. allocatable string length) in derived
              types has been added. (Deferred-length character variables are
              supported since GCC 4.6.)
!      * [21]Fortran 2008:
            + When STOP or ERROR STOP are used to terminate the execution
              and any exception (but inexact) is signaling, a warning is
              printed to ERROR_UNIT, indicating which exceptions are
!             signaling. The [22]-ffpe-summary= command-line option can be
              used to fine-tune for which exceptions the warning should be
              shown.
            + Rounding on input (READ) is now handled on systems where
--- 11826,11843 ----
         contrary to NO_ARG_CHECK assumed-rank arguments pass an array
         descriptor which contains the array shape and stride of the
         argument.
!      * [25]Fortran 2003:
            + Finalization is now supported. It is currently only done for a
              subset of those situations in which it should occur.
            + Experimental support for scalar character components with
              deferred length (i.e. allocatable string length) in derived
              types has been added. (Deferred-length character variables are
              supported since GCC 4.6.)
!      * [26]Fortran 2008:
            + When STOP or ERROR STOP are used to terminate the execution
              and any exception (but inexact) is signaling, a warning is
              printed to ERROR_UNIT, indicating which exceptions are
!             signaling. The [27]-ffpe-summary= command-line option can be
              used to fine-tune for which exceptions the warning should be
              shown.
            + Rounding on input (READ) is now handled on systems where
*************** auto incr(T x) { return x++; }
*** 10548,10560 ****
              least significant [cf. IEC 60559:1989] for a tie, while
              compatible rounds away from zero in that case).
  
!   Go
  
       * GCC 4.9 provides a complete implementation of the Go 1.2.1 release.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * The ARMv8-A crypto and CRC instructions are now supported through
         intrinsics. These are enabled when the architecture supports these
--- 11847,11859 ----
              least significant [cf. IEC 60559:1989] for a tie, while
              compatible rounds away from zero in that case).
  
!   [28]Go
  
       * GCC 4.9 provides a complete implementation of the Go 1.2.1 release.
  
! [29]New Targets and Target Specific Improvements
  
!   [30]AArch64
  
       * The ARMv8-A crypto and CRC instructions are now supported through
         intrinsics. These are enabled when the architecture supports these
*************** New Targets and Target Specific Improvem
*** 10582,10593 ****
         default by configuring GCC with the --enable-fix-cortex-a53-835769
         option.
  
!   ARC
  
       * A port for Synopsys Designware ARC has been contributed by Embecosm
         and Synopsys Inc.
  
!   ARM
  
       * Use of Advanced SIMD (Neon) for 64-bit scalar computations has been
         disabled by default. This was found to generate better code in only
--- 11881,11892 ----
         default by configuring GCC with the --enable-fix-cortex-a53-835769
         option.
  
!   [31]ARC
  
       * A port for Synopsys Designware ARC has been contributed by Embecosm
         and Synopsys Inc.
  
!   [32]ARM
  
       * Use of Advanced SIMD (Neon) for 64-bit scalar computations has been
         disabled by default. This was found to generate better code in only
*************** New Targets and Target Specific Improvem
*** 10630,10642 ****
       * A number of code generation improvements for Thumb2 to reduce code
         size when compiling for the M-profile processors.
  
!   AVR
  
       * A new command-line option -mfract-convert-truncate has been added.
         It allows compiler to use truncation instead of rounding towards
         zero for fractional fixed-point types.
  
!   IA-32/x86-64
  
       * -mfpmath=sse is now implied by -ffast-math on all targets where
         SSE2 is supported.
--- 11929,11941 ----
       * A number of code generation improvements for Thumb2 to reduce code
         size when compiling for the M-profile processors.
  
!   [33]AVR
  
       * A new command-line option -mfract-convert-truncate has been added.
         It allows compiler to use truncation instead of rounding towards
         zero for fractional fixed-point types.
  
!   [34]IA-32/x86-64
  
       * -mfpmath=sse is now implied by -ffast-math on all targets where
         SSE2 is supported.
*************** New Targets and Target Specific Improvem
*** 10652,10658 ****
         a file that are tagged with the corresponding target attribute
         without having to compile the entire file with the -mxxx option.
         This improves the usability of x86 intrinsics and is particularly
!        useful when doing [23]Function Multiversioning.
       * GCC now supports the new Intel microarchitecture named Silvermont
         through -march=silvermont.
       * GCC now supports the new Intel microarchitecture named Broadwell
--- 11951,11957 ----
         a file that are tagged with the corresponding target attribute
         without having to compile the entire file with the -mxxx option.
         This improves the usability of x86 intrinsics and is particularly
!        useful when doing [35]Function Multiversioning.
       * GCC now supports the new Intel microarchitecture named Silvermont
         through -march=silvermont.
       * GCC now supports the new Intel microarchitecture named Broadwell
*************** New Targets and Target Specific Improvem
*** 10676,10682 ****
       * Support for new AMD family 15h processors (Excavator core) is now
         available through the -march=bdver4 and -mtune=bdver4 options.
  
!   MSP430
  
       * A new command-line option -mcpu= has been added to the MSP430 back
         end. This option is used to specify the ISA to be used. Accepted
--- 11975,11981 ----
       * Support for new AMD family 15h processors (Excavator core) is now
         available through the -march=bdver4 and -mtune=bdver4 options.
  
!   [36]MSP430
  
       * A new command-line option -mcpu= has been added to the MSP430 back
         end. This option is used to specify the ISA to be used. Accepted
*************** New Targets and Target Specific Improvem
*** 10687,10705 ****
         preprocessor symbol that will be recognised by the msp430.h header
         file.
  
!   NDS32
  
       * A new nds32 port supports the 32-bit architecture from Andes
         Technology Corporation.
       * The port provides initial support for the V2, V3, V3m instruction
         set architectures.
  
!   Nios II
  
       * A port for the Altera Nios II has been contributed by Mentor
         Graphics.
  
!   PowerPC / PowerPC64 / RS6000
  
       * GCC now supports Power ISA 2.07, which includes support for
         Hardware Transactional Memory (HTM), Quadword atomics and several
--- 11986,12004 ----
         preprocessor symbol that will be recognised by the msp430.h header
         file.
  
!   [37]NDS32
  
       * A new nds32 port supports the 32-bit architecture from Andes
         Technology Corporation.
       * The port provides initial support for the V2, V3, V3m instruction
         set architectures.
  
!   [38]Nios II
  
       * A port for the Altera Nios II has been contributed by Mentor
         Graphics.
  
!   [39]PowerPC / PowerPC64 / RS6000
  
       * GCC now supports Power ISA 2.07, which includes support for
         Hardware Transactional Memory (HTM), Quadword atomics and several
*************** New Targets and Target Specific Improvem
*** 10735,10747 ****
         certain leaf function with -march=z10 or higher.
       * The LRA rtl pass replaces reload by default on S/390.
  
!   RX
  
       * The port now allows to specify the RX100, RX200, and RX600
         processors with the command-line options -mcpu=rx100, -mcpu=rx200
         and -mcpu=rx600.
  
!   SH
  
       * Minor improvements to code generated for integer arithmetic and
         code that involves the T bit.
--- 12034,12046 ----
         certain leaf function with -march=z10 or higher.
       * The LRA rtl pass replaces reload by default on S/390.
  
!   [40]RX
  
       * The port now allows to specify the RX100, RX200, and RX600
         processors with the command-line options -mcpu=rx100, -mcpu=rx200
         and -mcpu=rx600.
  
!   [41]SH
  
       * Minor improvements to code generated for integer arithmetic and
         code that involves the T bit.
*************** New Targets and Target Specific Improvem
*** 10758,10766 ****
       * The option -mcmpeqdi has been deprecated. Specifying it will result
         in a warning and will not influence code generation.
  
! GCC 4.9.1
  
!    This is the [24]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 12057,12065 ----
       * The option -mcmpeqdi has been deprecated. Specifying it will result
         in a warning and will not influence code generation.
  
! [42]GCC 4.9.1
  
!    This is the [43]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.9.1
*** 10768,10844 ****
     Version 4.0 of the OpenMP specification is supported even in Fortran,
     not just C and C++.
  
! GCC 4.9.2
  
!    This is the [25]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.9.3
  
!    This is the [26]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.9.4
  
!    This is the [27]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [28]GCC manuals. If that fails, the
!     [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [30]gcc@gcc.gnu.org. All of [31]our lists have public
      archives.
  
!    Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [33]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
     1. https://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html
     2. https://gcc.gnu.org/PR60825
     3. https://gcc.gnu.org/gcc-4.9/porting_to.html
!    4. https://www.openmp.org/specifications/
!    5. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908
!    6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252
!    7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html
!    8. https://gcc.gnu.org/projects/cxx1y.html
!    9. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
!   10. https://gcc.gnu.org/projects/cxx1y.html
!   11. https://gcc.gnu.org/projects/cxx1y.html
    12. https://gcc.gnu.org/projects/cxx1y.html
!   13. https://gcc.gnu.org/projects/cxx1y.html
    14. https://gcc.gnu.org/projects/cxx1y.html
!   15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf
!   16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011
!   17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014
!   18. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html
!   19. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/GNU-Fortran-Compiler-Directives.html
!   20. https://gcc.gnu.org/wiki/Fortran2003Status
!   21. https://gcc.gnu.org/wiki/Fortran2008Status
!   22. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Debugging-Options.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Function-Multiversioning.html
!   24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.1
!   25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.2
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.3
!   27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.4
!   28. https://gcc.gnu.org/onlinedocs/
!   29. mailto:gcc-help@gcc.gnu.org
!   30. mailto:gcc@gcc.gnu.org
!   31. https://gcc.gnu.org/lists.html
!   32. https://www.fsf.org/
!   33. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/index.html
                               GCC 4.8 Release Series
--- 12067,12165 ----
     Version 4.0 of the OpenMP specification is supported even in Fortran,
     not just C and C++.
  
! [44]GCC 4.9.2
  
!    This is the [45]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [46]GCC 4.9.3
  
!    This is the [47]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [48]GCC 4.9.4
  
!    This is the [49]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.9.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [50]GCC manuals. If that fails, the
!     [51]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [52]gcc@gcc.gnu.org. All of [53]our lists have public
      archives.
  
!    Copyright (C) [54]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [55]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
     1. https://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html
     2. https://gcc.gnu.org/PR60825
     3. https://gcc.gnu.org/gcc-4.9/porting_to.html
!    4. https://gcc.gnu.org/gcc-4.9/changes.html#languages
!    5. https://www.openmp.org/specifications/
!    6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908
!    7. https://gcc.gnu.org/gcc-4.9/changes.html#ada
!    8. https://gcc.gnu.org/gcc-4.9/changes.html#c-family
!    9. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252
!   10. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html
!   11. https://gcc.gnu.org/gcc-4.9/changes.html#cxx
    12. https://gcc.gnu.org/projects/cxx1y.html
!   13. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
    14. https://gcc.gnu.org/projects/cxx1y.html
!   15. https://gcc.gnu.org/projects/cxx1y.html
!   16. https://gcc.gnu.org/projects/cxx1y.html
!   17. https://gcc.gnu.org/projects/cxx1y.html
!   18. https://gcc.gnu.org/projects/cxx1y.html
!   19. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf
!   20. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011
!   21. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014
!   22. https://gcc.gnu.org/gcc-4.9/changes.html#fortran
!   23. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html
!   24. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/GNU-Fortran-Compiler-Directives.html
!   25. https://gcc.gnu.org/wiki/Fortran2003Status
!   26. https://gcc.gnu.org/wiki/Fortran2008Status
!   27. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Debugging-Options.html
!   28. https://gcc.gnu.org/gcc-4.9/changes.html#go
!   29. https://gcc.gnu.org/gcc-4.9/changes.html#targets
!   30. https://gcc.gnu.org/gcc-4.9/changes.html#aarch64
!   31. https://gcc.gnu.org/gcc-4.9/changes.html#arc
!   32. https://gcc.gnu.org/gcc-4.9/changes.html#arm
!   33. https://gcc.gnu.org/gcc-4.9/changes.html#avr
!   34. https://gcc.gnu.org/gcc-4.9/changes.html#x86
!   35. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Function-Multiversioning.html
!   36. https://gcc.gnu.org/gcc-4.9/changes.html#msp430
!   37. https://gcc.gnu.org/gcc-4.9/changes.html#nds32
!   38. https://gcc.gnu.org/gcc-4.9/changes.html#nios2
!   39. https://gcc.gnu.org/gcc-4.9/changes.html#powerpc
!   40. https://gcc.gnu.org/gcc-4.9/changes.html#rx
!   41. https://gcc.gnu.org/gcc-4.9/changes.html#sh
!   42. https://gcc.gnu.org/gcc-4.9/changes.html#GCC4.9.1
!   43. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.1
!   44. https://gcc.gnu.org/gcc-4.9/changes.html#GCC4.9.2
!   45. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.2
!   46. https://gcc.gnu.org/gcc-4.9/changes.html#GCC4.9.3
!   47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.3
!   48. https://gcc.gnu.org/gcc-4.9/changes.html#GCC4.9.4
!   49. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.4
!   50. https://gcc.gnu.org/onlinedocs/
!   51. mailto:gcc-help@gcc.gnu.org
!   52. mailto:gcc@gcc.gnu.org
!   53. https://gcc.gnu.org/lists.html
!   54. https://www.fsf.org/
!   55. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/index.html
                               GCC 4.8 Release Series
*************** Caveats
*** 10972,10989 ****
     built with older versions of GCC. Auto-vectorized code is not affected
     by this change.
  
-    On AVR, support has been removed for the command-line option
-    -mshort-calls deprecated in GCC 4.7.
- 
-    On AVR, the configure option --with-avrlibc supported since GCC 4.7.2
-    is turned on per default for all non-RTEMS configurations. This option
-    arranges for a better integration of [3]AVR Libc with avr-gcc. For
-    technical details, see [4]PR54461. To turn off the option in non-RTEMS
-    configurations, use --with-avrlibc=no. If the compiler is configured
-    for RTEMS, the option is always turned off.
- 
     More information on porting to GCC 4.8 from previous versions of GCC
!    can be found in the [5]porting guide for this release.
  
  General Optimizer Improvements (and Changes)
  
--- 12293,12300 ----
     built with older versions of GCC. Auto-vectorized code is not affected
     by this change.
  
     More information on porting to GCC 4.8 from previous versions of GCC
!    can be found in the [3]porting guide for this release.
  
  General Optimizer Improvements (and Changes)
  
*************** General Optimizer Improvements (and Chan
*** 11036,11049 ****
              reference) are now propagated at the inter-procedural level
              leading to better inlining decisions (for example in the case
              of Fortran array descriptors) and devirtualization.
!      * [6]AddressSanitizer , a fast memory error detector, has been added
         and can be enabled via -fsanitize=address. Memory access
         instructions will be instrumented to detect heap-, stack-, and
         global-buffer overflow as well as use-after-free bugs. To get nicer
         stacktraces, use -fno-omit-frame-pointer. The AddressSanitizer is
         available on IA-32/x86-64/x32/PowerPC/PowerPC64 GNU/Linux and on
         x86-64 Darwin.
!      * [7]ThreadSanitizer has been added and can be enabled via
         -fsanitize=thread. Instructions will be instrumented to detect data
         races. The ThreadSanitizer is available on x86-64 GNU/Linux.
       * A new local register allocator (LRA) has been implemented, which
--- 12347,12360 ----
              reference) are now propagated at the inter-procedural level
              leading to better inlining decisions (for example in the case
              of Fortran array descriptors) and devirtualization.
!      * [4]AddressSanitizer , a fast memory error detector, has been added
         and can be enabled via -fsanitize=address. Memory access
         instructions will be instrumented to detect heap-, stack-, and
         global-buffer overflow as well as use-after-free bugs. To get nicer
         stacktraces, use -fno-omit-frame-pointer. The AddressSanitizer is
         available on IA-32/x86-64/x32/PowerPC/PowerPC64 GNU/Linux and on
         x86-64 Darwin.
!      * [5]ThreadSanitizer has been added and can be enabled via
         -fsanitize=thread. Instructions will be instrumented to detect data
         races. The ThreadSanitizer is available on x86-64 GNU/Linux.
       * A new local register allocator (LRA) has been implemented, which
*************** t.c:7:7: note: in expansion of macro 'MY
*** 11090,11101 ****
         diagnostics that are disabled when using -Wno-pedantic.
       * The option -Wshadow no longer warns if a declaration shadows a
         function declaration, unless the former declares a function or
!        pointer to function, because this is [8]a common and valid case in
         real-world code.
  
!   C++
  
!      * G++ now implements the [9]C++11 thread_local keyword; this differs
         from the GNU __thread keyword primarily in that it allows dynamic
         initialization and destruction semantics. Unfortunately, this
         support requires a run-time penalty for references to
--- 12401,12412 ----
         diagnostics that are disabled when using -Wno-pedantic.
       * The option -Wshadow no longer warns if a declaration shadows a
         function declaration, unless the former declares a function or
!        pointer to function, because this is [6]a common and valid case in
         real-world code.
  
!   [7]C++
  
!      * G++ now implements the [8]C++11 thread_local keyword; this differs
         from the GNU __thread keyword primarily in that it allows dynamic
         initialization and destruction semantics. Unfortunately, this
         support requires a run-time penalty for references to
*************** t.c:7:7: note: in expansion of macro 'MY
*** 11111,11117 ****
         -fno-extern-tls-init option.
         OpenMP threadprivate variables now also support dynamic
         initialization and destruction by the same mechanism.
!      * G++ now implements the [10]C++11 attribute syntax, e.g.
  
  [[noreturn]] void f();
  
--- 12422,12428 ----
         -fno-extern-tls-init option.
         OpenMP threadprivate variables now also support dynamic
         initialization and destruction by the same mechanism.
!      * G++ now implements the [9]C++11 attribute syntax, e.g.
  
  [[noreturn]] void f();
  
*************** t.c:7:7: note: in expansion of macro 'MY
*** 11119,11137 ****
  
  alignas(double) int i;
  
!      * G++ now implements [11]C++11 inheriting constructors, e.g.
  
  struct A { A(int); };
  struct B: A { using A::A; }; // defines B::B(int)
  B b(42); // OK
  
       * As of GCC 4.8.1, G++ implements the change to decltype semantics
!        from [12]N3276.
  
  struct A f();
  decltype(f()) g();    // OK, return type of f() is not required to be complete.
  
!      * As of GCC 4.8.1, G++ implements [13]C++11 ref-qualifiers, e.g.
  
  struct A { int f() &; };
  int i = A().f();  // error, f() requires an lvalue object
--- 12430,12448 ----
  
  alignas(double) int i;
  
!      * G++ now implements [10]C++11 inheriting constructors, e.g.
  
  struct A { A(int); };
  struct B: A { using A::A; }; // defines B::B(int)
  B b(42); // OK
  
       * As of GCC 4.8.1, G++ implements the change to decltype semantics
!        from [11]N3276.
  
  struct A f();
  decltype(f()) g();    // OK, return type of f() is not required to be complete.
  
!      * As of GCC 4.8.1, G++ implements [12]C++11 ref-qualifiers, e.g.
  
  struct A { int f() &; };
  int i = A().f();  // error, f() requires an lvalue object
*************** int i = A().f();  // error, f() requires
*** 11140,11147 ****
         features proposed for the next revision of the standard, expected
         around 2014. Currently the only difference from -std=c++11 is
         support for return type deduction in normal functions, as proposed
!        in [14]N3386. Status of C++1y features in GCC 4.8 can be found
!        [15]here.
       * The G++ namespace association extension, __attribute ((strong)),
         has been deprecated. Inline namespaces should be used instead.
       * G++ now supports a -fext-numeric-literal option to control whether
--- 12451,12458 ----
         features proposed for the next revision of the standard, expected
         around 2014. Currently the only difference from -std=c++11 is
         support for return type deduction in normal functions, as proposed
!        in [13]N3386. Status of C++1y features in GCC 4.8 can be found
!        [14]here.
       * The G++ namespace association extension, __attribute ((strong)),
         has been deprecated. Inline namespaces should be used instead.
       * G++ now supports a -fext-numeric-literal option to control whether
*************** int i = A().f();  // error, f() requires
*** 11153,11159 ****
  
      Runtime Library (libstdc++)
  
!      * [16]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + forward_list meets the allocator-aware container requirements;
            + this_thread::sleep_for(), this_thread::sleep_until() and
--- 12464,12470 ----
  
      Runtime Library (libstdc++)
  
!      * [15]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + forward_list meets the allocator-aware container requirements;
            + this_thread::sleep_for(), this_thread::sleep_until() and
*************** int i = A().f();  // error, f() requires
*** 11176,11182 ****
         This may be useful for embedded systems to reduce the size of
         executables that link statically to the library.
  
!   Fortran
  
       * Compatibility notice:
            + Module files: The version of module files (.mod) has been
--- 12487,12493 ----
         This may be useful for embedded systems to reduce the size of
         executables that link statically to the library.
  
!   [16]Fortran
  
       * Compatibility notice:
            + Module files: The version of module files (.mod) has been
*************** int i = A().f();  // error, f() requires
*** 11250,11256 ****
              TS29113, see [26]gfortran's header file or use the [27]Chasm
              Language Interoperability Tools.
  
!   Go
  
       * GCC 4.8.2 provides a complete implementation of the Go 1.1.2
         release.
--- 12561,12567 ----
              TS29113, see [26]gfortran's header file or use the [27]Chasm
              Language Interoperability Tools.
  
!   [28]Go
  
       * GCC 4.8.2 provides a complete implementation of the Go 1.1.2
         release.
*************** int i = A().f();  // error, f() requires
*** 11260,11268 ****
         processors including x86, x86_64, PowerPC, SPARC, and Alpha. It may
         work on other platforms as well.
  
! New Targets and Target Specific Improvements
  
!   AArch64
  
       * A new port has been added to support AArch64, the new 64-bit
         architecture from ARM. Note that this is a separate port from the
--- 12571,12579 ----
         processors including x86, x86_64, PowerPC, SPARC, and Alpha. It may
         work on other platforms as well.
  
! [29]New Targets and Target Specific Improvements
  
!   [30]AArch64
  
       * A new port has been added to support AArch64, the new 64-bit
         architecture from ARM. Note that this is a separate port from the
*************** New Targets and Target Specific Improvem
*** 11276,11282 ****
         default by configuring GCC with the --enable-fix-cortex-a53-835769
         option.
  
!   ARM
  
       * Initial support has been added for the AArch32 extensions defined
         in the ARMv8 architecture.
--- 12587,12593 ----
         default by configuring GCC with the --enable-fix-cortex-a53-835769
         option.
  
!   [31]ARM
  
       * Initial support has been added for the AArch32 extensions defined
         in the ARMv8 architecture.
*************** New Targets and Target Specific Improvem
*** 11307,11316 ****
            + arm*-*-freebsd (no alternative)
            + arm*-wince-pe* (no alternative).
  
!   AVR
  
       * Support for the "Embedded C" fixed-point has been added. For
!        details, see the [28]GCC wiki and the [29]user manual. The support
         is not complete.
       * A new print modifier %r for register operands in inline assembler
         is supported. It will print the raw register number without the
--- 12618,12635 ----
            + arm*-*-freebsd (no alternative)
            + arm*-wince-pe* (no alternative).
  
!   [32]AVR
  
+      * Support for the command-line option -mshort-calls has been removed.
+        It was deprecated in GCC 4.7.
+      * The configure option --with-avrlibc supported since GCC 4.7.2 is
+        turned on per default for all non-RTEMS configurations. This option
+        arranges for a better integration of [33]AVR-LibC with avr-gcc. For
+        technical details, see [34]PR54461. To turn off the option in
+        non-AVR-LibC configurations, use --with-avrlibc=no. If the compiler
+        is configured for RTEMS, the option is always turned off.
       * Support for the "Embedded C" fixed-point has been added. For
!        details, see the [35]GCC wiki and the [36]user manual. The support
         is not complete.
       * A new print modifier %r for register operands in inline assembler
         is supported. It will print the raw register number without the
*************** New Targets and Target Specific Improvem
*** 11367,11373 ****
              string literal argument, the CPU name. For example,
              __builtin_cpu_is("westmere") returns a positive integer if the
              run-time CPU is an Intel Core i7 Westmere processor. Please
!             refer to the [30]user manual for the list of valid CPU names
              recognized.
            + A built-in function __builtin_cpu_supports has been added to
              detect if the run-time CPU supports a particular ISA feature.
--- 12686,12692 ----
              string literal argument, the CPU name. For example,
              __builtin_cpu_is("westmere") returns a positive integer if the
              run-time CPU is an Intel Core i7 Westmere processor. Please
!             refer to the [37]user manual for the list of valid CPU names
              recognized.
            + A built-in function __builtin_cpu_supports has been added to
              detect if the run-time CPU supports a particular ISA feature.
*************** New Targets and Target Specific Improvem
*** 11375,11381 ****
              It accepts one string literal argument, the ISA feature. For
              example, __builtin_cpu_supports("ssse3") returns a positive
              integer if the run-time CPU supports SSSE3 instructions.
!             Please refer to the [31]user manual for the list of valid ISA
              names recognized.
         Caveat: If these built-in functions are called before any static
         constructors are invoked, like during IFUNC initialization, then
--- 12694,12700 ----
              It accepts one string literal argument, the ISA feature. For
              example, __builtin_cpu_supports("ssse3") returns a positive
              integer if the run-time CPU supports SSSE3 instructions.
!             Please refer to the [38]user manual for the list of valid ISA
              names recognized.
         Caveat: If these built-in functions are called before any static
         constructors are invoked, like during IFUNC initialization, then
*************** New Targets and Target Specific Improvem
*** 11414,11420 ****
        return 0;
      }
  
!        Please refer to this [32]wiki for more information.
       * The x86 back end has been improved to allow option -fschedule-insns
         to work reliably. This option can be used to schedule instructions
         better and leads to improved performace in certain cases.
--- 12733,12739 ----
        return 0;
      }
  
!        Please refer to this [39]wiki for more information.
       * The x86 back end has been improved to allow option -fschedule-insns
         to work reliably. This option can be used to schedule instructions
         better and leads to improved performace in certain cases.
*************** New Targets and Target Specific Improvem
*** 11425,11435 ****
       * Support for new AMD family 16h processors (Jaguar core) is now
         available through the -march=btver2 and -mtune=btver2 options.
  
!   FRV
  
       * This target now supports the -fstack-usage command-line option.
  
!   MIPS
  
       * GCC can now generate code specifically for the R4700, Broadcom XLP
         and MIPS 34kn processors. The associated -march options are
--- 12744,12754 ----
       * Support for new AMD family 16h processors (Jaguar core) is now
         available through the -march=btver2 and -mtune=btver2 options.
  
!   [40]FRV
  
       * This target now supports the -fstack-usage command-line option.
  
!   [41]MIPS
  
       * GCC can now generate code specifically for the R4700, Broadcom XLP
         and MIPS 34kn processors. The associated -march options are
*************** New Targets and Target Specific Improvem
*** 11443,11449 ****
         intended or supported, and did not generate position-independent
         code. GCC 4.8 now reports an error when this combination is used.
  
!   PowerPC / PowerPC64 / RS6000
  
       * SVR4 configurations (GNU/Linux, FreeBSD, NetBSD) no longer save,
         restore or update the VRSAVE register by default. The respective
--- 12762,12768 ----
         intended or supported, and did not generate position-independent
         code. GCC 4.8 now reports an error when this combination is used.
  
!   [42]PowerPC / PowerPC64 / RS6000
  
       * SVR4 configurations (GNU/Linux, FreeBSD, NetBSD) no longer save,
         restore or update the VRSAVE register by default. The respective
*************** New Targets and Target Specific Improvem
*** 11455,11461 ****
         when targetting processors that support those hardware features on
         AIX 6.1 and above.
  
!   RX
  
       * This target will now issue a warning message whenever multiple fast
         interrupt handlers are found in the same compilation unit. This
--- 12774,12780 ----
         when targetting processors that support those hardware features on
         AIX 6.1 and above.
  
!   [43]RX
  
       * This target will now issue a warning message whenever multiple fast
         interrupt handlers are found in the same compilation unit. This
*************** New Targets and Target Specific Improvem
*** 11480,11486 ****
         higher. The purpose is to make use of the IFUNC optimized versions
         in Glibc.
  
!   SH
  
       * The default alignment settings have been reduced to be less
         aggressive. This results in more compact code for optimization
--- 12799,12805 ----
         higher. The purpose is to make use of the IFUNC optimized versions
         in Glibc.
  
!   [44]SH
  
       * The default alignment settings have been reduced to be less
         aggressive. This results in more compact code for optimization
*************** New Targets and Target Specific Improvem
*** 11555,11588 ****
       * The -mdiv= option for targets other than SHmedia has been fixed and
         documented.
  
!   SPARC
  
       * Added optimized instruction scheduling for Niagara4.
  
!   TILE-Gx
  
       * Added support for the -mcmodel=MODEL command-line option. The
         models supported are small and large.
  
!   V850
  
       * This target now supports the E3V5 architecture via the use of the
         new -mv850e3v5 command-line option. It also has experimental
         support for the e3v5 LOOP instruction which can be enabled via the
         new -mloop command-line option.
  
!   XStormy16
  
       * This target now supports the -fstack-usage command-line option.
  
! Operating Systems
  
!   OpenBSD
  
       * Support for OpenBSD/amd64 (x86_64-*-openbsd*) has been added and
         support for OpenBSD/i386 (i386-*-openbsd*) has been rejuvenated.
  
!   Windows (Cygwin)
  
       * Executables are now linked against shared libgcc by default. The
         previous default was to link statically, which can still be done by
--- 12874,12907 ----
       * The -mdiv= option for targets other than SHmedia has been fixed and
         documented.
  
!   [45]SPARC
  
       * Added optimized instruction scheduling for Niagara4.
  
!   [46]TILE-Gx
  
       * Added support for the -mcmodel=MODEL command-line option. The
         models supported are small and large.
  
!   [47]V850
  
       * This target now supports the E3V5 architecture via the use of the
         new -mv850e3v5 command-line option. It also has experimental
         support for the e3v5 LOOP instruction which can be enabled via the
         new -mloop command-line option.
  
!   [48]XStormy16
  
       * This target now supports the -fstack-usage command-line option.
  
! [49]Operating Systems
  
!   [50]OpenBSD
  
       * Support for OpenBSD/amd64 (x86_64-*-openbsd*) has been added and
         support for OpenBSD/i386 (i386-*-openbsd*) has been rejuvenated.
  
!   [51]Windows (Cygwin)
  
       * Executables are now linked against shared libgcc by default. The
         previous default was to link statically, which can still be done by
*************** Operating Systems
*** 11593,11601 ****
         only links against the Windows DLLs, but offers little or no
         benefit.
  
! GCC 4.8.1
  
!    This is the [33]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 12912,12920 ----
         only links against the Windows DLLs, but offers little or no
         benefit.
  
! [52]GCC 4.8.1
  
!    This is the [53]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.8.1
*** 11616,11631 ****
     libstdc++ configured with the non-default --enable-libstdcxx-time=
     configuration option needs to be recompiled.
  
! GCC 4.8.2
  
!    This is the [34]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.8.3
  
!    This is the [35]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 12935,12950 ----
     libstdc++ configured with the non-default --enable-libstdcxx-time=
     configuration option needs to be recompiled.
  
! [54]GCC 4.8.2
  
!    This is the [55]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [56]GCC 4.8.3
  
!    This is the [57]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.8.3
*** 11633,11685 ****
     Support for the new powerpc64le-linux platform has been added. It
     defaults to generating code that conforms to the ELFV2 ABI.
  
! GCC 4.8.4
  
!    This is the [36]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.8.5
  
!    This is the [37]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [38]GCC manuals. If that fails, the
!     [39]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [40]gcc@gcc.gnu.org. All of [41]our lists have public
      archives.
  
!    Copyright (C) [42]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [43]maintained by the GCC team. Last modified
!    2022-11-05.
  
  References
  
     1. https://gcc.gnu.org/wiki/cxx-conversion
     2. ftp://gcc.gnu.org/pub/gcc/infrastructure/
!    3. http://www.nongnu.org/avr-libc/
!    4. https://gcc.gnu.org/PR54461
!    5. https://gcc.gnu.org/gcc-4.8/porting_to.html
!    6. https://github.com/google/sanitizers
!    7. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki
!    8. https://lkml.org/lkml/2006/11/28/239
     9. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    10. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   11. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   12. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
!   13. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   14. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html
!   15. https://gcc.gnu.org/projects/cxx1y.html
!   16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011
    17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
    19. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
--- 12952,13004 ----
     Support for the new powerpc64le-linux platform has been added. It
     defaults to generating code that conforms to the ELFV2 ABI.
  
! [58]GCC 4.8.4
  
!    This is the [59]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [60]GCC 4.8.5
  
!    This is the [61]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.8.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [62]GCC manuals. If that fails, the
!     [63]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [64]gcc@gcc.gnu.org. All of [65]our lists have public
      archives.
  
!    Copyright (C) [66]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [67]maintained by the GCC team. Last modified
!    2025-02-28.
  
  References
  
     1. https://gcc.gnu.org/wiki/cxx-conversion
     2. ftp://gcc.gnu.org/pub/gcc/infrastructure/
!    3. https://gcc.gnu.org/gcc-4.8/porting_to.html
!    4. https://github.com/google/sanitizers
!    5. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki
!    6. https://lkml.org/lkml/2006/11/28/239
!    7. https://gcc.gnu.org/gcc-4.8/changes.html#cxx
!    8. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
     9. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    10. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
!   12. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   13. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html
!   14. https://gcc.gnu.org/projects/cxx1y.html
!   15. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011
!   16. https://gcc.gnu.org/gcc-4.8/changes.html#fortran
    17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
    19. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
*************** References
*** 11691,11712 ****
    25. https://gcc.gnu.org/wiki/TS29113Status
    26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h
    27. https://chasm-interop.sourceforge.net/
!   28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support
!   29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
!   30. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
!   31. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
!   32. https://gcc.gnu.org/wiki/FunctionMultiVersioning
!   33. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.1
!   34. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2
!   35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.3
!   36. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.4
!   37. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.5
!   38. https://gcc.gnu.org/onlinedocs/
!   39. mailto:gcc-help@gcc.gnu.org
!   40. mailto:gcc@gcc.gnu.org
!   41. https://gcc.gnu.org/lists.html
!   42. https://www.fsf.org/
!   43. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/index.html
                               GCC 4.7 Release Series
--- 13010,13055 ----
    25. https://gcc.gnu.org/wiki/TS29113Status
    26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h
    27. https://chasm-interop.sourceforge.net/
!   28. https://gcc.gnu.org/gcc-4.8/changes.html#go
!   29. https://gcc.gnu.org/gcc-4.8/changes.html#targets
!   30. https://gcc.gnu.org/gcc-4.8/changes.html#aarch64
!   31. https://gcc.gnu.org/gcc-4.8/changes.html#arm
!   32. https://gcc.gnu.org/gcc-4.8/changes.html#avr
!   33. http://www.nongnu.org/avr-libc/
!   34. https://gcc.gnu.org/PR54461
!   35. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support
!   36. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
!   37. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
!   38. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
!   39. https://gcc.gnu.org/wiki/FunctionMultiVersioning
!   40. https://gcc.gnu.org/gcc-4.8/changes.html#frv
!   41. https://gcc.gnu.org/gcc-4.8/changes.html#mips
!   42. https://gcc.gnu.org/gcc-4.8/changes.html#powerpc
!   43. https://gcc.gnu.org/gcc-4.8/changes.html#rx
!   44. https://gcc.gnu.org/gcc-4.8/changes.html#sh
!   45. https://gcc.gnu.org/gcc-4.8/changes.html#sparc
!   46. https://gcc.gnu.org/gcc-4.8/changes.html#tilegx
!   47. https://gcc.gnu.org/gcc-4.8/changes.html#v850
!   48. https://gcc.gnu.org/gcc-4.8/changes.html#xstormy16
!   49. https://gcc.gnu.org/gcc-4.8/changes.html#os
!   50. https://gcc.gnu.org/gcc-4.8/changes.html#openbsd
!   51. https://gcc.gnu.org/gcc-4.8/changes.html#windows
!   52. https://gcc.gnu.org/gcc-4.8/changes.html#GCC4.8.1
!   53. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.1
!   54. https://gcc.gnu.org/gcc-4.8/changes.html#GCC4.8.2
!   55. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2
!   56. https://gcc.gnu.org/gcc-4.8/changes.html#GCC4.8.3
!   57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.3
!   58. https://gcc.gnu.org/gcc-4.8/changes.html#GCC4.8.4
!   59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.4
!   60. https://gcc.gnu.org/gcc-4.8/changes.html#GCC4.8.5
!   61. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.5
!   62. https://gcc.gnu.org/onlinedocs/
!   63. mailto:gcc-help@gcc.gnu.org
!   64. mailto:gcc@gcc.gnu.org
!   65. https://gcc.gnu.org/lists.html
!   66. https://www.fsf.org/
!   67. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/index.html
                               GCC 4.7 Release Series
*************** Caveats
*** 11866,11888 ****
         from Solaris 11, and was only intended as a migration aid from
         SunOS 4 to SunOS 5. The -compat-bsd compiler option is not
         recognized any longer.
-      * The AVR port's libgcc has been improved and its multilib structure
-        has been enhanced. As a result, all objects contributing to an
-        application must either be compiled with GCC versions up to 4.6.x
-        or with GCC versions 4.7.1 or later. If the compiler is used with
-        AVR Libc, you need a version that supports the new layout, i.e.
-        implements [2]#35407.
-      * The AVR port's -mshort-calls command-line option has been
-        deprecated. It will be removed in the GCC 4.8 release. See -mrelax
-        for a replacement.
-      * The AVR port only references startup code that clears .bss and the
-        common section resp. initializes the .data and .rodata section
-        provided respective sections (or subsections thereof) are not
-        empty, see [3]PR18145. Applications that put all static storage
-        objects into non-standard sections and / or define all static
-        storage objects in assembler modules, must reference __do_clear_bss
-        resp. __do_copy_data by hand or undefine the symbol(s) by means of
-        -Wl,-u,__do_clear_bss resp. -Wl,-u,__do_copy_data.
       * The ARM port's -mwords-little-endian option has been deprecated. It
         will be removed in a future release.
       * Support has been removed for the NetWare x86 configuration
--- 13209,13214 ----
*************** Caveats
*** 11908,11914 ****
         not affected by this change. (This change affects GCC versions
         4.7.2 and later.)
       * More information on porting to GCC 4.7 from previous versions of
!        GCC can be found in the [4]porting guide for this release.
  
  General Optimizer Improvements
  
--- 13234,13240 ----
         not affected by this change. (This change affects GCC versions
         4.7.2 and later.)
       * More information on porting to GCC 4.7 from previous versions of
!        GCC can be found in the [2]porting guide for this release.
  
  General Optimizer Improvements
  
*************** New Languages and Language specific impr
*** 12039,12045 ****
         constructs, use the -fgnu-tm option.
         Support is currently available for Alpha, ARM, PowerPC, SH, SPARC,
         and 32-bit/64-bit x86 platforms.
!        For more details on transactional memory see [5]the GCC WiKi.
       * Support for atomic operations specifying the C++11/C11 memory model
         has been added. These new __atomic routines replace the existing
         __sync built-in routines.
--- 13365,13371 ----
         constructs, use the -fgnu-tm option.
         Support is currently available for Alpha, ARM, PowerPC, SH, SPARC,
         and 32-bit/64-bit x86 platforms.
!        For more details on transactional memory see [3]the GCC WiKi.
       * Support for atomic operations specifying the C++11/C11 memory model
         has been added. These new __atomic routines replace the existing
         __sync built-in routines.
*************** New Languages and Language specific impr
*** 12050,12056 ****
         library functions is available on the GCC atomic wiki in the
         "External Atomics Library" section.
         For more details on the memory models and features, see the
!        [6]atomic wiki.
       * When a binary operation is performed on vector types and one of the
         operands is a uniform vector, it is possible to replace the vector
         with the generating element. For example:
--- 13376,13382 ----
         library functions is available on the GCC atomic wiki in the
         "External Atomics Library" section.
         For more details on the memory models and features, see the
!        [4]atomic wiki.
       * When a binary operation is performed on vector types and one of the
         operands is a uniform vector, it is possible to replace the vector
         with the generating element. For example:
*************** res = a - x;  /* means a - {x,x,x,x}  */
*** 12075,12086 ****
            + A built-in function __builtin_complex is provided to support C
              library implementation of the CMPLX family of macros.
  
!   C++
  
       * G++ now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat
         options, which are equivalent to -std=c++0x, -std=gnu++0x, and
         -Wc++0x-compat, respectively.
!      * G++ now implements [7]C++11 extended friend syntax:
  
  template<class W>
  class Q
--- 13401,13412 ----
            + A built-in function __builtin_complex is provided to support C
              library implementation of the CMPLX family of macros.
  
!   [5]C++
  
       * G++ now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat
         options, which are equivalent to -std=c++0x, -std=gnu++0x, and
         -Wc++0x-compat, respectively.
!      * G++ now implements [6]C++11 extended friend syntax:
  
  template<class W>
  class Q
*************** struct B
*** 12095,12101 ****
    int ar[Q<B>::I];
  };
  
!      * Thanks to Ville Voutilainen, G++ now implements [8]C++11 explicit
         override control.
  
  struct B {
--- 13421,13427 ----
    int ar[Q<B>::I];
  };
  
!      * Thanks to Ville Voutilainen, G++ now implements [7]C++11 explicit
         override control.
  
  struct B {
*************** struct D : B {
*** 12112,12137 ****
  struct E final { };
  struct F: E { }; // error: deriving from final class
  
!      * G++ now implements [9]C++11 non-static data member initializers.
  
  struct A {
    int i = 42;
  } a; // initializes a.i to 42
  
!      * Thanks to Ed Smith-Rowland, G++ now implements [10]C++11
         user-defined literals.
  
  // Not actually a good approximation.  :)
  constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
  long double pi = 180.0_degrees;
  
!      * G++ now implements [11]C++11 alias-declarations.
  
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
       * Thanks to Ville Voutilainen and Pedro Lamarão, G++ now implements
!        [12]C++11 delegating constructors.
  
  struct A {
    A(int);
--- 13438,13463 ----
  struct E final { };
  struct F: E { }; // error: deriving from final class
  
!      * G++ now implements [8]C++11 non-static data member initializers.
  
  struct A {
    int i = 42;
  } a; // initializes a.i to 42
  
!      * Thanks to Ed Smith-Rowland, G++ now implements [9]C++11
         user-defined literals.
  
  // Not actually a good approximation.  :)
  constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
  long double pi = 180.0_degrees;
  
!      * G++ now implements [10]C++11 alias-declarations.
  
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
       * Thanks to Ville Voutilainen and Pedro Lamarão, G++ now implements
!        [11]C++11 delegating constructors.
  
  struct A {
    A(int);
*************** const int &y = f(2);
*** 12210,12223 ****
         Using-declarations are to be used instead. Furthermore, some
         efforts have been made to improve the support of class scope
         using-declarations. In particular, using-declarations referring to
!        a dependent type now work as expected ([13]bug c++/14258).
       * The ELF symbol visibility of a template instantiation is now
         properly constrained by the visibility of its template arguments
!        ([14]bug c++/35688).
  
      Runtime Library (libstdc++)
  
!      * [15]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + using noexcept in most of the library;
            + implementations of pointer_traits, allocator_traits and
--- 13536,13549 ----
         Using-declarations are to be used instead. Furthermore, some
         efforts have been made to improve the support of class scope
         using-declarations. In particular, using-declarations referring to
!        a dependent type now work as expected ([12]bug c++/14258).
       * The ELF symbol visibility of a template instantiation is now
         properly constrained by the visibility of its template arguments
!        ([13]bug c++/35688).
  
      Runtime Library (libstdc++)
  
!      * [14]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + using noexcept in most of the library;
            + implementations of pointer_traits, allocator_traits and
*************** const int &y = f(2);
*** 12231,12237 ****
       * Debug Mode iterators for unordered associative containers.
       * Avoid polluting the global namespace and do not include <unistd.h>.
  
!   Fortran
  
       * The compile flag [16]-fstack-arrays has been added, which causes
         all local arrays to be put on stack memory. For some programs this
--- 13557,13563 ----
       * Debug Mode iterators for unordered associative containers.
       * Avoid polluting the global namespace and do not include <unistd.h>.
  
!   [15]Fortran
  
       * The compile flag [16]-fstack-arrays has been added, which causes
         all local arrays to be put on stack memory. For some programs this
*************** const int &y = f(2);
*** 12299,12316 ****
              compatible with the candidate draft of TS 29113 (since GCC
              4.6).
  
!   Go
  
!      * GCC 4.7 implements the [34]Go 1 language standard. The library
         support in 4.7.0 is not quite complete, due to release timing.
         Release 4.7.1 includes complete support for Go 1. The Go library is
         from the Go 1.0.1 release.
       * Go has been tested on GNU/Linux and Solaris platforms. It may work
         on other platforms as well.
  
! New Targets and Target Specific Improvements
  
!   ARM
  
       * GCC now supports the Cortex-A7 processor implementing the v7-a
         version of the architecture using the option -mcpu=cortex-a7.
--- 13625,13642 ----
              compatible with the candidate draft of TS 29113 (since GCC
              4.6).
  
!   [34]Go
  
!      * GCC 4.7 implements the [35]Go 1 language standard. The library
         support in 4.7.0 is not quite complete, due to release timing.
         Release 4.7.1 includes complete support for Go 1. The Go library is
         from the Go 1.0.1 release.
       * Go has been tested on GNU/Linux and Solaris platforms. It may work
         on other platforms as well.
  
! [36]New Targets and Target Specific Improvements
  
!   [37]ARM
  
       * GCC now supports the Cortex-A7 processor implementing the v7-a
         version of the architecture using the option -mcpu=cortex-a7.
*************** New Targets and Target Specific Improvem
*** 12320,12330 ****
       * A new option -mvectorize-with-neon-double was added to allow users
         to change the vector size to 64 bits.
  
!   AVR
  
!      * GCC now supports the XMEGA architecture. This requires GNU binutils
         2.22 or later.
!      * Support for the [35]named address spaces __flash, __flash1, …,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
--- 13646,13672 ----
       * A new option -mvectorize-with-neon-double was added to allow users
         to change the vector size to 64 bits.
  
!   [38]AVR
  
!      * The AVR port's libgcc has been improved and its multilib structure
!        has been enhanced. As a result, all objects contributing to an
!        application must either be compiled with GCC versions up to 4.6.x
!        or with GCC versions 4.7.1 or later. If the compiler is used with
!        AVR-LibC, you need a version that supports the new layout, i.e.
!        implements [39]#35407.
!      * The -mshort-calls command-line option has been deprecated. It will
!        be removed in the GCC 4.8 release. See -mrelax for a replacement.
!      * The compiled code only references startup code that clears .bss and
!        the common section resp. initializes the .data and .rodata section
!        provided respective sections (or subsections thereof) are not
!        empty, see [40]PR18145. Applications that put all static storage
!        objects into non-standard sections and / or define all static
!        storage objects in assembler modules, must reference __do_clear_bss
!        resp. __do_copy_data by hand or undefine the symbol(s) by means of
!        -Wl,-u,__do_clear_bss resp. -Wl,-u,__do_copy_data.
!      * GCC now supports the XMEGA architecture. This requires GNU Binutils
         2.22 or later.
!      * Support for the [41]named address spaces __flash, __flash1, …,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
*************** int add_values (const __flash int *p, in
*** 12339,12350 ****
  
       * Support has been added for the AVR-specific configure option
         --with-avrlibc=yes in order to arrange for better integration of
!        [36]AVR-Libc. This configure option is supported in avr-gcc 4.7.2
         and newer and will only take effect in non-RTEMS configurations. If
         avr-gcc is configured for RTEMS, the option will be ignored which
!        is the same as specifying --with-avrlibc=no. See [37]PR54461 for
         more technical details.
!      * Support for AVR-specific [38]built-in functions has been added.
       * Support has been added for the signed and unsigned 24-bit scalar
         integer types __int24 and __uint24.
       * New command-line options -maccumulate-args, -mbranch-cost=cost and
--- 13681,13692 ----
  
       * Support has been added for the AVR-specific configure option
         --with-avrlibc=yes in order to arrange for better integration of
!        [42]AVR-Libc. This configure option is supported in avr-gcc v4.7.2
         and newer and will only take effect in non-RTEMS configurations. If
         avr-gcc is configured for RTEMS, the option will be ignored which
!        is the same as specifying --with-avrlibc=no. See [43]PR54461 for
         more technical details.
!      * Support for AVR-specific [44]built-in functions has been added.
       * Support has been added for the signed and unsigned 24-bit scalar
         integer types __int24 and __uint24.
       * New command-line options -maccumulate-args, -mbranch-cost=cost and
*************** void set_portb (uint8_t value)
*** 12426,12432 ****
         FMA, BMI, BMI2, LZCNT is available through -march=core-avx2.
       * Support for new AMD family 15h processors (Piledriver core) is now
         available through -march=bdver2 and -mtune=bdver2 options.
!      * Support for [39]the x32 psABI is now available through the -mx32
         option.
       * Windows mingw targets are using the -mms-bitfields option by
         default.
--- 13768,13774 ----
         FMA, BMI, BMI2, LZCNT is available through -march=core-avx2.
       * Support for new AMD family 15h processors (Piledriver core) is now
         available through -march=bdver2 and -mtune=bdver2 options.
!      * Support for [45]the x32 psABI is now available through the -mx32
         option.
       * Windows mingw targets are using the -mms-bitfields option by
         default.
*************** void set_portb (uint8_t value)
*** 12435,12441 ****
       * Support for the configure option --with-threads=posix for Windows
         mingw targets.
  
!   MIPS
  
       * GCC now supports thread-local storage (TLS) for MIPS16. This
         requires GNU binutils 2.22 or later.
--- 13777,13783 ----
       * Support for the configure option --with-threads=posix for Windows
         mingw targets.
  
!   [46]MIPS
  
       * GCC now supports thread-local storage (TLS) for MIPS16. This
         requires GNU binutils 2.22 or later.
*************** Other significant improvements
*** 12541,12615 ****
         the DW_AT_producer attribute string in the DWARF debugging
         information.
       * GCC now supports various new GNU extensions to the DWARF debugging
!        information format, like [40]entry value and [41]call site
!        information, [42]typed DWARF stack or [43]a more compact macro
         representation. Support for these extensions has been added to GDB
         7.4. They can be disabled through the -gstrict-dwarf command-line
         option.
  
! GCC 4.7.1
  
!    This is the [44]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
!    The Go front end in the 4.7.1 release fully supports the [45]Go 1
     language standard.
  
! GCC 4.7.2
  
!    This is the [46]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.7.3
  
!    This is the [47]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.7.4
  
!    This is the [48]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [49]GCC manuals. If that fails, the
!     [50]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [51]gcc@gcc.gnu.org. All of [52]our lists have public
      archives.
  
!    Copyright (C) [53]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [54]maintained by the GCC team. Last modified
!    2023-03-29.
  
  References
  
     1. https://gcc.gnu.org/ml/gcc-patches/2011-03/msg01263.html
!    2. http://savannah.nongnu.org/bugs/?35407
!    3. https://gcc.gnu.org/PR18145
!    4. https://gcc.gnu.org/gcc-4.7/porting_to.html
!    5. https://gcc.gnu.org/wiki/TransactionalMemory
!    6. https://gcc.gnu.org/wiki/Atomic/GCCMM
     7. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     8. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     9. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    10. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    11. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   12. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   13. https://gcc.gnu.org/PR14258
!   14. https://gcc.gnu.org/PR35688
!   15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
    16. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
    17. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
    18. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
--- 13883,13957 ----
         the DW_AT_producer attribute string in the DWARF debugging
         information.
       * GCC now supports various new GNU extensions to the DWARF debugging
!        information format, like [47]entry value and [48]call site
!        information, [49]typed DWARF stack or [50]a more compact macro
         representation. Support for these extensions has been added to GDB
         7.4. They can be disabled through the -gstrict-dwarf command-line
         option.
  
! [51]GCC 4.7.1
  
!    This is the [52]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
!    The Go front end in the 4.7.1 release fully supports the [53]Go 1
     language standard.
  
! [54]GCC 4.7.2
  
!    This is the [55]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [56]GCC 4.7.3
  
!    This is the [57]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [58]GCC 4.7.4
  
!    This is the [59]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.7.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [60]GCC manuals. If that fails, the
!     [61]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [62]gcc@gcc.gnu.org. All of [63]our lists have public
      archives.
  
!    Copyright (C) [64]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [65]maintained by the GCC team. Last modified
!    2025-02-28.
  
  References
  
     1. https://gcc.gnu.org/ml/gcc-patches/2011-03/msg01263.html
!    2. https://gcc.gnu.org/gcc-4.7/porting_to.html
!    3. https://gcc.gnu.org/wiki/TransactionalMemory
!    4. https://gcc.gnu.org/wiki/Atomic/GCCMM
!    5. https://gcc.gnu.org/gcc-4.7/changes.html#cxx
!    6. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     7. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     8. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     9. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    10. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    11. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   12. https://gcc.gnu.org/PR14258
!   13. https://gcc.gnu.org/PR35688
!   14. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
!   15. https://gcc.gnu.org/gcc-4.7/changes.html#fortran
    16. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
    17. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
    18. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
*************** References
*** 12628,12654 ****
    31. https://gcc.gnu.org/wiki/CoarrayLib
    32. https://gcc.gnu.org/wiki/TS29113Status
    33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53
!   34. https://go.dev/doc/go1
!   35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
!   36. http://www.nongnu.org/avr-libc/
!   37. https://gcc.gnu.org/PR54461
!   38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html
!   39. https://sites.google.com/site/x32abi/
!   40. https://dwarfstd.org/issues/100909.1.html
!   41. https://dwarfstd.org/issues/100909.2.html
!   42. https://dwarfstd.org/issues/140425.1.html
!   43. https://dwarfstd.org/issues/110722.1.html
!   44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
!   45. https://go.dev/doc/go1
!   46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
!   47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3
!   48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4
!   49. https://gcc.gnu.org/onlinedocs/
!   50. mailto:gcc-help@gcc.gnu.org
!   51. mailto:gcc@gcc.gnu.org
!   52. https://gcc.gnu.org/lists.html
!   53. https://www.fsf.org/
!   54. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
                               GCC 4.6 Release Series
--- 13970,14007 ----
    31. https://gcc.gnu.org/wiki/CoarrayLib
    32. https://gcc.gnu.org/wiki/TS29113Status
    33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53
!   34. https://gcc.gnu.org/gcc-4.7/changes.html#go
!   35. https://go.dev/doc/go1
!   36. https://gcc.gnu.org/gcc-4.7/changes.html#targets
!   37. https://gcc.gnu.org/gcc-4.7/changes.html#arm
!   38. https://gcc.gnu.org/gcc-4.7/changes.html#avr
!   39. http://savannah.nongnu.org/bugs/?35407
!   40. https://gcc.gnu.org/PR18145
!   41. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
!   42. http://www.nongnu.org/avr-libc/
!   43. https://gcc.gnu.org/PR54461
!   44. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html
!   45. https://sites.google.com/site/x32abi/
!   46. https://gcc.gnu.org/gcc-4.7/changes.html#mips
!   47. https://dwarfstd.org/issues/100909.1.html
!   48. https://dwarfstd.org/issues/100909.2.html
!   49. https://dwarfstd.org/issues/140425.1.html
!   50. https://dwarfstd.org/issues/110722.1.html
!   51. https://gcc.gnu.org/gcc-4.7/changes.html#GCC4.7.1
!   52. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
!   53. https://go.dev/doc/go1
!   54. https://gcc.gnu.org/gcc-4.7/changes.html#GCC4.7.2
!   55. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
!   56. https://gcc.gnu.org/gcc-4.7/changes.html#GCC4.7.3
!   57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3
!   58. https://gcc.gnu.org/gcc-4.7/changes.html#GCC4.7.4
!   59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4
!   60. https://gcc.gnu.org/onlinedocs/
!   61. mailto:gcc-help@gcc.gnu.org
!   62. mailto:gcc@gcc.gnu.org
!   63. https://gcc.gnu.org/lists.html
!   64. https://www.fsf.org/
!   65. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
                               GCC 4.6 Release Series
*************** New Languages and Language specific impr
*** 12990,12996 ****
       * The -fmax-errors=N option is now supported. Using this option
         causes the compiler to exit after N errors have been issued.
  
!   C
  
       * There is now experimental support for some features from the
         upcoming C1X revision of the ISO C standard. This support may be
--- 14343,14349 ----
       * The -fmax-errors=N option is now supported. Using this option
         causes the compiler to exit after N errors have been issued.
  
!   [7]C
  
       * There is now experimental support for some features from the
         upcoming C1X revision of the ISO C standard. This support may be
*************** New Languages and Language specific impr
*** 13014,13022 ****
         field whose type is a typedef name may be referred to using the
         typedef name.
  
!   C++
  
!      * Improved [7]experimental support for the upcoming C++0x ISO C++
         standard, including support for constexpr (thanks to Gabriel Dos
         Reis and Jason Merrill), nullptr (thanks to Magnus Fromreide),
         noexcept, unrestricted unions, range-based for loops (thanks to
--- 14367,14375 ----
         field whose type is a typedef name may be referred to using the
         typedef name.
  
!   [8]C++
  
!      * Improved [9]experimental support for the upcoming C++0x ISO C++
         standard, including support for constexpr (thanks to Gabriel Dos
         Reis and Jason Merrill), nullptr (thanks to Magnus Fromreide),
         noexcept, unrestricted unions, range-based for loops (thanks to
*************** New Languages and Language specific impr
*** 13026,13039 ****
       * When an extern declaration within a function does not match a
         declaration in the enclosing context, G++ now properly declares the
         name within the namespace of the function rather than the namespace
!        which was open just before the function definition ([8]c++/43145).
       * GCC now warns by default when casting integers to larger pointer
         types. These warnings can be disabled with the option
         -Wno-int-to-pointer-cast, which is now also available in C++.
       * G++ no longer optimizes using the assumption that a value of
         enumeration type will fall within the range specified by the
         standard, since that assumption is easily violated with a
!        conversion from integer type ([9]c++/43680). The old behavior can
         be restored with -fstrict-enums.
       * The new -fnothrow-opt flag changes the semantics of a throw()
         exception specification to match the proposed semantics of the
--- 14379,14392 ----
       * When an extern declaration within a function does not match a
         declaration in the enclosing context, G++ now properly declares the
         name within the namespace of the function rather than the namespace
!        which was open just before the function definition ([10]c++/43145).
       * GCC now warns by default when casting integers to larger pointer
         types. These warnings can be disabled with the option
         -Wno-int-to-pointer-cast, which is now also available in C++.
       * G++ no longer optimizes using the assumption that a value of
         enumeration type will fall within the range specified by the
         standard, since that assumption is easily violated with a
!        conversion from integer type ([11]c++/43680). The old behavior can
         be restored with -fstrict-enums.
       * The new -fnothrow-opt flag changes the semantics of a throw()
         exception specification to match the proposed semantics of the
*************** New Languages and Language specific impr
*** 13056,13062 ****
         class member declarations.
       * G++ now issues clearer diagnostics when a colon is used in a place
         where a double-colon was intended.
!      * G++ no longer accepts mutable on reference members ([10]c++/33558).
         Use -fpermissive to allow the old, non-conforming behaviour.
       * A few mangling fixes have been made, to attribute const/volatile on
         function pointer types, decltype of a plain decl, and use of a
--- 14409,14415 ----
         class member declarations.
       * G++ now issues clearer diagnostics when a colon is used in a place
         where a double-colon was intended.
!      * G++ no longer accepts mutable on reference members ([12]c++/33558).
         Use -fpermissive to allow the old, non-conforming behaviour.
       * A few mangling fixes have been made, to attribute const/volatile on
         function pointer types, decltype of a plain decl, and use of a
*************** New Languages and Language specific impr
*** 13069,13075 ****
       * In 4.6.0 and 4.6.1 G++ no longer allows objects of const-qualified
         type to be default initialized unless the type has a user-declared
         default constructor. In 4.6.2 G++ implements the proposed
!        resolution of [11]DR 253, so default initialization is allowed if
         it initializes all subobjects. Code that fails to compile can be
         fixed by providing an initializer e.g.
      struct A { A(); };
--- 14422,14428 ----
       * In 4.6.0 and 4.6.1 G++ no longer allows objects of const-qualified
         type to be default initialized unless the type has a user-declared
         default constructor. In 4.6.2 G++ implements the proposed
!        resolution of [13]DR 253, so default initialization is allowed if
         it initializes all subobjects. Code that fails to compile can be
         fixed by providing an initializer e.g.
      struct A { A(); };
*************** New Languages and Language specific impr
*** 13079,13097 ****
  
      Runtime Library (libstdc++)
  
!      * [12]Improved experimental support for the upcoming ISO C++
         standard, C++0x, including using constexpr and nullptr.
!      * Performance improvements to the [13]Debug Mode, thanks to François
         Dumont.
       * Atomic operations used for reference-counting are annotated so that
         they can be understood by race detectors such as Helgrind, see
!        [14]Data Race Hunting.
       * Most libstdc++ standard headers have been changed to no longer
         include the cstddef header as an implementation detail. Code that
         relied on that header being included as side-effect of including
         other standard headers will need to include cstddef explicitly.
  
!   Fortran
  
       * On systems supporting the libquadmath library, GNU Fortran now also
         supports a quad-precision, kind=16 floating-point data type
--- 14432,14450 ----
  
      Runtime Library (libstdc++)
  
!      * [14]Improved experimental support for the upcoming ISO C++
         standard, C++0x, including using constexpr and nullptr.
!      * Performance improvements to the [15]Debug Mode, thanks to François
         Dumont.
       * Atomic operations used for reference-counting are annotated so that
         they can be understood by race detectors such as Helgrind, see
!        [16]Data Race Hunting.
       * Most libstdc++ standard headers have been changed to no longer
         include the cstddef header as an implementation detail. Code that
         relied on that header being included as side-effect of including
         other standard headers will need to include cstddef explicitly.
  
!   [17]Fortran
  
       * On systems supporting the libquadmath library, GNU Fortran now also
         supports a quad-precision, kind=16 floating-point data type
*************** New Languages and Language specific impr
*** 13109,13115 ****
       * The -fwhole-file flag is now enabled by default. This improves code
         generation and diagnostics. It can be disabled using the deprecated
         -fno-whole-file flag.
!      * Support the generation of Makefile dependencies via the [15]-M...
         flags of GCC; you may need to specify the -cpp option in addition.
         The dependencies take modules, Fortran's include, and CPP's
         #include into account. Note: Using -M for the module path is no
--- 14462,14468 ----
       * The -fwhole-file flag is now enabled by default. This improves code
         generation and diagnostics. It can be disabled using the deprecated
         -fno-whole-file flag.
!      * Support the generation of Makefile dependencies via the [18]-M...
         flags of GCC; you may need to specify the -cpp option in addition.
         The dependencies take modules, Fortran's include, and CPP's
         #include into account. Note: Using -M for the module path is no
*************** New Languages and Language specific impr
*** 13126,13132 ****
       * Fortran 2003 support has been extended:
            + Improved support for polymorphism between libraries and
              programs and for complicated inheritance patterns (cf.
!             [16]object-oriented programming).
            + Experimental support of the ASSOCIATE construct.
            + In pointer assignments it is now possible to specify the lower
              bounds of the pointer and, for a rank-1 or a simply contiguous
--- 14479,14485 ----
       * Fortran 2003 support has been extended:
            + Improved support for polymorphism between libraries and
              programs and for complicated inheritance patterns (cf.
!             [19]object-oriented programming).
            + Experimental support of the ASSOCIATE construct.
            + In pointer assignments it is now possible to specify the lower
              bounds of the pointer and, for a rank-1 or a simply contiguous
*************** New Languages and Language specific impr
*** 13143,13150 ****
            + Namelist variables with allocatable and pointer attribute and
              nonconstant length type parameter are supported.
       * Fortran 2008 support has been extended:
!           + Experimental [17]coarray support (for one image only, i.e.
!             num_images() == 1); use the [18]-fcoarray=single flag to
              enable it.
            + The STOP and the new ERROR STOP statements now support all
              constant expressions.
--- 14496,14503 ----
            + Namelist variables with allocatable and pointer attribute and
              nonconstant length type parameter are supported.
       * Fortran 2008 support has been extended:
!           + Experimental [20]coarray support (for one image only, i.e.
!             num_images() == 1); use the [21]-fcoarray=single flag to
              enable it.
            + The STOP and the new ERROR STOP statements now support all
              constant expressions.
*************** New Languages and Language specific impr
*** 13195,13201 ****
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
!   Go
  
     Support for the Go programming language has been added to GCC. It is
     not enabled by default when you build GCC; use the --enable-languages
--- 14548,14554 ----
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
!   [22]Go
  
     Support for the Go programming language has been added to GCC. It is
     not enabled by default when you build GCC; use the --enable-languages
*************** New Languages and Language specific impr
*** 13205,13211 ****
     Go is currently known to work on GNU/Linux and RTEMS. Solaris support
     is in progress. It may or may not work on other platforms.
  
!   Objective-C and Objective-C++
  
       * The -fobjc-exceptions flag is now required to enable Objective-C
         exception and synchronization syntax (introduced by the keywords
--- 14558,14564 ----
     Go is currently known to work on GNU/Linux and RTEMS. Solaris support
     is in progress. It may or may not work on other platforms.
  
!   [23]Objective-C and Objective-C++
  
       * The -fobjc-exceptions flag is now required to enable Objective-C
         exception and synchronization syntax (introduced by the keywords
*************** New Languages and Language specific impr
*** 13302,13310 ****
       * Runtime support for Objective-C 2.0 fast enumeration has been
         added.
  
! New Targets and Target Specific Improvements
  
!   ARM
  
       * GCC now supports the Cortex-M4 processor implementing the v7-em
         version of the architecture using the option -mcpu=cortex-m4.
--- 14655,14663 ----
       * Runtime support for Objective-C 2.0 fast enumeration has been
         added.
  
! [24]New Targets and Target Specific Improvements
  
!   [25]ARM
  
       * GCC now supports the Cortex-M4 processor implementing the v7-em
         version of the architecture using the option -mcpu=cortex-m4.
*************** New Targets and Target Specific Improvem
*** 13368,13374 ****
       * Support for AMD's BMI (Bit Manipulation) built-in functions and
         code generation is available via -mbmi.
  
!   MicroBlaze
  
       * Support has been added for the Xilinx MicroBlaze softcore processor
         (microblaze-elf) embedded target. This configurable processor is
--- 14721,14727 ----
       * Support for AMD's BMI (Bit Manipulation) built-in functions and
         code generation is available via -mbmi.
  
!   [26]MicroBlaze
  
       * Support has been added for the Xilinx MicroBlaze softcore processor
         (microblaze-elf) embedded target. This configurable processor is
*************** New Targets and Target Specific Improvem
*** 13379,13385 ****
       * GCC now supports the Loongson 3A processor. Its canonical -march=
         and -mtune= name is loongson3a.
  
!   MN10300 / AM33
  
       * The inline assembly register constraint "A" has been renamed "c".
         This constraint is used to select a floating-point register that
--- 14732,14738 ----
       * GCC now supports the Loongson 3A processor. Its canonical -march=
         and -mtune= name is loongson3a.
  
!   [27]MN10300 / AM33
  
       * The inline assembly register constraint "A" has been renamed "c".
         This constraint is used to select a floating-point register that
*************** New Targets and Target Specific Improvem
*** 13475,13483 ****
         documented workaround for the single erratum of the Atmel AT697F
         processor.
  
! Operating Systems
  
!   Android
  
       * GCC now supports the Bionic C library and provides a convenient way
         of building native libraries and applications for the Android
--- 14828,14836 ----
         documented workaround for the single erratum of the Atmel AT697F
         processor.
  
! [28]Operating Systems
  
!   [29]Android
  
       * GCC now supports the Bionic C library and provides a convenient way
         of building native libraries and applications for the Android
*************** Operating Systems
*** 13485,13491 ****
         options for details on building native code. At the moment, Android
         support is enabled only for ARM.
  
!   Darwin/Mac OS X
  
       * General
            + Initial support for CFString types has been added.
--- 14838,14844 ----
         options for details on building native code. At the moment, Android
         support is enabled only for ARM.
  
!   [30]Darwin/Mac OS X
  
       * General
            + Initial support for CFString types has been added.
*************** Operating Systems
*** 13530,13536 ****
            + The -fsection-anchors option is now available although,
              presently, not heavily tested.
  
!   Solaris 2
  
      New Features
  
--- 14883,14889 ----
            + The -fsection-anchors option is now available although,
              presently, not heavily tested.
  
!   [31]Solaris 2
  
      New Features
  
*************** Operating Systems
*** 13555,13561 ****
         use the new -mvect8-ret-in-mem option to remain compatible with
         previous versions of GCC and Sun Studio.
  
!   Windows x86/x86_64
  
       * Initial support for decimal floating point.
       * Support for the __thiscall calling-convention.
--- 14908,14914 ----
         use the new -mvect8-ret-in-mem option to remain compatible with
         previous versions of GCC and Sun Studio.
  
!   [32]Windows x86/x86_64
  
       * Initial support for decimal floating point.
       * Support for the __thiscall calling-convention.
*************** Changes for GCC Developers
*** 13595,13642 ****
       * The old GC allocation interface of ggc_alloc and friends was
         replaced with a type-safe alternative.
  
! GCC 4.6.1
  
!    This is the [19]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.6.2
  
!    This is the [20]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.6.3
  
!    This is the [21]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.6.4
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [23]GCC manuals. If that fails, the
!     [24]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [25]gcc@gcc.gnu.org. All of [26]our lists have public
      archives.
  
!    Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [28]maintained by the GCC team. Last modified
!    2024-05-17.
  
  References
  
--- 14948,14995 ----
       * The old GC allocation interface of ggc_alloc and friends was
         replaced with a type-safe alternative.
  
! [33]GCC 4.6.1
  
!    This is the [34]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [35]GCC 4.6.2
  
!    This is the [36]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [37]GCC 4.6.3
  
!    This is the [38]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [39]GCC 4.6.4
  
!    This is the [40]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.6.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [41]GCC manuals. If that fails, the
!     [42]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [43]gcc@gcc.gnu.org. All of [44]our lists have public
      archives.
  
!    Copyright (C) [45]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [46]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 13646,13673 ****
     4. https://gcc.gnu.org/gcc-4.6/porting_to.html
     5. https://gcc.gnu.org/projects/lto/whopr.pdf
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. https://gcc.gnu.org/gcc-4.6/cxx0x_status.html
!    8. https://gcc.gnu.org/PR43145
!    9. https://gcc.gnu.org/PR43680
!   10. https://gcc.gnu.org/PR33558
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
!   12. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x
!   13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
!   14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
!   15. https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
!   16. https://gcc.gnu.org/wiki/OOP
!   17. https://gcc.gnu.org/wiki/Coarray
!   18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233
!   19. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1
!   20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2
!   21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4
!   23. https://gcc.gnu.org/onlinedocs/
!   24. mailto:gcc-help@gcc.gnu.org
!   25. mailto:gcc@gcc.gnu.org
!   26. https://gcc.gnu.org/lists.html
!   27. https://www.fsf.org/
!   28. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/index.html
                               GCC 4.5 Release Series
--- 14999,15044 ----
     4. https://gcc.gnu.org/gcc-4.6/porting_to.html
     5. https://gcc.gnu.org/projects/lto/whopr.pdf
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. https://gcc.gnu.org/gcc-4.6/changes.html#c
!    8. https://gcc.gnu.org/gcc-4.6/changes.html#cplusplus
!    9. https://gcc.gnu.org/gcc-4.6/cxx0x_status.html
!   10. https://gcc.gnu.org/PR43145
!   11. https://gcc.gnu.org/PR43680
!   12. https://gcc.gnu.org/PR33558
!   13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
!   14. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x
!   15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
!   16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
!   17. https://gcc.gnu.org/gcc-4.6/changes.html#fortran
!   18. https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
!   19. https://gcc.gnu.org/wiki/OOP
!   20. https://gcc.gnu.org/wiki/Coarray
!   21. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233
!   22. https://gcc.gnu.org/gcc-4.6/changes.html#go
!   23. https://gcc.gnu.org/gcc-4.6/changes.html#objective-c
!   24. https://gcc.gnu.org/gcc-4.6/changes.html#targets
!   25. https://gcc.gnu.org/gcc-4.6/changes.html#arm
!   26. https://gcc.gnu.org/gcc-4.6/changes.html#microblaze
!   27. https://gcc.gnu.org/gcc-4.6/changes.html#mn10300
!   28. https://gcc.gnu.org/gcc-4.6/changes.html#os
!   29. https://gcc.gnu.org/gcc-4.6/changes.html#android
!   30. https://gcc.gnu.org/gcc-4.6/changes.html#darwin
!   31. https://gcc.gnu.org/gcc-4.6/changes.html#solaris
!   32. https://gcc.gnu.org/gcc-4.6/changes.html#windows
!   33. https://gcc.gnu.org/gcc-4.6/changes.html#GCC4.6.1
!   34. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1
!   35. https://gcc.gnu.org/gcc-4.6/changes.html#GCC4.6.2
!   36. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2
!   37. https://gcc.gnu.org/gcc-4.6/changes.html#GCC4.6.3
!   38. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3
!   39. https://gcc.gnu.org/gcc-4.6/changes.html#GCC4.6.4
!   40. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4
!   41. https://gcc.gnu.org/onlinedocs/
!   42. mailto:gcc-help@gcc.gnu.org
!   43. mailto:gcc@gcc.gnu.org
!   44. https://gcc.gnu.org/lists.html
!   45. https://www.fsf.org/
!   46. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/index.html
                               GCC 4.5 Release Series
*************** New Languages and Language specific impr
*** 13959,13967 ****
         supported. This is currently only implemented for the SPU
         processor.
  
!   C++
  
!      * Improved [11]experimental support for the upcoming C++0x ISO C++
         standard, including support for raw strings, lambda expressions and
         explicit type conversion operators.
       * When printing the name of a class template specialization, G++ will
--- 15330,15338 ----
         supported. This is currently only implemented for the SPU
         processor.
  
!   [11]C++
  
!      * Improved [12]experimental support for the upcoming C++0x ISO C++
         standard, including support for raw strings, lambda expressions and
         explicit type conversion operators.
       * When printing the name of a class template specialization, G++ will
*************** New Languages and Language specific impr
*** 13989,14001 ****
       * In C++0x mode local and anonymous classes are now allowed as
         template arguments, and in declarations of variables and functions
         with linkage, so long as any such declaration that is used is also
!        defined ([12]DR 757).
       * Labels may now have attributes, as has been permitted for a while
         in C. This is only permitted when the label definition and the
         attribute specifier is followed by a semicolon—i.e., the label
         applies to an empty statement. The only useful attribute for a
         label is unused.
!      * G++ now implements [13]DR 176. Previously G++ did not support using
         the injected-class-name of a template base class as a type name,
         and lookup of the name found the declaration of the template in the
         enclosing scope. Now lookup of the name finds the
--- 15360,15372 ----
       * In C++0x mode local and anonymous classes are now allowed as
         template arguments, and in declarations of variables and functions
         with linkage, so long as any such declaration that is used is also
!        defined ([13]DR 757).
       * Labels may now have attributes, as has been permitted for a while
         in C. This is only permitted when the label definition and the
         attribute specifier is followed by a semicolon—i.e., the label
         applies to an empty statement. The only useful attribute for a
         label is unused.
!      * G++ now implements [14]DR 176. Previously G++ did not support using
         the injected-class-name of a template base class as a type name,
         and lookup of the name found the declaration of the template in the
         enclosing scope. Now lookup of the name finds the
*************** New Languages and Language specific impr
*** 14033,14039 ****
            + Existing facilities now exploit explicit operators and the
              newly implemented core C++0x features.
            + The header <cstdatomic> has been renamed to <atomic>.
!      * An experimental [14]profile mode has been added. This is an
         implementation of many C++ standard library constructs with an
         additional analysis layer that gives performance improvement advice
         based on recognition of suboptimal usage patterns. For example,
--- 15404,15410 ----
            + Existing facilities now exploit explicit operators and the
              newly implemented core C++0x features.
            + The header <cstdatomic> has been renamed to <atomic>.
!      * An experimental [15]profile mode has been added. This is an
         implementation of many C++ standard library constructs with an
         additional analysis layer that gives performance improvement advice
         based on recognition of suboptimal usage patterns. For example,
*************** vector-size: improvement = 3: call stack
*** 14055,14061 ****
         These constructs can be substituted for the normal libstdc++
         constructs on a piecemeal basis, or all existing components can be
         transformed via the -D_GLIBCXX_PROFILE macro.
!      * [15]Support for decimal floating-point arithmetic (aka ISO C++ TR
         24733) has been added. This support is in header file
         <decimal/decimal>, uses namespace std::decimal, and includes
         classes decimal32, decimal64, and decimal128.
--- 15426,15432 ----
         These constructs can be substituted for the normal libstdc++
         constructs on a piecemeal basis, or all existing components can be
         transformed via the -D_GLIBCXX_PROFILE macro.
!      * [16]Support for decimal floating-point arithmetic (aka ISO C++ TR
         24733) has been added. This support is in header file
         <decimal/decimal>, uses namespace std::decimal, and includes
         classes decimal32, decimal64, and decimal128.
*************** vector-size: improvement = 3: call stack
*** 14065,14084 ****
         components that simplify the internal representation and present a
         more intuitive view of components when used with
         appropriately-advanced versions of GDB. For more information,
!        please consult the more [16]detailed description.
       * The default behavior for comparing typeinfo names has changed, so
         in <typeinfo>, __GXX_MERGED_TYPEINFO_NAMES now defaults to zero.
       * The new -static-libstdc++ option directs g++ to link the C++
         library statically, even if the default would normally be to link
         it dynamically.
  
!   Fortran
  
       * The COMMON default padding has been changed – instead of adding the
         padding before a variable it is now added afterwards, which
         increases the compatibility with other vendors and helps to obtain
         the correct output in some cases. Cf. also the -falign-commons
!        option ([17]added in 4.4).
       * The -finit-real= option now also supports the value snan for
         signaling not-a-number; to be effective, one additionally needs to
         enable trapping (e.g. via -ffpe-trap=). Note: Compile-time
--- 15436,15455 ----
         components that simplify the internal representation and present a
         more intuitive view of components when used with
         appropriately-advanced versions of GDB. For more information,
!        please consult the more [17]detailed description.
       * The default behavior for comparing typeinfo names has changed, so
         in <typeinfo>, __GXX_MERGED_TYPEINFO_NAMES now defaults to zero.
       * The new -static-libstdc++ option directs g++ to link the C++
         library statically, even if the default would normally be to link
         it dynamically.
  
!   [18]Fortran
  
       * The COMMON default padding has been changed – instead of adding the
         padding before a variable it is now added afterwards, which
         increases the compatibility with other vendors and helps to obtain
         the correct output in some cases. Cf. also the -falign-commons
!        option ([19]added in 4.4).
       * The -finit-real= option now also supports the value snan for
         signaling not-a-number; to be effective, one additionally needs to
         enable trapping (e.g. via -ffpe-trap=). Note: Compile-time
*************** vector-size: improvement = 3: call stack
*** 14096,14102 ****
       * The run-time checking -fcheck=bounds now warns about invalid string
         lengths of character dummy arguments. Additionally, more
         compile-time checks have been added.
!      * The new option [18]-fno-protect-parens has been added; if set, the
         compiler may reorder REAL and COMPLEX expressions without regard to
         parentheses.
       * GNU Fortran no longer links against libgfortranbegin. As before,
--- 15467,15473 ----
       * The run-time checking -fcheck=bounds now warns about invalid string
         lengths of character dummy arguments. Additionally, more
         compile-time checks have been added.
!      * The new option [20]-fno-protect-parens has been added; if set, the
         compiler may reorder REAL and COMPLEX expressions without regard to
         parentheses.
       * GNU Fortran no longer links against libgfortranbegin. As before,
*************** vector-size: improvement = 3: call stack
*** 14104,14110 ****
         which is invoked by the main function. However, main is now
         generated and put in the same object file as MAIN__. For the time
         being, libgfortranbegin still exists for backward compatibility.
!        For details see the new [19]Mixed-Language Programming chapter in
         the manual.
       * The I/O library was restructured for performance and cleaner code.
       * Array assignments and WHERE are now run in parallel when OpenMP's
--- 15475,15481 ----
         which is invoked by the main function. However, main is now
         generated and put in the same object file as MAIN__. For the time
         being, libgfortranbegin still exists for backward compatibility.
!        For details see the new [21]Mixed-Language Programming chapter in
         the manual.
       * The I/O library was restructured for performance and cleaner code.
       * Array assignments and WHERE are now run in parallel when OpenMP's
*************** vector-size: improvement = 3: call stack
*** 14116,14122 ****
       * More Fortran 2003 and Fortran 2008 mathematical functions can now
         be used as initialization expressions.
       * Some extended attributes such as STDCALL are now supported via the
!        [20]GCC$ compiler directive.
       * For Fortran 77 compatibility: If -fno-sign-zero is used, the SIGN
         intrinsic behaves now as if zero were always positive.
       * For legacy compatibiliy: On Cygwin and MinGW, the special files
--- 15487,15493 ----
       * More Fortran 2003 and Fortran 2008 mathematical functions can now
         be used as initialization expressions.
       * Some extended attributes such as STDCALL are now supported via the
!        [22]GCC$ compiler directive.
       * For Fortran 77 compatibility: If -fno-sign-zero is used, the SIGN
         intrinsic behaves now as if zero were always positive.
       * For legacy compatibiliy: On Cygwin and MinGW, the special files
*************** vector-size: improvement = 3: call stack
*** 14142,14148 ****
              procedure pointer with PASS attribute now have to use CLASS in
              line with the Fortran 2003 standard; the workaround to use
              TYPE is no longer supported.
!           + [21]Experimental, incomplete support for polymorphism,
              including CLASS, SELECT TYPE and dynamic dispatch of
              type-bound procedure calls. Some features do not work yet such
              as unlimited polymorphism (CLASS(*)).
--- 15513,15519 ----
              procedure pointer with PASS attribute now have to use CLASS in
              line with the Fortran 2003 standard; the workaround to use
              TYPE is no longer supported.
!           + [23]Experimental, incomplete support for polymorphism,
              including CLASS, SELECT TYPE and dynamic dispatch of
              type-bound procedure calls. Some features do not work yet such
              as unlimited polymorphism (CLASS(*)).
*************** vector-size: improvement = 3: call stack
*** 14159,14165 ****
              ATAN(Y,X) is now an alias for ATAN2(Y,X).
            + The BLOCK construct has been implemented.
  
! New Targets and Target Specific Improvements
  
    AIX
  
--- 15530,15536 ----
              ATAN(Y,X) is now an alias for ATAN2(Y,X).
            + The BLOCK construct has been implemented.
  
! [24]New Targets and Target Specific Improvements
  
    AIX
  
*************** New Targets and Target Specific Improvem
*** 14190,14196 ****
            + ATmega16U2
            + ATmega32U2
  
!   IA-32/x86-64
  
       * GCC now will set the default for -march= based on the configure
         target.
--- 15561,15567 ----
            + ATmega16U2
            + ATmega32U2
  
!   [25]IA-32/x86-64
  
       * GCC now will set the default for -march= based on the configure
         target.
*************** New Targets and Target Specific Improvem
*** 14224,14230 ****
       * GCC now supports thread-local storage (TLS) on M68K and ColdFire
         processors.
  
!   MeP
  
     Support has been added for the Toshiba Media embedded Processor (MeP,
     or mep-elf) embedded target.
--- 15595,15601 ----
       * GCC now supports thread-local storage (TLS) on M68K and ColdFire
         processors.
  
!   [26]MeP
  
     Support has been added for the Toshiba Media embedded Processor (MeP,
     or mep-elf) embedded target.
*************** New Targets and Target Specific Improvem
*** 14262,14268 ****
         use_debug_exception_return. See the documentation for more details
         about these attributes.
  
!   RS/6000 (POWER/PowerPC)
  
       * GCC now supports the Power ISA 2.06, which includes the VSX
         instructions that add vector 64-bit floating point support, new
--- 15633,15639 ----
         use_debug_exception_return. See the documentation for more details
         about these attributes.
  
!   [27]RS/6000 (POWER/PowerPC)
  
       * GCC now supports the Power ISA 2.06, which includes the VSX
         instructions that add vector 64-bit floating point support, new
*************** New Targets and Target Specific Improvem
*** 14287,14299 ****
         adhere to the ABI for 128-bit vectors with 64-bit integer base
         types (PR 48857). This is also fixed in the GCC 4.6.1 release.
  
!   RX
  
     Support has been added for the Renesas RX Processor (rx-elf) target.
  
! Operating Systems
  
!   Windows (Cygwin and MinGW)
  
       * GCC now installs all the major language runtime libraries as DLLs
         when configured with the --enable-shared option.
--- 15658,15670 ----
         adhere to the ABI for 128-bit vectors with 64-bit integer base
         types (PR 48857). This is also fixed in the GCC 4.6.1 release.
  
!   [28]RX
  
     Support has been added for the Renesas RX Processor (rx-elf) target.
  
! [29]Operating Systems
  
!   [30]Windows (Cygwin and MinGW)
  
       * GCC now installs all the major language runtime libraries as DLLs
         when configured with the --enable-shared option.
*************** Other significant improvements
*** 14342,14357 ****
         infodir info documentation [DATAROOTDIR/info]
         mandir  man documentation [DATAROOTDIR/man]
  
! GCC 4.5.1
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
    All languages
  
!      * GCC's new link-time optimizer ([23]-flto) now also works on a few
         non-ELF targets:
            + Cygwin (*-cygwin*)
            + MinGW (*-mingw*)
--- 15713,15728 ----
         infodir info documentation [DATAROOTDIR/info]
         mandir  man documentation [DATAROOTDIR/man]
  
! [31]GCC 4.5.1
  
!    This is the [32]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
    All languages
  
!      * GCC's new link-time optimizer ([33]-flto) now also works on a few
         non-ELF targets:
            + Cygwin (*-cygwin*)
            + MinGW (*-mingw*)
*************** GCC 4.5.1
*** 14359,14374 ****
         LTO is not enabled by default for these targets. To enable LTO, you
         should configure with the --enable-lto option.
  
! GCC 4.5.2
  
!    This is the [24]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.5.3
  
!    This is the [25]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 15730,15745 ----
         LTO is not enabled by default for these targets. To enable LTO, you
         should configure with the --enable-lto option.
  
! [34]GCC 4.5.2
  
!    This is the [35]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [36]GCC 4.5.3
  
!    This is the [37]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.5.3
*** 14383,14409 ****
     vec_vsx_ld and vec_vsx_st which always generates the VSX memory
     instructions.
  
! GCC 4.5.4
  
!    This is the [26]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [27]GCC manuals. If that fails, the
!     [28]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [29]gcc@gcc.gnu.org. All of [30]our lists have public
      archives.
  
!    Copyright (C) [31]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [32]maintained by the GCC team. Last modified
!    2023-07-30.
  
  References
  
--- 15754,15780 ----
     vec_vsx_ld and vec_vsx_st which always generates the VSX memory
     instructions.
  
! [38]GCC 4.5.4
  
!    This is the [39]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.5.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [40]GCC manuals. If that fails, the
!     [41]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [42]gcc@gcc.gnu.org. All of [43]our lists have public
      archives.
  
!    Copyright (C) [44]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [45]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 14417,14444 ****
     8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802
     9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800
    10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
!   11. https://gcc.gnu.org/gcc-4.5/cxx0x_status.html
!   12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
!   13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176
!   14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
!   15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733
!   16. https://sourceware.org/gdb/wiki/STLSupport
!   17. https://gcc.gnu.org/gcc-4.4/changes.html
!   18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
!   19. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
!   20. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
!   21. https://gcc.gnu.org/wiki/OOP
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
!   23. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
!   24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
!   25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
!   27. https://gcc.gnu.org/onlinedocs/
!   28. mailto:gcc-help@gcc.gnu.org
!   29. mailto:gcc@gcc.gnu.org
!   30. https://gcc.gnu.org/lists.html
!   31. https://www.fsf.org/
!   32. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.4/index.html
                               GCC 4.4 Release Series
--- 15788,15828 ----
     8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802
     9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800
    10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
!   11. https://gcc.gnu.org/gcc-4.5/changes.html#cplusplus
!   12. https://gcc.gnu.org/gcc-4.5/cxx0x_status.html
!   13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
!   14. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176
!   15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
!   16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733
!   17. https://sourceware.org/gdb/wiki/STLSupport
!   18. https://gcc.gnu.org/gcc-4.5/changes.html#Fortran
!   19. https://gcc.gnu.org/gcc-4.4/changes.html
!   20. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
!   21. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
!   22. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
!   23. https://gcc.gnu.org/wiki/OOP
!   24. https://gcc.gnu.org/gcc-4.5/changes.html#targets
!   25. https://gcc.gnu.org/gcc-4.5/changes.html#x86
!   26. https://gcc.gnu.org/gcc-4.5/changes.html#mep
!   27. https://gcc.gnu.org/gcc-4.5/changes.html#rs6000
!   28. https://gcc.gnu.org/gcc-4.5/changes.html#rx
!   29. https://gcc.gnu.org/gcc-4.5/changes.html#os
!   30. https://gcc.gnu.org/gcc-4.5/changes.html#windows
!   31. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.1
!   32. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
!   33. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
!   34. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.2
!   35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
!   36. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.3
!   37. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
!   38. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.4
!   39. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
!   40. https://gcc.gnu.org/onlinedocs/
!   41. mailto:gcc-help@gcc.gnu.org
!   42. mailto:gcc@gcc.gnu.org
!   43. https://gcc.gnu.org/lists.html
!   44. https://www.fsf.org/
!   45. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.4/index.html
                               GCC 4.4 Release Series
*************** New Languages and Language specific impr
*** 14885,14891 ****
       * The Ada runtime now supports multilibs on many platforms including
         x86_64, SPARC and PowerPC. Their build is enabled by default.
  
! New Targets and Target Specific Improvements
  
    ARM
  
--- 16269,16275 ----
       * The Ada runtime now supports multilibs on many platforms including
         x86_64, SPARC and PowerPC. Their build is enabled by default.
  
! [11]New Targets and Target Specific Improvements
  
    ARM
  
*************** New Targets and Target Specific Improvem
*** 15041,15047 ****
         canonical -march= and -mtune= names for these processors are
         loongson2e and loongson2f.
  
!   picochip
  
     Picochip is a 16-bit processor. A typical picoChip contains over 250
     small cores, each with small amounts of memory. There are three
--- 16425,16431 ----
         canonical -march= and -mtune= names for these processors are
         loongson2e and loongson2f.
  
!   [12]picochip
  
     Picochip is a 16-bit processor. A typical picoChip contains over 250
     small cores, each with small amounts of memory. There are three
*************** Documentation improvements
*** 15079,15147 ****
  
  Other significant improvements
  
! GCC 4.4.1
  
!    This is the [11]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.2
  
!    This is the [12]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.3
  
!    This is the [13]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.4
  
!    This is the [14]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.5
  
!    This is the [15]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.6
  
!    This is the [16]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.4.7
  
!    This is the [17]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.7 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [18]GCC manuals. If that fails, the
!     [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [20]gcc@gcc.gnu.org. All of [21]our lists have public
      archives.
  
!    Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [23]maintained by the GCC team. Last modified
!    2022-11-01.
  
  References
  
--- 16463,16531 ----
  
  Other significant improvements
  
! [13]GCC 4.4.1
  
!    This is the [14]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [15]GCC 4.4.2
  
!    This is the [16]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [17]GCC 4.4.3
  
!    This is the [18]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [19]GCC 4.4.4
  
!    This is the [20]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [21]GCC 4.4.5
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [23]GCC 4.4.6
  
!    This is the [24]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [25]GCC 4.4.7
  
!    This is the [26]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.4.7 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [27]GCC manuals. If that fails, the
!     [28]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [29]gcc@gcc.gnu.org. All of [30]our lists have public
      archives.
  
!    Copyright (C) [31]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [32]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 15155,15173 ****
     8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125
     9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
    10. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34
!   11. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1
!   12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2
!   13. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3
!   14. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
!   15. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5
!   16. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6
!   17. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7
!   18. https://gcc.gnu.org/onlinedocs/
!   19. mailto:gcc-help@gcc.gnu.org
!   20. mailto:gcc@gcc.gnu.org
!   21. https://gcc.gnu.org/lists.html
!   22. https://www.fsf.org/
!   23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/index.html
                               GCC 4.3 Release Series
--- 16539,16566 ----
     8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125
     9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
    10. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34
!   11. https://gcc.gnu.org/gcc-4.4/changes.html#targets
!   12. https://gcc.gnu.org/gcc-4.4/changes.html#picochip
!   13. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.1
!   14. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1
!   15. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.2
!   16. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2
!   17. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.3
!   18. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3
!   19. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.4
!   20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
!   21. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.5
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5
!   23. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.6
!   24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6
!   25. https://gcc.gnu.org/gcc-4.4/changes.html#GCC4.4.7
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7
!   27. https://gcc.gnu.org/onlinedocs/
!   28. mailto:gcc-help@gcc.gnu.org
!   29. mailto:gcc@gcc.gnu.org
!   30. https://gcc.gnu.org/lists.html
!   31. https://www.fsf.org/
!   32. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/index.html
                               GCC 4.3 Release Series
*************** New Languages and Language specific impr
*** 15616,15622 ****
         packagers no longer have to update libgcj when a time zone change
         is published.
  
! New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
--- 17009,17015 ----
         packagers no longer have to update libgcj when a time zone change
         is published.
  
! [18]New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
*************** New Targets and Target Specific Improvem
*** 15669,15675 ****
       * Compiler and Library support for Thumb-2 and the ARMv7 architecture
         has been added.
  
!   CRIS
  
      New features
  
--- 17062,17068 ----
       * Compiler and Library support for Thumb-2 and the ARMv7 architecture
         has been added.
  
!   [19]CRIS
  
      New features
  
*************** New Targets and Target Specific Improvem
*** 15693,15699 ****
       * __builtin_bswap32 is now implemented using the swapwb instruction,
         when available.
  
!   m68k and ColdFire
  
      New features
  
--- 17086,17092 ----
       * __builtin_bswap32 is now implemented using the swapwb instruction,
         when available.
  
!   [20]m68k and ColdFire
  
      New features
  
*************** Documentation improvements
*** 15938,15944 ****
  
       * Existing libstdc++ documentation has been edited and restructured
         into a single DocBook XML manual. The results can be viewed online
!        [18]here.
  
  Other significant improvements
  
--- 17331,17337 ----
  
       * Existing libstdc++ documentation has been edited and restructured
         into a single DocBook XML manual. The results can be viewed online
!        [21]here.
  
  Other significant improvements
  
*************** Other significant improvements
*** 15968,15976 ****
         distributor-specific string in manuals and --version output and to
         specify the URL for reporting bugs in their versions of GCC.
  
! GCC 4.3.1
  
!    This is the [19]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 17361,17369 ----
         distributor-specific string in manuals and --version output and to
         specify the URL for reporting bugs in their versions of GCC.
  
! [22]GCC 4.3.1
  
!    This is the [23]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** Target Specific Changes
*** 15994,16048 ****
         by default for 32-bit x86 targets by configuring GCC with the
         --enable-cld configure option.
  
! GCC 4.3.2
  
!    This is the [20]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.3.3
  
!    This is the [21]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.3.4
  
!    This is the [22]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.3.5
  
!    This is the [23]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.3.6
  
!    This is the [24]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [25]GCC manuals. If that fails, the
!     [26]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [27]gcc@gcc.gnu.org. All of [28]our lists have public
      archives.
  
!    Copyright (C) [29]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [30]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 17387,17441 ----
         by default for 32-bit x86 targets by configuring GCC with the
         --enable-cld configure option.
  
! [24]GCC 4.3.2
  
!    This is the [25]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [26]GCC 4.3.3
  
!    This is the [27]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [28]GCC 4.3.4
  
!    This is the [29]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [30]GCC 4.3.5
  
!    This is the [31]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [32]GCC 4.3.6
  
!    This is the [33]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.3.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [34]GCC manuals. If that fails, the
!     [35]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [36]gcc@gcc.gnu.org. All of [37]our lists have public
      archives.
  
!    Copyright (C) [38]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [39]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 16063,16081 ****
    15. https://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html
    16. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
    17. https://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html
!   18. https://gcc.gnu.org/onlinedocs/libstdc++/
!   19. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1
!   20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2
!   21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
!   22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
!   23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
!   24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6
!   25. https://gcc.gnu.org/onlinedocs/
!   26. mailto:gcc-help@gcc.gnu.org
!   27. mailto:gcc@gcc.gnu.org
!   28. https://gcc.gnu.org/lists.html
!   29. https://www.fsf.org/
!   30. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/index.html
                               GCC 4.2 Release Series
--- 17456,17483 ----
    15. https://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html
    16. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
    17. https://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html
!   18. https://gcc.gnu.org/gcc-4.3/changes.html#targets
!   19. https://gcc.gnu.org/gcc-4.3/changes.html#cris
!   20. https://gcc.gnu.org/gcc-4.3/changes.html#m68k
!   21. https://gcc.gnu.org/onlinedocs/libstdc++/
!   22. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.1
!   23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1
!   24. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.2
!   25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2
!   26. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.3
!   27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
!   28. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.4
!   29. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
!   30. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.5
!   31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
!   32. https://gcc.gnu.org/gcc-4.3/changes.html#GCC4.3.6
!   33. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6
!   34. https://gcc.gnu.org/onlinedocs/
!   35. mailto:gcc-help@gcc.gnu.org
!   36. mailto:gcc@gcc.gnu.org
!   37. https://gcc.gnu.org/lists.html
!   38. https://www.fsf.org/
!   39. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/index.html
                               GCC 4.2 Release Series
*************** New Languages and Language specific impr
*** 16358,16364 ****
         script that is based on InfoZIP and provides the same functionality
         as fastjar.
  
! New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
--- 17760,17766 ----
         script that is based on InfoZIP and provides the same functionality
         as fastjar.
  
! [6]New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
*************** New Targets and Target Specific Improvem
*** 16407,16413 ****
       * Added Java language support (libffi and libjava) for 32-bit HP-UX
         11 target.
  
! Obsolete Systems
  
  Documentation improvements
  
--- 17809,17815 ----
       * Added Java language support (libffi and libjava) for 32-bit HP-UX
         11 target.
  
! [7]Obsolete Systems
  
  Documentation improvements
  
*************** Other significant improvements
*** 16457,16473 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [6]GCC manuals. If that fails, the
!     [7]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [8]gcc@gcc.gnu.org. All of [9]our lists have public archives.
  
!    Copyright (C) [10]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [11]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 17859,17876 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [8]GCC manuals. If that fails, the
!     [9]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [10]gcc@gcc.gnu.org. All of [11]our lists have public
!     archives.
  
!    Copyright (C) [12]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [13]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 16476,16487 ****
     3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
     4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
     5. https://gcc.gnu.org/wiki/Statically_linking_libgcj
!    6. https://gcc.gnu.org/onlinedocs/
!    7. mailto:gcc-help@gcc.gnu.org
!    8. mailto:gcc@gcc.gnu.org
!    9. https://gcc.gnu.org/lists.html
!   10. https://www.fsf.org/
!   11. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/index.html
                               GCC 4.1 Release Series
--- 17879,17892 ----
     3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
     4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
     5. https://gcc.gnu.org/wiki/Statically_linking_libgcj
!    6. https://gcc.gnu.org/gcc-4.2/changes.html#targets
!    7. https://gcc.gnu.org/gcc-4.2/changes.html#obsolete_systems
!    8. https://gcc.gnu.org/onlinedocs/
!    9. mailto:gcc-help@gcc.gnu.org
!   10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/lists.html
!   12. https://www.fsf.org/
!   13. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/index.html
                               GCC 4.1 Release Series
*************** New Languages and Language specific impr
*** 16693,16699 ****
         infrastructure of GCC. This should make doing cross builds of Ada a
         bit easier.
  
!   C++
  
       * ARM-style name-injection of friend declarations is no longer the
         default. For example:
--- 18098,18104 ----
         infrastructure of GCC. This should make doing cross builds of Ada a
         bit easier.
  
!   [2]C++
  
       * ARM-style name-injection of friend declarations is no longer the
         default. For example:
*************** New Languages and Language specific impr
*** 16948,16954 ****
                   most of the work is currently being done around gcj/gij
                   we want this framework to be as VM neutral as possible.
                   Early design is described in:
!                  [2]https://gcc.gnu.org/ml/java/2005-05/msg00260.html
                 o QT4 AWT peers, enable by giving configure
                   --enable-qt-peer. Included, but not ready for production
                   yet. They are explicitly disabled and not supported. But
--- 18353,18359 ----
                   most of the work is currently being done around gcj/gij
                   we want this framework to be as VM neutral as possible.
                   Early design is described in:
!                  [3]https://gcc.gnu.org/ml/java/2005-05/msg00260.html
                 o QT4 AWT peers, enable by giving configure
                   --enable-qt-peer. Included, but not ready for production
                   yet. They are explicitly disabled and not supported. But
*************** New Languages and Language specific impr
*** 16957,16965 ****
                   explicitly enable them to try them out (and they will
                   most likely contain bugs).
                 o Documentation fixes all over the place. See
!                  [3]https://developer.classpath.org/doc/
  
! New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
--- 18362,18370 ----
                   explicitly enable them to try them out (and they will
                   most likely contain bugs).
                 o Documentation fixes all over the place. See
!                  [4]https://developer.classpath.org/doc/
  
! [5]New Targets and Target Specific Improvements
  
    IA-32/x86-64
  
*************** New Targets and Target Specific Improvem
*** 17026,17032 ****
              instructions implicitly truncate the shift count to six bits.
       * Back-end support for the following generic features has been
         implemented:
!           + The full set of [4]built-in functions for atomic memory
              access.
            + The -fstack-protector feature.
            + The optimization pass avoiding unnecessary stores of incoming
--- 18431,18437 ----
              instructions implicitly truncate the shift count to six bits.
       * Back-end support for the following generic features has been
         implemented:
!           + The full set of [6]built-in functions for atomic memory
              access.
            + The -fstack-protector feature.
            + The optimization pass avoiding unnecessary stores of incoming
*************** New Targets and Target Specific Improvem
*** 17044,17050 ****
  
       * Support has been added for this new architecture.
  
! Obsolete Systems
  
  Documentation improvements
  
--- 18449,18455 ----
  
       * Support has been added for this new architecture.
  
! [7]Obsolete Systems
  
  Documentation improvements
  
*************** Other significant improvements
*** 17060,17068 ****
         have far smaller overhead. This means that programs built using
         safe builtins should not experience any measurable slowdown.
  
! GCC 4.1.2
  
!    This is the [5]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.1.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 18465,18473 ----
         have far smaller overhead. This means that programs built using
         safe builtins should not experience any measurable slowdown.
  
! [8]GCC 4.1.2
  
!    This is the [9]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.1.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.1.2
*** 17088,17118 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [6]GCC manuals. If that fails, the
!     [7]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [8]gcc@gcc.gnu.org. All of [9]our lists have public archives.
  
!    Copyright (C) [10]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [11]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
     1. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
!    2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html
!    3. https://developer.classpath.org/doc/
!    4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
!    5. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2
!    6. https://gcc.gnu.org/onlinedocs/
!    7. mailto:gcc-help@gcc.gnu.org
!    8. mailto:gcc@gcc.gnu.org
!    9. https://gcc.gnu.org/lists.html
!   10. https://www.fsf.org/
!   11. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/index.html
                               GCC 4.0 Release Series
--- 18493,18528 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [10]GCC manuals. If that fails, the
!     [11]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [12]gcc@gcc.gnu.org. All of [13]our lists have public
!     archives.
  
!    Copyright (C) [14]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [15]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
     1. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
!    2. https://gcc.gnu.org/gcc-4.1/changes.html#cplusplus
!    3. https://gcc.gnu.org/ml/java/2005-05/msg00260.html
!    4. https://developer.classpath.org/doc/
!    5. https://gcc.gnu.org/gcc-4.1/changes.html#targets
!    6. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
!    7. https://gcc.gnu.org/gcc-4.1/changes.html#obsolete_systems
!    8. https://gcc.gnu.org/gcc-4.1/changes.html#GCC4.1.2
!    9. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2
!   10. https://gcc.gnu.org/onlinedocs/
!   11. mailto:gcc-help@gcc.gnu.org
!   12. mailto:gcc@gcc.gnu.org
!   13. https://gcc.gnu.org/lists.html
!   14. https://www.fsf.org/
!   15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/index.html
                               GCC 4.0 Release Series
*************** class N::A {
*** 17472,17478 ****
         since the Ada front end is not currently activated by default. See
         the [10]Installing GCC for details.
  
! New Targets and Target Specific Improvements
  
    H8/300
  
--- 18882,18888 ----
         since the Ada front end is not currently activated by default. See
         the [10]Installing GCC for details.
  
! [11]New Targets and Target Specific Improvements
  
    H8/300
  
*************** New Targets and Target Specific Improvem
*** 17600,17606 ****
         (the ABI previously supported was that of some Unix systems, which
         NetWare never tried to support).
  
! Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     4.0. Unless there is activity to revive them, the next release of GCC
--- 19010,19016 ----
         (the ABI previously supported was that of some Unix systems, which
         NetWare never tried to support).
  
! [12]Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     4.0. Unless there is activity to revive them, the next release of GCC
*************** Other significant improvements
*** 17645,17676 ****
         solving problems many projects such as python were forced to use
         RTLD_LOCAL for (with its resulting issues for C++ correctness). You
         can find more information about using these options at
!        [11]https://gcc.gnu.org/wiki/Visibility.
       __________________________________________________________________
  
! GCC 4.0.1
  
!    This is the [12]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! GCC 4.0.2
  
!    This is the [13]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
     Unfortunately, due to a release engineering failure, this release has a
     regression on Solaris that will affect some C++ programs. We suggest
!    that Solaris users apply a [14]patch that corrects the problem. Users
     who do not wish to apply the patch should explicitly link C++ programs
     with the -pthreads option, even if they do not use threads. This
     problem has been corrected in the current 4.0 branch sources and will
     not be present in GCC 4.0.3.
  
! GCC 4.0.3
  
     Starting with this release, the function getcontext is recognized by
     the compiler as having the same semantics as the setjmp function. In
--- 19055,19086 ----
         solving problems many projects such as python were forced to use
         RTLD_LOCAL for (with its resulting issues for C++ correctness). You
         can find more information about using these options at
!        [13]https://gcc.gnu.org/wiki/Visibility.
       __________________________________________________________________
  
! [14]GCC 4.0.1
  
!    This is the [15]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
! [16]GCC 4.0.2
  
!    This is the [17]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
     Unfortunately, due to a release engineering failure, this release has a
     regression on Solaris that will affect some C++ programs. We suggest
!    that Solaris users apply a [18]patch that corrects the problem. Users
     who do not wish to apply the patch should explicitly link C++ programs
     with the -pthreads option, even if they do not use threads. This
     problem has been corrected in the current 4.0 branch sources and will
     not be present in GCC 4.0.3.
  
! [19]GCC 4.0.3
  
     Starting with this release, the function getcontext is recognized by
     the compiler as having the same semantics as the setjmp function. In
*************** GCC 4.0.3
*** 17678,17686 ****
     calling such a function and will emit a warning about the variables
     that may be clobbered after the second return from the function.
  
! GCC 4.0.4
  
!    This is the [15]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
--- 19088,19096 ----
     calling such a function and will emit a warning about the variables
     that may be clobbered after the second return from the function.
  
! [20]GCC 4.0.4
  
!    This is the [21]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.0.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
*************** GCC 4.0.4
*** 17691,17708 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [16]GCC manuals. If that fails, the
!     [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [18]gcc@gcc.gnu.org. All of [19]our lists have public
      archives.
  
!    Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [21]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 19101,19118 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [22]GCC manuals. If that fails, the
!     [23]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [24]gcc@gcc.gnu.org. All of [25]our lists have public
      archives.
  
!    Copyright (C) [26]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [27]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 17716,17732 ****
     8. https://itanium-cxx-abi.github.io/cxx-abi/
     9. https://gcc.gnu.org/fortran/
    10. https://gcc.gnu.org/install/
!   11. https://gcc.gnu.org/wiki/Visibility
!   12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
!   13. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2
!   14. https://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html
!   15. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4
!   16. https://gcc.gnu.org/onlinedocs/
!   17. mailto:gcc-help@gcc.gnu.org
!   18. mailto:gcc@gcc.gnu.org
!   19. https://gcc.gnu.org/lists.html
!   20. https://www.fsf.org/
!   21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/index.html
                               GCC 3.4 Release Series
--- 19126,19148 ----
     8. https://itanium-cxx-abi.github.io/cxx-abi/
     9. https://gcc.gnu.org/fortran/
    10. https://gcc.gnu.org/install/
!   11. https://gcc.gnu.org/gcc-4.0/changes.html#targets
!   12. https://gcc.gnu.org/gcc-4.0/changes.html#obsolete_systems
!   13. https://gcc.gnu.org/wiki/Visibility
!   14. https://gcc.gnu.org/gcc-4.0/changes.html#GCC4.0.1
!   15. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
!   16. https://gcc.gnu.org/gcc-4.0/changes.html#GCC4.0.2
!   17. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2
!   18. https://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html
!   19. https://gcc.gnu.org/gcc-4.0/changes.html#GCC4.0.3
!   20. https://gcc.gnu.org/gcc-4.0/changes.html#GCC4.0.4
!   21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4
!   22. https://gcc.gnu.org/onlinedocs/
!   23. mailto:gcc-help@gcc.gnu.org
!   24. mailto:gcc@gcc.gnu.org
!   25. https://gcc.gnu.org/lists.html
!   26. https://www.fsf.org/
!   27. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/index.html
                               GCC 3.4 Release Series
*************** New Languages and Language specific impr
*** 18059,18065 ****
         and may be overridden with the -finput-charset command line option.
         In the future we will add support for inline encoding markers.
  
!   C++
  
       * G++ is now much closer to full conformance to the ISO/ANSI C++
         standard. This means, among other things, that a lot of invalid
--- 19475,19481 ----
         and may be overridden with the -finput-charset command line option.
         In the future we will add support for inline encoding markers.
  
!   [11]C++
  
       * G++ is now much closer to full conformance to the ISO/ANSI C++
         standard. This means, among other things, that a lot of invalid
*************** New Languages and Language specific impr
*** 18237,18243 ****
         declaration must be accessible at the point of that declaration.
         Previous versions of G++ used to be less strict about this and
         allowed friend declarations for private class members, for example.
!        See the ISO C++ Standard Committee's [11]defect report #209 for
         details.
       * Declaration of member functions of class templates as friends are
         supported. For example,
--- 19653,19659 ----
         declaration must be accessible at the point of that declaration.
         Previous versions of G++ used to be less strict about this and
         allowed friend declarations for private class members, for example.
!        See the ISO C++ Standard Committee's [12]defect report #209 for
         details.
       * Declaration of member functions of class templates as friends are
         supported. For example,
*************** New Languages and Language specific impr
*** 18313,18319 ****
            foo(a1);        // OK, a1 is a lvalue
          }
         This might be surprising at first sight, especially since most
!        popular compilers do not correctly implement this rule ([12]further
         details).
       * When forming a pointer to member or a pointer to member function,
         access checks for class visibility (public, protected, private) are
--- 19729,19735 ----
            foo(a1);        // OK, a1 is a lvalue
          }
         This might be surprising at first sight, especially since most
!        popular compilers do not correctly implement this rule ([13]further
         details).
       * When forming a pointer to member or a pointer to member function,
         access checks for class visibility (public, protected, private) are
*************** New Languages and Language specific impr
*** 18383,18389 ****
              synchronization (@synchronized) support. These are accessible
              via the -fobjc-exceptions switch; as of this writing, they may
              only be used in conjunction with -fnext-runtime on Mac OS X
!             10.3 and later. See [13]Options Controlling Objective-C
              Dialect for more information.
            + An overhaul of @encode logic. The C99 _Bool and C++ bool type
              may now be encoded as 'B'. In addition, the back-end/codegen
--- 19799,19805 ----
              synchronization (@synchronized) support. These are accessible
              via the -fobjc-exceptions switch; as of this writing, they may
              only be used in conjunction with -fnext-runtime on Mac OS X
!             10.3 and later. See [14]Options Controlling Objective-C
              Dialect for more information.
            + An overhaul of @encode logic. The C99 _Bool and C++ bool type
              may now be encoded as 'B'. In addition, the back-end/codegen
*************** New Languages and Language specific impr
*** 18393,18404 ****
              properly, and that correct diagnostics are issued.
            + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
              (-freplace-objc-classes) debugging modes, currently available
!             on Mac OS X 10.3 and later. See [14]Options Controlling
              Objective-C Dialect for more information.
            + Access to optimized runtime entry points (-fno-nil-receivers )
              on the assumption that message receivers are never nil. This
              is currently available on Mac OS X 10.3 and later. See
!             [15]Options Controlling Objective-C Dialect for more
              information.
  
    Java
--- 19809,19820 ----
              properly, and that correct diagnostics are issued.
            + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
              (-freplace-objc-classes) debugging modes, currently available
!             on Mac OS X 10.3 and later. See [15]Options Controlling
              Objective-C Dialect for more information.
            + Access to optimized runtime entry points (-fno-nil-receivers )
              on the assumption that message receivers are never nil. This
              is currently available on Mac OS X 10.3 and later. See
!             [16]Options Controlling Objective-C Dialect for more
              information.
  
    Java
*************** New Languages and Language specific impr
*** 18410,18419 ****
         to gcj.
       * libgcj has a new gcjlib URL type; this lets URLClassLoader load
         code from shared libraries.
!      * libgcj has been much more completely merged with [16]GNU Classpath.
       * Class loading is now much more correct; in particular the caller's
         class loader is now used when that is required.
!      * [17]Eclipse 2.x will run out of the box using gij.
       * Parts of java.nio have been implemented. Direct and indirect
         buffers work, as do fundamental file and socket operations.
       * java.awt has been improved, though it is still not ready for
--- 19826,19835 ----
         to gcj.
       * libgcj has a new gcjlib URL type; this lets URLClassLoader load
         code from shared libraries.
!      * libgcj has been much more completely merged with [17]GNU Classpath.
       * Class loading is now much more correct; in particular the caller's
         class loader is now used when that is required.
!      * [18]Eclipse 2.x will run out of the box using gij.
       * Parts of java.nio have been implemented. Direct and indirect
         buffers work, as do fundamental file and socket operations.
       * java.awt has been improved, though it is still not ready for
*************** New Languages and Language specific impr
*** 18426,18438 ****
  
    Fortran
  
!      * Fortran improvements are listed in the [18]Fortran documentation.
  
  New Targets and Target Specific Improvements
  
    Alpha
  
!      * Several [19]built-in functions have been added such as
         __builtin_alpha_zap to allow utilizing the more obscure
         instructions of the CPU.
       * Parameter passing of complex arguments has changed to match the
--- 19842,19854 ----
  
    Fortran
  
!      * Fortran improvements are listed in the [19]Fortran documentation.
  
  New Targets and Target Specific Improvements
  
    Alpha
  
!      * Several [20]built-in functions have been added such as
         __builtin_alpha_zap to allow utilizing the more obscure
         instructions of the CPU.
       * Parameter passing of complex arguments has changed to match the
*************** New Targets and Target Specific Improvem
*** 18453,18460 ****
       * A new ARM target has been added: arm-wince-pe. This is similar to
         the arm-pe target, but it defaults to using the APCS32 ABI.
       * The existing ARM pipeline description has been converted to the use
!        the [20]DFA processor pipeline model. There is not much change in
!        code performance, but the description is now [21]easier to
         understand.
       * Support for the Cirrus EP9312 Maverick floating point co-processor
         added. Enabled at run time with the -mcpu=ep9312 command line
--- 19869,19876 ----
       * A new ARM target has been added: arm-wince-pe. This is similar to
         the arm-pe target, but it defaults to using the APCS32 ABI.
       * The existing ARM pipeline description has been converted to the use
!        the [21]DFA processor pipeline model. There is not much change in
!        code performance, but the description is now [22]easier to
         understand.
       * Support for the Cirrus EP9312 Maverick floating point co-processor
         added. Enabled at run time with the -mcpu=ep9312 command line
*************** New Targets and Target Specific Improvem
*** 18500,18506 ****
         generation of code tuned for Itanium 2 (option -mtune=itanium2) is
         enabled by default now. To generate code tuned for Itanium 1 the
         option -mtune=itanium1 should be used.
!      * [22]DFA processor pipeline descriptions for the IA-64 processors
         have been added. This resulted in about 3% improvement on the
         SPECInt2000 benchmark for Itanium 2.
       * Instruction bundling for the IA-64 processors has been rewritten
--- 19916,19922 ----
         generation of code tuned for Itanium 2 (option -mtune=itanium2) is
         enabled by default now. To generate code tuned for Itanium 1 the
         option -mtune=itanium1 should be used.
!      * [23]DFA processor pipeline descriptions for the IA-64 processors
         have been added. This resulted in about 3% improvement on the
         SPECInt2000 benchmark for Itanium 2.
       * Instruction bundling for the IA-64 processors has been rewritten
*************** New Targets and Target Specific Improvem
*** 18564,18570 ****
  
      General
  
!      * Several [23]ABI bugs have been fixed. Unfortunately, these changes
         will break binary compatibility with earlier releases.
       * GCC can now use explicit relocation operators when generating
         -mabicalls code. This behavior is controlled by -mexplicit-relocs
--- 19980,19986 ----
  
      General
  
!      * Several [24]ABI bugs have been fixed. Unfortunately, these changes
         will break binary compatibility with earlier releases.
       * GCC can now use explicit relocation operators when generating
         -mabicalls code. This behavior is controlled by -mexplicit-relocs
*************** New Targets and Target Specific Improvem
*** 18589,18595 ****
    PowerPC
  
       * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64
!        [24]ABI incompatibilities regarding the way parameters are passed
         during functions calls. These changes may result in incompatibility
         between code compiled with GCC 3.3 and GCC 3.4.
  
--- 20005,20011 ----
    PowerPC
  
       * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64
!        [25]ABI incompatibilities regarding the way parameters are passed
         during functions calls. These changes may result in incompatibility
         between code compiled with GCC 3.3 and GCC 3.4.
  
*************** New Targets and Target Specific Improvem
*** 18671,18677 ****
  
       * The option -mflat is deprecated.
       * Support for large (> 2GB) frames has been added to the 64-bit port.
!      * Several [25]ABI bugs have been fixed. Unfortunately, these changes
         will break binary compatibility with earlier releases.
       * The default debugging format has been switched from STABS to
         DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already
--- 20087,20093 ----
  
       * The option -mflat is deprecated.
       * Support for large (> 2GB) frames has been added to the 64-bit port.
!      * Several [26]ABI bugs have been fixed. Unfortunately, these changes
         will break binary compatibility with earlier releases.
       * The default debugging format has been switched from STABS to
         DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already
*************** New Targets and Target Specific Improvem
*** 18719,18725 ****
         header file when building GCC. Additionally, the
         -mno-serialize-volatile option is no longer supported.
  
! Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.4. Unless there is activity to revive them, the next release of GCC
--- 20135,20141 ----
         header file when building GCC. Additionally, the
         -mno-serialize-volatile option is no longer supported.
  
! [27]Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.4. Unless there is activity to revive them, the next release of GCC
*************** Other significant improvements
*** 18779,18796 ****
         particularly for non-optimizing compilations.
       __________________________________________________________________
  
! GCC 3.4.0
  
    Bug Fixes
  
     A vast number of bugs have been fixed in 3.4.0, too many to publish a
!    complete list here. [26]Follow this link to query the Bugzilla database
     for the list of over 900 bugs fixed in 3.4.0. This is the list of all
     bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4
     regressions.
       __________________________________________________________________
  
! GCC 3.4.1
  
    Bug Fixes
  
--- 20195,20212 ----
         particularly for non-optimizing compilations.
       __________________________________________________________________
  
! [28]GCC 3.4.0
  
    Bug Fixes
  
     A vast number of bugs have been fixed in 3.4.0, too many to publish a
!    complete list here. [29]Follow this link to query the Bugzilla database
     for the list of over 900 bugs fixed in 3.4.0. This is the list of all
     bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4
     regressions.
       __________________________________________________________________
  
! [30]GCC 3.4.1
  
    Bug Fixes
  
*************** GCC 3.4.1
*** 18801,19067 ****
  
      Bootstrap failures
  
!      * [27]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler
         emitted - PIC related
!      * [28]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
!      * [29]14760 A bug in configure.in prevents using both
         --program-suffix and --program-prefix
!      * [30]14671 [hppa64] bootstrap fails: ICE in
         save_call_clobbered_regs, in caller_save.c
!      * [31]15093 [alpha][Java] make bootstrap fails to configure libffi on
         Alpha
!      * [32]15178 Solaris 9/x86 fails linking after stage 3
  
      Multi-platform internal compiler errors (ICEs)
  
!      * [33]12753 (preprocessor) Memory corruption in preprocessor on bad
         input
!      * [34]13985 ICE in gcc.c-torture/compile/930621-1.c
!      * [35]14810 (c++) tree check failures with invalid code involving
         templates
!      * [36]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in
         cp/parser.c
!      * [37]15044 (c++) ICE on syntax error, template header
!      * [38]15057 (c++) Compiling of conditional value throw constructs
         cause a segmentation violation
!      * [39]15064 (c++) typeid of template parameter gives ICE
!      * [40]15142 (c++) ICE when passing a string where a char* is expected
         in a throw statement
!      * [41]15159 ICE in rtl_verify_flow_info_1
!      * [42]15165 (c++) ICE in instantiate_template
!      * [43]15193 Unary minus using pointer to V4SF vector causes
         -fforce-mem to exhaust all memory
!      * [44]15209 (c++) Runs out of memory with packed structs
!      * [45]15227 (c++) Trouble with invalid function definition
!      * [46]15285 (c++) instantiate_type ICE when forming pointer to
         template function
!      * [47]15299 (c++) ICE in resolve_overloaded_unification
!      * [48]15329 (c++) ICE on constructor of member template
!      * [49]15550 ICE in extract_insn, in recog.c
!      * [50]15554 (c++) ICE in tsubst_copy, in cp/pt.c
!      * [51]15640 (c++) ICE on invalid code in arg_assoc, in
         cp/name-lookup.c
!      * [52]15666 [unit-at-a-time] Gcc abort on valid code
!      * [53]15696 (c++) ICE with bad pointer-to-member code
!      * [54]15701 (c++) ICE with friends and template template parameter
!      * [55]15761 ICE in do_SUBST, in combine.c
!      * [56]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
  
      Ada
  
!      * [57]14538 All RTEMS targets broken for gnat
  
      C front end
  
!      * [58]12391 missing warning about assigning to an incomplete type
!      * [59]14649 atan(1.0) should not be a constant expression
!      * [60]15004 [unit-at-a-time] no warning for unused paramater in
         static function
!      * [61]15749 --pedantic-errors behaves differently from --pedantic
         with C-compiler on GNU/Linux
  
      C++ compiler and library
  
!      * [62]10646 non-const reference is incorrectly matched in a "const T"
         partial specialization
!      * [63]12077 wcin.rdbuf()->in_avail() return value too high
!      * [64]13598 enc_filebuf doesn't work
!      * [65]14211 const_cast returns lvalue but should be rvalue
!      * [66]14220 num_put::do_put() undesired float/double behavior
!      * [67]14245 problem with user-defined allocators in std::basic_string
!      * [68]14340 libstdc++ Debug mode: failure to convert iterator to
         const_iterator
!      * [69]14600 __gnu_cxx::stdio_sync_filebuf should expose internal
         FILE*
!      * [70]14668 no warning anymore for reevaluation of declaration
!      * [71]14775 LFS (large file support) tests missing
!      * [72]14821 Duplicate namespace alias declaration should not conflict
!      * [73]14930 Friend declaration ignored
!      * [74]14932 cannot use offsetof to get offsets of array elements in
         g++ 3.4.0
!      * [75]14950 [non unit-at-a-time] always_inline does not mix with
         templates and -O0
!      * [76]14962 g++ ignores #pragma redefine_extname
!      * [77]14975 Segfault on low-level write error during imbue
!      * [78]15002 Linewise stream input is unusably slow (std::string slow)
!      * [79]15025 compiler accepts redeclaration of template as
         non-template
!      * [80]15046 [arm] Math functions misdetected by cross configuration
!      * [81]15069 a bit test on a variable of enum type is miscompiled
!      * [82]15074 g++ -lsupc++ still links against libstdc++
!      * [83]15083 spurious "statement has no effect" warning
!      * [84]15096 parse error with templates and pointer to const member
!      * [85]15287 combination of operator[] and operator .* fails in
         templates
!      * [86]15317 __attribute__ unused in first parameter of constructor
         gives error
!      * [87]15337 sizeof on incomplete type diagnostic
!      * [88]15361 bitset<>::_Find_next fails
!      * [89]15412 _GLIBCXX_ symbols symbols defined and used in different
         namespaces
!      * [90]15427 valid code results in incomplete type error
!      * [91]15471 Incorrect member pointer offsets in anonymous
         structs/unions
!      * [92]15503 nested template problem
!      * [93]15507 compiler hangs while laying out union
!      * [94]15542 operator & and template definitions
!      * [95]15565 SLES9: leading + sign for unsigned int with showpos
!      * [96]15625 friend defined inside a template fails to find static
         function
!      * [97]15629 Function templates, overloads, and friend name injection
!      * [98]15742 'noreturn' attribute ignored in method of template
         functions.
!      * [99]15775 Allocator::pointer consistently ignored
!      * [100]15821 Duplicate namespace alias within namespace rejected
!      * [101]15862 'enum yn' fails (confict with undeclared builtin)
!      * [102]15875 rejects pointer to member in template
!      * [103]15877 valid code using templates and anonymous enums is
         rejected
!      * [104]15947 Puzzling error message for wrong destructor declaration
         in template class
!      * [105]16020 cannot copy __gnu_debug::bitset
!      * [106]16154 input iterator concept too restrictive
!      * [107]16174 deducing top-level consts
  
      Java
  
!      * [108]14315 Java compiler is not parallel make safe
  
      Fortran
  
!      * [109]15151 [g77] incorrect logical i/o in 64-bit mode
  
      Objective-C
  
!      * [110]7993 private variables cannot be shadowed in subclasses
  
      Optimization bugs
  
!      * [111]15228 useless copies of floating point operands
!      * [112]15345 [non-unit-at-a-time] unreferenced nested inline
         functions not optimized away
!      * [113]15945 Incorrect floating point optimization
!      * [114]15526 ftrapv aborts on 0 * (-1)
!      * [115]14690 Miscompiled POOMA tests
!      * [116]15112 GCC generates code to write to unchanging memory
  
      Preprocessor
  
!      * [117]15067 Minor glitch in the source of cpp
  
      Main driver program bugs
  
!      * [118]1963 collect2 interprets -oldstyle_liblookup as -o
         ldstyle_liblookup
  
      x86-specific (Intel/AMD)
  
!      * [119]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
         section}
  
      HPPA-specific
  
!      * [120]14782 GCC produces an unaligned data access at -O2
!      * [121]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
!      * [122]15202 ICE in reload_cse_simplify_operands, in postreload.c
  
      IA64-specific
  
!      * [123]14610 __float80 constants incorrectly emitted
!      * [124]14813 init_array sections are initialized in the wrong order
!      * [125]14857 GCC segfault on duplicated asm statement
!      * [126]15598 Gcc 3.4 ICE on valid code
!      * [127]15653 Gcc 3.4 ICE on valid code
  
      MIPS-specific
  
!      * [128]15189 wrong filling of delay slot with -march=mips1 -G0
         -mno-split-addresses -mno-explicit-relocs
!      * [129]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as
         2.14.91
!      * [130]16144 Bogus reference to __divdf3 when -O1
!      * [131]16176 Miscompilation of unaligned data in MIPS backend
  
      PowerPC-specific
  
!      * [132]11591 ICE in gcc.dg/altivec-5.c
!      * [133]12028 powerpc-eabispe produces bad sCOND operation
!      * [134]14478 rs6000 geu/ltu patterns generate incorrect code
!      * [135]14567 long double and va_arg complex args
!      * [136]14715 Altivec stack layout may overlap gpr save with stack
         temps
!      * [137]14902 (libstdc++) Stream checking functions fail when -pthread
         option is used.
!      * [138]14924 Compiler ICE on valid code
!      * [139]14960 -maltivec affects vector return with -mabi=no-altivec
!      * [140]15106 vector varargs failure passing from altivec to
         non-altivec code for -m32
!      * [141]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 &
         half-word operation
!      * [142]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx
         and stvx
!      * [143]15662 Segmentation fault when an exception is thrown - even if
         try and catch are specified
  
      s390-specific
  
!      * [144]15054 Bad code due to overlapping stack temporaries
  
      SPARC-specific
  
!      * [145]15783 ICE with union assignment in 64-bit mode
!      * [146]15626 GCC 3.4 emits "ld: warning: relocation error:
         R_SPARC_UA32"
  
      x86-64-specific
  
!      * [147]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
!      * [148]14723 Backported -march=nocona from mainline
!      * [149]15290 __float128 failed to pass to function properly
  
      Cygwin/Mingw32-specific
  
!      * [150]15250 Option -mms-bitfields support on GCC 3.4 is not
         conformant to MS layout
!      * [151]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe
         worker on windows32 targets
  
      Bugs specific to embedded processors
  
!      * [152]8309 [m68k] -m5200 produces erroneous SImode set of short
         varaible on stack
!      * [153]13250 [SH] Gcc code for rotation clobbers the register, but
         gcc continues to use the register as if it was not clobbered
!      * [154]13803 [coldfire] movqi operand constraints too restrictivefor
         TARGET_COLDFIRE
!      * [155]14093 [SH] ICE for code when using -mhitachi option in SH
!      * [156]14457 [m6811hc] ICE with simple c++ source
!      * [157]14542 [m6811hc] ICE on simple source
!      * [158]15100 [SH] cc1plus got hang-up on
         libstdc++-v3/testsuite/abi_check.cc
!      * [159]15296 [CRIS] Delayed branch scheduling causing invalid code on
         cris-*
!      * [160]15396 [SH] ICE with -O2 -fPIC
!      * [161]15782 [coldfire] m68k_output_mi_thunk emits wrong code for
         ColdFire
  
      Testsuite problems (compiler not affected)
  
!      * [162]11610 libstdc++ testcases 27_io/* don't work properly remotely
!      * [163]15488 (libstdc++) possibly insufficient file permissions for
         executing test suite
!      * [164]15489 (libstdc++) testsuite_files determined incorrectly
  
      Documentation bugs
  
!      * [165]13928 (libstdc++) no whatis info in some man pages generated
         by doxygen
!      * [166]14150 Ada documentation out of date
!      * [167]14949 (c++) Need to document method visibility changes
!      * [168]15123 libstdc++-doc: Allocators.3 manpage is empty
       __________________________________________________________________
  
! GCC 3.4.2
  
    Bug Fixes
  
--- 20217,20483 ----
  
      Bootstrap failures
  
!      * [31]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler
         emitted - PIC related
!      * [32]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
!      * [33]14760 A bug in configure.in prevents using both
         --program-suffix and --program-prefix
!      * [34]14671 [hppa64] bootstrap fails: ICE in
         save_call_clobbered_regs, in caller_save.c
!      * [35]15093 [alpha][Java] make bootstrap fails to configure libffi on
         Alpha
!      * [36]15178 Solaris 9/x86 fails linking after stage 3
  
      Multi-platform internal compiler errors (ICEs)
  
!      * [37]12753 (preprocessor) Memory corruption in preprocessor on bad
         input
!      * [38]13985 ICE in gcc.c-torture/compile/930621-1.c
!      * [39]14810 (c++) tree check failures with invalid code involving
         templates
!      * [40]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in
         cp/parser.c
!      * [41]15044 (c++) ICE on syntax error, template header
!      * [42]15057 (c++) Compiling of conditional value throw constructs
         cause a segmentation violation
!      * [43]15064 (c++) typeid of template parameter gives ICE
!      * [44]15142 (c++) ICE when passing a string where a char* is expected
         in a throw statement
!      * [45]15159 ICE in rtl_verify_flow_info_1
!      * [46]15165 (c++) ICE in instantiate_template
!      * [47]15193 Unary minus using pointer to V4SF vector causes
         -fforce-mem to exhaust all memory
!      * [48]15209 (c++) Runs out of memory with packed structs
!      * [49]15227 (c++) Trouble with invalid function definition
!      * [50]15285 (c++) instantiate_type ICE when forming pointer to
         template function
!      * [51]15299 (c++) ICE in resolve_overloaded_unification
!      * [52]15329 (c++) ICE on constructor of member template
!      * [53]15550 ICE in extract_insn, in recog.c
!      * [54]15554 (c++) ICE in tsubst_copy, in cp/pt.c
!      * [55]15640 (c++) ICE on invalid code in arg_assoc, in
         cp/name-lookup.c
!      * [56]15666 [unit-at-a-time] Gcc abort on valid code
!      * [57]15696 (c++) ICE with bad pointer-to-member code
!      * [58]15701 (c++) ICE with friends and template template parameter
!      * [59]15761 ICE in do_SUBST, in combine.c
!      * [60]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
  
      Ada
  
!      * [61]14538 All RTEMS targets broken for gnat
  
      C front end
  
!      * [62]12391 missing warning about assigning to an incomplete type
!      * [63]14649 atan(1.0) should not be a constant expression
!      * [64]15004 [unit-at-a-time] no warning for unused paramater in
         static function
!      * [65]15749 --pedantic-errors behaves differently from --pedantic
         with C-compiler on GNU/Linux
  
      C++ compiler and library
  
!      * [66]10646 non-const reference is incorrectly matched in a "const T"
         partial specialization
!      * [67]12077 wcin.rdbuf()->in_avail() return value too high
!      * [68]13598 enc_filebuf doesn't work
!      * [69]14211 const_cast returns lvalue but should be rvalue
!      * [70]14220 num_put::do_put() undesired float/double behavior
!      * [71]14245 problem with user-defined allocators in std::basic_string
!      * [72]14340 libstdc++ Debug mode: failure to convert iterator to
         const_iterator
!      * [73]14600 __gnu_cxx::stdio_sync_filebuf should expose internal
         FILE*
!      * [74]14668 no warning anymore for reevaluation of declaration
!      * [75]14775 LFS (large file support) tests missing
!      * [76]14821 Duplicate namespace alias declaration should not conflict
!      * [77]14930 Friend declaration ignored
!      * [78]14932 cannot use offsetof to get offsets of array elements in
         g++ 3.4.0
!      * [79]14950 [non unit-at-a-time] always_inline does not mix with
         templates and -O0
!      * [80]14962 g++ ignores #pragma redefine_extname
!      * [81]14975 Segfault on low-level write error during imbue
!      * [82]15002 Linewise stream input is unusably slow (std::string slow)
!      * [83]15025 compiler accepts redeclaration of template as
         non-template
!      * [84]15046 [arm] Math functions misdetected by cross configuration
!      * [85]15069 a bit test on a variable of enum type is miscompiled
!      * [86]15074 g++ -lsupc++ still links against libstdc++
!      * [87]15083 spurious "statement has no effect" warning
!      * [88]15096 parse error with templates and pointer to const member
!      * [89]15287 combination of operator[] and operator .* fails in
         templates
!      * [90]15317 __attribute__ unused in first parameter of constructor
         gives error
!      * [91]15337 sizeof on incomplete type diagnostic
!      * [92]15361 bitset<>::_Find_next fails
!      * [93]15412 _GLIBCXX_ symbols symbols defined and used in different
         namespaces
!      * [94]15427 valid code results in incomplete type error
!      * [95]15471 Incorrect member pointer offsets in anonymous
         structs/unions
!      * [96]15503 nested template problem
!      * [97]15507 compiler hangs while laying out union
!      * [98]15542 operator & and template definitions
!      * [99]15565 SLES9: leading + sign for unsigned int with showpos
!      * [100]15625 friend defined inside a template fails to find static
         function
!      * [101]15629 Function templates, overloads, and friend name injection
!      * [102]15742 'noreturn' attribute ignored in method of template
         functions.
!      * [103]15775 Allocator::pointer consistently ignored
!      * [104]15821 Duplicate namespace alias within namespace rejected
!      * [105]15862 'enum yn' fails (confict with undeclared builtin)
!      * [106]15875 rejects pointer to member in template
!      * [107]15877 valid code using templates and anonymous enums is
         rejected
!      * [108]15947 Puzzling error message for wrong destructor declaration
         in template class
!      * [109]16020 cannot copy __gnu_debug::bitset
!      * [110]16154 input iterator concept too restrictive
!      * [111]16174 deducing top-level consts
  
      Java
  
!      * [112]14315 Java compiler is not parallel make safe
  
      Fortran
  
!      * [113]15151 [g77] incorrect logical i/o in 64-bit mode
  
      Objective-C
  
!      * [114]7993 private variables cannot be shadowed in subclasses
  
      Optimization bugs
  
!      * [115]15228 useless copies of floating point operands
!      * [116]15345 [non-unit-at-a-time] unreferenced nested inline
         functions not optimized away
!      * [117]15945 Incorrect floating point optimization
!      * [118]15526 ftrapv aborts on 0 * (-1)
!      * [119]14690 Miscompiled POOMA tests
!      * [120]15112 GCC generates code to write to unchanging memory
  
      Preprocessor
  
!      * [121]15067 Minor glitch in the source of cpp
  
      Main driver program bugs
  
!      * [122]1963 collect2 interprets -oldstyle_liblookup as -o
         ldstyle_liblookup
  
      x86-specific (Intel/AMD)
  
!      * [123]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
         section}
  
      HPPA-specific
  
!      * [124]14782 GCC produces an unaligned data access at -O2
!      * [125]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
!      * [126]15202 ICE in reload_cse_simplify_operands, in postreload.c
  
      IA64-specific
  
!      * [127]14610 __float80 constants incorrectly emitted
!      * [128]14813 init_array sections are initialized in the wrong order
!      * [129]14857 GCC segfault on duplicated asm statement
!      * [130]15598 Gcc 3.4 ICE on valid code
!      * [131]15653 Gcc 3.4 ICE on valid code
  
      MIPS-specific
  
!      * [132]15189 wrong filling of delay slot with -march=mips1 -G0
         -mno-split-addresses -mno-explicit-relocs
!      * [133]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as
         2.14.91
!      * [134]16144 Bogus reference to __divdf3 when -O1
!      * [135]16176 Miscompilation of unaligned data in MIPS backend
  
      PowerPC-specific
  
!      * [136]11591 ICE in gcc.dg/altivec-5.c
!      * [137]12028 powerpc-eabispe produces bad sCOND operation
!      * [138]14478 rs6000 geu/ltu patterns generate incorrect code
!      * [139]14567 long double and va_arg complex args
!      * [140]14715 Altivec stack layout may overlap gpr save with stack
         temps
!      * [141]14902 (libstdc++) Stream checking functions fail when -pthread
         option is used.
!      * [142]14924 Compiler ICE on valid code
!      * [143]14960 -maltivec affects vector return with -mabi=no-altivec
!      * [144]15106 vector varargs failure passing from altivec to
         non-altivec code for -m32
!      * [145]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 &
         half-word operation
!      * [146]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx
         and stvx
!      * [147]15662 Segmentation fault when an exception is thrown - even if
         try and catch are specified
  
      s390-specific
  
!      * [148]15054 Bad code due to overlapping stack temporaries
  
      SPARC-specific
  
!      * [149]15783 ICE with union assignment in 64-bit mode
!      * [150]15626 GCC 3.4 emits "ld: warning: relocation error:
         R_SPARC_UA32"
  
      x86-64-specific
  
!      * [151]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
!      * [152]14723 Backported -march=nocona from mainline
!      * [153]15290 __float128 failed to pass to function properly
  
      Cygwin/Mingw32-specific
  
!      * [154]15250 Option -mms-bitfields support on GCC 3.4 is not
         conformant to MS layout
!      * [155]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe
         worker on windows32 targets
  
      Bugs specific to embedded processors
  
!      * [156]8309 [m68k] -m5200 produces erroneous SImode set of short
         varaible on stack
!      * [157]13250 [SH] Gcc code for rotation clobbers the register, but
         gcc continues to use the register as if it was not clobbered
!      * [158]13803 [coldfire] movqi operand constraints too restrictivefor
         TARGET_COLDFIRE
!      * [159]14093 [SH] ICE for code when using -mhitachi option in SH
!      * [160]14457 [m6811hc] ICE with simple c++ source
!      * [161]14542 [m6811hc] ICE on simple source
!      * [162]15100 [SH] cc1plus got hang-up on
         libstdc++-v3/testsuite/abi_check.cc
!      * [163]15296 [CRIS] Delayed branch scheduling causing invalid code on
         cris-*
!      * [164]15396 [SH] ICE with -O2 -fPIC
!      * [165]15782 [coldfire] m68k_output_mi_thunk emits wrong code for
         ColdFire
  
      Testsuite problems (compiler not affected)
  
!      * [166]11610 libstdc++ testcases 27_io/* don't work properly remotely
!      * [167]15488 (libstdc++) possibly insufficient file permissions for
         executing test suite
!      * [168]15489 (libstdc++) testsuite_files determined incorrectly
  
      Documentation bugs
  
!      * [169]13928 (libstdc++) no whatis info in some man pages generated
         by doxygen
!      * [170]14150 Ada documentation out of date
!      * [171]14949 (c++) Need to document method visibility changes
!      * [172]15123 libstdc++-doc: Allocators.3 manpage is empty
       __________________________________________________________________
  
! [173]GCC 3.4.2
  
    Bug Fixes
  
*************** GCC 3.4.2
*** 19072,19595 ****
  
      Bootstrap failures and issues
  
!      * [169]16469 [mips-sgi-irix5.3] bootstrap fails in
         libstdc++-v3/testsuite
!      * [170]16344 [hppa-linux-gnu] libstdc++'s PCH built by
         profiledbootstrap does not work with the built compiler
!      * [171]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
  
      Multi-platform internal compiler errors (ICEs)
  
!      * [172]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
         cp_parser_class_specifier, in cp/parser.c
!      * [173]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
!      * [174]15461 (c++) ICE due to NRV and inlining
!      * [175]15890 (c++) ICE in c_expand_expr, in c-common.c
!      * [176]16180 ICE: segmentation fault in RTL optimization
!      * [177]16224 (c++) ICE in write_unscoped_name (template/namespace)
!      * [178]16408 ICE: in delete_insn, in cfgrtl.c
!      * [179]16529 (c++) ICE for: namespace-alias shall not be declared as
         the name of any other entity
!      * [180]16698 (c++) ICE with exceptions and declaration of __cxa_throw
!      * [181]16706 (c++) ICE in finish_member_declaration, in
         cp/semantics.c
!      * [182]16810 (c++) Legal C++ program with cast gives ICE in
         build_ptrmemfunc
!      * [183]16851 (c++) ICE when throwing a comma expression
!      * [184]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
!      * [185]16904 (c++) ICE in finish_class_member_access_expr, in
         cp/typeck.c
!      * [186]16905 (c++) ICE (segfault) with exceptions
!      * [187]16964 (c++) ICE in cp_parser_class_specifier due to
         redefinition
!      * [188]17068 (c++) ICE: tree check: expected class 'd', have 'x'
         (identifier_node) in dependent_template_p, in cp/pt.c
  
      Preprocessor bugs
  
!      * [189]16366 Preprocessor option -remap causes memory corruption
  
      Optimization
  
!      * [190]15345 unreferenced nested inline functions not optimized away
!      * [191]16590 Incorrect execution when compiling with -O2
!      * [192]16693 Bitwise AND is lost when used within a cast to an enum
         of the same precision
!      * [193]17078 Jump into if(0) substatement fails
  
      Problems in generated debug information
  
!      * [194]13956 incorrect stabs for nested local variables
  
      C front end bugs
  
!      * [195]16684 GCC should not warn about redundant redeclarations of
         built-ins
  
      C++ compiler and library
  
!      * [196]12658 Thread safety problems in locale::global() and
         locale::locale()
!      * [197]13092 g++ accepts invalid pointer-to-member conversion
!      * [198]15320 Excessive memory consumption
!      * [199]16246 Incorrect template argument deduction
!      * [200]16273 Memory exhausted when using nested classes and virtual
         functions
!      * [201]16401 ostringstream in gcc 3.4.x very slow for big data
!      * [202]16411 undefined reference to
         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char>
         >::file()
!      * [203]16489 G++ incorrectly rejects use of a null constant integral
         expression as a null constant pointer
!      * [204]16618 offsetof fails with constant member
!      * [205]16637 syntax error reported for valid input code
!      * [206]16717 __attribute__((constructor)) broken in C++
!      * [207]16813 compiler error in DEBUG version of range insertion
         std::map::insert
!      * [208]16853 pointer-to-member initialization from incompatible one
         accepted
!      * [209]16889 ambiguity is not detected
!      * [210]16959 Segmentation fault in ios_base::sync_with_stdio
  
      Java compiler and library
  
!      * [211]7587 direct threaded interpreter not thread-safe
!      * [212]16473 ServerSocket accept() leaks file descriptors
!      * [213]16478 Hash synchronization deadlock with finalizers
  
      Alpha-specific
  
!      * [214]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
!      * [215]16974 could not split insn (ice in final_scan_insn, in
         final.c)
  
      x86-specific
  
!      * [216]16298 ICE in output_operand
!      * [217]17113 ICE with SSE2 intrinsics
  
      x86-64 specific
  
!      * [218]14697 libstdc++ couldn't find 32bit libgcc_s
  
      MIPS-specific
  
!      * [219]15869 [mips64] No NOP after LW (with -mips1 -O0)
!      * [220]16325 [mips64] value profiling clobbers gp on mips
!      * [221]16357 [mipsisa64-elf] ICE copying 7 bytes between extern
         char[]s
!      * [222]16380 [mips64] Use of uninitialised register after dbra
         conversion
!      * [223]16407 [mips64] Unaligned access to local variables
!      * [224]16643 [mips64] verify_local_live_at_start ICE after
         crossjumping & cfgcleanup
  
      ARM-specific
  
!      * [225]15927 THUMB -O2: strength-reduced iteration variable ends up
         off by 1
!      * [226]15948 THUMB: ICE with non-commutative cbranch
!      * [227]17019 THUMB: bad switch statement in md code for
         addsi3_cbranch_scratch
  
      IA64-specific
  
!      * [228]16130 ICE on valid code: in bundling, in config/ia64/ia64.c
         (-mtune=merced)
!      * [229]16142 ICE on valid code: in bundling, in config/ia64/ia64.c
         (-mtune=itanium)
!      * [230]16278 Gcc failed to build Linux kernel with -mtune=merced
!      * [231]16414 ICE on valid code: typo in comparison of asm_noperands
         result
!      * [232]16445 ICE on valid code: don't count ignored insns
!      * [233]16490 ICE (segfault) while compiling with -fprofile-use
!      * [234]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
  
      PowerPC-specific
  
!      * [235]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
!      * [236]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions
         issue)
  
      SPARC-specific
  
!      * [237]16199 ICE while compiling apache 2.0.49
!      * [238]16416 -m64 doesn't imply -mcpu=v9 anymore
!      * [239]16430 ICE when returning non-C aggregates larger than 16 bytes
  
      Bugs specific to embedded processors
  
!      * [240]16379 [m32r] can't output large model function call of memcpy
!      * [241]17093 [m32r] ICE with -msdata=use -O0
!      * [242]17119 [m32r] ICE at switch case 0x8000
  
      DJGPP-specific
  
!      * [243]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
  
      Alpha Tru64-specific
  
!      * [244]16210 libstdc++ gratuitously omits "long long" I/O
  
      Testsuite, documentation issues (compiler is not affected):
  
!      * [245]15488 (libstdc++) possibly insufficient file permissions for
         executing test suite
!      * [246]16250 ada/doctools runs makeinfo even in release tarball
       __________________________________________________________________
  
! GCC 3.4.3
  
!    This is the [247]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
      Bootstrap failures
  
!      * [248]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
!      * [249]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold
         when undeclared
  
      Internal compiler errors (ICEs) affecting multiple platforms
  
!      * [250]13948 (java) GCJ segmentation fault while compiling GL4Java
         .class files
!      * [251]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
!      * [252]16301 (c++) ICE when "strong" attribute is attached to a using
         directive
!      * [253]16566 ICE with flexible arrays
!      * [254]17023 ICE with nested functions in parameter declaration
!      * [255]17027 ICE with noreturn function in loop at -O2
!      * [256]17524 ICE in grokdeclarator, in cp/decl.c
!      * [257]17826 (c++) ICE in cp_tree_equal
  
      C and optimization bugs
  
!      * [258]15526 -ftrapv aborts on 0 * (-1)
!      * [259]16999 #ident stopped working
!      * [260]17503 quadratic behaviour in invalid_mode_change_p
!      * [261]17581 Long long arithmetic fails inside a switch/case
         statement when compiled with -O2
!      * [262]18129 -fwritable-strings doesn't work
  
      C++ compiler and library bugs
  
!      * [263]10975 incorrect initial ostringstream::tellp()
!      * [264]11722 Unbuffered filebuf::sgetn is slow
!      * [265]14534 Unrecognizing static function as a template parameter
         when its return value is also templated
!      * [266]15172 Copy constructor optimization in aggregate
         initialization
!      * [267]15786 Bad error message for frequently occuring error.
!      * [268]16162 Rejects valid member-template-definition
!      * [269]16612 empty basic_strings can't live in shared memory
!      * [270]16715 std::basic_iostream is instantiated when used, even
         though instantiations are already contained in libstdc++
!      * [271]16848 code in /ext/demangle.h appears broken
!      * [272]17132 GCC fails to eliminate function template specialization
         when argument deduction fails
!      * [273]17259 One more _S_leaf incorrectly qualified with _RopeRep::
         in ropeimpl.h
!      * [274]17327 use of `enumeral_type' in template type unification
!      * [275]17393 "unused variable '._0'" warning with -Wall
!      * [276]17501 Confusion with member templates
!      * [277]17537 g++ not passing -lstdc++ to linker when all command line
         arguments are libraries
!      * [278]17585 usage of unqualified name of static member from within
         class not allowed
!      * [279]17821 Poor diagnostic for using "." instead of "->"
!      * [280]17829 wrong error: call of overloaded function is ambiguous
!      * [281]17851 Misleading diagnostic for invalid function declarations
         with undeclared types
!      * [282]17976 Destructor is called twice
!      * [283]18020 rejects valid definition of enum value in template
!      * [284]18093 bogus conflict in namespace aliasing
!      * [285]18140 C++ parser bug when using >> in templates
  
      Fortran
  
!      * [286]17541 data statements with double precision constants fail
  
      x86-specific
  
!      * [287]17853 -O2 ICE for MMX testcase
  
      SPARC-specific
  
!      * [288]17245 ICE compiling gsl-1.5 statistics/lag1.c
  
      Darwin-specific
  
!      * [289]17167 FATAL:Symbol L_foo$stub already defined.
  
      AIX-specific
  
!      * [290]17277 could not catch an exception when specified -maix64
  
      Solaris-specific
  
!      * [291]17505 <cmath> calls acosf(), ceilf(), and other functions
         missing from system libraries
  
      HP/UX specific:
  
!      * [292]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
  
      ARM-specific
  
!      * [293]17384 ICE with mode attribute on structures
  
      MIPS-specific
  
!      * [294]17770 No NOP after LWL with -mips1
  
      Other embedded target specific
  
!      * [295]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
!      * [296]14064 [avr-elf] -fdata-sections triggers ICE
!      * [297]14678 [m68hc11-elf] gcc ICE
!      * [298]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
!      * [299]15790 [i686-coff] Alignment error building gcc with i686-coff
         target
!      * [300]15886 [SH] Miscompilation with -O2 -fPIC
!      * [301]16884 [avr-elf] [fweb related] bug while initializing
         variables
  
      Bugs relating to debugger support
  
!      * [302]13841 missing debug info for _Complex function arguments
!      * [303]15860 [big-endian targets] No DW_AT_location debug info is
         emitted for formal arguments to a function that uses "register"
         qualifiers
  
      Testsuite issues (compiler not affected)
  
!      * [304]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
!      * [305]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
!      * [306]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit
         testsuite
  
      Documentation
  
!      * [307]15498 typo in gcc manual: non-existing locale example en_UK,
         should be en_GB
!      * [308]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap:
         document broken shell
!      * [309]16406 USE_LD_AS_NEEDED undocumented
       __________________________________________________________________
  
! GCC 3.4.4
  
!    This is the [310]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! GCC 3.4.5
  
!    This is the [311]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
      Bootstrap issues
  
!      * [312]24688 sco_math fixincl breaks math.h
  
      C compiler bugs
  
!      * [313]17188 struct Foo { } redefinition
!      * [314]20187 wrong code for ((unsigned char)(unsigned long
         long)((a?a:1)&(a*b)))?0:1)
!      * [315]21873 infinite warning loop on bad array initializer
!      * [316]21899 enum definition accepts values to be overriden
!      * [317]22061 ICE in find_function_data, in function.c
!      * [318]22308 Failure to diagnose violation of constraint 6.516p2
!      * [319]22458 ICE on missing brace
!      * [320]22589 ICE casting to long long
!      * [321]24101 Segfault with preprocessed source
  
      C++ compiler and library bugs
  
!      * [322]10611 operations on vector mode not recognized in C++
!      * [323]13377 unexpected behavior of namespace usage directive
!      * [324]16002 Strange error message with new parser
!      * [325]17413 local classes as template argument
!      * [326]17609 spurious error message after using keyword
!      * [327]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
!      * [328]18124 ICE with invalid template template parameter
!      * [329]18155 typedef in template declaration not rejected
!      * [330]18177 ICE with const_cast for undeclared variable
!      * [331]18368 C++ error message regression
!      * [332]16378 ICE when returning a copy of a packed member
!      * [333]18466 int ::i; accepted
!      * [334]18512 ICE on invalid usage of template base class
!      * [335]18454 ICE when returning undefined type
!      * [336]18738 typename not allowed with non-dependent qualified name
!      * [337]18803 rejects access to operator() in template
!      * [338]19004 ICE in uses_template_parms, in cp/pt.c
!      * [339]19208 Spurious error about variably modified type
!      * [340]18253 bad error message / ICE for invalid template parameter
!      * [341]19608 ICE after friend function definition in local class
!      * [342]19884 ICE on explicit instantiation of a non-template
         constructor
!      * [343]20153 ICE when C++ template function contains anonymous union
!      * [344]20563 Infinite loop in diagnostic (and ice after error
         message)
!      * [345]20789 ICE with incomplete type in template
!      * [346]21336 Internal compiler error when using custom new operators
!      * [347]21768 ICE in error message due to violation of coding
         conventions
!      * [348]21853 constness of pointer to data member ignored
!      * [349]21903 Default argument of template function causes a
         compile-time error
!      * [350]21983 multiple diagnostics
!      * [351]21987 New testsuite failure
         g++.dg/warn/conversion-function-1.C
!      * [352]22153 ICE on invalid template specialization
!      * [353]22172 Internal compiler error, seg fault.
!      * [354]21286 filebuf::xsgetn vs pipes
!      * [355]22233 ICE with wrong number of template parameters
!      * [356]22508 ICE after invalid operator new
!      * [357]22545 ICE with pointer to class member & user defined
         conversion operator
!      * [358]23528 Wrong default allocator in ext/hash_map
!      * [359]23550 char_traits requirements/1.cc test bad math
!      * [360]23586 Bad diagnostic for invalid namespace-name
!      * [361]23624 ICE in invert_truthvalue, in fold-const.c
!      * [362]23639 Bad error message: not a member of '<declaration error>'
!      * [363]23797 ICE on typename outside template
!      * [364]23965 Bogus error message: no matching function for call to
         'foo(<type error>)'
!      * [365]24052 &#`label_decl' not supported by dump_expr#<expression
         error>
!      * [366]24580 virtual base class cause exception not to be caught
  
      Problems in generated debug information
  
!      * [367]24267 Bad DWARF for altivec vectors
  
      Optimizations issues
  
!      * [368]17810 ICE in verify_local_live_at_start
!      * [369]17860 Wrong generated code for loop with varying bound
!      * [370]21709 ICE on compile-time complex NaN
!      * [371]21964 broken tail call at -O2 or more
!      * [372]22167 Strange optimization bug when using -Os
!      * [373]22619 Compilation failure for real_const_1.f and
         real_const_2.f90
!      * [374]23241 Invalid code generated for comparison of uchar to 255
!      * [375]23478 Miscompilation due to reloading of a var that is also
         used in EH pad
!      * [376]24470 segmentation fault in cc1plus when compiling with -O
!      * [377]24950 ICE in operand_subword_force
  
      Precompiled headers problems
  
!      * [378]14400 Cannot compile qt-x11-free-3.3.0
!      * [379]14940 PCH largefile test fails on various platforms
  
      Preprocessor bugs
  
!      * [380]20239 ICE on empty preprocessed input
!      * [381]15220 "gcc -E -MM -MG" reports missing system headers in
         source directory
  
      Testsuite issues
  
!      * [382]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on
         i686-pc-linux-gnu
  
      Alpha specific
  
!      * [383]21888 bootstrap failure with linker relaxation enabled
  
      ARM specific
  
!      * [384]15342 [arm-linux]: ICE in verify_local_live_at_start
!      * [385]23985 Memory aliasing information incorrect in inlined memcpy
  
      ColdFile specific
  
!      * [386]16719 Illegal move of byte into address register causes
         compiler to ICE
  
      HPPA specific
  
!      * [387]21723 ICE while building libgfortran
!      * [388]21841 -mhp-ld/-mgnu-ld documentation
  
      IA-64 specific
  
!      * [389]23644 IA-64 hardware models and configuration options
         documentation error
!      * [390]24718 Shared libgcc not used for linking by default
  
      M68000 specific
  
!      * [391]18421 ICE in reload_cse_simplify_operands, in postreload.c
  
      MIPS specific
  
!      * [392]20621 ICE in change_address_1, in emit-rtl.c
  
      PowerPC and PowerPC64 specific
  
!      * [393]18583 error on valid code: const
         __attribute__((altivec(vector__))) doesn't work in arrays
!      * [394]20191 ICE in reload_cse_simplify_operands
!      * [395]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
!      * [396]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
!      * [397]23404 gij trashes args of functions with more than 8 fp args
!      * [398]23539 C & C++ compiler generating misaligned references
         regardless of compiler flags
!      * [399]24102 floatdisf2_internal2 broken
!      * [400]24465 -mminimal-toc miscompilation of __thread vars
  
      Solaris specific
  
!      * [401]19933 Problem with define of HUGE_VAL in math_c99
!      * [402]21889 Native Solaris assembler cannot grok DTP-relative debug
         symbols
  
      SPARC specific
  
!      * [403]19300 PCH failures on sparc-linux
!      * [404]20301 Assembler labels have a leading "-"
!      * [405]20673 C PCH testsuite assembly comparison failure
  
      x86 and x86_64 specific
  
!      * [406]18582 ICE with arrays of type V2DF
!      * [407]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2
         -fsched2-use-traces
!      * [408]21716 ICE in reg-stack.c's swap_rtx_condition
!      * [409]24315 amd64 fails -fpeephole2
       __________________________________________________________________
  
! GCC 3.4.6
  
!    This is the [410]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [411]GCC manuals. If that fails, the
!     [412]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [413]gcc@gcc.gnu.org. All of [414]our lists have public
      archives.
  
!    Copyright (C) [415]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [416]maintained by the GCC team. Last modified
!    2023-01-27.
  
  References
  
--- 20488,21011 ----
  
      Bootstrap failures and issues
  
!      * [174]16469 [mips-sgi-irix5.3] bootstrap fails in
         libstdc++-v3/testsuite
!      * [175]16344 [hppa-linux-gnu] libstdc++'s PCH built by
         profiledbootstrap does not work with the built compiler
!      * [176]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
  
      Multi-platform internal compiler errors (ICEs)
  
!      * [177]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
         cp_parser_class_specifier, in cp/parser.c
!      * [178]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
!      * [179]15461 (c++) ICE due to NRV and inlining
!      * [180]15890 (c++) ICE in c_expand_expr, in c-common.c
!      * [181]16180 ICE: segmentation fault in RTL optimization
!      * [182]16224 (c++) ICE in write_unscoped_name (template/namespace)
!      * [183]16408 ICE: in delete_insn, in cfgrtl.c
!      * [184]16529 (c++) ICE for: namespace-alias shall not be declared as
         the name of any other entity
!      * [185]16698 (c++) ICE with exceptions and declaration of __cxa_throw
!      * [186]16706 (c++) ICE in finish_member_declaration, in
         cp/semantics.c
!      * [187]16810 (c++) Legal C++ program with cast gives ICE in
         build_ptrmemfunc
!      * [188]16851 (c++) ICE when throwing a comma expression
!      * [189]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
!      * [190]16904 (c++) ICE in finish_class_member_access_expr, in
         cp/typeck.c
!      * [191]16905 (c++) ICE (segfault) with exceptions
!      * [192]16964 (c++) ICE in cp_parser_class_specifier due to
         redefinition
!      * [193]17068 (c++) ICE: tree check: expected class 'd', have 'x'
         (identifier_node) in dependent_template_p, in cp/pt.c
  
      Preprocessor bugs
  
!      * [194]16366 Preprocessor option -remap causes memory corruption
  
      Optimization
  
!      * [195]15345 unreferenced nested inline functions not optimized away
!      * [196]16590 Incorrect execution when compiling with -O2
!      * [197]16693 Bitwise AND is lost when used within a cast to an enum
         of the same precision
!      * [198]17078 Jump into if(0) substatement fails
  
      Problems in generated debug information
  
!      * [199]13956 incorrect stabs for nested local variables
  
      C front end bugs
  
!      * [200]16684 GCC should not warn about redundant redeclarations of
         built-ins
  
      C++ compiler and library
  
!      * [201]12658 Thread safety problems in locale::global() and
         locale::locale()
!      * [202]13092 g++ accepts invalid pointer-to-member conversion
!      * [203]15320 Excessive memory consumption
!      * [204]16246 Incorrect template argument deduction
!      * [205]16273 Memory exhausted when using nested classes and virtual
         functions
!      * [206]16401 ostringstream in gcc 3.4.x very slow for big data
!      * [207]16411 undefined reference to
         __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char>
         >::file()
!      * [208]16489 G++ incorrectly rejects use of a null constant integral
         expression as a null constant pointer
!      * [209]16618 offsetof fails with constant member
!      * [210]16637 syntax error reported for valid input code
!      * [211]16717 __attribute__((constructor)) broken in C++
!      * [212]16813 compiler error in DEBUG version of range insertion
         std::map::insert
!      * [213]16853 pointer-to-member initialization from incompatible one
         accepted
!      * [214]16889 ambiguity is not detected
!      * [215]16959 Segmentation fault in ios_base::sync_with_stdio
  
      Java compiler and library
  
!      * [216]7587 direct threaded interpreter not thread-safe
!      * [217]16473 ServerSocket accept() leaks file descriptors
!      * [218]16478 Hash synchronization deadlock with finalizers
  
      Alpha-specific
  
!      * [219]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
!      * [220]16974 could not split insn (ice in final_scan_insn, in
         final.c)
  
      x86-specific
  
!      * [221]16298 ICE in output_operand
!      * [222]17113 ICE with SSE2 intrinsics
  
      x86-64 specific
  
!      * [223]14697 libstdc++ couldn't find 32bit libgcc_s
  
      MIPS-specific
  
!      * [224]15869 [mips64] No NOP after LW (with -mips1 -O0)
!      * [225]16325 [mips64] value profiling clobbers gp on mips
!      * [226]16357 [mipsisa64-elf] ICE copying 7 bytes between extern
         char[]s
!      * [227]16380 [mips64] Use of uninitialised register after dbra
         conversion
!      * [228]16407 [mips64] Unaligned access to local variables
!      * [229]16643 [mips64] verify_local_live_at_start ICE after
         crossjumping & cfgcleanup
  
      ARM-specific
  
!      * [230]15927 THUMB -O2: strength-reduced iteration variable ends up
         off by 1
!      * [231]15948 THUMB: ICE with non-commutative cbranch
!      * [232]17019 THUMB: bad switch statement in md code for
         addsi3_cbranch_scratch
  
      IA64-specific
  
!      * [233]16130 ICE on valid code: in bundling, in config/ia64/ia64.c
         (-mtune=merced)
!      * [234]16142 ICE on valid code: in bundling, in config/ia64/ia64.c
         (-mtune=itanium)
!      * [235]16278 Gcc failed to build Linux kernel with -mtune=merced
!      * [236]16414 ICE on valid code: typo in comparison of asm_noperands
         result
!      * [237]16445 ICE on valid code: don't count ignored insns
!      * [238]16490 ICE (segfault) while compiling with -fprofile-use
!      * [239]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
  
      PowerPC-specific
  
!      * [240]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
!      * [241]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions
         issue)
  
      SPARC-specific
  
!      * [242]16199 ICE while compiling apache 2.0.49
!      * [243]16416 -m64 doesn't imply -mcpu=v9 anymore
!      * [244]16430 ICE when returning non-C aggregates larger than 16 bytes
  
      Bugs specific to embedded processors
  
!      * [245]16379 [m32r] can't output large model function call of memcpy
!      * [246]17093 [m32r] ICE with -msdata=use -O0
!      * [247]17119 [m32r] ICE at switch case 0x8000
  
      DJGPP-specific
  
!      * [248]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
  
      Alpha Tru64-specific
  
!      * [249]16210 libstdc++ gratuitously omits "long long" I/O
  
      Testsuite, documentation issues (compiler is not affected):
  
!      * [250]15488 (libstdc++) possibly insufficient file permissions for
         executing test suite
!      * [251]16250 ada/doctools runs makeinfo even in release tarball
       __________________________________________________________________
  
! [252]GCC 3.4.3
  
!    This is the [253]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.3 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
      Bootstrap failures
  
!      * [254]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
!      * [255]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold
         when undeclared
  
      Internal compiler errors (ICEs) affecting multiple platforms
  
!      * [256]13948 (java) GCJ segmentation fault while compiling GL4Java
         .class files
!      * [257]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
!      * [258]16301 (c++) ICE when "strong" attribute is attached to a using
         directive
!      * [259]16566 ICE with flexible arrays
!      * [260]17023 ICE with nested functions in parameter declaration
!      * [261]17027 ICE with noreturn function in loop at -O2
!      * [262]17524 ICE in grokdeclarator, in cp/decl.c
!      * [263]17826 (c++) ICE in cp_tree_equal
  
      C and optimization bugs
  
!      * [264]15526 -ftrapv aborts on 0 * (-1)
!      * [265]16999 #ident stopped working
!      * [266]17503 quadratic behaviour in invalid_mode_change_p
!      * [267]17581 Long long arithmetic fails inside a switch/case
         statement when compiled with -O2
!      * [268]18129 -fwritable-strings doesn't work
  
      C++ compiler and library bugs
  
!      * [269]10975 incorrect initial ostringstream::tellp()
!      * [270]11722 Unbuffered filebuf::sgetn is slow
!      * [271]14534 Unrecognizing static function as a template parameter
         when its return value is also templated
!      * [272]15172 Copy constructor optimization in aggregate
         initialization
!      * [273]15786 Bad error message for frequently occuring error.
!      * [274]16162 Rejects valid member-template-definition
!      * [275]16612 empty basic_strings can't live in shared memory
!      * [276]16715 std::basic_iostream is instantiated when used, even
         though instantiations are already contained in libstdc++
!      * [277]16848 code in /ext/demangle.h appears broken
!      * [278]17132 GCC fails to eliminate function template specialization
         when argument deduction fails
!      * [279]17259 One more _S_leaf incorrectly qualified with _RopeRep::
         in ropeimpl.h
!      * [280]17327 use of `enumeral_type' in template type unification
!      * [281]17393 "unused variable '._0'" warning with -Wall
!      * [282]17501 Confusion with member templates
!      * [283]17537 g++ not passing -lstdc++ to linker when all command line
         arguments are libraries
!      * [284]17585 usage of unqualified name of static member from within
         class not allowed
!      * [285]17821 Poor diagnostic for using "." instead of "->"
!      * [286]17829 wrong error: call of overloaded function is ambiguous
!      * [287]17851 Misleading diagnostic for invalid function declarations
         with undeclared types
!      * [288]17976 Destructor is called twice
!      * [289]18020 rejects valid definition of enum value in template
!      * [290]18093 bogus conflict in namespace aliasing
!      * [291]18140 C++ parser bug when using >> in templates
  
      Fortran
  
!      * [292]17541 data statements with double precision constants fail
  
      x86-specific
  
!      * [293]17853 -O2 ICE for MMX testcase
  
      SPARC-specific
  
!      * [294]17245 ICE compiling gsl-1.5 statistics/lag1.c
  
      Darwin-specific
  
!      * [295]17167 FATAL:Symbol L_foo$stub already defined.
  
      AIX-specific
  
!      * [296]17277 could not catch an exception when specified -maix64
  
      Solaris-specific
  
!      * [297]17505 <cmath> calls acosf(), ceilf(), and other functions
         missing from system libraries
  
      HP/UX specific:
  
!      * [298]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
  
      ARM-specific
  
!      * [299]17384 ICE with mode attribute on structures
  
      MIPS-specific
  
!      * [300]17770 No NOP after LWL with -mips1
  
      Other embedded target specific
  
!      * [301]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
!      * [302]14064 [avr-elf] -fdata-sections triggers ICE
!      * [303]14678 [m68hc11-elf] gcc ICE
!      * [304]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
!      * [305]15790 [i686-coff] Alignment error building gcc with i686-coff
         target
!      * [306]15886 [SH] Miscompilation with -O2 -fPIC
!      * [307]16884 [avr-elf] [fweb related] bug while initializing
         variables
  
      Bugs relating to debugger support
  
!      * [308]13841 missing debug info for _Complex function arguments
!      * [309]15860 [big-endian targets] No DW_AT_location debug info is
         emitted for formal arguments to a function that uses "register"
         qualifiers
  
      Testsuite issues (compiler not affected)
  
!      * [310]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
!      * [311]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
!      * [312]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit
         testsuite
  
      Documentation
  
!      * [313]15498 typo in gcc manual: non-existing locale example en_UK,
         should be en_GB
!      * [314]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap:
         document broken shell
!      * [315]16406 USE_LD_AS_NEEDED undocumented
       __________________________________________________________________
  
! [316]GCC 3.4.4
  
!    This is the [317]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! [318]GCC 3.4.5
  
!    This is the [319]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
      Bootstrap issues
  
!      * [320]24688 sco_math fixincl breaks math.h
  
      C compiler bugs
  
!      * [321]17188 struct Foo { } redefinition
!      * [322]20187 wrong code for ((unsigned char)(unsigned long
         long)((a?a:1)&(a*b)))?0:1)
!      * [323]21873 infinite warning loop on bad array initializer
!      * [324]21899 enum definition accepts values to be overriden
!      * [325]22061 ICE in find_function_data, in function.c
!      * [326]22308 Failure to diagnose violation of constraint 6.516p2
!      * [327]22458 ICE on missing brace
!      * [328]22589 ICE casting to long long
!      * [329]24101 Segfault with preprocessed source
  
      C++ compiler and library bugs
  
!      * [330]10611 operations on vector mode not recognized in C++
!      * [331]13377 unexpected behavior of namespace usage directive
!      * [332]16002 Strange error message with new parser
!      * [333]17413 local classes as template argument
!      * [334]17609 spurious error message after using keyword
!      * [335]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
!      * [336]18124 ICE with invalid template template parameter
!      * [337]18155 typedef in template declaration not rejected
!      * [338]18177 ICE with const_cast for undeclared variable
!      * [339]18368 C++ error message regression
!      * [340]16378 ICE when returning a copy of a packed member
!      * [341]18466 int ::i; accepted
!      * [342]18512 ICE on invalid usage of template base class
!      * [343]18454 ICE when returning undefined type
!      * [344]18738 typename not allowed with non-dependent qualified name
!      * [345]18803 rejects access to operator() in template
!      * [346]19004 ICE in uses_template_parms, in cp/pt.c
!      * [347]19208 Spurious error about variably modified type
!      * [348]18253 bad error message / ICE for invalid template parameter
!      * [349]19608 ICE after friend function definition in local class
!      * [350]19884 ICE on explicit instantiation of a non-template
         constructor
!      * [351]20153 ICE when C++ template function contains anonymous union
!      * [352]20563 Infinite loop in diagnostic (and ice after error
         message)
!      * [353]20789 ICE with incomplete type in template
!      * [354]21336 Internal compiler error when using custom new operators
!      * [355]21768 ICE in error message due to violation of coding
         conventions
!      * [356]21853 constness of pointer to data member ignored
!      * [357]21903 Default argument of template function causes a
         compile-time error
!      * [358]21983 multiple diagnostics
!      * [359]21987 New testsuite failure
         g++.dg/warn/conversion-function-1.C
!      * [360]22153 ICE on invalid template specialization
!      * [361]22172 Internal compiler error, seg fault.
!      * [362]21286 filebuf::xsgetn vs pipes
!      * [363]22233 ICE with wrong number of template parameters
!      * [364]22508 ICE after invalid operator new
!      * [365]22545 ICE with pointer to class member & user defined
         conversion operator
!      * [366]23528 Wrong default allocator in ext/hash_map
!      * [367]23550 char_traits requirements/1.cc test bad math
!      * [368]23586 Bad diagnostic for invalid namespace-name
!      * [369]23624 ICE in invert_truthvalue, in fold-const.c
!      * [370]23639 Bad error message: not a member of '<declaration error>'
!      * [371]23797 ICE on typename outside template
!      * [372]23965 Bogus error message: no matching function for call to
         'foo(<type error>)'
!      * [373]24052 &#`label_decl' not supported by dump_expr#<expression
         error>
!      * [374]24580 virtual base class cause exception not to be caught
  
      Problems in generated debug information
  
!      * [375]24267 Bad DWARF for altivec vectors
  
      Optimizations issues
  
!      * [376]17810 ICE in verify_local_live_at_start
!      * [377]17860 Wrong generated code for loop with varying bound
!      * [378]21709 ICE on compile-time complex NaN
!      * [379]21964 broken tail call at -O2 or more
!      * [380]22167 Strange optimization bug when using -Os
!      * [381]22619 Compilation failure for real_const_1.f and
         real_const_2.f90
!      * [382]23241 Invalid code generated for comparison of uchar to 255
!      * [383]23478 Miscompilation due to reloading of a var that is also
         used in EH pad
!      * [384]24470 segmentation fault in cc1plus when compiling with -O
!      * [385]24950 ICE in operand_subword_force
  
      Precompiled headers problems
  
!      * [386]14400 Cannot compile qt-x11-free-3.3.0
!      * [387]14940 PCH largefile test fails on various platforms
  
      Preprocessor bugs
  
!      * [388]20239 ICE on empty preprocessed input
!      * [389]15220 "gcc -E -MM -MG" reports missing system headers in
         source directory
  
      Testsuite issues
  
!      * [390]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on
         i686-pc-linux-gnu
  
      Alpha specific
  
!      * [391]21888 bootstrap failure with linker relaxation enabled
  
      ARM specific
  
!      * [392]15342 [arm-linux]: ICE in verify_local_live_at_start
!      * [393]23985 Memory aliasing information incorrect in inlined memcpy
  
      ColdFile specific
  
!      * [394]16719 Illegal move of byte into address register causes
         compiler to ICE
  
      HPPA specific
  
!      * [395]21723 ICE while building libgfortran
!      * [396]21841 -mhp-ld/-mgnu-ld documentation
  
      IA-64 specific
  
!      * [397]23644 IA-64 hardware models and configuration options
         documentation error
!      * [398]24718 Shared libgcc not used for linking by default
  
      M68000 specific
  
!      * [399]18421 ICE in reload_cse_simplify_operands, in postreload.c
  
      MIPS specific
  
!      * [400]20621 ICE in change_address_1, in emit-rtl.c
  
      PowerPC and PowerPC64 specific
  
!      * [401]18583 error on valid code: const
         __attribute__((altivec(vector__))) doesn't work in arrays
!      * [402]20191 ICE in reload_cse_simplify_operands
!      * [403]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
!      * [404]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
!      * [405]23404 gij trashes args of functions with more than 8 fp args
!      * [406]23539 C & C++ compiler generating misaligned references
         regardless of compiler flags
!      * [407]24102 floatdisf2_internal2 broken
!      * [408]24465 -mminimal-toc miscompilation of __thread vars
  
      Solaris specific
  
!      * [409]19933 Problem with define of HUGE_VAL in math_c99
!      * [410]21889 Native Solaris assembler cannot grok DTP-relative debug
         symbols
  
      SPARC specific
  
!      * [411]19300 PCH failures on sparc-linux
!      * [412]20301 Assembler labels have a leading "-"
!      * [413]20673 C PCH testsuite assembly comparison failure
  
      x86 and x86_64 specific
  
!      * [414]18582 ICE with arrays of type V2DF
!      * [415]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2
         -fsched2-use-traces
!      * [416]21716 ICE in reg-stack.c's swap_rtx_condition
!      * [417]24315 amd64 fails -fpeephole2
       __________________________________________________________________
  
! [418]GCC 3.4.6
  
!    This is the [419]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.4.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [420]GCC manuals. If that fails, the
!     [421]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [422]gcc@gcc.gnu.org. All of [423]our lists have public
      archives.
  
!    Copyright (C) [424]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [425]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 19603,20014 ****
     8. https://gcc.gnu.org/PR11953
     9. https://gcc.gnu.org/PR8361
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other Builtins
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
!   12. https://gcc.gnu.org/bugs/#cxx_rvalbind
!   13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
!   16. http://www.gnu.org/software/classpath/
!   17. https://www.eclipse.org/
!   18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
!   19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
!   20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   23. https://gcc.gnu.org/gcc-3.4/mips-abi.html
!   24. https://gcc.gnu.org/gcc-3.4/powerpc-abi.html
!   25. https://gcc.gnu.org/gcc-3.4/sparc-abi.html
!   26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
!   27. https://gcc.gnu.org/PR10129
!   28. https://gcc.gnu.org/PR14576
!   29. https://gcc.gnu.org/PR14760
!   30. https://gcc.gnu.org/PR14671
!   31. https://gcc.gnu.org/PR15093
!   32. https://gcc.gnu.org/PR15178
!   33. https://gcc.gnu.org/PR12753
!   34. https://gcc.gnu.org/PR13985
!   35. https://gcc.gnu.org/PR14810
!   36. https://gcc.gnu.org/PR14883
!   37. https://gcc.gnu.org/PR15044
!   38. https://gcc.gnu.org/PR15057
!   39. https://gcc.gnu.org/PR15064
!   40. https://gcc.gnu.org/PR15142
!   41. https://gcc.gnu.org/PR15159
!   42. https://gcc.gnu.org/PR15165
!   43. https://gcc.gnu.org/PR15193
!   44. https://gcc.gnu.org/PR15209
!   45. https://gcc.gnu.org/PR15227
!   46. https://gcc.gnu.org/PR15285
!   47. https://gcc.gnu.org/PR15299
!   48. https://gcc.gnu.org/PR15329
!   49. https://gcc.gnu.org/PR15550
!   50. https://gcc.gnu.org/PR15554
!   51. https://gcc.gnu.org/PR15640
!   52. https://gcc.gnu.org/PR15666
!   53. https://gcc.gnu.org/PR15696
!   54. https://gcc.gnu.org/PR15701
!   55. https://gcc.gnu.org/PR15761
!   56. https://gcc.gnu.org/PR15829
!   57. https://gcc.gnu.org/PR14538
!   58. https://gcc.gnu.org/PR12391
!   59. https://gcc.gnu.org/PR14649
!   60. https://gcc.gnu.org/PR15004
!   61. https://gcc.gnu.org/PR15749
!   62. https://gcc.gnu.org/PR10646
!   63. https://gcc.gnu.org/PR12077
!   64. https://gcc.gnu.org/PR13598
!   65. https://gcc.gnu.org/PR14211
!   66. https://gcc.gnu.org/PR14220
!   67. https://gcc.gnu.org/PR14245
!   68. https://gcc.gnu.org/PR14340
!   69. https://gcc.gnu.org/PR14600
!   70. https://gcc.gnu.org/PR14668
!   71. https://gcc.gnu.org/PR14775
!   72. https://gcc.gnu.org/PR14821
!   73. https://gcc.gnu.org/PR14930
!   74. https://gcc.gnu.org/PR14932
!   75. https://gcc.gnu.org/PR14950
!   76. https://gcc.gnu.org/PR14962
!   77. https://gcc.gnu.org/PR14975
!   78. https://gcc.gnu.org/PR15002
!   79. https://gcc.gnu.org/PR15025
!   80. https://gcc.gnu.org/PR15046
!   81. https://gcc.gnu.org/PR15069
!   82. https://gcc.gnu.org/PR15074
!   83. https://gcc.gnu.org/PR15083
!   84. https://gcc.gnu.org/PR15096
!   85. https://gcc.gnu.org/PR15287
!   86. https://gcc.gnu.org/PR15317
!   87. https://gcc.gnu.org/PR15337
!   88. https://gcc.gnu.org/PR15361
!   89. https://gcc.gnu.org/PR15412
!   90. https://gcc.gnu.org/PR15427
!   91. https://gcc.gnu.org/PR15471
!   92. https://gcc.gnu.org/PR15503
!   93. https://gcc.gnu.org/PR15507
!   94. https://gcc.gnu.org/PR15542
!   95. https://gcc.gnu.org/PR15565
!   96. https://gcc.gnu.org/PR15625
!   97. https://gcc.gnu.org/PR15629
!   98. https://gcc.gnu.org/PR15742
!   99. https://gcc.gnu.org/PR15775
!  100. https://gcc.gnu.org/PR15821
!  101. https://gcc.gnu.org/PR15862
!  102. https://gcc.gnu.org/PR15875
!  103. https://gcc.gnu.org/PR15877
!  104. https://gcc.gnu.org/PR15947
!  105. https://gcc.gnu.org/PR16020
!  106. https://gcc.gnu.org/PR16154
!  107. https://gcc.gnu.org/PR16174
!  108. https://gcc.gnu.org/PR14315
!  109. https://gcc.gnu.org/PR15151
!  110. https://gcc.gnu.org/PR7993
!  111. https://gcc.gnu.org/PR15228
!  112. https://gcc.gnu.org/PR15345
!  113. https://gcc.gnu.org/PR15945
!  114. https://gcc.gnu.org/PR15526
!  115. https://gcc.gnu.org/PR14690
!  116. https://gcc.gnu.org/PR15112
!  117. https://gcc.gnu.org/PR15067
!  118. https://gcc.gnu.org/PR1963
!  119. https://gcc.gnu.org/PR15717
!  120. https://gcc.gnu.org/PR14782
!  121. https://gcc.gnu.org/PR14828
!  122. https://gcc.gnu.org/PR15202
!  123. https://gcc.gnu.org/PR14610
!  124. https://gcc.gnu.org/PR14813
!  125. https://gcc.gnu.org/PR14857
!  126. https://gcc.gnu.org/PR15598
!  127. https://gcc.gnu.org/PR15653
!  128. https://gcc.gnu.org/PR15189
!  129. https://gcc.gnu.org/PR15331
!  130. https://gcc.gnu.org/PR16144
!  131. https://gcc.gnu.org/PR16176
!  132. https://gcc.gnu.org/PR11591
!  133. https://gcc.gnu.org/PR12028
!  134. https://gcc.gnu.org/PR14478
!  135. https://gcc.gnu.org/PR14567
!  136. https://gcc.gnu.org/PR14715
!  137. https://gcc.gnu.org/PR14902
!  138. https://gcc.gnu.org/PR14924
!  139. https://gcc.gnu.org/PR14960
!  140. https://gcc.gnu.org/PR15106
!  141. https://gcc.gnu.org/PR16026
!  142. https://gcc.gnu.org/PR15191
!  143. https://gcc.gnu.org/PR15662
!  144. https://gcc.gnu.org/PR15054
!  145. https://gcc.gnu.org/PR15783
!  146. https://gcc.gnu.org/PR15626
!  147. https://gcc.gnu.org/PR14326
!  148. https://gcc.gnu.org/PR14723
!  149. https://gcc.gnu.org/PR15290
!  150. https://gcc.gnu.org/PR15250
!  151. https://gcc.gnu.org/PR15551
!  152. https://gcc.gnu.org/PR8309
!  153. https://gcc.gnu.org/PR13250
!  154. https://gcc.gnu.org/PR13803
!  155. https://gcc.gnu.org/PR14093
!  156. https://gcc.gnu.org/PR14457
!  157. https://gcc.gnu.org/PR14542
!  158. https://gcc.gnu.org/PR15100
!  159. https://gcc.gnu.org/PR15296
!  160. https://gcc.gnu.org/PR15396
!  161. https://gcc.gnu.org/PR15782
!  162. https://gcc.gnu.org/PR11610
!  163. https://gcc.gnu.org/PR15488
!  164. https://gcc.gnu.org/PR15489
!  165. https://gcc.gnu.org/PR13928
!  166. https://gcc.gnu.org/PR14150
!  167. https://gcc.gnu.org/PR14949
!  168. https://gcc.gnu.org/PR15123
!  169. https://gcc.gnu.org/PR16469
!  170. https://gcc.gnu.org/PR16344
!  171. https://gcc.gnu.org/PR16842
!  172. https://gcc.gnu.org/PR12608
!  173. https://gcc.gnu.org/PR14492
!  174. https://gcc.gnu.org/PR15461
!  175. https://gcc.gnu.org/PR15890
!  176. https://gcc.gnu.org/PR16180
!  177. https://gcc.gnu.org/PR16224
!  178. https://gcc.gnu.org/PR16408
!  179. https://gcc.gnu.org/PR16529
!  180. https://gcc.gnu.org/PR16698
!  181. https://gcc.gnu.org/PR16706
!  182. https://gcc.gnu.org/PR16810
!  183. https://gcc.gnu.org/PR16851
!  184. https://gcc.gnu.org/PR16870
!  185. https://gcc.gnu.org/PR16904
!  186. https://gcc.gnu.org/PR16905
!  187. https://gcc.gnu.org/PR16964
!  188. https://gcc.gnu.org/PR17068
!  189. https://gcc.gnu.org/PR16366
!  190. https://gcc.gnu.org/PR15345
!  191. https://gcc.gnu.org/PR16590
!  192. https://gcc.gnu.org/PR16693
!  193. https://gcc.gnu.org/PR17078
!  194. https://gcc.gnu.org/PR13956
!  195. https://gcc.gnu.org/PR16684
!  196. https://gcc.gnu.org/PR12658
!  197. https://gcc.gnu.org/PR13092
!  198. https://gcc.gnu.org/PR15320
!  199. https://gcc.gnu.org/PR16246
!  200. https://gcc.gnu.org/PR16273
!  201. https://gcc.gnu.org/PR16401
!  202. https://gcc.gnu.org/PR16411
!  203. https://gcc.gnu.org/PR16489
!  204. https://gcc.gnu.org/PR16618
!  205. https://gcc.gnu.org/PR16637
!  206. https://gcc.gnu.org/PR16717
!  207. https://gcc.gnu.org/PR16813
!  208. https://gcc.gnu.org/PR16853
!  209. https://gcc.gnu.org/PR16889
!  210. https://gcc.gnu.org/PR16959
!  211. https://gcc.gnu.org/PR7587
!  212. https://gcc.gnu.org/PR16473
!  213. https://gcc.gnu.org/PR16478
!  214. https://gcc.gnu.org/PR10695
!  215. https://gcc.gnu.org/PR16974
!  216. https://gcc.gnu.org/PR16298
!  217. https://gcc.gnu.org/PR17113
!  218. https://gcc.gnu.org/PR14697
!  219. https://gcc.gnu.org/PR15869
!  220. https://gcc.gnu.org/PR16325
!  221. https://gcc.gnu.org/PR16357
!  222. https://gcc.gnu.org/PR16380
!  223. https://gcc.gnu.org/PR16407
!  224. https://gcc.gnu.org/PR16643
!  225. https://gcc.gnu.org/PR15927
!  226. https://gcc.gnu.org/PR15948
!  227. https://gcc.gnu.org/PR17019
!  228. https://gcc.gnu.org/PR16130
!  229. https://gcc.gnu.org/PR16142
!  230. https://gcc.gnu.org/PR16278
!  231. https://gcc.gnu.org/PR16414
!  232. https://gcc.gnu.org/PR16445
!  233. https://gcc.gnu.org/PR16490
!  234. https://gcc.gnu.org/PR16683
!  235. https://gcc.gnu.org/PR16195
!  236. https://gcc.gnu.org/PR16239
!  237. https://gcc.gnu.org/PR16199
!  238. https://gcc.gnu.org/PR16416
!  239. https://gcc.gnu.org/PR16430
!  240. https://gcc.gnu.org/PR16379
!  241. https://gcc.gnu.org/PR17093
!  242. https://gcc.gnu.org/PR17119
!  243. https://gcc.gnu.org/PR15928
!  244. https://gcc.gnu.org/PR16210
!  245. https://gcc.gnu.org/PR15488
!  246. https://gcc.gnu.org/PR16250
!  247. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
!  248. https://gcc.gnu.org/PR17369
!  249. https://gcc.gnu.org/PR17850
!  250. https://gcc.gnu.org/PR13948
!  251. https://gcc.gnu.org/PR14492
!  252. https://gcc.gnu.org/PR16301
!  253. https://gcc.gnu.org/PR16566
!  254. https://gcc.gnu.org/PR17023
!  255. https://gcc.gnu.org/PR17027
!  256. https://gcc.gnu.org/PR17524
!  257. https://gcc.gnu.org/PR17826
!  258. https://gcc.gnu.org/PR15526
!  259. https://gcc.gnu.org/PR16999
!  260. https://gcc.gnu.org/PR17503
!  261. https://gcc.gnu.org/PR17581
!  262. https://gcc.gnu.org/PR18129
!  263. https://gcc.gnu.org/PR10975
!  264. https://gcc.gnu.org/PR11722
!  265. https://gcc.gnu.org/PR14534
!  266. https://gcc.gnu.org/PR15172
!  267. https://gcc.gnu.org/PR15786
!  268. https://gcc.gnu.org/PR16162
!  269. https://gcc.gnu.org/PR16612
!  270. https://gcc.gnu.org/PR16715
!  271. https://gcc.gnu.org/PR16848
!  272. https://gcc.gnu.org/PR17132
!  273. https://gcc.gnu.org/PR17259
!  274. https://gcc.gnu.org/PR17327
!  275. https://gcc.gnu.org/PR17393
!  276. https://gcc.gnu.org/PR17501
!  277. https://gcc.gnu.org/PR17537
!  278. https://gcc.gnu.org/PR17585
!  279. https://gcc.gnu.org/PR17821
!  280. https://gcc.gnu.org/PR17829
!  281. https://gcc.gnu.org/PR17851
!  282. https://gcc.gnu.org/PR17976
!  283. https://gcc.gnu.org/PR18020
!  284. https://gcc.gnu.org/PR18093
!  285. https://gcc.gnu.org/PR18140
!  286. https://gcc.gnu.org/PR17541
!  287. https://gcc.gnu.org/PR17853
!  288. https://gcc.gnu.org/PR17245
!  289. https://gcc.gnu.org/PR17167
!  290. https://gcc.gnu.org/PR17277
!  291. https://gcc.gnu.org/PR17505
!  292. https://gcc.gnu.org/PR17684
!  293. https://gcc.gnu.org/PR17384
!  294. https://gcc.gnu.org/PR17770
!  295. https://gcc.gnu.org/PR11476
!  296. https://gcc.gnu.org/PR14064
!  297. https://gcc.gnu.org/PR14678
!  298. https://gcc.gnu.org/PR15583
!  299. https://gcc.gnu.org/PR15790
!  300. https://gcc.gnu.org/PR15886
!  301. https://gcc.gnu.org/PR16884
!  302. https://gcc.gnu.org/PR13841
!  303. https://gcc.gnu.org/PR15860
!  304. https://gcc.gnu.org/PR17465
!  305. https://gcc.gnu.org/PR17469
!  306. https://gcc.gnu.org/PR18138
!  307. https://gcc.gnu.org/PR15498
!  308. https://gcc.gnu.org/PR15747
!  309. https://gcc.gnu.org/PR16406
!  310. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
!  311. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
!  312. https://gcc.gnu.org/PR24688
!  313. https://gcc.gnu.org/PR17188
!  314. https://gcc.gnu.org/PR20187
!  315. https://gcc.gnu.org/PR21873
!  316. https://gcc.gnu.org/PR21899
!  317. https://gcc.gnu.org/PR22061
!  318. https://gcc.gnu.org/PR22208
!  319. https://gcc.gnu.org/PR22458
!  320. https://gcc.gnu.org/PR22589
!  321. https://gcc.gnu.org/PR24101
!  322. https://gcc.gnu.org/PR10611
!  323. https://gcc.gnu.org/PR13377
!  324. https://gcc.gnu.org/PR16002
!  325. https://gcc.gnu.org/PR17413
!  326. https://gcc.gnu.org/PR17609
!  327. https://gcc.gnu.org/PR17618
!  328. https://gcc.gnu.org/PR18124
!  329. https://gcc.gnu.org/PR18155
!  330. https://gcc.gnu.org/PR18177
!  331. https://gcc.gnu.org/PR18368
!  332. https://gcc.gnu.org/PR18378
!  333. https://gcc.gnu.org/PR18466
!  334. https://gcc.gnu.org/PR18512
!  335. https://gcc.gnu.org/PR18545
!  336. https://gcc.gnu.org/PR18738
!  337. https://gcc.gnu.org/PR18803
!  338. https://gcc.gnu.org/PR19004
!  339. https://gcc.gnu.org/PR19208
!  340. https://gcc.gnu.org/PR19253
!  341. https://gcc.gnu.org/PR19608
!  342. https://gcc.gnu.org/PR19884
!  343. https://gcc.gnu.org/PR20153
!  344. https://gcc.gnu.org/PR20563
!  345. https://gcc.gnu.org/PR20789
!  346. https://gcc.gnu.org/PR21336
!  347. https://gcc.gnu.org/PR21768
!  348. https://gcc.gnu.org/PR21853
!  349. https://gcc.gnu.org/PR21903
!  350. https://gcc.gnu.org/PR21983
!  351. https://gcc.gnu.org/PR21987
!  352. https://gcc.gnu.org/PR22153
!  353. https://gcc.gnu.org/PR22172
!  354. https://gcc.gnu.org/PR21286
!  355. https://gcc.gnu.org/PR22233
!  356. https://gcc.gnu.org/PR22508
!  357. https://gcc.gnu.org/PR22545
!  358. https://gcc.gnu.org/PR23528
!  359. https://gcc.gnu.org/PR23550
!  360. https://gcc.gnu.org/PR23586
!  361. https://gcc.gnu.org/PR23624
!  362. https://gcc.gnu.org/PR23639
!  363. https://gcc.gnu.org/PR23797
!  364. https://gcc.gnu.org/PR23965
!  365. https://gcc.gnu.org/PR24052
!  366. https://gcc.gnu.org/PR24580
!  367. https://gcc.gnu.org/PR24267
!  368. https://gcc.gnu.org/PR17810
!  369. https://gcc.gnu.org/PR17860
!  370. https://gcc.gnu.org/PR21709
!  371. https://gcc.gnu.org/PR21964
!  372. https://gcc.gnu.org/PR22167
!  373. https://gcc.gnu.org/PR22619
!  374. https://gcc.gnu.org/PR23241
!  375. https://gcc.gnu.org/PR23478
!  376. https://gcc.gnu.org/PR24470
!  377. https://gcc.gnu.org/PR24950
!  378. https://gcc.gnu.org/PR14400
!  379. https://gcc.gnu.org/PR14940
!  380. https://gcc.gnu.org/PR20239
!  381. https://gcc.gnu.org/PR15220
!  382. https://gcc.gnu.org/PR19275
!  383. https://gcc.gnu.org/PR21888
!  384. https://gcc.gnu.org/PR15342
!  385. https://gcc.gnu.org/PR23985
!  386. https://gcc.gnu.org/PR16719
!  387. https://gcc.gnu.org/PR21723
!  388. https://gcc.gnu.org/PR21841
!  389. https://gcc.gnu.org/PR23644
!  390. https://gcc.gnu.org/PR24718
!  391. https://gcc.gnu.org/PR18421
!  392. https://gcc.gnu.org/PR20621
!  393. https://gcc.gnu.org/PR18583
!  394. https://gcc.gnu.org/PR20191
!  395. https://gcc.gnu.org/PR22083
!  396. https://gcc.gnu.org/PR23070
!  397. https://gcc.gnu.org/PR23404
!  398. https://gcc.gnu.org/PR23539
!  399. https://gcc.gnu.org/PR24102
!  400. https://gcc.gnu.org/PR24465
!  401. https://gcc.gnu.org/PR19933
!  402. https://gcc.gnu.org/PR21889
!  403. https://gcc.gnu.org/PR19300
!  404. https://gcc.gnu.org/PR20301
!  405. https://gcc.gnu.org/PR20673
!  406. https://gcc.gnu.org/PR18582
!  407. https://gcc.gnu.org/PR19340
!  408. https://gcc.gnu.org/PR21716
!  409. https://gcc.gnu.org/PR24315
!  410. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
!  411. https://gcc.gnu.org/onlinedocs/
!  412. mailto:gcc-help@gcc.gnu.org
!  413. mailto:gcc@gcc.gnu.org
!  414. https://gcc.gnu.org/lists.html
!  415. https://www.fsf.org/
!  416. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/index.html
                               GCC 3.3 Release Series
--- 21019,21439 ----
     8. https://gcc.gnu.org/PR11953
     9. https://gcc.gnu.org/PR8361
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other Builtins
!   11. https://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
!   12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
!   13. https://gcc.gnu.org/bugs/#cxx_rvalbind
    14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
!   16. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
!   17. https://www.gnu.org/software/classpath/
!   18. https://www.eclipse.org/
!   19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
!   20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   24. https://gcc.gnu.org/gcc-3.4/mips-abi.html
!   25. https://gcc.gnu.org/gcc-3.4/powerpc-abi.html
!   26. https://gcc.gnu.org/gcc-3.4/sparc-abi.html
!   27. https://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
!   28. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.0
!   29. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
!   30. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.1
!   31. https://gcc.gnu.org/PR10129
!   32. https://gcc.gnu.org/PR14576
!   33. https://gcc.gnu.org/PR14760
!   34. https://gcc.gnu.org/PR14671
!   35. https://gcc.gnu.org/PR15093
!   36. https://gcc.gnu.org/PR15178
!   37. https://gcc.gnu.org/PR12753
!   38. https://gcc.gnu.org/PR13985
!   39. https://gcc.gnu.org/PR14810
!   40. https://gcc.gnu.org/PR14883
!   41. https://gcc.gnu.org/PR15044
!   42. https://gcc.gnu.org/PR15057
!   43. https://gcc.gnu.org/PR15064
!   44. https://gcc.gnu.org/PR15142
!   45. https://gcc.gnu.org/PR15159
!   46. https://gcc.gnu.org/PR15165
!   47. https://gcc.gnu.org/PR15193
!   48. https://gcc.gnu.org/PR15209
!   49. https://gcc.gnu.org/PR15227
!   50. https://gcc.gnu.org/PR15285
!   51. https://gcc.gnu.org/PR15299
!   52. https://gcc.gnu.org/PR15329
!   53. https://gcc.gnu.org/PR15550
!   54. https://gcc.gnu.org/PR15554
!   55. https://gcc.gnu.org/PR15640
!   56. https://gcc.gnu.org/PR15666
!   57. https://gcc.gnu.org/PR15696
!   58. https://gcc.gnu.org/PR15701
!   59. https://gcc.gnu.org/PR15761
!   60. https://gcc.gnu.org/PR15829
!   61. https://gcc.gnu.org/PR14538
!   62. https://gcc.gnu.org/PR12391
!   63. https://gcc.gnu.org/PR14649
!   64. https://gcc.gnu.org/PR15004
!   65. https://gcc.gnu.org/PR15749
!   66. https://gcc.gnu.org/PR10646
!   67. https://gcc.gnu.org/PR12077
!   68. https://gcc.gnu.org/PR13598
!   69. https://gcc.gnu.org/PR14211
!   70. https://gcc.gnu.org/PR14220
!   71. https://gcc.gnu.org/PR14245
!   72. https://gcc.gnu.org/PR14340
!   73. https://gcc.gnu.org/PR14600
!   74. https://gcc.gnu.org/PR14668
!   75. https://gcc.gnu.org/PR14775
!   76. https://gcc.gnu.org/PR14821
!   77. https://gcc.gnu.org/PR14930
!   78. https://gcc.gnu.org/PR14932
!   79. https://gcc.gnu.org/PR14950
!   80. https://gcc.gnu.org/PR14962
!   81. https://gcc.gnu.org/PR14975
!   82. https://gcc.gnu.org/PR15002
!   83. https://gcc.gnu.org/PR15025
!   84. https://gcc.gnu.org/PR15046
!   85. https://gcc.gnu.org/PR15069
!   86. https://gcc.gnu.org/PR15074
!   87. https://gcc.gnu.org/PR15083
!   88. https://gcc.gnu.org/PR15096
!   89. https://gcc.gnu.org/PR15287
!   90. https://gcc.gnu.org/PR15317
!   91. https://gcc.gnu.org/PR15337
!   92. https://gcc.gnu.org/PR15361
!   93. https://gcc.gnu.org/PR15412
!   94. https://gcc.gnu.org/PR15427
!   95. https://gcc.gnu.org/PR15471
!   96. https://gcc.gnu.org/PR15503
!   97. https://gcc.gnu.org/PR15507
!   98. https://gcc.gnu.org/PR15542
!   99. https://gcc.gnu.org/PR15565
!  100. https://gcc.gnu.org/PR15625
!  101. https://gcc.gnu.org/PR15629
!  102. https://gcc.gnu.org/PR15742
!  103. https://gcc.gnu.org/PR15775
!  104. https://gcc.gnu.org/PR15821
!  105. https://gcc.gnu.org/PR15862
!  106. https://gcc.gnu.org/PR15875
!  107. https://gcc.gnu.org/PR15877
!  108. https://gcc.gnu.org/PR15947
!  109. https://gcc.gnu.org/PR16020
!  110. https://gcc.gnu.org/PR16154
!  111. https://gcc.gnu.org/PR16174
!  112. https://gcc.gnu.org/PR14315
!  113. https://gcc.gnu.org/PR15151
!  114. https://gcc.gnu.org/PR7993
!  115. https://gcc.gnu.org/PR15228
!  116. https://gcc.gnu.org/PR15345
!  117. https://gcc.gnu.org/PR15945
!  118. https://gcc.gnu.org/PR15526
!  119. https://gcc.gnu.org/PR14690
!  120. https://gcc.gnu.org/PR15112
!  121. https://gcc.gnu.org/PR15067
!  122. https://gcc.gnu.org/PR1963
!  123. https://gcc.gnu.org/PR15717
!  124. https://gcc.gnu.org/PR14782
!  125. https://gcc.gnu.org/PR14828
!  126. https://gcc.gnu.org/PR15202
!  127. https://gcc.gnu.org/PR14610
!  128. https://gcc.gnu.org/PR14813
!  129. https://gcc.gnu.org/PR14857
!  130. https://gcc.gnu.org/PR15598
!  131. https://gcc.gnu.org/PR15653
!  132. https://gcc.gnu.org/PR15189
!  133. https://gcc.gnu.org/PR15331
!  134. https://gcc.gnu.org/PR16144
!  135. https://gcc.gnu.org/PR16176
!  136. https://gcc.gnu.org/PR11591
!  137. https://gcc.gnu.org/PR12028
!  138. https://gcc.gnu.org/PR14478
!  139. https://gcc.gnu.org/PR14567
!  140. https://gcc.gnu.org/PR14715
!  141. https://gcc.gnu.org/PR14902
!  142. https://gcc.gnu.org/PR14924
!  143. https://gcc.gnu.org/PR14960
!  144. https://gcc.gnu.org/PR15106
!  145. https://gcc.gnu.org/PR16026
!  146. https://gcc.gnu.org/PR15191
!  147. https://gcc.gnu.org/PR15662
!  148. https://gcc.gnu.org/PR15054
!  149. https://gcc.gnu.org/PR15783
!  150. https://gcc.gnu.org/PR15626
!  151. https://gcc.gnu.org/PR14326
!  152. https://gcc.gnu.org/PR14723
!  153. https://gcc.gnu.org/PR15290
!  154. https://gcc.gnu.org/PR15250
!  155. https://gcc.gnu.org/PR15551
!  156. https://gcc.gnu.org/PR8309
!  157. https://gcc.gnu.org/PR13250
!  158. https://gcc.gnu.org/PR13803
!  159. https://gcc.gnu.org/PR14093
!  160. https://gcc.gnu.org/PR14457
!  161. https://gcc.gnu.org/PR14542
!  162. https://gcc.gnu.org/PR15100
!  163. https://gcc.gnu.org/PR15296
!  164. https://gcc.gnu.org/PR15396
!  165. https://gcc.gnu.org/PR15782
!  166. https://gcc.gnu.org/PR11610
!  167. https://gcc.gnu.org/PR15488
!  168. https://gcc.gnu.org/PR15489
!  169. https://gcc.gnu.org/PR13928
!  170. https://gcc.gnu.org/PR14150
!  171. https://gcc.gnu.org/PR14949
!  172. https://gcc.gnu.org/PR15123
!  173. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.2
!  174. https://gcc.gnu.org/PR16469
!  175. https://gcc.gnu.org/PR16344
!  176. https://gcc.gnu.org/PR16842
!  177. https://gcc.gnu.org/PR12608
!  178. https://gcc.gnu.org/PR14492
!  179. https://gcc.gnu.org/PR15461
!  180. https://gcc.gnu.org/PR15890
!  181. https://gcc.gnu.org/PR16180
!  182. https://gcc.gnu.org/PR16224
!  183. https://gcc.gnu.org/PR16408
!  184. https://gcc.gnu.org/PR16529
!  185. https://gcc.gnu.org/PR16698
!  186. https://gcc.gnu.org/PR16706
!  187. https://gcc.gnu.org/PR16810
!  188. https://gcc.gnu.org/PR16851
!  189. https://gcc.gnu.org/PR16870
!  190. https://gcc.gnu.org/PR16904
!  191. https://gcc.gnu.org/PR16905
!  192. https://gcc.gnu.org/PR16964
!  193. https://gcc.gnu.org/PR17068
!  194. https://gcc.gnu.org/PR16366
!  195. https://gcc.gnu.org/PR15345
!  196. https://gcc.gnu.org/PR16590
!  197. https://gcc.gnu.org/PR16693
!  198. https://gcc.gnu.org/PR17078
!  199. https://gcc.gnu.org/PR13956
!  200. https://gcc.gnu.org/PR16684
!  201. https://gcc.gnu.org/PR12658
!  202. https://gcc.gnu.org/PR13092
!  203. https://gcc.gnu.org/PR15320
!  204. https://gcc.gnu.org/PR16246
!  205. https://gcc.gnu.org/PR16273
!  206. https://gcc.gnu.org/PR16401
!  207. https://gcc.gnu.org/PR16411
!  208. https://gcc.gnu.org/PR16489
!  209. https://gcc.gnu.org/PR16618
!  210. https://gcc.gnu.org/PR16637
!  211. https://gcc.gnu.org/PR16717
!  212. https://gcc.gnu.org/PR16813
!  213. https://gcc.gnu.org/PR16853
!  214. https://gcc.gnu.org/PR16889
!  215. https://gcc.gnu.org/PR16959
!  216. https://gcc.gnu.org/PR7587
!  217. https://gcc.gnu.org/PR16473
!  218. https://gcc.gnu.org/PR16478
!  219. https://gcc.gnu.org/PR10695
!  220. https://gcc.gnu.org/PR16974
!  221. https://gcc.gnu.org/PR16298
!  222. https://gcc.gnu.org/PR17113
!  223. https://gcc.gnu.org/PR14697
!  224. https://gcc.gnu.org/PR15869
!  225. https://gcc.gnu.org/PR16325
!  226. https://gcc.gnu.org/PR16357
!  227. https://gcc.gnu.org/PR16380
!  228. https://gcc.gnu.org/PR16407
!  229. https://gcc.gnu.org/PR16643
!  230. https://gcc.gnu.org/PR15927
!  231. https://gcc.gnu.org/PR15948
!  232. https://gcc.gnu.org/PR17019
!  233. https://gcc.gnu.org/PR16130
!  234. https://gcc.gnu.org/PR16142
!  235. https://gcc.gnu.org/PR16278
!  236. https://gcc.gnu.org/PR16414
!  237. https://gcc.gnu.org/PR16445
!  238. https://gcc.gnu.org/PR16490
!  239. https://gcc.gnu.org/PR16683
!  240. https://gcc.gnu.org/PR16195
!  241. https://gcc.gnu.org/PR16239
!  242. https://gcc.gnu.org/PR16199
!  243. https://gcc.gnu.org/PR16416
!  244. https://gcc.gnu.org/PR16430
!  245. https://gcc.gnu.org/PR16379
!  246. https://gcc.gnu.org/PR17093
!  247. https://gcc.gnu.org/PR17119
!  248. https://gcc.gnu.org/PR15928
!  249. https://gcc.gnu.org/PR16210
!  250. https://gcc.gnu.org/PR15488
!  251. https://gcc.gnu.org/PR16250
!  252. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.3
!  253. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
!  254. https://gcc.gnu.org/PR17369
!  255. https://gcc.gnu.org/PR17850
!  256. https://gcc.gnu.org/PR13948
!  257. https://gcc.gnu.org/PR14492
!  258. https://gcc.gnu.org/PR16301
!  259. https://gcc.gnu.org/PR16566
!  260. https://gcc.gnu.org/PR17023
!  261. https://gcc.gnu.org/PR17027
!  262. https://gcc.gnu.org/PR17524
!  263. https://gcc.gnu.org/PR17826
!  264. https://gcc.gnu.org/PR15526
!  265. https://gcc.gnu.org/PR16999
!  266. https://gcc.gnu.org/PR17503
!  267. https://gcc.gnu.org/PR17581
!  268. https://gcc.gnu.org/PR18129
!  269. https://gcc.gnu.org/PR10975
!  270. https://gcc.gnu.org/PR11722
!  271. https://gcc.gnu.org/PR14534
!  272. https://gcc.gnu.org/PR15172
!  273. https://gcc.gnu.org/PR15786
!  274. https://gcc.gnu.org/PR16162
!  275. https://gcc.gnu.org/PR16612
!  276. https://gcc.gnu.org/PR16715
!  277. https://gcc.gnu.org/PR16848
!  278. https://gcc.gnu.org/PR17132
!  279. https://gcc.gnu.org/PR17259
!  280. https://gcc.gnu.org/PR17327
!  281. https://gcc.gnu.org/PR17393
!  282. https://gcc.gnu.org/PR17501
!  283. https://gcc.gnu.org/PR17537
!  284. https://gcc.gnu.org/PR17585
!  285. https://gcc.gnu.org/PR17821
!  286. https://gcc.gnu.org/PR17829
!  287. https://gcc.gnu.org/PR17851
!  288. https://gcc.gnu.org/PR17976
!  289. https://gcc.gnu.org/PR18020
!  290. https://gcc.gnu.org/PR18093
!  291. https://gcc.gnu.org/PR18140
!  292. https://gcc.gnu.org/PR17541
!  293. https://gcc.gnu.org/PR17853
!  294. https://gcc.gnu.org/PR17245
!  295. https://gcc.gnu.org/PR17167
!  296. https://gcc.gnu.org/PR17277
!  297. https://gcc.gnu.org/PR17505
!  298. https://gcc.gnu.org/PR17684
!  299. https://gcc.gnu.org/PR17384
!  300. https://gcc.gnu.org/PR17770
!  301. https://gcc.gnu.org/PR11476
!  302. https://gcc.gnu.org/PR14064
!  303. https://gcc.gnu.org/PR14678
!  304. https://gcc.gnu.org/PR15583
!  305. https://gcc.gnu.org/PR15790
!  306. https://gcc.gnu.org/PR15886
!  307. https://gcc.gnu.org/PR16884
!  308. https://gcc.gnu.org/PR13841
!  309. https://gcc.gnu.org/PR15860
!  310. https://gcc.gnu.org/PR17465
!  311. https://gcc.gnu.org/PR17469
!  312. https://gcc.gnu.org/PR18138
!  313. https://gcc.gnu.org/PR15498
!  314. https://gcc.gnu.org/PR15747
!  315. https://gcc.gnu.org/PR16406
!  316. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.4
!  317. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
!  318. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.5
!  319. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
!  320. https://gcc.gnu.org/PR24688
!  321. https://gcc.gnu.org/PR17188
!  322. https://gcc.gnu.org/PR20187
!  323. https://gcc.gnu.org/PR21873
!  324. https://gcc.gnu.org/PR21899
!  325. https://gcc.gnu.org/PR22061
!  326. https://gcc.gnu.org/PR22208
!  327. https://gcc.gnu.org/PR22458
!  328. https://gcc.gnu.org/PR22589
!  329. https://gcc.gnu.org/PR24101
!  330. https://gcc.gnu.org/PR10611
!  331. https://gcc.gnu.org/PR13377
!  332. https://gcc.gnu.org/PR16002
!  333. https://gcc.gnu.org/PR17413
!  334. https://gcc.gnu.org/PR17609
!  335. https://gcc.gnu.org/PR17618
!  336. https://gcc.gnu.org/PR18124
!  337. https://gcc.gnu.org/PR18155
!  338. https://gcc.gnu.org/PR18177
!  339. https://gcc.gnu.org/PR18368
!  340. https://gcc.gnu.org/PR18378
!  341. https://gcc.gnu.org/PR18466
!  342. https://gcc.gnu.org/PR18512
!  343. https://gcc.gnu.org/PR18545
!  344. https://gcc.gnu.org/PR18738
!  345. https://gcc.gnu.org/PR18803
!  346. https://gcc.gnu.org/PR19004
!  347. https://gcc.gnu.org/PR19208
!  348. https://gcc.gnu.org/PR19253
!  349. https://gcc.gnu.org/PR19608
!  350. https://gcc.gnu.org/PR19884
!  351. https://gcc.gnu.org/PR20153
!  352. https://gcc.gnu.org/PR20563
!  353. https://gcc.gnu.org/PR20789
!  354. https://gcc.gnu.org/PR21336
!  355. https://gcc.gnu.org/PR21768
!  356. https://gcc.gnu.org/PR21853
!  357. https://gcc.gnu.org/PR21903
!  358. https://gcc.gnu.org/PR21983
!  359. https://gcc.gnu.org/PR21987
!  360. https://gcc.gnu.org/PR22153
!  361. https://gcc.gnu.org/PR22172
!  362. https://gcc.gnu.org/PR21286
!  363. https://gcc.gnu.org/PR22233
!  364. https://gcc.gnu.org/PR22508
!  365. https://gcc.gnu.org/PR22545
!  366. https://gcc.gnu.org/PR23528
!  367. https://gcc.gnu.org/PR23550
!  368. https://gcc.gnu.org/PR23586
!  369. https://gcc.gnu.org/PR23624
!  370. https://gcc.gnu.org/PR23639
!  371. https://gcc.gnu.org/PR23797
!  372. https://gcc.gnu.org/PR23965
!  373. https://gcc.gnu.org/PR24052
!  374. https://gcc.gnu.org/PR24580
!  375. https://gcc.gnu.org/PR24267
!  376. https://gcc.gnu.org/PR17810
!  377. https://gcc.gnu.org/PR17860
!  378. https://gcc.gnu.org/PR21709
!  379. https://gcc.gnu.org/PR21964
!  380. https://gcc.gnu.org/PR22167
!  381. https://gcc.gnu.org/PR22619
!  382. https://gcc.gnu.org/PR23241
!  383. https://gcc.gnu.org/PR23478
!  384. https://gcc.gnu.org/PR24470
!  385. https://gcc.gnu.org/PR24950
!  386. https://gcc.gnu.org/PR14400
!  387. https://gcc.gnu.org/PR14940
!  388. https://gcc.gnu.org/PR20239
!  389. https://gcc.gnu.org/PR15220
!  390. https://gcc.gnu.org/PR19275
!  391. https://gcc.gnu.org/PR21888
!  392. https://gcc.gnu.org/PR15342
!  393. https://gcc.gnu.org/PR23985
!  394. https://gcc.gnu.org/PR16719
!  395. https://gcc.gnu.org/PR21723
!  396. https://gcc.gnu.org/PR21841
!  397. https://gcc.gnu.org/PR23644
!  398. https://gcc.gnu.org/PR24718
!  399. https://gcc.gnu.org/PR18421
!  400. https://gcc.gnu.org/PR20621
!  401. https://gcc.gnu.org/PR18583
!  402. https://gcc.gnu.org/PR20191
!  403. https://gcc.gnu.org/PR22083
!  404. https://gcc.gnu.org/PR23070
!  405. https://gcc.gnu.org/PR23404
!  406. https://gcc.gnu.org/PR23539
!  407. https://gcc.gnu.org/PR24102
!  408. https://gcc.gnu.org/PR24465
!  409. https://gcc.gnu.org/PR19933
!  410. https://gcc.gnu.org/PR21889
!  411. https://gcc.gnu.org/PR19300
!  412. https://gcc.gnu.org/PR20301
!  413. https://gcc.gnu.org/PR20673
!  414. https://gcc.gnu.org/PR18582
!  415. https://gcc.gnu.org/PR19340
!  416. https://gcc.gnu.org/PR21716
!  417. https://gcc.gnu.org/PR24315
!  418. https://gcc.gnu.org/gcc-3.4/changes.html#GCC3.4.6
!  419. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
!  420. https://gcc.gnu.org/onlinedocs/
!  421. mailto:gcc-help@gcc.gnu.org
!  422. mailto:gcc@gcc.gnu.org
!  423. https://gcc.gnu.org/lists.html
!  424. https://www.fsf.org/
!  425. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/index.html
                               GCC 3.3 Release Series
*************** New Targets and Target Specific Improvem
*** 20314,20320 ****
            + Sibcall optimizations added.
       * The support for H8 Tiny is added to the H8/300 port with -mn.
  
! Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.3. Unless there is activity to revive them, the next release of GCC
--- 21739,21745 ----
            + Sibcall optimizations added.
       * The support for H8 Tiny is added to the H8/300 port with -mn.
  
! [8]Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.3. Unless there is activity to revive them, the next release of GCC
*************** GCC 3.3
*** 20416,20734 ****
  
      bootstrap failures
  
!      * [8]10140 cross compiler build failures: missing __mempcpy (DUP:
!        [9]10198,[10]10338)
  
      Internal compiler errors (multi-platform)
  
!      * [11]3581 large string causes segmentation fault in cc1
!      * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
!      * [13]5533 (c++) ICE when processing std::accumulate(begin, end,
         init, invalid_op)
!      * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
!      * [15]6412 (c++) ICE in retrieve_specialization
!      * [16]6620 (c++) partial template specialization causes an ICE
         (segmentation fault)
!      * [17]6663 (c++) ICE with attribute aligned
!      * [18]7068 ICE with incomplete types
!      * [19]7083 (c++) ICE using -gstabs with dodgy class derivation
!      * [20]7647 (c++) ICE when data member has the name of the enclosing
         class
!      * [21]7675 ICE in fixup_var_refs_1
!      * [22]7718 'complex' template instantiation causes ICE
!      * [23]8116 (c++) ICE in member template function
!      * [24]8358 (ada) Ada compiler accesses freed memory, crashes
!      * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation
         fault
!      * [26]8564 (c++) ICE in find_function_data, in function.c
!      * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
!      * [28]8766 (c++) ICE after failed initialization of static template
         variable
!      * [29]8803 ICE in instantiate_virtual_regs_1, in function.c
!      * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
!      * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class
         definition
!      * [32]9216 (c++) ICE on missing template parameter
!      * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
!      * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO
         loop
!      * [35]9429 (c++) ICE in template instantiation with a pointered new
         operator
!      * [36]9516 Internal error when using a big array
!      * [37]9600 (c++) ICE with typedefs in template class
!      * [38]9629 (c++) virtual inheritance segfault
!      * [39]9672 (c++) ICE: Error reporting routines re-entered
!      * [40]9749 (c++) ICE in write_expression on invalid function
         prototype
!      * [41]9794 (fortran) ICE: floating point exception during constant
         folding
!      * [42]9829 (c++) Missing colon in nested namespace usage causes ICE
!      * [43]9916 (c++) ICE with noreturn function in ?: statement
!      * [44]9936 ICE with local function and variable-length 2d array
!      * [45]10262 (c++) cc1plus crashes with large generated code
!      * [46]10278 (c++) ICE in parser for invalid code
!      * [47]10446 (c++) ICE on definition of nonexistent member function of
         nested class in a class template
!      * [48]10451 (c++) ICE in grokdeclarator on spurious mutable
         declaration
!      * [49]10506 (c++) ICE in build_new at cp/init.c with
         -fkeep-inline-functions and multiple inheritance
!      * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the
         precision of the declared type
  
      Optimization bugs
  
!      * [51]2001 Inordinately long compile times in reload CSE regs
!      * [52]2391 Exponential compilation time explosion in combine
!      * [53]2960 Duplicate loop conditions even with -Os
!      * [54]4046 redundant conditional branch
!      * [55]6405 Loop-unrolling related performance regressions
!      * [56]6798 very long compile time with large case-statement
!      * [57]6871 const objects shouldn't be moved to .bss
!      * [58]6909 problem w/ -Os on modified loop-2c.c test case
!      * [59]7189 gcc -O2 -Wall does not print ``control reaches end of
         non-void function'' warning
!      * [60]7642 optimization problem with signbit()
!      * [61]8634 incorrect code for inlining of memcpy under -O2
!      * [62]8750 Cygwin prolog generation erroneously emitting __alloca as
         regular function call
  
      C front end
  
!      * [63]2161 long if-else cascade overflows parser stack
!      * [64]4319 short accepted on typedef'd char
!      * [65]8602 incorrect line numbers in warning messages when using
         inline functions
!      * [66]9177 -fdump-translation-unit: C front end deletes function_decl
         AST nodes and breaks debugging dumps
!      * [67]9853 miscompilation of non-constant structure initializer
  
      c++ compiler and library
  
!      * [68]45 legal template specialization code is rejected (DUP:
!        [69]3784)
!      * [70]764 lookup failure: friend operator and dereferencing a pointer
!        and templates (DUP: [71]5116)
!      * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP:
         2863)
!      * [73]3663 G++ doesn't check access control during template
         instantiation
!      * [74]3797 gcc fails to emit explicit specialization of a template
         member
!      * [75]3948 Two destructors are called when no copy destructor is
         defined (ABI change)
!      * [76]4137 Conversion operator within template is not accepted
!      * [77]4361 bogus ambiguity taking the address of a member template
!      * [78]4802 g++ accepts illegal template code (access to private
!        member; DUP: [79]5837)
!      * [80]4803 inline function is used but never defined, and g++ does
         not object
!      * [81]5094 Partial specialization cannot be friend?
!      * [82]5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66
!      * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run
         time
!      * [84]7015 certain __asm__ constructs rejected
!      * [85]7086 compile time regression (quadratic behavior in
         fixup_var_refs)
!      * [86]7099 G++ doesn't set the noreturn attribute on std::exit and
         std::abort
!      * [87]7247 copy constructor missing when inlining enabled (invalid
         optimization?)
!      * [88]7441 string array initialization compilation time regression
         from seconds to minutes
!      * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
!      * [90]7804 bad printing of floating point constant in warning message
!      * [91]8099 Friend classes and template specializations
!      * [92]8117 member function pointers and multiple inheritance
!      * [93]8205 using declaration and multiple inheritance
!      * [94]8645 unnecessary non-zero checks in stl_tree.h
!      * [95]8724 explicit destructor call for incomplete class allowed
!      * [96]8805 compile time regression with many member variables
!      * [97]8691 -O3 and -fno-implicit-templates are incompatible
!      * [98]8700 unhelpful error message for binding temp to reference
!      * [99]8724 explicit destructor call for incomplete class allowed
!      * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
!      * [101]9016 Failure to consistently constant fold "constant" C++
         objects
!      * [102]9053 g++ confused about ambiguity of overloaded function
         templates
!      * [103]9152 undefined virtual thunks
!      * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
!      * [105]9297 data corruption due to codegen bug (when copying.)
!      * [106]9318 i/ostream::operator>>/<<(streambuf*) broken
!      * [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf
!      * [108]9400 bogus -Wshadow warning: shadowed declaration of this in
         local classes
!      * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
!      * [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
!      * [112]9474 GCC freezes in compiling a weird code mixing <iostream>
         and <iostream.h>
!      * [113]9548 Incorrect results from setf(ios::fixed) and precision(-1)
!        [114][DR 231]
!      * [115]9555 ostream inserters fail to set badbit on exception
!      * [116]9561 ostream inserters rethrow exception of wrong type
!      * [117]9563 ostream::sentry returns true after a failed preparation
!      * [118]9582 one-definition rule violation in std::allocator
!      * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
!      * [120]9683 bug in initialization chains for static const variables
         from template classes
!      * [121]9791 -Woverloaded-virtual reports hiding of destructor
!      * [122]9817 collate::compare doesn't handle nul characters
!      * [123]9825 filebuf::sputbackc breaks sbumpc
!      * [124]9826 operator>>(basic_istream, basic_string) fails to compile
         with custom traits
!      * [125]9924 Multiple using statements for builtin functions not
         allowed
!      * [126]9946 destructor is not called for temporary object
!      * [127]9964 filebuf::close() sometimes fails to close file
!      * [128]9988 filebuf::overflow writes EOF to file
!      * [129]10033 optimization breaks polymorphic references w/ typeid
         operator
!      * [130]10097 filebuf::underflow drops characters
!      * [131]10132 filebuf destructor can throw exceptions
!      * [132]10180 gcc fails to warn about non-inlined function
!      * [133]10199 method parametrized by template does not work everywhere
!      * [134]10300 use of array-new (nothrow) in segfaults on NULL return
!      * [135]10427 Stack corruption with variable-length automatic arrays
         and virtual destructors
!      * [136]10503 Compilation never stops in fixed_type_or_null
  
      Objective-C
  
!      * [137]5956 selectors aren't matched properly when added to the
         selector table
  
      Fortran compiler and library
  
!      * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
         detect
!      * [139]3924 g77 generates code that is rejected by GAS if COFF debug
         info requested
!      * [140]5634 doc: explain that configure --prefix=~/... does not work
!      * [141]6367 multiple repeat counts confuse namelist read into array
!      * [142]6491 Logical operations error on logicals when using
         -fugly-logint
!      * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
!      * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
         on irix6.5
!      * [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should
         assume a direct access file
!      * [146]7278 g77 "bug"; the executable misbehaves (with -O2
         -fno-automatic)
!      * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
!      * [148]7388 Incorrect output with 0-based array of characters
!      * [149]8587 Double complex zero ** double precision number -> NaN
         instead of zero
!      * [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning:
         unknown register name line-length-none
!      * [151]10197 Direct access files not unformatted by default
  
      Java compiler and library
  
!      * [152]6005 gcj fails to build rhug on alpha
!      * [153]6389 System.getProperty("") should always throw an
         IllegalArgumentException
!      * [154]6576 java.util.ResourceBundle.getResource ignores locale
!      * [155]6652 new java.io.File("").getCanonicalFile() throws exception
!      * [156]7060 getMethod() doesn't search super interface
!      * [157]7073 bytecode interpreter gives wrong answer for interface
         getSuperclass()
!      * [158]7180 possible bug in
         javax.naming.spi.NamingManager.getPlusPath()
!      * [159]7416 java.security startup refs "GNU libgcj.security"
!      * [160]7570 Runtime.exec with null envp: child doesn't inherit parent
!        env (DUP: [161]7578)
!      * [162]7611 Internal error while compiling libjava with -O
!      * [163]7709 NullPointerException in _Jv_ResolvePoolEntry
!      * [164]7766 ZipInputStream.available returns 0 immediately after
         construction
!      * [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public
!      * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
!      * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
!      * [168]8234 ZipInputStream chokes when InputStream.read() returns
         small chunks
!      * [169]8415 reflection bug: exception info for Method
!      * [170]8481 java.Random.nextInt(int) may return negative
!      * [171]8593 Error reading GZIPped files with BufferedReader
!      * [172]8759 java.beans.Introspector has no flushCaches() or
         flushFromCaches() methods
!      * [173]8997 spin() calls Thread.sleep
!      * [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd
         instead of the root content of C:
!      * [175]9254 java::lang::Object::wait(), threads-win32.cc returns
         wrong return codes
!      * [176]9271 Severe bias in java.security.SecureRandom
  
      Ada compiler and library
  
!      * [177]6767 make gnatlib-shared fails on -laddr2line
!      * [178]9911 gnatmake fails to link when GCC configured with
         --with-sjlj-exceptions=yes
!      * [179]10020 Can't bootstrap gcc on AIX with Ada enabled
!      * [180]10546 Ada tasking not working on Red Hat 9
  
      preprocessor
  
!      * [181]7029 preprocessor should ignore #warning with -M
  
      ARM-specific
  
!      * [182]2903 [arm] Optimization bug with long long arithmetic
!      * [183]7873 arm-linux-gcc fails when assigning address to a bit field
  
      FreeBSD-specific
  
!      * [184]7680 float functions undefined in math.h/cmath with #define
         _XOPEN_SOURCE
  
      HP-UX or HP-PA-specific
  
!      * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
!      * [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to
         fputc_unlocked
!      * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
  
      m68hc11-specific
  
!      * [188]6744 Bad assembler code generated: reference to pseudo
         register z
!      * [189]7361 Internal compiler error in reload_cse_simplify_operands,
         in reload1.c
  
      MIPS-specific
  
!      * [190]9496 [mips-linux] bug in optimizer?
  
      PowerPC-specific
  
!      * [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of
         space
!      * [192]8480 reload ICEs for LAPACK code on powerpc64-linux
!      * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
!      * [194]10315 [powerpc] ICE: in extract_insn, in recog.c
  
      SPARC-specific
  
!      * [195]10267 (documentation) Wrong build instructions for
         *-*-solaris2*
  
      x86-specific (Intel/AMD)
  
!      * [196]7916 ICE in instantiate_virtual_register_1
!      * [197]7926 (c++) i486 instructions in header files make c++ programs
         crash on i386
!      * [198]8555 ICE in gen_split_1231
!      * [199]8994 ICE with -O -march=pentium4
!      * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs
!      * [201]9806 ICE in inline assembly with -fPIC flag
!      * [202]10077 gcc -msse2 generates movd to move dwords between xmm
         regs
!      * [203]10233 64-bit comparison only comparing bottom 32-bits
!      * [204]10286 type-punning doesn't work with __m64 and -O
!      * [205]10308 [x86] ICE with -O -fgcse or -O2
       __________________________________________________________________
  
! GCC 3.3.1
  
    Bug Fixes
  
--- 21841,22159 ----
  
      bootstrap failures
  
!      * [9]10140 cross compiler build failures: missing __mempcpy (DUP:
!        [10]10198,[11]10338)
  
      Internal compiler errors (multi-platform)
  
!      * [12]3581 large string causes segmentation fault in cc1
!      * [13]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
!      * [14]5533 (c++) ICE when processing std::accumulate(begin, end,
         init, invalid_op)
!      * [15]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
!      * [16]6412 (c++) ICE in retrieve_specialization
!      * [17]6620 (c++) partial template specialization causes an ICE
         (segmentation fault)
!      * [18]6663 (c++) ICE with attribute aligned
!      * [19]7068 ICE with incomplete types
!      * [20]7083 (c++) ICE using -gstabs with dodgy class derivation
!      * [21]7647 (c++) ICE when data member has the name of the enclosing
         class
!      * [22]7675 ICE in fixup_var_refs_1
!      * [23]7718 'complex' template instantiation causes ICE
!      * [24]8116 (c++) ICE in member template function
!      * [25]8358 (ada) Ada compiler accesses freed memory, crashes
!      * [26]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation
         fault
!      * [27]8564 (c++) ICE in find_function_data, in function.c
!      * [28]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
!      * [29]8766 (c++) ICE after failed initialization of static template
         variable
!      * [30]8803 ICE in instantiate_virtual_regs_1, in function.c
!      * [31]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
!      * [32]8906 (c++) ICE (Segmentation fault) when parsing nested-class
         definition
!      * [33]9216 (c++) ICE on missing template parameter
!      * [34]9261 (c++) ICE in arg_assoc, in cp/decl2.c
!      * [35]9263 (fortran) ICE caused by invalid PARAMETER in implied DO
         loop
!      * [36]9429 (c++) ICE in template instantiation with a pointered new
         operator
!      * [37]9516 Internal error when using a big array
!      * [38]9600 (c++) ICE with typedefs in template class
!      * [39]9629 (c++) virtual inheritance segfault
!      * [40]9672 (c++) ICE: Error reporting routines re-entered
!      * [41]9749 (c++) ICE in write_expression on invalid function
         prototype
!      * [42]9794 (fortran) ICE: floating point exception during constant
         folding
!      * [43]9829 (c++) Missing colon in nested namespace usage causes ICE
!      * [44]9916 (c++) ICE with noreturn function in ?: statement
!      * [45]9936 ICE with local function and variable-length 2d array
!      * [46]10262 (c++) cc1plus crashes with large generated code
!      * [47]10278 (c++) ICE in parser for invalid code
!      * [48]10446 (c++) ICE on definition of nonexistent member function of
         nested class in a class template
!      * [49]10451 (c++) ICE in grokdeclarator on spurious mutable
         declaration
!      * [50]10506 (c++) ICE in build_new at cp/init.c with
         -fkeep-inline-functions and multiple inheritance
!      * [51]10549 (c++) ICE in store_bit_field on bitfields that exceed the
         precision of the declared type
  
      Optimization bugs
  
!      * [52]2001 Inordinately long compile times in reload CSE regs
!      * [53]2391 Exponential compilation time explosion in combine
!      * [54]2960 Duplicate loop conditions even with -Os
!      * [55]4046 redundant conditional branch
!      * [56]6405 Loop-unrolling related performance regressions
!      * [57]6798 very long compile time with large case-statement
!      * [58]6871 const objects shouldn't be moved to .bss
!      * [59]6909 problem w/ -Os on modified loop-2c.c test case
!      * [60]7189 gcc -O2 -Wall does not print ``control reaches end of
         non-void function'' warning
!      * [61]7642 optimization problem with signbit()
!      * [62]8634 incorrect code for inlining of memcpy under -O2
!      * [63]8750 Cygwin prolog generation erroneously emitting __alloca as
         regular function call
  
      C front end
  
!      * [64]2161 long if-else cascade overflows parser stack
!      * [65]4319 short accepted on typedef'd char
!      * [66]8602 incorrect line numbers in warning messages when using
         inline functions
!      * [67]9177 -fdump-translation-unit: C front end deletes function_decl
         AST nodes and breaks debugging dumps
!      * [68]9853 miscompilation of non-constant structure initializer
  
      c++ compiler and library
  
!      * [69]45 legal template specialization code is rejected (DUP:
!        [70]3784)
!      * [71]764 lookup failure: friend operator and dereferencing a pointer
!        and templates (DUP: [72]5116)
!      * [73]2862 gcc accepts invalid explicit instantiation syntax (DUP:
         2863)
!      * [74]3663 G++ doesn't check access control during template
         instantiation
!      * [75]3797 gcc fails to emit explicit specialization of a template
         member
!      * [76]3948 Two destructors are called when no copy destructor is
         defined (ABI change)
!      * [77]4137 Conversion operator within template is not accepted
!      * [78]4361 bogus ambiguity taking the address of a member template
!      * [79]4802 g++ accepts illegal template code (access to private
!        member; DUP: [80]5837)
!      * [81]4803 inline function is used but never defined, and g++ does
         not object
!      * [82]5094 Partial specialization cannot be friend?
!      * [83]5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66
!      * [84]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run
         time
!      * [85]7015 certain __asm__ constructs rejected
!      * [86]7086 compile time regression (quadratic behavior in
         fixup_var_refs)
!      * [87]7099 G++ doesn't set the noreturn attribute on std::exit and
         std::abort
!      * [88]7247 copy constructor missing when inlining enabled (invalid
         optimization?)
!      * [89]7441 string array initialization compilation time regression
         from seconds to minutes
!      * [90]7768 __PRETTY_FUNCTION__ for template destructor is wrong
!      * [91]7804 bad printing of floating point constant in warning message
!      * [92]8099 Friend classes and template specializations
!      * [93]8117 member function pointers and multiple inheritance
!      * [94]8205 using declaration and multiple inheritance
!      * [95]8645 unnecessary non-zero checks in stl_tree.h
!      * [96]8724 explicit destructor call for incomplete class allowed
!      * [97]8805 compile time regression with many member variables
!      * [98]8691 -O3 and -fno-implicit-templates are incompatible
!      * [99]8700 unhelpful error message for binding temp to reference
!      * [100]8724 explicit destructor call for incomplete class allowed
!      * [101]8949 numeric_limits<>::denorm_min() and is_iec559 problems
!      * [102]9016 Failure to consistently constant fold "constant" C++
         objects
!      * [103]9053 g++ confused about ambiguity of overloaded function
         templates
!      * [104]9152 undefined virtual thunks
!      * [105]9182 basic_filebuf<> does not report errors in codecvt<>::out
!      * [106]9297 data corruption due to codegen bug (when copying.)
!      * [107]9318 i/ostream::operator>>/<<(streambuf*) broken
!      * [108]9320 Incorrect usage of traits_type::int_type in stdio_filebuf
!      * [109]9400 bogus -Wshadow warning: shadowed declaration of this in
         local classes
!      * [110]9424 i/ostream::operator>>/<<(streambuf*) drops characters
!      * [111]9425 filebuf::pbackfail broken (DUP: [112]9439)
!      * [113]9474 GCC freezes in compiling a weird code mixing <iostream>
         and <iostream.h>
!      * [114]9548 Incorrect results from setf(ios::fixed) and precision(-1)
!        [115][DR 231]
!      * [116]9555 ostream inserters fail to set badbit on exception
!      * [117]9561 ostream inserters rethrow exception of wrong type
!      * [118]9563 ostream::sentry returns true after a failed preparation
!      * [119]9582 one-definition rule violation in std::allocator
!      * [120]9622 __PRETTY_FUNCTION__ incorrect in template destructors
!      * [121]9683 bug in initialization chains for static const variables
         from template classes
!      * [122]9791 -Woverloaded-virtual reports hiding of destructor
!      * [123]9817 collate::compare doesn't handle nul characters
!      * [124]9825 filebuf::sputbackc breaks sbumpc
!      * [125]9826 operator>>(basic_istream, basic_string) fails to compile
         with custom traits
!      * [126]9924 Multiple using statements for builtin functions not
         allowed
!      * [127]9946 destructor is not called for temporary object
!      * [128]9964 filebuf::close() sometimes fails to close file
!      * [129]9988 filebuf::overflow writes EOF to file
!      * [130]10033 optimization breaks polymorphic references w/ typeid
         operator
!      * [131]10097 filebuf::underflow drops characters
!      * [132]10132 filebuf destructor can throw exceptions
!      * [133]10180 gcc fails to warn about non-inlined function
!      * [134]10199 method parametrized by template does not work everywhere
!      * [135]10300 use of array-new (nothrow) in segfaults on NULL return
!      * [136]10427 Stack corruption with variable-length automatic arrays
         and virtual destructors
!      * [137]10503 Compilation never stops in fixed_type_or_null
  
      Objective-C
  
!      * [138]5956 selectors aren't matched properly when added to the
         selector table
  
      Fortran compiler and library
  
!      * [139]1832 list directed i/o overflow hangs, -fbounds-check doesn't
         detect
!      * [140]3924 g77 generates code that is rejected by GAS if COFF debug
         info requested
!      * [141]5634 doc: explain that configure --prefix=~/... does not work
!      * [142]6367 multiple repeat counts confuse namelist read into array
!      * [143]6491 Logical operations error on logicals when using
         -fugly-logint
!      * [144]6742 Generation of C++ Prototype for FORTRAN and extern "C"
!      * [145]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
         on irix6.5
!      * [146]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should
         assume a direct access file
!      * [147]7278 g77 "bug"; the executable misbehaves (with -O2
         -fno-automatic)
!      * [148]7384 DATE_AND_TIME milliseconds field inactive on Windows
!      * [149]7388 Incorrect output with 0-based array of characters
!      * [150]8587 Double complex zero ** double precision number -> NaN
         instead of zero
!      * [151]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning:
         unknown register name line-length-none
!      * [152]10197 Direct access files not unformatted by default
  
      Java compiler and library
  
!      * [153]6005 gcj fails to build rhug on alpha
!      * [154]6389 System.getProperty("") should always throw an
         IllegalArgumentException
!      * [155]6576 java.util.ResourceBundle.getResource ignores locale
!      * [156]6652 new java.io.File("").getCanonicalFile() throws exception
!      * [157]7060 getMethod() doesn't search super interface
!      * [158]7073 bytecode interpreter gives wrong answer for interface
         getSuperclass()
!      * [159]7180 possible bug in
         javax.naming.spi.NamingManager.getPlusPath()
!      * [160]7416 java.security startup refs "GNU libgcj.security"
!      * [161]7570 Runtime.exec with null envp: child doesn't inherit parent
!        env (DUP: [162]7578)
!      * [163]7611 Internal error while compiling libjava with -O
!      * [164]7709 NullPointerException in _Jv_ResolvePoolEntry
!      * [165]7766 ZipInputStream.available returns 0 immediately after
         construction
!      * [166]7785 Calendar.getTimeInMillis/setTimeInMillis should be public
!      * [167]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
!      * [168]8142 '$' in class names vs. dlopen 'dynamic string tokens'
!      * [169]8234 ZipInputStream chokes when InputStream.read() returns
         small chunks
!      * [170]8415 reflection bug: exception info for Method
!      * [171]8481 java.Random.nextInt(int) may return negative
!      * [172]8593 Error reading GZIPped files with BufferedReader
!      * [173]8759 java.beans.Introspector has no flushCaches() or
         flushFromCaches() methods
!      * [174]8997 spin() calls Thread.sleep
!      * [175]9253 on win32, java.io.File.listFiles("C:\\") returns pwd
         instead of the root content of C:
!      * [176]9254 java::lang::Object::wait(), threads-win32.cc returns
         wrong return codes
!      * [177]9271 Severe bias in java.security.SecureRandom
  
      Ada compiler and library
  
!      * [178]6767 make gnatlib-shared fails on -laddr2line
!      * [179]9911 gnatmake fails to link when GCC configured with
         --with-sjlj-exceptions=yes
!      * [180]10020 Can't bootstrap gcc on AIX with Ada enabled
!      * [181]10546 Ada tasking not working on Red Hat 9
  
      preprocessor
  
!      * [182]7029 preprocessor should ignore #warning with -M
  
      ARM-specific
  
!      * [183]2903 [arm] Optimization bug with long long arithmetic
!      * [184]7873 arm-linux-gcc fails when assigning address to a bit field
  
      FreeBSD-specific
  
!      * [185]7680 float functions undefined in math.h/cmath with #define
         _XOPEN_SOURCE
  
      HP-UX or HP-PA-specific
  
!      * [186]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
!      * [187]9986 [HP-UX] Incorrect transformation of fputs_unlocked to
         fputc_unlocked
!      * [188]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
  
      m68hc11-specific
  
!      * [189]6744 Bad assembler code generated: reference to pseudo
         register z
!      * [190]7361 Internal compiler error in reload_cse_simplify_operands,
         in reload1.c
  
      MIPS-specific
  
!      * [191]9496 [mips-linux] bug in optimizer?
  
      PowerPC-specific
  
!      * [192]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of
         space
!      * [193]8480 reload ICEs for LAPACK code on powerpc64-linux
!      * [194]8784 [AIX] Internal compiler error in simplify_gen_subreg
!      * [195]10315 [powerpc] ICE: in extract_insn, in recog.c
  
      SPARC-specific
  
!      * [196]10267 (documentation) Wrong build instructions for
         *-*-solaris2*
  
      x86-specific (Intel/AMD)
  
!      * [197]7916 ICE in instantiate_virtual_register_1
!      * [198]7926 (c++) i486 instructions in header files make c++ programs
         crash on i386
!      * [199]8555 ICE in gen_split_1231
!      * [200]8994 ICE with -O -march=pentium4
!      * [201]9426 ICE with -fssa -funroll-loops -fprofile-arcs
!      * [202]9806 ICE in inline assembly with -fPIC flag
!      * [203]10077 gcc -msse2 generates movd to move dwords between xmm
         regs
!      * [204]10233 64-bit comparison only comparing bottom 32-bits
!      * [205]10286 type-punning doesn't work with __m64 and -O
!      * [206]10308 [x86] ICE with -O -fgcse or -O2
       __________________________________________________________________
  
! [207]GCC 3.3.1
  
    Bug Fixes
  
*************** GCC 3.3.1
*** 20739,21002 ****
  
      Bootstrap failures
  
!      * [206]11272 [Solaris] make bootstrap fails while building libstdc++
  
      Internal compiler errors (multi-platform)
  
!      * [207]5754 ICE on invalid nested template class
!      * [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64
         and --enable-checking
!      * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c
!      * [210]7053 (c++) ICE when declaring a function already defined as a
         friend method of a template class
!      * [211]8164 (c++) ICE when using different const expressions as
         template parameter
!      * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c
!      * [213]9559 (c++) ICE with invalid initialization of a static const
!      * [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c
         when redeclaring a static member variable
!      * [215]9864 (fortran) ICE in add_abstract_origin_attribute, in
         dwarfout.c with -g -O -finline-functions
!      * [216]10432 (c++) ICE in poplevel, in cp/decl.c
!      * [217]10475 ICE in subreg_highpart_offset for code with long long
!      * [218]10635 (c++) ICE when dereferencing an incomplete type casted
         from a void pointer
!      * [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while
         instantiating static member variables
!      * [220]10700 ICE in copy_to_mode_reg on 64-bit targets
!      * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
!      * [222]10796 (c++) ICE when defining an enum with two values: -1 and
         MAX_INT_64BIT
!      * [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x
         sched.c
!      * [224]10939 (c++) ICE with template code
!      * [225]10956 (c++) ICE when specializing a template member function
         of a template class, in tsubst, in cp/pt.c
!      * [226]11041 (c++) ICE: const myclass &x = *x; (when operator*()
         defined)
!      * [227]11059 (c++) ICE with empty union
!      * [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with
         -O2 -fnon-call-exceptions
!      * [229]11105 (c++) ICE in mangle_conv_op_name_for_type
!      * [230]11149 (c++) ICE on error when instantiation with call function
         of a base type
!      * [231]11228 (c++) ICE on new-expression using array operator new and
         default-initialization
!      * [232]11282 (c++) Infinite memory usage after syntax error
!      * [233]11301 (fortran) ICE with -fno-globals
!      * [234]11308 (c++) ICE when using an enum type name as if it were a
         class or namespace
!      * [235]11473 (c++) ICE with -gstabs when empty struct inherits from
         an empty struct
!      * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR
!      * [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c:
         template member functions
  
      Optimization bugs
  
!      * [238]11198 -O2 -frename-registers generates wrong code (aliasing
         problem)
!      * [239]11304 Wrong code production with -fomit-frame-pointer
!      * [240]11381 volatile memory access optimized away
!      * [241]11536 [strength-reduce] -O2 optimization produces wrong code
!      * [242]11557 constant folding bug generates wrong code
  
      C front end
  
!      * [243]5897 No warning for statement after return
!      * [244]11279 DWARF-2 output mishandles large enums
  
      Preprocessor bugs
  
!      * [245]11022 no warning for non-compatible macro redefinition
  
      C++ compiler and library
  
!      * [246]2330 static_cast<>() to a private base is allowed
!      * [247]5388 Incorrect message "operands to ?: have different types"
!      * [248]5390 Libiberty fails to demangle multi-digit template
         parameters
!      * [249]7877 Incorrect parameter passing to specializations of member
         function templates
!      * [250]9393 Anonymous namespaces and compiling the same file twice
!      * [251]10032 -pedantic converts some errors to warnings
!      * [252]10468 const typeof(x) is non-const, but only in templates
!      * [253]10527 confused error message with "new int()" parameter
         initializer
!      * [254]10679 parameter MIN_INLINE_INSNS is not honored
!      * [255]10682 gcc chokes on a typedef for an enum inside a class
         template
!      * [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of
         0.
!      * [257]10845 template member function (with nested template as
         parameter) cannot be called anymore if another unrelated template
         member function is defined
!      * [258]10849 Cannot define an out-of-class specialization of a
         private nested template class
!      * [259]10888 Suppress -Winline warnings for system headers
!      * [260]10929 -Winline warns about functions for which no definition
         is visible
!      * [261]10931 valid conversion static_cast<const unsigned
         int&>(lvalue-of-type-int) is rejected
!      * [262]10940 Bad code with explicit specialization
!      * [263]10968 If member function implicitly instantiated, explicit
         instantiation of class fails to instantiate it
!      * [264]10990 Cannot convert with dynamic_cast<> to a private base
         class from within a member function
!      * [265]11039 Bad interaction between implicit typename deprecation
         and friendship
!      * [266]11062 (libstdc++) avoid __attribute__ ((unused)); say
         "__unused__" instead
!      * [267]11095 C++ iostream manipulator causes segfault when called
         with negative argument
!      * [268]11098 g++ doesn't emit complete debugging information for
         local variables in destructors
!      * [269]11137 GNU/Linux shared library constructors not called unless
         there's one global object
!      * [270]11154 spurious ambiguity report for template class
         specialization
!      * [271]11329 Compiler cannot find user defined implicit typecast
!      * [272]11332 Spurious error with casts in ?: expression
!      * [273]11431 static_cast behavior with subclasses when default
         constructor available
!      * [274]11528 money_get facet does not accept "$.00" as valid
!      * [275]11546 Type lookup problems in out-of-line definition of a
         class doubly nested from a template class
!      * [276]11567 C++ code containing templated member function with same
         name as pure virtual member function results in linking failure
!      * [277]11645 Failure to deal with using and private inheritance
  
      Java compiler and library
  
!      * [278]5179 Qualified static field access doesn't initialize its
         class
!      * [279]8204 gcj -O2 to native reorders certain instructions
         improperly
!      * [280]10838 java.io.ObjectInputStream syntax error
!      * [281]10886 The RMI registry that comes with GCJ does not work
         correctly
!      * [282]11349 JNDI URL context factories not located correctly
  
      x86-specific (Intel/AMD)
  
!      * [283]4823 ICE on inline assembly code
!      * [284]8878 miscompilation with -O and SSE
!      * [285]9815 (c++ library) atomicity.h - fails to compile with -O3
         -masm=intel
!      * [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads,
         in reload1.c
!      * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
!      * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source
!      * [289]11044 [x86] out of range loop instructions for FP code on K6
!      * [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE
         built-ins
!      * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC"
         is used
  
      SPARC- or Solaris- specific
  
!      * [292]9362 solaris 'as' dies when fed .s and "-gstabs"
!      * [293]10142 [SPARC64] gcc produces wrong code when passing
         structures by value
!      * [294]10663 New configure check aborts with Sun tools.
!      * [295]10835 combinatorial explosion in scheduler on HyperSPARC
!      * [296]10876 ICE in calculate_giv_inc when building KDE
!      * [297]10955 wrong code at -O3 for structure argument in context of
         structure return
!      * [298]11018 -mcpu=ultrasparc busts tar-1.13.25
!      * [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x
         Linux kernel
  
      ia64 specific
  
!      * [300]10907 gcc violates the ia64 ABI (GP must be preserved)
!      * [301]11320 scheduler bug (in machine depended reorganization pass)
!      * [302]11599 bug with conditional and __builtin_prefetch
  
      PowerPC specific
  
!      * [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem
         during loop)
!      * [304]10871 error in rs6000_stack_info save_size computation
!      * [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse
         cures it
  
      m68k-specific
  
!      * [306]7594 [m68k] ICE on legal code associated with simplify-rtx
!      * [307]10557 [m68k] ICE in subreg_offset_representable_p
!      * [308]11054 [m68k] ICE in reg_overlap_mentioned_p
  
      ARM-specific
  
!      * [309]10834 [arm] GCC 3.3 still generates incorrect instructions for
         functions with __attribute__ ((interrupt ("IRQ")))
!      * [310]10842 [arm] Clobbered link register is copied to pc under
         certain circumstances
!      * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes
!      * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno
         (3.4)
  
      MIPS-specific
  
!      * [313]11084 ICE in propagate_one_insn, in flow.c
  
      SH-specific
  
!      * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf
!      * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
!      * [316]11096 i686-linux to sh-linux cross compiler fails to compile
         C++ files
  
      GNU/Linux (or Hurd?) specific
  
!      * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
  
      UnixWare specific
  
!      * [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare
         7.1.1
  
      Cygwin (or mingw) specific
  
!      * [319]5287 ICE with dllimport attribute
!      * [320]10148 [MingW/CygWin] Compiler dumps core
  
      DJGPP specific
  
!      * [321]8787 GCC fails to emit .intel_syntax when invoked with
         -masm=intel on DJGPP
  
      Darwin (and MacOS X) specific
  
!      * [322]10900 trampolines crash
  
      Documentation
  
!      * [323]1607 (c++) Format attributes on methods undocumented
!      * [324]4252 Invalid option `-fdump-translation-unit'
!      * [325]4490 Clarify restrictions on -m96bit-long-double,
         -m128bit-long-double
!      * [326]10355 document an issue with regparm attribute on some systems
         (e.g. Solaris)
!      * [327]10726 (fortran) Documentation for function "IDate Intrinsic
         (Unix)" is wrong
!      * [328]10805 document bug in old version of Sun assembler
!      * [329]10815 warn against GNU binutils on AIX
!      * [330]10877 document need for newer binutils on i?86-*-linux-gnu
!      * [331]11280 Manual incorrect with respect to -freorder-blocks
!      * [332]11466 Document -mlittle-endian and its restrictions for the
         sparc64 port
  
      Testsuite bugs (compiler itself is not affected)
  
!      * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
         report failure
!      * [334]10810 gcc-3.3 fails make check: buffer overrun in
         test_demangle.c
       __________________________________________________________________
  
! GCC 3.3.2
  
    Bug Fixes
  
--- 22164,22427 ----
  
      Bootstrap failures
  
!      * [208]11272 [Solaris] make bootstrap fails while building libstdc++
  
      Internal compiler errors (multi-platform)
  
!      * [209]5754 ICE on invalid nested template class
!      * [210]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64
         and --enable-checking
!      * [211]6949 (c++) ICE in tsubst_decl, in cp/pt.c
!      * [212]7053 (c++) ICE when declaring a function already defined as a
         friend method of a template class
!      * [213]8164 (c++) ICE when using different const expressions as
         template parameter
!      * [214]8384 (c++) ICE in is_base_type, in dwarf2out.c
!      * [215]9559 (c++) ICE with invalid initialization of a static const
!      * [216]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c
         when redeclaring a static member variable
!      * [217]9864 (fortran) ICE in add_abstract_origin_attribute, in
         dwarfout.c with -g -O -finline-functions
!      * [218]10432 (c++) ICE in poplevel, in cp/decl.c
!      * [219]10475 ICE in subreg_highpart_offset for code with long long
!      * [220]10635 (c++) ICE when dereferencing an incomplete type casted
         from a void pointer
!      * [221]10661 (c++) ICE in instantiate_decl, in cp/pt.c while
         instantiating static member variables
!      * [222]10700 ICE in copy_to_mode_reg on 64-bit targets
!      * [223]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
!      * [224]10796 (c++) ICE when defining an enum with two values: -1 and
         MAX_INT_64BIT
!      * [225]10890 ICE in merge_assigned_reloads building Linux 2.4.2x
         sched.c
!      * [226]10939 (c++) ICE with template code
!      * [227]10956 (c++) ICE when specializing a template member function
         of a template class, in tsubst, in cp/pt.c
!      * [228]11041 (c++) ICE: const myclass &x = *x; (when operator*()
         defined)
!      * [229]11059 (c++) ICE with empty union
!      * [230]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with
         -O2 -fnon-call-exceptions
!      * [231]11105 (c++) ICE in mangle_conv_op_name_for_type
!      * [232]11149 (c++) ICE on error when instantiation with call function
         of a base type
!      * [233]11228 (c++) ICE on new-expression using array operator new and
         default-initialization
!      * [234]11282 (c++) Infinite memory usage after syntax error
!      * [235]11301 (fortran) ICE with -fno-globals
!      * [236]11308 (c++) ICE when using an enum type name as if it were a
         class or namespace
!      * [237]11473 (c++) ICE with -gstabs when empty struct inherits from
         an empty struct
!      * [238]11503 (c++) ICE when instantiating template with ADDR_EXPR
!      * [239]11513 (c++) ICE in push_template_decl_real, in cp/pt.c:
         template member functions
  
      Optimization bugs
  
!      * [240]11198 -O2 -frename-registers generates wrong code (aliasing
         problem)
!      * [241]11304 Wrong code production with -fomit-frame-pointer
!      * [242]11381 volatile memory access optimized away
!      * [243]11536 [strength-reduce] -O2 optimization produces wrong code
!      * [244]11557 constant folding bug generates wrong code
  
      C front end
  
!      * [245]5897 No warning for statement after return
!      * [246]11279 DWARF-2 output mishandles large enums
  
      Preprocessor bugs
  
!      * [247]11022 no warning for non-compatible macro redefinition
  
      C++ compiler and library
  
!      * [248]2330 static_cast<>() to a private base is allowed
!      * [249]5388 Incorrect message "operands to ?: have different types"
!      * [250]5390 Libiberty fails to demangle multi-digit template
         parameters
!      * [251]7877 Incorrect parameter passing to specializations of member
         function templates
!      * [252]9393 Anonymous namespaces and compiling the same file twice
!      * [253]10032 -pedantic converts some errors to warnings
!      * [254]10468 const typeof(x) is non-const, but only in templates
!      * [255]10527 confused error message with "new int()" parameter
         initializer
!      * [256]10679 parameter MIN_INLINE_INSNS is not honored
!      * [257]10682 gcc chokes on a typedef for an enum inside a class
         template
!      * [258]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of
         0.
!      * [259]10845 template member function (with nested template as
         parameter) cannot be called anymore if another unrelated template
         member function is defined
!      * [260]10849 Cannot define an out-of-class specialization of a
         private nested template class
!      * [261]10888 Suppress -Winline warnings for system headers
!      * [262]10929 -Winline warns about functions for which no definition
         is visible
!      * [263]10931 valid conversion static_cast<const unsigned
         int&>(lvalue-of-type-int) is rejected
!      * [264]10940 Bad code with explicit specialization
!      * [265]10968 If member function implicitly instantiated, explicit
         instantiation of class fails to instantiate it
!      * [266]10990 Cannot convert with dynamic_cast<> to a private base
         class from within a member function
!      * [267]11039 Bad interaction between implicit typename deprecation
         and friendship
!      * [268]11062 (libstdc++) avoid __attribute__ ((unused)); say
         "__unused__" instead
!      * [269]11095 C++ iostream manipulator causes segfault when called
         with negative argument
!      * [270]11098 g++ doesn't emit complete debugging information for
         local variables in destructors
!      * [271]11137 GNU/Linux shared library constructors not called unless
         there's one global object
!      * [272]11154 spurious ambiguity report for template class
         specialization
!      * [273]11329 Compiler cannot find user defined implicit typecast
!      * [274]11332 Spurious error with casts in ?: expression
!      * [275]11431 static_cast behavior with subclasses when default
         constructor available
!      * [276]11528 money_get facet does not accept "$.00" as valid
!      * [277]11546 Type lookup problems in out-of-line definition of a
         class doubly nested from a template class
!      * [278]11567 C++ code containing templated member function with same
         name as pure virtual member function results in linking failure
!      * [279]11645 Failure to deal with using and private inheritance
  
      Java compiler and library
  
!      * [280]5179 Qualified static field access doesn't initialize its
         class
!      * [281]8204 gcj -O2 to native reorders certain instructions
         improperly
!      * [282]10838 java.io.ObjectInputStream syntax error
!      * [283]10886 The RMI registry that comes with GCJ does not work
         correctly
!      * [284]11349 JNDI URL context factories not located correctly
  
      x86-specific (Intel/AMD)
  
!      * [285]4823 ICE on inline assembly code
!      * [286]8878 miscompilation with -O and SSE
!      * [287]9815 (c++ library) atomicity.h - fails to compile with -O3
         -masm=intel
!      * [288]10402 (inline assembly) [x86] ICE in merge_assigned_reloads,
         in reload1.c
!      * [289]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
!      * [290]10673 ICE for x86-64 on freebsd libc vfprintf.c source
!      * [291]11044 [x86] out of range loop instructions for FP code on K6
!      * [292]11089 ICE: instantiate_virtual_regs_lossage while using SSE
         built-ins
!      * [293]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC"
         is used
  
      SPARC- or Solaris- specific
  
!      * [294]9362 solaris 'as' dies when fed .s and "-gstabs"
!      * [295]10142 [SPARC64] gcc produces wrong code when passing
         structures by value
!      * [296]10663 New configure check aborts with Sun tools.
!      * [297]10835 combinatorial explosion in scheduler on HyperSPARC
!      * [298]10876 ICE in calculate_giv_inc when building KDE
!      * [299]10955 wrong code at -O3 for structure argument in context of
         structure return
!      * [300]11018 -mcpu=ultrasparc busts tar-1.13.25
!      * [301]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x
         Linux kernel
  
      ia64 specific
  
!      * [302]10907 gcc violates the ia64 ABI (GP must be preserved)
!      * [303]11320 scheduler bug (in machine depended reorganization pass)
!      * [304]11599 bug with conditional and __builtin_prefetch
  
      PowerPC specific
  
!      * [305]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem
         during loop)
!      * [306]10871 error in rs6000_stack_info save_size computation
!      * [307]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse
         cures it
  
      m68k-specific
  
!      * [308]7594 [m68k] ICE on legal code associated with simplify-rtx
!      * [309]10557 [m68k] ICE in subreg_offset_representable_p
!      * [310]11054 [m68k] ICE in reg_overlap_mentioned_p
  
      ARM-specific
  
!      * [311]10834 [arm] GCC 3.3 still generates incorrect instructions for
         functions with __attribute__ ((interrupt ("IRQ")))
!      * [312]10842 [arm] Clobbered link register is copied to pc under
         certain circumstances
!      * [313]11052 [arm] noce_process_if_block() can lose REG_INC notes
!      * [314]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno
         (3.4)
  
      MIPS-specific
  
!      * [315]11084 ICE in propagate_one_insn, in flow.c
  
      SH-specific
  
!      * [316]10331 can't compile c++ part of gcc cross compiler for sh-elf
!      * [317]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
!      * [318]11096 i686-linux to sh-linux cross compiler fails to compile
         C++ files
  
      GNU/Linux (or Hurd?) specific
  
!      * [319]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
  
      UnixWare specific
  
!      * [320]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare
         7.1.1
  
      Cygwin (or mingw) specific
  
!      * [321]5287 ICE with dllimport attribute
!      * [322]10148 [MingW/CygWin] Compiler dumps core
  
      DJGPP specific
  
!      * [323]8787 GCC fails to emit .intel_syntax when invoked with
         -masm=intel on DJGPP
  
      Darwin (and MacOS X) specific
  
!      * [324]10900 trampolines crash
  
      Documentation
  
!      * [325]1607 (c++) Format attributes on methods undocumented
!      * [326]4252 Invalid option `-fdump-translation-unit'
!      * [327]4490 Clarify restrictions on -m96bit-long-double,
         -m128bit-long-double
!      * [328]10355 document an issue with regparm attribute on some systems
         (e.g. Solaris)
!      * [329]10726 (fortran) Documentation for function "IDate Intrinsic
         (Unix)" is wrong
!      * [330]10805 document bug in old version of Sun assembler
!      * [331]10815 warn against GNU binutils on AIX
!      * [332]10877 document need for newer binutils on i?86-*-linux-gnu
!      * [333]11280 Manual incorrect with respect to -freorder-blocks
!      * [334]11466 Document -mlittle-endian and its restrictions for the
         sparc64 port
  
      Testsuite bugs (compiler itself is not affected)
  
!      * [335]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
         report failure
!      * [336]10810 gcc-3.3 fails make check: buffer overrun in
         test_demangle.c
       __________________________________________________________________
  
! [337]GCC 3.3.2
  
    Bug Fixes
  
*************** GCC 3.3.2
*** 21007,21161 ****
  
      Bootstrap failures and problems
  
!      * [335]8336 [SCO5] bootstrap config still tries to use COFF options
!      * [336]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with
         --enable-threads=posix
!      * [337]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
!      * [338]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare
         7.1.1)
!      * [339]11687 xstormy16-elf build fails in libf2c
!      * [340]12263 [SGI IRIX] bootstrap fails during compile of
         libf2c/libI77/backspace.c
!      * [341]12490 buffer overflow in scan-decls.c (during Solaris 9
         fix-header processing)
  
      Internal compiler errors (multi-platform)
  
!      * [342]7277 Casting integers to vector types causes ICE
!      * [343]7939 (c++) ICE on invalid function template specialization
!      * [344]11063 (c++) ICE on parsing initialization list of const array
         member
!      * [345]11207 ICE with negative index in array element designator
!      * [346]11522 (fortran) g77 dwarf-2 ICE in
         add_abstract_origin_attribute
!      * [347]11595 (c++) ICE on duplicate label definition
!      * [348]11646 (c++) ICE in commit_one_edge_insertion with
         -fnon-call-exceptions -fgcse -O
!      * [349]11665 ICE in struct initializer when taking address
!      * [350]11852 (c++) ICE with bad struct initializer.
!      * [351]11878 (c++) ICE in cp_expr_size
!      * [352]11883 ICE with any -O on mercury-generated C code
!      * [353]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in
         cp/typeck2.c when applying typeid operator to template template
         parameter
!      * [354]12146 ICE in lookup_template_function, in cp/pt.c
!      * [355]12215 ICE in make_label_edge with -fnon-call-exceptions
         -fno-gcse -O2
!      * [356]12369 (c++) ICE with templates and friends
!      * [357]12446 ICE in emit_move_insn on complicated array reference
!      * [358]12510 ICE in final_scan_insn
!      * [359]12544 ICE with large parameters used in nested functions
  
      C and optimization bugs
  
!      * [360]9862 spurious warnings with -W -finline-functions
!      * [361]10962 lookup_field is a linear search on a linked list (can be
         slow if large struct)
!      * [362]11370 -Wunreachable-code gives false complaints
!      * [363]11637 invalid assembly with -fnon-call-exceptions
!      * [364]11885 Problem with bitfields in packed structs
!      * [365]12082 Inappropriate unreachable code warnings
!      * [366]12180 Inline optimization fails for variadic function
!      * [367]12340 loop unroller + gcse produces wrong code
  
      C++ compiler and library
  
!      * [368]3907 nested template parameter collides with member name
!      * [369]5293 confusing message when binding a temporary to a reference
!      * [370]5296 [DR115] Pointers to functions and to template functions
         behave differently in deduction
!      * [371]7939 ICE on function template specialization
!      * [372]8656 Unable to assign function with __attribute__ and pointer
         return type to an appropriate variable
!      * [373]10147 Confusing error message for invalid template function
         argument
!      * [374]11400 std::search_n() makes assumptions about Size parameter
!      * [375]11409 issues with using declarations, overloading, and
         built-in functions
!      * [376]11740 ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle
         multiple bits in mask
!      * [377]11786 operator() call on variable in other namespace not
         recognized
!      * [378]11867 static_cast ignores ambiguity
!      * [379]11928 bug with conversion operators that are typedefs
!      * [380]12114 Uninitialized memory accessed in dtor
!      * [381]12163 static_cast + explicit constructor regression
!      * [382]12181 Wrong code with comma operator and c++
!      * [383]12236 regparm and fastcall messes up parameters
!      * [384]12266 incorrect instantiation of unneeded template during
         overload resolution
!      * [385]12296 istream::peek() doesn't set eofbit
!      * [386]12298 [sjlj exceptions] Stack unwind destroys
         not-yet-constructed object
!      * [387]12369 ICE with templates and friends
!      * [388]12337 apparently infinite loop in g++
!      * [389]12344 stdcall attribute ignored if function returns a pointer
!      * [390]12451 missing(late) class forward declaration in cxxabi.h
!      * [391]12486 g++ accepts invalid use of a qualified name
  
      x86 specific (Intel/AMD)
  
!      * [392]8869 [x86 MMX] ICE with const variable optimization and MMX
         builtins
!      * [393]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions
         -O2
!      * [394]11689 g++3.3 emits un-assembleable code for k6 architecture
!      * [395]12116 [k6] Invalid assembly output values with X-MAME code
!      * [396]12070 ICE converting between double and long double with
         -msoft-float
  
      ia64-specific
  
!      * [397]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
!      * [398]11535 __builtin_return_address may not work on ia64
!      * [399]11693 [ia64] ICE in gen_nop_type
!      * [400]12224 [ia64] Thread-local storage doesn't work
  
      PowerPC-specific
  
!      * [401]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux
         kernel
!      * [402]11319 loop miscompiled on ppc32
!      * [403]11949 ICE Compiler segfault with ffmpeg -maltivec code
  
      SPARC-specific
  
!      * [404]11662 wrong code for expr. with cast to long long and
         exclusive or
!      * [405]11965 invalid assembler code for a shift < 32 operation
!      * [406]12301 (c++) stack corruption when a returned expression throws
         an exception
  
      Alpha-specific
  
!      * [407]11717 [alpha-linux] unrecognizable insn compiling for.c of
         kernel 2.4.22-pre8
  
      HPUX-specific
  
!      * [408]11313 problem with #pragma weak and static inline functions
!      * [409]11712 __STDC_EXT__ not defined for C++ by default anymore?
  
      Solaris specific
  
!      * [410]12166 Profiled programs crash if PROFDIR is set
  
      Solaris-x86 specific
  
!      * [411]12101 i386 Solaris no longer works with GNU as?
  
      Miscellaneous embedded target-specific bugs
  
!      * [412]10988 [m32r-elf] wrong blockmove code with -O3
!      * [413]11805 [h8300-unknown-coff] [H8300] ICE for simple code with
         -O2
!      * [414]11902 [sh4] spec file improperly inserts rpath even when none
         needed
!      * [415]11903 [sh4] -pthread fails to link due to error in spec file
         on sh4
       __________________________________________________________________
  
! GCC 3.3.3
  
    Minor features
  
--- 22432,22586 ----
  
      Bootstrap failures and problems
  
!      * [338]8336 [SCO5] bootstrap config still tries to use COFF options
!      * [339]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with
         --enable-threads=posix
!      * [340]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
!      * [341]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare
         7.1.1)
!      * [342]11687 xstormy16-elf build fails in libf2c
!      * [343]12263 [SGI IRIX] bootstrap fails during compile of
         libf2c/libI77/backspace.c
!      * [344]12490 buffer overflow in scan-decls.c (during Solaris 9
         fix-header processing)
  
      Internal compiler errors (multi-platform)
  
!      * [345]7277 Casting integers to vector types causes ICE
!      * [346]7939 (c++) ICE on invalid function template specialization
!      * [347]11063 (c++) ICE on parsing initialization list of const array
         member
!      * [348]11207 ICE with negative index in array element designator
!      * [349]11522 (fortran) g77 dwarf-2 ICE in
         add_abstract_origin_attribute
!      * [350]11595 (c++) ICE on duplicate label definition
!      * [351]11646 (c++) ICE in commit_one_edge_insertion with
         -fnon-call-exceptions -fgcse -O
!      * [352]11665 ICE in struct initializer when taking address
!      * [353]11852 (c++) ICE with bad struct initializer.
!      * [354]11878 (c++) ICE in cp_expr_size
!      * [355]11883 ICE with any -O on mercury-generated C code
!      * [356]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in
         cp/typeck2.c when applying typeid operator to template template
         parameter
!      * [357]12146 ICE in lookup_template_function, in cp/pt.c
!      * [358]12215 ICE in make_label_edge with -fnon-call-exceptions
         -fno-gcse -O2
!      * [359]12369 (c++) ICE with templates and friends
!      * [360]12446 ICE in emit_move_insn on complicated array reference
!      * [361]12510 ICE in final_scan_insn
!      * [362]12544 ICE with large parameters used in nested functions
  
      C and optimization bugs
  
!      * [363]9862 spurious warnings with -W -finline-functions
!      * [364]10962 lookup_field is a linear search on a linked list (can be
         slow if large struct)
!      * [365]11370 -Wunreachable-code gives false complaints
!      * [366]11637 invalid assembly with -fnon-call-exceptions
!      * [367]11885 Problem with bitfields in packed structs
!      * [368]12082 Inappropriate unreachable code warnings
!      * [369]12180 Inline optimization fails for variadic function
!      * [370]12340 loop unroller + gcse produces wrong code
  
      C++ compiler and library
  
!      * [371]3907 nested template parameter collides with member name
!      * [372]5293 confusing message when binding a temporary to a reference
!      * [373]5296 [DR115] Pointers to functions and to template functions
         behave differently in deduction
!      * [374]7939 ICE on function template specialization
!      * [375]8656 Unable to assign function with __attribute__ and pointer
         return type to an appropriate variable
!      * [376]10147 Confusing error message for invalid template function
         argument
!      * [377]11400 std::search_n() makes assumptions about Size parameter
!      * [378]11409 issues with using declarations, overloading, and
         built-in functions
!      * [379]11740 ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle
         multiple bits in mask
!      * [380]11786 operator() call on variable in other namespace not
         recognized
!      * [381]11867 static_cast ignores ambiguity
!      * [382]11928 bug with conversion operators that are typedefs
!      * [383]12114 Uninitialized memory accessed in dtor
!      * [384]12163 static_cast + explicit constructor regression
!      * [385]12181 Wrong code with comma operator and c++
!      * [386]12236 regparm and fastcall messes up parameters
!      * [387]12266 incorrect instantiation of unneeded template during
         overload resolution
!      * [388]12296 istream::peek() doesn't set eofbit
!      * [389]12298 [sjlj exceptions] Stack unwind destroys
         not-yet-constructed object
!      * [390]12369 ICE with templates and friends
!      * [391]12337 apparently infinite loop in g++
!      * [392]12344 stdcall attribute ignored if function returns a pointer
!      * [393]12451 missing(late) class forward declaration in cxxabi.h
!      * [394]12486 g++ accepts invalid use of a qualified name
  
      x86 specific (Intel/AMD)
  
!      * [395]8869 [x86 MMX] ICE with const variable optimization and MMX
         builtins
!      * [396]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions
         -O2
!      * [397]11689 g++3.3 emits un-assembleable code for k6 architecture
!      * [398]12116 [k6] Invalid assembly output values with X-MAME code
!      * [399]12070 ICE converting between double and long double with
         -msoft-float
  
      ia64-specific
  
!      * [400]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
!      * [401]11535 __builtin_return_address may not work on ia64
!      * [402]11693 [ia64] ICE in gen_nop_type
!      * [403]12224 [ia64] Thread-local storage doesn't work
  
      PowerPC-specific
  
!      * [404]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux
         kernel
!      * [405]11319 loop miscompiled on ppc32
!      * [406]11949 ICE Compiler segfault with ffmpeg -maltivec code
  
      SPARC-specific
  
!      * [407]11662 wrong code for expr. with cast to long long and
         exclusive or
!      * [408]11965 invalid assembler code for a shift < 32 operation
!      * [409]12301 (c++) stack corruption when a returned expression throws
         an exception
  
      Alpha-specific
  
!      * [410]11717 [alpha-linux] unrecognizable insn compiling for.c of
         kernel 2.4.22-pre8
  
      HPUX-specific
  
!      * [411]11313 problem with #pragma weak and static inline functions
!      * [412]11712 __STDC_EXT__ not defined for C++ by default anymore?
  
      Solaris specific
  
!      * [413]12166 Profiled programs crash if PROFDIR is set
  
      Solaris-x86 specific
  
!      * [414]12101 i386 Solaris no longer works with GNU as?
  
      Miscellaneous embedded target-specific bugs
  
!      * [415]10988 [m32r-elf] wrong blockmove code with -O3
!      * [416]11805 [h8300-unknown-coff] [H8300] ICE for simple code with
         -O2
!      * [417]11902 [sh4] spec file improperly inserts rpath even when none
         needed
!      * [418]11903 [sh4] -pthread fails to link due to error in spec file
         on sh4
       __________________________________________________________________
  
! [419]GCC 3.3.3
  
    Minor features
  
*************** GCC 3.3.3
*** 21175,21233 ****
  
      Bootstrap failures and issues
  
!      * [416]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
!      * [417]12399 boehm-gc fails (when building a cross compiler): libtool
         unable to infer tagged configuration
!      * [418]13068 mklibgcc.in doesn't handle multi-level multilib
         subdirectories properly
  
      Internal compiler errors (multi-platform)
  
!      * [419]10060 ICE (stack overflow) on huge file (300k lines) due to
         recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
!      * [420]10555 (c++) ICE on undefined template argument
!      * [421]10706 (c++) ICE in mangle_class_name_for_template
!      * [422]11496 (fortran) error in flow_loops_find when -funroll-loops
         active
!      * [423]11741 ICE in pre_insert_copy_insn, in gcse.c
!      * [424]12440 GCC crashes during compilation of quicktime4linux 2.0.0
!      * [425]12632 (fortran) -fbounds-check ICE
!      * [426]12712 (c++) ICE on short legit C++ code fragment with gcc
         3.3.2
!      * [427]12726 (c++) ICE (segfault) on trivial code
!      * [428]12890 (c++) ICE on compilation of class with throwing method
!      * [429]12900 (c++) ICE in rtl_verify_flow_info_1
!      * [430]13060 (fortran) ICE in fixup_var_refs_1, in function.c on
         correct code with -O2 -fno-force-mem
!      * [431]13289 (c++) ICE in regenerate_decl_from_template on recursive
         template
!      * [432]13318 ICE: floating point exception in the loop optimizer
!      * [433]13392 (c++) ICE in convert_from_eh_region_ranges_1, in
         except.c
!      * [434]13574 (c++) invalid array default initializer in class lets
         gcc consume all memory and die
!      * [435]13475 ICE on SIMD variables with partial value initialization
!      * [436]13797 (c++) ICE on invalid template parameter
!      * [437]13824 (java) gcj SEGV with simple .java program
  
      C and optimization bugs
  
!      * [438]8776 loop invariants are not removed (most likely)
!      * [439]10339 [sparc,ppc,ppc64] Invalid optimization: replacing
         strncmp by memcmp
!      * [440]11350 undefined labels with -Os -fPIC
!      * [441]12826 Optimizer removes reference through volatile pointer
!      * [442]12500 stabs debug info: void no longer a predefined / builtin
         type
!      * [443]12941 builtin-bitops-1.c miscompilation (latent bug)
!      * [444]12953 tree inliner bug (in inline_forbidden_p) and fix
!      * [445]13041 linux-2.6/sound/core/oss/rate.c miscompiled
!      * [446]13507 spurious printf format warning
!      * [447]13382 Type information for const pointer disappears during
         optimization.
!      * [448]13394 noreturn attribute ignored on recursive invokation
!      * [449]13400 Compiled code crashes storing to read-only location
!      * [450]13521 Endless loop in calculate_global_regs_live
  
      C++ compiler and library
  
--- 22600,22658 ----
  
      Bootstrap failures and issues
  
!      * [420]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
!      * [421]12399 boehm-gc fails (when building a cross compiler): libtool
         unable to infer tagged configuration
!      * [422]13068 mklibgcc.in doesn't handle multi-level multilib
         subdirectories properly
  
      Internal compiler errors (multi-platform)
  
!      * [423]10060 ICE (stack overflow) on huge file (300k lines) due to
         recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
!      * [424]10555 (c++) ICE on undefined template argument
!      * [425]10706 (c++) ICE in mangle_class_name_for_template
!      * [426]11496 (fortran) error in flow_loops_find when -funroll-loops
         active
!      * [427]11741 ICE in pre_insert_copy_insn, in gcse.c
!      * [428]12440 GCC crashes during compilation of quicktime4linux 2.0.0
!      * [429]12632 (fortran) -fbounds-check ICE
!      * [430]12712 (c++) ICE on short legit C++ code fragment with gcc
         3.3.2
!      * [431]12726 (c++) ICE (segfault) on trivial code
!      * [432]12890 (c++) ICE on compilation of class with throwing method
!      * [433]12900 (c++) ICE in rtl_verify_flow_info_1
!      * [434]13060 (fortran) ICE in fixup_var_refs_1, in function.c on
         correct code with -O2 -fno-force-mem
!      * [435]13289 (c++) ICE in regenerate_decl_from_template on recursive
         template
!      * [436]13318 ICE: floating point exception in the loop optimizer
!      * [437]13392 (c++) ICE in convert_from_eh_region_ranges_1, in
         except.c
!      * [438]13574 (c++) invalid array default initializer in class lets
         gcc consume all memory and die
!      * [439]13475 ICE on SIMD variables with partial value initialization
!      * [440]13797 (c++) ICE on invalid template parameter
!      * [441]13824 (java) gcj SEGV with simple .java program
  
      C and optimization bugs
  
!      * [442]8776 loop invariants are not removed (most likely)
!      * [443]10339 [sparc,ppc,ppc64] Invalid optimization: replacing
         strncmp by memcmp
!      * [444]11350 undefined labels with -Os -fPIC
!      * [445]12826 Optimizer removes reference through volatile pointer
!      * [446]12500 stabs debug info: void no longer a predefined / builtin
         type
!      * [447]12941 builtin-bitops-1.c miscompilation (latent bug)
!      * [448]12953 tree inliner bug (in inline_forbidden_p) and fix
!      * [449]13041 linux-2.6/sound/core/oss/rate.c miscompiled
!      * [450]13507 spurious printf format warning
!      * [451]13382 Type information for const pointer disappears during
         optimization.
!      * [452]13394 noreturn attribute ignored on recursive invokation
!      * [453]13400 Compiled code crashes storing to read-only location
!      * [454]13521 Endless loop in calculate_global_regs_live
  
      C++ compiler and library
  
*************** GCC 3.3.3
*** 21235,21464 ****
     that the ISO C++ standards committee has made concerning several defect
     reports (DRs). Links in the list below point to detailed discussion of
     the relevant defect report.
!      * [451]2094 unimplemented: use of `ptrmem_cst' in template type
         unification
!      * [452]2294 using declaration confusion
!      * [453]5050 template instantiation depth exceeds limit: recursion
         problem?
!      * [454]9371 Bad exception handling in
         i/ostream::operator>>/<<(streambuf*)
!      * [455]9546 bad exception handling in ostream members
!      * [456]10081 basic_ios::_M_cache_locale leaves NULL members in the
         face of unknown locales
!      * [457]10093 [458][DR 61] Setting failbit in exceptions doesn't work
!      * [459]10095 istream::operator>>(int&) sets ios::badbit when
         ios::failbit is set.
!      * [460]11554 Warning about reordering of initializers doesn't mention
         location of constructor
!      * [461]12297 istream::sentry::sentry() handles eof() incorrectly.
!      * [462]12352 Exception safety problems in src/localename.cc
!      * [463]12438 Memory leak in locale::combine()
!      * [464]12540 Memory leak in locale::locale(const char*)
!      * [465]12594 DRs [466]60 [TC] and [467]63 [TC] not implemented
!      * [468]12657 Resolution of [469]DR 292 (WP) still unimplemented
!      * [470]12696 memory eating infinite loop in diagnostics (error
         recovery problem)
!      * [471]12815 Code compiled with optimization behaves unexpectedly
!      * [472]12862 Conflicts between typedefs/enums and namespace member
         declarations
!      * [473]12926 Wrong value after assignment in initialize list using
         bit-fields
!      * [474]12967 Resolution of [475]DR 300 [WP] still unimplemented
!      * [476]12971 Resolution of [477]DR 328 [WP] still unimplemented
!      * [478]13007 basic_streambuf::pubimbue, imbue wrong
!      * [479]13009 Implicitly-defined assignment operator writes to wrong
         memory
!      * [480]13057 regparm attribute not applied to destructor
!      * [481]13070 -Wformat option ignored in g++
!      * [482]13081 forward template declarations in <complex> let inlining
         fail
!      * [483]13239 Assertion does not seem to work correctly anymore
!      * [484]13262 "xxx is private within this context" when initializing a
         self-contained template class
!      * [485]13290 simple typo in concept checking for std::generate_n
!      * [486]13323 Template code does not compile in presence of typedef
!      * [487]13369 __verify_grouping (and __add_grouping?) not correct
!      * [488]13371 infinite loop with packed struct and inlining
!      * [489]13445 Template argument replacement "dereferences" a typedef
!      * [490]13461 Fails to access protected-ctor from public constant
!      * [491]13462 Non-standard-conforming type set::pointer
!      * [492]13478 gcc uses wrong constructor to initialize a const
         reference
!      * [493]13544 "conflicting types" for enums in different scopes
!      * [494]13650 string::compare should not (always) use
         traits_type::length()
!      * [495]13683 bogus warning about passing non-PODs through ellipsis
!      * [496]13688 Derived class is denied access to protected base class
         member class
!      * [497]13774 Member variable cleared in virtual multiple inheritance
         class
!      * [498]13884 Protect sstream.tcc from extern template use
  
      Java compiler and library
  
!      * [499]10746 [win32] garbage collection crash in GCJ
  
      Objective-C compiler and library
  
!      * [500]11433 Crash due to dereferencing null pointer when querying
         protocol
  
      Fortran compiler and library
  
!      * [501]12633 logical expression gives incorrect result with
         -fugly-logint option
!      * [502]13037 [gcse-lm] g77 generates incorrect code
!      * [503]13213 Hex constant problem when compiling with -fugly-logint
         and -ftypeless-boz
  
      x86-specific (Intel/AMD)
  
!      * [504]4490 ICE with -m128bit-long-double
!      * [505]12292 [x86_64] ICE: RTL check: expected code `const_int', have
         `reg' in make_field_assignment, in combine.c
!      * [506]12441 ICE: can't find a register to spill
!      * [507]12943 array static-init failure under -fpic, -fPIC
!      * [508]13608 Incorrect code with -O3 -ffast-math
  
      PowerPC-specific
  
!      * [509]11598 testcase gcc.dg/20020118-1.c fails runtime check of
         __attribute__((aligned(16)))
!      * [510]11793 ICE in extract_insn, in recog.c (const_vector's)
!      * [511]12467 vmsumubm emitted when vmsummbm appropriate (typo in
         altivec.md)
!      * [512]12537 g++ generates writeable text sections
  
      SPARC-specific
  
!      * [513]12496 wrong result for __atomic_add(&value, -1) when using -O0
         -m64
!      * [514]12865 mprotect call to make trampoline executable may fail
!      * [515]13354 ICE in sparc_emit_set_const32
  
      ARM-specific
  
!      * [516]10467 [arm] ICE in pre_insert_copy_insn,
  
      ia64-specific
  
!      * [517]11226 ICE passing struct arg with two floats
!      * [518]11227 ICE for _Complex float, _Complex long double args
!      * [519]12644 GCC 3.3.2 fails to compile glibc on ia64
!      * [520]13149 build gcc-3.3.2 1305 error:unrecognizable insn
       * Various fixes for libunwind
  
      Alpha-specific
  
!      * [521]12654 Incorrect comparison code generated for Alpha
!      * [522]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
!      * [523]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2
  
      HPPA-specific
  
!      * [524]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
!      * [525]12158 [hppa] compilation does not terminate at -O1
  
      S390-specific
  
!      * [526]11992 Wrong built-in code for memcmp with length 1<<24: only
         (1<<24)-1 possible for CLCL-Instruction
  
      SH-specific
  
!      * [527]9365 segfault in gen_far_branch (config/sh/sh.c)
!      * [528]10392 optimizer generates faulty array indexing
!      * [529]11322 SH profiler outputs multiple definitions of symbol
!      * [530]13069 gcc/config/sh/rtems.h broken
!      * [531]13302 Putting a va_list in a struct causes seg fault
!      * [532]13585 Incorrect optimization of call to sfunc
       * Fix inappropriately exported libgcc functions from the shared
         library
  
      Other embedded target specific
  
!      * [533]8916 [mcore] unsigned char assign gets hosed.
!      * [534]11576 [h8300] ICE in change_address_1, in emit-rtl.c
!      * [535]13122 [h8300] local variable gets corrupted by function call
         when -fomit-frame-pointer is given
!      * [536]13256 [cris] strict_low_part mistreated in delay slots
!      * [537]13373 [mcore] optimization with -frerun-cse-after-loop
         -fexpensive-optimizations produces wrong code on mcore
  
      GNU HURD-specific
  
!      * [538]12561 gcc/config/t-gnu needs updating to work with
         --with-sysroot
  
      Tru64 Unix specific
  
!      * [539]6243 testsuite fails almost all tests due to no libintl in
         LD_LIBRARY_PATH during test.
!      * [540]11397 weak aliases broken on Tru64 UNIX
  
      AIX-specific
  
!      * [541]12505 build failure due to defines of uchar in cpphash.h and
         sys/types.h
!      * [542]13150 WEAK symbols not exported by collect2
  
      IRIX-specific
  
!      * [543]12666 fixincludes problem on IRIX 6.5.19m
  
      Solaris-specific
  
!      * [544]12969 Including sys/byteorder.h breaks configure checks
  
      Testsuite problems (compiler is not affected)
  
!      * [545]10819 testsuite creates CR+LF on compiler version lines in
         test summary files
!      * [546]11612 abi_check not finding correct libgcc_s.so.1
  
      Miscellaneous
  
!      * [547]13211 using -###, incorrect warnings about unused linker file
         are produced
       __________________________________________________________________
  
! GCC 3.3.4
  
!    This is the [548]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! GCC 3.3.5
  
!    This is the [549]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! GCC 3.3.6
  
!    This is the [550]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [551]GCC manuals. If that fails, the
!     [552]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [553]gcc@gcc.gnu.org. All of [554]our lists have public
      archives.
  
!    Copyright (C) [555]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [556]maintained by the GCC team. Last modified
!    2023-01-19.
  
  References
  
--- 22660,22889 ----
     that the ISO C++ standards committee has made concerning several defect
     reports (DRs). Links in the list below point to detailed discussion of
     the relevant defect report.
!      * [455]2094 unimplemented: use of `ptrmem_cst' in template type
         unification
!      * [456]2294 using declaration confusion
!      * [457]5050 template instantiation depth exceeds limit: recursion
         problem?
!      * [458]9371 Bad exception handling in
         i/ostream::operator>>/<<(streambuf*)
!      * [459]9546 bad exception handling in ostream members
!      * [460]10081 basic_ios::_M_cache_locale leaves NULL members in the
         face of unknown locales
!      * [461]10093 [462][DR 61] Setting failbit in exceptions doesn't work
!      * [463]10095 istream::operator>>(int&) sets ios::badbit when
         ios::failbit is set.
!      * [464]11554 Warning about reordering of initializers doesn't mention
         location of constructor
!      * [465]12297 istream::sentry::sentry() handles eof() incorrectly.
!      * [466]12352 Exception safety problems in src/localename.cc
!      * [467]12438 Memory leak in locale::combine()
!      * [468]12540 Memory leak in locale::locale(const char*)
!      * [469]12594 DRs [470]60 [TC] and [471]63 [TC] not implemented
!      * [472]12657 Resolution of [473]DR 292 (WP) still unimplemented
!      * [474]12696 memory eating infinite loop in diagnostics (error
         recovery problem)
!      * [475]12815 Code compiled with optimization behaves unexpectedly
!      * [476]12862 Conflicts between typedefs/enums and namespace member
         declarations
!      * [477]12926 Wrong value after assignment in initialize list using
         bit-fields
!      * [478]12967 Resolution of [479]DR 300 [WP] still unimplemented
!      * [480]12971 Resolution of [481]DR 328 [WP] still unimplemented
!      * [482]13007 basic_streambuf::pubimbue, imbue wrong
!      * [483]13009 Implicitly-defined assignment operator writes to wrong
         memory
!      * [484]13057 regparm attribute not applied to destructor
!      * [485]13070 -Wformat option ignored in g++
!      * [486]13081 forward template declarations in <complex> let inlining
         fail
!      * [487]13239 Assertion does not seem to work correctly anymore
!      * [488]13262 "xxx is private within this context" when initializing a
         self-contained template class
!      * [489]13290 simple typo in concept checking for std::generate_n
!      * [490]13323 Template code does not compile in presence of typedef
!      * [491]13369 __verify_grouping (and __add_grouping?) not correct
!      * [492]13371 infinite loop with packed struct and inlining
!      * [493]13445 Template argument replacement "dereferences" a typedef
!      * [494]13461 Fails to access protected-ctor from public constant
!      * [495]13462 Non-standard-conforming type set::pointer
!      * [496]13478 gcc uses wrong constructor to initialize a const
         reference
!      * [497]13544 "conflicting types" for enums in different scopes
!      * [498]13650 string::compare should not (always) use
         traits_type::length()
!      * [499]13683 bogus warning about passing non-PODs through ellipsis
!      * [500]13688 Derived class is denied access to protected base class
         member class
!      * [501]13774 Member variable cleared in virtual multiple inheritance
         class
!      * [502]13884 Protect sstream.tcc from extern template use
  
      Java compiler and library
  
!      * [503]10746 [win32] garbage collection crash in GCJ
  
      Objective-C compiler and library
  
!      * [504]11433 Crash due to dereferencing null pointer when querying
         protocol
  
      Fortran compiler and library
  
!      * [505]12633 logical expression gives incorrect result with
         -fugly-logint option
!      * [506]13037 [gcse-lm] g77 generates incorrect code
!      * [507]13213 Hex constant problem when compiling with -fugly-logint
         and -ftypeless-boz
  
      x86-specific (Intel/AMD)
  
!      * [508]4490 ICE with -m128bit-long-double
!      * [509]12292 [x86_64] ICE: RTL check: expected code `const_int', have
         `reg' in make_field_assignment, in combine.c
!      * [510]12441 ICE: can't find a register to spill
!      * [511]12943 array static-init failure under -fpic, -fPIC
!      * [512]13608 Incorrect code with -O3 -ffast-math
  
      PowerPC-specific
  
!      * [513]11598 testcase gcc.dg/20020118-1.c fails runtime check of
         __attribute__((aligned(16)))
!      * [514]11793 ICE in extract_insn, in recog.c (const_vector's)
!      * [515]12467 vmsumubm emitted when vmsummbm appropriate (typo in
         altivec.md)
!      * [516]12537 g++ generates writeable text sections
  
      SPARC-specific
  
!      * [517]12496 wrong result for __atomic_add(&value, -1) when using -O0
         -m64
!      * [518]12865 mprotect call to make trampoline executable may fail
!      * [519]13354 ICE in sparc_emit_set_const32
  
      ARM-specific
  
!      * [520]10467 [arm] ICE in pre_insert_copy_insn,
  
      ia64-specific
  
!      * [521]11226 ICE passing struct arg with two floats
!      * [522]11227 ICE for _Complex float, _Complex long double args
!      * [523]12644 GCC 3.3.2 fails to compile glibc on ia64
!      * [524]13149 build gcc-3.3.2 1305 error:unrecognizable insn
       * Various fixes for libunwind
  
      Alpha-specific
  
!      * [525]12654 Incorrect comparison code generated for Alpha
!      * [526]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
!      * [527]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2
  
      HPPA-specific
  
!      * [528]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
!      * [529]12158 [hppa] compilation does not terminate at -O1
  
      S390-specific
  
!      * [530]11992 Wrong built-in code for memcmp with length 1<<24: only
         (1<<24)-1 possible for CLCL-Instruction
  
      SH-specific
  
!      * [531]9365 segfault in gen_far_branch (config/sh/sh.c)
!      * [532]10392 optimizer generates faulty array indexing
!      * [533]11322 SH profiler outputs multiple definitions of symbol
!      * [534]13069 gcc/config/sh/rtems.h broken
!      * [535]13302 Putting a va_list in a struct causes seg fault
!      * [536]13585 Incorrect optimization of call to sfunc
       * Fix inappropriately exported libgcc functions from the shared
         library
  
      Other embedded target specific
  
!      * [537]8916 [mcore] unsigned char assign gets hosed.
!      * [538]11576 [h8300] ICE in change_address_1, in emit-rtl.c
!      * [539]13122 [h8300] local variable gets corrupted by function call
         when -fomit-frame-pointer is given
!      * [540]13256 [cris] strict_low_part mistreated in delay slots
!      * [541]13373 [mcore] optimization with -frerun-cse-after-loop
         -fexpensive-optimizations produces wrong code on mcore
  
      GNU HURD-specific
  
!      * [542]12561 gcc/config/t-gnu needs updating to work with
         --with-sysroot
  
      Tru64 Unix specific
  
!      * [543]6243 testsuite fails almost all tests due to no libintl in
         LD_LIBRARY_PATH during test.
!      * [544]11397 weak aliases broken on Tru64 UNIX
  
      AIX-specific
  
!      * [545]12505 build failure due to defines of uchar in cpphash.h and
         sys/types.h
!      * [546]13150 WEAK symbols not exported by collect2
  
      IRIX-specific
  
!      * [547]12666 fixincludes problem on IRIX 6.5.19m
  
      Solaris-specific
  
!      * [548]12969 Including sys/byteorder.h breaks configure checks
  
      Testsuite problems (compiler is not affected)
  
!      * [549]10819 testsuite creates CR+LF on compiler version lines in
         test summary files
!      * [550]11612 abi_check not finding correct libgcc_s.so.1
  
      Miscellaneous
  
!      * [551]13211 using -###, incorrect warnings about unused linker file
         are produced
       __________________________________________________________________
  
! [552]GCC 3.3.4
  
!    This is the [553]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.4 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! [554]GCC 3.3.5
  
!    This is the [555]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.5 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
       __________________________________________________________________
  
! [556]GCC 3.3.6
  
!    This is the [557]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 3.3.6 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [558]GCC manuals. If that fails, the
!     [559]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [560]gcc@gcc.gnu.org. All of [561]our lists have public
      archives.
  
!    Copyright (C) [562]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [563]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 21469,22023 ****
     5. https://gcc.gnu.org/news/dfa.html
     6. https://gcc.gnu.org/c99status.html
     7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
!    8. https://gcc.gnu.org/PR10140
!    9. https://gcc.gnu.org/PR10198
!   10. https://gcc.gnu.org/PR10338
!   11. https://gcc.gnu.org/PR3581
!   12. https://gcc.gnu.org/PR4382
!   13. https://gcc.gnu.org/PR5533
!   14. https://gcc.gnu.org/PR6387
!   15. https://gcc.gnu.org/PR6412
!   16. https://gcc.gnu.org/PR6620
!   17. https://gcc.gnu.org/PR6663
!   18. https://gcc.gnu.org/PR7068
!   19. https://gcc.gnu.org/PR7083
!   20. https://gcc.gnu.org/PR7647
!   21. https://gcc.gnu.org/PR7675
!   22. https://gcc.gnu.org/PR7718
!   23. https://gcc.gnu.org/PR8116
!   24. https://gcc.gnu.org/PR8358
!   25. https://gcc.gnu.org/PR8511
!   26. https://gcc.gnu.org/PR8564
!   27. https://gcc.gnu.org/PR8660
!   28. https://gcc.gnu.org/PR8766
!   29. https://gcc.gnu.org/PR8803
!   30. https://gcc.gnu.org/PR8846
!   31. https://gcc.gnu.org/PR8906
!   32. https://gcc.gnu.org/PR9216
!   33. https://gcc.gnu.org/PR9261
!   34. https://gcc.gnu.org/PR9263
!   35. https://gcc.gnu.org/PR9429
!   36. https://gcc.gnu.org/PR9516
!   37. https://gcc.gnu.org/PR9600
!   38. https://gcc.gnu.org/PR9629
!   39. https://gcc.gnu.org/PR9672
!   40. https://gcc.gnu.org/PR9749
!   41. https://gcc.gnu.org/PR9794
!   42. https://gcc.gnu.org/PR9829
!   43. https://gcc.gnu.org/PR9916
!   44. https://gcc.gnu.org/PR9936
!   45. https://gcc.gnu.org/PR10262
!   46. https://gcc.gnu.org/PR10278
!   47. https://gcc.gnu.org/PR10446
!   48. https://gcc.gnu.org/PR10451
!   49. https://gcc.gnu.org/PR10506
!   50. https://gcc.gnu.org/PR10549
!   51. https://gcc.gnu.org/PR2001
!   52. https://gcc.gnu.org/PR2391
!   53. https://gcc.gnu.org/PR2960
!   54. https://gcc.gnu.org/PR4046
!   55. https://gcc.gnu.org/PR6405
!   56. https://gcc.gnu.org/PR6798
!   57. https://gcc.gnu.org/PR6871
!   58. https://gcc.gnu.org/PR6909
!   59. https://gcc.gnu.org/PR7189
!   60. https://gcc.gnu.org/PR7642
!   61. https://gcc.gnu.org/PR8634
!   62. https://gcc.gnu.org/PR8750
!   63. https://gcc.gnu.org/PR2161
!   64. https://gcc.gnu.org/PR4319
!   65. https://gcc.gnu.org/PR8602
!   66. https://gcc.gnu.org/PR9177
!   67. https://gcc.gnu.org/PR9853
!   68. https://gcc.gnu.org/PR45
!   69. https://gcc.gnu.org/PR3784
!   70. https://gcc.gnu.org/PR764
!   71. https://gcc.gnu.org/PR5116
!   72. https://gcc.gnu.org/PR2862
!   73. https://gcc.gnu.org/PR3663
!   74. https://gcc.gnu.org/PR3797
!   75. https://gcc.gnu.org/PR3948
!   76. https://gcc.gnu.org/PR4137
!   77. https://gcc.gnu.org/PR4361
!   78. https://gcc.gnu.org/PR4802
!   79. https://gcc.gnu.org/PR5837
!   80. https://gcc.gnu.org/PR4803
!   81. https://gcc.gnu.org/PR5094
!   82. https://gcc.gnu.org/PR5730
!   83. https://gcc.gnu.org/PR6713
!   84. https://gcc.gnu.org/PR7015
!   85. https://gcc.gnu.org/PR7086
!   86. https://gcc.gnu.org/PR7099
!   87. https://gcc.gnu.org/PR7247
!   88. https://gcc.gnu.org/PR7441
!   89. https://gcc.gnu.org/PR7768
!   90. https://gcc.gnu.org/PR7804
!   91. https://gcc.gnu.org/PR8099
!   92. https://gcc.gnu.org/PR8117
!   93. https://gcc.gnu.org/PR8205
!   94. https://gcc.gnu.org/PR8645
!   95. https://gcc.gnu.org/PR8724
!   96. https://gcc.gnu.org/PR8805
!   97. https://gcc.gnu.org/PR8691
!   98. https://gcc.gnu.org/PR8700
!   99. https://gcc.gnu.org/PR8724
!  100. https://gcc.gnu.org/PR8949
!  101. https://gcc.gnu.org/PR9016
!  102. https://gcc.gnu.org/PR9053
!  103. https://gcc.gnu.org/PR9152
!  104. https://gcc.gnu.org/PR9182
!  105. https://gcc.gnu.org/PR9297
!  106. https://gcc.gnu.org/PR9318
!  107. https://gcc.gnu.org/PR9320
!  108. https://gcc.gnu.org/PR9400
!  109. https://gcc.gnu.org/PR9424
!  110. https://gcc.gnu.org/PR9425
!  111. https://gcc.gnu.org/PR9439
!  112. https://gcc.gnu.org/PR9474
!  113. https://gcc.gnu.org/PR9548
!  114. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
!  115. https://gcc.gnu.org/PR9555
!  116. https://gcc.gnu.org/PR9561
!  117. https://gcc.gnu.org/PR9563
!  118. https://gcc.gnu.org/PR9582
!  119. https://gcc.gnu.org/PR9622
!  120. https://gcc.gnu.org/PR9683
!  121. https://gcc.gnu.org/PR9791
!  122. https://gcc.gnu.org/PR9817
!  123. https://gcc.gnu.org/PR9825
!  124. https://gcc.gnu.org/PR9826
!  125. https://gcc.gnu.org/PR9924
!  126. https://gcc.gnu.org/PR9946
!  127. https://gcc.gnu.org/PR9964
!  128. https://gcc.gnu.org/PR9988
!  129. https://gcc.gnu.org/PR10033
!  130. https://gcc.gnu.org/PR10097
!  131. https://gcc.gnu.org/PR10132
!  132. https://gcc.gnu.org/PR10180
!  133. https://gcc.gnu.org/PR10199
!  134. https://gcc.gnu.org/PR10300
!  135. https://gcc.gnu.org/PR10427
!  136. https://gcc.gnu.org/PR10503
!  137. https://gcc.gnu.org/PR5956
!  138. https://gcc.gnu.org/PR1832
!  139. https://gcc.gnu.org/PR3924
!  140. https://gcc.gnu.org/PR5634
!  141. https://gcc.gnu.org/PR6367
!  142. https://gcc.gnu.org/PR6491
!  143. https://gcc.gnu.org/PR6742
!  144. https://gcc.gnu.org/PR7113
!  145. https://gcc.gnu.org/PR7236
!  146. https://gcc.gnu.org/PR7278
!  147. https://gcc.gnu.org/PR7384
!  148. https://gcc.gnu.org/PR7388
!  149. https://gcc.gnu.org/PR8587
!  150. https://gcc.gnu.org/PR9038
!  151. https://gcc.gnu.org/PR10197
!  152. https://gcc.gnu.org/PR6005
!  153. https://gcc.gnu.org/PR6389
!  154. https://gcc.gnu.org/PR6576
!  155. https://gcc.gnu.org/PR6652
!  156. https://gcc.gnu.org/PR7060
!  157. https://gcc.gnu.org/PR7073
!  158. https://gcc.gnu.org/PR7180
!  159. https://gcc.gnu.org/PR7416
!  160. https://gcc.gnu.org/PR7570
!  161. https://gcc.gnu.org/PR7578
!  162. https://gcc.gnu.org/PR7611
!  163. https://gcc.gnu.org/PR7709
!  164. https://gcc.gnu.org/PR7766
!  165. https://gcc.gnu.org/PR7785
!  166. https://gcc.gnu.org/PR7786
!  167. https://gcc.gnu.org/PR8142
!  168. https://gcc.gnu.org/PR8234
!  169. https://gcc.gnu.org/PR8415
!  170. https://gcc.gnu.org/PR8481
!  171. https://gcc.gnu.org/PR8593
!  172. https://gcc.gnu.org/PR8759
!  173. https://gcc.gnu.org/PR8997
!  174. https://gcc.gnu.org/PR9253
!  175. https://gcc.gnu.org/PR9254
!  176. https://gcc.gnu.org/PR9271
!  177. https://gcc.gnu.org/PR6767
!  178. https://gcc.gnu.org/PR9911
!  179. https://gcc.gnu.org/PR10020
!  180. https://gcc.gnu.org/PR10546
!  181. https://gcc.gnu.org/PR7029
!  182. https://gcc.gnu.org/PR2903
!  183. https://gcc.gnu.org/PR7873
!  184. https://gcc.gnu.org/PR7680
!  185. https://gcc.gnu.org/PR8705
!  186. https://gcc.gnu.org/PR9986
!  187. https://gcc.gnu.org/PR10056
!  188. https://gcc.gnu.org/PR6744
!  189. https://gcc.gnu.org/PR7361
!  190. https://gcc.gnu.org/PR9496
!  191. https://gcc.gnu.org/PR7067
!  192. https://gcc.gnu.org/PR8480
!  193. https://gcc.gnu.org/PR8784
!  194. https://gcc.gnu.org/PR10315
!  195. https://gcc.gnu.org/PR10267
!  196. https://gcc.gnu.org/PR7916
!  197. https://gcc.gnu.org/PR7926
!  198. https://gcc.gnu.org/PR8555
!  199. https://gcc.gnu.org/PR8994
!  200. https://gcc.gnu.org/PR9426
!  201. https://gcc.gnu.org/PR9806
!  202. https://gcc.gnu.org/PR10077
!  203. https://gcc.gnu.org/PR10233
!  204. https://gcc.gnu.org/PR10286
!  205. https://gcc.gnu.org/PR10308
!  206. https://gcc.gnu.org/PR11272
!  207. https://gcc.gnu.org/PR5754
!  208. https://gcc.gnu.org/PR6597
!  209. https://gcc.gnu.org/PR6949
!  210. https://gcc.gnu.org/PR7053
!  211. https://gcc.gnu.org/PR8164
!  212. https://gcc.gnu.org/PR8384
!  213. https://gcc.gnu.org/PR9559
!  214. https://gcc.gnu.org/PR9649
!  215. https://gcc.gnu.org/PR9864
!  216. https://gcc.gnu.org/PR10432
!  217. https://gcc.gnu.org/PR10475
!  218. https://gcc.gnu.org/PR10635
!  219. https://gcc.gnu.org/PR10661
!  220. https://gcc.gnu.org/PR10700
!  221. https://gcc.gnu.org/PR10712
!  222. https://gcc.gnu.org/PR10796
!  223. https://gcc.gnu.org/PR10890
!  224. https://gcc.gnu.org/PR10939
!  225. https://gcc.gnu.org/PR10956
!  226. https://gcc.gnu.org/PR11041
!  227. https://gcc.gnu.org/PR11059
!  228. https://gcc.gnu.org/PR11083
!  229. https://gcc.gnu.org/PR11105
!  230. https://gcc.gnu.org/PR11149
!  231. https://gcc.gnu.org/PR11228
!  232. https://gcc.gnu.org/PR11282
!  233. https://gcc.gnu.org/PR11301
!  234. https://gcc.gnu.org/PR11308
!  235. https://gcc.gnu.org/PR11473
!  236. https://gcc.gnu.org/PR11503
!  237. https://gcc.gnu.org/PR11513
!  238. https://gcc.gnu.org/PR11198
!  239. https://gcc.gnu.org/PR11304
!  240. https://gcc.gnu.org/PR11381
!  241. https://gcc.gnu.org/PR11536
!  242. https://gcc.gnu.org/PR11557
!  243. https://gcc.gnu.org/PR5897
!  244. https://gcc.gnu.org/PR11279
!  245. https://gcc.gnu.org/PR11022
!  246. https://gcc.gnu.org/PR2330
!  247. https://gcc.gnu.org/PR5388
!  248. https://gcc.gnu.org/PR5390
!  249. https://gcc.gnu.org/PR7877
!  250. https://gcc.gnu.org/PR9393
!  251. https://gcc.gnu.org/PR10032
!  252. https://gcc.gnu.org/PR10468
!  253. https://gcc.gnu.org/PR10527
!  254. https://gcc.gnu.org/PR10679
!  255. https://gcc.gnu.org/PR10682
!  256. https://gcc.gnu.org/PR10689
!  257. https://gcc.gnu.org/PR10845
!  258. https://gcc.gnu.org/PR10849
!  259. https://gcc.gnu.org/PR10888
!  260. https://gcc.gnu.org/PR10929
!  261. https://gcc.gnu.org/PR10931
!  262. https://gcc.gnu.org/PR10940
!  263. https://gcc.gnu.org/PR10968
!  264. https://gcc.gnu.org/PR10990
!  265. https://gcc.gnu.org/PR11039
!  266. https://gcc.gnu.org/PR11062
!  267. https://gcc.gnu.org/PR11095
!  268. https://gcc.gnu.org/PR11098
!  269. https://gcc.gnu.org/PR11137
!  270. https://gcc.gnu.org/PR11154
!  271. https://gcc.gnu.org/PR11329
!  272. https://gcc.gnu.org/PR11332
!  273. https://gcc.gnu.org/PR11431
!  274. https://gcc.gnu.org/PR11528
!  275. https://gcc.gnu.org/PR11546
!  276. https://gcc.gnu.org/PR11567
!  277. https://gcc.gnu.org/PR11645
!  278. https://gcc.gnu.org/PR5179
!  279. https://gcc.gnu.org/PR8204
!  280. https://gcc.gnu.org/PR10838
!  281. https://gcc.gnu.org/PR10886
!  282. https://gcc.gnu.org/PR11349
!  283. https://gcc.gnu.org/PR4823
!  284. https://gcc.gnu.org/PR8878
!  285. https://gcc.gnu.org/PR9815
!  286. https://gcc.gnu.org/PR10402
!  287. https://gcc.gnu.org/PR10504
!  288. https://gcc.gnu.org/PR10673
!  289. https://gcc.gnu.org/PR11044
!  290. https://gcc.gnu.org/PR11089
!  291. https://gcc.gnu.org/PR11420
!  292. https://gcc.gnu.org/PR9362
!  293. https://gcc.gnu.org/PR10142
!  294. https://gcc.gnu.org/PR10663
!  295. https://gcc.gnu.org/PR10835
!  296. https://gcc.gnu.org/PR10876
!  297. https://gcc.gnu.org/PR10955
!  298. https://gcc.gnu.org/PR11018
!  299. https://gcc.gnu.org/PR11556
!  300. https://gcc.gnu.org/PR10907
!  301. https://gcc.gnu.org/PR11320
!  302. https://gcc.gnu.org/PR11599
!  303. https://gcc.gnu.org/PR9745
!  304. https://gcc.gnu.org/PR10871
!  305. https://gcc.gnu.org/PR11440
!  306. https://gcc.gnu.org/PR7594
!  307. https://gcc.gnu.org/PR10557
!  308. https://gcc.gnu.org/PR11054
!  309. https://gcc.gnu.org/PR10834
!  310. https://gcc.gnu.org/PR10842
!  311. https://gcc.gnu.org/PR11052
!  312. https://gcc.gnu.org/PR11183
!  313. https://gcc.gnu.org/PR11084
!  314. https://gcc.gnu.org/PR10331
!  315. https://gcc.gnu.org/PR10413
!  316. https://gcc.gnu.org/PR11096
!  317. https://gcc.gnu.org/PR2873
!  318. https://gcc.gnu.org/PR3163
!  319. https://gcc.gnu.org/PR5287
!  320. https://gcc.gnu.org/PR10148
!  321. https://gcc.gnu.org/PR8787
!  322. https://gcc.gnu.org/PR10900
!  323. https://gcc.gnu.org/PR1607
!  324. https://gcc.gnu.org/PR4252
!  325. https://gcc.gnu.org/PR4490
!  326. https://gcc.gnu.org/PR10355
!  327. https://gcc.gnu.org/PR10726
!  328. https://gcc.gnu.org/PR10805
!  329. https://gcc.gnu.org/PR10815
!  330. https://gcc.gnu.org/PR10877
!  331. https://gcc.gnu.org/PR11280
!  332. https://gcc.gnu.org/PR11466
!  333. https://gcc.gnu.org/PR10737
!  334. https://gcc.gnu.org/PR10810
!  335. https://gcc.gnu.org/PR8336
!  336. https://gcc.gnu.org/PR9330
!  337. https://gcc.gnu.org/PR9631
!  338. https://gcc.gnu.org/PR9877
!  339. https://gcc.gnu.org/PR11687
!  340. https://gcc.gnu.org/PR12263
!  341. https://gcc.gnu.org/PR12490
!  342. https://gcc.gnu.org/PR7277
!  343. https://gcc.gnu.org/PR7939
!  344. https://gcc.gnu.org/PR11063
!  345. https://gcc.gnu.org/PR11207
!  346. https://gcc.gnu.org/PR11522
!  347. https://gcc.gnu.org/PR11595
!  348. https://gcc.gnu.org/PR11646
!  349. https://gcc.gnu.org/PR11665
!  350. https://gcc.gnu.org/PR11852
!  351. https://gcc.gnu.org/PR11878
!  352. https://gcc.gnu.org/PR11883
!  353. https://gcc.gnu.org/PR11991
!  354. https://gcc.gnu.org/PR12146
!  355. https://gcc.gnu.org/PR12215
!  356. https://gcc.gnu.org/PR12369
!  357. https://gcc.gnu.org/PR12446
!  358. https://gcc.gnu.org/PR12510
!  359. https://gcc.gnu.org/PR12544
!  360. https://gcc.gnu.org/PR9862
!  361. https://gcc.gnu.org/PR10962
!  362. https://gcc.gnu.org/PR11370
!  363. https://gcc.gnu.org/PR11637
!  364. https://gcc.gnu.org/PR11885
!  365. https://gcc.gnu.org/PR12082
!  366. https://gcc.gnu.org/PR12180
!  367. https://gcc.gnu.org/PR12340
!  368. https://gcc.gnu.org/PR3907
!  369. https://gcc.gnu.org/PR5293
!  370. https://gcc.gnu.org/PR5296
!  371. https://gcc.gnu.org/PR7939
!  372. https://gcc.gnu.org/PR8656
!  373. https://gcc.gnu.org/PR10147
!  374. https://gcc.gnu.org/PR11400
!  375. https://gcc.gnu.org/PR11409
!  376. https://gcc.gnu.org/PR11740
!  377. https://gcc.gnu.org/PR11786
!  378. https://gcc.gnu.org/PR11867
!  379. https://gcc.gnu.org/PR11928
!  380. https://gcc.gnu.org/PR12114
!  381. https://gcc.gnu.org/PR12163
!  382. https://gcc.gnu.org/PR12181
!  383. https://gcc.gnu.org/PR12236
!  384. https://gcc.gnu.org/PR12266
!  385. https://gcc.gnu.org/PR12296
!  386. https://gcc.gnu.org/PR12298
!  387. https://gcc.gnu.org/PR12369
!  388. https://gcc.gnu.org/PR12337
!  389. https://gcc.gnu.org/PR12344
!  390. https://gcc.gnu.org/PR12451
!  391. https://gcc.gnu.org/PR12486
!  392. https://gcc.gnu.org/PR8869
!  393. https://gcc.gnu.org/PR9786
!  394. https://gcc.gnu.org/PR11689
!  395. https://gcc.gnu.org/PR12116
!  396. https://gcc.gnu.org/PR12070
!  397. https://gcc.gnu.org/PR11184
!  398. https://gcc.gnu.org/PR11535
!  399. https://gcc.gnu.org/PR11693
!  400. https://gcc.gnu.org/PR12224
!  401. https://gcc.gnu.org/PR11087
!  402. https://gcc.gnu.org/PR11319
!  403. https://gcc.gnu.org/PR11949
!  404. https://gcc.gnu.org/PR11662
!  405. https://gcc.gnu.org/PR11965
!  406. https://gcc.gnu.org/PR12301
!  407. https://gcc.gnu.org/PR11717
!  408. https://gcc.gnu.org/PR11313
!  409. https://gcc.gnu.org/PR11712
!  410. https://gcc.gnu.org/PR12166
!  411. https://gcc.gnu.org/PR12101
!  412. https://gcc.gnu.org/PR10988
!  413. https://gcc.gnu.org/PR11805
!  414. https://gcc.gnu.org/PR11902
!  415. https://gcc.gnu.org/PR11903
!  416. https://gcc.gnu.org/PR11890
!  417. https://gcc.gnu.org/PR12399
!  418. https://gcc.gnu.org/PR13068
!  419. https://gcc.gnu.org/PR10060
!  420. https://gcc.gnu.org/PR10555
!  421. https://gcc.gnu.org/PR10706
!  422. https://gcc.gnu.org/PR11496
!  423. https://gcc.gnu.org/PR11741
!  424. https://gcc.gnu.org/PR12440
!  425. https://gcc.gnu.org/PR12632
!  426. https://gcc.gnu.org/PR12712
!  427. https://gcc.gnu.org/PR12726
!  428. https://gcc.gnu.org/PR12890
!  429. https://gcc.gnu.org/PR12900
!  430. https://gcc.gnu.org/PR13060
!  431. https://gcc.gnu.org/PR13289
!  432. https://gcc.gnu.org/PR13318
!  433. https://gcc.gnu.org/PR13392
!  434. https://gcc.gnu.org/PR13574
!  435. https://gcc.gnu.org/PR13475
!  436. https://gcc.gnu.org/PR13797
!  437. https://gcc.gnu.org/PR13824
!  438. https://gcc.gnu.org/PR8776
!  439. https://gcc.gnu.org/PR10339
!  440. https://gcc.gnu.org/PR11350
!  441. https://gcc.gnu.org/PR12826
!  442. https://gcc.gnu.org/PR12500
!  443. https://gcc.gnu.org/PR12941
!  444. https://gcc.gnu.org/PR12953
!  445. https://gcc.gnu.org/PR13041
!  446. https://gcc.gnu.org/PR13507
!  447. https://gcc.gnu.org/PR13382
!  448. https://gcc.gnu.org/PR13394
!  449. https://gcc.gnu.org/PR13400
!  450. https://gcc.gnu.org/PR13521
!  451. https://gcc.gnu.org/PR2094
!  452. https://gcc.gnu.org/PR2294
!  453. https://gcc.gnu.org/PR5050
!  454. https://gcc.gnu.org/PR9371
!  455. https://gcc.gnu.org/PR9546
!  456. https://gcc.gnu.org/PR10081
!  457. https://gcc.gnu.org/PR10093
!  458. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
!  459. https://gcc.gnu.org/PR10095
!  460. https://gcc.gnu.org/PR11554
!  461. https://gcc.gnu.org/PR12297
!  462. https://gcc.gnu.org/PR12352
!  463. https://gcc.gnu.org/PR12438
!  464. https://gcc.gnu.org/PR12540
!  465. https://gcc.gnu.org/PR12594
!  466. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
!  467. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
!  468. https://gcc.gnu.org/PR12657
!  469. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
!  470. https://gcc.gnu.org/PR12696
!  471. https://gcc.gnu.org/PR12815
!  472. https://gcc.gnu.org/PR12862
!  473. https://gcc.gnu.org/PR12926
!  474. https://gcc.gnu.org/PR12967
!  475. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
!  476. https://gcc.gnu.org/PR12971
!  477. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
!  478. https://gcc.gnu.org/PR13007
!  479. https://gcc.gnu.org/PR13009
!  480. https://gcc.gnu.org/PR13057
!  481. https://gcc.gnu.org/PR13070
!  482. https://gcc.gnu.org/PR13081
!  483. https://gcc.gnu.org/PR13239
!  484. https://gcc.gnu.org/PR13262
!  485. https://gcc.gnu.org/PR13290
!  486. https://gcc.gnu.org/PR13323
!  487. https://gcc.gnu.org/PR13369
!  488. https://gcc.gnu.org/PR13371
!  489. https://gcc.gnu.org/PR13445
!  490. https://gcc.gnu.org/PR13461
!  491. https://gcc.gnu.org/PR13462
!  492. https://gcc.gnu.org/PR13478
!  493. https://gcc.gnu.org/PR13544
!  494. https://gcc.gnu.org/PR13650
!  495. https://gcc.gnu.org/PR13683
!  496. https://gcc.gnu.org/PR13688
!  497. https://gcc.gnu.org/PR13774
!  498. https://gcc.gnu.org/PR13884
!  499. https://gcc.gnu.org/PR10746
!  500. https://gcc.gnu.org/PR11433
!  501. https://gcc.gnu.org/PR12633
!  502. https://gcc.gnu.org/PR13037
!  503. https://gcc.gnu.org/PR13213
!  504. https://gcc.gnu.org/PR4490
!  505. https://gcc.gnu.org/PR12292
!  506. https://gcc.gnu.org/PR12441
!  507. https://gcc.gnu.org/PR12943
!  508. https://gcc.gnu.org/PR13608
!  509. https://gcc.gnu.org/PR11598
!  510. https://gcc.gnu.org/PR11793
!  511. https://gcc.gnu.org/PR12467
!  512. https://gcc.gnu.org/PR12537
!  513. https://gcc.gnu.org/PR12496
!  514. https://gcc.gnu.org/PR12865
!  515. https://gcc.gnu.org/PR13354
!  516. https://gcc.gnu.org/PR10467
!  517. https://gcc.gnu.org/PR11226
!  518. https://gcc.gnu.org/PR11227
!  519. https://gcc.gnu.org/PR12644
!  520. https://gcc.gnu.org/PR13149
!  521. https://gcc.gnu.org/PR12654
!  522. https://gcc.gnu.org/PR12965
!  523. https://gcc.gnu.org/PR13031
!  524. https://gcc.gnu.org/PR11634
!  525. https://gcc.gnu.org/PR12158
!  526. https://gcc.gnu.org/PR11992
!  527. https://gcc.gnu.org/PR9365
!  528. https://gcc.gnu.org/PR10392
!  529. https://gcc.gnu.org/PR11322
!  530. https://gcc.gnu.org/PR13069
!  531. https://gcc.gnu.org/PR13302
!  532. https://gcc.gnu.org/PR13585
!  533. https://gcc.gnu.org/PR8916
!  534. https://gcc.gnu.org/PR11576
!  535. https://gcc.gnu.org/PR13122
!  536. https://gcc.gnu.org/PR13256
!  537. https://gcc.gnu.org/PR13373
!  538. https://gcc.gnu.org/PR12561
!  539. https://gcc.gnu.org/PR6243
!  540. https://gcc.gnu.org/PR11397
!  541. https://gcc.gnu.org/PR12505
!  542. https://gcc.gnu.org/PR13150
!  543. https://gcc.gnu.org/PR12666
!  544. https://gcc.gnu.org/PR12969
!  545. https://gcc.gnu.org/PR10819
!  546. https://gcc.gnu.org/PR11612
!  547. https://gcc.gnu.org/PR13211
!  548. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4
!  549. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5
!  550. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6
!  551. https://gcc.gnu.org/onlinedocs/
!  552. mailto:gcc-help@gcc.gnu.org
!  553. mailto:gcc@gcc.gnu.org
!  554. https://gcc.gnu.org/lists.html
!  555. https://www.fsf.org/
!  556. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/index.html
                               GCC 3.2 Release Series
--- 22894,23455 ----
     5. https://gcc.gnu.org/news/dfa.html
     6. https://gcc.gnu.org/c99status.html
     7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
!    8. https://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
!    9. https://gcc.gnu.org/PR10140
!   10. https://gcc.gnu.org/PR10198
!   11. https://gcc.gnu.org/PR10338
!   12. https://gcc.gnu.org/PR3581
!   13. https://gcc.gnu.org/PR4382
!   14. https://gcc.gnu.org/PR5533
!   15. https://gcc.gnu.org/PR6387
!   16. https://gcc.gnu.org/PR6412
!   17. https://gcc.gnu.org/PR6620
!   18. https://gcc.gnu.org/PR6663
!   19. https://gcc.gnu.org/PR7068
!   20. https://gcc.gnu.org/PR7083
!   21. https://gcc.gnu.org/PR7647
!   22. https://gcc.gnu.org/PR7675
!   23. https://gcc.gnu.org/PR7718
!   24. https://gcc.gnu.org/PR8116
!   25. https://gcc.gnu.org/PR8358
!   26. https://gcc.gnu.org/PR8511
!   27. https://gcc.gnu.org/PR8564
!   28. https://gcc.gnu.org/PR8660
!   29. https://gcc.gnu.org/PR8766
!   30. https://gcc.gnu.org/PR8803
!   31. https://gcc.gnu.org/PR8846
!   32. https://gcc.gnu.org/PR8906
!   33. https://gcc.gnu.org/PR9216
!   34. https://gcc.gnu.org/PR9261
!   35. https://gcc.gnu.org/PR9263
!   36. https://gcc.gnu.org/PR9429
!   37. https://gcc.gnu.org/PR9516
!   38. https://gcc.gnu.org/PR9600
!   39. https://gcc.gnu.org/PR9629
!   40. https://gcc.gnu.org/PR9672
!   41. https://gcc.gnu.org/PR9749
!   42. https://gcc.gnu.org/PR9794
!   43. https://gcc.gnu.org/PR9829
!   44. https://gcc.gnu.org/PR9916
!   45. https://gcc.gnu.org/PR9936
!   46. https://gcc.gnu.org/PR10262
!   47. https://gcc.gnu.org/PR10278
!   48. https://gcc.gnu.org/PR10446
!   49. https://gcc.gnu.org/PR10451
!   50. https://gcc.gnu.org/PR10506
!   51. https://gcc.gnu.org/PR10549
!   52. https://gcc.gnu.org/PR2001
!   53. https://gcc.gnu.org/PR2391
!   54. https://gcc.gnu.org/PR2960
!   55. https://gcc.gnu.org/PR4046
!   56. https://gcc.gnu.org/PR6405
!   57. https://gcc.gnu.org/PR6798
!   58. https://gcc.gnu.org/PR6871
!   59. https://gcc.gnu.org/PR6909
!   60. https://gcc.gnu.org/PR7189
!   61. https://gcc.gnu.org/PR7642
!   62. https://gcc.gnu.org/PR8634
!   63. https://gcc.gnu.org/PR8750
!   64. https://gcc.gnu.org/PR2161
!   65. https://gcc.gnu.org/PR4319
!   66. https://gcc.gnu.org/PR8602
!   67. https://gcc.gnu.org/PR9177
!   68. https://gcc.gnu.org/PR9853
!   69. https://gcc.gnu.org/PR45
!   70. https://gcc.gnu.org/PR3784
!   71. https://gcc.gnu.org/PR764
!   72. https://gcc.gnu.org/PR5116
!   73. https://gcc.gnu.org/PR2862
!   74. https://gcc.gnu.org/PR3663
!   75. https://gcc.gnu.org/PR3797
!   76. https://gcc.gnu.org/PR3948
!   77. https://gcc.gnu.org/PR4137
!   78. https://gcc.gnu.org/PR4361
!   79. https://gcc.gnu.org/PR4802
!   80. https://gcc.gnu.org/PR5837
!   81. https://gcc.gnu.org/PR4803
!   82. https://gcc.gnu.org/PR5094
!   83. https://gcc.gnu.org/PR5730
!   84. https://gcc.gnu.org/PR6713
!   85. https://gcc.gnu.org/PR7015
!   86. https://gcc.gnu.org/PR7086
!   87. https://gcc.gnu.org/PR7099
!   88. https://gcc.gnu.org/PR7247
!   89. https://gcc.gnu.org/PR7441
!   90. https://gcc.gnu.org/PR7768
!   91. https://gcc.gnu.org/PR7804
!   92. https://gcc.gnu.org/PR8099
!   93. https://gcc.gnu.org/PR8117
!   94. https://gcc.gnu.org/PR8205
!   95. https://gcc.gnu.org/PR8645
!   96. https://gcc.gnu.org/PR8724
!   97. https://gcc.gnu.org/PR8805
!   98. https://gcc.gnu.org/PR8691
!   99. https://gcc.gnu.org/PR8700
!  100. https://gcc.gnu.org/PR8724
!  101. https://gcc.gnu.org/PR8949
!  102. https://gcc.gnu.org/PR9016
!  103. https://gcc.gnu.org/PR9053
!  104. https://gcc.gnu.org/PR9152
!  105. https://gcc.gnu.org/PR9182
!  106. https://gcc.gnu.org/PR9297
!  107. https://gcc.gnu.org/PR9318
!  108. https://gcc.gnu.org/PR9320
!  109. https://gcc.gnu.org/PR9400
!  110. https://gcc.gnu.org/PR9424
!  111. https://gcc.gnu.org/PR9425
!  112. https://gcc.gnu.org/PR9439
!  113. https://gcc.gnu.org/PR9474
!  114. https://gcc.gnu.org/PR9548
!  115. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
!  116. https://gcc.gnu.org/PR9555
!  117. https://gcc.gnu.org/PR9561
!  118. https://gcc.gnu.org/PR9563
!  119. https://gcc.gnu.org/PR9582
!  120. https://gcc.gnu.org/PR9622
!  121. https://gcc.gnu.org/PR9683
!  122. https://gcc.gnu.org/PR9791
!  123. https://gcc.gnu.org/PR9817
!  124. https://gcc.gnu.org/PR9825
!  125. https://gcc.gnu.org/PR9826
!  126. https://gcc.gnu.org/PR9924
!  127. https://gcc.gnu.org/PR9946
!  128. https://gcc.gnu.org/PR9964
!  129. https://gcc.gnu.org/PR9988
!  130. https://gcc.gnu.org/PR10033
!  131. https://gcc.gnu.org/PR10097
!  132. https://gcc.gnu.org/PR10132
!  133. https://gcc.gnu.org/PR10180
!  134. https://gcc.gnu.org/PR10199
!  135. https://gcc.gnu.org/PR10300
!  136. https://gcc.gnu.org/PR10427
!  137. https://gcc.gnu.org/PR10503
!  138. https://gcc.gnu.org/PR5956
!  139. https://gcc.gnu.org/PR1832
!  140. https://gcc.gnu.org/PR3924
!  141. https://gcc.gnu.org/PR5634
!  142. https://gcc.gnu.org/PR6367
!  143. https://gcc.gnu.org/PR6491
!  144. https://gcc.gnu.org/PR6742
!  145. https://gcc.gnu.org/PR7113
!  146. https://gcc.gnu.org/PR7236
!  147. https://gcc.gnu.org/PR7278
!  148. https://gcc.gnu.org/PR7384
!  149. https://gcc.gnu.org/PR7388
!  150. https://gcc.gnu.org/PR8587
!  151. https://gcc.gnu.org/PR9038
!  152. https://gcc.gnu.org/PR10197
!  153. https://gcc.gnu.org/PR6005
!  154. https://gcc.gnu.org/PR6389
!  155. https://gcc.gnu.org/PR6576
!  156. https://gcc.gnu.org/PR6652
!  157. https://gcc.gnu.org/PR7060
!  158. https://gcc.gnu.org/PR7073
!  159. https://gcc.gnu.org/PR7180
!  160. https://gcc.gnu.org/PR7416
!  161. https://gcc.gnu.org/PR7570
!  162. https://gcc.gnu.org/PR7578
!  163. https://gcc.gnu.org/PR7611
!  164. https://gcc.gnu.org/PR7709
!  165. https://gcc.gnu.org/PR7766
!  166. https://gcc.gnu.org/PR7785
!  167. https://gcc.gnu.org/PR7786
!  168. https://gcc.gnu.org/PR8142
!  169. https://gcc.gnu.org/PR8234
!  170. https://gcc.gnu.org/PR8415
!  171. https://gcc.gnu.org/PR8481
!  172. https://gcc.gnu.org/PR8593
!  173. https://gcc.gnu.org/PR8759
!  174. https://gcc.gnu.org/PR8997
!  175. https://gcc.gnu.org/PR9253
!  176. https://gcc.gnu.org/PR9254
!  177. https://gcc.gnu.org/PR9271
!  178. https://gcc.gnu.org/PR6767
!  179. https://gcc.gnu.org/PR9911
!  180. https://gcc.gnu.org/PR10020
!  181. https://gcc.gnu.org/PR10546
!  182. https://gcc.gnu.org/PR7029
!  183. https://gcc.gnu.org/PR2903
!  184. https://gcc.gnu.org/PR7873
!  185. https://gcc.gnu.org/PR7680
!  186. https://gcc.gnu.org/PR8705
!  187. https://gcc.gnu.org/PR9986
!  188. https://gcc.gnu.org/PR10056
!  189. https://gcc.gnu.org/PR6744
!  190. https://gcc.gnu.org/PR7361
!  191. https://gcc.gnu.org/PR9496
!  192. https://gcc.gnu.org/PR7067
!  193. https://gcc.gnu.org/PR8480
!  194. https://gcc.gnu.org/PR8784
!  195. https://gcc.gnu.org/PR10315
!  196. https://gcc.gnu.org/PR10267
!  197. https://gcc.gnu.org/PR7916
!  198. https://gcc.gnu.org/PR7926
!  199. https://gcc.gnu.org/PR8555
!  200. https://gcc.gnu.org/PR8994
!  201. https://gcc.gnu.org/PR9426
!  202. https://gcc.gnu.org/PR9806
!  203. https://gcc.gnu.org/PR10077
!  204. https://gcc.gnu.org/PR10233
!  205. https://gcc.gnu.org/PR10286
!  206. https://gcc.gnu.org/PR10308
!  207. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.1
!  208. https://gcc.gnu.org/PR11272
!  209. https://gcc.gnu.org/PR5754
!  210. https://gcc.gnu.org/PR6597
!  211. https://gcc.gnu.org/PR6949
!  212. https://gcc.gnu.org/PR7053
!  213. https://gcc.gnu.org/PR8164
!  214. https://gcc.gnu.org/PR8384
!  215. https://gcc.gnu.org/PR9559
!  216. https://gcc.gnu.org/PR9649
!  217. https://gcc.gnu.org/PR9864
!  218. https://gcc.gnu.org/PR10432
!  219. https://gcc.gnu.org/PR10475
!  220. https://gcc.gnu.org/PR10635
!  221. https://gcc.gnu.org/PR10661
!  222. https://gcc.gnu.org/PR10700
!  223. https://gcc.gnu.org/PR10712
!  224. https://gcc.gnu.org/PR10796
!  225. https://gcc.gnu.org/PR10890
!  226. https://gcc.gnu.org/PR10939
!  227. https://gcc.gnu.org/PR10956
!  228. https://gcc.gnu.org/PR11041
!  229. https://gcc.gnu.org/PR11059
!  230. https://gcc.gnu.org/PR11083
!  231. https://gcc.gnu.org/PR11105
!  232. https://gcc.gnu.org/PR11149
!  233. https://gcc.gnu.org/PR11228
!  234. https://gcc.gnu.org/PR11282
!  235. https://gcc.gnu.org/PR11301
!  236. https://gcc.gnu.org/PR11308
!  237. https://gcc.gnu.org/PR11473
!  238. https://gcc.gnu.org/PR11503
!  239. https://gcc.gnu.org/PR11513
!  240. https://gcc.gnu.org/PR11198
!  241. https://gcc.gnu.org/PR11304
!  242. https://gcc.gnu.org/PR11381
!  243. https://gcc.gnu.org/PR11536
!  244. https://gcc.gnu.org/PR11557
!  245. https://gcc.gnu.org/PR5897
!  246. https://gcc.gnu.org/PR11279
!  247. https://gcc.gnu.org/PR11022
!  248. https://gcc.gnu.org/PR2330
!  249. https://gcc.gnu.org/PR5388
!  250. https://gcc.gnu.org/PR5390
!  251. https://gcc.gnu.org/PR7877
!  252. https://gcc.gnu.org/PR9393
!  253. https://gcc.gnu.org/PR10032
!  254. https://gcc.gnu.org/PR10468
!  255. https://gcc.gnu.org/PR10527
!  256. https://gcc.gnu.org/PR10679
!  257. https://gcc.gnu.org/PR10682
!  258. https://gcc.gnu.org/PR10689
!  259. https://gcc.gnu.org/PR10845
!  260. https://gcc.gnu.org/PR10849
!  261. https://gcc.gnu.org/PR10888
!  262. https://gcc.gnu.org/PR10929
!  263. https://gcc.gnu.org/PR10931
!  264. https://gcc.gnu.org/PR10940
!  265. https://gcc.gnu.org/PR10968
!  266. https://gcc.gnu.org/PR10990
!  267. https://gcc.gnu.org/PR11039
!  268. https://gcc.gnu.org/PR11062
!  269. https://gcc.gnu.org/PR11095
!  270. https://gcc.gnu.org/PR11098
!  271. https://gcc.gnu.org/PR11137
!  272. https://gcc.gnu.org/PR11154
!  273. https://gcc.gnu.org/PR11329
!  274. https://gcc.gnu.org/PR11332
!  275. https://gcc.gnu.org/PR11431
!  276. https://gcc.gnu.org/PR11528
!  277. https://gcc.gnu.org/PR11546
!  278. https://gcc.gnu.org/PR11567
!  279. https://gcc.gnu.org/PR11645
!  280. https://gcc.gnu.org/PR5179
!  281. https://gcc.gnu.org/PR8204
!  282. https://gcc.gnu.org/PR10838
!  283. https://gcc.gnu.org/PR10886
!  284. https://gcc.gnu.org/PR11349
!  285. https://gcc.gnu.org/PR4823
!  286. https://gcc.gnu.org/PR8878
!  287. https://gcc.gnu.org/PR9815
!  288. https://gcc.gnu.org/PR10402
!  289. https://gcc.gnu.org/PR10504
!  290. https://gcc.gnu.org/PR10673
!  291. https://gcc.gnu.org/PR11044
!  292. https://gcc.gnu.org/PR11089
!  293. https://gcc.gnu.org/PR11420
!  294. https://gcc.gnu.org/PR9362
!  295. https://gcc.gnu.org/PR10142
!  296. https://gcc.gnu.org/PR10663
!  297. https://gcc.gnu.org/PR10835
!  298. https://gcc.gnu.org/PR10876
!  299. https://gcc.gnu.org/PR10955
!  300. https://gcc.gnu.org/PR11018
!  301. https://gcc.gnu.org/PR11556
!  302. https://gcc.gnu.org/PR10907
!  303. https://gcc.gnu.org/PR11320
!  304. https://gcc.gnu.org/PR11599
!  305. https://gcc.gnu.org/PR9745
!  306. https://gcc.gnu.org/PR10871
!  307. https://gcc.gnu.org/PR11440
!  308. https://gcc.gnu.org/PR7594
!  309. https://gcc.gnu.org/PR10557
!  310. https://gcc.gnu.org/PR11054
!  311. https://gcc.gnu.org/PR10834
!  312. https://gcc.gnu.org/PR10842
!  313. https://gcc.gnu.org/PR11052
!  314. https://gcc.gnu.org/PR11183
!  315. https://gcc.gnu.org/PR11084
!  316. https://gcc.gnu.org/PR10331
!  317. https://gcc.gnu.org/PR10413
!  318. https://gcc.gnu.org/PR11096
!  319. https://gcc.gnu.org/PR2873
!  320. https://gcc.gnu.org/PR3163
!  321. https://gcc.gnu.org/PR5287
!  322. https://gcc.gnu.org/PR10148
!  323. https://gcc.gnu.org/PR8787
!  324. https://gcc.gnu.org/PR10900
!  325. https://gcc.gnu.org/PR1607
!  326. https://gcc.gnu.org/PR4252
!  327. https://gcc.gnu.org/PR4490
!  328. https://gcc.gnu.org/PR10355
!  329. https://gcc.gnu.org/PR10726
!  330. https://gcc.gnu.org/PR10805
!  331. https://gcc.gnu.org/PR10815
!  332. https://gcc.gnu.org/PR10877
!  333. https://gcc.gnu.org/PR11280
!  334. https://gcc.gnu.org/PR11466
!  335. https://gcc.gnu.org/PR10737
!  336. https://gcc.gnu.org/PR10810
!  337. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.2
!  338. https://gcc.gnu.org/PR8336
!  339. https://gcc.gnu.org/PR9330
!  340. https://gcc.gnu.org/PR9631
!  341. https://gcc.gnu.org/PR9877
!  342. https://gcc.gnu.org/PR11687
!  343. https://gcc.gnu.org/PR12263
!  344. https://gcc.gnu.org/PR12490
!  345. https://gcc.gnu.org/PR7277
!  346. https://gcc.gnu.org/PR7939
!  347. https://gcc.gnu.org/PR11063
!  348. https://gcc.gnu.org/PR11207
!  349. https://gcc.gnu.org/PR11522
!  350. https://gcc.gnu.org/PR11595
!  351. https://gcc.gnu.org/PR11646
!  352. https://gcc.gnu.org/PR11665
!  353. https://gcc.gnu.org/PR11852
!  354. https://gcc.gnu.org/PR11878
!  355. https://gcc.gnu.org/PR11883
!  356. https://gcc.gnu.org/PR11991
!  357. https://gcc.gnu.org/PR12146
!  358. https://gcc.gnu.org/PR12215
!  359. https://gcc.gnu.org/PR12369
!  360. https://gcc.gnu.org/PR12446
!  361. https://gcc.gnu.org/PR12510
!  362. https://gcc.gnu.org/PR12544
!  363. https://gcc.gnu.org/PR9862
!  364. https://gcc.gnu.org/PR10962
!  365. https://gcc.gnu.org/PR11370
!  366. https://gcc.gnu.org/PR11637
!  367. https://gcc.gnu.org/PR11885
!  368. https://gcc.gnu.org/PR12082
!  369. https://gcc.gnu.org/PR12180
!  370. https://gcc.gnu.org/PR12340
!  371. https://gcc.gnu.org/PR3907
!  372. https://gcc.gnu.org/PR5293
!  373. https://gcc.gnu.org/PR5296
!  374. https://gcc.gnu.org/PR7939
!  375. https://gcc.gnu.org/PR8656
!  376. https://gcc.gnu.org/PR10147
!  377. https://gcc.gnu.org/PR11400
!  378. https://gcc.gnu.org/PR11409
!  379. https://gcc.gnu.org/PR11740
!  380. https://gcc.gnu.org/PR11786
!  381. https://gcc.gnu.org/PR11867
!  382. https://gcc.gnu.org/PR11928
!  383. https://gcc.gnu.org/PR12114
!  384. https://gcc.gnu.org/PR12163
!  385. https://gcc.gnu.org/PR12181
!  386. https://gcc.gnu.org/PR12236
!  387. https://gcc.gnu.org/PR12266
!  388. https://gcc.gnu.org/PR12296
!  389. https://gcc.gnu.org/PR12298
!  390. https://gcc.gnu.org/PR12369
!  391. https://gcc.gnu.org/PR12337
!  392. https://gcc.gnu.org/PR12344
!  393. https://gcc.gnu.org/PR12451
!  394. https://gcc.gnu.org/PR12486
!  395. https://gcc.gnu.org/PR8869
!  396. https://gcc.gnu.org/PR9786
!  397. https://gcc.gnu.org/PR11689
!  398. https://gcc.gnu.org/PR12116
!  399. https://gcc.gnu.org/PR12070
!  400. https://gcc.gnu.org/PR11184
!  401. https://gcc.gnu.org/PR11535
!  402. https://gcc.gnu.org/PR11693
!  403. https://gcc.gnu.org/PR12224
!  404. https://gcc.gnu.org/PR11087
!  405. https://gcc.gnu.org/PR11319
!  406. https://gcc.gnu.org/PR11949
!  407. https://gcc.gnu.org/PR11662
!  408. https://gcc.gnu.org/PR11965
!  409. https://gcc.gnu.org/PR12301
!  410. https://gcc.gnu.org/PR11717
!  411. https://gcc.gnu.org/PR11313
!  412. https://gcc.gnu.org/PR11712
!  413. https://gcc.gnu.org/PR12166
!  414. https://gcc.gnu.org/PR12101
!  415. https://gcc.gnu.org/PR10988
!  416. https://gcc.gnu.org/PR11805
!  417. https://gcc.gnu.org/PR11902
!  418. https://gcc.gnu.org/PR11903
!  419. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.3
!  420. https://gcc.gnu.org/PR11890
!  421. https://gcc.gnu.org/PR12399
!  422. https://gcc.gnu.org/PR13068
!  423. https://gcc.gnu.org/PR10060
!  424. https://gcc.gnu.org/PR10555
!  425. https://gcc.gnu.org/PR10706
!  426. https://gcc.gnu.org/PR11496
!  427. https://gcc.gnu.org/PR11741
!  428. https://gcc.gnu.org/PR12440
!  429. https://gcc.gnu.org/PR12632
!  430. https://gcc.gnu.org/PR12712
!  431. https://gcc.gnu.org/PR12726
!  432. https://gcc.gnu.org/PR12890
!  433. https://gcc.gnu.org/PR12900
!  434. https://gcc.gnu.org/PR13060
!  435. https://gcc.gnu.org/PR13289
!  436. https://gcc.gnu.org/PR13318
!  437. https://gcc.gnu.org/PR13392
!  438. https://gcc.gnu.org/PR13574
!  439. https://gcc.gnu.org/PR13475
!  440. https://gcc.gnu.org/PR13797
!  441. https://gcc.gnu.org/PR13824
!  442. https://gcc.gnu.org/PR8776
!  443. https://gcc.gnu.org/PR10339
!  444. https://gcc.gnu.org/PR11350
!  445. https://gcc.gnu.org/PR12826
!  446. https://gcc.gnu.org/PR12500
!  447. https://gcc.gnu.org/PR12941
!  448. https://gcc.gnu.org/PR12953
!  449. https://gcc.gnu.org/PR13041
!  450. https://gcc.gnu.org/PR13507
!  451. https://gcc.gnu.org/PR13382
!  452. https://gcc.gnu.org/PR13394
!  453. https://gcc.gnu.org/PR13400
!  454. https://gcc.gnu.org/PR13521
!  455. https://gcc.gnu.org/PR2094
!  456. https://gcc.gnu.org/PR2294
!  457. https://gcc.gnu.org/PR5050
!  458. https://gcc.gnu.org/PR9371
!  459. https://gcc.gnu.org/PR9546
!  460. https://gcc.gnu.org/PR10081
!  461. https://gcc.gnu.org/PR10093
!  462. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
!  463. https://gcc.gnu.org/PR10095
!  464. https://gcc.gnu.org/PR11554
!  465. https://gcc.gnu.org/PR12297
!  466. https://gcc.gnu.org/PR12352
!  467. https://gcc.gnu.org/PR12438
!  468. https://gcc.gnu.org/PR12540
!  469. https://gcc.gnu.org/PR12594
!  470. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
!  471. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
!  472. https://gcc.gnu.org/PR12657
!  473. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
!  474. https://gcc.gnu.org/PR12696
!  475. https://gcc.gnu.org/PR12815
!  476. https://gcc.gnu.org/PR12862
!  477. https://gcc.gnu.org/PR12926
!  478. https://gcc.gnu.org/PR12967
!  479. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
!  480. https://gcc.gnu.org/PR12971
!  481. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
!  482. https://gcc.gnu.org/PR13007
!  483. https://gcc.gnu.org/PR13009
!  484. https://gcc.gnu.org/PR13057
!  485. https://gcc.gnu.org/PR13070
!  486. https://gcc.gnu.org/PR13081
!  487. https://gcc.gnu.org/PR13239
!  488. https://gcc.gnu.org/PR13262
!  489. https://gcc.gnu.org/PR13290
!  490. https://gcc.gnu.org/PR13323
!  491. https://gcc.gnu.org/PR13369
!  492. https://gcc.gnu.org/PR13371
!  493. https://gcc.gnu.org/PR13445
!  494. https://gcc.gnu.org/PR13461
!  495. https://gcc.gnu.org/PR13462
!  496. https://gcc.gnu.org/PR13478
!  497. https://gcc.gnu.org/PR13544
!  498. https://gcc.gnu.org/PR13650
!  499. https://gcc.gnu.org/PR13683
!  500. https://gcc.gnu.org/PR13688
!  501. https://gcc.gnu.org/PR13774
!  502. https://gcc.gnu.org/PR13884
!  503. https://gcc.gnu.org/PR10746
!  504. https://gcc.gnu.org/PR11433
!  505. https://gcc.gnu.org/PR12633
!  506. https://gcc.gnu.org/PR13037
!  507. https://gcc.gnu.org/PR13213
!  508. https://gcc.gnu.org/PR4490
!  509. https://gcc.gnu.org/PR12292
!  510. https://gcc.gnu.org/PR12441
!  511. https://gcc.gnu.org/PR12943
!  512. https://gcc.gnu.org/PR13608
!  513. https://gcc.gnu.org/PR11598
!  514. https://gcc.gnu.org/PR11793
!  515. https://gcc.gnu.org/PR12467
!  516. https://gcc.gnu.org/PR12537
!  517. https://gcc.gnu.org/PR12496
!  518. https://gcc.gnu.org/PR12865
!  519. https://gcc.gnu.org/PR13354
!  520. https://gcc.gnu.org/PR10467
!  521. https://gcc.gnu.org/PR11226
!  522. https://gcc.gnu.org/PR11227
!  523. https://gcc.gnu.org/PR12644
!  524. https://gcc.gnu.org/PR13149
!  525. https://gcc.gnu.org/PR12654
!  526. https://gcc.gnu.org/PR12965
!  527. https://gcc.gnu.org/PR13031
!  528. https://gcc.gnu.org/PR11634
!  529. https://gcc.gnu.org/PR12158
!  530. https://gcc.gnu.org/PR11992
!  531. https://gcc.gnu.org/PR9365
!  532. https://gcc.gnu.org/PR10392
!  533. https://gcc.gnu.org/PR11322
!  534. https://gcc.gnu.org/PR13069
!  535. https://gcc.gnu.org/PR13302
!  536. https://gcc.gnu.org/PR13585
!  537. https://gcc.gnu.org/PR8916
!  538. https://gcc.gnu.org/PR11576
!  539. https://gcc.gnu.org/PR13122
!  540. https://gcc.gnu.org/PR13256
!  541. https://gcc.gnu.org/PR13373
!  542. https://gcc.gnu.org/PR12561
!  543. https://gcc.gnu.org/PR6243
!  544. https://gcc.gnu.org/PR11397
!  545. https://gcc.gnu.org/PR12505
!  546. https://gcc.gnu.org/PR13150
!  547. https://gcc.gnu.org/PR12666
!  548. https://gcc.gnu.org/PR12969
!  549. https://gcc.gnu.org/PR10819
!  550. https://gcc.gnu.org/PR11612
!  551. https://gcc.gnu.org/PR13211
!  552. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.4
!  553. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4
!  554. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.5
!  555. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5
!  556. https://gcc.gnu.org/gcc-3.3/changes.html#GCC3.3.6
!  557. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6
!  558. https://gcc.gnu.org/onlinedocs/
!  559. mailto:gcc-help@gcc.gnu.org
!  560. mailto:gcc@gcc.gnu.org
!  561. https://gcc.gnu.org/lists.html
!  562. https://www.fsf.org/
!  563. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/index.html
                               GCC 3.2 Release Series
*************** Caveats and New Features
*** 22151,22157 ****
  
      C++
  
!      * GCC 3.2 fixed serveral differences between the C++ ABI implemented
         in GCC and the multi-vendor standard, but more have been found
         since the release. 3.2.1 adds a new warning, -Wabi, to warn about
         code which is affected by these bugs. We will fix these bugs in
--- 23583,23589 ----
  
      C++
  
!      * GCC 3.2 fixed several differences between the C++ ABI implemented
         in GCC and the multi-vendor standard, but more have been found
         since the release. 3.2.1 adds a new warning, -Wabi, to warn about
         code which is affected by these bugs. We will fix these bugs in
*************** Caveats and New Features
*** 22180,22186 ****
       * Fixed prefetch code generation
       __________________________________________________________________
  
! GCC 3.2.3
  
     3.2.3 is a bug fix release only; there are no new features that were
     not present in GCC 3.2.2.
--- 23612,23618 ----
       * Fixed prefetch code generation
       __________________________________________________________________
  
! [4]GCC 3.2.3
  
     3.2.3 is a bug fix release only; there are no new features that were
     not present in GCC 3.2.2.
*************** GCC 3.2.3
*** 22195,22318 ****
  
      Internal Compiler Errors (multi-platform)
  
!      * [4]3782: (c++) -quiet -fstats produces a segmentation fault in
         cc1plus
!      * [5]6440: (c++) template specializations cause ICE
!      * [6]7050: (c++) ICE on: (i ? get_string() : throw)
!      * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
!      * [8]7982: (c++) ICE due to infinite recursion (using STL set)
!      * [9]8068: exceedingly high (infinite) memory usage
!      * [10]8178: ICE with __builtin_ffs
!      * [11]8396: ICE in copy_to_mode_reg, in explow.c
!      * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
!      * [13]9768: ICE when optimizing inline code at -O2
!      * [14]9798: (c++) Infinite recursion (segfault) in
         cp/decl.c:push_using_directive with recursive using directives
!      * [15]9799: mismatching structure initializer with nested flexible
         array member: ICE
!      * [16]9928: ICE on duplicate enum declaration
!      * [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects
         sparc, alpha)
!      * [18]10352: ICE in find_reloads_toplev
!      * [19]10336: ICE with -Wunreachable-code
  
      C/optimizer bugs:
  
!      * [20]8224: Incorrect joining of signed and unsigned division
!      * [21]8613: -O2 produces wrong code with builtin strlen and
         postincrements
!      * [22]8828: gcc reports some code is unreachable when it is not
!      * [23]9226: GCSE breaking argument passing
!      * [24]9853: miscompilation of non-constant structure initializer
!      * [25]9797: C99-style struct initializers are miscompiled
!      * [26]9967: Some standard C function calls should not be replaced
         when optimizing for size
!      * [27]10116: ce2: invalid merge of join_bb in the context of switch
         statements
!      * [28]10171: wrong code for inlined function
!      * [29]10175: -Wunreachable-code doesn't work for single lines
  
      C++ compiler and library:
  
!      * [30]8316: Confusing diagnostic for code that misuses conversion
         operators
!      * [31]9169: filebuf output fails if codecvt<>::out returns noconv
!      * [32]9420: incomplete type incorrectly reported
!      * [33]9459: typeof in return type specification of template not
         supported
!      * [34]9507: filebuf::open handles ios_base::ate incorrectly
!      * [35]9538: Out-of-bounds memory access in streambuf::sputbackc
!      * [36]9602: Total confusion about template/friend/virtual/abstract
!      * [37]9993: destructor not called for local object created within and
         returned from infinite loop
!      * [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2
         system
  
      Java compiler and library:
  
!      * [39]9652: libgcj build fails on irix6.5.1[78]
!      * [40]10144: gas on solaris complains about bad .stabs lines for
         java, native as unaffected
  
      x86-specific (Intel/AMD):
  
!      * [41]8746: gcc miscompiles Linux kernel ppa driver on x86
!      * [42]9888: -mcpu=k6 -Os produces out of range loop instructions
!      * [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu
         failed
!      * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
         failed
  
      SPARC-specific:
  
!      * [45]7784: [Sparc] ICE in extract_insn, in recog.c
!      * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in
         unroll.c
!      * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
!      * [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in
         execute/loop-2d.c
!      * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
!      * [50]9414: Scheduling bug on Ultrasparc
!      * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64
  
      m68k-specific:
  
!      * [52]7248: broken "inclusive or" code
!      * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
  
      PowerPC-specific:
  
!      * [54]9732: Wrong code with -O2 -fPIC
!      * [55]10073: ICE: powerpc cannot split insn
  
      Alpha-specific:
  
!      * [56]7702: optimization problem on a DEC alpha under OSF1
!      * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
  
      HP-specific:
  
!      * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275)
!      * [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
         (missing symbol)
!      * [60]10271: Floating point args don't get reloaded across function
         calls with -O2
  
      MIPS specific:
  
!      * [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in
         compile/920501-4.c
  
      CRIS specific:
  
!      * [62]10377: gcc-3.2.2 creates bad assembler code for cris
  
      Miscellaneous and minor bugs:
  
!      * [63]6955: collect2 says "core dumped" when there is no core
       __________________________________________________________________
  
! GCC 3.2.2
  
     Beginning with 3.2.2, GCC's Makefile suite supports redirection of make
     install by means of the DESTDIR variable. Parts of the GCC tree have
--- 23627,23750 ----
  
      Internal Compiler Errors (multi-platform)
  
!      * [5]3782: (c++) -quiet -fstats produces a segmentation fault in
         cc1plus
!      * [6]6440: (c++) template specializations cause ICE
!      * [7]7050: (c++) ICE on: (i ? get_string() : throw)
!      * [8]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
!      * [9]7982: (c++) ICE due to infinite recursion (using STL set)
!      * [10]8068: exceedingly high (infinite) memory usage
!      * [11]8178: ICE with __builtin_ffs
!      * [12]8396: ICE in copy_to_mode_reg, in explow.c
!      * [13]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
!      * [14]9768: ICE when optimizing inline code at -O2
!      * [15]9798: (c++) Infinite recursion (segfault) in
         cp/decl.c:push_using_directive with recursive using directives
!      * [16]9799: mismatching structure initializer with nested flexible
         array member: ICE
!      * [17]9928: ICE on duplicate enum declaration
!      * [18]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects
         sparc, alpha)
!      * [19]10352: ICE in find_reloads_toplev
!      * [20]10336: ICE with -Wunreachable-code
  
      C/optimizer bugs:
  
!      * [21]8224: Incorrect joining of signed and unsigned division
!      * [22]8613: -O2 produces wrong code with builtin strlen and
         postincrements
!      * [23]8828: gcc reports some code is unreachable when it is not
!      * [24]9226: GCSE breaking argument passing
!      * [25]9853: miscompilation of non-constant structure initializer
!      * [26]9797: C99-style struct initializers are miscompiled
!      * [27]9967: Some standard C function calls should not be replaced
         when optimizing for size
!      * [28]10116: ce2: invalid merge of join_bb in the context of switch
         statements
!      * [29]10171: wrong code for inlined function
!      * [30]10175: -Wunreachable-code doesn't work for single lines
  
      C++ compiler and library:
  
!      * [31]8316: Confusing diagnostic for code that misuses conversion
         operators
!      * [32]9169: filebuf output fails if codecvt<>::out returns noconv
!      * [33]9420: incomplete type incorrectly reported
!      * [34]9459: typeof in return type specification of template not
         supported
!      * [35]9507: filebuf::open handles ios_base::ate incorrectly
!      * [36]9538: Out-of-bounds memory access in streambuf::sputbackc
!      * [37]9602: Total confusion about template/friend/virtual/abstract
!      * [38]9993: destructor not called for local object created within and
         returned from infinite loop
!      * [39]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2
         system
  
      Java compiler and library:
  
!      * [40]9652: libgcj build fails on irix6.5.1[78]
!      * [41]10144: gas on solaris complains about bad .stabs lines for
         java, native as unaffected
  
      x86-specific (Intel/AMD):
  
!      * [42]8746: gcc miscompiles Linux kernel ppa driver on x86
!      * [43]9888: -mcpu=k6 -Os produces out of range loop instructions
!      * [44]9638: Cross-build for target i386-elf and i586-pc-linux-gnu
         failed
!      * [45]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
         failed
  
      SPARC-specific:
  
!      * [46]7784: [Sparc] ICE in extract_insn, in recog.c
!      * [47]7796: sparc extra failure with -m64 on execute/930921-1.c in
         unroll.c
!      * [48]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
!      * [49]8366: [Sparc] C testsuite failure with -m64 -fpic -O in
         execute/loop-2d.c
!      * [50]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
!      * [51]9414: Scheduling bug on Ultrasparc
!      * [52]10067: GCC-3.2.2 outputs invalid asm on sparc64
  
      m68k-specific:
  
!      * [53]7248: broken "inclusive or" code
!      * [54]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
  
      PowerPC-specific:
  
!      * [55]9732: Wrong code with -O2 -fPIC
!      * [56]10073: ICE: powerpc cannot split insn
  
      Alpha-specific:
  
!      * [57]7702: optimization problem on a DEC alpha under OSF1
!      * [58]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
  
      HP-specific:
  
!      * [59]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275)
!      * [60]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
         (missing symbol)
!      * [61]10271: Floating point args don't get reloaded across function
         calls with -O2
  
      MIPS specific:
  
!      * [62]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in
         compile/920501-4.c
  
      CRIS specific:
  
!      * [63]10377: gcc-3.2.2 creates bad assembler code for cris
  
      Miscellaneous and minor bugs:
  
!      * [64]6955: collect2 says "core dumped" when there is no core
       __________________________________________________________________
  
! [65]GCC 3.2.2
  
     Beginning with 3.2.2, GCC's Makefile suite supports redirection of make
     install by means of the DESTDIR variable. Parts of the GCC tree have
*************** GCC 3.2.2
*** 22339,22461 ****
  
      Internal Compiler Errors (multi-platform)
  
!      * [64]5919: (c++) ICE when passing variable array to template
         function
!      * [65]7129: (c++) ICE with min/max assignment operators (<?= and >?=)
!      * [66]7507: ICE with -O2 when address of called function is a
         complicated expression
!      * [67]7622: ICE with nested inline functions if function's address is
         taken
!      * [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR
!        [69]9258)
!      * [70]8031: (c++) ICE in code comparing typeids and casting from
         virtual base
!      * [71]8275: ICE in simplify_subreg
!      * [72]8332: (c++) builtin strlen/template interaction causes ICE
!      * [73]8372: (c++) ICE on explicit call of destructor
!      * [74]8439: (c, not c++) empty struct causes ICE
!      * [75]8442: (c++) ICE with nested template classes
!      * [76]8518: ICE when compiling mplayer ("extern inline" issue)
!      * [77]8615: (c++) ICE with out-of-range character constant template
         argument
!      * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
!      * [79]8799: (c++) ICE: error reporting routines re-entered
!      * [80]9328: (c++) ICE with typeof(X) for overloaded X
!      * [81]9465: (preprocessor) cpp -traditional ICE on null bytes
  
      C++ (compiler and library) bugs
  
!      * [82]47: scoping in nested classes is broken
!      * [83]6745: problems with iostream rdbuf() member function
!      * [84]8214: conversion from const char* const to char* sometimes
         accepted illegally
!      * [85]8493: builtin strlen and overload resolution (same bug as
!        [86]8332)
!      * [87]8503: strange behaviour of function types
!      * [88]8727: compiler confused by inheritance from an anonymous struct
!      * [89]7445: poor performance of std::locale::classic() in
         multi-threaded applications
!      * [90]8230: mishandling of overflow in vector<T>::resize
!      * [91]8399: sync_with_stdio(false) breaks unformatted input
!      * [92]8662: illegal access of private member of unnamed class is
         accepted
!      * [93]8707: "make distclean" fails in libstdc++-v3 directory
!      * [94]8708: __USE_MALLOC doesn't work
!      * [95]8790: Use of non-thread-safe strtok in src/localename.cc
!      * [96]8887: Bug in date formats with --enable-clocale=generic
!      * [97]9076: Call Frame Instructions are not handled correctly during
         unwind operation
!      * [98]9151: std::setprecision limited to 16 digits when outputting a
         double to a stream
!      * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers
!      * [100]9269: libstdc++ headers: explicit specialization of function
         must precede its first use
!      * [101]9322: return value of basic_streambuf<>::getloc affected by
         locale::global
!      * [102]9433: segfault in runtime support for dynamic_cast
  
      C and optimizer bugs
  
!      * [103]8032: GCC incorrectly initializes static structs that have
         flexible arrays
!      * [104]8639: simple arithmetic expression broken
!      * [105]8794: optimization improperly eliminates certain expressions
!      * [106]8832: traditional "asm volatile" code is illegally optimized
!      * [107]8988: loop optimizer bug: with -O2, code is generated that
         segfaults (found on i386, bug present for all platforms)
!      * [108]9492: structure copy clobbers subsequent stores to structure
  
      Objective-C bugs
  
!      * [109]9267: Objective-C parser won't build with newer bison versions
         (e.g. 1.875)
  
      Ada bugs
  
!      * [110]8344: Ada build problem due to conflict between gcc/final.o,
         gcc/ada/final.o
  
      Preprocessor bugs
  
!      * [111]8524: _Pragma within macros is improperly expanded
!      * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
         -fshort-wchar
  
      ARM-specific
  
!      * [113]9090: arm ICE with >= -O2; regression from gcc-2.95
  
      x86-specific (Intel/AMD)
  
!      * [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction)
!      * [115]8599: loop unroll bug with -march=k6-3
!      * [116]9506: ABI breakage in structure return (affects BSD and
         Cygwin, but not GNU/Linux)
  
      FreeBSD 5.0 specific
  
!      * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
  
      RTEMS-specific
  
!      * [118]9292: hppa1.1-rtems configurery problems
!      * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
!      * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue
!      * [121]9296: gthr-rtems regression
!      * [122]9316: powerpc-rtems: extending multilibs
  
      HP-PA specific
  
!      * [123]9493: ICE with -O2 when building a simple function
  
      Documentation
  
!      * [124]7341: hyperlink to gcov in GCC documentation doesn't work
!      * [125]8947: Please add a warning about "-malign-double" in docs
!      * [126]7448, [127]8882: typo cleanups
       __________________________________________________________________
  
! GCC 3.2.1
  
     3.2.1 adds a new warning, -Wabi. This option warns when GNU C++
     generates code that is known not to be binary-compatible with the
--- 23771,23893 ----
  
      Internal Compiler Errors (multi-platform)
  
!      * [66]5919: (c++) ICE when passing variable array to template
         function
!      * [67]7129: (c++) ICE with min/max assignment operators (<?= and >?=)
!      * [68]7507: ICE with -O2 when address of called function is a
         complicated expression
!      * [69]7622: ICE with nested inline functions if function's address is
         taken
!      * [70]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR
!        [71]9258)
!      * [72]8031: (c++) ICE in code comparing typeids and casting from
         virtual base
!      * [73]8275: ICE in simplify_subreg
!      * [74]8332: (c++) builtin strlen/template interaction causes ICE
!      * [75]8372: (c++) ICE on explicit call of destructor
!      * [76]8439: (c, not c++) empty struct causes ICE
!      * [77]8442: (c++) ICE with nested template classes
!      * [78]8518: ICE when compiling mplayer ("extern inline" issue)
!      * [79]8615: (c++) ICE with out-of-range character constant template
         argument
!      * [80]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
!      * [81]8799: (c++) ICE: error reporting routines re-entered
!      * [82]9328: (c++) ICE with typeof(X) for overloaded X
!      * [83]9465: (preprocessor) cpp -traditional ICE on null bytes
  
      C++ (compiler and library) bugs
  
!      * [84]47: scoping in nested classes is broken
!      * [85]6745: problems with iostream rdbuf() member function
!      * [86]8214: conversion from const char* const to char* sometimes
         accepted illegally
!      * [87]8493: builtin strlen and overload resolution (same bug as
!        [88]8332)
!      * [89]8503: strange behaviour of function types
!      * [90]8727: compiler confused by inheritance from an anonymous struct
!      * [91]7445: poor performance of std::locale::classic() in
         multi-threaded applications
!      * [92]8230: mishandling of overflow in vector<T>::resize
!      * [93]8399: sync_with_stdio(false) breaks unformatted input
!      * [94]8662: illegal access of private member of unnamed class is
         accepted
!      * [95]8707: "make distclean" fails in libstdc++-v3 directory
!      * [96]8708: __USE_MALLOC doesn't work
!      * [97]8790: Use of non-thread-safe strtok in src/localename.cc
!      * [98]8887: Bug in date formats with --enable-clocale=generic
!      * [99]9076: Call Frame Instructions are not handled correctly during
         unwind operation
!      * [100]9151: std::setprecision limited to 16 digits when outputting a
         double to a stream
!      * [101]9168: codecvt<char, char, mbstate_t> overwrites output buffers
!      * [102]9269: libstdc++ headers: explicit specialization of function
         must precede its first use
!      * [103]9322: return value of basic_streambuf<>::getloc affected by
         locale::global
!      * [104]9433: segfault in runtime support for dynamic_cast
  
      C and optimizer bugs
  
!      * [105]8032: GCC incorrectly initializes static structs that have
         flexible arrays
!      * [106]8639: simple arithmetic expression broken
!      * [107]8794: optimization improperly eliminates certain expressions
!      * [108]8832: traditional "asm volatile" code is illegally optimized
!      * [109]8988: loop optimizer bug: with -O2, code is generated that
         segfaults (found on i386, bug present for all platforms)
!      * [110]9492: structure copy clobbers subsequent stores to structure
  
      Objective-C bugs
  
!      * [111]9267: Objective-C parser won't build with newer bison versions
         (e.g. 1.875)
  
      Ada bugs
  
!      * [112]8344: Ada build problem due to conflict between gcc/final.o,
         gcc/ada/final.o
  
      Preprocessor bugs
  
!      * [113]8524: _Pragma within macros is improperly expanded
!      * [114]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
         -fshort-wchar
  
      ARM-specific
  
!      * [115]9090: arm ICE with >= -O2; regression from gcc-2.95
  
      x86-specific (Intel/AMD)
  
!      * [116]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction)
!      * [117]8599: loop unroll bug with -march=k6-3
!      * [118]9506: ABI breakage in structure return (affects BSD and
         Cygwin, but not GNU/Linux)
  
      FreeBSD 5.0 specific
  
!      * [119]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
  
      RTEMS-specific
  
!      * [120]9292: hppa1.1-rtems configurery problems
!      * [121]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
!      * [122]9295: [mips-rtems] config/mips/rtems.h init/fini issue
!      * [123]9296: gthr-rtems regression
!      * [124]9316: powerpc-rtems: extending multilibs
  
      HP-PA specific
  
!      * [125]9493: ICE with -O2 when building a simple function
  
      Documentation
  
!      * [126]7341: hyperlink to gcov in GCC documentation doesn't work
!      * [127]8947: Please add a warning about "-malign-double" in docs
!      * [128]7448, [129]8882: typo cleanups
       __________________________________________________________________
  
! [130]GCC 3.2.1
  
     3.2.1 adds a new warning, -Wabi. This option warns when GNU C++
     generates code that is known not to be binary-compatible with the
*************** GCC 3.2.1
*** 22470,22476 ****
     the new warning there are no new features that were not present in GCC
     3.2.
  
!    In addition, the previous fix for [128]PR 7445 (poor performance of
     std::locale::classic() in multi-threaded applications) was reverted
     ("unfixed"), because the "fix" was not thread-safe.
  
--- 23902,23908 ----
     the new warning there are no new features that were not present in GCC
     3.2.
  
!    In addition, the previous fix for [131]PR 7445 (poor performance of
     std::locale::classic() in multi-threaded applications) was reverted
     ("unfixed"), because the "fix" was not thread-safe.
  
*************** GCC 3.2.1
*** 22485,22667 ****
  
      Internal Compiler Errors (multi-platform)
  
!      * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
!      * [130]5661: (c++) ICE instantiating template on array of unknown
         size (bad code)
!      * [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on
         64-bit platforms
!      * [132]6994: (c++) ICE in find_function_data
!      * [133]7150: preprocessor: GCC -dM -E gives an ICE
!      * [134]7160: ICE when optimizing branches without a return value
!      * [135]7228: (c++) ICE when using member template and template
         function
!      * [136]7266: (c++) ICE with -pedantic on missing typename
!      * [137]7353: ICE from use of "Naming Types" extension, see above
!      * [138]7411: ICE in instantiate_virtual_regs_1, in function.c
!      * [139]7478: (c++) ICE on static_cast inside template
!      * [140]7526: preprocessor core dump when _Pragma implies #pragma
         dependency
!      * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803
         is a duplicate)
!      * [143]7754: (c++) ICE on union with template parameter
!      * [144]7788: (c++) redeclaring a definition as an incomplete class
         causes ICE
!      * [145]8031: (c++) ICE in comptypes, in cp/typeck.c
!      * [146]8055: preprocessor dies with SIG11 when building FreeBSD
         kernel
!      * [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related
         variables
!      * [148]8134: (c++) ICE in force_store_init_value on legal code
!      * [149]8149: (c++) ICE on incomplete type
!      * [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array
         initialization
  
      C++ (compiler and library) bugs
  
!      * [151]5607: No pointer adjustment in covariant return types
!      * [152]6579: Infinite loop with statement expressions in member
         initialization
!      * [153]6803: Default copy constructor bug in GCC 3.1
!      * [154]7176: g++ confused by friend and static member with same name
!      * [155]7188: Segfault with template class and recursive (incorrect)
         initializer list
!      * [156]7306: Regression: GCC 3.x fails to compile code with virtual
         inheritance if a method has a variable number of arguments
!      * [157]7461: ctype<char>::classic_table() returns offset array on
         Cygwin
!      * [158]7524: f(const float arg[3]) fails
!      * [159]7584: Erroneous ambiguous base error on using declaration
!      * [160]7676: Member template overloading problem
!      * [161]7679: infinite loop when a right parenthesis is missing
!      * [162]7811: default locale not taken from environment
!      * [163]7961: compare( char *) implemented incorrectly in
         basic_string<>
!      * [164]8071: basic_ostream::operator<<(streambuf*) loops forever if
!        streambuf::underflow() leaves gptr() NULL (dups: [165]8127,
!        [166]6745)
!      * [167]8096: deque::at() throws std::range_error instead of
         std::out_of_range
!      * [168]8127: cout << cin.rdbuf() infinite loop
!      * [169]8218: Excessively large memory consumed for classes with large
         array members
!      * [170]8287: GCC 3.2: Destructor called for non-constructed local
         object
!      * [171]8347: empty vector range used in string construction causes
         core dump
!      * [172]8348: fail() flag is set in istringstream when eof() flag is
         set
!      * [173]8391: regression: infinite loop in cp/decl2.c(finish_file)
  
      C and optimizer bugs
  
!      * [174]6627: -fno-align-functions doesn't seem to disable function
         alignment
!      * [175]6631: life_analysis misoptimizes code to initialize fields of
         a structure
!      * [176]7102: unsigned char division results in floating exception
!      * [177]7120: Run once loop should *always* be unrolled
         (pessimization)
!      * [178]7209: Bug involving array referencing and ?: operator
!      * [179]7515: invalid inlining of global function with -O3
!      * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test
!      * [181]8467: bug in sibling call optimization
  
      Preprocessor bugs
  
!      * [182]4890: incorrect line markers from the traditional preprocessor
!      * [183]7357: -M option omits system headers files (making it the same
         as -MM)
!      * [184]7358: Changes to Sun's make Dependencies
!      * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as
         C headers
!      * [186]7862: Interrupting GCC -MD removes .d file but not .o
!      * [187]8190: Failed compilation deletes -MD dependency file
!      * [188]8524: _Pragma within macro is improperly expanded
  
      x86 specific (Intel/AMD)
  
!      * [189]5351: (i686-only) function pass-by-value structure copy
!        corrupts stack ([190]7591 is a duplicate)
!      * [191]6845, [192]7034, [193]7124, [194]7174: ICE's with
         -march=pentium3/pentium2/athlon (these are all the same underlying
         bug, in MMX register use)
!      * [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same
         as above?)
!      * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
!      * [199]6981: wrong code in 64-bit manipulation on x86
!      * [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__
         macro
!      * [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
         intrinsics are broken
!      * [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with
         -march=pentium4
!      * [203]7693: Typo in i386 mmintrin.h header
!      * [204]7723: ICE - Pentium3 sse - GCC 3.2
!      * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
!      * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
  
      PowerPC specific
  
!      * [207]5967: GCC bug when profiling nested functions on powerpc
!      * [208]6984: wrong code generated with -O2, -O3, -Os for do-while
         loop on PowerPC
!      * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
!      * [210]7130: miscompiled code for GCC-3.1 on
         powerpc-unknown-linux-gnu with -funroll-all-loops
!      * [211]7133: PowerPC ICE: unrecognizable insn
!      * [212]7380: ICE in extract_insn, at recog.c:2148
!      * [213]8252: ICE on Altivec code with optimization turned on
!      * [214]8451: Altivec ICE in GCC 3.2
  
      HP/PA specific
  
!      * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
  
      SPARC specific
  
!      * [216]6668: when using --disable-multilib, libgcc_s.so is installed
         in the wrong place on sparc-solaris
!      * [217]7151: ICE when compiling for UltraSPARC
!      * [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long
         double and -O1
!      * [219]7842: [REGRESSION] SPARC code gen bug
  
      ARM specific
  
!      * [220]7856: [arm] invalid offset in constant pool reference
!      * [221]7967: optimization produces wrong code (ARM)
  
      Alpha specific
  
!      * [222]7374: __builtin_fabsl broken on alpha
  
      IBM s390 specific
  
!      * [223]7370: ICE in fixup_var_refs_1 on s390x
!      * [224]7409: loop optimization bug on s390x-linux-gnu
!      * [225]8232: s390x: ICE when using bcmp with int length argument
  
      SCO specific
  
!      * [226]7623: SCO OpenServer build fails with machmode.def: undefined
         symbol: BITS_PER_UNIT
  
      m68k/Coldfire specific
  
!      * [227]8314: crtbegin, crtend need to be multilib'ed for this
         platform
  
      Documentation
  
!      * [228]761: Document some undocumented options
!      * [229]5610: Fix documentation about invoking SSE instructions
         (-mfpmath=sse)
!      * [230]7484: List -Wmissing-declarations as C-only option
!      * [231]7531: -mcmodel not documented for x86-64
!      * [232]8120: Update documentation of bad use of ##
       __________________________________________________________________
  
! GCC 3.2
  
     3.2 is a small bug fix release, but there is a change to the
     application binary interface (ABI), hence the change to the second part
--- 23917,24099 ----
  
      Internal Compiler Errors (multi-platform)
  
!      * [132]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
!      * [133]5661: (c++) ICE instantiating template on array of unknown
         size (bad code)
!      * [134]6419: (c++) ICE in make_decl_rtl for "longest" attribute on
         64-bit platforms
!      * [135]6994: (c++) ICE in find_function_data
!      * [136]7150: preprocessor: GCC -dM -E gives an ICE
!      * [137]7160: ICE when optimizing branches without a return value
!      * [138]7228: (c++) ICE when using member template and template
         function
!      * [139]7266: (c++) ICE with -pedantic on missing typename
!      * [140]7353: ICE from use of "Naming Types" extension, see above
!      * [141]7411: ICE in instantiate_virtual_regs_1, in function.c
!      * [142]7478: (c++) ICE on static_cast inside template
!      * [143]7526: preprocessor core dump when _Pragma implies #pragma
         dependency
!      * [144]7721: (c++) ICE on simple (but incorrect) template ([145]7803
         is a duplicate)
!      * [146]7754: (c++) ICE on union with template parameter
!      * [147]7788: (c++) redeclaring a definition as an incomplete class
         causes ICE
!      * [148]8031: (c++) ICE in comptypes, in cp/typeck.c
!      * [149]8055: preprocessor dies with SIG11 when building FreeBSD
         kernel
!      * [150]8067: (c++) ICE due to mishandling of __FUNCTION__ and related
         variables
!      * [151]8134: (c++) ICE in force_store_init_value on legal code
!      * [152]8149: (c++) ICE on incomplete type
!      * [153]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array
         initialization
  
      C++ (compiler and library) bugs
  
!      * [154]5607: No pointer adjustment in covariant return types
!      * [155]6579: Infinite loop with statement expressions in member
         initialization
!      * [156]6803: Default copy constructor bug in GCC 3.1
!      * [157]7176: g++ confused by friend and static member with same name
!      * [158]7188: Segfault with template class and recursive (incorrect)
         initializer list
!      * [159]7306: Regression: GCC 3.x fails to compile code with virtual
         inheritance if a method has a variable number of arguments
!      * [160]7461: ctype<char>::classic_table() returns offset array on
         Cygwin
!      * [161]7524: f(const float arg[3]) fails
!      * [162]7584: Erroneous ambiguous base error on using declaration
!      * [163]7676: Member template overloading problem
!      * [164]7679: infinite loop when a right parenthesis is missing
!      * [165]7811: default locale not taken from environment
!      * [166]7961: compare( char *) implemented incorrectly in
         basic_string<>
!      * [167]8071: basic_ostream::operator<<(streambuf*) loops forever if
!        streambuf::underflow() leaves gptr() NULL (dups: [168]8127,
!        [169]6745)
!      * [170]8096: deque::at() throws std::range_error instead of
         std::out_of_range
!      * [171]8127: cout << cin.rdbuf() infinite loop
!      * [172]8218: Excessively large memory consumed for classes with large
         array members
!      * [173]8287: GCC 3.2: Destructor called for non-constructed local
         object
!      * [174]8347: empty vector range used in string construction causes
         core dump
!      * [175]8348: fail() flag is set in istringstream when eof() flag is
         set
!      * [176]8391: regression: infinite loop in cp/decl2.c(finish_file)
  
      C and optimizer bugs
  
!      * [177]6627: -fno-align-functions doesn't seem to disable function
         alignment
!      * [178]6631: life_analysis misoptimizes code to initialize fields of
         a structure
!      * [179]7102: unsigned char division results in floating exception
!      * [180]7120: Run once loop should *always* be unrolled
         (pessimization)
!      * [181]7209: Bug involving array referencing and ?: operator
!      * [182]7515: invalid inlining of global function with -O3
!      * [183]7814: incorrect scheduling for glibc-2.2.92 strcpy test
!      * [184]8467: bug in sibling call optimization
  
      Preprocessor bugs
  
!      * [185]4890: incorrect line markers from the traditional preprocessor
!      * [186]7357: -M option omits system headers files (making it the same
         as -MM)
!      * [187]7358: Changes to Sun's make Dependencies
!      * [188]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as
         C headers
!      * [189]7862: Interrupting GCC -MD removes .d file but not .o
!      * [190]8190: Failed compilation deletes -MD dependency file
!      * [191]8524: _Pragma within macro is improperly expanded
  
      x86 specific (Intel/AMD)
  
!      * [192]5351: (i686-only) function pass-by-value structure copy
!        corrupts stack ([193]7591 is a duplicate)
!      * [194]6845, [195]7034, [196]7124, [197]7174: ICE's with
         -march=pentium3/pentium2/athlon (these are all the same underlying
         bug, in MMX register use)
!      * [198]7134, [199]7375, [200]7390: ICE with -march=athlon (maybe same
         as above?)
!      * [201]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
!      * [202]6981: wrong code in 64-bit manipulation on x86
!      * [203]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__
         macro
!      * [204]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
         intrinsics are broken
!      * [205]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with
         -march=pentium4
!      * [206]7693: Typo in i386 mmintrin.h header
!      * [207]7723: ICE - Pentium3 sse - GCC 3.2
!      * [208]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
!      * [209]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
  
      PowerPC specific
  
!      * [210]5967: GCC bug when profiling nested functions on powerpc
!      * [211]6984: wrong code generated with -O2, -O3, -Os for do-while
         loop on PowerPC
!      * [212]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
!      * [213]7130: miscompiled code for GCC-3.1 on
         powerpc-unknown-linux-gnu with -funroll-all-loops
!      * [214]7133: PowerPC ICE: unrecognizable insn
!      * [215]7380: ICE in extract_insn, at recog.c:2148
!      * [216]8252: ICE on Altivec code with optimization turned on
!      * [217]8451: Altivec ICE in GCC 3.2
  
      HP/PA specific
  
!      * [218]7250: __ashrdi3 returns wrong value on 32 bit hppa
  
      SPARC specific
  
!      * [219]6668: when using --disable-multilib, libgcc_s.so is installed
         in the wrong place on sparc-solaris
!      * [220]7151: ICE when compiling for UltraSPARC
!      * [221]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long
         double and -O1
!      * [222]7842: [REGRESSION] SPARC code gen bug
  
      ARM specific
  
!      * [223]7856: [arm] invalid offset in constant pool reference
!      * [224]7967: optimization produces wrong code (ARM)
  
      Alpha specific
  
!      * [225]7374: __builtin_fabsl broken on alpha
  
      IBM s390 specific
  
!      * [226]7370: ICE in fixup_var_refs_1 on s390x
!      * [227]7409: loop optimization bug on s390x-linux-gnu
!      * [228]8232: s390x: ICE when using bcmp with int length argument
  
      SCO specific
  
!      * [229]7623: SCO OpenServer build fails with machmode.def: undefined
         symbol: BITS_PER_UNIT
  
      m68k/Coldfire specific
  
!      * [230]8314: crtbegin, crtend need to be multilib'ed for this
         platform
  
      Documentation
  
!      * [231]761: Document some undocumented options
!      * [232]5610: Fix documentation about invoking SSE instructions
         (-mfpmath=sse)
!      * [233]7484: List -Wmissing-declarations as C-only option
!      * [234]7531: -mcmodel not documented for x86-64
!      * [235]8120: Update documentation of bad use of ##
       __________________________________________________________________
  
! [236]GCC 3.2
  
     3.2 is a small bug fix release, but there is a change to the
     application binary interface (ABI), hence the change to the second part
*************** GCC 3.2
*** 22675,22969 ****
  
      C++
  
!      * [233]7320: g++ 3.2 relocation problem
!      * [234]7470: vtable: virtual function pointers not in declaration
         order
  
      libstdc++
  
!      * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t
!      * [236]6503, [237]6642, [238]7186: Problems with comparing or
         subtracting various types of const and non-const iterators
!      * [239]7216: ambiguity with basic_iostream::traits_type
!      * [240]7220: problem with basic_istream::ignore(0,delimiter)
!      * [241]7222: locale::operator==() doesn't work on std::locale("")
!      * [242]7286: placement operator delete issue
!      * [243]7442: cxxabi.h does not match the C++ ABI
!      * [244]7445: poor performance of std::locale::classic() in
         multi-threaded applications
  
      x86-64 specific
  
!      * [245]7291: off-by-one in generated inline bzero code for x86-64
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [246]GCC manuals. If that fails, the
!     [247]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [248]gcc@gcc.gnu.org. All of [249]our lists have public
      archives.
  
!    Copyright (C) [250]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [251]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
     1. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
     2. https://gcc.gnu.org/gcc-3.1/changes.html
     3. https://gcc.gnu.org/gcc-3.2/c++-abi.html
!    4. https://gcc.gnu.org/PR3782
!    5. https://gcc.gnu.org/PR6440
!    6. https://gcc.gnu.org/PR7050
!    7. https://gcc.gnu.org/PR7741
!    8. https://gcc.gnu.org/PR7982
!    9. https://gcc.gnu.org/PR8068
!   10. https://gcc.gnu.org/PR8178
!   11. https://gcc.gnu.org/PR8396
!   12. https://gcc.gnu.org/PR8674
!   13. https://gcc.gnu.org/PR9768
!   14. https://gcc.gnu.org/PR9798
!   15. https://gcc.gnu.org/PR9799
!   16. https://gcc.gnu.org/PR9928
!   17. https://gcc.gnu.org/PR10114
!   18. https://gcc.gnu.org/PR10352
!   19. https://gcc.gnu.org/PR10336
!   20. https://gcc.gnu.org/PR8224
!   21. https://gcc.gnu.org/PR8613
!   22. https://gcc.gnu.org/PR8828
!   23. https://gcc.gnu.org/PR9226
!   24. https://gcc.gnu.org/PR9853
!   25. https://gcc.gnu.org/PR9797
!   26. https://gcc.gnu.org/PR9967
!   27. https://gcc.gnu.org/PR10116
!   28. https://gcc.gnu.org/PR10171
!   29. https://gcc.gnu.org/PR10175
!   30. https://gcc.gnu.org/PR8316
!   31. https://gcc.gnu.org/PR9169
!   32. https://gcc.gnu.org/PR9420
!   33. https://gcc.gnu.org/PR9459
!   34. https://gcc.gnu.org/PR9507
!   35. https://gcc.gnu.org/PR9538
!   36. https://gcc.gnu.org/PR9602
!   37. https://gcc.gnu.org/PR9993
!   38. https://gcc.gnu.org/PR10167
!   39. https://gcc.gnu.org/PR9652
!   40. https://gcc.gnu.org/PR10144
!   41. https://gcc.gnu.org/PR8746
!   42. https://gcc.gnu.org/PR9888
!   43. https://gcc.gnu.org/PR9638
!   44. https://gcc.gnu.org/PR9954
!   45. https://gcc.gnu.org/PR7784
!   46. https://gcc.gnu.org/PR7796
!   47. https://gcc.gnu.org/PR8281
!   48. https://gcc.gnu.org/PR8366
!   49. https://gcc.gnu.org/PR8726
!   50. https://gcc.gnu.org/PR9414
!   51. https://gcc.gnu.org/PR10067
!   52. https://gcc.gnu.org/PR7248
!   53. https://gcc.gnu.org/PR8343
!   54. https://gcc.gnu.org/PR9732
!   55. https://gcc.gnu.org/PR10073
!   56. https://gcc.gnu.org/PR7702
!   57. https://gcc.gnu.org/PR9671
!   58. https://gcc.gnu.org/PR8694
!   59. https://gcc.gnu.org/PR9953
!   60. https://gcc.gnu.org/PR10271
!   61. https://gcc.gnu.org/PR6362
!   62. https://gcc.gnu.org/PR10377
!   63. https://gcc.gnu.org/PR6955
!   64. https://gcc.gnu.org/PR5919
!   65. https://gcc.gnu.org/PR7129
!   66. https://gcc.gnu.org/PR7507
!   67. https://gcc.gnu.org/PR7622
!   68. https://gcc.gnu.org/PR7681
!   69. https://gcc.gnu.org/PR9528
!   70. https://gcc.gnu.org/PR8031
!   71. https://gcc.gnu.org/PR8275
!   72. https://gcc.gnu.org/PR8332
!   73. https://gcc.gnu.org/PR8372
!   74. https://gcc.gnu.org/PR8439
!   75. https://gcc.gnu.org/PR8442
!   76. https://gcc.gnu.org/PR8518
!   77. https://gcc.gnu.org/PR8615
!   78. https://gcc.gnu.org/PR8663
!   79. https://gcc.gnu.org/PR8799
!   80. https://gcc.gnu.org/PR9328
!   81. https://gcc.gnu.org/PR9465
!   82. https://gcc.gnu.org/PR47
!   83. https://gcc.gnu.org/PR6745
!   84. https://gcc.gnu.org/PR8214
!   85. https://gcc.gnu.org/PR8493
!   86. https://gcc.gnu.org/PR8332
!   87. https://gcc.gnu.org/PR8503
!   88. https://gcc.gnu.org/PR8727
!   89. https://gcc.gnu.org/PR7445
!   90. https://gcc.gnu.org/PR8230
!   91. https://gcc.gnu.org/PR8399
!   92. https://gcc.gnu.org/PR8662
!   93. https://gcc.gnu.org/PR8707
!   94. https://gcc.gnu.org/PR8708
!   95. https://gcc.gnu.org/PR8790
!   96. https://gcc.gnu.org/PR8887
!   97. https://gcc.gnu.org/PR9076
!   98. https://gcc.gnu.org/PR9151
!   99. https://gcc.gnu.org/PR9168
!  100. https://gcc.gnu.org/PR9269
!  101. https://gcc.gnu.org/PR9322
!  102. https://gcc.gnu.org/PR9433
!  103. https://gcc.gnu.org/PR8032
!  104. https://gcc.gnu.org/PR8639
!  105. https://gcc.gnu.org/PR8794
!  106. https://gcc.gnu.org/PR8832
!  107. https://gcc.gnu.org/PR8988
!  108. https://gcc.gnu.org/PR9492
!  109. https://gcc.gnu.org/PR9267
!  110. https://gcc.gnu.org/PR8344
!  111. https://gcc.gnu.org/PR8524
!  112. https://gcc.gnu.org/PR8880
!  113. https://gcc.gnu.org/PR9090
!  114. https://gcc.gnu.org/PR8588
!  115. https://gcc.gnu.org/PR8599
!  116. https://gcc.gnu.org/PR9506
!  117. https://gcc.gnu.org/PR9484
!  118. https://gcc.gnu.org/PR9292
!  119. https://gcc.gnu.org/PR9293
!  120. https://gcc.gnu.org/PR9295
!  121. https://gcc.gnu.org/PR9296
!  122. https://gcc.gnu.org/PR9316
!  123. https://gcc.gnu.org/PR9493
!  124. https://gcc.gnu.org/PR7341
!  125. https://gcc.gnu.org/PR8947
!  126. https://gcc.gnu.org/PR7448
!  127. https://gcc.gnu.org/PR8882
!  128. https://gcc.gnu.org/PR7445
!  129. https://gcc.gnu.org/PR2521
!  130. https://gcc.gnu.org/PR5661
!  131. https://gcc.gnu.org/PR6419
!  132. https://gcc.gnu.org/PR6994
!  133. https://gcc.gnu.org/PR7150
!  134. https://gcc.gnu.org/PR7160
!  135. https://gcc.gnu.org/PR7228
!  136. https://gcc.gnu.org/PR7266
!  137. https://gcc.gnu.org/PR7353
!  138. https://gcc.gnu.org/PR7411
!  139. https://gcc.gnu.org/PR7478
!  140. https://gcc.gnu.org/PR7526
!  141. https://gcc.gnu.org/PR7721
!  142. https://gcc.gnu.org/PR7803
!  143. https://gcc.gnu.org/PR7754
!  144. https://gcc.gnu.org/PR7788
!  145. https://gcc.gnu.org/PR8031
!  146. https://gcc.gnu.org/PR8055
!  147. https://gcc.gnu.org/PR8067
!  148. https://gcc.gnu.org/PR8134
!  149. https://gcc.gnu.org/PR8149
!  150. https://gcc.gnu.org/PR8160
!  151. https://gcc.gnu.org/PR5607
!  152. https://gcc.gnu.org/PR6579
!  153. https://gcc.gnu.org/PR6803
!  154. https://gcc.gnu.org/PR7176
!  155. https://gcc.gnu.org/PR7188
!  156. https://gcc.gnu.org/PR7306
!  157. https://gcc.gnu.org/PR7461
!  158. https://gcc.gnu.org/PR7524
!  159. https://gcc.gnu.org/PR7584
!  160. https://gcc.gnu.org/PR7676
!  161. https://gcc.gnu.org/PR7679
!  162. https://gcc.gnu.org/PR7811
!  163. https://gcc.gnu.org/PR7961
!  164. https://gcc.gnu.org/PR8071
!  165. https://gcc.gnu.org/PR8127
!  166. https://gcc.gnu.org/PR6745
!  167. https://gcc.gnu.org/PR8096
   168. https://gcc.gnu.org/PR8127
!  169. https://gcc.gnu.org/PR8218
!  170. https://gcc.gnu.org/PR8287
!  171. https://gcc.gnu.org/PR8347
!  172. https://gcc.gnu.org/PR8348
!  173. https://gcc.gnu.org/PR8391
!  174. https://gcc.gnu.org/PR6627
!  175. https://gcc.gnu.org/PR6631
!  176. https://gcc.gnu.org/PR7102
!  177. https://gcc.gnu.org/PR7120
!  178. https://gcc.gnu.org/PR7209
!  179. https://gcc.gnu.org/PR7515
!  180. https://gcc.gnu.org/PR7814
!  181. https://gcc.gnu.org/PR8467
!  182. https://gcc.gnu.org/PR4890
!  183. https://gcc.gnu.org/PR7357
!  184. https://gcc.gnu.org/PR7358
!  185. https://gcc.gnu.org/PR7602
!  186. https://gcc.gnu.org/PR7862
!  187. https://gcc.gnu.org/PR8190
!  188. https://gcc.gnu.org/PR8524
!  189. https://gcc.gnu.org/PR5351
!  190. https://gcc.gnu.org/PR7591
!  191. https://gcc.gnu.org/PR6845
!  192. https://gcc.gnu.org/PR7034
!  193. https://gcc.gnu.org/PR7124
!  194. https://gcc.gnu.org/PR7174
!  195. https://gcc.gnu.org/PR7134
!  196. https://gcc.gnu.org/PR7375
!  197. https://gcc.gnu.org/PR7390
!  198. https://gcc.gnu.org/PR6890
!  199. https://gcc.gnu.org/PR6981
!  200. https://gcc.gnu.org/PR7242
!  201. https://gcc.gnu.org/PR7396
!  202. https://gcc.gnu.org/PR7630
!  203. https://gcc.gnu.org/PR7693
!  204. https://gcc.gnu.org/PR7723
!  205. https://gcc.gnu.org/PR7951
!  206. https://gcc.gnu.org/PR8146
!  207. https://gcc.gnu.org/PR5967
!  208. https://gcc.gnu.org/PR6984
!  209. https://gcc.gnu.org/PR7114
!  210. https://gcc.gnu.org/PR7130
!  211. https://gcc.gnu.org/PR7133
!  212. https://gcc.gnu.org/PR7380
!  213. https://gcc.gnu.org/PR8252
!  214. https://gcc.gnu.org/PR8451
!  215. https://gcc.gnu.org/PR7250
!  216. https://gcc.gnu.org/PR6668
!  217. https://gcc.gnu.org/PR7151
!  218. https://gcc.gnu.org/PR7335
!  219. https://gcc.gnu.org/PR7842
!  220. https://gcc.gnu.org/PR7856
!  221. https://gcc.gnu.org/PR7967
!  222. https://gcc.gnu.org/PR7374
!  223. https://gcc.gnu.org/PR7370
!  224. https://gcc.gnu.org/PR7409
!  225. https://gcc.gnu.org/PR8232
!  226. https://gcc.gnu.org/PR7623
!  227. https://gcc.gnu.org/PR8314
!  228. https://gcc.gnu.org/PR761
!  229. https://gcc.gnu.org/PR5610
!  230. https://gcc.gnu.org/PR7484
!  231. https://gcc.gnu.org/PR7531
!  232. https://gcc.gnu.org/PR8120
!  233. https://gcc.gnu.org/PR7320
!  234. https://gcc.gnu.org/PR7470
!  235. https://gcc.gnu.org/PR6410
!  236. https://gcc.gnu.org/PR6503
!  237. https://gcc.gnu.org/PR6642
!  238. https://gcc.gnu.org/PR7186
!  239. https://gcc.gnu.org/PR7216
!  240. https://gcc.gnu.org/PR7220
!  241. https://gcc.gnu.org/PR7222
!  242. https://gcc.gnu.org/PR7286
!  243. https://gcc.gnu.org/PR7442
!  244. https://gcc.gnu.org/PR7445
!  245. https://gcc.gnu.org/PR7291
!  246. https://gcc.gnu.org/onlinedocs/
!  247. mailto:gcc-help@gcc.gnu.org
!  248. mailto:gcc@gcc.gnu.org
!  249. https://gcc.gnu.org/lists.html
!  250. https://www.fsf.org/
!  251. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/index.html
                                      GCC 3.1
--- 24107,24405 ----
  
      C++
  
!      * [237]7320: g++ 3.2 relocation problem
!      * [238]7470: vtable: virtual function pointers not in declaration
         order
  
      libstdc++
  
!      * [239]6410: Trouble with non-ASCII monetary symbols and wchar_t
!      * [240]6503, [241]6642, [242]7186: Problems with comparing or
         subtracting various types of const and non-const iterators
!      * [243]7216: ambiguity with basic_iostream::traits_type
!      * [244]7220: problem with basic_istream::ignore(0,delimiter)
!      * [245]7222: locale::operator==() doesn't work on std::locale("")
!      * [246]7286: placement operator delete issue
!      * [247]7442: cxxabi.h does not match the C++ ABI
!      * [248]7445: poor performance of std::locale::classic() in
         multi-threaded applications
  
      x86-64 specific
  
!      * [249]7291: off-by-one in generated inline bzero code for x86-64
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [250]GCC manuals. If that fails, the
!     [251]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [252]gcc@gcc.gnu.org. All of [253]our lists have public
      archives.
  
!    Copyright (C) [254]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [255]maintained by the GCC team. Last modified
!    2025-04-08.
  
  References
  
     1. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
     2. https://gcc.gnu.org/gcc-3.1/changes.html
     3. https://gcc.gnu.org/gcc-3.2/c++-abi.html
!    4. https://gcc.gnu.org/gcc-3.2/changes.html#GCC3.2.3
!    5. https://gcc.gnu.org/PR3782
!    6. https://gcc.gnu.org/PR6440
!    7. https://gcc.gnu.org/PR7050
!    8. https://gcc.gnu.org/PR7741
!    9. https://gcc.gnu.org/PR7982
!   10. https://gcc.gnu.org/PR8068
!   11. https://gcc.gnu.org/PR8178
!   12. https://gcc.gnu.org/PR8396
!   13. https://gcc.gnu.org/PR8674
!   14. https://gcc.gnu.org/PR9768
!   15. https://gcc.gnu.org/PR9798
!   16. https://gcc.gnu.org/PR9799
!   17. https://gcc.gnu.org/PR9928
!   18. https://gcc.gnu.org/PR10114
!   19. https://gcc.gnu.org/PR10352
!   20. https://gcc.gnu.org/PR10336
!   21. https://gcc.gnu.org/PR8224
!   22. https://gcc.gnu.org/PR8613
!   23. https://gcc.gnu.org/PR8828
!   24. https://gcc.gnu.org/PR9226
!   25. https://gcc.gnu.org/PR9853
!   26. https://gcc.gnu.org/PR9797
!   27. https://gcc.gnu.org/PR9967
!   28. https://gcc.gnu.org/PR10116
!   29. https://gcc.gnu.org/PR10171
!   30. https://gcc.gnu.org/PR10175
!   31. https://gcc.gnu.org/PR8316
!   32. https://gcc.gnu.org/PR9169
!   33. https://gcc.gnu.org/PR9420
!   34. https://gcc.gnu.org/PR9459
!   35. https://gcc.gnu.org/PR9507
!   36. https://gcc.gnu.org/PR9538
!   37. https://gcc.gnu.org/PR9602
!   38. https://gcc.gnu.org/PR9993
!   39. https://gcc.gnu.org/PR10167
!   40. https://gcc.gnu.org/PR9652
!   41. https://gcc.gnu.org/PR10144
!   42. https://gcc.gnu.org/PR8746
!   43. https://gcc.gnu.org/PR9888
!   44. https://gcc.gnu.org/PR9638
!   45. https://gcc.gnu.org/PR9954
!   46. https://gcc.gnu.org/PR7784
!   47. https://gcc.gnu.org/PR7796
!   48. https://gcc.gnu.org/PR8281
!   49. https://gcc.gnu.org/PR8366
!   50. https://gcc.gnu.org/PR8726
!   51. https://gcc.gnu.org/PR9414
!   52. https://gcc.gnu.org/PR10067
!   53. https://gcc.gnu.org/PR7248
!   54. https://gcc.gnu.org/PR8343
!   55. https://gcc.gnu.org/PR9732
!   56. https://gcc.gnu.org/PR10073
!   57. https://gcc.gnu.org/PR7702
!   58. https://gcc.gnu.org/PR9671
!   59. https://gcc.gnu.org/PR8694
!   60. https://gcc.gnu.org/PR9953
!   61. https://gcc.gnu.org/PR10271
!   62. https://gcc.gnu.org/PR6362
!   63. https://gcc.gnu.org/PR10377
!   64. https://gcc.gnu.org/PR6955
!   65. https://gcc.gnu.org/gcc-3.2/changes.html#GCC3.2.2
!   66. https://gcc.gnu.org/PR5919
!   67. https://gcc.gnu.org/PR7129
!   68. https://gcc.gnu.org/PR7507
!   69. https://gcc.gnu.org/PR7622
!   70. https://gcc.gnu.org/PR7681
!   71. https://gcc.gnu.org/PR9528
!   72. https://gcc.gnu.org/PR8031
!   73. https://gcc.gnu.org/PR8275
!   74. https://gcc.gnu.org/PR8332
!   75. https://gcc.gnu.org/PR8372
!   76. https://gcc.gnu.org/PR8439
!   77. https://gcc.gnu.org/PR8442
!   78. https://gcc.gnu.org/PR8518
!   79. https://gcc.gnu.org/PR8615
!   80. https://gcc.gnu.org/PR8663
!   81. https://gcc.gnu.org/PR8799
!   82. https://gcc.gnu.org/PR9328
!   83. https://gcc.gnu.org/PR9465
!   84. https://gcc.gnu.org/PR47
!   85. https://gcc.gnu.org/PR6745
!   86. https://gcc.gnu.org/PR8214
!   87. https://gcc.gnu.org/PR8493
!   88. https://gcc.gnu.org/PR8332
!   89. https://gcc.gnu.org/PR8503
!   90. https://gcc.gnu.org/PR8727
!   91. https://gcc.gnu.org/PR7445
!   92. https://gcc.gnu.org/PR8230
!   93. https://gcc.gnu.org/PR8399
!   94. https://gcc.gnu.org/PR8662
!   95. https://gcc.gnu.org/PR8707
!   96. https://gcc.gnu.org/PR8708
!   97. https://gcc.gnu.org/PR8790
!   98. https://gcc.gnu.org/PR8887
!   99. https://gcc.gnu.org/PR9076
!  100. https://gcc.gnu.org/PR9151
!  101. https://gcc.gnu.org/PR9168
!  102. https://gcc.gnu.org/PR9269
!  103. https://gcc.gnu.org/PR9322
!  104. https://gcc.gnu.org/PR9433
!  105. https://gcc.gnu.org/PR8032
!  106. https://gcc.gnu.org/PR8639
!  107. https://gcc.gnu.org/PR8794
!  108. https://gcc.gnu.org/PR8832
!  109. https://gcc.gnu.org/PR8988
!  110. https://gcc.gnu.org/PR9492
!  111. https://gcc.gnu.org/PR9267
!  112. https://gcc.gnu.org/PR8344
!  113. https://gcc.gnu.org/PR8524
!  114. https://gcc.gnu.org/PR8880
!  115. https://gcc.gnu.org/PR9090
!  116. https://gcc.gnu.org/PR8588
!  117. https://gcc.gnu.org/PR8599
!  118. https://gcc.gnu.org/PR9506
!  119. https://gcc.gnu.org/PR9484
!  120. https://gcc.gnu.org/PR9292
!  121. https://gcc.gnu.org/PR9293
!  122. https://gcc.gnu.org/PR9295
!  123. https://gcc.gnu.org/PR9296
!  124. https://gcc.gnu.org/PR9316
!  125. https://gcc.gnu.org/PR9493
!  126. https://gcc.gnu.org/PR7341
!  127. https://gcc.gnu.org/PR8947
!  128. https://gcc.gnu.org/PR7448
!  129. https://gcc.gnu.org/PR8882
!  130. https://gcc.gnu.org/gcc-3.2/changes.html#GCC3.2.1
!  131. https://gcc.gnu.org/PR7445
!  132. https://gcc.gnu.org/PR2521
!  133. https://gcc.gnu.org/PR5661
!  134. https://gcc.gnu.org/PR6419
!  135. https://gcc.gnu.org/PR6994
!  136. https://gcc.gnu.org/PR7150
!  137. https://gcc.gnu.org/PR7160
!  138. https://gcc.gnu.org/PR7228
!  139. https://gcc.gnu.org/PR7266
!  140. https://gcc.gnu.org/PR7353
!  141. https://gcc.gnu.org/PR7411
!  142. https://gcc.gnu.org/PR7478
!  143. https://gcc.gnu.org/PR7526
!  144. https://gcc.gnu.org/PR7721
!  145. https://gcc.gnu.org/PR7803
!  146. https://gcc.gnu.org/PR7754
!  147. https://gcc.gnu.org/PR7788
!  148. https://gcc.gnu.org/PR8031
!  149. https://gcc.gnu.org/PR8055
!  150. https://gcc.gnu.org/PR8067
!  151. https://gcc.gnu.org/PR8134
!  152. https://gcc.gnu.org/PR8149
!  153. https://gcc.gnu.org/PR8160
!  154. https://gcc.gnu.org/PR5607
!  155. https://gcc.gnu.org/PR6579
!  156. https://gcc.gnu.org/PR6803
!  157. https://gcc.gnu.org/PR7176
!  158. https://gcc.gnu.org/PR7188
!  159. https://gcc.gnu.org/PR7306
!  160. https://gcc.gnu.org/PR7461
!  161. https://gcc.gnu.org/PR7524
!  162. https://gcc.gnu.org/PR7584
!  163. https://gcc.gnu.org/PR7676
!  164. https://gcc.gnu.org/PR7679
!  165. https://gcc.gnu.org/PR7811
!  166. https://gcc.gnu.org/PR7961
!  167. https://gcc.gnu.org/PR8071
   168. https://gcc.gnu.org/PR8127
!  169. https://gcc.gnu.org/PR6745
!  170. https://gcc.gnu.org/PR8096
!  171. https://gcc.gnu.org/PR8127
!  172. https://gcc.gnu.org/PR8218
!  173. https://gcc.gnu.org/PR8287
!  174. https://gcc.gnu.org/PR8347
!  175. https://gcc.gnu.org/PR8348
!  176. https://gcc.gnu.org/PR8391
!  177. https://gcc.gnu.org/PR6627
!  178. https://gcc.gnu.org/PR6631
!  179. https://gcc.gnu.org/PR7102
!  180. https://gcc.gnu.org/PR7120
!  181. https://gcc.gnu.org/PR7209
!  182. https://gcc.gnu.org/PR7515
!  183. https://gcc.gnu.org/PR7814
!  184. https://gcc.gnu.org/PR8467
!  185. https://gcc.gnu.org/PR4890
!  186. https://gcc.gnu.org/PR7357
!  187. https://gcc.gnu.org/PR7358
!  188. https://gcc.gnu.org/PR7602
!  189. https://gcc.gnu.org/PR7862
!  190. https://gcc.gnu.org/PR8190
!  191. https://gcc.gnu.org/PR8524
!  192. https://gcc.gnu.org/PR5351
!  193. https://gcc.gnu.org/PR7591
!  194. https://gcc.gnu.org/PR6845
!  195. https://gcc.gnu.org/PR7034
!  196. https://gcc.gnu.org/PR7124
!  197. https://gcc.gnu.org/PR7174
!  198. https://gcc.gnu.org/PR7134
!  199. https://gcc.gnu.org/PR7375
!  200. https://gcc.gnu.org/PR7390
!  201. https://gcc.gnu.org/PR6890
!  202. https://gcc.gnu.org/PR6981
!  203. https://gcc.gnu.org/PR7242
!  204. https://gcc.gnu.org/PR7396
!  205. https://gcc.gnu.org/PR7630
!  206. https://gcc.gnu.org/PR7693
!  207. https://gcc.gnu.org/PR7723
!  208. https://gcc.gnu.org/PR7951
!  209. https://gcc.gnu.org/PR8146
!  210. https://gcc.gnu.org/PR5967
!  211. https://gcc.gnu.org/PR6984
!  212. https://gcc.gnu.org/PR7114
!  213. https://gcc.gnu.org/PR7130
!  214. https://gcc.gnu.org/PR7133
!  215. https://gcc.gnu.org/PR7380
!  216. https://gcc.gnu.org/PR8252
!  217. https://gcc.gnu.org/PR8451
!  218. https://gcc.gnu.org/PR7250
!  219. https://gcc.gnu.org/PR6668
!  220. https://gcc.gnu.org/PR7151
!  221. https://gcc.gnu.org/PR7335
!  222. https://gcc.gnu.org/PR7842
!  223. https://gcc.gnu.org/PR7856
!  224. https://gcc.gnu.org/PR7967
!  225. https://gcc.gnu.org/PR7374
!  226. https://gcc.gnu.org/PR7370
!  227. https://gcc.gnu.org/PR7409
!  228. https://gcc.gnu.org/PR8232
!  229. https://gcc.gnu.org/PR7623
!  230. https://gcc.gnu.org/PR8314
!  231. https://gcc.gnu.org/PR761
!  232. https://gcc.gnu.org/PR5610
!  233. https://gcc.gnu.org/PR7484
!  234. https://gcc.gnu.org/PR7531
!  235. https://gcc.gnu.org/PR8120
!  236. https://gcc.gnu.org/gcc-3.2/changes.html#GCC3.2
!  237. https://gcc.gnu.org/PR7320
!  238. https://gcc.gnu.org/PR7470
!  239. https://gcc.gnu.org/PR6410
!  240. https://gcc.gnu.org/PR6503
!  241. https://gcc.gnu.org/PR6642
!  242. https://gcc.gnu.org/PR7186
!  243. https://gcc.gnu.org/PR7216
!  244. https://gcc.gnu.org/PR7220
!  245. https://gcc.gnu.org/PR7222
!  246. https://gcc.gnu.org/PR7286
!  247. https://gcc.gnu.org/PR7442
!  248. https://gcc.gnu.org/PR7445
!  249. https://gcc.gnu.org/PR7291
!  250. https://gcc.gnu.org/onlinedocs/
!  251. mailto:gcc-help@gcc.gnu.org
!  252. mailto:gcc@gcc.gnu.org
!  253. https://gcc.gnu.org/lists.html
!  254. https://www.fsf.org/
!  255. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/index.html
                                      GCC 3.1
*************** New Targets and Target Specific Improvem
*** 23265,23271 ****
         to stabilize for 3.2. The support is written to conform to
         Motorola's AltiVec specs. See -maltivec.
  
! Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.1. Unless there is activity to revive them, the next release of GCC
--- 24701,24707 ----
         to stabilize for 3.2. The support is written to conform to
         Motorola's AltiVec specs. See -maltivec.
  
! [8]Obsolete Systems
  
     Support for a number of older systems has been declared obsolete in GCC
     3.1. Unless there is activity to revive them, the next release of GCC
*************** Documentation improvements
*** 23354,23371 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [8]GCC manuals. If that fails, the
!     [9]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [10]gcc@gcc.gnu.org. All of [11]our lists have public
      archives.
  
!    Copyright (C) [12]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [13]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 24790,24807 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [9]GCC manuals. If that fails, the
!     [10]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [11]gcc@gcc.gnu.org. All of [12]our lists have public
      archives.
  
!    Copyright (C) [13]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [14]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
*************** References
*** 23376,23387 ****
     5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html
     6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
     7. https://www.adacore.com/
!    8. https://gcc.gnu.org/onlinedocs/
!    9. mailto:gcc-help@gcc.gnu.org
!   10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/lists.html
!   12. https://www.fsf.org/
!   13. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/index.html
                                     GCC 3.0.4
--- 24812,24824 ----
     5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html
     6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
     7. https://www.adacore.com/
!    8. https://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
!    9. https://gcc.gnu.org/onlinedocs/
!   10. mailto:gcc-help@gcc.gnu.org
!   11. mailto:gcc@gcc.gnu.org
!   12. https://gcc.gnu.org/lists.html
!   13. https://www.fsf.org/
!   14. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/index.html
                                     GCC 3.0.4
diff -Nrcpad gcc-14.2.0/SECURITY.txt gcc-15.1.0/SECURITY.txt
*** gcc-14.2.0/SECURITY.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/SECURITY.txt	Fri Apr 25 08:17:59 2025
*************** Reporting private security bugs
*** 180,186 ****
      security teams.  The following teams have volunteered to handle
      such bugs:
  
-       Debian:  security@debian.org
        Red Hat: secalert@redhat.com
        SUSE:    security@suse.de
        AdaCore: product-security@adacore.com
--- 180,185 ----
diff -Nrcpad gcc-14.2.0/c++tools/ChangeLog gcc-15.1.0/c++tools/ChangeLog
*** gcc-14.2.0/c++tools/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/c++tools/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2023-06-22  Marek Polacek  <polacek@redhat.com>
  
--- 1,15 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (ax_lib_socket_nsl.m4): Don't sinclude.
! 	(AX_LIB_SOCKET_NSL): Don't call.
! 	(NETLIBS): Remove.
! 	* configure: Regenerate.
! 	* Makefile.in (NETLIBS): Remove.
! 	(g++-mapper-server$(exeext)): Remove $(NETLIBS).
  
  2023-06-22  Marek Polacek  <polacek@redhat.com>
  
***************
*** 206,212 ****
  	* server.cc: New.
  
  
! Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 211,217 ----
  	* server.cc: New.
  
  
! Copyright (C) 2020-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/c++tools/Makefile.in gcc-15.1.0/c++tools/Makefile.in
*** gcc-14.2.0/c++tools/Makefile.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/Makefile.in	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  # Makefile for c++tools
! #   Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,5 ----
  # Makefile for c++tools
! #   Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** CXXOPTS := $(CXXFLAGS) $(PICFLAG) -fno-e
*** 35,41 ****
  LDFLAGS := @LDFLAGS@
  exeext := @EXEEXT@
  LIBIBERTY := ../libiberty/libiberty.a
- NETLIBS := @NETLIBS@
  VERSION.O := ../gcc/version.o
  
  all::
--- 35,40 ----
*************** MAPPER.O := server.o resolver.o
*** 99,105 ****
  CODYLIB = ../libcody/libcody.a
  CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
  g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
! 	+$(CXX) $(LDFLAGS) $(PICFLAG) $(LD_PICFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
  
  # copy to gcc dir so tests there can run
  all::../gcc/g++-mapper-server$(exeext)
--- 98,104 ----
  CODYLIB = ../libcody/libcody.a
  CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
  g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
! 	+$(CXX) $(LDFLAGS) $(PICFLAG) $(LD_PICFLAG) -o $@ $^ $(LIBIBERTY)
  
  # copy to gcc dir so tests there can run
  all::../gcc/g++-mapper-server$(exeext)
diff -Nrcpad gcc-14.2.0/c++tools/configure gcc-15.1.0/c++tools/configure
*** gcc-14.2.0/c++tools/configure	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/configure	Fri Apr 25 08:17:59 2025
*************** ac_includes_default="\
*** 622,628 ****
  
  ac_subst_vars='LTLIBOBJS
  LIBOBJS
- NETLIBS
  get_gcc_base_ver
  EGREP
  GREP
--- 622,627 ----
*************** $as_echo "$ac_res" >&6; }
*** 1670,1721 ****
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_cxx_check_header_compile
- 
- # ac_fn_cxx_try_link LINENO
- # -------------------------
- # Try to link conftest.$ac_ext, and return whether this succeeded.
- ac_fn_cxx_try_link ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   rm -f conftest.$ac_objext conftest$ac_exeext
-   if { { ac_try="$ac_link"
- 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_link") 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; } && {
- 	 test -z "$ac_cxx_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest$ac_exeext && {
- 	 test "$cross_compiling" = yes ||
- 	 test -x conftest$ac_exeext
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_retval=1
- fi
-   # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-   # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-   # interfere with the next link command; also delete a directory that is
-   # left behind by Apple's compiler.  We do this before executing the actions.
-   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_cxx_try_link
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
--- 1669,1674 ----
*************** fi
*** 3766,3935 ****
  
  
  
- # Solaris needs libsocket and libnsl for socket functions before 11.4.
- # libcody uses those.
- save_LIBS="$LIBS"
- LIBS=
- 
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
- $as_echo_n "checking for library containing gethostbyname... " >&6; }
- if ${ac_cv_search_gethostbyname+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- /* Override any GCC internal prototype to avoid an error.
-    Use char because int might match the return type of a GCC
-    builtin and then its argument prototype would still apply.  */
- #ifdef __cplusplus
- extern "C"
- #endif
- char gethostbyname ();
- int
- main ()
- {
- return gethostbyname ();
-   ;
-   return 0;
- }
- _ACEOF
- for ac_lib in '' nsl; do
-   if test -z "$ac_lib"; then
-     ac_res="none required"
-   else
-     ac_res=-l$ac_lib
-     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-   fi
-   if ac_fn_cxx_try_link "$LINENO"; then :
-   ac_cv_search_gethostbyname=$ac_res
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext
-   if ${ac_cv_search_gethostbyname+:} false; then :
-   break
- fi
- done
- if ${ac_cv_search_gethostbyname+:} false; then :
- 
- else
-   ac_cv_search_gethostbyname=no
- fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5
- $as_echo "$ac_cv_search_gethostbyname" >&6; }
- ac_res=$ac_cv_search_gethostbyname
- if test "$ac_res" != no; then :
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- 
- fi
- 
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
- $as_echo_n "checking for library containing socket... " >&6; }
- if ${ac_cv_search_socket+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- /* Override any GCC internal prototype to avoid an error.
-    Use char because int might match the return type of a GCC
-    builtin and then its argument prototype would still apply.  */
- #ifdef __cplusplus
- extern "C"
- #endif
- char socket ();
- int
- main ()
- {
- return socket ();
-   ;
-   return 0;
- }
- _ACEOF
- for ac_lib in '' socket; do
-   if test -z "$ac_lib"; then
-     ac_res="none required"
-   else
-     ac_res=-l$ac_lib
-     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-   fi
-   if ac_fn_cxx_try_link "$LINENO"; then :
-   ac_cv_search_socket=$ac_res
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext
-   if ${ac_cv_search_socket+:} false; then :
-   break
- fi
- done
- if ${ac_cv_search_socket+:} false; then :
- 
- else
-   ac_cv_search_socket=no
- fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
- $as_echo "$ac_cv_search_socket" >&6; }
- ac_res=$ac_cv_search_socket
- if test "$ac_res" != no; then :
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- 
- else
- 
- 		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
- $as_echo_n "checking for socket in -lsocket... " >&6; }
- if ${ac_cv_lib_socket_socket+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lsocket -lnsl $LIBS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- /* Override any GCC internal prototype to avoid an error.
-    Use char because int might match the return type of a GCC
-    builtin and then its argument prototype would still apply.  */
- #ifdef __cplusplus
- extern "C"
- #endif
- char socket ();
- int
- main ()
- {
- return socket ();
-   ;
-   return 0;
- }
- _ACEOF
- if ac_fn_cxx_try_link "$LINENO"; then :
-   ac_cv_lib_socket_socket=yes
- else
-   ac_cv_lib_socket_socket=no
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
- $as_echo "$ac_cv_lib_socket_socket" >&6; }
- if test "x$ac_cv_lib_socket_socket" = xyes; then :
-   LIBS="-lsocket -lnsl $LIBS"
- fi
- 
- fi
- 
- 
- NETLIBS="$LIBS"
- LIBS="$save_LIBS"
- 
- 
  ac_config_headers="$ac_config_headers config.h"
  
  ac_config_files="$ac_config_files Makefile"
--- 3719,3724 ----
diff -Nrcpad gcc-14.2.0/c++tools/configure.ac gcc-15.1.0/c++tools/configure.ac
*** gcc-14.2.0/c++tools/configure.ac	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/configure.ac	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  # Configure script for c++tools
! #   Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #   Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  #
  # This file is free software; you can redistribute it and/or modify it
--- 1,5 ----
  # Configure script for c++tools
! #   Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #   Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  #
  # This file is free software; you can redistribute it and/or modify it
***************
*** 22,28 ****
  # By default g++ uses an in-process mapper.
  
  sinclude(../config/acx.m4)
- sinclude(../config/ax_lib_socket_nsl.m4)
  
  AC_INIT(c++tools)
  
--- 22,27 ----
*************** fi
*** 264,278 ****
  # Determine what GCC version number to use in filesystem paths.
  GCC_BASE_VER
  
- # Solaris needs libsocket and libnsl for socket functions before 11.4.
- # libcody uses those.
- save_LIBS="$LIBS"
- LIBS=
- AX_LIB_SOCKET_NSL
- NETLIBS="$LIBS"
- LIBS="$save_LIBS"
- AC_SUBST(NETLIBS)
- 
  AC_CONFIG_HEADERS([config.h])
  AC_CONFIG_FILES([Makefile])
  
--- 263,268 ----
diff -Nrcpad gcc-14.2.0/c++tools/resolver.cc gcc-15.1.0/c++tools/resolver.cc
*** gcc-14.2.0/c++tools/resolver.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/resolver.cc	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2025 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-14.2.0/c++tools/resolver.h gcc-15.1.0/c++tools/resolver.h
*** gcc-14.2.0/c++tools/resolver.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/resolver.h	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2025 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-14.2.0/c++tools/server.cc gcc-15.1.0/c++tools/server.cc
*** gcc-14.2.0/c++tools/server.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/c++tools/server.cc	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  /* C++ modules.  Experimental!
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!
!    Copyright (C) 2018-2025 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
*************** static void ATTRIBUTE_NORETURN
*** 319,325 ****
  print_version (void)
  {
    fnotice (stdout, "%s %s%s\n", progname, pkgversion_string, version_string);
!   fprintf (stdout, "Copyright %s 2018-2024 Free Software Foundation, Inc.\n",
  	   ("(C)"));
    fnotice (stdout,
  	   ("This is free software; see the source for copying conditions.\n"
--- 319,325 ----
  print_version (void)
  {
    fnotice (stdout, "%s %s%s\n", progname, pkgversion_string, version_string);
!   fprintf (stdout, "Copyright %s 2018-2025 Free Software Foundation, Inc.\n",
  	   ("(C)"));
    fnotice (stdout,
  	   ("This is free software; see the source for copying conditions.\n"
diff -Nrcpad gcc-14.2.0/config/ChangeLog gcc-15.1.0/config/ChangeLog
*** gcc-14.2.0/config/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/config/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
--- 1,14 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* bootstrap-lto-locality.mk: New file.
! 
! 2024-11-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* mt-nios2-elf: Deleted.
  
  2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
diff -Nrcpad gcc-14.2.0/config/bootstrap-lto-locality.mk gcc-15.1.0/config/bootstrap-lto-locality.mk
*** gcc-14.2.0/config/bootstrap-lto-locality.mk	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/config/bootstrap-lto-locality.mk	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,20 ----
+ # This option enables LTO and locality partitioning for stage2 and stage3 in slim mode
+ 
+ STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
+ STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
+ STAGEprofile_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
+ STAGEtrain_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
+ STAGEfeedback_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
+ 
+ # assumes the host supports the linker plugin
+ LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+ LTO_RANLIB = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ranlib$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+ LTO_NM = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-nm$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+ 
+ LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \
+ 	      RANLIB="$(LTO_RANLIB)"; export RANLIB; \
+ 	      NM="$(LTO_NM)"; export NM;
+ LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)" NM="$(LTO_NM)"
+ 
+ do-compare = $(SHELL) $(srcdir)/contrib/compare-lto $$f1 $$f2
+ extra-compare = gcc/lto1$(exeext)
diff -Nrcpad gcc-14.2.0/config/mt-nios2-elf gcc-15.1.0/config/mt-nios2-elf
*** gcc-14.2.0/config/mt-nios2-elf	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/config/mt-nios2-elf	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- # We build library code with -mno-gpopt so that it can be linked with
- # larger executables with small-data sections that exceed the 16-bit
- # offset range for GP-relative addressing.
- CFLAGS_FOR_TARGET += -mno-gpopt
- CXXFLAGS_FOR_TARGET += -mno-gpopt
--- 0 ----
diff -Nrcpad gcc-14.2.0/config-ml.in gcc-15.1.0/config-ml.in
*** gcc-14.2.0/config-ml.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/config-ml.in	Fri Apr 25 08:17:59 2025
*************** multi-do:
*** 514,520 ****
  	    else \
  	      if [ -d ../$${dir}/$${lib} ]; then \
  		flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
! 		if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
  				CFLAGS="$(CFLAGS) $${flags}" \
  				CCASFLAGS="$(CCASFLAGS) $${flags}" \
  				FCFLAGS="$(FCFLAGS) $${flags}" \
--- 514,524 ----
  	    else \
  	      if [ -d ../$${dir}/$${lib} ]; then \
  		flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
! 		libsuffix_=`$${compiler} $${flags} --print-multi-os-directory`; \
! 		if (cd ../$${dir}/$${lib}; $(MAKE) $(subst \
! 				-B$(build_tooldir)/lib/, \
! 				-B$(build_tooldir)/lib/$${libsuffix_}/, \
! 				$(FLAGS_TO_PASS)) \
  				CFLAGS="$(CFLAGS) $${flags}" \
  				CCASFLAGS="$(CCASFLAGS) $${flags}" \
  				FCFLAGS="$(FCFLAGS) $${flags}" \
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 768,773 ****
--- 772,778 ----
  	# Create a regular expression that matches any string as long
  	# as ML_POPDIR.
  	popdir_rx=`echo "${ML_POPDIR}" | sed 's,.,.,g'`
+ 	multi_osdir=`${CC-gcc} ${flags} --print-multi-os-directory 2>/dev/null`
  	CC_=
  	for arg in ${CC}; do
  	  case $arg in
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 775,780 ****
--- 780,787 ----
  	    CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    CC_="${CC_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    CC_="${CC_}${arg} " ;;
  	  esac
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 787,792 ****
--- 794,801 ----
  	    CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    CXX_="${CXX_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    CXX_="${CXX_}${arg} " ;;
  	  esac
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 799,804 ****
--- 808,815 ----
  	    F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    F77_="${F77_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    F77_="${F77_}${arg} " ;;
  	  esac
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 811,816 ****
--- 822,829 ----
  	    GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    GFORTRAN_="${GFORTRAN_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    GFORTRAN_="${GFORTRAN_}${arg} " ;;
  	  esac
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 823,828 ****
--- 836,843 ----
  	    GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    GOC_="${GOC_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    GOC_="${GOC_}${arg} " ;;
  	  esac
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 835,840 ****
--- 850,857 ----
  	    GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
  	  "${ML_POPDIR}"/*)
  	    GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+ 	  -B*/lib/)
+ 	    GDC_="${GDC_}${arg}${multi_osdir} ${arg} " ;;
  	  *)
  	    GDC_="${GDC_}${arg} " ;;
  	  esac
diff -Nrcpad gcc-14.2.0/configure gcc-15.1.0/configure
*** gcc-14.2.0/configure	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/configure	Fri Apr 25 08:17:59 2025
*************** extra_host_zlib_configure_flags
*** 690,695 ****
--- 690,697 ----
  extra_host_libiberty_configure_flags
  stage1_languages
  host_libs_picflag
+ CRAB1_LIBS
+ enable_libgdiagnostics
  PICFLAG
  host_shared
  gcc_host_pie
*************** gmplibs
*** 711,718 ****
  PGO_BUILD_LTO_CFLAGS
  PGO_BUILD_USE_CFLAGS
  PGO_BUILD_GEN_CFLAGS
! HAVE_CXX11_FOR_BUILD
! HAVE_CXX11
  do_compare
  CARGO
  GDC
--- 713,720 ----
  PGO_BUILD_LTO_CFLAGS
  PGO_BUILD_USE_CFLAGS
  PGO_BUILD_GEN_CFLAGS
! HAVE_CXX14_FOR_BUILD
! HAVE_CXX14
  do_compare
  CARGO
  GDC
*************** enable_linker_plugin_configure_flags
*** 843,848 ****
--- 845,851 ----
  enable_linker_plugin_flags
  enable_host_pie
  enable_host_shared
+ enable_libgdiagnostics
  enable_stage1_languages
  enable_objc_gc
  with_target_bdw_gc
*************** Optional Features:
*** 1548,1554 ****
  
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-ld[=ARG]       build ld [ARG={default,yes,no}]
!   --enable-gprofng[=ARG]  build gprofng [ARG={yes,no}]
    --enable-compressed-debug-sections={all,gas,gold,ld,none}
                            Enable compressed debug sections for gas, gold or ld
                            by default
--- 1551,1557 ----
  
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-ld[=ARG]       build ld [ARG={default,yes,no}]
!   --disable-gprofng       do not build gprofng
    --enable-compressed-debug-sections={all,gas,gold,ld,none}
                            Enable compressed debug sections for gas, gold or ld
                            by default
*************** Optional Features:
*** 1577,1582 ****
--- 1580,1587 ----
                            plugins [none]
    --enable-host-pie       build position independent host executables
    --enable-host-shared    build host code as shared libraries
+   --enable-libgdiagnostics
+                           build libgdiagnostics shared library
    --enable-stage1-languages[=all]
                            choose additional languages to build during stage1.
                            Mostly useful for compiler development
*************** target_libraries="target-libgcc \
*** 2858,2863 ****
--- 2863,2869 ----
  		target-libgfortran \
  		target-libffi \
  		target-libobjc \
+ 		target-libgcobol \
  		target-libada \
  		target-libgm2 \
  		target-libgo \
*************** fi
*** 3147,3153 ****
  
  if test "$enable_gprofng" = "yes"; then
    case "${target}" in
!     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
      configdirs="$configdirs gprofng"
      ;;
    esac
--- 3153,3161 ----
  
  if test "$enable_gprofng" = "yes"; then
    case "${target}" in
!     *-musl*)
!       ;;
!     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux* | riscv64-*-linux*)
      configdirs="$configdirs gprofng"
      ;;
    esac
*************** if test "${ENABLE_LIBSTDCXX}" = "default
*** 3423,3432 ****
        # VxWorks uses the Dinkumware C++ library.
        noconfigdirs="$noconfigdirs target-libstdc++-v3"
        ;;
-     amdgcn*-*-*)
-       # Not ported/fails to build when using newlib.
-       noconfigdirs="$noconfigdirs target-libstdc++-v3"
-       ;;
      arm*-wince-pe*)
        # the C++ libraries don't build on top of CE's C libraries
        noconfigdirs="$noconfigdirs target-libstdc++-v3"
--- 3431,3436 ----
*************** if test "${ENABLE_LIBSTDCXX}" = "default
*** 3443,3448 ****
--- 3447,3467 ----
    esac
  fi
  
+ # Disable Ada/GNAT on systems where it is known to not work.
+ # For testing, you can override this with --enable-languages=ada.
+ case ,${enable_languages}, in
+   *,ada,*)
+     ;;
+   *)
+       case "${target}" in
+         amdgcn*-*-* \
+         | nvptx*-*-* )
+           unsupported_languages="$unsupported_languages ada"
+           ;;
+       esac
+       ;;
+ esac
+ 
  # Disable C++ on systems where it is known to not work.
  # For testing, you can override this with --enable-languages=c++.
  case ,${enable_languages}, in
*************** case ,${enable_languages}, in
*** 3471,3476 ****
--- 3490,3505 ----
        ;;
  esac
  
+ # Disable libobjc for some systems where it is known to not work.
+ case "${target}" in
+   amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs target-libobjc"
+     ;;
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libobjc"
+     ;;
+ esac
+ 
  # Disable D on systems where it is known to not work.
  # For testing, you can override this with --enable-languages=d.
  case ,${enable_languages}, in
*************** $as_echo "yes" >&6; }
*** 3505,3510 ****
--- 3534,3559 ----
      fi
  fi
  
+ # Disable libgcobol on unsupported systems.
+ # For testing, you can override this with --enable-libgcobol.
+ if test -d ${srcdir}/libgcobol; then
+     if test x$enable_libgcobol = x; then
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgcobol support" >&5
+ $as_echo_n "checking for libgcobol support... " >&6; }
+ 	if (srcdir=${srcdir}/libgcobol; \
+ 		. ${srcdir}/configure.tgt; \
+ 		test -n "$UNSUPPORTED")
+ 	then
+ 	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ 	    noconfigdirs="$noconfigdirs target-libgcobol"
+ 	else
+ 	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ 	fi
+     fi
+ fi
+ 
  # Disable Fortran for some systems.
  case "${target}" in
    mmix-*-*)
*************** case "${target}" in
*** 3516,3521 ****
--- 3565,3602 ----
      ;;
  esac
  
+ # Always enable COBOL for --enable-languages=*cobol*
+ # Otherwise, enable COBOL only for known architectures
+ case ,${enable_languages}, in
+   *,cobol,*)
+     case ,${enable_languages}, in
+       *,c++,*)
+         ;;
+       *)
+         # We have an explicit cobol, but no c++.  We need c++, because cobol
+         # requires libstdc++
+         enable_languages="$enable_languages,c++"
+         ;;
+     esac
+     ;;
+   *)
+     case "${target}" in
+       aarch64-*-linux*|x86_64-*-linux*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     case "${host}" in
+       aarch64-*-linux*|x86_64-*-linux*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     ;;
+ esac
+ 
  # Disable libffi for some systems.
  case "${target}" in
    powerpc-*-darwin*)
*************** case "${target}" in
*** 3551,3556 ****
--- 3632,3640 ----
    alpha*-*-*vms*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    arm*-*-freebsd*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
*************** case "${target}" in
*** 3594,3599 ****
--- 3678,3686 ----
    mmix-*-*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    powerpc-*-aix*)
      ;;
    rs6000-*-aix*)
*************** if test x$enable_libgo = x; then
*** 3644,3652 ****
--- 3731,3745 ----
      *-*-cygwin* | *-*-mingw*)
  	noconfigdirs="$noconfigdirs target-libgo"
  	;;
+     amdgcn*-*-*)
+ 	noconfigdirs="$noconfigdirs target-libgo"
+ 	;;
      bpf-*-*)
          noconfigdirs="$noconfigdirs target-libgo"
          ;;
+     nvptx*-*-*)
+ 	noconfigdirs="$noconfigdirs target-libgo"
+ 	;;
      esac
  fi
  
*************** case "${target}" in
*** 3666,3671 ****
--- 3759,3773 ----
    cris-*-* | crisv32-*-*)
      libgloss_dir=cris
      ;;
+   kvx-*-elf)
+     libgloss_dir=kvx-elf
+     ;;
+   kvx-*-mbr)
+     libgloss_dir=kvx-mbr
+     ;;
+   kvx-*-cos)
+     libgloss_dir=kvx-cos
+     ;;
    hppa*-*-*)
      libgloss_dir=pa
      ;;
*************** case "${target}" in
*** 3765,3770 ****
--- 3867,3879 ----
      ;;
  esac
  
+ # The ARM simulator has been deprecated for all ARM targets.
+ case "${target}" in
+   arm*-*-*)
+     noconfigdirs="$noconfigdirs sim"
+     ;;
+ esac
+ 
  case "${target}" in
    *-*-chorusos)
      ;;
*************** case "${target}" in
*** 3776,3782 ****
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
!     noconfigdirs="$noconfigdirs sim target-rda"
      ;;
    powerpc-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
--- 3885,3891 ----
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
!     noconfigdirs="$noconfigdirs target-rda"
      ;;
    powerpc-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
*************** case "${target}" in
*** 3960,3965 ****
--- 4069,4077 ----
    i[3456789]86-*-rdos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
+   kvx-*-*)
+     noconfigdirs="$noconfigdirs gdb gdbserver sim"
+     ;;
    mmix-*-*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
*************** case "${target}" in
*** 4029,4035 ****
      noconfigdirs="$noconfigdirs gprof"
      ;;
    nvptx*-*-*)
!     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
      ;;
    sh-*-*)
      case "${target}" in
--- 4141,4147 ----
      noconfigdirs="$noconfigdirs gprof"
      ;;
    nvptx*-*-*)
!     noconfigdirs="$noconfigdirs target-libssp"
      ;;
    sh-*-*)
      case "${target}" in
*************** $as_echo "$as_me: WARNING: trying to boo
*** 5913,5925 ****
      ;;
  esac
  
! # When bootstrapping with GCC, build stage 1 in C++11 mode to ensure that a
! # C++11 compiler can still start the bootstrap.  Otherwise, if building GCC,
! # require C++11 (or higher).
  if test "$enable_bootstrap:$GXX" = "yes:yes"; then
!   CXX="$CXX -std=c++11"
  elif test "$have_compiler" = yes; then
!     ax_cxx_compile_alternatives="11 0x"    ax_cxx_compile_cxx11_required=true
    ac_ext=cpp
  ac_cpp='$CXXCPP $CPPFLAGS'
  ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--- 6025,6037 ----
      ;;
  esac
  
! # When bootstrapping with GCC, build stage 1 in C++14 mode to ensure that a
! # C++14 compiler can still start the bootstrap.  Otherwise, if building GCC,
! # require C++14 (or higher).
  if test "$enable_bootstrap:$GXX" = "yes:yes"; then
!   CXX="$CXX -std=c++14"
  elif test "$have_compiler" = yes; then
!     ax_cxx_compile_alternatives="14 1y"    ax_cxx_compile_cxx14_required=true
    ac_ext=cpp
  ac_cpp='$CXXCPP $CPPFLAGS'
  ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
*************** ac_link='$CXX -o conftest$ac_exeext $CXX
*** 5927,5935 ****
  ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
    ac_success=no
  
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5
! $as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; }
! if ${ax_cv_cxx_compile_cxx11+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--- 6039,6047 ----
  ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
    ac_success=no
  
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5
! $as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; }
! if ${ax_cv_cxx_compile_cxx14+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
*************** namespace cxx11
*** 6222,6247 ****
  
  
  
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
!   ax_cv_cxx_compile_cxx11=yes
  else
!   ax_cv_cxx_compile_cxx11=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5
! $as_echo "$ax_cv_cxx_compile_cxx11" >&6; }
!     if test x$ax_cv_cxx_compile_cxx11 = xyes; then
        ac_success=yes
      fi
  
      if test x$ac_success = xno; then
      for alternative in ${ax_cxx_compile_alternatives}; do
        switch="-std=gnu++${alternative}"
!       cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
--- 6334,6479 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
!   ax_cv_cxx_compile_cxx14=yes
  else
!   ax_cv_cxx_compile_cxx14=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14" >&5
! $as_echo "$ax_cv_cxx_compile_cxx14" >&6; }
!     if test x$ax_cv_cxx_compile_cxx14 = xyes; then
        ac_success=yes
      fi
  
      if test x$ac_success = xno; then
      for alternative in ${ax_cxx_compile_alternatives}; do
        switch="-std=gnu++${alternative}"
!       cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh`
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
*************** namespace cxx11
*** 6537,6542 ****
--- 6769,6894 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
    eval $cachevar=yes
*************** $as_echo "$ac_res" >&6; }
*** 6563,6571 ****
      if test x$ac_success = xno; then
                  for alternative in ${ax_cxx_compile_alternatives}; do
        for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
!         cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
!         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
--- 6915,6923 ----
      if test x$ac_success = xno; then
                  for alternative in ${ax_cxx_compile_alternatives}; do
        for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
!         cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh`
!         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
*************** namespace cxx11
*** 6861,6866 ****
--- 7213,7338 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
    eval $cachevar=yes
*************** ac_compile='$CC -c $CFLAGS $CPPFLAGS con
*** 6894,6934 ****
  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
!   if test x$ax_cxx_compile_cxx11_required = xtrue; then
      if test x$ac_success = xno; then
!       as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5
      fi
    fi
    if test x$ac_success = xno; then
!     HAVE_CXX11=0
!     { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
! $as_echo "$as_me: No compiler with C++11 support was found" >&6;}
    else
!     HAVE_CXX11=1
  
! $as_echo "#define HAVE_CXX11 1" >>confdefs.h
  
    fi
  
  
  
    if test "${build}" != "${host}"; then
!       ax_cxx_compile_alternatives="11 0x"    ax_cxx_compile_cxx11_required=true
    ac_ext=cpp
  ac_cpp='$CXXCPP $CPPFLAGS'
  ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
    ac_success=no
!       ax_cv_cxx_compile_cxx11_orig_cxx="$CXX"
!     ax_cv_cxx_compile_cxx11_orig_cxxflags="$CXXFLAGS"
!     ax_cv_cxx_compile_cxx11_orig_cppflags="$CPPFLAGS"
      CXX="$CXX_FOR_BUILD"
      CXXFLAGS="$CXXFLAGS_FOR_BUILD"
      CPPFLAGS="$CPPFLAGS_FOR_BUILD"
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5
! $as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; }
! if ${ax_cv_cxx_compile_cxx11_FOR_BUILD+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--- 7366,7406 ----
  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
!   if test x$ax_cxx_compile_cxx14_required = xtrue; then
      if test x$ac_success = xno; then
!       as_fn_error $? "*** A compiler with support for C++14 language features is required." "$LINENO" 5
      fi
    fi
    if test x$ac_success = xno; then
!     HAVE_CXX14=0
!     { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++14 support was found" >&5
! $as_echo "$as_me: No compiler with C++14 support was found" >&6;}
    else
!     HAVE_CXX14=1
  
! $as_echo "#define HAVE_CXX14 1" >>confdefs.h
  
    fi
  
  
  
    if test "${build}" != "${host}"; then
!       ax_cxx_compile_alternatives="14 1y"    ax_cxx_compile_cxx14_required=true
    ac_ext=cpp
  ac_cpp='$CXXCPP $CPPFLAGS'
  ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
    ac_success=no
!       ax_cv_cxx_compile_cxx14_orig_cxx="$CXX"
!     ax_cv_cxx_compile_cxx14_orig_cxxflags="$CXXFLAGS"
!     ax_cv_cxx_compile_cxx14_orig_cppflags="$CPPFLAGS"
      CXX="$CXX_FOR_BUILD"
      CXXFLAGS="$CXXFLAGS_FOR_BUILD"
      CPPFLAGS="$CPPFLAGS_FOR_BUILD"
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5
! $as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; }
! if ${ax_cv_cxx_compile_cxx14_FOR_BUILD+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
*************** namespace cxx11
*** 7221,7246 ****
  
  
  
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
!   ax_cv_cxx_compile_cxx11_FOR_BUILD=yes
  else
!   ax_cv_cxx_compile_cxx11_FOR_BUILD=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11_FOR_BUILD" >&5
! $as_echo "$ax_cv_cxx_compile_cxx11_FOR_BUILD" >&6; }
!     if test x$ax_cv_cxx_compile_cxx11_FOR_BUILD = xyes; then
        ac_success=yes
      fi
  
      if test x$ac_success = xno; then
      for alternative in ${ax_cxx_compile_alternatives}; do
        switch="-std=gnu++${alternative}"
!       cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_FOR_BUILD_$switch" | $as_tr_sh`
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
--- 7693,7838 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
!   ax_cv_cxx_compile_cxx14_FOR_BUILD=yes
  else
!   ax_cv_cxx_compile_cxx14_FOR_BUILD=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14_FOR_BUILD" >&5
! $as_echo "$ax_cv_cxx_compile_cxx14_FOR_BUILD" >&6; }
!     if test x$ax_cv_cxx_compile_cxx14_FOR_BUILD = xyes; then
        ac_success=yes
      fi
  
      if test x$ac_success = xno; then
      for alternative in ${ax_cxx_compile_alternatives}; do
        switch="-std=gnu++${alternative}"
!       cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_FOR_BUILD_$switch" | $as_tr_sh`
!       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
*************** namespace cxx11
*** 7536,7541 ****
--- 8128,8253 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
    eval $cachevar=yes
*************** $as_echo "$ac_res" >&6; }
*** 7562,7570 ****
      if test x$ac_success = xno; then
                  for alternative in ${ax_cxx_compile_alternatives}; do
        for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
!         cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_FOR_BUILD_$switch" | $as_tr_sh`
!         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
--- 8274,8282 ----
      if test x$ac_success = xno; then
                  for alternative in ${ax_cxx_compile_alternatives}; do
        for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
!         cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_FOR_BUILD_$switch" | $as_tr_sh`
!         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5
! $as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; }
  if eval \${$cachevar+:} false; then :
    $as_echo_n "(cached) " >&6
  else
*************** namespace cxx11
*** 7860,7865 ****
--- 8572,8697 ----
  
  
  
+ 
+ // If the compiler admits that it is not ready for C++14, why torture it?
+ // Hopefully, this will speed up the test.
+ 
+ #ifndef __cplusplus
+ 
+ #error "This is not a C++ compiler"
+ 
+ #elif __cplusplus < 201402L
+ 
+ #error "This is not a C++14 compiler"
+ 
+ #else
+ 
+ namespace cxx14
+ {
+ 
+   namespace test_polymorphic_lambdas
+   {
+ 
+     int
+     test()
+     {
+       const auto lambda = [](auto&&... args){
+         const auto istiny = [](auto x){
+           return (sizeof(x) == 1UL) ? 1 : 0;
+         };
+         const int aretiny[] = { istiny(args)... };
+         return aretiny[0];
+       };
+       return lambda(1, 1L, 1.0f, '1');
+     }
+ 
+   }
+ 
+   namespace test_binary_literals
+   {
+ 
+     constexpr auto ivii = 0b0000000000101010;
+     static_assert(ivii == 42, "wrong value");
+ 
+   }
+ 
+   namespace test_generalized_constexpr
+   {
+ 
+     template < typename CharT >
+     constexpr unsigned long
+     strlen_c(const CharT *const s) noexcept
+     {
+       auto length = 0UL;
+       for (auto p = s; *p; ++p)
+         ++length;
+       return length;
+     }
+ 
+     static_assert(strlen_c("") == 0UL, "");
+     static_assert(strlen_c("x") == 1UL, "");
+     static_assert(strlen_c("test") == 4UL, "");
+     static_assert(strlen_c("another\0test") == 7UL, "");
+ 
+   }
+ 
+   namespace test_lambda_init_capture
+   {
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       const auto lambda1 = [a = x](int b){ return a + b; };
+       const auto lambda2 = [a = lambda1(x)](){ return a; };
+       return lambda2();
+     }
+ 
+   }
+ 
+   namespace test_digit_separators
+   {
+ 
+     constexpr auto ten_million = 100'000'000;
+     static_assert(ten_million == 100000000, "");
+ 
+   }
+ 
+   namespace test_return_type_deduction
+   {
+ 
+     auto f(int& x) { return x; }
+     decltype(auto) g(int& x) { return x; }
+ 
+     template < typename T1, typename T2 >
+     struct is_same
+     {
+       static constexpr auto value = false;
+     };
+ 
+     template < typename T >
+     struct is_same<T, T>
+     {
+       static constexpr auto value = true;
+     };
+ 
+     int
+     test()
+     {
+       auto x = 0;
+       static_assert(is_same<int, decltype(f(x))>::value, "");
+       static_assert(is_same<int&, decltype(g(x))>::value, "");
+       return x;
+     }
+ 
+   }
+ 
+ }  // namespace cxx14
+ 
+ #endif  // __cplusplus >= 201402L
+ 
+ 
+ 
  _ACEOF
  if ac_fn_cxx_try_compile "$LINENO"; then :
    eval $cachevar=yes
*************** $as_echo "$ac_res" >&6; }
*** 7889,7916 ****
        CXX_FOR_BUILD="$CXX"
      CXXFLAGS_FOR_BUILD="$CXXFLAGS"
      CPPFLAGS_FOR_BUILD="$CPPFLAGS"
!     CXX="$ax_cv_cxx_compile_cxx11_orig_cxx"
!     CXXFLAGS="$ax_cv_cxx_compile_cxx11_orig_cxxflags"
!     CPPFLAGS="$ax_cv_cxx_compile_cxx11_orig_cppflags"
    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
  
!   if test x$ax_cxx_compile_cxx11_required = xtrue; then
      if test x$ac_success = xno; then
!       as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5
      fi
    fi
    if test x$ac_success = xno; then
!     HAVE_CXX11_FOR_BUILD=0
!     { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
! $as_echo "$as_me: No compiler with C++11 support was found" >&6;}
    else
!     HAVE_CXX11_FOR_BUILD=1
  
! $as_echo "#define HAVE_CXX11_FOR_BUILD 1" >>confdefs.h
  
    fi
  
--- 8721,8748 ----
        CXX_FOR_BUILD="$CXX"
      CXXFLAGS_FOR_BUILD="$CXXFLAGS"
      CPPFLAGS_FOR_BUILD="$CPPFLAGS"
!     CXX="$ax_cv_cxx_compile_cxx14_orig_cxx"
!     CXXFLAGS="$ax_cv_cxx_compile_cxx14_orig_cxxflags"
!     CPPFLAGS="$ax_cv_cxx_compile_cxx14_orig_cppflags"
    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
  
!   if test x$ax_cxx_compile_cxx14_required = xtrue; then
      if test x$ac_success = xno; then
!       as_fn_error $? "*** A compiler with support for C++14 language features is required." "$LINENO" 5
      fi
    fi
    if test x$ac_success = xno; then
!     HAVE_CXX14_FOR_BUILD=0
!     { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++14 support was found" >&5
! $as_echo "$as_me: No compiler with C++14 support was found" >&6;}
    else
!     HAVE_CXX14_FOR_BUILD=1
  
! $as_echo "#define HAVE_CXX14_FOR_BUILD 1" >>confdefs.h
  
    fi
  
*************** fi
*** 8875,8880 ****
--- 9707,9885 ----
  
  
  
+ 
+ # Check for libgdiagnostics support.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable libgdiagnostics" >&5
+ $as_echo_n "checking whether to enable libgdiagnostics... " >&6; }
+ # Check whether --enable-libgdiagnostics was given.
+ if test "${enable_libgdiagnostics+set}" = set; then :
+   enableval=$enable_libgdiagnostics; enable_libgdiagnostics=$enableval
+ else
+   enable_libgdiagnostics=no
+ fi
+ 
+ 
+ if test x$enable_libgdiagnostics = xyes; then
+   # Disable libgdiagnostics if -enable-host-shared not specified
+   # but not if building for Mingw. All code in Windows
+   # is position independent code (PIC).
+   case $target in
+      *mingw*) ;;
+      *)
+        if test x$host_shared != xyes; then
+ 	 as_fn_error $? "
+ Enabling libgdiagnostics requires --enable-host-shared.
+ 
+ --enable-host-shared typically slows the rest of the compiler down by
+ a few %, so you must explicitly enable it.
+ 
+ If you want to build both libgdiagnostics and the regular compiler, it is often
+ best to do this via two separate configure/builds, in separate
+ directories, to avoid imposing the performance cost of
+ --enable-host-shared on the regular compiler." "$LINENO" 5
+        fi
+        ;;
+    esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_libgdiagnostics" >&5
+ $as_echo "$enable_libgdiagnostics" >&6; }
+ 
+ 
+ 
+ # Rust requires -ldl and -lpthread if you are using an old glibc that does not include them by
+ # default, so we check for them here
+ # We are doing the test here and not in the gcc/configure to be able to nicely disable the
+ # build of the Rust frontend in case a dep is missing.
+ missing_rust_dynlibs=none
+ 
+ save_LIBS="$LIBS"
+ LIBS=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+ $as_echo_n "checking for library containing dlopen... " >&6; }
+ if ${ac_cv_search_dlopen+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_func_search_save_LIBS=$LIBS
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char dlopen ();
+ int
+ main ()
+ {
+ return dlopen ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ for ac_lib in '' dl; do
+   if test -z "$ac_lib"; then
+     ac_res="none required"
+   else
+     ac_res=-l$ac_lib
+     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+   fi
+   if ac_fn_c_try_link "$LINENO"; then :
+   ac_cv_search_dlopen=$ac_res
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext
+   if ${ac_cv_search_dlopen+:} false; then :
+   break
+ fi
+ done
+ if ${ac_cv_search_dlopen+:} false; then :
+ 
+ else
+   ac_cv_search_dlopen=no
+ fi
+ rm conftest.$ac_ext
+ LIBS=$ac_func_search_save_LIBS
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+ $as_echo "$ac_cv_search_dlopen" >&6; }
+ ac_res=$ac_cv_search_dlopen
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ 
+ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5
+ $as_echo_n "checking for library containing pthread_create... " >&6; }
+ if ${ac_cv_search_pthread_create+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_func_search_save_LIBS=$LIBS
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char pthread_create ();
+ int
+ main ()
+ {
+ return pthread_create ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ for ac_lib in '' pthread; do
+   if test -z "$ac_lib"; then
+     ac_res="none required"
+   else
+     ac_res=-l$ac_lib
+     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+   fi
+   if ac_fn_c_try_link "$LINENO"; then :
+   ac_cv_search_pthread_create=$ac_res
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext
+   if ${ac_cv_search_pthread_create+:} false; then :
+   break
+ fi
+ done
+ if ${ac_cv_search_pthread_create+:} false; then :
+ 
+ else
+   ac_cv_search_pthread_create=no
+ fi
+ rm conftest.$ac_ext
+ LIBS=$ac_func_search_save_LIBS
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5
+ $as_echo "$ac_cv_search_pthread_create" >&6; }
+ ac_res=$ac_cv_search_pthread_create
+ if test "$ac_res" != no; then :
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ 
+ fi
+ 
+ CRAB1_LIBS="$LIBS"
+ LIBS="$save_LIBS"
+ 
+ if test "$ac_cv_search_dlopen" = no; then
+     missing_rust_dynlibs="libdl"
+ fi
+ 
+ if test "$ac_cv_search_pthread_create" = no; then
+     missing_rust_dynlibs="$missing_rust_dynlibs, libpthread"
+ fi
+ 
+ CRAB1_LIBS="$CRAB1_LIBS"
+ 
+ 
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
*************** if test -d ${srcdir}/gcc; then
*** 8951,8957 ****
          lang_requires_boot_languages=
          # set srcdir during sourcing lang_frag to the gcc dir.
          # Sadly overriding srcdir on the . line doesn't work in plain sh as it
!         # polutes this shell
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
--- 9956,9962 ----
          lang_requires_boot_languages=
          # set srcdir during sourcing lang_frag to the gcc dir.
          # Sadly overriding srcdir on the . line doesn't work in plain sh as it
!         # pollutes this shell
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
*************** $as_echo "$as_me: WARNING: GDC is requir
*** 9115,9120 ****
--- 10120,10145 ----
              ;;
          esac
  
+         # Disable Rust if we are missing some required C libraries for the Rust runtime.
+         case ${add_this_lang}:${language}:${missing_rust_dynlibs} in
+           *:rust:none)
+             # Nothing to do - we're not missing any C libraries
+             ;;
+           yes:rust:*)
+             as_fn_error $? "some C libraries are required to build $language: $missing_rust_dynlibs" "$LINENO" 5
+             add_this_lang=unsupported
+             ;;
+           all:rust:*)
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: some C libraries are required to build $language: $missing_rust_dynlibs" >&5
+ $as_echo "$as_me: WARNING: some C libraries are required to build $language: $missing_rust_dynlibs" >&2;}
+             add_this_lang=unsupported
+             ;;
+           *:rust:*)
+             # Silently disable.
+             add_this_lang=unsupported
+             ;;
+         esac
+ 
          # Disable jit if -enable-host-shared not specified
          # but not if building for Mingw. All code in Windows
          # is position independent code (PIC).
*************** case ,${enable_languages}, in
*** 9363,9368 ****
--- 10388,10403 ----
          # Disable target libgrust if we're not building target libstdc++.
          noconfigdirs="$noconfigdirs target-libgrust"
          ;;
+       *)
+ 	case "${target}" in
+ 	  amdgcn*-*-* \
+ 	  | nvptx*-*-* )
+ 	    # Build fails in 'libgrust/libproc_macro_internal/':
+ 	    #     sorry, unimplemented: exception handling not supported
+ 	    noconfigdirs="$noconfigdirs target-libgrust"
+ 	    ;;
+ 	esac
+ 	;;
      esac
      ;;
  esac
*************** case "${target}" in
*** 9804,9812 ****
    mips*-*-*linux* | mips*-*-gnu*)
      target_makefile_frag="config/mt-mips-gnu"
      ;;
-   nios2-*-elf*)
-     target_makefile_frag="config/mt-nios2-elf"
-     ;;
    *-*-linux-android*)
      target_makefile_frag="config/mt-android"
      ;;
--- 10839,10844 ----
*************** case "$enable_bootstrap:$ENABLE_GOLD: $c
*** 10081,10086 ****
--- 11113,11127 ----
      ;;
  esac
  
+ # Bootstrapping GCC requires libstdc++-v3 so error out if libstdc++ is disabled with bootstrapping
+ # Note C++ is always enabled for stage1 now.
+ case "$enable_bootstrap:${noconfigdirs}" in
+   yes:*target-libstdc++-v3*)
+     as_fn_error $? "bootstrapping with --disable-libstdcxx is not supported" "$LINENO" 5
+     ;;
+ esac
+ 
+ 
  extrasub_build=
  for module in ${build_configdirs} ; do
    if test -z "${no_recursion}" \
*************** hbaseargs="$hbaseargs --disable-option-c
*** 10381,10387 ****
  tbaseargs="$tbaseargs --disable-option-checking"
  
  if test "$enable_year2038" = no; then
!   baseargs="$baseargs --disable-year2038"
    tbaseargs="$tbaseargs --disable-year2038"
  fi
  
--- 11422,11429 ----
  tbaseargs="$tbaseargs --disable-option-checking"
  
  if test "$enable_year2038" = no; then
!   bbaseargs="$bbaseargs --disable-year2038"
!   hbaseargs="$hbaseargs --disable-year2038"
    tbaseargs="$tbaseargs --disable-year2038"
  fi
  
*************** $as_echo "pre-installed" >&6; }
*** 18036,18042 ****
    fi
  fi
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++" >&5
  $as_echo_n "checking where to find the target c++... " >&6; }
  if test "x${build}" != "x${host}" ; then
    if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then
--- 19078,19178 ----
    fi
  fi
  
! case $target in
!   *-*-darwin*)
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++" >&5
! $as_echo_n "checking where to find the target c++... " >&6; }
! if test "x${build}" != "x${host}" ; then
!   if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then
!     # We already found the complete path
!     ac_dir=`dirname $CXX_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
!   ok=yes
!   case " ${configdirs} " in
!     *" gcc "*) ;;
!     *) ok=no ;;
!   esac
!   case ,${enable_languages}, in
!     *,c++,*) ;;
!     *) ok=no ;;
!   esac
!   if test $ok = yes; then
!     # An in-tree tool is available and we can use it
!     CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs'
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: just compiled" >&5
! $as_echo "just compiled" >&6; }
!   elif expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then
!     # We already found the complete path
!     ac_dir=`dirname $CXX_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
!     CXX_FOR_TARGET='$(CXX)'
!     { $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
! 
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++ for libstdc++" >&5
! $as_echo_n "checking where to find the target c++ for libstdc++... " >&6; }
! if test "x${build}" != "x${host}" ; then
!   if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then
!     # We already found the complete path
!     ac_dir=`dirname $RAW_CXX_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
!   ok=yes
!   case " ${configdirs} " in
!     *" gcc "*) ;;
!     *) ok=no ;;
!   esac
!   case ,${enable_languages}, in
!     *,c++,*) ;;
!     *) ok=no ;;
!   esac
!   if test $ok = yes; then
!     # An in-tree tool is available and we can use it
!     RAW_CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs'
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: just compiled" >&5
! $as_echo "just compiled" >&6; }
!   elif expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then
!     # We already found the complete path
!     ac_dir=`dirname $RAW_CXX_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
!     RAW_CXX_FOR_TARGET='$(CXX)'
!     { $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
! 
!   ;;
!   *)
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++" >&5
  $as_echo_n "checking where to find the target c++... " >&6; }
  if test "x${build}" != "x${host}" ; then
    if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then
*************** $as_echo "pre-installed" >&6; }
*** 18081,18087 ****
    fi
  fi
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++ for libstdc++" >&5
  $as_echo_n "checking where to find the target c++ for libstdc++... " >&6; }
  if test "x${build}" != "x${host}" ; then
    if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then
--- 19217,19223 ----
    fi
  fi
  
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target c++ for libstdc++" >&5
  $as_echo_n "checking where to find the target c++ for libstdc++... " >&6; }
  if test "x${build}" != "x${host}" ; then
    if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then
*************** $as_echo "pre-installed" >&6; }
*** 18126,18131 ****
--- 19262,19269 ----
    fi
  fi
  
+   ;;
+ esac
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target dlltool" >&5
  $as_echo_n "checking where to find the target dlltool... " >&6; }
  if test "x${build}" != "x${host}" ; then
*************** compare_exclusions="gcc/cc*-checksum\$(o
*** 18985,18990 ****
--- 20123,20129 ----
  compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/M2Version*"
  compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/SYSTEM*"
  compare_exclusions="$compare_exclusions | gcc/m2/gm2version*"
+ compare_exclusions="$compare_exclusions | gcc/cobol/parse\$(objext)"
  case "$target" in
    hppa*64*-*-hpux*) ;;
    powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;;
diff -Nrcpad gcc-14.2.0/configure.ac gcc-15.1.0/configure.ac
*** gcc-14.2.0/configure.ac	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/configure.ac	Fri Apr 25 08:17:59 2025
*************** target_libraries="target-libgcc \
*** 161,166 ****
--- 161,167 ----
  		target-libgfortran \
  		target-libffi \
  		target-libobjc \
+ 		target-libgcobol \
  		target-libada \
  		target-libgm2 \
  		target-libgo \
*************** case "${ENABLE_LD}" in
*** 407,419 ****
  esac
  
  AC_ARG_ENABLE(gprofng,
! [AS_HELP_STRING([[--enable-gprofng[=ARG]]],
! 		[build gprofng @<:@ARG={yes,no}@:>@])],
  enable_gprofng=$enableval,
  enable_gprofng=yes)
  if test "$enable_gprofng" = "yes"; then
    case "${target}" in
!     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
      configdirs="$configdirs gprofng"
      ;;
    esac
--- 408,421 ----
  esac
  
  AC_ARG_ENABLE(gprofng,
! [AS_HELP_STRING([[--disable-gprofng]], [do not build gprofng])],
  enable_gprofng=$enableval,
  enable_gprofng=yes)
  if test "$enable_gprofng" = "yes"; then
    case "${target}" in
!     *-musl*)
!       ;;
!     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux* | riscv64-*-linux*)
      configdirs="$configdirs gprofng"
      ;;
    esac
*************** if test "${ENABLE_LIBSTDCXX}" = "default
*** 655,664 ****
        # VxWorks uses the Dinkumware C++ library.
        noconfigdirs="$noconfigdirs target-libstdc++-v3"
        ;;
-     amdgcn*-*-*)
-       # Not ported/fails to build when using newlib.
-       noconfigdirs="$noconfigdirs target-libstdc++-v3"
-       ;;
      arm*-wince-pe*)
        # the C++ libraries don't build on top of CE's C libraries
        noconfigdirs="$noconfigdirs target-libstdc++-v3"
--- 657,662 ----
*************** if test "${ENABLE_LIBSTDCXX}" = "default
*** 675,680 ****
--- 673,693 ----
    esac
  fi
  
+ # Disable Ada/GNAT on systems where it is known to not work.
+ # For testing, you can override this with --enable-languages=ada.
+ case ,${enable_languages}, in
+   *,ada,*)
+     ;;
+   *)
+       case "${target}" in
+         amdgcn*-*-* \
+         | nvptx*-*-* )
+           unsupported_languages="$unsupported_languages ada"
+           ;;
+       esac
+       ;;
+ esac
+ 
  # Disable C++ on systems where it is known to not work.
  # For testing, you can override this with --enable-languages=c++.
  case ,${enable_languages}, in
*************** case ,${enable_languages}, in
*** 703,708 ****
--- 716,731 ----
        ;;
  esac
  
+ # Disable libobjc for some systems where it is known to not work.
+ case "${target}" in
+   amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs target-libobjc"
+     ;;
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libobjc"
+     ;;
+ esac
+ 
  # Disable D on systems where it is known to not work.
  # For testing, you can override this with --enable-languages=d.
  case ,${enable_languages}, in
*************** if test -d ${srcdir}/libphobos; then
*** 734,739 ****
--- 757,779 ----
      fi
  fi
  
+ # Disable libgcobol on unsupported systems.
+ # For testing, you can override this with --enable-libgcobol.
+ if test -d ${srcdir}/libgcobol; then
+     if test x$enable_libgcobol = x; then
+ 	AC_MSG_CHECKING([for libgcobol support])
+ 	if (srcdir=${srcdir}/libgcobol; \
+ 		. ${srcdir}/configure.tgt; \
+ 		test -n "$UNSUPPORTED")
+ 	then
+ 	    AC_MSG_RESULT([no])
+ 	    noconfigdirs="$noconfigdirs target-libgcobol"
+ 	else
+ 	    AC_MSG_RESULT([yes])
+ 	fi
+     fi
+ fi
+ 
  # Disable Fortran for some systems.
  case "${target}" in
    mmix-*-*)
*************** case "${target}" in
*** 745,750 ****
--- 785,822 ----
      ;;
  esac
  
+ # Always enable COBOL for --enable-languages=*cobol*
+ # Otherwise, enable COBOL only for known architectures
+ case ,${enable_languages}, in
+   *,cobol,*)
+     case ,${enable_languages}, in
+       *,c++,*)
+         ;;
+       *)
+         # We have an explicit cobol, but no c++.  We need c++, because cobol
+         # requires libstdc++
+         enable_languages="$enable_languages,c++"
+         ;;
+     esac
+     ;;
+   *)
+     case "${target}" in
+       aarch64-*-linux*|x86_64-*-linux*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     case "${host}" in
+       aarch64-*-linux*|x86_64-*-linux*)
+         ;;
+       *-*-*)
+         unsupported_languages="$unsupported_languages cobol"
+         ;;
+     esac
+     ;;
+ esac
+ 
  # Disable libffi for some systems.
  case "${target}" in
    powerpc-*-darwin*)
*************** case "${target}" in
*** 780,785 ****
--- 852,860 ----
    alpha*-*-*vms*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    arm*-*-freebsd*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
*************** case "${target}" in
*** 823,828 ****
--- 898,906 ----
    mmix-*-*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   nvptx*-*-*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    powerpc-*-aix*)
      ;;
    rs6000-*-aix*)
*************** if test x$enable_libgo = x; then
*** 870,878 ****
--- 948,962 ----
      *-*-cygwin* | *-*-mingw*)
  	noconfigdirs="$noconfigdirs target-libgo"
  	;;
+     amdgcn*-*-*)
+ 	noconfigdirs="$noconfigdirs target-libgo"
+ 	;;
      bpf-*-*)
          noconfigdirs="$noconfigdirs target-libgo"
          ;;
+     nvptx*-*-*)
+ 	noconfigdirs="$noconfigdirs target-libgo"
+ 	;;
      esac
  fi
  
*************** case "${target}" in
*** 892,897 ****
--- 976,990 ----
    cris-*-* | crisv32-*-*)
      libgloss_dir=cris
      ;;
+   kvx-*-elf)
+     libgloss_dir=kvx-elf
+     ;;
+   kvx-*-mbr)
+     libgloss_dir=kvx-mbr
+     ;;
+   kvx-*-cos)
+     libgloss_dir=kvx-cos
+     ;;
    hppa*-*-*)
      libgloss_dir=pa
      ;;
*************** case "${target}" in
*** 991,996 ****
--- 1084,1096 ----
      ;;
  esac
  
+ # The ARM simulator has been deprecated for all ARM targets.
+ case "${target}" in
+   arm*-*-*)
+     noconfigdirs="$noconfigdirs sim"
+     ;;
+ esac
+ 
  case "${target}" in
    *-*-chorusos)
      ;;
*************** case "${target}" in
*** 1002,1008 ****
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
!     noconfigdirs="$noconfigdirs sim target-rda"
      ;;
    powerpc-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
--- 1102,1108 ----
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
!     noconfigdirs="$noconfigdirs target-rda"
      ;;
    powerpc-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
*************** case "${target}" in
*** 1186,1191 ****
--- 1286,1294 ----
    i[[3456789]]86-*-rdos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
+   kvx-*-*)
+     noconfigdirs="$noconfigdirs gdb gdbserver sim"
+     ;;
    mmix-*-*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
*************** case "${target}" in
*** 1255,1261 ****
      noconfigdirs="$noconfigdirs gprof"
      ;;
    nvptx*-*-*)
!     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
      ;;
    sh-*-*)
      case "${target}" in
--- 1358,1364 ----
      noconfigdirs="$noconfigdirs gprof"
      ;;
    nvptx*-*-*)
!     noconfigdirs="$noconfigdirs target-libssp"
      ;;
    sh-*-*)
      case "${target}" in
*************** case "$have_compiler:$host:$target:$enab
*** 1457,1472 ****
      ;;
  esac
  
! # When bootstrapping with GCC, build stage 1 in C++11 mode to ensure that a
! # C++11 compiler can still start the bootstrap.  Otherwise, if building GCC,
! # require C++11 (or higher).
  if test "$enable_bootstrap:$GXX" = "yes:yes"; then
!   CXX="$CXX -std=c++11"
  elif test "$have_compiler" = yes; then
!   AX_CXX_COMPILE_STDCXX(11)
  
    if test "${build}" != "${host}"; then
!     AX_CXX_COMPILE_STDCXX(11, [], [], [_FOR_BUILD])
    fi
  fi
  
--- 1560,1575 ----
      ;;
  esac
  
! # When bootstrapping with GCC, build stage 1 in C++14 mode to ensure that a
! # C++14 compiler can still start the bootstrap.  Otherwise, if building GCC,
! # require C++14 (or higher).
  if test "$enable_bootstrap:$GXX" = "yes:yes"; then
!   CXX="$CXX -std=c++14"
  elif test "$have_compiler" = yes; then
!   AX_CXX_COMPILE_STDCXX(14)
  
    if test "${build}" != "${host}"; then
!     AX_CXX_COMPILE_STDCXX(14, [], [], [_FOR_BUILD])
    fi
  fi
  
*************** fi
*** 2037,2042 ****
--- 2140,2203 ----
  
  AC_SUBST(PICFLAG)
  
+ 
+ # Check for libgdiagnostics support.
+ AC_MSG_CHECKING([whether to enable libgdiagnostics])
+ AC_ARG_ENABLE(libgdiagnostics,
+ [AS_HELP_STRING([--enable-libgdiagnostics],
+ 		[build libgdiagnostics shared library])],
+ enable_libgdiagnostics=$enableval,
+ enable_libgdiagnostics=no)
+ 
+ if test x$enable_libgdiagnostics = xyes; then
+   # Disable libgdiagnostics if -enable-host-shared not specified
+   # but not if building for Mingw. All code in Windows
+   # is position independent code (PIC).
+   case $target in
+      *mingw*) ;;
+      *)
+        if test x$host_shared != xyes; then
+ 	 AC_MSG_ERROR([
+ Enabling libgdiagnostics requires --enable-host-shared.
+ 
+ --enable-host-shared typically slows the rest of the compiler down by
+ a few %, so you must explicitly enable it.
+ 
+ If you want to build both libgdiagnostics and the regular compiler, it is often
+ best to do this via two separate configure/builds, in separate
+ directories, to avoid imposing the performance cost of
+ --enable-host-shared on the regular compiler.])
+        fi
+        ;;
+    esac
+ fi
+ AC_MSG_RESULT($enable_libgdiagnostics)
+ AC_SUBST(enable_libgdiagnostics)
+ 
+ 
+ # Rust requires -ldl and -lpthread if you are using an old glibc that does not include them by
+ # default, so we check for them here
+ # We are doing the test here and not in the gcc/configure to be able to nicely disable the
+ # build of the Rust frontend in case a dep is missing.
+ missing_rust_dynlibs=none
+ 
+ save_LIBS="$LIBS"
+ LIBS=
+ AC_SEARCH_LIBS([dlopen], [dl])
+ AC_SEARCH_LIBS([pthread_create], [pthread])
+ CRAB1_LIBS="$LIBS"
+ LIBS="$save_LIBS"
+ 
+ if test "$ac_cv_search_dlopen" = no; then
+     missing_rust_dynlibs="libdl"
+ fi
+ 
+ if test "$ac_cv_search_pthread_create" = no; then
+     missing_rust_dynlibs="$missing_rust_dynlibs, libpthread"
+ fi
+ 
+ AC_SUBST(CRAB1_LIBS, "$CRAB1_LIBS")
+ 
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
*************** if test -d ${srcdir}/gcc; then
*** 2113,2119 ****
          lang_requires_boot_languages=
          # set srcdir during sourcing lang_frag to the gcc dir.
          # Sadly overriding srcdir on the . line doesn't work in plain sh as it
!         # polutes this shell
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
--- 2274,2280 ----
          lang_requires_boot_languages=
          # set srcdir during sourcing lang_frag to the gcc dir.
          # Sadly overriding srcdir on the . line doesn't work in plain sh as it
!         # pollutes this shell
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
*************** if test -d ${srcdir}/gcc; then
*** 2274,2279 ****
--- 2435,2459 ----
              ;;
          esac
  
+         # Disable Rust if we are missing some required C libraries for the Rust runtime.
+         case ${add_this_lang}:${language}:${missing_rust_dynlibs} in
+           *:rust:none)
+             # Nothing to do - we're not missing any C libraries
+             ;;
+           yes:rust:*)
+             AC_MSG_ERROR([some C libraries are required to build $language: $missing_rust_dynlibs])
+             add_this_lang=unsupported
+             ;;
+           all:rust:*)
+             AC_MSG_WARN([some C libraries are required to build $language: $missing_rust_dynlibs])
+             add_this_lang=unsupported
+             ;;
+           *:rust:*)
+             # Silently disable.
+             add_this_lang=unsupported
+             ;;
+         esac
+ 
          # Disable jit if -enable-host-shared not specified
          # but not if building for Mingw. All code in Windows
          # is position independent code (PIC).
*************** case ,${enable_languages}, in
*** 2509,2514 ****
--- 2689,2704 ----
          # Disable target libgrust if we're not building target libstdc++.
          noconfigdirs="$noconfigdirs target-libgrust"
          ;;
+       *)
+ 	case "${target}" in
+ 	  amdgcn*-*-* \
+ 	  | nvptx*-*-* )
+ 	    # Build fails in 'libgrust/libproc_macro_internal/':
+ 	    #     sorry, unimplemented: exception handling not supported
+ 	    noconfigdirs="$noconfigdirs target-libgrust"
+ 	    ;;
+ 	esac
+ 	;;
      esac
      ;;
  esac
*************** case "${target}" in
*** 2881,2889 ****
    mips*-*-*linux* | mips*-*-gnu*)
      target_makefile_frag="config/mt-mips-gnu"
      ;;
-   nios2-*-elf*)
-     target_makefile_frag="config/mt-nios2-elf"
-     ;;
    *-*-linux-android*)
      target_makefile_frag="config/mt-android"
      ;;
--- 3071,3076 ----
*************** case "$enable_bootstrap:$ENABLE_GOLD: $c
*** 3150,3155 ****
--- 3337,3351 ----
      ;;
  esac
  
+ # Bootstrapping GCC requires libstdc++-v3 so error out if libstdc++ is disabled with bootstrapping
+ # Note C++ is always enabled for stage1 now.
+ case "$enable_bootstrap:${noconfigdirs}" in
+   yes:*target-libstdc++-v3*)
+     AC_MSG_ERROR([bootstrapping with --disable-libstdcxx is not supported])
+     ;;
+ esac
+ 
+ 
  extrasub_build=
  for module in ${build_configdirs} ; do
    if test -z "${no_recursion}" \
*************** hbaseargs="$hbaseargs --disable-option-c
*** 3450,3456 ****
  tbaseargs="$tbaseargs --disable-option-checking"
  
  if test "$enable_year2038" = no; then
!   baseargs="$baseargs --disable-year2038"
    tbaseargs="$tbaseargs --disable-year2038"
  fi
  
--- 3646,3653 ----
  tbaseargs="$tbaseargs --disable-option-checking"
  
  if test "$enable_year2038" = no; then
!   bbaseargs="$bbaseargs --disable-year2038"
!   hbaseargs="$hbaseargs --disable-year2038"
    tbaseargs="$tbaseargs --disable-year2038"
  fi
  
*************** GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [
*** 3861,3872 ****
  GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
  GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
  dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
! GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
  		[gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
  		c++)
! GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
  		[gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
  		c++)
  GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
  GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL)
  GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
--- 4058,4081 ----
  GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
  GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
  dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
! case $target in
!   *-*-darwin*)
!     GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
! 		[gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
! 		c++)
!     GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
! 		[gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -B$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
! 		c++)
!   ;;
!   *)
!     GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
  		[gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
  		c++)
!     GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
  		[gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
  		c++)
+   ;;
+ esac
  GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
  GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL)
  GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
*************** compare_exclusions="gcc/cc*-checksum\$(o
*** 4007,4012 ****
--- 4216,4222 ----
  compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/M2Version*"
  compare_exclusions="$compare_exclusions | gcc/m2/gm2-compiler-boot/SYSTEM*"
  compare_exclusions="$compare_exclusions | gcc/m2/gm2version*"
+ compare_exclusions="$compare_exclusions | gcc/cobol/parse\$(objext)"
  case "$target" in
    hppa*64*-*-hpux*) ;;
    powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;;
diff -Nrcpad gcc-14.2.0/contrib/ChangeLog gcc-15.1.0/contrib/ChangeLog
*** gcc-14.2.0/contrib/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/contrib/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,17 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 14.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
  
--- 1,213 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-11  Tomasz Kamiński  <tkaminsk@redhat.com>
  
! 	PR libstdc++/109162
! 	* unicode/README: Mentioned DerivedGeneralCategory.txt.
! 	* unicode/gen_libstdcxx_unicode_data.py: Generation __escape_edges
! 	table from DerivedGeneralCategory.txt. Update file name in comments.
! 	* unicode/DerivedGeneralCategory.txt: Copy of file distributed by
! 	Unicode Consortium.
! 
! 2025-03-27  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR testsuite/116163
! 	* dg-lint/dg-lint: New file.
! 	* dg-lint/libgdiagnostics.py: New file.
! 	* dg-lint/test-1.c: New file.
! 	* dg-lint/test-2.c: New file.
! 
! 2025-03-17  Sahil Yeole  <sahilyeole93@gmail.com>
! 
! 	* update-copyright.py: Add libgrust folder.
! 
! 2025-03-15  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* gcc-changelog/git_repository.py (parse_git_revisions): Destroy the
! 	Repo object by calling repo.close() at the end of the function.
! 
! 2025-03-12  Jason Merrill  <jason@redhat.com>
! 
! 	PR libstdc++/119081
! 	* relpath.sh: Give relative path even at /.
! 
! 2025-03-11  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* gcc-git-customization.sh: Delete outdated commands for
! 	migrating from very old git setups.
! 
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_commit.py (bug_components): Add cobol.
! 
! 2025-03-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_commit.py (default_changelog_locations):
! 	Add gcc/cobol and libgcobol entries.
! 
! 2025-01-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* update-copyright.py (GCCFilter): Ignore gen-evolution.awk and
! 	gen-cxxapi-file.py.
! 	(TestsuiteFilter): Ignore spec-example-4.sarif.
! 	(LibCppFilter): Ignore uname2c.h.
! 
! 2024-12-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc-changelog/git_commit.py (bug_components): Add
! 	'libgdiagnostics' and 'sarif-replay'.
! 
! 2024-12-09  Matthew Malcomson  <mmalcomson@nvidia.com>
! 
! 	* clang-format: AlwaysBreakAfterReturnType set to
! 	TopLevelDefinitions and BraceWrapping.BeforeWhile set to true.
! 
! 2024-12-06  Matthew Malcomson  <mmalcomson@nvidia.com>
! 
! 	* clang-format: Set BraceWrapping.AfterCaseLabel.
! 
! 2024-12-04  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-params-in-docs.py: 'params' -> 'help_params'.  Don't
! 	convert 'help_params' to a list.
! 
! 2024-12-01  Gabi Falk  <gabifalk@gmx.com>
! 
! 	* testsuite-management/validate_failures.py: Change re.compile()
! 	function arguments to Python raw strings.
! 
! 2024-11-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* config-list.mk: Remove references to Nios II.
! 
! 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/96032
! 	* regenerate-sarif-spec-index.py: New file.
! 
! 2024-11-17  Jason Merrill  <jason@redhat.com>
! 
! 	PR libstdc++/106852
! 	* relpath.sh: New file.
! 
! 2024-11-14  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add
! 	another ignored commit.
! 
! 2024-11-14  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add 2
! 	further commits.
! 
! 2024-11-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add 2
! 	further commits.
! 
! 2024-11-09  Andi Kleen  <ak@gcc.gnu.org>
! 
! 	* gen_autofdo_event.py: Convert strings to raw.
! 	Add fallback to using builtin perf event list.
! 
! 2024-10-09  René Rebe  <rene@exactcode.de>
! 
! 	* config-list.mk (LIST): no --enable-obsolete for ia64-linux.
! 
! 2024-10-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* unicode/README: Update glibc git commit hash, replace
! 	Unicode 15 or 15.1 versions with 16.
! 	* unicode/gen_libstdcxx_unicode_data.py: Use 160000 instead of
! 	150100 in _GLIBCXX_GET_UNICODE_DATA test.
! 	* unicode/from_glibc/utf8_gen.py: Updated from glibc
! 	064c708c78cc2a6b5802dce73108fc0c1c6bfc80 commit.
! 	* unicode/DerivedCoreProperties.txt: Updated from Unicode 16.0.
! 	* unicode/emoji-data.txt: Likewise.
! 	* unicode/PropList.txt: Likewise.
! 	* unicode/GraphemeBreakProperty.txt: Likewise.
! 	* unicode/DerivedNormalizationProps.txt: Likewise.
! 	* unicode/NameAliases.txt: Likewise.
! 	* unicode/UnicodeData.txt: Likewise.
! 	* unicode/EastAsianWidth.txt: Likewise.
! 
! 2024-09-18  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-params-in-docs.py: Skip tables of values of a param.
! 	Remove code that skips items beginning with a number.
! 
! 2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* gcc_update (files_and_dependencies): Update for
! 	'libformat_parser' in libgrust.
! 
! 2024-07-19  Richard Biener  <rguenther@suse.de>
! 
! 	* gcc-changelog/git_update_version.py: Remove gcc-11 branch.
! 
! 2024-07-13  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* check-MAINTAINERS.py (sort_by_surname): Replace with...
! 	(get_surname): ...this.
! 	(has_tab, is_empty): Delete.
! 	(check_group): Take a list of column positions as argument.
! 	Check that lines conform to these column numbers.  Check that the
! 	final column is an email in angle brackets.  Record surnames on
! 	the fly.
! 	(top level): Reject tabs.  Use paragraph counts to identify which
! 	groups of lines should be checked.  Report missing sections.
! 
! 2024-06-05  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	* check_GNU_style_lib.py: Use raw strings for regexps.
! 
! 2024-05-21  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* gcc-changelog/git_update_version.py: Add '-i'/'--ignore' argument
! 	to add to-be-ignored commits via the command line.
! 	(ignored_commits): Rename from IGNORED_COMMITS and change
! 	type from tuple to set.
! 	(prepend_to_changelog_files): Show git hash if errors occurred.
! 	(update_current_branch): Mark argument as optional by defaulting
! 	to None.
! 
! 2024-05-14  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-MAINTAINERS.py: Add warning about not using tabs.
! 
! 2024-05-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py: Replace
! 	9dbff9c05520a74e6cd337578f27b56c941f64f3 with
! 	39f81924d88e3cc197fc3df74204c9b5e01e12f7 and
! 	109f1b28fc94c93096506e3df0c25e331cef19d0 in IGNORED_COMMITS.
! 
! 2024-05-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py: Add
! 	9dbff9c05520a74e6cd337578f27b56c941f64f3 to IGNORED_COMMITS.
! 
! 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* make_sunver.pl: Use File::Basename;
! 	Skip -lLIB args.
! 	Convert libtool object/archive names to underlying
! 	objects/archives.
! 
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 14.
  
! 2024-05-06  Ken Matsui  <kmatsui@gcc.gnu.org>
  
! 	* gcc-changelog/git_check_commit.py: Implement --num-commits.
! 
! 2024-04-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py (active_refs): Add
! 	releases/gcc-14.
  
  2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
  
diff -Nrcpad gcc-14.2.0/contrib/analyze_brprob.py gcc-15.1.0/contrib/analyze_brprob.py
*** gcc-14.2.0/contrib/analyze_brprob.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/analyze_brprob.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
diff -Nrcpad gcc-14.2.0/contrib/analyze_brprob_spec.py gcc-15.1.0/contrib/analyze_brprob_spec.py
*** gcc-14.2.0/contrib/analyze_brprob_spec.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/analyze_brprob_spec.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/bench-stringop gcc-15.1.0/contrib/bench-stringop
*** gcc-14.2.0/contrib/bench-stringop	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/bench-stringop	Fri Apr 25 08:17:59 2025
***************
*** 4,10 ****
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 4,10 ----
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/check-MAINTAINERS.py gcc-15.1.0/contrib/check-MAINTAINERS.py
*** gcc-14.2.0/contrib/check-MAINTAINERS.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check-MAINTAINERS.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 25,31 ****
  import locale
  import sys
  from difflib import ndiff
! from itertools import dropwhile, takewhile
  
  import unidecode
  
--- 25,31 ----
  import locale
  import sys
  from difflib import ndiff
! from itertools import groupby
  
  import unidecode
  
*************** if len(sys.argv) != 2:
*** 38,45 ****
      sys.exit(1)
  
  
! def sort_by_surname(line):
!     name = line.split('\t')[0]
      parts = name.split()
      surname = parts[-1]
  
--- 38,44 ----
      sys.exit(1)
  
  
! def get_surname(name):
      parts = name.split()
      surname = parts[-1]
  
*************** def sort_by_surname(line):
*** 52,78 ****
          surname = 'Humieres'
  
      # Remove accents
!     return (unidecode.unidecode(surname), line)
! 
! 
! def has_tab(line):
!     return '\t' in line
! 
! 
! def is_empty(line):
!     return line
  
  
! def check_group(name, lines):
      global exit_code
  
      for line in lines:
          if line.startswith(' '):
              print(f'Line should not start with space: "{line}"')
              exit_code = 2
  
!     lines = [line + '\n' for line in lines]
!     sorted_lines = sorted(lines, key=sort_by_surname)
      if lines != sorted_lines:
          exit_code = 1
          diff = ndiff(lines, sorted_lines)
--- 51,111 ----
          surname = 'Humieres'
  
      # Remove accents
!     return unidecode.unidecode(surname)
  
  
! def check_group(name, lines, columns):
      global exit_code
  
+     named_lines = []
      for line in lines:
          if line.startswith(' '):
              print(f'Line should not start with space: "{line}"')
              exit_code = 2
+             continue
  
!         if line.endswith(' '):
!             print(f'Line should not end with space: "{line}"')
!             exit_code = 3
!             continue
! 
!         # Special-case some names
!         if line == 'James Norris':
!             named_lines.append((get_surname(line), line + "\n"))
!             continue
! 
!         pieces = []
!         for i, column in enumerate(columns):
!             piece = ""
!             if len(line) <= column:
!                 print(f'Line too short: "{line}"')
!                 exit_code = 4
!             elif column > 0 and line[column - 1] != ' ':
!                 print(f'Column {column - 1} should be empty: "{line}"')
!                 exit_code = 5
!             elif line[column] == ' ':
!                 print(f'Column {column} should be nonempty: "{line}"')
!                 exit_code = 6
!             elif i == len(columns) - 1:
!                 piece = line[column:].rstrip()
!             else:
!                 piece = line[column:columns[i + 1]].rstrip()
! 
!             if "  " in piece:
!                 print(f'Malformed field at column {column}: "{line}"')
!                 exit_code = 7
! 
!             pieces.append(piece)
! 
!         named_lines.append((get_surname(pieces[0]), line + "\n"))
! 
!         email = pieces[-1]
!         if email and (not email.startswith('<') or not email.endswith('>')):
!             print(f'Malformed email address: "{line}"')
!             exit_code = 8
! 
!     lines = [line + "\n" for line in lines]
!     sorted_lines = [line for _, line in sorted(named_lines)]
      if lines != sorted_lines:
          exit_code = 1
          diff = ndiff(lines, sorted_lines)
*************** def check_group(name, lines):
*** 82,113 ****
          print(f'{name} are fine!')
  
  
! lines = open(sys.argv[1]).read().splitlines()
! 
! needle = 'Global Reviewers'
! lines = list(dropwhile(lambda x: x.strip() != needle, lines))
! lines = lines[2:]
! 
! chunk = list(takewhile(is_empty, lines))
! check_group(needle, chunk)
! 
! needle = 'Write After Approval'
! lines = list(dropwhile(lambda x: needle not in x, lines))
! lines = lines[2:]
! 
! chunk = list(takewhile(is_empty, lines))
! check_group(needle, chunk)
  
! needle = 'Bug database only accounts'
! lines = list(dropwhile(lambda x: needle not in x, lines))
! lines = lines[2:]
  
! chunk = list(takewhile(is_empty, lines))
! check_group(needle, chunk)
  
! needle = 'Contributing under the DCO'
! lines = list(dropwhile(lambda x: needle not in x, lines))[1:]
! lines = list(dropwhile(lambda x: not has_tab(x), lines))
! check_group(needle, lines)
  
  sys.exit(exit_code)
--- 115,149 ----
          print(f'{name} are fine!')
  
  
! text = open(sys.argv[1]).read()
! if '\t' in text:
!     print('The file should not contain tabs')
!     exit_code = 9
  
! sections = [
!     # heading, paragraph index, column numbers
!     ('Global Reviewers', 1, [0, 48]),
!     ('Write After Approval', 2, [0, 32, 48]),
!     ('Bug database only accounts', 1, [0, 48]),
!     ('Contributing under the DCO', 2, [0, 48])
! ]
  
! i = 0
! count = 0
! for is_empty, lines in groupby(text.splitlines(), lambda x: not x):
!     if is_empty:
!         continue
!     lines = list(lines)
!     if count > 0:
!         count -= 1
!         if count == 0:
!             check_group(sections[i][0], lines, sections[i][2])
!             i += 1
!     elif len(lines) == 1 and i < len(sections) and sections[i][0] in lines[0]:
!         count = sections[i][1]
  
! if i < len(sections):
!     print(f'Missing "{sections[i][0]}" section')
!     exit_code = 10
  
  sys.exit(exit_code)
diff -Nrcpad gcc-14.2.0/contrib/check-params-in-docs.py gcc-15.1.0/contrib/check-params-in-docs.py
*** gcc-14.2.0/contrib/check-params-in-docs.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check-params-in-docs.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # Find missing and extra parameters in documentation compared to
  # output of: gcc --help=params.
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2025 Free Software Foundation, Inc.
  #
  # Find missing and extra parameters in documentation compared to
  # output of: gcc --help=params.
*************** for line in open(args.params_output).rea
*** 57,63 ****
          help_params[r[0]] = r[1]
  
  # Skip target-specific params
! help_params = [x for x in help_params.keys() if not target_specific(x)]
  
  # Find section in .texi manual with parameters
  texi = ([x.strip() for x in open(args.texi_file).readlines()])
--- 57,63 ----
          help_params[r[0]] = r[1]
  
  # Skip target-specific params
! help_params = {x:y for x,y in help_params.items() if not target_specific(x)}
  
  # Find section in .texi manual with parameters
  texi = ([x.strip() for x in open(args.texi_file).readlines()])
*************** texi = takewhile(lambda x: '@node Instru
*** 66,84 ****
  texi = list(texi)[1:]
  
  texi_params = []
  for line in texi:
      for token in ('@item ', '@itemx '):
          if line.startswith(token):
              texi_params.append(line[len(token):])
              break
  
- # Skip digits
- texi_params = [x for x in texi_params if not x[0].isdigit()]
  # Skip target-specific params
  texi_params = [x for x in texi_params if not target_specific(x)]
  
  texi_set = set(texi_params) - ignored
! params_set = set(help_params) - ignored
  
  success = True
  extra = texi_set - params_set
--- 66,93 ----
  texi = list(texi)[1:]
  
  texi_params = []
+ skip = False
  for line in texi:
+     # Skip @table @samp sections of manual where values of a param are usually
+     # listed
+     if skip:
+         if line.startswith('@end table'):
+             skip = False
+         continue
+     elif line.startswith('@table @samp'):
+         skip = True
+         continue
+ 
      for token in ('@item ', '@itemx '):
          if line.startswith(token):
              texi_params.append(line[len(token):])
              break
  
  # Skip target-specific params
  texi_params = [x for x in texi_params if not target_specific(x)]
  
  texi_set = set(texi_params) - ignored
! params_set = set(help_params.keys()) - ignored
  
  success = True
  extra = texi_set - params_set
*************** if len(missing):
*** 92,98 ****
      print('Missing:')
      for m in missing:
          print('@item ' + m)
!         print(params[m])
          print()
      success = False
  
--- 101,107 ----
      print('Missing:')
      for m in missing:
          print('@item ' + m)
!         print(help_params[m])
          print()
      success = False
  
diff -Nrcpad gcc-14.2.0/contrib/check_GNU_style.py gcc-15.1.0/contrib/check_GNU_style.py
*** gcc-14.2.0/contrib/check_GNU_style.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check_GNU_style.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2025 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
diff -Nrcpad gcc-14.2.0/contrib/check_GNU_style.sh gcc-15.1.0/contrib/check_GNU_style.sh
*** gcc-14.2.0/contrib/check_GNU_style.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check_GNU_style.sh	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/bin/sh
  
  # Checks some of the GNU style formatting rules in a set of patches.
! # Copyright (C) 2010-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  #!/bin/sh
  
  # Checks some of the GNU style formatting rules in a set of patches.
! # Copyright (C) 2010-2025 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-14.2.0/contrib/check_GNU_style_lib.py gcc-15.1.0/contrib/check_GNU_style_lib.py
*** gcc-14.2.0/contrib/check_GNU_style_lib.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check_GNU_style_lib.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2025 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
*************** class SpacesCheck:
*** 103,109 ****
  
  class SpacesAndTabsMixedCheck:
      def __init__(self):
!         self.re = re.compile('\ \t')
  
      def check(self, filename, lineno, line):
          stripped = line.lstrip()
--- 103,109 ----
  
  class SpacesAndTabsMixedCheck:
      def __init__(self):
!         self.re = re.compile(r'\ \t')
  
      def check(self, filename, lineno, line):
          stripped = line.lstrip()
*************** class SpacesAndTabsMixedCheck:
*** 115,121 ****
  
  class TrailingWhitespaceCheck:
      def __init__(self):
!         self.re = re.compile('(\s+)$')
  
      def check(self, filename, lineno, line):
          assert(len(line) == 0 or line[-1] != '\n')
--- 115,121 ----
  
  class TrailingWhitespaceCheck:
      def __init__(self):
!         self.re = re.compile(r'(\s+)$')
  
      def check(self, filename, lineno, line):
          assert(len(line) == 0 or line[-1] != '\n')
*************** class TrailingWhitespaceCheck:
*** 128,134 ****
  
  class SentenceSeparatorCheck:
      def __init__(self):
!         self.re = re.compile('\w\.(\s|\s{3,})\w')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
--- 128,134 ----
  
  class SentenceSeparatorCheck:
      def __init__(self):
!         self.re = re.compile(r'\w\.(\s|\s{3,})\w')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
*************** class SentenceSeparatorCheck:
*** 140,146 ****
  
  class SentenceEndOfCommentCheck:
      def __init__(self):
!         self.re = re.compile('\w\.(\s{0,1}|\s{3,})\*/')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
--- 140,146 ----
  
  class SentenceEndOfCommentCheck:
      def __init__(self):
!         self.re = re.compile(r'\w\.(\s{0,1}|\s{3,})\*/')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
*************** class SentenceEndOfCommentCheck:
*** 152,158 ****
  
  class SentenceDotEndCheck:
      def __init__(self):
!         self.re = re.compile('\w(\s*\*/)')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
--- 152,158 ----
  
  class SentenceDotEndCheck:
      def __init__(self):
!         self.re = re.compile(r'\w(\s*\*/)')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
*************** class SentenceDotEndCheck:
*** 164,170 ****
  class FunctionParenthesisCheck:
      # TODO: filter out GTY stuff
      def __init__(self):
!         self.re = re.compile('\w(\s{2,})?(\()')
  
      def check(self, filename, lineno, line):
          if '#define' in line:
--- 164,170 ----
  class FunctionParenthesisCheck:
      # TODO: filter out GTY stuff
      def __init__(self):
!         self.re = re.compile(r'\w(\s{2,})?(\()')
  
      def check(self, filename, lineno, line):
          if '#define' in line:
*************** class FunctionParenthesisCheck:
*** 179,185 ****
  
  class SquareBracketCheck:
      def __init__(self):
!         self.re = re.compile('\w\s+(\[)')
  
      def check(self, filename, lineno, line):
          if filename.endswith('.md'):
--- 179,185 ----
  
  class SquareBracketCheck:
      def __init__(self):
!         self.re = re.compile(r'\w\s+(\[)')
  
      def check(self, filename, lineno, line):
          if filename.endswith('.md'):
*************** class SquareBracketCheck:
*** 194,200 ****
  
  class ClosingParenthesisCheck:
      def __init__(self):
!         self.re = re.compile('\S\s+(\))')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
--- 194,200 ----
  
  class ClosingParenthesisCheck:
      def __init__(self):
!         self.re = re.compile(r'\S\s+(\))')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
*************** class BracesOnSeparateLineCheck:
*** 208,214 ****
      # This will give false positives for C99 compound literals.
  
      def __init__(self):
!         self.re = re.compile('(\)|else)\s*({)')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
--- 208,214 ----
      # This will give false positives for C99 compound literals.
  
      def __init__(self):
!         self.re = re.compile(r'(\)|else)\s*({)')
  
      def check(self, filename, lineno, line):
          m = self.re.search(line)
*************** class BracesOnSeparateLineCheck:
*** 219,225 ****
  
  class TrailinigOperatorCheck:
      def __init__(self):
!         regex = '^\s.*(([^a-zA-Z_]\*)|([-%<=&|^?])|([^*]/)|([^:][+]))$'
          self.re = re.compile(regex)
  
      def check(self, filename, lineno, line):
--- 219,225 ----
  
  class TrailinigOperatorCheck:
      def __init__(self):
!         regex = r'^\s.*(([^a-zA-Z_]\*)|([-%<=&|^?])|([^*]/)|([^:][+]))$'
          self.re = re.compile(regex)
  
      def check(self, filename, lineno, line):
diff -Nrcpad gcc-14.2.0/contrib/check_makefile_deps.sh gcc-15.1.0/contrib/check_makefile_deps.sh
*** gcc-14.2.0/contrib/check_makefile_deps.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check_makefile_deps.sh	Fri Apr 25 08:17:59 2025
***************
*** 2,8 ****
  #
  # Check for accurate dependencies in gcc/Makefile.in.
  #
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 2,8 ----
  #
  # Check for accurate dependencies in gcc/Makefile.in.
  #
! # Copyright (C) 2008-2025 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-14.2.0/contrib/check_warning_flags.sh gcc-15.1.0/contrib/check_warning_flags.sh
*** gcc-14.2.0/contrib/check_warning_flags.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/check_warning_flags.sh	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Check that the warning flags documented in invoke.texi match up
  # with what the compiler accepts.
  #
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 3,9 ----
  # Check that the warning flags documented in invoke.texi match up
  # with what the compiler accepts.
  #
! # Copyright (C) 2008-2025 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-14.2.0/contrib/clang-format gcc-15.1.0/contrib/clang-format
*** gcc-14.2.0/contrib/clang-format	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/clang-format	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! # Copyright (C) 2015-2024 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
--- 1,4 ----
! # Copyright (C) 2015-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
***************
*** 27,37 ****
  ---
  Language: Cpp
  AccessModifierOffset: -2
! AlwaysBreakAfterReturnType: TopLevel
  BinPackArguments: true
  BinPackParameters: true
  BraceWrapping:
    AfterClass: true
    AfterControlStatement: true
    AfterEnum: true
    AfterFunction: true
--- 27,38 ----
  ---
  Language: Cpp
  AccessModifierOffset: -2
! AlwaysBreakAfterReturnType: TopLevelDefinitions
  BinPackArguments: true
  BinPackParameters: true
  BraceWrapping:
    AfterClass: true
+   AfterCaseLabel: true
    AfterControlStatement: true
    AfterEnum: true
    AfterFunction: true
*************** BraceWrapping:
*** 41,46 ****
--- 42,48 ----
    AfterUnion: true
    BeforeCatch: true
    BeforeElse: true
+   BeforeWhile: true
    IndentBraces: true
    SplitEmptyFunction: false
  BreakBeforeBinaryOperators: All
diff -Nrcpad gcc-14.2.0/contrib/compare-all-tests gcc-15.1.0/contrib/compare-all-tests
*** gcc-14.2.0/contrib/compare-all-tests	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/compare-all-tests	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #! /bin/bash
  
  # Compare the assembly language output for all the gcc tests.
! # Copyright (C) 2009-2024 Free Software Foundation, Inc.
  # Contributed by Paolo Bonzini.
  #
  # Invoke it as "bash compare-all-tests target1 target2 ... targetN".
--- 1,7 ----
  #! /bin/bash
  
  # Compare the assembly language output for all the gcc tests.
! # Copyright (C) 2009-2025 Free Software Foundation, Inc.
  # Contributed by Paolo Bonzini.
  #
  # Invoke it as "bash compare-all-tests target1 target2 ... targetN".
diff -Nrcpad gcc-14.2.0/contrib/compare-debug gcc-15.1.0/contrib/compare-debug
*** gcc-14.2.0/contrib/compare-debug	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/compare-debug	Fri Apr 25 08:17:59 2025
***************
*** 2,8 ****
  
  # Compare stripped copies of two given object files.
  
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  
  # This file is part of GCC.
--- 2,8 ----
  
  # Compare stripped copies of two given object files.
  
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  
  # This file is part of GCC.
diff -Nrcpad gcc-14.2.0/contrib/compare-lto gcc-15.1.0/contrib/compare-lto
*** gcc-14.2.0/contrib/compare-lto	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/compare-lto	Fri Apr 25 08:17:59 2025
***************
*** 2,8 ****
  
  # Compare copies of two given object files.
  
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  # Modified for LTO bootstrap by Richard Biener <rguenther@suse.de>
  
--- 2,8 ----
  
  # Compare copies of two given object files.
  
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  # Modified for LTO bootstrap by Richard Biener <rguenther@suse.de>
  
diff -Nrcpad gcc-14.2.0/contrib/compareSumTests3 gcc-15.1.0/contrib/compareSumTests3
*** gcc-14.2.0/contrib/compareSumTests3	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/compareSumTests3	Fri Apr 25 08:17:59 2025
***************
*** 5,11 ****
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/compare_two_ftime_report_sets gcc-15.1.0/contrib/compare_two_ftime_report_sets
*** gcc-14.2.0/contrib/compare_two_ftime_report_sets	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/compare_two_ftime_report_sets	Fri Apr 25 08:17:59 2025
***************
*** 5,11 ****
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/config-list.mk gcc-15.1.0/contrib/config-list.mk
*** gcc-14.2.0/contrib/config-list.mk	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/config-list.mk	Fri Apr 25 08:17:59 2025
*************** LIST = \
*** 61,67 ****
    i686-rtems i686-solaris2.11 i686-wrs-vxworks \
    i686-wrs-vxworksae \
    i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elfOPT-enable-obsolete \
!   ia64-linuxOPT-enable-obsolete ia64-hpuxOPT-enable-obsolete \
    ia64-hp-vmsOPT-enable-obsolete iq2000-elf lm32-elf \
    lm32-rtems lm32-uclinux \
    loongarch64-linux-gnuf64 loongarch64-linux-gnuf32 loongarch64-linux-gnusf \
--- 61,67 ----
    i686-rtems i686-solaris2.11 i686-wrs-vxworks \
    i686-wrs-vxworksae \
    i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elfOPT-enable-obsolete \
!   ia64-linux ia64-hpuxOPT-enable-obsolete \
    ia64-hp-vmsOPT-enable-obsolete iq2000-elf lm32-elf \
    lm32-rtems lm32-uclinux \
    loongarch64-linux-gnuf64 loongarch64-linux-gnuf32 loongarch64-linux-gnusf \
*************** LIST = \
*** 78,85 ****
    moxie-uclinux moxie-rtems \
    msp430-elf msp430-elfbare \
    nds32le-elf nds32be-elf \
-   nios2-elfOPT-enable-obsolete nios2-linux-gnuOPT-enable-obsolete \
-   nios2-rtemsOPT-enable-obsolete \
    nvptx-none \
    or1k-elf or1k-linux-uclibc or1k-linux-musl or1k-rtems \
    pdp11-aout \
--- 78,83 ----
diff -Nrcpad gcc-14.2.0/contrib/dg-cmp-results.sh gcc-15.1.0/contrib/dg-cmp-results.sh
*** gcc-14.2.0/contrib/dg-cmp-results.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/dg-cmp-results.sh	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  #!/bin/bash
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # Analyze changes in GCC DejaGNU test logs for binutils, gcc, gdb, etc.
  # Original version written in 2005 by James Lemke <jwlemke@wasabisystems.com>.
--- 1,5 ----
  #!/bin/bash
! # Copyright (C) 2006-2025 Free Software Foundation, Inc.
  #
  # Analyze changes in GCC DejaGNU test logs for binutils, gcc, gdb, etc.
  # Original version written in 2005 by James Lemke <jwlemke@wasabisystems.com>.
diff -Nrcpad gcc-14.2.0/contrib/dg-extract-results.py gcc-15.1.0/contrib/dg-extract-results.py
*** gcc-14.2.0/contrib/dg-extract-results.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/dg-extract-results.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/python
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,6 ----
  #!/usr/bin/python
  #
! # Copyright (C) 2014-2025 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/dg-extract-results.sh gcc-15.1.0/contrib/dg-extract-results.sh
*** gcc-14.2.0/contrib/dg-extract-results.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/dg-extract-results.sh	Fri Apr 25 08:17:59 2025
***************
*** 6,12 ****
  # The resulting file can be used with test result comparison scripts for
  # results from tests that were run in parallel.  See usage() below.
  
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Contributed by Janis Johnson <janis187@us.ibm.com>
  #
  # This file is part of GCC.
--- 6,12 ----
  # The resulting file can be used with test result comparison scripts for
  # results from tests that were run in parallel.  See usage() below.
  
! # Copyright (C) 2008-2025 Free Software Foundation, Inc.
  # Contributed by Janis Johnson <janis187@us.ibm.com>
  #
  # This file is part of GCC.
diff -Nrcpad gcc-14.2.0/contrib/dg-lint/dg-lint gcc-15.1.0/contrib/dg-lint/dg-lint
*** gcc-14.2.0/contrib/dg-lint/dg-lint	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/dg-lint/dg-lint	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,404 ----
+ #!/usr/bin/env python3
+ 
+ # Script to detect common mistakes in DejaGnu tests.
+ 
+ # Contributed by David Malcolm <dmalcolm@redhat.com>
+ #
+ # Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 3, or (at your option)
+ # any later version.
+ #
+ # GCC is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING.  If not, write to
+ # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ # Boston, MA 02110-1301, USA.
+ 
+ import argparse
+ import difflib
+ import os
+ import pathlib
+ import re
+ import sys
+ 
+ import libgdiagnostics
+ 
+ KNOWN_DIRECTIVES = {
+     # Directives, organized by HTML documentation file:
+ 
+     # https://gcc.gnu.org/onlinedocs/gccint/Directives.html
+     'dg-do',
+     'dg-options',
+     'dg-add-options',
+     'dg-remove-options',
+     'dg-additional-options',
+     'dg-timeout',
+     'dg-timeout-factor',
+     'dg-do-if',
+     'dg-skip-if',
+     'dg-require-effective-target',
+     'dg-require-support',
+     'dg-xfail-if',
+     'dg-xfail-run-if',
+     'dg-ice',
+     'dg-shouldfail',
+     'dg-error',
+     'dg-warning',
+     'dg-message',
+     'dg-note',
+     'dg-bogus',
+     'dg-line',
+     'dg-excess-errors',
+     'dg-prune-output',
+     'dg-output',
+     'dg-output-file',
+     'dg-set-compiler-env-var',
+     'dg-set-target-env-var',
+     'dg-additional-files',
+     'dg-final',
+ 
+     # https://gcc.gnu.org/onlinedocs/gccint/Require-Support.html
+     'dg-require-iconv',
+     'dg-require-profiling',
+     'dg-require-stack-check',
+     'dg-require-stack-size',
+     'dg-require-visibility',
+     'dg-require-alias',
+     'dg-require-ascii-locale',
+     'dg-require-compat-dfp',
+     'dg-require-cxa-atexit',
+     'dg-require-dll',
+     'dg-require-dot',
+     'dg-require-fork',
+     'dg-require-gc-sections',
+     'dg-require-host-local',
+     'dg-require-linker-plugin',
+     'dg-require-mkfifo',
+     'dg-require-named-sections',
+     'dg-require-weak',
+     'dg-require-weak-override',
+ 
+     # https://gcc.gnu.org/onlinedocs/gccint/LTO-Testing.html
+     'dg-lto-do',
+     'dg-lto-options',
+     'dg-extra-ld-options',
+     'dg-suppress-ld-options',
+ 
+     # https://gcc.gnu.org/onlinedocs/gccint/profopt-Testing.html
+     'dg-final-generate',
+     'dg-final-use',
+ 
+     # https://gcc.gnu.org/onlinedocs/gccint/Final-Actions.html
+     'dg-keep-saved-temps',
+ 
+     # Other directives I couldn't find docs for,
+     # organized by implementation file:
+ 
+     # gcc/testsuite/lib/target-supports-dg.exp
+     'dg-require-ifunc',
+     'dg-require-python-h',
+ 
+     # gcc/testsuite/lib/multiline.exp:
+     'dg-begin-multiline-output',
+     'dg-end-multiline-output',
+     'dg-enable-nn-line-numbers',
+ 
+     # gcc/testsuite/lib/gcc-dg.exp:
+     'dg-allow-blank-lines-in-output',
+     'dg-locus',
+     'dg-optimized',
+     'dg-missed',
+ 
+     # In gcc/testsuite/lib/gcc-defs.exp:
+     'dg-additional-sources',
+     'dg-regexp',
+ 
+     'dg-compile-aux-modules',
+     # implemented in various places:
+     # gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
+     # gcc/testsuite/gfortran.dg/c-interop/c-interop.exp
+     # gcc/testsuite/gfortran.dg/coarray/caf.exp
+     # gcc/testsuite/gfortran.dg/dg.exp
+     # gcc/testsuite/gfortran.dg/f202y/f202y.exp
+     # gcc/testsuite/gfortran.dg/goacc/goacc.exp
+ 
+     # gcc/testsuite/lib/lto.exp
+     'dg-lto-warning',
+     'dg-lto-message',
+     'dg-lto-note',
+ 
+     # gcc/testsuite/lib/profopt.exp
+     'dg-final-use-autofdo',
+     'dg-final-use-not-autofdo',
+ 
+     # gcc/testsuite/lib/scanasm.exp
+     'dg-function-on-line',
+ 
+     # gcc/testsuite/g++.dg/modules/modules.exp:
+     'dg-module-cmi',
+     'dg-module-do',
+ 
+     # gcc/testsuite/gcc.target/bfin/bfin.exp
+     'dg-bfin-options',
+     'dg-bfin-processors',
+ 
+     # gcc/testsuite/gcc.target/csky/csky.exp
+     'dg-csky-options',
+ 
+     # libstdc++-v3/testsuite/lib/dg-options.exp
+     'dg-require-c-std',
+     'dg-require-debug-mode',
+     'dg-require-profile-mode',
+     'dg-require-normal-mode',
+     'dg-require-normal-namespace',
+     'dg-require-parallel-mode',
+     'dg-require-fileio',
+     'dg-require-namedlocale',
+     'dg-require-sharedlib',
+     'dg-require-time',
+     'dg-require-cstdint',
+     'dg-require-cmath',
+     'dg-require-thread-fence',
+     'dg-require-atomic-cmpxchg-word',
+     'dg-require-atomic-builtins',
+     'dg-require-gthreads',
+     'dg-require-gthreads-timed',
+     'dg-require-sleep',
+     'dg-require-sched-yield',
+     'dg-require-string-conversions',
+     'dg-require-swprintf',
+     'dg-require-binary-io',
+     'dg-require-nprocs',
+     'dg-require-static-libstdcxx',
+     'dg-require-little-endian',
+     'dg-require-filesystem-ts',
+     'dg-require-target-fs-symlinks',
+     'dg-require-target-fs-space',
+     'dg-require-target-fs-lwt',
+     'dg-require-cpp-feature-test'
+ }
+ 
+ class Directive:
+     @staticmethod
+     def from_match(path, line_num, line, m):
+         return Directive(path, line_num,
+                          m.group(1), m.span(1),
+                          m.group(2), m.span(2))
+ 
+     def __init__(self, path, line_num,
+                  name, name_span,
+                  args_str, args_str_span):
+         self.path = path
+         self.line_num = line_num
+         self.name = name
+         self.name_span = name_span
+         self.args_str = args_str
+         self.args_str_span = args_str_span
+ 
+ class FileState:
+     def __init__(self):
+         # Map from directive name to list of directives
+         self.directives = {}
+ 
+     def add_directive(self, d):
+         if d.name not in self.directives:
+             self.directives[d.name] = []
+         self.directives[d.name].append(d)
+ 
+ class Context:
+     def __init__(self):
+         self.mgr = libgdiagnostics.Manager()
+         self.mgr.set_tool_name('dg-lint')
+         self.mgr.add_text_sink()
+         self.num_files_checked = 0
+ 
+     def check_file(self, f_in):
+         file_state = FileState()
+         try:
+             for line_idx, line in enumerate(f_in):
+                 self.check_line(file_state, f_in.name, line_idx + 1, line)
+             self.num_files_checked += 1
+         except UnicodeDecodeError:
+             return # FIXME
+ 
+     def check_line(self, file_state, path, line_num, line):
+         if 0:
+             phys_loc = self.get_file_and_line(path, line_num)
+             self.report_warning(phys_loc, "line = '%s'", line.rstrip())
+ 
+         # Look for directives
+         # Compare with dg.exp's dg-get-options
+         m = re.search(r"{[ \t]+(dg-[-a-z]+)[ \t]+(.*)[ \t]+}", line)
+         if m:
+             d = Directive.from_match(path, line_num, line, m)
+             self.on_directive(file_state, d)
+         else:
+             # Look for things that look like attempts to use directives,
+             # but didn't match the regexp
+             m = re.search(r"(dg-[-a-z]+)", line)
+             if m:
+                 phys_loc \
+                     = self.get_file_line_and_range_for_match_span(path,
+                                                                   line_num,
+                                                                   m.span(1))
+                 self.make_warning() \
+                     .at(phys_loc) \
+                     .emit('directive %qs appears not to match dg.exp\'s regexp',
+                           m.group(1))
+             else:
+                 # Look for things that look like misspellings of directives,
+                 # via underscores rather than dashes
+                 m = re.search(r"{[ \t]+(dg[-_][-_a-z]+)(.*)", line)
+                 if m:
+                     bogus_d = Directive.from_match(path, line_num, line, m)
+                     self.report_unknown_directive(bogus_d)
+ 
+     def on_directive(self, file_state, d):
+         if 0:
+             phys_loc = self.get_file_and_line(d.path, d.line_num)
+             self.make_note() \
+                 .at(phys_loc) \
+                 .emit('directive %qs with arguments %qs',
+                       d.name, d.args_str)
+ 
+         if d.name not in KNOWN_DIRECTIVES:
+             self.report_unknown_directive(d)
+ 
+         # Apparently we can't have a dg-do after a dg-require;
+         # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116163#c5
+         if d.name == 'dg-do':
+             for existing_name in file_state.directives:
+                 if existing_name.startswith('dg-require'):
+                     other_d = file_state.directives[existing_name][0]
+                     self.complain_about_order(other_d, d)
+ 
+         file_state.add_directive(d)
+ 
+     def report_unknown_directive(self, d):
+         phys_loc = self.get_phys_loc_for_directive(d)
+         w = self.make_warning() \
+                 .at(phys_loc)
+         candidates = difflib.get_close_matches(d.name, KNOWN_DIRECTIVES)
+         if candidates:
+             suggestion = candidates[0]
+             w.with_fix_it_replace (phys_loc, suggestion) \
+              .emit("unknown directive: %qs; did you mean %qs?",
+                    d.name, suggestion)
+         else:
+             w.emit("unknown directive: %qs",
+                    d.name)
+ 
+     def complain_about_order(self, existing_d: Directive, new_d: Directive):
+         """
+         Complain about new_d occurring after existing_d.
+         """
+         with self.mgr.make_group() as g:
+             self.make_warning() \
+                 .at(self.get_phys_loc_for_directive(new_d))\
+                 .emit("%qs after %qs", new_d.name, existing_d.name)
+             self.make_note() \
+                 .at(self.get_phys_loc_for_directive(existing_d))\
+                 .emit("%qs was here", existing_d.name)
+ 
+     def get_file_and_line(self,
+                           path: str,
+                           line_num: int):
+         """
+         Get a libgdiagnostics.c_diagnostic_physical_location_ptr for the given line.
+         """
+         c_diag_file = self.mgr.get_file(path)
+         return self.mgr.get_file_and_line(c_diag_file, line_num)
+ 
+     def get_phys_loc_for_directive(self, d: Directive) \
+           -> libgdiagnostics.c_diagnostic_physical_location_ptr:
+         return self.get_file_line_and_range_for_match_span(d.path,
+                                                            d.line_num,
+                                                            d.name_span)
+ 
+     def get_file_line_and_range_for_match_span(self,
+                                                path: str,
+                                                line_num: int,
+                                                span):
+         return self.get_file_line_and_range(path, line_num,
+                                             start_column=span[0] + 1,
+                                             end_column=span[1])
+ 
+     def get_file_line_and_range(self,
+                                 path: str,
+                                 line_num: int,
+                                 start_column: int,
+                                 end_column: int):
+         """
+         Get a libgdiagnostics.c_diagnostic_physical_location_ptr for the range
+         of columns on the given line.
+         """
+         c_diag_file = self.mgr.get_file(path)
+         start_loc = self.mgr.get_file_line_and_column(c_diag_file, line_num, start_column)
+         end_loc = self.mgr.get_file_line_and_column(c_diag_file, line_num, end_column)
+         return self.mgr.get_range(start_loc, start_loc, end_loc)
+ 
+     def report_warning(self, phys_loc, msg, *args):
+         diag = libgdiagnostics.Diagnostic(self.mgr,
+                                           libgdiagnostics.DIAGNOSTIC_LEVEL_WARNING)
+         diag.set_location (phys_loc)
+         diag.finish(msg, *args)
+ 
+     def make_warning(self):
+         return libgdiagnostics.Diagnostic(self.mgr,
+                                           libgdiagnostics.DIAGNOSTIC_LEVEL_WARNING)
+ 
+     def make_note(self):
+         return libgdiagnostics.Diagnostic(self.mgr,
+                                           libgdiagnostics.DIAGNOSTIC_LEVEL_NOTE)
+ 
+     def report_stats(self):
+         self.make_note ()\
+             .emit('%i files checked', self.num_files_checked)
+ 
+ def skip_file(filename):
+     if 'ChangeLog' in filename:
+         return True
+     if 'README' in filename:
+         return True
+     if filename.endswith('Makefile.am') or filename.endswith('Makefile.in'):
+         return True
+     if filename.endswith('.exp'):
+         return True
+     if 'gen_directive_tests' in filename:
+         return True
+     return False
+ 
+ def main(argv):
+     parser = argparse.ArgumentParser()#usage=__doc__)
+     parser.add_argument('paths', nargs='+', type=pathlib.Path)
+     opts = parser.parse_args(argv[1:])
+ 
+     ctxt = Context()
+     for path in opts.paths:
+         if path.is_dir():
+             for dirpath, dirnames, filenames in os.walk(path):
+                 for f in filenames:
+                     if skip_file(f):
+                         continue
+                     p = os.path.join(dirpath, f)
+                     with open(p) as f:
+                         ctxt.check_file(f)
+         else:
+             with open(path) as f:
+                 ctxt.check_file(f)
+     ctxt.report_stats()
+ 
+ # TODO: how to unit test?
+ 
+ if __name__ == '__main__':
+     retval = main(sys.argv)
+     sys.exit(retval)
diff -Nrcpad gcc-14.2.0/contrib/dg-lint/libgdiagnostics.py gcc-15.1.0/contrib/dg-lint/libgdiagnostics.py
*** gcc-14.2.0/contrib/dg-lint/libgdiagnostics.py	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/dg-lint/libgdiagnostics.py	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,250 ----
+ #!/usr/bin/env python3
+ 
+ # Python bindings for libgdiagnostics, using ctypes
+ 
+ # Contributed by David Malcolm <dmalcolm@redhat.com>
+ #
+ # Copyright (C) 2025 Free Software Foundation, Inc.
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 3, or (at your option)
+ # any later version.
+ #
+ # GCC is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING.  If not, write to
+ # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ # Boston, MA 02110-1301, USA.
+ 
+ from contextlib import contextmanager
+ import ctypes
+ 
+ # Lower-level API: use ctypes and FFI to wrap the C API directly
+ 
+ cdll = ctypes.cdll.LoadLibrary('libgdiagnostics.so')
+ 
+ libc = ctypes.CDLL(None)
+ c_stderr = ctypes.c_void_p.in_dll(libc, 'stderr')
+ 
+ # Opaque structs
+ 
+ class c_diagnostic_manager(ctypes.Structure):
+     pass
+ c_diagnostic_manager_ptr = ctypes.POINTER(c_diagnostic_manager)
+ 
+ class c_diagnostic(ctypes.Structure):
+     pass
+ c_diagnostic_ptr = ctypes.POINTER(c_diagnostic)
+ 
+ class c_diagnostic_file(ctypes.Structure):
+     pass
+ c_diagnostic_file_ptr = ctypes.POINTER(c_diagnostic_file)
+ 
+ class c_diagnostic_physical_location(ctypes.Structure):
+     pass
+ c_diagnostic_physical_location_ptr = ctypes.POINTER(c_diagnostic_physical_location)
+ 
+ # Enums
+ 
+ DIAGNOSTIC_COLORIZE_IF_TTY = 0
+ 
+ DIAGNOSTIC_LEVEL_ERROR   = 0
+ DIAGNOSTIC_LEVEL_WARNING = 1
+ DIAGNOSTIC_LEVEL_NOTE    = 2
+ DIAGNOSTIC_LEVEL_SORRY   = 3
+ 
+ # Entrypoints
+ 
+ cdll.diagnostic_manager_new.argtypes = []
+ cdll.diagnostic_manager_new.restype = c_diagnostic_manager_ptr
+ 
+ cdll.diagnostic_manager_release.argtypes = [c_diagnostic_manager_ptr]
+ cdll.diagnostic_manager_release.restype = None
+ 
+ cdll.diagnostic_manager_set_tool_name.argtypes = [c_diagnostic_manager_ptr,
+                                                   ctypes.c_char_p]
+ cdll.diagnostic_manager_set_tool_name.restype = None
+ 
+ cdll.diagnostic_manager_begin_group.argtypes = [c_diagnostic_manager_ptr]
+ cdll.diagnostic_manager_begin_group.restype = None
+ 
+ cdll.diagnostic_manager_end_group.argtypes = [c_diagnostic_manager_ptr]
+ cdll.diagnostic_manager_end_group.restype = None
+ 
+ cdll.diagnostic_begin.argtypes = [c_diagnostic_manager_ptr,
+                                   ctypes.c_int]
+ cdll.diagnostic_begin.restype = c_diagnostic_ptr
+ 
+ cdll.diagnostic_finish.argtypes = [c_diagnostic_ptr,
+                                    ctypes.c_char_p]#, ctypes.c_char_p] # FIXME: should be variadic
+ cdll.diagnostic_finish.restype = None
+ 
+ cdll.diagnostic_manager_new_file.argtypes = [c_diagnostic_manager_ptr,
+                                              ctypes.c_char_p,
+                                              ctypes.c_char_p]
+ cdll.diagnostic_manager_new_file.restype = c_diagnostic_file_ptr
+ 
+ cdll.diagnostic_manager_new_location_from_file_and_line.argtypes \
+     = [c_diagnostic_manager_ptr,
+        c_diagnostic_file_ptr,
+        ctypes.c_int]
+ cdll.diagnostic_manager_new_location_from_file_and_line.restype \
+     = c_diagnostic_physical_location_ptr
+ 
+ cdll.diagnostic_manager_new_location_from_file_line_column.argtypes \
+     = [c_diagnostic_manager_ptr,
+        c_diagnostic_file_ptr,
+        ctypes.c_int,
+        ctypes.c_int]
+ cdll.diagnostic_manager_new_location_from_file_line_column.restype \
+     = c_diagnostic_physical_location_ptr
+ 
+ cdll.diagnostic_manager_new_location_from_range.argtypes\
+     = [c_diagnostic_manager_ptr,
+        c_diagnostic_physical_location_ptr,
+        c_diagnostic_physical_location_ptr,
+        c_diagnostic_physical_location_ptr]
+ cdll.diagnostic_manager_new_location_from_range.restype \
+     = c_diagnostic_physical_location_ptr
+ 
+ cdll.diagnostic_set_location.argtypes = [c_diagnostic_ptr,
+                                          c_diagnostic_physical_location_ptr]
+ cdll.diagnostic_set_location.restype = None
+ 
+ cdll.diagnostic_add_fix_it_hint_replace.argtypes \
+     = [c_diagnostic_ptr,
+        c_diagnostic_physical_location_ptr,
+        ctypes.c_char_p]
+ cdll.diagnostic_add_fix_it_hint_replace.restype = None
+ 
+ # Helper functions
+ 
+ def _to_utf8(s: str):
+     if s is None:
+         return None
+     return s.encode('utf-8')
+ 
+ # Higher-level API, a more pythonic approach, with classes
+ 
+ class Manager:
+     def __init__(self):
+         self.c_mgr = cdll.diagnostic_manager_new()
+         if 0:
+             print('__init__: %r' % self.c_mgr)
+ 
+     def __del__(self):
+         if 0:
+             print('__del__: %r' % self.c_mgr)
+         self.c_mgr = cdll.diagnostic_manager_release(self.c_mgr)
+ 
+     def set_tool_name(self, name: str):
+         assert self.c_mgr
+         assert str
+         cdll.diagnostic_manager_set_tool_name (self.c_mgr, _to_utf8(name))
+ 
+     def add_text_sink(self):
+         assert self.c_mgr
+         # FIXME: hardcode the args for now
+         cdll.diagnostic_manager_add_text_sink (self.c_mgr,
+                                                c_stderr,
+                                                DIAGNOSTIC_COLORIZE_IF_TTY)
+ 
+     def get_file(self, path: str, sarif_lang: str = None):
+         assert self.c_mgr
+         assert path
+         c_file = cdll.diagnostic_manager_new_file (self.c_mgr,
+                                                    _to_utf8(path),
+                                                    _to_utf8(sarif_lang))
+         return c_file
+ 
+     def get_file_and_line(self,
+                           c_file: c_diagnostic_file_ptr,
+                           line_num: int):
+         assert self.c_mgr
+         assert c_file
+         c_phys_loc = cdll.diagnostic_manager_new_location_from_file_and_line (self.c_mgr,
+                                                                               c_file,
+                                                                               line_num)
+         return c_phys_loc
+ 
+     def get_file_line_and_column(self,
+                                  c_file: c_diagnostic_file_ptr,
+                                  line_num: int,
+                                  column_num: int):
+         assert self.c_mgr
+         assert c_file
+         c_phys_loc = cdll.diagnostic_manager_new_location_from_file_line_column (self.c_mgr,
+                                                                                  c_file,
+                                                                                  line_num,
+                                                                                  column_num)
+         return c_phys_loc
+ 
+     def get_range(self,
+                   caret: c_diagnostic_physical_location_ptr,
+                   start: c_diagnostic_physical_location_ptr,
+                   finish: c_diagnostic_physical_location_ptr):
+         assert self.c_mgr
+         c_phys_loc = cdll.diagnostic_manager_new_location_from_range (self.c_mgr,
+                                                                       caret,
+                                                                       start,
+                                                                       finish)
+         return c_phys_loc
+ 
+     @contextmanager
+     def make_group(self):
+         assert self.c_mgr
+         cdll.diagnostic_manager_begin_group (self.c_mgr)
+         try:
+             yield
+         finally:
+             assert self.c_mgr
+             cdll.diagnostic_manager_end_group (self.c_mgr)
+ 
+ class Diagnostic:
+     def __init__(self, mgr: Manager, level: int):
+         self.c_diag = cdll.diagnostic_begin (mgr.c_mgr, level)
+         if 0:
+             print('__init__: %r' % self.c_diag)
+ 
+     def finish(self, fmt: str, *args):
+         assert self.c_diag
+         c_args = []
+         for arg in args:
+             if type(arg) is str:
+                 arg = _to_utf8(arg)
+             c_args.append(arg)
+         cdll.diagnostic_finish (self.c_diag, _to_utf8(fmt), *c_args)
+         self.c_diagnostic = None
+ 
+     def set_location(self,
+                      phys_loc: c_diagnostic_physical_location_ptr):
+         assert self.c_diag
+         cdll.diagnostic_set_location(self.c_diag, phys_loc)
+ 
+ 
+     # Chaining-style API
+ 
+     def at(self,
+            phys_loc: c_diagnostic_physical_location_ptr):
+         self.set_location(phys_loc)
+         return self
+ 
+     def with_fix_it_replace(self,
+                             phys_loc: c_diagnostic_physical_location_ptr,
+                             replacement: str):
+         assert self.c_diag
+         assert replacement
+         cdll.diagnostic_add_fix_it_hint_replace(self.c_diag,
+                                                 phys_loc,
+                                                 _to_utf8(replacement))
+         return self
+ 
+     def emit(self, fmt: str, *args):
+         self.finish(fmt, *args)
diff -Nrcpad gcc-14.2.0/contrib/dg-lint/test-1.c gcc-15.1.0/contrib/dg-lint/test-1.c
*** gcc-14.2.0/contrib/dg-lint/test-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/dg-lint/test-1.c	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,41 ----
+ /* Various misspelled DejaGnu directives.  */
+ 
+ /* Underscore rather than dash.
+    Example taken from gcc/testsuite/gcc.target/powerpc/vsx-builtin-msum.c
+    fixed in r15-3878-gd5864b95ce94d9.  */
+ /* { dg_final { scan_assembler_times "vmsumudm" 2 } } */
+ 
+ 
+ /* Correct directive.  */
+ /* { dg-final { scan_assembler_times "vmsumudm" 2 } } */
+ 
+ /* Malformed uses of directives.
+ 
+    Missing braces
+    dg-output-file "m4.out"
+ 
+    Missing leading brace
+    dg-output-file "m4.out" }
+ 
+    Missing trailing brace
+    { dg-output-file "m4.out"
+ 
+    Missing whitespace.
+    {dg-output-file "m4.out"}
+ 
+    Trailing comma.
+    { dg-output-file, "m4.out" }
+ */
+ 
+ /* Unrecognized directives.
+ 
+    { dg-whatever }
+    { dg-whatever  }
+    { dg-whatever "" }
+ */
+ 
+ /* Misspelled directive
+ 
+    { dg-oupyt-file "m4.out" }
+ 
+  */
diff -Nrcpad gcc-14.2.0/contrib/dg-lint/test-2.c gcc-15.1.0/contrib/dg-lint/test-2.c
*** gcc-14.2.0/contrib/dg-lint/test-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/dg-lint/test-2.c	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,8 ----
+ /* Bad directive ordering; see
+    https://gcc.gnu.org/onlinedocs/gccint/Directives.html
+    "This directive must appear after any dg-do directive in the test and
+    before any dg-additional-sources directive." for
+    dg-require-effective-target.  */
+ 
+ /* { dg-require-effective-target c++11 } */
+ /* { dg-do compile } */
diff -Nrcpad gcc-14.2.0/contrib/dg-out-generator.pl gcc-15.1.0/contrib/dg-out-generator.pl
*** gcc-14.2.0/contrib/dg-out-generator.pl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/dg-out-generator.pl	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env perl
  #
! # Copyright (C) 2022-2024 Free Software Foundation, Inc.
  # Contributed by Arsen Arsenović.
  #
  # This script is free software; you can redistribute it and/or modify
--- 1,6 ----
  #!/usr/bin/env perl
  #
! # Copyright (C) 2022-2025 Free Software Foundation, Inc.
  # Contributed by Arsen Arsenović.
  #
  # This script is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-14.2.0/contrib/dglib.pm gcc-15.1.0/contrib/dglib.pm
*** gcc-14.2.0/contrib/dglib.pm	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/dglib.pm	Fri Apr 25 08:17:59 2025
***************
*** 10,16 ****
  #		true if and only if it is a passing result (PASS, XFAIL, or
  #		KFAIL.)
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 10,16 ----
  #		true if and only if it is a passing result (PASS, XFAIL, or
  #		KFAIL.)
  #
! # Copyright (C) 2006-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/download_prerequisites gcc-15.1.0/contrib/download_prerequisites
*** gcc-14.2.0/contrib/download_prerequisites	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/download_prerequisites	Fri Apr 25 08:17:59 2025
*************** The following options are available:
*** 82,88 ****
  "
  
  versiontext="${program} ${version}
! Copyright (C) 2016-2024 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  
--- 82,88 ----
  "
  
  versiontext="${program} ${version}
! Copyright (C) 2016-2025 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  
diff -Nrcpad gcc-14.2.0/contrib/filter-clang-warnings.py gcc-15.1.0/contrib/filter-clang-warnings.py
*** gcc-14.2.0/contrib/filter-clang-warnings.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/filter-clang-warnings.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2025 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/git_check_commit.py gcc-15.1.0/contrib/gcc-changelog/git_check_commit.py
*** gcc-14.2.0/contrib/gcc-changelog/git_check_commit.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/git_check_commit.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** import argparse
*** 22,27 ****
--- 22,33 ----
  
  from git_repository import parse_git_revisions
  
+ def nonzero_uint(value):
+     ivalue = int(value)
+     if ivalue <= 0:
+         raise argparse.ArgumentTypeError('%s is not a non-zero positive integer' % value)
+     return ivalue
+ 
  parser = argparse.ArgumentParser(description='Check git ChangeLog format '
                                   'of a commit')
  parser.add_argument('revisions', default='HEAD', nargs='?',
*************** parser.add_argument('-p', '--print-chang
*** 33,40 ****
--- 39,55 ----
                      help='Print final changelog entires')
  parser.add_argument('-v', '--verbose', action='store_true',
                      help='Print verbose information')
+ parser.add_argument('-n', '--num-commits', type=nonzero_uint, default=1,
+                     help='Number of commits to check (i.e. shorthand for '
+                     'hash~N..hash)')
  args = parser.parse_args()
  
+ if args.num_commits > 1:
+     if '..' in args.revisions:
+         print('ERR: --num-commits and range of revisions are mutually exclusive')
+         exit(1)
+     args.revisions = '{0}~{1}..{0}'.format(args.revisions, args.num_commits)
+ 
  retval = 0
  for git_commit in parse_git_revisions(args.git_path, args.revisions):
      res = 'OK' if git_commit.success else 'FAILED'
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/git_commit.py gcc-15.1.0/contrib/gcc-changelog/git_commit.py
*** gcc-14.2.0/contrib/gcc-changelog/git_commit.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/git_commit.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** default_changelog_locations = {
*** 38,43 ****
--- 38,44 ----
      'gcc/c',
      'gcc/c-family',
      'gcc',
+     'gcc/cobol',
      'gcc/cp',
      'gcc/d',
      'gcc/fortran',
*************** default_changelog_locations = {
*** 66,71 ****
--- 67,73 ----
      'libgcc',
      'libgcc/config/avr/libf7',
      'libgcc/config/libbid',
+     'libgcobol',
      'libgfortran',
      'libgm2',
      'libgomp',
*************** bug_components = {
*** 91,96 ****
--- 93,99 ----
      'bootstrap',
      'c',
      'c++',
+     'cobol',
      'd',
      'debug',
      'demangler',
*************** bug_components = {
*** 111,116 ****
--- 114,120 ----
      'libfortran',
      'libgcc',
      'libgcj',
+     'libgdiagnostics',
      'libgomp',
      'libitm',
      'libobjc',
*************** bug_components = {
*** 130,135 ****
--- 134,140 ----
      'rtl-optimization',
      'rust',
      'sanitizer',
+     'sarif-replay',
      'spam',
      'target',
      'testsuite',
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/git_email.py gcc-15.1.0/contrib/gcc-changelog/git_email.py
*** gcc-14.2.0/contrib/gcc-changelog/git_email.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/git_email.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/git_repository.py gcc-15.1.0/contrib/gcc-changelog/git_repository.py
*** gcc-14.2.0/contrib/gcc-changelog/git_repository.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/git_repository.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** def parse_git_revisions(repo_path, revis
*** 78,81 ****
--- 78,82 ----
                                 commit_to_info_hook=commit_to_info,
                                 ref_name=ref_name)
          parsed_commits.append(git_commit)
+     repo.close()
      return parsed_commits
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/git_update_version.py gcc-15.1.0/contrib/gcc-changelog/git_update_version.py
*** gcc-14.2.0/contrib/gcc-changelog/git_update_version.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/git_update_version.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** import argparse
*** 22,27 ****
--- 22,28 ----
  import datetime
  import logging
  import os
+ import re
  
  from git import Repo
  
*************** from git_repository import parse_git_rev
*** 30,36 ****
  current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n')
  
  # Skip the following commits, they cannot be correctly processed
! IGNORED_COMMITS = (
          'c2be82058fb40f3ae891c68d185ff53e07f14f45',
          '04a040d907a83af54e0a98bdba5bfabc0ef4f700',
          '2e96b5f14e4025691b57d2301d71aa6092ed44bc',
--- 31,37 ----
  current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n')
  
  # Skip the following commits, they cannot be correctly processed
! ignored_commits = {
          'c2be82058fb40f3ae891c68d185ff53e07f14f45',
          '04a040d907a83af54e0a98bdba5bfabc0ef4f700',
          '2e96b5f14e4025691b57d2301d71aa6092ed44bc',
*************** IGNORED_COMMITS = (
*** 39,45 ****
          'e4cba49413ca429dc82f6aa2e88129ecb3fdd943',
          '1957bedf29a1b2cc231972aba680fe80199d5498',
          '040e5b0edbca861196d9e2ea2af5e805769c8d5d',
!         '8057f9aa1f7e70490064de796d7a8d42d446caf8')
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
--- 40,53 ----
          'e4cba49413ca429dc82f6aa2e88129ecb3fdd943',
          '1957bedf29a1b2cc231972aba680fe80199d5498',
          '040e5b0edbca861196d9e2ea2af5e805769c8d5d',
!         '8057f9aa1f7e70490064de796d7a8d42d446caf8',
!         '109f1b28fc94c93096506e3df0c25e331cef19d0',
!         '39f81924d88e3cc197fc3df74204c9b5e01e12f7',
!         '8e6a25b01becf449d54154b7e83de5f4955cba37',
!         '72677e1119dc40aa680755d009e079ad49446c46',
!         '10d76b7f1e5b63ad6d2b92940c39007913ced037',
!         'de3b277247ce98d189f121155b75f490725a42f6',
!         '13cf22eb557eb5e3d796822247d8d4957bdb25da'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
*************** def read_timestamp(path):
*** 56,61 ****
--- 64,70 ----
  
  def prepend_to_changelog_files(repo, folder, git_commit, add_to_git):
      if not git_commit.success:
+         logging.info(f"While processing {git_commit.info.hexsha}:")
          for error in git_commit.errors:
              logging.info(error)
          raise AssertionError()
*************** def prepend_to_changelog_files(repo, fol
*** 77,83 ****
  
  
  active_refs = ['master',
!                'releases/gcc-11', 'releases/gcc-12', 'releases/gcc-13']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
--- 86,92 ----
  
  
  active_refs = ['master',
!                'releases/gcc-12', 'releases/gcc-13', 'releases/gcc-14']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
*************** parser.add_argument('-d', '--dry-mode',
*** 91,103 ****
                           ' is expected')
  parser.add_argument('-c', '--current', action='store_true',
                      help='Modify current branch (--push argument is ignored)')
  args = parser.parse_args()
  
  repo = Repo(args.git_path)
  origin = repo.remotes['origin']
  
  
! def update_current_branch(ref_name):
      commit = repo.head.commit
      commit_count = 1
      while commit:
--- 100,114 ----
                           ' is expected')
  parser.add_argument('-c', '--current', action='store_true',
                      help='Modify current branch (--push argument is ignored)')
+ parser.add_argument('-i', '--ignore', action='append',
+                     help='list of commits to ignore')
  args = parser.parse_args()
  
  repo = Repo(args.git_path)
  origin = repo.remotes['origin']
  
  
! def update_current_branch(ref_name=None):
      commit = repo.head.commit
      commit_count = 1
      while commit:
*************** def update_current_branch(ref_name):
*** 121,127 ****
              head = head.parents[1]
          commits = parse_git_revisions(args.git_path, '%s..%s'
                                        % (commit.hexsha, head.hexsha), ref_name)
!         commits = [c for c in commits if c.info.hexsha not in IGNORED_COMMITS]
          for git_commit in reversed(commits):
              prepend_to_changelog_files(repo, args.git_path, git_commit,
                                         not args.dry_mode)
--- 132,138 ----
              head = head.parents[1]
          commits = parse_git_revisions(args.git_path, '%s..%s'
                                        % (commit.hexsha, head.hexsha), ref_name)
!         commits = [c for c in commits if c.info.hexsha not in ignored_commits]
          for git_commit in reversed(commits):
              prepend_to_changelog_files(repo, args.git_path, git_commit,
                                         not args.dry_mode)
*************** def update_current_branch(ref_name):
*** 151,156 ****
--- 162,170 ----
      else:
          logging.info('DATESTAMP unchanged')
  
+ if args.ignore is not None:
+     for item in args.ignore:
+         ignored_commits.update(set(i for i in re.split(r'\s*,\s*|\s+', item)))
  
  if args.current:
      logging.info('=== Working on the current branch ===')
diff -Nrcpad gcc-14.2.0/contrib/gcc-changelog/test_email.py gcc-15.1.0/contrib/gcc-changelog/test_email.py
*** gcc-14.2.0/contrib/gcc-changelog/test_email.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-changelog/test_email.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/gcc-git-customization.sh gcc-15.1.0/contrib/gcc-git-customization.sh
*** gcc-14.2.0/contrib/gcc-git-customization.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc-git-customization.sh	Fri Apr 25 08:17:59 2025
*************** if [ "x$dohook" = xyes ]; then
*** 156,200 ****
      fi
  fi
  
- # Scan the existing settings to see if there are any we need to rewrite.
- vendors=$(git config --get-all "remote.${upstream}.fetch" "refs/vendors/" | sed 's:.*refs/vendors/\([^/][^/]*\)/.*:\1:' | sort | uniq)
  url=$(git config --get "remote.${upstream}.url")
- pushurl=$(git config --get "remote.${upstream}.pushurl")
- for v in $vendors
- do
-     echo "Migrating vendor \"$v\" to new remote \"vendors/$v\""
-     git config --unset-all "remote.${upstream}.fetch" "refs/vendors/$v/"
-     git config --unset-all "remote.${upstream}.push" "refs/vendors/$v/"
-     git config "remote.vendors/${v}.url" "${url}"
-     if [ "x$pushurl" != "x" ]
-     then
- 	git config "remote.vendors/${v}.pushurl" "${pushurl}"
-     fi
-     git config --add "remote.vendors/${v}.fetch" "+refs/vendors/$v/heads/*:refs/remotes/vendors/${v}/*"
-     git config --add "remote.vendors/${v}.fetch" "+refs/vendors/$v/tags/*:refs/tags/vendors/${v}/*"
- done
- 
- # Convert the remote 'pfx' to users/pfx to avoid problems with ambiguous refs
- # on user branches
- old_remote=$(git config --get "remote.${old_pfx}.url")
- if [ -n "${old_remote}" ]
- then
-     echo "Migrating remote \"${old_pfx}\" to new remote \"users/${new_pfx}\""
-     # Create a dummy fetch rule that will cause the subsequent prune to remove the old remote refs.
-     git config --replace-all "remote.${old_pfx}.fetch" "+refs/empty/*:refs/remotes/${old_pfx}/*"
-     # Remove any remotes
-     git remote prune ${old_pfx}
-     git config --remove-section "remote.${old_pfx}"
-     for br in $(git branch --list "${old_pfx}/*")
-     do
- 	old_remote=$(git config --get "branch.${br}.remote")
- 	if [ "${old_remote}" = "${old_pfx}" ]
- 	then
- 	    git config "branch.${br}.remote" "users/${new_pfx}"
- 	fi
-     done
- fi
- 
  echo "Setting up tracking for personal namespace $remote_id in remotes/users/${new_pfx}"
  git config "remote.users/${new_pfx}.url" "${url}"
  if [ "x$pushurl" != "x" ]
--- 156,162 ----
*************** git config --replace-all "remote.users/$
*** 205,216 ****
  git config --replace-all "remote.users/${new_pfx}.fetch" "+refs/users/${remote_id}/tags/*:refs/tags/users/${new_pfx}/*" "refs/users/${remote_id}/tags/"
  git config --replace-all "remote.users/${new_pfx}.push" "refs/heads/${new_pfx}/*:refs/users/${remote_id}/heads/*" "refs/users/${remote_id}"
  
- if [ "$old_pfx" != "$new_pfx" -a "$old_pfx" != "${upstream}" ]
- then
-     git config --remove-section "remote.${old_pfx}"
- fi
- 
- git config --unset-all "remote.${upstream}.fetch" "refs/users/${remote_id}/"
- git config --unset-all "remote.${upstream}.push" "refs/users/${remote_id}/"
- 
  git fetch "users/${new_pfx}"
--- 167,170 ----
diff -Nrcpad gcc-14.2.0/contrib/gcc_build gcc-15.1.0/contrib/gcc_build
*** gcc-14.2.0/contrib/gcc_build	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc_build	Fri Apr 25 08:17:59 2025
***************
*** 11,17 ****
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 11,17 ----
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/gcc_update gcc-15.1.0/contrib/gcc_update
*** gcc-14.2.0/contrib/gcc_update	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gcc_update	Fri Apr 25 08:17:59 2025
*************** libgomp/config.h.in: libgomp/configure.a
*** 158,163 ****
--- 158,164 ----
  libgrust/Makefile.in: libgrust/Makefile.am libgrust/aclocal.m4
  libgrust/aclocal.m4: libgrust/configure.ac
  libgrust/configure: libgrust/configure.ac libgrust/aclocal.m4
+ libgrust/libformat_parser/Makefile.in: libgrust/libformat_parser/Makefile.am libgrust/aclocal.m4
  libgrust/libproc_macro_internal/Makefile.in: libgrust/libproc_macro_internal/Makefile.am libgrust/aclocal.m4
  libitm/aclocal.m4: libitm/configure.ac libitm/acinclude.m4
  libitm/Makefile.in: libitm/Makefile.am libitm/aclocal.m4
diff -Nrcpad gcc-14.2.0/contrib/gen_autofdo_event.py gcc-15.1.0/contrib/gen_autofdo_event.py
*** gcc-14.2.0/contrib/gen_autofdo_event.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gen_autofdo_event.py	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/usr/bin/python3
  # Generate Intel taken branches Linux perf event script for autofdo profiling.
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free
--- 1,7 ----
  #!/usr/bin/python3
  # Generate Intel taken branches Linux perf event script for autofdo profiling.
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free
*************** for j in u:
*** 112,118 ****
  u.close()
  
  if args.script:
!     print('''#!/bin/sh
  # Profile workload for gcc profile feedback (autofdo) using Linux perf.
  # Auto generated. To regenerate for new CPUs run
  # contrib/gen_autofdo_event.py --script --all in gcc source
--- 112,118 ----
  u.close()
  
  if args.script:
!     print(r'''#!/bin/sh
  # Profile workload for gcc profile feedback (autofdo) using Linux perf.
  # Auto generated. To regenerate for new CPUs run
  # contrib/gen_autofdo_event.py --script --all in gcc source
*************** case `grep -E -q "^cpu family\s*: 6" /pr
*** 152,173 ****
      for event, mod in eventmap.items():
          for m in mod[:-1]:
              print("model*:\ %s|\\" % m)
!         print('model*:\ %s) E="%s$FLAGS" ;;' % (mod[-1], event))
!     print('''*)
  echo >&2 "Unknown CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
! 	exit 1 ;;''')
!     print("esac")
!     print("set -x")
!     print('if ! perf record -e $E -b "$@" ; then')
!     print('  # PEBS may not actually be working even if the processor supports it')
!     print('  # (e.g., in a virtual machine). Trying to run without /p.')
!     print('  set +x')
!     print('  echo >&2 "Retrying without /p."')
!     print('  E="$(echo "${E}" | sed -e \'s/\/p/\//\')"')
!     print('  set -x')
!     print('  exec perf record -e $E -b "$@"')
!     print(' set +x')
!     print('fi')
  
  if cpufound == 0 and not args.all:
      sys.exit('CPU %s not found' % cpu)
--- 152,177 ----
      for event, mod in eventmap.items():
          for m in mod[:-1]:
              print("model*:\ %s|\\" % m)
!         print(r'model*:\ %s) E="%s$FLAGS" ;;' % (mod[-1], event))
!     print(r'''*)
!         if perf list br_inst_retired | grep -q br_inst_retired.near_taken ; then
!             E=br_inst_retired.near_taken:p
!         else
  echo >&2 "Unknown CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
! 	  exit 1
!         fi ;;''')
!     print(r"esac")
!     print(r"set -x")
!     print(r'if ! perf record -e $E -b "$@" ; then')
!     print(r'  # PEBS may not actually be working even if the processor supports it')
!     print(r'  # (e.g., in a virtual machine). Trying to run without /p.')
!     print(r'  set +x')
!     print(r'  echo >&2 "Retrying without /p."')
!     print(r'  E="$(echo "${E}" | sed -e \'s/\/p/\//\ -e s/:p//)"')
!     print(r'  set -x')
!     print(r'  exec perf record -e $E -b "$@"')
!     print(r' set +x')
!     print(r'fi')
  
  if cpufound == 0 and not args.all:
      sys.exit('CPU %s not found' % cpu)
diff -Nrcpad gcc-14.2.0/contrib/gennews gcc-15.1.0/contrib/gennews
*** gcc-14.2.0/contrib/gennews	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/gennews	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Script to generate the NEWS file from online release notes.
  # Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  #
! # Copyright (C) 2000-2024 Free Software Foundation, Inc.
  # This file is part of GCC.
  #
  # GCC is free software; you can redistribute it and/or modify
--- 3,9 ----
  # Script to generate the NEWS file from online release notes.
  # Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  #
! # Copyright (C) 2000-2025 Free Software Foundation, Inc.
  # This file is part of GCC.
  #
  # GCC is free software; you can redistribute it and/or modify
***************
*** 23,28 ****
--- 23,29 ----
  
  website=http://gcc.gnu.org/
  files="
+     gcc-15/index.html gcc-15/changes.html
      gcc-14/index.html gcc-14/changes.html
      gcc-13/index.html gcc-13/changes.html
      gcc-12/index.html gcc-12/changes.html
diff -Nrcpad gcc-14.2.0/contrib/git-backport.py gcc-15.1.0/contrib/git-backport.py
*** gcc-14.2.0/contrib/git-backport.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/git-backport.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/git-commit-mklog.py gcc-15.1.0/contrib/git-commit-mklog.py
*** gcc-14.2.0/contrib/git-commit-mklog.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/git-commit-mklog.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/git-fix-changelog.py gcc-15.1.0/contrib/git-fix-changelog.py
*** gcc-14.2.0/contrib/git-fix-changelog.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/git-fix-changelog.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/header-tools/ChangeLog gcc-15.1.0/contrib/header-tools/ChangeLog
*** gcc-14.2.0/contrib/header-tools/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/contrib/header-tools/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2022-08-31  Martin Liska  <mliska@suse.cz>
  
--- 1,23 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2024-06-05  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* README: Fix spelling and capitalization typos.
! 	* gcc-order-headers: Fix spelling typo.
! 
! 2024-06-05  Sundeep KOKKONDA  <sundeep.kokkonda@windriver.com>
! 
! 	* count-headers: Adapt to Python 3.
! 	* gcc-order-headers: Likewise.
! 	* graph-header-logs: Likewise.
! 	* graph-include-web: Likewise.
! 	* headerutils.py: Likewise.
! 	* included-by: Likewise.
! 	* reduce-headers: Likewise.
! 	* replace-header: Likewise.
! 	* show-headers: Likewise.
  
  2022-08-31  Martin Liska  <mliska@suse.cz>
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/README gcc-15.1.0/contrib/header-tools/README
*** gcc-14.2.0/contrib/header-tools/README	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/README	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
  Quick start documentation for the header file utilities.  
  
! This isn't a full breakdown of the tools, just they typical use scenarios.
  
! - Each tool accepts -h to show it's usage.  Usually no parameters will also
  trigger the help message.  Help may specify additional functionality to what is
  listed here.
  
--- 1,8 ----
  Quick start documentation for the header file utilities.  
  
! This isn't a full breakdown of the tools, just the typical use scenarios.
  
! - Each tool accepts -h to show its usage.  Usually no parameters will also
  trigger the help message.  Help may specify additional functionality to what is
  listed here.
  
*************** gcc-order-headers
*** 37,43 ****
    command line.
  
    Any files which are changed are output, and the original is saved with a
!   .bak extention.
  
    ex.:     gcc-order-headers tree-ssa.cc c/c-decl.cc
  
--- 37,43 ----
    command line.
  
    Any files which are changed are output, and the original is saved with a
!   .bak extension.
  
    ex.:     gcc-order-headers tree-ssa.cc c/c-decl.cc
  
*************** gcc-order-headers
*** 45,51 ****
    show which of those headers include other headers, just the final canonical
    ordering.
  
!   if any header files are included within a conditional code block, the tool
    will issue a message and not change the file.  When this happens, you can
    manually inspect the file to determine if reordering it is actually OK.  Then
    rerun the command with the -i option.  This will ignore the conditional error
--- 45,51 ----
    show which of those headers include other headers, just the final canonical
    ordering.
  
!   If any header files are included within a conditional code block, the tool
    will issue a message and not change the file.  When this happens, you can
    manually inspect the file to determine if reordering it is actually OK.  Then
    rerun the command with the -i option.  This will ignore the conditional error
*************** reduce-headers
*** 162,172 ****
    a native build and sometimes target builds, depending on what you are trying
    to reduce.
  
!   it is good practice to run 'gcc-order-headers' on a source file before trying
    to reduce it.  This removes duplicates and performs some simplifications 
    which reduce the chances of the reduction tool missing things.
    
!   start with a completely bootstrapped native compiler.
  
    Any desired target builds should be built in one directory using a modified
    config-list.mk file which does not delete the build directory when it is done.
--- 162,172 ----
    a native build and sometimes target builds, depending on what you are trying
    to reduce.
  
!   It is good practice to run 'gcc-order-headers' on a source file before trying
    to reduce it.  This removes duplicates and performs some simplifications 
    which reduce the chances of the reduction tool missing things.
    
!   Start with a completely bootstrapped native compiler.
  
    Any desired target builds should be built in one directory using a modified
    config-list.mk file which does not delete the build directory when it is done.
*************** reduce-headers
*** 198,204 ****
  
    A small subset of targets has been determined to provide excellent coverage,
    at least as of Aug 31/15 .  They were found by reducing all the files
!   contained in libbackend.a oer a full set of targets(207).  All conditions
    which disallowed removal of a header file were triggered by one or more of
    these targets.  They are also known to the tool.  When building targets it
    will check those targets before the rest.  
--- 198,204 ----
  
    A small subset of targets has been determined to provide excellent coverage,
    at least as of Aug 31/15 .  They were found by reducing all the files
!   contained in libbackend.a over a full set of targets(207).  All conditions
    which disallowed removal of a header file were triggered by one or more of
    these targets.  They are also known to the tool.  When building targets it
    will check those targets before the rest.  
*************** reduce-headers
*** 223,229 ****
         #  This will attempt to remove all header files from tree-ssa-live.cc
    
  
!   the tool will generate a number of log files:
  
      reduce-headers.log : All compilation failures from attempted reductions.
      reduce-headers.sum : One line summary of what happened to each source file.
--- 223,229 ----
         #  This will attempt to remove all header files from tree-ssa-live.cc
    
  
!   The tool will generate a number of log files:
  
      reduce-headers.log : All compilation failures from attempted reductions.
      reduce-headers.sum : One line summary of what happened to each source file.
*************** reduce-headers
*** 234,246 ****
  
      reduce-headers-kept.log: List of all the successful compiles that were
                               ignored because of conditional macro dependencies
! 			     and why it thinks that is the case
!     $src.c.log  : for each failed header removal, the compilation
  		  messages as to why it failed.
      $header.h.log: The same log is put into the relevant header log as well.
  
  
! a sample output from ira.cc.log:
  
  Compilation failed:
   for shrink-wrap.h:
--- 234,246 ----
  
      reduce-headers-kept.log: List of all the successful compiles that were
                               ignored because of conditional macro dependencies
! 			     and why it thinks that is the case.
!     $src.c.log  : For each failed header removal, the compilation
  		  messages as to why it failed.
      $header.h.log: The same log is put into the relevant header log as well.
  
  
! A sample output from ira.cc.log:
  
  Compilation failed:
   for shrink-wrap.h:
*************** Compilation failed:
*** 253,259 ****
  	    make: *** [ira.o] Error 1
  
  
! the same message would be put into shrink-wrap.h.log.
  
  
  
--- 253,259 ----
  	    make: *** [ira.o] Error 1
  
  
! The same message would be put into shrink-wrap.h.log.
  
  
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/count-headers gcc-15.1.0/contrib/header-tools/count-headers
*** gcc-14.2.0/contrib/header-tools/count-headers	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/count-headers	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** if not usage and len (src) > 0:
*** 45,55 ****
    l.sort (key=lambda tup:tup[0], reverse=True)
  
    for f in l:
!     print str (f[0]) + " : " + f[1]
  
  else:
!   print "count-headers file1 [filen]"
!   print "Count the number of occurrences of all includes across all listed files"
  
   
  
--- 45,55 ----
    l.sort (key=lambda tup:tup[0], reverse=True)
  
    for f in l:
!     print (str (f[0]) + " : " + f[1])
  
  else:
!   print ("count-headers file1 [filen]")
!   print ("Count the number of occurrences of all includes across all listed files")
  
   
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/gcc-order-headers gcc-15.1.0/contrib/header-tools/gcc-order-headers
*** gcc-14.2.0/contrib/header-tools/gcc-order-headers	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/gcc-order-headers	Fri Apr 25 08:17:59 2025
***************
*** 1,11 ****
! #! /usr/bin/python2
  import os
  import sys
  import shlex
  import re
  
  from headerutils import *
! import Queue
  
  file_list = list ()
  usage = False
--- 1,11 ----
! #! /usr/bin/python3
  import os
  import sys
  import shlex
  import re
  
  from headerutils import *
! import queue
  
  file_list = list ()
  usage = False
*************** def create_master_list (fn, verbose):
*** 77,95 ****
      if fn != "diagnostic.h" and fn != "diagnostic-core.h":
        master_list.append (fn)
        if (verbose):
!         print fn + "      included by: " + includes[fn][0]
  
  
  
  def print_dups ():
    if dups:
!     print "\nduplicated includes"
    for i in dups:
      string =  "dup : " + i + " : "
      string += includes[i][0] 
      for i2 in dups[i]:
        string += ", "+i2
!     print string
  
  
  def process_known_dups ():
--- 77,95 ----
      if fn != "diagnostic.h" and fn != "diagnostic-core.h":
        master_list.append (fn)
        if (verbose):
!         print (fn + "      included by: " + includes[fn][0])
  
  
  
  def print_dups ():
    if dups:
!     print ("\nduplicated includes")
    for i in dups:
      string =  "dup : " + i + " : "
      string += includes[i][0] 
      for i2 in dups[i]:
        string += ", "+i2
!     print (string)
  
  
  def process_known_dups ():
*************** for arg in sys.argv[1:]:
*** 230,240 ****
      elif arg[0:2] == "-v":
        show_master = True
      else:
!       print "Error: unrecognized option " + arg
    elif os.path.exists(arg):
      file_list.append (arg)
    else:
!     print "Error: file " + arg + " Does not exist."
      usage = True
  
  if not file_list and not show_master:
--- 230,240 ----
      elif arg[0:2] == "-v":
        show_master = True
      else:
!       print ("Error: unrecognized option " + arg)
    elif os.path.exists(arg):
      file_list.append (arg)
    else:
!     print ("Error: file " + arg + " Does not exist.")
      usage = True
  
  if not file_list and not show_master:
*************** if not file_list and not show_master:
*** 242,248 ****
  
  if not usage and not os.path.exists ("coretypes.h"):
    usage = True
!   print "Error: Must run command in main gcc source directory containing coretypes.h\n"
  
  # process diagnostic.h first.. it's special since GCC_DIAG_STYLE can be
  # overridden by languages, but must be done so by a file included BEFORE it.
--- 242,248 ----
  
  if not usage and not os.path.exists ("coretypes.h"):
    usage = True
!   print ("Error: Must run command in main gcc source directory containing coretypes.h\n")
  
  # process diagnostic.h first.. it's special since GCC_DIAG_STYLE can be
  # overridden by languages, but must be done so by a file included BEFORE it.
*************** process_known_dups ()
*** 268,287 ****
  desired_order = master_list
  
  if show_master:
!   print " Canonical order of gcc include files: "
    for x in master_list:
!     print x
!   print " "
  
  if usage:
!   print "gcc-order-headers [-i] [-v] file1 [filen]"
!   print "    Ensures gcc's headers files are included in a normalized form with"
!   print "    redundant headers removed.  The original files are saved in filename.bak"
!   print "    Outputs a list of files which changed."
!   print " -i ignore conditional compilation."
!   print "    Use after examining the file to be sure includes within #ifs are safe"
!   print "    Any headers within conditional sections will be ignored."
!   print " -v Show the canonical order of known headers"
    sys.exit(0)
  
  
--- 268,287 ----
  desired_order = master_list
  
  if show_master:
!   print (" Canonical order of gcc include files: ")
    for x in master_list:
!     print (x)
!   print (" ")
  
  if usage:
!   print ("gcc-order-headers [-i] [-v] file1 [filen]")
!   print ("    Ensures gcc's headers files are included in a normalized form with")
!   print ("    redundant headers removed.  The original files are saved in filename.bak")
!   print ("    Outputs a list of files which changed.")
!   print (" -i ignore conditional compilation.")
!   print ("    Use after examining the file to be sure includes within #ifs are safe")
!   print ("    Any headers within conditional sections will be ignored.")
!   print (" -v Show the canonical order of known headers")
    sys.exit(0)
  
  
*************** for fn in file_list:
*** 303,309 ****
  
    if ii_include_list_cond (iinfo):
      if not ignore_conditional:
!       print fn + ": Cannot process due to conditional compilation of includes"
        didnt_do.append (fn)
        src = list ()
  
--- 303,309 ----
  
    if ii_include_list_cond (iinfo):
      if not ignore_conditional:
!       print (fn + ": Cannot process due to conditional compilation of includes")
        didnt_do.append (fn)
        src = list ()
  
*************** for fn in file_list:
*** 329,336 ****
        src_line[nm] = ii_src_line(iinfo)[d]
        if src_line[nm].find("/*") != -1 and src_line[nm].find("*/") == -1:
          # this means we have a multi line comment, abort!'
!         print fn + ": Cannot process due to a multi-line comment :"
!         print "        " + src_line[nm]
          if fn not in didnt_do:
            didnt_do.append (fn)
          src = list ()
--- 329,336 ----
        src_line[nm] = ii_src_line(iinfo)[d]
        if src_line[nm].find("/*") != -1 and src_line[nm].find("*/") == -1:
          # this means we have a multi line comment, abort!'
!         print (fn + ": Cannot process due to a multi-line comment :")
!         print ("        " + src_line[nm])
          if fn not in didnt_do:
            didnt_do.append (fn)
          src = list ()
*************** for fn in file_list:
*** 375,396 ****
      for line in new_src:
        fl.write (line)
      fl.close ()
!     print fn 
  
   
  if didnt_do:
!   print "\n\n Did not process the following files due to conditional dependencies:"
    str = ""
    for x in didnt_do:
      str += x + " "
!   print str
!   print "\n"
!   print "Please examine to see if they are safe to process, and re-try with -i. "
!   print "Safeness is determined by checking whether any of the reordered headers are"
!   print "within a conditional and could be hauled out of the conditional, thus changing"
!   print "what the compiler will see."
!   print "Multi-line comments after a #include can also cause failuer, they must be turned"
!   print "into single line comments or removed."
  
  
  
--- 375,396 ----
      for line in new_src:
        fl.write (line)
      fl.close ()
!     print (fn)
  
   
  if didnt_do:
!   print ("\n\n Did not process the following files due to conditional dependencies:")
    str = ""
    for x in didnt_do:
      str += x + " "
!   print (str)
!   print ("\n")
!   print ("Please examine to see if they are safe to process, and re-try with -i. ")
!   print ("Safeness is determined by checking whether any of the reordered headers are")
!   print ("within a conditional and could be hauled out of the conditional, thus changing")
!   print ("what the compiler will see.")
!   print ("Multi-line comments after a #include can also cause failure, they must be turned")
!   print ("into single line comments or removed.")
  
  
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/graph-header-logs gcc-15.1.0/contrib/header-tools/graph-header-logs
*** gcc-14.2.0/contrib/header-tools/graph-header-logs	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/graph-header-logs	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** ignore = [ "coretypes_h",
*** 53,59 ****
  
  def process_log_file (header, logfile):
    if header_roots.get (header) != None:
!     print "Error: already processed log file: " + header + ".log"
      return
    hname = pretty_name (header)
    header_roots[hname] = { }
--- 53,59 ----
  
  def process_log_file (header, logfile):
    if header_roots.get (header) != None:
!     print ("Error: already processed log file: " + header + ".log")
      return
    hname = pretty_name (header)
    header_roots[hname] = { }
*************** def process_log_file (header, logfile):
*** 66,72 ****
        if newinc:
          incfrom = list()
          newinc = False
!       fn = re.findall(ur".*/(.*?):", line)
        if len(fn) != 1:
          continue
        if fn[0][-2:] != ".h":
--- 66,72 ----
        if newinc:
          incfrom = list()
          newinc = False
!       fn = re.findall(r".*/(.*?):", line)
        if len(fn) != 1:
          continue
        if fn[0][-2:] != ".h":
*************** def process_log_file (header, logfile):
*** 76,91 ****
          incfrom.append (n)
        continue
      newinc = True
!     note = re.findall (ur"^.*note: (.*)", line)
      if len(note) > 0:
        sline.append (("note", note[0]))
      else:
!       err_msg = re.findall (ur"^.*: error: (.*)", line)
        if len(err_msg) == 1:
          msg = err_msg[0]
          if (len (re.findall("error: forward declaration", line))) != 0:
            continue
!         path = re.findall (ur"^(.*?):.*error: ", line)
          if len(path) != 1:
            continue
          if path[0][-2:] != ".h":
--- 76,91 ----
          incfrom.append (n)
        continue
      newinc = True
!     note = re.findall (r"^.*note: (.*)", line)
      if len(note) > 0:
        sline.append (("note", note[0]))
      else:
!       err_msg = re.findall (r"^.*: error: (.*)", line)
        if len(err_msg) == 1:
          msg = err_msg[0]
          if (len (re.findall("error: forward declaration", line))) != 0:
            continue
!         path = re.findall (r"^(.*?):.*error: ", line)
          if len(path) != 1:
            continue
          if path[0][-2:] != ".h":
*************** def process_log_file (header, logfile):
*** 95,101 ****
            continue
          sline.append (("error", msg, fname, incfrom))
  
!   print str(len(sline)) + " lines to process"
    lastline = "note"
    for line in sline:
      if line[0] != "note" and lastline[0] == "error":
--- 95,101 ----
            continue
          sline.append (("error", msg, fname, incfrom))
  
!   print (str(len(sline)) + " lines to process")
    lastline = "note"
    for line in sline:
      if line[0] != "note" and lastline[0] == "error":
*************** def process_log_file (header, logfile):
*** 111,117 ****
            if ee not in extra_edges:
              extra_edges.append (ee)
            fname = t
!           print string
  
        if hname not in nodes:
          nodes.append(hname)
--- 111,117 ----
            if ee not in extra_edges:
              extra_edges.append (ee)
            fname = t
!           print (string)
  
        if hname not in nodes:
          nodes.append(hname)
*************** def process_log_file (header, logfile):
*** 125,131 ****
        if header_roots[hname].get(fname) == None:
          header_roots[hname][fname] = list()
        if msg not in header_roots[hname][fname]:
!         print string + ofname + " : " +msg
          header_roots[hname][fname].append (msg)
      lastline = line;
  
--- 125,131 ----
        if header_roots[hname].get(fname) == None:
          header_roots[hname][fname] = list()
        if msg not in header_roots[hname][fname]:
!         print (string + ofname + " : " +msg)
          header_roots[hname][fname].append (msg)
      lastline = line;
  
*************** def build_dot_file (file_list):
*** 181,190 ****
    if verbose:
      depcount.sort(key=lambda tup:tup[2])
      for x in depcount:
!       print " ("+str(x[2])+ ") : " + x[0] + " -> " + x[1]
        if (x[2] <= verbosity):
          for l in header_roots[x[0]][x[1]]:
!           print "            " + l
  
    output.write ("}\n");
  
--- 181,190 ----
    if verbose:
      depcount.sort(key=lambda tup:tup[2])
      for x in depcount:
!       print (" ("+str(x[2])+ ") : " + x[0] + " -> " + x[1])
        if (x[2] <= verbosity):
          for l in header_roots[x[0]][x[1]]:
!           print ("            " + l)
  
    output.write ("}\n");
  
*************** for arg in sys.argv[1:]:
*** 205,211 ****
        if (verbosity == 9):
          verbosity = 9999
    elif arg[0:1] == "-":
!     print "Unrecognized option " + arg
      dohelp = True
    else:
      files.append (arg)
--- 205,211 ----
        if (verbosity == 9):
          verbosity = 9999
    elif arg[0:1] == "-":
!     print ("Unrecognized option " + arg)
      dohelp = True
    else:
      files.append (arg)
*************** if len(sys.argv) == 1:
*** 214,229 ****
    dohelp = True
  
  if dohelp:
!   print "Parses the log files from the reduce-headers tool to generate"
!   print "dependency graphs for the include web for specified files."
!   print "Usage:  [-nnum] [-h] [-v[n]] [-ooutput] file1 [[file2] ... [filen]]"
!   print "       -ooutput : Specifies output to output.dot and output.png"
!   print "                  Defaults to 'graph.dot and graph.png"
!   print "       -vn : verbose mode, shows the number of connections, and if n"
!   print "             is specified, show the messages if # < n. 9 is infinity"
!   print "       -h : help"
  else:
!   print files
    build_dot_file (files)
    os.system ("dot -Tpng " + dotname + " -o" + graphname)
  
--- 214,229 ----
    dohelp = True
  
  if dohelp:
!   print ("Parses the log files from the reduce-headers tool to generate")
!   print ("dependency graphs for the include web for specified files.")
!   print ("Usage:  [-nnum] [-h] [-v[n]] [-ooutput] file1 [[file2] ... [filen]]")
!   print ("       -ooutput : Specifies output to output.dot and output.png")
!   print ("                  Defaults to 'graph.dot and graph.png")
!   print ("       -vn : verbose mode, shows the number of connections, and if n")
!   print ("             is specified, show the messages if # < n. 9 is infinity")
!   print ("       -h : help")
  else:
!   print (files)
    build_dot_file (files)
    os.system ("dot -Tpng " + dotname + " -o" + graphname)
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/graph-include-web gcc-15.1.0/contrib/header-tools/graph-include-web
*** gcc-14.2.0/contrib/header-tools/graph-include-web	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/graph-include-web	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** for arg in sys.argv[1:]:
*** 82,88 ****
        noterm = True
    elif arg[0:2] == "-f":
      if not os.path.exists (arg[2:]):
!       print "Option " + arg +" doesn't specify a proper file"
        dohelp = True
      else:
        sfile = open (arg[2:], "r")
--- 82,88 ----
        noterm = True
    elif arg[0:2] == "-f":
      if not os.path.exists (arg[2:]):
!       print ("Option " + arg +" doesn't specify a proper file")
        dohelp = True
      else:
        sfile = open (arg[2:], "r")
*************** for arg in sys.argv[1:]:
*** 93,99 ****
    elif arg[0:2] == "-n":
      edge_thresh = int (arg[2:])
    elif arg[0:1] == "-":
!     print "Unrecognized option " + arg
      dohelp = True
    else:
      files.append (arg)
--- 93,99 ----
    elif arg[0:2] == "-n":
      edge_thresh = int (arg[2:])
    elif arg[0:1] == "-":
!     print ("Unrecognized option " + arg)
      dohelp = True
    else:
      files.append (arg)
*************** if len(sys.argv) == 1:
*** 102,118 ****
    dohelp = True
  
  if dohelp:
!   print "Generates a graph of the include web for specified files."
!   print "Usage:  [-finput_file] [-h] [-ooutput] [file1 ... [filen]]"
!   print "  -finput_file : Input file containing a list of files to process."
!   print "  -ooutput : Specifies output to output.dot and output.png."
!   print "             defaults to graph.dot and graph.png."
!   print "  -nnum : Specifies the # of edges beyond which sfdp is invoked. def=0."
!   print "  -a : Aggregate all .c files to 1 file.  Shows only include web."
!   print "  -at : Aggregate, but don't include terminal.h to .c links."
!   print "  -h : Print this help."
  else:
!   print files
    build_dot_file (files)
    if edges > edge_thresh:
      os.system ("sfdp -Tpng " + dotname + " -o" + graphname)
--- 102,118 ----
    dohelp = True
  
  if dohelp:
!   print ("Generates a graph of the include web for specified files.")
!   print ("Usage:  [-finput_file] [-h] [-ooutput] [file1 ... [filen]]")
!   print ("  -finput_file : Input file containing a list of files to process.")
!   print ("  -ooutput : Specifies output to output.dot and output.png.")
!   print ("             defaults to graph.dot and graph.png.")
!   print ("  -nnum : Specifies the # of edges beyond which sfdp is invoked. def=0.")
!   print ("  -a : Aggregate all .c files to 1 file.  Shows only include web.")
!   print ("  -at : Aggregate, but don't include terminal.h to .c links.")
!   print ("  -h : Print this help.")
  else:
!   print (files)
    build_dot_file (files)
    if edges > edge_thresh:
      os.system ("sfdp -Tpng " + dotname + " -o" + graphname)
diff -Nrcpad gcc-14.2.0/contrib/header-tools/headerutils.py gcc-15.1.0/contrib/header-tools/headerutils.py
*** gcc-14.2.0/contrib/header-tools/headerutils.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/headerutils.py	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** import pickle
*** 10,16 ****
  import multiprocessing 
  
  def find_pound_include (line, use_outside, use_slash):
!   inc = re.findall (ur"^\s*#\s*include\s*\"(.+?)\"", line)
    if len(inc) == 1:
      nm = inc[0]
      if use_outside or os.path.exists (nm):
--- 10,16 ----
  import multiprocessing 
  
  def find_pound_include (line, use_outside, use_slash):
!   inc = re.findall (r"^\s*#\s*include\s*\"(.+?)\"", line)
    if len(inc) == 1:
      nm = inc[0]
      if use_outside or os.path.exists (nm):
*************** def find_pound_include (line, use_outsid
*** 19,35 ****
    return ""
  
  def find_system_include (line):
!   inc = re.findall (ur"^\s*#\s*include\s*<(.+?)>", line)
    if len(inc) == 1:
      return inc[0]
    return ""
    
  def find_pound_define (line):
!   inc = re.findall (ur"^\s*#\s*define ([A-Za-z0-9_]+)", line)
    if len(inc) != 0:
      if len(inc) > 1:
!       print "What? more than 1 match in #define??"
!       print inc
        sys.exit(5)
      return inc[0];
    return ""
--- 19,35 ----
    return ""
  
  def find_system_include (line):
!   inc = re.findall (r"^\s*#\s*include\s*<(.+?)>", line)
    if len(inc) == 1:
      return inc[0]
    return ""
    
  def find_pound_define (line):
!   inc = re.findall (r"^\s*#\s*define ([A-Za-z0-9_]+)", line)
    if len(inc) != 0:
      if len(inc) > 1:
!       print ("What? more than 1 match in #define??")
!       print (inc)
        sys.exit(5)
      return inc[0];
    return ""
*************** def is_pound_endif (line):
*** 49,74 ****
    return False
  
  def find_pound_if (line):
!   inc = re.findall (ur"^\s*#\s*if\s+(.*)", line)
    if len(inc) == 0:
!     inc = re.findall (ur"^\s*#\s*elif\s+(.*)", line)
    if len(inc) > 0:
!     inc2 = re.findall (ur"defined\s*\((.+?)\)", inc[0])
!     inc3 = re.findall (ur"defined\s+([a-zA-Z0-9_]+)", inc[0])
      for yy in inc3:
        inc2.append (yy)
      return inc2
    else:
!     inc = re.findall (ur"^\s*#\s*ifdef\s(.*)", line)
      if len(inc) == 0:
!       inc = re.findall (ur"^\s*#\s*ifndef\s(.*)", line)
      if len(inc) > 0:
        inc2 = re.findall ("[A-Za-z_][A-Za-z_0-9]*", inc[0])
        return inc2
    if len(inc) == 0:
      return list ()
!   print "WTF. more than one line returned for find_pound_if"
!   print inc
    sys.exit(5)
  
  
--- 49,74 ----
    return False
  
  def find_pound_if (line):
!   inc = re.findall (r"^\s*#\s*if\s+(.*)", line)
    if len(inc) == 0:
!     inc = re.findall (r"^\s*#\s*elif\s+(.*)", line)
    if len(inc) > 0:
!     inc2 = re.findall (r"defined\s*\((.+?)\)", inc[0])
!     inc3 = re.findall (r"defined\s+([a-zA-Z0-9_]+)", inc[0])
      for yy in inc3:
        inc2.append (yy)
      return inc2
    else:
!     inc = re.findall (r"^\s*#\s*ifdef\s(.*)", line)
      if len(inc) == 0:
!       inc = re.findall (r"^\s*#\s*ifndef\s(.*)", line)
      if len(inc) > 0:
        inc2 = re.findall ("[A-Za-z_][A-Za-z_0-9]*", inc[0])
        return inc2
    if len(inc) == 0:
      return list ()
!   print ("WTF. more than one line returned for find_pound_if")
!   print (inc)
    sys.exit(5)
  
  
*************** def find_gcc_bld_dir (path):
*** 248,255 ****
      for y in files:
        p = os.path.dirname (y)
        if os.path.basename (p) == "gcc":
! 	blddir = p
! 	break
  
    return blddir
  
--- 248,255 ----
      for y in files:
        p = os.path.dirname (y)
        if os.path.basename (p) == "gcc":
!         blddir = p
!         break
  
    return blddir
  
*************** def find_replace_include (find, replace,
*** 424,430 ****
  # pass in a require and provide dictionary to be read in.
  def read_require_provides (require, provide):
    if not os.path.exists ("require-provide.master"):
!     print "require-provide.master file is not available. please run data collection."
      sys.exit(1)
    incl_list = open("require-provide.master").read().splitlines()
    for f in incl_list:
--- 424,430 ----
  # pass in a require and provide dictionary to be read in.
  def read_require_provides (require, provide):
    if not os.path.exists ("require-provide.master"):
!     print ("require-provide.master file is not available. please run data collection.")
      sys.exit(1)
    incl_list = open("require-provide.master").read().splitlines()
    for f in incl_list:
*************** def spawn_makes (command_list):
*** 501,507 ****
      c = subprocess.Popen(command, bufsize=-1, stdout=devnull, stderr=subprocess.PIPE, shell=True)
      proc_res.append ((c, tname))
  
!   print text[:-2]
  
    for p in proc_res:
      output = p[0].communicate()
--- 501,507 ----
      c = subprocess.Popen(command, bufsize=-1, stdout=devnull, stderr=subprocess.PIPE, shell=True)
      proc_res.append ((c, tname))
  
!   print (text[:-2])
  
    for p in proc_res:
      output = p[0].communicate()
diff -Nrcpad gcc-14.2.0/contrib/header-tools/included-by gcc-15.1.0/contrib/header-tools/included-by
*** gcc-14.2.0/contrib/header-tools/included-by	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/included-by	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** for x in sys.argv[1:]:
*** 43,49 ****
      file_list = open (x[2:]).read().splitlines()
      scanfiles = False
    elif x[0] == "-":
!     print "Error: Unknown option " + x
      usage = True
    else:
      src.append (x)
--- 43,49 ----
      file_list = open (x[2:]).read().splitlines()
      scanfiles = False
    elif x[0] == "-":
!     print ("Error: Unknown option " + x)
      usage = True
    else:
      src.append (x)
*************** if not usage:
*** 89,109 ****
      if len (careabout) < num_match:
          output = ""
      if output != "":
!       print output
  else:
!   print "included-by [-h] [-i] [-c] [-v] [-a] [-nx] file1 [file2] ... [filen]"
!   print "find the list of all files in subdirectories that include any of "
!   print "the listed files. processed to a depth of 3 subdirs"
!   print " -h  : Show this message"
!   print " -i  : process only header files (*.h) for #include"
!   print " -c  : process only source files (*.c *.cc) for #include"
!   print "       If nothing is specified, defaults to -i -c"
!   print " -s  : Same as -c."
!   print " -v  : Show which include(s) were found"
!   print " -nx : Only list files which have at least x different matches. Default = 1"
!   print " -a  : Show only files which all listed files are included"
!   print "       This is equivilent to -nT where T == # of items in list"
!   print " -flistfile  : Show only files contained in the list of files"
  
   
  
--- 89,109 ----
      if len (careabout) < num_match:
          output = ""
      if output != "":
!       print (output)
  else:
!   print ("included-by [-h] [-i] [-c] [-v] [-a] [-nx] file1 [file2] ... [filen]")
!   print ("find the list of all files in subdirectories that include any of ")
!   print ("the listed files. processed to a depth of 3 subdirs")
!   print (" -h  : Show this message")
!   print (" -i  : process only header files (*.h) for #include")
!   print (" -c  : process only source files (*.c *.cc) for #include")
!   print ("       If nothing is specified, defaults to -i -c")
!   print (" -s  : Same as -c.")
!   print (" -v  : Show which include(s) were found")
!   print (" -nx : Only list files which have at least x different matches. Default = 1")
!   print (" -a  : Show only files which all listed files are included")
!   print ("       This is equivilent to -nT where T == # of items in list")
!   print (" -flistfile  : Show only files contained in the list of files")
  
   
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/reduce-headers gcc-15.1.0/contrib/header-tools/reduce-headers
*** gcc-14.2.0/contrib/header-tools/reduce-headers	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/reduce-headers	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** def build_target_dict (bld_dir, just_the
*** 177,183 ****
          target = t.strip()
          tpath = bld_dir + "/" + target
          if not os.path.exists (tpath + "/gcc"):
!           print "Error: gcc build directory for target " + t + " Does not exist: " + tpath + "/gcc"
            error = True
          else:
            target_dict[target] = tpath
--- 177,183 ----
          target = t.strip()
          tpath = bld_dir + "/" + target
          if not os.path.exists (tpath + "/gcc"):
!           print ("Error: gcc build directory for target " + t + " Does not exist: " + tpath + "/gcc")
            error = True
          else:
            target_dict[target] = tpath
*************** def find_targets (src_file):
*** 209,215 ****
    targ_list = list()
    obj_name = get_obj_name (src_file)
    if not obj_name:
!     print "Error: " + src_file + " - Cannot determine object name."
      return list()
  
    # Put the high priority targets which tend to trigger failures first
--- 209,215 ----
    targ_list = list()
    obj_name = get_obj_name (src_file)
    if not obj_name:
!     print ("Error: " + src_file + " - Cannot determine object name.")
      return list()
  
    # Put the high priority targets which tend to trigger failures first
*************** def try_to_remove (src_file, h_list, ver
*** 263,284 ****
          hostbuild = True
        if not target_dict:
          summary = src_file + ": Target builds are required for config files.  None found."
!         print summary
          return summary
        if not targ_list:
          summary =src_file + ": Cannot find any targets which build this file."
!         print summary
          return summary
  
      if hostbuild:
        # confirm it actually builds before we do anything
!       print "Confirming source file builds"
        res = get_make_output (build_dir + "/gcc", "all")
        if res[0] != 0:
          message = "Error: " + src_file + " does not build currently."
          summary = src_file + " does not build on host."
!         print message
!         print res[1]
          if verbose:
            verbose.write (message + "\n")
            verbose.write (res[1]+ "\n")
--- 263,284 ----
          hostbuild = True
        if not target_dict:
          summary = src_file + ": Target builds are required for config files.  None found."
!         print (summary)
          return summary
        if not targ_list:
          summary =src_file + ": Cannot find any targets which build this file."
!         print (summary)
          return summary
  
      if hostbuild:
        # confirm it actually builds before we do anything
!       print ("Confirming source file builds")
        res = get_make_output (build_dir + "/gcc", "all")
        if res[0] != 0:
          message = "Error: " + src_file + " does not build currently."
          summary = src_file + " does not build on host."
!         print (message)
!         print (res[1])
          if verbose:
            verbose.write (message + "\n")
            verbose.write (res[1]+ "\n")
*************** def try_to_remove (src_file, h_list, ver
*** 314,320 ****
          lookfor = ii_src_line(src_info)[inc_file]
          src_tmp.remove (lookfor)
          message = "Trying " + src_file + " without " + inc_file
!         print message
          if verbose:
            verbose.write (message + "\n")
          out = open(src_file, "w")
--- 314,320 ----
          lookfor = ii_src_line(src_info)[inc_file]
          src_tmp.remove (lookfor)
          message = "Trying " + src_file + " without " + inc_file
!         print (message)
          if verbose:
            verbose.write (message + "\n")
          out = open(src_file, "w")
*************** def try_to_remove (src_file, h_list, ver
*** 350,356 ****
                message = "Passed host and target builds"
  
          if keep:
!           print message + "\n"
  
          if (rc != 0):
            if verbose:
--- 350,356 ----
                message = "Passed host and target builds"
  
          if keep:
!           print (message + "\n")
  
          if (rc != 0):
            if verbose:
*************** def try_to_remove (src_file, h_list, ver
*** 392,398 ****
            if ii_path(iinfo) == "build" and not target_dict:
              keep = True
              text = message + " : Will not remove a build file without some targets."
!             print text
              ilog = open(src_file+".log","a")
              ilog.write (text +"\n")
              ilog.write ("============================================\n");
--- 392,398 ----
            if ii_path(iinfo) == "build" and not target_dict:
              keep = True
              text = message + " : Will not remove a build file without some targets."
!             print (text)
              ilog = open(src_file+".log","a")
              ilog.write (text +"\n")
              ilog.write ("============================================\n");
*************** def try_to_remove (src_file, h_list, ver
*** 414,420 ****
                      text = message + ", but must keep " + inc_file + " because it provides " + dep 
                      if because.get(dep) != None:
                        text = text + " Possibly required by " + because[dep]
!                     print text
                      ilog = open(inc_file+".log","a")
                      ilog.write (because[dep]+": Requires [dep] in "+src_file+"\n")
                      ilog.write ("============================================\n");
--- 414,420 ----
                      text = message + ", but must keep " + inc_file + " because it provides " + dep 
                      if because.get(dep) != None:
                        text = text + " Possibly required by " + because[dep]
!                     print (text)
                      ilog = open(inc_file+".log","a")
                      ilog.write (because[dep]+": Requires [dep] in "+src_file+"\n")
                      ilog.write ("============================================\n");
*************** def try_to_remove (src_file, h_list, ver
*** 444,450 ****
  
            src_tmp = copy.deepcopy (src_data)
          else:
!           print message + "  --> removing " + inc_file + "\n"
            rmcount += 1
            if verbose:
              verbose.write (message + "  --> removing " + inc_file + "\n")
--- 444,450 ----
  
            src_tmp = copy.deepcopy (src_data)
          else:
!           print (message + "  --> removing " + inc_file + "\n")
            rmcount += 1
            if verbose:
              verbose.write (message + "  --> removing " + inc_file + "\n")
*************** def try_to_remove (src_file, h_list, ver
*** 454,460 ****
              remove_count[inc_file] += 1
            src_data = copy.deepcopy (src_tmp)
      except:
!       print "Interuption: restoring original file"
        out = open(src_file, "w")
        for line in src_orig:
          out.write (line)
--- 454,460 ----
              remove_count[inc_file] += 1
            src_data = copy.deepcopy (src_tmp)
      except:
!       print ("Interuption: restoring original file")
        out = open(src_file, "w")
        for line in src_orig:
          out.write (line)
*************** def try_to_remove (src_file, h_list, ver
*** 473,480 ****
        rc = res[0]
        if (rc != 0):
          # host build failed! return to original version
!         print "Error: " + src_file + " Failed to bootstrap at end!!! restoring."
!         print "        Bad version at " + src_file + ".bad"
          os.rename (src_file, src_file + ".bad")
          out = open(src_file, "w")
          for line in src_orig:
--- 473,480 ----
        rc = res[0]
        if (rc != 0):
          # host build failed! return to original version
!         print ("Error: " + src_file + " Failed to bootstrap at end!!! restoring.")
!         print ("        Bad version at " + src_file + ".bad")
          os.rename (src_file, src_file + ".bad")
          out = open(src_file, "w")
          for line in src_orig:
*************** def try_to_remove (src_file, h_list, ver
*** 486,492 ****
        summary = src_file + ": No change."
      else:
        summary = src_file + ": Reduction performed, "+str(rmcount)+" includes removed."
!   print summary
    return summary
  
  only_h = list ()
--- 486,492 ----
        summary = src_file + ": No change."
      else:
        summary = src_file + ": Reduction performed, "+str(rmcount)+" includes removed."
!   print (summary)
    return summary
  
  only_h = list ()
*************** for x in sys.argv[1:]:
*** 513,523 ****
    elif x[0:2] == "-t":
      target_dir = x[2:]
    elif x[0] == "-":
!     print "Error:  Unrecognized option " + x
      usgae = True
    else:
      if not os.path.exists (x):
!       print "Error: specified file " + x + " does not exist."
        usage = True
      else:
        src.append (x)
--- 513,523 ----
    elif x[0:2] == "-t":
      target_dir = x[2:]
    elif x[0] == "-":
!     print ("Error:  Unrecognized option " + x)
      usgae = True
    else:
      if not os.path.exists (x):
!       print ("Error: specified file " + x + " does not exist.")
        usage = True
      else:
        src.append (x)
*************** if target_dir:
*** 526,575 ****
    build_target_dict (target_dir, only_targs)
  
  if build_dir == "" and target_dir == "":
!   print "Error: Must specify a build directory, and/or a target directory."
    usage = True
  
  if build_dir and not os.path.exists (build_dir):
!     print "Error: specified build directory does not exist : " + build_dir
      usage = True
  
  if target_dir and not os.path.exists (target_dir):
!     print "Error: specified target directory does not exist : " + target_dir
      usage = True
  
  if usage:
!   print "Attempts to remove extraneous include files from source files."
!   print " "
!   print "Should be run from the main gcc source directory, and works on a target"
!   print "directory, as we attempt to make the 'all' target."
!   print " "
!   print "By default, gcc-reorder-includes is run on each file before attempting"
!   print "to remove includes. this removes duplicates and puts some headers in a"
!   print "canonical ordering"
!   print " "
!   print "The build directory should be ready to compile via make. Time is saved"
!   print "if the build is already complete, so that only changes need to be built."
!   print " "
!   print "Usage: [options] file1.c [file2.c] ... [filen.c]"
!   print "      -bdir    : the root build directory to attempt buiding .o files."
!   print "      -tdir    : the target build directory"
!   print "      -d       : Ignore conditional macro dependencies."
!   print " "
!   print "      -Dmacro  : Ignore a specific macro for dependencies"
!   print "      -Ttarget : Only consider target in target directory."
!   print "      -fheader : Specifies a specific .h file to be considered."
!   print " "
!   print "      -D, -T, and -f can be specified mulitple times and are aggregated."
!   print " "
!   print "  The original file will be in filen.bak"
!   print " "
    sys.exit (0)
   
  if only_h:
!   print "Attempting to remove only these files:"
    for x in only_h:
!     print x
!   print " "
  
  logfile = open("reduce-headers.log","w")
  
--- 526,575 ----
    build_target_dict (target_dir, only_targs)
  
  if build_dir == "" and target_dir == "":
!   print ("Error: Must specify a build directory, and/or a target directory.")
    usage = True
  
  if build_dir and not os.path.exists (build_dir):
!     print ("Error: specified build directory does not exist : " + build_dir)
      usage = True
  
  if target_dir and not os.path.exists (target_dir):
!     print ("Error: specified target directory does not exist : " + target_dir)
      usage = True
  
  if usage:
!   print ("Attempts to remove extraneous include files from source files.")
!   print (" ")
!   print ("Should be run from the main gcc source directory, and works on a target")
!   print ("directory, as we attempt to make the 'all' target.")
!   print (" ")
!   print ("By default, gcc-reorder-includes is run on each file before attempting")
!   print ("to remove includes. this removes duplicates and puts some headers in a")
!   print ("canonical ordering")
!   print (" ")
!   print ("The build directory should be ready to compile via make. Time is saved")
!   print ("if the build is already complete, so that only changes need to be built.")
!   print (" ")
!   print ("Usage: [options] file1.c [file2.c] ... [filen.c]")
!   print ("      -bdir    : the root build directory to attempt buiding .o files.")
!   print ("      -tdir    : the target build directory")
!   print ("      -d       : Ignore conditional macro dependencies.")
!   print (" ")
!   print ("      -Dmacro  : Ignore a specific macro for dependencies")
!   print ("      -Ttarget : Only consider target in target directory.")
!   print ("      -fheader : Specifies a specific .h file to be considered.")
!   print (" ")
!   print ("      -D, -T, and -f can be specified mulitple times and are aggregated.")
!   print (" ")
!   print ("  The original file will be in filen.bak")
!   print (" ")
    sys.exit (0)
   
  if only_h:
!   print ("Attempting to remove only these files:")
    for x in only_h:
!     print (x)
!   print (" ")
  
  logfile = open("reduce-headers.log","w")
  
*************** ilog = open("reduce-headers.sum","a")
*** 583,589 ****
  ilog.write ("===============================================================\n")
  for x in remove_count:
    msg = x + ": Removed " + str(remove_count[x]) + " times."
!   print msg
    logfile.write (msg + "\n")
    ilog.write (msg + "\n")
  
--- 583,589 ----
  ilog.write ("===============================================================\n")
  for x in remove_count:
    msg = x + ": Removed " + str(remove_count[x]) + " times."
!   print (msg)
    logfile.write (msg + "\n")
    ilog.write (msg + "\n")
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/replace-header gcc-15.1.0/contrib/header-tools/replace-header
*** gcc-14.2.0/contrib/header-tools/replace-header	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/replace-header	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** for x in sys.argv[1:]:
*** 20,26 ****
    elif x[0:2] == "-r":
      replace.append (x[2:])
    elif x[0:1] == "-":
!     print "Error: unrecognized option " + x
      usage = True
    else:
      files.append (x)
--- 20,26 ----
    elif x[0:2] == "-r":
      replace.append (x[2:])
    elif x[0:1] == "-":
!     print ("Error: unrecognized option " + x)
      usage = True
    else:
      files.append (x)
*************** if find == "":
*** 29,53 ****
    usage = True
  
  if usage:
!   print "replace-header -fheader -rheader [-rheader] file1 [filen.]"
    sys.exit(0)
  
  string = ""
  for x in replace:
    string = string + " '"+x+"'"
! print "Replacing '"+find+"'  with"+string
  
  for x in files:
    src = readwholefile (x)
    src = find_replace_include (find, replace, src)
    if (len(src) > 0):
!     print x + ": Changed"
      out = open(x, "w")
      for line in src:
        out.write (line);
      out.close ()
    else:
!     print x
  
  
  
--- 29,53 ----
    usage = True
  
  if usage:
!   print ("replace-header -fheader -rheader [-rheader] file1 [filen.]")
    sys.exit(0)
  
  string = ""
  for x in replace:
    string = string + " '"+x+"'"
! print ("Replacing '"+find+"'  with"+string)
  
  for x in files:
    src = readwholefile (x)
    src = find_replace_include (find, replace, src)
    if (len(src) > 0):
!     print (x + ": Changed")
      out = open(x, "w")
      for line in src:
        out.write (line);
      out.close ()
    else:
!     print (x)
  
  
  
diff -Nrcpad gcc-14.2.0/contrib/header-tools/show-headers gcc-15.1.0/contrib/header-tools/show-headers
*** gcc-14.2.0/contrib/header-tools/show-headers	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/header-tools/show-headers	Fri Apr 25 08:17:59 2025
***************
*** 1,4 ****
! #! /usr/bin/python2
  import os.path
  import sys
  import shlex
--- 1,4 ----
! #! /usr/bin/python3
  import os.path
  import sys
  import shlex
*************** for x in sys.argv[1:]:
*** 93,109 ****
  if len(src) != 1:
    usage = True
  elif not os.path.exists (src[0]):
!   print src[0] + ": Requested source file does not exist.\n"
    usage = True
  
  if usage:
!   print "show-headers [-idir] [-sfilen] file1 "
!   print " "
!   print " Show a hierarchical visual format how many times each header file"
!   print " is included in a source file.  Should be run from the source directory"
!   print " files from find-include-depends"
!   print "      -s : search for a header, and point it out."
!   print "      -i : Specifies additonal directories to search for includes."
    sys.exit(0)
  
  
--- 93,109 ----
  if len(src) != 1:
    usage = True
  elif not os.path.exists (src[0]):
!   print (src[0] + ": Requested source file does not exist.\n")
    usage = True
  
  if usage:
!   print ("show-headers [-idir] [-sfilen] file1 ")
!   print (" ")
!   print (" Show a hierarchical visual format how many times each header file")
!   print (" is included in a source file.  Should be run from the source directory")
!   print (" files from find-include-depends")
!   print ("      -s : search for a header, and point it out.")
!   print ("      -i : Specifies additonal directories to search for includes.")
    sys.exit(0)
  
  
*************** if extradir:
*** 114,123 ****
  blddir = find_gcc_bld_dir ("../..")
  
  if blddir:
!   print "Using build directory: " + blddir
    incl_dirs.insert (0, blddir)
  else:
!   print "Could not find a build directory, better results if you specify one with -i"
  
  # search path is now ".", blddir, extradirs_from_-i, built_in_incl_dirs
  incl_dirs.insert (0, ".")
--- 114,123 ----
  blddir = find_gcc_bld_dir ("../..")
  
  if blddir:
!   print ("Using build directory: " + blddir)
    incl_dirs.insert (0, blddir)
  else:
!   print ("Could not find a build directory, better results if you specify one with -i")
  
  # search path is now ".", blddir, extradirs_from_-i, built_in_incl_dirs
  incl_dirs.insert (0, ".")
*************** for line in data:
*** 137,151 ****
    if d and d[-2:] == ".h":
      process_include (d, 1)
  
! print "\n" + x
  for line in output:
!   print line
  
  if highlight:
!   print " "
    for h in summary:
!     print h + " is included by source file."
    for h in highlight:
      if h not in summary:
!       print h + " is not included by source file."
  
--- 137,151 ----
    if d and d[-2:] == ".h":
      process_include (d, 1)
  
! print ("\n" + x)
  for line in output:
!   print (line)
  
  if highlight:
!   print (" ")
    for h in summary:
!     print (h + " is included by source file.")
    for h in highlight:
      if h not in summary:
!       print (h + " is not included by source file.")
  
diff -Nrcpad gcc-14.2.0/contrib/jit-coverage-report.py gcc-15.1.0/contrib/jit-coverage-report.py
*** gcc-14.2.0/contrib/jit-coverage-report.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/jit-coverage-report.py	Fri Apr 25 08:17:59 2025
***************
*** 4,10 ****
  # cases, and which lack test coverage.  Tested with Python 2.7 and 3.2
  # To be run from the root directory of the source tree.
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # Written by David Malcolm <dmalcolm@redhat.com>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 4,10 ----
  # cases, and which lack test coverage.  Tested with Python 2.7 and 3.2
  # To be run from the root directory of the source tree.
  #
! # Copyright (C) 2014-2025 Free Software Foundation, Inc.
  # Written by David Malcolm <dmalcolm@redhat.com>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-14.2.0/contrib/legacy/mklog gcc-15.1.0/contrib/legacy/mklog
*** gcc-14.2.0/contrib/legacy/mklog	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/legacy/mklog	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/legacy/mklog.pl gcc-15.1.0/contrib/legacy/mklog.pl
*** gcc-14.2.0/contrib/legacy/mklog.pl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/legacy/mklog.pl	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  #!/usr/bin/perl
! # Copyright (C) 2012-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,5 ----
  #!/usr/bin/perl
! # Copyright (C) 2012-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/make_sunver.pl gcc-15.1.0/contrib/make_sunver.pl
*** gcc-14.2.0/contrib/make_sunver.pl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/make_sunver.pl	Fri Apr 25 08:17:59 2025
***************
*** 17,22 ****
--- 17,23 ----
  # GNU mangling style.
  
  use FileHandle;
+ use File::Basename;
  use IPC::Open2;
  
  # Enforce C locale.
*************** my @OBJECTS = ();
*** 37,48 ****
  # List of shared objects to omit from processing.
  my @SHAREDOBJS = ();
  
- # Filter out those input archives that have corresponding shared objects to
- # avoid adding all symbols matched in the archive to the output map.
  foreach $file (@ARGV) {
      if (($so = $file) =~ s/\.a$/.so/ && -e $so) {
  	printf STDERR "omitted $file -> $so\n";
  	push (@SHAREDOBJS, $so);
      } else {
  	push (@OBJECTS, $file);
      }
--- 38,59 ----
  # List of shared objects to omit from processing.
  my @SHAREDOBJS = ();
  
  foreach $file (@ARGV) {
+     # Filter out those input archives that have corresponding shared objects to
+     # avoid adding all symbols matched in the archive to the output map.
      if (($so = $file) =~ s/\.a$/.so/ && -e $so) {
  	printf STDERR "omitted $file -> $so\n";
  	push (@SHAREDOBJS, $so);
+     # Skip libraries.
+     } elsif ($file =~ /^-l/) {
+ 	next;
+     # Convert libtool object/archive names to underlying objects/archives.
+     } elsif ($file =~ /\.l[ao]$/) {
+ 	my ($name, $path, $suffix) = fileparse($file, ".l[ao]");
+ 	$suffix =~ s/l//;
+ 	# Strip leading ./ prepended by fileparse.
+ 	$path =~ s%^\./%%;
+ 	push (@OBJECTS, "$path.libs/$name$suffix")
      } else {
  	push (@OBJECTS, $file);
      }
diff -Nrcpad gcc-14.2.0/contrib/mark_spam.py gcc-15.1.0/contrib/mark_spam.py
*** gcc-14.2.0/contrib/mark_spam.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/mark_spam.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
diff -Nrcpad gcc-14.2.0/contrib/mklog.py gcc-15.1.0/contrib/mklog.py
*** gcc-14.2.0/contrib/mklog.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/mklog.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/patch_tester.sh gcc-15.1.0/contrib/patch_tester.sh
*** gcc-14.2.0/contrib/patch_tester.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/patch_tester.sh	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/bin/sh
  
  # Tests a set of patches from a directory.
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  #!/bin/sh
  
  # Tests a set of patches from a directory.
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-14.2.0/contrib/prepare-commit-msg gcc-15.1.0/contrib/prepare-commit-msg
*** gcc-14.2.0/contrib/prepare-commit-msg	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/prepare-commit-msg	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/bin/sh
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/bin/sh
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-14.2.0/contrib/prepare_patch.sh gcc-15.1.0/contrib/prepare_patch.sh
*** gcc-14.2.0/contrib/prepare_patch.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/prepare_patch.sh	Fri Apr 25 08:17:59 2025
***************
*** 2,8 ****
  #set -x
  
  # Prepares a patch for the patch tester.
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 2,8 ----
  #set -x
  
  # Prepares a patch for the patch tester.
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-14.2.0/contrib/regenerate-sarif-spec-index.py gcc-15.1.0/contrib/regenerate-sarif-spec-index.py
*** gcc-14.2.0/contrib/regenerate-sarif-spec-index.py	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/regenerate-sarif-spec-index.py	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,60 ----
+ #!/usr/bin/env python3
+ 
+ # Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation; either version 3, or (at your option) any later
+ # version.
+ #
+ # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ # for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # Unfortunately the SARIF 2.1.0 spec doesn't have memorable anchors
+ # for its subsections
+ # (filed as https://github.com/oasis-tcs/sarif-spec/issues/533)
+ #
+ # In the meantime, use this script to generate a table mapping subsections
+ # to anchors.
+ 
+ from pprint import pprint
+ import re
+ 
+ spec_url = 'https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html'
+ filename_in = 'sarif-v2.1.0-errata01-os-complete.html'
+ 
+ d = {}
+ with open(filename_in, encoding='windows-1252') as infile:
+     for line in infile:
+         m = re.match(r'<p class=MsoToc[0-9]+><a href="#(.*)">(.*)<span.*\n', line)
+         if m:
+             #print('MATCH')
+             #print(repr(line))
+             #print(m.groups())
+             m2 = re.match(r'([0-9.]+) .*', m.group(2))
+             if m2:
+                 #print(m2.groups())
+                 d[m2.group(1)] = m.group(1)
+ 
+ filename_out = '../gcc/sarif-spec-urls.def'
+ with open(filename_out, 'w') as outfile:
+     outfile.write('/* Generated by regenerate-sarif-spec-index.py.  */\n\n')
+ 
+     outfile.write(f'static const char * const sarif_spec_base_url\n  = "{spec_url}";\n\n')
+ 
+     outfile.write('static const struct ref_anchor\n'
+                   '{\n'
+                   '  const char *m_ref;\n'
+                   '  const char *m_anchor;\n'
+                   '} sarif_spec_anchor_arr[] = {\n');
+     for ref, anchor in d.items():
+         outfile.write(f'  {{ "{ref}", "{anchor}" }},\n')
+     outfile.write('};')
diff -Nrcpad gcc-14.2.0/contrib/reghunt/ChangeLog gcc-15.1.0/contrib/reghunt/ChangeLog
*** gcc-14.2.0/contrib/reghunt/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/contrib/reghunt/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
! 
! 	* GCC 14.2.0 released.
! 
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
  
--- 1,6 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
  
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-build-full gcc-15.1.0/contrib/reghunt/bin/gcc-build-full
*** gcc-14.2.0/contrib/reghunt/bin/gcc-build-full	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-build-full	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Perform a simple build of GCC for a particular language, using several
  # environment variables defined by reghunt scripts and config files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Perform a simple build of GCC for a particular language, using several
  # environment variables defined by reghunt scripts and config files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-build-simple gcc-15.1.0/contrib/reghunt/bin/gcc-build-simple
*** gcc-14.2.0/contrib/reghunt/bin/gcc-build-simple	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-build-simple	Fri Apr 25 08:17:59 2025
***************
*** 5,11 ****
  #
  # This doesn't work for sources earlier than about 2003-02-25.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 5,11 ----
  #
  # This doesn't work for sources earlier than about 2003-02-25.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-svn-patchlist gcc-15.1.0/contrib/reghunt/bin/gcc-svn-patchlist
*** gcc-14.2.0/contrib/reghunt/bin/gcc-svn-patchlist	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-svn-patchlist	Fri Apr 25 08:17:59 2025
***************
*** 4,10 ****
  # by default) between the specified dates.  This skips commits that do
  # not modify any existing files and changes by gccadmin.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 4,10 ----
  # by default) between the specified dates.  This skips commits that do
  # not modify any existing files and changes by gccadmin.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-svn-update gcc-15.1.0/contrib/reghunt/bin/gcc-svn-update
*** gcc-14.2.0/contrib/reghunt/bin/gcc-svn-update	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-svn-update	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Update or check out GCC sources for a particular Subversion revision
  # and a particular branch.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Update or check out GCC sources for a particular Subversion revision
  # and a particular branch.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid gcc-15.1.0/contrib/reghunt/bin/gcc-test-accepts-invalid
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-accepts-invalid	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test an "accepts-invalid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "accepts-invalid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-bogus-warning gcc-15.1.0/contrib/reghunt/bin/gcc-test-bogus-warning
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-bogus-warning	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-bogus-warning	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test a "bogus-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "bogus-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs gcc-15.1.0/contrib/reghunt/bin/gcc-test-compiler-hangs
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-compiler-hangs	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test a bug for which the compiler hangs, using environment variables
  # set in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a bug for which the compiler hangs, using environment variables
  # set in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code gcc-15.1.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test an "ice-on-invalid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "ice-on-invalid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code gcc-15.1.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test an "ice-on-valid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "ice-on-valid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-missing-warning gcc-15.1.0/contrib/reghunt/bin/gcc-test-missing-warning
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-missing-warning	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-missing-warning	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test a "missing-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "missing-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-rejects-valid gcc-15.1.0/contrib/reghunt/bin/gcc-test-rejects-valid
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-rejects-valid	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-rejects-valid	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test a "rejects-valid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "rejects-valid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code gcc-15.1.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Fri Apr 25 08:17:59 2025
***************
*** 4,10 ****
  # segfault, using environment variables set in several reghunt scripts
  # and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 4,10 ----
  # segfault, using environment variables set in several reghunt scripts
  # and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/gcc-test-wrong-code gcc-15.1.0/contrib/reghunt/bin/gcc-test-wrong-code
*** gcc-14.2.0/contrib/reghunt/bin/gcc-test-wrong-code	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/gcc-test-wrong-code	Fri Apr 25 08:17:59 2025
***************
*** 3,9 ****
  # Test a "wrong-code" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "wrong-code" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/reg-hunt gcc-15.1.0/contrib/reghunt/bin/reg-hunt
*** gcc-14.2.0/contrib/reghunt/bin/reg-hunt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/reg-hunt	Fri Apr 25 08:17:59 2025
***************
*** 47,53 ****
  #
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 47,53 ----
  #
  #
  #
! # Copyright (C) 2002-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/reg-newmid gcc-15.1.0/contrib/reghunt/bin/reg-newmid
*** gcc-14.2.0/contrib/reghunt/bin/reg-newmid	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/reg-newmid	Fri Apr 25 08:17:59 2025
***************
*** 10,16 ****
  # A nifty improvement would be to record known ranges of failure as
  # ranges, and then pick revisions just before and just after the range.
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 10,16 ----
  # A nifty improvement would be to record known ranges of failure as
  # ranges, and then pick revisions just before and just after the range.
  #
! # Copyright (C) 2006-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/bin/reg-test gcc-15.1.0/contrib/reghunt/bin/reg-test
*** gcc-14.2.0/contrib/reghunt/bin/reg-test	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/bin/reg-test	Fri Apr 25 08:17:59 2025
***************
*** 25,31 ****
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/date_based/reg_periodic gcc-15.1.0/contrib/reghunt/date_based/reg_periodic
*** gcc-14.2.0/contrib/reghunt/date_based/reg_periodic	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/date_based/reg_periodic	Fri Apr 25 08:17:59 2025
***************
*** 25,31 ****
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/reghunt/date_based/reg_search gcc-15.1.0/contrib/reghunt/date_based/reg_search
*** gcc-14.2.0/contrib/reghunt/date_based/reg_search	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/reghunt/date_based/reg_search	Fri Apr 25 08:17:59 2025
***************
*** 45,51 ****
  #
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 45,51 ----
  #
  #
  #
! # Copyright (C) 2002-2025 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/regression/ChangeLog gcc-15.1.0/contrib/regression/ChangeLog
*** gcc-14.2.0/contrib/regression/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/contrib/regression/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
! 
! 	* GCC 14.2.0 released.
! 
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
  
--- 1,6 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
  
diff -Nrcpad gcc-14.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html gcc-15.1.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html
*** gcc-14.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Fri Apr 25 08:17:59 2025
***************
*** 1,5 ****
  <!-- Get and update the GCC regression tester's web page.
!      Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  <!-- Get and update the GCC regression tester's web page.
!      Copyright (C) 2005-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/contrib/regression/btest-gcc.sh gcc-15.1.0/contrib/regression/btest-gcc.sh
*** gcc-14.2.0/contrib/regression/btest-gcc.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/regression/btest-gcc.sh	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/bin/sh
  
  #  Test GCC.
! #  Copyright (C) 1999-2024 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
--- 1,7 ----
  #!/bin/sh
  
  #  Test GCC.
! #  Copyright (C) 1999-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
diff -Nrcpad gcc-14.2.0/contrib/regression/mkindex.pl gcc-15.1.0/contrib/regression/mkindex.pl
*** gcc-14.2.0/contrib/regression/mkindex.pl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/regression/mkindex.pl	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/usr/bin/perl
  
  # Copy log files from a GCC build for HTTP access.
! # Copyright (C) 2008-2024 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
--- 1,7 ----
  #!/usr/bin/perl
  
  # Copy log files from a GCC build for HTTP access.
! # Copyright (C) 2008-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
diff -Nrcpad gcc-14.2.0/contrib/regression/objs-gcc.sh gcc-15.1.0/contrib/regression/objs-gcc.sh
*** gcc-14.2.0/contrib/regression/objs-gcc.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/regression/objs-gcc.sh	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/bin/sh
  
  #  Build tools for testing GCC.
! #  Copyright (C) 1999-2024 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
--- 1,7 ----
  #!/bin/sh
  
  #  Build tools for testing GCC.
! #  Copyright (C) 1999-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
diff -Nrcpad gcc-14.2.0/contrib/relpath.sh gcc-15.1.0/contrib/relpath.sh
*** gcc-14.2.0/contrib/relpath.sh	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/relpath.sh	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,81 ----
+ #!/bin/sh
+ 
+ if [ "$1" = "--help" -o $# -ne 2 -o -f "$1" ]; then
+     echo Usage: relpath.sh FROM TO
+     echo Print the relative path from FROM to TO
+     echo FROM must be a directory, but need not exist
+     exit 0
+ fi
+ 
+ from="${1%%/}"
+ to="${2%%/}"
+ 
+ # The parent directory of a pathname, handling ..
+ parent() {
+     name=$(basename "$1")
+     path=$(dirname "$1")
+     top=$(basename "$path")
+     if [ "$top" = ".." ]; then
+ 	path=$(parent "$path")
+     fi
+     if [ "$name" = ".." ]; then
+ 	path=$(parent "$path")
+     fi
+     echo $path
+ }
+ 
+ # Canonicalize a directory that contains '..'.
+ canonicalize() {
+     path=$1
+     suffix=
+     while ! [ -d "$path" ]; do
+ 	name=$(basename "$path")
+ 	path=$(parent "$path")
+ 	suffix="/$name$suffix"
+     done
+     if [ -d "$path" ]; then
+ 	echo $(cd "$path"; pwd)$suffix
+     else
+ 	echo $1
+     fi
+ }
+ 
+ case "$to$from" in
+     *..* )
+ 	from=$(canonicalize "$from")
+ 	to=$(canonicalize "$to")
+ 	;;
+ esac
+ case "$to$from" in
+     *..* )
+ 	echo unable to canonicalize .. >&2
+ 	exit 1
+ 	;;
+ esac
+ 
+ back=
+ while [ "${to#$from}" = "$to" ]; do
+     #echo $from too long
+     from=$(dirname $from);
+     back=../$back
+ 
+     if [ "$from" = / ] && [ "${to#/}" = "$to" ]; then
+ 	echo no common ancestor between $1 and $2 >&2
+ 	exit 1
+     elif [ "$from" = . ]; then
+ 	echo no common ancestor between $1 and $2 >&2
+ 	exit 1
+     fi
+ done
+ 
+ to=${to#$from}
+ to=${to##/}
+ back=${back%%/}
+ 
+ if [ -n "$to" ] && [ -n "$back" ]; then
+     echo $back/$to
+ elif [ -n "$back$to" ]; then
+     echo $back$to
+ else
+     echo .
+ fi
diff -Nrcpad gcc-14.2.0/contrib/test_installed gcc-15.1.0/contrib/test_installed
*** gcc-14.2.0/contrib/test_installed	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/test_installed	Fri Apr 25 08:17:59 2025
*************** while true; do
*** 60,66 ****
  
    --help) cat <<\EOF
  Runs the testsuite for an installed version of gcc/g++/gfortran/objc
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  by Alexandre Oliva <oliva@dcc.unicamp.br>
  
  Supported arguments:
--- 60,66 ----
  
    --help) cat <<\EOF
  Runs the testsuite for an installed version of gcc/g++/gfortran/objc
! Copyright (C) 1998-2025 Free Software Foundation, Inc.
  by Alexandre Oliva <oliva@dcc.unicamp.br>
  
  Supported arguments:
diff -Nrcpad gcc-14.2.0/contrib/test_mklog.py gcc-15.1.0/contrib/test_mklog.py
*** gcc-14.2.0/contrib/test_mklog.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/test_mklog.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** index aab79492357..f0df1002488 100644
*** 155,161 ****
  +
  +
   /* Interprocedural Identical Code Folding pass
!     Copyright (C) 2014-2024 Free Software Foundation, Inc.
   
  diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
  deleted file mode 100644
--- 155,161 ----
  +
  +
   /* Interprocedural Identical Code Folding pass
!     Copyright (C) 2014-2025 Free Software Foundation, Inc.
   
  diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
  deleted file mode 100644
*************** index f062e48071f..fd3c7ca8cf3 100644
*** 222,228 ****
  +
  +
   /* Output variables, constants and external declarations, for GNU compiler.
!     Copyright (C) 1987-2024 Free Software Foundation, Inc.
   
  diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
  index 4ad78c1f77b..6687b368038 100644
--- 222,228 ----
  +
  +
   /* Output variables, constants and external declarations, for GNU compiler.
!     Copyright (C) 1987-2025 Free Software Foundation, Inc.
   
  diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
  index 4ad78c1f77b..6687b368038 100644
diff -Nrcpad gcc-14.2.0/contrib/testsuite-management/validate_failures.py gcc-15.1.0/contrib/testsuite-management/validate_failures.py
*** gcc-14.2.0/contrib/testsuite-management/validate_failures.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/testsuite-management/validate_failures.py	Fri Apr 25 08:17:59 2025
***************
*** 5,11 ****
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** import sys
*** 62,68 ****
  
  _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ]
  # <STATE>: <NAME> <DESCRIPTION"
! _VALID_TEST_RESULTS_REX = re.compile('(%s):\s*(\S+)\s*(.*)'
                                       % "|".join(_VALID_TEST_RESULTS))
  
  # Formats of .sum file sections
--- 62,68 ----
  
  _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ]
  # <STATE>: <NAME> <DESCRIPTION"
! _VALID_TEST_RESULTS_REX = re.compile(r'(%s):\s*(\S+)\s*(.*)'
                                       % "|".join(_VALID_TEST_RESULTS))
  
  # Formats of .sum file sections
*************** _EXP_LINE_FORMAT = '\nRunning %s:%s ...\
*** 71,81 ****
  _SUMMARY_LINE_FORMAT = '\n\t\t=== %s Summary ===\n'
  
  # ... and their compiled regexs.
! _TOOL_LINE_REX = re.compile('^\t\t=== (.*) tests ===\n')
  # Match .exp file name, optionally prefixed by a "tool:" name and a
  # path ending with "testsuite/"
! _EXP_LINE_REX = re.compile('^Running (?:.*:)?(.*) \.\.\.\n')
! _SUMMARY_LINE_REX = re.compile('^\t\t=== (.*) Summary ===\n')
  
  # Subdirectory of srcdir in which to find the manifest file.
  _MANIFEST_SUBDIR = 'contrib/testsuite-management'
--- 71,81 ----
  _SUMMARY_LINE_FORMAT = '\n\t\t=== %s Summary ===\n'
  
  # ... and their compiled regexs.
! _TOOL_LINE_REX = re.compile(r'^\t\t=== (.*) tests ===\n')
  # Match .exp file name, optionally prefixed by a "tool:" name and a
  # path ending with "testsuite/"
! _EXP_LINE_REX = re.compile(r'^Running (?:.*:)?(.*) \.\.\.\n')
! _SUMMARY_LINE_REX = re.compile(r'^\t\t=== (.*) Summary ===\n')
  
  # Subdirectory of srcdir in which to find the manifest file.
  _MANIFEST_SUBDIR = 'contrib/testsuite-management'
diff -Nrcpad gcc-14.2.0/contrib/texi2pod.pl gcc-15.1.0/contrib/texi2pod.pl
*** gcc-14.2.0/contrib/texi2pod.pl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/texi2pod.pl	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
--- 1,6 ----
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2025 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/contrib/unicode/DerivedCoreProperties.txt gcc-15.1.0/contrib/unicode/DerivedCoreProperties.txt
*** gcc-14.2.0/contrib/unicode/DerivedCoreProperties.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/DerivedCoreProperties.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
! # DerivedCoreProperties-15.1.0.txt
! # Date: 2023-08-07, 15:21:24 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # DerivedCoreProperties-16.0.0.txt
! # Date: 2024-05-31, 18:09:32 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
*************** FF5C          ; Math # Sm       FULLWIDT
*** 177,182 ****
--- 177,183 ----
  FF5E          ; Math # Sm       FULLWIDTH TILDE
  FFE2          ; Math # Sm       FULLWIDTH NOT SIGN
  FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+ 10D8E..10D8F  ; Math # Sm   [2] GARAY PLUS SIGN..GARAY MINUS SIGN
  1D400..1D454  ; Math # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
  1D456..1D49C  ; Math # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
  1D49E..1D49F  ; Math # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 253,259 ****
  1EEAB..1EEBB  ; Math # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1EEF0..1EEF1  ; Math # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
  
! # Total code points: 2310
  
  # ================================================
  
--- 254,260 ----
  1EEAB..1EEBB  ; Math # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1EEF0..1EEF1  ; Math # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
  
! # Total code points: 2312
  
  # ================================================
  
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 280,285 ****
--- 281,287 ----
  02EC          ; Alphabetic # Lm       MODIFIER LETTER VOICING
  02EE          ; Alphabetic # Lm       MODIFIER LETTER DOUBLE APOSTROPHE
  0345          ; Alphabetic # Mn       COMBINING GREEK YPOGEGRAMMENI
+ 0363..036F    ; Alphabetic # Mn  [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
  0370..0373    ; Alphabetic # L&   [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
  0374          ; Alphabetic # Lm       GREEK NUMERAL SIGN
  0376..0377    ; Alphabetic # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 343,348 ****
--- 345,351 ----
  0860..086A    ; Alphabetic # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; Alphabetic # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0889..088E    ; Alphabetic # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+ 0897          ; Alphabetic # Mn       ARABIC PEPET
  08A0..08C8    ; Alphabetic # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; Alphabetic # Lm       ARABIC SMALL FARSI YEH
  08D4..08DF    ; Alphabetic # Mn  [12] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH WORD WAQFA
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 710,716 ****
  1C4D..1C4F    ; Alphabetic # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; Alphabetic # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; Alphabetic # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C88    ; Alphabetic # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Alphabetic # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Alphabetic # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; Alphabetic # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
--- 713,719 ----
  1C4D..1C4F    ; Alphabetic # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; Alphabetic # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; Alphabetic # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C8A    ; Alphabetic # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; Alphabetic # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Alphabetic # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; Alphabetic # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 723,729 ****
  1D78          ; Alphabetic # Lm       MODIFIER LETTER CYRILLIC EN
  1D79..1D9A    ; Alphabetic # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
  1D9B..1DBF    ; Alphabetic # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
! 1DE7..1DF4    ; Alphabetic # Mn  [14] COMBINING LATIN SMALL LETTER ALPHA..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
  1E00..1F15    ; Alphabetic # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
  1F18..1F1D    ; Alphabetic # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
  1F20..1F45    ; Alphabetic # L&  [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
--- 726,732 ----
  1D78          ; Alphabetic # Lm       MODIFIER LETTER CYRILLIC EN
  1D79..1D9A    ; Alphabetic # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
  1D9B..1DBF    ; Alphabetic # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
! 1DD3..1DF4    ; Alphabetic # Mn  [34] COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
  1E00..1F15    ; Alphabetic # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
  1F18..1F1D    ; Alphabetic # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
  1F20..1F45    ; Alphabetic # L&  [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
*************** A771..A787    ; Alphabetic # L&  [23] LA
*** 830,839 ****
  A788          ; Alphabetic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; Alphabetic # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; Alphabetic # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; Alphabetic # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Alphabetic # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; Alphabetic # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; Alphabetic # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Alphabetic # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; Alphabetic # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 833,842 ----
  A788          ; Alphabetic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; Alphabetic # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; Alphabetic # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; Alphabetic # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Alphabetic # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; Alphabetic # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; Alphabetic # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Alphabetic # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; Alphabetic # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 998,1003 ****
--- 1001,1007 ----
  105A3..105B1  ; Alphabetic # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; Alphabetic # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Alphabetic # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; Alphabetic # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; Alphabetic # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; Alphabetic # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; Alphabetic # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1038,1046 ****
--- 1042,1059 ----
  10CC0..10CF2  ; Alphabetic # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  10D00..10D23  ; Alphabetic # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; Alphabetic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D4A..10D4D  ; Alphabetic # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; Alphabetic # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; Alphabetic # Lo       GARAY SUKUN
+ 10D50..10D65  ; Alphabetic # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D69         ; Alphabetic # Mn       GARAY VOWEL SIGN E
+ 10D6F         ; Alphabetic # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; Alphabetic # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  10E80..10EA9  ; Alphabetic # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC  ; Alphabetic # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EB0..10EB1  ; Alphabetic # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+ 10EC2..10EC4  ; Alphabetic # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
+ 10EFC         ; Alphabetic # Mn       ARABIC COMBINING ALEF OVERLAY
  10F00..10F1C  ; Alphabetic # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; Alphabetic # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; Alphabetic # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1121,1126 ****
--- 1134,1152 ----
  11357         ; Alphabetic # Mc       GRANTHA AU LENGTH MARK
  1135D..11361  ; Alphabetic # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
  11362..11363  ; Alphabetic # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 11380..11389  ; Alphabetic # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; Alphabetic # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; Alphabetic # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; Alphabetic # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; Alphabetic # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113B8..113BA  ; Alphabetic # Mc   [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113BB..113C0  ; Alphabetic # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; Alphabetic # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Alphabetic # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA  ; Alphabetic # Mc   [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; Alphabetic # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113D1         ; Alphabetic # Lo       TULU-TIGALARI REPHA
+ 113D3         ; Alphabetic # Lo       TULU-TIGALARI SIGN PLUTA
  11400..11434  ; Alphabetic # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437  ; Alphabetic # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11438..1143F  ; Alphabetic # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1163,1169 ****
  116B0..116B5  ; Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B8         ; Alphabetic # Lo       TAKRI LETTER ARCHAIC KHA
  11700..1171A  ; Alphabetic # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F  ; Alphabetic # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; Alphabetic # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; Alphabetic # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; Alphabetic # Mc       AHOM VOWEL SIGN E
--- 1189,1197 ----
  116B0..116B5  ; Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B8         ; Alphabetic # Lo       TAKRI LETTER ARCHAIC KHA
  11700..1171A  ; Alphabetic # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D         ; Alphabetic # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171E         ; Alphabetic # Mc       AHOM CONSONANT SIGN MEDIAL RA
! 1171F         ; Alphabetic # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; Alphabetic # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; Alphabetic # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; Alphabetic # Mc       AHOM VOWEL SIGN E
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1211,1216 ****
--- 1239,1245 ----
  11A97         ; Alphabetic # Mc       SOYOMBO SIGN VISARGA
  11A9D         ; Alphabetic # Lo       SOYOMBO MARK PLUTA
  11AB0..11AF8  ; Alphabetic # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; Alphabetic # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
  11C00..11C08  ; Alphabetic # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; Alphabetic # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C2F         ; Alphabetic # Mc       BHAIKSUKI VOWEL SIGN AA
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1264,1270 ****
--- 1293,1304 ----
  12F90..12FF0  ; Alphabetic # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
  13000..1342F  ; Alphabetic # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
  13441..13446  ; Alphabetic # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+ 13460..143FA  ; Alphabetic # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; Alphabetic # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; Alphabetic # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 1611E..16129  ; Alphabetic # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612A..1612C  ; Alphabetic # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 1612D..1612E  ; Alphabetic # Mn   [2] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA CONSONANT SIGN MEDIAL RA
  16800..16A38  ; Alphabetic # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; Alphabetic # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A70..16ABE  ; Alphabetic # Lo  [79] TANGSA LETTER OZ..TANGSA LETTER ZA
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1273,1278 ****
--- 1307,1315 ----
  16B40..16B43  ; Alphabetic # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
  16B63..16B77  ; Alphabetic # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; Alphabetic # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; Alphabetic # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; Alphabetic # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; Alphabetic # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
  16E40..16E7F  ; Alphabetic # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16F00..16F4A  ; Alphabetic # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; Alphabetic # Mn       MIAO SIGN CONSONANT MODIFIER BAR
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1285,1291 ****
  16FF0..16FF1  ; Alphabetic # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; Alphabetic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Alphabetic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; Alphabetic # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; Alphabetic # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; Alphabetic # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; Alphabetic # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 1322,1328 ----
  16FF0..16FF1  ; Alphabetic # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; Alphabetic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Alphabetic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; Alphabetic # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; Alphabetic # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; Alphabetic # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; Alphabetic # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1348,1353 ****
--- 1385,1392 ----
  1E2C0..1E2EB  ; Alphabetic # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
  1E4D0..1E4EA  ; Alphabetic # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
  1E4EB         ; Alphabetic # Lm       NAG MUNDARI SIGN OJOD
+ 1E5D0..1E5ED  ; Alphabetic # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5F0         ; Alphabetic # Lo       OL ONAL SIGN HODDOND
  1E7E0..1E7E6  ; Alphabetic # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; Alphabetic # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; Alphabetic # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1402,1408 ****
  30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 138387
  
  # ================================================
  
--- 1441,1447 ----
  30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 142759
  
  # ================================================
  
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1691,1696 ****
--- 1730,1736 ----
  10FD..10FF    ; Lowercase # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13F8..13FD    ; Lowercase # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
  1C80..1C88    ; Lowercase # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C8A          ; Lowercase # L&       CYRILLIC SMALL LETTER TJE
  1D00..1D2B    ; Lowercase # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
  1D2C..1D6A    ; Lowercase # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
  1D6B..1D77    ; Lowercase # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
*************** A7C1          ; Lowercase # L&       LAT
*** 2032,2042 ****
--- 2072,2084 ----
  A7C3          ; Lowercase # L&       LATIN SMALL LETTER ANGLICANA W
  A7C8          ; Lowercase # L&       LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
  A7CA          ; Lowercase # L&       LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+ A7CD          ; Lowercase # L&       LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D1          ; Lowercase # L&       LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Lowercase # L&       LATIN SMALL LETTER DOUBLE THORN
  A7D5          ; Lowercase # L&       LATIN SMALL LETTER DOUBLE WYNN
  A7D7          ; Lowercase # L&       LATIN SMALL LETTER MIDDLE SCOTS S
  A7D9          ; Lowercase # L&       LATIN SMALL LETTER SIGMOID S
+ A7DB          ; Lowercase # L&       LATIN SMALL LETTER LAMBDA
  A7F2..A7F4    ; Lowercase # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F6          ; Lowercase # L&       LATIN SMALL LETTER REVERSED HALF H
  A7F8..A7F9    ; Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FF41..FF5A    ; Lowercase # L&  [26] FUL
*** 2060,2065 ****
--- 2102,2108 ----
  10787..107B0  ; Lowercase # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
  107B2..107BA  ; Lowercase # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
  10CC0..10CF2  ; Lowercase # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D70..10D85  ; Lowercase # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  118C0..118DF  ; Lowercase # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E60..16E7F  ; Lowercase # L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1D41A..1D433  ; Lowercase # L&  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
*************** FF41..FF5A    ; Lowercase # L&  [26] FUL
*** 2096,2102 ****
  1E030..1E06D  ; Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
  1E922..1E943  ; Lowercase # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 2544
  
  # ================================================
  
--- 2139,2145 ----
  1E030..1E06D  ; Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
  1E922..1E943  ; Lowercase # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 2569
  
  # ================================================
  
*************** FF41..FF5A    ; Lowercase # L&  [26] FUL
*** 2379,2384 ****
--- 2422,2428 ----
  10C7          ; Uppercase # L&       GEORGIAN CAPITAL LETTER YN
  10CD          ; Uppercase # L&       GEORGIAN CAPITAL LETTER AEN
  13A0..13F5    ; Uppercase # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+ 1C89          ; Uppercase # L&       CYRILLIC CAPITAL LETTER TJE
  1C90..1CBA    ; Uppercase # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Uppercase # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1E00          ; Uppercase # L&       LATIN CAPITAL LETTER A WITH RING BELOW
*************** A7C0          ; Uppercase # L&       LAT
*** 2705,2713 ****
--- 2749,2760 ----
  A7C2          ; Uppercase # L&       LATIN CAPITAL LETTER ANGLICANA W
  A7C4..A7C7    ; Uppercase # L&   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; Uppercase # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB..A7CC    ; Uppercase # L&   [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; Uppercase # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; Uppercase # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Uppercase # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; Uppercase # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; Uppercase # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F5          ; Uppercase # L&       LATIN CAPITAL LETTER REVERSED HALF H
  FF21..FF3A    ; Uppercase # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
  10400..10427  ; Uppercase # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 2717,2722 ****
--- 2764,2770 ----
  1058C..10592  ; Uppercase # L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
  10594..10595  ; Uppercase # L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
  10C80..10CB2  ; Uppercase # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+ 10D50..10D65  ; Uppercase # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
  118A0..118BF  ; Uppercase # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Uppercase # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1D400..1D419  ; Uppercase # L&  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 2755,2761 ****
  1F150..1F169  ; Uppercase # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Uppercase # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 1951
  
  # ================================================
  
--- 2803,2809 ----
  1F150..1F169  ; Uppercase # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Uppercase # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 1978
  
  # ================================================
  
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 2800,2806 ****
  10FD..10FF    ; Cased # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13A0..13F5    ; Cased # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
  13F8..13FD    ; Cased # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C88    ; Cased # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Cased # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Cased # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D00..1D2B    ; Cased # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
--- 2848,2854 ----
  10FD..10FF    ; Cased # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13A0..13F5    ; Cased # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
  13F8..13FD    ; Cased # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C8A    ; Cased # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; Cased # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Cased # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D00..1D2B    ; Cased # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
*************** A722..A76F    ; Cased # L&  [78] LATIN C
*** 2863,2872 ****
  A770          ; Cased # Lm       MODIFIER LETTER US
  A771..A787    ; Cased # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
  A78B..A78E    ; Cased # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
! A790..A7CA    ; Cased # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; Cased # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Cased # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; Cased # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; Cased # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Cased # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F8..A7F9    ; Cased # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 2911,2920 ----
  A770          ; Cased # Lm       MODIFIER LETTER US
  A771..A787    ; Cased # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
  A78B..A78E    ; Cased # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
! A790..A7CD    ; Cased # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; Cased # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Cased # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; Cased # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; Cased # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Cased # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F8..A7F9    ; Cased # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 2897,2902 ****
--- 2945,2952 ----
  107B2..107BA  ; Cased # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
  10C80..10CB2  ; Cased # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  10CC0..10CF2  ; Cased # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D50..10D65  ; Cased # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D70..10D85  ; Cased # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  118A0..118DF  ; Cased # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E40..16E7F  ; Cased # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1D400..1D454  ; Cased # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 2938,2944 ****
  1F150..1F169  ; Cased # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Cased # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 4526
  
  # ================================================
  
--- 2988,2994 ----
  1F150..1F169  ; Cased # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Cased # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 4578
  
  # ================================================
  
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 3015,3021 ****
  0859..085B    ; Case_Ignorable # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  0888          ; Case_Ignorable # Sk       ARABIC RAISED ROUND DOT
  0890..0891    ; Case_Ignorable # Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0898..089F    ; Case_Ignorable # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08C9          ; Case_Ignorable # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; Case_Ignorable # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E2          ; Case_Ignorable # Cf       ARABIC DISPUTED END OF AYAH
--- 3065,3071 ----
  0859..085B    ; Case_Ignorable # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  0888          ; Case_Ignorable # Sk       ARABIC RAISED ROUND DOT
  0890..0891    ; Case_Ignorable # Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0897..089F    ; Case_Ignorable # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08C9          ; Case_Ignorable # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; Case_Ignorable # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E2          ; Case_Ignorable # Cf       ARABIC DISPUTED END OF AYAH
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3296,3303 ****
  10A3F         ; Case_Ignorable # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Case_Ignorable # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Case_Ignorable # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10EAB..10EAC  ; Case_Ignorable # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFD..10EFF  ; Case_Ignorable # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Case_Ignorable # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Case_Ignorable # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Case_Ignorable # Mn       BRAHMI SIGN ANUSVARA
--- 3346,3356 ----
  10A3F         ; Case_Ignorable # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Case_Ignorable # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Case_Ignorable # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D4E         ; Case_Ignorable # Lm       GARAY VOWEL LENGTH MARK
+ 10D69..10D6D  ; Case_Ignorable # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
+ 10D6F         ; Case_Ignorable # Lm       GARAY REDUPLICATION MARK
  10EAB..10EAC  ; Case_Ignorable # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFC..10EFF  ; Case_Ignorable # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Case_Ignorable # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Case_Ignorable # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Case_Ignorable # Mn       BRAHMI SIGN ANUSVARA
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3330,3335 ****
--- 3383,3393 ----
  11340         ; Case_Ignorable # Mn       GRANTHA VOWEL SIGN II
  11366..1136C  ; Case_Ignorable # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; Case_Ignorable # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113BB..113C0  ; Case_Ignorable # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113CE         ; Case_Ignorable # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113D0         ; Case_Ignorable # Mn       TULU-TIGALARI CONJOINER
+ 113D2         ; Case_Ignorable # Mn       TULU-TIGALARI GEMINATION MARK
+ 113E1..113E2  ; Case_Ignorable # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11438..1143F  ; Case_Ignorable # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
  11442..11444  ; Case_Ignorable # Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
  11446         ; Case_Ignorable # Mn       NEWA SIGN NUKTA
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3349,3355 ****
  116AD         ; Case_Ignorable # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Case_Ignorable # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B7         ; Case_Ignorable # Mn       TAKRI SIGN NUKTA
! 1171D..1171F  ; Case_Ignorable # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Case_Ignorable # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Case_Ignorable # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Case_Ignorable # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
--- 3407,3414 ----
  116AD         ; Case_Ignorable # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Case_Ignorable # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B7         ; Case_Ignorable # Mn       TAKRI SIGN NUKTA
! 1171D         ; Case_Ignorable # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171F         ; Case_Ignorable # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Case_Ignorable # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Case_Ignorable # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Case_Ignorable # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3388,3399 ****
--- 3447,3463 ----
  11F36..11F3A  ; Case_Ignorable # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F40         ; Case_Ignorable # Mn       KAWI VOWEL SIGN EU
  11F42         ; Case_Ignorable # Mn       KAWI CONJOINER
+ 11F5A         ; Case_Ignorable # Mn       KAWI SIGN NUKTA
  13430..1343F  ; Case_Ignorable # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
  13440         ; Case_Ignorable # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13447..13455  ; Case_Ignorable # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1611E..16129  ; Case_Ignorable # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612D..1612F  ; Case_Ignorable # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
  16AF0..16AF4  ; Case_Ignorable # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Case_Ignorable # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  16B40..16B43  ; Case_Ignorable # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+ 16D40..16D42  ; Case_Ignorable # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D6B..16D6C  ; Case_Ignorable # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
  16F4F         ; Case_Ignorable # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F8F..16F92  ; Case_Ignorable # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16F93..16F9F  ; Case_Ignorable # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3432,3437 ****
--- 3496,3502 ----
  1E2EC..1E2EF  ; Case_Ignorable # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EB         ; Case_Ignorable # Lm       NAG MUNDARI SIGN OJOD
  1E4EC..1E4EF  ; Case_Ignorable # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E5EE..1E5EF  ; Case_Ignorable # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
  1E8D0..1E8D6  ; Case_Ignorable # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; Case_Ignorable # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  1E94B         ; Case_Ignorable # Lm       ADLAM NASALIZATION MARK
*************** E0001         ; Case_Ignorable # Cf
*** 3440,3446 ****
  E0020..E007F  ; Case_Ignorable # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2707
  
  # ================================================
  
--- 3505,3511 ----
  E0020..E007F  ; Case_Ignorable # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2749
  
  # ================================================
  
*************** E0100..E01EF  ; Case_Ignorable # Mn [240
*** 3724,3729 ****
--- 3789,3795 ----
  10C7          ; Changes_When_Lowercased # L&       GEORGIAN CAPITAL LETTER YN
  10CD          ; Changes_When_Lowercased # L&       GEORGIAN CAPITAL LETTER AEN
  13A0..13F5    ; Changes_When_Lowercased # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+ 1C89          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER TJE
  1C90..1CBA    ; Changes_When_Lowercased # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_Lowercased # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1E00          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER A WITH RING BELOW
*************** A7C0          ; Changes_When_Lowercased
*** 4043,4051 ****
--- 4109,4120 ----
  A7C2          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER ANGLICANA W
  A7C4..A7C7    ; Changes_When_Lowercased # L&   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB..A7CC    ; Changes_When_Lowercased # L&   [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F5          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER REVERSED HALF H
  FF21..FF3A    ; Changes_When_Lowercased # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
  10400..10427  ; Changes_When_Lowercased # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
*************** FF21..FF3A    ; Changes_When_Lowercased
*** 4055,4065 ****
  1058C..10592  ; Changes_When_Lowercased # L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
  10594..10595  ; Changes_When_Lowercased # L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
  10C80..10CB2  ; Changes_When_Lowercased # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  118A0..118BF  ; Changes_When_Lowercased # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Changes_When_Lowercased # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1E900..1E921  ; Changes_When_Lowercased # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1433
  
  # ================================================
  
--- 4124,4135 ----
  1058C..10592  ; Changes_When_Lowercased # L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
  10594..10595  ; Changes_When_Lowercased # L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
  10C80..10CB2  ; Changes_When_Lowercased # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+ 10D50..10D65  ; Changes_When_Lowercased # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
  118A0..118BF  ; Changes_When_Lowercased # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Changes_When_Lowercased # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1E900..1E921  ; Changes_When_Lowercased # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1460
  
  # ================================================
  
*************** FF21..FF3A    ; Changes_When_Lowercased
*** 4140,4146 ****
  018C          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER D WITH TOPBAR
  0192          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER F WITH HOOK
  0195          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER HV
! 0199..019A    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER L WITH BAR
  019E          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER N WITH LONG RIGHT LEG
  01A1          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER O WITH HORN
  01A3          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER OI
--- 4210,4216 ----
  018C          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER D WITH TOPBAR
  0192          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER F WITH HOOK
  0195          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER HV
! 0199..019B    ; Changes_When_Uppercased # L&   [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
  019E          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER N WITH LONG RIGHT LEG
  01A1          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER O WITH HORN
  01A3          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER OI
*************** FF21..FF3A    ; Changes_When_Lowercased
*** 4216,4223 ****
  0259          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER GAMMA
! 0265..0266    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Uppercased # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
--- 4286,4292 ----
  0259          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263..0266    ; Changes_When_Uppercased # L&   [4] LATIN SMALL LETTER GAMMA..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Uppercased # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
*************** FF21..FF3A    ; Changes_When_Lowercased
*** 4357,4362 ****
--- 4426,4432 ----
  10FD..10FF    ; Changes_When_Uppercased # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13F8..13FD    ; Changes_When_Uppercased # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
  1C80..1C88    ; Changes_When_Uppercased # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C8A          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER TJE
  1D79          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER INSULAR G
  1D7D          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER P WITH STROKE
  1D8E          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER Z WITH PALATAL HOOK
*************** A7C1          ; Changes_When_Uppercased
*** 4676,4684 ****
--- 4746,4756 ----
  A7C3          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER ANGLICANA W
  A7C8          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
  A7CA          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+ A7CD          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D1          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER CLOSED INSULAR G
  A7D7          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER MIDDLE SCOTS S
  A7D9          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER SIGMOID S
+ A7DB          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER LAMBDA
  A7F6          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER REVERSED HALF H
  AB53          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER CHI
  AB70..ABBF    ; Changes_When_Uppercased # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
*************** FF41..FF5A    ; Changes_When_Uppercased
*** 4692,4702 ****
  105B3..105B9  ; Changes_When_Uppercased # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Changes_When_Uppercased # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10CC0..10CF2  ; Changes_When_Uppercased # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  118C0..118DF  ; Changes_When_Uppercased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E60..16E7F  ; Changes_When_Uppercased # L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E922..1E943  ; Changes_When_Uppercased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1525
  
  # ================================================
  
--- 4764,4775 ----
  105B3..105B9  ; Changes_When_Uppercased # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Changes_When_Uppercased # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10CC0..10CF2  ; Changes_When_Uppercased # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D70..10D85  ; Changes_When_Uppercased # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  118C0..118DF  ; Changes_When_Uppercased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E60..16E7F  ; Changes_When_Uppercased # L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E922..1E943  ; Changes_When_Uppercased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1552
  
  # ================================================
  
*************** FF41..FF5A    ; Changes_When_Uppercased
*** 4777,4783 ****
  018C          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER D WITH TOPBAR
  0192          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER F WITH HOOK
  0195          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER HV
! 0199..019A    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER L WITH BAR
  019E          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER N WITH LONG RIGHT LEG
  01A1          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER O WITH HORN
  01A3          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER OI
--- 4850,4856 ----
  018C          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER D WITH TOPBAR
  0192          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER F WITH HOOK
  0195          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER HV
! 0199..019B    ; Changes_When_Titlecased # L&   [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
  019E          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER N WITH LONG RIGHT LEG
  01A1          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER O WITH HORN
  01A3          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER OI
*************** FF41..FF5A    ; Changes_When_Uppercased
*** 4854,4861 ****
  0259          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER GAMMA
! 0265..0266    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Titlecased # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
--- 4927,4933 ----
  0259          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263..0266    ; Changes_When_Titlecased # L&   [4] LATIN SMALL LETTER GAMMA..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Titlecased # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
*************** FF41..FF5A    ; Changes_When_Uppercased
*** 4993,4998 ****
--- 5065,5071 ----
  0561..0587    ; Changes_When_Titlecased # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
  13F8..13FD    ; Changes_When_Titlecased # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
  1C80..1C88    ; Changes_When_Titlecased # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C8A          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER TJE
  1D79          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER INSULAR G
  1D7D          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER P WITH STROKE
  1D8E          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER Z WITH PALATAL HOOK
*************** A7C1          ; Changes_When_Titlecased
*** 5312,5320 ****
--- 5385,5395 ----
  A7C3          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER ANGLICANA W
  A7C8          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
  A7CA          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+ A7CD          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D1          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER CLOSED INSULAR G
  A7D7          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER MIDDLE SCOTS S
  A7D9          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER SIGMOID S
+ A7DB          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER LAMBDA
  A7F6          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER REVERSED HALF H
  AB53          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER CHI
  AB70..ABBF    ; Changes_When_Titlecased # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
*************** FF41..FF5A    ; Changes_When_Titlecased
*** 5328,5338 ****
  105B3..105B9  ; Changes_When_Titlecased # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Changes_When_Titlecased # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10CC0..10CF2  ; Changes_When_Titlecased # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  118C0..118DF  ; Changes_When_Titlecased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E60..16E7F  ; Changes_When_Titlecased # L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E922..1E943  ; Changes_When_Titlecased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1452
  
  # ================================================
  
--- 5403,5414 ----
  105B3..105B9  ; Changes_When_Titlecased # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Changes_When_Titlecased # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10CC0..10CF2  ; Changes_When_Titlecased # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D70..10D85  ; Changes_When_Titlecased # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  118C0..118DF  ; Changes_When_Titlecased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E60..16E7F  ; Changes_When_Titlecased # L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E922..1E943  ; Changes_When_Titlecased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1479
  
  # ================================================
  
*************** FF41..FF5A    ; Changes_When_Titlecased
*** 5623,5629 ****
  10C7          ; Changes_When_Casefolded # L&       GEORGIAN CAPITAL LETTER YN
  10CD          ; Changes_When_Casefolded # L&       GEORGIAN CAPITAL LETTER AEN
  13F8..13FD    ; Changes_When_Casefolded # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C88    ; Changes_When_Casefolded # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Changes_When_Casefolded # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_Casefolded # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1E00          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER A WITH RING BELOW
--- 5699,5705 ----
  10C7          ; Changes_When_Casefolded # L&       GEORGIAN CAPITAL LETTER YN
  10CD          ; Changes_When_Casefolded # L&       GEORGIAN CAPITAL LETTER AEN
  13F8..13FD    ; Changes_When_Casefolded # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C89    ; Changes_When_Casefolded # L&  [10] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC CAPITAL LETTER TJE
  1C90..1CBA    ; Changes_When_Casefolded # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_Casefolded # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1E00          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER A WITH RING BELOW
*************** A7C0          ; Changes_When_Casefolded
*** 5945,5953 ****
--- 6021,6032 ----
  A7C2          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER ANGLICANA W
  A7C4..A7C7    ; Changes_When_Casefolded # L&   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB..A7CC    ; Changes_When_Casefolded # L&   [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F5          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER REVERSED HALF H
  AB70..ABBF    ; Changes_When_Casefolded # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
  FB00..FB06    ; Changes_When_Casefolded # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
*************** FF21..FF3A    ; Changes_When_Casefolded
*** 5960,5970 ****
  1058C..10592  ; Changes_When_Casefolded # L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
  10594..10595  ; Changes_When_Casefolded # L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
  10C80..10CB2  ; Changes_When_Casefolded # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  118A0..118BF  ; Changes_When_Casefolded # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Changes_When_Casefolded # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1E900..1E921  ; Changes_When_Casefolded # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1506
  
  # ================================================
  
--- 6039,6050 ----
  1058C..10592  ; Changes_When_Casefolded # L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
  10594..10595  ; Changes_When_Casefolded # L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
  10C80..10CB2  ; Changes_When_Casefolded # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+ 10D50..10D65  ; Changes_When_Casefolded # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
  118A0..118BF  ; Changes_When_Casefolded # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Changes_When_Casefolded # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1E900..1E921  ; Changes_When_Casefolded # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1533
  
  # ================================================
  
*************** FF21..FF3A    ; Changes_When_Casefolded
*** 5980,5987 ****
  00D8..00F6    ; Changes_When_Casemapped # L&  [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
  00F8..0137    ; Changes_When_Casemapped # L&  [64] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER K WITH CEDILLA
  0139..018C    ; Changes_When_Casemapped # L&  [84] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER D WITH TOPBAR
! 018E..019A    ; Changes_When_Casemapped # L&  [13] LATIN CAPITAL LETTER REVERSED E..LATIN SMALL LETTER L WITH BAR
! 019C..01A9    ; Changes_When_Casemapped # L&  [14] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER ESH
  01AC..01B9    ; Changes_When_Casemapped # L&  [14] LATIN CAPITAL LETTER T WITH HOOK..LATIN SMALL LETTER EZH REVERSED
  01BC..01BD    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER TONE FIVE..LATIN SMALL LETTER TONE FIVE
  01BF          ; Changes_When_Casemapped # L&       LATIN LETTER WYNN
--- 6060,6066 ----
  00D8..00F6    ; Changes_When_Casemapped # L&  [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
  00F8..0137    ; Changes_When_Casemapped # L&  [64] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER K WITH CEDILLA
  0139..018C    ; Changes_When_Casemapped # L&  [84] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER D WITH TOPBAR
! 018E..01A9    ; Changes_When_Casemapped # L&  [28] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER ESH
  01AC..01B9    ; Changes_When_Casemapped # L&  [14] LATIN CAPITAL LETTER T WITH HOOK..LATIN SMALL LETTER EZH REVERSED
  01BC..01BD    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER TONE FIVE..LATIN SMALL LETTER TONE FIVE
  01BF          ; Changes_When_Casemapped # L&       LATIN LETTER WYNN
*************** FF21..FF3A    ; Changes_When_Casefolded
*** 5992,5999 ****
  0259          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER GAMMA
! 0265..0266    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Casemapped # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
--- 6071,6077 ----
  0259          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER SCHWA
  025B..025C    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
  0260..0261    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
! 0263..0266    ; Changes_When_Casemapped # L&   [4] LATIN SMALL LETTER GAMMA..LATIN SMALL LETTER H WITH HOOK
  0268..026C    ; Changes_When_Casemapped # L&   [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT
  026F          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER TURNED M
  0271..0272    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
*************** FF21..FF3A    ; Changes_When_Casefolded
*** 6027,6033 ****
  10FD..10FF    ; Changes_When_Casemapped # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13A0..13F5    ; Changes_When_Casemapped # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
  13F8..13FD    ; Changes_When_Casemapped # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C88    ; Changes_When_Casemapped # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Changes_When_Casemapped # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_Casemapped # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D79          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER INSULAR G
--- 6105,6111 ----
  10FD..10FF    ; Changes_When_Casemapped # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
  13A0..13F5    ; Changes_When_Casemapped # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
  13F8..13FD    ; Changes_When_Casemapped # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1C80..1C8A    ; Changes_When_Casemapped # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; Changes_When_Casemapped # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_Casemapped # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D79          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER INSULAR G
*************** A779..A787    ; Changes_When_Casemapped
*** 6078,6086 ****
  A78B..A78D    ; Changes_When_Casemapped # L&   [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H
  A790..A794    ; Changes_When_Casemapped # L&   [5] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH PALATAL HOOK
  A796..A7AE    ; Changes_When_Casemapped # L&  [25] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER SMALL CAPITAL I
! A7B0..A7CA    ; Changes_When_Casemapped # L&  [27] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
! A7D6..A7D9    ; Changes_When_Casemapped # L&   [4] LATIN CAPITAL LETTER MIDDLE SCOTS S..LATIN SMALL LETTER SIGMOID S
  A7F5..A7F6    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  AB53          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER CHI
  AB70..ABBF    ; Changes_When_Casemapped # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
--- 6156,6164 ----
  A78B..A78D    ; Changes_When_Casemapped # L&   [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H
  A790..A794    ; Changes_When_Casemapped # L&   [5] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH PALATAL HOOK
  A796..A7AE    ; Changes_When_Casemapped # L&  [25] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER SMALL CAPITAL I
! A7B0..A7CD    ; Changes_When_Casemapped # L&  [30] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
! A7D6..A7DC    ; Changes_When_Casemapped # L&   [7] LATIN CAPITAL LETTER MIDDLE SCOTS S..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F5..A7F6    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  AB53          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER CHI
  AB70..ABBF    ; Changes_When_Casemapped # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6101,6111 ****
  105BB..105BC  ; Changes_When_Casemapped # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10C80..10CB2  ; Changes_When_Casemapped # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  10CC0..10CF2  ; Changes_When_Casemapped # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  118A0..118DF  ; Changes_When_Casemapped # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E40..16E7F  ; Changes_When_Casemapped # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E900..1E943  ; Changes_When_Casemapped # L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 2927
  
  # ================================================
  
--- 6179,6191 ----
  105BB..105BC  ; Changes_When_Casemapped # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
  10C80..10CB2  ; Changes_When_Casemapped # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  10CC0..10CF2  ; Changes_When_Casemapped # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D50..10D65  ; Changes_When_Casemapped # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D70..10D85  ; Changes_When_Casemapped # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  118A0..118DF  ; Changes_When_Casemapped # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
  16E40..16E7F  ; Changes_When_Casemapped # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  1E900..1E943  ; Changes_When_Casemapped # L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 2981
  
  # ================================================
  
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6364,6370 ****
  1C4D..1C4F    ; ID_Start # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; ID_Start # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; ID_Start # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C88    ; ID_Start # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; ID_Start # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; ID_Start # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; ID_Start # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
--- 6444,6450 ----
  1C4D..1C4F    ; ID_Start # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; ID_Start # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; ID_Start # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C8A    ; ID_Start # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; ID_Start # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; ID_Start # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; ID_Start # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
*************** A771..A787    ; ID_Start # L&  [23] LATI
*** 6481,6490 ****
  A788          ; ID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; ID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; ID_Start # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; ID_Start # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; ID_Start # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; ID_Start # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; ID_Start # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; ID_Start # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; ID_Start # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; ID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 6561,6570 ----
  A788          ; ID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; ID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; ID_Start # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; ID_Start # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; ID_Start # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; ID_Start # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; ID_Start # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; ID_Start # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; ID_Start # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; ID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6603,6608 ****
--- 6683,6689 ----
  105A3..105B1  ; ID_Start # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; ID_Start # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; ID_Start # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; ID_Start # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; ID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; ID_Start # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; ID_Start # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6639,6646 ****
--- 6720,6734 ----
  10C80..10CB2  ; ID_Start # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  10CC0..10CF2  ; ID_Start # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  10D00..10D23  ; ID_Start # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+ 10D4A..10D4D  ; ID_Start # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; ID_Start # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; ID_Start # Lo       GARAY SUKUN
+ 10D50..10D65  ; ID_Start # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D6F         ; ID_Start # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; ID_Start # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  10E80..10EA9  ; ID_Start # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EB0..10EB1  ; ID_Start # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+ 10EC2..10EC4  ; ID_Start # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
  10F00..10F1C  ; ID_Start # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; ID_Start # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; ID_Start # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6679,6684 ****
--- 6767,6779 ----
  1133D         ; ID_Start # Lo       GRANTHA SIGN AVAGRAHA
  11350         ; ID_Start # Lo       GRANTHA OM
  1135D..11361  ; ID_Start # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+ 11380..11389  ; ID_Start # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; ID_Start # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; ID_Start # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; ID_Start # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; ID_Start # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113D1         ; ID_Start # Lo       TULU-TIGALARI REPHA
+ 113D3         ; ID_Start # Lo       TULU-TIGALARI SIGN PLUTA
  11400..11434  ; ID_Start # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11447..1144A  ; ID_Start # Lo   [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
  1145F..11461  ; ID_Start # Lo   [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6713,6718 ****
--- 6808,6814 ----
  11A5C..11A89  ; ID_Start # Lo  [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
  11A9D         ; ID_Start # Lo       SOYOMBO MARK PLUTA
  11AB0..11AF8  ; ID_Start # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; ID_Start # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
  11C00..11C08  ; ID_Start # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; ID_Start # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C40         ; ID_Start # Lo       BHAIKSUKI SIGN AVAGRAHA
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6736,6742 ****
--- 6832,6840 ----
  12F90..12FF0  ; ID_Start # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
  13000..1342F  ; ID_Start # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
  13441..13446  ; ID_Start # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+ 13460..143FA  ; ID_Start # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; ID_Start # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; ID_Start # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
  16800..16A38  ; ID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; ID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A70..16ABE  ; ID_Start # Lo  [79] TANGSA LETTER OZ..TANGSA LETTER ZA
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6745,6750 ****
--- 6843,6851 ----
  16B40..16B43  ; ID_Start # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
  16B63..16B77  ; ID_Start # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; ID_Start # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; ID_Start # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; ID_Start # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; ID_Start # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
  16E40..16E7F  ; ID_Start # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16F00..16F4A  ; ID_Start # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F50         ; ID_Start # Lo       MIAO LETTER NASALIZATION
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6753,6759 ****
  16FE3         ; ID_Start # Lm       OLD CHINESE ITERATION MARK
  17000..187F7  ; ID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; ID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; ID_Start # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; ID_Start # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; ID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; ID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 6854,6860 ----
  16FE3         ; ID_Start # Lm       OLD CHINESE ITERATION MARK
  17000..187F7  ; ID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; ID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; ID_Start # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; ID_Start # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; ID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; ID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6809,6814 ****
--- 6910,6917 ----
  1E2C0..1E2EB  ; ID_Start # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
  1E4D0..1E4EA  ; ID_Start # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
  1E4EB         ; ID_Start # Lm       NAG MUNDARI SIGN OJOD
+ 1E5D0..1E5ED  ; ID_Start # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5F0         ; ID_Start # Lo       OL ONAL SIGN HODDOND
  1E7E0..1E7E6  ; ID_Start # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; ID_Start # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; ID_Start # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6859,6865 ****
  30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136967
  
  # ================================================
  
--- 6962,6968 ----
  30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 141269
  
  # ================================================
  
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6966,6972 ****
  0860..086A    ; ID_Continue # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; ID_Continue # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0889..088E    ; ID_Continue # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0898..089F    ; ID_Continue # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08A0..08C8    ; ID_Continue # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; ID_Continue # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; ID_Continue # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
--- 7069,7075 ----
  0860..086A    ; ID_Continue # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; ID_Continue # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0889..088E    ; ID_Continue # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0897..089F    ; ID_Continue # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08A0..08C8    ; ID_Continue # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; ID_Continue # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; ID_Continue # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7399,7405 ****
  1C50..1C59    ; ID_Continue # Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
  1C5A..1C77    ; ID_Continue # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; ID_Continue # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C88    ; ID_Continue # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; ID_Continue # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; ID_Continue # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CD0..1CD2    ; ID_Continue # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
--- 7502,7508 ----
  1C50..1C59    ; ID_Continue # Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
  1C5A..1C77    ; ID_Continue # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; ID_Continue # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C8A    ; ID_Continue # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; ID_Continue # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; ID_Continue # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CD0..1CD2    ; ID_Continue # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
*************** A771..A787    ; ID_Continue # L&  [23] L
*** 7543,7552 ****
  A788          ; ID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; ID_Continue # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; ID_Continue # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; ID_Continue # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; ID_Continue # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; ID_Continue # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; ID_Continue # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; ID_Continue # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; ID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 7646,7655 ----
  A788          ; ID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; ID_Continue # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; ID_Continue # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; ID_Continue # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; ID_Continue # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; ID_Continue # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; ID_Continue # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; ID_Continue # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; ID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7735,7740 ****
--- 7838,7844 ----
  105A3..105B1  ; ID_Continue # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; ID_Continue # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; ID_Continue # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; ID_Continue # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; ID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; ID_Continue # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; ID_Continue # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7779,7788 ****
  10D00..10D23  ; ID_Continue # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; ID_Continue # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39  ; ID_Continue # Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
  10E80..10EA9  ; ID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC  ; ID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EB0..10EB1  ; ID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EFD..10EFF  ; ID_Continue # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C  ; ID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; ID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; ID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
--- 7883,7901 ----
  10D00..10D23  ; ID_Continue # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; ID_Continue # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39  ; ID_Continue # Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+ 10D40..10D49  ; ID_Continue # Nd  [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
+ 10D4A..10D4D  ; ID_Continue # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; ID_Continue # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; ID_Continue # Lo       GARAY SUKUN
+ 10D50..10D65  ; ID_Continue # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D69..10D6D  ; ID_Continue # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
+ 10D6F         ; ID_Continue # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; ID_Continue # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  10E80..10EA9  ; ID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC  ; ID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EB0..10EB1  ; ID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EC2..10EC4  ; ID_Continue # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
! 10EFC..10EFF  ; ID_Continue # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C  ; ID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; ID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; ID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7878,7883 ****
--- 7991,8014 ----
  11362..11363  ; ID_Continue # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  11366..1136C  ; ID_Continue # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; ID_Continue # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 11380..11389  ; ID_Continue # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; ID_Continue # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; ID_Continue # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; ID_Continue # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; ID_Continue # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113B8..113BA  ; ID_Continue # Mc   [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113BB..113C0  ; ID_Continue # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; ID_Continue # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; ID_Continue # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA  ; ID_Continue # Mc   [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; ID_Continue # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113CE         ; ID_Continue # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; ID_Continue # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; ID_Continue # Mn       TULU-TIGALARI CONJOINER
+ 113D1         ; ID_Continue # Lo       TULU-TIGALARI REPHA
+ 113D2         ; ID_Continue # Mn       TULU-TIGALARI GEMINATION MARK
+ 113D3         ; ID_Continue # Lo       TULU-TIGALARI SIGN PLUTA
+ 113E1..113E2  ; ID_Continue # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11400..11434  ; ID_Continue # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437  ; ID_Continue # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11438..1143F  ; ID_Continue # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7929,7936 ****
  116B7         ; ID_Continue # Mn       TAKRI SIGN NUKTA
  116B8         ; ID_Continue # Lo       TAKRI LETTER ARCHAIC KHA
  116C0..116C9  ; ID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
  11700..1171A  ; ID_Continue # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F  ; ID_Continue # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; ID_Continue # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; ID_Continue # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; ID_Continue # Mc       AHOM VOWEL SIGN E
--- 8060,8070 ----
  116B7         ; ID_Continue # Mn       TAKRI SIGN NUKTA
  116B8         ; ID_Continue # Lo       TAKRI LETTER ARCHAIC KHA
  116C0..116C9  ; ID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+ 116D0..116E3  ; ID_Continue # Nd  [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
  11700..1171A  ; ID_Continue # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D         ; ID_Continue # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171E         ; ID_Continue # Mc       AHOM CONSONANT SIGN MEDIAL RA
! 1171F         ; ID_Continue # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; ID_Continue # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; ID_Continue # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; ID_Continue # Mc       AHOM VOWEL SIGN E
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7988,7993 ****
--- 8122,8129 ----
  11A98..11A99  ; ID_Continue # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
  11A9D         ; ID_Continue # Lo       SOYOMBO MARK PLUTA
  11AB0..11AF8  ; ID_Continue # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; ID_Continue # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
+ 11BF0..11BF9  ; ID_Continue # Nd  [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
  11C00..11C08  ; ID_Continue # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; ID_Continue # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C2F         ; ID_Continue # Mc       BHAIKSUKI VOWEL SIGN AA
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8041,8046 ****
--- 8177,8183 ----
  11F41         ; ID_Continue # Mc       KAWI SIGN KILLER
  11F42         ; ID_Continue # Mn       KAWI CONJOINER
  11F50..11F59  ; ID_Continue # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+ 11F5A         ; ID_Continue # Mn       KAWI SIGN NUKTA
  11FB0         ; ID_Continue # Lo       LISU LETTER YHA
  12000..12399  ; ID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
  12400..1246E  ; ID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8050,8056 ****
--- 8187,8199 ----
  13440         ; ID_Continue # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13441..13446  ; ID_Continue # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
  13447..13455  ; ID_Continue # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 13460..143FA  ; ID_Continue # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; ID_Continue # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; ID_Continue # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 1611E..16129  ; ID_Continue # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612A..1612C  ; ID_Continue # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 1612D..1612F  ; ID_Continue # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
+ 16130..16139  ; ID_Continue # Nd  [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
  16800..16A38  ; ID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; ID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A60..16A69  ; ID_Continue # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8064,8069 ****
--- 8207,8216 ----
  16B50..16B59  ; ID_Continue # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
  16B63..16B77  ; ID_Continue # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; ID_Continue # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; ID_Continue # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; ID_Continue # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; ID_Continue # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
+ 16D70..16D79  ; ID_Continue # Nd  [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
  16E40..16E7F  ; ID_Continue # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16F00..16F4A  ; ID_Continue # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; ID_Continue # Mn       MIAO SIGN CONSONANT MODIFIER BAR
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8077,8083 ****
  16FF0..16FF1  ; ID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; ID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; ID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; ID_Continue # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; ID_Continue # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; ID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; ID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 8224,8230 ----
  16FF0..16FF1  ; ID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; ID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; ID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; ID_Continue # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; ID_Continue # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; ID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; ID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8092,8097 ****
--- 8239,8245 ----
  1BC80..1BC88  ; ID_Continue # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
  1BC90..1BC99  ; ID_Continue # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
  1BC9D..1BC9E  ; ID_Continue # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+ 1CCF0..1CCF9  ; ID_Continue # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
  1CF00..1CF2D  ; ID_Continue # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; ID_Continue # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
  1D165..1D166  ; ID_Continue # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8163,8168 ****
--- 8311,8320 ----
  1E4EB         ; ID_Continue # Lm       NAG MUNDARI SIGN OJOD
  1E4EC..1E4EF  ; ID_Continue # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E4F0..1E4F9  ; ID_Continue # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+ 1E5D0..1E5ED  ; ID_Continue # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5EE..1E5EF  ; ID_Continue # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
+ 1E5F0         ; ID_Continue # Lo       OL ONAL SIGN HODDOND
+ 1E5F1..1E5FA  ; ID_Continue # Nd  [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
  1E7E0..1E7E6  ; ID_Continue # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; ID_Continue # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; ID_Continue # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8218,8224 ****
  31350..323AF  ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 140108
  
  # ================================================
  
--- 8370,8376 ----
  31350..323AF  ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 144541
  
  # ================================================
  
*************** E0100..E01EF  ; ID_Continue # Mn [240] V
*** 8474,8480 ****
  1C4D..1C4F    ; XID_Start # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; XID_Start # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; XID_Start # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C88    ; XID_Start # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; XID_Start # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; XID_Start # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; XID_Start # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
--- 8626,8632 ----
  1C4D..1C4F    ; XID_Start # Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
  1C5A..1C77    ; XID_Start # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; XID_Start # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C8A    ; XID_Start # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; XID_Start # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; XID_Start # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CE9..1CEC    ; XID_Start # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
*************** A771..A787    ; XID_Start # L&  [23] LAT
*** 8590,8599 ****
  A788          ; XID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; XID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; XID_Start # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; XID_Start # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; XID_Start # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; XID_Start # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; XID_Start # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; XID_Start # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; XID_Start # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; XID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 8742,8751 ----
  A788          ; XID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; XID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; XID_Start # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; XID_Start # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; XID_Start # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; XID_Start # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; XID_Start # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; XID_Start # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; XID_Start # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; XID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8717,8722 ****
--- 8869,8875 ----
  105A3..105B1  ; XID_Start # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; XID_Start # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; XID_Start # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; XID_Start # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; XID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; XID_Start # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; XID_Start # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8753,8760 ****
--- 8906,8920 ----
  10C80..10CB2  ; XID_Start # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
  10CC0..10CF2  ; XID_Start # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
  10D00..10D23  ; XID_Start # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+ 10D4A..10D4D  ; XID_Start # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; XID_Start # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; XID_Start # Lo       GARAY SUKUN
+ 10D50..10D65  ; XID_Start # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D6F         ; XID_Start # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; XID_Start # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  10E80..10EA9  ; XID_Start # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EB0..10EB1  ; XID_Start # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+ 10EC2..10EC4  ; XID_Start # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
  10F00..10F1C  ; XID_Start # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; XID_Start # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; XID_Start # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8793,8798 ****
--- 8953,8965 ----
  1133D         ; XID_Start # Lo       GRANTHA SIGN AVAGRAHA
  11350         ; XID_Start # Lo       GRANTHA OM
  1135D..11361  ; XID_Start # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+ 11380..11389  ; XID_Start # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; XID_Start # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; XID_Start # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; XID_Start # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; XID_Start # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113D1         ; XID_Start # Lo       TULU-TIGALARI REPHA
+ 113D3         ; XID_Start # Lo       TULU-TIGALARI SIGN PLUTA
  11400..11434  ; XID_Start # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11447..1144A  ; XID_Start # Lo   [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
  1145F..11461  ; XID_Start # Lo   [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8827,8832 ****
--- 8994,9000 ----
  11A5C..11A89  ; XID_Start # Lo  [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
  11A9D         ; XID_Start # Lo       SOYOMBO MARK PLUTA
  11AB0..11AF8  ; XID_Start # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; XID_Start # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
  11C00..11C08  ; XID_Start # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; XID_Start # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C40         ; XID_Start # Lo       BHAIKSUKI SIGN AVAGRAHA
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8850,8856 ****
--- 9018,9026 ----
  12F90..12FF0  ; XID_Start # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
  13000..1342F  ; XID_Start # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
  13441..13446  ; XID_Start # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+ 13460..143FA  ; XID_Start # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; XID_Start # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; XID_Start # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
  16800..16A38  ; XID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; XID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A70..16ABE  ; XID_Start # Lo  [79] TANGSA LETTER OZ..TANGSA LETTER ZA
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8859,8864 ****
--- 9029,9037 ----
  16B40..16B43  ; XID_Start # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
  16B63..16B77  ; XID_Start # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; XID_Start # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; XID_Start # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; XID_Start # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; XID_Start # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
  16E40..16E7F  ; XID_Start # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16F00..16F4A  ; XID_Start # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F50         ; XID_Start # Lo       MIAO LETTER NASALIZATION
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8867,8873 ****
  16FE3         ; XID_Start # Lm       OLD CHINESE ITERATION MARK
  17000..187F7  ; XID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; XID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; XID_Start # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; XID_Start # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; XID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; XID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 9040,9046 ----
  16FE3         ; XID_Start # Lm       OLD CHINESE ITERATION MARK
  17000..187F7  ; XID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; XID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; XID_Start # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; XID_Start # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; XID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; XID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8923,8928 ****
--- 9096,9103 ----
  1E2C0..1E2EB  ; XID_Start # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
  1E4D0..1E4EA  ; XID_Start # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
  1E4EB         ; XID_Start # Lm       NAG MUNDARI SIGN OJOD
+ 1E5D0..1E5ED  ; XID_Start # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5F0         ; XID_Start # Lo       OL ONAL SIGN HODDOND
  1E7E0..1E7E6  ; XID_Start # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; XID_Start # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; XID_Start # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8973,8979 ****
  30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136944
  
  # ================================================
  
--- 9148,9154 ----
  30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 141246
  
  # ================================================
  
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9076,9082 ****
  0860..086A    ; XID_Continue # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; XID_Continue # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0889..088E    ; XID_Continue # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0898..089F    ; XID_Continue # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08A0..08C8    ; XID_Continue # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; XID_Continue # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; XID_Continue # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
--- 9251,9257 ----
  0860..086A    ; XID_Continue # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; XID_Continue # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0889..088E    ; XID_Continue # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0897..089F    ; XID_Continue # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08A0..08C8    ; XID_Continue # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; XID_Continue # Lm       ARABIC SMALL FARSI YEH
  08CA..08E1    ; XID_Continue # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9509,9515 ****
  1C50..1C59    ; XID_Continue # Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
  1C5A..1C77    ; XID_Continue # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; XID_Continue # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C88    ; XID_Continue # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; XID_Continue # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; XID_Continue # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CD0..1CD2    ; XID_Continue # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
--- 9684,9690 ----
  1C50..1C59    ; XID_Continue # Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
  1C5A..1C77    ; XID_Continue # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; XID_Continue # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C80..1C8A    ; XID_Continue # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; XID_Continue # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; XID_Continue # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CD0..1CD2    ; XID_Continue # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
*************** A771..A787    ; XID_Continue # L&  [23]
*** 9652,9661 ****
  A788          ; XID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; XID_Continue # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; XID_Continue # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; XID_Continue # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; XID_Continue # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; XID_Continue # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; XID_Continue # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; XID_Continue # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; XID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 9827,9836 ----
  A788          ; XID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A78B..A78E    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; XID_Continue # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; XID_Continue # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; XID_Continue # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; XID_Continue # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; XID_Continue # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; XID_Continue # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; XID_Continue # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; XID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 9850,9855 ****
--- 10025,10031 ----
  105A3..105B1  ; XID_Continue # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; XID_Continue # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; XID_Continue # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; XID_Continue # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; XID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; XID_Continue # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; XID_Continue # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 9894,9903 ****
  10D00..10D23  ; XID_Continue # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; XID_Continue # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39  ; XID_Continue # Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
  10E80..10EA9  ; XID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC  ; XID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EB0..10EB1  ; XID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EFD..10EFF  ; XID_Continue # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C  ; XID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; XID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; XID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
--- 10070,10088 ----
  10D00..10D23  ; XID_Continue # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; XID_Continue # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39  ; XID_Continue # Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+ 10D40..10D49  ; XID_Continue # Nd  [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
+ 10D4A..10D4D  ; XID_Continue # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; XID_Continue # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; XID_Continue # Lo       GARAY SUKUN
+ 10D50..10D65  ; XID_Continue # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D69..10D6D  ; XID_Continue # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
+ 10D6F         ; XID_Continue # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; XID_Continue # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
  10E80..10EA9  ; XID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC  ; XID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EB0..10EB1  ; XID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EC2..10EC4  ; XID_Continue # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
! 10EFC..10EFF  ; XID_Continue # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C  ; XID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F27         ; XID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
  10F30..10F45  ; XID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 9993,9998 ****
--- 10178,10201 ----
  11362..11363  ; XID_Continue # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  11366..1136C  ; XID_Continue # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; XID_Continue # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 11380..11389  ; XID_Continue # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; XID_Continue # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; XID_Continue # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; XID_Continue # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; XID_Continue # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113B8..113BA  ; XID_Continue # Mc   [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113BB..113C0  ; XID_Continue # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; XID_Continue # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; XID_Continue # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA  ; XID_Continue # Mc   [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; XID_Continue # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113CE         ; XID_Continue # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; XID_Continue # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; XID_Continue # Mn       TULU-TIGALARI CONJOINER
+ 113D1         ; XID_Continue # Lo       TULU-TIGALARI REPHA
+ 113D2         ; XID_Continue # Mn       TULU-TIGALARI GEMINATION MARK
+ 113D3         ; XID_Continue # Lo       TULU-TIGALARI SIGN PLUTA
+ 113E1..113E2  ; XID_Continue # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11400..11434  ; XID_Continue # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437  ; XID_Continue # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11438..1143F  ; XID_Continue # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10044,10051 ****
  116B7         ; XID_Continue # Mn       TAKRI SIGN NUKTA
  116B8         ; XID_Continue # Lo       TAKRI LETTER ARCHAIC KHA
  116C0..116C9  ; XID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
  11700..1171A  ; XID_Continue # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F  ; XID_Continue # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; XID_Continue # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; XID_Continue # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; XID_Continue # Mc       AHOM VOWEL SIGN E
--- 10247,10257 ----
  116B7         ; XID_Continue # Mn       TAKRI SIGN NUKTA
  116B8         ; XID_Continue # Lo       TAKRI LETTER ARCHAIC KHA
  116C0..116C9  ; XID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+ 116D0..116E3  ; XID_Continue # Nd  [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
  11700..1171A  ; XID_Continue # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D         ; XID_Continue # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171E         ; XID_Continue # Mc       AHOM CONSONANT SIGN MEDIAL RA
! 1171F         ; XID_Continue # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; XID_Continue # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; XID_Continue # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; XID_Continue # Mc       AHOM VOWEL SIGN E
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10103,10108 ****
--- 10309,10316 ----
  11A98..11A99  ; XID_Continue # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
  11A9D         ; XID_Continue # Lo       SOYOMBO MARK PLUTA
  11AB0..11AF8  ; XID_Continue # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; XID_Continue # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
+ 11BF0..11BF9  ; XID_Continue # Nd  [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
  11C00..11C08  ; XID_Continue # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; XID_Continue # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C2F         ; XID_Continue # Mc       BHAIKSUKI VOWEL SIGN AA
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10156,10161 ****
--- 10364,10370 ----
  11F41         ; XID_Continue # Mc       KAWI SIGN KILLER
  11F42         ; XID_Continue # Mn       KAWI CONJOINER
  11F50..11F59  ; XID_Continue # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+ 11F5A         ; XID_Continue # Mn       KAWI SIGN NUKTA
  11FB0         ; XID_Continue # Lo       LISU LETTER YHA
  12000..12399  ; XID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
  12400..1246E  ; XID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10165,10171 ****
--- 10374,10386 ----
  13440         ; XID_Continue # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13441..13446  ; XID_Continue # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
  13447..13455  ; XID_Continue # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 13460..143FA  ; XID_Continue # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; XID_Continue # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; XID_Continue # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 1611E..16129  ; XID_Continue # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612A..1612C  ; XID_Continue # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 1612D..1612F  ; XID_Continue # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
+ 16130..16139  ; XID_Continue # Nd  [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
  16800..16A38  ; XID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; XID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A60..16A69  ; XID_Continue # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10179,10184 ****
--- 10394,10403 ----
  16B50..16B59  ; XID_Continue # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
  16B63..16B77  ; XID_Continue # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; XID_Continue # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; XID_Continue # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; XID_Continue # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; XID_Continue # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
+ 16D70..16D79  ; XID_Continue # Nd  [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
  16E40..16E7F  ; XID_Continue # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16F00..16F4A  ; XID_Continue # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; XID_Continue # Mn       MIAO SIGN CONSONANT MODIFIER BAR
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10192,10198 ****
  16FF0..16FF1  ; XID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; XID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; XID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; XID_Continue # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; XID_Continue # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; XID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; XID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 10411,10417 ----
  16FF0..16FF1  ; XID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; XID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; XID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; XID_Continue # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; XID_Continue # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; XID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; XID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10207,10212 ****
--- 10426,10432 ----
  1BC80..1BC88  ; XID_Continue # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
  1BC90..1BC99  ; XID_Continue # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
  1BC9D..1BC9E  ; XID_Continue # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+ 1CCF0..1CCF9  ; XID_Continue # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
  1CF00..1CF2D  ; XID_Continue # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; XID_Continue # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
  1D165..1D166  ; XID_Continue # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10278,10283 ****
--- 10498,10507 ----
  1E4EB         ; XID_Continue # Lm       NAG MUNDARI SIGN OJOD
  1E4EC..1E4EF  ; XID_Continue # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E4F0..1E4F9  ; XID_Continue # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+ 1E5D0..1E5ED  ; XID_Continue # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5EE..1E5EF  ; XID_Continue # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
+ 1E5F0         ; XID_Continue # Lo       OL ONAL SIGN HODDOND
+ 1E5F1..1E5FA  ; XID_Continue # Nd  [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
  1E7E0..1E7E6  ; XID_Continue # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; XID_Continue # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; XID_Continue # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10333,10339 ****
  31350..323AF  ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 140089
  
  # ================================================
  
--- 10557,10563 ----
  31350..323AF  ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 144522
  
  # ================================================
  
*************** E01F0..E0FFF  ; Default_Ignorable_Code_P
*** 10418,10424 ****
  0825..0827    ; Grapheme_Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; Grapheme_Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; Grapheme_Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0898..089F    ; Grapheme_Extend # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; Grapheme_Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E3..0902    ; Grapheme_Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
  093A          ; Grapheme_Extend # Mn       DEVANAGARI VOWEL SIGN OE
--- 10642,10648 ----
  0825..0827    ; Grapheme_Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; Grapheme_Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; Grapheme_Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0897..089F    ; Grapheme_Extend # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; Grapheme_Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E3..0902    ; Grapheme_Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
  093A          ; Grapheme_Extend # Mn       DEVANAGARI VOWEL SIGN OE
*************** E01F0..E0FFF  ; Default_Ignorable_Code_P
*** 10475,10482 ****
--- 10699,10709 ----
  0C81          ; Grapheme_Extend # Mn       KANNADA SIGN CANDRABINDU
  0CBC          ; Grapheme_Extend # Mn       KANNADA SIGN NUKTA
  0CBF          ; Grapheme_Extend # Mn       KANNADA VOWEL SIGN I
+ 0CC0          ; Grapheme_Extend # Mc       KANNADA VOWEL SIGN II
  0CC2          ; Grapheme_Extend # Mc       KANNADA VOWEL SIGN UU
  0CC6          ; Grapheme_Extend # Mn       KANNADA VOWEL SIGN E
+ 0CC7..0CC8    ; Grapheme_Extend # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; Grapheme_Extend # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; Grapheme_Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; Grapheme_Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
  0CE2..0CE3    ; Grapheme_Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
*************** E01F0..E0FFF  ; Default_Ignorable_Code_P
*** 10522,10528 ****
--- 10749,10757 ----
  109D          ; Grapheme_Extend # Mn       MYANMAR VOWEL SIGN AITON AI
  135D..135F    ; Grapheme_Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
  1712..1714    ; Grapheme_Extend # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+ 1715          ; Grapheme_Extend # Mc       TAGALOG SIGN PAMUDPOD
  1732..1733    ; Grapheme_Extend # Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+ 1734          ; Grapheme_Extend # Mc       HANUNOO SIGN PAMUDPOD
  1752..1753    ; Grapheme_Extend # Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
  1772..1773    ; Grapheme_Extend # Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
  17B4..17B5    ; Grapheme_Extend # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
*************** E01F0..E0FFF  ; Default_Ignorable_Code_P
*** 10554,10570 ****
--- 10783,10804 ----
  1B34          ; Grapheme_Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Grapheme_Extend # Mc       BALINESE VOWEL SIGN TEDUNG
  1B36..1B3A    ; Grapheme_Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+ 1B3B          ; Grapheme_Extend # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
  1B3C          ; Grapheme_Extend # Mn       BALINESE VOWEL SIGN LA LENGA
+ 1B3D          ; Grapheme_Extend # Mc       BALINESE VOWEL SIGN LA LENGA TEDUNG
  1B42          ; Grapheme_Extend # Mn       BALINESE VOWEL SIGN PEPET
+ 1B43..1B44    ; Grapheme_Extend # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B6B..1B73    ; Grapheme_Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  1B80..1B81    ; Grapheme_Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
  1BA2..1BA5    ; Grapheme_Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
  1BA8..1BA9    ; Grapheme_Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+ 1BAA          ; Grapheme_Extend # Mc       SUNDANESE SIGN PAMAAEH
  1BAB..1BAD    ; Grapheme_Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
  1BE6          ; Grapheme_Extend # Mn       BATAK SIGN TOMPI
  1BE8..1BE9    ; Grapheme_Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
  1BED          ; Grapheme_Extend # Mn       BATAK VOWEL SIGN KARO O
  1BEF..1BF1    ; Grapheme_Extend # Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+ 1BF2..1BF3    ; Grapheme_Extend # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  1C2C..1C33    ; Grapheme_Extend # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
  1C36..1C37    ; Grapheme_Extend # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
  1CD0..1CD2    ; Grapheme_Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
*************** A8E0..A8F1    ; Grapheme_Extend # Mn  [1
*** 10601,10610 ****
--- 10835,10846 ----
  A8FF          ; Grapheme_Extend # Mn       DEVANAGARI VOWEL SIGN AY
  A926..A92D    ; Grapheme_Extend # Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
  A947..A951    ; Grapheme_Extend # Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+ A953          ; Grapheme_Extend # Mc       REJANG VIRAMA
  A980..A982    ; Grapheme_Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
  A9B3          ; Grapheme_Extend # Mn       JAVANESE SIGN CECAK TELU
  A9B6..A9B9    ; Grapheme_Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
  A9BC..A9BD    ; Grapheme_Extend # Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+ A9C0          ; Grapheme_Extend # Mc       JAVANESE PANGKON
  A9E5          ; Grapheme_Extend # Mn       MYANMAR SIGN SHAN SAW
  AA29..AA2E    ; Grapheme_Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
  AA31..AA32    ; Grapheme_Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10636,10643 ****
  10A3F         ; Grapheme_Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Grapheme_Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Grapheme_Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10EAB..10EAC  ; Grapheme_Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFD..10EFF  ; Grapheme_Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Grapheme_Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Grapheme_Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Grapheme_Extend # Mn       BRAHMI SIGN ANUSVARA
--- 10872,10880 ----
  10A3F         ; Grapheme_Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Grapheme_Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Grapheme_Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D69..10D6D  ; Grapheme_Extend # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
  10EAB..10EAC  ; Grapheme_Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFC..10EFF  ; Grapheme_Extend # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Grapheme_Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Grapheme_Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Grapheme_Extend # Mn       BRAHMI SIGN ANUSVARA
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10654,10663 ****
--- 10891,10902 ----
  11173         ; Grapheme_Extend # Mn       MAHAJANI SIGN NUKTA
  11180..11181  ; Grapheme_Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
  111B6..111BE  ; Grapheme_Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+ 111C0         ; Grapheme_Extend # Mc       SHARADA SIGN VIRAMA
  111C9..111CC  ; Grapheme_Extend # Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
  111CF         ; Grapheme_Extend # Mn       SHARADA SIGN INVERTED CANDRABINDU
  1122F..11231  ; Grapheme_Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
  11234         ; Grapheme_Extend # Mn       KHOJKI SIGN ANUSVARA
+ 11235         ; Grapheme_Extend # Mc       KHOJKI SIGN VIRAMA
  11236..11237  ; Grapheme_Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
  1123E         ; Grapheme_Extend # Mn       KHOJKI SIGN SUKUN
  11241         ; Grapheme_Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10667,10675 ****
--- 10906,10925 ----
  1133B..1133C  ; Grapheme_Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
  1133E         ; Grapheme_Extend # Mc       GRANTHA VOWEL SIGN AA
  11340         ; Grapheme_Extend # Mn       GRANTHA VOWEL SIGN II
+ 1134D         ; Grapheme_Extend # Mc       GRANTHA SIGN VIRAMA
  11357         ; Grapheme_Extend # Mc       GRANTHA AU LENGTH MARK
  11366..1136C  ; Grapheme_Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; Grapheme_Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113B8         ; Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113BB..113C0  ; Grapheme_Extend # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; Grapheme_Extend # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
+ 113CE         ; Grapheme_Extend # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; Grapheme_Extend # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; Grapheme_Extend # Mn       TULU-TIGALARI CONJOINER
+ 113D2         ; Grapheme_Extend # Mn       TULU-TIGALARI GEMINATION MARK
+ 113E1..113E2  ; Grapheme_Extend # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11438..1143F  ; Grapheme_Extend # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
  11442..11444  ; Grapheme_Extend # Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
  11446         ; Grapheme_Extend # Mn       NEWA SIGN NUKTA
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10691,10704 ****
  116AB         ; Grapheme_Extend # Mn       TAKRI SIGN ANUSVARA
  116AD         ; Grapheme_Extend # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Grapheme_Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B7         ; Grapheme_Extend # Mn       TAKRI SIGN NUKTA
! 1171D..1171F  ; Grapheme_Extend # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Grapheme_Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Grapheme_Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Grapheme_Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
  11839..1183A  ; Grapheme_Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
  11930         ; Grapheme_Extend # Mc       DIVES AKURU VOWEL SIGN AA
  1193B..1193C  ; Grapheme_Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
  1193E         ; Grapheme_Extend # Mn       DIVES AKURU VIRAMA
  11943         ; Grapheme_Extend # Mn       DIVES AKURU SIGN NUKTA
  119D4..119D7  ; Grapheme_Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
--- 10941,10957 ----
  116AB         ; Grapheme_Extend # Mn       TAKRI SIGN ANUSVARA
  116AD         ; Grapheme_Extend # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Grapheme_Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+ 116B6         ; Grapheme_Extend # Mc       TAKRI SIGN VIRAMA
  116B7         ; Grapheme_Extend # Mn       TAKRI SIGN NUKTA
! 1171D         ; Grapheme_Extend # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171F         ; Grapheme_Extend # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Grapheme_Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Grapheme_Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Grapheme_Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
  11839..1183A  ; Grapheme_Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
  11930         ; Grapheme_Extend # Mc       DIVES AKURU VOWEL SIGN AA
  1193B..1193C  ; Grapheme_Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+ 1193D         ; Grapheme_Extend # Mc       DIVES AKURU SIGN HALANTA
  1193E         ; Grapheme_Extend # Mn       DIVES AKURU VIRAMA
  11943         ; Grapheme_Extend # Mn       DIVES AKURU SIGN NUKTA
  119D4..119D7  ; Grapheme_Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10731,10750 ****
  11F00..11F01  ; Grapheme_Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
  11F36..11F3A  ; Grapheme_Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F40         ; Grapheme_Extend # Mn       KAWI VOWEL SIGN EU
  11F42         ; Grapheme_Extend # Mn       KAWI CONJOINER
  13440         ; Grapheme_Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13447..13455  ; Grapheme_Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
  16AF0..16AF4  ; Grapheme_Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Grapheme_Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  16F4F         ; Grapheme_Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F8F..16F92  ; Grapheme_Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16FE4         ; Grapheme_Extend # Mn       KHITAN SMALL SCRIPT FILLER
  1BC9D..1BC9E  ; Grapheme_Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  1CF00..1CF2D  ; Grapheme_Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; Grapheme_Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1D165         ; Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
  1D167..1D169  ; Grapheme_Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16E..1D172  ; Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; Grapheme_Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; Grapheme_Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; Grapheme_Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
--- 10984,11008 ----
  11F00..11F01  ; Grapheme_Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
  11F36..11F3A  ; Grapheme_Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F40         ; Grapheme_Extend # Mn       KAWI VOWEL SIGN EU
+ 11F41         ; Grapheme_Extend # Mc       KAWI SIGN KILLER
  11F42         ; Grapheme_Extend # Mn       KAWI CONJOINER
+ 11F5A         ; Grapheme_Extend # Mn       KAWI SIGN NUKTA
  13440         ; Grapheme_Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13447..13455  ; Grapheme_Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1611E..16129  ; Grapheme_Extend # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612D..1612F  ; Grapheme_Extend # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
  16AF0..16AF4  ; Grapheme_Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Grapheme_Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  16F4F         ; Grapheme_Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F8F..16F92  ; Grapheme_Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16FE4         ; Grapheme_Extend # Mn       KHITAN SMALL SCRIPT FILLER
+ 16FF0..16FF1  ; Grapheme_Extend # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  1BC9D..1BC9E  ; Grapheme_Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  1CF00..1CF2D  ; Grapheme_Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; Grapheme_Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1D165..1D166  ; Grapheme_Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
  1D167..1D169  ; Grapheme_Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16D..1D172  ; Grapheme_Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; Grapheme_Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; Grapheme_Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; Grapheme_Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10765,10776 ****
  1E2AE         ; Grapheme_Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Grapheme_Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; Grapheme_Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E8D0..1E8D6  ; Grapheme_Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; Grapheme_Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  E0020..E007F  ; Grapheme_Extend # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2125
  
  # ================================================
  
--- 11023,11035 ----
  1E2AE         ; Grapheme_Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Grapheme_Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; Grapheme_Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E5EE..1E5EF  ; Grapheme_Extend # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
  1E8D0..1E8D6  ; Grapheme_Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; Grapheme_Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  E0020..E007F  ; Grapheme_Extend # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2193
  
  # ================================================
  
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11062,11071 ****
  0CB5..0CB9    ; Grapheme_Base # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; Grapheme_Base # Lo       KANNADA SIGN AVAGRAHA
  0CBE          ; Grapheme_Base # Mc       KANNADA VOWEL SIGN AA
! 0CC0..0CC1    ; Grapheme_Base # Mc   [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
  0CC3..0CC4    ; Grapheme_Base # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
- 0CC7..0CC8    ; Grapheme_Base # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
- 0CCA..0CCB    ; Grapheme_Base # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CDD..0CDE    ; Grapheme_Base # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; Grapheme_Base # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE6..0CEF    ; Grapheme_Base # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
--- 11321,11328 ----
  0CB5..0CB9    ; Grapheme_Base # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; Grapheme_Base # Lo       KANNADA SIGN AVAGRAHA
  0CBE          ; Grapheme_Base # Mc       KANNADA VOWEL SIGN AA
! 0CC1          ; Grapheme_Base # Mc       KANNADA VOWEL SIGN U
  0CC3..0CC4    ; Grapheme_Base # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
  0CDD..0CDE    ; Grapheme_Base # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; Grapheme_Base # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE6..0CEF    ; Grapheme_Base # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11214,11222 ****
  16EE..16F0    ; Grapheme_Base # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
  16F1..16F8    ; Grapheme_Base # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
  1700..1711    ; Grapheme_Base # Lo  [18] TAGALOG LETTER A..TAGALOG LETTER HA
- 1715          ; Grapheme_Base # Mc       TAGALOG SIGN PAMUDPOD
  171F..1731    ; Grapheme_Base # Lo  [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
- 1734          ; Grapheme_Base # Mc       HANUNOO SIGN PAMUDPOD
  1735..1736    ; Grapheme_Base # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
  1740..1751    ; Grapheme_Base # Lo  [18] BUHID LETTER A..BUHID LETTER HA
  1760..176C    ; Grapheme_Base # Lo  [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
--- 11471,11477 ----
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11274,11300 ****
  1AA8..1AAD    ; Grapheme_Base # Po   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
  1B04          ; Grapheme_Base # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; Grapheme_Base # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
! 1B3B          ; Grapheme_Base # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
! 1B3D..1B41    ; Grapheme_Base # Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
! 1B43..1B44    ; Grapheme_Base # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B45..1B4C    ; Grapheme_Base # Lo   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
  1B50..1B59    ; Grapheme_Base # Nd  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
  1B5A..1B60    ; Grapheme_Base # Po   [7] BALINESE PANTI..BALINESE PAMENENG
  1B61..1B6A    ; Grapheme_Base # So  [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
  1B74..1B7C    ; Grapheme_Base # So   [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7E    ; Grapheme_Base # Po   [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
  1B82          ; Grapheme_Base # Mc       SUNDANESE SIGN PANGWISAD
  1B83..1BA0    ; Grapheme_Base # Lo  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
  1BA1          ; Grapheme_Base # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
  1BA6..1BA7    ; Grapheme_Base # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
- 1BAA          ; Grapheme_Base # Mc       SUNDANESE SIGN PAMAAEH
  1BAE..1BAF    ; Grapheme_Base # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
  1BB0..1BB9    ; Grapheme_Base # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
  1BBA..1BE5    ; Grapheme_Base # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
  1BE7          ; Grapheme_Base # Mc       BATAK VOWEL SIGN E
  1BEA..1BEC    ; Grapheme_Base # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
  1BEE          ; Grapheme_Base # Mc       BATAK VOWEL SIGN U
- 1BF2..1BF3    ; Grapheme_Base # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  1BFC..1BFF    ; Grapheme_Base # Po   [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
  1C00..1C23    ; Grapheme_Base # Lo  [36] LEPCHA LETTER KA..LEPCHA LETTER A
  1C24..1C2B    ; Grapheme_Base # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
--- 11529,11552 ----
  1AA8..1AAD    ; Grapheme_Base # Po   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
  1B04          ; Grapheme_Base # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; Grapheme_Base # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
! 1B3E..1B41    ; Grapheme_Base # Mc   [4] BALINESE VOWEL SIGN TALING..BALINESE VOWEL SIGN TALING REPA TEDUNG
  1B45..1B4C    ; Grapheme_Base # Lo   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+ 1B4E..1B4F    ; Grapheme_Base # Po   [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
  1B50..1B59    ; Grapheme_Base # Nd  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
  1B5A..1B60    ; Grapheme_Base # Po   [7] BALINESE PANTI..BALINESE PAMENENG
  1B61..1B6A    ; Grapheme_Base # So  [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
  1B74..1B7C    ; Grapheme_Base # So   [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7F    ; Grapheme_Base # Po   [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
  1B82          ; Grapheme_Base # Mc       SUNDANESE SIGN PANGWISAD
  1B83..1BA0    ; Grapheme_Base # Lo  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
  1BA1          ; Grapheme_Base # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
  1BA6..1BA7    ; Grapheme_Base # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
  1BAE..1BAF    ; Grapheme_Base # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
  1BB0..1BB9    ; Grapheme_Base # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
  1BBA..1BE5    ; Grapheme_Base # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
  1BE7          ; Grapheme_Base # Mc       BATAK VOWEL SIGN E
  1BEA..1BEC    ; Grapheme_Base # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
  1BEE          ; Grapheme_Base # Mc       BATAK VOWEL SIGN U
  1BFC..1BFF    ; Grapheme_Base # Po   [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
  1C00..1C23    ; Grapheme_Base # Lo  [36] LEPCHA LETTER KA..LEPCHA LETTER A
  1C24..1C2B    ; Grapheme_Base # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11306,11312 ****
  1C5A..1C77    ; Grapheme_Base # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; Grapheme_Base # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
  1C7E..1C7F    ; Grapheme_Base # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C88    ; Grapheme_Base # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Grapheme_Base # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Grapheme_Base # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CC0..1CC7    ; Grapheme_Base # Po   [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
--- 11558,11564 ----
  1C5A..1C77    ; Grapheme_Base # Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D    ; Grapheme_Base # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
  1C7E..1C7F    ; Grapheme_Base # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C8A    ; Grapheme_Base # L&  [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA    ; Grapheme_Base # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Grapheme_Base # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CC0..1CC7    ; Grapheme_Base # Po   [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11461,11467 ****
  239B..23B3    ; Grapheme_Base # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
  23B4..23DB    ; Grapheme_Base # So  [40] TOP SQUARE BRACKET..FUSE
  23DC..23E1    ; Grapheme_Base # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..2426    ; Grapheme_Base # So  [69] WHITE TRAPEZIUM..SYMBOL FOR SUBSTITUTE FORM TWO
  2440..244A    ; Grapheme_Base # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
  2460..249B    ; Grapheme_Base # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
  249C..24E9    ; Grapheme_Base # So  [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
--- 11713,11719 ----
  239B..23B3    ; Grapheme_Base # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
  23B4..23DB    ; Grapheme_Base # So  [40] TOP SQUARE BRACKET..FUSE
  23DC..23E1    ; Grapheme_Base # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..2429    ; Grapheme_Base # So  [72] WHITE TRAPEZIUM..SYMBOL FOR DELETE MEDIUM SHADE FORM
  2440..244A    ; Grapheme_Base # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
  2460..249B    ; Grapheme_Base # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
  249C..24E9    ; Grapheme_Base # So  [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11676,11682 ****
  3192..3195    ; Grapheme_Base # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
  3196..319F    ; Grapheme_Base # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
  31A0..31BF    ; Grapheme_Base # Lo  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E3    ; Grapheme_Base # So  [36] CJK STROKE T..CJK STROKE Q
  31EF          ; Grapheme_Base # So       IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  31F0..31FF    ; Grapheme_Base # Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
  3200..321E    ; Grapheme_Base # So  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
--- 11928,11934 ----
  3192..3195    ; Grapheme_Base # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
  3196..319F    ; Grapheme_Base # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
  31A0..31BF    ; Grapheme_Base # Lo  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E5    ; Grapheme_Base # So  [38] CJK STROKE T..CJK STROKE SZP
  31EF          ; Grapheme_Base # So       IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  31F0..31FF    ; Grapheme_Base # Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
  3200..321E    ; Grapheme_Base # So  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
*************** A788          ; Grapheme_Base # Lm
*** 11725,11734 ****
  A789..A78A    ; Grapheme_Base # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
  A78B..A78E    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; Grapheme_Base # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CA    ; Grapheme_Base # L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1    ; Grapheme_Base # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Grapheme_Base # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9    ; Grapheme_Base # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4    ; Grapheme_Base # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Grapheme_Base # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; Grapheme_Base # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 11977,11986 ----
  A789..A78A    ; Grapheme_Base # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
  A78B..A78E    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F          ; Grapheme_Base # Lo       LATIN LETTER SINOLOGICAL DOT
! A790..A7CD    ; Grapheme_Base # L&  [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1    ; Grapheme_Base # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Grapheme_Base # L&       LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC    ; Grapheme_Base # L&   [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; Grapheme_Base # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6    ; Grapheme_Base # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7          ; Grapheme_Base # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** A900..A909    ; Grapheme_Base # Nd  [10]
*** 11761,11774 ****
  A90A..A925    ; Grapheme_Base # Lo  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
  A92E..A92F    ; Grapheme_Base # Po   [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
  A930..A946    ; Grapheme_Base # Lo  [23] REJANG LETTER KA..REJANG LETTER A
! A952..A953    ; Grapheme_Base # Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
  A95F          ; Grapheme_Base # Po       REJANG SECTION MARK
  A960..A97C    ; Grapheme_Base # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
  A983          ; Grapheme_Base # Mc       JAVANESE SIGN WIGNYAN
  A984..A9B2    ; Grapheme_Base # Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA
  A9B4..A9B5    ; Grapheme_Base # Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
  A9BA..A9BB    ; Grapheme_Base # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BE..A9C0    ; Grapheme_Base # Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
  A9C1..A9CD    ; Grapheme_Base # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
  A9CF          ; Grapheme_Base # Lm       JAVANESE PANGRANGKEP
  A9D0..A9D9    ; Grapheme_Base # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
--- 12013,12026 ----
  A90A..A925    ; Grapheme_Base # Lo  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
  A92E..A92F    ; Grapheme_Base # Po   [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
  A930..A946    ; Grapheme_Base # Lo  [23] REJANG LETTER KA..REJANG LETTER A
! A952          ; Grapheme_Base # Mc       REJANG CONSONANT SIGN H
  A95F          ; Grapheme_Base # Po       REJANG SECTION MARK
  A960..A97C    ; Grapheme_Base # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
  A983          ; Grapheme_Base # Mc       JAVANESE SIGN WIGNYAN
  A984..A9B2    ; Grapheme_Base # Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA
  A9B4..A9B5    ; Grapheme_Base # Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
  A9BA..A9BB    ; Grapheme_Base # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BE..A9BF    ; Grapheme_Base # Mc   [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
  A9C1..A9CD    ; Grapheme_Base # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
  A9CF          ; Grapheme_Base # Lm       JAVANESE PANGRANGKEP
  A9D0..A9D9    ; Grapheme_Base # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12000,12005 ****
--- 12252,12258 ----
  105A3..105B1  ; Grapheme_Base # L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9  ; Grapheme_Base # L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC  ; Grapheme_Base # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3  ; Grapheme_Base # Lo  [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736  ; Grapheme_Base # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755  ; Grapheme_Base # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767  ; Grapheme_Base # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12063,12072 ****
--- 12316,12335 ----
  10CFA..10CFF  ; Grapheme_Base # No   [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
  10D00..10D23  ; Grapheme_Base # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D30..10D39  ; Grapheme_Base # Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+ 10D40..10D49  ; Grapheme_Base # Nd  [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
+ 10D4A..10D4D  ; Grapheme_Base # Lo   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E         ; Grapheme_Base # Lm       GARAY VOWEL LENGTH MARK
+ 10D4F         ; Grapheme_Base # Lo       GARAY SUKUN
+ 10D50..10D65  ; Grapheme_Base # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D6E         ; Grapheme_Base # Pd       GARAY HYPHEN
+ 10D6F         ; Grapheme_Base # Lm       GARAY REDUPLICATION MARK
+ 10D70..10D85  ; Grapheme_Base # L&  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
+ 10D8E..10D8F  ; Grapheme_Base # Sm   [2] GARAY PLUS SIGN..GARAY MINUS SIGN
  10E60..10E7E  ; Grapheme_Base # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
  10E80..10EA9  ; Grapheme_Base # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAD         ; Grapheme_Base # Pd       YEZIDI HYPHENATION MARK
  10EB0..10EB1  ; Grapheme_Base # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+ 10EC2..10EC4  ; Grapheme_Base # Lo   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
  10F00..10F1C  ; Grapheme_Base # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F1D..10F26  ; Grapheme_Base # No  [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
  10F27         ; Grapheme_Base # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12107,12113 ****
  11182         ; Grapheme_Base # Mc       SHARADA SIGN VISARGA
  11183..111B2  ; Grapheme_Base # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
  111B3..111B5  ; Grapheme_Base # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111BF..111C0  ; Grapheme_Base # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
  111C1..111C4  ; Grapheme_Base # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
  111C5..111C8  ; Grapheme_Base # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
  111CD         ; Grapheme_Base # Po       SHARADA SUTRA MARK
--- 12370,12376 ----
  11182         ; Grapheme_Base # Mc       SHARADA SIGN VISARGA
  11183..111B2  ; Grapheme_Base # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
  111B3..111B5  ; Grapheme_Base # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111BF         ; Grapheme_Base # Mc       SHARADA VOWEL SIGN AU
  111C1..111C4  ; Grapheme_Base # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
  111C5..111C8  ; Grapheme_Base # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
  111CD         ; Grapheme_Base # Po       SHARADA SUTRA MARK
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12122,12128 ****
  11213..1122B  ; Grapheme_Base # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
  1122C..1122E  ; Grapheme_Base # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
  11232..11233  ; Grapheme_Base # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
- 11235         ; Grapheme_Base # Mc       KHOJKI SIGN VIRAMA
  11238..1123D  ; Grapheme_Base # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
  1123F..11240  ; Grapheme_Base # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
  11280..11286  ; Grapheme_Base # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
--- 12385,12390 ----
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12145,12154 ****
  1133F         ; Grapheme_Base # Mc       GRANTHA VOWEL SIGN I
  11341..11344  ; Grapheme_Base # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
  11347..11348  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134D  ; Grapheme_Base # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
  11350         ; Grapheme_Base # Lo       GRANTHA OM
  1135D..11361  ; Grapheme_Base # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
  11362..11363  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  11400..11434  ; Grapheme_Base # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437  ; Grapheme_Base # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11440..11441  ; Grapheme_Base # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
--- 12407,12428 ----
  1133F         ; Grapheme_Base # Mc       GRANTHA VOWEL SIGN I
  11341..11344  ; Grapheme_Base # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
  11347..11348  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134C  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
  11350         ; Grapheme_Base # Lo       GRANTHA OM
  1135D..11361  ; Grapheme_Base # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
  11362..11363  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 11380..11389  ; Grapheme_Base # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; Grapheme_Base # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; Grapheme_Base # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; Grapheme_Base # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; Grapheme_Base # Lo       TULU-TIGALARI SIGN AVAGRAHA
+ 113B9..113BA  ; Grapheme_Base # Mc   [2] TULU-TIGALARI VOWEL SIGN I..TULU-TIGALARI VOWEL SIGN II
+ 113CA         ; Grapheme_Base # Mc       TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; Grapheme_Base # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113D1         ; Grapheme_Base # Lo       TULU-TIGALARI REPHA
+ 113D3         ; Grapheme_Base # Lo       TULU-TIGALARI SIGN PLUTA
+ 113D4..113D5  ; Grapheme_Base # Po   [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
+ 113D7..113D8  ; Grapheme_Base # Po   [2] TULU-TIGALARI SIGN OM PUSHPIKA..TULU-TIGALARI SIGN SHRII PUSHPIKA
  11400..11434  ; Grapheme_Base # Lo  [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437  ; Grapheme_Base # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11440..11441  ; Grapheme_Base # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12186,12196 ****
  11680..116AA  ; Grapheme_Base # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
  116AC         ; Grapheme_Base # Mc       TAKRI SIGN VISARGA
  116AE..116AF  ; Grapheme_Base # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
- 116B6         ; Grapheme_Base # Mc       TAKRI SIGN VIRAMA
  116B8         ; Grapheme_Base # Lo       TAKRI LETTER ARCHAIC KHA
  116B9         ; Grapheme_Base # Po       TAKRI ABBREVIATION SIGN
  116C0..116C9  ; Grapheme_Base # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
  11700..1171A  ; Grapheme_Base # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
  11720..11721  ; Grapheme_Base # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11726         ; Grapheme_Base # Mc       AHOM VOWEL SIGN E
  11730..11739  ; Grapheme_Base # Nd  [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
--- 12460,12471 ----
  11680..116AA  ; Grapheme_Base # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
  116AC         ; Grapheme_Base # Mc       TAKRI SIGN VISARGA
  116AE..116AF  ; Grapheme_Base # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
  116B8         ; Grapheme_Base # Lo       TAKRI LETTER ARCHAIC KHA
  116B9         ; Grapheme_Base # Po       TAKRI ABBREVIATION SIGN
  116C0..116C9  ; Grapheme_Base # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+ 116D0..116E3  ; Grapheme_Base # Nd  [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
  11700..1171A  ; Grapheme_Base # Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+ 1171E         ; Grapheme_Base # Mc       AHOM CONSONANT SIGN MEDIAL RA
  11720..11721  ; Grapheme_Base # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11726         ; Grapheme_Base # Mc       AHOM VOWEL SIGN E
  11730..11739  ; Grapheme_Base # Nd  [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12212,12218 ****
  11918..1192F  ; Grapheme_Base # Lo  [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
  11931..11935  ; Grapheme_Base # Mc   [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E
  11937..11938  ; Grapheme_Base # Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
- 1193D         ; Grapheme_Base # Mc       DIVES AKURU SIGN HALANTA
  1193F         ; Grapheme_Base # Lo       DIVES AKURU PREFIXED NASAL SIGN
  11940         ; Grapheme_Base # Mc       DIVES AKURU MEDIAL YA
  11941         ; Grapheme_Base # Lo       DIVES AKURU INITIAL RA
--- 12487,12492 ----
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12241,12246 ****
--- 12515,12523 ----
  11A9E..11AA2  ; Grapheme_Base # Po   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
  11AB0..11AF8  ; Grapheme_Base # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
  11B00..11B09  ; Grapheme_Base # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+ 11BC0..11BE0  ; Grapheme_Base # Lo  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
+ 11BE1         ; Grapheme_Base # Po       SUNUWAR SIGN PVO
+ 11BF0..11BF9  ; Grapheme_Base # Nd  [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
  11C00..11C08  ; Grapheme_Base # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E  ; Grapheme_Base # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C2F         ; Grapheme_Base # Mc       BHAIKSUKI VOWEL SIGN AA
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12276,12282 ****
  11F12..11F33  ; Grapheme_Base # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
  11F34..11F35  ; Grapheme_Base # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
  11F3E..11F3F  ; Grapheme_Base # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
- 11F41         ; Grapheme_Base # Mc       KAWI SIGN KILLER
  11F43..11F4F  ; Grapheme_Base # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
  11F50..11F59  ; Grapheme_Base # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
  11FB0         ; Grapheme_Base # Lo       LISU LETTER YHA
--- 12553,12558 ----
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12293,12299 ****
--- 12569,12579 ----
  12FF1..12FF2  ; Grapheme_Base # Po   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
  13000..1342F  ; Grapheme_Base # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
  13441..13446  ; Grapheme_Base # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+ 13460..143FA  ; Grapheme_Base # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646  ; Grapheme_Base # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; Grapheme_Base # Lo  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 1612A..1612C  ; Grapheme_Base # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 16130..16139  ; Grapheme_Base # Nd  [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
  16800..16A38  ; Grapheme_Base # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E  ; Grapheme_Base # Lo  [31] MRO LETTER TA..MRO LETTER TEK
  16A60..16A69  ; Grapheme_Base # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12312,12317 ****
--- 12592,12602 ----
  16B5B..16B61  ; Grapheme_Base # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
  16B63..16B77  ; Grapheme_Base # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F  ; Grapheme_Base # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42  ; Grapheme_Base # Lm   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A  ; Grapheme_Base # Lo  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C  ; Grapheme_Base # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
+ 16D6D..16D6F  ; Grapheme_Base # Po   [3] KIRAT RAI SIGN YUPI..KIRAT RAI DOUBLE DANDA
+ 16D70..16D79  ; Grapheme_Base # Nd  [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
  16E40..16E7F  ; Grapheme_Base # L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16E80..16E96  ; Grapheme_Base # No  [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
  16E97..16E9A  ; Grapheme_Base # Po   [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12322,12331 ****
  16FE0..16FE1  ; Grapheme_Base # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE2         ; Grapheme_Base # Po       OLD CHINESE HOOK MARK
  16FE3         ; Grapheme_Base # Lm       OLD CHINESE ITERATION MARK
- 16FF0..16FF1  ; Grapheme_Base # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  17000..187F7  ; Grapheme_Base # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Grapheme_Base # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; Grapheme_Base # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; Grapheme_Base # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; Grapheme_Base # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; Grapheme_Base # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 12607,12615 ----
  16FE0..16FE1  ; Grapheme_Base # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE2         ; Grapheme_Base # Po       OLD CHINESE HOOK MARK
  16FE3         ; Grapheme_Base # Lm       OLD CHINESE ITERATION MARK
  17000..187F7  ; Grapheme_Base # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Grapheme_Base # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; Grapheme_Base # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3  ; Grapheme_Base # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; Grapheme_Base # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; Grapheme_Base # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12341,12353 ****
  1BC90..1BC99  ; Grapheme_Base # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
  1BC9C         ; Grapheme_Base # So       DUPLOYAN SIGN O WITH CROSS
  1BC9F         ; Grapheme_Base # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1CF50..1CFC3  ; Grapheme_Base # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
  1D000..1D0F5  ; Grapheme_Base # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
  1D100..1D126  ; Grapheme_Base # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
  1D129..1D164  ; Grapheme_Base # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
- 1D166         ; Grapheme_Base # Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
  1D16A..1D16C  ; Grapheme_Base # So   [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
- 1D16D         ; Grapheme_Base # Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
  1D183..1D184  ; Grapheme_Base # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
  1D18C..1D1A9  ; Grapheme_Base # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
  1D1AE..1D1EA  ; Grapheme_Base # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
--- 12625,12638 ----
  1BC90..1BC99  ; Grapheme_Base # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
  1BC9C         ; Grapheme_Base # So       DUPLOYAN SIGN O WITH CROSS
  1BC9F         ; Grapheme_Base # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+ 1CC00..1CCEF  ; Grapheme_Base # So [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0..1CCF9  ; Grapheme_Base # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
+ 1CD00..1CEB3  ; Grapheme_Base # So [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
  1CF50..1CFC3  ; Grapheme_Base # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
  1D000..1D0F5  ; Grapheme_Base # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
  1D100..1D126  ; Grapheme_Base # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
  1D129..1D164  ; Grapheme_Base # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D16A..1D16C  ; Grapheme_Base # So   [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
  1D183..1D184  ; Grapheme_Base # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
  1D18C..1D1A9  ; Grapheme_Base # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
  1D1AE..1D1EA  ; Grapheme_Base # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12421,12426 ****
--- 12706,12715 ----
  1E4D0..1E4EA  ; Grapheme_Base # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
  1E4EB         ; Grapheme_Base # Lm       NAG MUNDARI SIGN OJOD
  1E4F0..1E4F9  ; Grapheme_Base # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+ 1E5D0..1E5ED  ; Grapheme_Base # Lo  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5F0         ; Grapheme_Base # Lo       OL ONAL SIGN HODDOND
+ 1E5F1..1E5FA  ; Grapheme_Base # Nd  [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
+ 1E5FF         ; Grapheme_Base # Po       OL ONAL ABBREVIATION SIGN
  1E7E0..1E7E6  ; Grapheme_Base # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB  ; Grapheme_Base # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE  ; Grapheme_Base # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12500,12517 ****
  1F850..1F859  ; Grapheme_Base # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
  1F860..1F887  ; Grapheme_Base # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
  1F890..1F8AD  ; Grapheme_Base # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8B1  ; Grapheme_Base # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
  1F900..1FA53  ; Grapheme_Base # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
  1FA60..1FA6D  ; Grapheme_Base # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C  ; Grapheme_Base # So  [13] BALLET SHOES..CRUTCH
! 1FA80..1FA88  ; Grapheme_Base # So   [9] YO-YO..FLUTE
! 1FA90..1FABD  ; Grapheme_Base # So  [46] RINGED PLANET..WING
! 1FABF..1FAC5  ; Grapheme_Base # So   [7] GOOSE..PERSON WITH CROWN
! 1FACE..1FADB  ; Grapheme_Base # So  [14] MOOSE..PEA POD
! 1FAE0..1FAE8  ; Grapheme_Base # So   [9] MELTING FACE..SHAKING FACE
  1FAF0..1FAF8  ; Grapheme_Base # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
  1FB00..1FB92  ; Grapheme_Base # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBCA  ; Grapheme_Base # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
  1FBF0..1FBF9  ; Grapheme_Base # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; Grapheme_Base # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A700..2B739  ; Grapheme_Base # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
--- 12789,12806 ----
  1F850..1F859  ; Grapheme_Base # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
  1F860..1F887  ; Grapheme_Base # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
  1F890..1F8AD  ; Grapheme_Base # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8BB  ; Grapheme_Base # So  [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR
! 1F8C0..1F8C1  ; Grapheme_Base # So   [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW
  1F900..1FA53  ; Grapheme_Base # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
  1FA60..1FA6D  ; Grapheme_Base # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C  ; Grapheme_Base # So  [13] BALLET SHOES..CRUTCH
! 1FA80..1FA89  ; Grapheme_Base # So  [10] YO-YO..HARP
! 1FA8F..1FAC6  ; Grapheme_Base # So  [56] SHOVEL..FINGERPRINT
! 1FACE..1FADC  ; Grapheme_Base # So  [15] MOOSE..ROOT VEGETABLE
! 1FADF..1FAE9  ; Grapheme_Base # So  [11] SPLATTER..FACE WITH BAGS UNDER EYES
  1FAF0..1FAF8  ; Grapheme_Base # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
  1FB00..1FB92  ; Grapheme_Base # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBEF  ; Grapheme_Base # So  [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE
  1FBF0..1FBF9  ; Grapheme_Base # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; Grapheme_Base # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A700..2B739  ; Grapheme_Base # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12523,12529 ****
  30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Grapheme_Base # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 147613
  
  # ================================================
  
--- 12812,12818 ----
  30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Grapheme_Base # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 152730
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 12573,12578 ****
--- 12862,12870 ----
  11235         ; Grapheme_Link # Mc       KHOJKI SIGN VIRAMA
  112EA         ; Grapheme_Link # Mn       KHUDAWADI SIGN VIRAMA
  1134D         ; Grapheme_Link # Mc       GRANTHA SIGN VIRAMA
+ 113CE         ; Grapheme_Link # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; Grapheme_Link # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; Grapheme_Link # Mn       TULU-TIGALARI CONJOINER
  11442         ; Grapheme_Link # Mn       NEWA SIGN VIRAMA
  114C2         ; Grapheme_Link # Mn       TIRHUTA SIGN VIRAMA
  115BF         ; Grapheme_Link # Mn       SIDDHAM SIGN VIRAMA
*************** ABED          ; Grapheme_Link # Mn
*** 12591,12598 ****
  11D97         ; Grapheme_Link # Mn       GUNJALA GONDI VIRAMA
  11F41         ; Grapheme_Link # Mc       KAWI SIGN KILLER
  11F42         ; Grapheme_Link # Mn       KAWI CONJOINER
  
! # Total code points: 65
  
  # ================================================
  
--- 12883,12891 ----
  11D97         ; Grapheme_Link # Mn       GUNJALA GONDI VIRAMA
  11F41         ; Grapheme_Link # Mc       KAWI SIGN KILLER
  11F42         ; Grapheme_Link # Mn       KAWI CONJOINER
+ 1612F         ; Grapheme_Link # Mn       GURUNG KHEMA SIGN THOLHOMA
  
! # Total code points: 69
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 12656,12664 ****
  
  # Indic_Conjunct_Break=Extend
  
! 0300..034E    ; InCB; Extend # Mn  [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
! 0350..036F    ; InCB; Extend # Mn  [32] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
  0483..0487    ; InCB; Extend # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
  0591..05BD    ; InCB; Extend # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
  05BF          ; InCB; Extend # Mn       HEBREW POINT RAFE
  05C1..05C2    ; InCB; Extend # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
--- 12949,12957 ----
  
  # Indic_Conjunct_Break=Extend
  
! 0300..036F    ; InCB; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
  0483..0487    ; InCB; Extend # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+ 0488..0489    ; InCB; Extend # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
  0591..05BD    ; InCB; Extend # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
  05BF          ; InCB; Extend # Mn       HEBREW POINT RAFE
  05C1..05C2    ; InCB; Extend # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
*************** ABED          ; Grapheme_Link # Mn
*** 12673,12678 ****
--- 12966,12972 ----
  06EA..06ED    ; InCB; Extend # Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
  0711          ; InCB; Extend # Mn       SYRIAC LETTER SUPERSCRIPT ALAPH
  0730..074A    ; InCB; Extend # Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+ 07A6..07B0    ; InCB; Extend # Mn  [11] THAANA ABAFILI..THAANA SUKUN
  07EB..07F3    ; InCB; Extend # Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
  07FD          ; InCB; Extend # Mn       NKO DANTAYALAN
  0816..0819    ; InCB; Extend # Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
*************** ABED          ; Grapheme_Link # Mn
*** 12680,12734 ****
  0825..0827    ; InCB; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; InCB; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; InCB; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0898..089F    ; InCB; Extend # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; InCB; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
! 08E3..08FF    ; InCB; Extend # Mn  [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
  093C          ; InCB; Extend # Mn       DEVANAGARI SIGN NUKTA
! 0951..0954    ; InCB; Extend # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
  09BC          ; InCB; Extend # Mn       BENGALI SIGN NUKTA
  09FE          ; InCB; Extend # Mn       BENGALI SANDHI MARK
  0A3C          ; InCB; Extend # Mn       GURMUKHI SIGN NUKTA
  0ABC          ; InCB; Extend # Mn       GUJARATI SIGN NUKTA
  0B3C          ; InCB; Extend # Mn       ORIYA SIGN NUKTA
  0C3C          ; InCB; Extend # Mn       TELUGU SIGN NUKTA
  0C55..0C56    ; InCB; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0CBC          ; InCB; Extend # Mn       KANNADA SIGN NUKTA
  0D3B..0D3C    ; InCB; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
! 0E38..0E3A    ; InCB; Extend # Mn   [3] THAI CHARACTER SARA U..THAI CHARACTER PHINTHU
! 0E48..0E4B    ; InCB; Extend # Mn   [4] THAI CHARACTER MAI EK..THAI CHARACTER MAI CHATTAWA
! 0EB8..0EBA    ; InCB; Extend # Mn   [3] LAO VOWEL SIGN U..LAO SIGN PALI VIRAMA
! 0EC8..0ECB    ; InCB; Extend # Mn   [4] LAO TONE MAI EK..LAO TONE MAI CATAWA
  0F18..0F19    ; InCB; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
  0F35          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
  0F37          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
  0F39          ; InCB; Extend # Mn       TIBETAN MARK TSA -PHRU
! 0F71..0F72    ; InCB; Extend # Mn   [2] TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
! 0F74          ; InCB; Extend # Mn       TIBETAN VOWEL SIGN U
! 0F7A..0F7D    ; InCB; Extend # Mn   [4] TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN OO
! 0F80          ; InCB; Extend # Mn       TIBETAN VOWEL SIGN REVERSED I
! 0F82..0F84    ; InCB; Extend # Mn   [3] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
  0F86..0F87    ; InCB; Extend # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
  0FC6          ; InCB; Extend # Mn       TIBETAN SYMBOL PADMA GDAN
! 1037          ; InCB; Extend # Mn       MYANMAR SIGN DOT BELOW
  1039..103A    ; InCB; Extend # Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
  108D          ; InCB; Extend # Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
  135D..135F    ; InCB; Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
! 1714          ; InCB; Extend # Mn       TAGALOG SIGN VIRAMA
! 17D2          ; InCB; Extend # Mn       KHMER SIGN COENG
  17DD          ; InCB; Extend # Mn       KHMER SIGN ATTHACAN
  18A9          ; InCB; Extend # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
  1939..193B    ; InCB; Extend # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
  1A17..1A18    ; InCB; Extend # Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
  1A60          ; InCB; Extend # Mn       TAI THAM SIGN SAKOT
! 1A75..1A7C    ; InCB; Extend # Mn   [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
  1A7F          ; InCB; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; InCB; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABF..1ACE    ; InCB; Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B34          ; InCB; Extend # Mn       BALINESE SIGN REREKAN
  1B6B..1B73    ; InCB; Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
! 1BAB          ; InCB; Extend # Mn       SUNDANESE SIGN VIRAMA
  1BE6          ; InCB; Extend # Mn       BATAK SIGN TOMPI
! 1C37          ; InCB; Extend # Mn       LEPCHA SIGN NUKTA
  1CD0..1CD2    ; InCB; Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
  1CD4..1CE0    ; InCB; Extend # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
  1CE2..1CE8    ; InCB; Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
--- 12974,13133 ----
  0825..0827    ; InCB; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; InCB; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; InCB; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0897..089F    ; InCB; Extend # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; InCB; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
! 08E3..0902    ; InCB; Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
! 093A          ; InCB; Extend # Mn       DEVANAGARI VOWEL SIGN OE
  093C          ; InCB; Extend # Mn       DEVANAGARI SIGN NUKTA
! 0941..0948    ; InCB; Extend # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
! 0951..0957    ; InCB; Extend # Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
! 0962..0963    ; InCB; Extend # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
! 0981          ; InCB; Extend # Mn       BENGALI SIGN CANDRABINDU
  09BC          ; InCB; Extend # Mn       BENGALI SIGN NUKTA
+ 09BE          ; InCB; Extend # Mc       BENGALI VOWEL SIGN AA
+ 09C1..09C4    ; InCB; Extend # Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+ 09D7          ; InCB; Extend # Mc       BENGALI AU LENGTH MARK
+ 09E2..09E3    ; InCB; Extend # Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
  09FE          ; InCB; Extend # Mn       BENGALI SANDHI MARK
+ 0A01..0A02    ; InCB; Extend # Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
  0A3C          ; InCB; Extend # Mn       GURMUKHI SIGN NUKTA
+ 0A41..0A42    ; InCB; Extend # Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+ 0A47..0A48    ; InCB; Extend # Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+ 0A4B..0A4D    ; InCB; Extend # Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+ 0A51          ; InCB; Extend # Mn       GURMUKHI SIGN UDAAT
+ 0A70..0A71    ; InCB; Extend # Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+ 0A75          ; InCB; Extend # Mn       GURMUKHI SIGN YAKASH
+ 0A81..0A82    ; InCB; Extend # Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
  0ABC          ; InCB; Extend # Mn       GUJARATI SIGN NUKTA
+ 0AC1..0AC5    ; InCB; Extend # Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+ 0AC7..0AC8    ; InCB; Extend # Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+ 0AE2..0AE3    ; InCB; Extend # Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+ 0AFA..0AFF    ; InCB; Extend # Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+ 0B01          ; InCB; Extend # Mn       ORIYA SIGN CANDRABINDU
  0B3C          ; InCB; Extend # Mn       ORIYA SIGN NUKTA
+ 0B3E          ; InCB; Extend # Mc       ORIYA VOWEL SIGN AA
+ 0B3F          ; InCB; Extend # Mn       ORIYA VOWEL SIGN I
+ 0B41..0B44    ; InCB; Extend # Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+ 0B55..0B56    ; InCB; Extend # Mn   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+ 0B57          ; InCB; Extend # Mc       ORIYA AU LENGTH MARK
+ 0B62..0B63    ; InCB; Extend # Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+ 0B82          ; InCB; Extend # Mn       TAMIL SIGN ANUSVARA
+ 0BBE          ; InCB; Extend # Mc       TAMIL VOWEL SIGN AA
+ 0BC0          ; InCB; Extend # Mn       TAMIL VOWEL SIGN II
+ 0BCD          ; InCB; Extend # Mn       TAMIL SIGN VIRAMA
+ 0BD7          ; InCB; Extend # Mc       TAMIL AU LENGTH MARK
+ 0C00          ; InCB; Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
+ 0C04          ; InCB; Extend # Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE
  0C3C          ; InCB; Extend # Mn       TELUGU SIGN NUKTA
+ 0C3E..0C40    ; InCB; Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+ 0C46..0C48    ; InCB; Extend # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+ 0C4A..0C4C    ; InCB; Extend # Mn   [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
  0C55..0C56    ; InCB; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+ 0C62..0C63    ; InCB; Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+ 0C81          ; InCB; Extend # Mn       KANNADA SIGN CANDRABINDU
  0CBC          ; InCB; Extend # Mn       KANNADA SIGN NUKTA
+ 0CBF          ; InCB; Extend # Mn       KANNADA VOWEL SIGN I
+ 0CC0          ; InCB; Extend # Mc       KANNADA VOWEL SIGN II
+ 0CC2          ; InCB; Extend # Mc       KANNADA VOWEL SIGN UU
+ 0CC6          ; InCB; Extend # Mn       KANNADA VOWEL SIGN E
+ 0CC7..0CC8    ; InCB; Extend # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; InCB; Extend # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+ 0CCC..0CCD    ; InCB; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+ 0CD5..0CD6    ; InCB; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+ 0CE2..0CE3    ; InCB; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+ 0D00..0D01    ; InCB; Extend # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
  0D3B..0D3C    ; InCB; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
! 0D3E          ; InCB; Extend # Mc       MALAYALAM VOWEL SIGN AA
! 0D41..0D44    ; InCB; Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
! 0D57          ; InCB; Extend # Mc       MALAYALAM AU LENGTH MARK
! 0D62..0D63    ; InCB; Extend # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
! 0D81          ; InCB; Extend # Mn       SINHALA SIGN CANDRABINDU
! 0DCA          ; InCB; Extend # Mn       SINHALA SIGN AL-LAKUNA
! 0DCF          ; InCB; Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
! 0DD2..0DD4    ; InCB; Extend # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
! 0DD6          ; InCB; Extend # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
! 0DDF          ; InCB; Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
! 0E31          ; InCB; Extend # Mn       THAI CHARACTER MAI HAN-AKAT
! 0E34..0E3A    ; InCB; Extend # Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
! 0E47..0E4E    ; InCB; Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
! 0EB1          ; InCB; Extend # Mn       LAO VOWEL SIGN MAI KAN
! 0EB4..0EBC    ; InCB; Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
! 0EC8..0ECE    ; InCB; Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
  0F18..0F19    ; InCB; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
  0F35          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
  0F37          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
  0F39          ; InCB; Extend # Mn       TIBETAN MARK TSA -PHRU
! 0F71..0F7E    ; InCB; Extend # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
! 0F80..0F84    ; InCB; Extend # Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
  0F86..0F87    ; InCB; Extend # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+ 0F8D..0F97    ; InCB; Extend # Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+ 0F99..0FBC    ; InCB; Extend # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
  0FC6          ; InCB; Extend # Mn       TIBETAN SYMBOL PADMA GDAN
! 102D..1030    ; InCB; Extend # Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
! 1032..1037    ; InCB; Extend # Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
  1039..103A    ; InCB; Extend # Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+ 103D..103E    ; InCB; Extend # Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+ 1058..1059    ; InCB; Extend # Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+ 105E..1060    ; InCB; Extend # Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+ 1071..1074    ; InCB; Extend # Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+ 1082          ; InCB; Extend # Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+ 1085..1086    ; InCB; Extend # Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
  108D          ; InCB; Extend # Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+ 109D          ; InCB; Extend # Mn       MYANMAR VOWEL SIGN AITON AI
  135D..135F    ; InCB; Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
! 1712..1714    ; InCB; Extend # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
! 1715          ; InCB; Extend # Mc       TAGALOG SIGN PAMUDPOD
! 1732..1733    ; InCB; Extend # Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
! 1734          ; InCB; Extend # Mc       HANUNOO SIGN PAMUDPOD
! 1752..1753    ; InCB; Extend # Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
! 1772..1773    ; InCB; Extend # Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
! 17B4..17B5    ; InCB; Extend # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
! 17B7..17BD    ; InCB; Extend # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
! 17C6          ; InCB; Extend # Mn       KHMER SIGN NIKAHIT
! 17C9..17D3    ; InCB; Extend # Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
  17DD          ; InCB; Extend # Mn       KHMER SIGN ATTHACAN
+ 180B..180D    ; InCB; Extend # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+ 180F          ; InCB; Extend # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
+ 1885..1886    ; InCB; Extend # Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
  18A9          ; InCB; Extend # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
+ 1920..1922    ; InCB; Extend # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+ 1927..1928    ; InCB; Extend # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+ 1932          ; InCB; Extend # Mn       LIMBU SMALL LETTER ANUSVARA
  1939..193B    ; InCB; Extend # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
  1A17..1A18    ; InCB; Extend # Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+ 1A1B          ; InCB; Extend # Mn       BUGINESE VOWEL SIGN AE
+ 1A56          ; InCB; Extend # Mn       TAI THAM CONSONANT SIGN MEDIAL LA
+ 1A58..1A5E    ; InCB; Extend # Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
  1A60          ; InCB; Extend # Mn       TAI THAM SIGN SAKOT
! 1A62          ; InCB; Extend # Mn       TAI THAM VOWEL SIGN MAI SAT
! 1A65..1A6C    ; InCB; Extend # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
! 1A73..1A7C    ; InCB; Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
  1A7F          ; InCB; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; InCB; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+ 1ABE          ; InCB; Extend # Me       COMBINING PARENTHESES OVERLAY
  1ABF..1ACE    ; InCB; Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+ 1B00..1B03    ; InCB; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; InCB; Extend # Mn       BALINESE SIGN REREKAN
+ 1B35          ; InCB; Extend # Mc       BALINESE VOWEL SIGN TEDUNG
+ 1B36..1B3A    ; InCB; Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+ 1B3B          ; InCB; Extend # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
+ 1B3C          ; InCB; Extend # Mn       BALINESE VOWEL SIGN LA LENGA
+ 1B3D          ; InCB; Extend # Mc       BALINESE VOWEL SIGN LA LENGA TEDUNG
+ 1B42          ; InCB; Extend # Mn       BALINESE VOWEL SIGN PEPET
+ 1B43..1B44    ; InCB; Extend # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B6B..1B73    ; InCB; Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
! 1B80..1B81    ; InCB; Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
! 1BA2..1BA5    ; InCB; Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
! 1BA8..1BA9    ; InCB; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
! 1BAA          ; InCB; Extend # Mc       SUNDANESE SIGN PAMAAEH
! 1BAB..1BAD    ; InCB; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
  1BE6          ; InCB; Extend # Mn       BATAK SIGN TOMPI
! 1BE8..1BE9    ; InCB; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
! 1BED          ; InCB; Extend # Mn       BATAK VOWEL SIGN KARO O
! 1BEF..1BF1    ; InCB; Extend # Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
! 1BF2..1BF3    ; InCB; Extend # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
! 1C2C..1C33    ; InCB; Extend # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
! 1C36..1C37    ; InCB; Extend # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
  1CD0..1CD2    ; InCB; Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
  1CD4..1CE0    ; InCB; Extend # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
  1CE2..1CE8    ; InCB; Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
*************** ABED          ; Grapheme_Link # Mn
*** 12738,12744 ****
--- 13137,13145 ----
  1DC0..1DFF    ; InCB; Extend # Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
  200D          ; InCB; Extend # Cf       ZERO WIDTH JOINER
  20D0..20DC    ; InCB; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+ 20DD..20E0    ; InCB; Extend # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
  20E1          ; InCB; Extend # Mn       COMBINING LEFT RIGHT ARROW ABOVE
+ 20E2..20E4    ; InCB; Extend # Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
  20E5..20F0    ; InCB; Extend # Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
  2CEF..2CF1    ; InCB; Extend # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
  2D7F          ; InCB; Extend # Mn       TIFINAGH CONSONANT JOINER
*************** ABED          ; Grapheme_Link # Mn
*** 12747,12819 ****
  302E..302F    ; InCB; Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
  3099..309A    ; InCB; Extend # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
  A66F          ; InCB; Extend # Mn       COMBINING CYRILLIC VZMET
  A674..A67D    ; InCB; Extend # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
  A69E..A69F    ; InCB; Extend # Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
  A6F0..A6F1    ; InCB; Extend # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
  A82C          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA
  A8E0..A8F1    ; InCB; Extend # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
! A92B..A92D    ; InCB; Extend # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
  A9B3          ; InCB; Extend # Mn       JAVANESE SIGN CECAK TELU
  AAB0          ; InCB; Extend # Mn       TAI VIET MAI KANG
  AAB2..AAB4    ; InCB; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
  AAB7..AAB8    ; InCB; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
  AABE..AABF    ; InCB; Extend # Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
  AAC1          ; InCB; Extend # Mn       TAI VIET TONE MAI THO
  AAF6          ; InCB; Extend # Mn       MEETEI MAYEK VIRAMA
  ABED          ; InCB; Extend # Mn       MEETEI MAYEK APUN IYEK
  FB1E          ; InCB; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
  FE20..FE2F    ; InCB; Extend # Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
  101FD         ; InCB; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
  102E0         ; InCB; Extend # Mn       COPTIC EPACT THOUSANDS MARK
  10376..1037A  ; InCB; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
! 10A0D         ; InCB; Extend # Mn       KHAROSHTHI SIGN DOUBLE RING BELOW
! 10A0F         ; InCB; Extend # Mn       KHAROSHTHI SIGN VISARGA
  10A38..10A3A  ; InCB; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
  10A3F         ; InCB; Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; InCB; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; InCB; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10EAB..10EAC  ; InCB; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFD..10EFF  ; InCB; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; InCB; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; InCB; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11070         ; InCB; Extend # Mn       BRAHMI SIGN OLD TAMIL VIRAMA
! 1107F         ; InCB; Extend # Mn       BRAHMI NUMBER JOINER
! 110BA         ; InCB; Extend # Mn       KAITHI SIGN NUKTA
  11100..11102  ; InCB; Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
! 11133..11134  ; InCB; Extend # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
  11173         ; InCB; Extend # Mn       MAHAJANI SIGN NUKTA
! 111CA         ; InCB; Extend # Mn       SHARADA SIGN NUKTA
! 11236         ; InCB; Extend # Mn       KHOJKI SIGN NUKTA
! 112E9..112EA  ; InCB; Extend # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
  1133B..1133C  ; InCB; Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
  11366..1136C  ; InCB; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; InCB; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
  11446         ; InCB; Extend # Mn       NEWA SIGN NUKTA
  1145E         ; InCB; Extend # Mn       NEWA SANDHI MARK
! 114C3         ; InCB; Extend # Mn       TIRHUTA SIGN NUKTA
! 115C0         ; InCB; Extend # Mn       SIDDHAM SIGN NUKTA
  116B7         ; InCB; Extend # Mn       TAKRI SIGN NUKTA
! 1172B         ; InCB; Extend # Mn       AHOM SIGN KILLER
! 1183A         ; InCB; Extend # Mn       DOGRA SIGN NUKTA
  1193E         ; InCB; Extend # Mn       DIVES AKURU VIRAMA
  11943         ; InCB; Extend # Mn       DIVES AKURU SIGN NUKTA
! 11A34         ; InCB; Extend # Mn       ZANABAZAR SQUARE SIGN VIRAMA
  11A47         ; InCB; Extend # Mn       ZANABAZAR SQUARE SUBJOINER
! 11A99         ; InCB; Extend # Mn       SOYOMBO SUBJOINER
! 11D42         ; InCB; Extend # Mn       MASARAM GONDI SIGN NUKTA
! 11D44..11D45  ; InCB; Extend # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
  11D97         ; InCB; Extend # Mn       GUNJALA GONDI VIRAMA
  11F42         ; InCB; Extend # Mn       KAWI CONJOINER
  16AF0..16AF4  ; InCB; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; InCB; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
! 1BC9E         ; InCB; Extend # Mn       DUPLOYAN DOUBLE MARK
! 1D165         ; InCB; Extend # Mc       MUSICAL SYMBOL COMBINING STEM
  1D167..1D169  ; InCB; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16E..1D172  ; InCB; Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; InCB; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; InCB; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; InCB; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
  1D242..1D244  ; InCB; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
  1E000..1E006  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
  1E008..1E018  ; InCB; Extend # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
  1E01B..1E021  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
--- 13148,13345 ----
  302E..302F    ; InCB; Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
  3099..309A    ; InCB; Extend # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
  A66F          ; InCB; Extend # Mn       COMBINING CYRILLIC VZMET
+ A670..A672    ; InCB; Extend # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
  A674..A67D    ; InCB; Extend # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
  A69E..A69F    ; InCB; Extend # Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
  A6F0..A6F1    ; InCB; Extend # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+ A802          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN DVISVARA
+ A806          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN HASANTA
+ A80B          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN ANUSVARA
+ A825..A826    ; InCB; Extend # Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
  A82C          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA
+ A8C4..A8C5    ; InCB; Extend # Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
  A8E0..A8F1    ; InCB; Extend # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
! A8FF          ; InCB; Extend # Mn       DEVANAGARI VOWEL SIGN AY
! A926..A92D    ; InCB; Extend # Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
! A947..A951    ; InCB; Extend # Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
! A953          ; InCB; Extend # Mc       REJANG VIRAMA
! A980..A982    ; InCB; Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
  A9B3          ; InCB; Extend # Mn       JAVANESE SIGN CECAK TELU
+ A9B6..A9B9    ; InCB; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+ A9BC..A9BD    ; InCB; Extend # Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+ A9C0          ; InCB; Extend # Mc       JAVANESE PANGKON
+ A9E5          ; InCB; Extend # Mn       MYANMAR SIGN SHAN SAW
+ AA29..AA2E    ; InCB; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+ AA31..AA32    ; InCB; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+ AA35..AA36    ; InCB; Extend # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+ AA43          ; InCB; Extend # Mn       CHAM CONSONANT SIGN FINAL NG
+ AA4C          ; InCB; Extend # Mn       CHAM CONSONANT SIGN FINAL M
+ AA7C          ; InCB; Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
  AAB0          ; InCB; Extend # Mn       TAI VIET MAI KANG
  AAB2..AAB4    ; InCB; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
  AAB7..AAB8    ; InCB; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
  AABE..AABF    ; InCB; Extend # Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
  AAC1          ; InCB; Extend # Mn       TAI VIET TONE MAI THO
+ AAEC..AAED    ; InCB; Extend # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
  AAF6          ; InCB; Extend # Mn       MEETEI MAYEK VIRAMA
+ ABE5          ; InCB; Extend # Mn       MEETEI MAYEK VOWEL SIGN ANAP
+ ABE8          ; InCB; Extend # Mn       MEETEI MAYEK VOWEL SIGN UNAP
  ABED          ; InCB; Extend # Mn       MEETEI MAYEK APUN IYEK
  FB1E          ; InCB; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
+ FE00..FE0F    ; InCB; Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
  FE20..FE2F    ; InCB; Extend # Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+ FF9E..FF9F    ; InCB; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
  101FD         ; InCB; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
  102E0         ; InCB; Extend # Mn       COPTIC EPACT THOUSANDS MARK
  10376..1037A  ; InCB; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
! 10A01..10A03  ; InCB; Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
! 10A05..10A06  ; InCB; Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
! 10A0C..10A0F  ; InCB; Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
  10A38..10A3A  ; InCB; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
  10A3F         ; InCB; Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; InCB; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; InCB; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D69..10D6D  ; InCB; Extend # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
  10EAB..10EAC  ; InCB; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFC..10EFF  ; InCB; Extend # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; InCB; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; InCB; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+ 11001         ; InCB; Extend # Mn       BRAHMI SIGN ANUSVARA
+ 11038..11046  ; InCB; Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
  11070         ; InCB; Extend # Mn       BRAHMI SIGN OLD TAMIL VIRAMA
! 11073..11074  ; InCB; Extend # Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
! 1107F..11081  ; InCB; Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
! 110B3..110B6  ; InCB; Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
! 110B9..110BA  ; InCB; Extend # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
! 110C2         ; InCB; Extend # Mn       KAITHI VOWEL SIGN VOCALIC R
  11100..11102  ; InCB; Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
! 11127..1112B  ; InCB; Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
! 1112D..11134  ; InCB; Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
  11173         ; InCB; Extend # Mn       MAHAJANI SIGN NUKTA
! 11180..11181  ; InCB; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
! 111B6..111BE  ; InCB; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
! 111C0         ; InCB; Extend # Mc       SHARADA SIGN VIRAMA
! 111C9..111CC  ; InCB; Extend # Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
! 111CF         ; InCB; Extend # Mn       SHARADA SIGN INVERTED CANDRABINDU
! 1122F..11231  ; InCB; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
! 11234         ; InCB; Extend # Mn       KHOJKI SIGN ANUSVARA
! 11235         ; InCB; Extend # Mc       KHOJKI SIGN VIRAMA
! 11236..11237  ; InCB; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
! 1123E         ; InCB; Extend # Mn       KHOJKI SIGN SUKUN
! 11241         ; InCB; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
! 112DF         ; InCB; Extend # Mn       KHUDAWADI SIGN ANUSVARA
! 112E3..112EA  ; InCB; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
! 11300..11301  ; InCB; Extend # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
  1133B..1133C  ; InCB; Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+ 1133E         ; InCB; Extend # Mc       GRANTHA VOWEL SIGN AA
+ 11340         ; InCB; Extend # Mn       GRANTHA VOWEL SIGN II
+ 1134D         ; InCB; Extend # Mc       GRANTHA SIGN VIRAMA
+ 11357         ; InCB; Extend # Mc       GRANTHA AU LENGTH MARK
  11366..1136C  ; InCB; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; InCB; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113B8         ; InCB; Extend # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113BB..113C0  ; InCB; Extend # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; InCB; Extend # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; InCB; Extend # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; InCB; Extend # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
+ 113CE         ; InCB; Extend # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; InCB; Extend # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; InCB; Extend # Mn       TULU-TIGALARI CONJOINER
+ 113D2         ; InCB; Extend # Mn       TULU-TIGALARI GEMINATION MARK
+ 113E1..113E2  ; InCB; Extend # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
+ 11438..1143F  ; InCB; Extend # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+ 11442..11444  ; InCB; Extend # Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
  11446         ; InCB; Extend # Mn       NEWA SIGN NUKTA
  1145E         ; InCB; Extend # Mn       NEWA SANDHI MARK
! 114B0         ; InCB; Extend # Mc       TIRHUTA VOWEL SIGN AA
! 114B3..114B8  ; InCB; Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
! 114BA         ; InCB; Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
! 114BD         ; InCB; Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
! 114BF..114C0  ; InCB; Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
! 114C2..114C3  ; InCB; Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
! 115AF         ; InCB; Extend # Mc       SIDDHAM VOWEL SIGN AA
! 115B2..115B5  ; InCB; Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
! 115BC..115BD  ; InCB; Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
! 115BF..115C0  ; InCB; Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
! 115DC..115DD  ; InCB; Extend # Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
! 11633..1163A  ; InCB; Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
! 1163D         ; InCB; Extend # Mn       MODI SIGN ANUSVARA
! 1163F..11640  ; InCB; Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
! 116AB         ; InCB; Extend # Mn       TAKRI SIGN ANUSVARA
! 116AD         ; InCB; Extend # Mn       TAKRI VOWEL SIGN AA
! 116B0..116B5  ; InCB; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
! 116B6         ; InCB; Extend # Mc       TAKRI SIGN VIRAMA
  116B7         ; InCB; Extend # Mn       TAKRI SIGN NUKTA
! 1171D         ; InCB; Extend # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171F         ; InCB; Extend # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
! 11722..11725  ; InCB; Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
! 11727..1172B  ; InCB; Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
! 1182F..11837  ; InCB; Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
! 11839..1183A  ; InCB; Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
! 11930         ; InCB; Extend # Mc       DIVES AKURU VOWEL SIGN AA
! 1193B..1193C  ; InCB; Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
! 1193D         ; InCB; Extend # Mc       DIVES AKURU SIGN HALANTA
  1193E         ; InCB; Extend # Mn       DIVES AKURU VIRAMA
  11943         ; InCB; Extend # Mn       DIVES AKURU SIGN NUKTA
! 119D4..119D7  ; InCB; Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
! 119DA..119DB  ; InCB; Extend # Mn   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
! 119E0         ; InCB; Extend # Mn       NANDINAGARI SIGN VIRAMA
! 11A01..11A0A  ; InCB; Extend # Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
! 11A33..11A38  ; InCB; Extend # Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
! 11A3B..11A3E  ; InCB; Extend # Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
  11A47         ; InCB; Extend # Mn       ZANABAZAR SQUARE SUBJOINER
! 11A51..11A56  ; InCB; Extend # Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
! 11A59..11A5B  ; InCB; Extend # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
! 11A8A..11A96  ; InCB; Extend # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
! 11A98..11A99  ; InCB; Extend # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
! 11C30..11C36  ; InCB; Extend # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
! 11C38..11C3D  ; InCB; Extend # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
! 11C3F         ; InCB; Extend # Mn       BHAIKSUKI SIGN VIRAMA
! 11C92..11CA7  ; InCB; Extend # Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
! 11CAA..11CB0  ; InCB; Extend # Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
! 11CB2..11CB3  ; InCB; Extend # Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
! 11CB5..11CB6  ; InCB; Extend # Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
! 11D31..11D36  ; InCB; Extend # Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
! 11D3A         ; InCB; Extend # Mn       MASARAM GONDI VOWEL SIGN E
! 11D3C..11D3D  ; InCB; Extend # Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
! 11D3F..11D45  ; InCB; Extend # Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
! 11D47         ; InCB; Extend # Mn       MASARAM GONDI RA-KARA
! 11D90..11D91  ; InCB; Extend # Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
! 11D95         ; InCB; Extend # Mn       GUNJALA GONDI SIGN ANUSVARA
  11D97         ; InCB; Extend # Mn       GUNJALA GONDI VIRAMA
+ 11EF3..11EF4  ; InCB; Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+ 11F00..11F01  ; InCB; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+ 11F36..11F3A  ; InCB; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+ 11F40         ; InCB; Extend # Mn       KAWI VOWEL SIGN EU
+ 11F41         ; InCB; Extend # Mc       KAWI SIGN KILLER
  11F42         ; InCB; Extend # Mn       KAWI CONJOINER
+ 11F5A         ; InCB; Extend # Mn       KAWI SIGN NUKTA
+ 13440         ; InCB; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+ 13447..13455  ; InCB; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1611E..16129  ; InCB; Extend # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612D..1612F  ; InCB; Extend # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
  16AF0..16AF4  ; InCB; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; InCB; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
! 16F4F         ; InCB; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
! 16F8F..16F92  ; InCB; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
! 16FE4         ; InCB; Extend # Mn       KHITAN SMALL SCRIPT FILLER
! 16FF0..16FF1  ; InCB; Extend # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 1BC9D..1BC9E  ; InCB; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
! 1CF00..1CF2D  ; InCB; Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
! 1CF30..1CF46  ; InCB; Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1D165..1D166  ; InCB; Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
  1D167..1D169  ; InCB; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16D..1D172  ; InCB; Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; InCB; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; InCB; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; InCB; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
  1D242..1D244  ; InCB; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+ 1DA00..1DA36  ; InCB; Extend # Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+ 1DA3B..1DA6C  ; InCB; Extend # Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+ 1DA75         ; InCB; Extend # Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+ 1DA84         ; InCB; Extend # Mn       SIGNWRITING LOCATION HEAD NECK
+ 1DA9B..1DA9F  ; InCB; Extend # Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+ 1DAA1..1DAAF  ; InCB; Extend # Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
  1E000..1E006  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
  1E008..1E018  ; InCB; Extend # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
  1E01B..1E021  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
*************** FE20..FE2F    ; InCB; Extend # Mn  [16]
*** 12824,12832 ****
  1E2AE         ; InCB; Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; InCB; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; InCB; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E8D0..1E8D6  ; InCB; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; InCB; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  
! # Total code points: 884
  
  # EOF
--- 13350,13362 ----
  1E2AE         ; InCB; Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; InCB; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; InCB; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E5EE..1E5EF  ; InCB; Extend # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
  1E8D0..1E8D6  ; InCB; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; InCB; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+ 1F3FB..1F3FF  ; InCB; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+ E0020..E007F  ; InCB; Extend # Cf  [96] TAG SPACE..CANCEL TAG
+ E0100..E01EF  ; InCB; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2192
  
  # EOF
diff -Nrcpad gcc-14.2.0/contrib/unicode/DerivedGeneralCategory.txt gcc-15.1.0/contrib/unicode/DerivedGeneralCategory.txt
*** gcc-14.2.0/contrib/unicode/DerivedGeneralCategory.txt	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/contrib/unicode/DerivedGeneralCategory.txt	Fri Apr 25 08:17:59 2025
***************
*** 0 ****
--- 1,4323 ----
+ # DerivedGeneralCategory-16.0.0.txt
+ # Date: 2024-04-30, 21:48:17 GMT
+ # © 2024 Unicode®, Inc.
+ # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+ # For terms of use and license, see https://www.unicode.org/terms_of_use.html
+ #
+ # Unicode Character Database
+ #   For documentation, see https://www.unicode.org/reports/tr44/
+ 
+ # ================================================
+ 
+ # Property:	General_Category
+ 
+ # ================================================
+ 
+ # General_Category=Unassigned
+ 
+ 0378..0379    ; Cn #   [2] <reserved-0378>..<reserved-0379>
+ 0380..0383    ; Cn #   [4] <reserved-0380>..<reserved-0383>
+ 038B          ; Cn #       <reserved-038B>
+ 038D          ; Cn #       <reserved-038D>
+ 03A2          ; Cn #       <reserved-03A2>
+ 0530          ; Cn #       <reserved-0530>
+ 0557..0558    ; Cn #   [2] <reserved-0557>..<reserved-0558>
+ 058B..058C    ; Cn #   [2] <reserved-058B>..<reserved-058C>
+ 0590          ; Cn #       <reserved-0590>
+ 05C8..05CF    ; Cn #   [8] <reserved-05C8>..<reserved-05CF>
+ 05EB..05EE    ; Cn #   [4] <reserved-05EB>..<reserved-05EE>
+ 05F5..05FF    ; Cn #  [11] <reserved-05F5>..<reserved-05FF>
+ 070E          ; Cn #       <reserved-070E>
+ 074B..074C    ; Cn #   [2] <reserved-074B>..<reserved-074C>
+ 07B2..07BF    ; Cn #  [14] <reserved-07B2>..<reserved-07BF>
+ 07FB..07FC    ; Cn #   [2] <reserved-07FB>..<reserved-07FC>
+ 082E..082F    ; Cn #   [2] <reserved-082E>..<reserved-082F>
+ 083F          ; Cn #       <reserved-083F>
+ 085C..085D    ; Cn #   [2] <reserved-085C>..<reserved-085D>
+ 085F          ; Cn #       <reserved-085F>
+ 086B..086F    ; Cn #   [5] <reserved-086B>..<reserved-086F>
+ 088F          ; Cn #       <reserved-088F>
+ 0892..0896    ; Cn #   [5] <reserved-0892>..<reserved-0896>
+ 0984          ; Cn #       <reserved-0984>
+ 098D..098E    ; Cn #   [2] <reserved-098D>..<reserved-098E>
+ 0991..0992    ; Cn #   [2] <reserved-0991>..<reserved-0992>
+ 09A9          ; Cn #       <reserved-09A9>
+ 09B1          ; Cn #       <reserved-09B1>
+ 09B3..09B5    ; Cn #   [3] <reserved-09B3>..<reserved-09B5>
+ 09BA..09BB    ; Cn #   [2] <reserved-09BA>..<reserved-09BB>
+ 09C5..09C6    ; Cn #   [2] <reserved-09C5>..<reserved-09C6>
+ 09C9..09CA    ; Cn #   [2] <reserved-09C9>..<reserved-09CA>
+ 09CF..09D6    ; Cn #   [8] <reserved-09CF>..<reserved-09D6>
+ 09D8..09DB    ; Cn #   [4] <reserved-09D8>..<reserved-09DB>
+ 09DE          ; Cn #       <reserved-09DE>
+ 09E4..09E5    ; Cn #   [2] <reserved-09E4>..<reserved-09E5>
+ 09FF..0A00    ; Cn #   [2] <reserved-09FF>..<reserved-0A00>
+ 0A04          ; Cn #       <reserved-0A04>
+ 0A0B..0A0E    ; Cn #   [4] <reserved-0A0B>..<reserved-0A0E>
+ 0A11..0A12    ; Cn #   [2] <reserved-0A11>..<reserved-0A12>
+ 0A29          ; Cn #       <reserved-0A29>
+ 0A31          ; Cn #       <reserved-0A31>
+ 0A34          ; Cn #       <reserved-0A34>
+ 0A37          ; Cn #       <reserved-0A37>
+ 0A3A..0A3B    ; Cn #   [2] <reserved-0A3A>..<reserved-0A3B>
+ 0A3D          ; Cn #       <reserved-0A3D>
+ 0A43..0A46    ; Cn #   [4] <reserved-0A43>..<reserved-0A46>
+ 0A49..0A4A    ; Cn #   [2] <reserved-0A49>..<reserved-0A4A>
+ 0A4E..0A50    ; Cn #   [3] <reserved-0A4E>..<reserved-0A50>
+ 0A52..0A58    ; Cn #   [7] <reserved-0A52>..<reserved-0A58>
+ 0A5D          ; Cn #       <reserved-0A5D>
+ 0A5F..0A65    ; Cn #   [7] <reserved-0A5F>..<reserved-0A65>
+ 0A77..0A80    ; Cn #  [10] <reserved-0A77>..<reserved-0A80>
+ 0A84          ; Cn #       <reserved-0A84>
+ 0A8E          ; Cn #       <reserved-0A8E>
+ 0A92          ; Cn #       <reserved-0A92>
+ 0AA9          ; Cn #       <reserved-0AA9>
+ 0AB1          ; Cn #       <reserved-0AB1>
+ 0AB4          ; Cn #       <reserved-0AB4>
+ 0ABA..0ABB    ; Cn #   [2] <reserved-0ABA>..<reserved-0ABB>
+ 0AC6          ; Cn #       <reserved-0AC6>
+ 0ACA          ; Cn #       <reserved-0ACA>
+ 0ACE..0ACF    ; Cn #   [2] <reserved-0ACE>..<reserved-0ACF>
+ 0AD1..0ADF    ; Cn #  [15] <reserved-0AD1>..<reserved-0ADF>
+ 0AE4..0AE5    ; Cn #   [2] <reserved-0AE4>..<reserved-0AE5>
+ 0AF2..0AF8    ; Cn #   [7] <reserved-0AF2>..<reserved-0AF8>
+ 0B00          ; Cn #       <reserved-0B00>
+ 0B04          ; Cn #       <reserved-0B04>
+ 0B0D..0B0E    ; Cn #   [2] <reserved-0B0D>..<reserved-0B0E>
+ 0B11..0B12    ; Cn #   [2] <reserved-0B11>..<reserved-0B12>
+ 0B29          ; Cn #       <reserved-0B29>
+ 0B31          ; Cn #       <reserved-0B31>
+ 0B34          ; Cn #       <reserved-0B34>
+ 0B3A..0B3B    ; Cn #   [2] <reserved-0B3A>..<reserved-0B3B>
+ 0B45..0B46    ; Cn #   [2] <reserved-0B45>..<reserved-0B46>
+ 0B49..0B4A    ; Cn #   [2] <reserved-0B49>..<reserved-0B4A>
+ 0B4E..0B54    ; Cn #   [7] <reserved-0B4E>..<reserved-0B54>
+ 0B58..0B5B    ; Cn #   [4] <reserved-0B58>..<reserved-0B5B>
+ 0B5E          ; Cn #       <reserved-0B5E>
+ 0B64..0B65    ; Cn #   [2] <reserved-0B64>..<reserved-0B65>
+ 0B78..0B81    ; Cn #  [10] <reserved-0B78>..<reserved-0B81>
+ 0B84          ; Cn #       <reserved-0B84>
+ 0B8B..0B8D    ; Cn #   [3] <reserved-0B8B>..<reserved-0B8D>
+ 0B91          ; Cn #       <reserved-0B91>
+ 0B96..0B98    ; Cn #   [3] <reserved-0B96>..<reserved-0B98>
+ 0B9B          ; Cn #       <reserved-0B9B>
+ 0B9D          ; Cn #       <reserved-0B9D>
+ 0BA0..0BA2    ; Cn #   [3] <reserved-0BA0>..<reserved-0BA2>
+ 0BA5..0BA7    ; Cn #   [3] <reserved-0BA5>..<reserved-0BA7>
+ 0BAB..0BAD    ; Cn #   [3] <reserved-0BAB>..<reserved-0BAD>
+ 0BBA..0BBD    ; Cn #   [4] <reserved-0BBA>..<reserved-0BBD>
+ 0BC3..0BC5    ; Cn #   [3] <reserved-0BC3>..<reserved-0BC5>
+ 0BC9          ; Cn #       <reserved-0BC9>
+ 0BCE..0BCF    ; Cn #   [2] <reserved-0BCE>..<reserved-0BCF>
+ 0BD1..0BD6    ; Cn #   [6] <reserved-0BD1>..<reserved-0BD6>
+ 0BD8..0BE5    ; Cn #  [14] <reserved-0BD8>..<reserved-0BE5>
+ 0BFB..0BFF    ; Cn #   [5] <reserved-0BFB>..<reserved-0BFF>
+ 0C0D          ; Cn #       <reserved-0C0D>
+ 0C11          ; Cn #       <reserved-0C11>
+ 0C29          ; Cn #       <reserved-0C29>
+ 0C3A..0C3B    ; Cn #   [2] <reserved-0C3A>..<reserved-0C3B>
+ 0C45          ; Cn #       <reserved-0C45>
+ 0C49          ; Cn #       <reserved-0C49>
+ 0C4E..0C54    ; Cn #   [7] <reserved-0C4E>..<reserved-0C54>
+ 0C57          ; Cn #       <reserved-0C57>
+ 0C5B..0C5C    ; Cn #   [2] <reserved-0C5B>..<reserved-0C5C>
+ 0C5E..0C5F    ; Cn #   [2] <reserved-0C5E>..<reserved-0C5F>
+ 0C64..0C65    ; Cn #   [2] <reserved-0C64>..<reserved-0C65>
+ 0C70..0C76    ; Cn #   [7] <reserved-0C70>..<reserved-0C76>
+ 0C8D          ; Cn #       <reserved-0C8D>
+ 0C91          ; Cn #       <reserved-0C91>
+ 0CA9          ; Cn #       <reserved-0CA9>
+ 0CB4          ; Cn #       <reserved-0CB4>
+ 0CBA..0CBB    ; Cn #   [2] <reserved-0CBA>..<reserved-0CBB>
+ 0CC5          ; Cn #       <reserved-0CC5>
+ 0CC9          ; Cn #       <reserved-0CC9>
+ 0CCE..0CD4    ; Cn #   [7] <reserved-0CCE>..<reserved-0CD4>
+ 0CD7..0CDC    ; Cn #   [6] <reserved-0CD7>..<reserved-0CDC>
+ 0CDF          ; Cn #       <reserved-0CDF>
+ 0CE4..0CE5    ; Cn #   [2] <reserved-0CE4>..<reserved-0CE5>
+ 0CF0          ; Cn #       <reserved-0CF0>
+ 0CF4..0CFF    ; Cn #  [12] <reserved-0CF4>..<reserved-0CFF>
+ 0D0D          ; Cn #       <reserved-0D0D>
+ 0D11          ; Cn #       <reserved-0D11>
+ 0D45          ; Cn #       <reserved-0D45>
+ 0D49          ; Cn #       <reserved-0D49>
+ 0D50..0D53    ; Cn #   [4] <reserved-0D50>..<reserved-0D53>
+ 0D64..0D65    ; Cn #   [2] <reserved-0D64>..<reserved-0D65>
+ 0D80          ; Cn #       <reserved-0D80>
+ 0D84          ; Cn #       <reserved-0D84>
+ 0D97..0D99    ; Cn #   [3] <reserved-0D97>..<reserved-0D99>
+ 0DB2          ; Cn #       <reserved-0DB2>
+ 0DBC          ; Cn #       <reserved-0DBC>
+ 0DBE..0DBF    ; Cn #   [2] <reserved-0DBE>..<reserved-0DBF>
+ 0DC7..0DC9    ; Cn #   [3] <reserved-0DC7>..<reserved-0DC9>
+ 0DCB..0DCE    ; Cn #   [4] <reserved-0DCB>..<reserved-0DCE>
+ 0DD5          ; Cn #       <reserved-0DD5>
+ 0DD7          ; Cn #       <reserved-0DD7>
+ 0DE0..0DE5    ; Cn #   [6] <reserved-0DE0>..<reserved-0DE5>
+ 0DF0..0DF1    ; Cn #   [2] <reserved-0DF0>..<reserved-0DF1>
+ 0DF5..0E00    ; Cn #  [12] <reserved-0DF5>..<reserved-0E00>
+ 0E3B..0E3E    ; Cn #   [4] <reserved-0E3B>..<reserved-0E3E>
+ 0E5C..0E80    ; Cn #  [37] <reserved-0E5C>..<reserved-0E80>
+ 0E83          ; Cn #       <reserved-0E83>
+ 0E85          ; Cn #       <reserved-0E85>
+ 0E8B          ; Cn #       <reserved-0E8B>
+ 0EA4          ; Cn #       <reserved-0EA4>
+ 0EA6          ; Cn #       <reserved-0EA6>
+ 0EBE..0EBF    ; Cn #   [2] <reserved-0EBE>..<reserved-0EBF>
+ 0EC5          ; Cn #       <reserved-0EC5>
+ 0EC7          ; Cn #       <reserved-0EC7>
+ 0ECF          ; Cn #       <reserved-0ECF>
+ 0EDA..0EDB    ; Cn #   [2] <reserved-0EDA>..<reserved-0EDB>
+ 0EE0..0EFF    ; Cn #  [32] <reserved-0EE0>..<reserved-0EFF>
+ 0F48          ; Cn #       <reserved-0F48>
+ 0F6D..0F70    ; Cn #   [4] <reserved-0F6D>..<reserved-0F70>
+ 0F98          ; Cn #       <reserved-0F98>
+ 0FBD          ; Cn #       <reserved-0FBD>
+ 0FCD          ; Cn #       <reserved-0FCD>
+ 0FDB..0FFF    ; Cn #  [37] <reserved-0FDB>..<reserved-0FFF>
+ 10C6          ; Cn #       <reserved-10C6>
+ 10C8..10CC    ; Cn #   [5] <reserved-10C8>..<reserved-10CC>
+ 10CE..10CF    ; Cn #   [2] <reserved-10CE>..<reserved-10CF>
+ 1249          ; Cn #       <reserved-1249>
+ 124E..124F    ; Cn #   [2] <reserved-124E>..<reserved-124F>
+ 1257          ; Cn #       <reserved-1257>
+ 1259          ; Cn #       <reserved-1259>
+ 125E..125F    ; Cn #   [2] <reserved-125E>..<reserved-125F>
+ 1289          ; Cn #       <reserved-1289>
+ 128E..128F    ; Cn #   [2] <reserved-128E>..<reserved-128F>
+ 12B1          ; Cn #       <reserved-12B1>
+ 12B6..12B7    ; Cn #   [2] <reserved-12B6>..<reserved-12B7>
+ 12BF          ; Cn #       <reserved-12BF>
+ 12C1          ; Cn #       <reserved-12C1>
+ 12C6..12C7    ; Cn #   [2] <reserved-12C6>..<reserved-12C7>
+ 12D7          ; Cn #       <reserved-12D7>
+ 1311          ; Cn #       <reserved-1311>
+ 1316..1317    ; Cn #   [2] <reserved-1316>..<reserved-1317>
+ 135B..135C    ; Cn #   [2] <reserved-135B>..<reserved-135C>
+ 137D..137F    ; Cn #   [3] <reserved-137D>..<reserved-137F>
+ 139A..139F    ; Cn #   [6] <reserved-139A>..<reserved-139F>
+ 13F6..13F7    ; Cn #   [2] <reserved-13F6>..<reserved-13F7>
+ 13FE..13FF    ; Cn #   [2] <reserved-13FE>..<reserved-13FF>
+ 169D..169F    ; Cn #   [3] <reserved-169D>..<reserved-169F>
+ 16F9..16FF    ; Cn #   [7] <reserved-16F9>..<reserved-16FF>
+ 1716..171E    ; Cn #   [9] <reserved-1716>..<reserved-171E>
+ 1737..173F    ; Cn #   [9] <reserved-1737>..<reserved-173F>
+ 1754..175F    ; Cn #  [12] <reserved-1754>..<reserved-175F>
+ 176D          ; Cn #       <reserved-176D>
+ 1771          ; Cn #       <reserved-1771>
+ 1774..177F    ; Cn #  [12] <reserved-1774>..<reserved-177F>
+ 17DE..17DF    ; Cn #   [2] <reserved-17DE>..<reserved-17DF>
+ 17EA..17EF    ; Cn #   [6] <reserved-17EA>..<reserved-17EF>
+ 17FA..17FF    ; Cn #   [6] <reserved-17FA>..<reserved-17FF>
+ 181A..181F    ; Cn #   [6] <reserved-181A>..<reserved-181F>
+ 1879..187F    ; Cn #   [7] <reserved-1879>..<reserved-187F>
+ 18AB..18AF    ; Cn #   [5] <reserved-18AB>..<reserved-18AF>
+ 18F6..18FF    ; Cn #  [10] <reserved-18F6>..<reserved-18FF>
+ 191F          ; Cn #       <reserved-191F>
+ 192C..192F    ; Cn #   [4] <reserved-192C>..<reserved-192F>
+ 193C..193F    ; Cn #   [4] <reserved-193C>..<reserved-193F>
+ 1941..1943    ; Cn #   [3] <reserved-1941>..<reserved-1943>
+ 196E..196F    ; Cn #   [2] <reserved-196E>..<reserved-196F>
+ 1975..197F    ; Cn #  [11] <reserved-1975>..<reserved-197F>
+ 19AC..19AF    ; Cn #   [4] <reserved-19AC>..<reserved-19AF>
+ 19CA..19CF    ; Cn #   [6] <reserved-19CA>..<reserved-19CF>
+ 19DB..19DD    ; Cn #   [3] <reserved-19DB>..<reserved-19DD>
+ 1A1C..1A1D    ; Cn #   [2] <reserved-1A1C>..<reserved-1A1D>
+ 1A5F          ; Cn #       <reserved-1A5F>
+ 1A7D..1A7E    ; Cn #   [2] <reserved-1A7D>..<reserved-1A7E>
+ 1A8A..1A8F    ; Cn #   [6] <reserved-1A8A>..<reserved-1A8F>
+ 1A9A..1A9F    ; Cn #   [6] <reserved-1A9A>..<reserved-1A9F>
+ 1AAE..1AAF    ; Cn #   [2] <reserved-1AAE>..<reserved-1AAF>
+ 1ACF..1AFF    ; Cn #  [49] <reserved-1ACF>..<reserved-1AFF>
+ 1B4D          ; Cn #       <reserved-1B4D>
+ 1BF4..1BFB    ; Cn #   [8] <reserved-1BF4>..<reserved-1BFB>
+ 1C38..1C3A    ; Cn #   [3] <reserved-1C38>..<reserved-1C3A>
+ 1C4A..1C4C    ; Cn #   [3] <reserved-1C4A>..<reserved-1C4C>
+ 1C8B..1C8F    ; Cn #   [5] <reserved-1C8B>..<reserved-1C8F>
+ 1CBB..1CBC    ; Cn #   [2] <reserved-1CBB>..<reserved-1CBC>
+ 1CC8..1CCF    ; Cn #   [8] <reserved-1CC8>..<reserved-1CCF>
+ 1CFB..1CFF    ; Cn #   [5] <reserved-1CFB>..<reserved-1CFF>
+ 1F16..1F17    ; Cn #   [2] <reserved-1F16>..<reserved-1F17>
+ 1F1E..1F1F    ; Cn #   [2] <reserved-1F1E>..<reserved-1F1F>
+ 1F46..1F47    ; Cn #   [2] <reserved-1F46>..<reserved-1F47>
+ 1F4E..1F4F    ; Cn #   [2] <reserved-1F4E>..<reserved-1F4F>
+ 1F58          ; Cn #       <reserved-1F58>
+ 1F5A          ; Cn #       <reserved-1F5A>
+ 1F5C          ; Cn #       <reserved-1F5C>
+ 1F5E          ; Cn #       <reserved-1F5E>
+ 1F7E..1F7F    ; Cn #   [2] <reserved-1F7E>..<reserved-1F7F>
+ 1FB5          ; Cn #       <reserved-1FB5>
+ 1FC5          ; Cn #       <reserved-1FC5>
+ 1FD4..1FD5    ; Cn #   [2] <reserved-1FD4>..<reserved-1FD5>
+ 1FDC          ; Cn #       <reserved-1FDC>
+ 1FF0..1FF1    ; Cn #   [2] <reserved-1FF0>..<reserved-1FF1>
+ 1FF5          ; Cn #       <reserved-1FF5>
+ 1FFF          ; Cn #       <reserved-1FFF>
+ 2065          ; Cn #       <reserved-2065>
+ 2072..2073    ; Cn #   [2] <reserved-2072>..<reserved-2073>
+ 208F          ; Cn #       <reserved-208F>
+ 209D..209F    ; Cn #   [3] <reserved-209D>..<reserved-209F>
+ 20C1..20CF    ; Cn #  [15] <reserved-20C1>..<reserved-20CF>
+ 20F1..20FF    ; Cn #  [15] <reserved-20F1>..<reserved-20FF>
+ 218C..218F    ; Cn #   [4] <reserved-218C>..<reserved-218F>
+ 242A..243F    ; Cn #  [22] <reserved-242A>..<reserved-243F>
+ 244B..245F    ; Cn #  [21] <reserved-244B>..<reserved-245F>
+ 2B74..2B75    ; Cn #   [2] <reserved-2B74>..<reserved-2B75>
+ 2B96          ; Cn #       <reserved-2B96>
+ 2CF4..2CF8    ; Cn #   [5] <reserved-2CF4>..<reserved-2CF8>
+ 2D26          ; Cn #       <reserved-2D26>
+ 2D28..2D2C    ; Cn #   [5] <reserved-2D28>..<reserved-2D2C>
+ 2D2E..2D2F    ; Cn #   [2] <reserved-2D2E>..<reserved-2D2F>
+ 2D68..2D6E    ; Cn #   [7] <reserved-2D68>..<reserved-2D6E>
+ 2D71..2D7E    ; Cn #  [14] <reserved-2D71>..<reserved-2D7E>
+ 2D97..2D9F    ; Cn #   [9] <reserved-2D97>..<reserved-2D9F>
+ 2DA7          ; Cn #       <reserved-2DA7>
+ 2DAF          ; Cn #       <reserved-2DAF>
+ 2DB7          ; Cn #       <reserved-2DB7>
+ 2DBF          ; Cn #       <reserved-2DBF>
+ 2DC7          ; Cn #       <reserved-2DC7>
+ 2DCF          ; Cn #       <reserved-2DCF>
+ 2DD7          ; Cn #       <reserved-2DD7>
+ 2DDF          ; Cn #       <reserved-2DDF>
+ 2E5E..2E7F    ; Cn #  [34] <reserved-2E5E>..<reserved-2E7F>
+ 2E9A          ; Cn #       <reserved-2E9A>
+ 2EF4..2EFF    ; Cn #  [12] <reserved-2EF4>..<reserved-2EFF>
+ 2FD6..2FEF    ; Cn #  [26] <reserved-2FD6>..<reserved-2FEF>
+ 3040          ; Cn #       <reserved-3040>
+ 3097..3098    ; Cn #   [2] <reserved-3097>..<reserved-3098>
+ 3100..3104    ; Cn #   [5] <reserved-3100>..<reserved-3104>
+ 3130          ; Cn #       <reserved-3130>
+ 318F          ; Cn #       <reserved-318F>
+ 31E6..31EE    ; Cn #   [9] <reserved-31E6>..<reserved-31EE>
+ 321F          ; Cn #       <reserved-321F>
+ A48D..A48F    ; Cn #   [3] <reserved-A48D>..<reserved-A48F>
+ A4C7..A4CF    ; Cn #   [9] <reserved-A4C7>..<reserved-A4CF>
+ A62C..A63F    ; Cn #  [20] <reserved-A62C>..<reserved-A63F>
+ A6F8..A6FF    ; Cn #   [8] <reserved-A6F8>..<reserved-A6FF>
+ A7CE..A7CF    ; Cn #   [2] <reserved-A7CE>..<reserved-A7CF>
+ A7D2          ; Cn #       <reserved-A7D2>
+ A7D4          ; Cn #       <reserved-A7D4>
+ A7DD..A7F1    ; Cn #  [21] <reserved-A7DD>..<reserved-A7F1>
+ A82D..A82F    ; Cn #   [3] <reserved-A82D>..<reserved-A82F>
+ A83A..A83F    ; Cn #   [6] <reserved-A83A>..<reserved-A83F>
+ A878..A87F    ; Cn #   [8] <reserved-A878>..<reserved-A87F>
+ A8C6..A8CD    ; Cn #   [8] <reserved-A8C6>..<reserved-A8CD>
+ A8DA..A8DF    ; Cn #   [6] <reserved-A8DA>..<reserved-A8DF>
+ A954..A95E    ; Cn #  [11] <reserved-A954>..<reserved-A95E>
+ A97D..A97F    ; Cn #   [3] <reserved-A97D>..<reserved-A97F>
+ A9CE          ; Cn #       <reserved-A9CE>
+ A9DA..A9DD    ; Cn #   [4] <reserved-A9DA>..<reserved-A9DD>
+ A9FF          ; Cn #       <reserved-A9FF>
+ AA37..AA3F    ; Cn #   [9] <reserved-AA37>..<reserved-AA3F>
+ AA4E..AA4F    ; Cn #   [2] <reserved-AA4E>..<reserved-AA4F>
+ AA5A..AA5B    ; Cn #   [2] <reserved-AA5A>..<reserved-AA5B>
+ AAC3..AADA    ; Cn #  [24] <reserved-AAC3>..<reserved-AADA>
+ AAF7..AB00    ; Cn #  [10] <reserved-AAF7>..<reserved-AB00>
+ AB07..AB08    ; Cn #   [2] <reserved-AB07>..<reserved-AB08>
+ AB0F..AB10    ; Cn #   [2] <reserved-AB0F>..<reserved-AB10>
+ AB17..AB1F    ; Cn #   [9] <reserved-AB17>..<reserved-AB1F>
+ AB27          ; Cn #       <reserved-AB27>
+ AB2F          ; Cn #       <reserved-AB2F>
+ AB6C..AB6F    ; Cn #   [4] <reserved-AB6C>..<reserved-AB6F>
+ ABEE..ABEF    ; Cn #   [2] <reserved-ABEE>..<reserved-ABEF>
+ ABFA..ABFF    ; Cn #   [6] <reserved-ABFA>..<reserved-ABFF>
+ D7A4..D7AF    ; Cn #  [12] <reserved-D7A4>..<reserved-D7AF>
+ D7C7..D7CA    ; Cn #   [4] <reserved-D7C7>..<reserved-D7CA>
+ D7FC..D7FF    ; Cn #   [4] <reserved-D7FC>..<reserved-D7FF>
+ FA6E..FA6F    ; Cn #   [2] <reserved-FA6E>..<reserved-FA6F>
+ FADA..FAFF    ; Cn #  [38] <reserved-FADA>..<reserved-FAFF>
+ FB07..FB12    ; Cn #  [12] <reserved-FB07>..<reserved-FB12>
+ FB18..FB1C    ; Cn #   [5] <reserved-FB18>..<reserved-FB1C>
+ FB37          ; Cn #       <reserved-FB37>
+ FB3D          ; Cn #       <reserved-FB3D>
+ FB3F          ; Cn #       <reserved-FB3F>
+ FB42          ; Cn #       <reserved-FB42>
+ FB45          ; Cn #       <reserved-FB45>
+ FBC3..FBD2    ; Cn #  [16] <reserved-FBC3>..<reserved-FBD2>
+ FD90..FD91    ; Cn #   [2] <reserved-FD90>..<reserved-FD91>
+ FDC8..FDCE    ; Cn #   [7] <reserved-FDC8>..<reserved-FDCE>
+ FDD0..FDEF    ; Cn #  [32] <noncharacter-FDD0>..<noncharacter-FDEF>
+ FE1A..FE1F    ; Cn #   [6] <reserved-FE1A>..<reserved-FE1F>
+ FE53          ; Cn #       <reserved-FE53>
+ FE67          ; Cn #       <reserved-FE67>
+ FE6C..FE6F    ; Cn #   [4] <reserved-FE6C>..<reserved-FE6F>
+ FE75          ; Cn #       <reserved-FE75>
+ FEFD..FEFE    ; Cn #   [2] <reserved-FEFD>..<reserved-FEFE>
+ FF00          ; Cn #       <reserved-FF00>
+ FFBF..FFC1    ; Cn #   [3] <reserved-FFBF>..<reserved-FFC1>
+ FFC8..FFC9    ; Cn #   [2] <reserved-FFC8>..<reserved-FFC9>
+ FFD0..FFD1    ; Cn #   [2] <reserved-FFD0>..<reserved-FFD1>
+ FFD8..FFD9    ; Cn #   [2] <reserved-FFD8>..<reserved-FFD9>
+ FFDD..FFDF    ; Cn #   [3] <reserved-FFDD>..<reserved-FFDF>
+ FFE7          ; Cn #       <reserved-FFE7>
+ FFEF..FFF8    ; Cn #  [10] <reserved-FFEF>..<reserved-FFF8>
+ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
+ 1000C         ; Cn #       <reserved-1000C>
+ 10027         ; Cn #       <reserved-10027>
+ 1003B         ; Cn #       <reserved-1003B>
+ 1003E         ; Cn #       <reserved-1003E>
+ 1004E..1004F  ; Cn #   [2] <reserved-1004E>..<reserved-1004F>
+ 1005E..1007F  ; Cn #  [34] <reserved-1005E>..<reserved-1007F>
+ 100FB..100FF  ; Cn #   [5] <reserved-100FB>..<reserved-100FF>
+ 10103..10106  ; Cn #   [4] <reserved-10103>..<reserved-10106>
+ 10134..10136  ; Cn #   [3] <reserved-10134>..<reserved-10136>
+ 1018F         ; Cn #       <reserved-1018F>
+ 1019D..1019F  ; Cn #   [3] <reserved-1019D>..<reserved-1019F>
+ 101A1..101CF  ; Cn #  [47] <reserved-101A1>..<reserved-101CF>
+ 101FE..1027F  ; Cn # [130] <reserved-101FE>..<reserved-1027F>
+ 1029D..1029F  ; Cn #   [3] <reserved-1029D>..<reserved-1029F>
+ 102D1..102DF  ; Cn #  [15] <reserved-102D1>..<reserved-102DF>
+ 102FC..102FF  ; Cn #   [4] <reserved-102FC>..<reserved-102FF>
+ 10324..1032C  ; Cn #   [9] <reserved-10324>..<reserved-1032C>
+ 1034B..1034F  ; Cn #   [5] <reserved-1034B>..<reserved-1034F>
+ 1037B..1037F  ; Cn #   [5] <reserved-1037B>..<reserved-1037F>
+ 1039E         ; Cn #       <reserved-1039E>
+ 103C4..103C7  ; Cn #   [4] <reserved-103C4>..<reserved-103C7>
+ 103D6..103FF  ; Cn #  [42] <reserved-103D6>..<reserved-103FF>
+ 1049E..1049F  ; Cn #   [2] <reserved-1049E>..<reserved-1049F>
+ 104AA..104AF  ; Cn #   [6] <reserved-104AA>..<reserved-104AF>
+ 104D4..104D7  ; Cn #   [4] <reserved-104D4>..<reserved-104D7>
+ 104FC..104FF  ; Cn #   [4] <reserved-104FC>..<reserved-104FF>
+ 10528..1052F  ; Cn #   [8] <reserved-10528>..<reserved-1052F>
+ 10564..1056E  ; Cn #  [11] <reserved-10564>..<reserved-1056E>
+ 1057B         ; Cn #       <reserved-1057B>
+ 1058B         ; Cn #       <reserved-1058B>
+ 10593         ; Cn #       <reserved-10593>
+ 10596         ; Cn #       <reserved-10596>
+ 105A2         ; Cn #       <reserved-105A2>
+ 105B2         ; Cn #       <reserved-105B2>
+ 105BA         ; Cn #       <reserved-105BA>
+ 105BD..105BF  ; Cn #   [3] <reserved-105BD>..<reserved-105BF>
+ 105F4..105FF  ; Cn #  [12] <reserved-105F4>..<reserved-105FF>
+ 10737..1073F  ; Cn #   [9] <reserved-10737>..<reserved-1073F>
+ 10756..1075F  ; Cn #  [10] <reserved-10756>..<reserved-1075F>
+ 10768..1077F  ; Cn #  [24] <reserved-10768>..<reserved-1077F>
+ 10786         ; Cn #       <reserved-10786>
+ 107B1         ; Cn #       <reserved-107B1>
+ 107BB..107FF  ; Cn #  [69] <reserved-107BB>..<reserved-107FF>
+ 10806..10807  ; Cn #   [2] <reserved-10806>..<reserved-10807>
+ 10809         ; Cn #       <reserved-10809>
+ 10836         ; Cn #       <reserved-10836>
+ 10839..1083B  ; Cn #   [3] <reserved-10839>..<reserved-1083B>
+ 1083D..1083E  ; Cn #   [2] <reserved-1083D>..<reserved-1083E>
+ 10856         ; Cn #       <reserved-10856>
+ 1089F..108A6  ; Cn #   [8] <reserved-1089F>..<reserved-108A6>
+ 108B0..108DF  ; Cn #  [48] <reserved-108B0>..<reserved-108DF>
+ 108F3         ; Cn #       <reserved-108F3>
+ 108F6..108FA  ; Cn #   [5] <reserved-108F6>..<reserved-108FA>
+ 1091C..1091E  ; Cn #   [3] <reserved-1091C>..<reserved-1091E>
+ 1093A..1093E  ; Cn #   [5] <reserved-1093A>..<reserved-1093E>
+ 10940..1097F  ; Cn #  [64] <reserved-10940>..<reserved-1097F>
+ 109B8..109BB  ; Cn #   [4] <reserved-109B8>..<reserved-109BB>
+ 109D0..109D1  ; Cn #   [2] <reserved-109D0>..<reserved-109D1>
+ 10A04         ; Cn #       <reserved-10A04>
+ 10A07..10A0B  ; Cn #   [5] <reserved-10A07>..<reserved-10A0B>
+ 10A14         ; Cn #       <reserved-10A14>
+ 10A18         ; Cn #       <reserved-10A18>
+ 10A36..10A37  ; Cn #   [2] <reserved-10A36>..<reserved-10A37>
+ 10A3B..10A3E  ; Cn #   [4] <reserved-10A3B>..<reserved-10A3E>
+ 10A49..10A4F  ; Cn #   [7] <reserved-10A49>..<reserved-10A4F>
+ 10A59..10A5F  ; Cn #   [7] <reserved-10A59>..<reserved-10A5F>
+ 10AA0..10ABF  ; Cn #  [32] <reserved-10AA0>..<reserved-10ABF>
+ 10AE7..10AEA  ; Cn #   [4] <reserved-10AE7>..<reserved-10AEA>
+ 10AF7..10AFF  ; Cn #   [9] <reserved-10AF7>..<reserved-10AFF>
+ 10B36..10B38  ; Cn #   [3] <reserved-10B36>..<reserved-10B38>
+ 10B56..10B57  ; Cn #   [2] <reserved-10B56>..<reserved-10B57>
+ 10B73..10B77  ; Cn #   [5] <reserved-10B73>..<reserved-10B77>
+ 10B92..10B98  ; Cn #   [7] <reserved-10B92>..<reserved-10B98>
+ 10B9D..10BA8  ; Cn #  [12] <reserved-10B9D>..<reserved-10BA8>
+ 10BB0..10BFF  ; Cn #  [80] <reserved-10BB0>..<reserved-10BFF>
+ 10C49..10C7F  ; Cn #  [55] <reserved-10C49>..<reserved-10C7F>
+ 10CB3..10CBF  ; Cn #  [13] <reserved-10CB3>..<reserved-10CBF>
+ 10CF3..10CF9  ; Cn #   [7] <reserved-10CF3>..<reserved-10CF9>
+ 10D28..10D2F  ; Cn #   [8] <reserved-10D28>..<reserved-10D2F>
+ 10D3A..10D3F  ; Cn #   [6] <reserved-10D3A>..<reserved-10D3F>
+ 10D66..10D68  ; Cn #   [3] <reserved-10D66>..<reserved-10D68>
+ 10D86..10D8D  ; Cn #   [8] <reserved-10D86>..<reserved-10D8D>
+ 10D90..10E5F  ; Cn # [208] <reserved-10D90>..<reserved-10E5F>
+ 10E7F         ; Cn #       <reserved-10E7F>
+ 10EAA         ; Cn #       <reserved-10EAA>
+ 10EAE..10EAF  ; Cn #   [2] <reserved-10EAE>..<reserved-10EAF>
+ 10EB2..10EC1  ; Cn #  [16] <reserved-10EB2>..<reserved-10EC1>
+ 10EC5..10EFB  ; Cn #  [55] <reserved-10EC5>..<reserved-10EFB>
+ 10F28..10F2F  ; Cn #   [8] <reserved-10F28>..<reserved-10F2F>
+ 10F5A..10F6F  ; Cn #  [22] <reserved-10F5A>..<reserved-10F6F>
+ 10F8A..10FAF  ; Cn #  [38] <reserved-10F8A>..<reserved-10FAF>
+ 10FCC..10FDF  ; Cn #  [20] <reserved-10FCC>..<reserved-10FDF>
+ 10FF7..10FFF  ; Cn #   [9] <reserved-10FF7>..<reserved-10FFF>
+ 1104E..11051  ; Cn #   [4] <reserved-1104E>..<reserved-11051>
+ 11076..1107E  ; Cn #   [9] <reserved-11076>..<reserved-1107E>
+ 110C3..110CC  ; Cn #  [10] <reserved-110C3>..<reserved-110CC>
+ 110CE..110CF  ; Cn #   [2] <reserved-110CE>..<reserved-110CF>
+ 110E9..110EF  ; Cn #   [7] <reserved-110E9>..<reserved-110EF>
+ 110FA..110FF  ; Cn #   [6] <reserved-110FA>..<reserved-110FF>
+ 11135         ; Cn #       <reserved-11135>
+ 11148..1114F  ; Cn #   [8] <reserved-11148>..<reserved-1114F>
+ 11177..1117F  ; Cn #   [9] <reserved-11177>..<reserved-1117F>
+ 111E0         ; Cn #       <reserved-111E0>
+ 111F5..111FF  ; Cn #  [11] <reserved-111F5>..<reserved-111FF>
+ 11212         ; Cn #       <reserved-11212>
+ 11242..1127F  ; Cn #  [62] <reserved-11242>..<reserved-1127F>
+ 11287         ; Cn #       <reserved-11287>
+ 11289         ; Cn #       <reserved-11289>
+ 1128E         ; Cn #       <reserved-1128E>
+ 1129E         ; Cn #       <reserved-1129E>
+ 112AA..112AF  ; Cn #   [6] <reserved-112AA>..<reserved-112AF>
+ 112EB..112EF  ; Cn #   [5] <reserved-112EB>..<reserved-112EF>
+ 112FA..112FF  ; Cn #   [6] <reserved-112FA>..<reserved-112FF>
+ 11304         ; Cn #       <reserved-11304>
+ 1130D..1130E  ; Cn #   [2] <reserved-1130D>..<reserved-1130E>
+ 11311..11312  ; Cn #   [2] <reserved-11311>..<reserved-11312>
+ 11329         ; Cn #       <reserved-11329>
+ 11331         ; Cn #       <reserved-11331>
+ 11334         ; Cn #       <reserved-11334>
+ 1133A         ; Cn #       <reserved-1133A>
+ 11345..11346  ; Cn #   [2] <reserved-11345>..<reserved-11346>
+ 11349..1134A  ; Cn #   [2] <reserved-11349>..<reserved-1134A>
+ 1134E..1134F  ; Cn #   [2] <reserved-1134E>..<reserved-1134F>
+ 11351..11356  ; Cn #   [6] <reserved-11351>..<reserved-11356>
+ 11358..1135C  ; Cn #   [5] <reserved-11358>..<reserved-1135C>
+ 11364..11365  ; Cn #   [2] <reserved-11364>..<reserved-11365>
+ 1136D..1136F  ; Cn #   [3] <reserved-1136D>..<reserved-1136F>
+ 11375..1137F  ; Cn #  [11] <reserved-11375>..<reserved-1137F>
+ 1138A         ; Cn #       <reserved-1138A>
+ 1138C..1138D  ; Cn #   [2] <reserved-1138C>..<reserved-1138D>
+ 1138F         ; Cn #       <reserved-1138F>
+ 113B6         ; Cn #       <reserved-113B6>
+ 113C1         ; Cn #       <reserved-113C1>
+ 113C3..113C4  ; Cn #   [2] <reserved-113C3>..<reserved-113C4>
+ 113C6         ; Cn #       <reserved-113C6>
+ 113CB         ; Cn #       <reserved-113CB>
+ 113D6         ; Cn #       <reserved-113D6>
+ 113D9..113E0  ; Cn #   [8] <reserved-113D9>..<reserved-113E0>
+ 113E3..113FF  ; Cn #  [29] <reserved-113E3>..<reserved-113FF>
+ 1145C         ; Cn #       <reserved-1145C>
+ 11462..1147F  ; Cn #  [30] <reserved-11462>..<reserved-1147F>
+ 114C8..114CF  ; Cn #   [8] <reserved-114C8>..<reserved-114CF>
+ 114DA..1157F  ; Cn # [166] <reserved-114DA>..<reserved-1157F>
+ 115B6..115B7  ; Cn #   [2] <reserved-115B6>..<reserved-115B7>
+ 115DE..115FF  ; Cn #  [34] <reserved-115DE>..<reserved-115FF>
+ 11645..1164F  ; Cn #  [11] <reserved-11645>..<reserved-1164F>
+ 1165A..1165F  ; Cn #   [6] <reserved-1165A>..<reserved-1165F>
+ 1166D..1167F  ; Cn #  [19] <reserved-1166D>..<reserved-1167F>
+ 116BA..116BF  ; Cn #   [6] <reserved-116BA>..<reserved-116BF>
+ 116CA..116CF  ; Cn #   [6] <reserved-116CA>..<reserved-116CF>
+ 116E4..116FF  ; Cn #  [28] <reserved-116E4>..<reserved-116FF>
+ 1171B..1171C  ; Cn #   [2] <reserved-1171B>..<reserved-1171C>
+ 1172C..1172F  ; Cn #   [4] <reserved-1172C>..<reserved-1172F>
+ 11747..117FF  ; Cn # [185] <reserved-11747>..<reserved-117FF>
+ 1183C..1189F  ; Cn # [100] <reserved-1183C>..<reserved-1189F>
+ 118F3..118FE  ; Cn #  [12] <reserved-118F3>..<reserved-118FE>
+ 11907..11908  ; Cn #   [2] <reserved-11907>..<reserved-11908>
+ 1190A..1190B  ; Cn #   [2] <reserved-1190A>..<reserved-1190B>
+ 11914         ; Cn #       <reserved-11914>
+ 11917         ; Cn #       <reserved-11917>
+ 11936         ; Cn #       <reserved-11936>
+ 11939..1193A  ; Cn #   [2] <reserved-11939>..<reserved-1193A>
+ 11947..1194F  ; Cn #   [9] <reserved-11947>..<reserved-1194F>
+ 1195A..1199F  ; Cn #  [70] <reserved-1195A>..<reserved-1199F>
+ 119A8..119A9  ; Cn #   [2] <reserved-119A8>..<reserved-119A9>
+ 119D8..119D9  ; Cn #   [2] <reserved-119D8>..<reserved-119D9>
+ 119E5..119FF  ; Cn #  [27] <reserved-119E5>..<reserved-119FF>
+ 11A48..11A4F  ; Cn #   [8] <reserved-11A48>..<reserved-11A4F>
+ 11AA3..11AAF  ; Cn #  [13] <reserved-11AA3>..<reserved-11AAF>
+ 11AF9..11AFF  ; Cn #   [7] <reserved-11AF9>..<reserved-11AFF>
+ 11B0A..11BBF  ; Cn # [182] <reserved-11B0A>..<reserved-11BBF>
+ 11BE2..11BEF  ; Cn #  [14] <reserved-11BE2>..<reserved-11BEF>
+ 11BFA..11BFF  ; Cn #   [6] <reserved-11BFA>..<reserved-11BFF>
+ 11C09         ; Cn #       <reserved-11C09>
+ 11C37         ; Cn #       <reserved-11C37>
+ 11C46..11C4F  ; Cn #  [10] <reserved-11C46>..<reserved-11C4F>
+ 11C6D..11C6F  ; Cn #   [3] <reserved-11C6D>..<reserved-11C6F>
+ 11C90..11C91  ; Cn #   [2] <reserved-11C90>..<reserved-11C91>
+ 11CA8         ; Cn #       <reserved-11CA8>
+ 11CB7..11CFF  ; Cn #  [73] <reserved-11CB7>..<reserved-11CFF>
+ 11D07         ; Cn #       <reserved-11D07>
+ 11D0A         ; Cn #       <reserved-11D0A>
+ 11D37..11D39  ; Cn #   [3] <reserved-11D37>..<reserved-11D39>
+ 11D3B         ; Cn #       <reserved-11D3B>
+ 11D3E         ; Cn #       <reserved-11D3E>
+ 11D48..11D4F  ; Cn #   [8] <reserved-11D48>..<reserved-11D4F>
+ 11D5A..11D5F  ; Cn #   [6] <reserved-11D5A>..<reserved-11D5F>
+ 11D66         ; Cn #       <reserved-11D66>
+ 11D69         ; Cn #       <reserved-11D69>
+ 11D8F         ; Cn #       <reserved-11D8F>
+ 11D92         ; Cn #       <reserved-11D92>
+ 11D99..11D9F  ; Cn #   [7] <reserved-11D99>..<reserved-11D9F>
+ 11DAA..11EDF  ; Cn # [310] <reserved-11DAA>..<reserved-11EDF>
+ 11EF9..11EFF  ; Cn #   [7] <reserved-11EF9>..<reserved-11EFF>
+ 11F11         ; Cn #       <reserved-11F11>
+ 11F3B..11F3D  ; Cn #   [3] <reserved-11F3B>..<reserved-11F3D>
+ 11F5B..11FAF  ; Cn #  [85] <reserved-11F5B>..<reserved-11FAF>
+ 11FB1..11FBF  ; Cn #  [15] <reserved-11FB1>..<reserved-11FBF>
+ 11FF2..11FFE  ; Cn #  [13] <reserved-11FF2>..<reserved-11FFE>
+ 1239A..123FF  ; Cn # [102] <reserved-1239A>..<reserved-123FF>
+ 1246F         ; Cn #       <reserved-1246F>
+ 12475..1247F  ; Cn #  [11] <reserved-12475>..<reserved-1247F>
+ 12544..12F8F  ; Cn # [2636] <reserved-12544>..<reserved-12F8F>
+ 12FF3..12FFF  ; Cn #  [13] <reserved-12FF3>..<reserved-12FFF>
+ 13456..1345F  ; Cn #  [10] <reserved-13456>..<reserved-1345F>
+ 143FB..143FF  ; Cn #   [5] <reserved-143FB>..<reserved-143FF>
+ 14647..160FF  ; Cn # [6841] <reserved-14647>..<reserved-160FF>
+ 1613A..167FF  ; Cn # [1734] <reserved-1613A>..<reserved-167FF>
+ 16A39..16A3F  ; Cn #   [7] <reserved-16A39>..<reserved-16A3F>
+ 16A5F         ; Cn #       <reserved-16A5F>
+ 16A6A..16A6D  ; Cn #   [4] <reserved-16A6A>..<reserved-16A6D>
+ 16ABF         ; Cn #       <reserved-16ABF>
+ 16ACA..16ACF  ; Cn #   [6] <reserved-16ACA>..<reserved-16ACF>
+ 16AEE..16AEF  ; Cn #   [2] <reserved-16AEE>..<reserved-16AEF>
+ 16AF6..16AFF  ; Cn #  [10] <reserved-16AF6>..<reserved-16AFF>
+ 16B46..16B4F  ; Cn #  [10] <reserved-16B46>..<reserved-16B4F>
+ 16B5A         ; Cn #       <reserved-16B5A>
+ 16B62         ; Cn #       <reserved-16B62>
+ 16B78..16B7C  ; Cn #   [5] <reserved-16B78>..<reserved-16B7C>
+ 16B90..16D3F  ; Cn # [432] <reserved-16B90>..<reserved-16D3F>
+ 16D7A..16E3F  ; Cn # [198] <reserved-16D7A>..<reserved-16E3F>
+ 16E9B..16EFF  ; Cn # [101] <reserved-16E9B>..<reserved-16EFF>
+ 16F4B..16F4E  ; Cn #   [4] <reserved-16F4B>..<reserved-16F4E>
+ 16F88..16F8E  ; Cn #   [7] <reserved-16F88>..<reserved-16F8E>
+ 16FA0..16FDF  ; Cn #  [64] <reserved-16FA0>..<reserved-16FDF>
+ 16FE5..16FEF  ; Cn #  [11] <reserved-16FE5>..<reserved-16FEF>
+ 16FF2..16FFF  ; Cn #  [14] <reserved-16FF2>..<reserved-16FFF>
+ 187F8..187FF  ; Cn #   [8] <reserved-187F8>..<reserved-187FF>
+ 18CD6..18CFE  ; Cn #  [41] <reserved-18CD6>..<reserved-18CFE>
+ 18D09..1AFEF  ; Cn # [8935] <reserved-18D09>..<reserved-1AFEF>
+ 1AFF4         ; Cn #       <reserved-1AFF4>
+ 1AFFC         ; Cn #       <reserved-1AFFC>
+ 1AFFF         ; Cn #       <reserved-1AFFF>
+ 1B123..1B131  ; Cn #  [15] <reserved-1B123>..<reserved-1B131>
+ 1B133..1B14F  ; Cn #  [29] <reserved-1B133>..<reserved-1B14F>
+ 1B153..1B154  ; Cn #   [2] <reserved-1B153>..<reserved-1B154>
+ 1B156..1B163  ; Cn #  [14] <reserved-1B156>..<reserved-1B163>
+ 1B168..1B16F  ; Cn #   [8] <reserved-1B168>..<reserved-1B16F>
+ 1B2FC..1BBFF  ; Cn # [2308] <reserved-1B2FC>..<reserved-1BBFF>
+ 1BC6B..1BC6F  ; Cn #   [5] <reserved-1BC6B>..<reserved-1BC6F>
+ 1BC7D..1BC7F  ; Cn #   [3] <reserved-1BC7D>..<reserved-1BC7F>
+ 1BC89..1BC8F  ; Cn #   [7] <reserved-1BC89>..<reserved-1BC8F>
+ 1BC9A..1BC9B  ; Cn #   [2] <reserved-1BC9A>..<reserved-1BC9B>
+ 1BCA4..1CBFF  ; Cn # [3932] <reserved-1BCA4>..<reserved-1CBFF>
+ 1CCFA..1CCFF  ; Cn #   [6] <reserved-1CCFA>..<reserved-1CCFF>
+ 1CEB4..1CEFF  ; Cn #  [76] <reserved-1CEB4>..<reserved-1CEFF>
+ 1CF2E..1CF2F  ; Cn #   [2] <reserved-1CF2E>..<reserved-1CF2F>
+ 1CF47..1CF4F  ; Cn #   [9] <reserved-1CF47>..<reserved-1CF4F>
+ 1CFC4..1CFFF  ; Cn #  [60] <reserved-1CFC4>..<reserved-1CFFF>
+ 1D0F6..1D0FF  ; Cn #  [10] <reserved-1D0F6>..<reserved-1D0FF>
+ 1D127..1D128  ; Cn #   [2] <reserved-1D127>..<reserved-1D128>
+ 1D1EB..1D1FF  ; Cn #  [21] <reserved-1D1EB>..<reserved-1D1FF>
+ 1D246..1D2BF  ; Cn # [122] <reserved-1D246>..<reserved-1D2BF>
+ 1D2D4..1D2DF  ; Cn #  [12] <reserved-1D2D4>..<reserved-1D2DF>
+ 1D2F4..1D2FF  ; Cn #  [12] <reserved-1D2F4>..<reserved-1D2FF>
+ 1D357..1D35F  ; Cn #   [9] <reserved-1D357>..<reserved-1D35F>
+ 1D379..1D3FF  ; Cn # [135] <reserved-1D379>..<reserved-1D3FF>
+ 1D455         ; Cn #       <reserved-1D455>
+ 1D49D         ; Cn #       <reserved-1D49D>
+ 1D4A0..1D4A1  ; Cn #   [2] <reserved-1D4A0>..<reserved-1D4A1>
+ 1D4A3..1D4A4  ; Cn #   [2] <reserved-1D4A3>..<reserved-1D4A4>
+ 1D4A7..1D4A8  ; Cn #   [2] <reserved-1D4A7>..<reserved-1D4A8>
+ 1D4AD         ; Cn #       <reserved-1D4AD>
+ 1D4BA         ; Cn #       <reserved-1D4BA>
+ 1D4BC         ; Cn #       <reserved-1D4BC>
+ 1D4C4         ; Cn #       <reserved-1D4C4>
+ 1D506         ; Cn #       <reserved-1D506>
+ 1D50B..1D50C  ; Cn #   [2] <reserved-1D50B>..<reserved-1D50C>
+ 1D515         ; Cn #       <reserved-1D515>
+ 1D51D         ; Cn #       <reserved-1D51D>
+ 1D53A         ; Cn #       <reserved-1D53A>
+ 1D53F         ; Cn #       <reserved-1D53F>
+ 1D545         ; Cn #       <reserved-1D545>
+ 1D547..1D549  ; Cn #   [3] <reserved-1D547>..<reserved-1D549>
+ 1D551         ; Cn #       <reserved-1D551>
+ 1D6A6..1D6A7  ; Cn #   [2] <reserved-1D6A6>..<reserved-1D6A7>
+ 1D7CC..1D7CD  ; Cn #   [2] <reserved-1D7CC>..<reserved-1D7CD>
+ 1DA8C..1DA9A  ; Cn #  [15] <reserved-1DA8C>..<reserved-1DA9A>
+ 1DAA0         ; Cn #       <reserved-1DAA0>
+ 1DAB0..1DEFF  ; Cn # [1104] <reserved-1DAB0>..<reserved-1DEFF>
+ 1DF1F..1DF24  ; Cn #   [6] <reserved-1DF1F>..<reserved-1DF24>
+ 1DF2B..1DFFF  ; Cn # [213] <reserved-1DF2B>..<reserved-1DFFF>
+ 1E007         ; Cn #       <reserved-1E007>
+ 1E019..1E01A  ; Cn #   [2] <reserved-1E019>..<reserved-1E01A>
+ 1E022         ; Cn #       <reserved-1E022>
+ 1E025         ; Cn #       <reserved-1E025>
+ 1E02B..1E02F  ; Cn #   [5] <reserved-1E02B>..<reserved-1E02F>
+ 1E06E..1E08E  ; Cn #  [33] <reserved-1E06E>..<reserved-1E08E>
+ 1E090..1E0FF  ; Cn # [112] <reserved-1E090>..<reserved-1E0FF>
+ 1E12D..1E12F  ; Cn #   [3] <reserved-1E12D>..<reserved-1E12F>
+ 1E13E..1E13F  ; Cn #   [2] <reserved-1E13E>..<reserved-1E13F>
+ 1E14A..1E14D  ; Cn #   [4] <reserved-1E14A>..<reserved-1E14D>
+ 1E150..1E28F  ; Cn # [320] <reserved-1E150>..<reserved-1E28F>
+ 1E2AF..1E2BF  ; Cn #  [17] <reserved-1E2AF>..<reserved-1E2BF>
+ 1E2FA..1E2FE  ; Cn #   [5] <reserved-1E2FA>..<reserved-1E2FE>
+ 1E300..1E4CF  ; Cn # [464] <reserved-1E300>..<reserved-1E4CF>
+ 1E4FA..1E5CF  ; Cn # [214] <reserved-1E4FA>..<reserved-1E5CF>
+ 1E5FB..1E5FE  ; Cn #   [4] <reserved-1E5FB>..<reserved-1E5FE>
+ 1E600..1E7DF  ; Cn # [480] <reserved-1E600>..<reserved-1E7DF>
+ 1E7E7         ; Cn #       <reserved-1E7E7>
+ 1E7EC         ; Cn #       <reserved-1E7EC>
+ 1E7EF         ; Cn #       <reserved-1E7EF>
+ 1E7FF         ; Cn #       <reserved-1E7FF>
+ 1E8C5..1E8C6  ; Cn #   [2] <reserved-1E8C5>..<reserved-1E8C6>
+ 1E8D7..1E8FF  ; Cn #  [41] <reserved-1E8D7>..<reserved-1E8FF>
+ 1E94C..1E94F  ; Cn #   [4] <reserved-1E94C>..<reserved-1E94F>
+ 1E95A..1E95D  ; Cn #   [4] <reserved-1E95A>..<reserved-1E95D>
+ 1E960..1EC70  ; Cn # [785] <reserved-1E960>..<reserved-1EC70>
+ 1ECB5..1ED00  ; Cn #  [76] <reserved-1ECB5>..<reserved-1ED00>
+ 1ED3E..1EDFF  ; Cn # [194] <reserved-1ED3E>..<reserved-1EDFF>
+ 1EE04         ; Cn #       <reserved-1EE04>
+ 1EE20         ; Cn #       <reserved-1EE20>
+ 1EE23         ; Cn #       <reserved-1EE23>
+ 1EE25..1EE26  ; Cn #   [2] <reserved-1EE25>..<reserved-1EE26>
+ 1EE28         ; Cn #       <reserved-1EE28>
+ 1EE33         ; Cn #       <reserved-1EE33>
+ 1EE38         ; Cn #       <reserved-1EE38>
+ 1EE3A         ; Cn #       <reserved-1EE3A>
+ 1EE3C..1EE41  ; Cn #   [6] <reserved-1EE3C>..<reserved-1EE41>
+ 1EE43..1EE46  ; Cn #   [4] <reserved-1EE43>..<reserved-1EE46>
+ 1EE48         ; Cn #       <reserved-1EE48>
+ 1EE4A         ; Cn #       <reserved-1EE4A>
+ 1EE4C         ; Cn #       <reserved-1EE4C>
+ 1EE50         ; Cn #       <reserved-1EE50>
+ 1EE53         ; Cn #       <reserved-1EE53>
+ 1EE55..1EE56  ; Cn #   [2] <reserved-1EE55>..<reserved-1EE56>
+ 1EE58         ; Cn #       <reserved-1EE58>
+ 1EE5A         ; Cn #       <reserved-1EE5A>
+ 1EE5C         ; Cn #       <reserved-1EE5C>
+ 1EE5E         ; Cn #       <reserved-1EE5E>
+ 1EE60         ; Cn #       <reserved-1EE60>
+ 1EE63         ; Cn #       <reserved-1EE63>
+ 1EE65..1EE66  ; Cn #   [2] <reserved-1EE65>..<reserved-1EE66>
+ 1EE6B         ; Cn #       <reserved-1EE6B>
+ 1EE73         ; Cn #       <reserved-1EE73>
+ 1EE78         ; Cn #       <reserved-1EE78>
+ 1EE7D         ; Cn #       <reserved-1EE7D>
+ 1EE7F         ; Cn #       <reserved-1EE7F>
+ 1EE8A         ; Cn #       <reserved-1EE8A>
+ 1EE9C..1EEA0  ; Cn #   [5] <reserved-1EE9C>..<reserved-1EEA0>
+ 1EEA4         ; Cn #       <reserved-1EEA4>
+ 1EEAA         ; Cn #       <reserved-1EEAA>
+ 1EEBC..1EEEF  ; Cn #  [52] <reserved-1EEBC>..<reserved-1EEEF>
+ 1EEF2..1EFFF  ; Cn # [270] <reserved-1EEF2>..<reserved-1EFFF>
+ 1F02C..1F02F  ; Cn #   [4] <reserved-1F02C>..<reserved-1F02F>
+ 1F094..1F09F  ; Cn #  [12] <reserved-1F094>..<reserved-1F09F>
+ 1F0AF..1F0B0  ; Cn #   [2] <reserved-1F0AF>..<reserved-1F0B0>
+ 1F0C0         ; Cn #       <reserved-1F0C0>
+ 1F0D0         ; Cn #       <reserved-1F0D0>
+ 1F0F6..1F0FF  ; Cn #  [10] <reserved-1F0F6>..<reserved-1F0FF>
+ 1F1AE..1F1E5  ; Cn #  [56] <reserved-1F1AE>..<reserved-1F1E5>
+ 1F203..1F20F  ; Cn #  [13] <reserved-1F203>..<reserved-1F20F>
+ 1F23C..1F23F  ; Cn #   [4] <reserved-1F23C>..<reserved-1F23F>
+ 1F249..1F24F  ; Cn #   [7] <reserved-1F249>..<reserved-1F24F>
+ 1F252..1F25F  ; Cn #  [14] <reserved-1F252>..<reserved-1F25F>
+ 1F266..1F2FF  ; Cn # [154] <reserved-1F266>..<reserved-1F2FF>
+ 1F6D8..1F6DB  ; Cn #   [4] <reserved-1F6D8>..<reserved-1F6DB>
+ 1F6ED..1F6EF  ; Cn #   [3] <reserved-1F6ED>..<reserved-1F6EF>
+ 1F6FD..1F6FF  ; Cn #   [3] <reserved-1F6FD>..<reserved-1F6FF>
+ 1F777..1F77A  ; Cn #   [4] <reserved-1F777>..<reserved-1F77A>
+ 1F7DA..1F7DF  ; Cn #   [6] <reserved-1F7DA>..<reserved-1F7DF>
+ 1F7EC..1F7EF  ; Cn #   [4] <reserved-1F7EC>..<reserved-1F7EF>
+ 1F7F1..1F7FF  ; Cn #  [15] <reserved-1F7F1>..<reserved-1F7FF>
+ 1F80C..1F80F  ; Cn #   [4] <reserved-1F80C>..<reserved-1F80F>
+ 1F848..1F84F  ; Cn #   [8] <reserved-1F848>..<reserved-1F84F>
+ 1F85A..1F85F  ; Cn #   [6] <reserved-1F85A>..<reserved-1F85F>
+ 1F888..1F88F  ; Cn #   [8] <reserved-1F888>..<reserved-1F88F>
+ 1F8AE..1F8AF  ; Cn #   [2] <reserved-1F8AE>..<reserved-1F8AF>
+ 1F8BC..1F8BF  ; Cn #   [4] <reserved-1F8BC>..<reserved-1F8BF>
+ 1F8C2..1F8FF  ; Cn #  [62] <reserved-1F8C2>..<reserved-1F8FF>
+ 1FA54..1FA5F  ; Cn #  [12] <reserved-1FA54>..<reserved-1FA5F>
+ 1FA6E..1FA6F  ; Cn #   [2] <reserved-1FA6E>..<reserved-1FA6F>
+ 1FA7D..1FA7F  ; Cn #   [3] <reserved-1FA7D>..<reserved-1FA7F>
+ 1FA8A..1FA8E  ; Cn #   [5] <reserved-1FA8A>..<reserved-1FA8E>
+ 1FAC7..1FACD  ; Cn #   [7] <reserved-1FAC7>..<reserved-1FACD>
+ 1FADD..1FADE  ; Cn #   [2] <reserved-1FADD>..<reserved-1FADE>
+ 1FAEA..1FAEF  ; Cn #   [6] <reserved-1FAEA>..<reserved-1FAEF>
+ 1FAF9..1FAFF  ; Cn #   [7] <reserved-1FAF9>..<reserved-1FAFF>
+ 1FB93         ; Cn #       <reserved-1FB93>
+ 1FBFA..1FFFF  ; Cn # [1030] <reserved-1FBFA>..<noncharacter-1FFFF>
+ 2A6E0..2A6FF  ; Cn #  [32] <reserved-2A6E0>..<reserved-2A6FF>
+ 2B73A..2B73F  ; Cn #   [6] <reserved-2B73A>..<reserved-2B73F>
+ 2B81E..2B81F  ; Cn #   [2] <reserved-2B81E>..<reserved-2B81F>
+ 2CEA2..2CEAF  ; Cn #  [14] <reserved-2CEA2>..<reserved-2CEAF>
+ 2EBE1..2EBEF  ; Cn #  [15] <reserved-2EBE1>..<reserved-2EBEF>
+ 2EE5E..2F7FF  ; Cn # [2466] <reserved-2EE5E>..<reserved-2F7FF>
+ 2FA1E..2FFFF  ; Cn # [1506] <reserved-2FA1E>..<noncharacter-2FFFF>
+ 3134B..3134F  ; Cn #   [5] <reserved-3134B>..<reserved-3134F>
+ 323B0..E0000  ; Cn # [711761] <reserved-323B0>..<reserved-E0000>
+ E0002..E001F  ; Cn #  [30] <reserved-E0002>..<reserved-E001F>
+ E0080..E00FF  ; Cn # [128] <reserved-E0080>..<reserved-E00FF>
+ E01F0..EFFFF  ; Cn # [65040] <reserved-E01F0>..<noncharacter-EFFFF>
+ FFFFE..FFFFF  ; Cn #   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
+ 10FFFE..10FFFF; Cn #   [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
+ 
+ # Total code points: 819533
+ 
+ # ================================================
+ 
+ # General_Category=Uppercase_Letter
+ 
+ 0041..005A    ; Lu #  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+ 00C0..00D6    ; Lu #  [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+ 00D8..00DE    ; Lu #   [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN
+ 0100          ; Lu #       LATIN CAPITAL LETTER A WITH MACRON
+ 0102          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE
+ 0104          ; Lu #       LATIN CAPITAL LETTER A WITH OGONEK
+ 0106          ; Lu #       LATIN CAPITAL LETTER C WITH ACUTE
+ 0108          ; Lu #       LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+ 010A          ; Lu #       LATIN CAPITAL LETTER C WITH DOT ABOVE
+ 010C          ; Lu #       LATIN CAPITAL LETTER C WITH CARON
+ 010E          ; Lu #       LATIN CAPITAL LETTER D WITH CARON
+ 0110          ; Lu #       LATIN CAPITAL LETTER D WITH STROKE
+ 0112          ; Lu #       LATIN CAPITAL LETTER E WITH MACRON
+ 0114          ; Lu #       LATIN CAPITAL LETTER E WITH BREVE
+ 0116          ; Lu #       LATIN CAPITAL LETTER E WITH DOT ABOVE
+ 0118          ; Lu #       LATIN CAPITAL LETTER E WITH OGONEK
+ 011A          ; Lu #       LATIN CAPITAL LETTER E WITH CARON
+ 011C          ; Lu #       LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+ 011E          ; Lu #       LATIN CAPITAL LETTER G WITH BREVE
+ 0120          ; Lu #       LATIN CAPITAL LETTER G WITH DOT ABOVE
+ 0122          ; Lu #       LATIN CAPITAL LETTER G WITH CEDILLA
+ 0124          ; Lu #       LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+ 0126          ; Lu #       LATIN CAPITAL LETTER H WITH STROKE
+ 0128          ; Lu #       LATIN CAPITAL LETTER I WITH TILDE
+ 012A          ; Lu #       LATIN CAPITAL LETTER I WITH MACRON
+ 012C          ; Lu #       LATIN CAPITAL LETTER I WITH BREVE
+ 012E          ; Lu #       LATIN CAPITAL LETTER I WITH OGONEK
+ 0130          ; Lu #       LATIN CAPITAL LETTER I WITH DOT ABOVE
+ 0132          ; Lu #       LATIN CAPITAL LIGATURE IJ
+ 0134          ; Lu #       LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+ 0136          ; Lu #       LATIN CAPITAL LETTER K WITH CEDILLA
+ 0139          ; Lu #       LATIN CAPITAL LETTER L WITH ACUTE
+ 013B          ; Lu #       LATIN CAPITAL LETTER L WITH CEDILLA
+ 013D          ; Lu #       LATIN CAPITAL LETTER L WITH CARON
+ 013F          ; Lu #       LATIN CAPITAL LETTER L WITH MIDDLE DOT
+ 0141          ; Lu #       LATIN CAPITAL LETTER L WITH STROKE
+ 0143          ; Lu #       LATIN CAPITAL LETTER N WITH ACUTE
+ 0145          ; Lu #       LATIN CAPITAL LETTER N WITH CEDILLA
+ 0147          ; Lu #       LATIN CAPITAL LETTER N WITH CARON
+ 014A          ; Lu #       LATIN CAPITAL LETTER ENG
+ 014C          ; Lu #       LATIN CAPITAL LETTER O WITH MACRON
+ 014E          ; Lu #       LATIN CAPITAL LETTER O WITH BREVE
+ 0150          ; Lu #       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ 0152          ; Lu #       LATIN CAPITAL LIGATURE OE
+ 0154          ; Lu #       LATIN CAPITAL LETTER R WITH ACUTE
+ 0156          ; Lu #       LATIN CAPITAL LETTER R WITH CEDILLA
+ 0158          ; Lu #       LATIN CAPITAL LETTER R WITH CARON
+ 015A          ; Lu #       LATIN CAPITAL LETTER S WITH ACUTE
+ 015C          ; Lu #       LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+ 015E          ; Lu #       LATIN CAPITAL LETTER S WITH CEDILLA
+ 0160          ; Lu #       LATIN CAPITAL LETTER S WITH CARON
+ 0162          ; Lu #       LATIN CAPITAL LETTER T WITH CEDILLA
+ 0164          ; Lu #       LATIN CAPITAL LETTER T WITH CARON
+ 0166          ; Lu #       LATIN CAPITAL LETTER T WITH STROKE
+ 0168          ; Lu #       LATIN CAPITAL LETTER U WITH TILDE
+ 016A          ; Lu #       LATIN CAPITAL LETTER U WITH MACRON
+ 016C          ; Lu #       LATIN CAPITAL LETTER U WITH BREVE
+ 016E          ; Lu #       LATIN CAPITAL LETTER U WITH RING ABOVE
+ 0170          ; Lu #       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ 0172          ; Lu #       LATIN CAPITAL LETTER U WITH OGONEK
+ 0174          ; Lu #       LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+ 0176          ; Lu #       LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+ 0178..0179    ; Lu #   [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
+ 017B          ; Lu #       LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ 017D          ; Lu #       LATIN CAPITAL LETTER Z WITH CARON
+ 0181..0182    ; Lu #   [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
+ 0184          ; Lu #       LATIN CAPITAL LETTER TONE SIX
+ 0186..0187    ; Lu #   [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
+ 0189..018B    ; Lu #   [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
+ 018E..0191    ; Lu #   [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
+ 0193..0194    ; Lu #   [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
+ 0196..0198    ; Lu #   [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
+ 019C..019D    ; Lu #   [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
+ 019F..01A0    ; Lu #   [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
+ 01A2          ; Lu #       LATIN CAPITAL LETTER OI
+ 01A4          ; Lu #       LATIN CAPITAL LETTER P WITH HOOK
+ 01A6..01A7    ; Lu #   [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
+ 01A9          ; Lu #       LATIN CAPITAL LETTER ESH
+ 01AC          ; Lu #       LATIN CAPITAL LETTER T WITH HOOK
+ 01AE..01AF    ; Lu #   [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
+ 01B1..01B3    ; Lu #   [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
+ 01B5          ; Lu #       LATIN CAPITAL LETTER Z WITH STROKE
+ 01B7..01B8    ; Lu #   [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
+ 01BC          ; Lu #       LATIN CAPITAL LETTER TONE FIVE
+ 01C4          ; Lu #       LATIN CAPITAL LETTER DZ WITH CARON
+ 01C7          ; Lu #       LATIN CAPITAL LETTER LJ
+ 01CA          ; Lu #       LATIN CAPITAL LETTER NJ
+ 01CD          ; Lu #       LATIN CAPITAL LETTER A WITH CARON
+ 01CF          ; Lu #       LATIN CAPITAL LETTER I WITH CARON
+ 01D1          ; Lu #       LATIN CAPITAL LETTER O WITH CARON
+ 01D3          ; Lu #       LATIN CAPITAL LETTER U WITH CARON
+ 01D5          ; Lu #       LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+ 01D7          ; Lu #       LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+ 01D9          ; Lu #       LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ 01DB          ; Lu #       LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+ 01DE          ; Lu #       LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+ 01E0          ; Lu #       LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+ 01E2          ; Lu #       LATIN CAPITAL LETTER AE WITH MACRON
+ 01E4          ; Lu #       LATIN CAPITAL LETTER G WITH STROKE
+ 01E6          ; Lu #       LATIN CAPITAL LETTER G WITH CARON
+ 01E8          ; Lu #       LATIN CAPITAL LETTER K WITH CARON
+ 01EA          ; Lu #       LATIN CAPITAL LETTER O WITH OGONEK
+ 01EC          ; Lu #       LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+ 01EE          ; Lu #       LATIN CAPITAL LETTER EZH WITH CARON
+ 01F1          ; Lu #       LATIN CAPITAL LETTER DZ
+ 01F4          ; Lu #       LATIN CAPITAL LETTER G WITH ACUTE
+ 01F6..01F8    ; Lu #   [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
+ 01FA          ; Lu #       LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ 01FC          ; Lu #       LATIN CAPITAL LETTER AE WITH ACUTE
+ 01FE          ; Lu #       LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ 0200          ; Lu #       LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+ 0202          ; Lu #       LATIN CAPITAL LETTER A WITH INVERTED BREVE
+ 0204          ; Lu #       LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+ 0206          ; Lu #       LATIN CAPITAL LETTER E WITH INVERTED BREVE
+ 0208          ; Lu #       LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+ 020A          ; Lu #       LATIN CAPITAL LETTER I WITH INVERTED BREVE
+ 020C          ; Lu #       LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+ 020E          ; Lu #       LATIN CAPITAL LETTER O WITH INVERTED BREVE
+ 0210          ; Lu #       LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+ 0212          ; Lu #       LATIN CAPITAL LETTER R WITH INVERTED BREVE
+ 0214          ; Lu #       LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+ 0216          ; Lu #       LATIN CAPITAL LETTER U WITH INVERTED BREVE
+ 0218          ; Lu #       LATIN CAPITAL LETTER S WITH COMMA BELOW
+ 021A          ; Lu #       LATIN CAPITAL LETTER T WITH COMMA BELOW
+ 021C          ; Lu #       LATIN CAPITAL LETTER YOGH
+ 021E          ; Lu #       LATIN CAPITAL LETTER H WITH CARON
+ 0220          ; Lu #       LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+ 0222          ; Lu #       LATIN CAPITAL LETTER OU
+ 0224          ; Lu #       LATIN CAPITAL LETTER Z WITH HOOK
+ 0226          ; Lu #       LATIN CAPITAL LETTER A WITH DOT ABOVE
+ 0228          ; Lu #       LATIN CAPITAL LETTER E WITH CEDILLA
+ 022A          ; Lu #       LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+ 022C          ; Lu #       LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+ 022E          ; Lu #       LATIN CAPITAL LETTER O WITH DOT ABOVE
+ 0230          ; Lu #       LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+ 0232          ; Lu #       LATIN CAPITAL LETTER Y WITH MACRON
+ 023A..023B    ; Lu #   [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
+ 023D..023E    ; Lu #   [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+ 0241          ; Lu #       LATIN CAPITAL LETTER GLOTTAL STOP
+ 0243..0246    ; Lu #   [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
+ 0248          ; Lu #       LATIN CAPITAL LETTER J WITH STROKE
+ 024A          ; Lu #       LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+ 024C          ; Lu #       LATIN CAPITAL LETTER R WITH STROKE
+ 024E          ; Lu #       LATIN CAPITAL LETTER Y WITH STROKE
+ 0370          ; Lu #       GREEK CAPITAL LETTER HETA
+ 0372          ; Lu #       GREEK CAPITAL LETTER ARCHAIC SAMPI
+ 0376          ; Lu #       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+ 037F          ; Lu #       GREEK CAPITAL LETTER YOT
+ 0386          ; Lu #       GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 0388..038A    ; Lu #   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+ 038C          ; Lu #       GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 038E..038F    ; Lu #   [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 0391..03A1    ; Lu #  [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+ 03A3..03AB    ; Lu #   [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ 03CF          ; Lu #       GREEK CAPITAL KAI SYMBOL
+ 03D2..03D4    ; Lu #   [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+ 03D8          ; Lu #       GREEK LETTER ARCHAIC KOPPA
+ 03DA          ; Lu #       GREEK LETTER STIGMA
+ 03DC          ; Lu #       GREEK LETTER DIGAMMA
+ 03DE          ; Lu #       GREEK LETTER KOPPA
+ 03E0          ; Lu #       GREEK LETTER SAMPI
+ 03E2          ; Lu #       COPTIC CAPITAL LETTER SHEI
+ 03E4          ; Lu #       COPTIC CAPITAL LETTER FEI
+ 03E6          ; Lu #       COPTIC CAPITAL LETTER KHEI
+ 03E8          ; Lu #       COPTIC CAPITAL LETTER HORI
+ 03EA          ; Lu #       COPTIC CAPITAL LETTER GANGIA
+ 03EC          ; Lu #       COPTIC CAPITAL LETTER SHIMA
+ 03EE          ; Lu #       COPTIC CAPITAL LETTER DEI
+ 03F4          ; Lu #       GREEK CAPITAL THETA SYMBOL
+ 03F7          ; Lu #       GREEK CAPITAL LETTER SHO
+ 03F9..03FA    ; Lu #   [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
+ 03FD..042F    ; Lu #  [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
+ 0460          ; Lu #       CYRILLIC CAPITAL LETTER OMEGA
+ 0462          ; Lu #       CYRILLIC CAPITAL LETTER YAT
+ 0464          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED E
+ 0466          ; Lu #       CYRILLIC CAPITAL LETTER LITTLE YUS
+ 0468          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+ 046A          ; Lu #       CYRILLIC CAPITAL LETTER BIG YUS
+ 046C          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+ 046E          ; Lu #       CYRILLIC CAPITAL LETTER KSI
+ 0470          ; Lu #       CYRILLIC CAPITAL LETTER PSI
+ 0472          ; Lu #       CYRILLIC CAPITAL LETTER FITA
+ 0474          ; Lu #       CYRILLIC CAPITAL LETTER IZHITSA
+ 0476          ; Lu #       CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 0478          ; Lu #       CYRILLIC CAPITAL LETTER UK
+ 047A          ; Lu #       CYRILLIC CAPITAL LETTER ROUND OMEGA
+ 047C          ; Lu #       CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+ 047E          ; Lu #       CYRILLIC CAPITAL LETTER OT
+ 0480          ; Lu #       CYRILLIC CAPITAL LETTER KOPPA
+ 048A          ; Lu #       CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+ 048C          ; Lu #       CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+ 048E          ; Lu #       CYRILLIC CAPITAL LETTER ER WITH TICK
+ 0490          ; Lu #       CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ 0492          ; Lu #       CYRILLIC CAPITAL LETTER GHE WITH STROKE
+ 0494          ; Lu #       CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+ 0496          ; Lu #       CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+ 0498          ; Lu #       CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+ 049A          ; Lu #       CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+ 049C          ; Lu #       CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+ 049E          ; Lu #       CYRILLIC CAPITAL LETTER KA WITH STROKE
+ 04A0          ; Lu #       CYRILLIC CAPITAL LETTER BASHKIR KA
+ 04A2          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+ 04A4          ; Lu #       CYRILLIC CAPITAL LIGATURE EN GHE
+ 04A6          ; Lu #       CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+ 04A8          ; Lu #       CYRILLIC CAPITAL LETTER ABKHASIAN HA
+ 04AA          ; Lu #       CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+ 04AC          ; Lu #       CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+ 04AE          ; Lu #       CYRILLIC CAPITAL LETTER STRAIGHT U
+ 04B0          ; Lu #       CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+ 04B2          ; Lu #       CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+ 04B4          ; Lu #       CYRILLIC CAPITAL LIGATURE TE TSE
+ 04B6          ; Lu #       CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+ 04B8          ; Lu #       CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+ 04BA          ; Lu #       CYRILLIC CAPITAL LETTER SHHA
+ 04BC          ; Lu #       CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+ 04BE          ; Lu #       CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+ 04C0..04C1    ; Lu #   [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+ 04C3          ; Lu #       CYRILLIC CAPITAL LETTER KA WITH HOOK
+ 04C5          ; Lu #       CYRILLIC CAPITAL LETTER EL WITH TAIL
+ 04C7          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH HOOK
+ 04C9          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH TAIL
+ 04CB          ; Lu #       CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+ 04CD          ; Lu #       CYRILLIC CAPITAL LETTER EM WITH TAIL
+ 04D0          ; Lu #       CYRILLIC CAPITAL LETTER A WITH BREVE
+ 04D2          ; Lu #       CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+ 04D4          ; Lu #       CYRILLIC CAPITAL LIGATURE A IE
+ 04D6          ; Lu #       CYRILLIC CAPITAL LETTER IE WITH BREVE
+ 04D8          ; Lu #       CYRILLIC CAPITAL LETTER SCHWA
+ 04DA          ; Lu #       CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+ 04DC          ; Lu #       CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+ 04DE          ; Lu #       CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+ 04E0          ; Lu #       CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+ 04E2          ; Lu #       CYRILLIC CAPITAL LETTER I WITH MACRON
+ 04E4          ; Lu #       CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+ 04E6          ; Lu #       CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+ 04E8          ; Lu #       CYRILLIC CAPITAL LETTER BARRED O
+ 04EA          ; Lu #       CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+ 04EC          ; Lu #       CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+ 04EE          ; Lu #       CYRILLIC CAPITAL LETTER U WITH MACRON
+ 04F0          ; Lu #       CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+ 04F2          ; Lu #       CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+ 04F4          ; Lu #       CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+ 04F6          ; Lu #       CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+ 04F8          ; Lu #       CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+ 04FA          ; Lu #       CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+ 04FC          ; Lu #       CYRILLIC CAPITAL LETTER HA WITH HOOK
+ 04FE          ; Lu #       CYRILLIC CAPITAL LETTER HA WITH STROKE
+ 0500          ; Lu #       CYRILLIC CAPITAL LETTER KOMI DE
+ 0502          ; Lu #       CYRILLIC CAPITAL LETTER KOMI DJE
+ 0504          ; Lu #       CYRILLIC CAPITAL LETTER KOMI ZJE
+ 0506          ; Lu #       CYRILLIC CAPITAL LETTER KOMI DZJE
+ 0508          ; Lu #       CYRILLIC CAPITAL LETTER KOMI LJE
+ 050A          ; Lu #       CYRILLIC CAPITAL LETTER KOMI NJE
+ 050C          ; Lu #       CYRILLIC CAPITAL LETTER KOMI SJE
+ 050E          ; Lu #       CYRILLIC CAPITAL LETTER KOMI TJE
+ 0510          ; Lu #       CYRILLIC CAPITAL LETTER REVERSED ZE
+ 0512          ; Lu #       CYRILLIC CAPITAL LETTER EL WITH HOOK
+ 0514          ; Lu #       CYRILLIC CAPITAL LETTER LHA
+ 0516          ; Lu #       CYRILLIC CAPITAL LETTER RHA
+ 0518          ; Lu #       CYRILLIC CAPITAL LETTER YAE
+ 051A          ; Lu #       CYRILLIC CAPITAL LETTER QA
+ 051C          ; Lu #       CYRILLIC CAPITAL LETTER WE
+ 051E          ; Lu #       CYRILLIC CAPITAL LETTER ALEUT KA
+ 0520          ; Lu #       CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+ 0522          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+ 0524          ; Lu #       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+ 0526          ; Lu #       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+ 0528          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+ 052A          ; Lu #       CYRILLIC CAPITAL LETTER DZZHE
+ 052C          ; Lu #       CYRILLIC CAPITAL LETTER DCHE
+ 052E          ; Lu #       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+ 0531..0556    ; Lu #  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+ 10A0..10C5    ; Lu #  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+ 10C7          ; Lu #       GEORGIAN CAPITAL LETTER YN
+ 10CD          ; Lu #       GEORGIAN CAPITAL LETTER AEN
+ 13A0..13F5    ; Lu #  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+ 1C89          ; Lu #       CYRILLIC CAPITAL LETTER TJE
+ 1C90..1CBA    ; Lu #  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+ 1CBD..1CBF    ; Lu #   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+ 1E00          ; Lu #       LATIN CAPITAL LETTER A WITH RING BELOW
+ 1E02          ; Lu #       LATIN CAPITAL LETTER B WITH DOT ABOVE
+ 1E04          ; Lu #       LATIN CAPITAL LETTER B WITH DOT BELOW
+ 1E06          ; Lu #       LATIN CAPITAL LETTER B WITH LINE BELOW
+ 1E08          ; Lu #       LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+ 1E0A          ; Lu #       LATIN CAPITAL LETTER D WITH DOT ABOVE
+ 1E0C          ; Lu #       LATIN CAPITAL LETTER D WITH DOT BELOW
+ 1E0E          ; Lu #       LATIN CAPITAL LETTER D WITH LINE BELOW
+ 1E10          ; Lu #       LATIN CAPITAL LETTER D WITH CEDILLA
+ 1E12          ; Lu #       LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+ 1E14          ; Lu #       LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+ 1E16          ; Lu #       LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+ 1E18          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+ 1E1A          ; Lu #       LATIN CAPITAL LETTER E WITH TILDE BELOW
+ 1E1C          ; Lu #       LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+ 1E1E          ; Lu #       LATIN CAPITAL LETTER F WITH DOT ABOVE
+ 1E20          ; Lu #       LATIN CAPITAL LETTER G WITH MACRON
+ 1E22          ; Lu #       LATIN CAPITAL LETTER H WITH DOT ABOVE
+ 1E24          ; Lu #       LATIN CAPITAL LETTER H WITH DOT BELOW
+ 1E26          ; Lu #       LATIN CAPITAL LETTER H WITH DIAERESIS
+ 1E28          ; Lu #       LATIN CAPITAL LETTER H WITH CEDILLA
+ 1E2A          ; Lu #       LATIN CAPITAL LETTER H WITH BREVE BELOW
+ 1E2C          ; Lu #       LATIN CAPITAL LETTER I WITH TILDE BELOW
+ 1E2E          ; Lu #       LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+ 1E30          ; Lu #       LATIN CAPITAL LETTER K WITH ACUTE
+ 1E32          ; Lu #       LATIN CAPITAL LETTER K WITH DOT BELOW
+ 1E34          ; Lu #       LATIN CAPITAL LETTER K WITH LINE BELOW
+ 1E36          ; Lu #       LATIN CAPITAL LETTER L WITH DOT BELOW
+ 1E38          ; Lu #       LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+ 1E3A          ; Lu #       LATIN CAPITAL LETTER L WITH LINE BELOW
+ 1E3C          ; Lu #       LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+ 1E3E          ; Lu #       LATIN CAPITAL LETTER M WITH ACUTE
+ 1E40          ; Lu #       LATIN CAPITAL LETTER M WITH DOT ABOVE
+ 1E42          ; Lu #       LATIN CAPITAL LETTER M WITH DOT BELOW
+ 1E44          ; Lu #       LATIN CAPITAL LETTER N WITH DOT ABOVE
+ 1E46          ; Lu #       LATIN CAPITAL LETTER N WITH DOT BELOW
+ 1E48          ; Lu #       LATIN CAPITAL LETTER N WITH LINE BELOW
+ 1E4A          ; Lu #       LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+ 1E4C          ; Lu #       LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+ 1E4E          ; Lu #       LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+ 1E50          ; Lu #       LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+ 1E52          ; Lu #       LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+ 1E54          ; Lu #       LATIN CAPITAL LETTER P WITH ACUTE
+ 1E56          ; Lu #       LATIN CAPITAL LETTER P WITH DOT ABOVE
+ 1E58          ; Lu #       LATIN CAPITAL LETTER R WITH DOT ABOVE
+ 1E5A          ; Lu #       LATIN CAPITAL LETTER R WITH DOT BELOW
+ 1E5C          ; Lu #       LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+ 1E5E          ; Lu #       LATIN CAPITAL LETTER R WITH LINE BELOW
+ 1E60          ; Lu #       LATIN CAPITAL LETTER S WITH DOT ABOVE
+ 1E62          ; Lu #       LATIN CAPITAL LETTER S WITH DOT BELOW
+ 1E64          ; Lu #       LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+ 1E66          ; Lu #       LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+ 1E68          ; Lu #       LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+ 1E6A          ; Lu #       LATIN CAPITAL LETTER T WITH DOT ABOVE
+ 1E6C          ; Lu #       LATIN CAPITAL LETTER T WITH DOT BELOW
+ 1E6E          ; Lu #       LATIN CAPITAL LETTER T WITH LINE BELOW
+ 1E70          ; Lu #       LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+ 1E72          ; Lu #       LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+ 1E74          ; Lu #       LATIN CAPITAL LETTER U WITH TILDE BELOW
+ 1E76          ; Lu #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+ 1E78          ; Lu #       LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+ 1E7A          ; Lu #       LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+ 1E7C          ; Lu #       LATIN CAPITAL LETTER V WITH TILDE
+ 1E7E          ; Lu #       LATIN CAPITAL LETTER V WITH DOT BELOW
+ 1E80          ; Lu #       LATIN CAPITAL LETTER W WITH GRAVE
+ 1E82          ; Lu #       LATIN CAPITAL LETTER W WITH ACUTE
+ 1E84          ; Lu #       LATIN CAPITAL LETTER W WITH DIAERESIS
+ 1E86          ; Lu #       LATIN CAPITAL LETTER W WITH DOT ABOVE
+ 1E88          ; Lu #       LATIN CAPITAL LETTER W WITH DOT BELOW
+ 1E8A          ; Lu #       LATIN CAPITAL LETTER X WITH DOT ABOVE
+ 1E8C          ; Lu #       LATIN CAPITAL LETTER X WITH DIAERESIS
+ 1E8E          ; Lu #       LATIN CAPITAL LETTER Y WITH DOT ABOVE
+ 1E90          ; Lu #       LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+ 1E92          ; Lu #       LATIN CAPITAL LETTER Z WITH DOT BELOW
+ 1E94          ; Lu #       LATIN CAPITAL LETTER Z WITH LINE BELOW
+ 1E9E          ; Lu #       LATIN CAPITAL LETTER SHARP S
+ 1EA0          ; Lu #       LATIN CAPITAL LETTER A WITH DOT BELOW
+ 1EA2          ; Lu #       LATIN CAPITAL LETTER A WITH HOOK ABOVE
+ 1EA4          ; Lu #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+ 1EA6          ; Lu #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+ 1EA8          ; Lu #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EAA          ; Lu #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+ 1EAC          ; Lu #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ 1EAE          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+ 1EB0          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+ 1EB2          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+ 1EB4          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+ 1EB6          ; Lu #       LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+ 1EB8          ; Lu #       LATIN CAPITAL LETTER E WITH DOT BELOW
+ 1EBA          ; Lu #       LATIN CAPITAL LETTER E WITH HOOK ABOVE
+ 1EBC          ; Lu #       LATIN CAPITAL LETTER E WITH TILDE
+ 1EBE          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+ 1EC0          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+ 1EC2          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EC4          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+ 1EC6          ; Lu #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ 1EC8          ; Lu #       LATIN CAPITAL LETTER I WITH HOOK ABOVE
+ 1ECA          ; Lu #       LATIN CAPITAL LETTER I WITH DOT BELOW
+ 1ECC          ; Lu #       LATIN CAPITAL LETTER O WITH DOT BELOW
+ 1ECE          ; Lu #       LATIN CAPITAL LETTER O WITH HOOK ABOVE
+ 1ED0          ; Lu #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+ 1ED2          ; Lu #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+ 1ED4          ; Lu #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ 1ED6          ; Lu #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+ 1ED8          ; Lu #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ 1EDA          ; Lu #       LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+ 1EDC          ; Lu #       LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+ 1EDE          ; Lu #       LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+ 1EE0          ; Lu #       LATIN CAPITAL LETTER O WITH HORN AND TILDE
+ 1EE2          ; Lu #       LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+ 1EE4          ; Lu #       LATIN CAPITAL LETTER U WITH DOT BELOW
+ 1EE6          ; Lu #       LATIN CAPITAL LETTER U WITH HOOK ABOVE
+ 1EE8          ; Lu #       LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+ 1EEA          ; Lu #       LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+ 1EEC          ; Lu #       LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+ 1EEE          ; Lu #       LATIN CAPITAL LETTER U WITH HORN AND TILDE
+ 1EF0          ; Lu #       LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ 1EF2          ; Lu #       LATIN CAPITAL LETTER Y WITH GRAVE
+ 1EF4          ; Lu #       LATIN CAPITAL LETTER Y WITH DOT BELOW
+ 1EF6          ; Lu #       LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+ 1EF8          ; Lu #       LATIN CAPITAL LETTER Y WITH TILDE
+ 1EFA          ; Lu #       LATIN CAPITAL LETTER MIDDLE-WELSH LL
+ 1EFC          ; Lu #       LATIN CAPITAL LETTER MIDDLE-WELSH V
+ 1EFE          ; Lu #       LATIN CAPITAL LETTER Y WITH LOOP
+ 1F08..1F0F    ; Lu #   [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+ 1F18..1F1D    ; Lu #   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+ 1F28..1F2F    ; Lu #   [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+ 1F38..1F3F    ; Lu #   [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+ 1F48..1F4D    ; Lu #   [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+ 1F59          ; Lu #       GREEK CAPITAL LETTER UPSILON WITH DASIA
+ 1F5B          ; Lu #       GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+ 1F5D          ; Lu #       GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+ 1F5F          ; Lu #       GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+ 1F68..1F6F    ; Lu #   [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+ 1FB8..1FBB    ; Lu #   [4] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH OXIA
+ 1FC8..1FCB    ; Lu #   [4] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH OXIA
+ 1FD8..1FDB    ; Lu #   [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
+ 1FE8..1FEC    ; Lu #   [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+ 1FF8..1FFB    ; Lu #   [4] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH OXIA
+ 2102          ; Lu #       DOUBLE-STRUCK CAPITAL C
+ 2107          ; Lu #       EULER CONSTANT
+ 210B..210D    ; Lu #   [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H
+ 2110..2112    ; Lu #   [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L
+ 2115          ; Lu #       DOUBLE-STRUCK CAPITAL N
+ 2119..211D    ; Lu #   [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+ 2124          ; Lu #       DOUBLE-STRUCK CAPITAL Z
+ 2126          ; Lu #       OHM SIGN
+ 2128          ; Lu #       BLACK-LETTER CAPITAL Z
+ 212A..212D    ; Lu #   [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+ 2130..2133    ; Lu #   [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M
+ 213E..213F    ; Lu #   [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI
+ 2145          ; Lu #       DOUBLE-STRUCK ITALIC CAPITAL D
+ 2183          ; Lu #       ROMAN NUMERAL REVERSED ONE HUNDRED
+ 2C00..2C2F    ; Lu #  [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+ 2C60          ; Lu #       LATIN CAPITAL LETTER L WITH DOUBLE BAR
+ 2C62..2C64    ; Lu #   [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
+ 2C67          ; Lu #       LATIN CAPITAL LETTER H WITH DESCENDER
+ 2C69          ; Lu #       LATIN CAPITAL LETTER K WITH DESCENDER
+ 2C6B          ; Lu #       LATIN CAPITAL LETTER Z WITH DESCENDER
+ 2C6D..2C70    ; Lu #   [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA
+ 2C72          ; Lu #       LATIN CAPITAL LETTER W WITH HOOK
+ 2C75          ; Lu #       LATIN CAPITAL LETTER HALF H
+ 2C7E..2C80    ; Lu #   [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA
+ 2C82          ; Lu #       COPTIC CAPITAL LETTER VIDA
+ 2C84          ; Lu #       COPTIC CAPITAL LETTER GAMMA
+ 2C86          ; Lu #       COPTIC CAPITAL LETTER DALDA
+ 2C88          ; Lu #       COPTIC CAPITAL LETTER EIE
+ 2C8A          ; Lu #       COPTIC CAPITAL LETTER SOU
+ 2C8C          ; Lu #       COPTIC CAPITAL LETTER ZATA
+ 2C8E          ; Lu #       COPTIC CAPITAL LETTER HATE
+ 2C90          ; Lu #       COPTIC CAPITAL LETTER THETHE
+ 2C92          ; Lu #       COPTIC CAPITAL LETTER IAUDA
+ 2C94          ; Lu #       COPTIC CAPITAL LETTER KAPA
+ 2C96          ; Lu #       COPTIC CAPITAL LETTER LAULA
+ 2C98          ; Lu #       COPTIC CAPITAL LETTER MI
+ 2C9A          ; Lu #       COPTIC CAPITAL LETTER NI
+ 2C9C          ; Lu #       COPTIC CAPITAL LETTER KSI
+ 2C9E          ; Lu #       COPTIC CAPITAL LETTER O
+ 2CA0          ; Lu #       COPTIC CAPITAL LETTER PI
+ 2CA2          ; Lu #       COPTIC CAPITAL LETTER RO
+ 2CA4          ; Lu #       COPTIC CAPITAL LETTER SIMA
+ 2CA6          ; Lu #       COPTIC CAPITAL LETTER TAU
+ 2CA8          ; Lu #       COPTIC CAPITAL LETTER UA
+ 2CAA          ; Lu #       COPTIC CAPITAL LETTER FI
+ 2CAC          ; Lu #       COPTIC CAPITAL LETTER KHI
+ 2CAE          ; Lu #       COPTIC CAPITAL LETTER PSI
+ 2CB0          ; Lu #       COPTIC CAPITAL LETTER OOU
+ 2CB2          ; Lu #       COPTIC CAPITAL LETTER DIALECT-P ALEF
+ 2CB4          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC AIN
+ 2CB6          ; Lu #       COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+ 2CB8          ; Lu #       COPTIC CAPITAL LETTER DIALECT-P KAPA
+ 2CBA          ; Lu #       COPTIC CAPITAL LETTER DIALECT-P NI
+ 2CBC          ; Lu #       COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+ 2CBE          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC OOU
+ 2CC0          ; Lu #       COPTIC CAPITAL LETTER SAMPI
+ 2CC2          ; Lu #       COPTIC CAPITAL LETTER CROSSED SHEI
+ 2CC4          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC SHEI
+ 2CC6          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC ESH
+ 2CC8          ; Lu #       COPTIC CAPITAL LETTER AKHMIMIC KHEI
+ 2CCA          ; Lu #       COPTIC CAPITAL LETTER DIALECT-P HORI
+ 2CCC          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC HORI
+ 2CCE          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC HA
+ 2CD0          ; Lu #       COPTIC CAPITAL LETTER L-SHAPED HA
+ 2CD2          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC HEI
+ 2CD4          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC HAT
+ 2CD6          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+ 2CD8          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC DJA
+ 2CDA          ; Lu #       COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+ 2CDC          ; Lu #       COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+ 2CDE          ; Lu #       COPTIC CAPITAL LETTER OLD NUBIAN NGI
+ 2CE0          ; Lu #       COPTIC CAPITAL LETTER OLD NUBIAN NYI
+ 2CE2          ; Lu #       COPTIC CAPITAL LETTER OLD NUBIAN WAU
+ 2CEB          ; Lu #       COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+ 2CED          ; Lu #       COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+ 2CF2          ; Lu #       COPTIC CAPITAL LETTER BOHAIRIC KHEI
+ A640          ; Lu #       CYRILLIC CAPITAL LETTER ZEMLYA
+ A642          ; Lu #       CYRILLIC CAPITAL LETTER DZELO
+ A644          ; Lu #       CYRILLIC CAPITAL LETTER REVERSED DZE
+ A646          ; Lu #       CYRILLIC CAPITAL LETTER IOTA
+ A648          ; Lu #       CYRILLIC CAPITAL LETTER DJERV
+ A64A          ; Lu #       CYRILLIC CAPITAL LETTER MONOGRAPH UK
+ A64C          ; Lu #       CYRILLIC CAPITAL LETTER BROAD OMEGA
+ A64E          ; Lu #       CYRILLIC CAPITAL LETTER NEUTRAL YER
+ A650          ; Lu #       CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+ A652          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED YAT
+ A654          ; Lu #       CYRILLIC CAPITAL LETTER REVERSED YU
+ A656          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED A
+ A658          ; Lu #       CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+ A65A          ; Lu #       CYRILLIC CAPITAL LETTER BLENDED YUS
+ A65C          ; Lu #       CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+ A65E          ; Lu #       CYRILLIC CAPITAL LETTER YN
+ A660          ; Lu #       CYRILLIC CAPITAL LETTER REVERSED TSE
+ A662          ; Lu #       CYRILLIC CAPITAL LETTER SOFT DE
+ A664          ; Lu #       CYRILLIC CAPITAL LETTER SOFT EL
+ A666          ; Lu #       CYRILLIC CAPITAL LETTER SOFT EM
+ A668          ; Lu #       CYRILLIC CAPITAL LETTER MONOCULAR O
+ A66A          ; Lu #       CYRILLIC CAPITAL LETTER BINOCULAR O
+ A66C          ; Lu #       CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+ A680          ; Lu #       CYRILLIC CAPITAL LETTER DWE
+ A682          ; Lu #       CYRILLIC CAPITAL LETTER DZWE
+ A684          ; Lu #       CYRILLIC CAPITAL LETTER ZHWE
+ A686          ; Lu #       CYRILLIC CAPITAL LETTER CCHE
+ A688          ; Lu #       CYRILLIC CAPITAL LETTER DZZE
+ A68A          ; Lu #       CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+ A68C          ; Lu #       CYRILLIC CAPITAL LETTER TWE
+ A68E          ; Lu #       CYRILLIC CAPITAL LETTER TSWE
+ A690          ; Lu #       CYRILLIC CAPITAL LETTER TSSE
+ A692          ; Lu #       CYRILLIC CAPITAL LETTER TCHE
+ A694          ; Lu #       CYRILLIC CAPITAL LETTER HWE
+ A696          ; Lu #       CYRILLIC CAPITAL LETTER SHWE
+ A698          ; Lu #       CYRILLIC CAPITAL LETTER DOUBLE O
+ A69A          ; Lu #       CYRILLIC CAPITAL LETTER CROSSED O
+ A722          ; Lu #       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+ A724          ; Lu #       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+ A726          ; Lu #       LATIN CAPITAL LETTER HENG
+ A728          ; Lu #       LATIN CAPITAL LETTER TZ
+ A72A          ; Lu #       LATIN CAPITAL LETTER TRESILLO
+ A72C          ; Lu #       LATIN CAPITAL LETTER CUATRILLO
+ A72E          ; Lu #       LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+ A732          ; Lu #       LATIN CAPITAL LETTER AA
+ A734          ; Lu #       LATIN CAPITAL LETTER AO
+ A736          ; Lu #       LATIN CAPITAL LETTER AU
+ A738          ; Lu #       LATIN CAPITAL LETTER AV
+ A73A          ; Lu #       LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+ A73C          ; Lu #       LATIN CAPITAL LETTER AY
+ A73E          ; Lu #       LATIN CAPITAL LETTER REVERSED C WITH DOT
+ A740          ; Lu #       LATIN CAPITAL LETTER K WITH STROKE
+ A742          ; Lu #       LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+ A744          ; Lu #       LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+ A746          ; Lu #       LATIN CAPITAL LETTER BROKEN L
+ A748          ; Lu #       LATIN CAPITAL LETTER L WITH HIGH STROKE
+ A74A          ; Lu #       LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+ A74C          ; Lu #       LATIN CAPITAL LETTER O WITH LOOP
+ A74E          ; Lu #       LATIN CAPITAL LETTER OO
+ A750          ; Lu #       LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+ A752          ; Lu #       LATIN CAPITAL LETTER P WITH FLOURISH
+ A754          ; Lu #       LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+ A756          ; Lu #       LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+ A758          ; Lu #       LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+ A75A          ; Lu #       LATIN CAPITAL LETTER R ROTUNDA
+ A75C          ; Lu #       LATIN CAPITAL LETTER RUM ROTUNDA
+ A75E          ; Lu #       LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+ A760          ; Lu #       LATIN CAPITAL LETTER VY
+ A762          ; Lu #       LATIN CAPITAL LETTER VISIGOTHIC Z
+ A764          ; Lu #       LATIN CAPITAL LETTER THORN WITH STROKE
+ A766          ; Lu #       LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+ A768          ; Lu #       LATIN CAPITAL LETTER VEND
+ A76A          ; Lu #       LATIN CAPITAL LETTER ET
+ A76C          ; Lu #       LATIN CAPITAL LETTER IS
+ A76E          ; Lu #       LATIN CAPITAL LETTER CON
+ A779          ; Lu #       LATIN CAPITAL LETTER INSULAR D
+ A77B          ; Lu #       LATIN CAPITAL LETTER INSULAR F
+ A77D..A77E    ; Lu #   [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
+ A780          ; Lu #       LATIN CAPITAL LETTER TURNED L
+ A782          ; Lu #       LATIN CAPITAL LETTER INSULAR R
+ A784          ; Lu #       LATIN CAPITAL LETTER INSULAR S
+ A786          ; Lu #       LATIN CAPITAL LETTER INSULAR T
+ A78B          ; Lu #       LATIN CAPITAL LETTER SALTILLO
+ A78D          ; Lu #       LATIN CAPITAL LETTER TURNED H
+ A790          ; Lu #       LATIN CAPITAL LETTER N WITH DESCENDER
+ A792          ; Lu #       LATIN CAPITAL LETTER C WITH BAR
+ A796          ; Lu #       LATIN CAPITAL LETTER B WITH FLOURISH
+ A798          ; Lu #       LATIN CAPITAL LETTER F WITH STROKE
+ A79A          ; Lu #       LATIN CAPITAL LETTER VOLAPUK AE
+ A79C          ; Lu #       LATIN CAPITAL LETTER VOLAPUK OE
+ A79E          ; Lu #       LATIN CAPITAL LETTER VOLAPUK UE
+ A7A0          ; Lu #       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+ A7A2          ; Lu #       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+ A7A4          ; Lu #       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+ A7A6          ; Lu #       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+ A7A8          ; Lu #       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+ A7AA..A7AE    ; Lu #   [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I
+ A7B0..A7B4    ; Lu #   [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
+ A7B6          ; Lu #       LATIN CAPITAL LETTER OMEGA
+ A7B8          ; Lu #       LATIN CAPITAL LETTER U WITH STROKE
+ A7BA          ; Lu #       LATIN CAPITAL LETTER GLOTTAL A
+ A7BC          ; Lu #       LATIN CAPITAL LETTER GLOTTAL I
+ A7BE          ; Lu #       LATIN CAPITAL LETTER GLOTTAL U
+ A7C0          ; Lu #       LATIN CAPITAL LETTER OLD POLISH O
+ A7C2          ; Lu #       LATIN CAPITAL LETTER ANGLICANA W
+ A7C4..A7C7    ; Lu #   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
+ A7C9          ; Lu #       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB..A7CC    ; Lu #   [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
+ A7D0          ; Lu #       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D6          ; Lu #       LATIN CAPITAL LETTER MIDDLE SCOTS S
+ A7D8          ; Lu #       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; Lu #       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; Lu #       LATIN CAPITAL LETTER LAMBDA WITH STROKE
+ A7F5          ; Lu #       LATIN CAPITAL LETTER REVERSED HALF H
+ FF21..FF3A    ; Lu #  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+ 10400..10427  ; Lu #  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+ 104B0..104D3  ; Lu #  [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+ 10570..1057A  ; Lu #  [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+ 1057C..1058A  ; Lu #  [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+ 1058C..10592  ; Lu #   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+ 10594..10595  ; Lu #   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+ 10C80..10CB2  ; Lu #  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+ 10D50..10D65  ; Lu #  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 118A0..118BF  ; Lu #  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
+ 16E40..16E5F  ; Lu #  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
+ 1D400..1D419  ; Lu #  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
+ 1D434..1D44D  ; Lu #  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
+ 1D468..1D481  ; Lu #  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
+ 1D49C         ; Lu #       MATHEMATICAL SCRIPT CAPITAL A
+ 1D49E..1D49F  ; Lu #   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+ 1D4A2         ; Lu #       MATHEMATICAL SCRIPT CAPITAL G
+ 1D4A5..1D4A6  ; Lu #   [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+ 1D4A9..1D4AC  ; Lu #   [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+ 1D4AE..1D4B5  ; Lu #   [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z
+ 1D4D0..1D4E9  ; Lu #  [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z
+ 1D504..1D505  ; Lu #   [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B
+ 1D507..1D50A  ; Lu #   [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+ 1D50D..1D514  ; Lu #   [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+ 1D516..1D51C  ; Lu #   [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+ 1D538..1D539  ; Lu #   [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+ 1D53B..1D53E  ; Lu #   [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+ 1D540..1D544  ; Lu #   [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+ 1D546         ; Lu #       MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+ 1D54A..1D550  ; Lu #   [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+ 1D56C..1D585  ; Lu #  [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+ 1D5A0..1D5B9  ; Lu #  [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z
+ 1D5D4..1D5ED  ; Lu #  [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+ 1D608..1D621  ; Lu #  [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+ 1D63C..1D655  ; Lu #  [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+ 1D670..1D689  ; Lu #  [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z
+ 1D6A8..1D6C0  ; Lu #  [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+ 1D6E2..1D6FA  ; Lu #  [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA
+ 1D71C..1D734  ; Lu #  [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+ 1D756..1D76E  ; Lu #  [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+ 1D790..1D7A8  ; Lu #  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+ 1D7CA         ; Lu #       MATHEMATICAL BOLD CAPITAL DIGAMMA
+ 1E900..1E921  ; Lu #  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
+ 
+ # Total code points: 1858
+ 
+ # ================================================
+ 
+ # General_Category=Lowercase_Letter
+ 
+ 0061..007A    ; Ll #  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+ 00B5          ; Ll #       MICRO SIGN
+ 00DF..00F6    ; Ll #  [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
+ 00F8..00FF    ; Ll #   [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+ 0101          ; Ll #       LATIN SMALL LETTER A WITH MACRON
+ 0103          ; Ll #       LATIN SMALL LETTER A WITH BREVE
+ 0105          ; Ll #       LATIN SMALL LETTER A WITH OGONEK
+ 0107          ; Ll #       LATIN SMALL LETTER C WITH ACUTE
+ 0109          ; Ll #       LATIN SMALL LETTER C WITH CIRCUMFLEX
+ 010B          ; Ll #       LATIN SMALL LETTER C WITH DOT ABOVE
+ 010D          ; Ll #       LATIN SMALL LETTER C WITH CARON
+ 010F          ; Ll #       LATIN SMALL LETTER D WITH CARON
+ 0111          ; Ll #       LATIN SMALL LETTER D WITH STROKE
+ 0113          ; Ll #       LATIN SMALL LETTER E WITH MACRON
+ 0115          ; Ll #       LATIN SMALL LETTER E WITH BREVE
+ 0117          ; Ll #       LATIN SMALL LETTER E WITH DOT ABOVE
+ 0119          ; Ll #       LATIN SMALL LETTER E WITH OGONEK
+ 011B          ; Ll #       LATIN SMALL LETTER E WITH CARON
+ 011D          ; Ll #       LATIN SMALL LETTER G WITH CIRCUMFLEX
+ 011F          ; Ll #       LATIN SMALL LETTER G WITH BREVE
+ 0121          ; Ll #       LATIN SMALL LETTER G WITH DOT ABOVE
+ 0123          ; Ll #       LATIN SMALL LETTER G WITH CEDILLA
+ 0125          ; Ll #       LATIN SMALL LETTER H WITH CIRCUMFLEX
+ 0127          ; Ll #       LATIN SMALL LETTER H WITH STROKE
+ 0129          ; Ll #       LATIN SMALL LETTER I WITH TILDE
+ 012B          ; Ll #       LATIN SMALL LETTER I WITH MACRON
+ 012D          ; Ll #       LATIN SMALL LETTER I WITH BREVE
+ 012F          ; Ll #       LATIN SMALL LETTER I WITH OGONEK
+ 0131          ; Ll #       LATIN SMALL LETTER DOTLESS I
+ 0133          ; Ll #       LATIN SMALL LIGATURE IJ
+ 0135          ; Ll #       LATIN SMALL LETTER J WITH CIRCUMFLEX
+ 0137..0138    ; Ll #   [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+ 013A          ; Ll #       LATIN SMALL LETTER L WITH ACUTE
+ 013C          ; Ll #       LATIN SMALL LETTER L WITH CEDILLA
+ 013E          ; Ll #       LATIN SMALL LETTER L WITH CARON
+ 0140          ; Ll #       LATIN SMALL LETTER L WITH MIDDLE DOT
+ 0142          ; Ll #       LATIN SMALL LETTER L WITH STROKE
+ 0144          ; Ll #       LATIN SMALL LETTER N WITH ACUTE
+ 0146          ; Ll #       LATIN SMALL LETTER N WITH CEDILLA
+ 0148..0149    ; Ll #   [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ 014B          ; Ll #       LATIN SMALL LETTER ENG
+ 014D          ; Ll #       LATIN SMALL LETTER O WITH MACRON
+ 014F          ; Ll #       LATIN SMALL LETTER O WITH BREVE
+ 0151          ; Ll #       LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ 0153          ; Ll #       LATIN SMALL LIGATURE OE
+ 0155          ; Ll #       LATIN SMALL LETTER R WITH ACUTE
+ 0157          ; Ll #       LATIN SMALL LETTER R WITH CEDILLA
+ 0159          ; Ll #       LATIN SMALL LETTER R WITH CARON
+ 015B          ; Ll #       LATIN SMALL LETTER S WITH ACUTE
+ 015D          ; Ll #       LATIN SMALL LETTER S WITH CIRCUMFLEX
+ 015F          ; Ll #       LATIN SMALL LETTER S WITH CEDILLA
+ 0161          ; Ll #       LATIN SMALL LETTER S WITH CARON
+ 0163          ; Ll #       LATIN SMALL LETTER T WITH CEDILLA
+ 0165          ; Ll #       LATIN SMALL LETTER T WITH CARON
+ 0167          ; Ll #       LATIN SMALL LETTER T WITH STROKE
+ 0169          ; Ll #       LATIN SMALL LETTER U WITH TILDE
+ 016B          ; Ll #       LATIN SMALL LETTER U WITH MACRON
+ 016D          ; Ll #       LATIN SMALL LETTER U WITH BREVE
+ 016F          ; Ll #       LATIN SMALL LETTER U WITH RING ABOVE
+ 0171          ; Ll #       LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ 0173          ; Ll #       LATIN SMALL LETTER U WITH OGONEK
+ 0175          ; Ll #       LATIN SMALL LETTER W WITH CIRCUMFLEX
+ 0177          ; Ll #       LATIN SMALL LETTER Y WITH CIRCUMFLEX
+ 017A          ; Ll #       LATIN SMALL LETTER Z WITH ACUTE
+ 017C          ; Ll #       LATIN SMALL LETTER Z WITH DOT ABOVE
+ 017E..0180    ; Ll #   [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE
+ 0183          ; Ll #       LATIN SMALL LETTER B WITH TOPBAR
+ 0185          ; Ll #       LATIN SMALL LETTER TONE SIX
+ 0188          ; Ll #       LATIN SMALL LETTER C WITH HOOK
+ 018C..018D    ; Ll #   [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+ 0192          ; Ll #       LATIN SMALL LETTER F WITH HOOK
+ 0195          ; Ll #       LATIN SMALL LETTER HV
+ 0199..019B    ; Ll #   [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+ 019E          ; Ll #       LATIN SMALL LETTER N WITH LONG RIGHT LEG
+ 01A1          ; Ll #       LATIN SMALL LETTER O WITH HORN
+ 01A3          ; Ll #       LATIN SMALL LETTER OI
+ 01A5          ; Ll #       LATIN SMALL LETTER P WITH HOOK
+ 01A8          ; Ll #       LATIN SMALL LETTER TONE TWO
+ 01AA..01AB    ; Ll #   [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+ 01AD          ; Ll #       LATIN SMALL LETTER T WITH HOOK
+ 01B0          ; Ll #       LATIN SMALL LETTER U WITH HORN
+ 01B4          ; Ll #       LATIN SMALL LETTER Y WITH HOOK
+ 01B6          ; Ll #       LATIN SMALL LETTER Z WITH STROKE
+ 01B9..01BA    ; Ll #   [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL
+ 01BD..01BF    ; Ll #   [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN
+ 01C6          ; Ll #       LATIN SMALL LETTER DZ WITH CARON
+ 01C9          ; Ll #       LATIN SMALL LETTER LJ
+ 01CC          ; Ll #       LATIN SMALL LETTER NJ
+ 01CE          ; Ll #       LATIN SMALL LETTER A WITH CARON
+ 01D0          ; Ll #       LATIN SMALL LETTER I WITH CARON
+ 01D2          ; Ll #       LATIN SMALL LETTER O WITH CARON
+ 01D4          ; Ll #       LATIN SMALL LETTER U WITH CARON
+ 01D6          ; Ll #       LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+ 01D8          ; Ll #       LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+ 01DA          ; Ll #       LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+ 01DC..01DD    ; Ll #   [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+ 01DF          ; Ll #       LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+ 01E1          ; Ll #       LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+ 01E3          ; Ll #       LATIN SMALL LETTER AE WITH MACRON
+ 01E5          ; Ll #       LATIN SMALL LETTER G WITH STROKE
+ 01E7          ; Ll #       LATIN SMALL LETTER G WITH CARON
+ 01E9          ; Ll #       LATIN SMALL LETTER K WITH CARON
+ 01EB          ; Ll #       LATIN SMALL LETTER O WITH OGONEK
+ 01ED          ; Ll #       LATIN SMALL LETTER O WITH OGONEK AND MACRON
+ 01EF..01F0    ; Ll #   [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+ 01F3          ; Ll #       LATIN SMALL LETTER DZ
+ 01F5          ; Ll #       LATIN SMALL LETTER G WITH ACUTE
+ 01F9          ; Ll #       LATIN SMALL LETTER N WITH GRAVE
+ 01FB          ; Ll #       LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+ 01FD          ; Ll #       LATIN SMALL LETTER AE WITH ACUTE
+ 01FF          ; Ll #       LATIN SMALL LETTER O WITH STROKE AND ACUTE
+ 0201          ; Ll #       LATIN SMALL LETTER A WITH DOUBLE GRAVE
+ 0203          ; Ll #       LATIN SMALL LETTER A WITH INVERTED BREVE
+ 0205          ; Ll #       LATIN SMALL LETTER E WITH DOUBLE GRAVE
+ 0207          ; Ll #       LATIN SMALL LETTER E WITH INVERTED BREVE
+ 0209          ; Ll #       LATIN SMALL LETTER I WITH DOUBLE GRAVE
+ 020B          ; Ll #       LATIN SMALL LETTER I WITH INVERTED BREVE
+ 020D          ; Ll #       LATIN SMALL LETTER O WITH DOUBLE GRAVE
+ 020F          ; Ll #       LATIN SMALL LETTER O WITH INVERTED BREVE
+ 0211          ; Ll #       LATIN SMALL LETTER R WITH DOUBLE GRAVE
+ 0213          ; Ll #       LATIN SMALL LETTER R WITH INVERTED BREVE
+ 0215          ; Ll #       LATIN SMALL LETTER U WITH DOUBLE GRAVE
+ 0217          ; Ll #       LATIN SMALL LETTER U WITH INVERTED BREVE
+ 0219          ; Ll #       LATIN SMALL LETTER S WITH COMMA BELOW
+ 021B          ; Ll #       LATIN SMALL LETTER T WITH COMMA BELOW
+ 021D          ; Ll #       LATIN SMALL LETTER YOGH
+ 021F          ; Ll #       LATIN SMALL LETTER H WITH CARON
+ 0221          ; Ll #       LATIN SMALL LETTER D WITH CURL
+ 0223          ; Ll #       LATIN SMALL LETTER OU
+ 0225          ; Ll #       LATIN SMALL LETTER Z WITH HOOK
+ 0227          ; Ll #       LATIN SMALL LETTER A WITH DOT ABOVE
+ 0229          ; Ll #       LATIN SMALL LETTER E WITH CEDILLA
+ 022B          ; Ll #       LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+ 022D          ; Ll #       LATIN SMALL LETTER O WITH TILDE AND MACRON
+ 022F          ; Ll #       LATIN SMALL LETTER O WITH DOT ABOVE
+ 0231          ; Ll #       LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+ 0233..0239    ; Ll #   [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
+ 023C          ; Ll #       LATIN SMALL LETTER C WITH STROKE
+ 023F..0240    ; Ll #   [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+ 0242          ; Ll #       LATIN SMALL LETTER GLOTTAL STOP
+ 0247          ; Ll #       LATIN SMALL LETTER E WITH STROKE
+ 0249          ; Ll #       LATIN SMALL LETTER J WITH STROKE
+ 024B          ; Ll #       LATIN SMALL LETTER Q WITH HOOK TAIL
+ 024D          ; Ll #       LATIN SMALL LETTER R WITH STROKE
+ 024F..0293    ; Ll #  [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL
+ 0295..02AF    ; Ll #  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+ 0371          ; Ll #       GREEK SMALL LETTER HETA
+ 0373          ; Ll #       GREEK SMALL LETTER ARCHAIC SAMPI
+ 0377          ; Ll #       GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+ 037B..037D    ; Ll #   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+ 0390          ; Ll #       GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ 03AC..03CE    ; Ll #  [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
+ 03D0..03D1    ; Ll #   [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL
+ 03D5..03D7    ; Ll #   [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL
+ 03D9          ; Ll #       GREEK SMALL LETTER ARCHAIC KOPPA
+ 03DB          ; Ll #       GREEK SMALL LETTER STIGMA
+ 03DD          ; Ll #       GREEK SMALL LETTER DIGAMMA
+ 03DF          ; Ll #       GREEK SMALL LETTER KOPPA
+ 03E1          ; Ll #       GREEK SMALL LETTER SAMPI
+ 03E3          ; Ll #       COPTIC SMALL LETTER SHEI
+ 03E5          ; Ll #       COPTIC SMALL LETTER FEI
+ 03E7          ; Ll #       COPTIC SMALL LETTER KHEI
+ 03E9          ; Ll #       COPTIC SMALL LETTER HORI
+ 03EB          ; Ll #       COPTIC SMALL LETTER GANGIA
+ 03ED          ; Ll #       COPTIC SMALL LETTER SHIMA
+ 03EF..03F3    ; Ll #   [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT
+ 03F5          ; Ll #       GREEK LUNATE EPSILON SYMBOL
+ 03F8          ; Ll #       GREEK SMALL LETTER SHO
+ 03FB..03FC    ; Ll #   [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
+ 0430..045F    ; Ll #  [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
+ 0461          ; Ll #       CYRILLIC SMALL LETTER OMEGA
+ 0463          ; Ll #       CYRILLIC SMALL LETTER YAT
+ 0465          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED E
+ 0467          ; Ll #       CYRILLIC SMALL LETTER LITTLE YUS
+ 0469          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+ 046B          ; Ll #       CYRILLIC SMALL LETTER BIG YUS
+ 046D          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+ 046F          ; Ll #       CYRILLIC SMALL LETTER KSI
+ 0471          ; Ll #       CYRILLIC SMALL LETTER PSI
+ 0473          ; Ll #       CYRILLIC SMALL LETTER FITA
+ 0475          ; Ll #       CYRILLIC SMALL LETTER IZHITSA
+ 0477          ; Ll #       CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 0479          ; Ll #       CYRILLIC SMALL LETTER UK
+ 047B          ; Ll #       CYRILLIC SMALL LETTER ROUND OMEGA
+ 047D          ; Ll #       CYRILLIC SMALL LETTER OMEGA WITH TITLO
+ 047F          ; Ll #       CYRILLIC SMALL LETTER OT
+ 0481          ; Ll #       CYRILLIC SMALL LETTER KOPPA
+ 048B          ; Ll #       CYRILLIC SMALL LETTER SHORT I WITH TAIL
+ 048D          ; Ll #       CYRILLIC SMALL LETTER SEMISOFT SIGN
+ 048F          ; Ll #       CYRILLIC SMALL LETTER ER WITH TICK
+ 0491          ; Ll #       CYRILLIC SMALL LETTER GHE WITH UPTURN
+ 0493          ; Ll #       CYRILLIC SMALL LETTER GHE WITH STROKE
+ 0495          ; Ll #       CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+ 0497          ; Ll #       CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+ 0499          ; Ll #       CYRILLIC SMALL LETTER ZE WITH DESCENDER
+ 049B          ; Ll #       CYRILLIC SMALL LETTER KA WITH DESCENDER
+ 049D          ; Ll #       CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+ 049F          ; Ll #       CYRILLIC SMALL LETTER KA WITH STROKE
+ 04A1          ; Ll #       CYRILLIC SMALL LETTER BASHKIR KA
+ 04A3          ; Ll #       CYRILLIC SMALL LETTER EN WITH DESCENDER
+ 04A5          ; Ll #       CYRILLIC SMALL LIGATURE EN GHE
+ 04A7          ; Ll #       CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+ 04A9          ; Ll #       CYRILLIC SMALL LETTER ABKHASIAN HA
+ 04AB          ; Ll #       CYRILLIC SMALL LETTER ES WITH DESCENDER
+ 04AD          ; Ll #       CYRILLIC SMALL LETTER TE WITH DESCENDER
+ 04AF          ; Ll #       CYRILLIC SMALL LETTER STRAIGHT U
+ 04B1          ; Ll #       CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+ 04B3          ; Ll #       CYRILLIC SMALL LETTER HA WITH DESCENDER
+ 04B5          ; Ll #       CYRILLIC SMALL LIGATURE TE TSE
+ 04B7          ; Ll #       CYRILLIC SMALL LETTER CHE WITH DESCENDER
+ 04B9          ; Ll #       CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+ 04BB          ; Ll #       CYRILLIC SMALL LETTER SHHA
+ 04BD          ; Ll #       CYRILLIC SMALL LETTER ABKHASIAN CHE
+ 04BF          ; Ll #       CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+ 04C2          ; Ll #       CYRILLIC SMALL LETTER ZHE WITH BREVE
+ 04C4          ; Ll #       CYRILLIC SMALL LETTER KA WITH HOOK
+ 04C6          ; Ll #       CYRILLIC SMALL LETTER EL WITH TAIL
+ 04C8          ; Ll #       CYRILLIC SMALL LETTER EN WITH HOOK
+ 04CA          ; Ll #       CYRILLIC SMALL LETTER EN WITH TAIL
+ 04CC          ; Ll #       CYRILLIC SMALL LETTER KHAKASSIAN CHE
+ 04CE..04CF    ; Ll #   [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
+ 04D1          ; Ll #       CYRILLIC SMALL LETTER A WITH BREVE
+ 04D3          ; Ll #       CYRILLIC SMALL LETTER A WITH DIAERESIS
+ 04D5          ; Ll #       CYRILLIC SMALL LIGATURE A IE
+ 04D7          ; Ll #       CYRILLIC SMALL LETTER IE WITH BREVE
+ 04D9          ; Ll #       CYRILLIC SMALL LETTER SCHWA
+ 04DB          ; Ll #       CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+ 04DD          ; Ll #       CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+ 04DF          ; Ll #       CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+ 04E1          ; Ll #       CYRILLIC SMALL LETTER ABKHASIAN DZE
+ 04E3          ; Ll #       CYRILLIC SMALL LETTER I WITH MACRON
+ 04E5          ; Ll #       CYRILLIC SMALL LETTER I WITH DIAERESIS
+ 04E7          ; Ll #       CYRILLIC SMALL LETTER O WITH DIAERESIS
+ 04E9          ; Ll #       CYRILLIC SMALL LETTER BARRED O
+ 04EB          ; Ll #       CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+ 04ED          ; Ll #       CYRILLIC SMALL LETTER E WITH DIAERESIS
+ 04EF          ; Ll #       CYRILLIC SMALL LETTER U WITH MACRON
+ 04F1          ; Ll #       CYRILLIC SMALL LETTER U WITH DIAERESIS
+ 04F3          ; Ll #       CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+ 04F5          ; Ll #       CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+ 04F7          ; Ll #       CYRILLIC SMALL LETTER GHE WITH DESCENDER
+ 04F9          ; Ll #       CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+ 04FB          ; Ll #       CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+ 04FD          ; Ll #       CYRILLIC SMALL LETTER HA WITH HOOK
+ 04FF          ; Ll #       CYRILLIC SMALL LETTER HA WITH STROKE
+ 0501          ; Ll #       CYRILLIC SMALL LETTER KOMI DE
+ 0503          ; Ll #       CYRILLIC SMALL LETTER KOMI DJE
+ 0505          ; Ll #       CYRILLIC SMALL LETTER KOMI ZJE
+ 0507          ; Ll #       CYRILLIC SMALL LETTER KOMI DZJE
+ 0509          ; Ll #       CYRILLIC SMALL LETTER KOMI LJE
+ 050B          ; Ll #       CYRILLIC SMALL LETTER KOMI NJE
+ 050D          ; Ll #       CYRILLIC SMALL LETTER KOMI SJE
+ 050F          ; Ll #       CYRILLIC SMALL LETTER KOMI TJE
+ 0511          ; Ll #       CYRILLIC SMALL LETTER REVERSED ZE
+ 0513          ; Ll #       CYRILLIC SMALL LETTER EL WITH HOOK
+ 0515          ; Ll #       CYRILLIC SMALL LETTER LHA
+ 0517          ; Ll #       CYRILLIC SMALL LETTER RHA
+ 0519          ; Ll #       CYRILLIC SMALL LETTER YAE
+ 051B          ; Ll #       CYRILLIC SMALL LETTER QA
+ 051D          ; Ll #       CYRILLIC SMALL LETTER WE
+ 051F          ; Ll #       CYRILLIC SMALL LETTER ALEUT KA
+ 0521          ; Ll #       CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+ 0523          ; Ll #       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+ 0525          ; Ll #       CYRILLIC SMALL LETTER PE WITH DESCENDER
+ 0527          ; Ll #       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+ 0529          ; Ll #       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+ 052B          ; Ll #       CYRILLIC SMALL LETTER DZZHE
+ 052D          ; Ll #       CYRILLIC SMALL LETTER DCHE
+ 052F          ; Ll #       CYRILLIC SMALL LETTER EL WITH DESCENDER
+ 0560..0588    ; Ll #  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+ 10D0..10FA    ; Ll #  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+ 10FD..10FF    ; Ll #   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+ 13F8..13FD    ; Ll #   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
+ 1C80..1C88    ; Ll #   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C8A          ; Ll #       CYRILLIC SMALL LETTER TJE
+ 1D00..1D2B    ; Ll #  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+ 1D6B..1D77    ; Ll #  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+ 1D79..1D9A    ; Ll #  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+ 1E01          ; Ll #       LATIN SMALL LETTER A WITH RING BELOW
+ 1E03          ; Ll #       LATIN SMALL LETTER B WITH DOT ABOVE
+ 1E05          ; Ll #       LATIN SMALL LETTER B WITH DOT BELOW
+ 1E07          ; Ll #       LATIN SMALL LETTER B WITH LINE BELOW
+ 1E09          ; Ll #       LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+ 1E0B          ; Ll #       LATIN SMALL LETTER D WITH DOT ABOVE
+ 1E0D          ; Ll #       LATIN SMALL LETTER D WITH DOT BELOW
+ 1E0F          ; Ll #       LATIN SMALL LETTER D WITH LINE BELOW
+ 1E11          ; Ll #       LATIN SMALL LETTER D WITH CEDILLA
+ 1E13          ; Ll #       LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+ 1E15          ; Ll #       LATIN SMALL LETTER E WITH MACRON AND GRAVE
+ 1E17          ; Ll #       LATIN SMALL LETTER E WITH MACRON AND ACUTE
+ 1E19          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+ 1E1B          ; Ll #       LATIN SMALL LETTER E WITH TILDE BELOW
+ 1E1D          ; Ll #       LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+ 1E1F          ; Ll #       LATIN SMALL LETTER F WITH DOT ABOVE
+ 1E21          ; Ll #       LATIN SMALL LETTER G WITH MACRON
+ 1E23          ; Ll #       LATIN SMALL LETTER H WITH DOT ABOVE
+ 1E25          ; Ll #       LATIN SMALL LETTER H WITH DOT BELOW
+ 1E27          ; Ll #       LATIN SMALL LETTER H WITH DIAERESIS
+ 1E29          ; Ll #       LATIN SMALL LETTER H WITH CEDILLA
+ 1E2B          ; Ll #       LATIN SMALL LETTER H WITH BREVE BELOW
+ 1E2D          ; Ll #       LATIN SMALL LETTER I WITH TILDE BELOW
+ 1E2F          ; Ll #       LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+ 1E31          ; Ll #       LATIN SMALL LETTER K WITH ACUTE
+ 1E33          ; Ll #       LATIN SMALL LETTER K WITH DOT BELOW
+ 1E35          ; Ll #       LATIN SMALL LETTER K WITH LINE BELOW
+ 1E37          ; Ll #       LATIN SMALL LETTER L WITH DOT BELOW
+ 1E39          ; Ll #       LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+ 1E3B          ; Ll #       LATIN SMALL LETTER L WITH LINE BELOW
+ 1E3D          ; Ll #       LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+ 1E3F          ; Ll #       LATIN SMALL LETTER M WITH ACUTE
+ 1E41          ; Ll #       LATIN SMALL LETTER M WITH DOT ABOVE
+ 1E43          ; Ll #       LATIN SMALL LETTER M WITH DOT BELOW
+ 1E45          ; Ll #       LATIN SMALL LETTER N WITH DOT ABOVE
+ 1E47          ; Ll #       LATIN SMALL LETTER N WITH DOT BELOW
+ 1E49          ; Ll #       LATIN SMALL LETTER N WITH LINE BELOW
+ 1E4B          ; Ll #       LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+ 1E4D          ; Ll #       LATIN SMALL LETTER O WITH TILDE AND ACUTE
+ 1E4F          ; Ll #       LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+ 1E51          ; Ll #       LATIN SMALL LETTER O WITH MACRON AND GRAVE
+ 1E53          ; Ll #       LATIN SMALL LETTER O WITH MACRON AND ACUTE
+ 1E55          ; Ll #       LATIN SMALL LETTER P WITH ACUTE
+ 1E57          ; Ll #       LATIN SMALL LETTER P WITH DOT ABOVE
+ 1E59          ; Ll #       LATIN SMALL LETTER R WITH DOT ABOVE
+ 1E5B          ; Ll #       LATIN SMALL LETTER R WITH DOT BELOW
+ 1E5D          ; Ll #       LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+ 1E5F          ; Ll #       LATIN SMALL LETTER R WITH LINE BELOW
+ 1E61          ; Ll #       LATIN SMALL LETTER S WITH DOT ABOVE
+ 1E63          ; Ll #       LATIN SMALL LETTER S WITH DOT BELOW
+ 1E65          ; Ll #       LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+ 1E67          ; Ll #       LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+ 1E69          ; Ll #       LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+ 1E6B          ; Ll #       LATIN SMALL LETTER T WITH DOT ABOVE
+ 1E6D          ; Ll #       LATIN SMALL LETTER T WITH DOT BELOW
+ 1E6F          ; Ll #       LATIN SMALL LETTER T WITH LINE BELOW
+ 1E71          ; Ll #       LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+ 1E73          ; Ll #       LATIN SMALL LETTER U WITH DIAERESIS BELOW
+ 1E75          ; Ll #       LATIN SMALL LETTER U WITH TILDE BELOW
+ 1E77          ; Ll #       LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+ 1E79          ; Ll #       LATIN SMALL LETTER U WITH TILDE AND ACUTE
+ 1E7B          ; Ll #       LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+ 1E7D          ; Ll #       LATIN SMALL LETTER V WITH TILDE
+ 1E7F          ; Ll #       LATIN SMALL LETTER V WITH DOT BELOW
+ 1E81          ; Ll #       LATIN SMALL LETTER W WITH GRAVE
+ 1E83          ; Ll #       LATIN SMALL LETTER W WITH ACUTE
+ 1E85          ; Ll #       LATIN SMALL LETTER W WITH DIAERESIS
+ 1E87          ; Ll #       LATIN SMALL LETTER W WITH DOT ABOVE
+ 1E89          ; Ll #       LATIN SMALL LETTER W WITH DOT BELOW
+ 1E8B          ; Ll #       LATIN SMALL LETTER X WITH DOT ABOVE
+ 1E8D          ; Ll #       LATIN SMALL LETTER X WITH DIAERESIS
+ 1E8F          ; Ll #       LATIN SMALL LETTER Y WITH DOT ABOVE
+ 1E91          ; Ll #       LATIN SMALL LETTER Z WITH CIRCUMFLEX
+ 1E93          ; Ll #       LATIN SMALL LETTER Z WITH DOT BELOW
+ 1E95..1E9D    ; Ll #   [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+ 1E9F          ; Ll #       LATIN SMALL LETTER DELTA
+ 1EA1          ; Ll #       LATIN SMALL LETTER A WITH DOT BELOW
+ 1EA3          ; Ll #       LATIN SMALL LETTER A WITH HOOK ABOVE
+ 1EA5          ; Ll #       LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+ 1EA7          ; Ll #       LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+ 1EA9          ; Ll #       LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EAB          ; Ll #       LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+ 1EAD          ; Ll #       LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ 1EAF          ; Ll #       LATIN SMALL LETTER A WITH BREVE AND ACUTE
+ 1EB1          ; Ll #       LATIN SMALL LETTER A WITH BREVE AND GRAVE
+ 1EB3          ; Ll #       LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+ 1EB5          ; Ll #       LATIN SMALL LETTER A WITH BREVE AND TILDE
+ 1EB7          ; Ll #       LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+ 1EB9          ; Ll #       LATIN SMALL LETTER E WITH DOT BELOW
+ 1EBB          ; Ll #       LATIN SMALL LETTER E WITH HOOK ABOVE
+ 1EBD          ; Ll #       LATIN SMALL LETTER E WITH TILDE
+ 1EBF          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+ 1EC1          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+ 1EC3          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EC5          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+ 1EC7          ; Ll #       LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ 1EC9          ; Ll #       LATIN SMALL LETTER I WITH HOOK ABOVE
+ 1ECB          ; Ll #       LATIN SMALL LETTER I WITH DOT BELOW
+ 1ECD          ; Ll #       LATIN SMALL LETTER O WITH DOT BELOW
+ 1ECF          ; Ll #       LATIN SMALL LETTER O WITH HOOK ABOVE
+ 1ED1          ; Ll #       LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+ 1ED3          ; Ll #       LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+ 1ED5          ; Ll #       LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ 1ED7          ; Ll #       LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+ 1ED9          ; Ll #       LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ 1EDB          ; Ll #       LATIN SMALL LETTER O WITH HORN AND ACUTE
+ 1EDD          ; Ll #       LATIN SMALL LETTER O WITH HORN AND GRAVE
+ 1EDF          ; Ll #       LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+ 1EE1          ; Ll #       LATIN SMALL LETTER O WITH HORN AND TILDE
+ 1EE3          ; Ll #       LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+ 1EE5          ; Ll #       LATIN SMALL LETTER U WITH DOT BELOW
+ 1EE7          ; Ll #       LATIN SMALL LETTER U WITH HOOK ABOVE
+ 1EE9          ; Ll #       LATIN SMALL LETTER U WITH HORN AND ACUTE
+ 1EEB          ; Ll #       LATIN SMALL LETTER U WITH HORN AND GRAVE
+ 1EED          ; Ll #       LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+ 1EEF          ; Ll #       LATIN SMALL LETTER U WITH HORN AND TILDE
+ 1EF1          ; Ll #       LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+ 1EF3          ; Ll #       LATIN SMALL LETTER Y WITH GRAVE
+ 1EF5          ; Ll #       LATIN SMALL LETTER Y WITH DOT BELOW
+ 1EF7          ; Ll #       LATIN SMALL LETTER Y WITH HOOK ABOVE
+ 1EF9          ; Ll #       LATIN SMALL LETTER Y WITH TILDE
+ 1EFB          ; Ll #       LATIN SMALL LETTER MIDDLE-WELSH LL
+ 1EFD          ; Ll #       LATIN SMALL LETTER MIDDLE-WELSH V
+ 1EFF..1F07    ; Ll #   [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+ 1F10..1F15    ; Ll #   [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+ 1F20..1F27    ; Ll #   [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+ 1F30..1F37    ; Ll #   [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+ 1F40..1F45    ; Ll #   [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+ 1F50..1F57    ; Ll #   [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+ 1F60..1F67    ; Ll #   [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+ 1F70..1F7D    ; Ll #  [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA
+ 1F80..1F87    ; Ll #   [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+ 1F90..1F97    ; Ll #   [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+ 1FA0..1FA7    ; Ll #   [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+ 1FB0..1FB4    ; Ll #   [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+ 1FB6..1FB7    ; Ll #   [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+ 1FBE          ; Ll #       GREEK PROSGEGRAMMENI
+ 1FC2..1FC4    ; Ll #   [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+ 1FC6..1FC7    ; Ll #   [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+ 1FD0..1FD3    ; Ll #   [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+ 1FD6..1FD7    ; Ll #   [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+ 1FE0..1FE7    ; Ll #   [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+ 1FF2..1FF4    ; Ll #   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+ 1FF6..1FF7    ; Ll #   [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+ 210A          ; Ll #       SCRIPT SMALL G
+ 210E..210F    ; Ll #   [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI
+ 2113          ; Ll #       SCRIPT SMALL L
+ 212F          ; Ll #       SCRIPT SMALL E
+ 2134          ; Ll #       SCRIPT SMALL O
+ 2139          ; Ll #       INFORMATION SOURCE
+ 213C..213D    ; Ll #   [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA
+ 2146..2149    ; Ll #   [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J
+ 214E          ; Ll #       TURNED SMALL F
+ 2184          ; Ll #       LATIN SMALL LETTER REVERSED C
+ 2C30..2C5F    ; Ll #  [48] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+ 2C61          ; Ll #       LATIN SMALL LETTER L WITH DOUBLE BAR
+ 2C65..2C66    ; Ll #   [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+ 2C68          ; Ll #       LATIN SMALL LETTER H WITH DESCENDER
+ 2C6A          ; Ll #       LATIN SMALL LETTER K WITH DESCENDER
+ 2C6C          ; Ll #       LATIN SMALL LETTER Z WITH DESCENDER
+ 2C71          ; Ll #       LATIN SMALL LETTER V WITH RIGHT HOOK
+ 2C73..2C74    ; Ll #   [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
+ 2C76..2C7B    ; Ll #   [6] LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E
+ 2C81          ; Ll #       COPTIC SMALL LETTER ALFA
+ 2C83          ; Ll #       COPTIC SMALL LETTER VIDA
+ 2C85          ; Ll #       COPTIC SMALL LETTER GAMMA
+ 2C87          ; Ll #       COPTIC SMALL LETTER DALDA
+ 2C89          ; Ll #       COPTIC SMALL LETTER EIE
+ 2C8B          ; Ll #       COPTIC SMALL LETTER SOU
+ 2C8D          ; Ll #       COPTIC SMALL LETTER ZATA
+ 2C8F          ; Ll #       COPTIC SMALL LETTER HATE
+ 2C91          ; Ll #       COPTIC SMALL LETTER THETHE
+ 2C93          ; Ll #       COPTIC SMALL LETTER IAUDA
+ 2C95          ; Ll #       COPTIC SMALL LETTER KAPA
+ 2C97          ; Ll #       COPTIC SMALL LETTER LAULA
+ 2C99          ; Ll #       COPTIC SMALL LETTER MI
+ 2C9B          ; Ll #       COPTIC SMALL LETTER NI
+ 2C9D          ; Ll #       COPTIC SMALL LETTER KSI
+ 2C9F          ; Ll #       COPTIC SMALL LETTER O
+ 2CA1          ; Ll #       COPTIC SMALL LETTER PI
+ 2CA3          ; Ll #       COPTIC SMALL LETTER RO
+ 2CA5          ; Ll #       COPTIC SMALL LETTER SIMA
+ 2CA7          ; Ll #       COPTIC SMALL LETTER TAU
+ 2CA9          ; Ll #       COPTIC SMALL LETTER UA
+ 2CAB          ; Ll #       COPTIC SMALL LETTER FI
+ 2CAD          ; Ll #       COPTIC SMALL LETTER KHI
+ 2CAF          ; Ll #       COPTIC SMALL LETTER PSI
+ 2CB1          ; Ll #       COPTIC SMALL LETTER OOU
+ 2CB3          ; Ll #       COPTIC SMALL LETTER DIALECT-P ALEF
+ 2CB5          ; Ll #       COPTIC SMALL LETTER OLD COPTIC AIN
+ 2CB7          ; Ll #       COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+ 2CB9          ; Ll #       COPTIC SMALL LETTER DIALECT-P KAPA
+ 2CBB          ; Ll #       COPTIC SMALL LETTER DIALECT-P NI
+ 2CBD          ; Ll #       COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+ 2CBF          ; Ll #       COPTIC SMALL LETTER OLD COPTIC OOU
+ 2CC1          ; Ll #       COPTIC SMALL LETTER SAMPI
+ 2CC3          ; Ll #       COPTIC SMALL LETTER CROSSED SHEI
+ 2CC5          ; Ll #       COPTIC SMALL LETTER OLD COPTIC SHEI
+ 2CC7          ; Ll #       COPTIC SMALL LETTER OLD COPTIC ESH
+ 2CC9          ; Ll #       COPTIC SMALL LETTER AKHMIMIC KHEI
+ 2CCB          ; Ll #       COPTIC SMALL LETTER DIALECT-P HORI
+ 2CCD          ; Ll #       COPTIC SMALL LETTER OLD COPTIC HORI
+ 2CCF          ; Ll #       COPTIC SMALL LETTER OLD COPTIC HA
+ 2CD1          ; Ll #       COPTIC SMALL LETTER L-SHAPED HA
+ 2CD3          ; Ll #       COPTIC SMALL LETTER OLD COPTIC HEI
+ 2CD5          ; Ll #       COPTIC SMALL LETTER OLD COPTIC HAT
+ 2CD7          ; Ll #       COPTIC SMALL LETTER OLD COPTIC GANGIA
+ 2CD9          ; Ll #       COPTIC SMALL LETTER OLD COPTIC DJA
+ 2CDB          ; Ll #       COPTIC SMALL LETTER OLD COPTIC SHIMA
+ 2CDD          ; Ll #       COPTIC SMALL LETTER OLD NUBIAN SHIMA
+ 2CDF          ; Ll #       COPTIC SMALL LETTER OLD NUBIAN NGI
+ 2CE1          ; Ll #       COPTIC SMALL LETTER OLD NUBIAN NYI
+ 2CE3..2CE4    ; Ll #   [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+ 2CEC          ; Ll #       COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+ 2CEE          ; Ll #       COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+ 2CF3          ; Ll #       COPTIC SMALL LETTER BOHAIRIC KHEI
+ 2D00..2D25    ; Ll #  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+ 2D27          ; Ll #       GEORGIAN SMALL LETTER YN
+ 2D2D          ; Ll #       GEORGIAN SMALL LETTER AEN
+ A641          ; Ll #       CYRILLIC SMALL LETTER ZEMLYA
+ A643          ; Ll #       CYRILLIC SMALL LETTER DZELO
+ A645          ; Ll #       CYRILLIC SMALL LETTER REVERSED DZE
+ A647          ; Ll #       CYRILLIC SMALL LETTER IOTA
+ A649          ; Ll #       CYRILLIC SMALL LETTER DJERV
+ A64B          ; Ll #       CYRILLIC SMALL LETTER MONOGRAPH UK
+ A64D          ; Ll #       CYRILLIC SMALL LETTER BROAD OMEGA
+ A64F          ; Ll #       CYRILLIC SMALL LETTER NEUTRAL YER
+ A651          ; Ll #       CYRILLIC SMALL LETTER YERU WITH BACK YER
+ A653          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED YAT
+ A655          ; Ll #       CYRILLIC SMALL LETTER REVERSED YU
+ A657          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED A
+ A659          ; Ll #       CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+ A65B          ; Ll #       CYRILLIC SMALL LETTER BLENDED YUS
+ A65D          ; Ll #       CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+ A65F          ; Ll #       CYRILLIC SMALL LETTER YN
+ A661          ; Ll #       CYRILLIC SMALL LETTER REVERSED TSE
+ A663          ; Ll #       CYRILLIC SMALL LETTER SOFT DE
+ A665          ; Ll #       CYRILLIC SMALL LETTER SOFT EL
+ A667          ; Ll #       CYRILLIC SMALL LETTER SOFT EM
+ A669          ; Ll #       CYRILLIC SMALL LETTER MONOCULAR O
+ A66B          ; Ll #       CYRILLIC SMALL LETTER BINOCULAR O
+ A66D          ; Ll #       CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+ A681          ; Ll #       CYRILLIC SMALL LETTER DWE
+ A683          ; Ll #       CYRILLIC SMALL LETTER DZWE
+ A685          ; Ll #       CYRILLIC SMALL LETTER ZHWE
+ A687          ; Ll #       CYRILLIC SMALL LETTER CCHE
+ A689          ; Ll #       CYRILLIC SMALL LETTER DZZE
+ A68B          ; Ll #       CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+ A68D          ; Ll #       CYRILLIC SMALL LETTER TWE
+ A68F          ; Ll #       CYRILLIC SMALL LETTER TSWE
+ A691          ; Ll #       CYRILLIC SMALL LETTER TSSE
+ A693          ; Ll #       CYRILLIC SMALL LETTER TCHE
+ A695          ; Ll #       CYRILLIC SMALL LETTER HWE
+ A697          ; Ll #       CYRILLIC SMALL LETTER SHWE
+ A699          ; Ll #       CYRILLIC SMALL LETTER DOUBLE O
+ A69B          ; Ll #       CYRILLIC SMALL LETTER CROSSED O
+ A723          ; Ll #       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+ A725          ; Ll #       LATIN SMALL LETTER EGYPTOLOGICAL AIN
+ A727          ; Ll #       LATIN SMALL LETTER HENG
+ A729          ; Ll #       LATIN SMALL LETTER TZ
+ A72B          ; Ll #       LATIN SMALL LETTER TRESILLO
+ A72D          ; Ll #       LATIN SMALL LETTER CUATRILLO
+ A72F..A731    ; Ll #   [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+ A733          ; Ll #       LATIN SMALL LETTER AA
+ A735          ; Ll #       LATIN SMALL LETTER AO
+ A737          ; Ll #       LATIN SMALL LETTER AU
+ A739          ; Ll #       LATIN SMALL LETTER AV
+ A73B          ; Ll #       LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+ A73D          ; Ll #       LATIN SMALL LETTER AY
+ A73F          ; Ll #       LATIN SMALL LETTER REVERSED C WITH DOT
+ A741          ; Ll #       LATIN SMALL LETTER K WITH STROKE
+ A743          ; Ll #       LATIN SMALL LETTER K WITH DIAGONAL STROKE
+ A745          ; Ll #       LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+ A747          ; Ll #       LATIN SMALL LETTER BROKEN L
+ A749          ; Ll #       LATIN SMALL LETTER L WITH HIGH STROKE
+ A74B          ; Ll #       LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+ A74D          ; Ll #       LATIN SMALL LETTER O WITH LOOP
+ A74F          ; Ll #       LATIN SMALL LETTER OO
+ A751          ; Ll #       LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+ A753          ; Ll #       LATIN SMALL LETTER P WITH FLOURISH
+ A755          ; Ll #       LATIN SMALL LETTER P WITH SQUIRREL TAIL
+ A757          ; Ll #       LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+ A759          ; Ll #       LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+ A75B          ; Ll #       LATIN SMALL LETTER R ROTUNDA
+ A75D          ; Ll #       LATIN SMALL LETTER RUM ROTUNDA
+ A75F          ; Ll #       LATIN SMALL LETTER V WITH DIAGONAL STROKE
+ A761          ; Ll #       LATIN SMALL LETTER VY
+ A763          ; Ll #       LATIN SMALL LETTER VISIGOTHIC Z
+ A765          ; Ll #       LATIN SMALL LETTER THORN WITH STROKE
+ A767          ; Ll #       LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+ A769          ; Ll #       LATIN SMALL LETTER VEND
+ A76B          ; Ll #       LATIN SMALL LETTER ET
+ A76D          ; Ll #       LATIN SMALL LETTER IS
+ A76F          ; Ll #       LATIN SMALL LETTER CON
+ A771..A778    ; Ll #   [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
+ A77A          ; Ll #       LATIN SMALL LETTER INSULAR D
+ A77C          ; Ll #       LATIN SMALL LETTER INSULAR F
+ A77F          ; Ll #       LATIN SMALL LETTER TURNED INSULAR G
+ A781          ; Ll #       LATIN SMALL LETTER TURNED L
+ A783          ; Ll #       LATIN SMALL LETTER INSULAR R
+ A785          ; Ll #       LATIN SMALL LETTER INSULAR S
+ A787          ; Ll #       LATIN SMALL LETTER INSULAR T
+ A78C          ; Ll #       LATIN SMALL LETTER SALTILLO
+ A78E          ; Ll #       LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+ A791          ; Ll #       LATIN SMALL LETTER N WITH DESCENDER
+ A793..A795    ; Ll #   [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+ A797          ; Ll #       LATIN SMALL LETTER B WITH FLOURISH
+ A799          ; Ll #       LATIN SMALL LETTER F WITH STROKE
+ A79B          ; Ll #       LATIN SMALL LETTER VOLAPUK AE
+ A79D          ; Ll #       LATIN SMALL LETTER VOLAPUK OE
+ A79F          ; Ll #       LATIN SMALL LETTER VOLAPUK UE
+ A7A1          ; Ll #       LATIN SMALL LETTER G WITH OBLIQUE STROKE
+ A7A3          ; Ll #       LATIN SMALL LETTER K WITH OBLIQUE STROKE
+ A7A5          ; Ll #       LATIN SMALL LETTER N WITH OBLIQUE STROKE
+ A7A7          ; Ll #       LATIN SMALL LETTER R WITH OBLIQUE STROKE
+ A7A9          ; Ll #       LATIN SMALL LETTER S WITH OBLIQUE STROKE
+ A7AF          ; Ll #       LATIN LETTER SMALL CAPITAL Q
+ A7B5          ; Ll #       LATIN SMALL LETTER BETA
+ A7B7          ; Ll #       LATIN SMALL LETTER OMEGA
+ A7B9          ; Ll #       LATIN SMALL LETTER U WITH STROKE
+ A7BB          ; Ll #       LATIN SMALL LETTER GLOTTAL A
+ A7BD          ; Ll #       LATIN SMALL LETTER GLOTTAL I
+ A7BF          ; Ll #       LATIN SMALL LETTER GLOTTAL U
+ A7C1          ; Ll #       LATIN SMALL LETTER OLD POLISH O
+ A7C3          ; Ll #       LATIN SMALL LETTER ANGLICANA W
+ A7C8          ; Ll #       LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
+ A7CA          ; Ll #       LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+ A7CD          ; Ll #       LATIN SMALL LETTER S WITH DIAGONAL STROKE
+ A7D1          ; Ll #       LATIN SMALL LETTER CLOSED INSULAR G
+ A7D3          ; Ll #       LATIN SMALL LETTER DOUBLE THORN
+ A7D5          ; Ll #       LATIN SMALL LETTER DOUBLE WYNN
+ A7D7          ; Ll #       LATIN SMALL LETTER MIDDLE SCOTS S
+ A7D9          ; Ll #       LATIN SMALL LETTER SIGMOID S
+ A7DB          ; Ll #       LATIN SMALL LETTER LAMBDA
+ A7F6          ; Ll #       LATIN SMALL LETTER REVERSED HALF H
+ A7FA          ; Ll #       LATIN LETTER SMALL CAPITAL TURNED M
+ AB30..AB5A    ; Ll #  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+ AB60..AB68    ; Ll #   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+ AB70..ABBF    ; Ll #  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
+ FB00..FB06    ; Ll #   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+ FB13..FB17    ; Ll #   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+ FF41..FF5A    ; Ll #  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+ 10428..1044F  ; Ll #  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+ 104D8..104FB  ; Ll #  [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+ 10597..105A1  ; Ll #  [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+ 105A3..105B1  ; Ll #  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+ 105B3..105B9  ; Ll #   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+ 105BB..105BC  ; Ll #   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 10CC0..10CF2  ; Ll #  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+ 10D70..10D85  ; Ll #  [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
+ 118C0..118DF  ; Ll #  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+ 16E60..16E7F  ; Ll #  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+ 1D41A..1D433  ; Ll #  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
+ 1D44E..1D454  ; Ll #   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
+ 1D456..1D467  ; Ll #  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
+ 1D482..1D49B  ; Ll #  [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z
+ 1D4B6..1D4B9  ; Ll #   [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D
+ 1D4BB         ; Ll #       MATHEMATICAL SCRIPT SMALL F
+ 1D4BD..1D4C3  ; Ll #   [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+ 1D4C5..1D4CF  ; Ll #  [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z
+ 1D4EA..1D503  ; Ll #  [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z
+ 1D51E..1D537  ; Ll #  [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z
+ 1D552..1D56B  ; Ll #  [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z
+ 1D586..1D59F  ; Ll #  [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z
+ 1D5BA..1D5D3  ; Ll #  [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z
+ 1D5EE..1D607  ; Ll #  [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z
+ 1D622..1D63B  ; Ll #  [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+ 1D656..1D66F  ; Ll #  [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+ 1D68A..1D6A5  ; Ll #  [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+ 1D6C2..1D6DA  ; Ll #  [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+ 1D6DC..1D6E1  ; Ll #   [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL
+ 1D6FC..1D714  ; Ll #  [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+ 1D716..1D71B  ; Ll #   [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL
+ 1D736..1D74E  ; Ll #  [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+ 1D750..1D755  ; Ll #   [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL
+ 1D770..1D788  ; Ll #  [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+ 1D78A..1D78F  ; Ll #   [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+ 1D7AA..1D7C2  ; Ll #  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+ 1D7C4..1D7C9  ; Ll #   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+ 1D7CB         ; Ll #       MATHEMATICAL BOLD SMALL DIGAMMA
+ 1DF00..1DF09  ; Ll #  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+ 1DF0B..1DF1E  ; Ll #  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+ 1DF25..1DF2A  ; Ll #   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+ 1E922..1E943  ; Ll #  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
+ 
+ # Total code points: 2258
+ 
+ # ================================================
+ 
+ # General_Category=Titlecase_Letter
+ 
+ 01C5          ; Lt #       LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+ 01C8          ; Lt #       LATIN CAPITAL LETTER L WITH SMALL LETTER J
+ 01CB          ; Lt #       LATIN CAPITAL LETTER N WITH SMALL LETTER J
+ 01F2          ; Lt #       LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+ 1F88..1F8F    ; Lt #   [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1F98..1F9F    ; Lt #   [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1FA8..1FAF    ; Lt #   [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1FBC          ; Lt #       GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+ 1FCC          ; Lt #       GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+ 1FFC          ; Lt #       GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+ 
+ # Total code points: 31
+ 
+ # ================================================
+ 
+ # General_Category=Modifier_Letter
+ 
+ 02B0..02C1    ; Lm #  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+ 02C6..02D1    ; Lm #  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+ 02E0..02E4    ; Lm #   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+ 02EC          ; Lm #       MODIFIER LETTER VOICING
+ 02EE          ; Lm #       MODIFIER LETTER DOUBLE APOSTROPHE
+ 0374          ; Lm #       GREEK NUMERAL SIGN
+ 037A          ; Lm #       GREEK YPOGEGRAMMENI
+ 0559          ; Lm #       ARMENIAN MODIFIER LETTER LEFT HALF RING
+ 0640          ; Lm #       ARABIC TATWEEL
+ 06E5..06E6    ; Lm #   [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+ 07F4..07F5    ; Lm #   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+ 07FA          ; Lm #       NKO LAJANYALAN
+ 081A          ; Lm #       SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+ 0824          ; Lm #       SAMARITAN MODIFIER LETTER SHORT A
+ 0828          ; Lm #       SAMARITAN MODIFIER LETTER I
+ 08C9          ; Lm #       ARABIC SMALL FARSI YEH
+ 0971          ; Lm #       DEVANAGARI SIGN HIGH SPACING DOT
+ 0E46          ; Lm #       THAI CHARACTER MAIYAMOK
+ 0EC6          ; Lm #       LAO KO LA
+ 10FC          ; Lm #       MODIFIER LETTER GEORGIAN NAR
+ 17D7          ; Lm #       KHMER SIGN LEK TOO
+ 1843          ; Lm #       MONGOLIAN LETTER TODO LONG VOWEL SIGN
+ 1AA7          ; Lm #       TAI THAM SIGN MAI YAMOK
+ 1C78..1C7D    ; Lm #   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+ 1D2C..1D6A    ; Lm #  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+ 1D78          ; Lm #       MODIFIER LETTER CYRILLIC EN
+ 1D9B..1DBF    ; Lm #  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+ 2071          ; Lm #       SUPERSCRIPT LATIN SMALL LETTER I
+ 207F          ; Lm #       SUPERSCRIPT LATIN SMALL LETTER N
+ 2090..209C    ; Lm #  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+ 2C7C..2C7D    ; Lm #   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+ 2D6F          ; Lm #       TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+ 2E2F          ; Lm #       VERTICAL TILDE
+ 3005          ; Lm #       IDEOGRAPHIC ITERATION MARK
+ 3031..3035    ; Lm #   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+ 303B          ; Lm #       VERTICAL IDEOGRAPHIC ITERATION MARK
+ 309D..309E    ; Lm #   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+ 30FC..30FE    ; Lm #   [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+ A015          ; Lm #       YI SYLLABLE WU
+ A4F8..A4FD    ; Lm #   [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+ A60C          ; Lm #       VAI SYLLABLE LENGTHENER
+ A67F          ; Lm #       CYRILLIC PAYEROK
+ A69C..A69D    ; Lm #   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+ A717..A71F    ; Lm #   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+ A770          ; Lm #       MODIFIER LETTER US
+ A788          ; Lm #       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+ A7F2..A7F4    ; Lm #   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
+ A7F8..A7F9    ; Lm #   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+ A9CF          ; Lm #       JAVANESE PANGRANGKEP
+ A9E6          ; Lm #       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+ AA70          ; Lm #       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+ AADD          ; Lm #       TAI VIET SYMBOL SAM
+ AAF3..AAF4    ; Lm #   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+ AB5C..AB5F    ; Lm #   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+ AB69          ; Lm #       MODIFIER LETTER SMALL TURNED W
+ FF70          ; Lm #       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+ 10780..10785  ; Lm #   [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+ 10787..107B0  ; Lm #  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+ 107B2..107BA  ; Lm #   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+ 10D4E         ; Lm #       GARAY VOWEL LENGTH MARK
+ 10D6F         ; Lm #       GARAY REDUPLICATION MARK
+ 16B40..16B43  ; Lm #   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+ 16D40..16D42  ; Lm #   [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D6B..16D6C  ; Lm #   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
+ 16F93..16F9F  ; Lm #  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+ 16FE0..16FE1  ; Lm #   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+ 16FE3         ; Lm #       OLD CHINESE ITERATION MARK
+ 1AFF0..1AFF3  ; Lm #   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+ 1AFF5..1AFFB  ; Lm #   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+ 1AFFD..1AFFE  ; Lm #   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+ 1E030..1E06D  ; Lm #  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+ 1E137..1E13D  ; Lm #   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+ 1E4EB         ; Lm #       NAG MUNDARI SIGN OJOD
+ 1E94B         ; Lm #       ADLAM NASALIZATION MARK
+ 
+ # Total code points: 404
+ 
+ # ================================================
+ 
+ # General_Category=Other_Letter
+ 
+ 00AA          ; Lo #       FEMININE ORDINAL INDICATOR
+ 00BA          ; Lo #       MASCULINE ORDINAL INDICATOR
+ 01BB          ; Lo #       LATIN LETTER TWO WITH STROKE
+ 01C0..01C3    ; Lo #   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+ 0294          ; Lo #       LATIN LETTER GLOTTAL STOP
+ 05D0..05EA    ; Lo #  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+ 05EF..05F2    ; Lo #   [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
+ 0620..063F    ; Lo #  [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+ 0641..064A    ; Lo #  [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+ 066E..066F    ; Lo #   [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+ 0671..06D3    ; Lo #  [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+ 06D5          ; Lo #       ARABIC LETTER AE
+ 06EE..06EF    ; Lo #   [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+ 06FA..06FC    ; Lo #   [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+ 06FF          ; Lo #       ARABIC LETTER HEH WITH INVERTED V
+ 0710          ; Lo #       SYRIAC LETTER ALAPH
+ 0712..072F    ; Lo #  [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+ 074D..07A5    ; Lo #  [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
+ 07B1          ; Lo #       THAANA LETTER NAA
+ 07CA..07EA    ; Lo #  [33] NKO LETTER A..NKO LETTER JONA RA
+ 0800..0815    ; Lo #  [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+ 0840..0858    ; Lo #  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+ 0860..086A    ; Lo #  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+ 0870..0887    ; Lo #  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+ 0889..088E    ; Lo #   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+ 08A0..08C8    ; Lo #  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+ 0904..0939    ; Lo #  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+ 093D          ; Lo #       DEVANAGARI SIGN AVAGRAHA
+ 0950          ; Lo #       DEVANAGARI OM
+ 0958..0961    ; Lo #  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+ 0972..0980    ; Lo #  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
+ 0985..098C    ; Lo #   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+ 098F..0990    ; Lo #   [2] BENGALI LETTER E..BENGALI LETTER AI
+ 0993..09A8    ; Lo #  [22] BENGALI LETTER O..BENGALI LETTER NA
+ 09AA..09B0    ; Lo #   [7] BENGALI LETTER PA..BENGALI LETTER RA
+ 09B2          ; Lo #       BENGALI LETTER LA
+ 09B6..09B9    ; Lo #   [4] BENGALI LETTER SHA..BENGALI LETTER HA
+ 09BD          ; Lo #       BENGALI SIGN AVAGRAHA
+ 09CE          ; Lo #       BENGALI LETTER KHANDA TA
+ 09DC..09DD    ; Lo #   [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+ 09DF..09E1    ; Lo #   [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+ 09F0..09F1    ; Lo #   [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+ 09FC          ; Lo #       BENGALI LETTER VEDIC ANUSVARA
+ 0A05..0A0A    ; Lo #   [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+ 0A0F..0A10    ; Lo #   [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+ 0A13..0A28    ; Lo #  [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+ 0A2A..0A30    ; Lo #   [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+ 0A32..0A33    ; Lo #   [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+ 0A35..0A36    ; Lo #   [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+ 0A38..0A39    ; Lo #   [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+ 0A59..0A5C    ; Lo #   [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+ 0A5E          ; Lo #       GURMUKHI LETTER FA
+ 0A72..0A74    ; Lo #   [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+ 0A85..0A8D    ; Lo #   [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+ 0A8F..0A91    ; Lo #   [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+ 0A93..0AA8    ; Lo #  [22] GUJARATI LETTER O..GUJARATI LETTER NA
+ 0AAA..0AB0    ; Lo #   [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+ 0AB2..0AB3    ; Lo #   [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+ 0AB5..0AB9    ; Lo #   [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+ 0ABD          ; Lo #       GUJARATI SIGN AVAGRAHA
+ 0AD0          ; Lo #       GUJARATI OM
+ 0AE0..0AE1    ; Lo #   [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+ 0AF9          ; Lo #       GUJARATI LETTER ZHA
+ 0B05..0B0C    ; Lo #   [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+ 0B0F..0B10    ; Lo #   [2] ORIYA LETTER E..ORIYA LETTER AI
+ 0B13..0B28    ; Lo #  [22] ORIYA LETTER O..ORIYA LETTER NA
+ 0B2A..0B30    ; Lo #   [7] ORIYA LETTER PA..ORIYA LETTER RA
+ 0B32..0B33    ; Lo #   [2] ORIYA LETTER LA..ORIYA LETTER LLA
+ 0B35..0B39    ; Lo #   [5] ORIYA LETTER VA..ORIYA LETTER HA
+ 0B3D          ; Lo #       ORIYA SIGN AVAGRAHA
+ 0B5C..0B5D    ; Lo #   [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+ 0B5F..0B61    ; Lo #   [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+ 0B71          ; Lo #       ORIYA LETTER WA
+ 0B83          ; Lo #       TAMIL SIGN VISARGA
+ 0B85..0B8A    ; Lo #   [6] TAMIL LETTER A..TAMIL LETTER UU
+ 0B8E..0B90    ; Lo #   [3] TAMIL LETTER E..TAMIL LETTER AI
+ 0B92..0B95    ; Lo #   [4] TAMIL LETTER O..TAMIL LETTER KA
+ 0B99..0B9A    ; Lo #   [2] TAMIL LETTER NGA..TAMIL LETTER CA
+ 0B9C          ; Lo #       TAMIL LETTER JA
+ 0B9E..0B9F    ; Lo #   [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+ 0BA3..0BA4    ; Lo #   [2] TAMIL LETTER NNA..TAMIL LETTER TA
+ 0BA8..0BAA    ; Lo #   [3] TAMIL LETTER NA..TAMIL LETTER PA
+ 0BAE..0BB9    ; Lo #  [12] TAMIL LETTER MA..TAMIL LETTER HA
+ 0BD0          ; Lo #       TAMIL OM
+ 0C05..0C0C    ; Lo #   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+ 0C0E..0C10    ; Lo #   [3] TELUGU LETTER E..TELUGU LETTER AI
+ 0C12..0C28    ; Lo #  [23] TELUGU LETTER O..TELUGU LETTER NA
+ 0C2A..0C39    ; Lo #  [16] TELUGU LETTER PA..TELUGU LETTER HA
+ 0C3D          ; Lo #       TELUGU SIGN AVAGRAHA
+ 0C58..0C5A    ; Lo #   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+ 0C5D          ; Lo #       TELUGU LETTER NAKAARA POLLU
+ 0C60..0C61    ; Lo #   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+ 0C80          ; Lo #       KANNADA SIGN SPACING CANDRABINDU
+ 0C85..0C8C    ; Lo #   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+ 0C8E..0C90    ; Lo #   [3] KANNADA LETTER E..KANNADA LETTER AI
+ 0C92..0CA8    ; Lo #  [23] KANNADA LETTER O..KANNADA LETTER NA
+ 0CAA..0CB3    ; Lo #  [10] KANNADA LETTER PA..KANNADA LETTER LLA
+ 0CB5..0CB9    ; Lo #   [5] KANNADA LETTER VA..KANNADA LETTER HA
+ 0CBD          ; Lo #       KANNADA SIGN AVAGRAHA
+ 0CDD..0CDE    ; Lo #   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
+ 0CE0..0CE1    ; Lo #   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+ 0CF1..0CF2    ; Lo #   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+ 0D04..0D0C    ; Lo #   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
+ 0D0E..0D10    ; Lo #   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+ 0D12..0D3A    ; Lo #  [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+ 0D3D          ; Lo #       MALAYALAM SIGN AVAGRAHA
+ 0D4E          ; Lo #       MALAYALAM LETTER DOT REPH
+ 0D54..0D56    ; Lo #   [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
+ 0D5F..0D61    ; Lo #   [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
+ 0D7A..0D7F    ; Lo #   [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+ 0D85..0D96    ; Lo #  [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+ 0D9A..0DB1    ; Lo #  [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+ 0DB3..0DBB    ; Lo #   [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+ 0DBD          ; Lo #       SINHALA LETTER DANTAJA LAYANNA
+ 0DC0..0DC6    ; Lo #   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+ 0E01..0E30    ; Lo #  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+ 0E32..0E33    ; Lo #   [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+ 0E40..0E45    ; Lo #   [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+ 0E81..0E82    ; Lo #   [2] LAO LETTER KO..LAO LETTER KHO SUNG
+ 0E84          ; Lo #       LAO LETTER KHO TAM
+ 0E86..0E8A    ; Lo #   [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+ 0E8C..0EA3    ; Lo #  [24] LAO LETTER PALI JHA..LAO LETTER LO LING
+ 0EA5          ; Lo #       LAO LETTER LO LOOT
+ 0EA7..0EB0    ; Lo #  [10] LAO LETTER WO..LAO VOWEL SIGN A
+ 0EB2..0EB3    ; Lo #   [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+ 0EBD          ; Lo #       LAO SEMIVOWEL SIGN NYO
+ 0EC0..0EC4    ; Lo #   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+ 0EDC..0EDF    ; Lo #   [4] LAO HO NO..LAO LETTER KHMU NYO
+ 0F00          ; Lo #       TIBETAN SYLLABLE OM
+ 0F40..0F47    ; Lo #   [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+ 0F49..0F6C    ; Lo #  [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+ 0F88..0F8C    ; Lo #   [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+ 1000..102A    ; Lo #  [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+ 103F          ; Lo #       MYANMAR LETTER GREAT SA
+ 1050..1055    ; Lo #   [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+ 105A..105D    ; Lo #   [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+ 1061          ; Lo #       MYANMAR LETTER SGAW KAREN SHA
+ 1065..1066    ; Lo #   [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+ 106E..1070    ; Lo #   [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+ 1075..1081    ; Lo #  [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+ 108E          ; Lo #       MYANMAR LETTER RUMAI PALAUNG FA
+ 1100..1248    ; Lo # [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
+ 124A..124D    ; Lo #   [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+ 1250..1256    ; Lo #   [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+ 1258          ; Lo #       ETHIOPIC SYLLABLE QHWA
+ 125A..125D    ; Lo #   [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+ 1260..1288    ; Lo #  [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+ 128A..128D    ; Lo #   [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+ 1290..12B0    ; Lo #  [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+ 12B2..12B5    ; Lo #   [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+ 12B8..12BE    ; Lo #   [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+ 12C0          ; Lo #       ETHIOPIC SYLLABLE KXWA
+ 12C2..12C5    ; Lo #   [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+ 12C8..12D6    ; Lo #  [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+ 12D8..1310    ; Lo #  [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+ 1312..1315    ; Lo #   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+ 1318..135A    ; Lo #  [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+ 1380..138F    ; Lo #  [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+ 1401..166C    ; Lo # [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+ 166F..167F    ; Lo #  [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+ 1681..169A    ; Lo #  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+ 16A0..16EA    ; Lo #  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+ 16F1..16F8    ; Lo #   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+ 1700..1711    ; Lo #  [18] TAGALOG LETTER A..TAGALOG LETTER HA
+ 171F..1731    ; Lo #  [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
+ 1740..1751    ; Lo #  [18] BUHID LETTER A..BUHID LETTER HA
+ 1760..176C    ; Lo #  [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+ 176E..1770    ; Lo #   [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+ 1780..17B3    ; Lo #  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+ 17DC          ; Lo #       KHMER SIGN AVAKRAHASANYA
+ 1820..1842    ; Lo #  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+ 1844..1878    ; Lo #  [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
+ 1880..1884    ; Lo #   [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+ 1887..18A8    ; Lo #  [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
+ 18AA          ; Lo #       MONGOLIAN LETTER MANCHU ALI GALI LHA
+ 18B0..18F5    ; Lo #  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+ 1900..191E    ; Lo #  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+ 1950..196D    ; Lo #  [30] TAI LE LETTER KA..TAI LE LETTER AI
+ 1970..1974    ; Lo #   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+ 1980..19AB    ; Lo #  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+ 19B0..19C9    ; Lo #  [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+ 1A00..1A16    ; Lo #  [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+ 1A20..1A54    ; Lo #  [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+ 1B05..1B33    ; Lo #  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+ 1B45..1B4C    ; Lo #   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+ 1B83..1BA0    ; Lo #  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+ 1BAE..1BAF    ; Lo #   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+ 1BBA..1BE5    ; Lo #  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
+ 1C00..1C23    ; Lo #  [36] LEPCHA LETTER KA..LEPCHA LETTER A
+ 1C4D..1C4F    ; Lo #   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+ 1C5A..1C77    ; Lo #  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+ 1CE9..1CEC    ; Lo #   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+ 1CEE..1CF3    ; Lo #   [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
+ 1CF5..1CF6    ; Lo #   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+ 1CFA          ; Lo #       VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+ 2135..2138    ; Lo #   [4] ALEF SYMBOL..DALET SYMBOL
+ 2D30..2D67    ; Lo #  [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+ 2D80..2D96    ; Lo #  [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+ 2DA0..2DA6    ; Lo #   [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+ 2DA8..2DAE    ; Lo #   [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+ 2DB0..2DB6    ; Lo #   [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+ 2DB8..2DBE    ; Lo #   [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+ 2DC0..2DC6    ; Lo #   [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+ 2DC8..2DCE    ; Lo #   [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+ 2DD0..2DD6    ; Lo #   [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+ 2DD8..2DDE    ; Lo #   [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+ 3006          ; Lo #       IDEOGRAPHIC CLOSING MARK
+ 303C          ; Lo #       MASU MARK
+ 3041..3096    ; Lo #  [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+ 309F          ; Lo #       HIRAGANA DIGRAPH YORI
+ 30A1..30FA    ; Lo #  [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+ 30FF          ; Lo #       KATAKANA DIGRAPH KOTO
+ 3105..312F    ; Lo #  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+ 3131..318E    ; Lo #  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+ 31A0..31BF    ; Lo #  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
+ 31F0..31FF    ; Lo #  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+ 3400..4DBF    ; Lo # [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
+ 4E00..A014    ; Lo # [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E
+ A016..A48C    ; Lo # [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+ A4D0..A4F7    ; Lo #  [40] LISU LETTER BA..LISU LETTER OE
+ A500..A60B    ; Lo # [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+ A610..A61F    ; Lo #  [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+ A62A..A62B    ; Lo #   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+ A66E          ; Lo #       CYRILLIC LETTER MULTIOCULAR O
+ A6A0..A6E5    ; Lo #  [70] BAMUM LETTER A..BAMUM LETTER KI
+ A78F          ; Lo #       LATIN LETTER SINOLOGICAL DOT
+ A7F7          ; Lo #       LATIN EPIGRAPHIC LETTER SIDEWAYS I
+ A7FB..A801    ; Lo #   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
+ A803..A805    ; Lo #   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+ A807..A80A    ; Lo #   [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+ A80C..A822    ; Lo #  [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+ A840..A873    ; Lo #  [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+ A882..A8B3    ; Lo #  [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+ A8F2..A8F7    ; Lo #   [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+ A8FB          ; Lo #       DEVANAGARI HEADSTROKE
+ A8FD..A8FE    ; Lo #   [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+ A90A..A925    ; Lo #  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+ A930..A946    ; Lo #  [23] REJANG LETTER KA..REJANG LETTER A
+ A960..A97C    ; Lo #  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+ A984..A9B2    ; Lo #  [47] JAVANESE LETTER A..JAVANESE LETTER HA
+ A9E0..A9E4    ; Lo #   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+ A9E7..A9EF    ; Lo #   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+ A9FA..A9FE    ; Lo #   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+ AA00..AA28    ; Lo #  [41] CHAM LETTER A..CHAM LETTER HA
+ AA40..AA42    ; Lo #   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+ AA44..AA4B    ; Lo #   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+ AA60..AA6F    ; Lo #  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+ AA71..AA76    ; Lo #   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+ AA7A          ; Lo #       MYANMAR LETTER AITON RA
+ AA7E..AAAF    ; Lo #  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
+ AAB1          ; Lo #       TAI VIET VOWEL AA
+ AAB5..AAB6    ; Lo #   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+ AAB9..AABD    ; Lo #   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+ AAC0          ; Lo #       TAI VIET TONE MAI NUENG
+ AAC2          ; Lo #       TAI VIET TONE MAI SONG
+ AADB..AADC    ; Lo #   [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+ AAE0..AAEA    ; Lo #  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+ AAF2          ; Lo #       MEETEI MAYEK ANJI
+ AB01..AB06    ; Lo #   [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+ AB09..AB0E    ; Lo #   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+ AB11..AB16    ; Lo #   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+ AB20..AB26    ; Lo #   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+ AB28..AB2E    ; Lo #   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+ ABC0..ABE2    ; Lo #  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ AC00..D7A3    ; Lo # [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+ D7B0..D7C6    ; Lo #  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+ D7CB..D7FB    ; Lo #  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+ F900..FA6D    ; Lo # [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+ FA70..FAD9    ; Lo # [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+ FB1D          ; Lo #       HEBREW LETTER YOD WITH HIRIQ
+ FB1F..FB28    ; Lo #  [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+ FB2A..FB36    ; Lo #  [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+ FB38..FB3C    ; Lo #   [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+ FB3E          ; Lo #       HEBREW LETTER MEM WITH DAGESH
+ FB40..FB41    ; Lo #   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+ FB43..FB44    ; Lo #   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+ FB46..FBB1    ; Lo # [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+ FBD3..FD3D    ; Lo # [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+ FD50..FD8F    ; Lo #  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+ FD92..FDC7    ; Lo #  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+ FDF0..FDFB    ; Lo #  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+ FE70..FE74    ; Lo #   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+ FE76..FEFC    ; Lo # [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+ FF66..FF6F    ; Lo #  [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+ FF71..FF9D    ; Lo #  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+ FFA0..FFBE    ; Lo #  [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+ FFC2..FFC7    ; Lo #   [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+ FFCA..FFCF    ; Lo #   [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+ FFD2..FFD7    ; Lo #   [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+ 10000..1000B  ; Lo #  [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+ 1000D..10026  ; Lo #  [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+ 10028..1003A  ; Lo #  [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+ 1003C..1003D  ; Lo #   [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+ 1003F..1004D  ; Lo #  [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+ 10050..1005D  ; Lo #  [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+ 10080..100FA  ; Lo # [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+ 10280..1029C  ; Lo #  [29] LYCIAN LETTER A..LYCIAN LETTER X
+ 102A0..102D0  ; Lo #  [49] CARIAN LETTER A..CARIAN LETTER UUU3
+ 10300..1031F  ; Lo #  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+ 1032D..10340  ; Lo #  [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA
+ 10342..10349  ; Lo #   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+ 10350..10375  ; Lo #  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+ 10380..1039D  ; Lo #  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+ 103A0..103C3  ; Lo #  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+ 103C8..103CF  ; Lo #   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+ 10450..1049D  ; Lo #  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+ 10500..10527  ; Lo #  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+ 10530..10563  ; Lo #  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+ 105C0..105F3  ; Lo #  [52] TODHRI LETTER A..TODHRI LETTER OO
+ 10600..10736  ; Lo # [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+ 10740..10755  ; Lo #  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+ 10760..10767  ; Lo #   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+ 10800..10805  ; Lo #   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+ 10808         ; Lo #       CYPRIOT SYLLABLE JO
+ 1080A..10835  ; Lo #  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+ 10837..10838  ; Lo #   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+ 1083C         ; Lo #       CYPRIOT SYLLABLE ZA
+ 1083F..10855  ; Lo #  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+ 10860..10876  ; Lo #  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+ 10880..1089E  ; Lo #  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+ 108E0..108F2  ; Lo #  [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+ 108F4..108F5  ; Lo #   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
+ 10900..10915  ; Lo #  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+ 10920..10939  ; Lo #  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10980..109B7  ; Lo #  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
+ 109BE..109BF  ; Lo #   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+ 10A00         ; Lo #       KHAROSHTHI LETTER A
+ 10A10..10A13  ; Lo #   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+ 10A15..10A17  ; Lo #   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+ 10A19..10A35  ; Lo #  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+ 10A60..10A7C  ; Lo #  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+ 10A80..10A9C  ; Lo #  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+ 10AC0..10AC7  ; Lo #   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+ 10AC9..10AE4  ; Lo #  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+ 10B00..10B35  ; Lo #  [54] AVESTAN LETTER A..AVESTAN LETTER HE
+ 10B40..10B55  ; Lo #  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+ 10B60..10B72  ; Lo #  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+ 10B80..10B91  ; Lo #  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+ 10C00..10C48  ; Lo #  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+ 10D00..10D23  ; Lo #  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+ 10D4A..10D4D  ; Lo #   [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4F         ; Lo #       GARAY SUKUN
+ 10E80..10EA9  ; Lo #  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
+ 10EB0..10EB1  ; Lo #   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+ 10EC2..10EC4  ; Lo #   [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
+ 10F00..10F1C  ; Lo #  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+ 10F27         ; Lo #       OLD SOGDIAN LIGATURE AYIN-DALETH
+ 10F30..10F45  ; Lo #  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+ 10F70..10F81  ; Lo #  [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
+ 10FB0..10FC4  ; Lo #  [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
+ 10FE0..10FF6  ; Lo #  [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+ 11003..11037  ; Lo #  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+ 11071..11072  ; Lo #   [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+ 11075         ; Lo #       BRAHMI LETTER OLD TAMIL LLA
+ 11083..110AF  ; Lo #  [45] KAITHI LETTER A..KAITHI LETTER HA
+ 110D0..110E8  ; Lo #  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+ 11103..11126  ; Lo #  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+ 11144         ; Lo #       CHAKMA LETTER LHAA
+ 11147         ; Lo #       CHAKMA LETTER VAA
+ 11150..11172  ; Lo #  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+ 11176         ; Lo #       MAHAJANI LIGATURE SHRI
+ 11183..111B2  ; Lo #  [48] SHARADA LETTER A..SHARADA LETTER HA
+ 111C1..111C4  ; Lo #   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+ 111DA         ; Lo #       SHARADA EKAM
+ 111DC         ; Lo #       SHARADA HEADSTROKE
+ 11200..11211  ; Lo #  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+ 11213..1122B  ; Lo #  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+ 1123F..11240  ; Lo #   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+ 11280..11286  ; Lo #   [7] MULTANI LETTER A..MULTANI LETTER GA
+ 11288         ; Lo #       MULTANI LETTER GHA
+ 1128A..1128D  ; Lo #   [4] MULTANI LETTER CA..MULTANI LETTER JJA
+ 1128F..1129D  ; Lo #  [15] MULTANI LETTER NYA..MULTANI LETTER BA
+ 1129F..112A8  ; Lo #  [10] MULTANI LETTER BHA..MULTANI LETTER RHA
+ 112B0..112DE  ; Lo #  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+ 11305..1130C  ; Lo #   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+ 1130F..11310  ; Lo #   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+ 11313..11328  ; Lo #  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+ 1132A..11330  ; Lo #   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+ 11332..11333  ; Lo #   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+ 11335..11339  ; Lo #   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+ 1133D         ; Lo #       GRANTHA SIGN AVAGRAHA
+ 11350         ; Lo #       GRANTHA OM
+ 1135D..11361  ; Lo #   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+ 11380..11389  ; Lo #  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; Lo #       TULU-TIGALARI LETTER EE
+ 1138E         ; Lo #       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; Lo #  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7         ; Lo #       TULU-TIGALARI SIGN AVAGRAHA
+ 113D1         ; Lo #       TULU-TIGALARI REPHA
+ 113D3         ; Lo #       TULU-TIGALARI SIGN PLUTA
+ 11400..11434  ; Lo #  [53] NEWA LETTER A..NEWA LETTER HA
+ 11447..1144A  ; Lo #   [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+ 1145F..11461  ; Lo #   [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
+ 11480..114AF  ; Lo #  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+ 114C4..114C5  ; Lo #   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+ 114C7         ; Lo #       TIRHUTA OM
+ 11580..115AE  ; Lo #  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+ 115D8..115DB  ; Lo #   [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
+ 11600..1162F  ; Lo #  [48] MODI LETTER A..MODI LETTER LLA
+ 11644         ; Lo #       MODI SIGN HUVA
+ 11680..116AA  ; Lo #  [43] TAKRI LETTER A..TAKRI LETTER RRA
+ 116B8         ; Lo #       TAKRI LETTER ARCHAIC KHA
+ 11700..1171A  ; Lo #  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+ 11740..11746  ; Lo #   [7] AHOM LETTER CA..AHOM LETTER LLA
+ 11800..1182B  ; Lo #  [44] DOGRA LETTER A..DOGRA LETTER RRA
+ 118FF..11906  ; Lo #   [8] WARANG CITI OM..DIVES AKURU LETTER E
+ 11909         ; Lo #       DIVES AKURU LETTER O
+ 1190C..11913  ; Lo #   [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+ 11915..11916  ; Lo #   [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+ 11918..1192F  ; Lo #  [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
+ 1193F         ; Lo #       DIVES AKURU PREFIXED NASAL SIGN
+ 11941         ; Lo #       DIVES AKURU INITIAL RA
+ 119A0..119A7  ; Lo #   [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+ 119AA..119D0  ; Lo #  [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+ 119E1         ; Lo #       NANDINAGARI SIGN AVAGRAHA
+ 119E3         ; Lo #       NANDINAGARI HEADSTROKE
+ 11A00         ; Lo #       ZANABAZAR SQUARE LETTER A
+ 11A0B..11A32  ; Lo #  [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
+ 11A3A         ; Lo #       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+ 11A50         ; Lo #       SOYOMBO LETTER A
+ 11A5C..11A89  ; Lo #  [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
+ 11A9D         ; Lo #       SOYOMBO MARK PLUTA
+ 11AB0..11AF8  ; Lo #  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+ 11BC0..11BE0  ; Lo #  [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
+ 11C00..11C08  ; Lo #   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+ 11C0A..11C2E  ; Lo #  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
+ 11C40         ; Lo #       BHAIKSUKI SIGN AVAGRAHA
+ 11C72..11C8F  ; Lo #  [30] MARCHEN LETTER KA..MARCHEN LETTER A
+ 11D00..11D06  ; Lo #   [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+ 11D08..11D09  ; Lo #   [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+ 11D0B..11D30  ; Lo #  [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
+ 11D46         ; Lo #       MASARAM GONDI REPHA
+ 11D60..11D65  ; Lo #   [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+ 11D67..11D68  ; Lo #   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+ 11D6A..11D89  ; Lo #  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
+ 11D98         ; Lo #       GUNJALA GONDI OM
+ 11EE0..11EF2  ; Lo #  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+ 11F02         ; Lo #       KAWI SIGN REPHA
+ 11F04..11F10  ; Lo #  [13] KAWI LETTER A..KAWI LETTER O
+ 11F12..11F33  ; Lo #  [34] KAWI LETTER KA..KAWI LETTER JNYA
+ 11FB0         ; Lo #       LISU LETTER YHA
+ 12000..12399  ; Lo # [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+ 12480..12543  ; Lo # [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+ 12F90..12FF0  ; Lo #  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+ 13000..1342F  ; Lo # [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+ 13441..13446  ; Lo #   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+ 13460..143FA  ; Lo # [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
+ 14400..14646  ; Lo # [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D  ; Lo #  [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 16800..16A38  ; Lo # [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+ 16A40..16A5E  ; Lo #  [31] MRO LETTER TA..MRO LETTER TEK
+ 16A70..16ABE  ; Lo #  [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+ 16AD0..16AED  ; Lo #  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+ 16B00..16B2F  ; Lo #  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+ 16B63..16B77  ; Lo #  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+ 16B7D..16B8F  ; Lo #  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D43..16D6A  ; Lo #  [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16F00..16F4A  ; Lo #  [75] MIAO LETTER PA..MIAO LETTER RTE
+ 16F50         ; Lo #       MIAO LETTER NASALIZATION
+ 17000..187F7  ; Lo # [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
+ 18800..18CD5  ; Lo # [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
+ 18CFF..18D08  ; Lo #  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
+ 1B000..1B122  ; Lo # [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+ 1B132         ; Lo #       HIRAGANA LETTER SMALL KO
+ 1B150..1B152  ; Lo #   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+ 1B155         ; Lo #       KATAKANA LETTER SMALL KO
+ 1B164..1B167  ; Lo #   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
+ 1B170..1B2FB  ; Lo # [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+ 1BC00..1BC6A  ; Lo # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+ 1BC70..1BC7C  ; Lo #  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+ 1BC80..1BC88  ; Lo #   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+ 1BC90..1BC99  ; Lo #  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+ 1DF0A         ; Lo #       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+ 1E100..1E12C  ; Lo #  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+ 1E14E         ; Lo #       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+ 1E290..1E2AD  ; Lo #  [30] TOTO LETTER PA..TOTO LETTER A
+ 1E2C0..1E2EB  ; Lo #  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+ 1E4D0..1E4EA  ; Lo #  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+ 1E5D0..1E5ED  ; Lo #  [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5F0         ; Lo #       OL ONAL SIGN HODDOND
+ 1E7E0..1E7E6  ; Lo #   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+ 1E7E8..1E7EB  ; Lo #   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+ 1E7ED..1E7EE  ; Lo #   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+ 1E7F0..1E7FE  ; Lo #  [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+ 1E800..1E8C4  ; Lo # [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+ 1EE00..1EE03  ; Lo #   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+ 1EE05..1EE1F  ; Lo #  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+ 1EE21..1EE22  ; Lo #   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+ 1EE24         ; Lo #       ARABIC MATHEMATICAL INITIAL HEH
+ 1EE27         ; Lo #       ARABIC MATHEMATICAL INITIAL HAH
+ 1EE29..1EE32  ; Lo #  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+ 1EE34..1EE37  ; Lo #   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+ 1EE39         ; Lo #       ARABIC MATHEMATICAL INITIAL DAD
+ 1EE3B         ; Lo #       ARABIC MATHEMATICAL INITIAL GHAIN
+ 1EE42         ; Lo #       ARABIC MATHEMATICAL TAILED JEEM
+ 1EE47         ; Lo #       ARABIC MATHEMATICAL TAILED HAH
+ 1EE49         ; Lo #       ARABIC MATHEMATICAL TAILED YEH
+ 1EE4B         ; Lo #       ARABIC MATHEMATICAL TAILED LAM
+ 1EE4D..1EE4F  ; Lo #   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+ 1EE51..1EE52  ; Lo #   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+ 1EE54         ; Lo #       ARABIC MATHEMATICAL TAILED SHEEN
+ 1EE57         ; Lo #       ARABIC MATHEMATICAL TAILED KHAH
+ 1EE59         ; Lo #       ARABIC MATHEMATICAL TAILED DAD
+ 1EE5B         ; Lo #       ARABIC MATHEMATICAL TAILED GHAIN
+ 1EE5D         ; Lo #       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+ 1EE5F         ; Lo #       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+ 1EE61..1EE62  ; Lo #   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+ 1EE64         ; Lo #       ARABIC MATHEMATICAL STRETCHED HEH
+ 1EE67..1EE6A  ; Lo #   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+ 1EE6C..1EE72  ; Lo #   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+ 1EE74..1EE77  ; Lo #   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+ 1EE79..1EE7C  ; Lo #   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+ 1EE7E         ; Lo #       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+ 1EE80..1EE89  ; Lo #  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+ 1EE8B..1EE9B  ; Lo #  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+ 1EEA1..1EEA3  ; Lo #   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+ 1EEA5..1EEA9  ; Lo #   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+ 1EEAB..1EEBB  ; Lo #  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+ 20000..2A6DF  ; Lo # [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
+ 2A700..2B739  ; Lo # [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+ 2B740..2B81D  ; Lo # [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+ 2B820..2CEA1  ; Lo # [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
+ 2CEB0..2EBE0  ; Lo # [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; Lo # [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+ 2F800..2FA1D  ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+ 30000..3134A  ; Lo # [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+ 31350..323AF  ; Lo # [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+ 
+ # Total code points: 136477
+ 
+ # ================================================
+ 
+ # General_Category=Nonspacing_Mark
+ 
+ 0300..036F    ; Mn # [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+ 0483..0487    ; Mn #   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+ 0591..05BD    ; Mn #  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+ 05BF          ; Mn #       HEBREW POINT RAFE
+ 05C1..05C2    ; Mn #   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+ 05C4..05C5    ; Mn #   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+ 05C7          ; Mn #       HEBREW POINT QAMATS QATAN
+ 0610..061A    ; Mn #  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+ 064B..065F    ; Mn #  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+ 0670          ; Mn #       ARABIC LETTER SUPERSCRIPT ALEF
+ 06D6..06DC    ; Mn #   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+ 06DF..06E4    ; Mn #   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+ 06E7..06E8    ; Mn #   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+ 06EA..06ED    ; Mn #   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+ 0711          ; Mn #       SYRIAC LETTER SUPERSCRIPT ALAPH
+ 0730..074A    ; Mn #  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+ 07A6..07B0    ; Mn #  [11] THAANA ABAFILI..THAANA SUKUN
+ 07EB..07F3    ; Mn #   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+ 07FD          ; Mn #       NKO DANTAYALAN
+ 0816..0819    ; Mn #   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+ 081B..0823    ; Mn #   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+ 0825..0827    ; Mn #   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+ 0829..082D    ; Mn #   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+ 0859..085B    ; Mn #   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+ 0897..089F    ; Mn #   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
+ 08CA..08E1    ; Mn #  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
+ 08E3..0902    ; Mn #  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
+ 093A          ; Mn #       DEVANAGARI VOWEL SIGN OE
+ 093C          ; Mn #       DEVANAGARI SIGN NUKTA
+ 0941..0948    ; Mn #   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+ 094D          ; Mn #       DEVANAGARI SIGN VIRAMA
+ 0951..0957    ; Mn #   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+ 0962..0963    ; Mn #   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+ 0981          ; Mn #       BENGALI SIGN CANDRABINDU
+ 09BC          ; Mn #       BENGALI SIGN NUKTA
+ 09C1..09C4    ; Mn #   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+ 09CD          ; Mn #       BENGALI SIGN VIRAMA
+ 09E2..09E3    ; Mn #   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+ 09FE          ; Mn #       BENGALI SANDHI MARK
+ 0A01..0A02    ; Mn #   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+ 0A3C          ; Mn #       GURMUKHI SIGN NUKTA
+ 0A41..0A42    ; Mn #   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+ 0A47..0A48    ; Mn #   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+ 0A4B..0A4D    ; Mn #   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+ 0A51          ; Mn #       GURMUKHI SIGN UDAAT
+ 0A70..0A71    ; Mn #   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+ 0A75          ; Mn #       GURMUKHI SIGN YAKASH
+ 0A81..0A82    ; Mn #   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+ 0ABC          ; Mn #       GUJARATI SIGN NUKTA
+ 0AC1..0AC5    ; Mn #   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+ 0AC7..0AC8    ; Mn #   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+ 0ACD          ; Mn #       GUJARATI SIGN VIRAMA
+ 0AE2..0AE3    ; Mn #   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+ 0AFA..0AFF    ; Mn #   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+ 0B01          ; Mn #       ORIYA SIGN CANDRABINDU
+ 0B3C          ; Mn #       ORIYA SIGN NUKTA
+ 0B3F          ; Mn #       ORIYA VOWEL SIGN I
+ 0B41..0B44    ; Mn #   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+ 0B4D          ; Mn #       ORIYA SIGN VIRAMA
+ 0B55..0B56    ; Mn #   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+ 0B62..0B63    ; Mn #   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+ 0B82          ; Mn #       TAMIL SIGN ANUSVARA
+ 0BC0          ; Mn #       TAMIL VOWEL SIGN II
+ 0BCD          ; Mn #       TAMIL SIGN VIRAMA
+ 0C00          ; Mn #       TELUGU SIGN COMBINING CANDRABINDU ABOVE
+ 0C04          ; Mn #       TELUGU SIGN COMBINING ANUSVARA ABOVE
+ 0C3C          ; Mn #       TELUGU SIGN NUKTA
+ 0C3E..0C40    ; Mn #   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+ 0C46..0C48    ; Mn #   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+ 0C4A..0C4D    ; Mn #   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+ 0C55..0C56    ; Mn #   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+ 0C62..0C63    ; Mn #   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+ 0C81          ; Mn #       KANNADA SIGN CANDRABINDU
+ 0CBC          ; Mn #       KANNADA SIGN NUKTA
+ 0CBF          ; Mn #       KANNADA VOWEL SIGN I
+ 0CC6          ; Mn #       KANNADA VOWEL SIGN E
+ 0CCC..0CCD    ; Mn #   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+ 0CE2..0CE3    ; Mn #   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+ 0D00..0D01    ; Mn #   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+ 0D3B..0D3C    ; Mn #   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+ 0D41..0D44    ; Mn #   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+ 0D4D          ; Mn #       MALAYALAM SIGN VIRAMA
+ 0D62..0D63    ; Mn #   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+ 0D81          ; Mn #       SINHALA SIGN CANDRABINDU
+ 0DCA          ; Mn #       SINHALA SIGN AL-LAKUNA
+ 0DD2..0DD4    ; Mn #   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+ 0DD6          ; Mn #       SINHALA VOWEL SIGN DIGA PAA-PILLA
+ 0E31          ; Mn #       THAI CHARACTER MAI HAN-AKAT
+ 0E34..0E3A    ; Mn #   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+ 0E47..0E4E    ; Mn #   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+ 0EB1          ; Mn #       LAO VOWEL SIGN MAI KAN
+ 0EB4..0EBC    ; Mn #   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+ 0EC8..0ECE    ; Mn #   [7] LAO TONE MAI EK..LAO YAMAKKAN
+ 0F18..0F19    ; Mn #   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+ 0F35          ; Mn #       TIBETAN MARK NGAS BZUNG NYI ZLA
+ 0F37          ; Mn #       TIBETAN MARK NGAS BZUNG SGOR RTAGS
+ 0F39          ; Mn #       TIBETAN MARK TSA -PHRU
+ 0F71..0F7E    ; Mn #  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+ 0F80..0F84    ; Mn #   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+ 0F86..0F87    ; Mn #   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+ 0F8D..0F97    ; Mn #  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+ 0F99..0FBC    ; Mn #  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+ 0FC6          ; Mn #       TIBETAN SYMBOL PADMA GDAN
+ 102D..1030    ; Mn #   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+ 1032..1037    ; Mn #   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+ 1039..103A    ; Mn #   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+ 103D..103E    ; Mn #   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+ 1058..1059    ; Mn #   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+ 105E..1060    ; Mn #   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+ 1071..1074    ; Mn #   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+ 1082          ; Mn #       MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+ 1085..1086    ; Mn #   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+ 108D          ; Mn #       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+ 109D          ; Mn #       MYANMAR VOWEL SIGN AITON AI
+ 135D..135F    ; Mn #   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+ 1712..1714    ; Mn #   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+ 1732..1733    ; Mn #   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+ 1752..1753    ; Mn #   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+ 1772..1773    ; Mn #   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+ 17B4..17B5    ; Mn #   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+ 17B7..17BD    ; Mn #   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+ 17C6          ; Mn #       KHMER SIGN NIKAHIT
+ 17C9..17D3    ; Mn #  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+ 17DD          ; Mn #       KHMER SIGN ATTHACAN
+ 180B..180D    ; Mn #   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+ 180F          ; Mn #       MONGOLIAN FREE VARIATION SELECTOR FOUR
+ 1885..1886    ; Mn #   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+ 18A9          ; Mn #       MONGOLIAN LETTER ALI GALI DAGALGA
+ 1920..1922    ; Mn #   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+ 1927..1928    ; Mn #   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+ 1932          ; Mn #       LIMBU SMALL LETTER ANUSVARA
+ 1939..193B    ; Mn #   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+ 1A17..1A18    ; Mn #   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+ 1A1B          ; Mn #       BUGINESE VOWEL SIGN AE
+ 1A56          ; Mn #       TAI THAM CONSONANT SIGN MEDIAL LA
+ 1A58..1A5E    ; Mn #   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+ 1A60          ; Mn #       TAI THAM SIGN SAKOT
+ 1A62          ; Mn #       TAI THAM VOWEL SIGN MAI SAT
+ 1A65..1A6C    ; Mn #   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+ 1A73..1A7C    ; Mn #  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+ 1A7F          ; Mn #       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+ 1AB0..1ABD    ; Mn #  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+ 1ABF..1ACE    ; Mn #  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+ 1B00..1B03    ; Mn #   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+ 1B34          ; Mn #       BALINESE SIGN REREKAN
+ 1B36..1B3A    ; Mn #   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+ 1B3C          ; Mn #       BALINESE VOWEL SIGN LA LENGA
+ 1B42          ; Mn #       BALINESE VOWEL SIGN PEPET
+ 1B6B..1B73    ; Mn #   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+ 1B80..1B81    ; Mn #   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+ 1BA2..1BA5    ; Mn #   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+ 1BA8..1BA9    ; Mn #   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+ 1BAB..1BAD    ; Mn #   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+ 1BE6          ; Mn #       BATAK SIGN TOMPI
+ 1BE8..1BE9    ; Mn #   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+ 1BED          ; Mn #       BATAK VOWEL SIGN KARO O
+ 1BEF..1BF1    ; Mn #   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+ 1C2C..1C33    ; Mn #   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+ 1C36..1C37    ; Mn #   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+ 1CD0..1CD2    ; Mn #   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+ 1CD4..1CE0    ; Mn #  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+ 1CE2..1CE8    ; Mn #   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+ 1CED          ; Mn #       VEDIC SIGN TIRYAK
+ 1CF4          ; Mn #       VEDIC TONE CANDRA ABOVE
+ 1CF8..1CF9    ; Mn #   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+ 1DC0..1DFF    ; Mn #  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+ 20D0..20DC    ; Mn #  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+ 20E1          ; Mn #       COMBINING LEFT RIGHT ARROW ABOVE
+ 20E5..20F0    ; Mn #  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+ 2CEF..2CF1    ; Mn #   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+ 2D7F          ; Mn #       TIFINAGH CONSONANT JOINER
+ 2DE0..2DFF    ; Mn #  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+ 302A..302D    ; Mn #   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+ 3099..309A    ; Mn #   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ A66F          ; Mn #       COMBINING CYRILLIC VZMET
+ A674..A67D    ; Mn #  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+ A69E..A69F    ; Mn #   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+ A6F0..A6F1    ; Mn #   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+ A802          ; Mn #       SYLOTI NAGRI SIGN DVISVARA
+ A806          ; Mn #       SYLOTI NAGRI SIGN HASANTA
+ A80B          ; Mn #       SYLOTI NAGRI SIGN ANUSVARA
+ A825..A826    ; Mn #   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+ A82C          ; Mn #       SYLOTI NAGRI SIGN ALTERNATE HASANTA
+ A8C4..A8C5    ; Mn #   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+ A8E0..A8F1    ; Mn #  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+ A8FF          ; Mn #       DEVANAGARI VOWEL SIGN AY
+ A926..A92D    ; Mn #   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+ A947..A951    ; Mn #  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+ A980..A982    ; Mn #   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+ A9B3          ; Mn #       JAVANESE SIGN CECAK TELU
+ A9B6..A9B9    ; Mn #   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+ A9BC..A9BD    ; Mn #   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+ A9E5          ; Mn #       MYANMAR SIGN SHAN SAW
+ AA29..AA2E    ; Mn #   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+ AA31..AA32    ; Mn #   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+ AA35..AA36    ; Mn #   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+ AA43          ; Mn #       CHAM CONSONANT SIGN FINAL NG
+ AA4C          ; Mn #       CHAM CONSONANT SIGN FINAL M
+ AA7C          ; Mn #       MYANMAR SIGN TAI LAING TONE-2
+ AAB0          ; Mn #       TAI VIET MAI KANG
+ AAB2..AAB4    ; Mn #   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+ AAB7..AAB8    ; Mn #   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+ AABE..AABF    ; Mn #   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+ AAC1          ; Mn #       TAI VIET TONE MAI THO
+ AAEC..AAED    ; Mn #   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+ AAF6          ; Mn #       MEETEI MAYEK VIRAMA
+ ABE5          ; Mn #       MEETEI MAYEK VOWEL SIGN ANAP
+ ABE8          ; Mn #       MEETEI MAYEK VOWEL SIGN UNAP
+ ABED          ; Mn #       MEETEI MAYEK APUN IYEK
+ FB1E          ; Mn #       HEBREW POINT JUDEO-SPANISH VARIKA
+ FE00..FE0F    ; Mn #  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+ FE20..FE2F    ; Mn #  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+ 101FD         ; Mn #       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+ 102E0         ; Mn #       COPTIC EPACT THOUSANDS MARK
+ 10376..1037A  ; Mn #   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+ 10A01..10A03  ; Mn #   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+ 10A05..10A06  ; Mn #   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+ 10A0C..10A0F  ; Mn #   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+ 10A38..10A3A  ; Mn #   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+ 10A3F         ; Mn #       KHAROSHTHI VIRAMA
+ 10AE5..10AE6  ; Mn #   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+ 10D24..10D27  ; Mn #   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D69..10D6D  ; Mn #   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
+ 10EAB..10EAC  ; Mn #   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+ 10EFC..10EFF  ; Mn #   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
+ 10F46..10F50  ; Mn #  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+ 10F82..10F85  ; Mn #   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+ 11001         ; Mn #       BRAHMI SIGN ANUSVARA
+ 11038..11046  ; Mn #  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+ 11070         ; Mn #       BRAHMI SIGN OLD TAMIL VIRAMA
+ 11073..11074  ; Mn #   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+ 1107F..11081  ; Mn #   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
+ 110B3..110B6  ; Mn #   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+ 110B9..110BA  ; Mn #   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+ 110C2         ; Mn #       KAITHI VOWEL SIGN VOCALIC R
+ 11100..11102  ; Mn #   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+ 11127..1112B  ; Mn #   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+ 1112D..11134  ; Mn #   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+ 11173         ; Mn #       MAHAJANI SIGN NUKTA
+ 11180..11181  ; Mn #   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+ 111B6..111BE  ; Mn #   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+ 111C9..111CC  ; Mn #   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+ 111CF         ; Mn #       SHARADA SIGN INVERTED CANDRABINDU
+ 1122F..11231  ; Mn #   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+ 11234         ; Mn #       KHOJKI SIGN ANUSVARA
+ 11236..11237  ; Mn #   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+ 1123E         ; Mn #       KHOJKI SIGN SUKUN
+ 11241         ; Mn #       KHOJKI VOWEL SIGN VOCALIC R
+ 112DF         ; Mn #       KHUDAWADI SIGN ANUSVARA
+ 112E3..112EA  ; Mn #   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+ 11300..11301  ; Mn #   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+ 1133B..1133C  ; Mn #   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+ 11340         ; Mn #       GRANTHA VOWEL SIGN II
+ 11366..1136C  ; Mn #   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+ 11370..11374  ; Mn #   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113BB..113C0  ; Mn #   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113CE         ; Mn #       TULU-TIGALARI SIGN VIRAMA
+ 113D0         ; Mn #       TULU-TIGALARI CONJOINER
+ 113D2         ; Mn #       TULU-TIGALARI GEMINATION MARK
+ 113E1..113E2  ; Mn #   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
+ 11438..1143F  ; Mn #   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+ 11442..11444  ; Mn #   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+ 11446         ; Mn #       NEWA SIGN NUKTA
+ 1145E         ; Mn #       NEWA SANDHI MARK
+ 114B3..114B8  ; Mn #   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+ 114BA         ; Mn #       TIRHUTA VOWEL SIGN SHORT E
+ 114BF..114C0  ; Mn #   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+ 114C2..114C3  ; Mn #   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+ 115B2..115B5  ; Mn #   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+ 115BC..115BD  ; Mn #   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+ 115BF..115C0  ; Mn #   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+ 115DC..115DD  ; Mn #   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+ 11633..1163A  ; Mn #   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+ 1163D         ; Mn #       MODI SIGN ANUSVARA
+ 1163F..11640  ; Mn #   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+ 116AB         ; Mn #       TAKRI SIGN ANUSVARA
+ 116AD         ; Mn #       TAKRI VOWEL SIGN AA
+ 116B0..116B5  ; Mn #   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+ 116B7         ; Mn #       TAKRI SIGN NUKTA
+ 1171D         ; Mn #       AHOM CONSONANT SIGN MEDIAL LA
+ 1171F         ; Mn #       AHOM CONSONANT SIGN MEDIAL LIGATING RA
+ 11722..11725  ; Mn #   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+ 11727..1172B  ; Mn #   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+ 1182F..11837  ; Mn #   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+ 11839..1183A  ; Mn #   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+ 1193B..1193C  ; Mn #   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+ 1193E         ; Mn #       DIVES AKURU VIRAMA
+ 11943         ; Mn #       DIVES AKURU SIGN NUKTA
+ 119D4..119D7  ; Mn #   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+ 119DA..119DB  ; Mn #   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+ 119E0         ; Mn #       NANDINAGARI SIGN VIRAMA
+ 11A01..11A0A  ; Mn #  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+ 11A33..11A38  ; Mn #   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+ 11A3B..11A3E  ; Mn #   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+ 11A47         ; Mn #       ZANABAZAR SQUARE SUBJOINER
+ 11A51..11A56  ; Mn #   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+ 11A59..11A5B  ; Mn #   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+ 11A8A..11A96  ; Mn #  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+ 11A98..11A99  ; Mn #   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+ 11C30..11C36  ; Mn #   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+ 11C38..11C3D  ; Mn #   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+ 11C3F         ; Mn #       BHAIKSUKI SIGN VIRAMA
+ 11C92..11CA7  ; Mn #  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+ 11CAA..11CB0  ; Mn #   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+ 11CB2..11CB3  ; Mn #   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+ 11CB5..11CB6  ; Mn #   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+ 11D31..11D36  ; Mn #   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+ 11D3A         ; Mn #       MASARAM GONDI VOWEL SIGN E
+ 11D3C..11D3D  ; Mn #   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+ 11D3F..11D45  ; Mn #   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+ 11D47         ; Mn #       MASARAM GONDI RA-KARA
+ 11D90..11D91  ; Mn #   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+ 11D95         ; Mn #       GUNJALA GONDI SIGN ANUSVARA
+ 11D97         ; Mn #       GUNJALA GONDI VIRAMA
+ 11EF3..11EF4  ; Mn #   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+ 11F00..11F01  ; Mn #   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+ 11F36..11F3A  ; Mn #   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+ 11F40         ; Mn #       KAWI VOWEL SIGN EU
+ 11F42         ; Mn #       KAWI CONJOINER
+ 11F5A         ; Mn #       KAWI SIGN NUKTA
+ 13440         ; Mn #       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+ 13447..13455  ; Mn #  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1611E..16129  ; Mn #  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612D..1612F  ; Mn #   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
+ 16AF0..16AF4  ; Mn #   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+ 16B30..16B36  ; Mn #   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+ 16F4F         ; Mn #       MIAO SIGN CONSONANT MODIFIER BAR
+ 16F8F..16F92  ; Mn #   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+ 16FE4         ; Mn #       KHITAN SMALL SCRIPT FILLER
+ 1BC9D..1BC9E  ; Mn #   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+ 1CF00..1CF2D  ; Mn #  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+ 1CF30..1CF46  ; Mn #  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+ 1D167..1D169  ; Mn #   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+ 1D17B..1D182  ; Mn #   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+ 1D185..1D18B  ; Mn #   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+ 1D1AA..1D1AD  ; Mn #   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+ 1D242..1D244  ; Mn #   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+ 1DA00..1DA36  ; Mn #  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+ 1DA3B..1DA6C  ; Mn #  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+ 1DA75         ; Mn #       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+ 1DA84         ; Mn #       SIGNWRITING LOCATION HEAD NECK
+ 1DA9B..1DA9F  ; Mn #   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+ 1DAA1..1DAAF  ; Mn #  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+ 1E000..1E006  ; Mn #   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+ 1E008..1E018  ; Mn #  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+ 1E01B..1E021  ; Mn #   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+ 1E023..1E024  ; Mn #   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+ 1E026..1E02A  ; Mn #   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+ 1E08F         ; Mn #       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 1E130..1E136  ; Mn #   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+ 1E2AE         ; Mn #       TOTO SIGN RISING TONE
+ 1E2EC..1E2EF  ; Mn #   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+ 1E4EC..1E4EF  ; Mn #   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E5EE..1E5EF  ; Mn #   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
+ 1E8D0..1E8D6  ; Mn #   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+ 1E944..1E94A  ; Mn #   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+ E0100..E01EF  ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+ 
+ # Total code points: 2020
+ 
+ # ================================================
+ 
+ # General_Category=Enclosing_Mark
+ 
+ 0488..0489    ; Me #   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+ 1ABE          ; Me #       COMBINING PARENTHESES OVERLAY
+ 20DD..20E0    ; Me #   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+ 20E2..20E4    ; Me #   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+ A670..A672    ; Me #   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+ 
+ # Total code points: 13
+ 
+ # ================================================
+ 
+ # General_Category=Spacing_Mark
+ 
+ 0903          ; Mc #       DEVANAGARI SIGN VISARGA
+ 093B          ; Mc #       DEVANAGARI VOWEL SIGN OOE
+ 093E..0940    ; Mc #   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+ 0949..094C    ; Mc #   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+ 094E..094F    ; Mc #   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+ 0982..0983    ; Mc #   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+ 09BE..09C0    ; Mc #   [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+ 09C7..09C8    ; Mc #   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+ 09CB..09CC    ; Mc #   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+ 09D7          ; Mc #       BENGALI AU LENGTH MARK
+ 0A03          ; Mc #       GURMUKHI SIGN VISARGA
+ 0A3E..0A40    ; Mc #   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+ 0A83          ; Mc #       GUJARATI SIGN VISARGA
+ 0ABE..0AC0    ; Mc #   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+ 0AC9          ; Mc #       GUJARATI VOWEL SIGN CANDRA O
+ 0ACB..0ACC    ; Mc #   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+ 0B02..0B03    ; Mc #   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+ 0B3E          ; Mc #       ORIYA VOWEL SIGN AA
+ 0B40          ; Mc #       ORIYA VOWEL SIGN II
+ 0B47..0B48    ; Mc #   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+ 0B4B..0B4C    ; Mc #   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+ 0B57          ; Mc #       ORIYA AU LENGTH MARK
+ 0BBE..0BBF    ; Mc #   [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+ 0BC1..0BC2    ; Mc #   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+ 0BC6..0BC8    ; Mc #   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+ 0BCA..0BCC    ; Mc #   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+ 0BD7          ; Mc #       TAMIL AU LENGTH MARK
+ 0C01..0C03    ; Mc #   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+ 0C41..0C44    ; Mc #   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+ 0C82..0C83    ; Mc #   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+ 0CBE          ; Mc #       KANNADA VOWEL SIGN AA
+ 0CC0..0CC4    ; Mc #   [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+ 0CC7..0CC8    ; Mc #   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; Mc #   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+ 0CD5..0CD6    ; Mc #   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+ 0CF3          ; Mc #       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+ 0D02..0D03    ; Mc #   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+ 0D3E..0D40    ; Mc #   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+ 0D46..0D48    ; Mc #   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+ 0D4A..0D4C    ; Mc #   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+ 0D57          ; Mc #       MALAYALAM AU LENGTH MARK
+ 0D82..0D83    ; Mc #   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+ 0DCF..0DD1    ; Mc #   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+ 0DD8..0DDF    ; Mc #   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+ 0DF2..0DF3    ; Mc #   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+ 0F3E..0F3F    ; Mc #   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+ 0F7F          ; Mc #       TIBETAN SIGN RNAM BCAD
+ 102B..102C    ; Mc #   [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+ 1031          ; Mc #       MYANMAR VOWEL SIGN E
+ 1038          ; Mc #       MYANMAR SIGN VISARGA
+ 103B..103C    ; Mc #   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+ 1056..1057    ; Mc #   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+ 1062..1064    ; Mc #   [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+ 1067..106D    ; Mc #   [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+ 1083..1084    ; Mc #   [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+ 1087..108C    ; Mc #   [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+ 108F          ; Mc #       MYANMAR SIGN RUMAI PALAUNG TONE-5
+ 109A..109C    ; Mc #   [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+ 1715          ; Mc #       TAGALOG SIGN PAMUDPOD
+ 1734          ; Mc #       HANUNOO SIGN PAMUDPOD
+ 17B6          ; Mc #       KHMER VOWEL SIGN AA
+ 17BE..17C5    ; Mc #   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+ 17C7..17C8    ; Mc #   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+ 1923..1926    ; Mc #   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+ 1929..192B    ; Mc #   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+ 1930..1931    ; Mc #   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+ 1933..1938    ; Mc #   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+ 1A19..1A1A    ; Mc #   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+ 1A55          ; Mc #       TAI THAM CONSONANT SIGN MEDIAL RA
+ 1A57          ; Mc #       TAI THAM CONSONANT SIGN LA TANG LAI
+ 1A61          ; Mc #       TAI THAM VOWEL SIGN A
+ 1A63..1A64    ; Mc #   [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+ 1A6D..1A72    ; Mc #   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+ 1B04          ; Mc #       BALINESE SIGN BISAH
+ 1B35          ; Mc #       BALINESE VOWEL SIGN TEDUNG
+ 1B3B          ; Mc #       BALINESE VOWEL SIGN RA REPA TEDUNG
+ 1B3D..1B41    ; Mc #   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+ 1B43..1B44    ; Mc #   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+ 1B82          ; Mc #       SUNDANESE SIGN PANGWISAD
+ 1BA1          ; Mc #       SUNDANESE CONSONANT SIGN PAMINGKAL
+ 1BA6..1BA7    ; Mc #   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+ 1BAA          ; Mc #       SUNDANESE SIGN PAMAAEH
+ 1BE7          ; Mc #       BATAK VOWEL SIGN E
+ 1BEA..1BEC    ; Mc #   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+ 1BEE          ; Mc #       BATAK VOWEL SIGN U
+ 1BF2..1BF3    ; Mc #   [2] BATAK PANGOLAT..BATAK PANONGONAN
+ 1C24..1C2B    ; Mc #   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+ 1C34..1C35    ; Mc #   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+ 1CE1          ; Mc #       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+ 1CF7          ; Mc #       VEDIC SIGN ATIKRAMA
+ 302E..302F    ; Mc #   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+ A823..A824    ; Mc #   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+ A827          ; Mc #       SYLOTI NAGRI VOWEL SIGN OO
+ A880..A881    ; Mc #   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+ A8B4..A8C3    ; Mc #  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+ A952..A953    ; Mc #   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+ A983          ; Mc #       JAVANESE SIGN WIGNYAN
+ A9B4..A9B5    ; Mc #   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+ A9BA..A9BB    ; Mc #   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+ A9BE..A9C0    ; Mc #   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
+ AA2F..AA30    ; Mc #   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+ AA33..AA34    ; Mc #   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+ AA4D          ; Mc #       CHAM CONSONANT SIGN FINAL H
+ AA7B          ; Mc #       MYANMAR SIGN PAO KAREN TONE
+ AA7D          ; Mc #       MYANMAR SIGN TAI LAING TONE-5
+ AAEB          ; Mc #       MEETEI MAYEK VOWEL SIGN II
+ AAEE..AAEF    ; Mc #   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+ AAF5          ; Mc #       MEETEI MAYEK VOWEL SIGN VISARGA
+ ABE3..ABE4    ; Mc #   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ ABE6..ABE7    ; Mc #   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ ABE9..ABEA    ; Mc #   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ ABEC          ; Mc #       MEETEI MAYEK LUM IYEK
+ 11000         ; Mc #       BRAHMI SIGN CANDRABINDU
+ 11002         ; Mc #       BRAHMI SIGN VISARGA
+ 11082         ; Mc #       KAITHI SIGN VISARGA
+ 110B0..110B2  ; Mc #   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+ 110B7..110B8  ; Mc #   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+ 1112C         ; Mc #       CHAKMA VOWEL SIGN E
+ 11145..11146  ; Mc #   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+ 11182         ; Mc #       SHARADA SIGN VISARGA
+ 111B3..111B5  ; Mc #   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+ 111BF..111C0  ; Mc #   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+ 111CE         ; Mc #       SHARADA VOWEL SIGN PRISHTHAMATRA E
+ 1122C..1122E  ; Mc #   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+ 11232..11233  ; Mc #   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+ 11235         ; Mc #       KHOJKI SIGN VIRAMA
+ 112E0..112E2  ; Mc #   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+ 11302..11303  ; Mc #   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+ 1133E..1133F  ; Mc #   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+ 11341..11344  ; Mc #   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+ 11347..11348  ; Mc #   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+ 1134B..1134D  ; Mc #   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+ 11357         ; Mc #       GRANTHA AU LENGTH MARK
+ 11362..11363  ; Mc #   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 113B8..113BA  ; Mc #   [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113C2         ; Mc #       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Mc #       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA  ; Mc #   [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; Mc #   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113CF         ; Mc #       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 11435..11437  ; Mc #   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+ 11440..11441  ; Mc #   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+ 11445         ; Mc #       NEWA SIGN VISARGA
+ 114B0..114B2  ; Mc #   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+ 114B9         ; Mc #       TIRHUTA VOWEL SIGN E
+ 114BB..114BE  ; Mc #   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+ 114C1         ; Mc #       TIRHUTA SIGN VISARGA
+ 115AF..115B1  ; Mc #   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+ 115B8..115BB  ; Mc #   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+ 115BE         ; Mc #       SIDDHAM SIGN VISARGA
+ 11630..11632  ; Mc #   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+ 1163B..1163C  ; Mc #   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+ 1163E         ; Mc #       MODI SIGN VISARGA
+ 116AC         ; Mc #       TAKRI SIGN VISARGA
+ 116AE..116AF  ; Mc #   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+ 116B6         ; Mc #       TAKRI SIGN VIRAMA
+ 1171E         ; Mc #       AHOM CONSONANT SIGN MEDIAL RA
+ 11720..11721  ; Mc #   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+ 11726         ; Mc #       AHOM VOWEL SIGN E
+ 1182C..1182E  ; Mc #   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+ 11838         ; Mc #       DOGRA SIGN VISARGA
+ 11930..11935  ; Mc #   [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
+ 11937..11938  ; Mc #   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+ 1193D         ; Mc #       DIVES AKURU SIGN HALANTA
+ 11940         ; Mc #       DIVES AKURU MEDIAL YA
+ 11942         ; Mc #       DIVES AKURU MEDIAL RA
+ 119D1..119D3  ; Mc #   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+ 119DC..119DF  ; Mc #   [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+ 119E4         ; Mc #       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+ 11A39         ; Mc #       ZANABAZAR SQUARE SIGN VISARGA
+ 11A57..11A58  ; Mc #   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+ 11A97         ; Mc #       SOYOMBO SIGN VISARGA
+ 11C2F         ; Mc #       BHAIKSUKI VOWEL SIGN AA
+ 11C3E         ; Mc #       BHAIKSUKI SIGN VISARGA
+ 11CA9         ; Mc #       MARCHEN SUBJOINED LETTER YA
+ 11CB1         ; Mc #       MARCHEN VOWEL SIGN I
+ 11CB4         ; Mc #       MARCHEN VOWEL SIGN O
+ 11D8A..11D8E  ; Mc #   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+ 11D93..11D94  ; Mc #   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+ 11D96         ; Mc #       GUNJALA GONDI SIGN VISARGA
+ 11EF5..11EF6  ; Mc #   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+ 11F03         ; Mc #       KAWI SIGN VISARGA
+ 11F34..11F35  ; Mc #   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+ 11F3E..11F3F  ; Mc #   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+ 11F41         ; Mc #       KAWI SIGN KILLER
+ 1612A..1612C  ; Mc #   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 16F51..16F87  ; Mc #  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+ 16FF0..16FF1  ; Mc #   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+ 1D165..1D166  ; Mc #   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+ 1D16D..1D172  ; Mc #   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+ 
+ # Total code points: 468
+ 
+ # ================================================
+ 
+ # General_Category=Decimal_Number
+ 
+ 0030..0039    ; Nd #  [10] DIGIT ZERO..DIGIT NINE
+ 0660..0669    ; Nd #  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+ 06F0..06F9    ; Nd #  [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+ 07C0..07C9    ; Nd #  [10] NKO DIGIT ZERO..NKO DIGIT NINE
+ 0966..096F    ; Nd #  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+ 09E6..09EF    ; Nd #  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+ 0A66..0A6F    ; Nd #  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+ 0AE6..0AEF    ; Nd #  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+ 0B66..0B6F    ; Nd #  [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+ 0BE6..0BEF    ; Nd #  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+ 0C66..0C6F    ; Nd #  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+ 0CE6..0CEF    ; Nd #  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+ 0D66..0D6F    ; Nd #  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+ 0DE6..0DEF    ; Nd #  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+ 0E50..0E59    ; Nd #  [10] THAI DIGIT ZERO..THAI DIGIT NINE
+ 0ED0..0ED9    ; Nd #  [10] LAO DIGIT ZERO..LAO DIGIT NINE
+ 0F20..0F29    ; Nd #  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+ 1040..1049    ; Nd #  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+ 1090..1099    ; Nd #  [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+ 17E0..17E9    ; Nd #  [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+ 1810..1819    ; Nd #  [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+ 1946..194F    ; Nd #  [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+ 19D0..19D9    ; Nd #  [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+ 1A80..1A89    ; Nd #  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+ 1A90..1A99    ; Nd #  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+ 1B50..1B59    ; Nd #  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+ 1BB0..1BB9    ; Nd #  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+ 1C40..1C49    ; Nd #  [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+ 1C50..1C59    ; Nd #  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+ A620..A629    ; Nd #  [10] VAI DIGIT ZERO..VAI DIGIT NINE
+ A8D0..A8D9    ; Nd #  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+ A900..A909    ; Nd #  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+ A9D0..A9D9    ; Nd #  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+ A9F0..A9F9    ; Nd #  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+ AA50..AA59    ; Nd #  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+ ABF0..ABF9    ; Nd #  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+ FF10..FF19    ; Nd #  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+ 104A0..104A9  ; Nd #  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+ 10D30..10D39  ; Nd #  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+ 10D40..10D49  ; Nd #  [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
+ 11066..1106F  ; Nd #  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+ 110F0..110F9  ; Nd #  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+ 11136..1113F  ; Nd #  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+ 111D0..111D9  ; Nd #  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+ 112F0..112F9  ; Nd #  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+ 11450..11459  ; Nd #  [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
+ 114D0..114D9  ; Nd #  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+ 11650..11659  ; Nd #  [10] MODI DIGIT ZERO..MODI DIGIT NINE
+ 116C0..116C9  ; Nd #  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+ 116D0..116E3  ; Nd #  [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
+ 11730..11739  ; Nd #  [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
+ 118E0..118E9  ; Nd #  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+ 11950..11959  ; Nd #  [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
+ 11BF0..11BF9  ; Nd #  [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
+ 11C50..11C59  ; Nd #  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+ 11D50..11D59  ; Nd #  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+ 11DA0..11DA9  ; Nd #  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+ 11F50..11F59  ; Nd #  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+ 16130..16139  ; Nd #  [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
+ 16A60..16A69  ; Nd #  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+ 16AC0..16AC9  ; Nd #  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+ 16B50..16B59  ; Nd #  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+ 16D70..16D79  ; Nd #  [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
+ 1CCF0..1CCF9  ; Nd #  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
+ 1D7CE..1D7FF  ; Nd #  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+ 1E140..1E149  ; Nd #  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+ 1E2F0..1E2F9  ; Nd #  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+ 1E4F0..1E4F9  ; Nd #  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+ 1E5F1..1E5FA  ; Nd #  [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
+ 1E950..1E959  ; Nd #  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+ 1FBF0..1FBF9  ; Nd #  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+ 
+ # Total code points: 760
+ 
+ # ================================================
+ 
+ # General_Category=Letter_Number
+ 
+ 16EE..16F0    ; Nl #   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+ 2160..2182    ; Nl #  [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+ 2185..2188    ; Nl #   [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+ 3007          ; Nl #       IDEOGRAPHIC NUMBER ZERO
+ 3021..3029    ; Nl #   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+ 3038..303A    ; Nl #   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+ A6E6..A6EF    ; Nl #  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+ 10140..10174  ; Nl #  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+ 10341         ; Nl #       GOTHIC LETTER NINETY
+ 1034A         ; Nl #       GOTHIC LETTER NINE HUNDRED
+ 103D1..103D5  ; Nl #   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+ 12400..1246E  ; Nl # [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+ 
+ # Total code points: 236
+ 
+ # ================================================
+ 
+ # General_Category=Other_Number
+ 
+ 00B2..00B3    ; No #   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+ 00B9          ; No #       SUPERSCRIPT ONE
+ 00BC..00BE    ; No #   [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+ 09F4..09F9    ; No #   [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+ 0B72..0B77    ; No #   [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+ 0BF0..0BF2    ; No #   [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+ 0C78..0C7E    ; No #   [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+ 0D58..0D5E    ; No #   [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+ 0D70..0D78    ; No #   [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
+ 0F2A..0F33    ; No #  [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+ 1369..137C    ; No #  [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+ 17F0..17F9    ; No #  [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+ 19DA          ; No #       NEW TAI LUE THAM DIGIT ONE
+ 2070          ; No #       SUPERSCRIPT ZERO
+ 2074..2079    ; No #   [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+ 2080..2089    ; No #  [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+ 2150..215F    ; No #  [16] VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE
+ 2189          ; No #       VULGAR FRACTION ZERO THIRDS
+ 2460..249B    ; No #  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+ 24EA..24FF    ; No #  [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
+ 2776..2793    ; No #  [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+ 2CFD          ; No #       COPTIC FRACTION ONE HALF
+ 3192..3195    ; No #   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+ 3220..3229    ; No #  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+ 3248..324F    ; No #   [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+ 3251..325F    ; No #  [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+ 3280..3289    ; No #  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+ 32B1..32BF    ; No #  [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+ A830..A835    ; No #   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+ 10107..10133  ; No #  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+ 10175..10178  ; No #   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+ 1018A..1018B  ; No #   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+ 102E1..102FB  ; No #  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+ 10320..10323  ; No #   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+ 10858..1085F  ; No #   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+ 10879..1087F  ; No #   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+ 108A7..108AF  ; No #   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+ 108FB..108FF  ; No #   [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+ 10916..1091B  ; No #   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+ 109BC..109BD  ; No #   [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+ 109C0..109CF  ; No #  [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+ 109D2..109FF  ; No #  [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+ 10A40..10A48  ; No #   [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
+ 10A7D..10A7E  ; No #   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+ 10A9D..10A9F  ; No #   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+ 10AEB..10AEF  ; No #   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+ 10B58..10B5F  ; No #   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+ 10B78..10B7F  ; No #   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+ 10BA9..10BAF  ; No #   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+ 10CFA..10CFF  ; No #   [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+ 10E60..10E7E  ; No #  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+ 10F1D..10F26  ; No #  [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+ 10F51..10F54  ; No #   [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
+ 10FC5..10FCB  ; No #   [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
+ 11052..11065  ; No #  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+ 111E1..111F4  ; No #  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+ 1173A..1173B  ; No #   [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
+ 118EA..118F2  ; No #   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+ 11C5A..11C6C  ; No #  [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
+ 11FC0..11FD4  ; No #  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+ 16B5B..16B61  ; No #   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+ 16E80..16E96  ; No #  [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+ 1D2C0..1D2D3  ; No #  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+ 1D2E0..1D2F3  ; No #  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+ 1D360..1D378  ; No #  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
+ 1E8C7..1E8CF  ; No #   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+ 1EC71..1ECAB  ; No #  [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
+ 1ECAD..1ECAF  ; No #   [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
+ 1ECB1..1ECB4  ; No #   [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+ 1ED01..1ED2D  ; No #  [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+ 1ED2F..1ED3D  ; No #  [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
+ 1F100..1F10C  ; No #  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+ 
+ # Total code points: 915
+ 
+ # ================================================
+ 
+ # General_Category=Space_Separator
+ 
+ 0020          ; Zs #       SPACE
+ 00A0          ; Zs #       NO-BREAK SPACE
+ 1680          ; Zs #       OGHAM SPACE MARK
+ 2000..200A    ; Zs #  [11] EN QUAD..HAIR SPACE
+ 202F          ; Zs #       NARROW NO-BREAK SPACE
+ 205F          ; Zs #       MEDIUM MATHEMATICAL SPACE
+ 3000          ; Zs #       IDEOGRAPHIC SPACE
+ 
+ # Total code points: 17
+ 
+ # ================================================
+ 
+ # General_Category=Line_Separator
+ 
+ 2028          ; Zl #       LINE SEPARATOR
+ 
+ # Total code points: 1
+ 
+ # ================================================
+ 
+ # General_Category=Paragraph_Separator
+ 
+ 2029          ; Zp #       PARAGRAPH SEPARATOR
+ 
+ # Total code points: 1
+ 
+ # ================================================
+ 
+ # General_Category=Control
+ 
+ 0000..001F    ; Cc #  [32] <control-0000>..<control-001F>
+ 007F..009F    ; Cc #  [33] <control-007F>..<control-009F>
+ 
+ # Total code points: 65
+ 
+ # ================================================
+ 
+ # General_Category=Format
+ 
+ 00AD          ; Cf #       SOFT HYPHEN
+ 0600..0605    ; Cf #   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+ 061C          ; Cf #       ARABIC LETTER MARK
+ 06DD          ; Cf #       ARABIC END OF AYAH
+ 070F          ; Cf #       SYRIAC ABBREVIATION MARK
+ 0890..0891    ; Cf #   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+ 08E2          ; Cf #       ARABIC DISPUTED END OF AYAH
+ 180E          ; Cf #       MONGOLIAN VOWEL SEPARATOR
+ 200B..200F    ; Cf #   [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+ 202A..202E    ; Cf #   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+ 2060..2064    ; Cf #   [5] WORD JOINER..INVISIBLE PLUS
+ 2066..206F    ; Cf #  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+ FEFF          ; Cf #       ZERO WIDTH NO-BREAK SPACE
+ FFF9..FFFB    ; Cf #   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+ 110BD         ; Cf #       KAITHI NUMBER SIGN
+ 110CD         ; Cf #       KAITHI NUMBER SIGN ABOVE
+ 13430..1343F  ; Cf #  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+ 1BCA0..1BCA3  ; Cf #   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1D173..1D17A  ; Cf #   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+ E0001         ; Cf #       LANGUAGE TAG
+ E0020..E007F  ; Cf #  [96] TAG SPACE..CANCEL TAG
+ 
+ # Total code points: 170
+ 
+ # ================================================
+ 
+ # General_Category=Private_Use
+ 
+ E000..F8FF    ; Co # [6400] <private-use-E000>..<private-use-F8FF>
+ F0000..FFFFD  ; Co # [65534] <private-use-F0000>..<private-use-FFFFD>
+ 100000..10FFFD; Co # [65534] <private-use-100000>..<private-use-10FFFD>
+ 
+ # Total code points: 137468
+ 
+ # ================================================
+ 
+ # General_Category=Surrogate
+ 
+ D800..DFFF    ; Cs # [2048] <surrogate-D800>..<surrogate-DFFF>
+ 
+ # Total code points: 2048
+ 
+ # ================================================
+ 
+ # General_Category=Dash_Punctuation
+ 
+ 002D          ; Pd #       HYPHEN-MINUS
+ 058A          ; Pd #       ARMENIAN HYPHEN
+ 05BE          ; Pd #       HEBREW PUNCTUATION MAQAF
+ 1400          ; Pd #       CANADIAN SYLLABICS HYPHEN
+ 1806          ; Pd #       MONGOLIAN TODO SOFT HYPHEN
+ 2010..2015    ; Pd #   [6] HYPHEN..HORIZONTAL BAR
+ 2E17          ; Pd #       DOUBLE OBLIQUE HYPHEN
+ 2E1A          ; Pd #       HYPHEN WITH DIAERESIS
+ 2E3A..2E3B    ; Pd #   [2] TWO-EM DASH..THREE-EM DASH
+ 2E40          ; Pd #       DOUBLE HYPHEN
+ 2E5D          ; Pd #       OBLIQUE HYPHEN
+ 301C          ; Pd #       WAVE DASH
+ 3030          ; Pd #       WAVY DASH
+ 30A0          ; Pd #       KATAKANA-HIRAGANA DOUBLE HYPHEN
+ FE31..FE32    ; Pd #   [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+ FE58          ; Pd #       SMALL EM DASH
+ FE63          ; Pd #       SMALL HYPHEN-MINUS
+ FF0D          ; Pd #       FULLWIDTH HYPHEN-MINUS
+ 10D6E         ; Pd #       GARAY HYPHEN
+ 10EAD         ; Pd #       YEZIDI HYPHENATION MARK
+ 
+ # Total code points: 27
+ 
+ # ================================================
+ 
+ # General_Category=Open_Punctuation
+ 
+ 0028          ; Ps #       LEFT PARENTHESIS
+ 005B          ; Ps #       LEFT SQUARE BRACKET
+ 007B          ; Ps #       LEFT CURLY BRACKET
+ 0F3A          ; Ps #       TIBETAN MARK GUG RTAGS GYON
+ 0F3C          ; Ps #       TIBETAN MARK ANG KHANG GYON
+ 169B          ; Ps #       OGHAM FEATHER MARK
+ 201A          ; Ps #       SINGLE LOW-9 QUOTATION MARK
+ 201E          ; Ps #       DOUBLE LOW-9 QUOTATION MARK
+ 2045          ; Ps #       LEFT SQUARE BRACKET WITH QUILL
+ 207D          ; Ps #       SUPERSCRIPT LEFT PARENTHESIS
+ 208D          ; Ps #       SUBSCRIPT LEFT PARENTHESIS
+ 2308          ; Ps #       LEFT CEILING
+ 230A          ; Ps #       LEFT FLOOR
+ 2329          ; Ps #       LEFT-POINTING ANGLE BRACKET
+ 2768          ; Ps #       MEDIUM LEFT PARENTHESIS ORNAMENT
+ 276A          ; Ps #       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+ 276C          ; Ps #       MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+ 276E          ; Ps #       HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+ 2770          ; Ps #       HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+ 2772          ; Ps #       LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+ 2774          ; Ps #       MEDIUM LEFT CURLY BRACKET ORNAMENT
+ 27C5          ; Ps #       LEFT S-SHAPED BAG DELIMITER
+ 27E6          ; Ps #       MATHEMATICAL LEFT WHITE SQUARE BRACKET
+ 27E8          ; Ps #       MATHEMATICAL LEFT ANGLE BRACKET
+ 27EA          ; Ps #       MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+ 27EC          ; Ps #       MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+ 27EE          ; Ps #       MATHEMATICAL LEFT FLATTENED PARENTHESIS
+ 2983          ; Ps #       LEFT WHITE CURLY BRACKET
+ 2985          ; Ps #       LEFT WHITE PARENTHESIS
+ 2987          ; Ps #       Z NOTATION LEFT IMAGE BRACKET
+ 2989          ; Ps #       Z NOTATION LEFT BINDING BRACKET
+ 298B          ; Ps #       LEFT SQUARE BRACKET WITH UNDERBAR
+ 298D          ; Ps #       LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+ 298F          ; Ps #       LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+ 2991          ; Ps #       LEFT ANGLE BRACKET WITH DOT
+ 2993          ; Ps #       LEFT ARC LESS-THAN BRACKET
+ 2995          ; Ps #       DOUBLE LEFT ARC GREATER-THAN BRACKET
+ 2997          ; Ps #       LEFT BLACK TORTOISE SHELL BRACKET
+ 29D8          ; Ps #       LEFT WIGGLY FENCE
+ 29DA          ; Ps #       LEFT DOUBLE WIGGLY FENCE
+ 29FC          ; Ps #       LEFT-POINTING CURVED ANGLE BRACKET
+ 2E22          ; Ps #       TOP LEFT HALF BRACKET
+ 2E24          ; Ps #       BOTTOM LEFT HALF BRACKET
+ 2E26          ; Ps #       LEFT SIDEWAYS U BRACKET
+ 2E28          ; Ps #       LEFT DOUBLE PARENTHESIS
+ 2E42          ; Ps #       DOUBLE LOW-REVERSED-9 QUOTATION MARK
+ 2E55          ; Ps #       LEFT SQUARE BRACKET WITH STROKE
+ 2E57          ; Ps #       LEFT SQUARE BRACKET WITH DOUBLE STROKE
+ 2E59          ; Ps #       TOP HALF LEFT PARENTHESIS
+ 2E5B          ; Ps #       BOTTOM HALF LEFT PARENTHESIS
+ 3008          ; Ps #       LEFT ANGLE BRACKET
+ 300A          ; Ps #       LEFT DOUBLE ANGLE BRACKET
+ 300C          ; Ps #       LEFT CORNER BRACKET
+ 300E          ; Ps #       LEFT WHITE CORNER BRACKET
+ 3010          ; Ps #       LEFT BLACK LENTICULAR BRACKET
+ 3014          ; Ps #       LEFT TORTOISE SHELL BRACKET
+ 3016          ; Ps #       LEFT WHITE LENTICULAR BRACKET
+ 3018          ; Ps #       LEFT WHITE TORTOISE SHELL BRACKET
+ 301A          ; Ps #       LEFT WHITE SQUARE BRACKET
+ 301D          ; Ps #       REVERSED DOUBLE PRIME QUOTATION MARK
+ FD3F          ; Ps #       ORNATE RIGHT PARENTHESIS
+ FE17          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+ FE35          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+ FE37          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+ FE39          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+ FE3B          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+ FE3D          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+ FE3F          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+ FE41          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+ FE43          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+ FE47          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+ FE59          ; Ps #       SMALL LEFT PARENTHESIS
+ FE5B          ; Ps #       SMALL LEFT CURLY BRACKET
+ FE5D          ; Ps #       SMALL LEFT TORTOISE SHELL BRACKET
+ FF08          ; Ps #       FULLWIDTH LEFT PARENTHESIS
+ FF3B          ; Ps #       FULLWIDTH LEFT SQUARE BRACKET
+ FF5B          ; Ps #       FULLWIDTH LEFT CURLY BRACKET
+ FF5F          ; Ps #       FULLWIDTH LEFT WHITE PARENTHESIS
+ FF62          ; Ps #       HALFWIDTH LEFT CORNER BRACKET
+ 
+ # Total code points: 79
+ 
+ # ================================================
+ 
+ # General_Category=Close_Punctuation
+ 
+ 0029          ; Pe #       RIGHT PARENTHESIS
+ 005D          ; Pe #       RIGHT SQUARE BRACKET
+ 007D          ; Pe #       RIGHT CURLY BRACKET
+ 0F3B          ; Pe #       TIBETAN MARK GUG RTAGS GYAS
+ 0F3D          ; Pe #       TIBETAN MARK ANG KHANG GYAS
+ 169C          ; Pe #       OGHAM REVERSED FEATHER MARK
+ 2046          ; Pe #       RIGHT SQUARE BRACKET WITH QUILL
+ 207E          ; Pe #       SUPERSCRIPT RIGHT PARENTHESIS
+ 208E          ; Pe #       SUBSCRIPT RIGHT PARENTHESIS
+ 2309          ; Pe #       RIGHT CEILING
+ 230B          ; Pe #       RIGHT FLOOR
+ 232A          ; Pe #       RIGHT-POINTING ANGLE BRACKET
+ 2769          ; Pe #       MEDIUM RIGHT PARENTHESIS ORNAMENT
+ 276B          ; Pe #       MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+ 276D          ; Pe #       MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+ 276F          ; Pe #       HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+ 2771          ; Pe #       HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+ 2773          ; Pe #       LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+ 2775          ; Pe #       MEDIUM RIGHT CURLY BRACKET ORNAMENT
+ 27C6          ; Pe #       RIGHT S-SHAPED BAG DELIMITER
+ 27E7          ; Pe #       MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+ 27E9          ; Pe #       MATHEMATICAL RIGHT ANGLE BRACKET
+ 27EB          ; Pe #       MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+ 27ED          ; Pe #       MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+ 27EF          ; Pe #       MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+ 2984          ; Pe #       RIGHT WHITE CURLY BRACKET
+ 2986          ; Pe #       RIGHT WHITE PARENTHESIS
+ 2988          ; Pe #       Z NOTATION RIGHT IMAGE BRACKET
+ 298A          ; Pe #       Z NOTATION RIGHT BINDING BRACKET
+ 298C          ; Pe #       RIGHT SQUARE BRACKET WITH UNDERBAR
+ 298E          ; Pe #       RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+ 2990          ; Pe #       RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+ 2992          ; Pe #       RIGHT ANGLE BRACKET WITH DOT
+ 2994          ; Pe #       RIGHT ARC GREATER-THAN BRACKET
+ 2996          ; Pe #       DOUBLE RIGHT ARC LESS-THAN BRACKET
+ 2998          ; Pe #       RIGHT BLACK TORTOISE SHELL BRACKET
+ 29D9          ; Pe #       RIGHT WIGGLY FENCE
+ 29DB          ; Pe #       RIGHT DOUBLE WIGGLY FENCE
+ 29FD          ; Pe #       RIGHT-POINTING CURVED ANGLE BRACKET
+ 2E23          ; Pe #       TOP RIGHT HALF BRACKET
+ 2E25          ; Pe #       BOTTOM RIGHT HALF BRACKET
+ 2E27          ; Pe #       RIGHT SIDEWAYS U BRACKET
+ 2E29          ; Pe #       RIGHT DOUBLE PARENTHESIS
+ 2E56          ; Pe #       RIGHT SQUARE BRACKET WITH STROKE
+ 2E58          ; Pe #       RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+ 2E5A          ; Pe #       TOP HALF RIGHT PARENTHESIS
+ 2E5C          ; Pe #       BOTTOM HALF RIGHT PARENTHESIS
+ 3009          ; Pe #       RIGHT ANGLE BRACKET
+ 300B          ; Pe #       RIGHT DOUBLE ANGLE BRACKET
+ 300D          ; Pe #       RIGHT CORNER BRACKET
+ 300F          ; Pe #       RIGHT WHITE CORNER BRACKET
+ 3011          ; Pe #       RIGHT BLACK LENTICULAR BRACKET
+ 3015          ; Pe #       RIGHT TORTOISE SHELL BRACKET
+ 3017          ; Pe #       RIGHT WHITE LENTICULAR BRACKET
+ 3019          ; Pe #       RIGHT WHITE TORTOISE SHELL BRACKET
+ 301B          ; Pe #       RIGHT WHITE SQUARE BRACKET
+ 301E..301F    ; Pe #   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+ FD3E          ; Pe #       ORNATE LEFT PARENTHESIS
+ FE18          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+ FE36          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+ FE38          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+ FE3A          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+ FE3C          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+ FE3E          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+ FE40          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+ FE42          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+ FE44          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+ FE48          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+ FE5A          ; Pe #       SMALL RIGHT PARENTHESIS
+ FE5C          ; Pe #       SMALL RIGHT CURLY BRACKET
+ FE5E          ; Pe #       SMALL RIGHT TORTOISE SHELL BRACKET
+ FF09          ; Pe #       FULLWIDTH RIGHT PARENTHESIS
+ FF3D          ; Pe #       FULLWIDTH RIGHT SQUARE BRACKET
+ FF5D          ; Pe #       FULLWIDTH RIGHT CURLY BRACKET
+ FF60          ; Pe #       FULLWIDTH RIGHT WHITE PARENTHESIS
+ FF63          ; Pe #       HALFWIDTH RIGHT CORNER BRACKET
+ 
+ # Total code points: 77
+ 
+ # ================================================
+ 
+ # General_Category=Connector_Punctuation
+ 
+ 005F          ; Pc #       LOW LINE
+ 203F..2040    ; Pc #   [2] UNDERTIE..CHARACTER TIE
+ 2054          ; Pc #       INVERTED UNDERTIE
+ FE33..FE34    ; Pc #   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+ FE4D..FE4F    ; Pc #   [3] DASHED LOW LINE..WAVY LOW LINE
+ FF3F          ; Pc #       FULLWIDTH LOW LINE
+ 
+ # Total code points: 10
+ 
+ # ================================================
+ 
+ # General_Category=Other_Punctuation
+ 
+ 0021..0023    ; Po #   [3] EXCLAMATION MARK..NUMBER SIGN
+ 0025..0027    ; Po #   [3] PERCENT SIGN..APOSTROPHE
+ 002A          ; Po #       ASTERISK
+ 002C          ; Po #       COMMA
+ 002E..002F    ; Po #   [2] FULL STOP..SOLIDUS
+ 003A..003B    ; Po #   [2] COLON..SEMICOLON
+ 003F..0040    ; Po #   [2] QUESTION MARK..COMMERCIAL AT
+ 005C          ; Po #       REVERSE SOLIDUS
+ 00A1          ; Po #       INVERTED EXCLAMATION MARK
+ 00A7          ; Po #       SECTION SIGN
+ 00B6..00B7    ; Po #   [2] PILCROW SIGN..MIDDLE DOT
+ 00BF          ; Po #       INVERTED QUESTION MARK
+ 037E          ; Po #       GREEK QUESTION MARK
+ 0387          ; Po #       GREEK ANO TELEIA
+ 055A..055F    ; Po #   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+ 0589          ; Po #       ARMENIAN FULL STOP
+ 05C0          ; Po #       HEBREW PUNCTUATION PASEQ
+ 05C3          ; Po #       HEBREW PUNCTUATION SOF PASUQ
+ 05C6          ; Po #       HEBREW PUNCTUATION NUN HAFUKHA
+ 05F3..05F4    ; Po #   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+ 0609..060A    ; Po #   [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+ 060C..060D    ; Po #   [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+ 061B          ; Po #       ARABIC SEMICOLON
+ 061D..061F    ; Po #   [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
+ 066A..066D    ; Po #   [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+ 06D4          ; Po #       ARABIC FULL STOP
+ 0700..070D    ; Po #  [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+ 07F7..07F9    ; Po #   [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+ 0830..083E    ; Po #  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+ 085E          ; Po #       MANDAIC PUNCTUATION
+ 0964..0965    ; Po #   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+ 0970          ; Po #       DEVANAGARI ABBREVIATION SIGN
+ 09FD          ; Po #       BENGALI ABBREVIATION SIGN
+ 0A76          ; Po #       GURMUKHI ABBREVIATION SIGN
+ 0AF0          ; Po #       GUJARATI ABBREVIATION SIGN
+ 0C77          ; Po #       TELUGU SIGN SIDDHAM
+ 0C84          ; Po #       KANNADA SIGN SIDDHAM
+ 0DF4          ; Po #       SINHALA PUNCTUATION KUNDDALIYA
+ 0E4F          ; Po #       THAI CHARACTER FONGMAN
+ 0E5A..0E5B    ; Po #   [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+ 0F04..0F12    ; Po #  [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+ 0F14          ; Po #       TIBETAN MARK GTER TSHEG
+ 0F85          ; Po #       TIBETAN MARK PALUTA
+ 0FD0..0FD4    ; Po #   [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+ 0FD9..0FDA    ; Po #   [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+ 104A..104F    ; Po #   [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+ 10FB          ; Po #       GEORGIAN PARAGRAPH SEPARATOR
+ 1360..1368    ; Po #   [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
+ 166E          ; Po #       CANADIAN SYLLABICS FULL STOP
+ 16EB..16ED    ; Po #   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+ 1735..1736    ; Po #   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+ 17D4..17D6    ; Po #   [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+ 17D8..17DA    ; Po #   [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+ 1800..1805    ; Po #   [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+ 1807..180A    ; Po #   [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+ 1944..1945    ; Po #   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+ 1A1E..1A1F    ; Po #   [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+ 1AA0..1AA6    ; Po #   [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+ 1AA8..1AAD    ; Po #   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+ 1B4E..1B4F    ; Po #   [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
+ 1B5A..1B60    ; Po #   [7] BALINESE PANTI..BALINESE PAMENENG
+ 1B7D..1B7F    ; Po #   [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
+ 1BFC..1BFF    ; Po #   [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+ 1C3B..1C3F    ; Po #   [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+ 1C7E..1C7F    ; Po #   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+ 1CC0..1CC7    ; Po #   [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+ 1CD3          ; Po #       VEDIC SIGN NIHSHVASA
+ 2016..2017    ; Po #   [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
+ 2020..2027    ; Po #   [8] DAGGER..HYPHENATION POINT
+ 2030..2038    ; Po #   [9] PER MILLE SIGN..CARET
+ 203B..203E    ; Po #   [4] REFERENCE MARK..OVERLINE
+ 2041..2043    ; Po #   [3] CARET INSERTION POINT..HYPHEN BULLET
+ 2047..2051    ; Po #  [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+ 2053          ; Po #       SWUNG DASH
+ 2055..205E    ; Po #  [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+ 2CF9..2CFC    ; Po #   [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+ 2CFE..2CFF    ; Po #   [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+ 2D70          ; Po #       TIFINAGH SEPARATOR MARK
+ 2E00..2E01    ; Po #   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+ 2E06..2E08    ; Po #   [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+ 2E0B          ; Po #       RAISED SQUARE
+ 2E0E..2E16    ; Po #   [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+ 2E18..2E19    ; Po #   [2] INVERTED INTERROBANG..PALM BRANCH
+ 2E1B          ; Po #       TILDE WITH RING ABOVE
+ 2E1E..2E1F    ; Po #   [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+ 2E2A..2E2E    ; Po #   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+ 2E30..2E39    ; Po #  [10] RING POINT..TOP HALF SECTION SIGN
+ 2E3C..2E3F    ; Po #   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+ 2E41          ; Po #       REVERSED COMMA
+ 2E43..2E4F    ; Po #  [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
+ 2E52..2E54    ; Po #   [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
+ 3001..3003    ; Po #   [3] IDEOGRAPHIC COMMA..DITTO MARK
+ 303D          ; Po #       PART ALTERNATION MARK
+ 30FB          ; Po #       KATAKANA MIDDLE DOT
+ A4FE..A4FF    ; Po #   [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+ A60D..A60F    ; Po #   [3] VAI COMMA..VAI QUESTION MARK
+ A673          ; Po #       SLAVONIC ASTERISK
+ A67E          ; Po #       CYRILLIC KAVYKA
+ A6F2..A6F7    ; Po #   [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
+ A874..A877    ; Po #   [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+ A8CE..A8CF    ; Po #   [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+ A8F8..A8FA    ; Po #   [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+ A8FC          ; Po #       DEVANAGARI SIGN SIDDHAM
+ A92E..A92F    ; Po #   [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+ A95F          ; Po #       REJANG SECTION MARK
+ A9C1..A9CD    ; Po #  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+ A9DE..A9DF    ; Po #   [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+ AA5C..AA5F    ; Po #   [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+ AADE..AADF    ; Po #   [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+ AAF0..AAF1    ; Po #   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+ ABEB          ; Po #       MEETEI MAYEK CHEIKHEI
+ FE10..FE16    ; Po #   [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+ FE19          ; Po #       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+ FE30          ; Po #       PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+ FE45..FE46    ; Po #   [2] SESAME DOT..WHITE SESAME DOT
+ FE49..FE4C    ; Po #   [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+ FE50..FE52    ; Po #   [3] SMALL COMMA..SMALL FULL STOP
+ FE54..FE57    ; Po #   [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+ FE5F..FE61    ; Po #   [3] SMALL NUMBER SIGN..SMALL ASTERISK
+ FE68          ; Po #       SMALL REVERSE SOLIDUS
+ FE6A..FE6B    ; Po #   [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+ FF01..FF03    ; Po #   [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+ FF05..FF07    ; Po #   [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+ FF0A          ; Po #       FULLWIDTH ASTERISK
+ FF0C          ; Po #       FULLWIDTH COMMA
+ FF0E..FF0F    ; Po #   [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+ FF1A..FF1B    ; Po #   [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+ FF1F..FF20    ; Po #   [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+ FF3C          ; Po #       FULLWIDTH REVERSE SOLIDUS
+ FF61          ; Po #       HALFWIDTH IDEOGRAPHIC FULL STOP
+ FF64..FF65    ; Po #   [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+ 10100..10102  ; Po #   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+ 1039F         ; Po #       UGARITIC WORD DIVIDER
+ 103D0         ; Po #       OLD PERSIAN WORD DIVIDER
+ 1056F         ; Po #       CAUCASIAN ALBANIAN CITATION MARK
+ 10857         ; Po #       IMPERIAL ARAMAIC SECTION SIGN
+ 1091F         ; Po #       PHOENICIAN WORD SEPARATOR
+ 1093F         ; Po #       LYDIAN TRIANGULAR MARK
+ 10A50..10A58  ; Po #   [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+ 10A7F         ; Po #       OLD SOUTH ARABIAN NUMERIC INDICATOR
+ 10AF0..10AF6  ; Po #   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+ 10B39..10B3F  ; Po #   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+ 10B99..10B9C  ; Po #   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+ 10F55..10F59  ; Po #   [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+ 10F86..10F89  ; Po #   [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+ 11047..1104D  ; Po #   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+ 110BB..110BC  ; Po #   [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+ 110BE..110C1  ; Po #   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+ 11140..11143  ; Po #   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+ 11174..11175  ; Po #   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+ 111C5..111C8  ; Po #   [4] SHARADA DANDA..SHARADA SEPARATOR
+ 111CD         ; Po #       SHARADA SUTRA MARK
+ 111DB         ; Po #       SHARADA SIGN SIDDHAM
+ 111DD..111DF  ; Po #   [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
+ 11238..1123D  ; Po #   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+ 112A9         ; Po #       MULTANI SECTION MARK
+ 113D4..113D5  ; Po #   [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
+ 113D7..113D8  ; Po #   [2] TULU-TIGALARI SIGN OM PUSHPIKA..TULU-TIGALARI SIGN SHRII PUSHPIKA
+ 1144B..1144F  ; Po #   [5] NEWA DANDA..NEWA ABBREVIATION SIGN
+ 1145A..1145B  ; Po #   [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
+ 1145D         ; Po #       NEWA INSERTION SIGN
+ 114C6         ; Po #       TIRHUTA ABBREVIATION SIGN
+ 115C1..115D7  ; Po #  [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+ 11641..11643  ; Po #   [3] MODI DANDA..MODI ABBREVIATION SIGN
+ 11660..1166C  ; Po #  [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+ 116B9         ; Po #       TAKRI ABBREVIATION SIGN
+ 1173C..1173E  ; Po #   [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
+ 1183B         ; Po #       DOGRA ABBREVIATION SIGN
+ 11944..11946  ; Po #   [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
+ 119E2         ; Po #       NANDINAGARI SIGN SIDDHAM
+ 11A3F..11A46  ; Po #   [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+ 11A9A..11A9C  ; Po #   [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+ 11A9E..11AA2  ; Po #   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+ 11B00..11B09  ; Po #  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+ 11BE1         ; Po #       SUNUWAR SIGN PVO
+ 11C41..11C45  ; Po #   [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+ 11C70..11C71  ; Po #   [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
+ 11EF7..11EF8  ; Po #   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+ 11F43..11F4F  ; Po #  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+ 11FFF         ; Po #       TAMIL PUNCTUATION END OF TEXT
+ 12470..12474  ; Po #   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+ 12FF1..12FF2  ; Po #   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
+ 16A6E..16A6F  ; Po #   [2] MRO DANDA..MRO DOUBLE DANDA
+ 16AF5         ; Po #       BASSA VAH FULL STOP
+ 16B37..16B3B  ; Po #   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+ 16B44         ; Po #       PAHAWH HMONG SIGN XAUS
+ 16D6D..16D6F  ; Po #   [3] KIRAT RAI SIGN YUPI..KIRAT RAI DOUBLE DANDA
+ 16E97..16E9A  ; Po #   [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
+ 16FE2         ; Po #       OLD CHINESE HOOK MARK
+ 1BC9F         ; Po #       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+ 1DA87..1DA8B  ; Po #   [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
+ 1E5FF         ; Po #       OL ONAL ABBREVIATION SIGN
+ 1E95E..1E95F  ; Po #   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+ 
+ # Total code points: 640
+ 
+ # ================================================
+ 
+ # General_Category=Math_Symbol
+ 
+ 002B          ; Sm #       PLUS SIGN
+ 003C..003E    ; Sm #   [3] LESS-THAN SIGN..GREATER-THAN SIGN
+ 007C          ; Sm #       VERTICAL LINE
+ 007E          ; Sm #       TILDE
+ 00AC          ; Sm #       NOT SIGN
+ 00B1          ; Sm #       PLUS-MINUS SIGN
+ 00D7          ; Sm #       MULTIPLICATION SIGN
+ 00F7          ; Sm #       DIVISION SIGN
+ 03F6          ; Sm #       GREEK REVERSED LUNATE EPSILON SYMBOL
+ 0606..0608    ; Sm #   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+ 2044          ; Sm #       FRACTION SLASH
+ 2052          ; Sm #       COMMERCIAL MINUS SIGN
+ 207A..207C    ; Sm #   [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+ 208A..208C    ; Sm #   [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+ 2118          ; Sm #       SCRIPT CAPITAL P
+ 2140..2144    ; Sm #   [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+ 214B          ; Sm #       TURNED AMPERSAND
+ 2190..2194    ; Sm #   [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+ 219A..219B    ; Sm #   [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+ 21A0          ; Sm #       RIGHTWARDS TWO HEADED ARROW
+ 21A3          ; Sm #       RIGHTWARDS ARROW WITH TAIL
+ 21A6          ; Sm #       RIGHTWARDS ARROW FROM BAR
+ 21AE          ; Sm #       LEFT RIGHT ARROW WITH STROKE
+ 21CE..21CF    ; Sm #   [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+ 21D2          ; Sm #       RIGHTWARDS DOUBLE ARROW
+ 21D4          ; Sm #       LEFT RIGHT DOUBLE ARROW
+ 21F4..22FF    ; Sm # [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
+ 2320..2321    ; Sm #   [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+ 237C          ; Sm #       RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+ 239B..23B3    ; Sm #  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+ 23DC..23E1    ; Sm #   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+ 25B7          ; Sm #       WHITE RIGHT-POINTING TRIANGLE
+ 25C1          ; Sm #       WHITE LEFT-POINTING TRIANGLE
+ 25F8..25FF    ; Sm #   [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+ 266F          ; Sm #       MUSIC SHARP SIGN
+ 27C0..27C4    ; Sm #   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+ 27C7..27E5    ; Sm #  [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+ 27F0..27FF    ; Sm #  [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+ 2900..2982    ; Sm # [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
+ 2999..29D7    ; Sm #  [63] DOTTED FENCE..BLACK HOURGLASS
+ 29DC..29FB    ; Sm #  [32] INCOMPLETE INFINITY..TRIPLE PLUS
+ 29FE..2AFF    ; Sm # [258] TINY..N-ARY WHITE VERTICAL BAR
+ 2B30..2B44    ; Sm #  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+ 2B47..2B4C    ; Sm #   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+ FB29          ; Sm #       HEBREW LETTER ALTERNATIVE PLUS SIGN
+ FE62          ; Sm #       SMALL PLUS SIGN
+ FE64..FE66    ; Sm #   [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+ FF0B          ; Sm #       FULLWIDTH PLUS SIGN
+ FF1C..FF1E    ; Sm #   [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+ FF5C          ; Sm #       FULLWIDTH VERTICAL LINE
+ FF5E          ; Sm #       FULLWIDTH TILDE
+ FFE2          ; Sm #       FULLWIDTH NOT SIGN
+ FFE9..FFEC    ; Sm #   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+ 10D8E..10D8F  ; Sm #   [2] GARAY PLUS SIGN..GARAY MINUS SIGN
+ 1D6C1         ; Sm #       MATHEMATICAL BOLD NABLA
+ 1D6DB         ; Sm #       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+ 1D6FB         ; Sm #       MATHEMATICAL ITALIC NABLA
+ 1D715         ; Sm #       MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+ 1D735         ; Sm #       MATHEMATICAL BOLD ITALIC NABLA
+ 1D74F         ; Sm #       MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+ 1D76F         ; Sm #       MATHEMATICAL SANS-SERIF BOLD NABLA
+ 1D789         ; Sm #       MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+ 1D7A9         ; Sm #       MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+ 1D7C3         ; Sm #       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+ 1EEF0..1EEF1  ; Sm #   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+ 
+ # Total code points: 950
+ 
+ # ================================================
+ 
+ # General_Category=Currency_Symbol
+ 
+ 0024          ; Sc #       DOLLAR SIGN
+ 00A2..00A5    ; Sc #   [4] CENT SIGN..YEN SIGN
+ 058F          ; Sc #       ARMENIAN DRAM SIGN
+ 060B          ; Sc #       AFGHANI SIGN
+ 07FE..07FF    ; Sc #   [2] NKO DOROME SIGN..NKO TAMAN SIGN
+ 09F2..09F3    ; Sc #   [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+ 09FB          ; Sc #       BENGALI GANDA MARK
+ 0AF1          ; Sc #       GUJARATI RUPEE SIGN
+ 0BF9          ; Sc #       TAMIL RUPEE SIGN
+ 0E3F          ; Sc #       THAI CURRENCY SYMBOL BAHT
+ 17DB          ; Sc #       KHMER CURRENCY SYMBOL RIEL
+ 20A0..20C0    ; Sc #  [33] EURO-CURRENCY SIGN..SOM SIGN
+ A838          ; Sc #       NORTH INDIC RUPEE MARK
+ FDFC          ; Sc #       RIAL SIGN
+ FE69          ; Sc #       SMALL DOLLAR SIGN
+ FF04          ; Sc #       FULLWIDTH DOLLAR SIGN
+ FFE0..FFE1    ; Sc #   [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+ FFE5..FFE6    ; Sc #   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+ 11FDD..11FE0  ; Sc #   [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+ 1E2FF         ; Sc #       WANCHO NGUN SIGN
+ 1ECB0         ; Sc #       INDIC SIYAQ RUPEE MARK
+ 
+ # Total code points: 63
+ 
+ # ================================================
+ 
+ # General_Category=Modifier_Symbol
+ 
+ 005E          ; Sk #       CIRCUMFLEX ACCENT
+ 0060          ; Sk #       GRAVE ACCENT
+ 00A8          ; Sk #       DIAERESIS
+ 00AF          ; Sk #       MACRON
+ 00B4          ; Sk #       ACUTE ACCENT
+ 00B8          ; Sk #       CEDILLA
+ 02C2..02C5    ; Sk #   [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+ 02D2..02DF    ; Sk #  [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
+ 02E5..02EB    ; Sk #   [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+ 02ED          ; Sk #       MODIFIER LETTER UNASPIRATED
+ 02EF..02FF    ; Sk #  [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+ 0375          ; Sk #       GREEK LOWER NUMERAL SIGN
+ 0384..0385    ; Sk #   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+ 0888          ; Sk #       ARABIC RAISED ROUND DOT
+ 1FBD          ; Sk #       GREEK KORONIS
+ 1FBF..1FC1    ; Sk #   [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+ 1FCD..1FCF    ; Sk #   [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+ 1FDD..1FDF    ; Sk #   [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+ 1FED..1FEF    ; Sk #   [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+ 1FFD..1FFE    ; Sk #   [2] GREEK OXIA..GREEK DASIA
+ 309B..309C    ; Sk #   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ A700..A716    ; Sk #  [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+ A720..A721    ; Sk #   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+ A789..A78A    ; Sk #   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+ AB5B          ; Sk #       MODIFIER BREVE WITH INVERTED BREVE
+ AB6A..AB6B    ; Sk #   [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
+ FBB2..FBC2    ; Sk #  [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
+ FF3E          ; Sk #       FULLWIDTH CIRCUMFLEX ACCENT
+ FF40          ; Sk #       FULLWIDTH GRAVE ACCENT
+ FFE3          ; Sk #       FULLWIDTH MACRON
+ 1F3FB..1F3FF  ; Sk #   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+ 
+ # Total code points: 125
+ 
+ # ================================================
+ 
+ # General_Category=Other_Symbol
+ 
+ 00A6          ; So #       BROKEN BAR
+ 00A9          ; So #       COPYRIGHT SIGN
+ 00AE          ; So #       REGISTERED SIGN
+ 00B0          ; So #       DEGREE SIGN
+ 0482          ; So #       CYRILLIC THOUSANDS SIGN
+ 058D..058E    ; So #   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+ 060E..060F    ; So #   [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+ 06DE          ; So #       ARABIC START OF RUB EL HIZB
+ 06E9          ; So #       ARABIC PLACE OF SAJDAH
+ 06FD..06FE    ; So #   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+ 07F6          ; So #       NKO SYMBOL OO DENNEN
+ 09FA          ; So #       BENGALI ISSHAR
+ 0B70          ; So #       ORIYA ISSHAR
+ 0BF3..0BF8    ; So #   [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+ 0BFA          ; So #       TAMIL NUMBER SIGN
+ 0C7F          ; So #       TELUGU SIGN TUUMU
+ 0D4F          ; So #       MALAYALAM SIGN PARA
+ 0D79          ; So #       MALAYALAM DATE MARK
+ 0F01..0F03    ; So #   [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+ 0F13          ; So #       TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+ 0F15..0F17    ; So #   [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+ 0F1A..0F1F    ; So #   [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+ 0F34          ; So #       TIBETAN MARK BSDUS RTAGS
+ 0F36          ; So #       TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+ 0F38          ; So #       TIBETAN MARK CHE MGO
+ 0FBE..0FC5    ; So #   [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+ 0FC7..0FCC    ; So #   [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+ 0FCE..0FCF    ; So #   [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+ 0FD5..0FD8    ; So #   [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+ 109E..109F    ; So #   [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+ 1390..1399    ; So #  [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+ 166D          ; So #       CANADIAN SYLLABICS CHI SIGN
+ 1940          ; So #       LIMBU SIGN LOO
+ 19DE..19FF    ; So #  [34] NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
+ 1B61..1B6A    ; So #  [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+ 1B74..1B7C    ; So #   [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+ 2100..2101    ; So #   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+ 2103..2106    ; So #   [4] DEGREE CELSIUS..CADA UNA
+ 2108..2109    ; So #   [2] SCRUPLE..DEGREE FAHRENHEIT
+ 2114          ; So #       L B BAR SYMBOL
+ 2116..2117    ; So #   [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT
+ 211E..2123    ; So #   [6] PRESCRIPTION TAKE..VERSICLE
+ 2125          ; So #       OUNCE SIGN
+ 2127          ; So #       INVERTED OHM SIGN
+ 2129          ; So #       TURNED GREEK SMALL LETTER IOTA
+ 212E          ; So #       ESTIMATED SYMBOL
+ 213A..213B    ; So #   [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+ 214A          ; So #       PROPERTY LINE
+ 214C..214D    ; So #   [2] PER SIGN..AKTIESELSKAB
+ 214F          ; So #       SYMBOL FOR SAMARITAN SOURCE
+ 218A..218B    ; So #   [2] TURNED DIGIT TWO..TURNED DIGIT THREE
+ 2195..2199    ; So #   [5] UP DOWN ARROW..SOUTH WEST ARROW
+ 219C..219F    ; So #   [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+ 21A1..21A2    ; So #   [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+ 21A4..21A5    ; So #   [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+ 21A7..21AD    ; So #   [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+ 21AF..21CD    ; So #  [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+ 21D0..21D1    ; So #   [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+ 21D3          ; So #       DOWNWARDS DOUBLE ARROW
+ 21D5..21F3    ; So #  [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+ 2300..2307    ; So #   [8] DIAMETER SIGN..WAVY LINE
+ 230C..231F    ; So #  [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
+ 2322..2328    ; So #   [7] FROWN..KEYBOARD
+ 232B..237B    ; So #  [81] ERASE TO THE LEFT..NOT CHECK MARK
+ 237D..239A    ; So #  [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+ 23B4..23DB    ; So #  [40] TOP SQUARE BRACKET..FUSE
+ 23E2..2429    ; So #  [72] WHITE TRAPEZIUM..SYMBOL FOR DELETE MEDIUM SHADE FORM
+ 2440..244A    ; So #  [11] OCR HOOK..OCR DOUBLE BACKSLASH
+ 249C..24E9    ; So #  [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+ 2500..25B6    ; So # [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
+ 25B8..25C0    ; So #   [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
+ 25C2..25F7    ; So #  [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+ 2600..266E    ; So # [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
+ 2670..2767    ; So # [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
+ 2794..27BF    ; So #  [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
+ 2800..28FF    ; So # [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+ 2B00..2B2F    ; So #  [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+ 2B45..2B46    ; So #   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+ 2B4D..2B73    ; So #  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+ 2B76..2B95    ; So #  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+ 2B97..2BFF    ; So # [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
+ 2CE5..2CEA    ; So #   [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+ 2E50..2E51    ; So #   [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
+ 2E80..2E99    ; So #  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+ 2E9B..2EF3    ; So #  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+ 2F00..2FD5    ; So # [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+ 2FF0..2FFF    ; So #  [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+ 3004          ; So #       JAPANESE INDUSTRIAL STANDARD SYMBOL
+ 3012..3013    ; So #   [2] POSTAL MARK..GETA MARK
+ 3020          ; So #       POSTAL MARK FACE
+ 3036..3037    ; So #   [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+ 303E..303F    ; So #   [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+ 3190..3191    ; So #   [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+ 3196..319F    ; So #  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+ 31C0..31E5    ; So #  [38] CJK STROKE T..CJK STROKE SZP
+ 31EF          ; So #       IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
+ 3200..321E    ; So #  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+ 322A..3247    ; So #  [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+ 3250          ; So #       PARTNERSHIP SIGN
+ 3260..327F    ; So #  [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+ 328A..32B0    ; So #  [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+ 32C0..33FF    ; So # [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
+ 4DC0..4DFF    ; So #  [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+ A490..A4C6    ; So #  [55] YI RADICAL QOT..YI RADICAL KE
+ A828..A82B    ; So #   [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+ A836..A837    ; So #   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+ A839          ; So #       NORTH INDIC QUANTITY MARK
+ AA77..AA79    ; So #   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+ FD40..FD4F    ; So #  [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+ FDCF          ; So #       ARABIC LIGATURE SALAAMUHU ALAYNAA
+ FDFD..FDFF    ; So #   [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
+ FFE4          ; So #       FULLWIDTH BROKEN BAR
+ FFE8          ; So #       HALFWIDTH FORMS LIGHT VERTICAL
+ FFED..FFEE    ; So #   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+ FFFC..FFFD    ; So #   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
+ 10137..1013F  ; So #   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+ 10179..10189  ; So #  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+ 1018C..1018E  ; So #   [3] GREEK SINUSOID SIGN..NOMISMA SIGN
+ 10190..1019C  ; So #  [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
+ 101A0         ; So #       GREEK SYMBOL TAU RHO
+ 101D0..101FC  ; So #  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+ 10877..10878  ; So #   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+ 10AC8         ; So #       MANICHAEAN SIGN UD
+ 1173F         ; So #       AHOM SYMBOL VI
+ 11FD5..11FDC  ; So #   [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+ 11FE1..11FF1  ; So #  [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+ 16B3C..16B3F  ; So #   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+ 16B45         ; So #       PAHAWH HMONG SIGN CIM TSOV ROG
+ 1BC9C         ; So #       DUPLOYAN SIGN O WITH CROSS
+ 1CC00..1CCEF  ; So # [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z
+ 1CD00..1CEB3  ; So # [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
+ 1CF50..1CFC3  ; So # [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+ 1D000..1D0F5  ; So # [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+ 1D100..1D126  ; So #  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+ 1D129..1D164  ; So #  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+ 1D16A..1D16C  ; So #   [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+ 1D183..1D184  ; So #   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+ 1D18C..1D1A9  ; So #  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+ 1D1AE..1D1EA  ; So #  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+ 1D200..1D241  ; So #  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+ 1D245         ; So #       GREEK MUSICAL LEIMMA
+ 1D300..1D356  ; So #  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+ 1D800..1D9FF  ; So # [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
+ 1DA37..1DA3A  ; So #   [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+ 1DA6D..1DA74  ; So #   [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+ 1DA76..1DA83  ; So #  [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
+ 1DA85..1DA86  ; So #   [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
+ 1E14F         ; So #       NYIAKENG PUACHUE HMONG CIRCLED CA
+ 1ECAC         ; So #       INDIC SIYAQ PLACEHOLDER
+ 1ED2E         ; So #       OTTOMAN SIYAQ MARRATAN
+ 1F000..1F02B  ; So #  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+ 1F030..1F093  ; So # [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+ 1F0A0..1F0AE  ; So #  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+ 1F0B1..1F0BF  ; So #  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+ 1F0C1..1F0CF  ; So #  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+ 1F0D1..1F0F5  ; So #  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+ 1F10D..1F1AD  ; So # [161] CIRCLED ZERO WITH SLASH..MASK WORK SYMBOL
+ 1F1E6..1F202  ; So #  [29] REGIONAL INDICATOR SYMBOL LETTER A..SQUARED KATAKANA SA
+ 1F210..1F23B  ; So #  [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
+ 1F240..1F248  ; So #   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+ 1F250..1F251  ; So #   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+ 1F260..1F265  ; So #   [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+ 1F300..1F3FA  ; So # [251] CYCLONE..AMPHORA
+ 1F400..1F6D7  ; So # [728] RAT..ELEVATOR
+ 1F6DC..1F6EC  ; So #  [17] WIRELESS..AIRPLANE ARRIVING
+ 1F6F0..1F6FC  ; So #  [13] SATELLITE..ROLLER SKATE
+ 1F700..1F776  ; So # [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+ 1F77B..1F7D9  ; So #  [95] HAUMEA..NINE POINTED WHITE STAR
+ 1F7E0..1F7EB  ; So #  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+ 1F7F0         ; So #       HEAVY EQUALS SIGN
+ 1F800..1F80B  ; So #  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+ 1F810..1F847  ; So #  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+ 1F850..1F859  ; So #  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+ 1F860..1F887  ; So #  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+ 1F890..1F8AD  ; So #  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+ 1F8B0..1F8BB  ; So #  [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR
+ 1F8C0..1F8C1  ; So #   [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW
+ 1F900..1FA53  ; So # [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
+ 1FA60..1FA6D  ; So #  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+ 1FA70..1FA7C  ; So #  [13] BALLET SHOES..CRUTCH
+ 1FA80..1FA89  ; So #  [10] YO-YO..HARP
+ 1FA8F..1FAC6  ; So #  [56] SHOVEL..FINGERPRINT
+ 1FACE..1FADC  ; So #  [15] MOOSE..ROOT VEGETABLE
+ 1FADF..1FAE9  ; So #  [11] SPLATTER..FACE WITH BAGS UNDER EYES
+ 1FAF0..1FAF8  ; So #   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+ 1FB00..1FB92  ; So # [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
+ 1FB94..1FBEF  ; So #  [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE
+ 
+ # Total code points: 7376
+ 
+ # ================================================
+ 
+ # General_Category=Initial_Punctuation
+ 
+ 00AB          ; Pi #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 2018          ; Pi #       LEFT SINGLE QUOTATION MARK
+ 201B..201C    ; Pi #   [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+ 201F          ; Pi #       DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+ 2039          ; Pi #       SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 2E02          ; Pi #       LEFT SUBSTITUTION BRACKET
+ 2E04          ; Pi #       LEFT DOTTED SUBSTITUTION BRACKET
+ 2E09          ; Pi #       LEFT TRANSPOSITION BRACKET
+ 2E0C          ; Pi #       LEFT RAISED OMISSION BRACKET
+ 2E1C          ; Pi #       LEFT LOW PARAPHRASE BRACKET
+ 2E20          ; Pi #       LEFT VERTICAL BAR WITH QUILL
+ 
+ # Total code points: 12
+ 
+ # ================================================
+ 
+ # General_Category=Final_Punctuation
+ 
+ 00BB          ; Pf #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 2019          ; Pf #       RIGHT SINGLE QUOTATION MARK
+ 201D          ; Pf #       RIGHT DOUBLE QUOTATION MARK
+ 203A          ; Pf #       SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 2E03          ; Pf #       RIGHT SUBSTITUTION BRACKET
+ 2E05          ; Pf #       RIGHT DOTTED SUBSTITUTION BRACKET
+ 2E0A          ; Pf #       RIGHT TRANSPOSITION BRACKET
+ 2E0D          ; Pf #       RIGHT RAISED OMISSION BRACKET
+ 2E1D          ; Pf #       RIGHT LOW PARAPHRASE BRACKET
+ 2E21          ; Pf #       RIGHT VERTICAL BAR WITH QUILL
+ 
+ # Total code points: 10
+ 
+ # EOF
diff -Nrcpad gcc-14.2.0/contrib/unicode/DerivedNormalizationProps.txt gcc-15.1.0/contrib/unicode/DerivedNormalizationProps.txt
*** gcc-14.2.0/contrib/unicode/DerivedNormalizationProps.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/DerivedNormalizationProps.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
! # DerivedNormalizationProps-15.1.0.txt
! # Date: 2023-05-02, 13:20:58 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # DerivedNormalizationProps-16.0.0.txt
! # Date: 2024-04-30, 21:48:18 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
*************** A7F2  ; FC_NFKC; 0063           # Lm  MO
*** 136,141 ****
--- 136,167 ----
  A7F3  ; FC_NFKC; 0066           # Lm  MODIFIER LETTER CAPITAL F
  A7F4  ; FC_NFKC; 0071           # Lm  MODIFIER LETTER CAPITAL Q
  A7F8  ; FC_NFKC; 0127           # Lm  MODIFIER LETTER CAPITAL H WITH STROKE
+ 1CCD6 ; FC_NFKC; 0061           # So  OUTLINED LATIN CAPITAL LETTER A
+ 1CCD7 ; FC_NFKC; 0062           # So  OUTLINED LATIN CAPITAL LETTER B
+ 1CCD8 ; FC_NFKC; 0063           # So  OUTLINED LATIN CAPITAL LETTER C
+ 1CCD9 ; FC_NFKC; 0064           # So  OUTLINED LATIN CAPITAL LETTER D
+ 1CCDA ; FC_NFKC; 0065           # So  OUTLINED LATIN CAPITAL LETTER E
+ 1CCDB ; FC_NFKC; 0066           # So  OUTLINED LATIN CAPITAL LETTER F
+ 1CCDC ; FC_NFKC; 0067           # So  OUTLINED LATIN CAPITAL LETTER G
+ 1CCDD ; FC_NFKC; 0068           # So  OUTLINED LATIN CAPITAL LETTER H
+ 1CCDE ; FC_NFKC; 0069           # So  OUTLINED LATIN CAPITAL LETTER I
+ 1CCDF ; FC_NFKC; 006A           # So  OUTLINED LATIN CAPITAL LETTER J
+ 1CCE0 ; FC_NFKC; 006B           # So  OUTLINED LATIN CAPITAL LETTER K
+ 1CCE1 ; FC_NFKC; 006C           # So  OUTLINED LATIN CAPITAL LETTER L
+ 1CCE2 ; FC_NFKC; 006D           # So  OUTLINED LATIN CAPITAL LETTER M
+ 1CCE3 ; FC_NFKC; 006E           # So  OUTLINED LATIN CAPITAL LETTER N
+ 1CCE4 ; FC_NFKC; 006F           # So  OUTLINED LATIN CAPITAL LETTER O
+ 1CCE5 ; FC_NFKC; 0070           # So  OUTLINED LATIN CAPITAL LETTER P
+ 1CCE6 ; FC_NFKC; 0071           # So  OUTLINED LATIN CAPITAL LETTER Q
+ 1CCE7 ; FC_NFKC; 0072           # So  OUTLINED LATIN CAPITAL LETTER R
+ 1CCE8 ; FC_NFKC; 0073           # So  OUTLINED LATIN CAPITAL LETTER S
+ 1CCE9 ; FC_NFKC; 0074           # So  OUTLINED LATIN CAPITAL LETTER T
+ 1CCEA ; FC_NFKC; 0075           # So  OUTLINED LATIN CAPITAL LETTER U
+ 1CCEB ; FC_NFKC; 0076           # So  OUTLINED LATIN CAPITAL LETTER V
+ 1CCEC ; FC_NFKC; 0077           # So  OUTLINED LATIN CAPITAL LETTER W
+ 1CCED ; FC_NFKC; 0078           # So  OUTLINED LATIN CAPITAL LETTER X
+ 1CCEE ; FC_NFKC; 0079           # So  OUTLINED LATIN CAPITAL LETTER Y
+ 1CCEF ; FC_NFKC; 007A           # So  OUTLINED LATIN CAPITAL LETTER Z
  1D400 ; FC_NFKC; 0061           # L&  MATHEMATICAL BOLD CAPITAL A
  1D401 ; FC_NFKC; 0062           # L&  MATHEMATICAL BOLD CAPITAL B
  1D402 ; FC_NFKC; 0063           # L&  MATHEMATICAL BOLD CAPITAL C
*************** A7F8  ; FC_NFKC; 0127           # Lm  MO
*** 653,659 ****
  1F16C ; FC_NFKC; 006D 0072      # So  RAISED MR SIGN
  1F190 ; FC_NFKC; 0064 006A      # So  SQUARE DJ
  
! # Total code points: 637
  
  # ================================================
  
--- 679,685 ----
  1F16C ; FC_NFKC; 006D 0072      # So  RAISED MR SIGN
  1F190 ; FC_NFKC; 0064 006A      # So  SQUARE DJ
  
! # Total code points: 663
  
  # ================================================
  
*************** FB3E          ; NFD_QC; N # Lo       HEB
*** 981,1000 ****
  FB40..FB41    ; NFD_QC; N # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
  FB43..FB44    ; NFD_QC; N # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FB4E    ; NFD_QC; N # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
  1109A         ; NFD_QC; N # Lo       KAITHI LETTER DDDHA
  1109C         ; NFD_QC; N # Lo       KAITHI LETTER RHA
  110AB         ; NFD_QC; N # Lo       KAITHI LETTER VA
  1112E..1112F  ; NFD_QC; N # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; NFD_QC; N # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
  114BB..114BC  ; NFD_QC; N # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; NFD_QC; N # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; NFD_QC; N # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; NFD_QC; N # Mc       DIVES AKURU VOWEL SIGN O
  1D15E..1D164  ; NFD_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; NFD_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  2F800..2FA1D  ; NFD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 13233
  
  # ================================================
  
--- 1007,1036 ----
  FB40..FB41    ; NFD_QC; N # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
  FB43..FB44    ; NFD_QC; N # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FB4E    ; NFD_QC; N # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+ 105C9         ; NFD_QC; N # Lo       TODHRI LETTER EI
+ 105E4         ; NFD_QC; N # Lo       TODHRI LETTER U
  1109A         ; NFD_QC; N # Lo       KAITHI LETTER DDDHA
  1109C         ; NFD_QC; N # Lo       KAITHI LETTER RHA
  110AB         ; NFD_QC; N # Lo       KAITHI LETTER VA
  1112E..1112F  ; NFD_QC; N # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; NFD_QC; N # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+ 11383         ; NFD_QC; N # Lo       TULU-TIGALARI LETTER II
+ 11385         ; NFD_QC; N # Lo       TULU-TIGALARI LETTER UU
+ 1138E         ; NFD_QC; N # Lo       TULU-TIGALARI LETTER AI
+ 11391         ; NFD_QC; N # Lo       TULU-TIGALARI LETTER AU
+ 113C5         ; NFD_QC; N # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C8  ; NFD_QC; N # Mc   [2] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI VOWEL SIGN AU
  114BB..114BC  ; NFD_QC; N # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; NFD_QC; N # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; NFD_QC; N # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; NFD_QC; N # Mc       DIVES AKURU VOWEL SIGN O
+ 16121..16128  ; NFD_QC; N # Mn   [8] GURUNG KHEMA VOWEL SIGN U..GURUNG KHEMA VOWEL SIGN AU
+ 16D68..16D6A  ; NFD_QC; N # Lo   [3] KIRAT RAI VOWEL SIGN AI..KIRAT RAI VOWEL SIGN AU
  1D15E..1D164  ; NFD_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; NFD_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  2F800..2FA1D  ; NFD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 13253
  
  # ================================================
  
*************** FB46..FB4E    ; NFC_QC; N # Lo   [9] HEB
*** 1128,1140 ****
  11127         ; NFC_QC; M # Mn       CHAKMA VOWEL SIGN A
  1133E         ; NFC_QC; M # Mc       GRANTHA VOWEL SIGN AA
  11357         ; NFC_QC; M # Mc       GRANTHA AU LENGTH MARK
  114B0         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
  114BA         ; NFC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
  114BD         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; NFC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
  11930         ; NFC_QC; M # Mc       DIVES AKURU VOWEL SIGN AA
  
! # Total code points: 111
  
  # ================================================
  
--- 1164,1183 ----
  11127         ; NFC_QC; M # Mn       CHAKMA VOWEL SIGN A
  1133E         ; NFC_QC; M # Mc       GRANTHA VOWEL SIGN AA
  11357         ; NFC_QC; M # Mc       GRANTHA AU LENGTH MARK
+ 113B8         ; NFC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113BB         ; NFC_QC; M # Mn       TULU-TIGALARI VOWEL SIGN U
+ 113C2         ; NFC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; NFC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; NFC_QC; M # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
  114B0         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
  114BA         ; NFC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
  114BD         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; NFC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
  11930         ; NFC_QC; M # Mc       DIVES AKURU VOWEL SIGN AA
+ 1611E..16129  ; NFC_QC; M # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 16D67..16D68  ; NFC_QC; M # Lo   [2] KIRAT RAI VOWEL SIGN E..KIRAT RAI VOWEL SIGN AI
  
! # Total code points: 132
  
  # ================================================
  
*************** FFE5..FFE6    ; NFKD_QC; N # Sc   [2] FU
*** 1597,1602 ****
--- 1640,1647 ----
  FFE8          ; NFKD_QC; N # So       HALFWIDTH FORMS LIGHT VERTICAL
  FFE9..FFEC    ; NFKD_QC; N # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
  FFED..FFEE    ; NFKD_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+ 105C9         ; NFKD_QC; N # Lo       TODHRI LETTER EI
+ 105E4         ; NFKD_QC; N # Lo       TODHRI LETTER U
  10781..10785  ; NFKD_QC; N # Lm   [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
  10787..107B0  ; NFKD_QC; N # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
  107B2..107BA  ; NFKD_QC; N # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
*************** FFED..FFEE    ; NFKD_QC; N # So   [2] HA
*** 1605,1614 ****
--- 1650,1669 ----
  110AB         ; NFKD_QC; N # Lo       KAITHI LETTER VA
  1112E..1112F  ; NFKD_QC; N # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; NFKD_QC; N # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+ 11383         ; NFKD_QC; N # Lo       TULU-TIGALARI LETTER II
+ 11385         ; NFKD_QC; N # Lo       TULU-TIGALARI LETTER UU
+ 1138E         ; NFKD_QC; N # Lo       TULU-TIGALARI LETTER AI
+ 11391         ; NFKD_QC; N # Lo       TULU-TIGALARI LETTER AU
+ 113C5         ; NFKD_QC; N # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C8  ; NFKD_QC; N # Mc   [2] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI VOWEL SIGN AU
  114BB..114BC  ; NFKD_QC; N # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; NFKD_QC; N # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; NFKD_QC; N # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; NFKD_QC; N # Mc       DIVES AKURU VOWEL SIGN O
+ 16121..16128  ; NFKD_QC; N # Mn   [8] GURUNG KHEMA VOWEL SIGN U..GURUNG KHEMA VOWEL SIGN AU
+ 16D68..16D6A  ; NFKD_QC; N # Lo   [3] KIRAT RAI VOWEL SIGN AI..KIRAT RAI VOWEL SIGN AU
+ 1CCD6..1CCEF  ; NFKD_QC; N # So  [26] OUTLINED LATIN CAPITAL LETTER A..OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0..1CCF9  ; NFKD_QC; N # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
  1D15E..1D164  ; NFKD_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; NFKD_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  1D400..1D454  ; NFKD_QC; N # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
*************** FFED..FFEE    ; NFKD_QC; N # So   [2] HA
*** 1698,1704 ****
  1FBF0..1FBF9  ; NFKD_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  2F800..2FA1D  ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 17029
  
  # ================================================
  
--- 1753,1759 ----
  1FBF0..1FBF9  ; NFKD_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  2F800..2FA1D  ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 17085
  
  # ================================================
  
*************** FFED..FFEE    ; NFKC_QC; N # So   [2] HA
*** 2018,2023 ****
--- 2073,2080 ----
  10781..10785  ; NFKC_QC; N # Lm   [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
  10787..107B0  ; NFKC_QC; N # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
  107B2..107BA  ; NFKC_QC; N # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+ 1CCD6..1CCEF  ; NFKC_QC; N # So  [26] OUTLINED LATIN CAPITAL LETTER A..OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0..1CCF9  ; NFKC_QC; N # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
  1D15E..1D164  ; NFKC_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; NFKC_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  1D400..1D454  ; NFKC_QC; N # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
*************** FFED..FFEE    ; NFKC_QC; N # So   [2] HA
*** 2107,2113 ****
  1FBF0..1FBF9  ; NFKC_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  2F800..2FA1D  ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 4928
  
  # ================================================
  
--- 2164,2170 ----
  1FBF0..1FBF9  ; NFKC_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  2F800..2FA1D  ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  
! # Total code points: 4964
  
  # ================================================
  
*************** FFED..FFEE    ; NFKC_QC; N # So   [2] HA
*** 2151,2163 ****
  11127         ; NFKC_QC; M # Mn       CHAKMA VOWEL SIGN A
  1133E         ; NFKC_QC; M # Mc       GRANTHA VOWEL SIGN AA
  11357         ; NFKC_QC; M # Mc       GRANTHA AU LENGTH MARK
  114B0         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
  114BA         ; NFKC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
  114BD         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; NFKC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
  11930         ; NFKC_QC; M # Mc       DIVES AKURU VOWEL SIGN AA
  
! # Total code points: 111
  
  # ================================================
  
--- 2208,2227 ----
  11127         ; NFKC_QC; M # Mn       CHAKMA VOWEL SIGN A
  1133E         ; NFKC_QC; M # Mc       GRANTHA VOWEL SIGN AA
  11357         ; NFKC_QC; M # Mc       GRANTHA AU LENGTH MARK
+ 113B8         ; NFKC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113BB         ; NFKC_QC; M # Mn       TULU-TIGALARI VOWEL SIGN U
+ 113C2         ; NFKC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; NFKC_QC; M # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; NFKC_QC; M # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
  114B0         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
  114BA         ; NFKC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
  114BD         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; NFKC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
  11930         ; NFKC_QC; M # Mc       DIVES AKURU VOWEL SIGN AA
+ 1611E..16129  ; NFKC_QC; M # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 16D67..16D68  ; NFKC_QC; M # Lo   [2] KIRAT RAI VOWEL SIGN E..KIRAT RAI VOWEL SIGN AI
  
! # Total code points: 132
  
  # ================================================
  
*************** FB3E          ; Expands_On_NFD # Lo
*** 2379,2397 ****
  FB40..FB41    ; Expands_On_NFD # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
  FB43..FB44    ; Expands_On_NFD # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FB4E    ; Expands_On_NFD # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
  1109A         ; Expands_On_NFD # Lo       KAITHI LETTER DDDHA
  1109C         ; Expands_On_NFD # Lo       KAITHI LETTER RHA
  110AB         ; Expands_On_NFD # Lo       KAITHI LETTER VA
  1112E..1112F  ; Expands_On_NFD # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; Expands_On_NFD # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
  114BB..114BC  ; Expands_On_NFD # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; Expands_On_NFD # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; Expands_On_NFD # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; Expands_On_NFD # Mc       DIVES AKURU VOWEL SIGN O
  1D15E..1D164  ; Expands_On_NFD # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; Expands_On_NFD # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  
! # Total code points: 12216
  
  # ================================================
  
--- 2443,2471 ----
  FB40..FB41    ; Expands_On_NFD # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
  FB43..FB44    ; Expands_On_NFD # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FB4E    ; Expands_On_NFD # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+ 105C9         ; Expands_On_NFD # Lo       TODHRI LETTER EI
+ 105E4         ; Expands_On_NFD # Lo       TODHRI LETTER U
  1109A         ; Expands_On_NFD # Lo       KAITHI LETTER DDDHA
  1109C         ; Expands_On_NFD # Lo       KAITHI LETTER RHA
  110AB         ; Expands_On_NFD # Lo       KAITHI LETTER VA
  1112E..1112F  ; Expands_On_NFD # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; Expands_On_NFD # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+ 11383         ; Expands_On_NFD # Lo       TULU-TIGALARI LETTER II
+ 11385         ; Expands_On_NFD # Lo       TULU-TIGALARI LETTER UU
+ 1138E         ; Expands_On_NFD # Lo       TULU-TIGALARI LETTER AI
+ 11391         ; Expands_On_NFD # Lo       TULU-TIGALARI LETTER AU
+ 113C5         ; Expands_On_NFD # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C8  ; Expands_On_NFD # Mc   [2] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI VOWEL SIGN AU
  114BB..114BC  ; Expands_On_NFD # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; Expands_On_NFD # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; Expands_On_NFD # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; Expands_On_NFD # Mc       DIVES AKURU VOWEL SIGN O
+ 16121..16128  ; Expands_On_NFD # Mn   [8] GURUNG KHEMA VOWEL SIGN U..GURUNG KHEMA VOWEL SIGN AU
+ 16D68..16D6A  ; Expands_On_NFD # Lo   [3] KIRAT RAI VOWEL SIGN AI..KIRAT RAI VOWEL SIGN AU
  1D15E..1D164  ; Expands_On_NFD # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; Expands_On_NFD # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  
! # Total code points: 12236
  
  # ================================================
  
*************** FE76..FE7F    ; Expands_On_NFKD # Lo  [1
*** 2733,2747 ****
--- 2807,2831 ----
  FE81..FE8C    ; Expands_On_NFKD # Lo  [12] ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
  FEF5..FEFC    ; Expands_On_NFKD # Lo   [8] ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
  FFE3          ; Expands_On_NFKD # Sk       FULLWIDTH MACRON
+ 105C9         ; Expands_On_NFKD # Lo       TODHRI LETTER EI
+ 105E4         ; Expands_On_NFKD # Lo       TODHRI LETTER U
  1109A         ; Expands_On_NFKD # Lo       KAITHI LETTER DDDHA
  1109C         ; Expands_On_NFKD # Lo       KAITHI LETTER RHA
  110AB         ; Expands_On_NFKD # Lo       KAITHI LETTER VA
  1112E..1112F  ; Expands_On_NFKD # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
  1134B..1134C  ; Expands_On_NFKD # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+ 11383         ; Expands_On_NFKD # Lo       TULU-TIGALARI LETTER II
+ 11385         ; Expands_On_NFKD # Lo       TULU-TIGALARI LETTER UU
+ 1138E         ; Expands_On_NFKD # Lo       TULU-TIGALARI LETTER AI
+ 11391         ; Expands_On_NFKD # Lo       TULU-TIGALARI LETTER AU
+ 113C5         ; Expands_On_NFKD # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C8  ; Expands_On_NFKD # Mc   [2] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI VOWEL SIGN AU
  114BB..114BC  ; Expands_On_NFKD # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  114BE         ; Expands_On_NFKD # Mc       TIRHUTA VOWEL SIGN AU
  115BA..115BB  ; Expands_On_NFKD # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
  11938         ; Expands_On_NFKD # Mc       DIVES AKURU VOWEL SIGN O
+ 16121..16128  ; Expands_On_NFKD # Mn   [8] GURUNG KHEMA VOWEL SIGN U..GURUNG KHEMA VOWEL SIGN AU
+ 16D68..16D6A  ; Expands_On_NFKD # Lo   [3] KIRAT RAI VOWEL SIGN AI..KIRAT RAI VOWEL SIGN AU
  1D15E..1D164  ; Expands_On_NFKD # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D1BB..1D1C0  ; Expands_On_NFKD # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
  1F100..1F10A  ; Expands_On_NFKD # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
*************** FFE3          ; Expands_On_NFKD # Sk
*** 2754,2760 ****
  1F213         ; Expands_On_NFKD # So       SQUARED KATAKANA DE
  1F240..1F248  ; Expands_On_NFKD # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
  
! # Total code points: 13390
  
  # ================================================
  
--- 2838,2844 ----
  1F213         ; Expands_On_NFKD # So       SQUARED KATAKANA DE
  1F240..1F248  ; Expands_On_NFKD # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
  
! # Total code points: 13410
  
  # ================================================
  
*************** FFE3          ; Expands_On_NFKC # Sk
*** 3545,3550 ****
--- 3629,3635 ----
  1C86          ; NFKC_CF; 044A           # L&       CYRILLIC SMALL LETTER TALL HARD SIGN
  1C87          ; NFKC_CF; 0463           # L&       CYRILLIC SMALL LETTER TALL YAT
  1C88          ; NFKC_CF; A64B           # L&       CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C89          ; NFKC_CF; 1C8A           # L&       CYRILLIC CAPITAL LETTER TJE
  1C90          ; NFKC_CF; 10D0           # L&       GEORGIAN MTAVRULI CAPITAL LETTER AN
  1C91          ; NFKC_CF; 10D1           # L&       GEORGIAN MTAVRULI CAPITAL LETTER BAN
  1C92          ; NFKC_CF; 10D2           # L&       GEORGIAN MTAVRULI CAPITAL LETTER GAN
*************** A7C5          ; NFKC_CF; 0282
*** 5361,5369 ****
--- 5446,5458 ----
  A7C6          ; NFKC_CF; 1D8E           # L&       LATIN CAPITAL LETTER Z WITH PALATAL HOOK
  A7C7          ; NFKC_CF; A7C8           # L&       LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; NFKC_CF; A7CA           # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB          ; NFKC_CF; 0264           # L&       LATIN CAPITAL LETTER RAMS HORN
+ A7CC          ; NFKC_CF; A7CD           # L&       LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; NFKC_CF; A7D1           # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; NFKC_CF; A7D7           # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; NFKC_CF; A7D9           # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; NFKC_CF; A7DB           # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; NFKC_CF; 019B           # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2          ; NFKC_CF; 0063           # Lm       MODIFIER LETTER CAPITAL C
  A7F3          ; NFKC_CF; 0066           # Lm       MODIFIER LETTER CAPITAL F
  A7F4          ; NFKC_CF; 0071           # Lm       MODIFIER LETTER CAPITAL Q
*************** FFF0..FFF8    ; NFKC_CF;
*** 7009,7014 ****
--- 7098,7125 ----
  10CB0         ; NFKC_CF; 10CF0          # L&       OLD HUNGARIAN CAPITAL LETTER EZS
  10CB1         ; NFKC_CF; 10CF1          # L&       OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
  10CB2         ; NFKC_CF; 10CF2          # L&       OLD HUNGARIAN CAPITAL LETTER US
+ 10D50         ; NFKC_CF; 10D70          # L&       GARAY CAPITAL LETTER A
+ 10D51         ; NFKC_CF; 10D71          # L&       GARAY CAPITAL LETTER CA
+ 10D52         ; NFKC_CF; 10D72          # L&       GARAY CAPITAL LETTER MA
+ 10D53         ; NFKC_CF; 10D73          # L&       GARAY CAPITAL LETTER KA
+ 10D54         ; NFKC_CF; 10D74          # L&       GARAY CAPITAL LETTER BA
+ 10D55         ; NFKC_CF; 10D75          # L&       GARAY CAPITAL LETTER JA
+ 10D56         ; NFKC_CF; 10D76          # L&       GARAY CAPITAL LETTER SA
+ 10D57         ; NFKC_CF; 10D77          # L&       GARAY CAPITAL LETTER WA
+ 10D58         ; NFKC_CF; 10D78          # L&       GARAY CAPITAL LETTER LA
+ 10D59         ; NFKC_CF; 10D79          # L&       GARAY CAPITAL LETTER GA
+ 10D5A         ; NFKC_CF; 10D7A          # L&       GARAY CAPITAL LETTER DA
+ 10D5B         ; NFKC_CF; 10D7B          # L&       GARAY CAPITAL LETTER XA
+ 10D5C         ; NFKC_CF; 10D7C          # L&       GARAY CAPITAL LETTER YA
+ 10D5D         ; NFKC_CF; 10D7D          # L&       GARAY CAPITAL LETTER TA
+ 10D5E         ; NFKC_CF; 10D7E          # L&       GARAY CAPITAL LETTER RA
+ 10D5F         ; NFKC_CF; 10D7F          # L&       GARAY CAPITAL LETTER NYA
+ 10D60         ; NFKC_CF; 10D80          # L&       GARAY CAPITAL LETTER FA
+ 10D61         ; NFKC_CF; 10D81          # L&       GARAY CAPITAL LETTER NA
+ 10D62         ; NFKC_CF; 10D82          # L&       GARAY CAPITAL LETTER PA
+ 10D63         ; NFKC_CF; 10D83          # L&       GARAY CAPITAL LETTER HA
+ 10D64         ; NFKC_CF; 10D84          # L&       GARAY CAPITAL LETTER OLD KA
+ 10D65         ; NFKC_CF; 10D85          # L&       GARAY CAPITAL LETTER OLD NA
  118A0         ; NFKC_CF; 118C0          # L&       WARANG CITI CAPITAL LETTER NGAA
  118A1         ; NFKC_CF; 118C1          # L&       WARANG CITI CAPITAL LETTER A
  118A2         ; NFKC_CF; 118C2          # L&       WARANG CITI CAPITAL LETTER WI
*************** FFF0..FFF8    ; NFKC_CF;
*** 7074,7079 ****
--- 7185,7226 ----
  16E5E         ; NFKC_CF; 16E7E          # L&       MEDEFAIDRIN CAPITAL LETTER AI
  16E5F         ; NFKC_CF; 16E7F          # L&       MEDEFAIDRIN CAPITAL LETTER Y
  1BCA0..1BCA3  ; NFKC_CF;                # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1CCD6         ; NFKC_CF; 0061           # So       OUTLINED LATIN CAPITAL LETTER A
+ 1CCD7         ; NFKC_CF; 0062           # So       OUTLINED LATIN CAPITAL LETTER B
+ 1CCD8         ; NFKC_CF; 0063           # So       OUTLINED LATIN CAPITAL LETTER C
+ 1CCD9         ; NFKC_CF; 0064           # So       OUTLINED LATIN CAPITAL LETTER D
+ 1CCDA         ; NFKC_CF; 0065           # So       OUTLINED LATIN CAPITAL LETTER E
+ 1CCDB         ; NFKC_CF; 0066           # So       OUTLINED LATIN CAPITAL LETTER F
+ 1CCDC         ; NFKC_CF; 0067           # So       OUTLINED LATIN CAPITAL LETTER G
+ 1CCDD         ; NFKC_CF; 0068           # So       OUTLINED LATIN CAPITAL LETTER H
+ 1CCDE         ; NFKC_CF; 0069           # So       OUTLINED LATIN CAPITAL LETTER I
+ 1CCDF         ; NFKC_CF; 006A           # So       OUTLINED LATIN CAPITAL LETTER J
+ 1CCE0         ; NFKC_CF; 006B           # So       OUTLINED LATIN CAPITAL LETTER K
+ 1CCE1         ; NFKC_CF; 006C           # So       OUTLINED LATIN CAPITAL LETTER L
+ 1CCE2         ; NFKC_CF; 006D           # So       OUTLINED LATIN CAPITAL LETTER M
+ 1CCE3         ; NFKC_CF; 006E           # So       OUTLINED LATIN CAPITAL LETTER N
+ 1CCE4         ; NFKC_CF; 006F           # So       OUTLINED LATIN CAPITAL LETTER O
+ 1CCE5         ; NFKC_CF; 0070           # So       OUTLINED LATIN CAPITAL LETTER P
+ 1CCE6         ; NFKC_CF; 0071           # So       OUTLINED LATIN CAPITAL LETTER Q
+ 1CCE7         ; NFKC_CF; 0072           # So       OUTLINED LATIN CAPITAL LETTER R
+ 1CCE8         ; NFKC_CF; 0073           # So       OUTLINED LATIN CAPITAL LETTER S
+ 1CCE9         ; NFKC_CF; 0074           # So       OUTLINED LATIN CAPITAL LETTER T
+ 1CCEA         ; NFKC_CF; 0075           # So       OUTLINED LATIN CAPITAL LETTER U
+ 1CCEB         ; NFKC_CF; 0076           # So       OUTLINED LATIN CAPITAL LETTER V
+ 1CCEC         ; NFKC_CF; 0077           # So       OUTLINED LATIN CAPITAL LETTER W
+ 1CCED         ; NFKC_CF; 0078           # So       OUTLINED LATIN CAPITAL LETTER X
+ 1CCEE         ; NFKC_CF; 0079           # So       OUTLINED LATIN CAPITAL LETTER Y
+ 1CCEF         ; NFKC_CF; 007A           # So       OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0         ; NFKC_CF; 0030           # Nd       OUTLINED DIGIT ZERO
+ 1CCF1         ; NFKC_CF; 0031           # Nd       OUTLINED DIGIT ONE
+ 1CCF2         ; NFKC_CF; 0032           # Nd       OUTLINED DIGIT TWO
+ 1CCF3         ; NFKC_CF; 0033           # Nd       OUTLINED DIGIT THREE
+ 1CCF4         ; NFKC_CF; 0034           # Nd       OUTLINED DIGIT FOUR
+ 1CCF5         ; NFKC_CF; 0035           # Nd       OUTLINED DIGIT FIVE
+ 1CCF6         ; NFKC_CF; 0036           # Nd       OUTLINED DIGIT SIX
+ 1CCF7         ; NFKC_CF; 0037           # Nd       OUTLINED DIGIT SEVEN
+ 1CCF8         ; NFKC_CF; 0038           # Nd       OUTLINED DIGIT EIGHT
+ 1CCF9         ; NFKC_CF; 0039           # Nd       OUTLINED DIGIT NINE
  1D15E         ; NFKC_CF; 1D157 1D165    # So       MUSICAL SYMBOL HALF NOTE
  1D15F         ; NFKC_CF; 1D158 1D165    # So       MUSICAL SYMBOL QUARTER NOTE
  1D160         ; NFKC_CF; 1D158 1D165 1D16E #So     MUSICAL SYMBOL EIGHTH NOTE
*************** E0080..E00FF  ; NFKC_CF;
*** 9001,9007 ****
  E0100..E01EF  ; NFKC_CF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10491
  
  # ================================================
  
--- 9148,9154 ----
  E0100..E01EF  ; NFKC_CF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10554
  
  # ================================================
  
*************** E01F0..E0FFF  ; NFKC_CF;
*** 9652,9657 ****
--- 9799,9805 ----
  1C86          ; NFKC_SCF; 044A           # L&       CYRILLIC SMALL LETTER TALL HARD SIGN
  1C87          ; NFKC_SCF; 0463           # L&       CYRILLIC SMALL LETTER TALL YAT
  1C88          ; NFKC_SCF; A64B           # L&       CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C89          ; NFKC_SCF; 1C8A           # L&       CYRILLIC CAPITAL LETTER TJE
  1C90          ; NFKC_SCF; 10D0           # L&       GEORGIAN MTAVRULI CAPITAL LETTER AN
  1C91          ; NFKC_SCF; 10D1           # L&       GEORGIAN MTAVRULI CAPITAL LETTER BAN
  1C92          ; NFKC_SCF; 10D2           # L&       GEORGIAN MTAVRULI CAPITAL LETTER GAN
*************** A7C5          ; NFKC_SCF; 0282
*** 11432,11440 ****
--- 11580,11592 ----
  A7C6          ; NFKC_SCF; 1D8E           # L&       LATIN CAPITAL LETTER Z WITH PALATAL HOOK
  A7C7          ; NFKC_SCF; A7C8           # L&       LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; NFKC_SCF; A7CA           # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB          ; NFKC_SCF; 0264           # L&       LATIN CAPITAL LETTER RAMS HORN
+ A7CC          ; NFKC_SCF; A7CD           # L&       LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; NFKC_SCF; A7D1           # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; NFKC_SCF; A7D7           # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; NFKC_SCF; A7D9           # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; NFKC_SCF; A7DB           # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; NFKC_SCF; 019B           # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2          ; NFKC_SCF; 0063           # Lm       MODIFIER LETTER CAPITAL C
  A7F3          ; NFKC_SCF; 0066           # Lm       MODIFIER LETTER CAPITAL F
  A7F4          ; NFKC_SCF; 0071           # Lm       MODIFIER LETTER CAPITAL Q
*************** FFF0..FFF8    ; NFKC_SCF;
*** 13080,13085 ****
--- 13232,13259 ----
  10CB0         ; NFKC_SCF; 10CF0          # L&       OLD HUNGARIAN CAPITAL LETTER EZS
  10CB1         ; NFKC_SCF; 10CF1          # L&       OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
  10CB2         ; NFKC_SCF; 10CF2          # L&       OLD HUNGARIAN CAPITAL LETTER US
+ 10D50         ; NFKC_SCF; 10D70          # L&       GARAY CAPITAL LETTER A
+ 10D51         ; NFKC_SCF; 10D71          # L&       GARAY CAPITAL LETTER CA
+ 10D52         ; NFKC_SCF; 10D72          # L&       GARAY CAPITAL LETTER MA
+ 10D53         ; NFKC_SCF; 10D73          # L&       GARAY CAPITAL LETTER KA
+ 10D54         ; NFKC_SCF; 10D74          # L&       GARAY CAPITAL LETTER BA
+ 10D55         ; NFKC_SCF; 10D75          # L&       GARAY CAPITAL LETTER JA
+ 10D56         ; NFKC_SCF; 10D76          # L&       GARAY CAPITAL LETTER SA
+ 10D57         ; NFKC_SCF; 10D77          # L&       GARAY CAPITAL LETTER WA
+ 10D58         ; NFKC_SCF; 10D78          # L&       GARAY CAPITAL LETTER LA
+ 10D59         ; NFKC_SCF; 10D79          # L&       GARAY CAPITAL LETTER GA
+ 10D5A         ; NFKC_SCF; 10D7A          # L&       GARAY CAPITAL LETTER DA
+ 10D5B         ; NFKC_SCF; 10D7B          # L&       GARAY CAPITAL LETTER XA
+ 10D5C         ; NFKC_SCF; 10D7C          # L&       GARAY CAPITAL LETTER YA
+ 10D5D         ; NFKC_SCF; 10D7D          # L&       GARAY CAPITAL LETTER TA
+ 10D5E         ; NFKC_SCF; 10D7E          # L&       GARAY CAPITAL LETTER RA
+ 10D5F         ; NFKC_SCF; 10D7F          # L&       GARAY CAPITAL LETTER NYA
+ 10D60         ; NFKC_SCF; 10D80          # L&       GARAY CAPITAL LETTER FA
+ 10D61         ; NFKC_SCF; 10D81          # L&       GARAY CAPITAL LETTER NA
+ 10D62         ; NFKC_SCF; 10D82          # L&       GARAY CAPITAL LETTER PA
+ 10D63         ; NFKC_SCF; 10D83          # L&       GARAY CAPITAL LETTER HA
+ 10D64         ; NFKC_SCF; 10D84          # L&       GARAY CAPITAL LETTER OLD KA
+ 10D65         ; NFKC_SCF; 10D85          # L&       GARAY CAPITAL LETTER OLD NA
  118A0         ; NFKC_SCF; 118C0          # L&       WARANG CITI CAPITAL LETTER NGAA
  118A1         ; NFKC_SCF; 118C1          # L&       WARANG CITI CAPITAL LETTER A
  118A2         ; NFKC_SCF; 118C2          # L&       WARANG CITI CAPITAL LETTER WI
*************** FFF0..FFF8    ; NFKC_SCF;
*** 13145,13150 ****
--- 13319,13360 ----
  16E5E         ; NFKC_SCF; 16E7E          # L&       MEDEFAIDRIN CAPITAL LETTER AI
  16E5F         ; NFKC_SCF; 16E7F          # L&       MEDEFAIDRIN CAPITAL LETTER Y
  1BCA0..1BCA3  ; NFKC_SCF;                # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1CCD6         ; NFKC_SCF; 0061           # So       OUTLINED LATIN CAPITAL LETTER A
+ 1CCD7         ; NFKC_SCF; 0062           # So       OUTLINED LATIN CAPITAL LETTER B
+ 1CCD8         ; NFKC_SCF; 0063           # So       OUTLINED LATIN CAPITAL LETTER C
+ 1CCD9         ; NFKC_SCF; 0064           # So       OUTLINED LATIN CAPITAL LETTER D
+ 1CCDA         ; NFKC_SCF; 0065           # So       OUTLINED LATIN CAPITAL LETTER E
+ 1CCDB         ; NFKC_SCF; 0066           # So       OUTLINED LATIN CAPITAL LETTER F
+ 1CCDC         ; NFKC_SCF; 0067           # So       OUTLINED LATIN CAPITAL LETTER G
+ 1CCDD         ; NFKC_SCF; 0068           # So       OUTLINED LATIN CAPITAL LETTER H
+ 1CCDE         ; NFKC_SCF; 0069           # So       OUTLINED LATIN CAPITAL LETTER I
+ 1CCDF         ; NFKC_SCF; 006A           # So       OUTLINED LATIN CAPITAL LETTER J
+ 1CCE0         ; NFKC_SCF; 006B           # So       OUTLINED LATIN CAPITAL LETTER K
+ 1CCE1         ; NFKC_SCF; 006C           # So       OUTLINED LATIN CAPITAL LETTER L
+ 1CCE2         ; NFKC_SCF; 006D           # So       OUTLINED LATIN CAPITAL LETTER M
+ 1CCE3         ; NFKC_SCF; 006E           # So       OUTLINED LATIN CAPITAL LETTER N
+ 1CCE4         ; NFKC_SCF; 006F           # So       OUTLINED LATIN CAPITAL LETTER O
+ 1CCE5         ; NFKC_SCF; 0070           # So       OUTLINED LATIN CAPITAL LETTER P
+ 1CCE6         ; NFKC_SCF; 0071           # So       OUTLINED LATIN CAPITAL LETTER Q
+ 1CCE7         ; NFKC_SCF; 0072           # So       OUTLINED LATIN CAPITAL LETTER R
+ 1CCE8         ; NFKC_SCF; 0073           # So       OUTLINED LATIN CAPITAL LETTER S
+ 1CCE9         ; NFKC_SCF; 0074           # So       OUTLINED LATIN CAPITAL LETTER T
+ 1CCEA         ; NFKC_SCF; 0075           # So       OUTLINED LATIN CAPITAL LETTER U
+ 1CCEB         ; NFKC_SCF; 0076           # So       OUTLINED LATIN CAPITAL LETTER V
+ 1CCEC         ; NFKC_SCF; 0077           # So       OUTLINED LATIN CAPITAL LETTER W
+ 1CCED         ; NFKC_SCF; 0078           # So       OUTLINED LATIN CAPITAL LETTER X
+ 1CCEE         ; NFKC_SCF; 0079           # So       OUTLINED LATIN CAPITAL LETTER Y
+ 1CCEF         ; NFKC_SCF; 007A           # So       OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0         ; NFKC_SCF; 0030           # Nd       OUTLINED DIGIT ZERO
+ 1CCF1         ; NFKC_SCF; 0031           # Nd       OUTLINED DIGIT ONE
+ 1CCF2         ; NFKC_SCF; 0032           # Nd       OUTLINED DIGIT TWO
+ 1CCF3         ; NFKC_SCF; 0033           # Nd       OUTLINED DIGIT THREE
+ 1CCF4         ; NFKC_SCF; 0034           # Nd       OUTLINED DIGIT FOUR
+ 1CCF5         ; NFKC_SCF; 0035           # Nd       OUTLINED DIGIT FIVE
+ 1CCF6         ; NFKC_SCF; 0036           # Nd       OUTLINED DIGIT SIX
+ 1CCF7         ; NFKC_SCF; 0037           # Nd       OUTLINED DIGIT SEVEN
+ 1CCF8         ; NFKC_SCF; 0038           # Nd       OUTLINED DIGIT EIGHT
+ 1CCF9         ; NFKC_SCF; 0039           # Nd       OUTLINED DIGIT NINE
  1D15E         ; NFKC_SCF; 1D157 1D165    # So       MUSICAL SYMBOL HALF NOTE
  1D15F         ; NFKC_SCF; 1D158 1D165    # So       MUSICAL SYMBOL QUARTER NOTE
  1D160         ; NFKC_SCF; 1D158 1D165 1D16E #So     MUSICAL SYMBOL EIGHTH NOTE
*************** E0080..E00FF  ; NFKC_SCF;
*** 15072,15078 ****
  E0100..E01EF  ; NFKC_SCF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; NFKC_SCF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10453
  
  # ================================================
  
--- 15282,15288 ----
  E0100..E01EF  ; NFKC_SCF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; NFKC_SCF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10516
  
  # ================================================
  
*************** E01F0..E0FFF  ; NFKC_SCF;
*** 15411,15417 ****
  180B..180D    ; Changes_When_NFKC_Casefolded # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
  180E          ; Changes_When_NFKC_Casefolded # Cf       MONGOLIAN VOWEL SEPARATOR
  180F          ; Changes_When_NFKC_Casefolded # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
! 1C80..1C88    ; Changes_When_NFKC_Casefolded # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA    ; Changes_When_NFKC_Casefolded # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_NFKC_Casefolded # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D2C..1D2E    ; Changes_When_NFKC_Casefolded # Lm   [3] MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
--- 15621,15627 ----
  180B..180D    ; Changes_When_NFKC_Casefolded # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
  180E          ; Changes_When_NFKC_Casefolded # Cf       MONGOLIAN VOWEL SEPARATOR
  180F          ; Changes_When_NFKC_Casefolded # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
! 1C80..1C89    ; Changes_When_NFKC_Casefolded # L&  [10] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC CAPITAL LETTER TJE
  1C90..1CBA    ; Changes_When_NFKC_Casefolded # L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF    ; Changes_When_NFKC_Casefolded # L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1D2C..1D2E    ; Changes_When_NFKC_Casefolded # Lm   [3] MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
*************** A7C0          ; Changes_When_NFKC_Casefo
*** 15841,15849 ****
--- 16051,16062 ----
  A7C2          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER ANGLICANA W
  A7C4..A7C7    ; Changes_When_NFKC_Casefolded # L&   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
  A7C9          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7CB..A7CC    ; Changes_When_NFKC_Casefolded # L&   [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
  A7D0          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
  A7D6          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7DA          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER LAMBDA
+ A7DC          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4    ; Changes_When_NFKC_Casefolded # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER REVERSED HALF H
  A7F8..A7F9    ; Changes_When_NFKC_Casefolded # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFF0..FFF8    ; Changes_When_NFKC_Casefo
*** 15983,15991 ****
--- 16196,16207 ----
  10787..107B0  ; Changes_When_NFKC_Casefolded # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
  107B2..107BA  ; Changes_When_NFKC_Casefolded # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
  10C80..10CB2  ; Changes_When_NFKC_Casefolded # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+ 10D50..10D65  ; Changes_When_NFKC_Casefolded # L&  [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
  118A0..118BF  ; Changes_When_NFKC_Casefolded # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
  16E40..16E5F  ; Changes_When_NFKC_Casefolded # L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
  1BCA0..1BCA3  ; Changes_When_NFKC_Casefolded # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1CCD6..1CCEF  ; Changes_When_NFKC_Casefolded # So  [26] OUTLINED LATIN CAPITAL LETTER A..OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0..1CCF9  ; Changes_When_NFKC_Casefolded # Nd  [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
  1D15E..1D164  ; Changes_When_NFKC_Casefolded # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
  1D173..1D17A  ; Changes_When_NFKC_Casefolded # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
  1D1BB..1D1C0  ; Changes_When_NFKC_Casefolded # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
*************** E0080..E00FF  ; Changes_When_NFKC_Casefo
*** 16084,16089 ****
  E0100..E01EF  ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10491
  
  # EOF
--- 16300,16305 ----
  E0100..E01EF  ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  E01F0..E0FFF  ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  
! # Total code points: 10554
  
  # EOF
diff -Nrcpad gcc-14.2.0/contrib/unicode/EastAsianWidth.txt gcc-15.1.0/contrib/unicode/EastAsianWidth.txt
*** gcc-14.2.0/contrib/unicode/EastAsianWidth.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/EastAsianWidth.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
! # EastAsianWidth-15.1.0.txt
! # Date: 2023-07-28, 23:34:08 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # EastAsianWidth-16.0.0.txt
! # Date: 2024-04-30, 21:48:20 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
***************
*** 334,340 ****
  0888           ; N  # Sk         ARABIC RAISED ROUND DOT
  0889..088E     ; N  # Lo     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
  0890..0891     ; N  # Cf     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0898..089F     ; N  # Mn     [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08A0..08C8     ; N  # Lo    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9           ; N  # Lm         ARABIC SMALL FARSI YEH
  08CA..08E1     ; N  # Mn    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
--- 334,340 ----
  0888           ; N  # Sk         ARABIC RAISED ROUND DOT
  0889..088E     ; N  # Lo     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
  0890..0891     ; N  # Cf     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0897..089F     ; N  # Mn     [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08A0..08C8     ; N  # Lo    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9           ; N  # Lm         ARABIC SMALL FARSI YEH
  08CA..08E1     ; N  # Mn    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
***************
*** 819,830 ****
  1B42           ; N  # Mn         BALINESE VOWEL SIGN PEPET
  1B43..1B44     ; N  # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B45..1B4C     ; N  # Lo     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
  1B50..1B59     ; N  # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
  1B5A..1B60     ; N  # Po     [7] BALINESE PANTI..BALINESE PAMENENG
  1B61..1B6A     ; N  # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
  1B6B..1B73     ; N  # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  1B74..1B7C     ; N  # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7E     ; N  # Po     [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
  1B80..1B81     ; N  # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
  1B82           ; N  # Mc         SUNDANESE SIGN PANGWISAD
  1B83..1BA0     ; N  # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
--- 819,831 ----
  1B42           ; N  # Mn         BALINESE VOWEL SIGN PEPET
  1B43..1B44     ; N  # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B45..1B4C     ; N  # Lo     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+ 1B4E..1B4F     ; N  # Po     [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
  1B50..1B59     ; N  # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
  1B5A..1B60     ; N  # Po     [7] BALINESE PANTI..BALINESE PAMENENG
  1B61..1B6A     ; N  # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
  1B6B..1B73     ; N  # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  1B74..1B7C     ; N  # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7F     ; N  # Po     [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
  1B80..1B81     ; N  # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
  1B82           ; N  # Mc         SUNDANESE SIGN PANGWISAD
  1B83..1BA0     ; N  # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
***************
*** 859,865 ****
  1C5A..1C77     ; N  # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D     ; N  # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
  1C7E..1C7F     ; N  # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C88     ; N  # Ll     [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
  1C90..1CBA     ; N  # Lu    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF     ; N  # Lu     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CC0..1CC7     ; N  # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
--- 860,866 ----
  1C5A..1C77     ; N  # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
  1C78..1C7D     ; N  # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
  1C7E..1C7F     ; N  # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C8A     ; N  # L&    [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
  1C90..1CBA     ; N  # Lu    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
  1CBD..1CBF     ; N  # Lu     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
  1CC0..1CC7     ; N  # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
***************
*** 1142,1148 ****
  23F1..23F2     ; N  # So     [2] STOPWATCH..TIMER CLOCK
  23F3           ; W  # So         HOURGLASS WITH FLOWING SAND
  23F4..23FF     ; N  # So    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
! 2400..2426     ; N  # So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
  2440..244A     ; N  # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
  2460..249B     ; A  # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
  249C..24E9     ; A  # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
--- 1143,1149 ----
  23F1..23F2     ; N  # So     [2] STOPWATCH..TIMER CLOCK
  23F3           ; W  # So         HOURGLASS WITH FLOWING SAND
  23F4..23FF     ; N  # So    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
! 2400..2429     ; N  # So    [42] SYMBOL FOR NULL..SYMBOL FOR DELETE MEDIUM SHADE FORM
  2440..244A     ; N  # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
  2460..249B     ; A  # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
  249C..24E9     ; A  # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
***************
*** 1195,1201 ****
  261C           ; A  # So         WHITE LEFT POINTING INDEX
  261D           ; N  # So         WHITE UP POINTING INDEX
  261E           ; A  # So         WHITE RIGHT POINTING INDEX
! 261F..263F     ; N  # So    [33] WHITE DOWN POINTING INDEX..MERCURY
  2640           ; A  # So         FEMALE SIGN
  2641           ; N  # So         EARTH
  2642           ; A  # So         MALE SIGN
--- 1196,1204 ----
  261C           ; A  # So         WHITE LEFT POINTING INDEX
  261D           ; N  # So         WHITE UP POINTING INDEX
  261E           ; A  # So         WHITE RIGHT POINTING INDEX
! 261F..262F     ; N  # So    [17] WHITE DOWN POINTING INDEX..YIN YANG
! 2630..2637     ; W  # So     [8] TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
! 2638..263F     ; N  # So     [8] WHEEL OF DHARMA..MERCURY
  2640           ; A  # So         FEMALE SIGN
  2641           ; N  # So         EARTH
  2642           ; A  # So         MALE SIGN
***************
*** 1213,1219 ****
  266F           ; A  # Sm         MUSIC SHARP SIGN
  2670..267E     ; N  # So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
  267F           ; W  # So         WHEELCHAIR SYMBOL
! 2680..2692     ; N  # So    [19] DIE FACE-1..HAMMER AND PICK
  2693           ; W  # So         ANCHOR
  2694..269D     ; N  # So    [10] CROSSED SWORDS..OUTLINED WHITE STAR
  269E..269F     ; A  # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
--- 1216,1224 ----
  266F           ; A  # Sm         MUSIC SHARP SIGN
  2670..267E     ; N  # So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
  267F           ; W  # So         WHEELCHAIR SYMBOL
! 2680..2689     ; N  # So    [10] DIE FACE-1..BLACK CIRCLE WITH TWO WHITE DOTS
! 268A..268F     ; W  # So     [6] MONOGRAM FOR YANG..DIGRAM FOR GREATER YIN
! 2690..2692     ; N  # So     [3] WHITE FLAG..HAMMER AND PICK
  2693           ; W  # So         ANCHOR
  2694..269D     ; N  # So    [10] CROSSED SWORDS..OUTLINED WHITE STAR
  269E..269F     ; A  # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
***************
*** 1487,1493 ****
  3192..3195     ; W  # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
  3196..319F     ; W  # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
  31A0..31BF     ; W  # Lo    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E3     ; W  # So    [36] CJK STROKE T..CJK STROKE Q
  31EF           ; W  # So         IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  31F0..31FF     ; W  # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
  3200..321E     ; W  # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
--- 1492,1498 ----
  3192..3195     ; W  # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
  3196..319F     ; W  # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
  31A0..31BF     ; W  # Lo    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E5     ; W  # So    [38] CJK STROKE T..CJK STROKE SZP
  31EF           ; W  # So         IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  31F0..31FF     ; W  # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
  3200..321E     ; W  # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
***************
*** 1503,1509 ****
  32C0..32FF     ; W  # So    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
  3300..33FF     ; W  # So   [256] SQUARE APAATO..SQUARE GAL
  3400..4DBF     ; W  # Lo  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
! 4DC0..4DFF     ; N  # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
  4E00..9FFF     ; W  # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
  A000..A014     ; W  # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
  A015           ; W  # Lm         YI SYLLABLE WU
--- 1508,1514 ----
  32C0..32FF     ; W  # So    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
  3300..33FF     ; W  # So   [256] SQUARE APAATO..SQUARE GAL
  3400..4DBF     ; W  # Lo  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
! 4DC0..4DFF     ; W  # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
  4E00..9FFF     ; W  # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
  A000..A014     ; W  # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
  A015           ; W  # Lm         YI SYLLABLE WU
*************** A788           ; N  # Lm         MODIFIE
*** 1543,1552 ****
  A789..A78A     ; N  # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
  A78B..A78E     ; N  # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F           ; N  # Lo         LATIN LETTER SINOLOGICAL DOT
! A790..A7CA     ; N  # L&    [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
  A7D0..A7D1     ; N  # L&     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3           ; N  # Ll         LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9     ; N  # L&     [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
  A7F2..A7F4     ; N  # Lm     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6     ; N  # L&     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7           ; N  # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
--- 1548,1557 ----
  A789..A78A     ; N  # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
  A78B..A78E     ; N  # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  A78F           ; N  # Lo         LATIN LETTER SINOLOGICAL DOT
! A790..A7CD     ; N  # L&    [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
  A7D0..A7D1     ; N  # L&     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
  A7D3           ; N  # Ll         LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7DC     ; N  # L&     [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
  A7F2..A7F4     ; N  # Lm     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F5..A7F6     ; N  # L&     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
  A7F7           ; N  # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
*************** FFFD           ; A  # So         REPLACE
*** 1870,1875 ****
--- 1875,1881 ----
  105A3..105B1   ; N  # Ll    [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
  105B3..105B9   ; N  # Ll     [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
  105BB..105BC   ; N  # Ll     [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+ 105C0..105F3   ; N  # Lo    [52] TODHRI LETTER A..TODHRI LETTER OO
  10600..10736   ; N  # Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
  10740..10755   ; N  # Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
  10760..10767   ; N  # Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807
*************** FFFD           ; A  # So         REPLACE
*** 1942,1953 ****
  10D00..10D23   ; N  # Lo    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27   ; N  # Mn     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39   ; N  # Nd    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
  10E60..10E7E   ; N  # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
  10E80..10EA9   ; N  # Lo    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC   ; N  # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EAD          ; N  # Pd         YEZIDI HYPHENATION MARK
  10EB0..10EB1   ; N  # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EFD..10EFF   ; N  # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C   ; N  # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F1D..10F26   ; N  # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
  10F27          ; N  # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
--- 1948,1970 ----
  10D00..10D23   ; N  # Lo    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27   ; N  # Mn     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10D30..10D39   ; N  # Nd    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+ 10D40..10D49   ; N  # Nd    [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
+ 10D4A..10D4D   ; N  # Lo     [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
+ 10D4E          ; N  # Lm         GARAY VOWEL LENGTH MARK
+ 10D4F          ; N  # Lo         GARAY SUKUN
+ 10D50..10D65   ; N  # Lu    [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
+ 10D69..10D6D   ; N  # Mn     [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
+ 10D6E          ; N  # Pd         GARAY HYPHEN
+ 10D6F          ; N  # Lm         GARAY REDUPLICATION MARK
+ 10D70..10D85   ; N  # Ll    [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
+ 10D8E..10D8F   ; N  # Sm     [2] GARAY PLUS SIGN..GARAY MINUS SIGN
  10E60..10E7E   ; N  # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
  10E80..10EA9   ; N  # Lo    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
  10EAB..10EAC   ; N  # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
  10EAD          ; N  # Pd         YEZIDI HYPHENATION MARK
  10EB0..10EB1   ; N  # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EC2..10EC4   ; N  # Lo     [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
! 10EFC..10EFF   ; N  # Mn     [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F00..10F1C   ; N  # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
  10F1D..10F26   ; N  # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
  10F27          ; N  # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
*************** FFFD           ; A  # So         REPLACE
*** 2064,2069 ****
--- 2081,2106 ----
  11362..11363   ; N  # Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  11366..1136C   ; N  # Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374   ; N  # Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 11380..11389   ; N  # Lo    [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B          ; N  # Lo         TULU-TIGALARI LETTER EE
+ 1138E          ; N  # Lo         TULU-TIGALARI LETTER AI
+ 11390..113B5   ; N  # Lo    [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 113B7          ; N  # Lo         TULU-TIGALARI SIGN AVAGRAHA
+ 113B8..113BA   ; N  # Mc     [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113BB..113C0   ; N  # Mn     [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2          ; N  # Mc         TULU-TIGALARI VOWEL SIGN EE
+ 113C5          ; N  # Mc         TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA   ; N  # Mc     [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD   ; N  # Mc     [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
+ 113CE          ; N  # Mn         TULU-TIGALARI SIGN VIRAMA
+ 113CF          ; N  # Mc         TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0          ; N  # Mn         TULU-TIGALARI CONJOINER
+ 113D1          ; N  # Lo         TULU-TIGALARI REPHA
+ 113D2          ; N  # Mn         TULU-TIGALARI GEMINATION MARK
+ 113D3          ; N  # Lo         TULU-TIGALARI SIGN PLUTA
+ 113D4..113D5   ; N  # Po     [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
+ 113D7..113D8   ; N  # Po     [2] TULU-TIGALARI SIGN OM PUSHPIKA..TULU-TIGALARI SIGN SHRII PUSHPIKA
+ 113E1..113E2   ; N  # Mn     [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11400..11434   ; N  # Lo    [53] NEWA LETTER A..NEWA LETTER HA
  11435..11437   ; N  # Mc     [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11438..1143F   ; N  # Mn     [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
*************** FFFD           ; A  # So         REPLACE
*** 2123,2130 ****
  116B8          ; N  # Lo         TAKRI LETTER ARCHAIC KHA
  116B9          ; N  # Po         TAKRI ABBREVIATION SIGN
  116C0..116C9   ; N  # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
  11700..1171A   ; N  # Lo    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F   ; N  # Mn     [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721   ; N  # Mc     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725   ; N  # Mn     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726          ; N  # Mc         AHOM VOWEL SIGN E
--- 2160,2170 ----
  116B8          ; N  # Lo         TAKRI LETTER ARCHAIC KHA
  116B9          ; N  # Po         TAKRI ABBREVIATION SIGN
  116C0..116C9   ; N  # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+ 116D0..116E3   ; N  # Nd    [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
  11700..1171A   ; N  # Lo    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D          ; N  # Mn         AHOM CONSONANT SIGN MEDIAL LA
! 1171E          ; N  # Mc         AHOM CONSONANT SIGN MEDIAL RA
! 1171F          ; N  # Mn         AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721   ; N  # Mc     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725   ; N  # Mn     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726          ; N  # Mc         AHOM VOWEL SIGN E
*************** FFFD           ; A  # So         REPLACE
*** 2195,2200 ****
--- 2235,2243 ----
  11AB0..11ABF   ; N  # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
  11AC0..11AF8   ; N  # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
  11B00..11B09   ; N  # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+ 11BC0..11BE0   ; N  # Lo    [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
+ 11BE1          ; N  # Po         SUNUWAR SIGN PVO
+ 11BF0..11BF9   ; N  # Nd    [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
  11C00..11C08   ; N  # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
  11C0A..11C2E   ; N  # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
  11C2F          ; N  # Mc         BHAIKSUKI VOWEL SIGN AA
*************** FFFD           ; A  # So         REPLACE
*** 2253,2258 ****
--- 2296,2302 ----
  11F42          ; N  # Mn         KAWI CONJOINER
  11F43..11F4F   ; N  # Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
  11F50..11F59   ; N  # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+ 11F5A          ; N  # Mn         KAWI SIGN NUKTA
  11FB0          ; N  # Lo         LISU LETTER YHA
  11FC0..11FD4   ; N  # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
  11FD5..11FDC   ; N  # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
*************** FFFD           ; A  # So         REPLACE
*** 2270,2276 ****
--- 2314,2326 ----
  13440          ; N  # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13441..13446   ; N  # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
  13447..13455   ; N  # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 13460..143FA   ; N  # Lo  [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
  14400..14646   ; N  # Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+ 16100..1611D   ; N  # Lo    [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
+ 1611E..16129   ; N  # Mn    [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612A..1612C   ; N  # Mc     [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 1612D..1612F   ; N  # Mn     [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
+ 16130..16139   ; N  # Nd    [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
  16800..16A38   ; N  # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
  16A40..16A5E   ; N  # Lo    [31] MRO LETTER TA..MRO LETTER TEK
  16A60..16A69   ; N  # Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE
*************** FFFD           ; A  # So         REPLACE
*** 2291,2296 ****
--- 2341,2351 ----
  16B5B..16B61   ; N  # No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
  16B63..16B77   ; N  # Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
  16B7D..16B8F   ; N  # Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+ 16D40..16D42   ; N  # Lm     [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
+ 16D43..16D6A   ; N  # Lo    [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
+ 16D6B..16D6C   ; N  # Lm     [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
+ 16D6D..16D6F   ; N  # Po     [3] KIRAT RAI SIGN YUPI..KIRAT RAI DOUBLE DANDA
+ 16D70..16D79   ; N  # Nd    [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
  16E40..16E7F   ; N  # L&    [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
  16E80..16E96   ; N  # No    [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
  16E97..16E9A   ; N  # Po     [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
*************** FFFD           ; A  # So         REPLACE
*** 2308,2313 ****
--- 2363,2369 ----
  17000..187F7   ; W  # Lo  [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18AFF   ; W  # Lo   [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
  18B00..18CD5   ; W  # Lo   [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
+ 18CFF          ; W  # Lo         KHITAN SMALL SCRIPT CHARACTER-18CFF
  18D00..18D08   ; W  # Lo     [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1AFF0..1AFF3   ; W  # Lm     [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB   ; W  # Lm     [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
*************** FFFD           ; A  # So         REPLACE
*** 2327,2332 ****
--- 2383,2391 ----
  1BC9D..1BC9E   ; N  # Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  1BC9F          ; N  # Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1BCA0..1BCA3   ; N  # Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1CC00..1CCEF   ; N  # So   [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z
+ 1CCF0..1CCF9   ; N  # Nd    [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
+ 1CD00..1CEB3   ; N  # So   [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
  1CF00..1CF2D   ; N  # Mn    [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46   ; N  # Mn    [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
  1CF50..1CFC3   ; N  # So   [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
*************** FFFD           ; A  # So         REPLACE
*** 2349,2356 ****
  1D245          ; N  # So         GREEK MUSICAL LEIMMA
  1D2C0..1D2D3   ; N  # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
  1D2E0..1D2F3   ; N  # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
! 1D300..1D356   ; N  # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
! 1D360..1D378   ; N  # No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
  1D400..1D454   ; N  # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
  1D456..1D49C   ; N  # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
  1D49E..1D49F   ; N  # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
--- 2408,2416 ----
  1D245          ; N  # So         GREEK MUSICAL LEIMMA
  1D2C0..1D2D3   ; N  # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
  1D2E0..1D2F3   ; N  # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
! 1D300..1D356   ; W  # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
! 1D360..1D376   ; W  # No    [23] COUNTING ROD UNIT DIGIT ONE..IDEOGRAPHIC TALLY MARK FIVE
! 1D377..1D378   ; N  # No     [2] TALLY MARK ONE..TALLY MARK FIVE
  1D400..1D454   ; N  # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
  1D456..1D49C   ; N  # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
  1D49E..1D49F   ; N  # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
*************** FFFD           ; A  # So         REPLACE
*** 2431,2436 ****
--- 2491,2501 ----
  1E4EB          ; N  # Lm         NAG MUNDARI SIGN OJOD
  1E4EC..1E4EF   ; N  # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E4F0..1E4F9   ; N  # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+ 1E5D0..1E5ED   ; N  # Lo    [30] OL ONAL LETTER O..OL ONAL LETTER EG
+ 1E5EE..1E5EF   ; N  # Mn     [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
+ 1E5F0          ; N  # Lo         OL ONAL SIGN HODDOND
+ 1E5F1..1E5FA   ; N  # Nd    [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
+ 1E5FF          ; N  # Po         OL ONAL ABBREVIATION SIGN
  1E7E0..1E7E6   ; N  # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
  1E7E8..1E7EB   ; N  # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
  1E7ED..1E7EE   ; N  # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
*************** FFFD           ; A  # So         REPLACE
*** 2574,2580 ****
  1F850..1F859   ; N  # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
  1F860..1F887   ; N  # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
  1F890..1F8AD   ; N  # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8B1   ; N  # So     [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
  1F900..1F90B   ; N  # So    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
  1F90C..1F93A   ; W  # So    [47] PINCHED FINGERS..FENCER
  1F93B          ; N  # So         MODERN PENTATHLON
--- 2639,2646 ----
  1F850..1F859   ; N  # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
  1F860..1F887   ; N  # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
  1F890..1F8AD   ; N  # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8BB   ; N  # So    [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR
! 1F8C0..1F8C1   ; N  # So     [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW
  1F900..1F90B   ; N  # So    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
  1F90C..1F93A   ; W  # So    [47] PINCHED FINGERS..FENCER
  1F93B          ; N  # So         MODERN PENTATHLON
*************** FFFD           ; A  # So         REPLACE
*** 2584,2597 ****
  1FA00..1FA53   ; N  # So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
  1FA60..1FA6D   ; N  # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C   ; W  # So    [13] BALLET SHOES..CRUTCH
! 1FA80..1FA88   ; W  # So     [9] YO-YO..FLUTE
! 1FA90..1FABD   ; W  # So    [46] RINGED PLANET..WING
! 1FABF..1FAC5   ; W  # So     [7] GOOSE..PERSON WITH CROWN
! 1FACE..1FADB   ; W  # So    [14] MOOSE..PEA POD
! 1FAE0..1FAE8   ; W  # So     [9] MELTING FACE..SHAKING FACE
  1FAF0..1FAF8   ; W  # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
  1FB00..1FB92   ; N  # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBCA   ; N  # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
  1FBF0..1FBF9   ; N  # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF   ; W  # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A6E0..2A6FF   ; W  # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
--- 2650,2662 ----
  1FA00..1FA53   ; N  # So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
  1FA60..1FA6D   ; N  # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C   ; W  # So    [13] BALLET SHOES..CRUTCH
! 1FA80..1FA89   ; W  # So    [10] YO-YO..HARP
! 1FA8F..1FAC6   ; W  # So    [56] SHOVEL..FINGERPRINT
! 1FACE..1FADC   ; W  # So    [15] MOOSE..ROOT VEGETABLE
! 1FADF..1FAE9   ; W  # So    [11] SPLATTER..FACE WITH BAGS UNDER EYES
  1FAF0..1FAF8   ; W  # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
  1FB00..1FB92   ; N  # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBEF   ; N  # So    [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE
  1FBF0..1FBF9   ; N  # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF   ; W  # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A6E0..2A6FF   ; W  # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
diff -Nrcpad gcc-14.2.0/contrib/unicode/GraphemeBreakProperty.txt gcc-15.1.0/contrib/unicode/GraphemeBreakProperty.txt
*** gcc-14.2.0/contrib/unicode/GraphemeBreakProperty.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/GraphemeBreakProperty.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
! # GraphemeBreakProperty-15.1.0.txt
! # Date: 2023-01-05, 20:34:41 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # GraphemeBreakProperty-16.0.0.txt
! # Date: 2024-05-31, 18:09:38 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
***************
*** 27,32 ****
--- 27,33 ----
  110BD         ; Prepend # Cf       KAITHI NUMBER SIGN
  110CD         ; Prepend # Cf       KAITHI NUMBER SIGN ABOVE
  111C2..111C3  ; Prepend # Lo   [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
+ 113D1         ; Prepend # Lo       TULU-TIGALARI REPHA
  1193F         ; Prepend # Lo       DIVES AKURU PREFIXED NASAL SIGN
  11941         ; Prepend # Lo       DIVES AKURU INITIAL RA
  11A3A         ; Prepend # Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
***************
*** 34,40 ****
  11D46         ; Prepend # Lo       MASARAM GONDI REPHA
  11F02         ; Prepend # Lo       KAWI SIGN REPHA
  
! # Total code points: 27
  
  # ================================================
  
--- 35,41 ----
  11D46         ; Prepend # Lo       MASARAM GONDI REPHA
  11F02         ; Prepend # Lo       KAWI SIGN REPHA
  
! # Total code points: 28
  
  # ================================================
  
*************** E01F0..E0FFF  ; Control # Cn [3600] <res
*** 106,112 ****
  0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0898..089F    ; Extend # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E3..0902    ; Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
  093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
--- 107,113 ----
  0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 0897..089F    ; Extend # Mn   [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
  08CA..08E1    ; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
  08E3..0902    ; Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
  093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
*************** E01F0..E0FFF  ; Control # Cn [3600] <res
*** 163,170 ****
--- 164,174 ----
  0C81          ; Extend # Mn       KANNADA SIGN CANDRABINDU
  0CBC          ; Extend # Mn       KANNADA SIGN NUKTA
  0CBF          ; Extend # Mn       KANNADA VOWEL SIGN I
+ 0CC0          ; Extend # Mc       KANNADA VOWEL SIGN II
  0CC2          ; Extend # Mc       KANNADA VOWEL SIGN UU
  0CC6          ; Extend # Mn       KANNADA VOWEL SIGN E
+ 0CC7..0CC8    ; Extend # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; Extend # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
  0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
*************** E01F0..E0FFF  ; Control # Cn [3600] <res
*** 210,216 ****
--- 214,222 ----
  109D          ; Extend # Mn       MYANMAR VOWEL SIGN AITON AI
  135D..135F    ; Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
  1712..1714    ; Extend # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+ 1715          ; Extend # Mc       TAGALOG SIGN PAMUDPOD
  1732..1733    ; Extend # Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+ 1734          ; Extend # Mc       HANUNOO SIGN PAMUDPOD
  1752..1753    ; Extend # Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
  1772..1773    ; Extend # Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
  17B4..17B5    ; Extend # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
*************** E01F0..E0FFF  ; Control # Cn [3600] <res
*** 242,258 ****
--- 248,269 ----
  1B34          ; Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Extend # Mc       BALINESE VOWEL SIGN TEDUNG
  1B36..1B3A    ; Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+ 1B3B          ; Extend # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
  1B3C          ; Extend # Mn       BALINESE VOWEL SIGN LA LENGA
+ 1B3D          ; Extend # Mc       BALINESE VOWEL SIGN LA LENGA TEDUNG
  1B42          ; Extend # Mn       BALINESE VOWEL SIGN PEPET
+ 1B43..1B44    ; Extend # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B6B..1B73    ; Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  1B80..1B81    ; Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
  1BA2..1BA5    ; Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
  1BA8..1BA9    ; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+ 1BAA          ; Extend # Mc       SUNDANESE SIGN PAMAAEH
  1BAB..1BAD    ; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
  1BE6          ; Extend # Mn       BATAK SIGN TOMPI
  1BE8..1BE9    ; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
  1BED          ; Extend # Mn       BATAK VOWEL SIGN KARO O
  1BEF..1BF1    ; Extend # Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+ 1BF2..1BF3    ; Extend # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  1C2C..1C33    ; Extend # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
  1C36..1C37    ; Extend # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
  1CD0..1CD2    ; Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
*************** A8E0..A8F1    ; Extend # Mn  [18] COMBIN
*** 289,298 ****
--- 300,311 ----
  A8FF          ; Extend # Mn       DEVANAGARI VOWEL SIGN AY
  A926..A92D    ; Extend # Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
  A947..A951    ; Extend # Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+ A953          ; Extend # Mc       REJANG VIRAMA
  A980..A982    ; Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
  A9B3          ; Extend # Mn       JAVANESE SIGN CECAK TELU
  A9B6..A9B9    ; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
  A9BC..A9BD    ; Extend # Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+ A9C0          ; Extend # Mc       JAVANESE PANGKON
  A9E5          ; Extend # Mn       MYANMAR SIGN SHAN SAW
  AA29..AA2E    ; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
  AA31..AA32    ; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 324,331 ****
  10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
  10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFD..10EFF  ; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
--- 337,345 ----
  10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D69..10D6D  ; Extend # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
  10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EFC..10EFF  ; Extend # Mn   [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
  11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 342,351 ****
--- 356,367 ----
  11173         ; Extend # Mn       MAHAJANI SIGN NUKTA
  11180..11181  ; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
  111B6..111BE  ; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+ 111C0         ; Extend # Mc       SHARADA SIGN VIRAMA
  111C9..111CC  ; Extend # Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
  111CF         ; Extend # Mn       SHARADA SIGN INVERTED CANDRABINDU
  1122F..11231  ; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
  11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
+ 11235         ; Extend # Mc       KHOJKI SIGN VIRAMA
  11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
  1123E         ; Extend # Mn       KHOJKI SIGN SUKUN
  11241         ; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 355,363 ****
--- 371,390 ----
  1133B..1133C  ; Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
  1133E         ; Extend # Mc       GRANTHA VOWEL SIGN AA
  11340         ; Extend # Mn       GRANTHA VOWEL SIGN II
+ 1134D         ; Extend # Mc       GRANTHA SIGN VIRAMA
  11357         ; Extend # Mc       GRANTHA AU LENGTH MARK
  11366..1136C  ; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113B8         ; Extend # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113BB..113C0  ; Extend # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; Extend # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Extend # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; Extend # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
+ 113CE         ; Extend # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; Extend # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; Extend # Mn       TULU-TIGALARI CONJOINER
+ 113D2         ; Extend # Mn       TULU-TIGALARI GEMINATION MARK
+ 113E1..113E2  ; Extend # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11438..1143F  ; Extend # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
  11442..11444  ; Extend # Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
  11446         ; Extend # Mn       NEWA SIGN NUKTA
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 379,392 ****
  116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
  116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  116B7         ; Extend # Mn       TAKRI SIGN NUKTA
! 1171D..1171F  ; Extend # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
  11839..1183A  ; Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
  11930         ; Extend # Mc       DIVES AKURU VOWEL SIGN AA
  1193B..1193C  ; Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
  1193E         ; Extend # Mn       DIVES AKURU VIRAMA
  11943         ; Extend # Mn       DIVES AKURU SIGN NUKTA
  119D4..119D7  ; Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
--- 406,422 ----
  116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
  116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
  116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+ 116B6         ; Extend # Mc       TAKRI SIGN VIRAMA
  116B7         ; Extend # Mn       TAKRI SIGN NUKTA
! 1171D         ; Extend # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171F         ; Extend # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11722..11725  ; Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11727..1172B  ; Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  1182F..11837  ; Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
  11839..1183A  ; Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
  11930         ; Extend # Mc       DIVES AKURU VOWEL SIGN AA
  1193B..1193C  ; Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+ 1193D         ; Extend # Mc       DIVES AKURU SIGN HALANTA
  1193E         ; Extend # Mn       DIVES AKURU VIRAMA
  11943         ; Extend # Mn       DIVES AKURU SIGN NUKTA
  119D4..119D7  ; Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 419,438 ****
  11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
  11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
  11F42         ; Extend # Mn       KAWI CONJOINER
  13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
  16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16FE4         ; Extend # Mn       KHITAN SMALL SCRIPT FILLER
  1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  1CF00..1CF2D  ; Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1D165         ; Extend # Mc       MUSICAL SYMBOL COMBINING STEM
  1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16E..1D172  ; Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
--- 449,473 ----
  11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
  11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
+ 11F41         ; Extend # Mc       KAWI SIGN KILLER
  11F42         ; Extend # Mn       KAWI CONJOINER
+ 11F5A         ; Extend # Mn       KAWI SIGN NUKTA
  13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
  13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1611E..16129  ; Extend # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612D..1612F  ; Extend # Mn   [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
  16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16FE4         ; Extend # Mn       KHITAN SMALL SCRIPT FILLER
+ 16FF0..16FF1  ; Extend # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
  1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  1CF00..1CF2D  ; Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
  1CF30..1CF46  ; Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1D165..1D166  ; Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
  1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16D..1D172  ; Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
  1D17B..1D182  ; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 453,465 ****
  1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
  1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  1F3FB..1F3FF  ; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
  E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2130
  
  # ================================================
  
--- 488,501 ----
  1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E5EE..1E5EF  ; Extend # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
  1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  1F3FB..1F3FF  ; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
  E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
  E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 2198
  
  # ================================================
  
*************** E0100..E01EF  ; Extend # Mn [240] VARIAT
*** 496,505 ****
  0C41..0C44    ; SpacingMark # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
  0C82..0C83    ; SpacingMark # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
  0CBE          ; SpacingMark # Mc       KANNADA VOWEL SIGN AA
! 0CC0..0CC1    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
  0CC3..0CC4    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
- 0CC7..0CC8    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
- 0CCA..0CCB    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CF3          ; SpacingMark # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
  0D02..0D03    ; SpacingMark # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
  0D3F..0D40    ; SpacingMark # Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
--- 532,539 ----
  0C41..0C44    ; SpacingMark # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
  0C82..0C83    ; SpacingMark # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
  0CBE          ; SpacingMark # Mc       KANNADA VOWEL SIGN AA
! 0CC1          ; SpacingMark # Mc       KANNADA VOWEL SIGN U
  0CC3..0CC4    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
  0CF3          ; SpacingMark # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
  0D02..0D03    ; SpacingMark # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
  0D3F..0D40    ; SpacingMark # Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
*************** E0100..E01EF  ; Extend # Mn [240] VARIAT
*** 517,524 ****
  103B..103C    ; SpacingMark # Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
  1056..1057    ; SpacingMark # Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
  1084          ; SpacingMark # Mc       MYANMAR VOWEL SIGN SHAN E
- 1715          ; SpacingMark # Mc       TAGALOG SIGN PAMUDPOD
- 1734          ; SpacingMark # Mc       HANUNOO SIGN PAMUDPOD
  17B6          ; SpacingMark # Mc       KHMER VOWEL SIGN AA
  17BE..17C5    ; SpacingMark # Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
  17C7..17C8    ; SpacingMark # Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
--- 551,556 ----
*************** E0100..E01EF  ; Extend # Mn [240] VARIAT
*** 531,547 ****
  1A57          ; SpacingMark # Mc       TAI THAM CONSONANT SIGN LA TANG LAI
  1A6D..1A72    ; SpacingMark # Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
  1B04          ; SpacingMark # Mc       BALINESE SIGN BISAH
! 1B3B          ; SpacingMark # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
! 1B3D..1B41    ; SpacingMark # Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
! 1B43..1B44    ; SpacingMark # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  1B82          ; SpacingMark # Mc       SUNDANESE SIGN PANGWISAD
  1BA1          ; SpacingMark # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
  1BA6..1BA7    ; SpacingMark # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
- 1BAA          ; SpacingMark # Mc       SUNDANESE SIGN PAMAAEH
  1BE7          ; SpacingMark # Mc       BATAK VOWEL SIGN E
  1BEA..1BEC    ; SpacingMark # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
  1BEE          ; SpacingMark # Mc       BATAK VOWEL SIGN U
- 1BF2..1BF3    ; SpacingMark # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  1C24..1C2B    ; SpacingMark # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
  1C34..1C35    ; SpacingMark # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
  1CE1          ; SpacingMark # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
--- 563,575 ----
  1A57          ; SpacingMark # Mc       TAI THAM CONSONANT SIGN LA TANG LAI
  1A6D..1A72    ; SpacingMark # Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
  1B04          ; SpacingMark # Mc       BALINESE SIGN BISAH
! 1B3E..1B41    ; SpacingMark # Mc   [4] BALINESE VOWEL SIGN TALING..BALINESE VOWEL SIGN TALING REPA TEDUNG
  1B82          ; SpacingMark # Mc       SUNDANESE SIGN PANGWISAD
  1BA1          ; SpacingMark # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
  1BA6..1BA7    ; SpacingMark # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
  1BE7          ; SpacingMark # Mc       BATAK VOWEL SIGN E
  1BEA..1BEC    ; SpacingMark # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
  1BEE          ; SpacingMark # Mc       BATAK VOWEL SIGN U
  1C24..1C2B    ; SpacingMark # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
  1C34..1C35    ; SpacingMark # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
  1CE1          ; SpacingMark # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
*************** A823..A824    ; SpacingMark # Mc   [2] S
*** 550,560 ****
  A827          ; SpacingMark # Mc       SYLOTI NAGRI VOWEL SIGN OO
  A880..A881    ; SpacingMark # Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
  A8B4..A8C3    ; SpacingMark # Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
! A952..A953    ; SpacingMark # Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
  A983          ; SpacingMark # Mc       JAVANESE SIGN WIGNYAN
  A9B4..A9B5    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
  A9BA..A9BB    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BE..A9C0    ; SpacingMark # Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
  AA2F..AA30    ; SpacingMark # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
  AA33..AA34    ; SpacingMark # Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
  AA4D          ; SpacingMark # Mc       CHAM CONSONANT SIGN FINAL H
--- 578,588 ----
  A827          ; SpacingMark # Mc       SYLOTI NAGRI VOWEL SIGN OO
  A880..A881    ; SpacingMark # Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
  A8B4..A8C3    ; SpacingMark # Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
! A952          ; SpacingMark # Mc       REJANG CONSONANT SIGN H
  A983          ; SpacingMark # Mc       JAVANESE SIGN WIGNYAN
  A9B4..A9B5    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
  A9BA..A9BB    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BE..A9BF    ; SpacingMark # Mc   [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
  AA2F..AA30    ; SpacingMark # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
  AA33..AA34    ; SpacingMark # Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
  AA4D          ; SpacingMark # Mc       CHAM CONSONANT SIGN FINAL H
*************** ABEC          ; SpacingMark # Mc       M
*** 574,591 ****
  11145..11146  ; SpacingMark # Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
  11182         ; SpacingMark # Mc       SHARADA SIGN VISARGA
  111B3..111B5  ; SpacingMark # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111BF..111C0  ; SpacingMark # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
  111CE         ; SpacingMark # Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E
  1122C..1122E  ; SpacingMark # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
  11232..11233  ; SpacingMark # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
- 11235         ; SpacingMark # Mc       KHOJKI SIGN VIRAMA
  112E0..112E2  ; SpacingMark # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
  11302..11303  ; SpacingMark # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
  1133F         ; SpacingMark # Mc       GRANTHA VOWEL SIGN I
  11341..11344  ; SpacingMark # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
  11347..11348  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134D  ; SpacingMark # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
  11362..11363  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  11435..11437  ; SpacingMark # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11440..11441  ; SpacingMark # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
  11445         ; SpacingMark # Mc       NEWA SIGN VISARGA
--- 602,621 ----
  11145..11146  ; SpacingMark # Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
  11182         ; SpacingMark # Mc       SHARADA SIGN VISARGA
  111B3..111B5  ; SpacingMark # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111BF         ; SpacingMark # Mc       SHARADA VOWEL SIGN AU
  111CE         ; SpacingMark # Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E
  1122C..1122E  ; SpacingMark # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
  11232..11233  ; SpacingMark # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
  112E0..112E2  ; SpacingMark # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
  11302..11303  ; SpacingMark # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
  1133F         ; SpacingMark # Mc       GRANTHA VOWEL SIGN I
  11341..11344  ; SpacingMark # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
  11347..11348  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134C  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
  11362..11363  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 113B9..113BA  ; SpacingMark # Mc   [2] TULU-TIGALARI VOWEL SIGN I..TULU-TIGALARI VOWEL SIGN II
+ 113CA         ; SpacingMark # Mc       TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; SpacingMark # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
  11435..11437  ; SpacingMark # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11440..11441  ; SpacingMark # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
  11445         ; SpacingMark # Mc       NEWA SIGN VISARGA
*************** ABEC          ; SpacingMark # Mc       M
*** 602,614 ****
  1163E         ; SpacingMark # Mc       MODI SIGN VISARGA
  116AC         ; SpacingMark # Mc       TAKRI SIGN VISARGA
  116AE..116AF  ; SpacingMark # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
! 116B6         ; SpacingMark # Mc       TAKRI SIGN VIRAMA
  11726         ; SpacingMark # Mc       AHOM VOWEL SIGN E
  1182C..1182E  ; SpacingMark # Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
  11838         ; SpacingMark # Mc       DOGRA SIGN VISARGA
  11931..11935  ; SpacingMark # Mc   [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E
  11937..11938  ; SpacingMark # Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
- 1193D         ; SpacingMark # Mc       DIVES AKURU SIGN HALANTA
  11940         ; SpacingMark # Mc       DIVES AKURU MEDIAL YA
  11942         ; SpacingMark # Mc       DIVES AKURU MEDIAL RA
  119D1..119D3  ; SpacingMark # Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
--- 632,643 ----
  1163E         ; SpacingMark # Mc       MODI SIGN VISARGA
  116AC         ; SpacingMark # Mc       TAKRI SIGN VISARGA
  116AE..116AF  ; SpacingMark # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
! 1171E         ; SpacingMark # Mc       AHOM CONSONANT SIGN MEDIAL RA
  11726         ; SpacingMark # Mc       AHOM VOWEL SIGN E
  1182C..1182E  ; SpacingMark # Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
  11838         ; SpacingMark # Mc       DOGRA SIGN VISARGA
  11931..11935  ; SpacingMark # Mc   [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E
  11937..11938  ; SpacingMark # Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
  11940         ; SpacingMark # Mc       DIVES AKURU MEDIAL YA
  11942         ; SpacingMark # Mc       DIVES AKURU MEDIAL RA
  119D1..119D3  ; SpacingMark # Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
*************** ABEC          ; SpacingMark # Mc       M
*** 629,641 ****
  11F03         ; SpacingMark # Mc       KAWI SIGN VISARGA
  11F34..11F35  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
  11F3E..11F3F  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
! 11F41         ; SpacingMark # Mc       KAWI SIGN KILLER
  16F51..16F87  ; SpacingMark # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
- 16FF0..16FF1  ; SpacingMark # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
- 1D166         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
- 1D16D         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
  
! # Total code points: 395
  
  # ================================================
  
--- 658,667 ----
  11F03         ; SpacingMark # Mc       KAWI SIGN VISARGA
  11F34..11F35  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
  11F3E..11F3F  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
! 1612A..1612C  ; SpacingMark # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
  16F51..16F87  ; SpacingMark # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
  
! # Total code points: 378
  
  # ================================================
  
*************** A960..A97C    ; L # Lo  [29] HANGUL CHOS
*** 648,655 ****
  
  1160..11A7    ; V # Lo  [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
  D7B0..D7C6    ; V # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
  
! # Total code points: 95
  
  # ================================================
  
--- 674,683 ----
  
  1160..11A7    ; V # Lo  [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
  D7B0..D7C6    ; V # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+ 16D63         ; V # Lo       KIRAT RAI VOWEL SIGN AA
+ 16D67..16D6A  ; V # Lo   [4] KIRAT RAI VOWEL SIGN E..KIRAT RAI VOWEL SIGN AU
  
! # Total code points: 100
  
  # ================================================
  
diff -Nrcpad gcc-14.2.0/contrib/unicode/NameAliases.txt gcc-15.1.0/contrib/unicode/NameAliases.txt
*** gcc-14.2.0/contrib/unicode/NameAliases.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/NameAliases.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
! # NameAliases-15.1.0.txt
! # Date: 2023-01-05
! # © 2023 Unicode®, Inc.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  # For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # NameAliases-16.0.0.txt
! # Date: 2024-04-24
! # © 2024 Unicode®, Inc.
! # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  # For documentation, see https://www.unicode.org/reports/tr44/
*************** FEFF;BOM;abbreviation
*** 320,331 ****
--- 321,336 ----
  FEFF;ZWNBSP;abbreviation
  122D4;CUNEIFORM SIGN NU11 TENU;correction
  122D5;CUNEIFORM SIGN NU11 OVER NU11 BUR OVER BUR;correction
+ 12327;CUNEIFORM SIGN KALAM;correction
+ 1680B;BAMUM LETTER PHASE-A MAEMGBIEE;correction
  16E56;MEDEFAIDRIN CAPITAL LETTER H;correction
  16E57;MEDEFAIDRIN CAPITAL LETTER NG;correction
  16E76;MEDEFAIDRIN SMALL LETTER H;correction
  16E77;MEDEFAIDRIN SMALL LETTER NG;correction
  1B001;HENTAIGANA LETTER E-1;correction
  1D0C5;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASIS;correction
+ 1E899;MENDE KIKAKUI SYLLABLE M172 MBO;correction
+ 1E89A;MENDE KIKAKUI SYLLABLE M174 MBOO;correction
  E0100;VS17;abbreviation
  E0101;VS18;abbreviation
  E0102;VS19;abbreviation
diff -Nrcpad gcc-14.2.0/contrib/unicode/PropList.txt gcc-15.1.0/contrib/unicode/PropList.txt
*** gcc-14.2.0/contrib/unicode/PropList.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/PropList.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,8 ****
! # PropList-15.1.0.txt
! # Date: 2023-08-01, 21:56:53 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
--- 1,8 ----
! # PropList-16.0.0.txt
! # Date: 2024-05-31, 18:09:48 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
  #   For documentation, see https://www.unicode.org/reports/tr44/
*************** FE31..FE32    ; Dash # Pd   [2] PRESENTA
*** 62,70 ****
  FE58          ; Dash # Pd       SMALL EM DASH
  FE63          ; Dash # Pd       SMALL HYPHEN-MINUS
  FF0D          ; Dash # Pd       FULLWIDTH HYPHEN-MINUS
  10EAD         ; Dash # Pd       YEZIDI HYPHENATION MARK
  
! # Total code points: 30
  
  # ================================================
  
--- 62,71 ----
  FE58          ; Dash # Pd       SMALL EM DASH
  FE63          ; Dash # Pd       SMALL HYPHEN-MINUS
  FF0D          ; Dash # Pd       FULLWIDTH HYPHEN-MINUS
+ 10D6E         ; Dash # Pd       GARAY HYPHEN
  10EAD         ; Dash # Pd       YEZIDI HYPHENATION MARK
  
! # Total code points: 31
  
  # ================================================
  
*************** FF63          ; Quotation_Mark # Pe
*** 132,138 ****
  0700..070A    ; Terminal_Punctuation # Po  [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION
  070C          ; Terminal_Punctuation # Po       SYRIAC HARKLEAN METOBELUS
  07F8..07F9    ; Terminal_Punctuation # Po   [2] NKO COMMA..NKO EXCLAMATION MARK
! 0830..083E    ; Terminal_Punctuation # Po  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
  085E          ; Terminal_Punctuation # Po       MANDAIC PUNCTUATION
  0964..0965    ; Terminal_Punctuation # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
  0E5A..0E5B    ; Terminal_Punctuation # Po   [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
--- 133,140 ----
  0700..070A    ; Terminal_Punctuation # Po  [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION
  070C          ; Terminal_Punctuation # Po       SYRIAC HARKLEAN METOBELUS
  07F8..07F9    ; Terminal_Punctuation # Po   [2] NKO COMMA..NKO EXCLAMATION MARK
! 0830..0835    ; Terminal_Punctuation # Po   [6] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION SHIYYAALAA
! 0837..083E    ; Terminal_Punctuation # Po   [8] SAMARITAN PUNCTUATION MELODIC QITSA..SAMARITAN PUNCTUATION ANNAAU
  085E          ; Terminal_Punctuation # Po       MANDAIC PUNCTUATION
  0964..0965    ; Terminal_Punctuation # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
  0E5A..0E5B    ; Terminal_Punctuation # Po   [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
*************** FF63          ; Quotation_Mark # Pe
*** 149,161 ****
  1808..1809    ; Terminal_Punctuation # Po   [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
  1944..1945    ; Terminal_Punctuation # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
  1AA8..1AAB    ; Terminal_Punctuation # Po   [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
  1B5A..1B5B    ; Terminal_Punctuation # Po   [2] BALINESE PANTI..BALINESE PAMADA
  1B5D..1B5F    ; Terminal_Punctuation # Po   [3] BALINESE CARIK PAMUNGKAH..BALINESE CARIK PAREREN
! 1B7D..1B7E    ; Terminal_Punctuation # Po   [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
  1C3B..1C3F    ; Terminal_Punctuation # Po   [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
  1C7E..1C7F    ; Terminal_Punctuation # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
  203C..203D    ; Terminal_Punctuation # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
  2047..2049    ; Terminal_Punctuation # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
  2E2E          ; Terminal_Punctuation # Po       REVERSED QUESTION MARK
  2E3C          ; Terminal_Punctuation # Po       STENOGRAPHIC FULL STOP
  2E41          ; Terminal_Punctuation # Po       REVERSED COMMA
--- 151,166 ----
  1808..1809    ; Terminal_Punctuation # Po   [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
  1944..1945    ; Terminal_Punctuation # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
  1AA8..1AAB    ; Terminal_Punctuation # Po   [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
+ 1B4E..1B4F    ; Terminal_Punctuation # Po   [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
  1B5A..1B5B    ; Terminal_Punctuation # Po   [2] BALINESE PANTI..BALINESE PAMADA
  1B5D..1B5F    ; Terminal_Punctuation # Po   [3] BALINESE CARIK PAMUNGKAH..BALINESE CARIK PAREREN
! 1B7D..1B7F    ; Terminal_Punctuation # Po   [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
  1C3B..1C3F    ; Terminal_Punctuation # Po   [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
  1C7E..1C7F    ; Terminal_Punctuation # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+ 2024          ; Terminal_Punctuation # Po       ONE DOT LEADER
  203C..203D    ; Terminal_Punctuation # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
  2047..2049    ; Terminal_Punctuation # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+ 2CF9..2CFB    ; Terminal_Punctuation # Po   [3] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN INDIRECT QUESTION MARK
  2E2E          ; Terminal_Punctuation # Po       REVERSED QUESTION MARK
  2E3C          ; Terminal_Punctuation # Po       STENOGRAPHIC FULL STOP
  2E41          ; Terminal_Punctuation # Po       REVERSED COMMA
*************** AA5D..AA5F    ; Terminal_Punctuation # P
*** 174,179 ****
--- 179,186 ----
  AADF          ; Terminal_Punctuation # Po       TAI VIET SYMBOL KOI KOI
  AAF0..AAF1    ; Terminal_Punctuation # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
  ABEB          ; Terminal_Punctuation # Po       MEETEI MAYEK CHEIKHEI
+ FE12          ; Terminal_Punctuation # Po       PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+ FE15..FE16    ; Terminal_Punctuation # Po   [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
  FE50..FE52    ; Terminal_Punctuation # Po   [3] SMALL COMMA..SMALL FULL STOP
  FE54..FE57    ; Terminal_Punctuation # Po   [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
  FF01          ; Terminal_Punctuation # Po       FULLWIDTH EXCLAMATION MARK
*************** FF64          ; Terminal_Punctuation # P
*** 201,206 ****
--- 208,214 ----
  111DE..111DF  ; Terminal_Punctuation # Po   [2] SHARADA SECTION MARK-1..SHARADA SECTION MARK-2
  11238..1123C  ; Terminal_Punctuation # Po   [5] KHOJKI DANDA..KHOJKI DOUBLE SECTION MARK
  112A9         ; Terminal_Punctuation # Po       MULTANI SECTION MARK
+ 113D4..113D5  ; Terminal_Punctuation # Po   [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
  1144B..1144D  ; Terminal_Punctuation # Po   [3] NEWA DANDA..NEWA COMMA
  1145A..1145B  ; Terminal_Punctuation # Po   [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
  115C2..115C5  ; Terminal_Punctuation # Po   [4] SIDDHAM DANDA..SIDDHAM SEPARATOR BAR
*************** FF64          ; Terminal_Punctuation # P
*** 221,231 ****
  16AF5         ; Terminal_Punctuation # Po       BASSA VAH FULL STOP
  16B37..16B39  ; Terminal_Punctuation # Po   [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
  16B44         ; Terminal_Punctuation # Po       PAHAWH HMONG SIGN XAUS
  16E97..16E98  ; Terminal_Punctuation # Po   [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP
  1BC9F         ; Terminal_Punctuation # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA87..1DA8A  ; Terminal_Punctuation # Po   [4] SIGNWRITING COMMA..SIGNWRITING COLON
  
! # Total code points: 278
  
  # ================================================
  
--- 229,240 ----
  16AF5         ; Terminal_Punctuation # Po       BASSA VAH FULL STOP
  16B37..16B39  ; Terminal_Punctuation # Po   [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
  16B44         ; Terminal_Punctuation # Po       PAHAWH HMONG SIGN XAUS
+ 16D6E..16D6F  ; Terminal_Punctuation # Po   [2] KIRAT RAI DANDA..KIRAT RAI DOUBLE DANDA
  16E97..16E98  ; Terminal_Punctuation # Po   [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP
  1BC9F         ; Terminal_Punctuation # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA87..1DA8A  ; Terminal_Punctuation # Po   [4] SIGNWRITING COMMA..SIGNWRITING COLON
  
! # Total code points: 291
  
  # ================================================
  
*************** FF41..FF46    ; Hex_Digit # L&   [6] FUL
*** 430,435 ****
--- 439,445 ----
  # ================================================
  
  0345          ; Other_Alphabetic # Mn       COMBINING GREEK YPOGEGRAMMENI
+ 0363..036F    ; Other_Alphabetic # Mn  [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
  05B0..05BD    ; Other_Alphabetic # Mn  [14] HEBREW POINT SHEVA..HEBREW POINT METEG
  05BF          ; Other_Alphabetic # Mn       HEBREW POINT RAFE
  05C1..05C2    ; Other_Alphabetic # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
*************** FF41..FF46    ; Hex_Digit # L&   [6] FUL
*** 450,455 ****
--- 460,466 ----
  081B..0823    ; Other_Alphabetic # Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
  0825..0827    ; Other_Alphabetic # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  0829..082C    ; Other_Alphabetic # Mn   [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
+ 0897          ; Other_Alphabetic # Mn       ARABIC PEPET
  08D4..08DF    ; Other_Alphabetic # Mn  [12] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH WORD WAQFA
  08E3..08E9    ; Other_Alphabetic # Mn   [7] ARABIC TURNED DAMMA BELOW..ARABIC CURLY KASRATAN
  08F0..0902    ; Other_Alphabetic # Mn  [19] ARABIC OPEN FATHATAN..DEVANAGARI SIGN ANUSVARA
*************** FF41..FF46    ; Hex_Digit # L&   [6] FUL
*** 634,640 ****
  1C2C..1C33    ; Other_Alphabetic # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
  1C34..1C35    ; Other_Alphabetic # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
  1C36          ; Other_Alphabetic # Mn       LEPCHA SIGN RAN
! 1DE7..1DF4    ; Other_Alphabetic # Mn  [14] COMBINING LATIN SMALL LETTER ALPHA..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
  24B6..24E9    ; Other_Alphabetic # So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
  2DE0..2DFF    ; Other_Alphabetic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
  A674..A67B    ; Other_Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
--- 645,651 ----
  1C2C..1C33    ; Other_Alphabetic # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
  1C34..1C35    ; Other_Alphabetic # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
  1C36          ; Other_Alphabetic # Mn       LEPCHA SIGN RAN
! 1DD3..1DF4    ; Other_Alphabetic # Mn  [34] COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
  24B6..24E9    ; Other_Alphabetic # So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
  2DE0..2DFF    ; Other_Alphabetic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
  A674..A67B    ; Other_Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
*************** FB1E          ; Other_Alphabetic # Mn
*** 689,695 ****
--- 700,708 ----
  10A05..10A06  ; Other_Alphabetic # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
  10A0C..10A0F  ; Other_Alphabetic # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
  10D24..10D27  ; Other_Alphabetic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D69         ; Other_Alphabetic # Mn       GARAY VOWEL SIGN E
  10EAB..10EAC  ; Other_Alphabetic # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+ 10EFC         ; Other_Alphabetic # Mn       ARABIC COMBINING ALEF OVERLAY
  11000         ; Other_Alphabetic # Mc       BRAHMI SIGN CANDRABINDU
  11001         ; Other_Alphabetic # Mn       BRAHMI SIGN ANUSVARA
  11002         ; Other_Alphabetic # Mc       BRAHMI SIGN VISARGA
*************** FB1E          ; Other_Alphabetic # Mn
*** 732,737 ****
--- 745,756 ----
  1134B..1134C  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
  11357         ; Other_Alphabetic # Mc       GRANTHA AU LENGTH MARK
  11362..11363  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 113B8..113BA  ; Other_Alphabetic # Mc   [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
+ 113BB..113C0  ; Other_Alphabetic # Mn   [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
+ 113C2         ; Other_Alphabetic # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Other_Alphabetic # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113CA  ; Other_Alphabetic # Mc   [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
+ 113CC..113CD  ; Other_Alphabetic # Mc   [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
  11435..11437  ; Other_Alphabetic # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  11438..1143F  ; Other_Alphabetic # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
  11440..11441  ; Other_Alphabetic # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
*************** FB1E          ; Other_Alphabetic # Mn
*** 761,767 ****
  116AD         ; Other_Alphabetic # Mn       TAKRI VOWEL SIGN AA
  116AE..116AF  ; Other_Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
  116B0..116B5  ; Other_Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
! 1171D..1171F  ; Other_Alphabetic # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; Other_Alphabetic # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; Other_Alphabetic # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; Other_Alphabetic # Mc       AHOM VOWEL SIGN E
--- 780,788 ----
  116AD         ; Other_Alphabetic # Mn       TAKRI VOWEL SIGN AA
  116AE..116AF  ; Other_Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
  116B0..116B5  ; Other_Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
! 1171D         ; Other_Alphabetic # Mn       AHOM CONSONANT SIGN MEDIAL LA
! 1171E         ; Other_Alphabetic # Mc       AHOM CONSONANT SIGN MEDIAL RA
! 1171F         ; Other_Alphabetic # Mn       AHOM CONSONANT SIGN MEDIAL LIGATING RA
  11720..11721  ; Other_Alphabetic # Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  11722..11725  ; Other_Alphabetic # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  11726         ; Other_Alphabetic # Mc       AHOM VOWEL SIGN E
*************** FB1E          ; Other_Alphabetic # Mn
*** 818,823 ****
--- 839,847 ----
  11F36..11F3A  ; Other_Alphabetic # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
  11F3E..11F3F  ; Other_Alphabetic # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
  11F40         ; Other_Alphabetic # Mn       KAWI VOWEL SIGN EU
+ 1611E..16129  ; Other_Alphabetic # Mn  [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
+ 1612A..1612C  ; Other_Alphabetic # Mc   [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
+ 1612D..1612E  ; Other_Alphabetic # Mn   [2] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA CONSONANT SIGN MEDIAL RA
  16F4F         ; Other_Alphabetic # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F51..16F87  ; Other_Alphabetic # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
  16F8F..16F92  ; Other_Alphabetic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
*************** FB1E          ; Other_Alphabetic # Mn
*** 834,840 ****
  1F150..1F169  ; Other_Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Other_Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 1425
  
  # ================================================
  
--- 858,864 ----
  1F150..1F169  ; Other_Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Other_Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  
! # Total code points: 1495
  
  # ================================================
  
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 849,855 ****
  16FE4         ; Ideographic # Mn       KHITAN SMALL SCRIPT FILLER
  17000..187F7  ; Ideographic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Ideographic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08  ; Ideographic # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
  1B170..1B2FB  ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
  20000..2A6DF  ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A700..2B739  ; Ideographic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
--- 873,879 ----
  16FE4         ; Ideographic # Mn       KHITAN SMALL SCRIPT FILLER
  17000..187F7  ; Ideographic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
  18800..18CD5  ; Ideographic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D08  ; Ideographic # Lo  [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08
  1B170..1B2FB  ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
  20000..2A6DF  ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A700..2B739  ; Ideographic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 861,867 ****
  30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 106476
  
  # ================================================
  
--- 885,891 ----
  30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 106477
  
  # ================================================
  
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 932,937 ****
--- 956,962 ----
  0D3B..0D3C    ; Diacritic # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
  0D4D          ; Diacritic # Mn       MALAYALAM SIGN VIRAMA
  0DCA          ; Diacritic # Mn       SINHALA SIGN AL-LAKUNA
+ 0E3A          ; Diacritic # Mn       THAI CHARACTER PHINTHU
  0E47..0E4C    ; Diacritic # Mn   [6] THAI CHARACTER MAITAIKHU..THAI CHARACTER THANTHAKHAT
  0E4E          ; Diacritic # Mn       THAI CHARACTER YAMAKKAN
  0EBA          ; Diacritic # Mn       LAO SIGN PALI VIRAMA
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 955,963 ****
--- 980,990 ----
  135D..135F    ; Diacritic # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
  1714          ; Diacritic # Mn       TAGALOG SIGN VIRAMA
  1715          ; Diacritic # Mc       TAGALOG SIGN PAMUDPOD
+ 1734          ; Diacritic # Mc       HANUNOO SIGN PAMUDPOD
  17C9..17D3    ; Diacritic # Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
  17DD          ; Diacritic # Mn       KHMER SIGN ATTHACAN
  1939..193B    ; Diacritic # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+ 1A60          ; Diacritic # Mn       TAI THAM SIGN SAKOT
  1A75..1A7C    ; Diacritic # Mn   [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
  1A7F          ; Diacritic # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; Diacritic # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 968,973 ****
--- 995,1002 ----
  1B6B..1B73    ; Diacritic # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  1BAA          ; Diacritic # Mc       SUNDANESE SIGN PAMAAEH
  1BAB          ; Diacritic # Mn       SUNDANESE SIGN VIRAMA
+ 1BE6          ; Diacritic # Mn       BATAK SIGN TOMPI
+ 1BF2..1BF3    ; Diacritic # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  1C36..1C37    ; Diacritic # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
  1C78..1C7D    ; Diacritic # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
  1CD0..1CD2    ; Diacritic # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
*************** A720..A721    ; Diacritic # Sk   [2] MOD
*** 1006,1011 ****
--- 1035,1042 ----
  A788          ; Diacritic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A789..A78A    ; Diacritic # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
  A7F8..A7F9    ; Diacritic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+ A806          ; Diacritic # Mn       SYLOTI NAGRI SIGN HASANTA
+ A82C          ; Diacritic # Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA
  A8C4          ; Diacritic # Mn       SAURASHTRA SIGN VIRAMA
  A8E0..A8F1    ; Diacritic # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
  A92B..A92D    ; Diacritic # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
*************** FFE3          ; Diacritic # Sk       FUL
*** 1039,1047 ****
--- 1070,1082 ----
  10780..10785  ; Diacritic # Lm   [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
  10787..107B0  ; Diacritic # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
  107B2..107BA  ; Diacritic # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+ 10A38..10A3A  ; Diacritic # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+ 10A3F         ; Diacritic # Mn       KHAROSHTHI VIRAMA
  10AE5..10AE6  ; Diacritic # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  10D22..10D23  ; Diacritic # Lo   [2] HANIFI ROHINGYA MARK SAKIN..HANIFI ROHINGYA MARK NA KHONNA
  10D24..10D27  ; Diacritic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10D4E         ; Diacritic # Lm       GARAY VOWEL LENGTH MARK
+ 10D69..10D6D  ; Diacritic # Mn   [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
  10EFD..10EFF  ; Diacritic # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
  10F46..10F50  ; Diacritic # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
  10F82..10F85  ; Diacritic # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
*************** FFE3          ; Diacritic # Sk       FUL
*** 1055,1064 ****
  11235         ; Diacritic # Mc       KHOJKI SIGN VIRAMA
  11236         ; Diacritic # Mn       KHOJKI SIGN NUKTA
  112E9..112EA  ; Diacritic # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
! 1133C         ; Diacritic # Mn       GRANTHA SIGN NUKTA
  1134D         ; Diacritic # Mc       GRANTHA SIGN VIRAMA
  11366..1136C  ; Diacritic # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; Diacritic # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
  11442         ; Diacritic # Mn       NEWA SIGN VIRAMA
  11446         ; Diacritic # Mn       NEWA SIGN NUKTA
  114C2..114C3  ; Diacritic # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
--- 1090,1105 ----
  11235         ; Diacritic # Mc       KHOJKI SIGN VIRAMA
  11236         ; Diacritic # Mn       KHOJKI SIGN NUKTA
  112E9..112EA  ; Diacritic # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
! 1133B..1133C  ; Diacritic # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
  1134D         ; Diacritic # Mc       GRANTHA SIGN VIRAMA
  11366..1136C  ; Diacritic # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  11370..11374  ; Diacritic # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 113CE         ; Diacritic # Mn       TULU-TIGALARI SIGN VIRAMA
+ 113CF         ; Diacritic # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
+ 113D0         ; Diacritic # Mn       TULU-TIGALARI CONJOINER
+ 113D2         ; Diacritic # Mn       TULU-TIGALARI GEMINATION MARK
+ 113D3         ; Diacritic # Lo       TULU-TIGALARI SIGN PLUTA
+ 113E1..113E2  ; Diacritic # Mn   [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
  11442         ; Diacritic # Mn       NEWA SIGN VIRAMA
  11446         ; Diacritic # Mn       NEWA SIGN NUKTA
  114C2..114C3  ; Diacritic # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
*************** FFE3          ; Diacritic # Sk       FUL
*** 1079,1087 ****
--- 1120,1133 ----
  11D42         ; Diacritic # Mn       MASARAM GONDI SIGN NUKTA
  11D44..11D45  ; Diacritic # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
  11D97         ; Diacritic # Mn       GUNJALA GONDI VIRAMA
+ 11F41         ; Diacritic # Mc       KAWI SIGN KILLER
+ 11F42         ; Diacritic # Mn       KAWI CONJOINER
+ 11F5A         ; Diacritic # Mn       KAWI SIGN NUKTA
  13447..13455  ; Diacritic # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 1612F         ; Diacritic # Mn       GURUNG KHEMA SIGN THOLHOMA
  16AF0..16AF4  ; Diacritic # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  16B30..16B36  ; Diacritic # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+ 16D6B..16D6C  ; Diacritic # Lm   [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
  16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
  16F93..16F9F  ; Diacritic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
  16FF0..16FF1  ; Diacritic # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
*************** FFE3          ; Diacritic # Sk       FUL
*** 1099,1109 ****
  1E130..1E136  ; Diacritic # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
  1E2AE         ; Diacritic # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Diacritic # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
  1E8D0..1E8D6  ; Diacritic # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E946  ; Diacritic # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
  1E948..1E94A  ; Diacritic # Mn   [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
  
! # Total code points: 1144
  
  # ================================================
  
--- 1145,1156 ----
  1E130..1E136  ; Diacritic # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
  1E2AE         ; Diacritic # Mn       TOTO SIGN RISING TONE
  1E2EC..1E2EF  ; Diacritic # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+ 1E5EE..1E5EF  ; Diacritic # Mn   [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
  1E8D0..1E8D6  ; Diacritic # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  1E944..1E946  ; Diacritic # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
  1E948..1E94A  ; Diacritic # Mn   [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
  
! # Total code points: 1178
  
  # ================================================
  
*************** FFE3          ; Diacritic # Sk       FUL
*** 1111,1116 ****
--- 1158,1165 ----
  02D0..02D1    ; Extender # Lm   [2] MODIFIER LETTER TRIANGULAR COLON..MODIFIER LETTER HALF TRIANGULAR COLON
  0640          ; Extender # Lm       ARABIC TATWEEL
  07FA          ; Extender # Lm       NKO LAJANYALAN
+ 0A71          ; Extender # Mn       GURMUKHI ADDAK
+ 0AFB          ; Extender # Mn       GUJARATI SIGN SHADDA
  0B55          ; Extender # Mn       ORIYA SIGN OVERLINE
  0E46          ; Extender # Lm       THAI CHARACTER MAIYAMOK
  0EC6          ; Extender # Lm       LAO KO LA
*************** AADD          ; Extender # Lm       TAI
*** 1132,1147 ****
  AAF3..AAF4    ; Extender # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
  FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
  10781..10782  ; Extender # Lm   [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
  1135D         ; Extender # Lo       GRANTHA SIGN PLUTA
  115C6..115C8  ; Extender # Po   [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
  11A98         ; Extender # Mn       SOYOMBO GEMINATION MARK
  16B42..16B43  ; Extender # Lm   [2] PAHAWH HMONG SIGN VOS NRUA..PAHAWH HMONG SIGN IB YAM
  16FE0..16FE1  ; Extender # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; Extender # Lm       OLD CHINESE ITERATION MARK
  1E13C..1E13D  ; Extender # Lm   [2] NYIAKENG PUACHUE HMONG SIGN XW XW..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
  1E944..1E946  ; Extender # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
  
! # Total code points: 50
  
  # ================================================
  
--- 1181,1203 ----
  AAF3..AAF4    ; Extender # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
  FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
  10781..10782  ; Extender # Lm   [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+ 10D4E         ; Extender # Lm       GARAY VOWEL LENGTH MARK
+ 10D6A         ; Extender # Mn       GARAY CONSONANT GEMINATION MARK
+ 10D6F         ; Extender # Lm       GARAY REDUPLICATION MARK
+ 11237         ; Extender # Mn       KHOJKI SIGN SHADDA
  1135D         ; Extender # Lo       GRANTHA SIGN PLUTA
+ 113D2         ; Extender # Mn       TULU-TIGALARI GEMINATION MARK
+ 113D3         ; Extender # Lo       TULU-TIGALARI SIGN PLUTA
  115C6..115C8  ; Extender # Po   [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
  11A98         ; Extender # Mn       SOYOMBO GEMINATION MARK
  16B42..16B43  ; Extender # Lm   [2] PAHAWH HMONG SIGN VOS NRUA..PAHAWH HMONG SIGN IB YAM
  16FE0..16FE1  ; Extender # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; Extender # Lm       OLD CHINESE ITERATION MARK
  1E13C..1E13D  ; Extender # Lm   [2] NYIAKENG PUACHUE HMONG SIGN XW XW..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+ 1E5EF         ; Extender # Mn       OL ONAL SIGN IKIR
  1E944..1E946  ; Extender # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
  
! # Total code points: 59
  
  # ================================================
  
*************** FFFFE..FFFFF  ; Noncharacter_Code_Point
*** 1217,1243 ****
  0B57          ; Other_Grapheme_Extend # Mc       ORIYA AU LENGTH MARK
  0BBE          ; Other_Grapheme_Extend # Mc       TAMIL VOWEL SIGN AA
  0BD7          ; Other_Grapheme_Extend # Mc       TAMIL AU LENGTH MARK
  0CC2          ; Other_Grapheme_Extend # Mc       KANNADA VOWEL SIGN UU
  0CD5..0CD6    ; Other_Grapheme_Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
  0D3E          ; Other_Grapheme_Extend # Mc       MALAYALAM VOWEL SIGN AA
  0D57          ; Other_Grapheme_Extend # Mc       MALAYALAM AU LENGTH MARK
  0DCF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
  0DDF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
  1B35          ; Other_Grapheme_Extend # Mc       BALINESE VOWEL SIGN TEDUNG
  200C          ; Other_Grapheme_Extend # Cf       ZERO WIDTH NON-JOINER
  302E..302F    ; Other_Grapheme_Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
  FF9E..FF9F    ; Other_Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
  1133E         ; Other_Grapheme_Extend # Mc       GRANTHA VOWEL SIGN AA
  11357         ; Other_Grapheme_Extend # Mc       GRANTHA AU LENGTH MARK
  114B0         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN AA
  114BD         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; Other_Grapheme_Extend # Mc       SIDDHAM VOWEL SIGN AA
  11930         ; Other_Grapheme_Extend # Mc       DIVES AKURU VOWEL SIGN AA
! 1D165         ; Other_Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
! 1D16E..1D172  ; Other_Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
  E0020..E007F  ; Other_Grapheme_Extend # Cf  [96] TAG SPACE..CANCEL TAG
  
! # Total code points: 127
  
  # ================================================
  
--- 1273,1323 ----
  0B57          ; Other_Grapheme_Extend # Mc       ORIYA AU LENGTH MARK
  0BBE          ; Other_Grapheme_Extend # Mc       TAMIL VOWEL SIGN AA
  0BD7          ; Other_Grapheme_Extend # Mc       TAMIL AU LENGTH MARK
+ 0CC0          ; Other_Grapheme_Extend # Mc       KANNADA VOWEL SIGN II
  0CC2          ; Other_Grapheme_Extend # Mc       KANNADA VOWEL SIGN UU
+ 0CC7..0CC8    ; Other_Grapheme_Extend # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; Other_Grapheme_Extend # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CD5..0CD6    ; Other_Grapheme_Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
  0D3E          ; Other_Grapheme_Extend # Mc       MALAYALAM VOWEL SIGN AA
  0D57          ; Other_Grapheme_Extend # Mc       MALAYALAM AU LENGTH MARK
  0DCF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
  0DDF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
+ 1715          ; Other_Grapheme_Extend # Mc       TAGALOG SIGN PAMUDPOD
+ 1734          ; Other_Grapheme_Extend # Mc       HANUNOO SIGN PAMUDPOD
  1B35          ; Other_Grapheme_Extend # Mc       BALINESE VOWEL SIGN TEDUNG
+ 1B3B          ; Other_Grapheme_Extend # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
+ 1B3D          ; Other_Grapheme_Extend # Mc       BALINESE VOWEL SIGN LA LENGA TEDUNG
+ 1B43..1B44    ; Other_Grapheme_Extend # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+ 1BAA          ; Other_Grapheme_Extend # Mc       SUNDANESE SIGN PAMAAEH
+ 1BF2..1BF3    ; Other_Grapheme_Extend # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
  200C          ; Other_Grapheme_Extend # Cf       ZERO WIDTH NON-JOINER
  302E..302F    ; Other_Grapheme_Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+ A953          ; Other_Grapheme_Extend # Mc       REJANG VIRAMA
+ A9C0          ; Other_Grapheme_Extend # Mc       JAVANESE PANGKON
  FF9E..FF9F    ; Other_Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+ 111C0         ; Other_Grapheme_Extend # Mc       SHARADA SIGN VIRAMA
+ 11235         ; Other_Grapheme_Extend # Mc       KHOJKI SIGN VIRAMA
  1133E         ; Other_Grapheme_Extend # Mc       GRANTHA VOWEL SIGN AA
+ 1134D         ; Other_Grapheme_Extend # Mc       GRANTHA SIGN VIRAMA
  11357         ; Other_Grapheme_Extend # Mc       GRANTHA AU LENGTH MARK
+ 113B8         ; Other_Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN AA
+ 113C2         ; Other_Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN EE
+ 113C5         ; Other_Grapheme_Extend # Mc       TULU-TIGALARI VOWEL SIGN AI
+ 113C7..113C9  ; Other_Grapheme_Extend # Mc   [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
+ 113CF         ; Other_Grapheme_Extend # Mc       TULU-TIGALARI SIGN LOOPED VIRAMA
  114B0         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN AA
  114BD         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
  115AF         ; Other_Grapheme_Extend # Mc       SIDDHAM VOWEL SIGN AA
+ 116B6         ; Other_Grapheme_Extend # Mc       TAKRI SIGN VIRAMA
  11930         ; Other_Grapheme_Extend # Mc       DIVES AKURU VOWEL SIGN AA
! 1193D         ; Other_Grapheme_Extend # Mc       DIVES AKURU SIGN HALANTA
! 11F41         ; Other_Grapheme_Extend # Mc       KAWI SIGN KILLER
! 16FF0..16FF1  ; Other_Grapheme_Extend # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 1D165..1D166  ; Other_Grapheme_Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
! 1D16D..1D172  ; Other_Grapheme_Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
  E0020..E007F  ; Other_Grapheme_Extend # Cf  [96] TAG SPACE..CANCEL TAG
  
! # Total code points: 160
  
  # ================================================
  
*************** FF65          ; Other_ID_Continue # Po
*** 1462,1474 ****
  1809          ; Sentence_Terminal # Po       MONGOLIAN MANCHU FULL STOP
  1944..1945    ; Sentence_Terminal # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
  1AA8..1AAB    ; Sentence_Terminal # Po   [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
  1B5A..1B5B    ; Sentence_Terminal # Po   [2] BALINESE PANTI..BALINESE PAMADA
  1B5E..1B5F    ; Sentence_Terminal # Po   [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN
! 1B7D..1B7E    ; Sentence_Terminal # Po   [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
  1C3B..1C3C    ; Sentence_Terminal # Po   [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL
  1C7E..1C7F    ; Sentence_Terminal # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
  203C..203D    ; Sentence_Terminal # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
  2047..2049    ; Sentence_Terminal # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
  2E2E          ; Sentence_Terminal # Po       REVERSED QUESTION MARK
  2E3C          ; Sentence_Terminal # Po       STENOGRAPHIC FULL STOP
  2E53..2E54    ; Sentence_Terminal # Po   [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
--- 1542,1557 ----
  1809          ; Sentence_Terminal # Po       MONGOLIAN MANCHU FULL STOP
  1944..1945    ; Sentence_Terminal # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
  1AA8..1AAB    ; Sentence_Terminal # Po   [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
+ 1B4E..1B4F    ; Sentence_Terminal # Po   [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
  1B5A..1B5B    ; Sentence_Terminal # Po   [2] BALINESE PANTI..BALINESE PAMADA
  1B5E..1B5F    ; Sentence_Terminal # Po   [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN
! 1B7D..1B7F    ; Sentence_Terminal # Po   [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
  1C3B..1C3C    ; Sentence_Terminal # Po   [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL
  1C7E..1C7F    ; Sentence_Terminal # Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+ 2024          ; Sentence_Terminal # Po       ONE DOT LEADER
  203C..203D    ; Sentence_Terminal # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
  2047..2049    ; Sentence_Terminal # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+ 2CF9..2CFB    ; Sentence_Terminal # Po   [3] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN INDIRECT QUESTION MARK
  2E2E          ; Sentence_Terminal # Po       REVERSED QUESTION MARK
  2E3C          ; Sentence_Terminal # Po       STENOGRAPHIC FULL STOP
  2E53..2E54    ; Sentence_Terminal # Po   [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
*************** A9C8..A9C9    ; Sentence_Terminal # Po
*** 1484,1489 ****
--- 1567,1574 ----
  AA5D..AA5F    ; Sentence_Terminal # Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
  AAF0..AAF1    ; Sentence_Terminal # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
  ABEB          ; Sentence_Terminal # Po       MEETEI MAYEK CHEIKHEI
+ FE12          ; Sentence_Terminal # Po       PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+ FE15..FE16    ; Sentence_Terminal # Po   [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
  FE52          ; Sentence_Terminal # Po       SMALL FULL STOP
  FE56..FE57    ; Sentence_Terminal # Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
  FF01          ; Sentence_Terminal # Po       FULLWIDTH EXCLAMATION MARK
*************** FF61          ; Sentence_Terminal # Po
*** 1502,1507 ****
--- 1587,1593 ----
  11238..11239  ; Sentence_Terminal # Po   [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
  1123B..1123C  ; Sentence_Terminal # Po   [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
  112A9         ; Sentence_Terminal # Po       MULTANI SECTION MARK
+ 113D4..113D5  ; Sentence_Terminal # Po   [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
  1144B..1144C  ; Sentence_Terminal # Po   [2] NEWA DANDA..NEWA DOUBLE DANDA
  115C2..115C3  ; Sentence_Terminal # Po   [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
  115C9..115D7  ; Sentence_Terminal # Po  [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
*************** FF61          ; Sentence_Terminal # Po
*** 1518,1528 ****
  16AF5         ; Sentence_Terminal # Po       BASSA VAH FULL STOP
  16B37..16B38  ; Sentence_Terminal # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
  16B44         ; Sentence_Terminal # Po       PAHAWH HMONG SIGN XAUS
  16E98         ; Sentence_Terminal # Po       MEDEFAIDRIN FULL STOP
  1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
  
! # Total code points: 156
  
  # ================================================
  
--- 1604,1615 ----
  16AF5         ; Sentence_Terminal # Po       BASSA VAH FULL STOP
  16B37..16B38  ; Sentence_Terminal # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
  16B44         ; Sentence_Terminal # Po       PAHAWH HMONG SIGN XAUS
+ 16D6E..16D6F  ; Sentence_Terminal # Po   [2] KIRAT RAI DANDA..KIRAT RAI DOUBLE DANDA
  16E98         ; Sentence_Terminal # Po       MEDEFAIDRIN FULL STOP
  1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
  
! # Total code points: 170
  
  # ================================================
  
*************** E0100..E01EF  ; Variation_Selector # Mn
*** 1640,1647 ****
  239B..23B3    ; Pattern_Syntax # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
  23B4..23DB    ; Pattern_Syntax # So  [40] TOP SQUARE BRACKET..FUSE
  23DC..23E1    ; Pattern_Syntax # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..2426    ; Pattern_Syntax # So  [69] WHITE TRAPEZIUM..SYMBOL FOR SUBSTITUTE FORM TWO
! 2427..243F    ; Pattern_Syntax # Cn  [25] <reserved-2427>..<reserved-243F>
  2440..244A    ; Pattern_Syntax # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
  244B..245F    ; Pattern_Syntax # Cn  [21] <reserved-244B>..<reserved-245F>
  2500..25B6    ; Pattern_Syntax # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
--- 1727,1734 ----
  239B..23B3    ; Pattern_Syntax # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
  23B4..23DB    ; Pattern_Syntax # So  [40] TOP SQUARE BRACKET..FUSE
  23DC..23E1    ; Pattern_Syntax # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..2429    ; Pattern_Syntax # So  [72] WHITE TRAPEZIUM..SYMBOL FOR DELETE MEDIUM SHADE FORM
! 242A..243F    ; Pattern_Syntax # Cn  [22] <reserved-242A>..<reserved-243F>
  2440..244A    ; Pattern_Syntax # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
  244B..245F    ; Pattern_Syntax # Cn  [21] <reserved-244B>..<reserved-245F>
  2500..25B6    ; Pattern_Syntax # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
*************** FE45..FE46    ; Pattern_Syntax # Po   [2
*** 1824,1827 ****
--- 1911,1928 ----
  
  # Total code points: 26
  
+ # ================================================
+ 
+ 0654..0655    ; Modifier_Combining_Mark # Mn   [2] ARABIC HAMZA ABOVE..ARABIC HAMZA BELOW
+ 0658          ; Modifier_Combining_Mark # Mn       ARABIC MARK NOON GHUNNA
+ 06DC          ; Modifier_Combining_Mark # Mn       ARABIC SMALL HIGH SEEN
+ 06E3          ; Modifier_Combining_Mark # Mn       ARABIC SMALL LOW SEEN
+ 06E7..06E8    ; Modifier_Combining_Mark # Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+ 08CA..08CB    ; Modifier_Combining_Mark # Mn   [2] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW
+ 08CD..08CF    ; Modifier_Combining_Mark # Mn   [3] ARABIC SMALL HIGH ZAH..ARABIC LARGE ROUND DOT BELOW
+ 08D3          ; Modifier_Combining_Mark # Mn       ARABIC SMALL LOW WAW
+ 08F3          ; Modifier_Combining_Mark # Mn       ARABIC SMALL HIGH WAW
+ 
+ # Total code points: 14
+ 
  # EOF
diff -Nrcpad gcc-14.2.0/contrib/unicode/README gcc-15.1.0/contrib/unicode/README
*** gcc-14.2.0/contrib/unicode/README	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/README	Fri Apr 25 08:17:59 2025
*************** ftp://ftp.unicode.org/Public/UNIDATA/Der
*** 16,25 ****
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt
  
! Two additional files are needed for lookup tables in libstdc++:
  
  ftp://ftp.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
  ftp://ftp.unicode.org/Public/UNIDATA/emoji/emoji-data.txt
  
  All these files have been added to source control in this directory;
  please see unicode-license.txt for the relevant copyright information.
--- 16,26 ----
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt
  
! Three additional files are needed for lookup tables in libstdc++:
  
  ftp://ftp.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
  ftp://ftp.unicode.org/Public/UNIDATA/emoji/emoji-data.txt
+ ftp://ftp.unicode.org/Public/UNIDATA/extracted/DerivedGeneralCategory.txt
  
  All these files have been added to source control in this directory;
  please see unicode-license.txt for the relevant copyright information.
*************** localedata/unicode-gen/unicode_utils.py
*** 35,41 ****
  localedata/unicode-gen/utf8_gen.py
  
  And the most recent versions added to GCC are from glibc git commit:
! 71de3aead9fffe89556e80ebc94aa918d8ee7bca
  
  The script gen_wcwidth.py found here contains the GCC-specific code to
  map glibc's output to the lookup tables we require.  This script should not need
--- 36,42 ----
  localedata/unicode-gen/utf8_gen.py
  
  And the most recent versions added to GCC are from glibc git commit:
! 064c708c78cc2a6b5802dce73108fc0c1c6bfc80
  
  The script gen_wcwidth.py found here contains the GCC-specific code to
  map glibc's output to the lookup tables we require.  This script should not need
*************** The procedure to update GCC's Unicode su
*** 52,58 ****
  
  3.  Run ./gen_wcwidth.py X.Y > ../../libcpp/generated_cpp_wcwidth.h
      (where X.Y is the version of the Unicode standard corresponding to the
!     Unicode data files being used, most recently, 15.1.0).
  
  4.  Update Unicode Copyright years in libcpp/makeucnid.cc and in
      libcpp/makeuname2c.cc up to the year in which the Unicode
--- 53,59 ----
  
  3.  Run ./gen_wcwidth.py X.Y > ../../libcpp/generated_cpp_wcwidth.h
      (where X.Y is the version of the Unicode standard corresponding to the
!     Unicode data files being used, most recently, 16.0.0).
  
  4.  Update Unicode Copyright years in libcpp/makeucnid.cc and in
      libcpp/makeuname2c.cc up to the year in which the Unicode
*************** The procedure to update GCC's Unicode su
*** 67,73 ****
  	> ../../libcpp/ucnid.h
  
  7.  Read the corresponding Unicode's standard and update correspondingly
!     generated_ranges table in libcpp/makeuname2c.cc (in Unicode 15 all
      the needed information was in Table 4-8).
  
  8.  Compile makeuname2c, e.g. with:
--- 68,74 ----
  	> ../../libcpp/ucnid.h
  
  7.  Read the corresponding Unicode's standard and update correspondingly
!     generated_ranges table in libcpp/makeuname2c.cc (in Unicode 16 all
      the needed information was in Table 4-8).
  
  8.  Compile makeuname2c, e.g. with:
diff -Nrcpad gcc-14.2.0/contrib/unicode/UnicodeData.txt gcc-15.1.0/contrib/unicode/UnicodeData.txt
*** gcc-14.2.0/contrib/unicode/UnicodeData.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/UnicodeData.txt	Fri Apr 25 08:17:59 2025
***************
*** 409,415 ****
  0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
  0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
  019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
! 019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
  019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
  019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
  019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
--- 409,415 ----
  0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
  0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
  019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
! 019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;A7DC;;A7DC
  019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
  019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
  019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
***************
*** 610,616 ****
  0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;A7AC;;A7AC
  0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
  0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
! 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
  0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D
  0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA
  0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
--- 610,616 ----
  0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;A7AC;;A7AC
  0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
  0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
! 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;A7CB;;A7CB
  0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D
  0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA
  0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
***************
*** 2123,2128 ****
--- 2123,2129 ----
  088E;ARABIC VERTICAL TAIL;Lo;0;AL;;;;;N;;;;;
  0890;ARABIC POUND MARK ABOVE;Cf;0;AN;;;;;N;;;;;
  0891;ARABIC PIASTRE MARK ABOVE;Cf;0;AN;;;;;N;;;;;
+ 0897;ARABIC PEPET;Mn;230;NSM;;;;;N;;;;;
  0898;ARABIC SMALL HIGH WORD AL-JUZ;Mn;230;NSM;;;;;N;;;;;
  0899;ARABIC SMALL LOW WORD ISHMAAM;Mn;220;NSM;;;;;N;;;;;
  089A;ARABIC SMALL LOW WORD IMAALA;Mn;220;NSM;;;;;N;;;;;
***************
*** 6213,6218 ****
--- 6214,6221 ----
  1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
  1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
  1B4C;BALINESE LETTER ARCHAIC JNYA;Lo;0;L;;;;;N;;;;;
+ 1B4E;BALINESE INVERTED CARIK SIKI;Po;0;L;;;;;N;;;;;
+ 1B4F;BALINESE INVERTED CARIK PAREREN;Po;0;L;;;;;N;;;;;
  1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
  1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
  1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
***************
*** 6260,6265 ****
--- 6263,6269 ----
  1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
  1B7D;BALINESE PANTI LANTANG;Po;0;L;;;;;N;;;;;
  1B7E;BALINESE PAMADA LANTANG;Po;0;L;;;;;N;;;;;
+ 1B7F;BALINESE PANTI BAWAK;Po;0;L;;;;;N;;;;;
  1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;;
  1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;;
  1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;;
***************
*** 6511,6516 ****
--- 6515,6522 ----
  1C86;CYRILLIC SMALL LETTER TALL HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
  1C87;CYRILLIC SMALL LETTER TALL YAT;Ll;0;L;;;;;N;;;0462;;0462
  1C88;CYRILLIC SMALL LETTER UNBLENDED UK;Ll;0;L;;;;;N;;;A64A;;A64A
+ 1C89;CYRILLIC CAPITAL LETTER TJE;Lu;0;L;;;;;N;;;;1C8A;
+ 1C8A;CYRILLIC SMALL LETTER TJE;Ll;0;L;;;;;N;;;1C89;;1C89
  1C90;GEORGIAN MTAVRULI CAPITAL LETTER AN;Lu;0;L;;;;;N;;;;10D0;
  1C91;GEORGIAN MTAVRULI CAPITAL LETTER BAN;Lu;0;L;;;;;N;;;;10D1;
  1C92;GEORGIAN MTAVRULI CAPITAL LETTER GAN;Lu;0;L;;;;;N;;;;10D2;
***************
*** 7933,7939 ****
  226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
  226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
  226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
! 226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
  226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
  226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
  2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
--- 7939,7945 ----
  226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
  226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
  226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
! 226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;Y;;;;;
  226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
  226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
  2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
***************
*** 8375,8380 ****
--- 8381,8389 ----
  2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
  2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
  2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+ 2427;SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM;So;0;ON;;;;;N;;;;;
+ 2428;SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM;So;0;ON;;;;;N;;;;;
+ 2429;SYMBOL FOR DELETE MEDIUM SHADE FORM;So;0;ON;;;;;N;;;;;
  2440;OCR HOOK;So;0;ON;;;;;N;;;;;
  2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
  2442;OCR FORK;So;0;ON;;;;;N;;;;;
***************
*** 11709,11714 ****
--- 11718,11725 ----
  31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
  31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
  31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
+ 31E4;CJK STROKE HXG;So;0;ON;;;;;N;;;;;
+ 31E5;CJK STROKE SZP;So;0;ON;;;;;N;;;;;
  31EF;IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION;So;0;ON;;;;;N;;;;;
  31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
  31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
*************** A7C7;LATIN CAPITAL LETTER D WITH SHORT S
*** 14260,14265 ****
--- 14271,14279 ----
  A7C8;LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C7;;A7C7
  A7C9;LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY;Lu;0;L;;;;;N;;;;A7CA;
  A7CA;LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C9;;A7C9
+ A7CB;LATIN CAPITAL LETTER RAMS HORN;Lu;0;L;;;;;N;;;;0264;
+ A7CC;LATIN CAPITAL LETTER S WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A7CD;
+ A7CD;LATIN SMALL LETTER S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A7CC;;A7CC
  A7D0;LATIN CAPITAL LETTER CLOSED INSULAR G;Lu;0;L;;;;;N;;;;A7D1;
  A7D1;LATIN SMALL LETTER CLOSED INSULAR G;Ll;0;L;;;;;N;;;A7D0;;A7D0
  A7D3;LATIN SMALL LETTER DOUBLE THORN;Ll;0;L;;;;;N;;;;;
*************** A7D6;LATIN CAPITAL LETTER MIDDLE SCOTS S
*** 14268,14273 ****
--- 14282,14290 ----
  A7D7;LATIN SMALL LETTER MIDDLE SCOTS S;Ll;0;L;;;;;N;;;A7D6;;A7D6
  A7D8;LATIN CAPITAL LETTER SIGMOID S;Lu;0;L;;;;;N;;;;A7D9;
  A7D9;LATIN SMALL LETTER SIGMOID S;Ll;0;L;;;;;N;;;A7D8;;A7D8
+ A7DA;LATIN CAPITAL LETTER LAMBDA;Lu;0;L;;;;;N;;;;A7DB;
+ A7DB;LATIN SMALL LETTER LAMBDA;Ll;0;L;;;;;N;;;A7DA;;A7DA
+ A7DC;LATIN CAPITAL LETTER LAMBDA WITH STROKE;Lu;0;L;;;;;N;;;;019B;
  A7F2;MODIFIER LETTER CAPITAL C;Lm;0;L;<super> 0043;;;;N;;;;;
  A7F3;MODIFIER LETTER CAPITAL F;Lm;0;L;<super> 0046;;;;N;;;;;
  A7F4;MODIFIER LETTER CAPITAL Q;Lm;0;L;<super> 0051;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 18001,18006 ****
--- 18018,18075 ----
  105B9;VITHKUQI SMALL LETTER XE;Ll;0;L;;;;;N;;;10592;;10592
  105BB;VITHKUQI SMALL LETTER Y;Ll;0;L;;;;;N;;;10594;;10594
  105BC;VITHKUQI SMALL LETTER ZE;Ll;0;L;;;;;N;;;10595;;10595
+ 105C0;TODHRI LETTER A;Lo;0;L;;;;;N;;;;;
+ 105C1;TODHRI LETTER AS;Lo;0;L;;;;;N;;;;;
+ 105C2;TODHRI LETTER BA;Lo;0;L;;;;;N;;;;;
+ 105C3;TODHRI LETTER MBA;Lo;0;L;;;;;N;;;;;
+ 105C4;TODHRI LETTER CA;Lo;0;L;;;;;N;;;;;
+ 105C5;TODHRI LETTER CHA;Lo;0;L;;;;;N;;;;;
+ 105C6;TODHRI LETTER DA;Lo;0;L;;;;;N;;;;;
+ 105C7;TODHRI LETTER NDA;Lo;0;L;;;;;N;;;;;
+ 105C8;TODHRI LETTER DHA;Lo;0;L;;;;;N;;;;;
+ 105C9;TODHRI LETTER EI;Lo;0;L;105D2 0307;;;;N;;;;;
+ 105CA;TODHRI LETTER E;Lo;0;L;;;;;N;;;;;
+ 105CB;TODHRI LETTER FA;Lo;0;L;;;;;N;;;;;
+ 105CC;TODHRI LETTER GA;Lo;0;L;;;;;N;;;;;
+ 105CD;TODHRI LETTER NGA;Lo;0;L;;;;;N;;;;;
+ 105CE;TODHRI LETTER GJA;Lo;0;L;;;;;N;;;;;
+ 105CF;TODHRI LETTER NGJA;Lo;0;L;;;;;N;;;;;
+ 105D0;TODHRI LETTER HA;Lo;0;L;;;;;N;;;;;
+ 105D1;TODHRI LETTER HJA;Lo;0;L;;;;;N;;;;;
+ 105D2;TODHRI LETTER I;Lo;0;L;;;;;N;;;;;
+ 105D3;TODHRI LETTER JA;Lo;0;L;;;;;N;;;;;
+ 105D4;TODHRI LETTER KA;Lo;0;L;;;;;N;;;;;
+ 105D5;TODHRI LETTER LA;Lo;0;L;;;;;N;;;;;
+ 105D6;TODHRI LETTER LLA;Lo;0;L;;;;;N;;;;;
+ 105D7;TODHRI LETTER MA;Lo;0;L;;;;;N;;;;;
+ 105D8;TODHRI LETTER NA;Lo;0;L;;;;;N;;;;;
+ 105D9;TODHRI LETTER NJAN;Lo;0;L;;;;;N;;;;;
+ 105DA;TODHRI LETTER O;Lo;0;L;;;;;N;;;;;
+ 105DB;TODHRI LETTER PA;Lo;0;L;;;;;N;;;;;
+ 105DC;TODHRI LETTER QA;Lo;0;L;;;;;N;;;;;
+ 105DD;TODHRI LETTER RA;Lo;0;L;;;;;N;;;;;
+ 105DE;TODHRI LETTER RRA;Lo;0;L;;;;;N;;;;;
+ 105DF;TODHRI LETTER SA;Lo;0;L;;;;;N;;;;;
+ 105E0;TODHRI LETTER SHA;Lo;0;L;;;;;N;;;;;
+ 105E1;TODHRI LETTER SHTA;Lo;0;L;;;;;N;;;;;
+ 105E2;TODHRI LETTER TA;Lo;0;L;;;;;N;;;;;
+ 105E3;TODHRI LETTER THA;Lo;0;L;;;;;N;;;;;
+ 105E4;TODHRI LETTER U;Lo;0;L;105DA 0307;;;;N;;;;;
+ 105E5;TODHRI LETTER VA;Lo;0;L;;;;;N;;;;;
+ 105E6;TODHRI LETTER XA;Lo;0;L;;;;;N;;;;;
+ 105E7;TODHRI LETTER NXA;Lo;0;L;;;;;N;;;;;
+ 105E8;TODHRI LETTER XHA;Lo;0;L;;;;;N;;;;;
+ 105E9;TODHRI LETTER NXHA;Lo;0;L;;;;;N;;;;;
+ 105EA;TODHRI LETTER Y;Lo;0;L;;;;;N;;;;;
+ 105EB;TODHRI LETTER JY;Lo;0;L;;;;;N;;;;;
+ 105EC;TODHRI LETTER ZA;Lo;0;L;;;;;N;;;;;
+ 105ED;TODHRI LETTER ZHA;Lo;0;L;;;;;N;;;;;
+ 105EE;TODHRI LETTER GHA;Lo;0;L;;;;;N;;;;;
+ 105EF;TODHRI LETTER STA;Lo;0;L;;;;;N;;;;;
+ 105F0;TODHRI LETTER SKAN;Lo;0;L;;;;;N;;;;;
+ 105F1;TODHRI LETTER KHA;Lo;0;L;;;;;N;;;;;
+ 105F2;TODHRI LETTER PSA;Lo;0;L;;;;;N;;;;;
+ 105F3;TODHRI LETTER OO;Lo;0;L;;;;;N;;;;;
  10600;LINEAR A SIGN AB001;Lo;0;L;;;;;N;;;;;
  10601;LINEAR A SIGN AB002;Lo;0;L;;;;;N;;;;;
  10602;LINEAR A SIGN AB003;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 19322,19327 ****
--- 19391,19465 ----
  10D37;HANIFI ROHINGYA DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
  10D38;HANIFI ROHINGYA DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
  10D39;HANIFI ROHINGYA DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+ 10D40;GARAY DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+ 10D41;GARAY DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+ 10D42;GARAY DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+ 10D43;GARAY DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+ 10D44;GARAY DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+ 10D45;GARAY DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+ 10D46;GARAY DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+ 10D47;GARAY DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+ 10D48;GARAY DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+ 10D49;GARAY DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+ 10D4A;GARAY VOWEL SIGN A;Lo;0;R;;;;;N;;;;;
+ 10D4B;GARAY VOWEL SIGN I;Lo;0;R;;;;;N;;;;;
+ 10D4C;GARAY VOWEL SIGN O;Lo;0;R;;;;;N;;;;;
+ 10D4D;GARAY VOWEL SIGN EE;Lo;0;R;;;;;N;;;;;
+ 10D4E;GARAY VOWEL LENGTH MARK;Lm;0;R;;;;;N;;;;;
+ 10D4F;GARAY SUKUN;Lo;0;R;;;;;N;;;;;
+ 10D50;GARAY CAPITAL LETTER A;Lu;0;R;;;;;N;;;;10D70;
+ 10D51;GARAY CAPITAL LETTER CA;Lu;0;R;;;;;N;;;;10D71;
+ 10D52;GARAY CAPITAL LETTER MA;Lu;0;R;;;;;N;;;;10D72;
+ 10D53;GARAY CAPITAL LETTER KA;Lu;0;R;;;;;N;;;;10D73;
+ 10D54;GARAY CAPITAL LETTER BA;Lu;0;R;;;;;N;;;;10D74;
+ 10D55;GARAY CAPITAL LETTER JA;Lu;0;R;;;;;N;;;;10D75;
+ 10D56;GARAY CAPITAL LETTER SA;Lu;0;R;;;;;N;;;;10D76;
+ 10D57;GARAY CAPITAL LETTER WA;Lu;0;R;;;;;N;;;;10D77;
+ 10D58;GARAY CAPITAL LETTER LA;Lu;0;R;;;;;N;;;;10D78;
+ 10D59;GARAY CAPITAL LETTER GA;Lu;0;R;;;;;N;;;;10D79;
+ 10D5A;GARAY CAPITAL LETTER DA;Lu;0;R;;;;;N;;;;10D7A;
+ 10D5B;GARAY CAPITAL LETTER XA;Lu;0;R;;;;;N;;;;10D7B;
+ 10D5C;GARAY CAPITAL LETTER YA;Lu;0;R;;;;;N;;;;10D7C;
+ 10D5D;GARAY CAPITAL LETTER TA;Lu;0;R;;;;;N;;;;10D7D;
+ 10D5E;GARAY CAPITAL LETTER RA;Lu;0;R;;;;;N;;;;10D7E;
+ 10D5F;GARAY CAPITAL LETTER NYA;Lu;0;R;;;;;N;;;;10D7F;
+ 10D60;GARAY CAPITAL LETTER FA;Lu;0;R;;;;;N;;;;10D80;
+ 10D61;GARAY CAPITAL LETTER NA;Lu;0;R;;;;;N;;;;10D81;
+ 10D62;GARAY CAPITAL LETTER PA;Lu;0;R;;;;;N;;;;10D82;
+ 10D63;GARAY CAPITAL LETTER HA;Lu;0;R;;;;;N;;;;10D83;
+ 10D64;GARAY CAPITAL LETTER OLD KA;Lu;0;R;;;;;N;;;;10D84;
+ 10D65;GARAY CAPITAL LETTER OLD NA;Lu;0;R;;;;;N;;;;10D85;
+ 10D69;GARAY VOWEL SIGN E;Mn;230;NSM;;;;;N;;;;;
+ 10D6A;GARAY CONSONANT GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
+ 10D6B;GARAY COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 10D6C;GARAY COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 10D6D;GARAY CONSONANT NASALIZATION MARK;Mn;230;NSM;;;;;N;;;;;
+ 10D6E;GARAY HYPHEN;Pd;0;ON;;;;;N;;;;;
+ 10D6F;GARAY REDUPLICATION MARK;Lm;0;R;;;;;N;;;;;
+ 10D70;GARAY SMALL LETTER A;Ll;0;R;;;;;N;;;10D50;;10D50
+ 10D71;GARAY SMALL LETTER CA;Ll;0;R;;;;;N;;;10D51;;10D51
+ 10D72;GARAY SMALL LETTER MA;Ll;0;R;;;;;N;;;10D52;;10D52
+ 10D73;GARAY SMALL LETTER KA;Ll;0;R;;;;;N;;;10D53;;10D53
+ 10D74;GARAY SMALL LETTER BA;Ll;0;R;;;;;N;;;10D54;;10D54
+ 10D75;GARAY SMALL LETTER JA;Ll;0;R;;;;;N;;;10D55;;10D55
+ 10D76;GARAY SMALL LETTER SA;Ll;0;R;;;;;N;;;10D56;;10D56
+ 10D77;GARAY SMALL LETTER WA;Ll;0;R;;;;;N;;;10D57;;10D57
+ 10D78;GARAY SMALL LETTER LA;Ll;0;R;;;;;N;;;10D58;;10D58
+ 10D79;GARAY SMALL LETTER GA;Ll;0;R;;;;;N;;;10D59;;10D59
+ 10D7A;GARAY SMALL LETTER DA;Ll;0;R;;;;;N;;;10D5A;;10D5A
+ 10D7B;GARAY SMALL LETTER XA;Ll;0;R;;;;;N;;;10D5B;;10D5B
+ 10D7C;GARAY SMALL LETTER YA;Ll;0;R;;;;;N;;;10D5C;;10D5C
+ 10D7D;GARAY SMALL LETTER TA;Ll;0;R;;;;;N;;;10D5D;;10D5D
+ 10D7E;GARAY SMALL LETTER RA;Ll;0;R;;;;;N;;;10D5E;;10D5E
+ 10D7F;GARAY SMALL LETTER NYA;Ll;0;R;;;;;N;;;10D5F;;10D5F
+ 10D80;GARAY SMALL LETTER FA;Ll;0;R;;;;;N;;;10D60;;10D60
+ 10D81;GARAY SMALL LETTER NA;Ll;0;R;;;;;N;;;10D61;;10D61
+ 10D82;GARAY SMALL LETTER PA;Ll;0;R;;;;;N;;;10D62;;10D62
+ 10D83;GARAY SMALL LETTER HA;Ll;0;R;;;;;N;;;10D63;;10D63
+ 10D84;GARAY SMALL LETTER OLD KA;Ll;0;R;;;;;N;;;10D64;;10D64
+ 10D85;GARAY SMALL LETTER OLD NA;Ll;0;R;;;;;N;;;10D65;;10D65
+ 10D8E;GARAY PLUS SIGN;Sm;0;R;;;;;N;;;;;
+ 10D8F;GARAY MINUS SIGN;Sm;0;R;;;;;N;;;;;
  10E60;RUMI DIGIT ONE;No;0;AN;;;1;1;N;;;;;
  10E61;RUMI DIGIT TWO;No;0;AN;;;2;2;N;;;;;
  10E62;RUMI DIGIT THREE;No;0;AN;;;3;3;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 19400,19405 ****
--- 19538,19547 ----
  10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;;
  10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;;
  10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;;
+ 10EC2;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;;
+ 10EC3;ARABIC LETTER TAH WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;;
+ 10EC4;ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;;
+ 10EFC;ARABIC COMBINING ALEF OVERLAY;Mn;0;NSM;;;;;N;;;;;
  10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;;
  10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;;
  10EFF;ARABIC SMALL LOW WORD MADDA;Mn;220;NSM;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 20264,20269 ****
--- 20406,20491 ----
  11372;COMBINING GRANTHA LETTER NA;Mn;230;NSM;;;;;N;;;;;
  11373;COMBINING GRANTHA LETTER VI;Mn;230;NSM;;;;;N;;;;;
  11374;COMBINING GRANTHA LETTER PA;Mn;230;NSM;;;;;N;;;;;
+ 11380;TULU-TIGALARI LETTER A;Lo;0;L;;;;;N;;;;;
+ 11381;TULU-TIGALARI LETTER AA;Lo;0;L;;;;;N;;;;;
+ 11382;TULU-TIGALARI LETTER I;Lo;0;L;;;;;N;;;;;
+ 11383;TULU-TIGALARI LETTER II;Lo;0;L;11382 113C9;;;;N;;;;;
+ 11384;TULU-TIGALARI LETTER U;Lo;0;L;;;;;N;;;;;
+ 11385;TULU-TIGALARI LETTER UU;Lo;0;L;11384 113BB;;;;N;;;;;
+ 11386;TULU-TIGALARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+ 11387;TULU-TIGALARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+ 11388;TULU-TIGALARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+ 11389;TULU-TIGALARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+ 1138B;TULU-TIGALARI LETTER EE;Lo;0;L;;;;;N;;;;;
+ 1138E;TULU-TIGALARI LETTER AI;Lo;0;L;1138B 113C2;;;;N;;;;;
+ 11390;TULU-TIGALARI LETTER OO;Lo;0;L;;;;;N;;;;;
+ 11391;TULU-TIGALARI LETTER AU;Lo;0;L;11390 113C9;;;;N;;;;;
+ 11392;TULU-TIGALARI LETTER KA;Lo;0;L;;;;;N;;;;;
+ 11393;TULU-TIGALARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+ 11394;TULU-TIGALARI LETTER GA;Lo;0;L;;;;;N;;;;;
+ 11395;TULU-TIGALARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+ 11396;TULU-TIGALARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+ 11397;TULU-TIGALARI LETTER CA;Lo;0;L;;;;;N;;;;;
+ 11398;TULU-TIGALARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+ 11399;TULU-TIGALARI LETTER JA;Lo;0;L;;;;;N;;;;;
+ 1139A;TULU-TIGALARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+ 1139B;TULU-TIGALARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+ 1139C;TULU-TIGALARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+ 1139D;TULU-TIGALARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+ 1139E;TULU-TIGALARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+ 1139F;TULU-TIGALARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+ 113A0;TULU-TIGALARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+ 113A1;TULU-TIGALARI LETTER TA;Lo;0;L;;;;;N;;;;;
+ 113A2;TULU-TIGALARI LETTER THA;Lo;0;L;;;;;N;;;;;
+ 113A3;TULU-TIGALARI LETTER DA;Lo;0;L;;;;;N;;;;;
+ 113A4;TULU-TIGALARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+ 113A5;TULU-TIGALARI LETTER NA;Lo;0;L;;;;;N;;;;;
+ 113A6;TULU-TIGALARI LETTER PA;Lo;0;L;;;;;N;;;;;
+ 113A7;TULU-TIGALARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+ 113A8;TULU-TIGALARI LETTER BA;Lo;0;L;;;;;N;;;;;
+ 113A9;TULU-TIGALARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+ 113AA;TULU-TIGALARI LETTER MA;Lo;0;L;;;;;N;;;;;
+ 113AB;TULU-TIGALARI LETTER YA;Lo;0;L;;;;;N;;;;;
+ 113AC;TULU-TIGALARI LETTER RA;Lo;0;L;;;;;N;;;;;
+ 113AD;TULU-TIGALARI LETTER LA;Lo;0;L;;;;;N;;;;;
+ 113AE;TULU-TIGALARI LETTER VA;Lo;0;L;;;;;N;;;;;
+ 113AF;TULU-TIGALARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+ 113B0;TULU-TIGALARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+ 113B1;TULU-TIGALARI LETTER SA;Lo;0;L;;;;;N;;;;;
+ 113B2;TULU-TIGALARI LETTER HA;Lo;0;L;;;;;N;;;;;
+ 113B3;TULU-TIGALARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+ 113B4;TULU-TIGALARI LETTER RRA;Lo;0;L;;;;;N;;;;;
+ 113B5;TULU-TIGALARI LETTER LLLA;Lo;0;L;;;;;N;;;;;
+ 113B7;TULU-TIGALARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+ 113B8;TULU-TIGALARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+ 113B9;TULU-TIGALARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+ 113BA;TULU-TIGALARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+ 113BB;TULU-TIGALARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+ 113BC;TULU-TIGALARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+ 113BD;TULU-TIGALARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+ 113BE;TULU-TIGALARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+ 113BF;TULU-TIGALARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+ 113C0;TULU-TIGALARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+ 113C2;TULU-TIGALARI VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+ 113C5;TULU-TIGALARI VOWEL SIGN AI;Mc;0;L;113C2 113C2;;;;N;;;;;
+ 113C7;TULU-TIGALARI VOWEL SIGN OO;Mc;0;L;113C2 113B8;;;;N;;;;;
+ 113C8;TULU-TIGALARI VOWEL SIGN AU;Mc;0;L;113C2 113C9;;;;N;;;;;
+ 113C9;TULU-TIGALARI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+ 113CA;TULU-TIGALARI SIGN CANDRA ANUNASIKA;Mc;0;L;;;;;N;;;;;
+ 113CC;TULU-TIGALARI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+ 113CD;TULU-TIGALARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+ 113CE;TULU-TIGALARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+ 113CF;TULU-TIGALARI SIGN LOOPED VIRAMA;Mc;9;L;;;;;N;;;;;
+ 113D0;TULU-TIGALARI CONJOINER;Mn;9;NSM;;;;;N;;;;;
+ 113D1;TULU-TIGALARI REPHA;Lo;0;L;;;;;N;;;;;
+ 113D2;TULU-TIGALARI GEMINATION MARK;Mn;0;NSM;;;;;N;;;;;
+ 113D3;TULU-TIGALARI SIGN PLUTA;Lo;0;L;;;;;N;;;;;
+ 113D4;TULU-TIGALARI DANDA;Po;0;L;;;;;N;;;;;
+ 113D5;TULU-TIGALARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+ 113D7;TULU-TIGALARI SIGN OM PUSHPIKA;Po;0;L;;;;;N;;;;;
+ 113D8;TULU-TIGALARI SIGN SHRII PUSHPIKA;Po;0;L;;;;;N;;;;;
+ 113E1;TULU-TIGALARI VEDIC TONE SVARITA;Mn;0;NSM;;;;;N;;;;;
+ 113E2;TULU-TIGALARI VEDIC TONE ANUDATTA;Mn;0;NSM;;;;;N;;;;;
  11400;NEWA LETTER A;Lo;0;L;;;;;N;;;;;
  11401;NEWA LETTER AA;Lo;0;L;;;;;N;;;;;
  11402;NEWA LETTER I;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 20695,20700 ****
--- 20917,20942 ----
  116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
  116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
  116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 116D0;MYANMAR PAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 116D1;MYANMAR PAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 116D2;MYANMAR PAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 116D3;MYANMAR PAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 116D4;MYANMAR PAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 116D5;MYANMAR PAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 116D6;MYANMAR PAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 116D7;MYANMAR PAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 116D8;MYANMAR PAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 116D9;MYANMAR PAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 116DA;MYANMAR EASTERN PWO KAREN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 116DB;MYANMAR EASTERN PWO KAREN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 116DC;MYANMAR EASTERN PWO KAREN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 116DD;MYANMAR EASTERN PWO KAREN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 116DE;MYANMAR EASTERN PWO KAREN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 116DF;MYANMAR EASTERN PWO KAREN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 116E0;MYANMAR EASTERN PWO KAREN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 116E1;MYANMAR EASTERN PWO KAREN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 116E2;MYANMAR EASTERN PWO KAREN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 116E3;MYANMAR EASTERN PWO KAREN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
  11700;AHOM LETTER KA;Lo;0;L;;;;;N;;;;;
  11701;AHOM LETTER KHA;Lo;0;L;;;;;N;;;;;
  11702;AHOM LETTER NGA;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 20723,20729 ****
  11719;AHOM LETTER JHA;Lo;0;L;;;;;N;;;;;
  1171A;AHOM LETTER ALTERNATE BA;Lo;0;L;;;;;N;;;;;
  1171D;AHOM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
! 1171E;AHOM CONSONANT SIGN MEDIAL RA;Mn;0;NSM;;;;;N;;;;;
  1171F;AHOM CONSONANT SIGN MEDIAL LIGATING RA;Mn;0;NSM;;;;;N;;;;;
  11720;AHOM VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
  11721;AHOM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
--- 20965,20971 ----
  11719;AHOM LETTER JHA;Lo;0;L;;;;;N;;;;;
  1171A;AHOM LETTER ALTERNATE BA;Lo;0;L;;;;;N;;;;;
  1171D;AHOM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
! 1171E;AHOM CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;;
  1171F;AHOM CONSONANT SIGN MEDIAL LIGATING RA;Mn;0;NSM;;;;;N;;;;;
  11720;AHOM VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
  11721;AHOM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 21279,21284 ****
--- 21521,21570 ----
  11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
  11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
  11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;;
+ 11BC0;SUNUWAR LETTER DEVI;Lo;0;L;;;;;N;;;;;
+ 11BC1;SUNUWAR LETTER TASLA;Lo;0;L;;;;;N;;;;;
+ 11BC2;SUNUWAR LETTER EKO;Lo;0;L;;;;;N;;;;;
+ 11BC3;SUNUWAR LETTER IMAR;Lo;0;L;;;;;N;;;;;
+ 11BC4;SUNUWAR LETTER REU;Lo;0;L;;;;;N;;;;;
+ 11BC5;SUNUWAR LETTER UTTHI;Lo;0;L;;;;;N;;;;;
+ 11BC6;SUNUWAR LETTER KIK;Lo;0;L;;;;;N;;;;;
+ 11BC7;SUNUWAR LETTER MA;Lo;0;L;;;;;N;;;;;
+ 11BC8;SUNUWAR LETTER APPHO;Lo;0;L;;;;;N;;;;;
+ 11BC9;SUNUWAR LETTER PIP;Lo;0;L;;;;;N;;;;;
+ 11BCA;SUNUWAR LETTER GIL;Lo;0;L;;;;;N;;;;;
+ 11BCB;SUNUWAR LETTER HAMSO;Lo;0;L;;;;;N;;;;;
+ 11BCC;SUNUWAR LETTER CARMI;Lo;0;L;;;;;N;;;;;
+ 11BCD;SUNUWAR LETTER NAH;Lo;0;L;;;;;N;;;;;
+ 11BCE;SUNUWAR LETTER BUR;Lo;0;L;;;;;N;;;;;
+ 11BCF;SUNUWAR LETTER JYAH;Lo;0;L;;;;;N;;;;;
+ 11BD0;SUNUWAR LETTER LOACHA;Lo;0;L;;;;;N;;;;;
+ 11BD1;SUNUWAR LETTER OTTHI;Lo;0;L;;;;;N;;;;;
+ 11BD2;SUNUWAR LETTER SHYELE;Lo;0;L;;;;;N;;;;;
+ 11BD3;SUNUWAR LETTER VARCA;Lo;0;L;;;;;N;;;;;
+ 11BD4;SUNUWAR LETTER YAT;Lo;0;L;;;;;N;;;;;
+ 11BD5;SUNUWAR LETTER AVA;Lo;0;L;;;;;N;;;;;
+ 11BD6;SUNUWAR LETTER AAL;Lo;0;L;;;;;N;;;;;
+ 11BD7;SUNUWAR LETTER DONGA;Lo;0;L;;;;;N;;;;;
+ 11BD8;SUNUWAR LETTER THARI;Lo;0;L;;;;;N;;;;;
+ 11BD9;SUNUWAR LETTER PHAR;Lo;0;L;;;;;N;;;;;
+ 11BDA;SUNUWAR LETTER NGAR;Lo;0;L;;;;;N;;;;;
+ 11BDB;SUNUWAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+ 11BDC;SUNUWAR LETTER SHYER;Lo;0;L;;;;;N;;;;;
+ 11BDD;SUNUWAR LETTER CHELAP;Lo;0;L;;;;;N;;;;;
+ 11BDE;SUNUWAR LETTER TENTU;Lo;0;L;;;;;N;;;;;
+ 11BDF;SUNUWAR LETTER THELE;Lo;0;L;;;;;N;;;;;
+ 11BE0;SUNUWAR LETTER KLOKO;Lo;0;L;;;;;N;;;;;
+ 11BE1;SUNUWAR SIGN PVO;Po;0;L;;;;;N;;;;;
+ 11BF0;SUNUWAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 11BF1;SUNUWAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 11BF2;SUNUWAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 11BF3;SUNUWAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 11BF4;SUNUWAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 11BF5;SUNUWAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 11BF6;SUNUWAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 11BF7;SUNUWAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 11BF8;SUNUWAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 11BF9;SUNUWAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
  11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;;
  11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;;
  11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 21693,21698 ****
--- 21979,21985 ----
  11F57;KAWI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
  11F58;KAWI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
  11F59;KAWI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 11F5A;KAWI SIGN NUKTA;Mn;0;NSM;;;;;N;;;;;
  11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;;
  11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
  11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 24188,24193 ****
--- 24475,28475 ----
  13453;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END;Mn;0;NSM;;;;;N;;;;;
  13454;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END;Mn;0;NSM;;;;;N;;;;;
  13455;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED;Mn;0;NSM;;;;;N;;;;;
+ 13460;EGYPTIAN HIEROGLYPH-13460;Lo;0;L;;;;;N;;;;;
+ 13461;EGYPTIAN HIEROGLYPH-13461;Lo;0;L;;;;;N;;;;;
+ 13462;EGYPTIAN HIEROGLYPH-13462;Lo;0;L;;;;;N;;;;;
+ 13463;EGYPTIAN HIEROGLYPH-13463;Lo;0;L;;;;;N;;;;;
+ 13464;EGYPTIAN HIEROGLYPH-13464;Lo;0;L;;;;;N;;;;;
+ 13465;EGYPTIAN HIEROGLYPH-13465;Lo;0;L;;;;;N;;;;;
+ 13466;EGYPTIAN HIEROGLYPH-13466;Lo;0;L;;;;;N;;;;;
+ 13467;EGYPTIAN HIEROGLYPH-13467;Lo;0;L;;;;;N;;;;;
+ 13468;EGYPTIAN HIEROGLYPH-13468;Lo;0;L;;;;;N;;;;;
+ 13469;EGYPTIAN HIEROGLYPH-13469;Lo;0;L;;;;;N;;;;;
+ 1346A;EGYPTIAN HIEROGLYPH-1346A;Lo;0;L;;;;;N;;;;;
+ 1346B;EGYPTIAN HIEROGLYPH-1346B;Lo;0;L;;;;;N;;;;;
+ 1346C;EGYPTIAN HIEROGLYPH-1346C;Lo;0;L;;;;;N;;;;;
+ 1346D;EGYPTIAN HIEROGLYPH-1346D;Lo;0;L;;;;;N;;;;;
+ 1346E;EGYPTIAN HIEROGLYPH-1346E;Lo;0;L;;;;;N;;;;;
+ 1346F;EGYPTIAN HIEROGLYPH-1346F;Lo;0;L;;;;;N;;;;;
+ 13470;EGYPTIAN HIEROGLYPH-13470;Lo;0;L;;;;;N;;;;;
+ 13471;EGYPTIAN HIEROGLYPH-13471;Lo;0;L;;;;;N;;;;;
+ 13472;EGYPTIAN HIEROGLYPH-13472;Lo;0;L;;;;;N;;;;;
+ 13473;EGYPTIAN HIEROGLYPH-13473;Lo;0;L;;;;;N;;;;;
+ 13474;EGYPTIAN HIEROGLYPH-13474;Lo;0;L;;;;;N;;;;;
+ 13475;EGYPTIAN HIEROGLYPH-13475;Lo;0;L;;;;;N;;;;;
+ 13476;EGYPTIAN HIEROGLYPH-13476;Lo;0;L;;;;;N;;;;;
+ 13477;EGYPTIAN HIEROGLYPH-13477;Lo;0;L;;;;;N;;;;;
+ 13478;EGYPTIAN HIEROGLYPH-13478;Lo;0;L;;;;;N;;;;;
+ 13479;EGYPTIAN HIEROGLYPH-13479;Lo;0;L;;;;;N;;;;;
+ 1347A;EGYPTIAN HIEROGLYPH-1347A;Lo;0;L;;;;;N;;;;;
+ 1347B;EGYPTIAN HIEROGLYPH-1347B;Lo;0;L;;;;;N;;;;;
+ 1347C;EGYPTIAN HIEROGLYPH-1347C;Lo;0;L;;;;;N;;;;;
+ 1347D;EGYPTIAN HIEROGLYPH-1347D;Lo;0;L;;;;;N;;;;;
+ 1347E;EGYPTIAN HIEROGLYPH-1347E;Lo;0;L;;;;;N;;;;;
+ 1347F;EGYPTIAN HIEROGLYPH-1347F;Lo;0;L;;;;;N;;;;;
+ 13480;EGYPTIAN HIEROGLYPH-13480;Lo;0;L;;;;;N;;;;;
+ 13481;EGYPTIAN HIEROGLYPH-13481;Lo;0;L;;;;;N;;;;;
+ 13482;EGYPTIAN HIEROGLYPH-13482;Lo;0;L;;;;;N;;;;;
+ 13483;EGYPTIAN HIEROGLYPH-13483;Lo;0;L;;;;;N;;;;;
+ 13484;EGYPTIAN HIEROGLYPH-13484;Lo;0;L;;;;;N;;;;;
+ 13485;EGYPTIAN HIEROGLYPH-13485;Lo;0;L;;;;;N;;;;;
+ 13486;EGYPTIAN HIEROGLYPH-13486;Lo;0;L;;;;;N;;;;;
+ 13487;EGYPTIAN HIEROGLYPH-13487;Lo;0;L;;;;;N;;;;;
+ 13488;EGYPTIAN HIEROGLYPH-13488;Lo;0;L;;;;;N;;;;;
+ 13489;EGYPTIAN HIEROGLYPH-13489;Lo;0;L;;;;;N;;;;;
+ 1348A;EGYPTIAN HIEROGLYPH-1348A;Lo;0;L;;;;;N;;;;;
+ 1348B;EGYPTIAN HIEROGLYPH-1348B;Lo;0;L;;;;;N;;;;;
+ 1348C;EGYPTIAN HIEROGLYPH-1348C;Lo;0;L;;;;;N;;;;;
+ 1348D;EGYPTIAN HIEROGLYPH-1348D;Lo;0;L;;;;;N;;;;;
+ 1348E;EGYPTIAN HIEROGLYPH-1348E;Lo;0;L;;;;;N;;;;;
+ 1348F;EGYPTIAN HIEROGLYPH-1348F;Lo;0;L;;;;;N;;;;;
+ 13490;EGYPTIAN HIEROGLYPH-13490;Lo;0;L;;;;;N;;;;;
+ 13491;EGYPTIAN HIEROGLYPH-13491;Lo;0;L;;;;;N;;;;;
+ 13492;EGYPTIAN HIEROGLYPH-13492;Lo;0;L;;;;;N;;;;;
+ 13493;EGYPTIAN HIEROGLYPH-13493;Lo;0;L;;;;;N;;;;;
+ 13494;EGYPTIAN HIEROGLYPH-13494;Lo;0;L;;;;;N;;;;;
+ 13495;EGYPTIAN HIEROGLYPH-13495;Lo;0;L;;;;;N;;;;;
+ 13496;EGYPTIAN HIEROGLYPH-13496;Lo;0;L;;;;;N;;;;;
+ 13497;EGYPTIAN HIEROGLYPH-13497;Lo;0;L;;;;;N;;;;;
+ 13498;EGYPTIAN HIEROGLYPH-13498;Lo;0;L;;;;;N;;;;;
+ 13499;EGYPTIAN HIEROGLYPH-13499;Lo;0;L;;;;;N;;;;;
+ 1349A;EGYPTIAN HIEROGLYPH-1349A;Lo;0;L;;;;;N;;;;;
+ 1349B;EGYPTIAN HIEROGLYPH-1349B;Lo;0;L;;;;;N;;;;;
+ 1349C;EGYPTIAN HIEROGLYPH-1349C;Lo;0;L;;;;;N;;;;;
+ 1349D;EGYPTIAN HIEROGLYPH-1349D;Lo;0;L;;;;;N;;;;;
+ 1349E;EGYPTIAN HIEROGLYPH-1349E;Lo;0;L;;;;;N;;;;;
+ 1349F;EGYPTIAN HIEROGLYPH-1349F;Lo;0;L;;;;;N;;;;;
+ 134A0;EGYPTIAN HIEROGLYPH-134A0;Lo;0;L;;;;;N;;;;;
+ 134A1;EGYPTIAN HIEROGLYPH-134A1;Lo;0;L;;;;;N;;;;;
+ 134A2;EGYPTIAN HIEROGLYPH-134A2;Lo;0;L;;;;;N;;;;;
+ 134A3;EGYPTIAN HIEROGLYPH-134A3;Lo;0;L;;;;;N;;;;;
+ 134A4;EGYPTIAN HIEROGLYPH-134A4;Lo;0;L;;;;;N;;;;;
+ 134A5;EGYPTIAN HIEROGLYPH-134A5;Lo;0;L;;;;;N;;;;;
+ 134A6;EGYPTIAN HIEROGLYPH-134A6;Lo;0;L;;;;;N;;;;;
+ 134A7;EGYPTIAN HIEROGLYPH-134A7;Lo;0;L;;;;;N;;;;;
+ 134A8;EGYPTIAN HIEROGLYPH-134A8;Lo;0;L;;;;;N;;;;;
+ 134A9;EGYPTIAN HIEROGLYPH-134A9;Lo;0;L;;;;;N;;;;;
+ 134AA;EGYPTIAN HIEROGLYPH-134AA;Lo;0;L;;;;;N;;;;;
+ 134AB;EGYPTIAN HIEROGLYPH-134AB;Lo;0;L;;;;;N;;;;;
+ 134AC;EGYPTIAN HIEROGLYPH-134AC;Lo;0;L;;;;;N;;;;;
+ 134AD;EGYPTIAN HIEROGLYPH-134AD;Lo;0;L;;;;;N;;;;;
+ 134AE;EGYPTIAN HIEROGLYPH-134AE;Lo;0;L;;;;;N;;;;;
+ 134AF;EGYPTIAN HIEROGLYPH-134AF;Lo;0;L;;;;;N;;;;;
+ 134B0;EGYPTIAN HIEROGLYPH-134B0;Lo;0;L;;;;;N;;;;;
+ 134B1;EGYPTIAN HIEROGLYPH-134B1;Lo;0;L;;;;;N;;;;;
+ 134B2;EGYPTIAN HIEROGLYPH-134B2;Lo;0;L;;;;;N;;;;;
+ 134B3;EGYPTIAN HIEROGLYPH-134B3;Lo;0;L;;;;;N;;;;;
+ 134B4;EGYPTIAN HIEROGLYPH-134B4;Lo;0;L;;;;;N;;;;;
+ 134B5;EGYPTIAN HIEROGLYPH-134B5;Lo;0;L;;;;;N;;;;;
+ 134B6;EGYPTIAN HIEROGLYPH-134B6;Lo;0;L;;;;;N;;;;;
+ 134B7;EGYPTIAN HIEROGLYPH-134B7;Lo;0;L;;;;;N;;;;;
+ 134B8;EGYPTIAN HIEROGLYPH-134B8;Lo;0;L;;;;;N;;;;;
+ 134B9;EGYPTIAN HIEROGLYPH-134B9;Lo;0;L;;;;;N;;;;;
+ 134BA;EGYPTIAN HIEROGLYPH-134BA;Lo;0;L;;;;;N;;;;;
+ 134BB;EGYPTIAN HIEROGLYPH-134BB;Lo;0;L;;;;;N;;;;;
+ 134BC;EGYPTIAN HIEROGLYPH-134BC;Lo;0;L;;;;;N;;;;;
+ 134BD;EGYPTIAN HIEROGLYPH-134BD;Lo;0;L;;;;;N;;;;;
+ 134BE;EGYPTIAN HIEROGLYPH-134BE;Lo;0;L;;;;;N;;;;;
+ 134BF;EGYPTIAN HIEROGLYPH-134BF;Lo;0;L;;;;;N;;;;;
+ 134C0;EGYPTIAN HIEROGLYPH-134C0;Lo;0;L;;;;;N;;;;;
+ 134C1;EGYPTIAN HIEROGLYPH-134C1;Lo;0;L;;;;;N;;;;;
+ 134C2;EGYPTIAN HIEROGLYPH-134C2;Lo;0;L;;;;;N;;;;;
+ 134C3;EGYPTIAN HIEROGLYPH-134C3;Lo;0;L;;;;;N;;;;;
+ 134C4;EGYPTIAN HIEROGLYPH-134C4;Lo;0;L;;;;;N;;;;;
+ 134C5;EGYPTIAN HIEROGLYPH-134C5;Lo;0;L;;;;;N;;;;;
+ 134C6;EGYPTIAN HIEROGLYPH-134C6;Lo;0;L;;;;;N;;;;;
+ 134C7;EGYPTIAN HIEROGLYPH-134C7;Lo;0;L;;;;;N;;;;;
+ 134C8;EGYPTIAN HIEROGLYPH-134C8;Lo;0;L;;;;;N;;;;;
+ 134C9;EGYPTIAN HIEROGLYPH-134C9;Lo;0;L;;;;;N;;;;;
+ 134CA;EGYPTIAN HIEROGLYPH-134CA;Lo;0;L;;;;;N;;;;;
+ 134CB;EGYPTIAN HIEROGLYPH-134CB;Lo;0;L;;;;;N;;;;;
+ 134CC;EGYPTIAN HIEROGLYPH-134CC;Lo;0;L;;;;;N;;;;;
+ 134CD;EGYPTIAN HIEROGLYPH-134CD;Lo;0;L;;;;;N;;;;;
+ 134CE;EGYPTIAN HIEROGLYPH-134CE;Lo;0;L;;;;;N;;;;;
+ 134CF;EGYPTIAN HIEROGLYPH-134CF;Lo;0;L;;;;;N;;;;;
+ 134D0;EGYPTIAN HIEROGLYPH-134D0;Lo;0;L;;;;;N;;;;;
+ 134D1;EGYPTIAN HIEROGLYPH-134D1;Lo;0;L;;;;;N;;;;;
+ 134D2;EGYPTIAN HIEROGLYPH-134D2;Lo;0;L;;;;;N;;;;;
+ 134D3;EGYPTIAN HIEROGLYPH-134D3;Lo;0;L;;;;;N;;;;;
+ 134D4;EGYPTIAN HIEROGLYPH-134D4;Lo;0;L;;;;;N;;;;;
+ 134D5;EGYPTIAN HIEROGLYPH-134D5;Lo;0;L;;;;;N;;;;;
+ 134D6;EGYPTIAN HIEROGLYPH-134D6;Lo;0;L;;;;;N;;;;;
+ 134D7;EGYPTIAN HIEROGLYPH-134D7;Lo;0;L;;;;;N;;;;;
+ 134D8;EGYPTIAN HIEROGLYPH-134D8;Lo;0;L;;;;;N;;;;;
+ 134D9;EGYPTIAN HIEROGLYPH-134D9;Lo;0;L;;;;;N;;;;;
+ 134DA;EGYPTIAN HIEROGLYPH-134DA;Lo;0;L;;;;;N;;;;;
+ 134DB;EGYPTIAN HIEROGLYPH-134DB;Lo;0;L;;;;;N;;;;;
+ 134DC;EGYPTIAN HIEROGLYPH-134DC;Lo;0;L;;;;;N;;;;;
+ 134DD;EGYPTIAN HIEROGLYPH-134DD;Lo;0;L;;;;;N;;;;;
+ 134DE;EGYPTIAN HIEROGLYPH-134DE;Lo;0;L;;;;;N;;;;;
+ 134DF;EGYPTIAN HIEROGLYPH-134DF;Lo;0;L;;;;;N;;;;;
+ 134E0;EGYPTIAN HIEROGLYPH-134E0;Lo;0;L;;;;;N;;;;;
+ 134E1;EGYPTIAN HIEROGLYPH-134E1;Lo;0;L;;;;;N;;;;;
+ 134E2;EGYPTIAN HIEROGLYPH-134E2;Lo;0;L;;;;;N;;;;;
+ 134E3;EGYPTIAN HIEROGLYPH-134E3;Lo;0;L;;;;;N;;;;;
+ 134E4;EGYPTIAN HIEROGLYPH-134E4;Lo;0;L;;;;;N;;;;;
+ 134E5;EGYPTIAN HIEROGLYPH-134E5;Lo;0;L;;;;;N;;;;;
+ 134E6;EGYPTIAN HIEROGLYPH-134E6;Lo;0;L;;;;;N;;;;;
+ 134E7;EGYPTIAN HIEROGLYPH-134E7;Lo;0;L;;;;;N;;;;;
+ 134E8;EGYPTIAN HIEROGLYPH-134E8;Lo;0;L;;;;;N;;;;;
+ 134E9;EGYPTIAN HIEROGLYPH-134E9;Lo;0;L;;;;;N;;;;;
+ 134EA;EGYPTIAN HIEROGLYPH-134EA;Lo;0;L;;;;;N;;;;;
+ 134EB;EGYPTIAN HIEROGLYPH-134EB;Lo;0;L;;;;;N;;;;;
+ 134EC;EGYPTIAN HIEROGLYPH-134EC;Lo;0;L;;;;;N;;;;;
+ 134ED;EGYPTIAN HIEROGLYPH-134ED;Lo;0;L;;;;;N;;;;;
+ 134EE;EGYPTIAN HIEROGLYPH-134EE;Lo;0;L;;;;;N;;;;;
+ 134EF;EGYPTIAN HIEROGLYPH-134EF;Lo;0;L;;;;;N;;;;;
+ 134F0;EGYPTIAN HIEROGLYPH-134F0;Lo;0;L;;;;;N;;;;;
+ 134F1;EGYPTIAN HIEROGLYPH-134F1;Lo;0;L;;;;;N;;;;;
+ 134F2;EGYPTIAN HIEROGLYPH-134F2;Lo;0;L;;;;;N;;;;;
+ 134F3;EGYPTIAN HIEROGLYPH-134F3;Lo;0;L;;;;;N;;;;;
+ 134F4;EGYPTIAN HIEROGLYPH-134F4;Lo;0;L;;;;;N;;;;;
+ 134F5;EGYPTIAN HIEROGLYPH-134F5;Lo;0;L;;;;;N;;;;;
+ 134F6;EGYPTIAN HIEROGLYPH-134F6;Lo;0;L;;;;;N;;;;;
+ 134F7;EGYPTIAN HIEROGLYPH-134F7;Lo;0;L;;;;;N;;;;;
+ 134F8;EGYPTIAN HIEROGLYPH-134F8;Lo;0;L;;;;;N;;;;;
+ 134F9;EGYPTIAN HIEROGLYPH-134F9;Lo;0;L;;;;;N;;;;;
+ 134FA;EGYPTIAN HIEROGLYPH-134FA;Lo;0;L;;;;;N;;;;;
+ 134FB;EGYPTIAN HIEROGLYPH-134FB;Lo;0;L;;;;;N;;;;;
+ 134FC;EGYPTIAN HIEROGLYPH-134FC;Lo;0;L;;;;;N;;;;;
+ 134FD;EGYPTIAN HIEROGLYPH-134FD;Lo;0;L;;;;;N;;;;;
+ 134FE;EGYPTIAN HIEROGLYPH-134FE;Lo;0;L;;;;;N;;;;;
+ 134FF;EGYPTIAN HIEROGLYPH-134FF;Lo;0;L;;;;;N;;;;;
+ 13500;EGYPTIAN HIEROGLYPH-13500;Lo;0;L;;;;;N;;;;;
+ 13501;EGYPTIAN HIEROGLYPH-13501;Lo;0;L;;;;;N;;;;;
+ 13502;EGYPTIAN HIEROGLYPH-13502;Lo;0;L;;;;;N;;;;;
+ 13503;EGYPTIAN HIEROGLYPH-13503;Lo;0;L;;;;;N;;;;;
+ 13504;EGYPTIAN HIEROGLYPH-13504;Lo;0;L;;;;;N;;;;;
+ 13505;EGYPTIAN HIEROGLYPH-13505;Lo;0;L;;;;;N;;;;;
+ 13506;EGYPTIAN HIEROGLYPH-13506;Lo;0;L;;;;;N;;;;;
+ 13507;EGYPTIAN HIEROGLYPH-13507;Lo;0;L;;;;;N;;;;;
+ 13508;EGYPTIAN HIEROGLYPH-13508;Lo;0;L;;;;;N;;;;;
+ 13509;EGYPTIAN HIEROGLYPH-13509;Lo;0;L;;;;;N;;;;;
+ 1350A;EGYPTIAN HIEROGLYPH-1350A;Lo;0;L;;;;;N;;;;;
+ 1350B;EGYPTIAN HIEROGLYPH-1350B;Lo;0;L;;;;;N;;;;;
+ 1350C;EGYPTIAN HIEROGLYPH-1350C;Lo;0;L;;;;;N;;;;;
+ 1350D;EGYPTIAN HIEROGLYPH-1350D;Lo;0;L;;;;;N;;;;;
+ 1350E;EGYPTIAN HIEROGLYPH-1350E;Lo;0;L;;;;;N;;;;;
+ 1350F;EGYPTIAN HIEROGLYPH-1350F;Lo;0;L;;;;;N;;;;;
+ 13510;EGYPTIAN HIEROGLYPH-13510;Lo;0;L;;;;;N;;;;;
+ 13511;EGYPTIAN HIEROGLYPH-13511;Lo;0;L;;;;;N;;;;;
+ 13512;EGYPTIAN HIEROGLYPH-13512;Lo;0;L;;;;;N;;;;;
+ 13513;EGYPTIAN HIEROGLYPH-13513;Lo;0;L;;;;;N;;;;;
+ 13514;EGYPTIAN HIEROGLYPH-13514;Lo;0;L;;;;;N;;;;;
+ 13515;EGYPTIAN HIEROGLYPH-13515;Lo;0;L;;;;;N;;;;;
+ 13516;EGYPTIAN HIEROGLYPH-13516;Lo;0;L;;;;;N;;;;;
+ 13517;EGYPTIAN HIEROGLYPH-13517;Lo;0;L;;;;;N;;;;;
+ 13518;EGYPTIAN HIEROGLYPH-13518;Lo;0;L;;;;;N;;;;;
+ 13519;EGYPTIAN HIEROGLYPH-13519;Lo;0;L;;;;;N;;;;;
+ 1351A;EGYPTIAN HIEROGLYPH-1351A;Lo;0;L;;;;;N;;;;;
+ 1351B;EGYPTIAN HIEROGLYPH-1351B;Lo;0;L;;;;;N;;;;;
+ 1351C;EGYPTIAN HIEROGLYPH-1351C;Lo;0;L;;;;;N;;;;;
+ 1351D;EGYPTIAN HIEROGLYPH-1351D;Lo;0;L;;;;;N;;;;;
+ 1351E;EGYPTIAN HIEROGLYPH-1351E;Lo;0;L;;;;;N;;;;;
+ 1351F;EGYPTIAN HIEROGLYPH-1351F;Lo;0;L;;;;;N;;;;;
+ 13520;EGYPTIAN HIEROGLYPH-13520;Lo;0;L;;;;;N;;;;;
+ 13521;EGYPTIAN HIEROGLYPH-13521;Lo;0;L;;;;;N;;;;;
+ 13522;EGYPTIAN HIEROGLYPH-13522;Lo;0;L;;;;;N;;;;;
+ 13523;EGYPTIAN HIEROGLYPH-13523;Lo;0;L;;;;;N;;;;;
+ 13524;EGYPTIAN HIEROGLYPH-13524;Lo;0;L;;;;;N;;;;;
+ 13525;EGYPTIAN HIEROGLYPH-13525;Lo;0;L;;;;;N;;;;;
+ 13526;EGYPTIAN HIEROGLYPH-13526;Lo;0;L;;;;;N;;;;;
+ 13527;EGYPTIAN HIEROGLYPH-13527;Lo;0;L;;;;;N;;;;;
+ 13528;EGYPTIAN HIEROGLYPH-13528;Lo;0;L;;;;;N;;;;;
+ 13529;EGYPTIAN HIEROGLYPH-13529;Lo;0;L;;;;;N;;;;;
+ 1352A;EGYPTIAN HIEROGLYPH-1352A;Lo;0;L;;;;;N;;;;;
+ 1352B;EGYPTIAN HIEROGLYPH-1352B;Lo;0;L;;;;;N;;;;;
+ 1352C;EGYPTIAN HIEROGLYPH-1352C;Lo;0;L;;;;;N;;;;;
+ 1352D;EGYPTIAN HIEROGLYPH-1352D;Lo;0;L;;;;;N;;;;;
+ 1352E;EGYPTIAN HIEROGLYPH-1352E;Lo;0;L;;;;;N;;;;;
+ 1352F;EGYPTIAN HIEROGLYPH-1352F;Lo;0;L;;;;;N;;;;;
+ 13530;EGYPTIAN HIEROGLYPH-13530;Lo;0;L;;;;;N;;;;;
+ 13531;EGYPTIAN HIEROGLYPH-13531;Lo;0;L;;;;;N;;;;;
+ 13532;EGYPTIAN HIEROGLYPH-13532;Lo;0;L;;;;;N;;;;;
+ 13533;EGYPTIAN HIEROGLYPH-13533;Lo;0;L;;;;;N;;;;;
+ 13534;EGYPTIAN HIEROGLYPH-13534;Lo;0;L;;;;;N;;;;;
+ 13535;EGYPTIAN HIEROGLYPH-13535;Lo;0;L;;;;;N;;;;;
+ 13536;EGYPTIAN HIEROGLYPH-13536;Lo;0;L;;;;;N;;;;;
+ 13537;EGYPTIAN HIEROGLYPH-13537;Lo;0;L;;;;;N;;;;;
+ 13538;EGYPTIAN HIEROGLYPH-13538;Lo;0;L;;;;;N;;;;;
+ 13539;EGYPTIAN HIEROGLYPH-13539;Lo;0;L;;;;;N;;;;;
+ 1353A;EGYPTIAN HIEROGLYPH-1353A;Lo;0;L;;;;;N;;;;;
+ 1353B;EGYPTIAN HIEROGLYPH-1353B;Lo;0;L;;;;;N;;;;;
+ 1353C;EGYPTIAN HIEROGLYPH-1353C;Lo;0;L;;;;;N;;;;;
+ 1353D;EGYPTIAN HIEROGLYPH-1353D;Lo;0;L;;;;;N;;;;;
+ 1353E;EGYPTIAN HIEROGLYPH-1353E;Lo;0;L;;;;;N;;;;;
+ 1353F;EGYPTIAN HIEROGLYPH-1353F;Lo;0;L;;;;;N;;;;;
+ 13540;EGYPTIAN HIEROGLYPH-13540;Lo;0;L;;;;;N;;;;;
+ 13541;EGYPTIAN HIEROGLYPH-13541;Lo;0;L;;;;;N;;;;;
+ 13542;EGYPTIAN HIEROGLYPH-13542;Lo;0;L;;;;;N;;;;;
+ 13543;EGYPTIAN HIEROGLYPH-13543;Lo;0;L;;;;;N;;;;;
+ 13544;EGYPTIAN HIEROGLYPH-13544;Lo;0;L;;;;;N;;;;;
+ 13545;EGYPTIAN HIEROGLYPH-13545;Lo;0;L;;;;;N;;;;;
+ 13546;EGYPTIAN HIEROGLYPH-13546;Lo;0;L;;;;;N;;;;;
+ 13547;EGYPTIAN HIEROGLYPH-13547;Lo;0;L;;;;;N;;;;;
+ 13548;EGYPTIAN HIEROGLYPH-13548;Lo;0;L;;;;;N;;;;;
+ 13549;EGYPTIAN HIEROGLYPH-13549;Lo;0;L;;;;;N;;;;;
+ 1354A;EGYPTIAN HIEROGLYPH-1354A;Lo;0;L;;;;;N;;;;;
+ 1354B;EGYPTIAN HIEROGLYPH-1354B;Lo;0;L;;;;;N;;;;;
+ 1354C;EGYPTIAN HIEROGLYPH-1354C;Lo;0;L;;;;;N;;;;;
+ 1354D;EGYPTIAN HIEROGLYPH-1354D;Lo;0;L;;;;;N;;;;;
+ 1354E;EGYPTIAN HIEROGLYPH-1354E;Lo;0;L;;;;;N;;;;;
+ 1354F;EGYPTIAN HIEROGLYPH-1354F;Lo;0;L;;;;;N;;;;;
+ 13550;EGYPTIAN HIEROGLYPH-13550;Lo;0;L;;;;;N;;;;;
+ 13551;EGYPTIAN HIEROGLYPH-13551;Lo;0;L;;;;;N;;;;;
+ 13552;EGYPTIAN HIEROGLYPH-13552;Lo;0;L;;;;;N;;;;;
+ 13553;EGYPTIAN HIEROGLYPH-13553;Lo;0;L;;;;;N;;;;;
+ 13554;EGYPTIAN HIEROGLYPH-13554;Lo;0;L;;;;;N;;;;;
+ 13555;EGYPTIAN HIEROGLYPH-13555;Lo;0;L;;;;;N;;;;;
+ 13556;EGYPTIAN HIEROGLYPH-13556;Lo;0;L;;;;;N;;;;;
+ 13557;EGYPTIAN HIEROGLYPH-13557;Lo;0;L;;;;;N;;;;;
+ 13558;EGYPTIAN HIEROGLYPH-13558;Lo;0;L;;;;;N;;;;;
+ 13559;EGYPTIAN HIEROGLYPH-13559;Lo;0;L;;;;;N;;;;;
+ 1355A;EGYPTIAN HIEROGLYPH-1355A;Lo;0;L;;;;;N;;;;;
+ 1355B;EGYPTIAN HIEROGLYPH-1355B;Lo;0;L;;;;;N;;;;;
+ 1355C;EGYPTIAN HIEROGLYPH-1355C;Lo;0;L;;;;;N;;;;;
+ 1355D;EGYPTIAN HIEROGLYPH-1355D;Lo;0;L;;;;;N;;;;;
+ 1355E;EGYPTIAN HIEROGLYPH-1355E;Lo;0;L;;;;;N;;;;;
+ 1355F;EGYPTIAN HIEROGLYPH-1355F;Lo;0;L;;;;;N;;;;;
+ 13560;EGYPTIAN HIEROGLYPH-13560;Lo;0;L;;;;;N;;;;;
+ 13561;EGYPTIAN HIEROGLYPH-13561;Lo;0;L;;;;;N;;;;;
+ 13562;EGYPTIAN HIEROGLYPH-13562;Lo;0;L;;;;;N;;;;;
+ 13563;EGYPTIAN HIEROGLYPH-13563;Lo;0;L;;;;;N;;;;;
+ 13564;EGYPTIAN HIEROGLYPH-13564;Lo;0;L;;;;;N;;;;;
+ 13565;EGYPTIAN HIEROGLYPH-13565;Lo;0;L;;;;;N;;;;;
+ 13566;EGYPTIAN HIEROGLYPH-13566;Lo;0;L;;;;;N;;;;;
+ 13567;EGYPTIAN HIEROGLYPH-13567;Lo;0;L;;;;;N;;;;;
+ 13568;EGYPTIAN HIEROGLYPH-13568;Lo;0;L;;;;;N;;;;;
+ 13569;EGYPTIAN HIEROGLYPH-13569;Lo;0;L;;;;;N;;;;;
+ 1356A;EGYPTIAN HIEROGLYPH-1356A;Lo;0;L;;;;;N;;;;;
+ 1356B;EGYPTIAN HIEROGLYPH-1356B;Lo;0;L;;;;;N;;;;;
+ 1356C;EGYPTIAN HIEROGLYPH-1356C;Lo;0;L;;;;;N;;;;;
+ 1356D;EGYPTIAN HIEROGLYPH-1356D;Lo;0;L;;;;;N;;;;;
+ 1356E;EGYPTIAN HIEROGLYPH-1356E;Lo;0;L;;;;;N;;;;;
+ 1356F;EGYPTIAN HIEROGLYPH-1356F;Lo;0;L;;;;;N;;;;;
+ 13570;EGYPTIAN HIEROGLYPH-13570;Lo;0;L;;;;;N;;;;;
+ 13571;EGYPTIAN HIEROGLYPH-13571;Lo;0;L;;;;;N;;;;;
+ 13572;EGYPTIAN HIEROGLYPH-13572;Lo;0;L;;;;;N;;;;;
+ 13573;EGYPTIAN HIEROGLYPH-13573;Lo;0;L;;;;;N;;;;;
+ 13574;EGYPTIAN HIEROGLYPH-13574;Lo;0;L;;;;;N;;;;;
+ 13575;EGYPTIAN HIEROGLYPH-13575;Lo;0;L;;;;;N;;;;;
+ 13576;EGYPTIAN HIEROGLYPH-13576;Lo;0;L;;;;;N;;;;;
+ 13577;EGYPTIAN HIEROGLYPH-13577;Lo;0;L;;;;;N;;;;;
+ 13578;EGYPTIAN HIEROGLYPH-13578;Lo;0;L;;;;;N;;;;;
+ 13579;EGYPTIAN HIEROGLYPH-13579;Lo;0;L;;;;;N;;;;;
+ 1357A;EGYPTIAN HIEROGLYPH-1357A;Lo;0;L;;;;;N;;;;;
+ 1357B;EGYPTIAN HIEROGLYPH-1357B;Lo;0;L;;;;;N;;;;;
+ 1357C;EGYPTIAN HIEROGLYPH-1357C;Lo;0;L;;;;;N;;;;;
+ 1357D;EGYPTIAN HIEROGLYPH-1357D;Lo;0;L;;;;;N;;;;;
+ 1357E;EGYPTIAN HIEROGLYPH-1357E;Lo;0;L;;;;;N;;;;;
+ 1357F;EGYPTIAN HIEROGLYPH-1357F;Lo;0;L;;;;;N;;;;;
+ 13580;EGYPTIAN HIEROGLYPH-13580;Lo;0;L;;;;;N;;;;;
+ 13581;EGYPTIAN HIEROGLYPH-13581;Lo;0;L;;;;;N;;;;;
+ 13582;EGYPTIAN HIEROGLYPH-13582;Lo;0;L;;;;;N;;;;;
+ 13583;EGYPTIAN HIEROGLYPH-13583;Lo;0;L;;;;;N;;;;;
+ 13584;EGYPTIAN HIEROGLYPH-13584;Lo;0;L;;;;;N;;;;;
+ 13585;EGYPTIAN HIEROGLYPH-13585;Lo;0;L;;;;;N;;;;;
+ 13586;EGYPTIAN HIEROGLYPH-13586;Lo;0;L;;;;;N;;;;;
+ 13587;EGYPTIAN HIEROGLYPH-13587;Lo;0;L;;;;;N;;;;;
+ 13588;EGYPTIAN HIEROGLYPH-13588;Lo;0;L;;;;;N;;;;;
+ 13589;EGYPTIAN HIEROGLYPH-13589;Lo;0;L;;;;;N;;;;;
+ 1358A;EGYPTIAN HIEROGLYPH-1358A;Lo;0;L;;;;;N;;;;;
+ 1358B;EGYPTIAN HIEROGLYPH-1358B;Lo;0;L;;;;;N;;;;;
+ 1358C;EGYPTIAN HIEROGLYPH-1358C;Lo;0;L;;;;;N;;;;;
+ 1358D;EGYPTIAN HIEROGLYPH-1358D;Lo;0;L;;;;;N;;;;;
+ 1358E;EGYPTIAN HIEROGLYPH-1358E;Lo;0;L;;;;;N;;;;;
+ 1358F;EGYPTIAN HIEROGLYPH-1358F;Lo;0;L;;;;;N;;;;;
+ 13590;EGYPTIAN HIEROGLYPH-13590;Lo;0;L;;;;;N;;;;;
+ 13591;EGYPTIAN HIEROGLYPH-13591;Lo;0;L;;;;;N;;;;;
+ 13592;EGYPTIAN HIEROGLYPH-13592;Lo;0;L;;;;;N;;;;;
+ 13593;EGYPTIAN HIEROGLYPH-13593;Lo;0;L;;;;;N;;;;;
+ 13594;EGYPTIAN HIEROGLYPH-13594;Lo;0;L;;;;;N;;;;;
+ 13595;EGYPTIAN HIEROGLYPH-13595;Lo;0;L;;;;;N;;;;;
+ 13596;EGYPTIAN HIEROGLYPH-13596;Lo;0;L;;;;;N;;;;;
+ 13597;EGYPTIAN HIEROGLYPH-13597;Lo;0;L;;;;;N;;;;;
+ 13598;EGYPTIAN HIEROGLYPH-13598;Lo;0;L;;;;;N;;;;;
+ 13599;EGYPTIAN HIEROGLYPH-13599;Lo;0;L;;;;;N;;;;;
+ 1359A;EGYPTIAN HIEROGLYPH-1359A;Lo;0;L;;;;;N;;;;;
+ 1359B;EGYPTIAN HIEROGLYPH-1359B;Lo;0;L;;;;;N;;;;;
+ 1359C;EGYPTIAN HIEROGLYPH-1359C;Lo;0;L;;;;;N;;;;;
+ 1359D;EGYPTIAN HIEROGLYPH-1359D;Lo;0;L;;;;;N;;;;;
+ 1359E;EGYPTIAN HIEROGLYPH-1359E;Lo;0;L;;;;;N;;;;;
+ 1359F;EGYPTIAN HIEROGLYPH-1359F;Lo;0;L;;;;;N;;;;;
+ 135A0;EGYPTIAN HIEROGLYPH-135A0;Lo;0;L;;;;;N;;;;;
+ 135A1;EGYPTIAN HIEROGLYPH-135A1;Lo;0;L;;;;;N;;;;;
+ 135A2;EGYPTIAN HIEROGLYPH-135A2;Lo;0;L;;;;;N;;;;;
+ 135A3;EGYPTIAN HIEROGLYPH-135A3;Lo;0;L;;;;;N;;;;;
+ 135A4;EGYPTIAN HIEROGLYPH-135A4;Lo;0;L;;;;;N;;;;;
+ 135A5;EGYPTIAN HIEROGLYPH-135A5;Lo;0;L;;;;;N;;;;;
+ 135A6;EGYPTIAN HIEROGLYPH-135A6;Lo;0;L;;;;;N;;;;;
+ 135A7;EGYPTIAN HIEROGLYPH-135A7;Lo;0;L;;;;;N;;;;;
+ 135A8;EGYPTIAN HIEROGLYPH-135A8;Lo;0;L;;;;;N;;;;;
+ 135A9;EGYPTIAN HIEROGLYPH-135A9;Lo;0;L;;;;;N;;;;;
+ 135AA;EGYPTIAN HIEROGLYPH-135AA;Lo;0;L;;;;;N;;;;;
+ 135AB;EGYPTIAN HIEROGLYPH-135AB;Lo;0;L;;;;;N;;;;;
+ 135AC;EGYPTIAN HIEROGLYPH-135AC;Lo;0;L;;;;;N;;;;;
+ 135AD;EGYPTIAN HIEROGLYPH-135AD;Lo;0;L;;;;;N;;;;;
+ 135AE;EGYPTIAN HIEROGLYPH-135AE;Lo;0;L;;;;;N;;;;;
+ 135AF;EGYPTIAN HIEROGLYPH-135AF;Lo;0;L;;;;;N;;;;;
+ 135B0;EGYPTIAN HIEROGLYPH-135B0;Lo;0;L;;;;;N;;;;;
+ 135B1;EGYPTIAN HIEROGLYPH-135B1;Lo;0;L;;;;;N;;;;;
+ 135B2;EGYPTIAN HIEROGLYPH-135B2;Lo;0;L;;;;;N;;;;;
+ 135B3;EGYPTIAN HIEROGLYPH-135B3;Lo;0;L;;;;;N;;;;;
+ 135B4;EGYPTIAN HIEROGLYPH-135B4;Lo;0;L;;;;;N;;;;;
+ 135B5;EGYPTIAN HIEROGLYPH-135B5;Lo;0;L;;;;;N;;;;;
+ 135B6;EGYPTIAN HIEROGLYPH-135B6;Lo;0;L;;;;;N;;;;;
+ 135B7;EGYPTIAN HIEROGLYPH-135B7;Lo;0;L;;;;;N;;;;;
+ 135B8;EGYPTIAN HIEROGLYPH-135B8;Lo;0;L;;;;;N;;;;;
+ 135B9;EGYPTIAN HIEROGLYPH-135B9;Lo;0;L;;;;;N;;;;;
+ 135BA;EGYPTIAN HIEROGLYPH-135BA;Lo;0;L;;;;;N;;;;;
+ 135BB;EGYPTIAN HIEROGLYPH-135BB;Lo;0;L;;;;;N;;;;;
+ 135BC;EGYPTIAN HIEROGLYPH-135BC;Lo;0;L;;;;;N;;;;;
+ 135BD;EGYPTIAN HIEROGLYPH-135BD;Lo;0;L;;;;;N;;;;;
+ 135BE;EGYPTIAN HIEROGLYPH-135BE;Lo;0;L;;;;;N;;;;;
+ 135BF;EGYPTIAN HIEROGLYPH-135BF;Lo;0;L;;;;;N;;;;;
+ 135C0;EGYPTIAN HIEROGLYPH-135C0;Lo;0;L;;;;;N;;;;;
+ 135C1;EGYPTIAN HIEROGLYPH-135C1;Lo;0;L;;;;;N;;;;;
+ 135C2;EGYPTIAN HIEROGLYPH-135C2;Lo;0;L;;;;;N;;;;;
+ 135C3;EGYPTIAN HIEROGLYPH-135C3;Lo;0;L;;;;;N;;;;;
+ 135C4;EGYPTIAN HIEROGLYPH-135C4;Lo;0;L;;;;;N;;;;;
+ 135C5;EGYPTIAN HIEROGLYPH-135C5;Lo;0;L;;;;;N;;;;;
+ 135C6;EGYPTIAN HIEROGLYPH-135C6;Lo;0;L;;;;;N;;;;;
+ 135C7;EGYPTIAN HIEROGLYPH-135C7;Lo;0;L;;;;;N;;;;;
+ 135C8;EGYPTIAN HIEROGLYPH-135C8;Lo;0;L;;;;;N;;;;;
+ 135C9;EGYPTIAN HIEROGLYPH-135C9;Lo;0;L;;;;;N;;;;;
+ 135CA;EGYPTIAN HIEROGLYPH-135CA;Lo;0;L;;;;;N;;;;;
+ 135CB;EGYPTIAN HIEROGLYPH-135CB;Lo;0;L;;;;;N;;;;;
+ 135CC;EGYPTIAN HIEROGLYPH-135CC;Lo;0;L;;;;;N;;;;;
+ 135CD;EGYPTIAN HIEROGLYPH-135CD;Lo;0;L;;;;;N;;;;;
+ 135CE;EGYPTIAN HIEROGLYPH-135CE;Lo;0;L;;;;;N;;;;;
+ 135CF;EGYPTIAN HIEROGLYPH-135CF;Lo;0;L;;;;;N;;;;;
+ 135D0;EGYPTIAN HIEROGLYPH-135D0;Lo;0;L;;;;;N;;;;;
+ 135D1;EGYPTIAN HIEROGLYPH-135D1;Lo;0;L;;;;;N;;;;;
+ 135D2;EGYPTIAN HIEROGLYPH-135D2;Lo;0;L;;;;;N;;;;;
+ 135D3;EGYPTIAN HIEROGLYPH-135D3;Lo;0;L;;;;;N;;;;;
+ 135D4;EGYPTIAN HIEROGLYPH-135D4;Lo;0;L;;;;;N;;;;;
+ 135D5;EGYPTIAN HIEROGLYPH-135D5;Lo;0;L;;;;;N;;;;;
+ 135D6;EGYPTIAN HIEROGLYPH-135D6;Lo;0;L;;;;;N;;;;;
+ 135D7;EGYPTIAN HIEROGLYPH-135D7;Lo;0;L;;;;;N;;;;;
+ 135D8;EGYPTIAN HIEROGLYPH-135D8;Lo;0;L;;;;;N;;;;;
+ 135D9;EGYPTIAN HIEROGLYPH-135D9;Lo;0;L;;;;;N;;;;;
+ 135DA;EGYPTIAN HIEROGLYPH-135DA;Lo;0;L;;;;;N;;;;;
+ 135DB;EGYPTIAN HIEROGLYPH-135DB;Lo;0;L;;;;;N;;;;;
+ 135DC;EGYPTIAN HIEROGLYPH-135DC;Lo;0;L;;;;;N;;;;;
+ 135DD;EGYPTIAN HIEROGLYPH-135DD;Lo;0;L;;;;;N;;;;;
+ 135DE;EGYPTIAN HIEROGLYPH-135DE;Lo;0;L;;;;;N;;;;;
+ 135DF;EGYPTIAN HIEROGLYPH-135DF;Lo;0;L;;;;;N;;;;;
+ 135E0;EGYPTIAN HIEROGLYPH-135E0;Lo;0;L;;;;;N;;;;;
+ 135E1;EGYPTIAN HIEROGLYPH-135E1;Lo;0;L;;;;;N;;;;;
+ 135E2;EGYPTIAN HIEROGLYPH-135E2;Lo;0;L;;;;;N;;;;;
+ 135E3;EGYPTIAN HIEROGLYPH-135E3;Lo;0;L;;;;;N;;;;;
+ 135E4;EGYPTIAN HIEROGLYPH-135E4;Lo;0;L;;;;;N;;;;;
+ 135E5;EGYPTIAN HIEROGLYPH-135E5;Lo;0;L;;;;;N;;;;;
+ 135E6;EGYPTIAN HIEROGLYPH-135E6;Lo;0;L;;;;;N;;;;;
+ 135E7;EGYPTIAN HIEROGLYPH-135E7;Lo;0;L;;;;;N;;;;;
+ 135E8;EGYPTIAN HIEROGLYPH-135E8;Lo;0;L;;;;;N;;;;;
+ 135E9;EGYPTIAN HIEROGLYPH-135E9;Lo;0;L;;;;;N;;;;;
+ 135EA;EGYPTIAN HIEROGLYPH-135EA;Lo;0;L;;;;;N;;;;;
+ 135EB;EGYPTIAN HIEROGLYPH-135EB;Lo;0;L;;;;;N;;;;;
+ 135EC;EGYPTIAN HIEROGLYPH-135EC;Lo;0;L;;;;;N;;;;;
+ 135ED;EGYPTIAN HIEROGLYPH-135ED;Lo;0;L;;;;;N;;;;;
+ 135EE;EGYPTIAN HIEROGLYPH-135EE;Lo;0;L;;;;;N;;;;;
+ 135EF;EGYPTIAN HIEROGLYPH-135EF;Lo;0;L;;;;;N;;;;;
+ 135F0;EGYPTIAN HIEROGLYPH-135F0;Lo;0;L;;;;;N;;;;;
+ 135F1;EGYPTIAN HIEROGLYPH-135F1;Lo;0;L;;;;;N;;;;;
+ 135F2;EGYPTIAN HIEROGLYPH-135F2;Lo;0;L;;;;;N;;;;;
+ 135F3;EGYPTIAN HIEROGLYPH-135F3;Lo;0;L;;;;;N;;;;;
+ 135F4;EGYPTIAN HIEROGLYPH-135F4;Lo;0;L;;;;;N;;;;;
+ 135F5;EGYPTIAN HIEROGLYPH-135F5;Lo;0;L;;;;;N;;;;;
+ 135F6;EGYPTIAN HIEROGLYPH-135F6;Lo;0;L;;;;;N;;;;;
+ 135F7;EGYPTIAN HIEROGLYPH-135F7;Lo;0;L;;;;;N;;;;;
+ 135F8;EGYPTIAN HIEROGLYPH-135F8;Lo;0;L;;;;;N;;;;;
+ 135F9;EGYPTIAN HIEROGLYPH-135F9;Lo;0;L;;;;;N;;;;;
+ 135FA;EGYPTIAN HIEROGLYPH-135FA;Lo;0;L;;;;;N;;;;;
+ 135FB;EGYPTIAN HIEROGLYPH-135FB;Lo;0;L;;;;;N;;;;;
+ 135FC;EGYPTIAN HIEROGLYPH-135FC;Lo;0;L;;;;;N;;;;;
+ 135FD;EGYPTIAN HIEROGLYPH-135FD;Lo;0;L;;;;;N;;;;;
+ 135FE;EGYPTIAN HIEROGLYPH-135FE;Lo;0;L;;;;;N;;;;;
+ 135FF;EGYPTIAN HIEROGLYPH-135FF;Lo;0;L;;;;;N;;;;;
+ 13600;EGYPTIAN HIEROGLYPH-13600;Lo;0;L;;;;;N;;;;;
+ 13601;EGYPTIAN HIEROGLYPH-13601;Lo;0;L;;;;;N;;;;;
+ 13602;EGYPTIAN HIEROGLYPH-13602;Lo;0;L;;;;;N;;;;;
+ 13603;EGYPTIAN HIEROGLYPH-13603;Lo;0;L;;;;;N;;;;;
+ 13604;EGYPTIAN HIEROGLYPH-13604;Lo;0;L;;;;;N;;;;;
+ 13605;EGYPTIAN HIEROGLYPH-13605;Lo;0;L;;;;;N;;;;;
+ 13606;EGYPTIAN HIEROGLYPH-13606;Lo;0;L;;;;;N;;;;;
+ 13607;EGYPTIAN HIEROGLYPH-13607;Lo;0;L;;;;;N;;;;;
+ 13608;EGYPTIAN HIEROGLYPH-13608;Lo;0;L;;;;;N;;;;;
+ 13609;EGYPTIAN HIEROGLYPH-13609;Lo;0;L;;;;;N;;;;;
+ 1360A;EGYPTIAN HIEROGLYPH-1360A;Lo;0;L;;;;;N;;;;;
+ 1360B;EGYPTIAN HIEROGLYPH-1360B;Lo;0;L;;;;;N;;;;;
+ 1360C;EGYPTIAN HIEROGLYPH-1360C;Lo;0;L;;;;;N;;;;;
+ 1360D;EGYPTIAN HIEROGLYPH-1360D;Lo;0;L;;;;;N;;;;;
+ 1360E;EGYPTIAN HIEROGLYPH-1360E;Lo;0;L;;;;;N;;;;;
+ 1360F;EGYPTIAN HIEROGLYPH-1360F;Lo;0;L;;;;;N;;;;;
+ 13610;EGYPTIAN HIEROGLYPH-13610;Lo;0;L;;;;;N;;;;;
+ 13611;EGYPTIAN HIEROGLYPH-13611;Lo;0;L;;;;;N;;;;;
+ 13612;EGYPTIAN HIEROGLYPH-13612;Lo;0;L;;;;;N;;;;;
+ 13613;EGYPTIAN HIEROGLYPH-13613;Lo;0;L;;;;;N;;;;;
+ 13614;EGYPTIAN HIEROGLYPH-13614;Lo;0;L;;;;;N;;;;;
+ 13615;EGYPTIAN HIEROGLYPH-13615;Lo;0;L;;;;;N;;;;;
+ 13616;EGYPTIAN HIEROGLYPH-13616;Lo;0;L;;;;;N;;;;;
+ 13617;EGYPTIAN HIEROGLYPH-13617;Lo;0;L;;;;;N;;;;;
+ 13618;EGYPTIAN HIEROGLYPH-13618;Lo;0;L;;;;;N;;;;;
+ 13619;EGYPTIAN HIEROGLYPH-13619;Lo;0;L;;;;;N;;;;;
+ 1361A;EGYPTIAN HIEROGLYPH-1361A;Lo;0;L;;;;;N;;;;;
+ 1361B;EGYPTIAN HIEROGLYPH-1361B;Lo;0;L;;;;;N;;;;;
+ 1361C;EGYPTIAN HIEROGLYPH-1361C;Lo;0;L;;;;;N;;;;;
+ 1361D;EGYPTIAN HIEROGLYPH-1361D;Lo;0;L;;;;;N;;;;;
+ 1361E;EGYPTIAN HIEROGLYPH-1361E;Lo;0;L;;;;;N;;;;;
+ 1361F;EGYPTIAN HIEROGLYPH-1361F;Lo;0;L;;;;;N;;;;;
+ 13620;EGYPTIAN HIEROGLYPH-13620;Lo;0;L;;;;;N;;;;;
+ 13621;EGYPTIAN HIEROGLYPH-13621;Lo;0;L;;;;;N;;;;;
+ 13622;EGYPTIAN HIEROGLYPH-13622;Lo;0;L;;;;;N;;;;;
+ 13623;EGYPTIAN HIEROGLYPH-13623;Lo;0;L;;;;;N;;;;;
+ 13624;EGYPTIAN HIEROGLYPH-13624;Lo;0;L;;;;;N;;;;;
+ 13625;EGYPTIAN HIEROGLYPH-13625;Lo;0;L;;;;;N;;;;;
+ 13626;EGYPTIAN HIEROGLYPH-13626;Lo;0;L;;;;;N;;;;;
+ 13627;EGYPTIAN HIEROGLYPH-13627;Lo;0;L;;;;;N;;;;;
+ 13628;EGYPTIAN HIEROGLYPH-13628;Lo;0;L;;;;;N;;;;;
+ 13629;EGYPTIAN HIEROGLYPH-13629;Lo;0;L;;;;;N;;;;;
+ 1362A;EGYPTIAN HIEROGLYPH-1362A;Lo;0;L;;;;;N;;;;;
+ 1362B;EGYPTIAN HIEROGLYPH-1362B;Lo;0;L;;;;;N;;;;;
+ 1362C;EGYPTIAN HIEROGLYPH-1362C;Lo;0;L;;;;;N;;;;;
+ 1362D;EGYPTIAN HIEROGLYPH-1362D;Lo;0;L;;;;;N;;;;;
+ 1362E;EGYPTIAN HIEROGLYPH-1362E;Lo;0;L;;;;;N;;;;;
+ 1362F;EGYPTIAN HIEROGLYPH-1362F;Lo;0;L;;;;;N;;;;;
+ 13630;EGYPTIAN HIEROGLYPH-13630;Lo;0;L;;;;;N;;;;;
+ 13631;EGYPTIAN HIEROGLYPH-13631;Lo;0;L;;;;;N;;;;;
+ 13632;EGYPTIAN HIEROGLYPH-13632;Lo;0;L;;;;;N;;;;;
+ 13633;EGYPTIAN HIEROGLYPH-13633;Lo;0;L;;;;;N;;;;;
+ 13634;EGYPTIAN HIEROGLYPH-13634;Lo;0;L;;;;;N;;;;;
+ 13635;EGYPTIAN HIEROGLYPH-13635;Lo;0;L;;;;;N;;;;;
+ 13636;EGYPTIAN HIEROGLYPH-13636;Lo;0;L;;;;;N;;;;;
+ 13637;EGYPTIAN HIEROGLYPH-13637;Lo;0;L;;;;;N;;;;;
+ 13638;EGYPTIAN HIEROGLYPH-13638;Lo;0;L;;;;;N;;;;;
+ 13639;EGYPTIAN HIEROGLYPH-13639;Lo;0;L;;;;;N;;;;;
+ 1363A;EGYPTIAN HIEROGLYPH-1363A;Lo;0;L;;;;;N;;;;;
+ 1363B;EGYPTIAN HIEROGLYPH-1363B;Lo;0;L;;;;;N;;;;;
+ 1363C;EGYPTIAN HIEROGLYPH-1363C;Lo;0;L;;;;;N;;;;;
+ 1363D;EGYPTIAN HIEROGLYPH-1363D;Lo;0;L;;;;;N;;;;;
+ 1363E;EGYPTIAN HIEROGLYPH-1363E;Lo;0;L;;;;;N;;;;;
+ 1363F;EGYPTIAN HIEROGLYPH-1363F;Lo;0;L;;;;;N;;;;;
+ 13640;EGYPTIAN HIEROGLYPH-13640;Lo;0;L;;;;;N;;;;;
+ 13641;EGYPTIAN HIEROGLYPH-13641;Lo;0;L;;;;;N;;;;;
+ 13642;EGYPTIAN HIEROGLYPH-13642;Lo;0;L;;;;;N;;;;;
+ 13643;EGYPTIAN HIEROGLYPH-13643;Lo;0;L;;;;;N;;;;;
+ 13644;EGYPTIAN HIEROGLYPH-13644;Lo;0;L;;;;;N;;;;;
+ 13645;EGYPTIAN HIEROGLYPH-13645;Lo;0;L;;;;;N;;;;;
+ 13646;EGYPTIAN HIEROGLYPH-13646;Lo;0;L;;;;;N;;;;;
+ 13647;EGYPTIAN HIEROGLYPH-13647;Lo;0;L;;;;;N;;;;;
+ 13648;EGYPTIAN HIEROGLYPH-13648;Lo;0;L;;;;;N;;;;;
+ 13649;EGYPTIAN HIEROGLYPH-13649;Lo;0;L;;;;;N;;;;;
+ 1364A;EGYPTIAN HIEROGLYPH-1364A;Lo;0;L;;;;;N;;;;;
+ 1364B;EGYPTIAN HIEROGLYPH-1364B;Lo;0;L;;;;;N;;;;;
+ 1364C;EGYPTIAN HIEROGLYPH-1364C;Lo;0;L;;;;;N;;;;;
+ 1364D;EGYPTIAN HIEROGLYPH-1364D;Lo;0;L;;;;;N;;;;;
+ 1364E;EGYPTIAN HIEROGLYPH-1364E;Lo;0;L;;;;;N;;;;;
+ 1364F;EGYPTIAN HIEROGLYPH-1364F;Lo;0;L;;;;;N;;;;;
+ 13650;EGYPTIAN HIEROGLYPH-13650;Lo;0;L;;;;;N;;;;;
+ 13651;EGYPTIAN HIEROGLYPH-13651;Lo;0;L;;;;;N;;;;;
+ 13652;EGYPTIAN HIEROGLYPH-13652;Lo;0;L;;;;;N;;;;;
+ 13653;EGYPTIAN HIEROGLYPH-13653;Lo;0;L;;;;;N;;;;;
+ 13654;EGYPTIAN HIEROGLYPH-13654;Lo;0;L;;;;;N;;;;;
+ 13655;EGYPTIAN HIEROGLYPH-13655;Lo;0;L;;;;;N;;;;;
+ 13656;EGYPTIAN HIEROGLYPH-13656;Lo;0;L;;;;;N;;;;;
+ 13657;EGYPTIAN HIEROGLYPH-13657;Lo;0;L;;;;;N;;;;;
+ 13658;EGYPTIAN HIEROGLYPH-13658;Lo;0;L;;;;;N;;;;;
+ 13659;EGYPTIAN HIEROGLYPH-13659;Lo;0;L;;;;;N;;;;;
+ 1365A;EGYPTIAN HIEROGLYPH-1365A;Lo;0;L;;;;;N;;;;;
+ 1365B;EGYPTIAN HIEROGLYPH-1365B;Lo;0;L;;;;;N;;;;;
+ 1365C;EGYPTIAN HIEROGLYPH-1365C;Lo;0;L;;;;;N;;;;;
+ 1365D;EGYPTIAN HIEROGLYPH-1365D;Lo;0;L;;;;;N;;;;;
+ 1365E;EGYPTIAN HIEROGLYPH-1365E;Lo;0;L;;;;;N;;;;;
+ 1365F;EGYPTIAN HIEROGLYPH-1365F;Lo;0;L;;;;;N;;;;;
+ 13660;EGYPTIAN HIEROGLYPH-13660;Lo;0;L;;;;;N;;;;;
+ 13661;EGYPTIAN HIEROGLYPH-13661;Lo;0;L;;;;;N;;;;;
+ 13662;EGYPTIAN HIEROGLYPH-13662;Lo;0;L;;;;;N;;;;;
+ 13663;EGYPTIAN HIEROGLYPH-13663;Lo;0;L;;;;;N;;;;;
+ 13664;EGYPTIAN HIEROGLYPH-13664;Lo;0;L;;;;;N;;;;;
+ 13665;EGYPTIAN HIEROGLYPH-13665;Lo;0;L;;;;;N;;;;;
+ 13666;EGYPTIAN HIEROGLYPH-13666;Lo;0;L;;;;;N;;;;;
+ 13667;EGYPTIAN HIEROGLYPH-13667;Lo;0;L;;;;;N;;;;;
+ 13668;EGYPTIAN HIEROGLYPH-13668;Lo;0;L;;;;;N;;;;;
+ 13669;EGYPTIAN HIEROGLYPH-13669;Lo;0;L;;;;;N;;;;;
+ 1366A;EGYPTIAN HIEROGLYPH-1366A;Lo;0;L;;;;;N;;;;;
+ 1366B;EGYPTIAN HIEROGLYPH-1366B;Lo;0;L;;;;;N;;;;;
+ 1366C;EGYPTIAN HIEROGLYPH-1366C;Lo;0;L;;;;;N;;;;;
+ 1366D;EGYPTIAN HIEROGLYPH-1366D;Lo;0;L;;;;;N;;;;;
+ 1366E;EGYPTIAN HIEROGLYPH-1366E;Lo;0;L;;;;;N;;;;;
+ 1366F;EGYPTIAN HIEROGLYPH-1366F;Lo;0;L;;;;;N;;;;;
+ 13670;EGYPTIAN HIEROGLYPH-13670;Lo;0;L;;;;;N;;;;;
+ 13671;EGYPTIAN HIEROGLYPH-13671;Lo;0;L;;;;;N;;;;;
+ 13672;EGYPTIAN HIEROGLYPH-13672;Lo;0;L;;;;;N;;;;;
+ 13673;EGYPTIAN HIEROGLYPH-13673;Lo;0;L;;;;;N;;;;;
+ 13674;EGYPTIAN HIEROGLYPH-13674;Lo;0;L;;;;;N;;;;;
+ 13675;EGYPTIAN HIEROGLYPH-13675;Lo;0;L;;;;;N;;;;;
+ 13676;EGYPTIAN HIEROGLYPH-13676;Lo;0;L;;;;;N;;;;;
+ 13677;EGYPTIAN HIEROGLYPH-13677;Lo;0;L;;;;;N;;;;;
+ 13678;EGYPTIAN HIEROGLYPH-13678;Lo;0;L;;;;;N;;;;;
+ 13679;EGYPTIAN HIEROGLYPH-13679;Lo;0;L;;;;;N;;;;;
+ 1367A;EGYPTIAN HIEROGLYPH-1367A;Lo;0;L;;;;;N;;;;;
+ 1367B;EGYPTIAN HIEROGLYPH-1367B;Lo;0;L;;;;;N;;;;;
+ 1367C;EGYPTIAN HIEROGLYPH-1367C;Lo;0;L;;;;;N;;;;;
+ 1367D;EGYPTIAN HIEROGLYPH-1367D;Lo;0;L;;;;;N;;;;;
+ 1367E;EGYPTIAN HIEROGLYPH-1367E;Lo;0;L;;;;;N;;;;;
+ 1367F;EGYPTIAN HIEROGLYPH-1367F;Lo;0;L;;;;;N;;;;;
+ 13680;EGYPTIAN HIEROGLYPH-13680;Lo;0;L;;;;;N;;;;;
+ 13681;EGYPTIAN HIEROGLYPH-13681;Lo;0;L;;;;;N;;;;;
+ 13682;EGYPTIAN HIEROGLYPH-13682;Lo;0;L;;;;;N;;;;;
+ 13683;EGYPTIAN HIEROGLYPH-13683;Lo;0;L;;;;;N;;;;;
+ 13684;EGYPTIAN HIEROGLYPH-13684;Lo;0;L;;;;;N;;;;;
+ 13685;EGYPTIAN HIEROGLYPH-13685;Lo;0;L;;;;;N;;;;;
+ 13686;EGYPTIAN HIEROGLYPH-13686;Lo;0;L;;;;;N;;;;;
+ 13687;EGYPTIAN HIEROGLYPH-13687;Lo;0;L;;;;;N;;;;;
+ 13688;EGYPTIAN HIEROGLYPH-13688;Lo;0;L;;;;;N;;;;;
+ 13689;EGYPTIAN HIEROGLYPH-13689;Lo;0;L;;;;;N;;;;;
+ 1368A;EGYPTIAN HIEROGLYPH-1368A;Lo;0;L;;;;;N;;;;;
+ 1368B;EGYPTIAN HIEROGLYPH-1368B;Lo;0;L;;;;;N;;;;;
+ 1368C;EGYPTIAN HIEROGLYPH-1368C;Lo;0;L;;;;;N;;;;;
+ 1368D;EGYPTIAN HIEROGLYPH-1368D;Lo;0;L;;;;;N;;;;;
+ 1368E;EGYPTIAN HIEROGLYPH-1368E;Lo;0;L;;;;;N;;;;;
+ 1368F;EGYPTIAN HIEROGLYPH-1368F;Lo;0;L;;;;;N;;;;;
+ 13690;EGYPTIAN HIEROGLYPH-13690;Lo;0;L;;;;;N;;;;;
+ 13691;EGYPTIAN HIEROGLYPH-13691;Lo;0;L;;;;;N;;;;;
+ 13692;EGYPTIAN HIEROGLYPH-13692;Lo;0;L;;;;;N;;;;;
+ 13693;EGYPTIAN HIEROGLYPH-13693;Lo;0;L;;;;;N;;;;;
+ 13694;EGYPTIAN HIEROGLYPH-13694;Lo;0;L;;;;;N;;;;;
+ 13695;EGYPTIAN HIEROGLYPH-13695;Lo;0;L;;;;;N;;;;;
+ 13696;EGYPTIAN HIEROGLYPH-13696;Lo;0;L;;;;;N;;;;;
+ 13697;EGYPTIAN HIEROGLYPH-13697;Lo;0;L;;;;;N;;;;;
+ 13698;EGYPTIAN HIEROGLYPH-13698;Lo;0;L;;;;;N;;;;;
+ 13699;EGYPTIAN HIEROGLYPH-13699;Lo;0;L;;;;;N;;;;;
+ 1369A;EGYPTIAN HIEROGLYPH-1369A;Lo;0;L;;;;;N;;;;;
+ 1369B;EGYPTIAN HIEROGLYPH-1369B;Lo;0;L;;;;;N;;;;;
+ 1369C;EGYPTIAN HIEROGLYPH-1369C;Lo;0;L;;;;;N;;;;;
+ 1369D;EGYPTIAN HIEROGLYPH-1369D;Lo;0;L;;;;;N;;;;;
+ 1369E;EGYPTIAN HIEROGLYPH-1369E;Lo;0;L;;;;;N;;;;;
+ 1369F;EGYPTIAN HIEROGLYPH-1369F;Lo;0;L;;;;;N;;;;;
+ 136A0;EGYPTIAN HIEROGLYPH-136A0;Lo;0;L;;;;;N;;;;;
+ 136A1;EGYPTIAN HIEROGLYPH-136A1;Lo;0;L;;;;;N;;;;;
+ 136A2;EGYPTIAN HIEROGLYPH-136A2;Lo;0;L;;;;;N;;;;;
+ 136A3;EGYPTIAN HIEROGLYPH-136A3;Lo;0;L;;;;;N;;;;;
+ 136A4;EGYPTIAN HIEROGLYPH-136A4;Lo;0;L;;;;;N;;;;;
+ 136A5;EGYPTIAN HIEROGLYPH-136A5;Lo;0;L;;;;;N;;;;;
+ 136A6;EGYPTIAN HIEROGLYPH-136A6;Lo;0;L;;;;;N;;;;;
+ 136A7;EGYPTIAN HIEROGLYPH-136A7;Lo;0;L;;;;;N;;;;;
+ 136A8;EGYPTIAN HIEROGLYPH-136A8;Lo;0;L;;;;;N;;;;;
+ 136A9;EGYPTIAN HIEROGLYPH-136A9;Lo;0;L;;;;;N;;;;;
+ 136AA;EGYPTIAN HIEROGLYPH-136AA;Lo;0;L;;;;;N;;;;;
+ 136AB;EGYPTIAN HIEROGLYPH-136AB;Lo;0;L;;;;;N;;;;;
+ 136AC;EGYPTIAN HIEROGLYPH-136AC;Lo;0;L;;;;;N;;;;;
+ 136AD;EGYPTIAN HIEROGLYPH-136AD;Lo;0;L;;;;;N;;;;;
+ 136AE;EGYPTIAN HIEROGLYPH-136AE;Lo;0;L;;;;;N;;;;;
+ 136AF;EGYPTIAN HIEROGLYPH-136AF;Lo;0;L;;;;;N;;;;;
+ 136B0;EGYPTIAN HIEROGLYPH-136B0;Lo;0;L;;;;;N;;;;;
+ 136B1;EGYPTIAN HIEROGLYPH-136B1;Lo;0;L;;;;;N;;;;;
+ 136B2;EGYPTIAN HIEROGLYPH-136B2;Lo;0;L;;;;;N;;;;;
+ 136B3;EGYPTIAN HIEROGLYPH-136B3;Lo;0;L;;;;;N;;;;;
+ 136B4;EGYPTIAN HIEROGLYPH-136B4;Lo;0;L;;;;;N;;;;;
+ 136B5;EGYPTIAN HIEROGLYPH-136B5;Lo;0;L;;;;;N;;;;;
+ 136B6;EGYPTIAN HIEROGLYPH-136B6;Lo;0;L;;;;;N;;;;;
+ 136B7;EGYPTIAN HIEROGLYPH-136B7;Lo;0;L;;;;;N;;;;;
+ 136B8;EGYPTIAN HIEROGLYPH-136B8;Lo;0;L;;;;;N;;;;;
+ 136B9;EGYPTIAN HIEROGLYPH-136B9;Lo;0;L;;;;;N;;;;;
+ 136BA;EGYPTIAN HIEROGLYPH-136BA;Lo;0;L;;;;;N;;;;;
+ 136BB;EGYPTIAN HIEROGLYPH-136BB;Lo;0;L;;;;;N;;;;;
+ 136BC;EGYPTIAN HIEROGLYPH-136BC;Lo;0;L;;;;;N;;;;;
+ 136BD;EGYPTIAN HIEROGLYPH-136BD;Lo;0;L;;;;;N;;;;;
+ 136BE;EGYPTIAN HIEROGLYPH-136BE;Lo;0;L;;;;;N;;;;;
+ 136BF;EGYPTIAN HIEROGLYPH-136BF;Lo;0;L;;;;;N;;;;;
+ 136C0;EGYPTIAN HIEROGLYPH-136C0;Lo;0;L;;;;;N;;;;;
+ 136C1;EGYPTIAN HIEROGLYPH-136C1;Lo;0;L;;;;;N;;;;;
+ 136C2;EGYPTIAN HIEROGLYPH-136C2;Lo;0;L;;;;;N;;;;;
+ 136C3;EGYPTIAN HIEROGLYPH-136C3;Lo;0;L;;;;;N;;;;;
+ 136C4;EGYPTIAN HIEROGLYPH-136C4;Lo;0;L;;;;;N;;;;;
+ 136C5;EGYPTIAN HIEROGLYPH-136C5;Lo;0;L;;;;;N;;;;;
+ 136C6;EGYPTIAN HIEROGLYPH-136C6;Lo;0;L;;;;;N;;;;;
+ 136C7;EGYPTIAN HIEROGLYPH-136C7;Lo;0;L;;;;;N;;;;;
+ 136C8;EGYPTIAN HIEROGLYPH-136C8;Lo;0;L;;;;;N;;;;;
+ 136C9;EGYPTIAN HIEROGLYPH-136C9;Lo;0;L;;;;;N;;;;;
+ 136CA;EGYPTIAN HIEROGLYPH-136CA;Lo;0;L;;;;;N;;;;;
+ 136CB;EGYPTIAN HIEROGLYPH-136CB;Lo;0;L;;;;;N;;;;;
+ 136CC;EGYPTIAN HIEROGLYPH-136CC;Lo;0;L;;;;;N;;;;;
+ 136CD;EGYPTIAN HIEROGLYPH-136CD;Lo;0;L;;;;;N;;;;;
+ 136CE;EGYPTIAN HIEROGLYPH-136CE;Lo;0;L;;;;;N;;;;;
+ 136CF;EGYPTIAN HIEROGLYPH-136CF;Lo;0;L;;;;;N;;;;;
+ 136D0;EGYPTIAN HIEROGLYPH-136D0;Lo;0;L;;;;;N;;;;;
+ 136D1;EGYPTIAN HIEROGLYPH-136D1;Lo;0;L;;;;;N;;;;;
+ 136D2;EGYPTIAN HIEROGLYPH-136D2;Lo;0;L;;;;;N;;;;;
+ 136D3;EGYPTIAN HIEROGLYPH-136D3;Lo;0;L;;;;;N;;;;;
+ 136D4;EGYPTIAN HIEROGLYPH-136D4;Lo;0;L;;;;;N;;;;;
+ 136D5;EGYPTIAN HIEROGLYPH-136D5;Lo;0;L;;;;;N;;;;;
+ 136D6;EGYPTIAN HIEROGLYPH-136D6;Lo;0;L;;;;;N;;;;;
+ 136D7;EGYPTIAN HIEROGLYPH-136D7;Lo;0;L;;;;;N;;;;;
+ 136D8;EGYPTIAN HIEROGLYPH-136D8;Lo;0;L;;;;;N;;;;;
+ 136D9;EGYPTIAN HIEROGLYPH-136D9;Lo;0;L;;;;;N;;;;;
+ 136DA;EGYPTIAN HIEROGLYPH-136DA;Lo;0;L;;;;;N;;;;;
+ 136DB;EGYPTIAN HIEROGLYPH-136DB;Lo;0;L;;;;;N;;;;;
+ 136DC;EGYPTIAN HIEROGLYPH-136DC;Lo;0;L;;;;;N;;;;;
+ 136DD;EGYPTIAN HIEROGLYPH-136DD;Lo;0;L;;;;;N;;;;;
+ 136DE;EGYPTIAN HIEROGLYPH-136DE;Lo;0;L;;;;;N;;;;;
+ 136DF;EGYPTIAN HIEROGLYPH-136DF;Lo;0;L;;;;;N;;;;;
+ 136E0;EGYPTIAN HIEROGLYPH-136E0;Lo;0;L;;;;;N;;;;;
+ 136E1;EGYPTIAN HIEROGLYPH-136E1;Lo;0;L;;;;;N;;;;;
+ 136E2;EGYPTIAN HIEROGLYPH-136E2;Lo;0;L;;;;;N;;;;;
+ 136E3;EGYPTIAN HIEROGLYPH-136E3;Lo;0;L;;;;;N;;;;;
+ 136E4;EGYPTIAN HIEROGLYPH-136E4;Lo;0;L;;;;;N;;;;;
+ 136E5;EGYPTIAN HIEROGLYPH-136E5;Lo;0;L;;;;;N;;;;;
+ 136E6;EGYPTIAN HIEROGLYPH-136E6;Lo;0;L;;;;;N;;;;;
+ 136E7;EGYPTIAN HIEROGLYPH-136E7;Lo;0;L;;;;;N;;;;;
+ 136E8;EGYPTIAN HIEROGLYPH-136E8;Lo;0;L;;;;;N;;;;;
+ 136E9;EGYPTIAN HIEROGLYPH-136E9;Lo;0;L;;;;;N;;;;;
+ 136EA;EGYPTIAN HIEROGLYPH-136EA;Lo;0;L;;;;;N;;;;;
+ 136EB;EGYPTIAN HIEROGLYPH-136EB;Lo;0;L;;;;;N;;;;;
+ 136EC;EGYPTIAN HIEROGLYPH-136EC;Lo;0;L;;;;;N;;;;;
+ 136ED;EGYPTIAN HIEROGLYPH-136ED;Lo;0;L;;;;;N;;;;;
+ 136EE;EGYPTIAN HIEROGLYPH-136EE;Lo;0;L;;;;;N;;;;;
+ 136EF;EGYPTIAN HIEROGLYPH-136EF;Lo;0;L;;;;;N;;;;;
+ 136F0;EGYPTIAN HIEROGLYPH-136F0;Lo;0;L;;;;;N;;;;;
+ 136F1;EGYPTIAN HIEROGLYPH-136F1;Lo;0;L;;;;;N;;;;;
+ 136F2;EGYPTIAN HIEROGLYPH-136F2;Lo;0;L;;;;;N;;;;;
+ 136F3;EGYPTIAN HIEROGLYPH-136F3;Lo;0;L;;;;;N;;;;;
+ 136F4;EGYPTIAN HIEROGLYPH-136F4;Lo;0;L;;;;;N;;;;;
+ 136F5;EGYPTIAN HIEROGLYPH-136F5;Lo;0;L;;;;;N;;;;;
+ 136F6;EGYPTIAN HIEROGLYPH-136F6;Lo;0;L;;;;;N;;;;;
+ 136F7;EGYPTIAN HIEROGLYPH-136F7;Lo;0;L;;;;;N;;;;;
+ 136F8;EGYPTIAN HIEROGLYPH-136F8;Lo;0;L;;;;;N;;;;;
+ 136F9;EGYPTIAN HIEROGLYPH-136F9;Lo;0;L;;;;;N;;;;;
+ 136FA;EGYPTIAN HIEROGLYPH-136FA;Lo;0;L;;;;;N;;;;;
+ 136FB;EGYPTIAN HIEROGLYPH-136FB;Lo;0;L;;;;;N;;;;;
+ 136FC;EGYPTIAN HIEROGLYPH-136FC;Lo;0;L;;;;;N;;;;;
+ 136FD;EGYPTIAN HIEROGLYPH-136FD;Lo;0;L;;;;;N;;;;;
+ 136FE;EGYPTIAN HIEROGLYPH-136FE;Lo;0;L;;;;;N;;;;;
+ 136FF;EGYPTIAN HIEROGLYPH-136FF;Lo;0;L;;;;;N;;;;;
+ 13700;EGYPTIAN HIEROGLYPH-13700;Lo;0;L;;;;;N;;;;;
+ 13701;EGYPTIAN HIEROGLYPH-13701;Lo;0;L;;;;;N;;;;;
+ 13702;EGYPTIAN HIEROGLYPH-13702;Lo;0;L;;;;;N;;;;;
+ 13703;EGYPTIAN HIEROGLYPH-13703;Lo;0;L;;;;;N;;;;;
+ 13704;EGYPTIAN HIEROGLYPH-13704;Lo;0;L;;;;;N;;;;;
+ 13705;EGYPTIAN HIEROGLYPH-13705;Lo;0;L;;;;;N;;;;;
+ 13706;EGYPTIAN HIEROGLYPH-13706;Lo;0;L;;;;;N;;;;;
+ 13707;EGYPTIAN HIEROGLYPH-13707;Lo;0;L;;;;;N;;;;;
+ 13708;EGYPTIAN HIEROGLYPH-13708;Lo;0;L;;;;;N;;;;;
+ 13709;EGYPTIAN HIEROGLYPH-13709;Lo;0;L;;;;;N;;;;;
+ 1370A;EGYPTIAN HIEROGLYPH-1370A;Lo;0;L;;;;;N;;;;;
+ 1370B;EGYPTIAN HIEROGLYPH-1370B;Lo;0;L;;;;;N;;;;;
+ 1370C;EGYPTIAN HIEROGLYPH-1370C;Lo;0;L;;;;;N;;;;;
+ 1370D;EGYPTIAN HIEROGLYPH-1370D;Lo;0;L;;;;;N;;;;;
+ 1370E;EGYPTIAN HIEROGLYPH-1370E;Lo;0;L;;;;;N;;;;;
+ 1370F;EGYPTIAN HIEROGLYPH-1370F;Lo;0;L;;;;;N;;;;;
+ 13710;EGYPTIAN HIEROGLYPH-13710;Lo;0;L;;;;;N;;;;;
+ 13711;EGYPTIAN HIEROGLYPH-13711;Lo;0;L;;;;;N;;;;;
+ 13712;EGYPTIAN HIEROGLYPH-13712;Lo;0;L;;;;;N;;;;;
+ 13713;EGYPTIAN HIEROGLYPH-13713;Lo;0;L;;;;;N;;;;;
+ 13714;EGYPTIAN HIEROGLYPH-13714;Lo;0;L;;;;;N;;;;;
+ 13715;EGYPTIAN HIEROGLYPH-13715;Lo;0;L;;;;;N;;;;;
+ 13716;EGYPTIAN HIEROGLYPH-13716;Lo;0;L;;;;;N;;;;;
+ 13717;EGYPTIAN HIEROGLYPH-13717;Lo;0;L;;;;;N;;;;;
+ 13718;EGYPTIAN HIEROGLYPH-13718;Lo;0;L;;;;;N;;;;;
+ 13719;EGYPTIAN HIEROGLYPH-13719;Lo;0;L;;;;;N;;;;;
+ 1371A;EGYPTIAN HIEROGLYPH-1371A;Lo;0;L;;;;;N;;;;;
+ 1371B;EGYPTIAN HIEROGLYPH-1371B;Lo;0;L;;;;;N;;;;;
+ 1371C;EGYPTIAN HIEROGLYPH-1371C;Lo;0;L;;;;;N;;;;;
+ 1371D;EGYPTIAN HIEROGLYPH-1371D;Lo;0;L;;;;;N;;;;;
+ 1371E;EGYPTIAN HIEROGLYPH-1371E;Lo;0;L;;;;;N;;;;;
+ 1371F;EGYPTIAN HIEROGLYPH-1371F;Lo;0;L;;;;;N;;;;;
+ 13720;EGYPTIAN HIEROGLYPH-13720;Lo;0;L;;;;;N;;;;;
+ 13721;EGYPTIAN HIEROGLYPH-13721;Lo;0;L;;;;;N;;;;;
+ 13722;EGYPTIAN HIEROGLYPH-13722;Lo;0;L;;;;;N;;;;;
+ 13723;EGYPTIAN HIEROGLYPH-13723;Lo;0;L;;;;;N;;;;;
+ 13724;EGYPTIAN HIEROGLYPH-13724;Lo;0;L;;;;;N;;;;;
+ 13725;EGYPTIAN HIEROGLYPH-13725;Lo;0;L;;;;;N;;;;;
+ 13726;EGYPTIAN HIEROGLYPH-13726;Lo;0;L;;;;;N;;;;;
+ 13727;EGYPTIAN HIEROGLYPH-13727;Lo;0;L;;;;;N;;;;;
+ 13728;EGYPTIAN HIEROGLYPH-13728;Lo;0;L;;;;;N;;;;;
+ 13729;EGYPTIAN HIEROGLYPH-13729;Lo;0;L;;;;;N;;;;;
+ 1372A;EGYPTIAN HIEROGLYPH-1372A;Lo;0;L;;;;;N;;;;;
+ 1372B;EGYPTIAN HIEROGLYPH-1372B;Lo;0;L;;;;;N;;;;;
+ 1372C;EGYPTIAN HIEROGLYPH-1372C;Lo;0;L;;;;;N;;;;;
+ 1372D;EGYPTIAN HIEROGLYPH-1372D;Lo;0;L;;;;;N;;;;;
+ 1372E;EGYPTIAN HIEROGLYPH-1372E;Lo;0;L;;;;;N;;;;;
+ 1372F;EGYPTIAN HIEROGLYPH-1372F;Lo;0;L;;;;;N;;;;;
+ 13730;EGYPTIAN HIEROGLYPH-13730;Lo;0;L;;;;;N;;;;;
+ 13731;EGYPTIAN HIEROGLYPH-13731;Lo;0;L;;;;;N;;;;;
+ 13732;EGYPTIAN HIEROGLYPH-13732;Lo;0;L;;;;;N;;;;;
+ 13733;EGYPTIAN HIEROGLYPH-13733;Lo;0;L;;;;;N;;;;;
+ 13734;EGYPTIAN HIEROGLYPH-13734;Lo;0;L;;;;;N;;;;;
+ 13735;EGYPTIAN HIEROGLYPH-13735;Lo;0;L;;;;;N;;;;;
+ 13736;EGYPTIAN HIEROGLYPH-13736;Lo;0;L;;;;;N;;;;;
+ 13737;EGYPTIAN HIEROGLYPH-13737;Lo;0;L;;;;;N;;;;;
+ 13738;EGYPTIAN HIEROGLYPH-13738;Lo;0;L;;;;;N;;;;;
+ 13739;EGYPTIAN HIEROGLYPH-13739;Lo;0;L;;;;;N;;;;;
+ 1373A;EGYPTIAN HIEROGLYPH-1373A;Lo;0;L;;;;;N;;;;;
+ 1373B;EGYPTIAN HIEROGLYPH-1373B;Lo;0;L;;;;;N;;;;;
+ 1373C;EGYPTIAN HIEROGLYPH-1373C;Lo;0;L;;;;;N;;;;;
+ 1373D;EGYPTIAN HIEROGLYPH-1373D;Lo;0;L;;;;;N;;;;;
+ 1373E;EGYPTIAN HIEROGLYPH-1373E;Lo;0;L;;;;;N;;;;;
+ 1373F;EGYPTIAN HIEROGLYPH-1373F;Lo;0;L;;;;;N;;;;;
+ 13740;EGYPTIAN HIEROGLYPH-13740;Lo;0;L;;;;;N;;;;;
+ 13741;EGYPTIAN HIEROGLYPH-13741;Lo;0;L;;;;;N;;;;;
+ 13742;EGYPTIAN HIEROGLYPH-13742;Lo;0;L;;;;;N;;;;;
+ 13743;EGYPTIAN HIEROGLYPH-13743;Lo;0;L;;;;;N;;;;;
+ 13744;EGYPTIAN HIEROGLYPH-13744;Lo;0;L;;;;;N;;;;;
+ 13745;EGYPTIAN HIEROGLYPH-13745;Lo;0;L;;;;;N;;;;;
+ 13746;EGYPTIAN HIEROGLYPH-13746;Lo;0;L;;;;;N;;;;;
+ 13747;EGYPTIAN HIEROGLYPH-13747;Lo;0;L;;;;;N;;;;;
+ 13748;EGYPTIAN HIEROGLYPH-13748;Lo;0;L;;;;;N;;;;;
+ 13749;EGYPTIAN HIEROGLYPH-13749;Lo;0;L;;;;;N;;;;;
+ 1374A;EGYPTIAN HIEROGLYPH-1374A;Lo;0;L;;;;;N;;;;;
+ 1374B;EGYPTIAN HIEROGLYPH-1374B;Lo;0;L;;;;;N;;;;;
+ 1374C;EGYPTIAN HIEROGLYPH-1374C;Lo;0;L;;;;;N;;;;;
+ 1374D;EGYPTIAN HIEROGLYPH-1374D;Lo;0;L;;;;;N;;;;;
+ 1374E;EGYPTIAN HIEROGLYPH-1374E;Lo;0;L;;;;;N;;;;;
+ 1374F;EGYPTIAN HIEROGLYPH-1374F;Lo;0;L;;;;;N;;;;;
+ 13750;EGYPTIAN HIEROGLYPH-13750;Lo;0;L;;;;;N;;;;;
+ 13751;EGYPTIAN HIEROGLYPH-13751;Lo;0;L;;;;;N;;;;;
+ 13752;EGYPTIAN HIEROGLYPH-13752;Lo;0;L;;;;;N;;;;;
+ 13753;EGYPTIAN HIEROGLYPH-13753;Lo;0;L;;;;;N;;;;;
+ 13754;EGYPTIAN HIEROGLYPH-13754;Lo;0;L;;;;;N;;;;;
+ 13755;EGYPTIAN HIEROGLYPH-13755;Lo;0;L;;;;;N;;;;;
+ 13756;EGYPTIAN HIEROGLYPH-13756;Lo;0;L;;;;;N;;;;;
+ 13757;EGYPTIAN HIEROGLYPH-13757;Lo;0;L;;;;;N;;;;;
+ 13758;EGYPTIAN HIEROGLYPH-13758;Lo;0;L;;;;;N;;;;;
+ 13759;EGYPTIAN HIEROGLYPH-13759;Lo;0;L;;;;;N;;;;;
+ 1375A;EGYPTIAN HIEROGLYPH-1375A;Lo;0;L;;;;;N;;;;;
+ 1375B;EGYPTIAN HIEROGLYPH-1375B;Lo;0;L;;;;;N;;;;;
+ 1375C;EGYPTIAN HIEROGLYPH-1375C;Lo;0;L;;;;;N;;;;;
+ 1375D;EGYPTIAN HIEROGLYPH-1375D;Lo;0;L;;;;;N;;;;;
+ 1375E;EGYPTIAN HIEROGLYPH-1375E;Lo;0;L;;;;;N;;;;;
+ 1375F;EGYPTIAN HIEROGLYPH-1375F;Lo;0;L;;;;;N;;;;;
+ 13760;EGYPTIAN HIEROGLYPH-13760;Lo;0;L;;;;;N;;;;;
+ 13761;EGYPTIAN HIEROGLYPH-13761;Lo;0;L;;;;;N;;;;;
+ 13762;EGYPTIAN HIEROGLYPH-13762;Lo;0;L;;;;;N;;;;;
+ 13763;EGYPTIAN HIEROGLYPH-13763;Lo;0;L;;;;;N;;;;;
+ 13764;EGYPTIAN HIEROGLYPH-13764;Lo;0;L;;;;;N;;;;;
+ 13765;EGYPTIAN HIEROGLYPH-13765;Lo;0;L;;;;;N;;;;;
+ 13766;EGYPTIAN HIEROGLYPH-13766;Lo;0;L;;;;;N;;;;;
+ 13767;EGYPTIAN HIEROGLYPH-13767;Lo;0;L;;;;;N;;;;;
+ 13768;EGYPTIAN HIEROGLYPH-13768;Lo;0;L;;;;;N;;;;;
+ 13769;EGYPTIAN HIEROGLYPH-13769;Lo;0;L;;;;;N;;;;;
+ 1376A;EGYPTIAN HIEROGLYPH-1376A;Lo;0;L;;;;;N;;;;;
+ 1376B;EGYPTIAN HIEROGLYPH-1376B;Lo;0;L;;;;;N;;;;;
+ 1376C;EGYPTIAN HIEROGLYPH-1376C;Lo;0;L;;;;;N;;;;;
+ 1376D;EGYPTIAN HIEROGLYPH-1376D;Lo;0;L;;;;;N;;;;;
+ 1376E;EGYPTIAN HIEROGLYPH-1376E;Lo;0;L;;;;;N;;;;;
+ 1376F;EGYPTIAN HIEROGLYPH-1376F;Lo;0;L;;;;;N;;;;;
+ 13770;EGYPTIAN HIEROGLYPH-13770;Lo;0;L;;;;;N;;;;;
+ 13771;EGYPTIAN HIEROGLYPH-13771;Lo;0;L;;;;;N;;;;;
+ 13772;EGYPTIAN HIEROGLYPH-13772;Lo;0;L;;;;;N;;;;;
+ 13773;EGYPTIAN HIEROGLYPH-13773;Lo;0;L;;;;;N;;;;;
+ 13774;EGYPTIAN HIEROGLYPH-13774;Lo;0;L;;;;;N;;;;;
+ 13775;EGYPTIAN HIEROGLYPH-13775;Lo;0;L;;;;;N;;;;;
+ 13776;EGYPTIAN HIEROGLYPH-13776;Lo;0;L;;;;;N;;;;;
+ 13777;EGYPTIAN HIEROGLYPH-13777;Lo;0;L;;;;;N;;;;;
+ 13778;EGYPTIAN HIEROGLYPH-13778;Lo;0;L;;;;;N;;;;;
+ 13779;EGYPTIAN HIEROGLYPH-13779;Lo;0;L;;;;;N;;;;;
+ 1377A;EGYPTIAN HIEROGLYPH-1377A;Lo;0;L;;;;;N;;;;;
+ 1377B;EGYPTIAN HIEROGLYPH-1377B;Lo;0;L;;;;;N;;;;;
+ 1377C;EGYPTIAN HIEROGLYPH-1377C;Lo;0;L;;;;;N;;;;;
+ 1377D;EGYPTIAN HIEROGLYPH-1377D;Lo;0;L;;;;;N;;;;;
+ 1377E;EGYPTIAN HIEROGLYPH-1377E;Lo;0;L;;;;;N;;;;;
+ 1377F;EGYPTIAN HIEROGLYPH-1377F;Lo;0;L;;;;;N;;;;;
+ 13780;EGYPTIAN HIEROGLYPH-13780;Lo;0;L;;;;;N;;;;;
+ 13781;EGYPTIAN HIEROGLYPH-13781;Lo;0;L;;;;;N;;;;;
+ 13782;EGYPTIAN HIEROGLYPH-13782;Lo;0;L;;;;;N;;;;;
+ 13783;EGYPTIAN HIEROGLYPH-13783;Lo;0;L;;;;;N;;;;;
+ 13784;EGYPTIAN HIEROGLYPH-13784;Lo;0;L;;;;;N;;;;;
+ 13785;EGYPTIAN HIEROGLYPH-13785;Lo;0;L;;;;;N;;;;;
+ 13786;EGYPTIAN HIEROGLYPH-13786;Lo;0;L;;;;;N;;;;;
+ 13787;EGYPTIAN HIEROGLYPH-13787;Lo;0;L;;;;;N;;;;;
+ 13788;EGYPTIAN HIEROGLYPH-13788;Lo;0;L;;;;;N;;;;;
+ 13789;EGYPTIAN HIEROGLYPH-13789;Lo;0;L;;;;;N;;;;;
+ 1378A;EGYPTIAN HIEROGLYPH-1378A;Lo;0;L;;;;;N;;;;;
+ 1378B;EGYPTIAN HIEROGLYPH-1378B;Lo;0;L;;;;;N;;;;;
+ 1378C;EGYPTIAN HIEROGLYPH-1378C;Lo;0;L;;;;;N;;;;;
+ 1378D;EGYPTIAN HIEROGLYPH-1378D;Lo;0;L;;;;;N;;;;;
+ 1378E;EGYPTIAN HIEROGLYPH-1378E;Lo;0;L;;;;;N;;;;;
+ 1378F;EGYPTIAN HIEROGLYPH-1378F;Lo;0;L;;;;;N;;;;;
+ 13790;EGYPTIAN HIEROGLYPH-13790;Lo;0;L;;;;;N;;;;;
+ 13791;EGYPTIAN HIEROGLYPH-13791;Lo;0;L;;;;;N;;;;;
+ 13792;EGYPTIAN HIEROGLYPH-13792;Lo;0;L;;;;;N;;;;;
+ 13793;EGYPTIAN HIEROGLYPH-13793;Lo;0;L;;;;;N;;;;;
+ 13794;EGYPTIAN HIEROGLYPH-13794;Lo;0;L;;;;;N;;;;;
+ 13795;EGYPTIAN HIEROGLYPH-13795;Lo;0;L;;;;;N;;;;;
+ 13796;EGYPTIAN HIEROGLYPH-13796;Lo;0;L;;;;;N;;;;;
+ 13797;EGYPTIAN HIEROGLYPH-13797;Lo;0;L;;;;;N;;;;;
+ 13798;EGYPTIAN HIEROGLYPH-13798;Lo;0;L;;;;;N;;;;;
+ 13799;EGYPTIAN HIEROGLYPH-13799;Lo;0;L;;;;;N;;;;;
+ 1379A;EGYPTIAN HIEROGLYPH-1379A;Lo;0;L;;;;;N;;;;;
+ 1379B;EGYPTIAN HIEROGLYPH-1379B;Lo;0;L;;;;;N;;;;;
+ 1379C;EGYPTIAN HIEROGLYPH-1379C;Lo;0;L;;;;;N;;;;;
+ 1379D;EGYPTIAN HIEROGLYPH-1379D;Lo;0;L;;;;;N;;;;;
+ 1379E;EGYPTIAN HIEROGLYPH-1379E;Lo;0;L;;;;;N;;;;;
+ 1379F;EGYPTIAN HIEROGLYPH-1379F;Lo;0;L;;;;;N;;;;;
+ 137A0;EGYPTIAN HIEROGLYPH-137A0;Lo;0;L;;;;;N;;;;;
+ 137A1;EGYPTIAN HIEROGLYPH-137A1;Lo;0;L;;;;;N;;;;;
+ 137A2;EGYPTIAN HIEROGLYPH-137A2;Lo;0;L;;;;;N;;;;;
+ 137A3;EGYPTIAN HIEROGLYPH-137A3;Lo;0;L;;;;;N;;;;;
+ 137A4;EGYPTIAN HIEROGLYPH-137A4;Lo;0;L;;;;;N;;;;;
+ 137A5;EGYPTIAN HIEROGLYPH-137A5;Lo;0;L;;;;;N;;;;;
+ 137A6;EGYPTIAN HIEROGLYPH-137A6;Lo;0;L;;;;;N;;;;;
+ 137A7;EGYPTIAN HIEROGLYPH-137A7;Lo;0;L;;;;;N;;;;;
+ 137A8;EGYPTIAN HIEROGLYPH-137A8;Lo;0;L;;;;;N;;;;;
+ 137A9;EGYPTIAN HIEROGLYPH-137A9;Lo;0;L;;;;;N;;;;;
+ 137AA;EGYPTIAN HIEROGLYPH-137AA;Lo;0;L;;;;;N;;;;;
+ 137AB;EGYPTIAN HIEROGLYPH-137AB;Lo;0;L;;;;;N;;;;;
+ 137AC;EGYPTIAN HIEROGLYPH-137AC;Lo;0;L;;;;;N;;;;;
+ 137AD;EGYPTIAN HIEROGLYPH-137AD;Lo;0;L;;;;;N;;;;;
+ 137AE;EGYPTIAN HIEROGLYPH-137AE;Lo;0;L;;;;;N;;;;;
+ 137AF;EGYPTIAN HIEROGLYPH-137AF;Lo;0;L;;;;;N;;;;;
+ 137B0;EGYPTIAN HIEROGLYPH-137B0;Lo;0;L;;;;;N;;;;;
+ 137B1;EGYPTIAN HIEROGLYPH-137B1;Lo;0;L;;;;;N;;;;;
+ 137B2;EGYPTIAN HIEROGLYPH-137B2;Lo;0;L;;;;;N;;;;;
+ 137B3;EGYPTIAN HIEROGLYPH-137B3;Lo;0;L;;;;;N;;;;;
+ 137B4;EGYPTIAN HIEROGLYPH-137B4;Lo;0;L;;;;;N;;;;;
+ 137B5;EGYPTIAN HIEROGLYPH-137B5;Lo;0;L;;;;;N;;;;;
+ 137B6;EGYPTIAN HIEROGLYPH-137B6;Lo;0;L;;;;;N;;;;;
+ 137B7;EGYPTIAN HIEROGLYPH-137B7;Lo;0;L;;;;;N;;;;;
+ 137B8;EGYPTIAN HIEROGLYPH-137B8;Lo;0;L;;;;;N;;;;;
+ 137B9;EGYPTIAN HIEROGLYPH-137B9;Lo;0;L;;;;;N;;;;;
+ 137BA;EGYPTIAN HIEROGLYPH-137BA;Lo;0;L;;;;;N;;;;;
+ 137BB;EGYPTIAN HIEROGLYPH-137BB;Lo;0;L;;;;;N;;;;;
+ 137BC;EGYPTIAN HIEROGLYPH-137BC;Lo;0;L;;;;;N;;;;;
+ 137BD;EGYPTIAN HIEROGLYPH-137BD;Lo;0;L;;;;;N;;;;;
+ 137BE;EGYPTIAN HIEROGLYPH-137BE;Lo;0;L;;;;;N;;;;;
+ 137BF;EGYPTIAN HIEROGLYPH-137BF;Lo;0;L;;;;;N;;;;;
+ 137C0;EGYPTIAN HIEROGLYPH-137C0;Lo;0;L;;;;;N;;;;;
+ 137C1;EGYPTIAN HIEROGLYPH-137C1;Lo;0;L;;;;;N;;;;;
+ 137C2;EGYPTIAN HIEROGLYPH-137C2;Lo;0;L;;;;;N;;;;;
+ 137C3;EGYPTIAN HIEROGLYPH-137C3;Lo;0;L;;;;;N;;;;;
+ 137C4;EGYPTIAN HIEROGLYPH-137C4;Lo;0;L;;;;;N;;;;;
+ 137C5;EGYPTIAN HIEROGLYPH-137C5;Lo;0;L;;;;;N;;;;;
+ 137C6;EGYPTIAN HIEROGLYPH-137C6;Lo;0;L;;;;;N;;;;;
+ 137C7;EGYPTIAN HIEROGLYPH-137C7;Lo;0;L;;;;;N;;;;;
+ 137C8;EGYPTIAN HIEROGLYPH-137C8;Lo;0;L;;;;;N;;;;;
+ 137C9;EGYPTIAN HIEROGLYPH-137C9;Lo;0;L;;;;;N;;;;;
+ 137CA;EGYPTIAN HIEROGLYPH-137CA;Lo;0;L;;;;;N;;;;;
+ 137CB;EGYPTIAN HIEROGLYPH-137CB;Lo;0;L;;;;;N;;;;;
+ 137CC;EGYPTIAN HIEROGLYPH-137CC;Lo;0;L;;;;;N;;;;;
+ 137CD;EGYPTIAN HIEROGLYPH-137CD;Lo;0;L;;;;;N;;;;;
+ 137CE;EGYPTIAN HIEROGLYPH-137CE;Lo;0;L;;;;;N;;;;;
+ 137CF;EGYPTIAN HIEROGLYPH-137CF;Lo;0;L;;;;;N;;;;;
+ 137D0;EGYPTIAN HIEROGLYPH-137D0;Lo;0;L;;;;;N;;;;;
+ 137D1;EGYPTIAN HIEROGLYPH-137D1;Lo;0;L;;;;;N;;;;;
+ 137D2;EGYPTIAN HIEROGLYPH-137D2;Lo;0;L;;;;;N;;;;;
+ 137D3;EGYPTIAN HIEROGLYPH-137D3;Lo;0;L;;;;;N;;;;;
+ 137D4;EGYPTIAN HIEROGLYPH-137D4;Lo;0;L;;;;;N;;;;;
+ 137D5;EGYPTIAN HIEROGLYPH-137D5;Lo;0;L;;;;;N;;;;;
+ 137D6;EGYPTIAN HIEROGLYPH-137D6;Lo;0;L;;;;;N;;;;;
+ 137D7;EGYPTIAN HIEROGLYPH-137D7;Lo;0;L;;;;;N;;;;;
+ 137D8;EGYPTIAN HIEROGLYPH-137D8;Lo;0;L;;;;;N;;;;;
+ 137D9;EGYPTIAN HIEROGLYPH-137D9;Lo;0;L;;;;;N;;;;;
+ 137DA;EGYPTIAN HIEROGLYPH-137DA;Lo;0;L;;;;;N;;;;;
+ 137DB;EGYPTIAN HIEROGLYPH-137DB;Lo;0;L;;;;;N;;;;;
+ 137DC;EGYPTIAN HIEROGLYPH-137DC;Lo;0;L;;;;;N;;;;;
+ 137DD;EGYPTIAN HIEROGLYPH-137DD;Lo;0;L;;;;;N;;;;;
+ 137DE;EGYPTIAN HIEROGLYPH-137DE;Lo;0;L;;;;;N;;;;;
+ 137DF;EGYPTIAN HIEROGLYPH-137DF;Lo;0;L;;;;;N;;;;;
+ 137E0;EGYPTIAN HIEROGLYPH-137E0;Lo;0;L;;;;;N;;;;;
+ 137E1;EGYPTIAN HIEROGLYPH-137E1;Lo;0;L;;;;;N;;;;;
+ 137E2;EGYPTIAN HIEROGLYPH-137E2;Lo;0;L;;;;;N;;;;;
+ 137E3;EGYPTIAN HIEROGLYPH-137E3;Lo;0;L;;;;;N;;;;;
+ 137E4;EGYPTIAN HIEROGLYPH-137E4;Lo;0;L;;;;;N;;;;;
+ 137E5;EGYPTIAN HIEROGLYPH-137E5;Lo;0;L;;;;;N;;;;;
+ 137E6;EGYPTIAN HIEROGLYPH-137E6;Lo;0;L;;;;;N;;;;;
+ 137E7;EGYPTIAN HIEROGLYPH-137E7;Lo;0;L;;;;;N;;;;;
+ 137E8;EGYPTIAN HIEROGLYPH-137E8;Lo;0;L;;;;;N;;;;;
+ 137E9;EGYPTIAN HIEROGLYPH-137E9;Lo;0;L;;;;;N;;;;;
+ 137EA;EGYPTIAN HIEROGLYPH-137EA;Lo;0;L;;;;;N;;;;;
+ 137EB;EGYPTIAN HIEROGLYPH-137EB;Lo;0;L;;;;;N;;;;;
+ 137EC;EGYPTIAN HIEROGLYPH-137EC;Lo;0;L;;;;;N;;;;;
+ 137ED;EGYPTIAN HIEROGLYPH-137ED;Lo;0;L;;;;;N;;;;;
+ 137EE;EGYPTIAN HIEROGLYPH-137EE;Lo;0;L;;;;;N;;;;;
+ 137EF;EGYPTIAN HIEROGLYPH-137EF;Lo;0;L;;;;;N;;;;;
+ 137F0;EGYPTIAN HIEROGLYPH-137F0;Lo;0;L;;;;;N;;;;;
+ 137F1;EGYPTIAN HIEROGLYPH-137F1;Lo;0;L;;;;;N;;;;;
+ 137F2;EGYPTIAN HIEROGLYPH-137F2;Lo;0;L;;;;;N;;;;;
+ 137F3;EGYPTIAN HIEROGLYPH-137F3;Lo;0;L;;;;;N;;;;;
+ 137F4;EGYPTIAN HIEROGLYPH-137F4;Lo;0;L;;;;;N;;;;;
+ 137F5;EGYPTIAN HIEROGLYPH-137F5;Lo;0;L;;;;;N;;;;;
+ 137F6;EGYPTIAN HIEROGLYPH-137F6;Lo;0;L;;;;;N;;;;;
+ 137F7;EGYPTIAN HIEROGLYPH-137F7;Lo;0;L;;;;;N;;;;;
+ 137F8;EGYPTIAN HIEROGLYPH-137F8;Lo;0;L;;;;;N;;;;;
+ 137F9;EGYPTIAN HIEROGLYPH-137F9;Lo;0;L;;;;;N;;;;;
+ 137FA;EGYPTIAN HIEROGLYPH-137FA;Lo;0;L;;;;;N;;;;;
+ 137FB;EGYPTIAN HIEROGLYPH-137FB;Lo;0;L;;;;;N;;;;;
+ 137FC;EGYPTIAN HIEROGLYPH-137FC;Lo;0;L;;;;;N;;;;;
+ 137FD;EGYPTIAN HIEROGLYPH-137FD;Lo;0;L;;;;;N;;;;;
+ 137FE;EGYPTIAN HIEROGLYPH-137FE;Lo;0;L;;;;;N;;;;;
+ 137FF;EGYPTIAN HIEROGLYPH-137FF;Lo;0;L;;;;;N;;;;;
+ 13800;EGYPTIAN HIEROGLYPH-13800;Lo;0;L;;;;;N;;;;;
+ 13801;EGYPTIAN HIEROGLYPH-13801;Lo;0;L;;;;;N;;;;;
+ 13802;EGYPTIAN HIEROGLYPH-13802;Lo;0;L;;;;;N;;;;;
+ 13803;EGYPTIAN HIEROGLYPH-13803;Lo;0;L;;;;;N;;;;;
+ 13804;EGYPTIAN HIEROGLYPH-13804;Lo;0;L;;;;;N;;;;;
+ 13805;EGYPTIAN HIEROGLYPH-13805;Lo;0;L;;;;;N;;;;;
+ 13806;EGYPTIAN HIEROGLYPH-13806;Lo;0;L;;;;;N;;;;;
+ 13807;EGYPTIAN HIEROGLYPH-13807;Lo;0;L;;;;;N;;;;;
+ 13808;EGYPTIAN HIEROGLYPH-13808;Lo;0;L;;;;;N;;;;;
+ 13809;EGYPTIAN HIEROGLYPH-13809;Lo;0;L;;;;;N;;;;;
+ 1380A;EGYPTIAN HIEROGLYPH-1380A;Lo;0;L;;;;;N;;;;;
+ 1380B;EGYPTIAN HIEROGLYPH-1380B;Lo;0;L;;;;;N;;;;;
+ 1380C;EGYPTIAN HIEROGLYPH-1380C;Lo;0;L;;;;;N;;;;;
+ 1380D;EGYPTIAN HIEROGLYPH-1380D;Lo;0;L;;;;;N;;;;;
+ 1380E;EGYPTIAN HIEROGLYPH-1380E;Lo;0;L;;;;;N;;;;;
+ 1380F;EGYPTIAN HIEROGLYPH-1380F;Lo;0;L;;;;;N;;;;;
+ 13810;EGYPTIAN HIEROGLYPH-13810;Lo;0;L;;;;;N;;;;;
+ 13811;EGYPTIAN HIEROGLYPH-13811;Lo;0;L;;;;;N;;;;;
+ 13812;EGYPTIAN HIEROGLYPH-13812;Lo;0;L;;;;;N;;;;;
+ 13813;EGYPTIAN HIEROGLYPH-13813;Lo;0;L;;;;;N;;;;;
+ 13814;EGYPTIAN HIEROGLYPH-13814;Lo;0;L;;;;;N;;;;;
+ 13815;EGYPTIAN HIEROGLYPH-13815;Lo;0;L;;;;;N;;;;;
+ 13816;EGYPTIAN HIEROGLYPH-13816;Lo;0;L;;;;;N;;;;;
+ 13817;EGYPTIAN HIEROGLYPH-13817;Lo;0;L;;;;;N;;;;;
+ 13818;EGYPTIAN HIEROGLYPH-13818;Lo;0;L;;;;;N;;;;;
+ 13819;EGYPTIAN HIEROGLYPH-13819;Lo;0;L;;;;;N;;;;;
+ 1381A;EGYPTIAN HIEROGLYPH-1381A;Lo;0;L;;;;;N;;;;;
+ 1381B;EGYPTIAN HIEROGLYPH-1381B;Lo;0;L;;;;;N;;;;;
+ 1381C;EGYPTIAN HIEROGLYPH-1381C;Lo;0;L;;;;;N;;;;;
+ 1381D;EGYPTIAN HIEROGLYPH-1381D;Lo;0;L;;;;;N;;;;;
+ 1381E;EGYPTIAN HIEROGLYPH-1381E;Lo;0;L;;;;;N;;;;;
+ 1381F;EGYPTIAN HIEROGLYPH-1381F;Lo;0;L;;;;;N;;;;;
+ 13820;EGYPTIAN HIEROGLYPH-13820;Lo;0;L;;;;;N;;;;;
+ 13821;EGYPTIAN HIEROGLYPH-13821;Lo;0;L;;;;;N;;;;;
+ 13822;EGYPTIAN HIEROGLYPH-13822;Lo;0;L;;;;;N;;;;;
+ 13823;EGYPTIAN HIEROGLYPH-13823;Lo;0;L;;;;;N;;;;;
+ 13824;EGYPTIAN HIEROGLYPH-13824;Lo;0;L;;;;;N;;;;;
+ 13825;EGYPTIAN HIEROGLYPH-13825;Lo;0;L;;;;;N;;;;;
+ 13826;EGYPTIAN HIEROGLYPH-13826;Lo;0;L;;;;;N;;;;;
+ 13827;EGYPTIAN HIEROGLYPH-13827;Lo;0;L;;;;;N;;;;;
+ 13828;EGYPTIAN HIEROGLYPH-13828;Lo;0;L;;;;;N;;;;;
+ 13829;EGYPTIAN HIEROGLYPH-13829;Lo;0;L;;;;;N;;;;;
+ 1382A;EGYPTIAN HIEROGLYPH-1382A;Lo;0;L;;;;;N;;;;;
+ 1382B;EGYPTIAN HIEROGLYPH-1382B;Lo;0;L;;;;;N;;;;;
+ 1382C;EGYPTIAN HIEROGLYPH-1382C;Lo;0;L;;;;;N;;;;;
+ 1382D;EGYPTIAN HIEROGLYPH-1382D;Lo;0;L;;;;;N;;;;;
+ 1382E;EGYPTIAN HIEROGLYPH-1382E;Lo;0;L;;;;;N;;;;;
+ 1382F;EGYPTIAN HIEROGLYPH-1382F;Lo;0;L;;;;;N;;;;;
+ 13830;EGYPTIAN HIEROGLYPH-13830;Lo;0;L;;;;;N;;;;;
+ 13831;EGYPTIAN HIEROGLYPH-13831;Lo;0;L;;;;;N;;;;;
+ 13832;EGYPTIAN HIEROGLYPH-13832;Lo;0;L;;;;;N;;;;;
+ 13833;EGYPTIAN HIEROGLYPH-13833;Lo;0;L;;;;;N;;;;;
+ 13834;EGYPTIAN HIEROGLYPH-13834;Lo;0;L;;;;;N;;;;;
+ 13835;EGYPTIAN HIEROGLYPH-13835;Lo;0;L;;;;;N;;;;;
+ 13836;EGYPTIAN HIEROGLYPH-13836;Lo;0;L;;;;;N;;;;;
+ 13837;EGYPTIAN HIEROGLYPH-13837;Lo;0;L;;;;;N;;;;;
+ 13838;EGYPTIAN HIEROGLYPH-13838;Lo;0;L;;;;;N;;;;;
+ 13839;EGYPTIAN HIEROGLYPH-13839;Lo;0;L;;;;;N;;;;;
+ 1383A;EGYPTIAN HIEROGLYPH-1383A;Lo;0;L;;;;;N;;;;;
+ 1383B;EGYPTIAN HIEROGLYPH-1383B;Lo;0;L;;;;;N;;;;;
+ 1383C;EGYPTIAN HIEROGLYPH-1383C;Lo;0;L;;;;;N;;;;;
+ 1383D;EGYPTIAN HIEROGLYPH-1383D;Lo;0;L;;;;;N;;;;;
+ 1383E;EGYPTIAN HIEROGLYPH-1383E;Lo;0;L;;;;;N;;;;;
+ 1383F;EGYPTIAN HIEROGLYPH-1383F;Lo;0;L;;;;;N;;;;;
+ 13840;EGYPTIAN HIEROGLYPH-13840;Lo;0;L;;;;;N;;;;;
+ 13841;EGYPTIAN HIEROGLYPH-13841;Lo;0;L;;;;;N;;;;;
+ 13842;EGYPTIAN HIEROGLYPH-13842;Lo;0;L;;;;;N;;;;;
+ 13843;EGYPTIAN HIEROGLYPH-13843;Lo;0;L;;;;;N;;;;;
+ 13844;EGYPTIAN HIEROGLYPH-13844;Lo;0;L;;;;;N;;;;;
+ 13845;EGYPTIAN HIEROGLYPH-13845;Lo;0;L;;;;;N;;;;;
+ 13846;EGYPTIAN HIEROGLYPH-13846;Lo;0;L;;;;;N;;;;;
+ 13847;EGYPTIAN HIEROGLYPH-13847;Lo;0;L;;;;;N;;;;;
+ 13848;EGYPTIAN HIEROGLYPH-13848;Lo;0;L;;;;;N;;;;;
+ 13849;EGYPTIAN HIEROGLYPH-13849;Lo;0;L;;;;;N;;;;;
+ 1384A;EGYPTIAN HIEROGLYPH-1384A;Lo;0;L;;;;;N;;;;;
+ 1384B;EGYPTIAN HIEROGLYPH-1384B;Lo;0;L;;;;;N;;;;;
+ 1384C;EGYPTIAN HIEROGLYPH-1384C;Lo;0;L;;;;;N;;;;;
+ 1384D;EGYPTIAN HIEROGLYPH-1384D;Lo;0;L;;;;;N;;;;;
+ 1384E;EGYPTIAN HIEROGLYPH-1384E;Lo;0;L;;;;;N;;;;;
+ 1384F;EGYPTIAN HIEROGLYPH-1384F;Lo;0;L;;;;;N;;;;;
+ 13850;EGYPTIAN HIEROGLYPH-13850;Lo;0;L;;;;;N;;;;;
+ 13851;EGYPTIAN HIEROGLYPH-13851;Lo;0;L;;;;;N;;;;;
+ 13852;EGYPTIAN HIEROGLYPH-13852;Lo;0;L;;;;;N;;;;;
+ 13853;EGYPTIAN HIEROGLYPH-13853;Lo;0;L;;;;;N;;;;;
+ 13854;EGYPTIAN HIEROGLYPH-13854;Lo;0;L;;;;;N;;;;;
+ 13855;EGYPTIAN HIEROGLYPH-13855;Lo;0;L;;;;;N;;;;;
+ 13856;EGYPTIAN HIEROGLYPH-13856;Lo;0;L;;;;;N;;;;;
+ 13857;EGYPTIAN HIEROGLYPH-13857;Lo;0;L;;;;;N;;;;;
+ 13858;EGYPTIAN HIEROGLYPH-13858;Lo;0;L;;;;;N;;;;;
+ 13859;EGYPTIAN HIEROGLYPH-13859;Lo;0;L;;;;;N;;;;;
+ 1385A;EGYPTIAN HIEROGLYPH-1385A;Lo;0;L;;;;;N;;;;;
+ 1385B;EGYPTIAN HIEROGLYPH-1385B;Lo;0;L;;;;;N;;;;;
+ 1385C;EGYPTIAN HIEROGLYPH-1385C;Lo;0;L;;;;;N;;;;;
+ 1385D;EGYPTIAN HIEROGLYPH-1385D;Lo;0;L;;;;;N;;;;;
+ 1385E;EGYPTIAN HIEROGLYPH-1385E;Lo;0;L;;;;;N;;;;;
+ 1385F;EGYPTIAN HIEROGLYPH-1385F;Lo;0;L;;;;;N;;;;;
+ 13860;EGYPTIAN HIEROGLYPH-13860;Lo;0;L;;;;;N;;;;;
+ 13861;EGYPTIAN HIEROGLYPH-13861;Lo;0;L;;;;;N;;;;;
+ 13862;EGYPTIAN HIEROGLYPH-13862;Lo;0;L;;;;;N;;;;;
+ 13863;EGYPTIAN HIEROGLYPH-13863;Lo;0;L;;;;;N;;;;;
+ 13864;EGYPTIAN HIEROGLYPH-13864;Lo;0;L;;;;;N;;;;;
+ 13865;EGYPTIAN HIEROGLYPH-13865;Lo;0;L;;;;;N;;;;;
+ 13866;EGYPTIAN HIEROGLYPH-13866;Lo;0;L;;;;;N;;;;;
+ 13867;EGYPTIAN HIEROGLYPH-13867;Lo;0;L;;;;;N;;;;;
+ 13868;EGYPTIAN HIEROGLYPH-13868;Lo;0;L;;;;;N;;;;;
+ 13869;EGYPTIAN HIEROGLYPH-13869;Lo;0;L;;;;;N;;;;;
+ 1386A;EGYPTIAN HIEROGLYPH-1386A;Lo;0;L;;;;;N;;;;;
+ 1386B;EGYPTIAN HIEROGLYPH-1386B;Lo;0;L;;;;;N;;;;;
+ 1386C;EGYPTIAN HIEROGLYPH-1386C;Lo;0;L;;;;;N;;;;;
+ 1386D;EGYPTIAN HIEROGLYPH-1386D;Lo;0;L;;;;;N;;;;;
+ 1386E;EGYPTIAN HIEROGLYPH-1386E;Lo;0;L;;;;;N;;;;;
+ 1386F;EGYPTIAN HIEROGLYPH-1386F;Lo;0;L;;;;;N;;;;;
+ 13870;EGYPTIAN HIEROGLYPH-13870;Lo;0;L;;;;;N;;;;;
+ 13871;EGYPTIAN HIEROGLYPH-13871;Lo;0;L;;;;;N;;;;;
+ 13872;EGYPTIAN HIEROGLYPH-13872;Lo;0;L;;;;;N;;;;;
+ 13873;EGYPTIAN HIEROGLYPH-13873;Lo;0;L;;;;;N;;;;;
+ 13874;EGYPTIAN HIEROGLYPH-13874;Lo;0;L;;;;;N;;;;;
+ 13875;EGYPTIAN HIEROGLYPH-13875;Lo;0;L;;;;;N;;;;;
+ 13876;EGYPTIAN HIEROGLYPH-13876;Lo;0;L;;;;;N;;;;;
+ 13877;EGYPTIAN HIEROGLYPH-13877;Lo;0;L;;;;;N;;;;;
+ 13878;EGYPTIAN HIEROGLYPH-13878;Lo;0;L;;;;;N;;;;;
+ 13879;EGYPTIAN HIEROGLYPH-13879;Lo;0;L;;;;;N;;;;;
+ 1387A;EGYPTIAN HIEROGLYPH-1387A;Lo;0;L;;;;;N;;;;;
+ 1387B;EGYPTIAN HIEROGLYPH-1387B;Lo;0;L;;;;;N;;;;;
+ 1387C;EGYPTIAN HIEROGLYPH-1387C;Lo;0;L;;;;;N;;;;;
+ 1387D;EGYPTIAN HIEROGLYPH-1387D;Lo;0;L;;;;;N;;;;;
+ 1387E;EGYPTIAN HIEROGLYPH-1387E;Lo;0;L;;;;;N;;;;;
+ 1387F;EGYPTIAN HIEROGLYPH-1387F;Lo;0;L;;;;;N;;;;;
+ 13880;EGYPTIAN HIEROGLYPH-13880;Lo;0;L;;;;;N;;;;;
+ 13881;EGYPTIAN HIEROGLYPH-13881;Lo;0;L;;;;;N;;;;;
+ 13882;EGYPTIAN HIEROGLYPH-13882;Lo;0;L;;;;;N;;;;;
+ 13883;EGYPTIAN HIEROGLYPH-13883;Lo;0;L;;;;;N;;;;;
+ 13884;EGYPTIAN HIEROGLYPH-13884;Lo;0;L;;;;;N;;;;;
+ 13885;EGYPTIAN HIEROGLYPH-13885;Lo;0;L;;;;;N;;;;;
+ 13886;EGYPTIAN HIEROGLYPH-13886;Lo;0;L;;;;;N;;;;;
+ 13887;EGYPTIAN HIEROGLYPH-13887;Lo;0;L;;;;;N;;;;;
+ 13888;EGYPTIAN HIEROGLYPH-13888;Lo;0;L;;;;;N;;;;;
+ 13889;EGYPTIAN HIEROGLYPH-13889;Lo;0;L;;;;;N;;;;;
+ 1388A;EGYPTIAN HIEROGLYPH-1388A;Lo;0;L;;;;;N;;;;;
+ 1388B;EGYPTIAN HIEROGLYPH-1388B;Lo;0;L;;;;;N;;;;;
+ 1388C;EGYPTIAN HIEROGLYPH-1388C;Lo;0;L;;;;;N;;;;;
+ 1388D;EGYPTIAN HIEROGLYPH-1388D;Lo;0;L;;;;;N;;;;;
+ 1388E;EGYPTIAN HIEROGLYPH-1388E;Lo;0;L;;;;;N;;;;;
+ 1388F;EGYPTIAN HIEROGLYPH-1388F;Lo;0;L;;;;;N;;;;;
+ 13890;EGYPTIAN HIEROGLYPH-13890;Lo;0;L;;;;;N;;;;;
+ 13891;EGYPTIAN HIEROGLYPH-13891;Lo;0;L;;;;;N;;;;;
+ 13892;EGYPTIAN HIEROGLYPH-13892;Lo;0;L;;;;;N;;;;;
+ 13893;EGYPTIAN HIEROGLYPH-13893;Lo;0;L;;;;;N;;;;;
+ 13894;EGYPTIAN HIEROGLYPH-13894;Lo;0;L;;;;;N;;;;;
+ 13895;EGYPTIAN HIEROGLYPH-13895;Lo;0;L;;;;;N;;;;;
+ 13896;EGYPTIAN HIEROGLYPH-13896;Lo;0;L;;;;;N;;;;;
+ 13897;EGYPTIAN HIEROGLYPH-13897;Lo;0;L;;;;;N;;;;;
+ 13898;EGYPTIAN HIEROGLYPH-13898;Lo;0;L;;;;;N;;;;;
+ 13899;EGYPTIAN HIEROGLYPH-13899;Lo;0;L;;;;;N;;;;;
+ 1389A;EGYPTIAN HIEROGLYPH-1389A;Lo;0;L;;;;;N;;;;;
+ 1389B;EGYPTIAN HIEROGLYPH-1389B;Lo;0;L;;;;;N;;;;;
+ 1389C;EGYPTIAN HIEROGLYPH-1389C;Lo;0;L;;;;;N;;;;;
+ 1389D;EGYPTIAN HIEROGLYPH-1389D;Lo;0;L;;;;;N;;;;;
+ 1389E;EGYPTIAN HIEROGLYPH-1389E;Lo;0;L;;;;;N;;;;;
+ 1389F;EGYPTIAN HIEROGLYPH-1389F;Lo;0;L;;;;;N;;;;;
+ 138A0;EGYPTIAN HIEROGLYPH-138A0;Lo;0;L;;;;;N;;;;;
+ 138A1;EGYPTIAN HIEROGLYPH-138A1;Lo;0;L;;;;;N;;;;;
+ 138A2;EGYPTIAN HIEROGLYPH-138A2;Lo;0;L;;;;;N;;;;;
+ 138A3;EGYPTIAN HIEROGLYPH-138A3;Lo;0;L;;;;;N;;;;;
+ 138A4;EGYPTIAN HIEROGLYPH-138A4;Lo;0;L;;;;;N;;;;;
+ 138A5;EGYPTIAN HIEROGLYPH-138A5;Lo;0;L;;;;;N;;;;;
+ 138A6;EGYPTIAN HIEROGLYPH-138A6;Lo;0;L;;;;;N;;;;;
+ 138A7;EGYPTIAN HIEROGLYPH-138A7;Lo;0;L;;;;;N;;;;;
+ 138A8;EGYPTIAN HIEROGLYPH-138A8;Lo;0;L;;;;;N;;;;;
+ 138A9;EGYPTIAN HIEROGLYPH-138A9;Lo;0;L;;;;;N;;;;;
+ 138AA;EGYPTIAN HIEROGLYPH-138AA;Lo;0;L;;;;;N;;;;;
+ 138AB;EGYPTIAN HIEROGLYPH-138AB;Lo;0;L;;;;;N;;;;;
+ 138AC;EGYPTIAN HIEROGLYPH-138AC;Lo;0;L;;;;;N;;;;;
+ 138AD;EGYPTIAN HIEROGLYPH-138AD;Lo;0;L;;;;;N;;;;;
+ 138AE;EGYPTIAN HIEROGLYPH-138AE;Lo;0;L;;;;;N;;;;;
+ 138AF;EGYPTIAN HIEROGLYPH-138AF;Lo;0;L;;;;;N;;;;;
+ 138B0;EGYPTIAN HIEROGLYPH-138B0;Lo;0;L;;;;;N;;;;;
+ 138B1;EGYPTIAN HIEROGLYPH-138B1;Lo;0;L;;;;;N;;;;;
+ 138B2;EGYPTIAN HIEROGLYPH-138B2;Lo;0;L;;;;;N;;;;;
+ 138B3;EGYPTIAN HIEROGLYPH-138B3;Lo;0;L;;;;;N;;;;;
+ 138B4;EGYPTIAN HIEROGLYPH-138B4;Lo;0;L;;;;;N;;;;;
+ 138B5;EGYPTIAN HIEROGLYPH-138B5;Lo;0;L;;;;;N;;;;;
+ 138B6;EGYPTIAN HIEROGLYPH-138B6;Lo;0;L;;;;;N;;;;;
+ 138B7;EGYPTIAN HIEROGLYPH-138B7;Lo;0;L;;;;;N;;;;;
+ 138B8;EGYPTIAN HIEROGLYPH-138B8;Lo;0;L;;;;;N;;;;;
+ 138B9;EGYPTIAN HIEROGLYPH-138B9;Lo;0;L;;;;;N;;;;;
+ 138BA;EGYPTIAN HIEROGLYPH-138BA;Lo;0;L;;;;;N;;;;;
+ 138BB;EGYPTIAN HIEROGLYPH-138BB;Lo;0;L;;;;;N;;;;;
+ 138BC;EGYPTIAN HIEROGLYPH-138BC;Lo;0;L;;;;;N;;;;;
+ 138BD;EGYPTIAN HIEROGLYPH-138BD;Lo;0;L;;;;;N;;;;;
+ 138BE;EGYPTIAN HIEROGLYPH-138BE;Lo;0;L;;;;;N;;;;;
+ 138BF;EGYPTIAN HIEROGLYPH-138BF;Lo;0;L;;;;;N;;;;;
+ 138C0;EGYPTIAN HIEROGLYPH-138C0;Lo;0;L;;;;;N;;;;;
+ 138C1;EGYPTIAN HIEROGLYPH-138C1;Lo;0;L;;;;;N;;;;;
+ 138C2;EGYPTIAN HIEROGLYPH-138C2;Lo;0;L;;;;;N;;;;;
+ 138C3;EGYPTIAN HIEROGLYPH-138C3;Lo;0;L;;;;;N;;;;;
+ 138C4;EGYPTIAN HIEROGLYPH-138C4;Lo;0;L;;;;;N;;;;;
+ 138C5;EGYPTIAN HIEROGLYPH-138C5;Lo;0;L;;;;;N;;;;;
+ 138C6;EGYPTIAN HIEROGLYPH-138C6;Lo;0;L;;;;;N;;;;;
+ 138C7;EGYPTIAN HIEROGLYPH-138C7;Lo;0;L;;;;;N;;;;;
+ 138C8;EGYPTIAN HIEROGLYPH-138C8;Lo;0;L;;;;;N;;;;;
+ 138C9;EGYPTIAN HIEROGLYPH-138C9;Lo;0;L;;;;;N;;;;;
+ 138CA;EGYPTIAN HIEROGLYPH-138CA;Lo;0;L;;;;;N;;;;;
+ 138CB;EGYPTIAN HIEROGLYPH-138CB;Lo;0;L;;;;;N;;;;;
+ 138CC;EGYPTIAN HIEROGLYPH-138CC;Lo;0;L;;;;;N;;;;;
+ 138CD;EGYPTIAN HIEROGLYPH-138CD;Lo;0;L;;;;;N;;;;;
+ 138CE;EGYPTIAN HIEROGLYPH-138CE;Lo;0;L;;;;;N;;;;;
+ 138CF;EGYPTIAN HIEROGLYPH-138CF;Lo;0;L;;;;;N;;;;;
+ 138D0;EGYPTIAN HIEROGLYPH-138D0;Lo;0;L;;;;;N;;;;;
+ 138D1;EGYPTIAN HIEROGLYPH-138D1;Lo;0;L;;;;;N;;;;;
+ 138D2;EGYPTIAN HIEROGLYPH-138D2;Lo;0;L;;;;;N;;;;;
+ 138D3;EGYPTIAN HIEROGLYPH-138D3;Lo;0;L;;;;;N;;;;;
+ 138D4;EGYPTIAN HIEROGLYPH-138D4;Lo;0;L;;;;;N;;;;;
+ 138D5;EGYPTIAN HIEROGLYPH-138D5;Lo;0;L;;;;;N;;;;;
+ 138D6;EGYPTIAN HIEROGLYPH-138D6;Lo;0;L;;;;;N;;;;;
+ 138D7;EGYPTIAN HIEROGLYPH-138D7;Lo;0;L;;;;;N;;;;;
+ 138D8;EGYPTIAN HIEROGLYPH-138D8;Lo;0;L;;;;;N;;;;;
+ 138D9;EGYPTIAN HIEROGLYPH-138D9;Lo;0;L;;;;;N;;;;;
+ 138DA;EGYPTIAN HIEROGLYPH-138DA;Lo;0;L;;;;;N;;;;;
+ 138DB;EGYPTIAN HIEROGLYPH-138DB;Lo;0;L;;;;;N;;;;;
+ 138DC;EGYPTIAN HIEROGLYPH-138DC;Lo;0;L;;;;;N;;;;;
+ 138DD;EGYPTIAN HIEROGLYPH-138DD;Lo;0;L;;;;;N;;;;;
+ 138DE;EGYPTIAN HIEROGLYPH-138DE;Lo;0;L;;;;;N;;;;;
+ 138DF;EGYPTIAN HIEROGLYPH-138DF;Lo;0;L;;;;;N;;;;;
+ 138E0;EGYPTIAN HIEROGLYPH-138E0;Lo;0;L;;;;;N;;;;;
+ 138E1;EGYPTIAN HIEROGLYPH-138E1;Lo;0;L;;;;;N;;;;;
+ 138E2;EGYPTIAN HIEROGLYPH-138E2;Lo;0;L;;;;;N;;;;;
+ 138E3;EGYPTIAN HIEROGLYPH-138E3;Lo;0;L;;;;;N;;;;;
+ 138E4;EGYPTIAN HIEROGLYPH-138E4;Lo;0;L;;;;;N;;;;;
+ 138E5;EGYPTIAN HIEROGLYPH-138E5;Lo;0;L;;;;;N;;;;;
+ 138E6;EGYPTIAN HIEROGLYPH-138E6;Lo;0;L;;;;;N;;;;;
+ 138E7;EGYPTIAN HIEROGLYPH-138E7;Lo;0;L;;;;;N;;;;;
+ 138E8;EGYPTIAN HIEROGLYPH-138E8;Lo;0;L;;;;;N;;;;;
+ 138E9;EGYPTIAN HIEROGLYPH-138E9;Lo;0;L;;;;;N;;;;;
+ 138EA;EGYPTIAN HIEROGLYPH-138EA;Lo;0;L;;;;;N;;;;;
+ 138EB;EGYPTIAN HIEROGLYPH-138EB;Lo;0;L;;;;;N;;;;;
+ 138EC;EGYPTIAN HIEROGLYPH-138EC;Lo;0;L;;;;;N;;;;;
+ 138ED;EGYPTIAN HIEROGLYPH-138ED;Lo;0;L;;;;;N;;;;;
+ 138EE;EGYPTIAN HIEROGLYPH-138EE;Lo;0;L;;;;;N;;;;;
+ 138EF;EGYPTIAN HIEROGLYPH-138EF;Lo;0;L;;;;;N;;;;;
+ 138F0;EGYPTIAN HIEROGLYPH-138F0;Lo;0;L;;;;;N;;;;;
+ 138F1;EGYPTIAN HIEROGLYPH-138F1;Lo;0;L;;;;;N;;;;;
+ 138F2;EGYPTIAN HIEROGLYPH-138F2;Lo;0;L;;;;;N;;;;;
+ 138F3;EGYPTIAN HIEROGLYPH-138F3;Lo;0;L;;;;;N;;;;;
+ 138F4;EGYPTIAN HIEROGLYPH-138F4;Lo;0;L;;;;;N;;;;;
+ 138F5;EGYPTIAN HIEROGLYPH-138F5;Lo;0;L;;;;;N;;;;;
+ 138F6;EGYPTIAN HIEROGLYPH-138F6;Lo;0;L;;;;;N;;;;;
+ 138F7;EGYPTIAN HIEROGLYPH-138F7;Lo;0;L;;;;;N;;;;;
+ 138F8;EGYPTIAN HIEROGLYPH-138F8;Lo;0;L;;;;;N;;;;;
+ 138F9;EGYPTIAN HIEROGLYPH-138F9;Lo;0;L;;;;;N;;;;;
+ 138FA;EGYPTIAN HIEROGLYPH-138FA;Lo;0;L;;;;;N;;;;;
+ 138FB;EGYPTIAN HIEROGLYPH-138FB;Lo;0;L;;;;;N;;;;;
+ 138FC;EGYPTIAN HIEROGLYPH-138FC;Lo;0;L;;;;;N;;;;;
+ 138FD;EGYPTIAN HIEROGLYPH-138FD;Lo;0;L;;;;;N;;;;;
+ 138FE;EGYPTIAN HIEROGLYPH-138FE;Lo;0;L;;;;;N;;;;;
+ 138FF;EGYPTIAN HIEROGLYPH-138FF;Lo;0;L;;;;;N;;;;;
+ 13900;EGYPTIAN HIEROGLYPH-13900;Lo;0;L;;;;;N;;;;;
+ 13901;EGYPTIAN HIEROGLYPH-13901;Lo;0;L;;;;;N;;;;;
+ 13902;EGYPTIAN HIEROGLYPH-13902;Lo;0;L;;;;;N;;;;;
+ 13903;EGYPTIAN HIEROGLYPH-13903;Lo;0;L;;;;;N;;;;;
+ 13904;EGYPTIAN HIEROGLYPH-13904;Lo;0;L;;;;;N;;;;;
+ 13905;EGYPTIAN HIEROGLYPH-13905;Lo;0;L;;;;;N;;;;;
+ 13906;EGYPTIAN HIEROGLYPH-13906;Lo;0;L;;;;;N;;;;;
+ 13907;EGYPTIAN HIEROGLYPH-13907;Lo;0;L;;;;;N;;;;;
+ 13908;EGYPTIAN HIEROGLYPH-13908;Lo;0;L;;;;;N;;;;;
+ 13909;EGYPTIAN HIEROGLYPH-13909;Lo;0;L;;;;;N;;;;;
+ 1390A;EGYPTIAN HIEROGLYPH-1390A;Lo;0;L;;;;;N;;;;;
+ 1390B;EGYPTIAN HIEROGLYPH-1390B;Lo;0;L;;;;;N;;;;;
+ 1390C;EGYPTIAN HIEROGLYPH-1390C;Lo;0;L;;;;;N;;;;;
+ 1390D;EGYPTIAN HIEROGLYPH-1390D;Lo;0;L;;;;;N;;;;;
+ 1390E;EGYPTIAN HIEROGLYPH-1390E;Lo;0;L;;;;;N;;;;;
+ 1390F;EGYPTIAN HIEROGLYPH-1390F;Lo;0;L;;;;;N;;;;;
+ 13910;EGYPTIAN HIEROGLYPH-13910;Lo;0;L;;;;;N;;;;;
+ 13911;EGYPTIAN HIEROGLYPH-13911;Lo;0;L;;;;;N;;;;;
+ 13912;EGYPTIAN HIEROGLYPH-13912;Lo;0;L;;;;;N;;;;;
+ 13913;EGYPTIAN HIEROGLYPH-13913;Lo;0;L;;;;;N;;;;;
+ 13914;EGYPTIAN HIEROGLYPH-13914;Lo;0;L;;;;;N;;;;;
+ 13915;EGYPTIAN HIEROGLYPH-13915;Lo;0;L;;;;;N;;;;;
+ 13916;EGYPTIAN HIEROGLYPH-13916;Lo;0;L;;;;;N;;;;;
+ 13917;EGYPTIAN HIEROGLYPH-13917;Lo;0;L;;;;;N;;;;;
+ 13918;EGYPTIAN HIEROGLYPH-13918;Lo;0;L;;;;;N;;;;;
+ 13919;EGYPTIAN HIEROGLYPH-13919;Lo;0;L;;;;;N;;;;;
+ 1391A;EGYPTIAN HIEROGLYPH-1391A;Lo;0;L;;;;;N;;;;;
+ 1391B;EGYPTIAN HIEROGLYPH-1391B;Lo;0;L;;;;;N;;;;;
+ 1391C;EGYPTIAN HIEROGLYPH-1391C;Lo;0;L;;;;;N;;;;;
+ 1391D;EGYPTIAN HIEROGLYPH-1391D;Lo;0;L;;;;;N;;;;;
+ 1391E;EGYPTIAN HIEROGLYPH-1391E;Lo;0;L;;;;;N;;;;;
+ 1391F;EGYPTIAN HIEROGLYPH-1391F;Lo;0;L;;;;;N;;;;;
+ 13920;EGYPTIAN HIEROGLYPH-13920;Lo;0;L;;;;;N;;;;;
+ 13921;EGYPTIAN HIEROGLYPH-13921;Lo;0;L;;;;;N;;;;;
+ 13922;EGYPTIAN HIEROGLYPH-13922;Lo;0;L;;;;;N;;;;;
+ 13923;EGYPTIAN HIEROGLYPH-13923;Lo;0;L;;;;;N;;;;;
+ 13924;EGYPTIAN HIEROGLYPH-13924;Lo;0;L;;;;;N;;;;;
+ 13925;EGYPTIAN HIEROGLYPH-13925;Lo;0;L;;;;;N;;;;;
+ 13926;EGYPTIAN HIEROGLYPH-13926;Lo;0;L;;;;;N;;;;;
+ 13927;EGYPTIAN HIEROGLYPH-13927;Lo;0;L;;;;;N;;;;;
+ 13928;EGYPTIAN HIEROGLYPH-13928;Lo;0;L;;;;;N;;;;;
+ 13929;EGYPTIAN HIEROGLYPH-13929;Lo;0;L;;;;;N;;;;;
+ 1392A;EGYPTIAN HIEROGLYPH-1392A;Lo;0;L;;;;;N;;;;;
+ 1392B;EGYPTIAN HIEROGLYPH-1392B;Lo;0;L;;;;;N;;;;;
+ 1392C;EGYPTIAN HIEROGLYPH-1392C;Lo;0;L;;;;;N;;;;;
+ 1392D;EGYPTIAN HIEROGLYPH-1392D;Lo;0;L;;;;;N;;;;;
+ 1392E;EGYPTIAN HIEROGLYPH-1392E;Lo;0;L;;;;;N;;;;;
+ 1392F;EGYPTIAN HIEROGLYPH-1392F;Lo;0;L;;;;;N;;;;;
+ 13930;EGYPTIAN HIEROGLYPH-13930;Lo;0;L;;;;;N;;;;;
+ 13931;EGYPTIAN HIEROGLYPH-13931;Lo;0;L;;;;;N;;;;;
+ 13932;EGYPTIAN HIEROGLYPH-13932;Lo;0;L;;;;;N;;;;;
+ 13933;EGYPTIAN HIEROGLYPH-13933;Lo;0;L;;;;;N;;;;;
+ 13934;EGYPTIAN HIEROGLYPH-13934;Lo;0;L;;;;;N;;;;;
+ 13935;EGYPTIAN HIEROGLYPH-13935;Lo;0;L;;;;;N;;;;;
+ 13936;EGYPTIAN HIEROGLYPH-13936;Lo;0;L;;;;;N;;;;;
+ 13937;EGYPTIAN HIEROGLYPH-13937;Lo;0;L;;;;;N;;;;;
+ 13938;EGYPTIAN HIEROGLYPH-13938;Lo;0;L;;;;;N;;;;;
+ 13939;EGYPTIAN HIEROGLYPH-13939;Lo;0;L;;;;;N;;;;;
+ 1393A;EGYPTIAN HIEROGLYPH-1393A;Lo;0;L;;;;;N;;;;;
+ 1393B;EGYPTIAN HIEROGLYPH-1393B;Lo;0;L;;;;;N;;;;;
+ 1393C;EGYPTIAN HIEROGLYPH-1393C;Lo;0;L;;;;;N;;;;;
+ 1393D;EGYPTIAN HIEROGLYPH-1393D;Lo;0;L;;;;;N;;;;;
+ 1393E;EGYPTIAN HIEROGLYPH-1393E;Lo;0;L;;;;;N;;;;;
+ 1393F;EGYPTIAN HIEROGLYPH-1393F;Lo;0;L;;;;;N;;;;;
+ 13940;EGYPTIAN HIEROGLYPH-13940;Lo;0;L;;;;;N;;;;;
+ 13941;EGYPTIAN HIEROGLYPH-13941;Lo;0;L;;;;;N;;;;;
+ 13942;EGYPTIAN HIEROGLYPH-13942;Lo;0;L;;;;;N;;;;;
+ 13943;EGYPTIAN HIEROGLYPH-13943;Lo;0;L;;;;;N;;;;;
+ 13944;EGYPTIAN HIEROGLYPH-13944;Lo;0;L;;;;;N;;;;;
+ 13945;EGYPTIAN HIEROGLYPH-13945;Lo;0;L;;;;;N;;;;;
+ 13946;EGYPTIAN HIEROGLYPH-13946;Lo;0;L;;;;;N;;;;;
+ 13947;EGYPTIAN HIEROGLYPH-13947;Lo;0;L;;;;;N;;;;;
+ 13948;EGYPTIAN HIEROGLYPH-13948;Lo;0;L;;;;;N;;;;;
+ 13949;EGYPTIAN HIEROGLYPH-13949;Lo;0;L;;;;;N;;;;;
+ 1394A;EGYPTIAN HIEROGLYPH-1394A;Lo;0;L;;;;;N;;;;;
+ 1394B;EGYPTIAN HIEROGLYPH-1394B;Lo;0;L;;;;;N;;;;;
+ 1394C;EGYPTIAN HIEROGLYPH-1394C;Lo;0;L;;;;;N;;;;;
+ 1394D;EGYPTIAN HIEROGLYPH-1394D;Lo;0;L;;;;;N;;;;;
+ 1394E;EGYPTIAN HIEROGLYPH-1394E;Lo;0;L;;;;;N;;;;;
+ 1394F;EGYPTIAN HIEROGLYPH-1394F;Lo;0;L;;;;;N;;;;;
+ 13950;EGYPTIAN HIEROGLYPH-13950;Lo;0;L;;;;;N;;;;;
+ 13951;EGYPTIAN HIEROGLYPH-13951;Lo;0;L;;;;;N;;;;;
+ 13952;EGYPTIAN HIEROGLYPH-13952;Lo;0;L;;;;;N;;;;;
+ 13953;EGYPTIAN HIEROGLYPH-13953;Lo;0;L;;;;;N;;;;;
+ 13954;EGYPTIAN HIEROGLYPH-13954;Lo;0;L;;;;;N;;;;;
+ 13955;EGYPTIAN HIEROGLYPH-13955;Lo;0;L;;;;;N;;;;;
+ 13956;EGYPTIAN HIEROGLYPH-13956;Lo;0;L;;;;;N;;;;;
+ 13957;EGYPTIAN HIEROGLYPH-13957;Lo;0;L;;;;;N;;;;;
+ 13958;EGYPTIAN HIEROGLYPH-13958;Lo;0;L;;;;;N;;;;;
+ 13959;EGYPTIAN HIEROGLYPH-13959;Lo;0;L;;;;;N;;;;;
+ 1395A;EGYPTIAN HIEROGLYPH-1395A;Lo;0;L;;;;;N;;;;;
+ 1395B;EGYPTIAN HIEROGLYPH-1395B;Lo;0;L;;;;;N;;;;;
+ 1395C;EGYPTIAN HIEROGLYPH-1395C;Lo;0;L;;;;;N;;;;;
+ 1395D;EGYPTIAN HIEROGLYPH-1395D;Lo;0;L;;;;;N;;;;;
+ 1395E;EGYPTIAN HIEROGLYPH-1395E;Lo;0;L;;;;;N;;;;;
+ 1395F;EGYPTIAN HIEROGLYPH-1395F;Lo;0;L;;;;;N;;;;;
+ 13960;EGYPTIAN HIEROGLYPH-13960;Lo;0;L;;;;;N;;;;;
+ 13961;EGYPTIAN HIEROGLYPH-13961;Lo;0;L;;;;;N;;;;;
+ 13962;EGYPTIAN HIEROGLYPH-13962;Lo;0;L;;;;;N;;;;;
+ 13963;EGYPTIAN HIEROGLYPH-13963;Lo;0;L;;;;;N;;;;;
+ 13964;EGYPTIAN HIEROGLYPH-13964;Lo;0;L;;;;;N;;;;;
+ 13965;EGYPTIAN HIEROGLYPH-13965;Lo;0;L;;;;;N;;;;;
+ 13966;EGYPTIAN HIEROGLYPH-13966;Lo;0;L;;;;;N;;;;;
+ 13967;EGYPTIAN HIEROGLYPH-13967;Lo;0;L;;;;;N;;;;;
+ 13968;EGYPTIAN HIEROGLYPH-13968;Lo;0;L;;;;;N;;;;;
+ 13969;EGYPTIAN HIEROGLYPH-13969;Lo;0;L;;;;;N;;;;;
+ 1396A;EGYPTIAN HIEROGLYPH-1396A;Lo;0;L;;;;;N;;;;;
+ 1396B;EGYPTIAN HIEROGLYPH-1396B;Lo;0;L;;;;;N;;;;;
+ 1396C;EGYPTIAN HIEROGLYPH-1396C;Lo;0;L;;;;;N;;;;;
+ 1396D;EGYPTIAN HIEROGLYPH-1396D;Lo;0;L;;;;;N;;;;;
+ 1396E;EGYPTIAN HIEROGLYPH-1396E;Lo;0;L;;;;;N;;;;;
+ 1396F;EGYPTIAN HIEROGLYPH-1396F;Lo;0;L;;;;;N;;;;;
+ 13970;EGYPTIAN HIEROGLYPH-13970;Lo;0;L;;;;;N;;;;;
+ 13971;EGYPTIAN HIEROGLYPH-13971;Lo;0;L;;;;;N;;;;;
+ 13972;EGYPTIAN HIEROGLYPH-13972;Lo;0;L;;;;;N;;;;;
+ 13973;EGYPTIAN HIEROGLYPH-13973;Lo;0;L;;;;;N;;;;;
+ 13974;EGYPTIAN HIEROGLYPH-13974;Lo;0;L;;;;;N;;;;;
+ 13975;EGYPTIAN HIEROGLYPH-13975;Lo;0;L;;;;;N;;;;;
+ 13976;EGYPTIAN HIEROGLYPH-13976;Lo;0;L;;;;;N;;;;;
+ 13977;EGYPTIAN HIEROGLYPH-13977;Lo;0;L;;;;;N;;;;;
+ 13978;EGYPTIAN HIEROGLYPH-13978;Lo;0;L;;;;;N;;;;;
+ 13979;EGYPTIAN HIEROGLYPH-13979;Lo;0;L;;;;;N;;;;;
+ 1397A;EGYPTIAN HIEROGLYPH-1397A;Lo;0;L;;;;;N;;;;;
+ 1397B;EGYPTIAN HIEROGLYPH-1397B;Lo;0;L;;;;;N;;;;;
+ 1397C;EGYPTIAN HIEROGLYPH-1397C;Lo;0;L;;;;;N;;;;;
+ 1397D;EGYPTIAN HIEROGLYPH-1397D;Lo;0;L;;;;;N;;;;;
+ 1397E;EGYPTIAN HIEROGLYPH-1397E;Lo;0;L;;;;;N;;;;;
+ 1397F;EGYPTIAN HIEROGLYPH-1397F;Lo;0;L;;;;;N;;;;;
+ 13980;EGYPTIAN HIEROGLYPH-13980;Lo;0;L;;;;;N;;;;;
+ 13981;EGYPTIAN HIEROGLYPH-13981;Lo;0;L;;;;;N;;;;;
+ 13982;EGYPTIAN HIEROGLYPH-13982;Lo;0;L;;;;;N;;;;;
+ 13983;EGYPTIAN HIEROGLYPH-13983;Lo;0;L;;;;;N;;;;;
+ 13984;EGYPTIAN HIEROGLYPH-13984;Lo;0;L;;;;;N;;;;;
+ 13985;EGYPTIAN HIEROGLYPH-13985;Lo;0;L;;;;;N;;;;;
+ 13986;EGYPTIAN HIEROGLYPH-13986;Lo;0;L;;;;;N;;;;;
+ 13987;EGYPTIAN HIEROGLYPH-13987;Lo;0;L;;;;;N;;;;;
+ 13988;EGYPTIAN HIEROGLYPH-13988;Lo;0;L;;;;;N;;;;;
+ 13989;EGYPTIAN HIEROGLYPH-13989;Lo;0;L;;;;;N;;;;;
+ 1398A;EGYPTIAN HIEROGLYPH-1398A;Lo;0;L;;;;;N;;;;;
+ 1398B;EGYPTIAN HIEROGLYPH-1398B;Lo;0;L;;;;;N;;;;;
+ 1398C;EGYPTIAN HIEROGLYPH-1398C;Lo;0;L;;;;;N;;;;;
+ 1398D;EGYPTIAN HIEROGLYPH-1398D;Lo;0;L;;;;;N;;;;;
+ 1398E;EGYPTIAN HIEROGLYPH-1398E;Lo;0;L;;;;;N;;;;;
+ 1398F;EGYPTIAN HIEROGLYPH-1398F;Lo;0;L;;;;;N;;;;;
+ 13990;EGYPTIAN HIEROGLYPH-13990;Lo;0;L;;;;;N;;;;;
+ 13991;EGYPTIAN HIEROGLYPH-13991;Lo;0;L;;;;;N;;;;;
+ 13992;EGYPTIAN HIEROGLYPH-13992;Lo;0;L;;;;;N;;;;;
+ 13993;EGYPTIAN HIEROGLYPH-13993;Lo;0;L;;;;;N;;;;;
+ 13994;EGYPTIAN HIEROGLYPH-13994;Lo;0;L;;;;;N;;;;;
+ 13995;EGYPTIAN HIEROGLYPH-13995;Lo;0;L;;;;;N;;;;;
+ 13996;EGYPTIAN HIEROGLYPH-13996;Lo;0;L;;;;;N;;;;;
+ 13997;EGYPTIAN HIEROGLYPH-13997;Lo;0;L;;;;;N;;;;;
+ 13998;EGYPTIAN HIEROGLYPH-13998;Lo;0;L;;;;;N;;;;;
+ 13999;EGYPTIAN HIEROGLYPH-13999;Lo;0;L;;;;;N;;;;;
+ 1399A;EGYPTIAN HIEROGLYPH-1399A;Lo;0;L;;;;;N;;;;;
+ 1399B;EGYPTIAN HIEROGLYPH-1399B;Lo;0;L;;;;;N;;;;;
+ 1399C;EGYPTIAN HIEROGLYPH-1399C;Lo;0;L;;;;;N;;;;;
+ 1399D;EGYPTIAN HIEROGLYPH-1399D;Lo;0;L;;;;;N;;;;;
+ 1399E;EGYPTIAN HIEROGLYPH-1399E;Lo;0;L;;;;;N;;;;;
+ 1399F;EGYPTIAN HIEROGLYPH-1399F;Lo;0;L;;;;;N;;;;;
+ 139A0;EGYPTIAN HIEROGLYPH-139A0;Lo;0;L;;;;;N;;;;;
+ 139A1;EGYPTIAN HIEROGLYPH-139A1;Lo;0;L;;;;;N;;;;;
+ 139A2;EGYPTIAN HIEROGLYPH-139A2;Lo;0;L;;;;;N;;;;;
+ 139A3;EGYPTIAN HIEROGLYPH-139A3;Lo;0;L;;;;;N;;;;;
+ 139A4;EGYPTIAN HIEROGLYPH-139A4;Lo;0;L;;;;;N;;;;;
+ 139A5;EGYPTIAN HIEROGLYPH-139A5;Lo;0;L;;;;;N;;;;;
+ 139A6;EGYPTIAN HIEROGLYPH-139A6;Lo;0;L;;;;;N;;;;;
+ 139A7;EGYPTIAN HIEROGLYPH-139A7;Lo;0;L;;;;;N;;;;;
+ 139A8;EGYPTIAN HIEROGLYPH-139A8;Lo;0;L;;;;;N;;;;;
+ 139A9;EGYPTIAN HIEROGLYPH-139A9;Lo;0;L;;;;;N;;;;;
+ 139AA;EGYPTIAN HIEROGLYPH-139AA;Lo;0;L;;;;;N;;;;;
+ 139AB;EGYPTIAN HIEROGLYPH-139AB;Lo;0;L;;;;;N;;;;;
+ 139AC;EGYPTIAN HIEROGLYPH-139AC;Lo;0;L;;;;;N;;;;;
+ 139AD;EGYPTIAN HIEROGLYPH-139AD;Lo;0;L;;;;;N;;;;;
+ 139AE;EGYPTIAN HIEROGLYPH-139AE;Lo;0;L;;;;;N;;;;;
+ 139AF;EGYPTIAN HIEROGLYPH-139AF;Lo;0;L;;;;;N;;;;;
+ 139B0;EGYPTIAN HIEROGLYPH-139B0;Lo;0;L;;;;;N;;;;;
+ 139B1;EGYPTIAN HIEROGLYPH-139B1;Lo;0;L;;;;;N;;;;;
+ 139B2;EGYPTIAN HIEROGLYPH-139B2;Lo;0;L;;;;;N;;;;;
+ 139B3;EGYPTIAN HIEROGLYPH-139B3;Lo;0;L;;;;;N;;;;;
+ 139B4;EGYPTIAN HIEROGLYPH-139B4;Lo;0;L;;;;;N;;;;;
+ 139B5;EGYPTIAN HIEROGLYPH-139B5;Lo;0;L;;;;;N;;;;;
+ 139B6;EGYPTIAN HIEROGLYPH-139B6;Lo;0;L;;;;;N;;;;;
+ 139B7;EGYPTIAN HIEROGLYPH-139B7;Lo;0;L;;;;;N;;;;;
+ 139B8;EGYPTIAN HIEROGLYPH-139B8;Lo;0;L;;;;;N;;;;;
+ 139B9;EGYPTIAN HIEROGLYPH-139B9;Lo;0;L;;;;;N;;;;;
+ 139BA;EGYPTIAN HIEROGLYPH-139BA;Lo;0;L;;;;;N;;;;;
+ 139BB;EGYPTIAN HIEROGLYPH-139BB;Lo;0;L;;;;;N;;;;;
+ 139BC;EGYPTIAN HIEROGLYPH-139BC;Lo;0;L;;;;;N;;;;;
+ 139BD;EGYPTIAN HIEROGLYPH-139BD;Lo;0;L;;;;;N;;;;;
+ 139BE;EGYPTIAN HIEROGLYPH-139BE;Lo;0;L;;;;;N;;;;;
+ 139BF;EGYPTIAN HIEROGLYPH-139BF;Lo;0;L;;;;;N;;;;;
+ 139C0;EGYPTIAN HIEROGLYPH-139C0;Lo;0;L;;;;;N;;;;;
+ 139C1;EGYPTIAN HIEROGLYPH-139C1;Lo;0;L;;;;;N;;;;;
+ 139C2;EGYPTIAN HIEROGLYPH-139C2;Lo;0;L;;;;;N;;;;;
+ 139C3;EGYPTIAN HIEROGLYPH-139C3;Lo;0;L;;;;;N;;;;;
+ 139C4;EGYPTIAN HIEROGLYPH-139C4;Lo;0;L;;;;;N;;;;;
+ 139C5;EGYPTIAN HIEROGLYPH-139C5;Lo;0;L;;;;;N;;;;;
+ 139C6;EGYPTIAN HIEROGLYPH-139C6;Lo;0;L;;;;;N;;;;;
+ 139C7;EGYPTIAN HIEROGLYPH-139C7;Lo;0;L;;;;;N;;;;;
+ 139C8;EGYPTIAN HIEROGLYPH-139C8;Lo;0;L;;;;;N;;;;;
+ 139C9;EGYPTIAN HIEROGLYPH-139C9;Lo;0;L;;;;;N;;;;;
+ 139CA;EGYPTIAN HIEROGLYPH-139CA;Lo;0;L;;;;;N;;;;;
+ 139CB;EGYPTIAN HIEROGLYPH-139CB;Lo;0;L;;;;;N;;;;;
+ 139CC;EGYPTIAN HIEROGLYPH-139CC;Lo;0;L;;;;;N;;;;;
+ 139CD;EGYPTIAN HIEROGLYPH-139CD;Lo;0;L;;;;;N;;;;;
+ 139CE;EGYPTIAN HIEROGLYPH-139CE;Lo;0;L;;;;;N;;;;;
+ 139CF;EGYPTIAN HIEROGLYPH-139CF;Lo;0;L;;;;;N;;;;;
+ 139D0;EGYPTIAN HIEROGLYPH-139D0;Lo;0;L;;;;;N;;;;;
+ 139D1;EGYPTIAN HIEROGLYPH-139D1;Lo;0;L;;;;;N;;;;;
+ 139D2;EGYPTIAN HIEROGLYPH-139D2;Lo;0;L;;;;;N;;;;;
+ 139D3;EGYPTIAN HIEROGLYPH-139D3;Lo;0;L;;;;;N;;;;;
+ 139D4;EGYPTIAN HIEROGLYPH-139D4;Lo;0;L;;;;;N;;;;;
+ 139D5;EGYPTIAN HIEROGLYPH-139D5;Lo;0;L;;;;;N;;;;;
+ 139D6;EGYPTIAN HIEROGLYPH-139D6;Lo;0;L;;;;;N;;;;;
+ 139D7;EGYPTIAN HIEROGLYPH-139D7;Lo;0;L;;;;;N;;;;;
+ 139D8;EGYPTIAN HIEROGLYPH-139D8;Lo;0;L;;;;;N;;;;;
+ 139D9;EGYPTIAN HIEROGLYPH-139D9;Lo;0;L;;;;;N;;;;;
+ 139DA;EGYPTIAN HIEROGLYPH-139DA;Lo;0;L;;;;;N;;;;;
+ 139DB;EGYPTIAN HIEROGLYPH-139DB;Lo;0;L;;;;;N;;;;;
+ 139DC;EGYPTIAN HIEROGLYPH-139DC;Lo;0;L;;;;;N;;;;;
+ 139DD;EGYPTIAN HIEROGLYPH-139DD;Lo;0;L;;;;;N;;;;;
+ 139DE;EGYPTIAN HIEROGLYPH-139DE;Lo;0;L;;;;;N;;;;;
+ 139DF;EGYPTIAN HIEROGLYPH-139DF;Lo;0;L;;;;;N;;;;;
+ 139E0;EGYPTIAN HIEROGLYPH-139E0;Lo;0;L;;;;;N;;;;;
+ 139E1;EGYPTIAN HIEROGLYPH-139E1;Lo;0;L;;;;;N;;;;;
+ 139E2;EGYPTIAN HIEROGLYPH-139E2;Lo;0;L;;;;;N;;;;;
+ 139E3;EGYPTIAN HIEROGLYPH-139E3;Lo;0;L;;;;;N;;;;;
+ 139E4;EGYPTIAN HIEROGLYPH-139E4;Lo;0;L;;;;;N;;;;;
+ 139E5;EGYPTIAN HIEROGLYPH-139E5;Lo;0;L;;;;;N;;;;;
+ 139E6;EGYPTIAN HIEROGLYPH-139E6;Lo;0;L;;;;;N;;;;;
+ 139E7;EGYPTIAN HIEROGLYPH-139E7;Lo;0;L;;;;;N;;;;;
+ 139E8;EGYPTIAN HIEROGLYPH-139E8;Lo;0;L;;;;;N;;;;;
+ 139E9;EGYPTIAN HIEROGLYPH-139E9;Lo;0;L;;;;;N;;;;;
+ 139EA;EGYPTIAN HIEROGLYPH-139EA;Lo;0;L;;;;;N;;;;;
+ 139EB;EGYPTIAN HIEROGLYPH-139EB;Lo;0;L;;;;;N;;;;;
+ 139EC;EGYPTIAN HIEROGLYPH-139EC;Lo;0;L;;;;;N;;;;;
+ 139ED;EGYPTIAN HIEROGLYPH-139ED;Lo;0;L;;;;;N;;;;;
+ 139EE;EGYPTIAN HIEROGLYPH-139EE;Lo;0;L;;;;;N;;;;;
+ 139EF;EGYPTIAN HIEROGLYPH-139EF;Lo;0;L;;;;;N;;;;;
+ 139F0;EGYPTIAN HIEROGLYPH-139F0;Lo;0;L;;;;;N;;;;;
+ 139F1;EGYPTIAN HIEROGLYPH-139F1;Lo;0;L;;;;;N;;;;;
+ 139F2;EGYPTIAN HIEROGLYPH-139F2;Lo;0;L;;;;;N;;;;;
+ 139F3;EGYPTIAN HIEROGLYPH-139F3;Lo;0;L;;;;;N;;;;;
+ 139F4;EGYPTIAN HIEROGLYPH-139F4;Lo;0;L;;;;;N;;;;;
+ 139F5;EGYPTIAN HIEROGLYPH-139F5;Lo;0;L;;;;;N;;;;;
+ 139F6;EGYPTIAN HIEROGLYPH-139F6;Lo;0;L;;;;;N;;;;;
+ 139F7;EGYPTIAN HIEROGLYPH-139F7;Lo;0;L;;;;;N;;;;;
+ 139F8;EGYPTIAN HIEROGLYPH-139F8;Lo;0;L;;;;;N;;;;;
+ 139F9;EGYPTIAN HIEROGLYPH-139F9;Lo;0;L;;;;;N;;;;;
+ 139FA;EGYPTIAN HIEROGLYPH-139FA;Lo;0;L;;;;;N;;;;;
+ 139FB;EGYPTIAN HIEROGLYPH-139FB;Lo;0;L;;;;;N;;;;;
+ 139FC;EGYPTIAN HIEROGLYPH-139FC;Lo;0;L;;;;;N;;;;;
+ 139FD;EGYPTIAN HIEROGLYPH-139FD;Lo;0;L;;;;;N;;;;;
+ 139FE;EGYPTIAN HIEROGLYPH-139FE;Lo;0;L;;;;;N;;;;;
+ 139FF;EGYPTIAN HIEROGLYPH-139FF;Lo;0;L;;;;;N;;;;;
+ 13A00;EGYPTIAN HIEROGLYPH-13A00;Lo;0;L;;;;;N;;;;;
+ 13A01;EGYPTIAN HIEROGLYPH-13A01;Lo;0;L;;;;;N;;;;;
+ 13A02;EGYPTIAN HIEROGLYPH-13A02;Lo;0;L;;;;;N;;;;;
+ 13A03;EGYPTIAN HIEROGLYPH-13A03;Lo;0;L;;;;;N;;;;;
+ 13A04;EGYPTIAN HIEROGLYPH-13A04;Lo;0;L;;;;;N;;;;;
+ 13A05;EGYPTIAN HIEROGLYPH-13A05;Lo;0;L;;;;;N;;;;;
+ 13A06;EGYPTIAN HIEROGLYPH-13A06;Lo;0;L;;;;;N;;;;;
+ 13A07;EGYPTIAN HIEROGLYPH-13A07;Lo;0;L;;;;;N;;;;;
+ 13A08;EGYPTIAN HIEROGLYPH-13A08;Lo;0;L;;;;;N;;;;;
+ 13A09;EGYPTIAN HIEROGLYPH-13A09;Lo;0;L;;;;;N;;;;;
+ 13A0A;EGYPTIAN HIEROGLYPH-13A0A;Lo;0;L;;;;;N;;;;;
+ 13A0B;EGYPTIAN HIEROGLYPH-13A0B;Lo;0;L;;;;;N;;;;;
+ 13A0C;EGYPTIAN HIEROGLYPH-13A0C;Lo;0;L;;;;;N;;;;;
+ 13A0D;EGYPTIAN HIEROGLYPH-13A0D;Lo;0;L;;;;;N;;;;;
+ 13A0E;EGYPTIAN HIEROGLYPH-13A0E;Lo;0;L;;;;;N;;;;;
+ 13A0F;EGYPTIAN HIEROGLYPH-13A0F;Lo;0;L;;;;;N;;;;;
+ 13A10;EGYPTIAN HIEROGLYPH-13A10;Lo;0;L;;;;;N;;;;;
+ 13A11;EGYPTIAN HIEROGLYPH-13A11;Lo;0;L;;;;;N;;;;;
+ 13A12;EGYPTIAN HIEROGLYPH-13A12;Lo;0;L;;;;;N;;;;;
+ 13A13;EGYPTIAN HIEROGLYPH-13A13;Lo;0;L;;;;;N;;;;;
+ 13A14;EGYPTIAN HIEROGLYPH-13A14;Lo;0;L;;;;;N;;;;;
+ 13A15;EGYPTIAN HIEROGLYPH-13A15;Lo;0;L;;;;;N;;;;;
+ 13A16;EGYPTIAN HIEROGLYPH-13A16;Lo;0;L;;;;;N;;;;;
+ 13A17;EGYPTIAN HIEROGLYPH-13A17;Lo;0;L;;;;;N;;;;;
+ 13A18;EGYPTIAN HIEROGLYPH-13A18;Lo;0;L;;;;;N;;;;;
+ 13A19;EGYPTIAN HIEROGLYPH-13A19;Lo;0;L;;;;;N;;;;;
+ 13A1A;EGYPTIAN HIEROGLYPH-13A1A;Lo;0;L;;;;;N;;;;;
+ 13A1B;EGYPTIAN HIEROGLYPH-13A1B;Lo;0;L;;;;;N;;;;;
+ 13A1C;EGYPTIAN HIEROGLYPH-13A1C;Lo;0;L;;;;;N;;;;;
+ 13A1D;EGYPTIAN HIEROGLYPH-13A1D;Lo;0;L;;;;;N;;;;;
+ 13A1E;EGYPTIAN HIEROGLYPH-13A1E;Lo;0;L;;;;;N;;;;;
+ 13A1F;EGYPTIAN HIEROGLYPH-13A1F;Lo;0;L;;;;;N;;;;;
+ 13A20;EGYPTIAN HIEROGLYPH-13A20;Lo;0;L;;;;;N;;;;;
+ 13A21;EGYPTIAN HIEROGLYPH-13A21;Lo;0;L;;;;;N;;;;;
+ 13A22;EGYPTIAN HIEROGLYPH-13A22;Lo;0;L;;;;;N;;;;;
+ 13A23;EGYPTIAN HIEROGLYPH-13A23;Lo;0;L;;;;;N;;;;;
+ 13A24;EGYPTIAN HIEROGLYPH-13A24;Lo;0;L;;;;;N;;;;;
+ 13A25;EGYPTIAN HIEROGLYPH-13A25;Lo;0;L;;;;;N;;;;;
+ 13A26;EGYPTIAN HIEROGLYPH-13A26;Lo;0;L;;;;;N;;;;;
+ 13A27;EGYPTIAN HIEROGLYPH-13A27;Lo;0;L;;;;;N;;;;;
+ 13A28;EGYPTIAN HIEROGLYPH-13A28;Lo;0;L;;;;;N;;;;;
+ 13A29;EGYPTIAN HIEROGLYPH-13A29;Lo;0;L;;;;;N;;;;;
+ 13A2A;EGYPTIAN HIEROGLYPH-13A2A;Lo;0;L;;;;;N;;;;;
+ 13A2B;EGYPTIAN HIEROGLYPH-13A2B;Lo;0;L;;;;;N;;;;;
+ 13A2C;EGYPTIAN HIEROGLYPH-13A2C;Lo;0;L;;;;;N;;;;;
+ 13A2D;EGYPTIAN HIEROGLYPH-13A2D;Lo;0;L;;;;;N;;;;;
+ 13A2E;EGYPTIAN HIEROGLYPH-13A2E;Lo;0;L;;;;;N;;;;;
+ 13A2F;EGYPTIAN HIEROGLYPH-13A2F;Lo;0;L;;;;;N;;;;;
+ 13A30;EGYPTIAN HIEROGLYPH-13A30;Lo;0;L;;;;;N;;;;;
+ 13A31;EGYPTIAN HIEROGLYPH-13A31;Lo;0;L;;;;;N;;;;;
+ 13A32;EGYPTIAN HIEROGLYPH-13A32;Lo;0;L;;;;;N;;;;;
+ 13A33;EGYPTIAN HIEROGLYPH-13A33;Lo;0;L;;;;;N;;;;;
+ 13A34;EGYPTIAN HIEROGLYPH-13A34;Lo;0;L;;;;;N;;;;;
+ 13A35;EGYPTIAN HIEROGLYPH-13A35;Lo;0;L;;;;;N;;;;;
+ 13A36;EGYPTIAN HIEROGLYPH-13A36;Lo;0;L;;;;;N;;;;;
+ 13A37;EGYPTIAN HIEROGLYPH-13A37;Lo;0;L;;;;;N;;;;;
+ 13A38;EGYPTIAN HIEROGLYPH-13A38;Lo;0;L;;;;;N;;;;;
+ 13A39;EGYPTIAN HIEROGLYPH-13A39;Lo;0;L;;;;;N;;;;;
+ 13A3A;EGYPTIAN HIEROGLYPH-13A3A;Lo;0;L;;;;;N;;;;;
+ 13A3B;EGYPTIAN HIEROGLYPH-13A3B;Lo;0;L;;;;;N;;;;;
+ 13A3C;EGYPTIAN HIEROGLYPH-13A3C;Lo;0;L;;;;;N;;;;;
+ 13A3D;EGYPTIAN HIEROGLYPH-13A3D;Lo;0;L;;;;;N;;;;;
+ 13A3E;EGYPTIAN HIEROGLYPH-13A3E;Lo;0;L;;;;;N;;;;;
+ 13A3F;EGYPTIAN HIEROGLYPH-13A3F;Lo;0;L;;;;;N;;;;;
+ 13A40;EGYPTIAN HIEROGLYPH-13A40;Lo;0;L;;;;;N;;;;;
+ 13A41;EGYPTIAN HIEROGLYPH-13A41;Lo;0;L;;;;;N;;;;;
+ 13A42;EGYPTIAN HIEROGLYPH-13A42;Lo;0;L;;;;;N;;;;;
+ 13A43;EGYPTIAN HIEROGLYPH-13A43;Lo;0;L;;;;;N;;;;;
+ 13A44;EGYPTIAN HIEROGLYPH-13A44;Lo;0;L;;;;;N;;;;;
+ 13A45;EGYPTIAN HIEROGLYPH-13A45;Lo;0;L;;;;;N;;;;;
+ 13A46;EGYPTIAN HIEROGLYPH-13A46;Lo;0;L;;;;;N;;;;;
+ 13A47;EGYPTIAN HIEROGLYPH-13A47;Lo;0;L;;;;;N;;;;;
+ 13A48;EGYPTIAN HIEROGLYPH-13A48;Lo;0;L;;;;;N;;;;;
+ 13A49;EGYPTIAN HIEROGLYPH-13A49;Lo;0;L;;;;;N;;;;;
+ 13A4A;EGYPTIAN HIEROGLYPH-13A4A;Lo;0;L;;;;;N;;;;;
+ 13A4B;EGYPTIAN HIEROGLYPH-13A4B;Lo;0;L;;;;;N;;;;;
+ 13A4C;EGYPTIAN HIEROGLYPH-13A4C;Lo;0;L;;;;;N;;;;;
+ 13A4D;EGYPTIAN HIEROGLYPH-13A4D;Lo;0;L;;;;;N;;;;;
+ 13A4E;EGYPTIAN HIEROGLYPH-13A4E;Lo;0;L;;;;;N;;;;;
+ 13A4F;EGYPTIAN HIEROGLYPH-13A4F;Lo;0;L;;;;;N;;;;;
+ 13A50;EGYPTIAN HIEROGLYPH-13A50;Lo;0;L;;;;;N;;;;;
+ 13A51;EGYPTIAN HIEROGLYPH-13A51;Lo;0;L;;;;;N;;;;;
+ 13A52;EGYPTIAN HIEROGLYPH-13A52;Lo;0;L;;;;;N;;;;;
+ 13A53;EGYPTIAN HIEROGLYPH-13A53;Lo;0;L;;;;;N;;;;;
+ 13A54;EGYPTIAN HIEROGLYPH-13A54;Lo;0;L;;;;;N;;;;;
+ 13A55;EGYPTIAN HIEROGLYPH-13A55;Lo;0;L;;;;;N;;;;;
+ 13A56;EGYPTIAN HIEROGLYPH-13A56;Lo;0;L;;;;;N;;;;;
+ 13A57;EGYPTIAN HIEROGLYPH-13A57;Lo;0;L;;;;;N;;;;;
+ 13A58;EGYPTIAN HIEROGLYPH-13A58;Lo;0;L;;;;;N;;;;;
+ 13A59;EGYPTIAN HIEROGLYPH-13A59;Lo;0;L;;;;;N;;;;;
+ 13A5A;EGYPTIAN HIEROGLYPH-13A5A;Lo;0;L;;;;;N;;;;;
+ 13A5B;EGYPTIAN HIEROGLYPH-13A5B;Lo;0;L;;;;;N;;;;;
+ 13A5C;EGYPTIAN HIEROGLYPH-13A5C;Lo;0;L;;;;;N;;;;;
+ 13A5D;EGYPTIAN HIEROGLYPH-13A5D;Lo;0;L;;;;;N;;;;;
+ 13A5E;EGYPTIAN HIEROGLYPH-13A5E;Lo;0;L;;;;;N;;;;;
+ 13A5F;EGYPTIAN HIEROGLYPH-13A5F;Lo;0;L;;;;;N;;;;;
+ 13A60;EGYPTIAN HIEROGLYPH-13A60;Lo;0;L;;;;;N;;;;;
+ 13A61;EGYPTIAN HIEROGLYPH-13A61;Lo;0;L;;;;;N;;;;;
+ 13A62;EGYPTIAN HIEROGLYPH-13A62;Lo;0;L;;;;;N;;;;;
+ 13A63;EGYPTIAN HIEROGLYPH-13A63;Lo;0;L;;;;;N;;;;;
+ 13A64;EGYPTIAN HIEROGLYPH-13A64;Lo;0;L;;;;;N;;;;;
+ 13A65;EGYPTIAN HIEROGLYPH-13A65;Lo;0;L;;;;;N;;;;;
+ 13A66;EGYPTIAN HIEROGLYPH-13A66;Lo;0;L;;;;;N;;;;;
+ 13A67;EGYPTIAN HIEROGLYPH-13A67;Lo;0;L;;;;;N;;;;;
+ 13A68;EGYPTIAN HIEROGLYPH-13A68;Lo;0;L;;;;;N;;;;;
+ 13A69;EGYPTIAN HIEROGLYPH-13A69;Lo;0;L;;;;;N;;;;;
+ 13A6A;EGYPTIAN HIEROGLYPH-13A6A;Lo;0;L;;;;;N;;;;;
+ 13A6B;EGYPTIAN HIEROGLYPH-13A6B;Lo;0;L;;;;;N;;;;;
+ 13A6C;EGYPTIAN HIEROGLYPH-13A6C;Lo;0;L;;;;;N;;;;;
+ 13A6D;EGYPTIAN HIEROGLYPH-13A6D;Lo;0;L;;;;;N;;;;;
+ 13A6E;EGYPTIAN HIEROGLYPH-13A6E;Lo;0;L;;;;;N;;;;;
+ 13A6F;EGYPTIAN HIEROGLYPH-13A6F;Lo;0;L;;;;;N;;;;;
+ 13A70;EGYPTIAN HIEROGLYPH-13A70;Lo;0;L;;;;;N;;;;;
+ 13A71;EGYPTIAN HIEROGLYPH-13A71;Lo;0;L;;;;;N;;;;;
+ 13A72;EGYPTIAN HIEROGLYPH-13A72;Lo;0;L;;;;;N;;;;;
+ 13A73;EGYPTIAN HIEROGLYPH-13A73;Lo;0;L;;;;;N;;;;;
+ 13A74;EGYPTIAN HIEROGLYPH-13A74;Lo;0;L;;;;;N;;;;;
+ 13A75;EGYPTIAN HIEROGLYPH-13A75;Lo;0;L;;;;;N;;;;;
+ 13A76;EGYPTIAN HIEROGLYPH-13A76;Lo;0;L;;;;;N;;;;;
+ 13A77;EGYPTIAN HIEROGLYPH-13A77;Lo;0;L;;;;;N;;;;;
+ 13A78;EGYPTIAN HIEROGLYPH-13A78;Lo;0;L;;;;;N;;;;;
+ 13A79;EGYPTIAN HIEROGLYPH-13A79;Lo;0;L;;;;;N;;;;;
+ 13A7A;EGYPTIAN HIEROGLYPH-13A7A;Lo;0;L;;;;;N;;;;;
+ 13A7B;EGYPTIAN HIEROGLYPH-13A7B;Lo;0;L;;;;;N;;;;;
+ 13A7C;EGYPTIAN HIEROGLYPH-13A7C;Lo;0;L;;;;;N;;;;;
+ 13A7D;EGYPTIAN HIEROGLYPH-13A7D;Lo;0;L;;;;;N;;;;;
+ 13A7E;EGYPTIAN HIEROGLYPH-13A7E;Lo;0;L;;;;;N;;;;;
+ 13A7F;EGYPTIAN HIEROGLYPH-13A7F;Lo;0;L;;;;;N;;;;;
+ 13A80;EGYPTIAN HIEROGLYPH-13A80;Lo;0;L;;;;;N;;;;;
+ 13A81;EGYPTIAN HIEROGLYPH-13A81;Lo;0;L;;;;;N;;;;;
+ 13A82;EGYPTIAN HIEROGLYPH-13A82;Lo;0;L;;;;;N;;;;;
+ 13A83;EGYPTIAN HIEROGLYPH-13A83;Lo;0;L;;;;;N;;;;;
+ 13A84;EGYPTIAN HIEROGLYPH-13A84;Lo;0;L;;;;;N;;;;;
+ 13A85;EGYPTIAN HIEROGLYPH-13A85;Lo;0;L;;;;;N;;;;;
+ 13A86;EGYPTIAN HIEROGLYPH-13A86;Lo;0;L;;;;;N;;;;;
+ 13A87;EGYPTIAN HIEROGLYPH-13A87;Lo;0;L;;;;;N;;;;;
+ 13A88;EGYPTIAN HIEROGLYPH-13A88;Lo;0;L;;;;;N;;;;;
+ 13A89;EGYPTIAN HIEROGLYPH-13A89;Lo;0;L;;;;;N;;;;;
+ 13A8A;EGYPTIAN HIEROGLYPH-13A8A;Lo;0;L;;;;;N;;;;;
+ 13A8B;EGYPTIAN HIEROGLYPH-13A8B;Lo;0;L;;;;;N;;;;;
+ 13A8C;EGYPTIAN HIEROGLYPH-13A8C;Lo;0;L;;;;;N;;;;;
+ 13A8D;EGYPTIAN HIEROGLYPH-13A8D;Lo;0;L;;;;;N;;;;;
+ 13A8E;EGYPTIAN HIEROGLYPH-13A8E;Lo;0;L;;;;;N;;;;;
+ 13A8F;EGYPTIAN HIEROGLYPH-13A8F;Lo;0;L;;;;;N;;;;;
+ 13A90;EGYPTIAN HIEROGLYPH-13A90;Lo;0;L;;;;;N;;;;;
+ 13A91;EGYPTIAN HIEROGLYPH-13A91;Lo;0;L;;;;;N;;;;;
+ 13A92;EGYPTIAN HIEROGLYPH-13A92;Lo;0;L;;;;;N;;;;;
+ 13A93;EGYPTIAN HIEROGLYPH-13A93;Lo;0;L;;;;;N;;;;;
+ 13A94;EGYPTIAN HIEROGLYPH-13A94;Lo;0;L;;;;;N;;;;;
+ 13A95;EGYPTIAN HIEROGLYPH-13A95;Lo;0;L;;;;;N;;;;;
+ 13A96;EGYPTIAN HIEROGLYPH-13A96;Lo;0;L;;;;;N;;;;;
+ 13A97;EGYPTIAN HIEROGLYPH-13A97;Lo;0;L;;;;;N;;;;;
+ 13A98;EGYPTIAN HIEROGLYPH-13A98;Lo;0;L;;;;;N;;;;;
+ 13A99;EGYPTIAN HIEROGLYPH-13A99;Lo;0;L;;;;;N;;;;;
+ 13A9A;EGYPTIAN HIEROGLYPH-13A9A;Lo;0;L;;;;;N;;;;;
+ 13A9B;EGYPTIAN HIEROGLYPH-13A9B;Lo;0;L;;;;;N;;;;;
+ 13A9C;EGYPTIAN HIEROGLYPH-13A9C;Lo;0;L;;;;;N;;;;;
+ 13A9D;EGYPTIAN HIEROGLYPH-13A9D;Lo;0;L;;;;;N;;;;;
+ 13A9E;EGYPTIAN HIEROGLYPH-13A9E;Lo;0;L;;;;;N;;;;;
+ 13A9F;EGYPTIAN HIEROGLYPH-13A9F;Lo;0;L;;;;;N;;;;;
+ 13AA0;EGYPTIAN HIEROGLYPH-13AA0;Lo;0;L;;;;;N;;;;;
+ 13AA1;EGYPTIAN HIEROGLYPH-13AA1;Lo;0;L;;;;;N;;;;;
+ 13AA2;EGYPTIAN HIEROGLYPH-13AA2;Lo;0;L;;;;;N;;;;;
+ 13AA3;EGYPTIAN HIEROGLYPH-13AA3;Lo;0;L;;;;;N;;;;;
+ 13AA4;EGYPTIAN HIEROGLYPH-13AA4;Lo;0;L;;;;;N;;;;;
+ 13AA5;EGYPTIAN HIEROGLYPH-13AA5;Lo;0;L;;;;;N;;;;;
+ 13AA6;EGYPTIAN HIEROGLYPH-13AA6;Lo;0;L;;;;;N;;;;;
+ 13AA7;EGYPTIAN HIEROGLYPH-13AA7;Lo;0;L;;;;;N;;;;;
+ 13AA8;EGYPTIAN HIEROGLYPH-13AA8;Lo;0;L;;;;;N;;;;;
+ 13AA9;EGYPTIAN HIEROGLYPH-13AA9;Lo;0;L;;;;;N;;;;;
+ 13AAA;EGYPTIAN HIEROGLYPH-13AAA;Lo;0;L;;;;;N;;;;;
+ 13AAB;EGYPTIAN HIEROGLYPH-13AAB;Lo;0;L;;;;;N;;;;;
+ 13AAC;EGYPTIAN HIEROGLYPH-13AAC;Lo;0;L;;;;;N;;;;;
+ 13AAD;EGYPTIAN HIEROGLYPH-13AAD;Lo;0;L;;;;;N;;;;;
+ 13AAE;EGYPTIAN HIEROGLYPH-13AAE;Lo;0;L;;;;;N;;;;;
+ 13AAF;EGYPTIAN HIEROGLYPH-13AAF;Lo;0;L;;;;;N;;;;;
+ 13AB0;EGYPTIAN HIEROGLYPH-13AB0;Lo;0;L;;;;;N;;;;;
+ 13AB1;EGYPTIAN HIEROGLYPH-13AB1;Lo;0;L;;;;;N;;;;;
+ 13AB2;EGYPTIAN HIEROGLYPH-13AB2;Lo;0;L;;;;;N;;;;;
+ 13AB3;EGYPTIAN HIEROGLYPH-13AB3;Lo;0;L;;;;;N;;;;;
+ 13AB4;EGYPTIAN HIEROGLYPH-13AB4;Lo;0;L;;;;;N;;;;;
+ 13AB5;EGYPTIAN HIEROGLYPH-13AB5;Lo;0;L;;;;;N;;;;;
+ 13AB6;EGYPTIAN HIEROGLYPH-13AB6;Lo;0;L;;;;;N;;;;;
+ 13AB7;EGYPTIAN HIEROGLYPH-13AB7;Lo;0;L;;;;;N;;;;;
+ 13AB8;EGYPTIAN HIEROGLYPH-13AB8;Lo;0;L;;;;;N;;;;;
+ 13AB9;EGYPTIAN HIEROGLYPH-13AB9;Lo;0;L;;;;;N;;;;;
+ 13ABA;EGYPTIAN HIEROGLYPH-13ABA;Lo;0;L;;;;;N;;;;;
+ 13ABB;EGYPTIAN HIEROGLYPH-13ABB;Lo;0;L;;;;;N;;;;;
+ 13ABC;EGYPTIAN HIEROGLYPH-13ABC;Lo;0;L;;;;;N;;;;;
+ 13ABD;EGYPTIAN HIEROGLYPH-13ABD;Lo;0;L;;;;;N;;;;;
+ 13ABE;EGYPTIAN HIEROGLYPH-13ABE;Lo;0;L;;;;;N;;;;;
+ 13ABF;EGYPTIAN HIEROGLYPH-13ABF;Lo;0;L;;;;;N;;;;;
+ 13AC0;EGYPTIAN HIEROGLYPH-13AC0;Lo;0;L;;;;;N;;;;;
+ 13AC1;EGYPTIAN HIEROGLYPH-13AC1;Lo;0;L;;;;;N;;;;;
+ 13AC2;EGYPTIAN HIEROGLYPH-13AC2;Lo;0;L;;;;;N;;;;;
+ 13AC3;EGYPTIAN HIEROGLYPH-13AC3;Lo;0;L;;;;;N;;;;;
+ 13AC4;EGYPTIAN HIEROGLYPH-13AC4;Lo;0;L;;;;;N;;;;;
+ 13AC5;EGYPTIAN HIEROGLYPH-13AC5;Lo;0;L;;;;;N;;;;;
+ 13AC6;EGYPTIAN HIEROGLYPH-13AC6;Lo;0;L;;;;;N;;;;;
+ 13AC7;EGYPTIAN HIEROGLYPH-13AC7;Lo;0;L;;;;;N;;;;;
+ 13AC8;EGYPTIAN HIEROGLYPH-13AC8;Lo;0;L;;;;;N;;;;;
+ 13AC9;EGYPTIAN HIEROGLYPH-13AC9;Lo;0;L;;;;;N;;;;;
+ 13ACA;EGYPTIAN HIEROGLYPH-13ACA;Lo;0;L;;;;;N;;;;;
+ 13ACB;EGYPTIAN HIEROGLYPH-13ACB;Lo;0;L;;;;;N;;;;;
+ 13ACC;EGYPTIAN HIEROGLYPH-13ACC;Lo;0;L;;;;;N;;;;;
+ 13ACD;EGYPTIAN HIEROGLYPH-13ACD;Lo;0;L;;;;;N;;;;;
+ 13ACE;EGYPTIAN HIEROGLYPH-13ACE;Lo;0;L;;;;;N;;;;;
+ 13ACF;EGYPTIAN HIEROGLYPH-13ACF;Lo;0;L;;;;;N;;;;;
+ 13AD0;EGYPTIAN HIEROGLYPH-13AD0;Lo;0;L;;;;;N;;;;;
+ 13AD1;EGYPTIAN HIEROGLYPH-13AD1;Lo;0;L;;;;;N;;;;;
+ 13AD2;EGYPTIAN HIEROGLYPH-13AD2;Lo;0;L;;;;;N;;;;;
+ 13AD3;EGYPTIAN HIEROGLYPH-13AD3;Lo;0;L;;;;;N;;;;;
+ 13AD4;EGYPTIAN HIEROGLYPH-13AD4;Lo;0;L;;;;;N;;;;;
+ 13AD5;EGYPTIAN HIEROGLYPH-13AD5;Lo;0;L;;;;;N;;;;;
+ 13AD6;EGYPTIAN HIEROGLYPH-13AD6;Lo;0;L;;;;;N;;;;;
+ 13AD7;EGYPTIAN HIEROGLYPH-13AD7;Lo;0;L;;;;;N;;;;;
+ 13AD8;EGYPTIAN HIEROGLYPH-13AD8;Lo;0;L;;;;;N;;;;;
+ 13AD9;EGYPTIAN HIEROGLYPH-13AD9;Lo;0;L;;;;;N;;;;;
+ 13ADA;EGYPTIAN HIEROGLYPH-13ADA;Lo;0;L;;;;;N;;;;;
+ 13ADB;EGYPTIAN HIEROGLYPH-13ADB;Lo;0;L;;;;;N;;;;;
+ 13ADC;EGYPTIAN HIEROGLYPH-13ADC;Lo;0;L;;;;;N;;;;;
+ 13ADD;EGYPTIAN HIEROGLYPH-13ADD;Lo;0;L;;;;;N;;;;;
+ 13ADE;EGYPTIAN HIEROGLYPH-13ADE;Lo;0;L;;;;;N;;;;;
+ 13ADF;EGYPTIAN HIEROGLYPH-13ADF;Lo;0;L;;;;;N;;;;;
+ 13AE0;EGYPTIAN HIEROGLYPH-13AE0;Lo;0;L;;;;;N;;;;;
+ 13AE1;EGYPTIAN HIEROGLYPH-13AE1;Lo;0;L;;;;;N;;;;;
+ 13AE2;EGYPTIAN HIEROGLYPH-13AE2;Lo;0;L;;;;;N;;;;;
+ 13AE3;EGYPTIAN HIEROGLYPH-13AE3;Lo;0;L;;;;;N;;;;;
+ 13AE4;EGYPTIAN HIEROGLYPH-13AE4;Lo;0;L;;;;;N;;;;;
+ 13AE5;EGYPTIAN HIEROGLYPH-13AE5;Lo;0;L;;;;;N;;;;;
+ 13AE6;EGYPTIAN HIEROGLYPH-13AE6;Lo;0;L;;;;;N;;;;;
+ 13AE7;EGYPTIAN HIEROGLYPH-13AE7;Lo;0;L;;;;;N;;;;;
+ 13AE8;EGYPTIAN HIEROGLYPH-13AE8;Lo;0;L;;;;;N;;;;;
+ 13AE9;EGYPTIAN HIEROGLYPH-13AE9;Lo;0;L;;;;;N;;;;;
+ 13AEA;EGYPTIAN HIEROGLYPH-13AEA;Lo;0;L;;;;;N;;;;;
+ 13AEB;EGYPTIAN HIEROGLYPH-13AEB;Lo;0;L;;;;;N;;;;;
+ 13AEC;EGYPTIAN HIEROGLYPH-13AEC;Lo;0;L;;;;;N;;;;;
+ 13AED;EGYPTIAN HIEROGLYPH-13AED;Lo;0;L;;;;;N;;;;;
+ 13AEE;EGYPTIAN HIEROGLYPH-13AEE;Lo;0;L;;;;;N;;;;;
+ 13AEF;EGYPTIAN HIEROGLYPH-13AEF;Lo;0;L;;;;;N;;;;;
+ 13AF0;EGYPTIAN HIEROGLYPH-13AF0;Lo;0;L;;;;;N;;;;;
+ 13AF1;EGYPTIAN HIEROGLYPH-13AF1;Lo;0;L;;;;;N;;;;;
+ 13AF2;EGYPTIAN HIEROGLYPH-13AF2;Lo;0;L;;;;;N;;;;;
+ 13AF3;EGYPTIAN HIEROGLYPH-13AF3;Lo;0;L;;;;;N;;;;;
+ 13AF4;EGYPTIAN HIEROGLYPH-13AF4;Lo;0;L;;;;;N;;;;;
+ 13AF5;EGYPTIAN HIEROGLYPH-13AF5;Lo;0;L;;;;;N;;;;;
+ 13AF6;EGYPTIAN HIEROGLYPH-13AF6;Lo;0;L;;;;;N;;;;;
+ 13AF7;EGYPTIAN HIEROGLYPH-13AF7;Lo;0;L;;;;;N;;;;;
+ 13AF8;EGYPTIAN HIEROGLYPH-13AF8;Lo;0;L;;;;;N;;;;;
+ 13AF9;EGYPTIAN HIEROGLYPH-13AF9;Lo;0;L;;;;;N;;;;;
+ 13AFA;EGYPTIAN HIEROGLYPH-13AFA;Lo;0;L;;;;;N;;;;;
+ 13AFB;EGYPTIAN HIEROGLYPH-13AFB;Lo;0;L;;;;;N;;;;;
+ 13AFC;EGYPTIAN HIEROGLYPH-13AFC;Lo;0;L;;;;;N;;;;;
+ 13AFD;EGYPTIAN HIEROGLYPH-13AFD;Lo;0;L;;;;;N;;;;;
+ 13AFE;EGYPTIAN HIEROGLYPH-13AFE;Lo;0;L;;;;;N;;;;;
+ 13AFF;EGYPTIAN HIEROGLYPH-13AFF;Lo;0;L;;;;;N;;;;;
+ 13B00;EGYPTIAN HIEROGLYPH-13B00;Lo;0;L;;;;;N;;;;;
+ 13B01;EGYPTIAN HIEROGLYPH-13B01;Lo;0;L;;;;;N;;;;;
+ 13B02;EGYPTIAN HIEROGLYPH-13B02;Lo;0;L;;;;;N;;;;;
+ 13B03;EGYPTIAN HIEROGLYPH-13B03;Lo;0;L;;;;;N;;;;;
+ 13B04;EGYPTIAN HIEROGLYPH-13B04;Lo;0;L;;;;;N;;;;;
+ 13B05;EGYPTIAN HIEROGLYPH-13B05;Lo;0;L;;;;;N;;;;;
+ 13B06;EGYPTIAN HIEROGLYPH-13B06;Lo;0;L;;;;;N;;;;;
+ 13B07;EGYPTIAN HIEROGLYPH-13B07;Lo;0;L;;;;;N;;;;;
+ 13B08;EGYPTIAN HIEROGLYPH-13B08;Lo;0;L;;;;;N;;;;;
+ 13B09;EGYPTIAN HIEROGLYPH-13B09;Lo;0;L;;;;;N;;;;;
+ 13B0A;EGYPTIAN HIEROGLYPH-13B0A;Lo;0;L;;;;;N;;;;;
+ 13B0B;EGYPTIAN HIEROGLYPH-13B0B;Lo;0;L;;;;;N;;;;;
+ 13B0C;EGYPTIAN HIEROGLYPH-13B0C;Lo;0;L;;;;;N;;;;;
+ 13B0D;EGYPTIAN HIEROGLYPH-13B0D;Lo;0;L;;;;;N;;;;;
+ 13B0E;EGYPTIAN HIEROGLYPH-13B0E;Lo;0;L;;;;;N;;;;;
+ 13B0F;EGYPTIAN HIEROGLYPH-13B0F;Lo;0;L;;;;;N;;;;;
+ 13B10;EGYPTIAN HIEROGLYPH-13B10;Lo;0;L;;;;;N;;;;;
+ 13B11;EGYPTIAN HIEROGLYPH-13B11;Lo;0;L;;;;;N;;;;;
+ 13B12;EGYPTIAN HIEROGLYPH-13B12;Lo;0;L;;;;;N;;;;;
+ 13B13;EGYPTIAN HIEROGLYPH-13B13;Lo;0;L;;;;;N;;;;;
+ 13B14;EGYPTIAN HIEROGLYPH-13B14;Lo;0;L;;;;;N;;;;;
+ 13B15;EGYPTIAN HIEROGLYPH-13B15;Lo;0;L;;;;;N;;;;;
+ 13B16;EGYPTIAN HIEROGLYPH-13B16;Lo;0;L;;;;;N;;;;;
+ 13B17;EGYPTIAN HIEROGLYPH-13B17;Lo;0;L;;;;;N;;;;;
+ 13B18;EGYPTIAN HIEROGLYPH-13B18;Lo;0;L;;;;;N;;;;;
+ 13B19;EGYPTIAN HIEROGLYPH-13B19;Lo;0;L;;;;;N;;;;;
+ 13B1A;EGYPTIAN HIEROGLYPH-13B1A;Lo;0;L;;;;;N;;;;;
+ 13B1B;EGYPTIAN HIEROGLYPH-13B1B;Lo;0;L;;;;;N;;;;;
+ 13B1C;EGYPTIAN HIEROGLYPH-13B1C;Lo;0;L;;;;;N;;;;;
+ 13B1D;EGYPTIAN HIEROGLYPH-13B1D;Lo;0;L;;;;;N;;;;;
+ 13B1E;EGYPTIAN HIEROGLYPH-13B1E;Lo;0;L;;;;;N;;;;;
+ 13B1F;EGYPTIAN HIEROGLYPH-13B1F;Lo;0;L;;;;;N;;;;;
+ 13B20;EGYPTIAN HIEROGLYPH-13B20;Lo;0;L;;;;;N;;;;;
+ 13B21;EGYPTIAN HIEROGLYPH-13B21;Lo;0;L;;;;;N;;;;;
+ 13B22;EGYPTIAN HIEROGLYPH-13B22;Lo;0;L;;;;;N;;;;;
+ 13B23;EGYPTIAN HIEROGLYPH-13B23;Lo;0;L;;;;;N;;;;;
+ 13B24;EGYPTIAN HIEROGLYPH-13B24;Lo;0;L;;;;;N;;;;;
+ 13B25;EGYPTIAN HIEROGLYPH-13B25;Lo;0;L;;;;;N;;;;;
+ 13B26;EGYPTIAN HIEROGLYPH-13B26;Lo;0;L;;;;;N;;;;;
+ 13B27;EGYPTIAN HIEROGLYPH-13B27;Lo;0;L;;;;;N;;;;;
+ 13B28;EGYPTIAN HIEROGLYPH-13B28;Lo;0;L;;;;;N;;;;;
+ 13B29;EGYPTIAN HIEROGLYPH-13B29;Lo;0;L;;;;;N;;;;;
+ 13B2A;EGYPTIAN HIEROGLYPH-13B2A;Lo;0;L;;;;;N;;;;;
+ 13B2B;EGYPTIAN HIEROGLYPH-13B2B;Lo;0;L;;;;;N;;;;;
+ 13B2C;EGYPTIAN HIEROGLYPH-13B2C;Lo;0;L;;;;;N;;;;;
+ 13B2D;EGYPTIAN HIEROGLYPH-13B2D;Lo;0;L;;;;;N;;;;;
+ 13B2E;EGYPTIAN HIEROGLYPH-13B2E;Lo;0;L;;;;;N;;;;;
+ 13B2F;EGYPTIAN HIEROGLYPH-13B2F;Lo;0;L;;;;;N;;;;;
+ 13B30;EGYPTIAN HIEROGLYPH-13B30;Lo;0;L;;;;;N;;;;;
+ 13B31;EGYPTIAN HIEROGLYPH-13B31;Lo;0;L;;;;;N;;;;;
+ 13B32;EGYPTIAN HIEROGLYPH-13B32;Lo;0;L;;;;;N;;;;;
+ 13B33;EGYPTIAN HIEROGLYPH-13B33;Lo;0;L;;;;;N;;;;;
+ 13B34;EGYPTIAN HIEROGLYPH-13B34;Lo;0;L;;;;;N;;;;;
+ 13B35;EGYPTIAN HIEROGLYPH-13B35;Lo;0;L;;;;;N;;;;;
+ 13B36;EGYPTIAN HIEROGLYPH-13B36;Lo;0;L;;;;;N;;;;;
+ 13B37;EGYPTIAN HIEROGLYPH-13B37;Lo;0;L;;;;;N;;;;;
+ 13B38;EGYPTIAN HIEROGLYPH-13B38;Lo;0;L;;;;;N;;;;;
+ 13B39;EGYPTIAN HIEROGLYPH-13B39;Lo;0;L;;;;;N;;;;;
+ 13B3A;EGYPTIAN HIEROGLYPH-13B3A;Lo;0;L;;;;;N;;;;;
+ 13B3B;EGYPTIAN HIEROGLYPH-13B3B;Lo;0;L;;;;;N;;;;;
+ 13B3C;EGYPTIAN HIEROGLYPH-13B3C;Lo;0;L;;;;;N;;;;;
+ 13B3D;EGYPTIAN HIEROGLYPH-13B3D;Lo;0;L;;;;;N;;;;;
+ 13B3E;EGYPTIAN HIEROGLYPH-13B3E;Lo;0;L;;;;;N;;;;;
+ 13B3F;EGYPTIAN HIEROGLYPH-13B3F;Lo;0;L;;;;;N;;;;;
+ 13B40;EGYPTIAN HIEROGLYPH-13B40;Lo;0;L;;;;;N;;;;;
+ 13B41;EGYPTIAN HIEROGLYPH-13B41;Lo;0;L;;;;;N;;;;;
+ 13B42;EGYPTIAN HIEROGLYPH-13B42;Lo;0;L;;;;;N;;;;;
+ 13B43;EGYPTIAN HIEROGLYPH-13B43;Lo;0;L;;;;;N;;;;;
+ 13B44;EGYPTIAN HIEROGLYPH-13B44;Lo;0;L;;;;;N;;;;;
+ 13B45;EGYPTIAN HIEROGLYPH-13B45;Lo;0;L;;;;;N;;;;;
+ 13B46;EGYPTIAN HIEROGLYPH-13B46;Lo;0;L;;;;;N;;;;;
+ 13B47;EGYPTIAN HIEROGLYPH-13B47;Lo;0;L;;;;;N;;;;;
+ 13B48;EGYPTIAN HIEROGLYPH-13B48;Lo;0;L;;;;;N;;;;;
+ 13B49;EGYPTIAN HIEROGLYPH-13B49;Lo;0;L;;;;;N;;;;;
+ 13B4A;EGYPTIAN HIEROGLYPH-13B4A;Lo;0;L;;;;;N;;;;;
+ 13B4B;EGYPTIAN HIEROGLYPH-13B4B;Lo;0;L;;;;;N;;;;;
+ 13B4C;EGYPTIAN HIEROGLYPH-13B4C;Lo;0;L;;;;;N;;;;;
+ 13B4D;EGYPTIAN HIEROGLYPH-13B4D;Lo;0;L;;;;;N;;;;;
+ 13B4E;EGYPTIAN HIEROGLYPH-13B4E;Lo;0;L;;;;;N;;;;;
+ 13B4F;EGYPTIAN HIEROGLYPH-13B4F;Lo;0;L;;;;;N;;;;;
+ 13B50;EGYPTIAN HIEROGLYPH-13B50;Lo;0;L;;;;;N;;;;;
+ 13B51;EGYPTIAN HIEROGLYPH-13B51;Lo;0;L;;;;;N;;;;;
+ 13B52;EGYPTIAN HIEROGLYPH-13B52;Lo;0;L;;;;;N;;;;;
+ 13B53;EGYPTIAN HIEROGLYPH-13B53;Lo;0;L;;;;;N;;;;;
+ 13B54;EGYPTIAN HIEROGLYPH-13B54;Lo;0;L;;;;;N;;;;;
+ 13B55;EGYPTIAN HIEROGLYPH-13B55;Lo;0;L;;;;;N;;;;;
+ 13B56;EGYPTIAN HIEROGLYPH-13B56;Lo;0;L;;;;;N;;;;;
+ 13B57;EGYPTIAN HIEROGLYPH-13B57;Lo;0;L;;;;;N;;;;;
+ 13B58;EGYPTIAN HIEROGLYPH-13B58;Lo;0;L;;;;;N;;;;;
+ 13B59;EGYPTIAN HIEROGLYPH-13B59;Lo;0;L;;;;;N;;;;;
+ 13B5A;EGYPTIAN HIEROGLYPH-13B5A;Lo;0;L;;;;;N;;;;;
+ 13B5B;EGYPTIAN HIEROGLYPH-13B5B;Lo;0;L;;;;;N;;;;;
+ 13B5C;EGYPTIAN HIEROGLYPH-13B5C;Lo;0;L;;;;;N;;;;;
+ 13B5D;EGYPTIAN HIEROGLYPH-13B5D;Lo;0;L;;;;;N;;;;;
+ 13B5E;EGYPTIAN HIEROGLYPH-13B5E;Lo;0;L;;;;;N;;;;;
+ 13B5F;EGYPTIAN HIEROGLYPH-13B5F;Lo;0;L;;;;;N;;;;;
+ 13B60;EGYPTIAN HIEROGLYPH-13B60;Lo;0;L;;;;;N;;;;;
+ 13B61;EGYPTIAN HIEROGLYPH-13B61;Lo;0;L;;;;;N;;;;;
+ 13B62;EGYPTIAN HIEROGLYPH-13B62;Lo;0;L;;;;;N;;;;;
+ 13B63;EGYPTIAN HIEROGLYPH-13B63;Lo;0;L;;;;;N;;;;;
+ 13B64;EGYPTIAN HIEROGLYPH-13B64;Lo;0;L;;;;;N;;;;;
+ 13B65;EGYPTIAN HIEROGLYPH-13B65;Lo;0;L;;;;;N;;;;;
+ 13B66;EGYPTIAN HIEROGLYPH-13B66;Lo;0;L;;;;;N;;;;;
+ 13B67;EGYPTIAN HIEROGLYPH-13B67;Lo;0;L;;;;;N;;;;;
+ 13B68;EGYPTIAN HIEROGLYPH-13B68;Lo;0;L;;;;;N;;;;;
+ 13B69;EGYPTIAN HIEROGLYPH-13B69;Lo;0;L;;;;;N;;;;;
+ 13B6A;EGYPTIAN HIEROGLYPH-13B6A;Lo;0;L;;;;;N;;;;;
+ 13B6B;EGYPTIAN HIEROGLYPH-13B6B;Lo;0;L;;;;;N;;;;;
+ 13B6C;EGYPTIAN HIEROGLYPH-13B6C;Lo;0;L;;;;;N;;;;;
+ 13B6D;EGYPTIAN HIEROGLYPH-13B6D;Lo;0;L;;;;;N;;;;;
+ 13B6E;EGYPTIAN HIEROGLYPH-13B6E;Lo;0;L;;;;;N;;;;;
+ 13B6F;EGYPTIAN HIEROGLYPH-13B6F;Lo;0;L;;;;;N;;;;;
+ 13B70;EGYPTIAN HIEROGLYPH-13B70;Lo;0;L;;;;;N;;;;;
+ 13B71;EGYPTIAN HIEROGLYPH-13B71;Lo;0;L;;;;;N;;;;;
+ 13B72;EGYPTIAN HIEROGLYPH-13B72;Lo;0;L;;;;;N;;;;;
+ 13B73;EGYPTIAN HIEROGLYPH-13B73;Lo;0;L;;;;;N;;;;;
+ 13B74;EGYPTIAN HIEROGLYPH-13B74;Lo;0;L;;;;;N;;;;;
+ 13B75;EGYPTIAN HIEROGLYPH-13B75;Lo;0;L;;;;;N;;;;;
+ 13B76;EGYPTIAN HIEROGLYPH-13B76;Lo;0;L;;;;;N;;;;;
+ 13B77;EGYPTIAN HIEROGLYPH-13B77;Lo;0;L;;;;;N;;;;;
+ 13B78;EGYPTIAN HIEROGLYPH-13B78;Lo;0;L;;;;;N;;;;;
+ 13B79;EGYPTIAN HIEROGLYPH-13B79;Lo;0;L;;;;;N;;;;;
+ 13B7A;EGYPTIAN HIEROGLYPH-13B7A;Lo;0;L;;;;;N;;;;;
+ 13B7B;EGYPTIAN HIEROGLYPH-13B7B;Lo;0;L;;;;;N;;;;;
+ 13B7C;EGYPTIAN HIEROGLYPH-13B7C;Lo;0;L;;;;;N;;;;;
+ 13B7D;EGYPTIAN HIEROGLYPH-13B7D;Lo;0;L;;;;;N;;;;;
+ 13B7E;EGYPTIAN HIEROGLYPH-13B7E;Lo;0;L;;;;;N;;;;;
+ 13B7F;EGYPTIAN HIEROGLYPH-13B7F;Lo;0;L;;;;;N;;;;;
+ 13B80;EGYPTIAN HIEROGLYPH-13B80;Lo;0;L;;;;;N;;;;;
+ 13B81;EGYPTIAN HIEROGLYPH-13B81;Lo;0;L;;;;;N;;;;;
+ 13B82;EGYPTIAN HIEROGLYPH-13B82;Lo;0;L;;;;;N;;;;;
+ 13B83;EGYPTIAN HIEROGLYPH-13B83;Lo;0;L;;;;;N;;;;;
+ 13B84;EGYPTIAN HIEROGLYPH-13B84;Lo;0;L;;;;;N;;;;;
+ 13B85;EGYPTIAN HIEROGLYPH-13B85;Lo;0;L;;;;;N;;;;;
+ 13B86;EGYPTIAN HIEROGLYPH-13B86;Lo;0;L;;;;;N;;;;;
+ 13B87;EGYPTIAN HIEROGLYPH-13B87;Lo;0;L;;;;;N;;;;;
+ 13B88;EGYPTIAN HIEROGLYPH-13B88;Lo;0;L;;;;;N;;;;;
+ 13B89;EGYPTIAN HIEROGLYPH-13B89;Lo;0;L;;;;;N;;;;;
+ 13B8A;EGYPTIAN HIEROGLYPH-13B8A;Lo;0;L;;;;;N;;;;;
+ 13B8B;EGYPTIAN HIEROGLYPH-13B8B;Lo;0;L;;;;;N;;;;;
+ 13B8C;EGYPTIAN HIEROGLYPH-13B8C;Lo;0;L;;;;;N;;;;;
+ 13B8D;EGYPTIAN HIEROGLYPH-13B8D;Lo;0;L;;;;;N;;;;;
+ 13B8E;EGYPTIAN HIEROGLYPH-13B8E;Lo;0;L;;;;;N;;;;;
+ 13B8F;EGYPTIAN HIEROGLYPH-13B8F;Lo;0;L;;;;;N;;;;;
+ 13B90;EGYPTIAN HIEROGLYPH-13B90;Lo;0;L;;;;;N;;;;;
+ 13B91;EGYPTIAN HIEROGLYPH-13B91;Lo;0;L;;;;;N;;;;;
+ 13B92;EGYPTIAN HIEROGLYPH-13B92;Lo;0;L;;;;;N;;;;;
+ 13B93;EGYPTIAN HIEROGLYPH-13B93;Lo;0;L;;;;;N;;;;;
+ 13B94;EGYPTIAN HIEROGLYPH-13B94;Lo;0;L;;;;;N;;;;;
+ 13B95;EGYPTIAN HIEROGLYPH-13B95;Lo;0;L;;;;;N;;;;;
+ 13B96;EGYPTIAN HIEROGLYPH-13B96;Lo;0;L;;;;;N;;;;;
+ 13B97;EGYPTIAN HIEROGLYPH-13B97;Lo;0;L;;;;;N;;;;;
+ 13B98;EGYPTIAN HIEROGLYPH-13B98;Lo;0;L;;;;;N;;;;;
+ 13B99;EGYPTIAN HIEROGLYPH-13B99;Lo;0;L;;;;;N;;;;;
+ 13B9A;EGYPTIAN HIEROGLYPH-13B9A;Lo;0;L;;;;;N;;;;;
+ 13B9B;EGYPTIAN HIEROGLYPH-13B9B;Lo;0;L;;;;;N;;;;;
+ 13B9C;EGYPTIAN HIEROGLYPH-13B9C;Lo;0;L;;;;;N;;;;;
+ 13B9D;EGYPTIAN HIEROGLYPH-13B9D;Lo;0;L;;;;;N;;;;;
+ 13B9E;EGYPTIAN HIEROGLYPH-13B9E;Lo;0;L;;;;;N;;;;;
+ 13B9F;EGYPTIAN HIEROGLYPH-13B9F;Lo;0;L;;;;;N;;;;;
+ 13BA0;EGYPTIAN HIEROGLYPH-13BA0;Lo;0;L;;;;;N;;;;;
+ 13BA1;EGYPTIAN HIEROGLYPH-13BA1;Lo;0;L;;;;;N;;;;;
+ 13BA2;EGYPTIAN HIEROGLYPH-13BA2;Lo;0;L;;;;;N;;;;;
+ 13BA3;EGYPTIAN HIEROGLYPH-13BA3;Lo;0;L;;;;;N;;;;;
+ 13BA4;EGYPTIAN HIEROGLYPH-13BA4;Lo;0;L;;;;;N;;;;;
+ 13BA5;EGYPTIAN HIEROGLYPH-13BA5;Lo;0;L;;;;;N;;;;;
+ 13BA6;EGYPTIAN HIEROGLYPH-13BA6;Lo;0;L;;;;;N;;;;;
+ 13BA7;EGYPTIAN HIEROGLYPH-13BA7;Lo;0;L;;;;;N;;;;;
+ 13BA8;EGYPTIAN HIEROGLYPH-13BA8;Lo;0;L;;;;;N;;;;;
+ 13BA9;EGYPTIAN HIEROGLYPH-13BA9;Lo;0;L;;;;;N;;;;;
+ 13BAA;EGYPTIAN HIEROGLYPH-13BAA;Lo;0;L;;;;;N;;;;;
+ 13BAB;EGYPTIAN HIEROGLYPH-13BAB;Lo;0;L;;;;;N;;;;;
+ 13BAC;EGYPTIAN HIEROGLYPH-13BAC;Lo;0;L;;;;;N;;;;;
+ 13BAD;EGYPTIAN HIEROGLYPH-13BAD;Lo;0;L;;;;;N;;;;;
+ 13BAE;EGYPTIAN HIEROGLYPH-13BAE;Lo;0;L;;;;;N;;;;;
+ 13BAF;EGYPTIAN HIEROGLYPH-13BAF;Lo;0;L;;;;;N;;;;;
+ 13BB0;EGYPTIAN HIEROGLYPH-13BB0;Lo;0;L;;;;;N;;;;;
+ 13BB1;EGYPTIAN HIEROGLYPH-13BB1;Lo;0;L;;;;;N;;;;;
+ 13BB2;EGYPTIAN HIEROGLYPH-13BB2;Lo;0;L;;;;;N;;;;;
+ 13BB3;EGYPTIAN HIEROGLYPH-13BB3;Lo;0;L;;;;;N;;;;;
+ 13BB4;EGYPTIAN HIEROGLYPH-13BB4;Lo;0;L;;;;;N;;;;;
+ 13BB5;EGYPTIAN HIEROGLYPH-13BB5;Lo;0;L;;;;;N;;;;;
+ 13BB6;EGYPTIAN HIEROGLYPH-13BB6;Lo;0;L;;;;;N;;;;;
+ 13BB7;EGYPTIAN HIEROGLYPH-13BB7;Lo;0;L;;;;;N;;;;;
+ 13BB8;EGYPTIAN HIEROGLYPH-13BB8;Lo;0;L;;;;;N;;;;;
+ 13BB9;EGYPTIAN HIEROGLYPH-13BB9;Lo;0;L;;;;;N;;;;;
+ 13BBA;EGYPTIAN HIEROGLYPH-13BBA;Lo;0;L;;;;;N;;;;;
+ 13BBB;EGYPTIAN HIEROGLYPH-13BBB;Lo;0;L;;;;;N;;;;;
+ 13BBC;EGYPTIAN HIEROGLYPH-13BBC;Lo;0;L;;;;;N;;;;;
+ 13BBD;EGYPTIAN HIEROGLYPH-13BBD;Lo;0;L;;;;;N;;;;;
+ 13BBE;EGYPTIAN HIEROGLYPH-13BBE;Lo;0;L;;;;;N;;;;;
+ 13BBF;EGYPTIAN HIEROGLYPH-13BBF;Lo;0;L;;;;;N;;;;;
+ 13BC0;EGYPTIAN HIEROGLYPH-13BC0;Lo;0;L;;;;;N;;;;;
+ 13BC1;EGYPTIAN HIEROGLYPH-13BC1;Lo;0;L;;;;;N;;;;;
+ 13BC2;EGYPTIAN HIEROGLYPH-13BC2;Lo;0;L;;;;;N;;;;;
+ 13BC3;EGYPTIAN HIEROGLYPH-13BC3;Lo;0;L;;;;;N;;;;;
+ 13BC4;EGYPTIAN HIEROGLYPH-13BC4;Lo;0;L;;;;;N;;;;;
+ 13BC5;EGYPTIAN HIEROGLYPH-13BC5;Lo;0;L;;;;;N;;;;;
+ 13BC6;EGYPTIAN HIEROGLYPH-13BC6;Lo;0;L;;;;;N;;;;;
+ 13BC7;EGYPTIAN HIEROGLYPH-13BC7;Lo;0;L;;;;;N;;;;;
+ 13BC8;EGYPTIAN HIEROGLYPH-13BC8;Lo;0;L;;;;;N;;;;;
+ 13BC9;EGYPTIAN HIEROGLYPH-13BC9;Lo;0;L;;;;;N;;;;;
+ 13BCA;EGYPTIAN HIEROGLYPH-13BCA;Lo;0;L;;;;;N;;;;;
+ 13BCB;EGYPTIAN HIEROGLYPH-13BCB;Lo;0;L;;;;;N;;;;;
+ 13BCC;EGYPTIAN HIEROGLYPH-13BCC;Lo;0;L;;;;;N;;;;;
+ 13BCD;EGYPTIAN HIEROGLYPH-13BCD;Lo;0;L;;;;;N;;;;;
+ 13BCE;EGYPTIAN HIEROGLYPH-13BCE;Lo;0;L;;;;;N;;;;;
+ 13BCF;EGYPTIAN HIEROGLYPH-13BCF;Lo;0;L;;;;;N;;;;;
+ 13BD0;EGYPTIAN HIEROGLYPH-13BD0;Lo;0;L;;;;;N;;;;;
+ 13BD1;EGYPTIAN HIEROGLYPH-13BD1;Lo;0;L;;;;;N;;;;;
+ 13BD2;EGYPTIAN HIEROGLYPH-13BD2;Lo;0;L;;;;;N;;;;;
+ 13BD3;EGYPTIAN HIEROGLYPH-13BD3;Lo;0;L;;;;;N;;;;;
+ 13BD4;EGYPTIAN HIEROGLYPH-13BD4;Lo;0;L;;;;;N;;;;;
+ 13BD5;EGYPTIAN HIEROGLYPH-13BD5;Lo;0;L;;;;;N;;;;;
+ 13BD6;EGYPTIAN HIEROGLYPH-13BD6;Lo;0;L;;;;;N;;;;;
+ 13BD7;EGYPTIAN HIEROGLYPH-13BD7;Lo;0;L;;;;;N;;;;;
+ 13BD8;EGYPTIAN HIEROGLYPH-13BD8;Lo;0;L;;;;;N;;;;;
+ 13BD9;EGYPTIAN HIEROGLYPH-13BD9;Lo;0;L;;;;;N;;;;;
+ 13BDA;EGYPTIAN HIEROGLYPH-13BDA;Lo;0;L;;;;;N;;;;;
+ 13BDB;EGYPTIAN HIEROGLYPH-13BDB;Lo;0;L;;;;;N;;;;;
+ 13BDC;EGYPTIAN HIEROGLYPH-13BDC;Lo;0;L;;;;;N;;;;;
+ 13BDD;EGYPTIAN HIEROGLYPH-13BDD;Lo;0;L;;;;;N;;;;;
+ 13BDE;EGYPTIAN HIEROGLYPH-13BDE;Lo;0;L;;;;;N;;;;;
+ 13BDF;EGYPTIAN HIEROGLYPH-13BDF;Lo;0;L;;;;;N;;;;;
+ 13BE0;EGYPTIAN HIEROGLYPH-13BE0;Lo;0;L;;;;;N;;;;;
+ 13BE1;EGYPTIAN HIEROGLYPH-13BE1;Lo;0;L;;;;;N;;;;;
+ 13BE2;EGYPTIAN HIEROGLYPH-13BE2;Lo;0;L;;;;;N;;;;;
+ 13BE3;EGYPTIAN HIEROGLYPH-13BE3;Lo;0;L;;;;;N;;;;;
+ 13BE4;EGYPTIAN HIEROGLYPH-13BE4;Lo;0;L;;;;;N;;;;;
+ 13BE5;EGYPTIAN HIEROGLYPH-13BE5;Lo;0;L;;;;;N;;;;;
+ 13BE6;EGYPTIAN HIEROGLYPH-13BE6;Lo;0;L;;;;;N;;;;;
+ 13BE7;EGYPTIAN HIEROGLYPH-13BE7;Lo;0;L;;;;;N;;;;;
+ 13BE8;EGYPTIAN HIEROGLYPH-13BE8;Lo;0;L;;;;;N;;;;;
+ 13BE9;EGYPTIAN HIEROGLYPH-13BE9;Lo;0;L;;;;;N;;;;;
+ 13BEA;EGYPTIAN HIEROGLYPH-13BEA;Lo;0;L;;;;;N;;;;;
+ 13BEB;EGYPTIAN HIEROGLYPH-13BEB;Lo;0;L;;;;;N;;;;;
+ 13BEC;EGYPTIAN HIEROGLYPH-13BEC;Lo;0;L;;;;;N;;;;;
+ 13BED;EGYPTIAN HIEROGLYPH-13BED;Lo;0;L;;;;;N;;;;;
+ 13BEE;EGYPTIAN HIEROGLYPH-13BEE;Lo;0;L;;;;;N;;;;;
+ 13BEF;EGYPTIAN HIEROGLYPH-13BEF;Lo;0;L;;;;;N;;;;;
+ 13BF0;EGYPTIAN HIEROGLYPH-13BF0;Lo;0;L;;;;;N;;;;;
+ 13BF1;EGYPTIAN HIEROGLYPH-13BF1;Lo;0;L;;;;;N;;;;;
+ 13BF2;EGYPTIAN HIEROGLYPH-13BF2;Lo;0;L;;;;;N;;;;;
+ 13BF3;EGYPTIAN HIEROGLYPH-13BF3;Lo;0;L;;;;;N;;;;;
+ 13BF4;EGYPTIAN HIEROGLYPH-13BF4;Lo;0;L;;;;;N;;;;;
+ 13BF5;EGYPTIAN HIEROGLYPH-13BF5;Lo;0;L;;;;;N;;;;;
+ 13BF6;EGYPTIAN HIEROGLYPH-13BF6;Lo;0;L;;;;;N;;;;;
+ 13BF7;EGYPTIAN HIEROGLYPH-13BF7;Lo;0;L;;;;;N;;;;;
+ 13BF8;EGYPTIAN HIEROGLYPH-13BF8;Lo;0;L;;;;;N;;;;;
+ 13BF9;EGYPTIAN HIEROGLYPH-13BF9;Lo;0;L;;;;;N;;;;;
+ 13BFA;EGYPTIAN HIEROGLYPH-13BFA;Lo;0;L;;;;;N;;;;;
+ 13BFB;EGYPTIAN HIEROGLYPH-13BFB;Lo;0;L;;;;;N;;;;;
+ 13BFC;EGYPTIAN HIEROGLYPH-13BFC;Lo;0;L;;;;;N;;;;;
+ 13BFD;EGYPTIAN HIEROGLYPH-13BFD;Lo;0;L;;;;;N;;;;;
+ 13BFE;EGYPTIAN HIEROGLYPH-13BFE;Lo;0;L;;;;;N;;;;;
+ 13BFF;EGYPTIAN HIEROGLYPH-13BFF;Lo;0;L;;;;;N;;;;;
+ 13C00;EGYPTIAN HIEROGLYPH-13C00;Lo;0;L;;;;;N;;;;;
+ 13C01;EGYPTIAN HIEROGLYPH-13C01;Lo;0;L;;;;;N;;;;;
+ 13C02;EGYPTIAN HIEROGLYPH-13C02;Lo;0;L;;;;;N;;;;;
+ 13C03;EGYPTIAN HIEROGLYPH-13C03;Lo;0;L;;;;;N;;;;;
+ 13C04;EGYPTIAN HIEROGLYPH-13C04;Lo;0;L;;;;;N;;;;;
+ 13C05;EGYPTIAN HIEROGLYPH-13C05;Lo;0;L;;;;;N;;;;;
+ 13C06;EGYPTIAN HIEROGLYPH-13C06;Lo;0;L;;;;;N;;;;;
+ 13C07;EGYPTIAN HIEROGLYPH-13C07;Lo;0;L;;;;;N;;;;;
+ 13C08;EGYPTIAN HIEROGLYPH-13C08;Lo;0;L;;;;;N;;;;;
+ 13C09;EGYPTIAN HIEROGLYPH-13C09;Lo;0;L;;;;;N;;;;;
+ 13C0A;EGYPTIAN HIEROGLYPH-13C0A;Lo;0;L;;;;;N;;;;;
+ 13C0B;EGYPTIAN HIEROGLYPH-13C0B;Lo;0;L;;;;;N;;;;;
+ 13C0C;EGYPTIAN HIEROGLYPH-13C0C;Lo;0;L;;;;;N;;;;;
+ 13C0D;EGYPTIAN HIEROGLYPH-13C0D;Lo;0;L;;;;;N;;;;;
+ 13C0E;EGYPTIAN HIEROGLYPH-13C0E;Lo;0;L;;;;;N;;;;;
+ 13C0F;EGYPTIAN HIEROGLYPH-13C0F;Lo;0;L;;;;;N;;;;;
+ 13C10;EGYPTIAN HIEROGLYPH-13C10;Lo;0;L;;;;;N;;;;;
+ 13C11;EGYPTIAN HIEROGLYPH-13C11;Lo;0;L;;;;;N;;;;;
+ 13C12;EGYPTIAN HIEROGLYPH-13C12;Lo;0;L;;;;;N;;;;;
+ 13C13;EGYPTIAN HIEROGLYPH-13C13;Lo;0;L;;;;;N;;;;;
+ 13C14;EGYPTIAN HIEROGLYPH-13C14;Lo;0;L;;;;;N;;;;;
+ 13C15;EGYPTIAN HIEROGLYPH-13C15;Lo;0;L;;;;;N;;;;;
+ 13C16;EGYPTIAN HIEROGLYPH-13C16;Lo;0;L;;;;;N;;;;;
+ 13C17;EGYPTIAN HIEROGLYPH-13C17;Lo;0;L;;;;;N;;;;;
+ 13C18;EGYPTIAN HIEROGLYPH-13C18;Lo;0;L;;;;;N;;;;;
+ 13C19;EGYPTIAN HIEROGLYPH-13C19;Lo;0;L;;;;;N;;;;;
+ 13C1A;EGYPTIAN HIEROGLYPH-13C1A;Lo;0;L;;;;;N;;;;;
+ 13C1B;EGYPTIAN HIEROGLYPH-13C1B;Lo;0;L;;;;;N;;;;;
+ 13C1C;EGYPTIAN HIEROGLYPH-13C1C;Lo;0;L;;;;;N;;;;;
+ 13C1D;EGYPTIAN HIEROGLYPH-13C1D;Lo;0;L;;;;;N;;;;;
+ 13C1E;EGYPTIAN HIEROGLYPH-13C1E;Lo;0;L;;;;;N;;;;;
+ 13C1F;EGYPTIAN HIEROGLYPH-13C1F;Lo;0;L;;;;;N;;;;;
+ 13C20;EGYPTIAN HIEROGLYPH-13C20;Lo;0;L;;;;;N;;;;;
+ 13C21;EGYPTIAN HIEROGLYPH-13C21;Lo;0;L;;;;;N;;;;;
+ 13C22;EGYPTIAN HIEROGLYPH-13C22;Lo;0;L;;;;;N;;;;;
+ 13C23;EGYPTIAN HIEROGLYPH-13C23;Lo;0;L;;;;;N;;;;;
+ 13C24;EGYPTIAN HIEROGLYPH-13C24;Lo;0;L;;;;;N;;;;;
+ 13C25;EGYPTIAN HIEROGLYPH-13C25;Lo;0;L;;;;;N;;;;;
+ 13C26;EGYPTIAN HIEROGLYPH-13C26;Lo;0;L;;;;;N;;;;;
+ 13C27;EGYPTIAN HIEROGLYPH-13C27;Lo;0;L;;;;;N;;;;;
+ 13C28;EGYPTIAN HIEROGLYPH-13C28;Lo;0;L;;;;;N;;;;;
+ 13C29;EGYPTIAN HIEROGLYPH-13C29;Lo;0;L;;;;;N;;;;;
+ 13C2A;EGYPTIAN HIEROGLYPH-13C2A;Lo;0;L;;;;;N;;;;;
+ 13C2B;EGYPTIAN HIEROGLYPH-13C2B;Lo;0;L;;;;;N;;;;;
+ 13C2C;EGYPTIAN HIEROGLYPH-13C2C;Lo;0;L;;;;;N;;;;;
+ 13C2D;EGYPTIAN HIEROGLYPH-13C2D;Lo;0;L;;;;;N;;;;;
+ 13C2E;EGYPTIAN HIEROGLYPH-13C2E;Lo;0;L;;;;;N;;;;;
+ 13C2F;EGYPTIAN HIEROGLYPH-13C2F;Lo;0;L;;;;;N;;;;;
+ 13C30;EGYPTIAN HIEROGLYPH-13C30;Lo;0;L;;;;;N;;;;;
+ 13C31;EGYPTIAN HIEROGLYPH-13C31;Lo;0;L;;;;;N;;;;;
+ 13C32;EGYPTIAN HIEROGLYPH-13C32;Lo;0;L;;;;;N;;;;;
+ 13C33;EGYPTIAN HIEROGLYPH-13C33;Lo;0;L;;;;;N;;;;;
+ 13C34;EGYPTIAN HIEROGLYPH-13C34;Lo;0;L;;;;;N;;;;;
+ 13C35;EGYPTIAN HIEROGLYPH-13C35;Lo;0;L;;;;;N;;;;;
+ 13C36;EGYPTIAN HIEROGLYPH-13C36;Lo;0;L;;;;;N;;;;;
+ 13C37;EGYPTIAN HIEROGLYPH-13C37;Lo;0;L;;;;;N;;;;;
+ 13C38;EGYPTIAN HIEROGLYPH-13C38;Lo;0;L;;;;;N;;;;;
+ 13C39;EGYPTIAN HIEROGLYPH-13C39;Lo;0;L;;;;;N;;;;;
+ 13C3A;EGYPTIAN HIEROGLYPH-13C3A;Lo;0;L;;;;;N;;;;;
+ 13C3B;EGYPTIAN HIEROGLYPH-13C3B;Lo;0;L;;;;;N;;;;;
+ 13C3C;EGYPTIAN HIEROGLYPH-13C3C;Lo;0;L;;;;;N;;;;;
+ 13C3D;EGYPTIAN HIEROGLYPH-13C3D;Lo;0;L;;;;;N;;;;;
+ 13C3E;EGYPTIAN HIEROGLYPH-13C3E;Lo;0;L;;;;;N;;;;;
+ 13C3F;EGYPTIAN HIEROGLYPH-13C3F;Lo;0;L;;;;;N;;;;;
+ 13C40;EGYPTIAN HIEROGLYPH-13C40;Lo;0;L;;;;;N;;;;;
+ 13C41;EGYPTIAN HIEROGLYPH-13C41;Lo;0;L;;;;;N;;;;;
+ 13C42;EGYPTIAN HIEROGLYPH-13C42;Lo;0;L;;;;;N;;;;;
+ 13C43;EGYPTIAN HIEROGLYPH-13C43;Lo;0;L;;;;;N;;;;;
+ 13C44;EGYPTIAN HIEROGLYPH-13C44;Lo;0;L;;;;;N;;;;;
+ 13C45;EGYPTIAN HIEROGLYPH-13C45;Lo;0;L;;;;;N;;;;;
+ 13C46;EGYPTIAN HIEROGLYPH-13C46;Lo;0;L;;;;;N;;;;;
+ 13C47;EGYPTIAN HIEROGLYPH-13C47;Lo;0;L;;;;;N;;;;;
+ 13C48;EGYPTIAN HIEROGLYPH-13C48;Lo;0;L;;;;;N;;;;;
+ 13C49;EGYPTIAN HIEROGLYPH-13C49;Lo;0;L;;;;;N;;;;;
+ 13C4A;EGYPTIAN HIEROGLYPH-13C4A;Lo;0;L;;;;;N;;;;;
+ 13C4B;EGYPTIAN HIEROGLYPH-13C4B;Lo;0;L;;;;;N;;;;;
+ 13C4C;EGYPTIAN HIEROGLYPH-13C4C;Lo;0;L;;;;;N;;;;;
+ 13C4D;EGYPTIAN HIEROGLYPH-13C4D;Lo;0;L;;;;;N;;;;;
+ 13C4E;EGYPTIAN HIEROGLYPH-13C4E;Lo;0;L;;;;;N;;;;;
+ 13C4F;EGYPTIAN HIEROGLYPH-13C4F;Lo;0;L;;;;;N;;;;;
+ 13C50;EGYPTIAN HIEROGLYPH-13C50;Lo;0;L;;;;;N;;;;;
+ 13C51;EGYPTIAN HIEROGLYPH-13C51;Lo;0;L;;;;;N;;;;;
+ 13C52;EGYPTIAN HIEROGLYPH-13C52;Lo;0;L;;;;;N;;;;;
+ 13C53;EGYPTIAN HIEROGLYPH-13C53;Lo;0;L;;;;;N;;;;;
+ 13C54;EGYPTIAN HIEROGLYPH-13C54;Lo;0;L;;;;;N;;;;;
+ 13C55;EGYPTIAN HIEROGLYPH-13C55;Lo;0;L;;;;;N;;;;;
+ 13C56;EGYPTIAN HIEROGLYPH-13C56;Lo;0;L;;;;;N;;;;;
+ 13C57;EGYPTIAN HIEROGLYPH-13C57;Lo;0;L;;;;;N;;;;;
+ 13C58;EGYPTIAN HIEROGLYPH-13C58;Lo;0;L;;;;;N;;;;;
+ 13C59;EGYPTIAN HIEROGLYPH-13C59;Lo;0;L;;;;;N;;;;;
+ 13C5A;EGYPTIAN HIEROGLYPH-13C5A;Lo;0;L;;;;;N;;;;;
+ 13C5B;EGYPTIAN HIEROGLYPH-13C5B;Lo;0;L;;;;;N;;;;;
+ 13C5C;EGYPTIAN HIEROGLYPH-13C5C;Lo;0;L;;;;;N;;;;;
+ 13C5D;EGYPTIAN HIEROGLYPH-13C5D;Lo;0;L;;;;;N;;;;;
+ 13C5E;EGYPTIAN HIEROGLYPH-13C5E;Lo;0;L;;;;;N;;;;;
+ 13C5F;EGYPTIAN HIEROGLYPH-13C5F;Lo;0;L;;;;;N;;;;;
+ 13C60;EGYPTIAN HIEROGLYPH-13C60;Lo;0;L;;;;;N;;;;;
+ 13C61;EGYPTIAN HIEROGLYPH-13C61;Lo;0;L;;;;;N;;;;;
+ 13C62;EGYPTIAN HIEROGLYPH-13C62;Lo;0;L;;;;;N;;;;;
+ 13C63;EGYPTIAN HIEROGLYPH-13C63;Lo;0;L;;;;;N;;;;;
+ 13C64;EGYPTIAN HIEROGLYPH-13C64;Lo;0;L;;;;;N;;;;;
+ 13C65;EGYPTIAN HIEROGLYPH-13C65;Lo;0;L;;;;;N;;;;;
+ 13C66;EGYPTIAN HIEROGLYPH-13C66;Lo;0;L;;;;;N;;;;;
+ 13C67;EGYPTIAN HIEROGLYPH-13C67;Lo;0;L;;;;;N;;;;;
+ 13C68;EGYPTIAN HIEROGLYPH-13C68;Lo;0;L;;;;;N;;;;;
+ 13C69;EGYPTIAN HIEROGLYPH-13C69;Lo;0;L;;;;;N;;;;;
+ 13C6A;EGYPTIAN HIEROGLYPH-13C6A;Lo;0;L;;;;;N;;;;;
+ 13C6B;EGYPTIAN HIEROGLYPH-13C6B;Lo;0;L;;;;;N;;;;;
+ 13C6C;EGYPTIAN HIEROGLYPH-13C6C;Lo;0;L;;;;;N;;;;;
+ 13C6D;EGYPTIAN HIEROGLYPH-13C6D;Lo;0;L;;;;;N;;;;;
+ 13C6E;EGYPTIAN HIEROGLYPH-13C6E;Lo;0;L;;;;;N;;;;;
+ 13C6F;EGYPTIAN HIEROGLYPH-13C6F;Lo;0;L;;;;;N;;;;;
+ 13C70;EGYPTIAN HIEROGLYPH-13C70;Lo;0;L;;;;;N;;;;;
+ 13C71;EGYPTIAN HIEROGLYPH-13C71;Lo;0;L;;;;;N;;;;;
+ 13C72;EGYPTIAN HIEROGLYPH-13C72;Lo;0;L;;;;;N;;;;;
+ 13C73;EGYPTIAN HIEROGLYPH-13C73;Lo;0;L;;;;;N;;;;;
+ 13C74;EGYPTIAN HIEROGLYPH-13C74;Lo;0;L;;;;;N;;;;;
+ 13C75;EGYPTIAN HIEROGLYPH-13C75;Lo;0;L;;;;;N;;;;;
+ 13C76;EGYPTIAN HIEROGLYPH-13C76;Lo;0;L;;;;;N;;;;;
+ 13C77;EGYPTIAN HIEROGLYPH-13C77;Lo;0;L;;;;;N;;;;;
+ 13C78;EGYPTIAN HIEROGLYPH-13C78;Lo;0;L;;;;;N;;;;;
+ 13C79;EGYPTIAN HIEROGLYPH-13C79;Lo;0;L;;;;;N;;;;;
+ 13C7A;EGYPTIAN HIEROGLYPH-13C7A;Lo;0;L;;;;;N;;;;;
+ 13C7B;EGYPTIAN HIEROGLYPH-13C7B;Lo;0;L;;;;;N;;;;;
+ 13C7C;EGYPTIAN HIEROGLYPH-13C7C;Lo;0;L;;;;;N;;;;;
+ 13C7D;EGYPTIAN HIEROGLYPH-13C7D;Lo;0;L;;;;;N;;;;;
+ 13C7E;EGYPTIAN HIEROGLYPH-13C7E;Lo;0;L;;;;;N;;;;;
+ 13C7F;EGYPTIAN HIEROGLYPH-13C7F;Lo;0;L;;;;;N;;;;;
+ 13C80;EGYPTIAN HIEROGLYPH-13C80;Lo;0;L;;;;;N;;;;;
+ 13C81;EGYPTIAN HIEROGLYPH-13C81;Lo;0;L;;;;;N;;;;;
+ 13C82;EGYPTIAN HIEROGLYPH-13C82;Lo;0;L;;;;;N;;;;;
+ 13C83;EGYPTIAN HIEROGLYPH-13C83;Lo;0;L;;;;;N;;;;;
+ 13C84;EGYPTIAN HIEROGLYPH-13C84;Lo;0;L;;;;;N;;;;;
+ 13C85;EGYPTIAN HIEROGLYPH-13C85;Lo;0;L;;;;;N;;;;;
+ 13C86;EGYPTIAN HIEROGLYPH-13C86;Lo;0;L;;;;;N;;;;;
+ 13C87;EGYPTIAN HIEROGLYPH-13C87;Lo;0;L;;;;;N;;;;;
+ 13C88;EGYPTIAN HIEROGLYPH-13C88;Lo;0;L;;;;;N;;;;;
+ 13C89;EGYPTIAN HIEROGLYPH-13C89;Lo;0;L;;;;;N;;;;;
+ 13C8A;EGYPTIAN HIEROGLYPH-13C8A;Lo;0;L;;;;;N;;;;;
+ 13C8B;EGYPTIAN HIEROGLYPH-13C8B;Lo;0;L;;;;;N;;;;;
+ 13C8C;EGYPTIAN HIEROGLYPH-13C8C;Lo;0;L;;;;;N;;;;;
+ 13C8D;EGYPTIAN HIEROGLYPH-13C8D;Lo;0;L;;;;;N;;;;;
+ 13C8E;EGYPTIAN HIEROGLYPH-13C8E;Lo;0;L;;;;;N;;;;;
+ 13C8F;EGYPTIAN HIEROGLYPH-13C8F;Lo;0;L;;;;;N;;;;;
+ 13C90;EGYPTIAN HIEROGLYPH-13C90;Lo;0;L;;;;;N;;;;;
+ 13C91;EGYPTIAN HIEROGLYPH-13C91;Lo;0;L;;;;;N;;;;;
+ 13C92;EGYPTIAN HIEROGLYPH-13C92;Lo;0;L;;;;;N;;;;;
+ 13C93;EGYPTIAN HIEROGLYPH-13C93;Lo;0;L;;;;;N;;;;;
+ 13C94;EGYPTIAN HIEROGLYPH-13C94;Lo;0;L;;;;;N;;;;;
+ 13C95;EGYPTIAN HIEROGLYPH-13C95;Lo;0;L;;;;;N;;;;;
+ 13C96;EGYPTIAN HIEROGLYPH-13C96;Lo;0;L;;;;;N;;;;;
+ 13C97;EGYPTIAN HIEROGLYPH-13C97;Lo;0;L;;;;;N;;;;;
+ 13C98;EGYPTIAN HIEROGLYPH-13C98;Lo;0;L;;;;;N;;;;;
+ 13C99;EGYPTIAN HIEROGLYPH-13C99;Lo;0;L;;;;;N;;;;;
+ 13C9A;EGYPTIAN HIEROGLYPH-13C9A;Lo;0;L;;;;;N;;;;;
+ 13C9B;EGYPTIAN HIEROGLYPH-13C9B;Lo;0;L;;;;;N;;;;;
+ 13C9C;EGYPTIAN HIEROGLYPH-13C9C;Lo;0;L;;;;;N;;;;;
+ 13C9D;EGYPTIAN HIEROGLYPH-13C9D;Lo;0;L;;;;;N;;;;;
+ 13C9E;EGYPTIAN HIEROGLYPH-13C9E;Lo;0;L;;;;;N;;;;;
+ 13C9F;EGYPTIAN HIEROGLYPH-13C9F;Lo;0;L;;;;;N;;;;;
+ 13CA0;EGYPTIAN HIEROGLYPH-13CA0;Lo;0;L;;;;;N;;;;;
+ 13CA1;EGYPTIAN HIEROGLYPH-13CA1;Lo;0;L;;;;;N;;;;;
+ 13CA2;EGYPTIAN HIEROGLYPH-13CA2;Lo;0;L;;;;;N;;;;;
+ 13CA3;EGYPTIAN HIEROGLYPH-13CA3;Lo;0;L;;;;;N;;;;;
+ 13CA4;EGYPTIAN HIEROGLYPH-13CA4;Lo;0;L;;;;;N;;;;;
+ 13CA5;EGYPTIAN HIEROGLYPH-13CA5;Lo;0;L;;;;;N;;;;;
+ 13CA6;EGYPTIAN HIEROGLYPH-13CA6;Lo;0;L;;;;;N;;;;;
+ 13CA7;EGYPTIAN HIEROGLYPH-13CA7;Lo;0;L;;;;;N;;;;;
+ 13CA8;EGYPTIAN HIEROGLYPH-13CA8;Lo;0;L;;;;;N;;;;;
+ 13CA9;EGYPTIAN HIEROGLYPH-13CA9;Lo;0;L;;;;;N;;;;;
+ 13CAA;EGYPTIAN HIEROGLYPH-13CAA;Lo;0;L;;;;;N;;;;;
+ 13CAB;EGYPTIAN HIEROGLYPH-13CAB;Lo;0;L;;;;;N;;;;;
+ 13CAC;EGYPTIAN HIEROGLYPH-13CAC;Lo;0;L;;;;;N;;;;;
+ 13CAD;EGYPTIAN HIEROGLYPH-13CAD;Lo;0;L;;;;;N;;;;;
+ 13CAE;EGYPTIAN HIEROGLYPH-13CAE;Lo;0;L;;;;;N;;;;;
+ 13CAF;EGYPTIAN HIEROGLYPH-13CAF;Lo;0;L;;;;;N;;;;;
+ 13CB0;EGYPTIAN HIEROGLYPH-13CB0;Lo;0;L;;;;;N;;;;;
+ 13CB1;EGYPTIAN HIEROGLYPH-13CB1;Lo;0;L;;;;;N;;;;;
+ 13CB2;EGYPTIAN HIEROGLYPH-13CB2;Lo;0;L;;;;;N;;;;;
+ 13CB3;EGYPTIAN HIEROGLYPH-13CB3;Lo;0;L;;;;;N;;;;;
+ 13CB4;EGYPTIAN HIEROGLYPH-13CB4;Lo;0;L;;;;;N;;;;;
+ 13CB5;EGYPTIAN HIEROGLYPH-13CB5;Lo;0;L;;;;;N;;;;;
+ 13CB6;EGYPTIAN HIEROGLYPH-13CB6;Lo;0;L;;;;;N;;;;;
+ 13CB7;EGYPTIAN HIEROGLYPH-13CB7;Lo;0;L;;;;;N;;;;;
+ 13CB8;EGYPTIAN HIEROGLYPH-13CB8;Lo;0;L;;;;;N;;;;;
+ 13CB9;EGYPTIAN HIEROGLYPH-13CB9;Lo;0;L;;;;;N;;;;;
+ 13CBA;EGYPTIAN HIEROGLYPH-13CBA;Lo;0;L;;;;;N;;;;;
+ 13CBB;EGYPTIAN HIEROGLYPH-13CBB;Lo;0;L;;;;;N;;;;;
+ 13CBC;EGYPTIAN HIEROGLYPH-13CBC;Lo;0;L;;;;;N;;;;;
+ 13CBD;EGYPTIAN HIEROGLYPH-13CBD;Lo;0;L;;;;;N;;;;;
+ 13CBE;EGYPTIAN HIEROGLYPH-13CBE;Lo;0;L;;;;;N;;;;;
+ 13CBF;EGYPTIAN HIEROGLYPH-13CBF;Lo;0;L;;;;;N;;;;;
+ 13CC0;EGYPTIAN HIEROGLYPH-13CC0;Lo;0;L;;;;;N;;;;;
+ 13CC1;EGYPTIAN HIEROGLYPH-13CC1;Lo;0;L;;;;;N;;;;;
+ 13CC2;EGYPTIAN HIEROGLYPH-13CC2;Lo;0;L;;;;;N;;;;;
+ 13CC3;EGYPTIAN HIEROGLYPH-13CC3;Lo;0;L;;;;;N;;;;;
+ 13CC4;EGYPTIAN HIEROGLYPH-13CC4;Lo;0;L;;;;;N;;;;;
+ 13CC5;EGYPTIAN HIEROGLYPH-13CC5;Lo;0;L;;;;;N;;;;;
+ 13CC6;EGYPTIAN HIEROGLYPH-13CC6;Lo;0;L;;;;;N;;;;;
+ 13CC7;EGYPTIAN HIEROGLYPH-13CC7;Lo;0;L;;;;;N;;;;;
+ 13CC8;EGYPTIAN HIEROGLYPH-13CC8;Lo;0;L;;;;;N;;;;;
+ 13CC9;EGYPTIAN HIEROGLYPH-13CC9;Lo;0;L;;;;;N;;;;;
+ 13CCA;EGYPTIAN HIEROGLYPH-13CCA;Lo;0;L;;;;;N;;;;;
+ 13CCB;EGYPTIAN HIEROGLYPH-13CCB;Lo;0;L;;;;;N;;;;;
+ 13CCC;EGYPTIAN HIEROGLYPH-13CCC;Lo;0;L;;;;;N;;;;;
+ 13CCD;EGYPTIAN HIEROGLYPH-13CCD;Lo;0;L;;;;;N;;;;;
+ 13CCE;EGYPTIAN HIEROGLYPH-13CCE;Lo;0;L;;;;;N;;;;;
+ 13CCF;EGYPTIAN HIEROGLYPH-13CCF;Lo;0;L;;;;;N;;;;;
+ 13CD0;EGYPTIAN HIEROGLYPH-13CD0;Lo;0;L;;;;;N;;;;;
+ 13CD1;EGYPTIAN HIEROGLYPH-13CD1;Lo;0;L;;;;;N;;;;;
+ 13CD2;EGYPTIAN HIEROGLYPH-13CD2;Lo;0;L;;;;;N;;;;;
+ 13CD3;EGYPTIAN HIEROGLYPH-13CD3;Lo;0;L;;;;;N;;;;;
+ 13CD4;EGYPTIAN HIEROGLYPH-13CD4;Lo;0;L;;;;;N;;;;;
+ 13CD5;EGYPTIAN HIEROGLYPH-13CD5;Lo;0;L;;;;;N;;;;;
+ 13CD6;EGYPTIAN HIEROGLYPH-13CD6;Lo;0;L;;;;;N;;;;;
+ 13CD7;EGYPTIAN HIEROGLYPH-13CD7;Lo;0;L;;;;;N;;;;;
+ 13CD8;EGYPTIAN HIEROGLYPH-13CD8;Lo;0;L;;;;;N;;;;;
+ 13CD9;EGYPTIAN HIEROGLYPH-13CD9;Lo;0;L;;;;;N;;;;;
+ 13CDA;EGYPTIAN HIEROGLYPH-13CDA;Lo;0;L;;;;;N;;;;;
+ 13CDB;EGYPTIAN HIEROGLYPH-13CDB;Lo;0;L;;;;;N;;;;;
+ 13CDC;EGYPTIAN HIEROGLYPH-13CDC;Lo;0;L;;;;;N;;;;;
+ 13CDD;EGYPTIAN HIEROGLYPH-13CDD;Lo;0;L;;;;;N;;;;;
+ 13CDE;EGYPTIAN HIEROGLYPH-13CDE;Lo;0;L;;;;;N;;;;;
+ 13CDF;EGYPTIAN HIEROGLYPH-13CDF;Lo;0;L;;;;;N;;;;;
+ 13CE0;EGYPTIAN HIEROGLYPH-13CE0;Lo;0;L;;;;;N;;;;;
+ 13CE1;EGYPTIAN HIEROGLYPH-13CE1;Lo;0;L;;;;;N;;;;;
+ 13CE2;EGYPTIAN HIEROGLYPH-13CE2;Lo;0;L;;;;;N;;;;;
+ 13CE3;EGYPTIAN HIEROGLYPH-13CE3;Lo;0;L;;;;;N;;;;;
+ 13CE4;EGYPTIAN HIEROGLYPH-13CE4;Lo;0;L;;;;;N;;;;;
+ 13CE5;EGYPTIAN HIEROGLYPH-13CE5;Lo;0;L;;;;;N;;;;;
+ 13CE6;EGYPTIAN HIEROGLYPH-13CE6;Lo;0;L;;;;;N;;;;;
+ 13CE7;EGYPTIAN HIEROGLYPH-13CE7;Lo;0;L;;;;;N;;;;;
+ 13CE8;EGYPTIAN HIEROGLYPH-13CE8;Lo;0;L;;;;;N;;;;;
+ 13CE9;EGYPTIAN HIEROGLYPH-13CE9;Lo;0;L;;;;;N;;;;;
+ 13CEA;EGYPTIAN HIEROGLYPH-13CEA;Lo;0;L;;;;;N;;;;;
+ 13CEB;EGYPTIAN HIEROGLYPH-13CEB;Lo;0;L;;;;;N;;;;;
+ 13CEC;EGYPTIAN HIEROGLYPH-13CEC;Lo;0;L;;;;;N;;;;;
+ 13CED;EGYPTIAN HIEROGLYPH-13CED;Lo;0;L;;;;;N;;;;;
+ 13CEE;EGYPTIAN HIEROGLYPH-13CEE;Lo;0;L;;;;;N;;;;;
+ 13CEF;EGYPTIAN HIEROGLYPH-13CEF;Lo;0;L;;;;;N;;;;;
+ 13CF0;EGYPTIAN HIEROGLYPH-13CF0;Lo;0;L;;;;;N;;;;;
+ 13CF1;EGYPTIAN HIEROGLYPH-13CF1;Lo;0;L;;;;;N;;;;;
+ 13CF2;EGYPTIAN HIEROGLYPH-13CF2;Lo;0;L;;;;;N;;;;;
+ 13CF3;EGYPTIAN HIEROGLYPH-13CF3;Lo;0;L;;;;;N;;;;;
+ 13CF4;EGYPTIAN HIEROGLYPH-13CF4;Lo;0;L;;;;;N;;;;;
+ 13CF5;EGYPTIAN HIEROGLYPH-13CF5;Lo;0;L;;;;;N;;;;;
+ 13CF6;EGYPTIAN HIEROGLYPH-13CF6;Lo;0;L;;;;;N;;;;;
+ 13CF7;EGYPTIAN HIEROGLYPH-13CF7;Lo;0;L;;;;;N;;;;;
+ 13CF8;EGYPTIAN HIEROGLYPH-13CF8;Lo;0;L;;;;;N;;;;;
+ 13CF9;EGYPTIAN HIEROGLYPH-13CF9;Lo;0;L;;;;;N;;;;;
+ 13CFA;EGYPTIAN HIEROGLYPH-13CFA;Lo;0;L;;;;;N;;;;;
+ 13CFB;EGYPTIAN HIEROGLYPH-13CFB;Lo;0;L;;;;;N;;;;;
+ 13CFC;EGYPTIAN HIEROGLYPH-13CFC;Lo;0;L;;;;;N;;;;;
+ 13CFD;EGYPTIAN HIEROGLYPH-13CFD;Lo;0;L;;;;;N;;;;;
+ 13CFE;EGYPTIAN HIEROGLYPH-13CFE;Lo;0;L;;;;;N;;;;;
+ 13CFF;EGYPTIAN HIEROGLYPH-13CFF;Lo;0;L;;;;;N;;;;;
+ 13D00;EGYPTIAN HIEROGLYPH-13D00;Lo;0;L;;;;;N;;;;;
+ 13D01;EGYPTIAN HIEROGLYPH-13D01;Lo;0;L;;;;;N;;;;;
+ 13D02;EGYPTIAN HIEROGLYPH-13D02;Lo;0;L;;;;;N;;;;;
+ 13D03;EGYPTIAN HIEROGLYPH-13D03;Lo;0;L;;;;;N;;;;;
+ 13D04;EGYPTIAN HIEROGLYPH-13D04;Lo;0;L;;;;;N;;;;;
+ 13D05;EGYPTIAN HIEROGLYPH-13D05;Lo;0;L;;;;;N;;;;;
+ 13D06;EGYPTIAN HIEROGLYPH-13D06;Lo;0;L;;;;;N;;;;;
+ 13D07;EGYPTIAN HIEROGLYPH-13D07;Lo;0;L;;;;;N;;;;;
+ 13D08;EGYPTIAN HIEROGLYPH-13D08;Lo;0;L;;;;;N;;;;;
+ 13D09;EGYPTIAN HIEROGLYPH-13D09;Lo;0;L;;;;;N;;;;;
+ 13D0A;EGYPTIAN HIEROGLYPH-13D0A;Lo;0;L;;;;;N;;;;;
+ 13D0B;EGYPTIAN HIEROGLYPH-13D0B;Lo;0;L;;;;;N;;;;;
+ 13D0C;EGYPTIAN HIEROGLYPH-13D0C;Lo;0;L;;;;;N;;;;;
+ 13D0D;EGYPTIAN HIEROGLYPH-13D0D;Lo;0;L;;;;;N;;;;;
+ 13D0E;EGYPTIAN HIEROGLYPH-13D0E;Lo;0;L;;;;;N;;;;;
+ 13D0F;EGYPTIAN HIEROGLYPH-13D0F;Lo;0;L;;;;;N;;;;;
+ 13D10;EGYPTIAN HIEROGLYPH-13D10;Lo;0;L;;;;;N;;;;;
+ 13D11;EGYPTIAN HIEROGLYPH-13D11;Lo;0;L;;;;;N;;;;;
+ 13D12;EGYPTIAN HIEROGLYPH-13D12;Lo;0;L;;;;;N;;;;;
+ 13D13;EGYPTIAN HIEROGLYPH-13D13;Lo;0;L;;;;;N;;;;;
+ 13D14;EGYPTIAN HIEROGLYPH-13D14;Lo;0;L;;;;;N;;;;;
+ 13D15;EGYPTIAN HIEROGLYPH-13D15;Lo;0;L;;;;;N;;;;;
+ 13D16;EGYPTIAN HIEROGLYPH-13D16;Lo;0;L;;;;;N;;;;;
+ 13D17;EGYPTIAN HIEROGLYPH-13D17;Lo;0;L;;;;;N;;;;;
+ 13D18;EGYPTIAN HIEROGLYPH-13D18;Lo;0;L;;;;;N;;;;;
+ 13D19;EGYPTIAN HIEROGLYPH-13D19;Lo;0;L;;;;;N;;;;;
+ 13D1A;EGYPTIAN HIEROGLYPH-13D1A;Lo;0;L;;;;;N;;;;;
+ 13D1B;EGYPTIAN HIEROGLYPH-13D1B;Lo;0;L;;;;;N;;;;;
+ 13D1C;EGYPTIAN HIEROGLYPH-13D1C;Lo;0;L;;;;;N;;;;;
+ 13D1D;EGYPTIAN HIEROGLYPH-13D1D;Lo;0;L;;;;;N;;;;;
+ 13D1E;EGYPTIAN HIEROGLYPH-13D1E;Lo;0;L;;;;;N;;;;;
+ 13D1F;EGYPTIAN HIEROGLYPH-13D1F;Lo;0;L;;;;;N;;;;;
+ 13D20;EGYPTIAN HIEROGLYPH-13D20;Lo;0;L;;;;;N;;;;;
+ 13D21;EGYPTIAN HIEROGLYPH-13D21;Lo;0;L;;;;;N;;;;;
+ 13D22;EGYPTIAN HIEROGLYPH-13D22;Lo;0;L;;;;;N;;;;;
+ 13D23;EGYPTIAN HIEROGLYPH-13D23;Lo;0;L;;;;;N;;;;;
+ 13D24;EGYPTIAN HIEROGLYPH-13D24;Lo;0;L;;;;;N;;;;;
+ 13D25;EGYPTIAN HIEROGLYPH-13D25;Lo;0;L;;;;;N;;;;;
+ 13D26;EGYPTIAN HIEROGLYPH-13D26;Lo;0;L;;;;;N;;;;;
+ 13D27;EGYPTIAN HIEROGLYPH-13D27;Lo;0;L;;;;;N;;;;;
+ 13D28;EGYPTIAN HIEROGLYPH-13D28;Lo;0;L;;;;;N;;;;;
+ 13D29;EGYPTIAN HIEROGLYPH-13D29;Lo;0;L;;;;;N;;;;;
+ 13D2A;EGYPTIAN HIEROGLYPH-13D2A;Lo;0;L;;;;;N;;;;;
+ 13D2B;EGYPTIAN HIEROGLYPH-13D2B;Lo;0;L;;;;;N;;;;;
+ 13D2C;EGYPTIAN HIEROGLYPH-13D2C;Lo;0;L;;;;;N;;;;;
+ 13D2D;EGYPTIAN HIEROGLYPH-13D2D;Lo;0;L;;;;;N;;;;;
+ 13D2E;EGYPTIAN HIEROGLYPH-13D2E;Lo;0;L;;;;;N;;;;;
+ 13D2F;EGYPTIAN HIEROGLYPH-13D2F;Lo;0;L;;;;;N;;;;;
+ 13D30;EGYPTIAN HIEROGLYPH-13D30;Lo;0;L;;;;;N;;;;;
+ 13D31;EGYPTIAN HIEROGLYPH-13D31;Lo;0;L;;;;;N;;;;;
+ 13D32;EGYPTIAN HIEROGLYPH-13D32;Lo;0;L;;;;;N;;;;;
+ 13D33;EGYPTIAN HIEROGLYPH-13D33;Lo;0;L;;;;;N;;;;;
+ 13D34;EGYPTIAN HIEROGLYPH-13D34;Lo;0;L;;;;;N;;;;;
+ 13D35;EGYPTIAN HIEROGLYPH-13D35;Lo;0;L;;;;;N;;;;;
+ 13D36;EGYPTIAN HIEROGLYPH-13D36;Lo;0;L;;;;;N;;;;;
+ 13D37;EGYPTIAN HIEROGLYPH-13D37;Lo;0;L;;;;;N;;;;;
+ 13D38;EGYPTIAN HIEROGLYPH-13D38;Lo;0;L;;;;;N;;;;;
+ 13D39;EGYPTIAN HIEROGLYPH-13D39;Lo;0;L;;;;;N;;;;;
+ 13D3A;EGYPTIAN HIEROGLYPH-13D3A;Lo;0;L;;;;;N;;;;;
+ 13D3B;EGYPTIAN HIEROGLYPH-13D3B;Lo;0;L;;;;;N;;;;;
+ 13D3C;EGYPTIAN HIEROGLYPH-13D3C;Lo;0;L;;;;;N;;;;;
+ 13D3D;EGYPTIAN HIEROGLYPH-13D3D;Lo;0;L;;;;;N;;;;;
+ 13D3E;EGYPTIAN HIEROGLYPH-13D3E;Lo;0;L;;;;;N;;;;;
+ 13D3F;EGYPTIAN HIEROGLYPH-13D3F;Lo;0;L;;;;;N;;;;;
+ 13D40;EGYPTIAN HIEROGLYPH-13D40;Lo;0;L;;;;;N;;;;;
+ 13D41;EGYPTIAN HIEROGLYPH-13D41;Lo;0;L;;;;;N;;;;;
+ 13D42;EGYPTIAN HIEROGLYPH-13D42;Lo;0;L;;;;;N;;;;;
+ 13D43;EGYPTIAN HIEROGLYPH-13D43;Lo;0;L;;;;;N;;;;;
+ 13D44;EGYPTIAN HIEROGLYPH-13D44;Lo;0;L;;;;;N;;;;;
+ 13D45;EGYPTIAN HIEROGLYPH-13D45;Lo;0;L;;;;;N;;;;;
+ 13D46;EGYPTIAN HIEROGLYPH-13D46;Lo;0;L;;;;;N;;;;;
+ 13D47;EGYPTIAN HIEROGLYPH-13D47;Lo;0;L;;;;;N;;;;;
+ 13D48;EGYPTIAN HIEROGLYPH-13D48;Lo;0;L;;;;;N;;;;;
+ 13D49;EGYPTIAN HIEROGLYPH-13D49;Lo;0;L;;;;;N;;;;;
+ 13D4A;EGYPTIAN HIEROGLYPH-13D4A;Lo;0;L;;;;;N;;;;;
+ 13D4B;EGYPTIAN HIEROGLYPH-13D4B;Lo;0;L;;;;;N;;;;;
+ 13D4C;EGYPTIAN HIEROGLYPH-13D4C;Lo;0;L;;;;;N;;;;;
+ 13D4D;EGYPTIAN HIEROGLYPH-13D4D;Lo;0;L;;;;;N;;;;;
+ 13D4E;EGYPTIAN HIEROGLYPH-13D4E;Lo;0;L;;;;;N;;;;;
+ 13D4F;EGYPTIAN HIEROGLYPH-13D4F;Lo;0;L;;;;;N;;;;;
+ 13D50;EGYPTIAN HIEROGLYPH-13D50;Lo;0;L;;;;;N;;;;;
+ 13D51;EGYPTIAN HIEROGLYPH-13D51;Lo;0;L;;;;;N;;;;;
+ 13D52;EGYPTIAN HIEROGLYPH-13D52;Lo;0;L;;;;;N;;;;;
+ 13D53;EGYPTIAN HIEROGLYPH-13D53;Lo;0;L;;;;;N;;;;;
+ 13D54;EGYPTIAN HIEROGLYPH-13D54;Lo;0;L;;;;;N;;;;;
+ 13D55;EGYPTIAN HIEROGLYPH-13D55;Lo;0;L;;;;;N;;;;;
+ 13D56;EGYPTIAN HIEROGLYPH-13D56;Lo;0;L;;;;;N;;;;;
+ 13D57;EGYPTIAN HIEROGLYPH-13D57;Lo;0;L;;;;;N;;;;;
+ 13D58;EGYPTIAN HIEROGLYPH-13D58;Lo;0;L;;;;;N;;;;;
+ 13D59;EGYPTIAN HIEROGLYPH-13D59;Lo;0;L;;;;;N;;;;;
+ 13D5A;EGYPTIAN HIEROGLYPH-13D5A;Lo;0;L;;;;;N;;;;;
+ 13D5B;EGYPTIAN HIEROGLYPH-13D5B;Lo;0;L;;;;;N;;;;;
+ 13D5C;EGYPTIAN HIEROGLYPH-13D5C;Lo;0;L;;;;;N;;;;;
+ 13D5D;EGYPTIAN HIEROGLYPH-13D5D;Lo;0;L;;;;;N;;;;;
+ 13D5E;EGYPTIAN HIEROGLYPH-13D5E;Lo;0;L;;;;;N;;;;;
+ 13D5F;EGYPTIAN HIEROGLYPH-13D5F;Lo;0;L;;;;;N;;;;;
+ 13D60;EGYPTIAN HIEROGLYPH-13D60;Lo;0;L;;;;;N;;;;;
+ 13D61;EGYPTIAN HIEROGLYPH-13D61;Lo;0;L;;;;;N;;;;;
+ 13D62;EGYPTIAN HIEROGLYPH-13D62;Lo;0;L;;;;;N;;;;;
+ 13D63;EGYPTIAN HIEROGLYPH-13D63;Lo;0;L;;;;;N;;;;;
+ 13D64;EGYPTIAN HIEROGLYPH-13D64;Lo;0;L;;;;;N;;;;;
+ 13D65;EGYPTIAN HIEROGLYPH-13D65;Lo;0;L;;;;;N;;;;;
+ 13D66;EGYPTIAN HIEROGLYPH-13D66;Lo;0;L;;;;;N;;;;;
+ 13D67;EGYPTIAN HIEROGLYPH-13D67;Lo;0;L;;;;;N;;;;;
+ 13D68;EGYPTIAN HIEROGLYPH-13D68;Lo;0;L;;;;;N;;;;;
+ 13D69;EGYPTIAN HIEROGLYPH-13D69;Lo;0;L;;;;;N;;;;;
+ 13D6A;EGYPTIAN HIEROGLYPH-13D6A;Lo;0;L;;;;;N;;;;;
+ 13D6B;EGYPTIAN HIEROGLYPH-13D6B;Lo;0;L;;;;;N;;;;;
+ 13D6C;EGYPTIAN HIEROGLYPH-13D6C;Lo;0;L;;;;;N;;;;;
+ 13D6D;EGYPTIAN HIEROGLYPH-13D6D;Lo;0;L;;;;;N;;;;;
+ 13D6E;EGYPTIAN HIEROGLYPH-13D6E;Lo;0;L;;;;;N;;;;;
+ 13D6F;EGYPTIAN HIEROGLYPH-13D6F;Lo;0;L;;;;;N;;;;;
+ 13D70;EGYPTIAN HIEROGLYPH-13D70;Lo;0;L;;;;;N;;;;;
+ 13D71;EGYPTIAN HIEROGLYPH-13D71;Lo;0;L;;;;;N;;;;;
+ 13D72;EGYPTIAN HIEROGLYPH-13D72;Lo;0;L;;;;;N;;;;;
+ 13D73;EGYPTIAN HIEROGLYPH-13D73;Lo;0;L;;;;;N;;;;;
+ 13D74;EGYPTIAN HIEROGLYPH-13D74;Lo;0;L;;;;;N;;;;;
+ 13D75;EGYPTIAN HIEROGLYPH-13D75;Lo;0;L;;;;;N;;;;;
+ 13D76;EGYPTIAN HIEROGLYPH-13D76;Lo;0;L;;;;;N;;;;;
+ 13D77;EGYPTIAN HIEROGLYPH-13D77;Lo;0;L;;;;;N;;;;;
+ 13D78;EGYPTIAN HIEROGLYPH-13D78;Lo;0;L;;;;;N;;;;;
+ 13D79;EGYPTIAN HIEROGLYPH-13D79;Lo;0;L;;;;;N;;;;;
+ 13D7A;EGYPTIAN HIEROGLYPH-13D7A;Lo;0;L;;;;;N;;;;;
+ 13D7B;EGYPTIAN HIEROGLYPH-13D7B;Lo;0;L;;;;;N;;;;;
+ 13D7C;EGYPTIAN HIEROGLYPH-13D7C;Lo;0;L;;;;;N;;;;;
+ 13D7D;EGYPTIAN HIEROGLYPH-13D7D;Lo;0;L;;;;;N;;;;;
+ 13D7E;EGYPTIAN HIEROGLYPH-13D7E;Lo;0;L;;;;;N;;;;;
+ 13D7F;EGYPTIAN HIEROGLYPH-13D7F;Lo;0;L;;;;;N;;;;;
+ 13D80;EGYPTIAN HIEROGLYPH-13D80;Lo;0;L;;;;;N;;;;;
+ 13D81;EGYPTIAN HIEROGLYPH-13D81;Lo;0;L;;;;;N;;;;;
+ 13D82;EGYPTIAN HIEROGLYPH-13D82;Lo;0;L;;;;;N;;;;;
+ 13D83;EGYPTIAN HIEROGLYPH-13D83;Lo;0;L;;;;;N;;;;;
+ 13D84;EGYPTIAN HIEROGLYPH-13D84;Lo;0;L;;;;;N;;;;;
+ 13D85;EGYPTIAN HIEROGLYPH-13D85;Lo;0;L;;;;;N;;;;;
+ 13D86;EGYPTIAN HIEROGLYPH-13D86;Lo;0;L;;;;;N;;;;;
+ 13D87;EGYPTIAN HIEROGLYPH-13D87;Lo;0;L;;;;;N;;;;;
+ 13D88;EGYPTIAN HIEROGLYPH-13D88;Lo;0;L;;;;;N;;;;;
+ 13D89;EGYPTIAN HIEROGLYPH-13D89;Lo;0;L;;;;;N;;;;;
+ 13D8A;EGYPTIAN HIEROGLYPH-13D8A;Lo;0;L;;;;;N;;;;;
+ 13D8B;EGYPTIAN HIEROGLYPH-13D8B;Lo;0;L;;;;;N;;;;;
+ 13D8C;EGYPTIAN HIEROGLYPH-13D8C;Lo;0;L;;;;;N;;;;;
+ 13D8D;EGYPTIAN HIEROGLYPH-13D8D;Lo;0;L;;;;;N;;;;;
+ 13D8E;EGYPTIAN HIEROGLYPH-13D8E;Lo;0;L;;;;;N;;;;;
+ 13D8F;EGYPTIAN HIEROGLYPH-13D8F;Lo;0;L;;;;;N;;;;;
+ 13D90;EGYPTIAN HIEROGLYPH-13D90;Lo;0;L;;;;;N;;;;;
+ 13D91;EGYPTIAN HIEROGLYPH-13D91;Lo;0;L;;;;;N;;;;;
+ 13D92;EGYPTIAN HIEROGLYPH-13D92;Lo;0;L;;;;;N;;;;;
+ 13D93;EGYPTIAN HIEROGLYPH-13D93;Lo;0;L;;;;;N;;;;;
+ 13D94;EGYPTIAN HIEROGLYPH-13D94;Lo;0;L;;;;;N;;;;;
+ 13D95;EGYPTIAN HIEROGLYPH-13D95;Lo;0;L;;;;;N;;;;;
+ 13D96;EGYPTIAN HIEROGLYPH-13D96;Lo;0;L;;;;;N;;;;;
+ 13D97;EGYPTIAN HIEROGLYPH-13D97;Lo;0;L;;;;;N;;;;;
+ 13D98;EGYPTIAN HIEROGLYPH-13D98;Lo;0;L;;;;;N;;;;;
+ 13D99;EGYPTIAN HIEROGLYPH-13D99;Lo;0;L;;;;;N;;;;;
+ 13D9A;EGYPTIAN HIEROGLYPH-13D9A;Lo;0;L;;;;;N;;;;;
+ 13D9B;EGYPTIAN HIEROGLYPH-13D9B;Lo;0;L;;;;;N;;;;;
+ 13D9C;EGYPTIAN HIEROGLYPH-13D9C;Lo;0;L;;;;;N;;;;;
+ 13D9D;EGYPTIAN HIEROGLYPH-13D9D;Lo;0;L;;;;;N;;;;;
+ 13D9E;EGYPTIAN HIEROGLYPH-13D9E;Lo;0;L;;;;;N;;;;;
+ 13D9F;EGYPTIAN HIEROGLYPH-13D9F;Lo;0;L;;;;;N;;;;;
+ 13DA0;EGYPTIAN HIEROGLYPH-13DA0;Lo;0;L;;;;;N;;;;;
+ 13DA1;EGYPTIAN HIEROGLYPH-13DA1;Lo;0;L;;;;;N;;;;;
+ 13DA2;EGYPTIAN HIEROGLYPH-13DA2;Lo;0;L;;;;;N;;;;;
+ 13DA3;EGYPTIAN HIEROGLYPH-13DA3;Lo;0;L;;;;;N;;;;;
+ 13DA4;EGYPTIAN HIEROGLYPH-13DA4;Lo;0;L;;;;;N;;;;;
+ 13DA5;EGYPTIAN HIEROGLYPH-13DA5;Lo;0;L;;;;;N;;;;;
+ 13DA6;EGYPTIAN HIEROGLYPH-13DA6;Lo;0;L;;;;;N;;;;;
+ 13DA7;EGYPTIAN HIEROGLYPH-13DA7;Lo;0;L;;;;;N;;;;;
+ 13DA8;EGYPTIAN HIEROGLYPH-13DA8;Lo;0;L;;;;;N;;;;;
+ 13DA9;EGYPTIAN HIEROGLYPH-13DA9;Lo;0;L;;;;;N;;;;;
+ 13DAA;EGYPTIAN HIEROGLYPH-13DAA;Lo;0;L;;;;;N;;;;;
+ 13DAB;EGYPTIAN HIEROGLYPH-13DAB;Lo;0;L;;;;;N;;;;;
+ 13DAC;EGYPTIAN HIEROGLYPH-13DAC;Lo;0;L;;;;;N;;;;;
+ 13DAD;EGYPTIAN HIEROGLYPH-13DAD;Lo;0;L;;;;;N;;;;;
+ 13DAE;EGYPTIAN HIEROGLYPH-13DAE;Lo;0;L;;;;;N;;;;;
+ 13DAF;EGYPTIAN HIEROGLYPH-13DAF;Lo;0;L;;;;;N;;;;;
+ 13DB0;EGYPTIAN HIEROGLYPH-13DB0;Lo;0;L;;;;;N;;;;;
+ 13DB1;EGYPTIAN HIEROGLYPH-13DB1;Lo;0;L;;;;;N;;;;;
+ 13DB2;EGYPTIAN HIEROGLYPH-13DB2;Lo;0;L;;;;;N;;;;;
+ 13DB3;EGYPTIAN HIEROGLYPH-13DB3;Lo;0;L;;;;;N;;;;;
+ 13DB4;EGYPTIAN HIEROGLYPH-13DB4;Lo;0;L;;;;;N;;;;;
+ 13DB5;EGYPTIAN HIEROGLYPH-13DB5;Lo;0;L;;;;;N;;;;;
+ 13DB6;EGYPTIAN HIEROGLYPH-13DB6;Lo;0;L;;;;;N;;;;;
+ 13DB7;EGYPTIAN HIEROGLYPH-13DB7;Lo;0;L;;;;;N;;;;;
+ 13DB8;EGYPTIAN HIEROGLYPH-13DB8;Lo;0;L;;;;;N;;;;;
+ 13DB9;EGYPTIAN HIEROGLYPH-13DB9;Lo;0;L;;;;;N;;;;;
+ 13DBA;EGYPTIAN HIEROGLYPH-13DBA;Lo;0;L;;;;;N;;;;;
+ 13DBB;EGYPTIAN HIEROGLYPH-13DBB;Lo;0;L;;;;;N;;;;;
+ 13DBC;EGYPTIAN HIEROGLYPH-13DBC;Lo;0;L;;;;;N;;;;;
+ 13DBD;EGYPTIAN HIEROGLYPH-13DBD;Lo;0;L;;;;;N;;;;;
+ 13DBE;EGYPTIAN HIEROGLYPH-13DBE;Lo;0;L;;;;;N;;;;;
+ 13DBF;EGYPTIAN HIEROGLYPH-13DBF;Lo;0;L;;;;;N;;;;;
+ 13DC0;EGYPTIAN HIEROGLYPH-13DC0;Lo;0;L;;;;;N;;;;;
+ 13DC1;EGYPTIAN HIEROGLYPH-13DC1;Lo;0;L;;;;;N;;;;;
+ 13DC2;EGYPTIAN HIEROGLYPH-13DC2;Lo;0;L;;;;;N;;;;;
+ 13DC3;EGYPTIAN HIEROGLYPH-13DC3;Lo;0;L;;;;;N;;;;;
+ 13DC4;EGYPTIAN HIEROGLYPH-13DC4;Lo;0;L;;;;;N;;;;;
+ 13DC5;EGYPTIAN HIEROGLYPH-13DC5;Lo;0;L;;;;;N;;;;;
+ 13DC6;EGYPTIAN HIEROGLYPH-13DC6;Lo;0;L;;;;;N;;;;;
+ 13DC7;EGYPTIAN HIEROGLYPH-13DC7;Lo;0;L;;;;;N;;;;;
+ 13DC8;EGYPTIAN HIEROGLYPH-13DC8;Lo;0;L;;;;;N;;;;;
+ 13DC9;EGYPTIAN HIEROGLYPH-13DC9;Lo;0;L;;;;;N;;;;;
+ 13DCA;EGYPTIAN HIEROGLYPH-13DCA;Lo;0;L;;;;;N;;;;;
+ 13DCB;EGYPTIAN HIEROGLYPH-13DCB;Lo;0;L;;;;;N;;;;;
+ 13DCC;EGYPTIAN HIEROGLYPH-13DCC;Lo;0;L;;;;;N;;;;;
+ 13DCD;EGYPTIAN HIEROGLYPH-13DCD;Lo;0;L;;;;;N;;;;;
+ 13DCE;EGYPTIAN HIEROGLYPH-13DCE;Lo;0;L;;;;;N;;;;;
+ 13DCF;EGYPTIAN HIEROGLYPH-13DCF;Lo;0;L;;;;;N;;;;;
+ 13DD0;EGYPTIAN HIEROGLYPH-13DD0;Lo;0;L;;;;;N;;;;;
+ 13DD1;EGYPTIAN HIEROGLYPH-13DD1;Lo;0;L;;;;;N;;;;;
+ 13DD2;EGYPTIAN HIEROGLYPH-13DD2;Lo;0;L;;;;;N;;;;;
+ 13DD3;EGYPTIAN HIEROGLYPH-13DD3;Lo;0;L;;;;;N;;;;;
+ 13DD4;EGYPTIAN HIEROGLYPH-13DD4;Lo;0;L;;;;;N;;;;;
+ 13DD5;EGYPTIAN HIEROGLYPH-13DD5;Lo;0;L;;;;;N;;;;;
+ 13DD6;EGYPTIAN HIEROGLYPH-13DD6;Lo;0;L;;;;;N;;;;;
+ 13DD7;EGYPTIAN HIEROGLYPH-13DD7;Lo;0;L;;;;;N;;;;;
+ 13DD8;EGYPTIAN HIEROGLYPH-13DD8;Lo;0;L;;;;;N;;;;;
+ 13DD9;EGYPTIAN HIEROGLYPH-13DD9;Lo;0;L;;;;;N;;;;;
+ 13DDA;EGYPTIAN HIEROGLYPH-13DDA;Lo;0;L;;;;;N;;;;;
+ 13DDB;EGYPTIAN HIEROGLYPH-13DDB;Lo;0;L;;;;;N;;;;;
+ 13DDC;EGYPTIAN HIEROGLYPH-13DDC;Lo;0;L;;;;;N;;;;;
+ 13DDD;EGYPTIAN HIEROGLYPH-13DDD;Lo;0;L;;;;;N;;;;;
+ 13DDE;EGYPTIAN HIEROGLYPH-13DDE;Lo;0;L;;;;;N;;;;;
+ 13DDF;EGYPTIAN HIEROGLYPH-13DDF;Lo;0;L;;;;;N;;;;;
+ 13DE0;EGYPTIAN HIEROGLYPH-13DE0;Lo;0;L;;;;;N;;;;;
+ 13DE1;EGYPTIAN HIEROGLYPH-13DE1;Lo;0;L;;;;;N;;;;;
+ 13DE2;EGYPTIAN HIEROGLYPH-13DE2;Lo;0;L;;;;;N;;;;;
+ 13DE3;EGYPTIAN HIEROGLYPH-13DE3;Lo;0;L;;;;;N;;;;;
+ 13DE4;EGYPTIAN HIEROGLYPH-13DE4;Lo;0;L;;;;;N;;;;;
+ 13DE5;EGYPTIAN HIEROGLYPH-13DE5;Lo;0;L;;;;;N;;;;;
+ 13DE6;EGYPTIAN HIEROGLYPH-13DE6;Lo;0;L;;;;;N;;;;;
+ 13DE7;EGYPTIAN HIEROGLYPH-13DE7;Lo;0;L;;;;;N;;;;;
+ 13DE8;EGYPTIAN HIEROGLYPH-13DE8;Lo;0;L;;;;;N;;;;;
+ 13DE9;EGYPTIAN HIEROGLYPH-13DE9;Lo;0;L;;;;;N;;;;;
+ 13DEA;EGYPTIAN HIEROGLYPH-13DEA;Lo;0;L;;;;;N;;;;;
+ 13DEB;EGYPTIAN HIEROGLYPH-13DEB;Lo;0;L;;;;;N;;;;;
+ 13DEC;EGYPTIAN HIEROGLYPH-13DEC;Lo;0;L;;;;;N;;;;;
+ 13DED;EGYPTIAN HIEROGLYPH-13DED;Lo;0;L;;;;;N;;;;;
+ 13DEE;EGYPTIAN HIEROGLYPH-13DEE;Lo;0;L;;;;;N;;;;;
+ 13DEF;EGYPTIAN HIEROGLYPH-13DEF;Lo;0;L;;;;;N;;;;;
+ 13DF0;EGYPTIAN HIEROGLYPH-13DF0;Lo;0;L;;;;;N;;;;;
+ 13DF1;EGYPTIAN HIEROGLYPH-13DF1;Lo;0;L;;;;;N;;;;;
+ 13DF2;EGYPTIAN HIEROGLYPH-13DF2;Lo;0;L;;;;;N;;;;;
+ 13DF3;EGYPTIAN HIEROGLYPH-13DF3;Lo;0;L;;;;;N;;;;;
+ 13DF4;EGYPTIAN HIEROGLYPH-13DF4;Lo;0;L;;;;;N;;;;;
+ 13DF5;EGYPTIAN HIEROGLYPH-13DF5;Lo;0;L;;;;;N;;;;;
+ 13DF6;EGYPTIAN HIEROGLYPH-13DF6;Lo;0;L;;;;;N;;;;;
+ 13DF7;EGYPTIAN HIEROGLYPH-13DF7;Lo;0;L;;;;;N;;;;;
+ 13DF8;EGYPTIAN HIEROGLYPH-13DF8;Lo;0;L;;;;;N;;;;;
+ 13DF9;EGYPTIAN HIEROGLYPH-13DF9;Lo;0;L;;;;;N;;;;;
+ 13DFA;EGYPTIAN HIEROGLYPH-13DFA;Lo;0;L;;;;;N;;;;;
+ 13DFB;EGYPTIAN HIEROGLYPH-13DFB;Lo;0;L;;;;;N;;;;;
+ 13DFC;EGYPTIAN HIEROGLYPH-13DFC;Lo;0;L;;;;;N;;;;;
+ 13DFD;EGYPTIAN HIEROGLYPH-13DFD;Lo;0;L;;;;;N;;;;;
+ 13DFE;EGYPTIAN HIEROGLYPH-13DFE;Lo;0;L;;;;;N;;;;;
+ 13DFF;EGYPTIAN HIEROGLYPH-13DFF;Lo;0;L;;;;;N;;;;;
+ 13E00;EGYPTIAN HIEROGLYPH-13E00;Lo;0;L;;;;;N;;;;;
+ 13E01;EGYPTIAN HIEROGLYPH-13E01;Lo;0;L;;;;;N;;;;;
+ 13E02;EGYPTIAN HIEROGLYPH-13E02;Lo;0;L;;;;;N;;;;;
+ 13E03;EGYPTIAN HIEROGLYPH-13E03;Lo;0;L;;;;;N;;;;;
+ 13E04;EGYPTIAN HIEROGLYPH-13E04;Lo;0;L;;;;;N;;;;;
+ 13E05;EGYPTIAN HIEROGLYPH-13E05;Lo;0;L;;;;;N;;;;;
+ 13E06;EGYPTIAN HIEROGLYPH-13E06;Lo;0;L;;;;;N;;;;;
+ 13E07;EGYPTIAN HIEROGLYPH-13E07;Lo;0;L;;;;;N;;;;;
+ 13E08;EGYPTIAN HIEROGLYPH-13E08;Lo;0;L;;;;;N;;;;;
+ 13E09;EGYPTIAN HIEROGLYPH-13E09;Lo;0;L;;;;;N;;;;;
+ 13E0A;EGYPTIAN HIEROGLYPH-13E0A;Lo;0;L;;;;;N;;;;;
+ 13E0B;EGYPTIAN HIEROGLYPH-13E0B;Lo;0;L;;;;;N;;;;;
+ 13E0C;EGYPTIAN HIEROGLYPH-13E0C;Lo;0;L;;;;;N;;;;;
+ 13E0D;EGYPTIAN HIEROGLYPH-13E0D;Lo;0;L;;;;;N;;;;;
+ 13E0E;EGYPTIAN HIEROGLYPH-13E0E;Lo;0;L;;;;;N;;;;;
+ 13E0F;EGYPTIAN HIEROGLYPH-13E0F;Lo;0;L;;;;;N;;;;;
+ 13E10;EGYPTIAN HIEROGLYPH-13E10;Lo;0;L;;;;;N;;;;;
+ 13E11;EGYPTIAN HIEROGLYPH-13E11;Lo;0;L;;;;;N;;;;;
+ 13E12;EGYPTIAN HIEROGLYPH-13E12;Lo;0;L;;;;;N;;;;;
+ 13E13;EGYPTIAN HIEROGLYPH-13E13;Lo;0;L;;;;;N;;;;;
+ 13E14;EGYPTIAN HIEROGLYPH-13E14;Lo;0;L;;;;;N;;;;;
+ 13E15;EGYPTIAN HIEROGLYPH-13E15;Lo;0;L;;;;;N;;;;;
+ 13E16;EGYPTIAN HIEROGLYPH-13E16;Lo;0;L;;;;;N;;;;;
+ 13E17;EGYPTIAN HIEROGLYPH-13E17;Lo;0;L;;;;;N;;;;;
+ 13E18;EGYPTIAN HIEROGLYPH-13E18;Lo;0;L;;;;;N;;;;;
+ 13E19;EGYPTIAN HIEROGLYPH-13E19;Lo;0;L;;;;;N;;;;;
+ 13E1A;EGYPTIAN HIEROGLYPH-13E1A;Lo;0;L;;;;;N;;;;;
+ 13E1B;EGYPTIAN HIEROGLYPH-13E1B;Lo;0;L;;;;;N;;;;;
+ 13E1C;EGYPTIAN HIEROGLYPH-13E1C;Lo;0;L;;;;;N;;;;;
+ 13E1D;EGYPTIAN HIEROGLYPH-13E1D;Lo;0;L;;;;;N;;;;;
+ 13E1E;EGYPTIAN HIEROGLYPH-13E1E;Lo;0;L;;;;;N;;;;;
+ 13E1F;EGYPTIAN HIEROGLYPH-13E1F;Lo;0;L;;;;;N;;;;;
+ 13E20;EGYPTIAN HIEROGLYPH-13E20;Lo;0;L;;;;;N;;;;;
+ 13E21;EGYPTIAN HIEROGLYPH-13E21;Lo;0;L;;;;;N;;;;;
+ 13E22;EGYPTIAN HIEROGLYPH-13E22;Lo;0;L;;;;;N;;;;;
+ 13E23;EGYPTIAN HIEROGLYPH-13E23;Lo;0;L;;;;;N;;;;;
+ 13E24;EGYPTIAN HIEROGLYPH-13E24;Lo;0;L;;;;;N;;;;;
+ 13E25;EGYPTIAN HIEROGLYPH-13E25;Lo;0;L;;;;;N;;;;;
+ 13E26;EGYPTIAN HIEROGLYPH-13E26;Lo;0;L;;;;;N;;;;;
+ 13E27;EGYPTIAN HIEROGLYPH-13E27;Lo;0;L;;;;;N;;;;;
+ 13E28;EGYPTIAN HIEROGLYPH-13E28;Lo;0;L;;;;;N;;;;;
+ 13E29;EGYPTIAN HIEROGLYPH-13E29;Lo;0;L;;;;;N;;;;;
+ 13E2A;EGYPTIAN HIEROGLYPH-13E2A;Lo;0;L;;;;;N;;;;;
+ 13E2B;EGYPTIAN HIEROGLYPH-13E2B;Lo;0;L;;;;;N;;;;;
+ 13E2C;EGYPTIAN HIEROGLYPH-13E2C;Lo;0;L;;;;;N;;;;;
+ 13E2D;EGYPTIAN HIEROGLYPH-13E2D;Lo;0;L;;;;;N;;;;;
+ 13E2E;EGYPTIAN HIEROGLYPH-13E2E;Lo;0;L;;;;;N;;;;;
+ 13E2F;EGYPTIAN HIEROGLYPH-13E2F;Lo;0;L;;;;;N;;;;;
+ 13E30;EGYPTIAN HIEROGLYPH-13E30;Lo;0;L;;;;;N;;;;;
+ 13E31;EGYPTIAN HIEROGLYPH-13E31;Lo;0;L;;;;;N;;;;;
+ 13E32;EGYPTIAN HIEROGLYPH-13E32;Lo;0;L;;;;;N;;;;;
+ 13E33;EGYPTIAN HIEROGLYPH-13E33;Lo;0;L;;;;;N;;;;;
+ 13E34;EGYPTIAN HIEROGLYPH-13E34;Lo;0;L;;;;;N;;;;;
+ 13E35;EGYPTIAN HIEROGLYPH-13E35;Lo;0;L;;;;;N;;;;;
+ 13E36;EGYPTIAN HIEROGLYPH-13E36;Lo;0;L;;;;;N;;;;;
+ 13E37;EGYPTIAN HIEROGLYPH-13E37;Lo;0;L;;;;;N;;;;;
+ 13E38;EGYPTIAN HIEROGLYPH-13E38;Lo;0;L;;;;;N;;;;;
+ 13E39;EGYPTIAN HIEROGLYPH-13E39;Lo;0;L;;;;;N;;;;;
+ 13E3A;EGYPTIAN HIEROGLYPH-13E3A;Lo;0;L;;;;;N;;;;;
+ 13E3B;EGYPTIAN HIEROGLYPH-13E3B;Lo;0;L;;;;;N;;;;;
+ 13E3C;EGYPTIAN HIEROGLYPH-13E3C;Lo;0;L;;;;;N;;;;;
+ 13E3D;EGYPTIAN HIEROGLYPH-13E3D;Lo;0;L;;;;;N;;;;;
+ 13E3E;EGYPTIAN HIEROGLYPH-13E3E;Lo;0;L;;;;;N;;;;;
+ 13E3F;EGYPTIAN HIEROGLYPH-13E3F;Lo;0;L;;;;;N;;;;;
+ 13E40;EGYPTIAN HIEROGLYPH-13E40;Lo;0;L;;;;;N;;;;;
+ 13E41;EGYPTIAN HIEROGLYPH-13E41;Lo;0;L;;;;;N;;;;;
+ 13E42;EGYPTIAN HIEROGLYPH-13E42;Lo;0;L;;;;;N;;;;;
+ 13E43;EGYPTIAN HIEROGLYPH-13E43;Lo;0;L;;;;;N;;;;;
+ 13E44;EGYPTIAN HIEROGLYPH-13E44;Lo;0;L;;;;;N;;;;;
+ 13E45;EGYPTIAN HIEROGLYPH-13E45;Lo;0;L;;;;;N;;;;;
+ 13E46;EGYPTIAN HIEROGLYPH-13E46;Lo;0;L;;;;;N;;;;;
+ 13E47;EGYPTIAN HIEROGLYPH-13E47;Lo;0;L;;;;;N;;;;;
+ 13E48;EGYPTIAN HIEROGLYPH-13E48;Lo;0;L;;;;;N;;;;;
+ 13E49;EGYPTIAN HIEROGLYPH-13E49;Lo;0;L;;;;;N;;;;;
+ 13E4A;EGYPTIAN HIEROGLYPH-13E4A;Lo;0;L;;;;;N;;;;;
+ 13E4B;EGYPTIAN HIEROGLYPH-13E4B;Lo;0;L;;;;;N;;;;;
+ 13E4C;EGYPTIAN HIEROGLYPH-13E4C;Lo;0;L;;;;;N;;;;;
+ 13E4D;EGYPTIAN HIEROGLYPH-13E4D;Lo;0;L;;;;;N;;;;;
+ 13E4E;EGYPTIAN HIEROGLYPH-13E4E;Lo;0;L;;;;;N;;;;;
+ 13E4F;EGYPTIAN HIEROGLYPH-13E4F;Lo;0;L;;;;;N;;;;;
+ 13E50;EGYPTIAN HIEROGLYPH-13E50;Lo;0;L;;;;;N;;;;;
+ 13E51;EGYPTIAN HIEROGLYPH-13E51;Lo;0;L;;;;;N;;;;;
+ 13E52;EGYPTIAN HIEROGLYPH-13E52;Lo;0;L;;;;;N;;;;;
+ 13E53;EGYPTIAN HIEROGLYPH-13E53;Lo;0;L;;;;;N;;;;;
+ 13E54;EGYPTIAN HIEROGLYPH-13E54;Lo;0;L;;;;;N;;;;;
+ 13E55;EGYPTIAN HIEROGLYPH-13E55;Lo;0;L;;;;;N;;;;;
+ 13E56;EGYPTIAN HIEROGLYPH-13E56;Lo;0;L;;;;;N;;;;;
+ 13E57;EGYPTIAN HIEROGLYPH-13E57;Lo;0;L;;;;;N;;;;;
+ 13E58;EGYPTIAN HIEROGLYPH-13E58;Lo;0;L;;;;;N;;;;;
+ 13E59;EGYPTIAN HIEROGLYPH-13E59;Lo;0;L;;;;;N;;;;;
+ 13E5A;EGYPTIAN HIEROGLYPH-13E5A;Lo;0;L;;;;;N;;;;;
+ 13E5B;EGYPTIAN HIEROGLYPH-13E5B;Lo;0;L;;;;;N;;;;;
+ 13E5C;EGYPTIAN HIEROGLYPH-13E5C;Lo;0;L;;;;;N;;;;;
+ 13E5D;EGYPTIAN HIEROGLYPH-13E5D;Lo;0;L;;;;;N;;;;;
+ 13E5E;EGYPTIAN HIEROGLYPH-13E5E;Lo;0;L;;;;;N;;;;;
+ 13E5F;EGYPTIAN HIEROGLYPH-13E5F;Lo;0;L;;;;;N;;;;;
+ 13E60;EGYPTIAN HIEROGLYPH-13E60;Lo;0;L;;;;;N;;;;;
+ 13E61;EGYPTIAN HIEROGLYPH-13E61;Lo;0;L;;;;;N;;;;;
+ 13E62;EGYPTIAN HIEROGLYPH-13E62;Lo;0;L;;;;;N;;;;;
+ 13E63;EGYPTIAN HIEROGLYPH-13E63;Lo;0;L;;;;;N;;;;;
+ 13E64;EGYPTIAN HIEROGLYPH-13E64;Lo;0;L;;;;;N;;;;;
+ 13E65;EGYPTIAN HIEROGLYPH-13E65;Lo;0;L;;;;;N;;;;;
+ 13E66;EGYPTIAN HIEROGLYPH-13E66;Lo;0;L;;;;;N;;;;;
+ 13E67;EGYPTIAN HIEROGLYPH-13E67;Lo;0;L;;;;;N;;;;;
+ 13E68;EGYPTIAN HIEROGLYPH-13E68;Lo;0;L;;;;;N;;;;;
+ 13E69;EGYPTIAN HIEROGLYPH-13E69;Lo;0;L;;;;;N;;;;;
+ 13E6A;EGYPTIAN HIEROGLYPH-13E6A;Lo;0;L;;;;;N;;;;;
+ 13E6B;EGYPTIAN HIEROGLYPH-13E6B;Lo;0;L;;;;;N;;;;;
+ 13E6C;EGYPTIAN HIEROGLYPH-13E6C;Lo;0;L;;;;;N;;;;;
+ 13E6D;EGYPTIAN HIEROGLYPH-13E6D;Lo;0;L;;;;;N;;;;;
+ 13E6E;EGYPTIAN HIEROGLYPH-13E6E;Lo;0;L;;;;;N;;;;;
+ 13E6F;EGYPTIAN HIEROGLYPH-13E6F;Lo;0;L;;;;;N;;;;;
+ 13E70;EGYPTIAN HIEROGLYPH-13E70;Lo;0;L;;;;;N;;;;;
+ 13E71;EGYPTIAN HIEROGLYPH-13E71;Lo;0;L;;;;;N;;;;;
+ 13E72;EGYPTIAN HIEROGLYPH-13E72;Lo;0;L;;;;;N;;;;;
+ 13E73;EGYPTIAN HIEROGLYPH-13E73;Lo;0;L;;;;;N;;;;;
+ 13E74;EGYPTIAN HIEROGLYPH-13E74;Lo;0;L;;;;;N;;;;;
+ 13E75;EGYPTIAN HIEROGLYPH-13E75;Lo;0;L;;;;;N;;;;;
+ 13E76;EGYPTIAN HIEROGLYPH-13E76;Lo;0;L;;;;;N;;;;;
+ 13E77;EGYPTIAN HIEROGLYPH-13E77;Lo;0;L;;;;;N;;;;;
+ 13E78;EGYPTIAN HIEROGLYPH-13E78;Lo;0;L;;;;;N;;;;;
+ 13E79;EGYPTIAN HIEROGLYPH-13E79;Lo;0;L;;;;;N;;;;;
+ 13E7A;EGYPTIAN HIEROGLYPH-13E7A;Lo;0;L;;;;;N;;;;;
+ 13E7B;EGYPTIAN HIEROGLYPH-13E7B;Lo;0;L;;;;;N;;;;;
+ 13E7C;EGYPTIAN HIEROGLYPH-13E7C;Lo;0;L;;;;;N;;;;;
+ 13E7D;EGYPTIAN HIEROGLYPH-13E7D;Lo;0;L;;;;;N;;;;;
+ 13E7E;EGYPTIAN HIEROGLYPH-13E7E;Lo;0;L;;;;;N;;;;;
+ 13E7F;EGYPTIAN HIEROGLYPH-13E7F;Lo;0;L;;;;;N;;;;;
+ 13E80;EGYPTIAN HIEROGLYPH-13E80;Lo;0;L;;;;;N;;;;;
+ 13E81;EGYPTIAN HIEROGLYPH-13E81;Lo;0;L;;;;;N;;;;;
+ 13E82;EGYPTIAN HIEROGLYPH-13E82;Lo;0;L;;;;;N;;;;;
+ 13E83;EGYPTIAN HIEROGLYPH-13E83;Lo;0;L;;;;;N;;;;;
+ 13E84;EGYPTIAN HIEROGLYPH-13E84;Lo;0;L;;;;;N;;;;;
+ 13E85;EGYPTIAN HIEROGLYPH-13E85;Lo;0;L;;;;;N;;;;;
+ 13E86;EGYPTIAN HIEROGLYPH-13E86;Lo;0;L;;;;;N;;;;;
+ 13E87;EGYPTIAN HIEROGLYPH-13E87;Lo;0;L;;;;;N;;;;;
+ 13E88;EGYPTIAN HIEROGLYPH-13E88;Lo;0;L;;;;;N;;;;;
+ 13E89;EGYPTIAN HIEROGLYPH-13E89;Lo;0;L;;;;;N;;;;;
+ 13E8A;EGYPTIAN HIEROGLYPH-13E8A;Lo;0;L;;;;;N;;;;;
+ 13E8B;EGYPTIAN HIEROGLYPH-13E8B;Lo;0;L;;;;;N;;;;;
+ 13E8C;EGYPTIAN HIEROGLYPH-13E8C;Lo;0;L;;;;;N;;;;;
+ 13E8D;EGYPTIAN HIEROGLYPH-13E8D;Lo;0;L;;;;;N;;;;;
+ 13E8E;EGYPTIAN HIEROGLYPH-13E8E;Lo;0;L;;;;;N;;;;;
+ 13E8F;EGYPTIAN HIEROGLYPH-13E8F;Lo;0;L;;;;;N;;;;;
+ 13E90;EGYPTIAN HIEROGLYPH-13E90;Lo;0;L;;;;;N;;;;;
+ 13E91;EGYPTIAN HIEROGLYPH-13E91;Lo;0;L;;;;;N;;;;;
+ 13E92;EGYPTIAN HIEROGLYPH-13E92;Lo;0;L;;;;;N;;;;;
+ 13E93;EGYPTIAN HIEROGLYPH-13E93;Lo;0;L;;;;;N;;;;;
+ 13E94;EGYPTIAN HIEROGLYPH-13E94;Lo;0;L;;;;;N;;;;;
+ 13E95;EGYPTIAN HIEROGLYPH-13E95;Lo;0;L;;;;;N;;;;;
+ 13E96;EGYPTIAN HIEROGLYPH-13E96;Lo;0;L;;;;;N;;;;;
+ 13E97;EGYPTIAN HIEROGLYPH-13E97;Lo;0;L;;;;;N;;;;;
+ 13E98;EGYPTIAN HIEROGLYPH-13E98;Lo;0;L;;;;;N;;;;;
+ 13E99;EGYPTIAN HIEROGLYPH-13E99;Lo;0;L;;;;;N;;;;;
+ 13E9A;EGYPTIAN HIEROGLYPH-13E9A;Lo;0;L;;;;;N;;;;;
+ 13E9B;EGYPTIAN HIEROGLYPH-13E9B;Lo;0;L;;;;;N;;;;;
+ 13E9C;EGYPTIAN HIEROGLYPH-13E9C;Lo;0;L;;;;;N;;;;;
+ 13E9D;EGYPTIAN HIEROGLYPH-13E9D;Lo;0;L;;;;;N;;;;;
+ 13E9E;EGYPTIAN HIEROGLYPH-13E9E;Lo;0;L;;;;;N;;;;;
+ 13E9F;EGYPTIAN HIEROGLYPH-13E9F;Lo;0;L;;;;;N;;;;;
+ 13EA0;EGYPTIAN HIEROGLYPH-13EA0;Lo;0;L;;;;;N;;;;;
+ 13EA1;EGYPTIAN HIEROGLYPH-13EA1;Lo;0;L;;;;;N;;;;;
+ 13EA2;EGYPTIAN HIEROGLYPH-13EA2;Lo;0;L;;;;;N;;;;;
+ 13EA3;EGYPTIAN HIEROGLYPH-13EA3;Lo;0;L;;;;;N;;;;;
+ 13EA4;EGYPTIAN HIEROGLYPH-13EA4;Lo;0;L;;;;;N;;;;;
+ 13EA5;EGYPTIAN HIEROGLYPH-13EA5;Lo;0;L;;;;;N;;;;;
+ 13EA6;EGYPTIAN HIEROGLYPH-13EA6;Lo;0;L;;;;;N;;;;;
+ 13EA7;EGYPTIAN HIEROGLYPH-13EA7;Lo;0;L;;;;;N;;;;;
+ 13EA8;EGYPTIAN HIEROGLYPH-13EA8;Lo;0;L;;;;;N;;;;;
+ 13EA9;EGYPTIAN HIEROGLYPH-13EA9;Lo;0;L;;;;;N;;;;;
+ 13EAA;EGYPTIAN HIEROGLYPH-13EAA;Lo;0;L;;;;;N;;;;;
+ 13EAB;EGYPTIAN HIEROGLYPH-13EAB;Lo;0;L;;;;;N;;;;;
+ 13EAC;EGYPTIAN HIEROGLYPH-13EAC;Lo;0;L;;;;;N;;;;;
+ 13EAD;EGYPTIAN HIEROGLYPH-13EAD;Lo;0;L;;;;;N;;;;;
+ 13EAE;EGYPTIAN HIEROGLYPH-13EAE;Lo;0;L;;;;;N;;;;;
+ 13EAF;EGYPTIAN HIEROGLYPH-13EAF;Lo;0;L;;;;;N;;;;;
+ 13EB0;EGYPTIAN HIEROGLYPH-13EB0;Lo;0;L;;;;;N;;;;;
+ 13EB1;EGYPTIAN HIEROGLYPH-13EB1;Lo;0;L;;;;;N;;;;;
+ 13EB2;EGYPTIAN HIEROGLYPH-13EB2;Lo;0;L;;;;;N;;;;;
+ 13EB3;EGYPTIAN HIEROGLYPH-13EB3;Lo;0;L;;;;;N;;;;;
+ 13EB4;EGYPTIAN HIEROGLYPH-13EB4;Lo;0;L;;;;;N;;;;;
+ 13EB5;EGYPTIAN HIEROGLYPH-13EB5;Lo;0;L;;;;;N;;;;;
+ 13EB6;EGYPTIAN HIEROGLYPH-13EB6;Lo;0;L;;;;;N;;;;;
+ 13EB7;EGYPTIAN HIEROGLYPH-13EB7;Lo;0;L;;;;;N;;;;;
+ 13EB8;EGYPTIAN HIEROGLYPH-13EB8;Lo;0;L;;;;;N;;;;;
+ 13EB9;EGYPTIAN HIEROGLYPH-13EB9;Lo;0;L;;;;;N;;;;;
+ 13EBA;EGYPTIAN HIEROGLYPH-13EBA;Lo;0;L;;;;;N;;;;;
+ 13EBB;EGYPTIAN HIEROGLYPH-13EBB;Lo;0;L;;;;;N;;;;;
+ 13EBC;EGYPTIAN HIEROGLYPH-13EBC;Lo;0;L;;;;;N;;;;;
+ 13EBD;EGYPTIAN HIEROGLYPH-13EBD;Lo;0;L;;;;;N;;;;;
+ 13EBE;EGYPTIAN HIEROGLYPH-13EBE;Lo;0;L;;;;;N;;;;;
+ 13EBF;EGYPTIAN HIEROGLYPH-13EBF;Lo;0;L;;;;;N;;;;;
+ 13EC0;EGYPTIAN HIEROGLYPH-13EC0;Lo;0;L;;;;;N;;;;;
+ 13EC1;EGYPTIAN HIEROGLYPH-13EC1;Lo;0;L;;;;;N;;;;;
+ 13EC2;EGYPTIAN HIEROGLYPH-13EC2;Lo;0;L;;;;;N;;;;;
+ 13EC3;EGYPTIAN HIEROGLYPH-13EC3;Lo;0;L;;;;;N;;;;;
+ 13EC4;EGYPTIAN HIEROGLYPH-13EC4;Lo;0;L;;;;;N;;;;;
+ 13EC5;EGYPTIAN HIEROGLYPH-13EC5;Lo;0;L;;;;;N;;;;;
+ 13EC6;EGYPTIAN HIEROGLYPH-13EC6;Lo;0;L;;;;;N;;;;;
+ 13EC7;EGYPTIAN HIEROGLYPH-13EC7;Lo;0;L;;;;;N;;;;;
+ 13EC8;EGYPTIAN HIEROGLYPH-13EC8;Lo;0;L;;;;;N;;;;;
+ 13EC9;EGYPTIAN HIEROGLYPH-13EC9;Lo;0;L;;;;;N;;;;;
+ 13ECA;EGYPTIAN HIEROGLYPH-13ECA;Lo;0;L;;;;;N;;;;;
+ 13ECB;EGYPTIAN HIEROGLYPH-13ECB;Lo;0;L;;;;;N;;;;;
+ 13ECC;EGYPTIAN HIEROGLYPH-13ECC;Lo;0;L;;;;;N;;;;;
+ 13ECD;EGYPTIAN HIEROGLYPH-13ECD;Lo;0;L;;;;;N;;;;;
+ 13ECE;EGYPTIAN HIEROGLYPH-13ECE;Lo;0;L;;;;;N;;;;;
+ 13ECF;EGYPTIAN HIEROGLYPH-13ECF;Lo;0;L;;;;;N;;;;;
+ 13ED0;EGYPTIAN HIEROGLYPH-13ED0;Lo;0;L;;;;;N;;;;;
+ 13ED1;EGYPTIAN HIEROGLYPH-13ED1;Lo;0;L;;;;;N;;;;;
+ 13ED2;EGYPTIAN HIEROGLYPH-13ED2;Lo;0;L;;;;;N;;;;;
+ 13ED3;EGYPTIAN HIEROGLYPH-13ED3;Lo;0;L;;;;;N;;;;;
+ 13ED4;EGYPTIAN HIEROGLYPH-13ED4;Lo;0;L;;;;;N;;;;;
+ 13ED5;EGYPTIAN HIEROGLYPH-13ED5;Lo;0;L;;;;;N;;;;;
+ 13ED6;EGYPTIAN HIEROGLYPH-13ED6;Lo;0;L;;;;;N;;;;;
+ 13ED7;EGYPTIAN HIEROGLYPH-13ED7;Lo;0;L;;;;;N;;;;;
+ 13ED8;EGYPTIAN HIEROGLYPH-13ED8;Lo;0;L;;;;;N;;;;;
+ 13ED9;EGYPTIAN HIEROGLYPH-13ED9;Lo;0;L;;;;;N;;;;;
+ 13EDA;EGYPTIAN HIEROGLYPH-13EDA;Lo;0;L;;;;;N;;;;;
+ 13EDB;EGYPTIAN HIEROGLYPH-13EDB;Lo;0;L;;;;;N;;;;;
+ 13EDC;EGYPTIAN HIEROGLYPH-13EDC;Lo;0;L;;;;;N;;;;;
+ 13EDD;EGYPTIAN HIEROGLYPH-13EDD;Lo;0;L;;;;;N;;;;;
+ 13EDE;EGYPTIAN HIEROGLYPH-13EDE;Lo;0;L;;;;;N;;;;;
+ 13EDF;EGYPTIAN HIEROGLYPH-13EDF;Lo;0;L;;;;;N;;;;;
+ 13EE0;EGYPTIAN HIEROGLYPH-13EE0;Lo;0;L;;;;;N;;;;;
+ 13EE1;EGYPTIAN HIEROGLYPH-13EE1;Lo;0;L;;;;;N;;;;;
+ 13EE2;EGYPTIAN HIEROGLYPH-13EE2;Lo;0;L;;;;;N;;;;;
+ 13EE3;EGYPTIAN HIEROGLYPH-13EE3;Lo;0;L;;;;;N;;;;;
+ 13EE4;EGYPTIAN HIEROGLYPH-13EE4;Lo;0;L;;;;;N;;;;;
+ 13EE5;EGYPTIAN HIEROGLYPH-13EE5;Lo;0;L;;;;;N;;;;;
+ 13EE6;EGYPTIAN HIEROGLYPH-13EE6;Lo;0;L;;;;;N;;;;;
+ 13EE7;EGYPTIAN HIEROGLYPH-13EE7;Lo;0;L;;;;;N;;;;;
+ 13EE8;EGYPTIAN HIEROGLYPH-13EE8;Lo;0;L;;;;;N;;;;;
+ 13EE9;EGYPTIAN HIEROGLYPH-13EE9;Lo;0;L;;;;;N;;;;;
+ 13EEA;EGYPTIAN HIEROGLYPH-13EEA;Lo;0;L;;;;;N;;;;;
+ 13EEB;EGYPTIAN HIEROGLYPH-13EEB;Lo;0;L;;;;;N;;;;;
+ 13EEC;EGYPTIAN HIEROGLYPH-13EEC;Lo;0;L;;;;;N;;;;;
+ 13EED;EGYPTIAN HIEROGLYPH-13EED;Lo;0;L;;;;;N;;;;;
+ 13EEE;EGYPTIAN HIEROGLYPH-13EEE;Lo;0;L;;;;;N;;;;;
+ 13EEF;EGYPTIAN HIEROGLYPH-13EEF;Lo;0;L;;;;;N;;;;;
+ 13EF0;EGYPTIAN HIEROGLYPH-13EF0;Lo;0;L;;;;;N;;;;;
+ 13EF1;EGYPTIAN HIEROGLYPH-13EF1;Lo;0;L;;;;;N;;;;;
+ 13EF2;EGYPTIAN HIEROGLYPH-13EF2;Lo;0;L;;;;;N;;;;;
+ 13EF3;EGYPTIAN HIEROGLYPH-13EF3;Lo;0;L;;;;;N;;;;;
+ 13EF4;EGYPTIAN HIEROGLYPH-13EF4;Lo;0;L;;;;;N;;;;;
+ 13EF5;EGYPTIAN HIEROGLYPH-13EF5;Lo;0;L;;;;;N;;;;;
+ 13EF6;EGYPTIAN HIEROGLYPH-13EF6;Lo;0;L;;;;;N;;;;;
+ 13EF7;EGYPTIAN HIEROGLYPH-13EF7;Lo;0;L;;;;;N;;;;;
+ 13EF8;EGYPTIAN HIEROGLYPH-13EF8;Lo;0;L;;;;;N;;;;;
+ 13EF9;EGYPTIAN HIEROGLYPH-13EF9;Lo;0;L;;;;;N;;;;;
+ 13EFA;EGYPTIAN HIEROGLYPH-13EFA;Lo;0;L;;;;;N;;;;;
+ 13EFB;EGYPTIAN HIEROGLYPH-13EFB;Lo;0;L;;;;;N;;;;;
+ 13EFC;EGYPTIAN HIEROGLYPH-13EFC;Lo;0;L;;;;;N;;;;;
+ 13EFD;EGYPTIAN HIEROGLYPH-13EFD;Lo;0;L;;;;;N;;;;;
+ 13EFE;EGYPTIAN HIEROGLYPH-13EFE;Lo;0;L;;;;;N;;;;;
+ 13EFF;EGYPTIAN HIEROGLYPH-13EFF;Lo;0;L;;;;;N;;;;;
+ 13F00;EGYPTIAN HIEROGLYPH-13F00;Lo;0;L;;;;;N;;;;;
+ 13F01;EGYPTIAN HIEROGLYPH-13F01;Lo;0;L;;;;;N;;;;;
+ 13F02;EGYPTIAN HIEROGLYPH-13F02;Lo;0;L;;;;;N;;;;;
+ 13F03;EGYPTIAN HIEROGLYPH-13F03;Lo;0;L;;;;;N;;;;;
+ 13F04;EGYPTIAN HIEROGLYPH-13F04;Lo;0;L;;;;;N;;;;;
+ 13F05;EGYPTIAN HIEROGLYPH-13F05;Lo;0;L;;;;;N;;;;;
+ 13F06;EGYPTIAN HIEROGLYPH-13F06;Lo;0;L;;;;;N;;;;;
+ 13F07;EGYPTIAN HIEROGLYPH-13F07;Lo;0;L;;;;;N;;;;;
+ 13F08;EGYPTIAN HIEROGLYPH-13F08;Lo;0;L;;;;;N;;;;;
+ 13F09;EGYPTIAN HIEROGLYPH-13F09;Lo;0;L;;;;;N;;;;;
+ 13F0A;EGYPTIAN HIEROGLYPH-13F0A;Lo;0;L;;;;;N;;;;;
+ 13F0B;EGYPTIAN HIEROGLYPH-13F0B;Lo;0;L;;;;;N;;;;;
+ 13F0C;EGYPTIAN HIEROGLYPH-13F0C;Lo;0;L;;;;;N;;;;;
+ 13F0D;EGYPTIAN HIEROGLYPH-13F0D;Lo;0;L;;;;;N;;;;;
+ 13F0E;EGYPTIAN HIEROGLYPH-13F0E;Lo;0;L;;;;;N;;;;;
+ 13F0F;EGYPTIAN HIEROGLYPH-13F0F;Lo;0;L;;;;;N;;;;;
+ 13F10;EGYPTIAN HIEROGLYPH-13F10;Lo;0;L;;;;;N;;;;;
+ 13F11;EGYPTIAN HIEROGLYPH-13F11;Lo;0;L;;;;;N;;;;;
+ 13F12;EGYPTIAN HIEROGLYPH-13F12;Lo;0;L;;;;;N;;;;;
+ 13F13;EGYPTIAN HIEROGLYPH-13F13;Lo;0;L;;;;;N;;;;;
+ 13F14;EGYPTIAN HIEROGLYPH-13F14;Lo;0;L;;;;;N;;;;;
+ 13F15;EGYPTIAN HIEROGLYPH-13F15;Lo;0;L;;;;;N;;;;;
+ 13F16;EGYPTIAN HIEROGLYPH-13F16;Lo;0;L;;;;;N;;;;;
+ 13F17;EGYPTIAN HIEROGLYPH-13F17;Lo;0;L;;;;;N;;;;;
+ 13F18;EGYPTIAN HIEROGLYPH-13F18;Lo;0;L;;;;;N;;;;;
+ 13F19;EGYPTIAN HIEROGLYPH-13F19;Lo;0;L;;;;;N;;;;;
+ 13F1A;EGYPTIAN HIEROGLYPH-13F1A;Lo;0;L;;;;;N;;;;;
+ 13F1B;EGYPTIAN HIEROGLYPH-13F1B;Lo;0;L;;;;;N;;;;;
+ 13F1C;EGYPTIAN HIEROGLYPH-13F1C;Lo;0;L;;;;;N;;;;;
+ 13F1D;EGYPTIAN HIEROGLYPH-13F1D;Lo;0;L;;;;;N;;;;;
+ 13F1E;EGYPTIAN HIEROGLYPH-13F1E;Lo;0;L;;;;;N;;;;;
+ 13F1F;EGYPTIAN HIEROGLYPH-13F1F;Lo;0;L;;;;;N;;;;;
+ 13F20;EGYPTIAN HIEROGLYPH-13F20;Lo;0;L;;;;;N;;;;;
+ 13F21;EGYPTIAN HIEROGLYPH-13F21;Lo;0;L;;;;;N;;;;;
+ 13F22;EGYPTIAN HIEROGLYPH-13F22;Lo;0;L;;;;;N;;;;;
+ 13F23;EGYPTIAN HIEROGLYPH-13F23;Lo;0;L;;;;;N;;;;;
+ 13F24;EGYPTIAN HIEROGLYPH-13F24;Lo;0;L;;;;;N;;;;;
+ 13F25;EGYPTIAN HIEROGLYPH-13F25;Lo;0;L;;;;;N;;;;;
+ 13F26;EGYPTIAN HIEROGLYPH-13F26;Lo;0;L;;;;;N;;;;;
+ 13F27;EGYPTIAN HIEROGLYPH-13F27;Lo;0;L;;;;;N;;;;;
+ 13F28;EGYPTIAN HIEROGLYPH-13F28;Lo;0;L;;;;;N;;;;;
+ 13F29;EGYPTIAN HIEROGLYPH-13F29;Lo;0;L;;;;;N;;;;;
+ 13F2A;EGYPTIAN HIEROGLYPH-13F2A;Lo;0;L;;;;;N;;;;;
+ 13F2B;EGYPTIAN HIEROGLYPH-13F2B;Lo;0;L;;;;;N;;;;;
+ 13F2C;EGYPTIAN HIEROGLYPH-13F2C;Lo;0;L;;;;;N;;;;;
+ 13F2D;EGYPTIAN HIEROGLYPH-13F2D;Lo;0;L;;;;;N;;;;;
+ 13F2E;EGYPTIAN HIEROGLYPH-13F2E;Lo;0;L;;;;;N;;;;;
+ 13F2F;EGYPTIAN HIEROGLYPH-13F2F;Lo;0;L;;;;;N;;;;;
+ 13F30;EGYPTIAN HIEROGLYPH-13F30;Lo;0;L;;;;;N;;;;;
+ 13F31;EGYPTIAN HIEROGLYPH-13F31;Lo;0;L;;;;;N;;;;;
+ 13F32;EGYPTIAN HIEROGLYPH-13F32;Lo;0;L;;;;;N;;;;;
+ 13F33;EGYPTIAN HIEROGLYPH-13F33;Lo;0;L;;;;;N;;;;;
+ 13F34;EGYPTIAN HIEROGLYPH-13F34;Lo;0;L;;;;;N;;;;;
+ 13F35;EGYPTIAN HIEROGLYPH-13F35;Lo;0;L;;;;;N;;;;;
+ 13F36;EGYPTIAN HIEROGLYPH-13F36;Lo;0;L;;;;;N;;;;;
+ 13F37;EGYPTIAN HIEROGLYPH-13F37;Lo;0;L;;;;;N;;;;;
+ 13F38;EGYPTIAN HIEROGLYPH-13F38;Lo;0;L;;;;;N;;;;;
+ 13F39;EGYPTIAN HIEROGLYPH-13F39;Lo;0;L;;;;;N;;;;;
+ 13F3A;EGYPTIAN HIEROGLYPH-13F3A;Lo;0;L;;;;;N;;;;;
+ 13F3B;EGYPTIAN HIEROGLYPH-13F3B;Lo;0;L;;;;;N;;;;;
+ 13F3C;EGYPTIAN HIEROGLYPH-13F3C;Lo;0;L;;;;;N;;;;;
+ 13F3D;EGYPTIAN HIEROGLYPH-13F3D;Lo;0;L;;;;;N;;;;;
+ 13F3E;EGYPTIAN HIEROGLYPH-13F3E;Lo;0;L;;;;;N;;;;;
+ 13F3F;EGYPTIAN HIEROGLYPH-13F3F;Lo;0;L;;;;;N;;;;;
+ 13F40;EGYPTIAN HIEROGLYPH-13F40;Lo;0;L;;;;;N;;;;;
+ 13F41;EGYPTIAN HIEROGLYPH-13F41;Lo;0;L;;;;;N;;;;;
+ 13F42;EGYPTIAN HIEROGLYPH-13F42;Lo;0;L;;;;;N;;;;;
+ 13F43;EGYPTIAN HIEROGLYPH-13F43;Lo;0;L;;;;;N;;;;;
+ 13F44;EGYPTIAN HIEROGLYPH-13F44;Lo;0;L;;;;;N;;;;;
+ 13F45;EGYPTIAN HIEROGLYPH-13F45;Lo;0;L;;;;;N;;;;;
+ 13F46;EGYPTIAN HIEROGLYPH-13F46;Lo;0;L;;;;;N;;;;;
+ 13F47;EGYPTIAN HIEROGLYPH-13F47;Lo;0;L;;;;;N;;;;;
+ 13F48;EGYPTIAN HIEROGLYPH-13F48;Lo;0;L;;;;;N;;;;;
+ 13F49;EGYPTIAN HIEROGLYPH-13F49;Lo;0;L;;;;;N;;;;;
+ 13F4A;EGYPTIAN HIEROGLYPH-13F4A;Lo;0;L;;;;;N;;;;;
+ 13F4B;EGYPTIAN HIEROGLYPH-13F4B;Lo;0;L;;;;;N;;;;;
+ 13F4C;EGYPTIAN HIEROGLYPH-13F4C;Lo;0;L;;;;;N;;;;;
+ 13F4D;EGYPTIAN HIEROGLYPH-13F4D;Lo;0;L;;;;;N;;;;;
+ 13F4E;EGYPTIAN HIEROGLYPH-13F4E;Lo;0;L;;;;;N;;;;;
+ 13F4F;EGYPTIAN HIEROGLYPH-13F4F;Lo;0;L;;;;;N;;;;;
+ 13F50;EGYPTIAN HIEROGLYPH-13F50;Lo;0;L;;;;;N;;;;;
+ 13F51;EGYPTIAN HIEROGLYPH-13F51;Lo;0;L;;;;;N;;;;;
+ 13F52;EGYPTIAN HIEROGLYPH-13F52;Lo;0;L;;;;;N;;;;;
+ 13F53;EGYPTIAN HIEROGLYPH-13F53;Lo;0;L;;;;;N;;;;;
+ 13F54;EGYPTIAN HIEROGLYPH-13F54;Lo;0;L;;;;;N;;;;;
+ 13F55;EGYPTIAN HIEROGLYPH-13F55;Lo;0;L;;;;;N;;;;;
+ 13F56;EGYPTIAN HIEROGLYPH-13F56;Lo;0;L;;;;;N;;;;;
+ 13F57;EGYPTIAN HIEROGLYPH-13F57;Lo;0;L;;;;;N;;;;;
+ 13F58;EGYPTIAN HIEROGLYPH-13F58;Lo;0;L;;;;;N;;;;;
+ 13F59;EGYPTIAN HIEROGLYPH-13F59;Lo;0;L;;;;;N;;;;;
+ 13F5A;EGYPTIAN HIEROGLYPH-13F5A;Lo;0;L;;;;;N;;;;;
+ 13F5B;EGYPTIAN HIEROGLYPH-13F5B;Lo;0;L;;;;;N;;;;;
+ 13F5C;EGYPTIAN HIEROGLYPH-13F5C;Lo;0;L;;;;;N;;;;;
+ 13F5D;EGYPTIAN HIEROGLYPH-13F5D;Lo;0;L;;;;;N;;;;;
+ 13F5E;EGYPTIAN HIEROGLYPH-13F5E;Lo;0;L;;;;;N;;;;;
+ 13F5F;EGYPTIAN HIEROGLYPH-13F5F;Lo;0;L;;;;;N;;;;;
+ 13F60;EGYPTIAN HIEROGLYPH-13F60;Lo;0;L;;;;;N;;;;;
+ 13F61;EGYPTIAN HIEROGLYPH-13F61;Lo;0;L;;;;;N;;;;;
+ 13F62;EGYPTIAN HIEROGLYPH-13F62;Lo;0;L;;;;;N;;;;;
+ 13F63;EGYPTIAN HIEROGLYPH-13F63;Lo;0;L;;;;;N;;;;;
+ 13F64;EGYPTIAN HIEROGLYPH-13F64;Lo;0;L;;;;;N;;;;;
+ 13F65;EGYPTIAN HIEROGLYPH-13F65;Lo;0;L;;;;;N;;;;;
+ 13F66;EGYPTIAN HIEROGLYPH-13F66;Lo;0;L;;;;;N;;;;;
+ 13F67;EGYPTIAN HIEROGLYPH-13F67;Lo;0;L;;;;;N;;;;;
+ 13F68;EGYPTIAN HIEROGLYPH-13F68;Lo;0;L;;;;;N;;;;;
+ 13F69;EGYPTIAN HIEROGLYPH-13F69;Lo;0;L;;;;;N;;;;;
+ 13F6A;EGYPTIAN HIEROGLYPH-13F6A;Lo;0;L;;;;;N;;;;;
+ 13F6B;EGYPTIAN HIEROGLYPH-13F6B;Lo;0;L;;;;;N;;;;;
+ 13F6C;EGYPTIAN HIEROGLYPH-13F6C;Lo;0;L;;;;;N;;;;;
+ 13F6D;EGYPTIAN HIEROGLYPH-13F6D;Lo;0;L;;;;;N;;;;;
+ 13F6E;EGYPTIAN HIEROGLYPH-13F6E;Lo;0;L;;;;;N;;;;;
+ 13F6F;EGYPTIAN HIEROGLYPH-13F6F;Lo;0;L;;;;;N;;;;;
+ 13F70;EGYPTIAN HIEROGLYPH-13F70;Lo;0;L;;;;;N;;;;;
+ 13F71;EGYPTIAN HIEROGLYPH-13F71;Lo;0;L;;;;;N;;;;;
+ 13F72;EGYPTIAN HIEROGLYPH-13F72;Lo;0;L;;;;;N;;;;;
+ 13F73;EGYPTIAN HIEROGLYPH-13F73;Lo;0;L;;;;;N;;;;;
+ 13F74;EGYPTIAN HIEROGLYPH-13F74;Lo;0;L;;;;;N;;;;;
+ 13F75;EGYPTIAN HIEROGLYPH-13F75;Lo;0;L;;;;;N;;;;;
+ 13F76;EGYPTIAN HIEROGLYPH-13F76;Lo;0;L;;;;;N;;;;;
+ 13F77;EGYPTIAN HIEROGLYPH-13F77;Lo;0;L;;;;;N;;;;;
+ 13F78;EGYPTIAN HIEROGLYPH-13F78;Lo;0;L;;;;;N;;;;;
+ 13F79;EGYPTIAN HIEROGLYPH-13F79;Lo;0;L;;;;;N;;;;;
+ 13F7A;EGYPTIAN HIEROGLYPH-13F7A;Lo;0;L;;;;;N;;;;;
+ 13F7B;EGYPTIAN HIEROGLYPH-13F7B;Lo;0;L;;;;;N;;;;;
+ 13F7C;EGYPTIAN HIEROGLYPH-13F7C;Lo;0;L;;;;;N;;;;;
+ 13F7D;EGYPTIAN HIEROGLYPH-13F7D;Lo;0;L;;;;;N;;;;;
+ 13F7E;EGYPTIAN HIEROGLYPH-13F7E;Lo;0;L;;;;;N;;;;;
+ 13F7F;EGYPTIAN HIEROGLYPH-13F7F;Lo;0;L;;;;;N;;;;;
+ 13F80;EGYPTIAN HIEROGLYPH-13F80;Lo;0;L;;;;;N;;;;;
+ 13F81;EGYPTIAN HIEROGLYPH-13F81;Lo;0;L;;;;;N;;;;;
+ 13F82;EGYPTIAN HIEROGLYPH-13F82;Lo;0;L;;;;;N;;;;;
+ 13F83;EGYPTIAN HIEROGLYPH-13F83;Lo;0;L;;;;;N;;;;;
+ 13F84;EGYPTIAN HIEROGLYPH-13F84;Lo;0;L;;;;;N;;;;;
+ 13F85;EGYPTIAN HIEROGLYPH-13F85;Lo;0;L;;;;;N;;;;;
+ 13F86;EGYPTIAN HIEROGLYPH-13F86;Lo;0;L;;;;;N;;;;;
+ 13F87;EGYPTIAN HIEROGLYPH-13F87;Lo;0;L;;;;;N;;;;;
+ 13F88;EGYPTIAN HIEROGLYPH-13F88;Lo;0;L;;;;;N;;;;;
+ 13F89;EGYPTIAN HIEROGLYPH-13F89;Lo;0;L;;;;;N;;;;;
+ 13F8A;EGYPTIAN HIEROGLYPH-13F8A;Lo;0;L;;;;;N;;;;;
+ 13F8B;EGYPTIAN HIEROGLYPH-13F8B;Lo;0;L;;;;;N;;;;;
+ 13F8C;EGYPTIAN HIEROGLYPH-13F8C;Lo;0;L;;;;;N;;;;;
+ 13F8D;EGYPTIAN HIEROGLYPH-13F8D;Lo;0;L;;;;;N;;;;;
+ 13F8E;EGYPTIAN HIEROGLYPH-13F8E;Lo;0;L;;;;;N;;;;;
+ 13F8F;EGYPTIAN HIEROGLYPH-13F8F;Lo;0;L;;;;;N;;;;;
+ 13F90;EGYPTIAN HIEROGLYPH-13F90;Lo;0;L;;;;;N;;;;;
+ 13F91;EGYPTIAN HIEROGLYPH-13F91;Lo;0;L;;;;;N;;;;;
+ 13F92;EGYPTIAN HIEROGLYPH-13F92;Lo;0;L;;;;;N;;;;;
+ 13F93;EGYPTIAN HIEROGLYPH-13F93;Lo;0;L;;;;;N;;;;;
+ 13F94;EGYPTIAN HIEROGLYPH-13F94;Lo;0;L;;;;;N;;;;;
+ 13F95;EGYPTIAN HIEROGLYPH-13F95;Lo;0;L;;;;;N;;;;;
+ 13F96;EGYPTIAN HIEROGLYPH-13F96;Lo;0;L;;;;;N;;;;;
+ 13F97;EGYPTIAN HIEROGLYPH-13F97;Lo;0;L;;;;;N;;;;;
+ 13F98;EGYPTIAN HIEROGLYPH-13F98;Lo;0;L;;;;;N;;;;;
+ 13F99;EGYPTIAN HIEROGLYPH-13F99;Lo;0;L;;;;;N;;;;;
+ 13F9A;EGYPTIAN HIEROGLYPH-13F9A;Lo;0;L;;;;;N;;;;;
+ 13F9B;EGYPTIAN HIEROGLYPH-13F9B;Lo;0;L;;;;;N;;;;;
+ 13F9C;EGYPTIAN HIEROGLYPH-13F9C;Lo;0;L;;;;;N;;;;;
+ 13F9D;EGYPTIAN HIEROGLYPH-13F9D;Lo;0;L;;;;;N;;;;;
+ 13F9E;EGYPTIAN HIEROGLYPH-13F9E;Lo;0;L;;;;;N;;;;;
+ 13F9F;EGYPTIAN HIEROGLYPH-13F9F;Lo;0;L;;;;;N;;;;;
+ 13FA0;EGYPTIAN HIEROGLYPH-13FA0;Lo;0;L;;;;;N;;;;;
+ 13FA1;EGYPTIAN HIEROGLYPH-13FA1;Lo;0;L;;;;;N;;;;;
+ 13FA2;EGYPTIAN HIEROGLYPH-13FA2;Lo;0;L;;;;;N;;;;;
+ 13FA3;EGYPTIAN HIEROGLYPH-13FA3;Lo;0;L;;;;;N;;;;;
+ 13FA4;EGYPTIAN HIEROGLYPH-13FA4;Lo;0;L;;;;;N;;;;;
+ 13FA5;EGYPTIAN HIEROGLYPH-13FA5;Lo;0;L;;;;;N;;;;;
+ 13FA6;EGYPTIAN HIEROGLYPH-13FA6;Lo;0;L;;;;;N;;;;;
+ 13FA7;EGYPTIAN HIEROGLYPH-13FA7;Lo;0;L;;;;;N;;;;;
+ 13FA8;EGYPTIAN HIEROGLYPH-13FA8;Lo;0;L;;;;;N;;;;;
+ 13FA9;EGYPTIAN HIEROGLYPH-13FA9;Lo;0;L;;;;;N;;;;;
+ 13FAA;EGYPTIAN HIEROGLYPH-13FAA;Lo;0;L;;;;;N;;;;;
+ 13FAB;EGYPTIAN HIEROGLYPH-13FAB;Lo;0;L;;;;;N;;;;;
+ 13FAC;EGYPTIAN HIEROGLYPH-13FAC;Lo;0;L;;;;;N;;;;;
+ 13FAD;EGYPTIAN HIEROGLYPH-13FAD;Lo;0;L;;;;;N;;;;;
+ 13FAE;EGYPTIAN HIEROGLYPH-13FAE;Lo;0;L;;;;;N;;;;;
+ 13FAF;EGYPTIAN HIEROGLYPH-13FAF;Lo;0;L;;;;;N;;;;;
+ 13FB0;EGYPTIAN HIEROGLYPH-13FB0;Lo;0;L;;;;;N;;;;;
+ 13FB1;EGYPTIAN HIEROGLYPH-13FB1;Lo;0;L;;;;;N;;;;;
+ 13FB2;EGYPTIAN HIEROGLYPH-13FB2;Lo;0;L;;;;;N;;;;;
+ 13FB3;EGYPTIAN HIEROGLYPH-13FB3;Lo;0;L;;;;;N;;;;;
+ 13FB4;EGYPTIAN HIEROGLYPH-13FB4;Lo;0;L;;;;;N;;;;;
+ 13FB5;EGYPTIAN HIEROGLYPH-13FB5;Lo;0;L;;;;;N;;;;;
+ 13FB6;EGYPTIAN HIEROGLYPH-13FB6;Lo;0;L;;;;;N;;;;;
+ 13FB7;EGYPTIAN HIEROGLYPH-13FB7;Lo;0;L;;;;;N;;;;;
+ 13FB8;EGYPTIAN HIEROGLYPH-13FB8;Lo;0;L;;;;;N;;;;;
+ 13FB9;EGYPTIAN HIEROGLYPH-13FB9;Lo;0;L;;;;;N;;;;;
+ 13FBA;EGYPTIAN HIEROGLYPH-13FBA;Lo;0;L;;;;;N;;;;;
+ 13FBB;EGYPTIAN HIEROGLYPH-13FBB;Lo;0;L;;;;;N;;;;;
+ 13FBC;EGYPTIAN HIEROGLYPH-13FBC;Lo;0;L;;;;;N;;;;;
+ 13FBD;EGYPTIAN HIEROGLYPH-13FBD;Lo;0;L;;;;;N;;;;;
+ 13FBE;EGYPTIAN HIEROGLYPH-13FBE;Lo;0;L;;;;;N;;;;;
+ 13FBF;EGYPTIAN HIEROGLYPH-13FBF;Lo;0;L;;;;;N;;;;;
+ 13FC0;EGYPTIAN HIEROGLYPH-13FC0;Lo;0;L;;;;;N;;;;;
+ 13FC1;EGYPTIAN HIEROGLYPH-13FC1;Lo;0;L;;;;;N;;;;;
+ 13FC2;EGYPTIAN HIEROGLYPH-13FC2;Lo;0;L;;;;;N;;;;;
+ 13FC3;EGYPTIAN HIEROGLYPH-13FC3;Lo;0;L;;;;;N;;;;;
+ 13FC4;EGYPTIAN HIEROGLYPH-13FC4;Lo;0;L;;;;;N;;;;;
+ 13FC5;EGYPTIAN HIEROGLYPH-13FC5;Lo;0;L;;;;;N;;;;;
+ 13FC6;EGYPTIAN HIEROGLYPH-13FC6;Lo;0;L;;;;;N;;;;;
+ 13FC7;EGYPTIAN HIEROGLYPH-13FC7;Lo;0;L;;;;;N;;;;;
+ 13FC8;EGYPTIAN HIEROGLYPH-13FC8;Lo;0;L;;;;;N;;;;;
+ 13FC9;EGYPTIAN HIEROGLYPH-13FC9;Lo;0;L;;;;;N;;;;;
+ 13FCA;EGYPTIAN HIEROGLYPH-13FCA;Lo;0;L;;;;;N;;;;;
+ 13FCB;EGYPTIAN HIEROGLYPH-13FCB;Lo;0;L;;;;;N;;;;;
+ 13FCC;EGYPTIAN HIEROGLYPH-13FCC;Lo;0;L;;;;;N;;;;;
+ 13FCD;EGYPTIAN HIEROGLYPH-13FCD;Lo;0;L;;;;;N;;;;;
+ 13FCE;EGYPTIAN HIEROGLYPH-13FCE;Lo;0;L;;;;;N;;;;;
+ 13FCF;EGYPTIAN HIEROGLYPH-13FCF;Lo;0;L;;;;;N;;;;;
+ 13FD0;EGYPTIAN HIEROGLYPH-13FD0;Lo;0;L;;;;;N;;;;;
+ 13FD1;EGYPTIAN HIEROGLYPH-13FD1;Lo;0;L;;;;;N;;;;;
+ 13FD2;EGYPTIAN HIEROGLYPH-13FD2;Lo;0;L;;;;;N;;;;;
+ 13FD3;EGYPTIAN HIEROGLYPH-13FD3;Lo;0;L;;;;;N;;;;;
+ 13FD4;EGYPTIAN HIEROGLYPH-13FD4;Lo;0;L;;;;;N;;;;;
+ 13FD5;EGYPTIAN HIEROGLYPH-13FD5;Lo;0;L;;;;;N;;;;;
+ 13FD6;EGYPTIAN HIEROGLYPH-13FD6;Lo;0;L;;;;;N;;;;;
+ 13FD7;EGYPTIAN HIEROGLYPH-13FD7;Lo;0;L;;;;;N;;;;;
+ 13FD8;EGYPTIAN HIEROGLYPH-13FD8;Lo;0;L;;;;;N;;;;;
+ 13FD9;EGYPTIAN HIEROGLYPH-13FD9;Lo;0;L;;;;;N;;;;;
+ 13FDA;EGYPTIAN HIEROGLYPH-13FDA;Lo;0;L;;;;;N;;;;;
+ 13FDB;EGYPTIAN HIEROGLYPH-13FDB;Lo;0;L;;;;;N;;;;;
+ 13FDC;EGYPTIAN HIEROGLYPH-13FDC;Lo;0;L;;;;;N;;;;;
+ 13FDD;EGYPTIAN HIEROGLYPH-13FDD;Lo;0;L;;;;;N;;;;;
+ 13FDE;EGYPTIAN HIEROGLYPH-13FDE;Lo;0;L;;;;;N;;;;;
+ 13FDF;EGYPTIAN HIEROGLYPH-13FDF;Lo;0;L;;;;;N;;;;;
+ 13FE0;EGYPTIAN HIEROGLYPH-13FE0;Lo;0;L;;;;;N;;;;;
+ 13FE1;EGYPTIAN HIEROGLYPH-13FE1;Lo;0;L;;;;;N;;;;;
+ 13FE2;EGYPTIAN HIEROGLYPH-13FE2;Lo;0;L;;;;;N;;;;;
+ 13FE3;EGYPTIAN HIEROGLYPH-13FE3;Lo;0;L;;;;;N;;;;;
+ 13FE4;EGYPTIAN HIEROGLYPH-13FE4;Lo;0;L;;;;;N;;;;;
+ 13FE5;EGYPTIAN HIEROGLYPH-13FE5;Lo;0;L;;;;;N;;;;;
+ 13FE6;EGYPTIAN HIEROGLYPH-13FE6;Lo;0;L;;;;;N;;;;;
+ 13FE7;EGYPTIAN HIEROGLYPH-13FE7;Lo;0;L;;;;;N;;;;;
+ 13FE8;EGYPTIAN HIEROGLYPH-13FE8;Lo;0;L;;;;;N;;;;;
+ 13FE9;EGYPTIAN HIEROGLYPH-13FE9;Lo;0;L;;;;;N;;;;;
+ 13FEA;EGYPTIAN HIEROGLYPH-13FEA;Lo;0;L;;;;;N;;;;;
+ 13FEB;EGYPTIAN HIEROGLYPH-13FEB;Lo;0;L;;;;;N;;;;;
+ 13FEC;EGYPTIAN HIEROGLYPH-13FEC;Lo;0;L;;;;;N;;;;;
+ 13FED;EGYPTIAN HIEROGLYPH-13FED;Lo;0;L;;;;;N;;;;;
+ 13FEE;EGYPTIAN HIEROGLYPH-13FEE;Lo;0;L;;;;;N;;;;;
+ 13FEF;EGYPTIAN HIEROGLYPH-13FEF;Lo;0;L;;;;;N;;;;;
+ 13FF0;EGYPTIAN HIEROGLYPH-13FF0;Lo;0;L;;;;;N;;;;;
+ 13FF1;EGYPTIAN HIEROGLYPH-13FF1;Lo;0;L;;;;;N;;;;;
+ 13FF2;EGYPTIAN HIEROGLYPH-13FF2;Lo;0;L;;;;;N;;;;;
+ 13FF3;EGYPTIAN HIEROGLYPH-13FF3;Lo;0;L;;;;;N;;;;;
+ 13FF4;EGYPTIAN HIEROGLYPH-13FF4;Lo;0;L;;;;;N;;;;;
+ 13FF5;EGYPTIAN HIEROGLYPH-13FF5;Lo;0;L;;;;;N;;;;;
+ 13FF6;EGYPTIAN HIEROGLYPH-13FF6;Lo;0;L;;;;;N;;;;;
+ 13FF7;EGYPTIAN HIEROGLYPH-13FF7;Lo;0;L;;;;;N;;;;;
+ 13FF8;EGYPTIAN HIEROGLYPH-13FF8;Lo;0;L;;;;;N;;;;;
+ 13FF9;EGYPTIAN HIEROGLYPH-13FF9;Lo;0;L;;;;;N;;;;;
+ 13FFA;EGYPTIAN HIEROGLYPH-13FFA;Lo;0;L;;;;;N;;;;;
+ 13FFB;EGYPTIAN HIEROGLYPH-13FFB;Lo;0;L;;;;;N;;;;;
+ 13FFC;EGYPTIAN HIEROGLYPH-13FFC;Lo;0;L;;;;;N;;;;;
+ 13FFD;EGYPTIAN HIEROGLYPH-13FFD;Lo;0;L;;;;;N;;;;;
+ 13FFE;EGYPTIAN HIEROGLYPH-13FFE;Lo;0;L;;;;;N;;;;;
+ 13FFF;EGYPTIAN HIEROGLYPH-13FFF;Lo;0;L;;;;;N;;;;;
+ 14000;EGYPTIAN HIEROGLYPH-14000;Lo;0;L;;;;;N;;;;;
+ 14001;EGYPTIAN HIEROGLYPH-14001;Lo;0;L;;;;;N;;;;;
+ 14002;EGYPTIAN HIEROGLYPH-14002;Lo;0;L;;;;;N;;;;;
+ 14003;EGYPTIAN HIEROGLYPH-14003;Lo;0;L;;;;;N;;;;;
+ 14004;EGYPTIAN HIEROGLYPH-14004;Lo;0;L;;;;;N;;;;;
+ 14005;EGYPTIAN HIEROGLYPH-14005;Lo;0;L;;;;;N;;;;;
+ 14006;EGYPTIAN HIEROGLYPH-14006;Lo;0;L;;;;;N;;;;;
+ 14007;EGYPTIAN HIEROGLYPH-14007;Lo;0;L;;;;;N;;;;;
+ 14008;EGYPTIAN HIEROGLYPH-14008;Lo;0;L;;;;;N;;;;;
+ 14009;EGYPTIAN HIEROGLYPH-14009;Lo;0;L;;;;;N;;;;;
+ 1400A;EGYPTIAN HIEROGLYPH-1400A;Lo;0;L;;;;;N;;;;;
+ 1400B;EGYPTIAN HIEROGLYPH-1400B;Lo;0;L;;;;;N;;;;;
+ 1400C;EGYPTIAN HIEROGLYPH-1400C;Lo;0;L;;;;;N;;;;;
+ 1400D;EGYPTIAN HIEROGLYPH-1400D;Lo;0;L;;;;;N;;;;;
+ 1400E;EGYPTIAN HIEROGLYPH-1400E;Lo;0;L;;;;;N;;;;;
+ 1400F;EGYPTIAN HIEROGLYPH-1400F;Lo;0;L;;;;;N;;;;;
+ 14010;EGYPTIAN HIEROGLYPH-14010;Lo;0;L;;;;;N;;;;;
+ 14011;EGYPTIAN HIEROGLYPH-14011;Lo;0;L;;;;;N;;;;;
+ 14012;EGYPTIAN HIEROGLYPH-14012;Lo;0;L;;;;;N;;;;;
+ 14013;EGYPTIAN HIEROGLYPH-14013;Lo;0;L;;;;;N;;;;;
+ 14014;EGYPTIAN HIEROGLYPH-14014;Lo;0;L;;;;;N;;;;;
+ 14015;EGYPTIAN HIEROGLYPH-14015;Lo;0;L;;;;;N;;;;;
+ 14016;EGYPTIAN HIEROGLYPH-14016;Lo;0;L;;;;;N;;;;;
+ 14017;EGYPTIAN HIEROGLYPH-14017;Lo;0;L;;;;;N;;;;;
+ 14018;EGYPTIAN HIEROGLYPH-14018;Lo;0;L;;;;;N;;;;;
+ 14019;EGYPTIAN HIEROGLYPH-14019;Lo;0;L;;;;;N;;;;;
+ 1401A;EGYPTIAN HIEROGLYPH-1401A;Lo;0;L;;;;;N;;;;;
+ 1401B;EGYPTIAN HIEROGLYPH-1401B;Lo;0;L;;;;;N;;;;;
+ 1401C;EGYPTIAN HIEROGLYPH-1401C;Lo;0;L;;;;;N;;;;;
+ 1401D;EGYPTIAN HIEROGLYPH-1401D;Lo;0;L;;;;;N;;;;;
+ 1401E;EGYPTIAN HIEROGLYPH-1401E;Lo;0;L;;;;;N;;;;;
+ 1401F;EGYPTIAN HIEROGLYPH-1401F;Lo;0;L;;;;;N;;;;;
+ 14020;EGYPTIAN HIEROGLYPH-14020;Lo;0;L;;;;;N;;;;;
+ 14021;EGYPTIAN HIEROGLYPH-14021;Lo;0;L;;;;;N;;;;;
+ 14022;EGYPTIAN HIEROGLYPH-14022;Lo;0;L;;;;;N;;;;;
+ 14023;EGYPTIAN HIEROGLYPH-14023;Lo;0;L;;;;;N;;;;;
+ 14024;EGYPTIAN HIEROGLYPH-14024;Lo;0;L;;;;;N;;;;;
+ 14025;EGYPTIAN HIEROGLYPH-14025;Lo;0;L;;;;;N;;;;;
+ 14026;EGYPTIAN HIEROGLYPH-14026;Lo;0;L;;;;;N;;;;;
+ 14027;EGYPTIAN HIEROGLYPH-14027;Lo;0;L;;;;;N;;;;;
+ 14028;EGYPTIAN HIEROGLYPH-14028;Lo;0;L;;;;;N;;;;;
+ 14029;EGYPTIAN HIEROGLYPH-14029;Lo;0;L;;;;;N;;;;;
+ 1402A;EGYPTIAN HIEROGLYPH-1402A;Lo;0;L;;;;;N;;;;;
+ 1402B;EGYPTIAN HIEROGLYPH-1402B;Lo;0;L;;;;;N;;;;;
+ 1402C;EGYPTIAN HIEROGLYPH-1402C;Lo;0;L;;;;;N;;;;;
+ 1402D;EGYPTIAN HIEROGLYPH-1402D;Lo;0;L;;;;;N;;;;;
+ 1402E;EGYPTIAN HIEROGLYPH-1402E;Lo;0;L;;;;;N;;;;;
+ 1402F;EGYPTIAN HIEROGLYPH-1402F;Lo;0;L;;;;;N;;;;;
+ 14030;EGYPTIAN HIEROGLYPH-14030;Lo;0;L;;;;;N;;;;;
+ 14031;EGYPTIAN HIEROGLYPH-14031;Lo;0;L;;;;;N;;;;;
+ 14032;EGYPTIAN HIEROGLYPH-14032;Lo;0;L;;;;;N;;;;;
+ 14033;EGYPTIAN HIEROGLYPH-14033;Lo;0;L;;;;;N;;;;;
+ 14034;EGYPTIAN HIEROGLYPH-14034;Lo;0;L;;;;;N;;;;;
+ 14035;EGYPTIAN HIEROGLYPH-14035;Lo;0;L;;;;;N;;;;;
+ 14036;EGYPTIAN HIEROGLYPH-14036;Lo;0;L;;;;;N;;;;;
+ 14037;EGYPTIAN HIEROGLYPH-14037;Lo;0;L;;;;;N;;;;;
+ 14038;EGYPTIAN HIEROGLYPH-14038;Lo;0;L;;;;;N;;;;;
+ 14039;EGYPTIAN HIEROGLYPH-14039;Lo;0;L;;;;;N;;;;;
+ 1403A;EGYPTIAN HIEROGLYPH-1403A;Lo;0;L;;;;;N;;;;;
+ 1403B;EGYPTIAN HIEROGLYPH-1403B;Lo;0;L;;;;;N;;;;;
+ 1403C;EGYPTIAN HIEROGLYPH-1403C;Lo;0;L;;;;;N;;;;;
+ 1403D;EGYPTIAN HIEROGLYPH-1403D;Lo;0;L;;;;;N;;;;;
+ 1403E;EGYPTIAN HIEROGLYPH-1403E;Lo;0;L;;;;;N;;;;;
+ 1403F;EGYPTIAN HIEROGLYPH-1403F;Lo;0;L;;;;;N;;;;;
+ 14040;EGYPTIAN HIEROGLYPH-14040;Lo;0;L;;;;;N;;;;;
+ 14041;EGYPTIAN HIEROGLYPH-14041;Lo;0;L;;;;;N;;;;;
+ 14042;EGYPTIAN HIEROGLYPH-14042;Lo;0;L;;;;;N;;;;;
+ 14043;EGYPTIAN HIEROGLYPH-14043;Lo;0;L;;;;;N;;;;;
+ 14044;EGYPTIAN HIEROGLYPH-14044;Lo;0;L;;;;;N;;;;;
+ 14045;EGYPTIAN HIEROGLYPH-14045;Lo;0;L;;;;;N;;;;;
+ 14046;EGYPTIAN HIEROGLYPH-14046;Lo;0;L;;;;;N;;;;;
+ 14047;EGYPTIAN HIEROGLYPH-14047;Lo;0;L;;;;;N;;;;;
+ 14048;EGYPTIAN HIEROGLYPH-14048;Lo;0;L;;;;;N;;;;;
+ 14049;EGYPTIAN HIEROGLYPH-14049;Lo;0;L;;;;;N;;;;;
+ 1404A;EGYPTIAN HIEROGLYPH-1404A;Lo;0;L;;;;;N;;;;;
+ 1404B;EGYPTIAN HIEROGLYPH-1404B;Lo;0;L;;;;;N;;;;;
+ 1404C;EGYPTIAN HIEROGLYPH-1404C;Lo;0;L;;;;;N;;;;;
+ 1404D;EGYPTIAN HIEROGLYPH-1404D;Lo;0;L;;;;;N;;;;;
+ 1404E;EGYPTIAN HIEROGLYPH-1404E;Lo;0;L;;;;;N;;;;;
+ 1404F;EGYPTIAN HIEROGLYPH-1404F;Lo;0;L;;;;;N;;;;;
+ 14050;EGYPTIAN HIEROGLYPH-14050;Lo;0;L;;;;;N;;;;;
+ 14051;EGYPTIAN HIEROGLYPH-14051;Lo;0;L;;;;;N;;;;;
+ 14052;EGYPTIAN HIEROGLYPH-14052;Lo;0;L;;;;;N;;;;;
+ 14053;EGYPTIAN HIEROGLYPH-14053;Lo;0;L;;;;;N;;;;;
+ 14054;EGYPTIAN HIEROGLYPH-14054;Lo;0;L;;;;;N;;;;;
+ 14055;EGYPTIAN HIEROGLYPH-14055;Lo;0;L;;;;;N;;;;;
+ 14056;EGYPTIAN HIEROGLYPH-14056;Lo;0;L;;;;;N;;;;;
+ 14057;EGYPTIAN HIEROGLYPH-14057;Lo;0;L;;;;;N;;;;;
+ 14058;EGYPTIAN HIEROGLYPH-14058;Lo;0;L;;;;;N;;;;;
+ 14059;EGYPTIAN HIEROGLYPH-14059;Lo;0;L;;;;;N;;;;;
+ 1405A;EGYPTIAN HIEROGLYPH-1405A;Lo;0;L;;;;;N;;;;;
+ 1405B;EGYPTIAN HIEROGLYPH-1405B;Lo;0;L;;;;;N;;;;;
+ 1405C;EGYPTIAN HIEROGLYPH-1405C;Lo;0;L;;;;;N;;;;;
+ 1405D;EGYPTIAN HIEROGLYPH-1405D;Lo;0;L;;;;;N;;;;;
+ 1405E;EGYPTIAN HIEROGLYPH-1405E;Lo;0;L;;;;;N;;;;;
+ 1405F;EGYPTIAN HIEROGLYPH-1405F;Lo;0;L;;;;;N;;;;;
+ 14060;EGYPTIAN HIEROGLYPH-14060;Lo;0;L;;;;;N;;;;;
+ 14061;EGYPTIAN HIEROGLYPH-14061;Lo;0;L;;;;;N;;;;;
+ 14062;EGYPTIAN HIEROGLYPH-14062;Lo;0;L;;;;;N;;;;;
+ 14063;EGYPTIAN HIEROGLYPH-14063;Lo;0;L;;;;;N;;;;;
+ 14064;EGYPTIAN HIEROGLYPH-14064;Lo;0;L;;;;;N;;;;;
+ 14065;EGYPTIAN HIEROGLYPH-14065;Lo;0;L;;;;;N;;;;;
+ 14066;EGYPTIAN HIEROGLYPH-14066;Lo;0;L;;;;;N;;;;;
+ 14067;EGYPTIAN HIEROGLYPH-14067;Lo;0;L;;;;;N;;;;;
+ 14068;EGYPTIAN HIEROGLYPH-14068;Lo;0;L;;;;;N;;;;;
+ 14069;EGYPTIAN HIEROGLYPH-14069;Lo;0;L;;;;;N;;;;;
+ 1406A;EGYPTIAN HIEROGLYPH-1406A;Lo;0;L;;;;;N;;;;;
+ 1406B;EGYPTIAN HIEROGLYPH-1406B;Lo;0;L;;;;;N;;;;;
+ 1406C;EGYPTIAN HIEROGLYPH-1406C;Lo;0;L;;;;;N;;;;;
+ 1406D;EGYPTIAN HIEROGLYPH-1406D;Lo;0;L;;;;;N;;;;;
+ 1406E;EGYPTIAN HIEROGLYPH-1406E;Lo;0;L;;;;;N;;;;;
+ 1406F;EGYPTIAN HIEROGLYPH-1406F;Lo;0;L;;;;;N;;;;;
+ 14070;EGYPTIAN HIEROGLYPH-14070;Lo;0;L;;;;;N;;;;;
+ 14071;EGYPTIAN HIEROGLYPH-14071;Lo;0;L;;;;;N;;;;;
+ 14072;EGYPTIAN HIEROGLYPH-14072;Lo;0;L;;;;;N;;;;;
+ 14073;EGYPTIAN HIEROGLYPH-14073;Lo;0;L;;;;;N;;;;;
+ 14074;EGYPTIAN HIEROGLYPH-14074;Lo;0;L;;;;;N;;;;;
+ 14075;EGYPTIAN HIEROGLYPH-14075;Lo;0;L;;;;;N;;;;;
+ 14076;EGYPTIAN HIEROGLYPH-14076;Lo;0;L;;;;;N;;;;;
+ 14077;EGYPTIAN HIEROGLYPH-14077;Lo;0;L;;;;;N;;;;;
+ 14078;EGYPTIAN HIEROGLYPH-14078;Lo;0;L;;;;;N;;;;;
+ 14079;EGYPTIAN HIEROGLYPH-14079;Lo;0;L;;;;;N;;;;;
+ 1407A;EGYPTIAN HIEROGLYPH-1407A;Lo;0;L;;;;;N;;;;;
+ 1407B;EGYPTIAN HIEROGLYPH-1407B;Lo;0;L;;;;;N;;;;;
+ 1407C;EGYPTIAN HIEROGLYPH-1407C;Lo;0;L;;;;;N;;;;;
+ 1407D;EGYPTIAN HIEROGLYPH-1407D;Lo;0;L;;;;;N;;;;;
+ 1407E;EGYPTIAN HIEROGLYPH-1407E;Lo;0;L;;;;;N;;;;;
+ 1407F;EGYPTIAN HIEROGLYPH-1407F;Lo;0;L;;;;;N;;;;;
+ 14080;EGYPTIAN HIEROGLYPH-14080;Lo;0;L;;;;;N;;;;;
+ 14081;EGYPTIAN HIEROGLYPH-14081;Lo;0;L;;;;;N;;;;;
+ 14082;EGYPTIAN HIEROGLYPH-14082;Lo;0;L;;;;;N;;;;;
+ 14083;EGYPTIAN HIEROGLYPH-14083;Lo;0;L;;;;;N;;;;;
+ 14084;EGYPTIAN HIEROGLYPH-14084;Lo;0;L;;;;;N;;;;;
+ 14085;EGYPTIAN HIEROGLYPH-14085;Lo;0;L;;;;;N;;;;;
+ 14086;EGYPTIAN HIEROGLYPH-14086;Lo;0;L;;;;;N;;;;;
+ 14087;EGYPTIAN HIEROGLYPH-14087;Lo;0;L;;;;;N;;;;;
+ 14088;EGYPTIAN HIEROGLYPH-14088;Lo;0;L;;;;;N;;;;;
+ 14089;EGYPTIAN HIEROGLYPH-14089;Lo;0;L;;;;;N;;;;;
+ 1408A;EGYPTIAN HIEROGLYPH-1408A;Lo;0;L;;;;;N;;;;;
+ 1408B;EGYPTIAN HIEROGLYPH-1408B;Lo;0;L;;;;;N;;;;;
+ 1408C;EGYPTIAN HIEROGLYPH-1408C;Lo;0;L;;;;;N;;;;;
+ 1408D;EGYPTIAN HIEROGLYPH-1408D;Lo;0;L;;;;;N;;;;;
+ 1408E;EGYPTIAN HIEROGLYPH-1408E;Lo;0;L;;;;;N;;;;;
+ 1408F;EGYPTIAN HIEROGLYPH-1408F;Lo;0;L;;;;;N;;;;;
+ 14090;EGYPTIAN HIEROGLYPH-14090;Lo;0;L;;;;;N;;;;;
+ 14091;EGYPTIAN HIEROGLYPH-14091;Lo;0;L;;;;;N;;;;;
+ 14092;EGYPTIAN HIEROGLYPH-14092;Lo;0;L;;;;;N;;;;;
+ 14093;EGYPTIAN HIEROGLYPH-14093;Lo;0;L;;;;;N;;;;;
+ 14094;EGYPTIAN HIEROGLYPH-14094;Lo;0;L;;;;;N;;;;;
+ 14095;EGYPTIAN HIEROGLYPH-14095;Lo;0;L;;;;;N;;;;;
+ 14096;EGYPTIAN HIEROGLYPH-14096;Lo;0;L;;;;;N;;;;;
+ 14097;EGYPTIAN HIEROGLYPH-14097;Lo;0;L;;;;;N;;;;;
+ 14098;EGYPTIAN HIEROGLYPH-14098;Lo;0;L;;;;;N;;;;;
+ 14099;EGYPTIAN HIEROGLYPH-14099;Lo;0;L;;;;;N;;;;;
+ 1409A;EGYPTIAN HIEROGLYPH-1409A;Lo;0;L;;;;;N;;;;;
+ 1409B;EGYPTIAN HIEROGLYPH-1409B;Lo;0;L;;;;;N;;;;;
+ 1409C;EGYPTIAN HIEROGLYPH-1409C;Lo;0;L;;;;;N;;;;;
+ 1409D;EGYPTIAN HIEROGLYPH-1409D;Lo;0;L;;;;;N;;;;;
+ 1409E;EGYPTIAN HIEROGLYPH-1409E;Lo;0;L;;;;;N;;;;;
+ 1409F;EGYPTIAN HIEROGLYPH-1409F;Lo;0;L;;;;;N;;;;;
+ 140A0;EGYPTIAN HIEROGLYPH-140A0;Lo;0;L;;;;;N;;;;;
+ 140A1;EGYPTIAN HIEROGLYPH-140A1;Lo;0;L;;;;;N;;;;;
+ 140A2;EGYPTIAN HIEROGLYPH-140A2;Lo;0;L;;;;;N;;;;;
+ 140A3;EGYPTIAN HIEROGLYPH-140A3;Lo;0;L;;;;;N;;;;;
+ 140A4;EGYPTIAN HIEROGLYPH-140A4;Lo;0;L;;;;;N;;;;;
+ 140A5;EGYPTIAN HIEROGLYPH-140A5;Lo;0;L;;;;;N;;;;;
+ 140A6;EGYPTIAN HIEROGLYPH-140A6;Lo;0;L;;;;;N;;;;;
+ 140A7;EGYPTIAN HIEROGLYPH-140A7;Lo;0;L;;;;;N;;;;;
+ 140A8;EGYPTIAN HIEROGLYPH-140A8;Lo;0;L;;;;;N;;;;;
+ 140A9;EGYPTIAN HIEROGLYPH-140A9;Lo;0;L;;;;;N;;;;;
+ 140AA;EGYPTIAN HIEROGLYPH-140AA;Lo;0;L;;;;;N;;;;;
+ 140AB;EGYPTIAN HIEROGLYPH-140AB;Lo;0;L;;;;;N;;;;;
+ 140AC;EGYPTIAN HIEROGLYPH-140AC;Lo;0;L;;;;;N;;;;;
+ 140AD;EGYPTIAN HIEROGLYPH-140AD;Lo;0;L;;;;;N;;;;;
+ 140AE;EGYPTIAN HIEROGLYPH-140AE;Lo;0;L;;;;;N;;;;;
+ 140AF;EGYPTIAN HIEROGLYPH-140AF;Lo;0;L;;;;;N;;;;;
+ 140B0;EGYPTIAN HIEROGLYPH-140B0;Lo;0;L;;;;;N;;;;;
+ 140B1;EGYPTIAN HIEROGLYPH-140B1;Lo;0;L;;;;;N;;;;;
+ 140B2;EGYPTIAN HIEROGLYPH-140B2;Lo;0;L;;;;;N;;;;;
+ 140B3;EGYPTIAN HIEROGLYPH-140B3;Lo;0;L;;;;;N;;;;;
+ 140B4;EGYPTIAN HIEROGLYPH-140B4;Lo;0;L;;;;;N;;;;;
+ 140B5;EGYPTIAN HIEROGLYPH-140B5;Lo;0;L;;;;;N;;;;;
+ 140B6;EGYPTIAN HIEROGLYPH-140B6;Lo;0;L;;;;;N;;;;;
+ 140B7;EGYPTIAN HIEROGLYPH-140B7;Lo;0;L;;;;;N;;;;;
+ 140B8;EGYPTIAN HIEROGLYPH-140B8;Lo;0;L;;;;;N;;;;;
+ 140B9;EGYPTIAN HIEROGLYPH-140B9;Lo;0;L;;;;;N;;;;;
+ 140BA;EGYPTIAN HIEROGLYPH-140BA;Lo;0;L;;;;;N;;;;;
+ 140BB;EGYPTIAN HIEROGLYPH-140BB;Lo;0;L;;;;;N;;;;;
+ 140BC;EGYPTIAN HIEROGLYPH-140BC;Lo;0;L;;;;;N;;;;;
+ 140BD;EGYPTIAN HIEROGLYPH-140BD;Lo;0;L;;;;;N;;;;;
+ 140BE;EGYPTIAN HIEROGLYPH-140BE;Lo;0;L;;;;;N;;;;;
+ 140BF;EGYPTIAN HIEROGLYPH-140BF;Lo;0;L;;;;;N;;;;;
+ 140C0;EGYPTIAN HIEROGLYPH-140C0;Lo;0;L;;;;;N;;;;;
+ 140C1;EGYPTIAN HIEROGLYPH-140C1;Lo;0;L;;;;;N;;;;;
+ 140C2;EGYPTIAN HIEROGLYPH-140C2;Lo;0;L;;;;;N;;;;;
+ 140C3;EGYPTIAN HIEROGLYPH-140C3;Lo;0;L;;;;;N;;;;;
+ 140C4;EGYPTIAN HIEROGLYPH-140C4;Lo;0;L;;;;;N;;;;;
+ 140C5;EGYPTIAN HIEROGLYPH-140C5;Lo;0;L;;;;;N;;;;;
+ 140C6;EGYPTIAN HIEROGLYPH-140C6;Lo;0;L;;;;;N;;;;;
+ 140C7;EGYPTIAN HIEROGLYPH-140C7;Lo;0;L;;;;;N;;;;;
+ 140C8;EGYPTIAN HIEROGLYPH-140C8;Lo;0;L;;;;;N;;;;;
+ 140C9;EGYPTIAN HIEROGLYPH-140C9;Lo;0;L;;;;;N;;;;;
+ 140CA;EGYPTIAN HIEROGLYPH-140CA;Lo;0;L;;;;;N;;;;;
+ 140CB;EGYPTIAN HIEROGLYPH-140CB;Lo;0;L;;;;;N;;;;;
+ 140CC;EGYPTIAN HIEROGLYPH-140CC;Lo;0;L;;;;;N;;;;;
+ 140CD;EGYPTIAN HIEROGLYPH-140CD;Lo;0;L;;;;;N;;;;;
+ 140CE;EGYPTIAN HIEROGLYPH-140CE;Lo;0;L;;;;;N;;;;;
+ 140CF;EGYPTIAN HIEROGLYPH-140CF;Lo;0;L;;;;;N;;;;;
+ 140D0;EGYPTIAN HIEROGLYPH-140D0;Lo;0;L;;;;;N;;;;;
+ 140D1;EGYPTIAN HIEROGLYPH-140D1;Lo;0;L;;;;;N;;;;;
+ 140D2;EGYPTIAN HIEROGLYPH-140D2;Lo;0;L;;;;;N;;;;;
+ 140D3;EGYPTIAN HIEROGLYPH-140D3;Lo;0;L;;;;;N;;;;;
+ 140D4;EGYPTIAN HIEROGLYPH-140D4;Lo;0;L;;;;;N;;;;;
+ 140D5;EGYPTIAN HIEROGLYPH-140D5;Lo;0;L;;;;;N;;;;;
+ 140D6;EGYPTIAN HIEROGLYPH-140D6;Lo;0;L;;;;;N;;;;;
+ 140D7;EGYPTIAN HIEROGLYPH-140D7;Lo;0;L;;;;;N;;;;;
+ 140D8;EGYPTIAN HIEROGLYPH-140D8;Lo;0;L;;;;;N;;;;;
+ 140D9;EGYPTIAN HIEROGLYPH-140D9;Lo;0;L;;;;;N;;;;;
+ 140DA;EGYPTIAN HIEROGLYPH-140DA;Lo;0;L;;;;;N;;;;;
+ 140DB;EGYPTIAN HIEROGLYPH-140DB;Lo;0;L;;;;;N;;;;;
+ 140DC;EGYPTIAN HIEROGLYPH-140DC;Lo;0;L;;;;;N;;;;;
+ 140DD;EGYPTIAN HIEROGLYPH-140DD;Lo;0;L;;;;;N;;;;;
+ 140DE;EGYPTIAN HIEROGLYPH-140DE;Lo;0;L;;;;;N;;;;;
+ 140DF;EGYPTIAN HIEROGLYPH-140DF;Lo;0;L;;;;;N;;;;;
+ 140E0;EGYPTIAN HIEROGLYPH-140E0;Lo;0;L;;;;;N;;;;;
+ 140E1;EGYPTIAN HIEROGLYPH-140E1;Lo;0;L;;;;;N;;;;;
+ 140E2;EGYPTIAN HIEROGLYPH-140E2;Lo;0;L;;;;;N;;;;;
+ 140E3;EGYPTIAN HIEROGLYPH-140E3;Lo;0;L;;;;;N;;;;;
+ 140E4;EGYPTIAN HIEROGLYPH-140E4;Lo;0;L;;;;;N;;;;;
+ 140E5;EGYPTIAN HIEROGLYPH-140E5;Lo;0;L;;;;;N;;;;;
+ 140E6;EGYPTIAN HIEROGLYPH-140E6;Lo;0;L;;;;;N;;;;;
+ 140E7;EGYPTIAN HIEROGLYPH-140E7;Lo;0;L;;;;;N;;;;;
+ 140E8;EGYPTIAN HIEROGLYPH-140E8;Lo;0;L;;;;;N;;;;;
+ 140E9;EGYPTIAN HIEROGLYPH-140E9;Lo;0;L;;;;;N;;;;;
+ 140EA;EGYPTIAN HIEROGLYPH-140EA;Lo;0;L;;;;;N;;;;;
+ 140EB;EGYPTIAN HIEROGLYPH-140EB;Lo;0;L;;;;;N;;;;;
+ 140EC;EGYPTIAN HIEROGLYPH-140EC;Lo;0;L;;;;;N;;;;;
+ 140ED;EGYPTIAN HIEROGLYPH-140ED;Lo;0;L;;;;;N;;;;;
+ 140EE;EGYPTIAN HIEROGLYPH-140EE;Lo;0;L;;;;;N;;;;;
+ 140EF;EGYPTIAN HIEROGLYPH-140EF;Lo;0;L;;;;;N;;;;;
+ 140F0;EGYPTIAN HIEROGLYPH-140F0;Lo;0;L;;;;;N;;;;;
+ 140F1;EGYPTIAN HIEROGLYPH-140F1;Lo;0;L;;;;;N;;;;;
+ 140F2;EGYPTIAN HIEROGLYPH-140F2;Lo;0;L;;;;;N;;;;;
+ 140F3;EGYPTIAN HIEROGLYPH-140F3;Lo;0;L;;;;;N;;;;;
+ 140F4;EGYPTIAN HIEROGLYPH-140F4;Lo;0;L;;;;;N;;;;;
+ 140F5;EGYPTIAN HIEROGLYPH-140F5;Lo;0;L;;;;;N;;;;;
+ 140F6;EGYPTIAN HIEROGLYPH-140F6;Lo;0;L;;;;;N;;;;;
+ 140F7;EGYPTIAN HIEROGLYPH-140F7;Lo;0;L;;;;;N;;;;;
+ 140F8;EGYPTIAN HIEROGLYPH-140F8;Lo;0;L;;;;;N;;;;;
+ 140F9;EGYPTIAN HIEROGLYPH-140F9;Lo;0;L;;;;;N;;;;;
+ 140FA;EGYPTIAN HIEROGLYPH-140FA;Lo;0;L;;;;;N;;;;;
+ 140FB;EGYPTIAN HIEROGLYPH-140FB;Lo;0;L;;;;;N;;;;;
+ 140FC;EGYPTIAN HIEROGLYPH-140FC;Lo;0;L;;;;;N;;;;;
+ 140FD;EGYPTIAN HIEROGLYPH-140FD;Lo;0;L;;;;;N;;;;;
+ 140FE;EGYPTIAN HIEROGLYPH-140FE;Lo;0;L;;;;;N;;;;;
+ 140FF;EGYPTIAN HIEROGLYPH-140FF;Lo;0;L;;;;;N;;;;;
+ 14100;EGYPTIAN HIEROGLYPH-14100;Lo;0;L;;;;;N;;;;;
+ 14101;EGYPTIAN HIEROGLYPH-14101;Lo;0;L;;;;;N;;;;;
+ 14102;EGYPTIAN HIEROGLYPH-14102;Lo;0;L;;;;;N;;;;;
+ 14103;EGYPTIAN HIEROGLYPH-14103;Lo;0;L;;;;;N;;;;;
+ 14104;EGYPTIAN HIEROGLYPH-14104;Lo;0;L;;;;;N;;;;;
+ 14105;EGYPTIAN HIEROGLYPH-14105;Lo;0;L;;;;;N;;;;;
+ 14106;EGYPTIAN HIEROGLYPH-14106;Lo;0;L;;;;;N;;;;;
+ 14107;EGYPTIAN HIEROGLYPH-14107;Lo;0;L;;;;;N;;;;;
+ 14108;EGYPTIAN HIEROGLYPH-14108;Lo;0;L;;;;;N;;;;;
+ 14109;EGYPTIAN HIEROGLYPH-14109;Lo;0;L;;;;;N;;;;;
+ 1410A;EGYPTIAN HIEROGLYPH-1410A;Lo;0;L;;;;;N;;;;;
+ 1410B;EGYPTIAN HIEROGLYPH-1410B;Lo;0;L;;;;;N;;;;;
+ 1410C;EGYPTIAN HIEROGLYPH-1410C;Lo;0;L;;;;;N;;;;;
+ 1410D;EGYPTIAN HIEROGLYPH-1410D;Lo;0;L;;;;;N;;;;;
+ 1410E;EGYPTIAN HIEROGLYPH-1410E;Lo;0;L;;;;;N;;;;;
+ 1410F;EGYPTIAN HIEROGLYPH-1410F;Lo;0;L;;;;;N;;;;;
+ 14110;EGYPTIAN HIEROGLYPH-14110;Lo;0;L;;;;;N;;;;;
+ 14111;EGYPTIAN HIEROGLYPH-14111;Lo;0;L;;;;;N;;;;;
+ 14112;EGYPTIAN HIEROGLYPH-14112;Lo;0;L;;;;;N;;;;;
+ 14113;EGYPTIAN HIEROGLYPH-14113;Lo;0;L;;;;;N;;;;;
+ 14114;EGYPTIAN HIEROGLYPH-14114;Lo;0;L;;;;;N;;;;;
+ 14115;EGYPTIAN HIEROGLYPH-14115;Lo;0;L;;;;;N;;;;;
+ 14116;EGYPTIAN HIEROGLYPH-14116;Lo;0;L;;;;;N;;;;;
+ 14117;EGYPTIAN HIEROGLYPH-14117;Lo;0;L;;;;;N;;;;;
+ 14118;EGYPTIAN HIEROGLYPH-14118;Lo;0;L;;;;;N;;;;;
+ 14119;EGYPTIAN HIEROGLYPH-14119;Lo;0;L;;;;;N;;;;;
+ 1411A;EGYPTIAN HIEROGLYPH-1411A;Lo;0;L;;;;;N;;;;;
+ 1411B;EGYPTIAN HIEROGLYPH-1411B;Lo;0;L;;;;;N;;;;;
+ 1411C;EGYPTIAN HIEROGLYPH-1411C;Lo;0;L;;;;;N;;;;;
+ 1411D;EGYPTIAN HIEROGLYPH-1411D;Lo;0;L;;;;;N;;;;;
+ 1411E;EGYPTIAN HIEROGLYPH-1411E;Lo;0;L;;;;;N;;;;;
+ 1411F;EGYPTIAN HIEROGLYPH-1411F;Lo;0;L;;;;;N;;;;;
+ 14120;EGYPTIAN HIEROGLYPH-14120;Lo;0;L;;;;;N;;;;;
+ 14121;EGYPTIAN HIEROGLYPH-14121;Lo;0;L;;;;;N;;;;;
+ 14122;EGYPTIAN HIEROGLYPH-14122;Lo;0;L;;;;;N;;;;;
+ 14123;EGYPTIAN HIEROGLYPH-14123;Lo;0;L;;;;;N;;;;;
+ 14124;EGYPTIAN HIEROGLYPH-14124;Lo;0;L;;;;;N;;;;;
+ 14125;EGYPTIAN HIEROGLYPH-14125;Lo;0;L;;;;;N;;;;;
+ 14126;EGYPTIAN HIEROGLYPH-14126;Lo;0;L;;;;;N;;;;;
+ 14127;EGYPTIAN HIEROGLYPH-14127;Lo;0;L;;;;;N;;;;;
+ 14128;EGYPTIAN HIEROGLYPH-14128;Lo;0;L;;;;;N;;;;;
+ 14129;EGYPTIAN HIEROGLYPH-14129;Lo;0;L;;;;;N;;;;;
+ 1412A;EGYPTIAN HIEROGLYPH-1412A;Lo;0;L;;;;;N;;;;;
+ 1412B;EGYPTIAN HIEROGLYPH-1412B;Lo;0;L;;;;;N;;;;;
+ 1412C;EGYPTIAN HIEROGLYPH-1412C;Lo;0;L;;;;;N;;;;;
+ 1412D;EGYPTIAN HIEROGLYPH-1412D;Lo;0;L;;;;;N;;;;;
+ 1412E;EGYPTIAN HIEROGLYPH-1412E;Lo;0;L;;;;;N;;;;;
+ 1412F;EGYPTIAN HIEROGLYPH-1412F;Lo;0;L;;;;;N;;;;;
+ 14130;EGYPTIAN HIEROGLYPH-14130;Lo;0;L;;;;;N;;;;;
+ 14131;EGYPTIAN HIEROGLYPH-14131;Lo;0;L;;;;;N;;;;;
+ 14132;EGYPTIAN HIEROGLYPH-14132;Lo;0;L;;;;;N;;;;;
+ 14133;EGYPTIAN HIEROGLYPH-14133;Lo;0;L;;;;;N;;;;;
+ 14134;EGYPTIAN HIEROGLYPH-14134;Lo;0;L;;;;;N;;;;;
+ 14135;EGYPTIAN HIEROGLYPH-14135;Lo;0;L;;;;;N;;;;;
+ 14136;EGYPTIAN HIEROGLYPH-14136;Lo;0;L;;;;;N;;;;;
+ 14137;EGYPTIAN HIEROGLYPH-14137;Lo;0;L;;;;;N;;;;;
+ 14138;EGYPTIAN HIEROGLYPH-14138;Lo;0;L;;;;;N;;;;;
+ 14139;EGYPTIAN HIEROGLYPH-14139;Lo;0;L;;;;;N;;;;;
+ 1413A;EGYPTIAN HIEROGLYPH-1413A;Lo;0;L;;;;;N;;;;;
+ 1413B;EGYPTIAN HIEROGLYPH-1413B;Lo;0;L;;;;;N;;;;;
+ 1413C;EGYPTIAN HIEROGLYPH-1413C;Lo;0;L;;;;;N;;;;;
+ 1413D;EGYPTIAN HIEROGLYPH-1413D;Lo;0;L;;;;;N;;;;;
+ 1413E;EGYPTIAN HIEROGLYPH-1413E;Lo;0;L;;;;;N;;;;;
+ 1413F;EGYPTIAN HIEROGLYPH-1413F;Lo;0;L;;;;;N;;;;;
+ 14140;EGYPTIAN HIEROGLYPH-14140;Lo;0;L;;;;;N;;;;;
+ 14141;EGYPTIAN HIEROGLYPH-14141;Lo;0;L;;;;;N;;;;;
+ 14142;EGYPTIAN HIEROGLYPH-14142;Lo;0;L;;;;;N;;;;;
+ 14143;EGYPTIAN HIEROGLYPH-14143;Lo;0;L;;;;;N;;;;;
+ 14144;EGYPTIAN HIEROGLYPH-14144;Lo;0;L;;;;;N;;;;;
+ 14145;EGYPTIAN HIEROGLYPH-14145;Lo;0;L;;;;;N;;;;;
+ 14146;EGYPTIAN HIEROGLYPH-14146;Lo;0;L;;;;;N;;;;;
+ 14147;EGYPTIAN HIEROGLYPH-14147;Lo;0;L;;;;;N;;;;;
+ 14148;EGYPTIAN HIEROGLYPH-14148;Lo;0;L;;;;;N;;;;;
+ 14149;EGYPTIAN HIEROGLYPH-14149;Lo;0;L;;;;;N;;;;;
+ 1414A;EGYPTIAN HIEROGLYPH-1414A;Lo;0;L;;;;;N;;;;;
+ 1414B;EGYPTIAN HIEROGLYPH-1414B;Lo;0;L;;;;;N;;;;;
+ 1414C;EGYPTIAN HIEROGLYPH-1414C;Lo;0;L;;;;;N;;;;;
+ 1414D;EGYPTIAN HIEROGLYPH-1414D;Lo;0;L;;;;;N;;;;;
+ 1414E;EGYPTIAN HIEROGLYPH-1414E;Lo;0;L;;;;;N;;;;;
+ 1414F;EGYPTIAN HIEROGLYPH-1414F;Lo;0;L;;;;;N;;;;;
+ 14150;EGYPTIAN HIEROGLYPH-14150;Lo;0;L;;;;;N;;;;;
+ 14151;EGYPTIAN HIEROGLYPH-14151;Lo;0;L;;;;;N;;;;;
+ 14152;EGYPTIAN HIEROGLYPH-14152;Lo;0;L;;;;;N;;;;;
+ 14153;EGYPTIAN HIEROGLYPH-14153;Lo;0;L;;;;;N;;;;;
+ 14154;EGYPTIAN HIEROGLYPH-14154;Lo;0;L;;;;;N;;;;;
+ 14155;EGYPTIAN HIEROGLYPH-14155;Lo;0;L;;;;;N;;;;;
+ 14156;EGYPTIAN HIEROGLYPH-14156;Lo;0;L;;;;;N;;;;;
+ 14157;EGYPTIAN HIEROGLYPH-14157;Lo;0;L;;;;;N;;;;;
+ 14158;EGYPTIAN HIEROGLYPH-14158;Lo;0;L;;;;;N;;;;;
+ 14159;EGYPTIAN HIEROGLYPH-14159;Lo;0;L;;;;;N;;;;;
+ 1415A;EGYPTIAN HIEROGLYPH-1415A;Lo;0;L;;;;;N;;;;;
+ 1415B;EGYPTIAN HIEROGLYPH-1415B;Lo;0;L;;;;;N;;;;;
+ 1415C;EGYPTIAN HIEROGLYPH-1415C;Lo;0;L;;;;;N;;;;;
+ 1415D;EGYPTIAN HIEROGLYPH-1415D;Lo;0;L;;;;;N;;;;;
+ 1415E;EGYPTIAN HIEROGLYPH-1415E;Lo;0;L;;;;;N;;;;;
+ 1415F;EGYPTIAN HIEROGLYPH-1415F;Lo;0;L;;;;;N;;;;;
+ 14160;EGYPTIAN HIEROGLYPH-14160;Lo;0;L;;;;;N;;;;;
+ 14161;EGYPTIAN HIEROGLYPH-14161;Lo;0;L;;;;;N;;;;;
+ 14162;EGYPTIAN HIEROGLYPH-14162;Lo;0;L;;;;;N;;;;;
+ 14163;EGYPTIAN HIEROGLYPH-14163;Lo;0;L;;;;;N;;;;;
+ 14164;EGYPTIAN HIEROGLYPH-14164;Lo;0;L;;;;;N;;;;;
+ 14165;EGYPTIAN HIEROGLYPH-14165;Lo;0;L;;;;;N;;;;;
+ 14166;EGYPTIAN HIEROGLYPH-14166;Lo;0;L;;;;;N;;;;;
+ 14167;EGYPTIAN HIEROGLYPH-14167;Lo;0;L;;;;;N;;;;;
+ 14168;EGYPTIAN HIEROGLYPH-14168;Lo;0;L;;;;;N;;;;;
+ 14169;EGYPTIAN HIEROGLYPH-14169;Lo;0;L;;;;;N;;;;;
+ 1416A;EGYPTIAN HIEROGLYPH-1416A;Lo;0;L;;;;;N;;;;;
+ 1416B;EGYPTIAN HIEROGLYPH-1416B;Lo;0;L;;;;;N;;;;;
+ 1416C;EGYPTIAN HIEROGLYPH-1416C;Lo;0;L;;;;;N;;;;;
+ 1416D;EGYPTIAN HIEROGLYPH-1416D;Lo;0;L;;;;;N;;;;;
+ 1416E;EGYPTIAN HIEROGLYPH-1416E;Lo;0;L;;;;;N;;;;;
+ 1416F;EGYPTIAN HIEROGLYPH-1416F;Lo;0;L;;;;;N;;;;;
+ 14170;EGYPTIAN HIEROGLYPH-14170;Lo;0;L;;;;;N;;;;;
+ 14171;EGYPTIAN HIEROGLYPH-14171;Lo;0;L;;;;;N;;;;;
+ 14172;EGYPTIAN HIEROGLYPH-14172;Lo;0;L;;;;;N;;;;;
+ 14173;EGYPTIAN HIEROGLYPH-14173;Lo;0;L;;;;;N;;;;;
+ 14174;EGYPTIAN HIEROGLYPH-14174;Lo;0;L;;;;;N;;;;;
+ 14175;EGYPTIAN HIEROGLYPH-14175;Lo;0;L;;;;;N;;;;;
+ 14176;EGYPTIAN HIEROGLYPH-14176;Lo;0;L;;;;;N;;;;;
+ 14177;EGYPTIAN HIEROGLYPH-14177;Lo;0;L;;;;;N;;;;;
+ 14178;EGYPTIAN HIEROGLYPH-14178;Lo;0;L;;;;;N;;;;;
+ 14179;EGYPTIAN HIEROGLYPH-14179;Lo;0;L;;;;;N;;;;;
+ 1417A;EGYPTIAN HIEROGLYPH-1417A;Lo;0;L;;;;;N;;;;;
+ 1417B;EGYPTIAN HIEROGLYPH-1417B;Lo;0;L;;;;;N;;;;;
+ 1417C;EGYPTIAN HIEROGLYPH-1417C;Lo;0;L;;;;;N;;;;;
+ 1417D;EGYPTIAN HIEROGLYPH-1417D;Lo;0;L;;;;;N;;;;;
+ 1417E;EGYPTIAN HIEROGLYPH-1417E;Lo;0;L;;;;;N;;;;;
+ 1417F;EGYPTIAN HIEROGLYPH-1417F;Lo;0;L;;;;;N;;;;;
+ 14180;EGYPTIAN HIEROGLYPH-14180;Lo;0;L;;;;;N;;;;;
+ 14181;EGYPTIAN HIEROGLYPH-14181;Lo;0;L;;;;;N;;;;;
+ 14182;EGYPTIAN HIEROGLYPH-14182;Lo;0;L;;;;;N;;;;;
+ 14183;EGYPTIAN HIEROGLYPH-14183;Lo;0;L;;;;;N;;;;;
+ 14184;EGYPTIAN HIEROGLYPH-14184;Lo;0;L;;;;;N;;;;;
+ 14185;EGYPTIAN HIEROGLYPH-14185;Lo;0;L;;;;;N;;;;;
+ 14186;EGYPTIAN HIEROGLYPH-14186;Lo;0;L;;;;;N;;;;;
+ 14187;EGYPTIAN HIEROGLYPH-14187;Lo;0;L;;;;;N;;;;;
+ 14188;EGYPTIAN HIEROGLYPH-14188;Lo;0;L;;;;;N;;;;;
+ 14189;EGYPTIAN HIEROGLYPH-14189;Lo;0;L;;;;;N;;;;;
+ 1418A;EGYPTIAN HIEROGLYPH-1418A;Lo;0;L;;;;;N;;;;;
+ 1418B;EGYPTIAN HIEROGLYPH-1418B;Lo;0;L;;;;;N;;;;;
+ 1418C;EGYPTIAN HIEROGLYPH-1418C;Lo;0;L;;;;;N;;;;;
+ 1418D;EGYPTIAN HIEROGLYPH-1418D;Lo;0;L;;;;;N;;;;;
+ 1418E;EGYPTIAN HIEROGLYPH-1418E;Lo;0;L;;;;;N;;;;;
+ 1418F;EGYPTIAN HIEROGLYPH-1418F;Lo;0;L;;;;;N;;;;;
+ 14190;EGYPTIAN HIEROGLYPH-14190;Lo;0;L;;;;;N;;;;;
+ 14191;EGYPTIAN HIEROGLYPH-14191;Lo;0;L;;;;;N;;;;;
+ 14192;EGYPTIAN HIEROGLYPH-14192;Lo;0;L;;;;;N;;;;;
+ 14193;EGYPTIAN HIEROGLYPH-14193;Lo;0;L;;;;;N;;;;;
+ 14194;EGYPTIAN HIEROGLYPH-14194;Lo;0;L;;;;;N;;;;;
+ 14195;EGYPTIAN HIEROGLYPH-14195;Lo;0;L;;;;;N;;;;;
+ 14196;EGYPTIAN HIEROGLYPH-14196;Lo;0;L;;;;;N;;;;;
+ 14197;EGYPTIAN HIEROGLYPH-14197;Lo;0;L;;;;;N;;;;;
+ 14198;EGYPTIAN HIEROGLYPH-14198;Lo;0;L;;;;;N;;;;;
+ 14199;EGYPTIAN HIEROGLYPH-14199;Lo;0;L;;;;;N;;;;;
+ 1419A;EGYPTIAN HIEROGLYPH-1419A;Lo;0;L;;;;;N;;;;;
+ 1419B;EGYPTIAN HIEROGLYPH-1419B;Lo;0;L;;;;;N;;;;;
+ 1419C;EGYPTIAN HIEROGLYPH-1419C;Lo;0;L;;;;;N;;;;;
+ 1419D;EGYPTIAN HIEROGLYPH-1419D;Lo;0;L;;;;;N;;;;;
+ 1419E;EGYPTIAN HIEROGLYPH-1419E;Lo;0;L;;;;;N;;;;;
+ 1419F;EGYPTIAN HIEROGLYPH-1419F;Lo;0;L;;;;;N;;;;;
+ 141A0;EGYPTIAN HIEROGLYPH-141A0;Lo;0;L;;;;;N;;;;;
+ 141A1;EGYPTIAN HIEROGLYPH-141A1;Lo;0;L;;;;;N;;;;;
+ 141A2;EGYPTIAN HIEROGLYPH-141A2;Lo;0;L;;;;;N;;;;;
+ 141A3;EGYPTIAN HIEROGLYPH-141A3;Lo;0;L;;;;;N;;;;;
+ 141A4;EGYPTIAN HIEROGLYPH-141A4;Lo;0;L;;;;;N;;;;;
+ 141A5;EGYPTIAN HIEROGLYPH-141A5;Lo;0;L;;;;;N;;;;;
+ 141A6;EGYPTIAN HIEROGLYPH-141A6;Lo;0;L;;;;;N;;;;;
+ 141A7;EGYPTIAN HIEROGLYPH-141A7;Lo;0;L;;;;;N;;;;;
+ 141A8;EGYPTIAN HIEROGLYPH-141A8;Lo;0;L;;;;;N;;;;;
+ 141A9;EGYPTIAN HIEROGLYPH-141A9;Lo;0;L;;;;;N;;;;;
+ 141AA;EGYPTIAN HIEROGLYPH-141AA;Lo;0;L;;;;;N;;;;;
+ 141AB;EGYPTIAN HIEROGLYPH-141AB;Lo;0;L;;;;;N;;;;;
+ 141AC;EGYPTIAN HIEROGLYPH-141AC;Lo;0;L;;;;;N;;;;;
+ 141AD;EGYPTIAN HIEROGLYPH-141AD;Lo;0;L;;;;;N;;;;;
+ 141AE;EGYPTIAN HIEROGLYPH-141AE;Lo;0;L;;;;;N;;;;;
+ 141AF;EGYPTIAN HIEROGLYPH-141AF;Lo;0;L;;;;;N;;;;;
+ 141B0;EGYPTIAN HIEROGLYPH-141B0;Lo;0;L;;;;;N;;;;;
+ 141B1;EGYPTIAN HIEROGLYPH-141B1;Lo;0;L;;;;;N;;;;;
+ 141B2;EGYPTIAN HIEROGLYPH-141B2;Lo;0;L;;;;;N;;;;;
+ 141B3;EGYPTIAN HIEROGLYPH-141B3;Lo;0;L;;;;;N;;;;;
+ 141B4;EGYPTIAN HIEROGLYPH-141B4;Lo;0;L;;;;;N;;;;;
+ 141B5;EGYPTIAN HIEROGLYPH-141B5;Lo;0;L;;;;;N;;;;;
+ 141B6;EGYPTIAN HIEROGLYPH-141B6;Lo;0;L;;;;;N;;;;;
+ 141B7;EGYPTIAN HIEROGLYPH-141B7;Lo;0;L;;;;;N;;;;;
+ 141B8;EGYPTIAN HIEROGLYPH-141B8;Lo;0;L;;;;;N;;;;;
+ 141B9;EGYPTIAN HIEROGLYPH-141B9;Lo;0;L;;;;;N;;;;;
+ 141BA;EGYPTIAN HIEROGLYPH-141BA;Lo;0;L;;;;;N;;;;;
+ 141BB;EGYPTIAN HIEROGLYPH-141BB;Lo;0;L;;;;;N;;;;;
+ 141BC;EGYPTIAN HIEROGLYPH-141BC;Lo;0;L;;;;;N;;;;;
+ 141BD;EGYPTIAN HIEROGLYPH-141BD;Lo;0;L;;;;;N;;;;;
+ 141BE;EGYPTIAN HIEROGLYPH-141BE;Lo;0;L;;;;;N;;;;;
+ 141BF;EGYPTIAN HIEROGLYPH-141BF;Lo;0;L;;;;;N;;;;;
+ 141C0;EGYPTIAN HIEROGLYPH-141C0;Lo;0;L;;;;;N;;;;;
+ 141C1;EGYPTIAN HIEROGLYPH-141C1;Lo;0;L;;;;;N;;;;;
+ 141C2;EGYPTIAN HIEROGLYPH-141C2;Lo;0;L;;;;;N;;;;;
+ 141C3;EGYPTIAN HIEROGLYPH-141C3;Lo;0;L;;;;;N;;;;;
+ 141C4;EGYPTIAN HIEROGLYPH-141C4;Lo;0;L;;;;;N;;;;;
+ 141C5;EGYPTIAN HIEROGLYPH-141C5;Lo;0;L;;;;;N;;;;;
+ 141C6;EGYPTIAN HIEROGLYPH-141C6;Lo;0;L;;;;;N;;;;;
+ 141C7;EGYPTIAN HIEROGLYPH-141C7;Lo;0;L;;;;;N;;;;;
+ 141C8;EGYPTIAN HIEROGLYPH-141C8;Lo;0;L;;;;;N;;;;;
+ 141C9;EGYPTIAN HIEROGLYPH-141C9;Lo;0;L;;;;;N;;;;;
+ 141CA;EGYPTIAN HIEROGLYPH-141CA;Lo;0;L;;;;;N;;;;;
+ 141CB;EGYPTIAN HIEROGLYPH-141CB;Lo;0;L;;;;;N;;;;;
+ 141CC;EGYPTIAN HIEROGLYPH-141CC;Lo;0;L;;;;;N;;;;;
+ 141CD;EGYPTIAN HIEROGLYPH-141CD;Lo;0;L;;;;;N;;;;;
+ 141CE;EGYPTIAN HIEROGLYPH-141CE;Lo;0;L;;;;;N;;;;;
+ 141CF;EGYPTIAN HIEROGLYPH-141CF;Lo;0;L;;;;;N;;;;;
+ 141D0;EGYPTIAN HIEROGLYPH-141D0;Lo;0;L;;;;;N;;;;;
+ 141D1;EGYPTIAN HIEROGLYPH-141D1;Lo;0;L;;;;;N;;;;;
+ 141D2;EGYPTIAN HIEROGLYPH-141D2;Lo;0;L;;;;;N;;;;;
+ 141D3;EGYPTIAN HIEROGLYPH-141D3;Lo;0;L;;;;;N;;;;;
+ 141D4;EGYPTIAN HIEROGLYPH-141D4;Lo;0;L;;;;;N;;;;;
+ 141D5;EGYPTIAN HIEROGLYPH-141D5;Lo;0;L;;;;;N;;;;;
+ 141D6;EGYPTIAN HIEROGLYPH-141D6;Lo;0;L;;;;;N;;;;;
+ 141D7;EGYPTIAN HIEROGLYPH-141D7;Lo;0;L;;;;;N;;;;;
+ 141D8;EGYPTIAN HIEROGLYPH-141D8;Lo;0;L;;;;;N;;;;;
+ 141D9;EGYPTIAN HIEROGLYPH-141D9;Lo;0;L;;;;;N;;;;;
+ 141DA;EGYPTIAN HIEROGLYPH-141DA;Lo;0;L;;;;;N;;;;;
+ 141DB;EGYPTIAN HIEROGLYPH-141DB;Lo;0;L;;;;;N;;;;;
+ 141DC;EGYPTIAN HIEROGLYPH-141DC;Lo;0;L;;;;;N;;;;;
+ 141DD;EGYPTIAN HIEROGLYPH-141DD;Lo;0;L;;;;;N;;;;;
+ 141DE;EGYPTIAN HIEROGLYPH-141DE;Lo;0;L;;;;;N;;;;;
+ 141DF;EGYPTIAN HIEROGLYPH-141DF;Lo;0;L;;;;;N;;;;;
+ 141E0;EGYPTIAN HIEROGLYPH-141E0;Lo;0;L;;;;;N;;;;;
+ 141E1;EGYPTIAN HIEROGLYPH-141E1;Lo;0;L;;;;;N;;;;;
+ 141E2;EGYPTIAN HIEROGLYPH-141E2;Lo;0;L;;;;;N;;;;;
+ 141E3;EGYPTIAN HIEROGLYPH-141E3;Lo;0;L;;;;;N;;;;;
+ 141E4;EGYPTIAN HIEROGLYPH-141E4;Lo;0;L;;;;;N;;;;;
+ 141E5;EGYPTIAN HIEROGLYPH-141E5;Lo;0;L;;;;;N;;;;;
+ 141E6;EGYPTIAN HIEROGLYPH-141E6;Lo;0;L;;;;;N;;;;;
+ 141E7;EGYPTIAN HIEROGLYPH-141E7;Lo;0;L;;;;;N;;;;;
+ 141E8;EGYPTIAN HIEROGLYPH-141E8;Lo;0;L;;;;;N;;;;;
+ 141E9;EGYPTIAN HIEROGLYPH-141E9;Lo;0;L;;;;;N;;;;;
+ 141EA;EGYPTIAN HIEROGLYPH-141EA;Lo;0;L;;;;;N;;;;;
+ 141EB;EGYPTIAN HIEROGLYPH-141EB;Lo;0;L;;;;;N;;;;;
+ 141EC;EGYPTIAN HIEROGLYPH-141EC;Lo;0;L;;;;;N;;;;;
+ 141ED;EGYPTIAN HIEROGLYPH-141ED;Lo;0;L;;;;;N;;;;;
+ 141EE;EGYPTIAN HIEROGLYPH-141EE;Lo;0;L;;;;;N;;;;;
+ 141EF;EGYPTIAN HIEROGLYPH-141EF;Lo;0;L;;;;;N;;;;;
+ 141F0;EGYPTIAN HIEROGLYPH-141F0;Lo;0;L;;;;;N;;;;;
+ 141F1;EGYPTIAN HIEROGLYPH-141F1;Lo;0;L;;;;;N;;;;;
+ 141F2;EGYPTIAN HIEROGLYPH-141F2;Lo;0;L;;;;;N;;;;;
+ 141F3;EGYPTIAN HIEROGLYPH-141F3;Lo;0;L;;;;;N;;;;;
+ 141F4;EGYPTIAN HIEROGLYPH-141F4;Lo;0;L;;;;;N;;;;;
+ 141F5;EGYPTIAN HIEROGLYPH-141F5;Lo;0;L;;;;;N;;;;;
+ 141F6;EGYPTIAN HIEROGLYPH-141F6;Lo;0;L;;;;;N;;;;;
+ 141F7;EGYPTIAN HIEROGLYPH-141F7;Lo;0;L;;;;;N;;;;;
+ 141F8;EGYPTIAN HIEROGLYPH-141F8;Lo;0;L;;;;;N;;;;;
+ 141F9;EGYPTIAN HIEROGLYPH-141F9;Lo;0;L;;;;;N;;;;;
+ 141FA;EGYPTIAN HIEROGLYPH-141FA;Lo;0;L;;;;;N;;;;;
+ 141FB;EGYPTIAN HIEROGLYPH-141FB;Lo;0;L;;;;;N;;;;;
+ 141FC;EGYPTIAN HIEROGLYPH-141FC;Lo;0;L;;;;;N;;;;;
+ 141FD;EGYPTIAN HIEROGLYPH-141FD;Lo;0;L;;;;;N;;;;;
+ 141FE;EGYPTIAN HIEROGLYPH-141FE;Lo;0;L;;;;;N;;;;;
+ 141FF;EGYPTIAN HIEROGLYPH-141FF;Lo;0;L;;;;;N;;;;;
+ 14200;EGYPTIAN HIEROGLYPH-14200;Lo;0;L;;;;;N;;;;;
+ 14201;EGYPTIAN HIEROGLYPH-14201;Lo;0;L;;;;;N;;;;;
+ 14202;EGYPTIAN HIEROGLYPH-14202;Lo;0;L;;;;;N;;;;;
+ 14203;EGYPTIAN HIEROGLYPH-14203;Lo;0;L;;;;;N;;;;;
+ 14204;EGYPTIAN HIEROGLYPH-14204;Lo;0;L;;;;;N;;;;;
+ 14205;EGYPTIAN HIEROGLYPH-14205;Lo;0;L;;;;;N;;;;;
+ 14206;EGYPTIAN HIEROGLYPH-14206;Lo;0;L;;;;;N;;;;;
+ 14207;EGYPTIAN HIEROGLYPH-14207;Lo;0;L;;;;;N;;;;;
+ 14208;EGYPTIAN HIEROGLYPH-14208;Lo;0;L;;;;;N;;;;;
+ 14209;EGYPTIAN HIEROGLYPH-14209;Lo;0;L;;;;;N;;;;;
+ 1420A;EGYPTIAN HIEROGLYPH-1420A;Lo;0;L;;;;;N;;;;;
+ 1420B;EGYPTIAN HIEROGLYPH-1420B;Lo;0;L;;;;;N;;;;;
+ 1420C;EGYPTIAN HIEROGLYPH-1420C;Lo;0;L;;;;;N;;;;;
+ 1420D;EGYPTIAN HIEROGLYPH-1420D;Lo;0;L;;;;;N;;;;;
+ 1420E;EGYPTIAN HIEROGLYPH-1420E;Lo;0;L;;;;;N;;;;;
+ 1420F;EGYPTIAN HIEROGLYPH-1420F;Lo;0;L;;;;;N;;;;;
+ 14210;EGYPTIAN HIEROGLYPH-14210;Lo;0;L;;;;;N;;;;;
+ 14211;EGYPTIAN HIEROGLYPH-14211;Lo;0;L;;;;;N;;;;;
+ 14212;EGYPTIAN HIEROGLYPH-14212;Lo;0;L;;;;;N;;;;;
+ 14213;EGYPTIAN HIEROGLYPH-14213;Lo;0;L;;;;;N;;;;;
+ 14214;EGYPTIAN HIEROGLYPH-14214;Lo;0;L;;;;;N;;;;;
+ 14215;EGYPTIAN HIEROGLYPH-14215;Lo;0;L;;;;;N;;;;;
+ 14216;EGYPTIAN HIEROGLYPH-14216;Lo;0;L;;;;;N;;;;;
+ 14217;EGYPTIAN HIEROGLYPH-14217;Lo;0;L;;;;;N;;;;;
+ 14218;EGYPTIAN HIEROGLYPH-14218;Lo;0;L;;;;;N;;;;;
+ 14219;EGYPTIAN HIEROGLYPH-14219;Lo;0;L;;;;;N;;;;;
+ 1421A;EGYPTIAN HIEROGLYPH-1421A;Lo;0;L;;;;;N;;;;;
+ 1421B;EGYPTIAN HIEROGLYPH-1421B;Lo;0;L;;;;;N;;;;;
+ 1421C;EGYPTIAN HIEROGLYPH-1421C;Lo;0;L;;;;;N;;;;;
+ 1421D;EGYPTIAN HIEROGLYPH-1421D;Lo;0;L;;;;;N;;;;;
+ 1421E;EGYPTIAN HIEROGLYPH-1421E;Lo;0;L;;;;;N;;;;;
+ 1421F;EGYPTIAN HIEROGLYPH-1421F;Lo;0;L;;;;;N;;;;;
+ 14220;EGYPTIAN HIEROGLYPH-14220;Lo;0;L;;;;;N;;;;;
+ 14221;EGYPTIAN HIEROGLYPH-14221;Lo;0;L;;;;;N;;;;;
+ 14222;EGYPTIAN HIEROGLYPH-14222;Lo;0;L;;;;;N;;;;;
+ 14223;EGYPTIAN HIEROGLYPH-14223;Lo;0;L;;;;;N;;;;;
+ 14224;EGYPTIAN HIEROGLYPH-14224;Lo;0;L;;;;;N;;;;;
+ 14225;EGYPTIAN HIEROGLYPH-14225;Lo;0;L;;;;;N;;;;;
+ 14226;EGYPTIAN HIEROGLYPH-14226;Lo;0;L;;;;;N;;;;;
+ 14227;EGYPTIAN HIEROGLYPH-14227;Lo;0;L;;;;;N;;;;;
+ 14228;EGYPTIAN HIEROGLYPH-14228;Lo;0;L;;;;;N;;;;;
+ 14229;EGYPTIAN HIEROGLYPH-14229;Lo;0;L;;;;;N;;;;;
+ 1422A;EGYPTIAN HIEROGLYPH-1422A;Lo;0;L;;;;;N;;;;;
+ 1422B;EGYPTIAN HIEROGLYPH-1422B;Lo;0;L;;;;;N;;;;;
+ 1422C;EGYPTIAN HIEROGLYPH-1422C;Lo;0;L;;;;;N;;;;;
+ 1422D;EGYPTIAN HIEROGLYPH-1422D;Lo;0;L;;;;;N;;;;;
+ 1422E;EGYPTIAN HIEROGLYPH-1422E;Lo;0;L;;;;;N;;;;;
+ 1422F;EGYPTIAN HIEROGLYPH-1422F;Lo;0;L;;;;;N;;;;;
+ 14230;EGYPTIAN HIEROGLYPH-14230;Lo;0;L;;;;;N;;;;;
+ 14231;EGYPTIAN HIEROGLYPH-14231;Lo;0;L;;;;;N;;;;;
+ 14232;EGYPTIAN HIEROGLYPH-14232;Lo;0;L;;;;;N;;;;;
+ 14233;EGYPTIAN HIEROGLYPH-14233;Lo;0;L;;;;;N;;;;;
+ 14234;EGYPTIAN HIEROGLYPH-14234;Lo;0;L;;;;;N;;;;;
+ 14235;EGYPTIAN HIEROGLYPH-14235;Lo;0;L;;;;;N;;;;;
+ 14236;EGYPTIAN HIEROGLYPH-14236;Lo;0;L;;;;;N;;;;;
+ 14237;EGYPTIAN HIEROGLYPH-14237;Lo;0;L;;;;;N;;;;;
+ 14238;EGYPTIAN HIEROGLYPH-14238;Lo;0;L;;;;;N;;;;;
+ 14239;EGYPTIAN HIEROGLYPH-14239;Lo;0;L;;;;;N;;;;;
+ 1423A;EGYPTIAN HIEROGLYPH-1423A;Lo;0;L;;;;;N;;;;;
+ 1423B;EGYPTIAN HIEROGLYPH-1423B;Lo;0;L;;;;;N;;;;;
+ 1423C;EGYPTIAN HIEROGLYPH-1423C;Lo;0;L;;;;;N;;;;;
+ 1423D;EGYPTIAN HIEROGLYPH-1423D;Lo;0;L;;;;;N;;;;;
+ 1423E;EGYPTIAN HIEROGLYPH-1423E;Lo;0;L;;;;;N;;;;;
+ 1423F;EGYPTIAN HIEROGLYPH-1423F;Lo;0;L;;;;;N;;;;;
+ 14240;EGYPTIAN HIEROGLYPH-14240;Lo;0;L;;;;;N;;;;;
+ 14241;EGYPTIAN HIEROGLYPH-14241;Lo;0;L;;;;;N;;;;;
+ 14242;EGYPTIAN HIEROGLYPH-14242;Lo;0;L;;;;;N;;;;;
+ 14243;EGYPTIAN HIEROGLYPH-14243;Lo;0;L;;;;;N;;;;;
+ 14244;EGYPTIAN HIEROGLYPH-14244;Lo;0;L;;;;;N;;;;;
+ 14245;EGYPTIAN HIEROGLYPH-14245;Lo;0;L;;;;;N;;;;;
+ 14246;EGYPTIAN HIEROGLYPH-14246;Lo;0;L;;;;;N;;;;;
+ 14247;EGYPTIAN HIEROGLYPH-14247;Lo;0;L;;;;;N;;;;;
+ 14248;EGYPTIAN HIEROGLYPH-14248;Lo;0;L;;;;;N;;;;;
+ 14249;EGYPTIAN HIEROGLYPH-14249;Lo;0;L;;;;;N;;;;;
+ 1424A;EGYPTIAN HIEROGLYPH-1424A;Lo;0;L;;;;;N;;;;;
+ 1424B;EGYPTIAN HIEROGLYPH-1424B;Lo;0;L;;;;;N;;;;;
+ 1424C;EGYPTIAN HIEROGLYPH-1424C;Lo;0;L;;;;;N;;;;;
+ 1424D;EGYPTIAN HIEROGLYPH-1424D;Lo;0;L;;;;;N;;;;;
+ 1424E;EGYPTIAN HIEROGLYPH-1424E;Lo;0;L;;;;;N;;;;;
+ 1424F;EGYPTIAN HIEROGLYPH-1424F;Lo;0;L;;;;;N;;;;;
+ 14250;EGYPTIAN HIEROGLYPH-14250;Lo;0;L;;;;;N;;;;;
+ 14251;EGYPTIAN HIEROGLYPH-14251;Lo;0;L;;;;;N;;;;;
+ 14252;EGYPTIAN HIEROGLYPH-14252;Lo;0;L;;;;;N;;;;;
+ 14253;EGYPTIAN HIEROGLYPH-14253;Lo;0;L;;;;;N;;;;;
+ 14254;EGYPTIAN HIEROGLYPH-14254;Lo;0;L;;;;;N;;;;;
+ 14255;EGYPTIAN HIEROGLYPH-14255;Lo;0;L;;;;;N;;;;;
+ 14256;EGYPTIAN HIEROGLYPH-14256;Lo;0;L;;;;;N;;;;;
+ 14257;EGYPTIAN HIEROGLYPH-14257;Lo;0;L;;;;;N;;;;;
+ 14258;EGYPTIAN HIEROGLYPH-14258;Lo;0;L;;;;;N;;;;;
+ 14259;EGYPTIAN HIEROGLYPH-14259;Lo;0;L;;;;;N;;;;;
+ 1425A;EGYPTIAN HIEROGLYPH-1425A;Lo;0;L;;;;;N;;;;;
+ 1425B;EGYPTIAN HIEROGLYPH-1425B;Lo;0;L;;;;;N;;;;;
+ 1425C;EGYPTIAN HIEROGLYPH-1425C;Lo;0;L;;;;;N;;;;;
+ 1425D;EGYPTIAN HIEROGLYPH-1425D;Lo;0;L;;;;;N;;;;;
+ 1425E;EGYPTIAN HIEROGLYPH-1425E;Lo;0;L;;;;;N;;;;;
+ 1425F;EGYPTIAN HIEROGLYPH-1425F;Lo;0;L;;;;;N;;;;;
+ 14260;EGYPTIAN HIEROGLYPH-14260;Lo;0;L;;;;;N;;;;;
+ 14261;EGYPTIAN HIEROGLYPH-14261;Lo;0;L;;;;;N;;;;;
+ 14262;EGYPTIAN HIEROGLYPH-14262;Lo;0;L;;;;;N;;;;;
+ 14263;EGYPTIAN HIEROGLYPH-14263;Lo;0;L;;;;;N;;;;;
+ 14264;EGYPTIAN HIEROGLYPH-14264;Lo;0;L;;;;;N;;;;;
+ 14265;EGYPTIAN HIEROGLYPH-14265;Lo;0;L;;;;;N;;;;;
+ 14266;EGYPTIAN HIEROGLYPH-14266;Lo;0;L;;;;;N;;;;;
+ 14267;EGYPTIAN HIEROGLYPH-14267;Lo;0;L;;;;;N;;;;;
+ 14268;EGYPTIAN HIEROGLYPH-14268;Lo;0;L;;;;;N;;;;;
+ 14269;EGYPTIAN HIEROGLYPH-14269;Lo;0;L;;;;;N;;;;;
+ 1426A;EGYPTIAN HIEROGLYPH-1426A;Lo;0;L;;;;;N;;;;;
+ 1426B;EGYPTIAN HIEROGLYPH-1426B;Lo;0;L;;;;;N;;;;;
+ 1426C;EGYPTIAN HIEROGLYPH-1426C;Lo;0;L;;;;;N;;;;;
+ 1426D;EGYPTIAN HIEROGLYPH-1426D;Lo;0;L;;;;;N;;;;;
+ 1426E;EGYPTIAN HIEROGLYPH-1426E;Lo;0;L;;;;;N;;;;;
+ 1426F;EGYPTIAN HIEROGLYPH-1426F;Lo;0;L;;;;;N;;;;;
+ 14270;EGYPTIAN HIEROGLYPH-14270;Lo;0;L;;;;;N;;;;;
+ 14271;EGYPTIAN HIEROGLYPH-14271;Lo;0;L;;;;;N;;;;;
+ 14272;EGYPTIAN HIEROGLYPH-14272;Lo;0;L;;;;;N;;;;;
+ 14273;EGYPTIAN HIEROGLYPH-14273;Lo;0;L;;;;;N;;;;;
+ 14274;EGYPTIAN HIEROGLYPH-14274;Lo;0;L;;;;;N;;;;;
+ 14275;EGYPTIAN HIEROGLYPH-14275;Lo;0;L;;;;;N;;;;;
+ 14276;EGYPTIAN HIEROGLYPH-14276;Lo;0;L;;;;;N;;;;;
+ 14277;EGYPTIAN HIEROGLYPH-14277;Lo;0;L;;;;;N;;;;;
+ 14278;EGYPTIAN HIEROGLYPH-14278;Lo;0;L;;;;;N;;;;;
+ 14279;EGYPTIAN HIEROGLYPH-14279;Lo;0;L;;;;;N;;;;;
+ 1427A;EGYPTIAN HIEROGLYPH-1427A;Lo;0;L;;;;;N;;;;;
+ 1427B;EGYPTIAN HIEROGLYPH-1427B;Lo;0;L;;;;;N;;;;;
+ 1427C;EGYPTIAN HIEROGLYPH-1427C;Lo;0;L;;;;;N;;;;;
+ 1427D;EGYPTIAN HIEROGLYPH-1427D;Lo;0;L;;;;;N;;;;;
+ 1427E;EGYPTIAN HIEROGLYPH-1427E;Lo;0;L;;;;;N;;;;;
+ 1427F;EGYPTIAN HIEROGLYPH-1427F;Lo;0;L;;;;;N;;;;;
+ 14280;EGYPTIAN HIEROGLYPH-14280;Lo;0;L;;;;;N;;;;;
+ 14281;EGYPTIAN HIEROGLYPH-14281;Lo;0;L;;;;;N;;;;;
+ 14282;EGYPTIAN HIEROGLYPH-14282;Lo;0;L;;;;;N;;;;;
+ 14283;EGYPTIAN HIEROGLYPH-14283;Lo;0;L;;;;;N;;;;;
+ 14284;EGYPTIAN HIEROGLYPH-14284;Lo;0;L;;;;;N;;;;;
+ 14285;EGYPTIAN HIEROGLYPH-14285;Lo;0;L;;;;;N;;;;;
+ 14286;EGYPTIAN HIEROGLYPH-14286;Lo;0;L;;;;;N;;;;;
+ 14287;EGYPTIAN HIEROGLYPH-14287;Lo;0;L;;;;;N;;;;;
+ 14288;EGYPTIAN HIEROGLYPH-14288;Lo;0;L;;;;;N;;;;;
+ 14289;EGYPTIAN HIEROGLYPH-14289;Lo;0;L;;;;;N;;;;;
+ 1428A;EGYPTIAN HIEROGLYPH-1428A;Lo;0;L;;;;;N;;;;;
+ 1428B;EGYPTIAN HIEROGLYPH-1428B;Lo;0;L;;;;;N;;;;;
+ 1428C;EGYPTIAN HIEROGLYPH-1428C;Lo;0;L;;;;;N;;;;;
+ 1428D;EGYPTIAN HIEROGLYPH-1428D;Lo;0;L;;;;;N;;;;;
+ 1428E;EGYPTIAN HIEROGLYPH-1428E;Lo;0;L;;;;;N;;;;;
+ 1428F;EGYPTIAN HIEROGLYPH-1428F;Lo;0;L;;;;;N;;;;;
+ 14290;EGYPTIAN HIEROGLYPH-14290;Lo;0;L;;;;;N;;;;;
+ 14291;EGYPTIAN HIEROGLYPH-14291;Lo;0;L;;;;;N;;;;;
+ 14292;EGYPTIAN HIEROGLYPH-14292;Lo;0;L;;;;;N;;;;;
+ 14293;EGYPTIAN HIEROGLYPH-14293;Lo;0;L;;;;;N;;;;;
+ 14294;EGYPTIAN HIEROGLYPH-14294;Lo;0;L;;;;;N;;;;;
+ 14295;EGYPTIAN HIEROGLYPH-14295;Lo;0;L;;;;;N;;;;;
+ 14296;EGYPTIAN HIEROGLYPH-14296;Lo;0;L;;;;;N;;;;;
+ 14297;EGYPTIAN HIEROGLYPH-14297;Lo;0;L;;;;;N;;;;;
+ 14298;EGYPTIAN HIEROGLYPH-14298;Lo;0;L;;;;;N;;;;;
+ 14299;EGYPTIAN HIEROGLYPH-14299;Lo;0;L;;;;;N;;;;;
+ 1429A;EGYPTIAN HIEROGLYPH-1429A;Lo;0;L;;;;;N;;;;;
+ 1429B;EGYPTIAN HIEROGLYPH-1429B;Lo;0;L;;;;;N;;;;;
+ 1429C;EGYPTIAN HIEROGLYPH-1429C;Lo;0;L;;;;;N;;;;;
+ 1429D;EGYPTIAN HIEROGLYPH-1429D;Lo;0;L;;;;;N;;;;;
+ 1429E;EGYPTIAN HIEROGLYPH-1429E;Lo;0;L;;;;;N;;;;;
+ 1429F;EGYPTIAN HIEROGLYPH-1429F;Lo;0;L;;;;;N;;;;;
+ 142A0;EGYPTIAN HIEROGLYPH-142A0;Lo;0;L;;;;;N;;;;;
+ 142A1;EGYPTIAN HIEROGLYPH-142A1;Lo;0;L;;;;;N;;;;;
+ 142A2;EGYPTIAN HIEROGLYPH-142A2;Lo;0;L;;;;;N;;;;;
+ 142A3;EGYPTIAN HIEROGLYPH-142A3;Lo;0;L;;;;;N;;;;;
+ 142A4;EGYPTIAN HIEROGLYPH-142A4;Lo;0;L;;;;;N;;;;;
+ 142A5;EGYPTIAN HIEROGLYPH-142A5;Lo;0;L;;;;;N;;;;;
+ 142A6;EGYPTIAN HIEROGLYPH-142A6;Lo;0;L;;;;;N;;;;;
+ 142A7;EGYPTIAN HIEROGLYPH-142A7;Lo;0;L;;;;;N;;;;;
+ 142A8;EGYPTIAN HIEROGLYPH-142A8;Lo;0;L;;;;;N;;;;;
+ 142A9;EGYPTIAN HIEROGLYPH-142A9;Lo;0;L;;;;;N;;;;;
+ 142AA;EGYPTIAN HIEROGLYPH-142AA;Lo;0;L;;;;;N;;;;;
+ 142AB;EGYPTIAN HIEROGLYPH-142AB;Lo;0;L;;;;;N;;;;;
+ 142AC;EGYPTIAN HIEROGLYPH-142AC;Lo;0;L;;;;;N;;;;;
+ 142AD;EGYPTIAN HIEROGLYPH-142AD;Lo;0;L;;;;;N;;;;;
+ 142AE;EGYPTIAN HIEROGLYPH-142AE;Lo;0;L;;;;;N;;;;;
+ 142AF;EGYPTIAN HIEROGLYPH-142AF;Lo;0;L;;;;;N;;;;;
+ 142B0;EGYPTIAN HIEROGLYPH-142B0;Lo;0;L;;;;;N;;;;;
+ 142B1;EGYPTIAN HIEROGLYPH-142B1;Lo;0;L;;;;;N;;;;;
+ 142B2;EGYPTIAN HIEROGLYPH-142B2;Lo;0;L;;;;;N;;;;;
+ 142B3;EGYPTIAN HIEROGLYPH-142B3;Lo;0;L;;;;;N;;;;;
+ 142B4;EGYPTIAN HIEROGLYPH-142B4;Lo;0;L;;;;;N;;;;;
+ 142B5;EGYPTIAN HIEROGLYPH-142B5;Lo;0;L;;;;;N;;;;;
+ 142B6;EGYPTIAN HIEROGLYPH-142B6;Lo;0;L;;;;;N;;;;;
+ 142B7;EGYPTIAN HIEROGLYPH-142B7;Lo;0;L;;;;;N;;;;;
+ 142B8;EGYPTIAN HIEROGLYPH-142B8;Lo;0;L;;;;;N;;;;;
+ 142B9;EGYPTIAN HIEROGLYPH-142B9;Lo;0;L;;;;;N;;;;;
+ 142BA;EGYPTIAN HIEROGLYPH-142BA;Lo;0;L;;;;;N;;;;;
+ 142BB;EGYPTIAN HIEROGLYPH-142BB;Lo;0;L;;;;;N;;;;;
+ 142BC;EGYPTIAN HIEROGLYPH-142BC;Lo;0;L;;;;;N;;;;;
+ 142BD;EGYPTIAN HIEROGLYPH-142BD;Lo;0;L;;;;;N;;;;;
+ 142BE;EGYPTIAN HIEROGLYPH-142BE;Lo;0;L;;;;;N;;;;;
+ 142BF;EGYPTIAN HIEROGLYPH-142BF;Lo;0;L;;;;;N;;;;;
+ 142C0;EGYPTIAN HIEROGLYPH-142C0;Lo;0;L;;;;;N;;;;;
+ 142C1;EGYPTIAN HIEROGLYPH-142C1;Lo;0;L;;;;;N;;;;;
+ 142C2;EGYPTIAN HIEROGLYPH-142C2;Lo;0;L;;;;;N;;;;;
+ 142C3;EGYPTIAN HIEROGLYPH-142C3;Lo;0;L;;;;;N;;;;;
+ 142C4;EGYPTIAN HIEROGLYPH-142C4;Lo;0;L;;;;;N;;;;;
+ 142C5;EGYPTIAN HIEROGLYPH-142C5;Lo;0;L;;;;;N;;;;;
+ 142C6;EGYPTIAN HIEROGLYPH-142C6;Lo;0;L;;;;;N;;;;;
+ 142C7;EGYPTIAN HIEROGLYPH-142C7;Lo;0;L;;;;;N;;;;;
+ 142C8;EGYPTIAN HIEROGLYPH-142C8;Lo;0;L;;;;;N;;;;;
+ 142C9;EGYPTIAN HIEROGLYPH-142C9;Lo;0;L;;;;;N;;;;;
+ 142CA;EGYPTIAN HIEROGLYPH-142CA;Lo;0;L;;;;;N;;;;;
+ 142CB;EGYPTIAN HIEROGLYPH-142CB;Lo;0;L;;;;;N;;;;;
+ 142CC;EGYPTIAN HIEROGLYPH-142CC;Lo;0;L;;;;;N;;;;;
+ 142CD;EGYPTIAN HIEROGLYPH-142CD;Lo;0;L;;;;;N;;;;;
+ 142CE;EGYPTIAN HIEROGLYPH-142CE;Lo;0;L;;;;;N;;;;;
+ 142CF;EGYPTIAN HIEROGLYPH-142CF;Lo;0;L;;;;;N;;;;;
+ 142D0;EGYPTIAN HIEROGLYPH-142D0;Lo;0;L;;;;;N;;;;;
+ 142D1;EGYPTIAN HIEROGLYPH-142D1;Lo;0;L;;;;;N;;;;;
+ 142D2;EGYPTIAN HIEROGLYPH-142D2;Lo;0;L;;;;;N;;;;;
+ 142D3;EGYPTIAN HIEROGLYPH-142D3;Lo;0;L;;;;;N;;;;;
+ 142D4;EGYPTIAN HIEROGLYPH-142D4;Lo;0;L;;;;;N;;;;;
+ 142D5;EGYPTIAN HIEROGLYPH-142D5;Lo;0;L;;;;;N;;;;;
+ 142D6;EGYPTIAN HIEROGLYPH-142D6;Lo;0;L;;;;;N;;;;;
+ 142D7;EGYPTIAN HIEROGLYPH-142D7;Lo;0;L;;;;;N;;;;;
+ 142D8;EGYPTIAN HIEROGLYPH-142D8;Lo;0;L;;;;;N;;;;;
+ 142D9;EGYPTIAN HIEROGLYPH-142D9;Lo;0;L;;;;;N;;;;;
+ 142DA;EGYPTIAN HIEROGLYPH-142DA;Lo;0;L;;;;;N;;;;;
+ 142DB;EGYPTIAN HIEROGLYPH-142DB;Lo;0;L;;;;;N;;;;;
+ 142DC;EGYPTIAN HIEROGLYPH-142DC;Lo;0;L;;;;;N;;;;;
+ 142DD;EGYPTIAN HIEROGLYPH-142DD;Lo;0;L;;;;;N;;;;;
+ 142DE;EGYPTIAN HIEROGLYPH-142DE;Lo;0;L;;;;;N;;;;;
+ 142DF;EGYPTIAN HIEROGLYPH-142DF;Lo;0;L;;;;;N;;;;;
+ 142E0;EGYPTIAN HIEROGLYPH-142E0;Lo;0;L;;;;;N;;;;;
+ 142E1;EGYPTIAN HIEROGLYPH-142E1;Lo;0;L;;;;;N;;;;;
+ 142E2;EGYPTIAN HIEROGLYPH-142E2;Lo;0;L;;;;;N;;;;;
+ 142E3;EGYPTIAN HIEROGLYPH-142E3;Lo;0;L;;;;;N;;;;;
+ 142E4;EGYPTIAN HIEROGLYPH-142E4;Lo;0;L;;;;;N;;;;;
+ 142E5;EGYPTIAN HIEROGLYPH-142E5;Lo;0;L;;;;;N;;;;;
+ 142E6;EGYPTIAN HIEROGLYPH-142E6;Lo;0;L;;;;;N;;;;;
+ 142E7;EGYPTIAN HIEROGLYPH-142E7;Lo;0;L;;;;;N;;;;;
+ 142E8;EGYPTIAN HIEROGLYPH-142E8;Lo;0;L;;;;;N;;;;;
+ 142E9;EGYPTIAN HIEROGLYPH-142E9;Lo;0;L;;;;;N;;;;;
+ 142EA;EGYPTIAN HIEROGLYPH-142EA;Lo;0;L;;;;;N;;;;;
+ 142EB;EGYPTIAN HIEROGLYPH-142EB;Lo;0;L;;;;;N;;;;;
+ 142EC;EGYPTIAN HIEROGLYPH-142EC;Lo;0;L;;;;;N;;;;;
+ 142ED;EGYPTIAN HIEROGLYPH-142ED;Lo;0;L;;;;;N;;;;;
+ 142EE;EGYPTIAN HIEROGLYPH-142EE;Lo;0;L;;;;;N;;;;;
+ 142EF;EGYPTIAN HIEROGLYPH-142EF;Lo;0;L;;;;;N;;;;;
+ 142F0;EGYPTIAN HIEROGLYPH-142F0;Lo;0;L;;;;;N;;;;;
+ 142F1;EGYPTIAN HIEROGLYPH-142F1;Lo;0;L;;;;;N;;;;;
+ 142F2;EGYPTIAN HIEROGLYPH-142F2;Lo;0;L;;;;;N;;;;;
+ 142F3;EGYPTIAN HIEROGLYPH-142F3;Lo;0;L;;;;;N;;;;;
+ 142F4;EGYPTIAN HIEROGLYPH-142F4;Lo;0;L;;;;;N;;;;;
+ 142F5;EGYPTIAN HIEROGLYPH-142F5;Lo;0;L;;;;;N;;;;;
+ 142F6;EGYPTIAN HIEROGLYPH-142F6;Lo;0;L;;;;;N;;;;;
+ 142F7;EGYPTIAN HIEROGLYPH-142F7;Lo;0;L;;;;;N;;;;;
+ 142F8;EGYPTIAN HIEROGLYPH-142F8;Lo;0;L;;;;;N;;;;;
+ 142F9;EGYPTIAN HIEROGLYPH-142F9;Lo;0;L;;;;;N;;;;;
+ 142FA;EGYPTIAN HIEROGLYPH-142FA;Lo;0;L;;;;;N;;;;;
+ 142FB;EGYPTIAN HIEROGLYPH-142FB;Lo;0;L;;;;;N;;;;;
+ 142FC;EGYPTIAN HIEROGLYPH-142FC;Lo;0;L;;;;;N;;;;;
+ 142FD;EGYPTIAN HIEROGLYPH-142FD;Lo;0;L;;;;;N;;;;;
+ 142FE;EGYPTIAN HIEROGLYPH-142FE;Lo;0;L;;;;;N;;;;;
+ 142FF;EGYPTIAN HIEROGLYPH-142FF;Lo;0;L;;;;;N;;;;;
+ 14300;EGYPTIAN HIEROGLYPH-14300;Lo;0;L;;;;;N;;;;;
+ 14301;EGYPTIAN HIEROGLYPH-14301;Lo;0;L;;;;;N;;;;;
+ 14302;EGYPTIAN HIEROGLYPH-14302;Lo;0;L;;;;;N;;;;;
+ 14303;EGYPTIAN HIEROGLYPH-14303;Lo;0;L;;;;;N;;;;;
+ 14304;EGYPTIAN HIEROGLYPH-14304;Lo;0;L;;;;;N;;;;;
+ 14305;EGYPTIAN HIEROGLYPH-14305;Lo;0;L;;;;;N;;;;;
+ 14306;EGYPTIAN HIEROGLYPH-14306;Lo;0;L;;;;;N;;;;;
+ 14307;EGYPTIAN HIEROGLYPH-14307;Lo;0;L;;;;;N;;;;;
+ 14308;EGYPTIAN HIEROGLYPH-14308;Lo;0;L;;;;;N;;;;;
+ 14309;EGYPTIAN HIEROGLYPH-14309;Lo;0;L;;;;;N;;;;;
+ 1430A;EGYPTIAN HIEROGLYPH-1430A;Lo;0;L;;;;;N;;;;;
+ 1430B;EGYPTIAN HIEROGLYPH-1430B;Lo;0;L;;;;;N;;;;;
+ 1430C;EGYPTIAN HIEROGLYPH-1430C;Lo;0;L;;;;;N;;;;;
+ 1430D;EGYPTIAN HIEROGLYPH-1430D;Lo;0;L;;;;;N;;;;;
+ 1430E;EGYPTIAN HIEROGLYPH-1430E;Lo;0;L;;;;;N;;;;;
+ 1430F;EGYPTIAN HIEROGLYPH-1430F;Lo;0;L;;;;;N;;;;;
+ 14310;EGYPTIAN HIEROGLYPH-14310;Lo;0;L;;;;;N;;;;;
+ 14311;EGYPTIAN HIEROGLYPH-14311;Lo;0;L;;;;;N;;;;;
+ 14312;EGYPTIAN HIEROGLYPH-14312;Lo;0;L;;;;;N;;;;;
+ 14313;EGYPTIAN HIEROGLYPH-14313;Lo;0;L;;;;;N;;;;;
+ 14314;EGYPTIAN HIEROGLYPH-14314;Lo;0;L;;;;;N;;;;;
+ 14315;EGYPTIAN HIEROGLYPH-14315;Lo;0;L;;;;;N;;;;;
+ 14316;EGYPTIAN HIEROGLYPH-14316;Lo;0;L;;;;;N;;;;;
+ 14317;EGYPTIAN HIEROGLYPH-14317;Lo;0;L;;;;;N;;;;;
+ 14318;EGYPTIAN HIEROGLYPH-14318;Lo;0;L;;;;;N;;;;;
+ 14319;EGYPTIAN HIEROGLYPH-14319;Lo;0;L;;;;;N;;;;;
+ 1431A;EGYPTIAN HIEROGLYPH-1431A;Lo;0;L;;;;;N;;;;;
+ 1431B;EGYPTIAN HIEROGLYPH-1431B;Lo;0;L;;;;;N;;;;;
+ 1431C;EGYPTIAN HIEROGLYPH-1431C;Lo;0;L;;;;;N;;;;;
+ 1431D;EGYPTIAN HIEROGLYPH-1431D;Lo;0;L;;;;;N;;;;;
+ 1431E;EGYPTIAN HIEROGLYPH-1431E;Lo;0;L;;;;;N;;;;;
+ 1431F;EGYPTIAN HIEROGLYPH-1431F;Lo;0;L;;;;;N;;;;;
+ 14320;EGYPTIAN HIEROGLYPH-14320;Lo;0;L;;;;;N;;;;;
+ 14321;EGYPTIAN HIEROGLYPH-14321;Lo;0;L;;;;;N;;;;;
+ 14322;EGYPTIAN HIEROGLYPH-14322;Lo;0;L;;;;;N;;;;;
+ 14323;EGYPTIAN HIEROGLYPH-14323;Lo;0;L;;;;;N;;;;;
+ 14324;EGYPTIAN HIEROGLYPH-14324;Lo;0;L;;;;;N;;;;;
+ 14325;EGYPTIAN HIEROGLYPH-14325;Lo;0;L;;;;;N;;;;;
+ 14326;EGYPTIAN HIEROGLYPH-14326;Lo;0;L;;;;;N;;;;;
+ 14327;EGYPTIAN HIEROGLYPH-14327;Lo;0;L;;;;;N;;;;;
+ 14328;EGYPTIAN HIEROGLYPH-14328;Lo;0;L;;;;;N;;;;;
+ 14329;EGYPTIAN HIEROGLYPH-14329;Lo;0;L;;;;;N;;;;;
+ 1432A;EGYPTIAN HIEROGLYPH-1432A;Lo;0;L;;;;;N;;;;;
+ 1432B;EGYPTIAN HIEROGLYPH-1432B;Lo;0;L;;;;;N;;;;;
+ 1432C;EGYPTIAN HIEROGLYPH-1432C;Lo;0;L;;;;;N;;;;;
+ 1432D;EGYPTIAN HIEROGLYPH-1432D;Lo;0;L;;;;;N;;;;;
+ 1432E;EGYPTIAN HIEROGLYPH-1432E;Lo;0;L;;;;;N;;;;;
+ 1432F;EGYPTIAN HIEROGLYPH-1432F;Lo;0;L;;;;;N;;;;;
+ 14330;EGYPTIAN HIEROGLYPH-14330;Lo;0;L;;;;;N;;;;;
+ 14331;EGYPTIAN HIEROGLYPH-14331;Lo;0;L;;;;;N;;;;;
+ 14332;EGYPTIAN HIEROGLYPH-14332;Lo;0;L;;;;;N;;;;;
+ 14333;EGYPTIAN HIEROGLYPH-14333;Lo;0;L;;;;;N;;;;;
+ 14334;EGYPTIAN HIEROGLYPH-14334;Lo;0;L;;;;;N;;;;;
+ 14335;EGYPTIAN HIEROGLYPH-14335;Lo;0;L;;;;;N;;;;;
+ 14336;EGYPTIAN HIEROGLYPH-14336;Lo;0;L;;;;;N;;;;;
+ 14337;EGYPTIAN HIEROGLYPH-14337;Lo;0;L;;;;;N;;;;;
+ 14338;EGYPTIAN HIEROGLYPH-14338;Lo;0;L;;;;;N;;;;;
+ 14339;EGYPTIAN HIEROGLYPH-14339;Lo;0;L;;;;;N;;;;;
+ 1433A;EGYPTIAN HIEROGLYPH-1433A;Lo;0;L;;;;;N;;;;;
+ 1433B;EGYPTIAN HIEROGLYPH-1433B;Lo;0;L;;;;;N;;;;;
+ 1433C;EGYPTIAN HIEROGLYPH-1433C;Lo;0;L;;;;;N;;;;;
+ 1433D;EGYPTIAN HIEROGLYPH-1433D;Lo;0;L;;;;;N;;;;;
+ 1433E;EGYPTIAN HIEROGLYPH-1433E;Lo;0;L;;;;;N;;;;;
+ 1433F;EGYPTIAN HIEROGLYPH-1433F;Lo;0;L;;;;;N;;;;;
+ 14340;EGYPTIAN HIEROGLYPH-14340;Lo;0;L;;;;;N;;;;;
+ 14341;EGYPTIAN HIEROGLYPH-14341;Lo;0;L;;;;;N;;;;;
+ 14342;EGYPTIAN HIEROGLYPH-14342;Lo;0;L;;;;;N;;;;;
+ 14343;EGYPTIAN HIEROGLYPH-14343;Lo;0;L;;;;;N;;;;;
+ 14344;EGYPTIAN HIEROGLYPH-14344;Lo;0;L;;;;;N;;;;;
+ 14345;EGYPTIAN HIEROGLYPH-14345;Lo;0;L;;;;;N;;;;;
+ 14346;EGYPTIAN HIEROGLYPH-14346;Lo;0;L;;;;;N;;;;;
+ 14347;EGYPTIAN HIEROGLYPH-14347;Lo;0;L;;;;;N;;;;;
+ 14348;EGYPTIAN HIEROGLYPH-14348;Lo;0;L;;;;;N;;;;;
+ 14349;EGYPTIAN HIEROGLYPH-14349;Lo;0;L;;;;;N;;;;;
+ 1434A;EGYPTIAN HIEROGLYPH-1434A;Lo;0;L;;;;;N;;;;;
+ 1434B;EGYPTIAN HIEROGLYPH-1434B;Lo;0;L;;;;;N;;;;;
+ 1434C;EGYPTIAN HIEROGLYPH-1434C;Lo;0;L;;;;;N;;;;;
+ 1434D;EGYPTIAN HIEROGLYPH-1434D;Lo;0;L;;;;;N;;;;;
+ 1434E;EGYPTIAN HIEROGLYPH-1434E;Lo;0;L;;;;;N;;;;;
+ 1434F;EGYPTIAN HIEROGLYPH-1434F;Lo;0;L;;;;;N;;;;;
+ 14350;EGYPTIAN HIEROGLYPH-14350;Lo;0;L;;;;;N;;;;;
+ 14351;EGYPTIAN HIEROGLYPH-14351;Lo;0;L;;;;;N;;;;;
+ 14352;EGYPTIAN HIEROGLYPH-14352;Lo;0;L;;;;;N;;;;;
+ 14353;EGYPTIAN HIEROGLYPH-14353;Lo;0;L;;;;;N;;;;;
+ 14354;EGYPTIAN HIEROGLYPH-14354;Lo;0;L;;;;;N;;;;;
+ 14355;EGYPTIAN HIEROGLYPH-14355;Lo;0;L;;;;;N;;;;;
+ 14356;EGYPTIAN HIEROGLYPH-14356;Lo;0;L;;;;;N;;;;;
+ 14357;EGYPTIAN HIEROGLYPH-14357;Lo;0;L;;;;;N;;;;;
+ 14358;EGYPTIAN HIEROGLYPH-14358;Lo;0;L;;;;;N;;;;;
+ 14359;EGYPTIAN HIEROGLYPH-14359;Lo;0;L;;;;;N;;;;;
+ 1435A;EGYPTIAN HIEROGLYPH-1435A;Lo;0;L;;;;;N;;;;;
+ 1435B;EGYPTIAN HIEROGLYPH-1435B;Lo;0;L;;;;;N;;;;;
+ 1435C;EGYPTIAN HIEROGLYPH-1435C;Lo;0;L;;;;;N;;;;;
+ 1435D;EGYPTIAN HIEROGLYPH-1435D;Lo;0;L;;;;;N;;;;;
+ 1435E;EGYPTIAN HIEROGLYPH-1435E;Lo;0;L;;;;;N;;;;;
+ 1435F;EGYPTIAN HIEROGLYPH-1435F;Lo;0;L;;;;;N;;;;;
+ 14360;EGYPTIAN HIEROGLYPH-14360;Lo;0;L;;;;;N;;;;;
+ 14361;EGYPTIAN HIEROGLYPH-14361;Lo;0;L;;;;;N;;;;;
+ 14362;EGYPTIAN HIEROGLYPH-14362;Lo;0;L;;;;;N;;;;;
+ 14363;EGYPTIAN HIEROGLYPH-14363;Lo;0;L;;;;;N;;;;;
+ 14364;EGYPTIAN HIEROGLYPH-14364;Lo;0;L;;;;;N;;;;;
+ 14365;EGYPTIAN HIEROGLYPH-14365;Lo;0;L;;;;;N;;;;;
+ 14366;EGYPTIAN HIEROGLYPH-14366;Lo;0;L;;;;;N;;;;;
+ 14367;EGYPTIAN HIEROGLYPH-14367;Lo;0;L;;;;;N;;;;;
+ 14368;EGYPTIAN HIEROGLYPH-14368;Lo;0;L;;;;;N;;;;;
+ 14369;EGYPTIAN HIEROGLYPH-14369;Lo;0;L;;;;;N;;;;;
+ 1436A;EGYPTIAN HIEROGLYPH-1436A;Lo;0;L;;;;;N;;;;;
+ 1436B;EGYPTIAN HIEROGLYPH-1436B;Lo;0;L;;;;;N;;;;;
+ 1436C;EGYPTIAN HIEROGLYPH-1436C;Lo;0;L;;;;;N;;;;;
+ 1436D;EGYPTIAN HIEROGLYPH-1436D;Lo;0;L;;;;;N;;;;;
+ 1436E;EGYPTIAN HIEROGLYPH-1436E;Lo;0;L;;;;;N;;;;;
+ 1436F;EGYPTIAN HIEROGLYPH-1436F;Lo;0;L;;;;;N;;;;;
+ 14370;EGYPTIAN HIEROGLYPH-14370;Lo;0;L;;;;;N;;;;;
+ 14371;EGYPTIAN HIEROGLYPH-14371;Lo;0;L;;;;;N;;;;;
+ 14372;EGYPTIAN HIEROGLYPH-14372;Lo;0;L;;;;;N;;;;;
+ 14373;EGYPTIAN HIEROGLYPH-14373;Lo;0;L;;;;;N;;;;;
+ 14374;EGYPTIAN HIEROGLYPH-14374;Lo;0;L;;;;;N;;;;;
+ 14375;EGYPTIAN HIEROGLYPH-14375;Lo;0;L;;;;;N;;;;;
+ 14376;EGYPTIAN HIEROGLYPH-14376;Lo;0;L;;;;;N;;;;;
+ 14377;EGYPTIAN HIEROGLYPH-14377;Lo;0;L;;;;;N;;;;;
+ 14378;EGYPTIAN HIEROGLYPH-14378;Lo;0;L;;;;;N;;;;;
+ 14379;EGYPTIAN HIEROGLYPH-14379;Lo;0;L;;;;;N;;;;;
+ 1437A;EGYPTIAN HIEROGLYPH-1437A;Lo;0;L;;;;;N;;;;;
+ 1437B;EGYPTIAN HIEROGLYPH-1437B;Lo;0;L;;;;;N;;;;;
+ 1437C;EGYPTIAN HIEROGLYPH-1437C;Lo;0;L;;;;;N;;;;;
+ 1437D;EGYPTIAN HIEROGLYPH-1437D;Lo;0;L;;;;;N;;;;;
+ 1437E;EGYPTIAN HIEROGLYPH-1437E;Lo;0;L;;;;;N;;;;;
+ 1437F;EGYPTIAN HIEROGLYPH-1437F;Lo;0;L;;;;;N;;;;;
+ 14380;EGYPTIAN HIEROGLYPH-14380;Lo;0;L;;;;;N;;;;;
+ 14381;EGYPTIAN HIEROGLYPH-14381;Lo;0;L;;;;;N;;;;;
+ 14382;EGYPTIAN HIEROGLYPH-14382;Lo;0;L;;;;;N;;;;;
+ 14383;EGYPTIAN HIEROGLYPH-14383;Lo;0;L;;;;;N;;;;;
+ 14384;EGYPTIAN HIEROGLYPH-14384;Lo;0;L;;;;;N;;;;;
+ 14385;EGYPTIAN HIEROGLYPH-14385;Lo;0;L;;;;;N;;;;;
+ 14386;EGYPTIAN HIEROGLYPH-14386;Lo;0;L;;;;;N;;;;;
+ 14387;EGYPTIAN HIEROGLYPH-14387;Lo;0;L;;;;;N;;;;;
+ 14388;EGYPTIAN HIEROGLYPH-14388;Lo;0;L;;;;;N;;;;;
+ 14389;EGYPTIAN HIEROGLYPH-14389;Lo;0;L;;;;;N;;;;;
+ 1438A;EGYPTIAN HIEROGLYPH-1438A;Lo;0;L;;;;;N;;;;;
+ 1438B;EGYPTIAN HIEROGLYPH-1438B;Lo;0;L;;;;;N;;;;;
+ 1438C;EGYPTIAN HIEROGLYPH-1438C;Lo;0;L;;;;;N;;;;;
+ 1438D;EGYPTIAN HIEROGLYPH-1438D;Lo;0;L;;;;;N;;;;;
+ 1438E;EGYPTIAN HIEROGLYPH-1438E;Lo;0;L;;;;;N;;;;;
+ 1438F;EGYPTIAN HIEROGLYPH-1438F;Lo;0;L;;;;;N;;;;;
+ 14390;EGYPTIAN HIEROGLYPH-14390;Lo;0;L;;;;;N;;;;;
+ 14391;EGYPTIAN HIEROGLYPH-14391;Lo;0;L;;;;;N;;;;;
+ 14392;EGYPTIAN HIEROGLYPH-14392;Lo;0;L;;;;;N;;;;;
+ 14393;EGYPTIAN HIEROGLYPH-14393;Lo;0;L;;;;;N;;;;;
+ 14394;EGYPTIAN HIEROGLYPH-14394;Lo;0;L;;;;;N;;;;;
+ 14395;EGYPTIAN HIEROGLYPH-14395;Lo;0;L;;;;;N;;;;;
+ 14396;EGYPTIAN HIEROGLYPH-14396;Lo;0;L;;;;;N;;;;;
+ 14397;EGYPTIAN HIEROGLYPH-14397;Lo;0;L;;;;;N;;;;;
+ 14398;EGYPTIAN HIEROGLYPH-14398;Lo;0;L;;;;;N;;;;;
+ 14399;EGYPTIAN HIEROGLYPH-14399;Lo;0;L;;;;;N;;;;;
+ 1439A;EGYPTIAN HIEROGLYPH-1439A;Lo;0;L;;;;;N;;;;;
+ 1439B;EGYPTIAN HIEROGLYPH-1439B;Lo;0;L;;;;;N;;;;;
+ 1439C;EGYPTIAN HIEROGLYPH-1439C;Lo;0;L;;;;;N;;;;;
+ 1439D;EGYPTIAN HIEROGLYPH-1439D;Lo;0;L;;;;;N;;;;;
+ 1439E;EGYPTIAN HIEROGLYPH-1439E;Lo;0;L;;;;;N;;;;;
+ 1439F;EGYPTIAN HIEROGLYPH-1439F;Lo;0;L;;;;;N;;;;;
+ 143A0;EGYPTIAN HIEROGLYPH-143A0;Lo;0;L;;;;;N;;;;;
+ 143A1;EGYPTIAN HIEROGLYPH-143A1;Lo;0;L;;;;;N;;;;;
+ 143A2;EGYPTIAN HIEROGLYPH-143A2;Lo;0;L;;;;;N;;;;;
+ 143A3;EGYPTIAN HIEROGLYPH-143A3;Lo;0;L;;;;;N;;;;;
+ 143A4;EGYPTIAN HIEROGLYPH-143A4;Lo;0;L;;;;;N;;;;;
+ 143A5;EGYPTIAN HIEROGLYPH-143A5;Lo;0;L;;;;;N;;;;;
+ 143A6;EGYPTIAN HIEROGLYPH-143A6;Lo;0;L;;;;;N;;;;;
+ 143A7;EGYPTIAN HIEROGLYPH-143A7;Lo;0;L;;;;;N;;;;;
+ 143A8;EGYPTIAN HIEROGLYPH-143A8;Lo;0;L;;;;;N;;;;;
+ 143A9;EGYPTIAN HIEROGLYPH-143A9;Lo;0;L;;;;;N;;;;;
+ 143AA;EGYPTIAN HIEROGLYPH-143AA;Lo;0;L;;;;;N;;;;;
+ 143AB;EGYPTIAN HIEROGLYPH-143AB;Lo;0;L;;;;;N;;;;;
+ 143AC;EGYPTIAN HIEROGLYPH-143AC;Lo;0;L;;;;;N;;;;;
+ 143AD;EGYPTIAN HIEROGLYPH-143AD;Lo;0;L;;;;;N;;;;;
+ 143AE;EGYPTIAN HIEROGLYPH-143AE;Lo;0;L;;;;;N;;;;;
+ 143AF;EGYPTIAN HIEROGLYPH-143AF;Lo;0;L;;;;;N;;;;;
+ 143B0;EGYPTIAN HIEROGLYPH-143B0;Lo;0;L;;;;;N;;;;;
+ 143B1;EGYPTIAN HIEROGLYPH-143B1;Lo;0;L;;;;;N;;;;;
+ 143B2;EGYPTIAN HIEROGLYPH-143B2;Lo;0;L;;;;;N;;;;;
+ 143B3;EGYPTIAN HIEROGLYPH-143B3;Lo;0;L;;;;;N;;;;;
+ 143B4;EGYPTIAN HIEROGLYPH-143B4;Lo;0;L;;;;;N;;;;;
+ 143B5;EGYPTIAN HIEROGLYPH-143B5;Lo;0;L;;;;;N;;;;;
+ 143B6;EGYPTIAN HIEROGLYPH-143B6;Lo;0;L;;;;;N;;;;;
+ 143B7;EGYPTIAN HIEROGLYPH-143B7;Lo;0;L;;;;;N;;;;;
+ 143B8;EGYPTIAN HIEROGLYPH-143B8;Lo;0;L;;;;;N;;;;;
+ 143B9;EGYPTIAN HIEROGLYPH-143B9;Lo;0;L;;;;;N;;;;;
+ 143BA;EGYPTIAN HIEROGLYPH-143BA;Lo;0;L;;;;;N;;;;;
+ 143BB;EGYPTIAN HIEROGLYPH-143BB;Lo;0;L;;;;;N;;;;;
+ 143BC;EGYPTIAN HIEROGLYPH-143BC;Lo;0;L;;;;;N;;;;;
+ 143BD;EGYPTIAN HIEROGLYPH-143BD;Lo;0;L;;;;;N;;;;;
+ 143BE;EGYPTIAN HIEROGLYPH-143BE;Lo;0;L;;;;;N;;;;;
+ 143BF;EGYPTIAN HIEROGLYPH-143BF;Lo;0;L;;;;;N;;;;;
+ 143C0;EGYPTIAN HIEROGLYPH-143C0;Lo;0;L;;;;;N;;;;;
+ 143C1;EGYPTIAN HIEROGLYPH-143C1;Lo;0;L;;;;;N;;;;;
+ 143C2;EGYPTIAN HIEROGLYPH-143C2;Lo;0;L;;;;;N;;;;;
+ 143C3;EGYPTIAN HIEROGLYPH-143C3;Lo;0;L;;;;;N;;;;;
+ 143C4;EGYPTIAN HIEROGLYPH-143C4;Lo;0;L;;;;;N;;;;;
+ 143C5;EGYPTIAN HIEROGLYPH-143C5;Lo;0;L;;;;;N;;;;;
+ 143C6;EGYPTIAN HIEROGLYPH-143C6;Lo;0;L;;;;;N;;;;;
+ 143C7;EGYPTIAN HIEROGLYPH-143C7;Lo;0;L;;;;;N;;;;;
+ 143C8;EGYPTIAN HIEROGLYPH-143C8;Lo;0;L;;;;;N;;;;;
+ 143C9;EGYPTIAN HIEROGLYPH-143C9;Lo;0;L;;;;;N;;;;;
+ 143CA;EGYPTIAN HIEROGLYPH-143CA;Lo;0;L;;;;;N;;;;;
+ 143CB;EGYPTIAN HIEROGLYPH-143CB;Lo;0;L;;;;;N;;;;;
+ 143CC;EGYPTIAN HIEROGLYPH-143CC;Lo;0;L;;;;;N;;;;;
+ 143CD;EGYPTIAN HIEROGLYPH-143CD;Lo;0;L;;;;;N;;;;;
+ 143CE;EGYPTIAN HIEROGLYPH-143CE;Lo;0;L;;;;;N;;;;;
+ 143CF;EGYPTIAN HIEROGLYPH-143CF;Lo;0;L;;;;;N;;;;;
+ 143D0;EGYPTIAN HIEROGLYPH-143D0;Lo;0;L;;;;;N;;;;;
+ 143D1;EGYPTIAN HIEROGLYPH-143D1;Lo;0;L;;;;;N;;;;;
+ 143D2;EGYPTIAN HIEROGLYPH-143D2;Lo;0;L;;;;;N;;;;;
+ 143D3;EGYPTIAN HIEROGLYPH-143D3;Lo;0;L;;;;;N;;;;;
+ 143D4;EGYPTIAN HIEROGLYPH-143D4;Lo;0;L;;;;;N;;;;;
+ 143D5;EGYPTIAN HIEROGLYPH-143D5;Lo;0;L;;;;;N;;;;;
+ 143D6;EGYPTIAN HIEROGLYPH-143D6;Lo;0;L;;;;;N;;;;;
+ 143D7;EGYPTIAN HIEROGLYPH-143D7;Lo;0;L;;;;;N;;;;;
+ 143D8;EGYPTIAN HIEROGLYPH-143D8;Lo;0;L;;;;;N;;;;;
+ 143D9;EGYPTIAN HIEROGLYPH-143D9;Lo;0;L;;;;;N;;;;;
+ 143DA;EGYPTIAN HIEROGLYPH-143DA;Lo;0;L;;;;;N;;;;;
+ 143DB;EGYPTIAN HIEROGLYPH-143DB;Lo;0;L;;;;;N;;;;;
+ 143DC;EGYPTIAN HIEROGLYPH-143DC;Lo;0;L;;;;;N;;;;;
+ 143DD;EGYPTIAN HIEROGLYPH-143DD;Lo;0;L;;;;;N;;;;;
+ 143DE;EGYPTIAN HIEROGLYPH-143DE;Lo;0;L;;;;;N;;;;;
+ 143DF;EGYPTIAN HIEROGLYPH-143DF;Lo;0;L;;;;;N;;;;;
+ 143E0;EGYPTIAN HIEROGLYPH-143E0;Lo;0;L;;;;;N;;;;;
+ 143E1;EGYPTIAN HIEROGLYPH-143E1;Lo;0;L;;;;;N;;;;;
+ 143E2;EGYPTIAN HIEROGLYPH-143E2;Lo;0;L;;;;;N;;;;;
+ 143E3;EGYPTIAN HIEROGLYPH-143E3;Lo;0;L;;;;;N;;;;;
+ 143E4;EGYPTIAN HIEROGLYPH-143E4;Lo;0;L;;;;;N;;;;;
+ 143E5;EGYPTIAN HIEROGLYPH-143E5;Lo;0;L;;;;;N;;;;;
+ 143E6;EGYPTIAN HIEROGLYPH-143E6;Lo;0;L;;;;;N;;;;;
+ 143E7;EGYPTIAN HIEROGLYPH-143E7;Lo;0;L;;;;;N;;;;;
+ 143E8;EGYPTIAN HIEROGLYPH-143E8;Lo;0;L;;;;;N;;;;;
+ 143E9;EGYPTIAN HIEROGLYPH-143E9;Lo;0;L;;;;;N;;;;;
+ 143EA;EGYPTIAN HIEROGLYPH-143EA;Lo;0;L;;;;;N;;;;;
+ 143EB;EGYPTIAN HIEROGLYPH-143EB;Lo;0;L;;;;;N;;;;;
+ 143EC;EGYPTIAN HIEROGLYPH-143EC;Lo;0;L;;;;;N;;;;;
+ 143ED;EGYPTIAN HIEROGLYPH-143ED;Lo;0;L;;;;;N;;;;;
+ 143EE;EGYPTIAN HIEROGLYPH-143EE;Lo;0;L;;;;;N;;;;;
+ 143EF;EGYPTIAN HIEROGLYPH-143EF;Lo;0;L;;;;;N;;;;;
+ 143F0;EGYPTIAN HIEROGLYPH-143F0;Lo;0;L;;;;;N;;;;;
+ 143F1;EGYPTIAN HIEROGLYPH-143F1;Lo;0;L;;;;;N;;;;;
+ 143F2;EGYPTIAN HIEROGLYPH-143F2;Lo;0;L;;;;;N;;;;;
+ 143F3;EGYPTIAN HIEROGLYPH-143F3;Lo;0;L;;;;;N;;;;;
+ 143F4;EGYPTIAN HIEROGLYPH-143F4;Lo;0;L;;;;;N;;;;;
+ 143F5;EGYPTIAN HIEROGLYPH-143F5;Lo;0;L;;;;;N;;;;;
+ 143F6;EGYPTIAN HIEROGLYPH-143F6;Lo;0;L;;;;;N;;;;;
+ 143F7;EGYPTIAN HIEROGLYPH-143F7;Lo;0;L;;;;;N;;;;;
+ 143F8;EGYPTIAN HIEROGLYPH-143F8;Lo;0;L;;;;;N;;;;;
+ 143F9;EGYPTIAN HIEROGLYPH-143F9;Lo;0;L;;;;;N;;;;;
+ 143FA;EGYPTIAN HIEROGLYPH-143FA;Lo;0;L;;;;;N;;;;;
  14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
  14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
  14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 24771,24776 ****
--- 29053,29116 ----
  14644;ANATOLIAN HIEROGLYPH A528;Lo;0;L;;;;;N;;;;;
  14645;ANATOLIAN HIEROGLYPH A529;Lo;0;L;;;;;N;;;;;
  14646;ANATOLIAN HIEROGLYPH A530;Lo;0;L;;;;;N;;;;;
+ 16100;GURUNG KHEMA LETTER A;Lo;0;L;;;;;N;;;;;
+ 16101;GURUNG KHEMA LETTER KA;Lo;0;L;;;;;N;;;;;
+ 16102;GURUNG KHEMA LETTER KHA;Lo;0;L;;;;;N;;;;;
+ 16103;GURUNG KHEMA LETTER GA;Lo;0;L;;;;;N;;;;;
+ 16104;GURUNG KHEMA LETTER GHA;Lo;0;L;;;;;N;;;;;
+ 16105;GURUNG KHEMA LETTER NGA;Lo;0;L;;;;;N;;;;;
+ 16106;GURUNG KHEMA LETTER CA;Lo;0;L;;;;;N;;;;;
+ 16107;GURUNG KHEMA LETTER CHA;Lo;0;L;;;;;N;;;;;
+ 16108;GURUNG KHEMA LETTER JA;Lo;0;L;;;;;N;;;;;
+ 16109;GURUNG KHEMA LETTER JHA;Lo;0;L;;;;;N;;;;;
+ 1610A;GURUNG KHEMA LETTER HA;Lo;0;L;;;;;N;;;;;
+ 1610B;GURUNG KHEMA LETTER TTA;Lo;0;L;;;;;N;;;;;
+ 1610C;GURUNG KHEMA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+ 1610D;GURUNG KHEMA LETTER DDA;Lo;0;L;;;;;N;;;;;
+ 1610E;GURUNG KHEMA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+ 1610F;GURUNG KHEMA LETTER VA;Lo;0;L;;;;;N;;;;;
+ 16110;GURUNG KHEMA LETTER TA;Lo;0;L;;;;;N;;;;;
+ 16111;GURUNG KHEMA LETTER THA;Lo;0;L;;;;;N;;;;;
+ 16112;GURUNG KHEMA LETTER DA;Lo;0;L;;;;;N;;;;;
+ 16113;GURUNG KHEMA LETTER DHA;Lo;0;L;;;;;N;;;;;
+ 16114;GURUNG KHEMA LETTER NA;Lo;0;L;;;;;N;;;;;
+ 16115;GURUNG KHEMA LETTER PA;Lo;0;L;;;;;N;;;;;
+ 16116;GURUNG KHEMA LETTER PHA;Lo;0;L;;;;;N;;;;;
+ 16117;GURUNG KHEMA LETTER BA;Lo;0;L;;;;;N;;;;;
+ 16118;GURUNG KHEMA LETTER BHA;Lo;0;L;;;;;N;;;;;
+ 16119;GURUNG KHEMA LETTER MA;Lo;0;L;;;;;N;;;;;
+ 1611A;GURUNG KHEMA LETTER YA;Lo;0;L;;;;;N;;;;;
+ 1611B;GURUNG KHEMA LETTER RA;Lo;0;L;;;;;N;;;;;
+ 1611C;GURUNG KHEMA LETTER LA;Lo;0;L;;;;;N;;;;;
+ 1611D;GURUNG KHEMA LETTER SA;Lo;0;L;;;;;N;;;;;
+ 1611E;GURUNG KHEMA VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+ 1611F;GURUNG KHEMA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+ 16120;GURUNG KHEMA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+ 16121;GURUNG KHEMA VOWEL SIGN U;Mn;0;NSM;1611E 1611E;;;;N;;;;;
+ 16122;GURUNG KHEMA VOWEL SIGN UU;Mn;0;NSM;1611E 16129;;;;N;;;;;
+ 16123;GURUNG KHEMA VOWEL SIGN E;Mn;0;NSM;1611E 1611F;;;;N;;;;;
+ 16124;GURUNG KHEMA VOWEL SIGN EE;Mn;0;NSM;16129 1611F;;;;N;;;;;
+ 16125;GURUNG KHEMA VOWEL SIGN AI;Mn;0;NSM;1611E 16120;;;;N;;;;;
+ 16126;GURUNG KHEMA VOWEL SIGN O;Mn;0;NSM;16121 1611F;;;;N;;;;;
+ 16127;GURUNG KHEMA VOWEL SIGN OO;Mn;0;NSM;16122 1611F;;;;N;;;;;
+ 16128;GURUNG KHEMA VOWEL SIGN AU;Mn;0;NSM;16121 16120;;;;N;;;;;
+ 16129;GURUNG KHEMA VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+ 1612A;GURUNG KHEMA CONSONANT SIGN MEDIAL YA;Mc;0;L;;;;;N;;;;;
+ 1612B;GURUNG KHEMA CONSONANT SIGN MEDIAL VA;Mc;0;L;;;;;N;;;;;
+ 1612C;GURUNG KHEMA CONSONANT SIGN MEDIAL HA;Mc;0;L;;;;;N;;;;;
+ 1612D;GURUNG KHEMA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+ 1612E;GURUNG KHEMA CONSONANT SIGN MEDIAL RA;Mn;0;NSM;;;;;N;;;;;
+ 1612F;GURUNG KHEMA SIGN THOLHOMA;Mn;9;NSM;;;;;N;;;;;
+ 16130;GURUNG KHEMA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 16131;GURUNG KHEMA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 16132;GURUNG KHEMA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 16133;GURUNG KHEMA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 16134;GURUNG KHEMA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 16135;GURUNG KHEMA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 16136;GURUNG KHEMA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 16137;GURUNG KHEMA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 16138;GURUNG KHEMA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 16139;GURUNG KHEMA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
  16800;BAMUM LETTER PHASE-A NGKUE MFON;Lo;0;L;;;;;N;;;;;
  16801;BAMUM LETTER PHASE-A GBIEE FON;Lo;0;L;;;;;N;;;;;
  16802;BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 25635,25640 ****
--- 29975,30038 ----
  16B8D;PAHAWH HMONG CLAN SIGN TSWB;Lo;0;L;;;;;N;;;;;
  16B8E;PAHAWH HMONG CLAN SIGN KWM;Lo;0;L;;;;;N;;;;;
  16B8F;PAHAWH HMONG CLAN SIGN VWJ;Lo;0;L;;;;;N;;;;;
+ 16D40;KIRAT RAI SIGN ANUSVARA;Lm;0;L;;;;;N;;;;;
+ 16D41;KIRAT RAI SIGN TONPI;Lm;0;L;;;;;N;;;;;
+ 16D42;KIRAT RAI SIGN VISARGA;Lm;0;L;;;;;N;;;;;
+ 16D43;KIRAT RAI LETTER A;Lo;0;L;;;;;N;;;;;
+ 16D44;KIRAT RAI LETTER KA;Lo;0;L;;;;;N;;;;;
+ 16D45;KIRAT RAI LETTER KHA;Lo;0;L;;;;;N;;;;;
+ 16D46;KIRAT RAI LETTER GA;Lo;0;L;;;;;N;;;;;
+ 16D47;KIRAT RAI LETTER GHA;Lo;0;L;;;;;N;;;;;
+ 16D48;KIRAT RAI LETTER NGA;Lo;0;L;;;;;N;;;;;
+ 16D49;KIRAT RAI LETTER CA;Lo;0;L;;;;;N;;;;;
+ 16D4A;KIRAT RAI LETTER CHA;Lo;0;L;;;;;N;;;;;
+ 16D4B;KIRAT RAI LETTER JA;Lo;0;L;;;;;N;;;;;
+ 16D4C;KIRAT RAI LETTER JHA;Lo;0;L;;;;;N;;;;;
+ 16D4D;KIRAT RAI LETTER NYA;Lo;0;L;;;;;N;;;;;
+ 16D4E;KIRAT RAI LETTER TTA;Lo;0;L;;;;;N;;;;;
+ 16D4F;KIRAT RAI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+ 16D50;KIRAT RAI LETTER DDA;Lo;0;L;;;;;N;;;;;
+ 16D51;KIRAT RAI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+ 16D52;KIRAT RAI LETTER TA;Lo;0;L;;;;;N;;;;;
+ 16D53;KIRAT RAI LETTER THA;Lo;0;L;;;;;N;;;;;
+ 16D54;KIRAT RAI LETTER DA;Lo;0;L;;;;;N;;;;;
+ 16D55;KIRAT RAI LETTER DHA;Lo;0;L;;;;;N;;;;;
+ 16D56;KIRAT RAI LETTER NA;Lo;0;L;;;;;N;;;;;
+ 16D57;KIRAT RAI LETTER PA;Lo;0;L;;;;;N;;;;;
+ 16D58;KIRAT RAI LETTER PHA;Lo;0;L;;;;;N;;;;;
+ 16D59;KIRAT RAI LETTER BA;Lo;0;L;;;;;N;;;;;
+ 16D5A;KIRAT RAI LETTER BHA;Lo;0;L;;;;;N;;;;;
+ 16D5B;KIRAT RAI LETTER MA;Lo;0;L;;;;;N;;;;;
+ 16D5C;KIRAT RAI LETTER YA;Lo;0;L;;;;;N;;;;;
+ 16D5D;KIRAT RAI LETTER RA;Lo;0;L;;;;;N;;;;;
+ 16D5E;KIRAT RAI LETTER LA;Lo;0;L;;;;;N;;;;;
+ 16D5F;KIRAT RAI LETTER VA;Lo;0;L;;;;;N;;;;;
+ 16D60;KIRAT RAI LETTER SA;Lo;0;L;;;;;N;;;;;
+ 16D61;KIRAT RAI LETTER SHA;Lo;0;L;;;;;N;;;;;
+ 16D62;KIRAT RAI LETTER HA;Lo;0;L;;;;;N;;;;;
+ 16D63;KIRAT RAI VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+ 16D64;KIRAT RAI VOWEL SIGN I;Lo;0;L;;;;;N;;;;;
+ 16D65;KIRAT RAI VOWEL SIGN U;Lo;0;L;;;;;N;;;;;
+ 16D66;KIRAT RAI VOWEL SIGN UE;Lo;0;L;;;;;N;;;;;
+ 16D67;KIRAT RAI VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+ 16D68;KIRAT RAI VOWEL SIGN AI;Lo;0;L;16D67 16D67;;;;N;;;;;
+ 16D69;KIRAT RAI VOWEL SIGN O;Lo;0;L;16D63 16D67;;;;N;;;;;
+ 16D6A;KIRAT RAI VOWEL SIGN AU;Lo;0;L;16D69 16D67;;;;N;;;;;
+ 16D6B;KIRAT RAI SIGN VIRAMA;Lm;0;L;;;;;N;;;;;
+ 16D6C;KIRAT RAI SIGN SAAT;Lm;0;L;;;;;N;;;;;
+ 16D6D;KIRAT RAI SIGN YUPI;Po;0;L;;;;;N;;;;;
+ 16D6E;KIRAT RAI DANDA;Po;0;L;;;;;N;;;;;
+ 16D6F;KIRAT RAI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+ 16D70;KIRAT RAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 16D71;KIRAT RAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 16D72;KIRAT RAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 16D73;KIRAT RAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 16D74;KIRAT RAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 16D75;KIRAT RAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 16D76;KIRAT RAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 16D77;KIRAT RAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 16D78;KIRAT RAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 16D79;KIRAT RAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
  16E40;MEDEFAIDRIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;16E60;
  16E41;MEDEFAIDRIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;16E61;
  16E42;MEDEFAIDRIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;16E62;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 27122,27127 ****
--- 31520,31526 ----
  18CD3;KHITAN SMALL SCRIPT CHARACTER-18CD3;Lo;0;L;;;;;N;;;;;
  18CD4;KHITAN SMALL SCRIPT CHARACTER-18CD4;Lo;0;L;;;;;N;;;;;
  18CD5;KHITAN SMALL SCRIPT CHARACTER-18CD5;Lo;0;L;;;;;N;;;;;
+ 18CFF;KHITAN SMALL SCRIPT CHARACTER-18CFF;Lo;0;L;;;;;N;;;;;
  18D00;<Tangut Ideograph Supplement, First>;Lo;0;L;;;;;N;;;;;
  18D08;<Tangut Ideograph Supplement, Last>;Lo;0;L;;;;;N;;;;;
  1AFF0;KATAKANA LETTER MINNAN TONE-2;Lm;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 27980,27985 ****
--- 32379,33070 ----
  1BCA1;SHORTHAND FORMAT CONTINUING OVERLAP;Cf;0;BN;;;;;N;;;;;
  1BCA2;SHORTHAND FORMAT DOWN STEP;Cf;0;BN;;;;;N;;;;;
  1BCA3;SHORTHAND FORMAT UP STEP;Cf;0;BN;;;;;N;;;;;
+ 1CC00;UP-POINTING GO-KART;So;0;ON;;;;;N;;;;;
+ 1CC01;RIGHT-POINTING GO-KART;So;0;ON;;;;;N;;;;;
+ 1CC02;LEFT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;;
+ 1CC03;RIGHT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;;
+ 1CC04;DOWN-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;;
+ 1CC05;LOWER HORIZONTAL RULER SEGMENT;So;0;ON;;;;;N;;;;;
+ 1CC06;RIGHT VERTICAL RULER SEGMENT;So;0;ON;;;;;N;;;;;
+ 1CC07;LOWER RIGHT RULER SEGMENT;So;0;ON;;;;;N;;;;;
+ 1CC08;ANTENNA;So;0;ON;;;;;N;;;;;
+ 1CC09;HORIZONTAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;;
+ 1CC0A;VERTICAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;;
+ 1CC0B;LEFT THIRD INDUCTOR;So;0;ON;;;;;N;;;;;
+ 1CC0C;MIDDLE THIRD INDUCTOR;So;0;ON;;;;;N;;;;;
+ 1CC0D;RIGHT THIRD INDUCTOR;So;0;ON;;;;;N;;;;;
+ 1CC0E;LEFT-POINTING DIODE;So;0;ON;;;;;N;;;;;
+ 1CC0F;RIGHT-POINTING DIODE;So;0;ON;;;;;N;;;;;
+ 1CC10;NPN TRANSISTOR;So;0;ON;;;;;N;;;;;
+ 1CC11;PNP TRANSISTOR;So;0;ON;;;;;N;;;;;
+ 1CC12;RECEPTACLE;So;0;ON;;;;;N;;;;;
+ 1CC13;HORIZONTAL CAPACITOR;So;0;ON;;;;;N;;;;;
+ 1CC14;VERTICAL CAPACITOR;So;0;ON;;;;;N;;;;;
+ 1CC15;LOGIC GATE OR;So;0;ON;;;;;N;;;;;
+ 1CC16;LOGIC GATE AND;So;0;ON;;;;;N;;;;;
+ 1CC17;LOGIC GATE INVERTED INPUTS;So;0;ON;;;;;N;;;;;
+ 1CC18;LOGIC GATE INVERTED OUTPUT;So;0;ON;;;;;N;;;;;
+ 1CC19;LOGIC GATE BUFFER;So;0;ON;;;;;N;;;;;
+ 1CC1A;LOGIC GATE BUFFER WITH INVERTED INPUT;So;0;ON;;;;;N;;;;;
+ 1CC1B;BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC1C;BOX DRAWINGS LIGHT HORIZONTAL AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC1D;BOX DRAWINGS LIGHT TOP AND UPPER LEFT;So;0;ON;;;;;N;;;;;
+ 1CC1E;BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1CC1F;BOX DRAWINGS DOUBLE DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1CC20;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC21;SEPARATED BLOCK QUADRANT-1;So;0;ON;;;;;N;;;;;
+ 1CC22;SEPARATED BLOCK QUADRANT-2;So;0;ON;;;;;N;;;;;
+ 1CC23;SEPARATED BLOCK QUADRANT-12;So;0;ON;;;;;N;;;;;
+ 1CC24;SEPARATED BLOCK QUADRANT-3;So;0;ON;;;;;N;;;;;
+ 1CC25;SEPARATED BLOCK QUADRANT-13;So;0;ON;;;;;N;;;;;
+ 1CC26;SEPARATED BLOCK QUADRANT-23;So;0;ON;;;;;N;;;;;
+ 1CC27;SEPARATED BLOCK QUADRANT-123;So;0;ON;;;;;N;;;;;
+ 1CC28;SEPARATED BLOCK QUADRANT-4;So;0;ON;;;;;N;;;;;
+ 1CC29;SEPARATED BLOCK QUADRANT-14;So;0;ON;;;;;N;;;;;
+ 1CC2A;SEPARATED BLOCK QUADRANT-24;So;0;ON;;;;;N;;;;;
+ 1CC2B;SEPARATED BLOCK QUADRANT-124;So;0;ON;;;;;N;;;;;
+ 1CC2C;SEPARATED BLOCK QUADRANT-34;So;0;ON;;;;;N;;;;;
+ 1CC2D;SEPARATED BLOCK QUADRANT-134;So;0;ON;;;;;N;;;;;
+ 1CC2E;SEPARATED BLOCK QUADRANT-234;So;0;ON;;;;;N;;;;;
+ 1CC2F;SEPARATED BLOCK QUADRANT-1234;So;0;ON;;;;;N;;;;;
+ 1CC30;UPPER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC31;UPPER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC32;UPPER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC33;UPPER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC34;UPPER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC35;UPPER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC36;UPPER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC37;UPPER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC38;LOWER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC39;LOWER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3A;LOWER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3B;LOWER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3C;LOWER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3D;LOWER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3E;LOWER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC3F;LOWER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CC40;SPARSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+ 1CC41;SPARSE VERTICAL FILL;So;0;ON;;;;;N;;;;;
+ 1CC42;ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+ 1CC43;DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+ 1CC44;DENSE VERTICAL FILL;So;0;ON;;;;;N;;;;;
+ 1CC45;DENSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+ 1CC46;SPECKLE FILL FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CC47;SPECKLE FILL FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CC48;LEFT-FACING BASSINET;So;0;ON;;;;;N;;;;;
+ 1CC49;RIGHT-FACING BASSINET;So;0;ON;;;;;N;;;;;
+ 1CC4A;FLYING SAUCER WITH BEAMS;So;0;ON;;;;;N;;;;;
+ 1CC4B;FLYING SAUCER WITHOUT BEAMS;So;0;ON;;;;;N;;;;;
+ 1CC4C;ALIEN MONSTER OPEN JAWS;So;0;ON;;;;;N;;;;;
+ 1CC4D;ALIEN MONSTER CLOSED JAWS;So;0;ON;;;;;N;;;;;
+ 1CC4E;ALIEN SQUID OPEN TENTACLES;So;0;ON;;;;;N;;;;;
+ 1CC4F;ALIEN SQUID CLOSED TENTACLES;So;0;ON;;;;;N;;;;;
+ 1CC50;ALIEN CRAB STEPPING RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC51;ALIEN CRAB STEPPING LEFT;So;0;ON;;;;;N;;;;;
+ 1CC52;ALIEN SPIDER CROUCHING;So;0;ON;;;;;N;;;;;
+ 1CC53;ALIEN SPIDER SPREAD;So;0;ON;;;;;N;;;;;
+ 1CC54;ALIEN MONSTER STEP-1;So;0;ON;;;;;N;;;;;
+ 1CC55;ALIEN MONSTER STEP-2;So;0;ON;;;;;N;;;;;
+ 1CC56;LEFT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;;
+ 1CC57;UP-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;;
+ 1CC58;RIGHT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;;
+ 1CC59;DOWN-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;;
+ 1CC5A;TOP HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC5B;TOP HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC5C;TOP HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC5D;BOTTOM HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC5E;BOTTOM HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC5F;BOTTOM HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;;
+ 1CC60;LEFT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;;
+ 1CC61;UP-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;;
+ 1CC62;RIGHT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;;
+ 1CC63;DOWN-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;;
+ 1CC64;MUSHROOM CLOUD;So;0;ON;;;;;N;;;;;
+ 1CC65;LEFT-POINTING RIFLE;So;0;ON;;;;;N;;;;;
+ 1CC66;UP-POINTING RIFLE;So;0;ON;;;;;N;;;;;
+ 1CC67;RIGHT-POINTING RIFLE;So;0;ON;;;;;N;;;;;
+ 1CC68;DOWN-POINTING RIFLE;So;0;ON;;;;;N;;;;;
+ 1CC69;EIGHT RAYS INWARD;So;0;ON;;;;;N;;;;;
+ 1CC6A;EIGHT RAYS OUTWARD;So;0;ON;;;;;N;;;;;
+ 1CC6B;BLACK LARGE CIRCLE MINUS LEFT QUARTER SECTION;So;0;ON;;;;;N;;;;;
+ 1CC6C;BLACK LARGE CIRCLE MINUS UPPER QUARTER SECTION;So;0;ON;;;;;N;;;;;
+ 1CC6D;BLACK LARGE CIRCLE MINUS RIGHT QUARTER SECTION;So;0;ON;;;;;N;;;;;
+ 1CC6E;BLACK LARGE CIRCLE MINUS LOWER QUARTER SECTION;So;0;ON;;;;;N;;;;;
+ 1CC6F;BLACK NEUTRAL FACE;So;0;ON;;;;;N;;;;;
+ 1CC70;LEFT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC71;UP-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC72;RIGHT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC73;DOWN-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC74;LEFT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC75;UP-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC76;RIGHT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC77;DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC78;LEFT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;;
+ 1CC79;UP-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;;
+ 1CC7A;RIGHT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;;
+ 1CC7B;DOWN-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;;
+ 1CC7C;SQUARE SPIRAL FROM TOP LEFT;So;0;ON;;;;;N;;;;;
+ 1CC7D;SQUARE SPIRAL FROM TOP RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC7E;SQUARE SPIRAL FROM BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+ 1CC7F;SQUARE SPIRAL FROM BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+ 1CC80;STRIPED LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+ 1CC81;STRIPED UP-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+ 1CC82;STRIPED RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+ 1CC83;STRIPED DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+ 1CC84;VERTICAL LADDER;So;0;ON;;;;;N;;;;;
+ 1CC85;HORIZONTAL LADDER;So;0;ON;;;;;N;;;;;
+ 1CC86;WHITE LOWER LEFT POINTER;So;0;ON;;;;;N;;;;;
+ 1CC87;WHITE LOWER RIGHT POINTER;So;0;ON;;;;;N;;;;;
+ 1CC88;TWO RINGS ALIGNED HORIZONTALLY;So;0;ON;;;;;N;;;;;
+ 1CC89;SQUARE FOUR CORNER SALTIRES;So;0;ON;;;;;N;;;;;
+ 1CC8A;SQUARE FOUR CORNER DIAGONALS;So;0;ON;;;;;N;;;;;
+ 1CC8B;SQUARE FOUR CORNER BLACK TRIANGLES;So;0;ON;;;;;N;;;;;
+ 1CC8C;SQUARE APERTURE;So;0;ON;;;;;N;;;;;
+ 1CC8D;INVERSE BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+ 1CC8E;LEFT AND UPPER ONE EIGHTH BLOCK CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+ 1CC8F;INVERSE BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+ 1CC90;VERTICAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CC91;HORIZONTAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CC92;LEFT-FACING FISH;So;0;ON;;;;;N;;;;;
+ 1CC93;RIGHT-FACING FISH;So;0;ON;;;;;N;;;;;
+ 1CC94;LEFT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC95;RIGHT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CC96;FLAPPING BIRD;So;0;ON;;;;;N;;;;;
+ 1CC97;LEFT-POINTING RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC98;UP-POINTING RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC99;RIGHT-POINTING RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC9A;DOWN-POINTING RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC9B;HORIZONTAL RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC9C;VERTICAL RACING CAR;So;0;ON;;;;;N;;;;;
+ 1CC9D;VERTICAL GO-KART;So;0;ON;;;;;N;;;;;
+ 1CC9E;LEFT-POINTING TANK;So;0;ON;;;;;N;;;;;
+ 1CC9F;RIGHT-POINTING TANK;So;0;ON;;;;;N;;;;;
+ 1CCA0;LEFT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;;
+ 1CCA1;RIGHT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;;
+ 1CCA2;LEFT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;;
+ 1CCA3;RIGHT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;;
+ 1CCA4;LEFT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;;
+ 1CCA5;RIGHT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;;
+ 1CCA6;UPPER LEFT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;;
+ 1CCA7;UPPER RIGHT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;;
+ 1CCA8;UPPER LEFT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
+ 1CCA9;UPPER RIGHT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
+ 1CCAA;LOWER LEFT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;;
+ 1CCAB;LOWER RIGHT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;;
+ 1CCAC;LOWER LEFT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;;
+ 1CCAD;LOWER RIGHT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;;
+ 1CCAE;LOWER LEFT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CCAF;LOWER RIGHT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+ 1CCB0;LOWER LEFT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;;
+ 1CCB1;LOWER RIGHT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;;
+ 1CCB2;UPPER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;;
+ 1CCB3;UPPER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;;
+ 1CCB4;LOWER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;;
+ 1CCB5;LOWER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;;
+ 1CCB6;UPPER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;;
+ 1CCB7;UPPER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;;
+ 1CCB8;LOWER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;;
+ 1CCB9;LOWER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;;
+ 1CCBA;UPPER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;;
+ 1CCBB;UPPER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;;
+ 1CCBC;LOWER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;;
+ 1CCBD;LOWER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;;
+ 1CCBE;UPPER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;;
+ 1CCBF;UPPER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;;
+ 1CCC0;LOWER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;;
+ 1CCC1;LOWER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;;
+ 1CCC2;UPPER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;;
+ 1CCC3;UPPER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;;
+ 1CCC4;LOWER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;;
+ 1CCC5;LOWER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;;
+ 1CCC6;UPPER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;;
+ 1CCC7;UPPER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;;
+ 1CCC8;LOWER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;;
+ 1CCC9;LOWER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;;
+ 1CCCA;UPPER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCCB;UPPER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCCC;LOWER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCCD;LOWER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCCE;UPPER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;;
+ 1CCCF;UPPER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;;
+ 1CCD0;LOWER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;;
+ 1CCD1;LOWER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;;
+ 1CCD2;UPPER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCD3;UPPER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCD4;LOWER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCD5;LOWER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;;
+ 1CCD6;OUTLINED LATIN CAPITAL LETTER A;So;0;L;<font> 0041;;;;N;;;;;
+ 1CCD7;OUTLINED LATIN CAPITAL LETTER B;So;0;L;<font> 0042;;;;N;;;;;
+ 1CCD8;OUTLINED LATIN CAPITAL LETTER C;So;0;L;<font> 0043;;;;N;;;;;
+ 1CCD9;OUTLINED LATIN CAPITAL LETTER D;So;0;L;<font> 0044;;;;N;;;;;
+ 1CCDA;OUTLINED LATIN CAPITAL LETTER E;So;0;L;<font> 0045;;;;N;;;;;
+ 1CCDB;OUTLINED LATIN CAPITAL LETTER F;So;0;L;<font> 0046;;;;N;;;;;
+ 1CCDC;OUTLINED LATIN CAPITAL LETTER G;So;0;L;<font> 0047;;;;N;;;;;
+ 1CCDD;OUTLINED LATIN CAPITAL LETTER H;So;0;L;<font> 0048;;;;N;;;;;
+ 1CCDE;OUTLINED LATIN CAPITAL LETTER I;So;0;L;<font> 0049;;;;N;;;;;
+ 1CCDF;OUTLINED LATIN CAPITAL LETTER J;So;0;L;<font> 004A;;;;N;;;;;
+ 1CCE0;OUTLINED LATIN CAPITAL LETTER K;So;0;L;<font> 004B;;;;N;;;;;
+ 1CCE1;OUTLINED LATIN CAPITAL LETTER L;So;0;L;<font> 004C;;;;N;;;;;
+ 1CCE2;OUTLINED LATIN CAPITAL LETTER M;So;0;L;<font> 004D;;;;N;;;;;
+ 1CCE3;OUTLINED LATIN CAPITAL LETTER N;So;0;L;<font> 004E;;;;N;;;;;
+ 1CCE4;OUTLINED LATIN CAPITAL LETTER O;So;0;L;<font> 004F;;;;N;;;;;
+ 1CCE5;OUTLINED LATIN CAPITAL LETTER P;So;0;L;<font> 0050;;;;N;;;;;
+ 1CCE6;OUTLINED LATIN CAPITAL LETTER Q;So;0;L;<font> 0051;;;;N;;;;;
+ 1CCE7;OUTLINED LATIN CAPITAL LETTER R;So;0;L;<font> 0052;;;;N;;;;;
+ 1CCE8;OUTLINED LATIN CAPITAL LETTER S;So;0;L;<font> 0053;;;;N;;;;;
+ 1CCE9;OUTLINED LATIN CAPITAL LETTER T;So;0;L;<font> 0054;;;;N;;;;;
+ 1CCEA;OUTLINED LATIN CAPITAL LETTER U;So;0;L;<font> 0055;;;;N;;;;;
+ 1CCEB;OUTLINED LATIN CAPITAL LETTER V;So;0;L;<font> 0056;;;;N;;;;;
+ 1CCEC;OUTLINED LATIN CAPITAL LETTER W;So;0;L;<font> 0057;;;;N;;;;;
+ 1CCED;OUTLINED LATIN CAPITAL LETTER X;So;0;L;<font> 0058;;;;N;;;;;
+ 1CCEE;OUTLINED LATIN CAPITAL LETTER Y;So;0;L;<font> 0059;;;;N;;;;;
+ 1CCEF;OUTLINED LATIN CAPITAL LETTER Z;So;0;L;<font> 005A;;;;N;;;;;
+ 1CCF0;OUTLINED DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+ 1CCF1;OUTLINED DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+ 1CCF2;OUTLINED DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+ 1CCF3;OUTLINED DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+ 1CCF4;OUTLINED DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+ 1CCF5;OUTLINED DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+ 1CCF6;OUTLINED DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+ 1CCF7;OUTLINED DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+ 1CCF8;OUTLINED DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+ 1CCF9;OUTLINED DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+ 1CD00;BLOCK OCTANT-3;So;0;ON;;;;;N;;;;;
+ 1CD01;BLOCK OCTANT-23;So;0;ON;;;;;N;;;;;
+ 1CD02;BLOCK OCTANT-123;So;0;ON;;;;;N;;;;;
+ 1CD03;BLOCK OCTANT-4;So;0;ON;;;;;N;;;;;
+ 1CD04;BLOCK OCTANT-14;So;0;ON;;;;;N;;;;;
+ 1CD05;BLOCK OCTANT-124;So;0;ON;;;;;N;;;;;
+ 1CD06;BLOCK OCTANT-34;So;0;ON;;;;;N;;;;;
+ 1CD07;BLOCK OCTANT-134;So;0;ON;;;;;N;;;;;
+ 1CD08;BLOCK OCTANT-234;So;0;ON;;;;;N;;;;;
+ 1CD09;BLOCK OCTANT-5;So;0;ON;;;;;N;;;;;
+ 1CD0A;BLOCK OCTANT-15;So;0;ON;;;;;N;;;;;
+ 1CD0B;BLOCK OCTANT-25;So;0;ON;;;;;N;;;;;
+ 1CD0C;BLOCK OCTANT-125;So;0;ON;;;;;N;;;;;
+ 1CD0D;BLOCK OCTANT-135;So;0;ON;;;;;N;;;;;
+ 1CD0E;BLOCK OCTANT-235;So;0;ON;;;;;N;;;;;
+ 1CD0F;BLOCK OCTANT-1235;So;0;ON;;;;;N;;;;;
+ 1CD10;BLOCK OCTANT-45;So;0;ON;;;;;N;;;;;
+ 1CD11;BLOCK OCTANT-145;So;0;ON;;;;;N;;;;;
+ 1CD12;BLOCK OCTANT-245;So;0;ON;;;;;N;;;;;
+ 1CD13;BLOCK OCTANT-1245;So;0;ON;;;;;N;;;;;
+ 1CD14;BLOCK OCTANT-345;So;0;ON;;;;;N;;;;;
+ 1CD15;BLOCK OCTANT-1345;So;0;ON;;;;;N;;;;;
+ 1CD16;BLOCK OCTANT-2345;So;0;ON;;;;;N;;;;;
+ 1CD17;BLOCK OCTANT-12345;So;0;ON;;;;;N;;;;;
+ 1CD18;BLOCK OCTANT-6;So;0;ON;;;;;N;;;;;
+ 1CD19;BLOCK OCTANT-16;So;0;ON;;;;;N;;;;;
+ 1CD1A;BLOCK OCTANT-26;So;0;ON;;;;;N;;;;;
+ 1CD1B;BLOCK OCTANT-126;So;0;ON;;;;;N;;;;;
+ 1CD1C;BLOCK OCTANT-36;So;0;ON;;;;;N;;;;;
+ 1CD1D;BLOCK OCTANT-136;So;0;ON;;;;;N;;;;;
+ 1CD1E;BLOCK OCTANT-236;So;0;ON;;;;;N;;;;;
+ 1CD1F;BLOCK OCTANT-1236;So;0;ON;;;;;N;;;;;
+ 1CD20;BLOCK OCTANT-146;So;0;ON;;;;;N;;;;;
+ 1CD21;BLOCK OCTANT-246;So;0;ON;;;;;N;;;;;
+ 1CD22;BLOCK OCTANT-1246;So;0;ON;;;;;N;;;;;
+ 1CD23;BLOCK OCTANT-346;So;0;ON;;;;;N;;;;;
+ 1CD24;BLOCK OCTANT-1346;So;0;ON;;;;;N;;;;;
+ 1CD25;BLOCK OCTANT-2346;So;0;ON;;;;;N;;;;;
+ 1CD26;BLOCK OCTANT-12346;So;0;ON;;;;;N;;;;;
+ 1CD27;BLOCK OCTANT-56;So;0;ON;;;;;N;;;;;
+ 1CD28;BLOCK OCTANT-156;So;0;ON;;;;;N;;;;;
+ 1CD29;BLOCK OCTANT-256;So;0;ON;;;;;N;;;;;
+ 1CD2A;BLOCK OCTANT-1256;So;0;ON;;;;;N;;;;;
+ 1CD2B;BLOCK OCTANT-356;So;0;ON;;;;;N;;;;;
+ 1CD2C;BLOCK OCTANT-1356;So;0;ON;;;;;N;;;;;
+ 1CD2D;BLOCK OCTANT-2356;So;0;ON;;;;;N;;;;;
+ 1CD2E;BLOCK OCTANT-12356;So;0;ON;;;;;N;;;;;
+ 1CD2F;BLOCK OCTANT-456;So;0;ON;;;;;N;;;;;
+ 1CD30;BLOCK OCTANT-1456;So;0;ON;;;;;N;;;;;
+ 1CD31;BLOCK OCTANT-2456;So;0;ON;;;;;N;;;;;
+ 1CD32;BLOCK OCTANT-12456;So;0;ON;;;;;N;;;;;
+ 1CD33;BLOCK OCTANT-3456;So;0;ON;;;;;N;;;;;
+ 1CD34;BLOCK OCTANT-13456;So;0;ON;;;;;N;;;;;
+ 1CD35;BLOCK OCTANT-23456;So;0;ON;;;;;N;;;;;
+ 1CD36;BLOCK OCTANT-17;So;0;ON;;;;;N;;;;;
+ 1CD37;BLOCK OCTANT-27;So;0;ON;;;;;N;;;;;
+ 1CD38;BLOCK OCTANT-127;So;0;ON;;;;;N;;;;;
+ 1CD39;BLOCK OCTANT-37;So;0;ON;;;;;N;;;;;
+ 1CD3A;BLOCK OCTANT-137;So;0;ON;;;;;N;;;;;
+ 1CD3B;BLOCK OCTANT-237;So;0;ON;;;;;N;;;;;
+ 1CD3C;BLOCK OCTANT-1237;So;0;ON;;;;;N;;;;;
+ 1CD3D;BLOCK OCTANT-47;So;0;ON;;;;;N;;;;;
+ 1CD3E;BLOCK OCTANT-147;So;0;ON;;;;;N;;;;;
+ 1CD3F;BLOCK OCTANT-247;So;0;ON;;;;;N;;;;;
+ 1CD40;BLOCK OCTANT-1247;So;0;ON;;;;;N;;;;;
+ 1CD41;BLOCK OCTANT-347;So;0;ON;;;;;N;;;;;
+ 1CD42;BLOCK OCTANT-1347;So;0;ON;;;;;N;;;;;
+ 1CD43;BLOCK OCTANT-2347;So;0;ON;;;;;N;;;;;
+ 1CD44;BLOCK OCTANT-12347;So;0;ON;;;;;N;;;;;
+ 1CD45;BLOCK OCTANT-157;So;0;ON;;;;;N;;;;;
+ 1CD46;BLOCK OCTANT-257;So;0;ON;;;;;N;;;;;
+ 1CD47;BLOCK OCTANT-1257;So;0;ON;;;;;N;;;;;
+ 1CD48;BLOCK OCTANT-357;So;0;ON;;;;;N;;;;;
+ 1CD49;BLOCK OCTANT-2357;So;0;ON;;;;;N;;;;;
+ 1CD4A;BLOCK OCTANT-12357;So;0;ON;;;;;N;;;;;
+ 1CD4B;BLOCK OCTANT-457;So;0;ON;;;;;N;;;;;
+ 1CD4C;BLOCK OCTANT-1457;So;0;ON;;;;;N;;;;;
+ 1CD4D;BLOCK OCTANT-12457;So;0;ON;;;;;N;;;;;
+ 1CD4E;BLOCK OCTANT-3457;So;0;ON;;;;;N;;;;;
+ 1CD4F;BLOCK OCTANT-13457;So;0;ON;;;;;N;;;;;
+ 1CD50;BLOCK OCTANT-23457;So;0;ON;;;;;N;;;;;
+ 1CD51;BLOCK OCTANT-67;So;0;ON;;;;;N;;;;;
+ 1CD52;BLOCK OCTANT-167;So;0;ON;;;;;N;;;;;
+ 1CD53;BLOCK OCTANT-267;So;0;ON;;;;;N;;;;;
+ 1CD54;BLOCK OCTANT-1267;So;0;ON;;;;;N;;;;;
+ 1CD55;BLOCK OCTANT-367;So;0;ON;;;;;N;;;;;
+ 1CD56;BLOCK OCTANT-1367;So;0;ON;;;;;N;;;;;
+ 1CD57;BLOCK OCTANT-2367;So;0;ON;;;;;N;;;;;
+ 1CD58;BLOCK OCTANT-12367;So;0;ON;;;;;N;;;;;
+ 1CD59;BLOCK OCTANT-467;So;0;ON;;;;;N;;;;;
+ 1CD5A;BLOCK OCTANT-1467;So;0;ON;;;;;N;;;;;
+ 1CD5B;BLOCK OCTANT-2467;So;0;ON;;;;;N;;;;;
+ 1CD5C;BLOCK OCTANT-12467;So;0;ON;;;;;N;;;;;
+ 1CD5D;BLOCK OCTANT-3467;So;0;ON;;;;;N;;;;;
+ 1CD5E;BLOCK OCTANT-13467;So;0;ON;;;;;N;;;;;
+ 1CD5F;BLOCK OCTANT-23467;So;0;ON;;;;;N;;;;;
+ 1CD60;BLOCK OCTANT-123467;So;0;ON;;;;;N;;;;;
+ 1CD61;BLOCK OCTANT-567;So;0;ON;;;;;N;;;;;
+ 1CD62;BLOCK OCTANT-1567;So;0;ON;;;;;N;;;;;
+ 1CD63;BLOCK OCTANT-2567;So;0;ON;;;;;N;;;;;
+ 1CD64;BLOCK OCTANT-12567;So;0;ON;;;;;N;;;;;
+ 1CD65;BLOCK OCTANT-3567;So;0;ON;;;;;N;;;;;
+ 1CD66;BLOCK OCTANT-13567;So;0;ON;;;;;N;;;;;
+ 1CD67;BLOCK OCTANT-23567;So;0;ON;;;;;N;;;;;
+ 1CD68;BLOCK OCTANT-123567;So;0;ON;;;;;N;;;;;
+ 1CD69;BLOCK OCTANT-4567;So;0;ON;;;;;N;;;;;
+ 1CD6A;BLOCK OCTANT-14567;So;0;ON;;;;;N;;;;;
+ 1CD6B;BLOCK OCTANT-24567;So;0;ON;;;;;N;;;;;
+ 1CD6C;BLOCK OCTANT-124567;So;0;ON;;;;;N;;;;;
+ 1CD6D;BLOCK OCTANT-34567;So;0;ON;;;;;N;;;;;
+ 1CD6E;BLOCK OCTANT-134567;So;0;ON;;;;;N;;;;;
+ 1CD6F;BLOCK OCTANT-234567;So;0;ON;;;;;N;;;;;
+ 1CD70;BLOCK OCTANT-1234567;So;0;ON;;;;;N;;;;;
+ 1CD71;BLOCK OCTANT-18;So;0;ON;;;;;N;;;;;
+ 1CD72;BLOCK OCTANT-28;So;0;ON;;;;;N;;;;;
+ 1CD73;BLOCK OCTANT-128;So;0;ON;;;;;N;;;;;
+ 1CD74;BLOCK OCTANT-38;So;0;ON;;;;;N;;;;;
+ 1CD75;BLOCK OCTANT-138;So;0;ON;;;;;N;;;;;
+ 1CD76;BLOCK OCTANT-238;So;0;ON;;;;;N;;;;;
+ 1CD77;BLOCK OCTANT-1238;So;0;ON;;;;;N;;;;;
+ 1CD78;BLOCK OCTANT-48;So;0;ON;;;;;N;;;;;
+ 1CD79;BLOCK OCTANT-148;So;0;ON;;;;;N;;;;;
+ 1CD7A;BLOCK OCTANT-248;So;0;ON;;;;;N;;;;;
+ 1CD7B;BLOCK OCTANT-1248;So;0;ON;;;;;N;;;;;
+ 1CD7C;BLOCK OCTANT-348;So;0;ON;;;;;N;;;;;
+ 1CD7D;BLOCK OCTANT-1348;So;0;ON;;;;;N;;;;;
+ 1CD7E;BLOCK OCTANT-2348;So;0;ON;;;;;N;;;;;
+ 1CD7F;BLOCK OCTANT-12348;So;0;ON;;;;;N;;;;;
+ 1CD80;BLOCK OCTANT-58;So;0;ON;;;;;N;;;;;
+ 1CD81;BLOCK OCTANT-158;So;0;ON;;;;;N;;;;;
+ 1CD82;BLOCK OCTANT-258;So;0;ON;;;;;N;;;;;
+ 1CD83;BLOCK OCTANT-1258;So;0;ON;;;;;N;;;;;
+ 1CD84;BLOCK OCTANT-358;So;0;ON;;;;;N;;;;;
+ 1CD85;BLOCK OCTANT-1358;So;0;ON;;;;;N;;;;;
+ 1CD86;BLOCK OCTANT-2358;So;0;ON;;;;;N;;;;;
+ 1CD87;BLOCK OCTANT-12358;So;0;ON;;;;;N;;;;;
+ 1CD88;BLOCK OCTANT-458;So;0;ON;;;;;N;;;;;
+ 1CD89;BLOCK OCTANT-1458;So;0;ON;;;;;N;;;;;
+ 1CD8A;BLOCK OCTANT-2458;So;0;ON;;;;;N;;;;;
+ 1CD8B;BLOCK OCTANT-12458;So;0;ON;;;;;N;;;;;
+ 1CD8C;BLOCK OCTANT-3458;So;0;ON;;;;;N;;;;;
+ 1CD8D;BLOCK OCTANT-13458;So;0;ON;;;;;N;;;;;
+ 1CD8E;BLOCK OCTANT-23458;So;0;ON;;;;;N;;;;;
+ 1CD8F;BLOCK OCTANT-123458;So;0;ON;;;;;N;;;;;
+ 1CD90;BLOCK OCTANT-168;So;0;ON;;;;;N;;;;;
+ 1CD91;BLOCK OCTANT-268;So;0;ON;;;;;N;;;;;
+ 1CD92;BLOCK OCTANT-1268;So;0;ON;;;;;N;;;;;
+ 1CD93;BLOCK OCTANT-368;So;0;ON;;;;;N;;;;;
+ 1CD94;BLOCK OCTANT-2368;So;0;ON;;;;;N;;;;;
+ 1CD95;BLOCK OCTANT-12368;So;0;ON;;;;;N;;;;;
+ 1CD96;BLOCK OCTANT-468;So;0;ON;;;;;N;;;;;
+ 1CD97;BLOCK OCTANT-1468;So;0;ON;;;;;N;;;;;
+ 1CD98;BLOCK OCTANT-12468;So;0;ON;;;;;N;;;;;
+ 1CD99;BLOCK OCTANT-3468;So;0;ON;;;;;N;;;;;
+ 1CD9A;BLOCK OCTANT-13468;So;0;ON;;;;;N;;;;;
+ 1CD9B;BLOCK OCTANT-23468;So;0;ON;;;;;N;;;;;
+ 1CD9C;BLOCK OCTANT-568;So;0;ON;;;;;N;;;;;
+ 1CD9D;BLOCK OCTANT-1568;So;0;ON;;;;;N;;;;;
+ 1CD9E;BLOCK OCTANT-2568;So;0;ON;;;;;N;;;;;
+ 1CD9F;BLOCK OCTANT-12568;So;0;ON;;;;;N;;;;;
+ 1CDA0;BLOCK OCTANT-3568;So;0;ON;;;;;N;;;;;
+ 1CDA1;BLOCK OCTANT-13568;So;0;ON;;;;;N;;;;;
+ 1CDA2;BLOCK OCTANT-23568;So;0;ON;;;;;N;;;;;
+ 1CDA3;BLOCK OCTANT-123568;So;0;ON;;;;;N;;;;;
+ 1CDA4;BLOCK OCTANT-4568;So;0;ON;;;;;N;;;;;
+ 1CDA5;BLOCK OCTANT-14568;So;0;ON;;;;;N;;;;;
+ 1CDA6;BLOCK OCTANT-24568;So;0;ON;;;;;N;;;;;
+ 1CDA7;BLOCK OCTANT-124568;So;0;ON;;;;;N;;;;;
+ 1CDA8;BLOCK OCTANT-34568;So;0;ON;;;;;N;;;;;
+ 1CDA9;BLOCK OCTANT-134568;So;0;ON;;;;;N;;;;;
+ 1CDAA;BLOCK OCTANT-234568;So;0;ON;;;;;N;;;;;
+ 1CDAB;BLOCK OCTANT-1234568;So;0;ON;;;;;N;;;;;
+ 1CDAC;BLOCK OCTANT-178;So;0;ON;;;;;N;;;;;
+ 1CDAD;BLOCK OCTANT-278;So;0;ON;;;;;N;;;;;
+ 1CDAE;BLOCK OCTANT-1278;So;0;ON;;;;;N;;;;;
+ 1CDAF;BLOCK OCTANT-378;So;0;ON;;;;;N;;;;;
+ 1CDB0;BLOCK OCTANT-1378;So;0;ON;;;;;N;;;;;
+ 1CDB1;BLOCK OCTANT-2378;So;0;ON;;;;;N;;;;;
+ 1CDB2;BLOCK OCTANT-12378;So;0;ON;;;;;N;;;;;
+ 1CDB3;BLOCK OCTANT-478;So;0;ON;;;;;N;;;;;
+ 1CDB4;BLOCK OCTANT-1478;So;0;ON;;;;;N;;;;;
+ 1CDB5;BLOCK OCTANT-2478;So;0;ON;;;;;N;;;;;
+ 1CDB6;BLOCK OCTANT-12478;So;0;ON;;;;;N;;;;;
+ 1CDB7;BLOCK OCTANT-3478;So;0;ON;;;;;N;;;;;
+ 1CDB8;BLOCK OCTANT-13478;So;0;ON;;;;;N;;;;;
+ 1CDB9;BLOCK OCTANT-23478;So;0;ON;;;;;N;;;;;
+ 1CDBA;BLOCK OCTANT-123478;So;0;ON;;;;;N;;;;;
+ 1CDBB;BLOCK OCTANT-578;So;0;ON;;;;;N;;;;;
+ 1CDBC;BLOCK OCTANT-1578;So;0;ON;;;;;N;;;;;
+ 1CDBD;BLOCK OCTANT-2578;So;0;ON;;;;;N;;;;;
+ 1CDBE;BLOCK OCTANT-12578;So;0;ON;;;;;N;;;;;
+ 1CDBF;BLOCK OCTANT-3578;So;0;ON;;;;;N;;;;;
+ 1CDC0;BLOCK OCTANT-13578;So;0;ON;;;;;N;;;;;
+ 1CDC1;BLOCK OCTANT-23578;So;0;ON;;;;;N;;;;;
+ 1CDC2;BLOCK OCTANT-123578;So;0;ON;;;;;N;;;;;
+ 1CDC3;BLOCK OCTANT-4578;So;0;ON;;;;;N;;;;;
+ 1CDC4;BLOCK OCTANT-14578;So;0;ON;;;;;N;;;;;
+ 1CDC5;BLOCK OCTANT-24578;So;0;ON;;;;;N;;;;;
+ 1CDC6;BLOCK OCTANT-124578;So;0;ON;;;;;N;;;;;
+ 1CDC7;BLOCK OCTANT-34578;So;0;ON;;;;;N;;;;;
+ 1CDC8;BLOCK OCTANT-134578;So;0;ON;;;;;N;;;;;
+ 1CDC9;BLOCK OCTANT-234578;So;0;ON;;;;;N;;;;;
+ 1CDCA;BLOCK OCTANT-1234578;So;0;ON;;;;;N;;;;;
+ 1CDCB;BLOCK OCTANT-678;So;0;ON;;;;;N;;;;;
+ 1CDCC;BLOCK OCTANT-1678;So;0;ON;;;;;N;;;;;
+ 1CDCD;BLOCK OCTANT-2678;So;0;ON;;;;;N;;;;;
+ 1CDCE;BLOCK OCTANT-12678;So;0;ON;;;;;N;;;;;
+ 1CDCF;BLOCK OCTANT-3678;So;0;ON;;;;;N;;;;;
+ 1CDD0;BLOCK OCTANT-13678;So;0;ON;;;;;N;;;;;
+ 1CDD1;BLOCK OCTANT-23678;So;0;ON;;;;;N;;;;;
+ 1CDD2;BLOCK OCTANT-123678;So;0;ON;;;;;N;;;;;
+ 1CDD3;BLOCK OCTANT-4678;So;0;ON;;;;;N;;;;;
+ 1CDD4;BLOCK OCTANT-14678;So;0;ON;;;;;N;;;;;
+ 1CDD5;BLOCK OCTANT-24678;So;0;ON;;;;;N;;;;;
+ 1CDD6;BLOCK OCTANT-124678;So;0;ON;;;;;N;;;;;
+ 1CDD7;BLOCK OCTANT-34678;So;0;ON;;;;;N;;;;;
+ 1CDD8;BLOCK OCTANT-134678;So;0;ON;;;;;N;;;;;
+ 1CDD9;BLOCK OCTANT-234678;So;0;ON;;;;;N;;;;;
+ 1CDDA;BLOCK OCTANT-1234678;So;0;ON;;;;;N;;;;;
+ 1CDDB;BLOCK OCTANT-15678;So;0;ON;;;;;N;;;;;
+ 1CDDC;BLOCK OCTANT-25678;So;0;ON;;;;;N;;;;;
+ 1CDDD;BLOCK OCTANT-125678;So;0;ON;;;;;N;;;;;
+ 1CDDE;BLOCK OCTANT-35678;So;0;ON;;;;;N;;;;;
+ 1CDDF;BLOCK OCTANT-235678;So;0;ON;;;;;N;;;;;
+ 1CDE0;BLOCK OCTANT-1235678;So;0;ON;;;;;N;;;;;
+ 1CDE1;BLOCK OCTANT-45678;So;0;ON;;;;;N;;;;;
+ 1CDE2;BLOCK OCTANT-145678;So;0;ON;;;;;N;;;;;
+ 1CDE3;BLOCK OCTANT-1245678;So;0;ON;;;;;N;;;;;
+ 1CDE4;BLOCK OCTANT-1345678;So;0;ON;;;;;N;;;;;
+ 1CDE5;BLOCK OCTANT-2345678;So;0;ON;;;;;N;;;;;
+ 1CDE6;TOP HALF STANDING PERSON;So;0;ON;;;;;N;;;;;
+ 1CDE7;BOTTOM HALF STANDING PERSON;So;0;ON;;;;;N;;;;;
+ 1CDE8;TOP HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDE9;BOTTOM HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDEA;TOP HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDEB;BOTTOM HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDEC;TOP HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDED;BOTTOM HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDEE;TOP HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDEF;BOTTOM HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDF0;TOP HALF FORWARD-FACING RUNNER;So;0;ON;;;;;N;;;;;
+ 1CDF1;BOTTOM HALF FORWARD-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDF2;BOTTOM HALF FORWARD-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDF3;BOTTOM HALF FORWARD-FACING RUNNER FRAME-3;So;0;ON;;;;;N;;;;;
+ 1CDF4;BOTTOM HALF FORWARD-FACING RUNNER FRAME-4;So;0;ON;;;;;N;;;;;
+ 1CDF5;MOON LANDER;So;0;ON;;;;;N;;;;;
+ 1CDF6;TOP HALF FLAILING ROBOT FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDF7;TOP HALF FLAILING ROBOT FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDF8;DOWN-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+ 1CDF9;LEFT-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+ 1CDFA;SMALL UP-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+ 1CDFB;UP-POINTING FROG;So;0;ON;;;;;N;;;;;
+ 1CDFC;DOWN-POINTING FROG;So;0;ON;;;;;N;;;;;
+ 1CDFD;EXPLOSION FRAME-1;So;0;ON;;;;;N;;;;;
+ 1CDFE;EXPLOSION FRAME-2;So;0;ON;;;;;N;;;;;
+ 1CDFF;EXPLOSION FRAME-3;So;0;ON;;;;;N;;;;;
+ 1CE00;RIGHT HALF AND LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CE01;LOWER HALF AND UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1CE02;EXPLOSION AT HORIZON;So;0;ON;;;;;N;;;;;
+ 1CE03;UPPER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+ 1CE04;LOWER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+ 1CE05;HEAVY WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+ 1CE06;WHITE VERTICAL RECTANGLE WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+ 1CE07;TOP LEFT BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;;;;;
+ 1CE08;FUNNEL;So;0;ON;;;;;N;;;;;
+ 1CE09;BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE0A;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE0B;LEFT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;;
+ 1CE0C;RIGHT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;;
+ 1CE0D;LEFT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;;
+ 1CE0E;RIGHT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;;
+ 1CE0F;HORIZONTAL LINE WITH TICK MARK;So;0;ON;;;;;N;;;;;
+ 1CE10;LEFT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE11;RIGHT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE12;HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE13;LOWER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE14;UPPER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE15;VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;;
+ 1CE16;BOX DRAWINGS LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE17;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE18;BOX DRAWINGS LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
+ 1CE19;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+ 1CE1A;LARGE TYPE PIECE UPPER LEFT ARC;So;0;ON;;;;;N;;;;;
+ 1CE1B;LARGE TYPE PIECE UPPER LEFT CORNER;So;0;ON;;;;;N;;;;;
+ 1CE1C;LARGE TYPE PIECE UPPER TERMINAL;So;0;ON;;;;;N;;;;;
+ 1CE1D;LARGE TYPE PIECE UPPER LEFT CROTCH;So;0;ON;;;;;N;;;;;
+ 1CE1E;LARGE TYPE PIECE LEFT ARM;So;0;ON;;;;;N;;;;;
+ 1CE1F;LARGE TYPE PIECE CROSSBAR;So;0;ON;;;;;N;;;;;
+ 1CE20;LARGE TYPE PIECE CROSSBAR WITH LOWER STEM;So;0;ON;;;;;N;;;;;
+ 1CE21;LARGE TYPE PIECE UPPER HALF VERTEX OF M;So;0;ON;;;;;N;;;;;
+ 1CE22;LARGE TYPE PIECE DIAGONAL LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1CE23;LARGE TYPE PIECE SHORT UPPER TERMINAL;So;0;ON;;;;;N;;;;;
+ 1CE24;LARGE TYPE PIECE UPPER RIGHT ARC;So;0;ON;;;;;N;;;;;
+ 1CE25;LARGE TYPE PIECE RIGHT ARM;So;0;ON;;;;;N;;;;;
+ 1CE26;LARGE TYPE PIECE UPPER RIGHT CROTCH;So;0;ON;;;;;N;;;;;
+ 1CE27;LARGE TYPE PIECE UPPER RIGHT CORNER;So;0;ON;;;;;N;;;;;
+ 1CE28;LARGE TYPE PIECE STEM WITH RIGHT CROSSBAR;So;0;ON;;;;;N;;;;;
+ 1CE29;LARGE TYPE PIECE STEM;So;0;ON;;;;;N;;;;;
+ 1CE2A;LARGE TYPE PIECE DIAGONAL UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE2B;LARGE TYPE PIECE DIAGONAL UPPER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE2C;LARGE TYPE PIECE DIAGONAL LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1CE2D;LARGE TYPE PIECE SHORT LOWER TERMINAL;So;0;ON;;;;;N;;;;;
+ 1CE2E;LARGE TYPE PIECE LOWER LEFT AND UPPER LEFT ARC;So;0;ON;;;;;N;;;;;
+ 1CE2F;LARGE TYPE PIECE CENTRE OF K;So;0;ON;;;;;N;;;;;
+ 1CE30;LARGE TYPE PIECE LOWER HALF VERTEX OF M;So;0;ON;;;;;N;;;;;
+ 1CE31;LARGE TYPE PIECE UPPER HALF VERTEX OF W;So;0;ON;;;;;N;;;;;
+ 1CE32;LARGE TYPE PIECE CENTRE OF X;So;0;ON;;;;;N;;;;;
+ 1CE33;LARGE TYPE PIECE CENTRE OF Y;So;0;ON;;;;;N;;;;;
+ 1CE34;LARGE TYPE PIECE CENTRE OF Z WITH CROSSBAR;So;0;ON;;;;;N;;;;;
+ 1CE35;LARGE TYPE PIECE RAISED UPPER LEFT ARC;So;0;ON;;;;;N;;;;;
+ 1CE36;LARGE TYPE PIECE STEM WITH LEFT CROSSBAR;So;0;ON;;;;;N;;;;;
+ 1CE37;LARGE TYPE PIECE LOWER RIGHT AND UPPER RIGHT ARC;So;0;ON;;;;;N;;;;;
+ 1CE38;LARGE TYPE PIECE DIAGONAL UPPER LEFT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1CE39;LARGE TYPE PIECE STEM WITH LEFT JOINT;So;0;ON;;;;;N;;;;;
+ 1CE3A;LARGE TYPE PIECE STEM WITH CROSSBAR;So;0;ON;;;;;N;;;;;
+ 1CE3B;LARGE TYPE PIECE DIAGONAL UPPER LEFT;So;0;ON;;;;;N;;;;;
+ 1CE3C;LARGE TYPE PIECE LOWER TERMINAL;So;0;ON;;;;;N;;;;;
+ 1CE3D;LARGE TYPE PIECE LOWER LEFT CORNER;So;0;ON;;;;;N;;;;;
+ 1CE3E;LARGE TYPE PIECE LOWER LEFT ARC;So;0;ON;;;;;N;;;;;
+ 1CE3F;LARGE TYPE PIECE LOWER LEFT CROTCH;So;0;ON;;;;;N;;;;;
+ 1CE40;LARGE TYPE PIECE CROSSBAR WITH UPPER STEM;So;0;ON;;;;;N;;;;;
+ 1CE41;LARGE TYPE PIECE VERTEX OF V;So;0;ON;;;;;N;;;;;
+ 1CE42;LARGE TYPE PIECE LOWER HALF VERTEX OF W;So;0;ON;;;;;N;;;;;
+ 1CE43;LARGE TYPE PIECE LOWER RIGHT ARC;So;0;ON;;;;;N;;;;;
+ 1CE44;LARGE TYPE PIECE LOWER RIGHT CORNER;So;0;ON;;;;;N;;;;;
+ 1CE45;LARGE TYPE PIECE LOWER RIGHT ARC WITH TAIL;So;0;ON;;;;;N;;;;;
+ 1CE46;LARGE TYPE PIECE LOWER RIGHT CROTCH;So;0;ON;;;;;N;;;;;
+ 1CE47;LARGE TYPE PIECE STEM-45;So;0;ON;;;;;N;;;;;
+ 1CE48;LARGE TYPE PIECE STEM-2345;So;0;ON;;;;;N;;;;;
+ 1CE49;LARGE TYPE PIECE STEM-4;So;0;ON;;;;;N;;;;;
+ 1CE4A;LARGE TYPE PIECE STEM-34;So;0;ON;;;;;N;;;;;
+ 1CE4B;LARGE TYPE PIECE STEM-234;So;0;ON;;;;;N;;;;;
+ 1CE4C;LARGE TYPE PIECE STEM-1234;So;0;ON;;;;;N;;;;;
+ 1CE4D;LARGE TYPE PIECE STEM-3;So;0;ON;;;;;N;;;;;
+ 1CE4E;LARGE TYPE PIECE STEM-23;So;0;ON;;;;;N;;;;;
+ 1CE4F;LARGE TYPE PIECE STEM-2;So;0;ON;;;;;N;;;;;
+ 1CE50;LARGE TYPE PIECE STEM-12;So;0;ON;;;;;N;;;;;
+ 1CE51;SEPARATED BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;;
+ 1CE52;SEPARATED BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;;
+ 1CE53;SEPARATED BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;;
+ 1CE54;SEPARATED BLOCK SEXTANT-3;So;0;ON;;;;;N;;;;;
+ 1CE55;SEPARATED BLOCK SEXTANT-13;So;0;ON;;;;;N;;;;;
+ 1CE56;SEPARATED BLOCK SEXTANT-23;So;0;ON;;;;;N;;;;;
+ 1CE57;SEPARATED BLOCK SEXTANT-123;So;0;ON;;;;;N;;;;;
+ 1CE58;SEPARATED BLOCK SEXTANT-4;So;0;ON;;;;;N;;;;;
+ 1CE59;SEPARATED BLOCK SEXTANT-14;So;0;ON;;;;;N;;;;;
+ 1CE5A;SEPARATED BLOCK SEXTANT-24;So;0;ON;;;;;N;;;;;
+ 1CE5B;SEPARATED BLOCK SEXTANT-124;So;0;ON;;;;;N;;;;;
+ 1CE5C;SEPARATED BLOCK SEXTANT-34;So;0;ON;;;;;N;;;;;
+ 1CE5D;SEPARATED BLOCK SEXTANT-134;So;0;ON;;;;;N;;;;;
+ 1CE5E;SEPARATED BLOCK SEXTANT-234;So;0;ON;;;;;N;;;;;
+ 1CE5F;SEPARATED BLOCK SEXTANT-1234;So;0;ON;;;;;N;;;;;
+ 1CE60;SEPARATED BLOCK SEXTANT-5;So;0;ON;;;;;N;;;;;
+ 1CE61;SEPARATED BLOCK SEXTANT-15;So;0;ON;;;;;N;;;;;
+ 1CE62;SEPARATED BLOCK SEXTANT-25;So;0;ON;;;;;N;;;;;
+ 1CE63;SEPARATED BLOCK SEXTANT-125;So;0;ON;;;;;N;;;;;
+ 1CE64;SEPARATED BLOCK SEXTANT-35;So;0;ON;;;;;N;;;;;
+ 1CE65;SEPARATED BLOCK SEXTANT-135;So;0;ON;;;;;N;;;;;
+ 1CE66;SEPARATED BLOCK SEXTANT-235;So;0;ON;;;;;N;;;;;
+ 1CE67;SEPARATED BLOCK SEXTANT-1235;So;0;ON;;;;;N;;;;;
+ 1CE68;SEPARATED BLOCK SEXTANT-45;So;0;ON;;;;;N;;;;;
+ 1CE69;SEPARATED BLOCK SEXTANT-145;So;0;ON;;;;;N;;;;;
+ 1CE6A;SEPARATED BLOCK SEXTANT-245;So;0;ON;;;;;N;;;;;
+ 1CE6B;SEPARATED BLOCK SEXTANT-1245;So;0;ON;;;;;N;;;;;
+ 1CE6C;SEPARATED BLOCK SEXTANT-345;So;0;ON;;;;;N;;;;;
+ 1CE6D;SEPARATED BLOCK SEXTANT-1345;So;0;ON;;;;;N;;;;;
+ 1CE6E;SEPARATED BLOCK SEXTANT-2345;So;0;ON;;;;;N;;;;;
+ 1CE6F;SEPARATED BLOCK SEXTANT-12345;So;0;ON;;;;;N;;;;;
+ 1CE70;SEPARATED BLOCK SEXTANT-6;So;0;ON;;;;;N;;;;;
+ 1CE71;SEPARATED BLOCK SEXTANT-16;So;0;ON;;;;;N;;;;;
+ 1CE72;SEPARATED BLOCK SEXTANT-26;So;0;ON;;;;;N;;;;;
+ 1CE73;SEPARATED BLOCK SEXTANT-126;So;0;ON;;;;;N;;;;;
+ 1CE74;SEPARATED BLOCK SEXTANT-36;So;0;ON;;;;;N;;;;;
+ 1CE75;SEPARATED BLOCK SEXTANT-136;So;0;ON;;;;;N;;;;;
+ 1CE76;SEPARATED BLOCK SEXTANT-236;So;0;ON;;;;;N;;;;;
+ 1CE77;SEPARATED BLOCK SEXTANT-1236;So;0;ON;;;;;N;;;;;
+ 1CE78;SEPARATED BLOCK SEXTANT-46;So;0;ON;;;;;N;;;;;
+ 1CE79;SEPARATED BLOCK SEXTANT-146;So;0;ON;;;;;N;;;;;
+ 1CE7A;SEPARATED BLOCK SEXTANT-246;So;0;ON;;;;;N;;;;;
+ 1CE7B;SEPARATED BLOCK SEXTANT-1246;So;0;ON;;;;;N;;;;;
+ 1CE7C;SEPARATED BLOCK SEXTANT-346;So;0;ON;;;;;N;;;;;
+ 1CE7D;SEPARATED BLOCK SEXTANT-1346;So;0;ON;;;;;N;;;;;
+ 1CE7E;SEPARATED BLOCK SEXTANT-2346;So;0;ON;;;;;N;;;;;
+ 1CE7F;SEPARATED BLOCK SEXTANT-12346;So;0;ON;;;;;N;;;;;
+ 1CE80;SEPARATED BLOCK SEXTANT-56;So;0;ON;;;;;N;;;;;
+ 1CE81;SEPARATED BLOCK SEXTANT-156;So;0;ON;;;;;N;;;;;
+ 1CE82;SEPARATED BLOCK SEXTANT-256;So;0;ON;;;;;N;;;;;
+ 1CE83;SEPARATED BLOCK SEXTANT-1256;So;0;ON;;;;;N;;;;;
+ 1CE84;SEPARATED BLOCK SEXTANT-356;So;0;ON;;;;;N;;;;;
+ 1CE85;SEPARATED BLOCK SEXTANT-1356;So;0;ON;;;;;N;;;;;
+ 1CE86;SEPARATED BLOCK SEXTANT-2356;So;0;ON;;;;;N;;;;;
+ 1CE87;SEPARATED BLOCK SEXTANT-12356;So;0;ON;;;;;N;;;;;
+ 1CE88;SEPARATED BLOCK SEXTANT-456;So;0;ON;;;;;N;;;;;
+ 1CE89;SEPARATED BLOCK SEXTANT-1456;So;0;ON;;;;;N;;;;;
+ 1CE8A;SEPARATED BLOCK SEXTANT-2456;So;0;ON;;;;;N;;;;;
+ 1CE8B;SEPARATED BLOCK SEXTANT-12456;So;0;ON;;;;;N;;;;;
+ 1CE8C;SEPARATED BLOCK SEXTANT-3456;So;0;ON;;;;;N;;;;;
+ 1CE8D;SEPARATED BLOCK SEXTANT-13456;So;0;ON;;;;;N;;;;;
+ 1CE8E;SEPARATED BLOCK SEXTANT-23456;So;0;ON;;;;;N;;;;;
+ 1CE8F;SEPARATED BLOCK SEXTANT-123456;So;0;ON;;;;;N;;;;;
+ 1CE90;UPPER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE91;UPPER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE92;UPPER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE93;UPPER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE94;UPPER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE95;UPPER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE96;UPPER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE97;UPPER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE98;LOWER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE99;LOWER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9A;LOWER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9B;LOWER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9C;LOWER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9D;LOWER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9E;LOWER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CE9F;LOWER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA0;RIGHT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA1;RIGHT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA2;LEFT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA3;LEFT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA4;LOWER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA5;LOWER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA6;UPPER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA7;UPPER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA8;LEFT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEA9;LEFT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAA;RIGHT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAB;RIGHT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAC;UPPER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAD;UPPER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAE;LOWER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEAF;LOWER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1CEB0;HORIZONTAL ZIGZAG LINE;So;0;ON;;;;;N;;;;;
+ 1CEB1;KEYHOLE;So;0;ON;;;;;N;;;;;
+ 1CEB2;OLD PERSONAL COMPUTER WITH MONITOR IN PORTRAIT ORIENTATION;So;0;ON;;;;;N;;;;;
+ 1CEB3;BLACK RIGHT TRIANGLE CARET;So;0;ON;;;;;N;;;;;
  1CF00;ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;;
  1CF01;ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;;
  1CF02;ZNAMENNY COMBINING MARK TSATA ON LEFT;Mn;0;NSM;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 29545,29551 ****
  1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
  1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
--- 34630,34636 ----
  1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;ON;<font> 2207;;;;N;;;;;
  1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 29603,29609 ****
  1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
  1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
--- 34688,34694 ----
  1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;ON;<font> 2207;;;;N;;;;;
  1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 29661,29667 ****
  1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
  1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
--- 34746,34752 ----
  1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;ON;<font> 2207;;;;N;;;;;
  1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 29719,29725 ****
  1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
  1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
--- 34804,34810 ----
  1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;ON;<font> 2207;;;;N;;;;;
  1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 29777,29783 ****
  1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
  1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
--- 34862,34868 ----
  1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
  1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
  1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
! 1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;ON;<font> 2207;;;;N;;;;;
  1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
  1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
  1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 30875,30880 ****
--- 35960,36009 ----
  1E4F7;NAG MUNDARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
  1E4F8;NAG MUNDARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
  1E4F9;NAG MUNDARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 1E5D0;OL ONAL LETTER O;Lo;0;L;;;;;N;;;;;
+ 1E5D1;OL ONAL LETTER OM;Lo;0;L;;;;;N;;;;;
+ 1E5D2;OL ONAL LETTER ONG;Lo;0;L;;;;;N;;;;;
+ 1E5D3;OL ONAL LETTER ORR;Lo;0;L;;;;;N;;;;;
+ 1E5D4;OL ONAL LETTER OO;Lo;0;L;;;;;N;;;;;
+ 1E5D5;OL ONAL LETTER OY;Lo;0;L;;;;;N;;;;;
+ 1E5D6;OL ONAL LETTER A;Lo;0;L;;;;;N;;;;;
+ 1E5D7;OL ONAL LETTER AD;Lo;0;L;;;;;N;;;;;
+ 1E5D8;OL ONAL LETTER AB;Lo;0;L;;;;;N;;;;;
+ 1E5D9;OL ONAL LETTER AH;Lo;0;L;;;;;N;;;;;
+ 1E5DA;OL ONAL LETTER AL;Lo;0;L;;;;;N;;;;;
+ 1E5DB;OL ONAL LETTER AW;Lo;0;L;;;;;N;;;;;
+ 1E5DC;OL ONAL LETTER I;Lo;0;L;;;;;N;;;;;
+ 1E5DD;OL ONAL LETTER IT;Lo;0;L;;;;;N;;;;;
+ 1E5DE;OL ONAL LETTER IP;Lo;0;L;;;;;N;;;;;
+ 1E5DF;OL ONAL LETTER ITT;Lo;0;L;;;;;N;;;;;
+ 1E5E0;OL ONAL LETTER ID;Lo;0;L;;;;;N;;;;;
+ 1E5E1;OL ONAL LETTER IN;Lo;0;L;;;;;N;;;;;
+ 1E5E2;OL ONAL LETTER U;Lo;0;L;;;;;N;;;;;
+ 1E5E3;OL ONAL LETTER UK;Lo;0;L;;;;;N;;;;;
+ 1E5E4;OL ONAL LETTER UDD;Lo;0;L;;;;;N;;;;;
+ 1E5E5;OL ONAL LETTER UJ;Lo;0;L;;;;;N;;;;;
+ 1E5E6;OL ONAL LETTER UNY;Lo;0;L;;;;;N;;;;;
+ 1E5E7;OL ONAL LETTER UR;Lo;0;L;;;;;N;;;;;
+ 1E5E8;OL ONAL LETTER E;Lo;0;L;;;;;N;;;;;
+ 1E5E9;OL ONAL LETTER ES;Lo;0;L;;;;;N;;;;;
+ 1E5EA;OL ONAL LETTER EH;Lo;0;L;;;;;N;;;;;
+ 1E5EB;OL ONAL LETTER EC;Lo;0;L;;;;;N;;;;;
+ 1E5EC;OL ONAL LETTER ENN;Lo;0;L;;;;;N;;;;;
+ 1E5ED;OL ONAL LETTER EG;Lo;0;L;;;;;N;;;;;
+ 1E5EE;OL ONAL SIGN MU;Mn;230;NSM;;;;;N;;;;;
+ 1E5EF;OL ONAL SIGN IKIR;Mn;220;NSM;;;;;N;;;;;
+ 1E5F0;OL ONAL SIGN HODDOND;Lo;0;L;;;;;N;;;;;
+ 1E5F1;OL ONAL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 1E5F2;OL ONAL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 1E5F3;OL ONAL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 1E5F4;OL ONAL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 1E5F5;OL ONAL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 1E5F6;OL ONAL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 1E5F7;OL ONAL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 1E5F8;OL ONAL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 1E5F9;OL ONAL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 1E5FA;OL ONAL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 1E5FF;OL ONAL ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
  1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;;
  1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;;
  1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33357,33362 ****
--- 38486,38503 ----
  1F8AD;WHITE ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
  1F8B0;ARROW POINTING UPWARDS THEN NORTH WEST;So;0;ON;;;;;N;;;;;
  1F8B1;ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST;So;0;ON;;;;;N;;;;;
+ 1F8B2;RIGHTWARDS ARROW WITH LOWER HOOK;So;0;ON;;;;;N;;;;;
+ 1F8B3;DOWNWARDS BLACK ARROW TO BAR;So;0;ON;;;;;N;;;;;
+ 1F8B4;NEGATIVE SQUARED LEFTWARDS ARROW;So;0;ON;;;;;N;;;;;
+ 1F8B5;NEGATIVE SQUARED UPWARDS ARROW;So;0;ON;;;;;N;;;;;
+ 1F8B6;NEGATIVE SQUARED RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;;
+ 1F8B7;NEGATIVE SQUARED DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+ 1F8B8;NORTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;;
+ 1F8B9;NORTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;;
+ 1F8BA;SOUTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;;
+ 1F8BB;SOUTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;;
+ 1F8C0;LEFTWARDS ARROW FROM DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+ 1F8C1;RIGHTWARDS ARROW FROM DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
  1F900;CIRCLED CROSS FORMEE WITH FOUR DOTS;So;0;ON;;;;;N;;;;;
  1F901;CIRCLED CROSS FORMEE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
  1F902;CIRCLED CROSS FORMEE;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33733,33738 ****
--- 38874,38881 ----
  1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
  1FA87;MARACAS;So;0;ON;;;;;N;;;;;
  1FA88;FLUTE;So;0;ON;;;;;N;;;;;
+ 1FA89;HARP;So;0;ON;;;;;N;;;;;
+ 1FA8F;SHOVEL;So;0;ON;;;;;N;;;;;
  1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
  1FA91;CHAIR;So;0;ON;;;;;N;;;;;
  1FA92;RAZOR;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33779,33784 ****
--- 38922,38928 ----
  1FABB;HYACINTH;So;0;ON;;;;;N;;;;;
  1FABC;JELLYFISH;So;0;ON;;;;;N;;;;;
  1FABD;WING;So;0;ON;;;;;N;;;;;
+ 1FABE;LEAFLESS TREE;So;0;ON;;;;;N;;;;;
  1FABF;GOOSE;So;0;ON;;;;;N;;;;;
  1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
  1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33786,33791 ****
--- 38930,38936 ----
  1FAC3;PREGNANT MAN;So;0;ON;;;;;N;;;;;
  1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;;
  1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;;
+ 1FAC6;FINGERPRINT;So;0;ON;;;;;N;;;;;
  1FACE;MOOSE;So;0;ON;;;;;N;;;;;
  1FACF;DONKEY;So;0;ON;;;;;N;;;;;
  1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33800,33805 ****
--- 38945,38952 ----
  1FAD9;JAR;So;0;ON;;;;;N;;;;;
  1FADA;GINGER ROOT;So;0;ON;;;;;N;;;;;
  1FADB;PEA POD;So;0;ON;;;;;N;;;;;
+ 1FADC;ROOT VEGETABLE;So;0;ON;;;;;N;;;;;
+ 1FADF;SPLATTER;So;0;ON;;;;;N;;;;;
  1FAE0;MELTING FACE;So;0;ON;;;;;N;;;;;
  1FAE1;SALUTING FACE;So;0;ON;;;;;N;;;;;
  1FAE2;FACE WITH OPEN EYES AND HAND OVER MOUTH;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33809,33814 ****
--- 38956,38962 ----
  1FAE6;BITING LIP;So;0;ON;;;;;N;;;;;
  1FAE7;BUBBLES;So;0;ON;;;;;N;;;;;
  1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;;
+ 1FAE9;FACE WITH BAGS UNDER EYES;So;0;ON;;;;;N;;;;;
  1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;;
  1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;;
  1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 34020,34025 ****
--- 39168,39210 ----
  1FBC8;STICK FIGURE LEANING RIGHT;So;0;ON;;;;;N;;;;;
  1FBC9;STICK FIGURE WITH DRESS;So;0;ON;;;;;N;;;;;
  1FBCA;WHITE UP-POINTING CHEVRON;So;0;ON;;;;;N;;;;;
+ 1FBCB;WHITE CROSS MARK;So;0;ON;;;;;N;;;;;
+ 1FBCC;RAISED SMALL LEFT SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+ 1FBCD;BLACK SMALL UP-POINTING CHEVRON;So;0;ON;;;;;N;;;;;
+ 1FBCE;LEFT TWO THIRDS BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBCF;LEFT ONE THIRD BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBD0;BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1FBD1;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT;So;0;ON;;;;;N;;;;;
+ 1FBD2;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBD3;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBD4;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+ 1FBD5;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBD6;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+ 1FBD7;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1FBD8;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBD9;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBDA;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBDB;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1FBDC;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBDD;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBDE;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 1FBDF;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;;
+ 1FBE0;TOP JUSTIFIED LOWER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBE1;RIGHT JUSTIFIED LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBE2;BOTTOM JUSTIFIED UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBE3;LEFT JUSTIFIED RIGHT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBE4;UPPER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBE5;LOWER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBE6;MIDDLE LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBE7;MIDDLE RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+ 1FBE8;TOP JUSTIFIED LOWER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBE9;RIGHT JUSTIFIED LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBEA;BOTTOM JUSTIFIED UPPER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBEB;LEFT JUSTIFIED RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBEC;TOP RIGHT JUSTIFIED LOWER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBED;BOTTOM LEFT JUSTIFIED UPPER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBEE;BOTTOM RIGHT JUSTIFIED UPPER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+ 1FBEF;TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;;
  1FBF0;SEGMENTED DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
  1FBF1;SEGMENTED DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
  1FBF2;SEGMENTED DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
diff -Nrcpad gcc-14.2.0/contrib/unicode/emoji-data.txt gcc-15.1.0/contrib/unicode/emoji-data.txt
*** gcc-14.2.0/contrib/unicode/emoji-data.txt	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/emoji-data.txt	Fri Apr 25 08:17:59 2025
***************
*** 1,11 ****
  # emoji-data.txt
! # Date: 2023-02-01, 02:22:54 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Emoji Data for UTS #51
! # Used with Emoji Version 15.1 and subsequent minor revisions (if any)
  #
  # For documentation and usage, see https://www.unicode.org/reports/tr51
  #
--- 1,11 ----
  # emoji-data.txt
! # Date: 2024-05-01, 21:25:24 GMT
! # © 2024 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
! # For terms of use and license, see https://www.unicode.org/terms_of_use.html
  #
  # Emoji Data for UTS #51
! # Used with Emoji Version 16.0 and subsequent minor revisions (if any)
  #
  # For documentation and usage, see https://www.unicode.org/reports/tr51
  #
***************
*** 407,412 ****
--- 407,414 ----
  1FA80..1FA82  ; Emoji                # E12.0  [3] (🪀..🪂)    yo-yo..parachute
  1FA83..1FA86  ; Emoji                # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
  1FA87..1FA88  ; Emoji                # E15.0  [2] (🪇..🪈)    maracas..flute
+ 1FA89         ; Emoji                # E16.0  [1] (🪉)       harp
+ 1FA8F         ; Emoji                # E16.0  [1] (🪏)       shovel
  1FA90..1FA95  ; Emoji                # E12.0  [6] (🪐..🪕)    ringed planet..banjo
  1FA96..1FAA8  ; Emoji                # E13.0 [19] (🪖..🪨)    military helmet..rock
  1FAA9..1FAAC  ; Emoji                # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
***************
*** 414,432 ****
  1FAB0..1FAB6  ; Emoji                # E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Emoji                # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Emoji                # E15.0  [3] (🪻..🪽)    hyacinth..wing
  1FABF         ; Emoji                # E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Emoji                # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Emoji                # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
  1FACE..1FACF  ; Emoji                # E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Emoji                # E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Emoji                # E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Emoji                # E15.0  [2] (🫚..🫛)    ginger root..pea pod
  1FAE0..1FAE7  ; Emoji                # E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Emoji                # E15.0  [1] (🫨)       shaking face
  1FAF0..1FAF6  ; Emoji                # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Emoji                # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  
! # Total elements: 1424
  
  # ================================================
  
--- 416,439 ----
  1FAB0..1FAB6  ; Emoji                # E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Emoji                # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Emoji                # E15.0  [3] (🪻..🪽)    hyacinth..wing
+ 1FABE         ; Emoji                # E16.0  [1] (🪾)       leafless tree
  1FABF         ; Emoji                # E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Emoji                # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Emoji                # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FAC6         ; Emoji                # E16.0  [1] (🫆)       fingerprint
  1FACE..1FACF  ; Emoji                # E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Emoji                # E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Emoji                # E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Emoji                # E15.0  [2] (🫚..🫛)    ginger root..pea pod
+ 1FADC         ; Emoji                # E16.0  [1] (🫜)       root vegetable
+ 1FADF         ; Emoji                # E16.0  [1] (🫟)       splatter
  1FAE0..1FAE7  ; Emoji                # E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Emoji                # E15.0  [1] (🫨)       shaking face
+ 1FAE9         ; Emoji                # E16.0  [1] (🫩)       face with bags under eyes
  1FAF0..1FAF6  ; Emoji                # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Emoji                # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  
! # Total elements: 1431
  
  # ================================================
  
***************
*** 696,701 ****
--- 703,710 ----
  1FA80..1FA82  ; Emoji_Presentation   # E12.0  [3] (🪀..🪂)    yo-yo..parachute
  1FA83..1FA86  ; Emoji_Presentation   # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
  1FA87..1FA88  ; Emoji_Presentation   # E15.0  [2] (🪇..🪈)    maracas..flute
+ 1FA89         ; Emoji_Presentation   # E16.0  [1] (🪉)       harp
+ 1FA8F         ; Emoji_Presentation   # E16.0  [1] (🪏)       shovel
  1FA90..1FA95  ; Emoji_Presentation   # E12.0  [6] (🪐..🪕)    ringed planet..banjo
  1FA96..1FAA8  ; Emoji_Presentation   # E13.0 [19] (🪖..🪨)    military helmet..rock
  1FAA9..1FAAC  ; Emoji_Presentation   # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
***************
*** 703,721 ****
  1FAB0..1FAB6  ; Emoji_Presentation   # E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Emoji_Presentation   # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Emoji_Presentation   # E15.0  [3] (🪻..🪽)    hyacinth..wing
  1FABF         ; Emoji_Presentation   # E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Emoji_Presentation   # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Emoji_Presentation   # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
  1FACE..1FACF  ; Emoji_Presentation   # E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Emoji_Presentation   # E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Emoji_Presentation   # E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Emoji_Presentation   # E15.0  [2] (🫚..🫛)    ginger root..pea pod
  1FAE0..1FAE7  ; Emoji_Presentation   # E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Emoji_Presentation   # E15.0  [1] (🫨)       shaking face
  1FAF0..1FAF6  ; Emoji_Presentation   # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Emoji_Presentation   # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  
! # Total elements: 1205
  
  # ================================================
  
--- 712,735 ----
  1FAB0..1FAB6  ; Emoji_Presentation   # E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Emoji_Presentation   # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Emoji_Presentation   # E15.0  [3] (🪻..🪽)    hyacinth..wing
+ 1FABE         ; Emoji_Presentation   # E16.0  [1] (🪾)       leafless tree
  1FABF         ; Emoji_Presentation   # E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Emoji_Presentation   # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Emoji_Presentation   # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FAC6         ; Emoji_Presentation   # E16.0  [1] (🫆)       fingerprint
  1FACE..1FACF  ; Emoji_Presentation   # E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Emoji_Presentation   # E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Emoji_Presentation   # E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Emoji_Presentation   # E15.0  [2] (🫚..🫛)    ginger root..pea pod
+ 1FADC         ; Emoji_Presentation   # E16.0  [1] (🫜)       root vegetable
+ 1FADF         ; Emoji_Presentation   # E16.0  [1] (🫟)       splatter
  1FAE0..1FAE7  ; Emoji_Presentation   # E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Emoji_Presentation   # E15.0  [1] (🫨)       shaking face
+ 1FAE9         ; Emoji_Presentation   # E16.0  [1] (🫩)       face with bags under eyes
  1FAF0..1FAF6  ; Emoji_Presentation   # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Emoji_Presentation   # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  
! # Total elements: 1212
  
  # ================================================
  
*************** E0020..E007F  ; Emoji_Component      # E
*** 1289,1295 ****
  1FA80..1FA82  ; Extended_Pictographic# E12.0  [3] (🪀..🪂)    yo-yo..parachute
  1FA83..1FA86  ; Extended_Pictographic# E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
  1FA87..1FA88  ; Extended_Pictographic# E15.0  [2] (🪇..🪈)    maracas..flute
! 1FA89..1FA8F  ; Extended_Pictographic# E0.0   [7] (🪉..🪏)    <reserved-1FA89>..<reserved-1FA8F>
  1FA90..1FA95  ; Extended_Pictographic# E12.0  [6] (🪐..🪕)    ringed planet..banjo
  1FA96..1FAA8  ; Extended_Pictographic# E13.0 [19] (🪖..🪨)    military helmet..rock
  1FAA9..1FAAC  ; Extended_Pictographic# E14.0  [4] (🪩..🪬)    mirror ball..hamsa
--- 1303,1311 ----
  1FA80..1FA82  ; Extended_Pictographic# E12.0  [3] (🪀..🪂)    yo-yo..parachute
  1FA83..1FA86  ; Extended_Pictographic# E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
  1FA87..1FA88  ; Extended_Pictographic# E15.0  [2] (🪇..🪈)    maracas..flute
! 1FA89         ; Extended_Pictographic# E16.0  [1] (🪉)       harp
! 1FA8A..1FA8E  ; Extended_Pictographic# E0.0   [5] (🪊..🪎)    <reserved-1FA8A>..<reserved-1FA8E>
! 1FA8F         ; Extended_Pictographic# E16.0  [1] (🪏)       shovel
  1FA90..1FA95  ; Extended_Pictographic# E12.0  [6] (🪐..🪕)    ringed planet..banjo
  1FA96..1FAA8  ; Extended_Pictographic# E13.0 [19] (🪖..🪨)    military helmet..rock
  1FAA9..1FAAC  ; Extended_Pictographic# E14.0  [4] (🪩..🪬)    mirror ball..hamsa
*************** E0020..E007F  ; Emoji_Component      # E
*** 1297,1315 ****
  1FAB0..1FAB6  ; Extended_Pictographic# E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Extended_Pictographic# E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Extended_Pictographic# E15.0  [3] (🪻..🪽)    hyacinth..wing
! 1FABE         ; Extended_Pictographic# E0.0   [1] (🪾)       <reserved-1FABE>
  1FABF         ; Extended_Pictographic# E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Extended_Pictographic# E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Extended_Pictographic# E14.0  [3] (🫃..🫅)    pregnant man..person with crown
! 1FAC6..1FACD  ; Extended_Pictographic# E0.0   [8] (🫆..🫍)    <reserved-1FAC6>..<reserved-1FACD>
  1FACE..1FACF  ; Extended_Pictographic# E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Extended_Pictographic# E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Extended_Pictographic# E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Extended_Pictographic# E15.0  [2] (🫚..🫛)    ginger root..pea pod
! 1FADC..1FADF  ; Extended_Pictographic# E0.0   [4] (🫜..🫟)    <reserved-1FADC>..<reserved-1FADF>
  1FAE0..1FAE7  ; Extended_Pictographic# E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Extended_Pictographic# E15.0  [1] (🫨)       shaking face
! 1FAE9..1FAEF  ; Extended_Pictographic# E0.0   [7] (🫩..🫯)    <reserved-1FAE9>..<reserved-1FAEF>
  1FAF0..1FAF6  ; Extended_Pictographic# E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Extended_Pictographic# E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  1FAF9..1FAFF  ; Extended_Pictographic# E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>
--- 1313,1335 ----
  1FAB0..1FAB6  ; Extended_Pictographic# E13.0  [7] (🪰..🪶)    fly..feather
  1FAB7..1FABA  ; Extended_Pictographic# E14.0  [4] (🪷..🪺)    lotus..nest with eggs
  1FABB..1FABD  ; Extended_Pictographic# E15.0  [3] (🪻..🪽)    hyacinth..wing
! 1FABE         ; Extended_Pictographic# E16.0  [1] (🪾)       leafless tree
  1FABF         ; Extended_Pictographic# E15.0  [1] (🪿)       goose
  1FAC0..1FAC2  ; Extended_Pictographic# E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
  1FAC3..1FAC5  ; Extended_Pictographic# E14.0  [3] (🫃..🫅)    pregnant man..person with crown
! 1FAC6         ; Extended_Pictographic# E16.0  [1] (🫆)       fingerprint
! 1FAC7..1FACD  ; Extended_Pictographic# E0.0   [7] (🫇..🫍)    <reserved-1FAC7>..<reserved-1FACD>
  1FACE..1FACF  ; Extended_Pictographic# E15.0  [2] (🫎..🫏)    moose..donkey
  1FAD0..1FAD6  ; Extended_Pictographic# E13.0  [7] (🫐..🫖)    blueberries..teapot
  1FAD7..1FAD9  ; Extended_Pictographic# E14.0  [3] (🫗..🫙)    pouring liquid..jar
  1FADA..1FADB  ; Extended_Pictographic# E15.0  [2] (🫚..🫛)    ginger root..pea pod
! 1FADC         ; Extended_Pictographic# E16.0  [1] (🫜)       root vegetable
! 1FADD..1FADE  ; Extended_Pictographic# E0.0   [2] (🫝..🫞)    <reserved-1FADD>..<reserved-1FADE>
! 1FADF         ; Extended_Pictographic# E16.0  [1] (🫟)       splatter
  1FAE0..1FAE7  ; Extended_Pictographic# E14.0  [8] (🫠..🫧)    melting face..bubbles
  1FAE8         ; Extended_Pictographic# E15.0  [1] (🫨)       shaking face
! 1FAE9         ; Extended_Pictographic# E16.0  [1] (🫩)       face with bags under eyes
! 1FAEA..1FAEF  ; Extended_Pictographic# E0.0   [6] (🫪..🫯)    <reserved-1FAEA>..<reserved-1FAEF>
  1FAF0..1FAF6  ; Extended_Pictographic# E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
  1FAF7..1FAF8  ; Extended_Pictographic# E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
  1FAF9..1FAFF  ; Extended_Pictographic# E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>
diff -Nrcpad gcc-14.2.0/contrib/unicode/from_glibc/unicode_utils.py gcc-15.1.0/contrib/unicode/from_glibc/unicode_utils.py
*** gcc-14.2.0/contrib/unicode/from_glibc/unicode_utils.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/from_glibc/unicode_utils.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  # Utilities to generate Unicode data for glibc from upstream Unicode data.
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
--- 1,6 ----
  # Utilities to generate Unicode data for glibc from upstream Unicode data.
  #
! # Copyright (C) 2014-2025 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
diff -Nrcpad gcc-14.2.0/contrib/unicode/from_glibc/utf8_gen.py gcc-15.1.0/contrib/unicode/from_glibc/utf8_gen.py
*** gcc-14.2.0/contrib/unicode/from_glibc/utf8_gen.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/from_glibc/utf8_gen.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
--- 1,6 ----
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
! # Copyright (C) 2014-2025 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
*************** JAMO_MEDIAL_SHORT_NAME = (
*** 46,52 ****
  )
  
  JAMO_FINAL_SHORT_NAME = (
!     '', 'G', 'GG', 'GS', 'N', 'NI', 'NH', 'D', 'L', 'LG', 'LM', 'LB', 'LS',
      'LT', 'LP', 'LH', 'M', 'B', 'BS', 'S', 'SS', 'NG', 'J', 'C', 'K', 'T',
      'P', 'H'
  )
--- 46,52 ----
  )
  
  JAMO_FINAL_SHORT_NAME = (
!     '', 'G', 'GG', 'GS', 'N', 'NJ', 'NH', 'D', 'L', 'LG', 'LM', 'LB', 'LS',
      'LT', 'LP', 'LH', 'M', 'B', 'BS', 'S', 'SS', 'NG', 'J', 'C', 'K', 'T',
      'P', 'H'
  )
*************** def write_header_width(outfile, unicode_
*** 204,210 ****
                    + '{:s}.\n'.format(unicode_version))
      outfile.write('% - Default width is 1.\n')
      outfile.write('% - Double-width characters have width 2; generated from\n')
!     outfile.write('%        "grep \'^[^;]*;[WF]\' EastAsianWidth.txt"\n')
      outfile.write('% - Non-spacing characters have width 0; '
                    + 'generated from PropList.txt or\n')
      outfile.write('%   "grep \'^[^;]*;[^;]*;[^;]*;[^;]*;NSM;\' '
--- 204,210 ----
                    + '{:s}.\n'.format(unicode_version))
      outfile.write('% - Default width is 1.\n')
      outfile.write('% - Double-width characters have width 2; generated from\n')
!     outfile.write('%        "grep \'^[^;]*;\\s*[WF]\' EastAsianWidth.txt"\n')
      outfile.write('% - Non-spacing characters have width 0; '
                    + 'generated from PropList.txt or\n')
      outfile.write('%   "grep \'^[^;]*;[^;]*;[^;]*;[^;]*;NSM;\' '
*************** if __name__ == "__main__":
*** 339,346 ****
      with open(ARGS.east_asian_with_file, mode='r') as EAST_ASIAN_WIDTH_FILE:
          EAST_ASIAN_WIDTH_LINES = []
          for LINE in EAST_ASIAN_WIDTH_FILE:
!             # If characters from EastAasianWidth.txt which are from
!             # from reserved ranges (i.e. not yet assigned code points)
              # are added to the WIDTH section of the UTF-8 file, then
              # “make check” produces “Unknown Character” errors for
              # these code points because such unassigned code points
--- 339,346 ----
      with open(ARGS.east_asian_with_file, mode='r') as EAST_ASIAN_WIDTH_FILE:
          EAST_ASIAN_WIDTH_LINES = []
          for LINE in EAST_ASIAN_WIDTH_FILE:
!             # If characters from EastAsianWidth.txt which are from
!             # reserved ranges (i.e. not yet assigned code points)
              # are added to the WIDTH section of the UTF-8 file, then
              # “make check” produces “Unknown Character” errors for
              # these code points because such unassigned code points
*************** if __name__ == "__main__":
*** 350,356 ****
              # the EastAsianWidth.txt file.
              if re.match(r'.*<reserved-.+>\.\.<reserved-.+>.*', LINE):
                  continue
!             if re.match(r'^[^;]*;\s*[WF]\s*', LINE):
                  EAST_ASIAN_WIDTH_LINES.append(LINE.strip())
      with open(ARGS.prop_list_file, mode='r') as PROP_LIST_FILE:
          PROP_LIST_LINES = []
--- 350,356 ----
              # the EastAsianWidth.txt file.
              if re.match(r'.*<reserved-.+>\.\.<reserved-.+>.*', LINE):
                  continue
!             if re.match(r'^[^;]*;\s*[WF]', LINE):
                  EAST_ASIAN_WIDTH_LINES.append(LINE.strip())
      with open(ARGS.prop_list_file, mode='r') as PROP_LIST_FILE:
          PROP_LIST_LINES = []
diff -Nrcpad gcc-14.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py gcc-15.1.0/contrib/unicode/gen_libstdcxx_unicode_data.py
*** gcc-14.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unicode/gen_libstdcxx_unicode_data.py	Fri Apr 25 08:17:59 2025
*************** print("""
*** 63,69 ****
  """)
  print("#ifndef _GLIBCXX_GET_UNICODE_DATA")
  print('# error "This is not a public header, do not include it directly"')
! print("#elif _GLIBCXX_GET_UNICODE_DATA != 150100")
  print('# error "Version mismatch for Unicode static data"')
  print("#endif\n")
  
--- 63,69 ----
  """)
  print("#ifndef _GLIBCXX_GET_UNICODE_DATA")
  print('# error "This is not a public header, do not include it directly"')
! print("#elif _GLIBCXX_GET_UNICODE_DATA != 160000")
  print('# error "Version mismatch for Unicode static data"')
  print("#endif\n")
  
*************** edges = find_edges(all_code_points, 1)
*** 126,132 ****
  
  # Table for std::__unicode::__format_width(char32_t)
  
! print("  // Table generated by contrib/unicode/gen_std_format_width.py,")
  print("  // from EastAsianWidth.txt from the Unicode standard.");
  print("  inline constexpr char32_t __width_edges[] = {", end="")
  for i, e in enumerate(edges):
--- 126,132 ----
  
  # Table for std::__unicode::__format_width(char32_t)
  
! print("  // Table generated by contrib/unicode/gen_libstdcxx_unicode_data.py,")
  print("  // from EastAsianWidth.txt from the Unicode standard.");
  print("  inline constexpr char32_t __width_edges[] = {", end="")
  for i, e in enumerate(edges):
*************** for i, e in enumerate(edges):
*** 138,143 ****
--- 138,182 ----
      print("{:#x},".format(c), end="")
  print("\n  };\n")
  
+ # By default escape each code point
+ all_code_points = [True] * (1 + 0x10FFFF)
+ 
+ escaped_general_categories = {
+     # Separator (Z)
+     "Zs", "Zl", "Zp",
+     # Other (C)
+     "Cc", "Cf", "Cs", "Co", "Cn",
+ }
+ 
+ # Extract General_Category and detrmine if it should be escaped 
+ # for all code points.
+ for line in open("DerivedGeneralCategory.txt", "r"):
+     # Example lines:
+     # 0530          ; Cn #       <reserved-0530>
+     # 0557..0558    ; Cn #   [2] <reserved-0557>..<reserved-0558>
+     line = line.split("#")[0]
+     if re.match(r'^[\dA-Fa-f][^;]+;', line):
+         code_points, general_category = line.split(";")
+         gc_escaped = general_category.strip() in escaped_general_categories
+         process_code_points(code_points, gc_escaped)
+ 
+ edges = find_edges(all_code_points)
+ 
+ shift_bits = 1
+ print("  // Values generated by contrib/unicode/gen_libstdcxx_unicode_data.py,")
+ print("  // from DerivedGeneralCategory.txt from the Unicode standard.");
+ print("  // Entries are (code_point << 1) + escape.")
+ print("  inline constexpr uint32_t __escape_edges[] = {", end="")
+ for i, e in enumerate(edges):
+     if i % 6:
+         print(" ", end="")
+     else:
+         print("\n    ", end="")
+     c, p = e
+     x = (c << shift_bits) + (1 if p else 0)
+     print("{0:#x},".format(x), end="")
+ print("\n  };\n")
+ 
  # By default every code point has Grapheme_Cluster_Break=Other.
  all_code_points = ["Other"] * (1 + 0x10FFFF)
  
*************** print("  };\n")
*** 167,173 ****
  
  # Tables for std::__unicode::_Grapheme_cluster_state
  
! print("  // Values generated by contrib/unicode/gen_std_format_width.py,")
  print("  // from GraphemeBreakProperty.txt from the Unicode standard.");
  print("  // Entries are (code_point << shift_bits) + property.")
  print("  inline constexpr int __gcb_shift_bits = {:#x};".format(shift_bits))
--- 206,212 ----
  
  # Tables for std::__unicode::_Grapheme_cluster_state
  
! print("  // Values generated by contrib/unicode/gen_libstdcxx_unicode_data.py,")
  print("  // from GraphemeBreakProperty.txt from the Unicode standard.");
  print("  // Entries are (code_point << shift_bits) + property.")
  print("  inline constexpr int __gcb_shift_bits = {:#x};".format(shift_bits))
*************** edges = find_edges(all_code_points)
*** 209,215 ****
  incb_props = {None:0, "Consonant":1, "Extend":2}
  print("  enum class _InCB { _Consonant = 1, _Extend = 2 };\n")
  # Table for std::__unicode::__incb_property
! print("  // Values generated by contrib/unicode/gen_std_format_width.py,")
  print("  // from DerivedCoreProperties.txt from the Unicode standard.");
  print("  // Entries are (code_point << 2) + property.")
  print("  inline constexpr uint32_t __incb_edges[] = {", end="")
--- 248,254 ----
  incb_props = {None:0, "Consonant":1, "Extend":2}
  print("  enum class _InCB { _Consonant = 1, _Extend = 2 };\n")
  # Table for std::__unicode::__incb_property
! print("  // Values generated by contrib/unicode/gen_libstdcxx_unicode_data.py,")
  print("  // from DerivedCoreProperties.txt from the Unicode standard.");
  print("  // Entries are (code_point << 2) + property.")
  print("  inline constexpr uint32_t __incb_edges[] = {", end="")
*************** for line in open("emoji-data.txt", "r"):
*** 238,244 ****
  edges = find_edges(all_code_points, False)
  
  # Table for std::__unicode::__is_extended_pictographic
! print("  // Table generated by contrib/unicode/gen_std_format_width.py,")
  print("  // from emoji-data.txt from the Unicode standard.");
  print("  inline constexpr char32_t __xpicto_edges[] = {", end="")
  for i, e in enumerate(edges):
--- 277,283 ----
  edges = find_edges(all_code_points, False)
  
  # Table for std::__unicode::__is_extended_pictographic
! print("  // Table generated by contrib/unicode/gen_libstdcxx_unicode_data.py,")
  print("  // from emoji-data.txt from the Unicode standard.");
  print("  inline constexpr char32_t __xpicto_edges[] = {", end="")
  for i, e in enumerate(edges):
diff -Nrcpad gcc-14.2.0/contrib/unused_functions.py gcc-15.1.0/contrib/unused_functions.py
*** gcc-14.2.0/contrib/unused_functions.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/unused_functions.py	Fri Apr 25 08:17:59 2025
***************
*** 1,7 ****
  #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  # Inspired by bloat-o-meter from busybox.
  
--- 1,7 ----
  #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
! # Copyright (C) 2018-2025 Free Software Foundation, Inc.
  # Contributed by Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  # Inspired by bloat-o-meter from busybox.
  
diff -Nrcpad gcc-14.2.0/contrib/update-copyright.py gcc-15.1.0/contrib/update-copyright.py
*** gcc-14.2.0/contrib/update-copyright.py	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/update-copyright.py	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  #!/usr/bin/env python3
  #
! # Copyright (C) 2013-2024 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,6 ----
  #!/usr/bin/env python3
  #
! # Copyright (C) 2013-2025 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** class GCCFilter (GenericFilter):
*** 560,565 ****
--- 560,567 ----
  
                  # Weird ways to compose copyright year
                  'GmcOptions.cc',
+                 'gen-evolution.awk',
+                 'gen-cxxapi-file.py',
                  ])
  
          self.skip_dirs |= set ([
*************** class TestsuiteFilter (GenericFilter):
*** 587,592 ****
--- 589,599 ----
      def __init__ (self):
          GenericFilter.__init__ (self)
  
+         self.skip_files |= set ([
+                 # Weird ways to compose copyright year
+                 'spec-example-4.sarif',
+                 ])
+ 
          self.skip_extensions |= set ([
                  # Don't change the tests, which could be woend by anyone.
                  '.c',
*************** class LibCppFilter (GenericFilter):
*** 620,625 ****
--- 627,638 ----
      def __init__ (self):
          GenericFilter.__init__ (self)
  
+         self.skip_files |= set ([
+                 # Generated file with the generated strings sometimes
+                 # matching the regexps.
+                 'uname2c.h',
+                 ])
+ 
          self.skip_extensions |= set ([
                  # Maintained by the translation project.
                  '.po',
*************** class GCCCmdLine (CmdLine):
*** 779,784 ****
--- 792,798 ----
          self.add_dir ('libgfortran')
          # libgo is imported from upstream.
          self.add_dir ('libgomp')
+         self.add_dir ('libgrust')
          self.add_dir ('libiberty')
          self.add_dir ('libitm')
          self.add_dir ('libobjc')
*************** class GCCCmdLine (CmdLine):
*** 806,811 ****
--- 820,826 ----
              'libgcc',
              'libgfortran',
              'libgomp',
+             'libgrust',
              'libiberty',
              'libitm',
              'libobjc',
diff -Nrcpad gcc-14.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim gcc-15.1.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
*** gcc-14.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  " Vim file type detection rules for GCC development
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Vim file type detection rules for GCC development
  "
! " Copyright (C) 2018-2025 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim gcc-15.1.0/contrib/vim-gcc-dev/syntax/gcc-match.vim
*** gcc-14.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/vim-gcc-dev/syntax/gcc-match.vim	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  " Vim syntax highlighting rules for GCC match-and-simplify language.
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Vim syntax highlighting rules for GCC match-and-simplify language.
  "
! " Copyright (C) 2018-2025 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim gcc-15.1.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim
*** gcc-14.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  " Syntax highlighting rules for RTL dump files (for Vim).
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Syntax highlighting rules for RTL dump files (for Vim).
  "
! " Copyright (C) 2018-2025 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/vim-gcc-dev/syntax/gimple.vim gcc-15.1.0/contrib/vim-gcc-dev/syntax/gimple.vim
*** gcc-14.2.0/contrib/vim-gcc-dev/syntax/gimple.vim	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/vim-gcc-dev/syntax/gimple.vim	Fri Apr 25 08:17:59 2025
***************
*** 1,6 ****
  " Syntax highlighting rules for GIMPLE dump files (for Vim).
  "
! " Copyright (C) 2015-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Syntax highlighting rules for GIMPLE dump files (for Vim).
  "
! " Copyright (C) 2015-2025 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-14.2.0/contrib/vimrc gcc-15.1.0/contrib/vimrc
*** gcc-14.2.0/contrib/vimrc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/contrib/vimrc	Fri Apr 25 08:17:59 2025
***************
*** 11,17 ****
  "   $ make vimrc
  " from GCC build folder.
  " 
! " Copyright (C) 2014-2024 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
--- 11,17 ----
  "   $ make vimrc
  " from GCC build folder.
  " 
! " Copyright (C) 2014-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
diff -Nrcpad gcc-14.2.0/fixincludes/ChangeLog gcc-15.1.0/fixincludes/ChangeLog
*** gcc-14.2.0/fixincludes/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/fixincludes/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2023-11-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
  
--- 1,47 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2024-07-11  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	Revert:
! 	2024-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (stdio_stdarg_h): Skip on darwin.
! 
! 2024-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (stdio_stdarg_h): Skip on darwin.
! 
! 2024-07-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (darwin_objc_runtime_1): Add bypass.
! 
! 2024-06-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (apple_local_stdio_fn_deprecation): Also apply to
! 	_stdio.h.
! 
! 2024-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (math_exception): Bypass on __cplusplus.
! 	* tests/base/math.h: Regenerate.
! 
! 2024-06-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (darwin_stdint_7, darwin_dispatch_object_1,
! 	darwin_os_trace_2, darwin_os_base_1): Include bypasses
! 	for recent headers, fixed by Apple.
! 
! 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
! 
! 	* mkfixinc.sh: Extend for *-mingw32* targets.
  
  2023-11-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
  
diff -Nrcpad gcc-14.2.0/fixincludes/fixincl.x gcc-15.1.0/fixincludes/fixincl.x
*** gcc-14.2.0/fixincludes/fixincl.x	Thu Aug  1 08:18:42 2024
--- gcc-15.1.0/fixincludes/fixincl.x	Fri Apr 25 08:21:27 2025
***************
*** 2,12 ****
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  August 17, 2023 at 10:16:38 AM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 17 10:16:38 CEST 2023
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
--- 2,12 ----
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  July 10, 2024 at 02:49:05 PM by AutoGen 5.18.16
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Wed Jul 10 14:49:05 CEST 2024
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
*************** tSCC zApple_Local_Stdio_Fn_DeprecationNa
*** 2619,2625 ****
   *  File name selection pattern
   */
  tSCC zApple_Local_Stdio_Fn_DeprecationList[] =
!   "stdio.h\0";
  /*
   *  Machine/OS name selection pattern
   */
--- 2619,2625 ----
   *  File name selection pattern
   */
  tSCC zApple_Local_Stdio_Fn_DeprecationList[] =
!   "stdio.h\0_stdio.h\0";
  /*
   *  Machine/OS name selection pattern
   */
*************** tSCC* apzDarwin_Os_Trace_2Machs[] = {
*** 3070,3077 ****
  tSCC zDarwin_Os_Trace_2Select0[] =
         "typedef.*\\^os_trace_payload_t.*";
  
! #define    DARWIN_OS_TRACE_2_TEST_CT  1
  static tTestDesc aDarwin_Os_Trace_2Tests[] = {
    { TT_EGREP,    zDarwin_Os_Trace_2Select0, (regex_t*)NULL }, };
  
  /*
--- 3070,3084 ----
  tSCC zDarwin_Os_Trace_2Select0[] =
         "typedef.*\\^os_trace_payload_t.*";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zDarwin_Os_Trace_2Bypass0[] =
!        "#ifdef __BLOCKS__";
! 
! #define    DARWIN_OS_TRACE_2_TEST_CT  2
  static tTestDesc aDarwin_Os_Trace_2Tests[] = {
+   { TT_NEGREP,   zDarwin_Os_Trace_2Bypass0, (regex_t*)NULL },
    { TT_EGREP,    zDarwin_Os_Trace_2Select0, (regex_t*)NULL }, };
  
  /*
*************** objc_enumerateClasses.*\n\
*** 3117,3124 ****
  .*\n\
  .*OBJC_REFINED_FOR_SWIFT.*";
  
! #define    DARWIN_OBJC_RUNTIME_1_TEST_CT  1
  static tTestDesc aDarwin_Objc_Runtime_1Tests[] = {
    { TT_EGREP,    zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, };
  
  /*
--- 3124,3138 ----
  .*\n\
  .*OBJC_REFINED_FOR_SWIFT.*";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zDarwin_Objc_Runtime_1Bypass0[] =
!        "#ifdef __BLOCKS__";
! 
! #define    DARWIN_OBJC_RUNTIME_1_TEST_CT  2
  static tTestDesc aDarwin_Objc_Runtime_1Tests[] = {
+   { TT_NEGREP,   zDarwin_Objc_Runtime_1Bypass0, (regex_t*)NULL },
    { TT_EGREP,    zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, };
  
  /*
*************** tSCC zDarwin_Os_Base_1Select0[] =
*** 3199,3206 ****
         "#define __has_attribute.*\n\
  #endif";
  
! #define    DARWIN_OS_BASE_1_TEST_CT  1
  static tTestDesc aDarwin_Os_Base_1Tests[] = {
    { TT_EGREP,    zDarwin_Os_Base_1Select0, (regex_t*)NULL }, };
  
  /*
--- 3213,3227 ----
         "#define __has_attribute.*\n\
  #endif";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zDarwin_Os_Base_1Bypass0[] =
!        "#define __has_extension";
! 
! #define    DARWIN_OS_BASE_1_TEST_CT  2
  static tTestDesc aDarwin_Os_Base_1Tests[] = {
+   { TT_NEGREP,   zDarwin_Os_Base_1Bypass0, (regex_t*)NULL },
    { TT_EGREP,    zDarwin_Os_Base_1Select0, (regex_t*)NULL }, };
  
  /*
*************** tSCC* apzDarwin_Dispatch_Object_1Machs[]
*** 3239,3246 ****
  tSCC zDarwin_Dispatch_Object_1Select0[] =
         "typedef void.*\\^dispatch_block_t.*";
  
! #define    DARWIN_DISPATCH_OBJECT_1_TEST_CT  1
  static tTestDesc aDarwin_Dispatch_Object_1Tests[] = {
    { TT_EGREP,    zDarwin_Dispatch_Object_1Select0, (regex_t*)NULL }, };
  
  /*
--- 3260,3274 ----
  tSCC zDarwin_Dispatch_Object_1Select0[] =
         "typedef void.*\\^dispatch_block_t.*";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zDarwin_Dispatch_Object_1Bypass0[] =
!        "#ifdef __BLOCKS__";
! 
! #define    DARWIN_DISPATCH_OBJECT_1_TEST_CT  2
  static tTestDesc aDarwin_Dispatch_Object_1Tests[] = {
+   { TT_NEGREP,   zDarwin_Dispatch_Object_1Bypass0, (regex_t*)NULL },
    { TT_EGREP,    zDarwin_Dispatch_Object_1Select0, (regex_t*)NULL }, };
  
  /*
*************** tSCC zDarwin_Stdint_7Select0[] =
*** 3591,3598 ****
         "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n\
  #define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";
  
! #define    DARWIN_STDINT_7_TEST_CT  1
  static tTestDesc aDarwin_Stdint_7Tests[] = {
    { TT_EGREP,    zDarwin_Stdint_7Select0, (regex_t*)NULL }, };
  
  /*
--- 3619,3633 ----
         "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n\
  #define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zDarwin_Stdint_7Bypass0[] =
!        "#ifdef __LP64__";
! 
! #define    DARWIN_STDINT_7_TEST_CT  2
  static tTestDesc aDarwin_Stdint_7Tests[] = {
+   { TT_NEGREP,   zDarwin_Stdint_7Bypass0, (regex_t*)NULL },
    { TT_EGREP,    zDarwin_Stdint_7Select0, (regex_t*)NULL }, };
  
  /*
*************** tSCC zMath_ExceptionList[] =
*** 6765,6773 ****
  /*
   *  Machine/OS name selection pattern
   */
! tSCC* apzMath_ExceptionMachs[] = {
!         "*-*-solaris2.1[0-9]*",
!         (const char*)NULL };
  
  /*
   *  content selection pattern - do fix if pattern found
--- 6800,6806 ----
  /*
   *  Machine/OS name selection pattern
   */
! #define apzMath_ExceptionMachs (const char**)NULL
  
  /*
   *  content selection pattern - do fix if pattern found
*************** tSCC zMath_ExceptionSelect0[] =
*** 6779,6785 ****
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zMath_ExceptionBypass0[] =
!        "We have a problem when using C\\+\\+|for C\\+\\+, _[a-z0-9A-Z_]+_exception; for C, exception";
  
  #define    MATH_EXCEPTION_TEST_CT  2
  static tTestDesc aMath_ExceptionTests[] = {
--- 6812,6818 ----
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zMath_ExceptionBypass0[] =
!        "__cplusplus";
  
  #define    MATH_EXCEPTION_TEST_CT  2
  static tTestDesc aMath_ExceptionTests[] = {
*************** static const char* apzX11_SprintfPatch[]
*** 11169,11175 ****
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          313
  #define MACH_LIST_SIZE_LIMIT 187
  #define FIX_COUNT            274
  
--- 11202,11208 ----
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          318
  #define MACH_LIST_SIZE_LIMIT 187
  #define FIX_COUNT            274
  
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 12276,12282 ****
  
    {  zMath_ExceptionName,    zMath_ExceptionList,
       apzMath_ExceptionMachs,
!      MATH_EXCEPTION_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
       aMath_ExceptionTests,   apzMath_ExceptionPatch, 0 },
  
    {  zMath_Huge_Val_From_Dbl_MaxName,    zMath_Huge_Val_From_Dbl_MaxList,
--- 12309,12315 ----
  
    {  zMath_ExceptionName,    zMath_ExceptionList,
       apzMath_ExceptionMachs,
!      MATH_EXCEPTION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aMath_ExceptionTests,   apzMath_ExceptionPatch, 0 },
  
    {  zMath_Huge_Val_From_Dbl_MaxName,    zMath_Huge_Val_From_Dbl_MaxList,
diff -Nrcpad gcc-14.2.0/fixincludes/inclhack.def gcc-15.1.0/fixincludes/inclhack.def
*** gcc-14.2.0/fixincludes/inclhack.def	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/fixincludes/inclhack.def	Fri Apr 25 08:17:59 2025
*************** fix = {
*** 1273,1278 ****
--- 1273,1279 ----
      hackname  = apple_local_stdio_fn_deprecation;
      mach      = "*-*-*darwin2*";
      files     = stdio.h;
+     files     = _stdio.h;
      select    = "__deprecated_msg([^\n]*)$";
      c_fix     = format;
      c_fix_arg = "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n"
*************** fix = {
*** 1486,1491 ****
--- 1487,1493 ----
    mach      = "*-*-darwin*";
    files     = os/trace.h;
    select    = "typedef.*\\^os_trace_payload_t.*";
+   bypass    = "#ifdef __BLOCKS__";
    c_fix     = format;
    c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
    test_text = "typedef void (^os_trace_payload_t)(xpc_object_t xdict);";
*************** fix = {
*** 1510,1515 ****
--- 1512,1518 ----
  	.*
  	.*OBJC_REFINED_FOR_SWIFT.*
  	_EOSelect_;
+   bypass    = "#ifdef __BLOCKS__";
    c_fix     = format;
    c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
    test_text = <<- _OBJC_RUNTIME_1
*************** fix = {
*** 1566,1571 ****
--- 1569,1575 ----
  #define __has_attribute.*
  #endif
  OS_BASE_1_SEL;
+   bypass    = "#define __has_extension";
    c_fix     = format;
    c_fix_arg = <<- OS_BASE_1_FIX
  %0
*************** fix = {
*** 1589,1594 ****
--- 1593,1599 ----
    mach      = "*-*-darwin*";
    files     = dispatch/object.h;
    select    = "typedef void.*\\^dispatch_block_t.*";
+   bypass    = "#ifdef __BLOCKS__";
    c_fix     = format;
    c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
    test_text = <<- DISPATCH_OBJECT_1_TEST
*************** fix = {
*** 1791,1796 ****
--- 1796,1802 ----
  		"#endif";
      select    = "#define INTMAX_C\\(v\\)[ \t]+\\(v ## LL\\)\n"
  		"#define UINTMAX_C\\(v\\)[ \t]+\\(v ## ULL\\)";
+     bypass = '#ifdef __LP64__';
      test_text = "#define INTMAX_C(v)  (v ## LL)\n"
  		"#define UINTMAX_C(v) (v ## ULL)";
  };
*************** fix = {
*** 3408,3424 ****
      hackname  = math_exception;
      files     = math.h;
      select    = "struct exception";
!     /*
!      * This should be bypassed on __cplusplus, but some supposedly C++
!      * aware headers, such as Solaris 8 and 9, don't wrap their struct
!      * exception either.  So currently we bypass only for glibc, based on a
!      * comment in the fixed glibc header.  Ick.
!      */
!     bypass    = 'We have a problem when using C\+\+|for C\+\+, '
! 		'_[a-z0-9A-Z_]+_exception; for C, exception';
!     /* The Solaris 10 headers already get this right.  */
!     mach   = '*-*-solaris2.1[0-9]*';
!     not_machine = true;
      c_fix     = wrap;
  
      c_fix_arg = "#ifdef __cplusplus\n"
--- 3414,3420 ----
      hackname  = math_exception;
      files     = math.h;
      select    = "struct exception";
!     bypass    = '__cplusplus';
      c_fix     = wrap;
  
      c_fix_arg = "#ifdef __cplusplus\n"
diff -Nrcpad gcc-14.2.0/fixincludes/mkfixinc.sh gcc-15.1.0/fixincludes/mkfixinc.sh
*** gcc-14.2.0/fixincludes/mkfixinc.sh	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/fixincludes/mkfixinc.sh	Fri Apr 25 08:17:59 2025
*************** target=fixinc.sh
*** 12,19 ****
  # Check for special fix rules for particular targets
  case $machine in
      i?86-*-cygwin* | \
!     i?86-*-mingw32* | \
!     x86_64-*-mingw32* | \
      powerpc-*-eabisim* | \
      powerpc-*-eabi*    | \
      powerpc-*-rtems*   | \
--- 12,18 ----
  # Check for special fix rules for particular targets
  case $machine in
      i?86-*-cygwin* | \
!     *-mingw32* | \
      powerpc-*-eabisim* | \
      powerpc-*-eabi*    | \
      powerpc-*-rtems*   | \
diff -Nrcpad gcc-14.2.0/fixincludes/tests/base/math.h gcc-15.1.0/fixincludes/tests/base/math.h
*** gcc-14.2.0/fixincludes/tests/base/math.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/fixincludes/tests/base/math.h	Fri Apr 25 08:17:59 2025
***************
*** 7,18 ****
      This had to be done to correct non-standard usages in the
      original, manufacturer supplied header file.  */
  
- #ifndef FIXINC_WRAP_MATH_H_MATH_EXCEPTION
- #define FIXINC_WRAP_MATH_H_MATH_EXCEPTION 1
- 
- #ifdef __cplusplus
- #define exception __math_exception
- #endif
  
  
  #if defined( BROKEN_CABS_CHECK )
--- 7,12 ----
*************** int foo;
*** 146,153 ****
  #endif /* _C99 */
  
  #endif  /* VXWORKS_MATH_H_FP_C99_CHECK */
- #ifdef __cplusplus
- #undef exception
- #endif
- 
- #endif  /* FIXINC_WRAP_MATH_H_MATH_EXCEPTION */
--- 140,142 ----
diff -Nrcpad gcc-14.2.0/gcc/ABOUT-GCC-NLS gcc-15.1.0/gcc/ABOUT-GCC-NLS
*** gcc-14.2.0/gcc/ABOUT-GCC-NLS	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ABOUT-GCC-NLS	Fri Apr 25 08:17:59 2025
*************** configure GCC with --enable-maintainer-m
*** 65,71 ****
  rebuilt.
  
  
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 65,71 ----
  rebuilt.
  
  
! Copyright (C) 1998-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/BASE-VER gcc-15.1.0/gcc/BASE-VER
*** gcc-14.2.0/gcc/BASE-VER	Thu Aug  1 08:18:20 2024
--- gcc-15.1.0/gcc/BASE-VER	Fri Apr 25 08:21:06 2025
***************
*** 1 ****
! 14.2.0
--- 1 ----
! 15.1.0
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog gcc-15.1.0/gcc/ChangeLog
*** gcc-14.2.0/gcc/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/gcc/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,10734 ****
! 2024-08-01  Release Manager
! 
! 	* GCC 14.2.0 released.
! 
! 2024-07-30  Lingling Kong  <lingling.kong@intel.com>
! 
! 	PR target/115978
! 	* config/i386/driver-i386.cc (host_detect_local_cpu):  Enable
! 	APX_F only for 64-bit codegen.
! 	* config/i386/i386-options.cc (DEF_PTA):  Skip PTA_APX_F if
! 	not in 64-bit mode.
! 
! 2024-07-29  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2024-07-24  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/116057
! 	* tree-ssa-ccp.cc (likely_value): Also walk CTORs in stmt
! 	operands to look for constants.
! 
! 2024-07-29  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/116055
! 	* ipa-modref.cc (analyze_function): Do not ICE when flags regress.
! 
! 2024-07-29  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* config/i386/avx512dqintrin.h
! 	(_mm_mask_fpclass_ss_mask): Correct operand order.
! 	(_mm_mask_fpclass_sd_mask): Ditto.
! 	(_mm256_maskz_reduce_round_ss): Use __builtin_ia32_reducess_mask_round
! 	instead of __builtin_ia32_reducesd_mask_round.
! 	(_mm_reduce_round_sd): Use -1 as mask since it is non-mask.
! 	(_mm_reduce_round_ss): Ditto.
! 	* config/i386/avx512vlbwintrin.h
! 	(_mm256_mask_alignr_epi8): Correct operand usage.
! 	(_mm_mask_alignr_epi8): Ditto.
! 	* config/i386/avx512vlintrin.h (_mm_mask_alignr_epi64): Ditto.
! 
! 2024-07-24  Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	Backported from master:
! 	2024-07-24  Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	PR target/116035
! 	* config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip
! 	for XTheadMemIdx.
! 
! 2024-07-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2024-07-23  Jakub Jelinek  <jakub@redhat.com>
! 		    Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR tree-optimization/116034
! 	* tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR
! 	if MEM_REF offset is equal to element type size.
! 
! 2024-07-23  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* config/i386/i386.md (prefetchi): Change to %a.
! 
! 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	Backported from master:
! 	2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/111613
! 	* ipa-modref.cc (analyze_parms): Do not preserve EAF_NO_DIRECT_READ and
! 	EAF_NO_INDIRECT_READ from past flags.
! 
! 2024-07-22  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	Backported from master:
! 	2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/114759
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Disallow
! 	CPUs and ABIs that do no support the ROP protection insns.
! 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Remove now
! 	unneeded tests.
! 	(rs6000_emit_prologue): Likewise.
! 	Remove unneeded gcc_assert.
! 	(rs6000_emit_epilogue): Likewise.
! 	* config/rs6000/rs6000.md: Likewise.
! 
! 2024-07-22  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	Backported from master:
! 	2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/114759
! 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Use TARGET_POWER8.
! 	(rs6000_emit_prologue): Likewise.
! 	* config/rs6000/rs6000.md (hashchk): Likewise.
! 	(hashst): Likewise.
! 	Fix whitespace.
! 
! 2024-07-22  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	Backported from master:
! 	2024-06-17  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/115389
! 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Compute
! 	rop_hash_save_offset for non-Altivec compiles.
! 
! 2024-07-22  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	Backported from master:
! 	2024-06-08  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Update comment.
! 
! 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	Backported from master:
! 	2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/115033
! 	* ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Fix checking of
! 	EAF flags when analysing values dereferenced as function parameters.
! 
! 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	Backported from master:
! 	2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/114207
! 	* ipa-prop.cc (unadjusted_ptr_and_unit_offset): Fix accounting of offsets in ADDR_EXPR.
! 
! 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	Backported from master:
! 	2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/115277
! 	* ipa-icf-gimple.cc (func_checker::compare_loops): compare loop
! 	bounds.
! 
! 2024-07-22  Jan Hubicka  <jh@suse.cz>
! 
! 	Backported from master:
! 	2024-05-14  Jan Hubicka  <jh@suse.cz>
! 
! 	PR ipa/113291
! 	* ipa-inline.cc (enum can_inline_edge_by_limits_flags): New enum.
! 	(can_inline_edge_by_limits_p): Take flags instead of multiple bools; add flag
! 	for forcing inlinie limits.
! 	(can_early_inline_edge_p): Update.
! 	(want_inline_self_recursive_call_p): Update; use FORCE_LIMITS mode.
! 	(check_callers): Update.
! 	(update_caller_keys): Update.
! 	(update_callee_keys): Update.
! 	(recursive_inlining): Update.
! 	(add_new_edges_to_heap): Update.
! 	(speculation_useful_p): Update.
! 	(inline_small_functions): Clear DECL_DISREGARD_INLINE_LIMITS on self recursion.
! 	(flatten_function): Update.
! 	(inline_to_all_callers_1): Update.
! 
! 2024-07-22  Maciej W. Rozycki  <macro@orcam.me.uk>
! 
! 	Backported from master:
! 	2024-06-29  Maciej W. Rozycki  <macro@orcam.me.uk>
! 
! 	PR rtl-optimization/115565
! 	* cse.cc (record_jump_cond): Use INT_MIN rather than -1 for
! 	`comparison_qty' if !REG_P.
! 
! 2024-07-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
! 
! 	* config/s390/3931.md (vlbr, vstbr, vrepi): Remove.
! 	* config/s390/s390.md (xdee): Add FPRX2 mapping.
! 	* config/s390/vector.md (bhfgq): Add TF mapping.
! 
! 2024-07-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	Backported from master:
! 	2024-07-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	* opt-suggestions.cc
! 	(option_proposer::build_option_suggestions): Pull OPTB
! 	definition out of the innermost loop.
! 
! 2024-07-19  René Rebe  <rene@exactcode.de>
! 
! 	Backported from master:
! 	2024-07-18  René Rebe  <rene@exactcode.de>
! 		    Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/97367
! 	* config/rs6000/rs6000.cc (rs6000_machine_from_flags): Do not consider
! 	OPTION_MASK_ALTIVEC.
! 	(emit_asm_machine): For Altivec compiles, emit a ".machine altivec".
! 
! 2024-07-19  Daniel Bertalan  <dani@danielbertalan.dev>
! 
! 	Backported from master:
! 	2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>
  
! 	* value-pointer-equiv.cc: Change NULL to nullptr.
  
! 2024-07-19  Robin Dapp  <rdapp@ventanamicro.com>
  
  	Backported from master:
! 	2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	* config/riscv/vector.md: Split vwadd.wx/vwsub.wx pattern and
! 	add extended_scalar patterns.
  
! 2024-07-19  Robin Dapp  <rdapp@ventanamicro.com>
  
  	Backported from master:
! 	2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/115068
! 	* config/riscv/vector.md:  Split vfw<insn>.wf pattern.
  
! 2024-07-19  Fangrui Song  <maskray@gcc.gnu.org>
  
  	Backported from master:
! 	2024-04-27  Fangrui Song  <maskray@gcc.gnu.org>
  
! 	* config/riscv/elf.h (LINK_SPEC): Add -X.
! 	* config/riscv/freebsd.h (LINK_SPEC): Add -X.
! 	* config/riscv/linux.h (LINK_SPEC): Add -X.
  
! 2024-07-19  Christoph Müllner  <christoph.muellner@vrull.eu>
  
  	Backported from master:
! 	2024-04-29  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif,
! 	zicclsm, and ziccrse into riscv_zi_subext.
! 	* config/riscv/riscv.opt: Define MASK_ZIC64B for
! 	riscv_ziccmo_subext.
  
! 2024-07-19  Pan Li  <pan2.li@intel.com>
  
  	Backported from master:
! 	2024-05-13  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114988
! 	* config/riscv/riscv-vector-builtins.cc
! 	(validate_instance_type_required_extensions): New func impl to
! 	validate the intrinisc func type ops.
! 	(expand_builtin): Validate instance type before expand.
  
! 2024-07-19  Liao Shihua  <shihua@iscas.ac.cn>
  
! 	Backported from master:
! 	2024-05-27  Liao Shihua  <shihua@iscas.ac.cn>
  
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Add TARGET_ZMMUL.
  
! 2024-07-19  Pan Li  <pan2.li@intel.com>
  
! 	Backported from master:
! 	2024-06-14  Pan Li  <pan2.li@intel.com>
  
! 	PR target/115456
! 	* config/riscv/vector-iterators.md: Leverage V_ZVFH instead of V
! 	which contains the VF_ZVFHMIN for alignment.
  
! 2024-07-19  Pan Li  <pan2.li@intel.com>
  
! 	Backported from master:
! 	2024-06-13  Pan Li  <pan2.li@intel.com>
  
! 	PR target/115456
! 	* config/riscv/autovec.md: Take ZVFH mode iterator instead of
! 	the ZVFHMIN for the alignment.
! 	* config/riscv/vector-iterators.md: Add 2 new iterator
! 	V_VLS_ZVFH and VLS_ZVFH.
  
! 2024-07-19  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
  
! 	Backported from master:
! 	2024-06-23  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
  
! 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Add a
! 	CONST0_RTX check.
  
! 2024-07-19  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	Backported from master:
! 	2024-07-05  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	* config/riscv/autovec.md: Add TU policy.
! 	* config/riscv/riscv-protos.h (enum insn_type): Define
! 	SCALAR_MOVE_MERGED_OP_TU.
  
! 2024-07-19  Fei Gao  <gaofei@eswincomputing.com>
  
! 	Backported from master:
! 	2024-07-08  Fei Gao  <gaofei@eswincomputing.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::riscv_subset_list):
! 	init m_subset_num to 0.
! 	(riscv_subset_list::add): increase m_subset_num once a subset added.
! 	(riscv_subset_list::finalize): call handle_implied_ext repeatly
! 	until no change in m_subset_num.
! 	* config/riscv/riscv-subset.h: add m_subset_num member.
  
! 2024-07-18  Marek Polacek  <polacek@redhat.com>
  
! 	Backported from master:
! 	2024-07-18  Marek Polacek  <polacek@redhat.com>
! 		    Jakub Jelinek   <jakub@redhat.com>
  
! 	PR c++/115865
! 	* tree-eh.cc (get_eh_else): Check that the result of
! 	gimple_seq_first_stmt is non-null.
  
! 2024-07-18  LIU Hao  <lh_mouse@126.com>
  
! 	Backported from master:
! 	2024-07-18  LIU Hao  <lh_mouse@126.com>
  
! 	PR rtl-optimization/115049
! 	* varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT
! 	declarations too, like weak ones.
  
! 2024-07-18  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	Backported from master:
! 	2024-06-07  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/115351
! 	* config/i386/i386.cc (ix86_rtx_costs): Provide estimates for
! 	the *concatditi3 and *insvti_highpart patterns, about two insns.
  
! 2024-07-18  Jan Hubicka  <jh@suse.cz>
  
! 	Backported from master:
! 	2024-05-16  Jan Hubicka  <jh@suse.cz>
  
! 	PR ipa/113787
! 	* ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): Do not
! 	look into TARGET_MEM_REFS with constant opreand 0.
  
! 2024-07-18  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	Backported from master:
! 	2024-06-24  Roger Sayle  <roger@nextmovesoftware.com>
! 		    Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113673
! 	* gimple-ssa-store-merging.cc (find_bswap_or_nop_load): Make static.
! 	(find_bswap_or_nop_1): Avoid transformations (load merging) when
! 	stmt_can_throw_internal indicates that a statement can trap.
  
! 2024-07-17  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Backported from master:
! 	2024-07-17  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/115526
! 	* config/alpha/alpha.md (movdi_er_high_g): Add cannot_copy attribute.
! 	(movdi_er_tlsgd): Ditto.
! 	(movdi_er_tlsldm): Ditto.
! 	(call_value_osf_<tls>): Ditto.
  
! 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-07-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/115887
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Use gsi_insert_on_edge
! 	instead of gsi_insert_on_edge_immediate and set edge_insertions to
! 	true.
  
! 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-07-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/115527
! 	* gimple-fold.cc (clear_padding_flush): Introduce endsize
! 	variable and use it instead of wordsize when comparing it against
! 	nonzero_last.
! 	(clear_padding_type): Increment off by sz.
  
! 2024-07-17  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	Backported from master:
! 	2024-06-11  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR tree-optimization/115382
! 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Use
! 	prepare_vec_mask.
! 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
! 	Remove static of prepare_vec_mask.
! 	* tree-vectorizer.h (prepare_vec_mask): Export.
  
! 2024-07-17  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115868
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly
! 	compute the number of mask copies required for vect_record_loop_mask.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115841
! 	* tree-vect-loop.cc (vect_transform_cycle_phi): Correctly
! 	place the partial vector reduction for the accumulator
! 	re-use when the main loop cannot be skipped but the
! 	epilogue can.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115843
! 	* tree-vect-loop-manip.cc
! 	(vect_set_loop_condition_partial_vectors_avx512): Properly
! 	bias the shift of the initial mask for alignment peeling.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-06-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115701
! 	* tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy):
! 	Only copy info from within the same BB.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-06-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115701
! 	* tree-ssanames.h (maybe_duplicate_ssa_info_at_copy): Declare.
! 	* tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): New
! 	function, split out from ...
! 	* tree-ssa-copy.cc (fini_copy_prop): ... here.
! 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): ...
! 	and here.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115867
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Properly
! 	guess the number of mask elements for integer mode masks.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	* config/i386/x86-tune-costs.h (znver5_cost): Update unaligned
! 	load and store cost from the aligned costs.
  
! 2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115843
! 	* config/i386/x86-tune-costs.h (znver4_cost): Update unaligned
! 	load and store cost from the aligned costs.
  
! 2024-07-16  Alexandre Oliva  <oliva@adacore.com>
  
! 	Backported from master:
! 	2024-07-12  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR target/115459
! 	* config/alpha/alpha.cc (alpha_expand_block_move): Adjust
! 	MEMs to match inferred alignment.
  
! 2024-07-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	Backported from master:
! 	2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::add):
! 	Allow adding enabled extension if m_allow_adding_dup is set.
! 	* config/riscv/riscv-subset.h: Add m_allow_adding_dup and setter.
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Allow adding enabled extensions.
  
! 2024-07-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	Backported from master:
! 	2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	PR target/115554
! 	PR target/115562
! 	* common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
! 	Remove.
! 	(struct riscv_func_target_hasher): Likewise.
! 	(riscv_func_decl_hash): Likewise.
! 	(riscv_func_target_hasher::hash): Likewise.
! 	(riscv_func_target_hasher::equal): Likewise.
! 	(riscv_current_subset_list): Likewise.
! 	(riscv_cmdline_subset_list): Remove obsolete space.
! 	(riscv_func_target_table_lazy_init): Remove.
! 	(riscv_func_target_get): Likewise.
! 	(riscv_func_target_put): Likewise.
! 	(riscv_func_target_remove_and_destory): Likewise.
! 	(riscv_arch_str): Generate from cmdline_subset_list.
! 	(riscv_set_arch_by_subset_list): Don't set current_subset_list.
! 	(riscv_parse_arch_string): Remove current_subset_list.
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
! 	Get subset list via riscv_cmdline_subset_list().
! 	* config/riscv/riscv-subset.h (riscv_current_subset_list):
! 	Remove prototype.
! 	(riscv_func_target_get): Likewise.
! 	(riscv_func_target_put): Likewise.
! 	(riscv_func_target_remove_and_destory): Likewise.
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Build base arch string from existing target options, if any.
! 	(riscv_target_attr_parser::update_settings): Store new arch
! 	string in target options.
! 	(riscv_process_one_target_attr): Whitespace fix.
! 	(riscv_process_target_attr): Drop opts argument.
! 	(riscv_option_valid_attribute_p): Properly save, change and restore
! 	target options.
! 	* config/riscv/riscv.cc (get_arch_str): New function.
! 	(riscv_declare_function_name): Get arch string for option-arch
! 	directive from function's target options.
! 	* config/riscv/riscv.opt: Add riscv_arch_string variable to
! 	march option.
  
! 2024-07-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	Backported from master:
! 	2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr):
! 	Fix comments and variable names.
  
! 2024-07-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	Backported from master:
! 	2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* common/config/riscv/riscv-common.cc (riscv_set_arch_by_subset_list):
! 	Fix overlong line.
! 	(riscv_parse_arch_string): Replace duplicated code by a call to
! 	riscv_set_arch_by_subset_list.
  
! 2024-07-16  Alexandre Oliva  <oliva@adacore.com>
  
! 	Backported from master:
! 	2024-07-15  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR target/113719
! 	* config/i386/i386-options.cc (ix86_option_override_internal):
! 	Move flag_omit_frame_pointer final overrider...
! 	(ix86_recompute_optlev_based_flags): ... here.
  
! 2024-07-16  Alexandre Oliva  <oliva@adacore.com>
  
! 	Backported from master:
! 	2024-07-03  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR target/113719
! 	* config/i386/i386-options.cc
! 	(ix86_override_options_after_change_1): Add opts and opts_set
! 	parms, operate on them, after factoring out of...
! 	(ix86_override_options_after_change): ... this.  Restore calls
! 	of ix86_default_align and ix86_recompute_optlev_based_flags.
! 	(ix86_option_override_internal): Call the factored-out bits.
  
! 2024-07-16  H.J. Lu  <hjl.tools@gmail.com>
  
! 	Backported from master:
! 	2024-07-08  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* config/i386/i386.cc (ix86_print_operand): Always generate
! 	branch hint for conditional branches.
! 	* config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split
! 	into ..
! 	(TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
! 	(TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
! 	* config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS):
! 	Split into ..
! 	(X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
! 	(X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
  
! 2024-07-15  liuhongt  <hongtao.liu@intel.com>
  
! 	Backported from master:
! 	2024-07-15  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/115872
! 	* tree-ssa-ccp.cc (convert_atomic_bit_not): Remove use_stmt after use_nop_stmt is removed.
! 	(optimize_atomic_bit_test_and): Ditto.
  
! 2024-07-13  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	Backported from master:
! 	2024-07-12  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/115752
! 	* config/loongarch/loongarch.cc
! 	(loongarch_hard_regno_mode_ok_uncached): Replace
! 	UNITS_PER_FPVALUE with UNITS_PER_HWFPVALUE.
! 	* config/loongarch/loongarch.h (UNITS_PER_FPVALUE): Delete.
  
! 2024-07-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	Backported from master:
! 	2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/vector.md (mov<mode>): Fix output template for
! 	movv1qi.
  
! 2024-07-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	Backported from master:
! 	2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.md (*icjump_64): Allow raw CC comparisons,
! 	i.e., any constant integer between 0 and 15 for CC comparisons.
  
! 2024-07-12  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
  
! 	Backported from master:
! 	2024-07-12  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
  
! 	PR target/115840
! 	* config/riscv/riscv.cc(riscv_preferred_else_value): Mark
! 	tmp_var as NO_WARNING.
  
! 2024-07-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	Backported from master:
! 	2024-07-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/115611
! 	* config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input
! 	scalar register pair when lane = 1.
  
! 2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Backported from master:
! 	2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR middle-end/115836
! 	* expmed.cc (emit_store_flag_1): Move calculation of
! 	scode just before its only usage site.
  
! 2024-07-10  Fei Gao  <gaofei@eswincomputing.com>
  
! 	PR target/113715
! 	* config/riscv/riscv.cc (riscv_zcmp_can_use_popretz): Removed.
! 	(riscv_gen_multi_pop_insn): Remove generation of cm.popretz.
  
! 2024-07-09  Alfie Richards  <alfie.richards@arm.com>
  
! 	Backported from master:
! 	2024-07-04  Alfie Richards  <alfie.richards@arm.com>
  
! 	PR target/114890
! 	* config/aarch64/aarch64-simd.md: Remove bigendian operand swap.
  
! 2024-07-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	Backported from master:
! 	2024-07-05  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/115153
! 	* config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before
! 	NEON.
! 	(thumb2_legitimate_index_p): Update comments.
! 	(output_move_neon): Use DFmode for vldr/vstr and non-checking
! 	adjust_address.
  
! 2024-07-09  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/cpuinfo.h (get_available_features): Correct
! 	AVX10 CPUID emulation to specify ecx value.
  
! 2024-07-09  Pan Li  <pan2.li@intel.com>
  
! 	Backported from master:
! 	2024-07-03  Pan Li  <pan2.li@intel.com>
  
! 	PR target/115763
! 	* config/riscv/vector.md (*pred_broadcast<mode>): Split into
! 	zvfh and zvfhmin part.
! 	(*pred_broadcast<mode>_zvfh): New define_insn for zvfh part.
! 	(*pred_broadcast<mode>_zvfhmin): Ditto but for zvfhmin.
  
! 2024-07-08  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115723
! 	* tree-vect-loop.cc (check_reduction_path): For a .COND_ADD
! 	verify the else value also refers to the reduction chain op.
  
! 2024-07-08  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-07-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115694
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Check the
! 	store is complex before rewriting it.
  
! 2024-07-08  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-06-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115669
! 	* tree-vect-slp.cc (vect_build_slp_tree_2): Do not reassociate
! 	chains that participate in a reduction.
  
! 2024-07-08  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-06-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115646
! 	* tree-call-cdce.cc (check_pow): Check for bit_sz values
! 	as allowed by transform.
  
! 2024-07-08  Pali Rohár  <pali@kernel.org>
  
! 	Backported from master:
! 	2024-06-24  Pali Rohár  <pali@kernel.org>
  
! 	* config/i386/mingw-w64.h (CPP_SPEC): Add missing -mcrtdll=
! 	cases: msvcr40*, msvcrtd*.
! 	* config/i386/mingw32.h (CPP_SPEC): Add missing -mcrtdll=
! 	cases: msvcr40*, msvcrtd*.
! 	* doc/invoke.texi: Add missing -mcrtdll= cases: msvcr40*,
! 	msvcrtd*, msvcr71*. Express wildcards with *. Document _UCRT.
  
! 2024-07-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/115591
! 	* config/riscv/riscv.cc (riscv_valid_lo_sum_p): Add missing test on
! 	tree_fits_uhwi_p before calling tree_to_uhwi.
  
! 2024-07-05  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	Backported from master:
! 	2024-07-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/115188
! 	* config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and
! 	'mem_and_no_t1_wback_op'.
! 	(unaligned_loadhiu): Likewise.
! 	(unaligned_storesi): Likewise.
! 	(unaligned_storehi): Likewise.
! 	* config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate.
! 	* config/arm/sync.md (arm_atomic_load<mode>): Use 'Uw' constraint.
! 	(arm_atomic_store<mode>): Likewise.
  
! 2024-07-05  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-07-05  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/87376
! 	* config/avr/avr-dimode.md: Use "nop_general_operand" instead
! 	of "general_operand" as predicate for all input operands.
  
! 2024-07-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	Backported from master:
! 	2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR target/115475
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
! 	Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16.
  
! 2024-07-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	Backported from master:
! 	2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR target/115457
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
! 	Define __ARM_FEATURE_BF16 for TARGET_BF16_FP.
  
! 2024-07-03  John David Anglin  <danglin@gcc.gnu.org>
  
! 	Revert:
! 	2023-10-05  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete.
  
! 2024-07-03  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR target/115691
! 	* config/pa/pa.md: Remove incorrect xmpyu patterns.
  
! 2024-07-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-07-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/98762
! 	* config/avr/avr.cc (avr_out_movqi_r_mr_reg_disp_tiny): Properly
! 	restore the base register when it is partially clobbered.
  
! 2024-07-03  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
! 		    Xionghu Luo  <xionghuluo@tencent.com>
  
! 	PR target/106069
! 	PR target/115355
! 	* config/rs6000/altivec.md (altivec_vmrghh_direct): Rename to ...
! 	(altivec_vmrghh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
! 	(altivec_vmrghh_direct_le): New define_insn.
! 	(altivec_vmrglh_direct): Rename to ...
! 	(altivec_vmrglh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
! 	(altivec_vmrglh_direct_le): New define_insn.
! 	(altivec_vmrghh): Adjust by calling gen_altivec_vmrghh_direct_be
! 	for BE and gen_altivec_vmrglh_direct_le for LE.
! 	(altivec_vmrglh): Adjust by calling gen_altivec_vmrglh_direct_be
! 	for BE and gen_altivec_vmrghh_direct_le for LE.
! 	(vec_widen_umult_hi_v16qi): Adjust the call to
! 	gen_altivec_vmrghh_direct by gen_altivec_vmrghh for BE
! 	and by gen_altivec_vmrglh for LE.
! 	(vec_widen_smult_hi_v16qi): Likewise.
! 	(vec_widen_umult_lo_v16qi): Adjust the call to
! 	gen_altivec_vmrglh_direct by gen_altivec_vmrglh for BE
! 	and by gen_altivec_vmrghh for LE.
! 	(vec_widen_smult_lo_v16qi): Likewise.
! 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
! 	CODE_FOR_altivec_vmrghh_direct by
! 	CODE_FOR_altivec_vmrghh_direct_be for BE and
! 	CODE_FOR_altivec_vmrghh_direct_le for LE.  And replace
! 	CODE_FOR_altivec_vmrglh_direct by
! 	CODE_FOR_altivec_vmrglh_direct_be for BE and
! 	CODE_FOR_altivec_vmrglh_direct_le for LE.
  
! 2024-07-03  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
! 		    Xionghu Luo  <xionghuluo@tencent.com>
  
! 	PR target/106069
! 	PR target/115355
! 	* config/rs6000/altivec.md (altivec_vmrghb_direct): Rename to ...
! 	(altivec_vmrghb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
! 	(altivec_vmrghb_direct_le): New define_insn.
! 	(altivec_vmrglb_direct): Rename to ...
! 	(altivec_vmrglb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
! 	(altivec_vmrglb_direct_le): New define_insn.
! 	(altivec_vmrghb): Adjust by calling gen_altivec_vmrghb_direct_be
! 	for BE and gen_altivec_vmrglb_direct_le for LE.
! 	(altivec_vmrglb): Adjust by calling gen_altivec_vmrglb_direct_be
! 	for BE and gen_altivec_vmrghb_direct_le for LE.
! 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
! 	CODE_FOR_altivec_vmrghb_direct by
! 	CODE_FOR_altivec_vmrghb_direct_be for BE and
! 	CODE_FOR_altivec_vmrghb_direct_le for LE.  And replace
! 	CODE_FOR_altivec_vmrglb_direct by
! 	CODE_FOR_altivec_vmrglb_direct_be for BE and
! 	CODE_FOR_altivec_vmrglb_direct_le for LE.
  
! 2024-07-02  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2024-05-08  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/114936
! 	* config/aarch64/aarch64-ldp-fusion.cc (combine_reg_notes):
! 	Ensure insn iN has its REG_FRAME_RELATED_EXPR (if any) stored in
! 	FR_EXPR[N-1], thus matching the correspondence expected by the
! 	copy_rtx calls.
  
! 2024-07-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-07-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/88236
! 	PR target/115726
! 	* config/avr/avr.md (mov<mode>) [avr_mem_memx_p]: Expand in such a
! 	way that the destination does not overlap with any hard register
! 	clobbered / used by xload8qi_A resp. xload<mode>_A.
! 	* config/avr/avr.cc (avr_out_xload): Avoid early-clobber
! 	situation for Z by executing just one load when the output register
! 	overlaps with Z.
  
! 2024-06-28  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2024-06-21  Kewen Lin  <linkw@linux.ibm.com>
! 		    Xionghu Luo  <xionghuluo@tencent.com>
  
! 	PR target/106069
! 	PR target/115355
! 	* config/rs6000/altivec.md (altivec_vmrghw_direct_<VSX_W:mode>): Rename
! 	to ...
! 	(altivec_vmrghw_direct_<VSX_W:mode>_be): ... this.  Add the condition
! 	BYTES_BIG_ENDIAN.
! 	(altivec_vmrghw_direct_<VSX_W:mode>_le): New define_insn.
! 	(altivec_vmrglw_direct_<VSX_W:mode>): Rename to ...
! 	(altivec_vmrglw_direct_<VSX_W:mode>_be): ... this.  Add the condition
! 	BYTES_BIG_ENDIAN.
! 	(altivec_vmrglw_direct_<VSX_W:mode>_le): New define_insn.
! 	(altivec_vmrghw): Adjust by calling gen_altivec_vmrghw_direct_v4si_be
! 	for BE and gen_altivec_vmrglw_direct_v4si_le for LE.
! 	(altivec_vmrglw): Adjust by calling gen_altivec_vmrglw_direct_v4si_be
! 	for BE and gen_altivec_vmrghw_direct_v4si_le for LE.
! 	(vec_widen_umult_hi_v8hi): Adjust the call to
! 	gen_altivec_vmrghw_direct_v4si by gen_altivec_vmrghw for BE
! 	and by gen_altivec_vmrglw for LE.
! 	(vec_widen_smult_hi_v8hi): Likewise.
! 	(vec_widen_umult_lo_v8hi): Adjust the call to
! 	gen_altivec_vmrglw_direct_v4si by gen_altivec_vmrglw for BE
! 	and by gen_altivec_vmrghw for LE
! 	(vec_widen_smult_lo_v8hi): Likewise.
! 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
! 	CODE_FOR_altivec_vmrghw_direct_v4si by
! 	CODE_FOR_altivec_vmrghw_direct_v4si_be for BE and
! 	CODE_FOR_altivec_vmrghw_direct_v4si_le for LE.  And replace
! 	CODE_FOR_altivec_vmrglw_direct_v4si by
! 	CODE_FOR_altivec_vmrglw_direct_v4si_be for BE and
! 	CODE_FOR_altivec_vmrglw_direct_v4si_le for LE.
! 	* config/rs6000/vsx.md (vsx_xxmrghw_<VSX_W:mode>): Adjust by calling
! 	gen_altivec_vmrghw_direct_v4si_be for BE and
! 	gen_altivec_vmrglw_direct_v4si_le for LE.
! 	(vsx_xxmrglw_<VSX_W:mode>): Adjust by calling
! 	gen_altivec_vmrglw_direct_v4si_be for BE and
! 	gen_altivec_vmrghw_direct_v4si_le for LE.
  
! 2024-06-27  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config/aarch64/aarch64-cores.def (grace): New entry.
! 	* config/aarch64/aarch64-tune.md: Regenerate.
! 	* doc/invoke.texi (AArch64 Options): Document the above.
  
! 2024-06-27  Jiawei  <jiawei@iscas.ac.cn>
  
! 	* tree-ssa-pre.cc (create_component_ref_by_pieces_1): New conditions.
  
! 2024-06-25  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/115608
! 	* config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus.
  
! 2024-06-24  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2024-05-29  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/114846
! 	* config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): As
! 	EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly
! 	now, adjust the relevant handlings on it.
! 	* config/rs6000/rs6000.md (eh_return expander): Append by calling
! 	gen_eh_return_internal and emit_barrier.
! 	(eh_return_internal): New define_insn_and_split, call function
! 	rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN.
  
! 2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
  
! 	Backported from master:
! 	2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* configure.ac: Set gcc_cv_as_mips_explicit_relocs if
! 	gcc_cv_as_mips_explicit_relocs_pcrel.
! 	* configure: Regenerate.
  
! 2024-06-21  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115278
! 	* tree-if-conv.cc (ifcvt_local_dce): Do not DSE volatile stores.
  
! 2024-06-21  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-06-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115508
! 	* tree-vect-slp.cc (vect_schedule_slp_node): Guard check on
! 	representative.
  
! 2024-06-21  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-22  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-slp.cc (vect_schedule_slp_node): Avoid looking
! 	at SLP_REPRESENTATIVE for VEC_PERM nodes.
  
! 2024-06-20  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	Backported from master:
! 	2024-06-10  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (expand_perm_as_replicate): Handle memory
! 	operands.
! 	* config/s390/vx-builtins.md (vec_splats<mode>): Turn into parameterized expander.
! 	(@vec_splats<mode>): New expander.
  
! 2024-06-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/115544
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Disable optimizing
! 	loads used by COMPLEX_EXPR operands.
  
! 2024-06-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR driver/115440
! 	* opts-common.cc (add_misspelling_candidates): If opt1 is non-NULL,
! 	add a space and opt1 to the alternative suggestion text.
  
! 2024-06-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	Backported from master:
! 	2024-05-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	PR target/109549
! 	* config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P):
! 	Define.
! 	(s390_noce_conversion_profitable_p): Implement.
  
! 2024-06-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	Backported from master:
! 	2024-06-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Fix allocation size of buffer.
! 	(riscv_process_one_target_attr): Likewise.
! 	(riscv_process_target_attr): Likewise.
  
! 2024-06-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	Backported from master:
! 	2024-06-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 		    Yvan ROUX  <yvan.roux@foss.st.com>
  
! 	PR target/115253
! 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
! 	Sign extend for Thumb1.
! 	(thumb1_expand_prologue): Add zero/sign extend.
  
! 2024-06-11  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	Backported from master:
! 	2024-05-30  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/115281
! 	* ira-conflicts.cc (go_through_subreg): Use the natural size of
! 	the inner mode rather than the outer mode.
  
! 2024-06-07  Richard Ball  <richard.ball@arm.com>
  
! 	Backported from master:
! 	2024-06-06  Richard Ball  <richard.ball@arm.com>
  
! 	PR target/115353
! 	* config/arm/arm.h (enum arm_auto_incmodes):
! 	Correct CASE_VECTOR_SHORTEN_MODE query.
  
! 2024-06-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/115352
! 	* gimple-lower-bitint.cc (lower_addsub_overflow): Don't disable
! 	single_comparison if cmp_code is GE_EXPR.
  
! 2024-06-06  Richard Ball  <richard.ball@arm.com>
  
! 	Backported from master:
! 	2024-06-06  Richard Ball  <richard.ball@arm.com>
  
! 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
! 	Add missing __ARM_NEON_SVE_BRIDGE.
  
! 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/115337
! 	* fold-const.cc (tree_call_nonnegative_warnv_p) <CASE_CFN_CLZ>:
! 	If arg1 is non-NULL, RECURSE on it, otherwise return true.
  
! 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108789
! 	* builtins.cc (fold_builtin_arith_overflow): For ovf_only,
! 	don't call save_expr and don't build REALPART_EXPR, otherwise
! 	set TREE_SIDE_EFFECTS on call before calling save_expr.
! 	(fold_builtin_addc_subc): Set TREE_SIDE_EFFECTS on call before
! 	calling save_expr.
  
! 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/invoke.texi (lujiazui): Clarify that while the CPUs do support
! 	AVX and F16C, -march=lujiazui actually doesn't enable those.
  
! 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/115324
! 	* config/rs6000/rs6000-gen-builtins.cc (write_decls): Remove
! 	GTY markup from struct bifdata and struct ovlddata and remove their
! 	fntype members.  Change next member in struct ovlddata and
! 	first_instance member of struct ovldrecord to have int type rather
! 	than struct ovlddata *.  Remove GTY markup from rs6000_builtin_info
! 	and rs6000_instance_info arrays, declare new
! 	rs6000_builtin_info_fntype and rs6000_instance_info_fntype arrays,
! 	which have GTY markup.
! 	(write_bif_static_init): Adjust for the above changes.
! 	(write_ovld_static_init): Likewise.
! 	(write_init_bif_table): Likewise.
! 	(write_init_ovld_table): Likewise.
! 	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Likewise.
! 	* config/rs6000/rs6000-c.cc (find_instance): Likewise.  Make static.
! 	(altivec_resolve_overloaded_builtin): Adjust for the above changes.
  
! 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114902
! 	PR rtl-optimization/115092
! 	* combine.cc (simplify_compare_const): Don't optimize
! 	GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or
! 	EQ op0 const0_rtx.
  
! 2024-06-03  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/i386-common.cc: Change Granite Rapids
! 	series CPU type to P_PROC_AVX10_1_512.
! 	* common/config/i386/i386-cpuinfo.h (enum feature_priority):
! 	Revise comment part. Add P_AVX10_1_256, P_AVX10_1_512,
! 	P_PROC_AVX10_1_512.
! 	* common/config/i386/i386-isas.h: Link to avx10.1-256, avx10.1-512.
  
! 2024-06-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-06-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR tree-optimization/115307
! 	* config/avr/avr.md (SFDF): New mode iterator.
! 	(isinf<mode>2) [sf, df]: New expanders.
  
! 2024-05-31  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Backported from master:
! 	2024-05-31  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/115297
! 	* config/alpha/alpha.md (<any_divmod:code>si3): Wrap DImode
! 	operands 3 and 4 with truncate:SI RTX.
! 	(*divmodsi_internal_er): Ditto for operands 1 and 2.
! 	(*divmodsi_internal_er_1): Ditto.
! 	(*divmodsi_internal): Ditto.
! 	* config/alpha/constraints.md ("b"): Correct register
! 	number in the description.
  
! 2024-05-31  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	Backported from master:
! 	2024-05-24  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/115192
! 	* tree-data-ref.cc (create_intersect_range_checks): Take the
! 	alignment of the access sizes into account.
  
! 2024-05-31  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	Backported from master:
! 	2024-05-29  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	PR target/113719
! 	* config/i386/i386-options.cc (ix86_override_options_after_change):
! 	Remove call to ix86_default_align and
! 	ix86_recompute_optlev_based_flags.
! 	(ix86_option_override_internal): Call ix86_default_align and
! 	ix86_recompute_optlev_based_flags.
  
! 2024-05-30  YunQiang Su  <syq@gcc.gnu.org>
  
! 	Backported from master:
! 	2024-05-29  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc(mips16_gp_pseudo_reg): Mark
! 	MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered.
! 	(mips_emit_call_insn): Mark MIPS16_PIC_TEMP and
! 	MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP.
  
! 2024-05-29  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115149
! 	* tree-ssa-live.cc (virtual_operand_live::get_live_in):
! 	Explicitly track the first processed edge.
  
! 2024-05-29  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115197
! 	* tree-loop-distribution.cc (copy_loop_before): Constant PHI
! 	args remain the same.
  
! 2024-05-29  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114921
! 	* tree-vect-stmts.cc (vectorizable_assignment): Use
! 	tree_nop_conversion_p to identify converts we can vectorize
! 	with a simple assignment.
  
! 2024-05-29  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386.cc (ix86_avoid_jump_mispredicts): Change
! 	gen_pad to gen_max_skip_align.
! 	(ix86_align_loops): New function.
! 	(ix86_reorg): Call ix86_align_loops.
! 	* config/i386/i386.md (pad): Rename to ..
! 	(max_skip_align): .. this, and accept 2 operands for align and
! 	skip.
  
! 2024-05-29  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/x86-tune-costs.h (generic_cost): Change from
! 	16:11:8 to 16.
  
! 2024-05-28  Xi Ruoyao  <xry111@xry111.site>
  
! 	Backported from master:
! 	2024-05-28  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/115169
! 	* config/loongarch/loongarch.cc
! 	(loongarch_expand_conditional_move): Guard REGNO with REG_P.
  
! 2024-05-27  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115232
! 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
! 	failure to demangle gracefully.
  
! 2024-05-23  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2024-05-09  Martin Jambor  <mjambor@suse.cz>
  
! 	* tree-sra.cc (sra_modify_assign): Remove the original statement
! 	also when dealing with a store to a fully covered aggregate from a
! 	non-candidate.
  
! 2024-05-22  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR rtl-optimization/115038
! 	* fold-mem-offsets.cc (fold_offsets): Return 0 if the defining
! 	instruction of the register is frame related.
  
! 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/115152
! 	* tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If
! 	!si->full_string_p, clear *nulterm and set maxlen to nbytes.
  
! 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/115172
! 	* ubsan.cc (instrument_bool_enum_load): If rhs is not in generic
! 	address space, use qualified version of utype with the right
! 	address space.  Formatting fix.
  
! 2024-05-22  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/115069
! 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
! 	Do not enable the optimization when AVX512BW is not enabled.
  
! 2024-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	Backported from master:
! 	2024-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/115154
! 	* match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): Disable
! 	for 1bit signed types.
  
! 2024-05-20  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	Backported from master:
! 	2024-05-20  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/115143
! 	* tree-ssa-phiopt.cc (minmax_replacement): Check for empty
! 	phi nodes for middle bbs for the case where middle bb is not empty.
  
! 2024-05-17  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114998
! 	* tree-loop-distribution.cc (free_rdg): Take loop argument.
! 	Reset UIDs of stmts still in the IL rather than all stmts
! 	referenced from the RDG.
! 	(loop_distribution::build_rdg): Pass loop to free_rdg.
! 	(loop_distribution::distribute_loop): Likewise.
! 	(loop_distribution::transform_reduction_loop): Likewise.
  
! 2024-05-15  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-07  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114931
! 	* tree.cc (type_hash_canon_hash): Hash TYPE_STRUCTURAL_EQUALITY_P.
! 	(type_cache_hasher::equal): Compare TYPE_STRUCTURAL_EQUALITY_P.
! 	(build_array_type_1): Set TYPE_STRUCTURAL_EQUALITY_P before
! 	probing with type_hash_canon.
! 	(build_function_type): Likewise.
! 	(build_method_type_directly): Likewise.
! 	(build_offset_type): Likewise.
! 	(build_complex_type): Likewise.
! 	* attribs.cc (build_type_attribute_qual_variant): Likewise.
  
! 2024-05-15  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114931
! 	* tree.cc (build_array_type_1): Return early when type_hash_canon
! 	returned an older existing type.
! 	(build_function_type): Likewise.
! 	(build_method_type_directly): Likewise.
! 	(build_offset_type): Likewise.
  
! 2024-05-12  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	Backported from master:
! 	2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	PR target/112959
! 	* doc/install.texi (Specific) <*-*-freebsd*>: The Ada and D
! 	run-time libraries are broken on i386 which also can affect
! 	64-bit builds. Go is broken.
  
! 2024-05-12  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	Backported from master:
! 	2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	PR target/112959
! 	* doc/install.texi (Specific) <*-*-freebsd*>: No longer refer
! 	to GCC or binutils in base. Recommend bootstrap using binutils.
  
! 2024-05-12  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	Backported from master:
! 	2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	* doc/install.texi (Specific) <ia64-*-hpux*>: Remove details
! 	on libunwind for GCC 3.4 and earlier.
  
! 2024-05-12  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	Backported from master:
! 	2024-04-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	PR target/112959
! 	* doc/install.texi (Specific) <*-*-freebsd*>: Remove references to
! 	FreeBSD 7 and older.
  
! 2024-05-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114968
! 	* target.def (use_atexit_for_cxa_atexit): Remove spurious space
! 	from comment.
! 	(adjust_cdtor_callabi_fntype): New cxx target hook.
! 	* targhooks.h (default_cxx_adjust_cdtor_callabi_fntype): Declare.
! 	* targhooks.cc (default_cxx_adjust_cdtor_callabi_fntype): New
! 	function.
! 	* doc/tm.texi.in (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Add.
! 	* doc/tm.texi: Regenerate.
! 	* config/i386/i386.cc (ix86_cxx_adjust_cdtor_callabi_fntype): New
  	function.
! 	(TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Redefine.
! 
! 2024-05-10  Xi Ruoyao  <xry111@xry111.site>
! 
! 	Backported from master:
! 	2024-05-10  Xi Ruoyao  <xry111@xry111.site>
! 
! 	PR driver/114980
! 	* opts-common.cc (prune_options): Move -fdiagnostics-urls=
! 	early like -fdiagnostics-color=.
! 
! 2024-05-09  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114975
! 	* config/avr/avr.md: Add combine pattern for
! 	8-bit parity detection.
  
! 2024-05-09  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114975
! 	* config/avr/avr.md: Add combine pattern for
! 	8-bit popcount detection.
  
! 2024-05-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114965
! 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Don't try to
! 	optimize away exp - lowi subtraction from shift count unless entry
! 	test is emitted or unless r.upper_bound () is smaller than prec.
  
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114907
! 	* expr.cc (convert_mode_scalar): Use trunc_optab rather than
! 	sext_optab for HF->BF conversions.
! 	* optabs-libfuncs.cc (gen_trunc_conv_libfunc): Likewise.
  
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/114956
! 	* tree-inline.cc: Include asan.h.
! 	(copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan
! 	sanitization disabled.
  
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-04-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114876
! 	* gimple-ssa-sprintf.cc (format_character): For min == 0 && max == 0,
! 	set max, likely and unlikely members to 1 rather than 0.  Remove
! 	useless res.knownrange = true;.  Formatting fixes.
  
! 2024-05-07  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2024-05-06  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR ipa/92606
! 	* config/avr/avr.cc (avr_option_override): Set
! 	flag_ipa_icf_variables = 0.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114921
! 	* tree-vect-stmts.cc (vectorizable_assignment): Require
! 	same vector component modes for input and output for
! 	CONVERT_EXPR_CODE_P.
  
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-04-30  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114734
! 	* internal-fn.cc (expand_call_mem_ref): Use
! 	get_gimple_for_ssa_name to get at the def stmt of the address
! 	argument to honor SSA coalescing constraints.
  
! 2024-05-03  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2024-05-03  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR rtl-optimization/114924
! 	* cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs,
! 	don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR.
  
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114921
! 	* tree-vect-stmts.cc (vectorizable_assignment): Require
! 	same vector component modes for input and output for
! 	CONVERT_EXPR_CODE_P.
  
! 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-04-30  Jakub Jelinek  <jakub@redhat.com>
! 		    Hongtao Liu  <hongtao.liu@intel.com>
  
! 	PR tree-optimization/114883
! 	* tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and
! 	IFN_COND_MAX in the assert.
  
! 2024-04-29  Pan Li  <pan2.li@intel.com>
  
! 	Backported from master:
! 	2024-04-29  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114885
! 	* config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New
! 	func impl to take care of (const_int_poly:TI 8).
! 	(riscv_legitimize_move): Handle subreg is const_int_poly,
  
! 2024-04-27  Xi Ruoyao  <xry111@xry111.site>
  
! 	Backported from master:
! 	2024-04-27  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114861
! 	* config/loongarch/loongarch.md (bstrins_<mode>_for_mask): Add
! 	constraints for operands.
! 	(bstrins_<mode>_for_ior_mask): Likewise.
  
! 2024-04-26  Frederik Harwath  <frederik@harwath.name>
  
! 	* config.gcc: Add gfx90c.
! 	* config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX90c): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx90c.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	* config/gcn/gcn.h: Add gfx90c.
! 	* config/gcn/gcn.opt: Likewise.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro.
! 	(get_arch): Handle gfx90c.
! 	(main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c
! 	* config/gcn/t-omp-device: Add gfx90c.
! 	* doc/install.texi: Likewise.
! 	* doc/invoke.texi: Likewise.
  
! 2024-04-25  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG.
  
! 2024-04-25  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE
! 	options to avoid issues with -gtoggle.
  
! 2024-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR fortran/114825
! 	* tree-nested.cc (get_debug_decl): New function.
! 	(get_nonlocal_debug_decl): Use it.
! 	(get_local_debug_decl): Likewise.
  
! 2024-04-25  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of
! 	-masm.
! 	* config/bpf/bpf.h (ASM_SPEC): Adapt accordingly.
! 	* doc/invoke.texi (eBPF Options): Update.
  
! 2024-04-25  Richard Ball  <richard.ball@arm.com>
  
! 	PR target/114837
! 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
! 	Add zero/sign extend.
! 	(arm_expand_prologue): Add zero/sign extend.
  
! 2024-04-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114792
! 	* tree-ssa-loop-ch.cc (ch_order_loops): New function.
! 	(ch_base::copy_headers): Sort loops to unloop inner-to-outer.
  
! 2024-04-25  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/114416
! 	* config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro.
! 	* config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it.
! 	* config/sparc/sparc.cc (fp_type_for_abi): New predicate.
! 	(traverse_record_type): Use it to spot floating-point types.
! 	(compute_fp_layout): Also deal with array types.
  
! 2024-04-25  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/vector-crypto.md: Add early clobber to the
! 	dest operand of vwsll.
  
! 2024-04-25  Haochen Gui  <guihaoc@gcc.gnu.org>
  
! 	* config/rs6000/altivec.md (*bcdinvalid_<mode>): Replace bcdadd
! 	with bcdsub.
! 	(bcdinvalid_<mode>): Likewise.
  
! 2024-04-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/114738
! 	* opts.cc (get_option_url): Revert 2024-04-17 changes.
! 	* gcc-urlifier.cc: Don't include diagnostic-core.h.
! 	(gcc_urlifier::make_doc_url): Revert 2024-04-17 changes.
! 	* configure.ac (documentation-root-url): On release branches
! 	append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL.
! 	* doc/install.texi (--with-documentation-root-url=): Document
! 	the change of the default.
  	* configure: Regenerate.
  
! 2024-04-24  Pan Li  <pan2.li@intel.com>
! 
! 	Revert:
! 	2023-11-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 		    kito-cheng  <kito.cheng@sifive.com>
! 		    kito-cheng  <kito.cheng@gmail.com>
! 
! 	PR target/112431
! 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters.
! 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto.
! 	(no,yes): Ditto.
! 	* config/riscv/vector.md: Support highpart register overlap for vwcvt.
! 
! 2024-04-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config.gcc: Add bpf-c.o as a target object for C and C++.
! 	* config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc.
! 	* config/bpf/bpf-c.cc: New file.
! 	(bpf_target_macros): Move from bpf.cc and define BPF CPU
! 	feature	macros.
! 	* config/bpf/t-bpf: Add rules to build bpf-c.o.
  
! 2024-04-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114787
! 	* tree-cfg.cc (remove_edge_and_dominated_blocks): When
! 	removing a loop backedge clear niter info and when removing
! 	the last backedge of a loop mark that loop for removal.
  
! 2024-04-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114832
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Fix dominance check.
  
! 2024-04-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
! 	Check whether AVX512F is explicitly enabled.
  
! 2024-04-24  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Support highpart overlap for vext.vf2
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114810
! 	* config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro
! 	alternative into =&r,r,r enabled only for x64 and =&r,r,o.
  
! 2024-04-23  Jan Hubicka  <jh@suse.cz>
  
! 	* doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated
! 	sentence about optimization flags implying this.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/darwin.opt (init): Spelling fix: initialiser -> initializer.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix:
! 	floatig -> floating.
! 	* config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR.
! 	* params.opt (-param=ipa-cp-profile-count-base=): Spelling fix:
! 	frequncy -> frequency.
  
! 2024-04-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114799
! 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly
! 	update ->any_pattern when swapping operands.
  
! 2024-04-23  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	PR target/114676
! 	* config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a
! 	MEM_REF with an addend of type ptr_type_node.
  
! 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config.gcc: Add loongarch-evolution.o.
! 	* config/loongarch/genopts/genstr.sh: Enable generation of
! 	loongarch-evolution.[cc,h].
! 	* config/loongarch/t-loongarch: Likewise.
! 	* config/loongarch/genopts/gen-evolution.awk: New file.
! 	* config/loongarch/genopts/isa-evolution.in: Mark ISA version
! 	of introduction for each ISA evolution feature.
! 	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
! 	Define builtin macros for enabled ISA evolutions and the ISA
! 	version.
! 	* config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h.
! 	* config/loongarch/loongarch.h: Likewise.
! 	* config/loongarch/loongarch-cpucfg-map.h: Delete.
! 	* config/loongarch/loongarch-evolution.cc: New file.
! 	* config/loongarch/loongarch-evolution.h: New file.
! 	* config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define.
! 	(ISA_HAS_DIV32): Likewise.
! 	(ISA_HAS_LAM_BH): Likewise.
! 	(ISA_HAS_LAMCAS): Likewise.
! 	(ISA_HAS_LD_SEQ_SA): Likewise.
  
! 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI.
! 	* config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1.
! 	* config/loongarch/genopts/loongarch.opt.in: Likewise.
! 	* config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise.
! 	(loongarch_cpu_cpp_builtins): Likewise.
! 	* config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise.
! 	(fill_native_cpu_config): Likewise.
! 	* config/loongarch/loongarch-def.cc (array_tune): Likewise.
! 	* config/loongarch/loongarch-def.h: Likewise.
! 	* config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise.
! 	(driver_get_normalized_m_opts): Likewise.
! 	* config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise.
! 	(TUNE_FOR_ARCH): Likewise.
! 	(arch_str): Likewise.
! 	(loongarch_target_option_override): Likewise.
! 	* config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise.
! 	(TARGET_uARCH_LA664): Likewise.
! 	* config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise.
! 	(STR_ARCH_ABI_DEFAULT): Likewise.
! 	(STR_TUNE_GENERIC): Likewise.
! 	(STR_ARCH_LA64V1_0): Likewise.
! 	(STR_ARCH_LA64V1_1): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise.
! 	(loongarch_asm_code_end): Likewise.
! 	* config/loongarch/loongarch.opt: Likewise.
! 	* doc/invoke.texi: Likewise.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/vector-crypto.md:
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint.
! 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap.
! 	(no,yes): Ditto.
! 	(none,W21,W42,W84,W43,W86,W87): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv.md: Rostify the constraints.
  
! 2024-04-22  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/i386-common.cc (processor_alias_table):
! 	Let Sierra Forest map to CPU_TYPE enum.
  
! 2024-04-22  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_option_override_internal): Check zarch
! 	flag before enabling -mvx.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add widenning overlap.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highpart overlap for indexed load.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add highest-number overlap support.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add widening overlap of vf2/vf4.
  
! 2024-04-21  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highpart overlap for vx/vf.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Fix incorrect overlap in v0.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highest overlap for wv instructions.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/112432
! 	* config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0.
! 	(none,W21,W42,W84,W43,W86,W87,W0): Ditto.
! 	* config/riscv/vector.md: Ditto.
! 
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114783
! 	* config/i386/sse.md (*avx2_eq<mode>3): Change last operand's
! 	constraint from "jm" to "xjm".
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114753
! 	* internal-fn.cc (expand_arith_overflow): Add one missing restore
! 	of flag_trapv before return.
  
! 2024-04-19  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/114769
! 	* tree-vect-patterns.cc:
! 	(vect_recog_absolute_difference): Have only one success condition.
! 	(vect_recog_abd_pattern): Handle further checks if
! 	vect_recog_absolute_difference fails.
  
! 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (get_index_for_enum_value): Create
! 	function.
! 	(pack_enum_value): Check for enumerator and error out.
! 	(process_enum_value): Correct string allocation.
  
! 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function
! 	to bpf_output_move.
! 	* config/bpf/bpf.cc (bpf_legitimate_address_p): Allow
! 	UNSPEC_CORE_RELOC to match an address.
! 	(bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves
! 	expensive to prioritize loads and stores.
! 	(TARGET_INSN_COST): Add hook.
! 	(bpf_output_move): Wrapper to call bpf_output_core_reloc.
! 	(bpf_print_operand): Add support to print immediate operands
! 	specified with the UNSPEC_CORE_RELOC.
! 	(bpf_print_operand_address): Likewise, but to support
! 	UNSPEC_CORE_RELOC in addresses.
! 	(bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW.
! 	* config/bpf/bpf.md: Wrap patterns for MOV, LD and ST
! 	instruction with bpf_output_move call.
! 	(mov_reloc_core<MM:mode>): Remove now spurious define_insn.
! 	* config/bpf/constraints.md: Added "c" and "C" constraints to
! 	match immediates represented with UNSPEC_CORE_RELOC.
! 	* config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove
! 	(bpf_output_core_reloc): Add function to create the CO-RE
! 	relocations based on new matching rules.
! 	* config/bpf/core-builtins.h (bpf_output_core_reloc): Add
! 	prototype.
! 	* config/bpf/predicates.md (core_imm_operand) Add predicate.
! 	(mov_src_operand): Add match for core_imm_operand.
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114768
! 	* rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM
! 	sets if src has side-effects or for stores into ZERO_EXTRACT
! 	if ZERO_EXTRACT operand has side-effects.
  
! 2024-04-19  Alexandre Oliva  <oliva@adacore.com>
  
! 	* config/t-vxworks (vxw-glimits.h): Don't mangle c23-required
! 	__STDC_VERSION_LIMITS_H__ define.
  
! 2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* config.gcc: Add nios2*-*-* to the list of obsoleted targets.
  
! 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
  
! 	* doc/sourcebuild.texi (strndup): Add effective target.
  
! 2024-04-18  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/114741
! 	* config/aarch64/aarch64.md (<optab><mode>3): Remove ^ from alt 2.
! 	(copysign<GPF:mode>3): Use SIMD version of IOR directly.
  
! 2024-04-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114753
! 	* internal-fn.cc (expand_mul_overflow): Save flag_trapv and
! 	temporarily clear it for the duration of the function, then
! 	restore previous value.
! 	(expand_vector_ubsan_overflow): Likewise.
! 	(expand_arith_overflow): Likewise.
  
! 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/114738
! 	* opts.cc (get_option_url): On release branches append
! 	gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL.
! 	* gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise.
  
! 2024-04-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114749
! 	* tree-vect-loop.cc (vect_analyze_loop_2): Reset
! 	LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP.
  
! 2024-04-17  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114752
! 	* config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode.
  
! 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/114743
! 	* asan.cc (maybe_instrument_call): Don't instrument calls to
! 	.ABNORMAL_DISPATCHER.
  
! 2024-04-16  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR c/92880
! 	* doc/extend.texi (Using Vector Instructions): Add that
! 	the base_types could be a typedef of them.
  
! 2024-04-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114736
! 	* tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge):
! 	Do not consider VEC_PERM_EXPRs as PHI use.
  
! 2024-04-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114733
! 	* tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject
! 	neg induction vectorization of single element vectors.
  
! 2024-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree.cc (array_type_nelts): Ensure 2 spaces after . in comment
! 	instead of just one.
! 	(build_variant_type_copy): Likewise.
! 	(tree_check_failed): Likewise.
! 	(build_atomic_base): Likewise.
! 	* ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite
! 	article rather than a.
  
! 2024-04-16  Fei Gao  <gaofei@eswincomputing.com>
  
! 	* config/riscv/riscv.cc (riscv_expand_conditional_move):
! 	replace or with add when expanding zicond if possible.
  
! 2024-04-16  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR middle-end/112938
! 	* ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
! 	indirected parm.
! 	(maybe_make_indirect): Restore volatility in dereferences.
  
! 2024-04-16  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.opt.urls: Regenerate.
! 	* config/mn10300/mn10300.opt.urls: Likewise.
! 	* config/msp430/msp430.opt.urls: Likewise.
! 	* config/nds32/nds32-elf.opt.urls: Likewise.
! 	* config/nds32/nds32-linux.opt.urls: Likewise.
! 	* config/nds32/nds32.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rx/rx.opt.urls: Likewise.
! 	* config/sh/sh.opt.urls: Likewise.
! 	* config/sparc/sparc.opt.urls: Likewise.
! 	* doc/invoke.texi: Add indexes for some compilation options.
  
! 2024-04-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
! 	avr16du32, avr32du14, avr32du20, avr32du28,  avr32du32.
  	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-04-15  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR target/114668
! 	* config/riscv/autovec.md: Add VLS.
! 
! 2024-04-15  Richard Biener  <rguenther@suse.de>
! 
! 	PR gcov-profile/114715
! 	* gimplify.cc (gimplify_switch_expr): Set the location of the
! 	GIMPLE switch.
! 
! 2024-04-15  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/114696
! 	* config/i386/i386.md (isa): Add apx_ndd_64.
! 	(enabled): Likewise.
! 	(*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
! 	signed integer constant and enable jO only for apx_ndd_64.
! 	(*add<dwi>3_doubleword_cc_overflow_1): Likewise.
! 	(*and<dwi>3_doubleword): Likewise.
! 	(*<code><dwi>3_doubleword): Likewise.
! 
! 2024-04-15  Tamar Christina  <tamar.christina@arm.com>
! 
! 	PR tree-optimization/114403
! 	* tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
! 	peeling for gaps and early break.
! 
! 2024-04-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/114634
! 	* attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
! 	decls with NULL TREE_TYPE.
! 
! 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
! 
! 	* config/aarch64/aarch64-option-extensions.def: Add RCPC to
! 	RCPC3 dependencies.
! 	* config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
! 	RCPC3 bit
! 
! 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
! 
! 	* config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
! 	dependencies.
! 
! 2024-04-12  Will Schmidt  <will_schmidt@linux.ibm.com>
! 	    Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/101865
! 	* config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
! 	TARGET_POWER8.
! 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
! 	OPTION_MASK_POWER8.
! 	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
! 	(ISA_2_7_MASKS_SERVER): Likewise.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
! 	comment.  Use OPTION_MASK_POWER8 and TARGET_POWER8.
! 	* config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
! 	* config/rs6000/rs6000.md (define_attr "isa"): Add p8.
! 	(define_attr "enabled"): Handle it.
! 	(define_insn "prefetch"): Use TARGET_POWER8.
! 	* config/rs6000/rs6000.opt (mpower8-internal): New.
! 
! 2024-04-12  Jason Merrill  <jason@redhat.com>
! 	    Patrick Palka  <ppalka@redhat.com>
! 
! 	PR c++/113141
! 	* doc/invoke.texi: Document -Wcast-user-defined.
! 
! 2024-04-12  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
! 
! 	* config/riscv/riscv.opt.urls: Regenerated.
! 
! 2024-04-12  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR tree-optimization/114666
! 	* match.pd (`!a?b:c`): Reject signed types for the condition.
! 	(`a?~t:t`): Likewise.
! 
! 2024-04-12  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
! 	all tiles to have the same suffix.
! 
! 2024-04-12  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
! 	as the return value instead of unsigned.
! 	(riscv_vector_element_bitsize): Ditto.
! 	(riscv_vector_required_min_vlen): Ditto.
! 	(riscv_validate_vector_type): Take int type for local variable(s).
! 
! 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
! 	returns_twice diagnostics translatable.
! 
! 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR sanitizer/114687
! 	* gimple-iterator.cc (gsi_safe_insert_before): Only use
! 	edge_before_returns_twice_call if bb_has_abnormal_pred.
! 	(gsi_safe_insert_seq_before): Likewise.
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
! 	push to m_returns_twice_calls if bb_has_abnormal_pred.
! 
! 2024-04-12  Pan Li  <pan2.li@intel.com>
! 
! 	PR target/114639
! 	* config/riscv/riscv.cc (riscv_function_value_regno_p): Add
! 	TARGET_VECTOR predicate for V_RETURN regno.
! 
! 2024-04-11  David Faust  <david.faust@oracle.com>
! 
! 	* btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
! 	fix potentially looking up wrong type for asm debug comment info.
! 	Split into...
! 	(btf_asm_datasec_type_ref): ... This. New.
! 	(btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
! 	(btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
! 	(btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
! 
! 2024-04-11  David Faust  <david.faust@oracle.com>
  
! 	* btfout.cc (btf_asm_sou_member): Always emit non-representable
! 	bitfield members as having 'void' type.  Refactor slightly.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
! 	and "ls64_accdata" FMV features.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
! 	"fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
! 	"sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
! 	"wfxt" entries.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Fix "rmd"->"rdm", and add FMV to "rdma".
! 	* config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (compare_feature_masks):
! 	Use ARRAY_SIZE and >=0 for iteration bounds.
! 	(aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
  
! 2024-04-11  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/standards.texi (Language Standards Supported by GCC):
! 	Add Modula-2 language section.
  
! 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/110027
! 	* asan.cc (asan_emit_stack_protection): Assert offsets[0] is
! 	zero if there is no stack protect guard, otherwise
! 	-ASAN_RED_ZONE_SIZE.  If alignb > ASAN_RED_ZONE_SIZE and there is
! 	stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
! 	the top of the stack into account when computing base_align_bias.
! 	Recompute use_after_return_class from asan_frame_size + base_align_bias
! 	and set to -1 if that would overflow to 11.
  
! 2024-04-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109596
! 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
! 	debug stmts to nonexit->dest rather than exit->dest.
  
! 2024-04-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114681
! 	* tree-inline.cc (copy_bb): Key on the remapped stmt
! 	to identify gconds to have condition coverage data remapped.
  
! 2024-04-11  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114639
! 	* config/riscv/riscv.cc (riscv_function_value_regno_p): New func
! 	impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
! 	(riscv_get_raw_result_mode): New func imple for hook
! 	TARGET_GET_RAW_RESULT_MODE.
! 	(TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
! 	(TARGET_GET_RAW_RESULT_MODE): Ditto.
! 	* config/riscv/riscv.h (V_RETURN): New macro for vector return.
! 	(GP_RETURN_FIRST): New macro for the first GPR in return.
! 	(GP_RETURN_LAST): New macro for the last GPR in return.
! 	(FP_RETURN_FIRST): Diito but for FPR.
! 	(FP_RETURN_LAST): Ditto.
! 	(FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
! 	TARGET_FUNCTION_VALUE_REGNO_P.
  
! 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
  
! 	* btfout.cc (btf_asm_type): Do not skip emitting members of
! 	unknown type.
  
! 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
  
! 	PR debug/112878
! 	* dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
! 	call to ctf_add_slice.  Use CTF_K_UNKNOWN type if fail.
  
! 2024-04-10  Marek Polacek  <polacek@redhat.com>
  
! 	PR target/114606
! 	* config/i386/i386-options.cc (ix86_option_override_internal): Use
! 	opts_set rather than checking == CF_NONE.
  
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* doc/analyzer.texi: Various tweaks.
  
! 2024-04-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114672
! 	* tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
! 	allow mode-precision results.
  
! 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
! 	(aarch64_bitint_type_info): New function.
! 	(aarch64_return_in_memory_1): Return large _BitInt's in memory.
! 	(aarch64_function_arg_alignment): Adapt to correctly return the ABI
! 	mandated alignment of _BitInt(N) where N > 128 as the alignment of
! 	TImode.
! 	(aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
  
! 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
! 	(aarch64_layout_arg): Don't emit diagnostics for types involving
! 	_BitInt(N).
  
! 2024-04-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114462
! 	* tree-core.h (enum annot_expr_kind): Add
! 	annot_expr_maybe_infinite_kind enumerator.
! 	* gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
! 	* tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
! 	(replace_loop_annotate): Likewise.  Move loop->finite_p initialization
! 	before the replace_loop_annotate_in_block calls.
! 	* tree-pretty-print.cc (dump_generic_node): Handle
! 	annot_expr_maybe_infinite_kind.
  
! 2024-04-10  Richard Biener  <rguenther@suse.de>
  
  	Revert:
! 	2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
! 
! 	PR rtl-optimization/101523
! 	* combine.cc (try_combine): Don't do a 2-insn combination if
! 	it does not in fact change I2.
! 
! 2024-04-10  Peter Bergner  <bergner@linux.ibm.com>
! 
! 	PR target/101865
! 	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
! 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete redundant
! 	OPTION_MASK_DIRECT_MOVE usage.  Delete TARGET_DIRECT_MOVE dead code.
! 	(rs6000_opt_masks): Neuter the "direct-move" option.
! 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
! 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete useless
! 	comment.
! 	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
! 	OPTION_MASK_DIRECT_MOVE.
! 	(OTHER_VSX_VECTOR_MASKS): Likewise.
! 	(POWERPC_MASKS): Likewise.
! 	* config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
! 
! 2024-04-10  Hongyu Wang  <hongyu.wang@intel.com>
! 
! 	* config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
! 	memory constraint.
! 	(sha1msg2): Likewise.
! 	(sha1nexte): Likewise.
! 	(sha1rnds4): Likewise.
! 	(sha256msg1): Likewise.
! 	(sha256msg2): Likewise.
! 	(sha256rnds2): Likewise.
! 	(aes<aesklvariant>u8): Use "jm" instead of "m" for memory
! 	constraint.
! 	(*aes<aeswideklvariant>u8): Likewise.
! 	(*encodekey128u32): Use "jr" instead of "r" for register
! 	constraints.
! 	(*encodekey256u32): Likewise.
! 
! 2024-04-09  Juergen Christ  <jchrist@linux.ibm.com>
! 
! 	* config/s390/s390.cc (expand_perm_as_replicate): Implement.
! 	(vectorize_vec_perm_const_1): Call new function.
! 	* config/s390/vx-builtins.md (vec_splat<mode>): Change to...
! 	(@vec_splat<mode>): ...this.
! 
! 2024-04-09  David Faust  <david.faust@oracle.com>
! 
! 	PR debug/114608
! 	* btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
! 	generating BTF for BPF CO-RE target.
! 
! 2024-04-09  Richard Ball  <richard.ball@arm.com>
! 
! 	* config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
! 	Add functions_nulls parameter to pragma_handlers.
! 	* config/aarch64/aarch64-protos.h: Likewise.
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(enum handle_pragma_index): Add enum to count
! 	number of pragmas to be handled.
! 	* config/aarch64/aarch64-sve-builtins.cc
! 	(GTY): Add global variable for initial indexes
! 	and change overload_names to an array.
! 	(function_builder::function_builder):
! 	Add pragma handler information.
! 	(function_builder::add_function):
! 	Add code for overwriting previous
! 	registered_functions entries.
! 	(add_unique_function):
! 	Use an array to register overload_names
! 	for both pragma handler modes.
! 	(add_overloaded_function): Likewise.
! 	(init_builtins):
! 	Add functions_nulls parameter to pragma_handlers.
! 	(handle_arm_sve_h):
! 	Initialize pragma handler information.
! 	(handle_arm_neon_sve_bridge_h): Likewise.
! 	(handle_arm_sme_h): Likewise.
! 
! 2024-04-09  Richard Biener  <rguenther@suse.de>
! 
! 	PR lto/114655
! 	* lto-wrapper.cc (merge_flto_options): Add force argument.
! 	(merge_and_complain): Do not force here.
! 	(run_gcc): But here to make the link-time -flto option override
! 	any compile-time one.
! 
! 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR gcov-profile/114601
! 	* tree-profile.cc (condition_uid): Guard fn->cond_uids access.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114576
! 	* config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
! 	(enabled): Remove aes isa check, add vaes_avx512vl.
! 	* config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
! 	jm instead of m for second alternative and emit {evex} prefix
! 	for it if !TARGET_AES.  Use noavx,avx,vaes_avx512vl isa attribute.
! 	(vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
! 	vaesenclast_<mode>): Add second alternative with x instead of v
! 	and jm instead of m.
  
! 2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
! 	Remove -fdebug-trace-api.
! 	Add -fm2-debug-trace=.
  
! 2024-04-09  Yang Yujie  <yangyujie@loongson.cn>
  
! 	PR target/113233
! 	* config/loongarch/loongarch.cc (loongarch_reg_init):
! 	Reinitialize the loongarch_regno_mode_ok cache.
! 	(loongarch_option_override): Same.
! 	(loongarch_save_restore_target_globals): Restore target globals.
! 	(loongarch_set_current_function): Restore the target contexts
! 	for functions.
! 	(TARGET_SET_CURRENT_FUNCTION): Define.
! 	* config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
! 	switchable target context.
! 	* config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
! 	Initialize all builtin functions at startup.
! 	(loongarch_expand_builtin): Turn assertion of builtin availability
! 	into a test.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114627
! 	* tree-profile.cc (instrument_decisions): Generate constant
! 	at the start of loop.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114599
! 	* tree-inline.cc (copy_bb): Copy cond_uids into callee.
! 	(prepend_lexical_block): Remove outdated comment.
! 	(add_local_variables): Remove bad cond_uids copy.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* expr.cc (convert_mode_scalar): Fix duplicated words in comment;
! 	into into -> it into.
! 	* function.h (function::cond_uids): Fix duplicated words in comment;
! 	same same -> same.
! 	* config/riscv/riscv-vector-costs.cc
! 	(costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
! 	model model -> model.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
! 	duplicated words in comment; for for -> for.
! 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
! 	duplicated words in comment; more more -> more.
! 	* config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
! 	duplicated words in comment; be be -> be.
! 	* tree-profile.cc (masking_vectors): Fix duplicated words in comment;
! 	has has -> has, the the -> the.
! 	* value-range.cc (irange::set_range_from_bitmask): Fix duplicated
! 	words in comment; the the -> the.
! 	* gcov.cc (add_condition_counts): Fix duplicated words in comment;
! 	to to -> to.
! 	* vr-values.cc (get_scev_info): Fix duplicated words in comment;
! 	the the -> to the.
! 	* tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
! 	by by -> by.
! 	* mode-switching.cc (single_succ_confluence_n): Fix duplicated words
! 	in comment; the the -> the.
! 	* tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
! 	comment; can can -> we can.
! 	* gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
! 	in comment; it it -> it is.
! 	* tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
! 	to to -> to.
! 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
! 	words in comment; if if -> if.
! 	* doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
! 	Change take to takes.
! 	* doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
! 	be be -> be.
! 	(-minline-memops-threshold): Likewise.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114628
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
! 	before returns_twice calls as is, don't push them into arg_stmts
! 	vector/move to edges.
  
! 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
  
! 	* config.gcc: Recognize aarch64*-*-gnu* targets.
! 	* config/aarch64/aarch64-gnu.h: New file.
  
! 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
  
! 	* config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
! 	* config/gnu.h: ...to here.
  
! 2024-04-09  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114604
! 	* gimple-range.cc (enable_ranger): Initialize the global
! 	bitmap obstack.
! 	(disable_ranger): Release it.
  
! 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config.gcc (aarch64-*-rtems*): Add target makefile fragment
! 	t-aarch64-rtems.
! 	* config/aarch64/t-aarch64-rtems: New file.
  
! 2024-04-09  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114587
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
! 	__APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
  
! 2024-04-09  Kewen Lin  <linkw@linux.ibm.com>
! 	    Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/88309
! 	* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
! 	wrong align passed to function build_aligned_type.
! 	* tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
! 	assertion to ensure align_unit should be positive.
! 	* tree.cc (build_qualified_type): Update function comments.
  
! 2024-04-08  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR rtl-optimization/112560
! 	* combine.cc (try_combine): Replace cc_use_loc with the entire
! 	new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
! 	Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
! 	with a new mode.
! 	* config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
! 	operand 1.
  
! 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
! 	New.
! 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
! 	* doc/invoke.texi (Optimize Options): Document it.
  
! 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
! 	'asm_goto_with_outputs'.  Add comment to 'lra'.
  
! 2024-04-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113359
! 	* ipa-icf-gimple.h (func_checker): New members
! 	safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
! 	and m_total_scalarization_limit.
! 	(func_checker::func_checker): Initialize new member variables.
! 	* ipa-icf-gimple.cc: Include tree-sra.h.
! 	(func_checker::func_checker): Initialize new member variables.
! 	(func_checker::safe_for_total_scalarization_p): New function.
! 	(func_checker::compare_operand): Use the new function.
! 	* tree-sra.h (sra_get_max_scalarization_size): Declare.
! 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
! 	* tree-sra.cc (prepare_iteration_over_array_elts): New function.
! 	(class sra_padding_collecting): New.
! 	(sra_padding_collecting::record_padding): Likewise.
! 	(scalarizable_type_p): Rename to totally_scalarizable_type_p.  Add
! 	ability to record padding when requested.
! 	(totally_scalarize_subtree): Split out gathering information necessary
! 	to iterate over array elements to prepare_iteration_over_array_elts.
! 	Fix errornous early exit.
! 	(analyze_all_variable_accesses): Adjust the call to
! 	totally_scalarizable_type_p.  Move determining of total scalariation
! 	size limit...
! 	(sra_get_max_scalarization_size): ...here.
! 	(check_ts_and_push_padding_to_vec): New function.
! 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
  
! 2024-04-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113907
! 	* ipa-prop.h (class ipa_vr): Declare new overload of a member function
! 	equal_p.
! 	(ipa_jump_functions_equivalent_p): Declare.
! 	* ipa-prop.cc (ipa_vr::equal_p): New function.
! 	(ipa_agg_pass_through_jf_equivalent_p): Likewise.
! 	(ipa_agg_jump_functions_equivalent_p): Likewise.
! 	(ipa_jump_functions_equivalent_p): Likewise.
! 	* ipa-cp.h (values_equal_for_ipcp_p): Declare.
! 	* ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
! 	* ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
! 	ipa-cp.h and ipa-prop.h.
! 	(func_checker::compare_gimple_call): Comapre jump functions.
  
! 2024-04-08  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114607
! 	* config/aarch64/aarch64-sve-builtins-base.cc
! 	(svusdot_impl::expand): Fix botched attempt to swap the operands
! 	for svsudot.
  
! 2024-04-08  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
  
! 	* config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
! 	* config.gcc: Add --with-tls configuration option to change the
! 	default TLS flavor.
! 	* config/riscv/riscv.h: Add TARGET_TLSDESC determined from
! 	-mtls-dialect and with_tls defaults.
! 	* config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
! 	two TLS flavors.
! 	* config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
! 	* config/riscv/riscv.md: Add instruction sequence for TLSDESC.
! 	* config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
! 	sequence length data for TLSDESC.
! 	(riscv_legitimize_tls_address): Add lowering of TLSDESC.
! 	* doc/install.texi: Document --with-tls for RISC-V.
! 	* doc/invoke.texi: Document -mtls-dialect for RISC-V.
  
! 2024-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114605
! 	* config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
! 	if mem doesn't have MODE_INT mode, or pool constant doesn't
! 	have MODE_INT mode, or if pool constant mode is smaller than
! 	mem mode.  If mem mode is different from pool constant mode,
! 	try to simplify subreg.  If that doesn't work, punt, if it
! 	does, use the simplified constant instead of the constant pool
! 	constant.
! 	* config/s390/s390.md (movdi from const pool peephole): If
! 	either low or high 32-bit part is zero, just emit move insn
! 	instead of move + ior.
  
! 2024-04-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114624
! 	* tree-scalar-evolution.cc (final_value_replacement_loop):
! 	Get at the PHI arg location before releasing the PHI node.
  
! 2024-04-08  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
! 	required_ext arg when invoke add function.
! 	(build_th_loadstore): Ditto.
! 	(struct vcreate_def): Ditto.
! 	(struct read_vl_def): Ditto.
! 	(struct vlenb_def): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
! 	Introduce new arg required_ext to fill in the register func.
! 	(function_builder::add_unique_function): Ditto.
! 	(function_builder::add_overloaded_function): Ditto.
! 	(expand_builtin): Leverage required_extensions_specified to
! 	check if the required extension is provided.
! 	* config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
! 	func impl to convert the required_ext enum to the extension name.
! 	(required_extensions_specified): New func impl to predicate if
! 	the required extension is well feeded.
  
! 2024-04-08  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
! 	specs.
  
! 2024-04-08  demin.han  <demin.han@starfivetech.com>
  
! 	* config/riscv/riscv-vector-costs.cc: Use length()
  
! 2024-04-08  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
! 	struct to hold all intrinisc related flags.
! 	(riscv_pragma_intrinsic_flags_pollute): New func to pollute
! 	the intrinsic flags and backup original flags.
! 	(riscv_pragma_intrinsic_flags_restore): New func to restore
! 	the flags from the backup intrinsic flags.
! 	(riscv_pragma_intrinsic): Pollute the flags and register all
! 	possible builtin types and functions, then restore and reinit.
! 	* config/riscv/riscv-protos.h (reinit_builtins): New func
! 	decl to reinit after flags pollution.
! 	(riscv_option_override): New extern func decl.
! 	* config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
! 	New func to register builtin types if null.
! 	(DEF_RVV_TYPE): Ditto.
! 	(DEF_RVV_TUPLE_TYPE): Ditto.
! 	(reinit_builtins): New func impl to reinit after flags pollution.
! 	(expand_builtin): Return
! 	target rtx after error_at.
! 	* config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
! 	func to tell one tree type is integer or not.
! 	(riscv_vector_float_type_p): New predicate func to tell one tree
! 	type is float or not.
! 	(riscv_vector_element_bitsize): New func to get the element bitsize
! 	of a vector tree type.
! 	(riscv_vector_required_min_vlen): New func to get the required min vlen
! 	of a vector tree type.
! 	(riscv_validate_vector_type): New func to validate the tree type
! 	is valid on flags.
! 	(riscv_return_value_is_vector_type_p): Leverage the func
! 	riscv_validate_vector_type to do the tree type validation.
! 	(riscv_arguments_is_vector_type_p): Ditto.
! 	(riscv_override_options_internal): Ditto.
  
! 2024-04-08  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/112919
! 	* config/loongarch/loongarch-def.cc (la664_align): Newly defined
! 	function that sets alignment rules under the LA664 microarchitecture.
! 	* config/loongarch/loongarch-opts.cc
! 	(loongarch_target_option_override): If not optimizing for size, set
! 	the default alignment to what the target wants.
! 	* config/loongarch/loongarch-tune.h (struct loongarch_align): Add
! 	new member variables jump and loop.
  
! 2024-04-06  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114590
! 	* config/i386/i386.md (x86_64_shld): Use explicit shift count in
! 	AT&T syntax.
! 	(x86_64_shld_ndd): Likewise.
! 	(x86_shld): Likewise.
! 	(x86_shld_ndd): Likewise.
! 	(x86_64_shrd): Likewise.
! 	(x86_64_shrd_ndd): Likewise.
! 	(x86_shrd): Likewise.
! 	(x86_shrd_ndd): Likewise.
  
! 2024-04-06  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114599
! 	* tree-inline.cc (add_local_variables): Copy cond_uids mappings.
  
! 2024-04-05  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/114588
! 	* diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
! 	color capability names.
! 	* doc/invoke.texi: Document them in description of GCC_COLORS.
! 	* text-art/style.cc: Include "diagnostic-color.h".
! 	(text_art::get_style_from_color_cap_name): New.
! 	* text-art/types.h (get_style_from_color_cap_name): New decl.
  
! 2024-04-05  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
! 	Fix double space after const qualifier on valid ().
  
! 2024-04-05  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113964
! 	* ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
! 	Force values obtined through pass-through maps to the expected
! 	split type.
  
! 2024-04-05  Mark Wielaard  <mark@klomp.org>
  
! 	* common.opt.urls: Regenerate.
  
! 2024-04-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114603
! 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
! 	with...
! 	(@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
! 	a ptrue.
! 	(*cnot<mode>): Require operand 1 to be a ptrue.
! 	* config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
! 	Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
! 	with a ptrue.  Represent other _x operations as fully-defined _m
! 	operations.
  
! 2024-04-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114566
! 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
! 	base_misaligned.
  
! 2024-04-05  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114599
! 	PR gcov-profile/114115
! 	* symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
! 	(is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
! 	pair.
! 	(symtab_node::check_ifunc_callee_symtab_nodes): Properly
! 	allocate ifunc_ref_map here.
  
! 2024-04-04  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/111571
! 	* ipa-param-manipulation.cc
! 	(ipa_param_body_adjustments::common_initialization): Avoid creating
! 	duplicate replacement entries.
  
! 2024-04-04  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/114415
! 	* sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
! 	(sched_analyze_1): Treat stack pointer modification as memory read.
! 	(sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
! 	* sched-int.h (deps_desc): Add comment to pending_read_mems.
  
! 2024-04-04  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/nvptx/mkoffload.cc (main): Call
! 	gcc_init_libintl and diagnostic_color_init.
  
! 2024-04-04  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114587
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
! 	__APX_F__ when APX is enabled.
  
! 2024-04-04  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* builtins.cc (expand_builtin_fork_or_exec): Check
! 	condition_coverage_flag.
! 	* collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
! 	* common.opt: Add new options -fcondition-coverage and
! 	-Wcoverage-too-many-conditions.
! 	* doc/gcov.texi: Add --conditions documentation.
! 	* doc/invoke.texi: Add -fcondition-coverage documentation.
! 	* function.cc (free_after_compilation): Free cond_uids.
! 	* function.h (struct function): Add cond_uids.
! 	* gcc.cc: Link gcov on -fcondition-coverage.
! 	* gcov-counter.def (GCOV_COUNTER_CONDS): New.
! 	* gcov-dump.cc (tag_conditions): New.
! 	* gcov-io.h (GCOV_TAG_CONDS): New.
! 	(GCOV_TAG_CONDS_LENGTH): New.
! 	(GCOV_TAG_CONDS_NUM): New.
! 	* gcov.cc (class condition_info): New.
! 	(condition_info::condition_info): New.
! 	(condition_info::popcount): New.
! 	(struct coverage_info): New.
! 	(add_condition_counts): New.
! 	(output_conditions): New.
! 	(print_usage): Add -g, --conditions.
! 	(process_args): Likewise.
! 	(output_intermediate_json_line): Output conditions.
! 	(read_graph_file): Read condition counters.
! 	(read_count_file): Likewise.
! 	(file_summary): Print conditions.
! 	(accumulate_line_info): Accumulate conditions.
! 	(output_line_details): Print conditions.
! 	* gimplify.cc (next_cond_uid): New.
! 	(reset_cond_uid): New.
! 	(shortcut_cond_r): Set condition discriminator.
! 	(tag_shortcut_cond): New.
! 	(gimple_associate_condition_with_expr): New.
! 	(shortcut_cond_expr): Set condition discriminator.
! 	(gimplify_cond_expr): Likewise.
! 	(gimplify_function_tree): Call reset_cond_uid.
! 	* ipa-inline.cc (can_early_inline_edge_p): Check
! 	condition_coverage_flag.
! 	* ipa-split.cc (pass_split_functions::gate): Likewise.
! 	* passes.cc (finish_optimization_passes): Likewise.
! 	* profile.cc (struct condcov): New declaration.
! 	(cov_length): Likewise.
! 	(cov_blocks): Likewise.
! 	(cov_masks): Likewise.
! 	(cov_maps): Likewise.
! 	(cov_free): Likewise.
! 	(instrument_decisions): New.
! 	(read_thunk_profile): Control output to file.
! 	(branch_prob): Call find_conditions, instrument_decisions.
! 	(init_branch_prob): Add total_num_conds.
! 	(end_branch_prob): Likewise.
! 	* tree-core.h (struct tree_exp): Add condition_uid.
! 	* tree-profile.cc (struct conds_ctx): New.
! 	(CONDITIONS_MAX_TERMS): New.
! 	(EDGE_CONDITION): New.
! 	(topological_cmp): New.
! 	(index_of): New.
! 	(single_p): New.
! 	(single_edge): New.
! 	(contract_edge_up): New.
! 	(struct outcomes): New.
! 	(conditional_succs): New.
! 	(condition_index): New.
! 	(condition_uid): New.
! 	(masking_vectors): New.
! 	(emit_assign): New.
! 	(emit_bitwise_op): New.
! 	(make_top_index_visit): New.
! 	(make_top_index): New.
! 	(paths_between): New.
! 	(struct condcov): New.
! 	(cov_length): New.
! 	(cov_blocks): New.
! 	(cov_masks): New.
! 	(cov_maps): New.
! 	(cov_free): New.
! 	(find_conditions): New.
! 	(struct counters): New.
! 	(find_counters): New.
! 	(resolve_counter): New.
! 	(resolve_counters): New.
! 	(instrument_decisions): New.
! 	(tree_profiling): Check condition_coverage_flag.
! 	(pass_ipa_tree_profile::gate): Likewise.
! 	* tree.h (SET_EXPR_UID): New.
! 	(EXPR_COND_UID): New.
  
! 2024-04-04  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114577
! 	* config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
! 	Declare.
! 	* config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
! 	New function.
! 	* config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
! 	(svset_neonq_impl::expand): Optimise expansions whose first argument
! 	is undefined.
  
! 2024-04-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114485
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
! 	vect_step_op_neg isn't OK for partial vectors but only
! 	for unknown niter.
  
! 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114537
! 	* fold-const.cc (native_encode_initializer): Look through
! 	NON_LVALUE_EXPR if val is INTEGER_CST.
  
! 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114555
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
! 	m_bitfld_load and save_cast_conditional add any needed PHIs
! 	and adjust t4 accordingly.
  
! 2024-04-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114551
! 	* tree-ssa-loop-split.cc (split_loop): If the guard is
! 	only conditionally evaluated rewrite computations with
! 	possibly undefined overflow to unsigned arithmetic.
  
! 2024-04-04  Eugene Rozenfeld  <erozen@microsoft.com>
  
! 	PR gcov-profile/113765
! 	* auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
  
! 2024-04-03  Mark Wielaard  <mark@klomp.org>
  
! 	* config/i386/i386.opt.urls: Regenerate.
  
! 2024-04-03  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR tree-optimization/114115
! 	* cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
! 	(cgraph_node): Add called_by_ifunc_resolver.
! 	* cgraphunit.cc (symbol_table::compile): Call
! 	symtab_node::check_ifunc_callee_symtab_nodes.
! 	* symtab.cc (check_ifunc_resolver): New.
! 	(ifunc_ref_map): Likewise.
! 	(is_caller_ifunc_resolver): Likewise.
! 	(symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
! 	* tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
! 	call profiling for IFUNC resolvers and their callees.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
! 	suffix by the target name.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
! 	and update wording for LLVM 18 release.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
! 	handling from ...
! 	(main): ... here; call it to handle --with-arch config option
! 	and -march= commandline.
  
! 2024-04-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114552
! 	* expr.cc (emit_push_insn): Only use store_constructor for
! 	immediate_const_ctor_p if int_expr_size matches size.
  
! 2024-04-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114557
! 	PR tree-optimization/114480
! 	* tree-phinodes.cc (release_phi_node): Return PHIs from
! 	allocation buckets not covered by free_phinodes to GC.
! 	(remove_phi_node): Release the PHI LHS before freeing the
! 	PHI node.
! 	* tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
! 	before releasing it.
  
! 2024-04-03  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md: Remove unused code.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_split_lsx_copy_d): Remove.
! 	(loongarch_split_lsx_insert_d): Ditto.
! 	(loongarch_split_lsx_fill_d): Ditto.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_split_lsx_copy_d): Ditto.
! 	(loongarch_split_lsx_insert_d): Ditto.
! 	(loongarch_split_lsx_fill_d): Ditto.
! 	* config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
! 	(lsx_vpickve2gr_<lsxfmt_f>): Ditto.
! 	(abs<mode>2): Remove expander.
! 	(vabs<mode>2): Rename 2 abs<mode>2.
  
! 2024-04-02  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	* config/aarch64/aarch64-option-extensions.def: Fix comment.
  
! 2024-04-02  Tom Tromey  <tromey@adacore.com>
  
! 	* dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
! 	print newline when not recursing.
  
! 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_override_options): Update the
! 	clang major version value in the dsymutil check.
  
! 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_override_options): Reduce the debug
! 	level to 2 if dsymutil cannot handle .macinfo sections.
  
! 2024-04-02  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/t-loongarch: Add loongarch-def-arrays.h
! 	to OPTION_H_EXTRA.
  
! 2024-04-02  mengqinggang  <mengqinggang@loongson.cn>
! 	    Lulu Cheng  <chenglulu@loongson.cn>
! 	    Xi Ruoyao  <xry111@xry111.site>
  
! 	* config.gcc: Add --with-tls option to change TLS flavor.
! 	* config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
! 	configure TLS flavor.
! 	* config/loongarch/loongarch-def.h (struct loongarch_target): Add
! 	tls_dialect.
! 	* config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
! 	flavor.
! 	* config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
! 	tls_dialect.
! 	(loongarch_config_target): Ditto.
! 	(loongarch_update_gcc_opt_status): Ditto.
! 	* config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
! 	(TARGET_TLS_DESC): New define.
! 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
! 	DESC instructions sequence length.
! 	(loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
! 	(loongarch_option_override_internal): Add la_opt_tls_dialect.
! 	(loongarch_option_restore): Add la_target.tls_dialect.
! 	* config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
! 	code model for TLS DESC.
! 	(got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch.opt.urls: Ditto.
! 	* doc/invoke.texi: Add a description of the compilation option
! 	'-mtls-dialect={trad,desc}'.
  
! 2024-04-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.opt.urls: Regenerate.
  
! 2024-04-01  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
! 	aliases to -mrecip={all,none}, respectively.
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
! 	(ABI_FPU64_P): ...this.
! 	(ABI_FPU_32): Rename to...
! 	(ABI_FPU32_P): ...this.
! 	(ABI_FPU_NONE): Rename to...
! 	(ABI_NOFPU_P): ...this.
! 	(ABI_LP64_P): Define.
! 	* config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
! 	Merged into loongarch_global_init.
! 	(loongarch_cpu_option_override): Renamed to
! 	loongarch_target_option_override.
! 	(loongarch_option_override_internal): Move the work after
! 	loongarch_config_target into loongarch_target_option_override.
! 	(loongarch_global_init): Define.
! 	(INIT_TARGET_FLAG): Move to loongarch-opts.cc.
! 	(loongarch_option_override): Call loongarch_global_init
! 	separately.
! 	* config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
! 	Split the parsing of -mrecip=<string> from
! 	loongarch_option_override_internal.
! 	(loongarch_generate_mrecip_scheme): Define. Split from
! 	loongarch_option_override_internal.
! 	(loongarch_target_option_override): Define. Renamed from
! 	loongarch_cpu_option_override.
! 	(loongarch_init_misc_options): Define. Split from
! 	loongarch_option_override_internal.
! 	(INIT_TARGET_FLAG): Move from loongarch.cc.
! 	* config/loongarch/loongarch-opts.h (loongarch_target_option_override):
! 	New prototype.
! 	(loongarch_parse_mrecip_scheme): New prototype.
! 	(loongarch_init_misc_options): New prototype.
! 	(TARGET_ABI_LP64): Simplify with ABI_LP64_P.
! 	* config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
! 	Do not reference specific CPU architecture (LA664).
! 	(TARGET_RECIP_SQRT): Same.
! 	(TARGET_RECIP_RSQRT): Same.
! 	(TARGET_RECIP_VEC_DIV): Same.
! 	(TARGET_RECIP_VEC_SQRT): Same.
! 	(TARGET_RECIP_VEC_RSQRT): Same.
  
! 2024-04-01  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* doc/invoke.texi: Add descriptions for the compilation
! 	options.
  
! 2024-03-31  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
! 	and sfb_alu.
  
! 2024-03-31  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
! 	the term built-in over builtin.
  
! 2024-03-31  Pan Li  <pan2.li@intel.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	Remove unused var decl.
  
! 2024-03-30  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114175
! 	* config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
! 	mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
! 	functions if arg.type is NULL.
  
! 2024-03-29  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* lto-compress.cc (lto_end_uncompression): Use
! 	fatal_error instead of internal_error when ZSTD
! 	is not enabled.
  
! 2024-03-28  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/h8300/extensions.md (zero_extendqihi*): Add output
! 	template for reg->reg case where the regs don't match.
  
! 2024-03-28  Gaius Mulley  <(no_default)>
  
! 	PR modula2/114517
! 	* doc/gm2.texi: Mention gm2 treats a # in the first column
! 	as a preprocessor directive unless -fno-cpp is supplied.
  
! 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	* predict.cc (estimate_bb_frequencies): Fix comment typo,
! 	scalling -> scaling.
  
! 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/112303
! 	* profile-count.h (profile_count::operator+): Perform
! 	addition in uint64_t variable and set m_val to MIN of that
! 	val and max_count.
! 	(profile_count::operator+=): Likewise.
! 	(profile_count::operator-=): Formatting fix.
! 	(profile_count::apply_probability): Use safe_scale_64bit
! 	even in the int overload.
  
! 2024-03-28  Jan Hubicka  <jh@suse.cz>
  
! 	PR middle-end/113907
! 	* ipa-icf.cc (sem_function::init): Hash PHI operands
! 	(sem_function::compare_phi_node): Add argument about preserving order
  
! 2024-03-28  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114480
! 	* cfganal.cc (compute_idf): Use simpler bitmap iteration,
! 	touch work_set only when phi_insertion_points changed.
  
! 2024-03-28  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
  
! 2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
  
! 	PR rtl-optimization/101523
! 	* combine.cc (try_combine): Don't do a 2-insn combination if
! 	it does not in fact change I2.
  
! 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/invoke.texi (Spec Files): Use @var{S} instead of S,
! 	@var{X} instead of X etc. for other placeholders.
  
! 2024-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114057
! 	* tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
! 	BB reduction remain defs as scalar uses.
  
! 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def (rcpc3):
! 	Fix FEATURE_STRING field to "lrcpc3".
  
! 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def: Add LSE128
! 	AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
! 	feature.
! 	* doc/invoke.texi (AArch64 Options): Document +lse128.
  
! 2024-03-26  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-feature-deps.h: Use constexpr for
! 	out-of-line statics.
  
! 2024-03-26  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/114431
! 	* btfout.cc (get_name_for_datasec_entry): Add function.
! 	(btf_asm_datasec_entry): Print label when possible.
  
! 2024-03-26  Richard Ball  <richard.ball@arm.com>
  
! 	PR target/114272
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE):
! 	Change SCHEDULER_IDENT from cortexa55 to cortexa53
! 	for Cortex-A510 and Cortex-A520.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/111151
! 	* fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
! 	MULT_EXPR altogether, or for MAX_EXPR if c is -1.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/111736
! 	* tsan.cc (instrument_expr): Punt on non-generic address space
! 	accesses.
  
! 2024-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114471
! 	* tree-vect-stmts.cc (vectorizable_operation): Verify operand
! 	types are compatible with the result type.
  
! 2024-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114464
! 	* tree-vect-loop.cc (vectorizable_recurr): Verify the latch
! 	vector type is compatible with what we chose for the recurrence.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	* cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
! 	Fix comment typo - multple -> multiple.
! 	* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
! 	Likewise.
  
! 2024-03-26  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
! 	__mips_strict_alignment if STRICT_ALIGNMENT.
  
! 2024-03-25  Richard Biener  <rguenther@suse.de>
  
! 	* config.gcc (amdgcn): Add gfx1036 entries.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
! 	(gcn_local_sym_hash): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX1036): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
! 	(TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
! 	* config/gcn/gcn.opt: Add gfx1036.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
! 	(main): Handle gfx1036.
! 	* config/gcn/t-omp-device: Add gfx1036 isa.
! 	* doc/install.texi (amdgcn): Add gfx1036.
! 	* doc/invoke.texi (-march): Likewise.
  
! 2024-03-25  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
! 	when V is disabled and init the RVV types and intrinic APIs.
! 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
! 	error if V ext is disabled.
! 	* config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
! 	Ditto.
! 	(riscv_arguments_is_vector_type_p): Ditto.
! 	(riscv_vector_cc_function_p): Ditto.
! 	* config/riscv/riscv_vector.h: Remove error if V is disable.
  
! 2024-03-23  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa.cc (pa_output_global_address): Handle
! 	UNSPEC_DLTIND14R addresses.
! 	* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
! 	UNSPEC_DLTIND14R address.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114433
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
! 	m_bitfld_load check save_first rather than m_first.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114425
! 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
! 	_Complex large/huge _BitInt types like the large/huge _BitInt types.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/111683
! 	* tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
! 	and comp_step is RS_NONZERO, return false if any reference in the
! 	component doesn't have DR_STEP a multiple of access size.
  
! 2024-03-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md: Add new split pattern described above.
  
! 2024-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
! 	for deprecated SIGNAL and INTERRUPT usage without respective header.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
! 	(atomic_load<mode>): Adjust RDNA cache settings.
! 	(atomic_store<mode>): Likewise.
! 	(atomic_exchange<mode>): Likewise.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
! 	RDNA devices.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config.gcc (amdgcn): Add gfx1103 entries.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
! 	(gcn_local_sym_hash): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX1103): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	(gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
! 	* config/gcn/gcn.opt: Add gfx1103.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
! 	(main): Handle gfx1103.
! 	* config/gcn/t-omp-device: Add gfx1103 isa.
! 	* doc/install.texi (amdgcn): Add gfx1103.
! 	* doc/invoke.texi (-march): Likewise.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
  
! 	* dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
! 	bitmasks.
! 	(do_compare_and_jump): Remove now-redundant similar code.
! 	* internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
! 	bitmasks.
! 	(add_mask_and_len_args): Likewise.
  
! 2024-03-22  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
! 	macro __riscv_v_fixed_vlen when zvl.
! 	* config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
! 	New static func to take care of the RVV types decorated by
! 	the attributes.
  
! 2024-03-22  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR c/109619
! 	* builtins.cc (fold_builtin_1): Use error_operand_p
! 	instead of checking against ERROR_MARK.
! 	(fold_builtin_2): Likewise.
! 	(fold_builtin_3): Likewise.
  
! 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/111736
! 	* ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
! 	SANITIZE_NULL instrumentation for non-generic address spaces
! 	for which targetm.addr_space.zero_address_valid (as) is true.
  
! 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114405
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
! 	Set rprec to limb_prec rather than 0 if tprec is divisible by
! 	limb_prec.  In the last bf_cur handling, set rprec to (tprec + bo_bit)
! 	% limb_prec rather than tprec % limb_prec and use just rprec instead
! 	of rprec + bo_bit.  For build_bit_field_ref offset, divide
! 	(tprec + bo_bit) by limb_prec rather than just tprec.
  
! 2024-03-22  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	PR target/114194
! 	* config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
! 	Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
  
! 2024-03-22  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
! 	tie for scalable and final stack adjustment if needed.
! 	Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
  
! 2024-03-22  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114352
! 	* common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
! 	New struct for func decl and target name.
! 	(struct riscv_func_target_hasher): New hasher for hash table mapping
! 	from the fn_decl to fn_target_name.
! 	(riscv_func_decl_hash): New func to compute the hash for fn_decl.
! 	(riscv_func_target_hasher::hash): New func to impl hash interface.
! 	(riscv_func_target_hasher::equal): New func to impl equal interface.
! 	(riscv_cmdline_subset_list): New static var for cmdline subset list.
! 	(riscv_func_target_table_lazy_init): New func to lazy init the func
! 	target hash table.
! 	(riscv_func_target_get): New func to get target name from hash table.
! 	(riscv_func_target_put): New func to put target name into hash table.
! 	(riscv_func_target_remove_and_destory): New func to remove target
! 	info from the hash table and destory it.
! 	(riscv_parse_arch_string): Set the static var cmdline_subset_list.
! 	* config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
! 	var for cmdline subset list.
! 	(riscv_func_target_get): New func decl.
! 	(riscv_func_target_put): Ditto.
! 	(riscv_func_target_remove_and_destory): Ditto.
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Take cmdline_subset_list instead of current_subset_list when clone.
! 	(riscv_process_target_attr): Record the func target info to hash table.
! 	(riscv_option_valid_attribute_p): Add new arg tree fndel.
! 	* config/riscv/riscv.cc (riscv_declare_function_name): Consume the
! 	func target info and print the arch message.
  
! 2024-03-22  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114352
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	Replace implied, combine and check to func finalize.
! 	(riscv_subset_list::finalize): New func impl to take care of
! 	implied, combine ext and related checks.
! 	* config/riscv/riscv-subset.h: Add func decl for finalize.
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Finalize the ext before return succeed.
! 	* config/riscv/riscv.cc (riscv_set_current_function): Reinit the
! 	machine mode before when set cur function.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
! 	device_malloc call.
  
! 2024-03-21  liuhongt  <hongtao.liu@intel.com>
  
! 	PR tree-optimization/114396
! 	* tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
! 	and true to wi::from_mpz.
  
! 2024-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/111736
! 	* asan.cc (instrument_derefs): Do not instrument accesses
! 	to non-generic address-spaces.
  
! 2024-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113727
! 	* tree-sra.cc (analyze_access_subtree): Do not allow
! 	replacements in subtrees when grp_partial_lhs.
  
! 2024-03-21  liuhongt  <hongtao.liu@intel.com>
  
! 	PR middle-end/114347
! 	* doc/invoke.texi: Document -fexcess-precision=16.
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (bpf_core_get_index): Check if
! 	field contains a DECL_NAME.
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
! 	Add assert to validate the string is set.
! 	* config/bpf/core-builtins.cc (cr_final): Make string struct
! 	field as const.
! 	(process_enum_value): Correct for field type change.
! 	(process_type): Set access string to "0".
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (core_field_info): Add
! 	support for POINTER_PLUS_EXPR in the root of the field expression.
! 	(bpf_core_get_index): Likewise.
! 	(pack_field_expr): Make the BTF type to point to the structure
! 	related node, instead of its pointer type.
! 	(make_core_safe_access_index): Correct to new code.
  
! 2024-03-20  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114407
! 	* config/loongarch/loongarch-opts.cc (loongarch_config_target):
! 	Fix typo in diagnostic message, enabing -> enabling.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
! 	TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
! 	nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
! 	skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
! 	csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Yury Khrustalev  <yury.khrustalev@arm.com>
  
! 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114365
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
! 	a PHI node, set iv2 to its result afterwards.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
! 	probabbility -> probability.
! 	(ch_base::copy_headers): Fix comment typo: itrations -> iterations.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR bootstrap/114369
! 	* system.h (vec_step): Define to vec_step_ when compiling
! 	with clang on PowerPC.
  
! 2024-03-20  demin.han  <demin.han@starfivetech.com>
  
! 	PR target/112651
! 	* config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
! 	(enum rvv_max_lmul_enum): Ditto
! 	(TARGET_MAX_LMUL): Ditto
! 	* config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
! 	* config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
! 	(costs::better_main_loop_than_p): Ditto
! 	* config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
  
! 2024-03-20  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113396
! 	* tree-dfa.cc (get_ref_base_and_extent): Use index range
! 	bounds only if they fit within the address-range constraints
! 	of offset_int.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/loongarch.cc
! 	(loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
! 	UNITS_PER_FPREG macros.
! 	(loongarch_hard_regno_nregs): Ditto.
! 	(loongarch_class_max_nregs): Ditto.
! 	(loongarch_get_separate_components): Ditto.
! 	(loongarch_process_components): Ditto.
! 	* config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
! 	(UNITS_PER_HWFPVALUE): Ditto.
! 	(UNITS_PER_FPVALUE): Ditto.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
! 	of loongarch_expand_vec_cmp()'s return value.
! 	(vec_cmpu<ILASX:mode><mode256_i>): Ditto.
! 	* config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
! 	(vec_cmpu<ILSX:mode><mode_i>): Ditto.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
! 	type from bool to void.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_cfun_has_cprestore_slot_p): Delete.
! 	(loongarch_adjust_insn_length): Delete.
! 	(current_section_name): Delete.
! 	(loongarch_split_symbol_type): Delete.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_case_values_threshold): Delete.
! 	(loongarch_spill_class): Delete.
! 	(TARGET_OPTAB_SUPPORTED_P): Delete.
! 	(TARGET_CASE_VALUES_THRESHOLD): Delete.
! 	(TARGET_SPILL_CLASS): Delete.
  
! 2024-03-20  Lewis Hyatt  <lhyatt@gmail.com>
  
! 	PR c++/111918
! 	* diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
! 	* diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
! 	Make use of DK_ANY to indicate a diagnostic was initially enabled.
! 	(diagnostic_context::diagnostic_enabled): Do not change the type of
! 	a diagnostic if the saved classification is type DK_ANY.
  
! 2024-03-19  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108802
! 	PR ipa/114254
! 	* ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
! 	at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
! 	a pointer parameter.
! 	(ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
! 	parameter, also recognize the case when pfn pointer is loaded in its
! 	own BB.
  
! 2024-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/99829
! 	* lra-constraints.cc (lra_constraints): Prevent removing insn
! 	with reverse equivalence to memory if the memory was reloaded.
  
! 2024-03-19  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR middle-end/114348
! 	* diagnostic-format-json.cc
! 	(json_stderr_output_format::machine_readable_stderr_p): New.
! 	(json_file_output_format::machine_readable_stderr_p): New.
! 	* diagnostic-format-sarif.cc
! 	(sarif_stream_output_format::machine_readable_stderr_p): New.
! 	(sarif_file_output_format::machine_readable_stderr_p): New.
! 	* diagnostic.cc (diagnostic_context::action_after_output): Move
! 	"fnotice" to before "finish" call, so that we still have the
! 	diagnostic_context.
! 	(fnotice): Bail out if the user requested one of the
! 	machine-readable diagnostic output formats on stderr.
! 	* diagnostic.h
! 	(diagnostic_output_format::machine_readable_stderr_p): New pure
! 	virtual function.
! 	(diagnostic_text_output_format::machine_readable_stderr_p): New.
! 	(diagnostic_context::get_output_format): New accessor.
  
! 2024-03-19  Edwin Lu  <ewlu@rivosinc.com>
  
! 	PR target/114175
! 	* config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
! 	riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL
  
! 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/install.texi (Prerequisites): Document use of autogen for
! 	libstdc++.
  
! 2024-03-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114151
! 	PR tree-optimization/114269
! 	PR tree-optimization/114322
! 	PR tree-optimization/114074
! 	* tree-chrec.cc (chrec_fold_multiply): Restrict the use of
! 	unsigned arithmetic when actual overflow on constant operands
! 	is observed.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
! 	arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114175
! 	* config/loongarch/loongarch.cc
! 	(loongarch_setup_incoming_varargs): Only skip
! 	loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
! 	functions if arg.type is NULL.
  
! 2024-03-19  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/114323
! 	* config/arm/arm-mve-builtins.cc
! 	(function_instance::reads_global_state_p): Take CP_READ_MEMORY
! 	into account.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
! 	function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
! 	rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114375
! 	* tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
! 	load permutation for masked loads but reject it when any
! 	such is necessary.
! 	* tree-vect-stmts.cc (vectorizable_load): Reject masked
! 	VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
! 	supported.
  
! 2024-03-19  Mary Bennett  <mary.bennett@embecosm.com>
  
! 	* common/config/riscv/riscv-common.cc: Create XCVbi extension
! 	support.
! 	* config/riscv/riscv.opt: Likewise.
! 	* config/riscv/corev.md: Implement cv_branch<mode> pattern
! 	for cv.beqimm and cv.bneimm.
! 	* config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
! 	branch instruction pattern.
! 	* config/riscv/constraints.md: Implement constraints
! 	cv_bi_s5 - signed 5-bit immediate.
! 	* config/riscv/predicates.md: Implement predicate
! 	const_int5s_operand - signed 5 bit immediate.
! 	* doc/sourcebuild.texi: Add XCVbi documentation.
  
! 2024-03-19  Chen Jiawei  <jiawei@iscas.ac.cn>
  
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): New def.
! 	(RISCV_CORE): Ditto.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
! 	option.
! 	* config/riscv/riscv.cc: New def.
! 	* config/riscv/riscv.md: New include.
! 	* config/riscv/xiangshan.md: New file.
  
! 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/110902
! 	PR analyzer/110928
! 	PR analyzer/111305
! 	PR analyzer/111441
! 	* selftest.h (ASSERT_NE_AT): New macro.
  
! 2024-03-18  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/111822
! 	* config/i386/i386-features.cc (smode_convert_cst): New function
! 	to handle SImode, DImode and TImode immediates, generalized from
! 	timode_convert_cst.
! 	(timode_convert_cst): Remove.
! 	(scalar_chain::convert_op): Unify from
! 	general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
! 	(general_scalar_chain::convert_op): Remove.
! 	(timode_scalar_chain::convert_op): Remove.
! 	(timode_scalar_chain::convert_insn): Update the call to
! 	renamed timode_convert_cst.
! 	* config/i386/i386-features.h (class scalar_chain):
! 	Redeclare convert_op as protected class member.
! 	(class general_calar_chain): Remove convert_op.
! 	(class timode_scalar_chain): Ditto.
  
! 2024-03-18  Jan Hubicka  <jh@suse.cz>
  
! 	* config/i386/zn4zn5.md: Add file missed in the previous commit.
  
! 2024-03-18  Jan Hubicka  <jh@suse.cz>
! 	    Karthiban Anbazhagan  <Karthiban.Anbazhagan@amd.com>
  
! 	* common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
! 	* common/config/i386/i386-common.cc (processor_names): Add znver5.
! 	(processor_alias_table): Likewise.
! 	* common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
! 	family.
! 	(processor_subtypes): Add znver5.
! 	* config.gcc (x86_64-*-* |...): Likewise.
! 	* config/i386/driver-i386.cc (host_detect_local_cpu): Let
! 	march=native detect znver5 cpu's.
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add
! 	znver5.
! 	* config/i386/i386-options.cc (m_ZNVER5): New definition
! 	(processor_cost_table): Add znver5.
! 	* config/i386/i386.cc (ix86_reassociation_width): Likewise.
! 	* config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
! 	(PTA_ZNVER5): New definition.
! 	* config/i386/i386.md (define_attr "cpu"): Add znver5.
! 	(Scheduling descriptions) Add znver5.md.
! 	* config/i386/x86-tune-costs.h (znver5_cost): New definition.
! 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
! 	(ix86_adjust_cost): Likewise.
! 	* config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
! 	(avx512_store_by_pieces): Add m_ZNVER5.
! 	* doc/extend.texi: Add znver5.
! 	* doc/invoke.texi: Likewise.
! 	* config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
  
! 2024-03-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/constraints.md (CX2, CX3, CX4): New constraints.
! 	* config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
! 	* config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
! 	* config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
! 	(xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
! 	(xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
  
! 2024-03-18  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/114334
! 	* config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
! 	(MODEF248): New mode iterator.
! 	(ssevecmodesuffix): Hanlde BF and HF.
! 	* config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
! 	(<code><mode>3): Ditto.
  
! 2024-03-18  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR rtl-optimization/112415
! 	* config/pa/pa.cc (pa_emit_move_sequence): Revise condition
! 	for symbolic memory operands.
! 	(pa_legitimate_address_p): Revise LO_SUM condition.
! 	* config/pa/pa.h (INT14_OK_STRICT): Revise define.  Move
! 	comment about GNU linker to predicates.md.
! 	* config/pa/predicates.md (floating_point_store_memory_operand):
! 	Revise condition for symbolic memory operands.  Update
! 	comment.
  
! 2024-03-17  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
  
! 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
! 	ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114329
! 	* gimple-lower-bitint.cc (struct bitint_large_huge): Declare
! 	build_bit_field_ref method.
! 	(bitint_large_huge::build_bit_field_ref): New method.
! 	(bitint_large_huge::lower_mergeable_stmt): Use it.
  
! 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/riscv/riscv.opt.urls: Regenerated.
! 	* config/rs6000/sysv4.opt.urls: Likewise.
! 	* config/xtensa/xtensa.opt.urls: Likewise.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	* lower-subreg.cc (resolve_simple_move): Fix comment typo,
! 	betwee -> between.
! 	* edit-context.cc (class line_event): Fix comment typo,
! 	betweeen -> between.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114339
! 	* config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
! 	a pasto, compare code against LE rather than GE.
  
! 2024-03-15  Joe Ramsay  <Joe.Ramsay@arm.com>
  
! 	* match.pd: Fix truncation pattern for -fno-signed-zeroes
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114332
! 	* expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113466
! 	* gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
! 	member.
! 	(bitint_large_huge::bitint_large_huge): Initialize it.
! 	(bitint_large_huge::~bitint_large_huge): Release it.
! 	(bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
! 	before which at least one statement has been inserted.
! 	(gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
! 	calls to a different block and add corresponding PHIs.
  
! 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.opt: Support -mstrict-align, and use
! 	TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
! 	as alias.
! 	* config/mips/mips.h: Use TARGET_STRICT_ALIGN.
! 	* config/mips/mips.opt.urls: Regenerate.
! 	* doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
  
! 2024-03-15  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR middle-end/114108
! 	* tree-vect-patterns.cc (vect_recog_abd_pattern): Call
! 	vect_convert_output with the correct vecitype.
  
! 2024-03-15  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
! 	Remove masking of operand 3.
  
! 2024-03-14  Jason Merrill  <jason@redhat.com>
  
! 	* tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
! 	comments.
  
! 2024-03-14  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR target/114288
! 	* config/pa/pa.cc (pa_legitimate_address_p): Don't allow
! 	14-bit displacements before reload for modes that may use
! 	a floating-point load or store.
  
! 2024-03-14  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.h (INT8_TYPE): Change to signed char.
  
! 2024-03-14  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
! 	patterns ahead of the l32i.n and s32i.n.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113907
! 	* ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
! 	SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
! 	functions.
  
! 2024-03-14  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (any_ge): Remove.
! 	(sge<u>_<X:mode><GPR:mode>): Remove.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114310
! 	* config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
! 	TImode force newval into a register.
  
! 2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>
  
! 	* tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
! 	(OMP_CLAUSE__CACHE__READONLY): New macro.
! 	* tree-core.h (struct GTY(()) tree_base): Adjust comments for new
! 	uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
! 	OMP_CLAUSE__CACHE__READONLY.
! 	* tree-pretty-print.cc (dump_omp_clause): Add support for printing
! 	OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
  
! 2024-03-14  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_encode_section_info): Adjust the check
! 	for misaligned symbols.
! 	* config/s390/s390.opt: Improve documentation.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-iterator.cc (edge_before_returns_twice_call): Copy all
! 	flags and probability from ad_edge to e edge.  If CDI_DOMINATORS
! 	are computed, recompute immediate dominator of other_edge->src
! 	and other_edge->dest.
! 	(gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
! 	for the returns_twice call case to the gsi_for_stmt (stmt) to deal
! 	with update it for bb splitting.
  
! 2024-03-14  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-features.cc
! 	(general_scalar_chain::convert_op): Handle REG_EH_REGION note.
! 	(convert_scalars_to_vector): Ditto.
! 	* config/i386/i386-features.h (class scalar_chain): New
! 	memeber control_flow_insns.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114319
! 	* gimple-ssa-store-merging.cc
! 	(imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
! 	allow matching __builtin_bswap64 if there is bswapsi2 optab.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_secondary_reload): Guard
! 	SYMBOL_FLAG_NOTALIGN2_P.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-builtin-types.def: Update to reflect latest
! 	changes.
! 	* config/s390/s390-builtins.def: Streamline vector builtins with
! 	LLVM.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-builtins.def (vec_permi): Deprecate.
! 	(vec_ctd): Deprecate.
! 	(vec_ctd_s64): Deprecate.
! 	(vec_ctd_u64): Deprecate.
! 	(vec_ctsl): Deprecate.
! 	(vec_ctul): Deprecate.
! 	(vec_ld2f): Deprecate.
! 	(vec_st2f): Deprecate.
! 	(vec_insert): Deprecate overloads with bool vectors.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114313
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
! 	TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
! 	(bitint_large_huge::handle_load): Pass NULL_TREE rather than
! 	rhs_type to limb_access for the bitfield load cases.
! 	(bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
! 	lhs_type to limb_access if nlhs is non-NULL.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
! 	build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
! 	gsi_safe_insert_before instead of gsi_insert_before.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* gimple-iterator.h (gsi_safe_insert_before,
! 	gsi_safe_insert_seq_before): Declare.
! 	* gimple-iterator.cc: Include gimplify.h.
! 	(edge_before_returns_twice_call, adjust_before_returns_twice_call,
! 	gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
! 	* ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
! 	instrument_nonnull_arg, instrument_nonnull_return): Use
! 	gsi_safe_insert_before instead of gsi_insert_before.
! 	(maybe_instrument_pointer_overflow): Use force_gimple_operand,
! 	gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
! 	instead of force_gimple_operand_gsi.
! 	(instrument_object_size): Likewise.  Use gsi_safe_insert_before
! 	instead of gsi_insert_before.
  
! 2024-03-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114121
! 	* tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
! 	converted operand properly.
! 	(chrec_fold_multiply): Likewise.  Handle missed recursion.
  
! 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* asan.cc (has_stmt_been_instrumented_p): Don't instrument call
! 	stores on the caller side unless it is a call to a builtin or
! 	internal function or function doesn't return by hidden reference.
! 	(maybe_instrument_call): Likewise.
! 	(instrument_derefs): Instrument stores to RESULT_DECL if
! 	returning by hidden reference.
  
! 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114293
! 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
! 	max is smaller than min, set max to ~(size_t)0.
  
! 2024-03-12  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
! 	code style greater than 80 chars.
! 	(riscv_cpu_cpp_builtins): Fix useless empty line, indent
! 	with 3 space(s) and argument unalignment.
  
! 2024-03-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114297
! 	* tree-vect-loop.cc (vectorizable_live_operation): Pass in the
! 	live stmts SLP node to vect_create_epilog_for_reduction.
  
! 2024-03-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR driver/114314
! 	* common.opt (fmultiflags): Add RejectNegative.
  
! 2024-03-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
  
! 	* config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
! 	* config/aarch64/aarch64.opt: Likewise.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
! 	(aarch64_expand_epilogue): Likewise.
! 	(aarch64_post_cfi_startproc): Likewise.
! 	(aarch64_handle_no_branch_protection): Copy and rename.
! 	(aarch64_handle_standard_branch_protection): Likewise.
! 	(aarch64_handle_pac_ret_protection): Likewise.
! 	(aarch64_handle_pac_ret_leaf): Likewise.
! 	(aarch64_handle_pac_ret_b_key): Likewise.
! 	(aarch64_handle_bti_protection): Likewise.
! 	(aarch64_override_options): Update branch protection validation.
! 	(aarch64_handle_attr_branch_protection): Likewise.
! 	* config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
! 	Pass branch protection type description as argument.
! 	(struct aarch_branch_protect_type): Move from aarch-common.h.
! 	* config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
! 	Remove.
! 	(aarch_handle_standard_branch_protection): Remove.
! 	(aarch_handle_pac_ret_protection): Remove.
! 	(aarch_handle_pac_ret_leaf): Remove.
! 	(aarch_handle_pac_ret_b_key): Remove.
! 	(aarch_handle_bti_protection): Remove.
! 	(aarch_validate_mbranch_protection): Pass branch protection type
! 	description as argument.
! 	* config/arm/aarch-common.h (enum aarch_key_type): Remove.
! 	(struct aarch_branch_protect_type): Remove.
! 	* config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
! 	* config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
! 	(arm_handle_standard_branch_protection): Likewise.
! 	(arm_handle_pac_ret_protection): Likewise.
! 	(arm_handle_pac_ret_leaf): Likewise.
! 	(arm_handle_bti_protection): Likewise.
! 	(arm_configure_build_target): Update branch protection validation.
! 	* config/arm/arm.opt: Remove aarch_ra_sign_key.
  
! 2024-03-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114299
! 	* gimplify.cc (internal_get_tmp_var): When gimplification
! 	of VAL failed, return a decl.
  
! 2024-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114278
! 	* tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
! 	longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
  
! 2024-03-11  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR debug/113519
! 	PR debug/113777
! 	* dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
! 	generate the DIE with the same parent as in the regular case.
  
! 2024-03-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/95351
! 	* fold-const.cc (merge_truthop_with_opposite_arm): Use
! 	the type of the operands of the comparison and not the type
! 	of the comparison.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR tree-optimization/110199
! 	* tree-ssa-scopedtables.cc
! 	(avail_exprs_stack::simplify_binary_operation): Generalize handling
! 	of MIN_EXPR/MAX_EXPR to allow additional simplifications.  Canonicalize
! 	comparison operands for other cases.
  
! 2024-03-10  Pan Li  <pan2.li@intel.com>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Enable the assert
! 	during transform process.
! 	(vectorizable_load): Ditto.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR target/102250
! 	* doc/install.texi: Document need for python when building
! 	RISC-V compilers.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR target/111362
! 	* mode-switching.cc (optimize_mode_switching): Only process
! 	NONDEBUG insns.
  
! 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md: Fix typos in comment, indentation glitches
! 	and some other nits.
  
! 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114284
! 	* fwprop.cc (try_fwprop_subst_pattern): Don't propagate
! 	src containing MEMs unless prop.likely_profitable_p ().
  
! 2024-03-09  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
! 	Support 'Q' for R_LARCH_RELAX for TLS IE.
! 	(loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
! 	IE.
! 	* config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
  
! 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
! 	usum_widenqihi and add_zero_extend1.
! 	[MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
! 	sub+sign_extend.
! 	* config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
! 	Compute exact insn lengths.
! 	(*usum_widenqihi3): Allow input operands to commute.
  
! 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.opt.urls: Regenerate.
  
! 2024-03-09  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/sync.md (atomic_cas_value_strong<mode>):
! 	In loongarch64, a sign extension operation is added when
! 	operands[2] is a register operand and the mode is SImode.
  
! 2024-03-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113757
! 	* tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
! 	id->killed_new_ssa_names.
  
! 2024-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/113790
! 	* lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
! 	for non-reload pseudo too.
  
! 2024-03-08  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
! 	not attempt inline expansion if size is above threshold.
! 	* config/bpf/bpf.opt (-minline-memops-threshold): New option.
! 	* doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
! 	Document.
  
! 2024-03-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114269
! 	PR tree-optimization/114074
! 	* tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
! 	in the third CASE_CONVERT case as well.
! 	(chrec_fold_multiply): Handle sign-conversions from unsigned
! 	by performing the operation in the unsigned type.
  
! 2024-03-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
  
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	* bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
! 	asm_noperands < 0 means it is not asm goto too.
  
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/38534
! 	* config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
! 	option.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Don't use
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
! 	ix86_noreturn_no_callee_saved_registers is enabled.
! 	* doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
  
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/113918
! 	* dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
! 	on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
  
! 2024-03-08  demin.han  <demin.han@starfivetech.com>
  
! 	PR target/114264
! 	* config/riscv/riscv-vector-costs.cc: Fix ICE
  
! 2024-03-08  Haochen Gui  <guihaoc@gcc.gnu.org>
  
! 	* fwprop.cc (forward_propagate_into): Return false for volatile set
! 	source rtx.
  
! 2024-03-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/113618
! 	* config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
! 	(aarch64_expand_cpymem): Emit single load/store only.
! 	(aarch64_set_one_block): Emit single stores only.
  
! 2024-03-07  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR middle-end/114196
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
! 	vectorization guards.
  
! 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/cppopts.texi: Remove incorrect claim about -dD not
! 	outputting predefined macros.
  
! 2024-03-07  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
  
! 	PR target/113950
! 	* config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
! 	and simplify else if with else.
  
! 2024-03-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
  
! 	* system.h: Include safe-ctype.h after C++ standard headers.
  
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/110079
! 	* bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
! 	asm goto.
  
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/105533
! 	* expmed.cc (choose_mult_variant): Only try the val - 1 variant
! 	if val is not HOST_WIDE_INT_MIN or if mode has exactly
! 	HOST_BITS_PER_WIDE_INT precision.  Avoid triggering UB while computing
! 	val - 1.
  
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/105533
! 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
! 	Multiple op->off by BITS_PER_UNIT instead of shifting it left by
! 	LOG2_BITS_PER_UNIT.
  
! 2024-03-07  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config.gcc: Add a case for loongarch*-*-linux-musl*.
! 	* config/loongarch/linux.h: Disable the multilib-compatible
! 	treatment for *musl* targets.
! 	* config/loongarch/musl.h: New file.
  
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114009
! 	* genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
! 	argument even for GENERIC, not just for GIMPLE.
! 	* match.pd (a * !a -> 0): New simplifications.
  
! 2024-03-07  demin.han  <demin.han@starfivetech.com>
  
! 	* config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
! 	* config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
! 	(expand_vec_cmp_float): Adapt arguments
  
! 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/114232
! 	* config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
! 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
! 	(negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
! 	(<plusminus:insn>v2qi3): Enable for optimize_size instead
! 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
! 	(<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
! 	(<any_shift:insn>v2qi3): Enable for optimize_size instead
! 	of optimize_function_for_size_p.
  
! 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/114200
! 	PR target/114202
! 	* config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
  
! 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
! 	(costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
! 	offset handling.
! 	(costs::add_stmt_cost): Also adjust cost for statements without
! 	stmt_info.
! 	* config/riscv/riscv-vector-costs.h: Define zero constant.
  
! 2024-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/113915
! 	* config/arm/arm.md (NOCOND): Improve comment.
! 	(arm_rev*) Add predicable.
! 	* config/arm/arm.cc (arm_final_prescan_insn): Add check for
! 	PREDICABLE_YES.
  
! 2024-03-06  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/113001
! 	PR target/112871
! 	* config/riscv/riscv.cc (expand_conditional_move): Do not swap
! 	operands when the comparison operand is the same as the false
! 	arm for a NE test.
  
! 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
! 	Eliminate common code and use generic code instead.
  
! 2024-03-06  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
! 	rtx cost.
  
! 2024-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114239
! 	* tree-vect-loop.cc (vect_get_vect_def): Remove.
! 	(vect_create_epilog_for_reduction): The passed in stmt_info
! 	should now be the live stmt that produces the scalar reduction
! 	result.  Revert PR114192 fix.  Base reduction info off
! 	info_for_reduction.  Remove special handling of
! 	early-break/peeled, restore original vector def gathering.
! 	Make sure to pick the correct exit PHIs.
! 	(vectorizable_live_operation): Pass in the proper stmt_info
! 	for early break exits.
  
! 2024-03-06  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
! 	out-of-class definitions of static constants.
  
! 2024-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114249
! 	* tree-vect-slp.cc (vect_build_slp_instance): Move making
! 	a BB reduction lane number even ...
! 	(vect_slp_check_for_roots): ... here to avoid leaking
! 	pattern defs.
  
! 2024-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114246
! 	* tree-ssa-dse.cc (increment_start_addr): Strip useless
! 	type conversions from the adjusted address.
  
! 2024-03-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114190
! 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
! 	Call df_remove_problem for df_note before calling df_analyze.
  
! 2024-03-05  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 	    Indu Bhagat  <indu.bhagat@oracle.com>
  
! 	PR debug/114186
! 	* dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
! 	in the correct order of the dimensions.
! 	(gen_ctf_subrange_type): Refactor out handling of
! 	DW_TAG_subrange_type DIE to here.
  
! 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR sanitizer/97696
! 	* asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
  
! 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
! 	and luti_strided.
! 	* config/aarch64/aarch64-sme.md
! 	(@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
! 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
! 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
! 	* config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
! 	(early_ra::maybe_convert_to_strided_access): Remove support for
! 	strided LUTI2 and LUTI4.
  
! 2024-03-05  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/113510
! 	* config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
! 	low_register_operand.
  
! 2024-03-05  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
! 	in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
! 	to "X = Y, X o= CST".
  
! 2024-03-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
! 	s9 as an alias of r22.
  
! 2024-03-05  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/avr/avr-protos.h (avr_out_insv): New proto.
! 	* config/avr/avr.cc (avr_out_insv): New function.
! 	(avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
! 	(avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
! 	* config/avr/avr.md (define_attr "adjust_len") Add insv.
! 	(andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
! 	Add constraint alternative where the 3rd operand is a power
! 	of 2, and the source register may differ from the destination.
! 	(*insv.any_shift.<mode>_split): Call avr_out_insv to output
! 	instructions.  Set attr "length" to "insv".
! 	* config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
  
! 2024-03-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114231
! 	* tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
! 	processing a BB SLP root.
  
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114211
! 	* lower-subreg.cc (resolve_simple_move): For double-word
! 	rotates by BITS_PER_WORD if there is overlap between source
! 	and destination use a temporary.
  
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114157
! 	* gimple-lower-bitint.cc: Include stor-layout.h.
! 	(mergeable_op): Return true for BIT_FIELD_REF.
! 	(struct bitint_large_huge): Declare handle_bit_field_ref method.
! 	(bitint_large_huge::handle_bit_field_ref): New method.
! 	(bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
  
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114116
! 	* config/i386/i386.h (enum call_saved_registers_type): Add
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Remove
! 	has_no_callee_saved_registers variable, add no_callee_saved_registers
! 	instead, initialize it depending on whether it is
! 	no_callee_saved_registers function or not.  Don't set it if
! 	no_caller_saved_registers attribute is present.  Adjust users.
! 	* config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
! 	TYPE_NO_CALLEE_SAVED_REGISTERS.
! 	(ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
  
! 2024-03-05  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
! 	mode_size related code.
  
! 2024-03-05  Patrick Palka  <ppalka@redhat.com>
  
! 	* doc/invoke.texi (-Wno-global-module): Document.
  
! 2024-03-04  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
! 	* config/bpf/bpf.cc (bpf_expand_setmem): New.
! 	* config/bpf/bpf.md (setmemdi): New define_expand.
  
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/113010
! 	* combine.cc (simplify_comparison): Guard the
! 	WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
! 	and initialize inner_mode.
  
! 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
! 	VMLALDAVAXQ_U cases.
! 	(VMLALDAVXQ): Remove iterator.
! 	(VMLALDAVXQ_P): Likewise.
! 	(VMLALDAVAXQ): Likewise.
! 	* config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
! 	mode iterator attribute with V4BI mode.
! 	* config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
! 	VMLALDAVAXQ_U): Remove unused unspecs.
  
! 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
! 	* config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
! 	attribute.
! 	* config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
! 	vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
! 	vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
! 	vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
! 	vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
! 	vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
! 	vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
! 	vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
! 	vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
! 	vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
  
! 2024-03-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/arm.md (mve_unpredicated_insn): New attribute.
! 	* config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
! 	(MVE_VPT_UNPREDICATED_INSN_P): Likewise.
! 	(MVE_VPT_PREDICABLE_INSN_P): Likewise.
! 	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
! 	* config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
! 	(arm_vcx1q<a>v16qi): Likewise.
! 	(arm_vcx1qav16qi): Likewise.
! 	(arm_vcx1qv16qi): Likewise.
! 	(arm_vcx2q<a>_p_v16qi): Likewise.
! 	(arm_vcx2q<a>v16qi): Likewise.
! 	(arm_vcx2qav16qi): Likewise.
! 	(arm_vcx2qv16qi): Likewise.
! 	(arm_vcx3q<a>_p_v16qi): Likewise.
! 	(arm_vcx3q<a>v16qi): Likewise.
! 	(arm_vcx3qav16qi): Likewise.
! 	(arm_vcx3qv16qi): Likewise.
! 	(@mve_<mve_insn>q_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_int_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_<supf>v4si): Likewise.
! 	(@mve_<mve_insn>q_n_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_r_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_f<mode>): Likewise.
! 	(@mve_<mve_insn>q_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_f<mode>): Likewise.
! 	(@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_p_<supf>v4si): Likewise.
! 	(@mve_<mve_insn>q_p_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
! 	(mve_v<absneg_str>q_f<mode>): Likewise.
! 	(mve_<mve_addsubmul>q<mode>): Likewise.
! 	(mve_<mve_addsubmul>q_f<mode>): Likewise.
! 	(mve_vadciq_<supf>v4si): Likewise.
! 	(mve_vadciq_m_<supf>v4si): Likewise.
! 	(mve_vadcq_<supf>v4si): Likewise.
! 	(mve_vadcq_m_<supf>v4si): Likewise.
! 	(mve_vandq_<supf><mode>): Likewise.
! 	(mve_vandq_f<mode>): Likewise.
! 	(mve_vandq_m_<supf><mode>): Likewise.
! 	(mve_vandq_m_f<mode>): Likewise.
! 	(mve_vandq_s<mode>): Likewise.
! 	(mve_vandq_u<mode>): Likewise.
! 	(mve_vbicq_<supf><mode>): Likewise.
! 	(mve_vbicq_f<mode>): Likewise.
! 	(mve_vbicq_m_<supf><mode>): Likewise.
! 	(mve_vbicq_m_f<mode>): Likewise.
! 	(mve_vbicq_m_n_<supf><mode>): Likewise.
! 	(mve_vbicq_n_<supf><mode>): Likewise.
! 	(mve_vbicq_s<mode>): Likewise.
! 	(mve_vbicq_u<mode>): Likewise.
! 	(@mve_vclzq_s<mode>): Likewise.
! 	(mve_vclzq_u<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
! 	(mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
! 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
! 	(mve_vcvtaq_<supf><mode>): Likewise.
! 	(mve_vcvtaq_m_<supf><mode>): Likewise.
! 	(mve_vcvtbq_f16_f32v8hf): Likewise.
! 	(mve_vcvtbq_f32_f16v4sf): Likewise.
! 	(mve_vcvtbq_m_f16_f32v8hf): Likewise.
! 	(mve_vcvtbq_m_f32_f16v4sf): Likewise.
! 	(mve_vcvtmq_<supf><mode>): Likewise.
! 	(mve_vcvtmq_m_<supf><mode>): Likewise.
! 	(mve_vcvtnq_<supf><mode>): Likewise.
! 	(mve_vcvtnq_m_<supf><mode>): Likewise.
! 	(mve_vcvtpq_<supf><mode>): Likewise.
! 	(mve_vcvtpq_m_<supf><mode>): Likewise.
! 	(mve_vcvtq_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_n_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_n_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_to_f_<supf><mode>): Likewise.
! 	(mve_vcvttq_f16_f32v8hf): Likewise.
! 	(mve_vcvttq_f32_f16v4sf): Likewise.
! 	(mve_vcvttq_m_f16_f32v8hf): Likewise.
! 	(mve_vcvttq_m_f32_f16v4sf): Likewise.
! 	(mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_vdwdupq_wb_u<mode>_insn): Likewise.
! 	(mve_veorq_s><mode>): Likewise.
! 	(mve_veorq_u><mode>): Likewise.
! 	(mve_veorq_f<mode>): Likewise.
! 	(mve_vidupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_vidupq_u<mode>_insn): Likewise.
! 	(mve_viwdupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_viwdupq_wb_u<mode>_insn): Likewise.
! 	(mve_vldrbq_<supf><mode>): Likewise.
! 	(mve_vldrbq_gather_offset_<supf><mode>): Likewise.
! 	(mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrbq_z_<supf><mode>): Likewise.
! 	(mve_vldrdq_gather_base_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
! 	(mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
! 	(mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_offset_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
! 	(mve_vldrhq_<supf><mode>): Likewise.
! 	(mve_vldrhq_fv8hf): Likewise.
! 	(mve_vldrhq_gather_offset_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_offset_fv8hf): Likewise.
! 	(mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_offset_z_fv8hf): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
! 	(mve_vldrhq_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_z_fv8hf): Likewise.
! 	(mve_vldrwq_<supf>v4si): Likewise.
! 	(mve_vldrwq_fv4sf): Likewise.
! 	(mve_vldrwq_gather_base_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_base_fv4sf): Likewise.
! 	(mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
! 	(mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_base_z_fv4sf): Likewise.
! 	(mve_vldrwq_gather_offset_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_offset_fv4sf): Likewise.
! 	(mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_offset_z_fv4sf): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
! 	(mve_vldrwq_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_z_fv4sf): Likewise.
! 	(mve_vmvnq_s<mode>): Likewise.
! 	(mve_vmvnq_u<mode>): Likewise.
! 	(mve_vornq_<supf><mode>): Likewise.
! 	(mve_vornq_f<mode>): Likewise.
! 	(mve_vornq_m_<supf><mode>): Likewise.
! 	(mve_vornq_m_f<mode>): Likewise.
! 	(mve_vornq_s<mode>): Likewise.
! 	(mve_vornq_u<mode>): Likewise.
! 	(mve_vorrq_<supf><mode>): Likewise.
! 	(mve_vorrq_f<mode>): Likewise.
! 	(mve_vorrq_m_<supf><mode>): Likewise.
! 	(mve_vorrq_m_f<mode>): Likewise.
! 	(mve_vorrq_m_n_<supf><mode>): Likewise.
! 	(mve_vorrq_n_<supf><mode>): Likewise.
! 	(mve_vorrq_s<mode>): Likewise.
! 	(mve_vorrq_s<mode>): Likewise.
! 	(mve_vsbciq_<supf>v4si): Likewise.
! 	(mve_vsbciq_m_<supf>v4si): Likewise.
! 	(mve_vsbcq_<supf>v4si): Likewise.
! 	(mve_vsbcq_m_<supf>v4si): Likewise.
! 	(mve_vshlcq_<supf><mode>): Likewise.
! 	(mve_vshlcq_m_<supf><mode>): Likewise.
! 	(mve_vshrq_m_n_<supf><mode>): Likewise.
! 	(mve_vshrq_n_<supf><mode>): Likewise.
! 	(mve_vstrbq_<supf><mode>): Likewise.
! 	(mve_vstrbq_p_<supf><mode>): Likewise.
! 	(mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrdq_scatter_base_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
! 	(mve_vstrhq_<supf><mode>): Likewise.
! 	(mve_vstrhq_fv8hf): Likewise.
! 	(mve_vstrhq_p_<supf><mode>): Likewise.
! 	(mve_vstrhq_p_fv8hf): Likewise.
! 	(mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
! 	(mve_vstrwq_<supf>v4si): Likewise.
! 	(mve_vstrwq_fv4sf): Likewise.
! 	(mve_vstrwq_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
  
! 2024-03-04  Marek Polacek  <polacek@redhat.com>
  
! 	* doc/extend.texi: Update [[gnu::no_dangling]].
  
! 2024-03-04  Andrew Stubbs  <ams@baylibre.com>
  
! 	* dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
! 	* expr.cc (store_constructor): Likewise.
! 	(do_store_flag): Likewise.
  
! 2024-03-04  Mark Wielaard  <mark@klomp.org>
  
! 	* common.opt.urls: Regenerate.
! 	* config/avr/avr.opt.urls: Likewise.
! 	* config/i386/i386.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rs6000/rs6000.opt.urls: Likewise.
  
! 2024-03-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114197
! 	* tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
! 	there are volatile bitfield accesses.
! 	(pass_if_conversion::execute): Throw away result if the
! 	if-converted and original loops are not nested as expected.
  
! 2024-03-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114164
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
! 	the code generated for mask argument setup is not supported.
  
! 2024-03-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114203
! 	* tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
! 	adjustment before making the result defined at zero.
  
! 2024-03-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114192
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
! 	appropriate def for the live out stmt in case of an alternate
! 	exit.
  
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114209
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
! 	unshare_expr when creating a MEM_REF from MEM_REF.
! 	(bitint_large_huge::lower_stmt): Call unshare_expr.
  
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114184
! 	* config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
! 	is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
! 	register.
  
! 2024-03-04  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/114187
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Call
! 	lowpart_subreg to perform type conversion, to avoid confusion
! 	over the offset to use in the call to simplify_reg_subreg.
  
! 2024-03-03  Greg McGary  <gkm@rivosinc.com>
  
! 	PR rtl-optimization/113010
! 	* combine.cc (simplify_comparison): Simplify a SUBREG on
! 	WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
! 	MEM load.
  
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
! 	Use bool in place of int for boolean logic (if possible).
! 	Move declarations to definitions (if possible).
! 	* config/avr/avr.md: Use C++ comments.  Fix some indentation glitches.
! 	* config/avr/avr-dimode.md: Same.
! 	* config/avr/constraints.md: Same.
! 	* config/avr/predicates.md: Same.
  
! 2024-03-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113720
! 	* config/alpha/alpha.md (umuldi3_highpart): Remove expander.
! 	(*umuldi3_highpart_reg): Rename to umuldi3_highpart and
! 	simplify insn RTX using UMUL_HIGHPART rtx_code.
! 	(*umuldi3_highpart_const): Remove.
  
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114100
! 	* config/avr/avr-protos.h (_reg_unused_after): Remove proto.
! 	* config/avr/avr.cc (_reg_unused_after): Make static.  And
! 	add 3rd argument to skip the current insn.
! 	(reg_unused_after): Adjust call of reg_unused_after.
! 	(avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
! 	unneeded frame pointer adjustments.
  
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/92729
! 	* config/avr/avr.md (define_attr "cc"): Remove.
! 	* config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
! 	from prototype.
! 	* config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
! 	its uses.  Add insn argument.
! 	(avr_out_plus_symbol): Remove pcc argument and its uses.
! 	(avr_out_plus): Remove pcc argument and its uses.
! 	Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
! 	(avr_out_round): Adjust call of avr_out_plus.
  
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
! 	from  r14-9273.
  
! 2024-03-03  Oleg Endo  <olegendo@gcc.gnu.org>
  
! 	PR target/101737
! 	* config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
! 	is not an insn, but e.g. a code label.
  
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md (REG_0, ... REG_36): New define_constants.
! 	* config/avr/avr.cc: Use them instead of magic numbers when it
! 	means a register number.
  
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc: Adjust some comments.
  
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114100
! 	* config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
! 	the low part of the frame pointer with 8-bit stack pointer.
  
! 2024-03-01  Patrick Palka  <ppalka@redhat.com>
  
! 	PR c++/104919
! 	PR c++/106009
! 	* tree-inline.cc (remap_decl): Handle copy_decl returning the
! 	original decl.
! 	(remap_decls): Handle remap_decl returning the original decl.
! 	(copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
! 	CONST_DECL.
  
! 2024-03-01  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
! 	type attribute.
! 	(extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
! 	(movdi_32bit, movdi_64bit, movsi_internal): Likewise.
! 	(movhi_internal, movqi_internal): Likewise.
! 	(movsf_softfloat, movsf_hardfloat): Likewise.
! 	(movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
! 	(movdf_softfloat): Likewise.
  
! 2024-03-01  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/110358
! 	PR c++/109642
! 	* doc/extend.texi: Document gnu::no_dangling.
! 	* doc/invoke.texi: Mention that gnu::no_dangling disables
! 	-Wdangling-reference.
  
! 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.opt: Overhaul help screen.
  
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR c++/110347
! 	* gimplify.cc (omp_notice_variable): Fix 'shared' arg to
! 	lang_hooks.decls.omp_disregard_value_expr for
! 	(first)private in target regions.
  
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114136
! 	* calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
! 	n_named_args initially before INIT_CUMULATIVE_ARGS to
! 	structure_value_addr_parm rather than 0, after it don't modify
! 	it if strict_argument_naming and clear only if
! 	!pretend_outgoing_varargs_named.
  
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/114015
! 	* dwarf2out.cc (should_move_die_to_comdat): Return false for
! 	aggregates without DW_AT_byte_size attribute or with non-constant
! 	DW_AT_byte_size.
  
! 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
! 	valid values for level.
  
! 2024-03-01  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114070
! 	* match.pd ((c ? a : b) op d  -->  c ? (a op d) : (b op d)):
! 	Allow the folding if before lowering and the current IL
! 	isn't supported with vcond_mask.
  
! 2024-03-01  xuli  <xuli1@eswincomputing.com>
  
! 	* config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
! 	attribute to riscv_attribute_table.
! 	(riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
! 	(riscv_fntype_abi): Add riscv_vector_cc attribute check.
! 	* doc/extend.texi: Add riscv_vector_cc attribute description.
  
! 2024-03-01  Pan Li  <pan2.li@intel.com>
  
! 	PR target/112817
! 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
! 	RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
! 	* config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
! 	(enum rvv_vector_bits_enum): New enum for different RVV vector bits.
! 	* config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
! 	comments for option replacement.
! 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
! 	riscv_autovec_preference to rvv_vector_bits.
! 	(vls_mode_valid_p): Ditto.
! 	(estimated_poly_value): Ditto.
! 	* config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
! 	vector chunks and honor new option mrvv-vector-bits.
! 	(riscv_override_options_internal): Update comments and rename the
! 	vector chunks.
! 	* config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
! 	internal option param=riscv-autovec-preference.
  
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	* function.cc (assign_parms): Only call assign_parms_setup_varargs
! 	early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
  
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114156
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
! 	rhs1 of a VCE to have no underlying variable if it is a load and
! 	handle that case.
  
! 2024-02-29  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/114159
! 	* function.cc (function_name): Make param const.
! 	* function.h (function_name): Likewise.
  
! 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114100
! 	* doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
! 	* config/avr/avr.opt (-mfuse-add=): New target option.
! 	* common/config/avr/avr-common.cc (avr_option_optimization_table)
! 	[OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
! 	[OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
! 	* config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
! 	* config/avr/avr-protos.h (avr_split_tiny_move)
! 	(make_avr_pass_fuse_add): New protos.
! 	* config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
! 	avr_split_tiny_move to split indirect memory accesses.
! 	(gen_move_clobbercc): New define_expand helper.
! 	* config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
! 	(avr_pass_fuse_add): New class from rtl_opt_pass.
! 	(make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
! 	(reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
! 	(avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
! 	of PLUS addressing for AVR_TINY.
! 	(avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
! 	(avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
! 	(avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
  
! 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114132
! 	* config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
! 	* config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
! 	(avr_function_arg): Set it.
! 	(avr_frame_pointer_required_p): Use it instead of .nregs.
  
! 2024-02-29  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/108174
! 	* config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
! 	static and mark with GTY.
  
! 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
  
  	* config/loongarch/loongarch.md
! 	(loongarch_<crc>_w_<size>_w_extended): New define_insn.
  
! 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (CRC): New define_int_iterator.
! 	(crc): New define_int_attr.
! 	(loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
! 	into ...
! 	(loongarch_<crc>_w_<size>_w): ... here.
  
! 2024-02-29  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/114130
! 	* config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
! 	extend the expected value if needed.
  
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config.gcc (target_gtfiles): Change coreout to btfext-out.
! 	(extra_objs): Change coreout to btfext-out.
! 	* config/bpf/coreout.cc: Rename to btfext-out.cc.
! 	* config/bpf/btfext-out.cc: Add.
! 	* config/bpf/coreout.h: Rename to btfext-out.h.
! 	* config/bpf/btfext-out.h: Add.
! 	* config/bpf/core-builtins.cc: Change include.
! 	* config/bpf/core-builtins.h: Change include.
! 	* config/bpf/t-bpf: Accomodate renamed files.
  
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/113453
! 	* config/bpf/bpf.cc (bpf_function_prologue): Define target
  	hook.
! 	* config/bpf/coreout.cc (brf_ext_info_section)
! 	(btf_ext_info): Move from coreout.h
! 	(btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
! 	(bpf_core_reloc): Rename to btf_ext_core_reloc.
! 	(btf_ext): Add static variable.
! 	(btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
! 	(bpf_create_or_find_funcinfo, bpt_create_core_reloc)
! 	(btf_ext_add_string, btf_funcinfo_type_callback)
! 	(btf_add_func_info_for, btf_validate_funcinfo)
! 	(btf_ext_info_len, output_btfext_func_info): Add function.
! 	(output_btfext_header, bpf_core_reloc_add)
! 	(output_btfext_core_relocs, btf_ext_init, btf_ext_output):
! 	Change to support new structs.
! 	* config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
! 	Move and change in coreout.cc.
! 	(btf_add_func_info_for, btf_ext_add_string): Add prototypes.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
! 	enabled by default for BPF.
! 	(bpf_file_end): Call BTF deallocation.
! 	(bpf_asm_init_sections): Correct condition.
! 	* dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
! 	deallocation.
! 	(ctf_debuf_finish): Correct condition for calling
! 	ctf_debug_finalize.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
! 	(traverse_btf_func_types): Define function.
! 	* ctfc.h (funcs_traverse_callback): Typedef for function
! 	prototype.
! 	(traverse_btf_func_types): Add prototype.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* btfout.cc (btf_collect_dataset): Corrects BTF type id.
! 
! 2024-02-28  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113831
! 	PR tree-optimization/108355
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
! 	PR113831 fix.
! 
! 2024-02-28  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114121
! 	* tree-ssa-sccvn.h (vn_reference_s::offset,
! 	vn_reference_s::max_size): New fields.
! 	(vn_reference_insert_pieces): Adjust prototype.
! 	* tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
! 	* tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
! 	size, allow using "don't know" state.
! 	(vn_walk_cb_data::finish): Pass along offset/max_size.
! 	(vn_reference_lookup_or_insert_for_pieces): Take offset and
! 	max_size as argument and use it.
! 	(vn_reference_lookup_3): Properly adjust offset and max_size
! 	according to the adjusted ao_ref.
! 	(vn_reference_lookup_pieces): Initialize offset and max_size.
! 	(vn_reference_lookup): Likewise.
! 	(vn_reference_lookup_call): Likewise.
! 	(vn_reference_insert): Likewise.
! 	(visit_reference_op_call): Likewise.
! 	(vn_reference_insert_pieces): Take offset and max_size
! 	as argument and use it.
! 
! 2024-02-28  Juergen Christ  <jchrist@linux.ibm.com>
! 
! 	PR tree-optimization/114075
! 	* tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
! 	point vectors
! 
! 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/114041
! 	* graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
! 	INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
! 
! 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113988
! 	* stor-layout.h (bitwise_mode_for_size): Declare.
! 	* stor-layout.cc (bitwise_mode_for_size): New function.
! 	* gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
! 	Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
! 	Use BITS_PER_UNIT instead of 8.
! 
! 2024-02-27  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	PR target/113871
! 	* config/i386/mmx.md (V248FI): Add V2BF mode.
! 	(V24FI_32): Ditto.
! 
! 2024-02-27  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* tree-ssa-dse.cc (compute_trims): Fix description.  Return early
! 	if either ref->offset is not byte aligned or ref->size is not known
! 	to be equal to ref->max_size.
! 	(maybe_trim_complex_store): Fix description.
! 	(maybe_trim_constructor_store): Likewise.
! 	(maybe_trim_partially_dead_store): Likewise.
! 
! 2024-02-27  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* config/arm/mmintrin.h: Warn if this header is included without
! 	defining __ENABLE_DEPRECATED_IWMMXT.
! 
! 2024-02-27  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114074
! 	* tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
! 	* tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
! 	Handle poly vs. non-poly multiplication correctly with respect
! 	to undefined behavior on overflow.
! 
! 2024-02-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/114044
! 	* internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
! 	DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
! 	* internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
! 	expand_PARITY): Declare.
! 	* internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
! 	expand_CTZ, expand_FFS, expand_PARITY): New functions.
! 	(expand_POPCOUNT): Use expand_bitquery.
! 
! 2024-02-27  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114081
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Perform manual dominator update for prologue peeling.
! 	(vect_do_peeling): Properly update dominators after adding the
! 	prologue-around guard.
! 
! 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
! 	(mstrict-X): Tag as "Optimization".
! 
! 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
! 	an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 	    H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR rtl-optimization/113617
! 	* varasm.cc (default_elf_select_rtx_section): For
! 	references to private symbols in comdat sections
! 	use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
! 	or .rodata.<comdat> comdat sections.
! 
! 2024-02-26  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114099
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Create and fill in a needed virtual LC PHI for the alternate
! 	exits.  Remove code dealing with that missing.
! 
! 2024-02-26  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114068
! 	* tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
! 	New function.
! 	(slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
! 	on the main exit if needed.  Remove band-aid for the case
! 	it was missing.
! 
! 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/114097
! 	* config/i386/i386-options.cc (ix86_set_func_type): Check
! 	interrupt instead of noreturn attribute.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* config/i386/i386.cc (ix86_bitint_type_info): Add support for
! 	!TARGET_64BIT.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/114090
! 	* match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
! 	Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
! 	types.
! 	((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114084
! 	* fold-const.cc (fold_binary_loc): Avoid the final associate_trees
! 	if all subtrees of var0 come from one of the op0 or op1 operands
! 	and all subtrees of con0 come from the other one.  Don't clear
! 	variables which are never used afterwards.
! 
! 2024-02-26  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/114070
! 	* genmatch.cc (parser::parse_c_expr): Do not record operand
! 	lists but only mark operators used.
! 	* match.pd ((c ? a : b) op (c ? d : e)  -->  c ? (a op d) : (b op e)):
! 	Properly guard the case of tcc_comparison changing the VEC_COND
! 	value operand type.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/114094
! 	* config/i386/i386.cc (x86_function_profiler): Add missing new-line
! 	to printed instruction.
! 
! 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/114098
! 	* config/i386/amxtileintrin.h (_tile_loadconfig): Use
! 	__builtin_ia32_ldtilecfg.
! 	(_tile_storeconfig): Use __builtin_ia32_sttilecfg.
! 	* config/i386/i386-builtin.def (BDESC): Add
! 	__builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
! 	* config/i386/i386-expand.cc (ix86_expand_builtin): Handle
! 	IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
! 	* config/i386/i386.md (ldtilecfg): New pattern.
! 	(sttilecfg): Likewise.
! 
! 2024-02-24  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR tree-optimization/113205
! 	* tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
! 	the proposed layout if it does not allow a source partition with
! 	layout 2 to keep that layout.
! 
! 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
! 	* combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
! 	* double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
! 	* genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
! 	(mk_attr_alt): Use HOST_WIDE_INT_0 macro.
! 	* genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
! 	macros.
! 	* ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
! 	* loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
! 	* pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
! 	HOST_WIDE_INT_UC macros.
! 	* rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
! 	* tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
! 	* tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
! 	* tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
! 	macros.
! 	* wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
! 	* config/i386/constraints.md (define_constraint "L"): Use
! 	HOST_WIDE_INT_C macro.
! 	* config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
! 	macro.
! 	(movl + movb peephole2): Likewise.
! 	* config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
! 	(const_32bit_mask): Likewise.
! 
! 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114073
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
! 	VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
! 	types like vector or complex types.
! 	(gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
! 	types.  Fix up VIEW_CONVERT_EXPR handling.  Allow merging
! 	VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
! 
! 2024-02-23  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR target/114028
! 	* config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
! 	Return false if inner mode is already Pmode.
! 	(rvv_builder::is_all_same_sequence): New function.
! 	(expand_vec_init): Emit broadcast if sequence is all same.
! 
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113613
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::m_current_region): New member variable.
! 	(early_ra::m_fpr_recency): Likewise.
! 	(early_ra::start_new_region): Bump m_current_region.
! 	(early_ra::allocate_colors): Prefer less recently used registers
! 	in the event of a tie.  Add a comment to explain why we prefer(ed)
! 	higher-numbered registers.
! 	(early_ra::find_oldest_color): Prefer less recently used registers
! 	here too.
! 	(early_ra::finalize_allocation): Update recency information for
! 	allocated registers.
! 	(early_ra::process_blocks): Initialize m_current_region and
! 	m_fpr_recency.
! 
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113295
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::test_strictness): New enum.
! 	(early_ra::is_chain_candidate): Add a strictness parameter to
! 	control whether only correctness matters, or whether both correctness
! 	and heuristics should be used.  Handle multiple levels of equivalence.
! 	(early_ra::find_related_start): Update call accordingly.
! 	(early_ra::strided_polarity_pref): Likewise.
! 	(early_ra::form_chains): Likewise.
! 	(early_ra::try_to_chain_allocnos): Use is_chain_candidate in
! 	correctness mode rather than trying to inline the test.
! 
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113295
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::find_related_start): Account for definitions by shared
! 	registers when testing for a single register definition.
! 	(early_ra::accumulate_defs): New function.
! 	(early_ra::record_copy): If A shares B's register, fold A's
! 	definition information into B's.  Fold A's use information into B's.
! 
! 2024-02-23  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
! 	if R_X86_64_CODE_6_GOTTPOFF is supported.
! 	* config.in: Regenerated.
! 	* configure: Likewise.
! 	* config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
! 	UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
! 
! 2024-02-23  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	PR target/108120
! 	* config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
! 	Gate with ARM_HAVE_NEON_<MODE>_ARITH.
! 
! 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/114054
! 	* expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
! 	temp variable instead of target parameter for result.
! 
! 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/114040
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
! 	Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
! 	probability from likely to unlikely.  When handling the true true
! 	store, first cast to limb_access_type and then to l's type.
! 
! 2024-02-23  Richard Biener  <rguenther@suse.de>
! 
! 	PR target/90785
! 	* config.gcc: Add ia64*-*-* to the list of obsoleted targets.
! 
! 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
! 
! 	PR other/109668
! 	* config/riscv/arch-canonicalize: Move to python3
! 	* config/riscv/multilib-generator: Likewise
! 
! 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
! 
! 	* doc/invoke.texi: Document -mcpu.
! 
! 2024-02-23  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Add parameter "--fatal-warnings" to assemble
! 	when checking whether the assemble support conditional branch
! 	relaxation.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/114007
! 	* doc/extend.texi: (__extension__): Remove comments about scope
! 	tokens vs. two colons.
  
! 2024-02-22  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/109804
! 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
! 	DEMANGLE_COMPONENT_UNNAMED_TYPE.
  
! 2024-02-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114048
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
! 	can also produce -1 off.
  
! 2024-02-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114027
! 	* tree-vect-loop.cc (vecctorizable_reduction): Use optimized
! 	condition reduction classification only for single-element
! 	chains.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/111960
! 	* profile-count.h (profile_count::dump): Remove overload with
! 	char * first argument.
! 	* profile-count.cc (profile_count::dump): Change overload with char *
! 	first argument which uses sprintf into the overfload with FILE *
! 	first argument and use fprintf instead.  Remove overload which wrapped
! 	it.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113993
! 	* tree-call-cdce.cc (get_no_error_domain): Handle
! 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}.  Handle
! 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
! 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
! 	the as the F128 suffixed cases, otherwise as non-suffixed ones.
! 	Handle BUILT_IN_{EXP,POW}10L for
! 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
! 	as (-inf, 4932).
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114038
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
! 	loop exit condition if end is divisible by limb_prec.
  
! 2024-02-22  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
! 	problem of mabi=, mno-flush-func, mexplicit-relocs;
! 	add missing leading - of mbranch-cost option.
! 	* config/mips/mips.opt.urls: Regenerate.
  
! 2024-02-22  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109987
! 	* config/rs6000/constraints.md (we): Update internal doc without
! 	referring to option -mpower9-vector.
! 	* config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
! 	special handlings.
! 	* config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
! 	OTHER_P8_VECTOR_MASKS): Merge to ...
! 	(OTHER_VSX_VECTOR_MASKS): ... here.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
! 	some error message handlings and explicit option mask adjustments on
! 	explicit option power{8,9}-vector conflicting with other options.
! 	(rs6000_print_isa_options): Update comments.
! 	(rs6000_disable_incompatible_switches): Remove power{8,9}-vector
! 	related array items and handlings.
! 	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
! 	special handlings.
! 	* config/rs6000/rs6000.opt: Make option power{8,9}-vector as
! 	WarnRemoved.
! 	* doc/extend.texi: Remove documentation referring to option
! 	-mpower8-vector.
! 	* doc/invoke.texi: Remove documentation for option
! 	-mpower{8,9}-vector and adjust some documentation referring to them.
! 	* doc/md.texi: Update documentation for constraint we.
! 	* doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
  
! 2024-02-22  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114017
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
! 	the version to 0.12.
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
! 	    Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): Ditto
! 	(generic_ooo_vec_store): Ditto
! 	(generic_ooo_vec_loadstore_seg): Ditto
! 	(generic_ooo_vec_alu): Ditto
! 	(generic_ooo_vec_fcmp): Ditto
! 	(generic_ooo_vec_imul): Ditto
! 	(generic_ooo_vec_fadd): Ditto
! 	(generic_ooo_vec_fmul): Ditto
! 	(generic_ooo_crypto): Ditto
! 	(generic_ooo_perm): Ditto
! 	(generic_ooo_vec_reduction): Ditto
! 	(generic_ooo_vec_ordered_reduction): Ditto
! 	(generic_ooo_vec_idiv): Ditto
! 	(generic_ooo_vec_float_divsqrt): Ditto
! 	(generic_ooo_vec_mask): Ditto
! 	(generic_ooo_vec_vesetvl): Ditto
! 	(generic_ooo_vec_setrm): Ditto
! 	(generic_ooo_vec_readlen): Ditto
! 	* config/riscv/riscv.md: Include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. To here
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): Ditto
! 	* config/riscv/generic.md (generic_sfb_alu): Ditto
! 	(generic_fmul_half): Ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
! 	(sifive_7_popcount): Ditto
! 	* config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
! 	* config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
! 	* config/riscv/vector.md: Change rdfrm to fmove
! 	* config/riscv/zc.md: Change pushpop to load/store
  
! 2024-02-21  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/invoke.texi (Warning Options): Fix typos.
  
! 2024-02-21  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
! 	* config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
! 	* config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
  
! 2024-02-21  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113476
! 	* ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
! 	initializers in the contructor.
! 	(ipa_node_params::~ipa_node_params): Release lattices as a vector.
! 	* ipa-cp.h: New file.
! 	* ipa-cp.cc: Include sreal.h and ipa-cp.h.
! 	(ipcp_value_source): Move to ipa-cp.h.
! 	(ipcp_value_base): Likewise.
! 	(ipcp_value): Likewise.
! 	(ipcp_lattice): Likewise.
! 	(ipcp_agg_lattice): Likewise.
! 	(ipcp_bits_lattice): Likewise.
! 	(ipcp_vr_lattice): Likewise.
! 	(ipcp_param_lattices): Likewise.
! 	(ipa_get_parm_lattices): Remove assert latticess is non-NULL.
! 	(ipa_value_from_jfunc): Adjust a check for empty lattices.
! 	(ipa_context_from_jfunc): Likewise.
! 	(ipa_agg_value_from_jfunc): Likewise.
! 	(merge_agg_lats_step): Do not memset new aggregate lattices to zero.
! 	(ipcp_propagate_stage): Allocate lattices in a vector as opposed to
! 	just in contiguous memory.
! 	(ipcp_store_vr_results): Adjust a check for empty lattices.
! 	* auto-profile.cc: Include sreal.h and ipa-cp.h.
! 	* cgraph.cc: Likewise.
! 	* cgraphclones.cc: Likewise.
! 	* cgraphunit.cc: Likewise.
! 	* config/aarch64/aarch64.cc: Likewise.
! 	* config/i386/i386-builtins.cc: Likewise.
! 	* config/i386/i386-expand.cc: Likewise.
! 	* config/i386/i386-features.cc: Likewise.
! 	* config/i386/i386-options.cc: Likewise.
! 	* config/i386/i386.cc: Likewise.
! 	* config/rs6000/rs6000.cc: Likewise.
! 	* config/s390/s390.cc: Likewise.
! 	* gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
! 	files to be included in gtype-desc.cc.
! 	* gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-devirt.cc: Likewise.
! 	* ipa-fnsummary.cc: Likewise.
! 	* ipa-icf.cc: Likewise.
! 	* ipa-inline-analysis.cc: Likewise.
! 	* ipa-inline-transform.cc: Likewise.
! 	* ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
! 	* ipa-modref.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-param-manipulation.cc: Likewise.
! 	* ipa-predicate.cc: Likewise.
! 	* ipa-profile.cc: Likewise.
! 	* ipa-prop.cc: Likewise.
! 	(ipa_node_params_t::duplicate): Assert new lattices remain empty
! 	instead of setting them to NULL.
! 	* ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-split.cc: Likewise.
! 	* ipa-sra.cc: Likewise.
! 	* ipa-strub.cc: Likewise.
! 	* ipa-utils.cc: Likewise.
! 	* ipa.cc: Likewise.
! 	* toplev.cc: Likewise.
! 	* tree-ssa-ccp.cc: Likewise.
! 	* tree-ssa-sccvn.cc: Likewise.
! 	* tree-vrp.cc: Likewise.
  
! 2024-02-21  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
! 	Armv8.7-a.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	Use aarch64_gen_compare_zero_and_branch rather than emitting
! 	a CBZ directly.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
! 	Remove duplicated call.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
! 	Check that each individual piece of state is shared in the same
! 	way, rather than using an aggregate check for PSTATE.ZA.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	In the code that commits a lazy save, only zero ZA if the function
! 	has ZA state.  Similarly zero ZT0 if the function has ZT0 state.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
! 	directly inserting the associated sequence
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	...here instead.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113995
! 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
! 	fold the SVE allocation into the initial allocation if the
! 	initial allocation includes a VG save.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113220
! 	* cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
! 	contain jumps even if called after initial RTL expansion.
! 	* mode-switching.cc: Include cfgbuild.h.
! 	(optimize_mode_switching): Allow the sequence returned by the
! 	emit hook to contain internal jumps.  Record which blocks
! 	contain such jumps and split the blocks at the end.
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
! 	non-debug insns when scanning the sequence.
  
! 2024-02-21  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
! 	* config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
  
! 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
  
! 	* doc/invoke.texi (-mmcu): Add information about MCU specs.
  
! 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
  
! 	* doc/invoke.texi (-minrt): Clarify that main
! 	must take no arguments.
  
! 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/builtins.def: Use function prototypes of given size
! 	and signedness.
! 	* config/avr/avr.cc (avr_init_builtins): Adjust types required
! 	by builtins.def.
! 	* doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
  
! 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
! 	instead of @table.
  
! 2024-02-20  Will Hawkins  <hawkinsw@obs.cr>
  
! 	* config/bpf/bpf.opt: Add help information for -mcpu.
  
! 2024-02-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113805
! 	* config/aarch64/aarch64-passes.def (pass_late_track_speculation):
! 	New pass.
! 	* config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
! 	Declare.
! 	* config/aarch64/aarch64.md (is_call): New attribute.
! 	(*and<mode>3nr_compare0): Rename to...
! 	(@aarch64_and<mode>3nr_compare0): ...this.
! 	* config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
! 	(aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
! 	* config/aarch64/aarch64-speculation.cc: Update file comment to
! 	describe the new late pass.
! 	(aarch64_do_track_speculation): Handle is_call insns like other calls.
! 	(pass_track_speculation): Add an is_late member variable.
! 	(pass_track_speculation::gate): Run the late pass for streaming-
! 	compatible functions and the early pass for other functions.
! 	(make_pass_track_speculation): Update accordingly.
! 	(make_pass_late_track_speculation): New function.
! 	* config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
! 	function.
! 	(aarch64_guard_switch_pstate_sm): Use it.
  
! 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
! 	Register these builtins with a pointer to uint64_t rather than unsigned
! 	DI mode.
  
! 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/113615
! 	* config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
! 	Conditionalize on '!TARGET_RDNA2_PLUS'.
! 	* config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
! 	(gcn_expand_reduc_scalar):
! 	'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
  
! 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
! 	'__gfx90a__' target CPU definition.  Add some safeguards for the future.
  
! 2024-02-19  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/54052
! 	* rtl-ssa/blocks.cc (function_info::place_phis): Filter
! 	local defs by LR_OUT.
  
! 2024-02-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113967
! 	* match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
! 	in condition that @rpos is multiple of vector element size.
  
! 2024-02-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113696
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
! 	Suppress vsetvl fusion.
  
! 2024-02-18  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113912
! 	* config/i386/i386.cc (ix86_can_use_push2pop2): New.
! 	(ix86_pro_and_epilogue_can_use_push2pop2): Use it.
! 	(ix86_emit_save_regs): Don't generate push2 if
! 	ix86_can_use_push2pop2 return false.
! 	(ix86_expand_epilogue): Don't generate pop2 if
! 	ix86_can_use_push2pop2 return false.
  
! 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
! 	Note on complete device support.
  
! 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Function Attributes): Fuse description
! 	of "signal" and "interrupt" attribute.  Link pseudo instruction.
  
! 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
! 	symbol type conversions.
! 	(__cacop_d): Likewise.
! 	(__cpucfg): Likewise.
! 	(__asrtle_d): Likewise.
! 	(__asrtgt_d): Likewise.
! 	(__lddir_d): Likewise.
! 	(__ldpte_d): Likewise.
! 	(__crc_w_b_w): Likewise.
! 	(__crc_w_h_w): Likewise.
! 	(__crc_w_w_w): Likewise.
! 	(__crc_w_d_w): Likewise.
! 	(__crcc_w_b_w): Likewise.
! 	(__crcc_w_h_w): Likewise.
! 	(__crcc_w_w_w): Likewise.
! 	(__crcc_w_d_w): Likewise.
! 	(__csrrd_w): Likewise.
! 	(__csrwr_w): Likewise.
! 	(__csrxchg_w): Likewise.
! 	(__csrrd_d): Likewise.
! 	(__csrwr_d): Likewise.
! 	(__csrxchg_d): Likewise.
! 	(__iocsrrd_b): Likewise.
! 	(__iocsrrd_h): Likewise.
! 	(__iocsrrd_w): Likewise.
! 	(__iocsrrd_d): Likewise.
! 	(__iocsrwr_b): Likewise.
! 	(__iocsrwr_h): Likewise.
! 	(__iocsrwr_w): Likewise.
! 	(__iocsrwr_d): Likewise.
! 	(__frecipe_s): Likewise.
! 	(__frecipe_d): Likewise.
! 	(__frsqrte_s): Likewise.
! 	(__frsqrte_d): Likewise.
  
! 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
! 	function return value type to unsigned short.
  
! 2024-02-16  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* doc/sourcebuild.texi: add scan-assembler-bound
  
! 2024-02-16  Jason Merrill  <jason@redhat.com>
  
! 	* gdbhooks.py: Fix regex syntax.
  
! 2024-02-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113895
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
! 	consistency checking when there are out-of-bound array
! 	accesses.  Allow -1 off when from an array reference with
! 	constant index.
  
! 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/106543
! 	* config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
! 	pattern.
  
! 2024-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords, Other
! 	attribugs): Document linker_plugin.
! 	(Require Support): Document dg-require-linker-plugin.
  
! 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/109349
! 	* common/config/riscv/riscv-common.cc (riscv_arch_help): New.
! 	* config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
! 	(RISCV_MINOR_VERSION_BASE): Ditto.
! 	(RISCV_REVISION_VERSION_BASE): Ditto.
! 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
! 	rather than magic number.
! 	* config/riscv/riscv.h (riscv_arch_help): New.
! 	(EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
! 	(DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
! 	--print-supported-extensions.
! 	* config/riscv/riscv.opt (march=help): New.
! 	(print-supported-extensions): New.
! 	(-print-supported-extensions): New.
! 	* doc/invoke.texi (RISC-V Options): Document -march=help.
  
! 2024-02-16  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR target/113780
! 	* config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
! 	for indirect calls with 4 or more arguments in pac-enabled functions.
  
! 2024-02-15  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
! 	use ldxb instead of ldxh.
  
! 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113921
! 	* cfgrtl.h (prepend_insn_to_edge): New declaration.
! 	* cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
! 	comment.
! 	(prepend_insn_to_edge): New function.
! 	* cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
! 	insert_insn_on_edge.
  
! 2024-02-15  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/111156
! 	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
! 	at the pattern stmt if any.
  
! 2024-02-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/113927
! 	* config/avr/avr.h (AVR_HAVE_ADIW): New macro.
! 	* config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
! 	* config/avr/avr.cc (avr_adiw_reg_p): New function.
! 	(avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
! 	Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
! 	* config/avr/avr.md: Same.
! 	(attr "isa") <tiny, no_tiny>: Remove.
! 	<adiw, no_adiw>: Add.
! 	(define_insn, define_insn_and_split): When an alternative has
! 	constraint "w", then set attribute "isa" to "adiw".
! 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
! 	Built-in define __AVR_HAVE_ADIW__.
! 	* doc/invoke.texi (AVR Options): Document it.
  
! 2024-02-15  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-valu.md
! 	(vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
! 	* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
! 	details are supported on RDNA devices.
  
! 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/113508
! 	* doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
! 	usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
! 	smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
! 	Add sentence about what the mode m is.
  
! 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
! 	smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
! 	var.
  
! 2024-02-15  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
! 	stmts.
  
! 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113567
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
! 	_BitInt multiplication, division or modulo with
! 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
! 	force the affected inputs into a new SSA_NAME.
  
! 2024-02-14  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113871
! 	* config/i386/mmx.md (V248FI): New mode iterator.
! 	(V24FI_32): DItto.
! 	(vec_shl_<V248FI:mode>): New expander.
! 	(vec_shl_<V24FI_32:mode>): Ditto.
! 	(vec_shr_<V248FI:mode>): Ditto.
! 	(vec_shr_<V24FI_32:mode>): Ditto.
! 	* config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
! 	(vec_shr_<V248FI:mode>): Ditto.
  
! 2024-02-14  Jan Hubicka  <jh@suse.cz>
  
! 	PR tree-optimization/111054
! 	* tree-ssa-loop-split.cc (split_loop): Check for profile being present.
  
! 2024-02-14  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
  
! 2024-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113910
! 	* bitmap.cc (bitmap_hash): Mix the full element "hash" to
! 	the hashval_t hash.
  
! 2024-02-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
! 	(pp_integer_with_precision): For unsigned ptrdiff_t printing
! 	with u, o or x print ptrdiff_t argument converted to
! 	unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
  
! 2024-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113576
! 	* expr.cc (do_store_flag): For vector bool compares of vectors
! 	with padding zero that.
! 	* dojump.cc (do_compare_and_jump): Likewise.
  
! 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/install.texi (Prerequisites): Update gettext link.
  
! 2024-02-13  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113876
! 	* config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
! 	Return false if the incoming stack isn't 16-byte aligned.
  
! 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/113904
! 	* omp-general.cc (struct omp_ts_info): Update for splitting of
! 	OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
! 	* omp-selectors.h (enum omp_tp_type): Replace
! 	OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
  
! 2024-02-13  Monk Chiang  <monk.chiang@sifive.com>
  
! 	PR target/113742
! 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
! 	recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113895
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
! 	offset to discover constant array indices in bits, handle
! 	COMPONENT_REF to bitfields.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113831
! 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
! 	typo in comment.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113902
! 	* tree-vect-loop.cc (move_early_exit_stmts): Track
! 	last_seen_vuse for VUSE updating.
  
! 2024-02-13  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113734
! 	* tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
! 	an early break loop as partial.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113898
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
! 	missing accumulated off adjustment.
  
! 2024-02-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	* hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
! 	instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
! 	it against UINT_MAX and ULONG_MAX.
  
! 2024-02-13  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic-core.h (emit_diagnostic_valist): Rename overload
! 	to...
! 	(emit_diagnostic_valist_meta): ...this.
! 	* diagnostic.cc (emit_diagnostic_valist): Likewise, to...
! 	(emit_diagnostic_valist_meta): ...this.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113849
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
! 	fast path for widening casts where !m_upwards_2limb and lhs_type
! 	has precision which is a multiple of limb_prec.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/113674
! 	* attribs.cc (extract_attribute_substring): Remove.
! 	(lookup_scoped_attribute_spec): Don't call it.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and cast to fmt_size_t instead of %lu and cast to unsigned long.
  
! 2024-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	* Makefile.in: Add no-info dependency.
! 	* configure.ac: Set BUILD_INFO=no-info if makeinfo is not
! 	available.
  	* configure: Regenerate.
  
! 2024-02-12  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR target/113855
! 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
! 	available to all sub-targets.
! 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
! 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
! 
! 2024-02-12  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113831
! 	PR tree-optimization/108355
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
! 	we see variable array indices and get_ref_base_and_extent
! 	can resolve those to constants fix up the ops to constants
! 	as well.
! 	(ao_ref_init_from_vn_reference): Use 'off' member for
! 	ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
! 	(valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
! 
! 2024-02-12  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
! 	Replace args to arguments for misspelled term.
! 
! 2024-02-12  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/112944
! 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
! 	<*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
! 	when not linked with -mrodata-in-ram.
! 
! 2024-02-12  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113863
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Record crossed virtual PHIs.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
! 	virtual PHIs.
! 
! 2024-02-10  Marek Polacek  <polacek@redhat.com>
  
! 	DR 2237
! 	PR c++/107126
! 	PR c++/97202
! 	* doc/invoke.texi: Document -Wtemplate-id-cdtor.
  
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
! 	computation of idx for i == 4 of bitint_prec_huge.
  
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/110754
! 	* gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
! 	decls create PARM_DECL with pointer to original type, set
! 	TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
! 	DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
! 	(adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
! 	wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
! 	(lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
! 	of the var as argument.
  
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	* pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
! 	size_t and precision 4 for ptrdiff_t.  Formatting fix.
! 	(pp_format): Document %{t,z}{d,i,u,o,x}.  Implement t and z modifiers.
! 	Formatting fixes.
! 	(test_pp_format): Test t and z modifiers.
! 	* gcc.cc (read_specs): Use %td instead of %ld and casts to long.
  
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	* ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
! 	sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
! 	* tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	(print_value_expr_statistics, print_type_hash_statistics): Likewise.
! 	* dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
! 	instead of "%lu" and casts to unsigned long.
! 	* gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
! 	unsigned long.
! 	* tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* cfgexpand.cc (dump_stack_var_partition): Use
! 	HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
! 	and casts to unsigned long.
! 	* gengtype.cc (adjust_field_rtx_def): Likewise.
! 	* tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* postreload-gcse.cc (dump_hash_table): Likewise.
! 	* ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
! 	(ggc_internal_alloc, ggc_free): Likewise.
! 	* genpreds.cc (write_lookup_constraint_1): Likewise.
! 	(write_insn_constraint_len): Likewise.
! 	* tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* varasm.cc (output_constant_pool_contents): Use
! 	HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
! 	* var-tracking.cc (dump_var): Likewise.
  
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113783
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
! 	through VIEW_CONVERT_EXPR for final cast checks.  Handle
! 	VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
! 	INTEGER_TYPEs.
! 	(gimple_lower_bitint): Don't merge mergeable operations or other
! 	casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
! 	* expr.cc (expand_expr_real_1): Don't use convert_modes if either
! 	mode is BLKmode.
  
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
! 	HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
! 	HOST_SIZE_T_PRINT_HEX_PURE): Define.
! 	* ira-conflicts.cc (build_conflict_bit_table): Use it.  Formatting
! 	fixes.
  
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113415
! 	* cfgexpand.cc (expand_asm_stmt): For asm goto, use
! 	duplicate_insn_chain to duplicate after_rtl_seq sequence instead
! 	of hand written loop with emit_insn of copy_insn and emit original
! 	after_rtl_seq on the last edge.
  
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113818
! 	* gimple-lower-bitint.cc (add_eh_edge): New function.
! 	(bitint_large_huge::handle_load,
! 	bitint_large_huge::lower_mergeable_stmt,
! 	bitint_large_huge::lower_muldiv_stmt): Use it.
  
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113774
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
! 	emit any comparison if m_first and low + 1 is equal to
! 	m_upwards_2limb, simplify condition for that.  If not
! 	single_comparison, not m_first and we can prove that the idx <= low
! 	comparison will be always true, emit instead of idx <= low
! 	comparison low <= low such that cfg cleanup will optimize it at
! 	the end of the pass.
  
! 2024-02-08  Aldy Hernandez  <aldyh@redhat.com>
  
! 	PR tree-optimization/113735
! 	* value-relation.cc (equiv_oracle::add_equiv_to_block): Call
! 	limit_check().
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
! 	(main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
  
! 2024-02-08  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113711
! 	PR target/113733
! 	* config/i386/constraints.md: List all constraints with j prefix.
! 	(j>): Change auto-dec to auto-inc in documentation.
! 	(je): Changed to a memory constraint with APX NDD TLS operand
! 	check.
! 	(jM): New memory constraint for APX NDD instructions.
! 	(jO): Likewise.
! 	* config/i386/i386-protos.h (x86_poff_operand_p): Removed.
! 	* config/i386/i386.cc (x86_poff_operand_p): Likewise.
! 	* config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
! 	(*add<mode>_1[SWI48]): Use je and jM.
! 	(addsi_1_zext): Use jM.
! 	(*addv<dwi>4_doubleword_1[DWI]): Likewise.
! 	(*sub<mode>_1[SWI]): Use jM.
! 	(@add<mode>3_cc_overflow_1[SWI]): Likewise.
! 	(*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
! 	(*and<dwi>3_doubleword): Likewise.
! 	(*anddi_1): Use jM.
! 	(*andsi_1_zext): Likewise.
! 	(*and<mode>_1[SWI24]): Likewise.
! 	(*<code><dwi>3_doubleword[any_or]): Use rjO
! 	(*code<mode>_1[any_or SWI248]): Use jM.
! 	(*<code>si_1_zext[zero_extend + any_or]): Likewise.
! 	* config/i386/predicates.md (apx_ndd_memory_operand): New.
! 	(apx_ndd_add_memory_operand): Likewise.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/113824
! 	* config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-02-08  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113808
! 	* tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
! 	value cross iterations.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
! 	defines __AVR_PM_BASE_ADDRESS__ if the core has it.
  
! 2024-02-08  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Revert last change to dr_may_alias_p.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
! 	cc1_rodata_in_ram.  Rename spec link_misc to link_rodata_in_ram.
! 	Remove spec asm_misc.
! 	* config/avr/specs.h: Same.
  
! 2024-02-08  Pan Li  <pan2.li@intel.com>
  
! 	PR target/113766
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
! 	sure the c.arg_num is >= 2 before checking.
! 	(struct build_frm_base): Ditto.
! 	(struct narrow_alu_def): Ditto.
  
! 2024-02-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113796
! 	* tree-if-conv.cc (combine_blocks): Wipe range-info before
! 	replacing PHIs and inserting predicates.
  
! 2024-02-07  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113690
! 	* config/i386/i386-features.cc (timode_convert_cst): New helper
! 	function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
! 	CONST_VECTOR.
! 	(timode_scalar_chain::convert_op): Use timode_convert_cst.
! 	(timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
! 	Use timode_convert_cst.
  
! 2024-02-07  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
! 	* config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
! 	(AARCH64_FL_DEBUGv8p9): Likewise.
! 	(AARCH64_FL_FGT2): Likewise.Likewise.
! 	(AARCH64_FL_ITE): Likewise.
! 	(AARCH64_FL_PFAR): Likewise.
! 	(AARCH64_FL_PMUv3_ICNTR): Likewise.
! 	(AARCH64_FL_PMUv3_SS): Likewise.
! 	(AARCH64_FL_PMUv3p9): Likewise.
! 	(AARCH64_FL_RASv2): Likewise.
! 	(AARCH64_FL_S1PIE): Likewise.
! 	(AARCH64_FL_S1POE): Likewise.
! 	(AARCH64_FL_S2PIE): Likewise.
! 	(AARCH64_FL_S2POE): Likewise.
! 	(AARCH64_FL_SCTLR2): Likewise.
! 	(AARCH64_FL_SEBEP): Likewise.
! 	(AARCH64_FL_SPE_FDS): Likewise.
! 	(AARCH64_FL_TCR2): Likewise.
  
! 2024-02-07  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Only check whether reads are in-bound in places that are not safe.
! 	Fix dependence check.  Add missing newline.  Clarify comments.
  
! 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113750
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
! 	for single predecessor when doing early break vect.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
! 	after labels.
  
! 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113731
! 	* gimple-iterator.cc (gsi_move_before): Take new parameter for update
! 	method.
! 	* gimple-iterator.h (gsi_move_before): Default new param to
! 	GSI_SAME_STMT.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
! 	GSI_NEW_STMT.
  
! 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113756
! 	* range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
! 	use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
! 	of lh_bits value and mask.
  
! 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113753
! 	* wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
! 	UNSIGNED rather than SIGNED.  If high or needs_overflow and prec is
! 	not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
! 	so that they start with r[half_blocks_needed] lowest bit.  Fix up
! 	computation of top mask for SIGNED.
  
! 2024-02-07  Pan Li  <pan2.li@intel.com>
  
! 	PR target/113766
! 	* config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
! 	the signature of func.
! 	* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
! 	overloaded func with empty args error.
  
! 2024-02-06  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113689
! 	* config/i386/i386.cc (x86_64_select_profile_regnum): Return
! 	R10_REG after sorry.
  
! 2024-02-06  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
! 	Move before new caller, and add ".default" suffix.
! 	(get_suffixed_assembler_name): New.
! 	(make_resolver_func): Use get_suffixed_assembler_name.
! 	(aarch64_generate_version_dispatcher_body): Redo name mangling.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113763
! 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
! 	element from std::pair<unsigned int, char> to an unnamed struct.
! 	Adjust uses of tile range variable.
  
! 2024-02-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
! 	(pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/110676
! 	* gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
! 	reset maxlen to sizetype maximum.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113736
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
! 	var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113759
! 	* tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
! 	or from_unsignedN differs from properties of typeN, update typeN
! 	to build_nonstandard_integer_type.  If TREE_TYPE (rhsN) is not
! 	uselessly convertible to typeN, convert it using fold_convert or
! 	build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
! 	(convert_plusminus_to_widen): Likewise.
  
! 2024-02-06  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR target/112577
! 	* config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
! 	vector structure modes correctly.
  
! 2024-02-05  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/thead.cc (th_print_operand_address): Fix compiler
! 	warning.
  
! 2024-02-05  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113689
! 	* config/i386/i386.cc (x86_64_select_profile_regnum): New.
! 	(x86_function_profiler): Call x86_64_select_profile_regnum to
! 	get a scratch register for large model profiling.
  
! 2024-02-05  Richard Ball  <richard.ball@arm.com>
  
! 	* config/arm/arm.cc (arm_output_mi_thunk): Emit
! 	insn for bti_c when bti is enabled.
  
! 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
! 	neg.
  
! 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
! 	(neg<mode>2): Change the mode iterator from MSA to IMSA because
! 	in FP arithmetic we cannot use (0 - x) for -x.
! 	(neg<mode>2): New define_insn to implement FP vector negation,
! 	using a bnegi instruction to negate the sign bit.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113707
! 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
! 	checking the avail set treat out-of-region defines as
! 	available.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
! 	the default mode when building a pointer.
  
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113737
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
! 	has just a single label, remove it and make single successor edge
! 	EDGE_FALLTHRU.
  
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113059
! 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
! 	Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
! 	df_analyze call.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR target/113255
! 	* config/i386/i386-expand.cc
! 	(expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
! 	Use a new pseudo for the skipped number of bytes.
  
! 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p450,
! 	sifive-p670.
  
! 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.md: Include sifive-p400.md.
! 	* config/riscv/sifive-p400.md: New file.
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
! 	Add sifive_p400.
! 	* config/riscv/riscv.cc (sifive_p400_tune_info): New.
! 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p400-series
  
! 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (*eqne_zero_masked_bits):
! 	Add missing ":SI" to the match_operator.
  
! 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (SHI): New mode iterator.
! 	(2 split patterns related to constsynth):
! 	Change to also accept HImode operands.
  
! 2024-02-04  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
! 	similarly.
  
! 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
! 	incorrect expand.
! 	* config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
! 	(elmsgnbit): Likewise.
! 	(neg<mode:FVEC>2): New define_insn.
! 	* config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
! 	are now instantiated in simd.md.
  
! 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
! 	use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
! 	MAX_MACHINE_MODE.
  
! 2024-02-04  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
! 	(loongarch_expand_vselect_vconcat): Ditto.
! 	(loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
! 	all 128-bit constant permutation situations.
! 	(loongarch_expand_lsx_shuffle): Adjust and rename function name.
! 	(loongarch_is_imm_set_shuffle): Renamed function name.
! 	(loongarch_expand_vec_perm_even_odd): Function forward declaration.
! 	(loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
! 	extract-even and extract-odd permutations.
! 	(loongarch_is_odd_extraction): Delete.
! 	(loongarch_is_even_extraction): Ditto.
! 	(loongarch_expand_vec_perm_const): Adjust.
  
! 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113722
! 	* wide-int.cc (wi::bswap_large): Rename third argument from
! 	len to xlen and adjust use in safe_uhwi.  Add len variable, set
! 	it to BLOCKS_NEEDED (precision) and use it for clearing of val
! 	and as canonize argument.  Clear val using memset instead of
! 	a loop.
  
! 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	* ggc-common.cc (gt_pch_save): Allow addr to be equal to
! 	mmi.preferred_base + mmi.size - sizeof (void *).
  
! 2024-02-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
! 	* config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
! 	the ODR-violating locale declaration.
  
! 2024-02-02  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113588
! 	PR tree-optimization/113467
! 	* tree-vect-data-refs.cc
! 	(vect_analyze_data_ref_dependence):  Choose correct dest and fix checks.
! 	(vect_analyze_early_break_dependences): Update comments.
  
! 2024-02-02  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR target/59778
! 	* config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
! 	and PA_BUILTIN_SET_FPSR builtins.
! 	* (pa_builtins_icode): Declare.
! 	* (def_builtin, pa_fpu_init_builtins): New.
! 	* (pa_init_builtins): Initialize FPU builtins.
! 	* (pa_builtin_decl, pa_expand_builtin_1): New.
! 	* (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
! 	PA_BUILTIN_SET_FPSR builtins.
! 	* (pa_atomic_assign_expand_fenv): New.
! 	* config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
! 	UNSPECV constants.
! 	(get_fpsr, put_fpsr): New expanders.
! 	(get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
! 	insn patterns.
  
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113697
! 	* config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
  
! 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/extend.texi (Common Type Attributes): Fix typo in
! 	description of hardbool.
  
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113692
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
! 	from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
! 	final_cast_p.
  
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113699
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
! 	uninitialized large/huge _BitInt SSA_NAME inputs.
  
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113705
! 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
! 	around wi::to_wide in order to compare value in prec precision.
  
! 2024-02-02  Lehua Ding  <lehua.ding@rivai.ai>
  
  	Revert:
! 	2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
! 
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
! 
! 2024-02-02  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
! 	(riscv_pass_by_reference): Ditto.
! 	(riscv_fntype_abi): Ditto.
! 
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
! 	(pre_vsetvl::cleaup): Remove vsetvl_pre.
! 	(pre_vsetvl::remove_vsetvl_pre_insns): New function.
! 
! 2024-02-02  Jiahao Xu  <xujiahao@loongson.cn>
! 
! 	* config/loongarch/larchintrin.h
! 	(__frecipe_s): Update function return type.
! 	(__frecipe_d): Ditto.
! 	(__frsqrte_s): Ditto.
! 	(__frsqrte_d): Ditto.
! 
! 2024-02-02  Li Wei  <liwei@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
! 	(loongarch_vector_costs::add_stmt_cost): Adjust.
! 
! 2024-02-02  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.md (unspec): Add
! 	UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
! 	(la_pcrel64_two_parts): New define_insn.
! 	* config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
! 	typo in the comment.
! 	(loongarch_call_tls_get_addr): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
! 	addressing the TLS symbol and __tls_get_addr.  Emit an REG_EQUAL
! 	note to allow CSE addressing __tls_get_addr.
! 	(loongarch_legitimize_tls_address): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, address TLS IE symbols with
! 	la_pcrel64_two_parts.
! 	(loongarch_split_symbol): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, address symbols with
! 	la_pcrel64_two_parts.
! 	(loongarch_output_mi_thunk): Clean up unreachable code.  If
! 	-mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
! 	thunks with la_pcrel64_two_parts.
! 
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
! 	Add support for call36.
! 
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
! 	When the code model of the symbol is extreme and -mexplicit-relocs=auto,
! 	the macro instruction loading symbol address is not applicable.
! 	(loongarch_call_tls_get_addr): Adjust code.
! 	(loongarch_legitimize_tls_address): Likewise.
! 
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
! 	Add function declaration.
! 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
! 	For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
! 	is not allowed
! 	(loongarch_load_tls): Added macro support in extreme mode.
! 	(loongarch_call_tls_get_addr): Likewise.
! 	(loongarch_legitimize_tls_address): Likewise.
! 	(loongarch_force_address): Likewise.
! 	(loongarch_legitimize_move): Likewise.
! 	(loongarch_output_mi_thunk): Likewise.
! 	(loongarch_option_override_internal): Remove the code that detects
! 	explicit relocs status.
! 	(loongarch_handle_model_attribute): Likewise.
! 	* config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
! 	* config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
! 	(symbolic_off64_or_reg_operand): Likewise.
! 
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_load_tls):
! 	Load all types of tls symbols through one function.
! 	(loongarch_got_load_tls_gd): Delete.
! 	(loongarch_got_load_tls_ld): Delete.
! 	(loongarch_got_load_tls_ie): Delete.
! 	(loongarch_got_load_tls_le): Delete.
! 	(loongarch_call_tls_get_addr): Modify the called function name.
! 	(loongarch_legitimize_tls_address): Likewise.
! 	* config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
! 	(@load_tls<mode>): New template.
! 	(@got_load_tls_ld<mode>): Delete.
! 	(@got_load_tls_le<mode>): Delete.
! 	(@got_load_tls_ie<mode>): Delete.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
! 	(loongarch_legitimize_address): Add logical transformation code.
  
! 2024-02-01  Marek Polacek  <polacek@redhat.com>
  
! 	* doc/invoke.texi: Update -Wdangling-reference documentation.
  
! 2024-02-01  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113701
! 	* config/i386/i386.md (*cmp<dwi>_doubleword):
! 	Do not force SUBREG pieces to pseudos.
  
! 2024-02-01  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa.md (atomic_storedi_1): Fix bug in
! 	alternative 1.
  
! 2024-02-01  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc: Tabify.
  
! 2024-02-01  Richard Ball  <richard.ball@arm.com>
  
! 	PR tree-optimization/111268
! 	* tree-vect-slp.cc (vectorizable_slp_permutation_1):
! 	Add variable-length check for vector input arguments
! 	to a function.
  
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
! 	hard-code number of SGPR/VGPR/AVGPR registers.
! 	* config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
! 	SGPR/VGPR/AVGPR registers.
  
! 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
! 	attribute, and include sifive-p600.md.
! 	* config/riscv/generic-ooo.md: Update type attribute.
! 	* config/riscv/generic.md: Update type attribute.
! 	* config/riscv/sifive-7.md: Update type attribute.
! 	* config/riscv/sifive-p600.md: New file.
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
! 	Add sifive_p600.
! 	* config/riscv/riscv.cc (sifive_p600_tune_info): New.
! 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p600-series
  
! 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
! 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
! 	* config/riscv/riscv.opt: New macro for 7 new unprivileged
! 	extensions.
! 	* doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
! 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
  
! 2024-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
! 	-static-libasan.  Add missing whitespace.
  
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
! 	(FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
! 	Don't 'define_constants'.
  
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
  
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
! 	[TARGET_RDNA3]: Adjust.
  
! 2024-02-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113693
! 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
! 	data when available.
  
! 2024-02-01  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
  
! 	PR c++/113531
! 	* gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
! 	on variables which were promoted to TREE_STATIC.
  
! 2024-02-01  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR target/113560
! 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
! 	information via tree_non_zero_bits to check if this operand
! 	is suitably extended for a widening (or highpart) multiplication.
! 	(convert_mult_to_widen): Insert explicit casts if the RHS or LHS
! 	isn't already of the claimed type.
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): ditto
! 	* config/riscv/generic.md (generic_sfb_alu): ditto
! 	(generic_fmul_half): ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
! 	(sifive_7_popcount): ditto
! 	* config/riscv/vector.md: change rdfrm to fmove
! 	* config/riscv/zc.md: change pushpop to load/store
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 		    Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): ditto
! 	(generic_ooo_vec_store): ditto
! 	(generic_ooo_vec_loadstore_seg): ditto
! 	(generic_ooo_vec_alu): ditto
! 	(generic_ooo_vec_fcmp): ditto
! 	(generic_ooo_vec_imul): ditto
! 	(generic_ooo_vec_fadd): ditto
! 	(generic_ooo_vec_fmul): ditto
! 	(generic_ooo_crypto): ditto
! 	(generic_ooo_perm): ditto
! 	(generic_ooo_vec_reduction): ditto
! 	(generic_ooo_vec_ordered_reduction): ditto
! 	(generic_ooo_vec_idiv): ditto
! 	(generic_ooo_vec_float_divsqrt): ditto
! 	(generic_ooo_vec_mask): ditto
! 	(generic_ooo_vec_vesetvl): ditto
! 	(generic_ooo_vec_setrm): ditto
! 	(generic_ooo_vec_readlen): ditto
! 	* config/riscv/riscv.md: include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. to here
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
  	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
! 
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
! 
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 	    Robin Dapp  <rdapp.gcc@gmail.com>
! 
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): ditto
! 	(generic_ooo_vec_store): ditto
! 	(generic_ooo_vec_loadstore_seg): ditto
! 	(generic_ooo_vec_alu): ditto
! 	(generic_ooo_vec_fcmp): ditto
! 	(generic_ooo_vec_imul): ditto
! 	(generic_ooo_vec_fadd): ditto
! 	(generic_ooo_vec_fmul): ditto
! 	(generic_ooo_crypto): ditto
! 	(generic_ooo_perm): ditto
! 	(generic_ooo_vec_reduction): ditto
! 	(generic_ooo_vec_ordered_reduction): ditto
! 	(generic_ooo_vec_idiv): ditto
! 	(generic_ooo_vec_float_divsqrt): ditto
! 	(generic_ooo_vec_mask): ditto
! 	(generic_ooo_vec_vesetvl): ditto
! 	(generic_ooo_vec_setrm): ditto
! 	(generic_ooo_vec_readlen): ditto
! 	* config/riscv/riscv.md: include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. to here
! 
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): ditto
! 	* config/riscv/generic.md (generic_sfb_alu): ditto
! 	(generic_fmul_half): ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
! 	(sifive_7_popcount): ditto
! 	* config/riscv/vector.md: change rdfrm to fmove
! 	* config/riscv/zc.md: change pushpop to load/store
! 
! 2024-02-01  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/113657
! 	* config/aarch64/aarch64-simd.md (split for movv8di):
! 	For strict aligned mode, use DImode instead of TImode.
! 
! 2024-01-31  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR middle-end/113607
! 	* match.pd: Make sure else values match when folding a
! 	vec_cond into a conditional operation.
! 
! 2024-01-31  Marek Polacek  <polacek@redhat.com>
! 
! 	* doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
! 
! 2024-01-31  Tamar Christina  <tamar.christina@arm.com>
! 	    Matthew Malcomson  <matthew.malcomson@arm.com>
! 
! 	PR sanitizer/112644
! 	* asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
! 	memcmp.
! 	* builtins.cc (expand_builtin): Include HWASAN when checking for
! 	builtin inlining.
! 
! 2024-01-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/110176
! 	* match.pd (zext (bool) <= (int) 4294967295u): Make sure
! 	to match INTEGER_CST only without outstanding conversion.
! 
! 2024-01-31  Alex Coplan  <alex.coplan@arm.com>
! 
! 	PR target/111677
! 	* config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
! 	V16QImode for the full 16-byte FPR saves in the vector PCS case.
! 
! 2024-01-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/111444
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
! 	vn_reference_lookup_2 when optimistically skipping may-defs.
! 
! 2024-01-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113630
! 	* tree-ssa-pre.cc (compute_avail): Avoid registering a
! 	reference with a representation with not matching base
! 	access size.
! 
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/113656
! 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
! 	<case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
! 
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/113637
! 	* dwarf2out.cc (loc_list_from_tree_1): Assume integral types
! 	with BLKmode are larger than DWARF2_ADDR_SIZE.
! 
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113639
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
! 	For VIEW_CONVERT_EXPR set rhs1 to its operand.
! 
! 2024-01-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113670
! 	* tree-vect-data-refs.cc (vect_check_gather_scatter):
! 	Make sure we can take the address of the reference base.
! 
! 2024-01-31  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
! 	ATA5835, ATtiny64AUTO, ATA5700M322.
! 	* doc/avr-mmcu.texi: Rebuild.
! 
! 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
! 
! 	PR debug/113394
! 	* ipa-strub.cc (build_ref_type_for): Drop nonaliased.  Adjust
! 	caller.
! 
! 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
! 
! 	PR middle-end/112917
! 	PR middle-end/113100
! 	* builtins.cc (expand_builtin_stack_address): Use
! 	STACK_ADDRESS_OFFSET.
! 	* doc/extend.texi (__builtin_stack_address): Adjust.
! 	* config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
! 	* doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
! 	* doc/tm.texi: Rebuilt.
! 
! 2024-01-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113495
! 	* config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
! 	(pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
! 	(pre_vsetvl::compute_transparent): New function.
! 	(pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
! 
! 2024-01-30  Fangrui Song  <maskray@google.com>
! 
! 	PR target/105576
! 	* config/i386/constraints.md: Define constraint "Ws".
! 	* doc/md.texi: Document it.
! 
! 2024-01-30  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/110358
! 	PR c++/109640
! 	* doc/invoke.texi: Update -Wdangling-reference description.
! 
! 2024-01-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
! 
! 	* config/xtensa/constraints.md (R, T, U):
! 	Change define_constraint to define_memory_constraint.
! 	* config/xtensa/predicates.md (move_operand): Don't check that a
! 	constant pool operand size is a multiple of UNITS_PER_WORD.
! 	* config/xtensa/xtensa.cc
! 	(xtensa_lra_p, TARGET_LRA_P): Remove.
! 	(xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
! 	clause as it can no longer be true.
! 	(fixup_subreg_mem): Drop function.
! 	(xtensa_output_integer_literal_parts): Consider 16-bit wide
! 	constants.
! 	(xtensa_legitimate_constant_p): Add short-circuit path for
! 	integer load instructions. Don't check that mode size is
! 	at least UNITS_PER_WORD.
! 	* config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
! 	rather reload_in_progress and reload_completed.
! 	(doloop_end): Drop operand 2.
! 	(movhi_internal): Add alternative loading constant from a
! 	literal pool.
! 	(define_split for DI register_operand): Don't limit to
! 	!TARGET_AUTO_LITPOOLS.
! 	* config/xtensa/xtensa.opt (mlra): Change to no effect.
! 
! 2024-01-30  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
! 	calculate the gpr count required by vls mode.
! 	(riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
! 	(riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
! 	for vls mode.
! 	(riscv_get_arg_info): Add vls mode handling.
! 	(riscv_pass_by_reference): Return false if arg info has no zero gpr count.
! 
! 2024-01-30  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113659
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Handle main exit without virtual use.
! 
! 2024-01-30  Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	* config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
! 
! 2024-01-30  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR libgcc/113403
! 	* config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
! 	(REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
! 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
! 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
! 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
! 	* config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
! 
! 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113623
! 	* config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
! 	Mark all registers that occur in addresses as needing a GPR.
! 
! 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113636
! 	* config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
! 	the containing insn as an extra parameter.  Reset debug instructions
! 	if they reference a register that is no longer used by real insns.
! 	(early_ra::apply_allocation): Update calls accordingly.
! 
! 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113603
! 	* tree-ssa-strlen.cc (strlen_pass::handle_store): After
! 	count_nonzero_bytes call refetch si using get_strinfo in case it
! 	has been unshared in the meantime.
! 
! 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/101195
! 	* except.cc (expand_builtin_eh_return_data_regno): If which doesn't
! 	fit into unsigned HOST_WIDE_INT, return constm1_rtx.
! 
! 2024-01-30  Jin Ma  <jinma@linux.alibaba.com>
! 
! 	* config/riscv/thead.cc (th_print_operand_address): Change %ld
! 	to %lld.
! 
! 2024-01-29  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
! 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
! 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
! 
! 	* config/aarch64/aarch64-ldpstp.md: Remove unused mode.
! 	* config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
! 	Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
! 	Call on framework moved later.
! 
! 2024-01-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
! 	instruction in naked function epilogues.
! 
! 2024-01-29  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	PR target/113655
! 	* configure.ac: Fix typo gcc_cv_as_mips_explicit should be
! 	gcc_cv_as_mips_explicit_relocs.
! 	* configure: Regnerated.
! 
! 2024-01-29  Matthieu Longo  <matthieu.longo@arm.com>
! 
! 	PR target/108933
! 	* config/arm/arm.md (arm_rev16si2): Convert to define_insn.
! 	Correct generated RTL.
! 	(arm_rev16si2_alt1): Correctly handle conditional execution.
! 	(arm_rev16si2_alt2): Likewise.
! 
! 2024-01-29  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/113622
! 	* expr.cc (expand_assignment): Spill hard registers if
! 	we index them with a variable offset.
! 
! 2024-01-29  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/113622
! 	* gimple-isel.cc (gimple_expand_vec_set_extract_expr):
! 	Also allow DECL_HARD_REGISTER variables.
! 
! 2024-01-29  Alex Coplan  <alex.coplan@arm.com>
! 
! 	PR target/113616
! 	* config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
! 	Use iterate_safely when iterating over debug uses.
! 	(fixup_debug_uses): Likewise.
! 	(ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
! 	over nondebug insns instead of manually maintaining the next insn.
! 	* iterator-utils.h (class safe_iterator): New.
! 	(iterate_safely): New.
! 
! 2024-01-29  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/38534
! 	* config/i386/i386-options.cc (ix86_set_func_type): Save
! 	callee-saved registers in noreturn functions for -O0/-Og.
! 
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	PR target/113615
! 	* config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
! 	define for !TARGET_RDNA2_PLUS.
! 
! 2024-01-29  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113281
! 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
! 	workaround for right shifts.
! 	(vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
! 	(vect_determine_precisions_from_range): Be more selective about
! 	which codes can be narrowed based on their input and output ranges.
! 	For shifts, require at least one more bit of precision than the
! 	maximum shift amount.
! 
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
! 
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
! 	but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
! 	LLVM 13.0.1+.
! 
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
! 	(SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
! 	(SET_SRAM_ECC_UNSET): ... this.
! 	(copy_early_debug_info): Remove gfx900 special case, now handled as
! 	part of the generic handling.
! 	(main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
! 
! 2024-01-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/110603
! 	* tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
! 	setting of pdata->maxlen to vr.upper_bound (which is unconditionally
! 	overwritten anyway).  Avoid creating invalid range with minlen
! 	larger than maxlen.  Formatting fix.
! 
! 2024-01-29  Richard Biener  <rguenther@suse.de>
! 
! 	PR debug/103047
! 	* tree-inline.cc (initialize_inlined_parameters): Reverse
! 	the decl chain of inlined parameters.
! 
! 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
! 	alignment of CFString constants by setting DECL_USER_ALIGN.
! 
! 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Jakub Jelinek   <jakub@redhat.com>
! 
! 	PR libgcc/113402
! 	* builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
! 	and BUILT_IN_GCC_NESTED_PTR_DELETED.
! 	* builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
! 	BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
! 	rename the library fallbacks to __gcc_nested_func_ptr_created and
! 	__gcc_nested_func_ptr_deleted.
! 	* doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
! 	and __gcc_nested_func_ptr_deleted.
! 	* tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
! 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
! 	* tree.cc (build_common_builtin_nodes): Build the
! 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
! 	builtins only for non-explicit.
! 
! 2024-01-28  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	* doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
! 
! 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/38534
! 	* config/i386/i386-options.cc (ix86_set_func_type): Don't
! 	save and restore callee saved registers for a noreturn function
! 	with nothrow or compiled with -fno-exceptions.
! 
! 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/103503
! 	PR target/113312
! 	* config/i386/i386-expand.cc (ix86_expand_call): Replace
! 	no_caller_saved_registers check with call_saved_registers check.
! 	Clobber all registers that are not used by the callee with
! 	no_callee_saved_registers attribute.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Set
! 	call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
! 	noreturn function.  Disallow no_callee_saved_registers with
! 	interrupt or no_caller_saved_registers attributes together.
! 	(ix86_set_current_function): Replace no_caller_saved_registers
! 	check with call_saved_registers check.
! 	(ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
! 	(ix86_handle_call_saved_registers_attribute): This.
! 	(ix86_gnu_attributes): Add
! 	ix86_handle_call_saved_registers_attribute.
! 	* config/i386/i386.cc (ix86_conditional_register_usage): Replace
! 	no_caller_saved_registers check with call_saved_registers check.
! 	(ix86_function_ok_for_sibcall): Don't allow callee with
! 	no_callee_saved_registers attribute when the calling function
! 	has callee-saved registers.
! 	(ix86_comp_type_attributes): Also check
! 	no_callee_saved_registers.
! 	(ix86_epilogue_uses): Replace no_caller_saved_registers check
! 	with call_saved_registers check.
! 	(ix86_hard_regno_scratch_ok): Likewise.
! 	(ix86_save_reg): Replace no_caller_saved_registers check with
! 	call_saved_registers check.  Don't save any registers for
! 	TYPE_NO_CALLEE_SAVED_REGISTERS.  Save all registers with
! 	TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
! 	no_callee_saved_registers attribute is called.
! 	(find_drap_reg): Replace no_caller_saved_registers check with
! 	call_saved_registers check.
! 	* config/i386/i386.h (call_saved_registers_type): New enum.
! 	(machine_function): Replace no_caller_saved_registers with
! 	call_saved_registers.
! 	* doc/extend.texi: Document no_callee_saved_registers attribute.
! 
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113614
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
! 	widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
! 	TRUNC_MOD_EXPR or FLOAT_EXPR uses.
! 
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113568
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
! 	For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
! 	in the widening extension checks.
! 
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): For
! 	TDF_DETAILS dump mapping of SSA_NAMEs to decls.
! 
! 2024-01-26  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* cgraphunit.cc (process_function_and_variable_attributes): Tweak
! 	the warning for an attribute-always_inline without inline declaration.
! 
! 2024-01-26  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR other/113575
! 	* genopinit.cc (main): Split init_all_optabs into functions
! 	of 1000 patterns each.
! 
! 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
! 	TM_MULTILIB_CONFIG.
! 	* doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
! 	* doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
! 	-march/-mtune.
! 
! 2024-01-26  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
! 	* config/gcn/gcn-valu.md (all_convert): New iterator.
! 	(<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
! 	define_expand, and rename the old one to ...
! 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
! 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
! 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
! 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
! 	* config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
! 	(gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
! 	* config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
! 	(<u>mulqihi3_scalar): Likewise.
! 
! 2024-01-26  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113602
! 	* tree-data-ref.cc (dr_analyze_innermost): Fail when
! 	the base object isn't addressable.
! 
! 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
! 	"--amdhsa-code-object-version=" argument.
! 	(ASM_SPEC): Use it; replace previous version of it.
! 
! 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
! 	(pre_vsetvl::emit_vsetvl): Ditto.
! 
! 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
! 
! 	* config/loongarch/lasx.md (vec_extract<mode>_0):
! 	New define_insn_and_split patten.
! 
! 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
! 
! 	* config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
! 
! 2024-01-26  Li Wei  <liwei@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
! 
! 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113469
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
! 
! 2024-01-26  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/100212
! 	* config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
! 	undefined shift after the call to exact_log2.
! 
! 2024-01-25  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/100204
! 	* config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
! 	before taking the negative of it.
! 
! 2024-01-25  Vladimir N. Makarov  <vmakarov@redhat.com>
! 
! 	PR target/113526
! 	* lra-constraints.cc (curr_insn_transform): Change class even for
! 	spilled pseudo successfully matched with with NO_REGS.
! 
! 2024-01-25  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/113601
! 	* config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
! 
! 2024-01-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
! 
! 	PR target/112987
! 	* config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
! 	(aarch64_expand_epilogue): Use the new function.
! 	(aarch64_split_compare_and_swap): Likewise.
! 	(aarch64_split_atomic_op): Likewise.
! 
! 2024-01-25  Robin Dapp  <rdapp.gcc@gmail.com>
! 
! 	PR middle-end/112971
! 	* fold-const.cc (simplify_const_binop): New function for binop
! 	simplification of two constant vectors when element-wise
! 	handling is not necessary.
! 	(const_binop): Call new function.
! 
! 2024-01-25  Mary Bennett  <mary.bennett@embecosm.com>
! 
! 	* common/config/riscv/riscv-common.cc: Add XCVbitmanip.
! 	* config/riscv/constraints.md: Likewise.
! 	* config/riscv/corev.def: Likewise.
! 	* config/riscv/corev.md: Likewise.
! 	* config/riscv/predicates.md: Likewise.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
! 	* config/riscv/riscv-ftypes.def: Likewise.
! 	* config/riscv/riscv.opt: Likewise.
! 	* config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
! 	* doc/extend.texi: Add XCVbitmanip builtin documentation.
! 	* doc/sourcebuild.texi: Likewise.
! 
! 2024-01-25  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
! 
! 2024-01-25  Yanzhang Wang  <yanzhang.wang@intel.com>
! 
! 	PR target/113538
! 	* config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
! 	(riscv_fntype_abi): Ditto.
! 	* config/riscv/riscv.opt: Ditto.
! 
! 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113574
! 	* convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
! 	count against TYPE_PRECISION rather than TYPE_SIZE.
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113572
! 	* config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
! 	Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113550
! 	* config/aarch64/aarch64-simd.md: In the movv8di splitter, check
! 	whether each split instruction is a load that clobbers the source
! 	address.  Emit that instruction last if so.
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113485
! 	* config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
! 	pattern.
! 	(<optab><Vnarrowq><mode>2): Use it instead of generating a
! 	paradoxical subreg for the input.
! 
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
! 	(pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
! 	predecessors dump information.
! 
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
! 	redundant full available computation.
! 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
! 
! 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
! 	* doc/rtl.texi (CONST_VECTOR): Likewise.
! 
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
! 	(pass_vsetvl::execute): Ditto.
! 	* config/riscv/riscv.opt: Ditto.
! 
! 2024-01-25  Jiahao Xu  <xujiahao@loongson.cn>
! 
! 	* config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
! 
! 2024-01-25  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113576
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
! 	exits with may_be_zero niters when its the last one.
! 
! 2024-01-25  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
! 	For symbols of type tls, non-zero Offset is not generated.
! 
! 2024-01-25  Haochen Gui  <guihaoc@gcc.gnu.org>
! 
! 	* config/rs6000/rs6000-string.cc (expand_block_compare): Enable
! 	P9 with m32 and mpowerpc64.
! 
! 2024-01-25  liuhongt  <hongtao.liu@intel.com>
! 
! 	* config/i386/i386-options.cc (ix86_option_override_internal):
! 	Enable -mlam=u57 by default when compiled with
! 	-fsanitize=hwaddress.
! 
! 2024-01-25  Palmer Dabbelt  <palmer@rivosinc.com>
! 
! 	* common/config/riscv/riscv-common.cc (riscv_implied_info):
! 	Remove {"ztso", "a"}.
! 
! 2024-01-24  Martin Jambor  <mjambor@suse.cz>
! 
! 	PR ipa/108007
! 	PR ipa/112616
! 	* cgraph.h (cgraph_edge): Add a parameter to
! 	redirect_call_stmt_to_callee.
! 	* ipa-param-manipulation.h (ipa_param_adjustments): Add a
! 	parameter to modify_call.
! 	(ipa_release_ssas_in_hash): Declare.
! 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
! 	parameter killed_ssas, pass it to padjs->modify_call.
! 	* ipa-param-manipulation.cc (purge_all_uses): New function.
! 	(ipa_param_adjustments::modify_call): New parameter killed_ssas.
! 	Instead of substituting uses, invoke purge_all_uses.  If
! 	hash of killed SSAs has not been provided, create a temporary one
! 	and release SSAs that have been added to it.
! 	(compare_ssa_versions): New function.
! 	(ipa_release_ssas_in_hash): Likewise.
! 	* tree-inline.cc (redirect_all_calls): Create
! 	id->killed_new_ssa_names earlier, pass it to edge redirection,
! 	adjust a comment.
! 	(copy_body): Release SSAs in id->killed_new_ssa_names.
! 
! 2024-01-24  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113486
! 	* config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
! 	TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
  
! 2024-01-24  Monk Chiang  <monk.chiang@sifive.com>
  
! 	PR target/113095
! 	* config/riscv/sfb.md: New splitters to rewrite single bit
! 	sign extension as the condition to SFB instructions.
  
! 2024-01-24  Jan Hubicka  <jh@suse.cz>
  
! 	PR middle-end/88345
! 	* common.opt: (flimit-function-alignment): Reorder alphabeticaly
! 	(fmin-function-alignment): New parameter.
! 	* doc/invoke.texi: (-fmin-function-alignment): Document.
! 	(-falign-functions,-falign-loops,-falign-labels): Mention that
! 	aglinments are ignored in cold code.
! 	* varasm.cc (assemble_start_function): Handle min-function-alignment.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/109636
! 	* config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
! 	mulv2di3): Remove.
! 	* config/aarch64/iterators.md (VQDIV): Remove.
! 	(SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
! 	SVE_I_SIMD_DI): New.
! 	(VPRED, sve_lane_con): Add V4SI and V2DI.
! 	* config/aarch64/aarch64-sve.md (<optab><mode>3,
! 	@aarch64_pred_<optab><mode>): Support Advanced SIMD types.
! 	(mul<mode>3): New, split from <optab><mode>3.
! 	(@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
! 	* config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
! 	*aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
! 	SVE_FULL_HSDI_SIMD_DI.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113552
! 	* config/aarch64/aarch64.cc
! 	(aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
  
! 2024-01-24  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113490
! 	* ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
! 	count is equal or greater than the limit.  Use the limit from the
! 	callee.
  
! 2024-01-24  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* configure.ac: Detect the explicit relocs support for
! 	mips, and define C macro MIPS_EXPLICIT_RELOCS.
! 	* config.in: Regenerated.
! 	* configure: Regenerated.
! 	* doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
! 	* config/mips/mips-opts.h: Define enum mips_explicit_relocs.
! 	* config/mips/mips.cc(mips_set_compression_mode): Sorry if
! 	!TARGET_EXPLICIT_RELOCS instead of just set it.
! 	* config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
! 	TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
! 	* config/mips/mips.opt: Introduce -mexplicit-relocs= option
! 	and define -m(no-)explicit-relocs as aliases.
  
! 2024-01-24  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
! 	to 1.
! 	(-mlate-ldp-fusion): Likewise.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop.cc (vect_get_vect_def,
! 	vect_create_epilog_for_reduction): Rename main_exit_p to
! 	last_val_reduc_p.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113364
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
! 	early exits then we must reduce from the first offset for all of them.
  
! 2024-01-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113495
! 	* config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
! 	(get_regno): Ditto.
! 	(get_bb_index): Ditto.
! 	(pre_vsetvl::compute_avl_def_data): Ditto.
! 	(pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
! 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
  
! 2024-01-23  Andrew Pinski  <quic_apinski@quicinc.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/100942
! 	* ccmp.cc (ccmp_candidate_p): Add outer argument.
! 	Allow if the outer is true and the lhs is used more
! 	than once.
! 	(expand_ccmp_expr): Update call to ccmp_candidate_p.
! 	* expr.h (expand_expr_real_gassign): Declare.
! 	* expr.cc (expand_expr_real_gassign): New function, split out from...
! 	(expand_expr_real_1): ...here.
! 	* cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
! 	(fixup_debug_use): New.
! 	(fixup_debug_uses_trailing_add): New.
! 	(fixup_debug_uses): New. Use it ...
! 	(ldp_bb_info::fuse_pair): ... here.
! 	(try_promote_writeback): Call fixup_debug_uses_trailing_add to
! 	fix up debug uses of the base register that are affected by
! 	folding in the trailing add insn.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
! 	Update trailing nondebug uses of the base register in the case
! 	of cancelling writeback.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
! 	(debug_insn_use_iterator): New.
! 	(set_info::first_debug_insn_use): New.
! 	(set_info::debug_insn_uses): New.
! 	* rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
! 	(set_info::first_debug_insn_use): New.
! 	(set_info::debug_insn_uses): New.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113356
! 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
! 	Don't record hazards against the opposite insn in the pair.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* config/aarch64/aarch64-ldp-fusion.cc
! 	(struct stp_change_builder): New.
! 	(decide_stp_strategy): Reanme to ...
! 	(try_repurpose_store): ... this.
! 	(ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
! 	construct stp changes.  Fix up uses when inserting new stp insns.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa.h: Include hash-set.h.
! 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
! 	new_sets parameter and use it to keep track of new user-created sets.
! 	(function_info::apply_changes_to_insn): Also call add_def on new sets.
! 	(function_info::change_insns): Add hash_set to keep track of new
! 	user-created defs.  Plumb it through.
! 	* rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
! 	apply_changes_to_insn.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa/accesses.cc (function_info::create_use): New.
! 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses):
! 	Ensure new uses end up referring to permanent defs.
! 	* rtl-ssa/functions.h (function_info::create_use): Declare.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa/changes.cc (function_info::change_insns): Split out the call
! 	to finalize_new_accesses from the backwards placement loop, run it
! 	forwards in a separate loop.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113552
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
! 	floor_log2 instead of exact_log2 on the number of calls.
  
! 2024-01-23  Jeff Law  <jlaw@ventanamicro.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
! 	decl.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Separate single and multi-exit case when creating PHIs between
! 	the main and epilogue.
  
! 2024-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
! 	MODE_single variants of functions that don't take tuple arguments.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113114
! 	* config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
! 	Don't assert recog success, just punt if the writeback pair
! 	isn't recognized.
  
! 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
! 	ATTRIBUTE_UNUSED to decl.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/107058
! 	* dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
! 	handle unexpected but bogus DIE contexts when not checking
! 	enabled.
  
! 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113462
! 	* fold-const.cc (native_interpret_int): Don't punt if total_bytes
! 	is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
! 	(fold_view_convert_expr): Use XALLOCAVEC buffers for types with
! 	sizes between 129 and 8192 bytes.
  
! 2024-01-23  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
! 	If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
! 	for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
! 	(loongarch_call_tls_get_addr): Do not split symbols of
! 	SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
! 	EXPLICIT_RELOCS_AUTO.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* alias.cc (known_base_value_p): Remove.
! 	(find_base_value): Remove PLUS/MINUS handling
! 	when both operands are not CONST_INT_P.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/113255
! 	* alias.cc (find_base_term): Remove PLUS/MINUS handling
! 	when both operands are not CONST_INT_P.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/112718
! 	* dwarf2out.cc (dwarf2out_finish): Reset all type units
! 	for the fat part of an LTO compile.
  
! 2024-01-23  chenxiaolong  <chenxiaolong@loongson.cn>
  
! 	* doc/sourcebuild.texi: Add attributes for keywords.
  
! 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c++/90463
! 	* doc/invoke.texi (Warning Options): Correct lists of options
! 	enabled by -Wall and -Wextra by checking against common.opt
! 	and c-family/c.opt.
  
! 2024-01-22  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113030
! 	* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
! 	instead of cpu_optaliases.
! 	(check_arch): Use arch_opt_alias instead of arch_optaliases.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
! 	* config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
! 	* config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109092
! 	* config/riscv/riscv.md: Use reg instead of subreg.
  
! 2024-01-22  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
! 	to match the compiler default.
! 	(simple_object_copy_lto_debug_sections): Never unlink the outfile
! 	on error as the caller does so.
! 	(maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
! 	(main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
  
! 2024-01-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113373
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Create LC PHIs in the exit blocks where necessary.
! 	* tree-vect-loop.cc (vectorizable_live_operation): Do not try
! 	to handle missing LC PHIs.
! 	(find_connected_edge): Remove.
! 	(vect_create_epilog_for_reduction): Cleanup use of auto_vec.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
  
! 2024-01-22  xuli  <xuli1@eswincomputing.com>
  
! 	PR target/113420
! 	* config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
! 	(registered_function::overloaded_hash):refactor.
! 	(resolve_overloaded_builtin):avoid internal ICE.
  
! 2024-01-21  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/82420
! 	PR target/111279
! 	* calls.cc (emit_library_call_value_1): Pass valid TYPE
! 	to emit_push_insn.
! 	* expr.cc (emit_push_insn): Likewise.
  
! 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Install
! 	correcction version of last change.
  
! 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
! 	fix bugs in signature.
  
! 2024-01-21  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/111267
! 	* fwprop.cc (fwprop_propagation::profitabe_p): Rename
! 	profitable_p method to likely_profitable_p.
! 	(try_fwprop_subst_node): Update call to likely_profitable_p.
! 	Only bail-out early when !prop.likely_profitable_p for instructions
! 	that are not single sets.  When comparing costs, bail-out if the
! 	cost is unchanged and !prop.likely_profitable_p.
  
! 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c++/90464
! 	* doc/invoke.texi (Warning Options): Document that -Wunused-parameter
! 	isn't enabled by -Wunused unless -Wextra is provided, and that
! 	-Wunused does enable -Wunused-const-variable=1 for C.  Clarify that
! 	-Wunused doesn't enable -Wunused-* options documented as behaving
! 	otherwise, and list them explicitly.
  
! 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/109708
! 	* doc/invoke.texi (Warning Options): Fix broken example and
! 	clean up/reorganize the others.  Also describe what the short-form
! 	options mean.
  
! 2024-01-20  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/102998
! 	* doc/invoke.texi (Option Summary): Add -Warray-parameter.
! 	(Warning Options): Correct/edit discussion of -Warray-parameter
! 	to make the first example less confusing, and fill in missing info.
  
! 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113462
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
! 	Handle rhs1 INTEGER_CST like SSA_NAME.
  
! 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113491
! 	* tree-switch-conversion.cc (switch_conversion::build_constructors):
! 	If elt.index has precision higher than sizetype, fold_convert it to
! 	sizetype.
! 	(switch_conversion::array_value_type): Return type if type is
! 	BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
! 	(switch_conversion::build_arrays): Use unsigned_type_for rather than
! 	lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
! 	above MAX_FIXED_MODE_SIZE or with BLKmode.  If utype has precision
! 	higher than sizetype, use sizetype as tidx type and fold_convert the
! 	subtraction to sizetype.
  
! 2024-01-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
! 	(riscv_vector_mode_supported_any_target_p): Ditto.
  
! 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/110934
! 	* config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
! 	(TARGET_ZERO_CALL_USED_REGS): Define.
  
! 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/108640
! 	* config/m68k/m68k.cc (output_andsi3): Use QImode for
! 	address adjusted for 1-byte RMW access.
! 	(output_iorsi3): Likewise.
! 	(output_xorsi3): Likewise.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/invoke.texi (RISC-V Options): Add list of supported
! 	extensions.
  
! 2024-01-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113495
! 	* config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
! 	(RVV_VUNDEF): Ditto.
! 	* config/riscv/riscv-vsetvl.cc: Add timevar.
  
! 2024-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/113488
! 	* lto-streamer-in.cc (lto_read_tree_1): When there isn't
! 	an early DIE but there should be, do not pretend there is.
  
! 2024-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113494
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Handle endless loop on exit.  Handle re-allocated PHI.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113464
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
! 	optimize loads into GIMPLE_ASM stmts.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113463
! 	* gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
! 	Only look through NOP_EXPRs if rhs1 doesn't have wider type than
! 	lhs.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113459
! 	* tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
! 	TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
! 	of SCALAR_INT_TYPE_MODE if type has BLKmode.
! 	(vn_reference_lookup_3): Likewise.  Formatting fix.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	* cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
! 	VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
! 	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
! 	but adjust_address also for BLKmode mode and MEM op0.
  
! 2024-01-19  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
! 	extensions.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/invoke.texi (RISC-V Options): Document the syntax of -march.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_std_ext): Remove.
! 	(riscv_subset_list::parse_multiletter_ext): Remove.
! 	* config/riscv/riscv-subset.h
! 	(riscv_subset_list::parse_std_ext): Remove.
! 	(riscv_subset_list::parse_multiletter_ext): Remove.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_single_std_ext): New parameter.
! 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
! 	(riscv_subset_list::parse_single_ext): Ditto.
! 	(riscv_subset_list::parse): Relax the order for the input of ISA
  	string.
! 	* config/riscv/riscv-subset.h
! 	(riscv_subset_list::parse_single_std_ext): New parameter.
! 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
! 	(riscv_subset_list::parse_single_ext): Ditto.
! 
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_base_ext): New.
! 	(riscv_subset_list::parse): Extract part of logic into
! 	riscv_subset_list::parse_base_ext.
! 	* config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
! 	New.
! 
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	* config/riscv/riscv.cc (riscv_override_options_internal): Tweak
! 	sorry message.
! 
! 2024-01-19  Kuan-Lin Chen  <rufus@andestech.com>
! 
! 	* config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
! 	UNSPEC_CLMUL_VC.
! 
! 2024-01-19  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR c/110029
! 	* doc/extend.texi (Common Variable Attributes): Explain what
! 	happens when multiple variables with cleanups are in the same scope.
! 
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR ipa/108470
! 	* doc/extend.texi (Common Function Attributes): Document that
! 	noinline also disables some interprocedural optimizations and
! 	improve flow to the part about using inline asm instead to
! 	disable calls from being optimized away completely.  Remove the
! 	sentence that says noipa is mainly for internal compiler testing.
  
! 2024-01-18  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR tree-optimization/69807
! 	* config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
  
! 2024-01-18  Brian Inglis  <Brian.Inglis@Shaw.ca>
  
! 	PR target/108521
! 	* doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
! 	from x86 Windows Options.
  
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/107942
! 	* doc/extend.texi (C Extensions): Add new section to menu.
! 	(Function Attributes):  Move dangling index entries to....
! 	(Const and Volatile Functions): New section.
  
! 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR middle-end/112684
! 	* toplev.cc (toplev::main): Don't ICE in
! 	-fdiagnostics-generate-patch when exiting after options,
! 	since no edit context will have been created.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
! 	operands vector.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
! 	when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/thead.cc
! 	(th_asm_output_opcode): Rewrite some instructions.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.md (none,thv,rvv): New attribute.
! 	(no,yes): Add an attribute to disable alternative
! 	for xtheadvector or RVV1.0.
! 	* config/riscv/vector.md:
! 	Disable alternatives that destination register overlaps
! 	source register group for xtheadvector.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc
! 	(class th_loadstore_width): Define new builtin bases.
! 	(class th_extract): Define new builtin bases.
! 	(BASE): Define new builtin bases.
! 	* config/riscv/riscv-vector-builtins-bases.h:
! 	Define new builtin class.
! 	* config/riscv/riscv-vector-builtins-shapes.cc
! 	(struct th_loadstore_width_def): Define new builtin shapes.
! 	(struct th_indexed_loadstore_width_def):
! 	Define new builtin shapes.
! 	(struct th_extract_def): Define new builtin shapes.
! 	(SHAPE): Define new builtin shapes.
! 	* config/riscv/riscv-vector-builtins-shapes.h:
! 	Define new builtin shapes.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
! 	Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
  	* config/riscv/riscv-vector-builtins.h
! 	(enum required_ext): Add new XTheadVector member.
! 	(struct function_group_info): Likewise.
! 	* config/riscv/t-riscv:
! 	Add thead-vector-builtins-functions.def
! 	* config/riscv/thead-vector.md
! 	(@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
! 	(*pred_mov_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_store_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_th_extract<mode>): Likewise.
! 	(*pred_th_extract<mode>): Likewise.
! 	* config/riscv/thead-vector-builtins-functions.def: New file.
! 
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	* config.gcc:  Add files for XTheadVector intrinsics.
! 	* config/riscv/autovec.md: Guard XTheadVector.
! 	* config/riscv/predicates.md: Disable immediate vl
! 	for XTheadVector.
! 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
! 	Add pragma for XTheadVector.
! 	* config/riscv/riscv-string.cc (riscv_expand_block_move):
! 	Guard XTheadVector.
! 	* config/riscv/riscv-v.cc (vls_mode_valid_p):
! 	Avoid autovec.
! 	* config/riscv/riscv-vector-builtins-bases.cc:
! 	Do not normalize vsetvl instructions for XTheadVector.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (check_type):
! 	New check type function.
! 	(build_one): Adjust for XTheadVector.
! 	* config/riscv/riscv-vector-switch.def (ENTRY):
! 	Disable fractional mode for the XTheadVector extension.
! 	(TUPLE_ENTRY): Likewise.
! 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize):
! 	Guard XTheadVector.
! 	(riscv_preferred_simd_mode): Likewsie.
! 	(riscv_autovectorize_vector_modes): Likewise.
! 	(riscv_vector_mode_supported_any_target_p): Likewise.
! 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
! 	* config/riscv/thead.cc (th_asm_output_opcode):
! 	Rewrite vsetvl instructions.
! 	* config/riscv/vector.md:
! 	Include thead-vector.md and change fractional LMUL
! 	into 1 for vbool.
! 	* config/riscv/riscv_th_vector.h: New file.
! 	* config/riscv/thead-vector.md: New file.
! 
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	* config/riscv/riscv-protos.h (riscv_asm_output_opcode):
! 	Add new function to add assembler insn code prefix/suffix.
! 	(th_asm_output_opcode):
! 	Add Thead function to add assembler insn code prefix/suffix.
! 	* config/riscv/riscv.cc (riscv_asm_output_opcode):
! 	Implement function to add assembler insn code prefix/suffix.
! 	* config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
! 	Add new function to add assembler insn code prefix/suffix.
! 	* config/riscv/thead.cc (th_asm_output_opcode):
! 	Implement Thead function to add assembler insn code
! 	prefix/suffix.
! 
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse): Add new vendor extension.
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
! 	Add test marco.
! 	* config/riscv/riscv.opt:  Add new mask.
! 
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
! 	to be conditional on macosx-version-min.
! 
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* config/darwin.cc (darwin_objc1_section): Use the correct
! 	meta-data version for constant strings.
! 	(machopic_select_section): Assert if we fail to handle CFString
! 	sections as Obejctive-C meta-data or drectly.
! 
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
! 	OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
! 	OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
! 	versions when the object format is Mach-O.
! 
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR target/105522
! 	* config/darwin.cc (machopic_select_section): Handle C and C++
! 	CFStrings.
! 	(darwin_rename_builtins): Move this out of the CFString code.
! 	(darwin_libc_has_function): Likewise.
! 	(darwin_build_constant_cfstring): Create an anonymous var to
! 	hold each CFString.
! 	* config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
! 	CFstrings.
! 
! 2024-01-18  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	PR bootstrap/113445
! 	* haifa-sched.cc (dep_list_size): Make global.
! 	* sched-deps.cc (find_inc): Use instead of sd_lists_size().
! 	* sched-int.h (dep_list_size): Declare.
! 
! 2024-01-18  Martin Jambor  <mjambor@suse.cz>
! 
! 	PR tree-optimization/110422
! 	* tree-sra.cc (scan_function): Disqualify bases of operands of asm
! 	gotos.
! 
! 2024-01-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113475
! 	* gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
! 	* gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
! 	(phi_analyzer::~phi_analyzer): Deallocate and free collected
! 	phi_grous.
! 	(phi_analyzer::process_phi): Record allocated phi_groups.
! 
! 2024-01-18  Richard Biener  <rguenther@suse.de>
! 
! 	* tree-vect-stmts.cc (vectorizable_store): Do not allocate
! 	storage for gvec_oprnds elements.
! 
! 2024-01-18  Richard Biener  <rguenther@suse.de>
! 
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
! 	prefer all later exits we can handle.
! 	(vect_analyze_loop_form): Free the allocated loop body.
! 	Adjust comments.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-log.cc: Tabify.
! 
! 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/autovec.md: Support vi variant.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-devices.cc: Tabify.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-c.cc: Tabify.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/driver-avr.cc: Tabify.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/gen-avr-mmcu-texi.cc: Tabify.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/gen-avr-mmcu-specs.cc: Tabify.
! 
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
! 	minline-strcmp, minline-strncmp, minline-strlen,
! 	-param=riscv-vector-abi): Remove Bool keywords.
! 
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/113122
! 	* config/i386/i386.cc (x86_function_profiler): Add -masm=intel
! 	support.  Add missing space after , in emitted assembly in some
! 	cases.  Formatting fixes.
! 
! 2024-01-18  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.md (movsi_internal): Remove
! 	constraint z.
! 
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
! 	in the diagnostic, and capitalize the device name.
! 	(print_mcu): Generate specs such that:
! 	<*check_rodata_in_ram>: New.
! 	<*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
! 	<*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
! 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
! 
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR other/113399
! 	* common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
! 	Common and Optimization.
! 
! 2024-01-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113431
! 	* tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
! 	When there is an invariant load we might not preserve
! 	scalar order.
! 
! 2024-01-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113374
! 	* tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Update
! 	virtual LC PHIs.
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Refactor.  Preserve virtual LC PHIs on all exits.
! 
! 2024-01-18  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_split_symbol):
! 	Assign the '/u' attribute to the mem.
! 
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR middle-end/110847
! 	* doc/invoke.texi (Option Summary): Document negative forms of
! 	-Wtsan and -Wxor-used-as-pow.
! 	(Warning Options): Likewise.
! 
! 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113429
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
! 
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* doc/extend.texi (Common Function Attributes): Re-alphabetize
! 	the table.
! 	(Common Variable Attributes): Likewise.
! 	(Common Type Attributes): Likewise.
! 
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR middle-end/111659
! 	* doc/extend.texi (Common Variable Attributes): Fix long lines
! 	in documentation of strict_flex_array + other minor copy-editing.
! 	Add a cross-reference to -Wstrict-flex-arrays.
! 	* doc/invoke.texi (Option Summary): Fix whitespace in tables
! 	before -fstrict-flex-arrays and -Wstrict-flex-arrays.
! 	(C Dialect Options): Combine the docs for the two
! 	-fstrict-flex-arrays forms into a single entry.  Note this option
! 	is for C/C++ only.  Add a cross-reference to -Wstrict-flex-arrays.
! 	(Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
! 	Minor copy-editing.  Add cross references to the strict_flex_array
! 	attribute and -fstrict-flex-arrays option.  Add note that this
! 	option depends on -ftree-vrp.
! 
! 2024-01-17  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/113221
! 	* config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
! 	only allow REG operands instead of allowing all.
! 
! 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	* config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
! 	Remove redundant checks in else condition for readablity.
! 	(earliest_fuse_vsetvl_info) Print iteration count in debug
! 	prints.
! 	(earliest_fuse_vsetvl_info) Fix misleading vsetvl info
! 	dump details in certain cases.
! 
! 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	* config/riscv/riscv.opt: New -param=vsetvl-strategy.
! 	* config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
! 	* config/riscv/riscv-vsetvl.cc
! 	(pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
! 	(pass_vsetvl::execute): Use vsetvl_strategy.
! 
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
! 
! 	* ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
! 	accidental hack reseting offset.
! 
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
! 
! 	* config/i386/i386-options.cc (ix86_option_override_internal): Fix
! 	handling of X86_TUNE_AVOID_512FMA_CHAINS.
! 
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/110852
! 	* predict.cc (expr_expected_value_1): Fix profile merging of PHI and
! 	binary operations
! 	(get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
! 	PRED_COMBINED_VALUE_PREDICTIONS_PHI
! 	* predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
! 	(PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113421
! 	* gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
! 	comment.
! 	(bitint_dom_walker::before_dom_children): Add g temporary to simplify
! 	formatting.  Start at vop rather than cvop even if stmt is a store
! 	and needs_operand_addr.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113410
! 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
! 	If access_nelts is integral with larger precision than sizetype,
! 	fold_convert it to sizetype.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113408
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
! 	VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
! 	to handle_cast.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113406
! 	* ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
! 	regardless of whether is_gimple_reg_type (restype) or not.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
! 	funcions -> functions, and use were instead of was.
! 	* gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
! 	and guaranteee -> guarantee.
! 	* attribs.h (struct attr_access): Fix comment typo funcion -> function.
! 
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113409
! 	* omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
! 	INTEGER_TYPE.
! 	(omp_extract_for_data): Use build_bitint_type rather than
! 	build_nonstandard_integer_type if either iter_type or loop->v type
! 	is BITINT_TYPE.
! 	* omp-expand.cc (expand_omp_for_generic,
! 	expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
! 	BITINT_TYPE like INTEGER_TYPE.
! 
! 2024-01-17  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113371
! 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
! 	Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
! 	not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
! 
! 2024-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	PR rtl-optimization/96388
! 	PR rtl-optimization/111554
! 	* sched-deps.cc (find_inc): Avoid exponential behavior.
! 
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR c/111693
! 	* doc/invoke.texi (Option Summary): Move -Wuseless-cast
! 	from C++ Language Options to Warning Options.  Add entry for
! 	-Wuse-after-free.
! 	(C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
! 	from here....
! 	(Warning Options): ...to here.  Minor copy-editing to fix typo
! 	and grammar.
! 
! 2024-01-17  YunQiang Su  <syq@gcc.gnu.org>
! 
! 	* config/mips/mips.cc (mips_compute_frame_info): If another
! 	register is used as global_pointer, mark $GP live false.
! 
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR target/112973
! 	* doc/extend.texi (BPF Built-in Functions): Wrap long lines and
! 	give the section a light copy-editing pass.
! 
! 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
! 
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
! 	* config/aarch64/aarch64-tune.md: Regenerated.
! 	* doc/invoke.texi (-mcpu): Add cobalt-100 core.
! 
! 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
! 
! 	PR target/112573
! 	* config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
! 	badly formed CONST expressions.
! 
! 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
! 
! 	* config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
! 
! 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
! 
! 	* config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
! 	* config/sparc/sync.md (membar_storeload): Turn into named insn
! 	and add GR712RC errata workaround.
! 	(membar_v8): Add GR712RC errata workaround.
! 
! 2024-01-16  Andreas Larsson  <andreas@gaisler.com>
! 
! 	* config/sparc/sync.md (*membar_storeload_leon3): Remove
! 	(*membar_storeload): Enable for LEON
! 
! 2024-01-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113372
! 	PR middle-end/90348
! 	PR middle-end/110115
! 	PR middle-end/111422
! 	* cfgexpand.cc (add_scope_conflicts_2): New function.
! 	(add_scope_conflicts_1): Use it.
! 
! 2024-01-16  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
! 	(avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
! 	* doc/avr-mmcu.texi: Regenerate.
! 
! 2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
! 
! 	PR tree-optimization/113091
! 	* tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
! 	(vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
! 	scalar use with new function.
! 	(vect_bb_slp_mark_live_stmts): New function as entry to existing
! 	overriden functions with same name.
! 	(vect_slp_analyze_operations): Call new entry function to mark
! 	live statements.
! 
! 2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113404
! 	* config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
! 	for RVV in big-endian mode.
! 
! 2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
! 
! 	* config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
! 	(riscv_pass_in_vector_p): Delete.
! 	(riscv_init_cumulative_args): Delete the checking.
! 	(riscv_get_arg_info): Delete the checking.
! 	(riscv_function_value): Delete the checking.
! 	* config/riscv/riscv.h: Delete the member for checking.
! 
! 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
! 
! 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
! 
! 	* config.gcc: Include riscv_bitmanip.h.
! 	* config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
! 	* config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
! 	(RISCV_BUILTIN_NO_PREFIX): New helper macro.
! 	* config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
! 	* config/riscv/riscv-ftypes.def (2): New ftypes.
! 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
! 	(RISCV_BUILTIN_NO_PREFIX): Likewise.
! 	* config/riscv/riscv_bitmanip.h: New file.
! 
! 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
! 
! 	* config.gcc: Include riscv_crypto.h.
! 	* config/riscv/riscv_crypto.h: New file.
! 
! 2024-01-15  Vladimir N. Makarov  <vmakarov@redhat.com>
! 
! 	PR middle-end/113354
! 	* lra-constraints.cc (curr_insn_transform): Spill pseudo only used
! 	in the insn if the corresponding operand does not require hard
! 	register anymore.
! 
! 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/107201
! 	* config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
! 	* config/avr/driver-avr.cc (avr_no_devlib): New function.
! 	(avr_devicespecs_file): Use it to remove -nodevicelib from the
! 	options for cores only.
! 	* config/avr/avr-arch.h (avr_get_parch): New prototype.
! 	* config/avr/avr-devices.cc (avr_get_parch): New function.
! 
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113247
! 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
! 	* config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
! 
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113281
! 	* config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
! 	(costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
! 	* config/riscv/riscv-vector-costs.h: New function.
! 
! 2024-01-15  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113385
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	First redirect, then split the exit edge.
! 
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
! 	Remove m_num_vector_iterations.
! 	* config/riscv/riscv-vector-costs.h: Ditto.
! 
! 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/113156
! 	* config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
! 	(-mbranch-cost): Set "Optimization" flag.
! 
! 2024-01-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113370
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
! 	set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
! 	set it to just prec % limb_prec.
! 
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113393
! 	* config/riscv/vector.md: Fix ternary attributes.
! 
! 2024-01-14  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/112944
! 	* configure.ac [target=avr]: Check availability of emulations
! 	avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
! 	HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
! 	__AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
! 	* config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
! 	* config/avr/avr-arch.h (enum avr_device_specific_features):
! 	Add AVR_ISA_FLMAP.
! 	* config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
! 	AVR_ISA_FLMAP.
! 	* config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
! 	(avr_set_core_architecture): Set avr_arch_index.
! 	(have_avrxmega2_flmap, have_avrxmega4_flmap)
! 	(have_avrxmega3_rodata_in_flash): Set new static const bool according
! 	to configure results.
! 	(avr_rodata_in_flash_p): New function using them.
! 	(avr_asm_init_sections): Let readonly_data_section->unnamed.callback
! 	track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
! 	(avr_asm_named_section): Track avr_has_rodata_p.
! 	(avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
! 	and not avr_rodata_in_flash_p ().
! 	* config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
! 	(LINK_SPEC): Add %(link_rodata_in_ram).
! 	(LINK_ARCH_SPEC): Remove.
! 	* config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
! 	(have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
! 	const bool according to configure results.
! 	(diagnose_mrodata_in_ram): New function.
! 	(print_mcu): Generate specs with the following changes:
! 	<*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
! 	need to extend avr/specs.h each time we add a new bell or whistle.
! 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
! 	-m[no-]rodata-in-ram.
! 	<*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
! 	<*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
! 	<*cpp>: Add %(cpp_rodata_in_ram).
! 	<*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
! 	requested.
! 	<*self_spec>: Add -mflmap or %<mflmap as needed.
  
! 2024-01-14  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
! 	not the GPR iterator.  Adjust pattern name and mode attribute
! 	accordingly.
  
! 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113361
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
! 	Fix up determination of the type for > limb_prec constants.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
! 	Add web-link to the avr-gcc wiki.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Variable Attributes) [address]: Remove
! 	documentation for a version without argument, which is not supported.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
! 	(vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
! 	(vld1_f16_x4, vld1_f32_x4): New.
! 	(vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
! 	(vld1_bf16_x4): New.
! 	(vld1q_types_x4): Updated to use vld1q_x4
! 	from arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x4): Updated entries.
! 	(vld1q_x4): New entries, but comes from the old vld1_x4
! 	* config/arm/neon.md
! 	(neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
! 	(vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
! 	(vld1_f16_x3, vld1_f32_x3): New.
! 	(vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
! 	(vld1_bf16_x3): New.
! 	(vld1q_types_x3): Updated to use vld1q_x3 from
! 	arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x3): Updated entries.
! 	(vld1q_x3): New entries, but comes from the old vld1_x2
! 	* config/arm/neon.md
! 	(neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
! 	(vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
! 	(vld1_f16_x2, vld1_f32_x2): New.
! 	(vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
! 	(vld1_bf16_x2): New.
! 	(vld1q_types_x2): Updated to use vld1q_x2 from
! 	arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x2): Updated entries.
! 	(vld1q_x2): New entries, but comes from the old vld1_x2
! 	* config/arm/neon.md
! 	(neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
! 	neon_vld1_x2<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
! 	(vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
! 	(vst1q_f16_x4, vst1q_f32_x4): New.
! 	(vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
! 	(vst1q_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1q_x4<mode>): New.
! 	(neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
! 	(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
! 	(vst1q_f16_x3, vst1q_f32_x3): New.
! 	(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
! 	(vst1q_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1q_x3<mode>): New.
! 	(neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
! 	(vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
! 	(vst1q_f16_x2, vst1q_f32_x2): New.
! 	(vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
! 	(vst1q_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
! 	neon_vst1_x2<mode>.
! 	* config/arm/iterators.md
! 	(VMEMX2): New mode iterator.
! 	(VMEMX2_q): New mode attribute.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
! 	(vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
! 	(vst1_f16_x4, vst1_f32_x4): New.
! 	(vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
! 	(vst1_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x4): New entries.
! 	* config/arm/neon.md (vst1_x4<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
! 	(vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
! 	(vst1_f16_x3, vst1_f32_x3): New.
! 	(vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
! 	(vst1_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x3): New entries.
! 	* config/arm/neon.md (vst1_x3<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
! 	(vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
! 	(vst1_f16_x2, vst1_f32_x2): New.
! 	(vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
! 	(vst1_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x2): New entries.
! 	* config/arm/neon.md (vst1_x2<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
! 	(vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
! 	(vld1q_f16_x4, vld1q_f32_x4): New.
! 	(vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
! 	(vld1q_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x4): New entries.
! 	* config/arm/neon.md
! 	(neon_vld1_x4<mode>): New.
! 	(neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
! 	* config/arm/unspecs.md
! 	(UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
! 	(vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
! 	(vld1q_f16_x3, vld1q_f32_x3): New.
! 	(vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
! 	(vld1q_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x3): New entries.
! 	* config/arm/neon.md
! 	(neon_vld1_x3<mode>): New.
! 	(neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
! 	(vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
! 	(vld1q_f16_x2, vld1q_f32_x2): New.
! 	(vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
! 	(vld1q_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x2): New entries.
! 	* config/arm/neon.md (vld1_x2<mode>): New.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113287
! 	* doc/sourcebuild.texi (check_effective_target_bitint65535): New.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
! 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113178
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
! 	alternate exits.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113237
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
! 	existing LCSSA variable for exit when all exits are early break.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113137
! 	PR tree-optimization/113136
! 	PR tree-optimization/113172
! 	PR tree-optimization/113178
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Maintain PHIs on inverted loops.
! 	(vect_do_peeling): Maintain virtual PHIs on inverted loops.
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
! 	latch.
! 	(vect_create_loop_vinfo): Record all conds instead of only alt ones.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113135
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
! 	dependency analysis.
  
! 2024-01-12  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/rs6000/host-darwin.cc (segv_handler): Use the revised
! 	diagnostics class member name for abort of error.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
! 	format string to %s argument.
  
! 2024-01-12  John David Anglin  <danglin@gcc.gnu.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113182
! 	* varasm.cc (process_pending_assemble_externals,
! 	assemble_external_libcall): Use targetm.strip_name_encoding
! 	before calling get_identifier.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113196
! 	* config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
! 	New member variable.
! 	* config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
! 	Declare.
! 	* config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
! 	* config/aarch64/aarch64-simd.md
! 	(vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
! 	(vec_unpack<su>_hi_<mode>): ...this.  Move the generation of
! 	zip2 for zero-extends to...
! 	(aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
! 	instruction.  Fix big-endian handling.
! 	(vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
! 	(vec_unpack<su>_lo_<mode>): ...this.  Move the generation of
! 	zip1 for zero-extends to...
! 	(<optab><Vnarrowq><mode>2): ...a split of this instruction.
! 	Fix big-endian handling.
! 	(*aarch64_zip1_uxtl): New pattern.
! 	(aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
! 	(aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
! 	(aarch64_gen_shareable_zero): Use it.
! 	(aarch64_split_simd_shift_p): New function.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
! 	(function_beg_insn): New macro.
! 	* function.cc (expand_function_start): Initialize function_beg_insn.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(function_builder::m_overload_names): Replace with...
! 	* config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
! 	new global.
! 	(add_overloaded_function): Update accordingly, using get_identifier
! 	to get a GGC-friendly record of the name.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins.def: Don't include
! 	aarch64-sve-builtins-sme.def.
! 	(DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
! 	* config/aarch64/aarch64-sve-builtins-sme.def: ...here.
! 	(DEF_SME_FUNCTION): New macro.  Use it and DEF_SME_FUNCTION_GS
! 	instead of DEF_SVE_*.  Add AARCH64_FL_SME to anything that
! 	requires AARCH64_FL_SME2.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def: Make same
! 	AARCH64_FL_SME adjustment here.
! 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
! 	include SME intrinsics.
! 	(sme_function_groups): New array.
! 	(handle_arm_sve_h): Remove check for AARCH64_FL_SME.
! 	(handle_arm_sme_h): Use sme_function_groups instead of function_groups.
  
! 2024-01-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113281
! 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
! 	(struct cpu_vector_cost): Add regmove struct.
! 	(get_vector_costs): Export as global.
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
! 	(costs::add_stmt_cost): Ditto.
! 	* config/riscv/riscv.cc (get_common_costs): Export global function.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113334
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
! 	wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
! 	to determine if number should be extended by all ones rather than zero
! 	extended.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113330
! 	* tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
! 	too large size.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113323
! 	* gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
! 	check for lhs being large/huge _BitInt not in m_names.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113316
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
! 	uninitialized large/huge _BitInt arguments to calls.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-lower-bitint.cc (mergeable_op): Instead of comparing
! 	TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
! 	CEIL (TYPE_PRECISION (t), limb_prec).
! 	(bitint_large_huge::handle_cast): Likewise.
  
! 2024-01-12  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	PR sanitizer/113284
! 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
! 	Use assemble_function_label_final () for Power ELF V1 ABI.
! 	* output.h (assemble_function_label_final): New function.
! 	* varasm.cc (assemble_function_label_raw): Use
! 	assemble_function_label_final ().
! 	(assemble_function_label_final): New function.
  
! 2024-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113344
! 	* match.pd ((double)float CMP (double)float -> float CMP float):
! 	Perform result type check only for vectors.
! 	* fold-const.cc (fold_binary_loc): Likewise.
  
! 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
! 	(usdot_prod<mode>): Ditto.
! 	(sdot_prod<mode>): Ditto.
! 	(udot_prod<mode>): Ditto.
  
! 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/113288
! 	* config/i386/i386-c.cc (ix86_target_macros_internal):
! 	Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
  
! 2024-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR target/112280
! 	* config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
! 	Do not generate code when d.testing_p.
  
! 2024-01-12  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/113039
! 	* doc/invoke.texi (fcf-protection=): Update documents.
  
! 2024-01-12  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
! 	comments of predicate func riscv_v_ext_mode_p.
  
! 2024-01-12  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
! 			Modify ABI-name length of vfloat16m8_t
  
! 2024-01-12  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
! 	Adjust.
  
! 2024-01-12  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.md (add<mode>3): Removed.
! 	(*addsi3): New.
! 	(addsi3): Ditto.
! 	(adddi3): Ditto.
! 	(*addsi3_extended): Removed.
! 	(addsi3_extended): New.
  
! 2024-01-11  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/thead.md: Add limits for splits.
  
! 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/113322
! 	* expr.cc (do_store_flag): Don't try single bit tests with
! 	comparison on vector types.
  
! 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/113301
! 	* match.pd (`1/x`): Delay signed case until late.
  
! 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
! 	and -msp8 to...
! 	(AVR Internal Options): ...this new @subsubsection.
  
! 2024-01-11  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/112918
! 	* lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
! 	(in_class_p): Restrict condition for narrowing class in case of
! 	allow_all_reload_class_changes_p.
! 	(process_alt_operands): Try to match operand without and with
! 	narrowing reg class.  Discourage narrowing the class.  Finish insn
! 	matching only if there is no class narrowing.
! 	(curr_insn_transform): Pass true to in_class_p for reg operand win.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112505
! 	* tree-vect-loop.cc (vectorizable_induction): Reject
! 	bit-precision induction.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113126
! 	* match.pd ((double)float CMP (double)float -> float CMP float):
! 	Make sure the boolean type is the same.
! 	* fold-const.cc (fold_binary_loc): Likewise.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112636
! 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
! 	estimate_numbers_of_iterations before querying
! 	get_max_loop_iterations_int.
! 	(pass_ch::execute): Initialize SCEV and loops appropriately.
  
! 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
! 	Reduced Tiny.
! 	* config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
! 	* doc/extend.texi (AVR Variable Attributes): Improve documentation
! 	of io, io_low and address attributes.
! 	* doc/invoke.texi (AVR Options): Add some anchors for external refs.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-01-11  Yang Yujie  <yangyujie@loongson.cn>
  
! 	PR target/113233
! 	* config/loongarch/genopts/loongarch.opt.in: Mark options with
! 	the "Save" property.
! 	* config/loongarch/loongarch.opt: Same.
! 	* config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
! 	according to la_target.
! 	* config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
! 	RESTORE} for the la_target structure; Rename option conditions
! 	to have the same "la_" prefix.
! 	* config/loongarch/loongarch.h: Same.
  
! 2024-01-11  Pan Li  <pan2.li@intel.com>
  
! 	* loop-unroll.cc (insert_var_expansion_initialization): Leverage
! 	MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
  
! 2024-01-11  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113077
! 	* config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
! 	fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
! 	(combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
! 	synthesize these if needed.  Update caller ...
! 	(ldp_bb_info::fuse_pair): ... here.
! 	(ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
! 	and either insn is frame-related.
! 	(find_trailing_add): Punt on frame-related insns.
! 	* config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
! 	REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
  
! 2024-01-11  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc (mips_start_function_definition):
! 	Add ATTRIBUTE_UNUSED.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/112740
! 	* expr.cc (store_constructor): Check the integer vector
! 	mask has a single bit per element before using sign-extension
! 	to expand an uniform vector.
  
! 2024-01-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
! 	preempt VLS on unknown NITERS loop.
  
! 2024-01-11  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* doc/invoke.texi: Add -mevex512.
  
! 2024-01-11  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
! 	(*nor<mode>3): Likewise.
! 	(nor<mode>3): Likewise.
! 	(*negsi2_extended): New template.
! 	(*<optab>si3_internal): Likewise.
! 	(*one_cmplsi2_internal): Likewise.
! 	(*norsi3_internal): Likewise.
! 	(*<optab>nsi_internal): Likewise.
! 	(bytepick_w_<bytepick_imm>_extend): Modify this template according to the
! 	modified bit operation to make the optimization work.
  
! 2024-01-11  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/104401
! 	* match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
! 	(get_vector_costs): Ditto.
! 	(riscv_builtin_vectorization_cost): Ditto.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
  
! 2024-01-10  Antoni Boucher  <bouanto@zoho.com>
  
! 	PR jit/111396
! 	* ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
! 	ipa_free_size_summary.
! 	* ipa-icf.cc (ipa_icf_cc_finalize): New function.
! 	* ipa-profile.cc (ipa_profile_cc_finalize): New function.
! 	* ipa-prop.cc (ipa_prop_cc_finalize): New function.
! 	* ipa-prop.h (ipa_prop_cc_finalize): New function.
! 	* ipa-sra.cc (ipa_sra_cc_finalize): New function.
! 	* ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
! 	ipa_sra_cc_finalize): New functions.
! 	* toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
! 	ipa_prop_cc_finalize, ipa_profile_cc_finalize and
! 	ipa_sra_cc_finalize
! 	Include ipa-utils.h.
  
! 2024-01-10  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
! 	(th_int_get_save_adjustment): Likewise.
! 	(th_int_adjust_cfi_prologue): Likewise.
! 	* config/riscv/riscv.cc (BITSET_P): Moved away from here.
! 	(TH_INT_INTERRUPT): New macro.
! 	(riscv_expand_prologue): Add the processing of XTheadInt.
! 	(riscv_expand_epilogue): Likewise.
! 	* config/riscv/riscv.h (BITSET_P): Moved to here.
! 	* config/riscv/riscv.md: New unspec.
! 	* config/riscv/thead.cc (th_int_get_mask): New function.
! 	(th_int_get_save_adjustment): Likewise.
! 	(th_int_adjust_cfi_prologue): Likewise.
! 	* config/riscv/thead.md (th_int_push): New pattern.
! 	(th_int_pop): new pattern.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/112468
! 	* doc/sourcebuild.texi: Document ifn_copysign.
! 	* match.pd: Only apply transformation if target supports the IFN.
  
! 2024-01-10  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/112581
! 	* gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
! 	mark_ssa_maybe_undefs.
! 	* tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
! 	variables can not be reassociated.
! 	(init_range_entry): Check for uninitialized variables too.
! 	(init_reassoc): Call mark_ssa_maybe_undefs.
  
! 2024-01-10  Maciej W. Rozycki  <macro@embecosm.com>
  
! 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
! 	Also handle sign extension.
  
! 2024-01-10  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
! 	to 0.
! 	(-mlate-ldp-fusion): Likewise.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113287
! 	* tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
! 	instead of using BRANCH_EDGE to determine true edge.
  
! 2024-01-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113078
! 	* tree-vect-loop.cc (check_reduction_path): Canonicalize
! 	.COND_SUB to .COND_ADD.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
! 	Handle prefix mappings before calling find_opt.
! 	(selftest::gcc_urlifier_cc_tests): Add example of urlifying a
! 	"-fno-"-prefixed command-line option.
! 	* opts-common.cc (get_option_prefix_remapping): New.
! 	* opts.h (get_option_prefix_remapping): New decl.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic.cc (diagnostic_context::report_diagnostic): Pass
! 	m_urlifier to pp_output_formatted_text.
! 	* pretty-print.cc: Add #define of INCLUDE_VECTOR.
! 	(obstack_append_string): New overload, taking a length.
! 	(urlify_quoted_string): Pass in an obstack ptr, rather than using
! 	that of the pp's buffer.  Generalize to handle trailing text in
! 	the buffer beyond the run of quoted text.
! 	(class quoting_info): New.
! 	(on_begin_quote): New.
! 	(on_end_quote): New.
! 	(pp_format): Refactor phase 1 and phase 2 quoting support, moving
! 	it to calls to on_begin_quote and on_end_quote.
! 	(struct auto_obstack): New.
! 	(quoting_info::handle_phase_3): New.
! 	(pp_output_formatted_text): Add urlifier param.  Use it if there
! 	is deferred urlification.  Delete m_quotes.
! 	(selftest::pp_printf_with_urlifier): Pass urlifier to
! 	pp_output_formatted_text.
! 	(selftest::test_urlification): Update results for the existing
! 	case of quoted text stradding chunks; add more such test cases.
! 	* pretty-print.h (class quoting_info): New forward decl.
! 	(chunk_info::m_quotes): New field.
! 	(pp_output_formatted_text): Add optional urlifier param.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* pretty-print.cc (selftest::test_pp_format): Add selftest
! 	coverage for numbered args.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113144
! 	PR tree-optimization/113145
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Update all BB that the original exits dominated.
  
! 2024-01-10  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* dwarf2out.cc (modified_type_die): Extend the support of reverse
! 	storage order to enumeration types if -gstrict-dwarf is not passed.
! 	(gen_enumeration_type_die): Add REVERSE parameter and generate the
! 	DIE immediately after the existing one if it is true.
! 	(gen_tagged_type_die): Add REVERSE parameter and pass it in the
! 	call to gen_enumeration_type_die.
! 	(gen_type_die_with_usage): Add REVERSE parameter and pass it in the
! 	first recursive call as well as the call to gen_tagged_type_die.
! 	(gen_type_die): Add REVERSE parameter and pass it in the call to
! 	gen_type_die_with_usage.
  
! 2024-01-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113120
! 	* tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
! 	with root->size TYPE_PRECISION don't build anything new.
! 	Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
! 	rather than build_nonstandard_integer_type.
  
! 2024-01-10  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386.opt: Adjust document.
! 	* doc/invoke.texi: Add description for
! 	-mapx-inline-asm-use-gpr32.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
! 	(avg<v_double_trunc>3_floor): New pattern.
! 	(<u>avg<v_double_trunc>3_ceil): Remove.
! 	(avg<v_double_trunc>3_ceil): New pattern.
! 	(uavg<mode>3_floor): Ditto.
! 	(uavg<mode>3_ceil): Ditto.
! 	* config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
! 	(enum insn_type): Ditto.
! 	* config/riscv/riscv-v.cc: Ditto.
! 	* config/riscv/vector-iterators.md (ashiftrt): Remove.
! 	(ASHIFTRT): Ditto.
! 	* config/riscv/vector.md: Add VLS modes.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/111480
! 	* config/rs6000/vsx.md (VCZLSBB): New int iterator.
! 	(vczlsbb_char): New int attribute.
! 	(vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
! 	(vc<vczlsbb_char>zlsbb_<mode>): ... this.
! 	(*vctzlsbb_zext_<mode>): Rename to ...
! 	(*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
! 	cover vclzlsbb.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/112606
! 	* config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
! 	of the last argument from altivec_register_operand to any_operand.  If
! 	operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
! 	otherwise if it doesn't satisfy altivec_register_operand, force it to
! 	REG using copy_to_mode_reg.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR middle-end/113100
! 	* builtins.cc (expand_builtin_stack_address): Guard stack point
! 	adjustment with SPARC_STACK_BOUNDARY_HACK.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
! 	argument string definitions.
! 	* config/loongarch/loongarch-str.h: Same.
! 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
! 	as aliases to -mexplicit-relocs={always,none}
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch.cc: Same.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/loongarch-def.h: Define constants with
! 	enums instead of Macros.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch-strings: Rename.
! 	* config/loongarch/genopts/loongarch.opt.in: Same.
! 	* config/loongarch/loongarch-cpu.cc: Same.
! 	* config/loongarch/loongarch-def.cc: Same.
! 	* config/loongarch/loongarch-def.h: Same.
! 	* config/loongarch/loongarch-opts.cc: Same.
! 	* config/loongarch/loongarch-opts.h: Same.
! 	* config/loongarch/loongarch-str.h: Same.
! 	* config/loongarch/loongarch.opt: Same.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
! 	variable with the common la_ prefix.
! 	* config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
! 	flags as saved using TargetVariable.
! 	* config/loongarch/loongarch.opt: Same.
! 	* config/loongarch/loongarch-def.h: Define evolution_set to
! 	mark changes to the -march default.
! 	* config/loongarch/loongarch-driver.cc: Same.
! 	* config/loongarch/loongarch-opts.cc: Same.
! 	* config/loongarch/loongarch-opts.h: Define and use ISA evolution
! 	conditions around the la_target structure.
! 	* config/loongarch/loongarch.cc: Same.
! 	* config/loongarch/loongarch.md: Same.
! 	* config/loongarch/loongarch-builtins.cc: Same.
! 	* config/loongarch/loongarch-c.cc: Same.
! 	* config/loongarch/lasx.md: Same.
! 	* config/loongarch/lsx.md: Same.
! 	* config/loongarch/sync.md: Same.
  
! 2024-01-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
! 	no less.
  
! 2024-01-09  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
! 	restart_loop.
! 	(vectorizable_live_operation): Likewise.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113199
! 	* tree-vect-loop.cc (vectorizable_live_operation_1): Use
! 	BIT_FIELD_REF.
  
! 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113270
! 	* config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
! 	* config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
! 	GTY(()) declaration before the definition, drop GTY(()) drom the
! 	definition.
  
! 2024-01-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113026
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Remove
! 	redundant and wrong niter bound setting.  Move niter
! 	bound adjustment down.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR middle-end/113163
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
! 	Reject non-linear inductions that aren't supported.
  
! 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/arc/arc.cc (arc_shift_alg): New enumerated type for
! 	left shift implementation strategies.
! 	(arc_shift_info): Type for each entry of the shift strategy table.
! 	(arc_shift_context_idx): Return a integer value for each code
! 	generation context, used as an index
! 	(arc_ashl_alg): Table indexed by context and shifted bit count.
! 	(arc_split_ashl): Use the arc_ashl_alg table to select SImode
! 	left shift implementation.
! 	(arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
! 	provide accurate costs, when optimizing for speed or size.
  
! 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
  
! 2024-01-09  Julian Brown  <julian@codesourcery.com>
  
! 	* gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
! 	processed out before gimplification.
! 	* tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
! 	* tree.def (OMP_ARRAY_SECTION): New tree code.
  
! 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113210
! 	* tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
! 	value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
! 	INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
! 	minus 1.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR rtl-optimization/113140
! 	* reorg.cc (fill_slots_from_thread): If we are to branch after the
! 	last instruction of the function, create an end label.
  
! 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Hongtao Liu  <hongtao.liu@intel.com>
  
! 	PR target/112992
! 	* config/i386/i386-expand.cc
! 	(ix86_convert_const_wide_int_to_broadcast): Allow call to
! 	ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
! 	(ix86_broadcast_from_constant): Revert recent change; Return a
! 	suitable MEMREF independently of mode/target combinations.
! 	(ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
! 	to decide whether expansion is possible/preferrable.  Only try
! 	forcing DImode constants to memory (and trying again) if calling
! 	ix86_expand_vector_init_duplicate fails with an DImode immediate
! 	constant.
! 	(ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
! 	V4SImode for suitable immediate constants.
! 	<case E_V4DImode>: Try using V8SImode for suitable constants.
! 	<case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
! 	<case E_V2HImode>: Likewise.
! 	<case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
! 	<case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
! 	<label widen>: Handle CONT_INTs via simplify_binary_operation.
! 	Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
! 	<case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
! 	<case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
! 	(ix86_expand_vector_init): Move try using a broadcast for all_same
! 	with ix86_expand_vector_init_duplicate before using constant pool.
  
! 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
  
! 	* doc/invoke.texi (Arm Options): Document Cortex-M52 options.
  
! 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
  
! 	* config/arm/arm-cpus.in (cortex-m52): New cpu.
! 	* config/arm/arm-tables.opt: Regenerate.
! 	* config/arm/arm-tune.md: Regenerate.
  
! 2024-01-09  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
! 	(vec_init<mode><lasxhalf>): .. this, and extend to mode.
! 	(@vec_concatz<mode>): New insn pattern.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
! 	Handle VALS containing two vectors.
  
! 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
! 	(vundefined): Ditto.
  
! 2024-01-09  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
  
! 2024-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	PR sanitizer/113251
! 	* varasm.cc (assemble_function_label_raw): Do not call
! 	asan_function_start () without the current function.
  
! 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/113225
! 	* btfout.cc (btf_collect_datasec): Skip creating BTF info for
! 	extern and kernel_helper attributed function decls.
  
! 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* btfout.cc (output_btf_strs): Changed.
  
! 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (main): Handle gfx1100
! 	when setting the default XNACK.
  
! 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
! 	(ASM_SPEC): Handle gfx1100.
! 	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
! 	(enum gcn_isa): Add ISA_RDNA3.
! 	(TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
! 	* config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	* config/gcn/gcn.cc (gcn_option_override,
! 	gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
! 	(gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
! 	TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	(gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
! 	with gfx1100.
! 	* config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
! 	(TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
! 	__gfx1100__.
! 	* config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	* config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
! 	(isa_has_combined_avgprs, main): Handle gfx1100.
! 	* config/gcn/t-omp-device (isa): Add gfx1100.
  
! 2024-01-08  Richard Biener  <rguenther@suse.de>
  
! 	* doc/invoke.texi (-mmovbe): Clarify.
  
! 2024-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113026
! 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
! 	Avoid an epilog in more cases.
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
! 	epilogues niter upper bounds and estimates.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113228
! 	* gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113120
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
! 	large _BitInt zero INTEGER_CST PHI argument.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113119
! 	* gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
! 	both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
! 	is before REALPART_EXPR.
  
! 2024-01-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/112952
! 	* config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
! 	range when diagnosing attribute "io" and "io_low" are out of range.
! 	(avr_eval_addr_attrib): Don't ICE on empty address at that place.
! 	(avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
! 	in contexts other than static storage.
! 	(avr_asm_output_aligned_decl_common): Move output of decls with
! 	attribute "address", "io", and "io_low" to...
! 	(avr_output_addr_attrib): ...this new function.
! 	(avr_asm_asm_output_aligned_bss): Remove output for decls with
! 	attribute "address", "io", and "io_low".
! 	(avr_encode_section_info): Rectify handling of decls with attribute
! 	"address", "io", and "io_low".
  
! 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
! 	(elf_flags): Remove XNACK from the default value.
! 	(main): Set a default XNACK according to the arch.
  
! 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
! 	(process_asm): Don't count avgprs.
  
! 2024-01-08  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386.opt: Add supported sub-features.
! 	* doc/extend.texi: Add description for target attribute.
  
! 2024-01-08  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
  
! 2024-01-07  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113231
! 	* config/i386/i386-features.cc (compute_convert_gain): Include
! 	the overhead of explicit load and store (movd) instructions when
! 	converting non-store scalar operations with memory destinations.
! 	Various indentation whitespace fixes.
  
! 2024-01-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/arm/neon.md (cbranch<mode>4): New.
  
! 2024-01-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
  
! 2024-01-06  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113248
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
! 	Update the MAX_SEW.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
! 	(variable_vectorized_p): Teach loop invariant.
! 	(has_unexpected_spills_p): Ditto.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
! 	* config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
! 	* config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
  
! 2024-01-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113104
! 	* doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
! 	(aarch64-vect-compare-costs): ...this.
! 	* config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
! 	Replace with...
! 	(-param=aarch64-vect-compare-costs=): ...this new param.
! 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
! 	Don't disable it when vectorizing for Advanced SIMD only.
! 	(aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
! 	whenever aarch64_vect_compare_costs is true.
  
! 2024-01-05  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
! 	Modify the method of determining the memory offset of [x]vld/[x]vst.
! 	(lasx_mxst_<lasxfmt_f>): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
! 	(loongarch_address_insns): Likewise.
! 	* config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
! 	(lsx_st_<lsxfmt_f>): Likewise.
! 	* config/loongarch/predicates.md (aq10b_operand): Likewise.
! 	(aq10h_operand): Likewise.
! 	(aq10w_operand): Likewise.
! 	(aq10d_operand): Likewise.
  
! 2024-01-05  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113217
! 	* config/aarch64/aarch64-ldp-fusion.cc
! 	(ldp_bb_info::try_fuse_pair): If the second access can throw,
! 	narrow the move range to exactly that insn.
  
! 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* asan.cc (asan_function_start): Drop switch_to_section ().
! 	(asan_emit_stack_protection): Set .LASANPC alignment.
! 	* config/i386/i386.cc: Use assemble_function_label_raw ()
! 	instead of ASM_OUTPUT_LABEL ().
! 	* config/s390/s390.cc (s390_asm_output_function_label):
! 	Likewise.
! 	* defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
! 	* final.cc (final_start_function_1): Drop
! 	asan_function_start ().
! 	* output.h (assemble_function_label_raw): New function.
! 	* varasm.cc (assemble_function_label_raw): Likewise.
  
! 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_declare_function_name):
! 	Use ASM_OUTPUT_FUNCTION_LABEL ().
! 	* config/alpha/alpha.cc (alpha_start_function): Likewise.
! 	* config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
! 	* config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
! 	* config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/ia64/ia64.cc (ia64_start_function): Likewise.
! 	* config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
! 	Likewise.
! 	* config/microblaze/microblaze.cc (microblaze_function_prologue):
! 	Likewise.
! 	* config/mips/mips.cc (mips_start_unique_function): Return the
! 	tree.
! 	(mips_start_function_definition): Use
! 	ASM_OUTPUT_FUNCTION_LABEL ().
! 	(mips_finish_stub): Pass the tree to
! 	mips_start_function_definition ().
! 	(mips16_build_function_stub): Likewise.
! 	(mips16_build_call_stub): Likewise.
! 	(mips_output_function_prologue): Likewise.
! 	* config/pa/pa.cc (pa_output_function_label): Use
! 	ASM_OUTPUT_FUNCTION_LABEL ().
! 	* config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
! 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
! 	Likewise.
! 	(rs6000_xcoff_declare_function_name): Likewise.
  
! 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113201
! 	* tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
! 	replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
  
! 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/90693
! 	* tree-ssa-math-opts.cc (match_single_bit_test): If
! 	tree_expr_nonzero_p (arg), remember it in the second argument to
! 	IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
! 	arg ^ (arg - 1) > arg - 1.
! 	* internal-fn.cc (expand_POPCOUNT): If second argument to
! 	IFN_POPCOUNT suggests arg is non-zero, try to expand it as
! 	arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
  
! 2024-01-05  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-v.cc (expand_load_store):
! 	Remove `value`.
! 	(expand_cond_len_op): Ditto.
! 	(expand_gather_scatter): Ditto.
! 	(expand_lanes_load_store): Ditto.
! 	(expand_fold_extract_last): Ditto.
  
! 2024-01-05  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
  
! 2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
  
! 2024-01-04  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/113186
! 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
! 	Match `^` with the `==` for 1bit integral types.
! 	* match.pd (maybe_cmp): Allow for bit_xor for 1bit
! 	integral types.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* toplev.cc (general_init): Pass lang_mask to urlifier.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
! 	param.
! 	(diagnostic_context::make_option_url): Update for lang_mask param.
! 	* gcc-urlifier.cc: Include "opts.h" and "options.h".
! 	(gcc_urlifier::gcc_urlifier): Add lang_mask param.
! 	(gcc_urlifier::m_lang_mask): New field.
! 	(doc_urls): Make static.
! 	(gcc_urlifier::get_url_for_quoted_text): Use label_text.
! 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
! 	Look for an option by name before trying a binary search in
! 	doc_urls.
! 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
! 	(gcc_urlifier::get_url_suffix_for_option): New.
! 	(make_gcc_urlifier): Add lang_mask param.
! 	(selftest::gcc_urlifier_cc_tests): Update for above changes.
! 	Verify that a URL is found for "-fpack-struct".
! 	* gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
! 	* gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
! 	* gcc.cc (driver::global_initializations): Pass 0 for lang_mask
! 	to make_gcc_urlifier.
! 	* opts-diagnostic.h (get_option_url): Add lang_mask param.
! 	* opts.cc (get_option_html_page): Remove special-casing for
! 	analyzer and LTO.
! 	(get_option_url_suffix): New.
! 	(get_option_url): Reimplement.
! 	(selftest::test_get_option_html_page): Rename to...
! 	(selftest::test_get_option_url_suffix): ...this and update for
! 	above changes.
! 	(selftest::opts_cc_tests): Update for renaming.
! 	* opts.h: Include "rich-location.h".
! 	(get_option_url_suffix): New decl.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (ALL_OPT_URL_FILES): New.
! 	(GCC_OBJS): Add options-urls.o.
! 	(OBJS): Likewise.
! 	(OBJS-libcommon): Likewise.
! 	(s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
! 	inputs to opt-gather.awk.
! 	(options-urls.cc): New Makefile target.
! 	* opt-functions.awk (url_suffix): New function.
! 	(lang_url_suffix): New function.
! 	* options-urls-cc-gen.awk: New file.
! 	* opts.h (get_opt_url_suffix): New decl.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* params.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* common.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
! 	* config/aarch64/aarch64.opt.urls: Likewise.
! 	* config/alpha/alpha.opt.urls: Likewise.
! 	* config/alpha/elf.opt.urls: Likewise.
! 	* config/arc/arc-tables.opt.urls: Likewise.
! 	* config/arc/arc.opt.urls: Likewise.
! 	* config/arm/arm-tables.opt.urls: Likewise.
! 	* config/arm/arm.opt.urls: Likewise.
! 	* config/arm/vxworks.opt.urls: Likewise.
! 	* config/avr/avr.opt.urls: Likewise.
! 	* config/bpf/bpf.opt.urls: Likewise.
! 	* config/c6x/c6x-tables.opt.urls: Likewise.
! 	* config/c6x/c6x.opt.urls: Likewise.
! 	* config/cris/cris.opt.urls: Likewise.
! 	* config/cris/elf.opt.urls: Likewise.
! 	* config/csky/csky.opt.urls: Likewise.
! 	* config/csky/csky_tables.opt.urls: Likewise.
! 	* config/darwin.opt.urls: Likewise.
! 	* config/dragonfly.opt.urls: Likewise.
! 	* config/epiphany/epiphany.opt.urls: Likewise.
! 	* config/fr30/fr30.opt.urls: Likewise.
! 	* config/freebsd.opt.urls: Likewise.
! 	* config/frv/frv.opt.urls: Likewise.
! 	* config/ft32/ft32.opt.urls: Likewise.
! 	* config/fused-madd.opt.urls: Likewise.
! 	* config/g.opt.urls: Likewise.
! 	* config/gcn/gcn.opt.urls: Likewise.
! 	* config/gnu-user.opt.urls: Likewise.
! 	* config/h8300/h8300.opt.urls: Likewise.
! 	* config/hpux11.opt.urls: Likewise.
! 	* config/i386/cygming.opt.urls: Likewise.
! 	* config/i386/cygwin.opt.urls: Likewise.
! 	* config/i386/djgpp.opt.urls: Likewise.
! 	* config/i386/i386.opt.urls: Likewise.
! 	* config/i386/mingw-w64.opt.urls: Likewise.
! 	* config/i386/mingw.opt.urls: Likewise.
! 	* config/i386/nto.opt.urls: Likewise.
! 	* config/ia64/ia64.opt.urls: Likewise.
! 	* config/ia64/ilp32.opt.urls: Likewise.
! 	* config/ia64/vms.opt.urls: Likewise.
! 	* config/iq2000/iq2000.opt.urls: Likewise.
! 	* config/linux-android.opt.urls: Likewise.
! 	* config/linux.opt.urls: Likewise.
! 	* config/lm32/lm32.opt.urls: Likewise.
! 	* config/loongarch/loongarch.opt.urls: Likewise.
! 	* config/lynx.opt.urls: Likewise.
! 	* config/m32c/m32c.opt.urls: Likewise.
! 	* config/m32r/m32r.opt.urls: Likewise.
! 	* config/m68k/ieee.opt.urls: Likewise.
! 	* config/m68k/m68k-tables.opt.urls: Likewise.
! 	* config/m68k/m68k.opt.urls: Likewise.
! 	* config/m68k/uclinux.opt.urls: Likewise.
! 	* config/mcore/mcore.opt.urls: Likewise.
! 	* config/microblaze/microblaze.opt.urls: Likewise.
! 	* config/mips/mips-tables.opt.urls: Likewise.
! 	* config/mips/mips.opt.urls: Likewise.
! 	* config/mips/sde.opt.urls: Likewise.
! 	* config/mmix/mmix.opt.urls: Likewise.
! 	* config/mn10300/mn10300.opt.urls: Likewise.
! 	* config/moxie/moxie.opt.urls: Likewise.
! 	* config/msp430/msp430.opt.urls: Likewise.
! 	* config/nds32/nds32-elf.opt.urls: Likewise.
! 	* config/nds32/nds32-linux.opt.urls: Likewise.
! 	* config/nds32/nds32.opt.urls: Likewise.
! 	* config/netbsd-elf.opt.urls: Likewise.
! 	* config/netbsd.opt.urls: Likewise.
! 	* config/nios2/elf.opt.urls: Likewise.
! 	* config/nios2/nios2.opt.urls: Likewise.
! 	* config/nvptx/nvptx-gen.opt.urls: Likewise.
! 	* config/nvptx/nvptx.opt.urls: Likewise.
! 	* config/openbsd.opt.urls: Likewise.
! 	* config/or1k/elf.opt.urls: Likewise.
! 	* config/or1k/or1k.opt.urls: Likewise.
! 	* config/pa/pa-hpux.opt.urls: Likewise.
! 	* config/pa/pa-hpux1010.opt.urls: Likewise.
! 	* config/pa/pa-hpux1111.opt.urls: Likewise.
! 	* config/pa/pa-hpux1131.opt.urls: Likewise.
! 	* config/pa/pa.opt.urls: Likewise.
! 	* config/pa/pa64-hpux.opt.urls: Likewise.
! 	* config/pdp11/pdp11.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rl78/rl78.opt.urls: Likewise.
! 	* config/rpath.opt.urls: Likewise.
! 	* config/rs6000/476.opt.urls: Likewise.
! 	* config/rs6000/aix64.opt.urls: Likewise.
! 	* config/rs6000/darwin.opt.urls: Likewise.
! 	* config/rs6000/linux64.opt.urls: Likewise.
! 	* config/rs6000/rs6000-tables.opt.urls: Likewise.
! 	* config/rs6000/rs6000.opt.urls: Likewise.
! 	* config/rs6000/sysv4.opt.urls: Likewise.
! 	* config/rtems.opt.urls: Likewise.
! 	* config/rx/elf.opt.urls: Likewise.
! 	* config/rx/rx.opt.urls: Likewise.
! 	* config/s390/s390.opt.urls: Likewise.
! 	* config/s390/tpf.opt.urls: Likewise.
! 	* config/sh/sh.opt.urls: Likewise.
! 	* config/sh/superh.opt.urls: Likewise.
! 	* config/sol2.opt.urls: Likewise.
! 	* config/sparc/long-double-switch.opt.urls: Likewise.
! 	* config/sparc/sparc.opt.urls: Likewise.
! 	* config/stormy16/stormy16.opt.urls: Likewise.
! 	* config/v850/v850.opt.urls: Likewise.
! 	* config/vax/elf.opt.urls: Likewise.
! 	* config/vax/vax.opt.urls: Likewise.
! 	* config/visium/visium.opt.urls: Likewise.
! 	* config/vms/vms.opt.urls: Likewise.
! 	* config/vxworks-smp.opt.urls: Likewise.
! 	* config/vxworks.opt.urls: Likewise.
! 	* config/xtensa/elf.opt.urls: Likewise.
! 	* config/xtensa/uclinux.opt.urls: Likewise.
! 	* config/xtensa/xtensa.opt.urls: Likewise.
! 	* config/bfin/bfin.opt.urls: New file.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (OPT_URLS_HTML_DEPS): New.
! 	(regenerate-opt-urls): New target.
! 	(regenerate-opt-urls-unit-test): New target.
! 	* doc/options.texi (Option properties): Add UrlSuffix and
! 	description of regenerate-opt-urls.py.  Add LangUrlSuffix_*.
! 	* doc/sourcebuild.texi (Anatomy of a Language Front End): Add
! 	reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
! 	and Makefile.in's OPT_URLS_HTML_DEPS.
! 	(Anatomy of a Target Back End): Add
! 	reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
! 	* regenerate-opt-urls.py: New file.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic-format-sarif.cc
! 	(sarif_builder::make_logical_location_object): Convert to...
! 	(make_sarif_logical_location_object): ...this.
! 	(sarif_builder::set_any_logical_locs_arr): Update for above
! 	change.
! 	(sarif_builder::make_thread_flow_location_object): Call
! 	maybe_add_sarif_properties on each diagnostic_event.
! 	* diagnostic-format-sarif.h (class logical_location): New forward
! 	decl.
! 	(make_sarif_logical_location_object): New decl.
! 	* diagnostic-path.h (class sarif_object): New forward decl.
! 	(diagnostic_event::maybe_add_sarif_properties): New vfunc.
  
! 2024-01-04  Kuan-Lin Chen  <rufus@andestech.com>
! 	    Patrick Lin  <patrick@andestech.com>
! 	    Rufus Chen  <rufus@andestech.com>
! 	    Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
! 	with Nan-boxing value.
! 	* config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
  
! 2024-01-04  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/104914
! 	* expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
! 	a sign or zero extension is only required if the modified field
! 	overlaps the SUBREG's most significant bit.  On MODE_REP_EXTENDED
! 	targets, don't refer to the temporarily incorrectly extended value
! 	using a SUBREG, but instead generate an explicit TRUNCATE rtx.
  
! 2024-01-04  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
  
! 2024-01-04  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
! 	offset of fcsr.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
! 	(compute_nregs_for_mode): Refine LMUL.
! 	(max_number_of_live_regs): Ditto.
! 	(compute_estimated_lmul): Ditto.
! 	(has_unexpected_spills_p): Ditto.
  
! 2024-01-04  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
! 	Remove useless forward declaration.
! 	(loongarch_is_even_extraction): Remove useless forward declaration.
! 	(loongarch_try_expand_lsx_vshuf_const): Removed.
! 	(loongarch_expand_vec_perm_const_1): Merged.
! 	(loongarch_is_double_duplicate): Removed.
! 	(loongarch_is_center_extraction): Ditto.
! 	(loongarch_is_reversing_permutation): Ditto.
! 	(loongarch_is_di_misalign_extract): Ditto.
! 	(loongarch_is_si_misalign_extract): Ditto.
! 	(loongarch_is_lasx_lowpart_extract): Ditto.
! 	(loongarch_is_op_reverse_perm): Ditto.
! 	(loongarch_is_single_op_perm): Ditto.
! 	(loongarch_is_divisible_perm): Ditto.
! 	(loongarch_is_triple_stride_extract): Ditto.
! 	(loongarch_expand_vec_perm_const_2): Merged.
! 	(loongarch_expand_vec_perm_const): New.
! 	(loongarch_vectorize_vec_perm_const): Adjust.
  
! 2024-01-04  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* omp-general.cc: Fix comment typos and misplaced/confusing
! 	comments.  Delete redundant include of omp-general.h.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	PR rtl-optimization/104914
! 	* config/mips/mips.md (insqisi_extended): New patterns.
! 	(inshisi_extended): Ditto.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc (mips_insn_cost): New function.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.md (perf_ratio): New attribute.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113206
! 	PR target/113209
! 	* config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
! 	(pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
! 	blocks belong to infinite loop.
! 	(pre_vsetvl::emit_vsetvl): Remove fake edges.
! 	* config/riscv/t-riscv: Add a new include file.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix indent.
  
! 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
  
! 	* tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
! 	OMP_CLAUSE__SIMDUID_.
! 	* tree.cc (omp_clause_num_ops): Update position of entry for
! 	OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
! 	(omp_clause_code_name): Likewise.
  
! 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
  
! 	* config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
! 	printing of FUNC_MAP/IND_FUNC_MAP labels.
  
! 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.cc (process_command): Update copyright notice dates.
  	* gcov-dump.cc (print_version): Ditto.
--- 1,8786 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	Backported from master:
! 	2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* opts.cc (validate_ipa_reorder_locality_lto_partition): Check opts
! 	instead of opts_set for x_flag_ipa_reorder_for_locality.
! 	(finish_options): Update call site.
  
! 2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	Backported from master:
! 	2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* common.opt (LTO_PARTITION_DEFAULT): Delete.
! 	(flto-partition=): Change default back to balanced.
! 	* flag-types.h (lto_partition_model): Remove LTO_PARTITION_DEFAULT.
! 	* opts.cc (validate_ipa_reorder_locality_lto_partition):
! 	Check opts_set->x_flag_lto_partition instead of LTO_PARTITION_DEFAULT.
! 	(finish_options): Remove handling of LTO_PARTITION_DEFAULT.
  
! 2025-04-22  Richard Sandiford  <richard.sandiford@arm.com>
  
  	Backported from master:
! 	2025-04-22  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
! 	__ARM_FEATURE_FAMINMAX.
  
! 2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	Backported from master:
! 	2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config/aarch64/aarch64-cores.def (olympus): Add fp8fma, fp8dot4
! 	explicitly.
  
! 2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	Backported from master:
! 	2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* doc/invoke.texi (lto-partition-locality-frequency-cutoff,
! 	lto-partition-locality-size-cutoff, lto-max-locality-partition):
! 	Document.
  
! 2025-04-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119858
! 	* tree-vect-loop.cc (vectorizable_live_operation): Convert
! 	pointer offset to sizetype.
  
! 2025-04-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/119351
! 	* tree-vect-stmts.cc (vectorizable_early_exit): Mask both operands of
! 	the gcond for partial masking support.
  
! 2025-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119834
! 	* config/s390/s390.md (define_split after *cpymem_short): Use
! 	(clobber (match_scratch N)) instead of (clobber (scratch)).  Use
! 	(match_dup 4) and operands[4] instead of (match_dup 3) and operands[3]
! 	in the last of those.
! 	(define_split after *clrmem_short): Use (clobber (match_scratch N))
! 	instead of (clobber (scratch)).
! 	(define_split after *cmpmem_short): Likewise.
  
! 2025-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.cc (TARGET_ASM_NEED_VAR_DECL_BEFORE_USE):
! 	Don't '#define'.
  
! 2025-04-17  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* combine.cc: Correct comments about combine_validate_cost.
  
! 2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/88382
! 	* doc/extend.texi (Syntax Extensions): Adjust menu.
! 	(Raw String Literals): New section.
  
! 2025-04-16  Keith Packard  <keithp@keithp.com>
  
! 	* config/rx/rx.md (cmpstrnsi): Allow constant length.  For
! 	static length 0, just store 0 into the output register.
! 	For dynamic zero, set C/Z appropriately.
! 	(rxcmpstrn): No longer set C/Z.
  
! 2025-04-16  Eric Botcazou  <ebotcazou@gcc.gnu.org>
  
! 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Do not
! 	bypass the int_fits_type_p test for boolean types whose precision
! 	is not 1.
  
! 2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* common.opt.urls: Regenerated.
  
! 2025-04-16  Ard Biesheuvel  <ardb@kernel.org>
  
! 	PR target/119386
! 	* config/i386/i386-options.cc: Permit -mnop-mcount when
! 	using -fpic with PLTs.
  
! 2025-04-16  Ard Biesheuvel  <ardb@kernel.org>
  
! 	PR target/119386
! 	* config/i386/i386.cc (x86_print_call_or_nop): Add @PLT suffix
! 	where appropriate.
! 	(x86_function_profiler): Fall through to x86_print_call_or_nop()
! 	for PIC codegen when flag_plt is set.
  
! 2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR driver/90465
! 	* doc/invoke.texi (Overall Options): Add a @cindex for -Q in
! 	connection with --help=.
! 	(Developer Options): Point at --help= documentation for the
! 	other use of -Q.
  
! 2025-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/97106
! 	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
! 	[ACCEL_COMPILER]: Make sure to emit C++ constructor, destructor
! 	aliases.
  
! 2025-04-16  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR tree-optimization/119614
! 	* ipa-prop.cc (ipa_write_return_summaries): New function.
! 	(ipa_record_return_value_range_1): Break out from ....
! 	(ipa_record_return_value_range): ... here.
! 	(ipa_read_return_summaries): New function.
! 	(ipa_prop_read_section): Read return summaries.
! 	(read_ipcp_transformation_info): Read return summaries.
! 	(ipcp_write_transformation_summaries): Write return summaries;
! 	do not stream stray 0.
  
! 2025-04-16  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/119351
! 	* tree-vectorizer.h (LOOP_VINFO_MASK_NITERS_PFA_OFFSET,
! 	LOOP_VINFO_NON_LINEAR_IV): New.
! 	(class _loop_vec_info): Add mask_skip_niters_pfa_offset and
! 	nonlinear_iv.
! 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize them.
! 	(vect_analyze_scalar_cycles_1): Record non-linear inductions.
! 	(vectorizable_induction): If early break and PFA using masking create a
! 	new phi which tracks where the scalar code needs to start...
! 	(vectorizable_live_operation): ...and generate the adjustments here.
! 	(vect_use_loop_mask_for_alignment_p): Reject non-linear inductions and
! 	early break needing peeling.
  
! 2025-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/119808
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't set
! 	m_single_use_names bits for SSA_NAMEs which have single use but
! 	their SSA_NAME_DEF_STMT is a copy from another SSA_NAME which doesn't
! 	have a single use, or single use which is such a copy etc.
  
! 2025-04-16  Jesse Huang  <jesse.huang@sifive.com>
  
! 	* config/riscv/riscv.cc (riscv_file_end): Fix .p2align value.
  
! 2025-04-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.h (JUMP_TABLES_IN_TEXT_SECTION): Check if
! 	large code model.
  
! 2025-04-16  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	* config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Fix operand
! 	order to gen_vcond_mask_*.
  
! 2025-04-16  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc
! 	(aarch64_valid_sysreg_name_p): Remove feature check.
! 	(aarch64_retrieve_sysreg): Ditto.
  
! 2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR tree-optimization/71094
! 	* doc/invoke.texi (Optimize Options): Document that -fivopts is
! 	enabled at -O1 and higher.  Add blurb about -O0 causing GCC to
! 	completely ignore most optimization options.
  
! 2025-04-15  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* configure: Regenerate.
! 	* configure.ac: Recognise PROJECT:ld-mmmm.nn.aa as an identifier
! 	for Darwin's static linker.
  
! 2025-04-15  Iain Sandoe  <iainsandoe@mini-05-seq.local>
  
! 	PR target/116827
! 	* ginclude/stddef.h: Undefine __PTRDIFF_T and __SIZE_T for module-
! 	enabled c++ on Darwin/macOS platforms.
  
! 2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* common.opt.urls: Regenerate.
  
! 2025-04-15  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Set
! 	to 4 for znver5.
  
! 2025-04-15  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR target/119298
! 	* config/i386/x86-tune-costs.h (znver5_cost): Set ADDSS cost to 3.
  
! 2025-04-15  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	PR target/119533
! 	* config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): Check for
! 	EDGE_ABNOMAL.
! 	(pre_vsetvl::compute_lcm_local_properties): Initialize kill
! 	bitmap.
! 	Debug dump skipped edge.
  
! 2025-04-15  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/119547
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
! 	Do not perform lift if block is not transparent.
  
! 2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* Makefile.in (OBJS): Add ipa-locality-cloning.o.
! 	* cgraph.h (set_new_clone_decl_and_node_flags): Declare prototype.
! 	* cgraphclones.cc (set_new_clone_decl_and_node_flags): Remove static
! 	qualifier.
! 	* common.opt (fipa-reorder-for-locality): New flag.
! 	(LTO_PARTITION_DEFAULT): Declare.
! 	(flto-partition): Change default to LTO_PARTITION_DFEAULT.
! 	* doc/invoke.texi: Document -fipa-reorder-for-locality.
! 	* flag-types.h (enum lto_locality_cloning_model): Declare.
! 	(lto_partitioning_model): Add LTO_PARTITION_DEFAULT.
! 	* lto-cgraph.cc (lto_set_symtab_encoder_in_partition): Add dumping of
! 	node and index.
! 	* opts.cc (validate_ipa_reorder_locality_lto_partition): Define.
! 	(finish_options): Handle LTO_PARTITION_DEFAULT.
! 	* params.opt (lto_locality_cloning_model): New enum.
! 	(lto-partition-locality-cloning): New param.
! 	(lto-partition-locality-frequency-cutoff): Likewise.
! 	(lto-partition-locality-size-cutoff): Likewise.
! 	(lto-max-locality-partition): Likewise.
! 	* passes.def: Register pass_ipa_locality_cloning.
! 	* timevar.def (TV_IPA_LC): New timevar.
! 	* tree-pass.h (make_pass_ipa_locality_cloning): Declare.
! 	* ipa-locality-cloning.cc: New file.
! 	* ipa-locality-cloning.h: New file.
  
! 2025-04-15  Martin Jambor  <mjambor@suse.cz>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119803
! 	* ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Move m_value adjustmed
! 	according to m_mask below the adjustment of the latter according to
! 	cap_mask.  Optimize the  calculation of cap_mask a bit.
! 	(ipcp_bits_lattice::meet_with): Optimize the calculation of cap_mask a
! 	bit.
  
! 2025-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	* ipa-cp.cc (ipcp_print_widest_int): Print values with all ones in
! 	bits 128+ with "0xf..f" prefix instead of "all ones folled by ".
! 	Simplify wide_int check for -1 or all ones above least significant
! 	128 bits.
  
! 2025-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/119801
! 	* sanitizer.def (BUILT_IN_TSAN_FUNC_EXIT): Use BT_FN_VOID rather
! 	than BT_FN_VOID_PTR.
! 	* tree-tailcall.cc: Include attribs.h and asan.h.
! 	(struct tailcall): Add has_tsan_func_exit member.
! 	(empty_eh_cleanup): Add eh_has_tsan_func_exit argument, set what
! 	it points to to 1 if there is exactly one __tsan_func_exit call
! 	and ignore that call otherwise.  Adjust recursive call.
! 	(find_tail_calls): Add RETRY_TSAN_FUNC_EXIT argument, pass it
! 	to recursive calls.  When seeing __tsan_func_exit call with
! 	RETRY_TSAN_FUNC_EXIT 0, set it to -1.  If RETRY_TSAN_FUNC_EXIT
! 	is 1, initially ignore __tsan_func_exit calls.  Adjust
! 	empty_eh_cleanup caller.  When looking through stmts after the call,
! 	ignore exactly one __tsan_func_exit call but remember it in
! 	t->has_tsan_func_exit.  Diagnose if EH cleanups didn't have
! 	__tsan_func_exit and normal path did or vice versa.
! 	(optimize_tail_call): Emit __tsan_func_exit before the tail call
! 	or tail recursion.
! 	(tree_optimize_tail_calls_1): Adjust find_tail_calls callers.  If
! 	find_tail_calls changes retry_tsan_func_exit to -1, set it to 1
! 	and call it again with otherwise the same arguments.
  
! 2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR ipa/113203
! 	* doc/extend.texi (Common Function Attributes): Explain how to
! 	use always_inline in programs that have multiple translation
! 	units, and that LTO inlining additionally needs optimization
! 	enabled.
  
! 2025-04-15  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/108134
! 	* doc/extend.texi: Remove documents from r11-344-g0fec3f62b9bfc0.
  
! 2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/42683
! 	* doc/invoke.texi (x86 Options): Clarify that -march=pentiumpro
! 	doesn't include MMX.
  
! 2025-04-14  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/118794
! 	* config/gcn/gcn.opt (-mfake-exceptions): Support.
! 	* config/nvptx/nvptx.opt (-mfake-exceptions): Likewise.
! 	* config/gcn/gcn.md (define_expand "exception_receiver"): Use it.
! 	* config/nvptx/nvptx.md (define_expand "exception_receiver"):
! 	Likewise.
! 	* config/gcn/mkoffload.cc (main): Set it.
! 	* config/nvptx/mkoffload.cc (main): Likewise.
! 	* config/nvptx/nvptx.cc (nvptx_assemble_integer)
! 	<in_section == exception_section>: Special handling for
! 	'SYMBOL_REF's.
! 	* except.cc (expand_dw2_landing_pad_for_region): Don't generate
! 	bogus code for (default)
! 	'#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM'.
  
! 2025-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119785
! 	* expmed.cc (init_expmed): Always pass QImode rather than mode to
! 	set_src_cost passed to set_zero_cost.
  
! 2025-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119718
! 	* tree-pretty-print.cc (dump_generic_node) <case CALL_EXPR>: Dump
! 	also CALL_EXPR_MUST_TAIL_CALL flag.
! 	* calls.cc (maybe_complain_about_tail_call): Emit error about
! 	CALL_EXPR_MUST_TAIL_CALL only after emitting dump message, not before
! 	it.
  
! 2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>
  
! 	* doc/install.texi: Add requirements for building gccrs.
  
! 2025-04-14  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/119784
! 	* config/i386/i386.cc (ix86_using_red_zone): Don't use red-zone
! 	with 32 GPRs and no caller-saved registers.
  
! 2025-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118097
! 	* ipa-cp.cc (ipa_get_jf_arith_result): Require res_operand for
! 	anything except NOP_EXPR or ADDR_EXPR, document it and remove the code
! 	trying to deduce it.
! 	(ipa_value_from_jfunc): Use the stored and streamed type of arithmetic
! 	pass-through functions.
! 	(ipa_agg_value_from_jfunc): Use the stored and streamed type of
! 	arithmetic pass-through functions, convert to the type used to store
! 	the value if necessary.
! 	(get_val_across_arith_op): New parameter op_type, pass it to
! 	ipa_get_jf_arith_result.
! 	(propagate_vals_across_arith_jfunc): New parameter op_type, pass it to
! 	get_val_across_arith_op.
! 	(propagate_vals_across_pass_through): Use the stored and streamed type
! 	of arithmetic pass-through functions.
! 	(propagate_aggregate_lattice): Likewise.
! 	(push_agg_values_for_index_from_edge): Use the stored and streamed
! 	type of arithmetic pass-through functions, convert to the type used to
! 	store the value if necessary.
  
! 2025-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118785
! 	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Use the stored
! 	and streamed type of arithmetic pass-through functions.
  
! 2025-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-cp.cc (ipcp_print_widest_int): Also add a truncated form of
! 	dumping of widest ints which only have zeros in the lowest 128 bits.
! 	Update the comment.
! 	(ipcp_bits_lattice::print): Also dump the mask using
! 	ipcp_print_widest_int.
! 	(ipcp_store_vr_results): Likewise.
  
! 2025-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/119318
! 	* ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Set all mask bits
! 	not covered by precision to one.
! 	(ipcp_bits_lattice::meet_with): Likewise.
! 	(propagate_bits_across_jump_function): Use the stored operation
! 	type to perform meet with other lattices.
  
! 2025-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118097
! 	PR ipa/118785
! 	PR ipa/119318
! 	* lto-streamer.h (lto_variably_modified_type_p): Declare.
! 	* ipa-prop.h (ipa_pass_through_data): New field op_type.
! 	(ipa_get_jf_pass_through_op_type): New function.
! 	* ipa-prop.cc: Include lto-streamer.h.
! 	(ipa_dump_jump_function): Dump also pass-through
! 	operation types, if any.  Dump pass-through operands only if not NULL.
! 	(ipa_set_jf_simple_pass_through): Set op_type accordingly.
! 	(compute_complex_assign_jump_func): Set op_type of arithmetic
! 	pass-through jump_functions.
! 	(analyze_agg_content_value): Update lhs when walking assighment
! 	copies.  Set op_type of aggregate arithmetic pass-through
! 	jump_functions.
! 	(update_jump_functions_after_inlining): Also transfer the operation
! 	type from the source arithmentic pass-through jump function to the
! 	destination jump function.
! 	(ipa_write_jump_function): Stream also the op_type when necessary.
! 	(ipa_read_jump_function): Likewise.
! 	(ipa_agg_pass_through_jf_equivalent_p): Also compare operation types.
! 	* lto-streamer-out.cc (lto_variably_modified_type_p): Make public.
  
! 2025-04-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119757
! 	* tree-vect-slp.cc (vect_build_slp_tree_1): Record and compare
! 	whether a stmt uses a maks.
  
! 2025-04-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119778
! 	* tree-inline.cc (copy_edges_for_bb): Mark calls that are
! 	source of abnormal edges as altering control-flow.
  
! 2025-04-14  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/119779
! 	* doc/gm2.texi (Interface to assembly language): Use eax
! 	rather than rax in both examples.
  
! 2025-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR driver/119727
! 	* configure.ac (HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE): New check.
! 	* gcc.cc: Include sys/personality.h if
! 	HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
! 	(try_generate_repro): Call
! 	personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE)
! 	if HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
  
! 2025-04-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.cc: Add z17 scheduler description.
! 	* config/s390/s390.h: Ditto.
! 	* config/s390/s390.md: Ditto.
! 	* config/s390/9175.md: New file.
  
! 2025-04-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* common/config/s390/s390-common.cc: Rename arch15 to z17.
! 	* config.gcc: Add z17.
! 	* config/s390/driver-native.cc: Detect z17 machine.
! 	* config/s390/s390-builtins.def (B_VXE3): Rename arch15 to z17.
! 	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin): Ditto.
! 	* config/s390/s390-opts.h (enum processor_type): Ditto.
! 	* config/s390/s390.cc: Ditto.
! 	* config/s390/s390.h: Ditto.
! 	* config/s390/s390.md: Ditto.
! 	* config/s390/s390.opt: Add z17.
! 	* doc/invoke.texi: Ditto.
  
! 2025-04-12  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/97585
! 	* doc/invoke.texi (x86 Options): Document list of extensions
! 	supported by -march=x86_64, according to the declaration of
! 	PTA_X86_64_BASELINE in config/i386/i386.h.
  
! 2025-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR driver/119727
! 	* gcc.cc (files_equal_p): Rewritten using fopen/fgets/fclose instead
! 	of open/fstat/read/close.  At the start of lines, ignore lowercase
! 	hexadecimal addresses followed by space.
  
! 2025-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119722
! 	* gimple-lower-bitint.h (build_bitint_stmt_ssa_conflicts): Add
! 	CLEAR argument.
! 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Add
! 	CLEAR argument.  Call clear on gimple_assign_copy_p rhs1 if lhs
! 	is large/huge bitint unless lhs is not in names.
! 	* tree-ssa-coalesce.cc (build_ssa_conflict_graph): Adjust
! 	build_bitint_stmt_ssa_conflicts caller.  Move gimple_assign_copy_p
! 	handling to after the build_bitint_stmt_ssa_conflicts call.
  
! 2025-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119718
! 	* tree-tailcall.cc (maybe_error_musttail): Dump the GIMPLE at the
! 	end of the Cannot tail-call line rather than on the line before it.
! 	* calls.cc (maybe_complain_about_tail_call): Dump the GENERIC
! 	at the end of the ;; Cannot tail-call line rather than on the
! 	line before it.
  
! 2025-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119718
! 	* tree-tailcall.cc (maybe_error_musttail): Only dump into dump_file
! 	if dump_flags & TDF_DETAILS.  Use "Cannot tail-call: " prefix instead
! 	of "Cannot convert: ".
! 	(find_tail_calls, tree_optimize_tail_calls_1): Formatting fixes
! 	for maybe_error_musttail calls.
! 	* calls.cc (maybe_complain_about_tail_call): Emit also a message
! 	into dump_file when dump_flags & TDF_DETAILS for CALL_EXPR_TAILCALL
! 	calls.
! 	(initialize_argument_information): Formatting fix for
! 	maybe_complain_about_tail_call calls.
! 	(can_implement_as_sibling_call_p, expand_call): Likewise.
  
! 2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/106618
! 	* doc/invoke.texi (Option Summary): Remove -fargs-in-order, add
! 	-fstrong-eval-order.
! 	(C++ Dialect Options): Explicitly document that -fstrong-eval-order
! 	takes an optional argument and what the choices are.  Generalize
! 	references to C++17.
  
! 2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/105548
! 	* doc/invoke.texi (Optimize Options): Delete misleading sentence
! 	about conversions.
  
! 2025-04-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119707
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Only use
! 	m_data[save_data_cnt] instead of m_data[save_data_cnt + 1] if
! 	idx is odd and equal to low + 1.  Remember tree_to_uhwi (idx) in
! 	a temporary instead of calling the function multiple times.
  
! 2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR tree-optimization/87909
! 	* common.opt.urls: Regenerate.
! 	* doc/invoke.texi (Option Summary): Add -ftree-cselim.
! 	(Optimize Options): Likewise.
  
! 2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/14708
! 	* doc/invoke.texi (Optimize Options): List -fexcess-precision
! 	before -ffloat-store, moving some background discussion to the
! 	former from the latter.  Recommend using -fexcess-precision=standard
! 	instead of -ffloat-store.
  
! 2025-04-10  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h (LINK_SPEC): Add support for
! 	-static-libgcobol.
  
! 2025-04-10  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/119706
! 	* gimple-expr.cc (is_gimple_mem_ref_addr): Also allow
! 	POLY_INT_CST.
  
! 2025-04-10  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/119399
! 	* tree-data-ref.cc (create_waw_or_war_checks): Use a MINUS_EXPR
! 	on two converted pointers, rather than converting a POINTER_DIFF_EXPR
! 	on the pointers.
  
! 2025-04-10  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/multilib-generator: Remove the compact code model
! 	and check large code model for RV32.
  
! 2025-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* pretty-print.cc (pretty_printer::format): Use %.Ns instead of
! 	%Ns in function comment.
  
! 2025-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119664
! 	* config/h8300/jumpcall.md (bit test and jump define_insn_and_split):
! 	Use HSI iterator rather than QHSI.
  
! 2025-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/riscv/riscv-vector-builtins.cc (verify_type_context):
! 	Diagnose RVV types for a given OpenMP context.
  
! 2025-04-09  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/119689
! 	PR rtl-optimization/115568
! 	* lra-remat.cc (create_cands): Use prev_nonnote_nondebug_insn
! 	to check whether insn2 is directly before insn.
  
! 2025-04-09  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR middle-end/116595
! 	* expr.cc (categorize_ctor_elements_1): Use
! 	constant_lower_bound.
  
! 2025-04-09  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/gen-evolution.awk: remove
! 	usage of "asort".
! 	* config/loongarch/genopts/genstr.sh: replace sed with awk.
  
! 2025-04-08  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/90468
! 	* doc/invoke.texi (Warning Options): Clean up text describing
! 	-Wno-xxx.
  
! 2025-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119672
! 	* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
! 	For POPCOUNT == 0 or != 0 optimizations use
! 	CONST0_RTX (GET_MODE (XEXP (op0, 0))) rather than const0_rtx.
  
! 2025-04-08  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/119662
! 	* gimplify.cc (modify_call_for_omp_dispatch): Fix GOMP_interop
! 	arg passing; add location info to function calls.
  
! 2025-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119678
! 	* config/riscv/freebsd.h (LINK_SPEC): Use FBSD_LINK_PG_NOTE rather
! 	than non-existing FBSD_LINK_PG_NOTES.
  
! 2025-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
! 	[!ACCEL_COMPILER]: Don't define label 'emit_ptx_alias'.
  
! 2025-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119594
! 	* cse.cc (count_reg_usage): Count even x == dest regs if they have
! 	non-zero counts already and incr is positive.
  
! 2025-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR lto/119625
! 	* lto-opts.cc (lto_write_options): Mask of CF_SET from
! 	global_options.x_flag_cf_protection.
  
! 2025-04-08  Tejas Belagod  <tejas.belagod@arm.com>
! 	    Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* target.h (type_context_kind): Add new context kinds for target clauses.
! 	(omp_type_context): Query if the context is of OMP kind.
! 	* config/aarch64/aarch64-sve-builtins.cc (verify_type_context): Diagnose
! 	SVE types for a given OpenMP context.
! 	(omp_type_context): New.
! 	* gimplify.cc (omp_notice_variable): Diagnose implicitly-mapped SVE
! 	objects in OpenMP regions.
! 	(gimplify_scan_omp_clauses): Diagnose SVE types for various target
! 	clauses.
  
! 2025-04-08  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	* tree.h (strip_pointer_types): New.
  
! 2025-04-08  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR middle-end/101018
! 	* poly-int.h (can_and_p): New function.
! 	* fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs
! 	involving POLY_INT_CSTs.
! 	* gimplify.cc (omp_notice_variable): Use poly_int_tree_p instead
! 	of INTEGER_CST when checking for constant-sized omp data.
! 	(gimplify_adjust_omp_clauses_1): Likewise.
! 	(gimplify_adjust_omp_clauses): Likewise.
! 	* omp-low.cc (scan_sharing_clauses): Likewise.
  
! 2025-04-08  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Add PTA_AVX10_1_256.
  
! 2025-04-08  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/vector.md: Disable vsext/vzext for XTheadVector.
  
! 2025-04-07  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/113257
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple-a12,
! 	Apple-M1, Apple-M2, Apple-M3 with expanded names to allow for the
! 	LITTLE.big versions.
! 	* config/aarch64/aarch64-tune.md: Regenerate.
! 	* doc/invoke.texi: Add apple-m1,2 and 3 cores to the ones listed
! 	for arch and tune selections.
  
! 2025-04-07  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.opt (-mfake-ptx-alloca): Update.
  
! 2025-04-07  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/118924
! 	* tree-sra.cc (create_total_scalarization_access): Set
! 	grp_same_access_path flag to zero.
  
! 2025-04-07  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/118924
! 	* tree-ssa-alias-compare.h (types_equal_for_same_type_for_tbaa_p):
! 	Declare.
! 	* tree-ssa-alias.cc: Include ipa-utils.h.
! 	(types_equal_for_same_type_for_tbaa_p): New public overloaded variant.
! 	* tree-sra.cc: Include tree-ssa-alias-compare.h.
! 	(create_access): Initialzie grp_same_access_path to true.
! 	(build_accesses_from_assign): Detect tbaa hazards and clear
! 	grp_same_access_path fields of involved accesses when they occur.
! 	(sort_and_splice_var_accesses): Take previous values of
! 	grp_same_access_path into account.
  
! 2025-04-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119640
! 	* tree-vect-stmts.cc (vectorizable_shift): Always insert code
! 	for one of our SLP operands before the code for the vector
! 	shift itself.
  
! 2025-04-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119614
! 	* tree-tailcall.cc (find_tail_calls): Remember edges which have been
! 	walked through if !ass_var.  Perform IPA-VRP workaround even when
! 	ret_var is not TREE_CONSTANT, in that case check in a loop if it is
! 	a PHI result and in that case look at the PHI argument from
! 	corresponding edge in the edge vector.
  
! 2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR testsuite/116398
! 	* params.opt (-param=max-combine-search-insns=): New param.
! 	* doc/invoke.texi: Document it.
! 	* combine.cc (insn_link::insn_count): New field.
! 	(alloc_insn_link): Initialize it.
! 	(distribute_links): Add a limit parameter.
! 	(try_combine): Use the new param to limit distribute_links
! 	when only i3 has changed.
  
! 2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR testsuite/116398
! 	* combine.cc (distribute_links): Take an optional start point.
! 	(try_combine): If only i3 has changed, only distribute i3's links,
! 	not i2's.  Start the search for the new use from i3 rather than
! 	from the definition instruction.  Likewise start the search for
! 	the new use from i2 when distributing i2's links.
  
! 2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR testsuite/116398
! 	* combine.cc (try_combine): Shortcut the split_i2i3 handling if
! 	i2 is unchanged.
  
! 2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR testsuite/116398
! 	* combine.cc (try_combine): Reallow 2->2 combinations.  Detect when
! 	only i3 has changed and restart from i3 in that case.
  
! 2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* simplify-rtx.cc (simplify_const_relational_operation): Generalize
! 	the constant checks in the fold-via-minus path to match the
! 	INTEGRAL_MODE_P condition.
  
! 2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Boolean Type): Further clarify support for
! 	_Bool in C23 and C++.
  
! 2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/78874
! 	* doc/invoke.texi (Warning Options): Fix description of
! 	-Wno-aggressive-loop-optimizations to reflect that this turns
! 	off the warning, and the default is for it to be enabled.
  
! 2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/81831
! 	* doc/invoke.texi (Option Summary): Add -Wno-psabi.
! 	(Warning Options): Document -Wpsabi separately from -Wabi.
! 	Note it's enabled by default, not just implied by -Wabi.
! 	Replace the detailed example for a GCC 4.4 change for x86
! 	(which is unlikely to be very interesting nowadays) with
! 	just a list of all targets that presently diagnose these
! 	warnings.
! 	(RS/6000 and PowerPC Options): Add cross-references for
! 	-Wno-psabi.
  
! 2025-04-05  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/112589
! 	* common.opt (-fcf-protection): Add documentation string.
! 	* doc/invoke.texi (Option Summary): Add entry for -fcf-protection
! 	without argument.
! 	(Instrumentation Options): Tidy the -fcf-protection entry and
! 	and add documention for the form without an argument.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR lto/119625
! 	* lto-opts.cc (lto_write_options): If neither flag_pic nor
! 	flag_pie are set, check first for flag_pie and only later
! 	for flag_pic rather than the other way around, use a temporary
! 	variable.  If flag_cf_protection is not set, don't append anything
! 	if flag_cf_protection is none of CF_{NONE,FULL,BRANCH,RETURN} and
! 	use a temporary variable.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR gcov-profile/119618
! 	* profile.cc (branch_prob): Only check for musttail calls if
! 	cfun->has_musttail.  Use gsi_last_nondebug_bb instead of gsi_last_bb.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119616
! 	* tree-tailcall.cc (suitable_for_tail_call_opt_p): Move checking
! 	for addressable parameters from here ...
! 	(find_tail_calls): ... here.  If cfun->has_musttail, don't clear
! 	opt_tailcalls for it, instead set a local flag and punt if we can't
! 	tail recurse optimize it.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/119613
! 	* cfgrtl.cc (purge_dead_edges): Remove REG_EH_REGION notes from
! 	tail calls.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/115910
! 	* rtlanal.cc (pattern_cost): Return at least COSTS_N_INSNS (1)
! 	rather than just COSTS_N_INTNS (1) for cost <= 0.
! 	* config/i386/i386.cc (ix86_rtx_costs): Set *total to 1 for
! 	TARGET_64BIT x86_64_zext_immediate_operand constants.
  
! 2025-04-04  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR ipa/119599
! 	* tree-cfg.cc (pass_warn_function_return::execute): Turn return statements always
! 	into __builtin_unreachable calls.
  
! 2025-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119614
! 	* tree-tailcall.cc (find_tail_calls): Handle also pointer types in the
! 	IPA-VRP workaround.
  
! 2025-04-03  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/119573
! 	* config/nvptx/nvptx.cc (nvptx_encode_section_info): Don't set
! 	'DATA_AREA_CONST' for 'TREE_CONSTANT', or 'TREE_READONLY'.
! 	(nvptx_asm_declare_constant_name): Use '.global' instead of
! 	'.const'.
  
! 2025-04-03  Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR target/119308
! 	* config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue):
! 	Handle GCC COBOL for the tbtab lang field.
  
! 2025-04-03  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Statement Attributes): Copy-edit the musttail
! 	attribute documentation and correct the comment in the last
! 	example.
  
! 2025-04-03  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* config/i386/x86-tune-costs.h (ix86_size_cost): Fix sizes of move
! 	instructions
  
! 2025-04-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR cobol/119242
! 	* fold-const.h (native_encode_wide_int): Declare.
! 	* fold-const.cc (native_encode_wide_int): New function.
! 	(native_encode_int): Use it.
  
! 2025-04-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/genopts/gen-evolution.awk: Avoid using gensub
! 	that FreeBSD awk lacks.
  
! 2025-04-03  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	PR target/119539
! 	* config/i386/i386.md (*<insn><mode>3_mask): Emit NF variant of
! 	rotate when APX_NF enabled, and use force_lowpart_subreg.
! 	(*<insn><mode>3_mask_1): Likewise.
  
! 2025-04-03  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/101440
! 	* doc/extend.texi (Common Function Attributes): Clean up some
! 	confusing language in the description of the "access" attribute.
  
! 2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    GUO Yixuan  <culu.gyx@gmail.com>
  
! 	PR driver/58973
! 	* common.opt (Werror, Werror=): Use less awkward wording in
! 	description.
! 	(pedantic-errors): Likewise.
! 	* doc/invoke.texi (Warning Options): Likewise for -Werror and
! 	-Werror= here.
  
! 2025-04-02  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/119572
! 	* config/riscv/autovec.md: Mask broadcast value.
  
! 2025-04-02  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/bitmanip.md: The optimization can only be applied if
! 	the high bit of operands[3] is set to 1.
  
! 2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/114957
! 	PR c/78008
! 	PR c++/60972
! 	* doc/extend.texi (Structure-Layout Pragmas):  Add @cindex
! 	entries	and reformat the pragma descriptions to match the markup
! 	used for other pragmas.  Document what #pragma pack(0) does.
! 	Add cross-references to similar attributes.
  
! 2025-04-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119491
! 	* tree-tailcall.cc (single_non_eh_succ_edge): New function.
! 	(independent_of_stmt_p): Use single_non_eh_succ_edge (bb)->dest
! 	instead of single_succ (bb).
! 	(empty_eh_cleanup): New function.
! 	(find_tail_calls): Diagnose throwing of exceptions which do not
! 	propagate only if there are no EDGE_EH successor edges.  If there are
! 	and the call is musttail, use empty_eh_cleanup to find if the cleanup
! 	is not empty.  If not or the call is not musttail, use different
! 	diagnostics.  Set is_noreturn even if there are successor edges.  Use
! 	single_non_eh_succ_edge (abb) instead of single_succ_edge (abb).  Punt
! 	on internal noreturn calls.
! 	(decrease_profile): Don't assert 0 or 1 successor edges.
! 	(eliminate_tail_call): Use
! 	single_non_eh_succ_edge (gsi_bb (t->call_gsi)) instead of
! 	single_succ_edge (gsi_bb (t->call_gsi)).
! 	(tree_optimize_tail_calls_1): Also look into basic blocks with
! 	single succ edge which is EDGE_EH for noreturn musttail calls.
  
! 2025-04-02  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119586
! 	* tree-vect-stmts.cc (vectorizable_load): Assume we got
! 	alignment analysis for VMAT_STRIDED_SLP wrong.
! 	(vectorizable_store): Likewise.
  
! 2025-04-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/extend.texi (musttail statement attribute): Hint how
! 	to avoid -Wmaybe-musttail-local-addr warnings.
  
! 2025-04-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119376
! 	* common.opt (Wmusttail-local-addr, Wmaybe-musttail-local-addr): New.
! 	* tree-tailcall.cc (suitable_for_tail_call_opt_p): Don't fail for
! 	TREE_ADDRESSABLE PARM_DECLs for musttail calls if diag_musttail.
! 	Emit -Wmusttail-local-addr warnings.
! 	(maybe_error_musttail): Use gimple_location instead of directly
! 	accessing location member.
! 	(find_tail_calls): For musttail calls if diag_musttail, don't fail
! 	if address of local could escape to the call, instead emit
! 	-Wmaybe-musttail-local-addr warnings.  Emit
! 	-Wmaybe-musttail-local-addr warnings also for address taken
! 	parameters.
! 	* common.opt.urls: Regenerate.
! 	* doc/extend.texi (musttail statement attribute): Clarify local
! 	variables without non-trivial destruction are considered out of scope
! 	before the tail call instruction.
! 	* doc/invoke.texi (-Wno-musttail-local-addr,
! 	-Wmaybe-musttail-local-addr): Document.
  
! 2025-04-02  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR middle-end/119482
! 	* bitmap.cc (bitmap_set_bit): Write back value unconditionally
  
! 2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/118982
! 	* doc/extend.texi (Common Function Attributes): For the
! 	constructor/destructory attribute, be more explicit about the
! 	relationship between the constructor attribute and
! 	the C++ init_priority attribute, and add a cross-reference.
! 	Also document that most targets support this.
! 	(C++ Attributes): Similarly for the init_priority attribute.
  
! 2025-04-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/118118
! 	* doc/extend.texi (Boolean Type): New section.
  
! 2025-04-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/117689
! 	* doc/extend.texi (Incomplete Enums): Rename to....
! 	(Enum Extensions): This.  Document support for specifying the
! 	underlying type of an enum as an extension in all earlier C
! 	and C++ standards.  Document that a forward declaration with
! 	underlying type is not an incomplete type, and which dialects
! 	GCC supports that in.
  
! 2025-04-01  Tom Tromey  <tromey@adacore.com>
  
! 	* dwarf2out.cc (modified_type_die): Use mod_scope for
! 	ranged types, base types, and array types.
  
! 2025-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119493
! 	* tree-tailcall.cc (find_tail_calls): Don't punt on tail recusion
! 	if some arguments don't have is_gimple_reg_type, only punt if they
! 	have non-POD types, or volatile, or addressable or (for now) it is
! 	not a musttail call.  Set tailr_arg_needs_copy in those cases too.
! 	(eliminate_tail_call): Copy call arguments to params if they don't
! 	have is_gimple_reg_type, use temporaries if the argument is used
! 	later.
! 	(tree_optimize_tail_calls_1): Skip !is_gimple_reg_type
! 	tailr_arg_needs_copy parameters.  Formatting fix.
  
! 2025-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119291
! 	* combine.cc (try_combine): For splitting of PARALLEL with
! 	2 independent SETs into i2 and i3 sets check reg_used_between_p
! 	of the SET_DESTs rather than just modified_between_p.
  
! 2025-04-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119534
! 	* tree-vect-stmts.cc (get_load_store_type): Reject
! 	VECTOR_BOOLEAN_TYPE_P offset vector type for emulated gathers.
  
! 2025-04-01  Martin Uecker  <uecker@tugraz.at>
  
! 	PR c/119173
! 	* doc/invoke.texi (Warning Options): Move to general options.
  
! 2025-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR gcov-profile/119535
! 	* profile.cc (branch_prob): Ignore any edges from bbs ending with
! 	musttail call, rather than only EDGE_FAKE edges from those to EXIT.
  
! 2025-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119493
! 	* tree-tailcall.cc (tree_optimize_tail_calls_1): Ignore tail recursion
! 	candidates which need accumulators if there is at least one musttail
! 	non-recursive call.
  
! 2025-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/119537
! 	* gimplify.cc (find_used_user_labels): New function.
! 	(gimplify_call_expr): Don't remove complex assume expression at -O0
! 	if it defines any user labels.
! 	* gimple-low.cc: Include diagnostic-core.h.
! 	(assume_labels): New variable.
! 	(diagnose_assume_labels): New function.
! 	(lower_function_body): Call it via walk_gimple_seq if assume_labels
! 	is non-NULL, then BITMAP_FREE assume_labels.
! 	(find_assumption_locals_r): Record in assume_labels uids of user
! 	labels defined in assume attribute expressions.
  
! 2025-04-01  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/119369
! 	* config/gcn/gcn-protos.h (gcn_asm_weaken_decl): Declare.
! 	* config/gcn/gcn.cc (gcn_asm_weaken_decl): New.
! 	* config/gcn/gcn-hsa.h (ASM_WEAKEN_DECL): '#define' to this.
  
! 2025-04-01  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119549
! 	* common/config/i386/i386-common.cc (ix86_handle_option):
! 	Assert that both OPT_msse4 and OPT_mno_sse4 are never unset.
! 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
! 	Process negated OPT_msse4 as OPT_mno_sse4.
  
! 2025-04-01  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/119559
! 	* gimplify.cc (modify_call_for_omp_dispatch): Reorder checks to avoid
! 	asserts and bogus diagnostic.
  
! 2025-04-01  Hu, Lin1  <lin1.hu@intel.com>
! 	    Hongyu Wang  <hongyu.wang@intel.com>
  
! 	PR target/119473
! 	* config/i386/sse.md
! 	(vaesdec_<mode>): Set attr "isa" as "avx,vaes_avx512vl", "type" as
! 	"sselog1", "mode" as "TI".
! 	(vaesdeclast_<mode>): Ditto.
! 	(vaesenc_<mode>): Ditto.
! 	(vaesenclast_<mode>): Ditto.
  
! 2025-04-01  Monk Chiang  <monk.chiang@sifive.com>
! 	    Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-v.cc: Add restrict for insert LMUL.
! 	* config/riscv/riscv-vector-builtins-types.def:
! 	Use RVV_REQUIRE_ELEN_64 to check LMUL number.
! 	* config/riscv/riscv-vector-switch.def: Likewise.
! 	* config/riscv/vector-iterators.md: Check TARGET_VECTOR_ELEN_64
! 	rather than "TARGET_MIN_VLEN > 32" for all iterator.
  
! 2025-04-01  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* doc/invoke.texi: Corrected the position of '-mtls-dialect=opt'
! 	option.
  
! 2025-03-31  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR gcov-profile/119553
! 	* path-coverage.cc (find_paths): Return path count, don't
! 	write to gcno, and rename to ...
! 	(instrument_prime_paths): ... this.
! 	* profile.cc (branch_prob): Write path counts to gcno.
  
! 2025-03-31  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/116960
! 	PR c++/119303
! 	* diagnostic.cc (diagnostic_context::report_diagnostic): Check for
! 	non-zero m_lock later, after checking diagnostic_enabled.
  
! 2025-03-31  Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def (SME): Remove SVE2 as
! 	prerequisite and add in FCMA and F16FML.
! 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
! 	Diagnose use of SME without SVE2 and implicitly enable SVE2 when
! 	enabling SME after streaming mode diagnosis.
! 	* doc/invoke.texi (sme): Document that this can only be used with the
! 	sve2 extension.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119532
! 	* tree-tailcall.cc (process_assignment): FAIL for fixed-point
! 	typed functions.
  
! 2025-03-31  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/119541
! 	* gimplify.cc (modify_call_for_omp_dispatch): Limit interop claues
! 	processing by the number of append_args arguments.
  
! 2025-03-31  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR middle-end/119442
! 	* expr.cc (store_constructor): Also allow element modes explicitly
! 	accepted by target vec_duplicate pattern.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/sse.md (*vmov<mode>_constm1_pternlog_false_dep):
! 	Add mode attribute.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_mov_fp_load,
! 	znver5_sse_mov_fp_load): Also match ssemov2.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_log_evex_store,
! 	znver5_sse_log_evex_store): New reservations.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_icvt): Use sseicvt.
! 	(znver4_sse_icvt_store): Likewise.
! 	(znver5_sse_icvt_store): Likewise.
! 	(znver4_sse_icvt2): New.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_div_pd,
! 	znver4_sse_div_pd_load, znver5_sse_div_pd_load): Handle DFmode.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_cmp_avx128,
! 	znver5_sse_cmp_avx128): Handle TImode.
! 	(znver4_sse_cmp_avx256, znver5_sse_cmp_avx256): Handle OImode.
! 	(znver4_sse_cmp_avx512, znver5_sse_cmp_avx512): Handle XImode.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_test): Drop test of
! 	prefix_extra attribute.
  
! 2025-03-31  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_log1): Rename to
! 	znver4_sse_log1_store.
! 	(znver5_sse_log1): Rename to znver5_sse_log1_store.
! 	(znver4_sse_log1): New memory-less variant.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (New/Delete Builtins): Cleanup up the text and
! 	explicitly list the builtins being documented.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Numeric Builtins): Move Integer Overflow Builtins
! 	section here, as a subsection.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Atomic Memory Access): New section.
! 	(__sync Builtins): Make it a subsection of the above.
! 	(Atomic Memory Access): Likewise.
! 	(x86 specific memory model extensions for transactional memory):
! 	Delete this section, incorporating the text into the discussion
! 	of __atomic builtins.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Built-in Functions): Incorporate some text
! 	formerly in "Other Builtins" into the introduction.  Adjust
! 	menu for new sections.
! 	(Library Builtins): New section, split from "Other Builtins".
! 	(Numeric Builtins): Likewise.
! 	(Stack Allocation): Likewise.
! 	(Constructing Calls): Move __builtin_call_with_static_chain here.
! 	(Object Size Checking): Minor copy-editing.
! 	(Other Builtins): Move text to new sections listed above.  Delete
! 	duplicate docs for object-size checking builtins.
! 	* doc/invoke.texi (C dialect options): Update @xref for -fno-builtin.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (C Extensions): Move menu items for
! 	builtin-related sections to...
! 	(Built-in Functions): New chapter.
! 	* doc/gcc.texi (Introduction): Add menu entry for new chapter.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Attributes): New section.
! 	(Function Attributes): Make it a subsection of the new section.
! 	(Variable Attributes): Likewise.
! 	(Type Attributes): Likewise.
! 	(Label Attributes): Likewise.
! 	(Enumerator Attributes): Likewise.
! 	(Attribute Syntax): Likewise.
  
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Function Attributes): Merge text from "Target
! 	Format Checks" into the main discussion of the format and
! 	format_arg attributes.
! 	(Target Format Checks): Delete section.
  
! 2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	PR target/117759
! 	* config/alpha/alpha-protos.h
! 	(alpha_expand_unaligned_store_safe_partial): New prototype.
! 	* config/alpha/alpha.cc (alpha_expand_movmisalign)
! 	(alpha_expand_block_move, alpha_expand_block_clear): Handle
! 	TARGET_SAFE_PARTIAL.
! 	(alpha_expand_unaligned_store_safe_partial)
! 	(alpha_expand_unaligned_store_words_safe_partial)
! 	(alpha_expand_clear_safe_partial_nobwx): New functions.
! 	* config/alpha/alpha.md (insvmisaligndi): Handle
! 	TARGET_SAFE_PARTIAL.
! 	* config/alpha/alpha.opt (msafe-partial): New option.
! 	* config/alpha/alpha.opt.urls: Regenerate.
! 	* doc/invoke.texi (Option Summary, DEC Alpha Options): Document
! 	the new option.
  
! 2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	PR target/117759
! 	* config/alpha/alpha-modes.def (OI): New integer mode.
! 	* config/alpha/alpha-protos.h (alpha_expand_mov_safe_bwa): New
! 	prototype.
! 	* config/alpha/alpha.cc (alpha_expand_mov_safe_bwa): New
  	function.
! 	(alpha_secondary_reload): Handle TARGET_SAFE_BWA.
! 	* config/alpha/alpha.md (aligned_store_safe_bwa)
! 	(unaligned_store<mode>_safe_bwa, reload_out<mode>_safe_bwa)
! 	(reload_out<mode>_unaligned_safe_bwa): New expanders.
! 	(mov<mode>, movcqi, reload_out<mode>_aligned): Handle
! 	TARGET_SAFE_BWA.
! 	(reload_out<mode>): Guard against TARGET_SAFE_BWA.
! 	* config/alpha/alpha.opt (msafe-bwa): New option.
! 	* config/alpha/alpha.opt.urls: Regenerate.
! 	* doc/invoke.texi (Option Summary, DEC Alpha Options): Document
! 	the new option.
  
! 2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* function.h (struct function): Add
! 	`split_basic_blocks_after_reload' member.
! 	* lra.cc (lra): Handle it.
! 	* reload1.cc (reload): Likewise.
  
! 2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha-protos.h (alpha_emit_unlikely_jump): New
! 	prototype.
! 	* config/alpha/alpha.cc (emit_unlikely_jump): Rename to...
! 	(alpha_emit_unlikely_jump): ... this.  Return the insn emitted.
! 	(alpha_split_atomic_op, alpha_split_compare_and_swap)
! 	(alpha_split_compare_and_swap_12, alpha_split_atomic_exchange)
! 	(alpha_split_atomic_exchange_12): Update call sites accordingly.
  
! 2025-03-30  LIU Hao  <lh_mouse@126.com>
  
! 	* config/mingw/winnt.cc (mingw_pe_file_end): Add `.p2align`.
  
! 2025-03-29  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR cobol/119283
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
! 	* configure.ac: Check for host memrchr.
  
! 2025-03-29  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* doc/invoke.texi: Modify the description of '-mld-seq-sa'.
  
! 2025-03-29  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-def.cc
! 	(la464_align): Add settings for labels.
! 	(la664_align): Likewise.
! 	* config/loongarch/loongarch-opts.cc
! 	(loongarch_target_option_override): Likewise.
! 	* config/loongarch/loongarch-tune.h
! 	(struct loongarch_align): Implement the function `label_`.
  
! 2025-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	* common.opt.urls: Regenerate.
  
! 2025-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	* Makefile.in (gcc.srcextra): Use sed to turn .../gcc/gengtype-lex.l
! 	in #line directives into just gengtype-lex.l.
  
! 2025-03-28  Andrew MacLeod  <amacleod@redhat.com>
  
! 	* range-op.cc (operator_mult::op1_range): If the LHS does not
! 	contain zero, return non-zero.
  
! 2025-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119483
! 	* tree-tailcall.cc (find_tail_calls): Handle noreturn musttail
! 	calls.
! 	(eliminate_tail_call): Likewise.
! 	(tree_optimize_tail_calls_1): If cfun->has_musttail and
! 	diag_musttail, handle also basic blocks with no successors
! 	with noreturn musttail calls.
! 	* calls.cc (can_implement_as_sibling_call_p): Allow ECF_NORETURN
! 	calls if they are musttail calls.
  
! 2025-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119484
! 	* ipa-sra.cc (isra_analyze_call): Don't set m_return_ignored if
! 	gimple_call_must_tail_p even if it doesn't have lhs.
  
! 2025-03-28  Richard Biener  <rguenther@suse.de>
  
! 	* fold-const.h (native_encode_real): Export.
! 	* fold-const.cc (native_encode_real): Change API to take
! 	mode and REAL_VALUE_TYPE.
! 	(native_encode_expr): Adjust.
  
! 2025-03-27  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.cc (ix86_redzone_clobber): Use integer, not rtx
! 	as the third argument of plus_constant.
  
! 2025-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_insn_both, znver5_insn_both):
! 	New reservation for ALU ops with load and store.
  
! 2025-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_add, znver4_sse_add_load,
! 	znver5_sse_add_load, znver4_sse_add1, znver4_sse_add1_load,
! 	znver5_sse_add1_load, znver4_sse_mul, znver4_sse_mul_load,
! 	znver5_sse_mul_load, znver4_sse_cvt, znver4_sse_cvt_load,
! 	znver5_sse_cvt_load, znver4_sse_shuf, znver5_sse_shuf,
! 	znver4_sse_shuf_load, znver5_sse_shuf_load,
! 	znver4_sse_cmp_avx128, znver5_sse_cmp_avx128,
! 	znver4_sse_cmp_avx128_load, znver5_sse_cmp_avx128_load):
! 	Also handle DFmode.
! 	(znver4_sse_muladd_load, znver5_sse_muladd_load): Use
! 	ssemuladd type.
  
! 2025-03-27  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* gimplify.cc (modify_call_for_omp_dispatch): Remove sorry.
  
! 2025-03-27  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/neon.md (<fmaxmin><mode>3): Move pattern from here...
! 	* config/arm/vec-common.md (<fmaxmin><mode>3): ... to here.  Convert
! 	to define_expand and disable the pattern when denormal values might
! 	get truncated to zero.  Iterate on VF to add V4HF and V8HF variants.
  
! 2025-03-27  Hu, Lin1  <lin1.hu@intel.com>
  
! 	PR target/119425
! 	* config/i386/sse.md:
! 	(vec_set<mode>_0): Set the alternative with constraint "jm"'s
! 	attribute "addr" to "gpr16".
! 	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>):
! 	Ditto.
! 	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
! 	(avx2_pblendd<mode>): Ditto.
! 	(aesenc): Ditto.
! 	(aesenclast): Ditto.
! 	(aesdec): Ditto.
! 	(aesdeclast): Ditto.
! 	(vaesdec_<mode>): Ditto.
! 	(vaesdeclast_<mode>): Ditto.
! 	(vaesenc_<mode>):: Ditto.
! 	(vaesenclast_<mode>):: Ditto.
! 	(aes<aesklvariant>u8): Ditto.
! 	(*aes<aeswideklvariant>u8): Ditto.
  
! 2025-03-27  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/119408
! 	* config/loongarch/loongarch.cc
! 	(loongarch_c_mode_for_suffix): New.
! 	(TARGET_C_MODE_FOR_SUFFIX): Define.
  
! 2025-03-26  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* builtins.cc (expand_builtin_fork_or_exec): Call
! 	coverage_instrumentation_p.
! 	* ipa-inline.cc (can_early_inline_edge_p): Likewise.
! 	* passes.cc (finish_optimization_passes): Likewise.
! 	* profile.cc (coverage_instrumentation_p): New function.
! 	* profile.h (coverage_instrumentation_p): New declaration.
! 	* tree-profile.cc (tree_profiling): Call
! 	coverage_instrumentation_p.
! 	(pass_ipa_tree_profile::gate): Likewise.
! 	* value-prof.h (coverage_instrumentation_p): New declaration.
  
! 2025-03-26  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* Makefile.in (OBJS): Add prime-paths.o, path-coverage.o.
! 	(GTFILES): Add prime-paths.cc, path-coverage.cc
! 	(GCOV_OBJS): Add graphds.o, prime-paths.o, bitmap.o
! 	* builtins.cc (expand_builtin_fork_or_exec): Check
! 	path_coverage_flag.
! 	* collect2.cc (main): Add -fno-path-coverage to OBSTACK.
! 	* common.opt: Add new options -fpath-coverage,
! 	-fpath-coverage-limit, -Wcoverage-too-many-paths
! 	* doc/gcov.texi: Add --prime-paths, --prime-paths-lines,
! 	--prime-paths-source documentation.
! 	* doc/invoke.texi: Add -fpath-coverage, -fpath-coverage-limit,
! 	-Wcoverage-too-many-paths documentation.
! 	* gcc.cc: Link gcov on -fpath-coverage.
! 	* gcov-counter.def (GCOV_COUNTER_PATHS): New.
! 	* gcov-io.h (GCOV_TAG_PATHS): New.
! 	(GCOV_TAG_PATHS_LENGTH): New.
! 	(GCOV_TAG_PATHS_NUM): New.
! 	* gcov.cc (class path_info): New.
! 	(struct coverage_info): Add paths, paths_covered.
! 	(find_prime_paths): New.
! 	(add_path_counts): New.
! 	(find_arc): New.
! 	(print_usage): Add -e, --prime-paths, --prime-paths-lines,
! 	--prime-paths-source.
! 	(process_args): Likewise.
! 	(json_set_prime_path_coverage): New.
! 	(output_json_intermediate_file): Call
! 	json_set_prime_path_coverage.
! 	(process_all_functions): Call find_prime_paths.
! 	(generate_results): Call add_path_counts.
! 	(read_graph_file): Read path counters.
! 	(read_count_file): Likewise.
! 	(function_summary): Print path counts.
! 	(file_summary): Likewise.
! 	(print_source_line): New.
! 	(print_prime_path_lines): New.
! 	(print_inlined_separator): New.
! 	(print_prime_path_source): New.
! 	(output_path_coverage): New.
! 	(output_lines): Print path coverage.
! 	* ipa-inline.cc (can_early_inline_edge_p): Check
! 	path_coverage_flag.
! 	* passes.cc (finish_optimization_passes): Likewise.
! 	* profile.cc (branch_prob): Likewise.
! 	* selftest-run-tests.cc (selftest::run_tests): Run path coverage
! 	tests.
! 	* selftest.h (path_coverage_cc_tests): New declaration.
! 	* tree-profile.cc (tree_profiling): Check path_coverage_flag.
! 	(pass_ipa_tree_profile::gate): Likewise.
! 	* path-coverage.cc: New file.
! 	* prime-paths.cc: New file.
  
! 2025-03-26  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* gcov.cc (generate_results): Count branches, conditions.
! 	(function_summary): Output branch, calls, condition count.
  
! 2025-03-26  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	PR driver/101544
! 	* gcc.cc (driver_handle_option): Forward host '-lstdc++' to
! 	offloading compilation.
! 	* config/gcn/mkoffload.cc (main): Adjust.
! 	* config/nvptx/mkoffload.cc (main): Likewise.
  
! 2025-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119417
! 	* tree-ssa-math-opts.cc (convert_mult_to_widen): Before changing
! 	typeN because actual_precision/from_unsignedN differs cast rhsN
! 	to typeN if it has a different type.
! 	(convert_plusminus_to_widen): Before changing
! 	typeN because actual_precision/from_unsignedN differs cast mult_rhsN
! 	to typeN if it has a different type.
  
! 2025-03-26  Jakub Jelinek  <jakub@redhat.com>
! 	    Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR gcov-profile/118442
! 	* profile.cc (branch_prob): Ignore EDGE_FAKE edges from musttail calls
! 	to EXIT.
  
! 2025-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119450
! 	* config/i386/i386.md (narrow test peephole2): Test for
! 	offsettable_memref_p in condition.
  
! 2025-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_sse_mov_fp, znver4_sse_mov_fp_load,
! 	znver5_sse_mov_fp_load, znver4_sse_mov_fp_store,
! 	znver5_sse_mov_fp_store): Also match V1SF and DF.
  
! 2025-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR target/119010
! 	* config/i386/zn4zn5.md (znver4_imov_double_store,
! 	znver5_imov_double_store, znver4_imov_store, znver5_imov_store):
! 	New reservations for integer stores.
  
! 2025-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118795
! 	* match.pd (vec_perm <vec_perm <a, b>> -> vec_perm <a, b>):
! 	Use the appropriate check to see whether the original
! 	outer permute was supported.
  
! 2025-03-26  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2-512convertintrin.h (_mm512_mask_cvtx2ps_ph): Formatting fixes
! 	(_mm512_mask_cvtx_round2ps_ph): Ditto
! 	(_mm512_maskz_cvtx_round2ps_ph): Ditto
! 	(_mm512_cvtbiassph_bf8): Rename to _mm512_cvts_biasph_bf8.
! 	(_mm512_mask_cvtbiassph_bf8): Rename to _mm512_mask_cvts_biasph_bf8.
! 	(_mm512_maskz_cvtbiassph_bf8): Rename to _mm512_maskz_cvts_biasph_bf8.
! 	(_mm512_cvtbiassph_hf8): Rename to _mm512_cvts_biasph_hf8.
! 	(_mm512_mask_cvtbiassph_hf8): Rename to _mm512_mask_cvts_biasph_hf8.
! 	(_mm512_maskz_cvtbiassph_hf8): Rename to _mm512_maskz_cvts_biasph_hf8.
! 	(_mm512_cvts2ph_bf8): Rename to _mm512_cvts_2ph_bf8.
! 	(_mm512_mask_cvts2ph_bf8): Rename to _mm512_mask_cvts_2ph_bf8.
! 	(_mm512_maskz_cvts2ph_bf8): Rename to _mm512_maskz_cvts_2ph_bf8.
! 	(_mm512_cvts2ph_hf8): Rename to _mm512_cvts_2ph_hf8.
! 	(_mm512_mask_cvts2ph_hf8): Rename to _mm512_mask_cvts_2ph_hf8.
! 	(_mm512_maskz_cvts2ph_hf8): Rename to _mm512_maskz_cvts_2ph_hf8.
! 	(_mm512_cvtsph_bf8): Rename to _mm512_cvts_ph_bf8.
! 	(_mm512_mask_cvtsph_bf8): Rename to _mm512_mask_cvts_ph_bf8.
! 	(_mm512_maskz_cvtsph_bf8): Rename to _mm512_maskz_cvts_ph_bf8.
! 	(_mm512_cvtsph_hf8): Rename to _mm512_cvts_ph_hf8.
! 	(_mm512_mask_cvtsph_hf8): Rename to _mm512_mask_cvts_ph_hf8.
! 	(_mm512_maskz_cvtsph_hf8): Rename to _mm512_maskz_cvts_ph_hf8.
! 	* config/i386/avx10_2convertintrin.h
! 	(_mm_cvtbiassph_bf8): Rename to _mm_cvts_biasph_bf8.
! 	(_mm_mask_cvtbiassph_bf8): Rename to _mm_mask_cvts_biasph_bf8.
! 	(_mm_maskz_cvtbiassph_bf8): Rename to _mm_maskz_cvts_biasph_bf8.
! 	(_mm256_cvtbiassph_bf8): Rename to _mm256_cvts_biasph_bf8.
! 	(_mm256_mask_cvtbiassph_bf8): Rename to _mm256_mask_cvts_biasph_bf8.
! 	(_mm256_maskz_cvtbiassph_bf8): Rename to _mm256_maskz_cvts_biasph_bf8.
! 	(_mm_cvtbiassph_hf8): Rename to _mm_cvts_biasph_hf8.
! 	(_mm_mask_cvtbiassph_hf8): Rename to _mm_mask_cvts_biasph_hf8.
! 	(_mm_maskz_cvtbiassph_hf8): Rename to _mm_maskz_cvts_biasph_hf8.
! 	(_mm256_cvtbiassph_hf8): Rename to _mm256_cvts_biasph_hf8.
! 	(_mm256_mask_cvtbiassph_hf8): Rename to _mm256_mask_cvts_biasph_hf8.
! 	(_mm256_maskz_cvtbiassph_hf8): Rename to _mm256_maskz_cvts_biasph_hf8.
! 	(_mm_cvts2ph_bf8): Rename to _mm_cvts_2ph_bf8.
! 	(_mm_mask_cvts2ph_bf8): Rename to _mm_mask_cvts_2ph_bf8.
! 	(_mm_maskz_cvts2ph_bf8): Rename to _mm_maskz_cvts_2ph_bf8.
! 	(_mm256_cvts2ph_bf8): Rename to _mm256_cvts_2ph_bf8.
! 	(_mm256_mask_cvts2ph_bf8): Rename to _mm256_mask_cvts_2ph_bf8.
! 	(_mm256_maskz_cvts2ph_bf8): Rename to _mm256_maskz_cvts_2ph_bf8.
! 	(_mm_cvts2ph_hf8): Rename to _mm_cvts_2ph_hf8.
! 	(_mm_mask_cvts2ph_hf8): Rename to _mm_mask_cvts_2ph_hf8.
! 	(_mm_maskz_cvts2ph_hf8): Rename to _mm_maskz_cvts_2ph_hf8.
! 	(_mm256_cvts2ph_hf8): Rename to _mm256_cvts_2ph_hf8.
! 	(_mm256_mask_cvts2ph_hf8): Rename to _mm256_mask_cvts_2ph_hf8.
! 	(_mm256_maskz_cvts2ph_hf8): Rename to _mm256_maskz_cvts_2ph_hf8.
! 	(_mm_cvtsph_bf8): Rename to _mm_cvts_ph_bf8.
! 	(_mm_mask_cvtsph_bf8): Rename to _mm_mask_cvts_ph_bf8.
! 	(_mm_maskz_cvtsph_bf8): Rename to _mm_maskz_cvts_ph_bf8.
! 	(_mm256_cvtsph_bf8): Rename to _mm256_cvts_ph_bf8.
! 	(_mm256_mask_cvtsph_bf8): Rename to _mm256_mask_cvts_ph_bf8.
! 	(_mm256_maskz_cvtsph_bf8): Rename to _mm256_maskz_cvts_ph_bf8.
! 	(_mm_cvtsph_hf8): Rename to _mm_cvts_ph_hf8.
! 	(_mm_mask_cvtsph_hf8): Rename to _mm_mask_cvts_ph_hf8.
! 	(_mm_maskz_cvtsph_hf8): Rename to _mm_maskz_cvts_ph_hf8.
! 	(_mm256_cvtsph_hf8): Rename to _mm256_cvts_ph_hf8.
! 	(_mm256_mask_cvtsph_hf8): Rename to _mm256_mask_cvts_ph_hf8.
! 	(_mm256_maskz_cvtsph_hf8): Rename to _mm256_maskz_cvts_ph_hf8.
  
! 2025-03-25  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* gcov.cc (get_gcov_intermediate_filename): Use lbasename().
  
! 2025-03-25  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR other/119250
! 	* config.in: Regenerate.
  	* configure: Regenerate.
+ 	* configure.ac: Match the configure test in libiberty when checking
+ 	the basename decl.
  
! 2025-03-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
  
! 	* gimplify.cc (modify_call_for_omp_dispatch): Adjust arguments.
! 	Remove the "sorry" for the case where new interop objects must be
! 	constructed, and add code to make it work instead.
! 	(expand_variant_call_expr): Adjust arguments and call to
! 	modify_call_for_omp_dispatch.
! 	(gimplify_variant_call_expr): Simplify logic for calling
! 	expand_variant_call_expr.
  
! 2025-03-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/96226
! 	PR target/119428
! 	* config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
! 	splitter after *<rotate_insn><mode>3_mask_1): Revert 2020-12-05
! 	changes.
  
! 2025-03-25  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	PR target/119224
! 	* config/riscv/autovec.md: Disable abd splitter.
  
! 2025-03-25  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/119325
! 	* doc/install.texi (gcn): Change ROCm > 6.3.2 to >6.3.3 for generic
! 	support; mention Newlib commit that fixes a SIMD math issue.
  
! 2025-03-25  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/118627
! 	* omp-general.cc (omp_parse_access_method): Change to return void.
! 	(omp_parse_access_methods): Return void; remove 'if' around a
! 	function call.
! 	(omp_parse_expr): Remove 'if' around a function call.
  
! 2025-03-25  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/arm.md (<US>mull): Add alternatives that allow Rs
! 	to be tied to either Rdlo or Rdhi.
  
! 2025-03-25  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR middle-end/117811
! 	* optabs.cc (expand_binop_directly): Remove LAST as an argument,
! 	instead record the last insn on entry.  Only delete insns if
! 	we need to restart and restart by calling ourself, not expand_binop.
! 	(expand_binop): Update callers to expand_binop_directly.  If it
! 	fails to expand the operation, delete back to LAST.
  
! 2025-03-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119376
! 	* tree-tailcall.cc (suitable_for_tail_opt_p): Add DIAG_MUSTTAIL
! 	argument, propagate it down to maybe_error_musttail.
! 	(suitable_for_tail_call_opt_p): Likewise.
! 	(maybe_error_musttail): Add DIAG_MUSTTAIL argument.  Don't emit error
! 	for gimple_call_must_tail_p calls if it is false.
! 	(find_tail_calls): Add DIAG_MUSTTAIL argument, propagate it down to
! 	maybe_error_musttail, suitable_for_tail_opt_p,
! 	suitable_for_tail_call_opt_p and find_tail_calls calls.
! 	(tree_optimize_tail_calls_1): Add DIAG_MUSTTAIL argument, propagate
! 	it down to find_tail_calls and if set, clear cfun->has_musttail flag
! 	at the end.  Rename OPT_MUSTCALL argument to OPT_MUSTTAIL.
! 	(execute_tail_calls): Pass true to DIAG_MUSTTAIL
! 	tree_optimize_tail_calls_1 argument.
! 	(pass_tail_recursion::execute): Pass false to DIAG_MUSTTAIL
! 	tree_optimize_tail_calls_1 argument.
! 	(pass_musttail::gate): Don't test flag_optimize_sibling_calls.
! 	(pass_musttail::execute): Pass true to DIAG_MUSTTAIL
! 	tree_optimize_tail_calls_1 argument.
  
! 2025-03-24  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118616
! 	* tree-vect-generic.cc (expand_vector_conversion): Add
! 	an assert that converts vect is non empty if
! 	supportable_indirect_convert_operation returns true.
  
! 2025-03-24  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/101544
! 	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
! 	[ACCEL_COMPILER]: Special-case certain host-setup symbol aliases.
! 	* varasm.cc (do_assemble_alias) [ACCEL_COMPILER]: Adjust.
  
! 2025-03-24  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.cc (default_ptx_version_option): Default at
! 	least to '-mptx=6.3'.
! 	* doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/cpuinfo.h
! 	(get_available_features): Change to FEATURE_AVX10_1.
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AVX10_1_512_SET): Renamed to ...
! 	(OPTION_MASK_ISA2_AVX10_1_SET): ... this.
! 	(OPTION_MASK_ISA2_AVX10_2_SET): Use renamed macro.
! 	(OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
! 	(ix86_handle_option): Ditto.
! 	(processor_alias_table): Use P_PROC_AVX10_1.
! 	* common/config/i386/i386-cpuinfo.h
! 	(enum feature_priority): Rename from AVX10_1_512 to AVX10_1.
! 	(enum processor_features): Ditto.
! 	* common/config/i386/i386-isas.h: Add avx10.1.
! 	* config/i386/driver-i386.cc
! 	(host_detect_local_cpu): Use renamed enum.
! 	* config/i386/i386-c.cc
! 	(ix86_target_macros_internal): Rename to avx10.1.
! 	* config/i386/i386-isa.def (AVX10_1_512): Rename to ...
! 	(AVX10_1): ... this.
! 	* config/i386/i386-options.cc (isa2_opts): Rename to avx10.1.
! 	(ix86_valid_target_attribute_inner_p): Add avx10.1.
! 	(ix86_option_override_internal): Rename to AVX10_1.
! 	Revise warnings to mention behavior change for option
! 	combination in GCC 16.
! 	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Use AVX10_1.
! 	* config/i386/i386.opt: Add avx10.1.
! 	Add deprecate warnings for mevex512 and mavx10.1-256/512.
! 	* config/i386/i386.opt.urls: Add avx10.1.
! 	* doc/extend.texi: Ditto.
! 	* doc/sourcebuild.texi: Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/cpuinfo.h
! 	(get_available_features): Revise the logic AVX10 version.
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AVX10_2_256_SET): Removed.
! 	(OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto.
! 	(OPTION_MASK_ISA2_AVX10_2_SET): New.
! 	(OPTION_MASK_ISA2_AMX_AVX512_SET): Use AVX10.2 macro.
! 	(OPTION_MASK_ISA2_AVX10_2_UNSET): Ditto.
! 	(ix86_handle_option): Remove avx10.2-256 part. Adjust avx10.2.
! 	* common/config/i386/i386-cpuinfo.h
! 	(enum processor_features): Remove FEATURE_AVX10_2_256 and skip
! 	the value for it. Change the name from FEATURE_AVX10_2_512 to
! 	FEATURE_AVX10_2.
! 	* common/config/i386/i386-isas.h: Remove avx10.2-256/512.
! 	* config/i386/avx10_2-512bf16intrin.h: Use avx10.2 instead of
! 	avx10.2-256/512.
! 	* config/i386/avx10_2-512convertintrin.h: Ditto.
! 	* config/i386/avx10_2-512mediaintrin.h: Ditto.
! 	* config/i386/avx10_2-512minmaxintrin.h: Ditto.
! 	* config/i386/avx10_2-512satcvtintrin.h: Ditto.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/avx10_2convertintrin.h: Ditto.
! 	* config/i386/avx10_2mediaintrin.h: Ditto.
! 	* config/i386/avx10_2minmaxintrin.h: Ditto.
! 	* config/i386/avx10_2satcvtintrin.h: Ditto.
! 	* config/i386/movrsintrin.h: Ditto.
! 	* config/i386/sm4intrin.h: Ditto.
! 	* config/i386/cpuid.h (bit_AVX10_256): Removed.
! 	(bit_AVX10_512): Ditto.
! 	* config/i386/driver-i386.cc (host_detect_local_cpu): Adjust
! 	Diamond Rapids and -march=native condition.
! 	* config/i386/i386-builtin.def (BDESC): Use AVX10.2 macro
! 	instead of AVX10.2-256/512.
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
! 	* config/i386/i386-expand.cc
! 	(ix86_expand_branch): Use TARGET_AVX10_2 instead of specifying
! 	vector size.
! 	(ix86_prepare_fp_compare_args): Ditto.
! 	(ix86_expand_fp_compare): Ditto.
! 	(ix86_ssecom_setcc): Ditto.
! 	(ix86_expand_sse_comi): Ditto.
! 	(ix86_expand_sse_comi_round): Ditto.
! 	(ix86_check_builtin_isa_match): Ditto.
! 	* config/i386/i386.cc (ix86_fp_compare_code_to_integer): Ditto.
! 	(ix86_get_mask_mode): Ditto.
! 	* config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): Ditto.
! 	* config/i386/i386.md: Ditto.
! 	* config/i386/mmx.md: Ditto.
! 	* config/i386/sse.md: Ditto.
! 	* config/i386/predicates.md: Ditto.
! 	* config/i386/i386-isa.def (AVX10_2_256): Removed.
! 	(AVX10_2_512): Removed.
! 	(AVX10_2): New.
! 	* config/i386/i386-options.cc
! 	(isa2_opts): Remove avx10.2-256/512.
! 	(ix86_valid_target_attribute_inner_p): Ditto.
! 	(PTA_DIAMONDRAPIDS): Use PTA_AVX10_2.
! 	* config/i386/i386.opt: Remove avx10.2-256/512.
! 	* config/i386/i386.opt.urls: Ditto.
! 	* doc/extend.texi: Ditto.
! 	* doc/invoke.texi: Ditto.
! 	* doc/sourcebuild.texi: Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config.gcc: Add avx10_2roundingintrin.h.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT,
! 	V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT,
! 	UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT.
! 	* config/i386/immintrin.h: Include avx10_2roundingintrin.h.
! 	* config/i386/sse.md: Change subst_attr name due to renaming.
! 	* config/i386/subst.md:
! 	(<round_mode512bit_condition>): Add condition check for avx10.2
! 	rounding control 256bit intrins and renamed to ...
! 	(<round_mode_condition>): ...this.
! 	(round_saeonly_mode512bit_condition): Add condition check for
! 	avx10.2 rounding control 256 bit intris and renamed to ...
! 	(round_saeonly_mode_condition): ...this.
! 	* config/i386/avx10_2roundingintrin.h: New file.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: Add new intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT,
! 	V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT.
! 	* config/i386/sse.md:
! 	(avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>):
! 	Add condition check.
! 	(avx512fp16_vcvtpd2ph_v4df_mask_round): New expand.
! 	(*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Change name to
! 	avx512fp16_vcvt<castmode>2ph_<mode>_mask<round_name>_1
! 	and extend pattern to generate 256bit insns.
! 	(avx_cvtpd2ps256<mask_name>): Change name to
! 	avx_cvtpd2ps256<mask_name><round_name> and extend pattern to
! 	generate 256bit insns.
! 	* config/i386/subst.md (round_applied): New condition.
! 	(round_suff): New iterator.
! 	(round_mode_condition): Add V32HI check for 512bit.
! 	(round_saeonly_mode_condition): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: Add new intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT.
! 	* config/i386/sse.md:
! 	(avx_cvtpd2dq256<mask_name>): Change name to
! 	avx_cvtpd2dq256<mask_name><round_name> and extend pattern to
! 	generate 256bit insns.
! 	(fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
! 	Add round_mode_condition.
! 	* config/i386/subst.md (round_pd2udqsuff): New iterator.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT,
! 	V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT.
! 	* config/i386/sse.md:
! 	(avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>):
! 	Add condition check.
! 	(avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode>
! 	<mask_name><round_name>):
! 	Ditto.
! 	(avx512fp16_float_extend_ph<mode>2<mask_name>): Extend round saeonly.
! 	(vcvtph2ps256<mask_name>): Ditto.
! 	* config/i386/subst.md
! 	(round_saeonly_applied): New condition.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT
! 	V8HF_FTYPE_V8SF_V8HF_UQI_INT.
! 	* config/i386/sse.md
! 	(avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>):
! 	Add round condition check.
! 	* config/i386/subst.md (round_mode_condition): Add V16HI check for
! 	256bit.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT.
! 	* config/i386/sse.md
! 	(<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>):
! 	Extend to round.
! 	(<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
! 	Add round condition check.
! 	* config/i386/subst.md (round_constraint4): New.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT,
! 	V8HF_FTYPE_V4DI_V8HF_UQI_INT.
! 	* config/i386/sse.md:
! 	(avx512fp16_vcvt<floatsuffix>qq2ph_v4di_mask_round): New expand.
! 	(*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask):
! 	Extend round control and add "_1" suffix.
! 	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
! 	Add condition check.
! 	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
! 	Ditto.
! 	(float<floatunssuffix><mode><ssePSmode2lower>2<mask_name><round_name>):
! 	Limit suffix output.
! 	(unspec_fix_truncv4dfv4si2<mask_name>): Extend round control.
! 	(unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
! 	* config/i386/subst.md (round_qq2pssuff): New iterator.
! 	(round_saeonly_suff): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>):
! 	Extend round control for 256bit.
! 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
! 	Ditto.
! 	(avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>):
! 	Add condition check.
! 	* config/i386/subst.md
! 	(round_saeonly_mode_condition): Add V16HI check for 256bit.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md
! 	(unspec_fix_truncv8sfv8si2<mask_name>): Extend rounding control.
! 	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
! 	Ditto.
! 	(<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):
! 	Add condition check.
! 	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
! 	Remove round_saeonly_name.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V16HF_FTYPE_V16HI_V16HF_UHI_INT.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT,
! 	V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT,
! 	V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT,
! 	V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT.
! 	* config/i386/sse.md:
! 	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>):
! 	Add condition check.
! 	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
  	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md:
! 	(<avx512>_fmadd_<mode>_mask3<round_name>): Add condition check.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md:
! 	(<avx512>_fmaddsub_<mode>_mask<round_name>): Add condition check.
! 	(<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md:
! 	(<avx512>_fmsub_<mode>_mask<round_name>): Add condition check.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md:
! 	(<avx512>_fnmsub_<mode>_mask3<round_name>): Add condition check.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
! 	V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT,
! 	V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT,
! 	V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT.
! 	* config/i386/sse.md:
! 	(<avx512>_getexp<mode><mask_name><round_saeonly_name>):
! 	Add condition check.
! 	(<avx512>_getmant<mode><mask_name><round_saeonly_name>):
! 	Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/i386-expand.cc (ix86_expand_round_builtin):
! 	Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT,
! 	V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
! 	* config/i386/sse.md:
! 	(<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
! 	Add condition check.
! 	(<avx512>_rndscale<mode><mask_name><round_saeonly_name>): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def: Add new builtins.
! 	* config/i386/sse.md:
! 	(<avx512>_scalef<mode><mask_name><round_name>): Add condition check.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	Revert:
! 	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2roundingintrin.h: New intrins.
! 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/avx10_2satcvtintrin.h: Remove rounding intrins.
! 	Use non-round intrins.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
  
! 2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/avx10_2convertintrin.h: Remove rounding intrins.
! 	Use non-round builtins.
! 	* config/i386/avx10_2minmaxintrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/i386-builtin-types.def: Remove unused type.
! 	* config/i386/i386-expand.cc
! 	(ix86_expand_args_builtin): Ditto.
! 	(ix86_expand_round_builtin): Ditto.
  
! 2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Nonlocal Gotos): Group with other built-ins
! 	sections.
! 	(Constructing Calls): Likewise.
! 	(Pragmas): Move earlier in the section, before the built-ins docs.
! 	(Thread-Local): Likewise.
! 	(OpenMP): Likewise.
! 	(OpenACC): Likewise.
  
! 2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Syntax Extensions): New section.
! 	(Statement Exprs): Make it a subsection of the above.
! 	(Local Labels): Likewise.
! 	(Labels as Values): Likewise.
! 	(Nested Functions): Likewise.
! 	(Typeof): Likewise.
! 	(Offsetof): Likewise.
! 	(Alignment): Likewise.
! 	(Incomplete Enums): Likewise.
! 	(Variadic Macros): Likewise.
! 	(Conditionals): Likewise.
! 	(Case Ranges): Likewise.
! 	(Mixed Labels and Declarations): Likewise.
! 	(C++ Comments): Likewise.
! 	(Escaped Newlines): Likewise.
! 	(Hex Floats): Likewise.
! 	(Binary constants): Likewise.
! 	(Dollar Signs): Likewise.
! 	(Character Escapes): Likewise.
! 	(Alternate Keywords): Likewise.
! 	(Function Names): Likewise.
! 	(Semantic Extensions): New section.
! 	(Function Prototypes): Make it a subsection of the above.
! 	(Pointer Arith): Likewise.
! 	(Variadic Pointer Args): Likewise.
! 	(Pointers to Arrays): Likewise.
! 	(Const and Volatile Functions): Likewise.
  
! 2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Aggregate Types): New section.
! 	(Variable Length): Make it a subsection of the above.
! 	(Zero Length): Likewise.
! 	(Empty Structures): Likewise.
! 	(Flexible Array Members in Unions): Likewise.
! 	(Flexible Array Members alone in Structures): Likewise.
! 	(Unnamed Fields): Likewise.
! 	(Cast to Union): Likewise.
! 	(Subscripting): Likewise.
! 	(Initializers): Likewise.
! 	(Compound Literals): Likewise.
! 	(Designated Inits): Likewise.
  
! 2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/42270
! 	* doc/extend.texi (Additional Numeric Types): New section.
! 	(__int128): Make it a subsection of the above.
! 	(Long Long): Likewise.
! 	(Complex): Likewise.
! 	(Floating Types): Likewise.
! 	(Half-Precision): Likewise.
! 	(Decimal Float): Likewise.
! 	(Fixed-Point): Likewise.
  
! 2025-03-23  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-mcus.def: Add AVR32SD20, AVR32SD28, AVR32SD32,
! 	AVR64SD28, AVR64SD32, AVR64SD48.
  	* doc/avr-mmcu.texi: Rebuild.
  
! 2025-03-23  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Optimization Options)
! 	<-maccumulate-args>: Refer to -fdefer-pop.
! 	<-muse-nonzero-bits>: Re-formulate what the option does.
  
! 2025-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_option_override): Use
! 	"avr-peep2-after-fuse-move" as dump name instead of "peephole2".
  
! 2025-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.opt.urls: Add -muse-nonzero-bits.
  
! 2025-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/119421
! 	* config/avr/avr.opt (-muse-nonzero-bits): New option.
! 	* config/avr/avr-protos.h (avr_nonzero_bits_lsr_operands_p): New.
! 	(make_avr_pass_split_nzb): New.
! 	* config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): New function.
! 	(avr_rtx_costs_1): Return costs for the new insns.
! 	* config/avr/avr.md (nzb): New insn attribute.
! 	(*nzb=1.<code>...): New insns to better support some bit
! 	operations for <code> in AND, IOR, XOR.
! 	* config/avr/avr-passes.def (avr_pass_split_nzb): Insert pass
! 	atfer combine.
! 	* config/avr/avr-passes.cc (avr_pass_data_split_nzb). New pass data.
! 	(avr_pass_split_nzb): New pass.
! 	(make_avr_pass_split_nzb): New function.
! 	* common/config/avr/avr-common.cc (avr_option_optimization_table):
! 	Enable -muse-nonzero-bits for -O2 and higher.
! 	* doc/invoke.texi (AVR Options): Document -muse-nonzero-bits.
  
! 2025-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_attrs_section_name): New function.
! 	(avr_insert_attributes): Add "used" attribute to functions
! 	in .initN and .finiN.
  
! 2025-03-22  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h (DL_LIBRARY): New.
  
! 2025-03-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimplify.cc (warn_switch_unreachable_and_auto_init_r): Add missing
! 	space in the middle of diagnostics.
! 	* tree-vect-stmts.cc (vectorizable_load): Add missing space in the
! 	middle of debug dump message.
! 	* sym-exec/sym-exec-state.cc (state::check_args_compatibility):
! 	Likewise.
  
! 2025-03-21  Surya Kumari Jangala  <jskumari@linux.ibm.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/116028
! 	PR rtl-optimization/118615
! 	* lra-constraints.cc (first_call_insn): New variable.
! 	(split_reg): Spill register before first_call_insn if call_save_p
! 	and the call is in a different bb in the ebb.
! 	(split_if_necessary): Formatting fix.
! 	(inherit_in_ebb): Set first_call_insn when handling a CALL_INSN.
! 	For successful split_if_necessary with before_p, only change
! 	use_insn if it emitted any new instructions before curr_insn.
! 	Clear first_call_insn before returning.
  
! 2025-03-21  Paul-Antoine Arras  <parras@baylibre.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
  
! 	* builtin-types.def
! 	(BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR): New.
! 	* gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_INTEROP.
! 	* gimple-pretty-print.cc (dump_gimple_omp_interop): New function.
! 	(pp_gimple_stmt_1): Handle GIMPLE_OMP_INTEROP.
! 	* gimple.cc (gimple_build_omp_interop): New function.
! 	(gimple_copy): Handle GIMPLE_OMP_INTEROP.
! 	* gimple.def (GIMPLE_OMP_INTEROP): Define.
! 	* gimple.h (gimple_build_omp_interop): Declare.
! 	(gimple_omp_interop_clauses): New function.
! 	(gimple_omp_interop_clauses_ptr): Likewise.
! 	(gimple_omp_interop_set_clauses): Likewise.
! 	(gimple_return_set_retval): Handle GIMPLE_OMP_INTEROP.
! 	* gimplify.cc (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_INIT,
! 	OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY.
! 	(gimplify_omp_interop): New function.
! 	(gimplify_expr): Replace sorry with call to gimplify_omp_interop.
! 	* omp-builtins.def (BUILT_IN_GOMP_INTEROP): Define.
! 	* omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_INIT,
! 	OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY.
! 	(scan_omp_1_stmt): Handle GIMPLE_OMP_INTEROP.
! 	(lower_omp_interop_action_clauses): New function.
! 	(lower_omp_interop): Likewise.
! 	(lower_omp_1): Handle GIMPLE_OMP_INTEROP.
  
! 2025-03-21  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/114992
! 	* multiple_target.cc (create_dispatcher_calls):
! 	remove_from_same_comdat_group before add_to_same_comdat_group.
  
! 2025-03-21  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* config/aarch64/aarch64-cores.def (olympus): New entry.
! 	* config/aarch64/aarch64-tune.md: Regenerate.
! 	* doc/invoke.texi (AArch64 Options): Document the above.
  
! 2025-03-21  Antoni Boucher  <bouanto@zoho.com>
  
! 	* config/i386/i386-rust-and-jit.inc: New file.
! 	* config/i386/i386-rust.cc: Move code to i386-rust-and-jit.inc.
  
! 2025-03-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119376
! 	* ipa-icf-gimple.cc (func_checker::compare_gimple_call): Return false
! 	for gimple_call_must_tail_p mismatches.
  
! 2025-03-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119376
! 	* ipa-split.cc (split_function): Call gimple_call_set_must_tail
! 	on the call to outlined partition if has_musttail and
! 	!add_tsan_func_exit.
  
! 2025-03-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/119376
! 	* tree-inline.cc (remap_gimple_stmt): Silently clear
! 	gimple_call_must_tail_p on inlined call stmts if id->call_stmt
! 	is a call without that flag set.
  
! 2025-03-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/119235
! 	* config/s390/s390.cc (s390_hard_regno_mode_ok): Accept only
! 	Pmode for registers AP/FP/RA.
  
! 2025-03-21  Richard Biener  <rguenther@suse.de>
  
! 	* cgraphunit.cc (symbol_table::finalize_compilation_unit):
! 	Put early debug generation under TV_SYMOUT.
  
! 2025-03-21  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR rtl-optimization/118914
! 	* combine.cc (recog_for_combine): Add old_nregs and new_nregs
! 	argument (defaulting to 0). Update call to recog_for_combine_1.
! 	(combine_split_insns): Add old_nregs and new_nregs arguments,
! 	store the old and new max registers to them.
! 	(try_combine): Update calls to combine_split_insns and
! 	pass old_nregs and new_nregs for the i3 call to recog_for_combine.
! 	(find_split_point): Update call to combine_split_insns; ignoring
! 	the values there.
! 	(recog_for_combine_1): Add old_nregs and new_nregs arguments,
! 	if the insn was recognized (and not to no-op move), add the
! 	REG_DEAD notes to pnotes argument.
  
! 2025-03-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119389
! 	* tree-ssa-sccvn.cc (dominated_by_p_w_unex): Limit the number
! 	of predecessors of a CFG merge we try to skip.
  
! 2025-03-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
  	Revert:
! 	2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config.gcc: Fail in case of option --with-mode=esa.
! 	* config/s390/s390.cc (s390_option_override_internal): Default
! 	to z/Architecture mode.
! 	* config/s390/s390.h (DRIVER_SELF_SPECS): Ditto.
! 	* config/s390/s390.opt: Emit a warning for option -mesa.
! 	* doc/invoke.texi: Document the change.
  
! 2025-03-20  Filip Kastl  <fkastl@suse.cz>
  
! 	* gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Don't
! 	increment after vec::unordered_remove().
  
! 2025-03-20  Richard Biener  <rguenther@suse.de>
  
! 	* tree-core.h (function_decl_type): Make a scoped enum.
! 	* tree.h (set_function_decl_type): Adjust.
! 	(DECL_IS_OPERATOR_NEW_P): Likewise.
! 	(DECL_SET_IS_OPERATOR_NEW): Likewise.
! 	(DECL_IS_OPERATOR_DELETE_P): Likewise.
! 	(DECL_SET_IS_OPERATOR_DELETE): Likewise.
! 	(DECL_LAMBDA_FUNCTION_P): Likewise.
! 	(DECL_SET_LAMBDA_FUNCTION): Likewise.
! 	* lto-streamer-out.cc (hash_tree): Hash all of
! 	FUNCTION_DECL_DECL_TYPE.
! 	* tree-streamer-out.cc (pack_ts_function_decl_value_fields):
! 	Adjust.
! 	* config/aarch64/aarch64-simd-pragma-builtins.def (vcombine_mf8):
! 	Use literal zero instead of NONE.
  
! 2025-03-20  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/117452
! 	* config/i386/i386.md (cbranchbf4): Use
! 	ix86_fp_comparison_operator instead of comparison_operator.
  
! 2025-03-20  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2-512satcvtintrin.h: Add "s_" before
! 	intrinsics' core name.
! 	* config/i386/avx10_2satcvtintrin.h: Ditto.
  
! 2025-03-20  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2-512satcvtintrin.h: Add new intrinsics.
! 	* config/i386/avx10_2satcvtintrin.h: Ditto.
! 	* config/i386/i386-builtin-types.def:
! 	Add DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI),
! 	(V16SI, V16SF, V16SI, UHI), (V8DI, V8SF, V8DI, UQI),
! 	(V8DI, V8DF, V8DI, UQI), (V8SI, V8DF, V8SI, UQI).
! 	* config/i386/i386-builtin.def: Add new builtins.
! 	* config/i386/i386-expand.cc: Handle V16SI_FTYPE_V16SF_V16SI_UHI,
! 	V32HI_FTYPE_V32HF_V32HI_USI, V8DI_FTYPE_V8SF_V8DI_UQI,
! 	V8DI_FTYPE_V8DF_V8DI_UQI, V8SI_FTYPE_V8DF_V8SI_UQI.
  
! 2025-03-20  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* config/i386/avx10_2-512satcvtintrin.h: Change *i[u]bs's type suffix
! 	of intrin name.
! 	* config/i386/avx10_2satcvtintrin.h: Ditto.
  
! 2025-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/119270
! 	* ira-costs.cc (calculate_equiv_gains): Ignore equiv init insns
! 	only for invariants.
  
! 2025-03-19  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR c/119366
! 	* diagnostic-format-sarif.cc (test_message_with_embedded_link):
! 	Convert diagnostic_context from one urlifier to a stack of
! 	urlifiers, where each node in the stack tracks whether the
! 	urlifier is owned or borrowed.
! 	* diagnostic.cc (diagnostic_context::initialize): Likewise.
! 	(diagnostic_context::finish): Likewise.
! 	(diagnostic_context::set_urlifier): Delete.
! 	(diagnostic_context::push_owned_urlifier): New.
! 	(diagnostic_context::push_borrowed_urlifier): New.
! 	(diagnostic_context::pop_urlifier): New.
! 	(diagnostic_context::get_urlifier): Reimplement in terms of stack.
! 	(diagnostic_context::override_urlifier): Delete.
! 	* diagnostic.h (diagnostic_context::set_urlifier): Delete decl.
! 	(diagnostic_context::override_urlifier): Delete decl.
! 	(diagnostic_context::push_owned_urlifier): New decl.
! 	(diagnostic_context::push_borrowed_urlifier): New decl.
! 	(diagnostic_context::pop_urlifier): New decl.
! 	(diagnostic_context::get_urlifier): Make return value const; hide
! 	implementation.
! 	(diagnostic_context::m_urlifier): Replace with...
! 	(diagnostic_context::urlifier_stack_node): ... this and...
! 	(diagnostic_context::m_urlifier_stack): ...this.
! 	* gcc-urlifier.cc
! 	(auto_override_urlifier::auto_override_urlifier): Reimplement.
! 	(auto_override_urlifier::~auto_override_urlifier): Reimplement.
! 	* gcc-urlifier.h (class auto_override_urlifier): Reimplement.
! 	(auto_urlify_attributes::auto_urlify_attributes): Update for
! 	pass-by-reference.
! 	* gcc.cc (driver::global_initializations): Update for
! 	reimplementation of urlifiers in terms of a stack.
! 	* toplev.cc (general_init): Likewise.
  
! 2025-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119357
! 	* config/i386/sse.md (pmovmskb 0xffff to ptest splitter,
! 	*pmovsk_ptest_<mode>_avx512): Force operands[0] into a REG.
  
! 2025-03-19  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config/aarch64/aarch64-arches.def (...): Add SVE2p1.
! 	* doc/invoke.texi (AArch64 Options): Document +sve2p1 in
! 	-march=armv9.4-a.
  
! 2025-03-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
! 	fa0-fa7, ft0-ft16, and fs0-fs7.
  
! 2025-03-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/119355
! 	* config/avr/avr-passes.cc (memento_t::apply): Only
! 	read values[p.arg] when it is actually used.
  
! 2025-03-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR cobol/119301
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
! 	* configure.ac: Add check for get_current_dir_name.
  
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/116545
! 	* doc/extend.texi (musttail statement attribute): Document
! 	that musttail GNU attribute can be used as well.
  
! 2025-03-18  Michael Matz  <matz@suse.de>
  
! 	* config/rs6000/rs6000.opt.urls: Regenerate.
  
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/sourcebuild.texi (dg-output-file): Document.
  
! 2025-03-18  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Dump
! 	what is being replaced with what.
  
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119307
! 	* lra.cc (lra_rtx_hash): Handle SUBREG.
  
! 2025-03-18  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/101533
! 	* dwarf2out.cc (gen_type_die_with_usage): When we have
! 	output the typedef already do nothing for a typedef variant.
! 	Do not set TREE_ASM_WRITTEN on the type.
  
! 2025-03-18  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.md (equality shifted-arith splitter): Do not
! 	create op AND -1 as it won't be cleaned up post-reload.
  
! 2025-03-18  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* configure: Regenerate.
! 	* configure.ac: s/gcc_cv_ld64_macosx_version_min/gcc_cv_ld64_macos_version_min/.
  
! 2025-03-17  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/bitmanip.md (*<or_optab>i<mode>_extrabit): Reject cases
! 	where we only need to twiddle one bit.  Fix formatting.
! 	(*andi<mode>extrabit): Likewise.
  
! 2025-03-17  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/119285
! 	* ira-costs.cc (equiv_can_be_consumed_p): Use 2 ways for
! 	recognizing a valid insn after equiv insertion.
  
! 2025-03-17  Michael Matz  <matz@suse.de>
  
! 	PR target/112980
! 	* config/rs6000/rs6000.opt (msplit-patch-nops): New option.
! 	* doc/invoke.texi (RS/6000 and PowerPC Options): Document it.
! 	* config/rs6000/rs6000.h (machine_function.stop_patch_area_print):
! 	New member.
! 	* config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry):
! 	Emit split nops under control of that one.
! 	* config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
! 	Add handling of split patch nops.
  
! 2025-03-17  Michal Jires  <mjires@suse.cz>
  
! 	* common.opt.urls: Regenerate.
  
! 2025-03-17  Michal Jires  <mjires@suse.cz>
  
! 	* doc/invoke.texi: (Optimize Options):
! 	Add incremental LTO flags.
  
! 2025-03-17  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/119114
! 	* config/riscv/autovec.md: Apply & 0x1 mask when initializing
! 	bitmask vector.
  
! 2025-03-17  Ayan Shafqat  <ayan.x.shafqat@gmail.com>
  
! 	* config/aarch64/arm_acle.h (__fma, __fmaf): New functions.
  
! 2025-03-17  Richard Biener  <rguenther@suse.de>
  
! 	* opts.cc (gen_producer_string): Record -D and -U
! 	with _FORTIFY_SOURCE prefix.
  
! 2025-03-16  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/116256
! 	* config/riscv/riscv.md (reassociation splitters): Do not load the
! 	adjusted addend into a register if it fits in a simm12.
  
! 2025-03-16  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/113546
! 	* tree-cfg.cc (first_non_label_stmt): Rename to ...
! 	(first_non_label_nondebug_stmt): This and use gsi_start_nondebug_after_labels_bb.
! 	(assign_discriminators): Update call to first_non_label_nondebug_stmt.
  
! 2025-03-16  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	Backported from master:
! 	2025-03-16  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/119172
! 	* config.in: Regenerate.
! 	* config/darwin.h (DARWIN_PLATFORM_ID): Add the option to
! 	use -macos_version_min where available.
! 	* configure: Regenerate.
! 	* configure.ac: Check for ld64 support of -macos_version_min.
  
! 2025-03-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/116572
! 	* cgraph.cc (cgraph_update_edges_for_call_stmt): Do not update
! 	edges of clones that are unexpanded thunk.  Assert that the node
! 	passed as the parameter is not an unexpanded thunk.
  
! 2025-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119287
! 	* match.pd (((X >> C1) & C2) * (1 << C1) to X & (C2 << C1)): Use
! 	(convert @0) instead of @0 in the substitution.
  
! 2025-03-14  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	PR target/92713
! 	PR target/101544
! 	* config/gcn/gcn.h (LIBSTDCXX): Don't set.
! 	* config/nvptx/nvptx.h (LIBSTDCXX): Likewise.
  
! 2025-03-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119274
! 	* tree-ssa-sccvn.cc (dominated_by_p_w_unex): Handle the
! 	top block being the only executable forwarder to a CFG
! 	merge.
  
! 2025-03-14  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* tree-vect-slp.cc (vect_build_slp_instance): Pass the new group
! 	size (i) rather than 1 to vect_slp_prefer_store_lanes_p.
! 	(vect_analyze_slp): Only force the use of load-lanes and
! 	store-lanes if that is preferred for at least one load/store pair.
  
! 2025-03-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119155
! 	* tree-vect-stmts.cc (vectorizable_store): Do not always
! 	use vector element alignment for VMAT_STRIDED_SLP but
! 	a more correct alignment towards both ends.
! 	(vectorizable_load): Likewise.
  
! 2025-03-14  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Alternate Keywords): Clean up text and remove
! 	discussion of "restrict", which is not a GNU extension at all.
! 	* doc/invoke.texi (C Dialect Options): Remove detailed discussion.
  
! 2025-03-13  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/119147
! 	* ipa-inline.cc: Include ipa-modref-tree.h and
! 	ipa-modref.h.
! 	(speculation_useful_p): If target is a clone, speculation is usef;
! 	fix mixup of caller and callee; speculate also calls not considered
! 	hot; consider modref summary also possibly useful for optimization.
! 	* ipa-profile.cc (ipa_profile): Keep non-hot speculations.
  
! 2025-03-13  Richard Biener  <rguenther@suse.de>
  
! 	* tree.h (DECL_NOT_GIMPLE_REG_P): Update description.
  
! 2025-03-13  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* common/config/aarch64/cpuinfo.h: Remove FEAT_PREDRES and FEAT_LS64*.
! 	* config/aarch64/aarch64-option-extensions.def: Remove FMV support
! 	for PREDRES.
  
! 2025-03-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* match.pd: Extend pointer alignment folds so that they handle
! 	the case where a constant is added before or after the alignment.
  
! 2025-03-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* match.pd: Fold ((X >> C1) & C2) * (1 << C1) to X & (C2 << C1).
  
! 2025-03-13  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/119115
! 	* config/riscv/riscv-vsetvl.cc (reg_used): New function.
! 	(reg_single_use_in_avl): Ditto.
! 	(pre_vsetvl::fuse_local_vsetvl_info): Use reg_single_use_in_avl
! 	when checking if vsetvl can be deleted.
  
! 2025-03-13  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/117955
! 	* config/riscv/riscv-vsetvl.cc: Use LMUL/ratio from vsetvl with
! 	larger SEW.
  
! 2025-03-13  Matthias Klose  <doko@ubuntu.com>
  
! 	* configure.ac: Add option --enable-versioned-jit.
! 	* configure: Regenerate.
! 	* Makefile.in: Move from jit/Make-lang.in, setting value from
! 	configure.ac.
! 	* doc/install.texi: Document option --enable-versioned-jit.
  
! 2025-03-13  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/119238
! 	* config/loongarch/simd.md (<su>dot_prod<wvec_half><mode>):
! 	Stop using structured binding.
  
! 2025-03-12  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR rtl-optimization/116564
! 	* df-problems.cc (df_simulate_defs): For partial defs, mark the
! 	register live (treat it as a RMW operation).
  
! 2025-03-12  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/115439
! 	* config/arm/predicates.md (vpr_register_operand): Allow type-punning
! 	subregs.
  
! 2025-03-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/116901
! 	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Allow
! 	stmt_info to be null.
! 	(aarch64_vector_costs::add_stmt_cost): Call count_ops even if
! 	stmt_info is null.
  
! 2025-03-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/116901
! 	* tree-vect-loop.cc (vectorizable_reduction): Set ncopies to
! 	SLP_TREE_NUMBER_OF_VEC_STMTS for SLP.
  
! 2025-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree.def (RAW_DATA_CST): Document meaning of NULL RAW_DATA_OWNER.
! 	(CONSTRUCTOR): Document meaning of RAW_DATA_CST used as element
! 	value.
  
! 2025-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/119204
! 	PR middle-end/119219
! 	* builtins.cc (fold_builtin_2): Pass type as another argument
! 	to fold_builtin_strspn and fold_builtin_strcspn.
! 	(fold_builtin_strspn): Add type argument, use it instead of
! 	size_type_node.
! 	(fold_builtin_strcspn): Add type argument, use it instead of
! 	TREE_TYPE (expr).
  
! 2025-03-12  Jeff Law  <jlaw@ventanamicro.com>
  
! 	Revert:
! 	2025-03-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/117467
! 	* ext-dce.cc (ext_dce_process_uses): When trivially possible advance
! 	the iterator over the destination of a SET.
  
! 2025-03-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/119131
! 	* config/aarch64/aarch64.cc (aarch64_valid_fp_move): Remove check
! 	for !DECIMAL_FLOAT_MODE_P.
! 	(aarch64_float_const_representable_p): Reject decimal floating modes.
! 	* config/aarch64/aarch64.md (mov<mode>): Likewise.
  
! 2025-03-11  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/extend.texi (Common Variable Attributes): Fix grammar in
! 	final sentence of -ftrivial-auto-var-init description.
  
! 2025-03-11  Juergen Christ  <jchrist@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_delegitimize_address): Add missing case.
  
! 2025-03-11  Martin Jambor  <mjambor@suse.cz>
  
! 	* tree-ssa-alias.cc (ao_compare::compare_ao_refs): Fix a
! 	copy-and-paste error.
  
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	* dwarf2out.cc (gen_compile_unit_die): Use DW_LANG_Cobol85 if
! 	language_string is "GCC COBOL" rather than "Cobol".
  
! 2025-03-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/119204
! 	* builtins.cc (fold_builtin_strcspn): Preserve the original
! 	expression type.
  
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/119183
! 	* tree.cc (skip_simple_arithmetic): If first operand of binary
! 	expr is TREE_CONSTANT or TREE_READONLY with no side-effects, call
! 	tree_invariant_p on that operand first instead of on the second.
  
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/119190
! 	* tree-complex.cc (update_complex_assignment, tree_lower_complex):
! 	Perform simple dce on dce_worklist only if optimize.
  
! 2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config.gcc: Fail in case of option --with-mode=esa.
! 	* config/s390/s390.cc (s390_option_override_internal): Default
! 	to z/Architecture mode.
! 	* config/s390/s390.h (DRIVER_SELF_SPECS): Ditto.
! 	* config/s390/s390.opt: Emit a warning for option -mesa.
! 	* doc/invoke.texi: Document the change.
  
! 2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/115835
! 	* config/s390/s390.cc (s390_insn_cost): Implement.
! 	(TARGET_INSN_COST): Define.
  
! 2025-03-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119166
! 	* tree-vect-stmts.cc (get_load_store_type): Guard SLP tree
! 	access.
  
! 2025-03-11  James K. Lowden  <jklowden@symas.com>
  
! 	* doc/contrib.texi: Update for gcobol.
! 	* doc/frontends.texi: Likewise.
! 	* doc/install.texi: Likewise.
! 	* doc/invoke.texi: Likewise.
! 	* doc/sourcebuild.texi: Likewise.
! 	* doc/standards.texi: Likewise.
  
! 2025-03-11  James K. Lowden  <jklowden@symas.com>
  
! 	* Makefile.in (installdirs): Create man3 directory.
! 	* common.opt (static-libgcobol): New driver option.
! 	* dwarf2out.cc (gen_compile_unit_die): Support Cobol as
! 	source language.
  
! 2025-03-10  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	PR target/115258
! 	* config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
! 	d.one_vector_p to decide whether op1 should be a copy of op0.
  
! 2025-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/114991
! 	* ira-costs.cc (equiv_can_be_consumed_p): Add new argument invariant_p.
! 	Add code for dealing with the invariant.
! 	(calculate_equiv_gains): Don't consider init insns.  Pass the new
! 	argument to equiv_can_be_consumed_p.  Don't treat invariant as
! 	memory.
  
! 2025-03-10  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/invoke.texi (Instrumentation Options): Fix typo introduced
! 	in commit 313edeeeb607fe32da5633cfb6f91977add446f6.
  
! 2025-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/115439
! 	* config/arm/mve.md (vec_vcmp, vec_vcmpu, vcond_mask): Use
! 	vpr_register_operand predicate for MVE_VPRED operands.
  
! 2025-03-10  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/119127
! 	* config/loongarch/loongarch.cc
! 	(loongarch_reassoc_shift_bitwise): Sign extend mask to mode,
! 	specially handle the case it's extended to -1.
! 	* config/loongarch/loongarch.md
! 	(loongarch_reassoc_shift_bitwise): Update the comment for the
! 	special case.
  
! 2025-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/117178
! 	* gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): Look through
! 	multi-dimensional array types, stop at the innermost ARRAY_TYPE.
  
! 2025-03-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/117467
! 	* ext-dce.cc (ext_dce_process_sets): Handle FP destinations better.
  
! 2025-03-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/117467
! 	* ext-dce.cc (ext_dce_process_uses): When trivially possible advance
! 	the iterator over the destination of a SET.
  
! 2025-03-09  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118922
! 	* tree-ssa-phiopt.cc (value_replacement): Set empty_or_with_defined_p
! 	to false when there is phi nodes for the middle bb.
  
! 2025-03-09  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/118457
! 	* gimplify.cc (modify_call_for_omp_dispatch): New, containing
! 	code split from gimplify_call_expr and modified to emit tree
! 	instead of gimple.  Remove the error for falling through to a call
! 	to the base function.
! 	(expand_variant_call_expr): New, split from gimplify_variant_call_expr.
! 	Call modify_call_for_omp_dispatch on calls to
! 	variants in a dispatch construct context.
! 	(gimplify_variant_call_expr): Make it call expand_variant_call_expr
! 	to do the actual work.
! 	(gimplify_call_expr): Remove sorry for calls involving both
! 	dynamic/late selectors and adjust_args/append_args, and adjust
! 	for new interface.  Move adjust_args/append_args code to
! 	modify_call_for_omp_dispatch.
! 	(gimplify_omp_dispatch): Add some comments.
  
! 2025-03-08  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Basic Asm): Document that AssemblerInstructions
! 	can be an asm constexpr.
! 	(Extended Asm): Move the notes about asm constexprs for
! 	AssemblerTemplate and Clobbers to the corresponding subsections.
! 	Remove the notes for OutputOperands and InputOperands and reword
! 	misleading descriptions of the list item syntax.  Note that
! 	constraint strings can be asm constexprs.
! 	(Asm constexprs): Use "title case" for subsection name.  Be
! 	explicit about what parts of the asm syntax this applies to and
! 	that the parentheses are required.  Correct markup and terminology.
  
! 2025-03-08  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/67301
! 	* doc/extend.texi (Extended Asm): Clarify that the square brackets
! 	around the asmSymbolicName of operands are a required part of
! 	the syntax.
  
! 2025-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/117178
! 	* tree.cc (get_attr_nonstring_decl): Look through all ARRAY_REFs, not
! 	just one and handle COMPONENT_REF and MEM_REF after skipping those
! 	rather than only when there wasn't ARRAY_REF.  Formatting fix.
  
! 2025-03-07  Kees Cook  <kees@kernel.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/117178
! 	* doc/invoke.texi (Wunterminated-string-initialization): Document
! 	the new interaction between this warning and -Wc++-compat and that
! 	initialization of decls with nonstring attribute aren't warned about.
  
! 2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR sanitizer/56682
! 	* doc/invoke.texi (Instrumentation Options): Document that -g
! 	is useful with -fsanitize=thread and -fsanitize=address.
! 	Also mention -fno-omit-frame-pointer per the asan wiki.
  
! 2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Jan Hubicka  <hubicka@ucw.cz>
! 	    H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR rtl-optimization/117477
! 	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
! 	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
! 	(aarch64_frame_allocation_cost): Likewise.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	(TARGET_FRAME_ALLOCATION_COST): Likewise.
! 	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
! 	Replace with...
! 	(ix86_callee_save_cost): ...this new hook.
! 	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	* target.h (spill_cost_type, frame_cost_type): New enums.
! 	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
! 	(ira_callee_saved_register_cost_scale): Delete.
! 	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
! 	* doc/tm.texi: Regenerate.
! 	* hard-reg-set.h (hard_reg_set_popcount): New function.
! 	* ira-color.cc (allocated_memory_p): New variable.
! 	(allocated_callee_save_regs): Likewise.
! 	(record_allocation): New function.
! 	(assign_hard_reg): Use targetm.frame_allocation_cost to model
! 	the cost of the first spill or first caller save.  Use
! 	targetm.callee_save_cost to model the cost of using new callee-saved
! 	registers.  Apply the exit rather than entry frequency to the cost
! 	of restoring a register or deallocating the frame.  Update the
! 	new variables above.
! 	(improve_allocation): Use record_allocation.
! 	(color): Initialize allocated_callee_save_regs.
! 	(ira_color): Initialize allocated_memory_p.
! 	* targhooks.h (default_callee_save_cost): Declare.
! 	(default_frame_allocation_cost): Likewise.
! 	* targhooks.cc (default_callee_save_cost): New function.
! 	(default_frame_allocation_cost): Likewise.
  
! 2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/116708
! 	* doc/invoke.texi (x86 Options): Clarify how -msse4 and -mno-sse4
! 	interact with other SSE options.
  
! 2025-03-07  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118318
! 	* ipa-cp.cc (adjust_clone_incoming_counts): Add a compatible_p check.
  
! 2025-03-07  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/arm_neon.h: Try harder to detect if we have
! 	the softfp ABI enabled.
  
! 2025-03-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/112960
! 	PR c/117029
! 	* doc/extend.texi (Complex): Add I and J suffixes to the list of
! 	complex suffixes, adjust for all of those being part of ISO C2Y,
! 	clarify that for -fno-ext-numeric-literals none of those are
! 	recognized as GNU extensions and for C++14 i is considered UDL
! 	even for -fext-numeric-literals when <complex> is included.
  
! 2025-03-07  Simon Martin  <simon@nasilyan.com>
  
! 	* tree-vect-data-refs.cc: Define INCLUDE_ALGORITHM.
  
! 2025-03-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/118464
! 	PR tree-optimization/116855
! 	* doc/invoke.texi (min-pagesize): Update docs with vectorizer use.
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Delay
! 	checks.
! 	(vect_compute_data_ref_alignment): Remove alignment checks and move to
! 	get_load_store_type, increase group access alignment.
! 	(vect_enhance_data_refs_alignment): Add note to comment needing
! 	investigating.
! 	(vect_analyze_data_refs_alignment): Likewise.
! 	(vect_supportable_dr_alignment): For group loads look at first DR.
! 	* tree-vect-stmts.cc (get_load_store_type):
! 	Perform safety checks for early break pfa.
! 	* tree-vectorizer.h (dr_set_safe_speculative_read_required,
! 	dr_safe_speculative_read_required, DR_SCALAR_KNOWN_BOUNDS): New.
! 	(need_peeling_for_alignment): Renamed to...
! 	(safe_speculative_read_required): .. This
! 	(class dr_vec_info): Add scalar_access_known_in_bounds.
  
! 2025-03-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/118464
! 	PR tree-optimization/116855
! 	* config/aarch64/aarch64-sve.md (@extract_<last_op>_<mode>,
! 	@fold_extract_<last_op>_<mode>,
! 	@aarch64_fold_extract_vector_<last_op>_<mode>): Change SVE_FULL to
! 	SVE_ALL.
! 	* config/aarch64/iterators.md (vccore): Add more partial types.
  
! 2025-03-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119145
! 	* tree-vectorizer.cc (try_vectorize_loop_1): Avoid BB
! 	vectorizing an if-converted loop body when there's a .MASK_CALL
! 	in the loop body.
  
! 2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/115485
! 	* config/arm/arm.cc (require_pic_register): Fix typos in
! 	comment. Handle fixed arm_pic_register.
  
! 2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/116125
! 	* tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list): Make
! 	the dr_with_seg_len alignment fields describe tha access sizes as
! 	well as the pointer alignment.
! 	* tree-data-ref.cc (create_intersect_range_checks): Don't compensate
! 	for invalid alignment fields here.
  
! 2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/119133
! 	* config/aarch64/aarch64.md
! 	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): Use
! 	force_lowpart_subreg.
  
! 2025-03-07  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118801
! 	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Prune
! 	sequences of uninterrupted DEBUG BEGIN_STMTs, keeping only
! 	the last of a set with unique location.
  
! 2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/113515
! 	* doc/invoke.texi (Warning Options): Improve -Wstringop-overflow
! 	documentation.
  
! 2025-03-07  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/avx10_2-512convertintrin.h
! 	(_mm512_mask_cvtbf8_ph): Correct mask width.
! 	(_mm512_maskz_cvtbf8_ph): Ditto.
! 	* config/i386/avx10_2convertintrin.h
! 	(_mm256_mask_cvtbf8_ph): Ditto.
! 	(_mm256_maskz_cvtbf8_ph): Ditto.
  
! 2025-03-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
  
! 	PR rtl-optimization/119099
! 	* ext-dce.cc (ext_dce_rd_transfer_n): Do not allow the livein
! 	set to shrink.
  
! 2025-03-06  Simon Martin  <simon@nasilyan.com>
  
! 	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
! 	comment typo, paramter -> parameter.
! 	* config/lm32/lm32.cc (lm32_std_gimplify_va_arg_expr): Likewise.
  
! 2025-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/118351
! 	PR other/38768
! 	* common/config/aarch64/aarch64-common.cc: Enable early scheduling with
! 	-O3 and higher.
! 	* doc/invoke.texi (-fschedule-insns): Update comment.
  
! 2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	Revert:
! 	2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>
! 		    Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR rtl-optimization/117477
! 	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
! 	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
! 	(aarch64_frame_allocation_cost): Likewise.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	(TARGET_FRAME_ALLOCATION_COST): Likewise.
! 	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
! 	Replace with...
! 	(ix86_callee_save_cost): ...this new hook.
! 	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	* target.h (spill_cost_type, frame_cost_type): New enums.
! 	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
! 	(ira_callee_saved_register_cost_scale): Delete.
! 	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
! 	* doc/tm.texi: Regenerate.
! 	* hard-reg-set.h (hard_reg_set_popcount): New function.
! 	* ira-color.cc (allocated_memory_p): New variable.
! 	(allocated_callee_save_regs): Likewise.
! 	(record_allocation): New function.
! 	(assign_hard_reg): Use targetm.frame_allocation_cost to model
! 	the cost of the first spill or first caller save.  Use
! 	targetm.callee_save_cost to model the cost of using new callee-saved
! 	registers.  Apply the exit rather than entry frequency to the cost
! 	of restoring a register or deallocating the frame.  Update the
! 	new variables above.
! 	(improve_allocation): Use record_allocation.
! 	(color): Initialize allocated_callee_save_regs.
! 	(ira_color): Initialize allocated_memory_p.
! 	* targhooks.h (default_callee_save_cost): Declare.
! 	(default_frame_allocation_cost): Likewise.
! 	* targhooks.cc (default_callee_save_cost): New function.
! 	(default_frame_allocation_cost): Likewise.
  
! 2025-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR lto/114501
! 	* ipa-free-lang-data.cc (find_decls_types_r): Explicitly
! 	handle CONSTRUCTORs as walk_tree handling of those is
! 	incomplete.
  
! 2025-03-06  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR rtl-optimization/114492
! 	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Check for singleton
! 	move range before calling restrict_movement.
! 	(pair_fusion::try_promote_writeback): Likewise.
  
! 2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR rtl-optimization/117477
! 	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
! 	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
! 	(aarch64_frame_allocation_cost): Likewise.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	(TARGET_FRAME_ALLOCATION_COST): Likewise.
! 	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
! 	Replace with...
! 	(ix86_callee_save_cost): ...this new hook.
! 	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST): Define.
! 	* target.h (spill_cost_type, frame_cost_type): New enums.
! 	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
! 	(ira_callee_saved_register_cost_scale): Delete.
! 	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
! 	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
! 	* doc/tm.texi: Regenerate.
! 	* hard-reg-set.h (hard_reg_set_popcount): New function.
! 	* ira-color.cc (allocated_memory_p): New variable.
! 	(allocated_callee_save_regs): Likewise.
! 	(record_allocation): New function.
! 	(assign_hard_reg): Use targetm.frame_allocation_cost to model
! 	the cost of the first spill or first caller save.  Use
! 	targetm.callee_save_cost to model the cost of using new callee-saved
! 	registers.  Apply the exit rather than entry frequency to the cost
! 	of restoring a register or deallocating the frame.  Update the
! 	new variables above.
! 	(improve_allocation): Use record_allocation.
! 	(color): Initialize allocated_callee_save_regs.
! 	(ira_color): Initialize allocated_memory_p.
! 	* targhooks.h (default_callee_save_cost): Declare.
! 	(default_frame_allocation_cost): Likewise.
! 	* targhooks.cc (default_callee_save_cost): New function.
! 	(default_frame_allocation_cost): Likewise.
  
! 2025-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/119119
! 	* gimplify.cc (is_gimple_mem_rhs_or_call): All empty CTORs
! 	are OK when not a register type.
  
! 2025-03-05  Hannes Braun  <hannes@hannesbraun.net>
  
! 	PR target/118942
! 	* config/arm/arm_neon.h (vld1q_s8_x3): Use int8_t instead of
! 	uint16_t.
! 	(vld1q_s16_x3): Use int16_t instead of uint16_t.
! 	(vld1q_s8_x4): Likewise.
! 	(vld1q_s16_x4): Likewise.
  
! 2025-03-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR rtl-optimization/119046
! 	* config/aarch64/aarch64.cc (aarch64_evpc_dup): Use VOIDmode for
! 	PARALLEL.
  
! 2025-03-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR rtl-optimization/119046
! 	* rtlanal.cc (may_trap_p_1): Don't mark FP-mode PARALLELs as trapping.
  
! 2025-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118953
! 	* value-range.cc (irange::union_bitmask): Update m_bitmask if
! 	get_bitmask () is unknown_p and m_bitmask is not even when the
! 	semantic bitmask didn't change and returning false.
  
! 2025-03-05  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/97323
! 	* tree.cc (gimple_canonical_types_compatible_p): Ignore
! 	TYPE_MODE also for ARRAY_TYPE.
! 	(verify_type): Likewise.
  
! 2025-03-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/119084
! 	* config/loongarch/lasx.md (UNSPEC_LASX_XVLDX): Remove.
! 	(lasx_xvldx): Remove.
! 	* config/loongarch/lsx.md (UNSPEC_LSX_VLDX): Remove.
! 	(lsx_vldx): Remove.
! 	* config/loongarch/simd.md (QIVEC): New define_mode_iterator.
! 	(<simd_isa>_<x>vldx): New define_expand.
! 	* config/loongarch/loongarch.cc (loongarch_address_insns_1): New
! 	static function with most logic factored out from ...
! 	(loongarch_address_insns): ... here.  Call
! 	loongarch_address_insns_1 with reg_reg_cost = 1.
! 	(loongarch_address_cost): Call loongarch_address_insns_1 with
! 	reg_reg_cost = la_addr_reg_reg_cost.
  
! 2025-03-04  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Optimization Options): New @subsubsection
! 	for pure optimization options.
  
! 2025-03-04  Oscar Gustafsson  <oscar.gustafsson@gmail.com>
  
! 	* doc/extend.texi: Improve example for __builtin_bswap16.
  
! 2025-03-04  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_TZCNT): New macro.
! 	(TARGET_AVOID_FALSE_DEP_FOR_BLS): New macro.
! 	* config/i386/i386.md (*bmi_blsi_<mode>): Add splitter for false
! 	dependency.
! 	(*bmi_blsi_<mode>_ccno): Add splitter for false dependency.
! 	(*bmi_blsi_<mode>_falsedep): New pattern.
! 	(*bmi_blsmsk_<mode>): Add splitter for false dependency.
! 	(*bmi_blsmsk_<mode>_falsedep): New pattern.
! 	(*bmi_blsr_<mode>): Add splitter for false dependency.
! 	(*bmi_blsr_<mode>_cmp): Add splitter for false dependency
! 	(*bmi_blsr_<mode>_cmp_falsedep): New pattern.
! 	* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_TZCNT): New tune.
! 	(X86_TUNE_AVOID_FALSE_DEP_FOR_BLS): New tune.
  
! 2025-03-04  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* config/i386/i386.h (TARGET_FUSE_ALU_AND_BRANCH_MEM): New macro.
! 	(TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM): New macro.
! 	(TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New macro.
! 	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Support
! 	non-single-set.
! 	(ix86_macro_fusion_pair_p): Allow ALU which only clobbers;
! 	be more careful about immediates; check TARGET_FUSE_ALU_AND_BRANCH_MEM,
! 	TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM, TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE;
! 	verify that we never use unsigned checks with inc/dec.
! 	* config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): New tune.
! 	(X86_TUNE_FUSE_ALU_AND_BRANCH_MEM): New tune.
! 	(X86_TUNE_FUSE_ALU_AND_BRANCH_MEM_IMM): New tune.
! 	(X86_TUNE_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New tune.
  
! 2025-03-04  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/118892
! 	* config/aarch64/aarch64.md (copysign<GPF:mode>3): Use
! 	force_lowpart_subreg instead of lowpart_subreg.
  
! 2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/118976
! 	* fold-const.cc (const_unop): Use ~ rather than - for BIT_NOT_EXPR.
! 	* config/aarch64/aarch64.cc (aarch64_test_sve_folding): New function.
! 	(aarch64_run_selftests): Run it.
  
! 2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119002
! 	* simplify-rtx.cc
! 	(simplify_context::simplify_logical_relational_operation): Handle
! 	comparisons between CC values.  If there is no evidence that the
! 	CC values are unsigned, restrict the fold to always-true or
! 	always-false results.
  
! 2025-03-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119096
! 	* tree-vect-loop.cc (vect_transform_reduction): Use the
! 	correct else value for .COND_fn.
  
! 2025-03-03  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(struct aarch64_extension_info): Add field.
! 	(aarch64_get_required_features): New.
! 	* config/aarch64/aarch64-builtins.cc
! 	(aarch64_simd_switcher::aarch64_simd_switcher): Rename to...
! 	(aarch64_target_switcher::aarch64_target_switcher): ...this,
! 	and extend to handle sve, nosimd and target pragmas.
! 	(aarch64_simd_switcher::~aarch64_simd_switcher): Rename to...
! 	(aarch64_target_switcher::~aarch64_target_switcher): ...this,
! 	and extend to handle sve, nosimd and target pragmas.
! 	(handle_arm_acle_h): Use aarch64_target_switcher.
! 	(handle_arm_neon_h): Rename switcher and pass explicit flags.
! 	(aarch64_general_init_builtins): Ditto.
! 	* config/aarch64/aarch64-protos.h
! 	(class aarch64_simd_switcher): Rename to...
! 	(class aarch64_target_switcher): ...this, and add new members.
! 	(aarch64_get_required_features): New prototype.
! 	* config/aarch64/aarch64-sve-builtins.cc
! 	(sve_switcher::sve_switcher): Delete
! 	(sve_switcher::~sve_switcher): Delete
! 	(sve_alignment_switcher::sve_alignment_switcher): New
! 	(sve_alignment_switcher::~sve_alignment_switcher): New
! 	(register_builtin_types): Use alignment switcher
! 	(init_builtins): Rename switcher.
! 	(handle_arm_neon_sve_bridge_h): Ditto.
! 	(handle_arm_sme_h): Ditto.
! 	(handle_arm_sve_h): Ditto, and use alignment switcher.
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(class sve_switcher): Delete.
! 	(class sme_switcher): Delete.
! 	(class sve_alignment_switcher): New.
! 	* config/aarch64/t-aarch64 (aarch64-builtins.o): Add $(REGS_H).
! 	(aarch64-sve-builtins.o): Remove $(REG_H).
  
! 2025-03-03  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/thumb1.md (split patterns for GEU and LEU): New.
  
! 2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Revert:
! 	2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* combine.cc (distribute_notes):
! 	Reverse negative logic in ternary operators.
  
! 2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* combine.cc (distribute_notes):
! 	Reverse negative logic in ternary operators.
  
! 2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR rtl-optimization/118739
! 	* combine.cc (distribute_notes) <case REG_UNUSED>: Correct the
! 	logic when the register is used by I3.
  
! 2025-03-03  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118785
! 	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Handle non-conversion
! 	unary operations separately before doing any conversions.  Check
! 	expr_type_first_operand_type_p for non-unary operations too.  Fix type
! 	of op_res.
  
! 2025-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119057
! 	* tree-vect-loop.cc (check_reduction_path): Add argument
! 	specifying whether we're analyzing the inner loop of a
! 	double reduction.  Do not allow extra uses outside of the
! 	double reduction cycle in this case.
! 	(vect_is_simple_reduction): Adjust.
  
! 2025-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/119067
! 	* ipa-devirt.cc (odr_types_equivalent_p): Check
! 	TYPE_VECTOR_SUBPARTS for vectors.
  
! 2025-03-02  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/118934
! 	* config/riscv/corev.md (cv_branch): Adjust output template.
! 	(branch): Likewise.
! 	* config/riscv/riscv.md (branch): Likewise.
! 	* config/riscv/riscv.cc (riscv_asm_output_opcode): Handle 'r' rather
! 	than 'n'.
  
! 2025-03-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR translation/118991
! 	* config/avr/avr.cc (avr_print_operand): Print ival into
! 	a temporary buffer and use %s in output_operand_lossage to make
! 	the diagnostics translatable.
  
! 2025-03-02  Filip Kastl  <fkastl@suse.cz>
  
! 	PR tree-optimization/117919
! 	* gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Prune
! 	statements that 'replace_uses_by ()' removed.
  
! 2025-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	* doc/install.texi (Specific, *-*-freebsd*): Simplify description.
  
! 2025-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR jit/117047
! 	* ggc-common.cc (ggc_internal_cleared_alloc_no_dtor): Pass size
! 	rather than s as the first argument to ggc_internal_cleared_alloc.
  
! 2025-03-01  Yuriy Kolerov  <Yuriy.Kolerov@synopsys.com>
  
! 	PR target/118906
! 	* common/config/riscv/riscv-common.cc: fix zce to zcf
! 	implication.
  
! 2025-03-01  Jan Dubiec  <jdx@o2.pl>
  
! 	PR target/114222
! 	* config/h8300/h8300.cc (h8300_init_libfuncs): For HImode override
! 	calls to external ffs() (from newlib) with calls to __ffshi2() from
! 	libgcc. The implementation of ffs() in newlib calls __builtin_ffs()
! 	what causes infinite recursion and finally a stack overflow.
  
! 2025-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/119052
! 	* input.cc (check_line): Don't call sscanf on non-null terminated
! 	buffer, instead copy line.length () bytes from line.get_buffer ()
! 	to a local buffer, null terminate it and call sscanf on that.
! 	Formatting fix.
! 	(test_replacement): Just allocate maxline * 5 rather than maxline * 15
! 	bytes for the file.  Formatting fix.
  
! 2025-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR jit/117047
! 	* acinclude.m4 (gcc_CHECK_ATTRIBUTE_ALIAS): New.
! 	* configure.ac: Add gcc_CHECK_ATTRIBUTE_ALIAS.
! 	* ggc.h (ggc_internal_alloc): Remove ATTRIBUTE_MALLOC from
! 	overload with finalizer pointer.  Call ggc_internal_alloc_no_dtor
! 	in inline overload without finalizer pointer.
! 	(ggc_internal_alloc_no_dtor): Declare.
! 	(ggc_internal_cleared_alloc): Remove ATTRIBUTE_MALLOC from
! 	overload with finalizer pointer.  Call
! 	ggc_internal_cleared_alloc_no_dtor in inline overload without
! 	finalizer pointer.
! 	(ggc_internal_cleared_alloc_no_dtor): Declare.
! 	(ggc_alloc): Call ggc_internal_alloc_no_dtor if no finalization
! 	is needed.
! 	(ggc_alloc_no_dtor): Call ggc_internal_alloc_no_dtor.
! 	(ggc_cleared_alloc): Call ggc_internal_cleared_alloc_no_dtor if no
! 	finalization is needed.
! 	(ggc_vec_alloc): Call ggc_internal_alloc_no_dtor if no finalization
! 	is needed.
! 	(ggc_cleared_vec_alloc): Call ggc_internal_cleared_alloc_no_dtor if no
! 	finalization is needed.
! 	* ggc-page.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn
! 	overload with finalizer into alias to ggc_internal_alloc_ and
! 	rename it to ...
! 	(ggc_internal_alloc_): ... this, make it extern "C".
! 	(ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS,
! 	otherwise new noinline wrapper.
! 	* ggc-common.cc (ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS,
! 	turn overload with finalizer into alias to ggc_internal_alloc_ and
! 	rename it to ...
! 	(ggc_internal_cleared_alloc_): ... this, make it extern "C".
! 	(ggc_internal_cleared_alloc_no_dtor): New alias if
! 	HAVE_ATTRIBUTE_ALIAS, otherwise new noinline wrapper.
! 	* ggc-none.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn
! 	overload with finalizer into alias to ggc_internal_alloc_ and
! 	rename it to ...
! 	(ggc_internal_alloc_): ... this, make it extern "C".
! 	(ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS,
! 	otherwise new wrapper.
! 	(ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS, turn overload
! 	with finalizer into alias to ggc_internal_alloc_ and rename it to ...
! 	(ggc_internal_cleared_alloc_): ... this, make it extern "C".
! 	(ggc_internal_cleared_alloc_no_dtor): New alias if
! 	HAVE_ATTRIBUTE_ALIAS, otherwise new wrapper.
! 	* genmatch.cc (ggc_internal_cleared_alloc, ggc_free): Formatting fix.
! 	(ggc_internal_cleared_alloc_no_dtor): Define.
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
  
! 2025-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/115871
! 	* omp-simd-clone.cc (simd_clone_adjust): For SIMD_CLONE_ARG_TYPE_MASK
! 	and sc->mask_mode not VOIDmode, set elem_type to the characteristic
! 	type rather than boolean_type_node.
  
! 2025-03-01  Jan Dubiec  <jdx@o2.pl>
  
! 	PR target/109189
! 	* config/h8300/h8300.cc (h8300_print_operand): Replace %ld format
! 	strings with HOST_WIDE_INT_PRINT_DEC macro in order to silence
! 	-Wformat warnings when building on Windows/MinGW64.
  
! 2025-02-28  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118243
! 	* ipa-sra.cc (pull_accesses_from_callee): New parameters
! 	caller_ipcp_ts and param_idx.  Check that scalar pulled accesses would
! 	not clash with a known IPA-CP aggregate constant.
! 	(param_splitting_across_edge): Pass IPA-CP transformation summary and
! 	caller parameter index to pull_accesses_from_callee.
  
! 2025-02-28  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/111245
! 	* ipa-modref.cc (modref_access_analysis::analyze_store): Do
! 	not guard the check of whether the stmt could throw by
! 	cfun->can_throw_non_call_exceptions.
  
! 2025-02-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/117712
! 	* expr.cc (force_operand): Handle {,UNSIGNED_}FIX with
! 	FIX operand using expand_fix on the inner FIX operand.
  
! 2025-02-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/87984
! 	* tree-ssa-dom.cc (dom_opt_dom_walker::optimize_stmt): Do
! 	not perform redundant store elimination to hard register
! 	variables.
! 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
! 	Likewise.
  
! 2025-02-28  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/66279
! 	* gimplify.cc (gimplify_asm_expr): Copy TREE_PURPOSE before
! 	rewriting it for "+" processing.
  
! 2025-02-28  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* config/i386/i386.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
! 	Moved to ...
! 	* config/i386/i386.cc (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
! 	Here.
  
! 2025-02-27  Pan Li  <pan2.li@intel.com>
  
! 	PR target/118931
! 	* config/riscv/riscv-v.cc (expand_const_vector): Add overflow to
! 	smode check and clean up highest bits if overflow.
  
! 2025-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/119030
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix a pasto,
! 	ll_unsignedp -> rl_unsignedp.
  
! 2025-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/118860
! 	* input.h (file_cache::tune): No longer static.  Rename argument
! 	from num_file_slots_ to num_file_slots.  Formatting fix.
! 	(file_cache::num_file_slots): Renamed to ...
! 	(file_cache::m_num_file_slots): ... this.  No longer static.
! 	* input.cc (file_cache_slot::tune): Change return type from void to
! 	size_t, return previous file_cache_slot::line_record_size value.
! 	Formatting fixes.
! 	(file_cache::tune): Rename argument from num_file_slots_ to
! 	num_file_slots.  Set m_num_file_slots rather than num_file_slots.
! 	If m_num_file_slots or file_cache_slot::line_record_size changes,
! 	delete[] m_file_slots and new it again.
! 	(file_cache::num_file_slots): Remove definition.
! 	(file_cache::lookup_file): Use m_num_file_slots rather than
! 	num_file_slots.
! 	(file_cache::evicted_cache_tab_entry): Likewise.
! 	(file_cache::file_cache): Likewise.  Initialize m_num_file_slots
! 	to 16.
! 	(file_cache::dump): Use m_num_file_slots rather than num_file_slots.
! 	(file_cache_slot::get_next_line): Formatting fixes.
! 	(file_cache_slot::read_line_num): Likewise.
! 	(get_source_text_between): Likewise.
! 	* toplev.cc (toplev::main): Call global_dc->get_file_cache ().tune
! 	rather than file_cache::tune.
  
! 2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.h (MAX_FIXED_MODE_SIZE): '#define'.
  
! 2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.opt (-mfake-ptx-alloca): New.
! 	* config/nvptx/nvptx-protos.h (nvptx_output_fake_ptx_alloca):
! 	Declare.
! 	* config/nvptx/nvptx.cc (nvptx_output_fake_ptx_alloca): New.
! 	* config/nvptx/nvptx.md (define_insn "@nvptx_alloca_<mode>")
! 	[!(TARGET_PTX_7_3 && TARGET_SM52)]: Use it for
! 	'-mfake-ptx-alloca'.
  
! 2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.md (define_expand "allocate_stack")
! 	[!TARGET_SOFT_STACK]: Move
! 	'sorry ("dynamic stack allocation not supported");'...
! 	(define_insn "@nvptx_alloca_<mode>"): ... here.
  
! 2025-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
! 	PR fortran/108369
! 	* doc/invoke.texi: Add a note to clarify. Adjust some wording.
  
! 2025-02-27  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/x86-tune.def
! 	(X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Add GNR, GNR-D, DMR.
! 	(X86_TUNE_AVOID_256FMA_CHAINS): Ditto.
! 	(X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto.
! 	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.
  
! 2025-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-range-phi.cc (phi_analyzer::process_phi): Fix comment typo,
! 	dpoesn;t -> doesn't.
  
! 2025-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR testsuite/116143
! 	* Makefile.in (EXTRA_BACKEND_OBJS): New variable.
! 	(BACKEND): Use it before libbackend.a.
  
! 2025-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/118819
! 	* alias.cc (memrefs_conflict_p): Perform arithmetics on c, xsize and
! 	ysize in poly_offset_int and return -1 if it is not representable in
! 	poly_int64.
  
! 2025-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/119001
! 	* varasm.cc (output_constructor_regular_field): Don't fail
! 	assertion if next is non-NULL and FIELD_DECL if
! 	TREE_CODE (local->type) is UNION_TYPE.
  
! 2025-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/114870
! 	* ginclude/stddef.h (__STDC_VERSION_STDDEF_H__, unreachable): Don't
! 	redefine multiple times if stddef.h is first included without __need_*
! 	defines and later with them.  Move nullptr_t and unreachable and
! 	__STDC_VERSION_STDDEF_H__ definitions into the same
! 	defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L #if block.
  
! 2025-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119002
! 	* config/arm/arm.h (REVERSE_CONDITION): Use CODE - the macro
! 	argument - in the macro rather than code.
  
! 2025-02-26  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR middle-end/119021
! 	* lra.cc (lra_asm_insn_error): Use lra_invalidate_insn_data
! 	instead of lra_update_insn_regno_info.
! 	* lra-assigns.cc (lra_split_hard_reg_for): Restore old code.
  
! 2025-02-26  Alexandre Oliva  <oliva@adacore.com>
  
! 	* doc/sourcebuild.texi: Add x86 effective target.
  
! 2025-02-26  Alexandre Oliva  <oliva@adacore.com>
  
! 	* doc/sourcebuild.texi (dg-do-if): Document.
  
! 2025-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR testsuite/116143
! 	* simple-diagnostic-path.h (simple_diagnostic_path::num_events): Define
! 	inline.
! 	(simple_diagnostic_path::num_threads): Likewise.
! 	* simple-diagnostic-path.cc (simple_diagnostic_path::num_events):
! 	Remove out of line definition.
! 	(simple_diagnostic_path::num_threads): Likewise.
  
! 2025-02-25  Jason Merrill  <jason@redhat.com>
  
! 	* doc/install.texi: 10.5 won't bootstrap with C++98.
  
! 2025-02-25  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/115458
! 	* lra-int.h (LRA_MAX_FAILED_SPLITS): Define and check its value.
! 	(lra_split_hard_reg_for): Change prototype.
! 	* lra.cc (lra): Try to split hard reg range several times after a
! 	failure.
! 	* lra-assigns.cc (lra_split_hard_reg_for): Add an arg, a flag of
! 	giving up.  Report asm error and nullify the asm insn depending on
! 	the arg value.
  
! 2025-02-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR translation/118991
! 	* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Use %wd
! 	instead of %" HOST_WIDE_INT_PRINT "d to print a hwi in error.
  
! 2025-02-25  Iain Buclaw  <ibuclaw@gdcproject.org>
  
! 	PR d/118654
! 	* config/i386/i386-d.cc (ix86_d_target_versions): Predefine GNU_CET.
! 	(ix86_d_handle_target_cf_protection): New.
! 	(ix86_d_register_target_info): Add 'CET' TargetInfo key.
  
! 2025-02-24  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/114516
! 	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
! 	Add pattern statements to program points.
  
! 2025-02-24  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR middle-end/118950
! 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Use
! 	original LHS's type.
  
! 2025-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118915
! 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): For
! 	highj == NULL_TREE use TYPE_MAX_VALUE (TREE_TYPE (lowj)) rather
! 	than TYPE_MAX_VALUE (type).
  
! 2025-02-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118973
! 	* tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Calls
! 	that alter control flow in unpredictable ways need to be
! 	preserved.
  
! 2025-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/118993
! 	* gimplify.cc (gimplify_scan_omp_clauses): Fix diagnostics typo,
! 	undfined -> undefined.
  
! 2025-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/117023
! 	* builtin-attrs.def (ATTR_NONNULL_IF_NONZERO): New DEF_ATTR_IDENT.
! 	(ATTR_NOTHROW_NONNULL_IF12_LEAF, ATTR_NOTHROW_NONNULL_IF13_LEAF,
! 	ATTR_NOTHROW_NONNULL_IF123_LEAF, ATTR_NOTHROW_NONNULL_IF23_LEAF,
! 	ATTR_NOTHROW_NONNULL_1_IF23_LEAF, ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF,
! 	ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF,
! 	ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF,
! 	ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF,
! 	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF): New
! 	DEF_ATTR_TREE_LIST.
! 	* builtins.def (BUILT_IN_STRNDUP): Use
! 	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF instead of
! 	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_STRNCAT, BUILT_IN_STRNCAT_CHK): Use
! 	ATTR_NOTHROW_NONNULL_1_IF23_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_BCOPY, BUILT_IN_MEMCPY, BUILT_IN_MEMCPY_CHK,
! 	BUILT_IN_MEMMOVE, BUILT_IN_MEMMOVE_CHK,  BUILT_IN_STRNCPY,
! 	BUILT_IN_STRNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of
! 	ATTR_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_MEMPCPY, BUILT_IN_MEMPCPY_CHK, BUILT_IN_STPNCPY,
! 	BUILT_IN_STPNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of
! 	ATTR_RETNONNULL_NOTHROW_LEAF.
! 	(BUILT_IN_BZERO, BUILT_IN_MEMSET, BUILT_IN_MEMSET_CHK): Use
! 	ATTR_NOTHROW_NONNULL_IF13_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_BCMP, BUILT_IN_MEMCMP, BUILT_IN_STRNCASECMP,
! 	BUILT_IN_STRNCMP): Use ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF instead of
! 	ATTR_PURE_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_STRNLEN): Use ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF instead of
! 	ATTR_PURE_NOTHROW_NONNULL_LEAF.
! 	(BUILT_IN_MEMCHR): Use ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF instead of
! 	ATTR_PURE_NOTHROW_NONNULL_LEAF.
  
! 2025-02-24  Lino Hsing-Yu Peng  <linopeng@andestech.com>
  
! 	* config/riscv/riscv.cc: Set multi push regs bits.
  
! 2025-02-22  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/bpf/bpf.md (define_expand "allocate_stack"): Emit
! 	'sorry, unimplemented: dynamic stack allocation not supported'.
! 	* config/nvptx/nvptx.md (define_expand "allocate_stack")
! 	[!TARGET_SOFT_STACK && !(TARGET_PTX_7_3 && TARGET_SM52)]: Likewise.
  
! 2025-02-21  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* sese.cc (debug_edge): Append a newline.
  
! 2025-02-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118954
! 	* tree-predcom.cc (ref_at_iteration): Make sure to not
! 	associate the constant offset with DR_BASE_ADDRESS when
! 	that is an offsetted pointer.
  
! 2025-02-20  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic-core.h: Add comments making clear that these
! 	functions implicitly use global_dc.
  
! 2025-02-20  David Malcolm  <dmalcolm@redhat.com>
  
! 	* libsarifreplay.cc
! 	(sarif_replayer::make_plain_text_within_result_message): Capture
! 	which json::string was used.  When reporting on unescaped "{" or
! 	"}" in SARIF message strings, use that string rather than the
! 	message object, and refer the user to §3.11.5 ("Messages with
! 	placeholders") rather than §3.11.11 ("arguments").  Ideally we'd
! 	place the error at the precise character, but that can't be done
! 	without reworking json-parsing.cc's lexer::lex_string, which is
! 	too invasive for stage 4.
! 	(sarif_replayer::get_plain_text_from_mfms): Capture which
! 	json::string was used.
! 	(sarif_replayer::lookup_plain_text_within_result_message):
! 	Likewise.
  
! 2025-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	PR target/69374
! 	* doc/install.texi (Specific, aarch64*-*-*): Drop note for
! 	Binutils pre 2.24.
  
! 2025-02-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-protos.h (aarch64_expand_sve_vec_cmp_float):
! 	Remove can_invert_p argument and change return type to void.
! 	* config/aarch64/aarch64.cc (aarch64_expand_sve_vec_cmp_float):
! 	Likewise.
! 	* config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Update call
! 	accordingly.
  
! 2025-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118521
! 	* tree-scalar-evolution.cc (final_value_replacement_loop):
! 	Fold uses of the replaced PHI def.
  
! 2025-02-20  Filip Kastl  <fkastl@suse.cz>
  
! 	* doc/invoke.texi: Fix typo file-cache-files ->
! 	file-cache-lines.
  
! 2025-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/86270
! 	* tree-outof-ssa.cc (insert_backedge_copies): Pattern
! 	match a single conflict in a loop condition and adjust
! 	that avoiding the conflict if possible.
  
! 2025-02-20  H.J. Lu  <hjl.tools@gmail.com>
  
! 	Revert:
! 	2025-02-16  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/109780
! 	PR target/109093
! 	* config/i386/i386.cc (ix86_update_stack_alignment): New.
! 	(ix86_find_all_reg_use_1): Likewise.
! 	(ix86_find_all_reg_use): Likewise.
! 	(ix86_find_max_used_stack_alignment): Also check memory accesses
! 	from registers defined by stack or frame registers.
  
! 2025-02-20  H.J. Lu  <hjl.tools@gmail.com>
  
! 	Revert:
! 	2025-02-17  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.cc (ix86_find_all_reg_use):
! 	Scan only for SET RTX in PARALLEL.
  
! 2025-02-19  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR other/118919
! 	* input.cc (file_cache_slot::m_file_path): Make non-const.
! 	(file_cache_slot::evict): Free m_file_path.
! 	(file_cache_slot::create): Store a copy of file_path if non-null.
! 	(file_cache_slot::~file_cache_slot): Free m_file_path.
  
! 2025-02-19  Pan Li  <pan2.li@intel.com>
  
! 	PR middle-end/116351
! 	* tree-vect-loop.cc (vect_verify_loop_lens): Return false if the
! 	loop_vinfo has relevant mode such as DImode.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lasx.md (UNSPEC_LASX_XVSRARI): Remove.
! 	(UNSPEC_LASX_XVSRLRI): Remove.
! 	(lasx_xvsrari_<lsxfmt>): Remove.
! 	(lasx_xvsrlri_<lsxfmt>): Remove.
! 	* config/loongarch/lsx.md (UNSPEC_LSX_VSRARI): Remove.
! 	(UNSPEC_LSX_VSRLRI): Remove.
! 	(lsx_vsrari_<lsxfmt>): Remove.
! 	(lsx_vsrlri_<lsxfmt>): Remove.
! 	* config/loongarch/simd.md (simd_<optab>_imm_round_<mode>): New
! 	define_insn.
! 	(<simd_isa>_<x>v<insn>ri_<simdfmt>): New define_expand.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/simd.md (wvec_half): New define_mode_attr.
! 	(<su>dot_prod<wvec_half><mode>): New define_expand.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/simd.md (even_odd): New define_int_attr.
! 	(vec_widen_<su>mult_<even_odd>_<mode>): New define_expand.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/simd.md (LVEC): New define_mode_attr.
! 	(simdfmt_as_i): Make it same as simdfmt for integer vector
! 	modes.
! 	(_f): New define_mode_attr.
! 	* config/loongarch/lsx.md (lsx_vpickev_b): Remove.
! 	(lsx_vpickev_h): Remove.
! 	(lsx_vpickev_w): Remove.
! 	(lsx_vpickev_w_f): Remove.
! 	(lsx_vpickod_b): Remove.
! 	(lsx_vpickod_h): Remove.
! 	(lsx_vpickod_w): Remove.
! 	(lsx_vpickev_w_f): Remove.
! 	(lsx_pick_evod_<mode>): New define_insn.
! 	(lsx_<x>vpick<ev_od>_<simdfmt_as_i><_f>): New
! 	define_expand.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lasx.md (UNSPEC_LASX_XVMADDWEV): Remove.
! 	(UNSPEC_LASX_XVMADDWEV2): Remove.
! 	(UNSPEC_LASX_XVMADDWEV3): Remove.
! 	(UNSPEC_LASX_XVMADDWOD): Remove.
! 	(UNSPEC_LASX_XVMADDWOD2): Remove.
! 	(UNSPEC_LASX_XVMADDWOD3): Remove.
! 	(lasx_xvmaddwev_h_b<u>): Remove.
! 	(lasx_xvmaddwev_w_h<u>): Remove.
! 	(lasx_xvmaddwev_d_w<u>): Remove.
! 	(lasx_xvmaddwev_q_d): Remove.
! 	(lasx_xvmaddwod_h_b<u>): Remove.
! 	(lasx_xvmaddwod_w_h<u>): Remove.
! 	(lasx_xvmaddwod_d_w<u>): Remove.
! 	(lasx_xvmaddwod_q_d): Remove.
! 	(lasx_xvmaddwev_q_du): Remove.
! 	(lasx_xvmaddwod_q_du): Remove.
! 	(lasx_xvmaddwev_h_bu_b): Remove.
! 	(lasx_xvmaddwev_w_hu_h): Remove.
! 	(lasx_xvmaddwev_d_wu_w): Remove.
! 	(lasx_xvmaddwev_q_du_d): Remove.
! 	(lasx_xvmaddwod_h_bu_b): Remove.
! 	(lasx_xvmaddwod_w_hu_h): Remove.
! 	(lasx_xvmaddwod_d_wu_w): Remove.
! 	(lasx_xvmaddwod_q_du_d): Remove.
! 	* config/loongarch/lsx.md (UNSPEC_LSX_VMADDWEV): Remove.
! 	(UNSPEC_LSX_VMADDWEV2): Remove.
! 	(UNSPEC_LSX_VMADDWEV3): Remove.
! 	(UNSPEC_LSX_VMADDWOD): Remove.
! 	(UNSPEC_LSX_VMADDWOD2): Remove.
! 	(UNSPEC_LSX_VMADDWOD3): Remove.
! 	(lsx_vmaddwev_h_b<u>): Remove.
! 	(lsx_vmaddwev_w_h<u>): Remove.
! 	(lsx_vmaddwev_d_w<u>): Remove.
! 	(lsx_vmaddwev_q_d): Remove.
! 	(lsx_vmaddwod_h_b<u>): Remove.
! 	(lsx_vmaddwod_w_h<u>): Remove.
! 	(lsx_vmaddwod_d_w<u>): Remove.
! 	(lsx_vmaddwod_q_d): Remove.
! 	(lsx_vmaddwev_q_du): Remove.
! 	(lsx_vmaddwod_q_du): Remove.
! 	(lsx_vmaddwev_h_bu_b): Remove.
! 	(lsx_vmaddwev_w_hu_h): Remove.
! 	(lsx_vmaddwev_d_wu_w): Remove.
! 	(lsx_vmaddwev_q_du_d): Remove.
! 	(lsx_vmaddwod_h_bu_b): Remove.
! 	(lsx_vmaddwod_w_hu_h): Remove.
! 	(lsx_vmaddwod_d_wu_w): Remove.
! 	(lsx_vmaddwod_q_du_d): Remove.
! 	* config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>):
! 	New define_insn.
! 	(<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt><u>): New
! 	define_expand.
! 	(simd_maddw_evod_<mode>_hetero): New define_insn.
! 	(<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>):
! 	New define_expand.
! 	(<simd_isa>_maddw<ev_od>_q_d<u>_punned): New define_expand.
! 	(<simd_isa>_maddw<ev_od>_q_du_d_punned): New define_expand.
! 	* config/loongarch/loongarch-builtins.cc
! 	(CODE_FOR_lsx_vmaddwev_q_d): Define as a macro to override it
! 	with the punned expand.
! 	(CODE_FOR_lsx_vmaddwev_q_du): Likewise.
! 	(CODE_FOR_lsx_vmaddwev_q_du_d): Likewise.
! 	(CODE_FOR_lsx_vmaddwod_q_d): Likewise.
! 	(CODE_FOR_lsx_vmaddwod_q_du): Likewise.
! 	(CODE_FOR_lsx_vmaddwod_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvmaddwev_q_d): Likewise.
! 	(CODE_FOR_lasx_xvmaddwev_q_du): Likewise.
! 	(CODE_FOR_lasx_xvmaddwev_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvmaddwod_q_d): Likewise.
! 	(CODE_FOR_lasx_xvmaddwod_q_du): Likewise.
! 	(CODE_FOR_lasx_xvmaddwod_q_du_d): Likewise.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lasx.md (UNSPEC_LASX_XVHADDW_Q_D): Remove.
! 	(UNSPEC_LASX_XVHSUBW_Q_D): Remove.
! 	(UNSPEC_LASX_XVHADDW_QU_DU): Remove.
! 	(UNSPEC_LASX_XVHSUBW_QU_DU): Remove.
! 	(lasx_xvh<addsub:optab>w_h<u>_b<u>): Remove.
! 	(lasx_xvh<addsub:optab>w_w<u>_h<u>): Remove.
! 	(lasx_xvh<addsub:optab>w_d<u>_w<u>): Remove.
! 	(lasx_xvhaddw_q_d): Remove.
! 	(lasx_xvhsubw_q_d): Remove.
! 	(lasx_xvhaddw_qu_du): Remove.
! 	(lasx_xvhsubw_qu_du): Remove.
! 	(reduc_plus_scal_v4di): Call gen_lasx_haddw_q_d_punned instead
! 	of gen_lasx_xvhaddw_q_d.
! 	(reduc_plus_scal_v8si): Likewise.
! 	* config/loongarch/lsx.md (UNSPEC_LSX_VHADDW_Q_D): Remove.
! 	(UNSPEC_ASX_VHSUBW_Q_D): Remove.
! 	(UNSPEC_ASX_VHADDW_QU_DU): Remove.
! 	(UNSPEC_ASX_VHSUBW_QU_DU): Remove.
! 	(lsx_vh<addsub:optab>w_h<u>_b<u>): Remove.
! 	(lsx_vh<addsub:optab>w_w<u>_h<u>): Remove.
! 	(lsx_vh<addsub:optab>w_d<u>_w<u>): Remove.
! 	(lsx_vhaddw_q_d): Remove.
! 	(lsx_vhsubw_q_d): Remove.
! 	(lsx_vhaddw_qu_du): Remove.
! 	(lsx_vhsubw_qu_du): Remove.
! 	(reduc_plus_scal_v2di): Change the temporary register mode to
! 	V1TI, and pun the mode calling gen_vec_extractv2didi.
! 	(reduc_plus_scal_v4si): Change the temporary register mode to
! 	V1TI.
! 	* config/loongarch/simd.md (simd_h<optab>w_<mode>_<su>): New
! 	define_insn.
! 	(<simd_isa>_<x>vh<optab>w_<simdfmt_w><u>_<simdfmt><u>): New
! 	define_expand.
! 	(<simd_isa>_h<optab>w_q<u>_d<u>_punned): New define_expand.
! 	* config/loongarch/loongarch-builtins.cc
! 	(CODE_FOR_lsx_vhaddw_q_d): Define as a macro to override with
! 	punned expand.
! 	(CODE_FOR_lsx_vhaddw_qu_du): Likewise.
! 	(CODE_FOR_lsx_vhsubw_q_d): Likewise.
! 	(CODE_FOR_lsx_vhsubw_qu_du): Likewise.
! 	(CODE_FOR_lasx_xvhaddw_q_d): Likewise.
! 	(CODE_FOR_lasx_xvhaddw_qu_du): Likewise.
! 	(CODE_FOR_lasx_xvhsubw_q_d): Likewise.
! 	(CODE_FOR_lasx_xvhsubw_qu_du): Likewise.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lasx.md (UNSPEC_LASX_XVADDWEV): Remove.
! 	(UNSPEC_LASX_XVADDWEV2): Remove.
! 	(UNSPEC_LASX_XVADDWEV3): Remove.
! 	(UNSPEC_LASX_XVSUBWEV): Remove.
! 	(UNSPEC_LASX_XVSUBWEV2): Remove.
! 	(UNSPEC_LASX_XVMULWEV): Remove.
! 	(UNSPEC_LASX_XVMULWEV2): Remove.
! 	(UNSPEC_LASX_XVMULWEV3): Remove.
! 	(UNSPEC_LASX_XVADDWOD): Remove.
! 	(UNSPEC_LASX_XVADDWOD2): Remove.
! 	(UNSPEC_LASX_XVADDWOD3): Remove.
! 	(UNSPEC_LASX_XVSUBWOD): Remove.
! 	(UNSPEC_LASX_XVSUBWOD2): Remove.
! 	(UNSPEC_LASX_XVMULWOD): Remove.
! 	(UNSPEC_LASX_XVMULWOD2): Remove.
! 	(UNSPEC_LASX_XVMULWOD3): Remove.
! 	(lasx_xv<addsubmul:optab>wev_h_b<u>): Remove.
! 	(lasx_xv<addsubmul:optab>wev_w_h<u>): Remove.
! 	(lasx_xv<addsubmul:optab>wev_d_w<u>): Remove.
! 	(lasx_xvaddwev_q_d): Remove.
! 	(lasx_xvsubwev_q_d): Remove.
! 	(lasx_xvmulwev_q_d): Remove.
! 	(lasx_xv<addsubmul:optab>wod_h_b<u>): Remove.
! 	(lasx_xv<addsubmul:optab>wod_w_h<u>): Remove.
! 	(lasx_xv<addsubmul:optab>wod_d_w<u>): Remove.
! 	(lasx_xvaddwod_q_d): Remove.
! 	(lasx_xvsubwod_q_d): Remove.
! 	(lasx_xvmulwod_q_d): Remove.
! 	(lasx_xvaddwev_q_du): Remove.
! 	(lasx_xvsubwev_q_du): Remove.
! 	(lasx_xvmulwev_q_du): Remove.
! 	(lasx_xvaddwod_q_du): Remove.
! 	(lasx_xvsubwod_q_du): Remove.
! 	(lasx_xvmulwod_q_du): Remove.
! 	(lasx_xv<addmul:optab>wev_h_bu_b): Remove.
! 	(lasx_xv<addmul:optab>wev_w_hu_h): Remove.
! 	(lasx_xv<addmul:optab>wev_d_wu_w): Remove.
! 	(lasx_xv<addmul:optab>wod_h_bu_b): Remove.
! 	(lasx_xv<addmul:optab>wod_w_hu_h): Remove.
! 	(lasx_xv<addmul:optab>wod_d_wu_w): Remove.
! 	(lasx_xvaddwev_q_du_d): Remove.
! 	(lasx_xvsubwev_q_du_d): Remove.
! 	(lasx_xvmulwev_q_du_d): Remove.
! 	(lasx_xvaddwod_q_du_d): Remove.
! 	(lasx_xvsubwod_q_du_d): Remove.
! 	* config/loongarch/lsx.md (UNSPEC_LSX_XVADDWEV): Remove.
! 	(UNSPEC_LSX_VADDWEV2): Remove.
! 	(UNSPEC_LSX_VADDWEV3): Remove.
! 	(UNSPEC_LSX_VSUBWEV): Remove.
! 	(UNSPEC_LSX_VSUBWEV2): Remove.
! 	(UNSPEC_LSX_VMULWEV): Remove.
! 	(UNSPEC_LSX_VMULWEV2): Remove.
! 	(UNSPEC_LSX_VMULWEV3): Remove.
! 	(UNSPEC_LSX_VADDWOD): Remove.
! 	(UNSPEC_LSX_VADDWOD2): Remove.
! 	(UNSPEC_LSX_VADDWOD3): Remove.
! 	(UNSPEC_LSX_VSUBWOD): Remove.
! 	(UNSPEC_LSX_VSUBWOD2): Remove.
! 	(UNSPEC_LSX_VMULWOD): Remove.
! 	(UNSPEC_LSX_VMULWOD2): Remove.
! 	(UNSPEC_LSX_VMULWOD3): Remove.
! 	(lsx_v<addsubmul:optab>wev_h_b<u>): Remove.
! 	(lsx_v<addsubmul:optab>wev_w_h<u>): Remove.
! 	(lsx_v<addsubmul:optab>wev_d_w<u>): Remove.
! 	(lsx_vaddwev_q_d): Remove.
! 	(lsx_vsubwev_q_d): Remove.
! 	(lsx_vmulwev_q_d): Remove.
! 	(lsx_v<addsubmul:optab>wod_h_b<u>): Remove.
! 	(lsx_v<addsubmul:optab>wod_w_h<u>): Remove.
! 	(lsx_v<addsubmul:optab>wod_d_w<u>): Remove.
! 	(lsx_vaddwod_q_d): Remove.
! 	(lsx_vsubwod_q_d): Remove.
! 	(lsx_vmulwod_q_d): Remove.
! 	(lsx_vaddwev_q_du): Remove.
! 	(lsx_vsubwev_q_du): Remove.
! 	(lsx_vmulwev_q_du): Remove.
! 	(lsx_vaddwod_q_du): Remove.
! 	(lsx_vsubwod_q_du): Remove.
! 	(lsx_vmulwod_q_du): Remove.
! 	(lsx_v<addmul:optab>wev_h_bu_b): Remove.
! 	(lsx_v<addmul:optab>wev_w_hu_h): Remove.
! 	(lsx_v<addmul:optab>wev_d_wu_w): Remove.
! 	(lsx_v<addmul:optab>wod_h_bu_b): Remove.
! 	(lsx_v<addmul:optab>wod_w_hu_h): Remove.
! 	(lsx_v<addmul:optab>wod_d_wu_w): Remove.
! 	(lsx_vaddwev_q_du_d): Remove.
! 	(lsx_vsubwev_q_du_d): Remove.
! 	(lsx_vmulwev_q_du_d): Remove.
! 	(lsx_vaddwod_q_du_d): Remove.
! 	(lsx_vsubwod_q_du_d): Remove.
! 	(lsx_vmulwod_q_du_d): Remove.
! 	* config/loongarch/loongarch-modes.def: Add V4TI and V1DI.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_gen_stepped_int_parallel): New function prototype.
! 	* config/loongarch/loongarch.cc (loongarch_print_operand):
! 	Accept 'O' for printing "ev" or "od."
! 	(loongarch_gen_stepped_int_parallel): Implement.
! 	* config/loongarch/predicates.md
! 	(vect_par_cnst_even_or_odd_half): New define_predicate.
! 	* config/loongarch/simd.md (WVEC_HALF): New define_mode_attr.
! 	(simdfmt_w): Likewise.
! 	(zero_one): New define_int_iterator.
! 	(ev_od): New define_int_attr.
! 	(simd_<optab>w_evod_<mode:IVEC>_<su>): New define_insn.
! 	(<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt><u>): New
! 	define_expand.
! 	(simd_<optab>w_evod_<mode>_hetero): New define_insn.
! 	(<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>):
! 	New define_expand.
! 	(DIVEC): New define_mode_iterator.
! 	(<simd_isa>_<optab>w<ev_od>_q_d<u>_punned): New define_expand.
! 	(<simd_isa>_<optab>w<ev_od>_q_du_d_punned): Likewise.
! 	* config/loongarch/loongarch-builtins.cc
! 	(CODE_FOR_lsx_vaddwev_q_d): Define as a macro to override it
! 	with the punned expand.
! 	(CODE_FOR_lsx_vaddwev_q_du): Likewise.
! 	(CODE_FOR_lsx_vsubwev_q_d): Likewise.
! 	(CODE_FOR_lsx_vsubwev_q_du): Likewise.
! 	(CODE_FOR_lsx_vmulwev_q_d): Likewise.
! 	(CODE_FOR_lsx_vmulwev_q_du): Likewise.
! 	(CODE_FOR_lsx_vaddwod_q_d): Likewise.
! 	(CODE_FOR_lsx_vaddwod_q_du): Likewise.
! 	(CODE_FOR_lsx_vsubwod_q_d): Likewise.
! 	(CODE_FOR_lsx_vsubwod_q_du): Likewise.
! 	(CODE_FOR_lsx_vmulwod_q_d): Likewise.
! 	(CODE_FOR_lsx_vmulwod_q_du): Likewise.
! 	(CODE_FOR_lsx_vaddwev_q_du_d): Likewise.
! 	(CODE_FOR_lsx_vmulwev_q_du_d): Likewise.
! 	(CODE_FOR_lsx_vaddwod_q_du_d): Likewise.
! 	(CODE_FOR_lsx_vmulwod_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvaddwev_q_d): Likewise.
! 	(CODE_FOR_lasx_xvaddwev_q_du): Likewise.
! 	(CODE_FOR_lasx_xvsubwev_q_d): Likewise.
! 	(CODE_FOR_lasx_xvsubwev_q_du): Likewise.
! 	(CODE_FOR_lasx_xvmulwev_q_d): Likewise.
! 	(CODE_FOR_lasx_xvmulwev_q_du): Likewise.
! 	(CODE_FOR_lasx_xvaddwod_q_d): Likewise.
! 	(CODE_FOR_lasx_xvaddwod_q_du): Likewise.
! 	(CODE_FOR_lasx_xvsubwod_q_d): Likewise.
! 	(CODE_FOR_lasx_xvsubwod_q_du): Likewise.
! 	(CODE_FOR_lasx_xvmulwod_q_d): Likewise.
! 	(CODE_FOR_lasx_xvmulwod_q_du): Likewise.
! 	(CODE_FOR_lasx_xvaddwev_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvmulwev_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvaddwod_q_du_d): Likewise.
! 	(CODE_FOR_lasx_xvmulwod_q_du_d): Likewise.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/lsx.md (mov<LSX:mode>): Remove.
! 	(movmisalign<LSX:mode>): Remove.
! 	(mov<LSX:mode>_lsx): Remove.
! 	* config/loongarch/lasx.md (mov<LASX:mode>): Remove.
! 	(movmisalign<LASX:mode>): Remove.
! 	(mov<LASX:mode>_lasx): Remove.
! 	* config/loongarch/loongarch-modes.def (V1TI): Add.
! 	(V2TI): Mention in the comment.
! 	* config/loongarch/loongarch.md (mode): Add V1TI and V2TI.
! 	* config/loongarch/simd.md (ALLVEC_TI): New mode iterator.
! 	(mov<ALLVEC_TI:mode): New define_expand.
! 	(movmisalign<ALLVEC_TI:mode>): Likewise.
! 	(mov<ALLVEC_TI:mode>_simd): New define_insn_and_split.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_const_vector_vrepli): New function prototype.
! 	* config/loongarch/loongarch.cc (loongarch_const_vector_vrepli):
! 	Implement.
! 	(loongarch_const_insns): Call loongarch_const_vector_vrepli
! 	instead of loongarch_const_vector_same_int_p.
! 	(loongarch_split_vector_move_p): Likewise.
! 	(loongarch_output_move): Use loongarch_const_vector_vrepli to
! 	pun operend[1] into a better mode if it's a const int vector,
! 	and decide the suffix of [x]vrepli with the new mode.
! 	* config/loongarch/constraints.md (YI): Call
! 	loongarch_const_vector_vrepli instead of
! 	loongarch_const_vector_same_int_p.
  
! 2025-02-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/115478
! 	* config/loongarch/loongarch.md (any_or_plus): New
! 	define_code_iterator.
! 	(bstrins_<mode>_for_ior_mask): Use any_or_plus instead of ior.
! 	(bytepick_w_<bytepick_imm>): Likewise.
! 	(bytepick_d_<bytepick_imm>): Likewise.
! 	(bytepick_d_<bytepick_imm>_rev): Likewise.
  
! 2025-02-19  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR middle-end/113525
! 	* doc/invoke.texi (dump-rtl-sibling): Drop documentation for pass
! 	removed long ago.
! 	(dump-rtl-unshare): Likewise.
  
! 2025-02-18  Andi Kleen  <ak@gcc.gnu.org>
  
! 	* doc/invoke.texi:
  
! 2025-02-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Put
! 	properties in alphabetical order.
  
! 2025-02-18  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/115703
! 	* config/riscv/riscv-vsetvl.cc: Use max_sew for calculating the
! 	new LMUL.
  
! 2025-02-18  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/108840
! 	* late-combine.cc (late_combine::check_register_pressure):
! 	Take only allocatable registers into account when checking
! 	the permissiveness of register classes.
  
! 2025-02-18  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR rtl-optimization/118320
! 	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Tweak wording in dump
! 	message when punting on invalid use arrays.
  
! 2025-02-18  Soumya AR  <soumyaa@nvidia.com>
  
! 	* config/aarch64/tuning_models/generic_armv8_a.h: Updated prefetch
! 	struct pointer.
  
! 2025-02-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/98845
! 	* tree-ssa-tail-merge.cc (stmt_local_def): Consider a
! 	def with no uses not local.
  
! 2025-02-18  Pan Li  <pan2.li@intel.com>
  
! 	PR target/118540
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Report error when cmd xlen is different with target attribute.
  
! 2025-02-18  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386.opt.urls: Adjust the order for avx10.2
! 	and avx10.2-512 due to their order change in i386.opt.
  
! 2025-02-18  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118805
! 	* gimple-fold.cc (fold_truth_andor_for_combine): Detect and
! 	cope with zero-extension in signbit tests.  Reject swapping
! 	right-compare operands if rsignbit.
  
! 2025-02-17  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.cc (ix86_find_all_reg_use):
! 	Scan only for SET RTX in PARALLEL.
  
! 2025-02-17  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR middle-end/118288
! 	* builtins.cc (expand_builtin_crc_table_based):
! 	Use gen_int_mode to emit constant integers with MSB set.
  
! 2025-02-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118895
! 	* tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Only allow
! 	CSE if we can verify the result is available.
  
! 2025-02-17  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118764
! 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu)
! 	[has CVT]: Mention CVT in header comment of generated specs file.
  
! 2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386.opt.urls: Regenetated.
  
! 2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AVX10_1_UNSET): Adjust macro.
! 	(OPTION_MASK_ISA2_AVX10_2_256_UNSET): Removed.
! 	(OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto.
! 	(OPTION_MASK_ISA2_AVX10_2_UNSET): New.
! 	(ix86_handle_option): Remove disable part for avx10.2-256.
! 	Rename avx10.2-512 switch case to avx10.2 and adjust disable
! 	part macro.
! 	* common/config/i386/i386-isas.h: Adjust avx10.2 and
! 	avx10.2-512.
! 	* config/i386/driver-i386.cc
! 	(host_detect_local_cpu): Do not append -mno-avx10.x-256
! 	for -march=native.
! 	* config/i386/i386-options.cc
! 	(ix86_valid_target_attribute_inner_p): Adjust avx10.2 and
! 	avx10.2-512.
! 	* config/i386/i386.opt: Reject Negative for mavx10.2-256.
! 	Alias mavx10.2-512 to mavx10.2. Reject Negative for
! 	mavx10.2-512.
! 	* doc/extend.texi: Adjust documentation.
! 	* doc/sourcebuild.texi: Ditto.
  
! 2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AVX2_UNSET): Change AVX10.1 unset macro.
! 	(OPTION_MASK_ISA2_AVX10_1_256_UNSET): Removed.
! 	(OPTION_MASK_ISA2_AVX10_1_512_UNSET): Removed.
! 	(OPTION_MASK_ISA2_AVX10_1_UNSET): New.
! 	(ix86_handle_option): Adjust AVX10.1 unset macro.
! 	* common/config/i386/i386-isas.h: Remove avx10.1.
! 	* config/i386/i386-options.cc
! 	(ix86_valid_target_attribute_inner_p): Ditto.
! 	(ix86_option_override_internal): Adjust warning message.
! 	* config/i386/i386.opt: Remove mavx10.1.
! 	* doc/extend.texi: Remove avx10.1 and adjust doc.
! 	* doc/sourcebuild.texi: Ditto.
  
! 2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118815
! 	* config/i386/i386-options.cc (ix86_option_override_internal):
! 	Do not check vector size conflict when AVX512 is not explicitly
! 	set.
  
! 2025-02-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/118248
! 	* config/riscv/riscv-string.cc (riscv_block_move_straight): Only
! 	allocate REGS buffer if it will be needed.
  
! 2025-02-16  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118764
! 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins)
! 	[TARGET_CVT]: Define __AVR_CVT__.
! 	* doc/invoke.texi (AVR Built-in Macros): Document __AVR_CVT__.
  
! 2025-02-16  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_result_regno_unused_p): New static function.
! 	(avr_out_bitop): Only output result bytes that are used.
! 	(avr_out_plus_1): Same.
  
! 2025-02-16  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-protos.h (avr_builtin_supported_p): Remove.
! 	* config/avr/avr.cc (avr_init_builtins): Don't initialize
! 	non-available built-ins with NULL_TREE.
! 	(avr_builtin_supported_p): Move to...
! 	* config/avr/avr-c.cc: ...here.
! 	(avr_resolve_overloaded_builtin): Run avr_builtin_supported_p.
  
! 2025-02-16  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/109780
! 	PR target/109093
! 	* config/i386/i386.cc (ix86_update_stack_alignment): New.
! 	(ix86_find_all_reg_use_1): Likewise.
! 	(ix86_find_all_reg_use): Likewise.
! 	(ix86_find_max_used_stack_alignment): Also check memory accesses
! 	from registers defined by stack or frame registers.
  
! 2025-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/98028
! 	* vr-values.cc (check_for_binary_op_overflow): Try to use a known
! 	relationship betwen op0/op1 to statically determine overflow state.
  
! 2025-02-15  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/autovec-opt.md
! 	(*single_widen_first_<any_widen_binop:optab><any_extend:su><mode>):
! 	New combine "bridge" pattern.
  
! 2025-02-15  Keith Packard  <keithp@keithp.com>
  
! 	* config/rx/rx.md (rx_cmpstrn): Correctly handle len=0 case.
  
! 2025-02-15  David Malcolm  <dmalcolm@redhat.com>
  
! 	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Call
! 	handle_fix_object if we see a single-element "fixes" array.
! 	(sarif_replayer::handle_fix_object): New.
! 	(sarif_replayer::handle_artifact_change_object): New.
  
! 2025-02-15  David Malcolm  <dmalcolm@redhat.com>
  
! 	* libsarifreplay.cc (should_add_rule_p): New.
! 	(sarif_replayer::handle_result_obj): Use it to filter out rules
! 	that don't make sense.
  
! 2025-02-15  David Malcolm  <dmalcolm@redhat.com>
  
! 	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Treat any
! 	relatedLocations without messages as secondary ranges within the
! 	diagnostic.  Doing so requires stashing the notes until after
! 	the diagnostic has been finished, so that relatedLocations can be
! 	walked in one pass.
  
! 2025-02-15  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR sarif-replay/118881
! 	* doc/libgdiagnostics/topics/physical-locations.rst: Add
! 	diagnostic_physical_location_get_file.
! 	* libgdiagnostics++.h (physical_location::get_file): New wrapper.
! 	(diagnostic::add_location): Likewise.
! 	* libgdiagnostics.cc (diagnostic_manager::get_file_by_name): New.
! 	(diagnostic_physical_location::get_file): New.
! 	(diagnostic_physical_location_get_file): New.
! 	* libgdiagnostics.h (diagnostic_physical_location_get_file): New.
! 	* libgdiagnostics.map (diagnostic_physical_location_get_file): New.
! 	* libsarifreplay.cc (class annotation): New.
! 	(add_any_annotations): New.
! 	(sarif_replayer::handle_result_obj): Collect vectors of
! 	annotations in the calls to handle_location_object and apply them
! 	to "err" and to "note" as appropriate.
! 	(sarif_replayer::handle_thread_flow_location_object): Pass nullptr
! 	for annotations.
! 	(sarif_replayer::handle_location_object): Handle §3.28.6
! 	"annotations" property, using it to populate a new
! 	"out_annotations" param.
  
! 2025-02-15  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	* config/nvptx/nvptx.cc (nvptx_record_needed_fndecl): Tag as
! 	'static'.
  
! 2025-02-15  Jin Ma  <jinma@linux.alibaba.com>
  
! 	PR target/118872
! 	* config/riscv/riscv.cc (riscv_fntype_abi): Strengthen the logic
! 	of the check to avoid missing the error report.
  
! 2025-02-14  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118878
! 	* config/avr/avr.cc (avr_out_plus_1): Don't ICE on result of
! 	paradoxical reg's register allocation.
  
! 2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/94282
! 	PR target/113331
! 	* common/config/gcn/gcn-common.cc (gcn_except_unwind_info): 'return UI_TARGET;'.
! 	* config/gcn/gcn.cc (gcn_asm_init_sections): New function.
! 	(TARGET_ASM_INIT_SECTIONS): '#define'.
  
! 2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/86660
! 	* common/config/nvptx/nvptx-common.cc (nvptx_except_unwind_info):
! 	'return UI_TARGET;'.
! 	* config/nvptx/nvptx.cc (nvptx_assemble_integer): Handle
! 	'exception_section'.
! 	(nvptx_output_section_asm_op, nvptx_asm_init_sections): New
! 	functions.
! 	(TARGET_ASM_INIT_SECTIONS): '#define'.
! 	* config/nvptx/nvptx.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
! 	Don't '#define'.
! 	(ASM_OUTPUT_DWARF_DELTA): '#define'.
  
! 2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.cc (init_frag): New 'bool active' member.
! 	(output_init_frag, nvptx_assemble_value, nvptx_assemble_integer)
! 	(nvptx_output_skip, nvptx_assemble_decl_begin)
! 	(nvptx_assemble_decl_end): Sanity-check its state.
  
! 2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx.cc (nvptx_output_skip): Clarify case of
! 	no or incomplete initializer.
  
! 2025-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118852
! 	* tree-vect-slp.cc (vect_analyze_slp): For early-break
! 	forced-live IVs make sure we create an appropriate
! 	entry into the SLP graph.
  
! 2025-02-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/118790
! 	* tree.cc (struct gt_value_expr_mark_data): New type.
! 	(gt_value_expr_mark_2): Don't call ggc_set_mark, instead check
! 	ggc_marked_p.  Treat data as gt_value_expr_mark_data * with pset
! 	in it rather than address of the pset itself and push to be marked
! 	VAR_DECLs into to_mark vec.
! 	(gt_value_expr_mark_1): Change argument from hash_set<tree> *
! 	to gt_value_expr_mark_data * and find pset in it.
! 	(gt_value_expr_mark): Pass to traverse_noresize address of
! 	gt_value_expr_mark_data object rather than hash_table<tree> and
! 	for all entries in the to_mark vector after the traversal call
! 	gt_ggc_mx.
  
! 2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch.opt.in: Add
! 	option '-maddr-reg-reg-cost='.
! 	* config/loongarch/loongarch-def.cc
! 	(loongarch_rtx_cost_data::loongarch_rtx_cost_data): Initialize
! 	addr_reg_reg_cost to 3.
! 	* config/loongarch/loongarch-opts.cc
! 	(loongarch_target_option_override): If '-maddr-reg-reg-cost='
! 	is not used, set it to the initial value.
! 	* config/loongarch/loongarch-tune.h
! 	(struct loongarch_rtx_cost_data): Add the member
! 	addr_reg_reg_cost and its assignment function to the structure
! 	loongarch_rtx_cost_data.
! 	* config/loongarch/loongarch.cc (loongarch_address_insns):
! 	Use la_addr_reg_reg_cost to set the cost of ADDRESS_REG_REG.
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch.opt.urls: Regenerate.
! 	* doc/invoke.texi: Add description of '-maddr-reg-reg-cost='.
  
! 2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/118843
! 	* config/loongarch/loongarch-c.cc
! 	(loongarch_update_cpp_builtins): Fix macro definition issues.
  
! 2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/118828
! 	* config/loongarch/loongarch-c.cc (loongarch_pragma_target_parse):
! 	Update the predefined macros.
  
! 2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-c.cc (builtin_undef): New macro.
! 	(loongarch_cpu_cpp_builtins): Split to loongarch_update_cpp_builtins
! 	and loongarch_define_unconditional_macros.
! 	(loongarch_def_or_undef): New functions.
! 	(loongarch_define_unconditional_macros): Likewise.
! 	(loongarch_update_cpp_builtins): Likewise.
  
! 2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-target-attr.cc
! 	(loongarch_pragma_target_parse): Move to ...
! 	(loongarch_register_pragmas): Move to ...
! 	* config/loongarch/loongarch-c.cc
! 	(loongarch_pragma_target_parse): ... here.
! 	(loongarch_register_pragmas): ... here.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_process_target_attr): Function Declaration.
  
! 2025-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/90579
! 	* tree-ssa-forwprop.cc (simplify_bitfield_ref): Move to
! 	match.pd.
! 	(pass_forwprop::execute): Adjust.
! 	* match.pd (bit_field_ref (vec_perm ...)): New pattern
! 	modeled after simplify_bitfield_ref.
! 	* tree-vect-loop.cc (vect_expand_fold_left): Fold the
! 	element extract stmt, combining it with the vector def.
  
! 2025-02-13  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	PR target/118832
! 	* config/riscv/riscv-v.cc (expand_const_vector):  Expand as
! 	vlmax insn during lra.
  
! 2025-02-13  Marek Polacek  <polacek@redhat.com>
  
! 	PR driver/117739
! 	* doc/invoke.texi: Tweak wording for -Whardened.
! 	* gcc.cc (driver_handle_option): If -z lazy or -z norelro was
! 	specified, don't enable linker hardening.
! 	(process_command): Don't check warn_hardened.
  
! 2025-02-13  Ed Catmur  <ed@catmur.uk>
! 	    Jason Merrill  <jason@redhat.com>
  
! 	PR c++/70536
! 	* dwarf2out.cc (gen_formal_parameter_pack_die): Add name attr.
  
! 2025-02-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/118790
! 	* gengtype.cc (write_roots): Remove cache variable, instead break from
! 	the loop on match and test o for NULL.  If the cache option has
! 	non-empty string argument, call the specified function with v->name
! 	as argument before calling gt_cleare_cache on it.
! 	* tree.cc (gt_value_expr_mark_2, gt_value_expr_mark_1,
! 	gt_value_expr_mark): New functions.
! 	(value_expr_for_decl): Use GTY ((cache ("gt_value_expr_mark"))) rather
! 	than just GTY ((cache)).
! 	* doc/gty.texi (cache): Document optional argument of cache option.
  
! 2025-02-13  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/114522
! 	* config/arm/arm-builtins.cc (arm_fold_aes_op): New function.
! 	(arm_general_gimple_fold_builtin): New function.
! 	* config/arm/arm-builtins.h (arm_general_gimple_fold_builtin): New
! 	prototype.
! 	* config/arm/arm.cc (arm_gimple_fold_builtin): Call
! 	arm_general_gimple_fold_builtin as needed.
  
! 2025-02-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/118822
! 	PR c++/118833
! 	* tree-iterator.h (tsi_split_stmt_list): Declare.
! 	* tree-iterator.cc (tsi_split_stmt_list): New function.
  
! 2025-02-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (gcc_cv_ld_eh_frame_ciev3): Remove.
! 	* configure, config.in: Regenerate.
! 	* config/sol2.cc (solaris_override_options): Remove.
! 	* config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
! 	* config/sol2-protos.h (solaris_override_options): Remove.
  
! 2025-02-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* doc/install.texi (Specific, *-*-solaris2*): Updates for newer
! 	Solaris 11.4 SRUs and binutils 2.44.
  
! 2025-02-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/118835
! 	* config/s390/s390.cc (s390_valid_shift_count): Reject shift
! 	count operands which do not trivially fit the scheme of
! 	address operands.
  
! 2025-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118817
! 	* tree-ssa-sccvn.cc (vn_nary_simplify): Do not process
! 	CONSTRUCTOR NARY or update from CONSTRUCTOR simplified
! 	gimple_match_op.
  
! 2025-02-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR rtl-optimization/102150
! 	* loop-invariant.cc (find_invariant_insn): Treat inline-asm similar to
! 	trapping instruction and only move them if always executed.
  
! 2025-02-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR rtl-optimization/102150
! 	* ifcvt.cc (cheap_bb_rtx_cost_p): Return false if the insn
! 	has an inline-asm in it.
  
! 2025-02-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.opt.urls: Add -mcall-main.
  
! 2025-02-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118806
! 	* config/avr/avr.opt (-mcall-main): New option and...
! 	(avropt_call_main): ...variable.
! 	* config/avr/avr.cc (avr_no_call_main_p): New variable.
! 	(avr_insert_attributes) [-mno-call-main, main]: Add attributes
! 	noreturn and section(".init9") to main.  Set avr_no_call_main_p.
! 	(avr_file_end) [avr_no_call_main_p]: Define symbol __call_main.
! 	* doc/invoke.texi (AVR Options) <-mno-call-main>: Document.
! 	<-mnodevicelib>: Extend explanation.
  
! 2025-02-12  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR tree-optimization/117790
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Set profile counts for {main,alt}_loop_exit_block.
  
! 2025-02-12  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	* config/riscv/vector.md: vncvt substitute vnsrl.
! 	vnsrl with x0 replace with immediate 0.
! 	vneg substitute vrsub.
  
! 2025-02-12  Jin Ma  <jinma@linux.alibaba.com>
  
! 	PR target/118601
! 	* config/riscv/riscv-string.cc (expand_block_move): Check with new
! 	constraint 'vl' instead of 'K'.
! 	(expand_vec_setmem): Likewise.
! 	(expand_vec_cmpmem): Likewise.
! 	* config/riscv/riscv-v.cc (force_vector_length_operand): Likewise.
! 	(expand_load_store): Likewise.
! 	(expand_strided_load): Likewise.
! 	(expand_strided_store): Likewise.
! 	(expand_lanes_load_store): Likewise.
  
! 2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/install.texi: Add missing comma after @xref to fix warning.
  
! 2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi: Fix a bunch of typos and other writing bugs.
! 	* doc/invoke.texi: Likewise.
  
! 2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* Makefile.in (TEXI_GCCINT_FILES): Remove interface.texi.
! 	* doc/gccint.texi (Top): Remove menu entry for the "interface" node,
! 	and include of interface.texi.
! 	* doc/interface.texi: Delete.
  
! 2025-02-12  Yangyu Chen  <cyy@cyyself.name>
  
! 	* config/riscv/riscv-feature-bits.h (RISCV_VENDOR_FEATURE_BITS_LENGTH): Drop.
! 	(struct riscv_vendor_feature_bits): Drop.
  
! 2025-02-11  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/115478
! 	* config/aarch64/iterators.md (any_or_plus): New code iterator.
! 	* config/aarch64/aarch64.md (extr<mode>5_insn): Use any_or_plus.
! 	(extr<mode>5_insn_alt, extrsi5_insn_uxtw): Likewise.
! 	(extrsi5_insn_uxtw_alt, extrsi5_insn_di): Likewise.
  
! 2025-02-11  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/188574
! 	* doc/invoke.texi: Adjust -frange-for-ext-temps documentation.
  
! 2025-02-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def
! 	(SSVE_FP8FMA): Adjust formatting.
! 	(FP8DOT4): Replace FP8FMA dependency with FP8.
! 	(SSVE_FP8DOT4): Replace SSVE_FP8FMA dependency with SME2+FP8.
! 	(FP8DOT2): Replace FP8DOT4 dependency with FP8.
! 	(SSVE_FP8DOT2): Replace SSVE_FP8DOT4 dependency with SME2+FP8.
  
! 2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* omp-general.cc (omp_check_context_selector): Change
! 	metadirective_p argument to a 3-way flag.  Add extra check for
! 	OMP_CTX_BEGIN_DECLARE_VARIANT.
! 	* omp-general.h (enum omp_ctx_directive): New.
! 	(omp_check_context_selector): Adjust declaration.
  
! 2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* omp-general.cc (omp_context_selector_props_compare): Handle
! 	arbitrary expressions in the "user" and "device_num" selectors.
! 	(omp_context_selector_set_compare): Detect mismatch when one
! 	selector specifies a score and the other doesn't.
  
! 2025-02-11  Martin Jambor  <mjambor@suse.cz>
  
! 	PR lto/118125
! 	* ipa-fnsummary.cc (redirect_to_unreachable): Add checking assert
! 	that the builtin_unreachable decl has attribute cold.
  
! 2025-02-11  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR sarif-replay/118792
! 	* libsarifreplay.cc (sarif_replayer::handle_region_object): Fix
! 	off-by-one in handling of endColumn property so that the code
! 	matches the comment and the SARIF spec (§3.30.8).
  
! 2025-02-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118817
! 	* tree-ssa-pre.cc (fully_constant_expression): Fold into
! 	the single caller.
! 	(phi_translate_1): Refactor folded in fully_constant_expression.
! 	* tree-ssa-sccvn.cc (vn_nary_simplify): Update the NARY with
! 	the simplified expression.
  
! 2025-02-11  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/118825
! 	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Replace x with
! 	SYM.
  
! 2025-02-11  YunQiang Su  <syq@debian.org>
  
! 	* config.gcc: Add mips*64*-linux-muslabi64 triple support.
  
! 2025-02-11  Jie Mei  <jie.mei@oss.cipunited.com>
! 	    Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/mips/i6400.md (i6400_fpu_minmax): Include
! 	fclass type.
! 	(i6400_fpu_fadd): Include frint type.
! 	* config/mips/mips.cc (AVAIL_NON_MIPS16): Add an entry
! 	for __builtin_mipsr6_xxx.
! 	(MIPSR6_BUILTIN_PURE): Same as above.
! 	(CODE_FOR_mipsr6_min_a_s, CODE_FOR_mipsr6_min_a_d)
! 	(CODE_FOR_mipsr6_max_a_s, CODE_FOR_mipsr6_max_a_d)
! 	(CODE_FOR_mipsr6_class_s, CODE_FOR_mipsr6_class_d):
! 	New code_aliasing macros.
! 	(mips_builtins): Add mips32r6 min_a_s, min_a_d, max_a_s,
! 	max_a_d, class_s, class_d builtins.
! 	* config/mips/mips.h (ISA_HAS_FRINT): Define a new macro.
! 	(ISA_HAS_FCLASS): Same as above.
! 	* config/mips/mips.md (UNSPEC_FRINT): New unspec.
! 	(UNSPEC_FCLASS): Same as above.
! 	(type): Add frint and fclass.
! 	(fmin_a_<mode>): Generates MINA.fmt instructions.
! 	(fmax_a_<mode>): Generates MAXA.fmt instructions.
! 	(rint<mode>2): Generates RINT.fmt instructions.
! 	(fclass_<mode>): Generates CLASS.fmt instructions.
! 	* config/mips/p6600.md (p6600_fpu_fadd): Include
! 	frint type.
! 	(p6600_fpu_fabs): Include fclass type.
  
! 2025-02-11  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118813
! 	* config/i386/avx512bwintrin.h: Fix wrong __OPTIMIZE__
! 	wrap.
  
! 2025-02-10  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/gcn/mkoffload.cc (enum elf_arch_code): Add
! 	EF_AMDGPU_MACH_AMDGCN_NONE.
! 	(elf_arch): Use enum elf_arch_code as type.
! 	(tool_cleanup): Silence warning by removing tailing '.' from error.
! 	(get_arch_name): Return enum elf_arch_code.
! 	(check_for_missing_lib): New; print fatal error if the multilib
! 	is not available but it is for the associate generic ISA.
! 	(main): Call it.
  
! 2025-02-10  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (GCN): Update section about multilibs and
! 	required LLVM version.
  
! 2025-02-10  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118097
! 	* ipa-cp.cc (ipa_get_jf_arith_result): Adjust comment.
! 	(ipa_get_jf_pass_through_result): Removed.
! 	(ipa_value_from_jfunc): Use directly ipa_get_jf_arith_result, do
! 	not specify operation type but make sure we check and possibly
! 	convert the result.
! 	(get_val_across_arith_op): Remove the last parameter, always pass
! 	NULL_TREE to ipa_get_jf_arith_result in its last argument.
! 	(propagate_vals_across_arith_jfunc): Do not pass res_type to
! 	get_val_across_arith_op.
! 	(propagate_vals_across_pass_through): Add checking assert that
! 	parm_type is not NULL.
  
! 2025-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/118623
! 	* config/i386/i386.md (*bt<mode>): Represent bt as
! 	compare:CCC of const0_rtx and zero_extract rather than
! 	zero_extract and const0_rtx.
! 	(*bt<SWI48:mode>_mask): Likewise.
! 	(*jcc_bt<mode>): Likewise.  Use LTU and GEU as flags test
! 	instead of EQ and NE.
! 	(*jcc_bt<mode>_mask): Likewise.
! 	(*jcc_bt<SWI48:mode>_mask_1): Likewise.
! 	(Help combine recognize bt followed by cmov splitter): Likewise.
! 	(*bt<mode>_setcqi): Likewise.
! 	(*bt<mode>_setncqi): Likewise.
! 	(*bt<mode>_setnc<mode>): Likewise.
! 	(*bt<mode>_setncqi_2): Likewise.
! 	(*bt<mode>_setc<mode>_mask): Likewise.
  
! 2025-02-09  Dario Gjorgjevski  <dario.gjorgjevski@gmail.com>
  
! 	PR middle-end/117263
! 	* genautomata.cc (output_statistics): Avoid set but unnused warnings
! 	when compiling with NDEBUG.
  
! 2025-02-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/118146
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Handle subreg
! 	of vector source better to avoid ICE.
  
! 2025-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118764
! 	* doc/invoke.texi (AVR Options): Fix typos.
  
! 2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.md (exception_receiver): 'define_expand'.
! 	* config/nvptx/nvptx.md (exception_receiver): Likewise.
  
! 2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords): Clarify that
! 	effective-target 'exceptions' and 'exceptions_enabled' are
! 	orthogonal.
  
! 2025-02-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/118776
! 	* config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW
! 	iterator rather than VI48_AVX512VL.
! 	(<mask_codefor><code><mode>3<mask_name>): Rename to ...
! 	(*avx512bw_<code><mode>3<mask_name>): ... this.  Use
! 	nonimmediate_operand rather than register_operand predicate and %v
! 	rather than v constraint for operand 1 and adjust condition to reject
! 	MEMs in both operand 1 and 2.
  
! 2025-02-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/114522
! 	* config/aarch64/aarch64-builtins.cc (aarch64_fold_aes_op): New function.
! 	(aarch64_general_gimple_fold_builtin): Call aarch64_fold_aes_op for crypto_aese
! 	and crypto_aesd.
  
! 2025-02-07  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (file_cache::m_line_recent,
! 	m_line_recent_first, m_line_recent_last): Add.
! 	(file_cache_slot::evict): Clear new fields.
! 	(file_cache_slot::create): Clear new fields.
! 	(file_cache_slot::file_cache_slot): Initialize new fields.
! 	(file_cache_slot::~file_cache_slot): Release m_line_recent.
! 	(file_cache_slot::get_next_line): Maintain ring buffer of lines
! 	in m_line_recent.
! 	(file_cache_slot::read_line_num): Use m_line_recent to look up
! 	recent lines quickly.
  
! 2025-02-07  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/118089
! 	* config/arm/arm.cc (arm_emit_multi_reg_pop): Restructure.
! 	Don't emit LDR on thumb2 when POP can be used for smaller code.
! 	Don't add a CFA adjust note when SP is popped off the stack.
  
! 2025-02-07  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/118089
! 	* config/arm/arm.cc (arm_emit_multi_reg_pop): Add a CFA adjust
! 	note to single-register POP instructions.
  
! 2025-02-07  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/116244
! 	* ira-build.cc (create_insn_allocnos): Do not restrict the check for
! 	subreg uses to allocno creation time.  Do it for all uses.
  
! 2025-02-07  Richard Biener  <rguenther@suse.de>
  
! 	PR jit/118780
! 	* system.h: Check INCLUDE_DLFCN_H for including dlfcn.h instead
! 	of ENABLE_PLUGIN.
! 	* plugin.cc: Define INCLUDE_DLFCN_H.
  
! 2025-02-07  Pan Li  <pan2.li@intel.com>
  
! 	PR target/118103
! 	* config/riscv/riscv.cc (riscv_conditional_register_usage): Add
! 	the VXRM as the global_regs.
  
! 2025-02-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/118771
! 	* config/aarch64/aarch64.cc (aarch64_split_move): Assert that npieces is
! 	greater than 0.
  
! 2025-02-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115538
! 	* tree-vectorizer.h (vect_get_slp_scalar_def): Declare.
! 	* tree-vect-slp.cc (vect_get_slp_scalar_def): New helper.
! 	* tree-vect-generic.cc (expand_vector_conversion): Adjust.
! 	* tree-vect-stmts.cc (vectorizable_conversion): For SLP
! 	correctly look at ranges of the scalar defs of the SLP operand.
! 	(supportable_indirect_convert_operation): Likewise.
  
! 2025-02-07  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Update
! 	'amdhsa.version' output to match used code version.
! 	* config/gcn/gen-gcn-device-macros.awk: Add a comment to
! 	crosslink.
  
! 2025-02-07  Xi Ruoyao  <xry111@xry111.site>
  
  	* config/loongarch/loongarch.md
! 	(*sel<code><GPR:mode>_using_<GPR2:mode>): Rename to ...
! 	(*sel<code><GPR:mode>_using_<X:mode>): ... here.
! 	(GPR2): Remove as nothing uses it now.
  
! 2025-02-07  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118514
! 	PR tree-optimization/118706
! 	* gimple-fold.cc (decode_field_reference): Refuse to consider
! 	merging out-of-bounds BIT_FIELD_REFs.
! 	(make_bit_field_load): Drop too-strict assert.
! 	* tree-eh.cc (bit_field_ref_in_bounds_p): Rename to...
! 	(access_in_bounds_of_type_p): ... this.  Change interface,
! 	export.
! 	(tree_could_trap_p): Adjust.
! 	* tree-eh.h (access_in_bounds_of_type_p): Declare.
  
! 2025-02-07  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/gcn/gcn-devices.def (GCN_DEVICE): Add gfx9-generic,
! 	gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033, gfx1034,
! 	gfx1035, gfx1101, gfx1102, gfx1150, gfx1151, gfx1152, and gfx1153.
! 	Add a currently unused column linking, a specific ISA to a generic
! 	one (if it exists).
! 	* config/gcn/gcn-tables.opt: Regenerate
! 	* doc/invoke.texi (AMD GCN): Add the the new gfc... and the older
! 	gfx{10-3,11}-generic to -march= as 'experimental'.
  
! 2025-02-07  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/gcn/gcn-devices.def (GCN_DEVICE): Change sramecc for
! 	gfx906 to 'any'.
! 	* config/gcn/gcn.cc (GCN_DEVICE): Add tailing ... to #define.
  
! 2025-02-07  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR rtl-optimization/111673
! 	PR rtl-optimization/115932
! 	PR rtl-optimization/116028
! 	PR rtl-optimization/117081
! 	PR rtl-optimization/117082
! 	PR rtl-optimization/118497
! 	* ira-color.cc (assign_hard_reg): Call the target hook for the
! 	callee-saved register cost scale in epilogue and prologue.
! 	* target.def (ira_callee_saved_register_cost_scale): New target
  	hook.
! 	* targhooks.cc (default_ira_callee_saved_register_cost_scale):
! 	New.
! 	* targhooks.h (default_ira_callee_saved_register_cost_scale):
! 	Likewise.
! 	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
! 	New.
! 	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Likewise.
! 	* doc/tm.texi: Regenerated.
! 	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE):
! 	New.
  
! 2025-02-06  Craig Blackmore  <craig.blackmore@embecosm.com>
  
! 	* config/riscv/riscv.md: Move UNSPEC_SSP_SET and UNSPEC_SSP_TEST
! 	to unspec enum.
  
! 2025-02-06  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.opt.urls: Add mcvt.
  
! 2025-02-06  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/118756
! 	* tree-ssa-loop-ivopts.cc (contain_complex_addr_expr): Remove.
  
! 2025-02-06  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118764
! 	* config/avr/avr.opt (-mcvt): New target option.
! 	* config/avr/avr-arch.h (AVR_CVT): New enum value.
! 	* config/avr/avr-mcus.def: Add AVR_CVT flag for devices that
! 	support it.
! 	* config/avr/avr.cc (avr_handle_isr_attribute) [TARGET_CVT]: Issue
! 	an error when a vector number larger that 3 is used.
! 	* config/avr/gen-avr-mmcu-specs.cc (McuInfo.have_cvt): New property.
! 	(print_mcu) <*avrlibc_startfile>: Use crt<mcu>-cvt.o depending
! 	on -mcvt (or issue an error when the device doesn't support a CVT).
! 	* doc/invoke.texi (AVR Options): Document -mcvt.
  
! 2025-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/117506
! 	* loop-iv.cc (get_biv_step_1): For {ZERO,SIGN}_EXTEND
! 	of PLUS apply {ZERO,SIGN}_EXTEND to op1.
  
! 2025-02-06  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118768
! 	* config/avr/genmultilib.awk: Parse the AVR_MCU lines in
! 	a more robust way w.r.t. white spaces.
  
! 2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/118561
! 	* config/loongarch/loongarch-builtins.cc
! 	(loongarch_expand_builtin_lsx_test_branch):
! 	NULL_RTX will not be returned when an error is detected.
! 	(loongarch_expand_builtin): Likewise.
  
! 2025-02-06  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/110449
! 	* tree-ssa-loop-manip.h (insert_iv_increment): Declare.
! 	* tree-ssa-loop-manip.cc (insert_iv_increment): New function,
! 	split out from...
! 	(create_iv): ...here and generalized to gimple_seqs.
! 	* tree-vect-loop.cc (vectorizable_induction): Use
! 	standard_iv_increment_position and insert_iv_increment
! 	to insert the IV increment.
  
! 2025-02-06  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/117922
! 	* fold-mem-offsets.cc (pass_fold_mem_offsets::execute):
! 	Do nothing for a highly connected CFG.
  
! 2025-02-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118749
! 	* tree-vect-data-refs.cc (vector_alignment_reachable_p): Pass
! 	in the vectorization factor, when that cannot maintain
! 	the DRs target alignment do not claim we can reach that
! 	by peeling.
  
! 2025-02-05  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/bfin/bfin.md (abssi): Disable pattern.
  
! 2025-02-05  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/115568
! 	* lra-remat.cc (create_cands): Check that output reload insn is
! 	adjacent to given insn.  Update a comment.
  
! 2025-02-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_insn_cost): Give PARALLELs
! 	the same cost as the costliest SET.
  
! 2025-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/117239
! 	* cselib.cc (cselib_init): Remove spurious closing paren in
! 	the #ifdef STACK_ADDRESS_OFFSET specific code.
  
! 2025-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/117239
! 	* cselib.cc: Include predict.h.
! 	(callmem): Change type from rtx to rtx[2].
! 	(cselib_preserve_only_values): Use callmem[0] rather than callmem.
! 	(cselib_invalidate_mem): Optimize and don't try to invalidate
! 	for the mem_rtx == callmem[1] case MEMs which clearly can't be
! 	below the stack pointer.
! 	(cselib_process_insn): Use callmem[0] rather than callmem.
! 	For const/pure calls also call cselib_invalidate_mem (callmem[1])
! 	in !ACCUMULATE_OUTGOING_ARGS or cfun->calls_alloca functions.
! 	(cselib_init): Initialize callmem[0] rather than callmem and also
! 	initialize callmem[1].
  
! 2025-02-05  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/118089
! 	* config/arm/arm.cc (thumb2_expand_return): Use LDM SP!, {PC}
! 	when optimizing for size, or when there's no performance benefit over
! 	LDR PC, [SP], #4.
! 	(arm_expand_epilogue): Likewise.
  
! 2025-02-05  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/arm.md (*pop_multiple_with_writeback_and_return): Remove
! 	constraints.  Don't validate the first transfer register here.
  
! 2025-02-05  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/arm.cc (decompose_addr_for_ldm_stm): New function.
! 	(ldm_stm_operation_p): Rework to clarify logic.  Allow single
! 	registers to be pushed or popped using LDM/STM.
  
! 2025-02-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR tree-optimization/118727
! 	* tree-vect-patterns.cc (vect_recog_sad_pattern): Don't call
! 	vect_look_through_possible_promotion on ABD inputs.
  
! 2025-02-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config/arm/t-rtems: Add Cortex-M33 multilib.
  
! 2025-02-04  Andi Kleen  <ak@gcc.gnu.org>
  
! 	* doc/invoke.texi: Document file cache tunables.
! 	* params.opt: Move auto tuning description to lines.
  
! 2025-02-04  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* config/s390/s390.cc (print_operand): Remove the no longer
! 	necessary 31-bit and weak symbol handling.
! 	* config/s390/s390.md (*movdi_64): Do not use @PLT with larl.
! 	(*movsi_larl): Likewise.
! 	(main_base_64): Likewise.
! 	(reload_base_64): Likewise.
  
! 2025-02-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/117113
! 	* gimple-loop-jam.cc (unroll_jam_possible_p): Detect when
! 	we cannot handle virtual SSA update.
  
! 2025-02-04  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/116926
! 	* optabs-query.cc (find_widening_optab_handler_and_mode): Fix
! 	limit for `vec-mode -> scalar-mode` case.
  
! 2025-02-04  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/117611
! 	* combine.cc (simplify_shift_const_1): Bail if not
! 	scalar int mode.
  
! 2025-02-04  Richard Biener  <rguenther@suse.de>
  
! 	PR lto/113207
! 	* ipa-free-lang-data.cc (free_lang_data_in_type): First drop
! 	const/volatile qualifiers from function argument types,
! 	then build a simplified type.
  
! 2025-02-03  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.md (*sibcall_pop_memory):
! 	Disable for TARGET_INDIRECT_BRANCH_REGISTER
! 	* config/i386/predicates.md (call_insn_operand): Enable when
! 	"satisfies_constraint_Bw (op)" is true, instead of open-coding
! 	constraint here.
! 	(sibcall_insn_operand): Ditto with "satisfies_constraint_Bs (op)"
  
! 2025-02-03  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_choose_vector_init_constant):
! 	New function, split out from...
! 	(aarch64_expand_vector_init_fallback): ...here.  Use a bit-
! 	reversed increment to find a constant index.  Add support for
! 	stepped constants.
  
! 2025-02-03  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR rtl-optimization/117248
! 	* config/pa/predicates.md (r25_operand): New predicate.
! 	(r26_operand): Likewise.
! 	* config/pa/pa.md: Use match_operand for r25 and r26 hard
! 	register operands in mult, div, udiv, mod and umod millicode
! 	patterns.
  
! 2025-02-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118717
! 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1):
! 	Do not common stores referencing abnormal SSA names.
! 	* tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise.
  
! 2025-02-03  Andi Kleen  <ak@gcc.gnu.org>
  
! 	* input.cc (check_line): New.
! 	(test_replacement): New function to test line caching.
! 	(input_cc_tests): Call test_replacement
  
! 2025-02-03  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (file_cache_slot::get_next_line): Implement
! 	dynamic sizing of m_line_record based on input length.
! 	* params.opt: (param_file_cache_lines): Set to 0 to size
! 	dynamically.
  
! 2025-02-03  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (total_lines_num): Remove.
! 	(file_cache_slot::evict): Ditto.
! 	(file_cache_slot::create): Ditto.
! 	(file_cache_slot::set_content): Ditto.
! 	(file_cache_slot::file_cache_slot): Ditto.
! 	(file_cache_slot::dump): Ditto.
  
! 2025-02-03  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (file_cache_slot::get_next_line): Use new algorithm
! 	to maintain
! 	(file_cache_slot::read_line_num): Use binary search for lookup.
  
! 2025-02-03  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (file_cache::tune): New function.
! 	* input.h (class file_cache): Make tunables non const.
! 	* params.opt: Add new tunables.
! 	* toplev.cc (toplev::main): Initialize input buffer context
! 	tunables.
  
! 2025-02-02  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/117411
! 	* doc/gm2.texi (Exception handling): New section.
! 	(The ISO system module): Add description of COFF_T.
! 	(Assembler language): Tidy up last sentance.
  
! 2025-02-02  Lewis Hyatt  <lhyatt@gmail.com>
  
! 	PR middle-end/115913
! 	* optc-save-gen.awk (cl_optimization_compare): Skip options with
! 	CL_WARNING flag.
  
! 2025-02-01  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/118713
! 	* config/i386/i386-expand.cc (ix86_expand_call): Change "if
! 	(TARGET_X32 ...)" back to "else if (TARGET_X32 ...)".
  
! 2025-02-01  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/118713
! 	* config/i386/constraints.md (Bs): Always disable if
! 	TARGET_INDIRECT_BRANCH_REGISTER is true.
! 	(Bw): Likewise.
! 	* config/i386/i386-expand.cc (ix86_expand_call): Force indirect
! 	call via register for x32 GOT slot call if
! 	TARGET_INDIRECT_BRANCH_REGISTER is true.
! 	* config/i386/i386-protos.h (ix86_nopic_noplt_attribute_p): New.
! 	* config/i386/i386.cc (ix86_nopic_noplt_attribute_p): Make it
! 	global.
! 	* config/i386/i386.md (*call_got_x32): Disable indirect call via
! 	memory for TARGET_INDIRECT_BRANCH_REGISTER.
! 	(*call_value_got_x32): Likewise.
! 	(*sibcall_value_pop_memory): Likewise.
! 	* config/i386/predicates.md (constant_call_address_operand):
! 	Return false if both TARGET_INDIRECT_BRANCH_REGISTER and
! 	ix86_nopic_noplt_attribute_p are true.
  
! 2025-02-01  David Malcolm  <dmalcolm@redhat.com>
  
! 	* libsarifreplay.cc (sarif_replayer::handle_run_obj): Pass run to
! 	handle_result_obj.
! 	(sarif_replayer::handle_result_obj): Add run_obj param and pass it
! 	to handle_location_object and handle_thread_flow_object.
! 	(sarif_replayer::handle_thread_flow_object): Add run_obj param and
! 	pass it to handle_thread_flow_location_object.
! 	(sarif_replayer::handle_thread_flow_location_object): Add run_obj
! 	param and pass it to handle_location_object.
! 	(sarif_replayer::handle_location_object): Add run_obj param and
! 	pass it to handle_logical_location_object.
! 	(sarif_replayer::handle_logical_location_object): Add run_obj
! 	param.  If the run_obj is non-null and has "logicalLocations",
! 	then use these "cached" logical locations if we see an "index"
! 	property, as per §3.33.3
  
! 2025-02-01  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR tree-optimization/114277
! 	* match.pd (a * (a || b) -> a): New pattern.
! 	(a * !(a || b) -> 0): Likewise.
  
! 2025-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/117432
! 	* ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs):
! 	Also return_false if operands have incompatible types.
! 	(func_checker::compare_gimple_call): Check fntype1 vs. fntype2
! 	compatibility for all non-internal calls and assume fntype1 and
! 	fntype2 are non-NULL for those.  For calls to non-prototyped
! 	calls or for stdarg_p functions after the last named argument (if any)
! 	check type compatibility of call arguments.
  
! 2025-01-31  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/116234
! 	* lra-constraints.cc (multiple_insn_refs_p): New function.
! 	(curr_insn_transform): Use it.
  
! 2025-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/100530
! 	* dwarf2out.cc (modified_type_die): Do not claim we handle
! 	address-space qualification with dwarf_qual_info[].
  
! 2025-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118689
! 	PR modula2/115032
! 	* tree-ssa-loop-niter.cc (build_cltz_expr): Return NULL_TREE if fn is
! 	NULL and use_ifn is false.
  
! 2025-01-31  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop.cc (vect_analyze_loop_operations): Only
! 	call vectorizable_lc_phi when not PURE_SLP.
! 	(vectorizable_reduction): Do not claim having handled
! 	the inner loop LC PHI for outer loop vectorization.
  
! 2025-01-30  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/builtins.def (STRLEN_FLASH, STRLEN_FLASHX)
! 	(STRLEN_MEMX): New DEF_BUILTIN's.
! 	* config/avr/avr.cc (avr_ftype_strlen): New static function.
! 	(avr_builtin_supported_p): New built-ins are not for AVR_TINY.
! 	(avr_init_builtins) <strlen_flash_node, strlen_flashx_node,
! 	strlen_memx_node>: Provide new fntypes.
! 	(avr_fold_builtin) [AVR_BUILTIN_STRLEN_FLASH]
! 	[AVR_BUILTIN_STRLEN_FLASHX, AVR_BUILTIN_STRLEN_MEMX]: Fold if
! 	possible.
! 	* doc/extend.texi (AVR Built-in Functions): Document
! 	__builtin_avr_strlen_flash, __builtin_avr_strlen_flashx,
! 	__builtin_avr_strlen_memx.
  
! 2025-01-30  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/builtins.def (AVR_FIRST_C_ONLY_BUILTIN_ID): New macro.
! 	* config/avr/avr-protos.h (avr_builtin_supported_p): New.
! 	* config/avr/avr.cc (avr_builtin_supported_p): New function.
! 	(avr_init_builtins): Only provide a built-in when it is supported.
! 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins): Only define the
! 	__BUILTIN_AVR_<NAME> build-in defines when the associated built-in
! 	function is supported.
! 	* doc/extend.texi (AVR Built-in Functions): Add a note that
! 	following built-ins are supported for only for GNU-C.
  
! 2025-01-30  Jakub Jelinek  <jakub@redhat.com>
! 	    Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/118696
! 	* config/s390/vector.md (*vec_cmpgt<mode><mode>_nocc_emu,
! 	*vec_cmpgtu<mode><mode>_nocc_emu): Duplicate the first rather than
! 	second V2DImode element.
  
! 2025-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118695
! 	* expr.cc (expand_expr_real_1): When expanding a MEM_REF
! 	to a non-MEM by committing it to a stack temporary make
! 	sure to handle misaligned accesses correctly.
  
! 2025-01-30  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* gimplify.cc (gimplify_call_expr): For OpenMP's append_args clause
! 	processed by 'omp dispatch', update for internal-representation
! 	changes; fix handling of hidden arguments, add some comments and
! 	handle Fortran's value dummy and optional/pointer/allocatable actual
! 	args.
  
! 2025-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118692
! 	* expr.cc (expand_expr_real_1): When expanding a MEM_REF
! 	as BIT_FIELD_REF avoid large offsets for accesses not
! 	overlapping the base object.
  
! 2025-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114052
! 	* tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check
! 	for infinite subloops we might not exit.
  
! 2025-01-30  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/118320
! 	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Commonize
! 	the merge of input_uses and return early if it fails.
  
! 2025-01-29  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/118010
! 	PR modula2/118183
! 	PR modula2/116073
! 	* doc/gm2.texi (-fm2-file-offset-bits=): Change the default size
! 	description to CSSIZE_T.
! 	Add COFF_T to the list of data types exported by SYSTEM.def.
  
! 2025-01-29  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/118429
! 	* pair-fusion.cc (latest_hazard_before): Add an extra parameter
! 	to say whether the instruction is a load or a store.  If the
! 	instruction is not a load or store and has memory side effects,
! 	prevent it from being moved earlier.
! 	(pair_fusion::find_trailing_add): Update call accordingly.
! 	(pair_fusion_bb_info::fuse_pair): If the trailng addition had
! 	a memory side-effect, use a tombstone to preserve it.
  
! 2025-01-29  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md (*negsi2.libgcc): New insn.
  
! 2025-01-29  Yoshinori Sato  <ysato@users.sourceforge.jp>
  
! 	* config/rx/constraints.md (Q): Also check that the address
! 	passes rx_is_restricted_memory-address.
  
! 2025-01-29  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118505
! 	* gimple-ssa-split-paths.cc (poor_ifcvt_pred): Return
! 	true for trapping statements.
  
! 2025-01-29  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* gimple-ssa-split-paths.cc (poor_ifcvt_candidate_code): Remove CALL_EXPR handling.
  
! 2025-01-29  Martin Jambor  <mjambor@suse.cz>
! 	    Michal Jireš  <mjires@suse.cz>
  
! 	PR tree-optimization/117892
! 	* tree-ssa-dse.cc (dse_optimize_call): Leave control-altering
! 	noreturn calls alone.
  
! 2025-01-29  Pan Li  <pan2.li@intel.com>
  
! 	PR target/117688
! 	* config/riscv/riscv.cc (riscv_expand_sstrunc): Leverage the helper
! 	riscv_extend_to_xmode_reg with SIGN_EXTEND.
  
! 2025-01-29  Pan Li  <pan2.li@intel.com>
  
! 	PR target/117688
! 	* config/riscv/riscv.cc (riscv_expand_sssub): Leverage the helper
! 	riscv_extend_to_xmode_reg with SIGN_EXTEND.
  
! 2025-01-29  Pan Li  <pan2.li@intel.com>
  
! 	PR target/117688
! 	* config/riscv/riscv.cc (riscv_expand_ssadd): Leverage the helper
! 	riscv_extend_to_xmode_reg with SIGN_EXTEND.
  
! 2025-01-29  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Rename from ...
! 	(riscv_extend_to_xmode_reg): Rename to and add rtx_code for
! 	zero/sign extend if non-Xmode.
! 	(riscv_expand_usadd): Leverage the renamed function with ZERO_EXTEND.
! 	(riscv_expand_ussub): Ditto.
  
! 2025-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118684
! 	* expr.cc (expand_expr_real_1): When creating a stack local
! 	during expansion of a handled component, when the base is
! 	a SSA_NAME use its type alignment and avoid calling
! 	get_object_alignment.
  
! 2025-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118684
! 	* expr.cc (expand_expr_real_1): When expanding a reference
! 	based on a register and we end up needing a MEM make sure
! 	that's aligned as the original reference required.
  
! 2025-01-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* input.cc (file_cache_slot::dump): Show indices within
! 	m_line_record when dumping entries.
  
! 2025-01-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR other/118675
! 	* diagnostic-format-sarif.cc: Define INCLUDE_STRING.
! 	(escape_braces): New.
! 	(set_string_property_escaping_braces): New.
! 	(sarif_builder::make_message_object): Escape braces in the "text"
! 	property.
! 	(sarif_builder::make_message_object_for_diagram): Likewise, and
! 	for the "markdown" property.
! 	(sarif_builder::make_multiformat_message_string): Likewise for the
! 	"text" property.
! 	(xelftest::test_message_with_braces): New.
! 	(selftest::diagnostic_format_sarif_cc_tests): Call it.
  
! 2025-01-28  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/117270
! 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Make nperms
! 	account for the number of times that each permutation will be used
! 	during transformation.
  
! 2025-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112859
! 	* tree-loop-distribution.cc
! 	(loop_distribution::pg_add_dependence_edges): Add comment.
  
! 2025-01-28  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/118663
! 	* lra-constraints.cc (invalid_mode_reg_p): Check empty
! 	reg_class_contents.
  
! 2025-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/117424
! 	* tree-eh.cc (tree_could_trap_p): Verify the base is
! 	fully contained within a decl.
  
! 2025-01-28  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* tree-pretty-print.cc (dump_omp_clause): Clarify
! 	'OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P'.
  
! 2025-01-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/118638
! 	* combine.cc (make_extraction): Only optimize (mult x 2^n) if len is
! 	larger than 1.
  
! 2025-01-28  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
! 	extra newline from dump message.
  
! 2025-01-28  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/114085
! 	* config/h8300/constraints.md (U): No longer accept REGs.
! 	* config/h8300/logical.md (andqi3_2): Use "rU" rather than "U".
! 	(andqi3_2_clobber_flags, andqi3_1, <code>qi3_1): Likewise.
! 	* config/h8300/testcompare.md (tst_extzv_1_n): Likewise.
  
! 2025-01-27  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/117173
! 	* config/riscv/riscv-v.cc (shuffle_generic_patterns): Only
! 	support single-source permutes by default.
! 	* config/riscv/riscv.opt: New param "riscv-two-source-permutes".
  
! 2025-01-27  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR c++/116524
! 	* configure.ac: Check for munmap and msync.
  	* configure: Regenerate.
+ 	* config.in: Regenerate.
  
! 2025-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118653
! 	* tree-vect-loop.cc (vectorizable_live_operation): Also allow
! 	out-of-loop debug uses.
  
! 2025-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/118662
! 	* combine.cc (try_combine): When re-materializing a load
! 	from an extended reg by a lowpart subreg make sure we're
! 	not dealing with vector or complex modes.
  
! 2025-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118643
! 	* expr.cc (expand_expr_real_1): Avoid falling back to BIT_FIELD_REF
! 	expansion for negative offset.
  
! 2025-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112859
! 	PR tree-optimization/115347
! 	* tree-loop-distribution.cc
! 	(loop_distribution::pg_add_dependence_edges): For a zero
! 	distance vector still make sure to not have an inner
! 	loop with zero distance.
  
! 2025-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118637
! 	* match.pd: Canonicalize unsigned division by power of two to
! 	right shift.
  
! 2025-01-27  Soumya AR  <soumyaa@nvidia.com>
  
! 	PR target/118490
! 	* match.pd: Added ! to verify that log/exp (CST) can be constant folded.
  
! 2025-01-26  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* asan.cc (asan_emit_stack_protection): Always zero the flag
! 	unless it is cleared by the __asan_stack_free_N() libcall.
  
! 2025-01-26  Pan Li  <pan2.li@intel.com>
  
! 	PR target/118103
! 	* config/riscv/riscv.cc (riscv_conditional_register_usage): Add
! 	the FRM as the global_regs.
  
! 2025-01-25  Andi Kleen  <ak@gcc.gnu.org>
  
! 	PR preprocessor/118168
! 	* input.cc (file_cache_slot::m_error): New field.
! 	(file_cache_slot::create): Clear m_error.
! 	(file_cache_slot::file_cache_slot): Clear m_error.
! 	(file_cache_slot::read_data): Set m_error on error.
! 	(file_cache_slot::get_next_line): Use m_error instead of ferror.
  
! 2025-01-25  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/116256
! 	* config/riscv/riscv.md (mvconst_internal): Reject single bit
! 	constants.
! 	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Improve
! 	handling constants.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V9_5A): Add CPA.
! 	* config/aarch64/aarch64-option-extensions.def (CPA): New.
! 	* doc/invoke.texi: Document +cpa.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* doc/invoke.texi: Add +wfxt and +xs to armv9.2-a
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V9_5A): New.
! 	* doc/invoke.texi: Document armv9.5-a option.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc: Assert that CRYPTO
! 	bit is not set.
! 	* config/aarch64/aarch64-feature-deps.h
! 	(info<FEAT>.explicit_on): Unset CRYPTO bit.
! 	(cpu_##CORE_IDENT): Ditto.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(aarch64_rewrite_selected_cpu): Refactor and inline into...
! 	(aarch64_rewrite_mcpu): this.
! 	* config/aarch64/aarch64-protos.h
! 	(aarch64_rewrite_selected_cpu): Delete.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(aarch64_get_arch_string_for_assembler): New.
! 	(aarch64_rewrite_march): New.
! 	(aarch64_rewrite_selected_cpu): Call new function.
! 	* config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity mapping.
! 	* config/aarch64/aarch64-protos.h
! 	(aarch64_get_arch_string_for_assembler): New.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_declare_function_name): Call new function.
! 	(aarch64_start_file): Ditto.
! 	* config/aarch64/aarch64.h
! 	(EXTRA_SPEC_FUNCTIONS): Use new macro name.
! 	(MCPU_TO_MARCH_SPEC): Rename to...
! 	(MARCH_REWRITE_SPEC): ...this, and extend the spec rule.
! 	(aarch64_rewrite_march): New declaration.
! 	(MCPU_TO_MARCH_SPEC_FUNCTIONS): Rename to...
! 	(AARCH64_BASE_SPEC_FUNCTIONS): ...this, and add new function.
! 	(ASM_CPU_SPEC): Use new macro name.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(aarch64_get_all_extension_candidates): Inline into...
! 	(aarch64_print_hint_for_extensions): ...this.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(aarch64_get_all_extension_candidates): Move within file.
! 	(aarch64_print_hint_candidates): Move from aarch64.cc.
! 	(aarch64_print_hint_for_extensions): Ditto.
! 	(aarch64_print_hint_for_arch): Ditto.
! 	(aarch64_print_hint_for_core): Ditto.
! 	(enum aarch_parse_opt_result): Ditto.
! 	(aarch64_parse_arch): Ditto.
! 	(aarch64_parse_cpu): Ditto.
! 	(aarch64_parse_tune): Ditto.
! 	(aarch64_validate_march): Ditto.
! 	(aarch64_validate_mcpu): Ditto.
! 	(aarch64_validate_mtune): Ditto.
! 	* config/aarch64/aarch64-protos.h
! 	(aarch64_rewrite_selected_cpu): Move within file.
! 	(aarch64_print_hint_for_extensions): Share function prototype.
! 	(aarch64_print_hint_for_arch): Ditto.
! 	(aarch64_print_hint_for_core): Ditto.
! 	(enum aarch_parse_opt_result): Ditto.
! 	(aarch64_validate_march): Ditto.
! 	(aarch64_validate_mcpu): Ditto.
! 	(aarch64_validate_mtune): Ditto.
! 	(aarch64_get_all_extension_candidates): Unshare prototype.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_parse_arch): Move to aarch64-common.cc.
! 	(aarch64_parse_cpu): Ditto.
! 	(aarch64_parse_tune): Ditto.
! 	(aarch64_print_hint_candidates): Ditto.
! 	(aarch64_print_hint_for_core): Ditto.
! 	(aarch64_print_hint_for_arch): Ditto.
! 	(aarch64_print_hint_for_extensions): Ditto.
! 	(aarch64_validate_mcpu): Ditto.
! 	(aarch64_validate_march): Ditto.
! 	(aarch64_validate_mtune): Ditto.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc
! 	(aarch64_print_hint_candidates): New helper function.
! 	(aarch64_print_hint_for_core_or_arch): Inline into callers.
! 	(aarch64_print_hint_for_core): Inline callee and use new helper.
! 	(aarch64_print_hint_for_arch): Ditto.
! 	(aarch64_print_hint_for_extensions): Use new helper.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc
! 	(aarch64_print_hint_for_extensions): Receive string as a char *.
! 	(aarch64_parse_arch): Don't return a const struct processor *.
! 	(aarch64_parse_cpu): Ditto.
! 	(aarch64_parse_tune): Ditto.
! 	(aarch64_validate_mtune): Ditto.
! 	(aarch64_validate_mcpu): Ditto, and use temporary variables for
! 	march/mcpu cross-check.
! 	(aarch64_validate_march): Ditto.
! 	(aarch64_override_options): Adjust for changed parameter types.
! 	(aarch64_handle_attr_arch): Ditto.
! 	(aarch64_handle_attr_cpu): Ditto.
! 	(aarch64_handle_attr_tune): Ditto.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(struct aarch64_option_extension): Rename to..
! 	(struct aarch64_extension_info): ...this.
! 	(all_extensions): Update type name.
! 	(struct arch_to_arch_name): Rename to...
! 	(struct aarch64_arch_info): ...this, and rename name field.
! 	(all_architectures): Update type names, and move before...
! 	(struct processor_name_to_arch): ...this. Rename to...
! 	(struct aarch64_processor_info): ...this, rename name field and
! 	add cpu field.
! 	(all_cores): Update type name, and set new field.
! 	(aarch64_parse_extension): Update names.
! 	(aarch64_get_all_extension_candidates): Ditto.
! 	(aarch64_rewrite_selected_cpu): Ditto.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(all_cores): Remove explicit generic entry.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-opts.h
! 	(enum aarch64_processor): Rename to...
! 	(enum aarch64_cpu): ...this, and rename the entries.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_type): Rename type and initial value.
! 	(struct processor): Rename member types.
! 	(all_architectures): Rename enum members.
! 	(all_cores): Ditto.
! 	(aarch64_get_tune_cpu): Rename type and enum member.
! 	* config/aarch64/aarch64.h (enum target_cpus): Remove.
! 	(TARGET_CPU_DEFAULT): Rename default value.
! 	(aarch64_tune): Rename type.
! 	* config/aarch64/aarch64.opt:
! 	(selected_tune): Rename type and default value.
  
! 2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_override_options): Compare
! 	returned feature masks directly.
  
! 2025-01-24  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/118497
! 	* ira-int.h (target_ira_int): Add x_ira_hard_regno_nrefs.
! 	(ira_hard_regno_nrefs): New macro.
! 	* ira.cc (setup_hard_regno_aclass): Remove unused code.  Modify
! 	the comment.
! 	(setup_hard_regno_nrefs): New function.
! 	(ira): Call it.
! 	* ira-color.cc (calculate_saved_nregs): Check
! 	ira_hard_regno_nrefs.
  
! 2025-01-24  yxj-github-437  <2457369732@qq.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_build_builtin_va_list): Mark
! 	__builtin_va_list as TREE_PUBLIC.
! 	* config/arm/arm.cc (arm_build_builtin_va_list): Likewise.
  
! 2025-01-24  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR sarif-replay/117670
! 	* Makefile.in (SARIF_REPLAY_INSTALL_NAME): New.
! 	(install-libgdiagnostics): Use it,and exeext, rather than just
! 	sarif-replay.
  
! 2025-01-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/116010
! 	* tree-data-ref.cc (contains_ssa_ref_p_1): New function.
! 	(contains_ssa_ref_p): Likewise.
! 	(dr_may_alias_p): Avoid treating unanalyzed base parts without
! 	SSA reference conservatively.
  
! 2025-01-24  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.h (S390_TDC_POSITIVE_ZERO): Remove.
! 	(S390_TDC_NEGATIVE_ZERO): Remove.
! 	(S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): Remove.
! 	(S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): Remove.
! 	(S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): Remove.
! 	(S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): Remove.
! 	(S390_TDC_POSITIVE_INFINITY): Remove.
! 	(S390_TDC_NEGATIVE_INFINITY): Remove.
! 	(S390_TDC_POSITIVE_QUIET_NAN): Remove.
! 	(S390_TDC_NEGATIVE_QUIET_NAN): Remove.
! 	(S390_TDC_POSITIVE_SIGNALING_NAN): Remove.
! 	(S390_TDC_NEGATIVE_SIGNALING_NAN): Remove.
! 	(S390_TDC_POSITIVE_DENORMALIZED_DFP_NUMBER): Remove.
! 	(S390_TDC_NEGATIVE_DENORMALIZED_DFP_NUMBER): Remove.
! 	(S390_TDC_POSITIVE_NORMALIZED_DFP_NUMBER): Remove.
! 	(S390_TDC_NEGATIVE_NORMALIZED_DFP_NUMBER): Remove.
! 	(S390_TDC_SIGNBIT_SET): Remove.
! 	(S390_TDC_INFINITY): Remove.
! 	* config/s390/s390.md (signbit<mode>2<tf_fpr>): Merge this one
! 	(isinf<mode>2<tf_fpr>): and this one into
! 	(<TDC_CLASS:tdc_insn><mode>2<tf_fpr>): new expander.
! 	(isnormal<mode>2<tf_fpr>): New BFP expander.
! 	(isnormal<mode>2): New DFP expander.
! 	* config/s390/vector.md (signbittf2_vr): Merge this one
! 	(isinftf2_vr): and this one into
! 	(<tdc_insn>tf2_vr): new expander.
! 	(signbittf2): Merge this one
! 	(isinftf2): and this one into
! 	(<tdc_insn>tf2): new expander.
  
! 2025-01-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118634
! 	* tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely):
! 	Dump the number of estimated eliminated insns.
  
! 2025-01-24  Saurabh Jha  <saurabh.jha@arm.com>
  
! 	* config/aarch64/aarch64-sve2.md:
! 	(*aarch64_pred_faminmax_fused): Fix to use the correct flags.
! 	* config/aarch64/aarch64.h
! 	(TARGET_SVE_FAMINMAX): Remove.
! 	* config/aarch64/iterators.md: Fix iterators so that famax and
! 	famin use correct flags.
  
! 2025-01-24  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118572
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Compare as
! 	unsigned the variables whose extension bits are masked out.
  
! 2025-01-24  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Document
! 	reversep's absence of effects on range tests.  Don't reject
! 	reversep mismatches before trying compare swapping.
  
! 2025-01-24  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118514
! 	* tree-eh.cc (bit_field_ref_in_bounds_p): New.
! 	(tree_could_trap_p) <BIT_FIELD_REF>: Call it.
! 	* gimple-fold.cc (make_bit_field_load): Check trapping status
! 	of replacement load against original load.
  
! 2025-01-23  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change
! 	register 86 name to "%fr31L".
  
! 2025-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118628
! 	* tree-vect-stmts.cc (vectorizable_store, vectorizable_load):
! 	Initialize offvar to NULL_TREE.
  
! 2025-01-23  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR tree-optimization/118012
! 	PR tree-optimization/118360
! 	* config/avr/avr.opt (-mpr118012): New undocumented option.
! 	* config/avr/avr-protos.h (avr_out_sextr)
! 	(avr_emit_skip_pixop, avr_emit_skip_clear): New protos.
! 	* config/avr/avr.cc (avr_adjust_insn_length)
! 	[case ADJUST_LEN_SEXTR]: Handle case.
! 	(avr_rtx_costs_1) [NEG]: Costs for NEG (ZERO_EXTEND (ZERO_EXTRACT)).
! 	[MULT && avropt_pr118012]: Costs for MULT (x AND 1).
! 	(avr_out_sextr, avr_emit_skip_pixop, avr_emit_skip_clear): New
! 	functions.
! 	* config/avr/avr.md [avropt_pr118012]: Add combine patterns with
! 	that condition that try to work around PR118012.
! 	(adjust_len) <sextr>: Add insn attr value.
! 	(pixop): New code iterator.
! 	(mulsi3) [avropt_pr118012 && !AVR_TINY]: Allow these in insn condition.
  
! 2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/118562
! 	* rtl-ssa/blocks.cc (function_info::replace_phi): When converting
! 	to a degenerate phi, make sure to remove all uses of the previous
! 	inputs.
  
! 2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-tuning-flags.def
! 	(AARCH64_EXTRA_TUNE_CHEAP_FPMR_WRITE): New tuning flag.
! 	* config/aarch64/aarch64.h (TARGET_CHEAP_FPMR_WRITE): New macro.
! 	* config/aarch64/aarch64.md: Split moves into FPMR into a test
! 	and branch around.
! 	(aarch64_write_fpmr): New pattern.
  
! 2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_memory_move_cost): Account
! 	for the cost of moving in and out of GENERAL_SYSREGS.
  
! 2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64)
! 	(*movsi_aarch64, *movdi_aarch64): Allow the source of an MSR
! 	to be zero.
  
! 2025-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118605
! 	* tree-assume.cc (assume_query::m_parm_list): Change type
! 	from bitmap & to bitmap.
  
! 2025-01-23  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	* omp-low.cc (use_pointer_for_field): Use pointer if the OMP data
! 	structure's field type is a poly-int.
  
! 2025-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114877
! 	* builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases
! 	like rvc_zero, return passed in arg and set *exp = 0.
  
! 2025-01-23  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
! 	'alarm'.
  
! 2025-01-23  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/117726
! 	* config/avr/avr.cc (avr_ld_regno_p): New function.
! 	(ashlsi3_out) [case 25,26,27,28,29,30]: Handle and tweak.
! 	(lshrsi3_out): Same.
! 	(avr_rtx_costs_1) [SImode, ASHIFT, LSHIFTRT]: Adjust costs.
! 	* config/avr/avr.md (ashlsi3, *ashlsi3, *ashlsi3_const):
! 	Add "r,r,C4L" alternative.
! 	(lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,r,C4R" alternative.
! 	* config/avr/constraints.md (C4R, C4L): New,
  
! 2025-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118558
! 	* tree-vectorizer.h (vect_known_alignment_in_bytes): Pass
! 	through offset to dr_misalignment.
! 	* tree-vect-stmts.cc (get_group_load_store_type): Compute
! 	offset applied for negative stride and use it when querying
! 	alignment of accesses.
! 	(vectorizable_load): Likewise.
  
! 2025-01-23  Nathaniel Shead  <nathanieloshead@gmail.com>
  
! 	PR c++/107741
! 	* common.opt: Add -fabi-version=20.
! 	* doc/invoke.texi: Likewise.
  
! 2025-01-23  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/118501
! 	* config/loongarch/loongarch.md (@xorsign<mode>3): Use
! 	force_lowpart_subreg.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/avx10_2-512convertintrin.h:
! 	Omit "p" for packed for FP8.
! 	* config/i386/avx10_2convertintrin.h: Ditto.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512satcvtintrin.h: Change intrin and
! 	builtin name according to new mnemonics.
! 	* config/i386/avx10_2satcvtintrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VCVTBF162IBS): Rename from UNSPEC_VCVTNEBF162IBS.
! 	(UNSPEC_VCVTBF162IUBS): Rename from UNSPEC_VCVTNEBF162IUBS.
! 	(UNSPEC_VCVTTBF162IBS): Rename from UNSPEC_VCVTTNEBF162IBS.
! 	(UNSPEC_VCVTTBF162IUBS): Rename from UNSPEC_VCVTTNEBF162IUBS.
! 	(UNSPEC_CVTNE_BF16_IBS_ITER): Rename to...
! 	(UNSPEC_CVT_BF16_IBS_ITER): ...this. Adjust UNSPEC name.
! 	(sat_cvt_sign_prefix): Adjust UNSPEC name.
! 	(sat_cvt_trunc_prefix): Ditto.
! 	(avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
! 	Rename to...
! 	(avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
! 	...this. Change instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512convertintrin.h: Change intrin and
! 	builtin name according to new mnemonics.
! 	* config/i386/avx10_2convertintrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VCVTPH2BF8): Rename from UNSPEC_VCVTNEPH2BF8.
! 	(UNSPEC_VCVTPH2BF8S): Rename from UNSPEC_VCVTNEPH2BF8S.
! 	(UNSPEC_VCVTPH2HF8): Rename from UNSPEC_VCVTNEPH2HF8.
! 	(UNSPEC_VCVTPH2HF8S): Rename from UNSPEC_VCVTNEPH2HF8S.
! 	(UNSPEC_CONVERTPH2FP8): Rename from UNSPEC_NECONVERTPH2FP8.
! 	Adjust UNSPEC name.
! 	(convertph2fp8): Rename from neconvertph2fp8. Adjust
! 	iterator map.
! 	(vcvt<neconvertph2fp8>v8hf): Rename to...
! 	(vcvt<neconvertph2fp8>v8hf): ...this.
! 	(*vcvt<neconvertph2fp8>v8hf): Rename to...
! 	(*vcvt<neconvertph2fp8>v8hf): ...this.
! 	(vcvt<neconvertph2fp8>v8hf_mask): Rename to...
! 	(vcvt<neconvertph2fp8>v8hf_mask): ...this.
! 	(*vcvt<neconvertph2fp8>v8hf_mask): Rename to...
! 	(*vcvt<neconvertph2fp8>v8hf_mask): ...this.
! 	(vcvt<neconvertph2fp8><mode><mask_name>): Rename to...
! 	(vcvt<convertph2fp8><mode><mask_name>): ...this.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512convertintrin.h: Change intrin and
! 	builtin name according to new mnemonics.
! 	* config/i386/avx10_2convertintrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VCVT2PH2BF8): Rename from UNSPEC_VCVTNE2PH2BF8.
! 	(UNSPEC_VCVT2PH2BF8S): Rename from UNSPEC_VCVTNE2PH2BF8S.
! 	(UNSPEC_VCVT2PH2HF8): Rename from UNSPEC_VCVTNE2PH2HF8.
! 	(UNSPEC_VCVT2PH2HF8S): Rename from UNSPEC_VCVTNE2PH2HF8S.
! 	(UNSPEC_CONVERTFP8_PACK): Rename from UNSPEC_NECONVERTFP8_PACK.
! 	Adjust UNSPEC name.
! 	(convertfp8_pack): Rename from neconvertfp8_pack. Adjust
! 	iterator map.
! 	(vcvt<neconvertfp8_pack><mode><mask_name>): Rename to...
! 	(vcvt<convertfp8_pack><mode><mask_name>): ...this.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/i386-expand.cc
! 	(ix86_expand_fp_compare): Adjust comments.
! 	(ix86_expand_builtin): Adjust switch case.
! 	* config/i386/i386.md (cmpibf): Change instruction name output.
! 	* config/i386/sse.md (UNSPEC_VCOMSBF16): Removed.
! 	(avx10_2_comisbf16_v8bf): New.
! 	(avx10_2_comsbf16_v8bf): Removed.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VFPCLASSBF16); Rename from UNSPEC_VFPCLASSPBF16.
! 	(avx10_2_getexppbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_getexpbf16_<mode><mask_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_fpclasspbf16_<mode><mask_scalar_merge_name>):
! 	Rename to...
! 	(avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): ...this.
! 	Change instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VSCALEFBF16): Rename from UNSPEC_VSCALEFPBF16.
! 	(avx10_2_scalefpbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_scalefbf16_<mode><mask_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_rsqrtpbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_rsqrtbf16_<mode><mask_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_sqrtnepbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_sqrtbf16_<mode><mask_name>): ...this.
! 	Change instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_VRNDSCALEBF16): Rename from UNSPEC_VRNDSCALENEPBF16.
! 	(UNSPEC_VREDUCEBF16): Rename from UNSPEC_VREDUCENEPBF16.
! 	(UNSPEC_VGETMANTBF16): Rename from UNSPEC_VGETMANTPBF16.
! 	(BF16IMMOP): Adjust iterator due to UNSPEC name change.
! 	(bf16immop): Ditto.
! 	(avx10_2_<bf16immop>pbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_<bf16immop>bf16_<mode><mask_name>): ...this. Change
! 	instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512minmaxintrin.h: Change intrin and
! 	builtin name according to new mnemonics.
! 	* config/i386/avx10_2minmaxintrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(UNSPEC_MINMAXBF16): Rename from UNSPEC_MINMAXNEPBF16.
! 	(avx10_2_minmaxnepbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_minmaxbf16_<mode><mask_name>): ...this. Change
! 	instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(avx10_2_<code>pbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_<code>bf16_<mode><mask_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_cmppbf16_<mode><mask_scalar_merge_name>): Rename to...
! 	(avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): ...this.
! 	Change instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	names according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md
! 	(avx10_2_fmaddnepbf16_<mode>_maskz): Rename to...
! 	(avx10_2_fmaddbf16_<mode>_maskz): ...this. Adjust emit_insn.
! 	(avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): Rename to...
! 	(avx10_2_fmaddbf16_<mode><sd_maskz_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_fmaddnepbf16_<mode>_mask): Rename to...
! 	(avx10_2_fmaddbf16_<mode>_mask): ...this.
! 	Change instruction name output.
! 	(avx10_2_fmaddnepbf16_<mode>_mask3): Rename to...
! 	(avx10_2_fmaddbf16_<mode>_mask3): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmaddnepbf16_<mode>_maskz): Rename to...
! 	(avx10_2_fnmaddbf16_<mode>_maskz): ...this. Adjust emit_insn.
! 	(avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Rename to...
! 	(avx10_2_fnmaddbf16_<mode><sd_maskz_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmaddnepbf16_<mode>_mask): Rename to...
! 	(avx10_2_fnmaddbf16_<mode>_mask): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmaddnepbf16_<mode>_mask3): Rename to...
! 	(avx10_2_fnmaddbf16_<mode>_mask3): ...this.
! 	Change instruction name output.
! 	(avx10_2_fmsubnepbf16_<mode>_maskz): Rename to...
! 	(avx10_2_fmsubbf16_<mode>_maskz): ...this. Adjust emit_insn.
! 	(avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Rename to...
! 	(avx10_2_fmsubbf16_<mode><sd_maskz_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_fmsubnepbf16_<mode>_mask): Rename to...
! 	(avx10_2_fmsubbf16_<mode>_mask): ...this.
! 	Change instruction name output.
! 	(avx10_2_fmsubnepbf16_<mode>_mask3): Rename to...
! 	(avx10_2_fmsubbf16_<mode>_mask3): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmsubnepbf16_<mode>_maskz): Rename to...
! 	(avx10_2_fnmsubbf16_<mode>_maskz): ...this. Adjust emit_insn.
! 	(avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Rename to...
! 	(avx10_2_fnmsubbf16_<mode><sd_maskz_name>): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmsubnepbf16_<mode>_mask): Rename to...
! 	(avx10_2_fnmsubbf16_<mode>_mask): ...this.
! 	Change instruction name output.
! 	(avx10_2_fnmsubnepbf16_<mode>_mask3): Rename to...
! 	(avx10_2_fnmsubbf16_<mode>_mask3): ...this.
! 	Change instruction name output.
  
! 2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/118270
! 	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
! 	name according to new mnemonics.
! 	* config/i386/avx10_2bf16intrin.h: Ditto.
! 	* config/i386/i386-builtin.def (BDESC): Ditto.
! 	* config/i386/sse.md (div<mode>3): Adjust emit_insn.
! 	(avx10_2_<insn>nepbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_<insn>bf16_<mode><mask_name>): ...this. Change
! 	instruction name output.
! 	(avx10_2_rcppbf16_<mode><mask_name>): Rename to...
! 	(avx10_2_rcpbf16_<mode><mask_name>):...this. Change
! 	instruction name output.
  
! 2025-01-22  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.cc: Fix arch15 machine string which must not
! 	be empty.
  
! 2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.md (aarch64_read_sysregti): Change
! 	the source predicate to aarch64_reg_or_zero.
  
! 2025-01-22  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md
! 	(<optab>_alsl_reversesi_extended): Add '&' to the destination
! 	register constraint and append '0' to the first source register
! 	constraint to indicate the destination register cannot be same
! 	as the second source register, and change the split condition to
! 	reload_completed so that the insn will be split only after RA in
! 	order to obtain allocated registers that satisfy the above
! 	constraints.
  
! 2025-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
  	Revert:
! 	2024-10-29  yulong  <shiyulong@iscas.ac.cn>
  
! 	* config.gcc: Add riscv_cmo.h.
! 	* config/riscv/riscv_cmo.h: New file.
  
! 2025-01-21  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118483
! 	* match.pd (`x ==/!= ~x`): Allow for an optional convert
! 	and use itwise_inverted_equal_p/maybe_bit_not instead of
! 	directly matching bit_not.
  
! 2025-01-21  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_file_end): Fix format string.
! 	(riscv_lshift_subword): Mark MODE as unused.
  
! 2025-01-21  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-passes.cc (avr_emit_shift) [ASHIFT,HImode]:
! 	Allow offsets 5 and 6 as 3op provided have MUL and a scratch.
! 	* config/avr/avr.cc (avr_optimize_size_max_p): New function.
! 	(avr_out_ashlhi3_mul): New function.
! 	(ashlhi3_out) [case 4, 5, 6]: Better speed for -Os.
! 	* config/avr/avr.md (isa) <mul, no_mul>: New attr values.
! 	(*ashlhi3_const): Add alternative for offsets 5 and 6.
  
! 2025-01-21  Jin Ma  <jinma@linux.alibaba.com>
  
! 	PR target/116593
! 	* config/riscv/constraints.md (vl): New.
! 	* config/riscv/thead-vector.md: Replacing rK with rvl.
! 	* config/riscv/vector.md: Likewise.
  
! 2025-01-21  Denis Chertykov  <chertykov@gmail.com>
  
! 	* lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Use known_ge
! 	to compare sizes.
  
! 2025-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/116256
! 	* config/riscv/predicates.md (consecutive_bits_operand): Properly
! 	handle (const_int 0).
  
! 2025-01-21  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64.opt.urls: Regenerate
  
! 2025-01-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118569
! 	* cfgloopmanip.cc (fix_loop_placement): When the loops
! 	nesting parents changed, mark all blocks to be scanned
! 	for LC PHI uses.
! 	(fix_bb_placements): Remove code moved into fix_loop_placement.
  
! 2025-01-21  Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
  
! 	* config/aarch64/aarch64-c.cc
! 	(aarch64_update_cpp_builtins): Add new flag TARGET_LUT.
! 	* config/aarch64/aarch64-sve-builtins-shapes.cc
! 	(struct luti_base): Shape for lut intrinsics.
! 	(SHAPE): Specializations for lut shapes for luti2 and luti4..
! 	* config/aarch64/aarch64-sve-builtins-shapes.h: Declare lut
! 	intrinsics.
! 	* config/aarch64/aarch64-sve-builtins-sve2.cc
! 	(class svluti_lane_impl): Define expand for lut intrinsics.
! 	(FUNCTION): Define expand for lut intrinsics.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def
! 	(REQUIRED_EXTENSIONS): Declare lut intrinsics behind lut flag.
! 	(svluti2_lane): Define intrinsic behind flag.
! 	(svluti4_lane): Define intrinsic behind flag.
! 	* config/aarch64/aarch64-sve-builtins-sve2.h: Declare lut
! 	intrinsics.
! 	* config/aarch64/aarch64-sve-builtins.cc
! 	(TYPES_bh_data): New type for byte and halfword.
! 	(bh_data): Type array for byte and halfword.
! 	(h_data): Type array for halfword.
! 	* config/aarch64/aarch64-sve2.md
! 	(@aarch64_sve_luti<LUTI_BITS><mode>): Instruction patterns for
! 	lut intrinsics.
! 	* config/aarch64/iterators.md: Iterators and attributes for lut
! 	intrinsics.
  
! 2025-01-21  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR middle-end/118273
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use nvectors when
! 	doing mask registrations.
  
! 2025-01-21  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config.gcc (aarch64-*-elf): Drop ILP32 from default multilibs.
  
! 2025-01-21  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_reset_previous_fndecl):  Add function declaration.
! 	(loongarch_save_restore_target_globals): Likewise.
! 	(loongarch_register_pragmas): Likewise.
! 	* config/loongarch/loongarch-target-attr.cc
! 	(loongarch_option_valid_attribute_p): Optimize the processing
! 	of attributes.
! 	(loongarch_pragma_target_parse): New functions.
! 	(loongarch_register_pragmas): Likewise.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_reset_previous_fndecl): New functions.
! 	(loongarch_set_current_function): When the old_tree is the same
! 	as the new_tree, the rules for using registers, etc.,
! 	are set according to the option values to ensure that the
! 	pragma can be processed correctly.
! 	* config/loongarch/loongarch.h (REGISTER_TARGET_PRAGMAS):
! 	Define macro.
! 	* doc/extend.texi: Supplemental Documentation.
  
! 2025-01-21  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* attr-urls.def: Regenerate.
! 	* config.gcc: Add loongarch-target-attr.o to extra_objs.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_option_valid_attribute_p): Function declaration.
! 	(loongarch_option_override_internal): Likewise.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_option_override_internal): Delete the modifications
! 	to target_option_default_node and target_option_current_node.
! 	(loongarch_set_current_function): Add annotation information.
! 	(loongarch_option_override): add assignment operations to
! 	target_option_default_node and target_option_current_node.
! 	(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
! 	* config/loongarch/t-loongarch: Add compilation of target file
! 	loongarch-target-attr.o.
! 	* doc/extend.texi: Add description information of LoongArch
! 	Function Attributes.
! 	* config/loongarch/loongarch-target-attr.cc: New file.
  
! 2025-01-21  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64.cc
! 	(aarch64_process_target_version_attr): Add experimental warning.
! 	* config/aarch64/aarch64.opt: Add command line option to disable
! 	warning.
! 	* doc/invoke.texi: Add documentation for -W[no-]experimental-fmv-target.
  
! 2025-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/118560
! 	* lra-constraints.cc (invalid_mode_reg_p): Exchange args in
! 	hard_reg_set_subset_p call.
  
! 2025-01-20  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/114442
! 	* config/riscv/xiangshan.md: Add missing insn types to a
! 	new dummy insn reservation.
  
! 2025-01-20  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/116256
! 	* config/riscv/riscv.md (reassocating constant addition): Adjust
! 	condition to avoid creating an unrecognizable insn.
  
! 2025-01-20  Denis Chertykov  <chertykov@gmail.com>
  
! 	PR rtl-optimization/117868
! 	* lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Reuse slots
! 	only without allocated memory or only with equal or smaller registers
! 	with equal or smaller alignment.
! 	(lra_spill): Print slot size as width.
  
! 2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/118348
! 	* tree-vectorizer.cc (vec_info::move_dr): Copy
! 	STMT_VINFO_SIMD_LANE_ACCESS_P.
  
! 2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
  	Revert:
! 	2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/118384
! 	* tree-vectorizer.cc (vec_info::move_dr): Copy
! 	STMT_VINFO_SIMD_LANE_ACCESS_P.
  
! 2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/118384
! 	* tree-vectorizer.cc (vec_info::move_dr): Copy
! 	STMT_VINFO_SIMD_LANE_ACCESS_P.
  
! 2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/118501
! 	* config/aarch64/aarch64.md (@xorsign<mode>3): Use
! 	force_lowpart_subreg.
  
! 2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/118531
! 	* config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
! 	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>)
! 	(*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Add missing
! 	simd requirements.
  
! 2025-01-20  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>):
! 	Change GPR2 to X.
! 	(*th_cond_mov<GPR:mode>): Likewise.
  
! 2025-01-20  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118077
! 	PR tree-optimization/117668
! 	* tree-inline.cc (fold_marked_statements): Purge abnormal edges
! 	as needed.
  
! 2025-01-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/117875
! 	* tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies.
  
! 2025-01-20  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/115921
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_reassoc_shift_bitwise): New function prototype.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_reassoc_shift_bitwise): Implement.
! 	* config/loongarch/loongarch.md
! 	(*alslsi3_extend_subreg): New define_insn_and_split.
! 	(<any_bitwise:optab>_shift_reverse<X:mode>): New
! 	define_insn_and_split.
! 	(<any_bitwise:optab>_alsl_reversesi_extended): New
! 	define_insn_and_split.
! 	(zero_extend_ashift): Remove as it's just a special case of
! 	and_shift_reversedi, and it does not make too much sense to
! 	write "alsl.d rd,rs,r0,shamt" instead of "slli.d rd,rs,shamt".
! 	(bstrpick_alsl_paired): Remove as it is already done by
! 	splitting and_shift_reversedi into and + ashift first, then
! 	late combining the ashift and a further add.
  
! 2025-01-20  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/constraints.md (Yy): New define_constriant.
! 	* config/loongarch/loongarch.cc (loongarch_print_operand):
! 	For "%M", output the index of bits to be used with
! 	bstrins/bstrpick.
! 	* config/loongarch/predicates.md (ins_zero_bitmask_operand):
! 	Exclude low_bitmask_operand as for low_bitmask_operand it's
! 	always better to use bstrpick instead of bstrins.
! 	(and_operand): New define_predicate.
! 	* config/loongarch/loongarch.md (any_or): New
! 	define_code_iterator.
! 	(bitwise_operand): New define_code_attr.
! 	(*<optab:any_or><mode:GPR>3): New define_insn.
! 	(*and<mode:GPR>3): New define_insn.
! 	(<optab:any_bitwise><mode:X>3): New define_expand.
! 	(and<mode>3_extended): Remove, replaced by the 3rd alternative
! 	of *and<mode:GPR>3.
! 	(bstrins_<mode>_for_mask): Remove, replaced by the 4th
! 	alternative of *and<mode:GPR>3.
! 	(*<optab:any_bitwise>si3_internal): Remove, already covered by
! 	the *<optab:any_or><mode:GPR>3 and *and<mode:GPR>3 templates.
  
! 2025-01-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118552
! 	* cfgloopmanip.cc (fix_loop_placement): Properly mark
! 	exit source blocks as to be scanned for LC SSA update when
! 	the loops nesting relationship changed.
! 	(fix_loop_placements): Adjust.
! 	(fix_bb_placements): Likewise.
  
! 2025-01-20  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/t-nvptx (MULTILIB_OPTIONS): Don't add 'mptx=3.1' if
! 	neither sm_30 nor sm_35 multilib variant is built.
  
! 2025-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/118509
! 	* tree.cc (tree_invariant_p_1): Return true for TARGET_EXPR too.
  
! 2025-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118224
! 	* tree-ssa-dce.cc (is_removable_allocation_p): Multiply a1 by a2
! 	instead of adding it.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_load_len): Deprecate
! 	some overloads.
! 	(s390_vec_store_len): Deprecate some overloads.
! 	(s390_vec_load_len_r): Add.
! 	(s390_vec_store_len_r): Add.
! 	* config/s390/s390-c.cc (s390_vec_load_len_r): Add.
! 	(s390_vec_store_len_r): Add.
! 	* config/s390/vecintrin.h (vec_load_len_r): Redefine.
! 	(vec_store_len_r): Redefine.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def: Add 128-bit variants.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/vector.md (<vec_shifts_name><mode>3): Add 128-bit
! 	variants.
! 	* config/s390/vx-builtins.md: Ditto.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def: Add 128-bit variants and remove
! 	bool variants.
! 	* config/s390/s390-builtin-types.def: Update accordinly.
! 	* config/s390/s390.md: Emulate min/max for GPR.
! 	* config/s390/vector.md: Add min/max patterns and emulate in
! 	case of no VXE3.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_abs_s128): Add.
! 	(s390_vlpq): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/vector.md (abs<mode>2): Emulate w/o VXE3.
! 	(*abs<mode>2): Add 128-bit variant.
! 	(*vec_sel0<mode>): Make it a ...
! 	(vec_sel0<mode>): named pattern.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def: Add 128-bit variants.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.cc (s390_expand_vec_compare_cc): Also
! 	consider TI modes for vectors.
! 	* config/s390/vector.md: Enable *vec_cmp et al. for VXE3.
! 	* config/s390/vx-builtins.md: Ditto.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/vector.md (div<mode>3): Add.
! 	(udiv<mode>3): Add.
! 	(mod<mode>3): Add.
! 	(umod<mode>3): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_cntlz): Add 128-bit
! 	integer overloads.
! 	(s390_vclzq): Add.
! 	(s390_vec_cnttz): Add 128-bit integer overloads.
! 	(s390_vctzq): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.h (CTZ_DEFINED_VALUE_AT_ZERO): Define.
! 	* config/s390/s390.md (*clzg): New insn.
! 	(clztidi2): Exploit new insn for target arch15.
! 	(ctzdi2): New insn.
! 	* config/s390/vector.md (clz<mode>2): Extend modes including
! 	128-bit integer.
! 	(ctz<mode>2): Likewise.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_gen_element_masks_128): Add.
! 	(s390_vgemb): Add.
! 	(s390_vgemh): Add.
! 	(s390_vgemf): Add.
! 	(s390_vgemg): Add.
! 	(s390_vgemq): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.md (UNSPEC_VEC_VGEM): Add.
! 	* config/s390/vecintrin.h (vec_gen_element_masks_8): Define.
! 	(vec_gen_element_masks_16): Define.
! 	(vec_gen_element_masks_32): Define.
! 	(vec_gen_element_masks_64): Define.
! 	(vec_gen_element_masks_128): Define.
! 	* config/s390/vx-builtins.md (vgemv16qi): Add.
! 	(vgem<mode>): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_evaluate): Add.
! 	(s390_veval): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.md (UNSPEC_VEC_VEVAL): Add.
! 	* config/s390/vecintrin.h (vec_evaluate): Define.
! 	* config/s390/vector.md
! 	(*veval<mode>_<logic_op1:logic_op_stringify><logic_op2:logic_op_stringify>):
! 	Add.
! 	(veval<mode>): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_vec_blend): Add.
! 	(s390_vblendb): Add.
! 	(s390_vblendh): Add.
! 	(s390_vblendf): Add.
! 	(s390_vblendg): Add.
! 	(s390_vblendq): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.md (UNSPEC_VEC_VBLEND): Add.
! 	* config/s390/vecintrin.h (vec_blend): Define.
! 	* config/s390/vx-builtins.md (vblend<mode>): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def (s390_bdepg): Add.
! 	(s390_bextg): Add.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/s390.md (UNSPEC_BDEPG): Add.
! 	(UNSPEC_BEXTG): Add.
! 	(bdepg): Add.
! 	(bextg): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.md (*lxa<LXAMODE>_index): Add.
! 	(*lxa<LXAMODE>_displacement_index): Add.
! 	(*lxa<LXAMODE>_index_base): Add.
! 	(*lxa<LXAMODE>_displacement_index_base): Add.
! 	(*lxab_displacement_index_base): Add.
! 	(*llxa<LXAMODE>_displacement_index): Add.
! 	(*llxa<LXAMODE>_index_base): Add.
! 	(*llxa<LXAMODE>_displacement_index_base): Add.
! 	(*llxab_displacement_index_base): Add.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-builtins.def: Add new instruction variants.
! 	* config/s390/s390-builtin-types.def: Update accordingly.
! 	* config/s390/vecintrin.h: Add new defines.
! 	* config/s390/vector.md: Adapt insns for new instruction
! 	variants.
! 	* config/s390/vx-builtins.md: Ditto.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-builtins.def (B_VXE3): Define.
! 	(B_ARCH15): Define.
! 	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
! 	Consistency checks for VXE3.
! 	* config/s390/s390.cc (s390_expand_builtin): Consistency checks
! 	for VXE3.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-c.cc (rid_int128): New helper function.
! 	(s390_macro_to_expand): Deal with `vector __int128`.
! 	(s390_cpu_cpp_builtins_internal): Bump __VEC__.
! 	* config/s390/s390.cc (s390_handle_vectorbool_attribute): Add
! 	128-bit bool zvector.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* common/config/s390/s390-common.cc: Add arch15 processor flags.
! 	* config.gcc: Add arch15 for options --with-{arch,mtune}.
! 	* config/s390/driver-native.cc (s390_host_detect_local_cpu):
! 	Default to arch15.
! 	* config/s390/s390-opts.h (enum processor_type): Add
! 	PROCESSOR_ARCH15.
! 	* config/s390/s390.cc (processor_table,s390_issue_rate,
! 	s390_get_sched_attrmask,s390_get_unit_mask): Add arch15.
! 	* config/s390/s390.h (enum processor_flags): Add processor flags
! 	for VXE3 and ARCH15.
! 	(TARGET_CPU_VXE3): Define.
! 	(TARGET_CPU_VXE3_P): Define.
! 	(TARGET_CPU_ARCH15): Define.
! 	(TARGET_CPU_ARCH15_P): Define.
! 	(TARGET_VXE3): Define.
! 	(TARGET_VXE3_P): Define.
! 	(TARGET_ARCH15): Define.
! 	(TARGET_ARCH15_P): Define.
! 	* config/s390/s390.md: Add VXE3 and ARCH15 to cpu_facility, and
! 	let attribute "enabled" deal with them.
! 	* config/s390/s390.opt: Add arch15.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/vecintrin.h: Sort definitions.
  
! 2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/vector.md: Stay scalar for TOINTVEC/tointvec.
  
! 2025-01-20  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config.gcc (riscv*): Install sifive_vector.h.
! 	* config/riscv/sifive_vector.h: New.
  
! 2025-01-20  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	PR target/118510
! 	* config/i386/i386.md (*x86_64_shld_ndd_2): Use register_operand
! 	for operand[0] and adjust the output template to directly
! 	generate ndd form shld pattern.
! 	(*x86_shld_ndd_2): Likewise.
! 	(*x86_64_shrd_ndd_2): Likewise.
! 	(*x86_shrd_ndd_2): Likewise.
  
! 2025-01-19  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.md (*movdi_internal): Reorder ISA attribute
! 	by ascending alternative index.
  
! 2025-01-19  Mark Wielaard  <mark@klomp.org>
  
! 	* config/sparc/sparc.opt.urls: Regenerated.
  
! 2025-01-19  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/gm2.texi (Type compatibility): Move modula2.org link
! 	to https.
  
! 2025-01-19  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/extend.texi (OpenMP): Adjust link to specifications.
  
! 2025-01-18  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/116308
! 	* config/riscv/riscv.cc (riscv_lshift_subword): Use gen_lowpart
! 	rather than simplify_gen_subreg.
  
! 2025-01-18  Michal Jires  <mjires@suse.cz>
  
! 	* cgraph.cc (symbol_table::create_empty):
! 	Move uid to symtab_node.
! 	(test_symbol_table_test): Change expected dump id.
! 	* cgraph.h (struct cgraph_node):
! 	Move uid to symtab_node.
! 	(symbol_table::register_symbol): Likewise.
! 	* dumpfile.cc (test_capture_of_dump_calls):
! 	Change expected dump id.
! 	* ipa-inline.cc (update_caller_keys):
! 	Use summary id instead of uid.
! 	(update_callee_keys): Likewise.
! 	* symtab.cc (symtab_node::get_dump_name):
! 	Use uid instead of order.
  
! 2025-01-18  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/118512
! 	* config/sparc/sparc-c.cc (sparc_target_macros): Deal with VIS 3B.
! 	* config/sparc/sparc.cc (dump_target_flag_bits): Likewise.
! 	(sparc_option_override): Likewise.
! 	(sparc_vis_init_builtins): Likewise.
! 	* config/sparc/sparc.md (fpcmp_vis): Replace TARGET_VIS3 with
! 	TARGET_VIS3B.
! 	(vec_cmp): Likewise.
! 	(fpcmpu_vis): Likewise.
! 	(vec_cmpu): Likewise.
! 	(vcond_mask_): Likewise.
! 	* config/sparc/sparc.opt (VIS3B): New target mask.
! 	* doc/invoke.texi (SPARC options): Document -mvis3b.
  
! 2025-01-18  Jin Ma  <jinma@linux.alibaba.com>
  
! 	PR target/118357
! 	* config/riscv/riscv-vsetvl.cc: Function change_vtype_only_p always
! 	returns false for XTheadVector.
  
! 2025-01-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118529
! 	* tree-vect-stmts.cc (vectorizable_condition): Check the
! 	shape of the vector and condition vector type are compatible.
  
! 2025-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options): Fix plenk at -msplit-ldst.
  
! 2025-01-18  Akram Ahmad  <Akram.Ahmad@arm.com>
! 	    Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc: Expand iterators.
! 	* config/aarch64/aarch64-simd-builtins.def: Use standard names
! 	* config/aarch64/aarch64-simd.md: Use standard names, split insn
! 	definitions on signedness of operator and type of operands.
! 	* config/aarch64/arm_neon.h: Use standard builtin names.
! 	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
! 	simplify splitting of insn for unsigned scalar arithmetic.
  
! 2025-01-18  Akram Ahmad  <Akram.Ahmad@arm.com>
  
! 	* config/aarch64/aarch64-sve.md: Rename insns
  
! 2025-01-18  Tamar Christina  <tamar.christina@arm.com>
  
! 	Revert:
! 	2025-01-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc: Expand iterators.
! 	* config/aarch64/aarch64-simd-builtins.def: Use standard names
! 	* config/aarch64/aarch64-simd.md: Use standard names, split insn
! 	definitions on signedness of operator and type of operands.
! 	* config/aarch64/arm_neon.h: Use standard builtin names.
! 	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
! 	simplify splitting of insn for unsigned scalar arithmetic.
  
! 2025-01-18  Tamar Christina  <tamar.christina@arm.com>
  
! 	Revert:
! 	2025-01-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-sve.md: Rename insns
  
! 2025-01-18  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.cc: Remove unused variable.
  
! 2025-01-18  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_rtx_costs): Fix the
! 	cost for (a + b * imm) and (a + (b << imm)) which can be
! 	implemented with a single alsl instruction.
  
! 2025-01-18  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (alslsi3_extend): Add alsl.wu.
  
! 2025-01-17  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/118067
! 	* lra-constraints.cc (invalid_mode_reg_p): New function.
! 	(curr_insn_transform): Use it to check mode returned by target
! 	secondary_memory_needed_mode.
  
! 2025-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/118511
! 	* config/s390/s390.cc (print_operand) <case 'p'>: Use
! 	output_operand_lossage instead of gcc_checking_assert.
! 	(print_operand) <case 'q'>: Likewise.
! 	(print_operand) <case 'r'>: Likewise.
  
! 2025-01-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-sve.md: Rename insns
  
! 2025-01-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc: Expand iterators.
! 	* config/aarch64/aarch64-simd-builtins.def: Use standard names
! 	* config/aarch64/aarch64-simd.md: Use standard names, split insn
! 	definitions on signedness of operator and type of operands.
! 	* config/aarch64/arm_neon.h: Use standard builtin names.
! 	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
! 	simplify splitting of insn for unsigned scalar arithmetic.
  
! 2025-01-17  Carl Love  <cel@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvuxwdp):
! 	Remove built-in definition.
  
! 2025-01-17  Carl Love  <cel@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_8hi,
! 	__builtin_vsx_vperm_8hi_uns): Remove built-in definitions.
  
! 2025-01-17  Carl Love  <cel@linux.ibm.com>
  
! 	* doc/extend.texi: Fix spelling mistake in description of the
! 	vec_sel built-in.  Add documentation of the 128-bit vec_perm
! 	instance.
  
! 2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-c.cc (DEF_BUILTIN): Add ATTRS argument to macro
! 	definition.
! 	* config/avr/avr.cc: Same.
! 	(avr_init_builtins) <attr_const>: New variable that can be used
! 	as ATTRS argument in DEF_BUILTIN.
! 	* config/avr/builtins.def (DEF_BUILTIN): Add ATTRS parameter
! 	to all definitions.
  
! 2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/118329
! 	* config/avr/avr-modes.def: Add INT_N (PSI, 24).
! 	* config/avr/avr.cc (avr_init_builtin_int24)
! 	<__int24>: Remove definition.
! 	<__uint24>: Adjust definition to INT_N interface.
  
! 2025-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118522
! 	* match.pd ((FTYPE) N CMP (FTYPE) M): Add convert, as in GENERIC
! 	integral types with the same precision and sign might actually not
! 	be compatible types.
  
! 2025-01-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/92539
! 	* tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely_1):
! 	Also try force-evaluation if ivcanon did not yet run.
! 	(canonicalize_loop_induction_variables):
! 	When niter was computed constant by force evaluation add a
! 	canonical IV if we didn't unroll.
! 	* tree-ssa-loop-niter.cc (loop_niter_by_eval): When we
! 	don't find a proper PHI try if the exit condition scans
! 	over a STRING_CST and simulate that.
  
! 2025-01-17  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.cc
! 	(is_zicfilp_p): New function.
! 	(is_zicfiss_p): New function.
! 	* config/riscv/riscv-zicfilp.cc: Update.
! 	* config/riscv/riscv.h: Update.
! 	* config/riscv/riscv.md: Update.
! 	* config/riscv/riscv-c.cc: Add CFI predefine marco.
  
! 2025-01-17  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.cc
! 	(riscv_file_end): Add .note.gnu.property.
  
! 2025-01-17  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc: Add ZICFILP ISA
  	string.
! 	* config.gcc: Add riscv-zicfilp.o
! 	* config/riscv/riscv-passes.def (INSERT_PASS_BEFORE):
! 	Insert landing pad instructions.
! 	* config/riscv/riscv-protos.h (make_pass_insert_landing_pad):
! 	Declare.
! 	* config/riscv/riscv-zicfilp.cc: New file.
! 	* config/riscv/riscv.cc
! 	(riscv_trampoline_init): Add landing pad instructions.
! 	(riscv_legitimize_call_address): Likewise.
! 	(riscv_output_mi_thunk): Likewise.
! 	* config/riscv/riscv.h: Update.
! 	* config/riscv/riscv.md: Add landing pad patterns.
! 	* config/riscv/riscv.opt (TARGET_ZICFILP): Define.
! 	* config/riscv/t-riscv: Add build rule for
! 	riscv-zicfilp.o
  
! 2025-01-17  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc: Add ZICFISS ISA string.
! 	* config/riscv/predicates.md: New predicate x1x5_operand.
! 	* config/riscv/riscv.cc
! 	(riscv_expand_prologue): Insert shadow stack instructions.
! 	(riscv_expand_epilogue): Likewise.
! 	(riscv_for_each_saved_reg): Assign t0 or ra register for
! 	sspopchk instruction.
! 	(need_shadow_stack_push_pop_p): New function. Omit shadow
! 	stack operation on leaf function.
! 	* config/riscv/riscv.h
! 	(need_shadow_stack_push_pop_p): Define.
! 	* config/riscv/riscv.md: Add shadow stack patterns.
! 	(save_stack_nonlocal): Add shadow stack instructions for setjump.
! 	(restore_stack_nonlocal): Add shadow stack instructions for longjump.
! 	* config/riscv/riscv.opt (TARGET_ZICFISS): Define.
  
! 2025-01-16  Tamar Christina  <tamar.christina@arm.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113257
! 	* config/aarch64/driver-aarch64.cc (get_cpu_from_id, DEFAULT_CPU): New.
! 	(host_detect_local_cpu): Use it.
  
! 2025-01-16  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/110901
! 	* config/aarch64/aarch64.h (MCPU_TO_MARCH_SPEC): Don't override if
! 	march is set.
  
! 2025-01-16  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/1180167
! 	* lra-constraints.cc (process_alt_operands): Use operand mode not
! 	subreg reg mode.  Add and improve debugging prints for updating
! 	losers.
  
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* omp-general.cc (omp_complete_construct_context): Check
! 	"omp declare target" attribute, not "omp declare target block".
  
! 2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Return
! 	const0_rtx when there is an error.
  
! 2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct
! 	array size for the loop limit.
! 	* config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand.
  
! 2025-01-16  Liao Shihua  <shihua@iscas.ac.cn>
  
! 	* config/riscv/vector.md: New attr set.
  
! 2025-01-16  Jiawei  <jiawei@iscas.ac.cn>
  
! 	* config/riscv/genrvv-type-indexer.cc (expand_floattype): New func.
! 	(main): New type.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_XFQF_OPS): New def.
! 	(vint8mf8_t): Ditto.
! 	(vint8mf4_t): Ditto.
! 	(vint8mf2_t): Ditto.
! 	(vint8m1_t): Ditto.
! 	(vint8m2_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_XFQF_OPS): Ditto.
! 	(rvv_arg_type_info::get_xfqf_float_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.def (xfqf_vector): Ditto.
! 	(xfqf_float): Ditto.
  	* config/riscv/riscv-vector-builtins.h
! 	(struct rvv_arg_type_info): New function prototype.
! 	* config/riscv/sifive-vector.md: Update iterator.
! 	* config/riscv/vector-iterators.md: Ditto.
  
! 2025-01-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	PR tree-optimization/118487
! 	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq):
! 	Ensure that shuffle masks are VECTOR_CSTs.
  
! 2025-01-16  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq):
! 	Eliminate redundant calls to to_constant().
  
! 2025-01-16  Richard Biener  <rguenther@suse.de>
! 	    Mikael Morin  <mikael@gcc.gnu.org>
  
! 	PR tree-optimization/115494
! 	* tree-ssa-pre.cc (phi_translate_1): Always generate a
! 	representative for translated dependent expressions.
  
! 2025-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118430
! 	* tree-ssa-propagate.cc (may_propagate_copy): Return false if dest
! 	is lhs of an [[gnu::musttail]] call.
! 	(substitute_and_fold_dom_walker::before_dom_children): Formatting fix.
  
! 2025-01-16  Jakub Jelinek  <jakub@redhat.com>
! 	    Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/118430
! 	* tree-tailcall.cc: Include gimple-range.h, alloc-pool.h, sreal.h,
! 	symbol-summary.h, ipa-cp.h and ipa-prop.h.
! 	(find_tail_calls): If ass_var is NULL and ret_var is not, check if
! 	IPA-VRP has not found singleton return range for it.  In that case,
! 	don't punt if ret_var is the only value in that range.  Adjust the
! 	maybe_error_musttail message otherwise to diagnose different value
! 	being returned from the caller and callee rather than using return
! 	slot.  Formatting fixes.
  
! 2025-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/extend.texi (Using Assembly Language with C): Add Asm constexprs
! 	to @menu.
! 	(Basic Asm): Move @node asm constexprs before Asm Labels, rename to
! 	Asm constexprs, change wording so that it is clearer that the constant
! 	expression actually must not return a string literal, just some specific
! 	container and other wording tweaks.  Only talk about top-level for basic
! 	asms in this @node, move restrictions on top-level extended asms to ...
! 	(Extended Asm): ... here.
  
! 2025-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/118400
! 	* vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate (0)
! 	instead of clearing m_vec->m_vecpfx.m_num.
  
! 2025-01-16  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/118489
! 	* config/i386/sse.md (VF1_AVX512BW): Fix typo.
  
! 2025-01-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115895
! 	* tree-vect-stmts.cc (get_group_load_store_type): When we
! 	might overrun because the group size is not a multiple of the
! 	vector size we cannot use loop masking since that does not
! 	implement the required load shortening.
  
! 2025-01-16  Keith Packard  <keithp@keithp.com>
  
! 	* config/lm32/lm32.cc: Add several #includes.
! 	(va_list_type): New.
! 	(lm32_build_va_list): New function.
! 	(lm32_builtin_va_start): Likewise.
! 	(lm32_sd_gimplify_va_arg_expr): Likewise.
! 	(lm32_gimplify_va_arg_expr): Likewise.
  
! 2025-01-16  Keith Packard  <keithp@keithp.com>
  
! 	* config/lm32/lm32.cc (setup_incoming_varargs): Adjust the
! 	conditionals so that pretend_size is always computed, even
! 	if no_rtl is set.
  
! 2025-01-16  Keith Packard  <keithp@keithp.com>
  
! 	* config/lm32/lm32.cc (lm32_setup_incoming_varargs): Skip last
! 	named parameter when preparing to flush registers with unnamed
! 	arguments to th stack.
  
! 2025-01-16  Keith Packard  <keithp@keithp.com>
  
! 	* config/lm32/lm32.cc (lm32_function_arg): Pass unnamed
! 	arguments in registers too, just like named arguments.
  
! 2025-01-16  Andi Kleen  <ak@gcc.gnu.org>
  
! 	* config/i386/x86-tune-sched-core.cc: Fix incorrect comment.
  
! 2025-01-16  Eugene Rozenfeld  <erozen@microsoft.com>
  
! 	PR gcov-profile/116743
! 	* auto-profile.cc (afdo_annotate_cfg): Fix mismatch between the call graph node count
! 	and the entry block count.
  
! 2025-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/102705
! 	* match.pd (`(1 >> X) != 0`): Remove pattern.
! 	(`1 >> x`): New pattern.
  
! 2025-01-15  Sam James  <sam@gentoo.org>
  
! 	* doc/extend.texi: Cleanup trailing whitespace.
  
! 2025-01-15  Sam James  <sam@gentoo.org>
  
! 	* doc/extend.texi: Add 'a' for grammar fix.
  
! 2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* config/aarch64/tuning_models/neoverse512tvb.h (tune_flags): Update.
  
! 2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE):
! 	Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
! 	* config/aarch64/tuning_models/ampere1b.h: Remove redundant
! 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
! 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
  
! 2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_override_options): Add warning.
! 	* doc/invoke.texi: Document -mabi=ilp32 as deprecated.
  
! 2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (compute_field_expr): Change
! 	VAR_DECL outcome in switch case.
  
! 2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc
! 	(make_gimple_core_safe_access_index): Fix in condition.
  
! 2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* btfout.cc (get_btf_kind): Remove static from function definition.
! 	* config/bpf/btfext-out.cc (bpf_code_reloc_add): Check if CO-RE type
! 	is not a const or volatile.
! 	* ctfc.h (btf_dtd_kind): Add prototype for function.
  
! 2025-01-15  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR middle-end/118472
! 	* fold-const.cc (operand_compare::operand_equal_p): Fix incorrect
! 	replacement.
  
! 2025-01-15  Richard Biener  <rguenther@suse.de>
  
! 	* genmatch.cc (define_dump_logs): Make reverse lookup in
! 	dbg_line_numbers easier by adding comments with start index
! 	and cutting number of elements per line to 10.
  
! 2025-01-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/116068
! 	* cgraphunit.cc (symbol_table::process_new_functions): Call
! 	bitmap_obstack_initialize (NULL); and bitmap_obstack_release (NULL)
! 	around processing the functions.
  
! 2025-01-15  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/118182
! 	* config/riscv/autovec-opt.md (*widen_reduc_plus_scal_<mode>): Adjust
! 	argument for expand_reduction.
! 	(*widen_reduc_plus_scal_<mode>): Ditto.
! 	(*fold_left_widen_plus_<mode>): Ditto.
! 	(*mask_len_fold_left_widen_plus_<mode>): Ditto.
! 	(*cond_widen_reduc_plus_scal_<mode>): Ditto.
! 	(*cond_len_widen_reduc_plus_scal_<mode>): Ditto.
! 	(*cond_widen_reduc_plus_scal_<mode>): Ditto.
! 	* config/riscv/autovec.md (reduc_plus_scal_<mode>): Adjust argument for
! 	expand_reduction.
! 	(reduc_smax_scal_<mode>): Ditto.
! 	(reduc_umax_scal_<mode>): Ditto.
! 	(reduc_smin_scal_<mode>): Ditto.
! 	(reduc_umin_scal_<mode>): Ditto.
! 	(reduc_and_scal_<mode>): Ditto.
! 	(reduc_ior_scal_<mode>): Ditto.
! 	(reduc_xor_scal_<mode>): Ditto.
! 	(reduc_plus_scal_<mode>): Ditto.
! 	(reduc_smax_scal_<mode>): Ditto.
! 	(reduc_smin_scal_<mode>): Ditto.
! 	(reduc_fmax_scal_<mode>): Ditto.
! 	(reduc_fmin_scal_<mode>): Ditto.
! 	(fold_left_plus_<mode>): Ditto.
! 	(mask_len_fold_left_plus_<mode>): Ditto.
! 	* config/riscv/riscv-v.cc (expand_reduction): Add one more
! 	argument for reduction code for vl0-safe.
! 	* config/riscv/riscv-protos.h (expand_reduction): Ditto.
! 	* config/riscv/vector-iterators.md (unspec): Add _VL0_SAFE variant of
! 	reduction.
! 	(ANY_REDUC_VL0_SAFE): New.
! 	(ANY_WREDUC_VL0_SAFE): Ditto.
! 	(ANY_FREDUC_VL0_SAFE): Ditto.
! 	(ANY_FREDUC_SUM_VL0_SAFE): Ditto.
! 	(ANY_FWREDUC_SUM_VL0_SAFE): Ditto.
! 	(reduc_op): Add _VL0_SAFE variant of reduction.
! 	(order) Ditto.
! 	* config/riscv/vector.md (@pred_<reduc_op><mode>): New.
  
! 2025-01-15  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/115777
! 	* tree-vect-slp.cc (vect_bb_slp_scalar_cost): Do not
! 	cost a scalar stmt that needs to be preserved.
  
! 2025-01-15  Michal Jires  <mjires@suse.cz>
  
! 	PR lto/118238
! 	* lto-wrapper.cc (run_gcc): Remove link() copying.
  
! 2025-01-15  Anton Blanchard  <antonb@tenstorrent.com>
! 	    Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR target/118170
! 	* config/riscv/generic-ooo.md (generic_ooo_float_div_half): New
! 	reservation.
  
! 2025-01-15  Richard Sandiford  <richard.sandiford@arm.com>
! 	    Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/109592
! 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
! 	Simplify nested shifts with subregs.
  
! 2025-01-14  anetczuk  <anetczuk@o2.pl>
  
! 	* tree-dump.cc (dequeue_and_dump): Handle OBJ_TYPE_REF.
  
! 2025-01-14  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-fold.cc (decode_field_reference): Rebustify to set
! 	out parms only when returning non-NULL.
! 	(fold_truth_andor_for_ifcombine): Bail if
! 	decode_field_reference returns NULL.  Add complementary assert
! 	on r_const's not being set when l_const isn't.
  
! 2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* cgraph.cc (symbol_table::create_edge): Don't set
! 	calls_declare_variant_alt in the caller.
! 	* cgraph.h (struct cgraph_node): Remove declare_variant_alt
! 	and calls_declare_variant_alt flags.
! 	* cgraphclones.cc (cgraph_node::create_clone): Don't copy
! 	calls_declare_variant_alt bit.
! 	* gimplify.cc: Remove previously #ifdef-ed out code.
! 	* ipa-free-lang-data.cc (free_lang_data_in_decl): Adjust code
! 	referencing declare_variant_alt bit.
! 	* ipa.cc (symbol_table::remove_unreachable_nodes): Likewise.
! 	* lto-cgraph.cc (lto_output_node): Remove references to deleted
! 	bits.
! 	(output_refs): Adjust code referencing declare_variant_alt bit.
! 	(input_overwrite_node): Remove references to deleted bits.
! 	(input_refs): Adjust code referencing declare_variant_alt bit.
! 	* lto-streamer-out.cc (lto_output): Likewise.
! 	* lto-streamer.h (omp_lto_output_declare_variant_alt): Delete.
! 	(omp_lto_input_declare_variant_alt): Delete.
! 	* omp-expand.cc (expand_omp_target): Use has_omp_variant_constructs
! 	bit to trigger pass_omp_device_lower instead of
! 	calls_declare_variant_alt.
! 	* omp-general.cc (struct omp_declare_variant_entry): Delete.
! 	(struct omp_declare_variant_base_entry): Delete.
! 	(struct omp_declare_variant_hasher): Delete.
! 	(omp_declare_variant_hasher::hash): Delete.
! 	(omp_declare_variant_hasher::equal): Delete.
! 	(omp_declare_variants): Delete.
! 	(omp_declare_variant_alt_hasher): Delete.
! 	(omp_declare_variant_alt_hasher::hash): Delete.
! 	(omp_declare_variant_alt_hasher::equal): Delete.
! 	(omp_declare_variant_alt): Delete.
! 	(omp_lto_output_declare_variant_alt): Delete.
! 	(omp_lto_input_declare_variant_alt): Delete.
! 	(includes): Delete unnecessary include of gt-omp-general.h.
! 	* omp-offload.cc (execute_omp_device_lower): Remove references
! 	to deleted bit.
! 	(pass_omp_device_lower::gate): Likewise.
! 	* omp-simd-clone.cc (simd_clone_create): Likewise.
! 	* passes.cc (ipa_write_summaries): Likeise.
! 	* symtab.cc (symtab_node::get_partitioning_class): Likewise.
! 	* tree-inline.cc (expand_call_inline): Likewise.
! 	(tree_function_versioning): Likewise.
  
! 2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
! 	    Marcel Vollweiler  <marcel@codesourcery.com>
  
! 	PR middle-end/114596
! 	PR middle-end/112779
! 	PR middle-end/113904
! 	* Makefile.in (GTFILES): Move omp-general.h earlier; required
! 	because of moving score_wide_int declaration to that file.
! 	* cgraph.h (struct cgraph_node): Add has_omp_variant_constructs flag.
! 	* cgraphclones.cc (cgraph_node::create_clone): Propagate
! 	has_omp_variant_constructs flag.
! 	* gimplify.cc (omp_resolved_variant_calls): New.
! 	(expand_late_variant_directive): New.
! 	(find_supercontext): New.
! 	(gimplify_variant_call_expr): New.
! 	(gimplify_call_expr): Adjust parameters to make fallback available.
! 	Update processing for "declare variant" substitution.
! 	(is_gimple_stmt): Add OMP_METADIRECTIVE.
! 	(omp_construct_selector_matches): Ifdef out unused function.
! 	(omp_get_construct_context): New.
! 	(gimplify_omp_dispatch): Replace call to deleted function
! 	omp_resolve_declare_variant with equivalent logic.
! 	(expand_omp_metadirective): New.
! 	(expand_late_variant_directive): New.
! 	(gimplify_omp_metadirective): New.
! 	(gimplify_expr): Adjust arguments to gimplify_call_expr.  Add
! 	cases for OMP_METADIRECTIVE, OMP_NEXT_VARIANT, and
! 	OMP_TARGET_DEVICE_MATCHES.
! 	(gimplify_function_tree): Initialize/clean up
! 	omp_resolved_variant_calls.
! 	* gimplify.h (omp_construct_selector_matches): Delete declaration.
! 	(omp_get_construct_context): Declare.
! 	* lto-cgraph.cc (lto_output_node): Write has_omp_variant_constructs.
! 	(input_overwrite_node): Read has_omp_variant_constructs.
! 	* omp-builtins.def (BUILT_IN_OMP_GET_NUM_DEVICES): New.
! 	* omp-expand.cc (expand_omp_taskreg): Propagate
! 	has_omp_variant_constructs.
! 	(expand_omp_target): Likewise.
! 	* omp-general.cc (omp_maybe_offloaded): Add construct_context
! 	parameter; use it instead of querying gimplifier state.  Add
! 	comments.
! 	(omp_context_name_list_prop): Do not test lang_GNU_Fortran in
! 	offload compiler, just use the string as-is.
! 	(expr_uses_parm_decl): New.
! 	(omp_check_context_selector): Add metadirective_p parameter.
! 	Remove sorry for target_device selector.  Add additional checks
! 	specific to metadirective or declare variant.
! 	(make_omp_metadirective_variant): New.
! 	(omp_construct_traits_match): New.
! 	(omp_context_selector_matches): Temporarily ifdef out the previous
! 	code, and add a new implementation based on the old one with
! 	different parameters, some unnecessary loops removed, and code
! 	re-indented.
! 	(omp_target_device_matches_on_host): New.
! 	(resolve_omp_target_device_matches): New.
! 	(omp_construct_simd_compare): Support matching of "simdlen" and
! 	"aligned" clauses.
! 	(omp_context_selector_set_compare): Make static.  Adjust call to
! 	omp_construct_simd_compare.
! 	(score_wide_int): Move declaration to omp-general.h.
! 	(omp_selector_is_dynamic): New.
! 	(omp_device_num_check): New.
! 	(omp_dynamic_cond): New.
! 	(omp_context_compute_score): Ifdef out the old version and
! 	re-implement with different parameters.
! 	(omp_complete_construct_context): New.
! 	(omp_resolve_late_declare_variant): Ifdef out.
! 	(omp_declare_variant_remove_hook): Likewise.
! 	(omp_resolve_declare_variant): Likewise.
! 	(sort_variant): New.
! 	(omp_get_dynamic_candidates): New.
! 	(omp_declare_variant_candidates): New.
! 	(omp_metadirective_candidates): New.
! 	(omp_early_resolve_metadirective): New.
! 	(omp_resolve_variant_construct): New.
! 	* omp-general.h (score_wide_int): Moved here from omp-general.cc.
! 	(struct omp_variant): New.
! 	(make_omp_metadirective_variant): Declare.
! 	(omp_construct_traits_to_codes): Delete declaration.
! 	(omp_check_context_selector): Adjust parameters.
! 	(omp_context_selector_matches): Likewise.
! 	(omp_context_selector_set_compare): Delete declaration.
! 	(omp_resolve_declare_variant): Likewise.
! 	(omp_declare_variant_candidates): Declare.
! 	(omp_metadirective_candidates): Declare.
! 	(omp_get_dynamic_candidates): Declare.
! 	(omp_early_resolve_metadirective): Declare.
! 	(omp_resolve_variant_construct): Declare.
! 	(omp_dynamic_cond): Declare.
! 	* omp-offload.cc (resolve_omp_variant_cookies): New.
! 	(execute_omp_device_lower): Call the above function to resolve
! 	variant directives.  Remove call to omp_resolve_declare_variant.
! 	(pass_omp_device_lower::gate): Check has_omp_variant_construct bit.
! 	* omp-simd-clone.cc (simd_clone_create): Propagate
! 	has_omp_variant_constructs bit.
! 	* tree-inline.cc (expand_call_inline): Likewise.
! 	(tree_function_versioning): Likewise.
  
! 2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/generic.texi (OpenMP): Document OMP_METADIRECTIVE,
! 	OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES.
! 	* fold-const.cc (operand_compare::hash_operand): Ignore
! 	the new nodes.
! 	* gimple-expr.cc (is_gimple_val): Allow OMP_NEXT_VARIANT
! 	and OMP_TARGET_DEVICE_MATCHES.
! 	* gimple.cc (get_gimple_rhs_num_ops): OMP_NEXT_VARIANT and
! 	OMP_TARGET_DEVICE_MATCHES are both GIMPLE_SINGLE_RHS.
! 	* tree-cfg.cc (tree_node_can_be_shared): Allow sharing of
! 	OMP_NEXT_VARIANT.
! 	* tree-inline.cc (remap_gimple_op_r): Ignore subtrees of
! 	OMP_NEXT_VARIANT.
! 	* tree-pretty-print.cc (dump_generic_node): Handle OMP_METADIRECTIVE,
! 	OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES.
! 	* tree-ssa-operands.cc (operands_scanner::get_expr_operands):
! 	Ignore operands of OMP_NEXT_VARIANT and OMP_TARGET_DEVICE_MATCHES.
! 	* tree.def (OMP_METADIRECTIVE): New.
! 	(OMP_NEXT_VARIANT): New.
! 	(OMP_TARGET_DEVICE_MATCHES): New.
! 	* tree.h (OMP_METADIRECTIVE_VARIANTS): New.
! 	(OMP_METADIRECTIVE_VARIANT_SELECTOR): New.
! 	(OMP_METADIRECTIVE_VARIANT_DIRECTIVE): New.
! 	(OMP_METADIRECTIVE_VARIANT_BODY): New.
! 	(OMP_NEXT_VARIANT_INDEX): New.
! 	(OMP_NEXT_VARIANT_STATE): New.
! 	(OMP_TARGET_DEVICE_MATCHES_SELECTOR): New.
! 	(OMP_TARGET_DEVICE_MATCHES_PROPERTIES): New.
  
! 2025-01-14  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118456
! 	* gimple-fold.cc (decode_field_reference): Punt if shifting
! 	after changing signedness.
! 	(fold_truth_andor_for_ifcombine): Check extension bits in
! 	constants before clipping.
  
! 2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/118154
! 	* config/riscv/riscv-vsetvl.cc (MAX_LMUL): New define.
! 	(pre_vsetvl::earliest_fuse_vsetvl_info): Use.
! 	(pre_vsetvl::pre_global_vsetvl_info): New predicate with equal
! 	ratio.
! 	* config/riscv/riscv-vsetvl.def: Use.
  
! 2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR middle-end/118140
! 	* gimple-match-exports.cc (maybe_resimplify_conditional_op): Add
! 	COND_EXPR when we simplified to a scalar gimple value but still
! 	have an else value.
  
! 2025-01-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118405
! 	* tree-vect-stmts.cc (vectorizable_load): When we fall back
! 	to scalar loads make sure we properly convert to vector(1) T
! 	when there was only a single vector element.
  
! 2025-01-14  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/riscv-v.cc (expand_const_vector): Shift in Xmode.
  
! 2025-01-14  Jiufu Guo  <guojiufu@linux.ibm.com>
  
! 	PR target/116030
! 	* config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): Add clobber
! 	and guard with !altivec_indexed_or_indirect_operand.
  
! 2025-01-14  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	PR target/117682
! 	* config/riscv/riscv-v.cc (expand_const_vector): Fall back to
! 	merging if either step is negative.
  
! 2025-01-13  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/115921
! 	* config/riscv/riscv.md (<optab>_shift_reverse): Remove
! 	check for TARGET_ZBA.
  
! 2025-01-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/118418
! 	* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
! 	Take STORE_FLAG_VALUE into account when handling signed comparisons
! 	of comparison results.
  
! 2025-01-13  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/115921
! 	* config/riscv/riscv.md (<optab>_shift_reverse): Only check
! 	popcount_hwi if !TARGET_ZBS.
  
! 2025-01-13  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/riscv-vsetvl.cc (demand_system::use_max_sew): Also
! 	set the ratio for PREV.
  
! 2025-01-13  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_register_move_cost): Remove buggy
! 	check.
  
! 2025-01-13  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/riscv.cc (riscv_build_integer_1): Change
! 	1UL/1ULL to HOST_WIDE_INT_1U.
  
! 2025-01-13  Jeff Law  <jlaw@ventanamicro.com>
  
! 	PR rtl-optimization/107455
! 	* postreload.cc (reload_cse_regs_1): Take advantage of conditional
! 	equivalences.
  
! 2025-01-13  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118409
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Apply the
! 	signbit mask to the right-hand XOR operand too.
  
! 2025-01-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/115910
! 	* expr.cc (expand_expr_divmod): Prefix the TDF_DETAILS note with
! 	";; " and add a space before (needed tie breaker).  Formatting fixes.
  
! 2025-01-13  Richard Biener  <rguenther@suse.de>
! 	    Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	PR tree-optimization/117119
! 	* tree-data-ref.cc (initialize_matrix_A): Check whether
! 	an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.
  
! 2025-01-13  Michal Jires  <mjires@suse.cz>
  
! 	PR lto/118181
! 	* lto-ltrans-cache.cc (ltrans_file_cache::create_item):
! 	Pass checksum by reference.
! 	* lto-ltrans-cache.h: Likewise.
  
! 2025-01-13  Michal Jires  <mjires@suse.cz>
  
! 	* lockfile.cc (LOCKFILE_USE_FCNTL): New.
! 	(lockfile::lock_write): Use LOCKFILE_USE_FCNTL.
! 	(lockfile::try_lock_write): Use LOCKFILE_USE_FCNTL.
! 	(lockfile::lock_read): Use LOCKFILE_USE_FCNTL.
! 	(lockfile::unlock): Use LOCKFILE_USE_FCNTL.
! 	(lockfile::lockfile_supported): Use LOCKFILE_USE_FCNTL.
  
! 2025-01-13  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
! 	Refactor to avoid redundant TARGET_AVX512BW in many places.
  
! 2025-01-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/117997
! 	PR middle-end/118415
! 	* expr.cc (assemble_crc_table): Make static, remove id argument,
! 	use output_constant_def.  Emit note if -fdump-rtl-expand-details
! 	about which table has been emitted.
! 	(generate_crc_table): Make static, adjust assemble_crc_table
! 	caller, call it always.
! 	(calculate_table_based_CRC): Make static.
! 	* internal-fn.cc (expand_crc_optab_fn): Emit note if
! 	-fdump-rtl-expand-details about using optab for crc.  Formatting fix.
  
! 2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha.cc (alpha_expand_block_move): Use a HImode
! 	subreg of a DImode register to hold data from an aligned HImode
! 	load.
  
! 2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha.cc (alpha_expand_block_move): Merge loaded
! 	data from pairs of SImode registers into single DImode registers
! 	if to be used with unaligned stores.
  
! 2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha.cc (alpha_option_override): Ignore CPU
! 	flags corresponding to features the enabling or disabling of
! 	which has been requested with an individual feature option.
  
! 2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	PR middle-end/64242
! 	* config/alpha/alpha.md (`builtin_longjmp'): Restore frame
! 	pointer last.  Add frame clobber and schedule blockage.
  
! 2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha.md (builtin_longjmp): Add memory clobbers.
  
! 2025-01-12  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-slp.cc (vect_analyze_slp): Release saved_stmts
! 	vector.
! 	(vect_build_slp_tree_2): Release new_oprnds_info when not
! 	used.
! 	(vect_analyze_slp): Release root_stmts when gcond SLP
! 	build fails.
  
! 2025-01-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/118411
! 	* final.cc (get_attr_length_1): Handle asm for CALL_INSN
! 	and JUMP_INSNs.
  
! 2025-01-11  mengqinggang  <mengqinggang@loongson.cn>
  
! 	* config/loongarch/lasx.md: Use new loongarch_output_move.
! 	* config/loongarch/loongarch-protos.h (loongarch_output_move):
! 	Change parameters from (rtx, rtx) to (rtx *).
! 	* config/loongarch/loongarch.cc (loongarch_output_move):
! 	Generate final immediate for lu12i.w and lu52i.d.
! 	* config/loongarch/loongarch.md:
! 	Generate final immediate for lu32i.d and lu52i.d.
! 	* config/loongarch/lsx.md: Use new loongarch_output_move.
  
! 2025-01-11  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/88575
! 	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Query
! 	relation between op0 and op1 and utilize it.
! 	(simplify_using_ranges::simplify): Do not eliminate float checks.
  
! 2025-01-10  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR tree-optimization/118211
! 	PR tree-optimization/116126
! 	* tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
! 	Don't skip over gconds.
  
! 2025-01-10  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR tree-optimization/118211
! 	PR tree-optimization/116126
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust skip_vector
! 	condition to only omit the edge if we're versioning for
! 	alignment.
  
! 2025-01-10  Tamar Christina  <Tamar.Christina@arm.com>
! 	    Alex Coplan  <alex.coplan@arm.com>
  
! 	PR tree-optimization/118211
! 	PR tree-optimization/116126
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Update immediate
! 	dominators of nodes that were dominated by the prolog skip block
! 	after inserting vector skip edge.  Initialize prolog variable to
! 	NULL to avoid bogus -Wmaybe-uninitialized during bootstrap.
  
! 2025-01-10  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR tree-optimization/118211
! 	PR tree-optimization/116126
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Avoid emitting an
! 	epilogue guard for inverted early-exit loops.
  
! 2025-01-10  Alex Coplan  <alex.coplan@arm.com>
! 	    Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/118211
! 	PR tree-optimization/116126
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Set need_peeling_for_alignment flag on read DRs instead of
! 	failing vectorization.  Punt on gathers.
! 	(dr_misalignment): Handle non-constant target alignments.
! 	(vect_compute_data_ref_alignment): If need_peeling_for_alignment
! 	flag is set on the DR, then override the target alignment chosen
! 	by the preferred_vector_alignment hook to choose a safe
! 	alignment.
! 	(vect_supportable_dr_alignment): Override
! 	support_vector_misalignment hook if need_peeling_for_alignment
! 	is set on the DR: in this case we must return
! 	dr_unaligned_unsupported in order to force peeling.
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Allow prolog
! 	peeling by a compile-time non-constant amount.
! 	* tree-vectorizer.h (dr_vec_info): Add new flag
! 	need_peeling_for_alignment.
  
! 2025-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts
! 	num.
  
! 2025-01-10  Richard Biener  <rguenther@suse.de>
  
! 	* df-core.cc (rest_of_handle_df_finish): Release dflow for
! 	problems without free function (like LR).
! 	* gimple-crc-optimization.cc (crc_optimization::loop_may_calculate_crc):
! 	Release loop_bbs on all exits.
! 	* tree-vectorizer.h (supportable_indirect_convert_operation): Change.
! 	* tree-vect-generic.cc (expand_vector_conversion): Adjust.
! 	* tree-vect-stmts.cc (vectorizable_conversion): Use auto_vec for
! 	converts.
! 	(supportable_indirect_convert_operation): Get a reference to
! 	the output vector of converts.
  
! 2025-01-10  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/118332
! 	* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Delete.
! 	(register_type_decl): Delete.
! 	(register_builtin_tuple_types): Use
! 	lang_hooks.types.simulate_record_decl.
  
! 2025-01-10  Richard Biener  <rguenther@suse.de>
  
! 	* gcse.cc (pass_hardreg_pre::gate): Wrap possibly unused
! 	fun argument.
  
! 2025-01-10  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/117467
! 	PR rtl-optimization/117934
! 	* ext-dce.cc (ext_dce_execute): Do nothing if a memory
! 	allocation estimate exceeds what is allowed by
! 	--param max-gcse-memory.
  
! 2025-01-10  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-protos.h (s390_emit_compare): Add mode
! 	parameter for the resulting RTX.
! 	* config/s390/s390.cc (s390_emit_compare): Dito.
! 	(s390_emit_compare_and_swap): Change.
! 	(s390_expand_vec_strlen): Change.
! 	(s390_expand_cs_hqi): Change.
! 	(s390_expand_split_stack_prologue): Change.
! 	* config/s390/s390.md (*add<mode>3_carry1_cc): Renamed to ...
! 	(add<mode>3_carry1_cc): this and in order to use the
! 	corresponding gen function, encode CC mode into pattern.
! 	(*sub<mode>3_borrow_cc): Renamed to ...
! 	(sub<mode>3_borrow_cc): this and in order to use the
! 	corresponding gen function, encode CC mode into pattern.
! 	(*add<mode>3_alc_carry1_cc): Renamed to ...
! 	(add<mode>3_alc_carry1_cc): this and in order to use the
! 	corresponding gen function, encode CC mode into pattern.
! 	(sub<mode>3_slb_borrow1_cc): New.
! 	(uaddc<mode>5): New.
! 	(usubc<mode>5): New.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* doc/passes.texi: Document hardreg PRE pass.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.h (HARDREG_PRE_REGNOS): New macro.
! 	* gcse.cc (doing_hardreg_pre_p): New global variable.
! 	(do_load_motion): New boolean check.
! 	(current_hardreg_regno): New global variable.
! 	(compute_local_properties): Unset transp for hardreg clobbers.
! 	(prune_hardreg_uses): New function.
! 	(want_to_gcse_p): Use different checks for hardreg PRE.
! 	(oprs_unchanged_p): Disable load motion for hardreg PRE pass.
! 	(hash_scan_set): For hardreg PRE, skip non-hardreg sets and
! 	check for hardreg clobbers.
! 	(record_last_mem_set_info): Skip for hardreg PRE.
! 	(compute_pre_data): Prune hardreg uses from transp bitmap.
! 	(pre_expr_reaches_here_p_work): Add sentence to comment.
! 	(insert_insn_start_basic_block): New functions.
! 	(pre_edge_insert): Don't add hardreg sets to predecessor block.
! 	(pre_delete): Use hardreg for the reaching reg.
! 	(reset_hardreg_debug_uses): New function.
! 	(pre_gcse): For hardreg PRE, reset debug uses and don't insert
! 	copies.
! 	(one_pre_gcse_pass): Disable load motion for hardreg PRE.
! 	(execute_hardreg_pre): New.
! 	(class pass_hardreg_pre): New.
! 	(pass_hardreg_pre::gate): New.
! 	(make_pass_hardreg_pre): New.
! 	* passes.def (pass_hardreg_pre): New pass.
! 	* tree-pass.h (make_pass_hardreg_pre): New.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* multiple_target.cc
! 	(redirect_to_specific_clone): Assert that "target" attribute is
! 	used for FMV before checking it.
! 	(ipa_target_clone): Skip redirect_to_specific_clone on some
! 	targets.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* doc/invoke.texi: Add new AArch64 flags.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_7A): Add XS.
! 	* config/aarch64/aarch64-option-extensions.def (XS): New flag.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_7A): Add WFXT.
! 	* config/aarch64/aarch64-option-extensions.def (WFXT): New flag.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_4A): Add RCPC2.
! 	* config/aarch64/aarch64-option-extensions.def
! 	(RCPC2): New flag.
! 	(RCPC3): Add RCPC2 dependency.
! 	* config/aarch64/aarch64.h (TARGET_RCPC2): Use new flag.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_5A): Add FLAGM2.
! 	* config/aarch64/aarch64-option-extensions.def (FLAGM2): New flag.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_5A): Add FRINTTS
! 	* config/aarch64/aarch64-option-extensions.def (FRINTTS): New flag.
! 	* config/aarch64/aarch64.h (TARGET_FRINT): Use new flag.
! 	* config/aarch64/arm_acle.h: Use new flag for frintts intrinsics.
! 	* config/aarch64/arm_neon.h: Ditto.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_3A): Add JSCVT.
! 	* config/aarch64/aarch64-option-extensions.def (JSCVT): New flag.
! 	* config/aarch64/aarch64.h (TARGET_JSCVT): Use new flag.
! 	* config/aarch64/arm_acle.h: Use new flag for jscvt intrinsics.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (V8_3A): Add FCMA.
! 	* config/aarch64/aarch64-option-extensions.def (FCMA): New flag.
! 	(SVE): Add FCMA dependency.
! 	* config/aarch64/aarch64.h (TARGET_COMPLEX): Use new flag.
! 	* config/aarch64/arm_neon.h: Use new flag for fcma intrinsics.
  
! 2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc
! 	(aarch64_expand_epilogue): Use TARGET_PAUTH.
! 	* config/aarch64/aarch64.md: Update comment.
  
! 2025-01-10  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/117186
! 	* rtl.h (simplify_context::simplify_logical_relational_operation): Add
! 	an invert0_p parameter.
! 	* simplify-rtx.cc (unsigned_comparison_to_mask): New function.
! 	(mask_to_unsigned_comparison): Likewise.
! 	(comparison_code_valid_for_mode): Delete.
! 	(simplify_context::simplify_logical_relational_operation): Add
! 	an invert0_p parameter.  Handle AND and XOR.  Handle unsigned
! 	comparisons.  Handle always-false results.  Ignore the low bit
! 	of the mask if the operands are always ordered and remove the
! 	then-redundant check of comparison_code_valid_for_mode.  Check
! 	for side-effects in the operands before simplifying them away.
! 	(simplify_context::simplify_binary_operation_1): Remove
! 	simplification of (compare (gt ...) (lt ...)) and instead...
! 	(simplify_context::simplify_relational_operation_1): ...handle
! 	comparisons of comparisons here.
! 	(test_comparisons): New function.
! 	(test_scalar_ops): Call it.
  
! 2025-01-10  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-fold.cc (decode_field_reference): Drop misuses of
! 	uniform_integer_cst_p.
! 	(fold_truth_andor_for_ifcombine): Likewise.
  
! 2025-01-10  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118344
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix typo in
! 	rr_and_mask's type adjustment test.
  
! 2025-01-10  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-fold.cc (decode_field_reference): Add xor_pand_mask.
! 	Propagate pand_mask to the right-hand xor operand.  Don't
! 	require the right-hand xor operand to be a constant.
! 	(fold_truth_andor_for_ifcombine): Pass right-hand mask when
! 	appropriate.
  
! 2025-01-10  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR tree-optimization/118206
! 	* gimple-fold.cc (decode_field_reference): Account for upper
! 	bits dropped by narrowing conversions whether before or after
! 	a right shift.
! 	(fold_truth_andor_for_ifcombine): Fold masks, compares, and
! 	combined results.
  
! 2025-01-10  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit
! 	boundary choice by word size as well.  Try aligned double-word
! 	loads as a last resort.
  
! 2025-01-10  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/118138
! 	* ipa-cp.cc (ipacp_value_safe_for_type): Return the appropriate
! 	type instead of a bool, accept NULL_TREE VALUEs.
! 	(propagate_vals_across_arith_jfunc): Use the new returned value of
! 	ipacp_value_safe_for_type.
! 	(propagate_vals_across_ancestor): Likewise.
! 	(propagate_scalar_across_jump_function): Likewise.
  
! 2025-01-10  chenxiaolong  <chenxiaolong@loongson.cn>
! 	    Deng Jianbo  <dengjianbo@loongson.cn>.
  
! 	* config/loongarch/loongarch.cc
! 	(loongarch_builtin_vectorization_cost): Modify the
! 	construction cost of the vec_construct vector.
  
! 2025-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/118188
! 	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Adjust
! 	throughput of emulated gather and scatters.
  
! 2025-01-09  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/118017
! 	* lra-constraints.cc (inherit_reload_reg): Check reg class on uniformity.
  
! 2025-01-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/118362
! 	* config/s390/s390.cc (s390_constant_via_vgbm_p): Allow at most
! 	16-byte vectors.
  
! 2025-01-09  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/118131
! 	* config/arm/arm.h (VALID_MVE_STRUCT_MODE): Accept TI, OI and XI
! 	modes again.
  
! 2025-01-09  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/65181
! 	* config/nvptx/nvptx.cc (nvptx_get_drap_rtx): Handle
! 	'!TARGET_SOFT_STACK'.
! 	* config/nvptx/nvptx.md (define_c_enum "unspec"): Add
! 	'UNSPEC_STACKSAVE', 'UNSPEC_STACKRESTORE'.
! 	(define_expand "allocate_stack", define_expand "save_stack_block")
! 	(define_expand "save_stack_block"): Handle '!TARGET_SOFT_STACK',
! 	PTX 'alloca'.
! 	(define_insn "@nvptx_alloca_<mode>")
! 	(define_insn "@nvptx_stacksave_<mode>")
! 	(define_insn "@nvptx_stackrestore_<mode>"): New.
! 	* doc/invoke.texi (Nvidia PTX Options): Update '-msoft-stack',
! 	'-mno-soft-stack'.
! 	* doc/sourcebuild.texi (nvptx-specific attributes): Document
! 	'nvptx_runtime_alloca_ptx'.
! 	(Add Options): Document 'nvptx_alloca_ptx'.
  
! 2025-01-09  Richard Biener  <rguenther@suse.de>
  
! 	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): When
! 	copying to the header edge first redirect the entry to the
! 	new loop and then the exit to the old to avoid PHI node
! 	re-allocation.
  
! 2025-01-09  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR rtl-optimization/118266
! 	* ree.cc (add_removable_extension): Skip extension on fixed
! 	register.
  
! 2025-01-09  Jakub Jelinek  <jakub@redhat.com>
! 	    Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/117927
! 	* tree-pass.h (PROP_last_full_fold): Define.
! 	* passes.def: Add last= parameters to pass_forwprop.
! 	* tree-ssa-forwprop.cc (pass_forwprop): Add last_p non-static
! 	data member and initialize it in the ctor.
! 	(pass_forwprop::set_pass_param): New method.
! 	(pass_forwprop::execute): Set PROP_last_full_fold in curr_properties
! 	at the start if last_p.
! 	* match.pd (a rrotate (32-b) -> a lrotate b): Only optimize either
! 	if @2 is known not to be equal to prec or if during/after last
! 	forwprop the subtraction has single use and prec is power of two; in
! 	that case transform it into orotate by masked count.
  
! 2025-01-09  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/cpuinfo.h (get_intel_cpu): Remove 0x00.
  
! 2025-01-09  xuli  <xuli1@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins.cc (function_builder::add_unique_function):
! 	Only register overloaded intrinsic for g++.
! 	Only insert non_overloaded_function_table for gcc.
! 	(function_builder::add_overloaded_function): Only register overloaded intrinsic for gcc.
! 	(handle_pragma_vector): Only initialize non_overloaded_function_table for gcc.
  
! 2025-01-09  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* builtin-types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add.
! 	* gimplify.cc (gimplify_call_expr): Add error for multiple
! 	list items to the OpenMP interop clause if no device clause;
! 	continue instead of restarting after append_args handling.
! 	(gimplify_omp_dispatch): Extract device number from the
! 	single interop-clause list item.
! 	* omp-builtins.def (BUILT_IN_OMP_GET_INTEROP_INT): Add.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/65181
! 	* config/nvptx/nvptx.cc (default_ptx_version_option): For
! 	'-march=sm_52' and higher, default at least to '-mptx=7.3'.
! 	* doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
! 	'PTX_VERSION_7_3'.
! 	* config/nvptx/nvptx.cc (ptx_version_to_string)
! 	(ptx_version_to_number): Adjust.
! 	* config/nvptx/nvptx.h (TARGET_PTX_7_3): New.
! 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
! 	'7.3' for 'PTX_VERSION_7_3'.
! 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.3'.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
! 	'nvptx_softstack'.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/65181
! 	* config/nvptx/nvptx.h (STACK_SAVEAREA_MODE): '#define'.
! 	* config/nvptx/nvptx.md [!TARGET_SOFT_STACK]
! 	(save_stack_function): 'define_expand'.
! 	(restore_stack_function): Handle '!TARGET_SOFT_STACK'.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/65181
! 	* config/nvptx/nvptx.md [!TARGET_SOFT_STACK] (save_stack_block):
! 	'define_expand'.
  
! 2025-01-08  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
  
! 	* configure.ac: Fix check for HAVE_GAS_SHF_MERGE on Arm targets.
! 	* configure: Regenerate.
  
! 2025-01-08  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/107102
! 	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): Only
! 	reject calls with different PCSes if the callee clobbers register
! 	state that the caller must preserve.
  
! 2025-01-08  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* gimplify.cc (gimplify_call_expr): Disable variant function's
! 	append_args in 'omp dispatch' when invoking the variant directly
! 	and not through the base function.
  
! 2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* doc/invoke.texi (Nvidia PTX Options): Update '-march-map=sm_50'.
  
! 2025-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/117979
! 	* tree-ssa-dce.cc (make_forwarders_with_degenerate_phis):
! 	Properly update the irreducible region state.
  
! 2025-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	* dwarf2out.cc (break_out_comdat_types): Copy over
! 	DW_AT_language_{name,version} if present.
! 	(output_skeleton_debug_sections): Remove also
! 	DW_AT_language_{name,version}.
! 	(gen_compile_unit_die): For C17, C23, C2Y, C++17, C++20, C++23
! 	and C++26 emit for -gdwarf-5 -gno-strict-dwarf also
! 	DW_AT_language_{name,version} attributes.
  
! 2025-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118325
! 	* tree-nested.cc (convert_nl_goto_reference): Assign proper
! 	context to generated artificial label.
  
! 2025-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118269
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
! 	Use the correct stmt for the REDUC_GROUP_FIRST_ELEMENT lookup.
  
! 2025-01-08  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/118332
! 	* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Use 'val'
! 	instead of '__val'.
  
! 2025-01-08  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/amxavx512intrin.h
! 	(_tile_cvtrowps2pbf16h_internal): Rename to...
! 	(_tile_cvtrowps2bf16h_internal): ...this.
! 	(_tile_cvtrowps2pbf16hi_internal): Rename to...
! 	(_tile_cvtrowps2bf16hi_internal): ...this.
! 	(_tile_cvtrowps2pbf16l_internal): Rename to...
! 	(_tile_cvtrowps2bf16l_internal): ...this.
! 	(_tile_cvtrowps2pbf16li_internal): Rename to...
! 	(_tile_cvtrowps2bf16li_internal): ...this.
! 	(_tile_cvtrowps2pbf16h): Rename to...
! 	(_tile_cvtrowps2bf16h): ...this.
! 	(_tile_cvtrowps2pbf16hi): Rename to...
! 	(_tile_cvtrowps2bf16hi): ...this.
! 	(_tile_cvtrowps2pbf16l): Rename to...
! 	(_tile_cvtrowps2bf16l): ...this.
! 	(_tile_cvtrowps2pbf16li): Rename to...
! 	(_tile_cvtrowps2bf16li): ...this.
  
! 2025-01-08  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386.cc (ix86_noce_max_ifcvt_seq_cost): Adjust
! 	cost with ix86_tune_cost->br_mispredict_scale.
! 	* config/i386/i386.h (processor_costs): Add br_mispredict_scale.
! 	* config/i386/x86-tune-costs.h: Add new br_mispredict_scale to
! 	all processor_costs, in which icelake_cost/alderlake_cost
! 	with value COSTS_N_INSNS (2) + 3 and other processor with value
! 	COSTS_N_INSNS (2).
  
! 2025-01-07  Pan Li  <pan2.li@intel.com>
  
! 	* match.pd: Update comments for sat_* pattern.
  
! 2025-01-07  Pan Li  <pan2.li@intel.com>
  
! 	* match.pd: Extract saturated value match for signed SAT_*.
  
! 2025-01-07  Pan Li  <pan2.li@intel.com>
  
! 	* match.pd: Refactor sorts of signed SAT_TRUNC match patterns
  
! 2025-01-07  Pan Li  <pan2.li@intel.com>
  
! 	* match.pd: Refactor sorts of signed SAT_SUB match patterns.
  
! 2025-01-07  Vineet Gupta  <vineetg@rivosinc.com>
! 	    Pan Li  <pan2.li@intel.com>
  
! 	PR target/117722
! 	* config/riscv/autovec.md: Add uabd expander.
  
! 2025-01-07  Tsung Chun Lin  <tclin914@gmail.com>
  
! 	* expr.cc (widest_fixed_size_mode_for_size): Prefer scalar modes
! 	over vector modes in more cases.
  
! 2025-01-07  Andreas Schwab  <schwab@suse.de>
  
! 	PR target/118137
! 	* config/riscv/sync.md ("lrsc_atomic_exchange<mode>"): Apply mask
! 	to shifted value.
  
! 2025-01-07  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/ft32/ft32.md (casesi expander): Force operands[2] into
! 	a register if it's not a suitable rimm operand.
  
! 2025-01-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc: Switch off fschedule_insns.
  
! 2025-01-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* config/aarch64/aarch64.md (movhf_aarch64): Use aarch64_valid_fp_move.
! 	(movsf_aarch64): Likewise.
! 	(movdf_aarch64): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_valid_fp_move): New function.
! 	* config/aarch64/aarch64-protos.h (aarch64_valid_fp_move): Likewise.
  
! 2025-01-07  Paul-Antoine Arras  <parras@baylibre.com>
  
! 	* gimplify.cc (gimplify_call_expr): Create variable
! 	variant_substituted_p to control whether adjust_args applies.
  
! 2025-01-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/114932
! 	* tree-ssa-loop-ivopts.cc (alloc_iv): Perform affine unsigned fold.
  
! 2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/105769
! 	* cfgexpand.cc (vars_ssa_cache::operator()): For constructors
! 	walk over the elements.
  
! 2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/117426
! 	PR middle-end/111422
! 	* cfgexpand.cc (struct vars_ssa_cache): New class.
! 	(vars_ssa_cache::vars_ssa_cache): New constructor.
! 	(vars_ssa_cache::~vars_ssa_cache): New deconstructor.
! 	(vars_ssa_cache::create): New method.
! 	(vars_ssa_cache::exists): New method.
! 	(vars_ssa_cache::add_one): New method.
! 	(vars_ssa_cache::update): New method.
! 	(vars_ssa_cache::dump): New method.
! 	(add_scope_conflicts_2): Factor mostly out to
! 	vars_ssa_cache::operator(). New cache argument.
! 	Walk the bitmap cache for the stack variables addresses.
! 	(vars_ssa_cache::operator()): New method factored out from
! 	add_scope_conflicts_2. Rewrite to be a full walk of all operands
! 	and use a worklist.
! 	(add_scope_conflicts_1): Add cache new argument for the addr cache.
! 	Just call add_scope_conflicts_2 for the phi result instead of calling
! 	for the uses and don't call walk_stmt_load_store_addr_ops for phis.
! 	Update call to add_scope_conflicts_2 to add cache argument.
! 	(add_scope_conflicts): Add cache argument and update calls to
! 	add_scope_conflicts_1.
  
! 2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* cfgexpand.cc (INVALID_STACK_INDEX): New defined.
! 	(decl_stack_index): New function.
! 	(visit_op): Use decl_stack_index.
! 	(visit_conflict): Likewise.
! 	(add_scope_conflicts_1): Likewise.
  
! 2025-01-07  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/118298
! 	* loop-unroll.cc (decide_unroll_constant_iterations): Honor
! 	loop->unroll even if the loop is too big for heuristics.
  
! 2025-01-07  Deng Jianbo  <dengjianbo@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_output_move):
! 	Optimize instructions for initializing fp regsiter to zero.
  
! 2025-01-07  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/118010
! 	* doc/gm2.texi (Compiler options): New option
! 	-fm2-file-offset-bits=.
  
! 2025-01-07  Jennifer Schmitz  <jschmitz@nvidia.com>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Extend the use of
! 	n_adjacent_stores to also cover vec_to_scalar operations.
! 	* config/aarch64/aarch64-tuning-flags.def: Remove
! 	use_new_vector_costs as tuning option.
! 	* config/aarch64/aarch64.cc (aarch64_use_new_vector_costs_p):
! 	Remove.
! 	(aarch64_vector_costs::add_stmt_cost): Remove use of
! 	aarch64_use_new_vector_costs_p.
! 	(aarch64_vector_costs::finish_cost): Remove use of
! 	aarch64_use_new_vector_costs_p.
! 	* config/aarch64/tuning_models/cortexx925.h: Remove
! 	AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS.
! 	* config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
! 	* config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
! 	* config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
! 	* config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
! 	* config/aarch64/tuning_models/neoversen2.h: Likewise.
! 	* config/aarch64/tuning_models/neoversen3.h: Likewise.
! 	* config/aarch64/tuning_models/neoversev1.h: Likewise.
! 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
! 	* config/aarch64/tuning_models/neoversev3.h: Likewise.
! 	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
  
! 2025-01-06  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR middle-end/118006
! 	* cfgexpand.cc (expand_gimple_basic_block): Do not emit
! 	pending stack adjustments after a barrier.
  
! 2025-01-06  Akram Ahmad  <Akram.Ahmad@arm.com>
  
! 	* config/aarch64/aarch64-simd.md: (*aarch64_trunc_concat)
! 	new insn definition.
  
! 2025-01-06  Fangrui Song  <maskray@gcc.gnu.org>
  
! 	PR gcov-profile/96092
! 	* coverage.cc (coverage_init): Remap getpwd().
  
! 2025-01-06  Jennifer Schmitz  <jschmitz@nvidia.com>
  
! 	* config/aarch64/aarch64-sve-builtins-base.cc
! 	(svmul_impl::fold): Wrap code for folding to svneg in lambda
! 	function and pass to gimple_folder::convert_and_fold to enable
! 	the transform for unsigned types.
! 	* config/aarch64/aarch64-sve-builtins.cc
! 	(gimple_folder::convert_and_fold): New function that converts
! 	operands to target type before calling callback function, adding the
! 	necessary conversion statements.
! 	(gimple_folder::redirect_call): Set fntype of redirected call.
! 	(get_vector_type): Move from here to aarch64-sve-builtins.h.
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(gimple_folder::convert_and_fold): Declare function.
! 	(get_vector_type): Move here as inline function.
  
! 2025-01-06  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-cp.cc (ipcp_print_widest_int): New function.
! 	(ipcp_store_vr_results): Use it.
! 	(ipcp_bits_lattice::print): Likewise.  Fix formatting.
  
! 2025-01-06  Mark Wielaard  <mark@klomp.org>
  
! 	PR tree-optimization/118032
! 	* tree-switch-conversion.cc (jump_table_cluster::find_jump_tables):
! 	Remove param_switch_lower_slow_alg_max_cases check.
  
! 2025-01-06  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/96342
! 	PR target/118272
! 	* config/aarch64/aarch64-sve.md (vec_init<mode><Vquad>,
! 	vec_initvnx16qivnx2qi): New.
! 	* config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector):
! 	Rewrite to support any arbitrary combinations.
! 	* config/aarch64/iterators.md (SVE_NO2E): Update to use SVE_NO4E
! 	(SVE_NO2E, Vquad): New.
  
! 2025-01-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/118224
! 	* tree-ssa-dce.cc (is_removable_allocation_p): Don't return true
! 	for allocations with constant size argument larger than PTRDIFF_MAX
! 	or for calloc with one of the arguments constant larger than
! 	PTRDIFF_MAX or their product known constant above PTRDIFF_MAX.
! 	Fix comment typos, furhter -> further and then -> than.
! 	* lto-section-in.cc (lto_free_function_in_decl_state_for_node):
! 	Fix comment typo, furhter -> further.
  
! 2025-01-04  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/mmix/mmix.cc (mmix_asm_output_labelref): Replace '.'
! 	with '::'.
! 	* config/mmix/mmix.h (ASM_PN_FORMAT): Define to actual default.
  
! 2025-01-03  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/117938
! 	* rtlanal.cc (rtx_properties::try_to_add_dest): Treat writes
! 	to the stack pointer as also writing to memory.
  
! 2025-01-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/118275
! 	* varasm.cc (array_size_for_constructor): Use build_int_cst
! 	with TREE_TYPE (index) as first argument, instead of bitsize_int.
  
! 2025-01-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-ssa-forwprop.cc (check_ctz_array): Use tree_fits_shwi_p instead
! 	of just TREE_CODE tests for INTEGER_CST.
  
! 2025-01-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config.gcc: install a wrapping stdint.h in bpf targets.
  
! 2025-01-02  Paul-Antoine Arras  <parras@baylibre.com>
  
! 	* gimplify.cc (gimplify_call_expr): Fix handling of need_device_ptr for
! 	type(c_ptr). Fix handling of nested function calls in a dispatch region.
! 	(find_ifn_gomp_dispatch): Return the IFN without stripping it.
! 	(gimplify_omp_dispatch): Keep IFN_GOMP_DISPATCH until
! 	gimplify_call_expr.
  
! 2025-01-02  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (amdgcn-x-amdhsa): Refer to Newlib 4.5.0 for
! 	the I/O locking fixes.
  
! 2025-01-02  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/118171
! 	* tree-ssa-pre.cc (create_component_ref_by_pieces_1): Do not
! 	fold any component ref parts.
  
! 2025-01-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/118184
! 	* config/aarch64/aarch64-early-ra.cc (allocno_assignment_is_rmw):
! 	New function.
! 	(early_ra::record_insn_defs): Mark the live range information as
! 	untrustworthy if an assignment would change part of an allocno
! 	but preserve the rest.
  
! 2025-01-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-ssa-forwprop.cc (check_ctz_array): Handle also RAW_DATA_CST
! 	in the CONSTRUCTOR_ELTS.
  
! 2025-01-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/libgdiagnostics/conf.py: Use u'' instead of '' in
! 	project and copyright initialization.
  
! 2025-01-02  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.cc (process_command): Update copyright notice dates.
  	* gcov-dump.cc (print_version): Ditto.
***************
*** 10743,10822 ****
  	* doc/install.texi: Ditto.
  	* doc/invoke.texi: Ditto.
  
! 2024-01-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/simd.md (fmax<mode>3): New define_insn.
! 	(fmin<mode>3): Likewise.
! 	(reduc_fmax_scal_<mode>3): New define_expand.
! 	(reduc_fmin_scal_<mode>3): Likewise.
  
! 2024-01-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113112
! 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
! 	(max_number_of_live_regs): Ditto.
! 	(has_unexpected_spills_p): Ditto.
  
! 2024-01-02  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/vector.md:
! 	Use vector_length_operand for vsetvl patterns.
  
! 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
! 	(expand_cond_len_op): Add simplification of dummy len and dummy mask.
  
! 2024-01-02  Di Zhao  <dizhao@os.amperecomputing.com>
  
! 	* config/aarch64/aarch64-tuning-flags.def
! 	(AARCH64_EXTRA_TUNING_OPTION): New tuning option
! 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_override_options_internal): Set
! 	param_fully_pipelined_fma according to tuning option.
! 	* config/aarch64/tuning_models/ampere1.h: Add
! 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
! 	* config/aarch64/tuning_models/ampere1a.h: Likewise.
! 	* config/aarch64/tuning_models/ampere1b.h: Likewise.
  
! 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/vector-crypto.md: Modify copyright year.
  
! 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
  
! 2024-01-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config.in: Regenerate.
! 	* config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
! 	* config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
! 	Added TLS Le Relax support.
! 	(loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
! 	* config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
! 	* configure: Regenerate.
! 	* configure.ac: Check if binutils supports TLS le relax.
  
! 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/iterators.md: Add rotate insn name.
! 	* config/riscv/riscv.md: Add new insns name for crypto vector.
! 	* config/riscv/vector-iterators.md: Add new iterators for crypto vector.
! 	* config/riscv/vector.md: Add the corresponding attr for crypto vector.
! 	* config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
  
! 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113112
! 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
! 	pointer type liveness count.
  
! Copyright (C) 2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 8795,8946 ----
  	* doc/install.texi: Ditto.
  	* doc/invoke.texi: Ditto.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/loongarch.cc
! 	(loongarch_expand_conditional_move): Add some optimization
! 	implementations based on noce_try_cmove_arith.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/lasx.md (lasx_xvabsd_s_<lasxfmt>): Remove.
! 	(<su>abd<mode>3): New insn pattern.
! 	(lasx_xvabsd_u_<lasxfmt_u>): Remove.
! 	* config/loongarch/loongarch-builtins.cc (CODE_FOR_lsx_vabsd_b):
! 	Rename.
! 	(CODE_FOR_lsx_vabsd_h): Ditto.
! 	(CODE_FOR_lsx_vabsd_w): Ditto.
! 	(CODE_FOR_lsx_vabsd_d): Ditto.
! 	(CODE_FOR_lsx_vabsd_bu): Ditto.
! 	(CODE_FOR_lsx_vabsd_hu): Ditto.
! 	(CODE_FOR_lsx_vabsd_wu): Ditto.
! 	(CODE_FOR_lsx_vabsd_du): Ditto.
! 	(CODE_FOR_lasx_xvabsd_b): Ditto.
! 	(CODE_FOR_lasx_xvabsd_h): Ditto.
! 	(CODE_FOR_lasx_xvabsd_w): Ditto.
! 	(CODE_FOR_lasx_xvabsd_d): Ditto.
! 	(CODE_FOR_lasx_xvabsd_bu): Ditto.
! 	(CODE_FOR_lasx_xvabsd_hu): Ditto.
! 	(CODE_FOR_lasx_xvabsd_wu): Ditto.
! 	(CODE_FOR_lasx_xvabsd_du): Ditto.
! 	* config/loongarch/loongarch.md (u): Add smax/umax.
! 	* config/loongarch/lsx.md (SU_MAX): New iterator.
! 	(su_min): New attr.
! 	(lsx_vabsd_s_<lsxfmt>): Remove.
! 	(<su>abd<mode>3): New insn pattern.
! 	(lsx_vabsd_u_<lsxfmt_u>): Remove.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_unpacks_lo_<mode>): Redefine.
! 	(vec_unpacku_lo_<mode>): Ditto.
! 	(lasx_vext2xv_h<u>_b<u>): Replaced by vec_unpack<su>_lo_v32qi.
! 	(vec_unpack<su>_lo_v32qi): New insn.
! 	(lasx_vext2xv_w<u>_h<u>): Replaced by vec_unpack<su>_lo_v16hi.
! 	(vec_unpack<su>_lo_v16qi_internal): New insn, for 128 bits.
! 	(vec_unpack<su>_lo_v16hi): New insn.
! 	(lasx_vext2xv_d<u>_w<u>): Replaced by vec_unpack<su>_lo_v8si.
! 	(vec_unpack<su>_lo_v8hi_internal): New insn, for 128 bits.
! 	(vec_unpack<su>_lo_v8si): New insn.
! 	(vec_unpack<su>_lo_v4si_internal): New insn, for 128 bits.
! 	(vec_packs_float_v4di): New expander.
! 	(vec_pack_sfix_trunc_v4df): Ditto.
! 	(vec_unpacks_float_hi_v8si): Ditto.
! 	(vec_unpacks_float_lo_v8si): Ditto.
! 	(vec_unpack_sfix_trunc_hi_v8sf): Ditto.
! 	(vec_unpack_sfix_trunc_lo_v8sf): Ditto.
! 	* config/loongarch/loongarch-builtins.cc
! 	(CODE_FOR_lsx_vftintrz_w_d): Rename.
! 	(CODE_FOR_lsx_vftintrzh_l_s): Ditto.
! 	(CODE_FOR_lsx_vftintrzl_l_s): Ditto.
! 	(CODE_FOR_lsx_vffint_s_l): Ditto.
! 	(CODE_FOR_lsx_vffinth_d_w): Ditto.
! 	(CODE_FOR_lsx_vffintl_d_w): Ditto.
! 	(CODE_FOR_lsx_vexth_h_b): Ditto.
! 	(CODE_FOR_lsx_vexth_w_h): Ditto.
! 	(CODE_FOR_lsx_vexth_d_w): Ditto.
! 	(CODE_FOR_lsx_vexth_hu_bu): Ditto.
! 	(CODE_FOR_lsx_vexth_wu_hu): Ditto.
! 	(CODE_FOR_lsx_vexth_du_wu): Ditto.
! 	(CODE_FOR_lsx_vfcvth_d_s): Ditto.
! 	(CODE_FOR_lsx_vfcvtl_d_s): Ditto.
! 	(CODE_FOR_lasx_vext2xv_h_b): Ditto.
! 	(CODE_FOR_lasx_vext2xv_w_h): Ditto.
! 	(CODE_FOR_lasx_vext2xv_d_w): Ditto.
! 	(CODE_FOR_lasx_vext2xv_hu_bu): Ditto.
! 	(CODE_FOR_lasx_vext2xv_wu_hu): Ditto.
! 	(CODE_FOR_lasx_vext2xv_du_wu): Ditto.
! 	(loongarch_expand_builtin_insn): Swap source operands in
! 	CODE_FOR_lsx_vftintrz_w_d and CODE_FOR_lsx_vffint_s_l.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_expand_vec_unpack): Remove useless parameter high_p.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vec_unpack):
! 	Rewrite.
! 	* config/loongarch/lsx.md (vec_unpacks_hi_v4sf): Redefine.
! 	(vec_unpacks_lo_v4sf): Ditto.
! 	(vec_unpacks_hi_<mode>): Ditto.
! 	(vec_unpacku_hi_<mode>): Ditto.
! 	(lsx_vfcvth_d_s): Replaced by vec_unpacks_hi_v4sf.
! 	(lsx_vfcvtl_d_s): Replaced by vec_unpacks_lo_v4sf.
! 	(lsx_vffint_s_l): Replaced by vec_packs_float_v2di.
! 	(vec_packs_float_v2di): New insn.
! 	(lsx_vftintrz_w_d): Replaced by vec_pack_sfix_trunc_v2df.
! 	(vec_pack_sfix_trunc_v2df): New insn.
! 	(lsx_vffinth_d_w): Replaced by vec_unpacks_float_hi_v4si.
! 	(vec_unpacks_float_hi_v4si): New insn.
! 	(lsx_vffintl_d_w): Replaced by vec_unpacks_float_lo_v4si.
! 	(vec_unpacks_float_lo_v4si): New insn.
! 	(lsx_vftintrzh_l_s): Replaced by vec_unpack_sfix_trunc_hi_v4sf.
! 	(vec_unpack_sfix_trunc_hi_v4sf): New insn.
! 	(lsx_vftintrzl_l_s): Replaced by vec_unpack_sfix_trunc_lo_v4sf.
! 	(vec_unpack_sfix_trunc_lo_v4sf): New insn.
! 	(lsx_vexth_h<u>_b<u>): Replaced by vec_unpack<su>_hi_v16qi.
! 	(vec_unpack<su>_hi_v16qi): New insn.
! 	(lsx_vexth_w<u>_h<u>): Replaced by vec_unpack<su>_hi_v8hi.
! 	(vec_unpack<su>_hi_v8hi): New insn.
! 	(lsx_vexth_d<u>_w<u>): Replaced by vec_unpack<su>_hi_v4si.
! 	(vec_unpack<su>_hi_v4si): New insn.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/loongarch.md
! 	(bytepick_d_<bytepick_imm>_rev): New combiner.
! 	(bstrpick_alsl_paired): Reorder input operands.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/lasx.md: Remove useless vec_select.
! 	* config/loongarch/predicates.md: Correct error predicate.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/lasx.md: Fix selector index.
  
! 2025-01-02  Guo Jie  <guojie@loongson.cn>
  
! 	* config/loongarch/lasx.md: Remove useless code.
! 	* config/loongarch/lsx.md: Ditto.
  
! 2025-01-01  Sam James  <sam@gentoo.org>
  
! 	* doc/cpp.texi (Common Predefined Macros): Fix syntax.
  
! 2025-01-01  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/118174
! 	* tree-outof-ssa.cc (ssa_is_replaceable_p): Exclude tailcalls.
  
! 2025-01-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/invoke.texi (Option Summary): Put "M32C Options" and
! 	"Cygwin and MinGW Options" in alphabetical order.  Add
! 	cross-references.
! 	(Cygwin and MinGW Options): Likewise move the section to its
! 	correct alphabetical location.
! 	* config/lynx.opt.urls: Regenerated.
! 	* config/mingw/cygming.opt.urls: Regenerated.
  
! Copyright (C) 2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-1997 gcc-15.1.0/gcc/ChangeLog-1997
*** gcc-14.2.0/gcc/ChangeLog-1997	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-1997	Fri Apr 25 08:17:59 2025
*************** Mon Aug 11 10:04:49 1997  Jeffrey A Law
*** 3967,3973 ****
  Sun Aug 10 12:00:20 1997  Jeffrey A Law  (law@cygnus.com)
  
  	* egcs project officially starts.
- 
  
  Copyright (C) 1997 Free Software Foundation, Inc.
  
--- 3967,3972 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-1998 gcc-15.1.0/gcc/ChangeLog-1998
*** gcc-14.2.0/gcc/ChangeLog-1998	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-1998	Fri Apr 25 08:17:59 2025
*************** Thu Jan  1 10:49:12 1998  Jeffrey A Law
*** 17614,17620 ****
  
  	* mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate
  	for first argument.
- 
  
  Copyright (C) 1998 Free Software Foundation, Inc.
  
--- 17614,17619 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-1999 gcc-15.1.0/gcc/ChangeLog-1999
*** gcc-14.2.0/gcc/ChangeLog-1999	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-1999	Fri Apr 25 08:17:59 2025
*************** Sun Jan  3 03:20:38 1999  David Edelsohn
*** 21784,21790 ****
  Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
  
  	* i386.md (doubleword shifts): Fix dumb mistakes in previous change.
- 
  
  Copyright (C) 1999 Free Software Foundation, Inc.
  
--- 21784,21789 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2000 gcc-15.1.0/gcc/ChangeLog-2000
*** gcc-14.2.0/gcc/ChangeLog-2000	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2000	Fri Apr 25 08:17:59 2025
*************** Mon Jan  3 02:54:40 2000  Hans-Peter Nil
*** 32122,32128 ****
  
  	* expmed.c (emit_store_flag): Prevent losing a pending stack
  	adjust the same way we prevent losing queued increments.
- 
  
  Copyright (C) 2000 Free Software Foundation, Inc.
  
--- 32122,32127 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2001 gcc-15.1.0/gcc/ChangeLog-2001
*** gcc-14.2.0/gcc/ChangeLog-2001	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2001	Fri Apr 25 08:17:59 2025
*************** Mon Jan  1 07:38:33 2001  Richard Kenner
*** 33643,33649 ****
  	* loop.h (REG_IV_CLASS): New accessor macro.
  	* loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
  	* unroll.c (REG_IV_CLASS): Likewise.
- 
  
  Copyright (C) 2001 Free Software Foundation, Inc.
  
--- 33643,33648 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2002 gcc-15.1.0/gcc/ChangeLog-2002
*** gcc-14.2.0/gcc/ChangeLog-2002	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2002	Fri Apr 25 08:17:59 2025
*************** Tue Jan  1 17:12:56 2002  Richard Kenner
*** 35986,35992 ****
  	(mmix_asm_output_labelref): Revert condition for global symbol.
  	(mmix_print_operand): <case '+'>: Emit P for a likely branch.
  	(mmix_print_operand_punct_valid_p): A '+' is valid.
- 
  
  Copyright (C) 2002 Free Software Foundation, Inc.
  
--- 35986,35991 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2003 gcc-15.1.0/gcc/ChangeLog-2003
*** gcc-14.2.0/gcc/ChangeLog-2003	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2003	Fri Apr 25 08:17:59 2025
*************** Mon Mar 24 20:03:03 CET 2003  Jan Hubick
*** 37860,37866 ****
  	* config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
  	* config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
  	* doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
- 
  
  Copyright (C) 2003 Free Software Foundation, Inc.
  
--- 37860,37865 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2004 gcc-15.1.0/gcc/ChangeLog-2004
*** gcc-14.2.0/gcc/ChangeLog-2004	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2004	Fri Apr 25 08:17:59 2025
***************
*** 47878,47884 ****
  	(ix86_expand_vector_init): New.
  	* emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
  	* md.texi (vec_set, vec_extract): Document
- 
  
  Copyright (C) 2004 Free Software Foundation, Inc.
  
--- 47878,47883 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2005 gcc-15.1.0/gcc/ChangeLog-2005
*** gcc-14.2.0/gcc/ChangeLog-2005	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2005	Fri Apr 25 08:17:59 2025
*************** Older entries for 2005 can be found in C
*** 35906,35912 ****
  	* tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
  	the source line is greater than 0.
  	(remove_bb): Likewise.
- 
  
  Copyright (C) 2005 Free Software Foundation, Inc.
  
--- 35906,35911 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2006 gcc-15.1.0/gcc/ChangeLog-2006
*** gcc-14.2.0/gcc/ChangeLog-2006	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2006	Fri Apr 25 08:17:59 2025
***************
*** 23808,23814 ****
  	* config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
  	(sync_compare_and_swapqhi_internal): New.
  	* config/rs6000/rs6000-protos.h: Declare.
- 
  
  Copyright (C) 2006 Free Software Foundation, Inc.
  
--- 23808,23813 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2007 gcc-15.1.0/gcc/ChangeLog-2007
*** gcc-14.2.0/gcc/ChangeLog-2007	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2007	Fri Apr 25 08:17:59 2025
***************
*** 34169,34175 ****
  
  	* cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
  	before starting IPA passes.
- 
  
  Copyright (C) 2007 Free Software Foundation, Inc.
  
--- 34169,34174 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2008 gcc-15.1.0/gcc/ChangeLog-2008
*** gcc-14.2.0/gcc/ChangeLog-2008	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2008	Fri Apr 25 08:17:59 2025
***************
*** 28961,28967 ****
  	* config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
  	sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
  	sse5_perm<mode>): Fix constraints.
- 
  
  Copyright (C) 2008 Free Software Foundation, Inc.
  
--- 28961,28966 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2009 gcc-15.1.0/gcc/ChangeLog-2009
*** gcc-14.2.0/gcc/ChangeLog-2009	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2009	Fri Apr 25 08:17:59 2025
***************
*** 34874,34880 ****
  	* c-tree.h (process_init_element): Adjust prototype.
  	* c-parser.c (c_parser_initelt, c_parser_initval): Adjust
  	process_init_element callers.
- 
  
  Copyright (C) 2009 Free Software Foundation, Inc.
  
--- 34874,34879 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2010 gcc-15.1.0/gcc/ChangeLog-2010
*** gcc-14.2.0/gcc/ChangeLog-2010	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2010	Fri Apr 25 08:17:59 2025
***************
*** 40854,40860 ****
  	PR middle-end/42559
  	* builtins.c (get_object_alignment): Do not use DECL_ALIGN
  	for LABEL_DECLs.
- 
  
  Copyright (C) 2010 Free Software Foundation, Inc.
  
--- 40854,40859 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2011 gcc-15.1.0/gcc/ChangeLog-2011
*** gcc-14.2.0/gcc/ChangeLog-2011	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2011	Fri Apr 25 08:17:59 2025
***************
*** 40032,40038 ****
  
  	PR target/38662
  	* tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
- 
  
  Copyright (C) 2011 Free Software Foundation, Inc.
  
--- 40032,40037 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2022 gcc-15.1.0/gcc/ChangeLog-2022
*** gcc-14.2.0/gcc/ChangeLog-2022	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2022	Fri Apr 25 08:18:00 2025
***************
*** 35077,35083 ****
  	sync_lock_test_and_set libfunc. Call convert_memory_address to
  	convert memory address to Pmode.
  	(atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
- 
  
  Copyright (C) 2022 Free Software Foundation, Inc.
  
--- 35077,35082 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2023 gcc-15.1.0/gcc/ChangeLog-2023
*** gcc-14.2.0/gcc/ChangeLog-2023	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ChangeLog-2023	Fri Apr 25 08:18:00 2025
***************
*** 54871,54877 ****
  	(define_peephole2): Likewise.
  	(define_peephole2): Likewise.
  	(define_Split): Likewise.
- 
  
  Copyright (C) 2023 Free Software Foundation, Inc.
  
--- 54871,54876 ----
diff -Nrcpad gcc-14.2.0/gcc/ChangeLog-2024 gcc-15.1.0/gcc/ChangeLog-2024
*** gcc-14.2.0/gcc/ChangeLog-2024	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ChangeLog-2024	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,42675 ----
+ 2024-12-31  Jiahao Xu  <xujiahao@loongson.cn>
+ 	    Deng Jianbo  <dengjianbo@loongson.cn>
+ 
+ 	* config/loongarch/simd.md (cbranch<mode>4): New expander.
+ 
+ 2024-12-31  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/118036
+ 	* varasm.cc (output_constant_pool_2): Use native_encode_rtx for
+ 	building the memory image of a const vector mask.
+ 
+ 2024-12-30  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/106544
+ 	* config/riscv/riscv.cc (riscv_print_operand): Issue an error for
+ 	invalid operands rather than invalidly accessing INTVAL of an
+ 	object that is not a CONST_INT.  Fix one error string for 'N'.
+ 
+ 2024-12-30  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/118122
+ 	* config/riscv/riscv.md (lui_constraint<X:mode>_and_to_or): Use
+ 	X iterator rather than ANYI consistently.  Fix formatting.
+ 
+ 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 	    Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (UNSPEC_BSL, UNSPEC_COMBINE, UNSPEC_DUP)
+ 	(UNSPEC_DUP_LANE, UNSPEC_GET_LANE, UNSPEC_LD1_DUP, UNSPEC_LD1x2)
+ 	(UNSPEC_LD1x3, UNSPEC_LD1x4, UNSPEC_SET_LANE, UNSPEC_ST1_LANE)
+ 	(USNEPC_ST1x2, UNSPEC_ST1x3, UNSPEC_ST1x4, UNSPEC_VCREATE)
+ 	(UNSPEC_VEC_COPY): New unspecs.
+ 	* config/aarch64/iterators.md (UNSPEC_TBL): Likewise.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Add definitions
+ 	of the mf8 data movement intrinsics.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_advsimd_vector_array_mode): Declare.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_advsimd_vector_array_mode): Make public.
+ 	* config/aarch64/aarch64-builtins.h (qualifier_const_pointer): New
+ 	aarch64_type_qualifiers member.
+ 	* config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS)
+ 	(AARCH64_SIMD_VGET_HIGH_BUILTINS): Add mf8 variants.
+ 	(aarch64_int_or_fp_type): Handle qualifier_modal_float.
+ 	(aarch64_num_lanes): New function.
+ 	(binary_two_lanes, load, load_lane, store, store_lane): New signatures.
+ 	(unary_lane): Likewise.
+ 	(simd_type::nunits): New member function.
+ 	(simd_types): Add pointer types.
+ 	(aarch64_fntype): Handle the new signatures.
+ 	(require_immediate_lane_index): Use aarch64_num_lanes.
+ 	(aarch64_pragma_builtins_checker::check): Handle the new intrinsics.
+ 	(aarch64_convert_address): (aarch64_dereference_pointer):
+ 	(aarch64_canonicalize_lane, aarch64_convert_to_lane_mask)
+ 	(aarch64_pack_into_v128s, aarch64_expand_permute_pair)
+ 	(aarch64_expand_tbl_tbx): New functions.
+ 	(aarch64_expand_pragma_builtin): Handle the new intrinsics.
+ 	(aarch64_force_gimple_val, aarch64_copy_vops, aarch64_fold_to_val)
+ 	(aarch64_dereference, aarch64_get_lane_bit_index, aarch64_get_lane)
+ 	(aarch64_set_lane, aarch64_fold_combine, aarch64_fold_load)
+ 	(aarch64_fold_store, aarch64_ext_index, aarch64_rev_index)
+ 	(aarch64_trn_index, aarch64_uzp_index, aarch64_zip_index)
+ 	(aarch64_fold_permute): New functions, some split out from
+ 	aarch64_general_gimple_fold_builtin.
+ 	(aarch64_gimple_fold_pragma_builtin): New function.
+ 	(aarch64_general_gimple_fold_builtin): Use the new functions above.
+ 	* config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
+ 	(aarch64_dup_lane_<vswap_width_name><mode>): Add "@" to name.
+ 	(aarch64_simd_vec_set<mode>): Likewise.
+ 	(*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
+ 	(aarch64_simd_bsl<mode>): Likewise.
+ 	(aarch64_combine<mode>): Likewise.
+ 	(aarch64_cm<optab><mode><vczle><vczbe>): Likewise.
+ 	(aarch64_simd_ld2r<vstruct_elt>): Likewise.
+ 	(aarch64_vec_load_lanes<mode>_lane<vstruct_elt>): Likewise.
+ 	(aarch64_simd_ld3r<vstruct_elt>): Likewise.
+ 	(aarch64_simd_ld4r<vstruct_elt>): Likewise.
+ 	(aarch64_ld1x3<vstruct_elt>): Likewise.
+ 	(aarch64_ld1x4<vstruct_elt>): Likewise.
+ 	(aarch64_st1x2<vstruct_elt>): Likewise.
+ 	(aarch64_st1x3<vstruct_elt>): Likewise.
+ 	(aarch64_st1x4<vstruct_elt>): Likewise.
+ 	(aarch64_ld<nregs><vstruct_elt>): Likewise.
+ 	(aarch64_ld1<VALL_F16: Likewise.mode>): Likewise.
+ 	(aarch64_ld1x2<vstruct_elt>): Likewise.
+ 	(aarch64_ld<nregs>_lane<vstruct_elt>): Likewise.
+ 	(aarch64_<PERMUTE: Likewise.perm_insn><mode><vczle><vczbe>): Likewise.
+ 	(aarch64_ext<mode>): Likewise.
+ 	(aarch64_rev<REVERSE: Likewise.rev_op><mode><vczle><vczbe>): Likewise.
+ 	(aarch64_st<nregs><vstruct_elt>): Likewise.
+ 	(aarch64_st<nregs>_lane<vstruct_elt>): Likewise.
+ 	(aarch64_st1<VALL_F16: Likewise.mode>): Likewise.
+ 
+ 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/t-aarch64 (aarch64-builtins.o): Depend on
+ 	aarch64-simd-pragma-builtins.def.
+ 
+ 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (simd_types::f8): Rename to...
+ 	(simd_types::mf8): ...this.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Update accordingly.
+ 
+ 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (simd_types): Use one macro
+ 	invocation for each element type.
+ 
+ 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* read-rtl.cc (md_reader::handle_overloaded_name): Don't add
+ 	arguments for uses of subst attributes.
+ 	(apply_iterators): Only add instructions to an overloaded helper
+ 	if they use the default subst iterator values.
+ 	* doc/md.texi: Update documentation accordingly.
+ 	* config/i386/i386-expand.cc (expand_vec_perm_broadcast_1): Update
+ 	accordingly.
+ 
+ 2024-12-30  kelefth  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/117835
+ 	PR rtl-optimization/117872
+ 	* avoid-store-forwarding.cc
+ 	(store_forwarding_analyzer::process_store_forwarding):
+ 	Zero-extend the value stored in the base register instead of
+ 	using a paradoxical subreg.
+ 
+ 2024-12-30  Hans-Peter Nilsson  <hp@bitrange.com>
+ 
+ 	PR target/117618
+ 	* config/mmix/mmix.cc (mmix_setup_incoming_varargs):
+ 	Correct handling of C23 (...)-functions.
+ 
+ 2024-12-30  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR tree-optimization/118205
+ 	* tree-parloops.cc (reduction_phi): Return NULL if PHI parameter is
+ 	not a phi node.
+ 
+ 2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116715
+ 	* config/riscv/bitmanip.md: Drop bogus pattern.
+ 
+ 2024-12-29  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/118121
+ 	* configure.ac: Check for mkstemps declaration.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 
+ 2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116720
+ 	* config/riscv/thead.cc (th_mempair_operands_p): Test for
+ 	aligned memory after swapping operands.  Simplify test for
+ 	first memory access as well.
+ 
+ 2024-12-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/118207
+ 	* gimple-fold.cc (fold_array_ctor_reference): For RAW_DATA_CST,
+ 	just set val to build_int_cst and fall through to the normal
+ 	element handling code instead of returning build_int_cst right away.
+ 
+ 2024-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Specific) <*-ibm-aix*>: Drop verbose
+ 	references to PTFs for AIX.
+ 
+ 2024-12-27  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove.
+ 	(vec_cmpu<ILASX:mode><mode256_i>): Remove.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_lsx_cmp):
+ 	Ensure vector comparison instructions support CMP_OP1.
+ 	* config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Remove.
+ 	(vec_cmpu<ILSX:mode><mode_i>): Remove.
+ 	* config/loongarch/simd.md (ALLVEC, allmode_i): New mode iterators.
+ 	(vec_cmp<mode><allmode_i>): New define_expand.
+ 	(vec_cmpu<mode><allmode_i>): Likewise.
+ 
+ 2024-12-26  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/118050
+ 	* timevar.cc (get_time): Only use CLOCK_MONOTONIC if
+ 	'_POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK)'.
+ 	Otherise, use CLOCK_REALTIME.
+ 
+ 2024-12-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Dialect): Move PM4 link to https.
+ 
+ 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.cc
+ 	(alpha_get_mem_rtx_alignment_and_offset): New function.
+ 	(alpha_expand_block_move, alpha_expand_block_clear): Use it for
+ 	alignment retrieval.
+ 
+ 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.cc (alpha_expand_unaligned_load_words):
+ 	Move address extraction until after the MEM referred has been
+ 	adjusted for the offset supplied.
+ 	(alpha_expand_unaligned_store_words): Likewise.
+ 
+ 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	PR target/115459
+ 	* config/alpha/alpha.cc (alpha_expand_block_clear): Adjust MEM
+ 	to match inferred alignment.
+ 
+ 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.cc (alpha_expand_block_clear): Fold two
+ 	legs of a conditional together.
+ 
+ 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.md (insvmisaligndi): Use "reg_or_0_operand"
+ 	rather than "register_operand" for operand 3.
+ 
+ 2024-12-25  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_ira_change_pseudo_allocno_class): New function.
+ 	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
+ 
+ 2024-12-23  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (HPPA Options): Remove references
+ 	to HP-UX 8 and HP-UX 9.
+ 
+ 2024-12-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Align the operand for strided
+ 	load/store pattern.
+ 
+ 2024-12-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR middle-end/109224
+ 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Strip
+ 	DEMANGLE_COMPONENT_TEMPLATE from the operator new and operator
+ 	after demangling.
+ 
+ 2024-12-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR middle-end/118084
+ 	* config/riscv/riscv.cc (generate_reflecting_code_using_brev): Handle
+ 	sub-word sized objects correctly.
+ 
+ 2024-12-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor sorts of signed SAT_ADD match patterns.
+ 
+ 2024-12-21  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* vmsdbgout.cc (vmsdbgout_begin_block): Fix compilation error.
+ 
+ 2024-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/118007
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Accept indirecting
+ 	volatile args of pointer types.
+ 
+ 2024-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/113506
+ 	* emit-rtl.cc (add_insn_before): Don't set the block of a
+ 	barrier.
+ 
+ 2024-12-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/118067
+ 	* config/i386/i386.md (*movdi_internal):
+ 	Disable alternatives from/to mask registers without AVX512BW.
+ 	(*movsi_internal): Ditto.
+ 
+ 2024-12-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/96342
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_sve_expand_vector_init_subvector): New.
+ 	* config/aarch64/aarch64-sve.md (vec_init<mode><Vhalf>): New.
+ 	(@aarch64_pack_partial<mode>): New.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector): New.
+ 	* config/aarch64/iterators.md (SVE_NO2E): New.
+ 	(VHALF, Vhalf): Add SVE partial vectors.
+ 
+ 2024-12-20  Tamar Christina  <tamar.christina@arm.com>
+ 	    Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR target/96342
+ 	* config/aarch64/aarch64-protos.h (add_sve_type_attribute): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute): Make
+ 	visibility global and support use for non_acle types.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_simd_clone_compute_vecsize_and_simdlen): Create VLA simd clone
+ 	when no simdlen is provided, according to ABI rules.
+ 	(simd_clone_adjust_sve_vector_type): New helper function.
+ 	(aarch64_simd_clone_adjust): Add '+sve' attribute to SVE simd clones
+ 	and modify types to use SVE types.
+ 	* omp-simd-clone.cc (simd_clone_mangle): Print 'x' for VLA simdlen.
+ 	(simd_clone_adjust): Adapt safelen check to be compatible with VLA
+ 	simdlen.
+ 
+ 2024-12-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/118131
+ 	* config/arm/arm.cc (output_move_neon): Check TARGET_NEON as
+ 	needed.
+ 	(arm_attr_length_move_neon): Add support for V2x and V4x MVE tuple
+ 	modes.
+ 	* config/arm/iterators.md (VSTRUCT2, VSTRUCT4): New.
+ 	* config/arm/neon.md: Use VSTRUCT2 instead of OI and VSTRUCT4
+ 	instead of XI in define_split.
+ 
+ 2024-12-20  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* tree-ssa-forwprop.cc (get_vect_selector_index_map): Removed.
+ 	(recognise_vec_perm_simplify_seq): Fix calculation of vec-perm
+ 	selectors of narrowed sequence.
+ 	(calc_perm_vec_perm_simplify_seqs): Fixing calculation of
+ 	vec-perm selectors of the blended sequence.
+ 	(process_vec_perm_simplify_seq_list): Add whitespace to dump
+ 	string to avoid bad formatted dump output.
+ 
+ 2024-12-20  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_get_valid_option_values):
+ 	Skip adding mtune entries that are already in the list.
+ 
+ 2024-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/110345
+ 	* tree.cc (type_hash_canon_hash): Hash TYPE_REF_IS_RVALUE for
+ 	REFERENCE_TYPE.
+ 	(type_cache_hasher::equal): Compare TYPE_REF_IS_RVALUE for
+ 	REFERENCE_TYPE.
+ 
+ 2024-12-20  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	* doc/invoke.texi: Document -Wtemplate-names-tu-local.
+ 
+ 2024-12-19  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/118069
+ 	* hwint.h (add_sat_hwi): New function.
+ 	(mul_sat_hwi): Likewise.
+ 
+ 2024-12-19  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-general.cc (vendor_properties): Add "nec".
+ 
+ 2024-12-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* tree-assume.cc: Fix comment typos.
+ 
+ 2024-12-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/118075
+ 	* config/riscv/vector.md: Add the (mem:BLK (scratch)) as the
+ 	lhs of strided store define insn.
+ 
+ 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-fold.cc (decode_field_reference): Add psignbit
+ 	parameter.  Set it if the mask references sign-extending
+ 	bits.
+ 	(fold_truth_andor_for_ifcombine): Adjust calls with new
+ 	variables.  Swap them along with other r?_* variables.  Handle
+ 	extended sign bit compares with zero.
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): If bits_test
+ 	fails in a way that doesn't prevent other ifcombine strategies
+ 	from passing, give them a try.
+ 
+ 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-fold.cc (decode_field_reference): Accept incoming
+ 	mask.
+ 	(fold_truth_andor_for_ifcombine): Handle some compares with
+ 	powers of two, minus 1 or 0, like masked compares with zero.
+ 
+ 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/117915
+ 	* tree-ssa-ifcombine.cc (ifcombine_mark_ssa_name): Move
+ 	preconditions from...
+ 	(ifcombine_mark_ssa_name_walk): ... here.
+ 
+ 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/118046
+ 	* gimple-fold.cc (decode_field_reference): Don't follow more
+ 	than one conversion.
+ 
+ 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-fold.cc (gimple_convert_def_p): Reject load stmts
+ 	unless requested.
+ 	(decode_field_reference): Accept a converting load at the last
+ 	conversion matcher, subsuming the load identification.
+ 	(fold_truth_andor_for_ifcombine): Refuse to merge operands
+ 	when only one of them has an associated load stmt.  Swap
+ 	operands of one of the compares if that helps them match.
+ 
+ 2024-12-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/118096
+ 	* config/sparc/predicates.md (vec_cmp_operator): New predicate.
+ 	(vec_cmpu_operator): Likewise.
+ 	* config/sparc/sparc.md (vec_cmp<FPCMP:mode><P:mode>): Use the
+ 	vec_cmp_operator predicate instead of FAILing the expansion.
+ 	(vec_cmpu<FPCMP:mode><P:mode>): Likewise for vec_cmpu_operator.
+ 
+ 2024-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/117248
+ 	* lra-lives.cc (process_bb_lives): Update conflict hard regs even
+ 	when clobber hard reg is not marked as dead.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* lto-cgraph.cc (lto_symtab_encoder_delete_node):
+ 	Declare var later when initialized.
+ 	* lto-streamer.h (struct lto_encoder_entry):
+ 	Remove empty constructor.
+ 
+ 2024-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	Revert:
+ 	2024-12-06  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/117248
+ 	* lra-lives.cc (start_living, start_dying): Remove.
+ 	(insn_regnos, out_insn_regnos, insn_regnos_live_after): New.
+ 	(sparseset_contains_pseudos_p): Remove.
+ 	(make_hard_regno_live, make_hard_regno_dead): Return true if
+ 	something in liveness is changed.
+ 	(mark_pseudo_live,  mark_pseudo_dead): Ditto.
+ 	(mark_regno_live, mark_regno_dead): Ditto.
+ 	(clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead
+ 	of dead_set.
+ 	(process_bb_lives): Rewrite dealing with reg notes.  Update
+ 	conflict hard regs even when clobber hard reg is not marked as
+ 	dead.
+ 	(lra_create_live_ranges_1): Add initialization/finalization of
+ 	insn_regnos, out_insn_regnos, insn_regnos_live_after.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* ipa-devirt.cc (ipa_odr_summary_write):
+ 	Add unused argument.
+ 	* ipa-fnsummary.cc (ipa_fn_summary_write): Likewise.
+ 	* ipa-icf.cc (sem_item_optimizer::write_summary): Likewise.
+ 	* ipa-modref.cc (modref_write): Likewise.
+ 	* ipa-prop.cc (ipa_prop_write_jump_functions): Likewise.
+ 	(ipcp_write_transformation_summaries): Likewise.
+ 	* ipa-sra.cc (ipa_sra_write_summary): Likewise.
+ 	* lto-cgraph.cc (lto_symtab_encoder_delete): Delete remap.
+ 	(lto_output_node): Remap order.
+ 	(lto_output_varpool_node): Likewise.
+ 	(output_cgraph_opt_summary): Add unused argument.
+ 	* lto-streamer-out.cc (produce_symbol_asm): Renamed. Use remapped order.
+ 	(produce_asm): Rename. New wrapper.
+ 	(output_function): Propagate remapped order.
+ 	(output_constructor): Likewise.
+ 	(copy_function_or_variable): Likewise.
+ 	(cmp_int): New.
+ 	(create_order_remap): New.
+ 	(lto_output): Create remap. Remap order.
+ 	* lto-streamer.h (struct lto_symtab_encoder_d): Remap hash_map.
+ 	(produce_asm): Add order argument.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* cgraph.h (symbol_table::register_symbol):
+ 	Order can be already set.
+ 	* cgraphclones.cc (cgraph_node::create_clone):
+ 	Reuse order for clones.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* ipa-strub.cc (ipa_strub_set_mode_for_new_functions): Replace
+ 	order with uid.
+ 	(pass_ipa_strub_mode::execute): Likewise.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* Makefile.in: Add lto-ltrans-cache.o.
+ 	* common.opt: New flags for configuring cache.
+ 	* lto-opts.cc (lto_write_options): Don't stream the flags.
+ 	* lto-wrapper.cc: Use ltrans cache.
+ 	* lto-ltrans-cache.cc: New file.
+ 	* lto-ltrans-cache.h: New file.
+ 
+ 2024-12-18  Michal Jires  <mjires@suse.cz>
+ 
+ 	* Makefile.in: Add lockfile.o.
+ 	* lockfile.cc: New file.
+ 	* lockfile.h: New file.
+ 
+ 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	Revert:
+ 	2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 		    Matthew Malcolmson  <mmalcolmson@nvidia.com>
+ 
+ 	PR driver/81358
+ 	* common.opt: New option -flink-libatomic.
+ 	* gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
+ 	* config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use
+ 	LINK_LIBATOMIC_SPEC.
+ 	* doc/invoke.texi: Document -flink-libatomic.
+ 	* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 
+ 2024-12-18  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* config/arm/thumb1.md (thumb1_cbz): Escape the semicolon.
+ 
+ 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/118081
+ 	* gimple-fold.cc (decode_field_reference): Only set *xor_p to true
+ 	if *xor_cmp_op is integer_zerop.
+ 
+ 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 	    Matthew Malcolmson  <mmalcolmson@nvidia.com>
+ 
+ 	PR driver/81358
+ 	* common.opt: New option -flink-libatomic.
+ 	* gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
+ 	* config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use
+ 	LINK_LIBATOMIC_SPEC.
+ 	* doc/invoke.texi: Document -flink-libatomic.
+ 	* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 
+ 2024-12-18  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_call_expr): Update for OpenMP's
+ 	append_args; cleanup of OpenMP's dispatch clause handling.
+ 
+ 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/41045
+ 	* stmt.cc (parse_output_constraint, parse_input_constraint): Handle
+ 	- modifier.
+ 	* recog.h (raw_constraint_p): Declare.
+ 	* recog.cc (raw_constraint_p): New variable.
+ 	(asm_operand_ok, constrain_operands): Handle - modifier.
+ 	* common.md (i, s, n): For raw_constraint_p don't require
+ 	LEGITIMATE_PIC_OPERAND_P.
+ 	* doc/md.texi: Document - constraint modifier.
+ 
+ 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* final.cc (output_asm_insn): Add support for cc operand modifier.
+ 	* doc/extend.texi (Generic Operand Modifiers): Document cc operand
+ 	modifier.
+ 	* doc/md.texi (@samp{:} in constraint): Mention the cc operand
+ 	modifier and add small example.
+ 
+ 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* genpreds.cc (mangle): Add ':' mangling.
+ 	(add_constraint): Allow : constraint.
+ 	* common.md (:): New define_constraint.
+ 	* stmt.cc (parse_output_constraint): Diagnose "=:".
+ 	(parse_input_constraint): Handle ":" and diagnose invalid
+ 	uses.
+ 	* doc/md.texi (Simple Constraints): Document ":" constraint.
+ 
+ 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (*crc_combine): New
+ 	define_insn_and_split.
+ 
+ 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (crc_rev<mode:SUBDI>si4): New
+ 	define_expand.
+ 
+ 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (@rbit<mode:GPR>): New
+ 	define_insn template.
+ 	(rbitsi_extended): New define_insn.
+ 	(rbitqi): New define_insn.
+ 	(rbithi): New define_expand.
+ 
+ 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (QHSD): Remove.
+ 	(loongarch_<crc>_w_<size>_w): Use QHSD instead of QHWD.
+ 	(loongarch_<crc>_w_<size>_w_extended): Likewise.
+ 
+ 2024-12-18  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/extend.texi (OpenACC): Fix paste-o.
+ 
+ 2024-12-17  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR c/26154
+ 	* common.opt.urls: Regenerated.
+ 	* doc/extend.texi (C Extensions): Adjust menu for new sections.
+ 	(Attribute Syntax): Mention OpenMP directives.
+ 	(Pragmas): Mention OpenMP and OpenACC directives.
+ 	(OpenMP): New section.
+ 	(OpenACC): New section.
+ 	* doc/invoke.texi (Invoking GCC): Adjust menu for new section.
+ 	(Option Summary): Move OpenMP and OpenACC options to their own
+ 	category.
+ 	(C Dialect Options): Move documentation for -foffload, -fopenacc,
+ 	-fopenacc-dim, -fopenmp, -fopenmd-simd, and
+ 	-fopenmp-target-simd-clone to...
+ 	(OpenMP and OpenACC Options): ...this new section.  Light
+ 	copy-editing of the option descriptions.
+ 
+ 2024-12-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/118062
+ 	* tree-vect-generic.cc (expand_vector_piecewise): Properly
+ 	compute delta.
+ 
+ 2024-12-17  Oliver Kozul  <Oliver.Kozul@rt-rk.com>
+ 
+ 	* config/riscv/riscv.md (*lui_constraint<ANYI:mode>_and_to_or): New pattern
+ 
+ 2024-12-17  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Remove svvptc.
+ 
+ 2024-12-17  Anton Blanchard  <antonb@tenstorrent.com>
+ 
+ 	* config/riscv/riscv-cores.def: Add tt-ascalon-d8.
+ 	* config/riscv/riscv.cc (tt_ascalon_d8_tune_info): New.
+ 	* doc/invoke.texi (RISC-V): Add tt-ascalon-d8 to -mcpu.
+ 
+ 2024-12-17  Anton Blanchard  <antonb@tenstorrent.com>
+ 
+ 	* doc/invoke.texi (RISC-V): Add thead-c906, xiangshan-nanhu to
+ 	-mcpu, add generic-ooo and remove thead-c906 from -mtune.
+ 
+ 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/constraints.md (R): New constraint.
+ 	* doc/md.texi: Document new constraint `R`.
+ 
+ 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add N.
+ 	* doc/extend.texi: Document for N,
+ 
+ 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/corev.md (*cv_branch<mode>): Update modifier.
+ 	(*branch<mode>): Ditto.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Update modifier.
+ 	* config/riscv/riscv.md (*branch<mode>): Update modifier.
+ 
+ 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/constraints.md (cr): New.
+ 	(cf): New.
+ 	* config/riscv/riscv.h (reg_class): Add RVC_GR_REGS and
+ 	RVC_FP_REGS.
+ 	(REG_CLASS_NAMES): Ditto.
+ 	(REG_CLASS_CONTENTS): Ditto.
+ 	* doc/md.texi: Document cr and cf constraint.
+ 	* config/riscv/riscv.cc (riscv_regno_to_class): Update
+ 	FP_REGS to RVC_FP_REGS since it smaller set.
+ 	(riscv_secondary_memory_needed): Handle RVC_FP_REGS.
+ 	(riscv_register_move_cost): Ditto.
+ 
+ 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/constraints.md (c01): Rename to...
+ 	(k01): ...this.
+ 	(c02): Rename to...
+ 	(k02): ...this.
+ 	(c03): Rename to...
+ 	(k03): ...this.
+ 	(c04): Rename to...
+ 	(k04): ...this.
+ 	(c08): Rename to...
+ 	(k08): ...this.
+ 	* config/riscv/corev.md (riscv_cv_simd_add_h_si): Update
+ 	constraints.
+ 	(riscv_cv_simd_sub_h_si): Ditto.
+ 	(riscv_cv_simd_cplxmul_i_si): Ditto.
+ 	(riscv_cv_simd_subrotmj_si): Ditto.
+ 	* config/riscv/riscv-v.cc (splat_to_scalar_move_p): Update
+ 	constraints.
+ 	* config/riscv/vector-iterators.md (stride_load_constraint):
+ 	Update constraints.
+ 	(stride_store_constraint): Ditto.
+ 
+ 2024-12-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* cgraph.h (symtab_node): Add a new overload of nonzero_address.
+ 	* symtab.cc (symtab_node::nonzero_address): Add a new overload whith a
+ 	parameter for delete_null_pointer_checks.  Make the original overload
+ 	call the new one which has retains the actual implementation.
+ 	* ipa-prop.h (ipa_get_range_from_ip_invariant): Declare.
+ 	(ipa_range_set_and_normalize): Remove.
+ 	* ipa-prop.cc (ipa_get_range_from_ip_invariant): New function.
+ 	(ipa_range_set_and_normalize): Remove.
+ 	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Add a new parameter
+ 	context_node. Use ipa_get_range_from_ip_invariant instead of
+ 	ipa_range_set_and_normalize and pass to it the new parameter.
+ 	(ipa_value_range_from_jfunc): Pass cs->caller as the context_node to
+ 	ipa_vr_intersect_with_arith_jfunc.
+ 	(propagate_vr_across_jump_function): Likewise.
+ 	(ipa_get_range_from_ip_invariant): New function.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Use
+ 	ipa_get_range_from_ip_invariant instead of ipa_range_set_and_normalize
+ 
+ 2024-12-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Try harder to
+ 	use the value range obtained from ranger for pointer values.
+ 
+ 2024-12-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.cc: Include vr-values.h.
+ 	(skip_a_safe_conversion_op): New function.
+ 	(ipa_compute_jump_functions_for_edge): Use it.
+ 
+ 2024-12-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/mmx.md: Fix tabs vs. spaces.
+ 
+ 2024-12-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_hard_regno_mode_ok):
+ 	Remove explicit HImode handling for SSE2 XMM regnos.
+ 	* config/i386/i386.h (VALID_SSE2_REG_MODE): Add HImode.
+ 
+ 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* libsarifreplay.cc (struct embedded_link): New.
+ 	(maybe_consume_embedded_link): New.
+ 	(sarif_replayer::make_plain_text_within_result_message): Handle
+ 	embedded links by using the link text, for now.
+ 
+ 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/topics/logical-locations.rst
+ 	(diagnostic_manager_new_logical_location): Add note about repeated
+ 	calls.
+ 	* libgdiagnostics.cc: Define INCLUDE_MAP.
+ 	(class owned_nullable_string): Add copy ctor and move ctor.
+ 	(owned_nullable_string::operator<): New.
+ 	(diagnostic_logical_location::operator<): New.
+ 	(diagnostic_manager::new_logical_location): Use m_logical_locs to
+ 	"uniquify" instances, converting it to a std::map.
+ 	(diagnostic_manager::logical_locs_map_t): New typedef.
+ 	(diagnostic_manager::t m_logical_locs): Convert from a std::vector
+ 	to a std::map.
+ 	(diagnostic_execution_path::same_function_p): Update comment.
+ 
+ 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR sarif-replay/117943
+ 	* doc/libgdiagnostics/topics/physical-locations.rst
+ 	(diagnostic_manager_new_file): Drop "const" from return type.
+ 	* doc/libgdiagnostics/tutorial/02-physical-locations.rst: Drop
+ 	"const" from "main_file" decl.
+ 	* input.cc (file_cache::add_buffered_content): New.
+ 	(file_cache_slot::set_content): New.
+ 	(file_cache_slot::dump): Use m_file_path being null rather than
+ 	m_fp to determine empty slots.  Dump m_fp.
+ 	(find_end_of_line): Drop "const" from return type and param.  Add
+ 	forward decl.
+ 	(file_cache_slot::get_next_line): Fix "const"-ness.
+ 	(selftest::test_reading_source_buffer): New.
+ 	(selftest::input_cc_tests): Call it.
+ 	* input.h (file_cache::add_buffered_content): New decl.
+ 	* libgdiagnostics++.h (class file): Drop const-ness from m_inner.
+ 	(file::set_buffered_content): New.
+ 	* libgdiagnostics.cc (class content_buffer): New.
+ 	(diagnostic_file::diagnostic_file): Add "mgr" param.
+ 	(diagnostic_file::get_content): New.
+ 	(diagnostic_file::set_buffered_content): New.
+ 	(diagnostic_file::m_mgr): New.
+ 	(diagnostic_file::m_content): New.
+ 	(diagnostic_manager::new_file): Drop const-ness.  Pass *this to
+ 	ctor.
+ 	(diagnostic_file::set_buffered_content): New.
+ 	(diagnostic_manager_new_file): Drop "const" from return type.
+ 	(diagnostic_file_set_buffered_content): New entrypoint.
+ 	(diagnostic_manager_debug_dump_file): Dump the content size,
+ 	if any.
+ 	* libgdiagnostics.h (diagnostic_manager_new_file): Drop "const"
+ 	from return type.
+ 	(diagnostic_file_set_buffered_content): New decl.
+ 	* libgdiagnostics.map (diagnostic_file_set_buffered_content): New
+ 	symbol.
+ 	* libsarifreplay.cc (sarif_replayer::m_artifacts_arr): Convert
+ 	from json::value to json::array.
+ 	(sarif_replayer::handle_run_obj): Call handle_artifact_obj
+ 	on all artifacts.
+ 	(sarif_replayer::handle_artifact_obj): New.
+ 
+ 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR sarif-replay/117943
+ 	* diagnostic-format-text.cc
+ 	(diagnostic_text_output_format::append_note): Use source-printing
+ 	options from text_output.
+ 	(diagnostic_text_output_format::update_printer): Copy
+ 	source-printing options from dc.
+ 	(default_diagnostic_text_finalizer): Use source-printing
+ 	options from text_output.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_text_output_format):
+ 	Add optional diagnostic_source_printing_options param, using
+ 	the context's if null.
+ 	(diagnostic_text_output_format::get_source_printing_options): New
+ 	accessor.
+ 	(diagnostic_text_output_format::m_source_printing): New field.
+ 	* diagnostic-path.cc (event_range::print): Use source-printing
+ 	options from text_output.
+ 	(selftest::test_interprocedural_path_1): Use source-printing
+ 	options from dc.
+ 	* diagnostic-show-locus.cc
+ 	(gcc_rich_location::add_location_if_nearby): Likewise.
+ 	(diagnostic_context::maybe_show_locus): Add "opts" param
+ 	and use in place of m_source_printing.  Pass it to source_policy
+ 	ctor.
+ 	(diagnostic_source_print_policy::diagnostic_source_print_policy):
+ 	Add overload taking a const diagnostic_source_printing_options &.
+ 	* diagnostic.cc (diagnostic_context::initialize): Pass nullptr
+ 	for source options when creating text sink, so that it uses
+ 	the dc's options.
+ 	(diagnostic_context::dump): Add an "output sinks:" heading and
+ 	print "(none)" if there aren't any.
+ 	(diagnostic_context::set_output_format): Split out code into...
+ 	(diagnostic_context::remove_all_output_sinks): ...this new
+ 	function.
+ 	* diagnostic.h
+ 	(diagnostic_source_print_policy::diagnostic_source_print_policy):
+ 	Add overload taking a const diagnostic_source_printing_options &.
+ 	(diagnostic_context::maybe_show_locus): Add "opts" param.
+ 	(diagnostic_context::remove_all_output_sinks): New decl.
+ 	(diagnostic_context::m_source_printing): New field.
+ 	(diagnostic_show_locus): Add "opts" param and pass to
+ 	maybe_show_locus.
+ 	* libgdiagnostics.cc (sink::~sink): Delete.
+ 	(sink::begin_group): Delete.
+ 	(sink::end_group): Delete.
+ 	(sink::emit): Delete.
+ 	(sink::m_dc): Drop field.
+ 	(diagnostic_text_sink::on_begin_text_diagnostic): Delete.
+ 	(diagnostic_text_sink::get_source_printing_options): Use
+ 	m_souece_printing.
+ 	(diagnostic_text_sink::m_current_logical_loc): Drop field.
+ 	(diagnostic_text_sink::m_inner_sink): New field.
+ 	(diagnostic_text_sink::m_source_printing): New field.
+ 	(diagnostic_manager::diagnostic_manager): Update for changes
+ 	to fields.  Initialize m_dc.
+ 	(diagnostic_manager::~diagnostic_manager): Call diagnostic_finish.
+ 	(diagnostic_manager::get_file_cache): Drop.
+ 	(diagnostic_manager::get_dc): New accessor.
+ 	(diagnostic_manager::begin_group): Reimplement.
+ 	(diagnostic_manager::end_group): Reimplement.
+ 	(diagnostic_manager::get_prev_diag_logical_loc): New accessor.
+ 	(diagnostic_manager::m_dc): New field.
+ 	(diagnostic_manager::m_file_cache): Drop field.
+ 	(diagnostic_manager::m_edit_context): Convert to a std::unique_ptr
+ 	so that object can be constructed after m_dc is initialized.
+ 	(diagnostic_manager::m_prev_diag_logical_loc): New field.
+ 	(diagnostic_text_sink::diagnostic_text_sink): Reimplement.
+ 	(get_color_rule): Delete.
+ 	(diagnostic_text_sink::set_colorize): Reimplement.
+ 	(diagnostic_text_sink::text_starter): New.
+ 	(sarif_sink::sarif_sink): Reimplement.
+ 	(diagnostic_manager::write_patch): Update for change to
+ 	m_edit_context.
+ 	(diagnostic_manager::emit): Update now that each sink has a
+ 	corresponding diagnostic_output_format object within m_dc.
+ 
+ 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::dump): Dump m_file_cache.
+ 	* input.cc (file_cache_slot::dump): New decls and implementations.
+ 	(file_cache::dump): New.
+ 	* input.h (file_cache::dump): New decl.
+ 
+ 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* doc/md.texi: Add "3" suffix.
+ 
+ 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112694
+ 	PR target/116611.
+ 	* config/riscv/riscv-v.cc (expand_vec_perm_const): Remove early
+ 	return.
+ 	* tree-vect-slp.cc (can_duplicate_and_interleave_p): Return
+ 	false when we cannot create sub-elements.
+ 
+ 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/117383
+ 	* config/riscv/riscv-protos.h (enum insn_type): Use TU policy.
+ 	* config/riscv/riscv-v.cc (shuffle_compress_patterns): Set VL.
+ 
+ 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/118019
+ 	* config/riscv/riscv.cc (riscv_builtin_vectorization_cost):
+ 	Increase vec_construct cost.
+ 
+ 2024-12-16  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (write_s_frameproc): Align output.
+ 	(write_s_inlinesite): Align output.
+ 
+ 2024-12-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/118018
+ 	* config/pa/pa.cc (pa_frame_pointer_required): Declare and
+ 	implement.
+ 	(TARGET_FRAME_POINTER_REQUIRED): Define.
+ 
+ 2024-12-15  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (expand): Initialize new_base.
+ 
+ 2024-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-core.h (struct tree_exp): Remove condition_uid member.
+ 	* tree.h (SET_EXPR_UID, EXPR_COND_UID): Remove.
+ 	* gimplify.cc (nextuid): Rename to ...
+ 	(nextconduid): ... this.
+ 	(cond_uids): New static variable.
+ 	(next_cond_uid, reset_cond_uid): Adjust for the renaming,
+ 	formatting fix.
+ 	(tree_associate_condition_with_expr): New function.
+ 	(shortcut_cond_r, tag_shortcut_cond, shortcut_cond_expr): Use it
+ 	instead of SET_EXPR_UID.
+ 	(gimplify_cond_expr): Look up cond_uid in cond_uids hash map if
+ 	non-NULL instead of using EXPR_COND_UID.
+ 	(gimplify_function_tree): Delete cond_uids and set it to NULL.
+ 
+ 2024-12-14  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
+ 
+ 	* match.pd: New pattern.
+ 	* simplify-rtx.cc (match_plus_neg_pattern): New helper function.
+ 	(simplify_context::simplify_binary_operation_1): New
+ 	code to handle (a - 1) & -a, (a - 1) | -a and (a - 1) ^ -a.
+ 
+ 2024-12-14  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_resolve_overloaded_builtin): Add argument
+ 	`complain'.
+ 
+ 2024-12-14  Heiko Eißfeldt  <heiko@hexco.de>
+ 
+ 	* doc/install.texi (Configuration): Fix typos in documentation
+ 	for --enable-host-pie.
+ 
+ 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/118023
+ 	* gimple-fold.cc (decode_field_reference): Return NULL_TREE if
+ 	inner has non-type_has_mode_precision_p integral type.
+ 
+ 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/118024
+ 	* gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc
+ 	attributes of alloc_decl and dealloc_decl in separate loops rather
+ 	than in lock-step.  Use common_deallocs.contains rather than
+ 	common_deallocs.add in the second loop.
+ 
+ 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/118011
+ 	* opts.cc (init_options_struct): Don't set opts->x_flag_short_enums to
+ 	2.
+ 	* toplev.cc (process_options): Test !OPTION_SET_P (flag_short_enums)
+ 	rather than flag_short_enums == 2.
+ 
+ 2024-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/117095
+ 	* cse.cc (cse_extended_basic_block): Don't call record_jump_equiv
+ 	if multiple_sets (insn).
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114801
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_expander::add_input_operand): Handle CONST_INT
+ 	predicates.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vst24_impl): New.
+ 	(class vld24_impl): New.
+ 	(vld2q, vld4q, vst2q, vst4q): New.
+ 	* config/arm/arm-mve-builtins-base.def (vld2q, vld4q, vst2q)
+ 	(vst4q): New.
+ 	* config/arm/arm-mve-builtins-base.h (vld2q, vld4q, vst2q, vst4q):
+ 	New.
+ 	* config/arm/arm-mve-builtins.cc (register_builtin_tuple_types):
+ 	Add more asserts.
+ 	* config/arm/arm.cc (TARGET_ARRAY_MODE): New.
+ 	(output_move_neon): Handle MVE struct modes.
+ 	(arm_print_operand_address): Likewise.
+ 	(arm_hard_regno_mode_ok): Likewise.
+ 	(arm_array_mode): New.
+ 	* config/arm/arm.h (VALID_MVE_STRUCT_MODE): Likewise.
+ 	* config/arm/arm_mve.h (vst4q): Delete.
+ 	(vst2q): Delete.
+ 	(vld2q): Delete.
+ 	(vld4q): Delete.
+ 	(vst4q_s8): Delete.
+ 	(vst4q_s16): Delete.
+ 	(vst4q_s32): Delete.
+ 	(vst4q_u8): Delete.
+ 	(vst4q_u16): Delete.
+ 	(vst4q_u32): Delete.
+ 	(vst4q_f16): Delete.
+ 	(vst4q_f32): Delete.
+ 	(vst2q_s8): Delete.
+ 	(vst2q_u8): Delete.
+ 	(vld2q_s8): Delete.
+ 	(vld2q_u8): Delete.
+ 	(vld4q_s8): Delete.
+ 	(vld4q_u8): Delete.
+ 	(vst2q_s16): Delete.
+ 	(vst2q_u16): Delete.
+ 	(vld2q_s16): Delete.
+ 	(vld2q_u16): Delete.
+ 	(vld4q_s16): Delete.
+ 	(vld4q_u16): Delete.
+ 	(vst2q_s32): Delete.
+ 	(vst2q_u32): Delete.
+ 	(vld2q_s32): Delete.
+ 	(vld2q_u32): Delete.
+ 	(vld4q_s32): Delete.
+ 	(vld4q_u32): Delete.
+ 	(vld4q_f16): Delete.
+ 	(vld2q_f16): Delete.
+ 	(vst2q_f16): Delete.
+ 	(vld4q_f32): Delete.
+ 	(vld2q_f32): Delete.
+ 	(vst2q_f32): Delete.
+ 	(__arm_vst4q_s8): Delete.
+ 	(__arm_vst4q_s16): Delete.
+ 	(__arm_vst4q_s32): Delete.
+ 	(__arm_vst4q_u8): Delete.
+ 	(__arm_vst4q_u16): Delete.
+ 	(__arm_vst4q_u32): Delete.
+ 	(__arm_vst2q_s8): Delete.
+ 	(__arm_vst2q_u8): Delete.
+ 	(__arm_vld2q_s8): Delete.
+ 	(__arm_vld2q_u8): Delete.
+ 	(__arm_vld4q_s8): Delete.
+ 	(__arm_vld4q_u8): Delete.
+ 	(__arm_vst2q_s16): Delete.
+ 	(__arm_vst2q_u16): Delete.
+ 	(__arm_vld2q_s16): Delete.
+ 	(__arm_vld2q_u16): Delete.
+ 	(__arm_vld4q_s16): Delete.
+ 	(__arm_vld4q_u16): Delete.
+ 	(__arm_vst2q_s32): Delete.
+ 	(__arm_vst2q_u32): Delete.
+ 	(__arm_vld2q_s32): Delete.
+ 	(__arm_vld2q_u32): Delete.
+ 	(__arm_vld4q_s32): Delete.
+ 	(__arm_vld4q_u32): Delete.
+ 	(__arm_vst4q_f16): Delete.
+ 	(__arm_vst4q_f32): Delete.
+ 	(__arm_vld4q_f16): Delete.
+ 	(__arm_vld2q_f16): Delete.
+ 	(__arm_vst2q_f16): Delete.
+ 	(__arm_vld4q_f32): Delete.
+ 	(__arm_vld2q_f32): Delete.
+ 	(__arm_vst2q_f32): Delete.
+ 	(__arm_vst4q): Delete.
+ 	(__arm_vst2q): Delete.
+ 	(__arm_vld2q): Delete.
+ 	(__arm_vld4q): Delete.
+ 	* config/arm/arm_mve_builtins.def (vst4q, vst2q, vld4q, vld2q):
+ 	Delete.
+ 	* config/arm/iterators.md (VSTRUCT): Add V2x16QI, V2x8HI, V2x4SI,
+ 	V2x8HF, V2x4SF, V4x16QI, V4x8HI, V4x4SI, V4x8HF, V4x4SF.
+ 	(MVE_VLD2_VST2, MVE_vld2_vst2, MVE_VLD4_VST4, MVE_vld4_vst4): New.
+ 	* config/arm/mve.md (mve_vst4q<mode>): Update into ...
+ 	(@mve_vst4q<mode>): ... this.
+ 	(mve_vst2q<mode>): Update into ...
+ 	(@mve_vst2q<mode>): ... this.
+ 	(mve_vld2q<mode>): Update into ...
+ 	(@mve_vld2q<mode>): ... this.
+ 	(mve_vld4q<mode>): Update into ...
+ 	(@mve_vld4q<mode>): ... this.
+ 	* config/arm/vec-common.md (vec_load_lanesoi<mode>) Remove MVE
+ 	support.
+ 	(vec_load_lanesxi<mode>): Likewise.
+ 	(vec_store_lanesoi<mode>): Likewise.
+ 	(vec_store_lanesxi<mode>): Likewise.
+ 	(vec_load_lanes<MVE_vld2_vst2><mode>):
+ 	New.
+ 	(vec_store_lanes<MVE_vld2_vst2><mode>): New.
+ 	(vec_load_lanes<MVE_vld4_vst4><mode>): New.
+ 	(vec_store_lanes<MVE_vld4_vst4><mode>): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct store_def): Add
+ 	support for tuples.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (parse_type): Fix access
+ 	to acle_vector_types.
+ 	* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): New.
+ 	(register_type_decl): New.
+ 	(register_builtin_tuple_types): Fix support for tuples.
+ 	(function_resolver::infer_tuple_type): New.
+ 	* config/arm/arm-mve-builtins.h
+ 	(function_resolver::infer_tuple_type): Declare.
+ 	(function_instance::tuple_type): Fix access to acle_vector_types.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-modes.def (MVE_STRUCT_MODES): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (MVE_vecs): Remove V2DF.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/mve.md (mve_vec_extract_sext_internal): Fix
+ 	condition.
+ 	(mve_vec_extract_zext_internal): Likewise.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vstrq_impl): Remove
+ 	call_properties.
+ 	(vldrq_impl): Likewise.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_ldrgbwbxu_qualifiers)
+ 	(arm_ldrgbwbxu_z_qualifiers, arm_ldrgbwbs_qualifiers)
+ 	(arm_ldrgbwbu_qualifiers, arm_ldrgbwbs_z_qualifiers)
+ 	(arm_ldrgbwbu_z_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (vldrq_gather_base_impl):
+ 	Add support for MODE_wb.
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct
+ 	load_gather_base_def): Likewise.
+ 	* config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Delete.
+ 	(vldrdq_gather_base_wb_u64): Delete.
+ 	(vldrdq_gather_base_wb_z_s64): Delete.
+ 	(vldrdq_gather_base_wb_z_u64): Delete.
+ 	(vldrwq_gather_base_wb_f32): Delete.
+ 	(vldrwq_gather_base_wb_s32): Delete.
+ 	(vldrwq_gather_base_wb_u32): Delete.
+ 	(vldrwq_gather_base_wb_z_f32): Delete.
+ 	(vldrwq_gather_base_wb_z_s32): Delete.
+ 	(vldrwq_gather_base_wb_z_u32): Delete.
+ 	(__arm_vldrdq_gather_base_wb_s64): Delete.
+ 	(__arm_vldrdq_gather_base_wb_u64): Delete.
+ 	(__arm_vldrdq_gather_base_wb_z_s64): Delete.
+ 	(__arm_vldrdq_gather_base_wb_z_u64): Delete.
+ 	(__arm_vldrwq_gather_base_wb_s32): Delete.
+ 	(__arm_vldrwq_gather_base_wb_u32): Delete.
+ 	(__arm_vldrwq_gather_base_wb_z_s32): Delete.
+ 	(__arm_vldrwq_gather_base_wb_z_u32): Delete.
+ 	(__arm_vldrwq_gather_base_wb_f32): Delete.
+ 	(__arm_vldrwq_gather_base_wb_z_f32): Delete.
+ 	* config/arm/arm_mve_builtins.def (vldrwq_gather_base_nowb_z_u)
+ 	(vldrdq_gather_base_nowb_z_u, vldrwq_gather_base_nowb_u)
+ 	(vldrdq_gather_base_nowb_u, vldrwq_gather_base_nowb_z_s)
+ 	(vldrwq_gather_base_nowb_z_f, vldrdq_gather_base_nowb_z_s)
+ 	(vldrwq_gather_base_nowb_s, vldrwq_gather_base_nowb_f)
+ 	(vldrdq_gather_base_nowb_s, vldrdq_gather_base_wb_z_s)
+ 	(vldrdq_gather_base_wb_z_u, vldrdq_gather_base_wb_s)
+ 	(vldrdq_gather_base_wb_u, vldrwq_gather_base_wb_z_s)
+ 	(vldrwq_gather_base_wb_z_f, vldrwq_gather_base_wb_z_u)
+ 	(vldrwq_gather_base_wb_s, vldrwq_gather_base_wb_f)
+ 	(vldrwq_gather_base_wb_u): Delete
+ 	* config/arm/iterators.md (supf): Remove VLDRWQGBWB_S,
+ 	VLDRWQGBWB_U, VLDRDQGBWB_S, VLDRDQGBWB_U.
+ 	(VLDRWGBWBQ, VLDRDGBWBQ): Delete.
+ 	* config/arm/mve.md (mve_vldrwq_gather_base_wb_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_base_nowb_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_base_wb_<supf>v4si_insn): Delete.
+ 	(mve_vldrwq_gather_base_wb_z_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_base_nowb_z_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Delete.
+ 	(mve_vldrwq_gather_base_wb_fv4sf): Delete.
+ 	(mve_vldrwq_gather_base_nowb_fv4sf): Delete.
+ 	(mve_vldrwq_gather_base_wb_fv4sf_insn): Delete.
+ 	(mve_vldrwq_gather_base_wb_z_fv4sf): Delete.
+ 	(mve_vldrwq_gather_base_nowb_z_fv4sf): Delete.
+ 	(mve_vldrwq_gather_base_wb_z_fv4sf_insn): Delete.
+ 	(mve_vldrdq_gather_base_wb_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_base_nowb_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_base_wb_<supf>v2di_insn): Delete.
+ 	(mve_vldrdq_gather_base_wb_z_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_base_nowb_z_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Delete.
+ 	(@mve_vldrq_gather_base_wb_<mode>): New.
+ 	(@mve_vldrq_gather_base_wb_z_<mode>): New.
+ 	* config/arm/unspecs.md (VLDRWQGBWB_S, VLDRWQGBWB_U, VLDRWQGBWB_F)
+ 	(VLDRDQGBWB_S, VLDRDQGBWB_U): Delete
+ 	(VLDRGBWBQ, VLDRGBWBQ_Z): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_ldrgbs_qualifiers)
+ 	(arm_ldrgbu_qualifiers, arm_ldrgbs_z_qualifiers)
+ 	(arm_ldrgbu_z_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (class
+ 	vldrq_gather_base_impl): New.
+ 	(vldrdq_gather_base, vldrwq_gather_base): New.
+ 	* config/arm/arm-mve-builtins-base.def (vldrdq_gather_base)
+ 	(vldrwq_gather_base): New.
+ 	* config/arm/arm-mve-builtins-base.h: (vldrdq_gather_base)
+ 	(vldrwq_gather_base): New.
+ 	* config/arm/arm_mve.h (vldrwq_gather_base_s32): Delete.
+ 	(vldrwq_gather_base_u32): Delete.
+ 	(vldrwq_gather_base_z_u32): Delete.
+ 	(vldrwq_gather_base_z_s32): Delete.
+ 	(vldrdq_gather_base_s64): Delete.
+ 	(vldrdq_gather_base_u64): Delete.
+ 	(vldrdq_gather_base_z_s64): Delete.
+ 	(vldrdq_gather_base_z_u64): Delete.
+ 	(vldrwq_gather_base_f32): Delete.
+ 	(vldrwq_gather_base_z_f32): Delete.
+ 	(__arm_vldrwq_gather_base_s32): Delete.
+ 	(__arm_vldrwq_gather_base_u32): Delete.
+ 	(__arm_vldrwq_gather_base_z_s32): Delete.
+ 	(__arm_vldrwq_gather_base_z_u32): Delete.
+ 	(__arm_vldrdq_gather_base_s64): Delete.
+ 	(__arm_vldrdq_gather_base_u64): Delete.
+ 	(__arm_vldrdq_gather_base_z_s64): Delete.
+ 	(__arm_vldrdq_gather_base_z_u64): Delete.
+ 	(__arm_vldrwq_gather_base_f32): Delete.
+ 	(__arm_vldrwq_gather_base_z_f32): Delete.
+ 	* config/arm/arm_mve_builtins.def (vldrwq_gather_base_s)
+ 	(vldrwq_gather_base_u, vldrwq_gather_base_z_s)
+ 	(vldrwq_gather_base_z_u, vldrdq_gather_base_s)
+ 	(vldrwq_gather_base_f, vldrdq_gather_base_z_s)
+ 	(vldrwq_gather_base_z_f, vldrdq_gather_base_u)
+ 	(vldrdq_gather_base_z_u): Delete.
+ 	* config/arm/iterators.md (supf): Remove VLDRWQGB_S, VLDRWQGB_U,
+ 	VLDRDQGB_S, VLDRDQGB_U.
+ 	(VLDRWGBQ, VLDRDGBQ): Delete.
+ 	* config/arm/mve.md (mve_vldrwq_gather_base_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_base_z_<supf>v4si): Delete.
+ 	(mve_vldrdq_gather_base_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_base_z_<supf>v2di): Delete.
+ 	(mve_vldrwq_gather_base_fv4sf): Delete.
+ 	(mve_vldrwq_gather_base_z_fv4sf): Delete.
+ 	(@mve_vldrq_gather_base_<mode>): New.
+ 	(@mve_vldrq_gather_base_z_<mode>): New.
+ 	* config/arm/unspecs.md (VLDRWQGB_S, VLDRWQGB_U, VLDRDQGB_S)
+ 	(VLDRDQGB_U, VLDRWQGB_F): Delete.
+ 	(VLDRGBQ, VLDRGBQ_Z): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct
+ 	load_gather_base_def): New.
+ 	* config/arm/arm-mve-builtins-shapes.h: (load_gather_base): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_ldrgu_qualifiers)
+ 	(arm_ldrgs_qualifiers, arm_ldrgs_z_qualifiers)
+ 	(arm_ldrgu_z_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (vldrq_gather_impl): Add
+ 	support for shifted version.
+ 	(vldrdq_gather_shifted, vldrhq_gather_shifted)
+ 	(vldrwq_gather_shifted): New.
+ 	* config/arm/arm-mve-builtins-base.def (vldrdq_gather_shifted)
+ 	(vldrhq_gather_shifted, vldrwq_gather_shifted): New.
+ 	* config/arm/arm-mve-builtins-base.h (vldrdq_gather_shifted)
+ 	(vldrhq_gather_shifted, vldrwq_gather_shifted): New.
+ 	* config/arm/arm_mve.h (vldrhq_gather_shifted_offset): Delete.
+ 	(vldrhq_gather_shifted_offset_z): Delete.
+ 	(vldrdq_gather_shifted_offset): Delete.
+ 	(vldrdq_gather_shifted_offset_z): Delete.
+ 	(vldrwq_gather_shifted_offset): Delete.
+ 	(vldrwq_gather_shifted_offset_z): Delete.
+ 	(vldrhq_gather_shifted_offset_s32): Delete.
+ 	(vldrhq_gather_shifted_offset_s16): Delete.
+ 	(vldrhq_gather_shifted_offset_u32): Delete.
+ 	(vldrhq_gather_shifted_offset_u16): Delete.
+ 	(vldrhq_gather_shifted_offset_z_s32): Delete.
+ 	(vldrhq_gather_shifted_offset_z_s16): Delete.
+ 	(vldrhq_gather_shifted_offset_z_u32): Delete.
+ 	(vldrhq_gather_shifted_offset_z_u16): Delete.
+ 	(vldrdq_gather_shifted_offset_s64): Delete.
+ 	(vldrdq_gather_shifted_offset_u64): Delete.
+ 	(vldrdq_gather_shifted_offset_z_s64): Delete.
+ 	(vldrdq_gather_shifted_offset_z_u64): Delete.
+ 	(vldrhq_gather_shifted_offset_f16): Delete.
+ 	(vldrhq_gather_shifted_offset_z_f16): Delete.
+ 	(vldrwq_gather_shifted_offset_f32): Delete.
+ 	(vldrwq_gather_shifted_offset_s32): Delete.
+ 	(vldrwq_gather_shifted_offset_u32): Delete.
+ 	(vldrwq_gather_shifted_offset_z_f32): Delete.
+ 	(vldrwq_gather_shifted_offset_z_s32): Delete.
+ 	(vldrwq_gather_shifted_offset_z_u32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_s32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_s16): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_u32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_u16): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z_s32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z_s16): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z_u32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z_u16): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset_s64): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset_u64): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset_z_s64): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset_z_u64): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_s32): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_u32): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_z_s32): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_z_u32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_f16): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z_f16): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_f32): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_z_f32): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset): Delete.
+ 	(__arm_vldrhq_gather_shifted_offset_z): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset): Delete.
+ 	(__arm_vldrdq_gather_shifted_offset_z): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset): Delete.
+ 	(__arm_vldrwq_gather_shifted_offset_z): Delete.
+ 	* config/arm/arm_mve_builtins.def
+ 	(vldrhq_gather_shifted_offset_z_u, vldrhq_gather_shifted_offset_u)
+ 	(vldrhq_gather_shifted_offset_z_s, vldrhq_gather_shifted_offset_s)
+ 	(vldrdq_gather_shifted_offset_s, vldrhq_gather_shifted_offset_f)
+ 	(vldrwq_gather_shifted_offset_f, vldrwq_gather_shifted_offset_s)
+ 	(vldrdq_gather_shifted_offset_z_s)
+ 	(vldrhq_gather_shifted_offset_z_f)
+ 	(vldrwq_gather_shifted_offset_z_f)
+ 	(vldrwq_gather_shifted_offset_z_s, vldrdq_gather_shifted_offset_u)
+ 	(vldrwq_gather_shifted_offset_u, vldrdq_gather_shifted_offset_z_u)
+ 	(vldrwq_gather_shifted_offset_z_u): Delete.
+ 	* config/arm/iterators.md (supf): Remove VLDRHQGSO_S, VLDRHQGSO_U,
+ 	VLDRDQGSO_S, VLDRDQGSO_U, VLDRWQGSO_S, VLDRWQGSO_U.
+ 	(VLDRHGSOQ, VLDRDGSOQ, VLDRWGSOQ): Delete.
+ 	* config/arm/mve.md
+ 	(mve_vldrhq_gather_shifted_offset_<supf><mode>): Delete.
+ 	(mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Delete.
+ 	(mve_vldrdq_gather_shifted_offset_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Delete.
+ 	(mve_vldrhq_gather_shifted_offset_fv8hf): Delete.
+ 	(mve_vldrhq_gather_shifted_offset_z_fv8hf): Delete.
+ 	(mve_vldrwq_gather_shifted_offset_fv4sf): Delete.
+ 	(mve_vldrwq_gather_shifted_offset_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_shifted_offset_z_fv4sf): Delete.
+ 	(mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Delete.
+ 	(@mve_vldrq_gather_shifted_offset_<mode>): New.
+ 	(@mve_vldrq_gather_shifted_offset_extend_v4si<US>): New.
+ 	(@mve_vldrq_gather_shifted_offset_z_<mode>): New.
+ 	(@mve_vldrq_gather_shifted_offset_z_extend_v4si<US>): New.
+ 	* config/arm/unspecs.md (VLDRHQGSO_S, VLDRHQGSO_U, VLDRDQGSO_S)
+ 	(VLDRDQGSO_U, VLDRHQGSO_F, VLDRWQGSO_F, VLDRWQGSO_S, VLDRWQGSO_U):
+ 	Delete.
+ 	(VLDRGSOQ, VLDRGSOQ_Z, VLDRGSOQ_EXT, VLDRGSOQ_EXT_Z): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vldrq_gather_impl):
+ 	New.
+ 	(vldrbq_gather, vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
+ 	* config/arm/arm-mve-builtins-base.def (vldrbq_gather)
+ 	(vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
+ 	* config/arm/arm-mve-builtins-base.h (vldrbq_gather)
+ 	(vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
+ 	* config/arm/arm_mve.h (vldrbq_gather_offset): Delete.
+ 	(vldrbq_gather_offset_z): Delete.
+ 	(vldrhq_gather_offset): Delete.
+ 	(vldrhq_gather_offset_z): Delete.
+ 	(vldrdq_gather_offset): Delete.
+ 	(vldrdq_gather_offset_z): Delete.
+ 	(vldrwq_gather_offset): Delete.
+ 	(vldrwq_gather_offset_z): Delete.
+ 	(vldrbq_gather_offset_u8): Delete.
+ 	(vldrbq_gather_offset_s8): Delete.
+ 	(vldrbq_gather_offset_u16): Delete.
+ 	(vldrbq_gather_offset_s16): Delete.
+ 	(vldrbq_gather_offset_u32): Delete.
+ 	(vldrbq_gather_offset_s32): Delete.
+ 	(vldrbq_gather_offset_z_s16): Delete.
+ 	(vldrbq_gather_offset_z_u8): Delete.
+ 	(vldrbq_gather_offset_z_s32): Delete.
+ 	(vldrbq_gather_offset_z_u16): Delete.
+ 	(vldrbq_gather_offset_z_u32): Delete.
+ 	(vldrbq_gather_offset_z_s8): Delete.
+ 	(vldrhq_gather_offset_s32): Delete.
+ 	(vldrhq_gather_offset_s16): Delete.
+ 	(vldrhq_gather_offset_u32): Delete.
+ 	(vldrhq_gather_offset_u16): Delete.
+ 	(vldrhq_gather_offset_z_s32): Delete.
+ 	(vldrhq_gather_offset_z_s16): Delete.
+ 	(vldrhq_gather_offset_z_u32): Delete.
+ 	(vldrhq_gather_offset_z_u16): Delete.
+ 	(vldrdq_gather_offset_s64): Delete.
+ 	(vldrdq_gather_offset_u64): Delete.
+ 	(vldrdq_gather_offset_z_s64): Delete.
+ 	(vldrdq_gather_offset_z_u64): Delete.
+ 	(vldrhq_gather_offset_f16): Delete.
+ 	(vldrhq_gather_offset_z_f16): Delete.
+ 	(vldrwq_gather_offset_f32): Delete.
+ 	(vldrwq_gather_offset_s32): Delete.
+ 	(vldrwq_gather_offset_u32): Delete.
+ 	(vldrwq_gather_offset_z_f32): Delete.
+ 	(vldrwq_gather_offset_z_s32): Delete.
+ 	(vldrwq_gather_offset_z_u32): Delete.
+ 	(__arm_vldrbq_gather_offset_u8): Delete.
+ 	(__arm_vldrbq_gather_offset_s8): Delete.
+ 	(__arm_vldrbq_gather_offset_u16): Delete.
+ 	(__arm_vldrbq_gather_offset_s16): Delete.
+ 	(__arm_vldrbq_gather_offset_u32): Delete.
+ 	(__arm_vldrbq_gather_offset_s32): Delete.
+ 	(__arm_vldrbq_gather_offset_z_s8): Delete.
+ 	(__arm_vldrbq_gather_offset_z_s32): Delete.
+ 	(__arm_vldrbq_gather_offset_z_s16): Delete.
+ 	(__arm_vldrbq_gather_offset_z_u8): Delete.
+ 	(__arm_vldrbq_gather_offset_z_u32): Delete.
+ 	(__arm_vldrbq_gather_offset_z_u16): Delete.
+ 	(__arm_vldrhq_gather_offset_s32): Delete.
+ 	(__arm_vldrhq_gather_offset_s16): Delete.
+ 	(__arm_vldrhq_gather_offset_u32): Delete.
+ 	(__arm_vldrhq_gather_offset_u16): Delete.
+ 	(__arm_vldrhq_gather_offset_z_s32): Delete.
+ 	(__arm_vldrhq_gather_offset_z_s16): Delete.
+ 	(__arm_vldrhq_gather_offset_z_u32): Delete.
+ 	(__arm_vldrhq_gather_offset_z_u16): Delete.
+ 	(__arm_vldrdq_gather_offset_s64): Delete.
+ 	(__arm_vldrdq_gather_offset_u64): Delete.
+ 	(__arm_vldrdq_gather_offset_z_s64): Delete.
+ 	(__arm_vldrdq_gather_offset_z_u64): Delete.
+ 	(__arm_vldrwq_gather_offset_s32): Delete.
+ 	(__arm_vldrwq_gather_offset_u32): Delete.
+ 	(__arm_vldrwq_gather_offset_z_s32): Delete.
+ 	(__arm_vldrwq_gather_offset_z_u32): Delete.
+ 	(__arm_vldrhq_gather_offset_f16): Delete.
+ 	(__arm_vldrhq_gather_offset_z_f16): Delete.
+ 	(__arm_vldrwq_gather_offset_f32): Delete.
+ 	(__arm_vldrwq_gather_offset_z_f32): Delete.
+ 	(__arm_vldrbq_gather_offset): Delete.
+ 	(__arm_vldrbq_gather_offset_z): Delete.
+ 	(__arm_vldrhq_gather_offset): Delete.
+ 	(__arm_vldrhq_gather_offset_z): Delete.
+ 	(__arm_vldrdq_gather_offset): Delete.
+ 	(__arm_vldrdq_gather_offset_z): Delete.
+ 	(__arm_vldrwq_gather_offset): Delete.
+ 	(__arm_vldrwq_gather_offset_z): Delete.
+ 	* config/arm/arm_mve_builtins.def (vldrbq_gather_offset_u)
+ 	(vldrbq_gather_offset_s, vldrbq_gather_offset_z_s)
+ 	(vldrbq_gather_offset_z_u, vldrhq_gather_offset_z_u)
+ 	(vldrhq_gather_offset_u, vldrhq_gather_offset_z_s)
+ 	(vldrhq_gather_offset_s, vldrdq_gather_offset_s)
+ 	(vldrhq_gather_offset_f, vldrwq_gather_offset_f)
+ 	(vldrwq_gather_offset_s, vldrdq_gather_offset_z_s)
+ 	(vldrhq_gather_offset_z_f, vldrwq_gather_offset_z_f)
+ 	(vldrwq_gather_offset_z_s, vldrdq_gather_offset_u)
+ 	(vldrwq_gather_offset_u, vldrdq_gather_offset_z_u)
+ 	(vldrwq_gather_offset_z_u): Delete.
+ 	* config/arm/iterators.md (MVE_u_elem): New.
+ 	(supf): Remove VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S, VLDRHQGO_U,
+ 	VLDRDQGO_S, VLDRDQGO_U, VLDRWQGO_S, VLDRWQGO_U.
+ 	(VLDRBGOQ, VLDRHGOQ, VLDRDGOQ, VLDRWGOQ): Delete.
+ 	* config/arm/mve.md (mve_vldrbq_gather_offset_<supf><mode>):
+ 	Delete.
+ 	(mve_vldrbq_gather_offset_z_<supf><mode>): Delete.
+ 	(mve_vldrhq_gather_offset_<supf><mode>): Delete.
+ 	(mve_vldrhq_gather_offset_z_<supf><mode>): Delete.
+ 	(mve_vldrdq_gather_offset_<supf>v2di): Delete.
+ 	(mve_vldrdq_gather_offset_z_<supf>v2di): Delete.
+ 	(mve_vldrhq_gather_offset_fv8hf): Delete.
+ 	(mve_vldrhq_gather_offset_z_fv8hf): Delete.
+ 	(mve_vldrwq_gather_offset_fv4sf): Delete.
+ 	(mve_vldrwq_gather_offset_<supf>v4si): Delete.
+ 	(mve_vldrwq_gather_offset_z_fv4sf): Delete.
+ 	(mve_vldrwq_gather_offset_z_<supf>v4si): Delete.
+ 	(@mve_vldrq_gather_offset_<mode>): New.
+ 	(@mve_vldrq_gather_offset_extend_<mode><US>): New.
+ 	(@mve_vldrq_gather_offset_z_<mode>): New.
+ 	(@mve_vldrq_gather_offset_z_extend_<mode><US>): New.
+ 	* config/arm/unspecs.md (VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S)
+ 	(VLDRHQGO_U, VLDRDQGO_S, VLDRDQGO_U, VLDRHQGO_F, VLDRWQGO_F)
+ 	(VLDRWQGO_S, VLDRWQGO_U): Delete.
+ 	(VLDRGOQ, VLDRGOQ_Z, VLDRGOQ_EXT, VLDRGOQ_EXT_Z): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct load_ext_gather):
+ 	New.
+ 	(struct load_ext_gather_offset_def): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (load_ext_gather_offset):
+ 	New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_strsbwbs_qualifiers)
+ 	(arm_strsbwbu_qualifiers, arm_strsbwbs_p_qualifiers)
+ 	(arm_strsbwbu_p_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl):
+ 	Add support for MODE_wb.
+ 	* config/arm/arm-mve-builtins-shapes.cc (parse_type): Add support
+ 	for 'b' type.
+ 	(store_scatter_base): Add support for MODE_wb.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_resolver::require_pointer_to_type): New.
+ 	* config/arm/arm-mve-builtins.h
+ 	(function_resolver::require_pointer_to_type): New.
+ 	* config/arm/arm_mve.h (vstrdq_scatter_base_wb): Delete.
+ 	(vstrdq_scatter_base_wb_p): Delete.
+ 	(vstrwq_scatter_base_wb_p): Delete.
+ 	(vstrwq_scatter_base_wb): Delete.
+ 	(vstrdq_scatter_base_wb_p_s64): Delete.
+ 	(vstrdq_scatter_base_wb_p_u64): Delete.
+ 	(vstrdq_scatter_base_wb_s64): Delete.
+ 	(vstrdq_scatter_base_wb_u64): Delete.
+ 	(vstrwq_scatter_base_wb_p_s32): Delete.
+ 	(vstrwq_scatter_base_wb_p_f32): Delete.
+ 	(vstrwq_scatter_base_wb_p_u32): Delete.
+ 	(vstrwq_scatter_base_wb_s32): Delete.
+ 	(vstrwq_scatter_base_wb_u32): Delete.
+ 	(vstrwq_scatter_base_wb_f32): Delete.
+ 	(__arm_vstrdq_scatter_base_wb_s64): Delete.
+ 	(__arm_vstrdq_scatter_base_wb_u64): Delete.
+ 	(__arm_vstrdq_scatter_base_wb_p_s64): Delete.
+ 	(__arm_vstrdq_scatter_base_wb_p_u64): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_p_s32): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_p_u32): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_s32): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_u32): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_f32): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_p_f32): Delete.
+ 	(__arm_vstrdq_scatter_base_wb): Delete.
+ 	(__arm_vstrdq_scatter_base_wb_p): Delete.
+ 	(__arm_vstrwq_scatter_base_wb_p): Delete.
+ 	(__arm_vstrwq_scatter_base_wb): Delete.
+ 	* config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_u)
+ 	(vstrdq_scatter_base_wb_u, vstrwq_scatter_base_wb_p_u)
+ 	(vstrdq_scatter_base_wb_p_u, vstrwq_scatter_base_wb_s)
+ 	(vstrwq_scatter_base_wb_f, vstrdq_scatter_base_wb_s)
+ 	(vstrwq_scatter_base_wb_p_s, vstrwq_scatter_base_wb_p_f)
+ 	(vstrdq_scatter_base_wb_p_s): Delete.
+ 	* config/arm/iterators.md (supf): Remove VSTRWQSBWB_S,
+ 	VSTRWQSBWB_U, VSTRDQSBWB_S, VSTRDQSBWB_U.
+ 	(VSTRDSBQ, VSTRWSBWBQ, VSTRDSBWBQ): Delete.
+ 	* config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_base_wb_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Delete.
+ 	(mve_vstrdq_scatter_base_wb_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Delete.
+ 	(@mve_vstrq_scatter_base_wb_<mode>): New.
+ 	(@mve_vstrq_scatter_base_wb_p_<mode>): New.
+ 	* config/arm/unspecs.md (VSTRWQSBWB_S, VSTRWQSBWB_U, VSTRWQSBWB_F)
+ 	(VSTRDQSBWB_S, VSTRDQSBWB_U): Delete.
+ 	(VSTRSBWBQ, VSTRSBWBQ_P): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_strsbs_qualifiers)
+ 	(arm_strsbu_qualifiers, arm_strsbs_p_qualifiers)
+ 	(arm_strsbu_p_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (class
+ 	vstrq_scatter_base_impl): New.
+ 	(vstrwq_scatter_base, vstrdq_scatter_base): New.
+ 	* config/arm/arm-mve-builtins-base.def (vstrwq_scatter_base)
+ 	(vstrdq_scatter_base): New.
+ 	* config/arm/arm-mve-builtins-base.h (vstrwq_scatter_base)
+ 	(vstrdq_scatter_base): New.
+ 	* config/arm/arm_mve.h (vstrwq_scatter_base): Delete.
+ 	(vstrwq_scatter_base_p): Delete.
+ 	(vstrdq_scatter_base_p): Delete.
+ 	(vstrdq_scatter_base): Delete.
+ 	(vstrwq_scatter_base_s32): Delete.
+ 	(vstrwq_scatter_base_u32): Delete.
+ 	(vstrwq_scatter_base_p_s32): Delete.
+ 	(vstrwq_scatter_base_p_u32): Delete.
+ 	(vstrdq_scatter_base_p_s64): Delete.
+ 	(vstrdq_scatter_base_p_u64): Delete.
+ 	(vstrdq_scatter_base_s64): Delete.
+ 	(vstrdq_scatter_base_u64): Delete.
+ 	(vstrwq_scatter_base_f32): Delete.
+ 	(vstrwq_scatter_base_p_f32): Delete.
+ 	(__arm_vstrwq_scatter_base_s32): Delete.
+ 	(__arm_vstrwq_scatter_base_u32): Delete.
+ 	(__arm_vstrwq_scatter_base_p_s32): Delete.
+ 	(__arm_vstrwq_scatter_base_p_u32): Delete.
+ 	(__arm_vstrdq_scatter_base_p_s64): Delete.
+ 	(__arm_vstrdq_scatter_base_p_u64): Delete.
+ 	(__arm_vstrdq_scatter_base_s64): Delete.
+ 	(__arm_vstrdq_scatter_base_u64): Delete.
+ 	(__arm_vstrwq_scatter_base_f32): Delete.
+ 	(__arm_vstrwq_scatter_base_p_f32): Delete.
+ 	(__arm_vstrwq_scatter_base): Delete.
+ 	(__arm_vstrwq_scatter_base_p): Delete.
+ 	(__arm_vstrdq_scatter_base_p): Delete.
+ 	(__arm_vstrdq_scatter_base): Delete.
+ 	* config/arm/arm_mve_builtins.def (vstrwq_scatter_base_s)
+ 	(vstrwq_scatter_base_u, vstrwq_scatter_base_p_s)
+ 	(vstrwq_scatter_base_p_u, vstrdq_scatter_base_s)
+ 	(vstrwq_scatter_base_f, vstrdq_scatter_base_p_s)
+ 	(vstrwq_scatter_base_p_f, vstrdq_scatter_base_u)
+ 	(vstrdq_scatter_base_p_u): Delete.
+ 	* config/arm/iterators.md (MVE_4): New.
+ 	(supf): Remove VSTRWQSB_S, VSTRWQSB_U.
+ 	(VSTRWSBQ): Delete.
+ 	* config/arm/mve.md (mve_vstrwq_scatter_base_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_base_p_<supf>v4si): Delete.
+ 	(mve_vstrdq_scatter_base_p_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_base_<supf>v2di): Delete.
+ 	(mve_vstrwq_scatter_base_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_base_p_fv4sf): Delete.
+ 	(@mve_vstrq_scatter_base_<mode>): New.
+ 	(@mve_vstrq_scatter_base_p_<mode>): New.
+ 	* config/arm/unspecs.md (VSTRWQSB_S, VSTRWQSB_U, VSTRWQSB_F):
+ 	Delete.
+ 	(VSTRSBQ, VSTRSBQ_P): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (store_scatter_base): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (store_scatter_base): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins.cc (report_out_of_range_multiple):
+ 	New.
+ 	(function_checker::require_signed_immediate): New.
+ 	(function_checker::require_immediate_range_multiple): New.
+ 	* config/arm/arm-mve-builtins.h
+ 	(function_checker::require_immediate_range_multiple): New.
+ 	(function_checker::require_signed_immediate): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_strss_qualifiers)
+ 	(arm_strsu_qualifiers, arm_strsu_p_qualifiers)
+ 	(arm_strss_p_qualifiers): Delete.
+ 	* config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl):
+ 	Add support for shifted version.
+ 	(vstrdq_scatter_shifted, vstrhq_scatter_shifted)
+ 	(vstrwq_scatter_shifted): New.
+ 	* config/arm/arm-mve-builtins-base.def (vstrhq_scatter_shifted)
+ 	(vstrwq_scatter_shifted, vstrdq_scatter_shifted): New.
+ 	* config/arm/arm-mve-builtins-base.h (vstrhq_scatter_shifted)
+ 	(vstrwq_scatter_shifted, vstrdq_scatter_shifted): New.
+ 	* config/arm/arm_mve.h (vstrhq_scatter_shifted_offset): Delete.
+ 	(vstrhq_scatter_shifted_offset_p): Delete.
+ 	(vstrdq_scatter_shifted_offset_p): Delete.
+ 	(vstrdq_scatter_shifted_offset): Delete.
+ 	(vstrwq_scatter_shifted_offset_p): Delete.
+ 	(vstrwq_scatter_shifted_offset): Delete.
+ 	(vstrhq_scatter_shifted_offset_s32): Delete.
+ 	(vstrhq_scatter_shifted_offset_s16): Delete.
+ 	(vstrhq_scatter_shifted_offset_u32): Delete.
+ 	(vstrhq_scatter_shifted_offset_u16): Delete.
+ 	(vstrhq_scatter_shifted_offset_p_s32): Delete.
+ 	(vstrhq_scatter_shifted_offset_p_s16): Delete.
+ 	(vstrhq_scatter_shifted_offset_p_u32): Delete.
+ 	(vstrhq_scatter_shifted_offset_p_u16): Delete.
+ 	(vstrdq_scatter_shifted_offset_p_s64): Delete.
+ 	(vstrdq_scatter_shifted_offset_p_u64): Delete.
+ 	(vstrdq_scatter_shifted_offset_s64): Delete.
+ 	(vstrdq_scatter_shifted_offset_u64): Delete.
+ 	(vstrhq_scatter_shifted_offset_f16): Delete.
+ 	(vstrhq_scatter_shifted_offset_p_f16): Delete.
+ 	(vstrwq_scatter_shifted_offset_f32): Delete.
+ 	(vstrwq_scatter_shifted_offset_p_f32): Delete.
+ 	(vstrwq_scatter_shifted_offset_p_s32): Delete.
+ 	(vstrwq_scatter_shifted_offset_p_u32): Delete.
+ 	(vstrwq_scatter_shifted_offset_s32): Delete.
+ 	(vstrwq_scatter_shifted_offset_u32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_s32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_s16): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_u32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_u16): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p_s32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p_s16): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p_u32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p_u16): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset_p_s64): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset_p_u64): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset_s64): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset_u64): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_p_s32): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_p_u32): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_s32): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_u32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_f16): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p_f16): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_f32): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_p_f32): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset): Delete.
+ 	(__arm_vstrhq_scatter_shifted_offset_p): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset_p): Delete.
+ 	(__arm_vstrdq_scatter_shifted_offset): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset_p): Delete.
+ 	(__arm_vstrwq_scatter_shifted_offset): Delete.
+ 	* config/arm/arm_mve_builtins.def
+ 	(vstrhq_scatter_shifted_offset_p_u)
+ 	(vstrhq_scatter_shifted_offset_u)
+ 	(vstrhq_scatter_shifted_offset_p_s)
+ 	(vstrhq_scatter_shifted_offset_s, vstrdq_scatter_shifted_offset_s)
+ 	(vstrhq_scatter_shifted_offset_f, vstrwq_scatter_shifted_offset_f)
+ 	(vstrwq_scatter_shifted_offset_s)
+ 	(vstrdq_scatter_shifted_offset_p_s)
+ 	(vstrhq_scatter_shifted_offset_p_f)
+ 	(vstrwq_scatter_shifted_offset_p_f)
+ 	(vstrwq_scatter_shifted_offset_p_s)
+ 	(vstrdq_scatter_shifted_offset_u, vstrwq_scatter_shifted_offset_u)
+ 	(vstrdq_scatter_shifted_offset_p_u)
+ 	(vstrwq_scatter_shifted_offset_p_u): Delete.
+ 	* config/arm/iterators.md (MVE_VLD_ST_scatter_shifted): New.
+ 	(MVE_scatter_shift): New.
+ 	(supf): Remove VSTRHQSSO_S, VSTRHQSSO_U, VSTRDQSSO_S, VSTRDQSSO_U,
+ 	VSTRWQSSO_U, VSTRWQSSO_S.
+ 	(VSTRHSSOQ, VSTRDSSOQ, VSTRWSSOQ): Delete.
+ 	* config/arm/mve.md (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_<supf><mode>): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Delete.
+ 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Delete.
+ 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_fv8hf): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_p_fv8hf): Delete.
+ 	(mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_p_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Delete.
+ 	(@mve_vstrq_scatter_shifted_offset_<mode>): New.
+ 	(@mve_vstrq_scatter_shifted_offset_p_<mode>): New.
+ 	(mve_vstrq_truncate_scatter_shifted_offset_v4si): New.
+ 	(mve_vstrq_truncate_scatter_shifted_offset_p_v4si): New.
+ 	* config/arm/unspecs.md (VSTRDQSSO_S, VSTRDQSSO_U, VSTRWQSSO_S)
+ 	(VSTRWQSSO_U, VSTRHQSSO_F, VSTRWQSSO_F, VSTRHQSSO_S, VSTRHQSSO_U):
+ 	Delete.
+ 	(VSTRSSOQ, VSTRSSOQ_P, VSTRSSOQ_TRUNC, VSTRSSOQ_TRUNC_P): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl):
+ 	New.
+ 	(vstrbq_scatter, vstrhq_scatter, vstrwq_scatter, vstrdq_scatter):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.def (vstrbq_scatter)
+ 	(vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New.
+ 	* config/arm/arm-mve-builtins-base.h (vstrbq_scatter)
+ 	(vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New.
+ 	* config/arm/arm-mve-builtins.cc (integer_64): New.
+ 	* config/arm/arm_mve.h (vstrbq_scatter_offset): Delete.
+ 	(vstrbq_scatter_offset_p): Delete.
+ 	(vstrhq_scatter_offset): Delete.
+ 	(vstrhq_scatter_offset_p): Delete.
+ 	(vstrdq_scatter_offset_p): Delete.
+ 	(vstrdq_scatter_offset): Delete.
+ 	(vstrwq_scatter_offset_p): Delete.
+ 	(vstrwq_scatter_offset): Delete.
+ 	(vstrbq_scatter_offset_s8): Delete.
+ 	(vstrbq_scatter_offset_u8): Delete.
+ 	(vstrbq_scatter_offset_u16): Delete.
+ 	(vstrbq_scatter_offset_s16): Delete.
+ 	(vstrbq_scatter_offset_u32): Delete.
+ 	(vstrbq_scatter_offset_s32): Delete.
+ 	(vstrbq_scatter_offset_p_s8): Delete.
+ 	(vstrbq_scatter_offset_p_s32): Delete.
+ 	(vstrbq_scatter_offset_p_s16): Delete.
+ 	(vstrbq_scatter_offset_p_u8): Delete.
+ 	(vstrbq_scatter_offset_p_u32): Delete.
+ 	(vstrbq_scatter_offset_p_u16): Delete.
+ 	(vstrhq_scatter_offset_s32): Delete.
+ 	(vstrhq_scatter_offset_s16): Delete.
+ 	(vstrhq_scatter_offset_u32): Delete.
+ 	(vstrhq_scatter_offset_u16): Delete.
+ 	(vstrhq_scatter_offset_p_s32): Delete.
+ 	(vstrhq_scatter_offset_p_s16): Delete.
+ 	(vstrhq_scatter_offset_p_u32): Delete.
+ 	(vstrhq_scatter_offset_p_u16): Delete.
+ 	(vstrdq_scatter_offset_p_s64): Delete.
+ 	(vstrdq_scatter_offset_p_u64): Delete.
+ 	(vstrdq_scatter_offset_s64): Delete.
+ 	(vstrdq_scatter_offset_u64): Delete.
+ 	(vstrhq_scatter_offset_f16): Delete.
+ 	(vstrhq_scatter_offset_p_f16): Delete.
+ 	(vstrwq_scatter_offset_f32): Delete.
+ 	(vstrwq_scatter_offset_p_f32): Delete.
+ 	(vstrwq_scatter_offset_p_s32): Delete.
+ 	(vstrwq_scatter_offset_p_u32): Delete.
+ 	(vstrwq_scatter_offset_s32): Delete.
+ 	(vstrwq_scatter_offset_u32): Delete.
+ 	(__arm_vstrbq_scatter_offset_s8): Delete.
+ 	(__arm_vstrbq_scatter_offset_s32): Delete.
+ 	(__arm_vstrbq_scatter_offset_s16): Delete.
+ 	(__arm_vstrbq_scatter_offset_u8): Delete.
+ 	(__arm_vstrbq_scatter_offset_u32): Delete.
+ 	(__arm_vstrbq_scatter_offset_u16): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_s8): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_s32): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_s16): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_u8): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_u32): Delete.
+ 	(__arm_vstrbq_scatter_offset_p_u16): Delete.
+ 	(__arm_vstrhq_scatter_offset_s32): Delete.
+ 	(__arm_vstrhq_scatter_offset_s16): Delete.
+ 	(__arm_vstrhq_scatter_offset_u32): Delete.
+ 	(__arm_vstrhq_scatter_offset_u16): Delete.
+ 	(__arm_vstrhq_scatter_offset_p_s32): Delete.
+ 	(__arm_vstrhq_scatter_offset_p_s16): Delete.
+ 	(__arm_vstrhq_scatter_offset_p_u32): Delete.
+ 	(__arm_vstrhq_scatter_offset_p_u16): Delete.
+ 	(__arm_vstrdq_scatter_offset_p_s64): Delete.
+ 	(__arm_vstrdq_scatter_offset_p_u64): Delete.
+ 	(__arm_vstrdq_scatter_offset_s64): Delete.
+ 	(__arm_vstrdq_scatter_offset_u64): Delete.
+ 	(__arm_vstrwq_scatter_offset_p_s32): Delete.
+ 	(__arm_vstrwq_scatter_offset_p_u32): Delete.
+ 	(__arm_vstrwq_scatter_offset_s32): Delete.
+ 	(__arm_vstrwq_scatter_offset_u32): Delete.
+ 	(__arm_vstrhq_scatter_offset_f16): Delete.
+ 	(__arm_vstrhq_scatter_offset_p_f16): Delete.
+ 	(__arm_vstrwq_scatter_offset_f32): Delete.
+ 	(__arm_vstrwq_scatter_offset_p_f32): Delete.
+ 	(__arm_vstrbq_scatter_offset): Delete.
+ 	(__arm_vstrbq_scatter_offset_p): Delete.
+ 	(__arm_vstrhq_scatter_offset): Delete.
+ 	(__arm_vstrhq_scatter_offset_p): Delete.
+ 	(__arm_vstrdq_scatter_offset_p): Delete.
+ 	(__arm_vstrdq_scatter_offset): Delete.
+ 	(__arm_vstrwq_scatter_offset_p): Delete.
+ 	(__arm_vstrwq_scatter_offset): Delete.
+ 	* config/arm/arm_mve_builtins.def (vstrbq_scatter_offset_s)
+ 	(vstrbq_scatter_offset_u, vstrbq_scatter_offset_p_s)
+ 	(vstrbq_scatter_offset_p_u, vstrhq_scatter_offset_p_u)
+ 	(vstrhq_scatter_offset_u, vstrhq_scatter_offset_p_s)
+ 	(vstrhq_scatter_offset_s, vstrdq_scatter_offset_s)
+ 	(vstrhq_scatter_offset_f, vstrwq_scatter_offset_f)
+ 	(vstrwq_scatter_offset_s, vstrdq_scatter_offset_p_s)
+ 	(vstrhq_scatter_offset_p_f, vstrwq_scatter_offset_p_f)
+ 	(vstrwq_scatter_offset_p_s, vstrdq_scatter_offset_u)
+ 	(vstrwq_scatter_offset_u, vstrdq_scatter_offset_p_u)
+ 	(vstrwq_scatter_offset_p_u) Delete.
+ 	* config/arm/iterators.md (MVE_VLD_ST_scatter): New.
+ 	(MVE_scatter_offset): New.
+ 	(MVE_elem_ch): Add entry for V2DI.
+ 	(supf): Remove VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S, VSTRHQSO_U,
+ 	VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_U, VSTRWQSO_S.
+ 	(VSTRBSOQ, VSTRHSOQ, VSTRDSOQ, VSTRWSOQ): Delete.
+ 	* config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>):
+ 	Delete.
+ 	(mve_vstrbq_scatter_offset_<supf><mode>_insn): Delete.
+ 	(mve_vstrbq_scatter_offset_p_<supf><mode>): Delete.
+ 	(mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Delete.
+ 	(mve_vstrhq_scatter_offset_p_<supf><mode>): Delete.
+ 	(mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Delete.
+ 	(mve_vstrhq_scatter_offset_<supf><mode>): Delete.
+ 	(mve_vstrhq_scatter_offset_<supf><mode>_insn): Delete.
+ 	(mve_vstrdq_scatter_offset_p_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Delete.
+ 	(mve_vstrdq_scatter_offset_<supf>v2di): Delete.
+ 	(mve_vstrdq_scatter_offset_<supf>v2di_insn): Delete.
+ 	(mve_vstrhq_scatter_offset_fv8hf): Delete.
+ 	(mve_vstrhq_scatter_offset_fv8hf_insn): Delete.
+ 	(mve_vstrhq_scatter_offset_p_fv8hf): Delete.
+ 	(mve_vstrhq_scatter_offset_p_fv8hf_insn): Delete.
+ 	(mve_vstrwq_scatter_offset_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_offset_fv4sf_insn): Delete.
+ 	(mve_vstrwq_scatter_offset_p_fv4sf): Delete.
+ 	(mve_vstrwq_scatter_offset_p_fv4sf_insn): Delete.
+ 	(mve_vstrwq_scatter_offset_p_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Delete.
+ 	(mve_vstrwq_scatter_offset_<supf>v4si): Delete.
+ 	(mve_vstrwq_scatter_offset_<supf>v4si_insn): Delete.
+ 	(@mve_vstrq_scatter_offset_<mode>): New.
+ 	(@mve_vstrq_scatter_offset_p_<mode>): New.
+ 	(@mve_vstrq_truncate_scatter_offset_<mode>): New.
+ 	(@mve_vstrq_truncate_scatter_offset_p_<mode>): New.
+ 	* config/arm/unspecs.md (VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S)
+ 	(VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_S, VSTRWQSO_U, VSTRHQSO_F)
+ 	(VSTRWQSO_F, VSTRHQSO_U): Delete.
+ 	(VSTRQSO, VSTRQSO_P, VSTRQSO_TRUNC, VSTRQSO_TRUNC_P): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct store_scatter): New.
+ 	(struct store_scatter_offset_def): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (store_scatter_offset): New.
+ 
+ 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct
+ 	nonoverloaded_base): Implement mode_after_pred.
+ 	(struct overloaded_base): Likewise.
+ 	* config/arm/arm-mve-builtins.cc (function_builder::get_name):
+ 	Call mode_after_pred as needed.
+ 	* config/arm/arm-mve-builtins.h (function_shape): Add
+ 	mode_after_pred.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/111600
+ 	* Makefile.in:  Add insn-recog split.
+ 	* configure: Regenerate.
+ 	* configure.ac: Document that the number of insnemit partitions is
+ 	used for insn-recog as well.
+ 	* genconditions.cc (write_one_condition): Use fprintf.
+ 	* genpreds.cc (write_predicate_expr): Ditto.
+ 	(write_init_reg_class_start_regs): Ditto.
+ 	* genrecog.cc (write_header): Add header file to includes.
+ 	(printf_indent): Use fprintf.
+ 	(change_state): Ditto.
+ 	(print_code): Ditto.
+ 	(print_host_wide_int): Ditto.
+ 	(print_parameter_value): Ditto.
+ 	(print_test_rtx): Ditto.
+ 	(print_nonbool_test): Ditto.
+ 	(print_label_value): Ditto.
+ 	(print_test): Ditto.
+ 	(print_decision): Ditto.
+ 	(print_state): Ditto.
+ 	(print_subroutine_call): Ditto.
+ 	(print_acceptance): Ditto.
+ 	(print_subroutine_start): Ditto.
+ 	(print_pattern): Ditto.
+ 	(print_subroutine): Ditto.
+ 	(print_subroutine_group): Ditto.
+ 	(handle_arg): Add -O and -H for output and header file handling.
+ 	(main): Use callback.
+ 	* gentarget-def.cc (def_target_insn): Use fprintf.
+ 	* read-md.cc (md_reader::print_c_condition): Ditto.
+ 	* read-md.h (class md_reader): Ditto.
+ 
+ 2024-12-13  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/tuning_models/cortexx925.h: Set L1 cache size to 64b.
+ 	* config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
+ 	(neoversev2_prefetch_tune): Removed.
+ 	* config/aarch64/tuning_models/neoversev3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
+ 
+ 2024-12-13  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_NEOVERSE_BASE):
+ 	New.
+ 	* config/aarch64/tuning_models/neoverse512tvb.h: Use it.
+ 	* config/aarch64/tuning_models/neoversen2.h: Use it.
+ 	* config/aarch64/tuning_models/neoversen3.h: Use it.
+ 	* config/aarch64/tuning_models/neoversev1.h: Use it.
+ 	* config/aarch64/tuning_models/neoversev2.h: Use it.
+ 	* config/aarch64/tuning_models/neoversev3.h: Use it.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Use it.
+ 	* config/aarch64/tuning_models/cortexx925.h: Add fusions.
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: Add fusions.
+ 
+ 2024-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116979
+ 	* config/i386/mmx.md (vec_fmaddsubv2sf4, vec_fmsubaddv2sf4): New
+ 	define_expand patterns.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_register_move_cost):
+ 	Export.
+ 	* config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns):
+ 	Rename...
+ 	(shuffle_off_by_one_patterns): ... to this and add slideup/slidedown
+ 	variant.
+ 	(expand_vec_perm_const_1): Call renamed function.
+ 	* config/riscv/riscv.cc (riscv_secondary_memory_needed): Remove
+ 	static.
+ 	(riscv_register_move_cost): Add VR<->GR/FR handling.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_even_odd_patterns): New
+ 	function.
+ 	(expand_vec_perm_const_1): Use new function.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_interleave_patterns): New
+ 	function.
+ 	(expand_vec_perm_const_1): Use new function.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_slide_patterns): New.
+ 	(expand_vec_perm_const_1): Call new function.
+ 
+ 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/117353
+ 	PR target/117878
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Use predicated
+ 	instead of simple shift.
+ 
+ 2024-12-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/117990
+ 	* config/riscv/vector.md: Add the (mem:BLK (scratch)) to the
+ 	vector strided load.
+ 
+ 2024-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR middle-end/111659
+ 	* doc/extend.texi (Common Variable Attributes): Copy-edit description
+ 	of the strict_flex_array attribute levels.
+ 	* doc/invoke.texi (C Dialect Options): Swap documented behavior for
+ 	levels 0 and 3.  Copy the description for the other levels from the
+ 	attribute instead of indirecting to it.
+ 
+ 2024-12-12  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_emit_hpdiv_const): Clobber r1, r25,
+ 	r25 and return register.
+ 	* config/pa/pa.md (divsi3): Revise clobbers and operands.
+ 	Remove second clobber from div:SI insns.
+ 	(udivsi3, modsi3, umodsi3): Likewise.
+ 
+ 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* attr-urls.def: Regenerate.
+ 
+ 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
+ 	    Peter Eisentraut  <peter@eisentraut.org>
+ 
+ 	PR c/115532
+ 	* common.opt.urls: Regenerated.
+ 	* doc/invoke.texi (Option Summary): Don't try to list all the
+ 	-Wsuggest-attribute= variants inline here.
+ 	(Warning Options): Likewise.  Add @opindex for
+ 	Wsuggest-attribute=returns_nonnull and its no- form.  Remove
+ 	@itemx for no- form.
+ 
+ 2024-12-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/115127
+ 	* match.pd (clz (X) == C, ctz (X) == C, ctz (X) >= C): Don't
+ 	optimize if -fsanitize=builtin and not yet in SSA form.
+ 
+ 2024-12-12  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_call_expr): When handling OpenMP's dispatch,
+ 	add diagnostic when there is a ptr vs. addr mismatch between
+ 	need_device_{addr,ptr} and {is,has}_device_{ptr,addr}, respectively.
+ 
+ 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/118000
+ 	* config/avr/avr.cc (avr_init_expanders) <sreg_rtx>
+ 	<rampd_rtx, rampx_rtx, rampy_rtx, rampz_rtx>: Set MEM_VOLATILE_P.
+ 	(avr_out_cpymem) [ELPM && EBI]: Restore RAMPZ to 0 after.
+ 
+ 2024-12-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit the
+ 	size of the bitregion in get_best_mode calls by the inner
+ 	object's type size, if known.
+ 	(make_bit_field_load): Reuse SSA_NAME if we're attempting to
+ 	issue an identical load.
+ 
+ 2024-12-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* fold-const.cc (make_bit_field): Export.
+ 	(unextend, all_ones_mask_p): Drop.
+ 	(decode_field_reference, fold_truth_andor_1): Move
+ 	field compare merging logic...
+ 	* gimple-fold.cc: (fold_truth_andor_for_ifcombine) ... here,
+ 	with -Wtautological-compare warning guards, and...
+ 	(decode_field_reference): ... here.  Rework for gimple.
+ 	(gimple_convert_def_p, gimple_binop_def_p): New.
+ 	(compute_split_boundary_from_align): New.
+ 	(make_bit_field_load, build_split_load): New.
+ 	(reuse_split_load): New.
+ 	* fold-const.h: (make_bit_field_ref): Declare
+ 	(fold_truth_andor_for_ifcombine): Declare.
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Try
+ 	fold_truth_andor_for_ifcombine.
+ 	* common.opt (Wtautological-compare): Move here.
+ 
+ 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_ctz): New constexpr function.
+ 	(section_common::flags): Assert minimal bit width.
+ 
+ 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/118001
+ 	* doc/extend.texi (AVR Named Address Spaces): Document __flashx.
+ 	* config/avr/avr.h (ADDR_SPACE_FLASHX): New enum value.
+ 	* config/avr/avr-protos.h (avr_out_fload, avr_mem_flashx_p)
+ 	(avr_fload_libgcc_p, avr_load_libgcc_mem_p)
+ 	(avr_load_libgcc_insn_p): New.
+ 	* config/avr/avr.cc (avr_addrspace): Add ADDR_SPACE_FLASHX.
+ 	(avr_decl_flashx_p, avr_mem_flashx_p, avr_fload_libgcc_p)
+ 	(avr_load_libgcc_mem_p, avr_load_libgcc_insn_p, avr_out_fload):
+ 	New functions.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_FLOAD]: Handle case.
+ 	(avr_progmem_p) [avr_decl_flashx_p]: return 2.
+ 	(avr_addr_space_legitimate_address_p) [ADDR_SPACE_FLASHX]:
+ 	Has same behavior like ADDR_SPACE_MEMX.
+ 	(avr_addr_space_convert): Use pointer sizes rather then ASes.
+ 	(avr_addr_space_contains): New function.
+ 	(avr_convert_to_type): Use it.
+ 	(avr_emit_cpymemhi): Handle ADDR_SPACE_FLASHX.
+ 	* config/avr/avr.md (adjust_len) <fload>: New attr value.
+ 	(gen_load<mode>_libgcc): Renamed from load<mode>_libgcc.
+ 	(xload8<mode>_A): Iterate over MOVMODE rather than over ALL1.
+ 	(fxmov<mode>_A): New from xloadv<mode>_A.
+ 	(xmov<mode>_8): New from xload<mode>_A.
+ 	(fmov<mode>): New insns.
+ 	(fxload<mode>_A): New from xload<mode>_A.
+ 	(fxload_<mode>_libgcc): New from xload_<mode>_libgcc.
+ 	(*fxload_<mode>_libgcc): New from *xload_<mode>_libgcc.
+ 	(mov<mode>) [avr_mem_flashx_p]: Hande ADDR_SPACE_FLASHX.
+ 	(cpymemx_<mode>): Make sure the address space is not lost
+ 	when splitting.
+ 	(*cpymemx_<mode>) [ADDR_SPACE_FLASHX]: Use __movmemf_<mode> for asm.
+ 	(*ashlqi.1.zextpsi_split): New combine pattern.
+ 	* config/avr/predicates.md (nox_general_operand): Don't match
+ 	when avr_mem_flashx_p is true.
+ 	* config/avr/avr-passes.cc (AVR_LdSt_Props):
+ 	ADDR_SPACE_FLASHX has no post_inc.
+ 
+ 2024-12-12  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/113688
+ 	PR c/114014
+ 	PR c/114713
+ 	PR c/117724
+ 	* tree.cc (gimple_canonical_types_compatible_p): Add exception.
+ 
+ 2024-12-12  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* tree.cc (gimple_canonical_types_compatible_p): Add exception.
+ 	(verify_type): Add exception.
+ 
+ 2024-12-12  Sam James  <sam@gentoo.org>
+ 
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 
+ 2024-12-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop):
+ 	Comment spelling fix, is succeeded -> succeeded.
+ 
+ 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR target/117150
+ 	* doc/invoke.texi (RS/6000 and PowerPC Options): Move description
+ 	of -mstack-protector-guard-symbol from here...
+ 	(x86 Options): ...to here.
+ 
+ 2024-12-11  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/116778
+ 	* ira-int.h (x_ira_class_hard_reg_index): Fix comment typo.
+ 	* lra-eliminations.cc (lra_fp_pseudo_p): New function.
+ 	* lra-int.h (lra_fp_pseudo_p): External declaration.
+ 	* lra-spills.cc (lra_need_for_spills_p): Fix formatting.
+ 	* lra.cc (lra): Use lra_fp_pseudo_p in lra_create_live_range after
+ 	lra_remat.
+ 
+ 2024-12-11  Filip Kastl  <fkastl@suse.cz>
+ 	    Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/117091
+ 	PR middle-end/117352
+ 	* doc/invoke.texi: Add switch-lower-slow-alg-max-cases.
+ 	* params.opt: Add switch-lower-slow-alg-max-cases.
+ 	* tree-switch-conversion.cc (jump_table_cluster::find_jump_tables):
+ 	Note in a comment that we are looking for jump tables in
+ 	case sequences delimited by the already found bit tests.
+ 	(bit_test_cluster::find_bit_tests): Decide between
+ 	find_bit_tests_fast() and find_bit_tests_slow().
+ 	(bit_test_cluster::find_bit_tests_fast): New function.
+ 	(bit_test_cluster::find_bit_tests_slow): New function.
+ 	(switch_decision_tree::analyze_switch_statement): Report
+ 	exceeding the limit.
+ 	* tree-switch-conversion.h: Add find_bit_tests_fast() and
+ 	find_bit_tests_slow().
+ 
+ 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-highlight-colors.h: Tweak comment.
+ 	* pretty-print-markup.h (class pp_element_quoted_string): New,
+ 	based on pretty-print.cc's selftest::test_element, adding an
+ 	optional highlight color.
+ 	* pretty-print.cc (class test_element): Drop.
+ 	(selftest::test_pp_format): Use pp_element_quoted_string.
+ 	(selftest::test_urlification): Likewise.
+ 
+ 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116253
+ 	* diagnostic-format-text.cc (build_prefix): Don't add the
+ 	"note: " prefix when showing nested diagnostics.
+ 
+ 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116253
+ 	* diagnostic-format-text.cc (on_report_diagnostic): When showing
+ 	locations for nested messages on new lines, don't print
+ 	UNKNOWN_LOCATION or BUILTINS_LOCATION.
+ 
+ 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* input.cc (file_cache::initialize_input_context): Rename member
+ 	"in_context" to "m_input_context".
+ 	(file_cache::add_file): Likewise.
+ 	* input.h (class file_cache): Likewise.
+ 
+ 2024-12-11  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-cp.h: Forward declare class ipa_vr.
+ 	(ipa_vr_operation_and_type_effects) Declare.
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Make public.
+ 	* ipa-prop.cc (update_jump_functions_after_inlining): Also update
+ 	value range jump functions.
+ 
+ 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 	    Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/96342
+ 	* expr.cc (store_constructor): Enable poly_{u}int64 type usage.
+ 	(get_inner_reference): Ditto.
+ 
+ 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 	    Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/96342
+ 	* expr.cc (store_constructor): add support for variable-length
+ 	vectors.
+ 
+ 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR target/96342
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call):
+ 	s/vectype/masktype/ in call to vect_get_loop_mask.
+ 
+ 2024-12-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Victor Do Nascimento  <victor.donascimento@arm.com>
+ 	    Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/96342
+ 	* target.def (TARGET_SIMD_CLONE_USABLE): Add argument.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Pass stmt_info to
+ 	call TARGET_SIMD_CLONE_USABLE.
+ 	* config/aarch64/aarch64.cc (aarch64_simd_clone_usable): Add argument
+ 	and use it to reject the use of SVE simd clones with Advanced SIMD
+ 	modes.
+ 	* config/gcn/gcn.cc (gcn_simd_clone_usable): Add unused argument.
+ 	* config/i386/i386.cc (ix86_simd_clone_usable): Likewise.
+ 	* doc/tm.texi: Regenerate
+ 
+ 2024-12-11  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114932
+ 	* fold-const.cc (operand_compare::operand_equal_p): Use it.
+ 	(operand_compare::verify_hash_value): Likewise.
+ 	(operand_compare::hash_operand): Likewise.
+ 	(test_operand_equality::test): New.
+ 	(fold_const_cc_tests): Use it.
+ 	* tree-core.h (enum operand_equal_flag): Add OEP_ASSUME_WRAPV.
+ 	* tree-ssa-loop-ivopts.cc (record_group_use): Check for structural eq.
+ 
+ 2024-12-11  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114932
+ 	* fold-const.cc (operand_compare::operand_equal_p): Split into one that
+ 	takes explicit type parameters and use that in public one.
+ 	* fold-const.h (class operand_compare): Add operand_equal_p private
+ 	overload.
+ 
+ 2024-12-11  Soumya AR  <soumyaa@nvidia.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_ptrue_reg): New overload.
+ 	* config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Likewise.
+ 	* config/aarch64/aarch64-sve.md: Extended sdiv_pow2<mode>3
+ 	and *sdiv_pow2<mode>3 to support Neon modes.
+ 
+ 2024-12-11  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md
+ 	(*aarch64_sve2_nbsl_unpred<mode>): New pattern to match unpredicated
+ 	form.
+ 	(*aarch64_sve2_bsl1n_unpred<mode>): Likewise.
+ 	(*aarch64_sve2_bsl2n_unpred<mode>): Likewise.
+ 
+ 2024-12-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/117888
+ 	* tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Use
+ 	cunrolli instead of cunrolli && !loop->inner to check if it's
+ 	innermost loop.
+ 	(canonicalize_loop_induction_variables): Add new parameter
+ 	const_sbitmap innermost, and pass
+ 	cunrolli
+ 	&& (unsigned) loop->num < SBITMAP_SIZE (innermost)
+ 	&& bitmap_bit_p (innermost, loop->num) as "cunrolli" to
+ 	try_unroll_loop_completely
+ 	(canonicalize_induction_variables): Pass innermost to
+ 	canonicalize_loop_induction_variables.
+ 	(tree_unroll_loops_completely_1): Add new parameter
+ 	const_sbitmap innermost.
+ 	(tree_unroll_loops_completely): Move local variable cunrolli
+ 	to parameter to indicate it's from pass cunrolli, also track
+ 	all "original" innermost loop at the beginning.
+ 
+ 2024-12-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/117944
+ 	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Get any
+ 	helpUri	from the rule_obj and pass it to add_rule.
+ 
+ 2024-12-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/117946
+ 	* lra-assigns.cc: (find_hard_regno_for_1): Use the biggest mode to
+ 	check ira_prohibited_class_mode_regs.
+ 
+ 2024-12-10  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/117880
+ 	* fold-const.cc (operand_compare::operand_equal_p) <case tcc_unary>:
+ 	Use OP_SAME_WITH_NULL instead of OP_SAME.
+ 
+ 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/117675
+ 	* config/arm/arm.cc (arm_ldrd_legitimate_address): New function.
+ 	* config/arm/arm-protos.h (arm_ldrd_legitimate_address): New prototype.
+ 	* config/arm/constraints.md: Add new Uo constraint.
+ 	* config/arm/predicates.md (arm_ldrd_memory_operand): Add new predicate.
+ 	* config/arm/sync.md (arm_atomic_loaddi2_ldrd): Use
+ 	arm_ldrd_memory_operand and Uo.
+ 
+ 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE): New define.
+ 	* config/aarch64/tuning_models/ampere1b.h: Use AARCH64_EXTRA_TUNE_BASE.
+ 	* config/aarch64/tuning_models/cortexx925.h: Likewise.
+ 	* config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
+ 	* config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
+ 
+ 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): Remove.
+ 	(DATA_ALIGNMENT): Use aarch64_data_alignment.
+ 	(LOCAL_ALIGNMENT): Use aarch64_stack_alignment.
+ 	* config/aarch64/aarch64.cc (aarch64_data_alignment): New function.
+ 	(aarch64_stack_alignment): Likewise.
+ 	* config/aarch64/aarch64-protos.h (aarch64_data_alignment): New prototype.
+ 	(aarch64_stack_alignment): Likewise.
+ 
+ 2024-12-10  Wilco Dijkstra  <wdijkstr@ip-10-252-53-150.eu-west-1.compute.internal>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_classify_address): Treat SIMD structs
+ 	identically in little and bigendian.
+ 	* config/aarch64/aarch64-simd.md (aarch64_mov<mode>): Remove VSTRUCT
+ 	instructions.
+ 	(aarch64_be_mov<mode>): Allow little-endian, rename to aarch64_mov<mode>.
+ 	(aarch64_be_movoi): Allow little-endian, rename to aarch64_movoi.
+ 	(aarch64_be_movci): Allow little-endian, rename to aarch64_movci.
+ 	(aarch64_be_movxi): Allow little-endian, rename to aarch64_movxi.
+ 	Remove big-endian special case in define_split variants.
+ 
+ 2024-12-10  Arsen Arsenović  <arsen@aarsen.me>
+ 	    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 6 for sake
+ 	of the coroutine dump.
+ 
+ 2024-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/md.texi (vcond@var{m}@var{n}, vcondu@var{m}@var{n})
+ 	(vcondeq@var{m}@var{n}): Delete.
+ 	(vcond_mask_@var{m}@var{n}): Redocument in standalone form.
+ 	* internal-fn.def (VCOND, VCONDU, VCONDEQ): Delete.
+ 	* internal-fn.cc (expand_vec_cond_optab_fn): Delete.
+ 	* optabs.def (vcond_optab, vcondu_optab, vcondeq_optab): Delete.
+ 
+ 2024-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_sve_vcond): Delete.
+ 	* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Expand into
+ 	separate vec_cmp and vcond_mask instructions, instead of using vcond.
+ 	(vcond<mode><mode>, vcond<v_cmp_mixed><mode>, vcondu<mode><mode>)
+ 	(vcondu<mode><v_cmp_mixed>): Delete.
+ 	* config/aarch64/aarch64-sve.md (vcond<SVE_ALL:mode><SVE_I:mode>)
+ 	(vcondu<SVE_ALL:mode><SVE_I:mode>, vcond<mode><v_fp_equiv>): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_sve_vcond): Likewise.
+ 	* config/aarch64/iterators.md (V_FP_EQUIV, v_fp_equiv, V_cmp_mixed)
+ 	(v_cmp_mixed): Likewise.
+ 
+ 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_pragma_builtins_checker::require_immediate_lane_index): New
+ 	overload.
+ 	(aarch64_pragma_builtins_checker::check): Add support for FP8FMA
+ 	intrinsics.
+ 	(aarch64_expand_pragma_builtins): Likewise.
+ 	* config/aarch64/aarch64-c.cc
+ 	(aarch64_update_cpp_builtins): Conditionally define TARGET_FP8FMA.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Add the FP8FMA
+ 	intrinsics.
+ 	* config/aarch64/aarch64-simd.md:
+ 	(@aarch64_<FMLAL_FP8_HF:insn><mode): New pattern.
+ 	(@aarch64_<FMLAL_FP8_HF:insn>_lane<V8HF_ONLY:mode><VB:mode>):
+ 	Likewise.
+ 	(@aarch64_<FMLALL_FP8_SF:insn><mode): Likewise.
+ 	(@aarch64_<FMLALL_FP8_SF:insn>_lane<V8HF_ONLY:mode><VB:mode>):
+ 	Likewise.
+ 	* config/aarch64/iterators.md (V8HF_ONLY): New mode iterator.
+ 	(SVE2_FP8_TERNARY_VNX8HF): Rename to...
+ 	(FMLAL_FP8_HF): ...this.
+ 	(SVE2_FP8_TERNARY_LANE_VNX8HF): Delete in favor of FMLAL_FP8_HF.
+ 	(SVE2_FP8_TERNARY_VNX4SF): Rename to...
+ 	(FMLALL_FP8_SF): ...this.
+ 	(SVE2_FP8_TERNARY_LANE_VNX4SF): Delete in favor of FMLALL_FP8_SF.
+ 	(sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Fold into...
+ 	(insn): ...here.
+ 	* config/aarch64/aarch64-sve2.md: Update uses accordingly.
+ 
+ 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(enum class): Add ternary_lane.
+ 	(aarch64_fntype): Hnadle ternary_lane.
+ 	(aarch64_pragma_builtins_checker::require_immediate_lane_index): New
+ 	function.
+ 	(aarch64_pragma_builtins_checker::check): Handle the new intrinsics.
+ 	(aarch64_expand_pragma_builtin): Likewise.
+ 	* config/aarch64/aarch64-c.cc
+ 	(aarch64_update_cpp_builtins): Define TARGET_FP8DOT2 and
+ 	TARGET_FP8DOT4.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Define vdot
+ 	and vdot_lane intrinsics.
+ 	* config/aarch64/aarch64-simd.md
+ 	(@aarch64_<fpm_uns_op><mode>): New pattern.
+ 	(@aarch64_<fpm_uns_op>_lane<VQ_HSF_VDOT:mode><VB:mode>): Likewise.
+ 	* config/aarch64/iterators.md (VQ_HSF_VDOT): New mode iterator.
+ 	(UNSPEC_VDOT, UNSPEC_VDOT_LANE): New unspecs.
+ 	(fpm_uns_op): Handle them.
+ 	(VNARROWB, Vnbtype): New mode attributes.
+ 	(FPM_VDOT, FPM_VDOT_LANE): New int iterators.
+ 
+ 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(FLAG_USES_FPMR, FLAG_FP8): New flags.
+ 	(ENTRY): Modified to support ternary operations.
+ 	(enum class): New variants to support new signatures.
+ 	(struct aarch64_pragma_builtins_data): Extend types to 4 elements.
+ 	(aarch64_fntype): Handle new signatures.
+ 	(aarch64_get_low_unspec): New function.
+ 	(aarch64_convert_to_v64): New function, split out from...
+ 	(aarch64_expand_pragma_builtin): ...here.  Handle new signatures.
+ 	* config/aarch64/aarch64-c.cc
+ 	(aarch64_update_cpp_builtins): New flag for FP8.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Define new fp8
+ 	intrinsics.
+ 	(ENTRY_BINARY, ENTRY_BINARY_LANE): Update for new ENTRY interface.
+ 	(ENTRY_UNARY, ENTRY_TERNARY, ENTRY_UNARY_FPM): New macros.
+ 	(ENTRY_BINARY_VHSDF_SIGNED): Likewise.
+ 	* config/aarch64/aarch64-simd.md
+ 	(@aarch64_<fpm_uns_op><mode>): New pattern.
+ 	(@aarch64_<fpm_uns_op><mode>_high): Likewise.
+ 	(@aarch64_<fpm_uns_op><mode>_high_be): Likewise.
+ 	(@aarch64_<fpm_uns_op><mode>_high_le): Likewise.
+ 	* config/aarch64/iterators.md (V4SF_ONLY, VQ_BHF): New mode iterators.
+ 	(UNSPEC_FCVTN_FP8, UNSPEC_FCVTN2_FP8, UNSPEC_F1CVTL_FP8)
+ 	(UNSPEC_F1CVTL2_FP8, UNSPEC_F2CVTL_FP8, UNSPEC_F2CVTL2_FP8)
+ 	(UNSPEC_FSCALE): New unspecs.
+ 	(VPACKB, VPACKBtype): New mode attributes.
+ 	(b): Add support for V[48][BH]F.
+ 	(FPM_UNARY_UNS, FPM_BINARY_UNS, SCALE_UNS): New int iterators.
+ 	(insn): New int attribute.
+ 
+ 2024-12-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117912
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses
+ 	of zero-sized components do not set ->off if the object size pass
+ 	didn't run.
+ 	For OOB ARRAY_REF accesses in address expressions avoid setting
+ 	->off if the object size pass didn't run.
+ 	(valueize_refs_1): Likewise.
+ 
+ 2024-12-10  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR target/117923
+ 	* config/aarch64/aarch64-builtins.cc: Remove GTY marker on aarch64_simd_types,
+ 	aarch64_simd_types_trees (new variable), rename aarch64_simd_types to
+ 	aarch64_simd_types_trees.
+ 	* config/aarch64/aarch64-builtins.h: Remove GTY marker on aarch64_simd_types,
+ 	aarch64_simd_types_trees (new variable).
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc: Rename aarch64_simd_types to
+ 	aarch64_simd_types_trees.
+ 	* config/aarch64/aarch64-sve-builtins.cc: Rename aarch64_simd_types to
+ 	aarch64_simd_types_trees.
+ 
+ 2024-12-09  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_crc_using_pmull): New
+ 	extern function declaration.
+ 	(aarch64_expand_reversed_crc_using_pmull):  Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_crc_using_pmull): New
+ 	function.
+ 	(aarch64_expand_reversed_crc_using_pmull):  Likewise.
+ 	* config/aarch64/aarch64.md (crc_rev<ALLI:mode><ALLX:mode>4): New
+ 	expander for reversed CRC.
+ 	(crc<ALLI:mode><ALLX:mode>4): New expander for bit-forward CRC.
+ 	* config/aarch64/iterators.md (crc_data_type): New mode attribute.
+ 
+ 2024-12-09  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR driver/117942
+ 	* opts-common.cc (decode_cmdline_options_to_array): Also detect
+ 	--diagnostics-plain-output.
+ 
+ 2024-12-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>): Add
+ 	"@" to the name.
+ 
+ 2024-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* late-combine.cc (late_combine::execute): Delete RTL SSA.
+ 
+ 2024-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* timevar.def (TV_DUP_COMPGOTO): Add.
+ 	* bb-reorder.cc (pass_data_duplicate_computed_gotos): Use
+ 	TV_DUP_COMPGOTO.
+ 
+ 2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_canonicalize_comparison): Add
+ 	missing UNSPEC_CC_TO_INT case.
+ 
+ 2024-12-09  Matthew Malcomson  <mmalcomson@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-c.cc
+ 	(aarch64_resolve_overloaded_builtin,aarch64_check_builtin_call):
+ 	Add new unused boolean parameter to match target hook
+ 	definition.
+ 	* config/arm/arm-builtins.cc (arm_check_builtin_call): Likewise.
+ 	* config/arm/arm-c.cc (arm_resolve_overloaded_builtin):
+ 	Likewise.
+ 	* config/arm/arm-protos.h (arm_check_builtin_call): Likewise.
+ 	* config/avr/avr-c.cc (avr_resolve_overloaded_builtin):
+ 	Likewise.
+ 	* config/riscv/riscv-c.cc (riscv_check_builtin_call,
+ 	riscv_resolve_overloaded_builtin): Likewise.
+ 	* config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
+ 	Likewise.
+ 	* config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
+ 	Likewise.
+ 	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
+ 	Likewise.
+ 	* doc/tm.texi: Regenerate.
+ 	* target.def (TARGET_RESOLVE_OVERLOADED_BUILTIN,
+ 	TARGET_CHECK_BUILTIN_CALL): Update prototype to include a
+ 	boolean parameter that indicates whether errors should be
+ 	emitted.  Update documentation to mention this fact.
+ 
+ 2024-12-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/117960
+ 	* doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets
+ 	it is supported.
+ 
+ 2024-12-09  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/114189
+ 	* config/arm/arm-protos.h (arm_expand_vcond): Delete prototype.
+ 	* config/arm/arm.cc (arm_expand_vcond): Delete function.
+ 	* config/arm/vec-common.md (vcond<mode><mode>): Delete pattern
+ 	(vcond<V_cvtto><mode>): Likewise.
+ 	(vcond<VH_cvtto><mode>): Likewise.
+ 	(vcondu<mode><v_cmp_result>): Likewise.
+ 
+ 2024-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117932
+ 	* df-core.cc (df_worklist_propagate_forward): Elide
+ 	age check for the first iteration, adjust for
+ 	last_change_age change.
+ 	(df_worklist_propagate_backward): Likewise.
+ 	(df_worklist_dataflow_doublequeue): Make last_change_age
+ 	indexed by BB index, avoid clearing both age arrays.
+ 
+ 2024-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117932
+ 	* df-core.cc (df_worklist_propagate_forward): When WORKLIST
+ 	is NULL, do not set bits there.
+ 	(df_worklist_propagate_backward): Likewise.
+ 	(df_worklist_dataflow_doublequeue): Separate first pass
+ 	over all blocks with NULL worklist.
+ 	(df_worklist_dataflow): Do not initialize pending and adjust.
+ 
+ 2024-12-09  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config.gcc [nvptx-*]: Switch default from '-march=sm_30' to
+ 	'-march=sm_52'.
+ 	* doc/install.texi (Nvidia PTX Options): Update.
+ 
+ 2024-12-09  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_vec_constant): Fix 'real_from_integer'
+ 	usage.
+ 
+ 2024-12-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (sve-b16b16,
+ 	f32mm, f64mm, sve2p1, sme-f64f64, sme-i16i64, sme-b16b16,
+ 	sme-f16f16, mops): Update FEATURE_STRING field.
+ 
+ 2024-12-09  Simon Martin  <simon@nasilyan.com>
+ 
+ 	PR c++/117845
+ 	* tree-eh.cc (honor_protect_cleanup_actions): Support empty
+ 	finally sequences.
+ 
+ 2024-12-08  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* gimple.h (struct gphi): Update word marking comments to reflect
+ 	the new size of location_t.
+ 	(struct gimple): Likewise. Add a comment about padding.
+ 	* common.opt: Mark -flarge-source-files as Ignored.
+ 	* common.opt.urls: Regenerate.
+ 	* doc/invoke.texi: Remove -flarge-source-files.
+ 	* toplev.cc (process_options): Remove support for
+ 	-flarge-source-files.
+ 
+ 2024-12-08  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.cc (pru_print_operand): Implement c and n
+ 	inline assembly operand modifiers.
+ 
+ 2024-12-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* config/sparc/sparc.md (VIS4B instructions): Add comments.
+ 
+ 2024-12-07  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_print_operand_address): Use
+ 	avr_insn_location as location for late (during final) diagnostic.
+ 
+ 2024-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117930
+ 	* config/i386/i386.md (crotate): New define_code_attr.
+ 	(*<insn><mode>3_add, *<insn><mode>3_add_1,
+ 	*<insn><mode>3_sub, *<insn><mode>3_sub_1): New define_insn_and_split
+ 	patterns plus following define_split for constant first input
+ 	operand.
+ 
+ 2024-12-07  Denis Chertykov  <chertykov@gmail.com>
+ 
+ 	PR target/116778
+ 	* lra-lives.cc (complete_info_p): Clarification of the comment.
+ 	* lra.cc (lra): Create a full live info after rematerialization.
+ 
+ 2024-12-07  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	Revert:
+ 	2024-12-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(vsetvl_def::get_name): Adjust return type.
+ 	(loadstore_def::get_name): Ditto.
+ 	(indexed_loadstore_def::get_name): Ditto.
+ 	(th_loadstore_width_def::get_name): Ditto.
+ 	(th_indexed_loadstore_width_def::get_name): Ditto.
+ 	(alu_def::get_name): Ditto.
+ 	(alu_frm_def::get_name): Ditto.
+ 	(widen_alu_frm_def::get_name): Ditto.
+ 	(narrow_alu_frm_def::get_name): Ditto.
+ 	(reduc_alu_frm_def::get_name): Ditto.
+ 	(widen_alu_def::get_name): Ditto.
+ 	(no_mask_policy_def::get_name): Ditto.
+ 	(return_mask_def::get_name): Ditto.
+ 	(narrow_alu_def::get_name): Ditto.
+ 	(move_def::get_name): Ditto.
+ 	(mask_alu_def::get_name): Ditto.
+ 	(reduc_alu_def::get_name): Ditto.
+ 	(th_extract_def::get_name): Ditto.
+ 	(scalar_move_def::get_name): Ditto.
+ 	(vundefined_def::get_name): Ditto.
+ 	(misc_def::get_name): Ditto.
+ 	(vset_def::get_name): Ditto.
+ 	(vcreate_def: Ditto.::get_name): Ditto.
+ 	(read_vl_def::get_name): Ditto.
+ 	(fault_load_def::get_name): Ditto.
+ 	(vlenb_def::get_name): Ditto.
+ 	(seg_loadstore_def::get_name): Ditto.
+ 	(seg_indexed_loadstore_def::get_name): Ditto.
+ 	(seg_fault_load_def::get_name): Ditto.
+ 	(crypto_vv_def::get_name): Ditto.
+ 	(crypto_vi_def::get_name): Ditto.
+ 	(crypto_vv_no_op_type_def::get_name): Ditto.
+ 	(sf_vqmacc_def::get_name): Ditto.
+ 	(sf_vqmacc_def::get_name): Ditto.
+ 	(sf_vfnrclip_def::get_name): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_builder::add_unique_function): Adjust the type for the
+ 	function name holder.
+ 	(function_builder::add_overloaded_function): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add
+ 	const to the return type.
+ 
+ 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* libgdiagnostics.cc (struct diagnostic_manager): Use location_t(-1)
+ 	instead of UINT_MAX to support 64-bit location_t as well.
+ 	(diagnostic_manager::diagnostic_manager): Change hard-coded "5" to
+ 	line_map_suggested_range_bits.
+ 
+ 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* rtl.def (DEBUG_INSN): Use new format code 'L' for location_t fields.
+ 	(INSN): Likewise.
+ 	(JUMP_INSN): Likewise.
+ 	(CALL_INSN): Likewise.
+ 	(ASM_INPUT): Likewise.
+ 	(ASM_OPERANDS): Likewise.
+ 	* rtl.h (union rtunion): Add new location_t RT_LOC member for use by
+ 	the 'L' format.
+ 	(struct rtx_debug_insn): Adjust comment.
+ 	(struct rtx_nonjump_insn): Adjust comment.
+ 	(struct rtx_call_insn): Adjust comment.
+ 	(XLOC): New accessor macro for rtunion::rt_loc.
+ 	(X0LOC): Likewise.
+ 	(XCLOC): Likewise.
+ 	(INSN_LOCATION): Use XLOC instead of XUINT to retrieve a location_t.
+ 	(NOTE_MARKER_LOCATION): Likewise for XCUINT -> XCLOC.
+ 	(ASM_OPERANDS_SOURCE_LOCATION): Likewise.
+ 	(ASM_INPUT_SOURCE_LOCATION):Likewise.
+ 	(gen_rtx_ASM_INPUT): Adjust to use sL format instead of si.
+ 	(gen_rtx_INSN): Adjust prototype to use location_r rather than int
+ 	for the location.
+ 	* cfgrtl.cc (force_nonfallthru_and_redirect): Change type of LOC
+ 	local variable from int to location_t.
+ 	* rtlhash.cc (add_rtx): Support 'L' format in the switch statement.
+ 	* var-tracking.cc (loc_cmp): Likewise.
+ 	* alias.cc (rtx_equal_for_memref_p): Likewise.
+ 	* config/alpha/alpha.cc (summarize_insn): Likewise.
+ 	* config/ia64/ia64.cc (rtx_needs_barrier): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_hash_constant): Likewise.
+ 	* cse.cc (hash_rtx): Likewise.
+ 	(exp_equiv_p): Likewise.
+ 	* cselib.cc (rtx_equal_for_cselib_1): Likewise.
+ 	(cselib_hash_rtx): Likewise.
+ 	(cselib_expand_value_rtx_1): Likewise.
+ 	* emit-rtl.cc (copy_insn_1): Likewise.
+ 	(gen_rtx_INSN): Change the location argument from int to location_t,
+ 	and call the corresponding gen_rtf_fmt_* function.
+ 	* final.cc (leaf_renumber_regs_insn): Support 'L' format in the
+ 	switch statement.
+ 	* genattrtab.cc (attr_rtx_1): Likewise.
+ 	* genemit.cc (gen_exp): Likewise.
+ 	* gengenrtl.cc (type_from_format): Likewise.
+ 	(accessor_from_format): Likewise.
+ 	* gengtype.cc (adjust_field_rtx_def): Likewise.
+ 	* genpeep.cc (match_rtx): Likewise; just mark gcc_unreachable() for
+ 	now.
+ 	* genrecog.cc (find_operand): Support 'L' format in the switch statement.
+ 	(find_matching_operand): Likewise.
+ 	(validate_pattern): Likewise.
+ 	* gensupport.cc (subst_pattern_match): Likewise.
+ 	(get_alternatives_number): Likewise.
+ 	(collect_insn_data): Likewise.
+ 	(alter_predicate_for_insn): Likewise.
+ 	(alter_constraints): Likewise.
+ 	(subst_dup): Likewise.
+ 	* jump.cc (rtx_renumbered_equal_p): Likewise.
+ 	* loop-invariant.cc (hash_invariant_expr_1): Likewise.
+ 	* lra-constraints.cc (operands_match_p): Likewise.
+ 	* lra.cc (lra_rtx_hash): Likewise.
+ 	* print-rtl.cc (rtx_writer::print_rtx_operand_code_i): Refactor
+ 	location_t-relevant code to...
+ 	(rtx_writer::print_rtx_operand_code_L): ...new function here.
+ 	(rtx_writer::print_rtx_operand): Support 'L' format in the switch statement.
+ 	* print-rtl.h (rtx_writer::print_rtx_operand_code_L): Add prototype
+ 	for new function.
+ 	* read-rtl-function.cc (function_reader::read_rtx_operand): Support
+ 	'L' format in the switch statement.
+ 	(function_reader::read_rtx_operand_i_or_n): Rename to...
+ 	(function_reader::read_rtx_operand_inL): ...this, and support 'L' as
+ 	well.
+ 	* read-rtl.cc (apply_int_iterator): Support 'L' format in the switch
+ 	statement.
+ 	(rtx_reader::read_rtx_operand): Likewise.
+ 	* reload.cc (operands_match_p): Likewise.
+ 	* rtl.cc (rtx_format): Add new code 'L'.
+ 	(rtx_equal_p): Support 'L' in the switch statement. Remove dead code
+ 	in the handling for 'i' and 'n'.
+ 
+ 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* final.cc (reemit_insn_block_notes): Don't try to call
+ 	INSN_LOCATION on a NOTE rtl object. Don't call change_scope () for a
+ 	NOTE missing a location.
+ 
+ 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* tree-parloops.cc (struct reduction_info): Store the result of the
+ 	reduction PHI rather than the PHI itself.
+ 	(reduction_info::reduc_phi): New member function.
+ 	(reduction_hasher::equal): Adapt to the change in struct reduction_info.
+ 	(reduction_phi): Likewise.
+ 	(initialize_reductions): Likewise.
+ 	(create_call_for_reduction_1): Likewise.
+ 	(transform_to_exit_first_loop_alt): Likewise.
+ 	(transform_to_exit_first_loop): Likewise.
+ 	(build_new_reduction): Likewise.
+ 	(set_reduc_phi_uids): Likewise.
+ 	(try_create_reduction_list): Likewise.
+ 	* tree-ssa-loop-split.cc (split_loop): Remember the PHI result
+ 	variable so that the PHI can be found in case it is resized and move
+ 	to a new address.
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): After calling
+ 	loop_version(), fix up stored PHI pointers in case they have
+ 	changed.
+ 	* tree-vectorizer.cc (vec_info::resync_stmt_addr): New function.
+ 	* tree-vectorizer.h (vec_info::resync_stmt_addr): Declare.
+ 
+ 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/117467
+ 	* gimple-range-infer.cc (infer_range_manager::add_ranges): Check
+ 	range_of_expr to see if the inferred range is needed.
+ 
+ 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Create the
+ 	infer oracle using THIS as the range_query.
+ 	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
+ 	Add a range_query to the constructor and use it.
+ 	(infer_range_manager::infer_range_manager): Add a range_query.
+ 	* gimple-range-infer.h (gimple_infer_range): Adjust prototype.
+ 	(infer_range_manager): Add a range_query.
+ 	* value-query.cc (range_query::create_infer_oracle): Add a range_query.
+ 	* value-query.h (range_query::create_infer_oracle): Update prototype.
+ 
+ 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/117467
+ 	* gimple-range-cache.cc (ranger_cache::entry_range): Do not
+ 	invoke range_from_dom for invariant ssa-names.
+ 
+ 2024-12-06  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/117248
+ 	* lra-lives.cc (start_living, start_dying): Remove.
+ 	(insn_regnos, out_insn_regnos, insn_regnos_live_after): New.
+ 	(sparseset_contains_pseudos_p): Remove.
+ 	(make_hard_regno_live, make_hard_regno_dead): Return true if
+ 	something in liveness is changed.
+ 	(mark_pseudo_live,  mark_pseudo_dead): Ditto.
+ 	(mark_regno_live, mark_regno_dead): Ditto.
+ 	(clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead
+ 	of dead_set.
+ 	(process_bb_lives): Rewrite dealing with reg notes.  Update
+ 	conflict hard regs even when clobber hard reg is not marked as
+ 	dead.
+ 	(lra_create_live_ranges_1): Add initialization/finalization of
+ 	insn_regnos, out_insn_regnos, insn_regnos_live_after.
+ 
+ 2024-12-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR tree-optimization/117895
+ 	* expr.cc (calculate_table_based_CRC): Drop CRC_MODE argument.
+ 	Convert DATA to CRC's mode, then do calculations in CRC's mode.
+ 	(expand_crc_table_based): Corresponding changes.
+ 	(expand_reversed_crc_table_based): Corresponding changes.
+ 
+ 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_decompose_address):
+ 	Add missing part from my previous commit.
+ 
+ 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_decompose_address): Eliminate
+ 	common code and use use UINTVAL and HOST_WIDE_INT_UC macros
+ 	in the condition for AND wrapped address.
+ 
+ 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/117926
+ 	* config/i386/mmx.md (UNSPEC_3DNOW): New unspec.
+ 	(mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag.
+ 	(*mmx_addv2sf3): Ditto.
+ 	(mmx_sub2vsf3): Ditto.
+ 	(mmx_subrv2sf3): Ditto.
+ 	(*mmx_subv2sf3): Ditto.
+ 	(mmx_mulv2sf3): Ditto.
+ 	(mmx_<smaxmin:code>v2sf3): Ditto.
+ 	(*mmx_<smaxmin:code>v2sf3): Ditto.
+ 	(mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
+ 	(mmx_eqv2sf3): Ditto.
+ 	(*mmx_eqv2sf3): Ditto.
+ 	(mmx_gtv2sf3): Ditto.
+ 	(mmx_gev2sf3): Ditto.
+ 	(mmx_fix_truncv2sfv2si2): Ditto.
+ 	(mmx_floatv2siv2sf2): Ditto.
+ 
+ 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::override_urlifier): New.
+ 	* diagnostic.h (diagnostic_context::override_urlifier): New decl.
+ 	* doc/extend.texi (Nvidia PTX Function Attributes): Update
+ 	@cindex to specify that "kernel" is a function attribute and
+ 	"shared" is a variable attribute, so that these entries are
+ 	recognized by the regex in regenerate-attr-urls.py.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in (TARGET_DOCUMENTATION_NAME): New.
+ 	* gcc-attribute-urlifier.cc: New file.
+ 	* gcc-urlifier.cc: Include diagnostic.h.
+ 	(gcc_urlifier::make_doc): Convert to...
+ 	(make_doc_url): ...this.
+ 	(auto_override_urlifier::auto_override_urlifier): New.
+ 	(auto_override_urlifier::~auto_override_urlifier): New.
+ 	(selftest::gcc_urlifier_cc_tests): Split out body into...
+ 	(selftest::test_gcc_urlifier): ...this.
+ 	* gcc-urlifier.h: Include "pretty-print-urlifier.h" and "label-text.h".
+ 	(make_doc_url): New decl.
+ 	(class auto_override_urlifier): New.
+ 	(class attribute_urlifier): New.
+ 	(class auto_urlify_attributes): New.
+ 	* gimple-ssa-warn-access.cc: Include "gcc-urlifier.h".
+ 	(pass_waccess::execute): Use auto_urlify_attributes.
+ 	* gimplify.cc: Include "gcc-urlifier.h".
+ 	(expand_FALLTHROUGH): Use auto_urlify_attributes.
+ 	* internal-fn.cc: Define INCLUDE_MEMORY and include
+ 	"gcc-urlifier.h.
+ 	(expand_FALLTHROUGH): Use auto_urlify_attributes.
+ 	* ipa-pure-const.cc: Include "gcc-urlifier.h.
+ 	(suggest_attribute): Use auto_urlify_attributes.
+ 	* ipa-strub.cc: Include "gcc-urlifier.h.
+ 	(can_strub_p): Use auto_urlify_attributes.
+ 	* regenerate-attr-urls.py: New file.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	gcc_attribute_urlifier_cc_tests.
+ 	* selftest.h (selftest::gcc_attribute_urlifier_cc_tests): New
+ 	decl.
+ 	* target.def (documentation_name): New DEFHOOKPOD.
+ 	* tree-cfg.cc: Include "gcc-urlifier.h.
+ 	(do_warn_unused_result): Use auto_urlify_attributes.
+ 	* tree-ssa-uninit.cc: Include "gcc-urlifier.h.
+ 	(maybe_warn_read_write_only): Use auto_urlify_attributes.
+ 	(maybe_warn_pass_by_reference): Likewise.
+ 
+ 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add -attribute-urlifier.o.
+ 	(ATTR_URLS_HTML_DEPS): New.
+ 	(regenerate-attr-urls): New.
+ 	(regenerate-attr-urls-unit-test): New.
+ 	* attr-urls.def: New file.
+ 	* attribs.cc: Include "gcc-urlifier.h".
+ 	(decl_attributes): Use auto_urlify_attributes.
+ 	* config/aarch64/aarch64.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/arc/arc.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/arm/arm.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/bfin/bfin.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/bpf/bpf.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/epiphany/epiphany.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/gcn/gcn.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/h8300/h8300.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/i386/i386.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/ia64/ia64.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/m32c/m32c.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/m32r/m32r.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/m68k/m68k.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/mcore/mcore.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/microblaze/microblaze.cc (TARGET_DOCUMENTATION_NAME):
+ 	New.
+ 	* config/mips/mips.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/msp430/msp430.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/nds32/nds32.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/nvptx/nvptx.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/riscv/riscv.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/rl78/rl78.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/rs6000/rs6000.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/rx/rx.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/s390/s390.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/sh/sh.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/stormy16/stormy16.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/v850/v850.cc (TARGET_DOCUMENTATION_NAME): New.
+ 	* config/visium/visium.cc (TARGET_DOCUMENTATION_NAME): New.
+ 
+ 2024-12-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt.urls: Rebuild.
+ 
+ 2024-12-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* common/config/avr/avr-common.cc
+ 	(avr_option_optimization_table): Default to -fno-optimize-crc.
+ 
+ 2024-12-06  kelefth  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/117816
+ 	* avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding):
+ 	Reject the transformation when having instructions that may
+ 	throw exceptions in the sequence.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-sm.def: Add '89'.
+ 	* config/nvptx/nvptx-gen.h: Regenerate.
+ 	* config/nvptx/nvptx-gen.opt: Likewise.
+ 	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
+ 	* config/nvptx/nvptx.opt (-march-map=sm_89, -march-map=sm_90)
+ 	(march-map=sm_90a): Likewise.
+ 	* config.gcc: Likewise.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_89'.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
+ 	'PTX_VERSION_7_8'.
+ 	* config/nvptx/nvptx.cc (ptx_version_to_string)
+ 	(ptx_version_to_number): Adjust.
+ 	* config/nvptx/nvptx.h (TARGET_PTX_7_8): New.
+ 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+ 	'7.8' for 'PTX_VERSION_7_8'.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.8'.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-sm.def: Add '52'.
+ 	* config/nvptx/nvptx-gen.h: Regenerate.
+ 	* config/nvptx/nvptx-gen.opt: Likewise.
+ 	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
+ 	* config/nvptx/nvptx.opt (-march-map=sm_52): Likewise.
+ 	* config.gcc: Likewise.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_52'.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-sm.def: Add '37'.
+ 	* config/nvptx/nvptx-gen.h: Regenerate.
+ 	* config/nvptx/nvptx-gen.opt: Likewise.
+ 	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
+ 	* config/nvptx/nvptx.opt (-march-map=sm_37, -march-map=sm_50):
+ 	Likewise.
+ 	* config.gcc: Likewise.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_37'.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
+ 	'PTX_VERSION_4_1'.
+ 	* config/nvptx/nvptx.cc (ptx_version_to_string)
+ 	(ptx_version_to_number): Adjust.
+ 	* config/nvptx/nvptx.h (TARGET_PTX_4_1): New.
+ 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+ 	'4.1' for 'PTX_VERSION_4_1'.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.1'.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx.h (TARGET_PTX_4_2): New.
+ 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+ 	'4.2' for 'PTX_VERSION_4_2'.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.2'.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-opts.h (enum ptx_version): Remove
+ 	'PTX_VERSION_3_0'.
+ 	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
+ 	(default_ptx_version_option, ptx_version_to_string)
+ 	(ptx_version_to_number): Adjust.
+ 	* config/nvptx/nvptx.h: Comment.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config.gcc: nvptx: Support '--with-multilib-list'.
+ 	* config/nvptx/gen-multilib-matches.sh: Adjust.
+ 	* configure.ac: Likewise.
+ 	* configure: Regenerate.
+ 	* doc/install.texi: Update.
+ 	* doc/invoke.texi: Align.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2024-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimplify.cc (gimplify_init_ctor_eval): Use RAW_DATA_UCHAR_ELT
+ 	macro.
+ 	* gimple-fold.cc (fold_array_ctor_reference): Likewise.
+ 	* tree-pretty-print.cc (dump_generic_node): Use RAW_DATA_UCHAR_ELT
+ 	and RAW_DATA_SCHAR_ELT macros.
+ 	* fold-const.cc (fold): Use RAW_DATA_UCHAR_ELT macro.
+ 
+ 2024-12-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd: Remove redundant :c, reported by genmatch as
+ 	duplicate patterns.
+ 
+ 2024-12-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd (.SAT_ADD patterns using IFN_ADD_OVERFLOW): Remove :c that
+ 	only causes duplicate patterns.
+ 
+ 2024-12-06  Hau Hsu  <hau.hsu@sifive.com>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config.gcc (riscv*-*-*): Add support for --with-cmodel configure option.
+ 	(all_defaults): Add cmodel.
+ 	* config/riscv/riscv.h (TARGET_DEFAULT_CMODEL): Remove.
+ 	* doc/install.texi: Document --with-cmodel configure option.
+ 	* doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/gen-multilib-matches.sh: Support '--selftest'.
+ 	* config/nvptx/t-nvptx (t-nvptx-gen-multilib-matches:): Invoke it.
+ 	* config/nvptx/gen-multilib-matches-tests: New.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/gen-h.sh: Don't pass in '$1'; compute it locally.
+ 	* config/nvptx/gen-multilib-matches.sh: Likewise.
+ 	* config/nvptx/gen-omp-device-properties.sh: Likewise.
+ 	* config/nvptx/gen-opt.sh: Likewise.
+ 	* config/nvptx/t-nvptx (s-nvptx-gen-h:, s-nvptx-gen-opt:)
+ 	(t-nvptx-gen-multilib-matches:): Adjust.
+ 	* config/nvptx/t-omp-device (omp-device-properties-nvptx):
+ 	Likewise.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/gen-multilib-matches.sh: Encapsulate main logic.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/t-nvptx (multilib_matches): Don't use the 'shell'
+ 	function of 'make'.
+ 	* config/nvptx/gen-multilib-matches.sh: Adjust.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/117916
+ 	* config/nvptx/nvptx.opt (misa=, mptx=): Tag as 'Negative' of
+ 	themselves.
+ 
+ 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR testsuite/82250
+ 	* gimple-fold.cc (gimple_fold_builtin_acc_on_device): Revert last
+ 	change.
+ 
+ 2024-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree.h (RAW_DATA_UCHAR_ELT, RAW_DATA_SCHAR_ELT): Define.
+ 
+ 2024-12-06  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/106329
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svac_impl::fold): Add folding if pfalse predicate.
+ 	(svadda_impl::fold): Likewise.
+ 	(class svaddv_impl): Likewise.
+ 	(class svandv_impl): Likewise.
+ 	(svclast_impl::fold): Likewise.
+ 	(svcmp_impl::fold): Likewise.
+ 	(svcmp_wide_impl::fold): Likewise.
+ 	(svcmpuo_impl::fold): Likewise.
+ 	(svcntp_impl::fold): Likewise.
+ 	(class svcompact_impl): Likewise.
+ 	(class svcvtnt_impl): Likewise.
+ 	(class sveorv_impl): Likewise.
+ 	(class svminv_impl): Likewise.
+ 	(class svmaxnmv_impl): Likewise.
+ 	(class svmaxv_impl): Likewise.
+ 	(class svminnmv_impl): Likewise.
+ 	(class svorv_impl): Likewise.
+ 	(svpfirst_svpnext_impl::fold): Likewise.
+ 	(svptest_impl::fold): Likewise.
+ 	(class svsplice_impl): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(class svcvtxnt_impl): Likewise.
+ 	(svmatch_svnmatch_impl::fold): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(is_pfalse): Return true if tree is pfalse.
+ 	(gimple_folder::fold_pfalse): Fold calls with pfalse predicate.
+ 	(gimple_folder::fold_call_to): Fold call to lhs = t for given tree t.
+ 	(gimple_folder::fold_to_stmt_vops): Helper function that folds the
+ 	call to given stmt and adjusts virtual operands.
+ 	(gimple_folder::fold): Call fold_pfalse.
+ 	* config/aarch64/aarch64-sve-builtins.h (is_pfalse): Declare is_pfalse.
+ 
+ 2024-12-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/117922
+ 	* timevar.def (TV_FOLD_MEM_OFFSETS): New.
+ 	* fold-mem-offsets.cc (pass_data_fold_mem): Use TV_FOLD_MEM_OFFSETS.
+ 
+ 2024-12-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/117860
+ 	* config/i386/i386.cc (ix86_canonicalize_comparison): Swap
+ 	operands of GTU comparison to canonicalize addcarry/subborrow
+ 	comparison.
+ 	(ix86_cc_mode): Return CCCmode for the comparison of
+ 	addcarry/subborrow pattern.
+ 	* config/i386/i386.md (addcarry<mode>): Swap operands of
+ 	PLUS RTX to make it canonical.
+ 	(*addcarry<mode>_1): Ditto.
+ 	(addcarry peephole2s): Update RTXes for addcarry<mode>_1 change.
+ 	(*add<dwi>3_doubleword_cc_overflow_1): Ditto.
+ 	(*subborrow<mode>_1): New insn pattern.
+ 
+ 2024-12-05  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/mmintrin.h: Raise an error if this header is used.
+ 	Remove other content.
+ 
+ 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def
+ 	(ENTRY_TERNARY_VLUT8): Use FLAG_QUIET rather than FLAG_DEFAULT.
+ 	(ENTRY_TERNARY_VLUT16): Likewise.
+ 
+ 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (FLAG_QUIET): Redefine to 0,
+ 	replacing the old flag with...
+ 	(FLAG_AUTO_FP): ...this.
+ 	(FLAG_DEFAULT): Redefine to FLAG_AUTO_FP.
+ 	(aarch64_call_properties): Update accordingly.
+ 
+ 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (FLAG_NONE): Rename to...
+ 	(FLAG_DEFAULT): ...this and update all references.
+ 	* config/aarch64/aarch64-simd-builtins.def: Update all references
+ 	here too.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Likewise.
+ 
+ 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (FLAG_AUTO_FP): Rename to...
+ 	(FLAG_QUIET): ...this and update all references.
+ 	* config/aarch64/aarch64-simd-builtins.def: Update all references
+ 	here too.
+ 
+ 2024-12-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor sorts of unsigned SAT_TRUNC match patterns.
+ 
+ 2024-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117801
+ 	* tree-outof-ssa.cc (ssa_is_replaceable_p): Make
+ 	direct internal function calls replaceable.
+ 	* expr.cc (get_def_for_expr): Handle replacements with calls.
+ 	(get_def_for_expr_class): Likewise.
+ 	(optimize_bitfield_assignment_op): Likewise.
+ 	(expand_expr_real_1): Likewise.  Properly expand direct
+ 	internal function defs.
+ 	* cfgexpand.cc (expand_call_stmt): Handle replacements with calls.
+ 	(avoid_deep_ter_for_debug): Likewise, always create a debug temp
+ 	for calls.
+ 	(expand_debug_expr): Likewise, give up for calls.
+ 	(expand_gimple_basic_block): Likewise.
+ 	* ccmp.cc (ccmp_candidate_p): Likewise.
+ 	(get_compare_parts): Likewise.
+ 
+ 2024-12-05  Arvin Zhong  <Arvin.Zhong@armchina.com>
+ 
+ 	* config/arm/arm-cpus.in (star-mc1): Add CDE options.
+ 	* doc/invoke.texi (cdecp options): Document for star-mc1.
+ 
+ 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/113994
+ 	PR rtl-optimization/116799
+ 	* loop-doloop.cc: Include targhooks.h.
+ 	(doloop_optimize): Also punt on intersection of modified
+ 	with df_get_live_in (desc->out_edge->dest).
+ 	(doloop_optimize_loops): Call df_analyze.  Use
+ 	LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as
+ 	second loops_list argument.
+ 
+ 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107980
+ 	* ginclude/stdarg.h (va_start): For C23+ change parameters from
+ 	v, ... to just ... and define to __builtin_c23_va_start(__VA_ARGS__)
+ 	rather than __builtin_va_start(v, 0).
+ 
+ 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/107957
+ 	* config/avr/avr-passes-fuse-move.h (bbinfo_t) <try_mem0_p>:
+ 	Add static property.
+ 	* config/avr/avr-passes.cc (bbinfo_t::try_mem0_p): Define it.
+ 	(optimize_data_t::try_mem0): New method.
+ 	(bbinfo_t::optimize_one_block) [bbinfo_t::try_mem0_p]: Run try_mem0.
+ 	(bbinfo_t::optimize_one_function): Set bbinfo_t::try_mem0_p.
+ 	* config/avr/avr.md (pushhi1_insn): Also allow zero as source.
+ 	(define_split) [avropt_split_ldst]: Only run avr_split_ldst()
+ 	when avr-fuse-move has been run at least once.
+ 	* doc/invoke.texi (AVR Options) <-msplit-ldst>: Document it.
+ 
+ 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/107957
+ 	* config/avr/avr.opt (-msplit-ldst, avropt_split_ldst):
+ 	New option and associated var.
+ 	* common/config/avr/avr-common.cc (avr_option_optimization_table)
+ 	[OPT_LEVELS_2_PLUS]: Turn on -msplit_ldst.
+ 	* config/avr/avr-passes.cc (splittable_address_p)
+ 	(avr_byte_maybe_mem, avr_split_ldst): New functions.
+ 	* config/avr/avr-protos.h (avr_split_ldst): New proto.
+ 	* config/avr/avr.md (define_split) [avropt_split_ldst]: Run
+ 	avr_split_ldst().
+ 
+ 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/64242
+ 	* config/avr/avr.md (nonlocal_goto): Don't restore
+ 	hard_frame_pointer_rtx directly, but copy it to local
+ 	register, and only set hard_frame_pointer_rtx from it
+ 	after emit_stack_restore().
+ 
+ 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (avr_out_add_msb): New proto.
+ 	* config/avr/avr.cc (avr_out_add_msb): New function.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_ADD_GE0,
+ 	ADJUST_LEN_ADD_LT0]: Handle cases.
+ 	* config/avr/avr.md (adjust_len) <add_lt0, add_ge0>: New attr values.
+ 	(QISI2): New mode iterator.
+ 	(C_MSB): New mode_attr.
+ 	(*add<mode>3...msb_split, *add<mode>3.ge0, *add<mode>3.lt0)
+ 	(*sub<mode>3...msb_split, *sub<mode>3.ge0, *sub<mode>3.lt0): New
+ 	patterns replacing old ones, but with iterators and
+ 	using avr_out_add_msb() for asm out.
+ 
+ 2024-12-05  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* doc/invoke.texi: Add store-forwarding-max-distance.
+ 
+ 2024-12-05  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* params.opt: Add missing '=' after -param=cycle-accurate-model.
+ 
+ 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/41045
+ 	* output.h (insn_noperands): Declare.
+ 	* final.cc (insn_noperands): No longer static.
+ 	* varasm.cc (assemble_asm): Handle ASM_EXPR.
+ 	* lto-streamer-out.cc (lto_output_toplevel_asms): Add sorry_at
+ 	for non-STRING_CST toplevel asm for now.
+ 	* doc/extend.texi (Basic @code{asm}, Extended @code{asm}): Document
+ 	that extended asm is now allowed outside of functions with certain
+ 	restrictions.
+ 
+ 2024-12-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(vsetvl_def::get_name): Adjust return type.
+ 	(loadstore_def::get_name): Ditto.
+ 	(indexed_loadstore_def::get_name): Ditto.
+ 	(th_loadstore_width_def::get_name): Ditto.
+ 	(th_indexed_loadstore_width_def::get_name): Ditto.
+ 	(alu_def::get_name): Ditto.
+ 	(alu_frm_def::get_name): Ditto.
+ 	(widen_alu_frm_def::get_name): Ditto.
+ 	(narrow_alu_frm_def::get_name): Ditto.
+ 	(reduc_alu_frm_def::get_name): Ditto.
+ 	(widen_alu_def::get_name): Ditto.
+ 	(no_mask_policy_def::get_name): Ditto.
+ 	(return_mask_def::get_name): Ditto.
+ 	(narrow_alu_def::get_name): Ditto.
+ 	(move_def::get_name): Ditto.
+ 	(mask_alu_def::get_name): Ditto.
+ 	(reduc_alu_def::get_name): Ditto.
+ 	(th_extract_def::get_name): Ditto.
+ 	(scalar_move_def::get_name): Ditto.
+ 	(vundefined_def::get_name): Ditto.
+ 	(misc_def::get_name): Ditto.
+ 	(vset_def::get_name): Ditto.
+ 	(vcreate_def: Ditto.::get_name): Ditto.
+ 	(read_vl_def::get_name): Ditto.
+ 	(fault_load_def::get_name): Ditto.
+ 	(vlenb_def::get_name): Ditto.
+ 	(seg_loadstore_def::get_name): Ditto.
+ 	(seg_indexed_loadstore_def::get_name): Ditto.
+ 	(seg_fault_load_def::get_name): Ditto.
+ 	(crypto_vv_def::get_name): Ditto.
+ 	(crypto_vi_def::get_name): Ditto.
+ 	(crypto_vv_no_op_type_def::get_name): Ditto.
+ 	(sf_vqmacc_def::get_name): Ditto.
+ 	(sf_vqmacc_def::get_name): Ditto.
+ 	(sf_vfnrclip_def::get_name): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_builder::add_unique_function): Adjust the type for the
+ 	function name holder.
+ 	(function_builder::add_overloaded_function): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add
+ 	const to the return type.
+ 
+ 2024-12-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/topics/execution-paths.rst: Add '§' before
+ 	references to section of SARIF spec.
+ 	* doc/libgdiagnostics/topics/fix-it-hints.rst: Likewise.
+ 	* doc/libgdiagnostics/tutorial/01-hello-world.rst: Fix typo.
+ 	* doc/libgdiagnostics/tutorial/02-physical-locations.rst: Likewise.
+ 	* doc/libgdiagnostics/tutorial/04-notes.rst: Likewise.
+ 	* doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: Add link to
+ 	diagnostic_add_fix_it_hint_replace.
+ 	* doc/libgdiagnostics/tutorial/07-execution-paths.rst: Add '§'.
+ 
+ 2024-12-04  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* haifa-sched.cc (model_choose_insn): Dump unscheduled_preds.
+ 	(model_dump_pressure_summary): Dump bb->index.
+ 	(model_start_schedule): Pass bb.
+ 	* sched-rgn.cc (debug_dependencies): Dump SD_LIST_HARD_BACK deps.
+ 
+ 2024-12-04  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/11472
+ 	* params.opt (--param=cycle-accurate-model=): New opt.
+ 	* doc/invoke.texi (cycle-accurate-model): Document.
+ 	* haifa-sched.cc (model_excess_group_cost): Return negative
+ 	delta if param_cycle_accurate_model is 0.
+ 	(model_excess_cost): Ceil negative baseECC to 0 only if
+ 	param_cycle_accurate_model is 1.
+ 	Dump the actual ECC value.
+ 	* config/riscv/riscv.cc (riscv_option_override): Set param
+ 	to 0.
+ 
+ 2024-12-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/84211
+ 	* config/avr/avr-passes.cc (insninfo_t) <m_insn>: Preset to 0.
+ 	(run_find_plies) [hamm=0, dump_file]: Don't print INSN_UID
+ 	for a null m_insn.
+ 
+ 2024-12-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR translation/90160
+ 	* config/arm/arm.cc (arm_option_check_internal): Use quotes in
+ 	messages that refer to command-line options.  Tweak wording.
+ 
+ 2024-12-04  Andreas Schwab  <schwab@suse.de>
+ 
+ 	PR bootstrap/117893
+ 	* configure.ac: Use shell loop to remove -O flags.
+ 	* configure: Regenerate.
+ 
+ 2024-12-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116083
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Compute vector
+ 	type and max_nunits only once.  Remove check for matching
+ 	vector type of each lane and replace it with matching check
+ 	for LHS type.
+ 
+ 2024-12-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/117878
+ 	* config/riscv/riscv-v.cc (vlmax_avl_type_p): Add assert for
+ 	out of range access.
+ 	(nonvlmax_avl_type_p): Ditto.
+ 
+ 2024-12-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117243
+ 	PR tree-optimization/116749
+ 	* tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Reset loop
+ 	estimates if the cond_block was an exit to a loop.
+ 
+ 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_insn_location): New variable.
+ 	(avr_final_prescan_insn): Set avr_insn_location.
+ 	(avr_asm_final_postscan_insn): Unset avr_insn_location after last insn.
+ 	(avr_print_operand): Pass avr_insn_location to warning_at.
+ 
+ 2024-12-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/conf.py: Remove "author".  Change
+ 	"copyright" field to the FSF.
+ 
+ 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117726
+ 	* config/avr/avr-passes.cc (avr_split_shift_p)
+ 	[ASHIFT, LSHIFTRT]: Allow offsets of bitsize - 1.
+ 	(avr_split_shift4) [ASHIFT, LSHIFTRT]: Also split offset 31.
+ 	(avr_split_shift3) [ASHIFT, LSHIFTRT]: Also split offset 23.
+ 	(avr_split_shift2) [ASHIFT, LSHIFTRT]: Also split offset 15.
+ 
+ 2024-12-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117874
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Perform early
+ 	reassoc checks before eating into discovery limit.
+ 
+ 2024-12-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117874
+ 	* tree-vectorizer.h (vec_info_shared::n_stmts): Remove.
+ 	(LOOP_VINFO_N_STMTS): Likewise.
+ 	* tree-vectorizer.cc (vec_info_shared::vec_info_shared): Adjust.
+ 	* tree-vect-loop.cc (vect_get_datarefs_in_loop): Do not
+ 	count stmts.
+ 	(vect_analyze_loop_2): Adjust.  Pass stmt_vec_info.length ()
+ 	to vect_analyze_slp as SLP tree size limit.
+ 
+ 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117726
+ 	* config/avr/avr-passes.cc (avr_emit_shift): All 8-bit shifts with
+ 	an offset of 6 have 3-operand alternatives.
+ 	* config/avr/avr.cc (ashlqi3_out, lshrqi3_out) [case 6]:
+ 	Implement as 3-operand insn.
+ 	(avr_rtx_costs_1) [QImode, ASHIFT + LSHIFTRT]: Adjust
+ 	costs for offset of 6.
+ 	* config/avr/avr.md (*ashlqi3_split, *ashlqi3)
+ 	(*lshrqi3_split, *lshrqi3): Add "r,r,C06" alternative.
+ 
+ 2024-12-03  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def: (fp8): fix FEATURE_STRING.
+ 	(fp8fma, ssve-fp8fma): Likewise.
+ 	(fp8dot4, ssve-fp8dot4, fp8dot2, ssve-fp8dot2): Likewise.
+ 
+ 2024-12-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117420
+ 	* tree-ssanames.h (get_known_nonzero_bits): Declare.
+ 	* tree-ssanames.cc (get_nonzero_bits): New wrapper function.  Move old
+ 	definition to ...
+ 	(get_nonzero_bits_1): ... here, add static.  Change widest_int in
+ 	function comment to wide_int.
+ 	(get_known_nonzero_bits_1, get_known_nonzero_bits): New functions.
+ 	* match.pd (with_possible_nonzero_bits2): Rename to ...
+ 	(with_possible_nonzero_bits): ... this.  Guard the bit_and case with
+ 	#if GENERIC.  Change to a normal match predicate without parameters.
+ 	Rename the old with_possible_nonzero_bits match to ...
+ 	(with_possible_nonzero_bits_1): ... this.
+ 	(with_certain_nonzero_bits2): Remove.
+ 	(with_known_nonzero_bits_1, with_known_nonzero_bits): New match
+ 	predicates.
+ 	(X == C (or X & Z == Y | C) is impossible if ~nonzero(X) & C != 0):
+ 	Use with_known_nonzero_bits@0 instead of
+ 	(with_certain_nonzero_bits2 @1), use with_possible_nonzero_bits@0
+ 	instead of (with_possible_nonzero_bits2 @0) and
+ 	get_known_nonzero_bits (@1) instead of wi::to_wide (@1).
+ 
+ 2024-12-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117847
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint) <case LROTATE_EXPR>:
+ 	Use m = (p - n) % p instead of m = p - n for the other shift count.
+ 
+ 2024-12-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* cgraphunit.cc (varpool_node::finalize_decl): Set alignment
+ 	based on OpenMP's 'omp allocate' attribute/directive.
+ 
+ 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Add a flags
+ 	field to each entry.
+ 	* config/aarch64/aarch64-builtins.cc: Update includes accordingly.
+ 	(aarch64_pragma_builtins_data): Add a flags field.
+ 	(aarch64_init_pragma_builtins): Use the flags field to add attributes
+ 	to the function declaration.
+ 
+ 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_builtin_signatures): Add binary_lane.
+ 	(aarch64_fntype): Handle it.
+ 	(simd_types): Add 16-bit x2 types.
+ 	(aarch64_pragma_builtins_checker): New class.
+ 	(aarch64_general_check_builtin_call): Use it.
+ 	(aarch64_expand_pragma_builtin): Add support for lut unspecs.
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(AARCH64_OPT_EXTENSION): Add lut option.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def
+ 	(ENTRY_BINARY_LANE): Modify to use new ENTRY macro.
+ 	(ENTRY_TERNARY_VLUT8): Macro to declare lut intrinsics.
+ 	(ENTRY_TERNARY_VLUT16): Macro to declare lut intrinsics.
+ 	(REQUIRED_EXTENSIONS): Declare lut intrinsics.
+ 	* config/aarch64/aarch64-simd.md
+ 	(@aarch64_<vluti_uns_op><VLUT:mode><VB:mode>): Instruction
+ 	pattern for luti2 and luti4 intrinsics.
+ 	(@aarch64_lutx2<VLUT:mode><VB:mode>): Instruction pattern for
+ 	luti4x2 intrinsics.
+ 	* config/aarch64/aarch64.h
+ 	(TARGET_LUT): lut flag.
+ 	* config/aarch64/iterators.md: Iterators and attributes for lut.
+ 	* doc/invoke.texi: Document extension in AArch64 Options.
+ 
+ 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(ENTRY): Modify to add support of return and argument types.
+ 	(struct simd_type): New struct to declare types using mode and
+ 	qualifiers.
+ 	(struct aarch64_pragma_builtins_data): Replace mode with
+ 	the array of types to support return and argument types.
+ 	(aarch64_fntype): Modify to handle different signatures.
+ 	(aarch64_expand_pragma_builtin): Modify to handle different
+ 	signatures.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def
+ 	(ENTRY_VHSDF): Rename to ENTRY_BINARY_VHSDF.
+ 	(ENTRY_BINARY): New macro to declare binary intrinsics.
+ 	(ENTRY_BINARY_VHSDF): Remove signature argument and use
+ 	ENTRY_BINARY.
+ 
+ 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md: Reorder some declarations,
+ 	putting them under the associated heading comment.
+ 
+ 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_v64_mode): Declare.
+ 	(aarch64_vq_mode): Rename to...
+ 	(aarch64_v128_mode): ...this.
+ 	* config/aarch64/aarch64.cc (aarch64_v64_mode): New function,
+ 	split out from...
+ 	(aarch64_simd_container_mode): ...here.
+ 	(aarch64_vq_mode): Rename to...
+ 	(aarch64_v128_mode): ...this and update callers.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc: Likewise update calls.
+ 
+ 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (report_non_ice)
+ 	(report_out_of_range, report_neither_nor, report_not_one_of)
+ 	(report_not_enum): Move to...
+ 	* config/aarch64/aarch64.cc: ...here, putting them in the aarch64
+ 	namespace, and...
+ 	* config/aarch64/aarch64-protos.h: ...declare them here.
+ 
+ 2024-12-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor sorts of unsigned SAT_SUB match patterns.
+ 
+ 2024-12-03  Heiko Eißfeldt  <heiko@hexco.de>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114540
+ 	* varasm.cc (decode_reg_name_and_count): Use strtoul instead of atoi
+ 	and simplify verification that the whole asmspec contains just decimal
+ 	digits.
+ 
+ 2024-12-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117874
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): When non-SLP
+ 	analysis fails, try single-lane SLP.
+ 
+ 2024-12-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/tutorial/01-hello-world.rst: Update linker
+ 	command for renaming.
+ 
+ 2024-12-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* configure.ac: Add sym-exec subdirectory.
+ 
+ 2024-12-02  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* config/m68k/m68k.md (movdi+1, movdf+1, movxf+2): Split
+ 	constraints so that the operands cannot both be "o".
+ 
+ 2024-12-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/mingw/mingw-stdint.h: Add newline at the end of the file.
+ 	* config/mingw/winnt-dll.cc: Likewise.
+ 	* sym-exec/sym-exec-expression.h: Likewise.
+ 	* sym-exec/sym-exec-expression.cc: Likewise.
+ 	* sym-exec/sym-exec-condition.cc: Likewise.
+ 	* sym-exec/sym-exec-expr-is-a-helper.h: Likewise.
+ 	* sym-exec/sym-exec-condition.h: Likewise.
+ 	* hwint.cc: Likewise.
+ 	* crc-verification.cc: Likewise.
+ 	* sarif-spec-urls.def: Likewise.
+ 
+ 2024-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm_mve.h: Add Runtime Library Exception.
+ 	* config/arm/arm_mve_types.h: Likewise.
+ 
+ 2024-12-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116352
+ 	PR tree-optimization/117876
+ 	* tree-vect-slp.cc (vect_slp_can_convert_to_external): New.
+ 	(vect_slp_convert_to_external): Call it.
+ 	(vect_build_slp_tree_2): Likewise.
+ 
+ 2024-12-02  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/generic-vector-ooo.md: New reservation.
+ 	* config/riscv/genrvv-type-indexer.cc (main): New type.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (enum frm_op_type): Delete it.
+ 	* config/riscv/riscv-vector-builtins-bases.h (enum frm_op_type): Redefine in h file.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vfnrclip_def): New function.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE_INDEX): New builtins def.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New base def.
+ 	(signed_eew8_index): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): New extension.
+ 	(required_ext_to_isa_name): Ditto.
+ 	(required_extensions_specified): Ditto.
+ 	(struct function_group_info): Ditto.
+ 	* config/riscv/riscv.md: New attr.
+ 	* config/riscv/sifive-vector-builtins-bases.cc (class sf_vfnrclip_x_f_qf): New function.
+ 	(class sf_vfnrclip_xu_f_qf): Ditto.
+ 	(BASE): New base_name.
+ 	* config/riscv/sifive-vector-builtins-bases.h: New function_base.
+ 	* config/riscv/sifive-vector-builtins-functions.def
+ 	(REQUIRED_EXTENSIONS): New intrinsics def.
+ 	(sf_vfnrclip_x_f_qf): Ditto.
+ 	(sf_vfnrclip_xu_f_qf): Ditto.
+ 	* config/riscv/sifive-vector.md (@pred_sf_vfnrclip<v_su><mode>_x_f_qf): New RTL mode.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 
+ 2024-12-02  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* config/riscv/riscv.cc (fli_value_hf, fli_value_sf)
+ 	(fli_value_df): Use integer constants.  Constify.
+ 	(riscv_float_const_rtx_index_for_fli): Add const.
+ 
+ 2024-12-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-features.cc (pass_apx_nf_convert): Change
+ 	pass_rpad to pass_apx_nf_convert in comments.
+ 
+ 2024-12-01  Slava Barinov  <v.barinov@samsung.com>
+ 
+ 	* configure.ac: Only remove -O[0-9] if not preceded with comma
+ 	* configure: Regenerated
+ 
+ 2024-12-01  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
+ 
+ 	* tree-ssa-phiopt.cc (rhs_is_fed_for_value_replacement): Add a new
+ 	optimization opportunity for BIT_IOR_EXPR and a != b.
+ 	(operand_equal_for_value_replacement): Ditto.
+ 
+ 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* gimple-crc-optimization.cc (optimize_crc_loop): New function.
+ 	(execute): Add optimize_crc_loop function call.
+ 
+ 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* Makefile.in (OBJS): Add crc-verification.o.
+ 	* crc-verification.cc: New file.
+ 	* crc-verification.h: New file.
+ 	* gimple-crc-optimization.cc (loop_calculates_crc): New function.
+ 	(is_output_crc): Likewise.
+ 	(swap_crc_and_data_if_needed): Likewise.
+ 	(validate_crc_and_data): Likewise.
+ 	(optimize_crc_loop): Likewise.
+ 	(get_output_phi): Likewise.
+ 	(execute): Add check whether potential CRC loop calculates CRC.
+ 	* sym-exec/sym-exec-state.cc (create_reversed_lfsr): New function.
+ 	(create_forward_lfsr): Likewise.
+ 	(last_set_bit): Likewise.
+ 	(create_lfsr): Likewise.
+ 	* sym-exec/sym-exec-state.h (is_bit_vector): Reorder, make the function public and static.
+ 	(create_reversed_lfsr) New static function declaration.
+ 	(create_forward_lfsr) New static function declaration.
+ 
+ 2024-12-01  Matevos Mehrabyan  <matevosmehrabyan@gmail.com>
+ 
+ 	* Makefile.in (OBJS): Add sym-exec/sym-exec-expression.o,
+ 	sym-exec/sym-exec-state.o, sym-exec/sym-exec-condition.o.
+ 	* configure (sym-exec): New subdir.
+ 	* sym-exec/sym-exec-condition.cc: New file.
+ 	* sym-exec/sym-exec-condition.h: New file.
+ 	* sym-exec/sym-exec-expr-is-a-helper.h: New file.
+ 	* sym-exec/sym-exec-expression.cc: New file.
+ 	* sym-exec/sym-exec-expression.h: New file.
+ 	* sym-exec/sym-exec-state.cc: New file.
+ 	* sym-exec/sym-exec-state.h: New file.
+ 	Co-authored-by: Mariam Arutunian <mariamarutunian@gmail.com>
+ 
+ 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* Makefile.in (OBJS): Add gimple-crc-optimization.o.
+ 	* common.opt (foptimize-crc): New option.
+ 	* common.opt.urls: Regenerate to add foptimize-crc.
+ 	* doc/invoke.texi (-foptimize-crc): Add documentation.
+ 	* gimple-crc-optimization.cc: New file.
+ 	* opts.cc (default_options_table): Add OPT_foptimize_crc.
+ 	(enable_fdo_optimizations): Enable optimize_crc.
+ 	* passes.def (pass_crc_optimization): Add new pass.
+ 	* timevar.def (TV_GIMPLE_CRC_OPTIMIZATION): New timevar.
+ 	* tree-pass.h (make_pass_crc_optimization): New extern function
+ 	declaration.
+ 
+ 2024-12-01  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* configure.ac (HAVE_GAS_CV_UCOMP): New check.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* dwarf2codeview.cc (enum binary_annotation_opcode): Define.
+ 	(struct codeview_function): Add htab_next and inline_loc;
+ 	(struct cv_func_hasher): Define.
+ 	(cv_func_htab): New global variable.
+ 	(new_codeview_function): Add new codeview_function to hash table.
+ 	(codeview_begin_block): Record location of inline block.
+ 	(codeview_end_block): Add dummy source line at end of inline block.
+ 	(find_line_function): New function.
+ 	(write_binary_annotations): New function.
+ 	(write_s_inlinesite): Call write_binary_annotations.
+ 	(codeview_debug_finish): Delete cv_func_htab.
+ 
+ 2024-12-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117859
+ 	* tree-ssa-sccvn.cc (insert_predicates_for_cond): If the
+ 	valueization for the new lhs for `lhs != 0`
+ 	is the same as the old ones, don't recurse.
+ 
+ 2024-12-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-loop-im.cc (move_computations_worker): While moving
+ 	phi, reuse the lhs of the conditional if it is a boolean type.
+ 
+ 2024-12-01  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR rtl-optimization/112398
+ 	PR rtl-optimization/117476
+ 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
+ 	Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
+ 	when X doesn't have any non-zero bits outside of SUBREG mode.
+ 
+ 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* diagnostic-show-locus.cc
+ 	(test_one_liner_fixit_validation_adhoc_locations): Adapt so it can
+ 	effectively test 7-bit ranges instead of 5-bit ranges.
+ 	(test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise.
+ 	* input.cc (get_end_location): Adjust types to support 64-bit
+ 	location_t.
+ 	(write_digit_row): Likewise.
+ 	(dump_location_range): Likewise.
+ 	(dump_location_info): Likewise.
+ 	(class line_table_case): Likewise.
+ 	(test_accessing_ordinary_linemaps): Replace some hard-coded
+ 	constants with the values defined in line-map.h.
+ 	(for_each_line_table_case): Likewise.
+ 
+ 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* toplev.cc (general_init): Replace hard-coded constant with
+ 	line_map_suggested_range_bits.
+ 
+ 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_resolve_overloaded_builtin):
+ 	Change "unsigned int" argument to "location_t".
+ 	* config/avr/avr-c.cc (avr_resolve_overloaded_builtin): Likewise.
+ 	* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Likewise.
+ 	* target.def: Likewise.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2024-11-30  Joseph Myers  <josmyers@redhat.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/100501
+ 	PR c/100792
+ 	* gimplify.cc (gimplify_asm_expr): Handle void expressions for
+ 	memory inputs like other non-lvalues.
+ 
+ 2024-11-30  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_INLINESITE and
+ 	S_INLINESITE_END.
+ 	(get_func_id): Add declaration.
+ 	(write_s_inlinesite): New function.
+ 	(write_inlinesite_records): New function.
+ 	(write_function): Call write_inlinesite_records.
+ 
+ 2024-11-30  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (DEBUG_S_INLINEELINES): Define.
+ 	(CV_INLINEE_SOURCE_LINE_SIGNATURE): Define.
+ 	(struct codeview_inlinee_lines): Define.
+ 	(struct inlinee_lines_hasher): Define.
+ 	(func_htab, inlinee_lines_htab): New global variables.
+ 	(get_file_id): New function.
+ 	(codeview_source_line): Move file_id logic to get_file_id.
+ 	(write_inlinee_lines_entry): New function.
+ 	(write_inlinee_lines): New function.
+ 	(codeview_debug_finish): Call write_inlinee_lines, and free func_htab
+ 	and inlinee_lines_htab.
+ 	(get_func_id): New function.
+ 	(add_function): Move func_id logic to get_func_id.
+ 	(codeview_abstract_function): New function.
+ 	* dwarf2codeview.h (codeview_abstract_function): Add declaration.
+ 	* dwarf2out.cc (dwarf2out_abstract_function): Call
+ 	codeview_abstract_function if outputting CodeView debug info.
+ 
+ 2024-11-30  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_function): Add parent and
+ 	inline_block fields.
+ 	(cur_func): New global variable.
+ 	(new_codeview_function): New function.
+ 	(codeview_source_line): Call new_codeview_function, and use cur_func
+ 	instead of last_func.
+ 	(codeview_begin_block): New function.
+ 	(codeview_end_block): New function.
+ 	(write_line_numbers): No longer free data as we go along.
+ 	(codeview_switch_text_section): Call new_codeview_function, and use
+ 	cur_func instead of last_func.
+ 	(codeview_end_epilogue): Use cur_func instead of last_func.
+ 	(codeview_debug_finish): Free funcs list and its contents.
+ 	* dwarf2codeview.h (codeview_begin_block): Add declaration.
+ 	(codeview_end_block): Add declaration.
+ 	* dwarf2out.cc (dwarf2out_begin_block): Call codeview_begin_block if
+ 	outputting CodeView debug info.
+ 	(dwarf2out_end_block): Call codeview_end_block if outputting CodeView
+ 	debug info.
+ 
+ 2024-11-30  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* debug.cc (do_nothing_debug_hooks): Change begin_block
+ 	function pointer.
+ 	(debug_nothing_int_int_tree): New function.
+ 	* debug.h (struct gcc_debug_hooks): Add tree parameter to begin_block.
+ 	(debug_nothing_int_int_tree): Add declaration.
+ 	* dwarf2out.cc (dwarf2out_begin_block): Add tree parameter.
+ 	(dwarf2_lineno_debug_hooks): Use new dummy function for begin_block.
+ 	* final.cc (final_scan_insn_1): Pass insn block through to
+ 	debug_hooks->begin_block.
+ 	* vmsdbgout.cc (vmsdbgout_begin_block): Add tree parameter.
+ 
+ 2024-11-30  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/84211
+ 	* config/avr/avr-passes.cc (try_split_any) [SET, MOVW]: Prefer
+ 	reg=reg move over reg=const when splitting a reg=reg insn.
+ 
+ 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117057
+ 	* tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Punt also
+ 	when byte_size is equal to offset or nchars.  Punt if offset is bigger
+ 	than INT_MAX.  Handle vector CONSTRUCTOR with some elements constant,
+ 	possibly followed by non-constant.
+ 
+ 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libgomp/117851
+ 	* lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument,
+ 	search for crtoffloadtableS.o rather than crtoffloadtable.o if
+ 	true.
+ 	(run_gcc): Add pie_or_shared variable.  If OPT_pie or OPT_shared or
+ 	OPT_static_pie is seen, set pie_or_shared to true, if OPT_no_pie is
+ 	seen, set pie_or_shared to false.  Pass it to find_crtoffloadtable.
+ 
+ 2024-11-30  Jinyang He  <hejinyang@loongson.cn>
+ 
+ 	* config/loongarch/constraints.md (Uuv6, Uuvx): Remove Uuv6,
+ 	add Uuvx as replicated vector const with unsigned range [0,umax].
+ 	* config/loongarch/lasx.md (xvsrl, xvsra, xvsll): Mask shift
+ 	offset by its unit bits.
+ 	* config/loongarch/lsx.md (vsrl, vsra, vsll): Likewise.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_const_vector_same_int_p): Set default for low and high.
+ 	* config/loongarch/predicates.md: Replace reg_or_vector_same_uimm6
+ 	_operand to reg_or_vector_same_uimm_operand.
+ 
+ 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/117360
+ 	* ext-dce.cc (ext_dce_process_sets): Use HOST_WIDE_INT_UC
+ 	macro instead of ULL suffixed constants.
+ 	(carry_backpropagate): Likewise.  Use HOST_WIDE_INT_1U instead of
+ 	1ULL.  Use GET_MODE_BITSIZE (smode) instead of
+ 	GET_MODE_BITSIZE (mode) and with that avoid having to use
+ 	known_lt instead of < or use .to_constant ().  Formatting fixes.
+ 	(case SIGN_EXTEND): Set mode to GET_MODE_INNER (GET_MODE (XEXP (x, 0)))
+ 	rather than GET_MODE (XEXP (x, 0)) and don't use GET_MODE_INNER (mode).
+ 	(ext_dce_process_uses): Use HOST_WIDE_INT_UC macro instead of ULL
+ 	suffixed constants.
+ 
+ 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (-Wdeprecated-variadic-comma-omission): Document.
+ 
+ 2024-11-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in: Rename "libdiagnostics" to "libgdiagnostics".
+ 	* configure.ac: Likewise.
+ 	* configure: Regenerate.
+ 	* doc/install.texi: Rename "libdiagnostics" to
+ 	"libgdiagnostics".
+ 	* doc/libdiagnostics/*: Rename to doc/libgdiagnostics, renaming
+ 	"libdiagnostics" to "libgdiagnostics" throughout.
+ 	* libdiagnostics++.h: Rename to...
+ 	* libgdiagnostics++.h: ...this, renaming "libdiagnostics" to
+ 	"libgdiagnostics" throughout.
+ 	* libdiagnostics.cc: Rename to...
+ 	* libgdiagnostics.cc: ...this, renaming "libdiagnostics" to
+ 	"libgdiagnostics" throughout.
+ 	* libdiagnostics.h: Rename to...
+ 	* libgdiagnostics.h: ...this, renaming "libdiagnostics" to
+ 	"libgdiagnostics" throughout.
+ 	* libdiagnostics.map: Rename to...
+ 	* libgdiagnostics.map: ...this, renaming "libdiagnostics" to
+ 	"libgdiagnostics" throughout.
+ 	* libsarifreplay.cc: Update for renaming of "libdiagnostics"
+ 	to "libgdiagnostics".
+ 	* libsarifreplay.h: Likewise.
+ 	* sarif-replay.cc: Likewise.
+ 	* doc/libgdiagnostics/Makefile: New file.
+ 	* doc/libgdiagnostics/conf.py: New file.
+ 	* doc/libgdiagnostics/index.rst: New file.
+ 	* doc/libgdiagnostics/make.bat: New file.
+ 	* doc/libgdiagnostics/topics/diagnostic-manager.rst: New file.
+ 	* doc/libgdiagnostics/topics/diagnostics.rst: New file.
+ 	* doc/libgdiagnostics/topics/execution-paths.rst: New file.
+ 	* doc/libgdiagnostics/topics/fix-it-hints.rst: New file.
+ 	* doc/libgdiagnostics/topics/index.rst: New file.
+ 	* doc/libgdiagnostics/topics/logical-locations.rst: New file.
+ 	* doc/libgdiagnostics/topics/message-formatting.rst: New file.
+ 	* doc/libgdiagnostics/topics/metadata.rst: New file.
+ 	* doc/libgdiagnostics/topics/physical-locations.rst: New file.
+ 	* doc/libgdiagnostics/topics/retrofitting.rst: New file.
+ 	* doc/libgdiagnostics/topics/sarif.rst: New file.
+ 	* doc/libgdiagnostics/topics/text-output.rst: New file.
+ 	* doc/libgdiagnostics/topics/ux.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/01-hello-world.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/02-physical-locations.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/03-logical-locations.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/04-notes.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/05-warnings.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/07-execution-paths.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/example-1.png: New file.
+ 	* doc/libgdiagnostics/tutorial/index.rst: New file.
+ 
+ 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-c.cc: Fix some coding rule nits and typos.
+ 	* config/avr/avr-passes.cc: Same
+ 	* config/avr/avr.h: Same.
+ 	* config/avr/avr.cc: Same.
+ 	(avr_function_arg_regno_p, avr_hard_regno_rename_ok)
+ 	(avr_epilogue_uses, extra_constraint_Q): Return bool instead of int.
+ 	* config/avr/avr-protos.h (avr_function_arg_regno_p)
+ 	(avr_hard_regno_rename_ok, avr_epilogue_uses)
+ 	(extra_constraint_Q): Return bool instead of int.
+ 
+ 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): Call
+ 	aarch64_get_attributes and update calls to aarch64_general_add_builtin.
+ 
+ 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_prefetch_builtin):
+ 	Updete call to aarch64_general_add_builtin in AARCH64_INIT_PREFETCH_BUILTIN.
+ 	Add new variable prefetch_attrs.
+ 
+ 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (VREINTERPRET_BUILTIN): Use
+ 	FLAG_NONE instead of FLAG_AUTO_FP.
+ 	(VGET_LOW_BUILTIN): Likewise.
+ 	(VGET_HIGH_BUILTIN): Likewise.
+ 
+ 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/117665
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_simd_builtin_functions):
+ 	Pass nothrow and leaf as attributes to aarch64_general_add_builtin for
+ 	__builtin_aarch64_im_lane_boundsi.
+ 
+ 2024-11-29  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/117770
+ 	* lra-lives.cc: Include ira-int.h.
+ 	(process_bb_lives): Check hard regs corresponding insn operands
+ 	for dying hard wired reg clobbers.
+ 
+ 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117681
+ 	* config/avr/avr.cc (TARGET_UNWIND_WORD_MODE): Define to...
+ 	(avr_unwind_word_mode): ...this new static function.
+ 
+ 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117726
+ 	* config/avr/avr-passes.cc (avr_shift_is_3op, avr_emit_shift):
+ 	Also handle 2-byte and 3-byte shifts.
+ 	(avr_split_shift4, avr_split_shift3, avr_split_shift2): New
+ 	local helper functions.
+ 	(avr_split_shift): Use them.
+ 	* config/avr/avr-passes.def (avr_pass_split_after_peephole2):
+ 	Adjust comments.
+ 	* config/avr/avr.cc (avr_out_ashlpsi3, avr_out_ashrpsi3)
+ 	(avr_out_lshrpsi3): Support offset 15.
+ 	(ashrhi3_out): Support offset 7 as 3-op.
+ 	(ashrsi3_out): Support offset 15.
+ 	(avr_rtx_costs_1): Adjust shift costs.
+ 	* config/avr/avr.md (2op): Remove attribute value and all such insn
+ 	alternatives.
+ 	(ashlhi3, *ashlhi3, *ashlhi3_const): Add 3-op alternatives like C2l.
+ 	(ashrhi3, *ashrhi3, *ashrhi3_const): Add 3-op alternatives like C2a.
+ 	(lshrhi3, *lshrhi3, *lshrhi3_const): Add 3-op alternatives like C2r.
+ 	(*ashlpsi3_split, *ashlpsi3): Add 3-op alternatives C15 and C3l.
+ 	(*ashrpsi3_split, *ashrpsi3): Add 3-op alternatives C15 and C3r.
+ 	(*lshrpsi3_split, *lshrpsi3): Add 3-op alternatives C15 and C3r.
+ 	(ashlsi3, *ashlsi3, *ashlsi3_const): Remove "2op" alternative.
+ 	(ashrsi3, *ashrsi3, *ashrsi3_const): Same.
+ 	(lshrsi3, *lshrsi3, *lshrsi3_const): Same.
+ 	(constr_split_suffix): Code attr morphed from constr_split_shift4.
+ 	* config/avr/constraints.md (C2a, C2r, C2l)
+ 	(C3a, C3r, C3l): New constraints.
+ 	* doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Adjust doc.
+ 
+ 2024-11-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/117814
+ 	* config/arm/arm.cc (arm_attempt_dlstp_transform): Use
+ 	reg_overlap_mentioned_p instead of rtx_equal_p to detect uses of
+ 	vctp_vpr_generated inside subregs.
+ 
+ 2024-11-29  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* expr.cc (gf2n_poly_long_div_quotient): New function.
+ 	* expr.h (gf2n_poly_long_div_quotient):  New function declaration.
+ 	* hwint.cc (reflect_hwi): New function.
+ 	* hwint.h (reflect_hwi): New function declaration.
+ 	* config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): New
+ 	expander for reversed CRC.
+ 	(crc<SUBX1:mode><SUBX:mode>4): New expander for bit-forward CRC.
+ 	* config/riscv/iterators.md (SUBX1, ANYI1): New iterators.
+ 	* config/riscv/riscv-protos.h (generate_reflecting_code_using_brev):
+ 	New function declaration.
+ 	(expand_crc_using_clmul): Likewise.
+ 	(expand_reversed_crc_using_clmul): Likewise.
+ 	* config/riscv/riscv.cc (generate_reflecting_code_using_brev): New
+ 	function.
+ 	(expand_crc_using_clmul): Likewise.
+ 	(expand_reversed_crc_using_clmul): Likewise.
+ 	* config/riscv/riscv.md (UNSPEC_CRC, UNSPEC_CRC_REV):  New unspecs.
+ 	* doc/sourcebuild.texi: Document new target selectors.
+ 
+ 2024-11-29  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config.gcc: Add new SiFive *.o files.
+ 	* config/riscv/generic-vector-ooo.md: New reservation.
+ 	* config/riscv/genrvv-type-indexer.cc (main): New type.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vqmacc_def): New function.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_QMACC_OPS): New macros type.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_QMACC_OPS): New builtins def.
+ 	(DEF_RVV_TYPE_INDEX): Ditto.
+ 	(DEF_RVV_FUNCTION): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New types def.
+ 	(4x8x4): New op type.
+ 	(2x8x2): Ditto.
+ 	(quad_emul_vector): New base type.
+ 	(quad_emul_signed_vector): Ditto.
+ 	(quad_emul_unsigned_vector): Ditto.
+ 	(quad_fixed_vector): Ditto.
+ 	(quad_fixed_signed_vector): Ditto.
+ 	(quad_fixed_unsigned_vector): Ditto.
+ 	(quad_lmul1_vector): Ditto.
+ 	(quad_lmul1_signed_vector): Ditto.
+ 	(quad_lmul1_unsigned_vector): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): New extensions.
+ 	(required_ext_to_isa_name): Ditto.
+ 	(required_extensions_specified): Ditto.
+ 	(struct function_group_info): Ditto.
+ 	* config/riscv/riscv.md: New attr.
+ 	* config/riscv/t-riscv: Add include for SiFive files.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md: New include for SiFive file.
+ 	* config/riscv/sifive-vector-builtins-bases.cc: New file.
+ 	* config/riscv/sifive-vector-builtins-bases.h: New file.
+ 	* config/riscv/sifive-vector-builtins-functions.def: New file.
+ 	* config/riscv/sifive-vector.md: New file.
+ 
+ 2024-11-29  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-errata.h (TARGET_SUPPRESS_OPT_SPEC,
+ 	TARGET_TURN_OFF_OPT_SPEC, CA53_ERR_835769_COMPILE_SPEC,
+ 	CA53_ERR_843419_COMPILE_SPEC): New.
+ 	(CA53_ERR_835769_SPEC, CA53_ERR_843419_SPEC): Use them.
+ 	* config/aarch64/aarch64-elf-raw.h (CC1_SPEC, CC1PLUS_SPEC): Add
+ 	AARCH64_ERRATA_COMPILE_SPEC.
+ 	* config/aarch64/aarch64-freebsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
+ 	* config/aarch64/aarch64-gnu.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
+ 	* config/aarch64/aarch64-linux.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
+ 	* config/aarch64/aarch64-netbsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(is_host_cpu_not_armv8_base): New.
+ 	* config/aarch64/driver-aarch64.cc: Remove extra newline
+ 	* config/aarch64/aarch64.h (is_host_cpu_not_armv8_base): New.
+ 	(MCPU_TO_MARCH_SPEC_FUNCTIONS): Add is_local_not_armv8_base.
+ 	(EXTRA_SPEC_FUNCTIONS): Add is_local_cpu_armv8_base.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2024-11-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md: In the section comments, add the
+ 	architecture requirements alongside some mnemonics.
+ 	* config/aarch64/aarch64-sve2.md: Likewise.
+ 
+ 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(fp8dot4, ssve-fp8dot4): Add new extensions.
+ 	(fp8dot2, ssve-fp8dot2): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdot_impl): Support fp8.
+ 	(svdotprod_lane_impl): Likewise.
+ 	(svdot_lane): Provide an unspec for fp8 types.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(ternary_mfloat8_def): Add new class.
+ 	(ternary_mfloat8): Add new shape.
+ 	(ternary_mfloat8_lane_group_selection_def): Add new class.
+ 	(ternary_mfloat8_lane_group_selection): Add new shape.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(ternary_mfloat8, ternary_mfloat8_lane_group_selection): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def
+ 	(svdot, svdot_lane): Add new DEF_SVE_FUNCTION_GS_FPM, twice to deal
+ 	with the combination of features providing support for 32 and 16 bit
+ 	floating point.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_dot<mode>): Add new.
+ 	(@aarch64_sve_dot_lane<mode>): Likewise.
+ 	* config/aarch64/aarch64.h:
+ 	(TARGET_FP8DOT4, TARGET_SSVE_FP8DOT4): Add new defines.
+ 	(TARGET_FP8DOT2, TARGET_SSVE_FP8DOT2): Likewise.
+ 	* config/aarch64/iterators.md
+ 	(UNSPEC_DOT_FP8, UNSPEC_DOT_LANE_FP8): Add new unspecs.
+ 	* doc/invoke.texi: Document fp8dot4, fp8dot2, ssve-fp8dot4, ssve-fp8dot2
+ 	extensions.
+ 
+ 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(fp8fma, ssve-fp8fma): Add new options.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(unspec_based_function_base): Add unspec_for_mfp8.
+ 	(unspec_for): Return unspec_for_mfp8 on fpm-using cases.
+ 	(sme_1mode_function): Fix call to parent ctor.
+ 	(sme_2mode_function_t): Likewise.
+ 	(unspec_based_mla_function, unspec_based_mla_lane_function): Handle
+ 	fpm-using cases.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(parse_element_type): Treat M as TYPE_SUFFIX_mf8
+ 	(ternary_mfloat8_lane_def): Add new class.
+ 	(ternary_mfloat8_opt_n_def): Likewise.
+ 	(ternary_mfloat8_lane): Add new shape.
+ 	(ternary_mfloat8_opt_n): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(ternary_mfloat8_lane, ternary_mfloat8_opt_n): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svmlalb_lane, svmlalb, svmlalt_lane, svmlalt): Update definitions
+ 	with mfloat8_t unspec in ctor.
+ 	(svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane,
+ 	svmlalltb, svmlalltt_lane, svmlalltt, svmlal_impl): Add new FUNCTIONs.
+ 	(svqrshr, svqrshrn, svqrshru, svqrshrun): Update definitions with
+ 	nop mfloat8 unspec in ctor.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def
+ 	(svmlalb, svmlalt, svmlalb_lane, svmlalt_lane, svmlallbb, svmlallbt,
+ 	svmlalltb, svmlalltt, svmlalltt_lane, svmlallbb_lane, svmlallbt_lane,
+ 	svmlalltb_lane): Add new DEF_SVE_FUNCTION_GS_FPMs.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h
+ 	(svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane,
+ 	svmlalltb, svmlalltt_lane, svmlalltt): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(TYPES_h_float_mf8, TYPES_s_float_mf8): Add new types.
+ 	(h_float_mf8, s_float_mf8): Add new SVE_TYPES_ARRAY.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve_add_<sve2_fp8_fma_op_vnx8hf><mode>): Add new.
+ 	(@aarch64_sve_add_<sve2_fp8_fma_op_vnx4sf><mode>): Add new.
+ 	(@aarch64_sve_add_lane_<sve2_fp8_fma_op_vnx8hf><mode>): Likewise.
+ 	(@aarch64_sve_add_lane_<sve2_fp8_fma_op_vnx4sf><mode>): Likewise.
+ 	* config/aarch64/aarch64.h
+ 	(TARGET_FP8FMA, TARGET_SSVE_FP8FMA): Likewise.
+ 	* config/aarch64/iterators.md
+ 	(VNx8HF_ONLY): Add new.
+ 	(UNSPEC_FMLALB_FP8, UNSPEC_FMLALLBB_FP8, UNSPEC_FMLALLBT_FP8,
+ 	UNSPEC_FMLALLTB_FP8, UNSPEC_FMLALLTT_FP8, UNSPEC_FMLALT_FP8): Likewise.
+ 	(SVE2_FP8_TERNARY_VNX8HF, SVE2_FP8_TERNARY_VNX4SF): Likewise.
+ 	(SVE2_FP8_TERNARY_LANE_VNX8HF, SVE2_FP8_TERNARY_LANE_VNX4SF): Likewise.
+ 	(sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Likewise.
+ 	* doc/invoke.texi: Document fp8fma and sve-fp8fma extensions.
+ 
+ 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(parse_signature): Add an fpm_t (uint64_t) argument to functions that
+ 	set the fpm register.
+ 	(unary_convertxn_narrowt_def): New class.
+ 	(unary_convertxn_narrowt): New shape.
+ 	(unary_convertxn_narrow_def): New class.
+ 	(unary_convertxn_narrow): New shape.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(unary_convertxn_narrowt): Declare.
+ 	(unary_convertxn_narrow): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svcvt_fp8_impl): New class.
+ 	(svcvtn_impl): Handle fp8 cases.
+ 	(svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new FUNCTION.
+ 	(svcvtnb): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def
+ 	(svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new DEF_SVE_FUNCTION_GS_FPM.
+ 	(svcvtn): Likewise.
+ 	(svcvtnb, svcvtnt): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h
+ 	(svcvt1, svcvt2, svcvtlt1, svcvtlt2, svcvtnb, svcvtnt): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(TYPES_cvt_mf8, TYPES_cvtn_mf8, TYPES_cvtnx_mf8): Add new types arrays.
+ 	(function_builder::get_name): Append _fpm to functions that set fpmr.
+ 	(function_resolver::check_gp_argument): Deal with the fpm_t argument.
+ 	(function_expander::expand): Set the fpm register before
+ 	calling the insn if the function warrants it.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve2_fp8_cvt): Add new.
+ 	(@aarch64_sve2_fp8_cvtn): Likewise.
+ 	(@aarch64_sve2_fp8_cvtnb): Likewise.
+ 	(@aarch64_sve_cvtnt): Likewise.
+ 	* config/aarch64/aarch64.h (TARGET_SSVE_FP8): Add new.
+ 	* config/aarch64/iterators.md
+ 	(VNx8SF_ONLY, SVE_FULL_HFx2): New mode iterators.
+ 	(UNSPEC_F1CVT, UNSPEC_F1CVTLT, UNSPEC_F2CVT, UNSPEC_F2CVTLT): Add new.
+ 	(UNSPEC_FCVTNB, UNSPEC_FCVTNT): Likewise.
+ 	(UNSPEC_FP8FCVTN): Likewise.
+ 	(FP8CVT_UNS, fp8_cvt_uns_op): Likewise.
+ 
+ 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdiv_impl): Specify FPM_unused when folding.
+ 	(svmul_impl): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(build_one): Use the group fpm_mode when creating function instances.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svaba_impl, svqrshl_impl, svqshl_impl,svrshl_impl, svsra_impl):
+ 	Specify FPM_unused when folding.
+ 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Set
+ 	fpm_mode on all elements.
+ 	(neon_sve_function_groups, sme_function_groups): Likewise.
+ 	(function_instance::hash): Include fpm_mode in hash.
+ 	(function_builder::add_overloaded_functions): Use the group fpm mode.
+ 	(function_resolver::lookup_form): Use the function instance fpm_mode
+ 	when looking up a function.
+ 	* config/aarch64/aarch64-sve-builtins.def
+ 	(DEF_SVE_FUNCTION_GS_FPM): add define.
+ 	(DEF_SVE_FUNCTION_GS): redefine against DEF_SVE_FUNCTION_GS_FPM.
+ 	* config/aarch64/aarch64-sve-builtins.h (fpm_mode_index): New.
+ 	(function_group_info): Add fpm_mode.
+ 	(function_instance): Likewise.
+ 	(function_instance::operator==): Handle fpm_mode.
+ 
+ 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_b_data): Add mf8.
+ 	(TYPES_reinterpret1, TYPES_reinterpret): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.def (svmfloat8_t): New type.
+ 	(mf8): New type suffix.
+ 	* config/aarch64/aarch64-sve-builtins.h (TYPE_mfloat): New
+ 	type_class_index.
+ 
+ 2024-11-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115438
+ 	* tree-vect-loop.cc (vect_transform_cycle_phi): For SLP also
+ 	try to do the reduction adjustment by the initial value
+ 	in the epilogue.
+ 
+ 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* tree.cc (build_vector_from_ctor): Add support to construct VLA vector
+ 	constants from init constructors.
+ 
+ 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
+ 	sized vector types in BIT_FIELD_REF canonicalization.
+ 	* tree-cfg.cc (verify_types_in_gimple_reference): Change object-size-
+ 	checking for BIT_FIELD_REF to error offsets that are known_gt to be
+ 	outside object-size.  Out-of-range offsets can happen in the case of
+ 	indices that reference VLA SVE vector elements that may be outside the
+ 	minimum vector size range and therefore maybe_gt is not appropirate
+ 	here.
+ 
+ 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Flip
+ 	TYPE_INDIVISBLE flag for SVE ACLE vector types.
+ 
+ 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
+ 	__ARM_FEATURE_SVE_VECTOR_OPERATORS.
+ 
+ 2024-11-29  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/arm_acle.h (_CHKFEAT_GCS): New.
+ 
+ 2024-11-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117065
+ 	* gimple-fold.cc (type_has_padding_at_level_p) <case UNION_TYPE>:
+ 	Also continue if f has error_mark_node type.
+ 
+ 2024-11-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117608
+ 	* doc/extend.texi (__builtin_prefetch): Document that second
+ 	argument may be also 2 and its meaning.
+ 	* config/i386/i386.md (prefetch): Remove unreachable code.
+ 	Clear write set operands[1] to const0_rtx if !TARGET_MOVRS or
+ 	of locality is not 1.  Formatting fixes.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Use IN_RANGE.
+ 	Call gen_prefetch even for TARGET_MOVRS.
+ 	* config/alpha/alpha.md (prefetch): Treat read_or_write 2 like 0.
+ 	* config/mips/mips.md (prefetch): Likewise.
+ 	* config/arc/arc.md (prefetch_1, prefetch_2, prefetch_3): Likewise.
+ 	* config/riscv/riscv.md (prefetch): Likewise.
+ 	* config/loongarch/loongarch.md (prefetch): Likewise.
+ 	* config/sparc/sparc.md (prefetch): Likewise.  Use IN_RANGE.
+ 	* config/ia64/ia64.md (prefetch): Likewise.
+ 	* config/pa/pa.md (prefetch): Likewise.
+ 	* config/aarch64/aarch64.md (prefetch): Likewise.
+ 	* config/rs6000/rs6000.md (prefetch): Likewise.
+ 
+ 2024-11-29  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/117723
+ 	* tree-ssa-ifcombine.cc (tree_ssa_ifcombine_bb): Record
+ 	forwarder blocks in path to exit, and stick to them.  Avoid
+ 	computing the exit if obviously not needed, and if that
+ 	enables additional optimizations.
+ 	(tree_ssa_ifcombine_bb_1): Fix typos.
+ 
+ 2024-11-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*<any_shift:insn><mode>3_mask): Macroize
+ 	pattern from *ashl<mode>3_mask and *<any_shiftrt:insn><mode>3_mask
+ 	using any_shift code iterator.
+ 	(*<any_shift:insn><mode>3_mask_1): Macroize pattern
+ 	from *ashl<mode>3_mask_1 and *<any_shiftrt:insn><mode>3_mask_1
+ 	using any_shift code iterator.
+ 	(*<any_shift:insn><mode>3_add): Macroize pattern
+ 	from *ashl<mode>3_add and *<any_shiftrt:insn><mode>3_add
+ 	using any_shift code iterator.
+ 	(*<any_shift:insn><mode>3_add_1): Macroize pattern
+ 	from *ashl<mode>3_add_1 and *<any_shiftrt:insn><mode>3_add_1
+ 	using any_shift code iterator.
+ 	(*<insn><mode>3_sub): Macroize pattern
+ 	from *ashl<mode>3_sub and *<any_shiftrt:insn><mode>3_sub
+ 	using any_shift code iterator.
+ 	(*<any_shift:insn><mode>3_sub_1): Macroize pattern
+ 	from *ashl<mode>3_sub_1 and *<any_shiftrt:insn><mode>3_sub_1
+ 	using any_shift code iterator.
+ 
+ 2024-11-28  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* builtin-types.def (BT_FN_UINT8_UINT8_UINT8_CONST_SIZE): Define.
+ 	(BT_FN_UINT16_UINT16_UINT8_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT16_UINT16_UINT16_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT32_UINT32_UINT8_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT32_UINT32_UINT16_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT32_UINT32_UINT32_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT64_UINT64_UINT8_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT64_UINT64_UINT16_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT64_UINT64_UINT32_CONST_SIZE): Likewise.
+ 	(BT_FN_UINT64_UINT64_UINT64_CONST_SIZE): Likewise.
+ 	* builtins.cc (associated_internal_fn): Handle CRC related builtins.
+ 	(expand_builtin_crc_table_based): New function.
+ 	(expand_builtin): Handle CRC related builtins.
+ 	* builtins.def (BUILT_IN_CRC8_DATA8): New builtin.
+ 	(BUILT_IN_CRC16_DATA8): Likewise.
+ 	(BUILT_IN_CRC16_DATA16): Likewise.
+ 	(BUILT_IN_CRC32_DATA8): Likewise.
+ 	(BUILT_IN_CRC32_DATA16): Likewise.
+ 	(BUILT_IN_CRC32_DATA32): Likewise.
+ 	(BUILT_IN_CRC64_DATA8): Likewise.
+ 	(BUILT_IN_CRC64_DATA16): Likewise.
+ 	(BUILT_IN_CRC64_DATA32): Likewise.
+ 	(BUILT_IN_CRC64_DATA64): Likewise.
+ 	(BUILT_IN_REV_CRC8_DATA8): New builtin.
+ 	(BUILT_IN_REV_CRC16_DATA8): Likewise.
+ 	(BUILT_IN_REV_CRC16_DATA16): Likewise.
+ 	(BUILT_IN_REV_CRC32_DATA8): Likewise.
+ 	(BUILT_IN_REV_CRC32_DATA16): Likewise.
+ 	(BUILT_IN_REV_CRC32_DATA32): Likewise.
+ 	(BUILT_IN_REV_CRC64_DATA8): Likewise.
+ 	(BUILT_IN_REV_CRC64_DATA16): Likewise.
+ 	(BUILT_IN_REV_CRC64_DATA32): Likewise.
+ 	(BUILT_IN_REV_CRC64_DATA64): Likewise.
+ 	* builtins.h (expand_builtin_crc_table_based): New function
+ 	declaration.
+ 	* doc/extend.texi: Add documentation for new CRC builtins.
+ 
+ 2024-11-28  Mariam Arutunian  <mariamarutunian@gmail.com>
+ 
+ 	* doc/md.texi (crc@var{m}@var{n}4, crc_rev@var{m}@var{n}4): Document.
+ 	* expr.cc (calculate_crc): New function.
+ 	(assemble_crc_table): Likewise.
+ 	(generate_crc_table): Likewise.
+ 	(calculate_table_based_CRC): Likewise.
+ 	(expand_crc_table_based): Likewise.
+ 	(gen_common_operation_to_reflect): Likewise.
+ 	(reflect_64_bit_value): Likewise.
+ 	(reflect_32_bit_value): Likewise.
+ 	(reflect_16_bit_value): Likewise.
+ 	(reflect_8_bit_value): Likewise.
+ 	(generate_reflecting_code_standard): Likewise.
+ 	(expand_reversed_crc_table_based): Likewise.
+ 	* expr.h (generate_reflecting_code_standard): New function declaration.
+ 	(expand_crc_table_based): Likewise.
+ 	(expand_reversed_crc_table_based): Likewise.
+ 	* internal-fn.cc: (crc_direct): Define.
+ 	(direct_crc_optab_supported_p): Likewise.
+ 	(expand_crc_optab_fn): New function
+ 	* internal-fn.def (CRC, CRC_REV): New internal functions.
+ 	* optabs.def (crc_optab, crc_rev_optab): New optabs.
+ 	Signed-off-by: Mariam Arutunian <mariamarutunian@gmail.com>
+ 	Co-authored-by: Joern Rennecke <joern.rennecke@embecosm.com>
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117642
+ 	* doc/extend.texi: Remove documentation of warning for unimplemented
+ 	__sync_* operations, such warning has never been implemented.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117023
+ 	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
+ 	Handle also nonnull_if_nonzero attributes.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117023
+ 	* gimple.h (infer_nonnull_range_by_attribute): Add a tree *
+ 	argument defaulted to NULL.
+ 	* gimple.cc (infer_nonnull_range_by_attribute): Add op2 argument.
+ 	Handle also nonnull_if_nonzero attributes.
+ 	* tree.cc (get_nonnull_args): Fix comment typo.
+ 	* builtins.cc (validate_arglist): Handle nonnull_if_nonzero attribute.
+ 	* tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Handle
+ 	nonnull_if_nonzero attributes.
+ 	* ubsan.cc (instrument_nonnull_arg): Adjust
+ 	infer_nonnull_range_by_attribute caller.  If it returned true and
+ 	filed in non-NULL arg2, check that arg2 is non-zero as another
+ 	condition next to checking that arg is zero.
+ 	* doc/extend.texi (nonnull_if_nonzero): Document new attribute.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/rs6000/rs6000.h (struct machine_function): Add
+ 	asm_redzone_clobber_seen member.
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Force
+ 	info->push_p if cfun->machine->asm_redzone_clobber_seen.
+ 	* config/rs6000/rs6000.cc (TARGET_REDZONE_CLOBBER): Redefine.
+ 	(rs6000_redzone_clobber): New function.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* target.def (redzone_clobber): New target hook.
+ 	* varasm.cc (decode_reg_name_and_count): Return -5 for
+ 	"redzone".
+ 	* cfgexpand.cc (expand_asm_stmt): Handle redzone clobber.
+ 	* config/i386/i386.h (struct machine_function): Add
+ 	asm_redzone_clobber_seen member.
+ 	* config/i386/i386.cc (ix86_compute_frame_layout): Don't
+ 	use red zone if cfun->machine->asm_redzone_clobber_seen.
+ 	(ix86_redzone_clobber): New function.
+ 	(TARGET_REDZONE_CLOBBER): Redefine.
+ 	* doc/extend.texi (Clobbers and Scratch Registers): Document
+ 	the "redzone" clobber.
+ 	* doc/tm.texi.in: Add @hook TARGET_REDZONE_CLOBBER.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116416
+ 	* flag-types.h (enum zero_init_padding_bits_kind): New type.
+ 	* tree.h (CONSTRUCTOR_ZERO_PADDING_BITS): Define.
+ 	* common.opt (fzero-init-padding-bits=): New option.
+ 	* expr.cc (categorize_ctor_elements_1): Handle
+ 	CONSTRUCTOR_ZERO_PADDING_BITS or
+ 	flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_ALL.  Fix
+ 	up *p_complete = -1; setting for unions.
+ 	(complete_ctor_at_level_p): Handle unions differently for
+ 	flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_STANDARD.
+ 	* gimple-fold.cc (type_has_padding_at_level_p): Fix up UNION_TYPE
+ 	handling, return also true for UNION_TYPE with no FIELD_DECLs
+ 	and non-zero size, handle QUAL_UNION_TYPE like UNION_TYPE.
+ 	* doc/invoke.texi (-fzero-init-padding-bits=@var{value}): Document.
+ 
+ 2024-11-28  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/117557
+ 	* tree-vect-stmts.cc (vectorizable_store): Flatten the ncopies and
+ 	vec_num loops.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117358
+ 	* gimple-fold.cc (gimple_fold_builtin_memory_op): Punt if stmt has no
+ 	vdef in ssa form.
+ 	(gimple_fold_builtin_bcmp): Punt if stmt has no vuse in ssa form.
+ 	(gimple_fold_builtin_bcopy): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_bzero): Likewise.
+ 	(gimple_fold_builtin_memset): Likewise.  Use return false instead of
+ 	return NULL_TREE.
+ 	(gimple_fold_builtin_strcpy): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_strncpy): Likewise.
+ 	(gimple_fold_builtin_strchr): Punt if stmt has no vuse in ssa form.
+ 	(gimple_fold_builtin_strstr): Likewise.
+ 	(gimple_fold_builtin_strcat): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_strcat_chk): Likewise.
+ 	(gimple_fold_builtin_strncat): Likewise.
+ 	(gimple_fold_builtin_strncat_chk): Likewise.
+ 	(gimple_fold_builtin_string_compare): Likewise.
+ 	(gimple_fold_builtin_fputs): Likewise.
+ 	(gimple_fold_builtin_memory_chk): Likewise.
+ 	(gimple_fold_builtin_stxcpy_chk): Likewise.
+ 	(gimple_fold_builtin_stxncpy_chk): Likewise.
+ 	(gimple_fold_builtin_stpcpy): Likewise.
+ 	(gimple_fold_builtin_snprintf_chk): Likewise.
+ 	(gimple_fold_builtin_sprintf_chk): Likewise.
+ 	(gimple_fold_builtin_sprintf): Likewise.
+ 	(gimple_fold_builtin_snprintf): Likewise.
+ 	(gimple_fold_builtin_fprintf): Likewise.
+ 	(gimple_fold_builtin_printf): Likewise.
+ 	(gimple_fold_builtin_realloc): Likewise.
+ 
+ 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117802
+ 	* builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
+ 	INTEGER_TYPE.
+ 
+ 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* timevar.cc: Include "make-unique.h".
+ 	(timer::named_items::make_json): Convert return type to unique_ptr.
+ 	Avoid naked "new".
+ 	(make_json_for_timevar_time_def): Likewise.
+ 	(timer::timevar_def::make_json): Likewise.
+ 	(timer::make_json): Likewise.
+ 	* timevar.h (timer::make_json): Likewise.
+ 	(timer::timevar_def::make_json): Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Update for above changes.
+ 
+ 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR c/104896
+ 	* common/config/ia64/ia64-common.cc (ia64_handle_option): Replace
+ 	"%<%s%>" with "%qs" in message wording.
+ 	* common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
+ 	Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_validate_sls_mitigation):
+ 	Likewise.
+ 	(aarch64_override_options): Likewise.
+ 	(aarch64_process_target_attr): Likewise.
+ 	* config/arm/aarch-common.cc (aarch_validate_mbranch_protection):
+ 	Likewise.
+ 	* config/pru/pru.cc (pru_insert_attributes): Likewise.
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::parse_arch): Likewise.
+ 	* omp-general.cc (oacc_verify_routine_clauses): Likewise.
+ 	* tree-ssa-uninit.cc (maybe_warn_read_write_only): Likewise.
+ 	(maybe_warn_pass_by_reference): Likewise.
+ 
+ 2024-11-27  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/36503
+ 	* config/i386/i386.md (*ashl<mode>3_add):
+ 	New define_insn_and_split pattern.
+ 	(*ashl<mode>3_add_1): Ditto.
+ 	(*<insn><mode>3_add): Ditto.
+ 	(*<insn><mode>3_add_1): Ditto.
+ 	(*ashl<mode>3_sub): Rename from *ashl<mode>3_negcnt.
+ 	(*ashl<mode>3_sub_1): Rename from *ashl<mode>3_negcnt_1.
+ 	(*<insn><mode>3_sub): Rename from *<insn><mode>3_negcnt.
+ 	(*<insn><mode>3_sub_1): Rename from *<insn><mode>3_negcnt_1.
+ 
+ 2024-11-27  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117776
+ 	* match.pd (nested int casts): Allow for the case
+ 	where the final prec is greater than the original
+ 	prec.
+ 
+ 2024-11-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor sorts of unsigned SAT_ADD match pattern for
+ 	IFN ADD_OVERFLOW.
+ 
+ 2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117642
+ 	* builtins.cc (expand_builtin_sync_lock_release): Change return type
+ 	from void to rtx, return result of expand_atomic_store.
+ 	(expand_builtin) <case BUILT_IN_SYNC_LOCK_RELEASE_16>: If
+ 	expand_builtin_sync_lock_release returns NULL, do a break rather
+ 	than return const0_rtx.
+ 
+ 2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117692
+ 	* tree.cc (get_range_pos_neg): Adjust function comment, use
+ 	non-negative instead of positive.
+ 	* match.pd
+ 	(((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3)):
+ 	Use casts to utype if type is signed, factor isn't 1 and
+ 	C1 and C2 could have different sign for + or could have the
+ 	same sign for -.
+ 
+ 2024-11-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Avoid fallback
+ 	conjunction of noncontiguous conditions.
+ 
+ 2024-11-27  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi: Document -Wfree-labels.
+ 
+ 2024-11-27  Jason Merrill  <jason@redhat.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 	    Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR bootstrap/117350
+ 	* tree.cc (need_assembler_name_p): Keep assembler name
+ 	for abstract declarations when autofdo is used.
+ 
+ 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* selftest.cc (selftest::print_diff): New function.
+ 	(selftest::assert_streq): Call it when we have non-equal
+ 	non-null strings.
+ 
+ 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR translation/90160
+ 	* config/csky/csky.cc (csky_configure_build_target): Use %qs when
+ 	referring to cpu and arch names.
+ 	(csky_option_override): Likewise.
+ 
+ 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR translation/80760
+ 	* tree-ssa-loop-prefetch.cc (pass_loop_prefetch::execute): Add
+ 	missing colon to not-a-power-of-two param warning.
+ 
+ 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR plugins/93746
+ 	* plugin.cc (try_init_one_plugin): Add missing colon in error
+ 	message.
+ 
+ 2024-11-26  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* gdbhooks.py (strip_ref): New. Use it ...
+ 	(VecPrinter.to_string): ... here,
+ 	(VecPrinter.children): ... and here.
+ 
+ 2024-11-26  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl):
+ 	Check whether the use insn is valid for propagation.
+ 
+ 2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/102674
+ 	* builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather
+ 	than real_from_string.  Use "1E%d" format string rather than "0x1p%d"
+ 	for decimal float minimum.  Formatting fixes.
+ 
+ 2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/43374
+ 	* real.cc (get_max_float): Handle decimal float.
+ 	* builtins.cc (fold_builtin_interclass_mathfn): Use
+ 	real_from_string3 rather than real_from_string.  Use
+ 	"1E%d" format string rather than "0x1p%d" for decimal
+ 	float minimum.
+ 
+ 2024-11-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-affine.cc (wide_int_constant_multiple_p): Remove unused rem variable.
+ 
+ 2024-11-26  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	PR target/116675
+ 	* config/i386/i386-expand.cc (expand_vec_perm_pand_pandn_por):
+ 	New subroutine.
+ 	(ix86_expand_vec_perm_const_1): Call expand_vec_perm_pand_pandn_por.
+ 
+ 2024-11-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/117771
+ 	* system.h: Move the include of sstream above safe-ctype.h.
+ 
+ 2024-11-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR middle-end/117098
+ 	* calls.cc (store_one_arg): Check partial != 0 for BLKmode argument
+ 	passed on stack.
+ 
+ 2024-11-25  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117645
+ 	* config/pa/pa.md (addti3): Revise pattern to support
+ 	arith11_operands.  Use "R" operand prefix to print least
+ 	significant register of TImode register pair.
+ 	(addvti3, subti3, subvti3): Likewise.
+ 	(negti2, negvti2): Use "R" operand prefix.
+ 
+ 2024-11-25  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/117105
+ 	* lra-constraints.cc (get_reload_reg): Create unique value reload
+ 	pseudos for early clobbered operands.
+ 
+ 2024-11-25  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*ashl<mode>3_negcnt):
+ 	For SImode shifts allow multiples of 32 (or multiples
+ 	of 64 for DImode shifts) for immediate operand 3.
+ 	(*ashl<mode>3_negcnt_1): Ditto.
+ 	(*<insn><mode>3_negcnt): Ditto.
+ 	(*<insn><mode>3_negcnt_1): Ditto.
+ 
+ 2024-11-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/g.opt.urls: Regenerate.
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 	* config/i386/nto.opt.urls: Regenerate.
+ 	* config/nvptx/nvptx.opt.urls: Regenerate.
+ 	* config/riscv/riscv.opt.urls: Regenerate.
+ 	* config/s390/s390.opt.urls: Regenerate.
+ 	* config/sol2.opt.urls: Regenerate.
+ 
+ 2024-11-25  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* common/config/nios2/*: Delete entire directory.
+ 	* config/nios2/*: Delete entire directory.
+ 	* config.gcc: Remove references to nios2.
+ 	* configure.ac: Likewise.
+ 	* doc/extend.texi: Likewise.
+ 	* doc/install.texi: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 	* doc/md.texi: Likewise.
+ 	* regenerate-opt-urls.py: Likewise.
+ 	* config.in: Regenerated.
+ 	* configure: Regenerated.
+ 
+ 2024-11-25  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/117544
+ 	* config/riscv/vector.md (*mov<mode>_whole): Split.
+ 	(*mov<mode>_fract): Ditto.
+ 	(*mov<mode>): Ditto.
+ 	(*mov<mode>_vls): Ditto.
+ 	(*mov<mode>_reg_whole_vtype): New pattern with vtype use.
+ 	(*mov<mode>_fract_vtype): Ditto.
+ 	(*mov<mode>_vtype): Ditto.
+ 	(*mov<mode>_vls_vtype): Ditto.
+ 
+ 2024-11-25  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/111600
+ 	* genemit.cc (handle_arg): Use files instead of filenames.
+ 	(main): Ditto.
+ 	* gensupport.cc (SIZED_BASED_CHUNKS): Define.
+ 	(choose_output): New function.
+ 	* gensupport.h (choose_output): Declare.
+ 
+ 2024-11-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/116760
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Scale vec_construct for single-lane VMAT_STRIDED_SLP the
+ 	same as VMAT_ELEMENTWISE.
+ 	* tree-vect-stmts.cc (vectorizable_store): Pass SLP node
+ 	down to costing for vec_to_scalar for VMAT_STRIDED_SLP.
+ 
+ 2024-11-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost): For an
+ 	128bit SSE epilogue request a 64bit SSE epilogue if the 128bit
+ 	SSE epilogue VF was 16 or higher.
+ 
+ 2024-11-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117767
+ 	* tree-vect-stmts.cc (vectorizable_store): Check for supported
+ 	alignment before using a an alternate store vector type.
+ 	(vectorizable_load): Likewise for loads.
+ 
+ 2024-11-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115825
+ 	* tree-ssa-loop-ivcanon.cc (loop_size::not_eliminatable_after_peeling):
+ 	New.
+ 	(loop_size::last_iteration_not_eliminatable_after_peeling): Likewise.
+ 	(tree_estimate_loop_size): Count stmts with side-effects as
+ 	not optimistically eliminatable.
+ 	(estimated_unrolled_size): Compute the number of stmts that can
+ 	be optimistically eliminated by followup transforms.
+ 	(try_unroll_loop_completely): Adjust.
+ 
+ 2024-11-25  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_asan_shadow_offset): Use dynamic
+ 	offset for RV64.
+ 	(riscv_asan_dynamic_shadow_offset_p): New.
+ 	(TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New.
+ 
+ 2024-11-25  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* asan.cc (asan_dynamic_shadow_offset_p): New.
+ 	(asan_shadow_memory_dynamic_address): New.
+ 	(asan_local_shadow_memory_dynamic_address): New.
+ 	(get_asan_shadow_memory_dynamic_address_decl): New.
+ 	(asan_maybe_insert_dynamic_shadow_at_function_entry): New.
+ 	(asan_emit_stack_protection): Support dynamic shadow offset.
+ 	(build_shadow_mem_access): Ditto.
+ 	* asan.h (asan_maybe_insert_dynamic_shadow_at_function_entry): New.
+ 	* doc/tm.texi (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New.
+ 	* doc/tm.texi.in (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): Ditto.
+ 	* sanopt.cc (pass_sanopt::execute): Handle dynamic shadow offset.
+ 	* target.def (asan_dynamic_shadow_offset_p): New.
+ 	* toplev.cc (process_options): Handle dynamic shadow offset.
+ 
+ 2024-11-25  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New extension.
+ 	* common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Ditto.
+ 	* config/riscv/riscv.opt: New mask.
+ 
+ 2024-11-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/pa/pa.cc (pa_section_type_flags): Remove.
+ 	(TARGET_SECTION_TYPE_FLAGS): Remove.
+ 
+ 2024-11-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* Makefile.in (OBJS): Add avoid-store-forwarding.o.
+ 	* common.opt (favoid-store-forwarding): New option.
+ 	* common.opt.urls: Regenerate.
+ 	* doc/invoke.texi: New param store-forwarding-max-distance.
+ 	* doc/passes.texi: Document new pass.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Document new pass.
+ 	* params.opt (store-forwarding-max-distance): New param.
+ 	* passes.def: Add pass_rtl_avoid_store_forwarding before
+ 	pass_early_remat.
+ 	* target.def (avoid_store_forwarding_p): New DEFHOOK.
+ 	* target.h (struct store_fwd_info): Declare.
+ 	* targhooks.cc (default_avoid_store_forwarding_p): New function.
+ 	* targhooks.h (default_avoid_store_forwarding_p): Declare.
+ 	* tree-pass.h (make_pass_rtl_avoid_store_forwarding): Declare.
+ 	* avoid-store-forwarding.cc: New file.
+ 	* avoid-store-forwarding.h: New file.
+ 	* timevar.def (TV_AVOID_STORE_FORWARDING): New timevar.
+ 
+ 2024-11-25  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117562
+ 	* config/i386/sse.md (vec_unpacks_hi_v4sf): Initialize
+ 	operands[2] with CONST0_RTX.
+ 
+ 2024-11-24  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.cc (ipa_duplicate_jump_function): New function.
+ 	(ipa_edge_args_sum_t::duplicate): Move individual jump function
+ 	copying to ipa_duplicate_jump_function.
+ 
+ 2024-11-24  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/36503
+ 	* config/i386/i386.md (*ashl<mode>3_negcnt):
+ 	New define_insn_and_split pattern.
+ 	(*ashl<mode>3_negcnt_1): Ditto.
+ 	(*<insn><mode>3_negcnt): Ditto.
+ 	(*<insn><mode>3_negcnt_1): Ditto.
+ 
+ 2024-11-24  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/avr/avr.opt.urls: Regenerate.
+ 	* config/g.opt.urls: Regenerate.
+ 	* config/i386/nto.opt.urls: Regenerate.
+ 	* config/riscv/riscv.opt.urls: Regenerate.
+ 	* config/rx/rx.opt.urls: Regenerate.
+ 	* config/sol2.opt.urls: Regenerate.
+ 
+ 2024-11-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/117715
+ 	* config/sparc/sparc-protos.h (sparc_expand_vcond): Rename to...
+ 	(sparc_expand_vcond_mask): ...this.
+ 	* config/sparc/sparc.cc (TARGET_VECTORIZE_GET_MASK_MODE): Define.
+ 	(sparc_vis_init_builtins): Adjust the CODE_FOR_* identifiers.
+ 	(sparc_get_mask_mode): New function.
+ 	(sparc_expand_vcond): Rename to...
+ 	(sparc_expand_vcond_mask): ...this and adjust.
+ 	* config/sparc/sparc.md (unspec): Remove UNSPEC_FCMP & UNSPEC_FUCMP
+ 	and rename UNSPEC_FPUCMPSHL into UNSPEC_FPCMPUSHL.
+ 	(fcmp<gcond:code><GCM:gcm_name><P:mode>_vis): Merge into...
+ 	(fpcmp<gcond:code>8<P:mode>_vis): Merge into...
+ 	(fpcmp<fpcmpcond:code><FPCMP:vbits><P:mode>_vis): ...this.
+ 	(fucmp<gcond:code>8<P:mode>_vis): Merge into...
+ 	(fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Merge into...
+ 	(fpcmpu<fpcmpucond:signed_code><FPCMP:vbits><P:mode>_vis): ...this.
+ 	(vec_cmp<FPCMP:mode><P:mode>): New expander.
+ 	(vec_cmpu<FPCMP:mode><P:mode>): Likewise.
+ 	(vcond<GCM:mode><GCM:mode>): Delete.
+ 	(vcondv8qiv8qi): Likewise.
+ 	(vcondu<GCM:mode><GCM:mode>): Likewise.
+ 	(vconduv8qiv8qi): Likewise.
+ 	(vcond_mask_<FPCMP:mode><P:mode>): New expander.
+ 	(fpcmp<fpcscond:code><FPCSMODE:vbits><P:mode>shl): Adjust.
+ 	(fpcmpu<fpcsucond:code><FPCSMODE:vbits><P:mode>shl): Likewise.
+ 	(fpcmpde<FPCSMODE:vbits><P:mode>shl): Likewise.
+ 	(fpcmpur<FPCSMODE:vbits><P:mode>shl): Likewise.
+ 	* doc/md.texi (vcond_mask_len_): Fix pasto.
+ 
+ 2024-11-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/invoke.texi (-fno-zero-initialized-in-bss): Adjust for Ada.
+ 	* varasm.cc (get_variable_section): Adjust the error message for an
+ 	initialized variable in .bss to -fno-zero-initialized-in-bss.
+ 
+ 2024-11-23  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* gimple.cc (get_tail_padding_adjustment): New function.
+ 	(DEFGSSTRUCT): Adjust the computation of gimple_ops_offset_ to be
+ 	correct in the presence of tail padding.
+ 
+ 2024-11-23  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117744
+ 	* config/avr/avr.cc (out_movqi_r_mr): Fix code when a load
+ 	only partially clobbers an address register due to
+ 	changing the address register temporally to accomodate for
+ 	faked addressing modes.
+ 
+ 2024-11-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* doc/rtl.texi: Add a note about quotes in braced strings.
+ 
+ 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR bootstrap/117737
+ 	* asan.cc (INCLUDE_MEMORY): Remove.
+ 	* attribs.cc (INCLUDE_MEMORY): Remove.
+ 	* auto-profile.cc (INCLUDE_MEMORY): Remove.
+ 	* calls.cc (INCLUDE_MEMORY): Remove.
+ 	* cfganal.cc (INCLUDE_MEMORY): Remove.
+ 	* cfgexpand.cc (INCLUDE_MEMORY): Remove.
+ 	* cfghooks.cc (INCLUDE_MEMORY): Remove.
+ 	* cfgloop.cc (INCLUDE_MEMORY): Remove.
+ 	* cgraph.cc (INCLUDE_MEMORY): Remove.
+ 	* cgraphclones.cc (INCLUDE_MEMORY): Remove.
+ 	* cgraphunit.cc (INCLUDE_MEMORY): Remove.
+ 	* collect-utils.cc (INCLUDE_MEMORY): Remove.
+ 	* collect2.cc (INCLUDE_MEMORY): Remove.
+ 	* common/config/aarch64/aarch64-common.cc (INCLUDE_MEMORY): Remove.
+ 	* common/config/arm/arm-common.cc (INCLUDE_MEMORY): Remove.
+ 	* common/config/avr/avr-common.cc (INCLUDE_MEMORY): Remove.
+ 	* config/aarch64/aarch64-cc-fusion.cc (INCLUDE_MEMORY): Remove.
+ 	* config/aarch64/aarch64-early-ra.cc (INCLUDE_MEMORY): Remove.
+ 	* config/aarch64/aarch64-sve-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/aarch64/aarch64.cc (INCLUDE_MEMORY): Remove.
+ 	* config/arc/arc.cc (INCLUDE_MEMORY): Remove.
+ 	* config/arm/aarch-common.cc (INCLUDE_MEMORY) Remove.:
+ 	* config/arm/arm-mve-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/arm/arm.cc (INCLUDE_MEMORY): Remove.
+ 	* config/avr/avr-devices.cc (INCLUDE_MEMORY): Remove.
+ 	* config/avr/driver-avr.cc (INCLUDE_MEMORY): Remove.
+ 	* config/bpf/bpf.cc (INCLUDE_MEMORY): Remove.
+ 	* config/bpf/btfext-out.cc (INCLUDE_MEMORY): Remove.
+ 	* config/bpf/core-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/darwin.cc (INCLUDE_MEMORY): Remove.
+ 	* config/gcn/mkoffload.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/driver-i386.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/i386-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/i386-expand.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/i386-features.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/i386-options.cc (INCLUDE_MEMORY): Remove.
+ 	* config/i386/i386.cc (INCLUDE_MEMORY): Remove.
+ 	* config/loongarch/loongarch-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/loongarch/loongarch.cc (INCLUDE_MEMORY): Remove.
+ 	* config/mingw/winnt-cxx.cc (INCLUDE_MEMORY): Remove.
+ 	* config/mingw/winnt.cc (INCLUDE_MEMORY): Remove.
+ 	* config/mips/mips.cc (INCLUDE_MEMORY): Remove.
+ 	* config/msp430/driver-msp430.cc (INCLUDE_MEMORY): Remove.
+ 	* config/nvptx/mkoffload.cc (INCLUDE_MEMORY): Remove.
+ 	* config/nvptx/nvptx.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv-avlprop.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv-target-attr.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv-vector-builtins.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv-vector-costs.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv-vsetvl.cc (INCLUDE_MEMORY): Remove.
+ 	* config/riscv/riscv.cc (INCLUDE_MEMORY): Remove.
+ 	* config/rs6000/driver-rs6000.cc (INCLUDE_MEMORY): Remove.
+ 	* config/rs6000/host-darwin.cc (INCLUDE_MEMORY): Remove.
+ 	* config/rs6000/rs6000-c.cc (INCLUDE_MEMORY): Remove.
+ 	* config/rs6000/rs6000.cc (INCLUDE_MEMORY): Remove.
+ 	* config/s390/s390-c.cc (INCLUDE_MEMORY): Remove.
+ 	* config/s390/s390.cc (INCLUDE_MEMORY): Remove.
+ 	* config/sol2-cxx.cc (INCLUDE_MEMORY): Remove.
+ 	* config/vms/vms-c.cc (INCLUDE_MEMORY): Remove.
+ 	* config/xtensa/xtensa-dynconfig.cc (INCLUDE_MEMORY): Remove.
+ 	* coroutine-passes.cc (INCLUDE_MEMORY): Remove.
+ 	* coverage.cc (INCLUDE_MEMORY): Remove.
+ 	* data-streamer-in.cc (INCLUDE_MEMORY): Remove.
+ 	* data-streamer-out.cc (INCLUDE_MEMORY): Remove.
+ 	* data-streamer.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-format-json.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-format-sarif.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-format-text.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-global-context.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-macro-unwinding.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-path.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-show-locus.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic-spec.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic.cc (INCLUDE_MEMORY): Remove.
+ 	* diagnostic.h: Remove check for INCLUDE_MEMORY.
+ 	* digraph.cc (INCLUDE_MEMORY): Remove.
+ 	* dumpfile.cc (INCLUDE_MEMORY): Remove.
+ 	* dwarf2out.cc (INCLUDE_MEMORY): Remove.
+ 	* edit-context.cc (INCLUDE_MEMORY): Remove.
+ 	* except.cc (INCLUDE_MEMORY): Remove.
+ 	* expr.cc (INCLUDE_MEMORY): Remove.
+ 	* file-prefix-map.cc (INCLUDE_MEMORY): Remove.
+ 	* final.cc (INCLUDE_MEMORY): Remove.
+ 	* fwprop.cc (INCLUDE_MEMORY): Remove.
+ 	* gcc-plugin.h (INCLUDE_MEMORY): Remove.
+ 	* gcc-rich-location.cc (INCLUDE_MEMORY): Remove.
+ 	* gcc-urlifier.cc (INCLUDE_MEMORY): Remove.
+ 	* gcc.cc (INCLUDE_MEMORY): Remove.
+ 	* gcov-dump.cc (INCLUDE_MEMORY): Remove.
+ 	* gcov-tool.cc (INCLUDE_MEMORY): Remove.
+ 	* gcov.cc (INCLUDE_MEMORY): Remove.
+ 	* gengtype.cc (open_base_files): Don't print `#define INCLUDE_MEMORY`.
+ 	* genmatch.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-fold.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-harden-conditionals.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-harden-control-flow.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-if-to-switch.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-loop-interchange.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-loop-jam.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-loop-versioning.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-lower-bitint.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-predicate-analysis.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-pretty-print.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-cache.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-edge.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-fold.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-gori.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-infer.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-op.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-path.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-phi.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range-trace.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-range.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-backprop.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-sprintf.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-store-merging.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-strength-reduction.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-warn-access.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-warn-alloca.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-ssa-warn-restrict.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-streamer-in.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple-streamer-out.cc (INCLUDE_MEMORY): Remove.
+ 	* gimple.cc (INCLUDE_MEMORY): Remove.
+ 	* gimplify.cc (INCLUDE_MEMORY): Remove.
+ 	* graph.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-dependences.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-isl-ast-to-gimple.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-optimize-isl.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-poly.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-scop-detection.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite-sese-to-poly.cc (INCLUDE_MEMORY): Remove.
+ 	* graphite.cc (INCLUDE_MEMORY): Remove.
+ 	* graphviz.cc (INCLUDE_MEMORY): Remove.
+ 	* input.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-cp.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-devirt.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-fnsummary.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-free-lang-data.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-icf-gimple.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-icf.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-inline-analysis.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-inline.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-modref-tree.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-modref.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-param-manipulation.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-polymorphic-call.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-predicate.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-profile.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-prop.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-pure-const.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-reference.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-split.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-sra.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-strub.cc (INCLUDE_MEMORY): Remove.
+ 	* ipa-utils.cc (INCLUDE_MEMORY): Remove.
+ 	* json-parsing.cc (INCLUDE_MEMORY): Remove.
+ 	* json.cc (INCLUDE_MEMORY): Remove.
+ 	* json.h: Don't check INCLUDE_MEMORY.
+ 	* langhooks.cc (INCLUDE_MEMORY): Remove.
+ 	* late-combine.cc (INCLUDE_MEMORY): Remove.
+ 	* lazy-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
+ 	* libdiagnostics.cc (INCLUDE_MEMORY): Remove.
+ 	* libsarifreplay.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-cgraph.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-compress.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-opts.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-section-in.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-section-out.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-streamer-in.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-streamer-out.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-streamer.cc (INCLUDE_MEMORY): Remove.
+ 	* lto-wrapper.cc (INCLUDE_MEMORY): Remove.
+ 	* make-unique.h (GCC_MAKE_UNIQUE): Remove.
+ 	* multiple_target.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-expand.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-general.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-low.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-oacc-neuter-broadcast.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-offload.cc (INCLUDE_MEMORY): Remove.
+ 	* omp-simd-clone.cc (INCLUDE_MEMORY): Remove.
+ 	* opt-problem.cc (INCLUDE_MEMORY): Remove.
+ 	* optinfo-emit-json.cc (INCLUDE_MEMORY): Remove.
+ 	* optinfo.cc (INCLUDE_MEMORY): Remove.
+ 	* optinfo.h: Don't check INCLUDE_MEMORY.
+ 	* opts-common.cc (INCLUDE_MEMORY): Remove.
+ 	* opts-diagnostic.cc (INCLUDE_MEMORY): Remove.
+ 	* opts-global.cc (INCLUDE_MEMORY): Remove.
+ 	* opts.cc (INCLUDE_MEMORY): Remove.
+ 	* pair-fusion.cc (INCLUDE_MEMORY): Remove.
+ 	* passes.cc (INCLUDE_MEMORY): Remove.
+ 	* pointer-query.cc (INCLUDE_MEMORY): Remove.
+ 	* predict.cc (INCLUDE_MEMORY): Remove.
+ 	* pretty-print.cc (INCLUDE_MEMORY): Remove.
+ 	* pretty-print.h: Don't check INCLUDE_MEMORY.
+ 	* print-rtl.cc (INCLUDE_MEMORY): Remove.
+ 	* print-tree.cc (INCLUDE_MEMORY): Remove.
+ 	* profile-count.cc (INCLUDE_MEMORY): Remove.
+ 	* range-op-float.cc (INCLUDE_MEMORY): Remove.
+ 	* range-op-ptr.cc (INCLUDE_MEMORY): Remove.
+ 	* range-op.cc (INCLUDE_MEMORY): Remove.
+ 	* range.cc (INCLUDE_MEMORY): Remove.
+ 	* read-rtl-function.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-error.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/accesses.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/blocks.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/changes.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/functions.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/insns.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-ssa/movement.cc (INCLUDE_MEMORY): Remove.
+ 	* rtl-tests.cc (INCLUDE_MEMORY): Remove.
+ 	* sanopt.cc (INCLUDE_MEMORY): Remove.
+ 	* sched-rgn.cc (INCLUDE_MEMORY): Remove.
+ 	* selftest-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
+ 	* selftest-diagnostic.cc (INCLUDE_MEMORY): Remove.
+ 	* selftest-json.cc (INCLUDE_MEMORY): Remove.
+ 	* sese.cc (INCLUDE_MEMORY): Remove.
+ 	* simple-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
+ 	* splay-tree-utils.cc (INCLUDE_MEMORY): Remove.
+ 	* sreal.cc (INCLUDE_MEMORY): Remove.
+ 	* stmt.cc (INCLUDE_MEMORY): Remove.
+ 	* substring-locations.cc (INCLUDE_MEMORY): Remove.
+ 	* symtab-clones.cc (INCLUDE_MEMORY): Remove.
+ 	* symtab-thunks.cc (INCLUDE_MEMORY): Remove.
+ 	* symtab.cc (INCLUDE_MEMORY): Remove.
+ 	* system.h: Include memory unconditionally for C++.
+ 	Also remove support for INCLUDE_MEMORY.
+ 	* targhooks.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/box-drawing.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/canvas.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/ruler.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/selftests.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/style.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/styled-string.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/table.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/theme.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/tree-widget.cc (INCLUDE_MEMORY): Remove.
+ 	* text-art/widget.cc (INCLUDE_MEMORY): Remove.
+ 	* timevar.cc (INCLUDE_MEMORY): Remove.
+ 	* toplev.cc (INCLUDE_MEMORY): Remove.
+ 	* trans-mem.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-affine.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-assume.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-call-cdce.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-cfg.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-chrec.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-data-ref.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-dfa.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-diagnostic-client-data-hooks.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-diagnostic.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-dump.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-if-conv.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-inline.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-into-ssa.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-logical-location.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-loop-distribution.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-nested.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-nrv.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-object-size.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-outof-ssa.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-parloops.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-predcom.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-pretty-print.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-profile.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-scalar-evolution.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-sra.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-address.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-alias.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-ccp.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-coalesce.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-copy.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-dce.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-dom.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-dse.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-forwprop.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-ifcombine.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-live.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-ch.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-im.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-ivcanon.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-ivopts.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-manip.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-niter.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-prefetch.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-split.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-loop-unswitch.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-math-opts.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-operands.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-phiopt.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-phiprop.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-pre.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-propagate.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-reassoc.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-sccvn.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-scopedtables.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-sink.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-strlen.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-structalias.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-ter.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-threadbackward.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-threadupdate.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa-uninit.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssa.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-ssanames.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-stdarg.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-streamer-in.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-streamer-out.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-streamer.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-switch-conversion.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-tailcall.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-data-refs.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-generic.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-loop-manip.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-loop.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-patterns.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-slp-patterns.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-slp.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vect-stmts.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vectorizer.cc (INCLUDE_MEMORY): Remove.
+ 	* tree-vrp.cc (INCLUDE_MEMORY): Remove.
+ 	* tree.cc (INCLUDE_MEMORY): Remove.
+ 	* ubsan.cc (INCLUDE_MEMORY): Remove.
+ 	* value-pointer-equiv.cc (INCLUDE_MEMORY): Remove.
+ 	* value-prof.cc (INCLUDE_MEMORY): Remove.
+ 	* value-query.cc (INCLUDE_MEMORY): Remove.
+ 	* value-range-pretty-print.cc (INCLUDE_MEMORY): Remove.
+ 	* value-range-storage.cc (INCLUDE_MEMORY): Remove.
+ 	* value-range.cc (INCLUDE_MEMORY): Remove.
+ 	* value-relation.cc (INCLUDE_MEMORY): Remove.
+ 	* var-tracking.cc (INCLUDE_MEMORY): Remove.
+ 	* varpool.cc (INCLUDE_MEMORY): Remove.
+ 	* vr-values.cc (INCLUDE_MEMORY): Remove.
+ 	* wide-int-print.cc (INCLUDE_MEMORY): Remove.
+ 
+ 2024-11-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/109279
+ 	* config/riscv/riscv.cc (riscv_build_integer): Handle another 64-bit
+ 	synthesis where high half is one less than the low half and the 32-bit
+ 	sign bit is on.
+ 
+ 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* text-art/types.h: Fix comment.
+ 
+ 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* common/config/avr/avr-common.cc: Tabify.
+ 
+ 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117726
+ 	* config/avr/avr-passes.cc (avr_split_shift): Also handle
+ 	ASHIFTRT and LSHIFTRT codes for 4-byte shifts.
+ 	(constr_split_shift4): New code_attr.
+ 	(avr_emit_shift): Adjust to new shift capabilities.
+ 	* config/avr/predicates.md (scratch_or_d_register_operand):
+ 	rename to scratch_or_dreg_operand.
+ 	* config/avr/avr.md: Same.
+ 	(define_peephole2): Write the RTL scratch peephole for 2-byte and
+ 	4-byte shifts that generates *sh*<mode>3_const insns using code
+ 	iterator any_shift.
+ 	(*ashlhi3_const_split, *ashrhi3_const_split, *ashrhi3_const_split)
+ 	(*lshrsi3_const_split, *lshrhi3_const_split): Remove useless
+ 	split insns.
+ 	(define_split) [avropt_split_bit_shift]: Add splitters
+ 	for 4-byte ASHIFTRT and LSHIFTRT insns using avr_split_shift().
+ 	(ashrsi3, *ashrsi3, *ashrsi3_const): Add "r,0,C4a" and "r,r,C4a"
+ 	constraint alternatives depending on 2op, 3op.
+ 	(lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,0,C4r" and "r,r,C4r"
+ 	constraint alternatives depending on 2op, 3op. Add "r,r,C15".
+ 	(lshrhi3, *lshrhi3, *lshrhi3_const, ashlhi3, *ashlhi3)
+ 	(*ashlhi3_const): Add "r,r,C7c" alternative.
+ 	(ashrpsi, *ashrpsi3): Add "r,r,C22" alternative.
+ 	(ashlqi, *ashlqi): Turn C06 alternative into "r,r,C06".
+ 	* config/avr/constraints.md (C14, C22, C30, C7c): New constraints.
+ 	* config/avr/avr.cc (ashlhi3_out, lshrhi3_out)
+ 	[case 7, 9, 10, 11, 12]: Support as 3-operand insn.
+ 	(lshrsi3_out) [case 15]: Same.
+ 	(ashrsi3_out) [case 30]: Same.
+ 	(ashrhi3_out) [case 14]: Same.
+ 	(ashrqi3_out) [case 6]: Same.
+ 	(avr_out_ashrpsi3) [case 22]: Same.
+ 	* config/avr/avr.h: Fix comment typo.
+ 	* doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Document.
+ 
+ 2024-11-22  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR tree-optimization/117355
+ 	* tree-object-size.cc (size_for_offset): New argument STRICT,
+ 	return SZ if it is set to false.
+ 	(plus_stmt_object_size): Adjust call to SIZE_FOR_OFFSET.
+ 
+ 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt (avr_bits_e, avr_lra_p, avr_mmcu)
+ 	(avr_gasisr_prologues, avr_n_flash, avr_log_details)
+ 	(avr_branch_cost, avr_split_bit_shift, avr_strict_X)
+ 	(avr_flmap, avr_rodata_in_ram, avr_sp8, avr_fuse_add)
+ 	(avr_warn_addr_space_convert, avr_warn_misspelled_isr)
+ 	(avr_fuse_move, avr_double, avr_long_double): Rename
+ 	to respectively: avropt_bits_e, avropt_lra_p, avropt_mmcu,
+ 	avropt_gasisr_prologues, avropt_n_flash, avropt_log_details,
+ 	avropt_branch_cost, avropt_split_bit_shift, avropt_strict_X,
+ 	avropt_flmap, avropt_rodata_in_ram, avropt_sp8, avropt_fuse_add,
+ 	avropt_warn_addr_space_convert, avropt_warn_misspelled_isr,
+ 	avropt_fuse_move, avropt_double, avropt_long_double.
+ 	* config/avr/avr.h: Same.
+ 	* config/avr/avr.cc: Same.
+ 	* config/avr/avr.md: Same.
+ 	* config/avr/avr-passes.cc
+ 	* config/avr/avr-log.cc: Same.
+ 	* common/config/avr/avr-common.cc: Same.
+ 
+ 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/110137
+ 	PR middle-end/101480
+ 	* doc/invoke.texi (-fassume-sane-operators-new-delete,
+ 	-fno-assume-sane-operators-new-delete): Document.
+ 	* gimple.cc (gimple_call_fnspec): Handle
+ 	-f{,no-}assume-sane-operators-new-delete.
+ 	* ipa-inline-transform.cc (inline_call): Also clear
+ 	flag_assume_sane_operators_new_delete on caller when inlining
+ 	-fno-assume-sane-operators-new-delete callee into
+ 	-fassume-sane-operators-new-delete caller.
+ 
+ 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117420
+ 	* match.pd ((X >> C1) << (C1 + C2) -> X << C2,
+ 	(X >> C1) * (C2 << C1) -> X * C2, X / (1 << C) -> X /[ex] (1 << C)):
+ 	Use with_possible_nonzero_bits@0 rather than
+ 	(with_possible_nonzero_bits2 @0).
+ 
+ 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_call_expr): Add initial support for
+ 	dispatch's 'interop' clause.
+ 	(gimplify_scan_omp_clauses): Handle interop clause.
+ 	* tree-pretty-print.cc (dump_omp_clause): Likewise.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INTEROP.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add interop.
+ 
+ 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_expr): Handle OMP_INTEROP by printing
+ 	"sorry, uninplemented".
+ 	* omp-api.h (omp_get_fr_id_from_name): Change return type to
+ 	'char'.
+ 	* omp-general.cc (omp_get_fr_id_from_name): Likewise; return
+ 	GOMP_INTEROP_IFR_UNKNOWN not 0 if not found.
+ 	(omp_get_name_from_fr_id): Return "<unknown>" not NULL
+ 	if not found (used for dumps).
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DESTROY,
+ 	OMP_CLAUSE_USE, and OMP_CLAUSE_INIT.
+ 	* tree-pretty-print.cc (dump_omp_init_prefer_type): New.
+ 	(dump_omp_clause): Handle init, use and destroy clauses.
+ 	(dump_generic_node): Handle interop directive.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add new
+ 	init/use/destroy clauses.
+ 	* tree.def (OACC_LOOP): Fix comment.
+ 	(OMP_INTEROP): Add.
+ 	* tree.h (OMP_INTEROP_CLAUSES, OMP_CLAUSE_INIT_TARGET,
+ 	OMP_CLAUSE_INIT_TARGETSYNC, OMP_CLAUSE_INIT_PREFER_TYPE): New.
+ 
+ 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117165
+ 	* config/i386/i386-builtin.def (IX86_BUILTIN_FNSTENV,
+ 	IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW, IX86_BUILTIN_FNCLEX): Add
+ 	space to the end of the builtin name to make it really internal.
+ 
+ 2024-11-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/116463
+ 	* tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
+ 	complex_fms_pattern::matches): Try swapping operands on multiply.
+ 
+ 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* doc/invoke.texi: Remove the non-existent option
+ 	'-msmall-data-limit' and add a description of '-G'.
+ 
+ 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(loongarch_builtin_vectorized_function): Delete.
+ 	(LARCH_GET_BUILTIN): Delete.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_builtin_vectorized_function): Delete.
+ 	* config/loongarch/loongarch.cc
+ 	(TARGET_ASM_ALIGNED_HI_OP): Delete.
+ 	(TARGET_ASM_ALIGNED_SI_OP): Delete.
+ 	(TARGET_ASM_ALIGNED_DI_OP): Delete.
+ 
+ 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Fixed.
+ 	* config/loongarch/lsx.md: Fixed.
+ 
+ 2024-11-22  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-builtins.cc (vorn_v, xvorn_v): Use
+ 	unsigned vector modes.
+ 	* config/loongarch/lsxintrin.h (__lsx_vorn_v): Cast arguments to
+ 	v16u8.
+ 	* config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments
+ 	to v32u8.
+ 
+ 2024-11-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/117690
+ 	* config/riscv/riscv.cc (riscv_build_integer): Add missing left
+ 	shift when using shNadd to derive upper 32 bits from lower 32 bits.
+ 
+ 2024-11-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/cpp.texi (__has_include): Document __has_include_next
+ 	also.
+ 	(Conditional Syntax): Mention __has_include_next in the
+ 	description for the __has_include menu entry.
+ 
+ 2024-11-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/117677
+ 	* json-parsing.cc (selftest::test_parse_number): Replace
+ 	ASSERT_EQ of 'double' values with ASSERT_NEAR.  Eliminate
+ 	ASSERT_PRINT_EQ for such values.
+ 	* selftest.h (ASSERT_NEAR): New.
+ 	(ASSERT_NEAR_AT): New.
+ 
+ 2024-11-21  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117726
+ 	* config/avr/avr.opt (-msplit-bit-shift): Add new optimization option.
+ 	* common/config/avr/avr-common.cc (avr_option_optimization_table)
+ 	[OPT_LEVELS_2_PLUS]: Turn on -msplit-bit-shift.
+ 	* config/avr/avr.h (machine_function.n_avr_fuse_add_executed):
+ 	New bool component.
+ 	* config/avr/avr.md (attr "isa") <2op, 3op>: Add new values.
+ 	(attr "enabled"): Handle them.
+ 	(ashlsi3, *ashlsi3, *ashlsi3_const): Add "r,r,C15" alternative.
+ 	Add "r,0,C4l" and "r,r,C4l" alternatives (depending on 2op / 3op).
+ 	(define_split) [avr_split_bit_shift]: Add 2 new ashift:ALL4 splitters.
+ 	(define_peephole2) [ashift:ALL4]: Add (match_dup 3) so that the scratch
+ 	won't overlap with the output operand of the matched insn.
+ 	(*ashl<mode>3_const_split): Remove unused ashift:ALL4 splitter.
+ 	* config/avr/avr-passes.cc (emit_valid_insn)
+ 	(emit_valid_move_clobbercc): Move out of anonymous namespace.
+ 	(make_avr_pass_fuse_add) <gate>: Don't override.
+ 	<execute>: Set n_avr_fuse_add_executed according to
+ 	func->machine->n_avr_fuse_add_executed.
+ 	(pass_data avr_pass_data_split_after_peephole2): New object.
+ 	(avr_pass_split_after_peephole2): New rtl_opt_pass.
+ 	(avr_emit_shift): New static function.
+ 	(avr_shift_is_3op, avr_split_shift_p, avr_split_shift)
+ 	(make_avr_pass_split_after_peephole2): New functions.
+ 	* config/avr/avr-passes.def (avr_pass_split_after_peephole2):
+ 	Insert new pass after pass_peephole2.
+ 	* config/avr/avr-protos.h
+ 	(n_avr_fuse_add_executed, avr_shift_is_3op, avr_split_shift_p)
+ 	(avr_split_shift, avr_optimize_size_level)
+ 	(make_avr_pass_split_after_peephole2): New prototypes.
+ 	* config/avr/avr.cc (n_avr_fuse_add_executed): New global variable.
+ 	(avr_optimize_size_level): New function.
+ 	(avr_set_current_function): Set n_avr_fuse_add_executed
+ 	according to cfun->machine->n_avr_fuse_add_executed.
+ 	(ashlsi3_out) [case 15]: Output optimized code for this offset.
+ 	(avr_rtx_costs_1) [ASHIFT, SImode]: Adjust costs of oggsets 15, 16.
+ 	* config/avr/constraints.md (C4a, C4r, C4r): New constraints.
+ 	* pass_manager.h (pass_manager): Adjust comments.
+ 
+ 2024-11-21  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-passes.cc (absint_t::dump): Fix missing
+ 	newline in dump.
+ 
+ 2024-11-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116590
+ 	* config/riscv/vector.md (pred_mul_<optab>mode_undef): Drop
+ 	unnecessary alternatives.
+ 	(pred_<madd_msub><mode>): Likewise.
+ 	(pred_<macc_msac><mode>): Likewise.
+ 	(pred_<madd_msub><mode>_scalar): Likewise.
+ 	(pred_<macc_msac><mode>_scalar): Likewise.
+ 	(pred_mul_neg_<optab><mode>_undef): Likewise.
+ 	(pred_<nmsub_nmadd><mode>): Likewise.
+ 	(pred_<nmsac_nmacc><mode>): Likewise.
+ 	(pred_<nmsub_nmadd><mode>_scalar): Likewise.
+ 	(pred_<nmsac_nmacc><mode>_scalar): Likewise.
+ 
+ 2024-11-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor sorts of unsigned SAT_ADD match pattern.
+ 
+ 2024-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_get_data_access_cost): Pass NULL for SLP
+ 	node.
+ 	* tree-vect-stmts.cc (record_stmt_cost): Expose.
+ 	(vect_get_store_cost, vect_get_load_cost): Extend with SLP node.
+ 	(vectorizable_store, vectorizable_load): Pass SLP node to all costing.
+ 	* tree-vectorizer.h (record_stmt_cost): Always pass both SLP node and
+ 	stmt_vinfo to costing.
+ 	(vect_get_load_cost, vect_get_store_cost): Extend with SLP node.
+ 
+ 2024-11-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR target/102296
+ 	* config/i386/sol2.h (ASM_DECLARE_OBJECT_NAME): Use decl size
+ 	instead of type size.
+ 	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+ 
+ 2024-11-21  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* tree-ssa-forwprop.cc (struct _vec_perm_simplify_seq): New data
+ 	structure to store analysis results of a vec perm simplify sequence.
+ 	(get_vect_selector_index_map): Helper to get an index map from the
+ 	provided vector permute selector.
+ 	(recognise_vec_perm_simplify_seq): Helper to recognise a
+ 	vec perm simplify sequence.
+ 	(narrow_vec_perm_simplify_seq): Helper to pack the lanes more
+ 	tight.
+ 	(can_blend_vec_perm_simplify_seqs_p): Test if two vec perm
+ 	sequences can be blended.
+ 	(calc_perm_vec_perm_simplify_seqs): Helper to calculate the new
+ 	permutation indices.
+ 	(blend_vec_perm_simplify_seqs): Helper to blend two vec perm
+ 	simplify sequences.
+ 	(process_vec_perm_simplify_seq_list): Helper to process a list
+ 	of vec perm simplify sequences.
+ 	(append_vec_perm_simplify_seq_list): Helper to add a vec perm
+ 	simplify sequence to the list.
+ 	(pass_forwprop::execute): Integrate new functionality.
+ 
+ 2024-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117720
+ 	* tree-vect-stmts.cc (vectorizable_load): For VMAT_STRIDED_SLP
+ 	verify the choosen load type is OK with regard to alignment.
+ 
+ 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (-std=c23): Adjust documentation for
+ 	publication of the ISO/IEC 9899:2024 standard.
+ 	* doc/standards.texi: Likewise.  Document -std=gnu17 and
+ 	-std=gnu23 options.  Mention that -std=gnu23 rather than
+ 	-std=gnu17 is now the default for C.
+ 
+ 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/94589
+ 	PR tree-optimization/117612
+ 	* tree-ssa-phiopt.cc (spaceship_replacement): Handle
+ 	HONOR_NANS (TREE_TYPE (lhs1)) case when possible.
+ 
+ 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/94589
+ 	PR tree-optimization/117612
+ 	* tree-ssa-phiopt.cc (spaceship_replacement): Fix up
+ 	a pasto in check when arg1 is 2.
+ 
+ 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117024
+ 	* coretypes.h (enum function_class): Add function_c2y_misc
+ 	enumerator.
+ 	* builtin-types.def (BT_FN_UINTMAX_INTMAX, BT_FN_ULONG_LONG,
+ 	BT_FN_ULONGLONG_LONGLONG): New DEF_FUNCTION_TYPE_1s.
+ 	* builtins.def (DEF_C2Y_BUILTIN): Define.
+ 	(BUILT_IN_UABS, BUILT_IN_UIMAXABS, BUILT_IN_ULABS,
+ 	BUILT_IN_ULLABS): New builtins.
+ 	* builtins.cc (fold_builtin_abs): Handle also folding of u*abs
+ 	to ABSU_EXPR.
+ 	(fold_builtin_1): Handle BUILT_IN_U{,L,LL,IMAX}ABS.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/114567
+ 	* config/rs6000/rs6000.md (expander signbit<FLOAT128:mode>2): Adjust.
+ 	(*signbit<mode>2_dm_mem): Rename to ...
+ 	(signbit<mode>2_dm_mem): ... this.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/altivec.md (altivec_vadduqm): Rename to ...
+ 	(addv1ti3): ... this.
+ 	(altivec_vsubuqm): Rename to ...
+ 	(subv1ti3): ... this.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_vadduqm):
+ 	Replace bif expander altivec_vadduqm with addv1ti3.
+ 	(__builtin_altivec_vsubuqm): Replace bif expander altivec_vsubuqm with
+ 	subv1ti3.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/altivec.md (mode attr for V1TI in VI_unit): Remove.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.md (*eqv<BOOL_128:mode>3_internal1): Generate
+ 	insn veqv if TARGET_ALTIVEC and operands are altivec_register_operand.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_IEEE): Remove.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
+ 	ISA_3_0_MASKS_IEEE check with TARGET_P9_VECTOR.
+ 
+ 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Simplify
+ 	TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_P8_VECTOR.
+ 	(rs6000_output_move_128bit): Simplify TARGET_VSX && TARGET_DIRECT_MOVE
+ 	as TARGET_DIRECT_MOVE.
+ 	* config/rs6000/rs6000.h (TARGET_XSCVDPSPN): Simplify conditions
+ 	TARGET_DIRECT_MOVE || TARGET_P8_VECTOR as TARGET_P8_VECTOR.
+ 	(TARGET_XSCVSPDPN): Likewise.
+ 	(TARGET_DIRECT_MOVE_128): Simplify TARGET_DIRECT_MOVE &&
+ 	TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT.
+ 	(TARGET_VEXTRACTUB): Likewise.
+ 	(TARGET_DIRECT_MOVE_64BIT): Simplify TARGET_P8_VECTOR &&
+ 	TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE.
+ 	* config/rs6000/rs6000.md (signbit<mode>2, @signbit<mode>2_dm,
+ 	*signbit<mode>2_dm_mem, floatsi<mode>2_lfiwax,
+ 	floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext,
+ 	floatunssi<mode>2_lfiwzx, float<QHI:mode><SFDF:mode>2,
+ 	*float<QHI:mode><SFDF:mode>2_internal, floatuns<QHI:mode><SFDF:mode>2,
+ 	*floatuns<QHI:mode><SFDF:mode>2_internal, p8_mtvsrd_v16qidi2,
+ 	p8_mtvsrd_df, p8_xxpermdi_<mode>, reload_vsx_from_gpr<mode>,
+ 	p8_mtvsrd_sf, reload_vsx_from_gprsf, p8_mfvsrd_3_<mode>,
+ 	reload_gpr_from_vsx<mode>, reload_gpr_from_vsxsf, unpack<mode>_dm):
+ 	Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as
+ 	TARGET_DIRECT_MOVE_64BIT.
+ 	(unpack<mode>_nodm): Simplify !TARGET_DIRECT_MOVE || !TARGET_POWERPC64
+ 	as !TARGET_DIRECT_MOVE_64BIT.
+ 	(fix_trunc<mode>si2, fix_trunc<mode>si2_stfiwx,
+ 	fix_trunc<mode>si2_internal): Simplify TARGET_P8_VECTOR &&
+ 	TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE.
+ 	(fix_trunc<mode>si2_stfiwx, fixuns_trunc<mode>si2_stfiwx): Remove some
+ 	dead code as the guard TARGET_DIRECT_MOVE there never holds.
+ 	(fixuns_trunc<mode>si2_stfiwx): Change TARGET_P8_VECTOR with
+ 	TARGET_DIRECT_MOVE which is a better fit.
+ 	* config/rs6000/vsx.md (define_peephole2 for SFmode in GPR): Simplify
+ 	TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT.
+ 
+ 2024-11-20  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* tree-cfg.cc (assign_discriminators): Fix incorrect value passed to
+ 	next_discriminator_for_locus().
+ 
+ 2024-11-20  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/116587
+ 	* lra-assigns.cc (find_all_spills_for): Consider all pseudos whose
+ 	classes intersect given pseudo class.
+ 
+ 2024-11-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* read-md.h (class rtx_reader): Don't include m_reuse_rtx_by_id
+ 	when GENERATOR_FILE is defined.
+ 	* read-rtl.cc (rtx_reader::read_rtx_code): Disable reuse_rtx
+ 	support when GENERATOR_FILE is defined.
+ 
+ 2024-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117709
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Only
+ 	set *poffset when we end up with VMAT_CONTIGUOUS_DOWN
+ 	or VMAT_CONTIGUOUS_REVERSE.
+ 
+ 2024-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117698
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Properly
+ 	disregard alignment for VMAT_STRIDED_SLP and VMAT_INVARIANT.
+ 	(vectorizable_load): Adjust guard for dumping whether we
+ 	vectorize and unaligned access.
+ 	(vectorizable_store): Likewise.
+ 
+ 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* builtins.cc (builtin_fnspec): Handle BUILT_IN_OMP_GET_MAPPED_PTR.
+ 	* gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_DISPATCH.
+ 	* gimple-pretty-print.cc (dump_gimple_omp_dispatch): New function.
+ 	(pp_gimple_stmt_1): Handle GIMPLE_OMP_DISPATCH.
+ 	* gimple-walk.cc (walk_gimple_stmt): Likewise.
+ 	* gimple.cc (gimple_build_omp_dispatch): New function.
+ 	(gimple_copy): Handle GIMPLE_OMP_DISPATCH.
+ 	* gimple.def (GIMPLE_OMP_DISPATCH): Define.
+ 	* gimple.h (gimple_build_omp_dispatch): Declare.
+ 	(gimple_has_substatements): Handle GIMPLE_OMP_DISPATCH.
+ 	(gimple_omp_dispatch_clauses): New function.
+ 	(gimple_omp_dispatch_clauses_ptr): Likewise.
+ 	(gimple_omp_dispatch_set_clauses): Likewise.
+ 	(gimple_return_set_retval): Handle GIMPLE_OMP_DISPATCH.
+ 	* gimplify.cc (enum omp_region_type): Add ORT_DISPATCH.
+ 	(struct gimplify_omp_ctx): Add in_call_args.
+ 	(gimplify_call_expr): Handle need_device_ptr arguments.
+ 	(is_gimple_stmt): Handle OMP_DISPATCH.
+ 	(gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DEVICE in a dispatch
+ 	construct. Handle OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT.
+ 	(omp_has_novariants): New function.
+ 	(omp_has_nocontext): Likewise.
+ 	(omp_construct_selector_matches): Handle OMP_DISPATCH with nocontext
+ 	clause.
+ 	(find_ifn_gomp_dispatch): New function.
+ 	(gimplify_omp_dispatch): Likewise.
+ 	(gimplify_expr): Handle OMP_DISPATCH.
+ 	* gimplify.h (omp_has_novariants): Declare.
+ 	* internal-fn.cc (expand_GOMP_DISPATCH): New function.
+ 	* internal-fn.def (GOMP_DISPATCH): Define.
+ 	* omp-builtins.def (BUILT_IN_OMP_GET_MAPPED_PTR): Define.
+ 	(BUILT_IN_OMP_GET_DEFAULT_DEVICE): Define.
+ 	(BUILT_IN_OMP_SET_DEFAULT_DEVICE): Define.
+ 	* omp-general.cc (omp_construct_traits_to_codes): Add OMP_DISPATCH.
+ 	(struct omp_ts_info): Add dispatch.
+ 	(omp_resolve_declare_variant): Handle novariants. Adjust
+ 	DECL_ASSEMBLER_NAME.
+ 	* omp-low.cc (scan_omp_1_stmt): Handle GIMPLE_OMP_DISPATCH.
+ 	(lower_omp_dispatch): New function.
+ 	(lower_omp_1): Call it.
+ 	* tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_OMP_DISPATCH.
+ 	(estimate_num_insns): Handle GIMPLE_OMP_DISPATCH.
+ 
+ 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* builtin-types.def (BT_FN_PTR_CONST_PTR_INT): New.
+ 	* omp-selectors.h (enum omp_ts_code): Add OMP_TRAIT_CONSTRUCT_DISPATCH.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_NOVARIANTS and
+ 	OMP_CLAUSE_NOCONTEXT.
+ 	* tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_NOVARIANTS
+ 	and OMP_CLAUSE_NOCONTEXT.
+ 	(dump_generic_node): Handle OMP_DISPATCH.
+ 	* tree.cc (omp_clause_num_ops): Add OMP_CLAUSE_NOVARIANTS and
+ 	OMP_CLAUSE_NOCONTEXT.
+ 	(omp_clause_code_name): Add "novariants" and "nocontext".
+ 	* tree.def (OMP_DISPATCH): New.
+ 	* tree.h (OMP_DISPATCH_BODY): New macro.
+ 	(OMP_DISPATCH_CLAUSES): New macro.
+ 	(OMP_CLAUSE_NOVARIANTS_EXPR): New macro.
+ 	(OMP_CLAUSE_NOCONTEXT_EXPR): New macro.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (sme2p1): New extension.
+ 	* doc/invoke.texi: Document it.
+ 	* config/aarch64/aarch64.h (TARGET_STREAMING_SME2p1): New macro.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Conditionally define __ARM_FEATURE_SME2p1.
+ 	* config/aarch64/iterators.md (UNSPEC_SME_READZ, UNSPEC_SME_READZ_HOR)
+ 	(UNSPEC_SME_READZ_VER): New unspecs.
+ 	(optab, hv): Handle them.
+ 	(SME_READZ_HV): New int iterator.
+ 	* config/aarch64/aarch64-sme.md
+ 	(UNSPEC_SME_ZERO_SLICES): New unspec.
+ 	(@aarch64_sme_<SME_READZ_HV:optab><v_int_container><mode>)
+ 	(*aarch64_sme_<SME_READZ_HV:optab><v_int_container><mode>_plus)
+ 	(@aarch64_sme_<SME_READZ_HV:optab><VNx1TI_ONLY:mode><SVE_FULL:mode>)
+ 	(@aarch64_sme_<SME_READZ_HV:optab><SVE_FULLx24:mode><mode>)
+ 	(*aarch64_sme_<SME_READZ_HV:optab><SVE_FULLx24:mode><mode>_plus)
+ 	(@aarch64_sme_readz<mode>, *aarch64_sme_readz<mode>_plus)
+ 	(@aarch64_sme_zero_za_slices<mode>): New patterns.
+ 	(*aarch64_sme_zero_za_slices<mode>_plus): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(inherent_za_slice): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(inherent_za_slice_def, inherent_za_slice): New shape.
+ 	* config/aarch64/aarch64-sve-builtins-sme.h (svreadz_za)
+ 	(svreadz_hor_za, svreadz_ver_za): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc
+ 	(svread_za_slice_base): New class, split out from...
+ 	(svread_za_impl): ...here.
+ 	(svreadz_za_impl, svreadz_za_tile_impl): New type aliases.
+ 	(zero_slices_mode): New function.
+ 	(svzero_za_impl::expand): Handle the slice forms.
+ 	(svreadz_za, svreadz_hor_za, svreadz_ver_za): New functions.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Add the SME2p1
+ 	instructions.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(sme-b16b16): New extension.
+ 	* doc/invoke.texi: Document it.
+ 	* config/aarch64/aarch64.h (TARGET_STREAMING_SME_B16B16): New macro.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Conditionally define __ARM_FEATURE_SME_B16B16.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Add SME_B16B16 forms
+ 	of existing intrinsics.
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>)
+ 	(*aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>_plus)
+ 	(@aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(*aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
+ 	(@aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(*aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
+ 	(@aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(*aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(@aarch64_sme_<SME_FP_MOP:optab><mode><mode>): Extend to BF16 modes.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_za_h_bfloat): New
+ 	type macro.
+ 	* config/aarch64/iterators.md (SME_ZA_HSDFx24): Add BF16 modes.
+ 	(SME_MOP_HSDF): Likewise.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(sme-f16f16): New extension.
+ 	* doc/invoke.texi: Document it.  Also document that sme-i16i64 and
+ 	sme-f64f64 enable SME.
+ 	* config/aarch64/aarch64.h (TARGET_STREAMING_SME_F16F16): New macro.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Conditionally define __ARM_FEATURE_SME_F16F16.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtl): Add
+ 	new SME_F16F16 intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Add SME_F16F16 forms
+ 	of existing intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_h_float)
+ 	(TYPES_cvt_f32_f16, TYPES_za_h_float): New type macros.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svcvt_impl::expand): Add sext_optab as another possibility.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl_impl): New class.
+ 	(svcvtl): New function.
+ 	* config/aarch64/iterators.md (VNx8SF_ONLY): New mode iterator.
+ 	(SME_ZA_SDFx24): Replace with...
+ 	(SME_ZA_HSDFx24): ...this.
+ 	(SME_MOP_SDF): Replace with...
+ 	(SME_MOP_HSDF): ...this.
+ 	(SME_BINARY_SLICE_SDF): Replace with...
+ 	(SME_BINARY_SLICE_HSDF): ...this.
+ 	* config/aarch64/aarch64-sve2.md (extendvnx8hfvnx8sf2)
+ 	(@aarch64_sve_cvtl<mode>): New patterns.
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_<SME_BINARY_SLICE_SDF:optab><mode>): Extend to...
+ 	(@aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>): ...this.
+ 	(*aarch64_sme_<SME_BINARY_SLICE_SDF:optab><mode>_plus): Extend to...
+ 	(*aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>_plus): ...this.
+ 	(@aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>): Extend to
+ 	HF modes.
+ 	(*aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
+ 	(@aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(*aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
+ 	(@aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(*aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
+ 	(@aarch64_sme_<SME_FP_MOP:optab><mode><mode>): Likewise.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(sve-b16b16): New extension.
+ 	* doc/invoke.texi: Document it.
+ 	* config/aarch64/aarch64.h (TARGET_SME_B16B16, TARGET_SVE2_OR_SME2)
+ 	(TARGET_SSVE_B16B16): New macros.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Conditionally define __ARM_FEATURE_SVE_B16B16
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Add AARCH64_FL_SVE2
+ 	to the SVE2p1 requirements.  Add SVE_B16B16 forms of existing
+ 	intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins.cc (type_suffixes): Treat
+ 	bfloat as a floating-point type.
+ 	(TYPES_h_bfloat): New macro.
+ 	* config/aarch64/aarch64.md (is_bf16, is_rev, supports_bf16_rev)
+ 	(mode_enabled): New attributes.
+ 	(enabled): Test mode_enabled.
+ 	* config/aarch64/iterators.md (SVE_FULL_F_BF): New mode iterator.
+ 	(SVE_CLAMP_F): Likewise.
+ 	(SVE_Fx24): Add BF16 modes when TARGET_SSVE_B16B16.
+ 	(sve_lane_con): Handle BF16 modes.
+ 	(b): Handle SF and DF modes.
+ 	(is_bf16): New mode attribute.
+ 	(supports_bf16, supports_bf16_rev): New int attributes.
+ 	* config/aarch64/predicates.md
+ 	(aarch64_sve_float_maxmin_immediate): Reject BF16 modes.
+ 	* config/aarch64/aarch64-sve.md
+ 	(*post_ra_<sve_fp_op><mode>3): Add BF16 support, and likewise
+ 	for the associated define_split.
+ 	(<optab:SVE_COND_FP_BINARY_OPTAB><mode>): Add BF16 support.
+ 	(@cond_<optab:SVE_COND_FP_BINARY><mode>): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_2_relaxed): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_2_strict): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_3_relaxed): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_3_strict): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_any_relaxed): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_BINARY><mode>_any_strict): Likewise.
+ 	(@aarch64_mul_lane_<mode>): Likewise.
+ 	(<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
+ 	(@aarch64_pred_<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
+ 	(@cond_<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_TERNARY><mode>_4_relaxed): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_TERNARY><mode>_4_strict): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_TERNARY><mode>_any_relaxed): Likewise.
+ 	(*cond_<optab:SVE_COND_FP_TERNARY><mode>_any_strict): Likewise.
+ 	(@aarch64_<optab:SVE_FP_TERNARY_LANE>_lane_<mode>): Likewise.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_pred_<optab:SVE_COND_FP_BINARY><mode>): Define BF16 version.
+ 	(@aarch64_sve_fclamp<mode>): Add BF16 support.
+ 	(*aarch64_sve_fclamp<mode>_x): Likewise.
+ 	(*aarch64_sve_<maxmin_uns_op><SVE_Fx24:mode>): Likewise.
+ 	(*aarch64_sve_single_<maxmin_uns_op><SVE_Fx24:mode>): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_float_arith_immediate_p)
+ 	(aarch64_sve_float_mul_immediate_p): Return false for BF16 modes.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_write<mode>)
+ 	(*aarch64_sme_write<mode>_plus): Use UNSPEC_SME_WRITE instead
+ 	of UNSPEC_SME_READ.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (SME_READ): Rename to...
+ 	(SME_READ_HV): ...this.
+ 	(SME_WRITE): Rename to...
+ 	(SME_WRITE_HV): ...this.
+ 	* config/aarch64/aarch64-sme.md: Update accordingly.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (SVE_COND_FP): New code attribute.
+ 	* config/aarch64/aarch64-sve.md: Use a single define_split to
+ 	handle the conversion of predicated FADD, FSUB, and FMUL into
+ 	unpredicated forms.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (SME_ZA_SDF_I): Delete.
+ 	(SME_MOP_HSDF): Replace with...
+ 	(SME_MOP_SDF): ...this.
+ 	* config/aarch64/aarch64-sme.md: Change the non-widening FMLA and
+ 	FMLS patterns so that both mode parameters are the same, rather than
+ 	using both SME_ZA_SDF_I and SME_ZA_SDFx24 and checking that their
+ 	element sizes are the same.  Split the FMOPA and FMOPS patterns
+ 	into separate non-widening and widening forms, then update the
+ 	non-widening forms in a similar way to FMLA and FMLS.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(sme_2mode_function_t::expand): If the two type suffixes have the same
+ 	element size, use the vector tuple mode for both mode parameters.
+ 
+ 2024-11-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (legitimize_tls_address)
+ 	<TLS_MODEL_INITIAL_EXEC>: Remove 64-bit Solaris ld workaround.
+ 	* config/i386/i386.md (UNSPEC_TLS_IE_SUN): Remove.
+ 	(tls_initial_exec_64_sun): Remove.
+ 
+ 2024-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117574
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne):
+ 	Use the obvious may_be_zero condition.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* machmode.h (opt_mode::opt_mode): New overload.
+ 	* optabs-query.h (get_absneg_bit_mode): Declare.
+ 	* optabs-query.cc (get_absneg_bit_mode): New function, split
+ 	out from expand_absneg_bit.
+ 	(can_open_code_p): Use get_absneg_bit_mode.
+ 	* optabs.cc (expand_absneg_bit): Likewise.  Take an outer and inner
+ 	mode, rather than just one.  Handle vector modes.
+ 	(expand_unop, expand_abs_nojump): Update calls accordingly.
+ 	Handle vector modes.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment): Use
+ 	can_implement_p instead of optab_handler.
+ 	* tree-vect-generic.cc (add_rshift, expand_vector_divmod): Likewise.
+ 	(optimize_vector_constructor, type_for_widest_vector_mode): Likewise.
+ 	(lower_vec_perm, expand_vector_operations_1): Likewise.
+ 	* tree-vect-loop.cc (have_whole_vector_shift): Likewise.
+ 	* tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
+ 	(target_has_vecop_for_code, vect_recog_mult_pattern): Likewise.
+ 	(vect_recog_divmod_pattern): Likewise.
+ 	* tree-vect-stmts.cc (vect_supportable_shift, vectorizable_shift)
+ 	(scan_store_can_perm_p, check_scan_store, vectorizable_store)
+ 	(vectorizable_load, vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 
+ 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* optabs-query.cc (can_open_code_p, can_implement_p): Declare.
+ 	* optabs-query.h (can_open_code_p, can_implement_p): New functions.
+ 	* optabs-tree.cc (target_supports_op_p): Use can_implement_p.
+ 	* tree-vect-stmts.cc (vectorizable_operation): Likewise.
+ 	* tree-vect-generic.cc (get_compute_type): Likewise.  Remove code
+ 	parameter.
+ 	(expand_vector_scalar_condition, expand_vector_conversion)
+ 	(expand_vector_operations_1): Update calls accordingly.
+ 
+ 2024-11-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_mve_dlstp_check_dec_counter): Call
+ 	single_pred_p to verify it's safe to call single_pred.
+ 
+ 2024-11-20  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	PR target/117669
+ 	* config/riscv/vector-iterators.md:
+ 
+ 2024-11-20  MayShao-oc  <MayShao-oc@zhaoxin.com>
+ 
+ 	PR target/117438
+ 	* config/i386/i386-features.cc (TARGET_ALIGN_TIGHT_LOOPS):
+ 	default true in all processors except for m_ZHAOXIN, m_CASCADELAKE, and
+ 	m_SKYLAKE_AVX512.
+ 	* config/i386/i386.h (TARGET_ALIGN_TIGHT_LOOPS): New Macro.
+ 	* config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS):
+ 	New tune
+ 
+ 2024-11-20  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New.
+ 	* config/riscv/riscv.opt: New.
+ 
+ 2024-11-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/117649
+ 	* config/riscv/riscv.md (branch on masked/shifted operands): Use
+ 	arithmetic rather than logical shift for operand 1.
+ 
+ 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/54378
+ 	* config/avr/avr.cc (avr_default_shift_costs): New static function.
+ 	(avr_rtx_costs_1) [ASHIFT, LSHIFTRT, ASHIFTRT]: Use it
+ 	to determine the default shift costs for shifts with a
+ 	constant shift offset.
+ 
+ 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (ashlhi3, *ashlhi3_const_split, *ashlhi3_const)
+ 	(*ashlpsi3_split, *ashlpsi3)
+ 	(ashlsi3, *ashlsi3_const_split, *ashlsi3_const)
+ 	(ashrhi3, *ashrhi3, ashrpsi3, *ashrpsi3, ashrsi3, *ashrsi3)
+ 	(*ashrhi3_const_split, *ashrhi3_const, *ashrsi3_const_split, *ashrsi3_const):
+ 	Add constraint alternatives that allow a 3-operand operation when the
+ 	shift offset is one less than the mode's bitsize.
+ 	* config/avr/avr.cc (ashl<mode>3_out, ashr<mode>3_out)
+ 	(lshr<mode>3_out): Use avr_asm_len for asm_out and length tracking.
+ 	(ashrhi3_out, ashlhi3_out): Support the new "r,r,C15" alternatives.
+ 	(ashrsi3_out, ashlsi3_out): Support the new "r,r,C31" alternatives.
+ 	(avr_out_ashrpsi3, avr_out_ashlpsi3): Support the new "r,r,C23" alternatives.
+ 
+ 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.h (avr_args.has_stack_args): Be a bool.
+ 	(struct machine_function) <is_naked, is_noblock, is_OS_task,
+ 	is_OS_task, sibcall_fails, attributes_checked_p, is_no_gccisr,
+ 	use_L__stack_usage, gasisr.yes, gasisr.maybe>: Same.
+ 	* config/avr/avr-protos.h (reg_unused_after)
+ 	(test_hard_reg_class, jump_over_one_insn_p): Use bool as
+ 	return type.
+ 	* config/avr/avr.cc (reg_unused_after)
+ 	(test_hard_reg_class, jump_over_one_insn_p): Same.
+ 	(cfun->machine->attributes_checked_p, cum->has_stack_args)
+ 	(cfun->machine->use_L__stack_usage, cfun->machine->gasisr.yes)
+ 	(cfun->machine->sibcall_fails): Use like a bool.
+ 
+ 2024-11-19  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_override_options_internal):
+ 	Set division option's default to disabled if multiplication
+ 	is not available.
+ 
+ 2024-11-19  Jason Merrill  <jason@redhat.com>
+ 
+ 	* warning-control.cc (has_warning_spec): Fix handling of
+ 	get_no_warning_bit.
+ 
+ 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/84211
+ 	* config/avr/avr-passes.cc (memento_t::apply_insn1): Don't
+ 	use operator &= on memento_t.known but on memento_t itself.
+ 
+ 2024-11-19  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	PR target/117657
+ 	* config/gcn/gcn-valu.md (mask_gather_load<mode><vnsi>): Fix bug in
+ 	maskload else patch.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/cygming.h (TARGET_ASM_LTO_START): New.
+ 	(TARGET_ASM_LTO_END): Likewise.
+ 	* config/i386/cygming.h (TARGET_ASM_LTO_START): Update.
+ 	(TARGET_ASM_LTO_END): Likewise.
+ 	* config/i386/i386-protos.h (i386_pe_asm_lto_start): Delete.
+ 	(i386_pe_asm_lto_end): Likewise.
+ 	* config/mingw/winnt.cc (i386_pe_asm_lto_start): Rename
+ 	into ...
+ 	(mingw_pe_asm_lto_start): ... this.
+ 	(i386_pe_asm_lto_end): Rename into ...
+ 	(mingw_pe_asm_lto_end): ... this.
+ 	* config/mingw/winnt.h (mingw_pe_asm_lto_start): New.
+ 	(mingw_pe_asm_lto_end): Likewise.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_load_symref_appropriately):
+ 	Update.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/aarch64-coff.h (LOCAL_LABEL_PREFIX):
+ 	Use "." as the local label prefix.
+ 	(ASM_OUTPUT_ALIGNED_LOCAL): Remove.
+ 	(ASM_OUTPUT_LOCAL): New.
+ 	* config/aarch64/cygming.h (ASM_OUTPUT_EXTERNAL_LIBCALL):
+ 	Update.
+ 	(ASM_DECLARE_OBJECT_NAME): New.
+ 	(ASM_DECLARE_FUNCTION_NAME): New.
+ 	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME):
+ 	Update.
+ 	(ASM_OUTPUT_EXTERNAL_LIBCALL): Update.
+ 	* config/mingw/winnt.cc (mingw_pe_declare_function_type):
+ 	Rename into ...
+ 	(mingw_pe_declare_type): ... this.
+ 	(i386_pe_start_function): Update.
+ 	* config/mingw/winnt.h (mingw_pe_declare_function_type):
+ 	Rename into ...
+ 	(mingw_pe_declare_type): ... this.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_classify_symbol):
+ 	Disable GOT for PECOFF target.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config.gcc: Add missing dependencies.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/aarch64.cc (TARGET_ASM_UNALIGNED_HI_OP):
+ 	Enable DWARF.
+ 	(TARGET_ASM_UNALIGNED_SI_OP): Likewise.
+ 	(TARGET_ASM_UNALIGNED_DI_OP): Likewise.
+ 	* config/aarch64/cygming.h (DWARF2_DEBUGGING_INFO): Likewise.
+ 	(PREFERRED_DEBUGGING_TYPE): Likewise.
+ 	(DWARF2_UNWIND_INFO): Likewise.
+ 	(ASM_OUTPUT_DWARF_OFFSET): Likewise.
+ 
+ 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
+ 
+ 	* config/aarch64/cygming.h (SUB_TARGET_RECORD_STUB): Request
+ 	declaration for weak symbols.
+ 	(PE_COFF_LEGITIMIZE_EXTERN_DECL): Legitimize external
+ 	declaration for weak symbols.
+ 	* config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Update
+ 	declarations in ix86 with the same functionality.
+ 	(PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
+ 	* config/mingw/winnt-dll.cc (legitimize_pe_coff_symbol):
+ 	Support declaration for weak symbols if requested.
+ 	* config/mingw/winnt.cc (struct stub_list): Likewise.
+ 	(mingw_pe_record_stub): Likewise.
+ 	(mingw_pe_file_end): Likewise.
+ 	* config/mingw/winnt.h (mingw_pe_record_stub): Likewise.
+ 
+ 2024-11-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_merge_patterns): Load VLS
+ 	indices directly.
+ 
+ 2024-11-19  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/117297
+ 	* recog.h (temporarily_undo_changes, redo_changes): Delete in
+ 	favor of...
+ 	(undo_recog_changes): ...this new RAII class.
+ 	* fwprop.cc (should_replace_address): Update accordingly.
+ 	(fwprop_propagation::check_mem): Likewise.
+ 	(try_fwprop_subst_note): Likewise.
+ 	(try_fwprop_subst_pattern): Likewise.
+ 	* rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise.
+ 	* rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Temporarily
+ 	undo all in-progress changes while computing the cost of the original
+ 	sequence.
+ 	* recog.cc (temporarily_undone_changes): Replace with...
+ 	(undo_recog_changes::s_num_changes): ...this static member variable.
+ 	(validate_change_1): Update check accordingly.
+ 	(confirm_change_group): Likewise.
+ 	(num_validated_changes): Likewise.
+ 	(temporarily_undo_changes): Replace with...
+ 	(undo_recog_changes::undo_recog_changes): ...this constructor.
+ 	(redo_changes): Replace with...
+ 	(undo_recog_changes::~undo_recog_changes): ...this destructor.
+ 
+ 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117458
+ 	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
+ 	call extract_bit_field if op0 has complex mode and isn't a MEM,
+ 	instead first force op0 into memory and then call extract_bit_field.
+ 
+ 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117459
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt,
+ 	bitint_large_huge::lower_stmt): Handle PAREN_EXPR.
+ 
+ 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117571
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt,
+ 	bitint_large_huge::lower_stmt, stmt_needs_operand_addr,
+ 	build_bitint_stmt_ssa_conflicts, gimple_lower_bitint): Handle
+ 	EXACT_DIV_EXPR like TRUNC_DIV_EXPR.
+ 
+ 2024-11-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* config/avr/avr.opt.urls: Regenerate for
+ 	r15-5415-gc3db52bb47913a.
+ 
+ 2024-11-19  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (add_to_fieldlist): New function.
+ 	(add_struct_member): Call recursively to flatten structs, and call
+ 	add_to_fieldlist.
+ 	(add_struct_static_member): Call add_to_fieldlist.
+ 	(add_struct_function): Call add_to_fieldlist.
+ 	(add_struct_inheritance): Call add_to_fieldlist.
+ 	(add_struct_nested_type): Call add_to_fieldlist.
+ 	(get_type_num_struct): Move code to add_to_fieldlist, and move
+ 	responsibility for this to subfunctions.
+ 
+ 2024-11-19  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add LF_NESTTYPE.
+ 	(struct codeview_subtype): Add lf_nesttype to union.
+ 	(flush_deferred_types): Add declaration.
+ 	(write_lf_fieldlist): Handle LF_NESTTYPE.
+ 	(codeview_debug_finish): Call flush_deferred_types.
+ 	(add_struct_nested_type): New function.
+ 	(get_type_num_struct): Call add_struct_nested_type, and if nested make
+ 	that parent is added.
+ 
+ 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/96032
+ 	* Makefile.in (lang_checks): If libdiagnostics is enabled, add
+ 	check-sarif-replay.
+ 	(SARIF_REPLAY_OBJS): New.
+ 	(ALL_HOST_OBJS): If libdiagnostics is enabled, add
+ 	$(SARIF_REPLAY_OBJS).
+ 	(sarif-replay): New.
+ 	(install-libdiagnostics): Add sarif-replay to deps, and install
+ 	it.
+ 	* configure: Regenerate.
+ 	* configure.ac (check_languages): If libdiagnostics is enabled,
+ 	add check-sarif-replay.
+ 	(LIBDIAGNOSTICS): If libdiagnostics is enabled, add sarif-replay.
+ 	* doc/install.texi (--enable-libdiagnostics): Note that it also
+ 	enables sarif-replay.
+ 	* libsarifreplay.cc: New file.
+ 	* libsarifreplay.h: New file.
+ 	* sarif-replay.cc: New file.
+ 	* sarif-spec-urls.def: New file.
+ 
+ 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add json-parsing.o.
+ 	* json-parsing.cc: New file.
+ 	* json-parsing.h: New file.
+ 	* json.cc (selftest::assert_print_eq): Remove "static".
+ 	* json.h (json::array::begin): New.
+ 	(json::array::end): New.
+ 	(json::array::length): New.
+ 	(json::array::get): New.
+ 	(is_a_helper <json::value *>::test): New.
+ 	(is_a_helper <const json::value *>::test): New.
+ 	(is_a_helper <json::object *>::test): New.
+ 	(is_a_helper <const json::object *>::test): New.
+ 	(is_a_helper <json::array *>::test): New.
+ 	(is_a_helper <const json::array *>::test): New.
+ 	(is_a_helper <json::float_number *>::test): New.
+ 	(is_a_helper <const json::float_number *>::test): New.
+ 	(is_a_helper <json::integer_number *>::test): New.
+ 	(is_a_helper <const json::integer_number *>::test): New.
+ 	(is_a_helper <json::string *>::test): New.
+ 	(is_a_helper <const json::string *>::test): New.
+ 	(selftest::assert_print_eq): New decl.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::json_parser_cc_tests.
+ 	* selftest.h (selftest::json_parser_cc_tests): New decl.
+ 
+ 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* configure.ac (check_languages): Add check-libdiagnostics.
+ 	(--enable-libdiagnostics): New.
+ 	* configure: Regenerate.
+ 	* Makefile.in (enable_libdiagnostics): New.
+ 	(lang_checks): If libdiagnostics is enabled, add
+ 	check-libdiagnostics.
+ 	(ALL_HOST_OBJS): If libdiagnostics is enabled, add
+ 	$(libdiagnostics_OBJS).
+ 	(start.encap): Add LIBDIAGNOSTICS.
+ 	(libdiagnostics_OBJS): New.
+ 	(LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in
+ 	jit/Make-lang.in.
+ 	(LIBDIAGNOSTICS_MINOR_NUM): Likewise.
+ 	(LIBDIAGNOSTICS_RELEASE_NUM): Likewise.
+ 	(LIBDIAGNOSTICS_FILENAME): Likewise.
+ 	(LIBDIAGNOSTICS_IMPORT_LIB): Likewise.
+ 	(libdiagnostics): Likewise.
+ 	(LIBDIAGNOSTICS_AGE): Likewise.
+ 	(LIBDIAGNOSTICS_BASENAME): Likewise.
+ 	(LIBDIAGNOSTICS_SONAME): Likewise.
+ 	(LIBDIAGNOSTICS_LINKER_NAME): Likewise.
+ 	(LIBDIAGNOSTICS_COMMA): Likewise.
+ 	(LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise.
+ 	(LIBDIAGNOSTICS_SONAME_OPTION): Likewise.
+ 	(LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise.
+ 	(LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise.
+ 	(LIBDIAGNOSTICS_FILENAME): Likewise.
+ 	(libdiagnostics.serial): Likewise.
+ 	(LIBDIAGNOSTICS_EXTRA_OPTS): Likewise.
+ 	(install): If libdiagnostics is enabled, add
+ 	install-libdiagnostics.
+ 	(libdiagnostics.install-headers): New.
+ 	(libdiagnostics.install-common): New, adapted from code in
+ 	jit/Make-lang.in.
+ 	(install-libdiagnostics): New.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::get_location_text): Make public.
+ 	* doc/install.texi (--enable-libdiagnostics): New.
+ 	* doc/libdiagnostics/Makefile: New file.
+ 	* doc/libdiagnostics/conf.py: New file.
+ 	* doc/libdiagnostics/index.rst: New file.
+ 	* doc/libdiagnostics/make.bat: New file.
+ 	* doc/libdiagnostics/topics/diagnostic-manager.rst: New file.
+ 	* doc/libdiagnostics/topics/diagnostics.rst: New file.
+ 	* doc/libdiagnostics/topics/execution-paths.rst: New file.
+ 	* doc/libdiagnostics/topics/fix-it-hints.rst: New file.
+ 	* doc/libdiagnostics/topics/index.rst: New file.
+ 	* doc/libdiagnostics/topics/logical-locations.rst: New file.
+ 	* doc/libdiagnostics/topics/message-formatting.rst: New file.
+ 	* doc/libdiagnostics/topics/metadata.rst: New file.
+ 	* doc/libdiagnostics/topics/physical-locations.rst: New file.
+ 	* doc/libdiagnostics/topics/retrofitting.rst: New file.
+ 	* doc/libdiagnostics/topics/sarif.rst: New file.
+ 	* doc/libdiagnostics/topics/text-output.rst: New file.
+ 	* doc/libdiagnostics/topics/ux.rst: New file.
+ 	* doc/libdiagnostics/tutorial/01-hello-world.rst: New file.
+ 	* doc/libdiagnostics/tutorial/02-physical-locations.rst: New file.
+ 	* doc/libdiagnostics/tutorial/03-logical-locations.rst: New file.
+ 	* doc/libdiagnostics/tutorial/04-notes.rst: New file.
+ 	* doc/libdiagnostics/tutorial/05-warnings.rst: New file.
+ 	* doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file.
+ 	* doc/libdiagnostics/tutorial/07-execution-paths.rst: New file.
+ 	* doc/libdiagnostics/tutorial/index.rst: New file.
+ 	* libdiagnostics++.h: New file.
+ 	* libdiagnostics.cc: New file.
+ 	* libdiagnostics.h: New file.
+ 	* libdiagnostics.map: New file.
+ 	* doc/libdiagnostics/tutorial/example-1.png: New file.
+ 
+ 2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/117357
+ 	* config/i386/i386.md (*rsqrtsf2_sse):
+ 	Also enable for !TARGET_SSE_MATH.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* timevar.def (TV_LATE_COMBINE): New timevar.
+ 	* late-combine.cc (pass_data_late_combine): Use it.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::IGNORE_REG): New flag.
+ 	(early_ra::fpr_preference): Handle it.
+ 	(early_ra::record_constraints): Fail the allocation if an
+ 	IGNORE_REG output operand is not independent of the inputs.
+ 	(defines_multi_def_pseudo): New function.
+ 	(early_ra::could_split_region_here): New member function, split
+ 	out from...
+ 	(early_ra::process_block): ...here.  Try splitting a block into
+ 	multiple regions between the definition and use phases of an
+ 	instruction.  Set IGNORE_REG on the output registers if we do so.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::process_block): Check m_accurate_live_ranges
+ 	rather than m_allocation_successful when deciding whether
+ 	to split a block into multiple regions.  Skip over subregions
+ 	that we decide not to allocate.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::get_allocno_subgroup): Split can_change_mode_class test
+ 	out from modes_tieable_p test and only invalidate the live range
+ 	information for the former.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::record_allocation_failure): New member function.
+ 	(early_ra::get_allocno_subgroup): Use it instead of setting
+ 	m_allocation_successful directly.
+ 	(early_ra::record_constraints): Likewise.
+ 	(early_ra::allocate_colors): Likewise.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::record_live_range_failure): New member function.
+ 	(early_ra::m_accurate_live_ranges): New member variable.
+ 	(early_ra::start_new_region): Set m_accurate_live_ranges to true.
+ 	(early_ra::get_allocno_subgroup): Use record_live_range_failure
+ 	to abort the allocation on invalid subregs.
+ 
+ 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::record_insn_refs): Split into...
+ 	(early_ra::record_insn_defs, early_ra::record_insn_call)
+ 	(early_ra::record_insn_uses): ...this new functions.
+ 	(early_ra::process_block): Update accordingly.
+ 
+ 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116253
+ 	* diagnostic-core.h (class auto_diagnostic_nesting_level): New.
+ 	* diagnostic-format-sarif.cc (class sarif_builder): Update leading
+ 	comment re nesting of diagnostics.
+ 	(sarif_result::on_nested_diagnostic): Add nestingLevel property.
+ 	* diagnostic-format-text.cc (on_report_diagnostic): If we're
+ 	showing nested diagnostics, then print changes of location on a
+ 	new line, indented, and update m_last_location.
+ 	(diagnostic_text_output_format::build_prefix): If m_show_nesting,
+ 	then potentially add indentation and a bullet point.
+ 	(get_bullet_point_unichar): New.
+ 	(use_unicode_p): New.
+ 	(diagnostic_text_output_format::build_indent_prefix): New.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_text_output_format):
+ 	Initialize m_show_nesting and m_show_nesting_levels.
+ 	(diagnostic_text_output_format::build_indent_prefix): New decl.
+ 	(diagnostic_text_output_format::show_nesting_p): New accessor
+ 	(diagnostic_text_output_format::show_locations_in_nesting_p):
+ 	Likewise.
+ 	(diagnostic_text_output_format::set_show_nesting): New.
+ 	(diagnostic_text_output_format::set_show_locations_in_nesting):
+ 	New.
+ 	(diagnostic_text_output_format::set_show_nesting_levels): New.
+ 	(diagnostic_text_output_format::m_show_nesting): New field.
+ 	(diagnostic_text_output_format::m_show_locations_in_nesting): New
+ 	field.
+ 	(diagnostic_text_output_format::m_show_nesting_levels): New field.
+ 	* diagnostic-global-context.cc
+ 	(auto_diagnostic_nesting_level::auto_diagnostic_nesting_level):
+ 	New.
+ 	(auto_diagnostic_nesting_level::~auto_diagnostic_nesting_level):
+ 	New.
+ 	* diagnostic-show-locus.cc (layout_printer::print): Temporarily
+ 	set DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE.
+ 	* diagnostic.cc (diagnostic_context::initialize): Update for
+ 	renaming of m_nesting_depth to m_group_nesting_depth and
+ 	initialize m_diagnostic_nesting_level.
+ 	(diagnostic_context::finish): Update for renaming of
+ 	m_nesting_depth to m_group_nesting_depth.
+ 	(diagnostic_context::report_diagnostic): Likewise.
+ 	(diagnostic_context::begin_group): Likewise.
+ 	(diagnostic_context::end_group): Likewise.
+ 	(diagnostic_context::push_nesting_level): New.
+ 	(diagnostic_context::pop_nesting_level): New.
+ 	(diagnostic_context::set_diagnostic_buffer): Update for renaming
+ 	of m_nesting_depth to m_group_nesting_depth.  Assert that we don't
+ 	have nested diagnostics.
+ 	* diagnostic.h (diagnostic_context::push_nesting_level): New decl.
+ 	(diagnostic_context::pop_nesting_level): New decl.
+ 	(diagnostic_context::get_diagnostic_nesting_level): New accessor.
+ 	(diagnostic_context::build_indent_prefix): New decl.
+ 	(diagnostic_context::m_diagnostic_groups): Rename m_nesting_depth
+ 	to m_group_nesting_depth and add field m_diagnostic_nesting_level.
+ 	* doc/invoke.texi (fdiagnostics-add-output): Add note about
+ 	"experimental" schemes, keys, and values.  Add keys
+ 	"experimental-nesting", "experimental-nesting-show-locations",
+ 	and "experimental-nesting-show-levels" to text scheme.
+ 	* opts-diagnostic.cc (text_scheme_handler::make_sink): Add keys
+ 	"experimental-nesting", "experimental-nesting-show-locations",
+ 	and "experimental-nesting-show-levels".
+ 
+ 2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/84211
+ 	* doc/invoke.texi (AVR Options) [-mfuse-move]: Document new option.
+ 	* common/config/avr/avr-common.cc (avr_option_optimization_table):
+ 	Set -mfuse-move= depending on optimization level.
+ 	* config/avr/avr.opt (-mfuse-move, -mfuse-move=): New options.
+ 	* config/avr/t-avr (avr-passes.o): Depend on avr-passes-fuse-move.h.
+ 	* config/avr/avr-passes-fuse-move.h: New file, used by avr-passes.cc.
+ 	* config/avr/avr-passes.def (avr_pass_fuse_move): Insert new pass.
+ 	* config/avr/avr-passes.cc (INCLUDE_ARRAY): Define it.
+ 	(insn-attr.h): Include it.
+ 	(avr_pass_data_fuse_move): New const pass_data.
+ 	(avr_pass_fuse_move): New public rtl_opt_pass class.
+ 	(make_avr_pass_fuse_move): New function.
+ 	(gprmask_t): New typedef.
+ 	(next_nondebug_insn_bb, prev_nondebug_insn_bb)
+ 	(single_set_with_scratch, size_to_mask, size_to_mode)
+ 	(emit_valid_insn, emit_valid_move_clobbercc)
+ 	(gpr_regno_p, regmask, has_bits_in)
+ 	(find_arith, find_arith2, any_shift_p): New local functions.
+ 	(AVRasm): New namespace.
+ 	(FUSE_MOVE_MAX_MODESIZE): New define.
+ 	(avr-passes-fuse-move.h): New include.
+ 	(memento_t, absint_t, absins_byte_t, absint_val_t)
+ 	(optimize_data_t, insn_optimizedata_t, find_plies_data_t)
+ 	(insninfo_t, bbinfo_t, ply_t, plies_t): New structs / classes.
+ 	* config/avr/avr-protos.h (avr_chunk, avr_byte, avr_word, avr_int8)
+ 	(avr_uint8, avr_int16, avr_uint16)
+ 	(avr_out_set_some, avr_set_some_operation)
+ 	(output_reload_in_const, make_avr_pass_fuse_move): New protos.
+ 	(avr_dump): Depend macro definition on GCC_DUMPFILE_H.
+ 	* config/avr/avr.cc (avr_option_override): Insert after
+ 	pass "avr-fuse-move" instead of after "peephole2".
+ 	(avr_chunk, avr_byte, avr_word, avr_int8, avr_uint8, avr_int16)
+ 	(avr_uint16, output_reload_in_const): Functions are no more static.
+ 	(avr_out_set_some, avr_set_some_operation): New functions.
+ 	(ashrqi3_out, ashlqi3_out) [offset=7]: Handle "r,r,C07" alternative.
+ 	(avr_out_insert_notbit): Comment also allows QImode.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_SET_SOME]: Handle case.
+ 	* config/avr/avr.md (adjust_len) <set_some>: New attribute value.
+ 	(set_some): New insn.
+ 	(andqi3, *andqi3): Add "r,r,Cb1" alternative.
+ 	(ashrqi3, *ashrqi3 ashlqi3, *ashlqi3): Add a "r,r,C07" alternative.
+ 	(gen_move_clobbercc_scratch): New emit helper.
+ 	* config/avr/constraints.md (Cb1): New constraint.
+ 	* config/avr/predicates.md (dreg_or_0_operand, set_some_operation): New.
+ 	* config/avr/avr-log.cc (avr_forward_to_printf): New static func.
+ 	(avr_log_vadump): Use it to recognize more formats.
+ 
+ 2024-11-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117594
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1): Pass
+ 	factor == 1 to vect_get_loop_len, insert generated stmts.
+ 
+ 2024-11-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/117595
+ 	* config/riscv/sync.md (atomic_compare_and_swap<mode>): Use gen_lowpart
+ 	rather than simplify_gen_subreg.
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Similarly.
+ 
+ 2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117659
+ 	* config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as
+ 	input (instead of bogus %A0).
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Add VLS modes.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/115336
+ 	PR middle-end/116059
+ 	* config/riscv/autovec.md: Add else operand.
+ 	* config/riscv/predicates.md (maskload_else_operand): New
+ 	predicate.
+ 	* config/riscv/riscv-v.cc (get_else_operand): Remove static.
+ 	(expand_load_store): Use get_else_operand and adjust index.
+ 	(expand_gather_scatter): Ditto.
+ 	(expand_lanes_load_store): Ditto.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/i386/sse.md (maskload<mode><sseintvecmodelower>):
+ 	Call maskload<mode>..._1.
+ 	(maskload<mode><sseintvecmodelower>_1): Rename.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/gcn/predicates.md (maskload_else_operand): New
+ 	predicate.
+ 	* config/gcn/gcn-valu.md: Use new predicate.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc: Add else
+ 	handling.
+ 	* config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn):
+ 	Ditto.
+ 	* config/aarch64/aarch64-sve-builtins.h: Add else operand to
+ 	contiguous load.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_load<SVE_PRED_LOAD:pred_load>
+ 	_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ 	Split and add else operand.
+ 	(@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ 	Ditto.
+ 	(*aarch64_load_<ANY_EXTEND:optab>_mov<SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ 	Ditto.
+ 	* config/aarch64/aarch64-sve2.md: Ditto.
+ 	* config/aarch64/iterators.md: Remove unused iterators.
+ 	* config/aarch64/predicates.md (aarch64_maskload_else_operand):
+ 	Add zero else operand.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* optabs-query.cc (supports_vec_convert_optab_p): Return icode.
+ 	(get_supported_else_val): Return supported else value for
+ 	optab's operand at index.
+ 	(supports_vec_gather_load_p): Add else argument.
+ 	(supports_vec_scatter_store_p): Ditto.
+ 	* optabs-query.h (supports_vec_gather_load_p): Ditto.
+ 	(get_supported_else_val): Ditto.
+ 	* optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
+ 	(can_vec_mask_load_store_p): Ditto.
+ 	(target_supports_len_load_store_p): Ditto.
+ 	(get_len_load_store_mode): Ditto.
+ 	* optabs-tree.h (target_supports_mask_load_store_p): Ditto.
+ 	(can_vec_mask_load_store_p): Ditto.
+ 	* tree-vect-data-refs.cc (vect_lanes_optab_supported_p): Ditto.
+ 	(vect_gather_scatter_fn_p): Ditto.
+ 	(vect_check_gather_scatter): Ditto.
+ 	(vect_load_lanes_supported): Ditto.
+ 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern):
+ 	Ditto.
+ 	* tree-vect-slp.cc (vect_get_operand_map): Adjust indices for
+ 	else operand.
+ 	(vect_slp_analyze_node_operations): Skip undefined else operand.
+ 	* tree-vect-stmts.cc (exist_non_indexing_operands_for_use_p):
+ 	Add else operand handling.
+ 	(vect_get_vec_defs_for_operand): Handle undefined else operand.
+ 	(check_load_store_for_partial_vectors): Add else argument.
+ 	(vect_truncate_gather_scatter_offset): Ditto.
+ 	(vect_use_strided_gather_scatters_p): Ditto.
+ 	(get_group_load_store_type): Ditto.
+ 	(get_load_store_type): Ditto.
+ 	(vect_get_mask_load_else): Ditto.
+ 	(vect_get_else_val_from_tree): Ditto.
+ 	(vect_build_one_gather_load_call): Add zero else operand.
+ 	(vectorizable_load): Use else operand.
+ 	* tree-vectorizer.h (vect_gather_scatter_fn_p): Add else
+ 	argument.
+ 	(vect_load_lanes_supported): Ditto.
+ 	(vect_get_mask_load_else): Ditto.
+ 	(vect_get_else_val_from_tree): Ditto.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-if-conv.cc (predicate_load_or_store): Add zero else
+ 	operand and comment.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* internal-fn.cc (add_mask_and_len_args): Rename...
+ 	(add_mask_else_and_len_args): ...to this and add else handling.
+ 	(expand_partial_load_optab_fn): Use adjusted function.
+ 	(expand_partial_store_optab_fn): Ditto.
+ 	(expand_scatter_store_optab_fn): Ditto.
+ 	(expand_gather_load_optab_fn): Ditto.
+ 	(internal_fn_len_index): Add else handling.
+ 	(internal_fn_else_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(get_supported_else_vals): New function.
+ 	(supported_else_val_p): New function.
+ 	(internal_gather_scatter_fn_supported_p): Add else operand.
+ 	* internal-fn.h (internal_gather_scatter_fn_supported_p): Define
+ 	else constants.
+ 	(MASK_LOAD_ELSE_ZERO): Ditto.
+ 	(MASK_LOAD_ELSE_M1): Ditto.
+ 	(MASK_LOAD_ELSE_UNDEFINED): Ditto.
+ 	(get_supported_else_vals): Declare.
+ 	(supported_else_val_p): Ditto.
+ 
+ 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* doc/md.texi: Document masked load else operand.
+ 
+ 2024-11-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117646
+ 	* match.pd (`max<a,b>==0`): Add casts to `unsigned type`.
+ 
+ 2024-11-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (maybe_clear_subreg_promoted_p): New function.
+ 	(ext_dce_execute): Call it.
+ 
+ 2024-11-18  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.md (unaligned_store<mode>): Remove stray
+ 	`;;'.
+ 
+ 2024-11-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <hppa*-hp-hpux11>: Update anchor
+ 	and heading to reflect removal of 32-bit hppa support on HP-UX.
+ 	Trim 32-bit related text.
+ 
+ 2024-11-17  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	PR c/95445
+ 	* doc/invoke.texi: Document -Wdeprecated-non-prototype.
+ 
+ 2024-11-17  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/cppopts.texi: Document -fsearch-include-path.
+ 	* doc/invoke.texi: Mention it for modules.
+ 
+ 2024-11-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-fnsummary.cc (find_necessary_statements): ASM statements are
+ 	necessary.
+ 
+ 2024-11-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-modref.cc (modref_summary::useful_p): const/pure implies
+ 	determinism.
+ 	(modref_summary_lto::useful_p): Likewise.
+ 	(ignore_nondeterminism_p): Add CALLEE_FNTYPE parameter; check for
+ 	reproducible/unsequenced
+ 	(modref_access_analysis::record_access_p): Use ignore_nondeterminism_p
+ 	when handling volatile accesses.
+ 	(modref_access_analysis::get_access_for_fnspec): Update.
+ 	(modref_access_analysis::process_fnspec): Cleanup handling of NOVOPS.
+ 	(modref_access_analysis::analyze_call): Use ignore_nondeterminism_p
+ 	when handling asm statements.
+ 	(modref_access_analysis::analyze_stmt): Update.
+ 	(propagate_unknown_call): Update.
+ 	(modref_propagate_in_scc): Update.
+ 	(ipa_merge_modref_summary_after_inlining): Update.
+ 
+ 2024-11-16  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-modref.cc (ipa_modref_callee_reads_no_memory_p): New function.
+ 	* ipa-modref.h (ipa_modref_callee_reads_no_memory_p): Declare
+ 	* tree-ssa-dce.cc (propagate_necessity): Use it.
+ 
+ 2024-11-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115275
+ 	* match.pd (umax(a,b) ==/!= 0): New pattern.
+ 
+ 2024-11-16  Eikansh Gupta  <quic_eikagupt@quicinc.com>
+ 
+ 	PR tree-optimization/109401
+ 	* match.pd (min(a,b) op max(a,b) -> a op b): New pattern.
+ 
+ 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116781
+ 	* config/avr/avr.md (*tablejump_split, *tablejump): Add
+ 	operand 2 as a "scratch_operand" instead of a match_dup.
+ 	(casesi): Adjust expander operands accordingly.  Use a scratch:HI
+ 	when the jump address is not clobbered.  This is the case for a
+ 	2-byte PC + has no JMP instruction.  In all the other cases, the
+ 	affected operand is REG_Z (reg:HI 30).
+ 	(casesi_<mode>_sequence): Adjust matcher to new anatomy.
+ 	* config/avr/avr-passes.cc (avr_is_casesi_sequence)
+ 	(avr_is_casesi_sequence, avr_optimize_casesi)
+ 	(avr_casei_sequence_check_operands): Adjust to new anatomy.
+ 
+ 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/117500
+ 	* config/avr/avr.cc (avr_print_operand) [code = 'i']: Use
+ 	output_operand_lossage on bad operands instead of fatal_insn.
+ 
+ 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md: Add a peephole2 that improves bit operations
+ 	with a lower register and a constant.
+ 
+ 2024-11-16  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <hppa*-hp-hpux11>: Remove references
+ 	to HP/UX linker patch from 2004 and Binutils 2.14.
+ 
+ 2024-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* params.opt (vect-force-slp): Default to 1.
+ 
+ 2024-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117606
+ 	* tree-vect-stmts.cc (get_group_load_store_type): For single
+ 	element interleaving also fall back to VMAT_ELEMENTWISE if
+ 	a left-over permutation isn't supported.
+ 
+ 2024-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117605
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Also
+ 	apply group size limit for single-element interleaving
+ 	to VMAT_CONTIGUOUS_REVERSE.
+ 
+ 2024-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117558
+ 	* tree-vectorizer.h (_loop_vec_info::must_use_partial_vectors_p): New.
+ 	(LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
+ 	must_use_partial_vectors_p.
+ 	(vect_determine_partial_vectors_and_peeling): Enforce it.
+ 	(vect_analyze_loop_2): Reset before restarting.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): When peeling
+ 	a single gap iteration cannot be determined safe statically
+ 	enforce the use of partial vectors.
+ 
+ 2024-11-16  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR tree-optimization/109442
+ 	* ipa-fnsummary.cc (builtin_unreachable_bb_p): New function.
+ 	(guards_builtin_unreachable): New function.
+ 	(STMT_NECESSARY): New macro.
+ 	(mark_stmt_necessary): New function.
+ 	(mark_operand_necessary): New function.
+ 	(find_necessary_statements): New function.
+ 	(analyze_function_body): Use it.
+ 
+ 2024-11-15  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* doc/invoke.texi (-std=gnu17, -std=gnu23): Document -std=gnu23 as
+ 	default for C code.
+ 
+ 2024-11-15  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117093
+ 	* match.pd: Extend
+ 	(bit_insert @0 (BIT_FIELD_REF@2 @1 @rsize @rpos) @ipos) to allow
+ 	type differences between @0 and @1 due to view converts.
+ 
+ 2024-11-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117564
+ 	* config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.
+ 
+ 2024-11-15  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	PR c/117164
+ 	* tree-nested.cc: Include "attribs.h".
+ 	(check_for_nested_with_variably_modified): Also return true for
+ 	variably modified return type.
+ 	(create_nesting_tree): If check_for_nested_with_variably_modified
+ 	returns true, also add noclone attribute.
+ 
+ 2024-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* optabs-query.h (get_vcond_icode): Remove.
+ 	(get_vcond_eq_icode): Likewise.
+ 	* optabs-tree.h (expand_vec_cond_expr_p): Remove code
+ 	argument.
+ 	* optabs-tree.cc (expand_vec_cond_expr_p): Likewise.
+ 	(vcond_icode_p): Remove.
+ 	(vcond_eq_icode_p): Likewise.
+ 	* optabs.h (can_vcond_compare_p): Remove.
+ 	* optabs.cc (can_vcond_compare_p): Likewise.
+ 
+ 2024-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): If not
+ 	simplifying or lowering, always expand to .VCOND_MASK.
+ 	(pass_gimple_isel::execute): Simplify.
+ 
+ 2024-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-generic.cc (expand_vector_comparison): Lower
+ 	vector comparisons that we cannot trivially expand.  Remove
+ 	code dealing with uses in VEC_COND_EXPRs.
+ 	(expand_vector_condition): Lower vector conditions that we
+ 	cannot trivially expand.  Remove code dealing with comparison
+ 	mask definitions.
+ 	(expand_vector_operation): Drop dce_ssa_names.
+ 	(expand_vector_operations_1): Likewise.
+ 
+ 2024-11-15  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi: Document Wmissing-parameter-name.
+ 
+ 2024-11-15  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* varasm.cc (get_section): Include name of section in
+ 	diagnostic messages.
+ 
+ 2024-11-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-core.h (enum tree_index): Add TI_DFLOAT64X_TYPE.
+ 	* tree.h (dfloat64x_type_node): Define.
+ 	* tree.cc (build_common_tree_nodes): Initialize dfloat64x_type_node.
+ 	* builtin-types.def (BT_DFLOAT64X): New DEF_PRIMITIVE_TYPE.
+ 	(BT_FN_DFLOAT64X): New DEF_FUNCTION_TYPE_0.
+ 	(BT_FN_DFLOAT64X_CONST_STRING, BT_FN_DFLOAT64X_DFLOAT64X): New
+ 	DEF_FUNCTION_TYPE_1.
+ 	* builtins.def (BUILT_IN_FABSD64X, BUILT_IN_INFD64X, BUILT_IN_NAND64X,
+ 	BUILT_IN_NANSD64X): New builtins.
+ 	* builtins.cc (expand_builtin): Handle BUILT_IN_FABSD64X.
+ 	(fold_builtin_0): Handle BUILT_IN_INFD64X.
+ 	(fold_builtin_1): Handle BUILT_IN_FABSD64X.
+ 	* fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NAND64X
+ 	and CFN_BUILT_IN_NANSD64X.
+ 	* ginclude/float.h (DEC64X_MANT_DIG, DEC64X_MIN_EXP, DEC64X_MAX_EXP,
+ 	DEC64X_MAX, DEC64X_EPSILON, DEC64X_MIN, DEC64X_TRUE_MIN,
+ 	DEC64X_SNAN): Redefine.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the
+ 	handlings of vector integer comparison.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the
+ 	handlings for operators GE/GEU/LE/LEU.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the
+ 	handlings for operator NE.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the
+ 	handlings for operators LT and LTU.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Remove.
+ 	(rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/
+ 	GT/GTU directly.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Emit rtx
+ 	comparison for operators LT/UNGE of MODE_VECTOR_FLOAT directly.
+ 	(rs6000_emit_vector_compare): Move assertion of no MODE_VECTOR_FLOAT to
+ 	function beginning.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx
+ 	comparison for operators LE/UNGT of MODE_VECTOR_FLOAT directly.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx
+ 	comparison for operators NE/UNLE/UNLT of MODE_VECTOR_FLOAT directly.
+ 
+ 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Move
+ 	MODE_VECTOR_FLOAT handlings out.
+ 	(rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/GT/
+ 	GE/UNORDERED/ORDERED/UNEQ/LTGT of MODE_VECTOR_FLOAT directly, and
+ 	adjust one call site of rs6000_emit_vector_compare_inner to
+ 	rs6000_emit_vector_compare.
+ 
+ 2024-11-14  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/vector.md (mov<mode> pattern/splitter): Fix type and
+ 	other attributes.
+ 	(mov<VLS_AVL_REG:mode><P:mode>_lra): Likewise.
+ 
+ 2024-11-14  Sam James  <sam@gentoo.org>
+ 
+ 	* configure: Regenerate.
+ 
+ 2024-11-14  Denis Chertykov  <chertykov@gmail.com>
+ 
+ 	PR rtl-optimization/117191
+ 	* lra-spills.cc (spill_pseudos): Mark a CLOBBER insn with pseudo
+ 	spilled to memory for removing it later together with LRA temporary
+ 	CLOBBER insns.
+ 
+ 2024-11-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/114985
+ 	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): New function.
+ 	(ipa_value_range_from_jfunc): Move the common functionality to the
+ 	above new function, adjust the rest so that it works with it well.
+ 	(propagate_vr_across_jump_function): Likewise.
+ 
+ 2024-11-14  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* common.opt.urls: Fix.
+ 
+ 2024-11-14  Richard Ball  <richard.ball@arm.com>
+ 	    Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* doc/extend.texi: Add AArch64 docs for indirect_return
+ 	attribute.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 	    Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_gnu_attributes): Add
+ 	indirect_return.
+ 	(aarch64_gen_callee_cookie): Use indirect_return attribute.
+ 	(aarch64_callee_indirect_return): New.
+ 	(aarch_fun_is_indirect_return): New.
+ 	(aarch64_function_ok_for_sibcall): Disallow tail calls if caller
+ 	is non-indirect_return but callee is indirect_return.
+ 	(aarch64_function_arg): Add indirect_return to cookie.
+ 	(aarch64_init_cumulative_args): Record indirect_return in
+ 	CUMULATIVE_ARGS.
+ 	(aarch64_comp_type_attributes): Check indirect_return attribute.
+ 	(aarch64_output_mi_thunk): Add indirect_return to cookie.
+ 	* config/aarch64/aarch64.h (CUMULATIVE_ARGS): Add new field
+ 	indirect_return.
+ 	* config/aarch64/aarch64.md (tlsdesc_small_<mode>): Update.
+ 	* config/aarch64/aarch64-opts.h (AARCH64_NUM_ABI_ATTRIBUTES): New.
+ 	* config/aarch64/aarch64-protos.h (aarch64_gen_callee_cookie): Update.
+ 	* config/arm/aarch-bti-insert.cc (call_needs_bti_j): New.
+ 	(rest_of_insert_bti): Use call_needs_bti_j.
+ 	* config/arm/aarch-common-protos.h
+ 	(aarch_fun_is_indirect_return): New.
+ 	* config/arm/arm.cc
+ 	(aarch_fun_is_indirect_return): New.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_GCS):
+ 	Define.
+ 	(aarch64_file_end_indicate_exec_stack): Set GCS property bit.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
+ 	macros for GCS.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (STACK_SAVEAREA_MODE): Make space for gcs.
+ 	* config/aarch64/aarch64.md (save_stack_nonlocal): New.
+ 	(restore_stack_nonlocal): New.
+ 	* tree-nested.cc (get_nl_goto_field): Updated.
+ 
+ 2024-11-14  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/arm_acle.h (__gcspr): New.
+ 	(__gcspopm): New.
+ 	(__gcsss): New.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add
+ 	AARCH64_BUILTIN_GCSPR, AARCH64_BUILTIN_GCSPOPM, AARCH64_BUILTIN_GCSSS.
+ 	(aarch64_init_gcs_builtins): New.
+ 	(aarch64_general_init_builtins): Call aarch64_init_gcs_builtins.
+ 	(aarch64_expand_gcs_builtin): New.
+ 	(aarch64_general_expand_builtin): Call aarch64_expand_gcs_builtin.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (aarch64_load_gcspr): New.
+ 	(aarch64_gcspopm): New.
+ 	(aarch64_gcspopm_xzr): New.
+ 	(aarch64_gcsss1): New.
+ 	(aarch64_gcsss2): New.
+ 	Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
+ 
+ 2024-11-14  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/arm_acle.h (__chkfeat): New.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (enum aarch64_builtins):
+ 	Define AARCH64_BUILTIN_CHKFEAT.
+ 	(aarch64_general_init_builtins): Handle chkfeat.
+ 	(aarch64_general_expand_builtin): Handle chkfeat.
+ 	Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (aarch64_chkfeat): New.
+ 
+ 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch_gcs_enabled): Declare.
+ 	* config/aarch64/aarch64.cc (aarch_gcs_enabled): Define.
+ 	(aarch_handle_no_branch_protection): Handle gcs.
+ 	(aarch_handle_standard_branch_protection): Handle gcs.
+ 	(aarch_handle_gcs_protection): New.
+ 	* config/aarch64/aarch64.opt: Add aarch_enable_gcs.
+ 	* configure: Regenerate.
+ 	* configure.ac: Handle gcs in --enable-standard-branch-protection.
+ 	* doc/invoke.texi: Document -mbranch-protection=gcs.
+ 
+ 2024-11-14  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR tree-optimization/117370
+ 	* common.opt: Add -fmalloc-dce.
+ 	* common.opt.urls: Update.
+ 	* doc/invoke.texi: Document it; also add missing -flifetime-dse entry.
+ 	* tree-ssa-dce.cc (is_removable_allocation_p): Break out from
+ 	...
+ 	(mark_stmt_if_obviously_necessary): ... here; also check that
+ 	operator new satisfies gimple_call_from_new_or_delete.
+ 	(checks_return_value_of_removable_allocation_p): New Function.
+ 	(mark_all_reaching_defs_necessary_1): add missing case for
+ 	STRDUP and STRNDUP
+ 	(propagate_necessity): Use is_removable_allocation_p and
+ 	checks_return_value_of_removable_allocation_p.
+ 	(eliminate_unnecessary_stmts): Update conditionals that use
+ 	removed allocation; use is_removable_allocation_p.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Do not
+ 	exempt cpart_size == cnunits from failing.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Add missing
+ 	braces.
+ 
+ 2024-11-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.h (ipa_dump_jump_function): Declare.
+ 	* ipa-prop.cc (ipa_dump_jump_function): New function.
+ 	(ipa_print_node_jump_functions_for_edge): Move printing of
+ 	individual jump functions to the new function.
+ 
+ 2024-11-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.h (ipa_print_constant_value): Declare.
+ 	* ipa-prop.cc (ipa_print_constant_value): Make public.
+ 	* ipa-cp.cc (print_ipcp_constant_value): Re-add this overloaded
+ 	function for printing tree constants.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-generic.cc (expand_vector_divmod): Query vector
+ 	comparison and vec_cond_mask capability.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_condition): Refactor
+ 	target support check.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117567
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Handle not present
+ 	lanes when doing re-association.
+ 
+ 2024-11-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* cfgexpand.cc (add_scope_conflicts): Return right away
+ 	if there are only one stack variable.
+ 
+ 2024-11-14  Eikansh Gupta  <quic_eikagupt@quicinc.com>
+ 
+ 	PR tree-optimization/109906
+ 	* match.pd (a rrotate (32-b) -> a lrotate b): New pattern
+ 	(a lrotate (32-b) -> a rrotate b): New pattern
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): For
+ 	VMAT_ELEMENTWISE there's no overrun.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117554
+ 	* tree-vect-stmts.cc (get_group_load_store_type): We can
+ 	use gather/scatter only for a single-lane single element group
+ 	access.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117559
+ 	* tree-vect-slp.cc (vect_mark_slp_stmts): Pass in vinfo,
+ 	mark all mask defs of a load/store-lane .MASK_LOAD/STORE
+ 	as pure.
+ 	(vect_make_slp_decision): Adjust.
+ 	(vect_slp_analyze_bb_1): Likewise.
+ 
+ 2024-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117556
+ 	PR tree-optimization/117553
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Do not analyze
+ 	the SLP load-lanes node for live lanes, but only the
+ 	permute node.
+ 	(vect_transform_stmt): Likewise for the transform.
+ 
+ 2024-11-14  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/117495
+ 	* config/i386/i386.md (cstorebf4): Use ix86_fp_comparison_operator
+ 	and calls ix86_expand_setcc directly.
+ 
+ 2024-11-13  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	PR target/116591
+ 	* config/riscv/vector.md: Add restriction to call pred_th_whole_mov.
+ 
+ 2024-11-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_required_extensions::common_denominator): New member
+ 	function.
+ 	* config/aarch64/aarch64-sve-builtins-base.def: Remove zero-variant
+ 	entry for mmla.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): Remove
+ 	support for it.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_builder::add_overloaded): Relax the assert for duplicate
+ 	definitions and instead calculate the common denominator of all
+ 	requirements.
+ 
+ 2024-11-13  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR target/56504
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Add ix86_veclibabi_type_aocl case.
+ 	* config/i386/i386-options.h (ix86_veclibabi_aocl): Add extern
+ 	ix86_veclibabi_aocl().
+ 	* config/i386/i386-opts.h (enum ix86_veclibabi): Add
+ 	ix86_veclibabi_type_aocl into the ix86_veclibabi enum.
+ 	* config/i386/i386.cc (ix86_veclibabi_aocl): New function.
+ 	* config/i386/i386.opt: Add the 'aocl' type.
+ 	* doc/invoke.texi: Document -mveclibabi=aocl.
+ 
+ 2024-11-13  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117525
+ 	* config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`.
+ 	(fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2,
+ 	fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2,
+ 	fixuns_truncdfdi2): Likewise.
+ 
+ 2024-11-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.cc (diagnostic_event::get_desc): Add param
+ 	"ref_pp" and use instead of global_dc.
+ 	(class path_label): Likewise, adding field m_ref_pp.
+ 	(event_range::event_range): Add param "ref_pp" and pass to
+ 	m_path_label.
+ 	(path_summary::path_summary): Add param "ref_pp" and pass to
+ 	event_range ctor.
+ 	(diagnostic_text_output_format::print_path): Pass *pp to
+ 	path_summary ctor.
+ 	(selftest::test_empty_path): Pass *event_pp to pass_summary ctor.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	* diagnostic-path.h (diagnostic_event::get_desc): Add param
+ 	"ref_pp".
+ 	* lazy-diagnostic-path.cc (selftest::test_intraprocedural_path):
+ 	Pass *event_pp to get_desc.
+ 	* simple-diagnostic-path.cc (selftest::test_intraprocedural_path):
+ 	Likewise.
+ 
+ 2024-11-13  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	PR target/57492
+ 	* match.pd: Added patterns to fold calls to pow to ldexp and optimize
+ 	specific ldexp calls.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv.cc (add_condition_to_bb): New function.
+ 	(dispatch_function_versions): New function.
+ 	(get_suffixed_assembler_name): New function.
+ 	(make_resolver_func): New function.
+ 	(riscv_generate_version_dispatcher_body): New function.
+ 	(riscv_get_function_versions_dispatcher): New function.
+ 	(TARGET_GENERATE_VERSION_DISPATCHER_BODY): Implement it.
+ 	(TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Implement it.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_mangle_decl_assembler_name): New function.
+ 	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv.cc
+ 	(parse_features_for_version): New function.
+ 	(compare_fmv_features): New function.
+ 	(riscv_compare_version_priority): New function.
+ 	(riscv_common_function_versions): New function.
+ 	(TARGET_COMPARE_VERSION_PRIORITY): Implement it.
+ 	(TARGET_OPTION_FUNCTION_VERSIONS): Implement it.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv-protos.h
+ 	(riscv_process_target_attr): Remove as it is not used.
+ 	(riscv_option_valid_version_attribute_p): Declare.
+ 	(riscv_process_target_version_attr): Declare.
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attrs): Renamed from riscv_attributes.
+ 	(riscv_target_version_attrs): New attributes for target_version.
+ 	(riscv_process_one_target_attr): New arguments to select attrs.
+ 	(riscv_process_target_attr): Likewise.
+ 	(riscv_option_valid_attribute_p): Likewise.
+ 	(riscv_process_target_version_attr): New function.
+ 	(riscv_option_valid_version_attribute_p): New function.
+ 	* config/riscv/riscv.cc
+ 	(TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): Implement it.
+ 	* config/riscv/riscv.h (TARGET_HAS_FMV_TARGET_ATTRIBUTE): Define
+ 	it to 0 to use "target_version" for function versioning.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(RISCV_EXT_BITMASK): New macro.
+ 	(struct riscv_ext_bitmask_table_t): New struct.
+ 	(riscv_minimal_hwprobe_feature_bits): New function.
+ 	* common/config/riscv/riscv-ext-bitmask.def: New file.
+ 	* config/riscv/riscv-subset.h (GCC_RISCV_SUBSET_H): Include
+ 	riscv-feature-bits.h.
+ 	(riscv_minimal_hwprobe_feature_bits): Declare the function.
+ 	* config/riscv/riscv-feature-bits.h: New file.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::handle_priority): New function.
+ 	(riscv_target_attr_parser::update_settings): Update priority
+ 	attribute.
+ 	* config/riscv/riscv.opt: Add TargetVariable riscv_fmv_priority.
+ 
+ 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* defaults.h (TARGET_CLONES_ATTR_SEPARATOR): Define new macro.
+ 	* multiple_target.cc (get_attr_str): Use
+ 	TARGET_CLONES_ATTR_SEPARATOR to separate attributes.
+ 	(separate_attrs): Likewise.
+ 	(expand_target_clones): Likewise.
+ 	* attribs.cc (attr_strcmp): Likewise.
+ 	(sorted_attr_string): Likewise.
+ 	* tree.cc (get_target_clone_attr_len): Likewise.
+ 	* config/riscv/riscv.h (TARGET_CLONES_ATTR_SEPARATOR): Define
+ 	TARGET_CLONES_ATTR_SEPARATOR for RISC-V.
+ 	* doc/tm.texi: Document TARGET_CLONES_ATTR_SEPARATOR.
+ 	* doc/tm.texi.in: Likewise.
+ 
+ 2024-11-13  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/117059
+ 	* doc/invoke.texi (Wzero-as-null-pointer-constant): Adapt
+ 	description.
+ 
+ 2024-11-13  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	PR target/111733
+ 	* config/aarch64/aarch64-sve.md
+ 	(ldexp<mode>3): Added a new pattern to match ldexp calls with scalar
+ 	floating modes and expand to the existing pattern for FSCALE.
+ 	* config/aarch64/iterators.md:
+ 	(SVE_FULL_F_SCALAR): Added an iterator to match all FP SVE modes as well
+ 	as their scalar equivalents.
+ 	(VPRED): Extended the attribute to handle GPF_HF modes.
+ 	* internal-fn.def (LDEXP): Changed macro to incorporate ldexpf16.
+ 
+ 2024-11-13  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/117483
+ 	* config/riscv/riscv-vsetvl.cc: Fix bug.
+ 
+ 2024-11-13  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Correct costing of LO_SUM
+ 	expressions.
+ 
+ 2024-11-13  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/117418
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Convert
+ 	pointer's mode according to Pmode.
+ 
+ 2024-11-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-11-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR rtl-optimization/112398
+ 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
+ 	Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
+ 	when X doesn't have any non-zero bits outside of SUBREG mode.
+ 
+ 2024-11-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2024-10-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Remove unsigned branch form 3 for SAT_ADD, and
+ 	add simplify to branchless instead.
+ 
+ 2024-11-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/117503
+ 	* Makefile.in (GCC_FOR_SELFTESTS): Set GCC_COLORS=.
+ 
+ 2024-11-12  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (decrement_and_branch_until_zero): Fix
+ 	constraint.
+ 
+ 2024-11-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/tuning_models/cortexx925.h (cortexx925_addrcost_table): Remove.
+ 	* config/aarch64/tuning_models/neoversen1.h: Use generic_armv8_a_addrcost_table.
+ 	* config/aarch64/tuning_models/neoversen2.h (neoversen2_addrcost_table): Remove.
+ 	* config/aarch64/tuning_models/neoversen3.h (neoversen3_addrcost_table): Remove.
+ 	* config/aarch64/tuning_models/neoversev2.h (neoversev2_addrcost_table): Remove.
+ 	* config/aarch64/tuning_models/neoversev3.h (neoversev3_addrcost_table): Remove.
+ 	* config/aarch64/tuning_models/neoversev3ae.h (neoversev3ae_addrcost_table): Remove.
+ 
+ 2024-11-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_BASE): New define.
+ 	(AARCH64_FUSE_MOVK): Likewise.
+ 	* config/aarch64/tuning_models/a64fx.h: Update.
+ 	* config/aarch64/tuning_models/ampere1.h: Likewise.
+ 	* config/aarch64/tuning_models/ampere1a.h: Likewise.
+ 	* config/aarch64/tuning_models/ampere1b.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexa35.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexa53.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexa57.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexa72.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexa73.h: Likewise.
+ 	* config/aarch64/tuning_models/cortexx925.h: Likewise.
+ 	* config/aarch64/tuning_models/exynosm1.h: Likewise.
+ 	* config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
+ 	* config/aarch64/tuning_models/generic.h: Likewise.
+ 	* config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
+ 	* config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversen3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev1.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
+ 	* config/aarch64/tuning_models/qdf24xx.h: Likewise.
+ 	* config/aarch64/tuning_models/saphira.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderx2t99.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderx3t110.h: Likewise.
+ 	* config/aarch64/tuning_models/tsv110.h: Likewise.
+ 
+ 2024-11-12  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv.cc (riscv_declare_function_name): Add new
+ 	attribute.
+ 
+ 2024-11-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/vector.md (pred_mul_plus<mode>_undef): Drop alternatives
+ 	where output doesn't have to match input.
+ 	(pred_madd<mode>, pred_macc<mode>): Likewise.
+ 	(pred_madd<mode>_scalar, pred_macc<mode>_scalar): Likewise.
+ 	(pred_madd<mode>_exended_scalar): Likewise.
+ 	(pred_macc<mode>_exended_scalar): Likewise.
+ 	(pred_minus_mul<mode>_undef): Likewise.
+ 	(pred_nmsub<mode>, pred_nmsac<mode>): Likewise.
+ 	(pred_nmsub<mode>_scalar, pred_nmsac<mode>_scalar): Likewise.
+ 	(pred_nmsub<mode>_exended_scalar): Likewise.
+ 	(pred_nmsac<mode>_exended_scalar): Likewise.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116973
+ 	* tree-vect-slp.cc (vect_lower_load_permutations): Add
+ 	force_single_lane parameter.  Disable heuristic that keeps
+ 	some load-permutations.
+ 	(vect_analyze_slp): Pass force_single_lane to
+ 	vect_lower_load_permutations.
+ 
+ 2024-11-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/c6x/c6x.md (nop, nop_count): Add explicit
+ 	"dest_regfile" attribute setting.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117417
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Avoid
+ 	decomposing BIT_FIELD_REF complex load.
+ 
+ 2024-11-12  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* rtlanal.cc (set_noop_p): Validate subreg constraints before checking
+ 	for overlapping regs using simplify_subreg_regno.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost): Set
+ 	m_suggested_epilogue_mode according to X86_TUNE_AVX512_TWO_EPILOGUES.
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX512_TWO_EPILOGUES): Add.
+ 	Enable for znver4 and znver5.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vector_costs::suggested_epilogue_mode): New.
+ 	(vector_costs::m_suggested_epilogue_mode): Likewise.
+ 	(vector_costs::vector_costs): Initialize m_suggested_epilogue_mode.
+ 	* tree-vect-loop.cc (vect_analyze_loop): Honor the target
+ 	suggested prefered epilogue mode and support vector epilogues
+ 	of vector epilogues if requested.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117484
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Handle gaps in
+ 	mask discovery.  Fix condition to release the load permutation.
+ 	(vect_lower_load_permutations): Assert we get no load
+ 	permutation for the unpermuted node.
+ 	* tree-vect-slp-patterns.cc (linear_loads_p): Properly identify
+ 	loads (without permutation).
+ 	(compatible_complex_nodes_p): Likewise.
+ 
+ 2024-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117502
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Also consider
+ 	VMAT_STRIDED_SLP when checking to use gather/scatter for
+ 	single-element interleaving access.
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): STMT_VINFO_STRIDED_P
+ 	can be classified as VMAT_GATHER_SCATTER, so update DR_REF for
+ 	those as well.
+ 
+ 2024-11-12  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* match.pd: Fold logN(x) CMP CST -> x CMP expN(CST)
+ 	and expN(x) CMP CST -> x CMP logN(CST)
+ 
+ 2024-11-11  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Rename -fmodules-ts to -fmodules.
+ 
+ 2024-11-11  Jason Merrill  <jason@redhat.com>
+ 
+ 	* opts.h (cl_deferred_option::value): Change to HOST_WIDE_INT.
+ 	(set_option): Change opt_index parm to size_t.
+ 	* opts-common.cc (set_option): Likewise.
+ 
+ 2024-11-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (New/Delete Builtins): Document
+ 	__builtin_operator_new and __builtin_operator_delete.
+ 
+ 2024-11-11  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_vfp_is_call_or_return_candidate): use fp registers to
+ 	return svmfloat8_t parameters.
+ 
+ 2024-11-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (arg1_arg3_map): New.
+ 	(arg1_arg3_arg4_map): Likewise.
+ 	(vect_get_operand_map): Handle IFN_SCATTER_STORE,
+ 	IFN_MASK_SCATTER_STORE and IFN_MASK_LEN_SCATTER_STORE.
+ 	(vect_build_slp_tree_1): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_store): For SLP masked
+ 	gather/scatter record the mask with proper number of copies.
+ 	* tree-vect-loop.cc (vectorizable_recurr): Avoid costing
+ 	the initial value construction in the prologue twice with SLP.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Handle
+ 	__ARM_FEATURE_SVE2p1.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-modes.def (VNx1SI, VNx1DI): New modes.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdup_lane_impl::expand): Update generation of TBL instruction.
+ 	(svtbl_impl): Delete.
+ 	(svtbl): Use unspec_based_uncond_function instead.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(permute::fold_permute): Handle trailing immediate arguments.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h (extq): Declare.
+ 	(load_gather64_sv_index, load_gather64_sv_offset): Likewise.
+ 	(load_gather64_vs_index, load_gather64_vs_offset): Likewise.
+ 	(pmov_from_vector, pmov_from_vector_lane, pmov_to_vector_lane)
+ 	(reduction_neonq, store_scatter64_index, store_scatter64_offset)
+ 	(unary_lane): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(load_gather64_sv_base, store_scatter64_base): New classes.
+ 	(extq_def, ext): New shape.
+ 	(load_gather64_sv_index_def, load_gather64_sv_index): Likewise.
+ 	(load_gather64_sv_offset_def, load_gather64_sv_offset): Likewise.
+ 	(load_gather64_vs_index_def, load_gather64_vs_index): Likewise.
+ 	(load_gather64_vs_offset_def, load_gather64_vs_offset): Likewise.
+ 	(pmov_from_vector_def, pmov_from_vector): Likewise.
+ 	(pmov_from_vector_lane_def, pmov_from_vector_lane): Likewise.
+ 	(pmov_to_vector_lane_def, pmov_to_vector_lane): Likewise.
+ 	(reduction_neonq_def, reduction_neonq): Likewise.
+ 	(store_scatter64_index_def, store_scatter64_index): Likewise.
+ 	(store_scatter64_offset_def, store_scatter64_offset): Likewise.
+ 	(unary_lane_def, unary_lane): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h (svaddqv, svandqv)
+ 	(svdup_laneq, sveorqv, svextq, svld1q_gather, svld1udq, svld1uwq)
+ 	(svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv, svminnmqv, svminqv)
+ 	(svorqv, svpmov, svpmov_lane, svst1qd, svst1q_scatter, svst1wq)
+ 	(svst2q, svst3q, svst4q, svtblq, svtbx, svtbxq, svuzpq1, svuzpq2)
+ 	(svzipq1, svzipq2): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (ld1uxq_st1xq_base)
+ 	(ld234q_st234q_base, svdup_laneq_impl, svextq_impl): New classes.
+ 	(svld1q_gather_impl, svld1uxq_impl, svld234q_impl): Likewise.
+ 	(svpmov_impl, svpmov_lane_impl, svst1q_scatter_impl): Likewise.
+ 	(svst1xq_impl, svst234q_impl, svuzpq_impl, svzipq_impl): Likewise.
+ 	(svaddqv, svandqv, svdup_laneq, sveorqv, svextq, svld1q_gather)
+ 	(svld1udq, svld1uwq, svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv)
+ 	(svminnmqv, svminqv, svorqv, svpmov, svpmov_lane, svst1qd)
+ 	(svst1q_scatter, svst1wq, svst2q, svst3q, svst4q, svtblq, svtbx)
+ 	(svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2): New function entries.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def (svaddqv, svandqv)
+ 	(svdup_laneq, sveorqv, svextq, svld2q, svld3q, svld4q, svmaxnmqv)
+ 	(svmaxqv, svminnmqv, svminqv, svorqv, svpmov, svpmov_lanes, vst2q)
+ 	(svst3q, svst4q, svtblq, svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2)
+ 	(svld1q_gather, svld1udq, svld1uwq, svst1dq, svst1q_scatter)
+ 	(svst1wq): New function definitions.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_hsd_data)
+ 	(hsd_data, s_data): New type lists.
+ 	(function_resolver::infer_pointer_type): Give a specific error about
+ 	passing a pointer to 8-bit elements to an _index function.
+ 	(function_resolver::resolve_sv_displacement): Check whether the
+ 	function allows 32-bit bases.
+ 	* config/aarch64/iterators.md (UNSPEC_TBLQ, UNSPEC_TBXQ): New unspecs.
+ 	(UNSPEC_ADDQV, UNSPEC_ANDQV, UNSPEC_DUPQ, UNSPEC_EORQV, UNSPEC_EXTQ)
+ 	(UNSPEC_FADDQV, UNSPEC_FMAXQV, UNSPEC_FMAXNMQV, UNSPEC_FMINQV)
+ 	(UNSPEC_FMINNMQV, UNSPEC_LD1_EXTENDQ, UNSPEC_LD1Q_GATHER): Likewise.
+ 	(UNSPEC_LDNQ, UNSPEC_ORQV, UNSPEC_PMOV_PACK, UNSPEC_PMOV_PACK_LANE)
+ 	(UNSPEC_PMOV_UNPACK, UNSPEC_PMOV_UNPACK_LANE, UNSPEC_SMAXQV): Likewise.
+ 	(UNSPEC_SMINQV, UNSPEC_ST1_TRUNCQ, UNSPEC_ST1Q_SCATTER, UNSPEC_STNQ)
+ 	(UNSPEC_UMAXQV, UNSPEC_UMINQV, UNSPEC_UZPQ1, UNSPEC_UZPQ2): Likewise.
+ 	(UNSPEC_ZIPQ1, UNSPEC_ZIPQ2): Likewise.
+ 	(Vtype): Handle single-vector SVE modes.
+ 	(Vendreg): Handle SVE structure modes.
+ 	(VNxTI, LD1_EXTENDQ_MEM): New mode attributes.
+ 	(SVE_PERMUTE, SVE_TBL, SVE_TBX): New int iterators.
+ 	(SVE_INT_REDUCTION_128, SVE_FP_REDUCTION_128): Likewise.
+ 	(optab): Handle the new SVE2.1 reductions.
+ 	(perm_insn): Handle the new SVE2.1 permutations.
+ 	* config/aarch64/aarch64-sve.md
+ 	(@aarch64_sve_tbl<mode>): Generalize to...
+ 	(@aarch64_sve_<SVE_TBL:perm_insn><mode>): ...this.
+ 	(@aarch64_sve_<PERMUTE:perm_insn><mode>): Generalize to...
+ 	(@aarch64_sve_<SVE_PERMUTE:perm_insn><mode>): ...this.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_pmov_to_<mode>)
+ 	(@aarch64_pmov_lane_to_<mode>, @aarch64_pmov_from_<mode>)
+ 	(@aarch64_pmov_lane_from_<mode>, @aarch64_sve_ld1_extendq<mode>)
+ 	(@aarch64_sve_ldnq<mode>, aarch64_gather_ld1q): New patterns.
+ 	(@aarch64_sve_st1_truncq<mode>, @aarch64_sve_stnq<mode>): Likewise.
+ 	(aarch64_scatter_st1q, @aarch64_pred_reduc_<optab>_<mode>): Likewise.
+ 	(@aarch64_sve_dupq<mode>, @aarch64_sve_extq<mode>): Likewise.
+ 	(@aarch64_sve2_tbx<mode>): Generalize to...
+ 	(@aarch64_sve_<SVE_TBX:perm_insn><mode>): ...this.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_classify_vector_memory_mode): New function.
+ 	(aarch64_regmode_natural_size): Use it.
+ 	(aarch64_classify_index): Likewise.
+ 	(aarch64_classify_address): Likewise.
+ 	(aarch64_print_address_internal): Likewise.
+ 	(aarch64_evpc_hvla): New function.
+ 	(aarch64_expand_vec_perm_const_1): Use it.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_SVE2p1_OR_SME2): New macro.
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(is_stride_candidate): Require TARGET_STREAMING_SME2
+ 	(early_ra::maybe_convert_to_strided_access): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions
+ 	that are common to both SVE2p1 and SME2.
+ 	* config/aarch64/aarch64-sve.md
+ 	(@aarch64_<sur>dot_prod_lane<SVE_FULL_SDI:mode><SVE_FULL_BHI:mode>):
+ 	Test TARGET_SVE2p1_OR_SME2 instead of TARGET_STREAMING_SME2.
+ 	(@aarch64_sve_<sve_fp_op>vnx4sf): Move TARGET_SVE_BF16 condition
+ 	into SVE_BFLOAT_TERNARY_LONG.
+ 	(@aarch64_sve_<sve_fp_op>_lanevnx4sf): Likewise
+ 	SVE_BFLOAT_TERNARY_LONG_LANE.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_<LD1_COUNT:optab><mode>): Require TARGET_SVE2p1_OR_SME2
+ 	instead of TARGET_STREAMING_SME2.
+ 	(@aarch64_<ST1_COUNT:optab><mode>): Likewise.
+ 	(@aarch64_sve_ptrue_c<BHSD_BITS>): Likewise.
+ 	(@aarch64_sve_pext<BHSD_BITS>): Likewise.
+ 	(@aarch64_sve_pext<BHSD_BITS>x2): Likewise.
+ 	(@aarch64_sve_cntp_c<BHSD_BITS>): Likewise.
+ 	(@aarch64_sve_fclamp<mode>): Likewise.
+ 	(*aarch64_sve_fclamp<mode>_x): Likewise.
+ 	(<sur>dot_prodvnx4sivnx8hi): Likewise.
+ 	(aarch64_sve_fdotvnx4sfvnx8hf): Likewise.
+ 	(aarch64_fdot_prod_lanevnx4sfvnx8hf): Likewise.
+ 	(@aarch64_sve_while<while_optab_cmp>_b<BHSD_BITS>_x2): Likewise.
+ 	(@aarch64_sve_while<while_optab_cmp>_c<BHSD_BITS>): Likewise.
+ 	(@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8SI_ONLY:mode>): Move
+ 	TARGET_STREAMING_SME2 condition into SVE_QCVTxN.
+ 	(@aarch64_sve_<sve_int_op><mode>): Likewise
+ 	SVE2_INT_SHIFT_IMM_NARROWxN, but also require TARGET_STREAMING_SME2
+ 	for the 4-register forms.
+ 	* config/aarch64/iterators.md (SVE_BFLOAT_TERNARY_LONG): Require
+ 	TARGET_SVE2p1_OR_SME2 rather than TARGET_STREAMING_SME2 for
+ 	UNSPEC_BFMLSLB and UNSPEC_BFMLSLT.  Require TARGET_SVE_BF16
+ 	for the others.
+ 	(SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
+ 	(SVE2_INT_SHIFT_IMM_NARROWxN): Require TARGET_SVE2p1_OR_SME2 for
+ 	the interleaving forms and TARGET_STREAMING_SME2 for the rest.
+ 	(SVE_QCVTxN): Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (sve2p1): New extension.
+ 	* doc/invoke.texi (sve2p1): Document it.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions
+ 	that are common to both SVE2p1 and SME.
+ 	* config/aarch64/aarch64.h (TARGET_SVE2p1): New macro.
+ 	(TARGET_SVE2p1_OR_SME): Likewise.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve_psel<BHSD_BITS>): Require TARGET_SVE2p1_OR_SME
+ 	instead of TARGET_STREAMING.
+ 	(*aarch64_sve_psel<BHSD_BITS>_plus): Likewise.
+ 	(@aarch64_sve_<su>clamp<mode>): Likewise.
+ 	(*aarch64_sve_<su>clamp<mode>_x): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	(@cond_<optab><mode>): Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config.gcc (extra_headers): Add arm_private_neon_types.h.
+ 	* config/aarch64/arm_private_neon_types.h: New file, split out
+ 	from...
+ 	* config/aarch64/arm_neon.h: ...here.
+ 	* config/aarch64/arm_sve.h: Include arm_private_neon_types.h
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-modes.def (VNx64BI): New mode.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_split_double_move): Generalize to...
+ 	(aarch64_split_move): ...this.
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svcreate4, svget4)
+ 	(svset4, svundef4): Add bool variants.
+ 	* config/aarch64/aarch64-sve-builtins.cc (handle_arm_sve_h): Add
+ 	svboolx4_t.
+ 	* config/aarch64/iterators.md (SVE_STRUCT_BI): New mode iterator.
+ 	* config/aarch64/aarch64-sve.md (movvnx32bi): Generalize to...
+ 	(mov<SVE_STRUCT_BI:mode>): ...this.
+ 	* config/aarch64/aarch64.cc
+ 	(pure_scalable_type_info::piece::get_rtx): Allow num_prs to be 4.
+ 	(aarch64_classify_vector_mode): Handle VNx64BI.
+ 	(aarch64_hard_regno_nregs): Likewise.
+ 	(aarch64_class_max_nregs): Likewise.
+ 	(aarch64_array_mode): Use VNx64BI for arrays of 4 svbool_ts.
+ 	(aarch64_split_double_move): Generalize to...
+ 	(aarch64_split_move): ...this.
+ 	(aarch64_split_128bit_move): Update call accordingly.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Sort entries
+ 	alphabetically.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (ext_base): New base
+ 	class, extracted from...
+ 	(ext_def): ...here.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_resolver::target_type_restrictions): New enum.
+ 	(function_resolver::infer_pointer_type): Add an extra argument
+ 	that specifies what the target type can be.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_resolver::infer_pointer_type): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(load_gather_sv_base::get_target_type_restrictions): New virtual
+ 	member function.
+ 	(load_gather_sv_base::resolve): Use it.  Update call to
+ 	infer_pointer_type.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(store_scatter_base::infer_vector_type): New virtual member function.
+ 	(store_scatter_base::resolve): Use it.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_shape::vector_base_type): New member function.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_shape::vector_base_type): Likewise.
+ 	(function_resolver::resolve_sv_displacement): Use it.
+ 	(function_resolver::resolve_gather_address): Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_tbl<mode>): Wrap
+ 	the second operand in braces.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_all_data): Redefine
+ 	in terms of single-size *_data definitions.
+ 	(TYPES_bhs_data, TYPES_hs_data, TYPES_sd_data): Likewise.
+ 	(TYPES_b_data, TYPES_h_data, TYPES_s_data): New macros.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_SME): Expand comment.
+ 	(TARGET_STREAMING_SME): Delete.
+ 	* config/aarch64/aarch64-sme.md: Use TARGET_STREAMING instead of
+ 	TARGET_STREAMING_SME.
+ 	* config/aarch64/aarch64-sve2.md: Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md: Use TARGET_STREAMING_SME2
+ 	instead of separate TARGET_STREAMING and TARGET_SME2 tests.
+ 	* config/aarch64/aarch64-sve2.md: Likewise.
+ 	* config/aarch64/iterators.md: Likewise.
+ 
+ 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* function.h (push_function_decl, pop_function_decl): Declare.
+ 	* function.cc (set_function_decl): New function, extracted from...
+ 	(set_cfun): ...here.
+ 	(push_function_decl): New function, extracted from...
+ 	(push_cfun): ...here.
+ 	(pop_cfun_1): New function, extracted from...
+ 	(pop_cfun): ...here.
+ 	(pop_function_decl): New function.
+ 
+ 2024-11-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117510
+ 	* tree-ssa-loop-unswitch.cc (find_loop_guard): Only check
+ 	not skipped blocks for side-effects.
+ 
+ 2024-11-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Fix indent format issue.
+ 
+ 2024-11-11  Sam James  <sam@gentoo.org>
+ 
+ 	PR other/116948
+ 	* doc/install.texi (Building a native compiler): Document UBSAN_OPTIONS.
+ 
+ 2024-11-11  Sam James  <sam@gentoo.org>
+ 
+ 	PR other/116948
+ 	* doc/install.texi (Building a native compiler): Mention bootstrap-ubsan.
+ 
+ 2024-11-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*extzvsi-1bit_addsubx):
+ 	Add '&' to the destination register constraint to indicate that
+ 	it is 'earlyclobber', append '0' to the first source register
+ 	constraint to indicate that it can be the same as the destination
+ 	register, and change the split condition from 1 to reload_completed
+ 	so that the insn will be split only after RA in order to obtain
+ 	allocated registers that satisfy the above constraints.
+ 
+ 2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Diamond Rapids.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Add Diamond Rapids.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_types):
+ 	Add INTEL_COREI7_DIAMONDRAPIDS.
+ 	* config.gcc: Add -march=diamondrapids.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
+ 	diamondrapids.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
+ 	* config/i386/i386-options.cc (processor_cost_table): Ditto.
+ 	(m_DIAMONDRAPIDS): New.
+ 	(m_CORE_AVX512): Add diamondrapids.
+ 	* config/i386/i386.h (enum processor_type): Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Add new model
+ 	number for Arrow Lake.
+ 
+ 2024-11-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md (truncsf2bf2): Add !flag_rounding_math
+ 	to the condition, require flag_unsafe_math_optimizations when
+ 	native instruction is not available.
+ 	* config/i386/mmx.md: (truncv2sfv2bf2): Ditto.
+ 	(extendv2bfv2sf2): Add !HONOR_NANS (BFmode) to the condition.
+ 	* config/i386/sse.md: (truncv4sfv4sf2): Add
+ 	!flag_rounding_math to the condition, require
+ 	flag_unsafe_math_optimizations when native instruction is not
+ 	available.
+ 	(truncv8sfv8bf2): Ditto.
+ 	(truncv16sfv16bf2): Ditto.
+ 	(extendv4bfv4sf2): Add !HONOR_NANS (BFmode) to the condition.
+ 	(extendv8bfv8sf2): Ditto.
+ 	(extendv16bfv16sf2): Ditto.
+ 
+ 2024-11-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Return
+ 	zero for the permute nodes part of load-lanes.
+ 
+ 2024-11-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/117478
+ 	* config/darwin-driver.cc (darwin_driver_init): Handle ObjC/ObjC++
+ 	* config/darwin.opt: Add ObjC/ObjC++ as driver-only options.
+ 
+ 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/117492
+ 	* fold-const.cc (fold_binary_loc): Remove `Two consecutive rotates adding up
+ 	to the some integer` simplifcation.
+ 
+ 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117496
+ 	* tree-ssa-sccvn.cc (insert_predicates_for_cond): If the
+ 	valueization for the new lhs is the same as the old one,
+ 	don't recurse.
+ 
+ 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-sccvn.cc (visit_phi): Swap the operands
+ 	before calling vn_nary_op_lookup_pieces if
+ 	tree_swap_operands_p returns true.
+ 	(insert_predicates_for_cond): Use tree_swap_operands_p
+ 	instead of checking for CONSTANT_CLASS_P.
+ 	(process_bb): Swap the comparison and operands
+ 	if tree_swap_operands_p returns true.
+ 
+ 2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR target/117408
+ 	* config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE
+ 	types is missing and if so, return error.
+ 
+ 2024-11-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* trans-mem.cc (expand_assign_tm): Don't take address
+ 	of empty CONSTRUCTOR, instead use BUILT_IN_TM_MEMSET
+ 	to clear lhs in that case.  Formatting fixes.
+ 
+ 2024-11-09  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* config/i386/gcc-auto-profile: Regenerate.
+ 
+ 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117238
+ 	* config/pa/pa64-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
+ 	mode size 32.
+ 
+ 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/predicates.md (base14_operand): Use '&' operator
+ 	instead of '%' to check displacement alignment.
+ 
+ 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117238
+ 	* config/pa/pa32-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
+ 	mode size 32.  Limit mode size 16 in general registers to
+ 	complex modes.
+ 
+ 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/117443
+ 	* config/pa/pa.cc (pa_legitimate_address_p): Allow any
+ 	14-bit displacement when reload is in progress and strict
+ 	is false.
+ 
+ 2024-11-08  Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/116444
+ 	* config/arm/arm.cc (arm_noce_conversion_profitable_p): Call
+ 	default_noce_conversion_profitable_p when not dealing with the
+ 	armv8.1-m.main special case.
+ 	(arm_is_vsel_fp_insn): New function.
+ 
+ 2024-11-08  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (cortex-a520ae,
+ 	cortex-a720ae, cortex-r82ae): Define new entries.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Document A520AE, A720AE and R82AE CPUs.
+ 
+ 2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_psel<BHSD_BITS>)
+ 	(*aarch64_sve_psel<BHSD_BITS>_plus): Require TARGET_STREAMING
+ 	rather than TARGET_STREAMING_SME2.
+ 
+ 2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_fclamp<mode>)
+ 	(*aarch64_sve_fclamp<mode>_x): Require TARGET_STREAMING_SME2
+ 	rather than TARGET_STREAMING_SME.
+ 
+ 2024-11-07  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/117447
+ 	* config/bpf/btfext-out.cc (btf_ext_output): Bail if TU CTFC is null.
+ 
+ 2024-11-07  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_finalize): Check that hash maps are non-null before
+ 	emptying them.
+ 
+ 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/85605
+ 	* tree-ssa-ifcombine.cc (can_combine_bbs_with_short_circuit): New function.
+ 	(ifcombine_ifandif): Use can_combine_bbs_with_short_circuit
+ 	instead of checking if iterator is one before the last statement.
+ 
+ 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117414
+ 	* tree-ssa-sccvn.cc (process_bb): Lookup
+ 	`val != 0` if got back a ssa name when looking the comparison.
+ 
+ 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117414
+ 	* tree-ssa-sccvn.cc (insert_predicates_for_cond): Handle `(A CMP B) !=/== 0`.
+ 
+ 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117414
+ 	* tree-ssa-sccvn.cc (insert_predicates_for_cond): Canonicalize the comparison.
+ 	Don't insert anything if lhs is not a SSA_NAME. Handle `(a | b) !=/== 0`.
+ 
+ 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-sccvn.cc (insert_predicates_for_cond): New function, factored out from ...
+ 	(process_bb): Here.
+ 
+ 2024-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter): Refuse
+ 	to analyze DR_REF if from an epilogue that's not first.
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Add comment
+ 	how the substitution in DR_REF is broken.
+ 
+ 2024-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_loop_vec_info::main_loop_info): New.
+ 	(LOOP_VINFO_MAIN_LOOP_INFO): Likewise.
+ 	(_loop_vec_info::epilogue_vinfo): Change from epilogue_vinfos
+ 	from array to single element.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
+ 	main_loop_info and epilogue_vinfo.  Remove epilogue_vinfos
+ 	allocation.
+ 	(_loop_vec_info::~_loop_vec_info): Do not release epilogue_vinfos.
+ 	(vect_create_loop_vinfo): Rename parameter, set
+ 	LOOP_VINFO_MAIN_LOOP_INFO.
+ 	(vect_analyze_loop_1): Rename parameter.
+ 	(vect_analyze_loop_costing): Properly distinguish between
+ 	the main vector loop and the preceeding epilogue.
+ 	(vect_analyze_loop): Change for epilogue_vinfos no longer
+ 	being a vector.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Simplify and
+ 	thereby handle a vector epilogue of a vector epilogue.
+ 
+ 2024-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_loop_vec_info::drs_advanced_by): New.
+ 	(LOOP_VINFO_DRS_ADVANCED_BY): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
+ 	drs_advanced_by.
+ 	(update_epilogue_loop_vinfo): Remember the DR advancement made.
+ 	(vect_transform_loop): Accumulate past advancements.
+ 
+ 2024-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Move
+ 	vect_analyze_loop_costing after check whether we can do
+ 	peeling.  Add check on LOOP_VINFO_PEELING_FOR_GAPS for
+ 	epilogues.
+ 
+ 2024-11-07  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add doc for mask_len_stried_load{store}.
+ 
+ 2024-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/117467
+ 	* timevar.def (TV_EXT_DCE): New.
+ 	* ext-dce.cc (pass_data_ext_dce): Use TV_EXT_DCE.
+ 
+ 2024-11-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (cstorebf4): Use vcomsbf16 under
+ 	TARGET_AVX10_2_256 and -fno-trapping-math.
+ 	(cbranchbf4): Adjust formatting.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc
+ 	(ifcombine_rewrite_to_defined_overflow): New.
+ 	(ifcombine_replace_cond): Reject conds that would require
+ 	moving too many stmts.  Reset flow sensitive info and avoid
+ 	undefined behavior in moved stmts.  Reset flow sensitive info
+ 	in all inner blocks when the outer condition changes, and
+ 	avoid undefined behavior whenever the outer condition becomes
+ 	laxer, adapted and moved from...
+ 	(pass_tree_ifcombine::execute): ... here.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (ifcombine_replace_cond): Support
+ 	TRUTH_ANDIF cond exprs.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (recognize_if_then_else): Support
+ 	relaxed then/else testing; require nondegenerate condition
+ 	otherwise.
+ 	(tree_ssa_ifcombine_bb_1): Add outer_succ_bb parm, use it
+ 	instead of inner_cond_bb.  Adjust callers.
+ 	(tree_ssa_ifcombine_bb): Loop over dominating outer blocks
+ 	eligible for ifcombine.
+ 	(pass_tree_ifcombine::execute): Noted potential need for
+ 	changes to the post-combine logic.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc: Include bitmap.h.
+ 	(ifcombine_mark_ssa_name): New.
+ 	(struct ifcombine_mark_ssa_name_t): New.
+ 	(ifcombine_mark_ssa_name_walk): New.
+ 	(ifcombine_replace_cond): Prepare to handle noncontiguous and
+ 	split-condition ifcombine.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (known_succ_p): New.
+ 	(update_profile_after_ifcombine): Handle noncontiguous blocks.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (ifcombine_replace_cond): Factor out
+ 	of...
+ 	(ifcombine_ifandif): ... this.  Leave it for the above to
+ 	gimplify and invert the condition.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Drop redundant
+ 	result_inv parm.  Adjust all callers.
+ 
+ 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-ssa-ifcombine.cc (bb_no_side_effects_p): Allow vuses,
+ 	but not vdefs.
+ 
+ 2024-11-07  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: Add the form1 of signed imm .SAT_ADD matching.
+ 	* tree-ssa-math-opts.cc (match_saturation_add): Add fold
+ 	convert	for const_int to the type of operand 0.
+ 
+ 2024-11-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR rtl-optimization/112398
+ 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
+ 	Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
+ 	when X doesn't have any non-zero bits outside of SUBREG mode.
+ 
+ 2024-11-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (cdtor_record): Make position unsigned.
+ 
+ 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* omp-general.cc (omp_max_vf): Cast the constant to poly_uint64.
+ 
+ 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* internal-fn.cc (expand_GOMP_MAX_VF): New function.
+ 	* internal-fn.def (GOMP_MAX_VF): New internal function.
+ 	* omp-expand.cc (omp_adjust_chunk_size): Emit IFN_GOMP_MAX_VF when
+ 	called in offload context, otherwise assume host context.
+ 	* omp-offload.cc (execute_omp_device_lower): Expand IFN_GOMP_MAX_VF.
+ 
+ 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* omp-expand.cc (is_in_offload_region): New function.
+ 	(omp_adjust_chunk_size): Add pass-through "offload" parameter.
+ 	(get_ws_args_for): Likewise.
+ 	(determine_parallel_type): Use is_in_offload_region to adjust call to
+ 	get_ws_args_for.
+ 	(expand_omp_for_generic): Likewise.
+ 	(expand_omp_for_static_chunk): Likewise.
+ 
+ 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* gimple-loop-versioning.cc (loop_versioning::loop_versioning): Set
+ 	omp_max_vf to offload == false.
+ 	* omp-expand.cc (omp_adjust_chunk_size): Likewise.
+ 	* omp-general.cc (omp_max_vf): Add "offload" parameter, and detect
+ 	amdgcn offload devices.
+ 	* omp-general.h (omp_max_vf): Likewise.
+ 	* omp-low.cc (lower_rec_simd_input_clauses): Pass offload state to
+ 	omp_max_vf.
+ 
+ 2024-11-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-assume.cc (assume_query::assume_query): Add debug output.
+ 	(assume_query::update_parms): Likewise.
+ 	(assume_query::calculate_phi): Likewise.
+ 	(assume_query::calculate_op): Likewise.  Also pick up any
+ 	merged path values.
+ 	(assume_query::calculate_stmt): Likewise.
+ 
+ 2024-11-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (class diagnostic_context): Fix typo in leading
+ 	comment.
+ 
+ 2024-11-06  Michal Jires  <mjires@suse.cz>
+ 
+ 	* ipa-prop.cc (write_ipcp_transformation_info): Disable
+ 	uneeded value propagation.
+ 	* lto-cgraph.cc (lto_symtab_encoder_encode): Default values.
+ 	(lto_symtab_encoder_always_inlined_p): New.
+ 	(lto_set_symtab_encoder_not_always_inlined): New.
+ 	(add_node_to): Set always inlined.
+ 	* lto-streamer.h (struct lto_encoder_entry): New field.
+ 	(lto_symtab_encoder_always_inlined_p): New.
+ 
+ 2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117439
+ 	* gimple-ssa-store-merging.cc
+ 	(imm_store_chain_info::coalesce_immediate_stores): Punt if merging of
+ 	any of the additional overlapping stores would result in growing the
+ 	bitregion size over param_store_merging_max_size.
+ 	(pass_store_merging::process_store): Terminate all aliasing chains
+ 	for stores with bitregion larger than param_store_merging_max_size.
+ 
+ 2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117439
+ 	* gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For
+ 	empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an
+ 	integral mode.
+ 
+ 2024-11-06  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/117304
+ 	* config/i386/i386-builtin.def: Add OPTION_MASK_ISA2_EVEX512 for some
+ 	AVX512 512-bits instructions.
+ 
+ 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* match.pd (X != 0 ? X + ~0 : 0): Fix comment.
+ 
+ 2024-11-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117449
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
+ 	Match only when can_create_pseudo_p ().
+ 	* config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Assume
+ 	can_create_pseudo_p ().
+ 
+ 2024-11-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_vector_bf2sf_with_vec_perm): New function.
+ 	* config/i386/i386-protos.h
+ 	(ix86_expand_vector_bf2sf_with_vec_perm): New Declare.
+ 	* config/i386/mmx.md (extendv2bfv2sf2): New expander.
+ 	* config/i386/sse.md (extend<sf_cvt_bf16_lower><mode>2):
+ 	Ditto.
+ 	(VF1_AVX512BW): New mode iterator.
+ 	(sf_cvt_bf16): Add V4SF.
+ 	(sf_cvt_bf16_lower): New mode attr.
+ 
+ 2024-11-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_vector_sf2bf_with_vec_perm): New function.
+ 	* config/i386/i386-protos.h
+ 	(ix86_expand_vector_sf2bf_with_vec_perm): New declare.
+ 	* config/i386/mmx.md (truncv2sfv2bf2): New expander.
+ 	* config/i386/sse.md (truncv4sfv4bf2): Ditto.
+ 	(truncv8sfv8bf2): Ditto.
+ 	(truncv16sfv16bf2): Ditto.
+ 
+ 2024-11-05  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/117416
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Raise warning when
+ 	op1 isn't in range of [0, 2] and set op1 as const0_rtx, and raise
+ 	warning when op3 isn't in range of [0, 1].
+ 
+ 2024-11-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117433
+ 	* cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move
+ 	when moving temp to BLKmode target.
+ 
+ 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-passes.def: Don't add pass_tag_collision_avoidance.
+ 	* config/aarch64/aarch64-protos.h (make_pass_tag_collision_avoidance): Remove.
+ 	* config/aarch64/aarch64-tuning-flags.def (RENAME_LOAD_REGS): Remove.
+ 	* config/aarch64/tuning_models/qdf24xx.h (qdf24xx_tunings): Set tuning flags to
+ 	AARCH64_EXTRA_TUNE_NONE.
+ 	* config/aarch64/falkor-tag-collision-avoidance.cc: Removed.
+ 	* config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): Remove.
+ 	* config.gcc (aarch64*-*-*): Remove falkor-tag-collision-avoidance.o from extra_objs.
+ 
+ 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (falkor): Use cortex-a57 scheduler.
+ 	(saphira): Likewise.
+ 	* config/aarch64/aarch64.md: Don't include falkor.md and saphira.md.
+ 	* config/aarch64/falkor.md: Removed.
+ 	* config/aarch64/saphira.md: Removed.
+ 
+ 2024-11-05  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_branch): Handle BFmode
+ 	when TARGET_AVX10_2_256 is enabled.
+ 	(ix86_prepare_fp_compare_args): Use SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P.
+ 	(ix86_expand_fp_movcc): Ditto.
+ 	(ix86_expand_fp_compare): Handle BFmode under IX86_FPCMP_COMI.
+ 	* config/i386/i386.cc (ix86_multiplication_cost): Use
+ 	SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P.
+ 	(ix86_division_cost): Ditto.
+ 	(ix86_rtx_costs): Ditto.
+ 	(ix86_vector_costs::add_stmt_cost): Ditto.
+ 	* config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Rename to ...
+ 	(SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): ...this, and add BFmode.
+ 	* config/i386/i386.md (*cmpibf): New define_insn.
+ 
+ 2024-11-05  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_typedef): New function.
+ 	(get_type_num): Call get_type_num_typedef.
+ 	* dwarf2codeview.h (T_HRESULT): Define.
+ 
+ 2024-11-05  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_custom_type): Add new fields to
+ 	lf_pointer struct in union.
+ 	(write_lf_pointer): Write containing_class and ptr_to_mem_type if
+ 	applicable.
+ 	(get_type_num_subroutine_type): Write correct containing_class_type if
+ 	this is a pointer to a member function.
+ 	(get_type_num_ptr_to_member_type): New function.
+ 	(get_type_num): Call get_type_num_ptr_to_member_type.
+ 	* dwarf2codeview.h (CV_PTR_MODE_MASK, CV_PTR_MODE_PMEM): Define.
+ 	(CV_PTR_MODE_PMFUNC, CV_PMTYPE_D_Single, CV_PMTYPE_F_Single): Likewise.
+ 
+ 2024-11-05  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add LF_BCLASS.
+ 	(struct codeview_subtype): Add lf_bclass to union.
+ 	(write_cv_padding): Add declaration.
+ 	(write_lf_fieldlist): Handle LF_BCLASS records.
+ 	(add_struct_inheritance): New function.
+ 	(get_type_num_struct): Call add_struct_inheritance.
+ 
+ 2024-11-04  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
+ 	New function.
+ 	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
+ 
+ 2024-11-04  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-string.cc
+ 	(use_vector_stringop_p): Add comment.
+ 	(expand_vec_setmem): Use use_vector_stringop_p instead of
+ 	check_vectorise_memory_operation.
+ 
+ 2024-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (class diagnostic_context): Update leading comment.
+ 
+ 2024-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* opts-diagnostic.cc: Apply renamings throughout for clarity: from
+ 	"name" and "format_name" to "scheme_name", from "m_format" to
+ 	"m_scheme_name", and from "handler" to "scheme_handler".
+ 	(output_factory::scheme_handler::get_handler): Pass name by const
+ 	reference.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* simplify-rtx.cc (extract_ashift_operands_p): Define.
+ 	(simplify_rotate_op): Likewise.
+ 	(simplify_context::simplify_binary_operation_1): Use the above in
+ 	the PLUS, IOR, XOR cases.
+ 	(test_vector_rotate): Define.
+ 	(test_vector_ops): Use the above.
+ 
+ 2024-11-04  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR target/116725
+ 	* config/i386/sse.md: Fix asm generation.
+ 
+ 2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/117398
+ 	* gimple-range-edge.cc (gimple_outgoing_range::calc_switch_ranges):
+ 	Check for VARYING and don't call invert () on it.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Revert:
+ 	2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* simplify-rtx.cc (extract_ashift_operands_p): Define.
+ 	(simplify_rotate_op): Likewise.
+ 	(simplify_context::simplify_binary_operation_1): Use the above in
+ 	the PLUS, IOR, XOR cases.
+ 	(test_vector_rotate): Define.
+ 	(test_vector_ops): Use the above.
+ 
+ 2024-11-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/invoke.texi: Fix documentation of LS64 so that it's
+ 	not implied by Armv8.7-A or Armv9.2-A.
+ 
+ 2024-11-04  Yuta Mukai  <mukai.yuta@fujitsu.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add fujitsu-monaka.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/aarch64.cc: Include fujitsu-monaka tuning model.
+ 	* doc/invoke.texi: Document -mcpu=fujitsu-monaka.
+ 	* config/aarch64/tuning_models/fujitsu_monaka.h: New file.
+ 
+ 2024-11-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Update
+ 	DR inits after adjusting the epilog metadata.
+ 
+ 2024-11-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): A DRs
+ 	main stmt vinfo dr_aux should refer to a pattern stmt
+ 	which is how move_dr sets this up.  We shouldn't undo this.
+ 
+ 2024-11-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop): Move lowest_th
+ 	compute until after epilogue_vinfos is final.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Simplify (rotate:HI x:HI, 8) -> (bswap:HI x:HI).
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Add
+ 	generation of XAR sequences when possible.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* expmed.h (expand_rotate_as_vec_perm): Declare.
+ 	* expmed.cc (expand_rotate_as_vec_perm): Define.
+ 	* config/aarch64/aarch64-protos.h (aarch64_emit_opt_vec_rotate):
+ 	Declare prototype.
+ 	* config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Implement.
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
+ 	Call the above.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
+ 	New define_insn_and_split.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/iterators.md (SVE_ASIMD_FULL_I): New mode iterator.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>):
+ 	Use SVE_ASIMD_FULL_I modes.  Use ROTATE code for the rotate step.
+ 	Adjust output logic.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svxar_impl): Define.
+ 	(svxar): Use the above.
+ 
+ 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* simplify-rtx.cc (extract_ashift_operands_p): Define.
+ 	(simplify_rotate_op): Likewise.
+ 	(simplify_context::simplify_binary_operation_1): Use the above in
+ 	the PLUS, IOR, XOR cases.
+ 	(test_vector_rotate): Define.
+ 	(test_vector_ops): Use the above.
+ 
+ 2024-11-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/115023
+ 	* doc/extend.texi (__builtin_assoc_barrier): Document ffp-contract=fast
+ 	and FMA usage.
+ 
+ 2024-11-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117363
+ 	* match.pd (`a != 0 ? a - 1 : 0`): Fix type handling
+ 	and nop_convert handling.
+ 
+ 2024-11-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117384
+ 	* gimplify.cc (gimplify_init_ctor_eval): Add VIEW_CONVERT_EXPR around
+ 	rctor if it doesn't have expected type.
+ 
+ 2024-11-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/ft32/ft32.cc (ft32_lra_p): Remove.
+ 	(TARGET_LRA_P): Likewise.
+ 	* config/ft32/ft32.opt: Make -mlra ignored.
+ 	* doc/invoke.texi: Adjust documentation for -mlra on ft32.
+ 
+ 2024-11-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/117407
+ 	* builtins.cc (expand_builtin_prefetch): Use !IN_RANGE rather
+ 	than IN_RANGE.
+ 
+ 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (operator_bitwise_or::op1_range): If LHS is signed
+ 	positive, so are both operands.
+ 
+ 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/117287
+ 	* Makefile.in (IBJS): Add tree-assume.o
+ 	* gimple-range.cc (assume_query::assume_range_p): Remove.
+ 	(assume_query::range_of_expr): Remove.
+ 	(assume_query::assume_query): Move to tree-assume.cc.
+ 	(assume_query::~assume_query): Remove.
+ 	(assume_query::calculate_op): Move to tree-assume.cc.
+ 	(assume_query::calculate_phi): Likewise.
+ 	(assume_query::check_taken_edge): Remove.
+ 	(assume_query::calculate_stmt): Move to tree-assume.cc.
+ 	(assume_query::dump): Remove.
+ 	* gimple-range.h (class assume_query): Move to tree-assume.cc
+ 	* tree-assume.cc: New
+ 	* tree-vrp.cc (struct pass_data_assumptions): Move to tree-assume.cc.
+ 	(class pass_assumptions): Likewise.
+ 	(make_pass_assumptions): Likewise.
+ 
+ 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (class fur_edge): Relocate from here.
+ 	(fur_edge::fur_edge): Also move to:
+ 	* gimple-range-fold.h (class fur_edge): Relocate to here.
+ 	(fur_edge::fur_edge): Likewise.
+ 
+ 2024-11-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/standards.texi (C++ Language): Mention also the 2024
+ 	revision and -std=gnu++23 option.
+ 	* doc/invoke.texi (-std=): Adjust description of c++23, c++2b,
+ 	gnu++23 and gnu++2b now that ISO C++ 14882:2024 is published.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* builtins.cc (expand_builtin_prefetch): Use IN_RANGE to
+ 	avoid second usage of INTVAL.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
+ 	type conversion for pointer.
+ 	(_cmpccxadd_epi64): Ditto.
+ 
+ 2024-11-01  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/116887
+ 	* varasm.cc (default_section_type_flags): Always set
+ 	SECTION_RELRO if name is .data.rel.ro{,.local}.
+ 
+ 2024-11-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/117361
+ 	* Makefile.in (GCC_FOR_SELFTESTS): New.
+ 
+ 2024-11-01  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect AMX-MOVRS.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_MOVRS_SET): New.
+ 	(OPTION_MASK_ISA2_AMX_MOVRS_UNSET): Ditto.
+ 	(ix86_handle_option): Handle -mamx-movrs.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_MOVRS.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	amx-movrs.
+ 	* config.gcc: Add amxmovrsintrin.h.
+ 	* config/i386/cpuid.h (bit_AMX_MOVRS): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Define __AMX_MOVRS__.
+ 	* config/i386/i386-isa.def (AMX_MOVRS): Add DEF_PTA(AMX_MOVRS).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle amx-movrs.
+ 	* config/i386/i386.opt: Add option -mamx-movrs.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include amxmovrsintrin.h
+ 	* doc/extend.texi: Document amx-movrs.
+ 	* doc/invoke.texi: Document -mamx-movrs.
+ 	* doc/sourcebuild.texi: Document target amx-movrs.
+ 	* config/i386/amxmovrsintrin.h: New file.
+ 
+ 2024-11-01  Hu, Lin1  <lin1.hu@intel.com>
+ 	    Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* builtins.cc (expand_builtin_prefetch): Expand for
+ 	prefetchrst2.
+ 	* common/config/i386/cpuinfo.h (get_available_features): Detect movrs.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_MOVRS_SET): New.
+ 	(OPTION_MASK_ISA2_MOVRS_UNSET): Ditto.
+ 	(ix86_handle_option): Handle -mmovrs.
+ 	* common/config/i386/i386-cpuinfo.h
+ 	(enum processor_features): Add FEATURE_MOVRS.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for movrs.
+ 	* config.gcc: Add movrsintrin.h
+ 	* config/i386/cpuid.h (bit_MOVRS): New.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (CHAR, PCCHAR), (SHORT, PCSHORT), (INT, PCINT),
+ 	(INT64, PCINT64).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add
+ 	__MOVRS__.
+ 	* config/i386/i386-expand.cc (ix86_expand_special_args_builtin): Define
+ 	__MOVRS__.
+ 	* config/i386/i386-isa.def (MOVRS): Add DEF_PTA(MOVRS)
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle movrs.
+ 	* config/i386/i386.md (movrs<mode>): New.
+ 	* config/i386/i386.opt: Add option -mmovrs.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include movrsintrin.h
+ 	* config/i386/sse.md (unspecv): Add UNSPEC_VMOVRS.
+ 	(VI1248_AVX10_2): New.
+ 	(avx10_2_movrs_vmovrs<ssemodesuffix><mode><mask_name>): New define_insn.
+ 	* config/i386/xmmintrin.h: Add prefetchrst2.
+ 	* doc/extend.texi: Document movrs.
+ 	* doc/invoke.texi: Document -mmovrs.
+ 	* doc/rtl.texi: Document extension of prefetchrst2.
+ 	* doc/sourcebuild.texi: Document target movrs.
+ 	* config/i386/movrsintrin.h: New.
+ 
+ 2024-11-01  Liwei Xu  <liwei.xu@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_available_features): Detect amx-fp8.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_FP8_SET): New macros.
+ 	(OPTION_MASK_ISA2_AMX_FP8_UNSET): Ditto.
+ 	(ix86_handle_option): Handle -mamx-fp8.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_FP8.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for amx-fp8.
+ 	* config.gcc: Add amxfp8intrin.h.
+ 	* config/i386/cpuid.h (bit_AMX_FP8): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Define __AMX_FP8__.
+ 	* config/i386/i386-isa.def (AMX_FP8): Add DEF_PTA for AMX_FP8.
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Add new ATTR.
+ 	* config/i386/i386.opt: Add -mamx-fp8.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include amxfp8intrin.h.
+ 	* doc/extend.texi: Document -mamx-fp8.
+ 	* doc/invoke.texi: Document -mamx-fp8.
+ 	* doc/sourcebuild.texi: Document -mamx-fp8.
+ 	* config/i386/amxfp8intrin.h: New file.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect AMX-TRANSPOSE.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_TRANSPOSE_SET,
+ 	OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): New.
+ 	(ix86_handle_option): Handle -mamx-transpose.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_TRANSPOSE.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	amx-transpose.
+ 	* config.gcc: Add amxtransposeintrin.h.
+ 	* config/i386/cpuid.h (bit_AMX_TRANSPOSE): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__AMX_TRANSPOSE__.
+ 	* config/i386/i386-isa.def (AMX_TRANSPOSE): Add
+ 	DEF_PTA(AMX_TRANSPOSE).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle amx-transpose.
+ 	* config/i386/i386.opt: Add option -mamx-transpose.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include amxtransposeintrin.h.
+ 	* doc/extend.texi: Document amx-transpose.
+ 	* doc/invoke.texi: Document -mamx-transpose.
+ 	* doc/sourcebuild.texi: Document target amx-transpose.
+ 	* config/i386/amxtransposeintrin.h: New file.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect AMX-TF32.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_TF32_SET,
+ 	OPTION_MASK_ISA2_AMX_TF32_UNSET): New.
+ 	(ix86_handle_option): Handle -mamx-tf32.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_TF32.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	amx-tf32.
+ 	* config.gcc: Add amxtf32intrin.h
+ 	* config/i386/cpuid.h (bit_AMX_TF32): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Handle amx-tf32.
+ 	* config/i386/i386-isa.def (AMX_TF32): Add DEF_PTA(AMX_TF32).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle amx-tf32.
+ 	* config/i386/i386.opt: Add option -mamx-tf32.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include amxtf32intrin.h.
+ 	* doc/extend.texi: Document amx-tf32.
+ 	* doc/invoke.texi: Document -mamx-tf32.
+ 	* doc/sourcebuild.texi: Document target amx-tf32.
+ 	* config/i386/amxtf32intrin.h: New file.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Yu, Bing  <bing1.yu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect AMX-AVX512.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_AVX512_SET,
+ 	OPTION_MASK_ISA2_AMX_AVX512_UNSET): New.
+ 	(ix86_handle_option): Handle -mamx-avx512.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_AVX512.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	amx-avx512.
+ 	* config.gcc: Add amxavx512intrin.h
+ 	* config/i386/cpuid.h (bit_AMX_AVX512): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Handle amx-avx512.
+ 	* config/i386/i386-isa.def (AMX_AVX512): Add DEF_PTA(AMX_AVX512).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle amx-avx512.
+ 	* config/i386/i386.opt: Add option -mamx-avx512.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/i386/immintrin.h: Include amxavx512intrin.h
+ 	* doc/extend.texi: Document amx-avx512.
+ 	* doc/invoke.texi: Document -mamx-avx512.
+ 	* doc/sourcebuild.texi: Document target amx-avx512.
+ 	* config/i386/amxavx512intrin.h: New file.
+ 
+ 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
+ 	V16SI_FTYPE_V16SI_V16SI.
+ 	* config/i386/sm4intrin.h: Add zmm insns.
+ 	* config/i386/sse.md (vsm4key4_<mode>): Add EVEX pattern.
+ 	(vsm4rnds4_<mode>): Ditto.
+ 
+ 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svmax, svamin): Move
+ 	definitions to...
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc: ...here.
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svmax, svamin): Move
+ 	definitions to...
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: ...here.  Require
+ 	SME2 in streaming mode.
+ 
+ 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config.gcc (aarch64*-*-*): Add aarch64-protos.h to target_gtfiles.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_required_extensions): New structure.
+ 	(aarch64_check_required_extensions): Change the type of the
+ 	required_extensions parameter from aarch64_feature_flags to
+ 	aarch64_required_extensions.
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_builder::add_unique_function): Likewise.
+ 	(function_builder::add_overloaded_function): Likewise.
+ 	(function_builder::get_attributes): Likewise.
+ 	(function_builder::add_function): Likewise.
+ 	(function_group_info): Change the type of required_extensions
+ 	in the same way.
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_pragma_builtins_data::required_extensions): Change the type
+ 	from aarch64_feature_flags to aarch64_required_extensions.
+ 	(aarch64_check_required_extensions): Likewise change the type
+ 	of the required_extensions parameter.  Separate the requirements
+ 	for non-streaming mode and streaming mode, ORing them together
+ 	for streaming-compatible mode.
+ 	(aarch64_general_required_extensions): New function.
+ 	(aarch64_general_check_builtin_call): Use it.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(registered_function::required_extensions): Change the type
+ 	from aarch64_feature_flags to aarch64_required_extensions.
+ 	(DEF_NEON_SVE_FUNCTION, DEF_SME_ZA_FUNCTION_GS): Update accordingly.
+ 	(function_builder::get_attributes): Change the type of the
+ 	required_extensions parameter from aarch64_feature_flags to
+ 	aarch64_required_extensions.
+ 	(function_builder::add_function): Likewise.
+ 	(function_builder::add_unique_function): Likewise.
+ 	(function_builder::add_overloaded_function): Likewise.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: Update
+ 	REQUIRED_EXTENSIONS definitions to use aarch64_required_extensions.
+ 	* config/aarch64/aarch64-sve-builtins-base.def: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
+ 
+ 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (ENTRY): Remove the features
+ 	argument and get the features from REQUIRED_EXTENSIONS instead.
+ 	(ENTRY_VHSDF): Move definition to...
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: ...here.
+ 	Move the architecture requirements to REQUIRED_EXTENSIONS.
+ 
+ 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svtrn1q, svtrn2q)
+ 	(svuzp1q, svuzp2q, svzip1q, svzip2q): Require SM_OFF.
+ 
+ 2024-10-31  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check for HAVE_CLOCK_GETTIME.
+ 	* timevar.cc (get_time): Use HAVE_CLOCK_GETTIME.
+ 
+ 2024-10-31  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Use IOR op.
+ 
+ 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add lazy-diagnostic-path.o.
+ 	* lazy-diagnostic-path.cc: New file.
+ 	* lazy-diagnostic-path.h: New file.
+ 	* selftest-diagnostic.cc: Include "diagnostic-format.h".
+ 	(test_diagnostic_context::test_diagnostic_context): Turn off
+ 	flushing for the output format's printer.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::lazy_diagnostic_path_cc_tests.
+ 	* selftest.h (selftest::lazy_diagnostic_path_cc_tests): New decl.
+ 
+ 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* opts-diagnostic.cc (output_factory::handler::handler): Use
+ 	std::move on name.
+ 
+ 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::finish): Delete and reset
+ 	m_option_mgr.
+ 
+ 2024-10-31  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/117176
+ 	* tree-vect-patterns.cc (vect_recog_gcond_pattern): Lower all gconds.
+ 	* tree-vect-slp.cc (vect_analyze_slp): No longer check for in vect def.
+ 
+ 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv.cc (riscv_can_inline_p): Refuse to inline
+ 	when callee is versioned but caller is not.
+ 
+ 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_process_target_attr): New.
+ 	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr):
+ 	Split into two functions with const char *args argument
+ 
+ 2024-10-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117354
+ 	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Pass
+ 	true as inner_reference_p argument to expand_expr_real if
+ 	mode is BLKmode.  Don't call extract_bit_field if mode is BLKmode.
+ 
+ 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/riscv/predicates.md: Use flag_plt instead of TARGET_PLT.
+ 	* config/riscv/riscv.opt: alias common option fplt to mplt.
+ 
+ 2024-10-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree.cc (valid_new_delete_pair_p): Fix up duplicate "or  or"
+ 	in comment.
+ 
+ 2024-10-31  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/114785
+ 	PR middle-end/116949
+ 	* gimple-match-exports.cc (maybe_push_res_to_seq): Remove special
+ 	handling of COMPARISON_CLASS_P in COND_EXPR/VEC_COND_EXPR.
+ 	(gimple_extract): Likewise.
+ 	* gimple-walk.cc (walk_stmt_load_store_addr_ops): Likewise.
+ 	* gimple.cc (gimple_build_assign_1): Add assert for COND_EXPR
+ 	so its 1st operand is not a comparison.
+ 
+ 2024-10-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* tree-vectorizer.cc (pass_vectorize::execute): Reset dont_vectorize
+ 	to scalar loop when setting IFN_LOOP_VECTORIZED to false.
+ 
+ 2024-10-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* params.opt: Adjust param_vect_max_version_for_alias_checks
+ 
+ 2024-10-30  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* doc/cpp.texi (__STDC_VERSION__): Do not refer to C23 support as
+ 	experimental.
+ 	* doc/invoke.texi (std=c23, std=gnu23): Do not document as
+ 	experimental and incomplete.
+ 	* doc/standards.texi: Do not refer to C23 support as experimental
+ 	and incomplete.
+ 
+ 2024-10-30  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* timevar.cc (struct tms): Remove.
+ 	(RUSAGE_SELF): Remove.
+ 	(TICKS_PER_SECOND): Remove.
+ 	(USE_TIMES): Remove.
+ 	(HAVE_USER_TIME): Remove.
+ 	(HAVE_SYS_TIME): Remove.
+ 	(HAVE_WALL_TIME): Remove.
+ 	(USE_GETRUSAGE): Remove.
+ 	(USE_CLOCK): Remove.
+ 	(NANOSEC_PER_SEC): Remove.
+ 	(TICKS_TO_NANOSEC): Remove.
+ 	(CLOCKS_TO_NANOSEC): Remove.
+ 	(timer::named_items::push): Remove sys/user.
+ 	(get_time): Remove clock and times and getruage code.
+ 	(timevar_accumulate): Remove sys/user.
+ 	(timevar_diff): Dito.
+ 	(timer::validate_phases): Dito.
+ 	(timer::print_row): Dito.
+ 	(timer::all_zero): Dito.
+ 	(timer::print): Dito.
+ 	(make_json_for_timevar_time_def): Dito.
+ 	* timevar.h (struct timevar_time_def): Dito.
+ 
+ 2024-10-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (finish_cost): Inline everywhere and remove.
+ 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters):
+ 	Inline finish_cost.
+ 	* tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise.
+ 
+ 2024-10-30  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/aarch64/aarch64.cc (dispatch_function_versions): Adding
+ 	DECL_EXTERNAL, TREE_PUBLIC and hidden DECL_VISIBILITY to
+ 	__init_cpu_features_resolver and __aarch64_cpu_features.
+ 
+ 2024-10-30  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (singleton_vxrm_need): New function.
+ 	(riscv_mode_needed): See if there is a singleton need and if so,
+ 	claim it happens on the first insn in the chain.
+ 
+ 2024-10-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117318
+ 	* config/i386/sse.md (*avx512vl_<code>v2div2qi2_mask_store_1):
+ 	Rename to ..
+ 	(avx512vl_<code>v2div2qi2_mask_store_1): .. this.
+ 	(avx512vl_<code>v2div2qi2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512vl_<code><mode>v4qi2_mask_store_1): Rename to ..
+ 	(avx512vl_<code><mode>v4qi2_mask_store_1): .. this.
+ 	(avx512vl_<code><mode>v4qi2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512vl_<code><mode>v8qi2_mask_store_1): Rename to ..
+ 	(avx512vl_<code><mode>v8qi2_mask_store_1): .. this.
+ 	(avx512vl_<code><mode>v8qi2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512vl_<code><mode>v4hi2_mask_store_1): Rename to ..
+ 	(avx512vl_<code><mode>v4hi2_mask_store_1): .. this.
+ 	(avx512vl_<code><mode>v4hi2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512vl_<code>v2div2hi2_mask_store_1): Rename to ..
+ 	(avx512vl_<code>v2div2hi2_mask_store_1): .. this.
+ 	(avx512vl_<code>v2div2hi2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512vl_<code>v2div2si2_mask_store_1): Rename to ..
+ 	(avx512vl_<code>v2div2si2_mask_store_1): .. this.
+ 	(avx512vl_<code>v2div2si2_mask_store_2): Change to
+ 	define_expand.
+ 	(*avx512f_<code>v8div16qi2_mask_store_1): Rename to ..
+ 	(avx512f_<code>v8div16qi2_mask_store_1): .. this.
+ 	(avx512f_<code>v8div16qi2_mask_store_2): Change to
+ 	define_expand.
+ 
+ 2024-10-30  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (STRS_QUALIFIERS): Delete.
+ 	(STRU_QUALIFIERS): Delete.
+ 	(STRS_P_QUALIFIERS): Delete.
+ 	(STRU_P_QUALIFIERS): Delete.
+ 	(LDRS_QUALIFIERS): Delete.
+ 	(LDRU_QUALIFIERS): Delete.
+ 	(LDRS_Z_QUALIFIERS): Delete.
+ 	(LDRU_Z_QUALIFIERS): Delete.
+ 
+ 2024-10-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (check_bool_pattern): Remove.
+ 	(adjust_bool_pattern_cast): Likewise.
+ 	(adjust_bool_pattern): Likewise.
+ 	(sort_after_uid): Likewise.
+ 	(adjust_bool_stmts): Likewise.
+ 	(vect_recog_bool_pattern): Remove calls to check_bool_pattern
+ 	and fold as if it returns false.
+ 
+ 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117296
+ 	* function.cc (assign_parms): Call do_pending_stack_adjust.
+ 
+ 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117348
+ 	* genmatch.cc: Replace defined(HAVE_DECL_FMEMOPEN)
+ 	test with HAVE_DECL_FMEMOPEN.
+ 
+ 2024-10-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_TEMP.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin)
+ 	<case IX86_BUILTIN_LDMXCSR>: Use assign_stack_temp instead of
+ 	assign_386_stack_local with SLOT_TEMP.
+ 	<case IX86_BUILTIN_LDMXCSR>: Ditto.
+ 	(ix86_expand_divmod_libfunc): Ditto.
+ 	* config/i386/i386.md (floatunssi<mode>2): Ditto.
+ 	* config/i386/sync.md (atomic_load<mode>): Ditto.
+ 	(atomic_store<mode>): Ditto.
+ 
+ 2024-10-30  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: Simplify (x != 0 ? x + ~0 : 0) to (x - x != 0).
+ 
+ 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	Revert:
+ 	2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/117091
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
+ 	Change clustering algorithm to simple greedy.
+ 
+ 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* Makefile.in (OBJS-libcommon-target): Add opts-diagnostic.o.
+ 	* common.opt (fdiagnostics-add-output=): New.
+ 	(fdiagnostics-set-output=): New.
+ 	(diagnostics_output_format): Drop sarif-file-2.2-prerelease from
+ 	enum.
+ 	* common.opt.urls: Regenerate.
+ 	* diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer): New.
+ 	(diagnostic_buffer::ensure_per_format_buffer): Rename to...
+ 	(diagnostic_buffer::ensure_per_format_buffers): ...this.
+ 	(diagnostic_buffer::m_per_format_buffer): Replace with...
+ 	(diagnostic_buffer::m_per_format_buffers): ...this, updating type.
+ 	* diagnostic-format-json.cc (json_output_format::update_printer):
+ 	New.
+ 	(json_output_format::follows_reference_printer_p): New.
+ 	(diagnostic_output_format_init_json): Drop redundant call to
+ 	set_path_format, as this is not a text output format.
+ 	* diagnostic-format-sarif.cc: Include "diagnostic-format-text.h".
+ 	(sarif_builder::set_printer): New.
+ 	(sarif_builder::sarif_builder): Add "printer" param and use it for
+ 	m_printer.
+ 	(sarif_builder::make_location_object::escape_nonascii_renderer::render):
+ 	Rather than using dc.m_printer, create a
+ 	diagnostic_text_output_format instance and use its printer.
+ 	(sarif_output_format::follows_reference_printer_p): New.
+ 	(sarif_output_format::update_printer): New.
+ 	(sarif_output_format::sarif_output_format): Pass in correct
+ 	printer to m_builder's ctor.
+ 	(diagnostic_output_format_init_sarif): Drop redundant call to
+ 	set_path_format, as this is not a text output format.  Replace
+ 	calls to pp_show_color and set_token_printer with call to
+ 	update_printer.  Drop redundant call to set_show_highlight_colors,
+ 	as this printer does not show colors.
+ 	(diagnostic_output_format_init_sarif_file): Split out file opening
+ 	into...
+ 	(diagnostic_output_format_open_sarif_file): ...this new function.
+ 	(make_sarif_sink): New.
+ 	(selftest::test_make_location_object): Provide a pp for the
+ 	builder.
+ 	* diagnostic-format-sarif.h
+ 	(diagnostic_output_format_open_sarif_file): New decl.
+ 	(make_sarif_sink): New decl.
+ 	* diagnostic-format-text.cc (diagnostic_text_output_format::dump):
+ 	Dump sm_follows_reference_printer.
+ 	(diagnostic_text_output_format::on_report_verbatim): New.
+ 	(diagnostic_text_output_format::follows_reference_printer_p): New.
+ 	(diagnostic_text_output_format::update_printer): New.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_text_output_format):
+ 	Add optional "follows_reference_printer" param.
+ 	(diagnostic_text_output_format::on_report_verbatim): New decl.
+ 	(diagnostic_text_output_format::after_diagnostic): Drop "final".
+ 	(diagnostic_text_output_format::follows_reference_printer_p): New
+ 	decl.
+ 	(class diagnostic_text_output_format): Convert private members to
+ 	protected.
+ 	(diagnostic_text_output_format::m_follows_reference_printer): New
+ 	field.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format::on_report_verbatim): New vfunc.
+ 	(diagnostic_output_format::follows_reference_printer_p): New vfunc.
+ 	(diagnostic_output_format::update_printer): New vfunc.
+ 	(diagnostic_output_format::get_printer): Use m_printer rather than
+ 	a printer from m_context.
+ 	(diagnostic_output_format::diagnostic_output_format): Initialize
+ 	m_printer by cloning the context's printer.
+ 	(diagnostic_output_format::m_printer): New field.
+ 	* diagnostic-global-context.cc (verbatim): Reimplement in terms of
+ 	global_dc->report_verbatim, moving existing implementation to
+ 	diagnostic_text_output_format::on_report_verbatim.
+ 	(fnotice): Support multiple output sinks by using a new
+ 	global_dc->supports_fnotice_on_stderr_p.
+ 	* diagnostic-output-file.h
+ 	(diagnostic_output_file::diagnostic_output_file): New default ctor.
+ 	(diagnostic_output_file::operator=): Implement move assignment.
+ 	* diagnostic-path.cc (selftest::test_interprocedural_path_1): Pass
+ 	false for new param of text_output's ctor.
+ 	* diagnostic-show-locus.cc
+ 	(selftest::test_layout_x_offset_display_utf8): Use reference
+ 	printer.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_one_liner_fixit_remove): Likewise.
+ 	* diagnostic.cc: Include "pretty-print-urlifier.h".
+ 	(diagnostic_set_caret_max_width): Update for global_dc's m_printer
+ 	becoming reference printer.
+ 	(diagnostic_context::initialize): Update for m_printer becoming
+ 	m_reference_printer.  Use ::make_unique to create it.  Update for
+ 	m_output_format becoming m_output_sinks.
+ 	(diagnostic_context::color_init): Update the reference printer,
+ 	then update the printers for any output sinks that follow it.
+ 	(diagnostic_context::urls_init): Likewise.
+ 	(diagnostic_context::finish): Update comment.  Update for
+ 	m_output_format becoming m_output_sinks.  Update for m_printer
+ 	becoming m_reference_printer and use "delete" on it rather than
+ 	XDELETE.
+ 	(diagnostic_context::dump): Update for m_printer becoming
+ 	reference printer, and for multiple output sinks.
+ 	(diagnostic_context::set_output_format): Reimplement for
+ 	supporting multiple output sinks.
+ 	(diagnostic_context::get_output_format): Likewise.
+ 	(diagnostic_context::add_sink): New.
+ 	(diagnostic_context::supports_fnotice_on_stderr_p): New.
+ 	(diagnostic_context::set_pretty_printer): New.
+ 	(diagnostic_context::refresh_output_sinks): New.
+ 	(diagnostic_context::set_format_decoder): New.
+ 	(diagnostic_context::set_show_highlight_colors): New.
+ 	(diagnostic_context::set_prefixing_rule): New.
+ 	(diagnostic_context::report_diagnostic): Update to support
+ 	multiple output sinks.
+ 	(diagnostic_context::report_verbatim): New.
+ 	(diagnostic_context::emit_diagram): Update to support multiple
+ 	output sinks.
+ 	(diagnostic_context::error_recursion): Update to use
+ 	m_reference_printer.
+ 	(fancy_abort): Likewise.
+ 	(diagnostic_context::end_group): Update to support multiple
+ 	output sinks.
+ 	(diagnostic_output_format::dump): Implement.
+ 	(diagnostic_output_format::on_report_verbatim): Likewise.
+ 	(diagnostic_output_format_init): Drop
+ 	DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
+ 	(diagnostic_context::set_diagnostic_buffer): Reimplement to
+ 	support multiple output sinks.
+ 	(diagnostic_context::clear_diagnostic_buffer): Likewise.
+ 	(diagnostic_context::flush_diagnostic_buffer): Likewise.
+ 	(diagnostic_buffer::diagnostic_buffer): Initialize
+ 	m_per_format_buffers.
+ 	(diagnostic_buffer::~diagnostic_buffer): New dtor.
+ 	(diagnostic_buffer::dump): Reimplement to support multiple output
+ 	sinks.
+ 	(diagnostic_buffer::empty_p): Likewise.
+ 	(diagnostic_buffer::move_to): Likewise.
+ 	(diagnostic_buffer::ensure_per_format_buffer): Likewise, renaming
+ 	to...
+ 	(diagnostic_buffer::ensure_per_format_buffers): ...this.
+ 	* diagnostic.h
+ 	(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE): Delete.
+ 	(class diagnostic_context): Add friend class diagnostic_buffer.
+ 	(diagnostic_context::set_pretty_printer): New decl.
+ 	(diagnostic_context::refresh_output_sinks): New decl.
+ 	(diagnostic_context::report_verbatim): New decl.
+ 	(diagnostic_context::get_output_format): Drop.
+ 	(diagnostic_context::set_show_highlight_colors): Drop body.
+ 	(diagnostic_context::set_format_decoder): New decl.
+ 	(diagnostic_context::set_prefixing_rule): New decl.
+ 	(diagnostic_context::clone_printer): Reimplement.
+ 	(diagnostic_context::get_reference_printer): New accessor.
+ 	(diagnostic_context::add_sink): New decl.
+ 	(diagnostic_context::supports_fnotice_on_stderr_p): New decl.
+ 	(diagnostic_context::m_printer): Replace with...
+ 	(diagnostic_context::m_reference_printer): ...this, and make
+ 	private.
+ 	(diagnostic_context::m_output_format): Replace with...
+ 	(diagnostic_context::m_output_sinks): ...this.
+ 	(diagnostic_format_decoder): Delete.
+ 	(diagnostic_prefixing_rule): Delete.
+ 	(diagnostic_ready_p): Delete.
+ 	* doc/invoke.texi: Document -fdiagnostics-add-output= and
+ 	-fdiagnostics-set-output=.
+ 	* gcc.cc: Include "opts-diagnostic.h".
+ 	(driver_handle_option): Handle cases OPT_fdiagnostics_add_output_
+ 	and OPT_fdiagnostics_set_output_.
+ 	* opts-diagnostic.cc: New file.
+ 	* opts-diagnostic.h (handle_OPT_fdiagnostics_add_output_): New decl.
+ 	(handle_OPT_fdiagnostics_set_output_): New decl.
+ 	* opts-global.cc (init_options_once): Update for global_dc's
+ 	m_printer becoming reference printer.  Call
+ 	global_dc->refresh_output_sinks.
+ 	* opts.cc (common_handle_option): Replace use of
+ 	diagnostic_prefixing_rule with dc->set_prefixing_rule.  Handle
+ 	cases OPT_fdiagnostics_add_output_ and
+ 	OPT_fdiagnostics_set_output_.  Update for m_printer becoming
+ 	reference printer.
+ 	* selftest-diagnostic.cc
+ 	(selftest::test_diagnostic_context::test_diagnostic_context):
+ 	Update for m_printer becoming reference printer.
+ 	(test_diagnostic_context::test_show_locus): Likewise.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::opts_diagnostic_cc_tests.
+ 	* selftest.h (selftest::opts_diagnostic_cc_tests): New decl.
+ 	* simple-diagnostic-path.cc
+ 	(selftest::simple_diagnostic_path_cc_tests): Use reference
+ 	printer.
+ 	* toplev.cc (announce_function): Update for global_dc's m_printer
+ 	becoming reference printer.
+ 	(toplev::main): Likewise.
+ 	* tree-diagnostic.cc (tree_diagnostics_defaults): Replace use of
+ 	diagnostic_format_decoder with context->set_format_decoder.
+ 	* tree-diagnostic.h
+ 	(tree_dump_pretty_printer::tree_dump_pretty_printer): Update for
+ 	global_dc's m_printer becoming reference printer.
+ 	* tree.cc (escaped_string::escape): Likewise.
+ 	(selftest::test_escaped_strings): Likewise.
+ 
+ 2024-10-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/117346
+ 	* config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Call
+ 	canonicalize_comparison before figuring out the cmp_mode/cc_mode.
+ 	(aarch64_gen_ccmp_next): Likewise.
+ 
+ 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/117091
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
+ 	Change clustering algorithm to simple greedy.
+ 
+ 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/117091
+ 	* gimple-if-to-switch.cc (if_chain::is_beneficial): Update
+ 	find_bit_test call.
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
+ 	Get max_c argument and bail out early if all case labels are
+ 	unique.
+ 	(switch_decision_tree::compute_cases_per_edge): Record number of
+ 	targets per label and return.
+ 	(switch_decision_tree::analyze_switch_statement): ... pass to
+ 	find_bit_tests.
+ 	* tree-switch-conversion.h: Update prototypes.
+ 
+ 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* common.opt: Enable -fbit-tests and -fjump-tables only at -O1.
+ 	* opts.cc (default_options_table): Dito.
+ 
+ 2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/117327
+ 	* reorg.cc (find_end_label): Do not return a dangling label at the
+ 	end of the function and adjust commentary.
+ 
+ 2024-10-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/117349
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Remove
+ 	unnecessary casts to rtx_code.
+ 	(aarch64_gen_ccmp_first): Likewise.
+ 	(aarch64_gen_ccmp_next): Likewise.
+ 
+ 2024-10-29  Tsung Chun Lin  <tclin914@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: M implies Zmmul.
+ 
+ 2024-10-29  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config.gcc: Add riscv_cmo.h.
+ 	* config/riscv/riscv_cmo.h: New file.
+ 
+ 2024-10-29  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (mask_len_strided_load_<mode>): Add
+ 	new pattern for MASK_LEN_STRIDED_LOAD.
+ 	(mask_len_strided_store_<mode>): Ditto but for store.
+ 	* config/riscv/riscv-protos.h (expand_strided_load): Add new
+ 	func decl to expand strided load.
+ 	(expand_strided_store): Ditto but for store.
+ 	* config/riscv/riscv-v.cc (expand_strided_load): Add new
+ 	func impl to expand strided load.
+ 	(expand_strided_store): Ditto but for store.
+ 
+ 2024-10-29  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-stmts.cc (vect_get_strided_load_store_ops): Handle
+ 	MASK_LEN_STRIDED_LOAD{STORE} after supported check.
+ 	(vectorizable_store): Generate MASK_LEN_STRIDED_LOAD when the offset
+ 	of gater is not vector type.
+ 	(vectorizable_load): Ditto but for store.
+ 
+ 2024-10-29  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (strided_load_direct): Add new define direct
+ 	for strided load.
+ 	(strided_store_direct): Ditto but for store.
+ 	(expand_strided_load_optab_fn): Add new func to expand the IFN
+ 	MASK_LEN_STRIDED_LOAD in middle-end.
+ 	(expand_strided_store_optab_fn): Ditto but for store.
+ 	(direct_strided_load_optab_supported_p): Add define for stride
+ 	load optab supported.
+ 	(direct_strided_store_optab_supported_p): Ditto but for store.
+ 	(internal_fn_len_index): Add strided load/store len index.
+ 	(internal_fn_mask_index): Ditto but for mask.
+ 	(internal_fn_stored_value_index): Add strided store value index.
+ 	* internal-fn.def (MASK_LEN_STRIDED_LOAD): Add new IFN for
+ 	strided load.
+ 	(MASK_LEN_STRIDED_STORE): Ditto but for store.
+ 	* optabs.def (mask_len_strided_load_optab): Add strided load optab.
+ 	(mask_len_strided_store_optab): Add strided store optab.
+ 
+ 2024-10-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (type_conversion_p): Remove.
+ 	(vect_recog_mixed_size_cond_pattern): Likewise.
+ 	(vect_vect_recog_func_ptrs): Remove vect_recog_mixed_size_cond_pattern
+ 	entry.
+ 
+ 2024-10-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_mask_conversion_pattern):
+ 	Remove COMPARISON_CLASS_P rhs1 of COND_EXPR case and assert
+ 	it doesn't happen.
+ 
+ 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR jit/117275
+ 	* varasm.cc (process_pending_assemble_externals): Reset
+ 	pending_assemble_externals_set to nullptr after deleting it.
+ 	(varasm_cc_finalize): Delete pending_assemble_externals_set.
+ 
+ 2024-10-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117343
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::build_vertices):
+ 	Support re-building the SLP graph.
+ 	(vect_optimize_slp_pass::run): Re-build the SLP graph before
+ 	decide_masked_load_lanes.
+ 
+ 2024-10-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117333
+ 	* tree-data-ref.cc (dr_may_alias_p): Guard against NULL
+ 	access size.
+ 
+ 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vld1q_impl): Add support
+ 	for predicated version.
+ 	(vst1q_impl): Likewise.
+ 	(vstrq_impl): New class.
+ 	(vldrq_impl): New class.
+ 	(vldrbq): New.
+ 	(vldrhq): New.
+ 	(vldrwq): New.
+ 	(vstrbq): New.
+ 	(vstrhq): New.
+ 	(vstrwq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vld1q): Add predicated
+ 	version.
+ 	(vldrbq): New.
+ 	(vldrhq): New.
+ 	(vldrwq): New.
+ 	(vst1q): Add predicated version.
+ 	(vstrbq): New.
+ 	(vstrhq): New.
+ 	(vstrwq): New.
+ 	(vrev32q): Update types to float_16.
+ 	* config/arm/arm-mve-builtins-base.h (vldrbq): New.
+ 	(vldrhq): New.
+ 	(vldrwq): New.
+ 	(vstrbq): New.
+ 	(vstrhq): New.
+ 	(vstrwq): New.
+ 	* config/arm/arm-mve-builtins-functions.h (memory_vector_mode):
+ 	Remove conversion of floating point vectors to integer.
+ 	* config/arm/arm-mve-builtins.cc (TYPES_float16): Change to...
+ 	(TYPES_float_16): ...this.
+ 	(TYPES_float_32): New.
+ 	(float16): Change to...
+ 	(float_16): ...this.
+ 	(float_32): New.
+ 	(preds_z_or_none): New.
+ 	(function_resolver::check_gp_argument): Add support for _z
+ 	predicate.
+ 	* config/arm/arm_mve.h (vstrbq): Remove.
+ 	(vstrbq_p): Likewise.
+ 	(vstrhq): Likewise.
+ 	(vstrhq_p): Likewise.
+ 	(vstrwq): Likewise.
+ 	(vstrwq_p): Likewise.
+ 	(vst1q_p): Likewise.
+ 	(vld1q_z): Likewise.
+ 	(vldrbq_s8): Likewise.
+ 	(vldrbq_u8): Likewise.
+ 	(vldrbq_s16): Likewise.
+ 	(vldrbq_u16): Likewise.
+ 	(vldrbq_s32): Likewise.
+ 	(vldrbq_u32): Likewise.
+ 	(vstrbq_s8): Likewise.
+ 	(vstrbq_s32): Likewise.
+ 	(vstrbq_s16): Likewise.
+ 	(vstrbq_u8): Likewise.
+ 	(vstrbq_u32): Likewise.
+ 	(vstrbq_u16): Likewise.
+ 	(vstrbq_p_s8): Likewise.
+ 	(vstrbq_p_s32): Likewise.
+ 	(vstrbq_p_s16): Likewise.
+ 	(vstrbq_p_u8): Likewise.
+ 	(vstrbq_p_u32): Likewise.
+ 	(vstrbq_p_u16): Likewise.
+ 	(vldrbq_z_s16): Likewise.
+ 	(vldrbq_z_u8): Likewise.
+ 	(vldrbq_z_s8): Likewise.
+ 	(vldrbq_z_s32): Likewise.
+ 	(vldrbq_z_u16): Likewise.
+ 	(vldrbq_z_u32): Likewise.
+ 	(vldrhq_s32): Likewise.
+ 	(vldrhq_s16): Likewise.
+ 	(vldrhq_u32): Likewise.
+ 	(vldrhq_u16): Likewise.
+ 	(vldrhq_z_s32): Likewise.
+ 	(vldrhq_z_s16): Likewise.
+ 	(vldrhq_z_u32): Likewise.
+ 	(vldrhq_z_u16): Likewise.
+ 	(vldrwq_s32): Likewise.
+ 	(vldrwq_u32): Likewise.
+ 	(vldrwq_z_s32): Likewise.
+ 	(vldrwq_z_u32): Likewise.
+ 	(vldrhq_f16): Likewise.
+ 	(vldrhq_z_f16): Likewise.
+ 	(vldrwq_f32): Likewise.
+ 	(vldrwq_z_f32): Likewise.
+ 	(vstrhq_f16): Likewise.
+ 	(vstrhq_s32): Likewise.
+ 	(vstrhq_s16): Likewise.
+ 	(vstrhq_u32): Likewise.
+ 	(vstrhq_u16): Likewise.
+ 	(vstrhq_p_f16): Likewise.
+ 	(vstrhq_p_s32): Likewise.
+ 	(vstrhq_p_s16): Likewise.
+ 	(vstrhq_p_u32): Likewise.
+ 	(vstrhq_p_u16): Likewise.
+ 	(vstrwq_f32): Likewise.
+ 	(vstrwq_s32): Likewise.
+ 	(vstrwq_u32): Likewise.
+ 	(vstrwq_p_f32): Likewise.
+ 	(vstrwq_p_s32): Likewise.
+ 	(vstrwq_p_u32): Likewise.
+ 	(vst1q_p_u8): Likewise.
+ 	(vst1q_p_s8): Likewise.
+ 	(vld1q_z_u8): Likewise.
+ 	(vld1q_z_s8): Likewise.
+ 	(vst1q_p_u16): Likewise.
+ 	(vst1q_p_s16): Likewise.
+ 	(vld1q_z_u16): Likewise.
+ 	(vld1q_z_s16): Likewise.
+ 	(vst1q_p_u32): Likewise.
+ 	(vst1q_p_s32): Likewise.
+ 	(vld1q_z_u32): Likewise.
+ 	(vld1q_z_s32): Likewise.
+ 	(vld1q_z_f16): Likewise.
+ 	(vst1q_p_f16): Likewise.
+ 	(vld1q_z_f32): Likewise.
+ 	(vst1q_p_f32): Likewise.
+ 	(__arm_vstrbq_s8): Likewise.
+ 	(__arm_vstrbq_s32): Likewise.
+ 	(__arm_vstrbq_s16): Likewise.
+ 	(__arm_vstrbq_u8): Likewise.
+ 	(__arm_vstrbq_u32): Likewise.
+ 	(__arm_vstrbq_u16): Likewise.
+ 	(__arm_vldrbq_s8): Likewise.
+ 	(__arm_vldrbq_u8): Likewise.
+ 	(__arm_vldrbq_s16): Likewise.
+ 	(__arm_vldrbq_u16): Likewise.
+ 	(__arm_vldrbq_s32): Likewise.
+ 	(__arm_vldrbq_u32): Likewise.
+ 	(__arm_vstrbq_p_s8): Likewise.
+ 	(__arm_vstrbq_p_s32): Likewise.
+ 	(__arm_vstrbq_p_s16): Likewise.
+ 	(__arm_vstrbq_p_u8): Likewise.
+ 	(__arm_vstrbq_p_u32): Likewise.
+ 	(__arm_vstrbq_p_u16): Likewise.
+ 	(__arm_vldrbq_z_s8): Likewise.
+ 	(__arm_vldrbq_z_s32): Likewise.
+ 	(__arm_vldrbq_z_s16): Likewise.
+ 	(__arm_vldrbq_z_u8): Likewise.
+ 	(__arm_vldrbq_z_u32): Likewise.
+ 	(__arm_vldrbq_z_u16): Likewise.
+ 	(__arm_vldrhq_s32): Likewise.
+ 	(__arm_vldrhq_s16): Likewise.
+ 	(__arm_vldrhq_u32): Likewise.
+ 	(__arm_vldrhq_u16): Likewise.
+ 	(__arm_vldrhq_z_s32): Likewise.
+ 	(__arm_vldrhq_z_s16): Likewise.
+ 	(__arm_vldrhq_z_u32): Likewise.
+ 	(__arm_vldrhq_z_u16): Likewise.
+ 	(__arm_vldrwq_s32): Likewise.
+ 	(__arm_vldrwq_u32): Likewise.
+ 	(__arm_vldrwq_z_s32): Likewise.
+ 	(__arm_vldrwq_z_u32): Likewise.
+ 	(__arm_vstrhq_s32): Likewise.
+ 	(__arm_vstrhq_s16): Likewise.
+ 	(__arm_vstrhq_u32): Likewise.
+ 	(__arm_vstrhq_u16): Likewise.
+ 	(__arm_vstrhq_p_s32): Likewise.
+ 	(__arm_vstrhq_p_s16): Likewise.
+ 	(__arm_vstrhq_p_u32): Likewise.
+ 	(__arm_vstrhq_p_u16): Likewise.
+ 	(__arm_vstrwq_s32): Likewise.
+ 	(__arm_vstrwq_u32): Likewise.
+ 	(__arm_vstrwq_p_s32): Likewise.
+ 	(__arm_vstrwq_p_u32): Likewise.
+ 	(__arm_vst1q_p_u8): Likewise.
+ 	(__arm_vst1q_p_s8): Likewise.
+ 	(__arm_vld1q_z_u8): Likewise.
+ 	(__arm_vld1q_z_s8): Likewise.
+ 	(__arm_vst1q_p_u16): Likewise.
+ 	(__arm_vst1q_p_s16): Likewise.
+ 	(__arm_vld1q_z_u16): Likewise.
+ 	(__arm_vld1q_z_s16): Likewise.
+ 	(__arm_vst1q_p_u32): Likewise.
+ 	(__arm_vst1q_p_s32): Likewise.
+ 	(__arm_vld1q_z_u32): Likewise.
+ 	(__arm_vld1q_z_s32): Likewise.
+ 	(__arm_vldrwq_f32): Likewise.
+ 	(__arm_vldrwq_z_f32): Likewise.
+ 	(__arm_vldrhq_z_f16): Likewise.
+ 	(__arm_vldrhq_f16): Likewise.
+ 	(__arm_vstrwq_p_f32): Likewise.
+ 	(__arm_vstrwq_f32): Likewise.
+ 	(__arm_vstrhq_f16): Likewise.
+ 	(__arm_vstrhq_p_f16): Likewise.
+ 	(__arm_vld1q_z_f16): Likewise.
+ 	(__arm_vst1q_p_f16): Likewise.
+ 	(__arm_vld1q_z_f32): Likewise.
+ 	(__arm_vst2q_f32): Likewise.
+ 	(__arm_vst1q_p_f32): Likewise.
+ 	(__arm_vstrbq): Likewise.
+ 	(__arm_vstrbq_p): Likewise.
+ 	(__arm_vstrhq): Likewise.
+ 	(__arm_vstrhq_p): Likewise.
+ 	(__arm_vstrwq): Likewise.
+ 	(__arm_vstrwq_p): Likewise.
+ 	(__arm_vst1q_p): Likewise.
+ 	(__arm_vld1q_z): Likewise.
+ 	* config/arm/arm_mve_builtins.def:
+ 	(vstrbq_s): Delete.
+ 	(vstrbq_u): Likewise.
+ 	(vldrbq_s): Likewise.
+ 	(vldrbq_u): Likewise.
+ 	(vstrbq_p_s): Likewise.
+ 	(vstrbq_p_u): Likewise.
+ 	(vldrbq_z_s): Likewise.
+ 	(vldrbq_z_u): Likewise.
+ 	(vld1q_u): Likewise.
+ 	(vld1q_s): Likewise.
+ 	(vldrhq_z_u): Likewise.
+ 	(vldrhq_u): Likewise.
+ 	(vldrhq_z_s): Likewise.
+ 	(vldrhq_s): Likewise.
+ 	(vld1q_f): Likewise.
+ 	(vldrhq_f): Likewise.
+ 	(vldrhq_z_f): Likewise.
+ 	(vldrwq_f): Likewise.
+ 	(vldrwq_s): Likewise.
+ 	(vldrwq_u): Likewise.
+ 	(vldrwq_z_f): Likewise.
+ 	(vldrwq_z_s): Likewise.
+ 	(vldrwq_z_u): Likewise.
+ 	(vst1q_u): Likewise.
+ 	(vst1q_s): Likewise.
+ 	(vstrhq_p_u): Likewise.
+ 	(vstrhq_u): Likewise.
+ 	(vstrhq_p_s): Likewise.
+ 	(vstrhq_s): Likewise.
+ 	(vst1q_f): Likewise.
+ 	(vstrhq_f): Likewise.
+ 	(vstrhq_p_f): Likewise.
+ 	(vstrwq_f): Likewise.
+ 	(vstrwq_s): Likewise.
+ 	(vstrwq_u): Likewise.
+ 	(vstrwq_p_f): Likewise.
+ 	(vstrwq_p_s): Likewise.
+ 	(vstrwq_p_u): Likewise.
+ 	* config/arm/iterators.md (MVE_w_narrow_TYPE): New iterator.
+ 	(MVE_w_narrow_type): New iterator.
+ 	(MVE_wide_n_TYPE): New attribute.
+ 	(MVE_wide_n_type): New attribute.
+ 	(MVE_wide_n_sz_elem): New attribute.
+ 	(MVE_wide_n_VPRED): New attribute.
+ 	(MVE_elem_ch): New attribute.
+ 	(supf): Remove VSTRBQ_S, VSTRBQ_U, VLDRBQ_S, VLDRBQ_U, VLD1Q_S,
+ 	VLD1Q_U, VLDRHQ_S, VLDRHQ_U, VLDRWQ_S, VLDRWQ_U, VST1Q_S, VST1Q_U,
+ 	VSTRHQ_S, VSTRHQ_U, VSTRWQ_S, VSTRWQ_U.
+ 	(VSTRBQ, VLDRBQ, VLD1Q, VLDRHQ, VLDRWQ, VST1Q, VSTRHQ, VSTRWQ):
+ 	Delete.
+ 	* config/arm/mve.md (mve_vstrbq_<supf><mode>): Remove.
+ 	(mve_vldrbq_<supf><mode>): Likewise.
+ 	(mve_vstrbq_p_<supf><mode>): Likewise.
+ 	(mve_vldrbq_z_<supf><mode>): Likewise.
+ 	(mve_vldrhq_fv8hf): Likewise.
+ 	(mve_vldrhq_<supf><mode>): Likewise.
+ 	(mve_vldrhq_z_fv8hf): Likewise.
+ 	(mve_vldrhq_z_<supf><mode>): Likewise.
+ 	(mve_vldrwq_fv4sf): Likewise.
+ 	(mve_vldrwq_<supf>v4si): Likewise.
+ 	(mve_vldrwq_z_fv4sf): Likewise.
+ 	(mve_vldrwq_z_<supf>v4si): Likewise.
+ 	(@mve_vld1q_f<mode>): Likewise.
+ 	(@mve_vld1q_<supf><mode>): Likewise.
+ 	(mve_vstrhq_fv8hf): Likewise.
+ 	(mve_vstrhq_p_fv8hf): Likewise.
+ 	(mve_vstrhq_p_<supf><mode>): Likewise.
+ 	(mve_vstrhq_<supf><mode>): Likewise.
+ 	(mve_vstrwq_fv4sf): Likewise.
+ 	(mve_vstrwq_p_fv4sf): Likewise.
+ 	(mve_vstrwq_p_<supf>v4si): Likewise.
+ 	(mve_vstrwq_<supf>v4si): Likewise.
+ 	(@mve_vst1q_f<mode>): Likewise.
+ 	(@mve_vst1q_<supf><mode>): Likewise.
+ 	(@mve_vstrq_<mode>): New.
+ 	(@mve_vstrq_p_<mode>): New.
+ 	(@mve_vstrq_truncate_<mode>): New.
+ 	(@mve_vstrq_p_truncate_<mode>): New.
+ 	(@mve_vldrq_<mode>): New.
+ 	(@mve_vldrq_z_<mode>): New.
+ 	(@mve_vldrq_extend_<mode><US>): New.
+ 	(@mve_vldrq_z_extend_<mode><US>): New.
+ 	* config/arm/unspecs.md:
+ 	(VSTRBQ_S): Remove.
+ 	(VSTRBQ_U): Likewise.
+ 	(VLDRBQ_S): Likewise.
+ 	(VLDRBQ_U): Likewise.
+ 	(VLD1Q_F): Likewise.
+ 	(VLD1Q_S): Likewise.
+ 	(VLD1Q_U): Likewise.
+ 	(VLDRHQ_F): Likewise.
+ 	(VLDRHQ_U): Likewise.
+ 	(VLDRHQ_S): Likewise.
+ 	(VLDRWQ_F): Likewise.
+ 	(VLDRWQ_S): Likewise.
+ 	(VLDRWQ_U): Likewise.
+ 	(VSTRHQ_F): Likewise.
+ 	(VST1Q_S): Likewise.
+ 	(VST1Q_U): Likewise.
+ 	(VSTRHQ_U): Likewise.
+ 	(VSTRWQ_S): Likewise.
+ 	(VSTRWQ_U): Likewise.
+ 	(VSTRWQ_F): Likewise.
+ 	(VST1Q_F): Likewise.
+ 	(VLDRQ): New.
+ 	(VLDRQ_Z): Likewise.
+ 	(VLDRQ_EXT): Likewise.
+ 	(VLDRQ_EXT_Z): Likewise.
+ 	(VSTRQ): Likewise.
+ 	(VSTRQ_P): Likewise.
+ 	(VSTRQ_TRUNC): Likewise.
+ 	(VSTRQ_TRUNC_P): Likewise.
+ 
+ 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_expander::use_contiguous_load_insn): Add support for
+ 	PRED_z.
+ 	(function_expander::use_contiguous_store_insn): Add support for
+ 	PRED_p.
+ 
+ 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h
+ 	(load_extending): New class.
+ 	(store_truncating): New class.
+ 	* config/arm/arm-protos.h (arm_mve_data_mode): New helper function.
+ 	* config/arm/arm.cc (arm_mve_data_mode): New helper function.
+ 
+ 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc:
+ 	(load_ext): New.
+ 	* config/arm/arm-mve-builtins-shapes.h:
+ 	(load_ext): New.
+ 
+ 2024-10-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117030
+ 	* doc/extend.texi (__builtin_stdc_rotate_left,
+ 	__builtin_stdc_rotate_right): Document.
+ 
+ 2024-10-28  Sam James  <sam@gentoo.org>
+ 
+ 	* opts-common.cc (prune_options): Fix typo.
+ 
+ 2024-10-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-ptr.cc (operator_bitwise_or::fold_range): Fix logic
+ 	for setting nonzero.
+ 
+ 2024-10-28  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/arm_neon.h (vxarq_u64): Rename imm6 to __imm6.
+ 
+ 2024-10-28  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/install.texi (Prerequisites): Update to C++14.
+ 
+ 2024-10-28  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/117316
+ 	* config/riscv/riscv.cc (riscv_tune_param): Drop initializer.
+ 	(*_tune_info): Add initializers for code alignments.
+ 
+ 2024-10-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117307
+ 	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
+ 	Properly compute STMT_VINFO_SLP_VECT_ONLY.  Set it on all
+ 	parts of a split group.
+ 
+ 2024-10-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* tree-core.h (enum omp_clause_code): Add comments to cross ref to
+ 	OMP_CLAUSE_DECL etc. and mark the ranges used in the range checks.
+ 
+ 2024-10-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/111285
+ 	* tree-vect-generic.cc (do_unop): Use a signed type for the
+ 	operand if the operation was ABSU_EXPR.
+ 
+ 2024-10-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Move
+ 	check for maybe_undef_p earlier.
+ 
+ 2024-10-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (check_bool_pattern): For comparisons
+ 	we do nothing if we can expand them or we can't replace them
+ 	with a ? -1 : 0 condition - but the latter would require
+ 	expanding the comparison which we proved we can't.  So do
+ 	nothing, aka not think vec_cond{u,eq,} will save us.
+ 
+ 2024-10-28  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/117286
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Do not expand NULL return.
+ 
+ 2024-10-27  Fangrui Song  <maskray@gcc.gnu.org>
+ 
+ 	* config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): Transform -mfdpic.
+ 	* config/arm/linux-eabi.h (TARGET_FDPIC_LINKER_EMULATION): Define.
+ 	(SUBTARGET_EXTRA_LINK_SPEC): Use TARGET_FDPIC_LINKER_EMULATION
+ 	if -mfdpic.
+ 
+ 2024-10-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P):
+ 	Add new target hook to always return true.
+ 	* config/xtensa/xtensa.md (movsi_internal):
+ 	Revert the previous changes.
+ 
+ 2024-10-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* configure.ac (gcc_AC_CHECK_DECLS): Add fmemopen.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* Makefile.in (build/genmatch.o): Add -DGENMATCH_SELFTESTS to
+ 	BUILD_CPPFLAGS for stage2+ genmatch.
+ 	* genmatch.cc (test_diag_vfprintf, genmatch_diag_selftests): New
+ 	functions.
+ 	(main): Call genmatch_diag_selftests.
+ 	* pretty-print.cc (test_pp_format): Add two tests, one for %M$.*N$s
+ 	and one for %M$.Ns.
+ 
+ 2024-10-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (Wtrailing-whitespace=): Change
+ 	blank argument to blanks and space argument to any.
+ 
+ 2024-10-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117234
+ 	* tree-eh.cc (operation_could_trap_helper_p): Treat
+ 	PAREN_EXPR and VEC_DUPLICATE_EXPR like constructing
+ 	expressions.
+ 
+ 2024-10-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_get_operand_map): Mark
+ 	COMPARISON_CLASS_P COND_EXPR condition path unreachable.
+ 	* tree-vect-stmts.cc (vect_is_simple_use): Likewise.
+ 	(vectorizable_condition): Assert the COND_EXPR condition isn't
+ 	COMPARISON_CLASS_P.
+ 
+ 2024-10-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Create
+ 	a separate pattern stmt for the comparison in the generated
+ 	COND_EXPR.
+ 
+ 2024-10-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Build
+ 	separate comparion pattern for the condition of a COND_EXPR
+ 	pattern.
+ 
+ 2024-10-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/58195
+ 	* simplify-rtx.cc (simplify_context::simplify_ternary_operation): Handle
+ 	`a != 0 ? -a : 0` and `a == 0 ? 0 : -a`.
+ 
+ 2024-10-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Support
+ 	3 cores and 3 variants. If there is one core but multiple variant,
+ 	then treat the variant as being all.
+ 
+ 2024-10-25  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/117292
+ 	* config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>): Use
+ 	'De' constraint.
+ 	* config/aarch64/constraints.md (De): Add new constraint.
+ 
+ 2024-10-25  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (MODE_d_mf8): New.
+ 	(MODE_q_mf8): New.
+ 	(QUAL_mf8): New.
+ 	(VREINTERPRET_BUILTINS1): Add mf8 entry.
+ 	(VREINTERPRET_BUILTINS): Ditto.
+ 	(VREINTERPRETQ_BUILTINS1): Ditto.
+ 	(VREINTERPRETQ_BUILTINS): Ditto.
+ 	(aarch64_lookup_simd_type_in_table): Match modal_float bit
+ 
+ 2024-10-25  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_init_simd_builtin_types): Initialise FP8 simd types.
+ 	* config/aarch64/aarch64-builtins.h
+ 	(enum aarch64_type_qualifiers): Add qualifier_modal_float bit.
+ 	* config/aarch64/aarch64-simd-builtin-types.def:
+ 	Add Mfloat8x{8|16}_t types.
+ 	* config/aarch64/arm_neon.h: Add mfloat8x{8|16}_t typedefs.
+ 
+ 2024-10-25  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* match.pd: Fold pow (1.0/x, y) -> pow (x, -y) and
+ 	pow (0.0, x) -> 0.0.
+ 
+ 2024-10-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Remove unsigned branch form 3 for SAT_ADD, and
+ 	add simplify to branchless instead.
+ 
+ 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117249
+ 	* tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of
+ 	gcc_assert.
+ 	* lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise.
+ 	* gimple-ssa-strength-reduction.cc (get_alternative_base,
+ 	add_cand_for_stmt): Likewise.
+ 	* tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise.
+ 	* except.cc (duplicate_eh_regions_1): Likewise.
+ 	* tree-ssa-reassoc.cc (insert_operand_rank): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in
+ 	gcc_assert.
+ 	* opts-common.cc (jobserver_info::disconnect): Call close outside of
+ 	gcc_assert and only check result in it.
+ 	(jobserver_info::return_token): Call write outside of gcc_assert and
+ 	only check result in it.
+ 	* genautomata.cc (output_default_latencies): Move j++ side-effect
+ 	outside of gcc_assert.
+ 	* tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use
+ 	== rather than = in gcc_assert.
+ 	* cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid
+ 	side-effect outside of gcc_assert.
+ 
+ 2024-10-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* optabs-tree.h (expand_vec_cond_expr_p): Default the
+ 	comparison code to ERROR_MARK.
+ 	* match.pd: Remove unneded expand_vec_cond_expr_p args.
+ 	* tree-vect-generic.cc (expand_vector_condition): Likewise.
+ 	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
+ 	Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Likewise.
+ 	(scan_store_can_perm_p): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 
+ 2024-10-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* genmatch.cc (commutative_op): Add paramter to indicate whether
+ 	all compares should be considered commutative.  Handle
+ 	hypot, add_overflow and mul_overflow.
+ 	(parser::parse_expr): Simplify 'c' handling by using
+ 	commutative_op and error out when the operation is not.
+ 	* match.pd ((minmax:c @0 NaN@1) -> @0): Use :C, we know
+ 	what we are doing.
+ 
+ 2024-10-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117277
+ 	* tree-vect-loop.cc (vect_transform_loop): Remove CLOBBERs
+ 	and prefetches before doing any code generation.
+ 
+ 2024-10-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116575
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Handle
+ 	gaps, aka NULL scalar stmt.
+ 	(vect_build_slp_tree_2): Allow gaps in the middle of a
+ 	grouped mask load.  When the mask of a grouped mask load
+ 	is uniform do single-lane discovery for the mask and
+ 	insert a splat VEC_PERM_EXPR node.
+ 	(vect_optimize_slp_pass::decide_masked_load_lanes): New
+ 	function.
+ 	(vect_optimize_slp_pass::run): Call it.
+ 
+ 2024-10-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_check_scalar_mask): Only check
+ 	the scalar type for constant or extern defs.
+ 
+ 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lra-assigns.cc: Remove trailing whitespace.
+ 	* symtab.cc: Likewise.
+ 	* stmt.cc: Likewise.
+ 	* cgraphbuild.cc: Likewise.
+ 	* cfgcleanup.cc: Likewise.
+ 	* loop-init.cc: Likewise.
+ 	* df-problems.cc: Likewise.
+ 	* diagnostic-macro-unwinding.cc: Likewise.
+ 	* langhooks.h: Likewise.
+ 	* except.cc: Likewise.
+ 	* tree-vect-loop.cc: Likewise.
+ 	* coverage.cc: Likewise.
+ 	* hash-table.cc: Likewise.
+ 	* ggc-page.cc: Likewise.
+ 	* gimple-ssa-strength-reduction.cc: Likewise.
+ 	* tree-parloops.cc: Likewise.
+ 	* internal-fn.cc: Likewise.
+ 	* ipa-split.cc: Likewise.
+ 	* calls.cc: Likewise.
+ 	* reorg.cc: Likewise.
+ 	* sbitmap.h: Likewise.
+ 	* omp-offload.cc: Likewise.
+ 	* cfgrtl.cc: Likewise.
+ 	* reginfo.cc: Likewise.
+ 	* gengtype.h: Likewise.
+ 	* omp-general.h: Likewise.
+ 	* ipa-comdats.cc: Likewise.
+ 	* gimple-range-edge.h: Likewise.
+ 	* tree-ssa-structalias.cc: Likewise.
+ 	* target.def: Likewise.
+ 	* basic-block.h: Likewise.
+ 	* graphite-isl-ast-to-gimple.cc: Likewise.
+ 	* auto-profile.cc: Likewise.
+ 	* optabs.cc: Likewise.
+ 	* gengtype-lex.l: Likewise.
+ 	* optabs.def: Likewise.
+ 	* ira-build.cc: Likewise.
+ 	* ira.cc: Likewise.
+ 	* function.h: Likewise.
+ 	* tree-ssa-propagate.cc: Likewise.
+ 	* gcov-io.cc: Likewise.
+ 	* builtin-types.def: Likewise.
+ 	* ddg.cc: Likewise.
+ 	* lra-spills.cc: Likewise.
+ 	* cfg.cc: Likewise.
+ 	* bitmap.cc: Likewise.
+ 	* gimple-range-gori.h: Likewise.
+ 	* tree-ssa-loop-im.cc: Likewise.
+ 	* cfghooks.h: Likewise.
+ 	* genmatch.cc: Likewise.
+ 	* explow.cc: Likewise.
+ 	* lto-streamer-in.cc: Likewise.
+ 	* graphite-scop-detection.cc: Likewise.
+ 	* ipa-prop.cc: Likewise.
+ 	* gcc.cc: Likewise.
+ 	* vec.h: Likewise.
+ 	* cfgexpand.cc: Likewise.
+ 	* config/alpha/vms.h: Likewise.
+ 	* config/alpha/alpha.cc: Likewise.
+ 	* config/alpha/driver-alpha.cc: Likewise.
+ 	* config/alpha/elf.h: Likewise.
+ 	* config/iq2000/iq2000.h: Likewise.
+ 	* config/iq2000/iq2000.cc: Likewise.
+ 	* config/pa/pa-64.h: Likewise.
+ 	* config/pa/som.h: Likewise.
+ 	* config/pa/pa.cc: Likewise.
+ 	* config/pa/pa.h: Likewise.
+ 	* config/pa/pa32-regs.h: Likewise.
+ 	* config/c6x/c6x.cc: Likewise.
+ 	* config/openbsd-stdint.h: Likewise.
+ 	* config/elfos.h: Likewise.
+ 	* config/lm32/lm32.cc: Likewise.
+ 	* config/lm32/lm32.h: Likewise.
+ 	* config/lm32/lm32-protos.h: Likewise.
+ 	* config/darwin-c.cc: Likewise.
+ 	* config/rx/rx.cc: Likewise.
+ 	* config/host-darwin.h: Likewise.
+ 	* config/netbsd.h: Likewise.
+ 	* config/ia64/ia64.cc: Likewise.
+ 	* config/ia64/freebsd.h: Likewise.
+ 	* config/avr/avr-c.cc: Likewise.
+ 	* config/avr/avr.cc: Likewise.
+ 	* config/avr/avr-arch.h: Likewise.
+ 	* config/avr/avr.h: Likewise.
+ 	* config/avr/stdfix.h: Likewise.
+ 	* config/avr/gen-avr-mmcu-specs.cc: Likewise.
+ 	* config/avr/avr-log.cc: Likewise.
+ 	* config/avr/elf.h: Likewise.
+ 	* config/avr/gen-avr-mmcu-texi.cc: Likewise.
+ 	* config/avr/avr-devices.cc: Likewise.
+ 	* config/nvptx/nvptx.cc: Likewise.
+ 	* config/vx-common.h: Likewise.
+ 	* config/sol2.cc: Likewise.
+ 	* config/rl78/rl78.cc: Likewise.
+ 	* config/cris/cris.cc: Likewise.
+ 	* config/arm/symbian.h: Likewise.
+ 	* config/arm/unknown-elf.h: Likewise.
+ 	* config/arm/linux-eabi.h: Likewise.
+ 	* config/arm/arm.cc: Likewise.
+ 	* config/arm/arm-mve-builtins.h: Likewise.
+ 	* config/arm/bpabi.h: Likewise.
+ 	* config/arm/vxworks.h: Likewise.
+ 	* config/arm/arm.h: Likewise.
+ 	* config/arm/aout.h: Likewise.
+ 	* config/arm/elf.h: Likewise.
+ 	* config/host-linux.cc: Likewise.
+ 	* config/sh/sh_treg_combine.cc: Likewise.
+ 	* config/sh/vxworks.h: Likewise.
+ 	* config/sh/elf.h: Likewise.
+ 	* config/sh/netbsd-elf.h: Likewise.
+ 	* config/sh/sh.cc: Likewise.
+ 	* config/sh/embed-elf.h: Likewise.
+ 	* config/sh/sh.h: Likewise.
+ 	* config/darwin-driver.cc: Likewise.
+ 	* config/m32c/m32c.cc: Likewise.
+ 	* config/frv/frv.cc: Likewise.
+ 	* config/openbsd.h: Likewise.
+ 	* config/aarch64/aarch64-protos.h: Likewise.
+ 	* config/aarch64/aarch64-builtins.cc: Likewise.
+ 	* config/aarch64/aarch64-cost-tables.h: Likewise.
+ 	* config/aarch64/aarch64.cc: Likewise.
+ 	* config/bfin/bfin.cc: Likewise.
+ 	* config/bfin/bfin.h: Likewise.
+ 	* config/bfin/bfin-protos.h: Likewise.
+ 	* config/i386/gmm_malloc.h: Likewise.
+ 	* config/i386/djgpp.h: Likewise.
+ 	* config/i386/sol2.h: Likewise.
+ 	* config/i386/stringop.def: Likewise.
+ 	* config/i386/i386-features.cc: Likewise.
+ 	* config/i386/openbsdelf.h: Likewise.
+ 	* config/i386/cpuid.h: Likewise.
+ 	* config/i386/i386.h: Likewise.
+ 	* config/i386/smmintrin.h: Likewise.
+ 	* config/i386/avx10_2-512convertintrin.h: Likewise.
+ 	* config/i386/i386-options.cc: Likewise.
+ 	* config/i386/i386-opts.h: Likewise.
+ 	* config/i386/i386-expand.cc: Likewise.
+ 	* config/i386/avx512dqintrin.h: Likewise.
+ 	* config/i386/wmmintrin.h: Likewise.
+ 	* config/i386/gnu-user.h: Likewise.
+ 	* config/i386/host-mingw32.cc: Likewise.
+ 	* config/i386/avx10_2bf16intrin.h: Likewise.
+ 	* config/i386/cygwin.h: Likewise.
+ 	* config/i386/driver-i386.cc: Likewise.
+ 	* config/i386/biarch64.h: Likewise.
+ 	* config/i386/host-cygwin.cc: Likewise.
+ 	* config/i386/cygming.h: Likewise.
+ 	* config/i386/i386-builtins.cc: Likewise.
+ 	* config/i386/avx10_2convertintrin.h: Likewise.
+ 	* config/i386/i386.cc: Likewise.
+ 	* config/i386/gas.h: Likewise.
+ 	* config/i386/freebsd.h: Likewise.
+ 	* config/mingw/winnt-cxx.cc: Likewise.
+ 	* config/mingw/winnt.cc: Likewise.
+ 	* config/h8300/h8300.cc: Likewise.
+ 	* config/host-solaris.cc: Likewise.
+ 	* config/m32r/m32r.h: Likewise.
+ 	* config/m32r/m32r.cc: Likewise.
+ 	* config/darwin.h: Likewise.
+ 	* config/sparc/linux64.h: Likewise.
+ 	* config/sparc/sparc-protos.h: Likewise.
+ 	* config/sparc/sysv4.h: Likewise.
+ 	* config/sparc/sparc.h: Likewise.
+ 	* config/sparc/linux.h: Likewise.
+ 	* config/sparc/freebsd.h: Likewise.
+ 	* config/sparc/sparc.cc: Likewise.
+ 	* config/gcn/gcn-run.cc: Likewise.
+ 	* config/gcn/gcn.cc: Likewise.
+ 	* config/gcn/gcn-tree.cc: Likewise.
+ 	* config/kopensolaris-gnu.h: Likewise.
+ 	* config/nios2/nios2.h: Likewise.
+ 	* config/nios2/elf.h: Likewise.
+ 	* config/nios2/nios2.cc: Likewise.
+ 	* config/host-netbsd.cc: Likewise.
+ 	* config/rtems.h: Likewise.
+ 	* config/pdp11/pdp11.cc: Likewise.
+ 	* config/pdp11/pdp11.h: Likewise.
+ 	* config/mn10300/mn10300.cc: Likewise.
+ 	* config/mn10300/linux.h: Likewise.
+ 	* config/moxie/moxie.h: Likewise.
+ 	* config/moxie/moxie.cc: Likewise.
+ 	* config/rs6000/aix71.h: Likewise.
+ 	* config/rs6000/vec_types.h: Likewise.
+ 	* config/rs6000/xcoff.h: Likewise.
+ 	* config/rs6000/rs6000.cc: Likewise.
+ 	* config/rs6000/rs6000-internal.h: Likewise.
+ 	* config/rs6000/rs6000-p8swap.cc: Likewise.
+ 	* config/rs6000/rs6000-c.cc: Likewise.
+ 	* config/rs6000/aix.h: Likewise.
+ 	* config/rs6000/rs6000-logue.cc: Likewise.
+ 	* config/rs6000/rs6000-string.cc: Likewise.
+ 	* config/rs6000/rs6000-call.cc: Likewise.
+ 	* config/rs6000/ppu_intrinsics.h: Likewise.
+ 	* config/rs6000/altivec.h: Likewise.
+ 	* config/rs6000/darwin.h: Likewise.
+ 	* config/rs6000/host-darwin.cc: Likewise.
+ 	* config/rs6000/freebsd64.h: Likewise.
+ 	* config/rs6000/spu2vmx.h: Likewise.
+ 	* config/rs6000/linux.h: Likewise.
+ 	* config/rs6000/si2vmx.h: Likewise.
+ 	* config/rs6000/driver-rs6000.cc: Likewise.
+ 	* config/rs6000/freebsd.h: Likewise.
+ 	* config/vxworksae.h: Likewise.
+ 	* config/mips/frame-header-opt.cc: Likewise.
+ 	* config/mips/mips.h: Likewise.
+ 	* config/mips/mips.cc: Likewise.
+ 	* config/mips/sde.h: Likewise.
+ 	* config/darwin-protos.h: Likewise.
+ 	* config/mcore/mcore-elf.h: Likewise.
+ 	* config/mcore/mcore.h: Likewise.
+ 	* config/mcore/mcore.cc: Likewise.
+ 	* config/epiphany/epiphany.cc: Likewise.
+ 	* config/fr30/fr30.h: Likewise.
+ 	* config/fr30/fr30.cc: Likewise.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc: Likewise.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Likewise.
+ 	* config/visium/visium.h: Likewise.
+ 	* config/mmix/mmix.cc: Likewise.
+ 	* config/v850/v850.cc: Likewise.
+ 	* config/v850/v850-c.cc: Likewise.
+ 	* config/v850/v850.h: Likewise.
+ 	* config/stormy16/stormy16.cc: Likewise.
+ 	* config/stormy16/stormy16-protos.h: Likewise.
+ 	* config/stormy16/stormy16.h: Likewise.
+ 	* config/arc/arc.cc: Likewise.
+ 	* config/vxworks.cc: Likewise.
+ 	* config/microblaze/microblaze-c.cc: Likewise.
+ 	* config/microblaze/microblaze-protos.h: Likewise.
+ 	* config/microblaze/microblaze.h: Likewise.
+ 	* config/microblaze/microblaze.cc: Likewise.
+ 	* config/freebsd-spec.h: Likewise.
+ 	* config/m68k/m68kelf.h: Likewise.
+ 	* config/m68k/m68k.cc: Likewise.
+ 	* config/m68k/netbsd-elf.h: Likewise.
+ 	* config/m68k/linux.h: Likewise.
+ 	* config/freebsd.h: Likewise.
+ 	* config/host-openbsd.cc: Likewise.
+ 	* regcprop.cc: Likewise.
+ 	* dumpfile.cc: Likewise.
+ 	* combine.cc: Likewise.
+ 	* tree-ssa-forwprop.cc: Likewise.
+ 	* ipa-profile.cc: Likewise.
+ 	* hw-doloop.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* gcc-ar.cc: Likewise.
+ 	* tree-cfg.cc: Likewise.
+ 	* incpath.cc: Likewise.
+ 	* tree-ssa-sccvn.cc: Likewise.
+ 	* function.cc: Likewise.
+ 	* genattrtab.cc: Likewise.
+ 	* rtl.def: Likewise.
+ 	* genchecksum.cc: Likewise.
+ 	* profile.cc: Likewise.
+ 	* df-core.cc: Likewise.
+ 	* tree-pretty-print.cc: Likewise.
+ 	* tree.h: Likewise.
+ 	* plugin.cc: Likewise.
+ 	* tree-ssa-loop-ch.cc: Likewise.
+ 	* emit-rtl.cc: Likewise.
+ 	* haifa-sched.cc: Likewise.
+ 	* gimple-range-edge.cc: Likewise.
+ 	* range-op.cc: Likewise.
+ 	* tree-ssa-ccp.cc: Likewise.
+ 	* dwarf2cfi.cc: Likewise.
+ 	* recog.cc: Likewise.
+ 	* vtable-verify.cc: Likewise.
+ 	* system.h: Likewise.
+ 	* regrename.cc: Likewise.
+ 	* tree-ssa-dom.cc: Likewise.
+ 	* loop-unroll.cc: Likewise.
+ 	* lra-constraints.cc: Likewise.
+ 	* pretty-print.cc: Likewise.
+ 	* ifcvt.cc: Likewise.
+ 	* ipa.cc: Likewise.
+ 	* alloc-pool.h: Likewise.
+ 	* collect2.cc: Likewise.
+ 	* pointer-query.cc: Likewise.
+ 	* cfgloop.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* sese.cc: Likewise.
+ 	* gengtype.cc: Likewise.
+ 	* gimplify-me.cc: Likewise.
+ 	* double-int.cc: Likewise.
+ 	* bb-reorder.cc: Likewise.
+ 	* dwarf2out.cc: Likewise.
+ 	* tree-ssa-loop-ivcanon.cc: Likewise.
+ 	* tree-ssa-reassoc.cc: Likewise.
+ 	* cgraph.cc: Likewise.
+ 	* sel-sched.cc: Likewise.
+ 	* attribs.cc: Likewise.
+ 	* expr.cc: Likewise.
+ 	* tree-ssa-scopedtables.h: Likewise.
+ 	* gimple-range-cache.cc: Likewise.
+ 	* ipa-pure-const.cc: Likewise.
+ 	* tree-inline.cc: Likewise.
+ 	* genhooks.cc: Likewise.
+ 	* gimple-range-phi.h: Likewise.
+ 	* shrink-wrap.cc: Likewise.
+ 	* tree.cc: Likewise.
+ 	* gimple.cc: Likewise.
+ 	* backend.h: Likewise.
+ 	* opts-common.cc: Likewise.
+ 	* cfg-flags.def: Likewise.
+ 	* gcse-common.cc: Likewise.
+ 	* tree-ssa-scopedtables.cc: Likewise.
+ 	* ccmp.cc: Likewise.
+ 	* builtins.def: Likewise.
+ 	* builtin-attrs.def: Likewise.
+ 	* postreload.cc: Likewise.
+ 	* sched-deps.cc: Likewise.
+ 	* ipa-inline-transform.cc: Likewise.
+ 	* tree-vect-generic.cc: Likewise.
+ 	* ipa-polymorphic-call.cc: Likewise.
+ 	* builtins.cc: Likewise.
+ 	* sel-sched-ir.cc: Likewise.
+ 	* trans-mem.cc: Likewise.
+ 	* ipa-visibility.cc: Likewise.
+ 	* cgraph.h: Likewise.
+ 	* tree-ssa-phiopt.cc: Likewise.
+ 	* genopinit.cc: Likewise.
+ 	* ipa-inline.cc: Likewise.
+ 	* omp-low.cc: Likewise.
+ 	* ipa-utils.cc: Likewise.
+ 	* tree-ssa-math-opts.cc: Likewise.
+ 	* tree-ssa-ifcombine.cc: Likewise.
+ 	* gimple-range.cc: Likewise.
+ 	* ipa-fnsummary.cc: Likewise.
+ 	* ira-color.cc: Likewise.
+ 	* value-prof.cc: Likewise.
+ 	* varasm.cc: Likewise.
+ 	* ipa-icf.cc: Likewise.
+ 	* ira-emit.cc: Likewise.
+ 	* lto-streamer.h: Likewise.
+ 	* lto-wrapper.cc: Likewise.
+ 	* regs.h: Likewise.
+ 	* gengtype-parse.cc: Likewise.
+ 	* alias.cc: Likewise.
+ 	* lto-streamer.cc: Likewise.
+ 	* real.h: Likewise.
+ 	* wide-int.h: Likewise.
+ 	* targhooks.cc: Likewise.
+ 	* gimple-ssa-warn-access.cc: Likewise.
+ 	* real.cc: Likewise.
+ 	* ipa-reference.cc: Likewise.
+ 	* bitmap.h: Likewise.
+ 	* ginclude/float.h: Likewise.
+ 	* ginclude/stddef.h: Likewise.
+ 	* ginclude/stdarg.h: Likewise.
+ 	* ginclude/stdatomic.h: Likewise.
+ 	* optabs.h: Likewise.
+ 	* sel-sched-ir.h: Likewise.
+ 	* convert.cc: Likewise.
+ 	* cgraphunit.cc: Likewise.
+ 	* lra-remat.cc: Likewise.
+ 	* tree-if-conv.cc: Likewise.
+ 	* gcov-dump.cc: Likewise.
+ 	* tree-predcom.cc: Likewise.
+ 	* dominance.cc: Likewise.
+ 	* gimple-range-cache.h: Likewise.
+ 	* ipa-devirt.cc: Likewise.
+ 	* rtl.h: Likewise.
+ 	* ubsan.cc: Likewise.
+ 	* tree-ssa.cc: Likewise.
+ 	* ssa.h: Likewise.
+ 	* cse.cc: Likewise.
+ 	* jump.cc: Likewise.
+ 	* hwint.h: Likewise.
+ 	* caller-save.cc: Likewise.
+ 	* coretypes.h: Likewise.
+ 	* ipa-fnsummary.h: Likewise.
+ 	* tree-ssa-strlen.cc: Likewise.
+ 	* modulo-sched.cc: Likewise.
+ 	* cgraphclones.cc: Likewise.
+ 	* lto-cgraph.cc: Likewise.
+ 	* hw-doloop.h: Likewise.
+ 	* data-streamer.h: Likewise.
+ 	* compare-elim.cc: Likewise.
+ 	* profile-count.h: Likewise.
+ 	* tree-vect-loop-manip.cc: Likewise.
+ 	* ree.cc: Likewise.
+ 	* reload.cc: Likewise.
+ 	* tree-ssa-loop-split.cc: Likewise.
+ 	* tree-into-ssa.cc: Likewise.
+ 	* gcse.cc: Likewise.
+ 	* cfgloopmanip.cc: Likewise.
+ 	* df.h: Likewise.
+ 	* fold-const.cc: Likewise.
+ 	* wide-int.cc: Likewise.
+ 	* gengtype-state.cc: Likewise.
+ 	* sanitizer.def: Likewise.
+ 	* tree-ssa-sink.cc: Likewise.
+ 	* target-hooks-macros.h: Likewise.
+ 	* tree-ssa-pre.cc: Likewise.
+ 	* gimple-pretty-print.cc: Likewise.
+ 	* ipa-utils.h: Likewise.
+ 	* tree-outof-ssa.cc: Likewise.
+ 	* tree-ssa-coalesce.cc: Likewise.
+ 	* gimple-match.h: Likewise.
+ 	* tree-ssa-loop-niter.cc: Likewise.
+ 	* tree-loop-distribution.cc: Likewise.
+ 	* tree-emutls.cc: Likewise.
+ 	* tree-eh.cc: Likewise.
+ 	* varpool.cc: Likewise.
+ 	* ssa-iterators.h: Likewise.
+ 	* asan.cc: Likewise.
+ 	* reload1.cc: Likewise.
+ 	* cfgloopanal.cc: Likewise.
+ 	* tree-vectorizer.cc: Likewise.
+ 	* simplify-rtx.cc: Likewise.
+ 	* opts-global.cc: Likewise.
+ 	* gimple-ssa-store-merging.cc: Likewise.
+ 	* expmed.cc: Likewise.
+ 	* tree-ssa-loop-prefetch.cc: Likewise.
+ 	* tree-ssa-dse.h: Likewise.
+ 	* tree-vect-stmts.cc: Likewise.
+ 	* gimple-fold.cc: Likewise.
+ 	* lra-coalesce.cc: Likewise.
+ 	* data-streamer-out.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* tree-ssa-alias.cc: Likewise.
+ 	* tree-vect-patterns.cc: Likewise.
+ 	* common/common-target.def: Likewise.
+ 	* common/config/rx/rx-common.cc: Likewise.
+ 	* common/config/msp430/msp430-common.cc: Likewise.
+ 	* common/config/avr/avr-common.cc: Likewise.
+ 	* common/config/i386/i386-common.cc: Likewise.
+ 	* common/config/pdp11/pdp11-common.cc: Likewise.
+ 	* common/config/rs6000/rs6000-common.cc: Likewise.
+ 	* common/config/mcore/mcore-common.cc: Likewise.
+ 	* graphite.cc: Likewise.
+ 	* gimple-low.cc: Likewise.
+ 	* genmodes.cc: Likewise.
+ 	* gimple-loop-jam.cc: Likewise.
+ 	* lto-streamer-out.cc: Likewise.
+ 	* predict.cc: Likewise.
+ 	* omp-expand.cc: Likewise.
+ 	* gimple-array-bounds.cc: Likewise.
+ 	* predict.def: Likewise.
+ 	* opts.h: Likewise.
+ 	* tree-stdarg.cc: Likewise.
+ 	* gimplify.cc: Likewise.
+ 	* ira-lives.cc: Likewise.
+ 	* loop-doloop.cc: Likewise.
+ 	* lra.cc: Likewise.
+ 	* gimple-iterator.h: Likewise.
+ 	* tree-sra.cc: Likewise.
+ 
+ 2024-10-25  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svaba_impl::fold): Fold svaba to svabd if op1 is all zeros.
+ 
+ 2024-10-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	* tree.h (TYPE_WARN_IF_NOT_ALIGN_RAW): New accessor.
+ 	(TYPE_WARN_IF_NOT_ALIGN): Use it.
+ 	(SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
+ 
+ 2024-10-24  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116953
+ 	* config/avr/avr.cc (avr_out_sbxx_branch): Revert previous fix
+ 	for PR116953 (r15-4078).  Run extract_constrain_insn_cached
+ 	on the current insn after calling jump_over_one_insn_p.
+ 
+ 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-format-json.cc (make_json_for_path): Add "ref_pp"
+ 	param and use when obtaining event descriptions.
+ 	(json_output_format::on_report_diagnostic): Pass this format's
+ 	printer as the above.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_location_object): Clone this format's printer
+ 	and use it to obtain the text of the message.
+ 	* diagnostic-path.cc: Include "pretty-print-markup.h".
+ 	(diagnostic_event::get_desc): New.
+ 	(path_label::get_text): Update for changes to diagnostic_event.
+ 	(event_range::print): Likewise.
+ 	(class element_event_desc): New.
+ 	(diagnostic_text_output_format::print_path): Update for changes to
+ 	diagnostic_event.
+ 	* diagnostic-path.h (diagnostic_event::get_desc): Replace with...
+ 	(diagnostic_event::print_desc): ...this.
+ 	(diagnostic_event::get_desc): Add this back for debugging, without
+ 	the bool param.
+ 	* pretty-print.cc (pp_printf_n): New.
+ 	* pretty-print.h (pp_printf_n): New decl.
+ 	* selftest-diagnostic-path.h (test_diagnostic_event::get_desc):
+ 	Convert to...
+ 	(test_diagnostic_event::print_desc): ...this.
+ 	* simple-diagnostic-path.cc (simple_diagnostic_event::print_desc):
+ 	New.
+ 	(selftest::test_intraprocedural_path): Use debug form of get_desc.
+ 	* simple-diagnostic-path.h (simple_diagnostic_event::get_desc):
+ 	Convert to...
+ 	(simple_diagnostic_event::print_desc): ...this, moving
+ 	implementation to test_diagnostic_event.
+ 
+ 2024-10-24  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR other/116613
+ 	* config/gcn/mkoffload.cc: Add '#define INCLUDE_MEMORY'.
+ 
+ 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
+ 	    Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR other/116613
+ 	* asan.cc: Add #define INCLUDE_MEMORY.
+ 	* attribs.cc: Likewise.
+ 	(attr_access::array_as_string): Use
+ 	diagnostic_context::clone_printer and use unique_ptr.
+ 	* auto-profile.cc: Add #define INCLUDE_MEMORY.
+ 	* calls.cc: Likewise.
+ 	* cfganal.cc: Likewise.
+ 	* cfgexpand.cc: Likewise.
+ 	* cfghooks.cc: Likewise.
+ 	* cfgloop.cc: Likewise.
+ 	* cgraph.cc: Likewise.
+ 	* cgraphclones.cc: Likewise.
+ 	* cgraphunit.cc: Likewise.
+ 	* collect-utils.cc: Likewise.
+ 	* collect2.cc: Likewise.
+ 	* common/config/aarch64/aarch64-common.cc: Likewise.
+ 	* common/config/arm/arm-common.cc: Likewise.
+ 	* common/config/avr/avr-common.cc: Likewise.
+ 	* config/aarch64/aarch64-cc-fusion.cc: Likewise.
+ 	* config/aarch64/aarch64-early-ra.cc: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc: Likewise.
+ 	* config/arc/arc.cc: Likewise.
+ 	* config/arm/aarch-common.cc: Likewise.
+ 	* config/arm/arm-mve-builtins.cc: Likewise.
+ 	* config/avr/avr-devices.cc: Likewise.
+ 	* config/avr/driver-avr.cc: Likewise.
+ 	* config/bpf/bpf.cc: Likewise.
+ 	* config/bpf/btfext-out.cc: Likewise.
+ 	* config/bpf/core-builtins.cc: Likewise.
+ 	* config/darwin.cc: Likewise.
+ 	* config/i386/driver-i386.cc: Likewise.
+ 	* config/i386/i386-builtins.cc: Likewise.
+ 	* config/i386/i386-expand.cc: Likewise.
+ 	* config/i386/i386-features.cc: Likewise.
+ 	* config/i386/i386-options.cc: Likewise.
+ 	* config/loongarch/loongarch-builtins.cc: Likewise.
+ 	* config/mingw/winnt-cxx.cc: Likewise.
+ 	* config/mingw/winnt.cc: Likewise.
+ 	* config/mips/mips.cc: Likewise.
+ 	* config/msp430/driver-msp430.cc: Likewise.
+ 	* config/nvptx/mkoffload.cc: Likewise.
+ 	* config/nvptx/nvptx.cc: Likewise.
+ 	* config/riscv/riscv-avlprop.cc: Likewise.
+ 	* config/riscv/riscv-vector-builtins.cc: Likewise.
+ 	* config/riscv/riscv-vsetvl.cc: Likewise.
+ 	* config/rs6000/driver-rs6000.cc: Likewise.
+ 	* config/rs6000/host-darwin.cc: Likewise.
+ 	* config/rs6000/rs6000-c.cc: Likewise.
+ 	* config/s390/s390-c.cc: Likewise.
+ 	* config/s390/s390.cc: Likewise.
+ 	* config/sol2-cxx.cc: Likewise.
+ 	* config/vms/vms-c.cc: Likewise.
+ 	* config/xtensa/xtensa-dynconfig.cc: Likewise.
+ 	* coroutine-passes.cc: Likewise.
+ 	* coverage.cc: Likewise.
+ 	* data-streamer-in.cc: Likewise.
+ 	* data-streamer-out.cc: Likewise.
+ 	* data-streamer.cc: Likewise.
+ 	* diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer):
+ 	Delete.
+ 	(diagnostic_buffer::m_per_format_buffer): Use std::unique_ptr.
+ 	* diagnostic-client-data-hooks.h (make_compiler_data_hooks): Use
+ 	std::unique_ptr for return type.
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::make_per_format_buffer): Likewise.
+ 	(diagnostic_output_format_init_json): Update for usage of
+ 	std::unique_ptr in set_output_format.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_output_format::make_per_format_buffer): Use std::unique_ptr
+ 	for return type.
+ 	(diagnostic_output_format_init_sarif): Update for usage of
+ 	std::unique_ptr.
+ 	(test_message_with_embedded_link): Likewise for set_urlifier.
+ 	* diagnostic-format-text.cc: Add #define INCLUDE_MEMORY.  Include
+ 	"make-unique.h".
+ 	(diagnostic_text_output_format::set_buffer): Use std::unique_ptr.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::set_buffer): Likewise.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format::make_per_format_buffer): Likewise.
+ 	* diagnostic-global-context.cc:
+ 	* diagnostic-macro-unwinding.cc: Likewise.
+ 	* diagnostic-show-locus.cc: Likewise.
+ 	* diagnostic-spec.cc: Likewise.
+ 	* diagnostic.cc (diagnostic_context::set_output_format): Use
+ 	std::unique_ptr for input.
+ 	(diagnostic_context::set_client_data_hooks): Likewise.
+ 	(diagnostic_context::set_option_manager): Likewise.
+ 	(diagnostic_context::set_urlifier): Likewise.
+ 	(diagnostic_context::set_diagnostic_buffer): Update for use of
+ 	std::unique_ptr.
+ 	(diagnostic_buffer::diagnostic_buffer): Likewise.
+ 	(diagnostic_buffer::~diagnostic_buffer): Delete.
+ 	* diagnostic.h: Complain if INCLUDE_MEMORY was not defined.
+ 	(diagnostic_context::set_output_format): Use std::unique_ptr for
+ 	input.
+ 	(diagnostic_context::set_client_data_hooks): Likewise.
+ 	(diagnostic_context::set_option_manager): Likewise.
+ 	(diagnostic_context::set_urlifier): Likewise.
+ 	(diagnostic_context::clone_printer): New.
+ 	(diagnostic_context::m_printer): Update comment.
+ 	(diagnostic_context::m_option_mgr): Likewise.
+ 	(diagnostic_context::m_urlifier): Likewise.
+ 	(diagnostic_context::m_edit_context_ptr): Likewise.
+ 	(diagnostic_context::m_output_format): Likewise.
+ 	(diagnostic_context::m_client_data_hooks): Likewise.
+ 	(diagnostic_context::m_theme): Likewise.
+ 	* digraph.cc: Add #define INCLUDE_MEMORY.
+ 	* dwarf2out.cc: Likewise.
+ 	* edit-context.cc: Likewise.
+ 	* except.cc: Likewise.
+ 	* expr.cc: Likewise.
+ 	* file-prefix-map.cc: Likewise.
+ 	* final.cc: Likewise.
+ 	* fwprop.cc: Likewise.
+ 	* gcc-plugin.h: Likewise.
+ 	* gcc-rich-location.cc: Likewise.
+ 	* gcc-urlifier.cc: Likewise.  Add #include "make-unique.h".
+ 	(make_gcc_urlifier): Use std::unique_ptr and ::make_unique.
+ 	* gcc-urlifier.h (make_gcc_urlifier): Use std::unique_ptr.
+ 	* gcc.cc: Add #define INCLUDE_MEMORY.  Include
+ 	"pretty-print-urlifier.h".
+ 	* gcov-dump.cc: Add #define INCLUDE_MEMORY.
+ 	* gcov-tool.cc: Likewise.
+ 	* gengtype.cc (open_base_files): Likewise to output.
+ 	* genmatch.cc: Likewise.
+ 	* gimple-fold.cc: Likewise.
+ 	* gimple-harden-conditionals.cc: Likewise.
+ 	* gimple-harden-control-flow.cc: Likewise.
+ 	* gimple-if-to-switch.cc: Likewise.
+ 	* gimple-lower-bitint.cc: Likewise.
+ 	* gimple-predicate-analysis.cc: Likewise.
+ 	* gimple-pretty-print.cc: Likewise.
+ 	* gimple-range-cache.cc: Likewise.
+ 	* gimple-range-edge.cc: Likewise.
+ 	* gimple-range-fold.cc: Likewise.
+ 	* gimple-range-gori.cc: Likewise.
+ 	* gimple-range-infer.cc: Likewise.
+ 	* gimple-range-op.cc: Likewise.
+ 	* gimple-range-path.cc: Likewise.
+ 	* gimple-range-phi.cc: Likewise.
+ 	* gimple-range-trace.cc: Likewise.
+ 	* gimple-range.cc: Likewise.
+ 	* gimple-ssa-backprop.cc: Likewise.
+ 	* gimple-ssa-sprintf.cc: Likewise.
+ 	* gimple-ssa-store-merging.cc: Likewise.
+ 	* gimple-ssa-strength-reduction.cc: Likewise.
+ 	* gimple-ssa-warn-access.cc: Likewise.
+ 	* gimple-ssa-warn-alloca.cc: Likewise.
+ 	* gimple-ssa-warn-restrict.cc: Likewise.
+ 	* gimple-streamer-in.cc: Likewise.
+ 	* gimple-streamer-out.cc: Likewise.
+ 	* gimple.cc: Likewise.
+ 	* gimplify.cc: Likewise.
+ 	* graph.cc: Likewise.
+ 	* graphviz.cc: Likewise.
+ 	* input.cc: Likewise.
+ 	* ipa-cp.cc: Likewise.
+ 	* ipa-devirt.cc: Likewise.
+ 	* ipa-fnsummary.cc: Likewise.
+ 	* ipa-free-lang-data.cc: Likewise.
+ 	* ipa-icf-gimple.cc: Likewise.
+ 	* ipa-icf.cc: Likewise.
+ 	* ipa-inline-analysis.cc: Likewise.
+ 	* ipa-inline.cc: Likewise.
+ 	* ipa-modref-tree.cc: Likewise.
+ 	* ipa-modref.cc: Likewise.
+ 	* ipa-param-manipulation.cc: Likewise.
+ 	* ipa-polymorphic-call.cc: Likewise.
+ 	* ipa-predicate.cc: Likewise.
+ 	* ipa-profile.cc: Likewise.
+ 	* ipa-prop.cc: Likewise.
+ 	* ipa-pure-const.cc: Likewise.
+ 	* ipa-reference.cc: Likewise.
+ 	* ipa-split.cc: Likewise.
+ 	* ipa-sra.cc: Likewise.
+ 	* ipa-strub.cc: Likewise.
+ 	* ipa-utils.cc: Likewise.
+ 	* langhooks.cc: Likewise.
+ 	* late-combine.cc: Likewise.
+ 	* lto-cgraph.cc: Likewise.
+ 	* lto-compress.cc: Likewise.
+ 	* lto-opts.cc: Likewise.
+ 	* lto-section-in.cc: Likewise.
+ 	* lto-section-out.cc: Likewise.
+ 	* lto-streamer-in.cc: Likewise.
+ 	* lto-streamer-out.cc: Likewise.
+ 	* lto-streamer.cc: Likewise.
+ 	* lto-wrapper.cc: Likewise.  Include "make-unique.h".
+ 	(main): Use ::make_unique when creating option manager.
+ 	* multiple_target.cc: Likewise.
+ 	* omp-expand.cc: Likewise.
+ 	* omp-general.cc: Likewise.
+ 	* omp-low.cc: Likewise.
+ 	* omp-oacc-neuter-broadcast.cc: Likewise.
+ 	* omp-offload.cc: Likewise.
+ 	* omp-simd-clone.cc: Likewise.
+ 	* optc-gen.awk: Likewise in output.
+ 	* optc-save-gen.awk: Likewise in output.
+ 	* options-urls-cc-gen.awk: Likewise in output.
+ 	* opts-common.cc: Likewise.
+ 	* opts-global.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* pair-fusion.cc: Likewise.
+ 	* passes.cc: Likewise.
+ 	* pointer-query.cc: Likewise.
+ 	* predict.cc: Likewise.
+ 	* pretty-print.cc (pretty_printer::clone): Use std::unique_ptr and
+ 	::make_unique.
+ 	* pretty-print.h: Complain if INCLUDE_MEMORY is not defined.
+ 	(pretty_printer::clone): Use std::unique_ptr.
+ 	* print-rtl.cc: Add #define INCLUDE_MEMORY.
+ 	* print-tree.cc: Likewise.
+ 	* profile-count.cc: Likewise.
+ 	* range-op-float.cc: Likewise.
+ 	* range-op-ptr.cc: Likewise.
+ 	* range-op.cc: Likewise.
+ 	* range.cc: Likewise.
+ 	* read-rtl-function.cc: Likewise.
+ 	* rtl-error.cc: Likewise.
+ 	* rtl-ssa/accesses.cc: Likewise.
+ 	* rtl-ssa/blocks.cc: Likewise.
+ 	* rtl-ssa/changes.cc: Likewise.
+ 	* rtl-ssa/functions.cc: Likewise.
+ 	* rtl-ssa/insns.cc: Likewise.
+ 	* rtl-ssa/movement.cc: Likewise.
+ 	* rtl-tests.cc: Likewise.
+ 	* sanopt.cc: Likewise.
+ 	* sched-rgn.cc: Likewise.
+ 	* selftest-diagnostic-path.cc: Likewise.
+ 	* selftest-diagnostic.cc: Likewise.
+ 	* splay-tree-utils.cc: Likewise.
+ 	* sreal.cc: Likewise.
+ 	* stmt.cc: Likewise.
+ 	* substring-locations.cc: Likewise.
+ 	* symtab-clones.cc: Likewise.
+ 	* symtab-thunks.cc: Likewise.
+ 	* symtab.cc: Likewise.
+ 	* text-art/box-drawing.cc: Likewise.
+ 	* text-art/canvas.cc: Likewise.
+ 	* text-art/ruler.cc: Likewise.
+ 	* text-art/selftests.cc: Likewise.
+ 	* text-art/theme.cc: Likewise.
+ 	* toplev.cc: Likewise.  Include "make-unique.h".
+ 	(general_init): Use ::make_unique when setting option_manager.
+ 	* trans-mem.cc: Add #define INCLUDE_MEMORY.
+ 	* tree-affine.cc: Likewise.
+ 	* tree-call-cdce.cc: Likewise.
+ 	* tree-cfg.cc: Likewise.
+ 	* tree-chrec.cc: Likewise.
+ 	* tree-dfa.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Include "make-unique.h".
+ 	(make_compiler_data_hooks): Use std::unique_ptr and ::make_unique.
+ 	* tree-diagnostic.cc: Add #define INCLUDE_MEMORY.
+ 	* tree-dump.cc: Likewise.
+ 	* tree-inline.cc: Likewise.
+ 	* tree-into-ssa.cc: Likewise.
+ 	* tree-logical-location.cc: Likewise.
+ 	* tree-nested.cc: Likewise.
+ 	* tree-nrv.cc: Likewise.
+ 	* tree-object-size.cc: Likewise.
+ 	* tree-outof-ssa.cc: Likewise.
+ 	* tree-pretty-print.cc: Likewise.
+ 	* tree-profile.cc: Likewise.
+ 	* tree-scalar-evolution.cc: Likewise.
+ 	* tree-sra.cc: Likewise.
+ 	* tree-ssa-address.cc: Likewise.
+ 	* tree-ssa-alias.cc: Likewise.
+ 	* tree-ssa-ccp.cc: Likewise.
+ 	* tree-ssa-coalesce.cc: Likewise.
+ 	* tree-ssa-copy.cc: Likewise.
+ 	* tree-ssa-dce.cc: Likewise.
+ 	* tree-ssa-dom.cc: Likewise.
+ 	* tree-ssa-forwprop.cc: Likewise.
+ 	* tree-ssa-ifcombine.cc: Likewise.
+ 	* tree-ssa-loop-ch.cc: Likewise.
+ 	* tree-ssa-loop-im.cc: Likewise.
+ 	* tree-ssa-loop-manip.cc: Likewise.
+ 	* tree-ssa-loop-niter.cc: Likewise.
+ 	* tree-ssa-loop-split.cc: Likewise.
+ 	* tree-ssa-math-opts.cc: Likewise.
+ 	* tree-ssa-operands.cc: Likewise.
+ 	* tree-ssa-phiprop.cc: Likewise.
+ 	* tree-ssa-pre.cc: Likewise.
+ 	* tree-ssa-propagate.cc: Likewise.
+ 	* tree-ssa-reassoc.cc: Likewise.
+ 	* tree-ssa-sccvn.cc: Likewise.
+ 	* tree-ssa-scopedtables.cc: Likewise.
+ 	* tree-ssa-sink.cc: Likewise.
+ 	* tree-ssa-strlen.cc: Likewise.
+ 	* tree-ssa-structalias.cc: Likewise.
+ 	* tree-ssa-ter.cc: Likewise.
+ 	* tree-ssa-uninit.cc: Likewise.
+ 	* tree-ssa.cc: Likewise.
+ 	* tree-ssanames.cc: Likewise.
+ 	* tree-stdarg.cc: Likewise.
+ 	* tree-streamer-in.cc: Likewise.
+ 	* tree-streamer-out.cc: Likewise.
+ 	* tree-streamer.cc: Likewise.
+ 	* tree-switch-conversion.cc: Likewise.
+ 	* tree-tailcall.cc: Likewise.
+ 	* tree-vrp.cc: Likewise.
+ 	* tree.cc: Likewise.
+ 	* ubsan.cc: Likewise.
+ 	* value-pointer-equiv.cc: Likewise.
+ 	* value-prof.cc: Likewise.
+ 	* value-query.cc: Likewise.
+ 	* value-range-pretty-print.cc: Likewise.
+ 	* value-range-storage.cc: Likewise.
+ 	* value-range.cc: Likewise.
+ 	* value-relation.cc: Likewise.
+ 	* var-tracking.cc: Likewise.
+ 	* varpool.cc: Likewise.
+ 	* vr-values.cc: Likewise.
+ 	* wide-int-print.cc: Likewise.
+ 
+ 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::report_diagnostic): Add
+ 	comment about interaction of this code with pretty-print
+ 	formatting phaes.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* value-query.cc (range_query::get_tree_range): Use get_nonzero_bits
+ 	to populate the irange_bitmask of a POLY_INT_CST.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Simplify (X >> C1) * (C2 << C1) -> X * C2 if the
+ 	low C1 bits of X are zero.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-ssanames.cc (get_nonzero_bits): Handle POLY_INT_CSTs.
+ 	* match.pd (with_possible_nonzero_bits): Likewise.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Simplify (X >> C1) << (C1 + C2) -> X << C2 if the
+ 	low C1 bits of X are zero.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Generalise ((X /[ex] A) +- B) * A -> X +- A * B rule
+ 	to ((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3).
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Simplify (X /[ex] C1) * (C1 * C2) -> X * C2.
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Simplify X / (1 << C) to X /[ex] (1 << C) if the
+ 	low C bits of X are clear
+ 
+ 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* match.pd: Extend some rules to handle exact_div like trunc_div.
+ 	* tree.h (trunc_or_exact_div_p): New function.
+ 	* tree-ssa-loop-niter.cc (is_rshift_by_1): Use it.
+ 	* tree-ssa-loop-ivopts.cc (force_expr_to_var_cost): Handle
+ 	EXACT_DIV_EXPR.
+ 
+ 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_bitwise_or::fold_range): Add prange
+ 	variant.
+ 	* range-op-ptr.cc (class pointer_or_operator): Remove.
+ 	(pointer_or_operator::op1_range): Remove.
+ 	(pointer_or_operator::op2_range): Remove.
+ 	(pointer_or_operator::wi_fold): Remove.
+ 	(operator_bitwise_or::fold_range): New prange variant.
+ 
+ 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-ptr.cc (class pointer_and_operator): Remove.
+ 	(pointer_and_operator::wi_fold): Remove.
+ 
+ 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-ptr.cc (class pointer_min_max_operator): Remove.
+ 	(pointer_min_max_operator::wi_fold): Remove.
+ 
+ 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-ptr.cc (pointer_plus_operator::wi_fold): Remove.
+ 	(pointer_plus_operator::op2_range): Remove irange variant.
+ 	(pointer_plus_operator::update_bitmask): Likewise.
+ 
+ 2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/117209
+ 	* asan.cc (maybe_cast_to_ptrmode): Formatting fix.
+ 	(build_check_stmt): Don't copy *iter into gsi, perform all
+ 	the updates on iter directly.
+ 
+ 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svsra_impl::fold): Fold svsra to svlsr/svasr if op1 is all zeros.
+ 
+ 2024-10-24  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svlsl_impl::fold):
+ 	Try constant folding.
+ 	* config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop):
+ 	Return 0 if shift is out of range.
+ 
+ 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
+ 	Fold division by -1 to svneg.
+ 	(svmul_impl::fold): Fold multiplication by -1 to svneg.
+ 
+ 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svindex_impl::fold): Add constant folding.
+ 
+ 2024-10-24  Wang Pengcheng  <wangpengcheng.pp@bytedance.com>
+ 
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add new
+ 	tune options.
+ 	(riscv_override_options_internal): Override the default alignment
+ 	when not optimizing for size.
+ 
+ 2024-10-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_ptrue_reg): Fix type
+ 	of induction variable i.
+ 
+ 2024-10-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117260
+ 	* gimple-match-exports.cc (maybe_push_res_to_seq): Reject non-const
+ 	internal functions.
+ 
+ 2024-10-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* ginclude/stdalign.h (__alignas_is_defined): Define for C++.
+ 	(__alignof_is_defined): Likewise.
+ 
+ 2024-10-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR jit/117275
+ 	* toplev.cc (toplev::finalize): Call varasm_cc_finalize.
+ 	* varasm.cc (varasm_cc_finalize): New.
+ 	* varasm.h (varasm_cc_finalize): New decl.
+ 
+ 2024-10-23  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/113860
+ 	* config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): New function.
+ 	* config/aarch64/aarch64-simd.md (popcount<mode>2): Update pattern to
+ 	also support V1DI mode.
+ 	* config/aarch64/aarch64.cc (aarch64_ptrue_reg): New function.
+ 	* config/aarch64/aarch64.md (popcount<mode>2): Add TARGET_SVE support.
+ 	* config/aarch64/iterators.md (VDQHSD_V1DI): New mode iterator.
+ 	(SVE_VDQ_I): Add V1DI.
+ 	(bitsize): Likewise.
+ 	(VPRED): Likewise.
+ 	(VEC_POP_MODE): New mode attribute.
+ 	(vec_pop_mode): Likewise.
+ 
+ 2024-10-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/117222
+ 	* range-op-ptr.cc (operator_pointer_diff::fold_range): New.
+ 	(operator_pointer_diff::op1_op2_relation_effect): Remove irange
+ 	variant.
+ 	(operator_pointer_diff::update_bitmask): Likewise.
+ 
+ 2024-10-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR fortran/105916
+ 	* diagnostic-buffer.h: New file.
+ 	* diagnostic-format-json.cc: Define INCLUDE_VECTOR.  Include
+ 	"diagnostic-buffer.h".
+ 	(class diagnostic_json_format_buffer): New subclass.
+ 	(class json_output_format): Add friend class
+ 	diagnostic_json_format_buffer.
+ 	(json_output_format::make_per_format_buffer): New vfunc
+ 	implementation.
+ 	(json_output_format::set_buffer): New vfunc implementation.
+ 	(json_output_format::json_output_format): Initialize m_buffer.
+ 	(json_output_format::m_buffer): New field.
+ 	(diagnostic_json_format_buffer::dump): New.
+ 	(diagnostic_json_format_buffer::empty_p): New.
+ 	(diagnostic_json_format_buffer::move_to): New.
+ 	(diagnostic_json_format_buffer::clear): New.
+ 	(diagnostic_json_format_buffer::flush): New.
+ 	(json_output_format::on_report_diagnostic): Implement optional
+ 	buffering.
+ 	* diagnostic-format-sarif.cc: Include "diagnostic-buffer.h".
+ 	(class diagnostic_sarif_format_buffer): New subclass.
+ 	(class sarif_builder): Add friend
+ 	class diagnostic_sarif_format_buffer.
+ 	(sarif_builder::num_results): New accessor.
+ 	(sarif_builder::get_result): New accessor.
+ 	(sarif_builder::on_report_diagnostic): Add param "buffer"; use it
+ 	to implement optional buffering.
+ 	(diagnostic_sarif_format_buffer::dump): New.
+ 	(diagnostic_sarif_format_buffer::empty_p): New.
+ 	(diagnostic_sarif_format_buffer::move_to): New.
+ 	(diagnostic_sarif_format_buffer::clear): New.
+ 	(diagnostic_sarif_format_buffer::flush): New.
+ 	(sarif_output_format::make_per_format_buffer): New vfunc
+ 	implementation.
+ 	(sarif_output_format::set_buffer): New vfunc implementation.
+ 	(sarif_output_format::on_report_diagnostic): Pass m_buffer to
+ 	sarif_builder::on_report_diagnostic.
+ 	(sarif_output_format::num_results): New accessor.
+ 	(sarif_output_format::get_result): New accessor.
+ 	(diagnostic_output_format::diagnostic_output_format): Initialize
+ 	m_buffer.
+ 	(diagnostic_output_format::m_buffer): New field.
+ 	(diagnostic_output_format::num_results): Get accessor.
+ 	(diagnostic_output_format::get_result): Get accessor.
+ 	(selftest::get_message_from_result): New.
+ 	(selftest::test_buffering): New.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Call it.
+ 	* diagnostic-format-text.cc: Include
+ 	"diagnostic-client-data-hooks.h".
+ 	(class diagnostic_text_format_buffer): New subclass.
+ 	(diagnostic_text_format_buffer::diagnostic_text_format_buffer):
+ 	New.
+ 	(diagnostic_text_format_buffer::dump): New.
+ 	(diagnostic_text_format_buffer::empty_p): New.
+ 	(diagnostic_text_format_buffer::move_to): New.
+ 	(diagnostic_text_format_buffer::clear): New.
+ 	(diagnostic_text_format_buffer::flush): New.
+ 	(diagnostic_text_output_format::dump): Dump m_saved_output_buffer.
+ 	(diagnostic_text_output_format::set_buffer): New.
+ 	(diagnostic_text_output_format::make_per_format_buffer): New.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_text_output_format):
+ 	Initialize m_saved_output_buffer.
+ 	(diagnostic_text_output_format::set_buffer): New decl.
+ 	(diagnostic_text_output_format::make_per_format_buffer): New decl.
+ 	(diagnostic_text_output_format::m_saved_output_buffer): New field.
+ 	* diagnostic-format.h (class diagnostic_per_format_buffer): New
+ 	forward decl.
+ 	(diagnostic_output_format::make_per_format_buffer): New vfunc.
+ 	(diagnostic_output_format::set_buffer): New vfunc.
+ 	* diagnostic.cc: Include "diagnostic-buffer.h".
+ 	(diagnostic_context::initialize): Replace memset with call to
+ 	"clear" on m_diagnostic_counters.  Initializer
+ 	m_diagnostic_buffer.
+ 	(diagnostic_context::finish): Call set_diagnostic_buffer with
+ 	nullptr.
+ 	(diagnostic_context::dump): Update for encapsulation of counts
+ 	into m_diagnostic_counters.  Dump m_diagnostic_buffer.
+ 	(diagnostic_context::execution_failed_p): Update for encapsulation of
+ 	counts into m_diagnostic_counters.
+ 	(diagnostic_context::check_max_errors): Likewise.
+ 	(diagnostic_context::report_diagnostic): Likewise.  Eliminate
+ 	diagnostic_check_max_errors in favor of check_max_errors.
+ 	Update increment of counter to support buffering.  Eliminate
+ 	diagnostic_action_after_output in favor of action_after_output.
+ 	Only add fixits to m_edit_context_ptr if buffering is disabled.
+ 	Only call diagnostic_output_format::after_diagnostic if buffering
+ 	is disabled.
+ 	(diagnostic_context::error_recursion):  Eliminate
+ 	diagnostic_action_after_output in favor of action_after_output.
+ 	(diagnostic_context::set_diagnostic_buffer): New.
+ 	(diagnostic_context::clear_diagnostic_buffer): New.
+ 	(diagnostic_context::flush_diagnostic_buffer): New.
+ 	(diagnostic_counters::diagnostic_counters): New.
+ 	(diagnostic_counters::dump): New.
+ 	(diagnostic_counters::move_to): New.
+ 	(diagnostic_counters::clear): New.
+ 	(diagnostic_buffer::diagnostic_buffer): New.
+ 	(diagnostic_buffer::~diagnostic_buffer): New.
+ 	(diagnostic_buffer::dump): New.
+ 	(diagnostic_buffer::empty_p): New.
+ 	(diagnostic_buffer::move_to): New.
+ 	(diagnostic_buffer::ensure_per_format_buffer): New.
+ 	(c_diagnostic_cc_tests): Remove stray newline.
+ 	* diagnostic.h (class diagnostic_buffer): New forward decl.
+ 	(struct diagnostic_counters): New.
+ 	(diagnostic_context::check_max_errors): Make private.
+ 	(diagnostic_context::action_after_output): Make private.
+ 	(diagnostic_context::get_output_format): Make non-const.
+ 	(diagnostic_context::diagnostic_count): Update for change
+ 	to m_diagnostic_counters.
+ 	(diagnostic_context::set_diagnostic_buffer): New decl.
+ 	(diagnostic_context::get_diagnostic_buffer): New decl.
+ 	(diagnostic_context::clear_diagnostic_buffer): New decl.
+ 	(diagnostic_context::flush_diagnostic_buffer): New decl.
+ 	(diagnostic_context::m_diagnostic_count): Replace array with...
+ 	(diagnostic_context::m_diagnostic_counters): ...this.
+ 	(diagnostic_context::m_diagnostic_buffer): New field.
+ 	(diagnostic_action_after_output): Delete.
+ 	(diagnostic_check_max_errors): Delete.
+ 
+ 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQMOV:mode>):
+ 	Remove redundant mode check.
+ 
+ 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (copysign<GPF:mode>3): Widen immediate to
+ 	vector.
+ 	(copysign<GPF:mode>3_insn): Use VQ_INT_EQUIV in operand 3.
+ 	* config/aarch64/iterators.md (VQ_INT_EQUIV): New iterator.
+ 	(vq_int_equiv): Likewise.
+ 
+ 2024-10-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/extend.texi (Deprecated Features): Remove text about some
+ 	no-longer-deprecated features.
+ 
+ 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (enum simd_immediate_check): Add
+ 	AARCH64_CHECK_XOR.
+ 	(aarch64_simd_valid_xor_imm): New function.
+ 	(aarch64_output_simd_imm): Add AARCH64_CHECK_XOR support.
+ 	(aarch64_output_simd_xor_imm): New function.
+ 	* config/aarch64/aarch64-protos.h (aarch64_output_simd_xor_imm): New
+ 	prototype.
+ 	(aarch64_simd_valid_xor_imm): New prototype.
+ 	* config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>):
+ 	Use aarch64_reg_or_xor_imm predicate and add an immediate alternative.
+ 	* config/aarch64/predicates.md (aarch64_reg_or_xor_imm): Add new
+ 	predicate.
+ 
+ 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (ior<mode>3<vczle><vczbe>):
+ 	Use aarch64_reg_or_orr_imm predicate.  Combine SVE/AdvSIMD immediates
+ 	and use aarch64_output_simd_orr_imm.
+ 	* config/aarch64/aarch64.cc (struct simd_immediate_info): Add SVE_MOV.
+ 	(aarch64_sve_valid_immediate): Use SVE_MOV for SVE move immediates.
+ 	(aarch64_simd_valid_imm): Enable SVE SIMD immediates when possible.
+ 	(aarch64_output_simd_imm): Support emitting SVE SIMD immediates.
+ 	* config/aarch64/predicates.md (aarch64_orr_imm_sve_advsimd): Remove.
+ 
+ 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (enum simd_immediate_check): Move to aarch64.cc.
+ 	(aarch64_output_simd_mov_immediate): Remove.
+ 	(aarch64_output_simd_mov_imm): New prototype.
+ 	(aarch64_output_simd_orr_imm): Likewise.
+ 	(aarch64_output_simd_and_imm): Likewise.
+ 	(aarch64_simd_valid_immediate): Remove.
+ 	(aarch64_simd_valid_and_imm): New prototype.
+ 	(aarch64_simd_valid_mov_imm): Likewise.
+ 	(aarch64_simd_valid_orr_imm): Likewise.
+ 	* config/aarch64/aarch64-simd.md: Use aarch64_output_simd_mov_imm.
+ 	* config/aarch64/aarch64.cc (enum simd_immediate_check): Moved from aarch64-protos.h.
+ 	Use AARCH64_CHECK_AND rather than AARCH64_CHECk_BIC.
+ 	(aarch64_expand_sve_const_vector): Use aarch64_simd_valid_mov_imm.
+ 	(aarch64_expand_mov_immediate): Likewise.
+ 	(aarch64_can_const_movi_rtx_p): Likewise.
+ 	(aarch64_secondary_reload): Likewise.
+ 	(aarch64_legitimate_constant_p): Likewise.
+ 	(aarch64_advsimd_valid_immediate): Simplify checks on 'which' param.
+ 	(aarch64_sve_valid_immediate): Add extra param for move vs logical.
+ 	(aarch64_simd_valid_immediate): Rename to aarch64_simd_valid_imm.
+ 	(aarch64_simd_valid_mov_imm): New function.
+ 	(aarch64_simd_valid_orr_imm): Likewise.
+ 	(aarch64_simd_valid_and_imm): Likewise.
+ 	(aarch64_mov_operand_p): Use aarch64_simd_valid_mov_imm.
+ 	(aarch64_simd_scalar_immediate_valid_for_move): Likewise.
+ 	(aarch64_simd_make_constant): Likewise.
+ 	(aarch64_expand_vector_init_fallback): Likewise.
+ 	(aarch64_output_simd_mov_immediate): Rename to aarch64_output_simd_imm.
+ 	(aarch64_output_simd_orr_imm): New function.
+ 	(aarch64_output_simd_and_imm): Likewise.
+ 	(aarch64_output_simd_mov_imm): Likewise.
+ 	(aarch64_output_scalar_simd_mov_immediate): Use aarch64_output_simd_mov_imm.
+ 	(aarch64_output_sve_mov_immediate): Use aarch64_simd_valid_imm.
+ 	(aarch64_output_sve_ptrues): Likewise.
+ 	* config/aarch64/constraints.md (Do): Use aarch64_simd_valid_orr_imm.
+ 	(Db): Use aarch64_simd_valid_and_imm.
+ 	* config/aarch64/predicates.md (aarch64_reg_or_bic_imm): Use aarch64_simd_valid_orr_imm.
+ 	(aarch64_reg_or_and_imm): Use aarch64_simd_valid_and_imm.
+ 
+ 2024-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117240
+ 	* config/i386/i386-builtin.def: Add avx/avx512f to vaes
+ 	ymm/zmm builtins.
+ 
+ 2024-10-23  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117142
+ 	* tree-sra.cc (build_access_from_call_arg): Disqualify any
+ 	candidate passed to a function returning twice.
+ 
+ 2024-10-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (Wleading-whitespace=): Document.
+ 
+ 2024-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117232
+ 	* config/i386/sse.md (*kortest_cmp<SWI1248_AVX512BWDQ_64:mode>_movqicc):
+ 	New define_insn_and_split.
+ 	(*kortest_cmp<SWI1248_AVX512BWDQ_64:mode>_mov<SWI248:mode>cc):
+ 	Ditto.
+ 
+ 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117199
+ 	* varasm.cc (compare_constant): Handle RAW_DATA_CST.  Formatting fix
+ 	in the STRING_CST case.
+ 
+ 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117190
+ 	* varasm.cc (array_size_for_constructor): For RAW_DATA_CST,
+ 	use bitsize_int rather than size_int.
+ 
+ 2024-10-22  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-devices.def: Add generic version/flag as additional
+ 	value and architecture family entry; update; add gfx-10-3-generic
+ 	and gfx11-generic.
+ 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove
+ 	(ASM_SPEC): Use generated ABI_VERSION_OPT instead.
+ 	* config/gcn/gcn-tables.opt: Regenerate
+ 	* config/gcn/gcn.h (gcn_device_def): Add generic_version and
+ 	arch_family members.
+ 	(TARGET_CPU_CPP_BUILTINS): Fix allocation bug, handle '-' in the
+ 	name and add additional macro defines.
+ 	* config/gcn/gcn.cc (gcn_devices): Handle it.
+ 	* config/gcn/gen-gcn-device-macros.awk: Likewise; use ELF name
+ 	for the macro name; generate ABI_VERSION_OPT.
+ 	* config/gcn/mkoffload.cc (ELFABIVERSION_AMDGPU_HSA_V6,
+ 	EF_AMDGPU_GENERIC_VERSION_V, EF_AMDGPU_GENERIC_VERSION_OFFSET,
+ 	GET_GENERIC_VERSION, SET_GENERIC_VERSION): Define.
+ 	(get_arch): Call SET_GENERIC_VERSION flag on elf_flags.
+ 	(copy_early_debug_info): If the arch sets the generic version,
+ 	use ELFABIVERSION_AMDGPU_HSA_V6.
+ 
+ 2024-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117254
+ 	* gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg):
+ 	Check the array domain max is constant before using it.
+ 
+ 2024-10-22  Andrew Stubbs  <ams@baylibre.com>
+ 	    Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config.gcc (amdgcn): Add gcn-device-macros.h to tm_file.
+ 	Add gcn-tables.opt to extra_options.
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Delete.
+ 	(NO_SRAM_ECC): Delete.
+ 	(SRAMOPT): Move definition to generated file gcn-device-macros.h.
+ 	(XNACKOPT): Likewise.
+ 	(ASM_SPEC): Redefine using generated values from gcn-device-macros.h.
+ 	* config/gcn/gcn-opts.h
+ 	(enum processor_type): Generate from gcn-devices.def.
+ 	(TARGET_VEGA10): Delete.
+ 	(TARGET_VEGA20): Delete.
+ 	(TARGET_GFX908): Delete.
+ 	(TARGET_GFX90a): Delete.
+ 	(TARGET_GFX90c): Delete.
+ 	(TARGET_GFX1030): Delete.
+ 	(TARGET_GFX1036): Delete.
+ 	(TARGET_GFX1100): Delete.
+ 	(TARGET_GFX1103): Delete.
+ 	(TARGET_XNACK): Redefine to allow for HSACO_ATTR_UNSUPPORTED.
+ 	(enum hsaco_attr_type): Add HSACO_ATTR_UNSUPPORTED.
+ 	(TARGET_TGSPLIT): New define.
+ 	* config/gcn/gcn.cc (gcn_devices): New constant table.
+ 	(gcn_option_override): Rework to use gcn_devices table.
+ 	(gcn_omp_device_kind_arch_isa): Likewise.
+ 	(output_file_start): Likewise.
+ 	(gcn_hsa_declare_function_name): Rework using TARGET_* macros.
+ 	* config/gcn/gcn.h (gcn_devices): Declare struct and table.
+ 	(TARGET_CPU_CPP_BUILTINS): Rework using gcn_devices.
+ 	* config/gcn/gcn.opt: Move enum data to generated file gcn-tables.opt.
+ 	Use new names for the default values.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX900): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX906): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX908): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX90a): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX90c): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX1030): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX1036): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX1100): Delete.
+ 	(EF_AMDGPU_MACH_AMDGCN_GFX1103): Delete.
+ 	(enum elf_arch_code): Define using gcn-devices.def.
+ 	(get_arch): Rework using gcn-devices.def.
+ 	(main): Rework using gcn-devices.def
+ 	* config/gcn/t-gcn-hsa (gcn-tables.opt): Generate file.
+ 	(gcn-device-macros.h): Generate file.
+ 	* config/gcn/t-omp-device: Generate isa list from gcn-devices.def.
+ 	* config/gcn/gcn-devices.def: New file.
+ 	* config/gcn/gcn-tables.opt: New file.
+ 	* config/gcn/gcn-tables.opt.urls: New file.
+ 	* config/gcn/gen-gcn-device-macros.awk: New file.
+ 	* config/gcn/gen-opt-tables.awk: New file.
+ 
+ 2024-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117123
+ 	* tree-ssa-sccvn.cc (visit_phi): First process a non-constant
+ 	argument edge to handle more equivalences.  Remove the
+ 	two-arg special case.
+ 
+ 2024-10-22  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: Support IMM=1.
+ 
+ 2024-10-22  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: Support IMM=max-1.
+ 
+ 2024-10-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116488
+ 	PR rtl-optimization/116579
+ 	PR rtl-optimization/116915
+ 	PR rtl-optimization/117226
+ 	* ext-dce.cc (carry_backpropagate): Properly handle SIGN_EXTEND, add
+ 	ZERO_EXTEND handling as well.
+ 	(ext_dce_process_uses): Call carry_backpropagate before the optimization
+ 	step.
+ 
+ 2024-10-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (sstrunc<mode><v_double_trunc>2): Add
+ 	new pattern sstrunc for double trunc.
+ 	(sstrunc<mode><v_quad_trunc>2): Ditto but for quad trunc.
+ 	(sstrunc<mode><v_oct_trunc>2): Ditto but for oct trunc.
+ 	* config/riscv/riscv-protos.h (expand_vec_double_sstrunc): Add
+ 	new func decl to expand double trunc.
+ 	(expand_vec_quad_sstrunc): Ditto but for quad trunc.
+ 	(expand_vec_oct_sstrunc): Ditto but for oct trunc.
+ 	* config/riscv/riscv-v.cc (expand_vec_double_sstrunc): Add new
+ 	func to expand double trunc.
+ 	(expand_vec_quad_sstrunc): Ditto but for quad trunc.
+ 	(expand_vec_oct_sstrunc): Ditto but for oct trunc.
+ 
+ 2024-10-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-patterns.cc (gimple_signed_integer_sat_trunc): Add
+ 	new func decl for signed SAT_TRUNC.
+ 	(vect_recog_sat_trunc_pattern): Try signed match pattern for
+ 	the SAT_TRUNC.
+ 
+ 2024-10-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refine matching for vector signed SAT_TRUNC form 1.
+ 
+ 2024-10-21  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_register_move_cost):
+ 	Increase costs involving MOVEABLE_SYSREGS.
+ 
+ 2024-10-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.h (SGPR_REGNO_P): Silence warning.
+ 
+ 2024-10-21  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR rtl-optimization/116783
+ 	* pair-fusion.cc (def_walker::cand_addr_uses): New.
+ 	(def_walker::def_walker): Add parameter for candidate address
+ 	uses.
+ 	(def_walker::alias_conflict_p): Declare.
+ 	(def_walker::addr_reg_conflict_p): New.
+ 	(def_walker::conflict_p): New.
+ 	(store_walker::store_walker): Add parameter for candidate
+ 	address uses and pass to base ctor.
+ 	(store_walker::conflict_p): Rename to ...
+ 	(store_walker::alias_conflict_p): ... this.
+ 	(load_walker::load_walker): Add parameter for candidate
+ 	address uses and pass to base ctor.
+ 	(load_walker::conflict_p): Rename to ...
+ 	(load_walker::alias_conflict_p): ... this.
+ 	(pair_fusion_bb_info::try_fuse_pair): Collect address register
+ 	uses for candidate insns and pass down to alias walkers.
+ 
+ 2024-10-21  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
+ 	_AMO_LD_DEC_BOUNDED.
+ 
+ 2024-10-21  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Refactor the
+ 	function for future expansion on different family.
+ 
+ 2024-10-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117159
+ 	* config/i386/sse.md
+ 	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+ 	Change from define_insn_and_split to define_insn.
+ 	(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+ 	Ditto.
+ 	(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+ 	Ditto.
+ 	(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+ 	Ditto.
+ 	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+ 	Split to the zero_extend pattern.
+ 	(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+ 	Ditto.
+ 	(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+ 	Ditto.
+ 	(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+ 	Ditto.
+ 
+ 2024-10-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
+ 	New function.
+ 	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
+ 
+ 2024-10-19  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/112418
+ 	* tree-ssa-phiopt.cc (is_factor_profitable): New function.
+ 	(factor_out_conditional_operation): Add merge argument. Remove
+ 	arg0/arg1 arguments. Return bool instead of the new phi.
+ 	Early return for virtual ops. Call is_factor_profitable to
+ 	check if the factoring would be profitable.
+ 	(pass_phiopt::execute): Call factor_out_conditional_operation
+ 	on all phis instead of just singleton phi.
+ 	* doc/invoke.texi (--param phiopt-factor-max-stmts-live=): Document.
+ 	* params.opt (--param=phiopt-factor-max-stmts-live=): New opt.
+ 
+ 2024-10-19  Greg McGary  <gkm@rivosinc.com>
+ 
+ 	* config/riscv/autovec.md (vec_mask_len_load_lanes, vec_mask_len_store_lanes):
+ 	Predicate with TARGET_VECTOR_AUTOVEC_SEGMENT
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_AUTOVEC_SEGMENT): New macro.
+ 	* config/riscv/riscv.opt (-m(no-)autovec-segment): New option.
+ 
+ 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
+ 	New function.
+ 	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
+ 
+ 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-string.cc (struct stringop_info): New.
+ 	(expand_block_move): Move decision making code to...
+ 	(use_vector_stringop_p): ...here.
+ 
+ 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-protos.h (get_lmul_mode): New prototype.
+ 	(expand_block_move): Add bool parameter for movmem_p.
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move_scalar):
+ 	Pass movmem_p as false to riscv_vector::expand_block_move.
+ 	(expand_block_move): Add movmem_p parameter.  Return false if
+ 	loop needed and movmem_p is true.  Respect TARGET_MAX_LMUL.
+ 	* config/riscv/riscv-v.cc (get_lmul_mode): New function.
+ 	* config/riscv/riscv.md (movmem<mode>): Move checking for
+ 	whether to generate inline vector code to
+ 	riscv_vector::expand_block_move by passing movmem_p as true.
+ 
+ 2024-10-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (json::value): Remove forward decl.
+ 
+ 2024-10-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc (json_output_format::dump): New.
+ 	* diagnostic-format-sarif.cc (sarif_output_format::dump): New.
+ 	(sarif_file_output_format::dump): New.
+ 	* diagnostic-format-text.cc (diagnostic_text_output_format::dump):
+ 	New.
+ 	* diagnostic-format-text.h (diagnostic_text_output_format::dump):
+ 	New decl.
+ 	* diagnostic-format.h (diagnostic_output_format::dump): New decls.
+ 	* diagnostic.cc (diagnostic_context::dump): New.
+ 	(diagnostic_output_format::dump): New.
+ 	* diagnostic.h (diagnostic_context::dump): New decls.
+ 	* pretty-print-format-impl.h (pp_formatted_chunks::dump): Add
+ 	"indent" param.
+ 	* pretty-print.cc (bytes_per_hexdump_line): New constant.
+ 	(print_hexdump_line): New.
+ 	(print_hexdump): New.
+ 	(output_buffer::dump): Add "indent" param and use it.  Add
+ 	hexdump of current object in m_formatted_obstack and
+ 	m_chunk_obstack.
+ 	(pp_formatted_chunks::dump): Add "indent" param and use it.
+ 	(pretty_printer::dump): Likewise.  Add dumping of m_show_color
+ 	and m_url_format.
+ 	* pretty-print.h (output_buffer::dump): Add "indent" param.
+ 	(pretty_printer::dump): Likewise.
+ 
+ 2024-10-18  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* tree.h (array_type_nelts_top)
+ 	* tree.cc (array_type_nelts_top):
+ 	Define function (moved from gcc/cp/).
+ 
+ 2024-10-18  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* tree.cc (array_type_nelts, array_type_nelts_minus_one)
+ 	* tree.h (array_type_nelts, array_type_nelts_minus_one)
+ 	* expr.cc (count_type_elements)
+ 	* config/aarch64/aarch64.cc
+ 	(pure_scalable_type_info::analyze_array)
+ 	* config/i386/i386.cc (ix86_canonical_va_list_type):
+ 	Rename array_type_nelts => array_type_nelts_minus_one
+ 	The old name was misleading.
+ 
+ 2024-10-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.opt.urls: Fix for -mlra.
+ 
+ 2024-10-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/113933
+ 	* config/pa/pa.cc (pa_use_lra_p): Declare.
+ 	(TARGET_LRA_P): Change define to pa_use_lra_p.
+ 	(pa_use_lra_p): New function.
+ 	(legitimize_pic_address): Also check lra_in_progress.
+ 	(pa_emit_move_sequence): Likewise.
+ 	(pa_legitimate_constant_p): Likewise.
+ 	(pa_legitimate_address_p): Likewise.
+ 	(pa_secondary_reload): For floating-point loads and stores,
+ 	return NO_REGS for REG and SUBREG operands.  Return
+ 	GENERAL_REGS for some shift register spills.
+ 	* config/pa/pa.opt: Add mlra option.
+ 	* config/pa/predicates.md (integer_store_memory_operand):
+ 	Also check lra_in_progress.
+ 	(floating_point_store_memory_operand): Likewise.
+ 	(reg_before_reload_operand): Likewise.
+ 
+ 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-string.cc (expand_block_move): Fix
+ 	condition for using smaller LMUL.  Break outer loop if a
+ 	suitable vmode has been found.
+ 
+ 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-string.cc (expand_block_move): Replace
+ 	`end` with `length_rtx` in gen_rtx_NE.
+ 
+ 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* config/riscv/riscv-string.cc (expand_block_move): Fix
+ 	indentation.
+ 
+ 2024-10-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/117192
+ 	* config/i386/mmx.md (andn<MMXMODEI:mode>3): Swap operand
+ 	indexes 1 and 2 to comply with andn specification.
+ 
+ 2024-10-18  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
+ 	Refactor using fold_active_lanes_to and fold to dividend, is the
+ 	divisor is all ones.
+ 	(svmul_impl::fold): Refactor using fold_active_lanes_to and fold
+ 	to the other operand, if one of the operands is all ones.
+ 	* config/aarch64/aarch64-sve-builtins.h: Declare
+ 	gimple_folder::fold_active_lanes_to (tree).
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(gimple_folder::fold_actives_lanes_to): Add new method to fold
+ 	actives lanes to given argument and setting inactives lanes
+ 	according to the predication.
+ 
+ 2024-10-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Only expect
+ 	IFN_MASK_LOAD for masked loads that are not
+ 	STMT_VINFO_GATHER_SCATTER_P.
+ 
+ 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/117140
+ 	* tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Use gsi from
+ 	original statement.
+ 
+ 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-generic.cc (lower_vec_perm): Use output vector size instead
+ 	of input vector when determining output nunits.
+ 
+ 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_output_sve_mov_immediate): Use
+ 	fmov for SVE zeros.
+ 
+ 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_sve_valid_immediate,
+ 	aarch64_simd_valid_immediate): Refactor accepting modes and values.
+ 	(aarch64_float_const_representable_p): Refactor and extract FP checks
+ 	into ...
+ 	(aarch64_real_float_const_representable_p): ...This and fix fail
+ 	fallback from real_to_integer.
+ 	(aarch64_advsimd_valid_immediate): Use it.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (long_type_suffix): New.
+ 	(half_type_suffix): New.
+ 	(struct binary_move_narrow_def): Use new helper.
+ 	(struct binary_move_narrow_unsigned_def): Likewise.
+ 	(struct binary_rshift_narrow_def): Likewise.
+ 	(struct binary_rshift_narrow_unsigned_def): Likewise.
+ 	(struct binary_widen_def): Likewise.
+ 	(struct binary_widen_n_def): Likewise.
+ 	(struct binary_widen_opt_n_def): Likewise.
+ 	(struct unary_widen_def): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): Add
+ 	support for vsbciq and vsbcq.
+ 	(vadciq, vadcq): Add new parameter.
+ 	(vsbciq): New.
+ 	(vsbcq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vsbciq): New.
+ 	(vsbcq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vsbciq): New.
+ 	(vsbcq): New.
+ 	* config/arm/arm_mve.h (vsbciq): Delete.
+ 	(vsbciq_m): Delete.
+ 	(vsbcq): Delete.
+ 	(vsbcq_m): Delete.
+ 	(vsbciq_s32): Delete.
+ 	(vsbciq_u32): Delete.
+ 	(vsbciq_m_s32): Delete.
+ 	(vsbciq_m_u32): Delete.
+ 	(vsbcq_s32): Delete.
+ 	(vsbcq_u32): Delete.
+ 	(vsbcq_m_s32): Delete.
+ 	(vsbcq_m_u32): Delete.
+ 	(__arm_vsbciq_s32): Delete.
+ 	(__arm_vsbciq_u32): Delete.
+ 	(__arm_vsbciq_m_s32): Delete.
+ 	(__arm_vsbciq_m_u32): Delete.
+ 	(__arm_vsbcq_s32): Delete.
+ 	(__arm_vsbcq_u32): Delete.
+ 	(__arm_vsbcq_m_s32): Delete.
+ 	(__arm_vsbcq_m_u32): Delete.
+ 	(__arm_vsbciq): Delete.
+ 	(__arm_vsbciq_m): Delete.
+ 	(__arm_vsbcq): Delete.
+ 	(__arm_vsbcq_m): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vadcq_vsbc): Add support
+ 	for vadcq.
+ 	* config/arm/arm-mve-builtins-base.def (vadcq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vadcq): New.
+ 	* config/arm/arm_mve.h (vadcq): Delete.
+ 	(vadcq_m): Delete.
+ 	(vadcq_s32): Delete.
+ 	(vadcq_u32): Delete.
+ 	(vadcq_m_s32): Delete.
+ 	(vadcq_m_u32): Delete.
+ 	(__arm_vadcq_s32): Delete.
+ 	(__arm_vadcq_u32): Delete.
+ 	(__arm_vadcq_m_s32): Delete.
+ 	(__arm_vadcq_m_u32): Delete.
+ 	(__arm_vadcq): Delete.
+ 	(__arm_vadcq_m): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): New.
+ 	(vadciq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vadciq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vadciq): New.
+ 	* config/arm/arm_mve.h (vadciq): Delete.
+ 	(vadciq_m): Delete.
+ 	(vadciq_s32): Delete.
+ 	(vadciq_u32): Delete.
+ 	(vadciq_m_s32): Delete.
+ 	(vadciq_m_u32): Delete.
+ 	(__arm_vadciq_s32): Delete.
+ 	(__arm_vadciq_u32): Delete.
+ 	(__arm_vadciq_m_s32): Delete.
+ 	(__arm_vadciq_m_u32): Delete.
+ 	(__arm_vadciq): Delete.
+ 	(__arm_vadciq_m): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VADCIQ_M_S, VADCIQ_M_U,
+ 	VADCIQ_U, VADCIQ_S, VADCQ_M_S, VADCQ_M_U, VADCQ_S, VADCQ_U,
+ 	VSBCIQ_M_S, VSBCIQ_M_U, VSBCIQ_S, VSBCIQ_U, VSBCQ_M_S, VSBCQ_M_U,
+ 	VSBCQ_S, VSBCQ_U.
+ 	(VADCIQ, VSBCIQ): Merge into ...
+ 	(VxCIQ): ... this.
+ 	(VADCIQ_M, VSBCIQ_M): Merge into ...
+ 	(VxCIQ_M): ... this.
+ 	(VSBCQ, VADCQ): Merge into ...
+ 	(VxCQ): ... this.
+ 	(VSBCQ_M, VADCQ_M): Merge into ...
+ 	(VxCQ_M): ... this.
+ 	* config/arm/mve.md
+ 	(mve_vadciq_<supf>v4si, mve_vsbciq_<supf>v4si): Merge into ...
+ 	(@mve_<mve_insn>q_<supf>v4si): ... this.
+ 	(mve_vadciq_m_<supf>v4si, mve_vsbciq_m_<supf>v4si): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf>v4si): ... this.
+ 	(mve_vadcq_<supf>v4si, mve_vsbcq_<supf>v4si): Merge into ...
+ 	(@mve_<mve_insn>q_<supf>v4si): ... this.
+ 	(mve_vadcq_m_<supf>v4si, mve_vsbcq_m_<supf>v4si): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf>v4si): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <chrirstophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vadc_vsbc): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vadc_vsbc): New.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc
+ 	(arm_ternop_unone_none_unone_imm_qualifiers)
+ 	(-arm_ternop_none_none_unone_imm_qualifiers): Delete.
+ 	* config/arm/arm_mve_builtins.def (vshlcq_m_vec_s)
+ 	(vshlcq_m_carry_s, vshlcq_m_vec_u, vshlcq_m_carry_u): Delete.
+ 	* config/arm/mve.md (mve_vshlcq_vec_<supf><mode>): Delete.
+ 	(mve_vshlcq_carry_<supf><mode>): Delete.
+ 	(mve_vshlcq_m_vec_<supf><mode>): Delete.
+ 	(mve_vshlcq_m_carry_<supf><mode>): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vshlc_impl): New.
+ 	(vshlc): New.
+ 	* config/arm/arm-mve-builtins-base.def (vshlcq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vshlcq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vshlc.
+ 	* config/arm/arm_mve.h (vshlcq): Delete.
+ 	(vshlcq_m): Delete.
+ 	(vshlcq_s8): Delete.
+ 	(vshlcq_u8): Delete.
+ 	(vshlcq_s16): Delete.
+ 	(vshlcq_u16): Delete.
+ 	(vshlcq_s32): Delete.
+ 	(vshlcq_u32): Delete.
+ 	(vshlcq_m_s8): Delete.
+ 	(vshlcq_m_u8): Delete.
+ 	(vshlcq_m_s16): Delete.
+ 	(vshlcq_m_u16): Delete.
+ 	(vshlcq_m_s32): Delete.
+ 	(vshlcq_m_u32): Delete.
+ 	(__arm_vshlcq_s8): Delete.
+ 	(__arm_vshlcq_u8): Delete.
+ 	(__arm_vshlcq_s16): Delete.
+ 	(__arm_vshlcq_u16): Delete.
+ 	(__arm_vshlcq_s32): Delete.
+ 	(__arm_vshlcq_u32): Delete.
+ 	(__arm_vshlcq_m_s8): Delete.
+ 	(__arm_vshlcq_m_u8): Delete.
+ 	(__arm_vshlcq_m_s16): Delete.
+ 	(__arm_vshlcq_m_u16): Delete.
+ 	(__arm_vshlcq_m_s32): Delete.
+ 	(__arm_vshlcq_m_u32): Delete.
+ 	(__arm_vshlcq): Delete.
+ 	(__arm_vshlcq_m): Delete.
+ 	* config/arm/mve.md (mve_vshlcq_<supf><mode>): Add '@' prefix.
+ 	(mve_vshlcq_m_<supf><mode>): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <chrirstophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vshlc): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vshlc): New.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc
+ 	(arm_quinop_unone_unone_unone_unone_imm_pred_qualifiers): Delete.
+ 	* config/arm/arm_mve_builtins.def (viwdupq_wb_u, vdwdupq_wb_u)
+ 	(viwdupq_m_wb_u, vdwdupq_m_wb_u, viwdupq_m_n_u, vdwdupq_m_n_u)
+ 	(vdwdupq_n_u, viwdupq_n_u): Delete.
+ 	* config/arm/mve.md (mve_vdwdupq_n_u<mode>): Delete.
+ 	(mve_vdwdupq_wb_u<mode>): Delete.
+ 	(mve_vdwdupq_m_n_u<mode>): Delete.
+ 	(mve_vdwdupq_m_wb_u<mode>): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (viddup_impl): Add support
+ 	for wrapping versions.
+ 	(vdwdupq): New.
+ 	(viwdupq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vdwdupq): New.
+ 	(viwdupq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vdwdupq): New.
+ 	(viwdupq): New.
+ 	* config/arm/arm_mve.h (vdwdupq_m): Delete.
+ 	(vdwdupq_u8): Delete.
+ 	(vdwdupq_u32): Delete.
+ 	(vdwdupq_u16): Delete.
+ 	(viwdupq_m): Delete.
+ 	(viwdupq_u8): Delete.
+ 	(viwdupq_u32): Delete.
+ 	(viwdupq_u16): Delete.
+ 	(vdwdupq_x_u8): Delete.
+ 	(vdwdupq_x_u16): Delete.
+ 	(vdwdupq_x_u32): Delete.
+ 	(viwdupq_x_u8): Delete.
+ 	(viwdupq_x_u16): Delete.
+ 	(viwdupq_x_u32): Delete.
+ 	(vdwdupq_m_n_u8): Delete.
+ 	(vdwdupq_m_n_u32): Delete.
+ 	(vdwdupq_m_n_u16): Delete.
+ 	(vdwdupq_m_wb_u8): Delete.
+ 	(vdwdupq_m_wb_u32): Delete.
+ 	(vdwdupq_m_wb_u16): Delete.
+ 	(vdwdupq_n_u8): Delete.
+ 	(vdwdupq_n_u32): Delete.
+ 	(vdwdupq_n_u16): Delete.
+ 	(vdwdupq_wb_u8): Delete.
+ 	(vdwdupq_wb_u32): Delete.
+ 	(vdwdupq_wb_u16): Delete.
+ 	(viwdupq_m_n_u8): Delete.
+ 	(viwdupq_m_n_u32): Delete.
+ 	(viwdupq_m_n_u16): Delete.
+ 	(viwdupq_m_wb_u8): Delete.
+ 	(viwdupq_m_wb_u32): Delete.
+ 	(viwdupq_m_wb_u16): Delete.
+ 	(viwdupq_n_u8): Delete.
+ 	(viwdupq_n_u32): Delete.
+ 	(viwdupq_n_u16): Delete.
+ 	(viwdupq_wb_u8): Delete.
+ 	(viwdupq_wb_u32): Delete.
+ 	(viwdupq_wb_u16): Delete.
+ 	(vdwdupq_x_n_u8): Delete.
+ 	(vdwdupq_x_n_u16): Delete.
+ 	(vdwdupq_x_n_u32): Delete.
+ 	(vdwdupq_x_wb_u8): Delete.
+ 	(vdwdupq_x_wb_u16): Delete.
+ 	(vdwdupq_x_wb_u32): Delete.
+ 	(viwdupq_x_n_u8): Delete.
+ 	(viwdupq_x_n_u16): Delete.
+ 	(viwdupq_x_n_u32): Delete.
+ 	(viwdupq_x_wb_u8): Delete.
+ 	(viwdupq_x_wb_u16): Delete.
+ 	(viwdupq_x_wb_u32): Delete.
+ 	(__arm_vdwdupq_m_n_u8): Delete.
+ 	(__arm_vdwdupq_m_n_u32): Delete.
+ 	(__arm_vdwdupq_m_n_u16): Delete.
+ 	(__arm_vdwdupq_m_wb_u8): Delete.
+ 	(__arm_vdwdupq_m_wb_u32): Delete.
+ 	(__arm_vdwdupq_m_wb_u16): Delete.
+ 	(__arm_vdwdupq_n_u8): Delete.
+ 	(__arm_vdwdupq_n_u32): Delete.
+ 	(__arm_vdwdupq_n_u16): Delete.
+ 	(__arm_vdwdupq_wb_u8): Delete.
+ 	(__arm_vdwdupq_wb_u32): Delete.
+ 	(__arm_vdwdupq_wb_u16): Delete.
+ 	(__arm_viwdupq_m_n_u8): Delete.
+ 	(__arm_viwdupq_m_n_u32): Delete.
+ 	(__arm_viwdupq_m_n_u16): Delete.
+ 	(__arm_viwdupq_m_wb_u8): Delete.
+ 	(__arm_viwdupq_m_wb_u32): Delete.
+ 	(__arm_viwdupq_m_wb_u16): Delete.
+ 	(__arm_viwdupq_n_u8): Delete.
+ 	(__arm_viwdupq_n_u32): Delete.
+ 	(__arm_viwdupq_n_u16): Delete.
+ 	(__arm_viwdupq_wb_u8): Delete.
+ 	(__arm_viwdupq_wb_u32): Delete.
+ 	(__arm_viwdupq_wb_u16): Delete.
+ 	(__arm_vdwdupq_x_n_u8): Delete.
+ 	(__arm_vdwdupq_x_n_u16): Delete.
+ 	(__arm_vdwdupq_x_n_u32): Delete.
+ 	(__arm_vdwdupq_x_wb_u8): Delete.
+ 	(__arm_vdwdupq_x_wb_u16): Delete.
+ 	(__arm_vdwdupq_x_wb_u32): Delete.
+ 	(__arm_viwdupq_x_n_u8): Delete.
+ 	(__arm_viwdupq_x_n_u16): Delete.
+ 	(__arm_viwdupq_x_n_u32): Delete.
+ 	(__arm_viwdupq_x_wb_u8): Delete.
+ 	(__arm_viwdupq_x_wb_u16): Delete.
+ 	(__arm_viwdupq_x_wb_u32): Delete.
+ 	(__arm_vdwdupq_m): Delete.
+ 	(__arm_vdwdupq_u8): Delete.
+ 	(__arm_vdwdupq_u32): Delete.
+ 	(__arm_vdwdupq_u16): Delete.
+ 	(__arm_viwdupq_m): Delete.
+ 	(__arm_viwdupq_u8): Delete.
+ 	(__arm_viwdupq_u32): Delete.
+ 	(__arm_viwdupq_u16): Delete.
+ 	(__arm_vdwdupq_x_u8): Delete.
+ 	(__arm_vdwdupq_x_u16): Delete.
+ 	(__arm_vdwdupq_x_u32): Delete.
+ 	(__arm_viwdupq_x_u8): Delete.
+ 	(__arm_viwdupq_x_u16): Delete.
+ 	(__arm_viwdupq_x_u32): Delete.
+ 	* config/arm/mve.md (@mve_<mve_insn>q_m_wb_u<mode>_insn): Swap
+ 	operands 1 and 2.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vidwdup): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vidwdup): New.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VIWDUPQ, VDWDUPQ,
+ 	VIWDUPQ_M, VDWDUPQ_M.
+ 	(VIDWDUPQ): New iterator.
+ 	(VIDWDUPQ_M): New iterator.
+ 	* config/arm/mve.md (mve_vdwdupq_wb_u<mode>_insn)
+ 	(mve_viwdupq_wb_u<mode>_insn): Merge into ...
+ 	(@mve_<mve_insn>q_wb_u<mode>_insn): ... this. Add missing
+ 	mve_unpredicated_insn and mve_move attributes.
+ 	(mve_vdwdupq_m_wb_u<mode>_insn, mve_viwdupq_m_wb_u<mode>_insn):
+ 	Merge into ...
+ 	(@mve_<mve_insn>q_m_wb_u<mode>_insn): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): Fix
+ 	check of scalar argument.
+ 	(binary_acca_int64): Likewise.
+ 	(binary_lshift_unsigned): Likewise.
+ 	(binary_rshift_narrow): Likewise.
+ 	(binary_rshift_narrow_unsigned): Likewise.
+ 	(ternary_lshift): Likewise.
+ 	(ternary_rshift): Likewise.
+ 	(unary_int32_acc): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_mve_builtins.def (vddupq_n_u, vidupq_n_u)
+ 	(vddupq_m_n_u, vidupq_m_n_u): Delete.
+ 	* config/arm/mve.md (mve_vidupq_n_u<mode>, mve_vidupq_m_n_u<mode>)
+ 	(mve_vddupq_n_u<mode>, mve_vddupq_m_n_u<mode>): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class viddup_impl): New.
+ 	(vddup): New.
+ 	(vidup): New.
+ 	* config/arm/arm-mve-builtins-base.def (vddupq): New.
+ 	(vidupq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vddupq): New.
+ 	(vidupq): New.
+ 	* config/arm/arm_mve.h (vddupq_m): Delete.
+ 	(vddupq_u8): Delete.
+ 	(vddupq_u32): Delete.
+ 	(vddupq_u16): Delete.
+ 	(vidupq_m): Delete.
+ 	(vidupq_u8): Delete.
+ 	(vidupq_u32): Delete.
+ 	(vidupq_u16): Delete.
+ 	(vddupq_x_u8): Delete.
+ 	(vddupq_x_u16): Delete.
+ 	(vddupq_x_u32): Delete.
+ 	(vidupq_x_u8): Delete.
+ 	(vidupq_x_u16): Delete.
+ 	(vidupq_x_u32): Delete.
+ 	(vddupq_m_n_u8): Delete.
+ 	(vddupq_m_n_u32): Delete.
+ 	(vddupq_m_n_u16): Delete.
+ 	(vddupq_m_wb_u8): Delete.
+ 	(vddupq_m_wb_u16): Delete.
+ 	(vddupq_m_wb_u32): Delete.
+ 	(vddupq_n_u8): Delete.
+ 	(vddupq_n_u32): Delete.
+ 	(vddupq_n_u16): Delete.
+ 	(vddupq_wb_u8): Delete.
+ 	(vddupq_wb_u16): Delete.
+ 	(vddupq_wb_u32): Delete.
+ 	(vidupq_m_n_u8): Delete.
+ 	(vidupq_m_n_u32): Delete.
+ 	(vidupq_m_n_u16): Delete.
+ 	(vidupq_m_wb_u8): Delete.
+ 	(vidupq_m_wb_u16): Delete.
+ 	(vidupq_m_wb_u32): Delete.
+ 	(vidupq_n_u8): Delete.
+ 	(vidupq_n_u32): Delete.
+ 	(vidupq_n_u16): Delete.
+ 	(vidupq_wb_u8): Delete.
+ 	(vidupq_wb_u16): Delete.
+ 	(vidupq_wb_u32): Delete.
+ 	(vddupq_x_n_u8): Delete.
+ 	(vddupq_x_n_u16): Delete.
+ 	(vddupq_x_n_u32): Delete.
+ 	(vddupq_x_wb_u8): Delete.
+ 	(vddupq_x_wb_u16): Delete.
+ 	(vddupq_x_wb_u32): Delete.
+ 	(vidupq_x_n_u8): Delete.
+ 	(vidupq_x_n_u16): Delete.
+ 	(vidupq_x_n_u32): Delete.
+ 	(vidupq_x_wb_u8): Delete.
+ 	(vidupq_x_wb_u16): Delete.
+ 	(vidupq_x_wb_u32): Delete.
+ 	(__arm_vddupq_m_n_u8): Delete.
+ 	(__arm_vddupq_m_n_u32): Delete.
+ 	(__arm_vddupq_m_n_u16): Delete.
+ 	(__arm_vddupq_m_wb_u8): Delete.
+ 	(__arm_vddupq_m_wb_u16): Delete.
+ 	(__arm_vddupq_m_wb_u32): Delete.
+ 	(__arm_vddupq_n_u8): Delete.
+ 	(__arm_vddupq_n_u32): Delete.
+ 	(__arm_vddupq_n_u16): Delete.
+ 	(__arm_vidupq_m_n_u8): Delete.
+ 	(__arm_vidupq_m_n_u32): Delete.
+ 	(__arm_vidupq_m_n_u16): Delete.
+ 	(__arm_vidupq_n_u8): Delete.
+ 	(__arm_vidupq_m_wb_u8): Delete.
+ 	(__arm_vidupq_m_wb_u16): Delete.
+ 	(__arm_vidupq_m_wb_u32): Delete.
+ 	(__arm_vidupq_n_u32): Delete.
+ 	(__arm_vidupq_n_u16): Delete.
+ 	(__arm_vidupq_wb_u8): Delete.
+ 	(__arm_vidupq_wb_u16): Delete.
+ 	(__arm_vidupq_wb_u32): Delete.
+ 	(__arm_vddupq_wb_u8): Delete.
+ 	(__arm_vddupq_wb_u16): Delete.
+ 	(__arm_vddupq_wb_u32): Delete.
+ 	(__arm_vddupq_x_n_u8): Delete.
+ 	(__arm_vddupq_x_n_u16): Delete.
+ 	(__arm_vddupq_x_n_u32): Delete.
+ 	(__arm_vddupq_x_wb_u8): Delete.
+ 	(__arm_vddupq_x_wb_u16): Delete.
+ 	(__arm_vddupq_x_wb_u32): Delete.
+ 	(__arm_vidupq_x_n_u8): Delete.
+ 	(__arm_vidupq_x_n_u16): Delete.
+ 	(__arm_vidupq_x_n_u32): Delete.
+ 	(__arm_vidupq_x_wb_u8): Delete.
+ 	(__arm_vidupq_x_wb_u16): Delete.
+ 	(__arm_vidupq_x_wb_u32): Delete.
+ 	(__arm_vddupq_m): Delete.
+ 	(__arm_vddupq_u8): Delete.
+ 	(__arm_vddupq_u32): Delete.
+ 	(__arm_vddupq_u16): Delete.
+ 	(__arm_vidupq_m): Delete.
+ 	(__arm_vidupq_u8): Delete.
+ 	(__arm_vidupq_u32): Delete.
+ 	(__arm_vidupq_u16): Delete.
+ 	(__arm_vddupq_x_u8): Delete.
+ 	(__arm_vddupq_x_u16): Delete.
+ 	(__arm_vddupq_x_u32): Delete.
+ 	(__arm_vidupq_x_u8): Delete.
+ 	(__arm_vidupq_x_u16): Delete.
+ 	(__arm_vidupq_x_u32): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (viddup): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (viddup): New.
+ 	* config/arm/arm-mve-builtins.cc (report_not_one_of): New.
+ 	(function_checker::require_immediate_one_of): New.
+ 	* config/arm/arm-mve-builtins.def (wb): New mode.
+ 	* config/arm/arm-mve-builtins.h (function_checker) Add
+ 	require_immediate_one_of.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VIDUPQ, VDDUPQ,
+ 	VIDUPQ_M, VDDUPQ_M.
+ 	(viddupq_op): New.
+ 	(viddupq_m_op): New.
+ 	(VIDDUPQ): New.
+ 	(VIDDUPQ_M): New.
+ 	* config/arm/mve.md (mve_vddupq_u<mode>_insn)
+ 	(mve_vidupq_u<mode>_insn): Merge into ...
+ 	(mve_<mve_insn>q_u<mode>_insn): ... this.
+ 	(mve_vddupq_m_wb_u<mode>_insn, mve_vidupq_m_wb_u<mode>_insn):
+ 	Merge into ...
+ 	(mve_<mve_insn>q_m_wb_u<mode>_insn): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vctpq_impl): New.
+ 	(vctp16q): New.
+ 	(vctp32q): New.
+ 	(vctp64q): New.
+ 	(vctp8q): New.
+ 	* config/arm/arm-mve-builtins-base.def (vctp16q): New.
+ 	(vctp32q): New.
+ 	(vctp64q): New.
+ 	(vctp8q): New.
+ 	* config/arm/arm-mve-builtins-base.h (vctp16q): New.
+ 	(vctp32q): New.
+ 	(vctp64q): New.
+ 	(vctp8q): New.
+ 	* config/arm/arm-mve-builtins-shapes.cc (vctp): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vctp): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Add support for vctp.
+ 	* config/arm/arm_mve.h (vctp16q): Delete.
+ 	(vctp32q): Delete.
+ 	(vctp64q): Delete.
+ 	(vctp8q): Delete.
+ 	(vctp8q_m): Delete.
+ 	(vctp64q_m): Delete.
+ 	(vctp32q_m): Delete.
+ 	(vctp16q_m): Delete.
+ 	(__arm_vctp16q): Delete.
+ 	(__arm_vctp32q): Delete.
+ 	(__arm_vctp64q): Delete.
+ 	(__arm_vctp8q): Delete.
+ 	(__arm_vctp8q_m): Delete.
+ 	(__arm_vctp64q_m): Delete.
+ 	(__arm_vctp32q_m): Delete.
+ 	(__arm_vctp16q_m): Delete.
+ 	* config/arm/mve.md (mve_vctp<MVE_vctp>q<MVE_vpred>): Add '@'
+ 	prefix.
+ 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vornq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vornq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vornq): New.
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_based_mve_function_exact_insn_vorn): New.
+ 	* config/arm/arm_mve.h (vornq): Delete.
+ 	(vornq_m): Delete.
+ 	(vornq_x): Delete.
+ 	(vornq_u8): Delete.
+ 	(vornq_s8): Delete.
+ 	(vornq_u16): Delete.
+ 	(vornq_s16): Delete.
+ 	(vornq_u32): Delete.
+ 	(vornq_s32): Delete.
+ 	(vornq_f16): Delete.
+ 	(vornq_f32): Delete.
+ 	(vornq_m_s8): Delete.
+ 	(vornq_m_s32): Delete.
+ 	(vornq_m_s16): Delete.
+ 	(vornq_m_u8): Delete.
+ 	(vornq_m_u32): Delete.
+ 	(vornq_m_u16): Delete.
+ 	(vornq_m_f32): Delete.
+ 	(vornq_m_f16): Delete.
+ 	(vornq_x_s8): Delete.
+ 	(vornq_x_s16): Delete.
+ 	(vornq_x_s32): Delete.
+ 	(vornq_x_u8): Delete.
+ 	(vornq_x_u16): Delete.
+ 	(vornq_x_u32): Delete.
+ 	(vornq_x_f16): Delete.
+ 	(vornq_x_f32): Delete.
+ 	(__arm_vornq_u8): Delete.
+ 	(__arm_vornq_s8): Delete.
+ 	(__arm_vornq_u16): Delete.
+ 	(__arm_vornq_s16): Delete.
+ 	(__arm_vornq_u32): Delete.
+ 	(__arm_vornq_s32): Delete.
+ 	(__arm_vornq_m_s8): Delete.
+ 	(__arm_vornq_m_s32): Delete.
+ 	(__arm_vornq_m_s16): Delete.
+ 	(__arm_vornq_m_u8): Delete.
+ 	(__arm_vornq_m_u32): Delete.
+ 	(__arm_vornq_m_u16): Delete.
+ 	(__arm_vornq_x_s8): Delete.
+ 	(__arm_vornq_x_s16): Delete.
+ 	(__arm_vornq_x_s32): Delete.
+ 	(__arm_vornq_x_u8): Delete.
+ 	(__arm_vornq_x_u16): Delete.
+ 	(__arm_vornq_x_u32): Delete.
+ 	(__arm_vornq_f16): Delete.
+ 	(__arm_vornq_f32): Delete.
+ 	(__arm_vornq_m_f32): Delete.
+ 	(__arm_vornq_m_f16): Delete.
+ 	(__arm_vornq_x_f16): Delete.
+ 	(__arm_vornq_x_f32): Delete.
+ 	(__arm_vornq): Delete.
+ 	(__arm_vornq_m): Delete.
+ 	(__arm_vornq_x): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC): Add VORNQ_M_S,
+ 	VORNQ_M_U.
+ 	(MVE_FP_M_BINARY_LOGIC): Add VORNQ_M_F.
+ 	(mve_insn): Add VORNQ_M_S, VORNQ_M_U, VORNQ_M_F.
+ 	* config/arm/mve.md (mve_vornq_s<mode>): Rename into ...
+ 	(@mve_vornq_s<mode>): ... this.
+ 	(mve_vornq_u<mode>): Rename into ...
+ 	(@mve_vornq_u<mode>): ... this.
+ 	(mve_vornq_f<mode>): Rename into ...
+ 	(@mve_vornq_f<mode>): ... this.
+ 	(mve_vornq_m_<supf><mode>): Merge into vand/vbic pattern.
+ 	(mve_vornq_m_f<mode>): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vbicq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vbicq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vbicq): New.
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_based_mve_function_exact_insn_vbic): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Add support for vbicq.
+ 	* config/arm/arm_mve.h (vbicq): Delete.
+ 	(vbicq_m_n): Delete.
+ 	(vbicq_m): Delete.
+ 	(vbicq_x): Delete.
+ 	(vbicq_u8): Delete.
+ 	(vbicq_s8): Delete.
+ 	(vbicq_u16): Delete.
+ 	(vbicq_s16): Delete.
+ 	(vbicq_u32): Delete.
+ 	(vbicq_s32): Delete.
+ 	(vbicq_n_u16): Delete.
+ 	(vbicq_f16): Delete.
+ 	(vbicq_n_s16): Delete.
+ 	(vbicq_n_u32): Delete.
+ 	(vbicq_f32): Delete.
+ 	(vbicq_n_s32): Delete.
+ 	(vbicq_m_n_s16): Delete.
+ 	(vbicq_m_n_s32): Delete.
+ 	(vbicq_m_n_u16): Delete.
+ 	(vbicq_m_n_u32): Delete.
+ 	(vbicq_m_s8): Delete.
+ 	(vbicq_m_s32): Delete.
+ 	(vbicq_m_s16): Delete.
+ 	(vbicq_m_u8): Delete.
+ 	(vbicq_m_u32): Delete.
+ 	(vbicq_m_u16): Delete.
+ 	(vbicq_m_f32): Delete.
+ 	(vbicq_m_f16): Delete.
+ 	(vbicq_x_s8): Delete.
+ 	(vbicq_x_s16): Delete.
+ 	(vbicq_x_s32): Delete.
+ 	(vbicq_x_u8): Delete.
+ 	(vbicq_x_u16): Delete.
+ 	(vbicq_x_u32): Delete.
+ 	(vbicq_x_f16): Delete.
+ 	(vbicq_x_f32): Delete.
+ 	(__arm_vbicq_u8): Delete.
+ 	(__arm_vbicq_s8): Delete.
+ 	(__arm_vbicq_u16): Delete.
+ 	(__arm_vbicq_s16): Delete.
+ 	(__arm_vbicq_u32): Delete.
+ 	(__arm_vbicq_s32): Delete.
+ 	(__arm_vbicq_n_u16): Delete.
+ 	(__arm_vbicq_n_s16): Delete.
+ 	(__arm_vbicq_n_u32): Delete.
+ 	(__arm_vbicq_n_s32): Delete.
+ 	(__arm_vbicq_m_n_s16): Delete.
+ 	(__arm_vbicq_m_n_s32): Delete.
+ 	(__arm_vbicq_m_n_u16): Delete.
+ 	(__arm_vbicq_m_n_u32): Delete.
+ 	(__arm_vbicq_m_s8): Delete.
+ 	(__arm_vbicq_m_s32): Delete.
+ 	(__arm_vbicq_m_s16): Delete.
+ 	(__arm_vbicq_m_u8): Delete.
+ 	(__arm_vbicq_m_u32): Delete.
+ 	(__arm_vbicq_m_u16): Delete.
+ 	(__arm_vbicq_x_s8): Delete.
+ 	(__arm_vbicq_x_s16): Delete.
+ 	(__arm_vbicq_x_s32): Delete.
+ 	(__arm_vbicq_x_u8): Delete.
+ 	(__arm_vbicq_x_u16): Delete.
+ 	(__arm_vbicq_x_u32): Delete.
+ 	(__arm_vbicq_f16): Delete.
+ 	(__arm_vbicq_f32): Delete.
+ 	(__arm_vbicq_m_f32): Delete.
+ 	(__arm_vbicq_m_f16): Delete.
+ 	(__arm_vbicq_x_f16): Delete.
+ 	(__arm_vbicq_x_f32): Delete.
+ 	(__arm_vbicq): Delete.
+ 	(__arm_vbicq_m_n): Delete.
+ 	(__arm_vbicq_m): Delete.
+ 	(__arm_vbicq_x): Delete.
+ 	* config/arm/mve.md (mve_vbicq_u<mode>): Rename into ...
+ 	(@mve_vbicq_u<mode>): ... this.
+ 	(mve_vbicq_s<mode>): Rename into ...
+ 	(@mve_vbicq_s<mode>): ... this.
+ 	(mve_vbicq_f<mode>): Rename into ...
+ 	(@mve_vbicq_f<mode>): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vcvtaq): New.
+ 	(vcvtmq): New.
+ 	(vcvtnq): New.
+ 	(vcvtpq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcvtaq): New.
+ 	(vcvtmq): New.
+ 	(vcvtnq): New.
+ 	(vcvtpq): New.
+ 	* config/arm/arm-mve-builtins-base.h: (vcvtaq): New.
+ 	(vcvtmq): New.
+ 	(vcvtnq): New.
+ 	(vcvtpq): New.
+ 	* config/arm/arm-mve-builtins.cc (cvtx): New type.
+ 	* config/arm/arm_mve.h (vcvtaq_m): Delete.
+ 	(vcvtmq_m): Delete.
+ 	(vcvtnq_m): Delete.
+ 	(vcvtpq_m): Delete.
+ 	(vcvtaq_s16_f16): Delete.
+ 	(vcvtaq_s32_f32): Delete.
+ 	(vcvtnq_s16_f16): Delete.
+ 	(vcvtnq_s32_f32): Delete.
+ 	(vcvtpq_s16_f16): Delete.
+ 	(vcvtpq_s32_f32): Delete.
+ 	(vcvtmq_s16_f16): Delete.
+ 	(vcvtmq_s32_f32): Delete.
+ 	(vcvtpq_u16_f16): Delete.
+ 	(vcvtpq_u32_f32): Delete.
+ 	(vcvtnq_u16_f16): Delete.
+ 	(vcvtnq_u32_f32): Delete.
+ 	(vcvtmq_u16_f16): Delete.
+ 	(vcvtmq_u32_f32): Delete.
+ 	(vcvtaq_u16_f16): Delete.
+ 	(vcvtaq_u32_f32): Delete.
+ 	(vcvtaq_m_s16_f16): Delete.
+ 	(vcvtaq_m_u16_f16): Delete.
+ 	(vcvtaq_m_s32_f32): Delete.
+ 	(vcvtaq_m_u32_f32): Delete.
+ 	(vcvtmq_m_s16_f16): Delete.
+ 	(vcvtnq_m_s16_f16): Delete.
+ 	(vcvtpq_m_s16_f16): Delete.
+ 	(vcvtmq_m_u16_f16): Delete.
+ 	(vcvtnq_m_u16_f16): Delete.
+ 	(vcvtpq_m_u16_f16): Delete.
+ 	(vcvtmq_m_s32_f32): Delete.
+ 	(vcvtnq_m_s32_f32): Delete.
+ 	(vcvtpq_m_s32_f32): Delete.
+ 	(vcvtmq_m_u32_f32): Delete.
+ 	(vcvtnq_m_u32_f32): Delete.
+ 	(vcvtpq_m_u32_f32): Delete.
+ 	(vcvtaq_x_s16_f16): Delete.
+ 	(vcvtaq_x_s32_f32): Delete.
+ 	(vcvtaq_x_u16_f16): Delete.
+ 	(vcvtaq_x_u32_f32): Delete.
+ 	(vcvtnq_x_s16_f16): Delete.
+ 	(vcvtnq_x_s32_f32): Delete.
+ 	(vcvtnq_x_u16_f16): Delete.
+ 	(vcvtnq_x_u32_f32): Delete.
+ 	(vcvtpq_x_s16_f16): Delete.
+ 	(vcvtpq_x_s32_f32): Delete.
+ 	(vcvtpq_x_u16_f16): Delete.
+ 	(vcvtpq_x_u32_f32): Delete.
+ 	(vcvtmq_x_s16_f16): Delete.
+ 	(vcvtmq_x_s32_f32): Delete.
+ 	(vcvtmq_x_u16_f16): Delete.
+ 	(vcvtmq_x_u32_f32): Delete.
+ 	(__arm_vcvtpq_u16_f16): Delete.
+ 	(__arm_vcvtpq_u32_f32): Delete.
+ 	(__arm_vcvtnq_u16_f16): Delete.
+ 	(__arm_vcvtnq_u32_f32): Delete.
+ 	(__arm_vcvtmq_u16_f16): Delete.
+ 	(__arm_vcvtmq_u32_f32): Delete.
+ 	(__arm_vcvtaq_u16_f16): Delete.
+ 	(__arm_vcvtaq_u32_f32): Delete.
+ 	(__arm_vcvtaq_s16_f16): Delete.
+ 	(__arm_vcvtaq_s32_f32): Delete.
+ 	(__arm_vcvtnq_s16_f16): Delete.
+ 	(__arm_vcvtnq_s32_f32): Delete.
+ 	(__arm_vcvtpq_s16_f16): Delete.
+ 	(__arm_vcvtpq_s32_f32): Delete.
+ 	(__arm_vcvtmq_s16_f16): Delete.
+ 	(__arm_vcvtmq_s32_f32): Delete.
+ 	(__arm_vcvtaq_m_s16_f16): Delete.
+ 	(__arm_vcvtaq_m_u16_f16): Delete.
+ 	(__arm_vcvtaq_m_s32_f32): Delete.
+ 	(__arm_vcvtaq_m_u32_f32): Delete.
+ 	(__arm_vcvtmq_m_s16_f16): Delete.
+ 	(__arm_vcvtnq_m_s16_f16): Delete.
+ 	(__arm_vcvtpq_m_s16_f16): Delete.
+ 	(__arm_vcvtmq_m_u16_f16): Delete.
+ 	(__arm_vcvtnq_m_u16_f16): Delete.
+ 	(__arm_vcvtpq_m_u16_f16): Delete.
+ 	(__arm_vcvtmq_m_s32_f32): Delete.
+ 	(__arm_vcvtnq_m_s32_f32): Delete.
+ 	(__arm_vcvtpq_m_s32_f32): Delete.
+ 	(__arm_vcvtmq_m_u32_f32): Delete.
+ 	(__arm_vcvtnq_m_u32_f32): Delete.
+ 	(__arm_vcvtpq_m_u32_f32): Delete.
+ 	(__arm_vcvtaq_x_s16_f16): Delete.
+ 	(__arm_vcvtaq_x_s32_f32): Delete.
+ 	(__arm_vcvtaq_x_u16_f16): Delete.
+ 	(__arm_vcvtaq_x_u32_f32): Delete.
+ 	(__arm_vcvtnq_x_s16_f16): Delete.
+ 	(__arm_vcvtnq_x_s32_f32): Delete.
+ 	(__arm_vcvtnq_x_u16_f16): Delete.
+ 	(__arm_vcvtnq_x_u32_f32): Delete.
+ 	(__arm_vcvtpq_x_s16_f16): Delete.
+ 	(__arm_vcvtpq_x_s32_f32): Delete.
+ 	(__arm_vcvtpq_x_u16_f16): Delete.
+ 	(__arm_vcvtpq_x_u32_f32): Delete.
+ 	(__arm_vcvtmq_x_s16_f16): Delete.
+ 	(__arm_vcvtmq_x_s32_f32): Delete.
+ 	(__arm_vcvtmq_x_u16_f16): Delete.
+ 	(__arm_vcvtmq_x_u32_f32): Delete.
+ 	(__arm_vcvtaq_m): Delete.
+ 	(__arm_vcvtmq_m): Delete.
+ 	(__arm_vcvtnq_m): Delete.
+ 	(__arm_vcvtpq_m): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vcvtx): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vcvtx): New.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VCVTAQ_M_S, VCVTAQ_M_U,
+ 	VCVTAQ_S, VCVTAQ_U, VCVTMQ_M_S, VCVTMQ_M_U, VCVTMQ_S, VCVTMQ_U,
+ 	VCVTNQ_M_S, VCVTNQ_M_U, VCVTNQ_S, VCVTNQ_U, VCVTPQ_M_S,
+ 	VCVTPQ_M_U, VCVTPQ_S, VCVTPQ_U.
+ 	(VCVTAQ, VCVTPQ, VCVTNQ, VCVTMQ, VCVTAQ_M, VCVTMQ_M, VCVTNQ_M)
+ 	(VCVTPQ_M): Delete.
+ 	(VCVTxQ, VCVTxQ_M): New.
+ 	* config/arm/mve.md (mve_vcvtpq_<supf><mode>)
+ 	(mve_vcvtnq_<supf><mode>, mve_vcvtmq_<supf><mode>)
+ 	(mve_vcvtaq_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vcvtaq_m_<supf><mode>, mve_vcvtmq_m_<supf><mode>)
+ 	(mve_vcvtpq_m_<supf><mode>, mve_vcvtnq_m_<supf><mode>): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vcvtxq_impl): New.
+ 	(vcvtbq, vcvttq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcvtbq, vcvttq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vcvtbq, vcvttq): New.
+ 	* config/arm/arm-mve-builtins.cc (cvt_f16_f32, cvt_f32_f16): New
+ 	types.
+ 	(function_instance::has_inactive_argument): Support vcvtbq and
+ 	vcvttq.
+ 	* config/arm/arm_mve.h (vcvttq_f32): Delete.
+ 	(vcvtbq_f32): Delete.
+ 	(vcvtbq_m): Delete.
+ 	(vcvttq_m): Delete.
+ 	(vcvttq_f32_f16): Delete.
+ 	(vcvtbq_f32_f16): Delete.
+ 	(vcvttq_f16_f32): Delete.
+ 	(vcvtbq_f16_f32): Delete.
+ 	(vcvtbq_m_f16_f32): Delete.
+ 	(vcvtbq_m_f32_f16): Delete.
+ 	(vcvttq_m_f16_f32): Delete.
+ 	(vcvttq_m_f32_f16): Delete.
+ 	(vcvtbq_x_f32_f16): Delete.
+ 	(vcvttq_x_f32_f16): Delete.
+ 	(__arm_vcvttq_f32_f16): Delete.
+ 	(__arm_vcvtbq_f32_f16): Delete.
+ 	(__arm_vcvttq_f16_f32): Delete.
+ 	(__arm_vcvtbq_f16_f32): Delete.
+ 	(__arm_vcvtbq_m_f16_f32): Delete.
+ 	(__arm_vcvtbq_m_f32_f16): Delete.
+ 	(__arm_vcvttq_m_f16_f32): Delete.
+ 	(__arm_vcvttq_m_f32_f16): Delete.
+ 	(__arm_vcvtbq_x_f32_f16): Delete.
+ 	(__arm_vcvttq_x_f32_f16): Delete.
+ 	(__arm_vcvttq_f32): Delete.
+ 	(__arm_vcvtbq_f32): Delete.
+ 	(__arm_vcvtbq_m): Delete.
+ 	(__arm_vcvttq_m): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vcvt_f16_f32)
+ 	(vcvt_f32_f16): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vcvt_f16_f32)
+ 	(vcvt_f32_f16): New.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VCVTBQ_F16_F32,
+ 	VCVTTQ_F16_F32, VCVTBQ_F32_F16, VCVTTQ_F32_F16, VCVTBQ_M_F16_F32,
+ 	VCVTTQ_M_F16_F32, VCVTBQ_M_F32_F16, VCVTTQ_M_F32_F16.
+ 	(VCVTxQ_F16_F32): New iterator.
+ 	(VCVTxQ_F32_F16): Likewise.
+ 	(VCVTxQ_M_F16_F32): Likewise.
+ 	(VCVTxQ_M_F32_F16): Likewise.
+ 	* config/arm/mve.md (mve_vcvttq_f32_f16v4sf)
+ 	(mve_vcvtbq_f32_f16v4sf): Merge into ...
+ 	(@mve_<mve_insn>q_f32_f16v4sf): ... this.
+ 	(mve_vcvtbq_f16_f32v8hf, mve_vcvttq_f16_f32v8hf): Merge into ...
+ 	(@mve_<mve_insn>q_f16_f32v8hf): ... this.
+ 	(mve_vcvtbq_m_f16_f32v8hf, mve_vcvttq_m_f16_f32v8hf): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_m_f16_f32v8hf): ... this.
+ 	(mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f32_f16v4sf): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_m_f32_f16v4sf): ... this.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class vcvtq_impl): New.
+ 	(vcvtq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcvtq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vcvtq): New.
+ 	* config/arm/arm-mve-builtins.cc (cvt): New type.
+ 	* config/arm/arm_mve.h (vcvtq): Delete.
+ 	(vcvtq_n): Delete.
+ 	(vcvtq_m): Delete.
+ 	(vcvtq_m_n): Delete.
+ 	(vcvtq_x): Delete.
+ 	(vcvtq_x_n): Delete.
+ 	(vcvtq_f16_s16): Delete.
+ 	(vcvtq_f32_s32): Delete.
+ 	(vcvtq_f16_u16): Delete.
+ 	(vcvtq_f32_u32): Delete.
+ 	(vcvtq_s16_f16): Delete.
+ 	(vcvtq_s32_f32): Delete.
+ 	(vcvtq_u16_f16): Delete.
+ 	(vcvtq_u32_f32): Delete.
+ 	(vcvtq_n_f16_s16): Delete.
+ 	(vcvtq_n_f32_s32): Delete.
+ 	(vcvtq_n_f16_u16): Delete.
+ 	(vcvtq_n_f32_u32): Delete.
+ 	(vcvtq_n_s16_f16): Delete.
+ 	(vcvtq_n_s32_f32): Delete.
+ 	(vcvtq_n_u16_f16): Delete.
+ 	(vcvtq_n_u32_f32): Delete.
+ 	(vcvtq_m_f16_s16): Delete.
+ 	(vcvtq_m_f16_u16): Delete.
+ 	(vcvtq_m_f32_s32): Delete.
+ 	(vcvtq_m_f32_u32): Delete.
+ 	(vcvtq_m_s16_f16): Delete.
+ 	(vcvtq_m_u16_f16): Delete.
+ 	(vcvtq_m_s32_f32): Delete.
+ 	(vcvtq_m_u32_f32): Delete.
+ 	(vcvtq_m_n_f16_u16): Delete.
+ 	(vcvtq_m_n_f16_s16): Delete.
+ 	(vcvtq_m_n_f32_u32): Delete.
+ 	(vcvtq_m_n_f32_s32): Delete.
+ 	(vcvtq_m_n_s32_f32): Delete.
+ 	(vcvtq_m_n_s16_f16): Delete.
+ 	(vcvtq_m_n_u32_f32): Delete.
+ 	(vcvtq_m_n_u16_f16): Delete.
+ 	(vcvtq_x_f16_u16): Delete.
+ 	(vcvtq_x_f16_s16): Delete.
+ 	(vcvtq_x_f32_s32): Delete.
+ 	(vcvtq_x_f32_u32): Delete.
+ 	(vcvtq_x_n_f16_s16): Delete.
+ 	(vcvtq_x_n_f16_u16): Delete.
+ 	(vcvtq_x_n_f32_s32): Delete.
+ 	(vcvtq_x_n_f32_u32): Delete.
+ 	(vcvtq_x_s16_f16): Delete.
+ 	(vcvtq_x_s32_f32): Delete.
+ 	(vcvtq_x_u16_f16): Delete.
+ 	(vcvtq_x_u32_f32): Delete.
+ 	(vcvtq_x_n_s16_f16): Delete.
+ 	(vcvtq_x_n_s32_f32): Delete.
+ 	(vcvtq_x_n_u16_f16): Delete.
+ 	(vcvtq_x_n_u32_f32): Delete.
+ 	(__arm_vcvtq_f16_s16): Delete.
+ 	(__arm_vcvtq_f32_s32): Delete.
+ 	(__arm_vcvtq_f16_u16): Delete.
+ 	(__arm_vcvtq_f32_u32): Delete.
+ 	(__arm_vcvtq_s16_f16): Delete.
+ 	(__arm_vcvtq_s32_f32): Delete.
+ 	(__arm_vcvtq_u16_f16): Delete.
+ 	(__arm_vcvtq_u32_f32): Delete.
+ 	(__arm_vcvtq_n_f16_s16): Delete.
+ 	(__arm_vcvtq_n_f32_s32): Delete.
+ 	(__arm_vcvtq_n_f16_u16): Delete.
+ 	(__arm_vcvtq_n_f32_u32): Delete.
+ 	(__arm_vcvtq_n_s16_f16): Delete.
+ 	(__arm_vcvtq_n_s32_f32): Delete.
+ 	(__arm_vcvtq_n_u16_f16): Delete.
+ 	(__arm_vcvtq_n_u32_f32): Delete.
+ 	(__arm_vcvtq_m_f16_s16): Delete.
+ 	(__arm_vcvtq_m_f16_u16): Delete.
+ 	(__arm_vcvtq_m_f32_s32): Delete.
+ 	(__arm_vcvtq_m_f32_u32): Delete.
+ 	(__arm_vcvtq_m_s16_f16): Delete.
+ 	(__arm_vcvtq_m_u16_f16): Delete.
+ 	(__arm_vcvtq_m_s32_f32): Delete.
+ 	(__arm_vcvtq_m_u32_f32): Delete.
+ 	(__arm_vcvtq_m_n_f16_u16): Delete.
+ 	(__arm_vcvtq_m_n_f16_s16): Delete.
+ 	(__arm_vcvtq_m_n_f32_u32): Delete.
+ 	(__arm_vcvtq_m_n_f32_s32): Delete.
+ 	(__arm_vcvtq_m_n_s32_f32): Delete.
+ 	(__arm_vcvtq_m_n_s16_f16): Delete.
+ 	(__arm_vcvtq_m_n_u32_f32): Delete.
+ 	(__arm_vcvtq_m_n_u16_f16): Delete.
+ 	(__arm_vcvtq_x_f16_u16): Delete.
+ 	(__arm_vcvtq_x_f16_s16): Delete.
+ 	(__arm_vcvtq_x_f32_s32): Delete.
+ 	(__arm_vcvtq_x_f32_u32): Delete.
+ 	(__arm_vcvtq_x_n_f16_s16): Delete.
+ 	(__arm_vcvtq_x_n_f16_u16): Delete.
+ 	(__arm_vcvtq_x_n_f32_s32): Delete.
+ 	(__arm_vcvtq_x_n_f32_u32): Delete.
+ 	(__arm_vcvtq_x_s16_f16): Delete.
+ 	(__arm_vcvtq_x_s32_f32): Delete.
+ 	(__arm_vcvtq_x_u16_f16): Delete.
+ 	(__arm_vcvtq_x_u32_f32): Delete.
+ 	(__arm_vcvtq_x_n_s16_f16): Delete.
+ 	(__arm_vcvtq_x_n_s32_f32): Delete.
+ 	(__arm_vcvtq_x_n_u16_f16): Delete.
+ 	(__arm_vcvtq_x_n_u32_f32): Delete.
+ 	(__arm_vcvtq): Delete.
+ 	(__arm_vcvtq_n): Delete.
+ 	(__arm_vcvtq_m): Delete.
+ 	(__arm_vcvtq_m_n): Delete.
+ 	(__arm_vcvtq_x): Delete.
+ 	(__arm_vcvtq_x_n): Delete.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc
+ 	(nonoverloaded_base::explicit_type_suffix_p): Add unused
+ 	type_suffix_info parameter.
+ 	(overloaded_base::explicit_type_suffix_p): Likewise.
+ 	(unary_n_def::explicit_type_suffix_p): Likewise.
+ 	(vcvt): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vcvt): New.
+ 	* config/arm/arm-mve-builtins.cc (function_builder::get_name): Add
+ 	new type_suffix parameter.
+ 	(function_builder::add_overloaded_functions): Likewise.
+ 	* config/arm/arm-mve-builtins.h
+ 	(function_shape::explicit_type_suffix_p): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add VCVTQ_FROM_F_S,
+ 	VCVTQ_FROM_F_U, VCVTQ_M_FROM_F_S, VCVTQ_M_FROM_F_U,
+ 	VCVTQ_M_N_FROM_F_S, VCVTQ_M_N_FROM_F_U, VCVTQ_M_N_TO_F_S,
+ 	VCVTQ_M_N_TO_F_U, VCVTQ_M_TO_F_S, VCVTQ_M_TO_F_U,
+ 	VCVTQ_N_FROM_F_S, VCVTQ_N_FROM_F_U, VCVTQ_N_TO_F_S,
+ 	VCVTQ_N_TO_F_U, VCVTQ_TO_F_S, VCVTQ_TO_F_U.
+ 	* config/arm/mve.md (mve_vcvtq_to_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_to_f_<supf><mode>.
+ 	(mve_vcvtq_from_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_from_f_<supf><mode>.
+ 	(mve_vcvtq_n_to_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_n_to_f_<supf><mode>.
+ 	(mve_vcvtq_n_from_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_n_from_f_<supf><mode>.
+ 	(mve_vcvtq_m_to_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_m_to_f_<supf><mode>.
+ 	(mve_vcvtq_m_n_from_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_m_n_from_f_<supf><mode>.
+ 	(mve_vcvtq_m_from_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_m_from_f_<supf><mode>.
+ 	(mve_vcvtq_m_n_to_f_<supf><mode>): Rename into
+ 	@mve_<mve_insn>q_m_n_to_f_<supf><mode>.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h
+ 	(unspec_based_mve_function_base): Add m_unspec_for_sint,
+ 	m_unspec_for_uint, m_unspec_for_fp and expand_unspec members.
+ 	(unspec_based_mve_function_exact_insn): Inherit from
+ 	unspec_based_mve_function_base and use expand_unspec.
+ 	(unspec_mve_function_exact_insn): Likewise.
+ 	(unspec_mve_function_exact_insn_pred_p): Likewise.  Use
+ 	conditionals.
+ 	(unspec_mve_function_exact_insn_vshl): Likewise.
+ 	(unspec_based_mve_function_exact_insn_vcmp): Initialize new
+ 	inherited members.  Use conditionals.
+ 	(unspec_mve_function_exact_insn_rot): Merge PRED_m and PRED_x
+ 	handling.  Use conditionals.
+ 	(unspec_mve_function_exact_insn_vmull): Likewise.
+ 	(unspec_mve_function_exact_insn_vmull_poly): Likewise.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (create_def::resolve):
+ 	Delete function.
+ 
+ 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_orrq_def): Improve comment.
+ 
+ 2024-10-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117171
+ 	* tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype):
+ 	Relax vect_external_def VECTOR_BOOLEAN_TYPE_P constraint.
+ 
+ 2024-10-17  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR middle-end/77608
+ 	* tree-object-size.cc (plus_stmt_object_size): Drop check for
+ 	constant offset.
+ 
+ 2024-10-17  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* doc/extend.texi (C++ Concepts): Remove section.  Move
+ 	__is_same documentation to the previous Type Traits section.
+ 
+ 2024-10-17  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/113533
+ 	* config/sh/sh.cc (sh_rtx_costs): Delete wrong semicolon.
+ 
+ 2024-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117172
+ 	* tree-vect-loop.cc (vectorizable_nonlinear_induction): Add
+ 	single-lane SLP support.
+ 
+ 2024-10-17  Denis Chertykov  <chertykov@gmail.com>
+ 
+ 	PR target/116550
+ 	* lra-constraints.cc (get_reload_reg): Reuse scratch registers
+ 	generated by LRA.
+ 
+ 2024-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_lower_load_permutations): Avoid
+ 	exempting non-power-of-two group sizes from lowering.
+ 
+ 2024-10-17  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/sse.md(avx10_2_comsbf16_v8bf): Fixed scalar
+ 	operands.
+ 
+ 2024-10-17  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116940
+ 	* config/i386/sse.md (*avx2_pcmp<mode>3_7): Change
+ 	UNSPEC_PCMP_ITER to UNSPEC_PCMP.
+ 	(*avx2_pcmp<mode>3_8): New pre_reload
+ 	define_insn_and_splitter.
+ 
+ 2024-10-17  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/117072
+ 	* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>):
+ 	Relax predicates of fma operands from register_operand to
+ 	nonimmediate_operand.
+ 	(<avx512>_fmadd_<mode>_mask3<round_name>): Ditto.
+ 	(<avx512>_fmsub_<mode>_mask<round_name>): Ditto.
+ 	(<avx512>_fmsub_<mode>_mask3<round_name>): Ditto.
+ 	(<avx512>_fnmadd_<mode>_mask<round_name>): Ditto.
+ 	(<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto.
+ 	(<avx512>_fnmsub_<mode>_mask<round_name>): Ditto.
+ 	(<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto.
+ 	(<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.
+ 	(<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto.
+ 	(<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto.
+ 	(avx512f_vmfmadd_<mode>_mask<round_name>): Ditto.
+ 	(avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto.
+ 	(avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto.
+ 	(*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto.
+ 	(avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto.
+ 	(*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto.
+ 	(avx512f_vmfnmadd_<mode>_mask<round_name>): Ditto.
+ 	(avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto.
+ 	(avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto.
+ 	(*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto.
+ 	(*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto.
+ 	(*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): Ditto.
+ 	(avx10_2_fmaddnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmaddnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fmsubnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmsubnepbf16_<mode>_mask3): Ditto.
+ 	(fmai_vmfmadd_<mode><round_name>): Swap operands[1] and operands[2].
+ 	(fmai_vmfmsub_<mode><round_name>): Ditto.
+ 	(fmai_vmfnmadd_<mode><round_name>): Ditto.
+ 	(fmai_vmfnmsub_<mode><round_name>): Ditto.
+ 	(*fmai_fmadd_<mode>): Swap operands[1] and operands[2] adjust
+ 	operands[1] predicates from register_operand to
+ 	nonimmediate_operand.
+ 	(*fmai_fmsub_<mode>): Ditto.
+ 	(*fmai_fnmadd_<mode><round_name>): Ditto.
+ 	(*fmai_fnmsub_<mode><round_name>): Ditto.
+ 
+ 2024-10-17  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR middle-end/117072
+ 	* combine.cc (maybe_swap_commutative_operands):
+ 	Canonicalize (vec_merge (fma op2 op1 op3) op1 mask)
+ 	to (vec_merge (fma op1 op2 op3) op1 mask).
+ 
+ 2024-10-17  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	* config/i386/sse.md (andn<mode>3): New.
+ 	* config/i386/mmx.md (andn<mode>3): New.
+ 
+ 2024-10-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	* tree-object-size.cc (plus_stmt_object_size): Call
+ 	SIZE_FOR_OFFSET for some negative offset cases.
+ 
+ 2024-10-16  Jolen Li  <jolen.li@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vdupq_impl): New class.
+ 	(vdupq): Use new implementation.
+ 	* config/arm/arm.cc (arm_rtx_costs_internal): Handle HFmode
+ 	for COST_DOUBLE. Update costing for CONST_VECTOR.
+ 	* config/arm/arm_mve_builtins.def: Merge vdupq_n_f, vdupq_n_s
+ 	and vdupq_n_u into vdupq_n.
+ 	* config/arm/mve.md (mve_vdup<mode>): Rename into ...
+ 	(@mve_vdup_n<mode>): ... this.
+ 	(@mve_<mve_insn>q_n_f<mode>): Delete.
+ 	(@mve_<mve_insn>q_n_<supf><mode>): Delete..
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): Update mve_unpredicated_insn
+ 	attribute.
+ 	(@mve_<mve_insn>q_m_n_f<mode>): Likewise.
+ 
+ 2024-10-16  Jolen Li  <jolen.li@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vdup<mode>): Fix mode iterator.
+ 
+ 2024-10-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116602
+ 	* diagnostic-format-sarif.cc: Include "demangle.h" and
+ 	"backtrace.h".
+ 	(sarif_invocation::add_notification_for_ice): Add "backtrace"
+ 	param and pass it to ctor.
+ 	(sarif_ice_notification::sarif_ice_notification): Add "backtrace"
+ 	param and add it to property bag.
+ 	(bt_stop): New, taken from diagnostic.cc.
+ 	(struct bt_closure): New.
+ 	(bt_callback): New, adapted from diagnostic.cc.
+ 	(sarif_builder::make_stack_from_backtrace): New.
+ 	(sarif_builder::on_report_diagnostic): Attempt to get backtrace
+ 	and pass it to add_notification_for_ice.
+ 
+ 2024-10-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::on_report_diagnostic): Move the fnotice here from
+ 	sarif_ice_handler.
+ 	(sarif_ice_handler): Delete.
+ 	(diagnostic_output_format_init_sarif): Drop setting of ice handler
+ 	callback.
+ 	* diagnostic.cc (diagnostic_context::initialize): Likewise.
+ 	(diagnostic_context::action_after_output): Rather than call
+ 	m_ice_handler_cb, instead call finish on this context.
+ 	* diagnostic.h (ice_handler_callback_t): Delete typedef.
+ 	(diagnostic_context::set_ice_handler_callback): Delete.
+ 	(diagnostic_context::m_ice_handler_cb): Delete.
+ 
+ 2024-10-16  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/116510
+ 	* tree-if-conv.cc (predicate_bbs): Add missing fold_converts.
+ 
+ 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* attribs.cc (lookup_scoped_attribute_spec): ?: operator formatting
+ 	fixes.
+ 	* basic-block.h (FOR_BB_INSNS_SAFE): Likewise.
+ 	* cfgcleanup.cc (outgoing_edges_match): Likewise.
+ 	* cgraph.cc (cgraph_node::dump): Likewise.
+ 	* config/arc/arc.cc (gen_acc1, gen_acc2): Likewise.
+ 	* config/arc/arc.h (CLASS_MAX_NREGS, CONSTANT_ADDRESS_P): Likewise.
+ 	* config/arm/arm.cc (arm_print_operand): Likewise.
+ 	* config/cris/cris.md (*b<rnzcond:code><mode>): Likewise.
+ 	* config/darwin.cc (darwin_asm_declare_object_name,
+ 	darwin_emit_common): Likewise.
+ 	* config/darwin-driver.cc (darwin_driver_init): Likewise.
+ 	* config/epiphany/epiphany.md (call, sibcall, call_value,
+ 	sibcall_value): Likewise.
+ 	* config/i386/i386.cc (gen_push2): Likewise.
+ 	* config/i386/i386.h (ix86_cur_cost): Likewise.
+ 	* config/i386/openbsdelf.h (FUNCTION_PROFILER): Likewise.
+ 	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
+ 	Likewise.
+ 	* config/loongarch/loongarch-cpu.cc (fill_native_cpu_config):
+ 	Likewise.
+ 	* config/riscv/riscv.cc (riscv_union_memmodels): Likewise.
+ 	* config/riscv/zc.md (*mva01s<X:mode>, *mvsa01<X:mode>): Likewise.
+ 	* config/rs6000/mmintrin.h (_mm_cmpeq_pi8, _mm_cmpgt_pi8,
+ 	_mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, _mm_cmpgt_pi32):
+ 	Likewise.
+ 	* config/v850/predicates.md (pattern_is_ok_for_prologue): Likewise.
+ 	* config/xtensa/constraints.md (d, C, W): Likewise.
+ 	* coverage.cc (coverage_begin_function, build_init_ctor,
+ 	build_gcov_exit_decl): Likewise.
+ 	* df-problems.cc (df_create_unused_note): Likewise.
+ 	* diagnostic.cc (diagnostic_set_caret_max_width): Likewise.
+ 	* diagnostic-path.cc (path_summary::path_summary): Likewise.
+ 	* expr.cc (expand_expr_divmod): Likewise.
+ 	* gcov.cc (format_gcov): Likewise.
+ 	* gcov-dump.cc (dump_gcov_file): Likewise.
+ 	* genmatch.cc (main): Likewise.
+ 	* incpath.cc (remove_duplicates, register_include_chains): Likewise.
+ 	* ipa-devirt.cc (dump_odr_type): Likewise.
+ 	* ipa-icf.cc (sem_item_optimizer::merge_classes): Likewise.
+ 	* ipa-inline.cc (inline_small_functions): Likewise.
+ 	* ipa-polymorphic-call.cc (ipa_polymorphic_call_context::dump):
+ 	Likewise.
+ 	* ipa-sra.cc (create_parameter_descriptors): Likewise.
+ 	* ipa-utils.cc (find_always_executed_bbs): Likewise.
+ 	* predict.cc (predict_loops): Likewise.
+ 	* selftest.cc (read_file): Likewise.
+ 	* sreal.h (SREAL_SIGN, SREAL_ABS): Likewise.
+ 	* tree-dump.cc (dequeue_and_dump): Likewise.
+ 	* tree-ssa-ccp.cc (bit_value_binop): Likewise.
+ 
+ 2024-10-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/113952
+ 	PR target/117168
+ 	* config/sparc/constraints.md ('U'): Delete.
+ 	* config/sparc/sparc.md (*movdi_insn_sp32): Remove U alternatives.
+ 	(*movdf_insn_sp32): Likewise.
+ 	(*mov<VM64:mode>_insn_sp32): Likewise.
+ 	* doc/md.texi (SPARC constraints): Remove entry for 'U'.
+ 
+ 2024-10-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Move
+ 	VMAT_ELEMENTWISE fallback for single-element interleaving
+ 	of too large groups before overrun checking.
+ 
+ 2024-10-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117050
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Properly handle
+ 	non-grouped masked loads when handling permutations.
+ 
+ 2024-10-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (SLP_INSTANCE_UNROLLING_FACTOR): Remove.
+ 	(slp_instance::unrolling_factor): Likewise.
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Do not set
+ 	SLP_INSTANCE_UNROLLING_FACTOR.  Remove then dead code.
+ 	Compute and set max_nunits from the RHS nodes merged.
+ 	(vect_update_slp_vf_for_node): New function.
+ 	(vect_make_slp_decision): Use vect_update_slp_vf_for_node
+ 	to compute VF recursively.
+ 	(vect_build_slp_store_interleaving): Get max_nunits and
+ 	properly set that on the permute nodes built.
+ 	(vect_analyze_slp): Do not set SLP_INSTANCE_UNROLLING_FACTOR.
+ 
+ 2024-10-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/116655
+ 	* config/riscv/riscv-vector-costs.cc (max_number_of_live_regs):
+ 	Use biggest mode instead of constant's saved mode.
+ 
+ 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimplify.cc (gimplify_init_ctor_eval): For larger RAW_DATA_CST,
+ 	just gimplify cref as lvalue and add gimple assignment of rctor
+ 	to cref instead of going through gimplification of INIT_EXPR, as
+ 	the latter can suffer from infinite recursion.
+ 
+ 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* treestruct.def (TS_RAW_DATA_CST): New.
+ 	* tree.def (RAW_DATA_CST): New tree code.
+ 	* tree-core.h (struct tree_raw_data): New type.
+ 	(union tree_node): Add raw_data_cst member.
+ 	* tree.h (RAW_DATA_LENGTH, RAW_DATA_POINTER, RAW_DATA_OWNER): Define.
+ 	(gt_ggc_mx, gt_pch_nx): Declare overloads for tree_raw_data *.
+ 	* tree.cc (tree_node_structure_for_code): Handle RAW_DATA_CST.
+ 	(initialize_tree_contains_struct): Handle TS_RAW_DATA_CST.
+ 	(tree_code_size): Handle RAW_DATA_CST.
+ 	(initializer_zerop): Likewise.
+ 	(gt_ggc_mx, gt_pch_nx): Define overloads for tree_raw_data *.
+ 	* gimplify.cc (gimplify_init_ctor_eval): Handle RAW_DATA_CST.
+ 	* fold-const.cc (operand_compare::operand_equal_p): Handle
+ 	RAW_DATA_CST.  Formatting fix.
+ 	(operand_compare::hash_operand): Handle RAW_DATA_CST.
+ 	(native_encode_initializer): Likewise.
+ 	(get_array_ctor_element_at_index): Likewise.
+ 	(fold): Likewise.
+ 	* gimple-fold.cc (fold_array_ctor_reference): Likewise.  Formatting
+ 	fix.
+ 	* varasm.cc (const_hash_1): Handle RAW_DATA_CST.
+ 	(initializer_constant_valid_p_1): Likewise.
+ 	(array_size_for_constructor): Likewise.
+ 	(output_constructor_regular_field): Likewise.
+ 	* expr.cc (categorize_ctor_elements_1): Likewise.
+ 	(expand_expr_real_1) <case ARRAY_REF>: Punt for RAW_DATA_CST.
+ 	* tree-streamer.cc (streamer_check_handled_ts_structures): Mark
+ 	TS_RAW_DATA_CST as handled.
+ 	* tree-streamer-in.cc (streamer_alloc_tree): Handle RAW_DATA_CST.
+ 	(lto_input_ts_raw_data_cst_tree_pointers): New function.
+ 	(streamer_read_tree_body): Call it for RAW_DATA_CST.
+ 	* tree-streamer-out.cc (write_ts_raw_data_cst_tree_pointers): New
+ 	function.
+ 	(streamer_write_tree_body): Call it for RAW_DATA_CST.
+ 	(streamer_write_tree_header): Handle RAW_DATA_CST.
+ 	* lto-streamer-out.cc (DFS::DFS_write_tree_body): Handle RAW_DATA_CST.
+ 	* tree-pretty-print.cc (dump_generic_node): Likewise.
+ 
+ 2024-10-16  Sam James  <sam@gentoo.org>
+ 
+ 	* config/vax/vax.opt.urls: Adjust index for -mlra.
+ 
+ 2024-10-16  Sam James  <sam@gentoo.org>
+ 
+ 	PR target/113952
+ 	* config/sparc/sparc.cc (sparc_lra_p): Delete.
+ 	(TARGET_LRA_P): Ditto.
+ 	(sparc_option_override): Don't use MASK_LRA.
+ 	* config/sparc/sparc.md (disabled,enabled): Drop lra attribute.
+ 	* config/sparc/sparc.opt: Delete -mlra.
+ 	* config/sparc/sparc.opt.urls: Ditto.
+ 	* doc/invoke.texi (SPARC options): Drop -mlra and -mno-lra.
+ 
+ 2024-10-15  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR c/116016
+ 	* doc/extend.texi: Add documentation for __builtin_counted_by_ref.
+ 
+ 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116891
+ 	* match.pd ((negate (fmas@3 @0 @1 @2)) -> (IFN_FNMS @0 @1 @2)):
+ 	Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
+ 	((negate (IFN_FMS@3 @0 @1 @2)) -> (IFN_FNMA @0 @1 @2)): Likewise.
+ 	((negate (IFN_FNMA@3 @0 @1 @2)) -> (IFN_FMS @0 @1 @2)): Likewise.
+ 
+ 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c++/117157
+ 	* doc/invoke.texi (Wno-changes-meaning): Add opindex.
+ 
+ 2024-10-15  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/117116
+ 	* config/i386/i386-expand.cc (expand_vector_set): Force "val"
+ 	into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated
+ 	if it doesn't satisfy nonimmediate_operand predicate.
+ 
+ 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-dce.cc (perform_tree_ssa_dce): Remove FIXME note.
+ 
+ 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gen-pass-instances.awk: Remove the limit of the params.
+ 	* pass_manager.h (NEXT_PASS_WITH_ARG2): Rename to ...
+ 	(NEXT_PASS_WITH_ARGS): This.
+ 	* passes.cc (NEXT_PASS_WITH_ARG2): Rename to ...
+ 	(NEXT_PASS_WITH_ARGS): This and support more than 2 params by using
+ 	a constexpr array.
+ 
+ 2024-10-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116907
+ 	* tree-ssa-live.cc (clear_unused_block_pointer_in_block): New
+ 	helper.
+ 	(clear_unused_block_pointer): Call it.
+ 
+ 2024-10-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR middle-end/117141
+ 	* match.pd: Remove the dup pattern for signed SAT_SUB.
+ 
+ 2024-10-15  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vectorizer.h (vect_mem_access_type): New.
+ 	* config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use it.
+ 	(aarch64_detect_vector_stmt_subtype): Likewise.
+ 	(aarch64_adjust_stmt_cost): Likewise.
+ 	(aarch64_vector_costs::count_ops): Likewise.
+ 	(aarch64_vector_costs::add_stmt_cost): Make SLP node named.
+ 
+ 2024-10-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117138
+ 	* gimple-range-fold.cc (fold_using_range::condexpr_adjust):
+ 	Check if the comparison operand type is supported.
+ 
+ 2024-10-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117137
+ 	* expr.cc (expand_cond_expr_using_cmove): Make sure to
+ 	expand vector comparisons separately.
+ 
+ 2024-10-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117147
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Put vars and
+ 	initialization of per-lane data into the per-lane processing
+ 	loop to avoid re-using previous lane state.
+ 
+ 2024-10-15  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
+ 	Implement fold to svlsl for power-of-2 operands.
+ 
+ 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (Wtrailing-whitespace): Document.
+ 
+ 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/117110
+ 	* Makefile.in (generated_files, generated_match_files,
+ 	build/genmatch$(build_exeext), LINKER_FOR_BUILD): Revert
+ 	2024-10-12 changes.
+ 	* genmatch.cc: Don't include pretty-print.h and input.h.
+ 	(fatal, ggc_internal_cleared_alloc, ggc_free, line_table,
+ 	linemap_client_expand_location_to_spelling_point): Revert
+ 	2024-10-12 changes.
+ 	(DIAG_ARGMAX): Define.
+ 	(diag_integer_with_precision): Define.
+ 	(diag_vfprintf): New function.
+ 	(diagnostic_cb): Use diag_vfprintf instead of pp_format_verbatim.
+ 	(output_line_directive): Revert 2024-10-12 changes.
+ 
+ 2024-10-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/117109
+ 	* diagnostic-format-sarif.cc
+ 	(diagnostic_output_format_init_sarif_file): Rename
+ 	diagnostic_context::emit_diagnostic to
+ 	diagnostic_context::emit_diagnostic_with_group.
+ 	* diagnostic.cc (diagnostic_context::emit_diagnostic): Rename
+ 	to...
+ 	(diagnostic_context::emit_diagnostic_with_group): ...this.
+ 	(diagnostic_context::emit_diagnostic_va): Rename to...
+ 	(diagnostic_context::emit_diagnostic_with_group_va): ...this.
+ 	* diagnostic.h (diagnostic_context::emit_diagnostic): Rename to...
+ 	(diagnostic_context::emit_diagnostic_with_group): ...this.
+ 	(diagnostic_context::emit_diagnostic_va): Rename to...
+ 	(diagnostic_context::emit_diagnostic_with_group_va): ...this.
+ 
+ 2024-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116997
+ 	* fold-const.cc (fold_ternary_loc): Fix BIT_INSERT_EXPR constant folding
+ 	for BYTES_BIG_ENDIAN targets.
+ 
+ 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-dce.cc (tree_ssa_dce): Remove.
+ 	(tree_ssa_cd_dce): Remove.
+ 	(class pass_dce_base): New class.
+ 	(class pass_dce): Use pass_dce_base as the base class.
+ 	(class pass_cd_dce): Likewise.
+ 
+ 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/117096
+ 	* passes.def: Update some of the dce/cd-cde passes setting
+ 	the 2nd arg to true.
+ 	Also remove comment about stdarg since dce does it.
+ 	* tree-ssa-dce.cc (pass_dce): Add remove_unused_locals_p field.
+ 	Update set_pass_param to allow for 2nd param.
+ 	Use remove_unused_locals_p in execute to return TODO_remove_unused_locals.
+ 	(pass_cd_dce): Likewise.
+ 	* tree-stdarg.cc (pass_data_stdarg): Remove TODO_remove_unused_locals.
+ 
+ 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gen-pass-instances.awk (END): Handle processing
+ 	of multiple arguments to NEXT_PASS. Also error out
+ 	if using more than max_number_args (2).
+ 	* pass_manager.h (NEXT_PASS_WITH_ARG2): New define.
+ 	* passes.cc (NEXT_PASS_WITH_ARG2): New define.
+ 
+ 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gen-pass-instances.awk: Print out the #undefs.
+ 	* pass_manager.h: Don't #undef INSERT_PASSES_AFTER,
+ 	PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES, NEXT_PASS,
+ 	NEXT_PASS_WITH_ARG, and TERMINATE_PASS_LIST.
+ 	* passes.cc: Likewise.
+ 
+ 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/116956
+ 	* tree-vectorizer.cc (vec_info::move_dr): Copy STMT_VINFO_STRIDED_P.
+ 
+ 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR rtl-optimization/117012
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Use
+ 	const_vec_duplicate_p instead of CONST_VECTOR_DUPLICATE_P.
+ 
+ 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/116371
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl):
+ 	Renamed to ...
+ 	(class svpsel_lane_impl): ... This and adjust initialization.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def (svpsel): Renamed to ...
+ 	(svpsel_lane): ... This.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h (svpsel): Renamed to
+ 	svpsel_lane.
+ 
+ 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Handle SLP trees with no
+ 	children.
+ 	* tree-vectorizer.h (enum slp_instance_kind): Add slp_inst_kind_gcond.
+ 	(LOOP_VINFO_EARLY_BREAKS_LIVE_IVS): New.
+ 	(vectorizable_early_exit): Expose.
+ 	(class _loop_vec_info): Add early_break_live_stmts.
+ 	* tree-vect-slp.cc (vect_build_slp_instance, vect_analyze_slp_instance):
+ 	Support gcond instances.
+ 	(vect_analyze_slp): Analyze gcond roots and early break live statements.
+ 	(maybe_push_to_hybrid_worklist): Don't sink gconds.
+ 	(vect_slp_analyze_operations): Support gconds.
+ 	(vect_slp_check_for_roots): Update comments.
+ 	(vectorize_slp_instance_root_stmt): Support gconds.
+ 	(vect_schedule_slp): Pass vinfo to vectorize_slp_instance_root_stmt.
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Record early break live
+ 	statements.
+ 	(vectorizable_early_exit): Support SLP.
+ 
+ 2024-10-14  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR middle-end/116926
+ 	* optabs-query.cc (find_widening_optab_handler_and_mode): Add
+ 	handling of vector -> scalar optab handling.
+ 
+ 2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/116999
+ 	PR target/117045
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svwhilelx_impl::fold): Check for WHILELTs of the minimum value
+ 	and WHILELEs of the maximum value.  Fold them to all-false and
+ 	all-true respectively.
+ 
+ 2024-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/116891
+ 	* match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)):
+ 	Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
+ 
+ 2024-10-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add matching pattern for vector signed SAT_SUB form 3.
+ 
+ 2024-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116290
+ 	* tree-loop-distribution.cc (determine_reduction_stmt_1): PHIs
+ 	have no debug variants.  Start with first non-debug real stmt.
+ 	* tree-ssa-loop-ivopts.cc (find_givs_in_bb): Do not analyze
+ 	debug stmts.
+ 
+ 2024-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
+ 	    Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/113533
+ 	* config/sh/sh.cc (sh_rtx_costs): Adjust cost estimation of MEM rtx
+ 	to be always at least COST_N_INSNS (1).  Forward speed argument to
+ 	sh_address_cost.
+ 
+ 2024-10-13  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	* config/m68k/m68k.md ("movsi", "movxf"): Replace
+ 	reload_in_progress by reload_in_progress || lra_in_progress.
+ 	* config/m68k/m68k.cc (m68k_legitimate_mem_p)
+ 	(emit_move_sequence): Likewise.
+ 	* config/m68k/predicates.md ("fp_src_operand"): Likewise.
+ 
+ 2024-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116481
+ 	* pointer-query.cc (build_printable_array_type):
+ 	Build an array types with function or method element type
+ 	manually to avoid bogus diagnostic.
+ 
+ 2024-10-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimple-fold.cc (gimple_fold_builtin_acc_on_device): Also fold
+ 	when offloading is not configured.
+ 
+ 2024-10-13  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/riscv.md (zero_extendsidi2): If RHS is already
+ 	zero extended, then this is just a copy.
+ 	(extendsidi2): Similarly, but for sign extension.
+ 
+ 2024-10-12  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/116985
+ 	* tree-vect-loop.cc (vect_transform_reduction): Compute loop mask
+ 	index based on effective vector copies for reduction op.
+ 
+ 2024-10-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117104
+ 	* match.pd ((cmp:c (minmax:c @0 @1) @0) -> (out @0 @1)): Properly
+ 	guard the vector case.
+ 
+ 2024-10-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/constraints.md (P): New constraint.
+ 	* config/riscv/vector.md (pred_broadcast<mode> expander): Do
+ 	not force small integers into GPRs so aggressively.
+ 	(pred_broadcast<mode> insn & splitter): Allow splatting small
+ 	constants across the vector register directly.  Allow splatting
+ 	(const_int 0) into element 0 directly.
+ 
+ 2024-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in (LINKER_FOR_BUILD): Append -no-pie if it is in
+ 	$(LD_PICFLAG) when building build/genmatch.
+ 
+ 2024-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in (generated_files): Remove {gimple,generic}-match*.
+ 	(generated_match_files): New variable.  Add a dependency of
+ 	$(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) files on those.
+ 	(build/genmatch$(build_exeext)): Depend on and link against
+ 	libcommon.a and $(LIBBACKTRACE).
+ 	* genmatch.cc: Include pretty-print.h and input.h.
+ 	(ggc_internal_cleared_alloc, ggc_free): Remove.
+ 	(fatal): New function.
+ 	(line_table): Remove.
+ 	(linemap_client_expand_location_to_spelling_point): Remove.
+ 	(diagnostic_cb): Use gcc_diag rather than printf format.  Use
+ 	pp_format_verbatim on a temporary pretty_printer instead of
+ 	vfprintf.
+ 	(fatal_at, warning_at): Use gcc_diag rather than printf format.
+ 	(output_line_directive): Rename location_hash to loc_hash.
+ 	(parser::eat_ident, parser::parse_operation, parser::parse_expr,
+ 	parser::parse_pattern, parser::finish_match_operand): Fix up
+ 	-Wformat-diag warnings.
+ 
+ 2024-10-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (sssub<mode>3): Add new pattern for
+ 	signed SAT_SUB.
+ 	* config/riscv/riscv-protos.h (expand_vec_sssub): Add new func
+ 	decl to expand sssub to vssub.
+ 	* config/riscv/riscv-v.cc (expand_vec_sssub): Add new func
+ 	impl to expand sssub to vssub.
+ 
+ 2024-10-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-patterns.cc (gimple_signed_integer_sat_sub): Add new
+ 	func decl for signed SAT_SUB.
+ 	(vect_recog_sat_sub_pattern_transform): Update comments.
+ 	(vect_recog_sat_sub_pattern): Try the vector signed SAT_SUB
+ 	pattern.
+ 
+ 2024-10-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 1 matching pattern for vector signed SAT_SUB.
+ 
+ 2024-10-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Redefine into a
+ 	define_expand.
+ 	(*aarch64_xarqv2di_insn): Define.
+ 
+ 2024-10-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/117048
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Handle vector constants in (x << C1) | (x >> C2) -> ROTATE
+ 	simplification.
+ 
+ 2024-10-11  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR tree-optimization/116826
+ 	PR tree-optimization/86710
+ 	* match.pd: Fold logN(1.0/a) -> -logN(a),
+ 	logN(C/a) -> logN(C) - logN(a),	logN(a) + logN(b) -> logN(a*b),
+ 	and logN(a) - logN(b) -> logN(a/b).
+ 
+ 2024-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117080
+ 	* tree-vectorizer.h (_slp_tree::memory_access_type): Add.
+ 	(SLP_TREE_MEMORY_ACCESS_TYPE): New.
+ 	(record_stmt_cost): Add another overload.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
+ 	memory_access_type.
+ 	* tree-vect-stmts.cc (vectorizable_store): Set
+ 	SLP_TREE_MEMORY_ACCESS_TYPE.
+ 	(vectorizable_load): Likewise.  Also record the SLP node
+ 	when costing emulated gather offset decompose and vector
+ 	composition.
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Also
+ 	recognize SLP emulated gather/scatter.
+ 
+ 2024-10-11  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md
+ 	(*aarch64_pred_faminmax_fused): Instruction pattern for faminmax
+ 	codegen.
+ 	* config/aarch64/iterators.md: Iterator and attribute for
+ 	faminmax codegen.
+ 
+ 2024-10-11  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svamax): Absolute maximum declaration.
+ 	(svamin): Absolute minimum declaration.
+ 	* config/aarch64/aarch64-sve-builtins-base.def
+ 	(REQUIRED_EXTENSIONS): Add faminmax intrinsics behind a flag.
+ 	(svamax): Absolute maximum declaration.
+ 	(svamin): Absolute minimum declaration.
+ 	* config/aarch64/aarch64-sve-builtins-base.h: Declaring function
+ 	bases for the new intrinsics.
+ 	* config/aarch64/aarch64.h
+ 	(TARGET_SVE_FAMINMAX): New flag for SVE2 faminmax.
+ 	* config/aarch64/iterators.md: New unspecs, iterators, and attrs
+ 	for the new intrinsics.
+ 
+ 2024-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/117086
+ 	* match.pd ((op (vec_cond ...) ..) -> (vec_cond ...)): Add
+ 	missing checks for VECTOR_TYPE_P (type).
+ 
+ 2024-10-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 4 matching pattern for signed SAT_TRUNC.
+ 
+ 2024-10-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 3 matching pattern for signed SAT_TRUNC.
+ 
+ 2024-10-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 2 matching pattern for signed SAT_TRUNC.
+ 
+ 2024-10-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117053
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Handle
+ 	TARGET_ZERO_EXTEND_WITH_AND differently.
+ 	(ix86_expand_int_spaceship): Likewise.
+ 
+ 2024-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117050
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Do not support
+ 	permutes of non-grouped .MASK_LOAD.
+ 
+ 2024-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Allow
+ 	passing in of vectype, pass in whether the stores are masked
+ 	and query the correct optab.
+ 	(vect_build_slp_instance): Guard store-lanes query with
+ 	! STMT_VINFO_SLP_VECT_ONLY, guaranteeing an uniform mask.
+ 
+ 2024-10-11  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(sse_movhlps): Change type attr from ssemov to ssemov2.
+ 	(sse_loadhps): Ditto.
+ 	(*vec_concat<mode>): Ditto.
+ 	(vec_setv2df_0): Ditto.
+ 	(sse_loadlps): Change attr from ssemov to ssemov2 except for 2, 3.
+ 	(sse2_loadhps): Change attr from ssemov to ssemov2 except for 0, 1.
+ 	(sse2_loadlpd): Change attr from ssemov to ssemov2 except for 0, 1,
+ 	2.
+ 	(sse2_movsd_<mode>): Change attr from ssemov to ssemov2 except for 5.
+ 	(vec_concatv2df): Change attr from ssemov to ssemov2 except for 0, 1,
+ 	2.
+ 	(*vec_concat<mode>): Change attr from ssemov to ssemov2 for 3, 4.
+ 	(vec_concatv2di): Change attr from ssemov to ssemov2 except for 0, 1,
+ 	2, 3, 4, 5.
+ 
+ 2024-10-10  Michael Matz  <matz@suse.de>
+ 
+ 	PR rtl-optimization/116650
+ 	* regrename.cc (check_new_reg_p): Calculate nregs in terms of
+ 	the new candidate register.
+ 
+ 2024-10-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (pass_phiopt::execute): Remove candorest
+ 	and return instead of setting candorest.
+ 
+ 2024-10-10  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	PR target/116883
+ 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic_flags_pollute): Choose zvl4096b
+ 	to initialize null type.
+ 
+ 2024-10-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Set repeating_p
+ 	to false if we have an external node for a pre-existing vector.
+ 
+ 2024-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117060
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): When comparing
+ 	calls also fail if the first isn't a call.
+ 
+ 2024-10-10  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR tree-optimization/116831
+ 	* match.pd: Guard simplification to trunc_mod with check for
+ 	mod optab support.
+ 
+ 2024-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Do not compare
+ 	RHS codes for loads or stores.
+ 	(vect_get_and_check_slp_defs): Only demote operand to external
+ 	in case there is more than one operand.
+ 
+ 2024-10-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
+ 	Add new member m_num_avx256_vec_perm.
+ 	(ix86_vector_costs::add_stmt_cost): Record 256-bit vec_perm.
+ 	(ix86_vector_costs::finish_cost): Prevent vectorization for
+ 	TAREGT_AVX256_AVOID_VEC_PERM when there's 256-bit vec_perm
+ 	instruction.
+ 	* config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New
+ 	Macro.
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add
+ 	m_CORE_ATOM.
+ 	(X86_TUNE_AVX256_AVOID_VEC_PERM): New tune.
+ 
+ 2024-10-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard
+ 	instruction blendv generation under new tune.
+ 	* config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro.
+ 	* config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV):
+ 	New tune.
+ 
+ 2024-10-10  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386.md: Rewrite insn truncsfbf2.
+ 
+ 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-text.cc
+ 	(diagnostic_text_output_format::after_diagnostic): Replace call to
+ 	show_any_path with body, taken from diagnostic.cc.
+ 	(diagnostic_text_output_format::build_prefix): Move here from
+ 	diagnostic.cc, updating to use get_diagnostic_kind_text and
+ 	diagnostic_get_color_for_kind.
+ 	(diagnostic_text_output_format::file_name_as_prefix): Move here
+ 	from diagnostic.cc
+ 	(diagnostic_text_output_format::append_note): Likewise.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::show_any_path): Drop decl.
+ 	* diagnostic.cc
+ 	(diagnostic_text_output_format::file_name_as_prefix): Move to
+ 	diagnostic-format-text.cc.
+ 	(diagnostic_text_output_format::build_prefix): Likewise.
+ 	(diagnostic_text_output_format::show_any_path): Move to body of
+ 	diagnostic_text_output_format::after_diagnostic.
+ 	(diagnostic_text_output_format::append_note): Move to
+ 	diagnostic-format-text.cc.
+ 
+ 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/invoke.texi (fdiagnostics-format): Describe "json" et al as
+ 	deprecated, and remove the long description of the output format.
+ 
+ 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* lto-wrapper.cc (print_lto_docs_link): Use a format string rather
+ 	than building the string manually.  Fix memory leak of "url" by
+ 	using label_text.
+ 
+ 2024-10-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_costing): Enable
+ 	vectorization for LOOP_VINFO_PEELING_FOR_NITER in very cheap
+ 	cost model.
+ 	(vect_analyze_loop): Disable epilogue vectorization in very
+ 	cheap cost model.
+ 	* doc/invoke.texi: Adjust documents for very-cheap cost model.
+ 
+ 2024-10-09  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
+ 
+ 	PR target/115921
+ 	* config/riscv/iterators.md (any_eq): New code iterator.
+ 	* config/riscv/riscv.h (COMMON_TRAILING_ZEROS): New macro.
+ 	(SMALL_AFTER_COMMON_TRAILING_SHIFT): Ditto.
+ 	* config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_<optab>_shifted):
+ 	New pattern.
+ 
+ 2024-10-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: M implies Zmmul.
+ 
+ 2024-10-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
+ 
+ 	* config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins):
+ 	Enable builtin __riscv_mul with Zmmul extension.
+ 
+ 2024-10-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/116629
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_builder::function_builder): Use direct overloads for LTO.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_analyze_data_ref_access): When
+ 	cancelling a DR group also clear DR_GROUP_NEXT_ELEMENT.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117041
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Only
+ 	check DR_GROUP_NEXT_ELEMENT for STMT_VINFO_GROUPED_ACCESS.
+ 
+ 2024-10-09  René Rebe  <rene@exactcode.de>
+ 
+ 	* config/ia64/ia64.cc: Enable LRA for ia64.
+ 	* config/ia64/ia64.md: Likewise.
+ 	* config/ia64/predicates.md: Likewise.
+ 
+ 2024-10-09  René Rebe  <rene@exactcode.de>
+ 
+ 	* config.gcc: Only list ia64*-*-(hpux|vms|elf) in the list of
+ 	obsoleted targets.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116974
+ 	* tree-vect-stmts.cc (check_scan_store): Pass in the SLP node
+ 	instead of just a flag.  Allow single-lane scan stores.
+ 	(vectorizable_store): Adjust.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Empty scan_map
+ 	before re-trying.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116575
+ 	PR tree-optimization/114375
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Do not reject
+ 	permuted mask loads without gaps but instead discover a
+ 	node for the full unpermuted load and permute that with
+ 	a VEC_PERM node.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117000
+ 	* match.pd (.REDUC_IOR !=/== 0): New pattern.
+ 	* gimple-match-head.cc: Include memmodel.h and optabs.h.
+ 	* generic-match-head.cc: Likewise.
+ 
+ 2024-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_cse_slp_nodes): Fix memory leak.
+ 
+ 2024-10-09  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* doc/extend.texi: Clarify __builtin_choose_expr()
+ 	(dis)similarity to the ?: operator.
+ 
+ 2024-10-09  Ken Matsui  <kmatsui@gcc.gnu.org>
+ 
+ 	PR preprocessor/89808
+ 	* doc/invoke.texi (Warning Options): Document
+ 	-Wno-pragma-once-outside-header.
+ 
+ 2024-10-09  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
+ 
+ 	PR tree-optimization/116024
+ 	* match.pd: New transformation around integer comparison.
+ 
+ 2024-10-09  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
+ 
+ 	PR tree-optimization/116024
+ 	* match.pd: New transformation around integer comparison.
+ 
+ 2024-10-08  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
+ 
+ 	PR tree-optimization/116024
+ 	* match.pd: New transformation around integer comparison.
+ 
+ 2024-10-08  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
+ 
+ 	PR tree-optimization/116024
+ 	* match.pd: New transformation around integer comparison.
+ 
+ 2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
+ 
+ 	* config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins):
+ 	Enable builtin __riscv_mul with Zmmul extension.
+ 
+ 2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: M implies Zmmul.
+ 
+ 2024-10-08  Yangyu Chen  <chenyangyu@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (cl_opt_var_ref_t): Add
+ 	cl_opt_var_ref_t pointer to member of cl_target_option.
+ 	(struct riscv_ext_flag_table_t): Add new cl_opt_var_ref_t field.
+ 	(RISCV_EXT_FLAG_ENTRY): New macro to simplify the definition of
+ 	riscv_ext_flag_table.
+ 	(riscv_ext_is_subset): New function to check if the callee's ISA
+ 	is a subset of the caller's.
+ 	(riscv_x_target_flags_isa_mask): New function to get the mask of
+ 	ISA extension in x_target_flags of gcc_options.
+ 	* config/riscv/riscv-subset.h (riscv_ext_is_subset): Declare
+ 	riscv_ext_is_subset function.
+ 	(riscv_x_target_flags_isa_mask): Declare
+ 	riscv_x_target_flags_isa_mask function.
+ 	* config/riscv/riscv.cc (riscv_can_inline_p): New function.
+ 	(TARGET_CAN_INLINE_P): Implement TARGET_CAN_INLINE_P.
+ 
+ 2024-10-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_sstrunc): Add new
+ 	func decl to expand SAT_TRUNC.
+ 	* config/riscv/riscv.cc (riscv_expand_sstrunc): Add new func
+ 	impl to expand SAT_TRUNC.
+ 	* config/riscv/riscv.md (sstrunc<mode><anyi_double_truncated>2):
+ 	Add new pattern for double truncation.
+ 	(sstrunc<mode><anyi_quad_truncated>2): Ditto but for quad.
+ 	(sstrunc<mode><anyi_oct_truncated>2): Ditto but for oct.
+ 
+ 2024-10-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Rename
+ 	to...
+ 	(build_saturation_binary_arith_call_and_replace): ...this.
+ 	(build_saturation_binary_arith_call_and_insert): ...this.
+ 	(match_unsigned_saturation_add): Leverage renamed func.
+ 	(match_unsigned_saturation_sub): Ditto.
+ 	(match_saturation_add): Return bool on matched and leverage
+ 	renamed func.
+ 	(match_saturation_sub): Ditto.
+ 	(match_saturation_trunc): Ditto.
+ 	(math_opts_dom_walker::after_dom_children): Ensure at most one
+ 	pattern will be matched for each phi node.
+ 
+ 2024-10-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 1 matching pattern for signed SAT_TRUNC.
+ 	* tree-ssa-math-opts.cc (gimple_signed_integer_sat_trunc): Add
+ 	new decl for signed SAT_TRUNC.
+ 	(match_saturation_trunc): Add new func impl to try SAT_TRUNC
+ 	pattern on phi node.
+ 	(math_opts_dom_walker::after_dom_children): Add
+ 	match_saturation_trunc for phi node iteration.
+ 
+ 2024-10-08  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
+ 	vaesenc_<mode>, vaesenclast_<mode>): Replace which_alternative
+ 	check by TARGET_AES one.
+ 
+ 2024-10-08  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	PR target/109498
+ 	* config/aarch64/aarch64-sve.md (ctz<mode>2): Added pattern to expand
+ 	CTZ to RBIT + CLZ for SVE.
+ 
+ 2024-10-08  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	PR target/116615
+ 	* config/riscv/riscv.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove.
+ 
+ 2024-10-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 
+ 2024-10-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 3 matching pattern for signed SAT_SUB.
+ 
+ 2024-10-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116896
+ 	* tree-ssa-math-opts.cc (optimize_spaceship): Handle unordered values
+ 	other than 2, but they still need to be signed char range possibly
+ 	converted to the PHI result and can't be in [-1, 1] range.  Use
+ 	last .SPACESHIP argument of 1 for unsigned int comparisons, -1 for
+ 	signed int, 0 for floating point branches and any other for floating
+ 	point with that value as unordered.
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use op2 rather
+ 	const2_rtx if op2 is not const0_rtx for unordered result.
+ 	(ix86_expand_int_spaceship): Change INTVAL (op2) == 1 tests to
+ 	INTVAL (op2) != -1.
+ 	* doc/md.texi (spaceship@var{m}4): Document the above changes.
+ 
+ 2024-10-08  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	PR ipa/96265
+ 	* lto-streamer-in.cc (lto_read_tree_1): Set TYPE_MODE and DECL_MODE
+ 	for vector_type if offloading is enabled.
+ 	(lto_input_mode_table): Remove handling of vector modes.
+ 	* tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream out
+ 	VOIDmode for vector_type if offloading is enabled.
+ 	(pack_ts_decl_common_value_fields): Likewise.
+ 
+ 2024-10-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* diagnostic-color.cc: Conditionally enable terminal processing
+ 	based on define availability.
+ 	* pretty-print.cc: Likewise.
+ 
+ 2024-10-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/loongarch.opt.in
+ 	(mannotate-tablejump): New option.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.md (tablejump<mode>): Emit
+ 	additional correlation info between the jump instruction and the
+ 	jump table, if -mannotate-tablejump.
+ 	* doc/invoke.texi: Document -mannotate-tablejump.
+ 
+ 2024-10-08  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: zawrs -> zalrsc.
+ 
+ 2024-10-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/iterators.md (scc_0): New code iterator.
+ 	* config/riscv/zicond.md: New splitters to improve code generated for
+ 	cases like (and (scc) (scc)) for zicond, xventanacondops, xtheadcondmov.
+ 
+ 2024-10-07  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Module Preprocessing): Allow -M,
+ 	refer to -fdeps.
+ 
+ 2024-10-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_noce_oncersion_profitable_p): Remove unused
+ 	argument name.
+ 	(arm_is_v81m_cond_insn): Initialize variable.
+ 
+ 2024-10-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/riscv/vector-crypto.md: Remove executable permissions.
+ 
+ 2024-10-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-if-conv.cc (if_convertible_stmt_p): Check for explicit
+ 	function declaration before IFN fallback.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/116583
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Add more
+ 	dump messages.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/116583
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Handle
+ 	variable-length pack and unpack permutations.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/116583
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
+ 	the noutputs_per_mask inner loop and instead generate a
+ 	separate permute vector for each output.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/116583
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Using
+ 	poly_uint64 for scalar lane indices.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (SVE_I): Move further up file.
+ 	(SVE_F): New mode iterator.
+ 	(SVE_ALL): Redefine in terms of SVE_I and SVE_F.
+ 	* config/aarch64/aarch64-sve.md (*<LOGICALF:optab><mode>3): Extend
+ 	to all SVE_F.
+ 
+ 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/116583
+ 	* config/aarch64/aarch64.cc (aarch64_coalesce_units): New function,
+ 	extending the Advanced SIMD handling from...
+ 	(aarch64_evpc_reencode): ...here to SVE data and predicate modes.
+ 
+ 2024-10-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116990
+ 	* tree-vect-loop.cc (vect_analyze_loop_form): Check the current
+ 	loop body for control flow.
+ 
+ 2024-10-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116982
+ 	* tree-vectorizer.h (vect_analyze_loop): Pass in .LOOP_VECTORIZED
+ 	call.
+ 	(vect_analyze_loop_form): Likewise.
+ 	* tree-vect-loop.cc (vect_analyze_loop_form): Reject loops where we
+ 	cannot determine a IV exit for the scalar loop.
+ 	(vect_analyze_loop): Adjust.
+ 	* tree-vectorizer.cc (try_vectorize_loop_1): Likewise.
+ 	* tree-parloops.cc (gather_scalar_reductions): Likewise.
+ 
+ 2024-10-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116896
+ 	* optabs.def (spaceship_optab): Use spaceship$a4 rather than
+ 	spaceship$a3.
+ 	* internal-fn.cc (expand_SPACESHIP): Expect 3 call arguments
+ 	rather than 2, expand the last one, expect 4 operands of
+ 	spaceship_optab.
+ 	* tree-ssa-math-opts.cc: Include cfghooks.h.
+ 	(optimize_spaceship): Check if a single PHI is initialized to
+ 	-1, 0, 1, 2 or -1, 0, 1 values, in that case pass 1 as last (new)
+ 	argument to .SPACESHIP and optimize away the comparisons,
+ 	otherwise pass 0.  Also check for integer comparisons rather than
+ 	floating point, in that case do it only if there is a single PHI
+ 	with -1, 0, 1 values and pass 1 to last argument of .SPACESHIP
+ 	if the <=> is signed, 2 if unsigned.
+ 	* config/i386/i386-protos.h (ix86_expand_fp_spaceship): Add
+ 	another rtx argument.
+ 	(ix86_expand_int_spaceship): Declare.
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Add
+ 	arg3 argument, if it is const0_rtx, expand like before, otherwise
+ 	emit optimized sequence for setting the result into a GPR.
+ 	(ix86_expand_int_spaceship): New function.
+ 	* config/i386/i386.md (UNSPEC_SETCC_SI_SLP): New UNSPEC code.
+ 	(setcc_si_slp): New define_expand.
+ 	(*setcc_si_slp): New define_insn_and_split.
+ 	(setcc + setcc + movzbl): New define_peephole2.
+ 	(spaceship<mode>3): Renamed to ...
+ 	(spaceship<mode>4): ... this.  Add an extra operand, pass it
+ 	to ix86_expand_fp_spaceship.
+ 	(spaceshipxf3): Renamed to ...
+ 	(spaceshipxf4): ... this.  Add an extra operand, pass it
+ 	to ix86_expand_fp_spaceship.
+ 	(spaceship<mode>4): New define_expand for SWI modes.
+ 	* doc/md.texi (spaceship@var{m}3): Renamed to ...
+ 	(spaceship@var{m}4): ... this.  Document the meaning of last
+ 	operand.
+ 
+ 2024-10-07  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_bind_expr): Fix corner case for OpenMP
+ 	allocate directive.
+ 	(gimplify_scan_omp_clauses): Warn if omp_thread_mem_alloc is used
+ 	as allocator with the target/task/taskloop directive.
+ 
+ 2024-10-06  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa-64.h (PA_SECONDARY_MEMORY_NEEDED): Define
+ 	to false.  Update comment.
+ 	* config/pa/pa.md: Modify 64-bit move patterns to support
+ 	copying between integer and floating-point registers using
+ 	stack slot SP-40.
+ 
+ 2024-10-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (no_arg_map): New.
+ 	(vect_get_operand_map): Handle IFN_GOMP_SIMD_LANE.
+ 	(vect_build_slp_tree_1): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_call): Handle single-lane SLP
+ 	for .GOMP_SIMD_LANE calls.
+ 
+ 2024-10-06  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <*-*-freebsd*>: Focus on DWARF
+ 	only.
+ 
+ 2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (nonlocal_goto): Don't clobber
+ 	frame_pointer_rtx.
+ 	(builtin_longjmp): Likewise.
+ 
+ 2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md: Fix indirect_got constraint.
+ 
+ 2024-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR middle-end/116933
+ 	* gimplify.cc (gimple_add_init_for_auto_var): Use the correct macro
+ 	to fetch the source location of the variable.
+ 	* tree.cc (common_builtin_nodes): Remove the 3rd parameter in the
+ 	type of BUILT_IN_CLEAR_PADDING.
+ 
+ 2024-10-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_lower_load_permutations): Prefer
+ 	level 1 even/odd extracts.
+ 
+ 2024-10-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116978
+ 	* diagnostic-format-sarif.cc (sarif_builder::sarif_builder):
+ 	Gracefully handle "main_input_filename_" being NULL.
+ 	(sarif_output_format::sarif_output_format): Replace param
+ 	"base_file_name" with "output_file" and assert that the file
+ 	was opened successfully and has a non-NULL filename.
+ 	(sarif_output_format::~sarif_file_output_format): Move
+ 	responsibility for building the filename and opening the file from
+ 	here to the creator of the instance.
+ 	(sarif_output_format::m_base_file_name): Replace with...
+ 	(sarif_output_format::m_output_file): ...this.
+ 	(diagnostic_output_format_init_sarif_file): Make "line_maps" param
+ 	non-const.  Gracefully handle "base_file_name" being NULL.
+ 	Construct the filename and open the file here, rather than in
+ 	~sarif_file_output_format, and handle failures immediately here,
+ 	rather than at the end of the compile.
+ 	* diagnostic-format-sarif.h: Include "diagnostic-output-file.h".
+ 	(diagnostic_output_format_init_sarif_file): Make "line_maps" param
+ 	non-const.
+ 	* diagnostic-output-file.h: New file.
+ 	* diagnostic.cc (diagnostic_context::emit_diagnostic): New.
+ 	(diagnostic_context::emit_diagnostic_va): New.
+ 	* diagnostic.h (diagnostic_context::emit_diagnostic): New decl.
+ 	(diagnostic_context::emit_diagnostic_va): New decl.
+ 
+ 2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/116962
+ 	* config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New
+ 	function.
+ 	(TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New.
+ 
+ 2024-10-04  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	PR target/116934
+ 	* config/aarch64/iterators.md: Move UNSPEC_COND_SMAX and
+ 	UNSPEC_COND_SMIN to correct iterators.
+ 
+ 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116953
+ 	* config/avr/avr.cc (avr_out_sbxx_branch): Work on a copy of
+ 	the operands rather than on operands itself, which is just
+ 	recog_data.operand and may be clobbered by jump_over_one_insn_p.
+ 
+ 2024-10-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* cfgexpand.cc (add_scope_conflicts_1): Expand comment
+ 	on when non-var clobbers show up.
+ 
+ 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_floatn_mode): Remove.
+ 	(TARGET_FLOATN_MODE): Remove.
+ 
+ 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_floatn_mode): New static function.
+ 	(TARGET_FLOATN_MODE): New define.
+ 
+ 2024-10-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/tuning_models/generic_armv9_a.h
+ 	(generic_armv9a_prefetch_tune): Define.
+ 	(generic_armv9_a_tunings): Use the above.
+ 
+ 2024-10-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/116444
+ 	* config/arm/arm-protos.h (arm_noce_conversion_profitable_p): New
+ 	declaration.
+ 	* config/arm/arm.cc (arm_is_v81m_cond_insn): New helper function used
+ 	in ...
+ 	(arm_noce_conversion_profitable_p): ... here. New function to implement
+ 	...
+ 	(TARGET_NOCE_PROFITABLE_P): ... this target hook.  New define.
+ 
+ 2024-10-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Derement 'slp'
+ 	before dumping which stage we're starting.
+ 
+ 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR pch/116936
+ 	* diagnostic.cc (diagnostic_option_classifier::pch_save): Only call
+ 	fwrite if corresponding length is non-zero.
+ 	(diagnostic_option_classifier::pch_restore): Only call fread if
+ 	corresponding length is non-zero.
+ 
+ 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116921
+ 	* config/i386/i386-expand.cc (ix86_expand_int_compare): Add a SUBREG
+ 	to V8HImode from V8HFmode or V8BFmode before generating a ptest.
+ 
+ 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116925
+ 	* config/i386/sse.md (*minmax<mode>3_2): Assign force_reg result
+ 	back to operands[2] instead of throwing it away.
+ 
+ 2024-10-04  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <h8300-hms>: Drop GCC 2.6
+ 	ABI change note.
+ 
+ 2024-10-04  Sam James  <sam@gentoo.org>
+ 
+ 	* gimplify.cc (gimple_add_init_for_auto_var): Fix 'variable' typo.
+ 
+ 2024-10-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* config/aarch64/aarch64.h (WIDEST_HARDWARE_FP_SIZE): Define to 64.
+ 
+ 2024-10-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Explicit -Wdeprecated enables more warnings.
+ 
+ 2024-10-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Document -Wdeprecated-literal-operator.
+ 
+ 2024-10-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_induction): Initialize
+ 	vec_init.
+ 
+ 2024-10-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/116927
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::is_dead_insn): Insns
+ 	that throw are not dead with -fno-delete-dead-exceptions.
+ 
+ 2024-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116301
+ 	* common.opt (sarif-file-2.2-prerelease): New value for
+ 	-fdiagnostics-format=.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_location_manager::sarif_location_manager): Move
+ 	initialization of m_related_locations_arr here from sarif_result's
+ 	ctor.
+ 	(sarif_location_manager::add_related_location): Implement for
+ 	base class, taking sarif_result's implementation.  Add "builder"
+ 	param.
+ 	(sarif_location_manager::m_related_locations_arr): Move here from
+ 	class sarif_result.
+ 	(class sarif_result): Move m_related_locations_arr field and
+ 	add_related_location vfunc to class sarif_location_manager.
+ 	(sarif_builder::get_version): New accessor.
+ 	(sarif_builder::m_version): New field.
+ 	(sarif_invocation::add_notification_for_ice): Call
+ 	process_worklist on the notification for SARIF 2.2 and later.
+ 	(sarif_location_manager::process_worklist_item): Pass builder to
+ 	calls to add_related_location.
+ 	(sarif_result::on_nested_diagnostic): Likewise.
+ 	(sarif_result::on_diagram): Likewise.
+ 	(sarif_ice_notification::add_related_location): Add builder param.
+ 	For SARIF 2.2 and later chain up to base class impl so that
+ 	notifications get related locations.
+ 	(sarif_builder::sarif_builder): Add "version" param.
+ 	(SARIF_SCHEMA): Delete in favor of...
+ 	(sarif_version_to_url): New function.
+ 	(SARIF_VERSION): Delete in favor of...
+ 	(sarif_version_to_property): New function.
+ 	(make_top_level_object): Update to use m_version for "$schema" and
+ 	"version".
+ 	(sarif_output_format::sarif_output_format): Add "version" param.
+ 	(sarif_stream_output_format::sarif_stream_output_format):
+ 	Likewise.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(selftest::test_sarif_diagnostic_context): Likewise.
+ 	(selftest::test_make_location_object): Likewise.
+ 	(selftest::test_simple_log): Likewise.  Update schema and version
+ 	tests accordingly.
+ 	(selftest::test_simple_log_2): Add "version" param.
+ 	(selftest::test_message_with_embedded_link): Likewise.
+ 	(selftest::run_tests_per_version): New, based on the
+ 	for_each_line_table_case calls in...
+ 	(selftest::diagnostic_format_sarif_cc_tests): Add loop over sarif
+ 	versions.  Replace for_each_line_table_case calls with one
+ 	call to run_tests_per_version.
+ 	* diagnostic-format-sarif.h: Include "diagnostic-format.h".
+ 	(enum class sarif_version): New.
+ 	(diagnostic_output_format_init_sarif_stderr): Move to here from
+ 	diagnostic-format.h.  Add "version" param.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* diagnostic-format.h: Include "diagnostic.h".
+ 	(diagnostic_output_format_init_sarif_stderr): Move from here to
+ 	diagnostic-format-sarif.h.
+ 	* diagnostic.cc: Define INCLUDE_MEMORY.
+ 	Include "diagnostic-format-sarif.h".
+ 	(diagnostic_output_format_init): Pass sarif_version::v2_1_0 to
+ 	existing SARIF options.
+ 	Add case DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
+ 	* diagnostic.h (enum diagnostics_output_format): Add
+ 	DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
+ 
+ 2024-10-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116098
+ 	* tree-ssa-phiopt.cc (move_stmt): Rewrite VCEs from integer to integer
+ 	types to case.
+ 
+ 2024-10-02  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-if-conv.cc (predicate_statements): Fix handling of
+ 	predicated function calls.
+ 
+ 2024-10-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.cc (check_dec_insn): New helper function containing
+ 	code hoisted from...
+ 	(arm_mve_dlstp_check_dec_counter): ... here. Use check_dec_insn to
+ 	check the validity of the candidate dec_insn.
+ 
+ 2024-10-02  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR tree-optimization/116616
+ 	* tree-switch-conversion.cc (can_pow2p): Remove this function.
+ 	(gen_pow2p): Generate bitmagic instead of a builtin.  Remove the
+ 	TYPE parameter.
+ 	(switch_conversion::is_exp_index_transform_viable): Don't call
+ 	can_pow2p.
+ 	(switch_conversion::exp_index_transform): Call gen_pow2p without
+ 	the TYPE parameter.
+ 	* tree-switch-conversion.h: Remove
+ 	m_exp_index_transform_pow2p_type.
+ 
+ 2024-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113197
+ 	* tree-ssa-structalias.cc (handle_call_arg): Remove bougs
+ 	assert.
+ 
+ 2024-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114855
+ 	* predict.cc (ssa_expected_value): New global.
+ 	(expr_expected_value): Do not take bitmap.
+ 	(expr_expected_value_1): Likewise.  Use ssa_expected_value
+ 	to cache results for a SSA def.
+ 	(tree_predict_by_opcode): Adjust.
+ 	(tree_estimate_probability): Manage ssa_expected_value.
+ 	(tree_guess_outgoing_edge_probabilities): Likewise.
+ 
+ 2024-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116566
+ 	* tree-vect-loop.cc (vectorizable_induction): Handle single-lane
+ 	SLP for VLA vectors.
+ 
+ 2024-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <h8300-hms>: Drop obsolete
+ 	reference to binaries download docs.
+ 
+ 2024-10-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/96842
+ 	* doc/invoke.texi (Wheader-guard): Document.
+ 
+ 2024-10-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in ($(OPT_URLS_HTML_DEPS)): Add dependencies of the
+ 	Option-Index.html files on the corresponding index.html files.
+ 	Don't mention the requirement that all languages that have their own
+ 	HTML manuals to be enabled.
+ 
+ 2024-10-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116922
+ 	* gimple-ssa-backprop.cc (remove_unused_var): Handle phi
+ 	nodes correctly.
+ 
+ 2024-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116654
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
+ 	Treat non-grouped accesses like non-SLP.
+ 
+ 2024-10-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 2 matching pattern for signed SAT_SUB.
+ 
+ 2024-10-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_compare): Drop superfluous sub-condition.
+ 
+ 2024-10-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-passes.cc (avr_split_fake_addressing_move): Fix
+ 	a build warning.
+ 
+ 2024-10-01  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md
+ 	(<fmaxmin><mode>3): Remove this instruction pattern.
+ 	(cond_<fmaxmin><mode>): Remove this instruction pattern.
+ 	* config/aarch64/iterators.md: New unspecs and changes to
+ 	iterators and attrs to use the new unspecs
+ 
+ 2024-10-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-inline.cc (expand_call_inline): Remove the store to the
+ 	return slot if it is a global variable that is only written to.
+ 
+ 2024-10-01  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+ 
+ 	* doc/extend.texi: Document the new
+ 	__builtin_is_virtual_base_of builtin; amend the docs for
+ 	__is_base_of.
+ 
+ 2024-10-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116890
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Conversions
+ 	from bool is also should be considered as wanting to happen.
+ 
+ 2024-10-01  Claudio Bantaloukas  <Claudio.Bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_mfp8_type_node): Add node
+ 	for __mfp8 type.
+ 	(aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type.
+ 	(aarch64_init_fp8_types): New function to initialise fp8 types and
+ 	register with language backends.
+ 	* config/aarch64/aarch64.cc (aarch64_mangle_type): Add ABI mangling for
+ 	new type.
+ 	(aarch64_invalid_conversion): Add function implementing
+ 	TARGET_INVALID_CONVERSION hook that blocks conversion to and from the
+ 	__mfp8 type.
+ 	(aarch64_invalid_unary_op): Add function implementing TARGET_UNARY_OP
+ 	hook that blocks operations on __mfp8 other than &.
+ 	(aarch64_invalid_binary_op): Extend TARGET_BINARY_OP hook to disallow
+ 	operations on __mfp8 type.
+ 	(TARGET_INVALID_CONVERSION): Add define.
+ 	(TARGET_INVALID_UNARY_OP): Likewise.
+ 	* config/aarch64/aarch64.h (aarch64_mfp8_type_node): Add node for __mfp8
+ 	type.
+ 	(aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type.
+ 	* config/aarch64/arm_private_fp8.h (mfloat8_t): Add typedef.
+ 
+ 2024-10-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116902
+ 	PR tree-optimization/116842
+ 	* tree-vect-stmts.cc (sort_after_uid): Remove again.
+ 	(hoist_defs_of_uses): Copy defs instead of hoisting them so
+ 	we can zero their UID.
+ 	(vectorizable_load): Separate analysis and transform call,
+ 	do transform on the stmt copy.
+ 
+ 2024-10-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116905
+ 	* tree-vect-stmts.cc (supportable_indirect_convert_operation):
+ 	Fix guard for vect_get_range_info.
+ 
+ 2024-10-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116906
+ 	* tree-ssa-pre.cc (prune_clobbered_mems): Add clean_traps
+ 	argument.
+ 	(compute_antic_aux): Direct prune_clobbered_mems to prune
+ 	all traps when any MAX solution was involved in the ANTIC
+ 	computation.
+ 	(compute_partial_antic_aux): Adjust.
+ 
+ 2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116899
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Set m_workback
+ 	to vNULL instead of creating it, growing and then truncating.
+ 	(ranger_cache::fill_block_cache): Use safe_push rather than quick_push
+ 	on m_workback.
+ 	(ranger_cache::range_from_dom): Likewise.
+ 
+ 2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116898
+ 	* gimple-range-cache.cc (ranger_cache::block_range): If a SSA_NAME
+ 	with NULL def_bb isn't SSA_NAME_IS_DEFAULT_DEF, return false instead
+ 	of failing assertion.  Formatting fix.
+ 
+ 2024-09-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ipa/113996
+ 	* ipa-icf.cc (sem_function::get_hash): Hash DECL_STATIC_CHAIN.
+ 	(sem_function::equals_wpa): Compare it.
+ 	(sem_function::equals_private): Likewise.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-show-locus.cc
+ 	(selftest::test_diagnostic_show_locus_unknown_location): Move call
+ 	to dc.test_show_locus into ASSERT_STREQ, and compare against its
+ 	result, rather than explicitly using dc.m_printer.
+ 	(selftest::test_one_liner_simple_caret): Likewise.
+ 	(selftest::test_one_liner_no_column): Likewise.
+ 	(selftest::test_one_liner_caret_and_range): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after): Likewise.
+ 	(selftest::test_one_liner_fixit_remove): Likewise.
+ 	(selftest::test_one_liner_fixit_replace): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2): Likewise.
+ 	(selftest::test_one_liner_labels): Likewise.
+ 	(selftest::test_one_liner_simple_caret_utf8): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_remove_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1_utf8): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2_utf8): Likewise.
+ 	(selftest::test_one_liner_labels_utf8): Likewise.
+ 	(selftest::test_one_liner_colorized_utf8): Likewise.
+ 	(selftest::test_add_location_if_nearby): Likewise.
+ 	(selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
+ 	(selftest::test_overlapped_fixit_printing): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_2): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline_2): Likewise.
+ 	(selftest::test_fixit_replace_containing_newline): Likewise.
+ 	(selftest::test_fixit_deletion_affecting_newline): Likewise.
+ 	(selftest::test_tab_expansion): Likewise.
+ 	(selftest::test_escaping_bytes_1): Likewise.
+ 	(selftest::test_escaping_bytes_2): Likewise.
+ 	(selftest::test_line_numbers_multiline_range): Likewise.
+ 	* selftest-diagnostic.cc
+ 	(selftest::test_diagnostic_context::test_show_locus): Return the
+ 	formatted text of m_printer.
+ 	* selftest-diagnostic.h
+ 	(selftest::test_diagnostic_context::test_show_locus): Convert
+ 	return type from void to const char *.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-show-locus.cc (diagnostic_context::maybe_show_locus):
+ 	Convert param "pp" from * to &.  Drop logic for using the
+ 	context's m_printer when the param is null.
+ 	* diagnostic.h (diagnostic_context::maybe_show_locus): Convert
+ 	param "pp" from * to &.
+ 	(diagnostic_show_locus): Drop default "nullptr" value for pp
+ 	param.  Assert that it and context are nonnull.  Pass pp by
+ 	reference to maybe_show_locus.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-format-json.cc (json_from_expanded_location): Replace
+ 	call to diagnostic_context::converted_column with call to
+ 	diagnostic_column_policy::converted_column.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_location_object): Replace call to
+ 	diagnostic_show_locus with call to
+ 	diagnostic_source_print_policy::print.
+ 	* diagnostic-format-text.cc (get_location_text): Replace call to
+ 	diagnostic_context::get_location_text with call to
+ 	diagnostic_column_policy::get_location_text.
+ 	(diagnostic_text_output_format::report_current_module): Replace call
+ 	to diagnostic_context::converted_column with call to
+ 	diagnostic_column_policy::converted_column.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_output_format):
+ 	Initialize m_column_policy.
+ 	(diagnostic_text_output_format::get_column_policy): New.
+ 	(diagnostic_text_output_format::m_column_policy): New.
+ 	* diagnostic-path.cc (class path_print_policy): New.
+ 	(event_range::maybe_add_event): Replace diagnostic_context param
+ 	with path_print_policy.
+ 	(event_range::print): Convert "pp" from * to &.  Convert first
+ 	param of start_span callback from diagnostic_context to
+ 	diagnostic_location_print_policy.
+ 	(path_summary::path_summary): Convert first param from
+ 	diagnostic_text_output_format to path_print_policy.  Add
+ 	colorize param.  Update for changes to
+ 	event_range::maybe_add_event.
+ 	(thread_event_printer::print_swimlane_for_event_range): Assert
+ 	that pp is non-null.  Update for change to event_range::print.
+ 	(diagnostic_text_output_format::print_path): Pass
+ 	path_print_policy to path_summary's ctor.
+ 	(selftest::test_empty_path): Likewise.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	* diagnostic-show-locus.cc (colorizer::set_range): Update for
+ 	change to m_pp.
+ 	(colorizer::m_pp): Convert from * to &.
+ 	(class layout): Add friend class layout_printer and move various
+ 	decls to it.
+ 	(layout::m_pp): Drop field.
+ 	(layout::m_policy): Rename to...
+ 	(layout::m_char_policy): ...this.
+ 	(layout::m_colorizer): Move field to class layout_printer.
+ 	(layout::m_diagnostic_path_p): Drop field.
+ 	(class layout_printer): New class, by refactoring class layout.
+ 	(colorizer::colorizer): Convert "pp" param from * to &.
+ 	(colorizer::set_named_color): Update for above change.
+ 	(colorizer::begin_state): Likewise.
+ 	(colorizer::finish_state): Likewise.
+ 	(make_policy): Rename to...
+ 	(make_char_policy): ...this, and update param from
+ 	diagnostic_context to diagnostic_source_print_policy.
+ 	(layout::layout): Update param from diagnostic_context to
+ 	diagnostic_source_print_policy.  Drop params "diagnostic_kind" and
+ 	"pp", moving these and other material to class layout_printer.
+ 	(layout::maybe_add_location_range): Update for renamed field.
+ 	(layout::print_gap_in_line_numbering): Convert to...
+ 	(layout_printer::print_gap_in_line_numbering): ...this.
+ 	(layout::calculate_x_offset_display): Update for renamed field.
+ 	(layout::print_source_line): Convert to...
+ 	(layout_printer::print_source_line): ...this.
+ 	(layout::print_leftmost_column): Convert to...
+ 	(layout_printer::print_leftmost_column): ...this.
+ 	(layout::start_annotation_line): Convert to...
+ 	(layout_printer::start_annotation_line): ...this.
+ 	(layout::print_annotation_line): Convert to...
+ 	(layout_printer::print_annotation_line): ...this.
+ 	(layout::print_any_labels): Convert to...
+ 	(layout_printer::print_any_labels): ...this.
+ 	(layout::print_leading_fixits): Convert to...
+ 	(layout_printer::print_leading_fixits): ...this.
+ 	(layout::print_trailing_fixits): Convert to...
+ 	(layout_printer::print_trailing_fixits): ...this.
+ 	(layout::print_newline): Convert to...
+ 	(layout_printer::print_newline): ...this.
+ 	(layout::get_state_at_point): Make const.
+ 	(layout::get_x_bound_for_row): Make const.
+ 	(layout::move_to_column): Convert to...
+ 	(layout_printer::move_to_column): ...this.
+ 	(layout::show_ruler): Convert to...
+ 	(layout_printer::show_ruler): ...this.
+ 	(layout::print_line): Convert to...
+ 	(layout_printer::print_line): ...this.
+ 	(layout::print_any_right_to_left_edge_lines): Convert to...
+ 	(layout_printer::print_any_right_to_left_edge_lines): ...this.
+ 	(layout::print_any_right_to_left_edge_lines): Likewise.
+ 	(layout_printer::layout_printer): New.
+ 	(layout::update_any_effects): Delete, moving logic to
+ 	layout_printer::print.
+ 	(gcc_rich_location::add_location_if_nearby): Update param from
+ 	diagnostic_context to diagnostic_source_print_policy.  Add
+ 	overload taking a diagnostic_context.
+ 	(diagnostic_context::maybe_show_locus): Move handling of null
+ 	pretty_printer here, from layout ctor.  Convert call to
+ 	diagnostic_context::show_locus to
+ 	diagnostic_source_print_policy::print.
+ 	(diagnostic_source_print_policy::diagnostic_source_print_policy):
+ 	New.
+ 	(diagnostic_context::show_locus): Convert to...
+ 	(diagnostic_source_print_policy::print): ...this.  Convert pp
+ 	from * to &.
+ 	(layout_printer::print): New, based on material in
+ 	diagnostic_context::show_locus.
+ 	(selftest::make_char_policy): New.
+ 	(selftest::test_display_widths): Update for above changes.
+ 	(selftest::test_offset_impl): Likewise.
+ 	(selftest::test_layout_x_offset_display_utf8): Likewise.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_diagnostic_show_locus_unknown_location): Use
+ 	test_diagnostic_context::test_show_locus rather than
+ 	diagnostic_show_locus.
+ 	(selftest::test_one_liner_no_column): Likewise.
+ 	(selftest::test_one_liner_caret_and_range): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after): Likewise.
+ 	(selftest::test_one_liner_fixit_remove): Likewise.
+ 	(selftest::test_one_liner_fixit_replace): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2): Likewise.
+ 	(selftest::test_one_liner_labels): Likewise.
+ 	(selftest::test_one_liner_simple_caret_utf8): Likewise.
+ 	(selftest::test_one_liner_caret_and_range_utf8): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_remove_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1_utf8): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2_utf8): Likewise.
+ 	(selftest::test_one_liner_labels_utf8): Likewise.
+ 	(selftest::test_one_liner_colorized_utf8): Likewise.
+ 	(selftest::test_add_location_if_nearby): Likewise.
+ 	(selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
+ 	(selftest::test_overlapped_fixit_printing): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_2): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline_2): Likewise.
+ 	(selftest::test_fixit_replace_containing_newline): Likewise.
+ 	(selftest::test_fixit_deletion_affecting_newline): Likewise.
+ 	(selftest::test_tab_expansion): Likewise.
+ 	(selftest::test_escaping_bytes_1): Likewise.
+ 	(selftest::test_escaping_bytes_2): Likewise.
+ 	(selftest::test_line_numbers_multiline_range): Likewise.
+ 	* diagnostic.cc
+ 	(diagnostic_column_policy::diagnostic_column_policy): New.
+ 	(diagnostic_context::converted_column): Convert to...
+ 	(diagnostic_column_policy::converted_column): ...this.
+ 	(diagnostic_context::get_location_text): Convert to...
+ 	(diagnostic_column_policy::get_location_text): ...this, adding
+ 	"show_column" param.
+ 	(diagnostic_location_print_policy::diagnostic_location_print_policy):
+ 	New ctors.
+ 	(default_diagnostic_start_span_fn): Convert param from
+ 	diagnostic_context * to const diagnostic_location_print_policy &.
+ 	Add "pp" param.
+ 	(selftest::assert_location_text): Update for above changes.
+ 	(selftest::test_diagnostic_get_location_text): Rename to...
+ 	(selftest::test_get_location_text): ...this.
+ 	(selftest::c_diagnostic_cc_tests): Update for renaming.
+ 	* diagnostic.h (class diagnostic_location_print_policy): New
+ 	forward decl.
+ 	(class diagnostic_source_print_policy): New forward decl.
+ 	(diagnostic_start_span_fn): Convert first param from
+ 	diagnostic_context * to const diagnostic_location_print_policy &
+ 	and add pretty_printer * param.
+ 	(class diagnostic_column_policy): New.
+ 	(class diagnostic_location_print_policy): New.
+ 	(class diagnostic_source_print_policy): New.
+ 	(class diagnostic_context): Add friend class
+ 	diagnostic_source_print_policy.
+ 	(diagnostic_context::converted_column): Drop decl in favor of
+ 	diagnostic_column_policy::converted_column.
+ 	(diagnostic_context::get_location_text): Drop decl in favor of
+ 	diagnostic_column_policy::get_location_text.
+ 	(diagnostic_context::show_locus): Drop decl in favor of
+ 	diagnostic_source_print_policy::print.
+ 	(default_diagnostic_start_span_fn): Update for change to
+ 	diagnostic_start_span_fn.
+ 	* gcc-rich-location.h (class diagnostic_source_print_policy): New
+ 	forward decl.
+ 	(gcc_rich_location::add_location_if_nearby): Convert first param
+ 	from diagnostic_context to diagnostic_source_print_policy.  Add
+ 	overload taking diagnostic_context.
+ 	* selftest-diagnostic.cc
+ 	(selftest::test_diagnostic_context::test_diagnostic_context): Turn
+ 	off colorization.
+ 	(selftest::test_diagnostic_context::start_span_cb): Update for
+ 	change to callback type.
+ 	(test_diagnostic_context::test_show_locus): New.
+ 	* selftest-diagnostic.h
+ 	(selftest::test_diagnostic_context::start_span_cb): Update for
+ 	change to callback type.
+ 	(test_diagnostic_context::test_show_locus): New decl.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-format-json.cc (diagnostic_output_format_init_json):
+ 	Pass in the format.  Use the format's printer when disabling
+ 	colorization.  Move the call to set_output_format into here.
+ 	(diagnostic_output_format_init_json_stderr): Update for above
+ 	change.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	* diagnostic-format-sarif.cc
+ 	(diagnostic_output_format_init_sarif): Use the format's printer
+ 	when disabling colorization.
+ 	* diagnostic-path.cc (selftest::test_empty_path): Use the
+ 	text_output's printer.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* attribs.cc: Include "pretty-print-markup.h".
+ 	(decls_mismatched_attributes): Defer colorization choices by
+ 	replacing printing to a pretty_printer * param with appending
+ 	to a vec of strings.
+ 	(maybe_diag_alias_attributes): As above, replacing pretty_printer
+ 	with usage of pp_markup::comma_separated_quoted_strings and "%e"
+ 	in two places.
+ 	* attribs.h (decls_mismatched_attributes): Update decl.
+ 	* gimple-ssa-warn-access.cc: Include "pretty-print-markup.h".
+ 	(pass_waccess::maybe_warn_memmodel): Defer colorization choices by
+ 	replacing printing to a pretty_printer * param with use of
+ 	pp_markup::comma_separated_quoted_strings and "%e".
+ 	(pass_waccess::maybe_warn_memmodel): Likewise, replacing printing
+ 	to a temporary buffer.
+ 	* pretty-print-markup.h
+ 	(class pp_markup::comma_separated_quoted_strings): New.
+ 	* pretty-print.cc
+ 	(pp_markup::comma_separated_quoted_strings::add_to_phase_2): New.
+ 	(selftest::test_pp_printf_within_pp_element): New.
+ 	(selftest::test_comma_separated_quoted_strings): New.
+ 	(selftest::pretty_print_cc_tests): Call the new tests.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print.cc (output_buffer::dump): New.
+ 	(pretty_printer::dump): New.
+ 	* pretty-print.h (output_buffer::dump): New decls.
+ 	(pretty_printer::dump): New decls.
+ 
+ 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::~sarif_builder): New,
+ 	deleting any remaining artifact objects.
+ 	(sarif_builder::make_run_object): Empty the artifact map.
+ 	* ordered-hash-map.h (ordered_hash_map::empty): New.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/c6x/c6x.md (sdot_prodv2hi): Renamed to...
+ 	(sdot_prodsiv2hi): ...this.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/rs6000/altivec.md (udot_prod<mode>): Renamed to...
+ 	(udot_prodv4si<mode>): ...this.
+ 	(sdot_prodv8hi): Renamed to...
+ 	(sdot_prodv4siv8hi): ...this.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/mips/loongson-mmi.md (sdot_prodv4hi): Renamed to...
+ 	(sdot_prodv2siv4hi): ...this.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/arc/simdext.md (sdot_prodv2hi): Renamed to...
+ 	(sdot_prodsiv2hi): ...this.
+ 	(udot_prodv2hi): Renamed to...
+ 	(udot_prodsiv2hi): ...this.
+ 	(sdot_prodv4hi): Renamed to...
+ 	(sdot_prodv2siv4hi): ...this.
+ 	(udot_prodv4hi): Renamed to...
+ 	(udot_prodv2siv4hi): ...this.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/i386/mmx.md (usdot_prodv8qi): Renamed to...
+ 	(usdot_prodv2siv8qi): ...this.
+ 	(sdot_prodv8qi): Renamed to...
+ 	(sdot_prodv2siv8qi): ...this.
+ 	(udot_prodv8qi): Renamed to...
+ 	(udot_prodv2siv8qi): ...this.
+ 	(usdot_prodv4hi): Renamed to...
+ 	(usdot_prodv2siv4hi): ...this.
+ 	(udot_prodv4hi): Renamed to...
+ 	(udot_prodv2siv4hi): ...this.
+ 	(sdot_prodv4hi): Renamed to...
+ 	(sdot_prodv2siv4hi): ...this.
+ 	* config/i386/sse.md (sdot_prod<mode>): Renamed to...
+ 	(sdot_prod<sseunpackmodelower><mode>): ...this.
+ 	(sdot_prodv4si): Renamed to...
+ 	(sdot_prodv2div4si): ...this.
+ 	(usdot_prod<mode>): Renamed to...
+ 	(usdot_prod<ssedvecmodelower><mode>): ...this.
+ 	(sdot_prod<mode>): Renamed to...
+ 	(sdot_prod<ssedvecmodelower><mode>): ...this.
+ 	(sdot_prodv64qi): Renamed to...
+ 	(sdot_prodv16siv64qi): ...this.
+ 	(udot_prod<mode>): Renamed to...
+ 	(udot_prod<ssedvecmodelower><mode>): ...this.
+ 	(udot_prodv64qi): Renamed to...
+ 	(udot_prodv16qiv64qi): ...this.
+ 	(usdot_prod<mode>): Renamed to...
+ 	(usdot_prod<sseunpackmodelower><mode>): ...this.
+ 	(udot_prod<mode>): Renamed to...
+ 	(udot_prod<sseunpackmodelower><mode>): ...this.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/arm/neon.md (<sup>dot_prod<vsi2qi>): Renamed to...
+ 	(<sup>dot_prod<mode><vsi2qi>): ...this.
+ 	(neon_<sup>dot<vsi2qi>): Renamed to...
+ 	(neon_<sup>dot<mode><vsi2qi>): ...this.
+ 	(neon_usdot<vsi2qi>): Renamed to...
+ 	(neon_usdot<mode><vsi2qi>): ...this.
+ 	(usdot_prod<vsi2qi>): Renamed to...
+ 	(usdot_prod<mode><vsi2qi>): ...this.
+ 	* config/arm/arm-builtins.cc
+ 	(CODE_FOR_neon_sdotv8qi): Definie as alias to
+ 	new CODE_FOR_neon_sdotv2siv8qi.
+ 	(CODE_FOR_neon_udotv8qi): Definie as alias to
+ 	new CODE_FOR_neon_udotv2siv8qi.
+ 	(CODE_FOR_neon_usdotv8qi): Definie as alias to
+ 	new CODE_FOR_neon_usdotv2siv8qi.
+ 	(CODE_FOR_neon_sdotv16qi): Definie as alias to
+ 	new CODE_FOR_neon_sdotv4siv16qi.
+ 	(CODE_FOR_neon_udotv16qi): Definie as alias to
+ 	new CODE_FOR_neon_udotv4siv16qi.
+ 	(CODE_FOR_neon_usdotv16qi): Definie as alias to
+ 	new CODE_FOR_neon_usdotv4siv16qi.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(<sur>dot_prod<vsi2qi><vczle><vczbe>): Renamed to...
+ 	(<sur>dot_prod<mode><vsi2qi><vczle><vczbe>): ...this.
+ 	(usdot_prod<vsi2qi><vczle><vczbe>): Renamed to...
+ 	(usdot_prod<mode><vsi2qi><vczle><vczbe>): ...this.
+ 	(<su>sadv16qi): Adjust call to gen_udot_prod take second mode.
+ 	(popcount<mode2>): fix use of `udot_prod_optab'.
+ 	* config/aarch64/aarch64-sve.md
+ 	(<sur>dot_prod<vsi2qi>): Renamed to...
+ 	(<sur>dot_prod<mode><vsi2qi>): ...this.
+ 	(@<sur>dot_prod<vsi2qi>): Renamed to...
+ 	(@<sur>dot_prod<mode><vsi2qi>): ...this.
+ 	(<su>sad<vsi2qi>): Adjust call to gen_udot_prod take second mode.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve_<sur>dotvnx4sivnx8hi): Renamed to...
+ 	(<sur>dot_prodvnx4sivnx8hi): ...this.
+ 	* config/aarch64/aarch64-simd-builtins.def: Modify macro
+ 	expansion-based initialization and expansion
+ 	of (u|s|us)dot_prod builtins.
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(CODE_FOR_aarch64_sdot_prodv8qi): Define as alias to
+ 	new CODE_FOR_sdot_prodv2siv8qi.
+ 	(CODE_FOR_aarch64_udot_prodv8qi): Define as alias to
+ 	new CODE_FOR_udot_prodv2siv8qi.
+ 	(CODE_FOR_aarch64_usdot_prodv8qi): Define as alias to
+ 	new CODE_FOR_usdot_prodv2siv8qi.
+ 	(CODE_FOR_aarch64_sdot_prodv16qi): Define as alias to
+ 	new CODE_FOR_sdot_prodv4siv16qi.
+ 	(CODE_FOR_aarch64_udot_prodv16qi): Define as alias to
+ 	new CODE_FOR_udot_prodv4siv16qi.
+ 	(CODE_FOR_aarch64_usdot_prodv16qi): Define as alias to
+ 	new CODE_FOR_usdot_prodv4siv16qi.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdot_impl::expand): s/direct/convert/ in
+ 	`convert_optab_handler_for_sign' function call.
+ 	(svusdot_impl::expand): add second mode argument in call to
+ 	`code_for_dot_prod'.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::convert_optab_handler_for_sign): New class
+ 	method.
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(class function_expander): Add prototype for new
+ 	`convert_optab_handler_for_sign' method.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* gimple-match-exports.cc (directly_supported_p): Add overload
+ 	for conversion-type optabs.
+ 	* gimple-match.h (directly_supported_p): Add new function
+ 	prototype.
+ 	* optabs.cc (expand_widen_pattern_expr): Make the
+ 	DOT_PROD_EXPR tree code use `find_widening_optab_handler' to
+ 	retrieve icode.
+ 	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): make it
+ 	call conversion-type overloaded `directly_supported_p'.
+ 	* tree-vect-patterns.cc (vect_supportable_conv_optab_p): New.
+ 	(vect_recog_dot_prod_pattern): s/direct/conv/ in call to
+ 	`vect_supportable_direct_optab_p'.
+ 
+ 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* optabs.def (sdot_prod_optab): Convert from OPTAB_D to
+ 	OPTAB_CD.
+ 	(udot_prod_optab): Likewise.
+ 	(usdot_prod_optab): Likewise.
+ 	* doc/md.texi (Standard Names): update entries for u,s and us
+ 	dot_prod names.
+ 
+ 2024-09-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116879
+ 	* tree-vect-loop.cc (vect_analyze_loop_form): Scan all
+ 	blocks that form the latch.
+ 
+ 2024-09-30  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/116817
+ 	* tree-vect-patterns.cc (vect_recog_bool_pattern): Check for const or
+ 	externals.
+ 
+ 2024-09-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116842
+ 	* tree-vect-stmts.cc (hoist_defs_of_uses): Sort stmts to hoist
+ 	after UID to avoid breaking vect_stmt_dominates_stmt_p.
+ 
+ 2024-09-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116785
+ 	* tree-ssa-structalias.cc (get_constraint_for_1): Only
+ 	volatile qualified reads produce ANYTHING.
+ 
+ 2024-09-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116850
+ 	* gimple-ssa-isolate-paths.cc (bb_split_points): New global.
+ 	(insert_trap): Delay BB splitting if post-doms are computed.
+ 	(find_explicit_erroneous_behavior): Process delayed BB
+ 	splitting after releasing post dominators.
+ 	(gimple_ssa_isolate_erroneous_paths): Do not free post-dom
+ 	info here.
+ 
+ 2024-09-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 1 matching pattern for signed SAT_SUB.
+ 	* tree-ssa-math-opts.cc (gimple_signed_integer_sat_sub): Add new
+ 	decl for generated SAT_SUB matching func.
+ 	(match_unsigned_saturation_sub): Rename from...
+ 	(match_saturation_sub): ...Rename to and add signed SAT_SUB matching.
+ 	(math_opts_dom_walker::after_dom_children): Leverage the named
+ 	match func for both the unsigned and signed SAT_SUB.
+ 
+ 2024-09-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_sssub): Add new func
+ 	decl for expanding signed SAT_SUB.
+ 	* config/riscv/riscv.cc (riscv_expand_sssub): Add new func impl
+ 	for expanding signed SAT_SUB.
+ 	* config/riscv/riscv.md (sssub<mode>3): Add new pattern sssub
+ 	for scalar signed integer.
+ 
+ 2024-09-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116627
+ 	* cselib.cc (remove_useless_values): Discard useless locs
+ 	even from preserved cselib_vals in cselib_preserved_hash_table
+ 	hash table.
+ 
+ 2024-09-29  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* doc/extend.texi (SH Operand Modifiers): New.
+ 
+ 2024-09-29  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
+ 
+ 	PR target/108038
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): New
+ 	simplification.
+ 
+ 2024-09-29  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* doc/sourcebuild.texi: Document struct-layout-1.exp.
+ 
+ 2024-09-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <i?86-*-linux*>: Remove note
+ 	from 2003.
+ 
+ 2024-09-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libstdc++/116847
+ 	* diagnostic.h (diagnostic_option_classifier): Add pch_save and
+ 	pch_restore method declarations.
+ 	(diagnostic_context): Add pch_save and pch_restore inline method
+ 	definitions.
+ 	* diagnostic.cc (diagnostic_option_classifier::pch_save): New method.
+ 	(diagnostic_option_classifier::pch_restore): Likewise.
+ 
+ 2024-09-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libstdc++/116847
+ 	* diagnostic.h (diagnostic_option_classifier): Change type
+ 	of m_classification_history from diagnostic_classification_change_t *
+ 	to vec<diagnostic_classification_change_t>.  Change type of
+ 	m_push_list from int * to vec<int>.  Remove m_n_classification_history
+ 	and m_n_push members.
+ 	* diagnostic.cc (diagnostic_option_classifier::init): Set m_push_list
+ 	to vNULL rather than nullptr.  Don't initialize m_n_push.  Initialize
+ 	m_classification_history to vNULL.
+ 	(diagnostic_option_classifier::fini): Call release () method on
+ 	m_push_list instead of free on it.  Call release () on
+ 	m_classification_history.  Don't clear m_n_push.
+ 	(diagnostic_option_classifier::push): Adjust for m_push_list and
+ 	m_classification_history being vectors rather than custom allocated
+ 	arrays with counter.
+ 	(diagnostic_option_classifier::pop): Likewise.
+ 	(classify_diagnostic): Adjust for m_classification_history being
+ 	vector rather than custom allocated array with counter.
+ 	(update_effective_level_from_pragmas): Likewise.
+ 
+ 2024-09-27  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.h: Add PTA_BDVER1, PTA_BDVER2, PTA_BDVER3,
+ 	PTA_BDVER4, PTA_BTVER1 and PTA_BTVER2.
+ 	* common/config/i386/i386-common.cc (processor_alias_table)
+ 	<"bdver1">: Use PTA_BDVER1.
+ 	<"bdver2">: Use PTA_BDVER2.
+ 	<"bdver3">: Use PTA_BDVER3.
+ 	<"bdver4">: Use PTA_BDVER4.
+ 	<"btver1">: Use PTA_BTVER1.  Use M_CPU_TYPE (AMD_BTVER1).
+ 	<"btver2">: Use PTA_BTVER2.
+ 	<"shanghai>: Use M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI).
+ 	<"istanbul>: Use M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL).
+ 
+ 2024-09-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR middle-end/116861
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Backup
+ 	the next psi iterator before remove the phi node.
+ 
+ 2024-09-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/contrib.texi (Richard Biener): Move entry.
+ 
+ 2024-09-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116818
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Consider
+ 	VMAT_GATHER_SCATTER instead of VMAT_ELEMENTWISE also for SLP.
+ 	(vectorizable_load): For single-lane VMAT_GATHER_SCATTER also
+ 	ignore permutations.
+ 
+ 2024-09-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Use the new vect_get_num_copies overload.  Only divide by
+ 	group_size for SLP for load-store lanes.
+ 
+ 2024-09-27  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116848
+ 	* tree-ssa-loop-unswitch.cc (tree_ssa_unswitch_loops): Call mark_ssa_maybe_undefs.
+ 	(is_maybe_undefined): Call ssa_name_maybe_undef_p instead of ondemand undef.
+ 
+ 2024-09-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114855
+ 	* params.opt (--param transitive-relations-work-bound): New.
+ 	* doc/invoke.texi (--param transitive-relations-work-bound):
+ 	Document.
+ 	* value-relation.cc (dom_oracle::register_transitives):
+ 	Assing an overall work budget, bounding the dominator walk and
+ 	the number of relations processed.
+ 	(dom_oracle::record): Only register_transitives when the
+ 	number of already registered relations does not yet exceed
+ 	the per-BB limit.
+ 
+ 2024-09-26  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* langhooks-def.h (lhd_omp_deep_mapping_p,
+ 	lhd_omp_deep_mapping_cnt, lhd_omp_deep_mapping): New.
+ 	(LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT,
+ 	LANG_HOOKS_OMP_DEEP_MAPPING): Define.
+ 	(LANG_HOOKS_DECLS): Use it.
+ 	* langhooks.cc (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt,
+ 	lhd_omp_deep_mapping): New stubs.
+ 	* langhooks.h (struct lang_hooks_for_decls): Add new hooks
+ 	* omp-expand.cc (expand_omp_target): Handle dynamic-size
+ 	addr/sizes/kinds arrays.
+ 	* omp-low.cc (build_sender_ref, fixup_child_record_type,
+ 	scan_sharing_clauses, lower_omp_target): Update to handle
+ 	new hooks and dynamic-size addr/sizes/kinds arrays.
+ 
+ 2024-09-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* pretty-print.cc (allocate_object): Use obstack_blank rather than
+ 	obstack_grow.
+ 
+ 2024-09-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <*-*-mingw32>: Remove note regarding
+ 	binutils 2.16.
+ 
+ 2024-09-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* match.pd: Extend A CMP 0 ? A : -A into (type)A CMP 0 ? A : -A.
+ 	Extend A CMP 0 ? A : -A into (type) A CMP 0 ? A : -A.
+ 
+ 2024-09-26  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/mmx.md:
+ 	(VQI_16_32_64): New mode iterator for 8-byte, 4-byte, and 2-byte QImode.
+ 	(popcount<mode>2): New pattern for popcount of V2QI/V4QI/V8QI mode.
+ 	(popcount<mode>2): New pattern for popcount of V2HI/V4HI mode.
+ 	(popcountv2si2): New pattern for popcount of V2SI mode.
+ 
+ 2024-09-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.h (VECTOR_STORE_FLAG_VALUE): New macro.
+ 
+ 2024-09-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add optional nop_convert for signed SAT_ADD case 4.
+ 
+ 2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR other/116801
+ 	* common.opt.urls: Regenerate.
+ 
+ 2024-09-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116738
+ 	* config/i386/i386.cc (ix86_fold_builtin): Handle
+ 	IX86_BUILTIN_M{IN,AX}{S,P}{S,H,D}*.
+ 	(ix86_gimple_fold_builtin): Handle IX86_BUILTIN_M{IN,AX}P{S,H,D}*.
+ 
+ 2024-09-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/116839
+ 	* config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it
+ 	static.  Return if TLS address is thread register plus an integer
+ 	register.
+ 
+ 2024-09-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116772
+ 	* generic-match-head.cc (expr_no_side_effects_p): New function
+ 	* gimple-match-head.cc (expr_no_side_effects_p): New function
+ 	* match.pd (`a != 0 ? a / b : 0`): Check expr_no_side_effects_p.
+ 	(`a != 0 ? a * b : 0`, `a != 0 ? a & b : 0`): Likewise.
+ 
+ 2024-09-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR tree-optimization/114326
+ 	* match.pd: Add two patterns to fold a ^ b to 0, when a == b.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* value-range.cc (get_bitmask_from_range): Remove redundant
+ 	compare of xorv with zero.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* wide-int.h (wide_int_storage::wide_int_storage): Branch
+ 	on source precision to avoid data dependence on memcpy
+ 	destination.
+ 	(wide_int_storage::operator=): Likewise.
+ 
+ 2024-09-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR tree-optimization/109393
+ 	* match.pd: (A * B) + (-C) -> (B - C/A) * A, if C a multiple of A.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-reassoc.cc (break_up_subtract_bb): Remove recursion.
+ 	(reassociate_bb): Likewise.
+ 	(do_reassoc): Implement worklist based dominator walks for
+ 	both break_up_subtract_bb and reassociate_bb.
+ 
+ 2024-09-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/114855
+ 	* tree-ssa-threadedge.cc: Remove unneeded recursion.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* ipa-utils.cc (find_always_executed_bbs): Switch result
+ 	bitmap to tree view.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/114855
+ 	* ira.cc (add_store_equivs): Use sbitmap for tracking
+ 	visited insns.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* ira.cc (ira): Gate add_store_equivs on flag_expensive_optimizations.
+ 
+ 2024-09-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114855
+ 	* value-relation.cc (equiv_oracle::equiv_oracle): Switch
+ 	m_equiv_set to tree view.
+ 
+ 2024-09-25  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.opt: Update the features included in apxf.
+ 
+ 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107637
+ 	* omp-general.cc (find_combined_omp_for, find_nested_loop_xform):
+ 	Handle CLEANUP_POINT_EXPR like TRY_FINALLY_EXPR.
+ 	* doc/invoke.texi (frange-for-ext-temps): Document.  Add
+ 	-fconcepts to the C++ option list.
+ 
+ 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Fix comment
+ 	typo, insead -> instead.
+ 
+ 2024-09-24  Yixuan Chen  <chenyixuan@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv.h: Fix FIXED_REGISTERS comment missing return
+ 	address register.
+ 
+ 2024-09-24  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* omp-general.cc (omp_check_context_selector): Reject other
+ 	properties in the same selector set with kind(any).  Also reject
+ 	duplicate name-list properties.
+ 
+ 2024-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* range-op.cc (operator_rshift::op1_range): Use wi::mask instead
+ 	of shift and not.
+ 
+ 2024-09-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR middle-end/116814
+ 	* tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Make
+ 	ifn is_supported type check based on operand instead of lhs.
+ 
+ 2024-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116819
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): When the SLP
+ 	representative isn't relevant signal failure instead of
+ 	success.
+ 
+ 2024-09-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (vec_extract<mode><vls_quarter>):
+ 	Add quarter vec-vec extract.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 
+ 2024-09-24  Jason Merrill  <jason@redhat.com>
+ 
+ 	* configure.ac (CXX_WARNING_OPTS): Change -Wno-narrowing
+ 	to -Wno-error=narrowing.
+ 	* configure: Regenerate.
+ 	* config/i386/i386.h (debugger_register_map)
+ 	(debugger64_register_map)
+ 	(svr4_debugger_register_map): Make unsigned.
+ 	* config/i386/i386.cc: Likewise.
+ 	* diagnostic-event-id.h (diagnostic_thread_id_t): Make int.
+ 	* vec.h (vec::size): Make unsigned int.
+ 	* ipa-modref.cc (escape_point::arg): Make unsigned.
+ 	(modref_lattice::add_escape_point): Use eaf_flags_t.
+ 	(update_escape_summary_1): Use eaf_flags_t, && for bool.
+ 	* pair-fusion.cc (pair_fusion_bb_info::track_access):
+ 	Make mem_size unsigned int.
+ 	* pretty-print.cc (format_phase_2): Cast va_arg to char.
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Make nheaders
+ 	unsigned, remove cast.
+ 	* tree-ssa-structalias.cc (bitpos_of_field): Return unsigned.
+ 	(push_fields_onto_fieldstack):Make offset unsigned, remove cast.
+ 	* tree-vect-slp.cc (vect_prologue_cost_for_slp): Use nelt_limit.
+ 	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
+ 	Make scale unsigned.
+ 	(vectorizable_operation): Make ncopies unsigned.
+ 	* rtl-ssa/member-fns.inl: Make num_accesses unsigned int.
+ 
+ 2024-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114855
+ 	* tree-into-ssa.cc (update_ssa): Use tree view for the
+ 	initial population of blocks_to_update.
+ 
+ 2024-09-24  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* lto-cgraph.cc (output_offload_tables, omp_requires_to_name): Handle
+ 	self_maps clause.
+ 	* omp-general.cc (struct omp_ts_info, omp_context_selector_matches):
+ 	Likewise for the associated trait.
+ 	* omp-general.h (enum omp_requires): Add OMP_REQUIRES_SELF_MAPS.
+ 	* omp-selectors.h (enum omp_ts_code): Add
+ 	OMP_TRAIT_IMPLEMENTATION_SELF_MAPS.
+ 
+ 2024-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115372
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Compute the
+ 	uniform, if, number of lanes of the RHS sub-graphs feeding
+ 	the store and if uniformly one, use store-lanes if the target
+ 	supports that.
+ 
+ 2024-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114855
+ 	* tree-into-ssa.cc (phis_to_rewrite): Remove global var.
+ 	(mark_phi_for_rewrite): Simplify.
+ 	(rewrite_update_phi_arguments): Walk all PHIs, process
+ 	those satisfying rewrite_uses_p.
+ 	(delete_update_ssa): Simplify.
+ 	(update_ssa): Likewise.  Switch blocks_with_phis_to_rewrite
+ 	to tree view.
+ 
+ 2024-09-24  Yangyu Chen  <chenyangyu@isrc.iscas.ac.cn>
+ 
+ 	* hosthooks.h (struct host_hooks): Fix GCC_HOST_HOOKS_H typo.
+ 
+ 2024-09-24  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 	    Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/104957
+ 	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls): Use
+ 	cgraph_node::get(name)->ultimate_alias_target instead of value.
+ 
+ 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(*aarch64_faminmax_fused): Instruction pattern for faminmax
+ 	codegen.
+ 	* config/aarch64/iterators.md: Attribute for faminmax codegen.
+ 
+ 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(ENTRY): Macro to parse the contents of
+ 	aarch64-simd-pragma-builtins.def.
+ 	(ENTRY_VHSDF): Macro to parse the contents of
+ 	aarch64-simd-pragma-builtins.def.
+ 	(enum aarch64_builtins): New enum values for faminmax builtins
+ 	via aarch64-simd-pragma-builtins.def.
+ 	(enum class aarch64_builtin_signatures): Enum class to specify
+ 	the number of operands a builtin will take.
+ 	(struct aarch64_pragma_builtins_data): Struct to hold data from
+ 	aarch64-simd-pragma-builtins.def.
+ 	(aarch64_fntype): New function to define function types of
+ 	intrinsics given an object of type aarch64_pragma_builtins_data.
+ 	(aarch64_init_pragma_builtins): New function to define pragma
+ 	builtins.
+ 	(aarch64_get_pragma_builtin): New function to get a row of
+ 	aarch64_pragma_builtins, given code.
+ 	(handle_arm_neon_h): Modify to call
+ 	aarch64_init_pragma_builtins.
+ 	(aarch64_general_check_builtin_call): Modify to check whether
+ 	required flag is being used for pragma builtins.
+ 	(aarch64_expand_pragma_builtin): New function to emit
+ 	instructions of pragma_builtin.
+ 	(aarch64_general_expand_builtin): Modify to call
+ 	aarch64_expand_pragma_builtin.
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(AARCH64_OPT_EXTENSION): Introduce new flag for this extension.
+ 	* config/aarch64/aarch64-simd.md
+ 	(@aarch64_<faminmax_uns_op><mode>): Instruction pattern for
+ 	faminmax intrinsics.
+ 	* config/aarch64/aarch64.h
+ 	(TARGET_FAMINMAX): Introduce new flag for this extension.
+ 	* config/aarch64/iterators.md: New iterators and unspecs.
+ 	* doc/invoke.texi: Document extension in AArch64 Options.
+ 	* config/aarch64/aarch64-simd-pragma-builtins.def: New file to
+ 	list pragma builtins.
+ 
+ 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* dwarf2cfi.cc
+ 	(struct dw_cfi_row): Declare a new enum type to replace ra_mangled.
+ 	(cfi_row_equal_p): Use ra_state instead of ra_mangled.
+ 	(dwarf2out_frame_debug_cfa_negate_ra_state): Same.
+ 	(change_cfi_row): Same.
+ 
+ 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_output_cfi_directive): New hook for CFI directives.
+ 	(aarch64_dw_cfi_oprnd1_desc): Same.
+ 	(TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive.
+ 	(TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc.
+ 	* config/sparc/sparc.cc
+ 	(sparc_output_cfi_directive): New hook for CFI directives.
+ 	(sparc_dw_cfi_oprnd1_desc): Same.
+ 	(TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive.
+ 	(TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc.
+ 	* coretypes.h
+ 	(struct dw_cfi_node): Forward declaration of CFI type from
+ 	gcc/dwarf2out.h.
+ 	(enum dw_cfi_oprnd_type): Same.
+ 	(enum dwarf_call_frame_info): Same.
+ 	* doc/tm.texi: Regenerated from doc/tm.texi.in.
+ 	* doc/tm.texi.in: Add doc for new target hooks.
+ 	type of enum to allow forward declaration.
+ 	* dwarf2cfi.cc
+ 	(struct dw_cfi_row): Update the description for window_save
+ 	and ra_mangled.
+ 	(dwarf2out_frame_debug_cfa_negate_ra_state): Use AArch64 CFI
+ 	directive instead of the SPARC one.
+ 	(change_cfi_row): Use the right CFI directive's name for RA
+ 	mangling.
+ 	(output_cfi): Remove explicit architecture-specific CFI
+ 	directive DW_CFA_GNU_window_save that falls into default case.
+ 	(output_cfi_directive): Use target hook as default.
+ 	* dwarf2out.cc (dw_cfi_oprnd1_desc): Use target hook as default.
+ 	* dwarf2out.h (enum dw_cfi_oprnd_type): specify underlying type
+ 	of enum to allow forward declaration.
+ 	(dw_cfi_oprnd1_desc): Call target hook.
+ 	(output_cfi_directive): Use dw_cfi_ref instead of struct
+ 	dw_cfi_node *.
+ 	* hooks.cc
+ 	(hook_bool_dwcfi_dwcfioprndtyperef_false): New.
+ 	(hook_bool_FILEptr_dwcfiptr_false): New.
+ 	* hooks.h
+ 	(hook_bool_dwcfi_dwcfioprndtyperef_false): New.
+ 	(hook_bool_FILEptr_dwcfiptr_false): New.
+ 	* target.def: Documentation for new hooks.
+ 
+ 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* combine-stack-adj.cc
+ 	(no_unhandled_cfa): Rename.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_expand_prologue): Rename.
+ 	(aarch64_expand_epilogue): Rename.
+ 	* dwarf2cfi.cc
+ 	(dwarf2out_frame_debug_cfa_toggle_ra_mangle): Rename this...
+ 	(dwarf2out_frame_debug_cfa_negate_ra_state): To this.
+ 	(dwarf2out_frame_debug): Rename.
+ 	* reg-notes.def (REG_CFA_NOTE): Rename REG_CFA_TOGGLE_RA_MANGLE.
+ 
+ 2024-09-23  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-general.cc (omp_runtime_api_procname): Strip "omp_" from
+ 	string; move get_device_from_uid as now a '_' suffix exists.
+ 
+ 2024-09-23  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	PR target/113954
+ 	* config/arc/arc.cc (TARGET_LRA_P): Always return true.
+ 	(arc_lra_p): Remove.
+ 	* config/arc/arc.h (TARGET_LRA): Remove.
+ 	* config/arc/arc.opt (mlra): Change it to do nothing.
+ 	* doc/invoke.texi (mlra): Update option description.
+ 
+ 2024-09-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116810
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Onlu force
+ 	splitting for group_size > 1.
+ 
+ 2024-09-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116796
+ 	* cfgloopmanip.cc (fix_loop_placements): Get LC-SSA-invalidated
+ 	bitmap and pass it on.
+ 	(remove_path): Pass LC-SSA-invalidated to fix_loop_placements.
+ 
+ 2024-09-23  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/116812
+ 	* tree-vect-slp.cc (vect_slp_region): Fix insertion.
+ 
+ 2024-09-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116791
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Only
+ 	fall back to elementwise access for single-lane SLP, restore
+ 	hard failure mode for other cases.
+ 
+ 2024-09-23  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/mkoffload.cc (process_asm): (Re)add the fprintf
+ 	lines for stdlib.h/stdbool.h inclusion if gcn_stack_size is used.
+ 
+ 2024-09-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/116795
+ 	* gimple-match-head.cc (match_cond_with_binary_phi): Fix the
+ 	incorrect cfg check as b0->b1 in above example.
+ 
+ 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-iterator.h (gimple_seq_nondebug_singleton_p):
+ 	Rewrite to be simplely, gsi_start_nondebug/gsi_one_nondebug_before_end_p.
+ 
+ 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple.h (remove_pointer): Remove.
+ 	(GIMPLE_CHECK2): Use std::remove_pointer instead of custom one.
+ 
+ 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-operands.h (PHI_ARG_DEF): Remove definition.
+ 
+ 2024-09-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add the case 3 for signed .SAT_ADD matching.
+ 
+ 2024-09-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-patterns.cc (append_inv_pattern_def_seq): New.
+ 	(vect_recog_bool_pattern): Lower COND_EXPRs.
+ 	* tree-vect-slp.cc (vect_slp_region): Materialize loop invariant
+ 	statements.
+ 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_comparison_1): Remove
+ 	VECT_SCALAR_BOOLEAN_TYPE_P handling for vectype.
+ 	* tree-vectorizer.cc (vec_info::vec_info): Initialize
+ 	inv_pattern_def_seq.
+ 	* tree-vectorizer.h (LOOP_VINFO_INV_PATTERN_DEF_SEQ): New.
+ 	(class vec_info): Add inv_pattern_def_seq.
+ 
+ 2024-09-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (adjust_body_cost):
+ 	Cap VF for low iteration loops.
+ 
+ 2024-09-21  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/90608
+ 	* flag-types.h (enum gfc_inlineable_intrinsics): New type.
+ 
+ 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* text-art/dump.h (dump_to_file): Simplify using
+ 	tree_dump_pretty_printer.
+ 	* tree-diagnostic.h (class tree_dump_pretty_printer): New.
+ 
+ 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* diagnostic-format-sarif.cc (sarif_builder::m_printer): New
+ 	field.
+ 	(sarif_invocation::add_notification_for_ice): Drop context param.
+ 	(sarif_invocation::prepare_to_flush): Convert param from context
+ 	to builder.
+ 	(sarif_result::on_nested_diagnostic): Drop context param.  Use
+ 	builder's printer.
+ 	(sarif_result::on_diagram): Drop context param.
+ 	(sarif_ice_notification::sarif_ice_notification): Drop context
+ 	param.  Use builder's printer.
+ 	(sarif_builder::sarif_builder): Initialize m_printer.
+ 	(sarif_builder::on_report_diagnostic): Drop context param.  Use
+ 	builder's printer.
+ 	(sarif_builder::emit_diagram): Drop context param.
+ 	(sarif_builder::flush_to_object): Use this rather than context
+ 	for call to prepare_to_flush.
+ 	(sarif_builder::make_result_object): Drop context param.  Use
+ 	builder's printer.
+ 	(sarif_builder::make_reporting_descriptor_object_for_warning):
+ 	Drop context param.
+ 	(sarif_builder::make_message_object_for_diagram): Likewise.
+ 	Use builder's printer.
+ 	(sarif_output_format::on_report_diagnostic): Drop context param
+ 	from call to sarif_builder::on_report_diagnostic.
+ 	(sarif_output_format::on_diagram): Drop context param from call to
+ 	sarif_builder::emit_diagram.
+ 	* diagnostic.h (diagnostic_conetxt::get_client_data_hooks): Make const.
+ 
+ 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* coretypes.h (class diagnostic_text_output_format): Add forward
+ 	decl.
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::after_diagnostic): New.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_output_format::after_diagnostic): New.
+ 	* diagnostic-format-text.cc: Use pragmas to ignore -Wformat-diag.
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	Use get_printer.  Clean up m_includes_seen here, rather than
+ 	in ~diagnostic_context.
+ 	(diagnostic_text_output_format::on_report_diagnostic):  Use
+ 	get_printer.  Update for callback renamings and pass *this
+ 	to them, rather than &m_context.
+ 	(diagnostic_text_output_format::after_diagnostic): New.
+ 	(diagnostic_text_output_format::includes_seen_p): Move here
+ 	from diagnostic_context/diagnostic.cc.
+ 	(diagnostic_text_output_format::get_location_text): New.
+ 	(maybe_line_and_column): Move here from diagnostic.cc and make
+ 	non-static.
+ 	(diagnostic_text_output_format::report_current_module): Move
+ 	here from diagnostic_context/diagnostic.cc.
+ 	(default_diagnostic_text_starter): Move here from diagnostic.cc,
+ 	renaming from default_diagnostic_starter.
+ 	(default_diagnostic_text_finalizer): Likewise, renaming from
+ 	default_diagnostic_finalizer.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::diagnostic_text_output_format):
+ 	Initialize m_last_module and m_includes_seen.
+ 	(diagnostic_text_output_format::after_diagnostic): New decl.
+ 	(diagnostic_text_output_format::build_prefix): New decl.
+ 	(diagnostic_text_output_format::report_current_module): New decl.
+ 	(diagnostic_text_output_format::append_note): New decl.
+ 	(diagnostic_text_output_format::file_name_as_prefix): New decl.
+ 	(diagnostic_text_output_format::print_path): New decl.
+ 	(diagnostic_text_output_format::show_column_p): New decl.
+ 	(diagnostic_text_output_format::get_location_text): New decl.
+ 	(diagnostic_text_output_format::includes_seen_p): New decl.
+ 	(diagnostic_text_output_format::show_any_path): New decl.
+ 	(diagnostic_text_output_format::m_last_module): New field.
+ 	(diagnostic_text_output_format::m_includes_seen): New field.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format::after_diagnostic): New vfunc.
+ 	(diagnostic_output_format::get_context): New.
+ 	(diagnostic_output_format::get_diagram_theme): New.
+ 	* diagnostic-macro-unwinding.cc: Include
+ 	"diagnostic-format-text.h".
+ 	(maybe_unwind_expanded_macro_loc): Convert first param from
+ 	diagnostic_context * to diagnostic_text_output_format & and update
+ 	accordingly.
+ 	(virt_loc_aware_diagnostic_finalizer): Likewise.
+ 	* diagnostic-macro-unwinding.h
+ 	(virt_loc_aware_diagnostic_finalizer): Likewise.
+ 	(maybe_unwind_expanded_macro_loc): Likewise.
+ 	* diagnostic-path.cc: Include "diagnostic-format-text.h".
+ 	(path_label::path_label): Drop "ctxt" param and add "colorize"
+ 	and "allow_emojis" params.  Update initializations.
+ 	(path_label::get_text): Use m_colorize rather than querying
+ 	m_ctxt.m_printer.  Use m_allow_emojis rather than querying
+ 	m_ctxt's diagram theme.
+ 	(path_label::m_ctxt): Drop field.
+ 	(path_label::m_colorize): Drop field.
+ 	(path_label::m_allow_emojis): Drop field.
+ 	(event_range::event_range): Drop param "ctxt".  Add params
+ 	"colorize_labels" and "allow_emojis".
+ 	(event_range::print): Convert first param from
+ 	diagnostic_context & to diagnostic_text_output_format & and update
+ 	accordingly.
+ 	(path_summary::path_summary): Likewise.
+ 	(path_summary::print_swimlane_for_event_range): Likewise.
+ 	(print_path_summary_as_text): Likewise for 3rd param.
+ 	(diagnostic_context::print_path): Convert to...
+ 	(diagnostic_text_output_format::print_path): ...this.
+ 	(selftest::test_empty_path): Update to use a
+ 	diagnostic_text_output_format.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	* diagnostic.cc (file_name_as_prefix): Convert to...
+ 	(diagnostic_text_output_format::file_name_as_prefix): ...this.
+ 	(diagnostic_context::initialize): Update for renamings.
+ 	Move m_last_module and m_includes_seen into text output.
+ 	(diagnostic_context::finish): Likewise.
+ 	(diagnostic_context::get_location_text): Add "colorize" param.
+ 	(diagnostic_build_prefix): Convert to...
+ 	(diagnostic_text_output_format::build_prefix): ...this.
+ 	(diagnostic_context::includes_seen_p): Move from here to
+ 	diagnostic_text_output_format/diagnostic-format-text.cc.
+ 	(diagnostic_context::report_current_module): Likewise.
+ 	(diagnostic_context::show_any_path): Convert to...
+ 	(diagnostic_text_output_format::show_any_path): ...this.
+ 	(default_diagnostic_starter): Rename and move to
+ 	diagnostic-format-text.cc.
+ 	(default_diagnostic_start_span_fn): Pass colorize bool
+ 	to get_location_text.
+ 	(default_diagnostic_finalizer): Rename and move to
+ 	diagnostic-format-text.cc.
+ 	(diagnostic_context::report_diagnostic): Replace call to
+ 	show_any_path with call to new output format "after_diagnostic"
+ 	vfunc, moving show_any_path call to the text output format.
+ 	(diagnostic_append_note): Convert to...
+ 	(diagnostic_text_output_format::append_note): ...this.
+ 	(selftest::assert_location_text): Pass in false for colorization.
+ 	* diagnostic.h (diagnostic_starter_fn): Rename to...
+ 	(diagnostic_text_starter_fn): ...this.  Convert first param from
+ 	diagnostic_context * to diagnostic_text_output_format &.
+ 	(diagnostic_finalizer_fn, diagnostic_text_finalizer_fn): Likewise.
+ 	(diagnostic_context): Update friends for renamings.
+ 	(diagnostic_context::report_current_module): Move to text output
+ 	format.
+ 	(diagnostic_context::get_location_text): Add "colorize" bool.
+ 	(diagnostic_context::includes_seen_p): Move to text output format.
+ 	(diagnostic_context::show_any_path): Likewise.
+ 	(diagnostic_context::print_path): Likewise.
+ 	(diagnostic_context::m_text_callbacks): Update for renamings.
+ 	(diagnostic_context::m_last_module): Move to text output format.
+ 	(diagnostic_context::m_includes_seen): Likewise.
+ 	(diagnostic_starter): Rename to...
+ 	(diagnostic_text_starter): ...this and update return type.
+ 	(diagnostic_finalizer): Rename to...
+ 	(diagnostic_text_finalizer): ...this and update return type.
+ 	(diagnostic_report_current_module): Drop decl in favor of a member
+ 	function of diagnostic_text_output_format.
+ 	(diagnostic_append_note): Likewise.
+ 	(default_diagnostic_starter): Rename to...
+ 	(default_diagnostic_text_starter): ...this, updating type.
+ 	(default_diagnostic_finalizer): Rename to...
+ 	(default_diagnostic_text_finalizer): ...this, updating type.
+ 	(file_name_as_prefix): Drop decl.
+ 	* langhooks-def.h (lhd_print_error_function): Convert first param
+ 	from diagnostic_context * to diagnostic_text_output_format &.
+ 	* langhooks.cc: Include "diagnostic-format-text.h".
+ 	(lhd_print_error_function): Likewise.  Update accordingly
+ 	* langhooks.h (lang_hooks::print_error_function): Convert first
+ 	param from diagnostic_context * to
+ 	diagnostic_text_output_format &.
+ 	* tree-diagnostic.cc: Include "diagnostic-format-text.h".
+ 	(diagnostic_report_current_function): Convert first param from
+ 	diagnostic_context * to diagnostic_text_output_format & and update
+ 	accordingly.
+ 	(default_tree_diagnostic_starter): Rename to...
+ 	(default_tree_diagnostic_text_starter): ...this.  Convert first
+ 	param from diagnostic_context * to diagnostic_text_output_format &
+ 	and update accordingly.
+ 	(tree_diagnostics_defaults): Update for renamings.
+ 
+ 2024-09-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (VECTOR_STORE_FLAG_VALUE): New.
+ 
+ 2024-09-20  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): New.
+ 
+ 2024-09-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Fall back
+ 	to VMAT_ELEMENTWISE when single element interleaving of
+ 	a too large group.
+ 	(vectorizable_load): Do not try to verify load permutations
+ 	when using VMAT_ELEMENTWISE for single-lane SLP and fix code
+ 	generation for this case.
+ 
+ 2024-09-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
+ 	discovering from only-live roots.
+ 
+ 2024-09-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (s390_lra_p): Remove.
+ 	(TARGET_LRA_P): Remove.
+ 	* config/s390/s390.opt (mlra): Remove.
+ 	* config/s390/s390.opt.urls (mlra): Remove.
+ 
+ 2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always
+ 	process both the load and the store of a memory copy operation.
+ 
+ 2024-09-20  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-general.cc (omp_runtime_api_procname): Add
+ 	get_device_from_uid and omp_get_uid_from_device routines.
+ 
+ 2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116738
+ 	* config/i386/subst.md (mask_scalar_operand_arg34,
+ 	mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
+ 	subst attributes.
+ 	* config/i386/sse.md
+ 	(<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	Change from define_insn to define_expand, rename the old define_insn
+ 	to ...
+ 	(*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	... this.
+ 	(<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	New define_insn.
+ 
+ 2024-09-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116643
+ 	* ssa-iterators.h (single_phi_def): Use gimple_phi_result
+ 	instead of PHI_RESULT.
+ 	(op_iter_init_phidef): Use gimple_phi_result/gimple_phi_result_ptr
+ 	instead of PHI_RESULT/PHI_RESULT_PTR.
+ 	* tree-ssa-operands.h (PHI_RESULT_PTR): Remove.
+ 	(PHI_RESULT): Use gimple_phi_result directly.
+ 	(SET_PHI_RESULT): Use gimple_phi_result_ptr directly.
+ 
+ 2024-09-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/116162
+ 	* doc/invoke.texi: Document -Wdefaulted-function-deleted.
+ 
+ 2024-09-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* dwarf2asm.cc (eh_data_format_name): Use constexpr initialization
+ 	of format_names table for C++14 instead of a large switch.
+ 
+ 2024-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116768
+ 	* tree-data-ref.cc (build_classic_dist_vector_1): Revert
+ 	PR101009 change.
+ 	* tree-chrec.cc (eq_evolutions_p): Make sure (sizetype)1
+ 	and (int)1 compare equal.
+ 
+ 2024-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_analyze_slp): Add force_single_lane
+ 	parameter.
+ 	* tree-vect-slp.cc (vect_analyze_slp_instance): Remove
+ 	defaulting of force_single_lane.
+ 	(vect_build_slp_instance): Likewise.  Pass down appropriate
+ 	force_single_lane.
+ 	(vect_analyze_slp): Add force_sigle_lane parameter and pass
+ 	it down appropriately.
+ 	(vect_slp_analyze_bb_1): Always do multi-lane SLP.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Track two SLP
+ 	modes and adjust accordingly.
+ 	(vect_analyze_loop_1): Save the SLP mode when unrolling.
+ 
+ 2024-09-19  Jason Merrill  <jason@redhat.com>
+ 
+ 	* ginclude/stdint-wrap.h: Add #pragma GCC diagnostic to suppress
+ 	undesired warnings.
+ 	* gsyslimits.h: Likewise.
+ 
+ 2024-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-data-ref.cc (build_classic_dist_vector): Move
+ 	distance vector dumping to single caller ...
+ 	(subscript_dependence_tester): ... here, dumping always
+ 	when we succeed computing it.
+ 
+ 2024-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116573
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Allow .SELECV_VL
+ 	for SLP but disable it when there's multi-lane instances.
+ 	* tree-vect-stmts.cc (vectorizable_store): Only compute the
+ 	ptr increment when generating code.
+ 	(vectorizable_load): Likewise.
+ 
+ 2024-09-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add the form 3 of signed .SAT_ADD matching.
+ 
+ 2024-09-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	* genmatch.cc (dt_operand::gen_phi_on_cond): Leverage the
+ 	match_cond_with_binary_phi API to get cond gimple, true and
+ 	false TREE arg.
+ 
+ 2024-09-19  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
+ 	Add folding of all-zero operands to zero vector.
+ 
+ 2024-09-19  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/tuning_models/neoversev2.h (neoversev2_prefetch_tune):
+ 	Define.
+ 	(neoversev2_tunings): Use it.
+ 
+ 2024-09-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386.md: Add ssemov2, sseicvt2.
+ 	* config/i386/sse.md (sse2_cvtsi2sd): Apply sseicvt2.
+ 	(sse2_cvtsi2sdq<round_name>): Ditto.
+ 	(vec_set<mode>_0): Apply ssemov2 for 4, 6.
+ 
+ 2024-09-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gimple-match-head.cc (match_cond_with_binary_phi): Add new func
+ 	impl to match binary phi for true and false arg.
+ 
+ 2024-09-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* doc/invoke.texi: Add corei7, corei7-avx, core-avx-i,
+ 	core-avx2, atom, slm, gracemont and emerarldrapids. Reorder
+ 	the -march documentation by splitting them into date-to-now
+ 	products, P-core and E-core. Refine the product names in
+ 	documentation.
+ 
+ 2024-09-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.h (GENERAL_REGNO_P): Define.
+ 	* config/pa/pa.md: Add SImode and SFmode peephole2
+ 	patterns to generate loads and stores with long
+ 	displacements.
+ 
+ 2024-09-18  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.md: Change "truncate" to unspec for the Zfa extension on rv32.
+ 
+ 2024-09-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* params.opt (vect-force-slp): New param, default 0.
+ 	* doc/invoke.texi (--param vect-force-slp): Document.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): When analyzing
+ 	without SLP but --param vect-force-slp is 1 fail.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Fail vectorization
+ 	for non-SLP stmts when --param vect-force-slp is 1.
+ 
+ 2024-09-18  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Fix the outer_code
+ 	when calculating the cost of SET expression.
+ 
+ 2024-09-18  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/riscv/thead.md (*th_extu<mode>4): Fix th.extu
+ 	operands exceeding range on rv32.
+ 
+ 2024-09-18  Bohan Lei  <garthlei@linux.alibaba.com>
+ 
+ 	* config/riscv/vector.md: Allow zero operand for DI variants of
+ 	vssubu.vx
+ 
+ 2024-09-18  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR tree-optimization/116569
+ 	* match.pd: Guard simplification to trunc_mod with check for
+ 	mod optab support.
+ 
+ 2024-09-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR rtl-optimization/116326
+ 	* reload1.cc (reg_eliminate_1): Initialize from
+ 	RELOAD_ELIMINABLE_REGS if defined.
+ 	* config/avr/avr.h (RELOAD_ELIMINABLE_REGS): Copy from ELIMINABLE_REGS.
+ 	(ELIMINABLE_REGS): Don't mention sub-regnos of the frame pointer.
+ 	* doc/tm.texi.in (Eliminating Frame Pointer and Arg Pointer)
+ 	<RELOAD_ELIMINABLE_REGS>: Add documentation.
+ 	* doc/tm.texi: Rebuild.
+ 
+ 2024-09-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/install.texi (Host/Target specific installation notes for GCC)
+ 	[avr]: Update web links to AVR-LibC and AVR Options.
+ 	Remove outdated note about Binutils.
+ 
+ 2024-09-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116585
+ 	* tree-data-ref.cc (split_constant_offset_1): When either
+ 	operand is subject to abnormal coalescing do no further
+ 	processing.
+ 
+ 2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use
+ 	range fors and use one vec for then/else stores instead of 2.
+ 
+ 2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add debug dump.
+ 
+ 2024-09-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (ssadd<mode>3): Add new pattern for
+ 	signed integer vector SAT_ADD.
+ 	* config/riscv/riscv-protos.h (expand_vec_ssadd): Add new func
+ 	decl for vector ssadd expanding.
+ 	* config/riscv/riscv-v.cc (expand_vec_ssadd): Add new func impl
+ 	to expand vector ssadd pattern.
+ 
+ 2024-09-18  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/89213
+ 	* config/rs6000/altivec.md (UNSPEC_VECTOR_SHIFT): New unspec.
+ 	(VSHIFT_MODE): New mode iterator.
+ 	(vshift_code): New code iterator.
+ 	(vshift_attr): New code attribute.
+ 	(altivec_<mode>_<vshift_attr>_const): New pattern to optimize
+ 	vector long long/int shifts by a constant.
+ 	(altivec_<mode>_shift_const): New helper insn to load up a
+ 	constant used by the shift operation.
+ 	* config/rs6000/predicates.md (vector_shift_constant): New
+ 	predicate.
+ 
+ 2024-09-17  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/116534
+ 	* fold-const.cc (operand_compare::operand_equal_p): If either
+ 	field's DECL_FIELD_OFFSET is null, compare the fields with ==.
+ 
+ 2024-09-17  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
+ 	Add folding of all-zero operands to zero vector.
+ 
+ 2024-09-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/113328
+ 	* config/aarch64/aarch64.cc (aarch64_simd_valid_immediate): Improve
+ 	handling of some ADVSIMD vectors by using SVE's INDEX if TARGET_SVE is
+ 	available.
+ 	(aarch64_output_simd_mov_immediate): Likewise.
+ 
+ 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options): Update AVR-LibC weblink from
+ 	nongnu.org to https://github.com/avrdudes/avr-libc
+ 	* doc/extend.texi (AVR Named Address Spaces): Same.
+ 	(AVR Function Attributes): Same.
+ 	* doc/install.texi (Cross-Compiler-Specific Options, AVR): Same.
+ 
+ 2024-09-16  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*post_ra_v<optab><mode>3): Split pattern
+ 	to accomodate left and right shifts separately.
+ 	(*post_ra_v_ashl<mode>3): Matches left shifts with additional
+ 	constraint to check for shifts by 1.
+ 	(*post_ra_v_<optab><mode>3): Matches right shifts.
+ 
+ 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (avr_out_cmp_lsr, avr_maybe_cmp_lsr): New.
+ 	* config/avr/avr.cc (avr_maybe_cmp_lsr, avr_out_cmp_lsr): New functions.
+ 	(avr_out_compare) [GEU, LTU]: Start output at byte CTZ(xval) / 8.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_CMP_LSR]: Handle case.
+ 	* config/avr/avr.md (adjust_len) <cmp_lsr>: New attr value.
+ 	(*cmp<mode>_lsr): New define_insn_and_split.
+ 	(cbranch<mode>4_insn): When splitting, run avr_maybe_cmp_lsr()
+ 	which may map the operands to *cmp<mode>_lsr.
+ 
+ 2024-09-16  Andreas Schwab  <schwab@suse.de>
+ 
+ 	PR target/116693
+ 	* config/riscv/riscv.cc (riscv_legitimize_tls_address): Don't pass
+ 	seqno to gen_tlsdesc and remove it.
+ 	* config/riscv/riscv.md (@tlsdesc<mode>): Remove operand 1.  Use
+ 	%= instead of %1 in template.
+ 
+ 2024-09-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-vectorizer.cc (vec_info::add_pattern_stmt): Set pattern_stmt_p.
+ 
+ 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Use rtx_code for RTX codes.
+ 	Drop enum and struct tags.
+ 	* config/avr/avr.md: Same.
+ 	* config/avr/avr-c.cc: Same.
+ 	* config/avr/avr-dimode.md: Same.
+ 	* config/avr/avr-passes.cc: Same.
+ 	* config/avr/avr-protos.h: Same.
+ 
+ 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_compare): Don't mix ADIW with SBCI / CPC.
+ 
+ 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116699
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Skip over nop/predicates
+ 	for seeing the assignment is the last statement.
+ 
+ 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-vect-loop.cc (optimize_mask_stores): Call release_defs
+ 	after the call to gsi_remove with last argument of true.
+ 
+ 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* bitmap.h (class auto_bitmap): Mark copy/move constructor/operator=
+ 	as deleted.
+ 
+ 2024-09-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (UNSPEC_COPYSIGN): Remove define_enum.
+ 	(copysignsf3): Use copysign instead of UNSPEC_COPYSIGN.
+ 	Allow const_double for operand 2.
+ 
+ 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_2word_insn_p): Return true for
+ 	transparent calls: When insn attribute "type" is "xcall"
+ 	or when "adjust_len" is "call".
+ 
+ 2024-09-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Instead
+ 	of just ignorning a NOP/PREDICT, skip over them before checking
+ 	the heuristics.
+ 
+ 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Use functions like avr_byte,
+ 	avr_word, avr_[u]int8/16 if convenient.
+ 	(avr_uint16): New function.
+ 
+ 2024-09-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/116661
+ 	* omp-api.h (omp_get_fr_id_from_name, omp_get_name_from_fr_id): New
+ 	prototypes.
+ 	* omp-general.cc (omp_get_fr_id_from_name, omp_get_name_from_fr_id):
+ 	New.
+ 
+ 2024-09-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/mkoffload.cc (read_file): Remove.
+ 	(process_asm): Do not add '#include' to generated C file.
+ 	(process_obj): Generate C file that uses #embed and use
+ 	__SIZE_TYPE__ and __UINTPTR_TYPE__ instead the #include-defined
+ 	size_t and uintptr.
+ 	(main): Update call to it; remove no longer needed file I/O.
+ 
+ 2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR target/115860
+ 	* config/s390/s390.cc (print_operand): Remove operand specifier
+ 	%V.
+ 	* config/s390/s390.md (UNSPEC_TF_TO_FPRX2): New.
+ 	* config/s390/vector.md (*tf_to_fprx2_0): Remove.
+ 	(*tf_to_fprx2_1): Remove.
+ 	(tf_to_fprx2): New.
+ 
+ 2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (s390_mem_constraint): Check displacement
+ 	for AQ and AR constraints.
+ 
+ 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_chunk, avr_byte, avr_word)
+ 	(avr_int8, avr_uint8, avr_int16): New helper functions.
+ 	(avr_out_compare): Overhaul.
+ 
+ 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_compare): Tweak 32-bit EQ and NE
+ 	comparisons that can use SBIW for the hi16 part.
+ 
+ 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_init_machine_status): Move code to...
+ 	(avr_option_override) <init_machine_status>: ...lambda.
+ 	(avr_insn_has_reg_unused_note_p): Move up.
+ 	(_reg_unused_after, reg_unused_after): Move up.
+ 	(output_reload_in_const): Move up.
+ 	(avr_c_mode_for_floating_type): Move down.
+ 
+ 2024-09-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Remove the types_match check for signed SAT_ADD
+ 	case 1.
+ 
+ 2024-09-12  Alexandre Oliva  <oliva@adacore.com>
+ 	    Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* doc/sourcebuild.texi (hostedlib): New effective target.
+ 
+ 2024-09-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112600
+ 	* config/i386/mmx.md (<sat_plusminus:insn><mode>3): Rename
+ 	from *<sat_plusminus:insn><mode>3.
+ 
+ 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/cpp.texi (Binary Resource Inclusion): Document gnu::base64
+ 	parameter.
+ 
+ 2024-09-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Allow -mcpu and -march
+ 	to be unset.
+ 	(ARCH_CPU_CLEANUP_SPECS): Likewise
+ 	(DRIVER_SELF_SPECS): Add ARCH_CPU_CLEANUP_SPECS
+ 	* doc/invoke.texi (arm: -mcpu= and -march=): Document use of 'unset'.
+ 
+ 2024-09-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*insvti_lowpart_1): Use "o" constraint
+ 	instead of "m" for double-word mode memory operands.
+ 
+ 2024-09-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-protos.h (s390_gen_lowpart_subreg): Remove.
+ 	* config/s390/s390.cc (s390_gen_lowpart_subreg): Remove.
+ 	(s390_expand_insv): Use adjust_address() and emit a
+ 	strict_low_part only in case of a natural subreg.
+ 	* config/s390/s390.md: Use gen_lowpart() instead of
+ 	s390_gen_lowpart_subreg().
+ 
+ 2024-09-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_analyze_operations): When
+ 	doing loop analysis fail after the first failed SLP
+ 	instance.  Only remove instances when doing BB vectorization.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Check whether
+ 	vect_slp_analyze_operations failed instead of checking
+ 	the number of SLP instances remaining.
+ 
+ 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/cpp.texi (Binary Resource Inclusion): Document gnu::offset
+ 	#embed parameter.
+ 
+ 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/105863
+ 	* doc/cppdiropts.texi (--embed-dir=): Document.
+ 	* doc/cpp.texi (Binary Resource Inclusion): New chapter.
+ 	(__has_embed): Document.
+ 	* doc/invoke.texi (Directory Options): Mention --embed-dir=.
+ 	* gcc.cc (cpp_unique_options): Add %{-embed*}.
+ 	* genmatch.cc (main): Adjust cpp_set_include_chains caller.
+ 	* incpath.h (enum incpath_kind): Add INC_EMBED.
+ 	* incpath.cc (merge_include_chains): Handle INC_EMBED.
+ 	(register_include_chains): Adjust cpp_set_include_chains caller.
+ 
+ 2024-09-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): On reassociation
+ 	chain length mismatch do not fail discovery of the node
+ 	but try without re-associating to compute a better matches[].
+ 	Provide a reassociation failure hint in the dump.
+ 	(vect_slp_analyze_node_operations): Avoid stray failure
+ 	dumping.
+ 	(vectorizable_slp_permutation_1): Dump the address of the
+ 	SLP node representing the permutation.
+ 
+ 2024-09-12  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386.cc (ix86_get_mask_mode):
+ 	Enable BFmode for targetm.vectorize.get_mask_mode with AVX10.2.
+ 	* config/i386/mmx.md (vec_cmp<mode>qi):
+ 	Implement vec_cmpv2bfqi and vec_cmpv4bfqi.
+ 
+ 2024-09-12  Bohan Lei  <garthlei@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
+ 	Delete vsetvl insn when `prev_info` is compatible
+ 
+ 2024-09-12  garthlei  <garthlei@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc: Use `dest_vl` for dest VL operand
+ 
+ 2024-09-11  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-cp.cc (propagate_vr_across_jump_function): Use
+ 	ipa_vr_supported_type_p instead of explicit check for integral and
+ 	pointer types.
+ 
+ 2024-09-11  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-cp.h (ipa_supports_p): Rename to ipa_vr_supported_type_p.
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Adjust called
+ 	function name.
+ 	(propagate_vr_across_jump_function): Likewise.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise.
+ 	(ipcp_get_parm_bits): Likewise.
+ 
+ 2024-09-11  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/116597
+ 	* config/arm/arm.cc (arm_function_ok_for_sibcall): Use the list of
+ 	actuals for the call, not the list of formals.
+ 
+ 2024-09-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116674
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Support
+ 	re-analysis.
+ 
+ 2024-09-11  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR libstdc++/116140
+ 	* lto-streamer-in.cc (input_struct_function_base): Stream in
+ 	fn->has_unroll.
+ 	* lto-streamer-out.cc (output_struct_function_base): Stream out
+ 	fn->has_unroll.
+ 
+ 2024-09-11  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-general.cc (omp_runtime_api_procname): Add
+ 	omp_get_interop_{int,name,ptr,rc_desc,str,type_desc}
+ 	and omp_get_num_interop_properties.
+ 
+ 2024-09-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 2 for the signed .SAT_ADD consumed by
+ 	vect pattern.
+ 	* tree-vect-patterns.cc (gimple_signed_integer_sat_add): Add new
+ 	matching func decl for signed .SAT_ADD.
+ 	(vect_recog_sat_add_pattern): Add signed .SAT_ADD pattern match.
+ 
+ 2024-09-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_FUSE_MOV_AND_ALU): Enable
+ 	for GNR and GNR-D.
+ 
+ 2024-09-10  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	PR target/96265
+ 	* common.opt (foffload-abi-host-opts): New option.
+ 	* config/aarch64/aarch64.cc (aarch64_offload_options): Pass
+ 	-foffload-abi-host-opts.
+ 	* config/i386/i386-options.cc (ix86_offload_options): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_offload_options): Likewise.
+ 	* config/nvptx/mkoffload.cc (offload_abi_host_opts): Define.
+ 	(compile_native): Append offload_abi_host_opts to argv_obstack.
+ 	(main): Handle option -foffload-abi-host-opts.
+ 	* config/gcn/mkoffload.cc (offload_abi_host_opts): Define.
+ 	(compile_native): Append offload_abi_host_opts to argv_obstack.
+ 	(main): Handle option -foffload-abi-host-opts.
+ 	* lto-wrapper.cc (merge_and_complain): Handle
+ 	-foffload-abi-host-opts.
+ 	(append_compiler_options): Likewise.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2024-09-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116658
+ 	* tree-vect-slp.cc (vect_is_slp_load_node): Make sure
+ 	node isn't a permute.
+ 
+ 2024-09-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add the form 2 of signed .SAT_ADD matching.
+ 
+ 2024-09-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (execute_over_cond_phis): New template function,
+ 	moved the common parts from pass_phiopt::execute/pass_cselim::execute.
+ 	(pass_phiopt::execute): Move the functon specific parts of the loop
+ 	into an lamdba.
+ 	(pass_cselim::execute): Likewise.
+ 
+ 2024-09-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116643
+ 	* tree-ssa-phiopt.cc (replace_phi_edge_with_variable): s/PHI_RESULT/gimple_phi_result/.
+ 	(factor_out_conditional_operation): Likewise.
+ 	(minmax_replacement): Likewise.
+ 	(spaceship_replacement): Likewise.
+ 	(cond_store_replacement): Likewise.
+ 	(cond_if_else_store_replacement_1): Likewise.
+ 
+ 2024-09-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (*avx2_pcmp<mode>3_1): Don't force_reg
+ 	operands[3] when it's not const0_rtx.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* ipa-pure-const.cc: Replace include of "opts.h" with
+ 	"opts-diagnostic.h".
+ 	(suggest_attribute): Convert param from int to
+ 	diagnostic_option_id.
+ 	* lto-wrapper.cc (class lto_diagnostic_option_manager): Use
+ 	diagnostic_option_id rather than "int".
+ 	* opts-common.cc
+ 	(compiler_diagnostic_option_manager::option_enabled_p): Likewise.
+ 	* opts-diagnostic.h (class gcc_diagnostic_option_manager):
+ 	Likewise.
+ 	(class compiler_diagnostic_option_manager): Likewise.
+ 	* opts.cc (compiler_diagnostic_option_manager::make_option_name):
+ 	Likewise.
+ 	(gcc_diagnostic_option_manager::make_option_url): Likewise.
+ 	* substring-locations.cc
+ 	(format_string_diagnostic_t::emit_warning_n_va): Likewise.
+ 	(format_string_diagnostic_t::emit_warning_va): Likewise.
+ 	(format_string_diagnostic_t::emit_warning): Likewise.
+ 	(format_string_diagnostic_t::emit_warning_n): Likewise.
+ 	* substring-locations.h
+ 	(format_string_diagnostic_t::emit_warning_va): Likewise.
+ 	(format_string_diagnostic_t::emit_warning_n_va): Likewise.
+ 	(format_string_diagnostic_t::emit_warning): Likewise.
+ 	(format_string_diagnostic_t::emit_warning_n): Likewise.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h (struct diagnostic_option_id): New.
+ 	(warning): Use it rather than "int" for param.
+ 	(warning_n): Likewise.
+ 	(warning_at): Likewise.
+ 	(warning_meta): Likewise.
+ 	(pedwarn): Likewise.
+ 	(permerror_opt): Likewise.
+ 	(emit_diagnostic): Likewise.
+ 	(emit_diagnostic_valist): Likewise.
+ 	(emit_diagnostic_valist_meta): Likewise.
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::on_report_diagnostic): Update for renaming of
+ 	diagnostic_info field.
+ 	* diagnostic-format-sarif.cc (sarif_builder::make_result_object):
+ 	Likewise.
+ 	(make_reporting_descriptor_object_for_warning): Likewise.
+ 	* diagnostic-format-text.cc (print_option_information): Likewise.
+ 	* diagnostic-global-context.cc (emit_diagnostic): Use
+ 	"diagnostic_option_id option_id" rather than "int opt".
+ 	(emit_diagnostic_valist): Likewise.
+ 	(emit_diagnostic_valist_meta): Likewise.
+ 	(warning): Likewise.
+ 	(warning_at): Likewise.
+ 	(warning_meta): Likewise.
+ 	(warning_n): Likewise.
+ 	(pedwarn): Likewise.
+ 	(permerror_opt): Likewise.
+ 	* diagnostic.cc (diagnostic_set_info_translated): Update for
+ 	renaming of diagnostic_info field.
+ 	(diagnostic_option_classifier::classify_diagnostic): Use
+ 	"diagnostic_option_id option_id" rather than "int opt".
+ 	(update_effective_level_from_pragmas): Update for renaming of
+ 	diagnostic_info field.
+ 	(diagnostic_context::diagnostic_enabled): Likewise.
+ 	(diagnostic_context::warning_enabled_at): Use
+ 	"diagnostic_option_id option_id" rather than "int opt".
+ 	(diagnostic_context::diagnostic_impl): Likewise.
+ 	(diagnostic_context::diagnostic_n_impl): Likewise.
+ 	* diagnostic.h (diagnostic_info::diagnostic_info): Update for...
+ 	(diagnostic_info::option_index): Rename...
+ 	(diagnostic_info::option_id): ...to this.
+ 	(class diagnostic_option_manager): Use
+ 	"diagnostic_option_id option_id" rather than "int opt" for vfuncs.
+ 	(diagnostic_option_classifier): Likewise for member funcs.
+ 	(diagnostic_classification_change_t::option): Add comment.
+ 	(diagnostic_context::warning_enabled_at): Use
+ 	"diagnostic_option_id option_id" rather than "int option_index".
+ 	(diagnostic_context::option_unspecified_p): Likewise.
+ 	(diagnostic_context::classify_diagnostic): Likewise.
+ 	(diagnostic_context::option_enabled_p): Likewise.
+ 	(diagnostic_context::make_option_name): Likewise.
+ 	(diagnostic_context::make_option_url): Likewise.
+ 	(diagnostic_context::diagnostic_impl): Likewise.
+ 	(diagnostic_context::diagnostic_n_impl): Likewise.
+ 	(diagnostic_override_option_index): Rename...
+ 	(diagnostic_set_option_id): ...to this, and update for
+ 	diagnostic_info field renaming.
+ 	(diagnostic_classify_diagnostic): Use "diagnostic_option_id"
+ 	rather than "int".
+ 	(warning_enabled_at): Likewise.
+ 	(option_unspecified_p): Likewise.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::initialize): Replace
+ 	m_options_callbacks with m_option_mgr.
+ 	(diagnostic_context::set_option_hooks): Replace with...
+ 	(diagnostic_context::set_option_manager): ...this.
+ 	* diagnostic.h (diagnostic_option_enabled_cb): Delete.
+ 	(diagnostic_make_option_name_cb): Delete.
+ 	(diagnostic_make_option_url_cb): Delete.
+ 	(class diagnostic_option_manager): New.
+ 	(diagnostic_manager::option_enabled_p): Convert from using
+ 	m_option_callbacks to m_option_mgr.
+ 	(diagnostic_manager::make_option_name): Likewise.
+ 	(diagnostic_manager::make_option_url): Likewise.
+ 	(diagnostic_manager::set_option_hooks): Replace with...
+ 	(diagnostic_manager::set_option_manager): ...this.
+ 	(diagnostic_manager::get_lang_mask): Update for field changes.
+ 	(diagnostic_manager::m_option_callbacks): Replace with...
+ 	(diagnostic_manager::m_option_mgr): ...this and...
+ 	(diagnostic_manager::m_lang_mask): ...this.
+ 	* lto-wrapper.cc (class lto_diagnostic_option_manager): New.
+ 	(main): Port from option hooks to diagnostic_option_manager.
+ 	* opts-common.cc: Include "opts-diagnostic.h".
+ 	(compiler_diagnostic_option_manager::option_enabled_p): New.
+ 	* opts-diagnostic.h (option_name): Drop decl.
+ 	(get_option_url): Drop decl.
+ 	(class gcc_diagnostic_option_manager): New.
+ 	(class compiler_diagnostic_option_manager): New.
+ 	* opts.cc (option_name): Convert to...
+ 	(compiler_diagnostic_option_manager::make_option_name): ...this.
+ 	(get_option_url): Convert to...
+ 	(gcc_diagnostic_option_manager::make_option_url): ...this.
+ 	* toplev.cc (general_init): Port from option hooks to
+ 	diagnostic_option_manager.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* attribs.cc (decls_mismatched_attributes): Rename
+ 	diagnostic_context's "printer" field to "m_printer".
+ 	(attr_access::array_as_string): Likewise.
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::on_report_diagnostic): Likewise.
+ 	(diagnostic_output_format_init_json): Likewise.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_result::on_nested_diagnostic): Likewise.
+ 	(sarif_ice_notification): Likewise.
+ 	(sarif_builder::on_report_diagnostic): Likewise.
+ 	(sarif_builder::make_result_object): Likewise.
+ 	(sarif_builder::make_location_object): Likewise.
+ 	(sarif_builder::make_message_object_for_diagram): Likewise.
+ 	(diagnostic_output_format_init_sarif): Likewise.
+ 	* diagnostic-format-text.cc
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	Likewise.
+ 	(diagnostic_text_output_format::on_report_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::on_diagram): Likewise.
+ 	(diagnostic_text_output_format::print_any_cwe): Likewise.
+ 	(diagnostic_text_output_format::print_any_rules): Likewise.
+ 	(diagnostic_text_output_format::print_option_information):
+ 	Likewise.
+ 	* diagnostic-format.h (diagnostic_output_format::get_printer):
+ 	New.
+ 	* diagnostic-global-context.cc (verbatim): Rename
+ 	diagnostic_context's "printer" field to "m_printer".
+ 	* diagnostic-path.cc (path_label::get_text): Likewise.
+ 	(print_path_summary_as_text): Likewise.
+ 	(diagnostic_context::print_path): Likewise.
+ 	(selftest::test_empty_path): Likewise.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	* diagnostic-show-locus.cc (layout::layout): Likewise.
+ 	(selftest::test_layout_x_offset_display_utf8): Likewise.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_diagnostic_show_locus_unknown_location): Likewise.
+ 	(selftest::test_one_liner_simple_caret): Likewise.
+ 	(selftest::test_one_liner_no_column): Likewise.
+ 	(selftest::test_one_liner_caret_and_range): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after): Likewise.
+ 	(selftest::test_one_liner_fixit_remove): Likewise.
+ 	(selftest::test_one_liner_fixit_replace): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2): Likewise.
+ 	(selftest::test_one_liner_labels): Likewise.
+ 	(selftest::test_one_liner_simple_caret_utf8): Likewise.
+ 	(selftest::test_one_liner_caret_and_range_utf8): Likewise.
+ 	(selftest::test_one_liner_multiple_carets_and_ranges_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_remove_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_utf8): Likewise.
+ 	(selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
+ 	Likewise.
+ 	(selftest::test_one_liner_many_fixits_1_utf8): Likewise.
+ 	(selftest::test_one_liner_many_fixits_2_utf8): Likewise.
+ 	(selftest::test_one_liner_labels_utf8): Likewise.
+ 	(selftest::test_one_liner_colorized_utf8): Likewise.
+ 	(selftest::test_add_location_if_nearby): Likewise.
+ 	(selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
+ 	(selftest::test_overlapped_fixit_printing): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_2): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline): Likewise.
+ 	(selftest::test_fixit_insert_containing_newline_2): Likewise.
+ 	(selftest::test_fixit_replace_containing_newline): Likewise.
+ 	(selftest::test_fixit_deletion_affecting_newline): Likewise.
+ 	(selftest::test_tab_expansion): Likewise.
+ 	(selftest::test_escaping_bytes_1): Likewise.
+ 	(selftest::test_escaping_bytes_2): Likewise.
+ 	(selftest::test_line_numbers_multiline_range): Likewise.
+ 	* diagnostic.cc (file_name_as_prefix): Likewise.
+ 	(diagnostic_set_caret_max_width): Likewise.
+ 	(diagnostic_context::initialize): Likewise.
+ 	(diagnostic_context::color_init): Likewise.
+ 	(diagnostic_context::urls_init): Likewise.
+ 	(diagnostic_context::finish): Likewise.
+ 	(diagnostic_context::get_location_text): Likewise.
+ 	(diagnostic_build_prefix): Likewise.
+ 	(diagnostic_context::report_current_module): Likewise.
+ 	(default_diagnostic_starter): Likewise.
+ 	(default_diagnostic_start_span_fn): Likewise.
+ 	(default_diagnostic_finalizer): Likewise.
+ 	(diagnostic_context::report_diagnostic): Likewise.
+ 	(diagnostic_append_note): Likewise.
+ 	(diagnostic_context::error_recursion): Likewise.
+ 	(fancy_abort): Likewise.
+ 	* diagnostic.h (diagnostic_context::set_show_highlight_colors):
+ 	Likewise.
+ 	(diagnostic_context::printer): Rename to...
+ 	(diagnostic_context::m_printer): ...this.
+ 	(diagnostic_format_decoder): Rename diagnostic_context's "printer"
+ 	field to "m_printer".
+ 	(diagnostic_prefixing_rule): Likewise.
+ 	(diagnostic_ready_p): Likewise.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel):
+ 	Likewise.
+ 	* langhooks.cc (lhd_print_error_function): Likewise.
+ 	* lto-wrapper.cc (print_lto_docs_link): Likewise.
+ 	* opts-global.cc (init_options_once): Likewise.
+ 	* opts.cc (common_handle_option): Likewise.
+ 	* simple-diagnostic-path.cc (simple_diagnostic_path_cc_tests):
+ 	Likewise.
+ 	* text-art/dump.h (dump_to_file<T>): Likewise.
+ 	* toplev.cc (announce_function): Likewise.
+ 	(toplev::main): Likewise.
+ 	* tree-diagnostic.cc (default_tree_diagnostic_starter): Likewise.
+ 	* tree.cc (escaped_string::escape): Likewise.
+ 	(selftest::test_escaped_strings): Likewise.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116603
+ 	* diagnostic-format-sarif.cc (SARIF_SCHEMA): Update URL.
+ 	(sarif_builder::maybe_make_region_object): Don't create regions
+ 	with startLine <= 0.
+ 	(sarif_builder::maybe_make_region_object_for_context): Likewise.
+ 
+ 2024-09-09  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*insvdi_lowpart_1): Use "o" constraint
+ 	instead of "m" for double-word mode memory operands.
+ 	(*add<dwi>3_doubleword_zext): Ditto.
+ 	(*addv<dwi>4_doubleword_1): Use "jO" constraint instead of "jM"
+ 	for double-word mode memory operands.
+ 
+ 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/90693
+ 	* internal-fn.cc (expand_POPCOUNT): Handle the second argument
+ 	being `-1` for `<= 1`.
+ 	* tree-ssa-math-opts.cc (match_single_bit_test): Handle LE/GT
+ 	cases.
+ 	(math_opts_dom_walker::after_dom_children): Call match_single_bit_test
+ 	for LE_EXPR/GT_EXPR also.
+ 
+ 2024-09-09  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_legitimate_address_p): Don't
+ 	canonicalize operand order of scaled index addresses.
+ 
+ 2024-09-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116514
+ 	* tree-ssa-ccp.cc (bit_value_binop): Handle EXACT_DIV_EXPR
+ 	like TRUNC_DIV_EXPR.  Handle exact division of a signed value
+ 	by a power-of-two like a shift.  Handle unsigned division by
+ 	a power-of-two like a shift.
+ 	Handle unsigned TRUNC_MOD_EXPR by power-of-two, handle signed
+ 	TRUNC_MOD_EXPR by power-of-two if the result is zero.
+ 
+ 2024-09-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116647
+ 	* tree-vect-loop.cc (vect_is_simple_reduction): Add missing
+ 	check to double reduction detection.
+ 
+ 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116601
+ 	* gimple-fold.cc (optimize_memcpy_to_memset): Move
+ 	from tree-ssa-ccp.cc and rename. Also return true
+ 	if the optimization happened.
+ 	(gimple_fold_builtin_memory_op): Call
+ 	optimize_memcpy_to_memset.
+ 	(fold_stmt_1): Call optimize_memcpy_to_memset for
+ 	load/store copies.
+ 	* tree-ssa-ccp.cc (optimize_memcpy): Delete.
+ 	(pass_fold_builtins::execute): Remove code that
+ 	calls optimize_memcpy.
+ 
+ 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Move the has_single_use
+ 	checks much earlier. Remove redundant check for gimple_assign_cast_p.
+ 	Change around the check if the integral consts fits into the new type.
+ 
+ 2024-09-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/116617
+ 	* doc/invoke.texi: Add meteorlake, raptorlake and lunarlake.
+ 
+ 2024-09-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/116621
+ 	* config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
+ 	a PARALLEL BLKmode container of an EXPR_LIST expression in a
+ 	TImode register.
+ 
+ 2024-09-08  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* gcov.cc (release_structures): Release source_lines.
+ 	(slurp): New function.
+ 	(output_lines): Read sources with slurp.
+ 
+ 2024-09-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-ssa-split-paths.cc (is_feasible_trace): Fix wording
+ 	on the print.
+ 
+ 2024-09-07  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/116588
+ 	* tree-vrp.cc (execute_fast_vrp): Start with all edges executable.
+ 
+ 2024-09-07  Zhao Dingyi  <dingyizhao.zdy@outlook.com>
+ 
+ 	* config/riscv/xiangshan.md: Add atomic, trap, fcvt_i2f, fcvt_f2i.
+ 
+ 2024-09-07  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	PR target/116592
+ 	* config/riscv/thead.cc (th_asm_output_opcode): Change '0' to
+ 	"zero"
+ 
+ 2024-09-06  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-overload.def (vec_test_lsbb_all_ones,
+ 	vec_test_lsbb_all_zeros): Add built-in instances for vector signed
+ 	char and vector bool char.
+ 	* doc/extend.texi (vec_test_lsbb_all_ones,
+ 	vec_test_lsbb_all_zeros): Add documentation for the
+ 	existing built-ins.
+ 
+ 2024-09-06  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/116628
+ 	* tree-vect-patterns.cc (vect_recog_cond_store_pattern): Add SSA_NAME
+ 	check on expression.
+ 
+ 2024-09-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/116598
+ 	* config/aarch64/aarch64.cc (aarch64_lookup_shared_state_flags): Use
+ 	is_attribute_namespace_p and get_attribute_name instead of manually grabbing
+ 	the namespace and name of the attribute.
+ 
+ 2024-09-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* passes.def: Move pass_ipa_cdtor_merge before pass_ipa_cp and
+ 	pass_ipa_sra.
+ 
+ 2024-09-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/115815
+ 	* cgraph.cc (cgraph_node_cannot_be_local_p_1): Also check
+ 	DECL_STATIC_CONSTRUCTOR and DECL_STATIC_DESTRUCTOR.
+ 	* ipa-visibility.cc (non_local_p): Likewise.
+ 	(cgraph_node::local_p): Delete extraneous line of tabs.
+ 
+ 2024-09-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Also handle discovery
+ 	for double reductions.
+ 
+ 2024-09-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Perform single-lane
+ 	loop SLP discovery for non-grouped stores.  Move check on the root
+ 	for re-doing SLP analysis with a single lane for load/store-lanes
+ 	earlier and make sure we are dealing with a grouped access.
+ 	* tree-vect-stmts.cc (vectorizable_store): Always set
+ 	vec_num for SLP.
+ 
+ 2024-09-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.h: Remove "Atmel" from header comment.
+ 	* config/avr/avr.cc: Same.
+ 	* config/avr/avr.md: Same.
+ 	* config/avr/avr.opt: Same.
+ 	* config/avr/avr-dimode.md: Same.
+ 	* config/avr/avr-fixed.md: Same.
+ 	* config/avr/constraints.md: Same.
+ 	* config/avr/predicates.md: Same.
+ 	* config/avr/avr-log.cc: Same.
+ 	* config/avr/avrlibc.h: Same.
+ 	* config/avr/specs.h: Same.
+ 	* common/config/avr/avr-common.cc: Same.
+ 	* doc/install.texi: Same.
+ 	* config/avr/avr-arch.h: Adjust header comment.
+ 	* config/avr/avr-c.cc: Same.
+ 	* config/avr/avr-mcus.def: Same.
+ 	* config/avr/avr-modes.def: Same.
+ 	* config/avr/avr-passes.cc: Same.
+ 	* config/avr/avr-passes.def: Same.
+ 	* config/avr/avr-protos.h: Same.
+ 	* config/avr/driver-avr.cc: Same.
+ 	* config/avr/elf.h: Same.
+ 	* config/avr/gen-avr-mmcu-specs.cc: Same.
+ 	* config/avr/gen-avr-mmcu-texi.cc: Same.
+ 
+ 2024-09-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116610
+ 	* tree-vect-loop.cc (vectorizable_induction): Use MINUS_EXPR
+ 	to apply a mask peeling adjustment.
+ 
+ 2024-09-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116609
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1): Support
+ 	partial vectors for single-lane SLP.
+ 
+ 2024-09-06  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer): Detect constants
+ 	were the higher half is the lower half inverted.
+ 
+ 2024-09-06  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer): Detect new case
+ 	of constants that can be improved.
+ 	(riscv_move_integer): Add synthesys for concatening constants
+ 	without Zbkb.
+ 
+ 2024-09-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add int_fits_type_p check for .SAT_SUB imm operand.
+ 
+ 2024-09-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add int_fits_type_p check for .SAT_SUB imm operand.
+ 
+ 2024-09-06  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi):
+ 	Fix out of index problem.
+ 
+ 2024-09-06  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/46457
+ 	PR c++/81665
+ 	* doc/extend.texi: Document flag_enum attribute.
+ 	* doc/invoke.texi: Mention flag_enum in -Wswitch.
+ 
+ 2024-09-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md (*avx2_pcmp<mode>3_1): Change predicate
+ 	of operands[1] and operands[2] from nonimmdiate_operand to
+ 	nonimm_or_0_operand.
+ 
+ 2024-09-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_int_scc): For rv64, use a DI
+ 	temporary for the output and a promoted subreg to extract it into SI
+ 	arget.
+ 	(riscv_noce_conversion_profitable_p): Recognize new output from
+ 	sCC expansion too.
+ 
+ 2024-09-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Remove an extra char in @item sme2.
+ 
+ 2024-09-05  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	* gimplify.cc (omp_add_variable): Check if decl size is not poly_int_tree_p.
+ 	(gimplify_adjust_omp_clauses): Likewise.
+ 	* omp-low.cc (scan_sharing_clauses): Likewise.
+ 	(lower_omp_target): Likewise.
+ 
+ 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/104957
+ 	* config/nvptx/nvptx.cc (write_fn_proto_1): Revert 2022-03-22
+ 	change; 'write_fn_marker' also for alias DECL.
+ 	(nvptx_asm_output_def_from_decls): 'write_fn_marker' for alias
+ 	DEF.
+ 
+ 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
+ 	'nvptx_default_ptx_isa_version_at_least_6_0',
+ 	'nvptx_runtime_alias_ptx'.
+ 	(Add Options): Document 'nvptx_alias_ptx'.
+ 
+ 2024-09-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_cond_store_pattern): Use pattern
+ 	statement.
+ 
+ 2024-09-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/invoke.texi: Remove duplicate armv9-a mention.
+ 
+ 2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-vrp.cc (pass_vrp::execute): Start diagnostics with
+ 	lowercase u rather than capital U, use semicolon instead of dot.
+ 
+ 2024-09-05  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi):
+ 	look up reversely as the fallback path is listed as the 1st one.
+ 
+ 2024-09-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Analyze SLP for live
+ 	but otherwise unused defs.
+ 
+ 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* gen-pass-instances.awk: Handle 'PUSH_INSERT_PASSES_WITHIN'.
+ 	* pass_manager.h (PUSH_INSERT_PASSES_WITHIN): Adjust.
+ 	* passes.cc (PUSH_INSERT_PASSES_WITHIN): Likewise.
+ 
+ 2024-09-05  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/mmx.md (TARGET_MMX_WITH_SSE): New mode iterator VBF_32_64
+ 	(fma<mode>4): define_expand for V2BF/V4BF fma<mode>4.
+ 	(fnma<mode>4): define_expand for V2BF/V4BF fnma<mode>4.
+ 	(fms<mode>4): define_expand for V2BF/V4BF fms<mode>4.
+ 	(fnms<mode>4): define_expand for V2BF/V4BF fnms<mode>4.
+ 
+ 2024-09-05  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* match.pd: Fix match for (bit_and (ordered @0 @1) (ne @0 @1)).
+ 
+ 2024-09-05  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386.cc (ix86_build_const_vector): Add V2BF/V4BF.
+ 	(ix86_build_signbit_mask): Add V2BF/V4BF.
+ 	* config/i386/mmx.md: Modified supported logic op to use VHBF_32_64.
+ 
+ 2024-09-05  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386.cc (ix86_preferred_simd_mode): Add BFmode Support.
+ 
+ 2024-09-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_split_integer_cost): Adjust the
+ 	cost of negative repeating constants.
+ 	(riscv_split_integer): Handle negative repeating constants.
+ 
+ 2024-09-04  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* dwarf2out.cc (modified_type_die): Check DECL_NAMELESS.
+ 
+ 2024-09-04  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR c++/106973
+ 	* internal-fn.def (CO_YIELD): Mark as ECF_LEAF.
+ 
+ 2024-09-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-object-size.cc (object_sizes_execute): Mark lhs for maybe dceing
+ 	if doing a propagate. Call simple_dce_from_worklist.
+ 
+ 2024-09-04  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/gen-opt.sh: Use 'enum ptx_isa' instead of 'int'.
+ 	* config/nvptx/nvptx-gen.opt: Regenerate.
+ 	* config/nvptx/nvptx.opt: Use 'enum ptx_version' instead of 'int'.
+ 	* config/nvptx/nvptx-opts.h (enum ptx_isa): Add 'PTX_ISA_unset'.
+ 	(enum ptx_version): Add 'PTX_VERSION_unset'.
+ 	* config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Adjust.
+ 	* config/nvptx/nvptx.cc (default_ptx_version_option)
+ 	(handle_ptx_version_option, nvptx_option_override)
+ 	(nvptx_file_start): Likewise.
+ 
+ 2024-09-04  Frederik Harwath  <frederik@codesourcery.com>
+ 	    Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* predict.cc (pass_profile::execute): Fix dump message.
+ 
+ 2024-09-04  Frederik Harwath  <frederik@codesourcery.com>
+ 
+ 	* tree-cfg.h (gimple_debug_cfg): Change argument type from int
+ 	to dump_flags_t.
+ 
+ 2024-09-04  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* passes.cc: Document 'pass_postreload' vs. 'pass_late_compilation'.
+ 	* passes.def: Likewise.
+ 
+ 2024-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_lower_load_permutations): Also
+ 	process single-use grouped loads.
+ 	Avoid lowering contiguous aligned power-of-two sized
+ 	chunks, those are better handled by the vector size
+ 	specific SLP code generation.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Drop
+ 	the unrelated requirement of a load permutation for the
+ 	single-element interleaving limit.
+ 
+ 2024-09-04  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune-costs.h (znver5_cost): Update instruction
+ 	costs.
+ 
+ 2024-09-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* expr.cc (expand_expr_divmod): Add dump of the two costs for
+ 	positive division.
+ 
+ 2024-09-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (lra_szext_decomposed_indir_plus): New
+ 	peephole2 pattern.
+ 
+ 2024-09-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_usadd): Zero extend
+ 	the second operand of usadd as the first operand does.
+ 	* config/riscv/riscv.md (usadd<m>3): Allow imm operand for
+ 	scalar usadd pattern.
+ 
+ 2024-09-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/112402
+ 	* gimple-ssa-split-paths.cc (poor_ifcvt_pred): New function.
+ 	(is_feasible_trace): Remove old heurstics for ifcvt cases.
+ 	For num_stmts <=1 for both pred check poor_ifcvt_pred on both
+ 	pred.
+ 
+ 2024-09-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-ssa-split-paths.cc (is_feasible_trace): Move
+ 	check for # of statments in join earlier and add a
+ 	debug print.
+ 
+ 2024-09-03  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Explicitly mentions counted_by is available
+ 	only in C for now.
+ 
+ 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print-markup.h (pp_markup::context::context): Drop
+ 	params "buf" and "chunk_idx", initializing m_buf from pp.
+ 	(pp_markup::context::m_chunk_idx): Drop field.
+ 	* pretty-print.cc (pretty_printer::format): Convert param
+ 	from a text_info * to a text_info &.  Split out phase 1
+ 	and phase 2 into subroutines...
+ 	(format_phase_1): New, from pretty_printer::format.
+ 	(format_phase_2): Likewise.
+ 	* pretty-print.h (pretty_printer::format): Convert param
+ 	from a text_info * to a text_info &.
+ 	(pp_format): Update for above change.  Assert that text_info is
+ 	non-null.
+ 
+ 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print-format-impl.h (pp_formatted_chunks::get_prev): New
+ 	accessor.
+ 	* pretty-print.cc (selftest::push_pp_format): New.
+ 	(ASSERT_TEXT_TOKEN): New macro.
+ 	(selftest::test_pp_format_stack): New test.
+ 	(selftest::pretty_print_cc_tests): New.
+ 
+ 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_set_caret_max_width): Prefix all
+ 	output_buffer fields with "m_".
+ 	* dumpfile.cc (emit_any_pending_textual_chunks): Likewise.
+ 	(emit_any_pending_textual_chunks): Likewise.
+ 	* gimple-pretty-print.cc (gimple_dump_bb_buff): Likewise.
+ 	* json.cc (value::dump): Likewise.
+ 	* pretty-print-format-impl.h (class chunk_info): Rename to...
+ 	(class pp_formatted_chunks): ...this.  Add friend
+ 	class output_buffer.  Update comment near end of decl to show
+ 	the pp_formatted_chunks instance on the chunk_obstack.
+ 	(pp_formatted_chunks::pop_from_output_buffer): Delete decl.
+ 	(pp_formatted_chunks::on_begin_quote): Delete decl that should
+ 	have been removed in r15-3311-ge31b6176996567.
+ 	(pp_formatted_chunks::on_end_quote): Likewise.
+ 	(pp_formatted_chunks::m_prev): Update for renaming.
+ 	* pretty-print.cc (output_buffer::output_buffer): Prefix all
+ 	fields with "m_".  Rename "cur_chunk_array" to
+ 	"m_cur_formatted_chunks".
+ 	(output_buffer::~output_buffer): Prefix all fields with "m_".
+ 	(output_buffer::push_formatted_chunks): New.
+ 	(output_buffer::pop_formatted_chunks): New.
+ 	(pp_write_text_to_stream): Prefix all output_buffer fields with
+ 	"m_".
+ 	(pp_write_text_as_dot_label_to_stream): Likewise.
+ 	(pp_write_text_as_html_like_dot_to_stream): Likewise.
+ 	(chunk_info::append_formatted_chunk): Rename to...
+ 	(pp_formatted_chunks::append_formatted_chunk): ...this.
+ 	(chunk_info::pop_from_output_buffer): Delete.
+ 	(pretty_printer::format): Update leading comment to mention
+ 	pushing pp_formatted_chunks, and to reflect changes in
+ 	r15-3311-ge31b6176996567.  Prefix all output_buffer fields with
+ 	"m_".
+ 	(pp_output_formatted_text): Update leading comment to mention
+ 	popping a pp_formatted_chunks, and to reflect the changes in
+ 	r15-3311-ge31b6176996567.  Prefix all output_buffer fields with
+ 	"m_" and rename "cur_chunk_array" to "m_cur_formatted_chunks".
+ 	Replace call to chunk_info::pop_from_output_buffer with a call to
+ 	output_buffer::pop_formatted_chunks.
+ 	(pp_flush): Prefix all output_buffer fields with "m_".
+ 	(pp_really_flush): Likewise.
+ 	(pp_clear_output_area): Likewise.
+ 	(pp_append_text): Likewise.
+ 	(pretty_printer::remaining_character_count_for_line): Likewise.
+ 	(pp_newline): Likewise.
+ 	(pp_character): Likewise.
+ 	(pp_markup::context::push_back_any_text): Likewise.
+ 	* pretty-print.h (class chunk_info): Rename to...
+ 	(class pp_formatted_chunks): ...this.
+ 	(class output_buffer): Delete unimplemented rule-of-5 members.
+ 	(output_buffer::push_formatted_chunks): New decl.
+ 	(output_buffer::pop_formatted_chunks): New decl.
+ 	(output_buffer::formatted_obstack): Rename to...
+ 	(output_buffer::m_formatted_obstack): ...this.
+ 	(output_buffer::chunk_obstack): Rename to...
+ 	(output_buffer::m_chunk_obstack): ...this.
+ 	(output_buffer::obstack): Rename to...
+ 	(output_buffer::m_obstack): ...this.
+ 	(output_buffer::cur_chunk_array): Rename to...
+ 	(output_buffer::m_cur_formatted_chunks): ...this.
+ 	(output_buffer::stream): Rename to...
+ 	(output_buffer::m_stream): ...this.
+ 	(output_buffer::line_length): Rename to...
+ 	(output_buffer::m_line_length): ...this.
+ 	(output_buffer::digit_buffer): Rename to...
+ 	(output_buffer::m_digit_buffer): ...this.
+ 	(output_buffer::flush_p): Rename to...
+ 	(output_buffer::m_flush_p): ...this.
+ 	(output_buffer_formatted_text): Prefix all output_buffer fields
+ 	with "m_".
+ 	(output_buffer_append_r): Likewise.
+ 	(output_buffer_last_position_in_text): Likewise.
+ 	(pretty_printer::set_output_stream): Likewise.
+ 	(pp_scalar): Likewise.
+ 	(pp_wide_int): Likewise.
+ 	* tree-pretty-print.cc (dump_generic_node): Likewise.
+ 	(dump_generic_node): Likewise.
+ 	(pp_double_int): Likewise.
+ 
+ 2024-09-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/i386.cc (ix86_reassociation_width): Update for Znver5.
+ 	* config/i386/x86-tune-costs.h (znver5_costs): Update reassociation
+ 	widths.
+ 
+ 2024-09-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* J: Drop file that should not have been committed
+ 
+ 2024-09-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
+ 	typo.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_print_slp_tree): Annotate load
+ 	and store-lanes nodes.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Only disable
+ 	peeling for gaps by using smaller vectors when not using
+ 	load-lanes.
+ 
+ 2024-09-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/i386.h (TARGET_FUSE_MOV_AND_ALU): New tune.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Updat for znver5.
+ 	(ix86_adjust_cost): Add TODO about znver5 memory latency.
+ 	(ix86_fuse_mov_alu_p): New.
+ 	(ix86_macro_fusion_pair_p): Use it.
+ 	* config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add ZNVER5.
+ 	(X86_TUNE_FUSE_MOV_AND_ALU): New tune;
+ 
+ 2024-09-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for
+ 	ZNVER5.
+ 	(X86_TUNE_USE_SCATTER_2PARTS): Disable for ZNVER5.
+ 	(X86_TUNE_USE_GATHER_4PARTS): Disable for ZNVER5.
+ 	(X86_TUNE_USE_SCATTER_4PARTS): Disable for ZNVER5.
+ 	(X86_TUNE_USE_GATHER_8PARTS): Disable for ZNVER5.
+ 	(X86_TUNE_USE_SCATTER_8PARTS): Disable for ZNVER5.
+ 
+ 2024-09-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR ipa/116410
+ 	* ipa-modref.cc (analyze_parms): Always analyze function parameter
+ 	for LTO.
+ 
+ 2024-09-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/115921
+ 	* config/riscv/riscv.md (reassociate bitwise ops): Tighten test for
+ 	cases we do not want reassociate.
+ 	* J: New file.
+ 
+ 2024-09-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for
+ 	znver5.
+ 	(X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
+ 	(X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
+ 
+ 2024-09-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR lto/116535
+ 	* lto-cgraph.cc (output_offload_tables): Remove offload_ frees.
+ 	* lto-streamer-out.cc (lto_output): Make call to it depend on
+ 	lto_get_out_decl_state ()->output_offload_tables_p.
+ 	* lto-streamer.h (struct lto_out_decl_state): Add
+ 	output_offload_tables_p field.
+ 	* tree-pass.h (ipa_write_optimization_summaries): Add bool argument.
+ 	* passes.cc (ipa_write_summaries_1): Add bool
+ 	output_offload_tables_p arg.
+ 	(ipa_write_summaries): Update call.
+ 	(ipa_write_optimization_summaries): Accept output_offload_tables_p.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116575
+ 	* tree-vect-slp.cc (vect_analyze_slp): Properly compute
+ 	the mask argument for vect_load/store_lanes_supported.
+ 	When the load is masked for now avoid rediscovery.
+ 
+ 2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512fp16intrin.h
+ 	(_mm512_mask_fpclass_ph_mask): Correct mask type to __mmask32.
+ 	(_mm512_fpclass_ph_mask): Ditto.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* fold-const.cc (poly_int_binop): Move assert on
+ 	NUM_POLY_INT_COEFFS after INTEGER_CST processing.
+ 
+ 2024-09-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/116501
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
+ 	In the last_ovf case, use build_zero_cst operand not just when
+ 	TYPE_UNSIGNED (typeN), but also when precN >= 0.
+ 
+ 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
+ 	Try constant folding.
+ 
+ 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
+ 	Try constant folding.
+ 	* config/aarch64/aarch64-sve-builtins.h: Declare
+ 	gimple_folder::fold_const_binary.
+ 	* config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop):
+ 	New function to fold binary SVE intrinsics without overflow.
+ 	(gimple_folder::fold_const_binary): New helper function for
+ 	constant folding of SVE intrinsics.
+ 
+ 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* fold-const.h: Declare vector_const_binop.
+ 	* fold-const.cc (const_binop): Remove cases for vector constants.
+ 	(vector_const_binop): New function that folds vector constants
+ 	element-wise.
+ 	(int_const_binop): Remove call to wide_int_binop.
+ 	(poly_int_binop): Add call to wide_int_binop.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Handle mixing
+ 	all of handled components besides ARRAY_RANGE_REF, drop
+ 	handling of INDIRECT_REF.
+ 
+ 2024-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_get_vector_types_for_stmt):
+ 	Handle all internal_store_fn_p the same.  Remove special-casing
+ 	for the scalar_type of IFN_MASK_STORE.
+ 
+ 2024-09-03  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/mmx.md (<code><mode>3): New define_expand for V2BF/V4BFsmaxmin
+ 
+ 2024-09-03  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/mmx.md (VBF_32_64): New mode iterator for partial vectorized V2BF/V4BF.
+ 	(<insn><mode>3): New define_expand for plusminusmultdiv.
+ 	(sqrt<mode>2): New define_expand for sqrt.
+ 
+ 2024-09-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_ssadd): Add new func
+ 	decl for expanding ssadd.
+ 	* config/riscv/riscv.cc (riscv_gen_sign_max_cst): Add new func
+ 	impl to gen the max int rtx.
+ 	(riscv_expand_ssadd): Add new func impl to expand the ssadd.
+ 	* config/riscv/riscv.md (ssadd<mode>3): Add new pattern for
+ 	signed integer .SAT_ADD.
+ 
+ 2024-09-03  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips-msa.md: (MSA_NO_HADD): we have HADD for
+ 	S8/U8/S16/U16/S32/U32 only.
+ 	(reduc_smin_scal_<mode>): New define pattern.
+ 	(reduc_smax_scal_<mode>): Ditto.
+ 	(reduc_umin_scal_<mode>): Ditto.
+ 	(reduc_umax_scal_<mode>): Ditto.
+ 	(reduc_plus_scal_<mode>): Ditto.
+ 	(reduc_plus_scal_v4si): Ditto.
+ 	(reduc_plus_scal_v8hi): Ditto.
+ 	(reduc_plus_scal_v16qi): Ditto.
+ 	(reduc_<optab>_scal_<mode>): Ditto.
+ 	* config/mips/mips-protos.h: New function mips_expand_msa_reduc.
+ 	* config/mips/mips.cc: New function mips_expand_msa_reduc.
+ 	* config/mips/mips.md: Define any_bitwise iterator.
+ 
+ 2024-09-02  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR d/115295
+ 	* doc/sourcebuild.texi (dg-additional-sources): Add linkonly.
+ 
+ 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (TARGET_GCN5_PLUS): Delete.
+ 	(TARGET_GLOBAL_ADDRSPACE): Delete.
+ 	(TARGET_FLAT_OFFSETS): Delete.
+ 	(TARGET_EXPLICIT_CARRY): Delete.
+ 	(TARGET_MULTIPLY_IMMEDIATE): Delete.
+ 	* config/gcn/gcn-valu.md (*mov<mode>): Rename "gcn_version" to "cdna".
+ 	(*mov<mode>_4reg): Likewise.
+ 	(@mov<mode>_sgprbase): Likwise.
+ 	(gather<mode>_insn_1offset<exec>): Likewise.
+ 	(gather<mode>_insn_1offset_ds<exec>): Likewise.
+ 	(gather<mode>_insn_2offsets<exec>): Likewise.
+ 	(scatter<mode>_insn_1offset<exec_scatter>): Likewise.
+ 	(scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
+ 	(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
+ 	(gather<mode>_insn_1offset<exec>): Remove TARGET_FLAT_OFFSETS
+ 	conditionals.
+ 	(scatter<mode>_insn_1offset<exec_scatter>): Likewise.
+ 	(scatter<mode>_insn_1offset<exec_scatter>): Likewise.
+ 	(add<mode>3<exec_clobber>): Use "_co" instead of "%^".
+ 	(add<mode>3_dup<exec_clobber>): Likewise.
+ 	(add<mode>3_vcc<exec_vcc>): Likewise.
+ 	(add<mode>3_vcc_dup<exec_vcc>): Likewise.
+ 	(addc<mode>3<exec_vcc>): Likewise.
+ 	(sub<mode>3<exec_clobber>): Likewise.
+ 	(sub<mode>3_vcc<exec_vcc>): Likewise.
+ 	(subc<mode>3<exec_vcc>): Likewise.
+ 	(*plus_carry_dpp_shr_<mode>): Likewise.
+ 	(*plus_carry_in_dpp_shr_<mode>): Likewise.
+ 	* config/gcn/gcn.cc (gcn_flat_address_p): Remove TARGET_FLAT_OFFSETS
+ 	conditionals.
+ 	(gcn_addr_space_legitimate_address_p): Likewise.
+ 	(gcn_addr_space_legitimize_address): Likewise.
+ 	(gcn_expand_scalar_to_vector_address): Likewise.
+ 	(print_operand_address): Likewise, and TARGET_GLOBAL_ADDRSPACE also.
+ 	(print_operand): Remove "%^" operand code.
+ 	Remove TARGET_GLOBAL_ADDRSPACE assertion.
+ 	* config/gcn/gcn.h (STACK_ADDR_SPACE): Remove GCN5 conditional.
+ 	* config/gcn/gcn.md (gcn_version): Rename attribute ...
+ 	(cdna): ... to this, and remove the gcn3 and gcn5 values.
+ 	(enabled): Replace old "gcn_version" logic with new "cdna" logic.
+ 	(*mov<mode>_insn): Rename "gcn_version" to "cdna".
+ 	(*movti_insn): Likewise.
+ 	(addsi3): Use "_co" instead of "%^".
+ 	(addsi3_scalar_carry): Likewise.
+ 	(addsi3_scalar_carry_cst): Likewise.
+ 	(addcsi3_scalar): Likewise.
+ 	(addcsi3_scalar_zero): Likewise.
+ 	(addptrdi3): Likewise.
+ 	(subsi3): Likewise.
+ 	(<su>mulsi3_highpart): Remove TARGET_MULTIPLY_IMMEDIATE conditions.
+ 	(<su>mulsi3_highpart_reg): Remove "gcn_version" attribute.
+ 	(muldi3): Likewise.
+ 	(atomic_fetch_<bare_mnemonic><mode>): Likewise.
+ 	(atomic_<bare_mnemonic><mode>): Likewise.
+ 	(sync_compare_and_swap<mode>_insn): Likewise.
+ 	(atomic_load<mode>): Likewise.
+ 	(atomic_store<mode>): Likewise.
+ 	(atomic_exchange<mode>): Likewise.
+ 	(<su>mulsi3_highpart_imm): Remove both TARGET_MULTIPLY_IMMEDIATE and
+ 	"gcn_version".
+ 	(<su>mulsidi3): Likewise.
+ 	(<su>mulsidi3_imm): Likewise.
+ 
+ 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (enum gcn_isa): Delete ISA_GCN3.
+ 	(TARGET_GCN3): Delete.
+ 	(TARGET_GCN3_PLUS): Delete.
+ 	(TARGET_M0_LDS_LIMIT): Delete.
+ 	* config/gcn/gcn-valu.md
+ 	(gather<mode>_insn_1offset<exec>): Remove TARGET_GCN3 from conditions.
+ 	(*<reduc_op>_dpp_shr_<mode>): Likewise.
+ 	* config/gcn/gcn.cc (enum gcn_isa): Change default to ISA_GCN5.
+ 	(gcn_expand_prologue): Remove TARGET_M0_LDS_LIMIT feature.
+ 	(gcn_expand_reduc_scalar): Remove TARGET_GCN3 conditions.
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Remove TARGET_GCN3.
+ 
+ 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config.gcc (amdgcn-*-*): Remove "fiji" from with_arch checks.
+ 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove fiji alternative.
+ 	(NO_XNACK): Likewise.
+ 	(NO_SRAM_ECC): Likewise.
+ 	(ASM_SPEC): Remove "%{}" around ABI_VERSION_SPEC.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Remove PROCESSOR_FIJI.
+ 	(TARGET_FIJI): Delete.
+ 	* config/gcn/gcn.cc (gcn_option_override): Remove Fiji.
+ 	(gcn_omp_device_kind_arch_isa): Likewise.
+ 	(output_file_start): Likewise.
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Likewise.
+ 	* config/gcn/gcn.opt (gpu_type): Likewise.
+ 	(march, mtune): Change default to PROCESSOR_VEGA10.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX803): Delete.
+ 	(copy_early_debug_info): Remove elf_flags_actual.
+ 	Use ELFABIVERSION_AMDGPU_HSA_V4 unconditionally.
+ 	(get_arch): Remove Fiji.
+ 	(main): Remove gfx803.
+ 	* config/gcn/t-omp-device
+ 	(omp-device-properties-gcn): Remove fiji and gfx803.
+ 	* doc/install.texi (amdgcn*-*-*): Remove fiji and special instructions.
+ 	* doc/invoke.texi: Remove fiji.
+ 
+ 2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/gimple.texi (gimple_asm_basic_p): Document.
+ 	(gimple_asm_set_basic): Likewise.
+ 	* gimple.h (GF_ASM_INPUT): Rename to...
+ 	(GF_ASM_BASIC): ...this.
+ 	(gimple_asm_set_input): Rename to...
+ 	(gimple_asm_set_basic): ...this.
+ 	(gimple_asm_input_p): Rename to...
+ 	(gimple_asm_basic_p): ...this.
+ 	* cfgexpand.cc (expand_asm_stmt): Update after above renaming.
+ 	* gimple.cc (gimple_asm_clobbers_memory_p): Likewise.
+ 	* gimplify.cc (gimplify_asm_expr): Likewise.
+ 	* ipa-icf-gimple.cc (func_checker::compare_gimple_asm): Likewise.
+ 	* tree-cfg.cc (stmt_can_terminate_bb_p): Likewise.
+ 
+ 2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/generic.texi (ASM_BASIC_P): Document.
+ 	* tree.h (ASM_INPUT_P): Rename to...
+ 	(ASM_BASIC_P): ...this.
+ 	(ASM_VOLATILE_P, ASM_INLINE_P): Reindent.
+ 	* gimplify.cc (gimplify_asm_expr): Update after above renaming.
+ 	* tree-core.h (tree_base): Likewise.
+ 
+ 2024-09-02  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* lto-wrapper.cc (run_gcc): Honor -save-temps for
+ 	makefile name.
+ 
+ 2024-09-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/116486
+ 	* gimple-range-op.cc (cfn_clz::fold_range): If lh is [0,0]
+ 	and mini is -1, return [-1,-1] range rather than [prec-1,prec-1].
+ 
+ 2024-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_tree::ldst_lanes): New flag to mark
+ 	load, store and permute nodes.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize ldst_lanes.
+ 	(vect_build_slp_instance): For stores iff the target prefers
+ 	store-lanes discover single-lane sub-groups, do not perform
+ 	interleaving lowering but mark the node with ldst_lanes.
+ 	Also allow i == 0 - fatal failure - for splitting up a store group
+ 	when we're not doing single-lane discovery already.
+ 	(vect_lower_load_permutations): When the target supports
+ 	load lanes and the loads all fit the pattern split out
+ 	a single level of permutes only and mark the load and
+ 	permute nodes with ldst_lanes.
+ 	(vectorizable_slp_permutation_1): Handle the load-lane permute
+ 	forwarding of vector defs.
+ 	(vect_analyze_slp): After SLP pattern recog is finished see if
+ 	there are any SLP instances that would benefit from using
+ 	load/store-lanes and re-discover those with forced single lanes.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Support
+ 	load/store-lanes for SLP.
+ 	(vectorizable_store): Support SLP code generation for store-lanes.
+ 	(vectorizable_load): Support SLP code generation for load-lanes.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Do not cancel SLP
+ 	when store-lanes can be used.
+ 
+ 2024-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Handle NULL stmt.
+ 	(vect_build_slp_tree_2): Likewise.  Release load permutation
+ 	when there's a NULL in SLP_TREE_SCALAR_STMTS and assert there's
+ 	no actual permutation in that case.
+ 	(vllp_cmp): New function.
+ 	(vect_lower_load_permutations): Likewise.
+ 	(vect_analyze_slp): Call it.
+ 
+ 2024-09-02  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Optimize the cost of the
+ 	DFmode register move for RV32.
+ 
+ 2024-09-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116544
+ 	* ext-dce.cc (ext_dce_process_uses): Fix thinko in promoted subreg
+ 	handling.
+ 
+ 2024-09-02  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_use_mask_cmp_p): Add BFmode
+ 	for int mask cmp.
+ 	* config/i386/sse.md (vec_cmp<mode><avx512fmaskmodelower>): New
+ 	vec_cmp expand for VBF modes.
+ 
+ 2024-09-02  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/sse.md: Expand VF2H to VF2HB with VBF modes.
+ 
+ 2024-09-02  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/sse.md
+ 	(<code><mode>3): New define expand pattern for BF smaxmin.
+ 
+ 2024-09-02  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/sse.md: Add V8BF/V16BF/V32BF to mode iterator FMAMODEM.
+ 
+ 2024-09-02  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/sse.md (div<mode>3): New expander for BFmode div.
+ 	(VF_BHSD): New mode iterator with vector BFmodes.
+ 	(<insn><mode>3<mask_name><round_name>): Change mode to VF_BHSD.
+ 	(mul<mode>3<mask_name><round_name>): Likewise.
+ 
+ 2024-09-02  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_compare): Add UNSPEC to
+ 	support the optimization.
+ 	* config/i386/i386.cc (ix86_fp_compare_code_to_integer): Add NE/EQ.
+ 	* config/i386/i386.md (*cmpx<unord><MODEF:mode>): New define_insn.
+ 	(*cmpx<unord>hf): Ditto.
+ 	* config/i386/predicates.md (ix86_trivial_fp_comparison_operator):
+ 	Add ne/eq.
+ 
+ 2024-09-02  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* match.pd: Optimize (and ordered non-equal) to
+ 	(not (or unordered  equal))
+ 
+ 2024-09-02  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/sse.md (VI1_AVX512VNNIBW): New.
+ 	(VI2_AVX10_2): Ditto.
+ 	(sdot_prod<mode>): Add AVX10.2
+ 	to auto vectorize and combine 512 bit part.
+ 	(udot_prod<mode>): Ditto.
+ 	(sdot_prodv64qi): Removed.
+ 	(udot_prodv64qi): Ditto.
+ 	(usdot_prod<mode>): Add AVX10.2 to auto vectorize.
+ 	(udot_prod<mode>): Ditto.
+ 
+ 2024-09-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Merge
+ 	the zero_extend handing from func riscv_gen_unsigned_xmode_reg.
+ 	(riscv_gen_unsigned_xmode_reg): Remove.
+ 	(riscv_expand_ussub): Leverage riscv_gen_zero_extend_rtx
+ 	instead of riscv_gen_unsigned_xmode_reg.
+ 
+ 2024-09-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116554
+ 	* gimple-ssa-strength-reduction.cc: Include tree-ssa-dce.h.
+ 	(replace_mult_candidate): Add sdce_worklist argument, mark
+ 	the rhs1/rhs2 for maybe dceing.
+ 	(replace_unconditional_candidate): Add sdce_worklist argument,
+ 	Update call to replace_mult_candidate.
+ 	(replace_conditional_candidate): Add sdce_worklist argument,
+ 	update call to replace_mult_candidate.
+ 	(replace_uncond_cands_and_profitable_phis): Add sdce_worklist argument,
+ 	update call to replace_conditional_candidate,
+ 	replace_unconditional_candidate, and replace_uncond_cands_and_profitable_phis.
+ 	(replace_one_candidate): Add sdce_worklist argument, mark
+ 	the orig_rhs1/orig_rhs2 for maybe dceing.
+ 	(replace_profitable_candidates): Add sdce_worklist argument,
+ 	update call to replace_one_candidate and replace_profitable_candidates.
+ 	(analyze_candidates_and_replace): Call simple_dce_from_worklist and
+ 	update calls to replace_profitable_candidates, and
+ 	replace_uncond_cands_and_profitable_phis.
+ 
+ 2024-08-31  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (timode_scalar_to_vector_candidate_p):
+ 	Support the first operand of AND, IOR and XOR being MEM_P, i.e. a
+ 	read-modify-write insn.
+ 
+ 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-passes.cc (avr_pass_fuse_add) <clone>: Override.
+ 	* config/avr/avr-passes.def (avr_pass_fuse_add): Run again
+ 	after pass_cprop_hardreg.
+ 
+ 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (avr_split_tiny_move): Rename to
+ 	avr_split_fake_addressing_move.
+ 	* config/avr/avr-passes.def: Same.
+ 	* config/avr/avr-passes.cc: Same.
+ 	(avr_pass_data_fuse_add) <tv_id>: Set to TV_MACH_DEP.
+ 	* config/avr/avr.md (split-lpmx): Remove a define_split.  Such
+ 	splits are performed by avr_split_fake_addressing_move.
+ 
+ 2024-08-31  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_emit_move_sequence): Remove symbolic
+ 	memory work arounds for TARGET_ELF32.
+ 	(pa_legitimate_address_p): Likewise.  Allow symbolic
+ 	operands.  Adjust comment.
+ 	* config/pa/pa.md: Replace reg_or_0_or_nonsymb_mem_operand
+ 	with reg_or_0_or_mem_operand predicate in various unnamed
+ 	move insns.
+ 	* config/pa/predicates.md (floating_point_store_memory_operand):
+ 	Update comment.  Remove symbolic memory work arounds for
+ 	TARGET_ELF32.
+ 	(nonsymb_mem_operand): Rename to mem_operand.  Allow
+ 	symbolic memory operands.
+ 	(reg_or_0_or_nonsymb_mem_operand): Rename to
+ 	reg_or_0_or_mem_operand.  Allow symbolic memory operands.
+ 
+ 2024-08-31  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116098
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Ignore
+ 	nops, labels and predicts for heuristic for conversion with a constant.
+ 
+ 2024-08-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/116130
+ 	* doc/extend.texi (unsequenced, reproducible): Document new function
+ 	type attributes.
+ 	* calls.cc (flags_from_decl_or_type): Handle "unsequenced noptr" and
+ 	"reproducible noptr" attributes.
+ 
+ 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Follow the convention to not add a space
+ 	after comma when printing instructions.
+ 
+ 2024-08-31  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* expr.cc (categorize_ctor_elements_1): Change p_complete to
+ 	int, to distinguish complete initialization in presence or
+ 	absence of uninitialized padding bits.
+ 	(categorize_ctor_elements): Likewise.  Adjust all callers...
+ 	* expr.h (categorize_ctor_elements): ... and declaration.
+ 	(type_has_padding_at_level_p): New.
+ 	* gimple-fold.cc (type_has_padding_at_level_p): New.
+ 	* fold-const.cc (native_encode_constructor): New.
+ 	(native_encode_expr): Call it.
+ 	* gimplify.cc (gimplify_init_constructor): Clear small
+ 	non-addressable non-volatile objects with padding or
+ 	other uninitialized fields as an optimization.
+ 
+ 2024-08-30  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* gdbhooks.py (VEC_KIND_EMBED): New.
+ 	(VEC_KIND_PTR): New.
+ 	(get_vec_kind): New.
+ 	(VecPrinter.children): Also handle vectors with vl_ptr layout.
+ 
+ 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR driver/104707
+ 	PR driver/97304
+ 	* gcc.cc (is_directory): Don't not include /usr/lib and /lib
+ 	for library directory pathes. Remove library argument.
+ 	(add_to_obstack): Update call to is_directory.
+ 	(driver_handle_option): Likewise.
+ 	(spec_path): Likewise.
+ 
+ 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116537
+ 	* tree-core.h (enum tree_index): Remove TI_INTEGER_THREE
+ 	* tree-ssa-loop-prefetch.cc (issue_prefetch_ref): Call build_int_cst
+ 	instead of using integer_three_node.
+ 	* tree.cc (build_common_tree_nodes): Remove initialization
+ 	of integer_three_node.
+ 	* tree.h (integer_three_node): Delete.
+ 
+ 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* builtins.cc (expand_builtin_prefetch): Rewrite expansion of the optional
+ 	arguments to not expand known constants.
+ 
+ 2024-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Check
+ 	known_ne (remain, 0u) before doing constant_multiple_p.
+ 	(vectorizable_load): Likewise.
+ 
+ 2024-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Disable SLP
+ 	reassociation for single-lane.
+ 
+ 2024-08-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116512
+ 	* config/i386/i386.cc (ix86_check_avx_upper_register): Iterate
+ 	subrtx to scan for avx upper register.
+ 	(ix86_check_avx_upper_stores): Inline old
+ 	ix86_check_avx_upper_register.
+ 	(ix86_avx_u128_mode_needed): Ditto, and replace
+ 	FOR_EACH_SUBRTX with call to new
+ 	ix86_check_avx_upper_register.
+ 
+ 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116419
+ 	* diagnostic-event-id.h (diagnostic_event_id_t::zero_based): New.
+ 	* diagnostic-format-sarif.cc: Include "pretty-print-format-impl.h"
+ 	and "pretty-print-urlifier.h".
+ 	(sarif_result::sarif_result): Add param "idx_within_parent".
+ 	(sarif_result::get_index_within_parent): New accessor.
+ 	(sarif_result::m_idx_within_parent): New field.
+ 	(sarif_code_flow::sarif_code_flow): New ctor.
+ 	(sarif_code_flow::get_parent): New accessor.
+ 	(sarif_code_flow::get_index_within_parent): New accessor.
+ 	(sarif_code_flow::m_parent): New field.
+ 	(sarif_code_flow::m_thread_id_map): New field.
+ 	(sarif_code_flow::m_thread_flows_arr): New field.
+ 	(sarif_code_flow::m_all_tfl_objs): New field.
+ 	(sarif_thread_flow::sarif_thread_flow): Add "parent" and
+ 	"idx_within_parent" params.
+ 	(sarif_thread_flow::get_parent): New accessor.
+ 	(sarif_thread_flow::get_index_within_parent): New accessor.
+ 	(sarif_thread_flow::m_parent): New field.
+ 	(sarif_thread_flow::m_idx_within_parent): New field.
+ 	(sarif_thread_flow_location::sarif_thread_flow_location): New
+ 	ctor.
+ 	(sarif_thread_flow_location::get_parent): New accessor.
+ 	(sarif_thread_flow_location::get_index_within_parent): New
+ 	accessor.
+ 	(sarif_thread_flow_location::m_parent): New field.
+ 	(sarif_thread_flow_location::m_idx_within_parent): New field.
+ 	(sarif_builder::get_code_flow_for_event_ids): New accessor.
+ 	(class sarif_builder::sarif_token_printer): New.
+ 	(sarif_builder::m_token_printer): New member.
+ 	(sarif_builder::m_next_result_idx): New field.
+ 	(sarif_builder::m_current_code_flow): New field.
+ 	(sarif_code_flow::get_or_append_thread_flow): New.
+ 	(sarif_code_flow::get_thread_flow): New.
+ 	(sarif_code_flow::add_location): New.
+ 	(sarif_code_flow::get_thread_flow_loc_obj): New.
+ 	(sarif_thread_flow::add_location): Create the new
+ 	sarif_thread_flow_location internally, rather than passing
+ 	it in as a parm so that we can keep track of its index in
+ 	the array.  Return a reference to it.
+ 	(sarif_builder::sarif_builder): Initialize m_token_printer,
+ 	m_next_result_idx, and m_current_code_flow.
+ 	(sarif_builder::on_report_diagnostic): Pass index to
+ 	make_result_object.
+ 	(sarif_builder::make_result_object): Add "idx_within_parent" param
+ 	and pass to sarif_result ctor.  Pass code flow index to call to
+ 	make_code_flow_object.
+ 	(make_sarif_url_for_event): New.
+ 	(sarif_builder::make_code_flow_object): Add "idx_within_parent"
+ 	param and pass it to sarif_code_flow ctor.  Reimplement walking
+ 	of events so that we first create threadFlow objects for each
+ 	thread, then populate them with threadFlowLocation objects, so
+ 	that the IDs work.  Set m_current_code_flow whilst creating the
+ 	latter, so that we can create correct URIs for "%@".
+ 	(sarif_builder::make_thread_flow_location_object): Replace with...
+ 	(sarif_builder::populate_thread_flow_location_object): ...this.
+ 	(sarif_output_format::get_builder): New accessor.
+ 	(sarif_begin_embedded_link): New.
+ 	(sarif_end_embedded_link): New.
+ 	(sarif_builder::sarif_token_printer::print_tokens): New.
+ 	(diagnostic_output_format_init_sarif): Add "fmt" param; use it to
+ 	set the token printer and output format for the context.
+ 	(diagnostic_output_format_init_sarif_stderr): Move responsibility
+ 	for setting the context's output format to within
+ 	diagnostic_output_format_init_sarif.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(test_sarif_diagnostic_context::test_sarif_diagnostic_context):
+ 	Likewise.
+ 	(selftest::test_make_location_object): Provide an idx for the
+ 	result.
+ 	(selftest::get_result_from_log): New.
+ 	(selftest::get_message_from_log): New.
+ 	(selftest::test_message_with_embedded_link): New test.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Call it.
+ 	* pretty-print-format-impl.h: Include "diagnostic-event-id.h".
+ 	(pp_token::kind): Add "event_id".
+ 	(struct pp_token_event_id): New.
+ 	(is_a_helper <pp_token_event_id *>::test): New.
+ 	(is_a_helper <const pp_token_event_id *>::test): New.
+ 	* pretty-print.cc (pp_token::dump): Handle kind::event_id.
+ 	(pretty_printer::format): Update handling of "%@" in phase 2
+ 	so that we add a pp_token_event_id, rather that the text "(N)".
+ 	(default_token_printer): Handle pp_token::kind::event_id by
+ 	printing the text "(N)".
+ 
+ 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::report_diagnostic): Don't
+ 	pass m_urlifier to pp_format, as urlification now happens in
+ 	phase 3.
+ 	* dump-context.h (class dump_pretty_printer): Update leading
+ 	comment.
+ 	(dump_pretty_printer::emit_items): Drop decl.
+ 	(dump_pretty_printer::set_optinfo): New.
+ 	(class dump_pretty_printer::stashed_item): Delete class.
+ 	(class dump_pretty_printer::custom_token_printer): New class.
+ 	(dump_pretty_printer::format_decoder_cb): Convert param from
+ 	const char ** to pp_token_list &.
+ 	(dump_pretty_printer::decode_format): Likewise.
+ 	(dump_pretty_printer::stash_item): Likewise.
+ 	(dump_pretty_printer::emit_any_pending_textual_chunks): Drop decl.
+ 	(dump_pretty_printer::m_stashed_items): Delete field.
+ 	(dump_pretty_printer::m_token_printer): New member data.
+ 	* dumpfile.cc (struct wrapped_optinfo_item): New.
+ 	(dump_pretty_printer::dump_pretty_printer): Update for dropping
+ 	of field m_stashed_items and new field m_token_printer.
+ 	(dump_pretty_printer::emit_items): Delete; we now use
+ 	pp_output_formatted_text..
+ 	(dump_pretty_printer::emit_any_pending_textual_chunks): Delete.
+ 	(dump_pretty_printer::stash_item): Convert param from
+ 	const char ** to pp_token_list &.
+ 	(dump_pretty_printer::format_decoder_cb): Likewise.
+ 	(dump_pretty_printer::decode_format): Likewise.
+ 	(dump_pretty_printer::custom_token_printer::print_tokens): New.
+ 	(dump_pretty_printer::custom_token_printer::emit_any_pending_textual_chunks):
+ 	New.
+ 	(dump_context::dump_printf_va): Call set_optinfo on the
+ 	dump_pretty_printer.  Replace call to emit_items with a call to
+ 	pp_output_formatted_text.
+ 	* opt-problem.cc (opt_problem::opt_problem): Replace call to
+ 	emit_items with call to set_optinfo and call to
+ 	pp_output_formatted_text.
+ 	* pretty-print-format-impl.h (struct pp_token): New.
+ 	(struct pp_token_text): New.
+ 	(is_a_helper <pp_token_text *>::test): New.
+ 	(is_a_helper <const pp_token_text *>::test): New.
+ 	(struct pp_token_begin_color): New.
+ 	(is_a_helper <pp_token_begin_color *>::test): New.
+ 	(is_a_helper <const pp_token_begin_color *>::test): New.
+ 	(struct pp_token_end_color): New.
+ 	(struct pp_token_begin_quote): New.
+ 	(struct pp_token_end_quote): New.
+ 	(struct pp_token_begin_url): New.
+ 	(is_a_helper <pp_token_begin_url*>::test): New.
+ 	(is_a_helper <const pp_token_begin_url*>::test): New.
+ 	(struct pp_token_end_url): New.
+ 	(struct pp_token_custom_data): New.
+ 	(is_a_helper <pp_token_custom_data *>::test): New.
+ 	(is_a_helper <const pp_token_custom_data *>::test): New.
+ 	(class pp_token_list): New.
+ 	(chunk_info::get_args): Drop.
+ 	(chunk_info::get_quoting_info): Drop.
+ 	(chunk_info::get_token_lists): New accessor.
+ 	(chunk_info::append_formatted_chunk): Add obstack & param.
+ 	(chunk_info::dump): New decls.
+ 	(chunk_info::m_args): Convert element type from const char * to
+ 	pp_token_list *.  Rewrite/update comment.
+ 	(chunk_info::m_quotes): Drop field.
+ 	* pretty-print-markup.h (class pp_token_list): New forward decl.
+ 	(pp_markup::context::context): Drop urlifier param; add
+ 	formatted_token_list param.
+ 	(pp_markup::context::push_back_any_text): New decl.
+ 	(pp_markup::context::m_urlifier): Drop field.
+ 	(pp_markup::context::m_formatted_token_list): New field.
+ 	* pretty-print-urlifier.h: Update comment.
+ 	* pretty-print.cc: Define INCLUDE_MEMORY.  Include
+ 	"make-unique.h".
+ 	(default_token_printer): New forward decl.
+ 	(obstack_append_string): Delete.
+ 	(urlify_quoted_string): Delete.
+ 	(pp_token::pp_token): New.
+ 	(pp_token::dump): New.
+ 	(allocate_object): New.
+ 	(class quoting_info): Delete.
+ 	(pp_token::operator new): New.
+ 	(pp_token::operator delete): New.
+ 	(pp_token_list::operator new): New.
+ 	(pp_token_list::operator delete): New.
+ 	(pp_token_list::pp_token_list): New.
+ 	(pp_token_list::~pp_token_list): New.
+ 	(pp_token_list::push_back_text): New.
+ 	(pp_token_list::push_back): New.
+ 	(pp_token_list::push_back_list): New.
+ 	(pp_token_list::pop_front): New.
+ 	(pp_token_list::remove_token): New.
+ 	(pp_token_list::insert_after): New.
+ 	(pp_token_list::replace_custom_tokens): New.
+ 	(pp_token_list::merge_consecutive_text_tokens): New.
+ 	(pp_token_list::apply_urlifier): New.
+ 	(pp_token_list::dump): New.
+ 	(chunk_info::append_formatted_chunk): Add obstack & param and use
+ 	it to reimplement in terms of token lists.
+ 	(chunk_info::pop_from_output_buffer): Drop m_quotes.
+ 	(chunk_info::on_begin_quote): Delete.
+ 	(chunk_info::dump): New.
+ 	(chunk_info::on_end_quote): Delete.
+ 	(push_back_any_text): New.
+ 	(pretty_printer::format): Drop "urlifier" param and quoting_info
+ 	logic.  Convert "formatters" and "args" from const ** to
+ 	pp_token_list **.  Reimplement so that rather than just
+ 	accumulating a text buffer in the chunk_obstack for each arg,
+ 	instead also accumulate a pp_token_list and pp_tokens for each
+ 	arg.
+ 	(auto_obstack::operator obstack &): New.
+ 	(quoting_info::handle_phase_3): Delete.
+ 	(pp_output_formatted_text): Reimplement in terms of manipulations
+ 	of pp_token_lists, rather than char buffers.  Call
+ 	default_token_printer, or m_token_printer's print_tokens vfunc.
+ 	(default_token_printer): New.
+ 	(pretty_printer::pretty_printer): Initialize m_token_printer in
+ 	both ctors.
+ 	(pp_markup::context::begin_quote): Reimplement to use token list.
+ 	(pp_markup::context::end_quote): Likewise.
+ 	(pp_markup::context::begin_highlight_color): Likewise.
+ 	(pp_markup::context::end_highlight_color): Likewise.
+ 	(pp_markup::context::push_back_any_text): New.
+ 	(selftest::test_merge_consecutive_text_tokens): New.
+ 	(selftest::test_custom_tokens_1): New.
+ 	(selftest::test_custom_tokens_2): New.
+ 	(selftest::pp_printf_with_urlifier): Drop "urlifier" param from
+ 	call to pp_format.
+ 	(selftest::test_urlification): Add test of the example from
+ 	pretty-print-format-impl.h.
+ 	(selftest::pretty_print_cc_tests): Call the new selftest
+ 	functions.
+ 	* pretty-print.h (class quoting_info): Drop forward decl.
+ 	(class pp_token_list): New forward decl.
+ 	(printer_fn): Convert final param from const char ** to
+ 	pp_token_list &.
+ 	(class token_printer): New.
+ 	(class pretty_printer): Add pp_output_formatted_text as friend.
+ 	(pretty_printer::set_token_printer): New.
+ 	(pretty_printer::format): Drop urlifier param as this now happens
+ 	in phase 3.
+ 	(pretty_printer::m_format_decoder): Update comment.
+ 	(pretty_printer::m_token_printer): New field.
+ 	(pp_format): Drop urlifier param.
+ 	* tree-diagnostic.cc (default_tree_printer): Convert final param
+ 	from const char ** to pp_token_list &.
+ 	* tree-diagnostic.h: Likewise for decl.
+ 
+ 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* dumpfile.cc: Include "pretty-print-format-impl.h".
+ 	* pretty-print-format-impl.h: New file, based on material from
+ 	pretty-print.h.
+ 	* pretty-print.cc: Include "pretty-print-format-impl.h".
+ 	* pretty-print.h (chunk_info): Replace full declaration with
+ 	a forward decl, moving full decl to pretty-print-format-impl.h.
+ 
+ 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* config/aarch64/aarch64.cc: Define INCLUDE_MEMORY.
+ 	* config/arm/arm.cc: Likewise.
+ 	* config/i386/i386.cc: Likewise.
+ 	* config/loongarch/loongarch.cc: Likewise.
+ 	* config/riscv/riscv-vector-costs.cc: Likewise.
+ 	* config/riscv/riscv.cc: Likewise.
+ 	* config/rs6000/rs6000.cc: Likewise.
+ 	* dump-context.h (dump_context::emit_item): Convert "item" param
+ 	from * to const &.
+ 	(dump_pretty_printer::stash_item): Convert "item" param from
+ 	optinfo_ * to std::unique_ptr<optinfo_item>.
+ 	(dump_pretty_printer::emit_item): Likewise.
+ 	* dumpfile.cc: Include "make-unique.h".
+ 	(make_item_for_dump_gimple_stmt): Replace uses of optinfo_item *
+ 	with std::unique_ptr<optinfo_item>.
+ 	(dump_context::dump_gimple_stmt): Likewise.
+ 	(make_item_for_dump_gimple_expr): Likewise.
+ 	(dump_context::dump_gimple_expr): Likewise.
+ 	(make_item_for_dump_generic_expr): Likewise.
+ 	(dump_context::dump_generic_expr): Likewise.
+ 	(make_item_for_dump_symtab_node): Likewise.
+ 	(dump_pretty_printer::emit_items): Likewise.
+ 	(dump_pretty_printer::emit_any_pending_textual_chunks): Likewise.
+ 	(dump_pretty_printer::emit_item): Likewise.
+ 	(dump_pretty_printer::stash_item): Likewise.
+ 	(dump_pretty_printer::decode_format): Likewise.
+ 	(dump_context::dump_printf_va): Fix overlong line.
+ 	(make_item_for_dump_dec): Replace uses of optinfo_item * with
+ 	std::unique_ptr<optinfo_item>.
+ 	(dump_context::dump_dec): Likewise.
+ 	(dump_context::dump_symtab_node): Likewise.
+ 	(dump_context::begin_scope): Likewise.
+ 	(dump_context::emit_item): Likewise.
+ 	* gimple-loop-interchange.cc: Define INCLUDE_MEMORY.
+ 	* gimple-loop-jam.cc: Likewise.
+ 	* gimple-loop-versioning.cc: Likewise.
+ 	* graphite-dependences.cc: Likewise.
+ 	* graphite-isl-ast-to-gimple.cc: Likewise.
+ 	* graphite-optimize-isl.cc: Likewise.
+ 	* graphite-poly.cc: Likewise.
+ 	* graphite-scop-detection.cc: Likewise.
+ 	* graphite-sese-to-poly.cc: Likewise.
+ 	* graphite.cc: Likewise.
+ 	* opt-problem.cc: Likewise.
+ 	* optinfo.cc (optinfo::add_item): Convert "item" param from
+ 	optinfo_ * to std::unique_ptr<optinfo_item>.
+ 	(optinfo::emit_for_opt_problem): Update for change to
+ 	dump_context::emit_item.
+ 	* optinfo.h: Add #error to fail immediately if INCLUDE_MEMORY
+ 	wasn't defined, rather than fail to find std::unique_ptr.
+ 	(optinfo::add_item): Convert "item" param from optinfo_ * to
+ 	std::unique_ptr<optinfo_item>.
+ 	* sese.cc: Define INCLUDE_MEMORY.
+ 	* targhooks.cc: Likewise.
+ 	* tree-data-ref.cc: Likewise.
+ 	* tree-if-conv.cc: Likewise.
+ 	* tree-loop-distribution.cc: Likewise.
+ 	* tree-parloops.cc: Likewise.
+ 	* tree-predcom.cc: Likewise.
+ 	* tree-ssa-live.cc: Likewise.
+ 	* tree-ssa-loop-ivcanon.cc: Likewise.
+ 	* tree-ssa-loop-ivopts.cc: Likewise.
+ 	* tree-ssa-loop-prefetch.cc: Likewise.
+ 	* tree-ssa-loop-unswitch.cc: Likewise.
+ 	* tree-ssa-phiopt.cc: Likewise.
+ 	* tree-ssa-threadbackward.cc: Likewise.
+ 	* tree-ssa-threadupdate.cc: Likewise.
+ 	* tree-vect-data-refs.cc: Likewise.
+ 	* tree-vect-generic.cc: Likewise.
+ 	* tree-vect-loop-manip.cc: Likewise.
+ 	* tree-vect-loop.cc: Likewise.
+ 	* tree-vect-patterns.cc: Likewise.
+ 	* tree-vect-slp-patterns.cc: Likewise.
+ 	* tree-vect-slp.cc: Likewise.
+ 	* tree-vect-stmts.cc: Likewise.
+ 	* tree-vectorizer.cc: Likewise.
+ 
+ 2024-08-29  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (load_reg): Don't generate load with
+ 	unscaled index address when !TARGET_NO_SPACE_REGS.
+ 	(pa_legitimate_address_p): Only allow unscaled index
+ 	addresses when TARGET_NO_SPACE_REGS.
+ 
+ 2024-08-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116508
+ 	* internal-fn.cc (expand_POPCOUNT): Use OPTAB_WIDEN for PLUS and
+ 	XOR/AND expansion.
+ 
+ 2024-08-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/116516
+ 	* rtlanal.cc (strip_address_mutations): Allow subregs around
+ 	constant displacements.
+ 
+ 2024-08-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* dse.cc (find_shift_sequence): Allow smallest_int_mode_for_size
+ 	to failure.
+ 	* optabs.cc (expand_twoval_binop_libfunc): Likewise.
+ 
+ 2024-08-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/115830
+ 	* config/avr/avr-modes.def (CCN, CCZN): New CC_MODEs.
+ 	* config/avr/avr-protos.h (avr_cond_branch): New from
+ 	ret_cond_branch.
+ 	(avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code)
+ 	(avr_out_op8_set_ZN, avr_len_op8_set_ZN): New protos.
+ 	(ccn_reg_rtx, cczn_reg_rtx): New declarations.
+ 	* config/avr/avr.cc (avr_cond_branch): New from ret_cond_branch.
+ 	(avr_cond_string): Add bool cc_overflow_unusable argument.
+ 	(avr_print_operand) ['L']: Like 'j' but overflow unusable.
+ 	['K']: Like 'k' but overflow unusable.
+ 	(avr_out_plus_set_ZN): Remove handling of QImode.
+ 	(avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code)
+ 	(avr_out_op8_set_ZN, avr_len_op8_set_ZN): New functions.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_N]: Hande case.
+ 	(avr_class_max_nregs): All MODE_CCs occupy one hard reg.
+ 	(avr_hard_regno_nregs): Same.
+ 	(avr_hard_regno_mode_ok) [REG_CC]: Allow all MODE_CC.
+ 	(pass_manager.h, context.h, tree-pass.h): Include them.
+ 	(ccn_reg_rtx, cczn_reg_rtx): New GTY variables.
+ 	(avr_init_expanders): Initialize them.
+ 	(avr_option_override): Run peephole2 a second time.
+ 	* config/avr/avr.md (adjust_len) [add_set_N]: New attr value.
+ 	(ALLCC, HI_SI): New mode iterators.
+ 	(CCname): New mode attribute.
+ 	(eqnegtle, cmp_signed, op8_ZN): New code iterators.
+ 	(swap, SWAP): New code attributes.
+ 	(branch): Handle CCNmode and CCZNmode.  Assimilate...
+ 	(difficult_branch): ...this insn.
+ 	(p1m1): Remove.
+ 	(gen_add_for_<code>_<mode>): Adjust to CCNmode and CCZNmode. Use
+ 	HISI as mode iterator.  Extend peephole2s that produce them.
+ 	(*add.for.eqne.<mode>): Extend to *add.for.cc[z]n.<mode>.
+ 	(*ashift.for.ccn.<mode>): New insn and peephole2 to make them.
+ 	(*sub.for.cczn.<mode>, *sub-extend<mode>.for.cczn.<mode>):
+ 	New insns and peephole2s to make them.
+ 	(*op8.for.cczn.<code>): New insn and peephole2 to make them.
+ 	* config/avr/predicates.md (const_1_to_3_operand)
+ 	(abs1_abs2_operand, signed_comparison_operator)
+ 	(op8_ZN_operator): New predicates.
+ 
+ 2024-08-29  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR c++/105104
+ 	* coroutine-passes.cc (execute_early_expand_coro_ifns): Don't
+ 	remove any labels.
+ 
+ 2024-08-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config.gcc (extra_objs) [target=avr]: Add avr-passes.o.
+ 	* config/avr/t-avr (avr-passes.o): New rule to make it.
+ 	* config/avr/avr.cc (#define INCLUDE_VECTOR): Remove.
+ 	(cfganal.h, cfgrtl.h, context.h, tree-pass.h, print-rtl.h): Don't
+ 	include them.
+ 	(avr_strict_signed_p, avr_strict_unsigned_p, avr_2comparisons_rhs)
+ 	(make_avr_pass_recompute_notes, make_avr_pass_casesi)
+ 	(make_avr_pass_ifelse, make_avr_pass_pre_proep, avr_split_tiny_move)
+ 	(emit_move_ccc, emit_move_ccc_after, reg_seen_between_p)
+ 	(avr_maybe_adjust_cfa, avr_redundant_compare_regs)
+ 	(avr_parallel_insn_from_insns, avr_is_casesi_sequence)
+ 	(avr_optimize_casesi, avr_redundant_compare, make_avr_pass_fuse_add)
+ 	(avr_optimize_2ifelse, avr_rest_of_handle_ifelse)
+ 	(avr_casei_sequence_check_operands)
+ 	Move functions...
+ 	(avr_pass_data_fuse_add, avr_pass_data_ifelse)
+ 	(avr_pass_data_casesi, avr_pass_data_recompute_notes)
+ 	(avr_pass_data_pre_proep): Move objects...
+ 	(avr_pass_fuse_add, avr_pass_pre_proep, avr_pass_recompute_notes)
+ 	(avr_pass_ifelse, avr_pass_casesi, AVR_LdSt_Props): Move classes...
+ 	* config/avr/avr-passes.cc: ... to this new C++ module.
+ 	(struct Ranges): Move to...
+ 	* config/avr/ranges.h: ...this new file.
+ 	* config/avr/avr-protos.h: Adjust comments.
+ 
+ 2024-08-29  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/116086
+ 	* config/riscv/autovec.md (vec_extract<mode><v_half>): Add
+ 	vector-vector extract for VLS modes.
+ 	* config/riscv/riscv.cc (riscv_can_change_mode_class): Forbid
+ 	VLS modes larger than one vector.
+ 	* config/riscv/vector-iterators.md: Add vector-vector extract
+ 	iterators.
+ 
+ 2024-08-29  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (timode_immed_const_gain): New
+ 	function to determine the gain/cost on a CONST_WIDE_INT.
+ 	(timode_scalar_chain::compute_convert_gain): Fix whitespace.
+ 	<case CONST_WIDE_INT>: Provide more accurate estimates using
+ 	timode_immed_const_gain.
+ 	<case AND>: Handle CONSTANT_SCALAR_INT_P (src).
+ 
+ 2024-08-29  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNC_ID.
+ 	(write_lf_mfunc_id): New function.
+ 	(add_lf_func_id): New function.
+ 	(add_lf_mfunc_id): New function.
+ 	(add_function): Call add_lf_func_id or add_lf_mfunc_id.
+ 
+ 2024-08-29  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNCTION,
+ 	LF_METHODLIST, LF_METHOD, and LF_ONEMETHOD.
+ 	(struct codeview_subtype): Add lf_onemethod and lf_method to union.
+ 	(struct lf_methodlist_entry): New type.
+ 	(struct codeview_custom_type): Add lf_mfunc_id, lf_mfunction, and
+ 	lf_methodlist to union.
+ 	(struct codeview_method): New type.
+ 	(struct method_hasher): New type.
+ 	(get_type_num_subroutine_type): Add forward declaration.
+ 	(write_lf_fieldlist): Handle LF_ONEMETHOD and LF_METHOD.
+ 	(write_lf_mfunction): New function.
+ 	(write_lf_methodlist): New function.
+ 	(write_custom_types): Handle LF_MFUNCTION and LF_METHODLIST.
+ 	(add_struct_function): New function.
+ 	(get_mfunction_type): New function.
+ 	(is_templated_func): New function.
+ 	(get_type_num_struct): Handle DW_TAG_subprogram child DIEs.
+ 	(get_type_num_subroutine_type): Add containing_class_type, this_type,
+ 	and this_adjustment params, and handle creating LF_MFUNCTION types as
+ 	well as LF_PROCEDURE.
+ 	(get_type_num): New params for get_type_num_subroutine_type.
+ 	(add_function): New params for get_type_num_subroutine_type.
+ 	* dwarf2codeview.h (CV_METHOD_VANILLA, CV_METHOD_VIRTUAL): Define.
+ 	(CV_METHOD_STATIC, CV_METHOD_FRIEND, CV_METHOD_INTRO): Likewise.
+ 	(CV_METHOD_PUREVIRT, CV_METHOD_PUREINTRO): Likewise.
+ 
+ 2024-08-29  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add LF_STMEMBER.
+ 	(struct codeview_subtype): Add lf_static_member to union.
+ 	(write_lf_fieldlist): Handle LF_STMEMBER.
+ 	(add_struct_member): New function.
+ 	(add_struct_static_member): New function.
+ 	(get_accessibility): New function.
+ 	(get_type_num_struct): Split out into add_struct_member and
+ 	get_accessibility, and handle static members.
+ 
+ 2024-08-29  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cf_leaf_type): Add LF_STRING_ID.
+ 	(struct codeview_custom_type): Add lf_string_id to union.
+ 	(struct string_id_hasher): New type.
+ 	(string_id_htab): New global variable.
+ 	(write_lf_string_id): New function.
+ 	(write_custom_types): Call write_lf_string_id.
+ 	(codeview_debug_finish): Free string_id_htab.
+ 	(add_string_id): New function.
+ 	(get_scope_string_id): New function.
+ 	(add_function): Call get_scope_string_id and set scope.
+ 
+ 2024-08-29  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_name): New function.
+ 	(add_enum_forward_def): Call get_name.
+ 	(get_type_num_enumeration_type): Call get_name.
+ 	(add_struct_forward_def): Call get_name.
+ 	(get_type_num_struct): Call get_name.
+ 	(add_variable): Call get_name.
+ 	(add function): Call get_name.
+ 	* dwarf2out.cc (get_die_parent): Rename to dw_get_die_parent and make
+ 	non-static.
+ 	(generate_type_signature): Handle renamed get_die_parent.
+ 	* dwarf2out.h (dw_get_die_parent): Add declaration.
+ 
+ 2024-08-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* internal-fn.cc (expand_POPCOUNT): Dump the costs for
+ 	the two choices.
+ 
+ 2024-08-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/contrib.texi (Contributors): Add Dhruv Matani.
+ 
+ 2024-08-28  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (INCLUDE_VECTOR): Define it.
+ 	(cfganal.h): Include it.
+ 	(Ranges): New struct.
+ 	(avr_2comparisons_rhs, avr_redundant_compare_regs)
+ 	(avr_strict_signed_p, avr_strict_unsigned_p): New static functions.
+ 	(avr_redundant_compare): Overhaul: Allow more cases.
+ 	(avr_optimize_2ifelse): New static function, outsourced from...
+ 	(avr_rest_of_handle_ifelse): ...this method.
+ 
+ 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/tuning_models/generic.h (generic_sve_vector_cost):
+ 	Set gather_load_x32_init_cost and gather_load_x64_init_cost to 0.
+ 
+ 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype)
+ 	(aarch64_vector_costs::add_stmt_cost): Use the x64 cost rather
+ 	than x32 cost for all VNx2 modes.
+ 
+ 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree.h (ASM_INPUT_P): Fix documentation.
+ 
+ 2024-08-28  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR tree-optimization/116355
+ 	* tree-switch-conversion.cc (can_log2): Add capability to
+ 	suggest converting the operand to a different type.
+ 	(gen_log2): Add capability to generate a conversion in case the
+ 	operand is of a type incompatible with the logarithm operation.
+ 	(can_pow2p): New function.
+ 	(gen_pow2p): Rewrite to use __builtin_popcount instead of
+ 	manually inserting an internal fn call or bitmagic.  Also add
+ 	capability to generate a conversion.
+ 	(switch_conversion::is_exp_index_transform_viable): Call
+ 	can_pow2p.  Store types suggested by can_log2 and gen_log2.
+ 	(switch_conversion::exp_index_transform): Params of gen_pow2p
+ 	and gen_log2 changed so update their calls.
+ 	* tree-switch-conversion.h: Add m_exp_index_transform_log2_type
+ 	and m_exp_index_transform_pow2p_type to switch_conversion class
+ 	to track type conversions needed to generate the "is power of 2"
+ 	and logarithm operations.
+ 
+ 2024-08-28  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR libstdc++/116140
+ 	* doc/sourcebuild.texi: Document ltrans-rtl value of kind for
+ 	scan-<kind>-dump*.
+ 
+ 2024-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (debug): Add overload for slp_instance.
+ 
+ 2024-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_store_interleaving):
+ 	Fix reference counting.
+ 	(vect_build_slp_instance): Release rhs_nodes.
+ 
+ 2024-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_store_interleaving): Split
+ 	out from ...
+ 	(vect_build_slp_instance): Here.
+ 
+ 2024-08-28  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_sat_add_pattern): Add fold
+ 	convert for const_int to the type of operand 0.
+ 
+ 2024-08-28  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/vector.md (mode_idx): Add vrol and vror.
+ 
+ 2024-08-28  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add the matching for signed .SAT_ADD.
+ 	* tree-ssa-math-opts.cc (gimple_signed_integer_sat_add): Add new
+ 	matching func decl.
+ 	(match_unsigned_saturation_add): Try signed .SAT_ADD and rename
+ 	to ...
+ 	(match_saturation_add): ... here.
+ 	(math_opts_dom_walker::after_dom_children): Update the above renamed
+ 	func from caller.
+ 
+ 2024-08-27  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/116413
+ 	* config/m68k/m68k.cc (m68k_decompose_index): Accept ASHIFT like
+ 	MULT.
+ 	(m68k_rtx_costs) [PLUS]: Likewise.
+ 	(m68k_legitimize_address): Likewise.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vector_init_insert_elems): Relocate.
+ 	(expand_vector_init_trailing_same_elem): Ditto.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Allow non-duplicate
+ 	to fall through other patterns before asserting.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.h (valid_vec_immediate_p): Add new helper.
+ 	* config/riscv/riscv-v.cc (valid_vec_immediate_p): Ditto.
+ 	(expand_const_vector): Use new helper.
+ 	* config/riscv/riscv.cc (riscv_const_insns): Handle 0.0 floating-point
+ 	case.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (class rvv_builder): Move to riscv-v.h.
+ 	* config/riscv/riscv.cc (riscv_const_insns): Emit placeholder costs for
+ 	bool/stepped const vectors.
+ 	* config/riscv/riscv-v.h: New file.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Use tmp register if
+ 	needed.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_const_insns): Relocate.
+ 
+ 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Fix STEP size in
+ 	expander.
+ 
+ 2024-08-27  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/vfp.md (movdi_vfp, thumb2_movdf_vfp): Handle MVE
+ 	case.
+ 
+ 2024-08-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* doc/sourcebuild.texi (check-function-bodies): Add an optional
+ 	argument for matched output lines.
+ 
+ 2024-08-27  Michael Matz  <matz@suse.de>
+ 
+ 	PR target/116429
+ 	* lra.cc (setup_sp_offset): Start with sp_offset from
+ 	before the new sequence, not from after.
+ 
+ 2024-08-27  Michael Matz  <matz@suse.de>
+ 
+ 	PR target/116374
+ 	* lra-eliminations.cc (init_elim_table): Use -1 as initializer.
+ 	(update_reg_eliminate): Accept -1 as not-yet-used marker.
+ 	(eliminate_regs_in_insn): Use previous_sp_offset only when
+ 	not first_p.
+ 
+ 2024-08-27  Michael Matz  <matz@suse.de>
+ 
+ 	PR target/116413
+ 	* final.cc (walk_alter_subreg): Recurse on AHIFT.
+ 
+ 2024-08-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/116413
+ 	* rtl.h (address_info): Update commentary.
+ 	* rtlanal.cc (valid_base_or_index_term_p): New function, split
+ 	out from...
+ 	(get_base_term, get_index_term): ...here.  Handle elimination PLUSes.
+ 
+ 2024-08-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/116321
+ 	* lra-constraints.cc (get_hard_regno): Only apply eliminations
+ 	to existing hard registers.
+ 	(get_reg_class): Likewise.
+ 
+ 2024-08-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116460
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): First do
+ 	simple_dce_from_worklist and then remove stmts in to_remove.
+ 	Track defs to be removed in to_remove_defs.
+ 
+ 2024-08-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_ussub): Gen xmode for the
+ 	second operand, aka y in parameter.
+ 	* config/riscv/riscv.md (ussub<mode>3): Allow const_int for operand 2.
+ 
+ 2024-08-26  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR middle-end/115883
+ 	* combine.cc (make_more_copies): Copy attributes from the original
+ 	pseudo to the new copy.
+ 
+ 2024-08-26  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* coroutine-passes.cc (execute_early_expand_coro_ifns): Emit a
+ 	sorry if a statement is an alloca call.
+ 
+ 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-format-text.o.
+ 	* diagnostic-format-json.cc: Include "diagnostic-format.h".
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-format-text.cc: New file, using material from
+ 	diagnostics.cc.
+ 	* diagnostic-global-context.cc: Include
+ 	"diagnostic-format.h".
+ 	* diagnostic-format-text.h: New file, using material from
+ 	diagnostics.h.
+ 	* diagnostic-format.h: New file, using material from
+ 	diagnostics.h.
+ 	* diagnostic.cc: Include "diagnostic-format.h" and
+ 	"diagnostic-format-text.h".
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	Move to diagnostic-format-text.cc.
+ 	(diagnostic_text_output_format::on_report_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::on_diagram): Likewise.
+ 	(diagnostic_text_output_format::print_any_cwe): Likewise.
+ 	(diagnostic_text_output_format::print_any_rules): Likewise.
+ 	(diagnostic_text_output_format::print_option_information):
+ 	Likewise.
+ 	* diagnostic.h (class diagnostic_output_format): Move to
+ 	diagnostic-format.h.
+ 	(class diagnostic_text_output_format): Move to
+ 	diagnostic-format-text.h.
+ 	(diagnostic_output_format_init): Move to
+ 	diagnostic-format.h.
+ 	(diagnostic_output_format_init_json_stderr): Likewise.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* gcc.cc: Include "diagnostic-format.h".
+ 	* opts.cc: Include "diagnostic-format.h".
+ 
+ 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::on_begin_diagnostic): Delete.
+ 	(json_output_format::on_end_diagnostic): Rename to...
+ 	(json_output_format::on_report_diagnostic): ...this and add call
+ 	to pp_output_formatted_text.
+ 	(diagnostic_output_format_init_json): Drop unnecessary calls
+ 	to disable textual printing of CWEs, rules, and options.
+ 	* diagnostic-format-sarif.cc (sarif_builder::end_diagnostic):
+ 	Rename to...
+ 	(sarif_builder::on_report_diagnostic): ...this and add call to
+ 	pp_output_formatted_text.
+ 	(sarif_output_format::on_begin_diagnostic): Delete.
+ 	(sarif_output_format::on_end_diagnostic): Rename to...
+ 	(sarif_output_format::on_report_diagnostic): ...this and update
+ 	call to m_builder accordingly.
+ 	(diagnostic_output_format_init_sarif): Drop unnecessary calls
+ 	to disable textual printing of CWEs, rules, and options.
+ 	* diagnostic.cc (diagnostic_context::print_any_cwe): Convert to...
+ 	(diagnostic_text_output_format::print_any_cwe): ...this.
+ 	(diagnostic_context::print_any_rules): Convert to...
+ 	(diagnostic_text_output_format::print_any_rules): ...this.
+ 	(diagnostic_context::print_option_information): Convert to...
+ 	(diagnostic_text_output_format::print_option_information):
+ 	...this.
+ 	(diagnostic_context::report_diagnostic): Replace calls to the
+ 	output format's on_begin_diagnostic, to pp_output_formatted_text,
+ 	printing CWE, rules, option info, and the call to the format's
+ 	on_end_diagnostic with a call to the format's
+ 	on_report_diagnostic.
+ 	(diagnostic_text_output_format::on_begin_diagnostic): Delete.
+ 	(diagnostic_text_output_format::on_end_diagnostic): Delete.
+ 	(diagnostic_text_output_format::on_report_diagnostic): New vfunc,
+ 	which effectively does the on_begin_diagnostic, the call to
+ 	pp_output_formatted_text, the calls for printing CWE, rules,
+ 	option info, and the call to the diagnostic_finalizer.
+ 	* diagnostic.h (diagnostic_output_format::on_begin_diagnostic):
+ 	Delete.
+ 	(diagnostic_output_format::on_end_diagnostic): Delete.
+ 	(diagnostic_output_format::on_report_diagnostic): New.
+ 	(diagnostic_text_output_format::on_begin_diagnostic): Delete.
+ 	(diagnostic_text_output_format::on_end_diagnostic): Delete.
+ 	(diagnostic_text_output_format::on_report_diagnostic): New.
+ 	(class diagnostic_context): Add friend class
+ 	diagnostic_text_output_format.
+ 	(diagnostic_context::get_urlifier): New accessor.
+ 	(diagnostic_context::print_any_cwe): Move decl...
+ 	(diagnostic_text_output_format::print_any_cwe): ...to here.
+ 	(diagnostic_context::print_any_rules): Move decl...
+ 	(diagnostic_text_output_format::print_any_rules): ...to here.
+ 	(diagnostic_context::print_option_information): Move decl...
+ 	(diagnostic_text_output_format::print_option_information): ...to
+ 	here.
+ 
+ 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Add comments noting that we don't
+ 	yet capture any diagnostic_metadata::rules associated with a
+ 	diagnostic.
+ 
+ 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print.cc (selftest::test_urls): Make static.
+ 	(selftest::test_urls_from_braces): New.
+ 	(selftest::test_null_urls): Make static.
+ 	(selftest::test_urlification): Likewise.
+ 	(selftest::pretty_print_cc_tests): Call test_urls_from_braces.
+ 
+ 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.h: Fix typo in comment about missing INCLUDE_MEMORY.
+ 
+ 2024-08-26  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* tree-if-conv.cc: Remove unneeded include from last change.
+ 
+ 2024-08-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 
+ 	PR debug/116470
+ 	* configure.ac: Add the "nop" instruction for cpu type ft32.
+ 	* configure: Regenerate.
+ 	* dwarf2out.cc (dwarf2out_set_ignored_loc): Use the correct
+ 	line info section.
+ 
+ 2024-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116460
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Do not
+ 	process blocks in unreachable natural loops.
+ 
+ 2024-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_gimple_switch_label_vec):
+ 	Delay removing edges and releasing dominator info, instead
+ 	record into edges_to_remove vector.
+ 	(simplify_gimple_switch): Pass through vector of to remove
+ 	edges.
+ 	(pass_forwprop::execute): Likewise.  Remove queued edges.
+ 
+ 2024-08-26  Xi Ruoyao  <xry111@xry111.site>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116348
+ 	* tree-vect-stmts.cc (supportable_widening_operation): Use
+ 	STMT_VINFO_REDUC_DEF (x) instead of
+ 	STMT_VINFO_DEF_TYPE (x) == vect_reduction_def.
+ 
+ 2024-08-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add int_fits_type_p check for .SAT_ADD imm operand.
+ 
+ 2024-08-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116480
+ 	* internal-fn.cc (expand_POPCOUNT): Use the correct mode
+ 	for store flags.
+ 
+ 2024-08-26  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx10_2-512convertintrin.h
+ 	(_mm512_cvtpbf8_ph): New.
+ 	(_mm512_mask_cvtpbf8_ph): Ditto.
+ 	(_mm512_maskz_cvtpbf8_ph): Ditto.
+ 	* config/i386/avx10_2convertintrin.h
+ 	(_mm_cvtpbf8_ph): Ditto.
+ 	(_mm_mask_cvtpbf8_ph): Ditto.
+ 	(_mm_maskz_cvtpbf8_ph): Ditto.
+ 	(_mm256_cvtpbf8_ph): Ditto.
+ 	(_mm256_mask_cvtpbf8_ph): Ditto.
+ 	(_mm256_maskz_cvtpbf8_ph): Ditto.
+ 
+ 2024-08-26  Zhang, Jun  <jun.zhang@intel.com>
+ 	    Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_ssecom_setcc): Mention behavior change on flags.
+ 	(ix86_expand_sse_comi): Handle AVX10.2 behavior.
+ 	(ix86_expand_sse_comi_round): Ditto.
+ 	(ix86_expand_round_builtin): Ditto.
+ 	(ix86_expand_builtin): Change function call.
+ 	* config/i386/i386.md (UNSPEC_COMX): New unspec.
+ 	* config/i386/sse.md
+ 	(avx10_2_v<unord>comx<ssemodesuffix><round_saeonly_name>): New.
+ 	(<sse>_<unord>comi<round_saeonly_name>): Add HFmode.
+ 
+ 2024-08-26  Zhang, Jun  <jun.zhang@intel.com>
+ 
+ 	* config.gcc: Add avx10_2copyintrin.h.
+ 	* config/i386/i386.md (avx10_2): New isa attribute.
+ 	* config/i386/immintrin.h: Include avx10_2copyintrin.h.
+ 	* config/i386/sse.md
+ 	(sse_movss_<mode>): Add new constraints to handle AVX10.2.
+ 	(vec_set<mode>_0): Ditto.
+ 	(@vec_set<mode>_0): Ditto.
+ 	(vec_set<mode>_0): Ditto.
+ 	(avx512fp16_mov<mode>): Ditto.
+ 	(*vec_set<mode>_0_1): New split.
+ 	* config/i386/avx10_2copyintrin.h: New file.
+ 
+ 2024-08-26  Mo, Zewei  <zewei.mo@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 	    Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config.gcc: Add avx10_2-512minmaxintrin.h and
+ 	avx10_2minmaxintrin.h.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (V8BF, V8BF, V8BF, INT, V8BF, UQI),
+ 	(V16BF, V16BF, V16BF, INT, V16BF, UHI),
+ 	(V32BF, V32BF, V32BF, INT, V32BF, USI),
+ 	(V8HF, V8HF, V8HF, INT, V8HF, UQI),
+ 	(V8DF, V8DF, V8DF, INT, V8DF, UQI, INT),
+ 	(V32HF, V32HF, V32HF, INT, V32HF, USI, INT),
+ 	(V16HF, V16HF, V16HF, INT, V16HF, UHI, INT),
+ 	(V16SF, V16SF, V16SF, INT, V16SF, UHI, INT).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_args_builtin): Handle V8BF_FTYPE_V8BF_V8BF_INT_V8BF_UQI,
+ 	V16BF_FTYPE_V16BF_V16BF_INT_V16BF_UHI,
+ 	V32BF_FTYPE_V32BF_V32BF_INT_V32BF_USI,
+ 	V8HF_FTYPE_V8HF_V8HF_INT_V8HF_UQI,
+ 	(ix86_expand_round_builtin): Handle V8DF_FTYPE_V8DF_V8DF_INT_V8DF_UQI_INT,
+ 	V32HF_FTYPE_V32HF_V32HF_INT_V32HF_USI_INT,
+ 	V16HF_FTYPE_V16HF_V16HF_INT_V16HF_UHI_INT.
+ 	V16SF_FTYPE_V16SF_V16SF_INT_V16SF_UHI_INT.
+ 	* config/i386/immintrin.h: Include avx10_2-512mixmaxintrin.h and
+ 	avx10_2minmaxintrin.h.
+ 	* config/i386/sse.md (VFH_AVX10_2): New.
+ 	(avx10_2_vminmaxnepbf16_<mode><mask_name>): New define_insn.
+ 	(avx10_2_minmaxp<mode><mask_name><round_saeonly_name>): Ditto.
+ 	(avx10_2_minmaxs<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
+ 	* config/i386/avx10_2-512minmaxintrin.h: New file.
+ 	* config/i386/avx10_2minmaxintrin.h: Ditto.
+ 
+ 2024-08-26  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2-512satcvtintrin.h: Add new intrin.
+ 	* config/i386/avx10_2satcvtintrin.h: Ditto.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md (VF1_VF2_AVX10_2): New iterator.
+ 	(VF2_AVX10_2): Ditto.
+ 	(VI8_AVX10_2): Ditto.
+ 	(sat_cvt_sign_prefix): Add new UNSPEC.
+ 	(UNSPEC_SAT_CVT_DS_SIGN_ITER): New iterator.
+ 	(pd2dqssuff): Ditto.
+ 	(avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>):
+ 	New.
+ 	(avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Ditto.
+ 	(avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Ditto.
+ 
+ 2024-08-26  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config.gcc: Add avx10_2satcvtintrin.h and
+ 	avx10_2-512satcvtintrin.h.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (V8HI, V8BF, V8HI, UQI),
+ 	(V16HI, V16BF, V16HI, UHI), (V32HI, V32BF, V32HI, USI),
+ 	(V16SI, V16SF, V16SI, UHI, INT), (V16HI, V16BF, V16HI, UHI, INT),
+ 	(V32HI, V32BF, V32HI, USI, INT).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
+ 	V32HI_FTYPE_V32BF_V32HI_USI, V16HI_FTYPE_V16BF_V16HI_UHI,
+ 	V8HI_FTYPE_V8BF_V8HI_UQI.
+ 	(ix86_expand_round_builtin): Handle V32HI_FTYPE_V32BF_V32HI_USI_INT,
+ 	V16SI_FTYPE_V16SF_V16SI_UHI_INT, V16HI_FTYPE_V16BF_V16HI_UHI_INT.
+ 	* config/i386/immintrin.h: Include avx10_2satcvtintrin.h and
+ 	avx10_2-512savcvtintrin.h.
+ 	* config/i386/sse.md:
+ 	(UNSPEC_CVTNE_BF16_IBS_ITER): New iterator.
+ 	(sat_cvt_sign_prefix): Ditto.
+ 	(sat_cvt_trunc_prefix): Ditto.
+ 	(UNSPEC_CVT_PH_IBS_ITER): Ditto.
+ 	(UNSPEC_CVTT_PH_IBS_ITER): Ditto.
+ 	(UNSPEC_CVT_PS_IBS_ITER): Ditto.
+ 	(UNSPEC_CVTT_PS_IBS_ITER): Ditto.
+ 	(avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
+ 	New define_insn.
+ 	(avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
+ 	Ditto.
+ 	(avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
+ 	Ditto.
+ 	(avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	* config/i386/avx10_2-512satcvtintrin.h: New file.
+ 	* config/i386/avx10_2satcvtintrin.h: Ditto.
+ 
+ 2024-08-26  konglin1  <lingling.kong@intel.com>
+ 	    Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/avx10_2-512bf16intrin.h: Add new intrinsics.
+ 	* config/i386/avx10_2bf16intrin.h: Diito.
+ 	* config/i386/i386-builtin-types.def : Add new DEF_FUNCTION_TYPE
+ 	for new type.
+ 	* config/i386/i386-builtin.def (BDESC): Add new buildin.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin):
+ 	Handle new type.
+ 	* config/i386/sse.md (vecmemsuffix): Add vector BF mode.
+ 	(avx10_2_rsqrtpbf16_<mode><mask_name>): New define_insn.
+ 	(avx10_2_sqrtnepbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_rcppbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_getexppbf16_<mode><mask_name>): Ditto.
+ 	(BF16IMMOP): New iterator.
+ 	(bf16immop): Ditto.
+ 	(avx10_2_<bf16immop>pbf16_<mode><mask_name>): New define_insn.
+ 	(avx10_2_fpclasspbf16_<mode><mask_scalar_merge_name>): Ditto.
+ 	(avx10_2_cmppbf16_<mode><mask_scalar_merge_name>): Ditto.
+ 	(avx10_2_comsbf16_v8bf): Ditto.
+ 
+ 2024-08-26  konglin1  <lingling.kong@intel.com>
+ 	    Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config.gcc: Add avx10_2-512bf16intrin.h and avx10_2bf16intrin.h.
+ 	* config/i386/i386-builtin-types.def : Add new
+ 	DEF_FUNCTION_TYPE for V32BF_FTYPE_V32BF_V32BF,
+ 	V16BF_FTYPE_V16BF_V16BF, V8BF_FTYPE_V8BF_V8BF,
+ 	V8BF_FTYPE_V8BF_V8BF_UQI, V16BF_FTYPE_V16BF_V16BF_UHI,
+ 	V32BF_FTYPE_V32BF_V32BF_USI, V32BF_FTYPE_V32BF_V32BF_V32BF_USI,
+ 	V8BF_FTYPE_V8BF_V8BF_V8BF_UQI and V16BF_FTYPE_V16BF_V16BF_V16BF_UHI.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin):
+ 	Handle new DEF_FUNCTION_TYPE.
+ 	* config/i386/immintrin.h: Include avx10_2-512bf16intrin.h and
+ 	avx10_2bf16intrin.h.
+ 	* config/i386/sse.md
+ 	(VBF_AVX10_2): New iterator.
+ 	(avx10_2_scalefpbf16_<mode><mask_name>): New define_insn.
+ 	(avx10_2_<code>nepbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_<insn>nepbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_fmaddnepbf16_<mode>_maskz): New expander.
+ 	(avx10_2_fnmaddnepbf16_<mode>_maskz): Ditto.
+ 	(avx10_2_fmsubnepbf16_<mode>_maskz): Ditto.
+ 	(avx10_2_fnmsubnepbf16_<mode>_maskz): Ditto.
+ 	(avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): New define_insn.
+ 	(avx10_2_fmaddnepbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fmaddnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fnmaddnepbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fnmaddnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fmsubnepbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fmsubnepbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fnmsubnepbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fnmsubnepbf16_<mode>_mask3): Ditto.
+ 	* config/i386/avx10_2-512bf16intrin.h: New file.
+ 	* config/i386/avx10_2bf16intrin.h: Ditto.
+ 
+ 2024-08-26  Levy Hsu  <admin@levyhsu.com>
+ 	    Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config.gcc: Add avx10_2-512convertintrin.h and
+ 	avx10_2convertintrin.h.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_POINTER_TYPE
+ 	and DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin):
+ 	Handle AVX10.2.
+ 	(ix86_expand_round_builtin): Ditto.
+ 	* config/i386/immintrin.h: Include avx10_2-512convertintrin.h,
+ 	avx10_2convertintrin.h.
+ 	* config/i386/sse.md (VHF_AVX10_2): New iterator.
+ 	(bf16_ph): Add 512 bit mode.
+ 	(avx10_2_cvt2ps2phx_<mode><mask_name<round_name>): New define_insn.
+ 	(ssebvecmode): New iterator.
+ 	(UNSPEC_NECONVERTFP8_PACK): Ditto.
+ 	(neconvertfp8_pack): Ditto.
+ 	(vcvt<neconvertfp8_pack><mode><mask_name>): New define_insn.
+ 	(ssebvecmode_2): New iterator.
+ 	(UNSPEC_VCVTBIASPH2FP8_PACK): Ditto.
+ 	(biasph2fp8_pack): Ditto.
+ 	(vcvt<biasph2fp8_pack>v8hf): New expander.
+ 	(vcvt<biasph2fp8_pack>v8hf_mask): Ditto.
+ 	(*vcvt<biasph2bf8_pack>v8hf): New define_insn.
+ 	(*vcvt<biasph2fp8_pack>v8hf_mask): Ditto.
+ 	(VHF_AVX10_2_2): New iterator.
+ 	(vcvt<biasph2fp8_pack><mode><mask_name>): New define_insn.
+ 	(VHF_256_512): New iterator.
+ 	(ph2fp8suff): Ditto.
+ 	(UNSPEC_NECONVERTPH2FP8_PACK): Ditto.
+ 	(neconvertph2fp8): Ditto.
+ 	(vcvt<neconvertph2fp8>v8hf_mask): New expander.
+ 	(*vcvt<neconvertph2fp8>v8hf): New define_insn.
+ 	(*vcvt<neconvertph2fp8>v8hf_mask): Ditto.
+ 	(vcvt<neconvertph2fp8><mode><mask_name>): Ditto.
+ 	(vcvthf82ph<mode><mask_name>): Ditto.
+ 	* config/i386/avx10_2-512convertintrin.h: New file.
+ 	* config/i386/avx10_2convertintrin.h: Ditto.
+ 
+ 2024-08-26  Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/avx10_2-512mediaintrin.h: Add new intrins.
+ 	* config/i386/avx10_2mediaintrin.h: Ditto.
+ 	* config/i386/i386-builtin.def: Add new builtins.
+ 	* config/i386/i386-builtins.cc (def_builtin): Handle shared
+ 	builtins between AVXVNNIINT16 and AVX10.2.
+ 	* config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
+ 	Ditto.
+ 	* config/i386/sse.md (unspec): Add UNSPEC_VDPPHPS.
+ 	(avx10_2_mpsadbw<mask_name>): New define_insn.
+ 	(<mask_codefor><sse4_1_avx2>_mpsadbw<mask_name>): Ditto.
+ 	(vpdp<vpdpwprodtype>_<mode>): Add AVX10_2_256.
+ 	(vpdp<vpdpwprodtype>_v16si): New defin_insn.
+ 	(vpdp<vpdpwprodtype>_<mode>_mask): Ditto.
+ 	(*vpdp<vpdpwprodtype>_<mode>_maskz): Ditto.
+ 	(vpdp<vpdpwprodtype>_<mode>_maskz): New expander.
+ 	(vdpphps_<mode>): New define_insn.
+ 	(vdpphps_<mode>_mask): Ditto.
+ 	(*vdpphps_<mode>_maskz): Ditto.
+ 	(vdpphps_<mode>_maskz): New expander.
+ 
+ 2024-08-26  Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config.gcc: Add avx10_2mediaintrin.h and
+ 	avx10_2-512mediaintrin.h.
+ 	* config/i386/i386-builtin.def: Add new builtins.
+ 	* config/i386/i386-builtins.cc (def_builtin): Handle shared
+ 	builtins between AVXVNNIINT8 and AVX10.2.
+ 	* config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
+ 	Ditto.
+ 	* config/i386/immintrin.h: Include avx10_2mediaintrin.h and
+ 	avx10_2-512mediaintrin.h
+ 	* config/i386/sse.md: (VI4_AVX10_2): New.
+ 	(vpdp<vpdotprodtype>_<mode>): Add AVX10_2_256.
+ 	(vpdp<vpdotprodtype>_v16si): New define_insn.
+ 	(vpdp<vpdotprodtype>_<mode>_mask): Ditto.
+ 	(*vpdp<vpdotprodtype>_<mode>_maskz): Ditto.
+ 	(vpdp<vpdotprodtype>_<mode>_maskz): New expander.
+ 	* config/i386/avx10_2-512mediaintrin.h: New file.
+ 	* config/i386/avx10_2mediaintrin.h: Ditto.
+ 
+ 2024-08-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_gen_unsigned_xmode_reg): Add new
+ 	func impl to gen xmode rtx reg from operand rtx.
+ 	(riscv_expand_ussub): Gen xmode reg for operand 1.
+ 	* config/riscv/riscv.md: Allow const_int for operand 1.
+ 
+ 2024-08-25  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/vector.md: Add !FLOAT_MODE_P constraint.
+ 
+ 2024-08-25  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* lower-subreg.cc (resolve_simple_move): Re-add calling emit_clobber
+ 	immediately before moving a multi-word register by parts.
+ 
+ 2024-08-25  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR tree-optimization/115866
+ 	* tree-if-conv.cc (if_convertible_switch_p): New function.
+ 	(if_convertible_stmt_p): Check for switch.
+ 	(get_loop_body_in_if_conv_order): Handle switch.
+ 	(predicate_bbs): Likewise.
+ 	(predicate_statements): Likewise.
+ 	(remove_conditions_and_labels): Likewise.
+ 	(ifcvt_split_critical_edges): Likewise.
+ 	(ifcvt_local_dce): Likewise.
+ 
+ 2024-08-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (write_optimized_static_local_vars): New function.
+ 	(write_function): Call write_optimized_static_local_vars.
+ 
+ 2024-08-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_FRAMEPROC.
+ 	(write_s_frameproc): New function.
+ 	(write_function): Call write_s_frameproc.
+ 
+ 2024-08-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_DEFRANGE_REGISTER_REL.
+ 	(write_defrange_register_rel): New function.
+ 	(write_optimized_local_variable_loc): Add fbloc param, and call
+ 	write_defrange_register_rel.
+ 	(write_optimized_local_variable): Add fbloc param.
+ 	(write_optimized_function_vars): Add fbloc param.
+ 
+ 2024-08-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_LOCAL and
+ 	S_DEFRANGE_REGISTER.
+ 	(write_s_local): New function.
+ 	(write_defrange_register): New function.
+ 	(write_optimized_local_variable_loc): New function.
+ 	(write_optimized_local_variable): New function.
+ 	(write_optimized_function_vars): New function.
+ 	(write_function): Call write_optimized_function_vars if variable
+ 	tracking enabled.
+ 	* dwarf2out.cc (typedef var_loc_view): Move to dwarf2out.h.
+ 	(struct dw_loc_list_struct): Likewise.
+ 	* dwarf2out.h (typedef var_loc_view): Move from dwarf2out.h.
+ 	(struct dw_loc_list_struct): Likewise.
+ 	* opts.cc (finish_options): Enable variable tracking for CodeView.
+ 
+ 2024-08-25  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-features.cc (compute_convert_gain)
+ 	<case ASHIFTRT>: Update to match ix86_expand_v1ti_ashiftrt.
+ 
+ 2024-08-23  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
+ 	Use encoded_nelts when calling repeating_sequence_p.
+ 	(rvv_builder::is_repeating_sequence): Ditto.
+ 	(rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
+ 
+ 2024-08-23  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	PR rtl-optimization/116372
+ 	PR rtl-optimization/116405
+ 	* ifcvt.cc (noce_convert_multiple_sets): Iterate backwards and track
+ 	target registers.
+ 
+ 2024-08-23  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	PR middle-end/116358
+ 	* ifcvt.cc (noce_convert_multiple_sets): Disallow call insns.
+ 
+ 2024-08-23  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/116415
+ 	* config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define.
+ 	* config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to
+ 	handle PTImode identically to TImode.
+ 
+ 2024-08-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116463
+ 	* tree-complex.cc: Include tree-ssa-dce.h.
+ 	(dce_worklist): New global.
+ 	(update_complex_assignment): Add SSA def to the DCE worklist.
+ 	(tree_lower_complex): Perform DCE.
+ 
+ 2024-08-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 4 for unsigned .SAT_TRUNC matching.
+ 
+ 2024-08-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/115495
+ 	* cfgexpand.cc (expand_debug_expr): Require mode.
+ 	* combine.cc (make_extraction): Ditto.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_cpymem): Ditto.
+ 	(aarch64_expand_setmem): Ditto.
+ 	* config/arc/arc.cc (arc_expand_cpymem): Ditto.
+ 	* config/arm/arm.cc (arm_expand_divmod_libfunc): Ditto.
+ 	* config/i386/i386.cc (ix86_get_mask_mode): Ditto.
+ 	* config/rs6000/predicates.md: Ditto.
+ 	* config/rs6000/rs6000.cc (vspltis_constant): Ditto.
+ 	* config/s390/s390.cc (s390_expand_insv): Ditto.
+ 	* config/sparc/sparc.cc (assign_int_registers): Ditto.
+ 	* coverage.cc (get_gcov_type): Ditto.
+ 	(get_gcov_unsigned_t): Ditto.
+ 	* dse.cc (find_shift_sequence): Ditto.
+ 	* expmed.cc (store_integral_bit_field): Ditto.
+ 	* expr.cc (convert_mode_scalar): Ditto.
+ 	(op_by_pieces_d::smallest_fixed_size_mode_for_size): Ditto.
+ 	(emit_block_move_via_oriented_loop): Ditto.
+ 	(copy_blkmode_to_reg): Ditto.
+ 	(store_field): Ditto.
+ 	* internal-fn.cc (expand_arith_overflow): Ditto.
+ 	* machmode.h (HAVE_MACHINE_MODES): Ditto.
+ 	(smallest_mode_for_size): Use opt_machine_mode.
+ 	(smallest_int_mode_for_size): Use opt_scalar_int_mode.
+ 	* optabs-query.cc (get_best_extraction_insn): Require mode.
+ 	* optabs.cc (expand_twoval_binop_libfunc): Ditto.
+ 	* stor-layout.cc (smallest_mode_for_size): Return
+ 	opt_machine_mode.
+ 	(layout_type): Require mode.
+ 	(initialize_sizetypes): Ditto.
+ 	* tree-ssa-loop-manip.cc (canonicalize_loop_ivs): Ditto.
+ 
+ 2024-08-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (abs<mode>2): Expand via max (a, -a).
+ 
+ 2024-08-23  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (License): Specifically link to GPL v3.0
+ 
+ 2024-08-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116420
+ 	* ext-dce.cc (ext_dce_init): Fix loop iteration when setting up the
+ 	interesting block for DF to analyze.
+ 
+ 2024-08-22  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	* lto-streamer-in.cc: (lto_read_tree_1): Set DECL_MODE (expr) to
+ 	TREE_TYPE (TYPE_MODE (expr)) if TREE_TYPE (expr) is aggregate type and
+ 	offloading is enabled.
+ 	* stor-layout.cc (layout_type): Move computation of mode for
+ 	ARRAY_TYPE from ...
+ 	(compute_array_mode): ... to here.
+ 	* stor-layout.h (compute_array_mode): Declare.
+ 	* tree-streamer-in.cc: Include stor-layout.h.
+ 	(unpack_ts_common_value_fields): Call compute_array_mode if offloading
+ 	is enabled.
+ 	* tree-streamer-out.cc (pack_ts_fixed_cst_value_fields): Stream out
+ 	VOIDmode if decl has aggregate type and offloading is enabled.
+ 	(pack_ts_type_common_value_fields): Stream out VOIDmode for aggregate
+ 	type if offloading is enabled.
+ 
+ 2024-08-22  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Add
+ 	epilogue code for stack-clash and fix prologue cfi note.
+ 
+ 2024-08-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 	    Richard Biener   <rguenther@suse.de>
+ 
+ 	PR middle-end/116454
+ 	* fold-const.cc (fold_binary_loc): Fix `a * +-1i`
+ 	by wrapping arg0 with save_expr when it is not COMPLEX_EXPR.
+ 
+ 2024-08-22  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/116365
+ 	* config/aarch64/aarch64-opts.h
+ 	(enum aarch64_autovec_preference_enum):	New enum.
+ 	* config/aarch64/aarch64.cc (aarch64_cmp_autovec_modes):
+ 	Change numerical to enum values.
+ 	(aarch64_autovectorize_vector_modes): Change numerical to enum
+ 	values.
+ 	(aarch64_vector_costs::record_potential_advsimd_unrolling):
+ 	Change numerical to enum values.
+ 	* config/aarch64/aarch64.opt: Change param type to enum.
+ 	* doc/invoke.texi: Update documentation.
+ 
+ 2024-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 
+ 	* dwarf2out.cc (dwarf2out_maybe_output_loclist_view_pair,
+ 	output_loc_list): Correct handling of -gno-as-loc-support,
+ 	use ZERO_VIEW_P to output view number as zero value.
+ 	* toplev.cc (process_options): Do not automatically disable
+ 	-gvariable-location-views when -gno-as-loc-support or
+ 	-gno-as-locview-support is used, instead do automatically
+ 	disable -gas-locview-support if -gno-as-loc-support is used.
+ 
+ 2024-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 
+ 	PR debug/87440
+ 	* dwarf2out.cc (gen_inlined_subroutine_die): Handle the case
+ 	of multiple subranges correctly.
+ 
+ 2024-08-22  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR tree-optimization/101390
+ 	* tree-vect-patterns.cc (vect_recog_mod_var_pattern): Add new pattern.
+ 
+ 2024-08-22  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* toplev.cc (dump_final_alias_vcg): New.
+ 	(dump_final_node_vcg): Dump aliases along with node.
+ 
+ 2024-08-22  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	set ix86_{move_max,store_max} to PVW_AVX256 when TARGET_AVX
+ 	instead of PVW_AVX128.
+ 
+ 2024-08-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116437
+ 	* ext-dce.cc (ext_dce_try_optimize_insn): Handle SUBREG and
+ 	ZERO_EXTRACT destinations.
+ 
+ 2024-08-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR testsuite/116238
+ 	* config/aarch64/aarch64.cc (aarch64_hard_regno_caller_save_mode):
+ 	Only return SImode if we can convert to and from it.
+ 
+ 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113042
+ 	* config/aarch64/aarch64.md (popcountti2): New define_expand.
+ 
+ 2024-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116406
+ 	* tree-ssa-sccvn.cc (vn_reference_eq): Never equate
+ 	float and int when the float mode cannot transfer bits.
+ 	Do not try to anticipate which is the mode we actually load
+ 	from.
+ 
+ 2024-08-21  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR target/58416
+ 	* tree-sra.cc (types_risk_mangled_binary_repr_p): New function.
+ 	(sort_and_splice_var_accesses): Use it.
+ 	(propagate_subaccesses_from_rhs): Likewise.
+ 
+ 2024-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116380
+ 	* tree-loop-distribution.cc (copy_loop_before): Handle
+ 	out-of-loop defs appropriately.
+ 
+ 2024-08-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/vsx.md (define_insn *vsx_le_perm_store_{<VSX_D:mode>,
+ 	<VSX_W:mode>,v8hi,v16qi,<VSX_LE_128:mode>}): Remove constraint modifier
+ 	"+" from operand 1.
+ 
+ 2024-08-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/vsx.md (*vsx_le_perm_store_{<VSX_D:mode>,<VSX_W:mode>,
+ 	v8hi,v16qi,<VSX_LE_128:mode>} !reload_completed splitters): Assert
+ 	can_create_pseudo_p and always generate one new pseudo for operand 1.
+ 
+ 2024-08-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (mov<mode>): Align predicates for
+ 	operands[1] between mov<mode> and *mov<mode>_internal.
+ 	* config/i386/mmx.md (mov<mode>): Ditto.
+ 
+ 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* builtins.cc (fold_builtin_bit_query): Don't expand double
+ 	`unsigned long long` typess if there is an optab entry for that
+ 	type.
+ 
+ 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR sanitizer/115205
+ 	* asan.cc (asan_instrument): Call initialize_sanitizer_builtins
+ 	for hwasan.
+ 	(hwasan_finish_file): Likewise.
+ 
+ 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116412
+ 	* gimple-match-exports.cc (gimple_extract): Return false if op0
+ 	was not a SSA name nor a min invariant for REALPART_EXPR/IMAGPART_EXPR/VCE
+ 	and BIT_FIELD_REF.
+ 
+ 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116409
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Move
+ 	maybe_push_res_to_seq before creating the phi node and the debug dump.
+ 	Return false if maybe_push_res_to_seq fails.
+ 
+ 2024-08-20  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Specific) <c6x-*-*>: Normalize reference to
+ 	binutils.
+ 
+ 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/103660
+ 	* match.pd (`(a ? b : 0) | (a ? 0 : c)`): New pattern.
+ 
+ 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/103660
+ 	* match.pd (`((a CMP b) ? c : 0) | ((a CMP' b) ? d : 0)`): Extend to support
+ 	XOR and PLUS.
+ 
+ 2024-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116274
+ 	* tree-vect-slp.cc (vect_bb_slp_scalar_cost): Cost scalar loads
+ 	and stores as simple scalar stmts when they access a non-global,
+ 	not address-taken variable that doesn't have BLKmode assigned.
+ 
+ 2024-08-20  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	* optc-save-gen.awk: New array var_target_opt. Use it to generate
+ 	if (!lto_stream_offload_p) check in cl_optimization_stream_out,
+ 	and generate a diagnostic with #error if accelerator backend uses
+ 	Optimization for target-specifc options in cl_optimization_stream_in.
+ 
+ 2024-08-19  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/113939
+ 	* config/m68k/m68k.opt (mlra): New target option.
+ 	* config/m68k/m68k.cc (m68k_use_lra_p): New function.
+ 	(TARGET_LRA_P): Use it.
+ 	* config/m68k/m68k.opt.urls: Regenerate.
+ 
+ 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	PR target/112108
+ 	* config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove
+ 	feature check at initialisation.
+ 	(aarch64_general_check_builtin_call): Check ls64 intrinsics.
+ 	* config/aarch64/arm_acle.h: (data512_t) Make always available.
+ 
+ 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	PR target/112108
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins):
+ 	Define intrinsic names directly.
+ 	(aarch64_general_init_builtins): Move memtag intialisation...
+ 	(handle_arm_acle_h): ...to here, and remove feature check.
+ 	(aarch64_general_check_builtin_call): Check memtag intrinsics.
+ 	* config/aarch64/arm_acle.h (__arm_mte_create_random_tag)
+ 	(__arm_mte_exclude_tag, __arm_mte_ptrdiff)
+ 	(__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag):
+ 	Remove.
+ 
+ 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	PR target/112108
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins):
+ 	Define intrinsic names directly.
+ 	(aarch64_general_init_builtins): Move tme initialisation...
+ 	(handle_arm_acle_h): ...to here, and remove feature check.
+ 	(aarch64_general_check_builtin_call): Check tme intrinsics.
+ 	* config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel)
+ 	(__ttest): Remove.
+ 	(_TMFAILURE_*): Define unconditionally.
+ 
+ 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (check_builtin_call)
+ 	(expand_builtin): Update calls to the below.
+ 	(report_missing_extension, report_missing_registers)
+ 	(check_required_extensions): Move out of aarch64_sve namespace,
+ 	rename, and move into...
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension)
+ 	(aarch64_report_missing_registers)
+ 	(aarch64_check_required_extensions) ...here.
+ 	* config/aarch64/aarch64-protos.h (aarch64_check_required_extensions):
+ 	Add prototype.
+ 
+ 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(check_required_registers): Remove target check and rename to...
+ 	(report_missing_registers): ...this.
+ 	(check_required_extensions): Refactor.
+ 
+ 2024-08-19  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/tuning_models/neoversev2.h (fp_reassoc_width):
+ 	Set to 4.
+ 	(tune_flags): Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
+ 
+ 2024-08-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* read-rtl.cc (rtx_reader::rtx_alloc_for_name): Allow all attribute
+ 	types to produce code 'values'.
+ 	(check_code_attribute): Rename ...
+ 	(check_attribute_codes): ... to this.  And change comments to refer to
+ 	* doc/md.texi: Add paragraph to document that you can use int and mode
+ 	attributes to produce codes.
+ 
+ 2024-08-19  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/aarch64/aarch64-simd.md (mov<mode> for VSTRUCT_QD):
+ 	Expand 16-byte vector mode const0 store by TImode.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def: Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<avx512>_scalef<mode><mask_name><round_name>): Add condition check.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
+ 	Add condition check.
+ 	(<avx512>_rndscale<mode><mask_name><round_saeonly_name>): Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin):
+ 	Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT,
+ 	V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT,
+ 	V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT,
+ 	V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(<avx512>_getexp<mode><mask_name><round_saeonly_name>):
+ 	Add condition check.
+ 	(<avx512>_getmant<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<avx512>_fnmsub_<mode>_mask3<round_name>): Add condition check.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<avx512>_fmsub_<mode>_mask<round_name>): Add condition check.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<avx512>_fmaddsub_<mode>_mask<round_name>): Add condition check.
+ 	(<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md:
+ 	(<avx512>_fmadd_<mode>_mask3<round_name>): Add condition check.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT,
+ 	V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT,
+ 	V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT,
+ 	V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>):
+ 	Add condition check.
+ 	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V16HF_FTYPE_V16HI_V16HF_UHI_INT.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md
+ 	(unspec_fix_truncv8sfv8si2<mask_name>): Extend rounding control.
+ 	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
+ 	Ditto.
+ 	(<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):
+ 	Add condition check.
+ 	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Remove round_saeonly_name.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/sse.md (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>):
+ 	Extend round control for 256bit.
+ 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
+ 	Ditto.
+ 	(avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>):
+ 	Add condition check.
+ 	* config/i386/subst.md
+ 	(round_saeonly_mode_condition): Add V16HI check for 256bit.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT,
+ 	V8HF_FTYPE_V4DI_V8HF_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(avx512fp16_vcvt<floatsuffix>qq2ph_v4di_mask_round): New expand.
+ 	(*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask):
+ 	Extend round control and add "_1" suffix.
+ 	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
+ 	Add condition check.
+ 	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
+ 	Ditto.
+ 	(float<floatunssuffix><mode><ssePSmode2lower>2<mask_name><round_name>):
+ 	Limit suffix output.
+ 	(unspec_fix_truncv4dfv4si2<mask_name>): Extend round control.
+ 	(unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
+ 	* config/i386/subst.md (round_qq2pssuff): New iterator.
+ 	(round_saeonly_suff): Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT.
+ 	* config/i386/sse.md
+ 	(<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>):
+ 	Extend to round.
+ 	(<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
+ 	Add round condition check.
+ 	* config/i386/subst.md (round_constraint4): New.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT
+ 	V8HF_FTYPE_V8SF_V8HF_UQI_INT.
+ 	* config/i386/sse.md
+ 	(avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>):
+ 	Add round condition check.
+ 	* config/i386/subst.md (round_mode_condition): Add V16HI check for
+ 	256bit.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: New intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT,
+ 	V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>):
+ 	Add condition check.
+ 	(avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode>
+ 	<mask_name><round_name>):
+ 	Ditto.
+ 	(avx512fp16_float_extend_ph<mode>2<mask_name>): Extend round saeonly.
+ 	(vcvtph2ps256<mask_name>): Ditto.
+ 	* config/i386/subst.md
+ 	(round_saeonly_applied): New condition.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: Add new intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(avx_cvtpd2dq256<mask_name>): Change name to
+ 	avx_cvtpd2dq256<mask_name><round_name> and extend pattern to
+ 	generate 256bit insns.
+ 	(fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
+ 	Add round_mode_condition.
+ 	* config/i386/subst.md (round_pd2udqsuff): New iterator.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx10_2roundingintrin.h: Add new intrins.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT,
+ 	V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT.
+ 	* config/i386/sse.md:
+ 	(avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>):
+ 	Add condition check.
+ 	(avx512fp16_vcvtpd2ph_v4df_mask_round): New expand.
+ 	(*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Change name to
+ 	avx512fp16_vcvt<castmode>2ph_<mode>_mask<round_name>_1
+ 	and extend pattern to generate 256bit insns.
+ 	(avx_cvtpd2ps256<mask_name>): Change name to
+ 	avx_cvtpd2ps256<mask_name><round_name> and extend pattern to
+ 	generate 256bit insns.
+ 	* config/i386/subst.md (round_applied): New condition.
+ 	(round_suff): New iterator.
+ 	(round_mode_condition): Add V32HI check for 512bit.
+ 	(round_saeonly_mode_condition): Ditto.
+ 
+ 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config.gcc: Add avx10_2roundingintrin.h.
+ 	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
+ 	V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT,
+ 	V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT,
+ 	UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT.
+ 	* config/i386/immintrin.h: Include avx10_2roundingintrin.h.
+ 	* config/i386/sse.md: Change subst_attr name due to renaming.
+ 	* config/i386/subst.md:
+ 	(<round_mode512bit_condition>): Add condition check for avx10.2
+ 	rounding control 256bit intrins and renamed to ...
+ 	(<round_mode_condition>): ...this.
+ 	(round_saeonly_mode512bit_condition): Add condition check for
+ 	avx10.2 rounding control 256 bit intris and renamed to ...
+ 	(round_saeonly_mode_condition): ...this.
+ 	* config/i386/avx10_2roundingintrin.h: New file.
+ 
+ 2024-08-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115876
+ 	* ext-dce.cc (ext_dce_process_sets): Replace hardcoded 63/64 instances
+ 	with HOST_BITS_PER_WIDE_INT based values.
+ 	(carry_backpropagate): Handle modes with more bits than
+ 	HOST_BITS_PER_WIDE_INT gracefully, avoiding undefined behavior.
+ 	(ext_dce_process_uses): Handle subreg offsets which would result
+ 	in ubsan shifts gracefully, avoiding undefined behavior.
+ 
+ 2024-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Contributing): Tweak gm2 mailing list address.
+ 
+ 2024-08-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-match-exports.cc (gimple_match_op::operands_occurs_in_abnormal_phi):
+ 	New function.
+ 	* gimple-match.h (gimple_match_op): Add operands_occurs_in_abnormal_phi.
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Use gimple_match_op
+ 	instead of manually extracting from/creating the gimple.
+ 
+ 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (*add<mode>3_split) [!reload_completed]:
+ 	Add a scratch:QI to 16-bit additions with constant.
+ 
+ 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116407
+ 	* config/avr/avr.md (*dec-and-branchhi!=-1.l.clobber):
+ 	Increase the additional jump offset to 2 words.
+ 
+ 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116407
+ 	* config/avr/avr-protos.h (avr_jump_mode): Add an int argument.
+ 	* config/avr/avr.cc (avr_jump_mode): Add an int argument to increase
+ 	the computed jump offset of backwards branches.
+ 	* config/avr/avr.md (*dec-and-branchhi!=-1, *dec-and-branchsi!=-1):
+ 	Increase the jump offset used by avr_jump_mode() as needed.
+ 
+ 2024-08-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-fold.cc (mark_lhs_in_seq_for_dce): New function.
+ 	(replace_stmt_with_simplification): Call mark_lhs_in_seq_for_dce
+ 	right before inserting the sequence.
+ 	(fold_stmt_1): Add dce_worklist argument, update call to
+ 	replace_stmt_with_simplification.
+ 	(fold_stmt): Add dce_worklist argument, update call to fold_stmt_1.
+ 	(fold_stmt_inplace): Update call to fold_stmt_1.
+ 	* gimple-fold.h (fold_stmt): Add bitmap argument.
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Update call to fold_stmt.
+ 
+ 2024-08-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/iterators.md (ANYI_QUAD_TRUNC): New iterator for
+ 	quad truncation.
+ 	(ANYI_OCT_TRUNC): New iterator for oct truncation.
+ 	(ANYI_QUAD_TRUNCATED): New attr for truncated quad modes.
+ 	(ANYI_OCT_TRUNCATED): New attr for truncated oct modes.
+ 	(anyi_quad_truncated): Ditto but for lower case.
+ 	(anyi_oct_truncated): Ditto but for lower case.
+ 	* config/riscv/riscv.md (ustrunc<mode><anyi_quad_truncated>2):
+ 	Add new pattern for quad truncation.
+ 	(ustrunc<mode><anyi_oct_truncated>2): Ditto but for oct.
+ 
+ 2024-08-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/116278
+ 	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Add new
+ 	func impl to zero extend rtx.
+ 	(riscv_expand_usadd): Leverage above func to cleanup operands 0
+ 	and remove the special handing for SImode in RV64.
+ 
+ 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (carry_backpropagate): Cast mask to HOST_WIDE_INT before
+ 	shifting.
+ 
+ 2024-08-17  Kevin Kirspel  <Kevin-Kirspel@idexx.com>
+ 
+ 	* config/riscv/t-rtems: Add ilp32f multilib.
+ 
+ 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/v850/v850.md (rotlsi3): Allow more cases for V850E3V5+.
+ 
+ 2024-08-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/vector.md: Allow scalar operand to be 0.
+ 
+ 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116282
+ 	* config/riscv/riscv-protos.h (riscv_const_insns): Add new argument.
+ 	* config/riscv/riscv.cc (riscv_build_integer): Add new argument
+ 	ALLOW_NEW_PSEUDOS.  Pass it down to recursive calls and check it
+ 	before using synthesis which allows new registers to be created.
+ 	(riscv_split_integer_cost): Pass new argument to riscv_build_integer.
+ 	(riscv_integer_cost): Add ALLOW_NEW_PSEUDOS argument, pass it down to
+ 	riscv_build_integer.
+ 	(riscv_legitimate_constant_p): Pass new argument to riscv_const_insns.
+ 	(riscv_const_insns): New argment ALLOW_NEW_PSEUDOS.  Pass it down to
+ 	riscv_integer_cost and riscv_const_insns.
+ 	(riscv_split_const_insns): Pass new argument to riscv_const_insns.
+ 	(riscv_move_integer, riscv_rtx_costs): Similarly.
+ 	* config/riscv/riscv.md (shadd with costly constant): Pass new argument
+ 	to riscv_const_insns.
+ 	* config/riscv/bitmanip.md (and with costly constant): Pass new argument
+ 	to riscv_const_insns.
+ 
+ 2024-08-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_vector_float_type_p): New.
+ 	* config/riscv/riscv-vector-builtins.cc (function_instance::any_type_float_p):
+ 	Use riscv_vector_float_type_p instead of FLOAT_MODE_P for judgment.
+ 	* config/riscv/riscv.cc (riscv_vector_int_type_p): Change static to extern.
+ 
+ 2024-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/116280
+ 	* config/riscv/autovec-opt.md: Add quad truncation to
+ 	align the mode requirement for vwsll.
+ 
+ 2024-08-17  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/autovec.md (v<bitmanip_optab><mode>3):
+ 	Add new define_expand pattern for vector rotate shift.
+ 
+ 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (What is GNU Modula-2): Tweak PIM4 link.
+ 
+ 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Community): Tweak link to gm2 list archive.
+ 
+ 2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116390
+ 	* config/avr/avr.cc (avr_out_movsi_mr_r_reg_disp_tiny): Fix
+ 	output templates for the reg_base == reg_src and
+ 	reg_src == reg_base - 2 cases.
+ 
+ 2024-08-17  曾治金  <zhijin.zeng@spacemit.com>
+ 
+ 	PR target/116305
+ 	* config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Take
+ 	BYTES_PER_RISCV_VECTOR for *factor instead of riscv_bytes_per_vector_chunk.
+ 
+ 2024-08-16  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_REGREL32.
+ 	(write_fbreg_variable): New function.
+ 	(write_unoptimized_local_variable): Add fblock parameter, and handle
+ 	DW_OP_fbreg locations.
+ 	(write_unoptimized_function_vars): Add fbloc parameter.
+ 	(write_function): Extract frame base from DWARF.
+ 	* dwarf2out.cc (convert_cfa_to_fb_loc_list): Output simplified frame
+ 	base information for CodeView.
+ 
+ 2024-08-16  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_REGISTER.
+ 	(enum cv_x86_register): New type.
+ 	(enum cv_amd64_register): New type.
+ 	(dwarf_reg_to_cv): New function.
+ 	(write_s_register): New function.
+ 	(write_unoptimized_local_variable): Handle parameters and DW_OP_reg*
+ 	location types.
+ 
+ 2024-08-16  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add S_END and S_BLOCK32.
+ 	(write_local_s_ldata32): New function.
+ 	(write_unoptimized_local_variable): New function.
+ 	(write_s_block32): New function.
+ 	(write_s_end): New function.
+ 	(write_unoptimized_function_vars): New function.
+ 	(write_function): Call write_unoptimized_function_vars.
+ 
+ 2024-08-16  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_enumeration_type): Initialize last_type
+ 	to 0.
+ 	(get_type_num_struct): Likewise.
+ 
+ 2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/85624
+ 	* config/avr/avr.md (*clrmemqi*): Use HImode for alignment operand.
+ 
+ 2024-08-16  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/sse.md (vpmadd52<vpmadd52type><mode>):
+ 	Prohibit egpr for vex version.
+ 	(vpdpbusd_<mode>): Ditto.
+ 	(vpdpbusds_<mode>): Ditto.
+ 	(vpdpwssd_<mode>): Ditto.
+ 	(vpdpwssds_<mode>): Ditto.
+ 	(*vcvtneps2bf16_v4sf): Ditto.
+ 	(*vcvtneps2bf16_v8sf): Ditto.
+ 	(vpdp<vpdotprodtype>_<mode>): Ditto.
+ 	(vbcstnebf162ps_<mode>): Ditto.
+ 	(vbcstnesh2ps_<mode>): Ditto.
+ 	(vcvtnee<bf16_ph>2ps_<mode>): Ditto.
+ 	(vcvtneo<bf16_ph>2ps_<mode>): Ditto.
+ 	(vpdp<vpdpwprodtype>_<mode>): Ditto.
+ 
+ 2024-08-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113042
+ 	* config/aarch64/aarch64.md (popcount<mode>2): Update pattern
+ 	to support ALLI modes.
+ 
+ 2024-08-16  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Update
+ 	comment.
+ 
+ 2024-08-15  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: define_insn for fclass insn.
+ 	define_expand for isfinite, isnormal, isinf.
+ 
+ 2024-08-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): Split
+ 	to an improved implementation on !TARGET_XOP.  On TARGET_XOP, use
+ 	a new pseudo for the intermediate to simplify register allocation.
+ 
+ 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/116236
+ 	* rtlanal.cc (decompose_normal_address): Try to distinguish
+ 	bases and indices based on mode, before resorting to "baseness".
+ 
+ 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR testsuite/116343
+ 	* recog.h (insn_propagation::apply_to_note): Declare.
+ 	* recog.cc (insn_propagation::apply_to_note): New function.
+ 	* late-combine.cc (insn_combination::substitute_note): Use
+ 	apply_to_note instead of apply_to_rvalue.
+ 	* rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Improve
+ 	dumping of costs for noop moves.
+ 
+ 2024-08-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (extendsidi2): Add ("=r", "f")
+ 	alternative and use movfr2gr.s for it.  The spec clearly states
+ 	movfr2gr.s sign extends the value to GRLEN.
+ 	(fclass_<fmt>): Make the result SImode instead of a floating
+ 	mode.  The fclass results are really not FP values.
+ 	(FCLASS_MASK): New define_int_iterator.
+ 	(fclass_optab): New define_int_attr.
+ 	(<FCLASS_MASK:fclass_optab><ANYF:mode>): New define_expand
+ 	template.
+ 
+ 2024-08-15  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116274
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_move):
+ 	Restrict special case TImode to 128-bit vector conversions via
+ 	V2DI under ix86_pre_reload_split ().
+ 	* config/i386/i386.cc (inline_secondary_memory_needed):
+ 	Movement between GENERAL_REGS and SSE_REGS for TImode doesn't
+ 	need secondary reload.
+ 	* config/i386/i386.md (*extendsidi2_rex64): Add a
+ 	define_peephole2 after it.
+ 
+ 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/116371
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to...
+ 	(svpext_lane): ...this.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename
+ 	to...
+ 	(svpext_lane_impl): ...this and update instantiation accordingly.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to...
+ 	(svpext_lane): ...this.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
+ 	fix_trunc<mode>ti2): Add guard TARGET_FLOAT128_HW.
+ 	* config/rs6000/vsx.md (xsxexpqp_<IEEE128:mode>_<V2DI_DI:mode>,
+ 	xsxsigqp_<IEEE128:mode>_<VEC_TI:mode>, xsiexpqpf_<mode>,
+ 	xsiexpqp_<IEEE128:mode>_<V2DI_DI:mode>, xscmpexpqp_<code>_<mode>,
+ 	*xscmpexpqp, xststdcnegqp_<mode>): Replace guard TARGET_P9_VECTOR
+ 	with TARGET_FLOAT128_HW.
+ 	(xststdc_<mode>, *xststdc_<mode>, isinf<mode>2): Add guard
+ 	TARGET_FLOAT128_HW for the IEEE128 modes.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/97786
+ 	* config/rs6000/vsx.md (isnormal<mode>2): New expand.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/97786
+ 	* config/rs6000/vsx.md (isfinite<mode>2): New expand.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/97786
+ 	* config/rs6000/rs6000.md (constant VSX_TEST_DATA_CLASS_NAN,
+ 	VSX_TEST_DATA_CLASS_POS_INF, VSX_TEST_DATA_CLASS_NEG_INF,
+ 	VSX_TEST_DATA_CLASS_POS_ZERO, VSX_TEST_DATA_CLASS_NEG_ZERO,
+ 	VSX_TEST_DATA_CLASS_POS_DENORMAL, VSX_TEST_DATA_CLASS_NEG_DENORMAL):
+ 	Define.
+ 	(mode_attr sdq, vsx_altivec, wa_v, x): Define.
+ 	(mode_iterator IEEE_FP): Define.
+ 	* config/rs6000/vsx.md (isinf<mode>2): New expand.
+ 	(expand xststdcqp_<mode>, xststdc<sd>p): Combine into...
+ 	(expand xststdc_<mode>): ...this.
+ 	(insn *xststdcqp_<mode>, *xststdc<sd>p): Combine into...
+ 	(insn *xststdc_<mode>): ...this.
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Rename
+ 	CODE_FOR_xststdcqp_kf as CODE_FOR_xststdc_kf,
+ 	CODE_FOR_xststdcqp_tf as CODE_FOR_xststdc_tf.
+ 	* config/rs6000/rs6000-builtins.def: Rename xststdcdp as xststdc_df,
+ 	xststdcsp as xststdc_sf, xststdcqp_kf as xststdc_kf.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* gimple-range-op.cc (class cfn_isfinite): New.
+ 	(op_cfn_finite): New variables.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	CFN_BUILT_IN_ISFINITE.
+ 	* value-range.h (class frange): Declear known_isnormal and
+ 	known_isdenormal_or_zero.
+ 	(frange::known_isnormal): Define.
+ 	(frange::known_isdenormal_or_zero): Define.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* gimple-range-op.cc (class cfn_isfinite): New.
+ 	(op_cfn_finite): New variables.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	CFN_BUILT_IN_ISFINITE.
+ 
+ 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/114678
+ 	* gimple-range-op.cc (class cfn_isinf): New.
+ 	(op_cfn_isinf): New variables.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	CASE_FLT_FN (BUILT_IN_ISINF).
+ 
+ 2024-08-14  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/116015
+ 	* gimplify.cc (gimplify_arg): Do not strip a TARGET_EXPR whose
+ 	initializer is a CONSTRUCTOR.
+ 
+ 2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vecintrin.h (vec_vstbrh): Remove.
+ 	(vec_vstbrf): Remove.
+ 	(vec_vstbrg): Remove.
+ 	(vec_vstbrq): Remove.
+ 	(vec_vstbrf_flt): Remove.
+ 	(vec_vstbrg_dbl): Remove.
+ 	(vec_vsterb): Remove.
+ 	(vec_vsterh): Remove.
+ 	(vec_vsterf): Remove.
+ 	(vec_vsterg): Remove.
+ 	(vec_vsterf_flt): Remove.
+ 	(vec_vsterg_dbl): Remove.
+ 
+ 2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-builtin-types.def (BT_FN_UV16QI_UV2DI_UV2DI):
+ 	New.
+ 	(BT_FN_UV16QI_UV2DI_UV2DI_UV16QI): New.
+ 	* config/s390/s390-builtins.def (s390_vgfmg_128): New.
+ 	(s390_vgfmag_128): New.
+ 	* config/s390/vecintrin.h (vec_gfmsum_128): Use s390_vgfmg_128.
+ 	(vec_gfmsum_accum_128): Use s390_vgfmag_128.
+ 
+ 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/113729
+ 	* config/i386/i386.md (*ashlqi3_1_zext<mode><nf_name>):
+ 	New define_insn.
+ 	(*ashlhi3_1_zext<mode><nf_name>): Ditto.
+ 	(*<insn>qi3_1_zext<mode><nf_name>): Ditto.
+ 	(*<insn>hi3_1_zext<mode><nf_name>): Ditto.
+ 
+ 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/113729
+ 	* config/i386/i386.md (*andqi_1_zext<mode><nf_name>): New
+ 	define_insn.
+ 	(*andhi_1_zext<mode><nf_name>): Ditto.
+ 	(*<code>qi_1_zext<mode><nf_name>): Ditto.
+ 	(*<code>hi_1_zext<mode><nf_name>): Ditto.
+ 	(*negqi_1_zext<mode><nf_name>): Ditto.
+ 	(*neghi_1_zext<mode><nf_name>): Ditto.
+ 	(*one_cmplqi2_1_zext<mode>): Ditto.
+ 	(*one_cmplhi2_1_zext<mode>): Ditto.
+ 
+ 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/113729
+ 	* config/i386/i386.md (*subqi_1_zext<mode><nf_name>): New
+ 	define_insn.
+ 	(*subhi_1_zext<mode><nf_name>): Ditto.
+ 	(*addqi3_carry_zext<mode>): Ditto.
+ 	(*addhi3_carry_zext<mode>): Ditto.
+ 	(*addqi3_carry_zext<mode>_0): Ditto.
+ 	(*addhi3_carry_zext<mode>_0): Ditto.
+ 	(*addqi3_carry_zext<mode>_0r): Ditto.
+ 	(*addhi3_carry_zext<mode>_0r): Ditto.
+ 	(*subqi3_carry_zext<mode>): Ditto.
+ 	(*subhi3_carry_zext<mode>): Ditto.
+ 	(*subqi3_carry_zext<mode>_0): Ditto.
+ 	(*subhi3_carry_zext<mode>_0): Ditto.
+ 	(*subqi3_carry_zext<mode>_0r): Ditto.
+ 	(*subhi3_carry_zext<mode>_0r): Ditto.
+ 
+ 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/113729
+ 	* config/i386/i386.md (*addqi_1_zext<mode><nf_name>): New
+ 	define.
+ 	(*addhi_1_zext<mode><nf_name>): Ditto.
+ 
+ 2024-08-14  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* genoutput.cc (struct operand_data): Add member 'eq_next' to
+ 	point to the next member with the same hash value in the
+ 	hash table.
+ 	(compare_operands): Move the comparison of the mode to the very
+ 	beginning to accelerate the comparison of the two operands.
+ 	(struct operand_data_hasher): New, a class that takes into account
+ 	the necessary elements for comparing the equality of two operands
+ 	in its hash value.
+ 	(operand_data_hasher::hash): New.
+ 	(operand_data_hasher::equal): New.
+ 	(operand_datas): New, hash table of konwn pattern operands.
+ 	(place_operands): Use a hash table instead of traversing the array
+ 	to find the same operand.
+ 	(main): Add initialization of the hash table 'operand_datas'.
+ 
+ 2024-08-14  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-08-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* rtlanal.cc (subreg_regno): Update comment.
+ 	* final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get
+ 	the base regsiter for paradoxical subregs.
+ 
+ 2024-08-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116174
+ 	* config/i386/i386.cc (ix86_align_loops): Move this to ..
+ 	* config/i386/i386-features.cc (ix86_align_loops): .. here.
+ 	(class pass_align_tight_loops): New class.
+ 	(make_pass_align_tight_loops): New function.
+ 	* config/i386/i386-passes.def: Insert pass_align_tight_loops
+ 	after pass_insert_endbr_and_patchable_area.
+ 	* config/i386/i386-protos.h (make_pass_align_tight_loops): New
+ 	declare.
+ 
+ 2024-08-13  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	PR tree-optimization/116353
+ 	* ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Check
+ 	noce_can_force_operand.
+ 
+ 2024-08-13  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (legitimize_move): extrac -> extract.
+ 	(expand_vec_cmp_float): Remove duplicate vmnor.mm.
+ 	* config/riscv/riscv-vector-builtins.cc: ins -> insns.
+ 	* config/riscv/riscv.cc (riscv_init_machine_status): mwrvv -> mrvv.
+ 	* config/riscv/vector-iterators.md: RVVM8QImde -> RVVM8QImode
+ 	* config/riscv/vector.md: Replaced non-existant vsetivl with vsetivli.
+ 
+ 2024-08-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/116103
+ 	* internal-fn.cc (type_strictly_matches_mode_p): Add handling
+ 	for vector bool type.
+ 
+ 2024-08-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR rtl-optimization/116170
+ 	* lra-constraints.cc (curr_insn_transform): Don't emit move back to
+ 	old operand if it's CONSTANT_P.
+ 
+ 2024-08-13  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* config/avr/avr.opt.urls: Regenerate.
+ 
+ 2024-08-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/114759
+ 	* config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move
+ 	the disabling of shrink-wrapping from here....
+ 	* config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here.
+ 
+ 2024-08-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* rtlanal.cc (subreg_regno): Update comment.
+ 	* final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get
+ 	the base regsiter for paradoxical subregs.
+ 
+ 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* ifcvt.cc (need_cmov_or_rewire): Renamed init_noce_multiple_sets_info.
+ 	(init_noce_multiple_sets_info): Initialize noce_multiple_sets_info.
+ 	(noce_convert_multiple_sets_1): Use noce_multiple_sets_info and handle
+ 	rewiring of multiple registers.
+ 	(noce_convert_multiple_sets): Updated to use noce_multiple_sets_info.
+ 	* ifcvt.h (struct noce_multiple_sets_info): Introduce new struct
+ 	noce_multiple_sets_info to store info for noce_convert_multiple_sets.
+ 
+ 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* ifcvt.cc (try_emit_cmove_seq): Modify comments.
+ 	(noce_convert_multiple_sets_1): Modify comments.
+ 	(bb_ok_for_noce_convert_multiple_sets): Allow more operations.
+ 
+ 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* ifcvt.cc (check_for_cc_cmp_clobbers): Use modified_in_p instead.
+ 	(noce_convert_multiple_sets_1): Don't use seq2 if it clobbers cc_cmp.
+ 	Punt if seq clobbers cond. Refactor the code that sets read_comparison.
+ 
+ 2024-08-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/85624
+ 	* config/avr/avr.md (setmemhi): Set alignment to 0.
+ 
+ 2024-08-12  Joern Rennecke  <joern.rennecke@riscy-ip.com>
+ 
+ 	* except.cc (sjlj_emit_function_enter):
+ 	Set fn_begin_outside_block again if encountering a jump instruction.
+ 
+ 2024-08-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR other/30920
+ 	* splay-tree-utils.h (rooted_splay_tree::insert_relative)
+ 	(rooted_splay_tree::lookup_le): New functions.
+ 	(rooted_splay_tree::remove_root_and_splay_next): Likewise.
+ 	* splay-tree-utils.tcc (rooted_splay_tree::insert_relative): New
+ 	function, extracted from...
+ 	(rooted_splay_tree::insert): ...here.
+ 	(rooted_splay_tree::lookup_le): New function.
+ 	(rooted_splay_tree::remove_root_and_splay_next): Likewise.
+ 	* tree-ssa-sccvn.cc (pd_range::m_children): New member variable.
+ 	(vn_walk_cb_data::vn_walk_cb_data): Initialize first_range.
+ 	(vn_walk_cb_data::known_ranges): Use a default_splay_tree.
+ 	(vn_walk_cb_data::~vn_walk_cb_data): Remove freeing of known_ranges.
+ 	(pd_range_compare, pd_range_alloc, pd_range_dealloc): Delete.
+ 	(vn_walk_cb_data::push_partial_def): Rewrite splay tree operations
+ 	to use splay-tree-utils.h.
+ 	* rtl-ssa/accesses.cc (function_info::add_use): Use insert_relative.
+ 
+ 2024-08-12  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(aarch64_simd_imm_shl<mode><vczle><vczbe>): Rewrite to new
+ 	syntax.  Add =w,w,vs1 alternative.
+ 	* config/aarch64/constraints.md (vs1): New constraint.
+ 
+ 2024-08-12  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Handle
+ 	avx10.2.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVX10_2_256_SET): New.
+ 	(OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_1_256_UNSET):
+ 	Add OPTION_MASK_ISA2_AVX10_2_256_UNSET.
+ 	(OPTION_MASK_ISA2_AVX10_1_512_UNSET):
+ 	Add OPTION_MASK_ISA2_AVX10_2_512_UNSET.
+ 	(OPTION_MASK_ISA2_AVX10_2_256_UNSET): New.
+ 	(OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto.
+ 	(ix86_handle_option): Handle avx10.2-256 and avx10.2-512.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AVX10_2_256 and FEATURE_AVX10_2_512.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for
+ 	avx10.2-256 and avx10.2-512.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__AVX10_2_256__ and __AVX10_2_512__.
+ 	* config/i386/i386-isa.def (AVX10_2): Add DEF_PTA(AVX10_2_256)
+ 	and DEF_PTA(AVX10_2_512).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -mavx10.2-256 and
+ 	-mavx10.2-512.
+ 	(ix86_valid_target_attribute_inner_p): Handle avx10.2-256 and
+ 	avx10.2-512.
+ 	* config/i386/i386.opt: Add option -mavx10.2, -mavx10.2-256 and
+ 	-mavx10.2-512.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* doc/extend.texi: Document avx10.2, avx10.2-256 and avx10.2-512.
+ 	* doc/invoke.texi: Document -mavx10.2, -mavx10.2-256 and
+ 	-mavx10.2-512.
+ 	* doc/sourcebuild.texi: Document target avx10.2, avx10.2-256,
+ 	avx10.2-512.
+ 
+ 2024-08-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/116275
+ 	* config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): New
+ 	define_insn_and_split to handle the STV conversion of the DImode
+ 	pattern *extendsi2_doubleword_highpart.
+ 
+ 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (insn): Added rotatert rotr pairs.
+ 	* config/loongarch/simd.md (rotr<mode>3): Remove to ...
+ 	(<optab><mode>3): This.
+ 
+ 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/114189
+ 	* config/loongarch/lasx.md (vcondu<LASX:mode><ILASX:mode>): Delete.
+ 	(vcond<LASX:mode><LASX_2:mode>): Likewise.
+ 	* config/loongarch/lsx.md (vcondu<LSX:mode><ILSX:mode>): Likewise.
+ 	(vcond<LSX:mode><LSX_2:mode>): Likewise.
+ 
+ 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (xvandn<mode>3): Rename to ...
+ 	(andn<mode>3): This.
+ 	(xvorn<mode>3): Rename to ...
+ 	(iorn<mode>3): This.
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(CODE_FOR_lsx_vandn_v): Defined as the modified name.
+ 	(CODE_FOR_lsx_vorn_v): Likewise.
+ 	(CODE_FOR_lasx_xvandn_v): Likewise.
+ 	(CODE_FOR_lasx_xvorn_v): Likewise.
+ 	(loongarch_expand_builtin_insn): When the builtin function to be
+ 	called is __builtin_lasx_xvandn or __builtin_lsx_vandn, swap the
+ 	two operands.
+ 	* config/loongarch/loongarch.md (<optab>n<mode>): Rename to ...
+ 	(<optab>n<mode>3): This.
+ 	* config/loongarch/lsx.md (vandn<mode>3): Rename to ...
+ 	(andn<mode>3): This.
+ 	(vorn<mode>3): Rename to ...
+ 	(iorn<mode>3): This.
+ 
+ 2024-08-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt (mlra): Set Undocumented flag.
+ 
+ 2024-08-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (ra_in_progress): New static function.
+ 	(avr_legitimate_address_p, avr_addr_space_legitimate_address_p)
+ 	(extra_constraint_Q): Use it with -mlog=.
+ 
+ 2024-08-10  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* doc/cfg.texi: Fix references to dom_walker.
+ 
+ 2024-08-10  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/113934
+ 	* config/avr/avr.opt (-mlra): New target option.
+ 	* config/avr/avr.cc (avr_use_lra_p): New function.
+ 	(TARGET_LRA_P): Use it.
+ 	(avr_hard_regno_mode_ok) [lra]: Don't disallow 4-byte modes for X.
+ 
+ 2024-08-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116283
+ 	* config/riscv/bitmanip.md (Zbs combiner patterns/splitters): Mask the
+ 	bit position in the split code appropriately.
+ 
+ 2024-08-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Revert:
+ 	2024-08-08  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/116028
+ 	* lra-constraints.cc (split_reg): Spill register before call
+ 	insn.
+ 	(latest_call_insn): New variable.
+ 	(inherit_in_ebb): Track the latest call insn.
+ 
+ 2024-08-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/114855
+ 	* gimple-range-gori.cc (gori_compute::gori_compute): Adjust
+ 	ranger_recompute_depth limit based on the number of BBs.
+ 	(gori_compute::may_recompute_p): Use previosuly calculated value.
+ 	* gimple-range-gori.h (gori_compute::m_recompute_depth): New.
+ 
+ 2024-08-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/114855
+ 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Do not
+ 	process equivalencies if the number of blocks is too high.
+ 
+ 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_compute_frame_info): Update
+ 	outgoing args size.
+ 	(riscv_stack_clash_protection_alloca_probe_range): New.
+ 	(TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New.
+ 	* config/riscv/riscv.h
+ 	(STACK_CLASH_MIN_BYTES_OUTGOING_ARGS): New.
+ 	(STACK_DYNAMIC_OFFSET): New.
+ 
+ 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_allocate_and_probe_stack_loop): New function.
+ 	(riscv_v_adjust_scalable_frame): Add stack-clash protection
+ 	support.
+ 	(riscv_allocate_and_probe_stack_space): Move the probe loop
+ 	implementation to riscv_allocate_and_probe_stack_loop.
+ 	* config/riscv/riscv.h: Define RISCV_STACK_CLASH_VECTOR_CFA_REGNUM.
+ 
+ 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_option_override): Enforce that interval is the same size as
+ 	guard size.
+ 	(riscv_allocate_and_probe_stack_space): New function.
+ 	(riscv_expand_prologue): Call riscv_allocate_and_probe_stack_space
+ 	to the final allocation of the stack and add stack-clash dump
+ 	information.
+ 	* config/riscv/riscv.h: Define STACK_CLASH_CALLER_GUARD and
+ 	STACK_CLASH_MAX_UNROLL_PAGES.
+ 
+ 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Move
+ 	closer to riscv_expand_prologue.
+ 
+ 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_stack_tie): Pass the
+ 	register to be tied to the stack pointer as argument.
+ 	* config/riscv/riscv.md (stack_tie<mode>): Don't match equal
+ 	operands.
+ 
+ 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116287
+ 	* config/i386/i386.cc (ix86_fold_builtin) <case IX86_BUILTIN_BEXTR32>:
+ 	When folding into zero without checking whether first argument is
+ 	constant, use omit_one_operand.
+ 	(ix86_fold_builtin) <case IX86_BUILTIN_BZHI32>: Likewise.
+ 
+ 2024-08-09  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_asm_trampoline_template): Add .align.
+ 	* config/gcn/gcn.h (TRAMPOLINE_SIZE): Increase to 40.
+ 
+ 2024-08-09  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (*load_<mode>_libgcc, *xload_<mode>_libgcc):
+ 	Tidy up code.
+ 
+ 2024-08-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/constraints.md (Dm): Match CONSTM1_RTX rather
+ 	CONST1_RTX.
+ 
+ 2024-08-08  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/116229
+ 	* config/aarch64/aarch64-simd.md (aarch64_fnegv2di2<vczle><vczbe>): New.
+ 	* config/aarch64/aarch64.cc (aarch64_maybe_generate_simd_constant):
+ 	Update call to gen_aarch64_fnegv2di2.
+ 	* config/aarch64/iterators.md: New UNSPEC_FNEG.
+ 
+ 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (Mem_Insn::Mem_Insn): Don't consider MEMs
+ 	that are avr_mem_memx_p or avr_load_libgcc_p.
+ 
+ 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Built-in Functions) <mask1>: Fix a typo.
+ 
+ 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_insn_has_reg_unused_note_p): New function.
+ 	(_reg_unused_after): Use it to recognize more cases.
+ 	(avr_out_lpm_no_lpmx) [POST_INC]: Use reg_unused_after.
+ 
+ 2024-08-08  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_conditional_register_usage): Fix registers
+ 	remaining after maximum allocation using TARGET_VGPR_GRANULARITY.
+ 
+ 2024-08-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/constraints.md (th_m_noi): New constraint.
+ 	* config/riscv/riscv.md: Adjust movdf_hardfloat_rv32 for
+ 	XTheadMemIdx.
+ 
+ 2024-08-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/116131
+ 	* config/riscv/thead.cc (th_memidx_classify_address_index):
+ 	Recognize all possible XTheadMemIdx memory operand structures.
+ 	(th_fmemidx_output_index): Do strict classification.
+ 	* config/riscv/thead.md (*th_memidx_operand): Remove.
+ 	(TARGET_XTHEADMEMIDX): Likewise.
+ 	(TARGET_HARD_FLOAT && TARGET_XTHEADFMEMIDX): Likewise.
+ 	(!TARGET_64BIT && TARGET_XTHEADMEMIDX): Likewise.
+ 	(*th_memidx_I_a): Likewise.
+ 	(*th_memidx_I_b): Likewise.
+ 	(*th_memidx_I_c): Likewise.
+ 	(*th_memidx_US_a): Likewise.
+ 	(*th_memidx_US_b): Likewise.
+ 	(*th_memidx_US_c): Likewise.
+ 	(*th_memidx_UZ_a): Likewise.
+ 	(*th_memidx_UZ_b): Likewise.
+ 	(*th_memidx_UZ_c): Likewise.
+ 	(*th_fmemidx_movsf_hardfloat): Likewise.
+ 	(*th_fmemidx_movdf_hardfloat_rv64): Likewise.
+ 	(*th_fmemidx_I_a): Likewise.
+ 	(*th_fmemidx_I_c): Likewise.
+ 	(*th_fmemidx_US_a): Likewise.
+ 	(*th_fmemidx_US_c): Likewise.
+ 	(*th_fmemidx_UZ_a): Likewise.
+ 	(*th_fmemidx_UZ_c): Likewise.
+ 
+ 2024-08-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-vect-patterns.cc (NUM_PATTERNS): Delete.
+ 	(vect_pattern_recog_1): Constify and change
+ 	recog_func to a reference.
+ 	(vect_pattern_recog): Use range-based loop over
+ 	vect_vect_recog_func_ptrs.
+ 
+ 2024-08-08  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.h (RISCV_DWARF_VLENB): Delete.
+ 
+ 2024-08-08  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_trampoline_init): Re-enable trampolines.
+ 
+ 2024-08-08  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116240
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ensure object is a
+ 	comparison before looking at its arguments.
+ 
+ 2024-08-08  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	PR tree-optimization/98138
+ 	* tree-vect-slp.cc: Avoid duplicates in two_operators nodes.
+ 
+ 2024-08-08  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.cc (ix86_mode_can_transfer_bits): Use E_?Fmode
+ 	enumeration constants in switch statement.
+ 
+ 2024-08-08  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/116028
+ 	* lra-constraints.cc (split_reg): Spill register before call
+ 	insn.
+ 	(latest_call_insn): New variable.
+ 	(inherit_in_ebb): Track the latest call insn.
+ 
+ 2024-08-08  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New extension.
+ 	* config/riscv/riscv.opt: New mask.
+ 
+ 2024-08-07  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/116237
+ 	* config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for
+ 	weak_framework.
+ 	* config/darwin.opt: Handle weak_framework driver option.
+ 
+ 2024-08-07  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	PR ipa/96265
+ 	PR ipa/111937
+ 	* data-streamer-in.cc (streamer_read_poly_uint64): Remove code for
+ 	streaming, and call poly_int_read_common instead.
+ 	(streamer_read_poly_int64): Likewise.
+ 	* data-streamer.cc (host_num_poly_int_coeffs): Conditionally define
+ 	new variable if ACCEL_COMPILER is defined.
+ 	* data-streamer.h (host_num_poly_int_coeffs): Declare.
+ 	(poly_int_read_common): New function template.
+ 	(bp_unpack_poly_value): Remove code for streaming and call
+ 	poly_int_read_common instead.
+ 	* lto-streamer-in.cc (lto_input_mode_table): Stream-in host
+ 	NUM_POLY_INT_COEFFS into host_num_poly_int_coeffs if ACCEL_COMPILER
+ 	is defined.
+ 	* lto-streamer-out.cc (lto_write_mode_table): Stream out
+ 	NUM_POLY_INT_COEFFS if offloading is enabled.
+ 	* poly-int.h (MAX_NUM_POLY_INT_COEFFS_BITS): New macro.
+ 	* tree-streamer-in.cc (lto_input_ts_poly_tree_pointers): Adjust
+ 	streaming-in of poly_int.
+ 
+ 2024-08-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116219
+ 	* gimple-expr.cc (remove_suffix): Formatting fixes.
+ 	(create_tmp_var_name): Don't call clean_symbol_name.
+ 	* gimplify.cc (gimplify_init_constructor): When promoting automatic
+ 	DECL_NAMELESS vars to static, don't preserve their DECL_NAME.
+ 
+ 2024-08-07  Julian Brown  <julian@codesourcery.com>
+ 	    Tobias Burnus  <tobias@baylibre.com>
+ 
+ 	* builtins.def (DEF_GOMP_BUILTIN_COMPILER): Define
+ 	DEF_GOMP_BUILTIN_COMPILER to handle the non-prefix version.
+ 	* gimple-fold.cc (gimple_fold_builtin_omp_is_initial_device): New.
+ 	(gimple_fold_builtin): Call it.
+ 	* omp-builtins.def (BUILT_IN_OMP_IS_INITIAL_DEVICE): Define.
+ 	* tree.cc (get_file_function_name): Support names for on-target
+ 	constructor/destructor functions.
+ 
+ 2024-08-07  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/altivec.md (vs<SLDB_lr>db_<mode>): Change
+ 	define_insn iterator to VEC_IC.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_vsldoi_v1ti,
+ 	__builtin_vsx_xxsldwi_v1ti, __builtin_altivec_vsldb_v1ti,
+ 	__builtin_altivec_vsrdb_v1ti): New builtin definitions.
+ 	* config/rs6000/rs6000-overload.def (vec_sld, vec_sldb, vec_sldw,
+ 	vec_sll, vec_slo, vec_srdb, vec_srl, vec_sro): New overloaded
+ 	definitions.
+ 	* doc/extend.texi (vec_sld, vec_sldb, vec_sldw, vec_sll, vec_slo,
+ 	vec_srdb, vec_srl, vec_sro): Add documentation for new overloaded
+ 	built-ins.
+ 
+ 2024-08-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116258
+ 	* tree-vect-generic.cc (expand_vector_operations_1): Do not
+ 	lower PAREN_EXPR.
+ 
+ 2024-08-07  Xi Ruoyao  <xry111@xry111.site>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116142
+ 	* tree-vect-stmts.cc (supportable_widening_operation): Remove an
+ 	redundant and incorrect vect_reduction_def check, and fix the
+ 	operand of another vect_reduction_def check.
+ 
+ 2024-08-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116166
+ 	* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
+ 	Add limit parameter.
+ 	(jump_threader::thread_through_normal_block): Likewise.
+ 	* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
+ 	Honor and decrement limit parameter.
+ 	(jump_threader::thread_through_normal_block): Likewise.
+ 	(jump_threader::thread_across_edge): Initialize limit from
+ 	param_max_jump_thread_paths and pass it down to workers.
+ 
+ 2024-08-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/116202
+ 	* tree-vect-patterns.cc (vect_recog_sat_trunc_pattern): Add the
+ 	type_has_mode_precision_p check for the lhs type.
+ 
+ 2024-08-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/116064
+ 	* diagnostic.cc (diagnostic_context::initialize): Set
+ 	m_adjust_diagnostic_info.
+ 	(diagnostic_context::report_diagnostic): Call
+ 	m_adjust_diagnostic_info.
+ 	* diagnostic.h (diagnostic_context::m_adjust_diagnostic_info):
+ 	New data member.
+ 	* doc/invoke.texi (-Wno-template-body): Document.
+ 	(-fpermissive): Mention -Wtemplate-body.
+ 
+ 2024-08-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116177
+ 	* diagnostic-format-sarif.cc (sarif_invocation::prepare_to_flush):
+ 	If the diagnostics would lead to us exiting with a failure code,
+ 	then emit "executionSuccessful": False (SARIF v2.1.0 section
+ 	§3.20.14).
+ 	* diagnostic.cc (diagnostic_context::execution_failed_p): New.
+ 	* diagnostic.h (diagnostic_context::execution_failed_p): New decl.
+ 	* toplev.cc (toplev::main): Use it for determining returned value.
+ 
+ 2024-08-06  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add
+ 	gather_load_x32_init_cost and gather_load_x64_init_cost.
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs): Add
+ 	m_sve_gather_scatter_init_cost.
+ 	(aarch64_vector_costs::add_stmt_cost): Use them.
+ 	(aarch64_vector_costs::finish_cost): Likewise.
+ 	* config/aarch64/tuning_models/a64fx.h: Update.
+ 	* config/aarch64/tuning_models/cortexx925.h: Update.
+ 	* config/aarch64/tuning_models/generic.h: Update.
+ 	* config/aarch64/tuning_models/generic_armv8_a.h: Update.
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: Update.
+ 	* config/aarch64/tuning_models/neoverse512tvb.h: Update.
+ 	* config/aarch64/tuning_models/neoversen2.h: Update.
+ 	* config/aarch64/tuning_models/neoversen3.h: Update.
+ 	* config/aarch64/tuning_models/neoversev1.h: Update.
+ 	* config/aarch64/tuning_models/neoversev2.h: Update.
+ 	* config/aarch64/tuning_models/neoversev3.h: Update.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Update.
+ 
+ 2024-08-06  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Limitations): Rephrase. Remove invalid link.
+ 
+ 2024-08-06  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/113384
+ 	* config/pa/pa.cc (hppa_legitimize_address): Add check to
+ 	ensure constant is an integral multiple of shift the value.
+ 
+ 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc (num_occurences_in_str): Rename...
+ 	(num_occurrences_in_str): here.
+ 	(riscv_process_target_attr): Update num_occurences_in_str callsite.
+ 	* config/riscv/riscv-v.cc (emit_vec_widden_cvt_x_f): widden -> widen.
+ 	(emit_vec_widen_cvt_x_f): Ditto.
+ 	(emit_vec_widden_cvt_f_f): Ditto.
+ 	(emit_vec_widen_cvt_f_f): Ditto.
+ 	(emit_vec_rounding_to_integer): Update *widden* callsites.
+ 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Update
+ 	required_ext_to_isa_name callsite and fix xtheadvector typo.
+ 	* config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): Rename...
+ 	(required_ext_to_isa_name): here.
+ 	* config/riscv/riscv_th_vector.h: Fix endif label.
+ 	* config/riscv/vector-crypto.md: boardcast_scalar -> broadcast_scalar.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/arch-canonicalize: Fix typos in comments.
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/riscv-avlprop.cc (avl_can_be_propagated_p): Ditto.
+ 	(pass_avlprop::get_vlmax_ta_preferred_avl): Ditto.
+ 	* config/riscv/riscv-modes.def (ADJUST_FLOAT_FORMAT): Ditto.
+ 	(VLS_MODES): Ditto.
+ 	* config/riscv/riscv-opts.h (TARGET_ZICOND_LIKE): Ditto.
+ 	(enum rvv_vector_bits_enum): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): Ditto.
+ 	(enum insn_type): Ditto.
+ 	* config/riscv/riscv-sr.cc (riscv_sr_match_epilogue): Ditto.
+ 	* config/riscv/riscv-string.cc (expand_block_move): Ditto.
+ 	* config/riscv/riscv-v.cc (rvv_builder::is_repeating_sequence): Ditto.
+ 	(rvv_builder::single_step_npatterns_p): Ditto.
+ 	(calculate_ratio): Ditto.
+ 	(expand_const_vector): Ditto.
+ 	(shuffle_merge_patterns): Ditto.
+ 	(shuffle_compress_patterns): Ditto.
+ 	(expand_select_vl): Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (function_builder::add_function): Ditto.
+ 	(resolve_overloaded_builtin): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (vbool1_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vfloat16m8_t): Ditto.
+ 	(unsigned_vector): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
+ 	* config/riscv/riscv-vector-costs.cc (get_store_value): Ditto.
+ 	(costs::analyze_loop_vinfo): Ditto.
+ 	(costs::add_stmt_cost): Ditto.
+ 	* config/riscv/riscv.cc (riscv_build_integer): Ditto.
+ 	(riscv_vector_type_p): Ditto.
+ 	* config/riscv/thead.cc (th_mempair_output_move): Ditto.
+ 	* config/riscv/thead.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 	* config/riscv/zc.md: Ditto.
+ 
+ 2024-08-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_v2di_ashiftrt): New
+ 	function refactored from define_expand ashrv2di3.
+ 	* config/i386/i386-features.cc (general_scalar_to_vector_candidate_p)
+ 	<case ASHIFTRT>: Handle like other shifts and rotates.
+ 	* config/i386/i386-protos.h (ix86_expand_v2di_ashiftrt): Prototype.
+ 	* config/i386/sse.md (ashrv2di3): Call ix86_expand_v2di_ashiftrt.
+ 	(*ashrv2di3): New define_insn_and_split to enable creation by stv2
+ 	pass, and splitting during split1 reusing ix86_expand_v2di_ashiftrt.
+ 
+ 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116152
+ 	* config/riscv/riscv.cc (riscv_option_override): Fix url
+ 	formatting.
+ 
+ 2024-08-06  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* gimple-ssa-sccopy.cc (class scc_copy_prop): New class.
+ 	(replace_scc_by_value): Put into...
+ 	(scc_copy_prop::replace_scc_by_value): ...scc_copy_prop.
+ 	(sccopy_visit_op): Put into...
+ 	(scc_copy_prop::visit_op): ...scc_copy_prop.
+ 	(sccopy_propagate): Put into...
+ 	(scc_copy_prop::propagate): ...scc_copy_prop.
+ 	(init_sccopy): Replace by...
+ 	(scc_copy_prop::scc_copy_prop): ...the construtor.
+ 	(finalize_sccopy): Replace by...
+ 	(scc_copy_prop::~scc_copy_prop): ...the destructor.
+ 	(pass_sccopy::execute): Use scc_copy_prop.
+ 
+ 2024-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116241
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle
+ 	non-COND_EXPR nodes in SLP reduction chain following.
+ 
+ 2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/116224
+ 	* wide-int.cc (wi::mul_internal): If prec isn't multiple of
+ 	HOST_BITS_PER_WIDE_INT, for need_overflow checking only look at
+ 	the least significant prec bits starting with r[half_blocks_needed].
+ 
+ 2024-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/111821
+ 	* expmed.cc (store_integral_bit_field): Terminate the
+ 	word-wise copy loop when we get out of the destination
+ 	and do a forward copy.  Skip the word if it would be
+ 	outside of the destination in case of a backward copy.
+ 
+ 2024-08-06  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/predicates.md (any_operand): Add const_vector.
+ 
+ 2024-08-06  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/115228
+ 	* tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Add
+ 	missed opcodes that involve widening operation.
+ 
+ 2024-08-06  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/115707
+ 	* tree-vect-patterns.cc (vect_look_through_possible_promotion): Allow
+ 	unsigned-to-signed promotion.
+ 
+ 2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/116189
+ 	* config/sh/sh.cc (sh_recog_treg_set_expr): Don't call make_insn_raw,
+ 	make the insn with a fake uid.
+ 
+ 2024-08-05  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	PR target/116152
+ 	* config/riscv/riscv.cc (riscv_option_override): Add deprecation
+ 	warning.
+ 
+ 2024-08-05  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_const_type): Handle missing
+ 	DW_AT_type attribute.
+ 	(get_type_num_volatile_type): Likewise.
+ 
+ 2024-08-05  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/atomic.md ("atomic_add<AMO:mode>"): Remove insn.
+ 	("atomic_and<AMO:mode>"): Likewise
+ 	("atomic_or<AMO:mode>"): Likewise.
+ 	("atomic_xor<AMO:mode>"): Likewise.
+ 
+ 2024-08-05  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.md (*and<mode>_compare0): Change attribute.
+ 
+ 2024-08-05  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* gimple-ssa-sccopy.cc: Move a misplaced comment.
+ 
+ 2024-08-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR tree-optimization/116139
+ 	* tree-ssa-reassoc.cc (get_reassociation_width): Move width_mult
+ 	<= width comparison to if condition rather than assert.
+ 
+ 2024-08-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Revert:
+ 	2024-08-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/116145
+ 	* rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code
+ 	movement if MEM_READONLY_P is also true.
+ 
+ 2024-08-05  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* gdbhooks.py: Add attempted call to "on-gcc-hooks-load" once
+ 	we've finished loading the hooks.
+ 
+ 2024-08-05  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* gdbhooks.py (GCCDotCmd): New.
+ 	(gcc_dot_cmd): New. Use it ...
+ 	(DotFn.invoke): ... here.
+ 
+ 2024-08-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/116179
+ 	* ira.cc (split_live_ranges_for_shrink_wrap): For the uses loop,
+ 	only look at non-debug insns.
+ 
+ 2024-08-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116199
+ 	* reload.cc (operands_match_p): Verify subreg is expressable before
+ 	trying to simplify and match it to another operand.
+ 
+ 2024-08-02  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Document that -Wdangling-reference is
+ 	enabled by -Wextra.
+ 
+ 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116058
+ 	* genemit.cc (struct clobber_pat): Change pattern to be rtvec.
+ 	Add code field.
+ 	(gen_insn): Look through an explicit parallel if there was one.
+ 	Update store to new clobber_pat.
+ 	(output_add_clobbers): Update call to gen_exp for the changed
+ 	clobber_pat.
+ 
+ 2024-08-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync-rvwmo.md: Add conditional length attributes.
+ 	* config/riscv/sync-ztso.md: Ditto.
+ 	* config/riscv/sync.md: Fix incorrect insn length attributes and
+ 	reformat existing conditional checks.
+ 
+ 2024-08-02  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
+ 	fusion logic.
+ 	* config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
+ 	(cmp+cset): Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Enable logic in
+ 	field fusible_ops.
+ 
+ 2024-08-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/116145
+ 	* rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code
+ 	movement if MEM_READONLY_P is also true.
+ 
+ 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116156
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Don't add
+ 	uses if the statement was a debug statement.
+ 
+ 2024-08-02  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/constraints.md: Fixed the comment/naming for je/jM/jO.
+ 	* config/i386/predicates.md (apx_ndd_memory_operand): Renamed and
+ 	fixed the comment.
+ 	(apx_evex_memory_operand): New name.
+ 	(apx_ndd_add_memory_operand): Ditto.
+ 	(apx_evex_add_memory_operand): Ditto.
+ 
+ 2024-08-02  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (nf_mem_constraint): Fixed the constraint
+ 	for the define_subst_attr.
+ 	(nf_mem_constraint): Added new define_subst_attr.
+ 	(*add<mode>_1<nf_name>): Fixed the constraint.
+ 
+ 2024-08-02  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/genopts/gen-evolution.awk: Do not use
+ 	"length()" to compute the size of an array.
+ 
+ 2024-08-02  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/113860
+ 	* config/aarch64/aarch64-simd.md (popcount<mode>2): Add TARGET_SVE
+ 	support.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Use new
+ 	iterator SVE_VDQ_I.
+ 	* config/aarch64/iterators.md (SVE_VDQ_I): New mode iterator.
+ 	(VPRED): Add V8QI, V16QI, V4HI, V8HI and V2SI.
+ 
+ 2024-08-01  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/116149
+ 	* config/riscv/vector.md: Fix mode_idx attribute of scalar
+ 	widen add/sub variants.
+ 
+ 2024-08-01  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	PR target/116111
+ 	* config/riscv/riscv.cc (riscv_option_override): Add error.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (cortex-x925): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/tuning_models/cortexx925.h: New file.
+ 	* config/aarch64/aarch64.cc: Use it.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/tuning_models/neoversen2.h: Update costs.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: Update costs.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (neoverse-n3, cortex-a725): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/tuning_models/neoversen3.h: New file.
+ 	* config/aarch64/aarch64.cc: Use it.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (neoverse-v3ae): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: New file.
+ 	* config/aarch64/aarch64.cc: Use it.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (cortex-x4): Update.
+ 	(neoverse-v3): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/tuning_models/neoversev3.h: New file.
+ 	* config/aarch64/aarch64.cc: Use it.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (cortex-x3): Use Neoverse-V2 costs.
+ 	* config/aarch64/tuning_models/neoversev2.h: Update costs.
+ 
+ 2024-08-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116120
+ 	* match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Add test for `x != y`
+ 	in result.
+ 	(`(a ? x : y) eq/ne (b ? y : x)`): Add test for `x == y` in result.
+ 
+ 2024-08-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116096
+ 	* config/i386/constraints.md (Wc): New constraint for integer
+ 	1 or -1.
+ 	* config/i386/i386.md (ashl<mode>3_doubleword): Refine
+ 	constraint with Wc.
+ 
+ 2024-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114659
+ 	* tree-ssa-sccvn.cc (visit_reference_op_load): Do not
+ 	prevent punning from modes with padding here, but ...
+ 	(vn_reference_eq): ... ensure this here, also honoring
+ 	types with modes that cannot act as bit container.
+ 
+ 2024-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (TARGET_MODE_CAN_TRANSFER_BITS): Define.
+ 	(ix86_mode_can_transfer_bits): New function.
+ 
+ 2024-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* target.def (mode_can_transfer_bits): New target hook.
+ 	* target.h (mode_can_transfer_bits): New function wrapping the
+ 	hook and providing default behavior.
+ 	* doc/tm.texi.in: Update.
+ 	* doc/tm.texi: Re-generate.
+ 
+ 2024-08-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (cbranch<mode>4_insn): Split to a test of the
+ 	high part against 0 if possible.
+ 
+ 2024-08-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/constraints.md (YMM): New constraint.
+ 	* config/avr/avr.md (cmp<mode>3, *cmp<mode>3)
+ 	(cbranch<mode>4_insn): Allow YMM where M is allowed.
+ 
+ 2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/115981
+ 	* config/i386/sse.md
+ 	(*<extract_type>_vinsert<shuffletype><extract_suf>_0): Swap the
+ 	first two VEC_MERGE operands, renumber match_operands and test
+ 	for 0xF or 0x3 rather than 0xFFF0 or 0xFC immediate.
+ 
+ 2024-08-01  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Richard Biener  <rguenther@suse.de
+ 
+ 	PR middle-end/115637
+ 	* gimplify.cc (gimplify_body): Fix macro name in the comment.
+ 	* omp-offload.cc (find_link_var_op): Rename to ...
+ 	(process_link_var_op): ... this. Replace value expr.
+ 	(pass_omp_target_link::execute): Update walk_gimple_stmt call.
+ 
+ 2024-08-01  Lingling Kong  <lingling.kong@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/113744
+ 	* config/i386/i386.md (*add<mode>_4): Remove ndd support.
+ 	(*adddi_4): Ditto.
+ 
+ 2024-08-01  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_struct): Fix NULL pointer dereference.
+ 
+ 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.cc
+ 	(thread_event_printer::print_swimlane_for_event_range): Gracefully
+ 	handle logical_location::get_name_for_path_output returning null.
+ 
+ 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_location_manager::worklist_item::unlabelled_secondary_location):
+ 	New enum value.
+ 	(sarif_location_manager::m_unlabelled_secondary_locations): New
+ 	field.
+ 	(sarif_location_manager::process_worklist_item): Handle unlabelled
+ 	secondary locations.
+ 	(sarif_builder::make_location_object): Generalize code to handle
+ 	ranges within a rich_location so as well as using annotations for
+ 	those with labels, we now add related locations for those without
+ 	labels.
+ 
+ 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Assert
+ 	that m_line_maps is nonnull.
+ 	(diagnostic_output_format_init_sarif_stderr): Add "line_maps"
+ 	param and pass to format ctor.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* diagnostic.cc (diagnostic_output_format_init): Pass "line_table"
+ 	as line_maps param to the above.
+ 	* diagnostic.h (diagnostic_output_format_init_sarif_stderr): Add
+ 	"line_maps" param.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 
+ 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Tweak ASCII art in comment
+ 	to show edges for both directions in the digraph.
+ 
+ 2024-07-31  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116134
+ 	* match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Check that
+ 	a and b types match.
+ 	(`(a ? x : y) eq/ne (b ? y : x)`): Likewise.
+ 
+ 2024-07-31  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (carry_backpropagate): Change more guards of [U]INTVAL to
+ 	test CONST_INT_P rather than CONSTANT_P, fixing rtl-checking failures.
+ 
+ 2024-07-31  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* common/config/pru/pru-common.cc
+ 	(TARGET_OPTION_OPTIMIZATION_TABLE): New definition.
+ 	* config/pru/pru.cc (TARGET_MIN_ANCHOR_OFFSET): Set minimal
+ 	anchor offset.
+ 	(TARGET_MAX_ANCHOR_OFFSET): Set maximum anchor offset.
+ 
+ 2024-07-31  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116136
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Check
+ 	that we're working with the lowpart offset rather than byte 0.
+ 
+ 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config.gcc (extra_headers): Install arm_private_fp8.h.
+ 	* config/aarch64/arm_neon.h: Include arm_private_fp8.h.
+ 	* config/aarch64/arm_sve.h: Likewise.
+ 	* config/aarch64/arm_private_fp8.h: New file
+ 	(fpm_t): New type representing fpmr values.
+ 	(enum __ARM_FPM_FORMAT): New enum representing valid fp8 formats.
+ 	(enum __ARM_FPM_OVERFLOW): New enum representing how some fp8
+ 	calculations work.
+ 	(__arm_fpm_init): New.
+ 	(__arm_set_fpm_src1_format): Likewise.
+ 	(__arm_set_fpm_src2_format): Likewise.
+ 	(__arm_set_fpm_dst_format): Likewise.
+ 	(__arm_set_fpm_overflow_cvt): Likewise.
+ 	(__arm_set_fpm_overflow_mul): Likewise.
+ 	(__arm_set_fpm_lscale): Likewise.
+ 	(__arm_set_fpm_lscale2): Likewise.
+ 	(__arm_set_fpm_nscale): Likewise.
+ 
+ 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_hard_regno_nregs): Add
+ 	support for MOVEABLE_SYSREGS class.
+ 	(aarch64_hard_regno_mode_ok): Allow reads and writes to fpmr.
+ 	(aarch64_regno_regclass): Support MOVEABLE_SYSREGS class.
+ 	(aarch64_class_max_nregs): Likewise.
+ 	* config/aarch64/aarch64.h (FIXED_REGISTERS): add fpmr.
+ 	(CALL_REALLY_USED_REGISTERS): Likewise.
+ 	(REGISTER_NAMES): Likewise.
+ 	(enum reg_class): Add MOVEABLE_SYSREGS class.
+ 	(REG_CLASS_NAMES): Likewise.
+ 	(REG_CLASS_CONTENTS): Update class bitmaps to deal with fpmr,
+ 	the new MOVEABLE_REGS class and renumbering of registers.
+ 	* config/aarch64/aarch64.md: (FPM_REGNUM): added new register
+ 	number, reusing old value.
+ 	(FFR_REGNUM): Renumber.
+ 	(FFRT_REGNUM): Likewise.
+ 	(LOWERING_REGNUM): Likewise.
+ 	(TPIDR2_BLOCK_REGNUM): Likewise.
+ 	(SME_STATE_REGNUM): Likewise.
+ 	(TPIDR2_SETUP_REGNUM): Likewise.
+ 	(ZA_FREE_REGNUM): Likewise.
+ 	(ZA_SAVED_REGNUM): Likewise.
+ 	(ZA_REGNUM): Likewise.
+ 	(ZT0_REGNUM): Likewise.
+ 	(*mov<mode>_aarch64): Add support for moveable sysregs.
+ 	(*movsi_aarch64): Likewise.
+ 	(*movdi_aarch64): Likewise.
+ 	* config/aarch64/constraints.md (MOVEABLE_SYSREGS): New constraint.
+ 
+ 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (fp8): New.
+ 	* config/aarch64/aarch64.h (TARGET_FP8): Likewise.
+ 	* doc/invoke.texi (AArch64 Options): Document new -march flags
+ 	and extensions.
+ 
+ 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (UNSPEC_REVB_2H, UNSPEC_REVB_4H,
+ 	UNSPEC_REVH_D): Remove UNSPECs.
+ 	(revb_4h, revh_d): Remove define_insn.
+ 	(revb_2h): Define as (rotatert:SI (bswap:SI x) 16) instead of
+ 	an UNSPEC.
+ 	(revb_2h_extend, revb_2w, *bswapsi2, bswapdi2): New define_insn.
+ 	(bswapsi2): Change to define_expand.  Only expand to revb.2h +
+ 	rotri.w if !TARGET_64BIT.
+ 	(bswapdi2): Change to define_insn of which the output is just a
+ 	revb.d instruction.
+ 
+ 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md (ins_zero_bitmask_operand):
+ 	Cover more cases that bstrins can benefit.
+ 	(high_bitmask_operand): Remove.
+ 	* config/loongarch/constraints.md (Yy): Remove.
+ 	* config/loongarch/loongarch.md (and<mode>3_align): Remove.
+ 
+ 2024-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/101478
+ 	* gimplify.cc (gimplify_addr_expr): Check we still have an
+ 	ADDR_EXPR before calling recompute_tree_invariant_for_addr_expr.
+ 
+ 2024-07-31  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/116065
+ 	* config/i386/i386.opt (munroll-only-small-loops): Mark as
+ 	Optimization instead of Save.
+ 
+ 2024-07-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115881
+ 	* recog.cc: Include rtl-iter.h.
+ 	(insn_propagation::apply_to_rvalue_1): Check that the result
+ 	of simplify_subreg does not include nested subregs.
+ 
+ 2024-07-31  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/105359
+ 	* config/rs6000/rs6000.md (@extenddf<FLOAT128:mode>2): Don't check
+ 	TARGET_LONG_DOUBLE_128 for FLOAT128_IEEE_P modes.
+ 	(extendsf<FLOAT128:mode>2): Likewise.
+ 	(trunc<FLOAT128:mode>df2): Likewise.
+ 	(trunc<FLOAT128:mode>sf2): Likewise.
+ 	(floatsi<FLOAT128:mode>2): Likewise.
+ 	(fix_trunc<FLOAT128:mode>si2): Likewise.
+ 
+ 2024-07-31  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/altivec.md (p9_vadu<mode>3): Rename to ...
+ 	(uabd<mode>3): ... this.  Update RTL pattern with umin and umax rather
+ 	than UNSPEC_VADU.
+ 	(vadu<mode>3): Remove.
+ 	(UNSPEC_VADU): Remove.
+ 	(usadv16qi): Replace gen_p9_vaduv16qi3 with gen_uabdv16qi3.
+ 	(usadv8hi): Replace gen_p9_vaduv8hi3 with gen_uabdv8hi3.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_vadub): Replace
+ 	expander with uabdv16qi3.
+ 	(__builtin_altivec_vaduh): Adjust expander with uabdv8hi3.
+ 	(__builtin_altivec_vaduw): Adjust expander with uabdv4si3.
+ 
+ 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (optab): Add (rotatert "rotr").
+ 	(<optab:any_shift><mode>3, <optab:any_div><mode>3,
+ 	sub<mode>3, rotr<mode>3, mul<mode>3): Add a "*" to the insn name
+ 	so we can redefine the names with define_expand.
+ 	(*<optab:any_shift>si3_extend): Remove "*" so we can use them
+ 	in expanders.
+ 	(*subsi3_extended, *mulsi3_extended): Likewise, also remove the
+ 	trailing "ed" for consistency.
+ 	(*<optab:any_div>si3_extended): Add mode for sign_extend to
+ 	prevent an ICE using it in expanders.
+ 	(shift_w, arith_w): New define_code_iterator.
+ 	(<optab:any_w><mode>3): New define_expand.  Expand with
+ 	<optab:any_w>si3_extend for SImode if TARGET_64BIT.
+ 	(<optab:arith_w><mode>3): Likewise.
+ 	(mul<mode>3): Expand to mulsi3_extended for SImode if
+ 	TARGET_64BIT and ISA_HAS_DIV32.
+ 	(<optab:any_div><mode>3): Expand to <optab:any_div>si3_extended
+ 	for SImode if TARGET_64BIT.
+ 	(rotl<mode>3): Expand to rotrsi3_extend for SImode if
+ 	TARGET_64BIT.
+ 	(bytepick_w_<bytepick_imm>): Add mode for lshiftrt and ashift.
+ 	(bitsize, bytepick_imm, bytepick_w_ashift_amount): New
+ 	define_mode_attr.
+ 	(bytepick_w_<bytepick_imm>_extend): Adjust for the RTL change
+ 	caused by 32-bit shift expanding.  Now bytepick_imm only covers
+ 	2 and 3, separate one remaining case to ...
+ 	(bytepick_w_1_extend): ... here, new define_insn.
+ 
+ 2024-07-30  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
+ 	Skip b in march string
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add B assembler check
+ 
+ 2024-07-30  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* tree-switch-conversion.cc (can_log2): New static function to
+ 	check if gen_log2 can be used on current target.
+ 	(gen_log2): New static function to generate efficient GIMPLE
+ 	code for taking an exact base 2 log.
+ 	(gen_pow2p): New static function to generate efficient GIMPLE
+ 	code for checking if a value is a power of 2.
+ 	(switch_conversion::switch_conversion): Track if the
+ 	transformation happened.
+ 	(switch_conversion::is_exp_index_transform_viable): New function
+ 	to decide whether the transformation should be applied.
+ 	(switch_conversion::exp_index_transform): New function to
+ 	execute the transformation.
+ 	(switch_conversion::gen_inbound_check): Don't remove the default
+ 	BB if the transformation happened.
+ 	(switch_conversion::expand): Execute the transform if it is
+ 	viable.  Skip the "sufficiently small case range" test if the
+ 	transformation is going to be executed.
+ 	* tree-switch-conversion.h: Add is_exp_index_transform_viable
+ 	and exp_index_transform.
+ 
+ 2024-07-30  Gianluca Guida  <gianluca@rivosinc.com>
+ 	    Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add zacas extension.
+ 	* config/riscv/arch-canonicalize: Make zacas imply zaamo.
+ 	* config/riscv/riscv.opt: Add zacas.
+ 	* config/riscv/sync.md (zacas_atomic_cas_value<mode>): New pattern.
+ 	(atomic_compare_and_swap<mode>): Use new pattern for compare-and-swap ops.
+ 	(zalrsc_atomic_cas_value_strong<mode>): Rename atomic_cas_value_strong.
+ 	* doc/sourcebuild.texi: Add Zacas documentation.
+ 
+ 2024-07-30  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::to_string): Remove zabha configure check
+ 	handling and clarify zaamo/zalrsc comment.
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Remove zabha configure check.
+ 
+ 2024-07-30  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
+ 	Implement strength reduction.
+ 
+ 2024-07-30  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Function Attributes): Propose to use
+ 	attribute signal(n) via AVR-LibC's ISR_N from avr/interrupt.h
+ 
+ 2024-07-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_ussub): Promote to Xmode
+ 	instead of Pmode.
+ 
+ 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_insn_cost):
+ 	Add a case statement for TYPE_FARITH.
+ 
+ 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (movsf_internal):
+ 	Reorder alternative that corresponds to L32R machine instruction,
+ 	and prefix alternatives that correspond to LSI/SSI instructions
+ 	with the constraint character '^' so that they are disparaged by
+ 	reload/LRA.
+ 
+ 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_expand_call):
+ 	Remove the third argument.
+ 	* config/xtensa/xtensa.cc (xtensa_expand_call):
+ 	Remove the third argument and the code that uses it.
+ 	* config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value):
+ 	Remove each Boolean constant specified in the third argument of
+ 	xtensa_expand_call.
+ 	(sibcall_epilogue): Add emitting '(use A0_REG)' after calling
+ 	xtensa_expand_epilogue.
+ 
+ 2024-07-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/116043
+ 	* config/i386/constraints.md (Bk): Refine to
+ 	define_special_memory_constraint.
+ 
+ 2024-07-30  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/prfchiintrin.h
+ 	(_m_prefetchit0): Add macro for non-optimized option.
+ 	(_m_prefetchit1): Ditto.
+ 
+ 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md
+ 	(fix_scaling_operand, float_scaling_operand): New predicates.
+ 	* config/xtensa/xtensa.md
+ 	(any_fix/m_fix/s_fix, any_float/m_float/s_float):
+ 	New code iterators and their attributes.
+ 	(fix<s_fix>_truncsfsi2): Change from "fix_truncsfsi2".
+ 	(*fix<s_fix>_truncsfsi2_2x, *fix<s_fix>_truncsfsi2_scaled):
+ 	New insn definitions.
+ 	(float<s_float>sisf2): Change from "floatsisf2".
+ 	(*float<s_float>sisf2_scaled): New insn definition.
+ 
+ 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(gen_int_relational, gen_float_relational): Replace tempvar-based
+ 	value-swapping codes with std::swap.
+ 	* config/xtensa/xtensa.md (movdi_internal, movdf_internal):
+ 	Ditto.
+ 
+ 2024-07-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116104
+ 	* ext-dce.cc (carry_backpropagate): Fix test guarding UINTVAL
+ 	extraction of shift count.
+ 
+ 2024-07-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/invoke.texi (Diagnostic Message Formatting Options):
+ 	Replace hyphen with a new sentence. Replace "the former" with
+ 	the actual value.
+ 
+ 2024-07-29  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_option_override_after_change):
+ 	New function.
+ 	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define as
+ 	xtensa_option_override_after_change.
+ 	(xtensa_option_override): Call
+ 	xtensa_option_override_after_change.
+ 
+ 2024-07-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_set_current_function): Fix typo in
+ 	error message.
+ 
+ 2024-07-29  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/vector.md: Add comment for the VEC_IC
+ 	define_mode_iterator.
+ 
+ 2024-07-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
+ 	Try .SAT_SUB for PLUS_EXPR case.
+ 
+ 2024-07-29  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/116055
+ 	* ipa-modref.cc (analyze_function): Do not ICE when flags regress.
+ 
+ 2024-07-29  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Only call
+ 	single_imm_use if statement is not generated from pattern recognition.
+ 
+ 2024-07-29  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512dqintrin.h
+ 	(_mm_mask_fpclass_ss_mask): Correct operand order.
+ 	(_mm_mask_fpclass_sd_mask): Ditto.
+ 	(_mm256_maskz_reduce_round_ss): Use __builtin_ia32_reducess_mask_round
+ 	instead of __builtin_ia32_reducesd_mask_round.
+ 	(_mm_reduce_round_sd): Use -1 as mask since it is non-mask.
+ 	(_mm_reduce_round_ss): Ditto.
+ 	* config/i386/avx512vlbwintrin.h
+ 	(_mm256_mask_alignr_epi8): Correct operand usage.
+ 	(_mm_mask_alignr_epi8): Ditto.
+ 	* config/i386/avx512vlintrin.h (_mm_mask_alignr_epi64): Ditto.
+ 
+ 2024-07-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* exec-tool.in: Exit with an error if $original is empty.
+ 
+ 2024-07-28  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/116056
+ 	* config/avr/avr.h (machine_function) <is_noblock>: New field.
+ 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins) <__HAVE_SIGNAL_N__>: New
+ 	built-in macro.
+ 	* config/avr/avr.cc (avr_declare_function_name): New function.
+ 	(avr_attribute_table) <noblock>: New function attribute>.
+ 	<signal, interrupt>: Allow any number of args.
+ 	(avr_insert_attributes): Check validity of "signal" and "interrupt"
+ 	arguments.
+ 	(avr_foreach_function_attribute, avr_interrupt_signal_function)
+ 	(avr_isr_number, avr_asm_isr_alias, avr_handle_isr_attribute)
+ 	(avr_noblock_function_p): New static functions.
+ 	(avr_interrupt_function): New from avr_interrupt_function_p.
+ 	Adjust callers.
+ 	(avr_signal_function): New from avr_signal_function_p.
+ 	Adjust callers.
+ 	(avr_set_current_function): Only diagnose non-__vector ISR names
+ 	when "signal" or "interrupt" attribute has no args. Set
+ 	cfun->machine->is_noblock.  Warn about "noblock" in non-ISR functions.
+ 	(struct avr_fun_cookie): New.
+ 	(avr_expand_prologue, avr_asm_function_end_prologue): Handle "noblock".
+ 	* config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): New define.
+ 	* config/avr/avr-protos.h (avr_declare_function_name): New proto.
+ 	* doc/extend.texi (AVR Function Attributes): Document
+ 	signal(num) and interrupt(num).
+ 	* doc/invoke.texi (AVR Built-in Macros) <__HAVE_SIGNAL_N__>: Document.
+ 
+ 2024-07-27  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* match.pd (ctz (-X) => ctz (X)): New simplification.
+ 	(ctz (abs (X)) => ctz (X)): Likewise.
+ 
+ 2024-07-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add case 9 and case 10 for .SAT_SUB when one
+ 	of the op is IMM.
+ 
+ 2024-07-27  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/107941
+ 	* diagnostic-format-sarif.cc: Define INCLUDE_LIST and INCLUDE_MAP.
+ 	(enum class location_relationship_kind): New.
+ 	(diagnostic_artifact_role::scanned_file): New value.
+ 	(class sarif_location_manager): New.
+ 	(class sarif_result): Derive from sarif_location_manager rather
+ 	than directly from sarif_object.
+ 	(sarif_result::add_related_location): Convert to vfunc
+ 	implementation.
+ 	(sarif_location::m_relationships_map): New field.
+ 	(class sarif_location_relationship): New.
+ 	(class sarif_ice_notification): Derive from sarif_location_manager
+ 	rather than directly from sarif_object.
+ 	(sarif_builder::take_current_result): New.
+ 	(sarif_builder::m_line_maps): New field.
+ 	(sarif_builder::m_cur_group_result): Convert to std::unique_ptr.
+ 	(sarif_artifact::add_role): Skip scanned_file.
+ 	(get_artifact_role_string): Handle scanned_file.
+ 	(sarif_location_manager::add_relationship_to_worklist): New.
+ 	(sarif_location_manager::process_worklist): New.
+ 	(sarif_location_manager::process_worklist_item): New.
+ 	(sarif_result::on_nested_diagnostic): Pass *this to
+ 	make_location_object.
+ 	(sarif_location::lazily_add_id): New.
+ 	(sarif_location::get_id): New.
+ 	(get_string_for_location_relationship_kind): New.
+ 	(sarif_location::lazily_add_relationship): New.
+ 	(sarif_location::lazily_add_relationship_object): New.
+ 	(sarif_location::lazily_add_relationships_array): New.
+ 	(sarif_ice_notification::sarif_ice_notification): Fix overlong line.
+ 	Pass *this to make_locations_arr.
+ 	(sarif_ice_notification::add_related_location): New.
+ 	(sarif_location_relationship::sarif_location_relationship): New.
+ 	(sarif_location_relationship::get_target_id): New.
+ 	(sarif_location_relationship::lazily_add_kind): New.
+ 	(sarif_builder::sarif_builder): Add "line_maps" param and use it
+ 	to initialize m_line_maps.
+ 	(sarif_builder::end_diagnostic): Update for m_cur_group_result
+ 	becoming a std::unique_ptr.  Don't append to m_results_array yet.
+ 	(sarif_builder::end_group): Append m_cur_group_result to
+ 	m_results_array here, rather than in end_diagnostic.
+ 	(sarif_builder::make_result_object): Pass result_obj to
+ 	make_locations_arr and to make_code_flow_object.
+ 	(sarif_builder::make_locations_arr): Add "loc_mgr" param and pass
+ 	it to make_location_object.
+ 	(sarif_builder::make_location_object): For two overloads, add
+ 	"loc_mgr" param and call add_any_include_chain on the location.
+ 	(sarif_builder::add_any_include_chain): New.
+ 	(sarif_builder::make_location_object): New overload.
+ 	(sarif_builder::make_code_flow_object): Add "result" param and
+ 	pass it to make_thread_flow_location_object.
+ 	(sarif_builder::make_thread_flow_location_object): Add "result"
+ 	param and pass it to make_location_object.
+ 	(sarif_builder::get_or_create_artifact): Handle scanned_file.
+ 	(sarif_output_format::~sarif_output_format): Assert that there
+ 	isn't a pending result.
+ 	(sarif_output_format::sarif_output_format): Add "line_maps" param
+ 	and pass it to m_builder's ctor.
+ 	(sarif_stream_output_format::sarif_stream_output_format): Add
+ 	"line_maps" param and pass it to base class ctor.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Pass "line_table"
+ 	global to format.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(test_sarif_diagnostic_context::test_sarif_diagnostic_context):
+ 	Likewise.
+ 	(buffered_output_format::buffered_output_format): Likewise.
+ 	(selftest::test_make_location_object): Likewise.
+ 	(selftest::test_make_location_object): Create a sarif_result for
+ 	use when calling make_location_object.
+ 	* diagnostic.cc (diagnostic_context::finish): End any active
+ 	diagnostic groups.
+ 	(diagnostic_context::report_diagnostic): Assert that we're within
+ 	a diagnostic group.
+ 	* diagnostic.h (diagnostic_report_diagnostic): Add
+ 	begin_group/end_group pair around call to
+ 	diagnostic_context::report_diagnostic.
+ 	* selftest-diagnostic.cc (test_diagnostic_context::report): Add
+ 	begin_group/end_group pair around diagnostic_impl call.
+ 
+ 2024-07-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116085
+ 	* config/riscv/bitmanip.md (minmax extension avoidance splitter):
+ 	Rewrite as a simpler define_split.  Adjust the opcode appropriately.
+ 	Avoid emitting sign extension if it's clearly not needed.
+ 	* config/riscv/iterators.md (minmax_optab): Rename to uminmax_optab
+ 	and map everything to unsigned variants.
+ 
+ 2024-07-26  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	* gimple-ssa-sprintf.cc (format_string): Fix type in range check
+ 	for UNLIKELY for wide chars.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svbic_impl::expand): Update
+ 	to use andn optab instead of using code_for_aarch64_bic.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_bic<mode>): Rename to ...
+ 	(andn<mode>3): This.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmpl<mode>3): Rename to ...
+ 	(<NLOGICAL:optab>n<mode>3): This.
+ 	(*<NLOGICAL:optab>_one_cmplsidi3_ze): Rename to ...
+ 	(*<NLOGICAL:optab>nsidi3_ze): This.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(bic<mode>3<vczle><vczbe>): Rename to ...
+ 	(andn<mode>3<vczle><vczbe>): This. Also swap operands.
+ 	(orn<mode>3<vczle><vczbe>): Rename to ...
+ 	(iorn<mode>3<vczle><vczbe>): This. Also swap operands.
+ 	(vec_cmp<mode><v_int_equiv>): Update orn call to iorn
+ 	and swap the last two arguments.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/116065
+ 	* config/aarch64/aarch64.opt (mearly-ra=): Mark as Optimization rather
+ 	than Save.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116101
+ 	* gimple-isel.cc (maybe_duplicate_comparison): Don't
+ 	do anything for -O0 or -fno-tree-ter.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-isel.cc (duplicate_comparison): Rename to ...
+ 	(maybe_duplicate_comparison): This. Add check for use here
+ 	rather than in its caller.
+ 	(pass_gimple_isel::execute): Don't check how many uses the
+ 	comparison had and call maybe_duplicate_comparison instead of
+ 	duplicate_comparison.
+ 
+ 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-isel.cc (pass_gimple_isel::execute): Factor out
+ 	duplicate comparisons out to ...
+ 	(duplicate_comparison): New function.
+ 
+ 2024-07-26  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR c++/116019
+ 	* tree-tailcall.cc (find_tail_calls): Change tail call
+ 	error message.
+ 
+ 2024-07-26  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_override_options_internal):
+ 	Reword error string without apostrophe.
+ 
+ 2024-07-26  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/116074
+ 	* tree-vect-patterns.cc (vect_recog_cond_store_pattern): Check vector mode.
+ 
+ 2024-07-26  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Change
+ 	from XImode to BLKmode.
+ 	* config/i386/i386.md (ldtilecfg): Change XI to BLK.
+ 	(sttilecfg): Ditto.
+ 
+ 2024-07-26  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/115757
+ 	* tree.h (put_warning_spec_at): Declare new function.
+ 	(has_warning_spec): Likewise.
+ 	(get_warning_spec): Likewise.
+ 	(put_warning_spec): Likewise.
+ 	* diagnostic-spec.h (nowarn_spec_t::from_bits): New function.
+ 	* diagnostic-spec.cc (put_warning_spec_at): New function.
+ 	* warning-control.cc (has_warning_spec): New function.
+ 	(get_warning_spec): New function.
+ 	(put_warning_spec): New function.
+ 
+ 2024-07-25  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (get_element_number,
+ 	altivec_expand_vec_set_builtin): Remove functions.
+ 	(rs6000_expand_builtin): Remove the if statement to call
+ 	altivec_expand_vec_set_builtin.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_set_1ti,
+ 	__builtin_vsx_set_2df, __builtin_vsx_set_2di): Remove the
+ 	built-in definitions.
+ 	* config/rs6000/rs6000-gen-builtins.cc (struct attrinfo):
+ 	Remove the isset variable from the structure.
+ 	(parse_bif_attrs): Remove the uses of the isset variable.
+ 
+ 2024-07-25  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vec_set_v1ti,
+ 	__builtin_vec_set_v2df, __builtin_vec_set_v2di): Remove built-in
+ 	definitions.
+ 	* config/rs6000/rs6000-c.cc (resolve_vec_insert): Remove the
+ 	handling for constant vec_insert position with
+ 	VECTOR_UNIT_VSX_P V1TImode, V2DFmode and V2DImode modes.
+ 
+ 2024-07-25  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp,
+ 	__builtin_vsx_xvcmpgesp, __builtin_vsx_xvcmpgtsp): Remove
+ 	definitions.
+ 
+ 2024-07-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116039
+ 	* ext-dce.cc (ext_dce_process_uses): Add some comments about concerns
+ 	with current code.  Mark additional bit groups as live when we have
+ 	an extension of a suitably promoted subreg.
+ 
+ 2024-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/116033
+ 	* config/riscv/thead.cc (th_memidx_classify_address_modify):
+ 	Fix mode test.
+ 
+ 2024-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116083
+ 	* tree-vect-slp.cc (vect_build_slp_tree): Do not allocate
+ 	a discovery fail node when we reached the discovery limit.
+ 	(vect_build_slp_instance): Terminate early when the
+ 	discovery limit is reached.
+ 
+ 2024-07-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/rtl.texi: Document the need to define INCLUDE_ARRAY before
+ 	including rtl-ssa.h.
+ 	* rtl-ssa.h: Likewise (in comment).
+ 	* config/aarch64/aarch64-cc-fusion.cc: Add INCLUDE_ARRAY.
+ 	* config/aarch64/aarch64-early-ra.cc: Likewise.
+ 	* config/riscv/riscv-avlprop.cc: Likewise.
+ 	* config/riscv/riscv-vsetvl.cc: Likewise.
+ 	* fwprop.cc: Likewise.
+ 	* late-combine.cc: Likewise.
+ 	* pair-fusion.cc: Likewise.
+ 	* rtl-ssa/accesses.cc: Likewise.
+ 	* rtl-ssa/blocks.cc: Likewise.
+ 	* rtl-ssa/changes.cc: Likewise.
+ 	* rtl-ssa/functions.cc: Likewise.
+ 	* rtl-ssa/insns.cc: Likewise.
+ 	* rtl-ssa/movement.cc: Likewise.
+ 
+ 2024-07-25  Sam James  <sam@gentoo.org>
+ 
+ 	PR middle-end/114855
+ 	* doc/invoke.texi (Optimize options): Mention machine-generated
+ 	code for -O1.
+ 
+ 2024-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116081
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction):
+ 	Use operand_equal_p for comparing the element with the
+ 	neutral op.
+ 
+ 2024-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116079
+ 	* tree-ssa-loop-im.cc (hoist_memory_references): Clear
+ 	VDEF of elided clobbers.
+ 
+ 2024-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116081
+ 	* tree-vect-stmts.cc (vect_get_vector_types_for_stmt):
+ 	Properly compare types.
+ 
+ 2024-07-25  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/116036
+ 	* config/riscv/riscv.cc (riscv_override_options_internal): Error
+ 	with TARGET_VECTOR && !TARGET_MUL.
+ 
+ 2024-07-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
+ 
+ 2024-07-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/116044
+ 	* rtl-ssa/functions.h (function_info::split_clobber_group): Return
+ 	an array of two clobber_groups.
+ 	* rtl-ssa/accesses.cc (function_info::split_clobber_group): Return
+ 	the new clobber groups.  Don't modify the splay tree here.
+ 	(function_info::add_def): Update call accordingly.  Generalize
+ 	the splay tree insertion code so that the new definition can be
+ 	inserted as a child of any existing node, not just the root.
+ 	Fix the insertion used after calling split_clobber_group.
+ 
+ 2024-07-25  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(gimple_folder::redirect_call): Update return type.
+ 	* config/aarch64/aarch64-sve-builtins.h: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svqshl_impl::fold):
+ 	Remove cast to gcall.
+ 	(svrshl_impl::fold): Likewise.
+ 
+ 2024-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (constraint_equal): Take const
+ 	reference to constraints.
+ 	(constraint_vec_find): Similar.
+ 	(solve_graph): Keep constraint vector sorted and verify
+ 	sorting with checking.
+ 
+ 2024-07-25  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/115749
+ 	* config/i386/x86-tune-costs.h (struct processor_costs):
+ 	Adjust rtx_cost of imulq and imulw for COST_N_INSNS (4)
+ 	to COST_N_INSNS (3).
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::make_locations_arr):
+ 	Don't add entirely empty location objects, such as for
+ 	UNKNOWN_LOCATION.
+ 	(test_sarif_diagnostic_context::test_sarif_diagnostic_context):
+ 	Add param "main_input_filename".
+ 	(selftest::test_simple_log): Provide above param.  Verify that
+ 	"locations" is empty.
+ 	(selftest::test_simple_log_2): New.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Call it.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::flush_to_object):
+ 	New, using code moved from...
+ 	(sarif_builder::end_group): ...here.
+ 	(class selftest::test_sarif_diagnostic_context): New.
+ 	(selftest::test_simple_log): New.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Call it.
+ 	* json.h (json::object::is_empty): New.
+ 	* selftest-diagnostic.cc (test_diagnostic_context::report): New.
+ 	* selftest-diagnostic.h (test_diagnostic_context::report): New
+ 	decl.
+ 	* selftest-json.cc (selftest::assert_json_string_eq): New.
+ 	(selftest::expect_json_object_with_string_property): New.
+ 	(selftest::assert_json_string_property_eq): New.
+ 	* selftest-json.h (selftest::assert_json_string_eq): New decl.
+ 	(ASSERT_JSON_STRING_EQ): New macro.
+ 	(selftest::expect_json_object_with_string_property): New decl.
+ 	(EXPECT_JSON_OBJECT_WITH_STRING_PROPERTY): New macro.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_location_object): Add "annotations" property if
+ 	there are any labelled ranges (§3.28.6).
+ 	(selftest::test_make_location_object): Verify annotations are added
+ 	to location_obj.
+ 	* json.h (json::array::size): New.
+ 	(json::array::operator[]): New.
+ 	* selftest-json.cc
+ 	(selftest::expect_json_object_with_array_property): New.
+ 	* selftest-json.h
+ 	(selftest::expect_json_object_with_array_property): New decl.
+ 	(EXPECT_JSON_OBJECT_WITH_ARRAY_PROPERTY): New macro.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(make_date_time_string_for_current_time): New.
+ 	(sarif_invocation::sarif_invocation): Set "startTimeUtc"
+ 	property (§3.20.7).
+ 	(sarif_invocation::prepare_to_flush): Set "endTimeUtc"
+ 	property (§3.20.8).
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_invocation::sarif_invocation):
+ 	Add "original_argv" param and use it to populate "arguments"
+ 	property (§3.20.2).
+ 	(sarif_builder::sarif_builder): Pass argv to m_invocation_obj's
+ 	ctor.
+ 	* diagnostic.cc (diagnostic_context::initialize): Initialize
+ 	m_original_argv.
+ 	(diagnostic_context::finish): Clean up m_original_argv.
+ 	(diagnostic_context::set_original_argv): New.
+ 	* diagnostic.h: Include "unique-argv.h".
+ 	(diagnostic_context::set_original_argv): New decl.
+ 	(diagnostic_context::get_original_argv): New decl.
+ 	(diagnostic_context::m_original_argv): New field.
+ 	* toplev.cc: Include "unique-argv.h".
+ 	(general_init): Add "original_argv" param and move it to global_dc.
+ 	(toplev::main): Stash a copy of the original argv before expansion,
+ 	and pass it to general_init for use by SARIF output.
+ 	* unique-argv.h: New file.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_artifact_location_object): Make public.
+ 	(sarif_invocation::sarif_invocation): Add param "builder".
+ 	Use it to potentially populate the "workingDirectory" property
+ 	with the result of pwd (§3.20.19).
+ 	(sarif_builder::sarif_builder): Pass *this to m_invocation_obj's
+ 	ctor.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* text-range-label.h: New file, taking class text_range_label from
+ 	gcc-rich-location.h.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add selftest-json.o.
+ 	* diagnostic-format-sarif.cc: Include "selftest.h",
+ 	"selftest-diagnostic.h", "selftest-diagnostic-show-locus.h",
+ 	"selftest-json.h", and "text-range-label.h".
+ 	(class content_renderer): New.
+ 	(sarif_builder::m_rules_arr): Convert to std::unique_ptr.
+ 	(sarif_builder::make_location_object): Add class
+ 	escape_nonascii_renderer.  If rich_loc.escape_on_output_p (),
+ 	pass a nonnull escape_nonascii_renderer to
+ 	maybe_make_physical_location_object as its snippet_renderer, and
+ 	add a property bag property "gcc/escapeNonAscii" to the SARIF
+ 	location object.  For other overloads of make_location_object,
+ 	pass nullptr for the snippet_renderer.
+ 	(sarif_builder::maybe_make_region_object_for_context): Add
+ 	"snippet_renderer" param and pass it to
+ 	maybe_make_artifact_content_object.
+ 	(sarif_builder::make_tool_object): Drop "const".
+ 	(sarif_builder::make_driver_tool_component_object): Likewise.
+ 	Use typesafe unique_ptr variant of object::set for setting "rules"
+ 	property on driver_obj.
+ 	(sarif_builder::maybe_make_artifact_content_object): Add param "r"
+ 	and use it to potentially set the "rendered" property (§3.3.4).
+ 	(selftest::test_make_location_object): New.
+ 	(selftest::diagnostic_format_sarif_cc_tests): New.
+ 	* diagnostic-show-locus.cc: Include "text-range-label.h" and
+ 	"selftest-diagnostic-show-locus.h".
+ 	(selftests::diagnostic_show_locus_fixture::diagnostic_show_locus_fixture):
+ 	New.
+ 	(selftests::test_layout_x_offset_display_utf8): Use
+ 	diagnostic_show_locus_fixture to simplify and consolidate setup
+ 	code.
+ 	(selftests::test_diagnostic_show_locus_one_liner): Likewise.
+ 	(selftests::test_one_liner_colorized_utf8): Likewise.
+ 	(selftests::test_diagnostic_show_locus_one_liner_utf8): Likewise.
+ 	* gcc-rich-location.h (class text_range_label): Move to new file
+ 	text-range-label.h.
+ 	* selftest-diagnostic-show-locus.h: New file, based on material in
+ 	diagnostic-show-locus.cc.
+ 	* selftest-json.cc: New file.
+ 	* selftest-json.h: New file.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::diagnostic_format_sarif_cc_tests.
+ 	* selftest.h (selftest::diagnostic_format_sarif_cc_tests): New decl.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc: Include "make-unique.h".
+ 	(json_output_format::m_toplevel_array): Convert to
+ 	std::unique_ptr.
+ 	(json_output_format::json_output_format): Update accordingly.
+ 	(json_output_format::~json_output_format): Remove manual
+ 	"delete" of field.
+ 	(json_from_expanded_location): Convert return type to
+ 	std::unique_ptr.
+ 	(json_from_location_range): Likewise.  Use nullptr rather than
+ 	NULL.
+ 	(json_from_fixit_hint): Convert return type to std::unique_ptr.
+ 	(json_from_metadata): Likewise.
+ 	(make_json_for_path): Likewise.
+ 	(json_output_format::on_end_diagnostic): Use std::unique_ptr
+ 	throughout.
+ 	(json_file_output_format::~json_file_output_format): Use nullptr.
+ 	(selftest::test_unknown_location): Update to use std::unique_ptr.
+ 	(selftest::test_bad_endpoints): Likewise.  Replace NULL with
+ 	nullptr.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Include "make-unique.h".  Convert
+ 	raw pointers to std::unique_ptr throughout to indicate ownership,
+ 	adding comments in the few places where pointers are borrowed.
+ 	Use typesafe unique_ptr variants of json::object::set and
+ 	json::array::append throughout to make types of properties more
+ 	explicit, whilst using "auto" to reduce typing.
+ 	Use "nullptr" rather than "NULL" throughout.
+ 	* diagnostic-format-sarif.h (make_sarif_logical_location_object):
+ 	Use std::unique_ptr for return type.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc: Define INCLUDE_MEMORY.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* dumpfile.cc: Likewise.
+ 	* gcov.cc: Likewise.
+ 	* json.cc: Likewise.  Include "make-unique.h".
+ 	(selftest::test_formatting): Exercise overloads of
+ 	array::append and object::set that use unique_ptr.
+ 	* json.h: Require INCLUDE_MEMORY to have been defined.
+ 	(json::object::set): Add a template to add a family of overloads
+ 	taking a std::unique_ptr<JsonType>
+ 	(json::array::append): Likewise.
+ 	* optinfo-emit-json.cc: Define INCLUDE_MEMORY.
+ 	* optinfo.cc: Likewise.
+ 	* timevar.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc (json_from_expanded_location): Make
+ 	"static". Pass param "context" by reference, as it cannot be null.
+ 	(json_from_location_range): Likewise for param "context".
+ 	(json_from_fixit_hint): Likewise.
+ 	(make_json_for_path): Likewise.
+ 	(json_output_format::on_end_diagnostic): Update for above changes.
+ 	(diagnostic_output_format_init_json::diagnostic_output_format_init_json):
+ 	Pass param "context" by reference, as it cannot be null.
+ 	(diagnostic_output_format_init_json_stderr): Likewise.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	(selftest::test_unknown_location): Update for above changes.
+ 	(selftest::test_bad_endpoints): Likewise.
+ 	* diagnostic-format-sarif.cc (sarif_builder::m_context): Convert
+ 	from pointer to reference.
+ 	(sarif_invocation::add_notification_for_ice): Convert both params
+ 	from pointers to references.
+ 	(sarif_invocation::prepare_to_flush): Likewise for "context".
+ 	(sarif_result::on_nested_diagnostic): Likewise for "context" and
+ 	"builder".
+ 	(sarif_result::on_diagram): Likewise.
+ 	(sarif_ice_notification::sarif_ice_notification): Likewise.
+ 	(sarif_builder::sarif_builder): Likewise for "context".
+ 	(sarif_builder::end_diagnostic): Likewise.
+ 	(sarif_builder::emit_diagram): Likewise.
+ 	(sarif_builder::make_result_object): Likewise.
+ 	(make_reporting_descriptor_object_for_warning): Likewise.
+ 	(sarif_builder::make_locations_arr): Update for change to m_context.
+ 	(sarif_builder::get_sarif_column): Likewise.
+ 	(sarif_builder::make_message_object_for_diagram): Convert "context"
+ 	from pointer to reference.
+ 	(sarif_builder::make_tool_object): Likewise for "m_context".
+ 	(sarif_builder::make_driver_tool_component_object): Likewise.
+ 	(sarif_builder::get_or_create_artifact): Likewise.
+ 	(sarif_builder::maybe_make_artifact_content_object): Likewise.
+ 	(sarif_builder::get_source_lines): Likewise.
+ 	(sarif_output_format::on_end_diagnostic): Update for above changes.
+ 	(sarif_output_format::on_diagram): Likewise.
+ 	(sarif_output_format::sarif_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif): Convert param "context"
+ 	from pointer to reference.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* diagnostic.cc (diagnostic_output_format_init): Likewise.
+ 	* diagnostic.h (diagnostic_output_format_init): Likewise.
+ 	(diagnostic_output_format_init_json_stderr): Likewise.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(json_from_expanded_location): Delete decl.
+ 	* gcc.cc (driver_handle_option): Update for change to
+ 	diagnostic_output_format_init.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Introduce subclasses of sarif_object
+ 	for all aspects of the spec that we're using.  Replace almost all
+ 	usage of json::object with uses of these subclasses, the only
+ 	remaining use of json::object being for originalUriBaseIds, as per
+ 	SARIF 2.1.0 §3.14.14.  This stronger typing makes it considerably
+ 	easier to maintain validity against the schema.
+ 	* diagnostic-format-sarif.h (class sarif_logical_location): New.
+ 	(make_sarif_logical_location_object): Convert return type from
+ 	json::object * to sarif_logical_location *.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcov.cc (output_intermediate_json_line): Use
+ 	json::object::set_integer to avoid naked "new".
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_artifact::populate_roles):
+ 	Avoid naked "new" by using json::array::append_string.
+ 	(sarif_builder::maybe_make_kinds_array): Likewise.
+ 	* json.cc (json::array::append_string): New.
+ 	(selftest::test_writing_arrays): Use it.
+ 	* json.h (json::array::append_string): New decl.
+ 	* optinfo-emit-json.cc (optrecord_json_writer::pass_to_json):
+ 	Avoid naked "new" by using json::array::append_string.
+ 	(optrecord_json_writer::optinfo_to_json): Likewise.
+ 
+ 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.cc (value::dump): New overload, taking no params.
+ 	* json.h (value::dump): New decl.
+ 
+ 2024-07-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/116037
+ 	* ext-dce.cc (ext_dce_process_sets): Note if we ever skip a dest
+ 	and return that info explicitly.
+ 	(ext_dce_process_uses): If a set was skipped, then consider all bits
+ 	in every input as live.  Do not try to optimize away an extension if
+ 	we skipped processing a destination in the same insn.  Restore code
+ 	to make shift/rotate count fully live.
+ 	(ext_dce_process_bb): Handle API changes for ext_dce_process_sets.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(aarch64_set_asm_isa_flags): Store a second uint64_t value.
+ 	* config/aarch64/aarch64-opts.h
+ 	(aarch64_feature_flags): Switch typedef to bbitmap<2>.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_set_current_function): Extract isa mode from val[0].
+ 	* config/aarch64/aarch64.h
+ 	(aarch64_get_asm_isa_flags): Load a second uint64_t value.
+ 	(aarch64_get_isa_flags): Ditto.
+ 	(aarch64_asm_isa_flags): Ditto.
+ 	(aarch64_isa_flags): Ditto.
+ 	(HANDLE): Use bbitmap<2>::from_index to initialise flags.
+ 	(AARCH64_FL_ISA_MODES): Do arithmetic on integer type.
+ 	(AARCH64_ISA_MODE): Extract value from bbitmap<2> array.
+ 	* config/aarch64/aarch64.opt
+ 	(aarch64_asm_isa_flags_1): New variable.
+ 	(aarch64_isa_flags_1): Ditto.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* bbitmap.h: New file.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-feature-deps.h
+ 	(get_flags_off): Construct aarch64_feature_flags (0) explicitly.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc
+ 	(aarch64_define_unconditional_macros): Use TARGET_V8R macro.
+ 	(aarch64_update_cpp_builtins): Use TARGET_* macros.
+ 	* config/aarch64/aarch64.h (AARCH64_HAVE_ISA): New macro.
+ 	(AARCH64_ISA_SM_OFF, AARCH64_ISA_SM_ON, AARCH64_ISA_ZA_ON)
+ 	(AARCH64_ISA_V8A, AARCH64_ISA_V8_1A, AARCH64_ISA_CRC)
+ 	(AARCH64_ISA_FP, AARCH64_ISA_SIMD, AARCH64_ISA_LSE)
+ 	(AARCH64_ISA_RDMA, AARCH64_ISA_V8_2A, AARCH64_ISA_F16)
+ 	(AARCH64_ISA_SVE, AARCH64_ISA_SVE2, AARCH64_ISA_SVE2_AES)
+ 	(AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3)
+ 	(AARCH64_ISA_SVE2_SM4, AARCH64_ISA_SME, AARCH64_ISA_SME_I16I64)
+ 	(AARCH64_ISA_SME_F64F64, AARCH64_ISA_SME2, AARCH64_ISA_V8_3A)
+ 	(AARCH64_ISA_DOTPROD, AARCH64_ISA_AES, AARCH64_ISA_SHA2)
+ 	(AARCH64_ISA_V8_4A, AARCH64_ISA_SM4, AARCH64_ISA_SHA3)
+ 	(AARCH64_ISA_F16FML, AARCH64_ISA_RCPC, AARCH64_ISA_RCPC8_4)
+ 	(AARCH64_ISA_RNG, AARCH64_ISA_V8_5A, AARCH64_ISA_TME)
+ 	(AARCH64_ISA_MEMTAG, AARCH64_ISA_V8_6A, AARCH64_ISA_I8MM)
+ 	(AARCH64_ISA_F32MM, AARCH64_ISA_F64MM, AARCH64_ISA_BF16)
+ 	(AARCH64_ISA_SB, AARCH64_ISA_RCPC3, AARCH64_ISA_V8R)
+ 	(AARCH64_ISA_PAUTH, AARCH64_ISA_V8_7A, AARCH64_ISA_V8_8A)
+ 	(AARCH64_ISA_V8_9A, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A)
+ 	(AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A, AARCH64_ISA_V9_4A)
+ 	(AARCH64_ISA_MOPS, AARCH64_ISA_LS64, AARCH64_ISA_CSSC)
+ 	(AARCH64_ISA_D128, AARCH64_ISA_THE, AARCH64_ISA_GCS): Remove.
+ 	(TARGET_BASE_SIMD, TARGET_SIMD, TARGET_FLOAT)
+ 	(TARGET_NON_STREAMING, TARGET_STREAMING, TARGET_ZA, TARGET_SHA2)
+ 	(TARGET_SHA3, TARGET_AES, TARGET_SM4, TARGET_F16FML)
+ 	(TARGET_CRC32, TARGET_LSE, TARGET_FP_F16INST)
+ 	(TARGET_SIMD_F16INST, TARGET_DOTPROD, TARGET_SVE, TARGET_SVE2)
+ 	(TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
+ 	(TARGET_SVE2_SM4, TARGET_SME, TARGET_SME_I16I64)
+ 	(TARGET_SME_F64F64, TARGET_SME2, TARGET_ARMV8_3, TARGET_JSCVT)
+ 	(TARGET_FRINT, TARGET_TME, TARGET_RNG, TARGET_MEMTAG)
+ 	(TARGET_I8MM, TARGET_SVE_I8MM, TARGET_SVE_F32MM)
+ 	(TARGET_SVE_F64MM, TARGET_BF16_FP, TARGET_BF16_SIMD)
+ 	(TARGET_SVE_BF16, TARGET_PAUTH, TARGET_BTI, TARGET_MOPS)
+ 	(TARGET_LS64, TARGET_CSSC, TARGET_SB, TARGET_RCPC, TARGET_RCPC2)
+ 	(TARGET_RCPC3, TARGET_SIMD_RDMA, TARGET_ARMV9_4, TARGET_D128)
+ 	(TARGET_THE, TARGET_GCS): Redefine using AARCH64_HAVE_ISA.
+ 	(TARGET_V8R, TARGET_V9A): New.
+ 	* config/aarch64/aarch64.md (arch_enabled): Use TARGET_RCPC2.
+ 	* config/aarch64/iterators.md (GPI_I16): Use TARGET_FP_F16INST.
+ 	(GPF_F16): Ditto.
+ 	* config/aarch64/predicates.md
+ 	(aarch64_rcpc_memory_operand): Use TARGET_RCPC2.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_valid_sysreg_name_p): Add bool cast.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(aarch64_set_asm_isa_flags): Reorder, and add suffix to names.
+ 	* config/aarch64/aarch64.h
+ 	(aarch64_get_asm_isa_flags): Add "_0" suffix.
+ 	(aarch64_get_isa_flags): Ditto.
+ 	(aarch64_asm_isa_flags): Redefine using renamed uint64_t value.
+ 	(aarch64_isa_flags): Ditto.
+ 	* config/aarch64/aarch64.opt:
+ 	(aarch64_asm_isa_flags): Rename to...
+ 	(aarch64_asm_isa_flags_0): ...this, and change to uint64_t.
+ 	(aarch64_isa_flags): Rename to...
+ 	(aarch64_isa_flags_0): ...this, and change to uint64_t.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(aarch64_handle_option): Use new macro.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_override_options_internal): Ditto.
+ 	(aarch64_option_print): Ditto.
+ 	(aarch64_set_current_function): Ditto.
+ 	(aarch64_can_inline_p): Ditto.
+ 	(aarch64_declare_function_name): Ditto.
+ 	(aarch64_start_file): Ditto.
+ 	* config/aarch64/aarch64.h (aarch64_get_asm_isa_flags): New
+ 	(aarch64_get_isa_flags): New.
+ 	(aarch64_asm_isa_flags): Use new macro.
+ 	(aarch64_isa_flags): Ditto.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-opts.h: Add aarch64_isa_mode typedef.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_gen_callee_cookie): Use aarch64_isa_mode parameter.
+ 	(aarch64_sme_vq_immediate): Ditto.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_fntype_pstate_sm): Use aarch64_isa_mode values.
+ 	(aarch64_fntype_pstate_za): Ditto.
+ 	(aarch64_fndecl_pstate_sm): Ditto.
+ 	(aarch64_fndecl_pstate_za): Ditto.
+ 	(aarch64_fndecl_isa_mode): Ditto.
+ 	(aarch64_cfun_incoming_pstate_sm): Ditto.
+ 	(aarch64_cfun_enables_pstate_sm): Ditto.
+ 	(aarch64_call_switches_pstate_sm): Ditto.
+ 	(aarch64_gen_callee_cookie): Ditto.
+ 	(aarch64_callee_isa_mode): Ditto.
+ 	(aarch64_insn_callee_abi): Ditto.
+ 	(aarch64_sme_vq_immediate): Ditto.
+ 	(aarch64_add_offset_temporaries): Ditto.
+ 	(aarch64_add_offset): Ditto.
+ 	(aarch64_add_sp): Ditto.
+ 	(aarch64_sub_sp): Ditto.
+ 	(aarch64_guard_switch_pstate_sm): Ditto.
+ 	(aarch64_switch_pstate_sm): Ditto.
+ 	(aarch64_init_cumulative_args): Ditto.
+ 	(aarch64_allocate_and_probe_stack_space): Ditto.
+ 	(aarch64_expand_prologue): Ditto.
+ 	(aarch64_expand_epilogue): Ditto.
+ 	(aarch64_start_call_args): Ditto.
+ 	(aarch64_expand_call): Ditto.
+ 	(aarch64_end_call_args): Ditto.
+ 	(aarch64_set_current_function): Ditto, with added conversions.
+ 	(aarch64_handle_attr_arch): Avoid macro with changed type.
+ 	(aarch64_handle_attr_cpu): Ditto.
+ 	(aarch64_handle_attr_isa_flags): Ditto.
+ 	(aarch64_switch_pstate_sm_for_landing_pad):
+ 	Use arch64_isa_mode values.
+ 	(aarch64_switch_pstate_sm_for_jump): Ditto.
+ 	(pass_switch_pstate_sm::gate): Ditto.
+ 	* config/aarch64/aarch64.h
+ 	(AARCH64_ISA_MODE_{SM_ON|SM_OFF|ZA_ON}): New macros.
+ 	(AARCH64_FL_SM_STATE): Mark as possibly unused.
+ 	(AARCH64_ISA_MODE_SM_STATE): New aarch64_isa_mode mask.
+ 	(AARCH64_DEFAULT_ISA_MODE): New aarch64_isa_mode value.
+ 	(AARCH64_FL_DEFAULT_ISA_MODE): Define using above value.
+ 	(AARCH64_ISA_MODE): Change type to aarch64_isa_mode.
+ 	(arm_pcs): Use aarch64_isa_mode value.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_override_options): Remove temporary variable.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (DEF_AARCH64_ISA_MODE): Move to...
+ 	* config/aarch64/aarch64-opts.h (DEF_AARCH64_ISA_MODE): ...here.
+ 
+ 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_tune_flags): Remove unused global variable.
+ 	(aarch64_override_options_internal): Remove dead assignment.
+ 
+ 2024-07-24  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def: s/iorc/iorn/. s/andc/andn/
+ 	for the code.
+ 	* config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update
+ 	to iorn.
+ 	* config/rs6000/rs6000.md (andc<mode>3): Rename to ...
+ 	(andn<mode>3): This.
+ 	(iorc<mode>3): Rename to ...
+ 	(iorn<mode>3): This.
+ 	* doc/md.texi: Update documentation for the rename.
+ 	* internal-fn.def (BIT_ANDC): Rename to ...
+ 	(BIT_ANDN): This.
+ 	(BIT_IORC): Rename to ...
+ 	(BIT_IORN): This.
+ 	* optabs.def (andc_optab): Rename to ...
+ 	(andn_optab): This.
+ 	(iorc_optab): Rename to ...
+ 	(iorn_optab): This.
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): Update for the
+ 	renamed internal functions, ANDC/IORC to ANDN/IORN.
+ 
+ 2024-07-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/install.texi (GM2-prerequisite): Add GNU flex.
+ 
+ 2024-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116057
+ 	* tree-ssa-ccp.cc (likely_value): Also walk CTORs in stmt
+ 	operands to look for constants.
+ 
+ 2024-07-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Revert:
+ 	2024-07-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
+ 	fusion logic.
+ 	* config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
+ 	(cmp+cset): Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Enable logic in
+ 	field fusible_ops.
+ 
+ 2024-07-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
+ 	fusion logic.
+ 	* config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
+ 	(cmp+cset): Likewise.
+ 	* config/aarch64/tuning_models/neoversev2.h: Enable logic in
+ 	field fusible_ops.
+ 
+ 2024-07-24  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/116035
+ 	* config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip
+ 	for XTheadMemIdx.
+ 
+ 2024-07-24  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	PR target/115978
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):  Enable
+ 	APX_F only for 64-bit codegen.
+ 	* config/i386/i386-options.cc (DEF_PTA):  Skip PTA_APX_F if
+ 	not in 64-bit mode.
+ 
+ 2024-07-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115961
+ 	* internal-fn.cc (type_strictly_matches_mode_p): Add new func
+ 	impl to check type strictly matches mode or not.
+ 	(type_pair_strictly_matches_mode_p): Ditto but for tree type
+ 	pair.
+ 	(direct_internal_fn_supported_p): Add above check for the tree
+ 	type pair.
+ 
+ 2024-07-23  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_reference_type): Handle rvalue refs.
+ 	(get_type_num_array_type): Add DW_TAG_rvalue_reference_type to switch.
+ 	(get_type_num): Handle DW_TAG_rvalue_reference_type DIEs.
+ 	* dwarf2codeview.h (CV_PTR_MODE_RVREF): Define.
+ 
+ 2024-07-23  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_reference_type): New function.
+ 	(get_type_num_array_type): Add DW_TAG_reference_type to switch.
+ 	(get_type_num): Handle DW_TAG_reference_type DIEs.
+ 	* dwarf2codeview.h (CV_PTR_MODE_LVREF): Define.
+ 
+ 2024-07-23  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/bitmanip.md: Fix splitter.
+ 
+ 2024-07-23  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/extend.texi: Add missing @option.
+ 
+ 2024-07-23  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* doc/extend.texi: Document [[musttail]]
+ 
+ 2024-07-23  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/install.texi (amdgcn-x-amdhsa): Suggest newer git version
+ 	for newlib.
+ 
+ 2024-07-23  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR target/96866
+ 	* config/rs6000/rs6000.cc (print_operand_address): Emit message for
+ 	unsupported operand.
+ 
+ 2024-07-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116002
+ 	* tree-ssa-structalias.cc (topo_visit): Also consider
+ 	SCALAR = SCALAR complex constraints as edges.
+ 
+ 2024-07-23  Jakub Jelinek  <jakub@redhat.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116034
+ 	* tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR
+ 	if MEM_REF offset is equal to element type size.
+ 
+ 2024-07-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/116002
+ 	* cselib.cc (cselib_hash_rtx): Use inchash to get proper mixing.
+ 	Consistently avoid a zero return value when hashing successfully.
+ 	Consistently treat a zero hash value from recursing as fatal.
+ 	Use hashval_t where appropriate.
+ 	(cselib_hash_plus_const_int): Likewise.
+ 	(new_cselib_val): Use hashval_t.
+ 	(cselib_lookup_1): Likewise.
+ 
+ 2024-07-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_hardreg_mov_ok): Relax mov subreg
+ 	to hard register after split1.
+ 
+ 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115713
+ 	* config/rs6000/rs6000.cc (rs6000_inner_target_options): Update option
+ 	set information for rs6000_opt_vars.
+ 
+ 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115713
+ 	* config/rs6000/rs6000.cc (rs6000_inner_target_options): Avoid to
+ 	enable altivec or disable avoid-indexed-addresses automatically
+ 	when they get specified explicitly.
+ 
+ 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115713
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Emit error
+ 	messages when explicit VSX encounters explicit soft-float, no-altivec
+ 	or avoid-indexed-addresses.
+ 
+ 2024-07-23  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.md (prefetchi): Change to %a.
+ 
+ 2024-07-23  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115877
+ 	* ext-dce.cc (ext_dce_process_sets): Reasonably handle input/output
+ 	operands.
+ 	(ext_dce_rd_transfer_n): Drop bogus assertion.
+ 
+ 2024-07-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/iterators.md (ANYI_DOUBLE_TRUNC): Add new iterator
+ 	for int double truncation.
+ 	(ANYI_DOUBLE_TRUNCATED): Add new attr for int double truncation.
+ 	(anyi_double_truncated): Ditto but for lowercase.
+ 	* config/riscv/riscv-protos.h (riscv_expand_ustrunc): Add new
+ 	func decl for expanding ustrunc
+ 	* config/riscv/riscv.cc (riscv_expand_ustrunc): Add new func
+ 	impl to expand ustrunc.
+ 	* config/riscv/riscv.md (ustrunc<mode><anyi_double_truncated>2): Impl
+ 	the new pattern ustrunc<m><n>2 for int.
+ 
+ 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/109985
+ 	* ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS.
+ 	(modref_access_analysis::process_fnspec): Likevise.
+ 	(modref_access_analysis::analyze_call): Likevise.
+ 	(propagate_unknown_call): Likevise.
+ 	(modref_propagate_in_scc): Likevise.
+ 	(modref_propagate_flags_in_scc): Likewise.
+ 	(ipa_merge_modref_summary_after_inlining): Likewise.
+ 
+ 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/111613
+ 	* ipa-modref.cc (analyze_parms): Do not preserve EAF_NO_DIRECT_READ and
+ 	EAF_NO_INDIRECT_READ from past flags.
+ 
+ 2024-07-22  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	* config.gcc (powerpc*-*-*): Add support for power11.
+ 	* config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11.
+ 	* config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
+ 	* config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise.
+ 	* config/rs6000/driver-rs6000.cc (asm_names): Likewise.
+ 	* config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define.
+ 	* config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11.
+ 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
+ 	_ARCH_PWR11 if -mcpu=power11.
+ 	* config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define.
+ 	(POWERPC_MASKS): Add power11.
+ 	(power11 cpu): Add power11 definition.
+ 	* config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor.
+ 	* config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise.
+ 	* config/rs6000/rs6000-tables.opt: Regenerate.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11
+ 	support.
+ 	(rs6000_machine_from_flags): Likewise.
+ 	(rs6000_reassociation_width): Likewise.
+ 	(rs6000_adjust_cost): Likewise.
+ 	(rs6000_issue_rate): Likewise.
+ 	(rs6000_sched_reorder): Likewise.
+ 	(rs6000_sched_reorder2): Likewise.
+ 	(rs6000_register_move_cost): Likewise.
+ 	(rs6000_opt_masks): Likewise.
+ 	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.
+ 	* config/rs6000/rs6000.md (cpu attribute): Add power11.
+ 	* config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag.
+ 	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11.
+ 	* config/rs6000/power10.md (all reservations): Add power11 support.
+ 
+ 2024-07-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115877
+ 	* ext-dce.cc (ext_dce_process_sets): More correctly handle SUBREG
+ 	destinations.
+ 
+ 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/115033
+ 	* ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Fix checking of
+ 	EAF flags when analysing values dereferenced as function parameters.
+ 
+ 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/114207
+ 	* ipa-prop.cc (unadjusted_ptr_and_unit_offset): Fix accounting of offsets in ADDR_EXPR.
+ 
+ 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/115277
+ 	* ipa-icf-gimple.cc (func_checker::compare_loops): compare loop
+ 	bounds.
+ 
+ 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/116009
+ 	* rtl-ssa/accesses.cc (function_info::add_def): Set the root
+ 	local variable after removing the old clobber group.
+ 
+ 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/accesses.h (rtl_ssa::pp_def_splay_tree): Declare.
+ 	(dump, debug): Add overloads for def_splay_tree.
+ 	* rtl-ssa/accesses.cc (rtl_ssa::pp_def_splay_tree): New function.
+ 	(dump, debug): Add overloads for def_splay_tree.
+ 
+ 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/115969
+ 	* config/aarch64/aarch64.cc (aarch64_simd_mem_operand_p): Require
+ 	the operand to be a legitimate memory_operand.
+ 
+ 2024-07-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115877
+ 	* ext-dce.cc (group_limit): New function.
+ 	(mark_reg_live): Likewise.
+ 	(ext_dce_process_sets): Use new functions.
+ 	(ext_dce_process_uses): Likewise.
+ 	(ext_dce_init): Likewise.
+ 
+ 2024-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* fold-const.cc (operand_compare::hash_operand): Fix hash
+ 	of WIDEN_*_EXPR.
+ 
+ 2024-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* inchash.h (inchash::end): Make const.
+ 	(inchash::merge): Take const reference hash argument.
+ 	(inchash::add_commutative): Likewise.
+ 
+ 2024-07-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/115531
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_conditional_operation_is_expensive): New.
+ 	(TARGET_VECTORIZE_CONDITIONAL_OPERATION_IS_EXPENSIVE): New.
+ 
+ 2024-07-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/115531
+ 	* tree-vect-patterns.cc (vect_cond_store_pattern_same_ref): New.
+ 	(vect_recog_cond_store_pattern): New.
+ 	(vect_vect_recog_func_ptrs): Use it.
+ 	* target.def (conditional_operation_is_expensive): New.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Document it.
+ 	* targhooks.cc (default_conditional_operation_is_expensive): New.
+ 	* targhooks.h (default_conditional_operation_is_expensive): New.
+ 
+ 2024-07-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115877
+ 	* ext-dce.cc (safe_for_live_propagation): Handle RTX_CONST_OBJ.
+ 
+ 2024-07-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115877
+ 	* ext-dce.cc (ext_dce_process_uses): Restore the value of DST_MASK
+ 	for reach operand.
+ 
+ 2024-07-21  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in (NOCOMMON_FLAG): Delete.
+ 	(GCC_WARN_CFLAGS): Drop NOCOMMON_FLAG.
+ 	(GCC_WARN_CXXFLAGS): Drop NOCOMMON_FLAG.
+ 	* configure.ac: Ditto.
+ 	* configure: Regenerate.
+ 
+ 2024-07-21  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	* config/sh/sh.md (mov_neg_si_t): Allow insn and split after
+ 	register allocation.
+ 	(*treg_noop_move): New insn.
+ 
+ 2024-07-20  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	Revert:
+ 	2024-07-20  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* doc/extend.texi: Document [[musttail]]
+ 
+ 2024-07-20  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_sym_type): Add new values.
+ 	(struct codeview_symbol): Add function to union.
+ 	(struct codeview_custom_type): Add lf_func_id to union.
+ 	(write_function): New function.
+ 	(write_codeview_symbols): Call write_function.
+ 	(write_lf_func_id): New function.
+ 	(write_custom_types): Call write_lf_func_id.
+ 	(add_function): New function.
+ 	(codeview_debug_early_finish): Call add_function.
+ 
+ 2024-07-20  André Maroneze  <andre.maroneze@cea.fr>
+ 
+ 	* doc/invoke.texi (Spec Files): Remove documentation of obsolete
+ 	spec strings "predefines" and "signed_char".
+ 
+ 2024-07-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	* opt-suggestions.cc
+ 	(option_proposer::build_option_suggestions): Pull OPTB
+ 	definition out of the innermost loop.
+ 
+ 2024-07-20  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* doc/extend.texi: Document [[musttail]]
+ 
+ 2024-07-20  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_split_128bit_move): Delete.
+ 	(loongarch_split_128bit_move_p): Delete.
+ 	(loongarch_split_256bit_move): Delete.
+ 	(loongarch_split_256bit_move_p): Delete.
+ 	(loongarch_split_vector_move): Add a function declaration.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_vector_costs::finish_cost): Adjust the code
+ 	formatting.
+ 	(loongarch_split_vector_move_p): Merge
+ 	loongarch_split_128bit_move_p and loongarch_split_256bit_move_p.
+ 	(loongarch_split_move_p): Merge code.
+ 	(loongarch_split_move): Likewise.
+ 	(loongarch_split_128bit_move_p): Delete.
+ 	(loongarch_split_256bit_move_p): Delete.
+ 	(loongarch_split_128bit_move): Delete.
+ 	(loongarch_split_vector_move): Merge loongarch_split_128bit_move
+ 	and loongarch_split_256bit_move.
+ 	(loongarch_split_256bit_move): Delete.
+ 	(loongarch_global_init): Remove the extra semicolon at the
+ 	end of the function.
+ 	* config/loongarch/loongarch.md (*movdf_softfloat):  Added a new
+ 	condition TARGET_64BIT.
+ 
+ 2024-07-19  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/116003
+ 	* value-relation.cc (equiv_oracle::register_initial_def): Check
+ 	if SSA_NAME is in the IL before registering.
+ 
+ 2024-07-19  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* passes.def: Rewrite usage comment at the top.
+ 
+ 2024-07-19  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/115406
+ 	* fold-const.cc (native_encode_vector_part): For vector booleans,
+ 	check whether an element is nonzero and, if so, set all of the
+ 	correspending bits in the target image.
+ 	* simplify-rtx.cc (native_encode_rtx): Likewise.
+ 
+ 2024-07-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/builtins.def (MASK1): New DEF_BUILTIN.
+ 	* config/avr/avr.cc (avr_rtx_costs_1): Handle rtx costs for
+ 	expressions like __builtin_avr_mask1.
+ 	(avr_init_builtins) <uintQI_ftype_uintQI_uintQI>: New tree type.
+ 	(avr_expand_builtin) [AVR_BUILTIN_MASK1]: Diagnose unexpected forms.
+ 	(avr_fold_builtin) [AVR_BUILTIN_MASK1]: Handle case.
+ 	* config/avr/avr.md (gen_mask1): New expand helper.
+ 	(mask1_0x01_split, mask1_0x80_split, mask1_0xfe_split): New
+ 	insn-and-split.
+ 	(*mask1_0x01, *mask1_0x80, *mask1_0xfe): New insns.
+ 	* doc/extend.texi (AVR Built-in Functions) <__builtin_avr_mask1>:
+ 	Document new built-in function.
+ 
+ 2024-07-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/atomic.md (atomic_compare_and_swap,
+ 	atomic_exchange): Add operand modifier %M to the first
+ 	operand.
+ 	* config/bpf/bpf.cc (no_parentheses_mem_operand): Create
+ 	variable.
+ 	(bpf_print_operand): Set no_parentheses_mem_operand variable if
+ 	%M operand is used.
+ 	(bpf_print_operand_address): Conditionally output parentheses.
+ 
+ 2024-07-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115863
+ 	* match.pd: Add single_use check for .SAT_TRUNC form 2.
+ 
+ 2024-07-18  René Rebe  <rene@exactcode.de>
+ 	    Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/97367
+ 	* config/rs6000/rs6000.cc (rs6000_machine_from_flags): Do not consider
+ 	OPTION_MASK_ALTIVEC.
+ 	(emit_asm_machine): For Altivec compiles, emit a ".machine altivec".
+ 
+ 2024-07-18  Marek Polacek  <polacek@redhat.com>
+ 	    Jakub Jelinek   <jakub@redhat.com>
+ 
+ 	PR c++/115865
+ 	* tree-eh.cc (get_eh_else): Check that the result of
+ 	gimple_seq_first_stmt is non-null.
+ 
+ 2024-07-18  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR rtl-optimization/115049
+ 	* varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT
+ 	declarations too, like weak ones.
+ 
+ 2024-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/115641
+ 	* fold-const.cc (decode_field_reference): If the inner
+ 	reference isn't something we can take the address of, fail.
+ 
+ 2024-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* doc/md.texi: Add Standard-Names ustrunc and sstrunc.
+ 
+ 2024-07-18  Rubin Gerritsen  <rubin.gerritsen@gmail.com>
+ 
+ 	* gimple-fold.cc (dump_transformation): Moved definition.
+ 	(replace_call_with_call_and_fold): Calls dump_transformation.
+ 	(gimple_fold_builtin_stxcpy_chk): Removes call to
+ 	dump_transformation, now in replace_call_with_call_and_fold.
+ 	(gimple_fold_builtin_stxncpy_chk): Removes call to
+ 	dump_transformation, now in replace_call_with_call_and_fold.
+ 
+ 2024-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/104515
+ 	* tree-ssa-loop-im.cc (execute_sm_exit): Add clobbers_to_prune
+ 	parameter and handle re-materializing of clobbers.
+ 	(sm_seq_valid_bb): end-of-storage/object clobbers are OK inside
+ 	an ordered sequence of stores.
+ 	(sm_seq_push_down): Refuse to push down clobbers.
+ 	(hoist_memory_references): Prune clobbers from the loop body
+ 	we re-materialized on an exit.
+ 
+ 2024-07-18  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* match.pd ((FTYPE) N CMP CST): Only worry about exceptions with
+ 	flag_trapping_math, and about signaling NaNs with HONOR_SNANS.
+ 
+ 2024-07-18  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* doc/invoke.texi (AArch64 Options): Document rewriting of
+ 	-march=native to -mcpu=native.
+ 
+ 2024-07-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115843
+ 	* config/i386/predicates.md (const0_or_m1_operand): New
+ 	predicate.
+ 	* config/i386/sse.md (*<avx512>_store<mode>_mask_1): New
+ 	pre_reload define_insn_and_split.
+ 	(V): Add V32BF,V16BF,V8BF.
+ 	(V4SF_V8BF): Rename to ..
+ 	(V24F_128): .. this.
+ 	(*vec_concat<mode>): Adjust with V24F_128.
+ 	(*vec_concat<mode>_0): Ditto.
+ 
+ 2024-07-18  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* calls.cc (initialize_argument_information): Mark messages
+ 	for translation.
+ 	(can_implement_as_sibling_call_p): Dito.
+ 	(expand_call): Dito.
+ 
+ 2024-07-18  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* tree-tailcall.cc (maybe_error_musttail): New function.
+ 	(suitable_for_tail_opt_p): Report error reason.
+ 	(suitable_for_tail_call_opt_p): Report error reason.
+ 	(find_tail_calls): Accept basic blocks with abnormal edges.
+ 	Delay reporting of errors until the call is discovered.
+ 	Move top level suitability checks to here.
+ 	(tree_optimize_tail_calls_1): Remove top level checks.
+ 
+ 2024-07-18  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* function.h (struct function): Add has_musttail.
+ 	* lto-streamer-in.cc (input_struct_function_base): Stream
+ 	has_musttail.
+ 	* lto-streamer-out.cc (output_struct_function_base): Dito.
+ 	* passes.def (pass_musttail): Add.
+ 	* tree-cfg.cc (notice_special_calls): Record has_musttail.
+ 	(clear_special_calls): Clear has_musttail.
+ 	* tree-pass.h (make_pass_musttail): Add.
+ 	* tree-tailcall.cc (find_tail_calls): Handle only_musttail
+ 	argument.
+ 	(tree_optimize_tail_calls_1): Pass on only_musttail.
+ 	(execute_tail_calls): Pass only_musttail as false.
+ 	(class pass_musttail): Add.
+ 	(make_pass_musttail): Add.
+ 
+ 2024-07-18  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR target/115255
+ 	* function.cc (thread_prologue_and_epilogue_insns): Check
+ 	cfun->tail_call_marked for sibcalls too.
+ 	(rest_of_handle_thread_prologue_and_epilogue): Dito.
+ 
+ 2024-07-18  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	PR c/83324
+ 	* calls.cc (maybe_complain_about_tail_call): Clear must tail
+ 	flag on error.
+ 	(expand_call): Give error messages for all musttail failures.
+ 
+ 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115929
+ 	* rtl-ssa/movement.h (canonicalize_move_range): Check for null prev
+ 	and next insns and create an invalid move range for them.
+ 
+ 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115928
+ 	* rtl-ssa/accesses.h (clobber_group): Add a new constructor that
+ 	takes the first, last and root clobbers.
+ 	* rtl-ssa/internals.inl (clobber_group::clobber_group): Define it.
+ 	* rtl-ssa/accesses.cc (function_info::split_clobber_group): Use it.
+ 	Allocate a new group for both sides and invalidate the previous group.
+ 	(function_info::add_def): After calling split_clobber_group,
+ 	remove the old group from the splay tree.
+ 
+ 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genattrtab.cc (attr_desc::cxx_type): New field.
+ 	(write_attr_get, write_attr_value): Use it.
+ 	(gen_attr, find_attr, make_internal_attr): Initialize it,
+ 	dropping enum tags.
+ 
+ 2024-07-17  Eikansh Gupta  <quic_eikagupt@quicinc.com>
+ 
+ 	PR tree-optimization/111150
+ 	* match.pd (`(a ? x : y) eq/ne (b ? x : y)`): New pattern.
+ 	(`(a ? x : y) eq/ne (b ? y : x)`): New pattern.
+ 
+ 2024-07-17  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* dbgcnt.def (ext_dce): New debug counter.
+ 	* ext-dce.cc (ext_dce_try_optimize_insn): Reject the insn
+ 	if the debug counter says so.
+ 	(ext_dce): Rename to ...
+ 	(ext_dce_execute): This.
+ 	(pass_ext_dce::execute): Update for the name of ext_dce.
+ 
+ 2024-07-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/115526
+ 	* config/alpha/alpha.md (movdi_er_high_g): Add cannot_copy attribute.
+ 	(movdi_er_tlsgd): Ditto.
+ 	(movdi_er_tlsldm): Ditto.
+ 	(call_value_osf_<tls>): Ditto.
+ 
+ 2024-07-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/90616
+ 	* config/avr/predicates.md (const_0mod256_operand): New predicate.
+ 	* config/avr/constraints.md (Cp8): New constraint.
+ 	* config/avr/avr.md (*aligned_add_symbol): New insn.
+ 	* config/avr/avr.cc (avr_out_plus_symbol) [HImode]:
+ 	When op2 is a multiple of 256, there is no need to add / subtract
+ 	the lo8 part.
+ 	(avr_rtx_costs_1) [PLUS && HImode]: Return expected costs for
+ 	new insn *aligned_add_symbol as it applies.
+ 
+ 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/115887
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Use gsi_insert_on_edge
+ 	instead of gsi_insert_on_edge_immediate and set edge_insertions to
+ 	true.
+ 
+ 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* varasm.cc (default_elf_asm_output_ascii): Use ASM_OUTPUT_SKIP instead
+ 	of 2 or more default_elf_asm_output_limited_string (f, "") calls and
+ 	adjust base64 heuristics correspondingly.
+ 
+ 2024-07-17  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/115936
+ 	* tree-scalar-evolution.cc (simple_iv_with_niters): Use sizetype for
+ 	pointers.
+ 
+ 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/114440
+ 	* tree-vectorizer.h (struct _stmt_vec_info): Add a new field
+ 	reduc_result_pos.
+ 	* tree-vect-loop.cc (vect_transform_reduction): Generate lane-reducing
+ 	statements in an optimized order.
+ 
+ 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/114440
+ 	* tree-vectorizer.h (vectorizable_lane_reducing): New function
+ 	declaration.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Call new function
+ 	vectorizable_lane_reducing to analyze lane-reducing operation.
+ 	* tree-vect-loop.cc (vect_model_reduction_cost): Remove cost computation
+ 	code related to	emulated_mixed_dot_prod.
+ 	(vectorizable_lane_reducing): New function.
+ 	(vectorizable_reduction): Allow multiple lane-reducing operations in
+ 	loop reduction. Move some original lane-reducing related code to
+ 	vectorizable_lane_reducing.
+ 	(vect_transform_reduction): Adjust comments with updated example.
+ 
+ 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
+ 	Calculate effective vector stmts number with generic
+ 	vect_get_num_copies.
+ 	(vect_transform_reduction): Insert copies for lane-reducing so as to
+ 	fix over-estimated vector stmts number.
+ 	(vect_transform_cycle_phi): Calculate vector PHI number only based on
+ 	output vectype.
+ 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Remove
+ 	adjustment on vector stmts number specific to slp reduction.
+ 
+ 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vectorizer.h (vect_get_num_copies): New overload function.
+ 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Calculate
+ 	number of vector stmts for slp node with vect_get_num_copies.
+ 	(vect_slp_analyze_node_operations): Calculate number of vector elements
+ 	for constant/external slp node with vect_get_num_copies.
+ 
+ 2024-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115959
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Get at the REDUC_IDX child in a safer way for COND_EXPR
+ 	nodes.
+ 
+ 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/115958
+ 	* varasm.cc (default_elf_asm_output_ascii): Cast t - s to unsigned
+ 	to avoid -Wsign-compare warnings.
+ 
+ 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/115527
+ 	* gimple-fold.cc (clear_padding_flush): Introduce endsize
+ 	variable and use it instead of wordsize when comparing it against
+ 	nonzero_last.
+ 	(clear_padding_type): Increment off by sz.
+ 
+ 2024-07-17  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.md (mov<mode>cc, *mov<mode>cc_p10,
+ 	*mov<mode>cc_invert_p10, *fpmask<mode>, *xxsel<mode>,
+ 	@ieee_128bit_vsx_abs<mode>2, *ieee_128bit_vsx_nabs<mode>2,
+ 	add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
+ 	copysign<mode>3, copysign<mode>3_hard, copysign<mode>3_soft,
+ 	@neg<mode>2_hw, @abs<mode>2_hw, *nabs<mode>2_hw, fma<mode>4_hw,
+ 	*fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
+ 	extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
+ 	trunc<mode>sf2_hw, fix<uns>_<IEEE128:mode><SDI:mode>2_hw,
+ 	fix<uns>_trunc<IEEE128:mode><QHI:mode>2,
+ 	*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem,
+ 	float_<mode>di2_hw, float_<mode>si2_hw,
+ 	float<QHI:mode><IEEE128:mode>2, floatuns_<mode>di2_hw,
+ 	floatuns_<mode>si2_hw, floatuns<QHI:mode><IEEE128:mode>2,
+ 	floor<mode>2, ceil<mode>2, btrunc<mode>2, round<mode>2,
+ 	add<mode>3_odd, sub<mode>3_odd, mul<mode>3_odd, div<mode>3_odd,
+ 	sqrt<mode>2_odd, fma<mode>4_odd, *fms<mode>4_odd, *nfma<mode>4_odd,
+ 	*nfms<mode>4_odd, trunc<mode>df2_odd, *cmp<mode>_hw for IEEE128):
+ 	Remove guard FLOAT128_IEEE_P.
+ 	(@extenddf<mode>2_fprs, @extenddf<mode>2_vsx,
+ 	trunc<mode>df2_internal1, trunc<mode>df2_internal2,
+ 	fix_trunc_helper<mode>, neg<mode>2, *cmp<mode>_internal1,
+ 	*cmp<IBM128:mode>_internal2 for IBM128): Remove guard FLOAT128_IBM_P.
+ 
+ 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (init_float128_ieee): Use trunc_optab rather
+ 	than sext_optab for converting FLOAT128_IBM_P mode to FLOAT128_IEEE_P
+ 	mode, and use sext_optab rather than trunc_optab for converting
+ 	FLOAT128_IEEE_P mode to FLOAT128_IBM_P mode.
+ 	(rs6000_expand_float128_convert): Likewise.
+ 
+ 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/112993
+ 	* tree.cc (build_common_tree_nodes): Drop the workaround for rs6000
+ 	KFmode precision adjustment.
+ 
+ 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/112993
+ 	* value-range.h (range_compatible_p): Remove the workaround on
+ 	different type precision between _Float128 and long double.
+ 
+ 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/112993
+ 	* config/rs6000/rs6000-modes.def (IFmode, KFmode, TFmode): Define
+ 	with FLOAT_MODE instead of FRACTIONAL_FLOAT_MODE, don't use special
+ 	precisions any more.
+ 	(rs6000-modes.h): Remove include.
+ 	* config/rs6000/rs6000-modes.h: Remove.
+ 	* config/rs6000/rs6000.h (rs6000-modes.h): Remove include.
+ 	* config/rs6000/t-rs6000: Remove rs6000-modes.h include.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
+ 	all uses of FLOAT_PRECISION_TFmode with 128.
+ 	(rs6000_c_mode_for_floating_type): Likewise.
+ 	* config/rs6000/rs6000.md (define_expand extendiftf2): Remove.
+ 	(define_expand extendifkf2): Remove.
+ 	(define_expand extendtfkf2): Remove.
+ 	(define_expand trunckftf2): Remove.
+ 	(define_expand trunctfif2): Remove.
+ 	(define_expand extendtfif2): Add new assertion.
+ 	(define_expand expandkftf2): New.
+ 	(define_expand trunciftf2): Add new assertion.
+ 	(define_expand trunctfkf2): New.
+ 	(define_expand truncifkf2): Change with gcc_unreachable.
+ 	(define_expand expandkfif2): New.
+ 	(define_insn_and_split extendkftf2): Rename to  ...
+ 	(define_insn_and_split *extendkftf2): ... this.
+ 	(define_insn_and_split trunctfkf2): Rename to ...
+ 	(define_insn_and_split *extendtfkf2): ... this.
+ 
+ 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/112993
+ 	* expr.cc (convert_mode_scalar): Allow same precision conversion
+ 	between scalar floating point modes if whose underlying format is
+ 	ibm_extended_format or ieee_quad_format, and refactor assertion
+ 	with new lambda function acceptable_same_precision_modes.  Use
+ 	trunc_optab rather than sext_optab for ibm128 to ieee128 conversion.
+ 	* optabs-libfuncs.cc (gen_trunc_conv_libfunc): Use trunc_optab rather
+ 	than sext_optab for ibm128 to ieee128 conversion.
+ 
+ 2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/114759
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Disallow
+ 	CPUs and ABIs that do no support the ROP protection insns.
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Remove now
+ 	unneeded tests.
+ 	(rs6000_emit_prologue): Likewise.
+ 	Remove unneeded gcc_assert.
+ 	(rs6000_emit_epilogue): Likewise.
+ 	* config/rs6000/rs6000.md: Likewise.
+ 
+ 2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/114759
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Use TARGET_POWER8.
+ 	(rs6000_emit_prologue): Likewise.
+ 	* config/rs6000/rs6000.md (hashchk): Likewise.
+ 	(hashst): Likewise.
+ 	Fix whitespace.
+ 
+ 2024-07-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/115951
+ 	* range-op-ptr.cc (operator_equal::fold_range): Return a boolean
+ 	range with the requested type.
+ 	(operator_not_equal::fold_range): Likewise.
+ 	(operator_lt::fold_range): Likewise.
+ 	(operator_le::fold_range): Likewise.
+ 	(operator_gt::fold_range): Likewise.
+ 	(operator_ge::fold_range): Likewise.
+ 
+ 2024-07-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/115434
+ 	PR c++/110871
+ 	PR c++/110872
+ 	* gimplify.cc (struct gimplify_ctx): Add a flag to show we are
+ 	expending a handler.
+ 	(gimplify_expr): When we are expanding a handler, and the body
+ 	transforms might have re-written DECL_RESULT into a gimple var,
+ 	ensure that hander references to DECL_RESULT are also re-written
+ 	to refer to the gimple var.  When we are processing an EH_ELSE
+ 	expression, then add it if either of the cleanup slots is in
+ 	use.
+ 
+ 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115929
+ 	* rtl-ssa/insns.cc (function_info::remove_insn): Remove an
+ 	order_node from the instruction as well as from the splay tree.
+ 
+ 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115901
+ 	* recog.cc (insn_propagation::apply_to_rvalue_1): Restrict
+ 	paradoxical mode punning to cases where "to" is constant.
+ 
+ 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115891
+ 	* rtl-ssa/changes.cc (find_clobbered_access): New function.
+ 	(recog_level2): Use it to check for overlap between input
+ 	registers and hard-coded clobbers.  Conditionally reset
+ 	recog_data.insn after changing the insn code.
+ 
+ 2024-07-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_minus): Assimilate into...
+ 	(avr_out_plus_ext): ...this new function.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_PLUS_EXT]: Handle case.
+ 	(avr_rtx_costs_1) [PLUS, MINUS]: Adjust RTX costs.
+ 	* config/avr/avr.md (adjust_len) <plus_ext>: Add new attribute value.
+ 	(*addpsi3_zero_extend.hi_split): Assimilate...
+ 	(*addpsi3_zero_extend.qi_split): Assimilate...
+ 	(*addsi3_zero_extend_split): Assimilate...
+ 	(*addsi3_zero_extend.hi_split): Assimilate...
+ 	(*addpsi3_sign_extend.hi_split): Assimilate...
+ 	(*addhi3.sign_extend1_split): Assimilate...
+ 	(*add<PSISI:mode>3.<code>.<QIPSI:mode>_split): ...into this
+ 	new insn-and-split.
+ 	(*addpsi3_zero_extend.hi): Assimilate...
+ 	(*addpsi3_zero_extend.qi): Assimilate...
+ 	(*addsi3_zero_extend): Assimilate...
+ 	(*addsi3_zero_extend.hi): Assimilate...
+ 	(*addpsi3_sign_extend.hi): Assimilate...
+ 	(*addhi3.sign_extend1): Assimilate...
+ 	(*add<PSISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn.
+ 	(*subpsi3_sign_extend.hi_split): Assimilate...
+ 	(*subhi3.sign_extend2_split): Assimilate...
+ 	(*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): Assimilate...
+ 	(*sub<HISI:mode>3.<code><QIPSI:mode>_split): ...into this new
+ 	insn-and-split.
+ 	(*subpsi3_sign_extend.hi): Assimilate...
+ 	(*subhi3.sign_extend2): Assimilate...
+ 	(*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Assimilate...
+ 	(*sub<HISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn.
+ 	(*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Use avr_out_plus_ext
+ 	for asm out.
+ 	* config/avr/avr-protos.h (avr_out_minus): Remove.
+ 	(avr_out_plus_ext): New proto.
+ 
+ 2024-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115841
+ 	* tree-vect-loop.cc (vect_transform_cycle_phi): Correctly
+ 	place the partial vector reduction for the accumulator
+ 	re-use when the main loop cannot be skipped but the
+ 	epilogue can.
+ 
+ 2024-07-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (avr_emit_xior_with_shift): New proto.
+ 	* config/avr/avr.cc (avr_emit_xior_with_shift): New function.
+ 	* config/avr/avr.md (any_lshift): New code iterator.
+ 	(*<xior:code><mode>.<any_lshift:code>): New insn-and-split.
+ 	(<code><HISI:mode><QIPSI:mode>.0): Replaces...
+ 	(*<code_stdname><mode>qi.byte0): ...this one.
+ 	(*<xior:code><HISI:mode><QIPSI:mode>.<any_lshift:code>): Replaces...
+ 	(*<code_stdname><mode>qi.byte1-3): ...this one.
+ 
+ 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/3931.md (vlbr, vstbr): Remove.
+ 	* config/s390/s390.md (xdee): Add FPRX2 mapping.
+ 	* config/s390/vector.md (bhfgq): Add TF mapping.
+ 
+ 2024-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/x86-tune-costs.h (znver5_cost): Update unaligned
+ 	load and store cost from the aligned costs.
+ 
+ 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR target/114189
+ 	* config/s390/vector.md (V_HW2): Remove.
+ 	(vcond<V_HW:mode><V_HW2:mode>): Remove.
+ 	(vcondu<V_HW:mode><V_HW2:mode>): Remove.
+ 
+ 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md: Enable vcond_mask for 128-bit ops.
+ 
+ 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md (V_HW): Enable V1TI unconditionally and
+ 	add TI.
+ 	(vec_cmpu<VIT_HW:mode><VIT_HW:mode>): Add 128-bit integer
+ 	variants.
+ 	(*vec_cmpeq<mode><mode>_nocc_emu): Emulate operation.
+ 	(*vec_cmpgt<mode><mode>_nocc_emu): Emulate operation.
+ 	(*vec_cmpgtu<mode><mode>_nocc_emu): Emulate operation.
+ 
+ 2024-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115843
+ 	* tree-vect-loop-manip.cc
+ 	(vect_set_loop_condition_partial_vectors_avx512): Properly
+ 	bias the shift of the initial mask for alignment peeling.
+ 
+ 2024-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115843
+ 	* config/i386/x86-tune-costs.h (znver4_cost): Update unaligned
+ 	load and store cost from the aligned costs.
+ 
+ 2024-07-16  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114661
+ 	* match.pd ((X*C1)|(X*C2) to X*(C1+C2)): Allow optional useless
+ 	type conversions around multiplications, such as those inserted
+ 	by this transformation.
+ 
+ 2024-07-16  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/107432
+ 	* config/i386/sse.md
+ 	(PMOV_SRC_MODE_3_AVX2): Add TARGET_AVX2 for V4DI and V8SI.
+ 	(PMOV_SRC_MODE_4): Add TARGET_AVX2 for V4DI.
+ 	(trunc<mode><pmov_dst_3_lower>2): Change constraint from TARGET_AVX2 to
+ 	TARGET_SSSE3.
+ 	(trunc<mode><pmov_dst_4_lower>2): Ditto.
+ 	(truncv2div2si2): Change constraint from TARGET_AVX2 to TARGET_SSE.
+ 
+ 2024-07-16  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (ext_dce_process_uses): Simplify control flow and fix
+ 	liveness computation for shift/rotate counts.
+ 
+ 2024-07-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (carry_backpropagate): Make return type unsigned as well.
+ 	Cast to signed for right shift to preserve sign bit.
+ 
+ 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	Revert:
+ 	2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Replace new + std::unique_ptr by alloca().
+ 	(riscv_process_one_target_attr): Likewise.
+ 	(riscv_process_target_attr): Likewise.
+ 
+ 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::add):
+ 	Allow adding enabled extension if m_allow_adding_dup is set.
+ 	* config/riscv/riscv-subset.h: Add m_allow_adding_dup and setter.
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Allow adding enabled extensions.
+ 
+ 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/115554
+ 	PR target/115562
+ 	* common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
+ 	Remove.
+ 	(struct riscv_func_target_hasher): Likewise.
+ 	(riscv_func_decl_hash): Likewise.
+ 	(riscv_func_target_hasher::hash): Likewise.
+ 	(riscv_func_target_hasher::equal): Likewise.
+ 	(riscv_current_subset_list): Likewise.
+ 	(riscv_cmdline_subset_list): Remove obsolete space.
+ 	(riscv_func_target_table_lazy_init): Remove.
+ 	(riscv_func_target_get): Likewise.
+ 	(riscv_func_target_put): Likewise.
+ 	(riscv_func_target_remove_and_destory): Likewise.
+ 	(riscv_arch_str): Generate from cmdline_subset_list.
+ 	(riscv_set_arch_by_subset_list): Don't set current_subset_list.
+ 	(riscv_parse_arch_string): Remove current_subset_list.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
+ 	Get subset list via riscv_cmdline_subset_list().
+ 	* config/riscv/riscv-subset.h (riscv_current_subset_list):
+ 	Remove prototype.
+ 	(riscv_func_target_get): Likewise.
+ 	(riscv_func_target_put): Likewise.
+ 	(riscv_func_target_remove_and_destory): Likewise.
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Build base arch string from existing target options, if any.
+ 	(riscv_target_attr_parser::update_settings): Store new arch
+ 	string in target options.
+ 	(riscv_process_one_target_attr): Whitespace fix.
+ 	(riscv_process_target_attr): Drop opts argument.
+ 	(riscv_option_valid_attribute_p): Properly save, change and restore
+ 	target options.
+ 	* config/riscv/riscv.cc (get_arch_str): New function.
+ 	(riscv_declare_function_name): Get arch string for option-arch
+ 	directive from function's target options.
+ 	* config/riscv/riscv.opt: Add riscv_arch_string variable to
+ 	march option.
+ 
+ 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Replace new + std::unique_ptr by alloca().
+ 	(riscv_process_one_target_attr): Likewise.
+ 	(riscv_process_target_attr): Likewise.
+ 
+ 2024-07-15  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/113719
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Move flag_omit_frame_pointer final overrider...
+ 	(ix86_recompute_optlev_based_flags): ... here.
+ 
+ 2024-07-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md: Simplify mode usage.
+ 	(GET_MODE_SIZE (<MODE>mode)): Use <SIZE> instead.
+ 	(GET_MODE_BITSIZE (<MODE>mode) - 1): Use <MSB> instead.
+ 	(GET_MODE_MASK (QImode)): Use 0xff instead.
+ 	* config/avr/avr-fixed.md: Same.
+ 
+ 2024-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* configure.ac (HAVE_GAS_BASE64): New check.
+ 	* config/elfos.h (BASE64_ASM_OP): Define if HAVE_GAS_BASE64 is
+ 	defined.
+ 	* varasm.cc (assemble_string): Bump maximum from 2000 to 16384 if
+ 	BASE64_ASM_OP is defined.
+ 	(default_elf_asm_output_limited_string): Emit opening '"' together
+ 	with STRING_ASM_OP.
+ 	(default_elf_asm_output_ascii): Use BASE64_ASM_OP if defined and
+ 	beneficial.  Remove UB when last_null is NULL.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 
+ 2024-07-15  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115872
+ 	* tree-ssa-ccp.cc (convert_atomic_bit_not): Remove use_stmt after use_nop_stmt is removed.
+ 	(optimize_atomic_bit_test_and): Ditto.
+ 
+ 2024-07-15  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (has_nf): New define_attr, add to all
+ 	nf related patterns.
+ 	* config/i386/i386-features.cc (apx_nf_convert): New function
+ 	to convert Non-NF insns to their NF counterparts.
+ 	(class pass_apx_nf_convert): New pass class.
+ 	(make_pass_apx_nf_convert): New.
+ 	* config/i386/i386-passes.def: Add pass_apx_nf_convert after
+ 	rtl_ifcvt.
+ 	* config/i386/i386-protos.h (make_pass_apx_nf_convert): Declare.
+ 
+ 2024-07-15  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add 'L' letter
+ 	to print zihintntl instructions string.
+ 	* config/riscv/riscv.md (prefetch): Add zihintntl instructions.
+ 
+ 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/generic-vector-ooo.md: Add def_insn_reservation for vector BFloat16.
+ 	* config/riscv/riscv.md: Add new insn name for vector BFloat16.
+ 	* config/riscv/vector-iterators.md: Add some iterators for vector BFloat16.
+ 	* config/riscv/vector.md: Add some attribute for vector BFloat16.
+ 	* config/riscv/vector-bfloat16.md: New file. Add insn pattern vector BFloat16.
+ 
+ 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vfncvtbf16_f):
+ 	Add 'Zvfbfmin' intrinsic in bases.
+ 	(class vfwcvtbf16_f): Ditto.
+ 	(class vfwmaccbf16): Add 'Zvfbfwma' intrinsic in bases.
+ 	(BASE): Add BASE macro for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Add declaration for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ 	Add builtins def for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	(vfncvtbf16_f): Ditto.
+ 	(vfncvtbf16_f_frm): Ditto.
+ 	(vfwcvtbf16_f): Ditto.
+ 	(vfwmaccbf16): Ditto.
+ 	(vfwmaccbf16_frm): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (supports_vectype_p):
+ 	Add vector intrinsic build judgment for BFloat16.
+ 	(build_all): Ditto.
+ 	(BASE_NAME_MAX_LEN): Adjust max length.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_F32_OPS):
+ 	Add new operand type for BFloat16.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_F32_OPS): Ditto.
+ 	(validate_instance_type_required_extensions):
+ 	Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext):
+ 	Add required_ext declaration for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	(reqired_ext_to_isa_name): Ditto.
+ 	(required_extensions_specified): Ditto.
+ 	(struct function_group_info): Add match case for 'Zvfbfmin' and 'Zvfbfwma'.
+ 	* config/riscv/riscv.cc (riscv_validate_vector_type):
+ 	Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'.
+ 
+ 2024-07-15  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/115889
+ 	* config/i386/predicates.md (vcvtne2ps2bf_parallel): Remove.
+ 	* config/i386/sse.md (hi_cvt_bf): Remove.
+ 	(HI_CVT_BF): Likewise.
+ 	(vpermt2_sepcial_bf16_shuffle_<mode>):Likewise.
+ 
+ 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (bfloat16_type):
+ 	Generate bf16 vector_type and scalar_type in DEF_RVV_TYPE_INDEX.
+ 	(bfloat16_wide_type): Ditto.
+ 	(same_ratio_eew_bf16_type): Ditto.
+ 	(main): Ditto.
+ 	* config/riscv/riscv-modes.def (ADJUST_BYTESIZE):
+ 	Add vector type for BFloat16.
+ 	(RVV_WHOLE_MODES): Add vector type for BFloat16.
+ 	(RVV_FRACT_MODE): Ditto.
+ 	(RVV_NF4_MODES): Ditto.
+ 	(RVV_NF8_MODES): Ditto.
+ 	(RVV_NF2_MODES): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (vbfloat16mf4_t):
+ 	Add builtin vector type for BFloat16.
+ 	(vbfloat16mf2_t): Add builtin vector type for BFloat16.
+ 	(vbfloat16m1_t): Ditto.
+ 	(vbfloat16m2_t): Ditto.
+ 	(vbfloat16m4_t): Ditto.
+ 	(vbfloat16m8_t): Ditto.
+ 	(vbfloat16mf4x2_t): Ditto.
+ 	(vbfloat16mf4x3_t): Ditto.
+ 	(vbfloat16mf4x4_t): Ditto.
+ 	(vbfloat16mf4x5_t): Ditto.
+ 	(vbfloat16mf4x6_t): Ditto.
+ 	(vbfloat16mf4x7_t): Ditto.
+ 	(vbfloat16mf4x8_t): Ditto.
+ 	(vbfloat16mf2x2_t): Ditto.
+ 	(vbfloat16mf2x3_t): Ditto.
+ 	(vbfloat16mf2x4_t): Ditto.
+ 	(vbfloat16mf2x5_t): Ditto.
+ 	(vbfloat16mf2x6_t): Ditto.
+ 	(vbfloat16mf2x7_t): Ditto.
+ 	(vbfloat16mf2x8_t): Ditto.
+ 	(vbfloat16m1x2_t): Ditto.
+ 	(vbfloat16m1x3_t): Ditto.
+ 	(vbfloat16m1x4_t): Ditto.
+ 	(vbfloat16m1x5_t): Ditto.
+ 	(vbfloat16m1x6_t): Ditto.
+ 	(vbfloat16m1x7_t): Ditto.
+ 	(vbfloat16m1x8_t): Ditto.
+ 	(vbfloat16m2x2_t): Ditto.
+ 	(vbfloat16m2x3_t): Ditto.
+ 	(vbfloat16m2x4_t): Ditto.
+ 	(vbfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (check_required_extensions):
+ 	Add required_ext checking for BFloat16.
+ 	* config/riscv/riscv-vector-builtins.def (vbfloat16mf4_t):
+ 	Add vector_type for BFloat16 in builtins.def.
+ 	(vbfloat16mf4x2_t): Ditto.
+ 	(vbfloat16mf4x3_t): Ditto.
+ 	(vbfloat16mf4x4_t): Ditto.
+ 	(vbfloat16mf4x5_t): Ditto.
+ 	(vbfloat16mf4x6_t): Ditto.
+ 	(vbfloat16mf4x7_t): Ditto.
+ 	(vbfloat16mf4x8_t): Ditto.
+ 	(vbfloat16mf2_t): Ditto.
+ 	(vbfloat16mf2x2_t): Ditto.
+ 	(vbfloat16mf2x3_t): Ditto.
+ 	(vbfloat16mf2x4_t): Ditto.
+ 	(vbfloat16mf2x5_t): Ditto.
+ 	(vbfloat16mf2x6_t): Ditto.
+ 	(vbfloat16mf2x7_t): Ditto.
+ 	(vbfloat16mf2x8_t): Ditto.
+ 	(vbfloat16m1_t): Ditto.
+ 	(vbfloat16m1x2_t): Ditto.
+ 	(vbfloat16m1x3_t): Ditto.
+ 	(vbfloat16m1x4_t): Ditto.
+ 	(vbfloat16m1x5_t): Ditto.
+ 	(vbfloat16m1x6_t): Ditto.
+ 	(vbfloat16m1x7_t): Ditto.
+ 	(vbfloat16m1x8_t): Ditto.
+ 	(vbfloat16m2_t): Ditto.
+ 	(vbfloat16m2x2_t): Ditto.
+ 	(vbfloat16m2x3_t): Ditto.
+ 	(vbfloat16m2x4_t): Ditto.
+ 	(vbfloat16m4_t): Ditto.
+ 	(vbfloat16m4x2_t): Ditto.
+ 	(vbfloat16m8_t): Ditto.
+ 	(double_trunc_bfloat_scalar): Add scalar_type def for BFloat16.
+ 	(double_trunc_bfloat_vector): Add vector_type def for BFloat16.
+ 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_BF_16):
+ 	Add required defination of BFloat16 ext.
+ 	* config/riscv/riscv-vector-switch.def (ENTRY):
+ 	Add vector_type information for BFloat16.
+ 	(TUPLE_ENTRY): Add tuple vector_type information for BFloat16.
+ 
+ 2024-07-14  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator):
+ 	Use E_?Fmode enumeration constants in switch statement.
+ 	(ix86_expand_copysign): Likewise.
+ 	(ix86_expand_xorsign): Likewise.
+ 
+ 2024-07-14  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	PR c/115185
+ 	* doc/invoke.texi: Document the new
+ 	-Wunterminated-string-initialization.
+ 
+ 2024-07-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_option_override_after_change): Fix up
+ 	comment regarding disabling late_combine.
+ 
+ 2024-07-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_option_override_after_change): New
+ 	function.  Disable late-combine by default.
+ 	(cris_option_override): Call the new function.
+ 
+ 2024-07-13  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (write_lf_modifier): Expand upon comment.
+ 
+ 2024-07-13  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (write_data_symbol): Add alignment directive.
+ 
+ 2024-07-13  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Add padding constants.
+ 	(write_cv_padding): Use names for padding constants.
+ 
+ 2024-07-13  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (S_LDATA32, S_GDATA32, S_COMPILE3): Undefine.
+ 	(enum cv_sym_type): Define.
+ 	(struct codeview_symbol): Use enum cv_sym_type.
+ 	(write_codeview_symbols): Add default to switch.
+ 
+ 2024-07-13  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (enum cv_leaf_type): Define.
+ 	(struct codeview_subtype): Use enum cv_leaf_type.
+ 	(struct codeview_custom_type): Use enum cv_leaf_type.
+ 	(write_lf_fieldlist): Add default to switch.
+ 	(write_custom_types): Add default to switch.
+ 	* dwarf2codeview.h (LF_MODIFIER, LF_POINTER): Undefine.
+ 	(LF_PROCEDURE, LF_ARGLIST, LF_FIELDLIST, LF_BITFIELD): Likewise.
+ 	(LF_INDEX, LF_ENUMERATE, LF_ARRAY, LF_CLASS): Likewise.
+ 	(LF_STRUCTURE, LF_UNION, LF_ENUM, LF_MEMBER, LF_CHAR): Likewise.
+ 	(LF_SHORT, LF_USHORT, LF_LONG, LF_ULONG, LF_QUADWORD): Likewise.
+ 	(LF_UQUADWORD): Likewise.
+ 
+ 2024-07-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt (fdiagnostics-show-highlight-colors): New option.
+ 	* common.opt.urls: Regenerate.
+ 	* coretypes.h (pp_markup::element): New forward decl.
+ 	(pp_element): New typedef.
+ 	* diagnostic-color.cc (gcc_color_defaults): Add "highlight-a"
+ 	and "highlight-b".
+ 	* diagnostic-format-json.cc (diagnostic_output_format_init_json):
+ 	Disable highlight colors.
+ 	* diagnostic-format-sarif.cc (diagnostic_output_format_init_sarif):
+ 	Likewise.
+ 	* diagnostic-highlight-colors.h: New file.
+ 	* diagnostic-path.cc (struct event_range): Pass nullptr for
+ 	highlight color of m_rich_loc.
+ 	* diagnostic-show-locus.cc (colorizer::set_range): Handle ranges
+ 	with m_highlight_color.
+ 	(colorizer::STATE_NAMED_COLOR): New.
+ 	(colorizer::m_richloc): New field.
+ 	(colorizer::colorizer): Add richloc param for initializing
+ 	m_richloc.
+ 	(colorizer::set_named_color): New.
+ 	(colorizer::begin_state): Add case STATE_NAMED_COLOR.
+ 	(layout::layout): Pass richloc to m_colorizer's ctor.
+ 	(selftest::test_one_liner_labels): Pass nullptr for new param of
+ 	gcc_rich_location ctor for labels.
+ 	(selftest::test_one_liner_labels_utf8): Likewise.
+ 	* diagnostic.h (diagnostic_context::set_show_highlight_colors):
+ 	New.
+ 	* doc/invoke.texi: Add option -fdiagnostics-show-highlight-colors
+ 	and highlight-a and highlight-b color caps.
+ 	* doc/ux.texi
+ 	(Use color consistently when highlighting mismatches): New
+ 	subsection.
+ 	* gcc-rich-location.cc (gcc_rich_location::add_expr): Add
+ 	"highlight_color" param.
+ 	(gcc_rich_location::maybe_add_expr): Likewise.
+ 	* gcc-rich-location.h (gcc_rich_location::gcc_rich_location):
+ 	Split out into a pair of ctors, where if a range_label is supplied
+ 	the caller must also supply a highlight color.
+ 	(gcc_rich_location::add_expr): Add "highlight_color" param.
+ 	(gcc_rich_location::maybe_add_expr): Likewise.
+ 	* gcc.cc (driver_handle_option): Handle
+ 	OPT_fdiagnostics_show_highlight_colors.
+ 	* lto-wrapper.cc (merge_and_complain): Likewise.
+ 	(append_compiler_options): Likewise.
+ 	(append_diag_options): Likewise.
+ 	(run_gcc): Likewise.
+ 	* opts-common.cc (decode_cmdline_options_to_array): Add comment
+ 	about -fno-diagnostics-show-highlight-colors.
+ 	* opts-global.cc (init_options_once): Preserve
+ 	pp_show_highlight_colors in case the global_dc's printer is
+ 	recreated.
+ 	* opts.cc (common_handle_option): Handle
+ 	OPT_fdiagnostics_show_highlight_colors.
+ 	(gen_command_line_string): Likewise.
+ 	* pretty-print-markup.h: New file.
+ 	* pretty-print.cc: Include "pretty-print-markup.h" and
+ 	"diagnostic-highlight-colors.h".
+ 	(pretty_printer::format): Handle %e.
+ 	(pretty_printer::pretty_printer): Handle new field
+ 	m_show_highlight_colors.
+ 	(pp_string_n): New.
+ 	(pp_markup::context::begin_quote): New.
+ 	(pp_markup::context::end_quote): New.
+ 	(pp_markup::context::begin_color): New.
+ 	(pp_markup::context::end_color): New.
+ 	(highlight_colors::expected): New.
+ 	(highlight_colors::actual): New.
+ 	(highlight_colors::lhs): New.
+ 	(highlight_colors::rhs): New.
+ 	(class selftest::test_element): New.
+ 	(selftest::test_pp_format): Add tests of %e.
+ 	(selftest::test_urlification): Likewise.
+ 	* pretty-print.h (pp_markup::context): New forward decl.
+ 	(class chunk_info): Add friend class pp_markup::context.
+ 	(class pretty_printer): Add friend pp_show_highlight_colors.
+ 	(pretty_printer::m_show_highlight_colors): New field.
+ 	(pp_show_highlight_colors): New inline function.
+ 	(pp_string_n): New decl.
+ 	* substring-locations.cc: Include "diagnostic-highlight-colors.h".
+ 	(format_string_diagnostic_t::highlight_color_format_string): New.
+ 	(format_string_diagnostic_t::highlight_color_param): New.
+ 	(format_string_diagnostic_t::emit_warning_n_va): Use highlight
+ 	colors.
+ 	* substring-locations.h
+ 	(format_string_diagnostic_t::highlight_color_format_string): New.
+ 	(format_string_diagnostic_t::highlight_color_param): New.
+ 	* toplev.cc (general_init): Initialize global_dc's
+ 	show_highlight_colors.
+ 	* tree-pretty-print-markup.h: New file.
+ 
+ 2024-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115868
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly
+ 	compute the number of mask copies required for vect_record_loop_mask.
+ 
+ 2024-07-12  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Community): Update lists.nongnu.org and
+ 	lists.gnu.org links.
+ 
+ 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/115876
+ 	* ext-dce.cc (carry_backpropagate): Make mask and mmask unsigned.
+ 
+ 2024-07-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Remove @opindex and @itemx for -fconcepts-ts.
+ 
+ 2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>
+ 
+ 	* value-pointer-equiv.cc: Change NULL to nullptr.
+ 
+ 2024-07-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115785
+ 	* rtl-ssa/insns.h (insn_info::prev_insn_or_last_debug_insn)
+ 	(insn_info::next_nondebug_or_debug_insn): Remove typedefs.
+ 	(insn_info::m_prev_insn_or_last_debug_insn): Rename to...
+ 	(insn_info::m_prev_sametype_or_last_debug_insn): ...this.
+ 	* rtl-ssa/internals.inl (insn_info::insn_info): Update after
+ 	above renaming.
+ 	(insn_info::copy_prev_from): Likewise.
+ 	(insn_info::set_prev_sametype_insn): Likewise.
+ 	(insn_info::set_last_debug_insn): Likewise.
+ 	(insn_info::clear_insn_links): Likewise.
+ 	(insn_info::has_insn_links): Likewise.
+ 	* rtl-ssa/member-fns.inl (insn_info::prev_nondebug_insn): Likewise.
+ 	(insn_info::prev_any_insn): Fix moves from non-debug to debug insns.
+ 
+ 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc (emit_memcmp_scalar_load_and_compare):
+ 	Set RESULT directly rather than using a temporary.
+ 	(emit_memcmp_scalar_result_calculation): Similarly.
+ 	(riscv_expand_block_compare_scalar): Use CONST0_RTX rather than
+ 	generating new RTL.
+ 	* config/riscv/riscv.md (cmpmemsi): Pass an X mode temporary to the
+ 	expansion routines.  If necessary extract low part of the word to store
+ 	in final result location.
+ 
+ 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/2964.md: Remove extended mnemonics for vgm.
+ 	* config/s390/3906.md: Remove extended mnemonics for vgm.
+ 	* config/s390/3931.md: Remove extended mnemonics for vgm.
+ 	* config/s390/8561.md: Remove extended mnemonics for vgm.
+ 	* config/s390/constraints.md (jKK): Remove constraint.
+ 	(jzz): Add constraint.
+ 	* config/s390/s390-protos.h (s390_contiguous_bitmask_vector_p):
+ 	Add prototype.
+ 	(s390_constant_via_vgm_p): Add prototype.
+ 	(s390_constant_via_vrepi_p): Add prototype.
+ 	* config/s390/s390.cc (s390_contiguous_bitmask_vector_p): New
+ 	function.
+ 	(s390_constant_via_vgm_vrepi_helper): New function.
+ 	(s390_constant_via_vgm_p): New function.
+ 	(s390_constant_via_vgbm_p): For the sake of symmetry rename
+ 	s390_bytemask_vector_p into s390_constant_via_vgbm_p.
+ 	(s390_bytemask_vector_p): Deal with non-integer and partial
+ 	vectors.
+ 	(s390_constant_via_vrepi_p): New function.
+ 	(s390_legitimate_constant_p): Allow partial vectors.
+ 	(legitimate_reload_constant_p): Fix indentation.
+ 	(legitimate_reload_vector_constant_p): Restrict to constraints
+ 	j00, jm1, jxx, jyy, jzz only, i.e., allow partial vectors.
+ 	(s390_expand_vec_init): Also make use of vrepi if possible.
+ 	(print_operand): Add q,p,r for vgm,vrepi,vgbm, respectively.
+ 	Remove e,s,t for constant vectors.
+ 	* config/s390/s390.md (movti): Add variants utilizing
+ 	vgbm,vgm,vrepi.
+ 	* config/s390/vector.md (mov<mode><tf_vr>): Adapt variants
+ 	for vgbm,vgm,vrepi for the new scheme.
+ 	(mov<mode>): Adapt variants for vgbm,vgm for the new
+ 	scheme and add vrepi variant for modes V_8,V_16,V_32,V_64.
+ 
+ 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md (mov<mode>): Fix output template for
+ 	movv1qi.
+ 
+ 2024-07-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_broadcast_from_constant):
+ 	Use CONST_VECTOR_P instead of comparison against GET_CODE.
+ 	(ix86_gen_bcst_mem): Likewise.
+ 	(ix86_ternlog_leaf_p): Likewise.
+ 	(ix86_ternlog_operand_p): ix86_ternlog_leaf_p is always true for
+ 	vector_all_ones_operand.
+ 	(ix86_expand_ternlog_bin_op): Use CONST_VECTOR_P instead of
+ 	equality comparison against GET_CODE.  Replace call to force_reg
+ 	with gen_reg_rtx and emit_move_insn (for VEC_DUPLICATE broadcast).
+ 	Check for !register_operand instead of memory_operand.
+ 	Support CONST_VECTORs by calling force_const_mem.
+ 	(ix86_expand_ternlog): Fix indentation whitespace.
+ 	Allow ix86_ternlog_leaf_p as ix86_expand_ternlog_andnot's second
+ 	operand. Use CONST_VECTOR_P instead of equality against GET_CODE.
+ 	Use gen_reg_rtx and emit_move_insn for ~a, ~b and ~c cases.
+ 
+ 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.md (*icjump_64): Allow raw CC comparisons,
+ 	i.e., any constant integer between 0 and 15 for CC comparisons.
+ 
+ 2024-07-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_process_one_target_attr)
+ 	(aarch64_process_target_attr): Avoid alloca.
+ 
+ 2024-07-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/115459
+ 	* config/alpha/alpha.cc (alpha_expand_block_move): Adjust
+ 	MEMs to match inferred alignment.
+ 
+ 2024-07-12  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
+ 
+ 	PR target/115840
+ 	* config/riscv/riscv.cc(riscv_preferred_else_value): Mark
+ 	tmp_var as NO_WARNING.
+ 
+ 2024-07-12  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/115862
+ 	* config/riscv/riscv.cc (riscv_slow_unaligned_access): Disable vector misalign.
+ 
+ 2024-07-12  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_implied_info): Add xsfvcp.
+ 	(riscv_ext_version_table): Add xsfvcp, xsfcease.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv.opt (riscv_sifive_subext): New.
+ 	(XSFVCP): New.
+ 	(XSFCEASE): New.
+ 
+ 2024-07-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115659
+ 	* config/rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): Remove.
+ 	* config/rs6000/rs6000.cc (rs6000_emit_vector_cond_expr): Add static
+ 	qualifier as it is only called by rs6000_emit_swsqrt now.
+ 	* config/rs6000/vector.md (vcond<VEC_F:mode><VEC_F:mode>): Remove.
+ 	(vcond<VEC_I:mode><VEC_I:mode>): Remove.
+ 	(vcondv4sfv4si): Likewise.
+ 	(vcondv4siv4sf): Likewise.
+ 	(vcondv2dfv2di): Likewise.
+ 	(vcondv2div2df): Likewise.
+ 	(vcondu<VEC_I:mode><VEC_I:mode>): Likewise.
+ 	(vconduv4sfv4si): Likewise.
+ 	(vconduv2dfv2di): Likewise.
+ 
+ 2024-07-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115867
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Properly
+ 	guess the number of mask elements for integer mode masks.
+ 
+ 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/m68k/m68k.md (extendsidi2): Add missing early clobbers.
+ 
+ 2024-07-12  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_split_move): Delete.
+ 	(loongarch_hard_regno_mode_ok_uncached): Likewise.
+ 	* config/loongarch/loongarch.md
+ 	(move_doubleword_fpr<mode>): Likewise.
+ 	(load_low<mode>): Likewise.
+ 	(load_high<mode>): Likewise.
+ 	(store_word<mode>): Likewise.
+ 	(movgr2frh<mode>): Likewise.
+ 	(movfrh2gr<mode>): Likewise.
+ 
+ 2024-07-12  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/115752
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_hard_regno_mode_ok_uncached): Replace
+ 	UNITS_PER_FPVALUE with UNITS_PER_HWFPVALUE.
+ 	* config/loongarch/loongarch.h (UNITS_PER_FPVALUE): Delete.
+ 
+ 2024-07-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc
+ 	(emit_strcmp_scalar_compare_byte): Set RESULT directly rather
+ 	than using a new temporary.
+ 	(emit_strcmp_scalar_result_calculation_nonul): Likewise.
+ 	(emit_strcmp_scalar_result_calculation): Likewise.
+ 	(riscv_expand_strcmp_scalar): Use CONST0_RTX rather than
+ 	generating a new node.
+ 	(expand_strcmp): Copy directly from SUB to RESULT.
+ 	* config/riscv/riscv.md (cmpstrnsi, cmpstrsi): Pass an X
+ 	mode temporary to the expansion routines.  If necessary
+ 	extract low part of the word to store in final result location.
+ 
+ 2024-07-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* value-range.h (class int_range): Mark as final.
+ 	(class prange): Likewise.
+ 	(class frange): Likewise.
+ 
+ 2024-07-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/115611
+ 	* config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input
+ 	scalar register pair when lane = 1.
+ 
+ 2024-07-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115782
+ 	* recog.cc (validate_change_1): Suppress early exit for no-op
+ 	changes that are part of a group.
+ 
+ 2024-07-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimplify.cc (gimplify_scalar_mode_aggregate_compare): Add support
+ 	for ordering comparisons.
+ 	(gimplify_expr) <default>: Call gimplify_scalar_mode_aggregate_compare
+ 	only for integral scalar modes.
+ 
+ 2024-07-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (avr_out_minus): New prototype.
+ 	* config/avr/avr.cc (avr_out_minus): New function.
+ 	* config/avr/avr.md (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>)
+ 	(*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): New insns.
+ 	(*subpsi3_zero_extend.qi_split): Remove isns_and_split.
+ 	(*subpsi3_zero_extend.hi_split): Remove insn_and_split.
+ 	(*subhi3_zero_extend1_split): Remove insn_and_split.
+ 	(*subsi3_zero_extend_split): Remove insn_and_split.
+ 	(*subsi3_zero_extend.hi_split): Remove insn_and_split.
+ 	(*subpsi3_zero_extend.qi): Remove insn.
+ 	(*subpsi3_zero_extend.hi): Remove insn.
+ 	(*subhi3_zero_extend1): Remove insn.
+ 	(*subsi3_zero_extend): Remove insn.
+ 	(*subsi3_zero_extend.hi): Remove insn.
+ 
+ 2024-07-11  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* doc/gcov.texi: Add --include, --exclude, --match-on-demangled
+ 	documentation.
+ 	* gcov.cc (struct fnfilter): New.
+ 	(print_usage): Add --include, --exclude, -M,
+ 	--match-on-demangled.
+ 	(process_args): Likewise.
+ 	(release_structures): Release filters.
+ 	(read_graph_file): Only add function_infos matching filters.
+ 	(output_lines): Likewise.
+ 
+ 2024-07-11  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* gcov.cc (process_all_functions): Ensure fn.end_line is
+ 	included source[fn].lines.
+ 
+ 2024-07-11  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	c implies zca, and conditionally zcf & zcd.
+ 
+ 2024-07-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_sat_sub_pattern_transform):
+ 	Add new func impl to perform the truncation distribution.
+ 	(vect_recog_sat_sub_pattern): Perform above optimize before
+ 	generate .SAT_SUB call.
+ 
+ 2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (ustruncdi<mode>2): Swap compare operands.
+ 	(ustruncsi<mode>2): Ditto.
+ 	(ustrunchiqi2): Ditto.
+ 
+ 2024-07-10  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Mention that -fconcepts-ts was removed.
+ 
+ 2024-07-10  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add imply rules for B extension
+ 	* config/riscv/arch-canonicalize: Ditto
+ 
+ 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* internal-fn.cc (create_call_lhs_operand, assign_call_lhs): New
+ 	functions, split out from...
+ 	(expand_fn_using_insn): ...here.
+ 	(expand_load_lanes_optab_fn): Use them.
+ 	(expand_GOMP_SIMT_ENTER_ALLOC): Likewise.
+ 	(expand_GOMP_SIMT_LAST_LANE): Likewise.
+ 	(expand_GOMP_SIMT_ORDERED_PRED): Likewise.
+ 	(expand_GOMP_SIMT_VOTE_ANY): Likewise.
+ 	(expand_GOMP_SIMT_XCHG_BFLY): Likewise.
+ 	(expand_GOMP_SIMT_XCHG_IDX): Likewise.
+ 	(expand_partial_load_optab_fn): Likewise.
+ 	(expand_vec_cond_optab_fn): Likewise.
+ 	(expand_vec_cond_mask_optab_fn): Likewise.
+ 	(expand_RAWMEMCHR): Likewise.
+ 	(expand_gather_load_optab_fn): Likewise.
+ 	(expand_while_optab_fn): Likewise.
+ 	(expand_SPACESHIP): Likewise.
+ 
+ 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* recog.cc (insn_propagation::apply_to_rvalue_1): Handle simple
+ 	cases of hardreg propagation in which the register is set and
+ 	used in different modes.
+ 
+ 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115785
+ 	* rtl-ssa/functions.h (function_info::replace_nondebug_insn): Declare.
+ 	* rtl-ssa/insns.h (insn_info::order_node::set_uid): New function.
+ 	(insn_info::remove_note): Declare.
+ 	* rtl-ssa/insns.cc (insn_info::remove_note): New function.
+ 	(function_info::replace_nondebug_insn): Likewise.
+ 	* rtl-ssa/changes.cc (function_info::change_insns): Use
+ 	replace_nondebug_insn instead of remove_insn + add_insn.
+ 
+ 2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR middle-end/115836
+ 	* expmed.cc (emit_store_flag_1): Move calculation of
+ 	scode just before its only usage site.
+ 
+ 2024-07-10  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-protos.h (arm_dllexport_name_p): Remove prototype.
+ 	(arm_dllimport_name_p): Likewise.
+ 	(arm_pe_unique_section): Likewise.
+ 	(arm_pe_encode_section_info): Likewise.
+ 	(arm_dllexport_p): Likewise.
+ 	(arm_dllimport_p): Likewise.
+ 	(arm_mark_dllexport): Likewise.
+ 	(arm_mark_dllimport): Likewise.
+ 	(arm_change_mode_p): Likewise.
+ 	* config/arm/arm.cc (arm_gnu_attributes): Remove attributes for ARM_PE.
+ 	(TARGET_ENCODE_SECTION_INFO): Remove setting for ARM_PE.
+ 	(is_called_in_ARM_mode): Remove ARM_PE conditional code.
+ 	(thumb1_output_interwork): Remove obsolete ARM_PE code.
+ 	(arm_encode_section_info): Remove surrounding #ifndef.
+ 
+ 2024-07-10  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	PR lto/115394
+ 	* lto-streamer.h: Remove streamer_debugging definition.
+ 	* lto-streamer-out.cc (stream_write_tree_ref): Remove use of streamer_debugging.
+ 	(lto_output_tree): Likewise.
+ 	* tree-streamer-in.cc (streamer_read_tree_bitfields): Likewise.
+ 	(streamer_get_pickled_tree): Likewise.
+ 	* tree-streamer-out.cc (pack_ts_base_value_fields): Likewise.
+ 
+ 2024-07-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 2 for .SAT_TRUNC.
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
+ 	Add new case NOP_EXPR,  and try to match SAT_TRUNC.
+ 
+ 2024-07-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115721
+ 	* tree-complex.cc (expand_complex_comparison): Remove
+ 	support for GIMPLE_RETURN.
+ 
+ 2024-07-10  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	PR target/113715
+ 	* config/riscv/riscv.cc (riscv_zcmp_can_use_popretz): Removed.
+ 	(riscv_gen_multi_pop_insn): Remove generation of cm.popretz.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (altivec_expand_vec_init_builtin):
+ 	Remove the function.
+ 	(rs6000_expand_builtin): Remove the if bif_is_int check to call
+ 	the altivec_expand_vec_init_builtin function.
+ 	* config/rs6000/rs6000-builtins.def: Remove the attribute string
+ 	comment for init.
+ 	(__builtin_vec_init_v16qi,
+ 	__builtin_vec_init_v4sf, __builtin_vec_init_v4si,
+ 	__builtin_vec_init_v8hi, __builtin_vec_init_v1ti,
+ 	__builtin_vec_init_v2df, __builtin_vec_init_v2di,
+ 	__builtin_vec_set_v16qi, __builtin_vec_set_v4sf,
+ 	__builtin_vec_set_v4si, __builtin_vec_set_v8hi): Remove
+ 	built-in definitions.
+ 	* config/rs6000/rs6000-gen-builtins.cc: Remove comment for init
+ 	attribute string.
+ 	(struct attrinfo): Remove isinit entry.
+ 	(parse_bif_attrs): Remove the if statement to check for attribute
+ 	init.
+ 	(ifdef DEBUG): Remove print for init attribute string.
+ 	(write_decls): Remove print for define bif_init_bit and
+ 	define for bif_is_init.
+ 	(write_bif_static_init): Remove if bifp->attrs.isinit statement.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp_p):
+ 	Remove built-in definition.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-overload.def (vec_xxpermdi): Add new
+ 	overloaded built-in instances of vector signed and unsigned
+ 	int128.
+ 	* doc/extend.texi: Add documentation for built-in instances of
+ 	vector signed and unsigned int128.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvnegdp,
+ 	__builtin_vsx_xvnegsp): Remove built-in definitions.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_16qi_uns,
+ 	__builtin_vsx_vperm_1ti, __builtin_vsx_vperm_1ti_uns,
+ 	__builtin_vsx_vperm_2df, __builtin_vsx_vperm_2di,
+ 	__builtin_vsx_vperm_2di_uns, __builtin_vsx_vperm_4sf,
+ 	__builtin_vsx_vperm_4si, __builtin_vsx_vperm_4si_uns): Remove
+ 	built-in definitions and comments.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_16qi,
+ 	__builtin_vsx_xxsel_16qi_uns, __builtin_vsx_xxsel_2df,
+ 	__builtin_vsx_xxsel_2di,	__builtin_vsx_xxsel_2di_uns,
+ 	__builtin_vsx_xxsel_4sf, 	__builtin_vsx_xxsel_4si,
+ 	__builtin_vsx_xxsel_4si_uns, 	__builtin_vsx_xxsel_8hi,
+ 	__builtin_vsx_xxsel_8hi_uns): Remove 	built-in definitions.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti,
+ 	__builtin_vsx_xxsel_1ti_uns): Remove built-in definitions.
+ 	* config/rs6000/rs6000-overload.def (vec_sel): Add new
+ 	overloaded vector signed, unsigned and bool 128-bit definitions.
+ 	* doc/extend.texi (vec_sel): Add documentation for new instances
+ 	with signed, unsigned and bool 129-bit bool arguments.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmrghw,
+ 	__builtin_vsx_xxmrghw_4si, __builtin_vsx_xxmrglw,
+ 	__builtin_vsx_xxmrglw_4si, __builtin_vsx_xxsel_16qi): Remove
+ 	built-in definition.
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin):
+ 	remove case entries RS6000_BIF_XXMRGLW_4SI,
+ 	RS6000_BIF_XXMRGLW_4SF, RS6000_BIF_XXMRGHW_4SI,
+ 	RS6000_BIF_XXMRGHW_4SF.
+ 	* config/rs6000/vsx.md (vsx_xxmrghw_<mode>, vsx_xxmrglw_<mode>):
+ 	Remove unused define_expands.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspdp,
+ 	__builtin_vsx_xvcvdpsp, __builtin_vsx_xvcvsxwdp,
+ 	__builtin_vsx_xvcvuxddp_uns): Remove.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxds,
+ 	__builtin_vsx_xvcvspuxds): Rename to __builtin_vsignede_v4sf,
+ 	__builtin_vunsignede_v4sf respectively.
+ 	(XVCVSPSXDS, XVCVSPUXDS): Rename to VEC_VSIGNEDE_V4SF,
+ 	VEC_VUNSIGNEDE_V4SF respectively.
+ 	(__builtin_vsignedo_v4sf, __builtin_vunsignedo_v4sf): New
+ 	built-in definitions.
+ 	* config/rs6000/rs6000-overload.def (vec_signede, vec_signedo,
+ 	vec_unsignede, vec_unsignedo): Add new overloaded specifications.
+ 	* config/rs6000/vsx.md (vsignede_v4sf, vsignedo_v4sf,
+ 	vunsignede_v4sf, vunsignedo_v4sf): New define_expands.
+ 	* doc/extend.texi (vec_signedo, vec_signede, vec_unsignedo,
+ 	vec_unsignede): Add documentation for new overloaded built-ins to
+ 	convert vector float to vector {un,}signed long long.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_vunsigned_v2df,
+ 	__builtin_vsx_vunsigned_v4sf, __builtin_vsx_vunsignede_v2df,
+ 	__builtin_vsx_vunsignedo_v2df): Change the result type to unsigned.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxws,
+ 	__builtin_vsx_xvcvdpuxds_uns, __builtin_vsx_xvcvspuxws,
+ 	__builtin_vsx_xvcvdpsxws, __builtin_vsx_xvcvdpuxws): Remove
+ 	built-in definitions.
+ 
+ 2024-07-09  Carl Love  <cel@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (RS6000_BIF_CMPLE_16QI,
+ 	RS6000_BIF_CMPLE_U16QI, RS6000_BIF_CMPLE_8HI,
+ 	RS6000_BIF_CMPLE_U8HI, RS6000_BIF_CMPLE_4SI, RS6000_BIF_CMPLE_U4SI,
+ 	RS6000_BIF_CMPLE_2DI, RS6000_BIF_CMPLE_U2DI, RS6000_BIF_CMPLE_1TI,
+ 	RS6000_BIF_CMPLE_U1TI): Remove case statements.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_cmple_16qi,
+ 	__builtin_vsx_cmple_2di, __builtin_vsx_cmple_4si,
+ 	__builtin_vsx_cmple_8hi, __builtin_vsx_cmple_u16qi,
+ 	__builtin_vsx_cmple_u2di, __builtin_vsx_cmple_u4si,
+ 	__builtin_vsx_cmple_u8hi): Remove buit-in definitions.
+ 
+ 2024-07-09  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (@cmp<mode>_1): Use SWI mode iterator.
+ 	(ustruncdi<mode>2): New expander.
+ 	(ustruncsi<mode>2): Ditto.
+ 	(ustrunchiqi2): Ditto.
+ 
+ 2024-07-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.cc: Replace "const diagnostic_path *" with
+ 	"const diagnostic_path &" throughout, and "diagnostic_context *"
+ 	with "diagnostic context &".
+ 	* diagnostic.cc (diagnostic_context::show_any_path): Pass
+ 	reference in call to print_path.
+ 	* diagnostic.h (diagnostic_context::print_path): Convert param
+ 	to a reference.
+ 
+ 2024-07-09  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.cc (fp_consts_initited): Delete variable.
+ 	(value_fp0): Likewise.
+ 	(init_fp_table): Delete function.
+ 	(fp_const_from_val): Likewise.
+ 	(arm_const_double_rtx): Rework to avoid converting to REAL_VALUE_TYPE.
+ 	(arm_print_operand, case 'N'): Make use of this case an error.
+ 
+ 2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr):
+ 	Fix comments and variable names.
+ 
+ 2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_set_arch_by_subset_list):
+ 	Fix overlong line.
+ 	(riscv_parse_arch_string): Replace duplicated code by a call to
+ 	riscv_set_arch_by_subset_list.
+ 
+ 2024-07-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Correct
+ 	AVX10 CPUID emulation to specify ecx value.
+ 
+ 2024-07-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115796
+ 	* config/i386/emmintrin.h (__float_u): Rename to ..
+ 	(__x86_float_u): .. this.
+ 	(_mm_load_sd): Ditto.
+ 	(_mm_store_sd): Ditto.
+ 	(_mm_loadh_pd): Ditto.
+ 	(_mm_loadl_pd): Ditto.
+ 	* config/i386/xmmintrin.h (__double_u): Rename to ..
+ 	(__x86_double_u): .. this.
+ 	(_mm_load_ss): Ditto.
+ 	(_mm_store_ss): Ditto.
+ 
+ 2024-07-08  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* Makefile.in (OBJS): Add ext-dce.o
+ 	* common.opt (ext-dce): Document new option.
+ 	* df-scan.cc (df_get_ext_block_use_set): Delete prototype and
+ 	make extern.
+ 	* df.h (df_get_exit_block_use_set): Prototype.
+ 	* ext-dce.cc: New file/pass.
+ 	* opts.cc (default_options_table): Handle ext-dce at -O2 or higher.
+ 	* passes.def: Add ext-dce before combine.
+ 	* tree-pass.h (make_pass_ext_dce): Prototype.
+ 
+ 2024-07-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (x86_mov<mode>cc_0_m1_neg splitter to SImode):
+ 	New splitter.
+ 	(NEG and NOT splitter to SImode): Remove optimize_insn_for_size_p
+ 	predicate from insn condition.
+ 
+ 2024-07-08  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* doc/invoke.texi: Remove trailing whitespace.
+ 
+ 2024-07-08  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): Add VBF modes.
+ 	(ix86_expand_copysign): Ditto.
+ 	(ix86_expand_xorsign): Ditto.
+ 	* config/i386/i386.cc (ix86_build_const_vector): Ditto.
+ 	(ix86_build_signbit_mask): Ditto.
+ 	* config/i386/sse.md: Ditto.
+ 
+ 2024-07-08  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/110040
+ 	* config/rs6000/vsx.md (split pattern for V1TI to DI move): New define.
+ 
+ 2024-07-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (ustrunc<mode><v_double_trunc>2): Add
+ 	new pattern for double truncation.
+ 	(ustrunc<mode><v_quad_trunc>2): Ditto but for quad truncation.
+ 	(ustrunc<mode><v_oct_trunc>2): Ditto but for oct truncation.
+ 	* config/riscv/riscv-protos.h (expand_vec_double_ustrunc): Add
+ 	new func decl to expand double vec ustrunc.
+ 	(expand_vec_quad_ustrunc): Ditto but for quad.
+ 	(expand_vec_oct_ustrunc): Ditto but for oct.
+ 	* config/riscv/riscv-v.cc (expand_vec_double_ustrunc): Add new
+ 	func impl to expand vector double ustrunc.
+ 	(expand_vec_quad_ustrunc): Ditto but for quad.
+ 	(expand_vec_oct_ustrunc): Ditto but for oct.
+ 
+ 2024-07-08  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::riscv_subset_list):
+ 	init m_subset_num to 0.
+ 	(riscv_subset_list::add): increase m_subset_num once a subset added.
+ 	(riscv_subset_list::finalize): call handle_implied_ext repeatly
+ 	until no change in m_subset_num.
+ 	* config/riscv/riscv-subset.h: add m_subset_num member.
+ 
+ 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/115659
+ 	* config/rs6000/rs6000-builtins.def: Update some bif expanders by
+ 	replacing orc<mode>3 with iorc<mode>3.
+ 	* config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update gen
+ 	function by replacing orc<mode>3 with iorc<mode>3.
+ 	* config/rs6000/rs6000.md (orc<mode>3): Rename to ...
+ 	(iorc<mode>3): ... this.
+ 
+ 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/115659
+ 	* doc/md.texi: Document andcm3 and iorcm3.
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for
+ 	patterns x CMP y ? 0 : z and x CMP y ? z : -1.
+ 	* internal-fn.def (BIT_ANDC): New internal function.
+ 	(BIT_IORC): Likewise.
+ 	* optabs.def (andc, iorc): New optab.
+ 
+ 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115688
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Consider
+ 	explicit VSX when masking off ALTIVEC.
+ 
+ 2024-07-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_print_operand): Always generate
+ 	branch hint for conditional branches.
+ 	* config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split
+ 	into ..
+ 	(TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
+ 	(TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
+ 	* config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS):
+ 	Split into ..
+ 	(X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
+ 	(X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
+ 
+ 2024-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/bugreport.texi (Bug Criteria): Remove dubious example.
+ 
+ 2024-07-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bset splitters): Turn into define_and_splits.
+ 	Don't depend on combine splitting the "andn with constant" form.
+ 	(bset, binv, bclr with masked bit position): New patterns.
+ 
+ 2024-07-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/sh/sh.md (adddi3): Only allow matching when we can
+ 	still create new pseudos.
+ 	(subdi3, *rotcl, *rotcr, *rotcr_neg_t, negdi2): Likewise.
+ 	(abs<mode>2, negabs<mode>2, negdi_cond): Likewise.
+ 	(*swapbisi2_and_shl8, *swapbhisi2, *movsi_index_disp_load): Likewise.
+ 	(*movhi_index_disp_load, *mov<mode>index_disp_store): Likewise.
+ 	(*mov_t_msb_neg, *negt_msb, clipu_one): Likewise.
+ 
+ 2024-07-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md: Also split with avr_split_tiny_move()
+ 	for non-AVR_TINY.
+ 	* config/avr/avr.cc (avr_split_tiny_move): Don't change memory
+ 	references with base regs that can do PLUS addressing.
+ 	(avr_out_lpm_no_lpmx) [POST_INC]: Don't output final ADIW when the
+ 	address register is unused after.
+ 
+ 2024-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/115591
+ 	* config/riscv/riscv.cc (riscv_valid_lo_sum_p): Add missing test on
+ 	tree_fits_uhwi_p before calling tree_to_uhwi.
+ 
+ 2024-07-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/115751
+ 	* config/i386/i386-expand.cc (ix86_expand_ternlog): Avoid use of
+ 	force_reg to "reload" non-register operands, as these may contain
+ 	vec_duplicate (broadcast) operands that aren't supported by
+ 	force_reg.  Use (safer) gen_reg_rtx and emit_move instead.
+ 
+ 2024-07-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/i386/i386.cc (ix86_cannot_copy_insn_p): New.
+ 	(TARGET_CANNOT_COPY_INSN_P): New.
+ 
+ 2024-07-05  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/115153
+ 	* config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before
+ 	NEON.
+ 	(thumb2_legitimate_index_p): Update comments.
+ 	(output_move_neon): Use DFmode for vldr/vstr and non-checking
+ 	adjust_address.
+ 
+ 2024-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Add TU policy.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Define
+ 	SCALAR_MOVE_MERGED_OP_TU.
+ 
+ 2024-07-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/87376
+ 	* config/avr/avr-dimode.md: Use "nop_general_operand" instead
+ 	of "general_operand" as predicate for all input operands.
+ 
+ 2024-07-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (struct expand_vec_perm_d): Add zero_op0_p
+ 	and zero_op_p1.
+ 	(aarch64_evpc_tbl): Implement register value remapping.
+ 	(aarch64_vectorize_vec_perm_const): Detect if operand is a zero dup
+ 	before it's forced to a reg.
+ 
+ 2024-07-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(aarch64_simd_vec_unpack<su>_lo_<mode>): Remove.
+ 	(vec_unpack<su>_lo_<mode): Simplify.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_shareable_zero): Update
+ 	comment.
+ 
+ 2024-07-05  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* dominance.cc (dot_dominance_tree): New.
+ 
+ 2024-07-05  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md (ssedoublemode): Remove mappings to twice
+ 	the number of same-sized elements. Add mappings to the same
+ 	number of double-sized elements.
+ 	(define_split for vec_concat_minus_plus): Change mode_attr from
+ 	ssedoublemode to ssedoublevecmode.
+ 	(define_split for vec_concat_plus_minus): Ditto.
+ 	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>):
+ 	Ditto.
+ 	(avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
+ 	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
+ 	(avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
+ 
+ 2024-07-05  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips-protos.h: New function mips_msa_shf_i8.
+ 	* config/mips/mips-msa.md(MSA_WHB_W): Not used anymore;
+ 	(msa_shf_<msafmt_f>): Use mips_msa_shf_i8.
+ 	* config/mips/mips.cc(mips_const_vector_shuffle_set_p):
+ 	Support more cases try to use alien mode instruction;
+ 	(mips_msa_shf_i8): New function to get the correct MSA SHF
+ 	instruction and IMM.
+ 
+ 2024-07-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Special case
+ 	three input permute with the same number of lanes in store
+ 	permute lowering.
+ 
+ 2024-07-04  Siarhei Volkau  <lis8215@gmail.com>
+ 
+ 	* config/arm/arm.cc (thumb_load_double_from_address): Emit ldmia
+ 	when address reg rewritten by load.
+ 	* config/arm/thumb1.md (peephole2 to rewrite DI/DF load): New.
+ 	(peephole2 to rewrite DI/DF store): New.
+ 	* config/arm/iterators.md (DIDF): New.
+ 
+ 2024-07-04  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/114890
+ 	* config/aarch64/aarch64-simd.md: Remove bigendian operand swap.
+ 
+ 2024-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/115426
+ 	* gimplify.cc (gimplify_asm_expr): Handle "rm" output
+ 	constraint gimplified to a register (operation).
+ 
+ 2024-07-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (bswaphisi2_lowpart peephole2): New
+ 	peephole2 variant to eliminate register shuffling.
+ 
+ 2024-07-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/rx/rx.cc (rx_expand_prologue): Mark the copy from FP to SP
+ 	as frame related.
+ 	(rx_expand_epilogue): Mark the stack pointer adjustment as frame
+ 	related.
+ 
+ 2024-07-04  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used
+ 	flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return.
+ 	(ix86_emit_save_regs): Emit ppx is available only when
+ 	TARGET_APX_PPX && !crtl->calls_eh_return.
+ 	(ix86_expand_epilogue): Don't restore reg using mov when
+ 	apx_ppx_used flag is true.
+ 	* config/i386/i386.h (struct machine_frame_state):
+ 	Add apx_ppx_used flag.
+ 
+ 2024-07-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR tree-optimization/115753
+ 	* tree-vect-stmts.cc (supportable_indirect_convert_operation): Add
+ 	TYPE_CODE check before SSA_NAME_RANGE_INFO.
+ 
+ 2024-07-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* reorg.cc (relax_delay_slots): Do not optimize a conditional
+ 	jump around an unconditional jump/return in the presence of
+ 	a text section switch.
+ 
+ 2024-07-03  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	Revert:
+ 	2023-10-05  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete.
+ 
+ 2024-07-03  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* doc/invoke.texi: Describe -march behavior for dependent extensions on
+ 	RISC-V.
+ 
+ 2024-07-03  Gianluca Guida  <gianluca@rivosinc.com>
+ 	    Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::to_string): Skip zabha when not supported by
+ 	the assembler.
+ 	* config.in: Regenerate.
+ 	* config/riscv/arch-canonicalize: Make zabha imply zaamo.
+ 	* config/riscv/iterators.md (amobh): Add iterator for amo
+ 	byte/halfword.
+ 	* config/riscv/riscv.opt: Add zabha.
+ 	* config/riscv/sync.md (atomic_<atomic_optab><mode>): Add
+ 	subword atomic op pattern.
+ 	(zabha_atomic_fetch_<atomic_optab><mode>): Add subword
+ 	atomic_fetch op pattern.
+ 	(lrsc_atomic_fetch_<atomic_optab><mode>): Prefer zabha over lrsc
+ 	for subword atomic ops.
+ 	(zabha_atomic_exchange<mode>): Add subword atomic exchange
+ 	pattern.
+ 	(lrsc_atomic_exchange<mode>): Prefer zabha over lrsc for subword
+ 	atomic exchange ops.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add zabha assembler check.
+ 	* doc/sourcebuild.texi: Add zabha documentation.
+ 
+ 2024-07-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115763
+ 	* config/riscv/vector.md (*pred_broadcast<mode>): Split into
+ 	zvfh and zvfhmin part.
+ 	(*pred_broadcast<mode>_zvfh): New define_insn for zvfh part.
+ 	(*pred_broadcast<mode>_zvfhmin): Ditto but for zvfhmin.
+ 
+ 2024-07-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Allow any otype is less than itype truncation.
+ 
+ 2024-07-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-patterns.cc (gimple_unsigned_integer_sat_trunc): Add
+ 	new decl generated by match.
+ 	(vect_recog_sat_trunc_pattern): Add new func impl to recog the
+ 	.SAT_TRUNC pattern.
+ 
+ 2024-07-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
+ 	redundant dump.
+ 
+ 2024-07-03  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* match.pd: Fold x/sqrt(x) to sqrt(x).
+ 
+ 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* dwarf2out.cc (modified_type_die): Follow name's debug type.
+ 
+ 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/113719
+ 	* config/i386/i386-options.cc
+ 	(ix86_override_options_after_change_1): Add opts and opts_set
+ 	parms, operate on them, after factoring out of...
+ 	(ix86_override_options_after_change): ... this.  Restore calls
+ 	of ix86_default_align and ix86_recompute_optlev_based_flags.
+ 	(ix86_option_override_internal): Call the factored-out bits.
+ 
+ 2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/115475
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16.
+ 
+ 2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/115457
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Define __ARM_FEATURE_BF16 for TARGET_BF16_FP.
+ 
+ 2024-07-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (bst_traits::hash): Handle NULL elements
+ 	in SLP_TREE_SCALAR_STMTS.
+ 	(vect_print_slp_tree): Likewise.
+ 	(vect_mark_slp_stmts): Likewise.
+ 	(vect_mark_slp_stmts_relevant): Likewise.
+ 	(vect_find_last_scalar_stmt_in_slp): Likewise.
+ 	(vect_bb_slp_mark_live_stmts): Likewise.
+ 	(vect_slp_prune_covered_roots): Likewise.
+ 	(vect_bb_partition_graph_r): Likewise.
+ 	(vect_remove_slp_scalar_calls): Likewise.
+ 	(vect_slp_gather_vectorized_scalar_stmts): Likewise.
+ 	(vect_bb_slp_scalar_cost): Likewise.
+ 	(vect_contains_pattern_stmt_p): Likewise.
+ 	(vect_slp_convert_to_external): Likewise.
+ 	(vect_find_first_scalar_stmt_in_slp): Likewise.
+ 	(vect_optimize_slp_pass::remove_redundant_permutations): Likewise.
+ 	(vect_slp_analyze_node_operations_1): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 	* tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	* tree-vect-data-refs.cc (vect_slp_analyze_load_dependences):
+ 	Handle NULL elements in SLP_TREE_SCALAR_STMTS.
+ 
+ 2024-07-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/98762
+ 	* config/avr/avr.cc (avr_out_movqi_r_mr_reg_disp_tiny): Properly
+ 	restore the base register when it is partially clobbered.
+ 
+ 2024-07-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114932
+ 	* tree-ssa-loop-ivopts.cc (constant_multiple_of): Use
+ 	aff_combination_constant_multiple_p instead.
+ 
+ 2024-07-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114932
+ 	* tree-affine.cc (wide_int_constant_multiple_p): Support 0 and 0 being
+ 	multiples.
+ 
+ 2024-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* df.h (DF_LR_DCE): New df_problem_id.
+ 	(df_lr_dce): New macro.
+ 	* df-core.cc (rest_of_handle_df_finish): Check for a null free_fun.
+ 	* df-problems.cc (df_lr_finalize): Split out fast DCE handling to...
+ 	(df_lr_dce_finalize): ...this new function.
+ 	(problem_LR_DCE): New df_problem.
+ 	(df_lr_add_problem): Register LR_DCE rather than LR itself.
+ 	* dce.cc (fast_dce): Clear df_lr_dce->solutions_dirty.
+ 
+ 2024-07-02  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/113859
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>): Rename to...
+ 	(@aarch64_<su>addlp<mode>): ... This.
+ 	(popcount<mode>2): New define_expand.
+ 
+ 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* passes.def (expand_pow): Renamed from expand_powcabs.
+ 	* timevar.def (TV_TREE_POWCABS): Remove.
+ 	(TV_TREE_POW): Add
+ 	* tree-pass.h (make_pass_expand_powcabs): Rename to ...
+ 	(make_pass_expand_pow): This.
+ 	* tree-ssa-math-opts.cc (class pass_expand_powcabs): Rename to ...
+ 	(class pass_expand_pow): This.
+ 	(pass_expand_powcabs::execute): Rename to ...
+ 	(pass_expand_pow::execute): This.
+ 	(make_pass_expand_powcabs): Rename to ...
+ 	(make_pass_expand_pow): This.
+ 
+ 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-complex.cc (gimple_expand_builtin_cabs): Add
+ 	`cabs(a+ai)`, `cabs(x+0i)` and `cabs(0+xi)` optimizations.
+ 
+ 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115710
+ 	* tree-complex.cc (init_dont_simulate_again): Handle CABS.
+ 	(gimple_expand_builtin_cabs): New function, moved mostly
+ 	from tree-ssa-math-opts.cc.
+ 	(expand_complex_operations_1): Call gimple_expand_builtin_cabs.
+ 	* tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Remove.
+ 	(build_and_insert_binop): Remove.
+ 	(pass_data_expand_powcabs): Update comment.
+ 	(pass_expand_powcabs::execute): Don't handle CABS.
+ 
+ 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-complex.cc (expand_complex_addition): If both
+ 	operands have the same real and imag parts, only
+ 	add the addition once.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 	    Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* btfout.cc (btf_mark_type_used): New.
+ 	* ctfc.h (btf_mark_type_used): Declare it here.
+ 	* config/bpf/bpf.cc (bpf_option_override): Enable -gprune-btf
+ 	by default if -gbtf is enabled.
+ 	* config/bpf/core-builtins.cc (extra_fn): New typedef.
+ 	(compute_field_expr): Add callback parameter, and call it if supplied.
+ 	Fix computation for MEM_REF.
+ 	(mark_component_type_as_used): New.
+ 	(bpf_mark_types_as_used): Likewise.
+ 	(bpf_expand_core_builtin): Call here.
+ 	* doc/invoke.texi (Debugging Options): Note that -gprune-btf is
+ 	enabled by default for BPF target when generating BTF.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_used_types): New hash set.
+ 	(struct btf_fixup): New.
+ 	(fixups, forwards): New vecs.
+ 	(btf_output): Calculate num_types depending on debug_prune_btf.
+ 	(btf_early_finsih): New initialization for debug_prune_btf.
+ 	(btf_add_used_type): New function.
+ 	(btf_used_type_list_cb): Likewise.
+ 	(btf_collect_pruned_types): Likewise.
+ 	(btf_add_vars): Handle special case for variables in ".maps" section
+ 	when generating BTF for BPF CO-RE target.
+ 	(btf_late_finish): Use btf_collect_pruned_types when debug_prune_btf
+ 	is in effect.  Move some initialization to btf_early_finish.
+ 	(btf_finalize): Additional deallocation for debug_prune_btf.
+ 	* common.opt (gprune-btf): New flag.
+ 	* ctfc.cc (init_ctf_strtable): Make non-static.
+ 	* ctfc.h (init_ctf_strtable, ctfc_delete_strtab): Make extern.
+ 	* doc/invoke.texi (Debugging Options): Document -gprune-btf.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (struct btf_datasec_entry): New.
+ 	(struct btf_datasec): Add `id' member.  Change `entries' to use
+ 	new struct btf_datasec_entry.
+ 	(func_map): New hash_map.
+ 	(max_translated_id): New.
+ 	(btf_var_ids, btf_id_map, holes, voids, num_vars_added)
+ 	(num_types_added, num_types_created): Delete.
+ 	(btf_absolute_var_id, btf_relative_var_id, btf_absolute_func_id)
+ 	(btf_relative_func_id, btf_absolute_datasec_id, init_btf_id_map)
+ 	(get_btf_id, set_btf_id, btf_emit_id_p): Delete.
+ 	(btf_removed_type_p): Delete.
+ 	(btf_dtd_kind, btf_emit_type_p): New helpers.
+ 	(btf_fwd_to_enum_p, btf_calc_num_vbytes): Use them.
+ 	(btf_collect_datasec): Delete.
+ 	(btf_dtd_postprocess_cb, btf_dvd_emit_preprocess_cb)
+ 	(btf_dtd_emit_preprocess_cb, btf_emit_preprocess): Delete.
+ 	(btf_dmd_representable_bitfield_p): Adapt to type reference changes
+ 	and delete now-unused ctfc argument.
+ 	(btf_asm_datasec_type_ref): Delete.
+ 	(btf_asm_type_ref): Adapt to type reference changes, simplify.
+ 	(btf_asm_type): Likewise. Mark struct/union types with bitfield
+ 	members.
+ 	(btf_asm_array): Adapt to data structure changes.
+ 	(btf_asm_varent): Likewise.
+ 	(btf_asm_sou_member): Likewise. Ensure non-bitfield members are
+ 	correctly re-encoded if struct or union contains any bitfield.
+ 	(btf_asm_func_arg, btf_asm_func_type, btf_asm_datasec_entry)
+ 	(btf_asm_datasec_type): Adapt to data structure changes.
+ 	(output_btf_header): Adapt to other changes, simplify type
+ 	length calculation, add info to assembler comments.
+ 	(output_btf_vars): Adapt to other changes.
+ 	(output_btf_strs): Fix overlong lines.
+ 	(output_asm_btf_sou_fields, output_asm_btf_enum_list)
+ 	(output_asm_btf_func_args_list, output_asm_btf_vlen_bytes)
+ 	(output_asm_btf_type, output_btf_types, output_btf_func_types)
+ 	(output_btf_datasec_types): Adapt to other changes.
+ 	(btf_init_postprocess): Delete.
+ 	(btf_output): Change to only perform output.
+ 	(btf_add_const_void, btf_add_func_records): New.
+ 	(btf_early_finish): Use them here. New.
+ 	(btf_datasec_push_entry): Adapt to data structure changes.
+ 	(btf_datasec_add_func, btf_datasec_add_var): New.
+ 	(btf_add_func_datasec_entries): New.
+ 	(btf_emit_variable_p): New helper.
+ 	(btf_add_vars): Use it here. New.
+ 	(btf_type_list_cb, btf_collect_translated_types): New.
+ 	(btf_assign_func_ids, btf_late_assign_var_ids)
+ 	(btf_assign_datasec_ids): New.
+ 	(btf_finish): Remove unused argument. Call new btf_late*
+ 	functions and btf_output.
+ 	(btf_finalize): Adapt to data structure changes.
+ 	* ctfc.h (struct ctf_dtdef): Convert existing boolean flags to
+ 	BOOL_BITFIELD and reorder.
+ 	(struct ctf_dvdef): Add dvd_id member.
+ 	(btf_finish): Remove argument from prototype.
+ 	(get_btf_id): Delete prototype.
+ 	(funcs_traverse_callback, traverse_btf_func_types): Add an
+ 	explanatory comment.
+ 	* dwarf2ctf.cc (ctf_debug_finish): Remove unused argument.
+ 	* dwarf2ctf.h: Analogous change.
+ 	* dwarf2out.cc: Likewise.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines to
+ 	include/btf.h.
+ 	(btf_dvd_emit_preprocess_cb, btf_emit_preprocess)
+ 	(btf_dmd_representable_bitfield_p, btf_asm_array, btf_asm_varent)
+ 	(btf_asm_sou_member, btf_asm_func_arg, btf_init_postprocess):
+ 	Adapt to structural changes in ctf_* structs.
+ 	* ctfc.h (struct ctf_dtdef): Add forward declaration.
+ 	(ctf_dtdef_t, ctf_dtdef_ref): Move typedefs earlier.
+ 	(struct ctf_arinfo, struct ctf_funcinfo, struct ctf_sliceinfo)
+ 	(struct ctf_itype, struct ctf_dmdef, struct ctf_func_arg)
+ 	(struct ctf_dvdef): Use pointers instead of type IDs for
+ 	references to other types and use typedefs where appropriate.
+ 	(struct ctf_dtdef): Add ref_type member.
+ 	(ctf_type_exists): Use pointer instead of type ID.
+ 	(ctf_add_reftype, ctf_add_enum, ctf_add_slice, ctf_add_float)
+ 	(ctf_add_integer, ctf_add_unknown, ctf_add_pointer)
+ 	(ctf_add_array, ctf_add_forward, ctf_add_typedef)
+ 	(ctf_add_function, ctf_add_sou, ctf_add_enumerator)
+ 	(ctf_add_variable): Likewise. Return pointer instead of ID.
+ 	(ctf_lookup_tree_type): Return pointer to type instead of ID.
+ 	* ctfc.cc: Analogous changes.
+ 	* ctfout.cc (ctf_asm_type, ctf_asm_slice, ctf_asm_varent)
+ 	(ctf_asm_sou_lmember, ctf_asm_sou_member, ctf_asm_func_arg)
+ 	(output_ctf_objt_info): Adapt to changes.
+ 	* dwarf2ctf.cc (gen_ctf_type, gen_ctf_void_type)
+ 	(gen_ctf_unknown_type, gen_ctf_base_type, gen_ctf_pointer_type)
+ 	(gen_ctf_subrange_type, gen_ctf_array_type, gen_ctf_typedef)
+ 	(gen_ctf_modifier_type, gen_ctf_sou_type, gen_ctf_function_type)
+ 	(gen_ctf_enumeration_type, gen_ctf_variable, gen_ctf_function)
+ 	(gen_ctf_type, ctf_do_die): Likewise.
+ 	* config/bpf/btfext-out.cc (struct btf_ext_core_reloc): Use
+ 	pointer instead of type ID.
+ 	(bpf_core_reloc_add, bpf_core_get_sou_member_index)
+ 	(output_btfext_core_sections): Adapt to above changes.
+ 	* config/bpf/core-builtins.cc (process_type): Likewise.
+ 
+ 2024-07-02  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_init_postprocess): Rename to...
+ 	(btf_early_finish): ...this.
+ 	(btf_output): Rename to...
+ 	(btf_finish): ...this.
+ 	* ctfc.h: Analogous changes.
+ 	* dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call
+ 	btf_early_finish, or ctf_finalize as appropriate.  Emit BTF
+ 	here for LTO builds.
+ 	(ctf_debug_finish): Always call btf_finish here if generating
+ 	BTF info in non-LTO builds.
+ 	(ctf_debug_finalize, ctf_debug_init_postprocess): Delete.
+ 	* dwarf2out.cc (dwarf2out_early_finish): Remove call to
+ 	ctf_debug_init_postprocess.
+ 
+ 2024-07-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/115188
+ 	* config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and
+ 	'mem_and_no_t1_wback_op'.
+ 	(unaligned_loadhiu): Likewise.
+ 	(unaligned_storesi): Likewise.
+ 	(unaligned_storehi): Likewise.
+ 	* config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate.
+ 	* config/arm/sync.md (arm_atomic_load<mode>): Use 'Uw' constraint.
+ 	(arm_atomic_store<mode>): Likewise.
+ 
+ 2024-07-02  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	* doc/tm.texi: Regenerated.
+ 	* target.def (function_attribute_inlinable_p,
+ 	unspec_may_trap_p): Update documentation.
+ 
+ 2024-07-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115741
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Also
+ 	handle VMAT_CONTIGUOUS_REVERSE when determining overrun.
+ 
+ 2024-07-02  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (TARGET_GLOBAL_ADDRSPACE): New.
+ 	(TARGET_AVGPRS): New.
+ 	(TARGET_AVGPR_MEMOPS): New.
+ 	(TARGET_AVGPR_COMBINED): New.
+ 	(TARGET_FLAT_OFFSETS): New.
+ 	(TARGET_11BIT_GLOBAL_OFFSET): New.
+ 	(TARGET_CDNA2_MEM_COSTS): New.
+ 	(TARGET_WAVE64_COMPAT): New.
+ 	(TARGET_DPP_FULL): New.
+ 	(TARGET_DPP16): New.
+ 	(TARGET_DPP8): New.
+ 	(TARGET_AVGPR_CDNA1_NOPS): New.
+ 	(TARGET_VGPR_GRANULARITY): New.
+ 	(TARGET_ARCHITECTED_FLAT_SCRATCH): New.
+ 	(TARGET_EXPLICIT_CARRY): New.
+ 	(TARGET_MULTIPLY_IMMEDIATE): New.
+ 	(TARGET_SDWA): New.
+ 	(TARGET_WBINVL1_CACHE): New.
+ 	(TARGET_GLn_CACHE): New.
+ 	* config/gcn/gcn-valu.md (throughout): Change TARGET_GCN*,
+ 	TARGET_CDNA* and TARGET_RDNA* to use TARGET_<feature> instead.
+ 	* config/gcn/gcn.cc (throughout): Likewise.
+ 	* config/gcn/gcn.md (throughout): Likewise.
+ 
+ 2024-07-02  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*imulhi<mode>zu): Added APX
+ 	NF support.
+ 	(*imulhi<mode>zu<nf_name>): New define_insn.
+ 	(*mulsi3_1_zext<nf_name>): Ditto.
+ 	(*mul<mode><dwi>3_1<nf_name>): Ditto.
+ 	(*<u>mulqihi3_1<nf_name>): Ditto.
+ 	(*mul<mode>3_1<nf_name>): Added APX NDD support.
+ 	(*mulv<mode>4): Ditto.
+ 	(*mulvhi4): Ditto.
+ 
+ 2024-07-02  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/115739
+ 	* config/sparc/vxworks.h (SPARC_LONG_DOUBLE_TYPE_SIZE): New define.
+ 
+ 2024-07-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_insn_cost):
+ 	New function.
+ 	(TARGET_INSN_COST): New macro.
+ 
+ 2024-07-02  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/115659
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for
+ 	patterns x CMP y ? -1 : z and x CMP y ? z : 0.
+ 
+ 2024-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (fwprop_set_lattice_val): Preserve
+ 	SSA info.
+ 	* tree-ssa-propagate.cc
+ 	(substitute_and_fold_dom_walker::before_dom_children): Likewise.
+ 
+ 2024-07-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (peephole2): Transform two consecutive
+ 	additions into a 3-component lea if !TARGET_AVOID_LEA_FOR_ADDR.
+ 
+ 2024-07-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/88236
+ 	PR target/115726
+ 	* config/avr/avr.md (mov<mode>) [avr_mem_memx_p]: Expand in such a
+ 	way that the destination does not overlap with any hard register
+ 	clobbered / used by xload8qi_A resp. xload<mode>_A.
+ 	* config/avr/avr.cc (avr_out_xload): Avoid early-clobber
+ 	situation for Z by executing just one load when the output register
+ 	overlaps with Z.
+ 
+ 2024-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115723
+ 	* tree-vect-loop.cc (check_reduction_path): For a .COND_ADD
+ 	verify the else value also refers to the reduction chain op.
+ 
+ 2024-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115694
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Check the
+ 	store is complex before rewriting it.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/mmx.md (vcond<mode>v2sf): Removed.
+ 	(vcond<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
+ 	(vcond<mode><mode>): Ditto.
+ 	(vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
+ 	(vcondu<mode><mode>): Ditto.
+ 	* config/i386/sse.md (vcond<V_512:mode><VF_512:mode>): Ditto.
+ 	(vcond<V_256:mode><VF_256:mode>): Ditto.
+ 	(vcond<V_128:mode><VF_128:mode>): Ditto.
+ 	(vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): Ditto.
+ 	(vcond<V_512:mode><VI_AVX512BW:mode>): Ditto.
+ 	(vcond<V_256:mode><VI_256:mode>): Ditto.
+ 	(vcond<V_128:mode><VI124_128:mode>): Ditto.
+ 	(vcond<VI8F_128:mode>v2di): Ditto.
+ 	(vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto.
+ 	(vcondu<V_256:mode><VI_256:mode>): Ditto.
+ 	(vcondu<V_128:mode><VI124_128:mode>): Ditto.
+ 	(vcondu<VI8F_128:mode>v2di): Ditto.
+ 	(vcondeq<VI8F_128:mode>v2di): Ditto.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md ("*ashr<mode>3_1"): New
+ 	define_insn_and_split.
+ 	(*avx512_ashr<mode>3_1): Ditto.
+ 	(*avx2_lshr<mode>3_1): Ditto.
+ 	(*avx2_lshr<mode>3_2): Ditto and add 2 combine splitter after
+ 	it.
+ 	* config/i386/mmx.md (mmxscalarsize): New mode attribute.
+ 	(*mmw_ashr<mode>3_1): New define_insn_and_split.
+ 	("mmx_<insn><mode>3): Add a combine spiltter after it.
+ 	(*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a
+ 	combine splitter after it.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt_avx512): New
+ 	define_insn_and_split.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt_avx512):
+ 	Ditto.
+ 	(*<sse2_avx2>_pmovmskb_lt_avx512): Ditto.
+ 	(*<sse2_avx2>_pmovmskb_zext_lt_avx512): Ditto.
+ 	(*sse2_pmovmskb_ext_lt_avx512): Ditto.
+ 	(*pmovsk_kmask_v16qi_avx512): Ditto.
+ 	(*pmovsk_mask_v32qi_avx512): Ditto.
+ 	(*pmovsk_mask_cmp_<mode>_avx512): Ditto.
+ 	(*pmovsk_ptest_<mode>_avx512): Ditto.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md (*minmax<mode>3_1): New pre_reload
+ 	define_insn_and_split.
+ 	(*minmax<mode>3_2): Ditto.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>_not): New pre_reload
+ 	splitter.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>_not): Ditto.
+ 	(*avx2_pcmp<mode>3_6): Ditto.
+ 	(*avx2_pcmp<mode>3_7): Ditto.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115517
+ 	* config/i386/sse.md
+ 	(*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_gt): New
+ 	define_insn_and_split.
+ 	(*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_gtint):
+ 	Ditto.
+ 	(*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_gtint):
+ 	Ditto.
+ 	(*<sse4_1_avx2>_pblendvb_gt): Ditto.
+ 	(*<sse4_1_avx2>_pblendvb_gt_subreg_not): Ditto.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-features.cc (ix86_rpad_gate): New function.
+ 	* config/i386/i386-options.cc (ix86_override_options_after_change):
+ 	Don't disable flate_combine.
+ 	* config/i386/i386-passes.def: Move pass_stv2 and pass_rpad
+ 	after pre_reload pas_late_combine.
+ 	* config/i386/i386-protos.h (ix86_rpad_gate): New declare.
+ 	* config/i386/i386.cc (ix86_insn_cost): New function.
+ 	(TARGET_INSN_COST): Define.
+ 
+ 2024-07-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115610
+ 	* config/i386/i386.md (<*insnsi3_zext): Add alternative ?k,
+ 	enable it only for lshiftrt and under avx512bw.
+ 	* config/i386/sse.md (*klshrsi3_1_zext): New define_insn, and
+ 	add corresponding define_split after it.
+ 
+ 2024-06-30  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/115691
+ 	* config/pa/pa.md: Remove incorrect xmpyu patterns.
+ 
+ 2024-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115701
+ 	* tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy):
+ 	Only copy info from within the same BB.
+ 
+ 2024-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115701
+ 	* tree-ssanames.h (maybe_duplicate_ssa_info_at_copy): Declare.
+ 	* tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): New
+ 	function, split out from ...
+ 	* tree-ssa-copy.cc (fini_copy_prop): ... here.
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): ...
+ 	and here.
+ 
+ 2024-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Compare
+ 	STMT_VINFO_REDUC_IDX.
+ 	(vect_build_slp_tree_2): Prevent operand swapping for
+ 	all stmts participating in a reduction.
+ 
+ 2024-06-30  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Determine input vectype
+ 	during traversal of reduction statements.
+ 
+ 2024-06-30  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_shift): Allow shift-by-induction
+ 	for single-lane slp node.
+ 
+ 2024-06-29  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	PR rtl-optimization/115565
+ 	* cse.cc (record_jump_cond): Use INT_MIN rather than -1 for
+ 	`comparison_qty' if !REG_P.
+ 
+ 2024-06-29  Sergei Lewis  <slewis@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md (movmem<mode>): New expander.
+ 
+ 2024-06-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add imm form for .SAT_ADD matching.
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
+ 	Add .SAT_ADD matching under PLUS_EXPR.
+ 
+ 2024-06-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/mcore/mcore.md  (zero_extendqihi2): Clobber CC in expander
+ 	and matching insn.
+ 	(zero_extendqisi2): Likewise.
+ 
+ 2024-06-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_lazy_cache::ssa_lazy_cache): Relocate here.
+ 	Check for provided obstack.
+ 	(ssa_lazy_cache::~ssa_lazy_cache): Relocate here.  Free bitmap or obstack.
+ 	* gimple-range-cache.h (ssa_lazy_cache::ssa_lazy_cache): Move.
+ 	(ssa_lazy_cache::~ssa_lazy_cache): Move.
+ 	(ssa_lazy_cache::m_ob): New.
+ 	* gimple-range.cc (dom_ranger::dom_ranger): Iniitialize obstack.
+ 	(dom_ranger::~dom_ranger): Release obstack.
+ 	(dom_ranger::pre_bb): Create ssa_lazy_cache using obstack.
+ 	* gimple-range.h (m_bitmaps): New.
+ 
+ 2024-06-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Remove extra
+ 	assignment to tmp variable, reuse tmp variable instead of
+ 	declaring new temporary variable and remove tmp variable shadowing.
+ 
+ 2024-06-28  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* tree-profile.cc (find_conditions): Use auto_vec without
+ 	embedded storage.
+ 
+ 2024-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115652
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Handle the case
+ 	where the outer loop header block is empty.
+ 
+ 2024-06-28  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	PR bootstrap/115635
+ 	PR target/115643
+ 	PR target/115661
+ 	* config/aarch64/cygming.h
+ 	(PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to
+ 	PE_COFF_LEGITIMIZE_EXTERN_DECL.
+ 	(PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
+ 	* config/i386/cygming.h (GOT_ALIAS_SET): Remove the diffinition to
+ 	reuse it from i386.h.
+ 	(PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to
+ 	PE_COFF_LEGITIMIZE_EXTERN_DECL.
+ 	(PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Return
+ 	ix86_GOT_alias_set.
+ 	* config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise.
+ 	* config/i386/i386.cc (ix86_GOT_alias_set): Likewise.
+ 	* config/i386/i386.h (GOT_ALIAS_SET): Likewise.
+ 	* config/mingw/winnt-dll.cc (get_dllimport_decl): Use
+ 	GOT_ALIAS_SET.
+ 	(legitimize_pe_coff_symbol): Rename to
+ 	PE_COFF_LEGITIMIZE_EXTERN_DECL.
+ 	* config/mingw/winnt-dll.h (ix86_GOT_alias_set): Declare
+ 	ix86_GOT_alias_set.
+ 
+ 2024-06-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-ptr.cc (class hybrid_and_operator): Remove.
+ 	(class hybrid_or_operator): Same.
+ 	(class hybrid_min_operator): Same.
+ 	(class hybrid_max_operator): Same.
+ 
+ 2024-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115640
+ 	* tree-vect-stmts.cc (vectorizable_load): With an inner
+ 	loop SLP access to not apply a gap adjustment.
+ 
+ 2024-06-28  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	PR target/115640
+ 	* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Modify RDNA checks.
+ 
+ 2024-06-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (*concat<mode><dwi>3_3): Change zero_extend
+ 	to any_extend in first operand to left shift by mode precision.
+ 	(*concat<mode><dwi>3_4): Likewise.
+ 	(*concat<mode><dwi>3_6): Likewise.
+ 
+ 2024-06-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_ternlog_idx) <case VEC_DUPLICATE>:
+ 	Add a "goto do_mem_operand" as this need not match memory_operand.
+ 	<case CONST_VECTOR>: Only args[2] may be volatile memory operand.
+ 	Allow MEM/VEC_DUPLICATE/CONST_VECTOR as args[0] and args[1].
+ 
+ 2024-06-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115677
+ 	* late-combine.cc (pass_late_combine::gate): New function.
+ 
+ 2024-06-27  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR target/115634
+ 	* config/s390/s390.cc (s390_decompose_addrstyle_without_index):
+ 	Check for ADDR_REGS in s390_decompose_addrstyle_without_index.
+ 
+ 2024-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115669
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Do not reassociate
+ 	chains that participate in a reduction.
+ 
+ 2024-06-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-cache.cc (update_list::update_list): Add m_bitmaps.
+ 	(update_list::~update_list): Initialize m_bitmaps.
+ 	* gimple-range-cache.h (ssa_lazy_cache): Add m_bitmaps.
+ 	* gimple-range.cc (enable_ranger): Remove global bitmap
+ 	initialization.
+ 	(disable_ranger): Remove global bitmap release.
+ 
+ 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name>
+ 	<round_name>): Refactor the pattern.
+ 	(unspec_fix<vcvtt_uns_suffix>_trunc<mode><sselongvecmodelower>2
+ 	<mask_name><round_saeonly_name>): Ditto.
+ 	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name>
+ 	<round_saeonly_name>): Ditto.
+ 	* config/i386/subst.md (round_modev8sf_condition): Remove.
+ 	(round_saeonly_modev8sf_condition): Ditto.
+ 
+ 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/107432
+ 	* config/i386/i386-expand.cc (ix86_expand_trunc_with_avx2_noavx512f):
+ 	New function for generate a series of suitable insn.
+ 	* config/i386/i386-protos.h (ix86_expand_trunc_with_avx2_noavx512f):
+ 	Define new function.
+ 	* config/i386/sse.md: Extend trunc<mode><mode>2 for x86-64-v3.
+ 	(ssebytemode) Add V8HI.
+ 	(PMOV_DST_MODE_2_AVX2): New mode iterator.
+ 	(PMOV_SRC_MODE_3_AVX2): Ditto.
+ 	* config/i386/mmx.md
+ 	(trunc<mode><mmxhalfmodelower>2): Ditto.
+ 	(avx512vl_trunc<mode><mmxhalfmodelower>2): Ditto.
+ 	(truncv2si<mode>2): Ditto.
+ 	(avx512vl_truncv2si<mode>2): Ditto.
+ 	(mmxbytemode): New mode attr.
+ 
+ 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/107432
+ 	* config/i386/mmx.md
+ 	(VI2_32_64): New mode iterator.
+ 	(mmxhalfmode): New mode atter.
+ 	(mmxhalfmodelower): Ditto.
+ 	(truncv2hiv2qi2): Extend mode v4hi and change name from
+ 	truncv2hiv2qi to trunc<mode><mmxhalfmodelower>2.
+ 
+ 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/107432
+ 	* tree-vect-generic.cc
+ 	(expand_vector_conversion): Support convert for int -> int,
+ 	float -> float and int <-> float.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Wrap the
+ 	indirect convert part.
+ 	(supportable_indirect_convert_operation): New function.
+ 	* tree-vectorizer.h (supportable_indirect_convert_operation):
+ 	Define the new function.
+ 
+ 2024-06-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
+ 	Dedup and sort the comment describing modifiers.
+ 
+ 2024-06-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc:
+ 	(loongarch_use_bstrins_for_ior_with_mask): Split the main logic
+ 	into ...
+ 	(loongarch_use_bstrins_for_ior_with_mask_1): ... here.
+ 	(loongarch_rtx_costs): Special case for IOR those can be
+ 	implemented with bstrins.
+ 
+ 2024-06-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115462
+ 	* config/i386/i386.cc (ix86_rtx_costs): Make cost of MEM (reg +
+ 	disp) just a little bit more than MEM (reg).
+ 
+ 2024-06-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* internal-fn.def (SAT_TRUNC): Add new signed IFN sat_trunc as
+ 	unary_convert.
+ 	* match.pd: Add new matching pattern for unsigned int sat_trunc.
+ 	* optabs.def (OPTAB_CL): Add unsigned and signed optab.
+ 	* tree-ssa-math-opts.cc (gimple_unsigend_integer_sat_trunc): Add
+ 	new decl for the matching pattern generated func.
+ 	(match_unsigned_saturation_trunc): Add new func impl to match
+ 	the .SAT_TRUNC.
+ 	(math_opts_dom_walker::after_dom_children): Add .SAT_TRUNC match
+ 	function under BIT_IOR_EXPR case.
+ 
+ 2024-06-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add convert description for minus and capture.
+ 	* tree-vect-patterns.cc (vect_recog_build_binary_gimple_call): Add
+ 	new logic to handle in_type is incompatibile with out_type,  as
+ 	well as rename from.
+ 	(vect_recog_build_binary_gimple_stmt): Rename to.
+ 	(vect_recog_sat_add_pattern): Leverage above renamed func.
+ 	(vect_recog_sat_sub_pattern): Ditto.
+ 
+ 2024-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115652
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Only insert
+ 	at the start of the block if that strictly dominates
+ 	the discovered dependent stmt.
+ 
+ 2024-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115493
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Use
+ 	first scalar result.
+ 
+ 2024-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115629
+ 	* tree-ssa-tail-merge.cc (gimple_equal_p): Handle
+ 	memory references better.
+ 	(deps_ok_for_redirect): Handle the case not both blocks
+ 	are considered a valid prevailing block.
+ 
+ 2024-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115652
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Advance the
+ 	iterator based on last_stmt only for vector defs.
+ 
+ 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* gcov-io.h (GCOV_ARC_TRUE): New.
+ 	(GCOV_ARC_FALSE): New.
+ 	* gcov.cc (struct arc_info): Add true_value, false_value.
+ 	(read_graph_file): Read true_value, false_value.
+ 	* profile.cc (branch_prob): Write GCOV_ARC_TRUE, GCOV_ARC_FALSE.
+ 
+ 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* gcov.cc (print_usage): Reference masking MC/DC.
+ 
+ 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* doc/gcov.texi: Add MC/DC section.
+ 
+ 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* tree-profile.cc (find_conditions): Use auto_vec.
+ 
+ 2024-06-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_predict_doloop_p): Reject loops with function
+ 	calls that are not builtins.
+ 
+ 2024-06-26  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (grace): New entry.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi (AArch64 Options): Document the above.
+ 
+ 2024-06-26  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config/i386/i386.cc (legitimize_dllimport_symbol): Remove unused
+ 	functions.
+ 	(legitimize_pe_coff_extern_decl): Likewise.
+ 
+ 2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Xionghu Luo  <xionghuluo@tencent.com>
+ 
+ 	PR target/106069
+ 	PR target/115355
+ 	* config/rs6000/altivec.md (altivec_vmrghh_direct): Rename to ...
+ 	(altivec_vmrghh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
+ 	(altivec_vmrghh_direct_le): New define_insn.
+ 	(altivec_vmrglh_direct): Rename to ...
+ 	(altivec_vmrglh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
+ 	(altivec_vmrglh_direct_le): New define_insn.
+ 	(altivec_vmrghh): Adjust by calling gen_altivec_vmrghh_direct_be
+ 	for BE and gen_altivec_vmrglh_direct_le for LE.
+ 	(altivec_vmrglh): Adjust by calling gen_altivec_vmrglh_direct_be
+ 	for BE and gen_altivec_vmrghh_direct_le for LE.
+ 	(vec_widen_umult_hi_v16qi): Adjust the call to
+ 	gen_altivec_vmrghh_direct by gen_altivec_vmrghh for BE
+ 	and by gen_altivec_vmrglh for LE.
+ 	(vec_widen_smult_hi_v16qi): Likewise.
+ 	(vec_widen_umult_lo_v16qi): Adjust the call to
+ 	gen_altivec_vmrglh_direct by gen_altivec_vmrglh for BE
+ 	and by gen_altivec_vmrghh for LE.
+ 	(vec_widen_smult_lo_v16qi): Likewise.
+ 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
+ 	CODE_FOR_altivec_vmrghh_direct by
+ 	CODE_FOR_altivec_vmrghh_direct_be for BE and
+ 	CODE_FOR_altivec_vmrghh_direct_le for LE.  And replace
+ 	CODE_FOR_altivec_vmrglh_direct by
+ 	CODE_FOR_altivec_vmrglh_direct_be for BE and
+ 	CODE_FOR_altivec_vmrglh_direct_le for LE.
+ 
+ 2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Xionghu Luo  <xionghuluo@tencent.com>
+ 
+ 	PR target/106069
+ 	PR target/115355
+ 	* config/rs6000/altivec.md (altivec_vmrghb_direct): Rename to ...
+ 	(altivec_vmrghb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
+ 	(altivec_vmrghb_direct_le): New define_insn.
+ 	(altivec_vmrglb_direct): Rename to ...
+ 	(altivec_vmrglb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
+ 	(altivec_vmrglb_direct_le): New define_insn.
+ 	(altivec_vmrghb): Adjust by calling gen_altivec_vmrghb_direct_be
+ 	for BE and gen_altivec_vmrglb_direct_le for LE.
+ 	(altivec_vmrglb): Adjust by calling gen_altivec_vmrglb_direct_be
+ 	for BE and gen_altivec_vmrghb_direct_le for LE.
+ 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
+ 	CODE_FOR_altivec_vmrghb_direct by
+ 	CODE_FOR_altivec_vmrghb_direct_be for BE and
+ 	CODE_FOR_altivec_vmrghb_direct_le for LE.  And replace
+ 	CODE_FOR_altivec_vmrglb_direct by
+ 	CODE_FOR_altivec_vmrglb_direct_be for BE and
+ 	CODE_FOR_altivec_vmrglb_direct_le for LE.
+ 
+ 2024-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115646
+ 	* tree-call-cdce.cc (check_pow): Check for bit_sz values
+ 	as allowed by transform.
+ 
+ 2024-06-26  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* builtins.cc (interclass_mathfn_icode): Set optab to isnormal_optab
+ 	for isnormal builtin.
+ 	* optabs.def (isnormal_optab): New.
+ 	* doc/md.texi (isnormal): Document.
+ 
+ 2024-06-26  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* builtins.cc (interclass_mathfn_icode): Set optab to isfinite_optab
+ 	for isfinite builtin.
+ 	* optabs.def (isfinite_optab): New.
+ 	* doc/md.texi (isfinite): Document.
+ 
+ 2024-06-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114189
+ 	* match.pd: Simplify a < 0 ? -1 : 0 to (signed) >> 31 and a <
+ 	0 ? 1 : 0 to (unsigned) a >> 31 for vector integer type.
+ 
+ 2024-06-26  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_custom_type): Add lf_procedure
+ 	and lf_arglist to union.
+ 	(write_lf_procedure, write_lf_arglist): New functions.
+ 	(write_custom_types): Call write_lf_procedure and write_lf_arglist.
+ 	(get_type_num_subroutine_type): New function.
+ 	(get_type_num): Handle DW_TAG_subroutine_type DIEs.
+ 	* dwarf2codeview.h (LF_PROCEDURE, LF_ARGLIST): Define.
+ 
+ 2024-06-26  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_custom_type): Add lf_bitfield to
+ 	union.
+ 	(write_lf_bitfield): New function.
+ 	(write_custom_types): Call write_lf_bitfield.
+ 	(create_bitfield): New function.
+ 	(get_type_num_struct): Handle bitfields.
+ 	* dwarf2codeview.h (LF_BITFIELD): Define.
+ 
+ 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-global-context.o.
+ 	* diagnostic-global-context.cc: New file, taken from material in
+ 	diagnostic.cc.
+ 	* diagnostic.cc (global_diagnostic_context): Move to
+ 	diagnostic-global-context.cc.
+ 	(global_dc): Likewise.
+ 	(verbatim): Likewise.
+ 	(emit_diagnostic): Likewise.
+ 	(emit_diagnostic_valist): Likewise.
+ 	(emit_diagnostic_valist_meta): Likewise.
+ 	(inform): Likewise.
+ 	(inform_n): Likewise.
+ 	(warning): Likewise.
+ 	(warning_at): Likewise.
+ 	(warning_meta): Likewise.
+ 	(warning_n): Likewise.
+ 	(pedwarn): Likewise.
+ 	(permerror): Likewise.
+ 	(permerror_opt): Likewise.
+ 	(error): Likewise.
+ 	(error_n): Likewise.
+ 	(error_at): Likewise.
+ 	(error_meta): Likewise.
+ 	(sorry): Likewise.
+ 	(sorry_at): Likewise.
+ 	(seen_error): Likewise.
+ 	(fatal_error): Likewise.
+ 	(internal_error): Likewise.
+ 	(internal_error_no_backtrace): Likewise.
+ 	(fnotice): Likewise.
+ 	(auto_diagnostic_group::auto_diagnostic_group): Likewise.
+ 	(auto_diagnostic_group::~auto_diagnostic_group): Likewise.
+ 
+ 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.cc (class path_label): Add m_path field,
+ 	and use it to replace all uses of global_dc.
+ 	(event_range::event_range): Add "ctxt" param and use it to
+ 	construct m_path_label.
+ 	(event_range::maybe_add_event): Add "ctxt" param and pass it to
+ 	gcc_rich_location::add_location_if_nearby.
+ 	(path_summary::path_summary): Add "ctxt" param and pass it to
+ 	event_range::maybe_add_event.
+ 	(diagnostic_context::print_path): Pass *this to path_summary ctor.
+ 	(selftest::test_empty_path): Use "dc" when constructing
+ 	path_summary rather than implicitly using global_dc.
+ 	(selftest::test_intraprocedural_path): Likewise.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	(selftest::diagnostic_path_cc_tests): Eliminate use of global_dc.
+ 	* diagnostic-show-locus.cc
+ 	(gcc_rich_location::add_location_if_nearby): Add "ctxt" param and
+ 	use it instead of implicitly using global_dc.
+ 	(selftest::test_add_location_if_nearby): Use
+ 	test_diagnostic_context rather than implicitly using global_dc.
+ 	* diagnostic.cc (pedantic_warning_kind): Delete macro.
+ 	(permissive_error_kind): Delete macro.
+ 	(permissive_error_option): Delete macro.
+ 	(diagnostic_context::diagnostic_enabled): Remove use of
+ 	permissive_error_option.
+ 	(diagnostic_context::report_diagnostic): Remove use of
+ 	pedantic_warning_kind.
+ 	(diagnostic_impl): Convert to...
+ 	(diagnostic_context::diagnostic_impl): ...this.
+ 	(diagnostic_n_impl): Convert to...
+ 	(diagnostic_context::diagnostic_n_impl): ...this.
+ 	(emit_diagnostic): Explicitly use global_dc for method call.
+ 	(emit_diagnostic_valist): Likewise.
+ 	(emit_diagnostic_valist_meta): Likewise.
+ 	(inform): Likewise.
+ 	(inform_n): Likewise.
+ 	(warning): Likewise.
+ 	(warning_at): Likewise.
+ 	(warning_meta): Likewise.
+ 	(warning_n): Likewise.
+ 	(pedwarn): Likewise.
+ 	(permerror): Likewise.
+ 	(permerror_opt): Likewise.
+ 	(error): Likewise.
+ 	(error_n): Likewise.
+ 	(error_at): Likewise.
+ 	(error_meta): Likewise.
+ 	(sorry): Likewise.
+ 	(sorry_at): Likewise.
+ 	(fatal_error): Likewise.
+ 	(internal_error): Likewise.
+ 	(internal_error_no_backtrace): Likewise.
+ 	* diagnostic.h (diagnostic_context::diagnostic_impl): New decl.
+ 	(diagnostic_context::diagnostic_n_impl): New decl.
+ 	* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
+ 	Add "ctxt" param.
+ 
+ 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR testsuite/109360
+ 	* doc/install.texi (Python3 modules): Update SARIF validation
+ 	requirement to use check-jsonschema rather than jsonschema.
+ 
+ 2024-06-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_custom_type): Add lf_array to
+ 	union.
+ 	(write_lf_array): New function.
+ 	(write_custom_types): Call write_lf_array.
+ 	(get_type_num_array_type): New function.
+ 	(get_type_num): Handle DW_TAG_array_type DIEs.
+ 	* dwarf2codeview.h (LF_ARRAY): Define.
+ 
+ 2024-06-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (write_lf_union): New function.
+ 	(write_custom_types): Call write_lf_union.
+ 	(add_struct_forward_def): Handle DW_TAG_union_type DIEs.
+ 	(get_type_num_struct): Handle unions.
+ 	(get_type_num): Handle DW_TAG_union_type DIEs.
+ 	* dwarf2codeview.h (LF_UNION): Define.
+ 
+ 2024-06-25  Sergei Lewis  <slewis@rivosinc.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_vector::expand_vec_cmpmem): New
+ 	function declaration.
+ 	* config/riscv/riscv-string.cc (riscv_vector::expand_vec_cmpmem): New
+ 	function.
+ 	* config/riscv/riscv.md (cmpmemsi): Try riscv_vector::expand_vec_cmpmem
+ 	for constant lengths.
+ 
+ 2024-06-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* doc/invoke.texi (vrp-block-limit): Document.
+ 	* params.opt (param=vrp-block-limit): New.
+ 	* tree-vrp.cc (fvrp_folder::execute): Invoke fast_vrp if block
+ 	count exceeds limit.
+ 
+ 2024-06-25  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/111673
+ 	* ira-color.cc (assign_hard_reg): Scale save/restore costs of
+ 	callee save registers with block frequency.
+ 
+ 2024-06-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/fr30/constraints.md (Q): Remove unused constraint.
+ 	* config/fr30/predicates.md (call_operand): Remove unused predicate.
+ 	* config/fr30/fr30.md (call, vall_value): Turn into expanders and
+ 	force the call address into a register.
+ 	(*call, *call_value): Adjust to only allow indirect calls.  Adjust
+ 	output template accordingly.
+ 
+ 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* late-combine.cc (insn_combination::substitute_nondebug_use):
+ 	Reject second and subsequent uses if targetm.cannot_copy_insn_p
+ 	disallows copying.
+ 
+ 2024-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-range-gori.cc (gori_compute::may_recompute_p):
+ 	Call is_export_p with NULL bb.
+ 
+ 2024-06-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/rtl.texi (jump_table_data): Fix typos.
+ 
+ 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* dbgcnt.def (late_combine): New debug counter.
+ 	* late-combine.cc (insn_combination::run): Use it.
+ 
+ 2024-06-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/115608
+ 	* config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus.
+ 
+ 2024-06-25  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/106594
+ 	PR target/115622
+ 	PR target/115633
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Move
+ 	default-disable of late-combine passes from here...
+ 	(rs6000_override_options_after_change): ... to here.
+ 
+ 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* expmed.cc (store_bit_field_using_insv): Revert earlier change
+ 	to use force_subreg instead of simplify_gen_subreg.
+ 
+ 2024-06-25  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc(mips_expand_vec_cond_expr): Add extra
+ 	argument to info that opernads[3] is cmp_res already.
+ 	* config/mips/mips-protos.h(mips_expand_vec_cond_expr): Ditto.
+ 	* config/mips/mips-msa.md(vcond_mask): Define new expand.
+ 	(vcondu): Use mips_expand_vec_cond_expr with 4th argument.
+ 	(vcond): Ditto.
+ 
+ 2024-06-25  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.md(conditional_trap_reg): Output $0 instead
+ 	of 0 if !ISA_HAS_COND_TRAPI.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config.gcc: Add winnt-dll.o, which contains the DLL
+ 	import/export implementation.
+ 	* config/aarch64/aarch64.cc (aarch64_load_symref_appropriately):
+ 	Add dllimport implementation.
+ 	(aarch64_expand_call): Likewise.
+ 	(aarch64_legitimize_address): Likewise.
+ 	* config/aarch64/cygming.h (SYMBOL_FLAG_DLLIMPORT): Modify MinGW
+ 	environment to support DLL import/export.
+ 	(SYMBOL_FLAG_DLLEXPORT): Likewise.
+ 	(SYMBOL_REF_DLLIMPORT_P): Likewise.
+ 	(SYMBOL_FLAG_STUBVAR): Likewise.
+ 	(SYMBOL_REF_STUBVAR_P): Likewise.
+ 	(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise.
+ 	(TARGET_ASM_FILE_END): Likewise.
+ 	(SUB_TARGET_RECORD_STUB): Likewise.
+ 	(GOT_ALIAS_SET): Likewise.
+ 	(PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Likewise.
+ 	(HAVE_64BIT_POINTERS): Likewise.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config/i386/cygming.h
+ 	(PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Declare whether an
+ 	external declaration should be legitimized.
+ 	(HAVE_64BIT_POINTERS): Define whether the target supports 64-bit
+ 	pointers.
+ 	* config/mingw/mingw32.h (defined): Use the correct
+ 	DllMainCRTStartup entry function.
+ 	* config/mingw/winnt-dll.cc (defined): Exclude ix86-related code.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config/aarch64/aarch64.cc: Extend the aarch64 attributes list.
+ 	* config/aarch64/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define the
+ 	selectany attribute.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config/i386/cygming.h (mingw_pe_record_stub): Rename functions
+ 	in mingw folder which will be reused for aarch64.
+ 	(TARGET_ASM_FILE_END): Update to new target-independent name.
+ 	(SUBTARGET_ATTRIBUTE_TABLE): Likewise.
+ 	(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise.
+ 	(SUB_TARGET_RECORD_STUB): Likewise.
+ 	* config/i386/i386-protos.h (ix86_handle_selectany_attribute):
+ 	Likewise.
+ 	(mingw_handle_selectany_attribute): Likewise.
+ 	(i386_pe_valid_dllimport_attribute_p): Likewise.
+ 	(mingw_pe_valid_dllimport_attribute_p): Likewise.
+ 	(i386_pe_file_end): Likewise.
+ 	(mingw_pe_file_end): Likewise.
+ 	(i386_pe_record_stub): Likewise.
+ 	(mingw_pe_record_stub): Likewise.
+ 	* config/mingw/winnt.cc (ix86_handle_selectany_attribute):
+ 	Likewise.
+ 	(mingw_handle_selectany_attribute): Likewise.
+ 	(i386_pe_valid_dllimport_attribute_p): Likewise.
+ 	(mingw_pe_valid_dllimport_attribute_p): Likewise.
+ 	(i386_pe_record_stub): Likewise.
+ 	(mingw_pe_record_stub): Likewise.
+ 	(i386_pe_file_end): Likewise.
+ 	(mingw_pe_file_end): Likewise.
+ 	* config/mingw/winnt.h (mingw_handle_selectany_attribute): Declate
+ 	functionality that will be reused by multiple targets.
+ 	(mingw_pe_file_end): Likewise.
+ 	(mingw_pe_record_stub): Likewise.
+ 	(mingw_pe_valid_dllimport_attribute_p): Likewise.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config.gcc: Add winnt-dll.o, which contains the DLL
+ 	import/export implementation.
+ 	* config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Remove the
+ 	old implementation. Rename the required function to MinGW.
+ 	Use MinGW implementation for COFF and nothing otherwise.
+ 	(GOT_ALIAS_SET): Likewise.
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Likewise.
+ 	* config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise.
+ 	(legitimize_pe_coff_symbol): Likewise.
+ 	* config/i386/i386-protos.h (i386_pe_record_stub): Likewise.
+ 	* config/i386/i386.cc (is_imported_p): Likewise.
+ 	(legitimate_pic_address_disp_p): Likewise.
+ 	(ix86_GOT_alias_set): Likewise.
+ 	(legitimize_pic_address): Likewise.
+ 	(legitimize_tls_address): Likewise.
+ 	(struct dllimport_hasher): Likewise.
+ 	(GTY): Likewise.
+ 	(get_dllimport_decl): Likewise.
+ 	(legitimize_pe_coff_extern_decl): Likewise.
+ 	(legitimize_dllimport_symbol): Likewise.
+ 	(legitimize_pe_coff_symbol): Likewise.
+ 	(ix86_legitimize_address): Likewise.
+ 	* config/i386/i386.h (GOT_ALIAS_SET): Likewise.
+ 	* config/mingw/winnt.cc (i386_pe_record_stub): Likewise.
+ 	(mingw_pe_record_stub): Likewise.
+ 	* config/mingw/winnt.h (mingw_pe_record_stub): Likewise.
+ 	* config/mingw/t-cygming: Add the winnt-dll.o compilation.
+ 	* config/mingw/winnt-dll.cc: New file.
+ 	* config/mingw/winnt-dll.h: New file.
+ 
+ 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
+ 
+ 	* config.gcc: Move mingw_* declations to mingw.
+ 	* config/aarch64/aarch64-protos.h
+ 	(mingw_pe_maybe_record_exported_symbol): Likewise.
+ 	(mingw_pe_section_type_flags): Likewise.
+ 	(mingw_pe_unique_section): Likewise.
+ 	(mingw_pe_encode_section_info): Likewise.
+ 	* config/aarch64/cygming.h
+ 	(mingw_pe_asm_named_section): Likewise.
+ 	(mingw_pe_declare_function_type): Likewise.
+ 	* config/i386/i386-protos.h
+ 	(mingw_pe_unique_section): Likewise.
+ 	(mingw_pe_declare_function_type): Likewise.
+ 	(mingw_pe_maybe_record_exported_symbol): Likewise.
+ 	(mingw_pe_encode_section_info): Likewise.
+ 	(mingw_pe_section_type_flags): Likewise.
+ 	(mingw_pe_asm_named_section): Likewise.
+ 	* config/mingw/winnt.h: New file.
+ 
+ 2024-06-25  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_type): Add is_fwd_ref member.
+ 	(struct codeview_subtype): Add lf_member to union.
+ 	(struct codeview_custom_type): Add lf_structure to union.
+ 	(struct codeview_deferred_type): New structure.
+ 	(deferred_types, last_deferred_type): New variables.
+ 	(get_type_num): Add new args to prototype.
+ 	(write_lf_fieldlist): Handle LF_MEMBER subtypes.
+ 	(write_lf_structure): New function.
+ 	(write_custom_types): Call write_lf_structure.
+ 	(get_type_num_pointer_type): Add in_struct argument.
+ 	(get_type_num_const_type): Likewise.
+ 	(get_type_num_volatile_type): Likewise.
+ 	(add_enum_forward_def): Fix get_type_num call.
+ 	(get_type_num_enumeration_type): Add in-struct argument.
+ 	(add_deferred_type, flush_deferred_types): New functions.
+ 	(add_struct_forward_def, get_type_num_struct): Likewise.
+ 	(get_type_num): Handle self-referential structs.
+ 	(add_variable): Fix get_type_num call.
+ 	(codeview_debug_early_finish): Call flush_deferred_types.
+ 	* dwarf2codeview.h (LF_CLASS, LF_STRUCTURE, LF_MEMBER): Define.
+ 
+ 2024-06-25  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* coretypes.h (enum tree_index): Forward declaration.
+ 	* defaults.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* doc/rtl.texi: Update document by replacing {FLOAT,DOUBLE}_TYPE_SIZE
+ 	with C type {float,double}.
+ 	* doc/tm.texi.in: Document new hook mode_for_floating_type, remove
+ 	document entries for {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE and
+ 	update document for WIDEST_HARDWARE_FP_SIZE.
+ 	* doc/tm.texi: Regenerate.
+ 	* emit-rtl.cc (init_emit_once): Replace DOUBLE_TYPE_SIZE by
+ 	calling targetm.c.mode_for_floating_type with TI_DOUBLE_TYPE.
+ 	* real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use TYPE_PRECISION of
+ 	long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
+ 	* system.h (FLOAT_TYPE_SIZE): Poison.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* target.def (mode_for_floating_type): New hook.
+ 	* targhooks.cc (default_mode_for_floating_type): New function.
+ 	(default_scalar_mode_supported_p): Update macros
+ 	{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling
+ 	targetm.c.mode_for_floating_type with
+ 	TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE.
+ 	* targhooks.h (default_mode_for_floating_type): New declaration.
+ 	* tree-core.h (enum tree_index): Specify underlying type unsigned
+ 	to sync with forward declaration in coretypes.h.
+ 	(NUM_FLOATN_TYPES): Explicitly convert to int.
+ 	(NUM_FLOATNX_TYPES): Likewise.
+ 	(NUM_FLOATN_NX_TYPES): Likewise.
+ 	* tree.cc (build_common_tree_nodes): Update macros
+ 	{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling
+ 	targetm.c.mode_for_floating_type with
+ 	TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE and set type mode accordingly.
+ 	* config/arc/arc.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/bpf/bpf.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/epiphany/epiphany.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/fr30/fr30.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/frv/frv.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/ft32/ft32.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/gcn/gcn.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/iq2000/iq2000.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/lm32/lm32.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/m32c/m32c.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/m32r/m32r.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/microblaze/microblaze.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/mmix/mmix.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/moxie/moxie.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/msp430/msp430.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/nds32/nds32.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/nios2/nios2.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/nvptx/nvptx.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/or1k/or1k.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/pru/pru.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/stormy16/stormy16.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/visium/visium.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/xtensa/xtensa.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/rs6000/rs6000.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	(rs6000_c_mode_for_floating_type): New function.
+ 	* config/rs6000/rs6000.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_c_mode_for_floating_type):
+ 	New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/aarch64/aarch64.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/alpha/alpha.cc (alpha_c_mode_for_floating_type): New
+ 	function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/alpha/alpha.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/avr/avr.cc (avr_c_mode_for_floating_type): New
+ 	function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/avr/avr.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/i386/i386.cc (ix86_c_mode_for_floating_type): New
+ 	function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/i386/i386.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/ia64/ia64.cc (ia64_c_mode_for_floating_type): New
+ 	function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/ia64/ia64.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/riscv/riscv.cc (riscv_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/riscv/riscv.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/rl78/rl78.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	(rl78_c_mode_for_floating_type): New function.
+ 	* config/rl78/rl78.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/rx/rx.cc (rx_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/rx/rx.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/s390/s390.cc (s390_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/s390/s390.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/sh/sh.cc (sh_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+ 	* config/h8300/h8300.cc (h8300_c_mode_for_floating_type): New
+ 	function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/h8300/h8300.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Remove.
+ 	(LONG_DOUBLE_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_MODE): New macro.
+ 	* config/h8300/linux.h (DOUBLE_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_MODE): New macro.
+ 	* config/loongarch/loongarch.cc (loongarch_c_mode_for_floating_type):
+ 	New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/loongarch/loongarch.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Remove.
+ 	(LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(LA_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	(UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE with
+ 	LA_LONG_DOUBLE_TYPE_SIZE.
+ 	(MAX_FIXED_MODE_SIZE): Likewise.
+ 	(STRUCTURE_SIZE_BOUNDARY): Likewise.
+ 	(BIGGEST_ALIGNMENT): Likewise.
+ 	* config/m68k/m68k.cc (m68k_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+ 	(LONG_DOUBLE_TYPE_MODE): New macro.
+ 	* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+ 	(LONG_DOUBLE_TYPE_MODE): New macro.
+ 	* config/mips/mips.cc (mips_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	* config/mips/mips.h (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE
+ 	with MIPS_LONG_DOUBLE_TYPE_SIZE.
+ 	(MAX_FIXED_MODE_SIZE): Likewise.
+ 	(STRUCTURE_SIZE_BOUNDARY): Likewise.
+ 	(BIGGEST_ALIGNMENT): Likewise.
+ 	(FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Remove.
+ 	(LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(MIPS_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/mips/n32-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(MIPS_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/pa/pa.cc (pa_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	(pa_scalar_mode_supported_p): Rename FLOAT_TYPE_SIZE to
+ 	PA_FLOAT_TYPE_SIZE, rename DOUBLE_TYPE_SIZE to PA_DOUBLE_TYPE_SIZE
+ 	and rename LONG_DOUBLE_TYPE_SIZE to PA_LONG_DOUBLE_TYPE_SIZE.
+ 	* config/pa/pa.h (PA_FLOAT_TYPE_SIZE): New macro.
+ 	(PA_DOUBLE_TYPE_SIZE): Likewise.
+ 	(PA_LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	* config/pa/pa-64.h (FLOAT_TYPE_SIZE): Rename to ...
+ 	(PA_FLOAT_TYPE_SIZE): ... this.
+ 	(DOUBLE_TYPE_SIZE): Rename to ...
+ 	(PA_DOUBLE_TYPE_SIZE): ... this.
+ 	(LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(PA_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/pa/pa-hpux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(PA_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/sparc.cc (sparc_c_mode_for_floating_type): New function.
+ 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
+ 	(FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Likewise.
+ 	(LONG_DOUBLE_TYPE_SIZE): Likewise.
+ 	(sparc_type_code): Replace FLOAT_TYPE_SIZE with TYPE_PRECISION of
+ 	float_type_node.
+ 	* config/sparc/sparc.h (FLOAT_TYPE_SIZE): Remove.
+ 	(DOUBLE_TYPE_SIZE): Remove.
+ 	* config/sparc/freebsd.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/linux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/linux64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/openbsd64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/sol2.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/sp-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/sparc/sp64-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
+ 	(SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
+ 	* config/bfin/bfin.h (FLOAT_TYPE_SIZE): Rename to ...
+ 	(BFIN_FLOAT_TYPE_SIZE): ... this.
+ 	(DOUBLE_TYPE_SIZE): Rename to ...
+ 	(BFIN_DOUBLE_TYPE_SIZE): ... this.
+ 	(LONG_DOUBLE_TYPE_SIZE): Remove.
+ 	(UNITS_PER_FLOAT): Replace FLOAT_TYPE_SIZE with BFIN_FLOAT_TYPE_SIZE.
+ 	(UNITS_PER_DOUBLE): Replace DOUBLE_TYPE_SIZE with
+ 	BFIN_DOUBLE_TYPE_SIZE.
+ 
+ 2024-06-25  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/vms/vms.cc (vms_patch_builtins): Use TYPE_PRECISION of
+ 	long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
+ 
+ 2024-06-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-vrp.cc (execute_fast_vrp): Do not use transitive relations.
+ 	* value-query.cc (range_query::create_relation_oracle): Add
+ 	parameter to enable transitive relations.
+ 	* value-query.h (range_query::create_relation_oracle): Likewise.
+ 	* value-relation.h (dom_oracle::dom_oracle): Likewise.
+ 	* value-relation.cc (dom_oracle::dom_oracle): Likewise.
+ 	(dom_oracle::register_transitives): Check transitive flag.
+ 
+ 2024-06-24  Sergei Lewis  <slewis@rivosinc.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_vector::expand_vec_setmem): New
+ 	function declaration.
+ 	* config/riscv/riscv-string.cc (riscv_vector::expand_vec_setmem): New
+ 	function: this generates an inline vectorised memory set, if and only if
+ 	we know the entire operation can be performed in a single vector store.
+ 	* config/riscv/riscv.md (setmem<mode>): Try riscv_vector::expand_vec_setmem
+ 	for constant lengths.  Do not require operand 2 to be a constant.
+ 
+ 2024-06-24  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* doc/sourcebuild.texi (dg-remove-option): Add documentation.
+ 	(dg-add-option): Add documentation for riscv_{a,zaamo,zalrsc,ztso}
+ 
+ 2024-06-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113673
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop_load): Make static.
+ 	(find_bswap_or_nop_1): Avoid transformations (load merging) when
+ 	stmt_can_throw_internal indicates that a statement can trap.
+ 
+ 2024-06-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115602
+ 	* tree-vect-slp.cc (vect_cse_slp_nodes): Delay populating the
+ 	bst-map to avoid cycles.
+ 
+ 2024-06-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115528
+ 	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
+ 	Make sure to look at both the inner and outer loop step
+ 	behavior.
+ 
+ 2024-06-24  Pali Rohár  <pali@kernel.org>
+ 
+ 	* config/i386/mingw-w64.h (CPP_SPEC): Add missing -mcrtdll=
+ 	cases: msvcr40*, msvcrtd*.
+ 	* config/mingw/mingw32.h (CPP_SPEC): Add missing -mcrtdll=
+ 	cases: msvcr40*, msvcrtd*.
+ 	* doc/invoke.texi: Add missing -mcrtdll= cases: msvcr40*,
+ 	msvcrtd*, msvcr71*. Express wildcards with *. Document _UCRT.
+ 
+ 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/106594
+ 	PR rtl-optimization/114515
+ 	PR rtl-optimization/114575
+ 	PR rtl-optimization/114996
+ 	PR rtl-optimization/115104
+ 	* Makefile.in (OBJS): Add late-combine.o.
+ 	* common.opt (flate-combine-instructions): New option.
+ 	* doc/invoke.texi: Document it.
+ 	* opts.cc (default_options_table): Enable it by default at -O2
+ 	and above.
+ 	* tree-pass.h (make_pass_late_combine): Declare.
+ 	* late-combine.cc: New file.
+ 	* passes.def: Add two instances of late_combine.
+ 	* doc/passes.texi: Document the new passes.
+ 	* config/i386/i386-options.cc (ix86_override_options_after_change):
+ 	Disable late-combine by default.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
+ 	* config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
+ 
+ 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa.h: Include predicates.h.
+ 	* rtl-ssa/predicates.h: New file.
+ 	* rtl-ssa/access-utils.h (prev_call_clobbers_ignoring): Rename to...
+ 	(prev_call_clobbers): ...this and treat the ignore parameter as an
+ 	object with the same interface as ignore_nothing.
+ 	(next_call_clobbers_ignoring): Rename to...
+ 	(next_call_clobbers): ...this and treat the ignore parameter as an
+ 	object with the same interface as ignore_nothing.
+ 	(first_nondebug_insn_use_ignoring): Rename to...
+ 	(first_nondebug_insn_use): ...this and treat the ignore parameter as
+ 	an object with the same interface as ignore_nothing.
+ 	(last_nondebug_insn_use_ignoring): Rename to...
+ 	(last_nondebug_insn_use): ...this and treat the ignore parameter as
+ 	an object with the same interface as ignore_nothing.
+ 	(last_access_ignoring): Rename to...
+ 	(last_access): ...this and treat the ignore parameter as an object
+ 	with the same interface as ignore_nothing.  Conditionally skip
+ 	definitions.
+ 	(prev_access_ignoring): Rename to...
+ 	(prev_access): ...this and treat the ignore parameter as an object
+ 	with the same interface as ignore_nothing.
+ 	(first_def_ignoring): Replace with...
+ 	(first_access): ...this new function.
+ 	(next_access_ignoring): Rename to...
+ 	(next_access): ...this and treat the ignore parameter as an object
+ 	with the same interface as ignore_nothing.  Conditionally skip
+ 	definitions.
+ 	* rtl-ssa/change-utils.h (insn_is_changing): Delete.
+ 	(restrict_movement_ignoring): Rename to...
+ 	(restrict_movement): ...this and treat the ignore parameter as an
+ 	object with the same interface as ignore_nothing.
+ 	(recog_ignoring): Rename to...
+ 	(recog): ...this and treat the ignore parameter as an object with
+ 	the same interface as ignore_nothing.
+ 	* rtl-ssa/changes.h (insn_is_changing_closure): Delete.
+ 	* rtl-ssa/functions.h (function_info::add_regno_clobber): Treat
+ 	the ignore parameter as an object with the same interface as
+ 	ignore_nothing.
+ 	* rtl-ssa/insn-utils.h (insn_is): Delete.
+ 	* rtl-ssa/insns.h (insn_is_closure): Delete.
+ 	* rtl-ssa/member-fns.inl
+ 	(insn_is_changing_closure::insn_is_changing_closure): Delete.
+ 	(insn_is_changing_closure::operator()): Likewise.
+ 	(function_info::add_regno_clobber): Treat the ignore parameter
+ 	as an object with the same interface as ignore_nothing.
+ 	(ignore_changing_insns::ignore_changing_insns): New function.
+ 	(ignore_changing_insns::should_ignore_insn): Likewise.
+ 	* rtl-ssa/movement.h (restrict_movement_for_dead_range): Treat
+ 	the ignore parameter as an object with the same interface as
+ 	ignore_nothing.
+ 	(restrict_movement_for_defs_ignoring): Rename to...
+ 	(restrict_movement_for_defs): ...this and treat the ignore parameter
+ 	as an object with the same interface as ignore_nothing.
+ 	(restrict_movement_for_uses_ignoring): Rename to...
+ 	(restrict_movement_for_uses): ...this and treat the ignore parameter
+ 	as an object with the same interface as ignore_nothing.  Conditionally
+ 	skip definitions.
+ 	* doc/rtl.texi: Update for above name changes.  Use
+ 	ignore_changing_insns instead of insn_is_changing.
+ 	* config/aarch64/aarch64-cc-fusion.cc (cc_fusion::parallelize_insns):
+ 	Likewise.
+ 	* pair-fusion.cc (no_ignore): Delete.
+ 	(latest_hazard_before, first_hazard_after): Update for above name
+ 	changes.  Use ignore_nothing instead of no_ignore.
+ 	(pair_fusion_bb_info::fuse_pair): Update for above name changes.
+ 	Use ignore_changing_insns instead of insn_is_changing.
+ 	(pair_fusion::try_promote_writeback): Likewise.
+ 
+ 2024-06-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115599
+ 	* tree-ssa-reassoc.cc (compare_repeat_factors): Use explicit
+ 	compares to avoid truncations.
+ 
+ 2024-06-24  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/113325
+ 	* config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): New.
+ 
+ 2024-06-24  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* fwprop.cc (try_fwprop_subst_pattern): Invoke change_is_worthwhile
+ 	to judge if a replacement is worthwhile.  Remove single_set check
+ 	and add is_debug_insn check.
+ 	* recog.cc (swap_change): Invalidate recog_data when the cached INSN
+ 	is swapped out.
+ 	* rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Check if the
+ 	insn cost of new rtl is unknown and fail the replacement.
+ 
+ 2024-06-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (MAX_FIELDLIST_SIZE): Define.
+ 	(struct codeview_integer): New structure.
+ 	(struct codeview_subtype): Likewise
+ 	(struct codeview_custom_type): Add lf_fieldlist and lf_enum to union.
+ 	(write_cv_integer, cv_integer_len): New functions.
+ 	(write_lf_fieldlist, write_lf_enum): Likewise.
+ 	(write_custom_types): Call write_lf_fieldlist and write_lf_enum.
+ 	(add_enum_forward_def): New function.
+ 	(get_type_num_enumeration_type): Likewise.
+ 	(get_type_num): Handle DW_TAG_enumeration_type DIEs.
+ 	* dwarf2codeview.h (LF_FIELDLIST, LF_INDEX, LF_ENUMERATE): Define.
+ 	(LF_ENUM, LF_CHAR, LF_SHORT, LF_USHORT, LF_LONG): Likewise.
+ 	(LF_ULONG, LF_QUADWORD, LF_UQUADWORD): Likewise.
+ 	(CV_ACCESS_PRIVATE, CV_ACCESS_PROTECTED): Likewise.
+ 	(CV_ACCESS_PUBLIC, CV_PROP_FWDREF): Likewise.
+ 
+ 2024-06-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc
+ 	(struct codeview_custom_type): Add lf_modifier to union.
+ 	(write_cv_padding, write_lf_modifier): New functions.
+ 	(write_custom_types): Call write_lf_modifier.
+ 	(get_type_num_const_type): New function.
+ 	(get_type_num_volatile_type): Likewise.
+ 	(get_type_num): Handle DW_TAG_const_type and DW_TAG_volatile_type DIEs.
+ 	* dwarf2codeview.h (MOD_const, MOD_volatile): Define.
+ 	(LF_MODIFIER): Likewise.
+ 
+ 2024-06-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (FIRST_TYPE): Define.
+ 	(struct codeview_custom_type): New structure.
+ 	(custom_types, last_custom_type): New variables.
+ 	(get_type_num): Prototype.
+ 	(write_lf_pointer, write_custom_types): New functions.
+ 	(codeview_debug_finish): Call write_custom_types.
+ 	(add_custom_type, get_type_num_pointer_type): New functions.
+ 	(get_type_num): Handle DW_TAG_pointer_type DIEs.
+ 	* dwarf2codeview.h (T_VOID): Define.
+ 	(CV_POINTER_32, CV_POINTER_64): Likewise.
+ 	(T_32PVOID, T_64PVOID): Likewise.
+ 	(CV_PTR_NEAR32, CV_PTR64, LF_POINTER): Likewise.
+ 
+ 2024-06-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num): Handle typedefs.
+ 
+ 2024-06-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (struct codeview_type): New structure.
+ 	(struct die_hasher): Likewise.
+ 	(types_htab): New variable.
+ 	(codeview_debug_finish): Free types_htab if allocated.
+ 	(get_type_num_base_type, get_type_num): New function.
+ 	(add_variable): Call get_type_num.
+ 	* dwarf2codeview.h (T_CHAR, T_SHORT, T_LONG, T_QUAD): Define.
+ 	(T_UCHAR, T_USHORT, T_ULONG, T_UQUAD, T_BOOL08): Likewise.
+ 	(T_REAL32, T_REAL64, T_REAL80, T_REAL128, T_RCHAR): Likewise.
+ 	(T_WCHAR, T_INT4, T_UINT4, T_CHAR16, T_CHAR32, T_CHAR8): Likewise.
+ 
+ 2024-06-23  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (S_LDATA32, S_GDATA32): Define.
+ 	(struct codeview_symbol): New structure.
+ 	(sym, last_sym): New variables.
+ 	(write_data_symbol): New function.
+ 	(write_codeview_symbols): Call write_data_symbol.
+ 	(add_variable, codeview_debug_early_finish): New functions.
+ 	* dwarf2codeview.h (codeview_debug_early_finish): Prototype.
+ 	* dwarf2out.cc
+ 	(dwarf2out_early_finish): Call codeview_debug_early_finish.
+ 
+ 2024-06-23  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Add a
+ 	CONST0_RTX check.
+ 
+ 2024-06-23  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/114139
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Verify object
+ 	is a CONST_INT before looking at INTVAL.
+ 
+ 2024-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115597
+ 	* tree-vect-slp.cc (vect_cse_slp_nodes): Allow to CSE
+ 	VEC_PERM nodes.
+ 
+ 2024-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115579
+ 	* tree-ssa-loop-im.cc (execute_sm): Return the auxiliary data
+ 	created.
+ 	(hoist_memory_references): Record the flag var that's eventually
+ 	created and re-use it when all stores are in the same BB.
+ 
+ 2024-06-23  Collin Funk  <collin.funk1@gmail.com>
+ 
+ 	PR target/115409
+ 	* config/i386/avx512fp16intrin.h (_mm512_conj_pch): Make the
+ 	constant unsigned before shifting.
+ 	* config/i386/avx512fp16vlintrin.h (_mm256_conj_pch): Likewise.
+ 	(_mm_conj_pch): Likewise.
+ 
+ 2024-06-23  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/predicates.md (comparison_except_eqge_operator): Only
+ 	exclude ge.
+ 	(comparison_except_ge_operator): Ditto.
+ 	* config/riscv/riscv-string.cc (expand_rawmemchr): Use cmp pattern.
+ 	(expand_strcmp): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond.
+ 	* config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove eqne
+ 	patterns.
+ 	(*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
+ 	(*pred_eqne<mode>_scalar): Ditto.
+ 	(*pred_eqne<mode>_scalar_narrow): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar_narrow): Ditto.
+ 
+ 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::on_end_diagnostic): Use
+ 	get_diagnostic_kind_text rather than embedding a duplicate copy of
+ 	the table.
+ 	* diagnostic-format-sarif.cc
+ 	(make_rule_id_for_diagnostic_kind): Likewise.
+ 	* diagnostic.cc (get_diagnostic_kind_text): New.
+ 	* diagnostic.h (get_diagnostic_kind_text): New decl.
+ 
+ 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.cc (diagnostic_event::meaning::dump_to_pp): Move
+ 	here from diagnostic.cc.
+ 	(diagnostic_event::meaning::maybe_get_verb_str): Likewise.
+ 	(diagnostic_event::meaning::maybe_get_noun_str): Likewise.
+ 	(diagnostic_event::meaning::maybe_get_property_str): Likewise.
+ 	(diagnostic_path::get_first_event_in_a_function): Likewise.
+ 	(diagnostic_path::interprocedural_p): Likewise.
+ 	(debug): Likewise for diagnostic_path * overload.
+ 	* diagnostic.cc (diagnostic_event::meaning::dump_to_pp): Move from
+ 	here to diagnostic-path.cc.
+ 	(diagnostic_event::meaning::maybe_get_verb_str): Likewise.
+ 	(diagnostic_event::meaning::maybe_get_noun_str): Likewise.
+ 	(diagnostic_event::meaning::maybe_get_property_str): Likewise.
+ 	(diagnostic_path::get_first_event_in_a_function): Likewise.
+ 	(diagnostic_path::interprocedural_p): Likewise.
+ 	(debug): Likewise for diagnostic_path * overload.
+ 
+ 2024-06-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/stormy16/stormy16.md (swpn_zext): New pattern.
+ 
+ 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/stormy16/predicates.md (xs_hi_nonmemory_operand): Handle
+ 	symbol_ref and label_ref.
+ 
+ 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/iq2000/iq2000.cc (iq2000_print_operand): Make %p handle 1<<31.
+ 	* config/iq2000/iq2000.md: Remove "I" constraints on
+ 	power_of_2_operands.
+ 
+ 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Don't
+ 	cost no-op moves.
+ 	* rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise.
+ 
+ 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (gimple_ranger::register_inferred_ranges): Do not
+ 	dump global range info after set_range_info.
+ 	(gimple_ranger::register_transitive_inferred_ranges): Likewise.
+ 	(dom_ranger::range_of_stmt): Likewise.
+ 	* tree-ssanames.cc (set_range_info): If global range info
+ 	changes, maybe print new range to dump_file.
+ 	* tree-vrp.cc (remove_unreachable::handle_early): Do not
+ 	dump global range info after set_range_info.
+ 	(remove_unreachable::remove): Likewise.
+ 	(remove_unreachable::remove_and_update_globals): Likewise.
+ 	(pass_assumptions::execute): Likewise.
+ 
+ 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (dom_ranger::dom_ranger): Create a block
+ 	vector.
+ 	(dom_ranger::~dom_ranger): Dispose of the block vector.
+ 	(dom_ranger::edge_range): Delete.
+ 	(dom_ranger::range_on_edge): Combine range in src BB with any
+ 	range gori_nme_on_edge returns.
+ 	(dom_ranger::range_in_bb): Combine global range with any active
+ 	contextual range for an ssa-name.
+ 	(dom_ranger::range_of_stmt): Fix non-ssa LHS case, use
+ 	fur_depend for folding so relations can be registered.
+ 	(dom_ranger::maybe_push_edge): Delete.
+ 	(dom_ranger::pre_bb): Create incoming contextual range vector.
+ 	(dom_ranger::post_bb): Free contextual range vector.
+ 	* gimple-range.h (dom_ranger::edge_range): Delete.
+ 	(dom_ranger::m_e0): Delete.
+ 	(dom_ranger::m_e1): Delete.
+ 	(dom_ranger::m_bb): New.
+ 	(dom_ranger::m_pop_list): Delete.
+ 	* tree-vrp.cc (execute_fast_vrp): Enable relation oracle.
+ 
+ 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-vrp.cc (remove_unreachable::remove): Export global range
+ 	if builtin_unreachable dominates all uses.
+ 	(remove_unreachable::remove_and_update_globals): Do not reset SCEV.
+ 	(execute_ranger_vrp): Reset SCEV here instead.
+ 	(fvrp_folder::fvrp_folder): Take final pass flag
+ 	and create a remove_unreachable object when specified.
+ 	(fvrp_folder::pre_fold_stmt): Register GIMPLE_CONDs with
+ 	the remove_unreachcable object.
+ 	(fvrp_folder::m_unreachable): New.
+ 	(execute_fast_vrp): Process remove_unreachable object.
+ 	(pass_vrp::execute): Add final_p flag to execute_fast_vrp.
+ 
+ 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR testsuite/109360
+ 	* doc/install.texi: Mention optional usage of "jsonschema" tool.
+ 
+ 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR testsuite/109360
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_location_object): Pass any column override
+ 	from rich_loc to maybe_make_physical_location_object.
+ 	(sarif_builder::maybe_make_physical_location_object): Add
+ 	"column_override" param and pass it to maybe_make_region_object.
+ 	(sarif_builder::maybe_make_region_object): Add "column_override"
+ 	param and use it when the location has 0 for a column.  Don't
+ 	add "startLine", "startColumn", "endLine", or "endColumn" if
+ 	the values aren't positive.
+ 	(sarif_builder::maybe_make_region_object_for_context): Don't
+ 	add "startLine" or "endLine" if the values aren't positive.
+ 
+ 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/sh/sh.md (*minus_plus_one): Add constraints.
+ 
+ 2024-06-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/68855
+ 	* tree-complex.cc (init_dont_simulate_again): Handle PAREN_EXPR
+ 	like NEGATE_EXPR.
+ 	(complex_propagate::visit_stmt): Likewise.
+ 	(expand_complex_move): Don't handle PAREN_EXPR.
+ 	(expand_complex_paren): New function.
+ 	(expand_complex_operations_1): Handle PAREN_EXPR like
+ 	NEGATE_EXPR. And call expand_complex_paren for PAREN_EXPR.
+ 
+ 2024-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/passes.texi: Remove references to no longer existing
+ 	passes.
+ 
+ 2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* configure.ac: Set gcc_cv_as_mips_explicit_relocs if
+ 	gcc_cv_as_mips_explicit_relocs_pcrel.
+ 	* configure: Regenerate.
+ 
+ 2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc(mips_rtx_costs): Set condmove cost.
+ 	* config/mips/mips.md(mov<GPR:mode>_on_<MOVECC:mode>,
+ 	mov<GPR:mode>_on_<MOVECC:mode>_mips16e2,
+ 	mov<GPR:mode>_on_<GPR2:mode>_ne
+ 	mov<GPR:mode>_on_<GPR2:mode>_ne_mips16e2): Define name by
+ 	remove starting *, so that we can use CODE_FOR_.
+ 
+ 2024-06-21  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Xionghu Luo  <xionghuluo@tencent.com>
+ 
+ 	PR target/106069
+ 	PR target/115355
+ 	* config/rs6000/altivec.md (altivec_vmrghw_direct_<VSX_W:mode>): Rename
+ 	to ...
+ 	(altivec_vmrghw_direct_<VSX_W:mode>_be): ... this.  Add the condition
+ 	BYTES_BIG_ENDIAN.
+ 	(altivec_vmrghw_direct_<VSX_W:mode>_le): New define_insn.
+ 	(altivec_vmrglw_direct_<VSX_W:mode>): Rename to ...
+ 	(altivec_vmrglw_direct_<VSX_W:mode>_be): ... this.  Add the condition
+ 	BYTES_BIG_ENDIAN.
+ 	(altivec_vmrglw_direct_<VSX_W:mode>_le): New define_insn.
+ 	(altivec_vmrghw): Adjust by calling gen_altivec_vmrghw_direct_v4si_be
+ 	for BE and gen_altivec_vmrglw_direct_v4si_le for LE.
+ 	(altivec_vmrglw): Adjust by calling gen_altivec_vmrglw_direct_v4si_be
+ 	for BE and gen_altivec_vmrghw_direct_v4si_le for LE.
+ 	(vec_widen_umult_hi_v8hi): Adjust the call to
+ 	gen_altivec_vmrghw_direct_v4si by gen_altivec_vmrghw for BE
+ 	and by gen_altivec_vmrglw for LE.
+ 	(vec_widen_smult_hi_v8hi): Likewise.
+ 	(vec_widen_umult_lo_v8hi): Adjust the call to
+ 	gen_altivec_vmrglw_direct_v4si by gen_altivec_vmrglw for BE
+ 	and by gen_altivec_vmrghw for LE
+ 	(vec_widen_smult_lo_v8hi): Likewise.
+ 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
+ 	CODE_FOR_altivec_vmrghw_direct_v4si by
+ 	CODE_FOR_altivec_vmrghw_direct_v4si_be for BE and
+ 	CODE_FOR_altivec_vmrghw_direct_v4si_le for LE.  And replace
+ 	CODE_FOR_altivec_vmrglw_direct_v4si by
+ 	CODE_FOR_altivec_vmrglw_direct_v4si_be for BE and
+ 	CODE_FOR_altivec_vmrglw_direct_v4si_le for LE.
+ 	* config/rs6000/vsx.md (vsx_xxmrghw_<VSX_W:mode>): Adjust by calling
+ 	gen_altivec_vmrghw_direct_v4si_be for BE and
+ 	gen_altivec_vmrglw_direct_v4si_le for LE.
+ 	(vsx_xxmrglw_<VSX_W:mode>): Adjust by calling
+ 	gen_altivec_vmrglw_direct_v4si_be for BE and
+ 	gen_altivec_vmrghw_direct_v4si_le for LE.
+ 
+ 2024-06-20  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_ternlog_idx): Allow any SUBREG
+ 	that matches register_operand.  Use rtx_equal_p to compare REG
+ 	or SUBREG "leaf" operands.
+ 
+ 2024-06-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (<bit_optab><mode>): New unified
+ 	pattern for bset/binv using a code iterator.
+ 	(<bit_optab>i<mode>): Likewise.
+ 	(<bit_optab><mode>_mask): Likewise.  Support XOR via any_or.
+ 	(<bit_optab>isidi): Likewise.
+ 	* config/riscv/iterators.md (bit_optab): New iterator.
+ 
+ 2024-06-20  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Use TARGET_*_P (opts->x_ix86_isa_flags*) instead of TARGET_*
+ 	for UINTR, LAM and APX_F.
+ 
+ 2024-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114413
+ 	* tree-vect-slp.cc (release_scalar_stmts_to_slp_tree_map):
+ 	New function, split out from ...
+ 	(vect_analyze_slp): ... here.  Call it.
+ 	(vect_cse_slp_nodes): New function.
+ 	(vect_optimize_slp): Call it.
+ 
+ 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vect_transform_reduction): Change assertion to
+ 	cover all lane-reducing ops.
+ 
+ 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vect_transform_reduction): Replace vec_oprnds0/1/2
+ 	with one new array variable vec_oprnds[3].
+ 
+ 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Remove v_reduc_type, and
+ 	replace it to another local variable reduction_type.
+ 
+ 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Remove the duplicated
+ 	check.
+ 
+ 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vectorizer.h (lane_reducing_stmt_p): New function.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Use new function
+ 	lane_reducing_stmt_p to check statement.
+ 
+ 2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	Revert:
+ 	2024-06-19  Collin Funk  <collin.funk1@gmail.com>
+ 
+ 	* configure.ac: Add missing quotation of variable
+ 	gcc_cv_as_mips_explicit_relocs.
+ 	* configure: Regenerate.
+ 
+ 2024-06-19  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond
+ 	* config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove patterns
+ 	(*pred_eqne<mode>_scalar_merge_tie_mask): Ditto
+ 	(*pred_eqne<mode>_scalar): Ditto
+ 	(*pred_eqne<mode>_scalar_narrow): Ditto
+ 
+ 2024-06-19  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add 'a' extension to
+ 	riscv_combine_info.
+ 
+ 2024-06-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/115544
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Disable optimizing
+ 	loads used by COMPLEX_EXPR operands.
+ 
+ 2024-06-19  mayshao  <mayshao-oc@zhaoxin.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao.
+ 	* common/config/i386/i386-common.cc: Add shijidadao.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
+ 	Add ZHAOXIN_FAM7H_SHIJIDADAO.
+ 	* config.gcc: Add shijidadao.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Let -march=native recognize shijidadao processors.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao.
+ 	* config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO.
+ 	(m_SHIJIDADAO): New definition.
+ 	* config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO.
+ 	* config/i386/x86-tune-costs.h (struct processor_costs):
+ 	Add shijidadao_cost.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao.
+ 	(ix86_adjust_cost): Ditto.
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO.
+ 	(X86_TUNE_USE_GATHER_4PARTS): Ditto.
+ 	(X86_TUNE_USE_GATHER_8PARTS): Ditto.
+ 	(X86_TUNE_AVOID_128FMA_CHAINS): Ditto.
+ 	* doc/extend.texi: Add details about shijidadao.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2024-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (print_operand):
+ 	When outputting MEMW before the instruction, check if the previous
+ 	instruction is already that.
+ 
+ 2024-06-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm-protos.h (arm_target_bb_ok_for_lob): Change
+ 	declaration to pass basic_block.
+ 	(arm_attempt_dlstp_transform): New declaration.
+ 	* config/arm/arm.cc (TARGET_LOOP_UNROLL_ADJUST): Define targethook.
+ 	(TARGET_PREDICT_DOLOOP_P): Likewise.
+ 	(arm_target_bb_ok_for_lob): Adapt condition.
+ 	(arm_mve_get_vctp_lanes): New function.
+ 	(arm_dl_usage_type): New internal enum.
+ 	(arm_get_required_vpr_reg): New function.
+ 	(arm_get_required_vpr_reg_param): New function.
+ 	(arm_get_required_vpr_reg_ret_val): New function.
+ 	(arm_mve_get_loop_vctp): New function.
+ 	(arm_mve_insn_predicated_by): New function.
+ 	(arm_mve_across_lane_insn_p): New function.
+ 	(arm_mve_load_store_insn_p): New function.
+ 	(arm_mve_impl_pred_on_outputs_p): New function.
+ 	(arm_mve_impl_pred_on_inputs_p): New function.
+ 	(arm_last_vect_def_insn): New function.
+ 	(arm_mve_impl_predicated_p): New function.
+ 	(arm_mve_check_reg_origin_is_num_elems): New function.
+ 	(arm_mve_dlstp_check_inc_counter): New function.
+ 	(arm_mve_dlstp_check_dec_counter): New function.
+ 	(arm_mve_loop_valid_for_dlstp): New function.
+ 	(arm_predict_doloop_p): New function.
+ 	(arm_loop_unroll_adjust): New function.
+ 	(arm_emit_mve_unpredicated_insn_to_seq): New function.
+ 	(arm_attempt_dlstp_transform): New function.
+ 	* config/arm/arm.opt (mdlstp): New option.
+ 	* config/arm/iterators.md (dlstp_elemsize, letp_num_lanes,
+ 	letp_num_lanes_neg, letp_num_lanes_minus_1): New attributes.
+ 	(DLSTP, LETP): New iterators.
+ 	* config/arm/mve.md (predicated_doloop_end_internal<letp_num_lanes>,
+ 	dlstp<dlstp_elemsize>_insn): New insn patterns.
+ 	* config/arm/thumb2.md (doloop_end): Adapt to support tail-predicated
+ 	loops.
+ 	(doloop_begin): Likewise.
+ 	* config/arm/types.md (mve_misc): New mve type to represent
+ 	predicated_loop_end insn sequences.
+ 	* config/arm/unspecs.md:
+ 	(DLSTP8, DLSTP16, DLSTP32, DSLTP64,
+ 	LETP8, LETP16, LETP32, LETP64): New unspecs for DLSTP and LETP.
+ 
+ 2024-06-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* df-core.cc (df_bb_regno_only_def_find): New helper function.
+ 	* df.h (df_bb_regno_only_def_find): Declare new function.
+ 	* loop-doloop.cc (doloop_condition_get): Add support for detecting
+ 	predicated vectorized hardware loops.
+ 	(doloop_modify): Add support for GTU condition checks.
+ 	(doloop_optimize): Update costing computation to support alterations to
+ 	desc->niter_expr by the backend.
+ 
+ 2024-06-19  Collin Funk  <collin.funk1@gmail.com>
+ 
+ 	* configure.ac: Add missing quotation of variable
+ 	gcc_cv_as_mips_explicit_relocs.
+ 	* configure: Regenerate.
+ 
+ 2024-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_constantsynth):
+ 	Change the second argument from HOST_WIDE_INT to rtx.
+ 	* config/xtensa/xtensa.cc (#include):
+ 	Add "context.h" and "pass_manager.h".
+ 	(machine_function): Add a new hash_map field "litpool_usage".
+ 	(xtensa_constantsynth): Make "src" (the second operand) accept
+ 	RTX literal instead of its value, and treat both bare and pooled
+ 	SI/SFmode literals equally by bit-exact canonicalization into
+ 	CONST_INT RTX internally.  And then, make avoid synthesis if
+ 	such multiple identical canonicalized literals are found in same
+ 	function when optimizing for size.  Finally, for literals where
+ 	synthesis is not possible or has been avoided, re-emit "move"
+ 	RTXes with canonicalized ones to increase the chances of sharing
+ 	literal pool entries.
+ 	* config/xtensa/xtensa.md (split patterns for constant synthesis):
+ 	Change to simply invoke xtensa_constantsynth() as mentioned above,
+ 	and add new patterns for when TARGET_AUTO_LITPOOLS is enabled.
+ 
+ 2024-06-18  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc: Move assert out of conditional block
+ 
+ 2024-06-18  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec-opt.md: Fix mode mismatch
+ 
+ 2024-06-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-cores.def: Add comment
+ 	saying thunderxt81/t83 are aliases of octeontx81/83.
+ 
+ 2024-06-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (thunderxt88p1): Make an alias of thunderxt88 and
+ 	move below thunderxt88.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Move selftest-diagnostic-path.o,
+ 	selftest-logical-location.o, and tree-diagnostic-path.o to...
+ 	(OBJS-libcommon): ...here, renaming tree-diagnostic-path.o to
+ 	diagnostic-path.o.
+ 	* tree-diagnostic-path.cc: Rename to...
+ 	* diagnostic-path.cc: ...this.  Drop include of "tree.h".
+ 	(tree_diagnostic_path_cc_tests): Rename to...
+ 	(diagnostic_path_cc_tests): ...this.
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for above
+ 	renaming.
+ 	* selftest.h (tree_diagnostic_path_cc_tests): Rename decl to...
+ 	(diagnostic_path_cc_tests): ...this.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc (diagnostic_output_format_init_json):
+ 	Replace clearing of diagnostic_context::m_print_path callback with
+ 	setting the path format to DPF_NONE.
+ 	* diagnostic-format-sarif.cc
+ 	(diagnostic_output_format_init_sarif): Likewise.
+ 	* diagnostic.cc (diagnostic_context::show_any_path): Replace call
+ 	to diagnostic_context::m_print_path callback with a direct call to
+ 	diagnostic_context::print_path.
+ 	* diagnostic.h (diagnostic_context::print_path): New decl.
+ 	(diagnostic_context::m_print_path): Delete callback.
+ 	* tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
+ 	Convert to...
+ 	(diagnostic_context::print_path): ...this.
+ 	* tree-diagnostic.cc (tree_diagnostics_defaults): Delete
+ 	initialization of m_print_path.
+ 	* tree-diagnostic.h (default_tree_diagnostic_path_printer): Delete
+ 	decl.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-macro-unwinding.cc: New file, with material taken
+ 	from tree-diagnostic.cc.
+ 	* diagnostic-macro-unwinding.h: New file, with material taken
+ 	from tree-diagnostic.h.
+ 	* tree-diagnostic-path.cc: Repalce include of "tree-diagnostic.h"
+ 	with "diagnostic-macro-unwinding.h".
+ 	* tree-diagnostic.cc (struct loc_map_pair): Move to
+ 	diagnostic-macro-unwinding.cc.
+ 	(maybe_unwind_expanded_macro_loc): Likewise.
+ 	(virt_loc_aware_diagnostic_finalizer): Likewise.
+ 	* tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Move
+ 	decl to diagnostic-macro-unwinding.h.
+ 	(maybe_unwind_expanded_macro_loc): Likewise.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add diagnostic-macro-unwinding.o.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc: Include "diagnostic-path.h" and
+ 	"logical-location.h".
+ 	(make_json_for_path): Move tree-diagnostic-path.cc's
+ 	default_tree_make_json_for_path here, renaming it and making it
+ 	static.
+ 	(json_output_format::on_end_diagnostic): Replace call of
+ 	m_context's m_make_json_for_path callback with a direct call to
+ 	make_json_for_path.
+ 	* diagnostic.h (diagnostic_context::m_make_json_for_path): Drop
+ 	field.
+ 	* tree-diagnostic-path.cc: Drop include of "json.h".
+ 	(default_tree_make_json_for_path): Rename to make_json_for_path
+ 	and move to diagnostic-format-json.cc.
+ 	* tree-diagnostic.cc (tree_diagnostics_defaults): Drop
+ 	initialization of m_make_json_for_path.
+ 	* tree-diagnostic.h (default_tree_make_json_for): Delete decl.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add selftest-diagnostic-path.o and
+ 	selftest-logical-location.o.
+ 	* logical-location.h: Include "label-text.h".
+ 	(class logical_location): Update leading comment.
+ 	* selftest-diagnostic-path.cc: New file, adapted from
+ 	simple-diagnostic-path.cc and from material in
+ 	tree-diagnostic-path.cc.
+ 	* selftest-diagnostic-path.h: New file, adapted from
+ 	simple-diagnostic-path.h and from material in
+ 	tree-diagnostic-path.cc.
+ 	* selftest-logical-location.cc: New file.
+ 	* selftest-logical-location.h: New file.
+ 	* tree-diagnostic-path.cc: Remove includes of "tree-pretty-print.h",
+ 	"langhooks.h", and "simple-diagnostic-path.h".  Add include of
+ 	"selftest-diagnostic-path.h".
+ 	(class test_diagnostic_path): Delete, in favor of new
+ 	implementation in selftest-diagnostic-path.{h,cc}, which is
+ 	directly derived from diagnostic_path, rather than from
+ 	simple_diagnostic_path.
+ 	(selftest::test_intraprocedural_path): Eliminate tree usage,
+ 	via change to test_diagnostic_path, using strings rather than
+ 	function_decls for identifying functions in the test.
+ 	(selftest::test_interprocedural_path_1): Likewise.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 	(selftest::test_control_flow_1): Likewise.
+ 	(selftest::test_control_flow_2): Likewise.
+ 	(selftest::test_control_flow_3): Likewise.
+ 	(selftest::assert_cfg_edge_path_streq): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc: Include "logical-location.h".
+ 	(diagnostic_path::get_first_event_in_a_function): Fix typo in
+ 	leading comment.  Rewrite to use logical_location rather than
+ 	tree.  Drop test on stack depth.
+ 	(diagnostic_path::interprocedural_p): Rewrite to use
+ 	logical_location rather than tree.
+ 	(logical_location::function_p): New.
+ 	* diagnostic-path.h (diagnostic_event::get_fndecl): Eliminate
+ 	vfunc.
+ 	(diagnostic_path::same_function_p): New pure virtual func.
+ 	* logical-location.h (logical_location::get_name_for_path_output):
+ 	New pure virtual func.
+ 	* simple-diagnostic-path.cc
+ 	(simple_diagnostic_path::same_function_p): New.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Initialize
+ 	m_logical_loc.
+ 	* simple-diagnostic-path.h: Include "tree-logical-location.h".
+ 	(simple_diagnostic_event::get_fndecl): Convert from a vfunc
+ 	implementation to an accessor.
+ 	(simple_diagnostic_event::get_logical_location): Use
+ 	m_logical_loc.
+ 	(simple_diagnostic_event::m_logical_loc): New field.
+ 	(simple_diagnostic_path::same_function_p): New decl.
+ 	* tree-diagnostic-path.cc: Move pragma disabling -Wformat-diag to
+ 	cover the whole file.
+ 	(can_consolidate_events): Add params "path", "ev1_idx", and
+ 	"ev2_idx".  Rewrite to use diagnostic_path::same_function_p rather
+ 	than tree.
+ 	(per_thread_summary::per_thread_summary): Add "path" param
+ 	(per_thread_summary::m_path): New field.
+ 	(event_range::event_range): Update for conversion of m_fndecl to
+ 	m_logical_loc.
+ 	(event_range::maybe_add_event): Rename param "idx" to
+ 	"new_ev_idx".  Update call to can_consolidate_events to pass in
+ 	"m_path", "m_start_idx", and "new_ev_idx".
+ 	(event_range::m_fndecl): Replace with...
+ 	(event_range::m_logical_loc): ...this.
+ 	(path_summary::get_or_create_events_for_thread_id): Pass "path" to
+ 	per_thread_summary ctor.
+ 	(per_thread_summary::interprocedural_p): Rewrite to use
+ 	diagnostic_path::same_function_p rather than tree.
+ 	(print_fndecl): Delete.
+ 	(thread_event_printer::print_swimlane_for_event_range): Update for
+ 	conversion from tree to logical_location.
+ 	(default_tree_diagnostic_path_printer): Likewise.
+ 	(default_tree_make_json_for_path): Likewise.
+ 	* tree-logical-location.cc: Include "intl.h".
+ 	(compiler_logical_location::get_name_for_tree_for_path_output):
+ 	New.
+ 	(tree_logical_location::get_name_for_path_output): New.
+ 	(current_fndecl_logical_location::get_name_for_path_output): New.
+ 	* tree-logical-location.h
+ 	(compiler_logical_location::get_name_for_tree_for_path_output):
+ 	New decl.
+ 	(tree_logical_location::get_name_for_path_output): New decl.
+ 	(current_fndecl_logical_location::get_name_for_path_output): New
+ 	decl.
+ 
+ 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add simple-diagnostic-path.o.
+ 	* diagnostic-path.h (class simple_diagnostic_event): Move to
+ 	simple-diagnostic-path.h.
+ 	(class simple_diagnostic_thread): Likewise.
+ 	(class simple_diagnostic_path): Likewise.
+ 	* diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path):
+ 	Move to simple-diagnostic-path.cc.
+ 	(simple_diagnostic_path::num_events): Likewise.
+ 	(simple_diagnostic_path::get_event): Likewise.
+ 	(simple_diagnostic_path::num_threads): Likewise.
+ 	(simple_diagnostic_path::get_thread): Likewise.
+ 	(simple_diagnostic_path::add_thread): Likewise.
+ 	(simple_diagnostic_path::add_event): Likewise.
+ 	(simple_diagnostic_path::add_thread_event): Likewise.
+ 	(simple_diagnostic_path::connect_to_next_event): Likewise.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Likewise.
+ 	(simple_diagnostic_event::~simple_diagnostic_event): Likewise.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::simple_diagnostic_path_cc_tests.
+ 	* selftest.h (selftest::simple_diagnostic_path_cc_tests): New
+ 	decl.
+ 	* simple-diagnostic-path.cc: New file, from the above material.
+ 	* simple-diagnostic-path.h: New file, from the above material
+ 	from diagnostic-path.h.
+ 	* tree-diagnostic-path.cc: Include "simple-diagnostic-path.h".
+ 
+ 2024-06-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 7 and 8 for the unsigned .SAT_ADD match.
+ 
+ 2024-06-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 11 match pattern for .SAT_SUB.
+ 
+ 2024-06-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115537
+ 	* tree-vect-loop.cc (vectorizable_reduction): Also reject
+ 	SLP condition reductions of EXTRACT_LAST kind when multiple
+ 	statement copies are involved.
+ 
+ 2024-06-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bset splitters): New patterns for
+ 	generating bset when bit position is limited.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_addti_scratch_regs): Use
+ 	force_highpart_subreg instead of gen_highpart and simplify_gen_subreg.
+ 	(aarch64_subvti_scratch_regs): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* explow.h (force_highpart_subreg): Declare.
+ 	* explow.cc (force_highpart_subreg): New function.
+ 	* builtins.cc (expand_builtin_issignaling): Use it.
+ 	* expmed.cc (emit_store_flag_1): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* builtins.cc (expand_builtin_issignaling): Use force_lowpart_subreg
+ 	instead of simplify_gen_subreg and lowpart_subreg.
+ 	* expr.cc (convert_mode_scalar, expand_expr_real_2): Likewise.
+ 	* optabs.cc (expand_doubleword_mod): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/115464
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin)
+ 	(aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of
+ 	simplify_gen_subreg and lowpart_subreg.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svset_neonq_impl::expand): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc
+ 	(add_load_store_slice_operand): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise.
+ 	(aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* explow.h (force_lowpart_subreg): Declare.
+ 	* explow.cc (force_lowpart_subreg): New function.
+ 	* optabs.cc (lowpart_subreg_maybe_copy): Delete.
+ 	(expand_absneg_bit): Use force_lowpart_subreg instead of
+ 	lowpart_subreg_maybe_copy.
+ 	(expand_copysign_bit): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* expmed.cc (store_bit_field_using_insv): Use force_subreg
+ 	instead of simplify_gen_subreg.
+ 	(store_bit_field_1): Likewise.
+ 	(extract_bit_field_as_subreg): Likewise.
+ 	(extract_integral_bit_field): Likewise.
+ 	(emit_store_flag_1): Likewise.
+ 	* expr.cc (convert_move): Likewise.
+ 	(convert_modes): Likewise.
+ 	(emit_group_load_1): Likewise.
+ 	(emit_group_store): Likewise.
+ 	(expand_assignment): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin):
+ 	Use force_subreg instead of simplify_gen_subreg.
+ 	* config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svget_impl::expand): Likewise.
+ 	(svget_neonq_impl::expand): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(multireg_permute::expand): Likewise.
+ 
+ 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* explow.cc (force_subreg): Emit no instructions on failure.
+ 
+ 2024-06-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/115324
+ 	* config/rs6000/rs6000-gen-builtins.cc (write_decls): Change
+ 	declaration of rs6000_init_generated_builtins from no arguments
+ 	to 4 pointer arguments.
+ 	(write_init_bif_table): Change rs6000_builtin_info_fntype to
+ 	builtin_info_fntype and rs6000_builtin_decls to builtin_decls.
+ 	(write_init_ovld_table): Change rs6000_instance_info_fntype to
+ 	instance_info_fntype, rs6000_builtin_decls to builtin_decls and
+ 	rs6000_overload_info to overload_info.
+ 	(write_init_file): Add __noipa__ attribute to
+ 	rs6000_init_generated_builtins for GCC 8.1+ and change the function
+ 	from no arguments to 4 pointer arguments.  Change rs6000_builtin_decls
+ 	to builtin_decls.
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Adjust
+ 	rs6000_init_generated_builtins caller.
+ 
+ 2024-06-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115493
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Use
+ 	the first scalar result.
+ 
+ 2024-06-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111793
+ 	* tree-ssa-alias.h (ref_can_have_store_data_races): Declare.
+ 	* tree-ssa-alias.cc (ref_can_have_store_data_races): New
+ 	function.
+ 	* tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use
+ 	ref_can_have_store_data_races to allow more unconditional
+ 	stores.
+ 	* tree-ssa-loop-im.cc (execute_sm): Likewise.
+ 	* tree-ssa-phiopt.cc (cond_store_replacement): Likewise.
+ 
+ 2024-06-18  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avxintrin.h: Move cmp[p|s][s|d] to [e|x]mmintrin.h,
+ 	and move macros to xmmintrin.h
+ 	* config/i386/emmintrin.h: Add cmp[p|s]s intrins.
+ 	* config/i386/i386-builtin.def: Modify __builtin_ia32_cmp[p|s][s|d].
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_args_builtin): Raise error when imm is in range of
+ 	[8, 32] without avx.
+ 	* config/i386/predicates.md (cmpps_imm_operand): New predicate.
+ 	* config/i386/sse.md (avx_cmp<mode>3): Modefy define_insn.
+ 	(avx_vmcmp<mode>3): Ditto.
+ 	* config/i386/xmmintrin.h (_CMP_EQ_OQ): New macro for sse/sse2.
+ 	(_CMP_LT_OS): Ditto
+ 	(_CMP_LE_OS): Ditto
+ 	(_CMP_UNORD_Q): Ditto
+ 	(_CMP_NEQ_UQ): Ditto
+ 	(_CMP_NLT_US): Ditto
+ 	(_CMP_NLE_US): Ditto
+ 	(_CMP_ORD_Q): Ditto
+ 	(_mm_cmp_ps): Move intrin from avxintrin.h to xmmintrin.h
+ 	(_mm_cmp_ss): Ditto.
+ 
+ 2024-06-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bsetclr_zero_extract): New pattern.
+ 
+ 2024-06-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR driver/115440
+ 	* opts-common.cc (add_misspelling_candidates): If opt1 is non-NULL,
+ 	add a space and opt1 to the alternative suggestion text.
+ 
+ 2024-06-17  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::to_string): Skip zaamo/zalrsc when not
+ 	supported by the assembler.
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add zaamo/zalrsc assmeber check.
+ 
+ 2024-06-17  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Configuration): Mark up __cxa_atexit as @code.
+ 
+ 2024-06-17  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/115389
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Compute
+ 	rop_hash_save_offset for non-Altivec compiles.
+ 
+ 2024-06-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bsetdi_2): New pattern.
+ 
+ 2024-06-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115508
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Guard check on
+ 	representative.
+ 
+ 2024-06-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2024-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/100923
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize
+ 	base SSA_NAME.
+ 	(vn_reference_lookup_3): Adjust vn_context_bb around calls
+ 	to ao_ref_init_from_vn_reference.
+ 	(vn_reference_lookup_pieces): Revert original PR100923 fix.
+ 	(vn_reference_lookup): Likewise.
+ 
+ 2024-06-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer-in.cc (streamer_read_value_range): Rename
+ 	Value_Range to value_range.
+ 	* data-streamer.h (streamer_read_value_range): Same.
+ 	* gimple-pretty-print.cc (dump_ssaname_info): Same.
+ 	* gimple-range-cache.cc (ssa_block_ranges::dump): Same.
+ 	(ssa_lazy_cache::merge): Same.
+ 	(block_range_cache::dump): Same.
+ 	(ssa_cache::merge_range): Same.
+ 	(ssa_cache::dump): Same.
+ 	(ranger_cache::edge_range): Same.
+ 	(ranger_cache::propagate_cache): Same.
+ 	(ranger_cache::fill_block_cache): Same.
+ 	(ranger_cache::resolve_dom): Same.
+ 	(ranger_cache::range_from_dom): Same.
+ 	(ranger_cache::register_inferred_value): Same.
+ 	* gimple-range-fold.cc (op1_range): Same.
+ 	(op2_range): Same.
+ 	(fold_relations): Same.
+ 	(fold_using_range::range_of_range_op): Same.
+ 	(fold_using_range::range_of_phi): Same.
+ 	(fold_using_range::range_of_call): Same.
+ 	(fold_using_range::condexpr_adjust): Same.
+ 	(fold_using_range::range_of_cond_expr): Same.
+ 	(fur_source::register_outgoing_edges): Same.
+ 	* gimple-range-fold.h (gimple_range_type): Same.
+ 	(gimple_range_ssa_p): Same.
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Same.
+ 	(gori_compute::logical_combine): Same.
+ 	(gori_compute::refine_using_relation): Same.
+ 	(gori_compute::compute_operand1_range): Same.
+ 	(gori_compute::compute_operand2_range): Same.
+ 	(gori_compute::compute_operand1_and_operand2_range): Same.
+ 	(gori_calc_operands): Same.
+ 	(gori_name_helper): Same.
+ 	* gimple-range-infer.cc (gimple_infer_range::check_assume_func): Same.
+ 	(gimple_infer_range::gimple_infer_range): Same.
+ 	(infer_range_manager::maybe_adjust_range): Same.
+ 	(infer_range_manager::add_range): Same.
+ 	* gimple-range-infer.h: Same.
+ 	* gimple-range-op.cc
+ 	(gimple_range_op_handler::gimple_range_op_handler): Same.
+ 	(gimple_range_op_handler::calc_op1): Same.
+ 	(gimple_range_op_handler::calc_op2): Same.
+ 	(gimple_range_op_handler::maybe_builtin_call): Same.
+ 	* gimple-range-path.cc (path_range_query::internal_range_of_expr): Same.
+ 	(path_range_query::ssa_range_in_phi): Same.
+ 	(path_range_query::compute_ranges_in_phis): Same.
+ 	(path_range_query::compute_ranges_in_block): Same.
+ 	(path_range_query::add_to_exit_dependencies): Same.
+ 	* gimple-range-trace.cc (debug_seed_ranger): Same.
+ 	* gimple-range.cc (gimple_ranger::range_of_expr): Same.
+ 	(gimple_ranger::range_on_entry): Same.
+ 	(gimple_ranger::range_on_edge): Same.
+ 	(gimple_ranger::range_of_stmt): Same.
+ 	(gimple_ranger::prefill_stmt_dependencies): Same.
+ 	(gimple_ranger::register_inferred_ranges): Same.
+ 	(gimple_ranger::register_transitive_inferred_ranges): Same.
+ 	(gimple_ranger::export_global_ranges): Same.
+ 	(gimple_ranger::dump_bb): Same.
+ 	(assume_query::calculate_op): Same.
+ 	(assume_query::calculate_phi): Same.
+ 	(assume_query::dump): Same.
+ 	(dom_ranger::range_of_stmt): Same.
+ 	* ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Same.
+ 	(ipa_vr_operation_and_type_effects): Same.
+ 	(ipa_value_range_from_jfunc): Same.
+ 	(propagate_bits_across_jump_function): Same.
+ 	(propagate_vr_across_jump_function): Same.
+ 	(ipcp_store_vr_results): Same.
+ 	* ipa-cp.h: Same.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
+ 	(evaluate_properties_for_edge): Same.
+ 	* ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
+ 	(ipa_vr::get_vrange): Same.
+ 	(ipa_vr::streamer_read): Same.
+ 	(ipa_vr::streamer_write): Same.
+ 	(ipa_vr::dump): Same.
+ 	(ipa_set_jfunc_vr): Same.
+ 	(ipa_compute_jump_functions_for_edge): Same.
+ 	(ipcp_get_parm_bits): Same.
+ 	(ipcp_update_vr): Same.
+ 	(ipa_record_return_value_range): Same.
+ 	(ipa_return_value_range): Same.
+ 	* ipa-prop.h (ipa_return_value_range): Same.
+ 	(ipa_record_return_value_range): Same.
+ 	* range-op.h (range_cast): Same.
+ 	* tree-ssa-dom.cc
+ 	(dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
+ 	(cprop_operand): Same.
+ 	* tree-ssa-loop-ch.cc (loop_static_stmt_p): Same.
+ 	* tree-ssa-loop-niter.cc (record_nonwrapping_iv): Same.
+ 	* tree-ssa-loop-split.cc (split_at_bb_p): Same.
+ 	* tree-ssa-phiopt.cc (value_replacement): Same.
+ 	* tree-ssa-strlen.cc (get_range): Same.
+ 	* tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
+ 	(hybrid_jt_simplifier::compute_exit_dependencies): Same.
+ 	* tree-ssanames.cc (set_range_info): Same.
+ 	(duplicate_ssa_name_range_info): Same.
+ 	* tree-vrp.cc (remove_unreachable::handle_early): Same.
+ 	(remove_unreachable::remove_and_update_globals): Same.
+ 	(execute_ranger_vrp): Same.
+ 	* value-query.cc (range_query::value_of_expr): Same.
+ 	(range_query::value_on_edge): Same.
+ 	(range_query::value_of_stmt): Same.
+ 	(range_query::value_on_entry): Same.
+ 	(range_query::value_on_exit): Same.
+ 	(range_query::get_tree_range): Same.
+ 	* value-range-storage.cc (vrange_storage::set_vrange): Same.
+ 	* value-range.cc (Value_Range::dump): Same.
+ 	(value_range::dump): Same.
+ 	(debug): Same.
+ 	* value-range.h (enum value_range_discriminator): Same.
+ 	(class vrange): Same.
+ 	(class Value_Range): Same.
+ 	(class value_range): Same.
+ 	(Value_Range::Value_Range): Same.
+ 	(value_range::value_range): Same.
+ 	(Value_Range::~Value_Range): Same.
+ 	(value_range::~value_range): Same.
+ 	(Value_Range::set_type): Same.
+ 	(value_range::set_type): Same.
+ 	(Value_Range::init): Same.
+ 	(value_range::init): Same.
+ 	(Value_Range::operator=): Same.
+ 	(value_range::operator=): Same.
+ 	(Value_Range::operator==): Same.
+ 	(value_range::operator==): Same.
+ 	(Value_Range::operator!=): Same.
+ 	(value_range::operator!=): Same.
+ 	(Value_Range::supports_type_p): Same.
+ 	(value_range::supports_type_p): Same.
+ 	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Same.
+ 	(simplify_using_ranges::legacy_fold_cond): Same.
+ 
+ 2024-06-17  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/115161
+ 	* config/i386/i386-builtin.def: Change CODE_FOR_* for cvtt*'s builtins.
+ 	* config/i386/sse.md:
+ 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>
+ 	_trunc<mode>2<mask_name><round_saeonly_name>):
+ 	Use UNSPEC instead of FIX/UNSIGNED_FIX.
+ 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
+ 	Ditto.
+ 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncv2di2<mask_name>): Ditto.
+ 	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_sse_cvttps2pi): Ditto.
+ 	(unspec_sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Ditto.
+ 	(unspec_fix<vcvtt_uns_suffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_fix_truncv8sfv8si2<mask_name>): Ditto.
+ 	(unspec_fix_truncv4sfv4si2<mask_name>): Ditto.
+ 	(unspec_sse2_cvttpd2pi): Ditto.
+ 	(unspec_fixuns_truncv2dfv2si2): Ditto.
+ 	(unspec_avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>): Ditto.
+ 	(unspec_fix<vcvtt_uns_suffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(*unspec_fixuns_truncv2dfv2si2): Ditto.
+ 	(unspec_fixuns_truncv2dfv2si2_mask): Ditto.
+ 	(unspec_fix_truncv4dfv4si2<mask_name>): Ditto.
+ 	(unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
+ 	(unspec_fix<vcvtt_uns_suffix>
+ 	_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_fix<vcvtt_uns_suffix>
+ 	_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(unspec_avx512dq_fix<vcvtt_uns_suffix>_truncv2sfv2di2<mask_name>):
+ 	Ditto.
+ 	(<mask_codefor>unspec_fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
+ 	Ditto.
+ 	(unspec_sse2_cvttpd2dq<mask_name>): Ditto.
+ 
+ 2024-06-17  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_vectorize_vec_perm_const): Convert BF to HI using subreg.
+ 	* config/i386/predicates.md
+ 	(vcvtne2ps2bf_parallel): New define_insn_and_split.
+ 	* config/i386/sse.md
+ 	(vpermt2_sepcial_bf16_shuffle_<mode>): New predicates matches odd increasing perm.
+ 
+ 2024-06-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (*vmrhf_half<mode>): New.
+ 	(extendv2sfv2df2): New.
+ 
+ 2024-06-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR target/115261
+ 	* config/s390/s390.md (any_extend,extend_insn,zero_extend):
+ 	New code attributes and code iterator.
+ 	* config/s390/vector.md (V_EXTEND): New mode iterator.
+ 	(<extend_insn><V_EXTEND:mode><vec_2x_wide>2): New insn.
+ 
+ 2024-06-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/100211
+ 	* config/aarch64/aarch64.h (machine_function): Fix the size
+ 	of reg_is_wrapped_separately.
+ 
+ 2024-06-16  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md ((1 << N) | C): New splitter for IOR/XOR
+ 	of a single bit an a DImode object.
+ 
+ 2024-06-16  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/sh/sh.md (neg_zero_extract_4b): New pattern.
+ 
+ 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* pretty-print.cc (mingw_ansi_fputs): Don't translate escape sequences if
+ 	the console has ENABLE_VIRTUAL_TERMINAL_PROCESSING.
+ 
+ 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* diagnostic-color.cc (auto_enable_urls): Don't hardcode to return
+ 	false on mingw hosts.
+ 	(auto_enable_urls): Return true if console
+ 	supports ansi escape sequences.
+ 
+ 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* diagnostic-color.cc (should_colorize): Enable processing of VT100
+ 	escape sequences on windows consoles
+ 
+ 2024-06-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Fix allocation size of buffer.
+ 	(riscv_process_one_target_attr): Likewise.
+ 	(riscv_process_target_attr): Likewise.
+ 
+ 2024-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific): Remove pointer to old versions
+ 	of binutils.
+ 
+ 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_calc_operands): Do not continue nor
+ 	add the range when VARYING is produced for an operand.
+ 
+ 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_lazy_cache::merge): New.
+ 	* gimple-range-cache.h (ssa_lazy_cache::merge): New prototype.
+ 
+ 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_call): Ensure
+ 	LHS is an SSA_NAME before invoking gimple_range_global.
+ 
+ 2024-06-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add more match for unsigned sat_sub.
+ 	* tree-ssa-math-opts.cc (match_unsigned_saturation_sub): Add new
+ 	func impl to match phi node for .SAT_SUB.
+ 	(math_opts_dom_walker::after_dom_children): Try match .SAT_SUB
+ 	for the phi node, MULT_EXPR, BIT_XOR_EXPR and BIT_AND_EXPR.
+ 
+ 2024-06-14  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* configure.ac: Drop ${objdir}/ from NM and AR. Move setting of
+ 	ld_ver out of conditional.
+ 	* configure: Re-generate.
+ 
+ 2024-06-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Allow
+ 	single-def-use cycles with SLP.
+ 	(vect_transform_reduction): Handle SLP single def-use cycles.
+ 	(vect_transform_cycle_phi): Likewise.
+ 
+ 2024-06-14  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (x86 Options): Consolidate duplicate MOVBE
+ 	listings for haswell, broadwell, skylake, skylake-avx512,
+ 	cannonlake, icelake-client, icelake-server, cascadelake,
+ 	cooperlake, tigerlake, sapphirerapids, rocketlake, graniterapids,
+ 	and graniterapids-d options to -march.
+ 
+ 2024-06-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115456
+ 	* config/riscv/vector-iterators.md: Leverage V_ZVFH instead of V
+ 	which contains the VF_ZVFHMIN for alignment.
+ 
+ 2024-06-14  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific): Remove stale reference to Interix.
+ 
+ 2024-06-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Do not
+ 	re-use poly-int remain but re-compute with non-poly values.
+ 	Verify the shortened load is good enough to be covered with
+ 	a single scalar gap iteration before accepting it.
+ 
+ 2024-06-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
+ 	pternlog_operand under AVX512, also adjust VEC_DUPLICATE
+ 	according since vec_dup:mem can't be that cheap.
+ 
+ 2024-06-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Remove
+ 	latest Intel processors.
+ 	Co-authored by: Lingling Kong <lingling.kong@intel.com>
+ 
+ 2024-06-14  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_ternlog): Try performing
+ 	logic operation in a different vector mode if that enables use of
+ 	a 32-bit or 64-bit broadcast addressing mode.
+ 
+ 2024-06-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/113212
+ 	* expr.h (const_seqpops): New typedef.
+ 	(expand_expr_real_2): Constify the first argument.
+ 	* optabs.cc (expand_widen_pattern_expr): Likewise.
+ 	* optabs.h (expand_widen_pattern_expr): Likewise.
+ 	* expr.cc (expand_expr_real_2):  Likewise
+ 	(do_store_flag): Likewise. Remove incorrect store to ops->code.
+ 
+ 2024-06-13  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync-rvwmo.md: Add support for subword fenced
+ 	loads/stores.
+ 	* config/riscv/sync-ztso.md: Ditto.
+ 	* config/riscv/sync.md: Ditto.
+ 
+ 2024-06-13  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (AArch64 Function Attributes): Add
+ 	(AVR Variable Attributes): Ditto.
+ 	(Common Type Attributes): Ditto.
+ 
+ 2024-06-13  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/115370
+ 	PR target/115463
+ 	* target.def (have_ccmp): New target hook.
+ 	* targhooks.cc (default_have_ccmp): New function.
+ 	* targhooks.h (default_have_ccmp): New prototype.
+ 	* doc/tm.texi.in: Add TARGET_HAVE_CCMP.
+ 	* doc/tm.texi: Regenerate.
+ 	* cfgexpand.cc (expand_gimple_cond): Call targetm.have_ccmp
+ 	instead of checking if targetm.gen_ccmp_first exists.
+ 	* expr.cc (expand_expr_real_gassign): Likewise.
+ 	* config/i386/i386.cc (ix86_have_ccmp): New target hook to
+ 	check if APX_CCMP enabled.
+ 	(TARGET_HAVE_CCMP): Define.
+ 
+ 2024-06-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/115464
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
+ 	to fold two subregs together if their relationship isn't known
+ 	at compile time.
+ 	* explow.h (force_subreg): Declare.
+ 	* explow.cc (force_subreg): New function.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
+ 
+ 2024-06-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115456
+ 	* config/riscv/autovec.md: Take ZVFH mode iterator instead of
+ 	the ZVFHMIN for the alignment.
+ 	* config/riscv/vector-iterators.md: Add 2 new iterator
+ 	V_VLS_ZVFH and VLS_ZVFH.
+ 
+ 2024-06-13  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (@ccmp<mode>): Add new alternative
+ 	<r>,C and adjust output templates. Also adjust UNSPEC mode
+ 	to CCmode.
+ 
+ 2024-06-13  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR other/69374
+ 	* doc/install.texi (Prerequisites): Simplify note on the C++
+ 	compiler required. Drop requirements for versions of GCC prior
+ 	to 3.4. Fix grammar.
+ 
+ 2024-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Consistently
+ 	use VMAT_STRIDED_SLP for strided SLP accesses and not
+ 	VMAT_ELEMENTWISE.
+ 	(vectorizable_store): Adjust VMAT_STRIDED_SLP handling to
+ 	allow not only half-size but also smaller accesses.
+ 	(vectorizable_load): Likewise.
+ 
+ 2024-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115385
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Peeling
+ 	of a single scalar iteration is sufficient if we can narrow
+ 	the access to the next power of two of the bits in the last
+ 	access.
+ 	(vectorizable_load): Ensure that the last access is narrowed.
+ 
+ 2024-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114107
+ 	PR tree-optimization/110445
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Refactor
+ 	contiguous access case.  Make sure peeling for gap constraints
+ 	are always tested and consistently relax when we know we can
+ 	avoid touching excess elements during code generation.  But
+ 	rewrite the check poly-int aware.
+ 
+ 2024-06-13  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	* doc/extend.texi: Use std::string_view in asm constexpr
+ 	example.
+ 
+ 2024-06-13  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115452
+ 	* config/i386/i386-features.cc (scalar_chain::convert_op): Use
+ 	reg_or_subregno instead of REGNO to avoid ICE.
+ 
+ 2024-06-13  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips-cpus.def: Use PROCESSOR_24KF1_1 for mips32;
+ 	Use PROCESSOR_5KF for mips64/mips64r2/mips64r3/mips64r5.
+ 
+ 2024-06-13  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips-modes.def: New CC_MODE CCE.
+ 	* config/mips/mips-protos.h(mips_output_compare): New function.
+ 	* config/mips/mips.cc(mips_allocate_fcc): Set CCEmode count=1.
+ 	(mips_emit_compare): Use CCEmode for LTGT/LT/LE for pre-R6.
+ 	(mips_output_compare): New function. Convert lt/le to slt/sle
+ 	for R6; convert ueq to ngl for CCEmode.
+ 	(mips_hard_regno_mode_ok_uncached): Mention CCEmode.
+ 	* config/mips/mips.h: Mention CCEmode for LOAD_EXTEND_OP.
+ 	* config/mips/mips.md(FPCC): Add CCE.
+ 	(define_mode_iterator MOVECC): Mention CCE.
+ 	(define_mode_attr reg): Add CCE with "z".
+ 	(define_mode_attr fpcmp): Add CCE with "c".
+ 	(define_code_attr fcond): ltgt should use sne instead of ne.
+ 	(s<code>_<SCALARF:mode>_using_<FPCC:mode>): call mips_output_compare.
+ 
+ 2024-06-13  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386-opts.h (enum apx_features): Add apx_zu.
+ 	* config/i386/i386.h (TARGET_APX_ZU): Define.
+ 	* config/i386/i386.md (*imulhi<mode>zu): New define_insn.
+ 	(*setcc_<mode>_zu): Ditto.
+ 	* config/i386/i386.opt: Add enum value for zu.
+ 
+ 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/115465
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::process_block):
+ 	Update for fields of pretty_printer becoming private in
+ 	r15-1209-gc5e3be456888aa.
+ 
+ 2024-06-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/115176
+ 	* config/aarch64/aarch64-simd.md (aarch64_rbit<mode><vczle><vczbe>): Use
+ 	bitreverse instead of unspec.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svrbit): Convert over to using
+ 	rtx_code_function instead of unspec_based_function.
+ 	* config/aarch64/aarch64-sve.md: Update comment where RBIT is included.
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Handle BITREVERSE like BSWAP.
+ 	Remove UNSPEC_RBIT support.
+ 	* config/aarch64/aarch64.md (unspec): Remove UNSPEC_RBIT.
+ 	(aarch64_rbit<mode>): Use bitreverse instead of unspec.
+ 	* config/aarch64/iterators.md (SVE_INT_UNARY): Add bitreverse.
+ 	(optab): Likewise.
+ 	(sve_int_op): Likewise.
+ 	(SVE_INT_UNARY): Remove UNSPEC_RBIT.
+ 	(optab): Likewise.
+ 	(sve_int_op): Likewise.
+ 	(min_elem_bits): Likewise.
+ 
+ 2024-06-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115449
+ 	* gimple-match-head.cc (gimple_maybe_truncate): New declaration.
+ 	(gimple_bitwise_equal_p): Match truncations that differ only
+ 	in types with the same precision.
+ 	(gimple_bitwise_inverted_equal_p): For matching after bit_not_with_nop
+ 	call gimple_bitwise_equal_p.
+ 	* match.pd (maybe_truncate): New match pattern.
+ 
+ 2024-06-12  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR tree-optimization/114061
+ 	* tree-data-ref.cc (get_references_in_stmt): set
+ 	`clobbers_memory' to false for __builtin_prefetch.
+ 	* tree-vect-loop.cc (vect_transform_loop): Drop all
+ 	__builtin_prefetch calls from loops.
+ 
+ 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* dumpfile.cc (dump_pretty_printer::emit_items): Update for
+ 	changes to chunk_info.
+ 	* pretty-print.cc (chunk_info::append_formatted_chunk): New, based
+ 	on code in cp/error.cc's append_formatted_chunk.
+ 	(chunk_info::pop_from_output_buffer): New, based on code in
+ 	pp_output_formatted_text and dump_pretty_printer::emit_items.
+ 	(on_begin_quote): Convert to...
+ 	(chunk_info::on_begin_quote): ...this.
+ 	(on_end_quote): Convert to...
+ 	(chunk_info::on_end_quote): ...this.
+ 	(pretty_printer::format): Update for chunk_info becoming a class
+ 	and its fields gaining "m_" prefixes.  Update for on_begin_quote
+ 	and on_end_quote moving to chunk_info.
+ 	(quoting_info::handle_phase_3): Update for changes to chunk_info.
+ 	(pp_output_formatted_text): Likewise.  Move cleanup code to
+ 	chunk_info::pop_from_output_buffer.
+ 	* pretty-print.h (class output_buffer): New forward decl.
+ 	(class urlifier): New forward decl.
+ 	(struct chunk_info): Convert to...
+ 	(class chunk_info): ...this.  Add friend class pretty_printer.
+ 	(chunk_info::get_args): New accessor.
+ 	(chunk_info::get_quoting_info): New accessor.
+ 	(chunk_info::append_formatted_chunk): New decl.
+ 	(chunk_info::pop_from_output_buffer): New decl.
+ 	(chunk_info::on_begin_quote): New decl.
+ 	(chunk_info::on_end_quote): New decl.
+ 	(chunk_info::prev): Rename to...
+ 	(chunk_info::m_prev): ...this.
+ 	(chunk_info::args): Rename to...
+ 	(chunk_info::m_args): ...this.
+ 	(output_buffer::cur_chunk_array): Drop "struct" from decl.
+ 
+ 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::urls_init): Update for fields
+ 	of pretty_printer becoming private.
+ 	(diagnostic_context::print_any_cwe): Likewise.
+ 	(diagnostic_context::print_any_rules): Likewise.
+ 	(diagnostic_context::print_option_information): Likewise.
+ 	* diagnostic.h (diagnostic_format_decoder): Likewise.
+ 	(diagnostic_prefixing_rule): Likewise, fixing typo.
+ 	* digraph.cc (test_dump_to_dot): Likewise.
+ 	* digraph.h (digraph<GraphTraits>::dump_dot_to_file): Likewise.
+ 	* dumpfile.cc
+ 	(dump_pretty_printer::emit_any_pending_textual_chunks): Likewise.
+ 	* gimple-pretty-print.cc (print_gimple_stmt): Likewise.
+ 	(print_gimple_expr): Likewise.
+ 	(print_gimple_seq): Likewise.
+ 	(dump_ssaname_info_to_file): Likewise.
+ 	(gimple_dump_bb): Likewise.
+ 	* graph.cc (print_graph_cfg): Likewise.
+ 	(start_graph_dump): Likewise.
+ 	* langhooks.cc (lhd_print_error_function): Likewise.
+ 	* lto-wrapper.cc (print_lto_docs_link): Likewise.
+ 	* pretty-print.cc (pp_set_real_maximum_length): Convert to...
+ 	(pretty_printer::set_real_maximum_length): ...this.
+ 	(pp_clear_state): Convert to...
+ 	(pretty_printer::clear_state): ...this.
+ 	(pp_wrap_text): Update for pp_remaining_character_count_for_line
+ 	becoming a member function.
+ 	(urlify_quoted_string): Update for fields of pretty_printer becoming
+ 	private.
+ 	(pp_format): Convert to...
+ 	(pretty_printer::format): ...this.  Reduce the scope of local
+ 	variables "old_line_length" and "old_wrapping_mode" and make
+ 	const.  Reduce the scope of locals "args", "new_chunk_array",
+ 	"curarg", "any_unnumbered", and "any_numbered".
+ 	(pp_output_formatted_text): Update for fields of pretty_printer
+ 	becoming private.
+ 	(pp_flush): Likewise.
+ 	(pp_really_flush): Likewise.
+ 	(pp_set_line_maximum_length): Likewise.
+ 	(pp_set_prefix): Convert to...
+ 	(pretty_printer::set_prefix): ...this.
+ 	(pp_take_prefix): Update for fields of pretty_printer gaining
+ 	"m_" prefixes.
+ 	(pp_destroy_prefix): Likewise.
+ 	(pp_emit_prefix): Convert to...
+ 	(pretty_printer::emit_prefix): ...this.
+ 	(pretty_printer::pretty_printer): Update both ctors for fields
+ 	gaining "m_"  prefixes.
+ 	(pretty_printer::~pretty_printer): Likewise for dtor.
+ 	(pp_append_text): Update for pp_emit_prefix becoming
+ 	pretty_printer::emit_prefix.
+ 	(pp_remaining_character_count_for_line): Convert to...
+ 	(pretty_printer::remaining_character_count_for_line): ...this.
+ 	(pp_character): Update for above change.
+ 	(pp_maybe_space): Convert to...
+ 	(pretty_printer::maybe_space): ...this.
+ 	(pp_begin_url): Convert to...
+ 	(pretty_printer::begin_url): ...this.
+ 	(get_end_url_string): Update for fields of pretty_printer
+ 	becoming private.
+ 	(pp_end_url): Convert to...
+ 	(pretty_printer::end_url): ...this.
+ 	(selftest::test_pretty_printer::test_pretty_printer): Update for
+ 	fields of pretty_printer becoming private.
+ 	(selftest::test_urls): Likewise.
+ 	(selftest::test_null_urls): Likewise.
+ 	(selftest::test_urlification): Likewise.
+ 	* pretty-print.h (pp_line_cutoff): Convert from macro to inline
+ 	function.
+ 	(pp_prefixing_rule): Likewise.
+ 	(pp_wrapping_mode): Likewise.
+ 	(pp_format_decoder): Likewise.
+ 	(pp_needs_newline): Likewise.
+ 	(pp_indentation): Likewise.
+ 	(pp_translate_identifiers): Likewise.
+ 	(pp_show_color): Likewise.
+ 	(pp_buffer): Likewise.
+ 	(pp_get_prefix): Add forward decl to allow friend decl.
+ 	(pp_take_prefix): Likewise.
+ 	(pp_destroy_prefix): Likewise.
+ 	(class pretty_printer): Fix typo in leading comment.  Add
+ 	"friend" decls for the various new accessor functions that were
+ 	formerly macros and for pp_get_prefix, pp_take_prefix, and
+ 	pp_destroy_prefix.  Make all fields private.
+ 	(pretty_printer::set_output_stream): New.
+ 	(pretty_printer::set_prefix): New decl.
+ 	(pretty_printer::emit_prefix): New decl.
+ 	(pretty_printer::format): New decl.
+ 	(pretty_printer::maybe_space): New decl.
+ 	(pretty_printer::supports_urls_p): New.
+ 	(pretty_printer::get_url_format): New.
+ 	(pretty_printer::set_url_format): New.
+ 	(pretty_printer::begin_url): New decl.
+ 	(pretty_printer::end_url): New decl.
+ 	(pretty_printer::set_verbatim_wrapping): New.
+ 	(pretty_printer::set_padding): New.
+ 	(pretty_printer::get_padding): New.
+ 	(pretty_printer::clear_state): New decl.
+ 	(pretty_printer::set_real_maximum_length): New decl.
+ 	(pretty_printer::remaining_character_count_for_line): New decl.
+ 	(pretty_printer::buffer): Rename to...
+ 	(pretty_printer::m_buffer): ...this.
+ 	(pretty_printer::prefix): Rename to...
+ 	(pretty_printer::m_prefix): ...this;
+ 	(pretty_printer::padding): Rename to...
+ 	(pretty_printer::m_padding): ...this;
+ 	(pretty_printer::maximum_length): Rename to...
+ 	(pretty_printer::m_maximum_length): ...this;
+ 	(pretty_printer::indent_skip): Rename to...
+ 	(pretty_printer::m_indent_skip): ...this;
+ 	(pretty_printer::wrapping): Rename to...
+ 	(pretty_printer::m_wrapping): ...this;
+ 	(pretty_printer::format_decoder): Rename to...
+ 	(pretty_printer::m_format_decoder): ...this;
+ 	(pretty_printer::emitted_prefix): Rename to...
+ 	(pretty_printer::m_emitted_prefix): ...this;
+ 	(pretty_printer::need_newline): Rename to...
+ 	(pretty_printer::m_need_newline): ...this;
+ 	(pretty_printer::translate_identifiers): Rename to...
+ 	(pretty_printer::m_translate_identifiers): ...this;
+ 	(pretty_printer::show_color): Rename to...
+ 	(pretty_printer::m_show_color): ...this;
+ 	(pretty_printer::url_format): Rename to...
+ 	(pretty_printer::m_url_format): ...this;
+ 	(pp_get_prefix): Reformat.
+ 	(pp_format_postprocessor): New inline function.
+ 	(pp_take_prefix): Move decl to before class pretty_printer.
+ 	(pp_destroy_prefix): Likewise.
+ 	(pp_set_prefix): Convert to inline function.
+ 	(pp_emit_prefix): Convert to inline function.
+ 	(pp_format): Convert to inline function.
+ 	(pp_maybe_space): Convert to inline function.
+ 	(pp_begin_url): Convert to inline function.
+ 	(pp_end_url): Convert to inline function.
+ 	(pp_set_verbatim_wrapping): Convert from macro to inline
+ 	function, renaming...
+ 	(pp_set_verbatim_wrapping_): ...this.
+ 	* print-rtl.cc (dump_value_slim): Update for fields of
+ 	pretty_printer becoming private.
+ 	(dump_insn_slim): Likewise.
+ 	(dump_rtl_slim): Likewise.
+ 	* print-tree.cc (print_node): Likewise.
+ 	* sched-rgn.cc (dump_rgn_dependencies_dot): Likewise.
+ 	* text-art/canvas.cc (canvas::print_to_pp): Likewise.
+ 	(canvas::debug): Likewise.
+ 	(selftest::test_canvas_urls): Likewise.
+ 	* text-art/dump.h (dump_to_file): Likewise.
+ 	* text-art/selftests.cc (selftest::assert_canvas_streq): Likewise.
+ 	* text-art/style.cc (style::print_changes): Likewise.
+ 	* text-art/styled-string.cc (styled_string::from_fmt_va):
+ 	Likewise.
+ 	* tree-diagnostic-path.cc (control_flow_tests): Update for
+ 	pp_show_color becoming an inline function.
+ 	* tree-loop-distribution.cc (dot_rdg_1): Update for fields of
+ 	pretty_printer becoming private.
+ 	* tree-pretty-print.cc (maybe_init_pretty_print): Likewise.
+ 	* value-range.cc (vrange::dump): Likewise.
+ 	(irange_bitmask::dump): Likewise.
+ 
+ 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gimple-pretty-print.cc: Rename pretty_printer "buffer" to "pp"
+ 	throughout.
+ 	* print-tree.cc (print_node): Likewise.
+ 	* tree-loop-distribution.cc (dot_rdg_1): Likewise.
+ 	* tree-pretty-print.h (dump_location): Likewise.
+ 	* value-range.cc (vrange::dump): Likewise.
+ 	(irange_bitmask::dump): Likewise.
+ 
+ 2024-06-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md (high_bitmask_operand): New
+ 	predicate.
+ 	* config/loongarch/constraints.md (Yy): New constriant.
+ 	* config/loongarch/loongarch.md (and<mode>3_align): New
+ 	define_insn_and_split.
+ 
+ 2024-06-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_conditional_move): Compare mode size with
+ 	UNITS_PER_WORD instead of word_mode.
+ 
+ 2024-06-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 	    Yvan ROUX  <yvan.roux@foss.st.com>
+ 
+ 	PR target/115253
+ 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
+ 	Sign extend for Thumb1.
+ 	(thumb1_expand_prologue): Add zero/sign extend.
+ 
+ 2024-06-12  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <*-*-cygwin>: Update web link.
+ 
+ 2024-06-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
+ 	Leverage gsi_after_labels instead of gsi_start_bb to skip the
+ 	leading labels of bb.
+ 
+ 2024-06-12  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <*-*-linux-gnu>: Do not list
+ 	glibc 2.1 and binutils 2.12 as minimum dependencies.
+ 
+ 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/113681
+ 	* tree-profile.cc (pass_ipa_tree_profile::gate): Skip if
+ 	seen_errors.
+ 
+ 2024-06-12  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115384
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Only do the simplification of (AND (ASHIFTRT A imm) mask)
+ 	to (LSHIFTRT A imm) when the component of const_vector is
+ 	CONST_INT_P.
+ 
+ 2024-06-11  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* doc/cpp.texi (__STDC_VERSION__): Document C2Y handling.
+ 	* doc/invoke.texi (-Wc23-c2y-compat, -std=c2y, -std=gnu2y):
+ 	Document options.
+ 	(-std=gnu23): Update documentation.
+ 	* doc/standards.texi (C Language): Document C2Y.  Update C23
+ 	description.
+ 	* config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y"
+ 	language name.
+ 	* dwarf2out.cc (highest_c_language, gen_compile_unit_die):
+ 	Likewise.
+ 
+ 2024-06-11  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <x86_64-*-solaris2*>: Remove
+ 	redundant introduction of x86-64.
+ 
+ 2024-06-11  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/115382
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Use
+ 	prepare_vec_mask.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Remove static of prepare_vec_mask.
+ 	* tree-vectorizer.h (prepare_vec_mask): Export.
+ 
+ 2024-06-11  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md (atomic_<atomic_optab><mode>): New expand pattern.
+ 	(amo_atomic_<atomic_optab><mode>): Rename amo pattern.
+ 	(atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern.
+ 	(lrsc_atomic_<atomic_optab><mode>): New expand pattern.
+ 	(amo_atomic_fetch_<atomic_optab><mode>): Rename amo pattern.
+ 	(lrsc_atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern.
+ 	(atomic_exchange<mode>): New expand pattern.
+ 	(amo_atomic_exchange<mode>): Rename amo pattern.
+ 	(lrsc_atomic_exchange<mode>): New lrsc sequence pattern.
+ 
+ 2024-06-11  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* doc/sourcebuild.texi: Add docs for atomic extension testsuite infra.
+ 
+ 2024-06-11  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add Zaamo and Zalrsc.
+ 	* config/riscv/arch-canonicalize: Make A imply Zaamo and Zalrsc.
+ 	* config/riscv/riscv.opt: Add Zaamo and Zalrsc
+ 	* config/riscv/sync.md: Convert TARGET_ATOMIC to TARGET_ZAAMO and
+ 	TARGET_ZALRSC.
+ 
+ 2024-06-11  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112600
+ 	* config/i386/i386.md (usadd<mode>3): Emit insn sequence
+ 	involving conditional move for TARGET_CMOVE targets.
+ 	(ussub<mode>3): Ditto.
+ 
+ 2024-06-11  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (VAR1): Remap float_truncate_lo_
+ 	builtin codes to standard optab ones.
+ 	* config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_<mode><vczle><vczbe>):
+ 	Rename to...
+ 	(trunc<Vwide><mode>2<vczle><vczbe>): ... This.
+ 
+ 2024-06-11  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	* doc/extend.texi: Document constexpr asm.
+ 
+ 2024-06-11  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a
+ 	message if SCEV is not invoked due to a mismatch.
+ 
+ 2024-06-11  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/115397
+ 	* config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to
+ 	ix86_broadcast_from_constant before call to validize_mem, but after
+ 	call to force_const_mem.
+ 
+ 2024-06-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (ussub<mode>3): Add new pattern impl
+ 	for the unsigned vector modes.
+ 	* config/riscv/riscv-protos.h (expand_vec_ussub): Add new func
+ 	decl to expand .SAT_SUB for vector mode.
+ 	* config/riscv/riscv-v.cc (emit_vec_saddu): Add new func impl
+ 	to expand .SAT_SUB for vector mode.
+ 	(emit_vec_binary_alu): Add new helper func to emit binary alu.
+ 	(expand_vec_ussub): Leverage above helper func.
+ 
+ 2024-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (Documentation): Fix typos, grammar, and a link.
+ 
+ 2024-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
+ 	Always use current range_query.
+ 	(pass_data_array_bounds): New.
+ 	(pass_array_bounds): New.
+ 	(make_pass_array_bounds): New.
+ 	* gimple-array-bounds.h  (array_bounds_checker): Adjust prototype.
+ 	* passes.def (pass_array_bounds): New.  Add after VRP1.
+ 	* timevar.def (TV_TREE_ARRAY_BOUNDS): New timevar.
+ 	* tree-pass.h (make_pass_array_bounds): Add prototype.
+ 	* tree-vrp.cc (execute_ranger_vrp): Remove warning param and do
+ 	not invoke array bounds warning pass.
+ 	(pass_vrp::pass_vrp): Adjust params.
+ 	(pass_vrp::close): Adjust parameters.
+ 	(pass_vrp::warn_array_bounds_p): Remove.
+ 	(make_pass_vrp): Remove warning param.
+ 	(make_pass_early_vrp): Remove warning param.
+ 	(make_pass_fast_vrp): Remove warning param.
+ 
+ 2024-06-10  Raphael Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (*bextdisi): New pattern.
+ 
+ 2024-06-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/115387
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Take
+ 	the gsi of start_bb instead of last_bb.
+ 
+ 2024-06-10  Raphael Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (*bextdisi): New pattern.
+ 
+ 2024-06-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115388
+ 	* tree-ssa-dse.cc (dse_classify_store): Handle irreducible
+ 	regions.
+ 	(pass_dse::execute): Make sure to mark backedges.
+ 
+ 2024-06-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115395
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Handle STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT also for SLP
+ 	reductions of group_size one.
+ 
+ 2024-06-10  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_as_replicate): Handle memory
+ 	operands.
+ 	* config/s390/vx-builtins.md (vec_splats<mode>): Turn into parameterized expander.
+ 	(@vec_splats<mode>): New expander.
+ 
+ 2024-06-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115383
+ 	* tree-vect-stmts.cc (vectorizable_condition): Handle
+ 	generating a chain of .FOLD_EXTRACT_LAST.
+ 
+ 2024-06-09  Andreas Tobler  <andreast@gcc.gnu.org>
+ 
+ 	* config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13,
+ 	do not link against profiled system libraries if -pg is invoked.
+ 	Add a define to note about this change.
+ 	* config/aarch64/aarch64-freebsd.h: Use the note to inform if
+ 	-pg is invoked on FreeBSD > 13.
+ 	* config/arm/freebsd.h: Likewise.
+ 	* config/i386/freebsd.h: Likewise.
+ 	* config/i386/freebsd64.h: Likewise.
+ 	* config/riscv/freebsd.h: Likewise.
+ 	* config/rs6000/freebsd64.h: Likewise.
+ 	* config/rs6000/sysv4.h: Likeise.
+ 
+ 2024-06-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_move_integer): Initialize "x".
+ 
+ 2024-06-09  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112600
+ 	* config/i386/i386.md (ussub<mode>3): New expander.
+ 	(sub<mode>_3): Ditto.
+ 
+ 2024-06-09  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (avr): Remove link to www.amelek.gda.pl/avr/.
+ 
+ 2024-06-09  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* expmed.cc (expand_shift_1): Use add_optab instead of ior_optab
+ 	to generate PLUS instead or IOR when unioning disjoint bitfields.
+ 	* optabs.cc (expand_subword_shift): Likewise.
+ 	(expand_binop): Likewise for double-word rotate.
+ 
+ 2024-06-08  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info): Update comment.
+ 
+ 2024-06-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112600
+ 	* config/i386/i386.md (usadd<mode>3): New expander.
+ 	(x86_mov<mode>cc_0_m1_neg): Use SWI mode iterator.
+ 
+ 2024-06-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_ussub): Add new func
+ 	decl for ussub expanding.
+ 	* config/riscv/riscv.cc (riscv_expand_ussub): Ditto but for impl.
+ 	* config/riscv/riscv.md (ussub<mode>3): Add new pattern ussub
+ 	for scalar modes.
+ 
+ 2024-06-07  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/invoke.texi: Add -Wanalyzer-undefined-behavior-ptrdiff.
+ 
+ 2024-06-07  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Modules): Mention -include.
+ 
+ 2024-06-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/115351
+ 	* config/i386/i386.cc (ix86_rtx_costs): Provide estimates for
+ 	the *concatditi3 and *insvti_highpart patterns, about two insns.
+ 
+ 2024-06-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin): Call
+ 	fixup_modeless_constant before testing predicates.  Only call
+ 	copy_to_mode_reg on memory operands (after the first one).
+ 	(ix86_gen_bcst_mem): Helper function to convert a CONST_VECTOR
+ 	into a VEC_DUPLICATE if possible.
+ 	(ix86_ternlog_idx):  Convert an RTX expression into a ternlog
+ 	index between 0 and 255, recording the operands in ARGS, if
+ 	possible or return -1 if this is not possible/valid.
+ 	(ix86_ternlog_leaf_p): Helper function to identify "leaves"
+ 	of a ternlog expression, e.g. REG_P, MEM_P, CONST_VECTOR, etc.
+ 	(ix86_ternlog_operand_p): Test whether a expression is suitable
+ 	for and prefered as an UNSPEC_TERNLOG.
+ 	(ix86_expand_ternlog_binop): Helper function to construct the
+ 	binary operation corresponding to a sufficiently simple ternlog.
+ 	(ix86_expand_ternlog_andnot): Helper function to construct a
+ 	ANDN operation corresponding to a sufficiently simple ternlog.
+ 	(ix86_expand_ternlog): Expand a 3-operand ternary logic
+ 	expression, constructing either an UNSPEC_TERNLOG or simpler
+ 	rtx expression.  Called from builtin expanders and pre-reload
+ 	splitters.
+ 	* config/i386/i386-protos.h (ix86_ternlog_idx): Prototype here.
+ 	(ix86_ternlog_operand_p): Likewise.
+ 	(ix86_expand_ternlog): Likewise.
+ 	* config/i386/predicates.md (ternlog_operand): New predicate
+ 	that calls xi86_ternlog_operand_p.
+ 	* config/i386/sse.md (<avx512>_vpternlog<mode>_0): New
+ 	define_insn_and_split that recognizes a SET_SRC of ternlog_operand
+ 	and expands it via ix86_expand_ternlog pre-reload.
+ 	(<avx512>_vternlog<mode>_mask): Convert from define_insn to
+ 	define_expand.  Use ix86_expand_ternlog if the mask operand is
+ 	~0 (or 255 or -1).
+ 	(*<avx512>_vternlog<mode>_mask): define_insn renamed from above.
+ 
+ 2024-06-07  Michal Jires  <mjires@suse.cz>
+ 
+ 	* common.opt: Add cache partitioning.
+ 	* flag-types.h (enum lto_partition_model): Likewise.
+ 
+ 2024-06-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Fix
+ 	mask vector operand indexing.
+ 
+ 2024-06-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/115352
+ 	* gimple-lower-bitint.cc (lower_addsub_overflow): Don't disable
+ 	single_comparison if cmp_code is GE_EXPR.
+ 
+ 2024-06-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* target.def (call_offset_return_label): New hook.
+ 	* doc/tm.texi.in (TARGET_CALL_OFFSET_RETURN_LABEL): Add
+ 	placeholder.
+ 	* doc/tm.texi: Rebuild.
+ 	* dwarf2out.cc (struct call_arg_loc_node): Record call_insn
+ 	instead of call_arg_loc_note.
+ 	(add_AT_lbl_id): Add optional offset argument.
+ 	(gen_call_site_die): Compute and pass on a return pc offset.
+ 	(gen_subprogram_die): Move call_arg_loc_note computation...
+ 	(dwarf2out_var_location): ... from here.  Set call_insn.
+ 
+ 2024-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* doc/match-and-simplify.texi: Add doc for the matching flag '^'.
+ 	* genmatch.cc (cmp_operand): Add match_phi comparation.
+ 	(dt_node::gen_kids_1): Add cond_expr bool flag for phi match.
+ 	(dt_operand::gen_phi_on_cond): Add new func to gen phi matching
+ 	on cond_expr.
+ 	(parser::parse_expr): Add handling for the expr flag '^'.
+ 	* match.pd: Add more form for unsigned .SAT_ADD.
+ 	* tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Add
+ 	new func impl to build call for phi gimple.
+ 	(match_unsigned_saturation_add): Add new func impl to match the
+ 	.SAT_ADD for phi gimple.
+ 	(math_opts_dom_walker::after_dom_children): Add phi matching
+ 	try for all gimple phi stmt.
+ 
+ 2024-06-06  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/113880
+ 	PR target/113869
+ 	* config/aarch64/aarch64-builtins.cc (VAR1): Remap float_extend_lo_
+ 	builtin codes to standard optab ones.
+ 	* config/aarch64/aarch64-simd.md (aarch64_float_extend_lo_<Vwide>): Rename
+ 	to...
+ 	(extend<mode><Vwide>2): ... This.
+ 
+ 2024-06-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR plugins/115288
+ 	* Makefile.in (CPPLIB_H): Add label-text.h.
+ 
+ 2024-06-06  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
+ 	Add missing __ARM_NEON_SVE_BRIDGE.
+ 
+ 2024-06-06  Richard Ball  <richard.ball@arm.com>
+ 
+ 	PR target/115353
+ 	* config/arm/arm.h (enum arm_auto_incmodes):
+ 	Correct CASE_VECTOR_SHORTEN_MODE query.
+ 
+ 2024-06-06  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>,
+ 	*cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest,
+ 	@aarch64_pred_cmp<cmp_op><mode>_wide,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_cc,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Fix Upl tie alternative.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>): Fix
+ 	Upl tie alternative.
+ 
+ 2024-06-06  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx.md (nvptx_uniform_warp_check): Make fit for
+ 	non-full-warp execution, via 'vote.all.pred'.
+ 
+ 2024-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add new form for vector mode recog.
+ 	* tree-vect-patterns.cc (gimple_unsigned_integer_sat_sub): Add
+ 	new match func decl;
+ 	(vect_recog_build_binary_gimple_call): Extract helper func to
+ 	build gcall with given internal_fn.
+ 	(vect_recog_sat_sub_pattern): Add new func impl to recog .SAT_SUB.
+ 
+ 2024-06-06  Michal Jires  <mjires@suse.cz>
+ 
+ 	* lto-streamer.cc (lto_get_section_name): Remove suffixes after WPA.
+ 
+ 2024-06-06  Michal Jires  <mjires@suse.cz>
+ 
+ 	* lto-opts.cc (lto_write_options): Skip OPT_fltrans_output_list_.
+ 
+ 2024-06-06  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.opt.urls: Regenerate.
+ 
+ 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_gen_ccmp_first):
+ 	Add fp compare and check the allowed fp compare type.
+ 	(ix86_gen_ccmp_next): Adjust compare_code input to ccmp for
+ 	fp compare.
+ 
+ 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* ccmp.cc (expand_ccmp_expr_1): Check ret and ret2 of
+ 	expand_ccmp_next, returns the valid one first instead of
+ 	comparing cost.
+ 
+ 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_gen_ccmp_first): New function
+ 	that test if the first compare can be generated.
+ 	(ix86_gen_ccmp_next): New function to emit a simgle compare and ccmp
+ 	sequence.
+ 	* config/i386/i386-opts.h (enum apx_features): Add apx_ccmp.
+ 	* config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto
+ 	declare.
+ 	(ix86_gen_ccmp_next): Likewise.
+ 	(ix86_get_flags_cc): Likewise.
+ 	* config/i386/i386.cc (ix86_flags_cc): New enum.
+ 	(ix86_ccmp_dfv_mapping): New string array to map conditional
+ 	code to dfv.
+ 	(ix86_print_operand): Handle special dfv flag for CCMP.
+ 	(ix86_get_flags_cc): New function to return x86 CC enum.
+ 	(TARGET_GEN_CCMP_FIRST): Define.
+ 	(TARGET_GEN_CCMP_NEXT): Likewise.
+ 	* config/i386/i386.h (TARGET_APX_CCMP): Define.
+ 	* config/i386/i386.md (@ccmp<mode>): New define_insn to support
+ 	ccmp.
+ 	(UNSPEC_APX_DFV): New unspec for ccmp dfv.
+ 	(ALL_CC): New mode iterator.
+ 	(cstorecc4): Change to ...
+ 	(cstore<mode>4) ... this, use ALL_CC to loop through all
+ 	available CCmodes.
+ 	* config/i386/i386.opt (apx_ccmp): Add enum value for ccmp.
+ 
+ 2024-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Allow
+ 	single-lane SLP in-order reductions.
+ 	(vectorize_fold_left_reduction): Handle SLP reduction with
+ 	conditional reduction op.
+ 
+ 2024-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Queue
+ 	double reductions in LOOP_VINFO_REDUCTIONS.
+ 	(vect_create_epilog_for_reduction): Remove asserts disabling
+ 	SLP for double reductions.
+ 	(vectorizable_reduction): Analyze SLP double reductions
+ 	only once and start off the correct places.
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Allow
+ 	vect_double_reduction_def.
+ 	(vect_build_slp_tree_2): Fix condition for the ignored
+ 	reduction initial values.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Allow
+ 	vect_double_reduction_def.
+ 
+ 2024-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Adjust for single-lane COND_REDUCTION SLP vectorization.
+ 	(vectorizable_reduction): Likewise.
+ 	(vect_transform_cycle_phi): Likewise.
+ 
+ 2024-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_condition): Allow
+ 	single-lane SLP, but not when we need to swap then and
+ 	else clause.
+ 
+ 2024-06-06  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc(mips_insn_cost): Add missing COSTS_N_INSNS
+ 	to count.
+ 
+ 2024-06-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114428
+ 	* config/i386/i386.cc (ix86_rtx_costs): Adjust cost for
+ 	CONST_VECTOR_DUPLICATE_P in constant_pool.
+ 	* config/i386/i386-expand.cc (ix86_broadcast_from_constant):
+ 	Remove static.
+ 	* config/i386/i386-protos.h (ix86_broadcast_from_constant):
+ 	Declare.
+ 
+ 2024-06-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114428
+ 	* simplify-rtx.cc
+ 	(simplify_context::simplify_binary_operation_1):
+ 	Simplify (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) for
+ 	specific mask.
+ 
+ 2024-06-05  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED):
+ 	Move from here...
+ 	* config/riscv/riscv.h (TARGET_VECTOR_MISALIGN_SUPPORTED):
+ 	...to here and map to riscv_vector_unaligned_access_p.
+ 	* config/riscv/riscv.opt: Add -mvector-strict-align.
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add
+ 	vector_unaligned_access.
+ 	(riscv_override_options_internal): Set
+ 	riscv_vector_unaligned_access_p.
+ 	* doc/invoke.texi: Document -mvector-strict-align.
+ 
+ 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/tuning_models/neoversen2.h (neoversen2_tunings): Add
+ 	AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
+ 	* config/aarch64/tuning_models/neoversev1.h (neoversev1_tunings): Add
+ 	AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
+ 	* config/aarch64/tuning_models/neoversev2.h (neoversev2_tunings): Add
+ 	AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
+ 
+ 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (and<mode>3,
+ 	@aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc,
+ 	*<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z,
+ 	*<nlogical><mode>3_cc, *<nlogical><mode>3_ptest,
+ 	aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc,
+ 	*<logical_nn><mode>3_ptest, @aarch64_pred_cmp<cmp_op><mode>,
+ 	*cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest,
+ 	@aarch64_pred_cmp<cmp_op><mode>_wide,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_cc,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_ptest, @aarch64_brk<brk_op>,
+ 	*aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest,
+ 	@aarch64_brk<brk_op>, *aarch64_brk<brk_op>_cc,
+ 	*aarch64_brk<brk_op>_ptest, aarch64_rdffr_z, *aarch64_rdffr_z_ptest,
+ 	*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add
+ 	new early clobber
+ 	alternative.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_pred_<sve_int_op><mode>): Likewise.
+ 
+ 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AVOID_PRED_RMW): New.
+ 	* config/aarch64/aarch64.h (TARGET_SVE_PRED_CLOBBER): New.
+ 	* config/aarch64/aarch64.md (pred_clobber): New.
+ 	(arch_enabled): Use it.
+ 
+ 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (and<mode>3,
+ 	@aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc,
+ 	*<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z,
+ 	*<nlogical><mode>3_cc, *<nlogical><mode>3_ptest,
+ 	aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc,
+ 	*<logical_nn><mode>3_ptest, *cmp<cmp_op><mode>_ptest,
+ 	@aarch64_pred_cmp<cmp_op><mode>_wide,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_cc,
+ 	*aarch64_pred_cmp<cmp_op><mode>_wide_ptest, *aarch64_brk<brk_op>_cc,
+ 	*aarch64_brk<brk_op>_ptest, @aarch64_brk<brk_op>,
+ 	*aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest, aarch64_rdffr_z,
+ 	*aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc,
+ 	*aarch64_rdffr_cc): Convert to compact syntax.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_pred_<sve_int_op><mode>): Likewise.
+ 
+ 2024-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 	    Frederik Harwath  <frederik@codesourcery.com>
+ 	    Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* tree.def (OMP_TILE, OMP_UNROLL): New tree codes.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_PARTIAL,
+ 	OMP_CLAUSE_FULL and OMP_CLAUSE_SIZES.
+ 	* tree.h (OMP_LOOPXFORM_CHECK): Define.
+ 	(OMP_LOOPXFORM_LOWERED): Define.
+ 	(OMP_CLAUSE_PARTIAL_EXPR): Define.
+ 	(OMP_CLAUSE_SIZES_LIST): Define.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add entries
+ 	for OMP_CLAUSE_{PARTIAL,FULL,SIZES}.
+ 	* tree-pretty-print.cc (dump_omp_clause): Handle
+ 	OMP_CLAUSE_{PARTIAL,FULL,SIZES}.
+ 	(dump_generic_node): Handle OMP_TILE and OMP_UNROLL.  Skip printing
+ 	loops with NULL OMP_FOR_INIT (node) vector element.
+ 	* gimplify.cc (is_gimple_stmt): Handle OMP_TILE and OMP_UNROLL.
+ 	(gimplify_omp_taskloop_expr): For SAVE_EXPR use gimplify_save_expr.
+ 	(gimplify_omp_loop_xform): New function.
+ 	(gimplify_omp_for): Call omp_maybe_apply_loop_xforms and if that
+ 	reshuffles what the passed pointer points to, retry or return GS_OK.
+ 	Handle OMP_TILE and OMP_UNROLL.
+ 	(gimplify_omp_loop): Call omp_maybe_apply_loop_xforms and if that
+ 	reshuffles what the passed pointer points to, return GS_OK.
+ 	(gimplify_expr): Handle OMP_TILE and OMP_UNROLL.
+ 	* omp-general.h (omp_loop_number_of_iterations,
+ 	omp_maybe_apply_loop_xforms): Declare.
+ 	* omp-general.cc (omp_adjust_for_condition): For LE_EXPR and GE_EXPR
+ 	with pointers, don't add/subtract one, but the size of what the
+ 	pointer points to.
+ 	(omp_loop_number_of_iterations, omp_apply_tile,
+ 	find_nested_loop_xform, omp_maybe_apply_loop_xforms): New functions.
+ 
+ 2024-06-05  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/darwin.cc (darwin_patch_builtins): Use TYPE_PRECISION of
+ 	long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
+ 
+ 2024-06-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/51492
+ 	PR target/112600
+ 	* internal-fn.def (SAT_SUB): Add new IFN define for SAT_SUB.
+ 	* match.pd: Add new match for SAT_SUB.
+ 	* optabs.def (OPTAB_NL): Remove fixed-point for ussub/ssub.
+ 	* tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_sub): Add
+ 	new decl for generated in match.pd.
+ 	(build_saturation_binary_arith_call): Add new helper function
+ 	to build the gimple call to binary SAT alu.
+ 	(match_saturation_arith): Rename from.
+ 	(match_unsigned_saturation_add): Rename to.
+ 	(match_unsigned_saturation_sub): Add new func to match the
+ 	unsigned sat sub.
+ 	(math_opts_dom_walker::after_dom_children): Add SAT_SUB matching
+ 	try when COND_EXPR.
+ 
+ 2024-06-05  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR other/69374
+ 	* doc/install.texi (Prerequisites): Drop reference to GNU awk
+ 	version 3.1.5. Remove fluff.
+ 
+ 2024-06-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR rtl-optimization/100927
+ 	PR rtl-optimization/115161
+ 	PR rtl-optimization/115115
+ 	* simplify-rtx.cc (simplify_const_unary_operation): Prevent
+ 	simplication of FIX/UNSIGNED_FIX for NAN/INF/out-of-range
+ 	constant when flag_trapping_math.
+ 	* fold-const.cc (fold_convert_const_int_from_real): Don't fold
+ 	for overflow value when_trapping_math.
+ 
+ 2024-06-05  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/iterators.md: Add mode_iterator between
+ 	floating-point modes and BFmode.
+ 	* config/riscv/riscv.cc (riscv_output_move): Handle BFmode move
+ 	for zfbfmin.
+ 	* config/riscv/riscv.md (trunc<mode>bf2): New pattern for BFmode.
+ 	(extendbfsf2): Dotto.
+ 	(*movhf_hardfloat): Add BFmode.
+ 	(*mov<mode>_hardfloat): Dotto.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/115337
+ 	* gimple-range-op.cc (cfn_clz::fold_range): For
+ 	m_gimple_call_internal_p handle as a special case also second argument
+ 	of -1 next to prec.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/115337
+ 	* fold-const.cc (tree_call_nonnegative_warnv_p): Handle
+ 	CASE_CFN_CTZ like CASE_CFN_CLZ.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* fold-const.cc (tree_call_nonnegative_warnv_p): Formatting fixes.
+ 	(tree_invalid_nonnegative_warnv_p): Likewise.
+ 	* gimple-fold.cc (gimple_call_nonnegative_warnv_p): Likewise.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/115337
+ 	* fold-const.cc (tree_call_nonnegative_warnv_p) <CASE_CFN_CLZ>:
+ 	If arg1 is non-NULL, RECURSE on it, otherwise return true.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108789
+ 	* builtins.cc (fold_builtin_arith_overflow): For ovf_only,
+ 	don't call save_expr and don't build REALPART_EXPR, otherwise
+ 	set TREE_SIDE_EFFECTS on call before calling save_expr.
+ 	(fold_builtin_addc_subc): Set TREE_SIDE_EFFECTS on call before
+ 	calling save_expr.
+ 
+ 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (lujiazui): Clarify that while the CPUs do support
+ 	AVX and F16C, -march=lujiazui actually doesn't enable those.
+ 
+ 2024-06-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Only multi-lane
+ 	discoveries are reduction chains and need special backedge
+ 	treatment.
+ 	(vect_analyze_slp): Fall back to single-lane SLP discovery
+ 	for reductions.  Make sure to try single-lane SLP reduction
+ 	for all reductions as fallback.
+ 	(vectorizable_load): Avoid outer loop SLP vectorization with
+ 	multi-copy vector stmts in the inner loop.
+ 	(vectorizable_store): Likewise.
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Allow
+ 	direct opcode and shift reduction also for SLP reductions
+ 	with a single lane.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): For SLP also
+ 	check for the PR65518 single-element interleaving case as done in
+ 	vect_grouped_load_supported.
+ 
+ 2024-06-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): For mask/len
+ 	loops make sure to not advance the insertion iterator
+ 	beyond a GIMPLE_COND.
+ 
+ 2024-06-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/115324
+ 	* config/rs6000/rs6000-gen-builtins.cc (write_decls): Remove
+ 	GTY markup from struct bifdata and struct ovlddata and remove their
+ 	fntype members.  Change next member in struct ovlddata and
+ 	first_instance member of struct ovldrecord to have int type rather
+ 	than struct ovlddata *.  Remove GTY markup from rs6000_builtin_info
+ 	and rs6000_instance_info arrays, declare new
+ 	rs6000_builtin_info_fntype and rs6000_instance_info_fntype arrays,
+ 	which have GTY markup.
+ 	(write_bif_static_init): Adjust for the above changes.
+ 	(write_ovld_static_init): Likewise.
+ 	(write_init_bif_table): Likewise.
+ 	(write_init_ovld_table): Likewise.
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Likewise.
+ 	* config/rs6000/rs6000-c.cc (find_instance): Likewise.  Make static.
+ 	(altivec_resolve_overloaded_builtin): Adjust for the above changes.
+ 
+ 2024-06-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Include "ordered-hash-map.h" and
+ 	"sbitmap.h".
+ 	(enum class diagnostic_artifact_role): New.
+ 	(class sarif_artifact): New.
+ 	(sarif_builder::maybe_make_artifact_content_object): Make public.
+ 	(sarif_builder::m_filenames): Replace with...
+ 	(sarif_builder::m_filename_to_artifact_map): ...this.
+ 	(sarif_artifact::add_role): New.
+ 	(sarif_artifact::populate_contents): New.
+ 	(get_artifact_role_string): New.
+ 	(sarif_artifact::populate_roles): New.
+ 	(sarif_result::on_nested_diagnostic): Pass role to
+ 	make_location_object.
+ 	(sarif_ice_notification::sarif_ice_notification): Likewise.
+ 	(sarif_builder::sarif_builder): Add "main_input_filename_" param.
+ 	Mark it as the artifact that the tool was instructed to scan.
+ 	(sarif_builder::make_result_object): Pass role to
+ 	make_locations_arr.
+ 	(sarif_builder::make_locations_arr): Add "role" param and pass it
+ 	to make_location_object.
+ 	(sarif_builder::make_location_object): Add "role" param and pass
+ 	it to maybe_make_physical_location_object.
+ 	(sarif_builder::maybe_make_physical_location_object): Add "role"
+ 	param and pass it to call to get_or_create_artifact, rather than
+ 	adding to now-removed "m_filenames".  Flag the artifact for its
+ 	contents to be embedded.
+ 	(sarif_builder::make_thread_flow_location_object): Pass role to
+ 	make_location_object.
+ 	(sarif_builder::make_run_object): Update for change from
+ 	m_filename to m_filename_to_artifact_map.  Call populate_contents
+ 	and populate_roles on each artifact_obj.
+ 	(sarif_builder::make_artifact_object): Convert to...
+ 	(sarif_builder::get_or_create_artifact): ...this, moving addition
+ 	of contents to make_run_object, and conditionalizing setting of
+ 	sourceLanguage on "role".
+ 	(sarif_output_format::sarif_output_format): Add
+ 	"main_input_filename_" param and pass to m_builder's ctor.
+ 	(sarif_stream_output_format::sarif_stream_output_format):
+ 	Likewise.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Add
+ 	"main_input_filename_" param and pass to ctor.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* diagnostic.cc (diagnostic_output_format_init): Add
+ 	"main_input_filename_" param and pass to the
+ 	diagnostic_output_format_init_sarif_* calls.
+ 	* diagnostic.h (diagnostic_output_format_init): Add
+ 	main_input_filename_" param to decl.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* gcc.cc (driver_handle_option): Pass main input filename to
+ 	diagnostic_output_format_init.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2024-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* dwarf2out.cc (loc_list_from_tree_1) <CEIL_DIV_EXPR>; Add const.
+ 	<do_comp_binop>: Use a signed comparison for small unsigned types.
+ 	Implement wrap-around arithmetics for small integer types.
+ 
+ 2024-06-03  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/115321
+ 	* config/i386/i386.md (bswapsi2): Force operand 1
+ 	to a register also for !TARGET_BSWAP.
+ 
+ 2024-06-03  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* builtins.cc (expand_builtin_strnlen): Replace value_range use
+ 	with int_range_max or irange when appropriate.
+ 	(determine_block_size): Same.
+ 	* fold-const.cc (minmax_from_comparison): Same.
+ 	* gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
+ 	(array_bounds_checker::check_array_ref): Same.
+ 	* gimple-fold.cc (size_must_be_zero_p): Same.
+ 	* gimple-predicate-analysis.cc (find_var_cmp_const): Same.
+ 	* gimple-ssa-sprintf.cc (get_int_range): Same.
+ 	(format_integer): Same.
+ 	(try_substitute_return_value): Same.
+ 	(handle_printf_call): Same.
+ 	* gimple-ssa-warn-restrict.cc
+ 	(builtin_memref::extend_offset_range): Same.
+ 	* graphite-sese-to-poly.cc (add_param_constraints): Same.
+ 	* internal-fn.cc (get_min_precision): Same.
+ 	* match.pd: Same.
+ 	* pointer-query.cc (get_size_range): Same.
+ 	* range-op.cc (get_shift_range): Same.
+ 	(operator_trunc_mod::op1_range): Same.
+ 	(operator_trunc_mod::op2_range): Same.
+ 	* range.cc (range_negatives): Same.
+ 	* range.h (range_positives): Same.
+ 	(range_negatives): Same.
+ 	* tree-affine.cc (expr_to_aff_combination): Same.
+ 	* tree-data-ref.cc (compute_distributive_range): Same.
+ 	(nop_conversion_for_offset_p): Same.
+ 	(split_constant_offset): Same.
+ 	(split_constant_offset_1): Same.
+ 	(dr_step_indicator): Same.
+ 	* tree-dfa.cc (get_ref_base_and_extent): Same.
+ 	* tree-scalar-evolution.cc (iv_can_overflow_p): Same.
+ 	* tree-ssa-math-opts.cc (optimize_spaceship): Same.
+ 	* tree-ssa-pre.cc (insert_into_preds_of_block): Same.
+ 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
+ 	* tree-ssa-strlen.cc (compare_nonzero_chars): Same.
+ 	(dump_strlen_info): Same.
+ 	(get_range_strlen_dynamic): Same.
+ 	(set_strlen_range): Same.
+ 	(maybe_diag_stxncpy_trunc): Same.
+ 	(strlen_pass::get_len_or_size): Same.
+ 	(strlen_pass::handle_builtin_string_cmp): Same.
+ 	(strlen_pass::count_nonzero_bytes_addr): Same.
+ 	(strlen_pass::handle_integral_assign): Same.
+ 	* tree-switch-conversion.cc (bit_test_cluster::emit): Same.
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Same.
+ 	(vect_do_peeling): Same.
+ 	* tree-vect-patterns.cc (vect_get_range_info): Same.
+ 	(vect_recog_divmod_pattern): Same.
+ 	* tree.cc (get_range_pos_neg): Same.
+ 	* value-range.cc (debug): Remove value_range variants.
+ 	* value-range.h (value_range): Remove typedef.
+ 	* vr-values.cc
+ 	(simplify_using_ranges::op_with_boolean_value_range_p): Replace
+ 	value_range use with int_range_max or irange when appropriate.
+ 	(check_for_binary_op_overflow): Same.
+ 	(simplify_using_ranges::legacy_fold_cond_overflow): Same.
+ 	(find_case_label_ranges): Same.
+ 	(simplify_using_ranges::simplify_abs_using_ranges): Same.
+ 	(test_for_singularity): Same.
+ 	(simplify_using_ranges::simplify_compare_using_ranges_1): Same.
+ 	(simplify_using_ranges::simplify_casted_compare): Same.
+ 	(simplify_using_ranges::simplify_switch_using_ranges): Same.
+ 	(simplify_conversion_using_ranges): Same.
+ 	(simplify_using_ranges::two_valued_val_range_p): Same.
+ 
+ 2024-06-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/install.texi (gcn): Fix date of recommended newlib version.
+ 
+ 2024-06-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* config/aarch64/aarch64-ldp-fusion.cc (struct aarch64_pair_fusion):
+ 	Use new type name.
+ 
+ 2024-06-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* pair-fusion.h (enum class writeback): Rename to...
+ 	(enum class writeback_type): ...this.
+ 	(struct pair_fusion): Adjust type name after renaming.
+ 	* pair-fusion.cc (pair_fusion_bb_info::track_access): Likewise.
+ 	(pair_fusion_bb_info::fuse_pair): Likewise.
+ 	(pair_fusion::process_block): Likewise.
+ 
+ 2024-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): Avoid extra space
+ 	before 'failed'.
+ 
+ 2024-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction):
+ 	Always convert neutral_op.
+ 
+ 2024-06-03  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/115299
+ 	* config/i386/i386.cc (ix86_noce_conversion_profitable_p): Add
+ 	some preference for floating point ifcvt when SSE4.1 is not
+ 	available.
+ 
+ 2024-06-03  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc: Change Granite Rapids
+ 	series CPU type to P_PROC_AVX10_1_512.
+ 	* common/config/i386/i386-cpuinfo.h (enum feature_priority):
+ 	Revise comment part. Add P_AVX10_1_256, P_AVX10_1_512,
+ 	P_PROC_AVX10_1_512.
+ 	* common/config/i386/i386-isas.h: Link to avx10.1-256, avx10.1-512.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (clz<mode>2_lzcnt_nf): New define_insn.
+ 	(*clz<mode>2_lzcnt_falsedep_nf): Ditto.
+ 	(<lt_zcnt>_<mode>_nf): Ditto.
+ 	(*<lt_zcnt>_<mode>_falsedep_nf): Ditto.
+ 	(<lt_zcnt>_hi<nf_name>): Ditto.
+ 	(popcount<mode>2_nf): Ditto.
+ 	(*popcount<mode>2_falsedep_nf): Ditto.
+ 	(popcounthi2<nf_name>): Ditto.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*mul<mode>3_1<nf_name>): New define_insn.
+ 	(*mulqi3_1<nf_name>): Ditto.
+ 	(*<u>divmod<mode>4_noext_nf): Ditto.
+ 	(<u>divmodhiqi3<nf_name>): Ditto.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (x86_64_shld): New define_insn.
+ 	(x86_64_shld<nf_name>): Ditto.
+ 	(x86_64_shld_ndd<nf_name>): Ditto.
+ 	(x86_64_shld_1<nf_name>): Ditto.
+ 	(x86_64_shld_ndd_1<nf_name>): Ditto.
+ 	(*x86_64_shld_shrd_1_nozext_nf): Ditto.
+ 	(x86_shld<nf_name>): Ditto.
+ 	(x86_shld_ndd<nf_name>): Ditto.
+ 	(x86_shld_1<nf_name>): Ditto.
+ 	(x86_shld_ndd_1<nf_name>): Ditto.
+ 	(*x86_shld_shrd_1_nozext_nf): Ditto.
+ 	(<insn><dwi>3_doubleword_lowpart_nf): Ditto.
+ 	(x86_64_shrd<nf_name>): Ditto.
+ 	(x86_64_shrd_ndd<nf_name>): Ditto.
+ 	(x86_64_shrd_1<nf_name>): Ditto.
+ 	(x86_64_shrd_ndd_1<nf_name>): Ditto.
+ 	(*x86_64_shrd_shld_1_nozext_nf): Ditto.
+ 	(x86_shrd<nf_name>): Ditto.
+ 	(x86_shrd_ndd<nf_name>): Ditto.
+ 	(x86_shrd_1<nf_name>): Ditto.
+ 	(x86_shrd_ndd_1<nf_name>): Ditto.
+ 	(*x86_shrd_shld_1_nozext_nf): Ditto.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (ashr<mode>3_cvt<nf_name>): New
+ 	define_insn.
+ 	(*<insn><mode>3_1<nf_name>): Ditto.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*ashr<mode>3_1<nf_name>): New
+ 	define_insn.
+ 	(*lshr<mode>3_1<nf_name>): Ditto.
+ 	(*lshrqi3_1<nf_name>): Ditto.
+ 	(*lshrhi3_1<nf_name>): Ditto.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*ashl<mode>3_1<nf_name>): New
+ 	define_insn.
+ 	(*ashlhi3_1<nf_name>): Ditto.
+ 	(*ashlqi3_1<nf_name>): Ditto.
+ 	* config/i386/sse.md: New define_split.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (nf_nonf_attr): New subst_attr.
+ 	(nf_nonf_x64_attr): Ditto.
+ 	(*sub<mode>_1<nf_name>): New define_insn.
+ 	(*anddi_1<nf_name>): Ditto.
+ 	(*and<mode>_1<nf_name>): Ditto.
+ 	(*andqi_1<nf_name>): Ditto.
+ 	(*<code><mode>_1<nf_name>): Ditto.
+ 	(*<code>qi_1<nf_name>): Ditto.
+ 	(*neg<mode>_1<nf_name>): Ditto.
+ 	* config/i386/sse.md: New define_split.
+ 
+ 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
+ 	    Hongyu Wong  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-opts.h (enum apx_features): Add nf
+ 	enumeration.
+ 	* config/i386/i386.h (TARGET_APX_NF): New.
+ 	* config/i386/i386.md (nf_name): New subst_att.
+ 	(nf_prefix): Ditto.
+ 	(nf_condition): Ditto.
+ 	(nf_mem_constraint): Ditto.
+ 	(nf_applied): Ditto.
+ 	(nf_subst): Add new define_subst.
+ 	(*add<mode>_1<nf_name>): New define_insn.
+ 	(*addhi_1<nf_name>): Ditto.
+ 	(*addqi_1<nf_name>): Diito.
+ 	* config/i386/i386.opt: Add apx_nf enumeration.
+ 
+ 2024-06-03  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/113609
+ 	* config/i386/sse.md
+ 	(*kortest_cmp<mode>_setcc): New define_insn_and_split.
+ 	(*kortest_cmp<mode>_jcc): Ditto.
+ 
+ 2024-06-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR tree-optimization/115307
+ 	* config/avr/avr.md (SFDF): New mode iterator.
+ 	(isinf<mode>2) [sf, df]: New expanders.
+ 
+ 2024-06-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_integer_op): Add new field.
+ 	(riscv_build_integer_1): Initialize the new field.
+ 	(riscv_built_integer): Recognize more cases where Zbkb's
+ 	pack instruction is profitable.
+ 	(riscv_move_integer): Loop over all the codes.  If requested,
+ 	save the current constant into a temporary.  Generate pack
+ 	for more cases using the saved constant.
+ 
+ 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Remove parameter
+ 	loop_vinfo. Get input vectype from stmt_info instead of reduction PHI.
+ 	(vect_model_reduction_cost): Remove loop_vinfo argument of call to
+ 	vect_is_emulated_mixed_dot_prod.
+ 	(vect_transform_reduction): Likewise.
+ 	(vectorizable_reduction): Likewise, and bind input vectype to
+ 	lane-reducing operation.
+ 
+ 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): New
+ 	function.
+ 	(vectorizable_reduction): Move partial vectorization checking code to
+ 	vect_reduction_update_partial_vector_usage.
+ 
+ 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vectorizer.h (lane_reducing_op_p): New function.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Use new function
+ 	lane_reducing_op_p to check statement code.
+ 	* tree-vect-loop.cc (vect_transform_reduction): Likewise.
+ 	(vectorizable_reduction): Likewise, and change name of a local
+ 	variable that holds the result flag.
+ 
+ 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_expand_call):
+ 	Add the third argument as boolean.
+ 	(xtensa_expand_epilogue): Remove the first argument.
+ 	* config/xtensa/xtensa.cc (xtensa_expand_call):
+ 	Add the third argument "sibcall_p", and modify in order to prepend
+ 	"(use A0_REG)" to CALL_INSN_FUNCTION_USAGE if the argument is true.
+ 	(xtensa_expand_epilogue): Remove the first argument "sibcall_p" and
+ 	its conditional clause.
+ 	* config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value):
+ 	Append a boolean value to the argument of xtensa_expand_call()
+ 	indicating whether it is sibling call or not.
+ 	(epilogue): Remove the boolean argument from xtensa_expand_epilogue(),
+ 	and then append emitting "(return)".
+ 	(sibcall_epilogue): Remove the boolean argument from
+ 	xtensa_expand_epilogue().
+ 
+ 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md
+ 	(subreg_HQI_lowpart_operator, xtensa_sminmax_operator):
+ 	New operator predicates.
+ 	* config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
+ 	Remove.
+ 	* config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p): Ditto.
+ 	* config/xtensa/xtensa.md
+ 	(*addsubx, *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx):
+ 	Revise the output statements by conditional ternary operator rather
+ 	than switch-case clause in order to avoid using gcc_unreachable().
+ 	(xtensa_clamps): Reduce to a single pattern definition using the
+ 	predicate added above.
+ 	(Some split patterns to assist *masktrue_const_bitcmpl): Ditto.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Document.
+ 	(shuffle_extract_and_slide1up_patterns): Remove.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (ctz<mode>2): New expander.
+ 	(clz<mode>2): Ditto.
+ 	* config/riscv/generic-vector-ooo.md: Add bitmanip ops to insn
+ 	reservation.
+ 	* config/riscv/vector-crypto.md: Add VLS modes to insns.
+ 	* config/riscv/vector.md: Add bitmanip ops to mode_idx and other
+ 	attributes.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vandn_<mode>): New pattern.
+ 	* config/riscv/vector.md: Add vandn to mode_idx.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_gather_scatter): Use vwsll if
+ 	applicable.
+ 	* config/riscv/vector-crypto.md: Remove mode from vwsll shift
+ 	count operator.
+ 	* config/riscv/vector.md: Add vwsll to mode iterator.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vwsll_zext1_<mode>): New
+ 	pattern.
+ 	(*vwsll_zext2_<mode>): Ditto.
+ 	(*vwsll_zext1_scalar_<mode>): Ditto.
+ 	(*vwsll_zext1_trunc_<mode>): Ditto.
+ 	(*vwsll_zext2_trunc_<mode>): Ditto.
+ 	(*vwsll_zext1_trunc_scalar_<mode>): Ditto.
+ 	* config/riscv/vector-crypto.md: Make pattern similar to other
+ 	narrowing/widening patterns.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/vector.md: Split vwadd.wx/vwsub.wx pattern and
+ 	add extended_scalar patterns.
+ 
+ 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/115068
+ 	* config/riscv/vector.md:  Split vfw<insn>.wf pattern.
+ 
+ 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* tree-object-size.cc (access_with_size_object_size): Use the type
+ 	of the 6th argument for the type of the element.
+ 	* internal-fn.cc (expand_ACCESS_WITH_SIZE): Update the comment with
+ 	the 6th argument.
+ 
+ 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* tree-object-size.cc (access_with_size_object_size): New function.
+ 	(call_object_size): Call the new function.
+ 
+ 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* internal-fn.cc (expand_ACCESS_WITH_SIZE): New function.
+ 	* internal-fn.def (ACCESS_WITH_SIZE): New internal function.
+ 	* tree.cc (is_access_with_size_p): New function.
+ 	(get_ref_from_access_with_size): New function.
+ 	* tree.h (is_access_with_size_p): New prototype.
+ 	(get_ref_from_access_with_size): New prototype.
+ 
+ 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Document attribute counted_by.
+ 
+ 2024-05-31  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/115297
+ 	* config/alpha/alpha.md (<any_divmod:code>si3): Wrap DImode
+ 	operands 3 and 4 with truncate:SI RTX.
+ 	(*divmodsi_internal_er): Ditto for operands 1 and 2.
+ 	(*divmodsi_internal_er_1): Ditto.
+ 	(*divmodsi_internal): Ditto.
+ 	* config/alpha/constraints.md ("b"): Correct register
+ 	number in the description.
+ 
+ 2024-05-31  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx.h: Configure global constructor, destructor
+ 	support.
+ 
+ 2024-05-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115278
+ 	* tree-if-conv.cc (ifcvt_local_dce): Do not DSE volatile stores.
+ 
+ 2024-05-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config.gcc: Move ${target_min} from obsolete to unsupported
+ 	message.
+ 
+ 2024-05-31  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/115022
+ 	* doc/invoke.texi (fstrub=disable): Fix opindex.
+ 	(minline-memops-threshold): Fix opindex.
+ 	(mcmodel=): Add opindex and fix them.
+ 	* common.opt.urls: Regenerate.
+ 	* config/aarch64/aarch64.opt.urls: Regenerate.
+ 	* config/bpf/bpf.opt.urls: Regenerate.
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 	* config/nds32/nds32-elf.opt.urls: Regenerate.
+ 	* config/nds32/nds32-linux.opt.urls: Regenerate.
+ 	* config/or1k/or1k.opt.urls: Regenerate.
+ 	* config/riscv/riscv.opt.urls: Regenerate.
+ 	* config/rs6000/aix64.opt.urls: Regenerate.
+ 	* config/rs6000/linux64.opt.urls: Regenerate.
+ 	* config/sparc/sparc.opt.urls: Regenerate.
+ 
+ 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h
+ 	(xtensa_use_return_instruction_p): Remove.
+ 	* config/xtensa/xtensa.cc
+ 	(machine_function): Remove "epilogue_done" field.
+ 	(xtensa_expand_epilogue): Remove "cfun->machine->epilogue_done" usage.
+ 	(xtensa_use_return_instruction_p): Remove.
+ 	* config/xtensa/xtensa.md ("return"):
+ 	Replace calling "xtensa_use_return_instruction_p()" with inline code.
+ 
+ 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_valid_move, constantpool_address_p,
+ 	xtensa_tls_symbol_p, gen_int_relational, xtensa_emit_move_sequence,
+ 	xtensa_copy_incoming_a7, xtensa_expand_block_move,
+ 	xtensa_expand_nonlocal_goto, xtensa_emit_call,
+ 	xtensa_legitimate_address_p, xtensa_legitimize_address,
+ 	xtensa_tls_referenced_p, print_operand, print_operand_address,
+ 	xtensa_output_literal):
+ 	Replace RTX code comparisons with their predicate macros such as
+ 	REG_P().
+ 	* config/xtensa/xtensa.h (CONSTANT_ADDRESS_P,
+ 	LEGITIMATE_PIC_OPERAND_P): Ditto.
+ 	* config/xtensa/xtensa.md (reload<mode>_literal, indirect_jump):
+ 	Ditto.
+ 
+ 2024-05-31  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR tree-optimization/115157
+ 	PR tree-optimization/115177
+ 	* godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead
+ 	of TYPE_CANONICAL.
+ 
+ 2024-05-31  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/emmintrin.h (__double_u): Rename from double_u.
+ 	(_mm_load_sd): Replace double_u with __double_u.
+ 	(_mm_store_sd): Ditto.
+ 	(_mm_loadh_pd): Ditto.
+ 	(_mm_loadl_pd): Ditto.
+ 	* config/i386/xmmintrin.h (__float_u): Rename from float_u.
+ 	(_mm_load_ss): Ditto.
+ 	(_mm_store_ss): Ditto.
+ 
+ 2024-05-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/115102
+ 	* config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE.
+ 	(*bswaphi2): New insn pattern.
+ 	(bswaphisi2_lowpart): Rename from bswaphi_lowpart.  Rewrite
+ 	insn RTX to match the expected form of the combine pass.
+ 	Remove rol{w} alternative and corresponding attributes.
+ 	(bswsaphisi2_lowpart peephole2): New peephole2 pattern to
+ 	conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp.
+ 	(bswapsi2): Update expander for rename.
+ 	(rotlhi3_1_slp splitter): Conditionally split to bswaphi2.
+ 
+ 2024-05-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/115281
+ 	* ira-conflicts.cc (go_through_subreg): Use the natural size of
+ 	the inner mode rather than the outer mode.
+ 
+ 2024-05-30  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	* pair-fusion.h: Generic header code for load store pair fusion
+ 	that can be shared across different architectures.
+ 	* pair-fusion.cc: Generic source code implementation for
+ 	load store pair fusion that can be shared across different architectures.
+ 	* Makefile.in: Add new object file pair-fusion.o.
+ 	* config/aarch64/aarch64-ldp-fusion.cc: Delete generic code and move it
+ 	to pair-fusion.cc in the middle-end.
+ 	* config/aarch64/t-aarch64: Add header file dependency on pair-fusion.h.
+ 	Remove unnecessary header file dependency.
+ 
+ 2024-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR c++/115031
+ 	* config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510.
+ 
+ 2024-05-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add text-art/tree-widget.o.
+ 	* doc/analyzer.texi: Rewrite discussion of dumping state to
+ 	cover the text_art::tree_widget-based dumps, with a more
+ 	interesting example.
+ 	* text-art/dump-widget-info.h: New file.
+ 	* text-art/dump.h: New file.
+ 	* text-art/selftests.cc (selftest::text_art_tests): Call
+ 	text_art_tree_widget_cc_tests.
+ 	* text-art/selftests.h (selftest::text_art_tree_widget_cc_tests):
+ 	New decl.
+ 	* text-art/theme.cc (ascii_theme::get_cppchar): Handle the various
+ 	cell_kind::TREE_*.
+ 	(unicode_theme::get_cppchar): Likewise.
+ 	* text-art/theme.h (enum class theme::cell_kind): Add
+ 	TREE_CHILD_NON_FINAL, TREE_CHILD_FINAL, TREE_X_CONNECTOR, and
+ 	TREE_Y_CONNECTOR.
+ 	* text-art/tree-widget.cc: New file.
+ 	* text-art/tree-widget.h: New file.
+ 
+ 2024-05-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (vcond_mask_<mode><mode>): New expander.
+ 
+ 2024-05-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/112325
+ 	* tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the
+ 	2 / 3 loop body size reduction to ..
+ 	(try_unroll_loop_completely): .. here, add it for the check of
+ 	body size shrink, and the check of comparison against
+ 	param_max_completely_peeled_insns when
+ 	(!cunrolli ||loop->inner).
+ 	(canonicalize_loop_induction_variables): Add new parameter
+ 	cunrolli and pass down.
+ 	(tree_unroll_loops_completely_1): Ditto.
+ 	(canonicalize_induction_variables): Pass cunrolli as false to
+ 	canonicalize_loop_induction_variables.
+ 	(tree_unroll_loops_completely): Set cunrolli to true at
+ 	beginning and set it to false after CHANGED is true.
+ 
+ 2024-05-30  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/sourcebuild.texi (dg-additional-sources): Document
+ 	newly-added support for target selectors, and implicit discard
+ 	on non-linking tests that name the compiler output explicitly.
+ 
+ 2024-05-30  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* tree-ssa-pre.cc (create_component_ref_by_pieces_1): New conditions.
+ 
+ 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	Revert:
+ 	2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc: Include cfgrtl.h.  Use BLOCK_FOR_INSN (insn)->index
+ 	instead of calling find_basic_block (insn).  Assert for not -1.
+ 	(find_basic_block): Remove function.
+ 	(init_resource_info): Call compute_bb_for_insn.
+ 	(free_resource_info): Call free_bb_for_insn.
+ 
+ 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	Revert:
+ 	2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc (mark_target_live_regs): Remove redundant check for b
+ 	being -1, after gcc_assert.
+ 
+ 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	Revert:
+ 	2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't
+ 	check for non-null target_hash_table and bb_ticks.
+ 	(mark_target_live_regs): Ditto.  Replace check for non-NULL result from
+ 	BLOCK_FOR_INSN with a call to gcc_assert.  Fold code conditioned on
+ 	tinfo != NULL.
+ 
+ 2024-05-29  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc(mips16_gp_pseudo_reg): Mark
+ 	MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered.
+ 	(mips_emit_call_insn): Mark MIPS16_PIC_TEMP and
+ 	MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP.
+ 
+ 2024-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115224
+ 	* generic-match-head.cc (bitwise_inverted_equal_p): Add `a ^ CST`
+ 	case.
+ 	* gimple-match-head.cc (gimple_bit_xor_cst): New declaration.
+ 	(gimple_bitwise_inverted_equal_p): Add `a ^ CST` case.
+ 	* match.pd (bit_xor_cst): New match.
+ 	(maybe_bit_not): Add bit_xor_cst case.
+ 
+ 2024-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* match.pd (bit_not_with_nop): Unconditionalize.
+ 	(maybe_cmp): Likewise.
+ 	(maybe_bit_not): New match pattern.
+ 	(`~X & X`): Use maybe_bit_not and add `:c` back.
+ 	(`~x ^ x`/`~x | x`): Likewise.
+ 
+ 2024-05-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/115258
+ 	* config/aarch64/aarch64-simd.md (aarch64_combinev16qi): Allow
+ 	the split before reload.
+ 	* config/aarch64/aarch64.cc (aarch64_split_combinev16qi): Generalize
+ 	into a form that handles pseudo registers.
+ 
+ 2024-05-29  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.c : Removed.
+ 
+ 2024-05-29  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Move
+ 	initialization of bbs to explicit construction code.  Adjust the
+ 	definition of nbbs.
+ 	(update_epilogue_loop_vinfo): Update nbbs for epilog vinfo.
+ 	* tree-vect-patterns.cc (vect_determine_precisions): Make
+ 	loop_vec_info and bb_vec_info share same code.
+ 	(vect_pattern_recog): Remove duplicated vect_pattern_recog_1 loop.
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Access to bbs[0]
+ 	via base vec_info class.
+ 	(_bb_vec_info::_bb_vec_info): Initialize bbs and nbbs using data
+ 	fields of input auto_vec<> bbs.
+ 	(vect_slp_region): Use access to nbbs to replace original
+ 	bbs.length().
+ 	(vect_schedule_slp_node): Access to bbs[0] via base vec_info class.
+ 	* tree-vectorizer.cc (vec_info::vec_info): Add initialization of
+ 	bbs and nbbs.
+ 	(vec_info::insert_seq_on_entry): Access to bbs[0] via base vec_info
+ 	class.
+ 	* tree-vectorizer.h (vec_info): Add new fields bbs and nbbs.
+ 	(LOOP_VINFO_NBBS): New macro.
+ 	(BB_VINFO_BBS): Rename BB_VINFO_BB to BB_VINFO_BBS.
+ 	(BB_VINFO_NBBS): New macro.
+ 	(_loop_vec_info): Remove field bbs.
+ 	(_bb_vec_info): Rename field bbs.
+ 	* tree-vect-loop.c: New file.
+ 
+ 2024-05-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/crypto.md (riscv_xpack_<X:mode>_<HX:mode>_2): Remove '*'
+ 	allow it to be used via the gen_* interface.
+ 	* config/riscv/riscv.cc (riscv_build_integer): Identify when Zbkb
+ 	can be used to profitably synthesize repeating constants.
+ 	(riscv_move_integer): Codegen changes to generate those Zbkb sequences.
+ 
+ 2024-05-29  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Update module extension docs.
+ 
+ 2024-05-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-hsa.h (gcn_local_sym_hash): Fix typo.
+ 
+ 2024-05-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115252
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Enhance
+ 	detecting the number of cases where we can avoid accessing a gap
+ 	during code generation.
+ 	(vectorizable_load): Remove old half-vector peeling for gap
+ 	avoidance which is now redundant.  Add gap-aligned case where
+ 	it's OK to access the gap.  Add assert that we have peeling for
+ 	gaps enabled when we access a gap.
+ 
+ 2024-05-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114435
+ 	* tree-predcom.cc (tree_predictive_commoning): Queue
+ 	the next scalar cleanup sub-pipeline to be run when we
+ 	did something.
+ 
+ 2024-05-29  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/113719
+ 	* config/i386/i386-options.cc (ix86_override_options_after_change):
+ 	Remove call to ix86_default_align and
+ 	ix86_recompute_optlev_based_flags.
+ 	(ix86_option_override_internal): Call ix86_default_align and
+ 	ix86_recompute_optlev_based_flags.
+ 
+ 2024-05-29  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_avoid_jump_mispredicts): Change
+ 	gen_pad to gen_max_skip_align.
+ 	(ix86_align_loops): New function.
+ 	(ix86_reorg): Call ix86_align_loops.
+ 	* config/i386/i386.md (pad): Rename to ..
+ 	(max_skip_align): .. this, and accept 2 operands for align and
+ 	skip.
+ 
+ 2024-05-29  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/x86-tune-costs.h (generic_cost): Change from
+ 	16:11:8 to 16.
+ 
+ 2024-05-29  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_on_edge): Always use static ranges
+ 	from the specified range_query.
+ 	* gimple-range-gori.h (gori_on_edge): Change prototype.
+ 	* gimple-range.cc (dom_ranger::maybe_push_edge): Change arguments
+ 	to call.
+ 
+ 2024-05-29  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/114846
+ 	* config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): As
+ 	EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly
+ 	now, adjust the relevant handlings on it.
+ 	* config/rs6000/rs6000.md (eh_return expander): Append by calling
+ 	gen_eh_return_internal and emit_barrier.
+ 	(eh_return_internal): New define_insn_and_split, call function
+ 	rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN.
+ 
+ 2024-05-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/67325
+ 	* config/i386/i386.cc (ix86_rtx_costs): Reduce cost of MEM (A
+ 	+ imm) to "cost of MEM (A)" + 1.
+ 
+ 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (dom_ranger::dom_ranger): Do not initialize m_out.
+ 	(dom_ranger::maybe_push_edge): Use gori () rather than m_out.
+ 	* gimple-range.h (dom_ranger::m_out): Remove.
+ 	* tree-vrp.cc (remove_unreachable::remove_unreachable): Use a
+ 	range-query ranther than a gimple_ranger.
+ 	(remove_unreachable::remove): New.
+ 	(remove_unreachable::m_ranger): Change to a range_query.
+ 	(remove_unreachable::handle_early): If there is no dependency
+ 	information, do nothing.
+ 	(remove_unreachable::remove_and_update_globals): Do not update
+ 	globals if there is no dependecy info to use.
+ 
+ 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't
+ 	check for non-null target_hash_table and bb_ticks.
+ 	(mark_target_live_regs): Ditto.  Replace check for non-NULL result from
+ 	BLOCK_FOR_INSN with a call to gcc_assert.  Fold code conditioned on
+ 	tinfo != NULL.
+ 
+ 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc (mark_target_live_regs): Remove redundant check for b
+ 	being -1, after gcc_assert.
+ 
+ 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* resource.cc: Include cfgrtl.h.  Use BLOCK_FOR_INSN (insn)->index
+ 	instead of calling find_basic_block (insn).  Assert for not -1.
+ 	(find_basic_block): Remove function.
+ 	(init_resource_info): Call compute_bb_for_insn.
+ 	(free_resource_info): Call free_bb_for_insn.
+ 
+ 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR rtl-optimization/115182
+ 	* resource.cc (mark_target_live_regs): Don't look for
+ 	unconditional branches after the target to improve on the
+ 	register liveness.
+ 	(find_dead_or_set_registers): Remove unused function.
+ 
+ 2024-05-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/sync.md (atomic_loaddi_fpu): Use movd/pextrd
+ 	to move DImode value from XMM to GPR for TARGET_SSE4_1.
+ 	(atomic_storedi_fpu): Use movd/pinsrd to move DImode value
+ 	from GPR to XMM for TARGET_SSE4_1.
+ 
+ 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-color.cc: Define INCLUDE_VECTOR.
+ 	Include "label-text.h" and "selftest.h".
+ 	(struct color_cap): Replace with...
+ 	(struct color_default): ...this, adding "m_" prefixes to fields
+ 	and dropping "name_len" and "free_val" field.
+ 	(color_dict): Convert to...
+ 	(gcc_color_defaults): ...this, making const, dropping the trailing
+ 	strlen and "false" from each entry.
+ 	(class diagnostic_color_dict): New.
+ 	(g_color_dict): New.
+ 	(colorize_start): Reimplement in terms of g_color_dict.
+ 	(diagnostic_color_dict::get_entry_by_name): New, based on
+ 	colorize_start.
+ 	(diagnostic_color_dict::get_start_by_name): Likewise.
+ 	(diagnostic_color_dict::diagnostic_color_dict): New.
+ 	(parse_gcc_colors): Reimplement, moving body...
+ 	(diagnostic_color_dict::parse_envvar_value): ...here.
+ 	(colorize_init): Lazily create g_color_dict.
+ 	(selftest::test_empty_color_dict): New.
+ 	(selftest::test_default_color_dict): New.
+ 	(selftest::test_color_dict_envvar_parsing): New.
+ 	(selftest::diagnostic_color_cc_tests): New.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::diagnostic_color_cc_tests.
+ 	* selftest.h (selftest::diagnostic_color_cc_tests): New decl.
+ 
+ 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* function-tests.cc: Include "selftest-tree.h".
+ 	* selftest-tree.h: New file.
+ 	* selftest.h (make_fndecl): Move to selftest-tree.h.
+ 
+ 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* config/v850/v850.opt.urls: Regenerate, with fix.
+ 	* config/vax/vax.opt.urls: Likewise.
+ 	* regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed
+ 	values for "vax" and "v850".
+ 
+ 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/115221
+ 	* gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do
+ 	not invoke SCEV is range_query's do not match.
+ 
+ 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-ssa-strlen.cc (strlen_pass::strlen_pass): Add function
+ 	pointer and initialize ptr_qry with current range_query.
+ 	(strlen_pass::m_ranger): Remove.
+ 	(printf_strlen_execute): Enable and disable ranger.
+ 
+ 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/115203
+ 	* diagnostic-path.h
+ 	(simple_diagnostic_path::disable_event_localization): New.
+ 	(simple_diagnostic_path::m_localize_events): New field.
+ 	* diagnostic.cc
+ 	(simple_diagnostic_path::simple_diagnostic_path): Initialize
+ 	m_localize_events.
+ 	(simple_diagnostic_path::add_event): Only localize fmt if
+ 	m_localize_events is true.
+ 	* tree-diagnostic-path.cc
+ 	(test_diagnostic_path::test_diagnostic_path): Call
+ 	disable_event_localization.
+ 
+ 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR bootstrap/115167
+ 	* Makefile.in (C_COMMON_OBJS): Add c-family/c-type-mismatch.o.
+ 	* gcc-rich-location.cc
+ 	(maybe_range_label_for_tree_type_mismatch::get_text): Move to
+ 	c-family/c-type-mismatch.cc.
+ 	(binary_op_rich_location::binary_op_rich_location): Likewise.
+ 	(binary_op_rich_location::use_operator_loc_p): Likewise.
+ 	* gcc-rich-location.h (class range_label_for_type_mismatch):
+ 	Likewise.
+ 	(class maybe_range_label_for_tree_type_mismatch): Likewise.
+ 	(class op_location_t): Likewise for forward decl.
+ 	(class binary_op_rich_location): Likewise.
+ 
+ 2024-05-28  Lyut Nersisyan  <lyut.nersisyan@gmail.com>
+ 
+ 	* config/riscv/crypto.md: Add new combiner patterns to generate
+ 	pack, packh, packw instrutions.
+ 	* config/riscv/iterators.md (HX): New iterator for half X mode.
+ 	* config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): Tighten
+ 	cases to avoid.  Do not lose bits for XOR/IOR.
+ 
+ 2024-05-28  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/115060
+ 	* tree-vect-patterns.cc (vect_get_internal_def): Return statement for
+ 	vectorization.
+ 	(vect_widened_op_tree): Call vect_get_internal_def instead of look_def
+ 	to get statement information.
+ 	(vect_recog_widen_abd_pattern): No need to call vect_stmt_to_vectorize.
+ 
+ 2024-05-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115236
+ 	* tree-ssa-structalias.cc (build_pred_graph): Properly
+ 	handle *ANYTHING = X.
+ 	(build_succ_graph): Likewise.  Do not elide direct nodes
+ 	from receiving from STOREDANYTHING.
+ 
+ 2024-05-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (find_func_aliases): Use
+ 	get_constraint_for_address_of to build escape constraints
+ 	for asm inputs and outputs.
+ 
+ 2024-05-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115254
+ 	* tree-vect-slp.cc (vect_build_slp_tree): Only account
+ 	multi-lane SLP to limit.
+ 
+ 2024-05-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction): Convert
+ 	neutral op to the vector component type.
+ 
+ 2024-05-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(<avx512>_<complexopname>_<mode>_mask<round_name>): Align
+ 	operands' predicate with corresponding expander.
+ 	(<avx512>_<complexopname>_<mode><maskc_name><round_name>):
+ 	Ditto.
+ 
+ 2024-05-28  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/115169
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_conditional_move): Guard REGNO with REG_P.
+ 
+ 2024-05-27  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115238
+ 	* generic-match-head.cc (bitwise_inverted_equal_p): Use
+ 	uniform_integer_cst_p instead of checking INTEGER_CST.
+ 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Likewise.
+ 
+ 2024-05-27  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi: Replace all occurrences of xref
+ 	{foo, , , gm2} with xref {foo}.
+ 
+ 2024-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (scc_visit): Mark the node we
+ 	collapse to as being in a component.
+ 
+ 2024-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115220
+ 	PR tree-optimization/115226
+ 	* tree-ssa-sink.cc (statement_sink_location): When ignoring
+ 	paths to kills when sinking stores make sure the final
+ 	sink location is still post-dominated by the original one.
+ 	Otherwise we'd need to insert a PHI node to merge virtual operands.
+ 
+ 2024-05-27  TheShermanTanker  <tanksherman27@gmail.com>
+ 
+ 	* config/mingw/mingw32.h: Add new define for POSIX
+ 	threads.
+ 
+ 2024-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115232
+ 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
+ 	failure to demangle gracefully.
+ 
+ 2024-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/gm2.texi (What is GNU Modula-2): Move gcc.gnu.org links to
+ 	https.
+ 	(Other languages): Ditto. And fix casing of GCC.
+ 
+ 2024-05-27  Liao Shihua  <shihua@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add TARGET_ZMMUL.
+ 
+ 2024-05-27  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* doc/invoke.texi (Option Summary): Add `-md', `-md-float', and
+ 	`-mg-float' options.  Reorder, matching VAX Options.
+ 	(VAX Options): Reword the description of `-mg' option.  Add
+ 	`-md', `-md-float', and `-mg-float' options.
+ 
+ 2024-05-27  Abe Skolnik  <abe_skolnik@yahoo.com>
+ 
+ 	PR target/79646
+ 	* config/vax/vax.opt (md, md-float, mg, mg-float): Correct
+ 	descriptions.
+ 
+ 2024-05-27  Lyut Nersisyan  <lyut.nersisyan@gmail.com>
+ 
+ 	* config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): New pattern.
+ 
+ 2024-05-27  Levy Hsu  <admin@levyhsu.com>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/115146
+ 	* config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): Replace arithmatic shift
+ 	gen_ashrv4hi3 with logic shift gen_lshrv4hi3.
+ 	Replace gen_vlshrv8hi3 with gen_lshrv8hi3 and gen_vashlv8hi3 with gen_ashlv8hi3.
+ 
+ 2024-05-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* genmatch.cc (dt_node::gen_kids_1): Fix indenet mis-aligned.
+ 
+ 2024-05-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_one): Verify there
+ 	are no bits left to set in the constant when generating bseti.
+ 	(riscv_built_integer): Synthesize ~value and if it's cheap use it
+ 	with a trailing xori with -1.
+ 
+ 2024-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Attribute Syntax): Use @samp{=} instead of @code{=}.
+ 	(Extended Asm): Ditto.
+ 
+ 2024-05-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Try generating
+ 	a nearby simpler constant, then using a final addi to set low
+ 	bits properly.
+ 
+ 2024-05-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/115208
+ 	* value-query.cc (range_query::create_gori): Confirm gori_map is NULL.
+ 	(range_query::destroy_gori): Free gori_map if one was allocated.
+ 
+ 2024-05-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle
+ 	more logical simplifications.
+ 
+ 2024-05-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/predicates.md (arith_operand_or_mode_mask): Renamed to..
+ 	(arith_or_mode_mask_or_zbs_operand): New predicate.
+ 	* config/riscv/riscv.md (and<mode>3): Update predicate for operand 2.
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Use bclri to clear
+ 	bits, particularly bits 31..63 when profitable to do so.
+ 
+ 2024-05-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/115192
+ 	* tree-data-ref.cc (create_intersect_range_checks): Take the
+ 	alignment of the access sizes into account.
+ 
+ 2024-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi: Replace all occurrences of xref {, , , gm2}
+ 	with xref {, , , m2}.
+ 
+ 2024-05-24  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* match.pd: Allow no-op view_convert between permutes.
+ 
+ 2024-05-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115144
+ 	* tree-ssa-sink.cc (do_not_sink): New function, split out
+ 	from ...
+ 	(select_best_block): Here.  First pick valid block to
+ 	sink to.  From that search for the best valid block,
+ 	avoiding sinking across conditions to exceptional code.
+ 	(sink_code_in_bb): When updating vuses of stores in
+ 	paths we do not sink a store to make sure we didn't
+ 	pick a dominating sink location.
+ 
+ 2024-05-24  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiprop.cc (phiprop_insert_phi): Add
+ 	dce_ssa_names argument. Add the phi's result to it.
+ 	(propagate_with_phi): Add dce_ssa_names argument.
+ 	Update call to phiprop_insert_phi.
+ 	(pass_phiprop::execute): Update call to propagate_with_phi.
+ 	Call simple_dce_from_worklist if there was a change.
+ 
+ 2024-05-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Do not split
+ 	store dataref groups on loop SLP discovery failure but create
+ 	a single SLP instance for the stores but branch to SLP sub-trees
+ 	and merge with a series of VEC_PERM nodes.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-edge.h (range_query::condexpr_adjust): Delete.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Use
+ 	gori_ssa routine.
+ 	(fold_using_range::range_of_address): Likewise.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	(fold_using_range::condexpr_adjust): Relocated from gori_compute.
+ 	(fold_using_range::range_of_cond_expr): Use local condexpr_adjust.
+ 	(fur_source::register_outgoing_edges): Use gori_ssa routine.
+ 	* gimple-range-fold.h (gori_ssa): Rename from gori_bb.
+ 	(fold_using_range::condexpr_adjust): Add prototype.
+ 	* gimple-range-gori.cc (gori_compute::condexpr_adjust): Relocate.
+ 	* gimple-range-gori.h (gori_compute::condexpr_adjust): Delete.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Use gori_ssa.
+ 	(ranger_cache::dump): Likewise.
+ 	(ranger_cache::get_global_range): Likewise.
+ 	(ranger_cache::set_global_range): Likewise.
+ 	(ranger_cache::register_inferred_value): Likewise.
+ 	* gimple-range-edge.h (gimple_outgoing_range::map): Remove.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Use
+ 	gori_ssa.
+ 	(fold_using_range::range_of_address): Likewise.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	(fur_source::register_outgoing_edges): Likewise.
+ 	* gimple-range-fold.h (fur_source::query): Make const.
+ 	(gori_ssa): New.
+ 	* gimple-range-gori.cc (gori_map::dump): Use 'this' pointer.
+ 	(gori_compute::gori_compute): Construct with a gori_map.
+ 	* gimple-range-gori.h (gori_compute:gori_compute): Change
+ 	prototype.
+ 	(gori_compute::map): Delete.
+ 	(gori_compute::m_map): Change to a reference.
+ 	(FOR_EACH_GORI_IMPORT_NAME): Change parameter gori to gorimap.
+ 	(FOR_EACH_GORI_EXPORT_NAME): Likewise.
+ 	* gimple-range-path.cc (path_range_query::compute_ranges_in_block):
+ 	Use gori_ssa method.
+ 	(path_range_query::compute_exit_dependencies): Likewise.
+ 	* gimple-range.cc (gimple_ranger::range_of_stmt): Likewise.
+ 	(gimple_ranger::register_transitive_inferred_ranges): Likewise.
+ 	* tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
+ 	Likewise.
+ 	* tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
+ 	* tree-vrp.cc (remove_unreachable::handle_early): Likewise.
+ 	(remove_unreachable::remove_and_update_globals): Likewise.
+ 	* value-query.cc (range_query::create_gori): Create gori map.
+ 	(range_query::share_query): Copy gori map member.
+ 	(range_query::range_query): Initiialize gori_map member.
+ 	* value-query.h (range_query::gori_ssa): New.
+ 	(range_query::m_map): New.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Create
+ 	GORi via the range_query instead of a local member.
+ 	(ranger_cache::dump_bb): Use gori via from the range_query parent.
+ 	(ranger_cache::get_global_range): Likewise.
+ 	(ranger_cache::set_global_range): Likewise.
+ 	(ranger_cache::edge_range): Likewise.
+ 	(anger_cache::block_range): Likewise.
+ 	(ranger_cache::fill_block_cache): Likewise.
+ 	(ranger_cache::range_from_dom): Likewise.
+ 	(ranger_cache::register_inferred_value): Likewise.
+ 	* gimple-range-cache.h (ranger_cache::m_gori): Delete.
+ 	* gimple-range-fold.cc (fur_source::fur_source): Set m_depend_p.
+ 	(fur_depend::fur_depend): Remove gori parameter.
+ 	* gimple-range-fold.h (fur_source::gori): Adjust.
+ 	(fur_source::m_gori): Delete.
+ 	(fur_source::m_depend): New.
+ 	(fur_depend::fur_depend): Adjust prototype.
+ 	* gimple-range-path.cc (path_range_query::path_range_query): Share
+ 	ranger oracles.
+ 	(path_range_query::range_defined_in_block): Use oracle directly.
+ 	(path_range_query::compute_ranges_in_block): Use new gori() method.
+ 	(path_range_query::adjust_for_non_null_uses): Use oracle directly.
+ 	(path_range_query::compute_exit_dependencies): Likewise.
+ 	(jt_fur_source::jt_fur_source): No gori in the parameters.
+ 	(path_range_query::range_of_stmt): Likewise.
+ 	(path_range_query::compute_outgoing_relations): Likewise.
+ 	* gimple-range.cc (gimple_ranger::fold_range_internal): Likewise.
+ 	(gimple_ranger::range_of_stmt): Access gori via gori () method.
+ 	(assume_query::range_of_expr): Create a gori object.
+ 	(assume_query::~assume_query): Destroy a gori object.
+ 	(assume_query::calculate_op): Remove old gori() accessor.
+ 	* gimple-range.h (gimple_ranger::gori): Delete.
+ 	(assume_query::~assume_query): New.
+ 	(assume_query::m_gori): Delete.
+ 	* tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): use
+ 	gori () method.
+ 	* tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
+ 	* value-query.cc (default_gori): New.
+ 	(range_query::create_gori): New.
+ 	(range_query::destroy_gori): New.
+ 	(range_query::share_oracles): Set m_gori.
+ 	(range_query::range_query): Set m_gori to default.
+ 	(range_query::~range_query): call destroy gori.
+ 	* value-query.h (range_query): Adjust prototypes
+ 	(range_query::m_gori): New.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust
+ 	m_gori constructor.
+ 	(ranger_cache::edge_range): Use renamed edge_range_p name.
+ 	(ranger_cache::range_from_dom): Likewise.
+ 	* gimple-range-edge.h (gimple_outgoing_range::condexpr_adjust): New.
+ 	(gimple_outgoing_range::has_edge_range_p): New.
+ 	(gimple_outgoing_range::dump): New.
+ 	(gimple_outgoing_range::compute_operand_range): New.
+ 	(gimple_outgoing_range::map): New.
+ 	* gimple-range-fold.cc (fur_source::register_outgoing_edges ): Use
+ 	renamed edge_range_p routine
+ 	* gimple-range-gori.cc (gori_compute::gori_compute): Adjust
+ 	constructor.
+ 	(gori_compute::~gori_compute): New.
+ 	(gori_compute::edge_range_p): Rename from outgoing_edge_range_p
+ 	and use inherited routine instead of member method.
+ 	* gimple-range-gori.h (class gori_compute): Inherit from
+ 	gimple_outgoing_range, adjust protoypes.
+ 	(gori_compute::outgpoing): Delete.
+ 	* gimple-range-path.cc (path_range_query::compute_ranges_in_block): Use
+ 	renamed edge_range_p routine.
+ 	* tree-ssa-loop-unswitch.cc (evaluate_control_stmt_using_entry_checks):
+ 	Likewise.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Access
+ 	gori_map via member call.
+ 	(ranger_cache::dump_bb): Likewise.
+ 	(ranger_cache::get_global_range): Likewise.
+ 	(ranger_cache::set_global_range): Likewise.
+ 	(ranger_cache::register_inferred_value): Likewise.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Likewise.
+ 	(fold_using_range::range_of_address): Likewise.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range_switch):
+ 	likewise.
+ 	(gori_compute::compute_operand_range): Likewise.
+ 	(gori_compute::compute_logical_operands): Likewise.
+ 	(gori_compute::refine_using_relation): Likewise.
+ 	(gori_compute::compute_operand1_and_operand2_range): Likewise.
+ 	(gori_compute::may_recompute_p): Likewise.
+ 	(gori_compute::has_edge_range_p): Likewise.
+ 	(gori_compute::outgoing_edge_range_p): Likewise.
+ 	(gori_compute::condexpr_adjust): Likewise.
+ 	* gimple-range-gori.h (class gori_compute): Do not inherit from
+ 	gori_map.
+ 	(gori_compute::m_map): New.
+ 	* gimple-range-path.cc (gimple-range-path.cc): Use gori_map member.
+ 	(path_range_query::compute_exit_dependencies): Likewise.
+ 	* gimple-range.cc (gimple_ranger::range_of_stmt): Likewise.
+ 	(gimple_ranger::register_transitive_inferred_ranges): Likewise.
+ 	* tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Likewise.
+ 	* tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
+ 	* tree-vrp.cc (remove_unreachable::handle_early): Likewise.
+ 	(remove_unreachable::remove_and_update_globals): Likewise.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range):
+ 	Do not allocate a range allocator at construction time.
+ 	(gimple_outgoing_range::~gimple_outgoing_range): Delete allocator
+ 	if one was allocated.
+ 	(gimple_outgoing_range::set_switch_limit): New.
+ 	(gimple_outgoing_range::switch_edge_range): Create an allocator if one
+ 	does not exist.
+ 	(gimple_outgoing_range::edge_range_p): Check for zero edges.
+ 	* gimple-range-edge.h (class gimple_outgoing_range): Adjust prototypes.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/113879
+ 	* gimple-range-fold.cc (op1_range): New.
+ 	(op2_range): New.
+ 	* gimple-range-fold.h (op1_range): New prototypes.
+ 	(op2_range): New prototypes.
+ 	* gimple-range-infer.cc (gimple_infer_range::add_range): Do not
+ 	add an inferred range if it is VARYING.
+ 	(gimple_infer_range::gimple_infer_range): Add inferred ranges
+ 	for any range-op statements if requested.
+ 	* gimple-range-infer.h (gimple_infer_range): Add parameter.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Create an infer
+ 	oracle instead of a local member.
+ 	(ranger_cache::~ranger_cache): Destroy the oracle.
+ 	(ranger_cache::edge_range): Use oracle.
+ 	(ranger_cache::fill_block_cache): Likewise.
+ 	(ranger_cache::range_from_dom): Likewise.
+ 	(ranger_cache::apply_inferred_ranges): Likewise.
+ 	* gimple-range-cache.h (ranger_cache::m_exit): Delete.
+ 	* gimple-range-infer.cc (infer_oracle): New static object;
+ 	(class infer_oracle): New.
+ 	(non_null_wrapper::non_null_wrapper): New.
+ 	(non_null_wrapper::add_nonzero): New.
+ 	(non_null_wrapper::add_range): New.
+ 	(non_null_loadstore): Use nonnull_wrapper.
+ 	(gimple_infer_range::gimple_infer_range): New alternate constructor.
+ 	(exit_range::stmt): New.
+ 	(infer_range_manager::has_range_p): Combine seperate methods.
+ 	(infer_range_manager::maybe_adjust_range): Adjust has_range_p call.
+ 	(infer_range_manager::add_ranges): New.
+ 	(infer_range_manager::add_range): Take stmt rather than BB.
+ 	(infer_range_manager::add_nonzero): Adjust from BB to stmt.
+ 	* gimple-range-infer.h (class gimple_infer_range): Adjust methods.
+ 	(infer_range_oracle): New.
+ 	(class infer_range_manager): Inherit from infer_range_oracle.
+ 	Adjust methods.
+ 	* gimple-range-path.cc (path_range_query::range_defined_in_block): Use
+ 	oracle.
+ 	(path_range_query::adjust_for_non_null_uses): Likewise.
+ 	* gimple-range.cc (gimple_ranger::range_on_edge): Likewise
+ 	(gimple_ranger::register_transitive_inferred_ranges): Likewise.
+ 	* value-query.cc (default_infer_oracle): New.
+ 	(range_query::create_infer_oracle): New.
+ 	(range_query::destroy_infer_oracle): New.
+ 	(range_query::share_query): Copy infer pointer.
+ 	(range_query::range_query): Initialize infer pointer.
+ 	(range_query::~range_query): destroy infer object.
+ 	* value-query.h (range_query::infer_oracle): New.
+ 	(range_query::create_infer_oracle): New prototype.
+ 	(range_query::destroy_infer_oracle): New prototype.
+ 	(range_query::m_infer): New.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (gimple_ranger::gimple_ranger): Share the
+ 	components from ranger_cache.
+ 	(gimple_ranger::~gimple_ranger): Don't clear pointer.
+ 	* value-query.cc (range_query::share_query): New.
+ 	(range_query::range_query): Clear shared component flag.
+ 	(range_query::~range_query): Don't free shared component copies.
+ 	* value-query.h (share_query): New prototype.
+ 	(m_shared_copy_p): New member.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::dump_bb): Use m_relation.
+ 	(ranger_cache::fill_block_cache): Likewise
+ 	* gimple-range-fold.cc (fur_stmt::get_phi_operand): Use new names.
+ 	(fur_depend::register_relation): Likewise.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	* gimple-range-path.cc (path_range_query::path_range_query): Likewise.
+ 	(path_range_query::~path_range_query): Likewise.
+ 	(ath_range_query::compute_ranges): Likewise.
+ 	(jt_fur_source::register_relation): Likewise.
+ 	(jt_fur_source::query_relation): Likewise.
+ 	(path_range_query::maybe_register_phi_relation): Likewise.
+ 	* gimple-range-path.h (get_path_oracle): Likewise.
+ 	* gimple-range.cc (gimple_ranger::gimple_ranger): Likewise.
+ 	(gimple_ranger::~gimple_ranger): Likewise.
+ 	* value-query.cc (range_query::create_relation_oracle): Likewise.
+ 	(range_query::destroy_relation_oracle): Likewise.
+ 	(range_query::share_oracles): Likewise.
+ 	(range_query::range_query): Likewise.
+ 	* value-query.h (value_query::relation): Rename from oracle.
+ 	(m_relation): Rename from m_oracle.
+ 	* value-relation.cc (relation_oracle::query): Rename from
+ 	query_relation.
+ 	(equiv_oracle::query): Likewise.
+ 	(equiv_oracle::record): Rename from register_relation.
+ 	(relation_oracle::record): Likewise.
+ 	(dom_oracle::record): Likewise.
+ 	(dom_oracle::query): Rename from query_relation.
+ 	(path_oracle::record): Rename from register_relation.
+ 	(path_oracle::query): Rename from query_relation.
+ 	* value-relation.h (*::record): Rename from register_relation.
+ 	(*::query): Rename from query_relation.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::dump_bb): Remove check for
+ 	NULL oracle pointer.
+ 	(ranger_cache::fill_block_cache): Likewise.
+ 	* gimple-range-fold.cc (fur_stmt::get_phi_operand): Likewise.
+ 	(fur_depend::fur_depend): Likewise.
+ 	(fur_depend::register_relation): Likewise, use qury_relation.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	(fold_using_range::relation_fold_and_or): Likewise.
+ 	* gimple-range-fold.h (fur_source::m_oracle): Delete.  Oracle
+ 	can be accessed dirctly via m_query now.
+ 	* gimple-range-path.cc (path_range_query::path_range_query):
+ 	Adjust for oracle reference pointer.
+ 	(path_range_query::compute_ranges): Likewise.
+ 	(jt_fur_source::jt_fur_source): Adjust for no m_oracle member.
+ 	(jt_fur_source::register_relation): Do not check for NULL
+ 	pointer.
+ 	(jt_fur_source::query_relation): Likewise.
+ 	* gimple-range.cc (gimple_ranger::gimple_ranger):  Adjust for
+ 	reference pointer.
+ 	* value-query.cc (default_relation_oracle): New.
+ 	(range_query::create_relation_oracle): Relocate from header.
+ 	Ensure not being added to global query.
+ 	(range_query::destroy_relation_oracle): Relocate from header.
+ 	(range_query::range_query): Initailize to default oracle.
+ 	(ange_query::~range_query): Call destroy_relation_oracle.
+ 	* value-query.h (class range_query): Adjust prototypes.
+ 	(range_query::create_relation_oracle): Move to source file.
+ 	(range_query::destroy_relation_oracle): Move to source file.
+ 	* value-relation.cc (relation_oracle::validate_relation): Delete.
+ 	(relation_oracle::register_stmt): Rename to register_relation.
+ 	(relation_oracle::register_edge): Likewise.
+ 	* value-relation.h (register_stmt): Rename to register_relation and
+ 	provide default function in base class.
+ 	(register_edge): Likewise.
+ 	(relation_oracle::validate_relation): Delete.
+ 	(relation_oracle::query_relation): Provide default in base class.
+ 	(relation_oracle::dump): Likewise.
+ 	(relation_oracle::equiv_set): Likewise.
+ 	(default_relation_oracle): New extenal reference.
+ 	(partial_equiv_set, add_partial_equiv): Move to protected.
+ 
+ 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::ranger_cache): Call
+ 	create_relation_oracle.
+ 	(ranger_cache::~ranger_cache): Call destroy_relation_oracle.
+ 	* gimple-range-fold.cc (fur_stmt::get_phi_operand): Check for
+ 	relation oracle bnefore calling query_relation.
+ 	(fold_using_range::range_of_phi): Likewise.
+ 	* gimple-range-path.cc (path_range_query::~path_range_query): Set
+ 	relation oracle pointer to NULL when done.
+ 	* gimple-range.cc (gimple_ranger::~gimple_ranger): Likewise.
+ 	* value-query.cc (range_query::~range_query): Ensure any
+ 	relation oracle is destroyed.
+ 	(range_query::query_relation): relocate to relation_oracle object.
+ 	* value-query.h (class range_query): Adjust method proototypes.
+ 	(range_query::create_relation_oracle): New.
+ 	(range_query::destroy_relation_oracle): New.
+ 	* value-relation.cc (relation_oracle::query_relation): Relocate
+ 	from range query class.
+ 	* value-relation.h (Call relation_oracle): New prototypes.
+ 
+ 2024-05-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* generic-match-head.cc (types_match): Add overloaded types_match
+ 	for 3 types.
+ 	* gimple-match-head.cc (types_match): Ditto.
+ 	* match.pd: Leverage overloaded types_match.
+ 
+ 2024-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115197
+ 	* tree-loop-distribution.cc (copy_loop_before): Constant PHI
+ 	args remain the same.
+ 
+ 2024-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115199
+ 	* tree-ssa-structalias.cc (process_constraint): Also
+ 	record &ANYTHING = X as *ANYTING = X in the end.
+ 
+ 2024-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115138
+ 	* tree-ssa-alias.cc (ptrs_compare_unequal): Make sure
+ 	pt.vars_contains_nonlocal differs since we do not represent
+ 	FUNCTION_DECLs or LABEL_DECLs in vars explicitly.
+ 
+ 2024-05-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR target/109549
+ 	* config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P):
+ 	Define.
+ 	(s390_noce_conversion_profitable_p): Implement.
+ 
+ 2024-05-23  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/115191
+ 	* tree-ssa-phiopt.cc (value_replacement): Use Value_Range instead
+ 	of int_range_max.
+ 
+ 2024-05-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 	    Joel Jones  <quic_joeljone@quicinc.com>
+ 	    Wei Zhao  <quic_wezhao@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (oryon-1): New entry.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi  (AArch64 Options): Document oryon-1.
+ 
+ 2024-05-22  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/102171
+ 	* config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_HIGH_BUILTINS):
+ 	New macro to create definitions for all vget_high intrinsics.
+ 	(VGET_HIGH_BUILTIN): Likewise.
+ 	(enum aarch64_builtins): Add vget_high function codes.
+ 	(AARCH64_SIMD_VGET_LOW_BUILTINS): Delete duplicate macro.
+ 	(aarch64_general_fold_builtin): Fold vget_high calls.
+ 	* config/aarch64/aarch64-simd-builtins.def: Delete vget_high builtins.
+ 	* config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Delete.
+ 	(aarch64_vget_hi_halfv8bf): Likewise.
+ 	* config/aarch64/arm_neon.h (__attribute__): Delete.
+ 	(vget_high_f16): Likewise.
+ 	(vget_high_f32): Likewise.
+ 	(vget_high_f64): Likewise.
+ 	(vget_high_p8): Likewise.
+ 	(vget_high_p16): Likewise.
+ 	(vget_high_p64): Likewise.
+ 	(vget_high_s8): Likewise.
+ 	(vget_high_s16): Likewise.
+ 	(vget_high_s32): Likewise.
+ 	(vget_high_s64): Likewise.
+ 	(vget_high_u8): Likewise.
+ 	(vget_high_u16): Likewise.
+ 	(vget_high_u32): Likewise.
+ 	(vget_high_u64): Likewise.
+ 	(vget_high_bf16): Likewise.
+ 
+ 2024-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/115038
+ 	* fold-mem-offsets.cc (fold_offsets): Return 0 if the defining
+ 	instruction of the register is frame related.
+ 
+ 2024-05-22  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.cc (ix86_rtx_costs) <case CONST_INT>:
+ 	A CONST_INT that isn't x86_64_immediate_operand requires an extra
+ 	(expensive) movabsq insn to load, so return COSTS_N_INSNS (1) + 1.
+ 
+ 2024-05-22  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* except.cc (output_function_exception_table): Move call to
+ 	get_personality_function after targetm_common.except_unwind_info
+ 	check, to avoid ICE on targets that don't support exceptions.
+ 
+ 2024-05-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (change_vec_perm_layout): Ignore an
+ 	input partition of -1.
+ 
+ 2024-05-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Avoid looking
+ 	at SLP_REPRESENTATIVE for VEC_PERM nodes.
+ 
+ 2024-05-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_check_store_rhs): Look at *rhs
+ 	only when it's a vec_constant_def.
+ 	(vect_is_simple_use): When we have no representative for
+ 	an internal node, fill in *op with error_mark_node.
+ 
+ 2024-05-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/invoke.texi (C++ Modules): Fix typo.
+ 
+ 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/115152
+ 	* tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If
+ 	!si->full_string_p, clear *nulterm and set maxlen to nbytes.
+ 
+ 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/115172
+ 	* ubsan.cc (instrument_bool_enum_load): If rhs is not in generic
+ 	address space, use qualified version of utype with the right
+ 	address space.  Formatting fix.
+ 
+ 2024-05-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/115069
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
+ 	Do not enable the optimization when AVX512BW is not enabled.
+ 
+ 2024-05-21  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_epilogue): Handle offset
+ 	being sum of two S12.
+ 
+ 2024-05-21  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/105733
+ 	* config/riscv/riscv.h: New macros for with aligned offsets.
+ 	* config/riscv/riscv.cc (riscv_split_sum_of_two_s12): New
+ 	function to split a sum of two s12 values into constituents.
+ 	(riscv_expand_prologue): Handle offset being sum of two S12.
+ 	(riscv_expand_epilogue): Ditto.
+ 	* config/riscv/riscv-protos.h (riscv_split_sum_of_two_s12): New.
+ 
+ 2024-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115154
+ 	* match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): Disable
+ 	for 1bit signed types.
+ 
+ 2024-05-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115137
+ 	* tree-ssa-structalias.cc (pt_solution_includes_const_pool): NONLOCAL
+ 	also includes constant pool entries.
+ 
+ 2024-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* hard-reg-set.h (target_hard_regs::x_eh_return_data_regs): New field.
+ 	(eh_return_data_regs): New macro.
+ 	* reginfo.cc (init_reg_sets_1): Initialize x_eh_return_data_regs.
+ 	* df-scan.cc (df_get_exit_block_use_set): Use it.
+ 	* ira-lives.cc (process_out_of_region_eh_regs): Likewise.
+ 
+ 2024-05-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/115149
+ 	* tree-ssa-live.cc (virtual_operand_live::get_live_in):
+ 	Explicitly track the first processed edge.
+ 
+ 2024-05-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114427
+ 	* config/i386/i386-expand.cc (expand_vec_perm_even_odd_pack):
+ 	Use pblendw instead of pand to clear upper bits.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.md (@ieee_128bit_vsx_neg<IEEE128>2): Remove
+ 	the use of operands[3].
+ 	(@ieee_128bit_vsx_neg<IEEE128>2): Likewise.
+ 	(*ieee_128bit_vsx_nabs<mode>2): Likewise.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.md (mode attribute rreg): Remove useless
+ 	entries with modes TF, TD, V4SF and V2DF.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/vector.md (define_expand vector_load_<mode>): Remove.
+ 	(vector_store_<mode>): Likewise.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-call.cc (rs6000_darwin64_record_arg_recurse):
+ 	Clean up TFmode and TDmode check with FLOAT128_2REG_P.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
+ 	useless check on TARGET_P8_VECTOR && !TARGET_ALTIVEC and add an
+ 	assertion on !TARGET_VSX if !TARGET_ALTIVEC.
+ 
+ 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/114402
+ 	* config/rs6000/rs6000.cc (rs6000_generate_compare): Make IEEE128
+ 	handling without vsx go with libcall.
+ 
+ 2024-05-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/115143
+ 	* tree-ssa-phiopt.cc (minmax_replacement): Check for empty
+ 	phi nodes for middle bbs for the case where middle bb is not empty.
+ 
+ 2024-05-20  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/102171
+ 	* config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS):
+ 	New macro to create definitions for all vget_low intrinsics.
+ 	(VGET_LOW_BUILTIN): Likewise.
+ 	(enum aarch64_builtins): Add vget_low function codes.
+ 	(aarch64_general_fold_builtin): Fold vget_low calls.
+ 	* config/aarch64/aarch64-simd-builtins.def: Delete vget_low builtins.
+ 	* config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Delete.
+ 	(aarch64_vget_lo_halfv8bf): Likewise.
+ 	* config/aarch64/arm_neon.h (__attribute__): Delete.
+ 	(vget_low_f16): Likewise.
+ 	(vget_low_f32): Likewise.
+ 	(vget_low_f64): Likewise.
+ 	(vget_low_p8): Likewise.
+ 	(vget_low_p16): Likewise.
+ 	(vget_low_p64): Likewise.
+ 	(vget_low_s8): Likewise.
+ 	(vget_low_s16): Likewise.
+ 	(vget_low_s32): Likewise.
+ 	(vget_low_s64): Likewise.
+ 	(vget_low_u8): Likewise.
+ 	(vget_low_u16): Likewise.
+ 	(vget_low_u32): Likewise.
+ 	(vget_low_u64): Likewise.
+ 	(vget_low_bf16): Likewise.
+ 
+ 2024-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Improve CTZ costing.
+ 
+ 2024-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (movsi_aarch64): Use '\;' to force
+ 	newline in 2-instruction pattern.
+ 	(movdi_aarch64): Likewise.
+ 
+ 2024-05-20  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	* config/aarch64/aarch64-ldp-fusion.cc: Rename generic parts of code
+ 	to avoid "ldp" and "stp".
+ 
+ 2024-05-20  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* config/riscv/riscv.opt.urls: Regenerate.
+ 	* config/i386/i386.opt.urls: Likewise.
+ 
+ 2024-05-20  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	* config/aarch64/aarch64-ldp-fusion.cc: Factor out a
+ 	target-independent interface and move it to the head of the file
+ 
+ 2024-05-20  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc(mips_option_override):
+ 	Drop mips_lra_flag variable;
+ 	(mips_lra_p): Removed.
+ 	(TARGET_LRA_P): Remove definition here to use the default one.
+ 	* config/mips/mips.md(*mul_acc_si, *mul_acc_si_r3900, *mul_sub_si):
+ 	Drop mips_lra_flag variable.
+ 	* config/mips/mips.opt(-mlra): Removed.
+ 	* config/mips/mips.opt.urls(mlra): Removed.
+ 
+ 2024-05-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Remove Xeon Phi cpus.
+ 	(get_available_features): Remove Xeon Phi ISAs.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA_AVX512PF_SET): Removed.
+ 	(OPTION_MASK_ISA_AVX512ER_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX5124FMAPS_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX5124VNNIW_SET): Ditto.
+ 	(OPTION_MASK_ISA_PREFETCHWT1_SET): Ditto.
+ 	(OPTION_MASK_ISA_AVX512F_UNSET): Remove AVX512PF and AVX512ER.
+ 	(OPTION_MASK_ISA_AVX512PF_UNSET): Removed.
+ 	(OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX5124FMAPS_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX5124VNNIW_UNSET): Ditto.
+ 	(OPTION_MASK_ISA_PREFETCHWT1_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX512F_UNSET): Remove AVX5124FMAPS and
+ 	AVX5125VNNIW.
+ 	(ix86_handle_option): Remove Xeon Phi options.
+ 	(processor_names): Remove Xeon Phi cpus.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h
+ 	(enum processor_types): Ditto.
+ 	(enum processor_features): Remove Xeon Phi ISAs.
+ 	* common/config/i386/i386-isas.h: Ditto.
+ 	* config.gcc: Remove Xeon Phi cpus and ISAs.
+ 	* config/i386/avx5124fmapsintrin.h: Remove intrin support.
+ 	* config/i386/avx5124vnniwintrin.h: Ditto.
+ 	* config/i386/avx512erintrin.h: Ditto.
+ 	* config/i386/avx512pfintrin.h: Ditto.
+ 	* config/i386/cpuid.h (bit_AVX512PF): Removed.
+ 	(bit_AVX512ER): Ditto.
+ 	(bit_PREFETCHWT1): Ditto.
+ 	(bit_AVX5124VNNIW): Ditto.
+ 	(bit_AVX5124FMAPS): Ditto.
+ 	* config/i386/driver-i386.cc
+ 	(host_detect_local_cpu): Remove Xeon Phi.
+ 	* config/i386/i386-builtin-types.def: Remove unused types.
+ 	* config/i386/i386-builtin.def (BDESC): Remove builtins.
+ 	* config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins): Ditto.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Remove Xeon
+ 	Phi cpus and ISAs.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Remove Xeon Phi
+ 	related handlers.
+ 	(ix86_emit_swdivsf): Ditto.
+ 	(ix86_emit_swsqrtsf): Ditto.
+ 	* config/i386/i386-isa.def: Remove Xeon Phi ISAs.
+ 	* config/i386/i386-options.cc (m_KNL): Removed.
+ 	(m_KNM): Ditto.
+ 	(isa2_opts): Remove Xeon Phi ISAs.
+ 	(isa_opts): Ditto.
+ 	(processor_cost_table): Remove Xeon Phi cpus.
+ 	(ix86_valid_target_attribute_inner_p): Remove Xeon Phi ISAs.
+ 	(ix86_option_override_internal): Remove Xeon Phi related handlers.
+ 	* config/i386/i386-rust.cc (ix86_rust_target_cpu_info): Remove Xeon
+ 	Phi ISAs.
+ 	* config/i386/i386.cc (ix86_hard_regno_mode_ok): Remove Xeon Phi
+ 	related handler.
+ 	* config/i386/i386.h (TARGET_EMIT_VZEROUPPER): Removed.
+ 	(enum processor_type): Remove Xeon Phi cpus.
+ 	* config/i386/i386.md (prefetch): Remove PREFETCHWT1.
+ 	(*prefetch_3dnow): Ditto.
+ 	(*prefetch_prefetchwt1): Removed.
+ 	* config/i386/i386.opt: Remove Xeon Phi ISAs.
+ 	* config/i386/immintrin.h: Ditto.
+ 	* config/i386/sse.md (VF1_AVX512ER_128_256): Removed.
+ 	(rsqrt<mode>2): Change iterator from VF1_AVX512ER_128_256 to
+ 	VF1_128_256.
+ 	(GATHER_SCATTER_SF_MEM_MODE): Removed.
+ 	(avx512pf_gatherpf<mode>sf): Ditto.
+ 	(*avx512pf_gatherpf<VI48_512:mode>sf_mask): Ditto.
+ 	(avx512pf_gatherpf<mode>df): Ditto.
+ 	(*avx512pf_gatherpf<VI4_256_8_512:mode>df_mask): Ditto.
+ 	(avx512pf_scatterpf<mode>sf): Ditto.
+ 	(*avx512pf_scatterpf<VI48_512:mode>sf_mask): Ditto.
+ 	(avx512pf_scatterpf<mode>df): Ditto.
+ 	(*avx512pf_scatterpf<VI4_256_8_512:mode>df_mask): Ditto.
+ 	(exp2<mode>2): Ditto.
+ 	(avx512er_exp2<mode><mask_name><round_saeonly_name>): Ditto.
+ 	(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
+ 	(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto.
+ 	(IMOD4): Ditto.
+ 	(imod4_narrow): Ditto.
+ 	(mov<mode>): Ditto.
+ 	(*mov<mode>_internal): Ditto.
+ 	(avx5124fmaddps_4fmaddps): Ditto.
+ 	(avx5124fmaddps_4fmaddps_mask): Ditto.
+ 	(avx5124fmaddps_4fmaddps_maskz): Ditto.
+ 	(avx5124fmaddps_4fmaddss): Ditto.
+ 	(avx5124fmaddps_4fmaddss_mask): Ditto.
+ 	(avx5124fmaddps_4fmaddss_maskz): Ditto.
+ 	(avx5124fmaddps_4fnmaddps): Ditto.
+ 	(avx5124fmaddps_4fnmaddps_mask): Ditto.
+ 	(avx5124fmaddps_4fnmaddps_maskz): Ditto.
+ 	(avx5124fmaddps_4fnmaddss): Ditto.
+ 	(avx5124fmaddps_4fnmaddss_mask): Ditto.
+ 	(avx5124fmaddps_4fnmaddss_maskz): Ditto.
+ 	(avx5124vnniw_vp4dpwssd): Ditto.
+ 	(avx5124vnniw_vp4dpwssd_mask): Ditto.
+ 	(avx5124vnniw_vp4dpwssd_maskz): Ditto.
+ 	(avx5124vnniw_vp4dpwssds): Ditto.
+ 	(avx5124vnniw_vp4dpwssds_mask): Ditto.
+ 	(avx5124vnniw_vp4dpwssds_maskz): Ditto.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Remove Xeon Phi cpus.
+ 	(ix86_adjust_cost): Ditto.
+ 	* config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Ditto.
+ 	(X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
+ 	(X86_TUNE_MOVX): Ditto.
+ 	(X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
+ 	(X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
+ 	(X86_TUNE_FOUR_JUMP_LIMIT): Ditto.
+ 	(X86_TUNE_USE_INCDEC): Ditto.
+ 	(X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
+ 	(X86_TUNE_OPT_AGU): Ditto.
+ 	(X86_TUNE_AVOID_LEA_FOR_ADDR): Ditto.
+ 	(X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Ditto.
+ 	(X86_TUNE_USE_SAHF): Ditto.
+ 	(X86_TUNE_USE_CLTD): Ditto.
+ 	(X86_TUNE_USE_BT): Ditto.
+ 	(X86_TUNE_ONE_IF_CONV_INSN): Ditto.
+ 	(X86_TUNE_EXPAND_ABS): Ditto.
+ 	(X86_TUNE_USE_SIMODE_FIOP): Ditto.
+ 	(X86_TUNE_EXT_80387_CONSTANTS): Ditto.
+ 	(X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
+ 	(X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
+ 	(X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Ditto.
+ 	(X86_TUNE_SLOW_PSHUFB): Ditto.
+ 	(X86_TUNE_EMIT_VZEROUPPER): Removed.
+ 	* config/i386/xmmintrin.h (enum _mm_hint): Remove _MM_HINT_ET1.
+ 	* doc/extend.texi: Remove Xeon Phi.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2024-05-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* dse.cc (get_stored_val): Make sure read_mode/write_mode
+ 	is valid subreg before gen_lowpart.
+ 
+ 2024-05-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/115142
+ 	* config/riscv/riscv.cc (mem_shadd_or_shadd_rtx_p): Make sure
+ 	shifted argument is a register.
+ 
+ 2024-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* optabs-query.cc (can_mult_highpart_p): Test for the existence of
+ 	a wider mode instead of requiring it.
+ 
+ 2024-05-19  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/nvptx/nvptx.md (popcount<mode>2): Split into...
+ 	(popcountsi2): define_insn handling SImode popcount.
+ 	(popcountdi2): define_insn handling DImode popcount, with an
+ 	explicit truncate:SI to produce an SImode result.
+ 
+ 2024-05-18  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* config/riscv/riscv.opt: Add -mno-fence-tso.
+ 	* config/riscv/sync-rvwmo.md (mem_thread_fence_rvwmo): Respect
+ 	-mno-fence-tso.
+ 	* doc/invoke.texi (RISC-V): Document -mno-fence-tso.
+ 
+ 2024-05-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md: Add new patterns to allow selection
+ 	between (x << C1) + C2 vs (x + C2') << C1 depending on the
+ 	cost C2 vs C2'.
+ 
+ 2024-05-18  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Optimize movbf
+ 	with Nan-boxing value.
+ 	* config/riscv/riscv.md (*movhf_softfloat_boxing): Expand movbf
+ 	with Nan-boxing value.
+ 	(*mov<HFBF:mode>_softfloat_boxing): Ditto.
+ 	with Nan-boxing value.
+ 	(*movbf_softfloat_boxing): Delete abandon pattern.
+ 
+ 2024-05-18  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
+ 	Modify _Bfloat16 to __bf16.
+ 	* config/riscv/riscv.cc (riscv_mangle_type): Ditto.
+ 
+ 2024-05-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/51492
+ 	PR target/112600
+ 	* config/riscv/autovec.md (usadd<mode>3): New pattern expand for
+ 	the unsigned SAT_ADD in vector mode.
+ 	* config/riscv/riscv-protos.h (riscv_expand_usadd): New func decl
+ 	to expand usadd<mode>3 pattern.
+ 	(expand_vec_usadd): Ditto but for vector.
+ 	* config/riscv/riscv-v.cc (emit_vec_saddu): New func impl to emit
+ 	the vsadd insn.
+ 	(expand_vec_usadd): New func impl to expand usadd<mode>3 for vector.
+ 	* config/riscv/riscv.cc (riscv_expand_usadd): New func impl to
+ 	expand usadd<mode>3 for scalar.
+ 	* config/riscv/riscv.md (usadd<mode>3): New pattern expand for
+ 	the unsigned SAT_ADD in scalar mode.
+ 	* config/riscv/vector.md: Allow VLS mode for vsaddu.
+ 
+ 2024-05-17  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt.urls: Regenerate to add
+ 	fdiagnostics-show-event-links.
+ 
+ 2024-05-17  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-protos.h (struct common_vector_cost): Add
+ 	segment_permute cost.
+ 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
+ 	Handle segment loads/stores.
+ 	* config/riscv/riscv.cc: Initialize segment_permute_[2-8] to 1.
+ 
+ 2024-05-17  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/113474
+ 	* internal-fn.cc (expand_vec_cond_mask_optab_fn):  Remove
+ 	force_regs.
+ 
+ 2024-05-17  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* dwarf2out.cc (gen_namespace_die): Use DW_TAG_module for Ada.
+ 
+ 2024-05-17  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt (fdiagnostics-show-event-links): New option.
+ 	* diagnostic-label-effects.h: New file.
+ 	* diagnostic-path.h (diagnostic_event::connect_to_next_event_p):
+ 	New pure virtual function.
+ 	(simple_diagnostic_event::connect_to_next_event_p): Implement it.
+ 	(simple_diagnostic_event::connect_to_next_event): New.
+ 	(simple_diagnostic_event::m_connected_to_next_event): New field.
+ 	(simple_diagnostic_path::connect_to_next_event): New decl.
+ 	* diagnostic-show-locus.cc: Include "text-art/theme.h" and
+ 	"diagnostic-label-effects.h".
+ 	(colorizer::set_cfg_edge): New.
+ 	(layout::m_fallback_theme): New field.
+ 	(layout::m_theme): New field.
+ 	(layout::m_effect_info): New field.
+ 	(layout::m_link_lhs_state): New enum and field.
+ 	(layout::m_link_rhs_column): New field.
+ 	(layout_range::has_in_edge): New.
+ 	(layout_range::has_out_edge): New.
+ 	(layout::layout): Add "effect_info" optional param.  Initialize
+ 	m_theme, m_link_lhs_state, and m_link_rhs_column.
+ 	(layout::maybe_add_location_range): Remove stray "FIXME" from
+ 	leading comment.
+ 	(layout::print_source_line): Replace space after margin with a
+ 	call to print_leftmost_column.
+ 	(layout::print_leftmost_column): New.
+ 	(layout::start_annotation_line): Make non-const.  Gain
+ 	responsibility for printing the leftmost column after the margin.
+ 	(layout::print_annotation_line): Drop pp_space, as this is now
+ 	added by start_annotation_line.
+ 	(line_label::line_label): Add "has_in_edge" and "has_out_edge"
+ 	params and initialize...
+ 	(line_label::m_has_in_edge): New field.
+ 	(line_label::m_has_out_edge): New field.
+ 	(layout::print_any_labels): Pass edge information to line_label
+ 	ctor.  Keep track of in-edges and out-edges, adding visualizations
+ 	of these links between labels.
+ 	(layout::print_leading_fixits):  Drop pp_character, as this is now
+ 	added by start_annotation_line.
+ 	(layout::print_trailing_fixits): Fix off-by-one errors in column
+ 	calculation.
+ 	(layout::move_to_column): Add comment about debugging.
+ 	(layout::show_ruler): Make non-const.  Drop pp_space calls, as
+ 	this is now added by start_annotation_line.
+ 	(layout::print_line): Call print_any_right_to_left_edge_lines.
+ 	(layout::print_any_right_to_left_edge_lines): New.
+ 	(layout::update_any_effects): New.
+ 	(gcc_rich_location::add_location_if_nearby): Initialize
+ 	loc_range.m_label.
+ 	(diagnostic_context::maybe_show_locus): Add "effects" param and
+ 	pass it to diagnostic_context::show_locus.
+ 	(diagnostic_context::show_locus): Add "effects" param, passing it
+ 	to layout's ctor.  Call update_any_effects on the layout after
+ 	printing the lines.
+ 	(selftest::test_layout_x_offset_display_utf8): Update expected
+ 	result for eliminated trailing newline.
+ 	(selftest::test_layout_x_offset_display_utf8): Likewise.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	* diagnostic.cc (diagnostic_context::initialize): Initialize
+ 	m_source_printing.show_event_links_p.
+ 	(simple_diagnostic_path::connect_to_next_event): New.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Initialize
+ 	m_connected_to_next_event.
+ 	* diagnostic.h (class diagnostic_source_effect_info): New forward
+ 	decl.
+ 	(diagnostic_source_printing_options::show_event_links_p): New
+ 	field.
+ 	(diagnostic_context::maybe_show_locus): Add optional "effect_info"
+ 	param.
+ 	(diagnostic_context::show_locus): Add "effect_info" param.
+ 	(diagnostic_show_locus): Add optional "effect_info" param.
+ 	* doc/invoke.texi: Add -fno-diagnostics-show-event-links.
+ 	* lto-wrapper.cc (merge_and_complain): Add
+ 	OPT_fdiagnostics_show_event_links to switch.
+ 	(append_compiler_options): Likewise.
+ 	(append_diag_options): Likewise.
+ 	* opts-common.cc (decode_cmdline_options_to_array): Add
+ 	"-fno-diagnostics-show-event-links" to -fdiagnostics-plain-output.
+ 	* opts.cc (common_handle_option): Add case for
+ 	OPT_fdiagnostics_show_event_links.
+ 	* text-art/theme.cc (ascii_theme::get_cppchar): Handle
+ 	cell_kind::CFG_*.
+ 	(unicode_theme::get_cppchar): Likewise.
+ 	* text-art/theme.h (theme::cell_kind): Add CFG_*.
+ 	* toplev.cc (general_init): Initialize
+ 	global_dc->m_source_printing.show_event_links_p.
+ 	* tree-diagnostic-path.cc: Define INCLUDE_ALGORITHM,
+ 	INCLUDE_MEMORY, and INCLUDE_STRING.  Include
+ 	"diagnostic-label-effects.h".
+ 	(path_label::path_label): Initialize m_effects.
+ 	(path_label::get_effects): New.
+ 	(class path_label::path_label_effects): New.
+ 	(path_label::m_effects): New field.
+ 	(class per_thread_summary): Add "friend struct event_range;".
+ 	(per_thread_summary::per_thread_summary): Initialize m_last_event.
+ 	(per_thread_summary::m_last_event): New field.
+ 	(struct event_range::per_source_line_info): New.
+ 	(event_range::event_range): Make "t" non-const.  Add
+ 	"show_event_links" param and use it to initialize
+ 	m_show_event_links.  Add info for initial event.
+ 	(event_range::get_per_source_line_info): New.
+ 	(event_range::maybe_add_event): Verify compatibility of the new
+ 	label and existing labels with respect to the link-printing code.
+ 	Update per-source-line info when an event is added.
+ 	(event_range::print): Add"effect_info" param and pass to
+ 	diagnostic_show_locus.
+ 	(event_range::m_per_thread_summary): Make non-const.
+ 	(event_range::m_source_line_info_map): New field.
+ 	(event_range::m_show_event_links): New field.
+ 	(path_summary::path_summary): Add "show_event_links" optional
+ 	param, passing it to event_range ctor calls. Update
+ 	pts.m_last_event.
+ 	(thread_event_printer::print_swimlane_for_event_range): Add
+ 	"effect_info" param and pass it to range->print.
+ 	(print_path_summary_as_text): Keep track of the column for any
+ 	out-edges at the end of printing each event_range and use as
+ 	the leading in-edge for the next event_range.
+ 	(default_tree_diagnostic_path_printer): Pass in show_event_links_p
+ 	to path_summary ctor.
+ 	(selftest::path_events_have_column_data_p): New.
+ 	(class selftest::control_flow_test): New.
+ 	(selftest::test_control_flow_1): New.
+ 	(selftest::test_control_flow_2): New.
+ 	(selftest::test_control_flow_3): New.
+ 	(selftest::assert_cfg_edge_path_streq): New.
+ 	(ASSERT_CFG_EDGE_PATH_STREQ): New macro.
+ 	(selftest::test_control_flow_4): New.
+ 	(selftest::test_control_flow_5): New.
+ 	(selftest::test_control_flow_6): New.
+ 	(selftest::control_flow_tests): New.
+ 	(selftest::tree_diagnostic_path_cc_tests): Disable colorization on
+ 	global_dc's printer.  Convert event_pp to a std::unique_ptr. Call
+ 	control_flow_tests via for_each_line_table_case.
+ 	(gen_command_line_string): Likewise.
+ 
+ 2024-05-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR middle-end/112600
+ 	* config/i386/mmx.md (<insn><mode>3): New expander.
+ 	* config/i386/sse.md
+ 	(<sse2_avx2>_<sat_plusminus:insn><mode>3<mask_name>):
+ 	Rename expander to <sat_plusminus:insn><mode>3<mask_name>.
+ 	(<umaxmin:code><mode>3): Update for rename.
+ 	* config/i386/i386-builtin.def: Update for rename.
+ 
+ 2024-05-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR middle-end/115131
+ 	* value-range.cc (prange::intersect): Set VARYING if intersection
+ 	of bitmasks made the range span the entire domain.
+ 	(range_tests_misc): New test.
+ 
+ 2024-05-17  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	PR c++/114480
+ 	* tree-into-ssa.cc (prune_unused_phi_nodes): Add dfs_out entries
+ 	to the 'defs' array in the reverse order.
+ 
+ 2024-05-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR middle-end/115128
+ 	* ipa-cp.cc (ipa_value_range_from_jfunc): Check for undefined_p
+ 	before looking at type.
+ 	(propagate_vr_across_jump_function): Same.
+ 
+ 2024-05-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/115110
+ 	* tree-ssa-alias.cc (view_converted_memref_p): Fix.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* expmed.h (expmed_mult_highpart_optab): Declare.
+ 	* expmed.cc (expmed_mult_highpart_optab): Remove static keyword.
+ 	Do not assume that OP1 is a constant integer.  Fix pasto.
+ 	(expmed_mult_highpart): Pass OP1 narrowed to MODE in all the calls
+ 	to expmed_mult_highpart_optab.
+ 	* optabs-query.cc (can_mult_highpart_p): Use 2 for integer widening
+ 	and shift subsequent values accordingly.
+ 	* optabs.cc (expand_mult_highpart): Call expmed_mult_highpart_optab
+ 	when can_mult_highpart_p returns 2 and adjust to above change.
+ 
+ 2024-05-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-alias.h (pt_solution_includes_const_pool): Declare.
+ 	* tree-ssa-alias.cc (ptrs_compare_unequal): Use
+ 	pt_solution_includes_const_pool.
+ 	* tree-ssa-structalias.cc (pt_solution_includes_const_pool): New.
+ 
+ 2024-05-17  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* common.opt (freg-struct-return): Make it explicitly
+ 	fpcc-struct-return's NegativeAlias.  Copy Optimization...
+ 	(freg-struct-return): ... here.
+ 
+ 2024-05-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/.riscv.cc.swo: Removed.
+ 	* config/riscv/j: Removed.
+ 
+ 2024-05-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md(*vcond_mask_len_popcount_<VB_VLS:mode><P:mode>):
+ 	New pattern of vcond_mask_len_popcount for vector bool mode.
+ 	* config/riscv/autovec.md (vcond_mask_len_<mode>): New pattern of
+ 	vcond_mask_len for vector bool mode.
+ 	(cbranch<mode>4): New pattern for vector bool mode.
+ 	* config/riscv/vector-iterators.md: Add new unspec UNSPEC_SELECT_MASK.
+ 	* config/riscv/vector.md (@pred_popcount<VB:mode><P:mode>): Add VLS mode
+ 	to popcount pattern.
+ 	(@pred_popcount<VB_VLS:mode><P:mode>): Ditto.
+ 
+ 2024-05-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR ipa/113787
+ 	* ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): Do not
+ 	look into TARGET_MEM_REFS with constant opreand 0.
+ 
+ 2024-05-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/13962
+ 	PR tree-optimization/96564
+ 	* tree-ssa-alias.h (pt_solution::const_pool): New flag.
+ 	* tree-ssa-alias.cc (ptrs_compare_unequal): Handle pointer-pointer
+ 	compares.
+ 	(dump_points_to_solution): Dump the const_pool flag, fix guard
+ 	of flag dumping.
+ 	* gimple-pretty-print.cc (pp_points_to_solution): Likewise.
+ 	* tree-ssa-structalias.cc (find_what_var_points_to): Set
+ 	the const_pool flag for STRING.
+ 	(pt_solution_ior_into): Handle the const_pool flag.
+ 	(ipa_escaped_pt): Initialize it.
+ 
+ 2024-05-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (get_constraint_for_1): For
+ 	volatile referenced or decls use ANYTHING.
+ 
+ 2024-05-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-loop.cc (vect_gen_loop_len_mask): New func to gen
+ 	the loop len mask.
+ 	* tree-vect-stmts.cc (vectorizable_early_exit): Invoke the
+ 	vect_gen_loop_len_mask for 1 or more stmt(s).
+ 	* tree-vectorizer.h (vect_gen_loop_len_mask): New func decl
+ 	for vect_gen_loop_len_mask.
+ 
+ 2024-05-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/51492
+ 	PR target/112600
+ 	* tree-vect-patterns.cc (gimple_unsigned_integer_sat_add): New
+ 	func decl generated by match.pd match.
+ 	(vect_recog_sat_add_pattern): New func impl to recog the pattern
+ 	for unsigned SAT_ADD.
+ 
+ 2024-05-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/51492
+ 	PR target/112600
+ 	* internal-fn.cc (commutative_binary_fn_p): Add type IFN_SAT_ADD
+ 	to the return true switch case(s).
+ 	* internal-fn.def (SAT_ADD):  Add new signed optab SAT_ADD.
+ 	* match.pd: Add unsigned SAT_ADD match(es).
+ 	* optabs.def (OPTAB_NL): Remove fixed-point limitation for
+ 	us/ssadd.
+ 	* tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_add): New
+ 	extern func decl generated in match.pd match.
+ 	(match_saturation_arith): New func impl to match the saturation arith.
+ 	(math_opts_dom_walker::after_dom_children): Try match saturation
+ 	arith when IOR expr.
+ 
+ 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	Revert:
+ 	2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	Revert:
+ 	2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
+ 	Change irange to prange.
+ 	* gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
+ 	(fold_using_range::range_of_address): Same.
+ 	* gimple-range-fold.h (range_of_address): Same.
+ 	* gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
+ 	* gimple-range-op.cc (class cfn_strlen): Same.
+ 	* gimple-range-path.cc
+ 	(path_range_query::adjust_for_non_null_uses): Same.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
+ 	* tree-ssa-structalias.cc (find_what_p_points_to): Same.
+ 	* range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
+ 	hybrid entries in table.
+ 	* range-op.cc (range_op_table::range_op_table): Add pointer
+ 	entries for bitwise and/or and min/max.
+ 	* value-range.cc (irange::verify_range): Add assert.
+ 	* value-range.h (irange::varying_compatible_p): Remove check for
+ 	error_mark_node.
+ 	(irange::supports_p): Remove pointer support.
+ 	* ipa-cp.h (ipa_supports_p): Add prange support.
+ 
+ 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/114985
+ 	* gimple-range-op.cc: Remove pointers_handled_p.
+ 	* ipa-cp.cc (ipa_value_range_from_jfunc): Skip range folding if
+ 	operands don't match.
+ 	(propagate_vr_across_jump_function): Same.
+ 	* range-op-mixed.h: Remove pointers_handled_p and tweak
+ 	operand_check_p.
+ 	* range-op-ptr.cc (range_operator::pointers_handled_p): Remove.
+ 	(pointer_plus_operator::pointers_handled_p): Remove.
+ 	(class operator_pointer_diff): Remove pointers_handled_p.
+ 	(operator_pointer_diff::pointers_handled_p): Remove.
+ 	(operator_identity::pointers_handled_p): Remove.
+ 	(operator_cst::pointers_handled_p): Remove.
+ 	(operator_cast::pointers_handled_p): Remove.
+ 	(operator_min::pointers_handled_p): Remove.
+ 	(operator_max::pointers_handled_p): Remove.
+ 	(operator_addr_expr::pointers_handled_p): Remove.
+ 	(operator_bitwise_and::pointers_handled_p): Remove.
+ 	(operator_bitwise_or::pointers_handled_p): Remove.
+ 	(operator_equal::pointers_handled_p): Remove.
+ 	(operator_not_equal::pointers_handled_p): Remove.
+ 	(operator_lt::pointers_handled_p): Remove.
+ 	(operator_le::pointers_handled_p): Remove.
+ 	(operator_gt::pointers_handled_p): Remove.
+ 	(operator_ge::pointers_handled_p): Remove.
+ 	* range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): Remove.
+ 	(range_op_handler::lhs_op1_relation): Remove pointers_handled_p checks.
+ 	(range_op_handler::lhs_op2_relation): Same.
+ 	(range_op_handler::op1_op2_relation): Same.
+ 	* range-op.h: Remove RO_* declarations.
+ 
+ 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/114985
+ 	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Use
+ 	boolean type when folding conditionals.
+ 
+ 2024-05-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/79958
+ 	PR tree-optimization/109087
+ 	PR tree-optimization/100314
+ 	PR tree-optimization/114774
+ 	* tree-ssa-dse.cc (dse_classify_store): New forwarder.
+ 	(dse_classify_store): Add arguments cnt and visited, recurse
+ 	to track multiple paths when we end up with multiple defs.
+ 
+ 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* text-art/theme.cc (ascii_theme::get_cppchar): Add
+ 	cell_kind::INTERPROCEDURAL_*.
+ 	(unicode_theme::get_cppchar): Likewise.
+ 	* text-art/theme.h (theme::cell_kind): Likewise.
+ 	* tree-diagnostic-path.cc:
+ 	(thread_event_printer::print_swimlane_for_event_range): Use the
+ 	above to get characters for indicating interprocedural stack
+ 	depth activity, falling back to ascii.
+ 	(selftest::test_interprocedural_path_1): Test with both ascii
+ 	and unicode themes.
+ 	(selftest::test_interprocedural_path_2): Likewise.
+ 	(selftest::test_recursion): Likewise.
+ 
+ 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* tree-diagnostic-path.cc: Include "text-art/theme.h".
+ 	(path_label::get_text): If the event has
+ 	diagnostic_event::VERB_danger, and the theme enables emojis, then
+ 	add a warning emoji between the event number and the event text.
+ 
+ 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* tree-diagnostic-path.cc (per_thread_summary::interprocedural_p):
+ 	New.
+ 	(thread_event_printer::print_swimlane_for_event_range): Don't
+ 	indent and print the stack depth line if this thread's events are
+ 	purely intraprocedural.
+ 	(selftest::test_intraprocedural_path): Update expected output.
+ 
+ 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path.h: Update leading comment to reflect
+ 	intraprocedural cases.  Fix typo in comment.
+ 	* doc/invoke.texi: Update intraprocedural example.
+ 
+ 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc: Define INCLUDE_VECTOR and include
+ 	"text-art/types.h".
+ 	(line_label::line_label): Drop "policy" argument.  Use
+ 	styled_string::calc_canvas_width when computing m_display_width,
+ 	as this skips SGR codes.
+ 	(layout::print_any_labels): Update for line_label ctor change.
+ 	(selftest::test_one_liner_labels_utf8): Update expected text to
+ 	reflect that the labels can fit on one line if we don't get
+ 	confused by SGR colorization codes.
+ 
+ 2024-05-16  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	(riscv_implied_info): Add zvfbfwma item.
+ 	(riscv_ext_version_table): Ditto.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv.opt:
+ 	(MASK_ZVFBFWMA): New macro.
+ 	(TARGET_ZVFBFWMA): Ditto.
+ 
+ 2024-05-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114514
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
+ 	Set d.one_operand_p to true when TARGET_SSSE3.
+ 
+ 2024-05-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114514
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_vec_shift_qihi_constant): Optimize ashift >> 7 to
+ 	vpcmpgtb.
+ 	(ix86_expand_vecop_qihi_partial): Ditto.
+ 
+ 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc: Add missing hunk from last change.
+ 
+ 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-string.cc (emit_strcmp_scalar_load_and_compare):
+ 	Use adjust_address() to calculate MEM-PLUS pattern.
+ 
+ 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_block_compare): New
+ 	prototype.
+ 	* config/riscv/riscv-string.cc (GEN_EMIT_HELPER2): New helper
+ 	for zero_extendhi.
+ 	(do_load_from_addr): Add support for HI and SI/64 modes.
+ 	(do_load): Add helper for zero-extended loads.
+ 	(emit_memcmp_scalar_load_and_compare): New helper to emit memcmp.
+ 	(emit_memcmp_scalar_result_calculation): Likewise.
+ 	(riscv_expand_block_compare_scalar): Likewise.
+ 	(riscv_expand_block_compare): New RISC-V expander for memory compare.
+ 	* config/riscv/riscv.md (cmpmemsi): New cmpmem expansion.
+ 
+ 2024-05-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	DR 1693
+ 	PR c++/113760
+ 	DR 569
+ 	* doc/invoke.texi: Update -Wextra-semi documentation.
+ 
+ 2024-05-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114902
+ 	PR rtl-optimization/115092
+ 	* combine.cc (simplify_compare_const): Don't optimize
+ 	GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or
+ 	EQ op0 const0_rtx.
+ 
+ 2024-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114589
+ 	* tree-ssa-sink.cc (select_best_block): Remove profile-based
+ 	heuristics.  Instead reject sink locations that sink
+ 	to post-dominators.  Move empty latch check here from
+ 	statement_sink_location.  Also consider early_bb for the
+ 	loop depth check.
+ 	(statement_sink_location): Remove superfluous check.  Remove
+ 	empty latch check.
+ 	(pass_sink_code::execute): Compute/release post-dominators.
+ 
+ 2024-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/111422
+ 	* cfgexpand.cc (add_scope_conflicts_2): Handle PHIs
+ 	by recursing to their arguments.
+ 
+ 2024-05-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_combine_internal<mode>):
+ 	Use UZP1 instead of INS.
+ 	(aarch64_combine_internal_be<mode>): Likewise.
+ 
+ 2024-05-15  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p.
+ 	* alias.h (view_converted_memref_p): Declare.
+ 	* tree-ssa-alias.cc (view_converted_memref_p): Export.
+ 	(ao_compare::compare_ao_refs): Use same_type_for_tbaa.
+ 
+ 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-string.cc (riscv_block_move_straight):
+ 	Hand over up to 2xXLEN bytes to move_by_pieces().
+ 
+ 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-string.cc (riscv_block_move_straight): Add
+ 	parameter align.
+ 	(riscv_adjust_block_mem): Replace parameter length by align.
+ 	(riscv_block_move_loop): Add parameter align.
+ 	(riscv_expand_block_move_scalar): Set alignment properly if the
+ 	target has fast unaligned access.
+ 
+ 2024-05-15  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/114995
+ 	* range-op-ptr.cc (range_operator::pointers_handled_p): Default to true.
+ 
+ 2024-05-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/114301
+ 	* tree-cfg.cc (gimple_can_duplicate_bb_p): Check returns_twice
+ 	only on the last call statement rather than all.
+ 
+ 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc
+ 	(riscv_expand_block_clear_zicboz_zic64b): Handle rv32 correctly.
+ 
+ 2024-05-15  Levy Hsu  <admin@levyhsu.com>
+ 
+ 	PR target/107563
+ 	* config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): New
+ 	subroutine.
+ 	(ix86_expand_vec_perm_const_1): Call expand_vec_perm_psrlw_psllw_por.
+ 
+ 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md: Add pattern for sign extended shift-add
+ 	sequence with a masked input.
+ 
+ 2024-05-14  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR rtl-optimization/115013
+ 	* config/pru/pru.cc (pru_class_likely_spilled_p): Implement
+ 	to mark classes containing one SImode register as likely
+ 	spilled.
+ 	(TARGET_CLASS_LIKELY_SPILLED_P): Define.
+ 
+ 2024-05-14  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.h: New macros to check for sum of two S12
+ 	range.
+ 	* config/riscv/constraints.md: New constraint.
+ 	* config/riscv/predicates.md: New Predicate.
+ 	* config/riscv/riscv.md: New splitter.
+ 	* config/riscv/riscv.cc (riscv_reg_frame_related): New helper.
+ 	* config/riscv/riscv-protos.h: New helper prototype.
+ 
+ 2024-05-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/99954
+ 	* tree-data-ref.cc (dr_may_alias_p): For bases that are
+ 	not completely analyzed fall back to TBAA and points-to.
+ 	* tree-loop-distribution.cc
+ 	(loop_distribution::classify_builtin_ldst): When there
+ 	is no dependence again classify as memcpy.
+ 	* tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Verify
+ 	the pointer is an SSA name.
+ 
+ 2024-05-14  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_block_clear): New prototype.
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_clear_zicboz_zic64b):
+ 	New function to expand a block-clear with cbo.zero.
+ 	(riscv_expand_block_clear): New RISC-V block-clear expansion function.
+ 	* config/riscv/riscv.md (setmem<mode>): New setmem expansion.
+ 
+ 2024-05-14  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* expr.cc (clear_by_pieces): Remove static from clear_by_pieces.
+ 	* expr.h (clear_by_pieces): Add prototype for clear_by_pieces.
+ 
+ 2024-05-14  Tom de Vries  <tdevries@suse.de>
+ 
+ 	PR debug/115066
+ 	* dwarf2out.cc (output_macinfo_op): Fix DW_MACRO_define_strx/strp
+ 	choice for v4 .debug_macro.dwo.  Add asserts to check that choice.
+ 
+ 2024-05-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR ipa/113291
+ 	* ipa-inline.cc (enum can_inline_edge_by_limits_flags): New enum.
+ 	(can_inline_edge_by_limits_p): Take flags instead of multiple bools; add flag
+ 	for forcing inlinie limits.
+ 	(can_early_inline_edge_p): Update.
+ 	(want_inline_self_recursive_call_p): Update; use FORCE_LIMITS mode.
+ 	(check_callers): Update.
+ 	(update_caller_keys): Update.
+ 	(update_callee_keys): Update.
+ 	(recursive_inlining): Update.
+ 	(add_new_edges_to_heap): Update.
+ 	(speculation_useful_p): Update.
+ 	(inline_small_functions): Clear DECL_DISREGARD_INLINE_LIMITS on self recursion.
+ 	(flatten_function): Update.
+ 	(inline_to_all_callers_1): Update.
+ 
+ 2024-05-14  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.cc (TARGET_OVERLAP_OP_BY_PIECES_P): Define.
+ 
+ 2024-05-14  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2024-05-13  Sergei Lewis  <slewis@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move,
+ 	if and only if we know the entire operation can be performed using one vector
+ 	load followed by one vector store
+ 
+ 2024-05-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(validate_instance_type_required_extensions): Remove the
+ 	operator from the trailing and put it to new line.
+ 
+ 2024-05-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md: Add new splitter for AND with
+ 	a constant that masks off bits 32..63 and needs synthesis.
+ 
+ 2024-05-13  Sergei Lewis  <slewis@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move,
+ 	if and only if we know the entire operation can be performed using one vector
+ 	load followed by one vector store
+ 
+ 2024-05-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/115013
+ 	* lra-constraints.cc (process_alt_operands): Update all_used_nregs
+ 	only for winreg.  Ignore reg starvation for small reg classes.
+ 
+ 2024-05-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114988
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(validate_instance_type_required_extensions): New func impl to
+ 	validate the intrinisc func type ops.
+ 	(expand_builtin): Validate instance type before expand.
+ 
+ 2024-05-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bextseqzdisi): New patterns.
+ 	* config/riscv/.riscv.cc.swo: New file.
+ 	* config/riscv/j: New file.
+ 
+ 2024-05-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/60276
+ 	* tree-vect-stmts.cc (vectorizable_load): Do not exempt
+ 	pure_slp grouped loads from the STMT_VINFO_MIN_NEG_DIST
+ 	restriction.
+ 
+ 2024-05-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp_instance): Remove
+ 	slp_inst_kind_reduc_group handling.
+ 	(vect_analyze_slp): Add the meat here.
+ 
+ 2024-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113982
+ 	* tree-ssa-math-opts.cc (arith_overflow_check_p): Also return 1
+ 	for RSHIFT_EXPR by precision of maxval if shift result is only
+ 	used in a cast or comparison against zero.
+ 	(match_arith_overflow): Handle the RSHIFT_EXPR use case.
+ 
+ 2024-05-13  YunQiang Su  <syq@debian.org>
+ 
+ 	Revert:
+ 	2024-05-09  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/constraints.md: Add new constraint 'w'.
+ 
+ 2024-05-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Kyrill Tkachov  <kyrylo.tkachov@foss.arm.com>
+ 
+ 	* config/arm/arm.md (*arm_zeroextractsi2_8_8, *arm_signextractsi2_8_8,
+ 	*arm_zeroextractsi2_8_16, *arm_signextractsi2_8_16,
+ 	*arm_zeroextractsi2_16_8, *arm_signextractsi2_16_8): New.
+ 
+ 2024-05-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Use slli.uw more.
+ 
+ 2024-05-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Fix thinko in testing
+ 	when lui can be used to set several bits in bseti path.
+ 
+ 2024-05-12  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* config/mingw/cygming.opt.urls: Regenerate.
+ 	* config/mingw/mingw.opt.urls: Likewise.
+ 
+ 2024-05-11  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (DEBUG_S_SYMBOLS): Define.
+ 	(S_COMPILE3, CV_CFL_80386, CV_CFL_X64): Likewise.
+ 	(CV_CFL_C, CV_CFL_CXX): Likewise.
+ 	(SYMBOL_START_LABEL, SYMBOL_END_LABEL): Likewise.
+ 	(start_processor, language_constant): New functions.
+ 	(write_compile3_symbol, write_codeview_symbols): Likewise.
+ 	(codeview_debug_finish): Call write_codeview_symbols.
+ 
+ 2024-05-11  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (DEBUG_S_LINES, LINE_LABEL): Define.
+ 	(END_FUNC_LABEL): Likewise.
+ 	(struct codeview_line, codeview_line_block): New structures.
+ 	(codeview_function): Likewise.
+ 	(line_label_num, func_label_num, funcs, last_func): New variables.
+ 	(last_filename, last_file_id): Likewise.
+ 	(codeview_source_line, write_line_numbers): New functions.
+ 	(codeview_switch_text_section, codeview_end_epilogue): Likewise.
+ 	(codeview_debug_finish): Call write_line_numbers.
+ 	* dwarf2codeview.h (codeview_source_line): Prototype.
+ 	(codeview_switch_text_secction, codeview_end_epilogue): Likewise.
+ 	* dwarf2out.cc (dwarf2_end_epilogue): Add codeview support.
+ 	(dwarf2out_switch_text_section): Likewise.
+ 	(dwarf2out_source_line): Likewise.
+ 	* opts.cc (finish_options): Handle codeview debugging symbols.
+ 
+ 2024-05-11  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (DEBUG_S_STRINGTABLE): Define.
+ 	(DEBUG_S_FILECHKSMS, CHKSUM_TYPE_MD5, HASH_SIZE): Likewise.
+ 	(codeview_string, codeview_source_file): New structures.
+ 	(struct string_hasher): New class for codeview_string hashing.
+ 	(files, last_file, num_files, string_offset): New variables.
+ 	(strings_hstab, strings, last_string): Likewise.
+ 	(add_string, codevie_start_source_file): New functions.
+ 	(write_strings_tabe, write_soruce_files): Likewise.
+ 	(codeview_debug_finish): Call new functions.
+ 	* dwarf2codeview.h (codeview_start_source_file): Prototype.
+ 	* dwarf2out.cc (dwarf2out_start_source_file): Handle codeview.
+ 
+ 2024-05-11  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* Makefile.in (OBJS): Add dwarf2codeview.o.
+ 	(GTFILES): Add dwarf2codeview.cc
+ 	* config/i386/cygming.h (CODEVIEW_DEBUGGING_INFO): Define.
+ 	* dwarf2codeview.cc: New file.
+ 	* dwarf2codeview.h: New file.
+ 	* dwarf2out.cc: Include dwarf2codeview.h.
+ 	(dwarf2out_finish): Call codeview_debug_finish as needed.
+ 	* flag-types.h (DINFO_TYPE_CODEVIEW): Add enum member.
+ 	(CODEVIEW_DEBUG): Define.
+ 	* flags.h (codeview_debuginfo_p): Proottype.
+ 	* opts.cc (debug_type_names): Add codeview.
+ 	(debug_type_masks): Add CODEVIEW_DEBUG.
+ 	(df_set_names): Add codeview.
+ 	(codeview_debuginfo_p): New function.
+ 	(dwarf_based_debuginfo_p): Add CODEVIEW clause.
+ 	(set_debug_level): Handle CODEVIEW_DEBUG.
+ 	* toplev.cc (process_options): Handle codeview.
+ 
+ 2024-05-11  dzhao.ampere  <di.zhao@amperecomputing.com>
+ 
+ 	PR tree-optimization/114760
+ 	* tree-ssa-loop-niter.cc (is_lshift_by_1): New function
+ 	to check if STMT is equivalent to x << 1.
+ 	(is_rshift_by_1): New function to check if STMT is
+ 	equivalent to x >> 1.
+ 	(number_of_iterations_cltz): Enhance the identification
+ 	of logical shift by one.
+ 	(number_of_iterations_cltz_complement): Enhance the
+ 	identification of logical shift by one.
+ 
+ 2024-05-11  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-ptr.cc (range_operator::fold_range): Return false.
+ 
+ 2024-05-11  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): New
+ 	(range_op_handler::fold_range): Use it.
+ 	(range_op_handler::op1_range): Same.
+ 	(range_op_handler::op2_range): Same.
+ 	(range_op_handler::lhs_op1_relation): Same.
+ 	(range_op_handler::lhs_op2_relation): Same.
+ 	(range_op_handler::op1_op2_relation): Same.
+ 
+ 2024-05-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Recognize cases where
+ 	we can use shNadd to improve constant synthesis.
+ 	(riscv_move_integer): Handle code generation for shNadd.
+ 
+ 2024-05-10  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
+ 	Don't attempt ix86_expand_vec_shift_qihi_constant on SSE4.1.
+ 
+ 2024-05-10  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/predicates.md (pru_mulsrc0_operand): Use register
+ 	class instead of register number for the check.
+ 	(pru_mulsrc1_operand): Ditto.
+ 
+ 2024-05-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/114942
+ 	* lra-constraints.cc (struct input_reload): Add new member early_clobber_p.
+ 	(get_reload_reg): Add new arg early_clobber_p, don't reuse input
+ 	reload with true early_clobber_p member value, use the arg for new
+ 	element of curr_insn_input_reloads.
+ 	(match_reload): Assign false to early_clobber_p member.
+ 	(process_addr_reg, simplify_operand_subreg, curr_insn_transform):
+ 	Adjust get_reload_reg calls.
+ 
+ 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/115026
+ 	* value-range.cc (prange::update_bitmask): Use operand bitmask.
+ 
+ 2024-05-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114998
+ 	* tree-loop-distribution.cc (free_rdg): Take loop argument.
+ 	Reset UIDs of stmts still in the IL rather than all stmts
+ 	referenced from the RDG.
+ 	(loop_distribution::build_rdg): Pass loop to free_rdg.
+ 	(loop_distribution::distribute_loop): Likewise.
+ 	(loop_distribution::transform_reduction_loop): Likewise.
+ 
+ 2024-05-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_pattern_recog_1): Do not
+ 	remove reductions involving patterns.
+ 	* tree-vect-loop.cc (vectorizable_reduction): Reject SLP
+ 	reduction groups with multiple lane-reducing reductions.
+ 	* tree-vect-slp.cc (vect_analyze_slp_instance): When discovering
+ 	SLP reduction groups avoid including lane-reducing ones.
+ 
+ 2024-05-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_print_operand_address): Include
+ 	surrounding parenthesis around mem operands in pseudoc asm
+ 	dialect.
+ 	* config/bpf/bpf.md (*mov<MM:mode>): Adapt accordingly.
+ 	(zero_extendhidi2): Likewise.
+ 	(zero_extendqidi2): Likewise.
+ 	(*extendsidi2): Likewise.
+ 	(*extendsidi2): Likewise.
+ 	(extendhidi2): Likewise.
+ 	(extendqidi2): Likewise.
+ 	(extendhisi2): Likewise.
+ 	* config/bpf/atomic.md (atomic_add<AMO:mode>): Likewise.
+ 	(atomic_and<AMO:mode>): Likewise.
+ 	(atomic_or<AMO:mode>): Likewise.
+ 	(atomic_xor<AMO:mode>): Likewise.
+ 	(atomic_fetch_add<AMO:mode>): Likewise.
+ 	(atomic_fetch_and<AMO:mode>): Likewise.
+ 	(atomic_fetch_or<AMO:mode>): Likewise.
+ 	(atomic_fetch_xor<AMO:mode>): Likewise.
+ 
+ 2024-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114968
+ 	* target.def (use_atexit_for_cxa_atexit): Remove spurious space
+ 	from comment.
+ 	(adjust_cdtor_callabi_fntype): New cxx target hook.
+ 	* targhooks.h (default_cxx_adjust_cdtor_callabi_fntype): Declare.
+ 	* targhooks.cc (default_cxx_adjust_cdtor_callabi_fntype): New
+ 	function.
+ 	* doc/tm.texi.in (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Add.
+ 	* doc/tm.texi: Regenerate.
+ 	* config/i386/i386.cc (ix86_cxx_adjust_cdtor_callabi_fntype): New
+ 	function.
+ 	(TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Redefine.
+ 
+ 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/115009
+ 	* value-range-storage.cc (prange_storage::alloc): Do not assume
+ 	all pointers are the same size.
+ 	(prange_storage::prange_storage): Same.
+ 	(prange_storage::fits_p): Same.
+ 
+ 2024-05-10  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc: Fix typos in comments.
+ 	(get_all_predecessors): Ditto.
+ 	(pre_vsetvl::m_unknow_info): Rename to...
+ 	(pre_vsetvl::m_unknown_info): this.
+ 	(pre_vsetvl::compute_vsetvl_def_data): Rename m_unknow_info to
+ 	m_unknown_info.
+ 	(pre_vsetvl::cleaup): Rename to...
+ 	(pre_vsetvl::cleanup): this.
+ 	(pre_vsetvl::compute_vsetvl_def_data): Fix typos.
+ 	(pass_vsetvl::lazy_vsetvl): Update function name and fix typos.
+ 	* config/riscv/riscv.cc: Fix typos in comments.
+ 	(struct machine_function): Fix typo in comments.
+ 	(riscv_valid_lo_sum_p): Ditto.
+ 	(riscv_force_address): Ditto.
+ 	(riscv_immediate_operand_p): Ditto.
+ 	(riscv_in_small_data_p): Ditto.
+ 	(riscv_first_stack_step): Ditto.
+ 	(riscv_expand_prologue): Ditto.
+ 	(riscv_convert_vector_chunks): Ditto.
+ 	(riscv_override_options_internal): Ditto.
+ 	(get_common_costs): Ditto.
+ 
+ 2024-05-10  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR driver/114980
+ 	* opts-common.cc (prune_options): Move -fdiagnostics-urls=
+ 	early like -fdiagnostics-color=.
+ 
+ 2024-05-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md: Add splitter for shadd feeding another
+ 	add instruction.
+ 
+ 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	Revert:
+ 	2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
+ 	Change irange to prange.
+ 	* gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
+ 	(fold_using_range::range_of_address): Same.
+ 	* gimple-range-fold.h (range_of_address): Same.
+ 	* gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
+ 	* gimple-range-op.cc (class cfn_strlen): Same.
+ 	* gimple-range-path.cc
+ 	(path_range_query::adjust_for_non_null_uses): Same.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
+ 	* tree-ssa-structalias.cc (find_what_p_points_to): Same.
+ 	* range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
+ 	hybrid entries in table.
+ 	* range-op.cc (range_op_table::range_op_table): Add pointer
+ 	entries for bitwise and/or and min/max.
+ 	* value-range.cc (irange::verify_range): Add assert.
+ 	* value-range.h (irange::varying_compatible_p): Remove check for
+ 	error_mark_node.
+ 	(irange::supports_p): Remove pointer support.
+ 	* ipa-cp.h (ipa_supports_p): Add prange support.
+ 
+ 2024-05-09  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* simplify-rtx.cc (simplify_const_binary_operation): Constant
+ 	fold binary operations where the LHS is CONST_VECTOR and the
+ 	RHS is CONST_INT (or CONST_DOUBLE) such as vector shifts.
+ 
+ 2024-05-09  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-sra.cc (sra_modify_assign): Remove the original statement
+ 	also when dealing with a store to a fully covered aggregate from a
+ 	non-candidate.
+ 
+ 2024-05-09  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/constraints.md: Add new constraint 'w'.
+ 
+ 2024-05-09  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/84508
+ 	* config/i386/emmintrin.h
+ 	(_mm_load_sd): Remove alignment requirement.
+ 	(_mm_store_sd): Ditto.
+ 	(_mm_loadh_pd): Ditto.
+ 	(_mm_loadl_pd): Ditto.
+ 	(_mm_storel_pd): Add alignment requirement.
+ 	* config/i386/xmmintrin.h
+ 	(_mm_loadh_pi): Remove alignment requirement.
+ 	(_mm_loadl_pi): Ditto.
+ 	(_mm_load_ss): Ditto.
+ 	(_mm_store_ss): Ditto.
+ 
+ 2024-05-09  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/114912
+ 	* value-range.h (class Value_Range): Use a union.
+ 
+ 2024-05-09  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (range_op_handler::discriminator_fail): Reword error
+ 	message.
+ 
+ 2024-05-09  konglin1  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_hardreg_mov_ok): Relax
+ 	hard reg mov restriction when lra in progress.
+ 
+ 2024-05-08  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Expand movbf
+ 	with Nan-boxing value.
+ 	* config/riscv/riscv.md (*movbf_softfloat_boxing): New pattern.
+ 
+ 2024-05-08  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Fix incorrect
+ 	if-then-else nesting of Zbs code.
+ 
+ 2024-05-08  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/114810
+ 	* lra-constraints.cc (process_alt_operands): Calculate union reg
+ 	class for the alternative, peak matched regs and required reload
+ 	regs.  Recognize alternatives with lack of available registers and
+ 	make them costly.  Add debug print about this case.
+ 
+ 2024-05-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/112392
+ 	* match.pd (`x CMP nonnegative ? x : ABS<x>`): New pattern;
+ 	where CMP is ==, > and >=.
+ 	(`x CMP nonnegative@y ? y : ABS<x>`): New pattern.
+ 
+ 2024-05-08  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	PR tree-optimization/81953
+ 	* tree-ssa-sink.cc (statement_sink_location):Sink statements at
+ 	the begining of the basic block after labels.
+ 
+ 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/iterators.md (ashiftrt): New code attribute
+ 	'extract_shift' and adding extractions to optab.
+ 	* config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): Rename to...
+ 	(*<any_extract:optab><GPR:mode>3):...this and add support for
+ 	sign-extensions.
+ 
+ 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/111501
+ 	* config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): New
+ 	pattern for zero-extraction.
+ 
+ 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/iterators.md (sraiw): New code iterator 'any_extract'.
+ 	New code attribute 'extract_sidi_shift'.
+ 	* config/riscv/riscv.md (*lshrsi3_zero_extend_2): Rename to...
+ 	(*lshrsi3_extend_2):...this and add support for sign-extensions.
+ 
+ 2024-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction): Convert
+ 	initial value to the vector component type.
+ 
+ 2024-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ 	Properly guard DR_GROUP_SIZE access with STMT_VINFO_GROUPED_ACCESS.
+ 
+ 2024-05-08  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/114936
+ 	* config/aarch64/aarch64-ldp-fusion.cc (combine_reg_notes):
+ 	Ensure insn iN has its REG_FRAME_RELATED_EXPR (if any) stored in
+ 	FR_EXPR[N-1], thus matching the correspondence expected by the
+ 	copy_rtx calls.
+ 
+ 2024-05-08  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* tree-ssa-loop-prefetch.cc (determine_unroll_factor): Honour
+ 	-fno-unroll-loops.
+ 
+ 2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114975
+ 	* config/avr/avr.md: Add combine pattern for
+ 	8-bit parity detection.
+ 
+ 2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114975
+ 	* config/avr/avr.md: Add combine pattern for
+ 	8-bit popcount detection.
+ 
+ 2024-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip
+ 	pruning when the nearest common dominator is the successor
+ 	of ENTRY_BLOCK.  Do not copy IDF but prune it directly.
+ 
+ 2024-05-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114965
+ 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Don't try to
+ 	optimize away exp - lowi subtraction from shift count unless entry
+ 	test is emitted or unless r.upper_bound () is smaller than prec.
+ 
+ 2024-05-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* expmed.h (choose_multiplier): Tweak description and remove last
+ 	parameter.
+ 	* expmed.cc (choose_multiplier): Likewise.  Add assertion for the
+ 	third parameter and adds details to various comments.
+ 	(invert_mod2n): Tweak description and add assertion for the first
+ 	parameter.
+ 	(expand_divmod): Adjust calls to choose_multiplier.
+ 	* tree-vect-generic.cc (expand_vector_divmod): Likewise.
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Likewise.
+ 
+ 2024-05-08  konglin1  <lingling.kong@intel.com>
+ 
+ 	PR target/109549
+ 	* config/i386/i386.cc (ix86_rtx_costs): The XEXP (x, 0) for cmov
+ 	is an operator do not need to compute cost.
+ 
+ 2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
+ 	Change irange to prange.
+ 	* gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
+ 	(fold_using_range::range_of_address): Same.
+ 	* gimple-range-fold.h (range_of_address): Same.
+ 	* gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
+ 	* gimple-range-op.cc (class cfn_strlen): Same.
+ 	* gimple-range-path.cc
+ 	(path_range_query::adjust_for_non_null_uses): Same.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
+ 	* tree-ssa-structalias.cc (find_what_p_points_to): Same.
+ 	* range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
+ 	hybrid entries in table.
+ 	* range-op.cc (range_op_table::range_op_table): Add pointer
+ 	entries for bitwise and/or and min/max.
+ 	* value-range.cc (irange::verify_range): Add assert.
+ 	* value-range.h (irange::varying_compatible_p): Remove check for
+ 	error_mark_node.
+ 	(irange::supports_p): Remove pointer support.
+ 	* ipa-cp.h (ipa_supports_p): Add prange support.
+ 
+ 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/19661
+ 	* tree-ssa-dce.cc (is_cxa_atexit): New function.
+ 	(is_removable_cxa_atexit_call): New function.
+ 	(mark_stmt_if_obviously_necessary): Don't mark removable
+ 	cxa_at_exit calls.
+ 	(mark_all_reaching_defs_necessary_1): Likewise.
+ 	(propagate_necessity): Likewise.
+ 
+ 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/114894
+ 	* match.pd (`a != 0 ? a / b : 0`): New pattern.
+ 	(`a != 0 ? a * b : 0`): New pattern.
+ 	(`a != 0 ? a & b : 0`): New pattern.
+ 
+ 2024-05-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (generic_ooo_tune_info): Turn on
+ 	overlap_op_by_pieces.
+ 
+ 2024-05-07  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add new
+ 	"overlap_op_by_pieces" field.
+ 	(rocket_tune_info, sifive_7_tune_info): Set it.
+ 	(sifive_p400_tune_info, sifive_p600_tune_info): Likewise.
+ 	(thead_c906_tune_info, xiangshan_nanhu_tune_info): Likewise.
+ 	(generic_ooo_tune_info, optimize_size_tune_info): Likewise.
+ 	(riscv_overlap_op_by_pieces): New function.
+ 	(TARGET_OVERLAP_OP_BY_PIECES_P): define.
+ 
+ 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114907
+ 	* expr.cc (convert_mode_scalar): Use trunc_optab rather than
+ 	sext_optab for HF->BF conversions.
+ 	* optabs-libfuncs.cc (gen_trunc_conv_libfunc): Likewise.
+ 
+ 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/114956
+ 	* tree-inline.cc: Include asan.h.
+ 	(copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan
+ 	sanitization disabled.
+ 
+ 2024-05-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc (riscv_expand_strcmp): Do not inline
+ 	strncmp with zero size.
+ 	(emit_strcmp_scalar_compare_subword): Adjust rotation for rv32 vs rv64.
+ 	* config/riscv/riscv.opt (var_inline_strcmp): Enable by default.
+ 	(vriscv_inline_strncmp, riscv_inline_strlen): Likewise.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Build and add objects for Cygwin and MinGW. Add Cygwin
+ 	and MinGW options to the target.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config/i386/mingw-w64.opt.urls: Rename options' name and
+ 	regenerate option URLs.
+ 	* config/lynx.opt.urls: Likewise.
+ 	* config/mingw/cygming.opt.urls: Likewise.
+ 	* config/mingw/mingw.opt.urls: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config/aarch64/aarch64.h (struct seh_frame_state): Declare SEH
+ 	structure in machine_function.
+ 	(GTY): Add SEH field.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Add Cygwin and MinGW difinitions.
+ 	* config/aarch64/aarch64-protos.h
+ 	(mingw_pe_maybe_record_exported_symbol): Declare functions
+ 	which are used in Cygwin and MinGW environment.
+ 	(mingw_pe_section_type_flags): Likewise.
+ 	(mingw_pe_unique_section): Likewise.
+ 	(mingw_pe_encode_section_info): Likewise.
+ 	* config/aarch64/cygming.h: New file.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Define TARGET_AARCH64_MS_ABI.
+ 	* config/mingw/mingw-stdint.h (INTPTR_TYPE): Use
+ 	TARGET_AARCH64_MS_ABI to adjust MinGW headers for
+ 	AArch64 MS ABI.
+ 	(UINTPTR_TYPE): Likewise.
+ 	(defined): Likewise.
+ 	* config/mingw/mingw32.h (DEFAULT_ABI): Likewise.
+ 	(defined): Likewise.
+ 	* config/mingw/winnt.cc (defined): Use TARGET_ARM64_MS_ABI to
+ 	exclude ix86_get_callcvt.
+ 	(i386_pe_maybe_mangle_decl_assembler_name): Likewise.
+ 	(i386_pe_mangle_decl_assembler_name): Likewise.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO):
+ 	Rename functions in mingw folder which will be reused for
+ 	aarch64.
+ 	(TARGET_ASM_UNIQUE_SECTION): Likewise.
+ 	(TARGET_ASM_NAMED_SECTION): Likewise.
+ 	(TARGET_SECTION_TYPE_FLAGS): Likewise.
+ 	(ASM_DECLARE_COLD_FUNCTION_NAME): Likewise.
+ 	(ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
+ 	* config/i386/i386-protos.h (i386_pe_unique_section):
+ 	Rename into ...
+ 	(mingw_pe_unique_section): ... this.
+ 	(i386_pe_declare_function_type): Rename into ...
+ 	(mingw_pe_declare_function_type): ... this.
+ 	(i386_pe_encode_section_info): Rename into ...
+ 	(mingw_pe_encode_section_info): ... this.
+ 	(i386_pe_maybe_record_exported_symbol): Rename into ...
+ 	(mingw_pe_maybe_record_exported_symbol): ... this.
+ 	(i386_pe_section_type_flags): Rename into ...
+ 	(mingw_pe_section_type_flags): ... this.
+ 	(i386_pe_asm_named_section): Rename into ...
+ 	(mingw_pe_asm_named_section): ... this.
+ 	* config/mingw/winnt.cc (i386_pe_encode_section_info):
+ 	Rename into ...
+ 	(mingw_pe_encode_section_info): ... this.
+ 	(i386_pe_unique_section): Rename into ...
+ 	(mingw_pe_unique_section): ... this.
+ 	(i386_pe_section_type_flags): Rename into ...
+ 	(mingw_pe_section_type_flags): ... this.
+ 	(i386_pe_asm_named_section): Rename into ...
+ 	(mingw_pe_asm_named_section): ... this.
+ 	(i386_pe_asm_output_aligned_decl_common): Likewise.
+ 	(i386_pe_declare_function_type): Rename into ...
+ 	(mingw_pe_declare_function_type): ... this.
+ 	(i386_pe_maybe_record_exported_symbol): Rename into ...
+ 	(mingw_pe_maybe_record_exported_symbol): ... this.
+ 	(i386_pe_start_function): Likewise.
+ 	* varasm.cc (switch_to_comdat_section): Likewise.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Adjust targets after moving MinGW related files
+ 	from i386 to mingw folder.
+ 	* config/i386/cygming.opt: Move to...
+ 	* config/mingw/cygming.opt: ...here.
+ 	* config/i386/cygming.opt.urls: Move to...
+ 	* config/mingw/cygming.opt.urls: ...here.
+ 	* config/i386/cygwin-d.cc: Move to...
+ 	* config/mingw/cygwin-d.cc: ...here.
+ 	* config/i386/mingw-stdint.h: Move to...
+ 	* config/mingw/mingw-stdint.h: ...here.
+ 	* config/i386/mingw.opt: Move to...
+ 	* config/mingw/mingw.opt: ...here.
+ 	* config/i386/mingw.opt.urls: Move to...
+ 	* config/mingw/mingw.opt.urls: ...here.
+ 	* config/i386/mingw32.h: Move to...
+ 	* config/mingw/mingw32.h: ...here.
+ 	* config/i386/msformat-c.cc: Move to...
+ 	* config/mingw/msformat-c.cc: ...here.
+ 	* config/i386/t-cygming: Move to...
+ 	* config/mingw/t-cygming: ...here and updated.
+ 	* config/i386/winnt-cxx.cc: Move to...
+ 	* config/mingw/winnt-cxx.cc: ...here.
+ 	* config/i386/winnt-d.cc: Move to...
+ 	* config/mingw/winnt-d.cc: ...here.
+ 	* config/i386/winnt-stubs.cc: Move to...
+ 	* config/mingw/winnt-stubs.cc: ...here.
+ 	* config/i386/winnt.cc: Move to...
+ 	* config/mingw/winnt.cc: ...here.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Add COFF format support definitions.
+ 	* config/aarch64/aarch64-coff.h: New file.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Define TARGET_AARCH64_MS_ABI when
+ 	AArch64 MS ABI is used.
+ 	* config/aarch64/aarch64.h (FIXED_X18): Adjust
+ 	FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS and
+ 	STATIC_CHAIN_REGNUM for AArch64 MS ABI.
+ 	(CALL_USED_X18): Likewise.
+ 	(FIXED_REGISTERS): Likewise.
+ 	* config/aarch64/aarch64-abi-ms.h: New file.
+ 
+ 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
+ 
+ 	* config.gcc: Add aarch64-w64-mingw32 target.
+ 
+ 2024-05-07  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/114674
+ 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
+ 	Use replace_equiv_address_nv on a change of base instead of
+ 	adjust_address_nv on the other access.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-into-ssa.cc (insert_updated_phi_nodes_for): Fix block
+ 	index check.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-live.cc (init_var_map): Pre-allocate vec_bbs vector
+ 	to the correct size and use quick_push.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/27800
+ 	* gimplify.cc (gimplify_modify_expr_rhs): For a COND_EXPR
+ 	avoid a temporary from gimplify_cond_expr when the LHS is
+ 	a register by pushing the assignment into the COND_EXPR arms.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimplify.cc (gimplify_hasher::equal): Remove redundant
+ 	checking.
+ 
+ 2024-05-07  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR tree-optimization/110490
+ 	* tree-scalar-evolution.cc (expression_expensive_p): Also
+ 	consider mode widening for popcount, clz, and ctz.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* cfgexpand.cc (stack_var::representative): Use 'unsigned'
+ 	for stack var indexes instead of 'size_t'.
+ 	(stack_var::next): Likewise.
+ 	(EOC): Likewise.
+ 	(stack_vars_alloc): Likewise.
+ 	(stack_vars_num): Likewise.
+ 	(decl_to_stack_part): Likewise.
+ 	(stack_vars_sorted): Likewise.
+ 	(add_stack_var): Likewise.
+ 	(add_stack_var_conflict): Likewise.
+ 	(stack_var_conflict_p): Likewise.
+ 	(visit_op): Likewise.
+ 	(visit_conflict): Likewise.
+ 	(add_scope_conflicts_1): Likewise.
+ 	(stack_var_cmp): Likewise.
+ 	(part_hashmap): Likewise.
+ 	(update_alias_info_with_stack_vars): Likewise.
+ 	(union_stack_vars): Likewise.
+ 	(partition_stack_vars): Likewise.
+ 	(dump_stack_var_partition): Likewise.
+ 	(expand_stack_vars): Likewise.
+ 	(account_stack_vars): Likewise.
+ 	(stack_protect_decl_phase_1): Likewise.
+ 	(stack_protect_decl_phase_2): Likewise.
+ 	(asan_decl_phase_3): Likewise.
+ 	(init_vars_expansion): Likewise.
+ 	(estimated_stack_frame_size): Likewise.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114931
+ 	* tree.cc (type_hash_canon_hash): Hash TYPE_STRUCTURAL_EQUALITY_P.
+ 	(type_cache_hasher::equal): Compare TYPE_STRUCTURAL_EQUALITY_P.
+ 	(build_array_type_1): Set TYPE_STRUCTURAL_EQUALITY_P before
+ 	probing with type_hash_canon.
+ 	(build_function_type): Likewise.
+ 	(build_method_type_directly): Likewise.
+ 	(build_offset_type): Likewise.
+ 	(build_complex_type): Likewise.
+ 	* attribs.cc (build_type_attribute_qual_variant): Likewise.
+ 
+ 2024-05-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Use ipa_supports_p.
+ 	(ipa_value_range_from_jfunc): Change Value_Range type.
+ 	(propagate_vr_across_jump_function): Same.
+ 	* ipa-cp.h (ipa_supports_p): New.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Change Value_Range type.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Use ipa_supports_p.
+ 	(ipcp_get_parm_bits): Same.
+ 
+ 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list.
+ 	<*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally.
+ 	* configure.ac (AX_LIB_SOCKET_NSL): Don't call.
+ 	(NETLIBS): Remove.
+ 	(gcc_cv_ld_aligned_shf_merge): Remove.
+ 	(hidden_linkonce) <i?86-*-solaris2* | x86_64-*-solaris2*>: Remove.
+ 	(gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes.
+ 	* Makefile.in (NETLIBS): Remove.
+ 	* configure, config.in, aclocal.m4: Regenerate.
+ 	* config/sol2.h: Don't check HAVE_SOLARIS_CRTS.
+ 	(STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case.
+ 	[USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard.
+ 	* config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard.
+ 	* varasm.cc (mergeable_string_section): Remove
+ 	HAVE_LD_ALIGNED_SHF_MERGE handling.
+ 	(mergeable_constant_section): Likewise.
+ 	* doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris
+ 	11.4 only.
+ 	(Specific, *-*-solaris2*): Document Solaris 11.3 removal.  Remove
+ 	11.3 references and caveats.  Update for 11.4.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2024-04-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR rtl-optimization/101523
+ 	* combine.cc (try_combine): Don't do a 2-insn combination if
+ 	it does not in fact change I2.
+ 
+ 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/97263
+ 	* doc/invoke.texi(fmath-errno): Document it is turned on
+ 	with -Ofast.
+ 	(funsafe-math-optimizations): Likewise.
+ 	(ffinite-math-only): Likewise.
+ 	(fno-trapping-math): Likewise and use less strong language.
+ 
+ 2024-05-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (usdot_prodv*qi): Extend to VI1_AVX512
+ 	with vpmaddwd when avxvnni/avx512vnni is not available.
+ 
+ 2024-05-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/113079
+ 	* config/i386/mmx.md (usdot_prodv8qi): New expander.
+ 	(sdot_prodv8qi): Ditto.
+ 	(udot_prodv8qi): Ditto.
+ 	(usdot_prodv4hi): Ditto.
+ 	(udot_prodv4hi): Ditto.
+ 	(sdot_prodv4hi): Ditto.
+ 
+ 2024-05-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/113090
+ 	* config/i386/i386-expand.cc
+ 	(expand_vec_perm_punpckldq_pshuf): New function.
+ 	(ix86_expand_vec_perm_const_1): Try
+ 	expand_vec_perm_punpckldq_pshuf for sequence of 2
+ 	instructions.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru-passes.cc (class pass_pru_minrt_check): New
+ 	pass.
+ 	(pass_pru_minrt_check::execute): New method.
+ 	(make_pru_minrt_check): New function.
+ 	* config/pru/pru-passes.def (INSERT_PASS_AFTER): Register the
+ 	minrt check pass.
+ 	* config/pru/pru-protos.h (make_pru_minrt_check): Add
+ 	declaration.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru-passes.cc (class pass_tiabi_check): Rename to
+ 	add "pru_" prefix.
+ 	(class pass_pru_tiabi_check): Ditto.
+ 	(pass_tiabi_check::execute): Ditto.
+ 	(pass_pru_tiabi_check::execute): Ditto.
+ 	(make_pru_tiabi_check): Ditto.
+ 	(pru_register_abicheck_pass): Remove.
+ 	* config/pru/pru-protos.h (pru_register_abicheck_pass): Remove.
+ 	(make_pru_tiabi_check): Add declaration.
+ 	* config/pru/pru.cc (pru_option_override): Remove explicit pass
+ 	registration.
+ 	* config/pru/t-pru: Register PRU passes definition file.
+ 	* config/pru/pru-passes.def: New file.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.md (lshrdi3): Use HOST_WIDE_INT_1U macro.
+ 	(ashldi3): Ditto.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru-passes.cc: Drop ATTRIBUTE_UNUSED and remove
+ 	argument's name.
+ 	* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Ditto.
+ 	* config/pru/pru.cc (pru_function_profiler): Ditto.
+ 	(pru_can_eliminate): Ditto.
+ 	(pru_rtx_costs): Ditto.
+ 	(pru_insert_attributes): Ditto.
+ 	(pru_function_value): Ditto.
+ 	(pru_libcall_value): Ditto.
+ 	(pru_return_in_memory): Ditto.
+ 	(pru_builtin_decl): Ditto.
+ 	(pru_expand_builtin): Ditto.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.cc (prologue_saved_reg_p): Skip saving
+ 	if function will not return.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/alu-zext.md (_noz0): New subst attribute.
+ 	(<code>_impl): Allow zero-extending the destination.
+ 	(<shift_op>): Remove unified pattern
+ 	(ashl_impl): New distinct pattern.
+ 	(lshr_impl): Ditto.
+ 	(alu3_zext_op0_subst): New subst iterator to zero-extend the
+ 	destination register.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.md (extzv<mode>): Make it an expand pattern,
+ 	handle efficiently zero-positioned bit-fields.
+ 	(insv<mode>): New expand pattern.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.md: New pattern alternative for zero-filling
+ 	64-bit registers.
+ 
+ 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.cc (pru_address_cost): Implement address cost
+ 	calculation.
+ 	(TARGET_ADDRESS_COST): Define for PRU.
+ 
+ 2024-05-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114921
+ 	* tree-vect-stmts.cc (vectorizable_assignment): Use
+ 	tree_nop_conversion_p to identify converts we can vectorize
+ 	with a simple assignment.
+ 
+ 2024-05-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	PR target/106060
+ 	* config/i386/i386-expand.cc (enum ix86_vec_bcast_alg): New.
+ 	(struct ix86_vec_bcast_map_simode_t): New type for table below.
+ 	(ix86_vec_bcast_map_simode): Table of SImode constants that may
+ 	be efficiently synthesized by a ix86_vec_bcast_alg method.
+ 	(ix86_vec_bcast_map_simode_cmp): New comparator for bsearch.
+ 	(ix86_vector_duplicate_simode_const): Efficiently synthesize
+ 	V4SImode and V8SImode constants that duplicate special constants.
+ 	(ix86_vector_duplicate_value): Attempt to synthesize "special"
+ 	vector constants using ix86_vector_duplicate_simode_const.
+ 	* config/i386/i386.cc (ix86_rtx_costs) <case ABS>: ABS of a
+ 	vector integer mode costs with a single SSE instruction.
+ 
+ 2024-05-06  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_implied_info): zfbfmin
+ 	implies zfhmin.
+ 	(riscv_ext_version_table, riscv_ext_flag_table): Add zfbfmin.
+ 	* config/riscv/riscv.opt (ZFBFMIN): Add optoion.
+ 
+ 2024-05-06  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/iterators.md: New mode iterator HFBF.
+ 	* config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
+ 	Initialize data type _Bfloat16.
+ 	* config/riscv/riscv-modes.def (FLOAT_MODE): New.
+ 	(ADJUST_FLOAT_FORMAT): New.
+ 	* config/riscv/riscv.cc (riscv_mangle_type): Support for BFmode.
+ 	(riscv_scalar_mode_supported_p): Ditto.
+ 	(riscv_libgcc_floating_mode_supported_p): Ditto.
+ 	(riscv_init_libfuncs): Set the conversion method for BFmode and
+ 	HFmode.
+ 	(riscv_block_arith_comp_libfuncs_for_mode): Set the arithmetic
+ 	and comparison libfuncs for the mode.
+ 	* config/riscv/riscv.md (mode" ): Add BF.
+ 	(movhf): Support for BFmode.
+ 	(mov<mode>): Ditto.
+ 	(*movhf_softfloat): Ditto.
+ 	(*mov<mode>_softfloat): Ditto.
+ 
+ 2024-05-06  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* doc/invoke.texi (RISC-V): Add -mcmodel=large.
+ 
+ 2024-05-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_integer_op): Add field tracking if we
+ 	want to use a "uw" instruction variant.
+ 	(riscv_build_integer_1): Initialize the new field in various places.
+ 	Use lui+slli.uw for some constants.
+ 	(riscv_move_integer): Handle slli.uw.
+ 
+ 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR c/53548
+ 	* stor-layout.cc (place_union_field): Use zero sizes for flexible array
+ 	member fields.
+ 
+ 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR c/53548
+ 	* doc/extend.texi: Add documentation for Flexible Array Members in
+ 	Unions and Flexible Array Members alone in Structures.
+ 
+ 2024-05-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR ipa/92606
+ 	* config/avr/avr.cc (avr_option_override): Set
+ 	flag_ipa_icf_variables = 0.
+ 
+ 2024-05-06  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* tree-nested.cc (convert_tramp_reference_stmt): Use the correct
+ 	accessor for GIMPLE_OMP_TARGET clauses.
+ 
+ 2024-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/100923
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize
+ 	base SSA_NAME.
+ 	(vn_reference_lookup_3): Adjust vn_context_bb around calls
+ 	to ao_ref_init_from_vn_reference.
+ 	(vn_reference_lookup_pieces): Revert original PR100923 fix.
+ 	(vn_reference_lookup): Likewise.
+ 
+ 2024-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Add
+ 	TARGET_MEM_REF support.  Handle more bases.
+ 
+ 2024-05-06  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	PR target/113179
+ 	* expmed.cc(store_bit_field_using_insv): TRUNCATE value1 if
+ 	needed.
+ 
+ 2024-05-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-loop-versioning.cc (loop_versioning): Remove m_nloops field.
+ 	(loop_versioning::loop_versioning): Remove initialization of
+ 	m_nloops field and move it to be a local variable.
+ 	(loop_versioning::analyze_blocks): Fix formating.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-op.cc (class cfn_pass_through_arg1): Add overloads
+ 	for prange operations.
+ 	(cfn_strlen): Same.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_ge::fold_range): New.
+ 	(operator_ge::op1_range): New.
+ 	(operator_ge::op2_range): New.
+ 	(operator_ge::op1_op2_relation): New.
+ 	(operator_ge::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_gt::fold_range): New.
+ 	(operator_gt::op1_range): New.
+ 	(operator_gt::op2_range): New.
+ 	(operator_gt::op1_op2_relation): New.
+ 	(operator_gt::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_le::fold_range): New.
+ 	(operator_le::op1_range): New.
+ 	(operator_le::op2_range): New.
+ 	(operator_le::op1_op2_relation): New.
+ 	(operator_le::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (max_limit): New.
+ 	(min_limit): New.
+ 	(build_lt): New.
+ 	(build_le): New.
+ 	(build_gt): New.
+ 	(build_ge): New.
+ 	(operator_lt::fold_range): New.
+ 	(operator_lt::op1_range): New.
+ 	(operator_lt::op2_range): New.
+ 	(operator_lt::op1_op2_relation): New.
+ 	(operator_lt::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_equal::fold_range): New.
+ 	(operator_equal::op1_range): New.
+ 	(operator_equal::op2_range): New.
+ 	(operator_equal::op1_op2_relation): New.
+ 	(operator_equal::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_not_equal::fold_range): New.
+ 	(operator_not_equal::op1_range): New.
+ 	(operator_not_equal::op2_range): New.
+ 	(operator_not_equal::op1_op2_relation): New.
+ 	(operator_not_equal::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_bitwise_or::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_bitwise_and::fold_range): New.
+ 	(operator_bitwise_and::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-ptr.cc
+ 	(operator_pointer_diff::op1_op2_relation_effect): New.
+ 	(operator_pointer_diff::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-ptr.cc (class pointer_plus_operator): Add overloaded declarations
+ 	for pointer variants.
+ 	(pointer_plus_operator::fold_range): New.
+ 	(pointer_plus_operator::op2_range): New.
+ 	(pointer_plus_operator::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_addr_expr::op1_range): New.
+ 	(operator_addr_expr::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_min::fold_range): New.
+ 	(operator_min::pointers_handled_p): New.
+ 	(operator_max::fold_range): New.
+ 	(operator_max::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_cast::fold_range): New.
+ 	(operator_cast::op1_range): New.
+ 	(operator_cast::lhs_op1_relation): New.
+ 	(operator_cast::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for pointer variants.
+ 	* range-op-ptr.cc (operator_cst::fold_range): New.
+ 	(operator_cst::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add overloaded declarations for fold_range, op1_range,
+ 	lhs_op1_relation, pointers_handled_p.
+ 	* range-op-ptr.cc (operator_identity::fold_range): New.
+ 	(operator_identity::lhs_op1_relation): New.
+ 	(operator_identity::op1_range): New.
+ 	(operator_identity::pointers_handled_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h: Add using declarator for all classes.
+ 	* range-op-ptr.cc (range_operator::pointers_handled_p): New.
+ 	(range_operator::fold_range): New.
+ 	(range_operator::op1_op2_relation_effect): New.
+ 	(range_operator::op1_range): New.
+ 	(range_operator::op2_range): New.
+ 	(range_operator::op1_op2_relation): New.
+ 	(range_operator::lhs_op1_relation): New.
+ 	(range_operator::update_bitmask): New.
+ 	(class pointer_plus_operator): New.
+ 	(class operator_pointer_diff): New.
+ 	(class hybrid_min_operator): New.
+ 	(class hybrid_max_operator): New.
+ 	* range-op.cc: Add RO_PPP, RO_PPI, RO_IPP, RO_IPI, RO_PIP, RO_PII.
+ 	(range_op_handler::discriminator_fail): New.
+ 	(has_pointer_operand_p): New.
+ 	(range_op_handler::fold_range): Add pointer support.
+ 	(range_op_handler::op1_range): Same.
+ 	(range_op_handler::op2_range): Same.
+ 	(range_op_handler::lhs_op1_relation): Same.
+ 	(range_op_handler::lhs_op2_relation): Same.
+ 	(range_op_handler::op1_op2_relation): Same.
+ 	(class operator_div): Add using.
+ 	(class operator_lshift): Add using.
+ 	(class operator_rshift):Add using.
+ 	(class operator_trunc_mod):Add using.
+ 	(class operator_absu):Add using.
+ 	* range-op.h (enum range_op_dispatch_type): New.
+ 	Add extern definitions for RO_*.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (get_legacy_range): New version for prange.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (add_vrange): Add prange support.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-storage.cc (vrange_allocator::clone_varying): Add
+ 	prange support.
+ 	(vrange_allocator::clone_undefined): Same.
+ 	(vrange_storage::alloc): Same.
+ 	(vrange_storage::set_vrange): Same.
+ 	(vrange_storage::get_vrange): Same.
+ 	(vrange_storage::fits_p): Same.
+ 	(vrange_storage::equal_p): Same.
+ 	(prange_storage::alloc): New.
+ 	(prange_storage::prange_storage): New.
+ 	(prange_storage::set_prange): New.
+ 	(prange_storage::get_prange): New.
+ 	(prange_storage::equal_p): New.
+ 	(prange_storage::fits_p): New.
+ 	* value-range-storage.h (class prange_storage): Add prange support.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer-in.cc (streamer_read_value_range): Add prange support.
+ 	* data-streamer-out.cc (streamer_write_vrange): Same.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-pretty-print.cc (vrange_printer::visit): New.
+ 	* value-range-pretty-print.h: Declare prange visit() method.
+ 	* value-range.cc (vrange::operator=): Add prange support.
+ 	(vrange::operator==): Same.
+ 	(prange::accept): New.
+ 	(prange::set_nonnegative): New.
+ 	(prange::set): New.
+ 	(prange::contains_p): New.
+ 	(prange::singleton_p): New.
+ 	(prange::lbound): New.
+ 	(prange::ubound): New.
+ 	(prange::union_): New.
+ 	(prange::intersect): New.
+ 	(prange::operator=): New.
+ 	(prange::operator==): New.
+ 	(prange::invert): New.
+ 	(prange::verify_range): New.
+ 	(prange::update_bitmask): New.
+ 	(range_tests_misc): Use prange.
+ 	* value-range.h (enum value_range_discriminator): Add VR_PRANGE.
+ 	(class prange): New.
+ 	(Value_Range::init): Add prange support.
+ 	(Value_Range::operator=): Same.
+ 	(Value_Range::supports_type_p): Same.
+ 	(prange::prange):  New.
+ 	(prange::supports_p): New.
+ 	(prange::supports_type_p): New.
+ 	(prange::set_undefined): New.
+ 	(prange::set_varying): New.
+ 	(prange::set_nonzero): New.
+ 	(prange::set_zero): New.
+ 	(prange::contains_p): New.
+ 	(prange::zero_p): New.
+ 	(prange::nonzero_p): New.
+ 	(prange::type): New.
+ 	(prange::lower_bound): New.
+ 	(prange::upper_bound): New.
+ 	(prange::varying_compatible_p): New.
+ 	(prange::get_bitmask): New.
+ 	(prange::fits_p): New.
+ 
+ 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (class prange): New.
+ 
+ 2024-05-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/23872
+ 	* tree-pretty-print.cc (dump_generic_node <case COMPOUND_EXPR>): Fix
+ 	calls to dump_generic_node and also remove unreachable code that is testing
+ 	`flags & TDF_SLIM`.
+ 
+ 2024-05-03  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc: Comment updates.
+ 	* config/riscv/riscv.h: Ditto.
+ 
+ 2024-05-03  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* doc/rtl.texi: Add entry for GET_MODE_INNER.
+ 
+ 2024-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* bitmap.cc (bitmap_alloc): When using the global bitmap obstack
+ 	assert that is initialized.
+ 
+ 2024-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114931
+ 	* tree.cc (build_array_type_1): Return early when type_hash_canon
+ 	returned an older existing type.
+ 	(build_function_type): Likewise.
+ 	(build_method_type_directly): Likewise.
+ 	(build_offset_type): Likewise.
+ 
+ 2024-05-03  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR rtl-optimization/114924
+ 	* cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs,
+ 	don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR.
+ 
+ 2024-05-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113596
+ 	* tree-inline.cc (expand_call_inline): Emit __builtin_stack_save
+ 	and __builtin_stack_restore calls around inlined functions which
+ 	call alloca.
+ 
+ 2024-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114921
+ 	* tree-vect-stmts.cc (vectorizable_assignment): Require
+ 	same vector component modes for input and output for
+ 	CONVERT_EXPR_CODE_P.
+ 
+ 2024-05-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (<round_pattern><ANYF:mode>2): Adjust
+ 	condition to match what can be properly implemented.  Fix various
+ 	formatting issues.
+ 	(l<round_pattern><ANYF:mode>si2_sext): Fix formatting
+ 
+ 2024-05-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/predicates.md (arith_or_zbs_operand): New predicate.
+ 	* config/riscv/riscv.cc (riscv_build_integer_one): Use bseti to set
+ 	single bits when profitable.
+ 	* config/riscv/riscv.md (*<optab><mode>3): Renamed with '*' prefix.
+ 	(<optab><mode>3): New expander for IOR/XOR.
+ 
+ 2024-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_print_slp_tree): Mark live lanes.
+ 	(dot_slp_tree): New overload for multiple entries.
+ 
+ 2024-05-02  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/113836
+ 	* doc/gm2.texi (Compiler options): Add -fm2-debug-trace=,
+ 	-fm2-dump, -fm2-dump-decl=, -fm2-dump-gimple=, -fm2-dump-quad=
+ 	and -fm2-dump-filter=.
+ 
+ 2024-05-02  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* value-range.h: fix static_assert to use 2 arguments.
+ 
+ 2024-05-02  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	PR lto/110710
+ 	* lto-wrapper.cc (run_gcc): Instead of truncating a processed
+ 	ltrans input from the Makefile use the new -truncate option
+ 	to accomplish the same.
+ 
+ 2024-05-02  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	PR lto/110710
+ 	* common.opt (truncate): New internal option.
+ 	* gcc.cc (totruncate_file): New global.
+ 	(driver_handle_option): Handle -truncate <file>.
+ 	(driver::final_actions): Truncate the file indicated.
+ 
+ 2024-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* graphds.cc (dump_graph): Dump in graphviz format.
+ 
+ 2024-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-live.h (tree_live_info_d::global): Remove.
+ 	(partition_is_global): Likewise.
+ 	(make_live_on_entry): Do not set bit in global.
+ 	* tree-ssa-live.cc (new_tree_live_info): Do not allocate
+ 	global bitmap.
+ 	(delete_tree_live_info): Do not release it.
+ 	(set_var_live_on_entry): Do not set bits in it.
+ 
+ 2024-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114579
+ 	* cfgexpand.cc (add_scope_conflicts_1): Record all-to-all
+ 	conflicts only when there's a CFG merge but for all CFG merges.
+ 
+ 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	PR target/112959
+ 	* doc/install.texi (Specific) <*-*-freebsd*>: The Ada and D
+ 	run-time libraries are broken on i386 which also can affect
+ 	64-bit builds. Go is broken.
+ 
+ 2024-05-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (splitter to use w-form division): Remove
+ 	explicit subregs.
+ 	(zero extended bitfield extraction): Similarly.
+ 	* config/riscv/thead.md (*th_memidx_operand): Similarly.
+ 
+ 2024-05-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Break out
+ 	tests for easier debugging in store pair fusion case.  Fix offset
+ 	check in same.
+ 
+ 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	PR target/112959
+ 	* doc/install.texi (Specific) <*-*-freebsd*>: No longer refer
+ 	to GCC or binutils in base. Recommend bootstrap using binutils.
+ 
+ 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <ia64-*-hpux*>: Remove details
+ 	on libunwind for GCC 3.4 and earlier.
+ 
+ 2024-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-fnsummary.cc (evaluate_properties_for_edge): Initialize Value_Range's.
+ 	* value-range.h (class Value_Range): Add a buffer and remove
+ 	m_irange and m_frange.
+ 	(Value_Range::Value_Range): Call init.
+ 	(Value_Range::set_type): Same.
+ 	(Value_Range::init): Use in place new to initialize buffer.
+ 	(Value_Range::operator=): Tidy.
+ 
+ 2024-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (unsupported_range::union_): Cast vrange to
+ 	unsupported_range.
+ 	(unsupported_range::intersect): Same.
+ 	(unsupported_range::operator=): Make argument an unsupported_range.
+ 	* value-range.h: New constructor.
+ 
+ 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-op.cc (gimple_range_op_handler::calc_op1): Don't
+ 	assert that here are less than 3 operands.
+ 	(gimple_range_op_handler::maybe_builtin_call): Simply return if
+ 	there is no type for the function call.
+ 
+ 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (gimple_ranger::range_on_entry): Adjust for new
+ 	API and support non-SSA expressions.
+ 	(gimple_ranger::range_on_exit): Ditto.
+ 	* gimple-range.h (range_on_entry, range_on_exit): Adjust API.
+ 	* value-query.cc (range_query::range_on_entry): New.
+ 	(range_query::range_on_exit): New.
+ 	(range_query::value_on_entry): New.
+ 	(range_query::value_on_exit): New.
+ 	(range_query::invoke_range_of_expr): New.
+ 	(range_query::get_tree_range): Allow stmt, on_entry or on_exit
+ 	range queries.
+ 	SSA_NAMES should invoke range_of_expr if possible.
+ 	* value-query.h (class range_query): Adjust prototypes.
+ 
+ 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (gimple_ranger::range_of_expr): Call range_of_stmt
+ 	when there is no context stmt.
+ 
+ 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::get_global_range): Do not
+ 	pre-evaluate PHI nodes from the cache.
+ 	(ranger_cache::fill_block_cache): Make re-entrant.
+ 
+ 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-query.cc (get_range_global): Rename to gimple_range_global.
+ 	(gimple_range_global): Remove wrapper function.
+ 	(global_range_query::range_of_expr): Call gimple_range_global.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-cfg.cc (verify_gimple_assign): Remove quote
+ 	mark to shut up the warning.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (value_replacement): Reject undef variables
+ 	so they don't become unconditional used.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (value_replacement): Move check for
+ 	NE/EQ earlier.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges):
+ 	Remove the special case of gimple_seq_singleton_p.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/112976
+ 	* cfgexpand.cc (expand_gimple_stmt_1): Remove
+ 	support for expanding nontemporal "moves" with
+ 	ssa names on the LHS.
+ 
+ 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/112976
+ 	* tree-cfg.cc (verify_gimple_assign): Verify that
+ 	nontmporal moves are stores.
+ 	* gimple.h (struct gimple): Note that only
+ 	nontemporal stores are supported.
+ 
+ 2024-04-30  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/iterators.md (fix_ops, fix_uns): New iterators.
+ 	(RINT, rint_pattern, rint_rm): Remove unused iterators.
+ 	* config/riscv/riscv-protos.h (get_fp_rounding_coefficient): Prototype.
+ 	* config/riscv/riscv-v.cc (get_fp_rounding_coefficient): Externalize.
+ 	external linkage.
+ 	* config/riscv/riscv.md (UNSPEC_LROUND): Remove.
+ 	(fix_trunc<ANYF:mode><GPR:mode>2): Replace with ...
+ 	(<fix_uns>_trunc<ANYF:mode>si2): New expander & associated insn.
+ 	(<fix_uns>_trunc<ANYF:mode>si2_ext): New insn.
+ 	(<fix_uns>_trunc<ANYF:mode>di2): Likewise.
+ 	(l<rint_pattern><ANYF:mode><GPR:mode>2): Replace with ...
+ 	(lrint<ANYF:mode>si2): New expander and associated insn.
+ 	(lrint<ANYF:mode>si2_ext, lrint<ANYF:mode>di2): New insns.
+ 	(<round_pattern><ANYF:mode>2): Replace with....
+ 	(l<round_pattern><ANYF:mode>si2): New expander and associated insn.
+ 	(l<round_pattern><ANYF:mode>si2_sext): New insn.
+ 	(l<round_pattern><ANYF:mode>di2): Likewise.
+ 	(<round_pattern><ANYF:mode>2): New expander.
+ 
+ 2024-04-30  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-ssa-warn-access.cc (check_nul_terminated_array): Change
+ 	int_range<2> to int_range_max.
+ 	(memmodel_to_uhwi): Same.
+ 	* tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
+ 	(determine_value_range): Same.
+ 	(infer_loop_bounds_from_signedness): Same.
+ 	(scev_var_range_cant_overflow): Same.
+ 
+ 2024-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/13421
+ 	* optabs-tree.cc (optab_for_tree_code): Do not consider
+ 	{add,sub}v or {us,ss}{add,sub} optabs for POINTER_DIFF_EXPR
+ 	or POINTER_PLUS_EXPR.
+ 
+ 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114876
+ 	* gimple-ssa-sprintf.cc (format_character): For min == 0 && max == 0,
+ 	set max, likely and unlikely members to 1 rather than 0.  Remove
+ 	useless res.knownrange = true;.  Formatting fixes.
+ 
+ 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/114883
+ 	* tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and
+ 	IFN_COND_MAX in the assert.
+ 
+ 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/cpp.texi (__STDC_VERSION__): Document 202311L value
+ 	for -std=c23/-std=gnu23.
+ 
+ 2024-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114734
+ 	* internal-fn.cc (expand_call_mem_ref): Use
+ 	get_gimple_for_ssa_name to get at the def stmt of the address
+ 	argument to honor SSA coalescing constraints.
+ 
+ 2024-04-29  demin.han  <demin.han@starfivetech.com>
+ 
+ 	PR target/114506
+ 	* config/riscv/riscv-vector-costs.cc (non_contiguous_memory_access_p): Rename
+ 	(need_additional_vector_vars_p): Rename and refine condition
+ 
+ 2024-04-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114885
+ 	* config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New
+ 	func impl to take care of (const_int_poly:TI 8).
+ 	(riscv_legitimize_move): Handle subreg is const_int_poly,
+ 
+ 2024-04-29  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif,
+ 	zicclsm, and ziccrse into riscv_zi_subext.
+ 	* config/riscv/riscv.opt: Define MASK_ZIC64B for
+ 	riscv_ziccmo_subext.
+ 
+ 2024-04-29  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/i6400.md (i6400_fpu_minmax): New
+ 	define_insn_reservation.
+ 	* config/mips/mips.h (ISA_HAS_FMIN_FMAX): Define new macro.
+ 	* config/mips/mips.md (UNSPEC_FMIN): New unspec.
+ 	(UNSPEC_FMAX): Same as above.
+ 	(type): Add fminmax.
+ 	(smin<mode>3): Generates MIN.fmt instructions.
+ 	(smax<mode>3): Generates MAX.fmt instructions.
+ 	(fmin<mode>3): Generates MIN.fmt instructions.
+ 	(fmax<mode>3): Generates MAX.fmt instructions.
+ 	* config/mips/p6600.md (p6600_fpu_fabs): Include fminmax
+ 	type.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-ccp.cc (ccp_finalize): Normalize before calling
+ 	set_bitmask.
+ 	* value-range.cc (irange::intersect_bitmask): Calculate changed
+ 	irange_bitmask bits on our own.
+ 	(irange::union_bitmask): Same.
+ 	(irange_bitmask::verify_mask): Verify that bits are normalized.
+ 	* value-range.h (irange_bitmask::union_): Do not normalize.
+ 	Remove return value.
+ 	(irange_bitmask::intersect): Same.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-ptr.cc (pointer_plus_operator::wi_fold): Use method
+ 	range setters instead of out of line functions.
+ 	(pointer_min_max_operator::wi_fold): Same.
+ 	(pointer_and_operator::wi_fold): Same.
+ 	(pointer_or_operator::wi_fold): Same.
+ 	* range-op.cc (operator_negate::fold_range): Same.
+ 	(operator_addr_expr::fold_range): Same.
+ 	(range_op_cast_tests): Same.
+ 	* range.cc (range_zero): Remove.
+ 	(range_nonzero): Remove.
+ 	* range.h (range_zero): Remove.
+ 	(range_nonzero): Remove.
+ 	* value-range.cc (range_tests_misc): Use method instead of out of
+ 	line function.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-pretty-print.cc (print_int_bound): New.
+ 	(print_irange_bitmasks): New.
+ 	(vrange_printer::print_irange_bound): Remove.
+ 	(vrange_printer::print_irange_bitmasks): Remove.
+ 	* value-range-pretty-print.h: Remove print_irange_bitmasks and
+ 	print_irange_bound
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (range_includes_zero_p): Accept vrange.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-loop-split.cc (split_at_bb_p): Make int_range a Value_Range.
+ 	* tree-ssa-strlen.cc (get_range): Same.
+ 	* value-query.cc (range_query::get_tree_range):  Handle both
+ 	integers and pointers.
+ 	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Make
+ 	r0 and r1 Value_Range's.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (get_bitmask_from_range): Move out of irange class.
+ 	(irange::get_bitmask): Call function instead of internal method.
+ 	* value-range.h (class irange): Remove get_bitmask_from_range.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (get_legacy_range): Make static and add another
+ 	version of get_legacy_range that takes a vrange.
+ 	* value-range.h (class irange): Remove unnecessary friendship with
+ 	get_legacy_range.
+ 	(get_legacy_range): Accept a vrange.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-storage.cc (irange_storage::set_irange): Move
+ 	verification code from here...
+ 	(vrange_storage::set_vrange): ...to here.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-op.cc (cfn_clz::fold_range): Change
+ 	range_includes_zero_p argument to a reference.
+ 	(cfn_ctz::fold_range): Same.
+ 	* range-op.cc (operator_plus::lhs_op1_relation): Same.
+ 	* value-range.h (range_includes_zero_p): Same.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Remove
+ 	type from range_true and range_false.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-storage.h: Remove friends.
+ 	* value-range.cc (gt_ggc_mx): Remove.
+ 	(gt_pch_nx): Remove.
+ 	* value-range.h (class vrange): Remove GTY markers.
+ 	(class irange): Same.
+ 	(class int_range): Same.
+ 	(class frange): Same.
+ 	(gt_ggc_mx): Remove.
+ 	(gt_pch_nx): Remove.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (propagate_bits_across_jump_function): Access bitmask
+ 	through base class.
+ 	(ipcp_store_vr_results): Same.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
+ 	(ipcp_get_parm_bits): Same.
+ 	(ipcp_update_vr): Same.
+ 	* range-op-mixed.h (update_known_bitmask): Change argument to vrange.
+ 	* range-op.cc (update_known_bitmask): Same.
+ 	* value-range.cc (vrange::update_bitmask):  New.
+ 	(irange::set_nonzero_bits): Move to vrange class.
+ 	(irange::get_nonzero_bits): Same.
+ 	* value-range.h (class vrange): Add update_bitmask, get_bitmask,
+ 	get_nonzero_bits, and set_nonzero_bits.
+ 	(class irange): Make bitmask methods virtual overrides.
+ 	(class Value_Range): Add get_bitmask and update_bitmask.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-loop-niter.cc (refine_value_range_using_guard): Convert
+ 	bound to wide_int.
+ 	* value-range.cc (Value_Range::lower_bound): Remove.
+ 	(Value_Range::upper_bound): Remove.
+ 	(unsupported_range::lbound): New.
+ 	(unsupported_range::ubound): New.
+ 	(frange::lbound): New.
+ 	(frange::ubound): New.
+ 	(irange::lbound): New.
+ 	(irange::ubound): New.
+ 	* value-range.h (class vrange): Add lbound() and ubound().
+ 	(class irange): Same.
+ 	(class frange): Same.
+ 	(class unsupported_range): Same.
+ 	(class Value_Range): Rename lower_bound and upper_bound to lbound
+ 	and ubound respectively.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-ssa-warn-access.cc (check_nul_terminated_array): Make Value_Range an int_range.
+ 	(memmodel_to_uhwi): Same
+ 	* tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
+ 	(determine_value_range): Same.
+ 	(infer_loop_bounds_from_signedness): Same.
+ 	(scev_var_range_cant_overflow): Same.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (vrange::~vrange): New.
+ 	(int_range::~int_range): Make final override.
+ 
+ 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (unsupported_range::accept): Move down.
+ 	(vrange::contains_p):  Rename to...
+ 	(unsupported_range::contains_p): ...this.
+ 	(vrange::singleton_p): Rename to...
+ 	(unsupported_range::singleton_p): ...this.
+ 	(vrange::set): Rename to...
+ 	(unsupported_range::set): ...this.
+ 	(vrange::type): Rename to...
+ 	(unsupported_range::type): ...this.
+ 	(vrange::supports_type_p): Rename to...
+ 	(unsupported_range::supports_type_p): ...this.
+ 	(vrange::set_undefined): Rename to...
+ 	(unsupported_range::set_undefined): ...this.
+ 	(vrange::set_varying): Rename to...
+ 	(unsupported_range::set_varying): ...this.
+ 	(vrange::union_): Rename to...
+ 	(unsupported_range::union_): ...this.
+ 	(vrange::intersect): Rename to...
+ 	(unsupported_range::intersect): ...this.
+ 	(vrange::zero_p): Rename to...
+ 	(unsupported_range::zero_p): ...this.
+ 	(vrange::nonzero_p): Rename to...
+ 	(unsupported_range::nonzero_p): ...this.
+ 	(vrange::set_nonzero): Rename to...
+ 	(unsupported_range::set_nonzero): ...this.
+ 	(vrange::set_zero): Rename to...
+ 	(unsupported_range::set_zero): ...this.
+ 	(vrange::set_nonnegative): Rename to...
+ 	(unsupported_range::set_nonnegative): ...this.
+ 	(vrange::fits_p): Rename to...
+ 	(unsupported_range::fits_p): ...this.
+ 	(unsupported_range::operator=): New.
+ 	(frange::fits_p): New.
+ 	* value-range.h (class vrange): Make an abstract class.
+ 	(class unsupported_range): Declare override methods.
+ 
+ 2024-04-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	PR target/112959
+ 	* doc/install.texi (Specific) <*-*-freebsd*>: Remove references to
+ 	FreeBSD 7 and older.
+ 
+ 2024-04-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/contrib.texi: Update David Binderman's entry.
+ 
+ 2024-04-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md: (zero_extendsidi2): Adjust
+ 	alternative *k to ?k.
+ 	(zero_extend<mode>di2): Ditto.
+ 	(*zero_extend<mode>si2): Ditto.
+ 	(*zero_extendqihi2): Ditto.
+ 
+ 2024-04-28  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR target/95782
+ 	* config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty identifier.
+ 
+ 2024-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113822
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_reencode): Use
+ 	vec_perm_indices::new_shrunk_vector instead of manually
+ 	going through the indices.
+ 
+ 2024-04-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/114861
+ 	* config/loongarch/loongarch.md (bstrins_<mode>_for_mask): Add
+ 	constraints for operands.
+ 	(bstrins_<mode>_for_ior_mask): Likewise.
+ 
+ 2024-04-27  Fangrui Song  <maskray@gcc.gnu.org>
+ 
+ 	* config/riscv/elf.h (LINK_SPEC): Add -X.
+ 	* config/riscv/freebsd.h (LINK_SPEC): Add -X.
+ 	* config/riscv/linux.h (LINK_SPEC): Add -X.
+ 
+ 2024-04-26  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (MAX_SET_SIZE): New define.
+ 	(aarch64_progress_pointer): Remove function.
+ 	(aarch64_set_one_block_and_progress_pointer): Simplify and clean up.
+ 	(aarch64_expand_setmem): Clean up implementation, use byte offsets,
+ 	simplify size calculation.
+ 
+ 2024-04-26  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_mode_valid_for_sched_fusion_p):
+ 	Remove check for AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS.
+ 	(aarch64_advsimd_ldp_stp_p): Likewise.
+ 	(aarch64_stp_sequence_cost): Likewise.
+ 	(aarch64_expand_cpymem): Likewise.
+ 	(aarch64_expand_setmem): Likewise.
+ 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_operand_mode_ok_p):
+ 	Likewise.
+ 	* config/aarch64/aarch64-ldpstp.md: Likewise.
+ 	* config/aarch64/aarch64-tuning-flags.def: Remove NO_LDP_STP_QREGS.
+ 	* config/aarch64/tuning_models/emag.h: Likewise.
+ 	* config/aarch64/tuning_models/xgene1.h: Likewise.
+ 
+ 2024-04-26  Frederik Harwath  <frederik@harwath.name>
+ 
+ 	* config.gcc: Add gfx90c.
+ 	* config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
+ 	(TARGET_GFX90c): New macro.
+ 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx90c.
+ 	(gcn_omp_device_kind_arch_isa): Likewise.
+ 	(output_file_start): Likewise.
+ 	* config/gcn/gcn.h: Add gfx90c.
+ 	* config/gcn/gcn.opt: Likewise.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro.
+ 	(get_arch): Handle gfx90c.
+ 	(main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c
+ 	* config/gcn/t-omp-device: Add gfx90c.
+ 	* doc/install.texi: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2024-04-25  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG.
+ 
+ 2024-04-25  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE
+ 	options to avoid issues with -gtoggle.
+ 
+ 2024-04-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/114825
+ 	* tree-nested.cc (get_debug_decl): New function.
+ 	(get_nonlocal_debug_decl): Use it.
+ 	(get_local_debug_decl): Likewise.
+ 
+ 2024-04-25  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of
+ 	-masm.
+ 	* config/bpf/bpf.h (ASM_SPEC): Adapt accordingly.
+ 	* doc/invoke.texi (eBPF Options): Update.
+ 
+ 2024-04-25  Richard Ball  <richard.ball@arm.com>
+ 
+ 	PR target/114837
+ 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
+ 	Add zero/sign extend.
+ 	(arm_expand_prologue): Add zero/sign extend.
+ 
+ 2024-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114792
+ 	* tree-ssa-loop-ch.cc (ch_order_loops): New function.
+ 	(ch_base::copy_headers): Sort loops to unloop inner-to-outer.
+ 
+ 2024-04-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/114416
+ 	* config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro.
+ 	* config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it.
+ 	* config/sparc/sparc.cc (fp_type_for_abi): New predicate.
+ 	(traverse_record_type): Use it to spot floating-point types.
+ 	(compute_fp_layout): Also deal with array types.
+ 
+ 2024-04-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector-crypto.md: Add early clobber to the
+ 	dest operand of vwsll.
+ 
+ 2024-04-25  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/altivec.md (*bcdinvalid_<mode>): Replace bcdadd
+ 	with bcdsub.
+ 	(bcdinvalid_<mode>): Likewise.
+ 
+ 2024-04-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/114738
+ 	* opts.cc (get_option_url): Revert 2024-04-17 changes.
+ 	* gcc-urlifier.cc: Don't include diagnostic-core.h.
+ 	(gcc_urlifier::make_doc_url): Revert 2024-04-17 changes.
+ 	* configure.ac (documentation-root-url): On release branches
+ 	append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL.
+ 	* doc/install.texi (--with-documentation-root-url=): Document
+ 	the change of the default.
+ 	* configure: Regenerate.
+ 
+ 2024-04-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 		    kito-cheng  <kito.cheng@sifive.com>
+ 		    kito-cheng  <kito.cheng@gmail.com>
+ 
+ 	PR target/112431
+ 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters.
+ 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto.
+ 	(no,yes): Ditto.
+ 	* config/riscv/vector.md: Support highpart register overlap for vwcvt.
+ 
+ 2024-04-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config.gcc: Add bpf-c.o as a target object for C and C++.
+ 	* config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc.
+ 	* config/bpf/bpf-c.cc: New file.
+ 	(bpf_target_macros): Move from bpf.cc and define BPF CPU
+ 	feature	macros.
+ 	* config/bpf/t-bpf: Add rules to build bpf-c.o.
+ 
+ 2024-04-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114787
+ 	* tree-cfg.cc (remove_edge_and_dominated_blocks): When
+ 	removing a loop backedge clear niter info and when removing
+ 	the last backedge of a loop mark that loop for removal.
+ 
+ 2024-04-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114832
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Fix dominance check.
+ 
+ 2024-04-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
+ 	Check whether AVX512F is explicitly enabled.
+ 
+ 2024-04-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Support highpart overlap for vext.vf2
+ 
+ 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114810
+ 	* config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro
+ 	alternative into =&r,r,r enabled only for x64 and =&r,r,o.
+ 
+ 2024-04-23  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated
+ 	sentence about optimization flags implying this.
+ 
+ 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/darwin.opt (init): Spelling fix: initialiser -> initializer.
+ 
+ 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix:
+ 	floatig -> floating.
+ 	* config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR.
+ 	* params.opt (-param=ipa-cp-profile-count-base=): Spelling fix:
+ 	frequncy -> frequency.
+ 
+ 2024-04-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114799
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly
+ 	update ->any_pattern when swapping operands.
+ 
+ 2024-04-23  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	PR target/114676
+ 	* config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a
+ 	MEM_REF with an addend of type ptr_type_node.
+ 
+ 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Add loongarch-evolution.o.
+ 	* config/loongarch/genopts/genstr.sh: Enable generation of
+ 	loongarch-evolution.[cc,h].
+ 	* config/loongarch/t-loongarch: Likewise.
+ 	* config/loongarch/genopts/gen-evolution.awk: New file.
+ 	* config/loongarch/genopts/isa-evolution.in: Mark ISA version
+ 	of introduction for each ISA evolution feature.
+ 	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
+ 	Define builtin macros for enabled ISA evolutions and the ISA
+ 	version.
+ 	* config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h.
+ 	* config/loongarch/loongarch.h: Likewise.
+ 	* config/loongarch/loongarch-cpucfg-map.h: Delete.
+ 	* config/loongarch/loongarch-evolution.cc: New file.
+ 	* config/loongarch/loongarch-evolution.h: New file.
+ 	* config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define.
+ 	(ISA_HAS_DIV32): Likewise.
+ 	(ISA_HAS_LAM_BH): Likewise.
+ 	(ISA_HAS_LAMCAS): Likewise.
+ 	(ISA_HAS_LD_SEQ_SA): Likewise.
+ 
+ 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI.
+ 	* config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1.
+ 	* config/loongarch/genopts/loongarch.opt.in: Likewise.
+ 	* config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise.
+ 	(loongarch_cpu_cpp_builtins): Likewise.
+ 	* config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise.
+ 	(fill_native_cpu_config): Likewise.
+ 	* config/loongarch/loongarch-def.cc (array_tune): Likewise.
+ 	* config/loongarch/loongarch-def.h: Likewise.
+ 	* config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise.
+ 	(driver_get_normalized_m_opts): Likewise.
+ 	* config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise.
+ 	(TUNE_FOR_ARCH): Likewise.
+ 	(arch_str): Likewise.
+ 	(loongarch_target_option_override): Likewise.
+ 	* config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise.
+ 	(TARGET_uARCH_LA664): Likewise.
+ 	* config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise.
+ 	(STR_ARCH_ABI_DEFAULT): Likewise.
+ 	(STR_TUNE_GENERIC): Likewise.
+ 	(STR_ARCH_LA64V1_0): Likewise.
+ 	(STR_ARCH_LA64V1_1): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise.
+ 	(loongarch_asm_code_end): Likewise.
+ 	* config/loongarch/loongarch.opt: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector-crypto.md:
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint.
+ 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap.
+ 	(no,yes): Ditto.
+ 	(none,W21,W42,W84,W43,W86,W87): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.md: Rostify the constraints.
+ 
+ 2024-04-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc (processor_alias_table):
+ 	Let Sierra Forest map to CPU_TYPE enum.
+ 
+ 2024-04-22  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_option_override_internal): Check zarch
+ 	flag before enabling -mvx.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add widenning overlap.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highpart overlap for indexed load.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add highest-number overlap support.
+ 
+ 2024-04-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add widening overlap of vf2/vf4.
+ 
+ 2024-04-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highpart overlap for vx/vf.
+ 
+ 2024-04-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Fix incorrect overlap in v0.
+ 
+ 2024-04-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highest overlap for wv instructions.
+ 
+ 2024-04-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112432
+ 	* config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0.
+ 	(none,W21,W42,W84,W43,W86,W87,W0): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114783
+ 	* config/i386/sse.md (*avx2_eq<mode>3): Change last operand's
+ 	constraint from "jm" to "xjm".
+ 
+ 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114753
+ 	* internal-fn.cc (expand_arith_overflow): Add one missing restore
+ 	of flag_trapv before return.
+ 
+ 2024-04-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114769
+ 	* tree-vect-patterns.cc:
+ 	(vect_recog_absolute_difference): Have only one success condition.
+ 	(vect_recog_abd_pattern): Handle further checks if
+ 	vect_recog_absolute_difference fails.
+ 
+ 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc (get_index_for_enum_value): Create
+ 	function.
+ 	(pack_enum_value): Check for enumerator and error out.
+ 	(process_enum_value): Correct string allocation.
+ 
+ 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function
+ 	to bpf_output_move.
+ 	* config/bpf/bpf.cc (bpf_legitimate_address_p): Allow
+ 	UNSPEC_CORE_RELOC to match an address.
+ 	(bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves
+ 	expensive to prioritize loads and stores.
+ 	(TARGET_INSN_COST): Add hook.
+ 	(bpf_output_move): Wrapper to call bpf_output_core_reloc.
+ 	(bpf_print_operand): Add support to print immediate operands
+ 	specified with the UNSPEC_CORE_RELOC.
+ 	(bpf_print_operand_address): Likewise, but to support
+ 	UNSPEC_CORE_RELOC in addresses.
+ 	(bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW.
+ 	* config/bpf/bpf.md: Wrap patterns for MOV, LD and ST
+ 	instruction with bpf_output_move call.
+ 	(mov_reloc_core<MM:mode>): Remove now spurious define_insn.
+ 	* config/bpf/constraints.md: Added "c" and "C" constraints to
+ 	match immediates represented with UNSPEC_CORE_RELOC.
+ 	* config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove
+ 	(bpf_output_core_reloc): Add function to create the CO-RE
+ 	relocations based on new matching rules.
+ 	* config/bpf/core-builtins.h (bpf_output_core_reloc): Add
+ 	prototype.
+ 	* config/bpf/predicates.md (core_imm_operand) Add predicate.
+ 	(mov_src_operand): Add match for core_imm_operand.
+ 
+ 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114768
+ 	* rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM
+ 	sets if src has side-effects or for stores into ZERO_EXTRACT
+ 	if ZERO_EXTRACT operand has side-effects.
+ 
+ 2024-04-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/t-vxworks (vxw-glimits.h): Don't mangle c23-required
+ 	__STDC_VERSION_LIMITS_H__ define.
+ 
+ 2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* config.gcc: Add nios2*-*-* to the list of obsoleted targets.
+ 
+ 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/sourcebuild.texi (strndup): Add effective target.
+ 
+ 2024-04-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/114741
+ 	* config/aarch64/aarch64.md (<optab><mode>3): Remove ^ from alt 2.
+ 	(copysign<GPF:mode>3): Use SIMD version of IOR directly.
+ 
+ 2024-04-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114753
+ 	* internal-fn.cc (expand_mul_overflow): Save flag_trapv and
+ 	temporarily clear it for the duration of the function, then
+ 	restore previous value.
+ 	(expand_vector_ubsan_overflow): Likewise.
+ 	(expand_arith_overflow): Likewise.
+ 
+ 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/114738
+ 	* opts.cc (get_option_url): On release branches append
+ 	gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL.
+ 	* gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise.
+ 
+ 2024-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114749
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Reset
+ 	LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP.
+ 
+ 2024-04-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114752
+ 	* config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode.
+ 
+ 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/114743
+ 	* asan.cc (maybe_instrument_call): Don't instrument calls to
+ 	.ABNORMAL_DISPATCHER.
+ 
+ 2024-04-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c/92880
+ 	* doc/extend.texi (Using Vector Instructions): Add that
+ 	the base_types could be a typedef of them.
+ 
+ 2024-04-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114736
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge):
+ 	Do not consider VEC_PERM_EXPRs as PHI use.
+ 
+ 2024-04-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114733
+ 	* tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject
+ 	neg induction vectorization of single element vectors.
+ 
+ 2024-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree.cc (array_type_nelts): Ensure 2 spaces after . in comment
+ 	instead of just one.
+ 	(build_variant_type_copy): Likewise.
+ 	(tree_check_failed): Likewise.
+ 	(build_atomic_base): Likewise.
+ 	* ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite
+ 	article rather than a.
+ 
+ 2024-04-16  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move):
+ 	replace or with add when expanding zicond if possible.
+ 
+ 2024-04-16  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112938
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
+ 	indirected parm.
+ 	(maybe_make_indirect): Restore volatility in dereferences.
+ 
+ 2024-04-16  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 	* config/mn10300/mn10300.opt.urls: Likewise.
+ 	* config/msp430/msp430.opt.urls: Likewise.
+ 	* config/nds32/nds32-elf.opt.urls: Likewise.
+ 	* config/nds32/nds32-linux.opt.urls: Likewise.
+ 	* config/nds32/nds32.opt.urls: Likewise.
+ 	* config/pru/pru.opt.urls: Likewise.
+ 	* config/riscv/riscv.opt.urls: Likewise.
+ 	* config/rx/rx.opt.urls: Likewise.
+ 	* config/sh/sh.opt.urls: Likewise.
+ 	* config/sparc/sparc.opt.urls: Likewise.
+ 	* doc/invoke.texi: Add indexes for some compilation options.
+ 
+ 2024-04-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
+ 	avr16du32, avr32du14, avr32du20, avr32du28,  avr32du32.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2024-04-15  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/114668
+ 	* config/riscv/autovec.md: Add VLS.
+ 
+ 2024-04-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR gcov-profile/114715
+ 	* gimplify.cc (gimplify_switch_expr): Set the location of the
+ 	GIMPLE switch.
+ 
+ 2024-04-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114696
+ 	* config/i386/i386.md (isa): Add apx_ndd_64.
+ 	(enabled): Likewise.
+ 	(*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
+ 	signed integer constant and enable jO only for apx_ndd_64.
+ 	(*add<dwi>3_doubleword_cc_overflow_1): Likewise.
+ 	(*and<dwi>3_doubleword): Likewise.
+ 	(*<code><dwi>3_doubleword): Likewise.
+ 
+ 2024-04-15  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/114403
+ 	* tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
+ 	peeling for gaps and early break.
+ 
+ 2024-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114634
+ 	* attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
+ 	decls with NULL TREE_TYPE.
+ 
+ 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def: Add RCPC to
+ 	RCPC3 dependencies.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
+ 	RCPC3 bit
+ 
+ 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
+ 	dependencies.
+ 
+ 2024-04-12  Will Schmidt  <will_schmidt@linux.ibm.com>
+ 	    Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/101865
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
+ 	TARGET_POWER8.
+ 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
+ 	OPTION_MASK_POWER8.
+ 	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
+ 	(ISA_2_7_MASKS_SERVER): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
+ 	comment.  Use OPTION_MASK_POWER8 and TARGET_POWER8.
+ 	* config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
+ 	* config/rs6000/rs6000.md (define_attr "isa"): Add p8.
+ 	(define_attr "enabled"): Handle it.
+ 	(define_insn "prefetch"): Use TARGET_POWER8.
+ 	* config/rs6000/rs6000.opt (mpower8-internal): New.
+ 
+ 2024-04-12  Jason Merrill  <jason@redhat.com>
+ 	    Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/113141
+ 	* doc/invoke.texi: Document -Wcast-user-defined.
+ 
+ 2024-04-12  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
+ 
+ 	* config/riscv/riscv.opt.urls: Regenerated.
+ 
+ 2024-04-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/114666
+ 	* match.pd (`!a?b:c`): Reject signed types for the condition.
+ 	(`a?~t:t`): Likewise.
+ 
+ 2024-04-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
+ 	all tiles to have the same suffix.
+ 
+ 2024-04-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
+ 	as the return value instead of unsigned.
+ 	(riscv_vector_element_bitsize): Ditto.
+ 	(riscv_vector_required_min_vlen): Ditto.
+ 	(riscv_validate_vector_type): Take int type for local variable(s).
+ 
+ 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
+ 	returns_twice diagnostics translatable.
+ 
+ 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/114687
+ 	* gimple-iterator.cc (gsi_safe_insert_before): Only use
+ 	edge_before_returns_twice_call if bb_has_abnormal_pred.
+ 	(gsi_safe_insert_seq_before): Likewise.
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
+ 	push to m_returns_twice_calls if bb_has_abnormal_pred.
+ 
+ 2024-04-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114639
+ 	* config/riscv/riscv.cc (riscv_function_value_regno_p): Add
+ 	TARGET_VECTOR predicate for V_RETURN regno.
+ 
+ 2024-04-11  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
+ 	fix potentially looking up wrong type for asm debug comment info.
+ 	Split into...
+ 	(btf_asm_datasec_type_ref): ... This. New.
+ 	(btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
+ 	(btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
+ 	(btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
+ 
+ 2024-04-11  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_asm_sou_member): Always emit non-representable
+ 	bitfield members as having 'void' type.  Refactor slightly.
+ 
+ 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def:
+ 	Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
+ 	and "ls64_accdata" FMV features.
+ 
+ 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def:
+ 	Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
+ 	"fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
+ 	"sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
+ 	"wfxt" entries.
+ 
+ 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def:
+ 	Fix "rmd"->"rdm", and add FMV to "rdma".
+ 	* config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
+ 
+ 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (compare_feature_masks):
+ 	Use ARRAY_SIZE and >=0 for iteration bounds.
+ 	(aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
+ 
+ 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
+ 
+ 2024-04-11  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/standards.texi (Language Standards Supported by GCC):
+ 	Add Modula-2 language section.
+ 
+ 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/110027
+ 	* asan.cc (asan_emit_stack_protection): Assert offsets[0] is
+ 	zero if there is no stack protect guard, otherwise
+ 	-ASAN_RED_ZONE_SIZE.  If alignb > ASAN_RED_ZONE_SIZE and there is
+ 	stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
+ 	the top of the stack into account when computing base_align_bias.
+ 	Recompute use_after_return_class from asan_frame_size + base_align_bias
+ 	and set to -1 if that would overflow to 11.
+ 
+ 2024-04-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109596
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
+ 	debug stmts to nonexit->dest rather than exit->dest.
+ 
+ 2024-04-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114681
+ 	* tree-inline.cc (copy_bb): Key on the remapped stmt
+ 	to identify gconds to have condition coverage data remapped.
+ 
+ 2024-04-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114639
+ 	* config/riscv/riscv.cc (riscv_function_value_regno_p): New func
+ 	impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
+ 	(riscv_get_raw_result_mode): New func imple for hook
+ 	TARGET_GET_RAW_RESULT_MODE.
+ 	(TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
+ 	(TARGET_GET_RAW_RESULT_MODE): Ditto.
+ 	* config/riscv/riscv.h (V_RETURN): New macro for vector return.
+ 	(GP_RETURN_FIRST): New macro for the first GPR in return.
+ 	(GP_RETURN_LAST): New macro for the last GPR in return.
+ 	(FP_RETURN_FIRST): Diito but for FPR.
+ 	(FP_RETURN_LAST): Ditto.
+ 	(FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
+ 	TARGET_FUNCTION_VALUE_REGNO_P.
+ 
+ 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	* btfout.cc (btf_asm_type): Do not skip emitting members of
+ 	unknown type.
+ 
+ 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	PR debug/112878
+ 	* dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
+ 	call to ctf_add_slice.  Use CTF_K_UNKNOWN type if fail.
+ 
+ 2024-04-10  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR target/114606
+ 	* config/i386/i386-options.cc (ix86_option_override_internal): Use
+ 	opts_set rather than checking == CF_NONE.
+ 
+ 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/analyzer.texi: Various tweaks.
+ 
+ 2024-04-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114672
+ 	* tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
+ 	allow mode-precision results.
+ 
+ 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
+ 	(aarch64_bitint_type_info): New function.
+ 	(aarch64_return_in_memory_1): Return large _BitInt's in memory.
+ 	(aarch64_function_arg_alignment): Adapt to correctly return the ABI
+ 	mandated alignment of _BitInt(N) where N > 128 as the alignment of
+ 	TImode.
+ 	(aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
+ 
+ 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
+ 	(aarch64_layout_arg): Don't emit diagnostics for types involving
+ 	_BitInt(N).
+ 
+ 2024-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114462
+ 	* tree-core.h (enum annot_expr_kind): Add
+ 	annot_expr_maybe_infinite_kind enumerator.
+ 	* gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
+ 	* tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
+ 	(replace_loop_annotate): Likewise.  Move loop->finite_p initialization
+ 	before the replace_loop_annotate_in_block calls.
+ 	* tree-pretty-print.cc (dump_generic_node): Handle
+ 	annot_expr_maybe_infinite_kind.
+ 
+ 2024-04-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR rtl-optimization/101523
+ 	* combine.cc (try_combine): Don't do a 2-insn combination if
+ 	it does not in fact change I2.
+ 
+ 2024-04-10  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/101865
+ 	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
+ 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete redundant
+ 	OPTION_MASK_DIRECT_MOVE usage.  Delete TARGET_DIRECT_MOVE dead code.
+ 	(rs6000_opt_masks): Neuter the "direct-move" option.
+ 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
+ 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete useless
+ 	comment.
+ 	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
+ 	OPTION_MASK_DIRECT_MOVE.
+ 	(OTHER_VSX_VECTOR_MASKS): Likewise.
+ 	(POWERPC_MASKS): Likewise.
+ 	* config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
+ 
+ 2024-04-10  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
+ 	memory constraint.
+ 	(sha1msg2): Likewise.
+ 	(sha1nexte): Likewise.
+ 	(sha1rnds4): Likewise.
+ 	(sha256msg1): Likewise.
+ 	(sha256msg2): Likewise.
+ 	(sha256rnds2): Likewise.
+ 	(aes<aesklvariant>u8): Use "jm" instead of "m" for memory
+ 	constraint.
+ 	(*aes<aeswideklvariant>u8): Likewise.
+ 	(*encodekey128u32): Use "jr" instead of "r" for register
+ 	constraints.
+ 	(*encodekey256u32): Likewise.
+ 
+ 2024-04-09  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_as_replicate): Implement.
+ 	(vectorize_vec_perm_const_1): Call new function.
+ 	* config/s390/vx-builtins.md (vec_splat<mode>): Change to...
+ 	(@vec_splat<mode>): ...this.
+ 
+ 2024-04-09  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/114608
+ 	* btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
+ 	generating BTF for BPF CO-RE target.
+ 
+ 2024-04-09  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
+ 	Add functions_nulls parameter to pragma_handlers.
+ 	* config/aarch64/aarch64-protos.h: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(enum handle_pragma_index): Add enum to count
+ 	number of pragmas to be handled.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(GTY): Add global variable for initial indexes
+ 	and change overload_names to an array.
+ 	(function_builder::function_builder):
+ 	Add pragma handler information.
+ 	(function_builder::add_function):
+ 	Add code for overwriting previous
+ 	registered_functions entries.
+ 	(add_unique_function):
+ 	Use an array to register overload_names
+ 	for both pragma handler modes.
+ 	(add_overloaded_function): Likewise.
+ 	(init_builtins):
+ 	Add functions_nulls parameter to pragma_handlers.
+ 	(handle_arm_sve_h):
+ 	Initialize pragma handler information.
+ 	(handle_arm_neon_sve_bridge_h): Likewise.
+ 	(handle_arm_sme_h): Likewise.
+ 
+ 2024-04-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/114655
+ 	* lto-wrapper.cc (merge_flto_options): Add force argument.
+ 	(merge_and_complain): Do not force here.
+ 	(run_gcc): But here to make the link-time -flto option override
+ 	any compile-time one.
+ 
+ 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
+ 
+ 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR gcov-profile/114601
+ 	* tree-profile.cc (condition_uid): Guard fn->cond_uids access.
+ 
+ 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114576
+ 	* config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
+ 	(enabled): Remove aes isa check, add vaes_avx512vl.
+ 	* config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
+ 	jm instead of m for second alternative and emit {evex} prefix
+ 	for it if !TARGET_AES.  Use noavx,avx,vaes_avx512vl isa attribute.
+ 	(vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
+ 	vaesenclast_<mode>): Add second alternative with x instead of v
+ 	and jm instead of m.
+ 
+ 2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
+ 	Remove -fdebug-trace-api.
+ 	Add -fm2-debug-trace=.
+ 
+ 2024-04-09  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	PR target/113233
+ 	* config/loongarch/loongarch.cc (loongarch_reg_init):
+ 	Reinitialize the loongarch_regno_mode_ok cache.
+ 	(loongarch_option_override): Same.
+ 	(loongarch_save_restore_target_globals): Restore target globals.
+ 	(loongarch_set_current_function): Restore the target contexts
+ 	for functions.
+ 	(TARGET_SET_CURRENT_FUNCTION): Define.
+ 	* config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
+ 	switchable target context.
+ 	* config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
+ 	Initialize all builtin functions at startup.
+ 	(loongarch_expand_builtin): Turn assertion of builtin availability
+ 	into a test.
+ 
+ 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR middle-end/114627
+ 	* tree-profile.cc (instrument_decisions): Generate constant
+ 	at the start of loop.
+ 
+ 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR middle-end/114599
+ 	* tree-inline.cc (copy_bb): Copy cond_uids into callee.
+ 	(prepend_lexical_block): Remove outdated comment.
+ 	(add_local_variables): Remove bad cond_uids copy.
+ 
+ 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* expr.cc (convert_mode_scalar): Fix duplicated words in comment;
+ 	into into -> it into.
+ 	* function.h (function::cond_uids): Fix duplicated words in comment;
+ 	same same -> same.
+ 	* config/riscv/riscv-vector-costs.cc
+ 	(costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
+ 	model model -> model.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
+ 	duplicated words in comment; for for -> for.
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
+ 	duplicated words in comment; more more -> more.
+ 	* config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
+ 	duplicated words in comment; be be -> be.
+ 	* tree-profile.cc (masking_vectors): Fix duplicated words in comment;
+ 	has has -> has, the the -> the.
+ 	* value-range.cc (irange::set_range_from_bitmask): Fix duplicated
+ 	words in comment; the the -> the.
+ 	* gcov.cc (add_condition_counts): Fix duplicated words in comment;
+ 	to to -> to.
+ 	* vr-values.cc (get_scev_info): Fix duplicated words in comment;
+ 	the the -> to the.
+ 	* tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
+ 	by by -> by.
+ 	* mode-switching.cc (single_succ_confluence_n): Fix duplicated words
+ 	in comment; the the -> the.
+ 	* tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
+ 	comment; can can -> we can.
+ 	* gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
+ 	in comment; it it -> it is.
+ 	* tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
+ 	to to -> to.
+ 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
+ 	words in comment; if if -> if.
+ 	* doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
+ 	Change take to takes.
+ 	* doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
+ 	be be -> be.
+ 	(-minline-memops-threshold): Likewise.
+ 
+ 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114628
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
+ 	before returns_twice calls as is, don't push them into arg_stmts
+ 	vector/move to edges.
+ 
+ 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
+ 
+ 	* config.gcc: Recognize aarch64*-*-gnu* targets.
+ 	* config/aarch64/aarch64-gnu.h: New file.
+ 
+ 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
+ 
+ 	* config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
+ 	* config/gnu.h: ...to here.
+ 
+ 2024-04-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114604
+ 	* gimple-range.cc (enable_ranger): Initialize the global
+ 	bitmap obstack.
+ 	(disable_ranger): Release it.
+ 
+ 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config.gcc (aarch64-*-rtems*): Add target makefile fragment
+ 	t-aarch64-rtems.
+ 	* config/aarch64/t-aarch64-rtems: New file.
+ 
+ 2024-04-09  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114587
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
+ 
+ 2024-04-09  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/88309
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
+ 	wrong align passed to function build_aligned_type.
+ 	* tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
+ 	assertion to ensure align_unit should be positive.
+ 	* tree.cc (build_qualified_type): Update function comments.
+ 
+ 2024-04-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR rtl-optimization/112560
+ 	* combine.cc (try_combine): Replace cc_use_loc with the entire
+ 	new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
+ 	Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
+ 	with a new mode.
+ 	* config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
+ 	operand 1.
+ 
+ 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
+ 	New.
+ 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
+ 	* doc/invoke.texi (Optimize Options): Document it.
+ 
+ 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
+ 	'asm_goto_with_outputs'.  Add comment to 'lra'.
+ 
+ 2024-04-08  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113359
+ 	* ipa-icf-gimple.h (func_checker): New members
+ 	safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
+ 	and m_total_scalarization_limit.
+ 	(func_checker::func_checker): Initialize new member variables.
+ 	* ipa-icf-gimple.cc: Include tree-sra.h.
+ 	(func_checker::func_checker): Initialize new member variables.
+ 	(func_checker::safe_for_total_scalarization_p): New function.
+ 	(func_checker::compare_operand): Use the new function.
+ 	* tree-sra.h (sra_get_max_scalarization_size): Declare.
+ 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
+ 	* tree-sra.cc (prepare_iteration_over_array_elts): New function.
+ 	(class sra_padding_collecting): New.
+ 	(sra_padding_collecting::record_padding): Likewise.
+ 	(scalarizable_type_p): Rename to totally_scalarizable_type_p.  Add
+ 	ability to record padding when requested.
+ 	(totally_scalarize_subtree): Split out gathering information necessary
+ 	to iterate over array elements to prepare_iteration_over_array_elts.
+ 	Fix errornous early exit.
+ 	(analyze_all_variable_accesses): Adjust the call to
+ 	totally_scalarizable_type_p.  Move determining of total scalariation
+ 	size limit...
+ 	(sra_get_max_scalarization_size): ...here.
+ 	(check_ts_and_push_padding_to_vec): New function.
+ 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
+ 
+ 2024-04-08  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113907
+ 	* ipa-prop.h (class ipa_vr): Declare new overload of a member function
+ 	equal_p.
+ 	(ipa_jump_functions_equivalent_p): Declare.
+ 	* ipa-prop.cc (ipa_vr::equal_p): New function.
+ 	(ipa_agg_pass_through_jf_equivalent_p): Likewise.
+ 	(ipa_agg_jump_functions_equivalent_p): Likewise.
+ 	(ipa_jump_functions_equivalent_p): Likewise.
+ 	* ipa-cp.h (values_equal_for_ipcp_p): Declare.
+ 	* ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
+ 	* ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
+ 	ipa-cp.h and ipa-prop.h.
+ 	(func_checker::compare_gimple_call): Comapre jump functions.
+ 
+ 2024-04-08  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/114607
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svusdot_impl::expand): Fix botched attempt to swap the operands
+ 	for svsudot.
+ 
+ 2024-04-08  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
+ 
+ 	* config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
+ 	* config.gcc: Add --with-tls configuration option to change the
+ 	default TLS flavor.
+ 	* config/riscv/riscv.h: Add TARGET_TLSDESC determined from
+ 	-mtls-dialect and with_tls defaults.
+ 	* config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
+ 	two TLS flavors.
+ 	* config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
+ 	* config/riscv/riscv.md: Add instruction sequence for TLSDESC.
+ 	* config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
+ 	sequence length data for TLSDESC.
+ 	(riscv_legitimize_tls_address): Add lowering of TLSDESC.
+ 	* doc/install.texi: Document --with-tls for RISC-V.
+ 	* doc/invoke.texi: Document -mtls-dialect for RISC-V.
+ 
+ 2024-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114605
+ 	* config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
+ 	if mem doesn't have MODE_INT mode, or pool constant doesn't
+ 	have MODE_INT mode, or if pool constant mode is smaller than
+ 	mem mode.  If mem mode is different from pool constant mode,
+ 	try to simplify subreg.  If that doesn't work, punt, if it
+ 	does, use the simplified constant instead of the constant pool
+ 	constant.
+ 	* config/s390/s390.md (movdi from const pool peephole): If
+ 	either low or high 32-bit part is zero, just emit move insn
+ 	instead of move + ior.
+ 
+ 2024-04-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114624
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Get at the PHI arg location before releasing the PHI node.
+ 
+ 2024-04-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
+ 	required_ext arg when invoke add function.
+ 	(build_th_loadstore): Ditto.
+ 	(struct vcreate_def): Ditto.
+ 	(struct read_vl_def): Ditto.
+ 	(struct vlenb_def): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
+ 	Introduce new arg required_ext to fill in the register func.
+ 	(function_builder::add_unique_function): Ditto.
+ 	(function_builder::add_overloaded_function): Ditto.
+ 	(expand_builtin): Leverage required_extensions_specified to
+ 	check if the required extension is provided.
+ 	* config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
+ 	func impl to convert the required_ext enum to the extension name.
+ 	(required_extensions_specified): New func impl to predicate if
+ 	the required extension is well feeded.
+ 
+ 2024-04-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
+ 	specs.
+ 
+ 2024-04-08  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc: Use length()
+ 
+ 2024-04-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
+ 	struct to hold all intrinisc related flags.
+ 	(riscv_pragma_intrinsic_flags_pollute): New func to pollute
+ 	the intrinsic flags and backup original flags.
+ 	(riscv_pragma_intrinsic_flags_restore): New func to restore
+ 	the flags from the backup intrinsic flags.
+ 	(riscv_pragma_intrinsic): Pollute the flags and register all
+ 	possible builtin types and functions, then restore and reinit.
+ 	* config/riscv/riscv-protos.h (reinit_builtins): New func
+ 	decl to reinit after flags pollution.
+ 	(riscv_option_override): New extern func decl.
+ 	* config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
+ 	New func to register builtin types if null.
+ 	(DEF_RVV_TYPE): Ditto.
+ 	(DEF_RVV_TUPLE_TYPE): Ditto.
+ 	(reinit_builtins): New func impl to reinit after flags pollution.
+ 	(expand_builtin): Return
+ 	target rtx after error_at.
+ 	* config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
+ 	func to tell one tree type is integer or not.
+ 	(riscv_vector_float_type_p): New predicate func to tell one tree
+ 	type is float or not.
+ 	(riscv_vector_element_bitsize): New func to get the element bitsize
+ 	of a vector tree type.
+ 	(riscv_vector_required_min_vlen): New func to get the required min vlen
+ 	of a vector tree type.
+ 	(riscv_validate_vector_type): New func to validate the tree type
+ 	is valid on flags.
+ 	(riscv_return_value_is_vector_type_p): Leverage the func
+ 	riscv_validate_vector_type to do the tree type validation.
+ 	(riscv_arguments_is_vector_type_p): Ditto.
+ 	(riscv_override_options_internal): Ditto.
+ 
+ 2024-04-08  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/112919
+ 	* config/loongarch/loongarch-def.cc (la664_align): Newly defined
+ 	function that sets alignment rules under the LA664 microarchitecture.
+ 	* config/loongarch/loongarch-opts.cc
+ 	(loongarch_target_option_override): If not optimizing for size, set
+ 	the default alignment to what the target wants.
+ 	* config/loongarch/loongarch-tune.h (struct loongarch_align): Add
+ 	new member variables jump and loop.
+ 
+ 2024-04-06  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114590
+ 	* config/i386/i386.md (x86_64_shld): Use explicit shift count in
+ 	AT&T syntax.
+ 	(x86_64_shld_ndd): Likewise.
+ 	(x86_shld): Likewise.
+ 	(x86_shld_ndd): Likewise.
+ 	(x86_64_shrd): Likewise.
+ 	(x86_64_shrd_ndd): Likewise.
+ 	(x86_shrd): Likewise.
+ 	(x86_shrd_ndd): Likewise.
+ 
+ 2024-04-06  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR middle-end/114599
+ 	* tree-inline.cc (add_local_variables): Copy cond_uids mappings.
+ 
+ 2024-04-05  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/114588
+ 	* diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
+ 	color capability names.
+ 	* doc/invoke.texi: Document them in description of GCC_COLORS.
+ 	* text-art/style.cc: Include "diagnostic-color.h".
+ 	(text_art::get_style_from_color_cap_name): New.
+ 	* text-art/types.h (get_style_from_color_cap_name): New decl.
+ 
+ 2024-04-05  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
+ 	Fix double space after const qualifier on valid ().
+ 
+ 2024-04-05  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113964
+ 	* ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
+ 	Force values obtined through pass-through maps to the expected
+ 	split type.
+ 
+ 2024-04-05  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2024-04-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/114603
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
+ 	with...
+ 	(@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
+ 	a ptrue.
+ 	(*cnot<mode>): Require operand 1 to be a ptrue.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
+ 	Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
+ 	with a ptrue.  Represent other _x operations as fully-defined _m
+ 	operations.
+ 
+ 2024-04-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114566
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
+ 	base_misaligned.
+ 
+ 2024-04-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114599
+ 	PR gcov-profile/114115
+ 	* symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
+ 	(is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
+ 	pair.
+ 	(symtab_node::check_ifunc_callee_symtab_nodes): Properly
+ 	allocate ifunc_ref_map here.
+ 
+ 2024-04-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/111571
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::common_initialization): Avoid creating
+ 	duplicate replacement entries.
+ 
+ 2024-04-04  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/114415
+ 	* sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
+ 	(sched_analyze_1): Treat stack pointer modification as memory read.
+ 	(sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
+ 	* sched-int.h (deps_desc): Add comment to pending_read_mems.
+ 
+ 2024-04-04  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/nvptx/mkoffload.cc (main): Call
+ 	gcc_init_libintl and diagnostic_color_init.
+ 
+ 2024-04-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114587
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__APX_F__ when APX is enabled.
+ 
+ 2024-04-04  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	* builtins.cc (expand_builtin_fork_or_exec): Check
+ 	condition_coverage_flag.
+ 	* collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
+ 	* common.opt: Add new options -fcondition-coverage and
+ 	-Wcoverage-too-many-conditions.
+ 	* doc/gcov.texi: Add --conditions documentation.
+ 	* doc/invoke.texi: Add -fcondition-coverage documentation.
+ 	* function.cc (free_after_compilation): Free cond_uids.
+ 	* function.h (struct function): Add cond_uids.
+ 	* gcc.cc: Link gcov on -fcondition-coverage.
+ 	* gcov-counter.def (GCOV_COUNTER_CONDS): New.
+ 	* gcov-dump.cc (tag_conditions): New.
+ 	* gcov-io.h (GCOV_TAG_CONDS): New.
+ 	(GCOV_TAG_CONDS_LENGTH): New.
+ 	(GCOV_TAG_CONDS_NUM): New.
+ 	* gcov.cc (class condition_info): New.
+ 	(condition_info::condition_info): New.
+ 	(condition_info::popcount): New.
+ 	(struct coverage_info): New.
+ 	(add_condition_counts): New.
+ 	(output_conditions): New.
+ 	(print_usage): Add -g, --conditions.
+ 	(process_args): Likewise.
+ 	(output_intermediate_json_line): Output conditions.
+ 	(read_graph_file): Read condition counters.
+ 	(read_count_file): Likewise.
+ 	(file_summary): Print conditions.
+ 	(accumulate_line_info): Accumulate conditions.
+ 	(output_line_details): Print conditions.
+ 	* gimplify.cc (next_cond_uid): New.
+ 	(reset_cond_uid): New.
+ 	(shortcut_cond_r): Set condition discriminator.
+ 	(tag_shortcut_cond): New.
+ 	(gimple_associate_condition_with_expr): New.
+ 	(shortcut_cond_expr): Set condition discriminator.
+ 	(gimplify_cond_expr): Likewise.
+ 	(gimplify_function_tree): Call reset_cond_uid.
+ 	* ipa-inline.cc (can_early_inline_edge_p): Check
+ 	condition_coverage_flag.
+ 	* ipa-split.cc (pass_split_functions::gate): Likewise.
+ 	* passes.cc (finish_optimization_passes): Likewise.
+ 	* profile.cc (struct condcov): New declaration.
+ 	(cov_length): Likewise.
+ 	(cov_blocks): Likewise.
+ 	(cov_masks): Likewise.
+ 	(cov_maps): Likewise.
+ 	(cov_free): Likewise.
+ 	(instrument_decisions): New.
+ 	(read_thunk_profile): Control output to file.
+ 	(branch_prob): Call find_conditions, instrument_decisions.
+ 	(init_branch_prob): Add total_num_conds.
+ 	(end_branch_prob): Likewise.
+ 	* tree-core.h (struct tree_exp): Add condition_uid.
+ 	* tree-profile.cc (struct conds_ctx): New.
+ 	(CONDITIONS_MAX_TERMS): New.
+ 	(EDGE_CONDITION): New.
+ 	(topological_cmp): New.
+ 	(index_of): New.
+ 	(single_p): New.
+ 	(single_edge): New.
+ 	(contract_edge_up): New.
+ 	(struct outcomes): New.
+ 	(conditional_succs): New.
+ 	(condition_index): New.
+ 	(condition_uid): New.
+ 	(masking_vectors): New.
+ 	(emit_assign): New.
+ 	(emit_bitwise_op): New.
+ 	(make_top_index_visit): New.
+ 	(make_top_index): New.
+ 	(paths_between): New.
+ 	(struct condcov): New.
+ 	(cov_length): New.
+ 	(cov_blocks): New.
+ 	(cov_masks): New.
+ 	(cov_maps): New.
+ 	(cov_free): New.
+ 	(find_conditions): New.
+ 	(struct counters): New.
+ 	(find_counters): New.
+ 	(resolve_counter): New.
+ 	(resolve_counters): New.
+ 	(instrument_decisions): New.
+ 	(tree_profiling): Check condition_coverage_flag.
+ 	(pass_ipa_tree_profile::gate): Likewise.
+ 	* tree.h (SET_EXPR_UID): New.
+ 	(EXPR_COND_UID): New.
+ 
+ 2024-04-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/114577
+ 	* config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
+ 	Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
+ 	New function.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
+ 	(svset_neonq_impl::expand): Optimise expansions whose first argument
+ 	is undefined.
+ 
+ 2024-04-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114485
+ 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
+ 	vect_step_op_neg isn't OK for partial vectors but only
+ 	for unknown niter.
+ 
+ 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114537
+ 	* fold-const.cc (native_encode_initializer): Look through
+ 	NON_LVALUE_EXPR if val is INTEGER_CST.
+ 
+ 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114555
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
+ 	m_bitfld_load and save_cast_conditional add any needed PHIs
+ 	and adjust t4 accordingly.
+ 
+ 2024-04-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114551
+ 	* tree-ssa-loop-split.cc (split_loop): If the guard is
+ 	only conditionally evaluated rewrite computations with
+ 	possibly undefined overflow to unsigned arithmetic.
+ 
+ 2024-04-04  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	PR gcov-profile/113765
+ 	* auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
+ 
+ 2024-04-03  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 
+ 2024-04-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR tree-optimization/114115
+ 	* cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
+ 	(cgraph_node): Add called_by_ifunc_resolver.
+ 	* cgraphunit.cc (symbol_table::compile): Call
+ 	symtab_node::check_ifunc_callee_symtab_nodes.
+ 	* symtab.cc (check_ifunc_resolver): New.
+ 	(ifunc_ref_map): Likewise.
+ 	(is_caller_ifunc_resolver): Likewise.
+ 	(symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
+ 	* tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
+ 	call profiling for IFUNC resolvers and their callees.
+ 
+ 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
+ 	suffix by the target name.
+ 
+ 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
+ 	and update wording for LLVM 18 release.
+ 
+ 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR other/111966
+ 	* config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
+ 	handling from ...
+ 	(main): ... here; call it to handle --with-arch config option
+ 	and -march= commandline.
+ 
+ 2024-04-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114552
+ 	* expr.cc (emit_push_insn): Only use store_constructor for
+ 	immediate_const_ctor_p if int_expr_size matches size.
+ 
+ 2024-04-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114557
+ 	PR tree-optimization/114480
+ 	* tree-phinodes.cc (release_phi_node): Return PHIs from
+ 	allocation buckets not covered by free_phinodes to GC.
+ 	(remove_phi_node): Release the PHI LHS before freeing the
+ 	PHI node.
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
+ 	before releasing it.
+ 
+ 2024-04-03  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Remove unused code.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_split_lsx_copy_d): Remove.
+ 	(loongarch_split_lsx_insert_d): Ditto.
+ 	(loongarch_split_lsx_fill_d): Ditto.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_split_lsx_copy_d): Ditto.
+ 	(loongarch_split_lsx_insert_d): Ditto.
+ 	(loongarch_split_lsx_fill_d): Ditto.
+ 	* config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
+ 	(lsx_vpickve2gr_<lsxfmt_f>): Ditto.
+ 	(abs<mode>2): Remove expander.
+ 	(vabs<mode>2): Rename 2 abs<mode>2.
+ 
+ 2024-04-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def: Fix comment.
+ 
+ 2024-04-02  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
+ 	print newline when not recursing.
+ 
+ 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_override_options): Update the
+ 	clang major version value in the dsymutil check.
+ 
+ 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_override_options): Reduce the debug
+ 	level to 2 if dsymutil cannot handle .macinfo sections.
+ 
+ 2024-04-02  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/t-loongarch: Add loongarch-def-arrays.h
+ 	to OPTION_H_EXTRA.
+ 
+ 2024-04-02  mengqinggang  <mengqinggang@loongson.cn>
+ 	    Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config.gcc: Add --with-tls option to change TLS flavor.
+ 	* config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
+ 	configure TLS flavor.
+ 	* config/loongarch/loongarch-def.h (struct loongarch_target): Add
+ 	tls_dialect.
+ 	* config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
+ 	flavor.
+ 	* config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
+ 	tls_dialect.
+ 	(loongarch_config_target): Ditto.
+ 	(loongarch_update_gcc_opt_status): Ditto.
+ 	* config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
+ 	(TARGET_TLS_DESC): New define.
+ 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
+ 	DESC instructions sequence length.
+ 	(loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
+ 	(loongarch_option_override_internal): Add la_opt_tls_dialect.
+ 	(loongarch_option_restore): Add la_target.tls_dialect.
+ 	* config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
+ 	code model for TLS DESC.
+ 	(got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.opt.urls: Ditto.
+ 	* doc/invoke.texi: Add a description of the compilation option
+ 	'-mtls-dialect={trad,desc}'.
+ 
+ 2024-04-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 
+ 2024-04-01  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
+ 	aliases to -mrecip={all,none}, respectively.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
+ 	(ABI_FPU64_P): ...this.
+ 	(ABI_FPU_32): Rename to...
+ 	(ABI_FPU32_P): ...this.
+ 	(ABI_FPU_NONE): Rename to...
+ 	(ABI_NOFPU_P): ...this.
+ 	(ABI_LP64_P): Define.
+ 	* config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
+ 	Merged into loongarch_global_init.
+ 	(loongarch_cpu_option_override): Renamed to
+ 	loongarch_target_option_override.
+ 	(loongarch_option_override_internal): Move the work after
+ 	loongarch_config_target into loongarch_target_option_override.
+ 	(loongarch_global_init): Define.
+ 	(INIT_TARGET_FLAG): Move to loongarch-opts.cc.
+ 	(loongarch_option_override): Call loongarch_global_init
+ 	separately.
+ 	* config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
+ 	Split the parsing of -mrecip=<string> from
+ 	loongarch_option_override_internal.
+ 	(loongarch_generate_mrecip_scheme): Define. Split from
+ 	loongarch_option_override_internal.
+ 	(loongarch_target_option_override): Define. Renamed from
+ 	loongarch_cpu_option_override.
+ 	(loongarch_init_misc_options): Define. Split from
+ 	loongarch_option_override_internal.
+ 	(INIT_TARGET_FLAG): Move from loongarch.cc.
+ 	* config/loongarch/loongarch-opts.h (loongarch_target_option_override):
+ 	New prototype.
+ 	(loongarch_parse_mrecip_scheme): New prototype.
+ 	(loongarch_init_misc_options): New prototype.
+ 	(TARGET_ABI_LP64): Simplify with ABI_LP64_P.
+ 	* config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
+ 	Do not reference specific CPU architecture (LA664).
+ 	(TARGET_RECIP_SQRT): Same.
+ 	(TARGET_RECIP_RSQRT): Same.
+ 	(TARGET_RECIP_VEC_DIV): Same.
+ 	(TARGET_RECIP_VEC_SQRT): Same.
+ 	(TARGET_RECIP_VEC_RSQRT): Same.
+ 
+ 2024-04-01  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* doc/invoke.texi: Add descriptions for the compilation
+ 	options.
+ 
+ 2024-03-31  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
+ 	and sfb_alu.
+ 
+ 2024-03-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
+ 	the term built-in over builtin.
+ 
+ 2024-03-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
+ 	Remove unused var decl.
+ 
+ 2024-03-30  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/114175
+ 	* config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
+ 	mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
+ 	functions if arg.type is NULL.
+ 
+ 2024-03-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* lto-compress.cc (lto_end_uncompression): Use
+ 	fatal_error instead of internal_error when ZSTD
+ 	is not enabled.
+ 
+ 2024-03-28  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/extensions.md (zero_extendqihi*): Add output
+ 	template for reg->reg case where the regs don't match.
+ 
+ 2024-03-28  Gaius Mulley  <(no_default)>
+ 
+ 	PR modula2/114517
+ 	* doc/gm2.texi: Mention gm2 treats a # in the first column
+ 	as a preprocessor directive unless -fno-cpp is supplied.
+ 
+ 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* predict.cc (estimate_bb_frequencies): Fix comment typo,
+ 	scalling -> scaling.
+ 
+ 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112303
+ 	* profile-count.h (profile_count::operator+): Perform
+ 	addition in uint64_t variable and set m_val to MIN of that
+ 	val and max_count.
+ 	(profile_count::operator+=): Likewise.
+ 	(profile_count::operator-=): Formatting fix.
+ 	(profile_count::apply_probability): Use safe_scale_64bit
+ 	even in the int overload.
+ 
+ 2024-03-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/113907
+ 	* ipa-icf.cc (sem_function::init): Hash PHI operands
+ 	(sem_function::compare_phi_node): Add argument about preserving order
+ 
+ 2024-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114480
+ 	* cfganal.cc (compute_idf): Use simpler bitmap iteration,
+ 	touch work_set only when phi_insertion_points changed.
+ 
+ 2024-03-28  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
+ 
+ 2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR rtl-optimization/101523
+ 	* combine.cc (try_combine): Don't do a 2-insn combination if
+ 	it does not in fact change I2.
+ 
+ 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (Spec Files): Use @var{S} instead of S,
+ 	@var{X} instead of X etc. for other placeholders.
+ 
+ 2024-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114057
+ 	* tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
+ 	BB reduction remain defs as scalar uses.
+ 
+ 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (rcpc3):
+ 	Fix FEATURE_STRING field to "lrcpc3".
+ 
+ 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def: Add LSE128
+ 	AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
+ 	feature.
+ 	* doc/invoke.texi (AArch64 Options): Document +lse128.
+ 
+ 2024-03-26  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-feature-deps.h: Use constexpr for
+ 	out-of-line statics.
+ 
+ 2024-03-26  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	PR target/114431
+ 	* btfout.cc (get_name_for_datasec_entry): Add function.
+ 	(btf_asm_datasec_entry): Print label when possible.
+ 
+ 2024-03-26  Richard Ball  <richard.ball@arm.com>
+ 
+ 	PR target/114272
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE):
+ 	Change SCHEDULER_IDENT from cortexa55 to cortexa53
+ 	for Cortex-A510 and Cortex-A520.
+ 
+ 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111151
+ 	* fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
+ 	MULT_EXPR altogether, or for MAX_EXPR if c is -1.
+ 
+ 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/111736
+ 	* tsan.cc (instrument_expr): Punt on non-generic address space
+ 	accesses.
+ 
+ 2024-03-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114471
+ 	* tree-vect-stmts.cc (vectorizable_operation): Verify operand
+ 	types are compatible with the result type.
+ 
+ 2024-03-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114464
+ 	* tree-vect-loop.cc (vectorizable_recurr): Verify the latch
+ 	vector type is compatible with what we chose for the recurrence.
+ 
+ 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
+ 	Fix comment typo - multple -> multiple.
+ 	* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
+ 	Likewise.
+ 
+ 2024-03-26  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
+ 	__mips_strict_alignment if STRICT_ALIGNMENT.
+ 
+ 2024-03-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config.gcc (amdgcn): Add gfx1036 entries.
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
+ 	(gcn_local_sym_hash): Likewise.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
+ 	(TARGET_GFX1036): New macro.
+ 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
+ 	(gcn_omp_device_kind_arch_isa): Likewise.
+ 	(output_file_start): Likewise.
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
+ 	(TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
+ 	* config/gcn/gcn.opt: Add gfx1036.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
+ 	(main): Handle gfx1036.
+ 	* config/gcn/t-omp-device: Add gfx1036 isa.
+ 	* doc/install.texi (amdgcn): Add gfx1036.
+ 	* doc/invoke.texi (-march): Likewise.
+ 
+ 2024-03-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
+ 	when V is disabled and init the RVV types and intrinic APIs.
+ 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
+ 	error if V ext is disabled.
+ 	* config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
+ 	Ditto.
+ 	(riscv_arguments_is_vector_type_p): Ditto.
+ 	(riscv_vector_cc_function_p): Ditto.
+ 	* config/riscv/riscv_vector.h: Remove error if V is disable.
+ 
+ 2024-03-23  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_output_global_address): Handle
+ 	UNSPEC_DLTIND14R addresses.
+ 	* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
+ 	UNSPEC_DLTIND14R address.
+ 
+ 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114433
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
+ 	m_bitfld_load check save_first rather than m_first.
+ 
+ 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114425
+ 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
+ 	_Complex large/huge _BitInt types like the large/huge _BitInt types.
+ 
+ 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111683
+ 	* tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
+ 	and comp_step is RS_NONZERO, return false if any reference in the
+ 	component doesn't have DR_STEP a multiple of access size.
+ 
+ 2024-03-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md: Add new split pattern described above.
+ 
+ 2024-03-22  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
+ 	for deprecated SIGNAL and INTERRUPT usage without respective header.
+ 
+ 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
+ 	(atomic_load<mode>): Adjust RDNA cache settings.
+ 	(atomic_store<mode>): Likewise.
+ 	(atomic_exchange<mode>): Likewise.
+ 
+ 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
+ 	RDNA devices.
+ 
+ 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config.gcc (amdgcn): Add gfx1103 entries.
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
+ 	(gcn_local_sym_hash): Likewise.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
+ 	(TARGET_GFX1103): New macro.
+ 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
+ 	(gcn_omp_device_kind_arch_isa): Likewise.
+ 	(output_file_start): Likewise.
+ 	(gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
+ 	* config/gcn/gcn.opt: Add gfx1103.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
+ 	(main): Handle gfx1103.
+ 	* config/gcn/t-omp-device: Add gfx1103 isa.
+ 	* doc/install.texi (amdgcn): Add gfx1103.
+ 	* doc/invoke.texi (-march): Likewise.
+ 
+ 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
+ 	bitmasks.
+ 	(do_compare_and_jump): Remove now-redundant similar code.
+ 	* internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
+ 	bitmasks.
+ 	(add_mask_and_len_args): Likewise.
+ 
+ 2024-03-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
+ 	macro __riscv_v_fixed_vlen when zvl.
+ 	* config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
+ 	New static func to take care of the RVV types decorated by
+ 	the attributes.
+ 
+ 2024-03-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c/109619
+ 	* builtins.cc (fold_builtin_1): Use error_operand_p
+ 	instead of checking against ERROR_MARK.
+ 	(fold_builtin_2): Likewise.
+ 	(fold_builtin_3): Likewise.
+ 
+ 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/111736
+ 	* ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
+ 	SANITIZE_NULL instrumentation for non-generic address spaces
+ 	for which targetm.addr_space.zero_address_valid (as) is true.
+ 
+ 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114405
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
+ 	Set rprec to limb_prec rather than 0 if tprec is divisible by
+ 	limb_prec.  In the last bf_cur handling, set rprec to (tprec + bo_bit)
+ 	% limb_prec rather than tprec % limb_prec and use just rprec instead
+ 	of rprec + bo_bit.  For build_bit_field_ref offset, divide
+ 	(tprec + bo_bit) by limb_prec rather than just tprec.
+ 
+ 2024-03-22  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/114194
+ 	* config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
+ 	Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
+ 
+ 2024-03-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
+ 	tie for scalable and final stack adjustment if needed.
+ 	Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
+ 
+ 2024-03-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114352
+ 	* common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
+ 	New struct for func decl and target name.
+ 	(struct riscv_func_target_hasher): New hasher for hash table mapping
+ 	from the fn_decl to fn_target_name.
+ 	(riscv_func_decl_hash): New func to compute the hash for fn_decl.
+ 	(riscv_func_target_hasher::hash): New func to impl hash interface.
+ 	(riscv_func_target_hasher::equal): New func to impl equal interface.
+ 	(riscv_cmdline_subset_list): New static var for cmdline subset list.
+ 	(riscv_func_target_table_lazy_init): New func to lazy init the func
+ 	target hash table.
+ 	(riscv_func_target_get): New func to get target name from hash table.
+ 	(riscv_func_target_put): New func to put target name into hash table.
+ 	(riscv_func_target_remove_and_destory): New func to remove target
+ 	info from the hash table and destory it.
+ 	(riscv_parse_arch_string): Set the static var cmdline_subset_list.
+ 	* config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
+ 	var for cmdline subset list.
+ 	(riscv_func_target_get): New func decl.
+ 	(riscv_func_target_put): Ditto.
+ 	(riscv_func_target_remove_and_destory): Ditto.
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Take cmdline_subset_list instead of current_subset_list when clone.
+ 	(riscv_process_target_attr): Record the func target info to hash table.
+ 	(riscv_option_valid_attribute_p): Add new arg tree fndel.
+ 	* config/riscv/riscv.cc (riscv_declare_function_name): Consume the
+ 	func target info and print the arch message.
+ 
+ 2024-03-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114352
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
+ 	Replace implied, combine and check to func finalize.
+ 	(riscv_subset_list::finalize): New func impl to take care of
+ 	implied, combine ext and related checks.
+ 	* config/riscv/riscv-subset.h: Add func decl for finalize.
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Finalize the ext before return succeed.
+ 	* config/riscv/riscv.cc (riscv_set_current_function): Reinit the
+ 	machine mode before when set cur function.
+ 
+ 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
+ 
+ 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
+ 
+ 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
+ 	device_malloc call.
+ 
+ 2024-03-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/114396
+ 	* tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
+ 	and true to wi::from_mpz.
+ 
+ 2024-03-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111736
+ 	* asan.cc (instrument_derefs): Do not instrument accesses
+ 	to non-generic address-spaces.
+ 
+ 2024-03-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113727
+ 	* tree-sra.cc (analyze_access_subtree): Do not allow
+ 	replacements in subtrees when grp_partial_lhs.
+ 
+ 2024-03-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR middle-end/114347
+ 	* doc/invoke.texi: Document -fexcess-precision=16.
+ 
+ 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc (bpf_core_get_index): Check if
+ 	field contains a DECL_NAME.
+ 
+ 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
+ 	Add assert to validate the string is set.
+ 	* config/bpf/core-builtins.cc (cr_final): Make string struct
+ 	field as const.
+ 	(process_enum_value): Correct for field type change.
+ 	(process_type): Set access string to "0".
+ 
+ 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc (core_field_info): Add
+ 	support for POINTER_PLUS_EXPR in the root of the field expression.
+ 	(bpf_core_get_index): Likewise.
+ 	(pack_field_expr): Make the BTF type to point to the structure
+ 	related node, instead of its pointer type.
+ 	(make_core_safe_access_index): Correct to new code.
+ 
+ 2024-03-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/114407
+ 	* config/loongarch/loongarch-opts.cc (loongarch_config_target):
+ 	Fix typo in diagnostic message, enabing -> enabling.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
+ 	TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
+ 	nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
+ 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
+ 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
+ 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
+ 	skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
+ 	csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-20  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114365
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
+ 	a PHI node, set iv2 to its result afterwards.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
+ 	probabbility -> probability.
+ 	(ch_base::copy_headers): Fix comment typo: itrations -> iterations.
+ 
+ 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/114369
+ 	* system.h (vec_step): Define to vec_step_ when compiling
+ 	with clang on PowerPC.
+ 
+ 2024-03-20  demin.han  <demin.han@starfivetech.com>
+ 
+ 	PR target/112651
+ 	* config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
+ 	(enum rvv_max_lmul_enum): Ditto
+ 	(TARGET_MAX_LMUL): Ditto
+ 	* config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
+ 	* config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
+ 	(costs::better_main_loop_than_p): Ditto
+ 	* config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
+ 
+ 2024-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/113396
+ 	* tree-dfa.cc (get_ref_base_and_extent): Use index range
+ 	bounds only if they fit within the address-range constraints
+ 	of offset_int.
+ 
+ 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
+ 	UNITS_PER_FPREG macros.
+ 	(loongarch_hard_regno_nregs): Ditto.
+ 	(loongarch_class_max_nregs): Ditto.
+ 	(loongarch_get_separate_components): Ditto.
+ 	(loongarch_process_components): Ditto.
+ 	* config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
+ 	(UNITS_PER_HWFPVALUE): Ditto.
+ 	(UNITS_PER_FPVALUE): Ditto.
+ 
+ 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
+ 	of loongarch_expand_vec_cmp()'s return value.
+ 	(vec_cmpu<ILASX:mode><mode256_i>): Ditto.
+ 	* config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
+ 	(vec_cmpu<ILSX:mode><mode_i>): Ditto.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
+ 	type from bool to void.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
+ 
+ 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_cfun_has_cprestore_slot_p): Delete.
+ 	(loongarch_adjust_insn_length): Delete.
+ 	(current_section_name): Delete.
+ 	(loongarch_split_symbol_type): Delete.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_case_values_threshold): Delete.
+ 	(loongarch_spill_class): Delete.
+ 	(TARGET_OPTAB_SUPPORTED_P): Delete.
+ 	(TARGET_CASE_VALUES_THRESHOLD): Delete.
+ 	(TARGET_SPILL_CLASS): Delete.
+ 
+ 2024-03-20  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR c++/111918
+ 	* diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
+ 	* diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
+ 	Make use of DK_ANY to indicate a diagnostic was initially enabled.
+ 	(diagnostic_context::diagnostic_enabled): Do not change the type of
+ 	a diagnostic if the saved classification is type DK_ANY.
+ 
+ 2024-03-19  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108802
+ 	PR ipa/114254
+ 	* ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
+ 	at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
+ 	a pointer parameter.
+ 	(ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
+ 	parameter, also recognize the case when pfn pointer is loaded in its
+ 	own BB.
+ 
+ 2024-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/99829
+ 	* lra-constraints.cc (lra_constraints): Prevent removing insn
+ 	with reverse equivalence to memory if the memory was reloaded.
+ 
+ 2024-03-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/114348
+ 	* diagnostic-format-json.cc
+ 	(json_stderr_output_format::machine_readable_stderr_p): New.
+ 	(json_file_output_format::machine_readable_stderr_p): New.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_stream_output_format::machine_readable_stderr_p): New.
+ 	(sarif_file_output_format::machine_readable_stderr_p): New.
+ 	* diagnostic.cc (diagnostic_context::action_after_output): Move
+ 	"fnotice" to before "finish" call, so that we still have the
+ 	diagnostic_context.
+ 	(fnotice): Bail out if the user requested one of the
+ 	machine-readable diagnostic output formats on stderr.
+ 	* diagnostic.h
+ 	(diagnostic_output_format::machine_readable_stderr_p): New pure
+ 	virtual function.
+ 	(diagnostic_text_output_format::machine_readable_stderr_p): New.
+ 	(diagnostic_context::get_output_format): New accessor.
+ 
+ 2024-03-19  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	PR target/114175
+ 	* config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
+ 	riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL
+ 
+ 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/install.texi (Prerequisites): Document use of autogen for
+ 	libstdc++.
+ 
+ 2024-03-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114151
+ 	PR tree-optimization/114269
+ 	PR tree-optimization/114322
+ 	PR tree-optimization/114074
+ 	* tree-chrec.cc (chrec_fold_multiply): Restrict the use of
+ 	unsigned arithmetic when actual overflow on constant operands
+ 	is observed.
+ 
+ 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
+ 	arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-19  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/114175
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_setup_incoming_varargs): Only skip
+ 	loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
+ 	functions if arg.type is NULL.
+ 
+ 2024-03-19  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/114323
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::reads_global_state_p): Take CP_READ_MEMORY
+ 	into account.
+ 
+ 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
+ 	function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
+ 	rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114375
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
+ 	load permutation for masked loads but reject it when any
+ 	such is necessary.
+ 	* tree-vect-stmts.cc (vectorizable_load): Reject masked
+ 	VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
+ 	supported.
+ 
+ 2024-03-19  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Create XCVbi extension
+ 	support.
+ 	* config/riscv/riscv.opt: Likewise.
+ 	* config/riscv/corev.md: Implement cv_branch<mode> pattern
+ 	for cv.beqimm and cv.bneimm.
+ 	* config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
+ 	branch instruction pattern.
+ 	* config/riscv/constraints.md: Implement constraints
+ 	cv_bi_s5 - signed 5-bit immediate.
+ 	* config/riscv/predicates.md: Implement predicate
+ 	const_int5s_operand - signed 5 bit immediate.
+ 	* doc/sourcebuild.texi: Add XCVbi documentation.
+ 
+ 2024-03-19  Chen Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): New def.
+ 	(RISCV_CORE): Ditto.
+ 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
+ 	option.
+ 	* config/riscv/riscv.cc: New def.
+ 	* config/riscv/riscv.md: New include.
+ 	* config/riscv/xiangshan.md: New file.
+ 
+ 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/110902
+ 	PR analyzer/110928
+ 	PR analyzer/111305
+ 	PR analyzer/111441
+ 	* selftest.h (ASSERT_NE_AT): New macro.
+ 
+ 2024-03-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111822
+ 	* config/i386/i386-features.cc (smode_convert_cst): New function
+ 	to handle SImode, DImode and TImode immediates, generalized from
+ 	timode_convert_cst.
+ 	(timode_convert_cst): Remove.
+ 	(scalar_chain::convert_op): Unify from
+ 	general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
+ 	(general_scalar_chain::convert_op): Remove.
+ 	(timode_scalar_chain::convert_op): Remove.
+ 	(timode_scalar_chain::convert_insn): Update the call to
+ 	renamed timode_convert_cst.
+ 	* config/i386/i386-features.h (class scalar_chain):
+ 	Redeclare convert_op as protected class member.
+ 	(class general_calar_chain): Remove convert_op.
+ 	(class timode_scalar_chain): Ditto.
+ 
+ 2024-03-18  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/zn4zn5.md: Add file missed in the previous commit.
+ 
+ 2024-03-18  Jan Hubicka  <jh@suse.cz>
+ 	    Karthiban Anbazhagan  <Karthiban.Anbazhagan@amd.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
+ 	* common/config/i386/i386-common.cc (processor_names): Add znver5.
+ 	(processor_alias_table): Likewise.
+ 	* common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
+ 	family.
+ 	(processor_subtypes): Add znver5.
+ 	* config.gcc (x86_64-*-* |...): Likewise.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Let
+ 	march=native detect znver5 cpu's.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add
+ 	znver5.
+ 	* config/i386/i386-options.cc (m_ZNVER5): New definition
+ 	(processor_cost_table): Add znver5.
+ 	* config/i386/i386.cc (ix86_reassociation_width): Likewise.
+ 	* config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
+ 	(PTA_ZNVER5): New definition.
+ 	* config/i386/i386.md (define_attr "cpu"): Add znver5.
+ 	(Scheduling descriptions) Add znver5.md.
+ 	* config/i386/x86-tune-costs.h (znver5_cost): New definition.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
+ 	(ix86_adjust_cost): Likewise.
+ 	* config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
+ 	(avx512_store_by_pieces): Add m_ZNVER5.
+ 	* doc/extend.texi: Add znver5.
+ 	* doc/invoke.texi: Likewise.
+ 	* config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
+ 
+ 2024-03-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/constraints.md (CX2, CX3, CX4): New constraints.
+ 	* config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
+ 	* config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
+ 	* config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
+ 	(xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
+ 	(xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
+ 
+ 2024-03-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/114334
+ 	* config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
+ 	(MODEF248): New mode iterator.
+ 	(ssevecmodesuffix): Hanlde BF and HF.
+ 	* config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
+ 	(<code><mode>3): Ditto.
+ 
+ 2024-03-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/112415
+ 	* config/pa/pa.cc (pa_emit_move_sequence): Revise condition
+ 	for symbolic memory operands.
+ 	(pa_legitimate_address_p): Revise LO_SUM condition.
+ 	* config/pa/pa.h (INT14_OK_STRICT): Revise define.  Move
+ 	comment about GNU linker to predicates.md.
+ 	* config/pa/predicates.md (floating_point_store_memory_operand):
+ 	Revise condition for symbolic memory operands.  Update
+ 	comment.
+ 
+ 2024-03-17  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
+ 
+ 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114175
+ 	* config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
+ 	ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
+ 	if arg.type is NULL.
+ 
+ 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114329
+ 	* gimple-lower-bitint.cc (struct bitint_large_huge): Declare
+ 	build_bit_field_ref method.
+ 	(bitint_large_huge::build_bit_field_ref): New method.
+ 	(bitint_large_huge::lower_mergeable_stmt): Use it.
+ 
+ 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/riscv/riscv.opt.urls: Regenerated.
+ 	* config/rs6000/sysv4.opt.urls: Likewise.
+ 	* config/xtensa/xtensa.opt.urls: Likewise.
+ 
+ 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lower-subreg.cc (resolve_simple_move): Fix comment typo,
+ 	betwee -> between.
+ 	* edit-context.cc (class line_event): Fix comment typo,
+ 	betweeen -> between.
+ 
+ 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114339
+ 	* config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
+ 	a pasto, compare code against LE rather than GE.
+ 
+ 2024-03-15  Joe Ramsay  <Joe.Ramsay@arm.com>
+ 
+ 	* match.pd: Fix truncation pattern for -fno-signed-zeroes
+ 
+ 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114332
+ 	* expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
+ 
+ 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113466
+ 	* gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
+ 	member.
+ 	(bitint_large_huge::bitint_large_huge): Initialize it.
+ 	(bitint_large_huge::~bitint_large_huge): Release it.
+ 	(bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
+ 	before which at least one statement has been inserted.
+ 	(gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
+ 	calls to a different block and add corresponding PHIs.
+ 
+ 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.opt: Support -mstrict-align, and use
+ 	TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
+ 	as alias.
+ 	* config/mips/mips.h: Use TARGET_STRICT_ALIGN.
+ 	* config/mips/mips.opt.urls: Regenerate.
+ 	* doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
+ 
+ 2024-03-15  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	PR middle-end/114108
+ 	* tree-vect-patterns.cc (vect_recog_abd_pattern): Call
+ 	vect_convert_output with the correct vecitype.
+ 
+ 2024-03-15  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
+ 	Remove masking of operand 3.
+ 
+ 2024-03-14  Jason Merrill  <jason@redhat.com>
+ 
+ 	* tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
+ 	comments.
+ 
+ 2024-03-14  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/114288
+ 	* config/pa/pa.cc (pa_legitimate_address_p): Don't allow
+ 	14-bit displacements before reload for modes that may use
+ 	a floating-point load or store.
+ 
+ 2024-03-14  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.h (INT8_TYPE): Change to signed char.
+ 
+ 2024-03-14  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
+ 	patterns ahead of the l32i.n and s32i.n.
+ 
+ 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
+ 
+ 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113907
+ 	* ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
+ 	SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
+ 	functions.
+ 
+ 2024-03-14  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (any_ge): Remove.
+ 	(sge<u>_<X:mode><GPR:mode>): Remove.
+ 
+ 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114310
+ 	* config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
+ 	TImode force newval into a register.
+ 
+ 2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>
+ 
+ 	* tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
+ 	(OMP_CLAUSE__CACHE__READONLY): New macro.
+ 	* tree-core.h (struct GTY(()) tree_base): Adjust comments for new
+ 	uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
+ 	OMP_CLAUSE__CACHE__READONLY.
+ 	* tree-pretty-print.cc (dump_omp_clause): Add support for printing
+ 	OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
+ 
+ 2024-03-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_encode_section_info): Adjust the check
+ 	for misaligned symbols.
+ 	* config/s390/s390.opt: Improve documentation.
+ 
+ 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-iterator.cc (edge_before_returns_twice_call): Copy all
+ 	flags and probability from ad_edge to e edge.  If CDI_DOMINATORS
+ 	are computed, recompute immediate dominator of other_edge->src
+ 	and other_edge->dest.
+ 	(gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
+ 	for the returns_twice call case to the gsi_for_stmt (stmt) to deal
+ 	with update it for bb splitting.
+ 
+ 2024-03-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-features.cc
+ 	(general_scalar_chain::convert_op): Handle REG_EH_REGION note.
+ 	(convert_scalars_to_vector): Ditto.
+ 	* config/i386/i386-features.h (class scalar_chain): New
+ 	memeber control_flow_insns.
+ 
+ 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114319
+ 	* gimple-ssa-store-merging.cc
+ 	(imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
+ 	allow matching __builtin_bswap64 if there is bswapsi2 optab.
+ 
+ 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_secondary_reload): Guard
+ 	SYMBOL_FLAG_NOTALIGN2_P.
+ 
+ 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtin-types.def: Update to reflect latest
+ 	changes.
+ 	* config/s390/s390-builtins.def: Streamline vector builtins with
+ 	LLVM.
+ 
+ 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtins.def (vec_permi): Deprecate.
+ 	(vec_ctd): Deprecate.
+ 	(vec_ctd_s64): Deprecate.
+ 	(vec_ctd_u64): Deprecate.
+ 	(vec_ctsl): Deprecate.
+ 	(vec_ctul): Deprecate.
+ 	(vec_ld2f): Deprecate.
+ 	(vec_st2f): Deprecate.
+ 	(vec_insert): Deprecate overloads with bool vectors.
+ 
+ 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114313
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
+ 	TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
+ 	(bitint_large_huge::handle_load): Pass NULL_TREE rather than
+ 	rhs_type to limb_access for the bitfield load cases.
+ 	(bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
+ 	lhs_type to limb_access if nlhs is non-NULL.
+ 
+ 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/112709
+ 	* asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
+ 	build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
+ 	gsi_safe_insert_before instead of gsi_insert_before.
+ 
+ 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/112709
+ 	* gimple-iterator.h (gsi_safe_insert_before,
+ 	gsi_safe_insert_seq_before): Declare.
+ 	* gimple-iterator.cc: Include gimplify.h.
+ 	(edge_before_returns_twice_call, adjust_before_returns_twice_call,
+ 	gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
+ 	* ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
+ 	instrument_nonnull_arg, instrument_nonnull_return): Use
+ 	gsi_safe_insert_before instead of gsi_insert_before.
+ 	(maybe_instrument_pointer_overflow): Use force_gimple_operand,
+ 	gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
+ 	instead of force_gimple_operand_gsi.
+ 	(instrument_object_size): Likewise.  Use gsi_safe_insert_before
+ 	instead of gsi_insert_before.
+ 
+ 2024-03-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114121
+ 	* tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
+ 	converted operand properly.
+ 	(chrec_fold_multiply): Likewise.  Handle missed recursion.
+ 
+ 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/112709
+ 	* asan.cc (has_stmt_been_instrumented_p): Don't instrument call
+ 	stores on the caller side unless it is a call to a builtin or
+ 	internal function or function doesn't return by hidden reference.
+ 	(maybe_instrument_call): Likewise.
+ 	(instrument_derefs): Instrument stores to RESULT_DECL if
+ 	returning by hidden reference.
+ 
+ 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114293
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
+ 	max is smaller than min, set max to ~(size_t)0.
+ 
+ 2024-03-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
+ 	code style greater than 80 chars.
+ 	(riscv_cpu_cpp_builtins): Fix useless empty line, indent
+ 	with 3 space(s) and argument unalignment.
+ 
+ 2024-03-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114297
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Pass in the
+ 	live stmts SLP node to vect_create_epilog_for_reduction.
+ 
+ 2024-03-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR driver/114314
+ 	* common.opt (fmultiflags): Add RejectNegative.
+ 
+ 2024-03-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
+ 	* config/aarch64/aarch64.opt: Likewise.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
+ 	(aarch64_expand_epilogue): Likewise.
+ 	(aarch64_post_cfi_startproc): Likewise.
+ 	(aarch64_handle_no_branch_protection): Copy and rename.
+ 	(aarch64_handle_standard_branch_protection): Likewise.
+ 	(aarch64_handle_pac_ret_protection): Likewise.
+ 	(aarch64_handle_pac_ret_leaf): Likewise.
+ 	(aarch64_handle_pac_ret_b_key): Likewise.
+ 	(aarch64_handle_bti_protection): Likewise.
+ 	(aarch64_override_options): Update branch protection validation.
+ 	(aarch64_handle_attr_branch_protection): Likewise.
+ 	* config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
+ 	Pass branch protection type description as argument.
+ 	(struct aarch_branch_protect_type): Move from aarch-common.h.
+ 	* config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
+ 	Remove.
+ 	(aarch_handle_standard_branch_protection): Remove.
+ 	(aarch_handle_pac_ret_protection): Remove.
+ 	(aarch_handle_pac_ret_leaf): Remove.
+ 	(aarch_handle_pac_ret_b_key): Remove.
+ 	(aarch_handle_bti_protection): Remove.
+ 	(aarch_validate_mbranch_protection): Pass branch protection type
+ 	description as argument.
+ 	* config/arm/aarch-common.h (enum aarch_key_type): Remove.
+ 	(struct aarch_branch_protect_type): Remove.
+ 	* config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
+ 	* config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
+ 	(arm_handle_standard_branch_protection): Likewise.
+ 	(arm_handle_pac_ret_protection): Likewise.
+ 	(arm_handle_pac_ret_leaf): Likewise.
+ 	(arm_handle_bti_protection): Likewise.
+ 	(arm_configure_build_target): Update branch protection validation.
+ 	* config/arm/arm.opt: Remove aarch_ra_sign_key.
+ 
+ 2024-03-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114299
+ 	* gimplify.cc (internal_get_tmp_var): When gimplification
+ 	of VAL failed, return a decl.
+ 
+ 2024-03-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114278
+ 	* tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
+ 	longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
+ 
+ 2024-03-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR debug/113519
+ 	PR debug/113777
+ 	* dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
+ 	generate the DIE with the same parent as in the regular case.
+ 
+ 2024-03-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/95351
+ 	* fold-const.cc (merge_truthop_with_opposite_arm): Use
+ 	the type of the operands of the comparison and not the type
+ 	of the comparison.
+ 
+ 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
+ 
+ 	PR tree-optimization/110199
+ 	* tree-ssa-scopedtables.cc
+ 	(avail_exprs_stack::simplify_binary_operation): Generalize handling
+ 	of MIN_EXPR/MAX_EXPR to allow additional simplifications.  Canonicalize
+ 	comparison operands for other cases.
+ 
+ 2024-03-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Enable the assert
+ 	during transform process.
+ 	(vectorizable_load): Ditto.
+ 
+ 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
+ 
+ 	PR target/102250
+ 	* doc/install.texi: Document need for python when building
+ 	RISC-V compilers.
+ 
+ 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
+ 
+ 	PR target/111362
+ 	* mode-switching.cc (optimize_mode_switching): Only process
+ 	NONDEBUG insns.
+ 
+ 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md: Fix typos in comment, indentation glitches
+ 	and some other nits.
+ 
+ 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114284
+ 	* fwprop.cc (try_fwprop_subst_pattern): Don't propagate
+ 	src containing MEMs unless prop.likely_profitable_p ().
+ 
+ 2024-03-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
+ 	Support 'Q' for R_LARCH_RELAX for TLS IE.
+ 	(loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
+ 	IE.
+ 	* config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
+ 
+ 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
+ 	usum_widenqihi and add_zero_extend1.
+ 	[MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
+ 	sub+sign_extend.
+ 	* config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
+ 	Compute exact insn lengths.
+ 	(*usum_widenqihi3): Allow input operands to commute.
+ 
+ 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 
+ 2024-03-09  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/sync.md (atomic_cas_value_strong<mode>):
+ 	In loongarch64, a sign extension operation is added when
+ 	operands[2] is a register operand and the mode is SImode.
+ 
+ 2024-03-08  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113757
+ 	* tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
+ 	id->killed_new_ssa_names.
+ 
+ 2024-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/113790
+ 	* lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
+ 	for non-reload pseudo too.
+ 
+ 2024-03-08  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
+ 	not attempt inline expansion if size is above threshold.
+ 	* config/bpf/bpf.opt (-minline-memops-threshold): New option.
+ 	* doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
+ 	Document.
+ 
+ 2024-03-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114269
+ 	PR tree-optimization/114074
+ 	* tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
+ 	in the third CASE_CONVERT case as well.
+ 	(chrec_fold_multiply): Handle sign-conversions from unsigned
+ 	by performing the operation in the unsigned type.
+ 
+ 2024-03-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
+ 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
+ 
+ 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
+ 	asm_noperands < 0 means it is not asm goto too.
+ 
+ 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/38534
+ 	* config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
+ 	option.
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Don't use
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
+ 	ix86_noreturn_no_callee_saved_registers is enabled.
+ 	* doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
+ 
+ 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/113918
+ 	* dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
+ 	on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
+ 
+ 2024-03-08  demin.han  <demin.han@starfivetech.com>
+ 
+ 	PR target/114264
+ 	* config/riscv/riscv-vector-costs.cc: Fix ICE
+ 
+ 2024-03-08  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* fwprop.cc (forward_propagate_into): Return false for volatile set
+ 	source rtx.
+ 
+ 2024-03-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/113618
+ 	* config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
+ 	(aarch64_expand_cpymem): Emit single load/store only.
+ 	(aarch64_set_one_block): Emit single stores only.
+ 
+ 2024-03-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/114196
+ 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
+ 	vectorization guards.
+ 
+ 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/cppopts.texi: Remove incorrect claim about -dD not
+ 	outputting predefined macros.
+ 
+ 2024-03-07  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/113950
+ 	* config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
+ 	and simplify else if with else.
+ 
+ 2024-03-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* system.h: Include safe-ctype.h after C++ standard headers.
+ 
+ 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/110079
+ 	* bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
+ 	asm goto.
+ 
+ 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/105533
+ 	* expmed.cc (choose_mult_variant): Only try the val - 1 variant
+ 	if val is not HOST_WIDE_INT_MIN or if mode has exactly
+ 	HOST_BITS_PER_WIDE_INT precision.  Avoid triggering UB while computing
+ 	val - 1.
+ 
+ 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/105533
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
+ 	Multiple op->off by BITS_PER_UNIT instead of shifting it left by
+ 	LOG2_BITS_PER_UNIT.
+ 
+ 2024-03-07  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Add a case for loongarch*-*-linux-musl*.
+ 	* config/loongarch/linux.h: Disable the multilib-compatible
+ 	treatment for *musl* targets.
+ 	* config/loongarch/musl.h: New file.
+ 
+ 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114009
+ 	* genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
+ 	argument even for GENERIC, not just for GIMPLE.
+ 	* match.pd (a * !a -> 0): New simplifications.
+ 
+ 2024-03-07  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
+ 	* config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
+ 	(expand_vec_cmp_float): Adapt arguments
+ 
+ 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/114232
+ 	* config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
+ 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
+ 	(negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
+ 	(<plusminus:insn>v2qi3): Enable for optimize_size instead
+ 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
+ 	(<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
+ 	(<any_shift:insn>v2qi3): Enable for optimize_size instead
+ 	of optimize_function_for_size_p.
+ 
+ 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/114200
+ 	PR target/114202
+ 	* config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
+ 
+ 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
+ 	(costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
+ 	offset handling.
+ 	(costs::add_stmt_cost): Also adjust cost for statements without
+ 	stmt_info.
+ 	* config/riscv/riscv-vector-costs.h: Define zero constant.
+ 
+ 2024-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/113915
+ 	* config/arm/arm.md (NOCOND): Improve comment.
+ 	(arm_rev*) Add predicable.
+ 	* config/arm/arm.cc (arm_final_prescan_insn): Add check for
+ 	PREDICABLE_YES.
+ 
+ 2024-03-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/113001
+ 	PR target/112871
+ 	* config/riscv/riscv.cc (expand_conditional_move): Do not swap
+ 	operands when the comparison operand is the same as the false
+ 	arm for a NE test.
+ 
+ 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
+ 	Eliminate common code and use generic code instead.
+ 
+ 2024-03-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
+ 	rtx cost.
+ 
+ 2024-03-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114239
+ 	* tree-vect-loop.cc (vect_get_vect_def): Remove.
+ 	(vect_create_epilog_for_reduction): The passed in stmt_info
+ 	should now be the live stmt that produces the scalar reduction
+ 	result.  Revert PR114192 fix.  Base reduction info off
+ 	info_for_reduction.  Remove special handling of
+ 	early-break/peeled, restore original vector def gathering.
+ 	Make sure to pick the correct exit PHIs.
+ 	(vectorizable_live_operation): Pass in the proper stmt_info
+ 	for early break exits.
+ 
+ 2024-03-06  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
+ 	out-of-class definitions of static constants.
+ 
+ 2024-03-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114249
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Move making
+ 	a BB reduction lane number even ...
+ 	(vect_slp_check_for_roots): ... here to avoid leaking
+ 	pattern defs.
+ 
+ 2024-03-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114246
+ 	* tree-ssa-dse.cc (increment_start_addr): Strip useless
+ 	type conversions from the adjusted address.
+ 
+ 2024-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114190
+ 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
+ 	Call df_remove_problem for df_note before calling df_analyze.
+ 
+ 2024-03-05  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 	    Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	PR debug/114186
+ 	* dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
+ 	in the correct order of the dimensions.
+ 	(gen_ctf_subrange_type): Refactor out handling of
+ 	DW_TAG_subrange_type DIE to here.
+ 
+ 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR sanitizer/97696
+ 	* asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
+ 
+ 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
+ 	and luti_strided.
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
+ 	* config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
+ 	(early_ra::maybe_convert_to_strided_access): Remove support for
+ 	strided LUTI2 and LUTI4.
+ 
+ 2024-03-05  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/113510
+ 	* config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
+ 	low_register_operand.
+ 
+ 2024-03-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
+ 	in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
+ 	to "X = Y, X o= CST".
+ 
+ 2024-03-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
+ 	s9 as an alias of r22.
+ 
+ 2024-03-05  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/avr/avr-protos.h (avr_out_insv): New proto.
+ 	* config/avr/avr.cc (avr_out_insv): New function.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
+ 	(avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
+ 	* config/avr/avr.md (define_attr "adjust_len") Add insv.
+ 	(andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
+ 	Add constraint alternative where the 3rd operand is a power
+ 	of 2, and the source register may differ from the destination.
+ 	(*insv.any_shift.<mode>_split): Call avr_out_insv to output
+ 	instructions.  Set attr "length" to "insv".
+ 	* config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
+ 
+ 2024-03-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114231
+ 	* tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
+ 	processing a BB SLP root.
+ 
+ 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114211
+ 	* lower-subreg.cc (resolve_simple_move): For double-word
+ 	rotates by BITS_PER_WORD if there is overlap between source
+ 	and destination use a temporary.
+ 
+ 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114157
+ 	* gimple-lower-bitint.cc: Include stor-layout.h.
+ 	(mergeable_op): Return true for BIT_FIELD_REF.
+ 	(struct bitint_large_huge): Declare handle_bit_field_ref method.
+ 	(bitint_large_huge::handle_bit_field_ref): New method.
+ 	(bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
+ 
+ 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114116
+ 	* config/i386/i386.h (enum call_saved_registers_type): Add
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Remove
+ 	has_no_callee_saved_registers variable, add no_callee_saved_registers
+ 	instead, initialize it depending on whether it is
+ 	no_callee_saved_registers function or not.  Don't set it if
+ 	no_caller_saved_registers attribute is present.  Adjust users.
+ 	* config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS.
+ 	(ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
+ 
+ 2024-03-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
+ 	mode_size related code.
+ 
+ 2024-03-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* doc/invoke.texi (-Wno-global-module): Document.
+ 
+ 2024-03-04  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
+ 	* config/bpf/bpf.cc (bpf_expand_setmem): New.
+ 	* config/bpf/bpf.md (setmemdi): New define_expand.
+ 
+ 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/113010
+ 	* combine.cc (simplify_comparison): Guard the
+ 	WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
+ 	and initialize inner_mode.
+ 
+ 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
+ 	VMLALDAVAXQ_U cases.
+ 	(VMLALDAVXQ): Remove iterator.
+ 	(VMLALDAVXQ_P): Likewise.
+ 	(VMLALDAVAXQ): Likewise.
+ 	* config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
+ 	mode iterator attribute with V4BI mode.
+ 	* config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
+ 	VMLALDAVAXQ_U): Remove unused unspecs.
+ 
+ 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
+ 	* config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
+ 	attribute.
+ 	* config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
+ 	vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
+ 	vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
+ 	vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
+ 	vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
+ 	vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
+ 	vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
+ 	vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
+ 	vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
+ 	vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
+ 
+ 2024-03-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm.md (mve_unpredicated_insn): New attribute.
+ 	* config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
+ 	(MVE_VPT_UNPREDICATED_INSN_P): Likewise.
+ 	(MVE_VPT_PREDICABLE_INSN_P): Likewise.
+ 	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
+ 	* config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
+ 	(arm_vcx1q<a>v16qi): Likewise.
+ 	(arm_vcx1qav16qi): Likewise.
+ 	(arm_vcx1qv16qi): Likewise.
+ 	(arm_vcx2q<a>_p_v16qi): Likewise.
+ 	(arm_vcx2q<a>v16qi): Likewise.
+ 	(arm_vcx2qav16qi): Likewise.
+ 	(arm_vcx2qv16qi): Likewise.
+ 	(arm_vcx3q<a>_p_v16qi): Likewise.
+ 	(arm_vcx3q<a>v16qi): Likewise.
+ 	(arm_vcx3qav16qi): Likewise.
+ 	(arm_vcx3qv16qi): Likewise.
+ 	(@mve_<mve_insn>q_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_int_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_<supf>v4si): Likewise.
+ 	(@mve_<mve_insn>q_n_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_r_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_f<mode>): Likewise.
+ 	(@mve_<mve_insn>q_m_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_m_f<mode>): Likewise.
+ 	(@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q_p_<supf>v4si): Likewise.
+ 	(@mve_<mve_insn>q_p_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
+ 	(@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
+ 	(@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
+ 	(mve_v<absneg_str>q_f<mode>): Likewise.
+ 	(mve_<mve_addsubmul>q<mode>): Likewise.
+ 	(mve_<mve_addsubmul>q_f<mode>): Likewise.
+ 	(mve_vadciq_<supf>v4si): Likewise.
+ 	(mve_vadciq_m_<supf>v4si): Likewise.
+ 	(mve_vadcq_<supf>v4si): Likewise.
+ 	(mve_vadcq_m_<supf>v4si): Likewise.
+ 	(mve_vandq_<supf><mode>): Likewise.
+ 	(mve_vandq_f<mode>): Likewise.
+ 	(mve_vandq_m_<supf><mode>): Likewise.
+ 	(mve_vandq_m_f<mode>): Likewise.
+ 	(mve_vandq_s<mode>): Likewise.
+ 	(mve_vandq_u<mode>): Likewise.
+ 	(mve_vbicq_<supf><mode>): Likewise.
+ 	(mve_vbicq_f<mode>): Likewise.
+ 	(mve_vbicq_m_<supf><mode>): Likewise.
+ 	(mve_vbicq_m_f<mode>): Likewise.
+ 	(mve_vbicq_m_n_<supf><mode>): Likewise.
+ 	(mve_vbicq_n_<supf><mode>): Likewise.
+ 	(mve_vbicq_s<mode>): Likewise.
+ 	(mve_vbicq_u<mode>): Likewise.
+ 	(@mve_vclzq_s<mode>): Likewise.
+ 	(mve_vclzq_u<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
+ 	(@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
+ 	(mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
+ 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
+ 	(mve_vcvtaq_<supf><mode>): Likewise.
+ 	(mve_vcvtaq_m_<supf><mode>): Likewise.
+ 	(mve_vcvtbq_f16_f32v8hf): Likewise.
+ 	(mve_vcvtbq_f32_f16v4sf): Likewise.
+ 	(mve_vcvtbq_m_f16_f32v8hf): Likewise.
+ 	(mve_vcvtbq_m_f32_f16v4sf): Likewise.
+ 	(mve_vcvtmq_<supf><mode>): Likewise.
+ 	(mve_vcvtmq_m_<supf><mode>): Likewise.
+ 	(mve_vcvtnq_<supf><mode>): Likewise.
+ 	(mve_vcvtnq_m_<supf><mode>): Likewise.
+ 	(mve_vcvtpq_<supf><mode>): Likewise.
+ 	(mve_vcvtpq_m_<supf><mode>): Likewise.
+ 	(mve_vcvtq_from_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_m_from_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_m_to_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_n_from_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_n_to_f_<supf><mode>): Likewise.
+ 	(mve_vcvtq_to_f_<supf><mode>): Likewise.
+ 	(mve_vcvttq_f16_f32v8hf): Likewise.
+ 	(mve_vcvttq_f32_f16v4sf): Likewise.
+ 	(mve_vcvttq_m_f16_f32v8hf): Likewise.
+ 	(mve_vcvttq_m_f32_f16v4sf): Likewise.
+ 	(mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
+ 	(mve_vdwdupq_wb_u<mode>_insn): Likewise.
+ 	(mve_veorq_s><mode>): Likewise.
+ 	(mve_veorq_u><mode>): Likewise.
+ 	(mve_veorq_f<mode>): Likewise.
+ 	(mve_vidupq_m_wb_u<mode>_insn): Likewise.
+ 	(mve_vidupq_u<mode>_insn): Likewise.
+ 	(mve_viwdupq_m_wb_u<mode>_insn): Likewise.
+ 	(mve_viwdupq_wb_u<mode>_insn): Likewise.
+ 	(mve_vldrbq_<supf><mode>): Likewise.
+ 	(mve_vldrbq_gather_offset_<supf><mode>): Likewise.
+ 	(mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
+ 	(mve_vldrbq_z_<supf><mode>): Likewise.
+ 	(mve_vldrdq_gather_base_<supf>v2di): Likewise.
+ 	(mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
+ 	(mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
+ 	(mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
+ 	(mve_vldrdq_gather_offset_<supf>v2di): Likewise.
+ 	(mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
+ 	(mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
+ 	(mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
+ 	(mve_vldrhq_<supf><mode>): Likewise.
+ 	(mve_vldrhq_fv8hf): Likewise.
+ 	(mve_vldrhq_gather_offset_<supf><mode>): Likewise.
+ 	(mve_vldrhq_gather_offset_fv8hf): Likewise.
+ 	(mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
+ 	(mve_vldrhq_gather_offset_z_fv8hf): Likewise.
+ 	(mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
+ 	(mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
+ 	(mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
+ 	(mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
+ 	(mve_vldrhq_z_<supf><mode>): Likewise.
+ 	(mve_vldrhq_z_fv8hf): Likewise.
+ 	(mve_vldrwq_<supf>v4si): Likewise.
+ 	(mve_vldrwq_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_base_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_base_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
+ 	(mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
+ 	(mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
+ 	(mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
+ 	(mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_base_z_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_offset_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_offset_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_offset_z_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
+ 	(mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
+ 	(mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
+ 	(mve_vldrwq_z_<supf>v4si): Likewise.
+ 	(mve_vldrwq_z_fv4sf): Likewise.
+ 	(mve_vmvnq_s<mode>): Likewise.
+ 	(mve_vmvnq_u<mode>): Likewise.
+ 	(mve_vornq_<supf><mode>): Likewise.
+ 	(mve_vornq_f<mode>): Likewise.
+ 	(mve_vornq_m_<supf><mode>): Likewise.
+ 	(mve_vornq_m_f<mode>): Likewise.
+ 	(mve_vornq_s<mode>): Likewise.
+ 	(mve_vornq_u<mode>): Likewise.
+ 	(mve_vorrq_<supf><mode>): Likewise.
+ 	(mve_vorrq_f<mode>): Likewise.
+ 	(mve_vorrq_m_<supf><mode>): Likewise.
+ 	(mve_vorrq_m_f<mode>): Likewise.
+ 	(mve_vorrq_m_n_<supf><mode>): Likewise.
+ 	(mve_vorrq_n_<supf><mode>): Likewise.
+ 	(mve_vorrq_s<mode>): Likewise.
+ 	(mve_vorrq_s<mode>): Likewise.
+ 	(mve_vsbciq_<supf>v4si): Likewise.
+ 	(mve_vsbciq_m_<supf>v4si): Likewise.
+ 	(mve_vsbcq_<supf>v4si): Likewise.
+ 	(mve_vsbcq_m_<supf>v4si): Likewise.
+ 	(mve_vshlcq_<supf><mode>): Likewise.
+ 	(mve_vshlcq_m_<supf><mode>): Likewise.
+ 	(mve_vshrq_m_n_<supf><mode>): Likewise.
+ 	(mve_vshrq_n_<supf><mode>): Likewise.
+ 	(mve_vstrbq_<supf><mode>): Likewise.
+ 	(mve_vstrbq_p_<supf><mode>): Likewise.
+ 	(mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
+ 	(mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
+ 	(mve_vstrdq_scatter_base_<supf>v2di): Likewise.
+ 	(mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
+ 	(mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
+ 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
+ 	(mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
+ 	(mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
+ 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
+ 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
+ 	(mve_vstrhq_<supf><mode>): Likewise.
+ 	(mve_vstrhq_fv8hf): Likewise.
+ 	(mve_vstrhq_p_<supf><mode>): Likewise.
+ 	(mve_vstrhq_p_fv8hf): Likewise.
+ 	(mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
+ 	(mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
+ 	(mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
+ 	(mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
+ 	(mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
+ 	(mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
+ 	(mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
+ 	(mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
+ 	(mve_vstrwq_<supf>v4si): Likewise.
+ 	(mve_vstrwq_fv4sf): Likewise.
+ 	(mve_vstrwq_p_<supf>v4si): Likewise.
+ 	(mve_vstrwq_p_fv4sf): Likewise.
+ 	(mve_vstrwq_scatter_base_<supf>v4si): Likewise.
+ 	(mve_vstrwq_scatter_base_fv4sf): Likewise.
+ 	(mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
+ 	(mve_vstrwq_scatter_base_p_fv4sf): Likewise.
+ 	(mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
+ 	(mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
+ 	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
+ 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
+ 	(mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
+ 	(mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
+ 	(mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
+ 	(mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
+ 	(mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
+ 	(mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
+ 	(mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
+ 	(mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
+ 
+ 2024-03-04  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/extend.texi: Update [[gnu::no_dangling]].
+ 
+ 2024-03-04  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
+ 	* expr.cc (store_constructor): Likewise.
+ 	(do_store_flag): Likewise.
+ 
+ 2024-03-04  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* common.opt.urls: Regenerate.
+ 	* config/avr/avr.opt.urls: Likewise.
+ 	* config/i386/i386.opt.urls: Likewise.
+ 	* config/pru/pru.opt.urls: Likewise.
+ 	* config/riscv/riscv.opt.urls: Likewise.
+ 	* config/rs6000/rs6000.opt.urls: Likewise.
+ 
+ 2024-03-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114197
+ 	* tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
+ 	there are volatile bitfield accesses.
+ 	(pass_if_conversion::execute): Throw away result if the
+ 	if-converted and original loops are not nested as expected.
+ 
+ 2024-03-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114164
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
+ 	the code generated for mask argument setup is not supported.
+ 
+ 2024-03-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114203
+ 	* tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
+ 	adjustment before making the result defined at zero.
+ 
+ 2024-03-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114192
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
+ 	appropriate def for the live out stmt in case of an alternate
+ 	exit.
+ 
+ 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114209
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
+ 	unshare_expr when creating a MEM_REF from MEM_REF.
+ 	(bitint_large_huge::lower_stmt): Call unshare_expr.
+ 
+ 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114184
+ 	* config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
+ 	is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
+ 	register.
+ 
+ 2024-03-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/114187
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Call
+ 	lowpart_subreg to perform type conversion, to avoid confusion
+ 	over the offset to use in the call to simplify_reg_subreg.
+ 
+ 2024-03-03  Greg McGary  <gkm@rivosinc.com>
+ 
+ 	PR rtl-optimization/113010
+ 	* combine.cc (simplify_comparison): Simplify a SUBREG on
+ 	WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
+ 	MEM load.
+ 
+ 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
+ 	Use bool in place of int for boolean logic (if possible).
+ 	Move declarations to definitions (if possible).
+ 	* config/avr/avr.md: Use C++ comments.  Fix some indentation glitches.
+ 	* config/avr/avr-dimode.md: Same.
+ 	* config/avr/constraints.md: Same.
+ 	* config/avr/predicates.md: Same.
+ 
+ 2024-03-03  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113720
+ 	* config/alpha/alpha.md (umuldi3_highpart): Remove expander.
+ 	(*umuldi3_highpart_reg): Rename to umuldi3_highpart and
+ 	simplify insn RTX using UMUL_HIGHPART rtx_code.
+ 	(*umuldi3_highpart_const): Remove.
+ 
+ 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114100
+ 	* config/avr/avr-protos.h (_reg_unused_after): Remove proto.
+ 	* config/avr/avr.cc (_reg_unused_after): Make static.  And
+ 	add 3rd argument to skip the current insn.
+ 	(reg_unused_after): Adjust call of reg_unused_after.
+ 	(avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
+ 	unneeded frame pointer adjustments.
+ 
+ 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/92729
+ 	* config/avr/avr.md (define_attr "cc"): Remove.
+ 	* config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
+ 	from prototype.
+ 	* config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
+ 	its uses.  Add insn argument.
+ 	(avr_out_plus_symbol): Remove pcc argument and its uses.
+ 	(avr_out_plus): Remove pcc argument and its uses.
+ 	Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
+ 	(avr_out_round): Adjust call of avr_out_plus.
+ 
+ 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
+ 	from  r14-9273.
+ 
+ 2024-03-03  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/101737
+ 	* config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
+ 	is not an insn, but e.g. a code label.
+ 
+ 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (REG_0, ... REG_36): New define_constants.
+ 	* config/avr/avr.cc: Use them instead of magic numbers when it
+ 	means a register number.
+ 
+ 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Adjust some comments.
+ 
+ 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114100
+ 	* config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
+ 	the low part of the frame pointer with 8-bit stack pointer.
+ 
+ 2024-03-01  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/104919
+ 	PR c++/106009
+ 	* tree-inline.cc (remap_decl): Handle copy_decl returning the
+ 	original decl.
+ 	(remap_decls): Handle remap_decl returning the original decl.
+ 	(copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
+ 	CONST_DECL.
+ 
+ 2024-03-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
+ 	type attribute.
+ 	(extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
+ 	(movdi_32bit, movdi_64bit, movsi_internal): Likewise.
+ 	(movhi_internal, movqi_internal): Likewise.
+ 	(movsf_softfloat, movsf_hardfloat): Likewise.
+ 	(movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
+ 	(movdf_softfloat): Likewise.
+ 
+ 2024-03-01  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/110358
+ 	PR c++/109642
+ 	* doc/extend.texi: Document gnu::no_dangling.
+ 	* doc/invoke.texi: Mention that gnu::no_dangling disables
+ 	-Wdangling-reference.
+ 
+ 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt: Overhaul help screen.
+ 
+ 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 	    Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR c++/110347
+ 	* gimplify.cc (omp_notice_variable): Fix 'shared' arg to
+ 	lang_hooks.decls.omp_disregard_value_expr for
+ 	(first)private in target regions.
+ 
+ 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114136
+ 	* calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
+ 	n_named_args initially before INIT_CUMULATIVE_ARGS to
+ 	structure_value_addr_parm rather than 0, after it don't modify
+ 	it if strict_argument_naming and clear only if
+ 	!pretend_outgoing_varargs_named.
+ 
+ 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/114015
+ 	* dwarf2out.cc (should_move_die_to_comdat): Return false for
+ 	aggregates without DW_AT_byte_size attribute or with non-constant
+ 	DW_AT_byte_size.
+ 
+ 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
+ 	valid values for level.
+ 
+ 2024-03-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114070
+ 	* match.pd ((c ? a : b) op d  -->  c ? (a op d) : (b op d)):
+ 	Allow the folding if before lowering and the current IL
+ 	isn't supported with vcond_mask.
+ 
+ 2024-03-01  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
+ 	attribute to riscv_attribute_table.
+ 	(riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
+ 	(riscv_fntype_abi): Add riscv_vector_cc attribute check.
+ 	* doc/extend.texi: Add riscv_vector_cc attribute description.
+ 
+ 2024-03-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/112817
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
+ 	RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
+ 	* config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
+ 	(enum rvv_vector_bits_enum): New enum for different RVV vector bits.
+ 	* config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
+ 	comments for option replacement.
+ 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
+ 	riscv_autovec_preference to rvv_vector_bits.
+ 	(vls_mode_valid_p): Ditto.
+ 	(estimated_poly_value): Ditto.
+ 	* config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
+ 	vector chunks and honor new option mrvv-vector-bits.
+ 	(riscv_override_options_internal): Update comments and rename the
+ 	vector chunks.
+ 	* config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
+ 	internal option param=riscv-autovec-preference.
+ 
+ 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* function.cc (assign_parms): Only call assign_parms_setup_varargs
+ 	early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
+ 
+ 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114156
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
+ 	rhs1 of a VCE to have no underlying variable if it is a load and
+ 	handle that case.
+ 
+ 2024-02-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/114159
+ 	* function.cc (function_name): Make param const.
+ 	* function.h (function_name): Likewise.
+ 
+ 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114100
+ 	* doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
+ 	* config/avr/avr.opt (-mfuse-add=): New target option.
+ 	* common/config/avr/avr-common.cc (avr_option_optimization_table)
+ 	[OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
+ 	[OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
+ 	* config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
+ 	* config/avr/avr-protos.h (avr_split_tiny_move)
+ 	(make_avr_pass_fuse_add): New protos.
+ 	* config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
+ 	avr_split_tiny_move to split indirect memory accesses.
+ 	(gen_move_clobbercc): New define_expand helper.
+ 	* config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
+ 	(avr_pass_fuse_add): New class from rtl_opt_pass.
+ 	(make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
+ 	(reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
+ 	(avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
+ 	of PLUS addressing for AVR_TINY.
+ 	(avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
+ 	(avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
+ 	(avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
+ 
+ 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/114132
+ 	* config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
+ 	* config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
+ 	(avr_function_arg): Set it.
+ 	(avr_frame_pointer_required_p): Use it instead of .nregs.
+ 
+ 2024-02-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/108174
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
+ 	static and mark with GTY.
+ 
+ 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md
+ 	(loongarch_<crc>_w_<size>_w_extended): New define_insn.
+ 
+ 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (CRC): New define_int_iterator.
+ 	(crc): New define_int_attr.
+ 	(loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
+ 	into ...
+ 	(loongarch_<crc>_w_<size>_w): ... here.
+ 
+ 2024-02-29  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/114130
+ 	* config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
+ 	extend the expected value if needed.
+ 
+ 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config.gcc (target_gtfiles): Change coreout to btfext-out.
+ 	(extra_objs): Change coreout to btfext-out.
+ 	* config/bpf/coreout.cc: Rename to btfext-out.cc.
+ 	* config/bpf/btfext-out.cc: Add.
+ 	* config/bpf/coreout.h: Rename to btfext-out.h.
+ 	* config/bpf/btfext-out.h: Add.
+ 	* config/bpf/core-builtins.cc: Change include.
+ 	* config/bpf/core-builtins.h: Change include.
+ 	* config/bpf/t-bpf: Accomodate renamed files.
+ 
+ 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	PR target/113453
+ 	* config/bpf/bpf.cc (bpf_function_prologue): Define target
+ 	hook.
+ 	* config/bpf/coreout.cc (brf_ext_info_section)
+ 	(btf_ext_info): Move from coreout.h
+ 	(btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
+ 	(bpf_core_reloc): Rename to btf_ext_core_reloc.
+ 	(btf_ext): Add static variable.
+ 	(btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
+ 	(bpf_create_or_find_funcinfo, bpt_create_core_reloc)
+ 	(btf_ext_add_string, btf_funcinfo_type_callback)
+ 	(btf_add_func_info_for, btf_validate_funcinfo)
+ 	(btf_ext_info_len, output_btfext_func_info): Add function.
+ 	(output_btfext_header, bpf_core_reloc_add)
+ 	(output_btfext_core_relocs, btf_ext_init, btf_ext_output):
+ 	Change to support new structs.
+ 	* config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
+ 	Move and change in coreout.cc.
+ 	(btf_add_func_info_for, btf_ext_add_string): Add prototypes.
+ 
+ 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
+ 	enabled by default for BPF.
+ 	(bpf_file_end): Call BTF deallocation.
+ 	(bpf_asm_init_sections): Correct condition.
+ 	* dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
+ 	deallocation.
+ 	(ctf_debuf_finish): Correct condition for calling
+ 	ctf_debug_finalize.
+ 
+ 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
+ 	(traverse_btf_func_types): Define function.
+ 	* ctfc.h (funcs_traverse_callback): Typedef for function
+ 	prototype.
+ 	(traverse_btf_func_types): Add prototype.
+ 
+ 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* btfout.cc (btf_collect_dataset): Corrects BTF type id.
+ 
+ 2024-02-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113831
+ 	PR tree-optimization/108355
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
+ 	PR113831 fix.
+ 
+ 2024-02-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114121
+ 	* tree-ssa-sccvn.h (vn_reference_s::offset,
+ 	vn_reference_s::max_size): New fields.
+ 	(vn_reference_insert_pieces): Adjust prototype.
+ 	* tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
+ 	* tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
+ 	size, allow using "don't know" state.
+ 	(vn_walk_cb_data::finish): Pass along offset/max_size.
+ 	(vn_reference_lookup_or_insert_for_pieces): Take offset and
+ 	max_size as argument and use it.
+ 	(vn_reference_lookup_3): Properly adjust offset and max_size
+ 	according to the adjusted ao_ref.
+ 	(vn_reference_lookup_pieces): Initialize offset and max_size.
+ 	(vn_reference_lookup): Likewise.
+ 	(vn_reference_lookup_call): Likewise.
+ 	(vn_reference_insert): Likewise.
+ 	(visit_reference_op_call): Likewise.
+ 	(vn_reference_insert_pieces): Take offset and max_size
+ 	as argument and use it.
+ 
+ 2024-02-28  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	PR tree-optimization/114075
+ 	* tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
+ 	point vectors
+ 
+ 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114041
+ 	* graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
+ 	INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
+ 
+ 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113988
+ 	* stor-layout.h (bitwise_mode_for_size): Declare.
+ 	* stor-layout.cc (bitwise_mode_for_size): New function.
+ 	* gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
+ 	Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
+ 	Use BITS_PER_UNIT instead of 8.
+ 
+ 2024-02-27  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113871
+ 	* config/i386/mmx.md (V248FI): Add V2BF mode.
+ 	(V24FI_32): Ditto.
+ 
+ 2024-02-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-ssa-dse.cc (compute_trims): Fix description.  Return early
+ 	if either ref->offset is not byte aligned or ref->size is not known
+ 	to be equal to ref->max_size.
+ 	(maybe_trim_complex_store): Fix description.
+ 	(maybe_trim_constructor_store): Likewise.
+ 	(maybe_trim_partially_dead_store): Likewise.
+ 
+ 2024-02-27  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/mmintrin.h: Warn if this header is included without
+ 	defining __ENABLE_DEPRECATED_IWMMXT.
+ 
+ 2024-02-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114074
+ 	* tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
+ 	* tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
+ 	Handle poly vs. non-poly multiplication correctly with respect
+ 	to undefined behavior on overflow.
+ 
+ 2024-02-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114044
+ 	* internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
+ 	DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
+ 	* internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
+ 	expand_PARITY): Declare.
+ 	* internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
+ 	expand_CTZ, expand_FFS, expand_PARITY): New functions.
+ 	(expand_POPCOUNT): Use expand_bitquery.
+ 
+ 2024-02-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114081
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Perform manual dominator update for prologue peeling.
+ 	(vect_do_peeling): Properly update dominators after adding the
+ 	prologue-around guard.
+ 
+ 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
+ 	(mstrict-X): Tag as "Optimization".
+ 
+ 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
+ 	an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
+ 
+ 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR rtl-optimization/113617
+ 	* varasm.cc (default_elf_select_rtx_section): For
+ 	references to private symbols in comdat sections
+ 	use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
+ 	or .rodata.<comdat> comdat sections.
+ 
+ 2024-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114099
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Create and fill in a needed virtual LC PHI for the alternate
+ 	exits.  Remove code dealing with that missing.
+ 
+ 2024-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114068
+ 	* tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
+ 	New function.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
+ 	on the main exit if needed.  Remove band-aid for the case
+ 	it was missing.
+ 
+ 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114097
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Check
+ 	interrupt instead of noreturn attribute.
+ 
+ 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386.cc (ix86_bitint_type_info): Add support for
+ 	!TARGET_64BIT.
+ 
+ 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114090
+ 	* match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
+ 	Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
+ 	types.
+ 	((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
+ 
+ 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114084
+ 	* fold-const.cc (fold_binary_loc): Avoid the final associate_trees
+ 	if all subtrees of var0 come from one of the op0 or op1 operands
+ 	and all subtrees of con0 come from the other one.  Don't clear
+ 	variables which are never used afterwards.
+ 
+ 2024-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/114070
+ 	* genmatch.cc (parser::parse_c_expr): Do not record operand
+ 	lists but only mark operators used.
+ 	* match.pd ((c ? a : b) op (c ? d : e)  -->  c ? (a op d) : (b op e)):
+ 	Properly guard the case of tcc_comparison changing the VEC_COND
+ 	value operand type.
+ 
+ 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/114094
+ 	* config/i386/i386.cc (x86_function_profiler): Add missing new-line
+ 	to printed instruction.
+ 
+ 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/114098
+ 	* config/i386/amxtileintrin.h (_tile_loadconfig): Use
+ 	__builtin_ia32_ldtilecfg.
+ 	(_tile_storeconfig): Use __builtin_ia32_sttilecfg.
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	__builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Handle
+ 	IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
+ 	* config/i386/i386.md (ldtilecfg): New pattern.
+ 	(sttilecfg): Likewise.
+ 
+ 2024-02-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/113205
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
+ 	the proposed layout if it does not allow a source partition with
+ 	layout 2 to keep that layout.
+ 
+ 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
+ 	* combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
+ 	* double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
+ 	* genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
+ 	(mk_attr_alt): Use HOST_WIDE_INT_0 macro.
+ 	* genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
+ 	macros.
+ 	* ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
+ 	* loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
+ 	* pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
+ 	HOST_WIDE_INT_UC macros.
+ 	* rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
+ 	* tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
+ 	* tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
+ 	* tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
+ 	macros.
+ 	* wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
+ 	* config/i386/constraints.md (define_constraint "L"): Use
+ 	HOST_WIDE_INT_C macro.
+ 	* config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
+ 	macro.
+ 	(movl + movb peephole2): Likewise.
+ 	* config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
+ 	(const_32bit_mask): Likewise.
+ 
+ 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114073
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
+ 	VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
+ 	types like vector or complex types.
+ 	(gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
+ 	types.  Fix up VIEW_CONVERT_EXPR handling.  Allow merging
+ 	VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
+ 
+ 2024-02-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/114028
+ 	* config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
+ 	Return false if inner mode is already Pmode.
+ 	(rvv_builder::is_all_same_sequence): New function.
+ 	(expand_vec_init): Emit broadcast if sequence is all same.
+ 
+ 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113613
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::m_current_region): New member variable.
+ 	(early_ra::m_fpr_recency): Likewise.
+ 	(early_ra::start_new_region): Bump m_current_region.
+ 	(early_ra::allocate_colors): Prefer less recently used registers
+ 	in the event of a tie.  Add a comment to explain why we prefer(ed)
+ 	higher-numbered registers.
+ 	(early_ra::find_oldest_color): Prefer less recently used registers
+ 	here too.
+ 	(early_ra::finalize_allocation): Update recency information for
+ 	allocated registers.
+ 	(early_ra::process_blocks): Initialize m_current_region and
+ 	m_fpr_recency.
+ 
+ 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113295
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::test_strictness): New enum.
+ 	(early_ra::is_chain_candidate): Add a strictness parameter to
+ 	control whether only correctness matters, or whether both correctness
+ 	and heuristics should be used.  Handle multiple levels of equivalence.
+ 	(early_ra::find_related_start): Update call accordingly.
+ 	(early_ra::strided_polarity_pref): Likewise.
+ 	(early_ra::form_chains): Likewise.
+ 	(early_ra::try_to_chain_allocnos): Use is_chain_candidate in
+ 	correctness mode rather than trying to inline the test.
+ 
+ 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113295
+ 	* config/aarch64/aarch64-early-ra.cc
+ 	(early_ra::find_related_start): Account for definitions by shared
+ 	registers when testing for a single register definition.
+ 	(early_ra::accumulate_defs): New function.
+ 	(early_ra::record_copy): If A shares B's register, fold A's
+ 	definition information into B's.  Fold A's use information into B's.
+ 
+ 2024-02-23  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
+ 	if R_X86_64_CODE_6_GOTTPOFF is supported.
+ 	* config.in: Regenerated.
+ 	* configure: Likewise.
+ 	* config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
+ 	UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
+ 
+ 2024-02-23  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/108120
+ 	* config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
+ 	Gate with ARM_HAVE_NEON_<MODE>_ARITH.
+ 
+ 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/114054
+ 	* expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
+ 	temp variable instead of target parameter for result.
+ 
+ 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114040
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
+ 	Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
+ 	probability from likely to unlikely.  When handling the true true
+ 	store, first cast to limb_access_type and then to l's type.
+ 
+ 2024-02-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/90785
+ 	* config.gcc: Add ia64*-*-* to the list of obsoleted targets.
+ 
+ 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	PR other/109668
+ 	* config/riscv/arch-canonicalize: Move to python3
+ 	* config/riscv/multilib-generator: Likewise
+ 
+ 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* doc/invoke.texi: Document -mcpu.
+ 
+ 2024-02-23  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Add parameter "--fatal-warnings" to assemble
+ 	when checking whether the assemble support conditional branch
+ 	relaxation.
+ 
+ 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/114007
+ 	* doc/extend.texi: (__extension__): Remove comments about scope
+ 	tokens vs. two colons.
+ 
+ 2024-02-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/109804
+ 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
+ 	DEMANGLE_COMPONENT_UNNAMED_TYPE.
+ 
+ 2024-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114048
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
+ 	can also produce -1 off.
+ 
+ 2024-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114027
+ 	* tree-vect-loop.cc (vecctorizable_reduction): Use optimized
+ 	condition reduction classification only for single-element
+ 	chains.
+ 
+ 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/111960
+ 	* profile-count.h (profile_count::dump): Remove overload with
+ 	char * first argument.
+ 	* profile-count.cc (profile_count::dump): Change overload with char *
+ 	first argument which uses sprintf into the overfload with FILE *
+ 	first argument and use fprintf instead.  Remove overload which wrapped
+ 	it.
+ 
+ 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113993
+ 	* tree-call-cdce.cc (get_no_error_domain): Handle
+ 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}.  Handle
+ 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
+ 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
+ 	the as the F128 suffixed cases, otherwise as non-suffixed ones.
+ 	Handle BUILT_IN_{EXP,POW}10L for
+ 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
+ 	as (-inf, 4932).
+ 
+ 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114038
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
+ 	loop exit condition if end is divisible by limb_prec.
+ 
+ 2024-02-22  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
+ 	problem of mabi=, mno-flush-func, mexplicit-relocs;
+ 	add missing leading - of mbranch-cost option.
+ 	* config/mips/mips.opt.urls: Regenerate.
+ 
+ 2024-02-22  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/109987
+ 	* config/rs6000/constraints.md (we): Update internal doc without
+ 	referring to option -mpower9-vector.
+ 	* config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
+ 	special handlings.
+ 	* config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
+ 	OTHER_P8_VECTOR_MASKS): Merge to ...
+ 	(OTHER_VSX_VECTOR_MASKS): ... here.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
+ 	some error message handlings and explicit option mask adjustments on
+ 	explicit option power{8,9}-vector conflicting with other options.
+ 	(rs6000_print_isa_options): Update comments.
+ 	(rs6000_disable_incompatible_switches): Remove power{8,9}-vector
+ 	related array items and handlings.
+ 	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
+ 	special handlings.
+ 	* config/rs6000/rs6000.opt: Make option power{8,9}-vector as
+ 	WarnRemoved.
+ 	* doc/extend.texi: Remove documentation referring to option
+ 	-mpower8-vector.
+ 	* doc/invoke.texi: Remove documentation for option
+ 	-mpower{8,9}-vector and adjust some documentation referring to them.
+ 	* doc/md.texi: Update documentation for constraint we.
+ 	* doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
+ 
+ 2024-02-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114017
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
+ 	the version to 0.12.
+ 
+ 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
+ 
+ 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
+ 	(generic_ooo_vec_load): Ditto
+ 	(generic_ooo_vec_store): Ditto
+ 	(generic_ooo_vec_loadstore_seg): Ditto
+ 	(generic_ooo_vec_alu): Ditto
+ 	(generic_ooo_vec_fcmp): Ditto
+ 	(generic_ooo_vec_imul): Ditto
+ 	(generic_ooo_vec_fadd): Ditto
+ 	(generic_ooo_vec_fmul): Ditto
+ 	(generic_ooo_crypto): Ditto
+ 	(generic_ooo_perm): Ditto
+ 	(generic_ooo_vec_reduction): Ditto
+ 	(generic_ooo_vec_ordered_reduction): Ditto
+ 	(generic_ooo_vec_idiv): Ditto
+ 	(generic_ooo_vec_float_divsqrt): Ditto
+ 	(generic_ooo_vec_mask): Ditto
+ 	(generic_ooo_vec_vesetvl): Ditto
+ 	(generic_ooo_vec_setrm): Ditto
+ 	(generic_ooo_vec_readlen): Ditto
+ 	* config/riscv/riscv.md: Include generic-vector-ooo
+ 	* config/riscv/generic-vector-ooo.md: New file. To here
+ 
+ 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
+ 	(generic_ooo_branch): Ditto
+ 	* config/riscv/generic.md (generic_sfb_alu): Ditto
+ 	(generic_fmul_half): Ditto
+ 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
+ 	* config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
+ 	(sifive_7_popcount): Ditto
+ 	* config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
+ 	* config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
+ 	* config/riscv/vector.md: Change rdfrm to fmove
+ 	* config/riscv/zc.md: Change pushpop to load/store
+ 
+ 2024-02-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Fix typos.
+ 
+ 2024-02-21  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
+ 	* config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
+ 	* config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
+ 
+ 2024-02-21  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113476
+ 	* ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
+ 	initializers in the contructor.
+ 	(ipa_node_params::~ipa_node_params): Release lattices as a vector.
+ 	* ipa-cp.h: New file.
+ 	* ipa-cp.cc: Include sreal.h and ipa-cp.h.
+ 	(ipcp_value_source): Move to ipa-cp.h.
+ 	(ipcp_value_base): Likewise.
+ 	(ipcp_value): Likewise.
+ 	(ipcp_lattice): Likewise.
+ 	(ipcp_agg_lattice): Likewise.
+ 	(ipcp_bits_lattice): Likewise.
+ 	(ipcp_vr_lattice): Likewise.
+ 	(ipcp_param_lattices): Likewise.
+ 	(ipa_get_parm_lattices): Remove assert latticess is non-NULL.
+ 	(ipa_value_from_jfunc): Adjust a check for empty lattices.
+ 	(ipa_context_from_jfunc): Likewise.
+ 	(ipa_agg_value_from_jfunc): Likewise.
+ 	(merge_agg_lats_step): Do not memset new aggregate lattices to zero.
+ 	(ipcp_propagate_stage): Allocate lattices in a vector as opposed to
+ 	just in contiguous memory.
+ 	(ipcp_store_vr_results): Adjust a check for empty lattices.
+ 	* auto-profile.cc: Include sreal.h and ipa-cp.h.
+ 	* cgraph.cc: Likewise.
+ 	* cgraphclones.cc: Likewise.
+ 	* cgraphunit.cc: Likewise.
+ 	* config/aarch64/aarch64.cc: Likewise.
+ 	* config/i386/i386-builtins.cc: Likewise.
+ 	* config/i386/i386-expand.cc: Likewise.
+ 	* config/i386/i386-features.cc: Likewise.
+ 	* config/i386/i386-options.cc: Likewise.
+ 	* config/i386/i386.cc: Likewise.
+ 	* config/rs6000/rs6000.cc: Likewise.
+ 	* config/s390/s390.cc: Likewise.
+ 	* gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
+ 	files to be included in gtype-desc.cc.
+ 	* gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
+ 	* ipa-devirt.cc: Likewise.
+ 	* ipa-fnsummary.cc: Likewise.
+ 	* ipa-icf.cc: Likewise.
+ 	* ipa-inline-analysis.cc: Likewise.
+ 	* ipa-inline-transform.cc: Likewise.
+ 	* ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
+ 	* ipa-modref.cc: Include sreal.h and ipa-cp.h.
+ 	* ipa-param-manipulation.cc: Likewise.
+ 	* ipa-predicate.cc: Likewise.
+ 	* ipa-profile.cc: Likewise.
+ 	* ipa-prop.cc: Likewise.
+ 	(ipa_node_params_t::duplicate): Assert new lattices remain empty
+ 	instead of setting them to NULL.
+ 	* ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
+ 	* ipa-split.cc: Likewise.
+ 	* ipa-sra.cc: Likewise.
+ 	* ipa-strub.cc: Likewise.
+ 	* ipa-utils.cc: Likewise.
+ 	* ipa.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* tree-ssa-ccp.cc: Likewise.
+ 	* tree-ssa-sccvn.cc: Likewise.
+ 	* tree-vrp.cc: Likewise.
+ 
+ 2024-02-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
+ 	Armv8.7-a.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
+ 	Use aarch64_gen_compare_zero_and_branch rather than emitting
+ 	a CBZ directly.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
+ 	Remove duplicated call.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
+ 	Check that each individual piece of state is shared in the same
+ 	way, rather than using an aggregate check for PSTATE.ZA.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
+ 	In the code that commits a lazy save, only zero ZA if the function
+ 	has ZA state.  Similarly zero ZT0 if the function has ZT0 state.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
+ 	directly inserting the associated sequence
+ 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
+ 	...here instead.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113995
+ 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
+ 	fold the SVE allocation into the initial allocation if the
+ 	initial allocation includes a VG save.
+ 
+ 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113220
+ 	* cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
+ 	contain jumps even if called after initial RTL expansion.
+ 	* mode-switching.cc: Include cfgbuild.h.
+ 	(optimize_mode_switching): Allow the sequence returned by the
+ 	emit hook to contain internal jumps.  Record which blocks
+ 	contain such jumps and split the blocks at the end.
+ 	* config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
+ 	non-debug insns when scanning the sequence.
+ 
+ 2024-02-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
+ 	* config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
+ 
+ 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* doc/invoke.texi (-mmcu): Add information about MCU specs.
+ 
+ 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* doc/invoke.texi (-minrt): Clarify that main
+ 	must take no arguments.
+ 
+ 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/builtins.def: Use function prototypes of given size
+ 	and signedness.
+ 	* config/avr/avr.cc (avr_init_builtins): Adjust types required
+ 	by builtins.def.
+ 	* doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
+ 
+ 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
+ 	instead of @table.
+ 
+ 2024-02-20  Will Hawkins  <hawkinsw@obs.cr>
+ 
+ 	* config/bpf/bpf.opt: Add help information for -mcpu.
+ 
+ 2024-02-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113805
+ 	* config/aarch64/aarch64-passes.def (pass_late_track_speculation):
+ 	New pass.
+ 	* config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
+ 	Declare.
+ 	* config/aarch64/aarch64.md (is_call): New attribute.
+ 	(*and<mode>3nr_compare0): Rename to...
+ 	(@aarch64_and<mode>3nr_compare0): ...this.
+ 	* config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
+ 	(aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
+ 	* config/aarch64/aarch64-speculation.cc: Update file comment to
+ 	describe the new late pass.
+ 	(aarch64_do_track_speculation): Handle is_call insns like other calls.
+ 	(pass_track_speculation): Add an is_late member variable.
+ 	(pass_track_speculation::gate): Run the late pass for streaming-
+ 	compatible functions and the early pass for other functions.
+ 	(make_pass_track_speculation): Update accordingly.
+ 	(make_pass_late_track_speculation): New function.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
+ 	function.
+ 	(aarch64_guard_switch_pstate_sm): Use it.
+ 
+ 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
+ 	Register these builtins with a pointer to uint64_t rather than unsigned
+ 	DI mode.
+ 
+ 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/113615
+ 	* config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
+ 	Conditionalize on '!TARGET_RDNA2_PLUS'.
+ 	* config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
+ 	(gcn_expand_reduc_scalar):
+ 	'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
+ 
+ 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
+ 	'__gfx90a__' target CPU definition.  Add some safeguards for the future.
+ 
+ 2024-02-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/54052
+ 	* rtl-ssa/blocks.cc (function_info::place_phis): Filter
+ 	local defs by LR_OUT.
+ 
+ 2024-02-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113967
+ 	* match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
+ 	in condition that @rpos is multiple of vector element size.
+ 
+ 2024-02-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113696
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
+ 	Suppress vsetvl fusion.
+ 
+ 2024-02-18  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/113912
+ 	* config/i386/i386.cc (ix86_can_use_push2pop2): New.
+ 	(ix86_pro_and_epilogue_can_use_push2pop2): Use it.
+ 	(ix86_emit_save_regs): Don't generate push2 if
+ 	ix86_can_use_push2pop2 return false.
+ 	(ix86_expand_epilogue): Don't generate pop2 if
+ 	ix86_can_use_push2pop2 return false.
+ 
+ 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
+ 	Note on complete device support.
+ 
+ 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Function Attributes): Fuse description
+ 	of "signal" and "interrupt" attribute.  Link pseudo instruction.
+ 
+ 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
+ 	symbol type conversions.
+ 	(__cacop_d): Likewise.
+ 	(__cpucfg): Likewise.
+ 	(__asrtle_d): Likewise.
+ 	(__asrtgt_d): Likewise.
+ 	(__lddir_d): Likewise.
+ 	(__ldpte_d): Likewise.
+ 	(__crc_w_b_w): Likewise.
+ 	(__crc_w_h_w): Likewise.
+ 	(__crc_w_w_w): Likewise.
+ 	(__crc_w_d_w): Likewise.
+ 	(__crcc_w_b_w): Likewise.
+ 	(__crcc_w_h_w): Likewise.
+ 	(__crcc_w_w_w): Likewise.
+ 	(__crcc_w_d_w): Likewise.
+ 	(__csrrd_w): Likewise.
+ 	(__csrwr_w): Likewise.
+ 	(__csrxchg_w): Likewise.
+ 	(__csrrd_d): Likewise.
+ 	(__csrwr_d): Likewise.
+ 	(__csrxchg_d): Likewise.
+ 	(__iocsrrd_b): Likewise.
+ 	(__iocsrrd_h): Likewise.
+ 	(__iocsrrd_w): Likewise.
+ 	(__iocsrrd_d): Likewise.
+ 	(__iocsrwr_b): Likewise.
+ 	(__iocsrwr_h): Likewise.
+ 	(__iocsrwr_w): Likewise.
+ 	(__iocsrwr_d): Likewise.
+ 	(__frecipe_s): Likewise.
+ 	(__frecipe_d): Likewise.
+ 	(__frsqrte_s): Likewise.
+ 	(__frsqrte_d): Likewise.
+ 
+ 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
+ 	function return value type to unsigned short.
+ 
+ 2024-02-16  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* doc/sourcebuild.texi: add scan-assembler-bound
+ 
+ 2024-02-16  Jason Merrill  <jason@redhat.com>
+ 
+ 	* gdbhooks.py: Fix regex syntax.
+ 
+ 2024-02-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113895
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
+ 	consistency checking when there are out-of-bound array
+ 	accesses.  Allow -1 off when from an array reference with
+ 	constant index.
+ 
+ 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/106543
+ 	* config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
+ 	pattern.
+ 
+ 2024-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* doc/sourcebuild.texi (Effective-Target Keywords, Other
+ 	attribugs): Document linker_plugin.
+ 	(Require Support): Document dg-require-linker-plugin.
+ 
+ 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/109349
+ 	* common/config/riscv/riscv-common.cc (riscv_arch_help): New.
+ 	* config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
+ 	(RISCV_MINOR_VERSION_BASE): Ditto.
+ 	(RISCV_REVISION_VERSION_BASE): Ditto.
+ 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
+ 	rather than magic number.
+ 	* config/riscv/riscv.h (riscv_arch_help): New.
+ 	(EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
+ 	(DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
+ 	--print-supported-extensions.
+ 	* config/riscv/riscv.opt (march=help): New.
+ 	(print-supported-extensions): New.
+ 	(-print-supported-extensions): New.
+ 	* doc/invoke.texi (RISC-V Options): Document -march=help.
+ 
+ 2024-02-16  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	PR target/113780
+ 	* config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
+ 	for indirect calls with 4 or more arguments in pac-enabled functions.
+ 
+ 2024-02-15  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
+ 	use ldxb instead of ldxh.
+ 
+ 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113921
+ 	* cfgrtl.h (prepend_insn_to_edge): New declaration.
+ 	* cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
+ 	comment.
+ 	(prepend_insn_to_edge): New function.
+ 	* cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
+ 	insert_insn_on_edge.
+ 
+ 2024-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111156
+ 	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
+ 	at the pattern stmt if any.
+ 
+ 2024-02-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/113927
+ 	* config/avr/avr.h (AVR_HAVE_ADIW): New macro.
+ 	* config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
+ 	* config/avr/avr.cc (avr_adiw_reg_p): New function.
+ 	(avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
+ 	Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
+ 	* config/avr/avr.md: Same.
+ 	(attr "isa") <tiny, no_tiny>: Remove.
+ 	<adiw, no_adiw>: Add.
+ 	(define_insn, define_insn_and_split): When an alternative has
+ 	constraint "w", then set attribute "isa" to "adiw".
+ 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
+ 	Built-in define __AVR_HAVE_ADIW__.
+ 	* doc/invoke.texi (AVR Options): Document it.
+ 
+ 2024-02-15  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md
+ 	(vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
+ 	* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
+ 	details are supported on RDNA devices.
+ 
+ 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/113508
+ 	* doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
+ 	usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
+ 	smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
+ 	Add sentence about what the mode m is.
+ 
+ 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
+ 	smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
+ 	var.
+ 
+ 2024-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
+ 	stmts.
+ 
+ 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113567
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
+ 	_BitInt multiplication, division or modulo with
+ 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
+ 	force the affected inputs into a new SSA_NAME.
+ 
+ 2024-02-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113871
+ 	* config/i386/mmx.md (V248FI): New mode iterator.
+ 	(V24FI_32): DItto.
+ 	(vec_shl_<V248FI:mode>): New expander.
+ 	(vec_shl_<V24FI_32:mode>): Ditto.
+ 	(vec_shr_<V248FI:mode>): Ditto.
+ 	(vec_shr_<V24FI_32:mode>): Ditto.
+ 	* config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
+ 	(vec_shr_<V248FI:mode>): Ditto.
+ 
+ 2024-02-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/111054
+ 	* tree-ssa-loop-split.cc (split_loop): Check for profile being present.
+ 
+ 2024-02-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
+ 
+ 2024-02-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113910
+ 	* bitmap.cc (bitmap_hash): Mix the full element "hash" to
+ 	the hashval_t hash.
+ 
+ 2024-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
+ 	(pp_integer_with_precision): For unsigned ptrdiff_t printing
+ 	with u, o or x print ptrdiff_t argument converted to
+ 	unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
+ 
+ 2024-02-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/113576
+ 	* expr.cc (do_store_flag): For vector bool compares of vectors
+ 	with padding zero that.
+ 	* dojump.cc (do_compare_and_jump): Likewise.
+ 
+ 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Prerequisites): Update gettext link.
+ 
+ 2024-02-13  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/113876
+ 	* config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
+ 	Return false if the incoming stack isn't 16-byte aligned.
+ 
+ 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR middle-end/113904
+ 	* omp-general.cc (struct omp_ts_info): Update for splitting of
+ 	OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
+ 	* omp-selectors.h (enum omp_tp_type): Replace
+ 	OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
+ 
+ 2024-02-13  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	PR target/113742
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
+ 	recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
+ 
+ 2024-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113895
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
+ 	offset to discover constant array indices in bits, handle
+ 	COMPONENT_REF to bitfields.
+ 
+ 2024-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113831
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
+ 	typo in comment.
+ 
+ 2024-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113902
+ 	* tree-vect-loop.cc (move_early_exit_stmts): Track
+ 	last_seen_vuse for VUSE updating.
+ 
+ 2024-02-13  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113734
+ 	* tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
+ 	an early break loop as partial.
+ 
+ 2024-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113898
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
+ 	missing accumulated off adjustment.
+ 
+ 2024-02-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
+ 	instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
+ 	it against UINT_MAX and ULONG_MAX.
+ 
+ 2024-02-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h (emit_diagnostic_valist): Rename overload
+ 	to...
+ 	(emit_diagnostic_valist_meta): ...this.
+ 	* diagnostic.cc (emit_diagnostic_valist): Likewise, to...
+ 	(emit_diagnostic_valist_meta): ...this.
+ 
+ 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113849
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
+ 	fast path for widening casts where !m_upwards_2limb and lhs_type
+ 	has precision which is a multiple of limb_prec.
+ 
+ 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/113674
+ 	* attribs.cc (extract_attribute_substring): Remove.
+ 	(lookup_scoped_attribute_spec): Don't call it.
+ 
+ 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
+ 	and cast to fmt_size_t instead of %lu and cast to unsigned long.
+ 
+ 2024-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* Makefile.in: Add no-info dependency.
+ 	* configure.ac: Set BUILD_INFO=no-info if makeinfo is not
+ 	available.
+ 	* configure: Regenerate.
+ 
+ 2024-02-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/113855
+ 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
+ 	available to all sub-targets.
+ 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
+ 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
+ 
+ 2024-02-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113831
+ 	PR tree-optimization/108355
+ 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
+ 	we see variable array indices and get_ref_base_and_extent
+ 	can resolve those to constants fix up the ops to constants
+ 	as well.
+ 	(ao_ref_init_from_vn_reference): Use 'off' member for
+ 	ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
+ 	(valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
+ 
+ 2024-02-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
+ 	Replace args to arguments for misspelled term.
+ 
+ 2024-02-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/112944
+ 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
+ 	<*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
+ 	when not linked with -mrodata-in-ram.
+ 
+ 2024-02-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113863
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ 	Record crossed virtual PHIs.
+ 	* tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
+ 	virtual PHIs.
+ 
+ 2024-02-10  Marek Polacek  <polacek@redhat.com>
+ 
+ 	DR 2237
+ 	PR c++/107126
+ 	PR c++/97202
+ 	* doc/invoke.texi: Document -Wtemplate-id-cdtor.
+ 
+ 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
+ 	computation of idx for i == 4 of bitint_prec_huge.
+ 
+ 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/110754
+ 	* gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
+ 	decls create PARM_DECL with pointer to original type, set
+ 	TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
+ 	DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
+ 	(adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
+ 	wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
+ 	(lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
+ 	of the var as argument.
+ 
+ 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
+ 	size_t and precision 4 for ptrdiff_t.  Formatting fix.
+ 	(pp_format): Document %{t,z}{d,i,u,o,x}.  Implement t and z modifiers.
+ 	Formatting fixes.
+ 	(test_pp_format): Test t and z modifiers.
+ 	* gcc.cc (read_specs): Use %td instead of %ld and casts to long.
+ 
+ 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
+ 	sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
+ 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
+ 	* tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
+ 	and casts to fmt_size_t instead of "%ld" and casts to long.
+ 	(print_value_expr_statistics, print_type_hash_statistics): Likewise.
+ 	* dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
+ 	instead of "%lu" and casts to unsigned long.
+ 	* gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
+ 	unsigned long.
+ 	* tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
+ 	and casts to fmt_size_t instead of "%ld" and casts to long.
+ 	* cfgexpand.cc (dump_stack_var_partition): Use
+ 	HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
+ 	and casts to unsigned long.
+ 	* gengtype.cc (adjust_field_rtx_def): Likewise.
+ 	* tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
+ 	and casts to fmt_size_t instead of "%ld" and casts to long.
+ 	* postreload-gcse.cc (dump_hash_table): Likewise.
+ 	* ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
+ 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
+ 	(ggc_internal_alloc, ggc_free): Likewise.
+ 	* genpreds.cc (write_lookup_constraint_1): Likewise.
+ 	(write_insn_constraint_len): Likewise.
+ 	* tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
+ 	and casts to fmt_size_t instead of "%ld" and casts to long.
+ 	* varasm.cc (output_constant_pool_contents): Use
+ 	HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
+ 	* var-tracking.cc (dump_var): Likewise.
+ 
+ 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113783
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
+ 	through VIEW_CONVERT_EXPR for final cast checks.  Handle
+ 	VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
+ 	INTEGER_TYPEs.
+ 	(gimple_lower_bitint): Don't merge mergeable operations or other
+ 	casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
+ 	* expr.cc (expand_expr_real_1): Don't use convert_modes if either
+ 	mode is BLKmode.
+ 
+ 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
+ 	HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
+ 	HOST_SIZE_T_PRINT_HEX_PURE): Define.
+ 	* ira-conflicts.cc (build_conflict_bit_table): Use it.  Formatting
+ 	fixes.
+ 
+ 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113415
+ 	* cfgexpand.cc (expand_asm_stmt): For asm goto, use
+ 	duplicate_insn_chain to duplicate after_rtl_seq sequence instead
+ 	of hand written loop with emit_insn of copy_insn and emit original
+ 	after_rtl_seq on the last edge.
+ 
+ 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113818
+ 	* gimple-lower-bitint.cc (add_eh_edge): New function.
+ 	(bitint_large_huge::handle_load,
+ 	bitint_large_huge::lower_mergeable_stmt,
+ 	bitint_large_huge::lower_muldiv_stmt): Use it.
+ 
+ 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113774
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
+ 	emit any comparison if m_first and low + 1 is equal to
+ 	m_upwards_2limb, simplify condition for that.  If not
+ 	single_comparison, not m_first and we can prove that the idx <= low
+ 	comparison will be always true, emit instead of idx <= low
+ 	comparison low <= low such that cfg cleanup will optimize it at
+ 	the end of the pass.
+ 
+ 2024-02-08  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/113735
+ 	* value-relation.cc (equiv_oracle::add_equiv_to_block): Call
+ 	limit_check().
+ 
+ 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
+ 	(main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
+ 
+ 2024-02-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/113711
+ 	PR target/113733
+ 	* config/i386/constraints.md: List all constraints with j prefix.
+ 	(j>): Change auto-dec to auto-inc in documentation.
+ 	(je): Changed to a memory constraint with APX NDD TLS operand
+ 	check.
+ 	(jM): New memory constraint for APX NDD instructions.
+ 	(jO): Likewise.
+ 	* config/i386/i386-protos.h (x86_poff_operand_p): Removed.
+ 	* config/i386/i386.cc (x86_poff_operand_p): Likewise.
+ 	* config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
+ 	(*add<mode>_1[SWI48]): Use je and jM.
+ 	(addsi_1_zext): Use jM.
+ 	(*addv<dwi>4_doubleword_1[DWI]): Likewise.
+ 	(*sub<mode>_1[SWI]): Use jM.
+ 	(@add<mode>3_cc_overflow_1[SWI]): Likewise.
+ 	(*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
+ 	(*and<dwi>3_doubleword): Likewise.
+ 	(*anddi_1): Use jM.
+ 	(*andsi_1_zext): Likewise.
+ 	(*and<mode>_1[SWI24]): Likewise.
+ 	(*<code><dwi>3_doubleword[any_or]): Use rjO
+ 	(*code<mode>_1[any_or SWI248]): Use jM.
+ 	(*<code>si_1_zext[zero_extend + any_or]): Likewise.
+ 	* config/i386/predicates.md (apx_ndd_memory_operand): New.
+ 	(apx_ndd_add_memory_operand): Likewise.
+ 
+ 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/113824
+ 	* config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2024-02-08  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113808
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
+ 	value cross iterations.
+ 
+ 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
+ 	defines __AVR_PM_BASE_ADDRESS__ if the core has it.
+ 
+ 2024-02-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ 	Revert last change to dr_may_alias_p.
+ 
+ 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
+ 	cc1_rodata_in_ram.  Rename spec link_misc to link_rodata_in_ram.
+ 	Remove spec asm_misc.
+ 	* config/avr/specs.h: Same.
+ 
+ 2024-02-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/113766
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
+ 	sure the c.arg_num is >= 2 before checking.
+ 	(struct build_frm_base): Ditto.
+ 	(struct narrow_alu_def): Ditto.
+ 
+ 2024-02-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113796
+ 	* tree-if-conv.cc (combine_blocks): Wipe range-info before
+ 	replacing PHIs and inserting predicates.
+ 
+ 2024-02-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113690
+ 	* config/i386/i386-features.cc (timode_convert_cst): New helper
+ 	function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
+ 	CONST_VECTOR.
+ 	(timode_scalar_chain::convert_op): Use timode_convert_cst.
+ 	(timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
+ 	Use timode_convert_cst.
+ 
+ 2024-02-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ 	* config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
+ 	(AARCH64_FL_DEBUGv8p9): Likewise.
+ 	(AARCH64_FL_FGT2): Likewise.Likewise.
+ 	(AARCH64_FL_ITE): Likewise.
+ 	(AARCH64_FL_PFAR): Likewise.
+ 	(AARCH64_FL_PMUv3_ICNTR): Likewise.
+ 	(AARCH64_FL_PMUv3_SS): Likewise.
+ 	(AARCH64_FL_PMUv3p9): Likewise.
+ 	(AARCH64_FL_RASv2): Likewise.
+ 	(AARCH64_FL_S1PIE): Likewise.
+ 	(AARCH64_FL_S1POE): Likewise.
+ 	(AARCH64_FL_S2PIE): Likewise.
+ 	(AARCH64_FL_S2POE): Likewise.
+ 	(AARCH64_FL_SCTLR2): Likewise.
+ 	(AARCH64_FL_SEBEP): Likewise.
+ 	(AARCH64_FL_SPE_FDS): Likewise.
+ 	(AARCH64_FL_TCR2): Likewise.
+ 
+ 2024-02-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ 	Only check whether reads are in-bound in places that are not safe.
+ 	Fix dependence check.  Add missing newline.  Clarify comments.
+ 
+ 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113750
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
+ 	for single predecessor when doing early break vect.
+ 	* tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
+ 	after labels.
+ 
+ 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113731
+ 	* gimple-iterator.cc (gsi_move_before): Take new parameter for update
+ 	method.
+ 	* gimple-iterator.h (gsi_move_before): Default new param to
+ 	GSI_SAME_STMT.
+ 	* tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
+ 	GSI_NEW_STMT.
+ 
+ 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113756
+ 	* range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
+ 	use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
+ 	of lh_bits value and mask.
+ 
+ 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113753
+ 	* wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
+ 	UNSIGNED rather than SIGNED.  If high or needs_overflow and prec is
+ 	not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
+ 	so that they start with r[half_blocks_needed] lowest bit.  Fix up
+ 	computation of top mask for SIGNED.
+ 
+ 2024-02-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/113766
+ 	* config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
+ 	the signature of func.
+ 	* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
+ 	overloaded func with empty args error.
+ 
+ 2024-02-06  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/113689
+ 	* config/i386/i386.cc (x86_64_select_profile_regnum): Return
+ 	R10_REG after sorry.
+ 
+ 2024-02-06  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
+ 	Move before new caller, and add ".default" suffix.
+ 	(get_suffixed_assembler_name): New.
+ 	(make_resolver_func): Use get_suffixed_assembler_name.
+ 	(aarch64_generate_version_dispatcher_body): Redo name mangling.
+ 
+ 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/113763
+ 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
+ 	element from std::pair<unsigned int, char> to an unnamed struct.
+ 	Adjust uses of tile range variable.
+ 
+ 2024-02-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
+ 	(pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
+ 
+ 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/110676
+ 	* gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
+ 	reset maxlen to sizetype maximum.
+ 
+ 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113736
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
+ 	var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
+ 
+ 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113759
+ 	* tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
+ 	or from_unsignedN differs from properties of typeN, update typeN
+ 	to build_nonstandard_integer_type.  If TREE_TYPE (rhsN) is not
+ 	uselessly convertible to typeN, convert it using fold_convert or
+ 	build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
+ 	(convert_plusminus_to_widen): Likewise.
+ 
+ 2024-02-06  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	PR target/112577
+ 	* config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
+ 	vector structure modes correctly.
+ 
+ 2024-02-05  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.cc (th_print_operand_address): Fix compiler
+ 	warning.
+ 
+ 2024-02-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/113689
+ 	* config/i386/i386.cc (x86_64_select_profile_regnum): New.
+ 	(x86_function_profiler): Call x86_64_select_profile_regnum to
+ 	get a scratch register for large model profiling.
+ 
+ 2024-02-05  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_output_mi_thunk): Emit
+ 	insn for bti_c when bti is enabled.
+ 
+ 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
+ 	neg.
+ 
+ 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
+ 	(neg<mode>2): Change the mode iterator from MSA to IMSA because
+ 	in FP arithmetic we cannot use (0 - x) for -x.
+ 	(neg<mode>2): New define_insn to implement FP vector negation,
+ 	using a bnegi instruction to negate the sign bit.
+ 
+ 2024-02-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113707
+ 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
+ 	checking the avail set treat out-of-region defines as
+ 	available.
+ 
+ 2024-02-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
+ 	the default mode when building a pointer.
+ 
+ 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113737
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
+ 	has just a single label, remove it and make single successor edge
+ 	EDGE_FALLTHRU.
+ 
+ 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/113059
+ 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
+ 	Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
+ 	df_analyze call.
+ 
+ 2024-02-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/113255
+ 	* config/i386/i386-expand.cc
+ 	(expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
+ 	Use a new pseudo for the skipped number of bytes.
+ 
+ 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
+ 	* doc/invoke.texi (RISC-V Options): Add sifive-p450,
+ 	sifive-p670.
+ 
+ 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv.md: Include sifive-p400.md.
+ 	* config/riscv/sifive-p400.md: New file.
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
+ 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ 	Add sifive_p400.
+ 	* config/riscv/riscv.cc (sifive_p400_tune_info): New.
+ 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
+ 	* doc/invoke.texi (RISC-V Options): Add sifive-p400-series
+ 
+ 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*eqne_zero_masked_bits):
+ 	Add missing ":SI" to the match_operator.
+ 
+ 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (SHI): New mode iterator.
+ 	(2 split patterns related to constsynth):
+ 	Change to also accept HImode operands.
+ 
+ 2024-02-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
+ 	similarly.
+ 
+ 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
+ 	incorrect expand.
+ 	* config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
+ 	(elmsgnbit): Likewise.
+ 	(neg<mode:FVEC>2): New define_insn.
+ 	* config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
+ 	are now instantiated in simd.md.
+ 
+ 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
+ 	use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
+ 	MAX_MACHINE_MODE.
+ 
+ 2024-02-04  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
+ 	(loongarch_expand_vselect_vconcat): Ditto.
+ 	(loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
+ 	all 128-bit constant permutation situations.
+ 	(loongarch_expand_lsx_shuffle): Adjust and rename function name.
+ 	(loongarch_is_imm_set_shuffle): Renamed function name.
+ 	(loongarch_expand_vec_perm_even_odd): Function forward declaration.
+ 	(loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
+ 	extract-even and extract-odd permutations.
+ 	(loongarch_is_odd_extraction): Delete.
+ 	(loongarch_is_even_extraction): Ditto.
+ 	(loongarch_expand_vec_perm_const): Adjust.
+ 
+ 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113722
+ 	* wide-int.cc (wi::bswap_large): Rename third argument from
+ 	len to xlen and adjust use in safe_uhwi.  Add len variable, set
+ 	it to BLOCKS_NEEDED (precision) and use it for clearing of val
+ 	and as canonize argument.  Clear val using memset instead of
+ 	a loop.
+ 
+ 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* ggc-common.cc (gt_pch_save): Allow addr to be equal to
+ 	mmi.preferred_base + mmi.size - sizeof (void *).
+ 
+ 2024-02-03  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
+ 	* config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
+ 	the ODR-violating locale declaration.
+ 
+ 2024-02-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113588
+ 	PR tree-optimization/113467
+ 	* tree-vect-data-refs.cc
+ 	(vect_analyze_data_ref_dependence):  Choose correct dest and fix checks.
+ 	(vect_analyze_early_break_dependences): Update comments.
+ 
+ 2024-02-02  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/59778
+ 	* config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
+ 	and PA_BUILTIN_SET_FPSR builtins.
+ 	* (pa_builtins_icode): Declare.
+ 	* (def_builtin, pa_fpu_init_builtins): New.
+ 	* (pa_init_builtins): Initialize FPU builtins.
+ 	* (pa_builtin_decl, pa_expand_builtin_1): New.
+ 	* (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
+ 	PA_BUILTIN_SET_FPSR builtins.
+ 	* (pa_atomic_assign_expand_fenv): New.
+ 	* config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
+ 	UNSPECV constants.
+ 	(get_fpsr, put_fpsr): New expanders.
+ 	(get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
+ 	insn patterns.
+ 
+ 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113697
+ 	* config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
+ 
+ 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/extend.texi (Common Type Attributes): Fix typo in
+ 	description of hardbool.
+ 
+ 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113692
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
+ 	from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
+ 	final_cast_p.
+ 
+ 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113699
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
+ 	uninitialized large/huge _BitInt SSA_NAME inputs.
+ 
+ 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113705
+ 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
+ 	around wi::to_wide in order to compare value in prec precision.
+ 
+ 2024-02-02  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	Revert:
+ 	2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
+ 
+ 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
+ 
+ 2024-02-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
+ 	(riscv_pass_by_reference): Ditto.
+ 	(riscv_fntype_abi): Ditto.
+ 
+ 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
+ 	(pre_vsetvl::cleaup): Remove vsetvl_pre.
+ 	(pre_vsetvl::remove_vsetvl_pre_insns): New function.
+ 
+ 2024-02-02  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/larchintrin.h
+ 	(__frecipe_s): Update function return type.
+ 	(__frecipe_d): Ditto.
+ 	(__frsqrte_s): Ditto.
+ 	(__frsqrte_d): Ditto.
+ 
+ 2024-02-02  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
+ 	(loongarch_vector_costs::add_stmt_cost): Adjust.
+ 
+ 2024-02-02  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (unspec): Add
+ 	UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
+ 	(la_pcrel64_two_parts): New define_insn.
+ 	* config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
+ 	typo in the comment.
+ 	(loongarch_call_tls_get_addr): If -mcmodel=extreme
+ 	-mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
+ 	addressing the TLS symbol and __tls_get_addr.  Emit an REG_EQUAL
+ 	note to allow CSE addressing __tls_get_addr.
+ 	(loongarch_legitimize_tls_address): If -mcmodel=extreme
+ 	-mexplicit-relocs={always,auto}, address TLS IE symbols with
+ 	la_pcrel64_two_parts.
+ 	(loongarch_split_symbol): If -mcmodel=extreme
+ 	-mexplicit-relocs={always,auto}, address symbols with
+ 	la_pcrel64_two_parts.
+ 	(loongarch_output_mi_thunk): Clean up unreachable code.  If
+ 	-mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
+ 	thunks with la_pcrel64_two_parts.
+ 
+ 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
+ 	Add support for call36.
+ 
+ 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ 	When the code model of the symbol is extreme and -mexplicit-relocs=auto,
+ 	the macro instruction loading symbol address is not applicable.
+ 	(loongarch_call_tls_get_addr): Adjust code.
+ 	(loongarch_legitimize_tls_address): Likewise.
+ 
+ 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
+ 	Add function declaration.
+ 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
+ 	For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
+ 	is not allowed
+ 	(loongarch_load_tls): Added macro support in extreme mode.
+ 	(loongarch_call_tls_get_addr): Likewise.
+ 	(loongarch_legitimize_tls_address): Likewise.
+ 	(loongarch_force_address): Likewise.
+ 	(loongarch_legitimize_move): Likewise.
+ 	(loongarch_output_mi_thunk): Likewise.
+ 	(loongarch_option_override_internal): Remove the code that detects
+ 	explicit relocs status.
+ 	(loongarch_handle_model_attribute): Likewise.
+ 	* config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
+ 	* config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
+ 	(symbolic_off64_or_reg_operand): Likewise.
+ 
+ 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_load_tls):
+ 	Load all types of tls symbols through one function.
+ 	(loongarch_got_load_tls_gd): Delete.
+ 	(loongarch_got_load_tls_ld): Delete.
+ 	(loongarch_got_load_tls_ie): Delete.
+ 	(loongarch_got_load_tls_le): Delete.
+ 	(loongarch_call_tls_get_addr): Modify the called function name.
+ 	(loongarch_legitimize_tls_address): Likewise.
+ 	* config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
+ 	(@load_tls<mode>): New template.
+ 	(@got_load_tls_ld<mode>): Delete.
+ 	(@got_load_tls_le<mode>): Delete.
+ 	(@got_load_tls_ie<mode>): Delete.
+ 
+ 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
+ 	(loongarch_legitimize_address): Add logical transformation code.
+ 
+ 2024-02-01  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Update -Wdangling-reference documentation.
+ 
+ 2024-02-01  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113701
+ 	* config/i386/i386.md (*cmp<dwi>_doubleword):
+ 	Do not force SUBREG pieces to pseudos.
+ 
+ 2024-02-01  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (atomic_storedi_1): Fix bug in
+ 	alternative 1.
+ 
+ 2024-02-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc: Tabify.
+ 
+ 2024-02-01  Richard Ball  <richard.ball@arm.com>
+ 
+ 	PR tree-optimization/111268
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1):
+ 	Add variable-length check for vector input arguments
+ 	to a function.
+ 
+ 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
+ 	hard-code number of SGPR/VGPR/AVGPR registers.
+ 	* config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
+ 	SGPR/VGPR/AVGPR registers.
+ 
+ 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
+ 	attribute, and include sifive-p600.md.
+ 	* config/riscv/generic-ooo.md: Update type attribute.
+ 	* config/riscv/generic.md: Update type attribute.
+ 	* config/riscv/sifive-7.md: Update type attribute.
+ 	* config/riscv/sifive-p600.md: New file.
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
+ 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ 	Add sifive_p600.
+ 	* config/riscv/riscv.cc (sifive_p600_tune_info): New.
+ 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
+ 	* doc/invoke.texi (RISC-V Options): Add sifive-p600-series
+ 
+ 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
+ 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
+ 	* config/riscv/riscv.opt: New macro for 7 new unprivileged
+ 	extensions.
+ 	* doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
+ 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
+ 
+ 2024-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
+ 	-static-libasan.  Add missing whitespace.
+ 
+ 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
+ 	(FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
+ 	Don't 'define_constants'.
+ 
+ 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
+ 
+ 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
+ 	[TARGET_RDNA3]: Adjust.
+ 
+ 2024-02-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113693
+ 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
+ 	data when available.
+ 
+ 2024-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/113531
+ 	* gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
+ 	on variables which were promoted to TREE_STATIC.
+ 
+ 2024-02-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/113560
+ 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
+ 	information via tree_non_zero_bits to check if this operand
+ 	is suitably extended for a widening (or highpart) multiplication.
+ 	(convert_mult_to_widen): Insert explicit casts if the RHS or LHS
+ 	isn't already of the claimed type.
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	Revert:
+ 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
+ 	(generic_ooo_branch): ditto
+ 	* config/riscv/generic.md (generic_sfb_alu): ditto
+ 	(generic_fmul_half): ditto
+ 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
+ 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
+ 	(sifive_7_popcount): ditto
+ 	* config/riscv/vector.md: change rdfrm to fmove
+ 	* config/riscv/zc.md: change pushpop to load/store
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	Revert:
+ 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 		    Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
+ 	(generic_ooo_vec_load): ditto
+ 	(generic_ooo_vec_store): ditto
+ 	(generic_ooo_vec_loadstore_seg): ditto
+ 	(generic_ooo_vec_alu): ditto
+ 	(generic_ooo_vec_fcmp): ditto
+ 	(generic_ooo_vec_imul): ditto
+ 	(generic_ooo_vec_fadd): ditto
+ 	(generic_ooo_vec_fmul): ditto
+ 	(generic_ooo_crypto): ditto
+ 	(generic_ooo_perm): ditto
+ 	(generic_ooo_vec_reduction): ditto
+ 	(generic_ooo_vec_ordered_reduction): ditto
+ 	(generic_ooo_vec_idiv): ditto
+ 	(generic_ooo_vec_float_divsqrt): ditto
+ 	(generic_ooo_vec_mask): ditto
+ 	(generic_ooo_vec_vesetvl): ditto
+ 	(generic_ooo_vec_setrm): ditto
+ 	(generic_ooo_vec_readlen): ditto
+ 	* config/riscv/riscv.md: include generic-vector-ooo
+ 	* config/riscv/generic-vector-ooo.md: New file. to here
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	Revert:
+ 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
+ 	(generic_ooo_vec_load): ditto
+ 	(generic_ooo_vec_store): ditto
+ 	(generic_ooo_vec_loadstore_seg): ditto
+ 	(generic_ooo_vec_alu): ditto
+ 	(generic_ooo_vec_fcmp): ditto
+ 	(generic_ooo_vec_imul): ditto
+ 	(generic_ooo_vec_fadd): ditto
+ 	(generic_ooo_vec_fmul): ditto
+ 	(generic_ooo_crypto): ditto
+ 	(generic_ooo_perm): ditto
+ 	(generic_ooo_vec_reduction): ditto
+ 	(generic_ooo_vec_ordered_reduction): ditto
+ 	(generic_ooo_vec_idiv): ditto
+ 	(generic_ooo_vec_float_divsqrt): ditto
+ 	(generic_ooo_vec_mask): ditto
+ 	(generic_ooo_vec_vesetvl): ditto
+ 	(generic_ooo_vec_setrm): ditto
+ 	(generic_ooo_vec_readlen): ditto
+ 	* config/riscv/riscv.md: include generic-vector-ooo
+ 	* config/riscv/generic-vector-ooo.md: New file. to here
+ 
+ 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
+ 	(generic_ooo_branch): ditto
+ 	* config/riscv/generic.md (generic_sfb_alu): ditto
+ 	(generic_fmul_half): ditto
+ 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
+ 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
+ 	(sifive_7_popcount): ditto
+ 	* config/riscv/vector.md: change rdfrm to fmove
+ 	* config/riscv/zc.md: change pushpop to load/store
+ 
+ 2024-02-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113657
+ 	* config/aarch64/aarch64-simd.md (split for movv8di):
+ 	For strict aligned mode, use DImode instead of TImode.
+ 
+ 2024-01-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/113607
+ 	* match.pd: Make sure else values match when folding a
+ 	vec_cond into a conditional operation.
+ 
+ 2024-01-31  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
+ 
+ 2024-01-31  Tamar Christina  <tamar.christina@arm.com>
+ 	    Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	PR sanitizer/112644
+ 	* asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
+ 	memcmp.
+ 	* builtins.cc (expand_builtin): Include HWASAN when checking for
+ 	builtin inlining.
+ 
+ 2024-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110176
+ 	* match.pd (zext (bool) <= (int) 4294967295u): Make sure
+ 	to match INTEGER_CST only without outstanding conversion.
+ 
+ 2024-01-31  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/111677
+ 	* config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
+ 	V16QImode for the full 16-byte FPR saves in the vector PCS case.
+ 
+ 2024-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111444
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
+ 	vn_reference_lookup_2 when optimistically skipping may-defs.
+ 
+ 2024-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113630
+ 	* tree-ssa-pre.cc (compute_avail): Avoid registering a
+ 	reference with a representation with not matching base
+ 	access size.
+ 
+ 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/113656
+ 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
+ 	<case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
+ 
+ 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/113637
+ 	* dwarf2out.cc (loc_list_from_tree_1): Assume integral types
+ 	with BLKmode are larger than DWARF2_ADDR_SIZE.
+ 
+ 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113639
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
+ 	For VIEW_CONVERT_EXPR set rhs1 to its operand.
+ 
+ 2024-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113670
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter):
+ 	Make sure we can take the address of the reference base.
+ 
+ 2024-01-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
+ 	ATA5835, ATtiny64AUTO, ATA5700M322.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR debug/113394
+ 	* ipa-strub.cc (build_ref_type_for): Drop nonaliased.  Adjust
+ 	caller.
+ 
+ 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112917
+ 	PR middle-end/113100
+ 	* builtins.cc (expand_builtin_stack_address): Use
+ 	STACK_ADDRESS_OFFSET.
+ 	* doc/extend.texi (__builtin_stack_address): Adjust.
+ 	* config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
+ 	* doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
+ 	* doc/tm.texi: Rebuilt.
+ 
+ 2024-01-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113495
+ 	* config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
+ 	(pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
+ 	(pre_vsetvl::compute_transparent): New function.
+ 	(pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
+ 
+ 2024-01-30  Fangrui Song  <maskray@google.com>
+ 
+ 	PR target/105576
+ 	* config/i386/constraints.md: Define constraint "Ws".
+ 	* doc/md.texi: Document it.
+ 
+ 2024-01-30  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/110358
+ 	PR c++/109640
+ 	* doc/invoke.texi: Update -Wdangling-reference description.
+ 
+ 2024-01-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/constraints.md (R, T, U):
+ 	Change define_constraint to define_memory_constraint.
+ 	* config/xtensa/predicates.md (move_operand): Don't check that a
+ 	constant pool operand size is a multiple of UNITS_PER_WORD.
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_lra_p, TARGET_LRA_P): Remove.
+ 	(xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
+ 	clause as it can no longer be true.
+ 	(fixup_subreg_mem): Drop function.
+ 	(xtensa_output_integer_literal_parts): Consider 16-bit wide
+ 	constants.
+ 	(xtensa_legitimate_constant_p): Add short-circuit path for
+ 	integer load instructions. Don't check that mode size is
+ 	at least UNITS_PER_WORD.
+ 	* config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
+ 	rather reload_in_progress and reload_completed.
+ 	(doloop_end): Drop operand 2.
+ 	(movhi_internal): Add alternative loading constant from a
+ 	literal pool.
+ 	(define_split for DI register_operand): Don't limit to
+ 	!TARGET_AUTO_LITPOOLS.
+ 	* config/xtensa/xtensa.opt (mlra): Change to no effect.
+ 
+ 2024-01-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
+ 	calculate the gpr count required by vls mode.
+ 	(riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
+ 	(riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
+ 	for vls mode.
+ 	(riscv_get_arg_info): Add vls mode handling.
+ 	(riscv_pass_by_reference): Return false if arg info has no zero gpr count.
+ 
+ 2024-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113659
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Handle main exit without virtual use.
+ 
+ 2024-01-30  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
+ 
+ 2024-01-30  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR libgcc/113403
+ 	* config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
+ 	(REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
+ 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
+ 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
+ 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
+ 	* config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
+ 
+ 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113623
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
+ 	Mark all registers that occur in addresses as needing a GPR.
+ 
+ 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113636
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
+ 	the containing insn as an extra parameter.  Reset debug instructions
+ 	if they reference a register that is no longer used by real insns.
+ 	(early_ra::apply_allocation): Update calls accordingly.
+ 
+ 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113603
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_store): After
+ 	count_nonzero_bytes call refetch si using get_strinfo in case it
+ 	has been unshared in the meantime.
+ 
+ 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/101195
+ 	* except.cc (expand_builtin_eh_return_data_regno): If which doesn't
+ 	fit into unsigned HOST_WIDE_INT, return constm1_rtx.
+ 
+ 2024-01-30  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/thead.cc (th_print_operand_address): Change %ld
+ 	to %lld.
+ 
+ 2024-01-29  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
+ 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-ldpstp.md: Remove unused mode.
+ 	* config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
+ 	Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
+ 	Call on framework moved later.
+ 
+ 2024-01-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
+ 	instruction in naked function epilogues.
+ 
+ 2024-01-29  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	PR target/113655
+ 	* configure.ac: Fix typo gcc_cv_as_mips_explicit should be
+ 	gcc_cv_as_mips_explicit_relocs.
+ 	* configure: Regnerated.
+ 
+ 2024-01-29  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	PR target/108933
+ 	* config/arm/arm.md (arm_rev16si2): Convert to define_insn.
+ 	Correct generated RTL.
+ 	(arm_rev16si2_alt1): Correctly handle conditional execution.
+ 	(arm_rev16si2_alt2): Likewise.
+ 
+ 2024-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/113622
+ 	* expr.cc (expand_assignment): Spill hard registers if
+ 	we index them with a variable offset.
+ 
+ 2024-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/113622
+ 	* gimple-isel.cc (gimple_expand_vec_set_extract_expr):
+ 	Also allow DECL_HARD_REGISTER variables.
+ 
+ 2024-01-29  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113616
+ 	* config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
+ 	Use iterate_safely when iterating over debug uses.
+ 	(fixup_debug_uses): Likewise.
+ 	(ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
+ 	over nondebug insns instead of manually maintaining the next insn.
+ 	* iterator-utils.h (class safe_iterator): New.
+ 	(iterate_safely): New.
+ 
+ 2024-01-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/38534
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Save
+ 	callee-saved registers in noreturn functions for -O0/-Og.
+ 
+ 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR target/113615
+ 	* config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
+ 	define for !TARGET_RDNA2_PLUS.
+ 
+ 2024-01-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113281
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
+ 	workaround for right shifts.
+ 	(vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
+ 	(vect_determine_precisions_from_range): Be more selective about
+ 	which codes can be narrowed based on their input and output ranges.
+ 	For shifts, require at least one more bit of precision than the
+ 	maximum shift amount.
+ 
+ 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
+ 
+ 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
+ 	but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
+ 	LLVM 13.0.1+.
+ 
+ 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR other/111966
+ 	* config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
+ 	(SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
+ 	(SET_SRAM_ECC_UNSET): ... this.
+ 	(copy_early_debug_info): Remove gfx900 special case, now handled as
+ 	part of the generic handling.
+ 	(main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
+ 
+ 2024-01-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110603
+ 	* tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
+ 	setting of pdata->maxlen to vr.upper_bound (which is unconditionally
+ 	overwritten anyway).  Avoid creating invalid range with minlen
+ 	larger than maxlen.  Formatting fix.
+ 
+ 2024-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/103047
+ 	* tree-inline.cc (initialize_inlined_parameters): Reverse
+ 	the decl chain of inlined parameters.
+ 
+ 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
+ 	alignment of CFString constants by setting DECL_USER_ALIGN.
+ 
+ 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 	    Jakub Jelinek   <jakub@redhat.com>
+ 
+ 	PR libgcc/113402
+ 	* builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
+ 	and BUILT_IN_GCC_NESTED_PTR_DELETED.
+ 	* builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
+ 	BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
+ 	rename the library fallbacks to __gcc_nested_func_ptr_created and
+ 	__gcc_nested_func_ptr_deleted.
+ 	* doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
+ 	and __gcc_nested_func_ptr_deleted.
+ 	* tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
+ 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
+ 	* tree.cc (build_common_builtin_nodes): Build the
+ 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
+ 	builtins only for non-explicit.
+ 
+ 2024-01-28  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
+ 
+ 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/38534
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Don't
+ 	save and restore callee saved registers for a noreturn function
+ 	with nothrow or compiled with -fno-exceptions.
+ 
+ 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/103503
+ 	PR target/113312
+ 	* config/i386/i386-expand.cc (ix86_expand_call): Replace
+ 	no_caller_saved_registers check with call_saved_registers check.
+ 	Clobber all registers that are not used by the callee with
+ 	no_callee_saved_registers attribute.
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Set
+ 	call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
+ 	noreturn function.  Disallow no_callee_saved_registers with
+ 	interrupt or no_caller_saved_registers attributes together.
+ 	(ix86_set_current_function): Replace no_caller_saved_registers
+ 	check with call_saved_registers check.
+ 	(ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
+ 	(ix86_handle_call_saved_registers_attribute): This.
+ 	(ix86_gnu_attributes): Add
+ 	ix86_handle_call_saved_registers_attribute.
+ 	* config/i386/i386.cc (ix86_conditional_register_usage): Replace
+ 	no_caller_saved_registers check with call_saved_registers check.
+ 	(ix86_function_ok_for_sibcall): Don't allow callee with
+ 	no_callee_saved_registers attribute when the calling function
+ 	has callee-saved registers.
+ 	(ix86_comp_type_attributes): Also check
+ 	no_callee_saved_registers.
+ 	(ix86_epilogue_uses): Replace no_caller_saved_registers check
+ 	with call_saved_registers check.
+ 	(ix86_hard_regno_scratch_ok): Likewise.
+ 	(ix86_save_reg): Replace no_caller_saved_registers check with
+ 	call_saved_registers check.  Don't save any registers for
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS.  Save all registers with
+ 	TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
+ 	no_callee_saved_registers attribute is called.
+ 	(find_drap_reg): Replace no_caller_saved_registers check with
+ 	call_saved_registers check.
+ 	* config/i386/i386.h (call_saved_registers_type): New enum.
+ 	(machine_function): Replace no_caller_saved_registers with
+ 	call_saved_registers.
+ 	* doc/extend.texi: Document no_callee_saved_registers attribute.
+ 
+ 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113614
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
+ 	widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
+ 	TRUNC_MOD_EXPR or FLOAT_EXPR uses.
+ 
+ 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113568
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
+ 	For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
+ 	in the widening extension checks.
+ 
+ 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): For
+ 	TDF_DETAILS dump mapping of SSA_NAMEs to decls.
+ 
+ 2024-01-26  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* cgraphunit.cc (process_function_and_variable_attributes): Tweak
+ 	the warning for an attribute-always_inline without inline declaration.
+ 
+ 2024-01-26  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR other/113575
+ 	* genopinit.cc (main): Split init_all_optabs into functions
+ 	of 1000 patterns each.
+ 
+ 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
+ 	TM_MULTILIB_CONFIG.
+ 	* doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
+ 	* doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
+ 	-march/-mtune.
+ 
+ 2024-01-26  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
+ 	* config/gcn/gcn-valu.md (all_convert): New iterator.
+ 	(<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
+ 	define_expand, and rename the old one to ...
+ 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
+ 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
+ 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
+ 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
+ 	* config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
+ 	(gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
+ 	* config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
+ 	(<u>mulqihi3_scalar): Likewise.
+ 
+ 2024-01-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113602
+ 	* tree-data-ref.cc (dr_analyze_innermost): Fail when
+ 	the base object isn't addressable.
+ 
+ 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
+ 	"--amdhsa-code-object-version=" argument.
+ 	(ASM_SPEC): Use it; replace previous version of it.
+ 
+ 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
+ 	(pre_vsetvl::emit_vsetvl): Ditto.
+ 
+ 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_extract<mode>_0):
+ 	New define_insn_and_split patten.
+ 
+ 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
+ 
+ 2024-01-26  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
+ 
+ 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113469
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
+ 
+ 2024-01-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/100212
+ 	* config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
+ 	undefined shift after the call to exact_log2.
+ 
+ 2024-01-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/100204
+ 	* config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
+ 	before taking the negative of it.
+ 
+ 2024-01-25  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/113526
+ 	* lra-constraints.cc (curr_insn_transform): Change class even for
+ 	spilled pseudo successfully matched with with NO_REGS.
+ 
+ 2024-01-25  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/113601
+ 	* config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
+ 
+ 2024-01-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	PR target/112987
+ 	* config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
+ 	(aarch64_expand_epilogue): Use the new function.
+ 	(aarch64_split_compare_and_swap): Likewise.
+ 	(aarch64_split_atomic_op): Likewise.
+ 
+ 2024-01-25  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR middle-end/112971
+ 	* fold-const.cc (simplify_const_binop): New function for binop
+ 	simplification of two constant vectors when element-wise
+ 	handling is not necessary.
+ 	(const_binop): Call new function.
+ 
+ 2024-01-25  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add XCVbitmanip.
+ 	* config/riscv/constraints.md: Likewise.
+ 	* config/riscv/corev.def: Likewise.
+ 	* config/riscv/corev.md: Likewise.
+ 	* config/riscv/predicates.md: Likewise.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
+ 	* config/riscv/riscv-ftypes.def: Likewise.
+ 	* config/riscv/riscv.opt: Likewise.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
+ 	* doc/extend.texi: Add XCVbitmanip builtin documentation.
+ 	* doc/sourcebuild.texi: Likewise.
+ 
+ 2024-01-25  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
+ 
+ 2024-01-25  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	PR target/113538
+ 	* config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
+ 	(riscv_fntype_abi): Ditto.
+ 	* config/riscv/riscv.opt: Ditto.
+ 
+ 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113574
+ 	* convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
+ 	count against TYPE_PRECISION rather than TYPE_SIZE.
+ 
+ 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113572
+ 	* config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
+ 	Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
+ 
+ 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113550
+ 	* config/aarch64/aarch64-simd.md: In the movv8di splitter, check
+ 	whether each split instruction is a load that clobbers the source
+ 	address.  Emit that instruction last if so.
+ 
+ 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113485
+ 	* config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
+ 	pattern.
+ 	(<optab><Vnarrowq><mode>2): Use it instead of generating a
+ 	paradoxical subreg for the input.
+ 
+ 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
+ 	predecessors dump information.
+ 
+ 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
+ 	redundant full available computation.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
+ 
+ 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
+ 	* doc/rtl.texi (CONST_VECTOR): Likewise.
+ 
+ 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
+ 	(pass_vsetvl::execute): Ditto.
+ 	* config/riscv/riscv.opt: Ditto.
+ 
+ 2024-01-25  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
+ 
+ 2024-01-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113576
+ 	* tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
+ 	exits with may_be_zero niters when its the last one.
+ 
+ 2024-01-25  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
+ 	For symbols of type tls, non-zero Offset is not generated.
+ 
+ 2024-01-25  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000-string.cc (expand_block_compare): Enable
+ 	P9 with m32 and mpowerpc64.
+ 
+ 2024-01-25  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Enable -mlam=u57 by default when compiled with
+ 	-fsanitize=hwaddress.
+ 
+ 2024-01-25  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_implied_info):
+ 	Remove {"ztso", "a"}.
+ 
+ 2024-01-24  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108007
+ 	PR ipa/112616
+ 	* cgraph.h (cgraph_edge): Add a parameter to
+ 	redirect_call_stmt_to_callee.
+ 	* ipa-param-manipulation.h (ipa_param_adjustments): Add a
+ 	parameter to modify_call.
+ 	(ipa_release_ssas_in_hash): Declare.
+ 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
+ 	parameter killed_ssas, pass it to padjs->modify_call.
+ 	* ipa-param-manipulation.cc (purge_all_uses): New function.
+ 	(ipa_param_adjustments::modify_call): New parameter killed_ssas.
+ 	Instead of substituting uses, invoke purge_all_uses.  If
+ 	hash of killed SSAs has not been provided, create a temporary one
+ 	and release SSAs that have been added to it.
+ 	(compare_ssa_versions): New function.
+ 	(ipa_release_ssas_in_hash): Likewise.
+ 	* tree-inline.cc (redirect_all_calls): Create
+ 	id->killed_new_ssa_names earlier, pass it to edge redirection,
+ 	adjust a comment.
+ 	(copy_body): Release SSAs in id->killed_new_ssa_names.
+ 
+ 2024-01-24  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113486
+ 	* config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
+ 	TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
+ 
+ 2024-01-24  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	PR target/113095
+ 	* config/riscv/sfb.md: New splitters to rewrite single bit
+ 	sign extension as the condition to SFB instructions.
+ 
+ 2024-01-24  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/88345
+ 	* common.opt: (flimit-function-alignment): Reorder alphabeticaly
+ 	(fmin-function-alignment): New parameter.
+ 	* doc/invoke.texi: (-fmin-function-alignment): Document.
+ 	(-falign-functions,-falign-loops,-falign-labels): Mention that
+ 	aglinments are ignored in cold code.
+ 	* varasm.cc (assemble_start_function): Handle min-function-alignment.
+ 
+ 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/109636
+ 	* config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
+ 	mulv2di3): Remove.
+ 	* config/aarch64/iterators.md (VQDIV): Remove.
+ 	(SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
+ 	SVE_I_SIMD_DI): New.
+ 	(VPRED, sve_lane_con): Add V4SI and V2DI.
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>3,
+ 	@aarch64_pred_<optab><mode>): Support Advanced SIMD types.
+ 	(mul<mode>3): New, split from <optab><mode>3.
+ 	(@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
+ 	*aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
+ 	SVE_FULL_HSDI_SIMD_DI.
+ 
+ 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113552
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
+ 
+ 2024-01-24  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/113490
+ 	* ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
+ 	count is equal or greater than the limit.  Use the limit from the
+ 	callee.
+ 
+ 2024-01-24  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* configure.ac: Detect the explicit relocs support for
+ 	mips, and define C macro MIPS_EXPLICIT_RELOCS.
+ 	* config.in: Regenerated.
+ 	* configure: Regenerated.
+ 	* doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
+ 	* config/mips/mips-opts.h: Define enum mips_explicit_relocs.
+ 	* config/mips/mips.cc(mips_set_compression_mode): Sorry if
+ 	!TARGET_EXPLICIT_RELOCS instead of just set it.
+ 	* config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
+ 	TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
+ 	* config/mips/mips.opt: Introduce -mexplicit-relocs= option
+ 	and define -m(no-)explicit-relocs as aliases.
+ 
+ 2024-01-24  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
+ 	to 1.
+ 	(-mlate-ldp-fusion): Likewise.
+ 
+ 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vect_get_vect_def,
+ 	vect_create_epilog_for_reduction): Rename main_exit_p to
+ 	last_val_reduc_p.
+ 
+ 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113364
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
+ 	early exits then we must reduce from the first offset for all of them.
+ 
+ 2024-01-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113495
+ 	* config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
+ 	(get_regno): Ditto.
+ 	(get_bb_index): Ditto.
+ 	(pre_vsetvl::compute_avl_def_data): Ditto.
+ 	(pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
+ 
+ 2024-01-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/100942
+ 	* ccmp.cc (ccmp_candidate_p): Add outer argument.
+ 	Allow if the outer is true and the lhs is used more
+ 	than once.
+ 	(expand_ccmp_expr): Update call to ccmp_candidate_p.
+ 	* expr.h (expand_expr_real_gassign): Declare.
+ 	* expr.cc (expand_expr_real_gassign): New function, split out from...
+ 	(expand_expr_real_1): ...here.
+ 	* cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113089
+ 	* config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
+ 	(fixup_debug_use): New.
+ 	(fixup_debug_uses_trailing_add): New.
+ 	(fixup_debug_uses): New. Use it ...
+ 	(ldp_bb_info::fuse_pair): ... here.
+ 	(try_promote_writeback): Call fixup_debug_uses_trailing_add to
+ 	fix up debug uses of the base register that are affected by
+ 	folding in the trailing add insn.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113089
+ 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
+ 	Update trailing nondebug uses of the base register in the case
+ 	of cancelling writeback.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113089
+ 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
+ 	(debug_insn_use_iterator): New.
+ 	(set_info::first_debug_insn_use): New.
+ 	(set_info::debug_insn_uses): New.
+ 	* rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
+ 	(set_info::first_debug_insn_use): New.
+ 	(set_info::debug_insn_uses): New.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113356
+ 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
+ 	Don't record hazards against the opposite insn in the pair.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113070
+ 	* config/aarch64/aarch64-ldp-fusion.cc
+ 	(struct stp_change_builder): New.
+ 	(decide_stp_strategy): Reanme to ...
+ 	(try_repurpose_store): ... this.
+ 	(ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
+ 	construct stp changes.  Fix up uses when inserting new stp insns.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113070
+ 	* rtl-ssa.h: Include hash-set.h.
+ 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
+ 	new_sets parameter and use it to keep track of new user-created sets.
+ 	(function_info::apply_changes_to_insn): Also call add_def on new sets.
+ 	(function_info::change_insns): Add hash_set to keep track of new
+ 	user-created defs.  Plumb it through.
+ 	* rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
+ 	apply_changes_to_insn.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113070
+ 	* rtl-ssa/accesses.cc (function_info::create_use): New.
+ 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses):
+ 	Ensure new uses end up referring to permanent defs.
+ 	* rtl-ssa/functions.h (function_info::create_use): Declare.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113070
+ 	* rtl-ssa/changes.cc (function_info::change_insns): Split out the call
+ 	to finalize_new_accesses from the backwards placement loop, run it
+ 	forwards in a separate loop.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113552
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
+ 	floor_log2 instead of exact_log2 on the number of calls.
+ 
+ 2024-01-23  Jeff Law  <jlaw@ventanamicro.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
+ 	decl.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Separate single and multi-exit case when creating PHIs between
+ 	the main and epilogue.
+ 
+ 2024-01-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112989
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
+ 	MODE_single variants of functions that don't take tuple arguments.
+ 
+ 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113114
+ 	* config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
+ 	Don't assert recog success, just punt if the writeback pair
+ 	isn't recognized.
+ 
+ 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
+ 	ATTRIBUTE_UNUSED to decl.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/107058
+ 	* dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
+ 	handle unexpected but bogus DIE contexts when not checking
+ 	enabled.
+ 
+ 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113462
+ 	* fold-const.cc (native_interpret_int): Don't punt if total_bytes
+ 	is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
+ 	(fold_view_convert_expr): Use XALLOCAVEC buffers for types with
+ 	sizes between 129 and 8192 bytes.
+ 
+ 2024-01-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ 	If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
+ 	for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
+ 	(loongarch_call_tls_get_addr): Do not split symbols of
+ 	SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
+ 	EXPLICIT_RELOCS_AUTO.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* alias.cc (known_base_value_p): Remove.
+ 	(find_base_value): Remove PLUS/MINUS handling
+ 	when both operands are not CONST_INT_P.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/113255
+ 	* alias.cc (find_base_term): Remove PLUS/MINUS handling
+ 	when both operands are not CONST_INT_P.
+ 
+ 2024-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/112718
+ 	* dwarf2out.cc (dwarf2out_finish): Reset all type units
+ 	for the fat part of an LTO compile.
+ 
+ 2024-01-23  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* doc/sourcebuild.texi: Add attributes for keywords.
+ 
+ 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c++/90463
+ 	* doc/invoke.texi (Warning Options): Correct lists of options
+ 	enabled by -Wall and -Wextra by checking against common.opt
+ 	and c-family/c.opt.
+ 
+ 2024-01-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113030
+ 	* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
+ 	instead of cpu_optaliases.
+ 	(check_arch): Use arch_opt_alias instead of arch_optaliases.
+ 
+ 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
+ 	* config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
+ 	* config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
+ 
+ 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109092
+ 	* config/riscv/riscv.md: Use reg instead of subreg.
+ 
+ 2024-01-22  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR other/111966
+ 	* config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
+ 	to match the compiler default.
+ 	(simple_object_copy_lto_debug_sections): Never unlink the outfile
+ 	on error as the caller does so.
+ 	(maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
+ 	(main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
+ 
+ 2024-01-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113373
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Create LC PHIs in the exit blocks where necessary.
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Do not try
+ 	to handle missing LC PHIs.
+ 	(find_connected_edge): Remove.
+ 	(vect_create_epilog_for_reduction): Cleanup use of auto_vec.
+ 
+ 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
+ 
+ 2024-01-22  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/113420
+ 	* config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
+ 	(registered_function::overloaded_hash):refactor.
+ 	(resolve_overloaded_builtin):avoid internal ICE.
+ 
+ 2024-01-21  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/82420
+ 	PR target/111279
+ 	* calls.cc (emit_library_call_value_1): Pass valid TYPE
+ 	to emit_push_insn.
+ 	* expr.cc (emit_push_insn): Likewise.
+ 
+ 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Install
+ 	correcction version of last change.
+ 
+ 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
+ 	fix bugs in signature.
+ 
+ 2024-01-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/111267
+ 	* fwprop.cc (fwprop_propagation::profitabe_p): Rename
+ 	profitable_p method to likely_profitable_p.
+ 	(try_fwprop_subst_node): Update call to likely_profitable_p.
+ 	Only bail-out early when !prop.likely_profitable_p for instructions
+ 	that are not single sets.  When comparing costs, bail-out if the
+ 	cost is unchanged and !prop.likely_profitable_p.
+ 
+ 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c++/90464
+ 	* doc/invoke.texi (Warning Options): Document that -Wunused-parameter
+ 	isn't enabled by -Wunused unless -Wextra is provided, and that
+ 	-Wunused does enable -Wunused-const-variable=1 for C.  Clarify that
+ 	-Wunused doesn't enable -Wunused-* options documented as behaving
+ 	otherwise, and list them explicitly.
+ 
+ 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c/109708
+ 	* doc/invoke.texi (Warning Options): Fix broken example and
+ 	clean up/reorganize the others.  Also describe what the short-form
+ 	options mean.
+ 
+ 2024-01-20  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c/102998
+ 	* doc/invoke.texi (Option Summary): Add -Warray-parameter.
+ 	(Warning Options): Correct/edit discussion of -Warray-parameter
+ 	to make the first example less confusing, and fill in missing info.
+ 
+ 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113462
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
+ 	Handle rhs1 INTEGER_CST like SSA_NAME.
+ 
+ 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113491
+ 	* tree-switch-conversion.cc (switch_conversion::build_constructors):
+ 	If elt.index has precision higher than sizetype, fold_convert it to
+ 	sizetype.
+ 	(switch_conversion::array_value_type): Return type if type is
+ 	BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
+ 	(switch_conversion::build_arrays): Use unsigned_type_for rather than
+ 	lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
+ 	above MAX_FIXED_MODE_SIZE or with BLKmode.  If utype has precision
+ 	higher than sizetype, use sizetype as tidx type and fold_convert the
+ 	subtraction to sizetype.
+ 
+ 2024-01-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
+ 	(riscv_vector_mode_supported_any_target_p): Ditto.
+ 
+ 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/110934
+ 	* config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
+ 	(TARGET_ZERO_CALL_USED_REGS): Define.
+ 
+ 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/108640
+ 	* config/m68k/m68k.cc (output_andsi3): Use QImode for
+ 	address adjusted for 1-byte RMW access.
+ 	(output_iorsi3): Likewise.
+ 	(output_xorsi3): Likewise.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/invoke.texi (RISC-V Options): Add list of supported
+ 	extensions.
+ 
+ 2024-01-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113495
+ 	* config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
+ 	(RVV_VUNDEF): Ditto.
+ 	* config/riscv/riscv-vsetvl.cc: Add timevar.
+ 
+ 2024-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/113488
+ 	* lto-streamer-in.cc (lto_read_tree_1): When there isn't
+ 	an early DIE but there should be, do not pretend there is.
+ 
+ 2024-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113494
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Handle endless loop on exit.  Handle re-allocated PHI.
+ 
+ 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113464
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
+ 	optimize loads into GIMPLE_ASM stmts.
+ 
+ 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113463
+ 	* gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
+ 	Only look through NOP_EXPRs if rhs1 doesn't have wider type than
+ 	lhs.
+ 
+ 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113459
+ 	* tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
+ 	TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
+ 	of SCALAR_INT_TYPE_MODE if type has BLKmode.
+ 	(vn_reference_lookup_3): Likewise.  Formatting fix.
+ 
+ 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	* cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
+ 	VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
+ 	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
+ 	but adjust_address also for BLKmode mode and MEM op0.
+ 
+ 2024-01-19  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
+ 	extensions.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/invoke.texi (RISC-V Options): Document the syntax of -march.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse_std_ext): Remove.
+ 	(riscv_subset_list::parse_multiletter_ext): Remove.
+ 	* config/riscv/riscv-subset.h
+ 	(riscv_subset_list::parse_std_ext): Remove.
+ 	(riscv_subset_list::parse_multiletter_ext): Remove.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse_single_std_ext): New parameter.
+ 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ 	(riscv_subset_list::parse_single_ext): Ditto.
+ 	(riscv_subset_list::parse): Relax the order for the input of ISA
+ 	string.
+ 	* config/riscv/riscv-subset.h
+ 	(riscv_subset_list::parse_single_std_ext): New parameter.
+ 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ 	(riscv_subset_list::parse_single_ext): Ditto.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse_base_ext): New.
+ 	(riscv_subset_list::parse): Extract part of logic into
+ 	riscv_subset_list::parse_base_ext.
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
+ 	New.
+ 
+ 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_override_options_internal): Tweak
+ 	sorry message.
+ 
+ 2024-01-19  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
+ 	UNSPEC_CLMUL_VC.
+ 
+ 2024-01-19  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c/110029
+ 	* doc/extend.texi (Common Variable Attributes): Explain what
+ 	happens when multiple variables with cleanups are in the same scope.
+ 
+ 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR ipa/108470
+ 	* doc/extend.texi (Common Function Attributes): Document that
+ 	noinline also disables some interprocedural optimizations and
+ 	improve flow to the part about using inline asm instead to
+ 	disable calls from being optimized away completely.  Remove the
+ 	sentence that says noipa is mainly for internal compiler testing.
+ 
+ 2024-01-18  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR tree-optimization/69807
+ 	* config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
+ 
+ 2024-01-18  Brian Inglis  <Brian.Inglis@Shaw.ca>
+ 
+ 	PR target/108521
+ 	* doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
+ 	from x86 Windows Options.
+ 
+ 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c/107942
+ 	* doc/extend.texi (C Extensions): Add new section to menu.
+ 	(Function Attributes):  Move dangling index entries to....
+ 	(Const and Volatile Functions): New section.
+ 
+ 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/112684
+ 	* toplev.cc (toplev::main): Don't ICE in
+ 	-fdiagnostics-generate-patch when exiting after options,
+ 	since no edit context will have been created.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
+ 	operands vector.
+ 
+ 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
+ 	when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.cc
+ 	(th_asm_output_opcode): Rewrite some instructions.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.md (none,thv,rvv): New attribute.
+ 	(no,yes): Add an attribute to disable alternative
+ 	for xtheadvector or RVV1.0.
+ 	* config/riscv/vector.md:
+ 	Disable alternatives that destination register overlaps
+ 	source register group for xtheadvector.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class th_loadstore_width): Define new builtin bases.
+ 	(class th_extract): Define new builtin bases.
+ 	(BASE): Define new builtin bases.
+ 	* config/riscv/riscv-vector-builtins-bases.h:
+ 	Define new builtin class.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct th_loadstore_width_def): Define new builtin shapes.
+ 	(struct th_indexed_loadstore_width_def):
+ 	Define new builtin shapes.
+ 	(struct th_extract_def): Define new builtin shapes.
+ 	(SHAPE): Define new builtin shapes.
+ 	* config/riscv/riscv-vector-builtins-shapes.h:
+ 	Define new builtin shapes.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
+ 	Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(enum required_ext): Add new XTheadVector member.
+ 	(struct function_group_info): Likewise.
+ 	* config/riscv/t-riscv:
+ 	Add thead-vector-builtins-functions.def
+ 	* config/riscv/thead-vector.md
+ 	(@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
+ 	(*pred_mov_width<vlmem_op_attr><mode>): Likewise.
+ 	(@pred_store_width<vlmem_op_attr><mode>): Likewise.
+ 	(@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
+ 	(@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
+ 	(@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
+ 	(@pred_th_extract<mode>): Likewise.
+ 	(*pred_th_extract<mode>): Likewise.
+ 	* config/riscv/thead-vector-builtins-functions.def: New file.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config.gcc:  Add files for XTheadVector intrinsics.
+ 	* config/riscv/autovec.md: Guard XTheadVector.
+ 	* config/riscv/predicates.md: Disable immediate vl
+ 	for XTheadVector.
+ 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
+ 	Add pragma for XTheadVector.
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move):
+ 	Guard XTheadVector.
+ 	* config/riscv/riscv-v.cc (vls_mode_valid_p):
+ 	Avoid autovec.
+ 	* config/riscv/riscv-vector-builtins-bases.cc:
+ 	Do not normalize vsetvl instructions for XTheadVector.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (check_type):
+ 	New check type function.
+ 	(build_one): Adjust for XTheadVector.
+ 	* config/riscv/riscv-vector-switch.def (ENTRY):
+ 	Disable fractional mode for the XTheadVector extension.
+ 	(TUPLE_ENTRY): Likewise.
+ 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize):
+ 	Guard XTheadVector.
+ 	(riscv_preferred_simd_mode): Likewsie.
+ 	(riscv_autovectorize_vector_modes): Likewise.
+ 	(riscv_vector_mode_supported_any_target_p): Likewise.
+ 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
+ 	* config/riscv/thead.cc (th_asm_output_opcode):
+ 	Rewrite vsetvl instructions.
+ 	* config/riscv/vector.md:
+ 	Include thead-vector.md and change fractional LMUL
+ 	into 1 for vbool.
+ 	* config/riscv/riscv_th_vector.h: New file.
+ 	* config/riscv/thead-vector.md: New file.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_asm_output_opcode):
+ 	Add new function to add assembler insn code prefix/suffix.
+ 	(th_asm_output_opcode):
+ 	Add Thead function to add assembler insn code prefix/suffix.
+ 	* config/riscv/riscv.cc (riscv_asm_output_opcode):
+ 	Implement function to add assembler insn code prefix/suffix.
+ 	* config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
+ 	Add new function to add assembler insn code prefix/suffix.
+ 	* config/riscv/thead.cc (th_asm_output_opcode):
+ 	Implement Thead function to add assembler insn code
+ 	prefix/suffix.
+ 
+ 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse): Add new vendor extension.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
+ 	Add test marco.
+ 	* config/riscv/riscv.opt:  Add new mask.
+ 
+ 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
+ 	to be conditional on macosx-version-min.
+ 
+ 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_objc1_section): Use the correct
+ 	meta-data version for constant strings.
+ 	(machopic_select_section): Assert if we fail to handle CFString
+ 	sections as Obejctive-C meta-data or drectly.
+ 
+ 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
+ 	OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
+ 	OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
+ 	versions when the object format is Mach-O.
+ 
+ 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/105522
+ 	* config/darwin.cc (machopic_select_section): Handle C and C++
+ 	CFStrings.
+ 	(darwin_rename_builtins): Move this out of the CFString code.
+ 	(darwin_libc_has_function): Likewise.
+ 	(darwin_build_constant_cfstring): Create an anonymous var to
+ 	hold each CFString.
+ 	* config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
+ 	CFstrings.
+ 
+ 2024-01-18  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
+ 
+ 	PR bootstrap/113445
+ 	* haifa-sched.cc (dep_list_size): Make global.
+ 	* sched-deps.cc (find_inc): Use instead of sd_lists_size().
+ 	* sched-int.h (dep_list_size): Declare.
+ 
+ 2024-01-18  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/110422
+ 	* tree-sra.cc (scan_function): Disqualify bases of operands of asm
+ 	gotos.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113475
+ 	* gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
+ 	* gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
+ 	(phi_analyzer::~phi_analyzer): Deallocate and free collected
+ 	phi_grous.
+ 	(phi_analyzer::process_phi): Record allocated phi_groups.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Do not allocate
+ 	storage for gvec_oprnds elements.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
+ 	prefer all later exits we can handle.
+ 	(vect_analyze_loop_form): Free the allocated loop body.
+ 	Adjust comments.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-log.cc: Tabify.
+ 
+ 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Support vi variant.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-devices.cc: Tabify.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-c.cc: Tabify.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/driver-avr.cc: Tabify.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-texi.cc: Tabify.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc: Tabify.
+ 
+ 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
+ 	minline-strcmp, minline-strncmp, minline-strlen,
+ 	-param=riscv-vector-abi): Remove Bool keywords.
+ 
+ 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/113122
+ 	* config/i386/i386.cc (x86_function_profiler): Add -masm=intel
+ 	support.  Add missing space after , in emitted assembly in some
+ 	cases.  Formatting fixes.
+ 
+ 2024-01-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (movsi_internal): Remove
+ 	constraint z.
+ 
+ 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
+ 	in the diagnostic, and capitalize the device name.
+ 	(print_mcu): Generate specs such that:
+ 	<*check_rodata_in_ram>: New.
+ 	<*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
+ 	<*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
+ 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
+ 
+ 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/113399
+ 	* common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
+ 	Common and Optimization.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113431
+ 	* tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
+ 	When there is an invariant load we might not preserve
+ 	scalar order.
+ 
+ 2024-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113374
+ 	* tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
+ 	* tree-vect-loop.cc (move_early_exit_stmts): Update
+ 	virtual LC PHIs.
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Refactor.  Preserve virtual LC PHIs on all exits.
+ 
+ 2024-01-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_split_symbol):
+ 	Assign the '/u' attribute to the mem.
+ 
+ 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR middle-end/110847
+ 	* doc/invoke.texi (Option Summary): Document negative forms of
+ 	-Wtsan and -Wxor-used-as-pow.
+ 	(Warning Options): Likewise.
+ 
+ 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113429
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
+ 
+ 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes): Re-alphabetize
+ 	the table.
+ 	(Common Variable Attributes): Likewise.
+ 	(Common Type Attributes): Likewise.
+ 
+ 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR middle-end/111659
+ 	* doc/extend.texi (Common Variable Attributes): Fix long lines
+ 	in documentation of strict_flex_array + other minor copy-editing.
+ 	Add a cross-reference to -Wstrict-flex-arrays.
+ 	* doc/invoke.texi (Option Summary): Fix whitespace in tables
+ 	before -fstrict-flex-arrays and -Wstrict-flex-arrays.
+ 	(C Dialect Options): Combine the docs for the two
+ 	-fstrict-flex-arrays forms into a single entry.  Note this option
+ 	is for C/C++ only.  Add a cross-reference to -Wstrict-flex-arrays.
+ 	(Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
+ 	Minor copy-editing.  Add cross references to the strict_flex_array
+ 	attribute and -fstrict-flex-arrays option.  Add note that this
+ 	option depends on -ftree-vrp.
+ 
+ 2024-01-17  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113221
+ 	* config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
+ 	only allow REG operands instead of allowing all.
+ 
+ 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
+ 	Remove redundant checks in else condition for readablity.
+ 	(earliest_fuse_vsetvl_info) Print iteration count in debug
+ 	prints.
+ 	(earliest_fuse_vsetvl_info) Fix misleading vsetvl info
+ 	dump details in certain cases.
+ 
+ 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.opt: New -param=vsetvl-strategy.
+ 	* config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
+ 	(pass_vsetvl::execute): Use vsetvl_strategy.
+ 
+ 2024-01-17  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
+ 	accidental hack reseting offset.
+ 
+ 2024-01-17  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal): Fix
+ 	handling of X86_TUNE_AVOID_512FMA_CHAINS.
+ 
+ 2024-01-17  Jan Hubicka  <jh@suse.cz>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110852
+ 	* predict.cc (expr_expected_value_1): Fix profile merging of PHI and
+ 	binary operations
+ 	(get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
+ 	PRED_COMBINED_VALUE_PREDICTIONS_PHI
+ 	* predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
+ 	(PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113421
+ 	* gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
+ 	comment.
+ 	(bitint_dom_walker::before_dom_children): Add g temporary to simplify
+ 	formatting.  Start at vop rather than cvop even if stmt is a store
+ 	and needs_operand_addr.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113410
+ 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
+ 	If access_nelts is integral with larger precision than sizetype,
+ 	fold_convert it to sizetype.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113408
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
+ 	VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
+ 	to handle_cast.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113406
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
+ 	regardless of whether is_gimple_reg_type (restype) or not.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
+ 	funcions -> functions, and use were instead of was.
+ 	* gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
+ 	and guaranteee -> guarantee.
+ 	* attribs.h (struct attr_access): Fix comment typo funcion -> function.
+ 
+ 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113409
+ 	* omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
+ 	INTEGER_TYPE.
+ 	(omp_extract_for_data): Use build_bitint_type rather than
+ 	build_nonstandard_integer_type if either iter_type or loop->v type
+ 	is BITINT_TYPE.
+ 	* omp-expand.cc (expand_omp_for_generic,
+ 	expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
+ 	BITINT_TYPE like INTEGER_TYPE.
+ 
+ 2024-01-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113371
+ 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ 	Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
+ 	not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
+ 
+ 2024-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
+ 
+ 	PR rtl-optimization/96388
+ 	PR rtl-optimization/111554
+ 	* sched-deps.cc (find_inc): Avoid exponential behavior.
+ 
+ 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR c/111693
+ 	* doc/invoke.texi (Option Summary): Move -Wuseless-cast
+ 	from C++ Language Options to Warning Options.  Add entry for
+ 	-Wuse-after-free.
+ 	(C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
+ 	from here....
+ 	(Warning Options): ...to here.  Minor copy-editing to fix typo
+ 	and grammar.
+ 
+ 2024-01-17  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc (mips_compute_frame_info): If another
+ 	register is used as global_pointer, mark $GP live false.
+ 
+ 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	PR target/112973
+ 	* doc/extend.texi (BPF Built-in Functions): Wrap long lines and
+ 	give the section a light copy-editing pass.
+ 
+ 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
+ 	* config/aarch64/aarch64-tune.md: Regenerated.
+ 	* doc/invoke.texi (-mcpu): Add cobalt-100 core.
+ 
+ 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/112573
+ 	* config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
+ 	badly formed CONST expressions.
+ 
+ 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+ 
+ 	* config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
+ 
+ 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
+ 
+ 	* config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
+ 	* config/sparc/sync.md (membar_storeload): Turn into named insn
+ 	and add GR712RC errata workaround.
+ 	(membar_v8): Add GR712RC errata workaround.
+ 
+ 2024-01-16  Andreas Larsson  <andreas@gaisler.com>
+ 
+ 	* config/sparc/sync.md (*membar_storeload_leon3): Remove
+ 	(*membar_storeload): Enable for LEON
+ 
+ 2024-01-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113372
+ 	PR middle-end/90348
+ 	PR middle-end/110115
+ 	PR middle-end/111422
+ 	* cfgexpand.cc (add_scope_conflicts_2): New function.
+ 	(add_scope_conflicts_1): Use it.
+ 
+ 2024-01-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
+ 	(avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
+ 	* doc/avr-mmcu.texi: Regenerate.
+ 
+ 2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/113091
+ 	* tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
+ 	(vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
+ 	scalar use with new function.
+ 	(vect_bb_slp_mark_live_stmts): New function as entry to existing
+ 	overriden functions with same name.
+ 	(vect_slp_analyze_operations): Call new entry function to mark
+ 	live statements.
+ 
+ 2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113404
+ 	* config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
+ 	for RVV in big-endian mode.
+ 
+ 2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
+ 	(riscv_pass_in_vector_p): Delete.
+ 	(riscv_init_cumulative_args): Delete the checking.
+ 	(riscv_get_arg_info): Delete the checking.
+ 	(riscv_function_value): Delete the checking.
+ 	* config/riscv/riscv.h: Delete the member for checking.
+ 
+ 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
+ 
+ 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
+ 
+ 	* config.gcc: Include riscv_bitmanip.h.
+ 	* config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
+ 	* config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
+ 	(RISCV_BUILTIN_NO_PREFIX): New helper macro.
+ 	* config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
+ 	* config/riscv/riscv-ftypes.def (2): New ftypes.
+ 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
+ 	(RISCV_BUILTIN_NO_PREFIX): Likewise.
+ 	* config/riscv/riscv_bitmanip.h: New file.
+ 
+ 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
+ 
+ 	* config.gcc: Include riscv_crypto.h.
+ 	* config/riscv/riscv_crypto.h: New file.
+ 
+ 2024-01-15  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR middle-end/113354
+ 	* lra-constraints.cc (curr_insn_transform): Spill pseudo only used
+ 	in the insn if the corresponding operand does not require hard
+ 	register anymore.
+ 
+ 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/107201
+ 	* config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
+ 	* config/avr/driver-avr.cc (avr_no_devlib): New function.
+ 	(avr_devicespecs_file): Use it to remove -nodevicelib from the
+ 	options for cores only.
+ 	* config/avr/avr-arch.h (avr_get_parch): New prototype.
+ 	* config/avr/avr-devices.cc (avr_get_parch): New function.
+ 
+ 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113247
+ 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
+ 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
+ 	* config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
+ 
+ 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113281
+ 	* config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
+ 	(costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
+ 	* config/riscv/riscv-vector-costs.h: New function.
+ 
+ 2024-01-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113385
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	First redirect, then split the exit edge.
+ 
+ 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
+ 	Remove m_num_vector_iterations.
+ 	* config/riscv/riscv-vector-costs.h: Ditto.
+ 
+ 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/113156
+ 	* config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
+ 	(-mbranch-cost): Set "Optimization" flag.
+ 
+ 2024-01-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113370
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
+ 	set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
+ 	set it to just prec % limb_prec.
+ 
+ 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113393
+ 	* config/riscv/vector.md: Fix ternary attributes.
+ 
+ 2024-01-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/112944
+ 	* configure.ac [target=avr]: Check availability of emulations
+ 	avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
+ 	HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
+ 	__AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
+ 	* config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
+ 	* config/avr/avr-arch.h (enum avr_device_specific_features):
+ 	Add AVR_ISA_FLMAP.
+ 	* config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
+ 	AVR_ISA_FLMAP.
+ 	* config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
+ 	(avr_set_core_architecture): Set avr_arch_index.
+ 	(have_avrxmega2_flmap, have_avrxmega4_flmap)
+ 	(have_avrxmega3_rodata_in_flash): Set new static const bool according
+ 	to configure results.
+ 	(avr_rodata_in_flash_p): New function using them.
+ 	(avr_asm_init_sections): Let readonly_data_section->unnamed.callback
+ 	track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
+ 	(avr_asm_named_section): Track avr_has_rodata_p.
+ 	(avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
+ 	and not avr_rodata_in_flash_p ().
+ 	* config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
+ 	(LINK_SPEC): Add %(link_rodata_in_ram).
+ 	(LINK_ARCH_SPEC): Remove.
+ 	* config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
+ 	(have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
+ 	const bool according to configure results.
+ 	(diagnose_mrodata_in_ram): New function.
+ 	(print_mcu): Generate specs with the following changes:
+ 	<*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
+ 	need to extend avr/specs.h each time we add a new bell or whistle.
+ 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
+ 	-m[no-]rodata-in-ram.
+ 	<*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
+ 	<*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
+ 	<*cpp>: Add %(cpp_rodata_in_ram).
+ 	<*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
+ 	requested.
+ 	<*self_spec>: Add -mflmap or %<mflmap as needed.
+ 
+ 2024-01-14  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
+ 	not the GPR iterator.  Adjust pattern name and mode attribute
+ 	accordingly.
+ 
+ 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113361
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
+ 	Fix up determination of the type for > limb_prec constants.
+ 
+ 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
+ 	Add web-link to the avr-gcc wiki.
+ 
+ 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/extend.texi (AVR Variable Attributes) [address]: Remove
+ 	documentation for a version without argument, which is not supported.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
+ 	(vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
+ 	(vld1_f16_x4, vld1_f32_x4): New.
+ 	(vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
+ 	(vld1_bf16_x4): New.
+ 	(vld1q_types_x4): Updated to use vld1q_x4
+ 	from arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x4): Updated entries.
+ 	(vld1q_x4): New entries, but comes from the old vld1_x4
+ 	* config/arm/neon.md
+ 	(neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
+ 	(vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
+ 	(vld1_f16_x3, vld1_f32_x3): New.
+ 	(vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
+ 	(vld1_bf16_x3): New.
+ 	(vld1q_types_x3): Updated to use vld1q_x3 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x3): Updated entries.
+ 	(vld1q_x3): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md
+ 	(neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
+ 	(vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
+ 	(vld1_f16_x2, vld1_f32_x2): New.
+ 	(vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
+ 	(vld1_bf16_x2): New.
+ 	(vld1q_types_x2): Updated to use vld1q_x2 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x2): Updated entries.
+ 	(vld1q_x2): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md
+ 	(neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ 	neon_vld1_x2<mode>.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
+ 	(vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
+ 	(vst1q_f16_x4, vst1q_f32_x4): New.
+ 	(vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
+ 	(vst1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vst1q_x4<mode>): New.
+ 	(neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
+ 	* config/arm/unspecs.md
+ 	(UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
+ 	(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
+ 	(vst1q_f16_x3, vst1q_f32_x3): New.
+ 	(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
+ 	(vst1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vst1q_x3<mode>): New.
+ 	(neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
+ 	* config/arm/unspecs.md
+ 	(UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
+ 	(vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
+ 	(vst1q_f16_x2, vst1q_f32_x2): New.
+ 	(vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
+ 	(vst1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ 	neon_vst1_x2<mode>.
+ 	* config/arm/iterators.md
+ 	(VMEMX2): New mode iterator.
+ 	(VMEMX2_q): New mode attribute.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
+ 	(vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
+ 	(vst1_f16_x4, vst1_f32_x4): New.
+ 	(vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
+ 	(vst1_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x4): New entries.
+ 	* config/arm/neon.md (vst1_x4<mode>): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
+ 	(vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
+ 	(vst1_f16_x3, vst1_f32_x3): New.
+ 	(vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
+ 	(vst1_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x3): New entries.
+ 	* config/arm/neon.md (vst1_x3<mode>): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
+ 	(vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
+ 	(vst1_f16_x2, vst1_f32_x2): New.
+ 	(vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
+ 	(vst1_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x2): New entries.
+ 	* config/arm/neon.md (vst1_x2<mode>): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
+ 	(vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
+ 	(vld1q_f16_x4, vld1q_f32_x4): New.
+ 	(vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
+ 	(vld1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x4): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vld1_x4<mode>): New.
+ 	(neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
+ 	* config/arm/unspecs.md
+ 	(UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
+ 	(vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
+ 	(vld1q_f16_x3, vld1q_f32_x3): New.
+ 	(vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
+ 	(vld1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x3): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vld1_x3<mode>): New.
+ 	(neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
+ 	* config/arm/unspecs.md
+ 	(UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
+ 
+ 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
+ 	(vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
+ 	(vld1q_f16_x2, vld1q_f32_x2): New.
+ 	(vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
+ 	(vld1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x2): New entries.
+ 	* config/arm/neon.md (vld1_x2<mode>): New.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113287
+ 	* doc/sourcebuild.texi (check_effective_target_bitint65535): New.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
+ 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113178
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
+ 	alternate exits.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113237
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
+ 	existing LCSSA variable for exit when all exits are early break.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113137
+ 	PR tree-optimization/113136
+ 	PR tree-optimization/113172
+ 	PR tree-optimization/113178
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Maintain PHIs on inverted loops.
+ 	(vect_do_peeling): Maintain virtual PHIs on inverted loops.
+ 	* tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
+ 	latch.
+ 	(vect_create_loop_vinfo): Record all conds instead of only alt ones.
+ 
+ 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113135
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
+ 	dependency analysis.
+ 
+ 2024-01-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/host-darwin.cc (segv_handler): Use the revised
+ 	diagnostics class member name for abort of error.
+ 
+ 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
+ 	format string to %s argument.
+ 
+ 2024-01-12  John David Anglin  <danglin@gcc.gnu.org>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/113182
+ 	* varasm.cc (process_pending_assemble_externals,
+ 	assemble_external_libcall): Use targetm.strip_name_encoding
+ 	before calling get_identifier.
+ 
+ 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113196
+ 	* config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
+ 	New member variable.
+ 	* config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
+ 	Declare.
+ 	* config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
+ 	* config/aarch64/aarch64-simd.md
+ 	(vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
+ 	(vec_unpack<su>_hi_<mode>): ...this.  Move the generation of
+ 	zip2 for zero-extends to...
+ 	(aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
+ 	instruction.  Fix big-endian handling.
+ 	(vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
+ 	(vec_unpack<su>_lo_<mode>): ...this.  Move the generation of
+ 	zip1 for zero-extends to...
+ 	(<optab><Vnarrowq><mode>2): ...a split of this instruction.
+ 	Fix big-endian handling.
+ 	(*aarch64_zip1_uxtl): New pattern.
+ 	(aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
+ 	(aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
+ 	(aarch64_gen_shareable_zero): Use it.
+ 	(aarch64_split_simd_shift_p): New function.
+ 
+ 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
+ 	(function_beg_insn): New macro.
+ 	* function.cc (expand_function_start): Initialize function_beg_insn.
+ 
+ 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112989
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_builder::m_overload_names): Replace with...
+ 	* config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
+ 	new global.
+ 	(add_overloaded_function): Update accordingly, using get_identifier
+ 	to get a GGC-friendly record of the name.
+ 
+ 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112989
+ 	* config/aarch64/aarch64-sve-builtins.def: Don't include
+ 	aarch64-sve-builtins-sme.def.
+ 	(DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: ...here.
+ 	(DEF_SME_FUNCTION): New macro.  Use it and DEF_SME_FUNCTION_GS
+ 	instead of DEF_SVE_*.  Add AARCH64_FL_SME to anything that
+ 	requires AARCH64_FL_SME2.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Make same
+ 	AARCH64_FL_SME adjustment here.
+ 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
+ 	include SME intrinsics.
+ 	(sme_function_groups): New array.
+ 	(handle_arm_sve_h): Remove check for AARCH64_FL_SME.
+ 	(handle_arm_sme_h): Use sme_function_groups instead of function_groups.
+ 
+ 2024-01-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113281
+ 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
+ 	(struct cpu_vector_cost): Add regmove struct.
+ 	(get_vector_costs): Export as global.
+ 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
+ 	(costs::add_stmt_cost): Ditto.
+ 	* config/riscv/riscv.cc (get_common_costs): Export global function.
+ 
+ 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113334
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
+ 	wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
+ 	to determine if number should be extended by all ones rather than zero
+ 	extended.
+ 
+ 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113330
+ 	* tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
+ 	too large size.
+ 
+ 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113323
+ 	* gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
+ 	check for lhs being large/huge _BitInt not in m_names.
+ 
+ 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113316
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
+ 	uninitialized large/huge _BitInt arguments to calls.
+ 
+ 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (mergeable_op): Instead of comparing
+ 	TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
+ 	CEIL (TYPE_PRECISION (t), limb_prec).
+ 	(bitint_large_huge::handle_cast): Likewise.
+ 
+ 2024-01-12  Ilya Leoshkevich  <iii@linux.ibm.com>
+ 
+ 	PR sanitizer/113284
+ 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
+ 	Use assemble_function_label_final () for Power ELF V1 ABI.
+ 	* output.h (assemble_function_label_final): New function.
+ 	* varasm.cc (assemble_function_label_raw): Use
+ 	assemble_function_label_final ().
+ 	(assemble_function_label_final): New function.
+ 
+ 2024-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/113344
+ 	* match.pd ((double)float CMP (double)float -> float CMP float):
+ 	Perform result type check only for vectors.
+ 	* fold-const.cc (fold_binary_loc): Likewise.
+ 
+ 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
+ 	(usdot_prod<mode>): Ditto.
+ 	(sdot_prod<mode>): Ditto.
+ 	(udot_prod<mode>): Ditto.
+ 
+ 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/113288
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
+ 
+ 2024-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/112280
+ 	* config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
+ 	Do not generate code when d.testing_p.
+ 
+ 2024-01-12  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/113039
+ 	* doc/invoke.texi (fcf-protection=): Update documents.
+ 
+ 2024-01-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
+ 	comments of predicate func riscv_v_ext_mode_p.
+ 
+ 2024-01-12  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
+ 			Modify ABI-name length of vfloat16m8_t
+ 
+ 2024-01-12  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
+ 	Adjust.
+ 
+ 2024-01-12  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (add<mode>3): Removed.
+ 	(*addsi3): New.
+ 	(addsi3): Ditto.
+ 	(adddi3): Ditto.
+ 	(*addsi3_extended): Removed.
+ 	(addsi3_extended): New.
+ 
+ 2024-01-11  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/thead.md: Add limits for splits.
+ 
+ 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/113322
+ 	* expr.cc (do_store_flag): Don't try single bit tests with
+ 	comparison on vector types.
+ 
+ 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/113301
+ 	* match.pd (`1/x`): Delay signed case until late.
+ 
+ 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
+ 	and -msp8 to...
+ 	(AVR Internal Options): ...this new @subsubsection.
+ 
+ 2024-01-11  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112918
+ 	* lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
+ 	(in_class_p): Restrict condition for narrowing class in case of
+ 	allow_all_reload_class_changes_p.
+ 	(process_alt_operands): Try to match operand without and with
+ 	narrowing reg class.  Discourage narrowing the class.  Finish insn
+ 	matching only if there is no class narrowing.
+ 	(curr_insn_transform): Pass true to in_class_p for reg operand win.
+ 
+ 2024-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112505
+ 	* tree-vect-loop.cc (vectorizable_induction): Reject
+ 	bit-precision induction.
+ 
+ 2024-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113126
+ 	* match.pd ((double)float CMP (double)float -> float CMP float):
+ 	Make sure the boolean type is the same.
+ 	* fold-const.cc (fold_binary_loc): Likewise.
+ 
+ 2024-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112636
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
+ 	estimate_numbers_of_iterations before querying
+ 	get_max_loop_iterations_int.
+ 	(pass_ch::execute): Initialize SCEV and loops appropriately.
+ 
+ 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
+ 	Reduced Tiny.
+ 	* config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
+ 	* doc/extend.texi (AVR Variable Attributes): Improve documentation
+ 	of io, io_low and address attributes.
+ 	* doc/invoke.texi (AVR Options): Add some anchors for external refs.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2024-01-11  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	PR target/113233
+ 	* config/loongarch/genopts/loongarch.opt.in: Mark options with
+ 	the "Save" property.
+ 	* config/loongarch/loongarch.opt: Same.
+ 	* config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
+ 	according to la_target.
+ 	* config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
+ 	RESTORE} for the la_target structure; Rename option conditions
+ 	to have the same "la_" prefix.
+ 	* config/loongarch/loongarch.h: Same.
+ 
+ 2024-01-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* loop-unroll.cc (insert_var_expansion_initialization): Leverage
+ 	MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
+ 
+ 2024-01-11  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113077
+ 	* config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
+ 	fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
+ 	(combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
+ 	synthesize these if needed.  Update caller ...
+ 	(ldp_bb_info::fuse_pair): ... here.
+ 	(ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
+ 	and either insn is frame-related.
+ 	(find_trailing_add): Punt on frame-related insns.
+ 	* config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
+ 	REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
+ 
+ 2024-01-11  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc (mips_start_function_definition):
+ 	Add ATTRIBUTE_UNUSED.
+ 
+ 2024-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112740
+ 	* expr.cc (store_constructor): Check the integer vector
+ 	mask has a single bit per element before using sign-extension
+ 	to expand an uniform vector.
+ 
+ 2024-01-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
+ 	preempt VLS on unknown NITERS loop.
+ 
+ 2024-01-11  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* doc/invoke.texi: Add -mevex512.
+ 
+ 2024-01-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
+ 	(*nor<mode>3): Likewise.
+ 	(nor<mode>3): Likewise.
+ 	(*negsi2_extended): New template.
+ 	(*<optab>si3_internal): Likewise.
+ 	(*one_cmplsi2_internal): Likewise.
+ 	(*norsi3_internal): Likewise.
+ 	(*<optab>nsi_internal): Likewise.
+ 	(bytepick_w_<bytepick_imm>_extend): Modify this template according to the
+ 	modified bit operation to make the optimization work.
+ 
+ 2024-01-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/104401
+ 	* match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
+ 
+ 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
+ 	(get_vector_costs): Ditto.
+ 	(riscv_builtin_vectorization_cost): Ditto.
+ 
+ 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
+ 
+ 2024-01-10  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR jit/111396
+ 	* ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
+ 	ipa_free_size_summary.
+ 	* ipa-icf.cc (ipa_icf_cc_finalize): New function.
+ 	* ipa-profile.cc (ipa_profile_cc_finalize): New function.
+ 	* ipa-prop.cc (ipa_prop_cc_finalize): New function.
+ 	* ipa-prop.h (ipa_prop_cc_finalize): New function.
+ 	* ipa-sra.cc (ipa_sra_cc_finalize): New function.
+ 	* ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
+ 	ipa_sra_cc_finalize): New functions.
+ 	* toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
+ 	ipa_prop_cc_finalize, ipa_profile_cc_finalize and
+ 	ipa_sra_cc_finalize
+ 	Include ipa-utils.h.
+ 
+ 2024-01-10  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
+ 	(th_int_get_save_adjustment): Likewise.
+ 	(th_int_adjust_cfi_prologue): Likewise.
+ 	* config/riscv/riscv.cc (BITSET_P): Moved away from here.
+ 	(TH_INT_INTERRUPT): New macro.
+ 	(riscv_expand_prologue): Add the processing of XTheadInt.
+ 	(riscv_expand_epilogue): Likewise.
+ 	* config/riscv/riscv.h (BITSET_P): Moved to here.
+ 	* config/riscv/riscv.md: New unspec.
+ 	* config/riscv/thead.cc (th_int_get_mask): New function.
+ 	(th_int_get_save_adjustment): Likewise.
+ 	(th_int_adjust_cfi_prologue): Likewise.
+ 	* config/riscv/thead.md (th_int_push): New pattern.
+ 	(th_int_pop): new pattern.
+ 
+ 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/112468
+ 	* doc/sourcebuild.texi: Document ifn_copysign.
+ 	* match.pd: Only apply transformation if target supports the IFN.
+ 
+ 2024-01-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/112581
+ 	* gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
+ 	mark_ssa_maybe_undefs.
+ 	* tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
+ 	variables can not be reassociated.
+ 	(init_range_entry): Check for uninitialized variables too.
+ 	(init_reassoc): Call mark_ssa_maybe_undefs.
+ 
+ 2024-01-10  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
+ 	Also handle sign extension.
+ 
+ 2024-01-10  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
+ 	to 0.
+ 	(-mlate-ldp-fusion): Likewise.
+ 
+ 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113287
+ 	* tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
+ 	instead of using BRANCH_EDGE to determine true edge.
+ 
+ 2024-01-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113078
+ 	* tree-vect-loop.cc (check_reduction_path): Canonicalize
+ 	.COND_SUB to .COND_ADD.
+ 
+ 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
+ 	Handle prefix mappings before calling find_opt.
+ 	(selftest::gcc_urlifier_cc_tests): Add example of urlifying a
+ 	"-fno-"-prefixed command-line option.
+ 	* opts-common.cc (get_option_prefix_remapping): New.
+ 	* opts.h (get_option_prefix_remapping): New decl.
+ 
+ 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::report_diagnostic): Pass
+ 	m_urlifier to pp_output_formatted_text.
+ 	* pretty-print.cc: Add #define of INCLUDE_VECTOR.
+ 	(obstack_append_string): New overload, taking a length.
+ 	(urlify_quoted_string): Pass in an obstack ptr, rather than using
+ 	that of the pp's buffer.  Generalize to handle trailing text in
+ 	the buffer beyond the run of quoted text.
+ 	(class quoting_info): New.
+ 	(on_begin_quote): New.
+ 	(on_end_quote): New.
+ 	(pp_format): Refactor phase 1 and phase 2 quoting support, moving
+ 	it to calls to on_begin_quote and on_end_quote.
+ 	(struct auto_obstack): New.
+ 	(quoting_info::handle_phase_3): New.
+ 	(pp_output_formatted_text): Add urlifier param.  Use it if there
+ 	is deferred urlification.  Delete m_quotes.
+ 	(selftest::pp_printf_with_urlifier): Pass urlifier to
+ 	pp_output_formatted_text.
+ 	(selftest::test_urlification): Update results for the existing
+ 	case of quoted text stradding chunks; add more such test cases.
+ 	* pretty-print.h (class quoting_info): New forward decl.
+ 	(chunk_info::m_quotes): New field.
+ 	(pp_output_formatted_text): Add optional urlifier param.
+ 
+ 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print.cc (selftest::test_pp_format): Add selftest
+ 	coverage for numbered args.
+ 
+ 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113144
+ 	PR tree-optimization/113145
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Update all BB that the original exits dominated.
+ 
+ 2024-01-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* dwarf2out.cc (modified_type_die): Extend the support of reverse
+ 	storage order to enumeration types if -gstrict-dwarf is not passed.
+ 	(gen_enumeration_type_die): Add REVERSE parameter and generate the
+ 	DIE immediately after the existing one if it is true.
+ 	(gen_tagged_type_die): Add REVERSE parameter and pass it in the
+ 	call to gen_enumeration_type_die.
+ 	(gen_type_die_with_usage): Add REVERSE parameter and pass it in the
+ 	first recursive call as well as the call to gen_tagged_type_die.
+ 	(gen_type_die): Add REVERSE parameter and pass it in the call to
+ 	gen_type_die_with_usage.
+ 
+ 2024-01-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113120
+ 	* tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
+ 	with root->size TYPE_PRECISION don't build anything new.
+ 	Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
+ 	rather than build_nonstandard_integer_type.
+ 
+ 2024-01-10  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.opt: Adjust document.
+ 	* doc/invoke.texi: Add description for
+ 	-mapx-inline-asm-use-gpr32.
+ 
+ 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
+ 	(avg<v_double_trunc>3_floor): New pattern.
+ 	(<u>avg<v_double_trunc>3_ceil): Remove.
+ 	(avg<v_double_trunc>3_ceil): New pattern.
+ 	(uavg<mode>3_floor): Ditto.
+ 	(uavg<mode>3_ceil): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
+ 	(enum insn_type): Ditto.
+ 	* config/riscv/riscv-v.cc: Ditto.
+ 	* config/riscv/vector-iterators.md (ashiftrt): Remove.
+ 	(ASHIFTRT): Ditto.
+ 	* config/riscv/vector.md: Add VLS modes.
+ 
+ 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/111480
+ 	* config/rs6000/vsx.md (VCZLSBB): New int iterator.
+ 	(vczlsbb_char): New int attribute.
+ 	(vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
+ 	(vc<vczlsbb_char>zlsbb_<mode>): ... this.
+ 	(*vctzlsbb_zext_<mode>): Rename to ...
+ 	(*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
+ 	cover vclzlsbb.
+ 
+ 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/112606
+ 	* config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
+ 	of the last argument from altivec_register_operand to any_operand.  If
+ 	operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
+ 	otherwise if it doesn't satisfy altivec_register_operand, force it to
+ 	REG using copy_to_mode_reg.
+ 
+ 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR middle-end/113100
+ 	* builtins.cc (expand_builtin_stack_address): Guard stack point
+ 	adjustment with SPARC_STACK_BOUNDARY_HACK.
+ 
+ 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
+ 	argument string definitions.
+ 	* config/loongarch/loongarch-str.h: Same.
+ 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
+ 	as aliases to -mexplicit-relocs={always,none}
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.cc: Same.
+ 
+ 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-def.h: Define constants with
+ 	enums instead of Macros.
+ 
+ 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/genopts/loongarch-strings: Rename.
+ 	* config/loongarch/genopts/loongarch.opt.in: Same.
+ 	* config/loongarch/loongarch-cpu.cc: Same.
+ 	* config/loongarch/loongarch-def.cc: Same.
+ 	* config/loongarch/loongarch-def.h: Same.
+ 	* config/loongarch/loongarch-opts.cc: Same.
+ 	* config/loongarch/loongarch-opts.h: Same.
+ 	* config/loongarch/loongarch-str.h: Same.
+ 	* config/loongarch/loongarch.opt: Same.
+ 
+ 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
+ 	variable with the common la_ prefix.
+ 	* config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
+ 	flags as saved using TargetVariable.
+ 	* config/loongarch/loongarch.opt: Same.
+ 	* config/loongarch/loongarch-def.h: Define evolution_set to
+ 	mark changes to the -march default.
+ 	* config/loongarch/loongarch-driver.cc: Same.
+ 	* config/loongarch/loongarch-opts.cc: Same.
+ 	* config/loongarch/loongarch-opts.h: Define and use ISA evolution
+ 	conditions around the la_target structure.
+ 	* config/loongarch/loongarch.cc: Same.
+ 	* config/loongarch/loongarch.md: Same.
+ 	* config/loongarch/loongarch-builtins.cc: Same.
+ 	* config/loongarch/loongarch-c.cc: Same.
+ 	* config/loongarch/lasx.md: Same.
+ 	* config/loongarch/lsx.md: Same.
+ 	* config/loongarch/sync.md: Same.
+ 
+ 2024-01-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
+ 	no less.
+ 
+ 2024-01-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
+ 
+ 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
+ 	restart_loop.
+ 	(vectorizable_live_operation): Likewise.
+ 
+ 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/113199
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1): Use
+ 	BIT_FIELD_REF.
+ 
+ 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/113270
+ 	* config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
+ 	GTY(()) declaration before the definition, drop GTY(()) drom the
+ 	definition.
+ 
+ 2024-01-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113026
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Remove
+ 	redundant and wrong niter bound setting.  Move niter
+ 	bound adjustment down.
+ 
+ 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/113163
+ 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
+ 	Reject non-linear inductions that aren't supported.
+ 
+ 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.cc (arc_shift_alg): New enumerated type for
+ 	left shift implementation strategies.
+ 	(arc_shift_info): Type for each entry of the shift strategy table.
+ 	(arc_shift_context_idx): Return a integer value for each code
+ 	generation context, used as an index
+ 	(arc_ashl_alg): Table indexed by context and shifted bit count.
+ 	(arc_split_ashl): Use the arc_ashl_alg table to select SImode
+ 	left shift implementation.
+ 	(arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
+ 	provide accurate costs, when optimizing for speed or size.
+ 
+ 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
+ 
+ 2024-01-09  Julian Brown  <julian@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
+ 	processed out before gimplification.
+ 	* tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
+ 	* tree.def (OMP_ARRAY_SECTION): New tree code.
+ 
+ 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113210
+ 	* tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
+ 	value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
+ 	INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
+ 	minus 1.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/113140
+ 	* reorg.cc (fill_slots_from_thread): If we are to branch after the
+ 	last instruction of the function, create an end label.
+ 
+ 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	PR target/112992
+ 	* config/i386/i386-expand.cc
+ 	(ix86_convert_const_wide_int_to_broadcast): Allow call to
+ 	ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
+ 	(ix86_broadcast_from_constant): Revert recent change; Return a
+ 	suitable MEMREF independently of mode/target combinations.
+ 	(ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
+ 	to decide whether expansion is possible/preferrable.  Only try
+ 	forcing DImode constants to memory (and trying again) if calling
+ 	ix86_expand_vector_init_duplicate fails with an DImode immediate
+ 	constant.
+ 	(ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
+ 	V4SImode for suitable immediate constants.
+ 	<case E_V4DImode>: Try using V8SImode for suitable constants.
+ 	<case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
+ 	<case E_V2HImode>: Likewise.
+ 	<case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
+ 	<case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
+ 	<label widen>: Handle CONT_INTs via simplify_binary_operation.
+ 	Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
+ 	<case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
+ 	<case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
+ 	(ix86_expand_vector_init): Move try using a broadcast for all_same
+ 	with ix86_expand_vector_init_duplicate before using constant pool.
+ 
+ 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
+ 
+ 	* doc/invoke.texi (Arm Options): Document Cortex-M52 options.
+ 
+ 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
+ 
+ 	* config/arm/arm-cpus.in (cortex-m52): New cpu.
+ 	* config/arm/arm-tables.opt: Regenerate.
+ 	* config/arm/arm-tune.md: Regenerate.
+ 
+ 2024-01-09  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
+ 	(vec_init<mode><lasxhalf>): .. this, and extend to mode.
+ 	(@vec_concatz<mode>): New insn pattern.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
+ 	Handle VALS containing two vectors.
+ 
+ 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
+ 	(vundefined): Ditto.
+ 
+ 2024-01-09  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ 				Add new function_base for crypto vector.
+ 	(class bitmanip): Ditto.
+ 	(class b_reverse):Ditto.
+ 	(class vwsll):   Ditto.
+ 	(class clmul):   Ditto.
+ 	(class vg_nhab):  Ditto.
+ 	(class crypto_vv):Ditto.
+ 	(class crypto_vi):Ditto.
+ 	(class vaeskf2_vsm3c):Ditto.
+ 	(class vsm3me): Ditto.
+ 	(BASE): Add BASE declaration for crypto vector.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ 				Add crypto vector intrinsic definition.
+ 	(vbrev): Ditto.
+ 	(vclz): Ditto.
+ 	(vctz): Ditto.
+ 	(vwsll): Ditto.
+ 	(vandn): Ditto.
+ 	(vbrev8): Ditto.
+ 	(vrev8): Ditto.
+ 	(vrol): Ditto.
+ 	(vror): Ditto.
+ 	(vclmul): Ditto.
+ 	(vclmulh): Ditto.
+ 	(vghsh): Ditto.
+ 	(vgmul): Ditto.
+ 	(vaesef): Ditto.
+ 	(vaesem): Ditto.
+ 	(vaesdf): Ditto.
+ 	(vaesdm): Ditto.
+ 	(vaesz): Ditto.
+ 	(vaeskf1): Ditto.
+ 	(vaeskf2): Ditto.
+ 	(vsha2ms): Ditto.
+ 	(vsha2ch): Ditto.
+ 	(vsha2cl): Ditto.
+ 	(vsm4k): Ditto.
+ 	(vsm4r): Ditto.
+ 	(vsm3me): Ditto.
+ 	(vsm3c): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ 				Add new function_shape for crypto vector.
+ 	(struct crypto_vi_def): Ditto.
+ 	(struct crypto_vv_no_op_type_def): Ditto.
+ 	(SHAPE): Add SHAPE declaration of crypto vector.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data type for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data struct for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
+ 
+ 2024-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
+ 
+ 	PR sanitizer/113251
+ 	* varasm.cc (assemble_function_label_raw): Do not call
+ 	asan_function_start () without the current function.
+ 
+ 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	PR target/113225
+ 	* btfout.cc (btf_collect_datasec): Skip creating BTF info for
+ 	extern and kernel_helper attributed function decls.
+ 
+ 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* btfout.cc (output_btf_strs): Changed.
+ 
+ 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* config/gcn/mkoffload.cc (main): Handle gfx1100
+ 	when setting the default XNACK.
+ 
+ 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
+ 	(ASM_SPEC): Handle gfx1100.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
+ 	(enum gcn_isa): Add ISA_RDNA3.
+ 	(TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
+ 	* config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ 	* config/gcn/gcn.cc (gcn_option_override,
+ 	gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
+ 	(gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
+ 	TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ 	(gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
+ 	with gfx1100.
+ 	* config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
+ 	(TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
+ 	__gfx1100__.
+ 	* config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ 	* config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
+ 	(isa_has_combined_avgprs, main): Handle gfx1100.
+ 	* config/gcn/t-omp-device (isa): Add gfx1100.
+ 
+ 2024-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/invoke.texi (-mmovbe): Clarify.
+ 
+ 2024-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113026
+ 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
+ 	Avoid an epilog in more cases.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
+ 	epilogues niter upper bounds and estimates.
+ 
+ 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113228
+ 	* gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
+ 
+ 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113120
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
+ 	large _BitInt zero INTEGER_CST PHI argument.
+ 
+ 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113119
+ 	* gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
+ 	both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
+ 	is before REALPART_EXPR.
+ 
+ 2024-01-08  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/112952
+ 	* config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
+ 	range when diagnosing attribute "io" and "io_low" are out of range.
+ 	(avr_eval_addr_attrib): Don't ICE on empty address at that place.
+ 	(avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
+ 	in contexts other than static storage.
+ 	(avr_asm_output_aligned_decl_common): Move output of decls with
+ 	attribute "address", "io", and "io_low" to...
+ 	(avr_output_addr_attrib): ...this new function.
+ 	(avr_asm_asm_output_aligned_bss): Remove output for decls with
+ 	attribute "address", "io", and "io_low".
+ 	(avr_encode_section_info): Rectify handling of decls with attribute
+ 	"address", "io", and "io_low".
+ 
+ 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
+ 	(elf_flags): Remove XNACK from the default value.
+ 	(main): Set a default XNACK according to the arch.
+ 
+ 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
+ 	(process_asm): Don't count avgprs.
+ 
+ 2024-01-08  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.opt: Add supported sub-features.
+ 	* doc/extend.texi: Add description for target attribute.
+ 
+ 2024-01-08  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
+ 
+ 2024-01-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113231
+ 	* config/i386/i386-features.cc (compute_convert_gain): Include
+ 	the overhead of explicit load and store (movd) instructions when
+ 	converting non-store scalar operations with memory destinations.
+ 	Various indentation whitespace fixes.
+ 
+ 2024-01-07  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/arm/neon.md (cbranch<mode>4): New.
+ 
+ 2024-01-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
+ 
+ 2024-01-06  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
+ 
+ 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113248
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
+ 	Update the MAX_SEW.
+ 
+ 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
+ 	(variable_vectorized_p): Teach loop invariant.
+ 	(has_unexpected_spills_p): Ditto.
+ 
+ 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
+ 	* config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
+ 	* config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
+ 
+ 2024-01-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113104
+ 	* doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
+ 	(aarch64-vect-compare-costs): ...this.
+ 	* config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
+ 	Replace with...
+ 	(-param=aarch64-vect-compare-costs=): ...this new param.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
+ 	Don't disable it when vectorizing for Advanced SIMD only.
+ 	(aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
+ 	whenever aarch64_vect_compare_costs is true.
+ 
+ 2024-01-05  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
+ 	Modify the method of determining the memory offset of [x]vld/[x]vst.
+ 	(lasx_mxst_<lasxfmt_f>): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
+ 	(loongarch_address_insns): Likewise.
+ 	* config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
+ 	(lsx_st_<lsxfmt_f>): Likewise.
+ 	* config/loongarch/predicates.md (aq10b_operand): Likewise.
+ 	(aq10h_operand): Likewise.
+ 	(aq10w_operand): Likewise.
+ 	(aq10d_operand): Likewise.
+ 
+ 2024-01-05  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113217
+ 	* config/aarch64/aarch64-ldp-fusion.cc
+ 	(ldp_bb_info::try_fuse_pair): If the second access can throw,
+ 	narrow the move range to exactly that insn.
+ 
+ 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
+ 
+ 	* asan.cc (asan_function_start): Drop switch_to_section ().
+ 	(asan_emit_stack_protection): Set .LASANPC alignment.
+ 	* config/i386/i386.cc: Use assemble_function_label_raw ()
+ 	instead of ASM_OUTPUT_LABEL ().
+ 	* config/s390/s390.cc (s390_asm_output_function_label):
+ 	Likewise.
+ 	* defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
+ 	* final.cc (final_start_function_1): Drop
+ 	asan_function_start ().
+ 	* output.h (assemble_function_label_raw): New function.
+ 	* varasm.cc (assemble_function_label_raw): Likewise.
+ 
+ 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_declare_function_name):
+ 	Use ASM_OUTPUT_FUNCTION_LABEL ().
+ 	* config/alpha/alpha.cc (alpha_start_function): Likewise.
+ 	* config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ 	* config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
+ 	* config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ 	* config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
+ 	* config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ 	* config/ia64/ia64.cc (ia64_start_function): Likewise.
+ 	* config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
+ 	Likewise.
+ 	* config/microblaze/microblaze.cc (microblaze_function_prologue):
+ 	Likewise.
+ 	* config/mips/mips.cc (mips_start_unique_function): Return the
+ 	tree.
+ 	(mips_start_function_definition): Use
+ 	ASM_OUTPUT_FUNCTION_LABEL ().
+ 	(mips_finish_stub): Pass the tree to
+ 	mips_start_function_definition ().
+ 	(mips16_build_function_stub): Likewise.
+ 	(mips16_build_call_stub): Likewise.
+ 	(mips_output_function_prologue): Likewise.
+ 	* config/pa/pa.cc (pa_output_function_label): Use
+ 	ASM_OUTPUT_FUNCTION_LABEL ().
+ 	* config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
+ 	Likewise.
+ 	(rs6000_xcoff_declare_function_name): Likewise.
+ 
+ 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113201
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
+ 	replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
+ 
+ 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/90693
+ 	* tree-ssa-math-opts.cc (match_single_bit_test): If
+ 	tree_expr_nonzero_p (arg), remember it in the second argument to
+ 	IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
+ 	arg ^ (arg - 1) > arg - 1.
+ 	* internal-fn.cc (expand_POPCOUNT): If second argument to
+ 	IFN_POPCOUNT suggests arg is non-zero, try to expand it as
+ 	arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
+ 
+ 2024-01-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_load_store):
+ 	Remove `value`.
+ 	(expand_cond_len_op): Ditto.
+ 	(expand_gather_scatter): Ditto.
+ 	(expand_lanes_load_store): Ditto.
+ 	(expand_fold_extract_last): Ditto.
+ 
+ 2024-01-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ 				Add new function_base for crypto vector.
+ 	(class bitmanip): Ditto.
+ 	(class b_reverse):Ditto.
+ 	(class vwsll):   Ditto.
+ 	(class clmul):   Ditto.
+ 	(class vg_nhab):  Ditto.
+ 	(class crypto_vv):Ditto.
+ 	(class crypto_vi):Ditto.
+ 	(class vaeskf2_vsm3c):Ditto.
+ 	(class vsm3me): Ditto.
+ 	(BASE): Add BASE declaration for crypto vector.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ 				Add crypto vector intrinsic definition.
+ 	(vbrev): Ditto.
+ 	(vclz): Ditto.
+ 	(vctz): Ditto.
+ 	(vwsll): Ditto.
+ 	(vandn): Ditto.
+ 	(vbrev8): Ditto.
+ 	(vrev8): Ditto.
+ 	(vrol): Ditto.
+ 	(vror): Ditto.
+ 	(vclmul): Ditto.
+ 	(vclmulh): Ditto.
+ 	(vghsh): Ditto.
+ 	(vgmul): Ditto.
+ 	(vaesef): Ditto.
+ 	(vaesem): Ditto.
+ 	(vaesdf): Ditto.
+ 	(vaesdm): Ditto.
+ 	(vaesz): Ditto.
+ 	(vaeskf1): Ditto.
+ 	(vaeskf2): Ditto.
+ 	(vsha2ms): Ditto.
+ 	(vsha2ch): Ditto.
+ 	(vsha2cl): Ditto.
+ 	(vsm4k): Ditto.
+ 	(vsm4r): Ditto.
+ 	(vsm3me): Ditto.
+ 	(vsm3c): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ 				Add new function_shape for crypto vector.
+ 	(struct crypto_vi_def): Ditto.
+ 	(struct crypto_vv_no_op_type_def): Ditto.
+ 	(SHAPE): Add SHAPE declaration of crypto vector.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data type for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data struct for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
+ 
+ 2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ 				Add new function_base for crypto vector.
+ 	(class bitmanip): Ditto.
+ 	(class b_reverse):Ditto.
+ 	(class vwsll):   Ditto.
+ 	(class clmul):   Ditto.
+ 	(class vg_nhab):  Ditto.
+ 	(class crypto_vv):Ditto.
+ 	(class crypto_vi):Ditto.
+ 	(class vaeskf2_vsm3c):Ditto.
+ 	(class vsm3me): Ditto.
+ 	(BASE): Add BASE declaration for crypto vector.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ 				Add crypto vector intrinsic definition.
+ 	(vbrev): Ditto.
+ 	(vclz): Ditto.
+ 	(vctz): Ditto.
+ 	(vwsll): Ditto.
+ 	(vandn): Ditto.
+ 	(vbrev8): Ditto.
+ 	(vrev8): Ditto.
+ 	(vrol): Ditto.
+ 	(vror): Ditto.
+ 	(vclmul): Ditto.
+ 	(vclmulh): Ditto.
+ 	(vghsh): Ditto.
+ 	(vgmul): Ditto.
+ 	(vaesef): Ditto.
+ 	(vaesem): Ditto.
+ 	(vaesdf): Ditto.
+ 	(vaesdm): Ditto.
+ 	(vaesz): Ditto.
+ 	(vaeskf1): Ditto.
+ 	(vaeskf2): Ditto.
+ 	(vsha2ms): Ditto.
+ 	(vsha2ch): Ditto.
+ 	(vsha2cl): Ditto.
+ 	(vsm4k): Ditto.
+ 	(vsm4r): Ditto.
+ 	(vsm3me): Ditto.
+ 	(vsm3c): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ 				Add new function_shape for crypto vector.
+ 	(struct crypto_vi_def): Ditto.
+ 	(struct crypto_vv_no_op_type_def): Ditto.
+ 	(SHAPE): Add SHAPE declaration of crypto vector.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data type for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
+ 				Add new data struct for crypto vector.
+ 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
+ 
+ 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
+ 
+ 2024-01-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/113186
+ 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
+ 	Match `^` with the `==` for 1bit integral types.
+ 	* match.pd (maybe_cmp): Allow for bit_xor for 1bit
+ 	integral types.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* toplev.cc (general_init): Pass lang_mask to urlifier.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
+ 	param.
+ 	(diagnostic_context::make_option_url): Update for lang_mask param.
+ 	* gcc-urlifier.cc: Include "opts.h" and "options.h".
+ 	(gcc_urlifier::gcc_urlifier): Add lang_mask param.
+ 	(gcc_urlifier::m_lang_mask): New field.
+ 	(doc_urls): Make static.
+ 	(gcc_urlifier::get_url_for_quoted_text): Use label_text.
+ 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
+ 	Look for an option by name before trying a binary search in
+ 	doc_urls.
+ 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
+ 	(gcc_urlifier::get_url_suffix_for_option): New.
+ 	(make_gcc_urlifier): Add lang_mask param.
+ 	(selftest::gcc_urlifier_cc_tests): Update for above changes.
+ 	Verify that a URL is found for "-fpack-struct".
+ 	* gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
+ 	* gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
+ 	* gcc.cc (driver::global_initializations): Pass 0 for lang_mask
+ 	to make_gcc_urlifier.
+ 	* opts-diagnostic.h (get_option_url): Add lang_mask param.
+ 	* opts.cc (get_option_html_page): Remove special-casing for
+ 	analyzer and LTO.
+ 	(get_option_url_suffix): New.
+ 	(get_option_url): Reimplement.
+ 	(selftest::test_get_option_html_page): Rename to...
+ 	(selftest::test_get_option_url_suffix): ...this and update for
+ 	above changes.
+ 	(selftest::opts_cc_tests): Update for renaming.
+ 	* opts.h: Include "rich-location.h".
+ 	(get_option_url_suffix): New decl.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (ALL_OPT_URL_FILES): New.
+ 	(GCC_OBJS): Add options-urls.o.
+ 	(OBJS): Likewise.
+ 	(OBJS-libcommon): Likewise.
+ 	(s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
+ 	inputs to opt-gather.awk.
+ 	(options-urls.cc): New Makefile target.
+ 	* opt-functions.awk (url_suffix): New function.
+ 	(lang_url_suffix): New function.
+ 	* options-urls-cc-gen.awk: New file.
+ 	* opts.h (get_opt_url_suffix): New decl.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* params.opt.urls: New file, autogenerated by
+ 	regenerate-opt-urls.py.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt.urls: New file, autogenerated by
+ 	regenerate-opt-urls.py.
+ 	* config/aarch64/aarch64.opt.urls: Likewise.
+ 	* config/alpha/alpha.opt.urls: Likewise.
+ 	* config/alpha/elf.opt.urls: Likewise.
+ 	* config/arc/arc-tables.opt.urls: Likewise.
+ 	* config/arc/arc.opt.urls: Likewise.
+ 	* config/arm/arm-tables.opt.urls: Likewise.
+ 	* config/arm/arm.opt.urls: Likewise.
+ 	* config/arm/vxworks.opt.urls: Likewise.
+ 	* config/avr/avr.opt.urls: Likewise.
+ 	* config/bpf/bpf.opt.urls: Likewise.
+ 	* config/c6x/c6x-tables.opt.urls: Likewise.
+ 	* config/c6x/c6x.opt.urls: Likewise.
+ 	* config/cris/cris.opt.urls: Likewise.
+ 	* config/cris/elf.opt.urls: Likewise.
+ 	* config/csky/csky.opt.urls: Likewise.
+ 	* config/csky/csky_tables.opt.urls: Likewise.
+ 	* config/darwin.opt.urls: Likewise.
+ 	* config/dragonfly.opt.urls: Likewise.
+ 	* config/epiphany/epiphany.opt.urls: Likewise.
+ 	* config/fr30/fr30.opt.urls: Likewise.
+ 	* config/freebsd.opt.urls: Likewise.
+ 	* config/frv/frv.opt.urls: Likewise.
+ 	* config/ft32/ft32.opt.urls: Likewise.
+ 	* config/fused-madd.opt.urls: Likewise.
+ 	* config/g.opt.urls: Likewise.
+ 	* config/gcn/gcn.opt.urls: Likewise.
+ 	* config/gnu-user.opt.urls: Likewise.
+ 	* config/h8300/h8300.opt.urls: Likewise.
+ 	* config/hpux11.opt.urls: Likewise.
+ 	* config/i386/cygming.opt.urls: Likewise.
+ 	* config/i386/cygwin.opt.urls: Likewise.
+ 	* config/i386/djgpp.opt.urls: Likewise.
+ 	* config/i386/i386.opt.urls: Likewise.
+ 	* config/i386/mingw-w64.opt.urls: Likewise.
+ 	* config/i386/mingw.opt.urls: Likewise.
+ 	* config/i386/nto.opt.urls: Likewise.
+ 	* config/ia64/ia64.opt.urls: Likewise.
+ 	* config/ia64/ilp32.opt.urls: Likewise.
+ 	* config/ia64/vms.opt.urls: Likewise.
+ 	* config/iq2000/iq2000.opt.urls: Likewise.
+ 	* config/linux-android.opt.urls: Likewise.
+ 	* config/linux.opt.urls: Likewise.
+ 	* config/lm32/lm32.opt.urls: Likewise.
+ 	* config/loongarch/loongarch.opt.urls: Likewise.
+ 	* config/lynx.opt.urls: Likewise.
+ 	* config/m32c/m32c.opt.urls: Likewise.
+ 	* config/m32r/m32r.opt.urls: Likewise.
+ 	* config/m68k/ieee.opt.urls: Likewise.
+ 	* config/m68k/m68k-tables.opt.urls: Likewise.
+ 	* config/m68k/m68k.opt.urls: Likewise.
+ 	* config/m68k/uclinux.opt.urls: Likewise.
+ 	* config/mcore/mcore.opt.urls: Likewise.
+ 	* config/microblaze/microblaze.opt.urls: Likewise.
+ 	* config/mips/mips-tables.opt.urls: Likewise.
+ 	* config/mips/mips.opt.urls: Likewise.
+ 	* config/mips/sde.opt.urls: Likewise.
+ 	* config/mmix/mmix.opt.urls: Likewise.
+ 	* config/mn10300/mn10300.opt.urls: Likewise.
+ 	* config/moxie/moxie.opt.urls: Likewise.
+ 	* config/msp430/msp430.opt.urls: Likewise.
+ 	* config/nds32/nds32-elf.opt.urls: Likewise.
+ 	* config/nds32/nds32-linux.opt.urls: Likewise.
+ 	* config/nds32/nds32.opt.urls: Likewise.
+ 	* config/netbsd-elf.opt.urls: Likewise.
+ 	* config/netbsd.opt.urls: Likewise.
+ 	* config/nios2/elf.opt.urls: Likewise.
+ 	* config/nios2/nios2.opt.urls: Likewise.
+ 	* config/nvptx/nvptx-gen.opt.urls: Likewise.
+ 	* config/nvptx/nvptx.opt.urls: Likewise.
+ 	* config/openbsd.opt.urls: Likewise.
+ 	* config/or1k/elf.opt.urls: Likewise.
+ 	* config/or1k/or1k.opt.urls: Likewise.
+ 	* config/pa/pa-hpux.opt.urls: Likewise.
+ 	* config/pa/pa-hpux1010.opt.urls: Likewise.
+ 	* config/pa/pa-hpux1111.opt.urls: Likewise.
+ 	* config/pa/pa-hpux1131.opt.urls: Likewise.
+ 	* config/pa/pa.opt.urls: Likewise.
+ 	* config/pa/pa64-hpux.opt.urls: Likewise.
+ 	* config/pdp11/pdp11.opt.urls: Likewise.
+ 	* config/pru/pru.opt.urls: Likewise.
+ 	* config/riscv/riscv.opt.urls: Likewise.
+ 	* config/rl78/rl78.opt.urls: Likewise.
+ 	* config/rpath.opt.urls: Likewise.
+ 	* config/rs6000/476.opt.urls: Likewise.
+ 	* config/rs6000/aix64.opt.urls: Likewise.
+ 	* config/rs6000/darwin.opt.urls: Likewise.
+ 	* config/rs6000/linux64.opt.urls: Likewise.
+ 	* config/rs6000/rs6000-tables.opt.urls: Likewise.
+ 	* config/rs6000/rs6000.opt.urls: Likewise.
+ 	* config/rs6000/sysv4.opt.urls: Likewise.
+ 	* config/rtems.opt.urls: Likewise.
+ 	* config/rx/elf.opt.urls: Likewise.
+ 	* config/rx/rx.opt.urls: Likewise.
+ 	* config/s390/s390.opt.urls: Likewise.
+ 	* config/s390/tpf.opt.urls: Likewise.
+ 	* config/sh/sh.opt.urls: Likewise.
+ 	* config/sh/superh.opt.urls: Likewise.
+ 	* config/sol2.opt.urls: Likewise.
+ 	* config/sparc/long-double-switch.opt.urls: Likewise.
+ 	* config/sparc/sparc.opt.urls: Likewise.
+ 	* config/stormy16/stormy16.opt.urls: Likewise.
+ 	* config/v850/v850.opt.urls: Likewise.
+ 	* config/vax/elf.opt.urls: Likewise.
+ 	* config/vax/vax.opt.urls: Likewise.
+ 	* config/visium/visium.opt.urls: Likewise.
+ 	* config/vms/vms.opt.urls: Likewise.
+ 	* config/vxworks-smp.opt.urls: Likewise.
+ 	* config/vxworks.opt.urls: Likewise.
+ 	* config/xtensa/elf.opt.urls: Likewise.
+ 	* config/xtensa/uclinux.opt.urls: Likewise.
+ 	* config/xtensa/xtensa.opt.urls: Likewise.
+ 	* config/bfin/bfin.opt.urls: New file.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OPT_URLS_HTML_DEPS): New.
+ 	(regenerate-opt-urls): New target.
+ 	(regenerate-opt-urls-unit-test): New target.
+ 	* doc/options.texi (Option properties): Add UrlSuffix and
+ 	description of regenerate-opt-urls.py.  Add LangUrlSuffix_*.
+ 	* doc/sourcebuild.texi (Anatomy of a Language Front End): Add
+ 	reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
+ 	and Makefile.in's OPT_URLS_HTML_DEPS.
+ 	(Anatomy of a Target Back End): Add
+ 	reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
+ 	* regenerate-opt-urls.py: New file.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::make_logical_location_object): Convert to...
+ 	(make_sarif_logical_location_object): ...this.
+ 	(sarif_builder::set_any_logical_locs_arr): Update for above
+ 	change.
+ 	(sarif_builder::make_thread_flow_location_object): Call
+ 	maybe_add_sarif_properties on each diagnostic_event.
+ 	* diagnostic-format-sarif.h (class logical_location): New forward
+ 	decl.
+ 	(make_sarif_logical_location_object): New decl.
+ 	* diagnostic-path.h (class sarif_object): New forward decl.
+ 	(diagnostic_event::maybe_add_sarif_properties): New vfunc.
+ 
+ 2024-01-04  Kuan-Lin Chen  <rufus@andestech.com>
+ 	    Patrick Lin  <patrick@andestech.com>
+ 	    Rufus Chen  <rufus@andestech.com>
+ 	    Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
+ 	with Nan-boxing value.
+ 	* config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
+ 
+ 2024-01-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/104914
+ 	* expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
+ 	a sign or zero extension is only required if the modified field
+ 	overlaps the SUBREG's most significant bit.  On MODE_REP_EXTENDED
+ 	targets, don't refer to the temporarily incorrectly extended value
+ 	using a SUBREG, but instead generate an explicit TRUNCATE rtx.
+ 
+ 2024-01-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
+ 
+ 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
+ 
+ 2024-01-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
+ 	offset of fcsr.
+ 
+ 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
+ 	(compute_nregs_for_mode): Refine LMUL.
+ 	(max_number_of_live_regs): Ditto.
+ 	(compute_estimated_lmul): Ditto.
+ 	(has_unexpected_spills_p): Ditto.
+ 
+ 2024-01-04  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
+ 	Remove useless forward declaration.
+ 	(loongarch_is_even_extraction): Remove useless forward declaration.
+ 	(loongarch_try_expand_lsx_vshuf_const): Removed.
+ 	(loongarch_expand_vec_perm_const_1): Merged.
+ 	(loongarch_is_double_duplicate): Removed.
+ 	(loongarch_is_center_extraction): Ditto.
+ 	(loongarch_is_reversing_permutation): Ditto.
+ 	(loongarch_is_di_misalign_extract): Ditto.
+ 	(loongarch_is_si_misalign_extract): Ditto.
+ 	(loongarch_is_lasx_lowpart_extract): Ditto.
+ 	(loongarch_is_op_reverse_perm): Ditto.
+ 	(loongarch_is_single_op_perm): Ditto.
+ 	(loongarch_is_divisible_perm): Ditto.
+ 	(loongarch_is_triple_stride_extract): Ditto.
+ 	(loongarch_expand_vec_perm_const_2): Merged.
+ 	(loongarch_expand_vec_perm_const): New.
+ 	(loongarch_vectorize_vec_perm_const): Adjust.
+ 
+ 2024-01-04  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-general.cc: Fix comment typos and misplaced/confusing
+ 	comments.  Delete redundant include of omp-general.h.
+ 
+ 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/104914
+ 	* config/mips/mips.md (insqisi_extended): New patterns.
+ 	(inshisi_extended): Ditto.
+ 
+ 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.cc (mips_insn_cost): New function.
+ 
+ 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/mips.md (perf_ratio): New attribute.
+ 
+ 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113206
+ 	PR target/113209
+ 	* config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
+ 	(pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
+ 	blocks belong to infinite loop.
+ 	(pre_vsetvl::emit_vsetvl): Remove fake edges.
+ 	* config/riscv/t-riscv: Add a new include file.
+ 
+ 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix indent.
+ 
+ 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
+ 
+ 	* tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
+ 	OMP_CLAUSE__SIMDUID_.
+ 	* tree.cc (omp_clause_num_ops): Update position of entry for
+ 	OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
+ 	(omp_clause_code_name): Likewise.
+ 
+ 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
+ 	printing of FUNC_MAP/IND_FUNC_MAP labels.
+ 
+ 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc.cc (process_command): Update copyright notice dates.
+ 	* gcov-dump.cc (print_version): Ditto.
+ 	* gcov.cc (print_version): Ditto.
+ 	* gcov-tool.cc (print_version): Ditto.
+ 	* gengtype.cc (create_file): Ditto.
+ 	* doc/cpp.texi: Bump @copying's copyright year.
+ 	* doc/cppinternals.texi: Ditto.
+ 	* doc/gcc.texi: Ditto.
+ 	* doc/gccint.texi: Ditto.
+ 	* doc/gcov.texi: Ditto.
+ 	* doc/install.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2024-01-03  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/simd.md (fmax<mode>3): New define_insn.
+ 	(fmin<mode>3): Likewise.
+ 	(reduc_fmax_scal_<mode>3): New define_expand.
+ 	(reduc_fmin_scal_<mode>3): Likewise.
+ 
+ 2024-01-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
+ 	(max_number_of_live_regs): Ditto.
+ 	(has_unexpected_spills_p): Ditto.
+ 
+ 2024-01-02  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/vector.md:
+ 	Use vector_length_operand for vsetvl patterns.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
+ 	(expand_cond_len_op): Add simplification of dummy len and dummy mask.
+ 
+ 2024-01-02  Di Zhao  <dizhao@os.amperecomputing.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): New tuning option
+ 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_override_options_internal): Set
+ 	param_fully_pipelined_fma according to tuning option.
+ 	* config/aarch64/tuning_models/ampere1.h: Add
+ 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
+ 	* config/aarch64/tuning_models/ampere1a.h: Likewise.
+ 	* config/aarch64/tuning_models/ampere1b.h: Likewise.
+ 
+ 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/vector-crypto.md: Modify copyright year.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
+ 
+ 2024-01-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.in: Regenerate.
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
+ 	* config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
+ 	Added TLS Le Relax support.
+ 	(loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
+ 	* config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check if binutils supports TLS le relax.
+ 
+ 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/iterators.md: Add rotate insn name.
+ 	* config/riscv/riscv.md: Add new insns name for crypto vector.
+ 	* config/riscv/vector-iterators.md: Add new iterators for crypto vector.
+ 	* config/riscv/vector.md: Add the corresponding attr for crypto vector.
+ 	* config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
+ 	pointer type liveness count.
+ 
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff -Nrcpad gcc-14.2.0/gcc/DATESTAMP gcc-15.1.0/gcc/DATESTAMP
*** gcc-14.2.0/gcc/DATESTAMP	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/DATESTAMP	Fri Apr 25 08:18:00 2025
***************
*** 1 ****
! 20240801
--- 1 ----
! 20250425
diff -Nrcpad gcc-14.2.0/gcc/LANGUAGES gcc-15.1.0/gcc/LANGUAGES
*** gcc-14.2.0/gcc/LANGUAGES	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/LANGUAGES	Fri Apr 25 08:18:00 2025
*************** Feb 1, 1998:
*** 57,63 ****
      DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
  
  
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 57,63 ----
      DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
  
  
! Copyright (C) 1998-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/Makefile.in gcc-15.1.0/gcc/Makefile.in
*** gcc-14.2.0/gcc/Makefile.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/Makefile.in	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  # Makefile for GNU Compiler Collection
  # Run 'configure' to generate Makefile from Makefile.in
  
! # Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,7 ----
  # Makefile for GNU Compiler Collection
  # Run 'configure' to generate Makefile from Makefile.in
  
! # Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** C_LOOSE_WARN = @c_loose_warn@
*** 185,194 ****
  STRICT_WARN = @strict_warn@
  C_STRICT_WARN = @c_strict_warn@
  
- # This is set by --enable-checking.  The idea is to catch forgotten
- # "extern" tags in header files.
- NOCOMMON_FLAG = @nocommon_flag@
- 
  NOEXCEPTION_FLAGS = @noexception_flags@
  
  ALIASING_FLAGS = @aliasing_flags@
--- 185,190 ----
*************** VALGRIND_DRIVER_DEFINES = @valgrind_path
*** 215,222 ****
  .-warn = $(STRICT_WARN)
  build-warn = $(STRICT_WARN)
  rtl-ssa-warn = $(STRICT_WARN)
! GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $(NOCOMMON_FLAG) $($@-warn)
! GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
  
  # 1 2 3 ... 9999
  one_to_9999_0:=1 2 3 4 5 6 7 8 9
--- 211,218 ----
  .-warn = $(STRICT_WARN)
  build-warn = $(STRICT_WARN)
  rtl-ssa-warn = $(STRICT_WARN)
! GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $($@-warn)
! GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $($@-warn)
  
  # 1 2 3 ... 9999
  one_to_9999_0:=1 2 3 4 5 6 7 8 9
*************** INSNEMIT_SEQ_SRC = $(patsubst %, insn-em
*** 243,248 ****
--- 239,250 ----
  INSNEMIT_SEQ_TMP = $(patsubst %, tmp-emit-%.cc, $(INSNEMIT_SPLITS_SEQ))
  INSNEMIT_SEQ_O = $(patsubst %, insn-emit-%.o, $(INSNEMIT_SPLITS_SEQ))
  
+ # Re-use the split number for insn-recog as well.
+ INSNRECOG_SPLITS_SEQ = $(wordlist 1,$(NUM_INSNEMIT_SPLITS),$(one_to_9999))
+ INSNRECOG_SEQ_SRC = $(patsubst %, insn-recog-%.cc, $(INSNRECOG_SPLITS_SEQ))
+ INSNRECOG_SEQ_TMP = $(patsubst %, tmp-recog-%.cc, $(INSNRECOG_SPLITS_SEQ))
+ INSNRECOG_SEQ_O = $(patsubst %, insn-recog-%.o, $(INSNRECOG_SPLITS_SEQ))
+ 
  # These files are to have specific diagnostics suppressed, or are not to
  # be subject to -Werror:
  # flex output may yield harmless "no previous prototype" warnings
*************** endif
*** 440,445 ****
--- 442,449 ----
  
  enable_host_shared = @enable_host_shared@
  
+ enable_libgdiagnostics = @enable_libgdiagnostics@
+ 
  enable_as_accelerator = @enable_as_accelerator@
  
  CPPLIB = ../libcpp/libcpp.a
*************** CPPINC = -I$(srcdir)/../libcpp/include
*** 447,453 ****
  
  CODYLIB = ../libcody/libcody.a
  CODYINC = -I$(srcdir)/../libcody
- NETLIBS = @NETLIBS@
  
  # Where to find decNumber
  enable_decimal_float = @enable_decimal_float@
--- 451,456 ----
*************** T_STDINT_GCC_H = $(srcdir)/ginclude/stdi
*** 492,497 ****
--- 495,503 ----
  # Don't use this as a dependency--use $(GCC_PASSES).
  GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld $(TFLAGS)
  
+ # The GCC to use when running selftests
+ GCC_FOR_SELFTESTS = LC_ALL=C GCC_COLORS= $(GCC_FOR_TARGET)
+ 
  # Set if the compiler was configured with --with-build-sysroot.
  SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  
*************** xm_include_list=@xm_include_list@
*** 620,625 ****
--- 626,634 ----
  xm_defines=@xm_defines@
  lang_checks=
  lang_checks_parallelized=
+ ifeq (@enable_libgdiagnostics@,yes)
+ lang_checks += check-libgdiagnostics check-sarif-replay
+ endif
  lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt $(srcdir)/params.opt $(srcdir)/analyzer/analyzer.opt
  lang_specs_files=@lang_specs_files@
  lang_tree_files=@lang_tree_files@
*************** datadir = @datadir@
*** 739,744 ****
--- 748,754 ----
  localedir = $(datadir)/locale
  # Extension (if any) to put in installed man-page filename.
  man1ext = .1
+ man3ext = .3
  man7ext = .7
  objext = .o
  exeext = @host_exeext@
*************** build_exeext = @build_exeext@
*** 747,752 ****
--- 757,763 ----
  # Directory in which to put man pages.
  mandir = @mandir@
  man1dir = $(mandir)/man1
+ man3dir = $(mandir)/man3
  man7dir = $(mandir)/man7
  # Dir for temp files.
  tmpdir = /tmp
*************** SYSTEM_H = system.h hwint.h $(srcdir)/..
*** 1039,1044 ****
--- 1050,1056 ----
  PREDICT_H = predict.h predict.def
  CPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \
  	$(srcdir)/../libcpp/include/rich-location.h \
+ 	$(srcdir)/../libcpp/include/label-text.h \
  	$(srcdir)/../libcpp/include/cpplib.h
  CODYLIB_H = $(srcdir)/../libcody/cody.hh
  INPUT_H = $(srcdir)/../libcpp/include/line-map.h input.h
*************** LANG_CONFIGUREFRAGS  = @all_lang_configu
*** 1206,1211 ****
--- 1218,1224 ----
  LANG_MAKEFRAGS = @all_lang_makefrags@
  
  # Used by gcc/jit/Make-lang.in
+ LIBGCCJIT_VERSION_NUM = @libgccjit_version@
  LD_VERSION_SCRIPT_OPTION = @ld_version_script_option@
  LD_SONAME_OPTION = @ld_soname_option@
  @ENABLE_DARWIN_AT_RPATH_TRUE@DARWIN_RPATH = @rpath
*************** RUST_TARGET_OBJS=@rust_target_objs@
*** 1293,1298 ****
--- 1306,1313 ----
  # Object files for gcc many-languages driver.
  GCC_OBJS = gcc.o gcc-main.o ggc-none.o gcc-urlifier.o options-urls.o
  
+ SARIF_REPLAY_OBJS = sarif-replay.o libsarifreplay.o
+ 
  c-family-warn = $(STRICT_WARN)
  
  # Language-specific object files shared by all C-family front ends.
*************** C_COMMON_OBJS = c-family/c-common.o c-fa
*** 1302,1308 ****
    c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o \
    c-family/c-semantics.o c-family/c-ada-spec.o \
    c-family/c-ubsan.o c-family/known-headers.o \
!   c-family/c-attribs.o c-family/c-warn.o c-family/c-spellcheck.o
  
  # Analyzer object files
  ANALYZER_OBJS = \
--- 1317,1324 ----
    c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o \
    c-family/c-semantics.o c-family/c-ada-spec.o \
    c-family/c-ubsan.o c-family/known-headers.o \
!   c-family/c-attribs.o c-family/c-warn.o c-family/c-spellcheck.o \
!   c-family/c-type-mismatch.o
  
  # Analyzer object files
  ANALYZER_OBJS = \
*************** OBJS = \
*** 1378,1384 ****
  	insn-output.o \
  	insn-peep.o \
  	insn-preds.o \
! 	insn-recog.o \
  	insn-enums.o \
  	ggc-page.o \
  	adjust-alignment.o \
--- 1394,1400 ----
  	insn-output.o \
  	insn-peep.o \
  	insn-preds.o \
! 	$(INSNRECOG_SEQ_O) \
  	insn-enums.o \
  	ggc-page.o \
  	adjust-alignment.o \
*************** OBJS = \
*** 1444,1449 ****
--- 1460,1466 ----
  	dumpfile.o \
  	dwarf2asm.o \
  	dwarf2cfi.o \
+ 	dwarf2codeview.o \
  	dwarf2ctf.o \
  	dwarf2out.o \
  	early-remat.o \
*************** OBJS = \
*** 1453,1458 ****
--- 1470,1476 ----
  	explow.o \
  	expmed.o \
  	expr.o \
+ 	ext-dce.o \
  	fibonacci_heap.o \
  	file-prefix-map.o \
  	final.o \
*************** OBJS = \
*** 1464,1469 ****
--- 1482,1488 ----
  	function-abi.o \
  	function-tests.o \
  	fwprop.o \
+ 	gcc-attribute-urlifier.o \
  	gcc-rich-location.o \
  	gcc-urlifier.o \
  	gcse.o \
*************** OBJS = \
*** 1536,1541 ****
--- 1555,1561 ----
  	incpath.o \
  	init-regs.o \
  	internal-fn.o \
+ 	ipa-locality-cloning.o \
  	ipa-cp.o \
  	ipa-sra.o \
  	ipa-devirt.o \
*************** OBJS = \
*** 1563,1568 ****
--- 1583,1589 ----
  	ipa-strub.o \
  	ipa.o \
  	ira.o \
+ 	pair-fusion.o \
  	ira-build.o \
  	ira-costs.o \
  	ira-conflicts.o \
*************** OBJS = \
*** 1571,1576 ****
--- 1592,1599 ----
  	ira-lives.o \
  	jump.o \
  	langhooks.o \
+ 	late-combine.o \
+ 	lazy-diagnostic-path.o \
  	lcm.o \
  	lists.o \
  	loop-doloop.o \
*************** OBJS = \
*** 1618,1623 ****
--- 1641,1648 ----
  	opts-global.o \
  	ordered-hash-map-tests.o \
  	passes.o \
+ 	prime-paths.o \
+ 	path-coverage.o \
  	plugin.o \
  	pointer-query.o \
  	postreload-gcse.o \
*************** OBJS = \
*** 1681,1686 ****
--- 1706,1712 ----
  	statistics.o \
  	stmt.o \
  	stor-layout.o \
+ 	avoid-store-forwarding.o \
  	store-motion.o \
  	streamer-hooks.o \
  	stringpool.o \
*************** OBJS = \
*** 1697,1702 ****
--- 1723,1730 ----
  	ubsan.o \
  	sanopt.o \
  	sancov.o \
+ 	simple-diagnostic-path.o \
+ 	tree-assume.o \
  	tree-call-cdce.o \
  	tree-cfg.o \
  	tree-cfgcleanup.o \
*************** OBJS = \
*** 1706,1712 ****
  	tree-dfa.o \
  	tree-diagnostic.o \
  	tree-diagnostic-client-data-hooks.o \
- 	tree-diagnostic-path.o \
  	tree-dump.o \
  	tree-eh.o \
  	tree-emutls.o \
--- 1734,1739 ----
*************** OBJS = \
*** 1716,1721 ****
--- 1743,1753 ----
  	tree-iterator.o \
  	tree-logical-location.o \
  	tree-loop-distribution.o \
+ 	crc-verification.o \
+ 	gimple-crc-optimization.o \
+ 	sym-exec/sym-exec-expression.o \
+ 	sym-exec/sym-exec-state.o \
+ 	sym-exec/sym-exec-condition.o \
  	tree-nested.o \
  	tree-nrv.o \
  	tree-object-size.o \
*************** OBJS = \
*** 1820,1832 ****
  OBJS-libcommon = diagnostic-spec.o diagnostic.o diagnostic-color.o \
  	diagnostic-format-json.o \
  	diagnostic-format-sarif.o \
  	diagnostic-show-locus.o \
  	edit-context.o \
  	pretty-print.o intl.o \
! 	json.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
  	selftest.o selftest-diagnostic.o sort.o \
  	text-art/box-drawing.o \
  	text-art/canvas.o \
  	text-art/ruler.o \
--- 1852,1871 ----
  OBJS-libcommon = diagnostic-spec.o diagnostic.o diagnostic-color.o \
  	diagnostic-format-json.o \
  	diagnostic-format-sarif.o \
+ 	diagnostic-format-text.o \
+ 	diagnostic-global-context.o \
+ 	diagnostic-macro-unwinding.o \
+ 	diagnostic-path.o \
  	diagnostic-show-locus.o \
  	edit-context.o \
  	pretty-print.o intl.o \
! 	json.o json-parsing.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
  	selftest.o selftest-diagnostic.o sort.o \
+ 	selftest-diagnostic-path.o \
+ 	selftest-json.o \
+ 	selftest-logical-location.o \
  	text-art/box-drawing.o \
  	text-art/canvas.o \
  	text-art/ruler.o \
*************** OBJS-libcommon = diagnostic-spec.o diagn
*** 1835,1846 ****
  	text-art/styled-string.o \
  	text-art/table.o \
  	text-art/theme.o \
  	text-art/widget.o
  
  # Objects in libcommon-target.a, used by drivers and by the core
  # compiler and containing target-dependent code.
  OBJS-libcommon-target = $(common_out_object_file) prefix.o \
! 	opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o \
  	hash-table.o file-find.o spellcheck.o selftest.o opt-suggestions.o \
  	options-urls.o
  
--- 1874,1887 ----
  	text-art/styled-string.o \
  	text-art/table.o \
  	text-art/theme.o \
+ 	text-art/tree-widget.o \
  	text-art/widget.o
  
  # Objects in libcommon-target.a, used by drivers and by the core
  # compiler and containing target-dependent code.
  OBJS-libcommon-target = $(common_out_object_file) prefix.o \
! 	opts.o opts-common.o opts-diagnostic.o options.o \
! 	vec.o hooks.o common/common-targhooks.o \
  	hash-table.o file-find.o spellcheck.o selftest.o opt-suggestions.o \
  	options-urls.o
  
*************** ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OB
*** 1851,1857 ****
    $(OBJS-libcommon-target) main.o c-family/cppspec.o \
    $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
    $(GCOV_TOOL_OBJS) $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o \
!   lto-wrapper.o collect-utils.o
  
  # for anything that is shared use the cc1plus profile data, as that
  # is likely the most exercised during the build
--- 1892,1898 ----
    $(OBJS-libcommon-target) main.o c-family/cppspec.o \
    $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
    $(GCOV_TOOL_OBJS) $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o \
!   lto-wrapper.o collect-utils.o lockfile.o lto-ltrans-cache.o
  
  # for anything that is shared use the cc1plus profile data, as that
  # is likely the most exercised during the build
*************** endif
*** 1865,1872 ****
  # compilation or not.
  ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
  
! BACKEND = libbackend.a main.o libcommon-target.a libcommon.a \
! 	$(CPPLIB) $(LIBDECNUMBER)
  
  # This is defined to "yes" if Tree checking is enabled, which roughly means
  # front-end checking.
--- 1906,1921 ----
  # compilation or not.
  ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
  
! ifeq (@enable_libgdiagnostics@,yes)
! ALL_HOST_OBJS += $(libgdiagnostics_OBJS) $(SARIF_REPLAY_OBJS)
! endif
! 
! # libbackend.a objs that might not be in some cases linked into the compiler,
! # yet they are supposed to be part of the plugin ABI.  See PR116143.
! EXTRA_BACKEND_OBJS = simple-diagnostic-path.o lazy-diagnostic-path.o
! 
! BACKEND = $(EXTRA_BACKEND_OBJS) libbackend.a main.o libcommon-target.a \
! 	libcommon.a $(CPPLIB) $(LIBDECNUMBER)
  
  # This is defined to "yes" if Tree checking is enabled, which roughly means
  # front-end checking.
*************** TREECHECKING = @TREECHECKING@
*** 1876,1883 ****
  FULL_DRIVER_NAME=$(target_noncanonical)-gcc-$(version)$(exeext)
  
  MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
!  insn-output.cc insn-recog.cc $(INSNEMIT_SEQ_SRC) \
!  insn-extract.cc insn-peep.cc \
   insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \
   insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \
   tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \
--- 1925,1932 ----
  FULL_DRIVER_NAME=$(target_noncanonical)-gcc-$(version)$(exeext)
  
  MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
!  insn-output.cc $(INSNRECOG_SEQ_SRC) insn-recog.h \
!  $(INSNEMIT_SEQ_SRC) insn-extract.cc insn-peep.cc \
   insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \
   insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \
   tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \
*************** all.cross: native gcc-cross$(exeext) cpp
*** 2171,2177 ****
  	libgcc-support lang.all.cross doc selftest @GENINSRC@ srcextra
  # This is what must be made before installing GCC and converting libraries.
  start.encap: native xgcc$(exeext) cpp$(exeext) specs \
! 	libgcc-support lang.start.encap @GENINSRC@ srcextra
  # These can't be made until after GCC can run.
  rest.encap: lang.rest.encap
  # This is what is made with the host's compiler
--- 2220,2226 ----
  	libgcc-support lang.all.cross doc selftest @GENINSRC@ srcextra
  # This is what must be made before installing GCC and converting libraries.
  start.encap: native xgcc$(exeext) cpp$(exeext) specs \
! 	libgcc-support lang.start.encap @LIBGDIAGNOSTICS@ @GENINSRC@ srcextra
  # These can't be made until after GCC can run.
  rest.encap: lang.rest.encap
  # This is what is made with the host's compiler
*************** cpp$(exeext): $(GCC_OBJS) c-family/cppsp
*** 2260,2265 ****
--- 2309,2443 ----
  	  c-family/cppspec.o $(EXTRA_GCC_OBJS) libcommon-target.a \
  	  $(EXTRA_GCC_LIBS) $(LIBS)
  
+ 
+ libgdiagnostics_OBJS = libgdiagnostics.o \
+ 	libcommon.a
+ 
+ # libgdiagnostics
+ 
+ LIBGDIAGNOSTICS_VERSION_NUM = 0
+ LIBGDIAGNOSTICS_MINOR_NUM = 0
+ LIBGDIAGNOSTICS_RELEASE_NUM = 1
+ 
+ ifneq (,$(findstring mingw,$(target)))
+ LIBGDIAGNOSTICS_FILENAME = libgdiagnostics-$(LIBGDIAGNOSTICS_VERSION_NUM).dll
+ LIBGDIAGNOSTICS_IMPORT_LIB = libgdiagnostics.dll.a
+ 
+ libgdiagnostics: $(LIBGDIAGNOSTICS_FILENAME)
+ 
+ else
+ 
+ ifneq (,$(findstring darwin,$(host)))
+ 
+ LIBGDIAGNOSTICS_AGE = 1
+ LIBGDIAGNOSTICS_BASENAME = libgdiagnostics
+ 
+ LIBGDIAGNOSTICS_SONAME = \
+   ${libdir}/$(LIBGDIAGNOSTICS_BASENAME).$(LIBGDIAGNOSTICS_VERSION_NUM).dylib
+ LIBGDIAGNOSTICS_FILENAME = $(LIBGDIAGNOSTICS_BASENAME).$(LIBGDIAGNOSTICS_VERSION_NUM).dylib
+ LIBGDIAGNOSTICS_LINKER_NAME = $(LIBGDIAGNOSTICS_BASENAME).dylib
+ 
+ # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and
+ # LD_SONAME_OPTION depending if configure found them, using $(if)
+ # We have to define a LIBGDIAGNOSTICS_COMMA here, otherwise the commas in the "true"
+ # result are treated as separators by the $(if).
+ LIBGDIAGNOSTICS_COMMA := ,
+ LIBGDIAGNOSTICS_VERSION_SCRIPT_OPTION = \
+ 	$(if $(LD_VERSION_SCRIPT_OPTION),\
+ 	  -Wl$(LIBGDIAGNOSTICS_COMMA)$(LD_VERSION_SCRIPT_OPTION)$(LIBGDIAGNOSTICS_COMMA)$(srcdir)/libgdiagnostics.map)
+ 
+ LIBGDIAGNOSTICS_SONAME_OPTION = \
+ 	$(if $(LD_SONAME_OPTION), \
+ 	     -Wl$(LIBGDIAGNOSTICS_COMMA)$(LD_SONAME_OPTION)$(LIBGDIAGNOSTICS_COMMA)$(LIBGDIAGNOSTICS_SONAME))
+ 
+ LIBGDIAGNOSTICS_SONAME_SYMLINK = $(LIBGDIAGNOSTICS_FILENAME)
+ LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK = $(LIBGDIAGNOSTICS_LINKER_NAME)
+ 
+ libgdiagnostics: $(LIBGDIAGNOSTICS_FILENAME) \
+ 	$(LIBGDIAGNOSTICS_SYMLINK) \
+ 	$(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK)
+ 
+ else
+ 
+ LIBGDIAGNOSTICS_LINKER_NAME = libgdiagnostics.so
+ LIBGDIAGNOSTICS_SONAME = $(LIBGDIAGNOSTICS_LINKER_NAME).$(LIBGDIAGNOSTICS_VERSION_NUM)
+ LIBGDIAGNOSTICS_FILENAME = \
+   $(LIBGDIAGNOSTICS_SONAME).$(LIBGDIAGNOSTICS_MINOR_NUM).$(LIBGDIAGNOSTICS_RELEASE_NUM)
+ 
+ LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK = $(LIBGDIAGNOSTICS_LINKER_NAME)
+ LIBGDIAGNOSTICS_SONAME_SYMLINK = $(LIBGDIAGNOSTICS_SONAME)
+ 
+ # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and
+ # LD_SONAME_OPTION depending if configure found them, using $(if)
+ # We have to define a LIBGDIAGNOSTICS_COMMA here, otherwise the commas in the "true"
+ # result are treated as separators by the $(if).
+ LIBGDIAGNOSTICS_COMMA := ,
+ LIBGDIAGNOSTICS_VERSION_SCRIPT_OPTION = \
+ 	$(if $(LD_VERSION_SCRIPT_OPTION),\
+ 	  -Wl$(LIBGDIAGNOSTICS_COMMA)$(LD_VERSION_SCRIPT_OPTION)$(LIBGDIAGNOSTICS_COMMA)$(srcdir)/libgdiagnostics.map)
+ 
+ LIBGDIAGNOSTICS_SONAME_OPTION = \
+ 	$(if $(LD_SONAME_OPTION), \
+ 	     -Wl$(LIBGDIAGNOSTICS_COMMA)$(LD_SONAME_OPTION)$(LIBGDIAGNOSTICS_COMMA)$(LIBGDIAGNOSTICS_SONAME))
+ 
+ libgdiagnostics: $(LIBGDIAGNOSTICS_FILENAME) \
+ 	$(LIBGDIAGNOSTICS_SYMLINK) \
+ 	$(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK)
+ 
+ endif
+ endif
+ 
+ libgdiagnostics.serial = $(LIBGDIAGNOSTICS_FILENAME)
+ 
+ # Tell GNU make to ignore these if they exist.
+ .PHONY: libgdiagnostics
+ 
+ ifneq (,$(findstring mingw,$(target)))
+ # Create import library
+ LIBGDIAGNOSTICS_EXTRA_OPTS = -Wl,--out-implib,$(LIBGDIAGNOSTICS_IMPORT_LIB)
+ else
+ 
+ ifneq (,$(findstring darwin,$(host)))
+ # TODO : Construct a Darwin-style symbol export file.
+ LIBGDIAGNOSTICS_EXTRA_OPTS = -Wl,-compatibility_version,$(LIBGDIAGNOSTICS_VERSION_NUM) \
+ 	-Wl,-current_version,$(LIBGDIAGNOSTICS_VERSION_NUM).$(LIBGDIAGNOSTICS_MINOR_NUM).$(LIBGDIAGNOSTICS_AGE) \
+ 	$(LIBGDIAGNOSTICS_VERSION_SCRIPT_OPTION) \
+ 	$(LIBGDIAGNOSTICS_SONAME_OPTION)
+ else
+ 
+ LIBGDIAGNOSTICS_EXTRA_OPTS = $(LIBGDIAGNOSTICS_VERSION_SCRIPT_OPTION) \
+ 	$(LIBGDIAGNOSTICS_SONAME_OPTION)
+ endif
+ endif
+ 
+ $(LIBGDIAGNOSTICS_FILENAME): $(libgdiagnostics_OBJS) $(CPPLIB) $(EXTRA_GCC_LIBS) $(LIBS) \
+ 	$(LIBDEPS) $(srcdir)/libgdiagnostics.map
+ 	@$(call LINK_PROGRESS,$(INDEX.libgdiagnostics),start)
+ 	+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ -shared \
+ 	     $(libgdiagnostics_OBJS) \
+ 	     $(CPPLIB) $(EXTRA_GCC_LIBS) $(LIBS) \
+ 	     $(LIBGDIAGNOSTICS_EXTRA_OPTS)
+ 	@$(call LINK_PROGRESS,$(INDEX.libgdiagnostics),end)
+ 
+ # Create symlinks when not building for Windows
+ ifeq (,$(findstring mingw,$(target)))
+ 
+ ifeq (,$(findstring darwin,$(host)))
+ # but only one level for Darwin, version info is embedded.
+ $(LIBGDIAGNOSTICS_SONAME_SYMLINK): $(LIBGDIAGNOSTICS_FILENAME)
+ 	ln -sf $(LIBGDIAGNOSTICS_FILENAME) $(LIBGDIAGNOSTICS_SONAME_SYMLINK)
+ endif
+ 
+ $(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK): $(LIBGDIAGNOSTICS_SONAME_SYMLINK)
+ 	ln -sf $(LIBGDIAGNOSTICS_SONAME_SYMLINK) $(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK)
+ endif
+ 
+ # sarif-replay: a command-line tool that uses libgdiagnostics to
+ # replay SARIF files
+ sarif-replay: $(SARIF_REPLAY_OBJS) $(LIBGDIAGNOSTICS_FILENAME)
+ 	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ 	  $(SARIF_REPLAY_OBJS) $(LIBGDIAGNOSTICS_FILENAME) $(LIBS)
+ 
  # Dump a specs file to make -B./ read these specs over installed ones.
  $(SPECS): xgcc$(exeext)
  	$(GCC_FOR_TARGET) -dumpspecs > tmp-specs
*************** s-mlib: $(srcdir)/genmultilib Makefile
*** 2331,2337 ****
  srcextra: gcc.srcextra lang.srcextra
  
  gcc.srcextra: gengtype-lex.cc
! 	-cp -p $^ $(srcdir)
  
  AR_OBJS = file-find.o
  AR_LIBS = @COLLECT2_LIBS@
--- 2509,2515 ----
  srcextra: gcc.srcextra lang.srcextra
  
  gcc.srcextra: gengtype-lex.cc
! 	-sed -e '/^#line/s,".*/gcc/gengtype-lex\.l","gengtype-lex.l",' $^ > $(srcdir)/$^
  
  AR_OBJS = file-find.o
  AR_LIBS = @COLLECT2_LIBS@
*************** collect2$(exeext): $(COLLECT2_OBJS) $(LI
*** 2380,2386 ****
  CFLAGS-collect2.o += -DTARGET_MACHINE=\"$(target_noncanonical)\" \
  	@TARGET_SYSTEM_ROOT_DEFINE@
  
! LTO_WRAPPER_OBJS = lto-wrapper.o collect-utils.o ggc-none.o
  lto-wrapper$(exeext): $(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBDEPS)
  	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o T$@ \
  	   $(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBS)
--- 2558,2566 ----
  CFLAGS-collect2.o += -DTARGET_MACHINE=\"$(target_noncanonical)\" \
  	@TARGET_SYSTEM_ROOT_DEFINE@
  
! LTO_WRAPPER_OBJS = lto-wrapper.o collect-utils.o ggc-none.o lockfile.o \
!   lto-ltrans-cache.o
! 
  lto-wrapper$(exeext): $(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBDEPS)
  	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o T$@ \
  	   $(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBS)
*************** $(common_out_object_file): $(common_out_
*** 2515,2521 ****
  # and compile them.
  
  .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
!   $(INSNEMIT_SEQ_SRC) insn-recog.cc insn-extract.cc insn-output.cc \
    insn-peep.cc insn-attr.h insn-attr-common.h insn-attrtab.cc \
    insn-dfatab.cc insn-latencytab.cc insn-preds.cc \
    $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \
--- 2695,2702 ----
  # and compile them.
  
  .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
!   $(INSNEMIT_SEQ_SRC) insn-recog.h $(INSNRECOG_SEQ_SRC) \
!   insn-extract.cc insn-output.cc \
    insn-peep.cc insn-attr.h insn-attr-common.h insn-attrtab.cc \
    insn-dfatab.cc insn-latencytab.cc insn-preds.cc \
    $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \
*************** simple_rtl_generated_h	= insn-attr.h ins
*** 2544,2550 ****
  
  simple_rtl_generated_c	= insn-automata.cc \
  			  insn-extract.cc insn-output.cc \
! 			  insn-peep.cc insn-recog.cc
  
  simple_generated_h	= $(simple_rtl_generated_h) insn-constants.h
  
--- 2725,2731 ----
  
  simple_rtl_generated_c	= insn-automata.cc \
  			  insn-extract.cc insn-output.cc \
! 			  insn-peep.cc
  
  simple_generated_h	= $(simple_rtl_generated_h) insn-constants.h
  
*************** s-tmp-emit: build/genemit$(build_exeext)
*** 2582,2587 ****
--- 2763,2780 ----
  	  insn-emit-$(id).cc;)
  	$(STAMP) s-tmp-emit
  
+ # Same for genrecog.
+ $(INSNRECOG_SEQ_SRC): s-tmp-recog; @true
+ insn-recog.h: s-tmp-recog; @true
+ s-tmp-recog: build/genrecog$(build_exeext) $(MD_DEPS) insn-conditions.md
+ 	$(RUN_GEN) build/genrecog$(build_exeext) $(md_file) insn-conditions.md \
+ 	  -Hinsn-recog.h \
+ 	  $(addprefix -O,${INSNRECOG_SEQ_TMP})
+ 	$(foreach id, $(INSNRECOG_SPLITS_SEQ), \
+ 	  $(SHELL) $(srcdir)/../move-if-change tmp-recog-$(id).cc \
+ 	  insn-recog-$(id).cc;)
+ 	$(STAMP) s-tmp-recog
+ 
  # gencheck doesn't read the machine description, and the file produced
  # doesn't use the insn-* convention.
  
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 2834,2844 ****
--- 3027,3039 ----
    $(srcdir)/ipa-param-manipulation.h $(srcdir)/ipa-sra.cc \
    $(srcdir)/ipa-modref.h $(srcdir)/ipa-modref.cc \
    $(srcdir)/ipa-modref-tree.h \
+   $(srcdir)/ipa-locality-cloning.cc \
    $(srcdir)/signop.h \
    $(srcdir)/diagnostic-spec.h $(srcdir)/diagnostic-spec.cc \
    $(srcdir)/dwarf2out.h \
    $(srcdir)/dwarf2asm.cc \
    $(srcdir)/dwarf2cfi.cc \
+   $(srcdir)/dwarf2codeview.cc \
    $(srcdir)/dwarf2ctf.cc \
    $(srcdir)/dwarf2out.cc \
    $(srcdir)/ctfc.h \
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 2867,2873 ****
--- 3062,3071 ----
    $(srcdir)/tree-scalar-evolution.cc \
    $(srcdir)/tree-ssa-operands.h \
    $(srcdir)/tree-profile.cc $(srcdir)/tree-nested.cc \
+   $(srcdir)/path-coverage.cc \
+   $(srcdir)/prime-paths.cc \
    $(srcdir)/omp-offload.h \
+   $(srcdir)/omp-general.h \
    $(srcdir)/omp-general.cc \
    $(srcdir)/omp-low.cc \
    $(srcdir)/targhooks.cc $(out_file) $(srcdir)/passes.cc \
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 2894,2900 ****
    $(srcdir)/ipa-strub.cc \
    $(srcdir)/internal-fn.h \
    $(srcdir)/calls.cc \
-   $(srcdir)/omp-general.h \
    $(srcdir)/analyzer/analyzer-language.cc \
    @all_gtfiles@
  
--- 3092,3097 ----
*************** else
*** 3133,3138 ****
--- 3330,3336 ----
  BUILD_CPPLIB = $(CPPLIB) $(LIBIBERTY)
  build/genmatch$(build_exeext): BUILD_LIBDEPS += $(LIBINTL_DEP) $(LIBICONV_DEP)
  build/genmatch$(build_exeext): BUILD_LIBS += $(LIBINTL) $(LIBICONV)
+ build/genmatch.o: BUILD_CPPFLAGS += -DGENMATCH_SELFTESTS
  endif
  
  build/genmatch$(build_exeext) : $(BUILD_CPPLIB) \
*************** s-version: build/genversion$(build_exeex
*** 3243,3249 ****
  # gcov.o needs $(ZLIBINC) added to the include flags.
  CFLAGS-gcov.o += $(ZLIBINC)
  
! GCOV_OBJS = gcov.o json.o
  gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
  	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) \
  		hash-table.o ggc-none.o $(LIBS) $(ZLIB) -o $@
--- 3441,3447 ----
  # gcov.o needs $(ZLIBINC) added to the include flags.
  CFLAGS-gcov.o += $(ZLIBINC)
  
! GCOV_OBJS = gcov.o json.o graphds.o prime-paths.o bitmap.o
  gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
  	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) \
  		hash-table.o ggc-none.o $(LIBS) $(ZLIB) -o $@
*************** TEXI_GCC_FILES = gcc.texi gcc-common.tex
*** 3512,3518 ****
  # the *.texi files have changed.
  TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi		\
  	 contribute.texi makefile.texi configterms.texi options.texi	\
! 	 portability.texi interface.texi passes.texi rtl.texi md.texi	\
  	 $(srcdir)/doc/tm.texi hostconfig.texi fragments.texi	\
  	 configfiles.texi collect2.texi headerdirs.texi funding.texi	\
  	 gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi	\
--- 3710,3716 ----
  # the *.texi files have changed.
  TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi		\
  	 contribute.texi makefile.texi configterms.texi options.texi	\
! 	 portability.texi passes.texi rtl.texi md.texi	\
  	 $(srcdir)/doc/tm.texi hostconfig.texi fragments.texi	\
  	 configfiles.texi collect2.texi headerdirs.texi funding.texi	\
  	 gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi	\
*************** $(build_htmldir)/gccinstall/index.html:
*** 3630,3641 ****
  	$(SHELL) $(srcdir)/doc/install.texi2html
  
  # Regenerate the .opt.urls files from the generated html, and from the .opt
! # files.  Doing so requires all languages that have their own HTML manuals
! # to be enabled.
  .PHONY: regenerate-opt-urls
  OPT_URLS_HTML_DEPS = $(build_htmldir)/gcc/Option-Index.html \
  	$(build_htmldir)/gdc/Option-Index.html \
  	$(build_htmldir)/gfortran/Option-Index.html
  
  regenerate-opt-urls: $(srcdir)/regenerate-opt-urls.py $(OPT_URLS_HTML_DEPS)
  	$(srcdir)/regenerate-opt-urls.py $(build_htmldir) $(shell dirname $(srcdir))
--- 3828,3839 ----
  	$(SHELL) $(srcdir)/doc/install.texi2html
  
  # Regenerate the .opt.urls files from the generated html, and from the .opt
! # files.
  .PHONY: regenerate-opt-urls
  OPT_URLS_HTML_DEPS = $(build_htmldir)/gcc/Option-Index.html \
  	$(build_htmldir)/gdc/Option-Index.html \
  	$(build_htmldir)/gfortran/Option-Index.html
+ $(OPT_URLS_HTML_DEPS): %/Option-Index.html: %/index.html
  
  regenerate-opt-urls: $(srcdir)/regenerate-opt-urls.py $(OPT_URLS_HTML_DEPS)
  	$(srcdir)/regenerate-opt-urls.py $(build_htmldir) $(shell dirname $(srcdir))
*************** regenerate-opt-urls: $(srcdir)/regenerat
*** 3645,3650 ****
--- 3843,3860 ----
  regenerate-opt-urls-unit-test: $(OPT_URLS_HTML_DEPS)
  	$(srcdir)/regenerate-opt-urls.py $(build_htmldir) $(shell dirname $(srcdir)) --unit-test
  
+ # Regenerate attr-urls.def from the generated html.
+ .PHONY: regenerate-attr-urls
+ ATTR_URLS_HTML_DEPS = $(build_htmldir)/gcc/Concept-and-Symbol-Index.html
+ 
+ regenerate-attr-urls: $(srcdir)/regenerate-attr-urls.py $(ATTR_URLS_HTML_DEPS)
+ 	$(srcdir)/regenerate-attr-urls.py $(build_htmldir) $(shell dirname $(srcdir))
+ 
+ # Run the unit tests for regenerate-attr-urls.py
+ .PHONY: regenerate-attr-urls-unit-test
+ regenerate-attr-urls-unit-test: $(ATTR_URLS_HTML_DEPS)
+ 	$(srcdir)/regenerate-attr-urls.py $(build_htmldir) $(shell dirname $(srcdir)) --unit-test
+ 
  MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 \
             doc/fsf-funding.7 doc/gcov-tool.1 doc/gcov-dump.1 \
  	   $(if $(filter yes,@enable_lto@),doc/lto-dump.1)
*************** ifeq ($(enable_plugin),yes)
*** 3799,3804 ****
--- 4009,4018 ----
  install: install-plugin
  endif
  
+ ifeq ($(enable_libgdiagnostics),yes)
+ install: install-libgdiagnostics
+ endif
+ 
  install-strip: override INSTALL_PROGRAM = $(INSTALL_STRIP_PROGRAM)
  ifneq ($(STRIP),)
  install-strip: STRIPPROG = $(STRIP)
*************** installdirs:
*** 3826,3831 ****
--- 4040,4046 ----
  	$(mkinstalldirs) $(DESTDIR)$(includedir)
  	$(mkinstalldirs) $(DESTDIR)$(infodir)
  	$(mkinstalldirs) $(DESTDIR)$(man1dir)
+ 	$(mkinstalldirs) $(DESTDIR)$(man3dir)
  	$(mkinstalldirs) $(DESTDIR)$(man7dir)
  
  PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
*************** install-driver: installdirs xgcc$(exeext
*** 3975,3980 ****
--- 4190,4239 ----
  	  fi; \
  	fi
  
+ libgdiagnostics.install-headers: installdirs
+ 	$(INSTALL_DATA) $(srcdir)/libgdiagnostics.h \
+ 	  $(DESTDIR)$(includedir)/libgdiagnostics.h
+ 	$(INSTALL_DATA) $(srcdir)/libgdiagnostics++.h \
+ 	  $(DESTDIR)$(includedir)/libgdiagnostics++.h
+ 
+ ifneq (,$(findstring mingw,$(target)))
+ libgdiagnostics.install-common: installdirs libgdiagnostics.install-headers
+ # Install import library
+ 	$(INSTALL_PROGRAM) $(LIBGDIAGNOSTICS_IMPORT_LIB) \
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_IMPORT_LIB)
+ # Install DLL file
+ 	$(INSTALL_PROGRAM) $(LIBGDIAGNOSTICS_FILENAME) \
+ 	  $(DESTDIR)$(bindir)/$(LIBGDIAGNOSTICS_FILENAME)
+ 
+ else
+ ifneq (,$(findstring darwin,$(host)))
+ # but only one level for Darwin
+ 
+ libgdiagnostics.install-common: installdirs libgdiagnostics.install-headers
+ 	$(INSTALL_PROGRAM) $(LIBGDIAGNOSTICS_FILENAME) \
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_FILENAME)
+ 	ln -sf \
+ 	  $(LIBGDIAGNOSTICS_SONAME_SYMLINK)\
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK)
+ 
+ else
+ libgdiagnostics.install-common: installdirs libgdiagnostics.install-headers
+ 	$(INSTALL_PROGRAM) $(LIBGDIAGNOSTICS_FILENAME) \
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_FILENAME)
+ 	ln -sf \
+ 	  $(LIBGDIAGNOSTICS_FILENAME) \
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_SONAME_SYMLINK)
+ 	ln -sf \
+ 	  $(LIBGDIAGNOSTICS_SONAME_SYMLINK)\
+ 	  $(DESTDIR)$(libdir)/$(LIBGDIAGNOSTICS_LINKER_NAME_SYMLINK)
+ endif
+ endif
+ 
+ SARIF_REPLAY_INSTALL_NAME := $(shell echo sarif-replay|sed '$(program_transform_name)')
+ install-libgdiagnostics: libgdiagnostics.install-common sarif-replay
+ 	-rm -f $(DESTDIR)$(bindir)/$(SARIF_REPLAY_INSTALL_NAME)$(exeext)
+ 	-$(INSTALL_PROGRAM) sarif-replay $(DESTDIR)$(bindir)/$(SARIF_REPLAY_INSTALL_NAME)$(exeext)
+ 
  # Install the info files.
  # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
  # to do the install.
diff -Nrcpad gcc-14.2.0/gcc/README.Portability gcc-15.1.0/gcc/README.Portability
*** gcc-14.2.0/gcc/README.Portability	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/README.Portability	Fri Apr 25 08:18:00 2025
***************
*** 1,4 ****
! Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is intended to contain a few notes about writing C code
  within GCC so that it compiles without error on the full range of
--- 1,4 ----
! Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
  This file is intended to contain a few notes about writing C code
  within GCC so that it compiles without error on the full range of
diff -Nrcpad gcc-14.2.0/gcc/acinclude.m4 gcc-15.1.0/gcc/acinclude.m4
*** gcc-14.2.0/gcc/acinclude.m4	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/acinclude.m4	Fri Apr 25 08:18:00 2025
***************
*** 1,4 ****
! dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
--- 1,4 ----
! dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
*************** AC_DEFINE_UNQUOTED(HAVE_INITFINI_ARRAY_S
*** 442,447 ****
--- 442,464 ----
    [Define 0/1 if .init_array/.fini_array sections are available and working.])
  ])
  
+ dnl Check whether the host supports symbol aliases.
+ AC_DEFUN([gcc_CHECK_ATTRIBUTE_ALIAS], [
+   AC_CACHE_CHECK([whether the host/build supports symbol aliases],
+                  gcc_cv_have_attribute_alias, [
+   if test "x${build}" = "x${host}"; then
+     AC_TRY_LINK([
+ extern "C" void foo(void) { }
+ extern void bar(void) __attribute__((alias("foo")));],
+     [bar();], gcc_cv_have_attribute_alias=yes, gcc_cv_have_attribute_alias=no)
+   else
+     gcc_cv_have_attribute_alias=no
+   fi])
+   if test $gcc_cv_have_attribute_alias = yes; then
+     AC_DEFINE(HAVE_ATTRIBUTE_ALIAS, 1,
+       [Define to 1 if the host/build supports __attribute__((alias(...))).])
+   fi])
+ 
  dnl # gcc_GAS_FLAGS
  dnl # Used by gcc_GAS_CHECK_FEATURE 
  dnl #
diff -Nrcpad gcc-14.2.0/gcc/aclocal.m4 gcc-15.1.0/gcc/aclocal.m4
*** gcc-14.2.0/gcc/aclocal.m4	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/aclocal.m4	Fri Apr 25 08:18:00 2025
*************** m4_include([../ltsugar.m4])
*** 68,74 ****
  m4_include([../ltversion.m4])
  m4_include([../lt~obsolete.m4])
  m4_include([../config/acx.m4])
- m4_include([../config/ax_lib_socket_nsl.m4])
  m4_include([../config/cet.m4])
  m4_include([../config/codeset.m4])
  m4_include([../config/depstand.m4])
--- 68,73 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog gcc-15.1.0/gcc/ada/ChangeLog
*** gcc-14.2.0/gcc/ada/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/gcc/ada/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,275 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-06-10  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/114708
! 	* exp_util.adb (Finalize_Address): Add guard for incomplete types.
  
! 2024-06-10  Javier Miranda  <miranda@adacore.com>
  
! 	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support
! 	for access-to-subprogram parameter types.
! 	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
! 	Add dummy BIP parameters to access-to-subprogram types
! 	that may reference a function that has BIP parameters.
  
! 2024-05-29  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/115270
! 	* Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
! 	the 32-bit library.
! 	(SPARC/Linux): Likewise.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-15  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_aspects.rst
! 	(Exceptional_Cases): Add description for aspect.
! 	* doc/gnat_rm/implementation_defined_pragmas.rst
! 	(Exceptional_Cases): Add description for pragma.
  	* gnat_rm.texi: Regenerate.
  	* gnat_ugn.texi: Regenerate.
  
! 2024-03-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/113979
! 	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
! 	call Apply_Predicate_Check on the resulting access value if needed.
  
! 2024-02-26  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/113893
! 	* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
! 	for a local designated type.
! 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
! 	to false if no finalization master is attached to an access type
! 	and assert that it is anonymous in this case.
! 	* sem_res.adb (Resolve_Allocator): Mention that the object might
! 	not be finalized at all in the warning given when the type is an
! 	anonymous access-to-controlled type.
  
! 2024-01-23  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* gnatvsn.ads: Update year.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
! 	TYPE_CANONICAL of types when it comes to aliasing.
! 	* gcc-interface/utils.cc (relate_alias_sets): Likewise.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
! 	separate FLD local variable to hold the first field of the fat
! 	pointer type being built.
! 	* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
! 	the first two parameters.
! 	* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.
  
! 2024-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* sem_attr.adb: avoid marking a use of the Address attribute
! 	as a modification of its prefix.
  
! 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
  
! 	* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
! 	tests to tests using "No" (in two places).
  
! 2024-01-09  Bob Duff  <duff@adacore.com>
  
! 	* sem_ch12.adb (Instantiate_Type): Make the relevant error message
! 	conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
! 	cleanup.
  
! 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
  
! 	* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
! 	whether the aggregate is an indexed aggregate, setting a flag
! 	(Is_Indexed_Aggregate), which is tested to have proper separation
! 	of treatment for the Add_Unnamed
! 	(for positional aggregates) and New_Indexed (for indexed
! 	aggregates) cases. In the code generating associations for indexed
! 	aggregates, remove the code for Expressions cases entirely, since
! 	the code for indexed aggregates is governed by the presence of
! 	Component_Associations, and add an assertion that Expressions must
! 	be Empty. Also, exclude empty aggregates from entering that code.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* rtsfind.ads (RE_Id): Remove RE_Attach.
! 	(RE_Unit_Table): Likewise.
! 	* libgnat/s-finmas.ads (Attach): Delete.
! 	* libgnat/s-finmas.adb (Attach): Likewise.
  
! 2024-01-09  Tucker Taft  <taft@adacore.com>
  
! 	* pprint.adb (List_Name): Check for "Box_Present" when displaying
! 	a list, and emit "<>" if returns True.
! 	* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
! 	parameter is from a package that was mentioned in a limited with
! 	clause, and make no further checks, since this check routine does
! 	not have all the logic to check such a usage.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
! 	with itypes that are class-wide subtypes.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
! 	(Atomic_Store_8): New instantiated procedure.
! 	(Atomic_Store_16): Likewise.
! 	(Atomic_Store_32): Likewise.
! 	(Atomic_Store_64): Likewise.
! 	* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
! 	(Atomic_Store_8): New instantiated procedure.
! 	(Atomic_Store_16): Likewise.
! 	(Atomic_Store_32): Likewise.
! 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
! 	support for __atomic_store_n and __sync_bool_compare_and_swap_n.
! 	* gcc-interface/gigi.h (list_second): New inline function.
  
! 2024-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
! 	the type of the formals with its corresponding record in
! 	init-procs.
! 	* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
! 	a procedure that denotes a renaming of an entry.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
! 	itype declarations.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
! 	flag by default in GNATprove mode.
! 	* sem_res.adb (Resolve_Call): Only look at flag which is cleared
! 	when inlined subprogram is detected to be recursive.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
! 	Remove detection of recursive calls.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
! 	dead code.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
! 	* sem_ch8.adb (Find_Direct_Name): Likewise.
  
! 2024-01-09  Steve Baird  <baird@adacore.com>
  
! 	* sem_util.adb (Enclosing_Declaration): Instead of returning a
! 	subprogram specification node, return its parent (which is
! 	presumably a subprogram declaration).
! 	* contracts.adb (Insert_Stable_Property_Check): Remove code
! 	formerly needed to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
! 	* exp_attr.adb (In_Available_Context): Remove code formerly needed
! 	to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
! 	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
! 	needed to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
  
! 2024-01-09  Steve Baird  <baird@adacore.com>
  
! 	* sem_ch8.adb (Check_Constrained_Object): Before updating the
! 	subtype mark of an object renaming declaration by calling Rewrite,
! 	first check whether the destination of the Rewrite call exists.
! 	* atree.adb (Copy_Slots): Return without performing any updates if
! 	Destination equals Empty or Error, or if Source equals Empty. Any
! 	of those conditions indicates an error case.
! 	* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
! 	errors.
! 	* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
! 	not pass Error as destination in a call to Rewrite.
! 	(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
! 	or Empty as destination in a call to Rewrite.
  
! 2024-01-09  Joffrey Huguet  <huguet@adacore.com>
  
! 	* libgnat/i-cstrin.ads (Update): Fix precondition.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
! 	call to Transform_BIP_Assignment as well as the procedure.
  
! 2024-01-09  Bob Duff  <duff@adacore.com>
  
! 	* lib-xref.adb (Generate_Reference): Do not count it as a read
! 	reference if we're calling a TSS.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_aspects.rst,
! 	doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
! 	Always_Terminates.
  	* gnat-style.texi: Regenerate.
  	* gnat_rm.texi: Regenerate.
- 	* gnat_ugn.texi: Regenerate.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/78207
! 	* libgnat/g-regexp.ads: Fix outdated comment.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/112781
! 	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
! 	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
! 	(Is_Function_Call_With_BIP_Formals): New predicate.
! 	(Is_Build_In_Place_Function_Call): Restore original semantics.
! 	(Expand_Call_Helper): Adjust conditions guarding the calls to
! 	Add_Dummy_Build_In_Place_Actuals to above renaming.
! 	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
! 	(Expand_Simple_Function_Return): Likewise.  Move the assertion
! 	to after the transformation into an extended return statement.
! 	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
! 	(Make_Build_In_Place_Call_In_Assignment): Likewise.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/112781
! 	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
! 	consistently to retrieve the ancestor for a derived type.
! 	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
! 	consistently before accessing Designated_Type.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
! 	assertion for regular pointer types.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* gcc-interface/lang.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
  
! 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
  
  
! Copyright (C) 2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 1,1246 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/119643
! 	* sem_ch8.adb (Inherit_Renamed_Profile): Add guard against the
! 	peculiarities of Natural and Positive.
  
! 2025-04-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/utils.cc (convert) <POINTER_TYPE>: Use fold_convert
! 	to convert between thin pointers.  If the source is a thin pointer
! 	with zero offset from the base and the target is a pointer to its
! 	array, displace the pointer after converting it.
! 	* gcc-interface/utils2.cc (build_unary_op) <ATTR_ADDR_EXPR>: Use
! 	fold_convert to convert the address before displacing it.
  
! 2025-04-04  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnat/a-ngcoar.adb (Eigensystem): Adjust notation and fix the
! 	layout of the real symmetric matrix in the main comment.  Adjust
! 	the layout of the associated code accordingly and correctly turn
! 	the 2Nx1 real vectors into Nx1 complex ones.
! 	(Eigenvalues): Minor similar tweaks.
! 	* libgnat/a-ngrear.adb (Jacobi): Minor tweaks in the main comment.
! 	Adjust notation and corresponding parameter names of functions.
! 	Fix call to Unit_Matrix routine.  Adjust the comment describing
! 	the various kinds of iterations to match the implementation.
  
! 2025-03-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): Add pragma
! 	Linker_Constructor for the procedure.
  
! 2025-03-25  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/119440
! 	* gcc-interface/Make-lang.in (GCC_LINK): Filter out -pie in stage 1
! 	(GCC_LLINK): Likewise.
! 	* gcc-interface/Makefile.in (COMPILER): Delete and replace by CC.
! 	(COMPILER_FLAGS): Delete.
! 	(ALL_COMPILERFLAGS): Delete and replace by ALL_CFLAGS.
! 	(ALL_ADAFLAGS): Move around.
! 	(enable_host_pie): New substituted variable.
! 	(LD_PICFLAG): Likewise.  Do not add it to TOOLS_LIBS.
! 	(LIBIBERTY): Test enable_host_pie.
! 	(LIBGNAT): Likewise and use libgnat_pic.a if yes.
! 	(TOOLS_FLAGS_TO_PASS): Pass $(PICFLAG) under CFLAGS & $(LD_PICFLAG)
! 	under LDFLAGS.  Also pass through ADA_CFLAGS.
! 	(common-tools): Add $(ALL_CFLAGS) $(ADA_CFLAGS) to the --GCC string
! 	of $(GNATLINK) commands.
! 	(../../gnatdll$(exeext)): Likewise.
! 	(gnatmake-re): Likewise.
! 	(gnatlink-re): Likewise.
! 	(gnatlib-shared-dual): Remove all the object files at the end.
! 
! 2025-03-19  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gnatvsn.adb (Gnat_Free_Software): Fix message formatting.
! 
! 2025-03-19  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: Set
! 	the may_alias attribute if a specific GCC type is built.
! 
! 2025-03-19  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gen_il-gen-gen_nodes.adb (N_Formal_Package_Declaration): Use
! 	N_Declaration instead of Node_Kind as ancestor.
! 	* sem_ch12.adb (Get_Formal_Entity): Remove obsolete alternative.
! 	(Instantiate_Formal_Package): Take into account the abbreviated
! 	instances in the main loop running over the actuals of the local
! 	package created for the formal package.
! 
! 2025-02-04  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/118731
! 	* sem_aggr.adb (Resolve_Iterated_Association): Add missing guard.
! 
! 2025-02-01  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/118712
! 	* sem_warn.adb (Check_References): Deal with small adjustments of
! 	references.
! 
! 2025-01-31  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/utils.cc (gnat_pushdecl): Clear TREE_PUBLIC on
! 	functions really nested in another function.
! 
! 2025-01-22  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* gcc-interface/lang-specs.h: Replace %{nostdinc*} %{nostdlib*}
! 	with %{nostdinc} %{nostdlib}.
! 
! 2025-01-14  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/118459
! 	* libgnat/s-objrea.ads (Object_Arch): Add S390 and RISCV.
! 	* libgnat/s-objrea.adb (EM_S390): New named number.
! 	(EM_RISCV): Likewise.
! 	(ELF_Ops.Initialize): Deal with EM_S390 and EM_RISCV.
! 	(Read_Address): Deal with S390 and RISCV.
! 
! 2025-01-13  Pascal Obry  <obry@adacore.com>
! 
! 	* doc/gnat_ugn/platform_specific_information.rst: Update.
! 	* gnat_ugn.texi: Regenerate.
! 
! 2025-01-13  Javier Miranda  <miranda@adacore.com>
! 
! 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Restore calls
! 	to Preanalyze_Spec_Expression that were replaced by calls to
! 	Preanalyze_And_Resolve. Add documentation.
! 	(Check_Aspect_At_Freeze_Point): Ditto.
! 
! 2025-01-13  Pascal Obry  <obry@adacore.com>
! 
! 	* mdll.adb: For the created DLL to be relocatable we do not want to use
! 	the base file name when calling gnatdll.
! 	* gnatdll.adb: Removes option -d which is not working anymore. And
! 	when using a truly relocatable DLL the base-address has no real
! 	meaning. Also reword the usage string for -d as we do not want to
! 	specify relocatable as gnatdll can be used to create both
! 	relocatable and non relocatable DLL.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* libgnat/a-strunb.ads: Remove redundant parentheses inside NOT
! 	operators.
! 
! 2025-01-13  Javier Miranda  <miranda@adacore.com>
! 
! 	* sem_util.adb (Build_Actual_Subtype_Of_Component): No action
! 	under preanalysis.
! 	* sem_ch5.adb (Set_Assignment_Type): If the right-hand side contains
! 	target names, expansion has been disabled to prevent expansion that
! 	might move target names out of the context of the assignment statement.
! 	Restore temporarily the current compilation mode so that the actual
! 	subtype can be built.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* par-ch4.adb (P_Factor): Warn when the operand of a unary operator
! 	doesn't require parentheses.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* libgnat/s-genbig.adb: Remove redundant parentheses in comments.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* checks.adb, exp_dist.adb, exp_imgv.adb, exp_util.adb,
! 	libgnarl/a-reatim.adb, libgnat/a-coinve.adb, libgnat/a-nbnbre.adb,
! 	libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb, libgnat/a-ngrear.adb,
! 	libgnat/a-strbou.ads, libgnat/a-strfix.ads, libgnat/a-strsea.adb,
! 	libgnat/a-strsea.ads, libgnat/a-strsup.ads,
! 	libgnat/a-strunb__shared.ads, libgnat/g-alleve.adb,
! 	libgnat/g-spitbo.adb, libgnat/s-aridou.adb, libgnat/s-arit32.adb,
! 	libgnat/s-dourea.ads, libgnat/s-genbig.adb, libgnat/s-imager.adb,
! 	libgnat/s-statxd.adb, libgnat/s-widthi.adb, sem_attr.adb, sem_ch10.adb,
! 	sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_dim.adb, sem_prag.adb,
! 	sem_res.adb, uintp.adb: Remove redundant parentheses inside NOT and ABS
! 	operators.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* par-ch3.adb (P_Discrete_Range): Detect redundant parentheses in the
! 	lower bound like in the upper bound.
! 
! 2025-01-13  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* sem_aggr.adb (Resolve_Aggregate): Add another condition to prevent rewriting
! 	an aggregate whose type is an array of characters, testing for the presence of
! 	predicates on the component type.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch4.adb: (Expand_N_Not_In): Preserve Alternatives in expanded
! 	membership operator just like preserving Right_Opnd (though only
! 	one of these fields is present at a time).
! 	* par-ch4.adb (P_Membership_Test): Remove redundant setting of fields
! 	to their default values.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* par-ch3.adb (P_Discrete_Range): Replace N_Subexpr, which was catching
! 	all subexpressions, with kinds that catch nodes that require
! 	parentheses to become "simple expressions".
! 
! 2025-01-13  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* libgnat/s-valrea.adb (Large_Powfive) [2 parameters]: Add a couple
! 	of additional comments.
! 
! 2025-01-13  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* par-ch4.adb (P_Relation): Prevent Expr_Form to be overwritten when
! 	parsing the raise expression itself.
! 	(P_Simple_Expression): Fix manipulation of Expr_Form.
! 
! 2025-01-10  squirek  <squirek@adacore.com>
! 
! 	* accessibility.adb:
! 	(Innermost_master_Scope_Depth): Add special case for expressions
! 	within library level subprograms.
! 
! 2025-01-10  Marc Poulhiès  <poulhies@adacore.com>
! 
! 	* env.h: Remove last empty line.
! 
! 2025-01-10  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* contracts.adb (Build_Call_Helper_Decl): Tune whitespace.
! 	* exp_attr.adb (Analyze_Attribute): Set Of_Present while
! 	creating the node; reorder setting Subtype_Indication to match the
! 	syntax order.
! 	* exp_ch3.adb (Build_Equivalent_Aggregate): Likewise for Box_Present
! 	and Expression properties.
! 	* sem_ch12.adb (Analyze_Formal_Derived_Type): Set type properties
! 	when creating the nodes.
! 	* sem_ch3.adb (Check_Anonymous_Access_Component): Likewise.
! 
! 2025-01-10  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* gen_il-gen-gen_nodes.adb (Gen_Nodes): Change Is_Effective_Use_Clause
! 	from syntactic to semantic property.
! 
! 2025-01-10  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch3.adb (Predef_Spec_Or_Body): Add explicit parameter
! 	associations, because now the Empty_List actual parameter would be
! 	confused as being for the Aspect_Specifications formal parameter.
! 	* gen_il-gen-gen_nodes.adb (Gen_Nodes): Reorder syntactic fields.
! 	* sem_util.adb (Declare_Indirect_Temp): Add explicit parameter
! 	association, because now the parameter will be interpreted as a
! 	subpool handle name.
! 
! 2025-01-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/18765
! 	* debug.adb (d_q): Document new usage.
! 	* sem_ch6.adb (New_Overloaded_Entity): Apply the special processing
! 	to all equality operators whose base result type is Boolean, but do
! 	not enforce the new Ada 2012 freezing rule if the result type is a
! 	proper subtype of it and the -gnatd_q switch is specified.
! 
! 2025-01-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/118274
! 	* sem_ch4.adb (Check_Arithmetic_Pair.Has_Fixed_Op): Use the original
! 	node of the operator to identify the case of an expanded name whose
! 	prefix is the package Standard.
! 
! 2025-01-09  squirek  <squirek@adacore.com>
! 
! 	* libgnat/a-comutr.adb, libgnat/a-comutr.ads:
! 	Move the declarations of iterator types into the specification and
! 	add additional comments.
! 
! 2025-01-09  Javier Miranda  <miranda@adacore.com>
! 
! 	* freeze.adb (Freeze_Expr_Types): Reverse patch; that is, restore
! 	calls to Preanalyze_Spec_Expression instead of Preanalyze_And_Resolve
! 	for the sake of consistency with Analyze_Expression_Function. Patch
! 	suggested by Eric Botcazou.
! 	* exp_put_image.adb (Image_Should_Call_Put_Image): Ensure that
! 	function Defining_Identifier is called with a proper node to
! 	avoid internal assertion failure.
! 
! 2025-01-07  Marc Poulhiès  <poulhies@adacore.com>
! 
! 	* libgnat/a-calcon.ads: Adjust.
! 	* libgnat/a-calend.ads: Adjust.
! 
! 2025-01-07  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS):
! 	Drop g-cpp, g-cppexc and g-cppstd.
! 
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/trans.cc (Call_to_gnu): Always use the return slot
! 	optimization if the parent node is an initialization statement.
! 	(gnat_to_gnu) <N_Assignment_Statement>: Build an INIT_EXPR instead
! 	of a MODIFY_EXPR if this is an initialization statement.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* gen_il-fields.ads (Opt_Field_Enum): Remove flag.
! 	* gen_il-gen-gen_nodes.adb (N_Attribute_Definition_Clause): Remove
! 	field.
! 	* sem_ch13.adb (Validate_Address_Clauses): Remove read of the flag.
! 	* sinfo.ads (Address_Warning_Posted): Remove flag description.
! 
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_aggr.adb (Packed_Array_Aggregate_Handled): Remove declaration
! 	and handler for Not_Handled local exception. Check the return value
! 	of Get_Component_Val instead.
! 	(Get_Component_Val): Return No_Uint instead of raising Not_Handled.
! 
! 2025-01-07  Javier Miranda  <miranda@adacore.com>
! 
! 	* exp_util.adb (Insert_Actions): Document behavior under strict
! 	preanalysis.
! 	* sem.ads (In_Strict_Preanalysis): New subprogram.
! 	(Preanalysis_Active): Replace 'and' operator by 'and then'.
! 	* sem.adb (In_Strict_Preanalysis): Ditto.
! 	* sem_attr.adb (Check_Dereference): Replace In_Spec_Expression
! 	occurrence by call to Preanalysis_Active, and document it.
! 	(Resolve_Attribute [Atribute_Access]): Ditto.
! 	(Eval_Attribute): No evaluation under strict preanalysis.
! 	(Validate_Static_Object_Name): No action under strict preanalysis.
! 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Replace
! 	calls to Preanalyze_Spec_Expression by calls to Preanalyze_And_Resolve.
! 	(Check_Aspect_At_Freeze_Point): Ditto.
! 	(Resolve_Aspect_Expressions [Dynamic/Static/Predicate aspects]): Code
! 	cleanup adjusting the code to emulate Preanalyze_And_Resolve, instead
! 	of Preanalyze_Spec_Expression.
! 	(Resolve_Aspect_Expressions [CPU/Interrupt_Priority/Priority/
! 	Storage_Size aspects]): Replace calls to Preanalyze_Spec_Expression
! 	by call to Preanalyze_And _Resolve.
! 	* sem_ch3.adb (Analyze_Object_Declaration): Replace In_Spec_Expression
! 	occurrence by call to Preanalysis_Active.
! 	(Find_Type_Of_Object): Add documentation.
! 	* sem_ch4.adb (Analyze_Case_Expression): Replace In_Spec_Expression
! 	occurrence by call to Preanalysis_Active.
! 	* sem_ch6.adb (Analyze_Expression_Function): Minor code reorganization
! 	moving the code preanalyzing the expression after the new body has
! 	been inserted in the tree to ensure that its Parent attribute is
! 	available for preanalysis.
! 	* sem_cat.adb (Validate_Static_Object_Name): No action under strict
! 	preanalysis.
! 	* sem_elab.adb (Check_For_Eliminated_Subprogram): Replace In_Spec_Expression
! 	occurrence by call to Preanalysis_Active.
! 	* sem_eval.adb (Eval_Intrinsic_Call [Name_Enclosing_Entity]): Ditto.
! 	* sem_elim.adb (Check_For_Eliminated_Subprogram): Ditto.
! 	* sem_res.adb (Resolve_Entity_Name): Ditto.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* repinfo-input.adb (Decode_Name, Read_Name_With_Prefix): Use constant
! 	overlay with pragma Import.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_disp.adb (Write_DT): Add guards that prevent crashes on illegal
! 	node numbers.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* diagnostics-pretty_emitter.adb (Get_Last_Line_Char): Fix whitespace.
! 	* sem_aggr.adb (Resolve_Array_Aggregate): Fix style.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_util.adb (Is_Null_Record_Definition): Remove check for
! 	Component_List being present after using it; replace check for
! 	component item being a component declaration with an assertion;
! 	fix style in comment.
! 
! 2025-01-07  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Fix abort
! 	deferral.
! 
! 2025-01-07  Steve Baird  <baird@adacore.com>
! 
! 	* gen_il-fields.ads: add new Renames_Limited_View field.
! 	* gen_il-gen-gen_entities.adb: add Renames_Limited_View flag for
! 	packages.
! 	* einfo.ads: add comment documenting Renames_Limited_View flag.
! 	* sem_ch8.adb (Analyze_Package_Renaming): Set new Renames_Limited_View
! 	flag. Test new Renames_Limited_View flag instead of calling
! 	Has_Limited_With. If Has_Limited_With is True, that just means
! 	that somebody, sometime during this compilation needed to
! 	reference the limited view of the package; so that function
! 	returns True too often to be used here.
! 	(Find_Expanded_Name): Test new Renames_Limited_View flag instead of
! 	calling Has_Limited_With.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* contracts.adb (Inherit_Pragma): Don't set flag Is_Inherited_Pragma.
! 	* gen_il-fields.ads (Opt_Field_Enum): Remove field identifier.
! 	* gen_il-gen-gen_nodes.adb (N_Pragma): Remove field from node.
! 	* sinfo.ads (Is_Inherited_Pragma): Remove field description.
! 	(N_Pragma): Remove field reference.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_prag.adb (Analyze_Attribute): Replace runtime conversion
! 	with existing constant.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_attr.adb (Analyze_Attribute): Simplify logic.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_attr.adb (Expand_N_Attribute_Reference): Remove explicit
! 	handling of attributes related to Ada 2012 iterators.
! 	* sem_attr.adb (Analyze_Attribute, Eval_Attribute): Likewise;
! 	move attribute Reduce according to alphabetic order.
! 	* snames.adb-tmpl (Get_Attribute_Id): Add support for new internal
! 	attributes.
! 	* snames.ads-tmpl: Recognize names of new internal attributes.
! 	(Attribute_Id): Recognize new internal attributes.
! 	(Internal_Attribute_Id): Likewise.
! 	(Is_Internal_Attribute_Name): Avoid duplication in comment.
! 
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* accessibility.adb (First_Selector): Remove redundant and locally
! 	inconsistent parenthesis.
! 	(Check_Return_Construct_Accessibility): Remove qualifier from list
! 	operation.
! 	* sem_util.adb (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post):
! 	Likewise.
! 
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch7.ads (Store_After_Actions_In_Scope_Without_Analysis): New
! 	procedure declaration.
! 	* exp_ch7.adb (Store_New_Actions_In_Scope): New procedure.
! 	(Store_Actions_In_Scope): Call Store_New_Actions_In_Scope when the
! 	target list is empty.
! 	(Store_After_Actions_In_Scope_Without_Analysis): New procedure body.
! 	* exp_aggr.adb (Expand_Container_Aggregate): For a declaration that
! 	is wrapped in a transient scope, also defer the analysis of the new
! 	code until after the declaration is analyzed.
! 
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* libgnat/s-powflt.ads (Maxpow_Exact): Minor comment fix.
! 	* libgnat/s-powlfl.ads (Maxpow_Exact): Likewise.
! 	* libgnat/s-powllf.ads (Maxpow_Exact): Likewise.
! 	* libgnat/s-valrea.adb (Large_Powfive) [1 parameter]: Exit the loop
! 	as soon as the result saturates to +Inf.
! 	(Large_Powfive) [2 parameters]: Likewise.
! 
! 2025-01-07  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* libgnat/system-vxworks-ppc-rtp-smp.ads: Drop
! 	--specs=vxworks-ppc-link.spec from Linker_Options.
! 	* vxworks-smp-ppc-link.spec: Delete.
! 
! 2025-01-07  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* atree.adb (Parent_Or_List_Containing): New function.
! 	* atree.ads (Parent_Or_List_Containing): Likewise.
! 	* gen_il-fields.ads: Add new field.
! 	* gen_il-gen-gen_nodes.adb (Gen_Nodes): Extend handled sequence of
! 	statements node.
! 	* par-ch11.adb (P_Handled_Sequence_Of_Statements, P_Exception_Handler):
! 	Add new syntactic construct.
! 	* par-ch5.adb (P_Sequence_Of_Statements): Likewise.
! 	* par.adb: Likewise.
! 	* par-util.adb (Check_Future_Keyword): Warn that "finally" becomes a
! 	reserved word with extensions.
! 	* scans.adb (Initialize_Ada_Keywords): Add new reserved word.
! 	* snames.adb-tmpl: Likewise.
! 	* snames.ads-tmpl: Likewise.
! 	* scans.ads: Likewise.
! 	* sem_ch11.adb (Analyze_Handled_Statements): Adapt to new node field.
! 	* sem_ch5.adb (Analyze_Exit_Statement): Add legality check.
! 	(Analyze_Goto_Statement): Likewise.
! 	* sem_ch6.adb (Analyze_Return_Statement): Likewise.
! 	* sinfo-utils.adb (Lowest_Common_Ancestor, Destroy_Element): New
! 	subprograms.
! 	* sinfo-utils.ads (Lowest_Common_Ancestor): New function.
! 	* sinfo.ads: Add documentation for new field.
! 	* xsnamest.adb: Fix typo in comment.
! 	* doc/gnat_rm/gnat_language_extensions.rst: Document new extension.
! 	* warnsw.adb: Add new option.
! 	* warnsw.ads: Likewise.
! 	* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Add abort
! 	deferral to finally part.
  	* gnat_rm.texi: Regenerate.
  	* gnat_ugn.texi: Regenerate.
+ 	* gcc-interface/trans.cc (Handled_Sequence_Of_Statements_to_gnu):
+ 	Handle finally statements.
  
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_aggr.adb (Expand_Array_Aggregate): Do not exclude aggregates
! 	of bit-packed array types in assignments from in-place expansion.
  
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Reject
! 	references to attribute Result.
  
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Move check
! 	from GNATprove backend to GNAT frontend.
  
! 2025-01-07  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_prag.adb (Analyze_Exceptional_Contract, Analyze_Variant): Fix
! 	comments.
  
! 2025-01-07  Steve Baird  <baird@adacore.com>
  
! 	* exp_put_image.adb (Image_Should_Call_Put_Image): Cope with the case
! 	where the attribute prefix for an Image attribute reference
! 	denotes an Itype constructed for a fixed point type. Calling
! 	Has_Aspect with such an Itype misses applicable aspect
! 	specifications; we need to look on the right list. This comes up
! 	if the prefix of the attribute reference is
! 	Some_Fixed_Point_Type'Base.
  
! 2025-01-07  Gary Dismukes  <dismukes@adacore.com>
  
! 	* sem_ch12.adb (Analyze_One_Association): In the case of a formal type
! 	that has a Default_Subtype_Mark that does not have its Entity field set,
! 	this means the default refers to another formal type of the same generic
! 	formal part, so locate the matching subtype in the Result_Renamings and
! 	set Match's Entity to that subtype prior to the call to Instantiate_Type.
! 	(Validate_Formal_TypeDefault.Reference_Formal): Add test of Entity being
! 	Present, to prevent blowups on End_Label ids (which don't have Entity set).
! 	(Validate_Formal_Type_Default.Validate_Derived_Type_Default): Apply
! 	Base_Type to Formal.
! 	(Validate_Formal_Type_Default): Guard interface-related semantic checks
! 	with a test of Is_Tagged_Type.
  
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* repinfo.adb (List_GCC_Expression.Print_Expr) <Cond_Expr>: Do not
! 	output the final "end".
  
! 2025-01-07  Johannes Kanig  <kanig@adacore.com>
  
! 	* gnat1drv.adb: (SPARK_Library_Warning): preserve Warning_Doc_Switch
  
! 2025-01-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch4.adb (Expand_Allocator_Expression): Do not build a cleanup
! 	if restriction No_Exception_Propagation is active.
! 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/118247
! 	* gcc-interface/Make-lang.in (GNATTOOLS_CROSS_MV): Copy gnatbind
! 	instead of moving it.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of
! 	the index type to find the type used to compute the length.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnat/s-finpri.ads: Remove clause for Ada.Finalization.
! 	(Finalization_Collection): Change to limited private type with the
! 	Finalizable aspect.
! 	(Initialize): Remove "overriding" keyword.
! 	(Finalize): Likewise.
! 	* libgnat/s-finpri.adb (Initialize): Likewise.
! 	(Finalize): Likewise.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/117569
! 	* sem_ch4.adb (Analyze_Indexed_Component_Form): Do not rewrite the
! 	node as a type conversion if it is the current instance of a type
! 	in a generic unit.
! 	* sem_ch8.adb (Find_Selected_Component): Restrict the special case
! 	of the current instance of a type to a generic unit.
  
! 2025-01-06  Bob Duff  <duff@adacore.com>
  
! 	* libgnat/s-imagef.adb (Set_Image_Integer):
! 	Change "RM A.3.10" to be "RM A.10.9".
  
! 2025-01-06  Alexandre Oliva  <oliva@adacore.com>
  
! 	* libgnat/g-cppexc.adb (Convert_Caught_Object): Move...
! 	* libgnat/g-cstyin.adb (Convert_Caught_Object):  ... here.
! 	Use object call notation.
! 	(strcmp): New.
! 	(Char_Arr, CharPtr, Char_Pointer, To_chars_ptr): Drop.  Do not
! 	import Interfaces.C.Pointers.
! 	(To_Pointer): Convert from System.Address.
! 	(Name_Starts_With_Asterisk): Rename local variable.
! 	(Name_Past_Asterisk): Rewrite with System.Address and strcmp.
! 	Import System.Storage_Elements.
! 	(Equals): Use strcmp.
! 	(Before): Fix logic error.  Use strcmp.
! 	(Name): Move conversion to String...
! 	* libgnat/g-cppstd.adb (Name): ... here.  Import
! 	Interfaces.C.Strings.
! 	* libgnat/g-cppstd.ads (Type_Info_Ptr): Disable heap
! 	finalization.
! 	* libgnat/g-cstyin.ads (Name): Change return type.
  
! 2025-01-06  Claire Dross  <dross@adacore.com>
  
! 	* aspects.ads: Add aspect Aspect_Exit_Cases.
! 	* contracts.adb (Analyze_Entry_Or_Subprogram_Contract): Handle Exit_Cases.
! 	(Expand_Subprogram_Contract): Idem.
! 	* einfo-utils.adb (Get_Pragma): Allow Pragma_Exit_Cases.
! 	* einfo-utils.ads (Get_Pragma): Idem.
! 	* exp_prag.adb (Expand_Pragma_Exit_Cases): Ignore the pragma, currently we don't expand it.
! 	* exp_prag.ads (Expand_Pragma_Exit_Cases): Idem.
! 	* inline.adb (Remove_Aspects_And_Pragmas): Add Exit_Cases to the list.
! 	(Remove_Items): Idem.
! 	* par-prag.adb (Last_Arg_Is_Reason): Idem.
! 	* sem_ch12.adb: Idem.
! 	* sem_ch13.adb: Idem.
! 	* sem_util.adb: Idem.
! 	* sem_util.ads: Idem.
! 	* sinfo.ads: Idem.
! 	* snames.ads-tmpl: Add names Name_Exit_Cases, Name_Exception_Raised, and Name_Normal_Return
! 	as well as pragma Pragma_Exit_Cases.
! 	* sem_prag.adb (Analyze_Exit_Cases_In_Decl_Part): Make sure that a
! 	pragma or aspect Exit_Cases is well formed.
! 	(Analyze_Pragma): Make sure that a pragma or aspect Exit_Cases is at the right place.
! 	* sem_prag.ads (Analyze_Exit_Cases_In_Decl_Part): Declaration.
! 	* doc/gnat_rm/implementation_defined_pragmas.rst: Document the Exit_Cases pragma.
! 	* doc/gnat_rm/implementation_defined_aspects.rst: Document the Exit_Cases aspect.
! 	* gnat_rm.texi: Regenerate.
  
! 2025-01-06  Bob Duff  <duff@adacore.com>
  
! 	* sem_util.adb (Copy_Subprogram_Spec): When copying
! 	an N_Defining_Operator_Symbol, create an
! 	N_Defining_Operator_Symbol rather than an N_Defining_Identifier.
! 	This will cause Lib.Xref to "skip the initial quote for
! 	navigation purposes" (as per comments in Lib.Xref body).
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_aggr.adb (Case_Table_Type): Fix reference in comment.
! 	(In_Place_Assign_OK): Move declaration around.
! 	(Is_Build_In_Place_Aggregate_Return): Likewise and adjust.
! 	(Expand_Array_Aggregate): Streamline for the sake of consistency.
! 	(Aggr_Assignment_OK_For_Backend): Remove reference to Gigi/gcc.
! 	(Backend_Processing_Possible): Likewise.
! 	(Expand_Array_Aggregate): Add comment.
  
! 2025-01-06  Bob Duff  <duff@adacore.com>
  
! 	* sinfo.ads (Shift_Count_OK): Update comments.
! 	(Is_Power_Of_2_For_Shift): Likewise.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* debug.adb (dQ): Document usage.
! 	* exp_ch4.ads (Build_Cleanup_For_Allocator): New declaration.
! 	* exp_ch4.adb (Build_Cleanup_For_Allocator): New procedure.
! 	(Expand_Allocator_Expression): Build a cleanup to deallocate the
! 	memory when the evaluation of the expression raises an exception.
! 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
! 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Do not generate the
! 	detachment if the deallocation is for the cleanup of an allocator.
! 	* gen_il-fields.ads (Opt_Field_Enum): Add For_Allocator.
! 	* gen_il-gen-gen_nodes.adb (N_Free_Statement): Likewise.
! 	* sinfo.ads (For_Allocator): Document usage on N_Free_Statement.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/117956
! 	* sem_util.adb (Is_Known_On_Entry): Be prepared for constants coming
! 	from a renaming declaration.
  
! 2025-01-06  Tonu Naks  <naks@adacore.com>
  
! 	* adaint.c (__gnat_locate_exec_on_path): modify function signature
  
! 2025-01-06  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_prag.adb (Resolve_State): Continue ordinary processing.
  
! 2025-01-06  Javier Miranda  <miranda@adacore.com>
  
! 	* sem_ch4.adb (Try_Object_Operation): if no candidate interpretation
! 	matches the context, redo the same analysis with Report_Error True
! 	to report the error.
  
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch5.adb (Expand_Assign_Array): Bail out for controlled
! 	components if the RHS is a function call and the assignment has
! 	the No_Ctrl_Actions flag set.
! 
! 2025-01-06  Viljar Indus  <indus@adacore.com>
! 
! 	* diagnostics-json_utils.adb: Add new method
! 	Write_Boolean_Attribute.
! 	* diagnostics-json_utils.ads: Likewise.
! 	* diagnostics-sarif_emitter.adb (Print_Invocations): print
! 	the executionSuccesful property value without extra quotes.
! 
! 2025-01-06  Viljar Indus  <indus@adacore.com>
! 
! 	* diagnostics-sarif_emitter.adb (Print_Rule): Remove printing
! 	of the level attribute since it does not match the SARIF schema.
! 
! 2025-01-06  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* gen_il-gen.adb (Put_Tables): Add "not null" to the generated code.
! 	* rtsfind.adb (Cstring_Ptr): Same for table with predefined RE_Id
! 	error messages.
! 	* impunit.adb (Aunit_Record): Same for array of alternative unit names.
! 
! 2025-01-06  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* opt.ads (Ada_Version_Runtime): Now a constant, since it cannot
! 	and should never be modified.
! 
! 2025-01-06  Bob Duff  <duff@adacore.com>
! 
! 	* par-ch10.adb (P_Compilation_Unit): Give an error for "is null".
! 	* sem_ch10.adb (Analyze_Subunit): Remove check for "is null"
! 	as a subunit.
! 	* sem_ch6.adb (Analyze_Subprogram_Declaration):
! 	Remove check for "is null" as a library unit.
! 
! 2025-01-06  Javier Miranda  <miranda@adacore.com>
! 
! 	* sem_ch6.adb (Analyze_Expression_Function): Set the parent of
! 	the new node to be the parent of the original to get the proper
! 	context, which is needed for complete error reporting and for
! 	semantic analysis. Patch suggested by Eric Botcazou.
! 
! 2025-01-06  Alexandre Oliva  <oliva@adacore.com>
! 	    Olivier Hainque  <hainque@adacore.com>
! 
! 	* Makefile.rtl (LLVM_BUILD): Define based on LLVM_CONFIG.
! 	(GNATRTL_NONTASKING_OBJS): Make g-cpp, g-cppstd, and g-cstyin
! 	conditional on -gcc or -arm EH, and on no LLVM_BUILD.
! 	* raise-gcc.c (GXX_EH_INTEROP): Define as 0 on gnat-llvm or
! 	CERT, and 1 otherwise.
! 	(__gnat_get_cxx_dependent_exception) Omit on !GXX_EH_INTEROP.
! 	(__gnat_maybe_get_cxx_dependent_exception): Likewise.
! 	(__gnat_get_cxx_exception_type_info): Likewise.
! 	(__gnat_obtain_caught_object): Likewise.
! 	(is_handled_by): Omit eid parameter and G++ interop on
! 	!GXX_EH_INTEROP.  Adjust callers.
! 
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* einfo.ads (Returns_By_Ref): Fix description.
! 	* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
! 	adjust the component manually (if need be), set No_Finalize_Actions
! 	instead of No_Ctrl_Actions for this purpose.  Do not adjust when
! 	the expression is a naked function call.
! 	* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Document the quirks of
! 	the function.  Assert that the LHS of the assignment does not have
! 	side effects and replace calls to Duplicate_Subexpr_No_Checks with
! 	calls to New_Copy_Tree.  Rename local variable Asn to New_N.
! 	(Expand_N_Assignment_Statement): In the tagged or controlled record
! 	case, do remove side effects from both operands on entry.  Remove
! 	them in the controlled record case, except if the RHS is a function
! 	call and the assignment has the No_Ctrl_Actions flag set.
! 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out when the parent
! 	node is an assignment statement with the No_Ctrl_Actions flag set.
! 	* sem_util.adb (Statically_Different): Return True for a function
! 	call that does not return its result by reference.
! 	* sinfo.ads (No_Ctrl_Actions): Adjust description and add a note for
! 	the code generator.
! 	(No_Finalize_Actions): Likewise.
! 
! 2025-01-06  Bob Duff  <duff@adacore.com>
! 
! 	* gen_il-gen.adb: Fix too-long line.
! 
! 2025-01-06  Tonu Naks  <naks@adacore.com>
! 
! 	* adaint.c: void parameter on non-windows platforms
! 
! 2025-01-06  Bob Duff  <duff@adacore.com>
! 
! 	* gen_il-internals.ads: Split Fields field into two fields
! 	Imm_Fields and Fields.
! 	* gen_il-gen.adb: Modify the field-inheritance
! 	algorithm to inherit at each level of the type hierarchy,
! 	rather than just inheriting into concrete types.
! 	For example, if C is a concrete type derived from B,
! 	which is in turn derived from A, we now set the Fields
! 	of B to include those of A. (We had always set the Fields
! 	of C to include those of A and B, and we still do that.)
! 	(Compute_Fields_For_One_Type): Detect cases where a given
! 	field is declared for all descendants of a given abstract
! 	type, in which case we should consider declaring it in
! 	the abstract type, and inheriting it in those descendants.
! 	(Exception_To_Inheritance_Rule): These are the cases where
! 	we could inherit, but we don't want to.
! 	* gen_il-gen-gen_nodes.adb: Move fields up the type hierarchy,
! 	so they are inherited instead of being defined separately.
! 	* gen_il-gen-gen_entities.adb: Likewise.
! 
! 2025-01-06  Viljar Indus  <indus@adacore.com>
! 
! 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
! 	Exchange_Limited_Views also in Ada 2005.
! 
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch6.adb (Expand_Call_Helper): Call Ultimate_Alias for the
! 	detection of calls to subprograms specified for Constant_Indexing.
! 	* exp_util.adb (Is_Indexed_Container): Likewise.
! 	(Is_Iterated_Container): Likewise for Default_Iterator.
! 
! 2025-01-06  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix markup.
! 	* gnat_ugn.texi: Regenerate.
! 
! 2025-01-06  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_ch13.adb (Validate_Unchecked_Conversions): Remove detection of
! 	null arrays; remove tests for sizes being present, which are redundant
! 	after calling Known_Static_RM_Size.
! 
! 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/117936
! 	* doc/gnat_rm/implementation_defined_pragmas.rst
! 	(Unimplemented_Unit): Adjust the description of the error message.
! 	* gnat_rm.texi: Regenerate.
! 
! 2025-01-05  Estevan Castilho (Tevo)  <estevan.cps@gmail.com>
! 
! 	* libgnarl/s-taprop__dummy.adb: Remove use clause for
! 	System.Parameters.
! 	(Unlock): Remove Global_Lock formal parameter.
! 	(Write_Lock): Likewise.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch3.adb, exp_ch4.adb, exp_disp.adb, inline.adb: Remove explicit
! 	actual parameter Null_Exclusion_Present equal False.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch3.adb, exp_disp.adb: Remove explicit actual parameter
! 	Constant_Present equal False; tune comments.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch3.adb, exp_ch9.adb, exp_dist.adb, exp_imgv.adb, exp_util.adb,
! 	sem_dist.adb: Remove explicit actual parameter Aliased_Present equal
! 	False; tune comments and whitespace.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_ch5.adb (Check_Call): Reuse Get_Called_Entity.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_attr.adb (Check_Array_Type): Remove extra call.
! 	* sem_util.adb (Static_Boolean): Likewise.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_aggr.adb (Others_Check): Reuse List_Length; tune whitespace.
! 	* exp_ch3.adb (Constrain_Array): Remove counting of constraints.
! 	* exp_disp.adb (Make_DT): Use Elist utility routines; tune whitespace.
! 	* sem_ch12.adb (Formal_Dimensions): Reuse List_Length.
! 	(Valid_Default_Attribute): Reuse Number_Formals.
! 	* sem_prag.adb (Process_Convention): Likewise.
! 	* sem_util.adb (Normalize_Actuals): Likewise.
! 	(Check_Function_Writable_Actuals): Reuse List_Length.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* contracts.adb (Create_Generic_Contract): Remove calls to Present.
! 	* sem_util.adb (Normalize_Actuals): Likewise.
! 
! 2025-01-03  Bob Duff  <duff@adacore.com>
! 
! 	* sem_util.adb (Append_Entity_Name): Do not skip the
! 	simple name for a compilation unit (which includes
! 	the case of specless subprogram bodies).
! 
! 2025-01-03  Tucker Taft  <taft@adacore.com>
! 
! 	* pprint.adb (Expression_Image): Adjust and improve comments
! 	to match style recommendations, and change name of subtype
! 	from Not_Associative to Non_Associative, in response to
! 	code review.
! 
! 2025-01-03  Tucker Taft  <taft@adacore.com>
! 
! 	* pprint.adb (Expression_Image): In local function Expr_Name
! 	add a No_Parens flag and define a subtype Not_Associative
! 	to represent the short-circuit operations and And/Or/Xor.
! 	Insert parentheses to separate the subexpressions when
! 	different "Not_Associative" operations occur in a
! 	sequence.
! 
! 2025-01-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* einfo.ads (BIP_Initialization_Call): Adjust description.
! 	* exp_ch4.adb (Expand_N_Case_Expression): Adjust commentary.
! 	(Expand_N_If_Expression): Likewise.
! 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
! 	Set BIP_Initialization_Call unconditionally in the definite case.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* uintp.adb (N_Digits): Refine return subtype, since this routine
! 	always returns a positive number of digits.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* checks.adb (Generate_Index_Checks): Reuse existing utility routine.
! 	* sem_ch4.adb (Analyze_Indexed_Component_Form): Likewise.
! 	* sem_prag.adb (Analyze_Pragma): Likewise.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_dist.adb (Assign_Subprogram_Identifier,
! 	Reserve_NamingContext_Methods): Simplify.
! 	* osint.adb (Append_Suffix_To_File_Name, Find_File, Get_Directory,
! 	Object_File_Name, Strip_Directory): Likewise.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_res.adb (Resolve_Alocator): Move unrelated code out of a declare
! 	block.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_ch3.adb (Search_Access_Discriminant, Search_Current_Instance,
! 	Search_Internal_Call): Use traversal function instead of traversal
! 	procedure and remove associated global variables.
! 	* exp_util.adb (Search_Calls): Likewise.
! 	* sem_prag.adb (Contains_Loop_Entry): Likewise.
! 	* sem_util.adb (Mentions_Post_State): Likewise.
! 
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_attr.adb (Eval_Attribute): Fix comment for attribute Image.
! 	* tbuild.adb (Make_SC): Remove extra whitespace.
! 
! 2025-01-03  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-cpp, g-cppstd,
! 	and g-cstyin.
! 	* doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C++):
! 	Document class-wide matching and new interfaces.
! 	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Add class-wide
! 	exception matching support with 'B' as language identifier.
! 	* libgnat/a-exexpr.adb (Setup_Current_Excep): Add Id formal.
! 	(Set_Foreign_Occurrence): Likewise.
! 	(Propagate_GCC_Exception): Adjust.
! 	(Set_Exception_Parameter): Likewise.
! 	(Unhandled_Except_Handler): Likewise.
! 	* libgnat/g-cpp.ads: New.
! 	* libgnat/g-cppexc.adb (Raise_Cpp_Exception): Match 'B' lang id.
! 	(Get_Object_Address): New.
! 	(Get_Object): Rewrite.
! 	(Get_Access_To_Object): New.
! 	(Get_Access_To_Tagged_Object): New.
! 	(Get_Type_Info): New.
! 	(Convert_Caught_Object): New.
! 	* libgnat/g-cppexc.ads (Get_Object_Address): New.
! 	(Get_Object): Note the Cpp Convention requirement.
! 	(Get_Access_To_Object): New.
! 	(Get_Access_To_Tagged_Object): New.
! 	(Get_Type_Info): New.
! 	* libgnat/g-cppstd.adb: New.
! 	* libgnat/g-cppstd.ads: New.
! 	* libgnat/g-csclex.ads: New, unused.
! 	* libgnat/g-cstyin.adb: New.
! 	* libgnat/g-cstyin.ads: New.
! 	* libgnat/g-excact.adb (Exception_Language): New.
! 	(Is_Foreign_Exception): Rewrite.
! 	* libgnat/g-excact.ads (Exception_Languages): New.
! 	(Exception_Language): New.
! 	* libgnat/s-stalib.ads (Lang): Document 'B'.
! 	* raise-gcc.c (__gnat_setup_current_excep): Add Exception_Id formal.
! 	(CXX_DEPENDENT_EXCEPTION_CLASS): New.
! 	(cxx_type_info): New.
! 	(__cxa_exception): Rename exceptionType to encompass PrimaryException.
! 	(_GNAT_Exception): Drop wrapper.
! 	(EID_For): Adjust.
! 	(exception_class_eq): Likewise.
! 	(__gnat_exception_language_is_cplusplus): New.
! 	(__gnat_exception_language_is_ada): New.
! 	(__gnat_convert_caught_object): Declare.
! 	(__gnat_get_cxx_dependent_exception): New.
! 	(__gnat_maybe_get_cxx_dependent_exception): New.
! 	(__gnat_get_cxx_exception_type_info): New.
! 	(__gnat_obtain_caught_object): New.
! 	(is_handled_by): Adjust.   [!CERT] Add eid formal, handle dependent
! 	exceptions and base-type matches.
! 	(get_action_description_for) [!CERT]: Add eid formal.  Adjust.
! 	(personality_body): Adjust.
! 	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS) [!STAGE1]:
! 	Add new g-cpp, g-cppstd, g-cstyin + preexisting g-cppexc
! 	and i-cstrin.
  	* gnat-style.texi: Regenerate.
  	* gnat_rm.texi: Regenerate.
  
! 2025-01-03  Gary Dismukes  <dismukes@adacore.com>
  
! 	* diagnostics-constructors.adb (Make_Default_Iterator_Not_Primitive_Error):
! 	Revise message to match message change made in sem_ch13.adb.
! 	* freeze.adb (Freeze_Record_Type): Output appropriate aspect name in
! 	error message, using Get_Name_String.
! 	(Freeze_Entity): For derived types, call Analyze_Aspects_At_Freeze_Point
! 	on the parent type, and call Inherit_Nonoverridable_Aspects on the type
! 	(for both parent type and any progenitor types). Add with_clause for
! 	System.Case_Util.
! 	* gen_il-fields.ads: Add Aspect_Subprograms to type Opt_Field_Enum.
! 	* gen_il-gen-gen_nodes.adb: Add field Aspect_Subprograms to
! 	N_Aspect_Specification nodes.
! 	* sem_ch4.adb (Try_Container_Indexing): Remove Find_Indexing_Operations
! 	and the code calling it. Add new function Indexing_Interpretations for
! 	retrieving the eligible indexing functions from the appropriate aspect's
! 	Aspect_Subprograms list and call that instead of Find_Value_Of_Aspect.
! 	* sem_ch7.adb (Analyze_Package_Specification): In loop over entities,
! 	call Analyze_Aspects_At_Freeze_Point for types that have delayed
! 	aspects.
! 	* sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Add Nonoverridable_Only
! 	formal to restrict processing to nonoverridable aspects.
! 	(Check_Function_For_Indexing_Aspect): New exported procedure renamed
! 	from Check_One_Function and moved to library level.
! 	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Test new formal
! 	Nonoverridable_Only formal to skip processing of aspects that are not
! 	nonoverridable when the formal is True. Skip the processing for
! 	Aspect_Full_Access_Only when Nonoverridable_Only is True. Call
! 	Check_Indexing_Functions in the case of indexing aspects (procedure
! 	moved from Analyze_Attribute_Definition_Clause to top level).
! 	(Analyze_Aspect_Specifications): Locate closest ancestor type with an
! 	explicit matching aspect to determine the aspect spec to reference in
! 	the error about a nonoverridable aspect not confirming an inherited
! 	aspect (skipping intermediate derived parents). Ensures that we retain
! 	existing errors flagged on explicit ancestor aspects rather than
! 	implicit inherited ones. Change names of variables Parent_Type and
! 	Inherited_Aspect to Ancestor_Type and Ancestor_Aspect respectively
! 	for clarity.
! 	(Analyze_Attribute_Definition_Clause): Move nested subprograms
! 	Check_Iterator_Functions and Check_Primitive_Function to top level
! 	of package. Move Check_Indexing_Functions (and its nested subprograms)
! 	from here to within Analyze_Aspects_At_Freeze_Point (adding some
! 	formal parameters and adjusting the code appropriately, and no longer
! 	call it from this procedure).
! 	(Is_CW_Or_Access_To_CW): Add test for the parent type having the
! 	indexing aspect for proper setting of Aspect_Specification_Is_Inherited.
! 	Delete "???" comment.
! 	(Look_Through_Anon_Access): Remove unneeded tests of Is_Access_Constant
! 	and Name_Constant_Indexing, which lead to wrong messages in some cases.
! 	(Check_Function_For_Indexing_Aspect): Procedure renamed from
! 	Check_One_Function and moved to library level (was nested within
! 	Check_Indexing_Functions), plus added formals (including Valid, to
! 	check result). Move scope test to beginning, to immediately exclude
! 	subprograms not declared immediately within the same scope as the type.
! 	Improve several error messages. Add error checking for Constant_Indexing
! 	functions. Append the function entity to the Aspect_Subprograms list of
! 	the aspect specification. Move code for checking for nonconfirming
! 	index aspects and for checking for illegal indexing aspects on full
! 	views to Check_Indexing_Functions.
! 	(Check_Indexing_Functions): Move procedure Illegal_Indexing from
! 	here to within Check_Function_For_Indexing_Aspect. Add a comment
! 	to the loop over interpretations about the checking being done as
! 	legality rules rather than resolution rules, plus a note referencing
! 	AI22-0084. Check for nonconfirming indexing aspects and illegal
! 	indexing aspects on full views here rather than in Check_One_Function
! 	(now named Check_Function_For_Indexing_Aspect). Remove function
! 	Check_One_Function (moved to library level and renamed), and call
! 	Check_Function_For_Indexing_Aspect instead.
! 	(Check_Inherited_Indexing): Improve spec comment. Remove nested function
! 	Same_Chars, and replace call Same_Chars with call to Sem_Util.Same_Name.
! 	Replace call to Illegal_Indexing with call to Error_Msg_NE.
! 	(Check_One_Function): Unnested from Check_Indexing_Functions, rename
! 	to Check_Function_For_Indexing_Aspect, move body to library level,
! 	and move declaration to Sem_Ch13 spec.
! 	(Analyze_Attribute_Definition_Clause, case Attribute_Default_Iterator):
! 	Improve error message related to tagged-type requirement. Suppress call
! 	to Check_Iterator_Functions for attribute definition clauses associated
! 	with inherited aspects. Remove error checking that is redundant with
! 	checking done in Check_Iterator_Functions.
! 	(Check_Aspect_At_Freeze_Point, case Attribute_Default_Iterator): Call
! 	Check_Iterator_Functions (only if the aspect is not Comes_From_Source).
! 	(Check_Iterator_Functions): Procedure unnested from
! 	Analyze_Attribute_Definition_Clause. Add formals Typ and Expr.
! 	Error messages corrected to say "aspect Default_Iterator" instead of
! 	"aspect Iterator".
! 	(Valid_Default_Iterator): Improve error message to say "must be
! 	a local primitive or class-wide function" instead of "must be
! 	a primitive function".
! 	(Check_Primitive_Function): Unnested from Analyze_Attribute_Definition_Clause.
! 	Add formal Ent.
! 	(Rep_Item_Too_Late): Return False when an attribute_definition_clause
! 	is not Comes_From_Source, since it was generated by the compiler (such
! 	as for an inherited aspect).
! 	(Resolve_Aspect_Aggregate): Capture implementation base type.
! 	(Valid_Empty): Use implementation base types for result type comparison.
! 	(Valid_Add_Named): Use impl base types for comparison of formal's type.
! 	(Valid_Add_Unnamed): Use impl base types for comparison of formal's type.
! 	(Valid_New_Indexed): Use impl base types for result type comparison.
! 	(Validate_Literal_Aspect): Return immediately when aspect does not have
! 	Comes_From_Source True (no point in validating inherited aspects).
! 	* sem_res.adb (Has_Applicable_User_Defined_Literal): Remove Base_Type
! 	comparison and always call Corresponding_Op_Of_Derived_Type for derived
! 	types. Add "???" comment about issue with wrapper functions (and
! 	indicate that it would be nice to eliminate the call to
! 	Corresponding_Primitive_Op).
! 	* sem_util.ads (Inherit_Nonoverridable_Aspects): New procedure.
! 	(Corresponding_Op_Of_Derived_Type): Update spec comment to indicate
! 	return of Ancestor_Op and name changed from Corresponding_Primitive_Op.
! 	* sem_util.adb (Check_Inherited_Nonoverridable_Aspects): Fix name in
! 	header comment.
! 	(Corresponding_Op_Of_Derived_Type): Move declaration of Typ down with
! 	other local variables. Remove Assert that doesn't apply in some cases.
! 	Simply return Ancestor_Op when it isn't a primitive (it can be a
! 	class-wide op). Function name changed from Corresponding_Primitive_Op.
! 	(Find_Untagged_Type_Of): Add test of Is_Type (E) as a guard for checking
! 	Direct_Primitive_Operations. Remove Assert (False), and return Empty
! 	when the primitive is not found.
! 	(Profile_Matches_Ancestor): Change comparisons to use implementation
! 	base types of the operations' formal and result types. Add tests for
! 	interface ancestors. Revise "???" comment.
! 	(Is_Confirming): Simplify name-matching test to use the names associated
! 	with the aspects rather than going to the N_Attribute_Definition_Clause
! 	nodes (may facilitate elimination of those clauses at some point).
! 	(Inherit_Nonoverridable_Aspects): New procedure to traverse the
! 	aspects of a derived type's parent type and create inherited versions
! 	of the parent type's nonoverridable aspects, identifying the appropriate
! 	subprograms for each such inherited aspect.
! 	(Inherit_Nonoverridable_Aspect): New procedure nested in
! 	Inherit_Nonoverridable_Aspects to inherit individual nonoverridable
! 	aspects. Identifies the corresponding subprogram(s) associated with
! 	an inherited nonoverridable aspect. In the case of indexing aspects,
! 	new eligible indexing functions of the type are also identified here,
! 	and the entities of all of the identified subprograms are appended to
! 	the aspect's Aspect_Subprograms Elist. Add a "???" comment about this.
! 	* sinfo.ads: Add documentation for the new Aspect_Subprograms field.
  
! 2025-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Create the
! 	Master_Node even if the declaration is turned into a renaming.
  
! 2025-01-03  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_ch3.adb (Array_Type_Declaration): Don't copy parent for an itype
! 	created by an array component declaration.
  
! 2025-01-03  Douglas B Rupp  <rupp@adacore.com>
  
! 	* socket.c [__vxworks]: Change vxw_h_addr type to long from
! 	int, and cast the conversion of char* to vxw_h_addr to avoid
! 	warning/error.
  
! 2025-01-03  Tonu Naks  <naks@adacore.com>
  
! 	* adaint.c: change default behaviour of __gnat_locate_exec_on_path
! 	* adaint.h: change prototype of __gnat_locate_exec_on_path
! 	* libgnat/s-os_lib.adb: pass optional argument in Locate_Exec_On_Path
! 	* libgnat/s-os_lib.ads: change spec of Locate_Exec_On_Path
! 	* libgnat/s-trasym__dwarf.adb: update import of __gnat_locate_exec_on_path
  
! 2025-01-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch4.adb (Expand_Allocator_Expression): Put back the call to
! 	Remove_Side_Effects in the case of a function call, a class-wide
! 	designated type and a regular storage pool.
! 
! 2025-01-03  Bob Duff  <duff@adacore.com>
! 
! 	* sem_ch6.adb (Analyze_Expression_Function): Mark the implicit
! 	spec for an expression function as Comes_From_Source.
! 	(Analyze_Null_Procedure): Minor cleanup.
! 	* sem_warn.adb (Source_E1): New function to compute whether
! 	to give warnings. In particular, return True for [in] out
! 	parameters of expression functions.
! 
! 2025-01-03  Steve Baird  <baird@adacore.com>
! 
! 	* exp_aggr.adb (Check_Bounds): Remove calls that were setting the
! 	Analyzed flag to False for two aggregate bound expressions.
! 
! 2025-01-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* einfo.ads (Is_Independent): Document usage on Master_Node objects.
! 	* exp_aggr.adb (In_Place_Assign_OK): Remove Parent_Kind variable.
! 	(Convert_To_Assignments): Call Unconditional_Parent and remove the
! 	restriction on the known size for the in-place expansion of the
! 	aggregate in the context of an object declaration.
! 	(Expand_Array_Aggregate): Remove Parent_Kind variable and call
! 	Unconditional_Parent and Delay_Conditional_Expressions_Between
! 	* exp_ch3.adb: Remove clauses for Exp_Dbug.
! 	(Expand_N_Object_Declaration): Factor out the code rewriting the
! 	declaration as a renaming in Rewrite_Object_Declaration_As_Renaming
! 	and call the procedure.
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Declare.
! 	(Expand_N_Case_Expression): Delay expanding the expression if it is
! 	in the context of an optimizable object declaration.  If the parent
! 	node is this object declaration, then replace it with a renaming of
! 	the dereference of an access value designating an object initialized
! 	with the dependent expression chosen by the condition.
! 	(Expand_N_If_Expression): Likewise.
! 	(Insert_Conditional_Object_Declaration): New procedure.
! 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Test the unconditional
! 	parent in the case of an object declaration too.
! 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Pass Strict to
! 	Processing_Actions from the Is_Independent flag on a Master_Node.
! 	* exp_util.ads (Rewrite_Object_Declaration_As_Renaming): Declare.
! 	* exp_util.adb: Add clauses for Exp_Dbug.
! 	(Rewrite_Object_Declaration_As_Renaming): New procedure extracted
! 	from Expand_N_Object_Declaration.
! 	* sem_ch3.adb (Analyze_Object_Declaration): Also leave the analysis
! 	if the declaration has been replaced with a renaming in the case of
! 	an initialization expression that is a conditional expression.
! 
! 2025-01-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* checks.adb (Apply_Predicate_Check): Preserve Comes_From_Source.
! 	* exp_ch4.adb (Expand_Allocator_Expression): Factor out common code
! 	for the various cases.  Also delay applying the 2nd predicate check.
! 	In the default case, defer to Make_Build_In_Place_Call_In_Allocator
! 	entirely in the build-in-place case.
! 	* sem_ch4.adb (Analyze_Allocator): Do not give the warning or error
! 	for a default-initialized allocator with No_Initialization.
! 
! 2025-01-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* lib-writ.adb (Write_ALI): Remove useless space.
! 
! 2025-01-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* lib-writ.adb (Write_ALI): Remove condition for writing P line
! 	parameters.
! 	* lib-writ.ads: Fix typos. Clarify comment.
! 
! 2025-01-02  Jakub Jelinek  <jakub@redhat.com>
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
  
  
! Copyright (C) 2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2001 gcc-15.1.0/gcc/ada/ChangeLog-2001
*** gcc-14.2.0/gcc/ada/ChangeLog-2001	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2001	Fri Apr 25 08:18:00 2025
*************** Thu Nov 15 18:16:17 2001  Richard Kenner
*** 2229,2236 ****
  2001-10-02  Geert Bosch  <bosch@gnat.com>
  
  	* misc.c (insert_default_attributes): Add dummy version.
- 
- 
  
  Copyright (C) 2001 Free Software Foundation, Inc.
  
--- 2229,2234 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2002 gcc-15.1.0/gcc/ada/ChangeLog-2002
*** gcc-14.2.0/gcc/ada/ChangeLog-2002	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2002	Fri Apr 25 08:18:00 2025
***************
*** 976,983 ****
  
  	* trans.c (tree_transform) [N_Loop_Statement]: Use
  	expand_exit_loop_top_cond.
- 
- 
  
  Copyright (C) 2002 Free Software Foundation, Inc.
  
--- 976,981 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2003 gcc-15.1.0/gcc/ada/ChangeLog-2003
*** gcc-14.2.0/gcc/ada/ChangeLog-2003	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2003	Fri Apr 25 08:18:00 2025
***************
*** 3011,3018 ****
  	ada.uninstall): Prepend $(DESTDIR) to the destination
  	directory in all (un)installation commands.
  	* Makefile.in (install-gnatlib, install-rts): Ditto.
- 
- 
  
  Copyright (C) 2003 Free Software Foundation, Inc.
  
--- 3011,3016 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2004 gcc-15.1.0/gcc/ada/ChangeLog-2004
*** gcc-14.2.0/gcc/ada/ChangeLog-2004	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2004	Fri Apr 25 08:18:00 2025
***************
*** 8337,8344 ****
  
  	* s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
  	comment.
- 
- 
  
  Copyright (C) 2004 Free Software Foundation, Inc.
  
--- 8337,8342 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2005 gcc-15.1.0/gcc/ada/ChangeLog-2005
*** gcc-14.2.0/gcc/ada/ChangeLog-2005	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2005	Fri Apr 25 08:18:00 2025
***************
*** 8004,8011 ****
  	* exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
  	whether the ancestor type is private, as may be the case with nested
  	instantiations.
- 
- 
  
  Copyright (C) 2005 Free Software Foundation, Inc.
  
--- 8004,8009 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2006 gcc-15.1.0/gcc/ada/ChangeLog-2006
*** gcc-14.2.0/gcc/ada/ChangeLog-2006	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2006	Fri Apr 25 08:18:00 2025
***************
*** 4452,4459 ****
  
  	PR ada/24533
  	* s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
- 
- 
  
  Copyright (C) 2006 Free Software Foundation, Inc.
  
--- 4452,4457 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2008 gcc-15.1.0/gcc/ada/ChangeLog-2008
*** gcc-14.2.0/gcc/ada/ChangeLog-2008	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2008	Fri Apr 25 08:18:00 2025
*************** PR ada/10768
*** 7454,7461 ****
  	__gnat_init_float): Define for OpenBSD.
  
  	* initialize.c (__gnat_initialize): Define for OpenBSD.
- 
- 
  
  Copyright (C) 2008 Free Software Foundation, Inc.
  
--- 7454,7459 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2009 gcc-15.1.0/gcc/ada/ChangeLog-2009
*** gcc-14.2.0/gcc/ada/ChangeLog-2009	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2009	Fri Apr 25 08:18:00 2025
***************
*** 12161,12168 ****
  	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
  	the _Tag field before any discriminants in the field list.
  	(components_to_record): Remove obsolete comment.
- 
- 
  
  Copyright (C) 2009 Free Software Foundation, Inc.
  
--- 12161,12166 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2010 gcc-15.1.0/gcc/ada/ChangeLog-2010
*** gcc-14.2.0/gcc/ada/ChangeLog-2010	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2010	Fri Apr 25 08:18:00 2025
***************
*** 10078,10085 ****
  	PR ada/42626
  	* gcc-interface/Makefile.in (gnatlib-shared-darwin): Add missing
  	end-quote.
- 
- 
  
  Copyright (C) 2010 Free Software Foundation, Inc.
  
--- 10078,10083 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2011 gcc-15.1.0/gcc/ada/ChangeLog-2011
*** gcc-14.2.0/gcc/ada/ChangeLog-2011	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2011	Fri Apr 25 08:18:00 2025
***************
*** 15251,15258 ****
  	PR ada/47131
  	* gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
  	variables that are referenced in exception handlers volatile.
- 
- 
  
  Copyright (C) 2011 Free Software Foundation, Inc.
  
--- 15251,15256 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2015 gcc-15.1.0/gcc/ada/ChangeLog-2015
*** gcc-14.2.0/gcc/ada/ChangeLog-2015	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2015	Fri Apr 25 08:18:00 2025
***************
*** 10502,10508 ****
  
  	* gcc-interface/misc.c (internal_error_function): Use xasprintf instead
  	of unchecked asprintf.
- 
  
  Copyright (C) 2015 Free Software Foundation, Inc.
  
--- 10502,10507 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2016 gcc-15.1.0/gcc/ada/ChangeLog-2016
*** gcc-14.2.0/gcc/ada/ChangeLog-2016	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2016	Fri Apr 25 08:18:00 2025
***************
*** 5909,5915 ****
  2016-01-02  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* gnatvsn.ads: Bump copyright year.
- 
  
  Copyright (C) 2016 Free Software Foundation, Inc.
  
--- 5909,5914 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2022 gcc-15.1.0/gcc/ada/ChangeLog-2022
*** gcc-14.2.0/gcc/ada/ChangeLog-2022	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2022	Fri Apr 25 08:18:00 2025
***************
*** 11059,11065 ****
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
- 
  
  Copyright (C) 2022 Free Software Foundation, Inc.
  
--- 11059,11064 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2023 gcc-15.1.0/gcc/ada/ChangeLog-2023
*** gcc-14.2.0/gcc/ada/ChangeLog-2023	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ChangeLog-2023	Fri Apr 25 08:18:00 2025
***************
*** 6969,6975 ****
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
- 
  
  Copyright (C) 2023 Free Software Foundation, Inc.
  
--- 6969,6974 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/ChangeLog-2024 gcc-15.1.0/gcc/ada/ChangeLog-2024
*** gcc-14.2.0/gcc/ada/ChangeLog-2024	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/ChangeLog-2024	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,8301 ----
+ 2024-12-22  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+ 
+ 	* libgnat/system-gnu.ads: Set Max_Priority to 60.
+ 
+ 2024-12-22  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+ 
+ 	* s-oscons-tmplt.c [__GNU__] (_XOPEN_SOURCE, _BSD_SOURCE): Define.
+ 	[__GNU__]: Include <pthread.h> and <signal.h>
+ 	[__GNU__]: Set MSG_Forced_Flags to "MSG_NOSIGNAL".
+ 	[__GNU__]: Define SIZEOF_sigset.
+ 	[__GNU__]: Define PTHREAD_*SIZE
+ 
+ 2024-12-18  Simon Wright  <simon@pushface.org>
+ 
+ 	PR target/117538
+ 	* libgnat/s-trasym.adb (Symbolic_Traceback): Prepend the load
+ 	address of the executable if it is not null.
+ 
+ 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/118011
+ 	* gcc-interface/misc.cc (gnat_post_options): Test
+ 	!OPTION_SET_P (flag_short_enums) rather than flag_short_enums == 2.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (compare_elmt_bitpos): Deal specially with
+ 	0-sized components when the bit position is the same.
+ 
+ 2024-12-13  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to
+ 	create_type_decl.
+ 
+ 2024-12-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem.ads (Inside_Preanalysis_Without_Freezing): Removed.
+ 	* sem.adb (Semantics): Remove Inside_Preanalysis_Without_Freezing.
+ 	* sem_ch6.adb (Preanalyze_Formal_Expression): Removed.
+ 	* sem_ch3.ads (Preanalyze_Assert_Expression): Add documentation.
+ 	(Preanalyze_Spec_Expression): Add documentation.
+ 	* sem_ch3.adb (Preanalyze_Assert_Expression) Code cleanup.
+ 	(Preanalyze_Default_Expression): Code cleanup.
+ 	* sem_res.ads (Preanalyze_With_Freezing_And_Resolve): Removed.
+ 	* sem_res.adb (Preanalyze_With_Freezing_And_Resolve): Removed.
+ 	(Preanalyze_And_Resolve): Code cleanup.
+ 	* freeze.adb (Freeze_Entity): No freeze under strict preanalysis.
+ 	(Freeze_Expression): Code cleanup.
+ 	(Freeze_Expr_Types): Replace call to Preanalyze_Spec_Expression by
+ 	strict preanalysis during preanalysis of a duplicate of the
+ 	expression performed to have available the minimum decoration
+ 	to locate referenced unfrozen types.
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Minor code cleanup.
+ 	* sem_attr.adb (Resolve_Attribute): Add documentation.
+ 	* sem_ch13.adb (Resolve_Aspect_Expressions[Aspect_Default_Value]):
+ 	Replace call to Preanalyze_Spec_Expression by Preanalyze_And_Resolve.
+ 	(Resolve_Aspect_Expressions[Aspect_Default_Component_Value]): Ditto.
+ 	* sem_ch8.adb (Set_Entity_Or_Discriminal): Code cleaup.
+ 	* sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Replace
+ 	call to Preanalyze_Assert_Expression by call to Preanalyze_And_Resolve.
+ 	(Analyze_Pre_Post_Condition): Replace call to Preanayze_Spec_Expression
+ 	by call to Preanalyze_Assert_Expression.
+ 	* sem_util.ads (In_Pragma_Expression): Adding a formal to extend the
+ 	functionality of this subprogram.
+ 	(Within_Static_Expression): New subprogram.
+ 	* sem_util.adb (In_Pragma_Expression): Ditto.
+ 	(Within_Static_Expression): Ditto.
+ 	* checks.adb (Install_Null_Excluding_Check): No check during preanalysis.
+ 	(Install_Primitive_Elaboration_Check): Ditto.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Is_Delayed_Conditional_Expression): Move to...
+ 	* exp_aggr.adb (Is_Delayed_Conditional_Expression): Move to...
+ 	(Convert_To_Assignments): Use Delay_Conditional_Expressions_Between.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Reset the Analyzed flag
+ 	by means of Unanalyze_Delayed_Conditional_Expression.
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Likewise.  Delay expanding
+ 	the expression if it is in the context of a simple return statement.
+ 	(Expand_N_If_Expression): Likewise.
+ 	(Expand_N_Qualified_Expression): Fold identical operand.  Distribute
+ 	the expression into an operand that is a conditional expression with
+ 	expansion delayed.
+ 	(Process_Transient_In_Expression): Also test the parent node for the
+ 	presence of a simple return statement.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Test the unconditional
+ 	parent node for the presence of a simple return statement.
+ 	* exp_util.ads (Delayed Expansion): New description.
+ 	(Delay_Conditional_Expressions_Between): New procedure.
+ 	(Is_Delayed_Conditional_Expression): ...here.
+ 	(Unanalyze_Delayed_Conditional_Expression): New procedure.
+ 	(Unconditional_Parent): New function.
+ 	* exp_util.adb (Find_Hook_Context): Take into account conditional
+ 	statements coming from conditional expressions.
+ 	(Within_Conditional_Expression): Likewise.
+ 	(Delay_Conditional_Expressions_Between): New procedure.
+ 	(Is_Delayed_Conditional_Expression): ...here.
+ 	(Unanalyze_Delayed_Conditional_Expression): New procedure.
+ 	(Unconditional_Parent): New function.
+ 	* sinfo.ads (Expansion_Delayed): Adjust description.
+ 
+ 2024-12-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Case_Bounds): Fix indentation.
+ 	* sem_case.adb (Choice_Bounds): Likewise.
+ 	* libgnat/s-dourea.ads (Duuble_T): Likewise.
+ 	* libgnat/s-excmac__arm.ads (Cleanup_Cache_Type): Likewise.
+ 
+ 2024-12-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* atree.adb, diagnostics-pretty_emitter.adb,
+ 	diagnostics-utils.adb, einfo-utils.adb, errout.adb, exp_aggr.adb,
+ 	exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_imgv.adb,
+ 	exp_pakd.adb, exp_prag.adb, exp_unst.adb, exp_util.adb, gnatchop.adb,
+ 	gnatlink.adb, inline.adb, itypes.adb, osint.adb, rtsfind.adb,
+ 	sem_aggr.adb, sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
+ 	sem_ch4.adb, sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_util.adb,
+ 	sprint.adb, switch-m.adb, table.adb: Fix code indentation.
+ 
+ 2024-12-13  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* libgnat/a-tifiio.adb (OK_Get_32): Use 'Base.
+ 	(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
+ 	* libgnat/a-tifiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
+ 	(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
+ 	* libgnat/a-wtfiio.adb (OK_Get_32): Likewise.
+ 	(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
+ 	* libgnat/a-wtfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
+ 	(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
+ 	* libgnat/a-ztfiio.adb (OK_Get_32): Likewise.
+ 	(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
+ 	* libgnat/a-ztfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
+ 	(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
+ 
+ 2024-12-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Report_Ambiguous_Argument): Code cleanup.
+ 	(Resolve): Code cleanup.
+ 
+ 2024-12-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Effectively_Volatile,
+ 	Is_Effectively_Volatile_For_Reading): Implement new rule for
+ 	record types.
+ 	* sem_util.ads (Is_Effectively_Volatile,
+ 	Is_Effectively_Volatile_For_Reading): Adjust comments.
+ 
+ 2024-12-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Effectively_Volatile,
+ 	Is_Effectively_Volatile_For_Reading): Remove Ignore_Protected
+ 	parameter.
+ 	(Is_Effectively_Volatile_Object,
+ 	Is_Effectively_Volatile_Object_For_Reading): Remove
+ 	single-parameter wrappers that are needed to instantiate
+ 	generic subprogram.
+ 	* sem_util.ads (Is_Effectively_Volatile,
+ 	Is_Effectively_Volatile_For_Reading): Remove parameter; adjust
+ 	comment.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Do not preventively
+ 	call Remove_Side_Effects on the expression in the nonlimited
+ 	by-reference case.  Always call Build_Allocate_Deallocate_Proc
+ 	in the default case.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out if the call
+ 	is the qualified expression of an allocator.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Replace all the
+ 	calls to Relocate_Node by calls to Duplicate_Subexpr_No_Checks.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Do not call again
+ 	Preanalyze_And_Resolve on the expression.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Aggr_Expr): Always perform a full analysis
+ 	of the expression in SPARK mode.
+ 
+ 2024-12-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Fix typo.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Call_Helper): Also create a temporary in the
+ 	case of a noncontrolled user-defined indexing.
+ 
+ 2024-12-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_library_routines.rst: Fix documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-12-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnat2.gpr: Add library units to coverage exclusion list.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Remove obsolete comment.
+ 	(Convert_To_Positional): Remove Ctyp local variable.
+ 	(Is_Static_Element): Remove Dims parameter and do not preanalyze the
+ 	expression there.
+ 	(Expand_Array_Aggregate): Make Ctyp a constant.
+ 	(Compute_Others_Present): Do not preanalyze the expression there.
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): New Ctyp constant.  Use it
+ 	throughout the procedure to denote the component type.
+ 	(Resolve_Aggr_Expr): Always preanalyze a copy of the expression in
+ 	an iteration context.  Preanalyze it directly when the expander is
+ 	active and the choice may cover multiple components.  Otherwise,
+ 	fully analyze it.
+ 	Do not reanalyze an iterated component association with an others
+ 	choice either when there are positional components.
+ 	(Resolve_Iterated_Component_Association): Do not remove references
+ 	from the expression after invoking Resolve_Aggr_Expr on it.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-imager.adb (Set_Image_Real): In the case where a double
+ 	integer is needed, do not implicit assume that it can contain up to
+ 	'Digits of the floating-point type.
+ 
+ 2024-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-imager.adb (Maxscaling): Change to Natural constant and
+ 	add Maxdigs to value.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117996
+ 	* libgnat/a-ngrear.adb (Jacobi): Remove default value for
+ 	Compute_Vectors formal parameter.
+ 	(Sort_Eigensystem): Add Compute_Vectors formal parameter.  Do not
+ 	modify the Vectors if Compute_Vectors is False.
+ 	(Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem.
+ 	(Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem.
+ 
+ 2024-12-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* par-ch5.adb (Test_Statement_Required): Fix comment.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_Aggr_In_Object_Decl): Clear the component
+ 	referenced on the right-hand side of the first assignment generated
+ 	for a bit-packed array, if any.
+ 	(Expand_Array_Aggregate): Do not exclude aggregates of bit-packed
+ 	array types in object declarations from in-place expansion.
+ 	* sem_eval.adb (Eval_Indexed_Component): Do not attempt a constant
+ 	evaluation for a bit-packed array type.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Access_Subprogram_Declaration): Replace assertion with
+ 	more defensive code.
+ 
+ 2024-12-12  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb (Write_JSON_Location): Avoid going through
+ 	symbolic links when printing the full name.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-imager.adb (Image_Floating_Point): Tweak display of
+ 	invalid floating point values.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Access_Definition): Remove test for task entry context.
+ 	* sem_ch6.adb (Process_Formals): Add improved test for task entry
+ 	context.
+ 
+ 2024-12-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Move call
+ 	to Comes_From_Source to the outer if-statement.
+ 
+ 2024-12-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Only set
+ 	flag Is_Null_Loop when loop parameter specification comes from
+ 	a loop and not from a quantified expression.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Array_Aggregate): Do not exclude aggregates
+ 	of bit-packed array types in allocators from in-place expansion.
+ 
+ 2024-12-12  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move
+ 	the LLVM chapter one level up.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_eval.ads (Is_OK_Static_Expression_Of_Type): New function.
+ 	* sem_eval.adb (Is_OK_Static_Expression_Of_Type): Likewise.
+ 	* sem_ch13.adb (Check_Expr_Is_OK_Static_Expression): Use new function.
+ 	* sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Likewise.
+ 	* sem_ch3.adb (Apply_External_Initialization): Accept static strings
+ 	for the parameter.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/a-tifiio.adb: Fix comment.
+ 	* libgnat/a-tifiio__128.adb: Likewise.
+ 	* libgnat/s-imaged.ads (Image_Decimal): Likewise.
+ 	* libgnat/s-imagef.ads (Image_Fixed): Likewise.
+ 	* libgnat/s-imager.ads (Image_Fixed_Point): Likewise.
+ 	* libgnat/s-imde32.ads (Image_Decimal32): Likewise.
+ 	* libgnat/s-imfi64.ads (Image_Fixed64): Likewise.
+ 	* libgnat/s-imgcha.adb (Image_Character): Likewise.
+ 	* libgnat/s-valuer.adb (Scan_Raw_Real): Likewise.
+ 	* sem_attr.adb (Eval_Attribute): Likewise.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Treat the various size attributes
+ 	like Component_Size for nonstatic array types.
+ 
+ 2024-12-12  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Is_Ambiguous_Operand): Add missing decoration of
+ 	the operand when it is labeled overloaded but has just one
+ 	interpretation.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add Target formal
+ 	parameter and check that it is not a bit-aligned component or slice.
+ 	Return False in CodePeer mode as well.
+ 	(Build_Array_Aggr_Code): Remove redundant tests done in conjunction
+ 	with a call to Aggr_Assignment_OK_For_Backend.
+ 	(Expand_Array_Aggregate): Likewise.  Add a couple of comments and
+ 	improve formatting.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Fix computation of type
+ 	category.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Is_Representation_Aspect): True for External_Name.
+ 	(Aspect_Delay): Use Rep_Aspect for External_Name, Link_Name and
+ 	Linker_Section.
+ 	* einfo.ads (Initialization_Statements): Document extended usage.
+ 	* exp_util.adb (Needs_Initialization_Statements): Return True for
+ 	all delayed aspects.
+ 	* freeze.adb (Check_Address_Clause): Do not move the initialization
+ 	expression here...
+ 	(Freeze_Object_Declaration): ...but here instead, as well as for all
+ 	delayed aspects.  Remove test for pragma Linker_Section.
+ 	* sem_ch13.adb (Analyze_One_Aspect): Do not delay in the Rep_Aspect
+ 	case if the expression is a string literal.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-valuti.ads (Scan_Sign): Fix documentation comment.
+ 
+ 2024-12-12  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_util.adb (Build_Task_Image_Decls):
+ 	Deal properly with the case of an expanded name.
+ 	Minor cleanup: use a case statement instead of if/elsif chain.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Traverse_Proc_For_Aggregate): New generic procedure.
+ 	(Replace_Discriminants): Instantiate it instead of Traverse_Proc.
+ 	(Replace_Self_Reference): Likewise.
+ 	(Convert_To_Assignments): Remove limitation for nested aggregates
+ 	that contain self-references.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Remove obsolete comment
+ 	about C code generation.  Do not create a useless target type if
+ 	the parent statement is rewritten instead of the expression.  Use
+ 	a nonnull accesss type for the expansion done for composite types.
+ 	(Expand_N_If_Expression): Simplify the expansion when the condition
+ 	is known at compile time.  Apply the expansion done for by-reference
+ 	types to indefinite types and remove the obsolete special case for
+ 	unconstrained array types  Use a nonnull access type in this case.
+ 	Rename New_If local variable to If_Stmt for the sake of consistency.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Address_For_Finalize): Look at the underlying
+ 	subtype to detect the unconstrained array type case.
+ 	* sprint.adb (Write_Itype) <E_Private_Subtype>: New case.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Update
+ 	External_Initialization section.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fname.adb (Is_Predefined_File_Name): Tweak test.
+ 
+ 2024-12-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Apply_External_Initialization): Restrict File lookup.
+ 
+ 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Initialization_Statements): Document usage precisely.
+ 	* exp_aggr.adb (Convert_Aggr_In_Object_Decl): Do not create a
+ 	compound statement in most cases, do it only if necessary.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Remove a couple of
+ 	useless statements.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
+ 	Use the Initialization_Statements mechanism if necessary.
+ 	* exp_ch7.adb: Remove clauses for Aspects package.
+ 	(Insert_Actions_In_Scope_Around): Use the support code of Exp_Util
+ 	for the Initialization_Statements mechanism.
+ 	* exp_prag.adb (Undo_Initialization): Remove obsolete code.
+ 	* exp_util.ads (Move_To_Initialization_Statements): New procedure.
+ 	(Needs_Initialization_Statements): New function.
+ 	* exp_util.adb (Move_To_Initialization_Statements): New procedure.
+ 	(Needs_Initialization_Statements): New predicate.
+ 
+ 2024-12-12  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Avoid expansion
+ 	of controlled types when the LHS is a function call.
+ 
+ 2024-12-12  Daniel King  <dmking@adacore.com>
+ 
+ 	* init.c (__gnat_error_handler): Handle SIGPROT
+ 	(__gnat_install_handler): Install SIGPROT handler
+ 
+ 2024-12-12  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/i-cheri-exceptions.ads: Export CHERI exception IDs.
+ 
+ 2024-12-12  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* exp_ch9.adb (Expand_N_Task_Type_Declaration): Take
+ 	Minimum_Stack_Size into account when preallocating task stacks.
+ 	* rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Minimum_Stack_Size.
+ 
+ 2024-12-11  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+ 
+ 	* Makefile.rtl: Add x86_64-pc-gnu section.
+ 
+ 2024-12-11  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+ 
+ 	* libgnat/system-gnu.ads: New file.
+ 	* Makefile.rtl (x86-gnuhurd): Use libgnat/system-gnu.ads instead of
+ 	libgnat/system-freebsd.ads.
+ 
+ 2024-12-11  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+ 
+ 	* libgnarl/a-intnam__freebsd.ads: Rename to...
+ 	* libgnarl/a-intnam__bsd.ads: ... new file.
+ 	* libgnarl/a-intnam__dragonfly.ads: Remove file.
+ 	* Makefile.rtl (x86-kfreebsd, x86-gnuhurd, x86_64-kfreebsd,
+ 	aarch64-freebsd, x86-freebsd, x86_64-freebsd): Use
+ 	libgnarl/a-intnam__bsd.ads instead of libgnarl/a-intnam__freebsd.ads.
+ 	(x86_64-dragonfly): Use libgnarl/a-intnam__bsd.ads instead of
+ 	libgnarl/a-intnam__dragonfly.ads.
+ 
+ 2024-11-26  Eric Botcazou  <ebotcazou@adacore.come>
+ 
+ 	* gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Access>: Do not
+ 	pass ATTR_ADDR_EXPR to build_unary_op for 'Unrestricted_Access.
+ 
+ 2024-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Do not insert the tag
+ 	assignment there if the object has the Address aspect.
+ 	* exp_ch7.adb: Add clauses for Aspect package.
+ 	(Build_Finalizer.Process_Object_Declaration): Deal with an object
+ 	with delayed freezing.
+ 	(Insert_Actions_In_Scope_Around): If the target is the declaration
+ 	of an object with address clause or aspect, move all the statements
+ 	that have been inserted after it into the Initialization_Statements
+ 	list of the object.
+ 	* freeze.adb (Check_Address_Clause): Do not reassign the tag here,
+ 	instead set the appropriate flag on the assignment statement.
+ 
+ 2024-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Valid_Conversion): Do not initialize Opnd_Type before
+ 	calling Get_Corresponding_Mutably_Tagged_Type_If_Present.
+ 
+ 2024-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Export_Import): Add explicit mention
+ 	of the declaration in the error message for the Import.
+ 	* sem_prag.adb (Process_Extended_Import_Export_Object_Pragma): Also
+ 	test Has_Init_Expression on the declaration node for Import_Object
+ 	and use the same wording as that of Import.
+ 	(Process_Import_Or_Interface): Also test Has_Init_Expression on the
+ 	declaration node for Import.
+ 
+ 2024-11-26  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch2.adb (Check_Ambiguous_Call): Replace code factorized
+ 	code by call to the new subprogram Is_Ambiguous_Operand.
+ 	* sem_res.ads (Is_Ambiguous_Operand): New subprogram that
+ 	factorizes previous code in Check_Ambiguous_Call and
+ 	Valid_Conversion.
+ 	* sem_res.adb (Is_Ambiguous_Operand): New subprogram.
+ 	(Valid_Tagged_Conversion): Replace factorized code by call to
+ 	the new subprogram Is_Ambiguous_Operand.
+ 	(Report_Error_N): New subprogram.
+ 	(Report_Error_NE): New subprogram.
+ 	(Report_Interpretation): New subprogram.
+ 	(Conversion_Error_N): Removed; replaced by Report_Error_N.
+ 	(Conversion_Error_NE): Removed; replaced by Report_Error_NE.
+ 	(Valid_Conversion): Update Opnd_Type after the call to
+ 	Is_Ambiguous_Operand in the overloaded case.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb: Remove implmentation of Write_Error_Summary.
+ 	* erroutc.adb: Add implemenetation of Write_Error_Summary.
+ 	* erroutc.ads: Add spec of Write_Error_Summary.
+ 	* errutil.adb: Remove implementation for writing the error summary.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb: Remove implemntation of Set_Msg_Insertion_Column.
+ 	* erroutc.adb: Add implementation of Set_Msg_Insertion_Column.
+ 	* erroutc.ads: Add spec of Set_Msg_Insertion_Column.
+ 	* errutil.adb: Remove implementation of Set_Msg_Insertion_Column.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb: Set Warn_Err as true if Is_Runtime_Error was
+ 	set in the error message.
+ 	* erroutc.adb: Remove instances of Warn_Runtime_Raise.
+ 	* erroutc.ads: Likewise.
+ 	* errutil.adb: Likewise.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb: Use Is_Redundant_Error_Message.
+ 	* erroutc.adb: Move the common code for checking if a message
+ 	can be removed to Is_Redundant_Error_Message.
+ 	* erroutc.ads: Add definition of Is_Redundant_Error_Message.
+ 	* errutil.adb: Use Is_Redundant_Error_Message.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.ads: Remove Current_Node.
+ 	* errout.adb: Remove uses of Current_Node.
+ 	* par-ch6.adb: Same as above.
+ 	* par-ch7.adb: Same as above.
+ 	* par-ch9.adb: Same as above.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* err_vars.ads: Remove Raise_Exception_On_Error and
+ 	Error_Msg_Exception.
+ 	* errout.ads: Same as above.
+ 	* errout.adb: Remove uses of Raise_Exception_On_Error and
+ 	Error_Msg_Exception.
+ 	* errutil.adb: Same as above.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-converter.adb: Use new enum values instead
+ 	of the old attributes.
+ 	* diagnostics-switch_repository.adb: Same as above.
+ 	* diagnostics-utils.adb: Same as above.
+ 	* diagnostics.adb: Same as above.
+ 	* diagnostics.ads: Same as above.
+ 	* errout.adb: Same as above.
+ 	* erroutc.adb: Same as above.
+ 	* erroutc.ads: Remove old attriubtes and replace them
+ 	with Error_Msg_Kind.
+ 	* errutil.adb: Same as others.
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb: Use Output_Msg_Location
+ 	* erroutc.adb: add common implementation for printing the
+ 	error message line.
+ 	* erroutc.ads: Add new method Output_Msg_Location
+ 	* errutil.adb: use Output_Msg_Location
+ 
+ 2024-11-26  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-converter.adb: Remove uses of Info_Warning type. Use
+ 	common constructors to simplify implementation.
+ 	* diagnostics-pretty_emitter.adb: Remove Info_Warning type.
+ 	* diagnostics-utils.adb: Remove uses of Info_Warning.
+ 	* diagnostics.adb: Simplify implementation of Primary_Location.
+ 	* diagnostics.ads: Remove Info_Warning type.
+ 
+ 2024-11-26  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: The format of
+ 	the ali file is documented in lib-writ.ads.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-26  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* uname.ads (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Change
+ 	specifications to take a Unit_Name_Type as input.
+ 	(Encoded_Library_Unit_Name): New subprogram.
+ 	(Is_Predefined_Unit_Name): New overloaded subprogram.
+ 	(Get_External_Unit_Name_String): Make use of new
+ 	Encoded_Library_Unit_Name subprogram.
+ 	* uname.adb (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Adapt
+ 	bodies to specification changes.
+ 	* fname-uf.adb (Get_File_Name): Adapt to Uname interface changes.
+ 
+ 2024-11-26  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fname-uf.adb (Get_File_Name): Use local name buffers.
+ 
+ 2024-11-26  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Get_Library_Unit_Name): Improve use of Uname.
+ 
+ 2024-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb: Remove clauses for Exp_Ch3.
+ 	(Check_Address_Clause): Always reassign the tag for an object of a
+ 	tagged type if there is an initialization expression.
+ 
+ 2024-11-23  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* gcc-interface/Make-lang.in (gnattools): Remove $(GCC_PARTS).
+ 
+ 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR bootstrap/117737
+ 	* gcc-interface/misc.cc (INCLUDE_MEMORY): Remove.
+ 	* gcc-interface/trans.cc (INCLUDE_MEMORY): Remove.
+ 	* gcc-interface/utils.cc (INCLUDE_MEMORY): Remove.
+ 
+ 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117024
+ 	* gcc-interface/utils.cc (flag_isoc2y): New variable.
+ 
+ 2024-11-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117538
+ 	PR ada/117708
+ 	* Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_PAIRS).
+ 	(x86-64 kfreebsd): Likewise.
+ 	(aarch64 FreeBSD): Likewise.
+ 	(x86-64 DragonFly): Likewise.
+ 	(S390 Linux): Likewise and add Linux version of s-tsmona.adb.
+ 	(Mips Linux): Likewise.
+ 	(SPARC Linux): Likewise.
+ 	(HP/PA Linux): Linux.
+ 	(M68K Linux): Likewise.
+ 	(SH4 Linux): Likewise.
+ 	(Alpha Linux): Likewise.
+ 	(RISC-V Linux): Likewise.
+ 
+ 2024-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117538
+ 	* Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_OBJS).
+ 	(x86-64 kfreebsd): Likewise.
+ 	(aarch64 FreeBSD): Likewise.
+ 	(x86-64 DragonFly): Likewise.
+ 	(S390 Linux): Likewise.
+ 	(Mips Linux): Likewise.
+ 	(SPARC Linux): Likewise.
+ 	(HP/PA Linux): Linux.
+ 	(M68K Linux): Likewise.
+ 	(SH4 Linux): Likewise.
+ 	(Alpha Linux): Likewise.
+ 	(RISC-V Linux): Likewise.
+ 
+ 2024-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Within_Case_Or_If_Expression): Rename into...
+ 	(Within_Conditional_Expression): ...this.
+ 	* exp_util.adb (Within_Case_Or_If_Expression): Rename into...
+ 	(Within_Conditional_Expression): ...this.
+ 	* checks.adb (Install_Null_Excluding_Check): Adjust for renaming.
+ 
+ 2024-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Assignment_With_Temporary): Inline into...
+ 	(Build_Array_Aggr_Code): ...this.  Set the Analyzed flag on the
+ 	relocated aggregate if it is to be handled by the back-end.
+ 
+ 2024-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb: Remove clauses for Expander.
+ 	(Expand_N_Object_Declaration): Remove special processing for delayed
+ 	aggregates of limited types as initialization expressions.
+ 	* freeze.adb (Warn_Overlay): Bail out if No_Initialization is set on
+ 	the declaration node of the entity.
+ 	* sem_ch3.adb (Delayed_Aspect_Present): Delete.
+ 	(Expand_N_Object_Declaration): Do not block the resolution of the
+ 	initialization expression that is an aggregate when the object has
+ 	an address clause or delayed aspects.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Remove the test on
+ 	enclosing predicate function for the return optimization.
+ 	Rewrite it in the general case to catch all nondynamic predicates.
+ 	(Expand_N_If_Expression): Remove the test on enclosing predicate
+ 	function for the return optimization.
+ 
+ 2024-11-18  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst:
+ 	Remove Atomic_Synchronization.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Likewise.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: DRY.
+ 	Consolidate documentation of Disable/Enable_Atomic_Synchronization.
+ 	* checks.adb: Comment fix.
+ 	* exp_util.ads: Likewise.
+ 	* targparm.ads: Likewise.
+ 	* types.ads: Likewise.
+ 	* gnat1drv.adb: Likewise. DRY.
+ 	* sem_prag.adb (Process_Disable_Enable_Atomic_Sync):
+ 	Change name of Atomic_Synchronization to start with
+ 	underscore.
+ 	(Process_Suppress_Unsuppress): No need to check Comes_From_Source for
+ 	Atomic_Synchronization anymore; _Atomic_Synchronization can never
+ 	come from source. (Anyway, it shouldn't be ignored; it should be
+ 	an error.)
+ 	* snames.ads-tmpl (Atomic_Synchronization):
+ 	Change name to start with underscore.
+ 	* switch-c.adb (Scan_Front_End_Switches):
+ 	Minor cleanup: Use 'in'.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_eval.adb (Eval_Indexed_Component): Clear Do_Range_Check on
+ 	the expressions if Kill_Range_Check is set on the node.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Remove_Init_Call): Rewrite a compound statement in
+ 	the Initialization_Statements of the variable as a null statement
+ 	instead of removing it.
+ 	* freeze.adb (Explode_Initialization_Compound_Statement): Small
+ 	comment tweaks.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (UI_Are_In_Int_Range): New predicate.
+ 	(Aggr_Size_OK): Use it.
+ 	(Flatten): Likewise.
+ 	(Packed_Array_Aggregate_Handled): Likewise.
+ 	(Static_Array_Aggregate): Likewise.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.ads (Explode_Initialization_Compound_Statement): Adjust the
+ 	description.
+ 	* freeze.adb (Explode_Initialization_Compound_Statement): If the
+ 	entity has its freezing delayed, append the initialization actions
+ 	to its freeze actions.
+ 	(Freeze_Object_Declaration): Remove commented out code.
+ 	(Freeze_Entity): Remove bypass for object of anonymous array type.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_sel.ads (Build_Abort_Block): Remove second parameter and
+ 	rename the third.
+ 	(Build_Abort_Block_Handler): Fix description.
+ 	* exp_sel.adb (Build_Abort_Block): Remove second parameter, rename
+ 	the third and adjust accordingly.
+ 	* exp_ch9.adb (Expand_N_Asynchronous_Select): Fix the description
+ 	of the exception handler throughout.  Remove Abort_Block_Ent and
+ 	Hdle local variables.  Call Build_Abort_Block consistently to build
+ 	the abort block and adjust existing calls.
+ 
+ 2024-11-18  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Positional.Flatten): Avoid raising
+ 	Constraint_Error in UI_To_Int by testing UI_Is_In_Int_Range first.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Build the simple assignment
+ 	for the case of an aggregate that can be handled by the back end.
+ 	(Expand_Array_Aggregate): Adjust description of the processing.
+ 	Move handling of declaration case to STEP 4 and remove handling of
+ 	the case of an aggregate that can be processed by the back end.
+ 	(Late_Expansion): Likewise for the second part.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Deal with a delayed
+ 	aggregate synthesized for the default initialization, if any.
+ 	* sem_eval.adb (Eval_Indexed_Component): Bail out for the name of
+ 	an assignment statement.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (In_Place_Assign_OK): Remove handling of allocators
+ 	and call Must_Slide instead of implementing the check manually.
+ 	(Convert_To_Assignments): Adjust outdated comment.
+ 	(Expand_Array_Aggregate): Move handling of allocator case to STEP 3
+ 	and call Must_Slide directly for it.
+ 	(Must_Slide): Replace tests based on Is_OK_Static_Expression with
+ 	tests based on Compile_Time_Known_Value.
+ 
+ 2024-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_Array_Aggr_In_Allocator): Delete.
+ 	(Convert_Aggr_In_Allocator): Do not call above procedure.
+ 	(Late_Expansion): Deal with a target that is the dereference of a
+ 	prefix with a Storage_Model.  Remove an useless actual parameter
+ 	in the call to Build_Array_Aggr_Code.
+ 
+ 2024-11-18  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Actuals): Add by default a null-exclusion
+ 	check on the prefix of the call when it is an access-type; it can
+ 	be disabled using -gnatd_P.
+ 	* debug.adb (gnatd_P): Update documentation.
+ 
+ 2024-11-18  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Accessibility_Level): Handle the Input attribute
+ 	case
+ 
+ 2024-11-18  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* frontend.adb (Frontend): tweak test for predefined main unit.
+ 
+ 2024-11-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (elaborate_expression_2): Do not divide and
+ 	multiply back if the alignment factor is already explicit.
+ 
+ 2024-11-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Delta_Aggregate): The rule about
+ 	discriminant dependent component references in choices applies to
+ 	both array and record delta aggregates, so check for violations in
+ 	Resolve_Delta_Aggregate. Call a new procedure,
+ 	Check_For_Bad_Dd_Component_Choice, for each choice.
+ 	(Resolve_Delta_Record_Aggregate): Call a new procedure,
+ 	Check_For_Bad_Overlap, for each pair of choices.
+ 
+ 2024-11-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Elab_Calls): Tweak test.
+ 	(Gen_Elab_Externals): Likewise.
+ 
+ 2024-11-14  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/a-strmap.adb: Add assert to regain proofs.
+ 	* libgnat/a-strsup.adb: Likewise.
+ 	* libgnat/s-aridou.adb: Add assertions to regain proofs.
+ 	* libgnat/s-arit32.adb: Use Exceptional_Cases to specify Raise.
+ 	* libgnat/s-arit64.adb: Use Round_Quatient from Impl instead of
+ 	redefining it.
+ 	* libgnat/s-arit64.ads: Likewise.
+ 	* libgnat/s-expmod.adb: Regain proof of lemma.
+ 	* libgnat/s-exponn.adb: Likewise.
+ 	* libgnat/s-expont.adb: Likewise.
+ 	* libgnat/s-imgboo.adb: Add local lemma to regain proof.
+ 	* libgnat/s-valuti.ads: Add Always_Terminates on Bad_Value.
+ 
+ 2024-11-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-imagef.ads (Image_Fixed): Adjust outdated sentence.
+ 
+ 2024-11-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Record_Hole_Check): Deal consistently with the base
+ 	type throughout the processing.  Return if its declaration is not a
+ 	full type declaration.  Assert that its record definition is either
+ 	a derived type definition or a record definition.  If the type has a
+ 	private declaration that does not specify unknown discriminants, use
+ 	it as the source of discriminant specifications, if any.
+ 	(Check_Component_List): Process every N_Discriminant_Specification
+ 	but assert that its defining identifier is really a discriminant.
+ 
+ 2024-11-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-aridou.ads (Add_With_Ovflo_Check): Adjust description.
+ 	(Subtract_With_Ovflo_Check): Likewise.
+ 	(Multiply_With_Ovflo_Check): Likewise.
+ 	(Scaled_Divide): Likewise.
+ 	(Double_Divide): Likewise.
+ 	* libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise.
+ 	* libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise.
+ 
+ 2024-11-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112524
+ 	PR ada/113781
+ 	* par-ch4.adb (P_Primary) <Tok_For>: Give an error about missing
+ 	parentheses in the (purported) iterated component case too.
+ 	(P_Unparen_Cond_Expr_Etc): Likewise.
+ 	* sem.adb (Analyze): Raise PE on N_Iterated_Component_Association.
+ 	* sem_util.ads (Diagnose_Iterated_Component_Association): Delete.
+ 	* sem_util.adb (Diagnose_Iterated_Component_Association): Likewise.
+ 
+ 2024-11-12  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/Makefile.in: Remove extra 'with'.
+ 
+ 2024-11-12  squirek  <squirek@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Assignment): Add condition to fetch corresponding
+ 	record types for concurrent tagged types.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized
+ 	from the index type to compute the length.  Simplify and remove
+ 	useless calls to New_Copy_Tree for this computation.
+ 
+ 2024-11-12  Pat Bernardi  <bernardi@adacore.com>
+ 
+ 	* libgnarl/a-dynpri.ads: Add design annotations.
+ 	* libgnarl/a-reatim.ads: Likewise.
+ 	* libgnarl/a-synbar.ads: Likewise.
+ 	* libgnarl/a-taside.ads: Likewise.
+ 	* libgnarl/s-tarest.ads: Likewise.
+ 	* libgnarl/s-tasinf.ads: Likewise.
+ 	* libgnarl/s-taspri__posix.ads: Likewise.
+ 	* libgnarl/s-tpobmu.ads: Likewise.
+ 	* libgnat/a-assert.ads: Likewise.
+ 	* libgnat/a-comlin.ads: Likewise.
+ 	* libgnat/a-nbnbig.ads: Likewise.
+ 	* libgnat/a-nubinu.ads: Likewise.
+ 	* libgnat/a-numeri.ads: Likewise.
+ 	* libgnat/a-unccon.ads: Likewise.
+ 	* libgnat/a-uncdea.ads: Likewise.
+ 	* libgnat/ada.ads: Likewise.
+ 	* libgnat/g-debuti.ads: Likewise.
+ 	* libgnat/g-sestin.ads: Likewise.
+ 	* libgnat/g-souinf.ads: Likewise.
+ 	* libgnat/gnat.ads: Likewise.
+ 	* libgnat/i-cexten.ads: Likewise.
+ 	* libgnat/i-cexten__128.ads: Likewise.
+ 	* libgnat/i-cstrin.adb: Likewise.
+ 	* libgnat/i-cstrin.ads: Likewise.
+ 	* libgnat/interfac__2020.ads: Likewise.
+ 	* libgnat/machcode.ads: Likewise.
+ 	* libgnat/s-addope.ads: Likewise.
+ 	* libgnat/s-aridou.ads: Likewise.
+ 	* libgnat/s-arit32.ads: Likewise.
+ 	* libgnat/s-arit64.ads: Likewise.
+ 	* libgnat/s-assert.ads: Likewise.
+ 	* libgnat/s-atacco.ads: Likewise.
+ 	* libgnat/s-atocou.ads: Likewise.
+ 	* libgnat/s-atocou__builtin.adb: Likewise.
+ 	* libgnat/s-atopri.ads: Likewise.
+ 	* libgnat/s-bitops.ads: Likewise.
+ 	* libgnat/s-boarop.ads: Likewise.
+ 	* libgnat/s-bytswa.ads: Likewise.
+ 	* libgnat/s-carsi8.ads: Likewise.
+ 	* libgnat/s-carun8.ads: Likewise.
+ 	* libgnat/s-casi16.ads: Likewise.
+ 	* libgnat/s-casi32.ads: Likewise.
+ 	* libgnat/s-casi64.ads: Likewise.
+ 	* libgnat/s-caun16.ads: Likewise.
+ 	* libgnat/s-caun32.ads: Likewise.
+ 	* libgnat/s-caun64.ads: Likewise.
+ 	* libgnat/s-exnint.ads: Likewise.
+ 	* libgnat/s-exnllf.ads: Likewise.
+ 	* libgnat/s-exnlli.ads: Likewise.
+ 	* libgnat/s-expint.ads: Likewise.
+ 	* libgnat/s-explli.ads: Likewise.
+ 	* libgnat/s-expllu.ads: Likewise.
+ 	* libgnat/s-expmod.ads: Likewise.
+ 	* libgnat/s-exponn.ads: Likewise.
+ 	* libgnat/s-expont.ads: Likewise.
+ 	* libgnat/s-exponu.ads: Likewise.
+ 	* libgnat/s-expuns.ads: Likewise.
+ 	* libgnat/s-fatflt.ads: Likewise.
+ 	* libgnat/s-fatgen.ads: Likewise.
+ 	* libgnat/s-fatlfl.ads: Likewise.
+ 	* libgnat/s-fatllf.ads: Likewise.
+ 	* libgnat/s-flocon.ads: Likewise.
+ 	* libgnat/s-geveop.ads: Likewise.
+ 	* libgnat/s-imageb.ads: Likewise.
+ 	* libgnat/s-imaged.ads: Likewise.
+ 	* libgnat/s-imagef.ads: Likewise.
+ 	* libgnat/s-imagei.ads: Likewise.
+ 	* libgnat/s-imagen.ads: Likewise.
+ 	* libgnat/s-imageu.ads: Likewise.
+ 	* libgnat/s-imagew.ads: Likewise.
+ 	* libgnat/s-imde128.ads: Likewise.
+ 	* libgnat/s-imde32.ads: Likewise.
+ 	* libgnat/s-imde64.ads: Likewise.
+ 	* libgnat/s-imen16.ads: Likewise.
+ 	* libgnat/s-imen32.ads: Likewise.
+ 	* libgnat/s-imenu8.ads: Likewise.
+ 	* libgnat/s-imfi32.ads: Likewise.
+ 	* libgnat/s-imfi64.ads: Likewise.
+ 	* libgnat/s-imgbiu.ads: Likewise.
+ 	* libgnat/s-imgboo.ads: Likewise.
+ 	* libgnat/s-imgcha.ads: Likewise.
+ 	* libgnat/s-imgint.ads: Likewise.
+ 	* libgnat/s-imgllb.ads: Likewise.
+ 	* libgnat/s-imglli.ads: Likewise.
+ 	* libgnat/s-imgllu.ads: Likewise.
+ 	* libgnat/s-imgllw.ads: Likewise.
+ 	* libgnat/s-imgrea.ads: Likewise.
+ 	* libgnat/s-imguns.ads: Likewise.
+ 	* libgnat/s-imguti.ads: Likewise.
+ 	* libgnat/s-imgwiu.ads: Likewise.
+ 	* libgnat/s-maccod.ads: Likewise.
+ 	* libgnat/s-multip.ads: Likewise.
+ 	* libgnat/s-pack03.ads: Likewise.
+ 	* libgnat/s-pack05.ads: Likewise.
+ 	* libgnat/s-pack06.ads: Likewise.
+ 	* libgnat/s-pack07.ads: Likewise.
+ 	* libgnat/s-pack09.ads: Likewise.
+ 	* libgnat/s-pack10.ads: Likewise.
+ 	* libgnat/s-pack100.ads: Likewise.
+ 	* libgnat/s-pack101.ads: Likewise.
+ 	* libgnat/s-pack102.ads: Likewise.
+ 	* libgnat/s-pack103.ads: Likewise.
+ 	* libgnat/s-pack104.ads: Likewise.
+ 	* libgnat/s-pack105.ads: Likewise.
+ 	* libgnat/s-pack106.ads: Likewise.
+ 	* libgnat/s-pack107.ads: Likewise.
+ 	* libgnat/s-pack108.ads: Likewise.
+ 	* libgnat/s-pack109.ads: Likewise.
+ 	* libgnat/s-pack11.ads: Likewise.
+ 	* libgnat/s-pack110.ads: Likewise.
+ 	* libgnat/s-pack111.ads: Likewise.
+ 	* libgnat/s-pack112.ads: Likewise.
+ 	* libgnat/s-pack113.ads: Likewise.
+ 	* libgnat/s-pack114.ads: Likewise.
+ 	* libgnat/s-pack115.ads: Likewise.
+ 	* libgnat/s-pack116.ads: Likewise.
+ 	* libgnat/s-pack117.ads: Likewise.
+ 	* libgnat/s-pack118.ads: Likewise.
+ 	* libgnat/s-pack119.ads: Likewise.
+ 	* libgnat/s-pack12.ads: Likewise.
+ 	* libgnat/s-pack120.ads: Likewise.
+ 	* libgnat/s-pack121.ads: Likewise.
+ 	* libgnat/s-pack122.ads: Likewise.
+ 	* libgnat/s-pack123.ads: Likewise.
+ 	* libgnat/s-pack124.ads: Likewise.
+ 	* libgnat/s-pack125.ads: Likewise.
+ 	* libgnat/s-pack126.ads: Likewise.
+ 	* libgnat/s-pack127.ads: Likewise.
+ 	* libgnat/s-pack13.ads: Likewise.
+ 	* libgnat/s-pack14.ads: Likewise.
+ 	* libgnat/s-pack15.ads: Likewise.
+ 	* libgnat/s-pack17.ads: Likewise.
+ 	* libgnat/s-pack18.ads: Likewise.
+ 	* libgnat/s-pack19.ads: Likewise.
+ 	* libgnat/s-pack20.ads: Likewise.
+ 	* libgnat/s-pack21.ads: Likewise.
+ 	* libgnat/s-pack22.ads: Likewise.
+ 	* libgnat/s-pack23.ads: Likewise.
+ 	* libgnat/s-pack24.ads: Likewise.
+ 	* libgnat/s-pack25.ads: Likewise.
+ 	* libgnat/s-pack26.ads: Likewise.
+ 	* libgnat/s-pack27.ads: Likewise.
+ 	* libgnat/s-pack28.ads: Likewise.
+ 	* libgnat/s-pack29.ads: Likewise.
+ 	* libgnat/s-pack30.ads: Likewise.
+ 	* libgnat/s-pack31.ads: Likewise.
+ 	* libgnat/s-pack33.ads: Likewise.
+ 	* libgnat/s-pack34.ads: Likewise.
+ 	* libgnat/s-pack35.ads: Likewise.
+ 	* libgnat/s-pack36.ads: Likewise.
+ 	* libgnat/s-pack37.ads: Likewise.
+ 	* libgnat/s-pack38.ads: Likewise.
+ 	* libgnat/s-pack39.ads: Likewise.
+ 	* libgnat/s-pack40.ads: Likewise.
+ 	* libgnat/s-pack41.ads: Likewise.
+ 	* libgnat/s-pack42.ads: Likewise.
+ 	* libgnat/s-pack43.ads: Likewise.
+ 	* libgnat/s-pack44.ads: Likewise.
+ 	* libgnat/s-pack45.ads: Likewise.
+ 	* libgnat/s-pack46.ads: Likewise.
+ 	* libgnat/s-pack47.ads: Likewise.
+ 	* libgnat/s-pack48.ads: Likewise.
+ 	* libgnat/s-pack49.ads: Likewise.
+ 	* libgnat/s-pack50.ads: Likewise.
+ 	* libgnat/s-pack51.ads: Likewise.
+ 	* libgnat/s-pack52.ads: Likewise.
+ 	* libgnat/s-pack53.ads: Likewise.
+ 	* libgnat/s-pack54.ads: Likewise.
+ 	* libgnat/s-pack55.ads: Likewise.
+ 	* libgnat/s-pack56.ads: Likewise.
+ 	* libgnat/s-pack57.ads: Likewise.
+ 	* libgnat/s-pack58.ads: Likewise.
+ 	* libgnat/s-pack59.ads: Likewise.
+ 	* libgnat/s-pack60.ads: Likewise.
+ 	* libgnat/s-pack61.ads: Likewise.
+ 	* libgnat/s-pack62.ads: Likewise.
+ 	* libgnat/s-pack63.ads: Likewise.
+ 	* libgnat/s-pack65.ads: Likewise.
+ 	* libgnat/s-pack66.ads: Likewise.
+ 	* libgnat/s-pack67.ads: Likewise.
+ 	* libgnat/s-pack68.ads: Likewise.
+ 	* libgnat/s-pack69.ads: Likewise.
+ 	* libgnat/s-pack70.ads: Likewise.
+ 	* libgnat/s-pack71.ads: Likewise.
+ 	* libgnat/s-pack72.ads: Likewise.
+ 	* libgnat/s-pack73.ads: Likewise.
+ 	* libgnat/s-pack74.ads: Likewise.
+ 	* libgnat/s-pack75.ads: Likewise.
+ 	* libgnat/s-pack76.ads: Likewise.
+ 	* libgnat/s-pack77.ads: Likewise.
+ 	* libgnat/s-pack78.ads: Likewise.
+ 	* libgnat/s-pack79.ads: Likewise.
+ 	* libgnat/s-pack80.ads: Likewise.
+ 	* libgnat/s-pack81.ads: Likewise.
+ 	* libgnat/s-pack82.ads: Likewise.
+ 	* libgnat/s-pack83.ads: Likewise.
+ 	* libgnat/s-pack84.ads: Likewise.
+ 	* libgnat/s-pack85.ads: Likewise.
+ 	* libgnat/s-pack86.ads: Likewise.
+ 	* libgnat/s-pack87.ads: Likewise.
+ 	* libgnat/s-pack88.ads: Likewise.
+ 	* libgnat/s-pack89.ads: Likewise.
+ 	* libgnat/s-pack90.ads: Likewise.
+ 	* libgnat/s-pack91.ads: Likewise.
+ 	* libgnat/s-pack92.ads: Likewise.
+ 	* libgnat/s-pack93.ads: Likewise.
+ 	* libgnat/s-pack94.ads: Likewise.
+ 	* libgnat/s-pack95.ads: Likewise.
+ 	* libgnat/s-pack96.ads: Likewise.
+ 	* libgnat/s-pack97.ads: Likewise.
+ 	* libgnat/s-pack98.ads: Likewise.
+ 	* libgnat/s-pack99.ads: Likewise.
+ 	* libgnat/s-parame.ads: Likewise.
+ 	* libgnat/s-rident.ads: Likewise.
+ 	* libgnat/s-spark.ads: Likewise.
+ 	* libgnat/s-spcuop.ads: Likewise.
+ 	* libgnat/s-stoele.ads: Likewise.
+ 	* libgnat/s-traent.ads: Likewise.
+ 	* libgnat/s-unstyp.ads: Likewise.
+ 	* libgnat/s-vaispe.ads: Likewise.
+ 	* libgnat/s-valspe.ads: Likewise.
+ 	* libgnat/s-vauspe.ads: Likewise.
+ 	* libgnat/s-veboop.ads: Likewise.
+ 	* libgnat/s-vector.ads: Likewise.
+ 	* libgnat/s-vs_int.ads: Likewise.
+ 	* libgnat/s-vs_lli.ads: Likewise.
+ 	* libgnat/s-vs_llu.ads: Likewise.
+ 	* libgnat/s-vs_uns.ads: Likewise.
+ 	* libgnat/s-vsllli.ads: Likewise.
+ 	* libgnat/text_io.ads: Likewise.
+ 	* libgnat/unchconv.ads: Likewise.
+ 	* libgnat/unchdeal.ads: Likewise.
+ 	* s-pack.ads.tmpl: Likewise.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* s-pack.adb.tmpl: Add '7' suffix to all existing constructs and
+ 	add variants with suffixes ranging from '0' to '6'.
+ 	(Get_@@): Dereference the address as a record object whose accessed
+ 	component is always the last.
+ 	(GetU_@@): Likewise.
+ 	(Set_@@): Likewise.
+ 	(SetU_@@): Likewise.
+ 	* libgnat/s-pack03.adb: Regenerate.
+ 	* libgnat/s-pack05.adb: Likewise.
+ 	* libgnat/s-pack06.adb: Likewise.
+ 	* libgnat/s-pack07.adb: Likewise.
+ 	* libgnat/s-pack09.adb: Likewise.
+ 	* libgnat/s-pack10.adb: Likewise.
+ 	* libgnat/s-pack100.adb: Likewise.
+ 	* libgnat/s-pack101.adb: Likewise.
+ 	* libgnat/s-pack102.adb: Likewise.
+ 	* libgnat/s-pack103.adb: Likewise.
+ 	* libgnat/s-pack104.adb: Likewise.
+ 	* libgnat/s-pack105.adb: Likewise.
+ 	* libgnat/s-pack106.adb: Likewise.
+ 	* libgnat/s-pack107.adb: Likewise.
+ 	* libgnat/s-pack108.adb: Likewise.
+ 	* libgnat/s-pack109.adb: Likewise.
+ 	* libgnat/s-pack11.adb: Likewise.
+ 	* libgnat/s-pack110.adb: Likewise.
+ 	* libgnat/s-pack111.adb: Likewise.
+ 	* libgnat/s-pack112.adb: Likewise.
+ 	* libgnat/s-pack113.adb: Likewise.
+ 	* libgnat/s-pack114.adb: Likewise.
+ 	* libgnat/s-pack115.adb: Likewise.
+ 	* libgnat/s-pack116.adb: Likewise.
+ 	* libgnat/s-pack117.adb: Likewise.
+ 	* libgnat/s-pack118.adb: Likewise.
+ 	* libgnat/s-pack119.adb: Likewise.
+ 	* libgnat/s-pack12.adb: Likewise.
+ 	* libgnat/s-pack120.adb: Likewise.
+ 	* libgnat/s-pack121.adb: Likewise.
+ 	* libgnat/s-pack122.adb: Likewise.
+ 	* libgnat/s-pack123.adb: Likewise.
+ 	* libgnat/s-pack124.adb: Likewise.
+ 	* libgnat/s-pack125.adb: Likewise.
+ 	* libgnat/s-pack126.adb: Likewise.
+ 	* libgnat/s-pack127.adb: Likewise.
+ 	* libgnat/s-pack13.adb: Likewise.
+ 	* libgnat/s-pack14.adb: Likewise.
+ 	* libgnat/s-pack15.adb: Likewise.
+ 	* libgnat/s-pack17.adb: Likewise.
+ 	* libgnat/s-pack18.adb: Likewise.
+ 	* libgnat/s-pack19.adb: Likewise.
+ 	* libgnat/s-pack20.adb: Likewise.
+ 	* libgnat/s-pack21.adb: Likewise.
+ 	* libgnat/s-pack22.adb: Likewise.
+ 	* libgnat/s-pack23.adb: Likewise.
+ 	* libgnat/s-pack24.adb: Likewise.
+ 	* libgnat/s-pack25.adb: Likewise.
+ 	* libgnat/s-pack26.adb: Likewise.
+ 	* libgnat/s-pack27.adb: Likewise.
+ 	* libgnat/s-pack28.adb: Likewise.
+ 	* libgnat/s-pack29.adb: Likewise.
+ 	* libgnat/s-pack30.adb: Likewise.
+ 	* libgnat/s-pack31.adb: Likewise.
+ 	* libgnat/s-pack33.adb: Likewise.
+ 	* libgnat/s-pack34.adb: Likewise.
+ 	* libgnat/s-pack35.adb: Likewise.
+ 	* libgnat/s-pack36.adb: Likewise.
+ 	* libgnat/s-pack37.adb: Likewise.
+ 	* libgnat/s-pack38.adb: Likewise.
+ 	* libgnat/s-pack39.adb: Likewise.
+ 	* libgnat/s-pack40.adb: Likewise.
+ 	* libgnat/s-pack41.adb: Likewise.
+ 	* libgnat/s-pack42.adb: Likewise.
+ 	* libgnat/s-pack43.adb: Likewise.
+ 	* libgnat/s-pack44.adb: Likewise.
+ 	* libgnat/s-pack45.adb: Likewise.
+ 	* libgnat/s-pack46.adb: Likewise.
+ 	* libgnat/s-pack47.adb: Likewise.
+ 	* libgnat/s-pack48.adb: Likewise.
+ 	* libgnat/s-pack49.adb: Likewise.
+ 	* libgnat/s-pack50.adb: Likewise.
+ 	* libgnat/s-pack51.adb: Likewise.
+ 	* libgnat/s-pack52.adb: Likewise.
+ 	* libgnat/s-pack53.adb: Likewise.
+ 	* libgnat/s-pack54.adb: Likewise.
+ 	* libgnat/s-pack55.adb: Likewise.
+ 	* libgnat/s-pack56.adb: Likewise.
+ 	* libgnat/s-pack57.adb: Likewise.
+ 	* libgnat/s-pack58.adb: Likewise.
+ 	* libgnat/s-pack59.adb: Likewise.
+ 	* libgnat/s-pack60.adb: Likewise.
+ 	* libgnat/s-pack61.adb: Likewise.
+ 	* libgnat/s-pack62.adb: Likewise.
+ 	* libgnat/s-pack63.adb: Likewise.
+ 	* libgnat/s-pack65.adb: Likewise.
+ 	* libgnat/s-pack66.adb: Likewise.
+ 	* libgnat/s-pack67.adb: Likewise.
+ 	* libgnat/s-pack68.adb: Likewise.
+ 	* libgnat/s-pack69.adb: Likewise.
+ 	* libgnat/s-pack70.adb: Likewise.
+ 	* libgnat/s-pack71.adb: Likewise.
+ 	* libgnat/s-pack72.adb: Likewise.
+ 	* libgnat/s-pack73.adb: Likewise.
+ 	* libgnat/s-pack74.adb: Likewise.
+ 	* libgnat/s-pack75.adb: Likewise.
+ 	* libgnat/s-pack76.adb: Likewise.
+ 	* libgnat/s-pack77.adb: Likewise.
+ 	* libgnat/s-pack78.adb: Likewise.
+ 	* libgnat/s-pack79.adb: Likewise.
+ 	* libgnat/s-pack80.adb: Likewise.
+ 	* libgnat/s-pack81.adb: Likewise.
+ 	* libgnat/s-pack82.adb: Likewise.
+ 	* libgnat/s-pack83.adb: Likewise.
+ 	* libgnat/s-pack84.adb: Likewise.
+ 	* libgnat/s-pack85.adb: Likewise.
+ 	* libgnat/s-pack86.adb: Likewise.
+ 	* libgnat/s-pack87.adb: Likewise.
+ 	* libgnat/s-pack88.adb: Likewise.
+ 	* libgnat/s-pack89.adb: Likewise.
+ 	* libgnat/s-pack90.adb: Likewise.
+ 	* libgnat/s-pack91.adb: Likewise.
+ 	* libgnat/s-pack92.adb: Likewise.
+ 	* libgnat/s-pack93.adb: Likewise.
+ 	* libgnat/s-pack94.adb: Likewise.
+ 	* libgnat/s-pack95.adb: Likewise.
+ 	* libgnat/s-pack96.adb: Likewise.
+ 	* libgnat/s-pack97.adb: Likewise.
+ 	* libgnat/s-pack98.adb: Likewise.
+ 	* libgnat/s-pack99.adb: Likewise.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114127
+ 	* sem_aggr.adb (Is_Null_Aggregate): Replace test on Ada_Version
+ 	with test on Nkind.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Do not call
+ 	Checks_Off on the newly built N_Indexed_Component node but instead
+ 	set Kill_Range_Check on it.
+ 	* exp_ch4.ads (Expand_N_Unchecked_Expression): Delete.
+ 	* exp_ch4.adb (Expand_N_Indexed_Component): Remove handling of
+ 	N_Unchecked_Expression.
+ 	(Expand_N_Unchecked_Expression): Delete.
+ 	(Expand_N_Unchecked_Type_Conversion): Propagate the Assignment_OK
+ 	flag and rewrite the node manually.
+ 	* exp_util.adb (Insert_Actions): Remove handling of
+ 	N_Unchecked_Expression.
+ 	(Side_Effect_Free): Likewise.
+ 	* expander.adb (Expand): Likewise.
+ 	* gen_il-gen-gen_nodes.adb (N_Indexed_Component): Add flag
+ 	Kill_Range_Check for the purpose of semantics.
+ 	(N_Unchecked_Expression): Delete.
+ 	* gen_il-internals.ads (Type_Frequency): Remove entry for
+ 	N_Unchecked_Expression.
+ 	* gen_il-types.ads (Opt_Type_Enum): Remove N_Unchecked_Expression.
+ 	* pprint.adb (Expression_Image): Remove handling of
+ 	N_Unchecked_Expression.
+ 	* sem.adb (Analyze): Likewise.
+ 	* sem_ch4.ads (Analyze_Unchecked_Expression): Delete.
+ 	* sem_ch4.adb (Analyze_Unchecked_Expression): Likewise.
+ 	* sem_res.adb (Resolve_Unchecked_Expression): Likewise.
+ 	(Resolve): Remove handling of N_Unchecked_Expression.
+ 	(Resolve_Indexed_Component): Do not call Apply_Scalar_Range_Check
+ 	on the expressions if Kill_Range_Check is set on the node.
+ 	* sem_util.adb (Is_Non_Preelaborable_Construct): Remove handling of
+ 	N_Unchecked_Expression.
+ 	* sinfo.ads (Kill_Range_Check): Document it for N_Indexed_Component.
+ 	(Unchecked Expression): Delete specification.
+ 	* sprint.adb (Sprint_Node_Actual): Remove handling of
+ 	N_Unchecked_Expression.
+ 	* tbuild.ads (Checks_Off): Delete.
+ 	* tbuild.adb (Checks_Off): Likewise.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112979
+ 	* sem_ch8.adb (Find_Selected_Component): Try to recognize the
+ 	object operation notation only if the selector is a subprogram.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113037
+ 	* sem_prag.adb (Analyze_Pragma) <Pragma_Invariant>: Reject types
+ 	that are derived from formal private types.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112821
+ 	* scans.ads (Token_Type): Remove Tok_Left_Bracket from Namext.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114300
+ 	* exp_ch7.adb (Attach_Object_To_Master_Node): Propagate the
+ 	Is_Ignored_Ghost_Entity flag from the finalization procedure.
+ 	(Build_Finalizer.Process_Declarations): Move up the test on
+ 	Is_Ignored_Ghost_Entity.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Likewise.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/55725
+ 	* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Be
+ 	prepared for no collection if the access type is anonymous.
+ 	* exp_ch7.adb (Build_Anonymous_Collection): Return early for the
+ 	anonymous access result type of a library function.
+ 
+ 2024-11-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Make_Variant_Comparison): Accept new types in
+ 	expansion.
+ 	* rtsfind.adb (Get_Unit_Name): Support SPARK.Big_Integers.
+ 	* rtsfind.ads (RTU_Id, RE_Id, RE_Unit_Table): Support new type
+ 	and its enclosing unit.
+ 	* sem_prag.adb (Analyze_Pragma): Support new type in pragma
+ 	Loop_Variant.
+ 	(Analyze_Subprogram_Variant_In_Decl_Part): Support new type in
+ 	aspect Subprogram_Variant.
+ 
+ 2024-11-12  Viljar Indus  <indus@adacore.com>
+ 
+ 	* libgnarl/s-interr__vxworks.ads (new): A VXWorks specific
+ 	version of the file where Register_Interrupt_Handler is marked
+ 	with the Obsolescent pragma.
+ 	* libgnarl/s-interr__vxworks.adb: Remove pragma Obsoloescent
+ 	that had no effect.
+ 	* Makefile.rtl: Add entries for using the
+ 	libgnarl/s-interr__vxworks.ads file.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113868
+ 	* par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>:
+ 	Add delta aggregate alongside the other forms of aggregates.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): In the case of an others
+ 	choice with a box, do not call Resolve_Aggr_Exp and give the error
+ 	for a multidimensional array directly.
+ 	(Resolve_Aggr_Expr): Remove bypasses for above case.
+ 
+ 2024-11-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* frontend.adb (Frontend): Move call to Fmap.Initialize ...
+ 	* gnat1drv.adb (Gnat1drv): ... here. Look up Fmap when loading System.
+ 	* par-prag.adb (Prag): Allow pragma Source_File_Name for System when
+ 	it confirms an existing mapping.
+ 
+ 2024-11-12  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor
+ 	markup errors.
+ 	* doc/gnat_ugn/gnat_utility_programs.rst: Likewise.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* s-pack.adb.tmpl: Add "with System.Address_To_Access_Conversions".
+ 	(Cluster_Ref): Delete.
+ 	(AAC): New instance of System.Address_To_Access_Conversions.
+ 	(Rev_Cluster_Ref): Delete.
+ 	(Rev_ACC): New instance of System.Address_To_Access_Conversions.
+ 	(ClusterU_Ref): Delete.
+ 	(AACU): New instance of System.Address_To_Access_Conversions.
+ 	(Rev_ClusterU_Ref): Delete.
+ 	(Rev_ACCU): New instance of System.Address_To_Access_Conversions.
+ 	(Get_@@): Use a direct address-to-access conversion.
+ 	(GetU_@@): Likewise.
+ 	(Set_@@): Likewise.
+ 	(SetU_@@): Likewise.
+ 	* libgnat/s-pack03.adb: Regenerate.
+ 	* libgnat/s-pack05.adb: Likewise.
+ 	* libgnat/s-pack06.adb: Likewise.
+ 	* libgnat/s-pack07.adb: Likewise.
+ 	* libgnat/s-pack09.adb: Likewise.
+ 	* libgnat/s-pack10.adb: Likewise.
+ 	* libgnat/s-pack100.adb: Likewise.
+ 	* libgnat/s-pack101.adb: Likewise.
+ 	* libgnat/s-pack102.adb: Likewise.
+ 	* libgnat/s-pack103.adb: Likewise.
+ 	* libgnat/s-pack104.adb: Likewise.
+ 	* libgnat/s-pack105.adb: Likewise.
+ 	* libgnat/s-pack106.adb: Likewise.
+ 	* libgnat/s-pack107.adb: Likewise.
+ 	* libgnat/s-pack108.adb: Likewise.
+ 	* libgnat/s-pack109.adb: Likewise.
+ 	* libgnat/s-pack11.adb: Likewise.
+ 	* libgnat/s-pack110.adb: Likewise.
+ 	* libgnat/s-pack111.adb: Likewise.
+ 	* libgnat/s-pack112.adb: Likewise.
+ 	* libgnat/s-pack113.adb: Likewise.
+ 	* libgnat/s-pack114.adb: Likewise.
+ 	* libgnat/s-pack115.adb: Likewise.
+ 	* libgnat/s-pack116.adb: Likewise.
+ 	* libgnat/s-pack117.adb: Likewise.
+ 	* libgnat/s-pack118.adb: Likewise.
+ 	* libgnat/s-pack119.adb: Likewise.
+ 	* libgnat/s-pack12.adb: Likewise.
+ 	* libgnat/s-pack120.adb: Likewise.
+ 	* libgnat/s-pack121.adb: Likewise.
+ 	* libgnat/s-pack122.adb: Likewise.
+ 	* libgnat/s-pack123.adb: Likewise.
+ 	* libgnat/s-pack124.adb: Likewise.
+ 	* libgnat/s-pack125.adb: Likewise.
+ 	* libgnat/s-pack126.adb: Likewise.
+ 	* libgnat/s-pack127.adb: Likewise.
+ 	* libgnat/s-pack13.adb: Likewise.
+ 	* libgnat/s-pack14.adb: Likewise.
+ 	* libgnat/s-pack15.adb: Likewise.
+ 	* libgnat/s-pack17.adb: Likewise.
+ 	* libgnat/s-pack18.adb: Likewise.
+ 	* libgnat/s-pack19.adb: Likewise.
+ 	* libgnat/s-pack20.adb: Likewise.
+ 	* libgnat/s-pack21.adb: Likewise.
+ 	* libgnat/s-pack22.adb: Likewise.
+ 	* libgnat/s-pack23.adb: Likewise.
+ 	* libgnat/s-pack24.adb: Likewise.
+ 	* libgnat/s-pack25.adb: Likewise.
+ 	* libgnat/s-pack26.adb: Likewise.
+ 	* libgnat/s-pack27.adb: Likewise.
+ 	* libgnat/s-pack28.adb: Likewise.
+ 	* libgnat/s-pack29.adb: Likewise.
+ 	* libgnat/s-pack30.adb: Likewise.
+ 	* libgnat/s-pack31.adb: Likewise.
+ 	* libgnat/s-pack33.adb: Likewise.
+ 	* libgnat/s-pack34.adb: Likewise.
+ 	* libgnat/s-pack35.adb: Likewise.
+ 	* libgnat/s-pack36.adb: Likewise.
+ 	* libgnat/s-pack37.adb: Likewise.
+ 	* libgnat/s-pack38.adb: Likewise.
+ 	* libgnat/s-pack39.adb: Likewise.
+ 	* libgnat/s-pack40.adb: Likewise.
+ 	* libgnat/s-pack41.adb: Likewise.
+ 	* libgnat/s-pack42.adb: Likewise.
+ 	* libgnat/s-pack43.adb: Likewise.
+ 	* libgnat/s-pack44.adb: Likewise.
+ 	* libgnat/s-pack45.adb: Likewise.
+ 	* libgnat/s-pack46.adb: Likewise.
+ 	* libgnat/s-pack47.adb: Likewise.
+ 	* libgnat/s-pack48.adb: Likewise.
+ 	* libgnat/s-pack49.adb: Likewise.
+ 	* libgnat/s-pack50.adb: Likewise.
+ 	* libgnat/s-pack51.adb: Likewise.
+ 	* libgnat/s-pack52.adb: Likewise.
+ 	* libgnat/s-pack53.adb: Likewise.
+ 	* libgnat/s-pack54.adb: Likewise.
+ 	* libgnat/s-pack55.adb: Likewise.
+ 	* libgnat/s-pack56.adb: Likewise.
+ 	* libgnat/s-pack57.adb: Likewise.
+ 	* libgnat/s-pack58.adb: Likewise.
+ 	* libgnat/s-pack59.adb: Likewise.
+ 	* libgnat/s-pack60.adb: Likewise.
+ 	* libgnat/s-pack61.adb: Likewise.
+ 	* libgnat/s-pack62.adb: Likewise.
+ 	* libgnat/s-pack63.adb: Likewise.
+ 	* libgnat/s-pack65.adb: Likewise.
+ 	* libgnat/s-pack66.adb: Likewise.
+ 	* libgnat/s-pack67.adb: Likewise.
+ 	* libgnat/s-pack68.adb: Likewise.
+ 	* libgnat/s-pack69.adb: Likewise.
+ 	* libgnat/s-pack70.adb: Likewise.
+ 	* libgnat/s-pack71.adb: Likewise.
+ 	* libgnat/s-pack72.adb: Likewise.
+ 	* libgnat/s-pack73.adb: Likewise.
+ 	* libgnat/s-pack74.adb: Likewise.
+ 	* libgnat/s-pack75.adb: Likewise.
+ 	* libgnat/s-pack76.adb: Likewise.
+ 	* libgnat/s-pack77.adb: Likewise.
+ 	* libgnat/s-pack78.adb: Likewise.
+ 	* libgnat/s-pack79.adb: Likewise.
+ 	* libgnat/s-pack80.adb: Likewise.
+ 	* libgnat/s-pack81.adb: Likewise.
+ 	* libgnat/s-pack82.adb: Likewise.
+ 	* libgnat/s-pack83.adb: Likewise.
+ 	* libgnat/s-pack84.adb: Likewise.
+ 	* libgnat/s-pack85.adb: Likewise.
+ 	* libgnat/s-pack86.adb: Likewise.
+ 	* libgnat/s-pack87.adb: Likewise.
+ 	* libgnat/s-pack88.adb: Likewise.
+ 	* libgnat/s-pack89.adb: Likewise.
+ 	* libgnat/s-pack90.adb: Likewise.
+ 	* libgnat/s-pack91.adb: Likewise.
+ 	* libgnat/s-pack92.adb: Likewise.
+ 	* libgnat/s-pack93.adb: Likewise.
+ 	* libgnat/s-pack94.adb: Likewise.
+ 	* libgnat/s-pack95.adb: Likewise.
+ 	* libgnat/s-pack96.adb: Likewise.
+ 	* libgnat/s-pack97.adb: Likewise.
+ 	* libgnat/s-pack98.adb: Likewise.
+ 	* libgnat/s-pack99.adb: Likewise.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sinfo.ads (Assignment_OK): Remove obsolete ??? comment.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Range_Checks_Suppressed): Remove test on the
+ 	Kill_Range_Checks flag.
+ 	* einfo.ads (Kill_Range_Checks): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Kill_Range_Checks.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Likewise.
+ 	* sem_ch3.adb (Record_Type_Declaration): Do not set the
+ 	Kill_Range_Checks flag.
+ 	* sem_util.adb (Denotes_Discriminant): In a default expression,
+ 	also return True for a discriminal.
+ 
+ 2024-11-12  Steve Baird  <baird@adacore.com>
+ 
+ 	* prep.adb (Expression): Improve error message text when an
+ 	implicitly-defined Boolean-valued symbol is used in a context that
+ 	requires an integer value.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Directly test
+ 	the node and remove dead code for extended return statements.
+ 
+ 2024-11-12  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* Makefile.rtl: Use libgnat/s-parame__aarch64-linux.adb for
+ 	s-parame.adb on aarch64-linux.
+ 	* libgnat/s-parame__aarch64-linux.adb: Add file.
+ 
+ 2024-11-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/the_implementation_of_standard_i_o.rst
+ 	(Shared Files): Add trailing period.
+ 	* libgnat/s-ficobl.ads (AFCB): Reflect new behavior in comment.
+ 	* libgnat/s-fileio.adb (Open): Detect inconsistent sharing,
+ 	just like we do in System.File_IO.Reset.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-12  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Type_Access_Level): Add handling for
+ 	subprogram aliases.
+ 
+ 2024-11-12  squirek  <squirek@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Type_Conversion): Add special runtime check
+ 	generation for mutably tagged objects.
+ 
+ 2024-11-12  Douglas B Rupp  <rupp@adacore.com>
+ 
+ 	* libgnat/a-calcon.adb (To_Ada_Time) (To_Duration)
+ 	(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
+ 	(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
+ 	(To_Unix_Time_64): New.
+ 	* libgnat/a-calcon.ads (To_Ada_Time) (To_Duration)
+ 	(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
+ 	(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
+ 	(To_Unix_Time_64): New.
+ 	* libgnat/a-calend.adb (To_Ada_Time) (To_Duration)
+ 	(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
+ 	(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
+ 	(To_Unix_Time_64): New.
+ 	* libgnat/a-calend.ads (To_Ada_Time) (To_Duration)
+ 	(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
+ 	(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
+ 	(To_Unix_Time_64): New.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117018
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Do not expect the
+ 	Loop_Actions field to be already present on association nodes.
+ 	* exp_util.adb (Insert_Actions): For association nodes, insert
+ 	into the Loop_Actions field only if it is already present.
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Add Iterated parameter.
+ 	(Resolve_Aggregate): Adjust calls to Resolve_Array_Aggregate.
+ 	(Resolve_Aggr_Expr): Add Iterated_Elmt defaulted parameter and
+ 	a default for Single_Elmt.  Adjust call to Resolve_Array_Aggregate.
+ 	Preanalyze a copy of the expression in an iteration context.
+ 	(Resolve_Iterated_Component_Association): Pass Iterated_Elmt as
+ 	True to Resolve_Aggr_Expr and remove processing of Loop_Actions.
+ 	Do not check incorrect use of dynamically tagged expression in
+ 	an iteration context.
+ 	(Resolve_Iterated_Association): Use Copy_Separate_Tree instead of
+ 	New_Copy_Tree and set the Parent field of the result.
+ 	(Resolve_Delta_Array_Aggregate): Likewise.  Only preanalyze the
+ 	copy instead of analyzing it.
+ 
+ 2024-11-12  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* doc/gnat_ugn/about_this_guide.rst: Add information about GNAT LLVM.
+ 	Be consistent about spelling of "back end".
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Likewise.
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Be consistent about
+ 	spelling of "back end".
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* mdll.adb (Build_Dynamic_Library): Fix indentation.
+ 
+ 2024-11-12  Pascal Obry  <obry@adacore.com>
+ 
+ 	* mdll.adb: Use the same procedure to create relocatable or non
+ 	relocatable DLL. The only difference is wether the base address is
+ 	passed to the final linker. If no base-address is given the DLL is
+ 	relocatable.
+ 
+ 2024-11-12  squirek  <squirek@adacore.com>
+ 
+ 	* inline.adb (In_Main_Unit_Or_Subunit): Use Other_Comp_Unit instead of
+ 	Spec_Or_Body_Lib_Unit.
+ 	(Must_Inline): Use Other_Comp_Unit instead of Spec_Or_Body_Lib_Unit.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Also return
+ 	True for functions returning on the secondary stack or returning
+ 	a by-reference type if the back end exposes its return slot.
+ 	(Expand_Array_Aggregate): Call Is_Build_In_Place_Aggregate_Return
+ 	to spot aggregates to be built in place.
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Add missing condition
+ 	in assertion pragma deduced from Expand_Subtype_From_Expr.
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Rewrite the statement
+ 	as an extended return statement if the expression is an aggregate
+ 	whose expansion is delayed.  Properly relocate the expression in
+ 	this case.
+ 	* sem_ch6.adb: Add clauses for Exp_Aggr.
+ 	(Analyze_Function_Return): Do not apply the predicate check to an
+ 	aggregate whose expansion is delayed.  Extended the processing of
+ 	case expressions to all conditional expressions.
+ 
+ 2024-11-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnat2.gpr: New file.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Delta_Array_Aggregate): Move declaration.
+ 	(Expand_Delta_Record_Aggregate): Likewise.
+ 	(Expand_Container_Aggregate): Likewise.  Move implementation to
+ 	Build_Container_Aggr_Code.  Implement built-in-place expansion
+ 	for object declarations and allocators.
+ 	(Build_Container_Aggr_Code): New function containing most of the
+ 	code of the original Expand_Container_Aggregate.  Do not build a
+ 	temporary for the size calculation.  Minor formatting tweaks.
+ 	(Expand_N_Aggregate): Add comment.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Detect the case of
+ 	a container aggregate as qualified expression.  Do not apply the
+ 	predicate check on entry in this case and rewrite the allocator.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Deal
+ 	with Last_Aggregate_Assignment first to compute the attachment
+ 	point (as already done in Attach_Object_To_Master_Node).
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aux.ads (Has_Unconstrained_Elements): Delete.
+ 	* sem_aux.adb (Has_Unconstrained_Elements): Likewise.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete code.
+ 
+ 2024-11-12  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* sem.adb (Process_Bodies_In_Context): check that Spec's unit is
+ 	an N_Lib_Unit_Declaration_Id.
+ 
+ 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Assign_Array): Make Act_Rhs a constant and
+ 	do not recompute it, as well as R_Type, when there is a change of
+ 	representation.  Move comment about the RHS from here to...
+ 	(Expand_N_Assignment_Statement): ...here.
+ 
+ 2024-11-12  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* xspack.py: New
+ 	* s-pack.ads.tmpl: New.
+ 	* s-pack.adb.tmpl: New.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Recognize null
+ 	string literal subtypes and set their bounds to 1 .. 0.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Remove special
+ 	case for string literal subtypes.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (process_decls): Remove tests on Nkind that
+ 	contain a typo and would be redundant if written correctly.
+ 
+ 2024-11-04  Bob Duff  <duff@adacore.com>
+ 
+ 	* sinfo.ads (Library_Unit): Rewrite documentation. Note that
+ 	the "??? not (always) true..." comment was not true;
+ 	the Subunit_Parent never points to the spec.
+ 	(N_Compilation_Unit): Improve documentation. The Aux_ node
+ 	was not created to solve the mentioned problems; it was
+ 	created because the size of nodes was limited.
+ 	Misc doc improvements.
+ 	* sinfo-utils.ads: Add new wrappers for Library_Unit field.
+ 	Use subtypes with predicates for the parameters.
+ 	(First_Real_Statement): Still used in codepeer.
+ 	* sinfo-utils.adb: Add new wrappers for Library_Unit field,
+ 	with suitable assertions.
+ 	* sem_prag.adb: Use new field wrapper names.
+ 	(Matching_Name): New name for Same_Name to avoid
+ 	potential confusion with the other function with the
+ 	same name (Sem_Util.Same_Name), which is also called
+ 	in this same file.
+ 	(Matching_Convention): Change Same_Convention to match
+ 	Matching_Name.
+ 	* sem_util.ads (Same_Name): Improve comments; the old comment
+ 	implied that it works for all names, which was not true.
+ 	* sem_util.adb: Use new field wrapper names.
+ 	* gen_il-gen.adb: Rename N_Unit_Body to be N_Lib_Unit_Body.
+ 	Plain "unit" is ambiguous in Ada (library unit, compilation
+ 	unit, program unit, etc).
+ 	Add new union types N_Lib_Unit_Declaration and
+ 	N_Lib_Unit_Renaming_Declaration.
+ 	* gen_il-gen-gen_nodes.adb (Compute_Ranges): Raise exception
+ 	earlier (it is already raised later, in Verify_Type_Table).
+ 	Add a comment explaining why it might be raised.
+ 	* gen_il-types.ads: Rename N_Unit_Body to be N_Lib_Unit_Body, and add
+ 	new N_Lib_Unit_Declaration and N_Lib_Unit_Renaming_Declaration.
+ 	* einfo.ads: Fix obsolete comment (was left over from before
+ 	the "variable-sized nodes").
+ 	* exp_ch7.adb: Use new field wrapper names.
+ 	* exp_disp.adb: Use new field wrapper names.
+ 	* exp_unst.adb: Use new field wrapper names.
+ 	* exp_util.adb: Use new field wrapper names.
+ 	* fe.h: Add new field wrapper names. These are currently not
+ 	used in gigi, but this change prepares for using them in
+ 	gigi.
+ 	* inline.adb: Use new field wrapper names.
+ 	* lib.adb: Use new field wrapper names.
+ 	Comment improvements.
+ 	* lib-load.adb: Use new field wrapper names.
+ 	Minor cleanup.
+ 	* lib-writ.adb: Use new field wrapper names.
+ 	* live.adb: Use new field wrapper names.
+ 	* par-load.adb: Use new field wrapper names.
+ 	Comment improvements. Minor cleanup.
+ 	* rtsfind.adb: Use new field wrapper names.
+ 	* sem.adb: Use new field wrapper names.
+ 	* sem_ch10.adb: Use new field wrapper names.
+ 	Comment improvements. Minor cleanup.
+ 	* sem_ch12.adb: Use new field wrapper names.
+ 	* sem_ch7.adb: Use new field wrapper names.
+ 	* sem_ch8.adb: Use new field wrapper names.
+ 	* sem_elab.adb: Use new field wrapper names.
+ 	Comment improvements.
+ 	* errout.adb (Output_Source_Line): Fix blowup in some
+ 	obscure cases, where List_Pragmas is not fully set up.
+ 
+ 2024-11-04  Nicolas Roche  <roche@adacore.com>
+ 
+ 	* libgnat/a-stwiun__shared.adb: Restructure code to inline only
+ 	the most common cases. Remove whenever possible runtime checks.
+ 	* libgnat/a-stwiun__shared.ads: Add Inline => True to Append
+ 	variants and Element.
+ 
+ 2024-11-04  Nicolas Roche  <roche@adacore.com>
+ 
+ 	* libgnat/a-stzunb__shared.adb: Restructure code to inline only
+ 	the most common cases. Remove whenever possible runtime checks.
+ 	* libgnat/a-stzunb__shared.ads: Add Inline => True to Append
+ 	variants and Element.
+ 
+ 2024-11-04  Nicolas Roche  <roche@adacore.com>
+ 
+ 	* libgnat/a-strunb__shared.adb: Restructure code to inline only
+ 	the most common cases. Remove whenever possible runtime checks.
+ 	* libgnat/a-strunb__shared.ads: Add Inline => True to Append
+ 	variants and Element.
+ 
+ 2024-11-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* aspects.ads: Add Aspect_Extended_Access to Aspect_Id
+ 	enumeration.
+ 	* par-prag.adb: Add Pragma_Extended_Access to list of pragmas that
+ 	get no interesting processing in the parser.
+ 	* sem_attr.adb: Relax legality checks on Access/Unchecked_Access
+ 	attribute references if access type is Extended_Access.
+ 	* sem_ch12.adb (Validate_Access_Type_Instance): For an instance of
+ 	a generic with a formal access type, check that formal and actual
+ 	agree with with respect to Extended_Access aspect.
+ 	* sem_prag.adb (Analyze_Pragma): Add analysis code for pragma
+ 	Extended_Access. Set Pragma_Extended_Access element in Sig_Flags
+ 	aggregate.
+ 	* sem_prag.ads: Set Pragma_Extended_Access element in
+ 	Aspect_Specifying_Pragma aggregate.
+ 	* sem_res.adb (Valid_Conversion): Disallow
+ 	extended-to-not-extended access conversion.
+ 	* sem_util.adb (Is_Extended_Access_Access_Type): Implement new
+ 	function.
+ 	(Is_Aliased_View): If (and only if) the new Boolean For_Extended
+ 	parameter is True, then a slice of an aliased non-bitpacked array
+ 	is aliased, a constrained nominal subtype does not force a result
+ 	of False, and a dereference of an extended access value is
+ 	aliased. The last point is somewhat subtle. This is how we prevent
+ 	covert fat-to-nonfat type conversions via things like
+ 	"Not_Extended_Type'(Extended_Ptr.all'Access)" or passing
+ 	Extended_Ptr.all as an actual parameter corresponding to an
+ 	explicitly aliased formal parameter.
+ 	* sem_util.ads (Is_Extended_Access_Type): Declare new function.
+ 	(Is_Aliased_View): Add new defaults-False parameter For_Extended.
+ 	* snames.ads-tmpl: Declare Name_Extended_Access Name_Id constant
+ 	and Pragma_Extended_Access Pragma_Id enumeration literal.
+ 
+ 2024-11-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_warn.adb (Check_One_Unit): When a system extension is
+ 	present always check entities from that unit before marking
+ 	the unit unreferenced.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113036
+ 	* freeze.adb (Freeze_Expression): Deal with freezing actions coming
+ 	from within nested internal loops present in spec expressions.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Change to
+ 	function returning Boolean and return the result of the call made
+ 	to Resolve_Aggr_Expr.
+ 	(Resolve_Array_Aggregate): Return failure status if the call to
+ 	Resolve_Iterated_Component_Association returns false.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Move up
+ 	declaration of Expr and remove dead code from older processing.
+ 
+ 2024-11-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* usage.adb: Update the wording for -gnatVa and -gnatVd.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Is_Two_Pass_Aggregate): Beef up comment.
+ 
+ 2024-11-04  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* comperr.adb (Compiler_Abort): Display message in exception handler.
+ 
+ 2024-11-04  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Use the
+ 	base type of the type imposed by the context for building the
+ 	interpolated string image; required to allow the expander adding
+ 	the missing runtime check when the target type is constrained.
+ 	(Apply_Static_Length_Check): New subprogram.
+ 
+ 2024-11-04  Daniel King  <dmking@adacore.com>
+ 
+ 	* Makefile.rtl: Use s-secsta__cheri.adb on Morello CheriBSD.
+ 	* libgnat/s-secsta__cheri.adb: New file.
+ 
+ 2024-11-04  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnarl/s-intman__cheribsd.adb: Add SIGPROT to interrupt list.
+ 
+ 2024-11-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-sarif_emitter.adb (Print_Runs): Add printing for
+ 	the invocation node that consists of a single invocations that
+ 	is composed of the commandLine and executionSuccessful attributes.
+ 
+ 2024-11-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-sarif_emitter.adb (Print_SARIF_Report): Add a
+ 	Schema field to the SARIF report.
+ 
+ 2024-11-04  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-mudido__affinity.adb (Unchecked_Set_Affinity): Set new
+ 	ATCB component.
+ 	* libgnarl/s-taprop__linux.adb (Create_Task): Only set CPU affinity
+ 	when required.
+ 	(Requires_Affinity_Change): New subprogram.
+ 	(Set_Task_Affinity): Likewise.
+ 	* libgnarl/s-tarest.adb (Create_Restricted_Task): Adapt to
+ 	Initialize_ATCB change.
+ 	* libgnarl/s-taskin.adb (Initialize_ATCB): Update parameter list.
+ 	Record whether aspects were explicitly specified.
+ 	* libgnarl/s-taskin.ads (Common_ATCB): Add component.
+ 	* libgnarl/s-tassta.adb (Create_Task): Update call to Initialize_ATCB.
+ 	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Likewise.
+ 
+ 2024-11-04  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Fix format for second line of
+ 	warning (should be a continuation line)
+ 
+ 2024-11-04  Daniel King  <dmking@adacore.com>
+ 
+ 	* Makefile.rtl: Build support for Morello CheriBSD.
+ 	* libgnarl/s-intman__cheribsd.adb: New file for CheriBSD.
+ 	* libgnarl/s-osinte__cheribsd.ads: New file for CheriBSD.
+ 
+ 2024-11-04  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/i-cheri.ads: Remove exception declarations.
+ 	* libgnat/i-cheri-exceptions.ads: New file.
+ 
+ 2024-11-04  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/s-oslock__posix.ads: Fix alignment of pthread_mutex_t
+ 	for CHERI targets.
+ 
+ 2024-11-04  Claire Dross  <dross@adacore.com>
+ 
+ 	* Makefile.rtl: Remove references to moved units.
+ 	* libgnat/a-chtgfk.adb: Removed.
+ 	* libgnat/a-chtgfk.ads: Removed.
+ 	* libgnat/a-chtgfo.adb: Removed.
+ 	* libgnat/a-chtgfo.ads: Removed.
+ 	* libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Removed.
+ 
+ 2024-11-04  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117051
+ 	* freeze.adb (Freeze_Entity): Call the layout procedure on subtypes
+ 	declared in a generic unit when they are static.
+ 
+ 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* adaint.c: Replace initialize.c with rtinit.c in comment.
+ 	* sysdep.c (__gnat_set_mode): Fix reference in comment.
+ 	* libgnat/i-cstrea.ads (Content_Encoding): Adjust comment.
+ 
+ 2024-11-04  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch10.adb (Analyze_With_Clause): In the case of a
+ 	self-referential with clause, if there is a subsequent use clause
+ 	for the same package (which is necessarily useless), remove it from
+ 	the context clause. Reenable the warning.
+ 
+ 2024-11-04  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* einfo.ads (Is_Dispatch_Table_Wrapper): Complete documentation.
+ 	* exp_ch6.adb (Install_Class_Preconditions_Check): Dispatch table
+ 	wrappers do not require installing the check since it is performed
+ 	by the caller.
+ 	(Class_Preconditions_Subprogram): Use new predicate Is_LSP_Wrapper.
+ 	* freeze.adb (Check_Inherited_Conditions): Rename Postcond_Wrappers to
+ 	Condition_Wrappers to handle implicitly inherited subprograms that
+ 	implement pre-/postconditions inherited from interface primitives.
+ 	Use new predicate Is_LSP_Wrapper.
+ 	* sem_disp.adb (Check_Dispatching_Operation): Complete assertion to
+ 	handle functions returning class-wide types.
+ 	* exp_util.ads (Is_LSP_Wrapper): New subprogram.
+ 	* exp_util.adb (Is_LSP_Wrapper): New subprogram.
+ 	* contracts.adb (Process_Spec_Postconditions): Use Is_LSP_Wrapper.
+ 	(Process_Inherited_Conditions): Use Is_LSP_Wrapper.
+ 	* sem_ch6.adb (New_Overloaded_Entity): Use Is_LSP_Wrapper.
+ 	* sem_util.adb (Nearest_Class_Condition_Subprogram): Use Is_LSP_Wrapper.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch7.adb (Uninstall_Declarations): Mark Taft amendment
+ 	types like we mark other types declared in private package
+ 	declarations.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Multiply): Remove extra whitespace.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Subtract): Replace numeric literal
+ 	with universal integer constant, just like it is done in
+ 	expansion of addition operator.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (In_Decl): Rename and move local variable where
+ 	it is used.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Type_In_P): Add non-null qualifier.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Intrinsic_Operator)
+ 	(Resolve_Intrinsic_Unary_Operator): Replace traversals of
+ 	homonyms with a direct lookup.
+ 
+ 2024-11-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Intrinsic_Unary_Operator): Disable when
+ 	expansion is inactive.
+ 
+ 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* gcc-interface/misc.cc (internal_error_function): Update for
+ 	m_printer becoming reference printer.
+ 
+ 2024-10-29  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* types.h: fix static_assert.
+ 
+ 2024-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/62122
+ 	* doc/gnat_rm/implementation_defined_attributes.rst
+ 	(Unrestricted_Access): Remove null exclusion.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use gnu_fat_type as the type
+ 	context for a XUB type.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Update some calls to
+ 	create_type_decl.
+ 	* gcc-interface/gigi.h (create_type_decl): Add can_be_nameless parameter.
+ 	* gcc-interface/utils.cc (create_type_decl): Add can_be_nameless
+ 	parameter.  Set DECL_NAMELESS on type decl.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (record_builtin_type, create_type_stub_decl):
+ 	Set DECL_NAMELESS on type decls.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass 'true' to
+ 	create_type_decl when creating XUA type.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Set TYPE_NAMELESS on
+ 	XUB types.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to
+ 	build_unc_object_type.
+ 	* gcc-interface/gigi.h (build_unc_object_type): Update.
+ 	* gcc-interface/utils.cc (build_unc_object_type) Add artificial_p
+ 	parameter.
+ 	(build_unc_object_type_from_ptr): Update.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (is_artificial): New function.
+ 	(gnat_to_gnu_entity): Use it.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Call_to_gnu): If the formal is passed by
+ 	reference and the actual is a type conversion but not addressable,
+ 	create the temporary in the target type of the conversion if this
+ 	is needed to enforce strict aliasing.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/116551
+ 	* gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return
+ 	false if the type of the entity is an unconstrained array type.
+ 	(node_is_volatile_full_access) <N_Identifier>: Likewise.
+ 
+ 2024-10-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch10.adb (Analyze_With_Clause): Temporarily disable warning.
+ 
+ 2024-10-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch10.adb: (Analyze_With_Clause): Check for self-referential
+ 	with clause. Give a warning, and set Is_Implicit_With, which we
+ 	are reusing in this obscure case even though it's not really
+ 	implicit.
+ 	(Analyze_Context): Remove check for self-referential with clause.
+ 	It wasn't correct -- it only triggered for Acts_As_Spec
+ 	subprograms. Corrected check is now in Analyze_With_Clause.
+ 	(Implicit_With): Rename to be Is_Implicit_With. Misc cleanup,
+ 	comment fixes.
+ 	(Process_Spec_Clauses): Remove default for Exit_On_Self parameter.
+ 	Use "exit when" instead of if statement.
+ 	* sinfo.ads (Implicit_With): Rename to be Is_Implicit_With.
+ 	Document new use for self-referential withs.
+ 	* ali.adb (Scan_ALI): Use an aggregate to initialize Withs entry.
+ 	* exp_put_image.adb (Preload_Root_Buffer_Type): Make this a
+ 	once-only procedure.
+ 	* sem_util.ads (Is_Ancestor_Package): Fix comment -- a libraryunit
+ 	is an ancestor of itself, but this doesn't return True in that
+ 	case.
+ 	* sem_util.adb (Is_Ancestor_Package): Better to initialize things
+ 	on their declaration.
+ 	* lib-load.adb: Minor comment fix.
+ 	* sem_prag.adb: Implicit_With --> Is_Implicit_With. Minor comment
+ 	fix.
+ 	* gen_il-fields.ads: Implicit_With --> Is_Implicit_With.
+ 	* gen_il-gen-gen_nodes.adb: Likewise
+ 	* lib.adb: Likewise
+ 	* lib-writ.adb: Likewise
+ 	* rtsfind.adb: Likewise
+ 	* sem_cat.adb: Likewise
+ 	* sem_ch12.adb: Likewise
+ 	* sem_ch8.adb: Likewise
+ 	* sem_elab.adb: Likewise
+ 	* sem_warn.adb: Likewise
+ 	* gcc-interface/trans.cc: (Implicit_With): Rename to be
+ 	Is_Implicit_With.
+ 
+ 2024-10-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (namespace_map): New global.
+ 	(Compilation_Unit_to_gnu): Also handle N_With_Clause and
+ 	N_Use_Package_Clause.
+ 	(get_or_create_namespace, get_namespace): New functions.
+ 	(gnat_to_gnu) <N_Package_Renaming_Declaration>: Call
+ 	get_namespace.
+ 	<N_Use_Package_Clause, N_With_Clause>: Likewise.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Expression.In_Expanded_Body): Tweak comments.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): If the entity is an access-to-subprogram
+ 	type declaration that pre/postcondition contracts, build the
+ 	wrapper
+ 	(if not previously done as part of processing aspects).
+ 	* sem_ch3.adb (Build_Access_Subprogram_Wrapper): Add missing support
+ 	for building the wrapper when the access type has pragmas
+ 	Pre_Class/Post_Class.
+ 	(Build_Access_Subprogram_Wrapper_Declaration): New subprogram.
+ 	* sem_ch3.ads (Build_Access_Subprogram_Wrapper): Spec moved to the
+ 	public part of the package.
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition): Store in the tree copy of
+ 	class-wide pre/postcondition expression; required to merge it with
+ 	inherited conditions.
+ 	(Is_Valid_Assertion_Kind): Added Pre_Class and Post_Class.
+ 
+ 2024-10-25  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* doc/gnat_ugn/about_this_guide.rst: Numerous changes to language
+ 	and style and add some LLVM-specific information.
+ 	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Likewise.
+ 	* doc/gnat_ugn/example_of_binder_output.rst: Likewise.
+ 	* doc/gnat_ugn/getting_started_with_gnat.rst: Likewise.
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Likewise.
+ 	* doc/gnat_ugn/gnat_utility_programs.rst: Likewise.
+ 	* doc/gnat_ugn/inline_assembler.rst: Likewise.
+ 	* doc/gnat_ugn/platform_specific_information.rst: Likewise.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/43485
+ 	* libgnarl/a-retide.adb: Add with clause for System.Soft_Links.
+ 	(Delay_Until): Defer and undefer abort around the call to the
+ 	Timed_Delay routine of System.Task_Primitives.Operations.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Expression.In_Expanded_Body): Also return True
+ 	for the body of a helper/wrapper built for class-wide preconditions.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition): Allow the use of
+ 	pragma Pre_Class/Post_Class with abstract subprograms.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch3.adb (Record_Type_Definition): For tagged types, add
+ 	the missing decoration to the First_Entity in the corresponding
+ 	class-wide type entity.
+ 
+ 2024-10-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-25  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* comperr.ads (Compiler_Error): Update documentation.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* uintp.ads (Type_Size_For): New function declaration.
+ 	* uintp.adb (Type_Size_For): New function body.
+ 	* exp_imgv.adb (Rewrite_Object_Image): Call Type_Size_For to get
+ 	the size of a narrower integer type.
+ 
+ 2024-10-25  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: update
+ 	simpler accessibility model
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst:
+ 	Minor wording improvments.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-25  squirek  <squirek@adacore.com>
+ 
+ 	* libgnarl/s-taprop__mingw.adb: Modify stack size and update
+ 	documentation.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* gen_il-fields.ads: New node field (Is_Expanded_Prefixed_Call).
+ 	* gen_il-gen-gen_nodes.adb: New semantic field for N_Function_Call
+ 	and N_Procedure_Call_Statement nodes.
+ 	* sem_ch4.adb (Complete_Object_Operation): Mark the rewritten node
+ 	with the Is_Expanded_Prefixed_Call flag.
+ 	* sem_res.adb (Check_Prefixed_Call): Code cleanup and addition of
+ 	documentation.
+ 	(Resolve_Actuals): Add a null-exclusion check on the
+ 	prefix of the call when it is an access-type.
+ 	* sinfo.ads: Adding new semantic flag (Is_Expanded_Prefixed_Call)
+ 	to N_Function_Call and N_Procedure_Call_Statement nodes.
+ 	* debug.adb: Adding documentation for switch d_P.
+ 
+ 2024-10-25  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): change the call to
+ 	`Error_Msg_GNAT_Extension` to allow this aspect in core
+ 	extensions. Put the code path in core extensions.
+ 	* exp_util.adb (Name_Of_Controlled_Prim_Op): Put the code path
+ 	in core extensions
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_type.ads (Interp ): Add Opnd_Typ component and remove default
+ 	value for Abstract_Op component.
+ 	(Add_One_Interp): Rename Opnd_Type parameter to Opnd_Typ.
+ 	* sem_type.adb (Add_One_Interp): Likewise.
+ 	(Add_One_Interp.Add_Entry): Record the operand type as well.
+ 	(Collect_Interp): Record Empty for the operand type.
+ 	(Disambiguate.Is_Ambiguous_Boolean_Operator): New predicate.
+ 	(Disambiguate): Use it to detect recorded ambiguity cases.
+ 	* sem_ch4.adb (Find_Comparison_Equality_Types): Add commentary.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch8.adb (Freeze_Actual_Profile): Do not report error
+ 	on incomplete types, since they do not cause freezing.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* namet.adb (Append_Decoded_With_Brackets): Fix condition for the
+ 	cheap test at the beginning of the loop.
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115507
+ 	* rtsfind.ads (RE_Id): Add RE_Enum_[Wide_]Wide_String_To_String.
+ 	(RE_Unit_Table): Add entries for the new values.
+ 	* exp_attr.adb (Is_User_Defined_Enumeration_Type): New predicate.
+ 	(Expand_N_Attribute_Reference) <Attribute_Wide_Value>: Build a call
+ 	to RE_Enum_Wide_String_To_String for user-defined enumeration types.
+ 	<Attribute_Wide_Wide_Value>: Likewise with
+ 	RE_Enum_Wide_Wide_String_To_String.
+ 	* exp_imgv.adb (Expand_Value_Attribute): Adjust to above.
+ 	* libgnat/s-wchwts.ads (Enum_Wide_String_To_String): New function.
+ 	(Enum_Wide_Wide_String_To_String): Likewise.
+ 	* libgnat/s-wchwts.adb: Add clauses for System.Case_Util.
+ 	(Normalize_String): New local procedure.
+ 	(Enum_Wide_String_To_String): New function body.
+ 	(Enum_Wide_Wide_String_To_String): Likewise.
+ 
+ 2024-10-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Actuals): Add checks for incomplete
+ 	type actuals.
+ 
+ 2024-10-25  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* par-ch5.adb (P_Sequence_Of_Statements): Forbid repr clauses in
+ 	handled_statements.
+ 
+ 2024-10-25  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* sem_util.ads: Introduce Inspect_Deferred_Constant_Completion
+ 	on a single object declaration, to better factorize the code
+ 	* sem_util.adb: Introduce aforementioned overload
+ 	* sem_ch4.adb (Analyze_Expression_With_Actions): Check deferred
+ 	constant completions
+ 	* sem_ch5.adb (Analyze_Statements): Check deferred constant
+ 	completions
+ 
+ 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Actuals.Is_Legal_Copy): Return True for an
+ 	initialization procedure with a full access formal parameter.
+ 	(Expand_Actuals.Requires_Atomic_Or_Volatile_Copy): Return True if
+ 	the formal parameter is of a full access unconstrained array type.
+ 
+ 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
+ 	    Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR other/116613
+ 	* gcc-interface/misc.cc: Add #define INCLUDE_MEMORY
+ 	* gcc-interface/trans.cc: Likewise.
+ 	* gcc-interface/utils.cc: Likewise.
+ 
+ 2024-10-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/116498
+ 	PR ada/117087
+ 	* gcc-interface/decl.cc (validate_size): Fix thinko.
+ 
+ 2024-10-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117038
+ 	* fe.h (struct c_array): Add 'const' to declaration of pointer.
+ 	(C_Source_Buffer): Use consistent formatting.
+ 	* par-ch3.adb (P_Component_Items): Properly set Aliased_Present on
+ 	access definition.
+ 	* sinput.ads: Remove clause for Interfaces.C.
+ 	(C_Array): Change type of Length to Integer and make both components
+ 	aliased.  Remove Convention aspect.
+ 	(C_Source_Buffer): Remove all aspects.
+ 	* sinput.adb (C_Source_Buffer): Adjust to above change.
+ 
+ 2024-10-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl: Remove HP-UX 10 section.
+ 	* libgnarl/s-osinte__hpux-dce.ads: Delete.
+ 	* libgnarl/s-osinte__hpux-dce.adb: Likewise.
+ 	* libgnarl/s-taprop__hpux-dce.adb: Likewise.
+ 	* libgnarl/s-taspri__hpux-dce.ads: Likewise.
+ 	* libgnat/s-oslock__hpux-dce.ads: Likewise.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/116498
+ 	* gcc-interface/decl.cc (validate_size): Use the size of the default
+ 	pointer mode as the minimum size for access types and fat pointers.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Raise_Error_to_gnu) <CE_Invalid_Data>:
+ 	Do not the generate range information if the value is a call to a
+ 	Rep_To_Pos function.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* sigtramp-armdroid.c: Refactor into ...
+ 	* sigtramp-android.c, sigtramp-android-asm.h: New files.
+ 	* Makefile.rtl (arm/aarch64-android section): Add
+ 	sigtramp-android.o to EXTRA_LIBGNAT_OBJS unconditionally. Add
+ 	sigtramp.h and sigtramp-android-asm.h to EXTRA_LIBGNAT_SRCS.
+ 	* init.c (android section, __gnat_error_handler): Defer to
+ 	__gnat_sigramp unconditionally again.
+ 	* sigtramp.h: Adjust comments to allow neutral signal handling
+ 	relays, merely forwarding to the underlying handler without any
+ 	intermediate CFI magic.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115507
+ 	* exp_imgv.adb (Expand_Valid_Value_Attribute): Add actual parameter
+ 	for Is_Wide formal in the call to Valid_Value_Enumeration_NN.
+ 	(Expand_Value_Attribute): Likewise.
+ 	* libgnat/s-vaen16.ads (Value_Enumeration_16): Add Is_Wide formal.
+ 	(Valid_Value_Enumeration_16): Likewise.
+ 	* libgnat/s-vaen32.ads (Value_Enumeration_32): Likewise.
+ 	(Valid_Value_Enumeration_32): Likewise.
+ 	* libgnat/s-vaenu8.ads (Value_Enumeration_8): Likewise.
+ 	(Valid_Value_Enumeration_8): Likewise.
+ 	* libgnat/s-valboo.adb (Value_Boolean): Pass True for To_Upper_Case
+ 	formal parameter in call to Normalize_String.
+ 	* libgnat/s-valcha.adb (Value_Character): Likewise.
+ 	* libgnat/s-valuen.ads (Value_Enumeration): Add Is_Wide formal.
+ 	(Valid_Value_Enumeration): Likewise.
+ 	* libgnat/s-valuen.adb (Value_Enumeration_Pos): Likewise and pass
+ 	its negation for To_Upper_Case formal in call to Normalize_String.
+ 	(Valid_Value_Enumeration): Add Is_Wide formal and forward it in
+ 	call to Value_Enumeration_Pos.
+ 	(Value_Enumeration): Likewise.
+ 	* libgnat/s-valuti.ads (Normalize_String): Add To_Upper_Case formal
+ 	parameter and adjust post-condition accordingly.
+ 	* libgnat/s-valuti.adb (Normalize_String): Add To_Upper_Case formal
+ 	parameter and adjust implementation accordingly.
+ 	* libgnat/s-valwch.adb (Value_Wide_Wide_Character): Pass False for
+ 	To_Upper_Case formal parameter in call to Normalize_String.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114636
+ 	* sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
+ 	formal discrete type, skip the generated implicit base type.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115535
+ 	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size
+ 	of the underlying type to find the support type.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114640
+ 	* exp_util.adb (Find_Hook_Context): For a node present within a
+ 	conditional expression, do not return an N_Elsif_Part node.
+ 
+ 2024-10-08  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-constructors.adb
+ 	(Make_Mixed_Container_Aggregate_Error): New function for the error
+ 	message
+ 	(Record_Mixed_Container_Aggregate_Error): New function for the
+ 	error message.
+ 	* diagnostics-constructors.ads: Likewise.
+ 	* diagnostics-repository.ads: register new diagnostics id
+ 	* diagnostics.ads: add new diagnostics id
+ 	* errout.adb (First_And_Last_Node): Detect the span for component
+ 	associations.
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): reject container
+ 	aggregates that have both named and positional elements.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* snames.ads-tmpl: Add new pragma definition.
+ 	* par-prag.adb (Prag): Handle new pragma.
+ 	* sem_prag.adb (Analyze_Pragma): Implement new pragma.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* snames.ads-tmpl: Tweak position of comment.
+ 
+ 2024-10-08  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: replace
+ 	references to RFC's with appropriate text from the rfc
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* lib-writ.ads (Add_Preprocessing_Dependency): Update
+ 	documentation comment.
+ 	* sem_ch3.adb (Apply_External_Initialization): Add call to
+ 	Add_Preprocessing_Dependency.
+ 
+ 2024-10-08  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Siz_Exp): Support deriving the size of the
+ 	container aggregate with multi-dimensional arrays. Make the
+ 	function return an node of an expression instead of an integer.
+ 	Additionally calculate the size expression for
+ 	Component_Associations.
+ 	(To_Int) make this method available for more functions.
+ 	(Aggregate_Size) Relocate the calculation of
+ 	Componenet_Associations to Build_Siz_Exp.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_tss.ads (Is_Rep_To_Pos): New function declaration.
+ 	* exp_tss.adb (Is_Rep_To_Pos): New function body.
+ 	* fe.h (Is_Rep_To_Pos): New macro and extern declaration.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_imgv.adb (Rewrite_Object_Image): When the prefix is a type
+ 	conversion to Universal_Integer, use its expression directly. When
+ 	the prefix is an integer literal with Universal_Integer type, try
+ 	to compute a narrower type.
+ 
+ 2024-10-08  Raphaël AMIARD  <amiard@adacore.com>
+ 
+ 	* par-ch11.adb (P_Sequence_Of_Statements): Remove Handled
+ 	parameter. Always wrap the statements in a block when there are
+ 	declarations in it.
+ 	* par-ch5.adb: Adapt call to P_Sequence_Of_Statements Update
+ 	outdated comment, remove useless `Style_Checks` pragma.
+ 	(P_Sequence_Of_Statements): Don't emit an error in core extensions
+ 	mode. Emit an error when a non valid declaration is parsed in
+ 	sequence of statements.
+ 	* par.adb: Adapt P_Sequence_Of_Statements' signature
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Adapt documentation
+ 	now.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
+ 	Fix behavior on child subprograms without specs.
+ 
+ 2024-10-08  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Don't freeze here
+ 	if Has_Delayed_Freeze returns True.
+ 	* sem_type.adb (Valid_Equality_Arg): Treat an incomplete type like
+ 	a limited type because neither has an implicitly-defined equality
+ 	primitive.
+ 	(Covers): If either argument is an incomplete type
+ 	whose full view is available, then look through to the full view.
+ 	* sem_res.adb (Resolve_Actuals): If the actual parameter type is
+ 	complete and the formal parameter type is not, then update the
+ 	formal parameter type to use the complete view.
+ 
+ 2024-10-08  squirek  <squirek@adacore.com>
+ 
+ 	* sem_ch3.adb (Derived_Type_Declaration): Modify generation of
+ 	compile time check.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-trasym__dwarf.adb (LDAD_Header): New String constant.
+ 	(Symbolic_Traceback): Print the load address of the executable at
+ 	the beginning if it is not null.
+ 
+ 2024-10-08  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Discriminant_Conformance): In testing whether
+ 	a default expression is permitted for an access discriminant, we
+ 	need to know whether the discriminated type is immutably limited.
+ 	Handle another part of this test that cannot easily be handled in
+ 	Sem_Aux.Is_Immutably_Limited. This involves declaring a new local
+ 	function, Is_Derived_From_Immutably_Limited_Type.
+ 
+ 2024-10-08  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute): When setting the Etype of a
+ 	universal-integer-valued attribute reference to the subtype
+ 	determined by its context, use the basetype of that subtype
+ 	instead of the subtype itself if there is a possibility that the
+ 	attribute value will not satisfy the constraints of that subtype.
+ 	Otherwise the compiler is, in effect, assuming something that
+ 	might not be true. Except use the subtype in the case of a
+ 	not-from-source 'Pos attribute reference in order to avoid
+ 	breaking things.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* comperr.adb (Compiler_Abort): Add call to
+ 	Generate_Minimal_Reproducer and replace call to Namet.Unlock with
+ 	call to Unlock_If_Locked.
+ 	* debug.adb: Document new purpose of -gnatd_m and -gnatd_M.
+ 	* fname-uf.adb (Instantiate_SFN_Pattern): New procedure.
+ 	(Get_Default_File_Name): New function.
+ 	(Get_File_Name): Replace inline code with call to
+ 	Instantiate_SFN_Pattern.
+ 	* fname-uf.ads (Get_Default_File_Name): New function.
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
+ 	New procedure.
+ 	* namet.adb (Unlock_If_Locked): New function.
+ 	* namet.ads (Unlock_If_Locked): Likewise.
+ 	* par-prag.adb (Prag): Add special behavior with -gnatd_M.
+ 	* set_targ.adb: Minor fixes to comments.
+ 	* gcc-interface/Make-lang.in: Update list of object files.
+ 
+ 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
+ 	* exp_aggr.adb (Is_Two_Pass_Aggregate): New function body.
+ 	(Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the
+ 	aggregates that need the 2-pass expansion.
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array
+ 	case, build the initialization procedure if the initial value in
+ 	the object declaration is a 2-pass aggregate.
+ 
+ 2024-10-08  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Fix
+ 	indentation.
+ 
+ 2024-10-08  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* aspects.ads: Add entities for External_Initialization.
+ 	* checks.adb (Selected_Length_Checks): Add support for
+ 	N_External_Initializer nodes.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add section for the added
+ 	extension.
+ 	* exp_util.adb (Insert_Actions): Add support for N_External_Initializer
+ 	nodes.
+ 	* fe.h (C_Source_Buffer): New function.
+ 	* gen_il-fields.ads: Add new field.
+ 	* gen_il-gen-gen_nodes.adb: Add N_External_Initializer node kind.
+ 	* gen_il-gen.adb: Add new field type.
+ 	* gen_il-types.ads: Add new node kind and new field type.
+ 	* pprint.adb (Expr_Name): Handle new node kind.
+ 	* sem.adb (Analyze): Add support for N_External_Initializer nodes.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications, Check_Aspect_At_Freeze_Point):
+ 	Add support for External_Initialization aspect.
+ 	* sem_ch3.adb (Apply_External_Initialization): New subprogram.
+ 	(Analyze_Object_Declaration): Add support for External_Initialization aspect.
+ 	* sem_res.adb (Resolve_External_Initializer): New procedure.
+ 	(Resolve): Add support for N_External_Initializer nodes.
+ 	(Set_String_Literal_Subtype): Extend to handle N_External_Initializer nodes.
+ 	* sinfo-utils.adb (Is_In_Union_Id): Adapt to new field addition.
+ 	* sinfo.ads: Add documentation for new node kind and new field.
+ 	* sinput.adb, sinput.ads (C_Source_Buffer): Add new C interface function.
+ 	* snames.ads-tmpl: Add new aspect identifier.
+ 	* sprint.adb (Sprint_Node_Actual): Add nop handling of N_External_Initializer
+ 	nodes.
+ 	* types.ads: Modify type to allow for new C interface.
+ 	* gcc-interface/trans.cc (gnat_to_gnu): Handle new GNAT node type.
+ 	* gcc-interface/Make-lang.in: Update list of stage1 run-time library units.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* Makefile.rtl (arm/aarch64-android): Associate a-nallfl.ads with
+ 	libgnat/a-nallfl__wraplf.ads.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* libgnarl/s-linux__android-arm.ads: Define SIGSYS.
+ 	* libgnarl/s-linux__android-aarch64.ads: Define SIGSYS.
+ 	* libgnarl/s-osinte__android.ads: Expose SIGSYS value.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* libgnarl/s-linux__android-arm.ads: New file, renaming of ...
+ 	* libgnarl/s-linux__android.ads: ... this file.
+ 	* libgnarl/s-linux__android-aarch64.ads: New file. Based on the
+ 	-arm variant, with sa_ field positions adjusted.
+ 	* Makefile.rtl (arm/aarch64-android pairs): Adjust accordingly.
+ 	* libgnarl/s-osinte__android.ads: Rather than making assumptions
+ 	on the actual type of the C sigset_t, use
+ 	Os_Constants.SIZEOF_sigset_t to define an Ada sigset_t type of the
+ 	proper size. Use C.int instead of unsigned_long for sa_flags.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* init.c (__gnat_error_handler): Map signals straight to Ada
+ 	exceptions, without a local CFI trampoline.
+ 	(__gnat_adjust_context_for_raise): Guard arm specific code on __arm__
+ 	compilation. Do nothing otherwise, relying on libgcc's signal
+ 	frame recognition for PC/RA adjustments.
+ 
+ 2024-10-08  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* Makefile.rtl: Extend arm-android section to aarch64, in a similar
+ 	fashion as other arm/arch64 configurations. Introduce pair
+ 	selection guards to prevent match of aarch64-linux-android on the
+ 	regular aarch64-linux% cross as well.
+ 
+ 2024-10-08  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Turn
+ 	Compile_Time pragmas into null nodes
+ 
+ 2024-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR middle-end/116933
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Out_Parameter>: Add
+ 	the "uninitialized" attribute on Out parameters.
+ 	* gcc-interface/utils.cc (gnat_internal_attributes): Add entry for
+ 	the "uninitialized" attribute.
+ 	(handle_uninitialized_attribute): New function.
+ 
+ 2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR other/116801
+ 	* gcc-interface/lang.opt.urls: Regenerate.
+ 
+ 2024-09-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/misc.cc: Include memmodel.h before tm_p.h.
+ 
+ 2024-09-10  Viljar Indus  <indus@adacore.com>
+ 
+ 	* gcc-interface/decl.cc: Use same warning characters in
+ 	continuation messages.
+ 	* gcc-interface/trans.cc: Likewise.
+ 
+ 2024-09-10  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Call
+ 	Error_Msg_GNAT_Extension() to report an error when the aspect
+ 	First_Controlling_Parameter is set to True and the sources are
+ 	compiled without Core_Extensions_ Allowed.
+ 	* sem_prag.adb (Pragma_First_Controlling_Parameter): Call
+ 	subprogram Error_Msg_GNAT_Extension() to report an error when the
+ 	aspect First_Controlling_Parameter is set to True and the sources
+ 	are compiled without Core_Extensions_Allowed. Report an error when
+ 	the aspect pragma does not confirm an inherited True value.
+ 
+ 2024-09-10  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-pretty_emitter.adb (Get_Last_Line_Char): New. Get
+ 	the last non line change character. Write_Span_Labels use the
+ 	adjusted line end pointer to calculate the length of the span.
+ 
+ 2024-09-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_intr.ads, exp_intr.adb (Expand_Source_Info): Move
+ 	declaration to package spec.
+ 	* sem_eval.adb (Eval_Intrinsic_Call): Evaluate calls to
+ 	GNAT.Source_Info where possible.
+ 
+ 2024-09-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Remove_Checks): Combine CASE alternatives.
+ 
+ 2024-09-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/s-os_lib.ads: Remove extra whitespace.
+ 
+ 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116613
+ 	* gcc-interface/misc.cc (internal_error_function): Rename
+ 	diagnostic_context's "printer" field to "m_printer".
+ 
+ 2024-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add bypass
+ 	for internal fields on strict-alignment platforms.
+ 
+ 2024-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/gigi.h (default_field_alignment): New function.
+ 	* gcc-interface/misc.cc: Include tm_p header file.
+ 	(default_field_alignment): New function.
+ 	* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Replace
+ 	previous alignment klduge with call to default_field_alignment.
+ 	* gcc-interface/utils.cc (finish_record_type): Likewise for the
+ 	alignment based on which DECL_BIT_FIELD should be cleared.
+ 
+ 2024-09-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.ads, exp_util.adb (Duplicate_Subexpr_No_Checks):
+ 	Remove parameters, which are no longer used.
+ 
+ 2024-09-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* par-endh.adb: add call to new diagnostic for end loop errors.
+ 	* sem_ch13.adb: add call to new diagnostic for default iterator
+ 	error and record representation being too late.
+ 	* sem_ch4.adb: Add new diagnostic for wrong operands.
+ 	* sem_ch9.adb: Add new diagnostic for a Lock_Free warning.
+ 	* libgnat/g-lists.adb (Ensure_Unlocked): Make checks for tampering
+ 	conditional.
+ 	* libgnat/g-lists.ads: Add parameter Tampering_Checks to control
+ 	whether tampering checks should be executed.
+ 	* backend_utils.adb: Add new gcc switches
+ 	'-fdiagnostics-format=sarif-file' and
+ 	'-fdiagnostics-format=sarif-stderr'.
+ 	* debug.adb: document -gnatd_D switch.
+ 	* diagnostics-brief_emitter.adb: New package for displaying
+ 	diagnostic messages in a compact manner.
+ 	* diagnostics-brief_emitter.ads: Same as above.
+ 	* diagnostics-constructors.adb: New pacakge for providing simpler
+ 	constructor methods for new diagnostic objects.
+ 	* diagnostics-constructors.ads: Same as above.
+ 	* diagnostics-converter.adb: New package for converting old
+ 	Error_Msg_Object-s to Diagnostic_Types.
+ 	* diagnostics-converter.ads: Same as above.
+ 	* diagnostics-json_utils.adb: Package for utility methods related
+ 	to emitting JSON.
+ 	* diagnostics-json_utils.ads: Same as above.
+ 	* diagnostics-pretty_emitter.adb: New package for displaying
+ 	diagnostic messages in a more elaborate manner.
+ 	* diagnostics-pretty_emitter.ads: Same as above.
+ 	* diagnostics-repository.adb: New package for collecting all
+ 	created error messages.
+ 	* diagnostics-repository.ads: Same as above.
+ 	* diagnostics-sarif_emitter.adb: New pacakge for converting all of
+ 	the diagnostics into a report in the SARIF format.
+ 	* diagnostics-sarif_emitter.ads: Same as above.
+ 	* diagnostics-switch_repository.adb: New package containing the
+ 	definitions for all of the warninging switches.
+ 	* diagnostics-switch_repository.ads: Same as above.
+ 	* diagnostics-utils.adb: Contains various utility methods for the
+ 	diagnostic pacakges.
+ 	* diagnostics-utils.ads: Same as above.
+ 	* diagnostics.adb: Contains the definitions and common functions
+ 	for all the new diagnostics objects.
+ 	* diagnostics.ads: Same as above.
+ 	* errout.adb: Relocate the old implementations for brief and
+ 	pretty printing the diagnostic messages and the entrypoint to the
+ 	new implementation if a debug switch is used.
+ 	* errout.ads: Improve documentation. Make Set_Msg_Text publicly
+ 	available.
+ 	* opt.ads: Add the flag SARIF_File which controls whether the
+ 	diagnostic messages should be printed to a file in the SARIF
+ 	format. Add the flag SARIF_Output to control whether the
+ 	diagnostic messages should be printed to std-err in the SARIF
+ 	format.
+ 	* gcc-interface/Make-lang.in: Add new pacakages to the object
+ 	list.
+ 	* gcc-interface/Makefile.in: Add new pacakages to the object list.
+ 
+ 2024-09-05  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* ali-util.adb (Get_File_Checksum): Force the parsing for
+ 	the checksum computation of runtime files to be done in
+ 	the corresponding recent Ada version.
+ 
+ 2024-09-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* inline.adb (Cannot_Inline): Remove assertion.
+ 	* inline.ads (Cannot_Inline): Add precondition.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add kludge
+ 	to cope with ancient 32-bit ABIs.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (create_temporary): Deal with types whose
+ 	size is self-referential by allocating the maximum size.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (get_atomic_access): Deal specifically with
+ 	nodes that are both Atomic and Volatile_Full_Access in Ada 2012.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Take into
+ 	account the alignment of the field on all platforms.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_field): Clear again gnu_size
+ 	after updating it if it is not constant.
+ 
+ 2024-09-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_unst.adb (Check_Static_Type::Note_Uplevel_Bound): Refactor
+ 	to use the generic Traverse_Proc.
+ 	(Check_Static_Type): Adjust calls to Note_Uplevel_Bound as the
+ 	previous second parameter was unused, so removed.
+ 
+ 2024-09-03  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): If it makes sense
+ 	to do so, then rewrite a Length attribute reference as an
+ 	equivalent conditional expression.
+ 
+ 2024-09-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Is_Atomic_Ref_With_Address): Rename into...
+ 	(Is_Atomic_Non_VFA_Ref_With_Address): ...this and adjust the
+ 	implementation to exclude Volatile_Full_Access objects.
+ 	(Resolve_Indexed_Component): Adjust to above renaming.
+ 	(Resolve_Selected_Component): Likewise.
+ 
+ 2024-09-03  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Implement the two new
+ 	legality rules of AI11-0106. Add code to avoid cascading error
+ 	messages.
+ 
+ 2024-09-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call):
+ 	Remove Finalize_Storage_Only from the code that checks whether to
+ 	pass null to the Collection parameter. Having done that, we don't
+ 	need to check for Is_Library_Level_Entity, because
+ 	No_Heap_Finalization requires that. And if we ever change
+ 	No_Heap_Finalization to allow nested access types, we will still
+ 	want to pass null. Note that the comment "Such a type lacks a
+ 	collection." is incorrect in the case of Finalize_Storage_Only;
+ 	such types have a collection.
+ 
+ 2024-09-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Cap the Esize of a
+ 	floating-point type to the size of the widest format supported in
+ 	hardware if it is explicity defined.
+ 
+ 2024-09-02  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: update
+ 	documentation for the -gnatw_l switch.
+ 	* usage.adb: Add -gnatw_l entry.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-09-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnatcmd.adb (GNATCmd): Fix standard output stream.
+ 
+ 2024-09-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
+ 	minor issues.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-09-02  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: I assume "extended set
+ 	of extensions" was a typo for "experimental set of extensions",
+ 	because "extended extensions" is repetitive and redundant. "in
+ 	addition" clarifies that the one subsumes the other. Add a
+ 	reminder at the start of each subsection about what switch/pragma
+ 	enables what extensions. Add new section about "Inference of
+ 	Dependent Types in Generic Instantiations".
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-09-02  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* s-oscons-tmplt.c: Define sizes of pthread data types on FreeBSD.
+ 	* tracebak.c: Use GCC unwinder and adjust PC appropriately on
+ 	aarch64-freebsd.
+ 
+ 2024-09-02  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch9.adb (Reset_Scopes_To): Adjust comment.
+ 	(Reset_Scopes_To.Reset_Scope): Adjust the scope reset for object
+ 	declaration. In particular, visit the children nodes if any. Also
+ 	extend the handling of other declarations to
+ 	N_Implicit_Label_Declaration.
+ 
+ 2024-09-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Replace calls to Sloc
+ 	with uses of Loc; turn variable Prag into constant.
+ 
+ 2024-09-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_imgv.adb (Expand_User_Defined_Enumeration_Image)
+ 	(Expand_Image_Attribute): Remove redundant guards.
+ 
+ 2024-08-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch8.adb (Has_Private_With): Add test on Is_Entity_Name.
+ 
+ 2024-08-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Selected_Length_Checks.Get_E_Length): For a
+ 	component of a record with discriminants and if the expression is
+ 	a selected component, try to build an actual subtype from its
+ 	prefix instead of from the discriminal.
+ 
+ 2024-08-29  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Discriminant_Conformance): Immediately after
+ 	calling Is_Immutably_Limited_Type, perform an additional test that
+ 	one might reasonably imagine would instead have been part of
+ 	Is_Immutably_Limited_Type. The new test is a call to a new
+ 	function Has_Tagged_Limited_Partial_View whose implementation
+ 	includes a call to Incomplete_Or_Partial_View, which cannot be
+ 	easily be called from Is_Immutably_Limited_Type (because sem_aux,
+ 	which is in the closure of the binder, cannot easily "with"
+ 	sem_util).
+ 	* sem_aux.adb (Is_Immutably_Limited): Include
+ 	N_Derived_Type_Definition case when testing Limited_Present flag.
+ 
+ 2024-08-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Call_Helper): In the case of a function
+ 	call, look at the Etype of the call node to determine whether
+ 	finalization actions need to be performed.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* erroutc.adb (dmsg): Print Insertion_Sloc.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Range_Component): Remove extra warning
+ 	character. Use same conditional warning char.
+ 	* freeze.adb (Warn_Overlay): Use named warning character.
+ 	* restrict.adb (Id_Case): Use named warning character.
+ 	* sem_prag.adb (Rewrite_Assertion_Kind): Use default warning
+ 	character.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* par-ch4.adb (P_Name): Use Error_Msg_Sloc for the location of the
+ 	continuation message.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_prag.adb (Expand_Pragma_Inspection_Point): Improve sub
+ 	diagnostic generation.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch12.adb (Abandon_Instantiation): Remove continuation
+ 	characters from the error message.
+ 	* sem_ch13.adb (Check_False_Aspect_For_Derived_Type): Remove
+ 	continuation characters from the error message.
+ 	* sem_ch6.adb (Assert_False): Avoid creating a continuation
+ 	message without a parent. If no primary message is created then
+ 	the message is considered as primary.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* erroutc.adb (Prescan_Message): Avoid not parsing all of the
+ 	message attributes.
+ 	* erroutc.ads: Update the documentation.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* freeze.adb: Remove warning insertion characters from a
+ 	continuation message.
+ 	* sem_util.adb: Remove warning insertion characters from a
+ 	continuation message.
+ 	* sem_warn.adb: Use same warning character as the main message.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* erroutc.ads: Add new method Output_Text_Within
+ 	* erroutc.adb: Move the line fitting code to a new method called
+ 	Output_Text_Within
+ 
+ 2024-08-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Expr_Known_Valid): Use Validated_View, which strips
+ 	type derivation and privacy.
+ 	* exp_ch3.adb (Simple_Init_Private_Type): Kill checks inside
+ 	unchecked conversions, just like in Simple_Init_Scalar_Type.
+ 
+ 2024-08-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* styleg.adb (Check_Line_Max_Length): Add the actual line length
+ 	to the diagnostic message.
+ 
+ 2024-08-29  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Add loop over associations to locate
+ 	N_Iterated_Component_Associations that do not have an Iterator_Specification,
+ 	and if their Discrete_Choices list consists of a single choice, analyze it and
+ 	if it's the name of an iterator object, then create an Iterator_Specification
+ 	and associate it with the iterated component association.
+ 	(Resolve_Iterated_Association): Replace test for function call with test of
+ 	Is_Object_Reference, to handle other forms of iterator objects in container
+ 	aggregates.
+ 
+ 2024-08-29  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* usage.adb (Usage): Document switch -gnatw_j
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-08-29  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Move conditional when
+ 	constructs out of the curated set.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/115495
+ 	* gcc-interface/utils2.cc (fast_modulo_reduction): Require mode.
+ 	(nonbinary_modular_operation): Ditto.
+ 
+ 2024-08-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/misc.cc (gnat_get_array_descr_info): Test the
+ 	BIT_PACKED_ARRAY_TYPE_P flag only once on the final debug type. In
+ 	the case of records containing a template, replay the entire
+ 	processing for the array type contained therein.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* scng.adb (Scan): Call Error_Msg_GNAT_Extension() to report an
+ 	error, when the sources are compiled without Core_Extensions_
+ 	Allowed, and the scanner detects the beginning of an interpolated
+ 	string.
+ 
+ 2024-08-23  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* libgnat/s-dwalin.adb (Symbolic_Address): Ignore symbol size in
+ 	address-to-symbol translation for PECOFF files.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference: [Put_Image]): Add
+ 	support for custom string types.
+ 	* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Add a type
+ 	conversion to the result object declaration of custom string
+ 	types.
+ 	* exp_put_image.adb (Build_String_Put_Image_Call): Handle custom
+ 	string types.
+ 
+ 2024-08-23  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Generate
+ 	error if an aspect specification specifies the
+ 	Implicit_Dereference aspect of a non-first subtype.
+ 
+ 2024-08-23  Steve Baird  <baird@adacore.com>
+ 
+ 	* checks.adb (Is_Signed_Integer_Arithmetic_Op): Return True in the
+ 	case of relational operator whose operands are of a signed integer
+ 	type.
+ 
+ 2024-08-23  Viljar Indus  <indus@adacore.com>
+ 
+ 	* libgnat/a-coinho__shared.ads: add limited keyword.
+ 	* libgnat/g-awk.adb: add limited keyword.
+ 	* libgnat/g-comlin.ads: add limited keyword.
+ 	* libgnat/s-excmac__arm.ads: add limited keyword.
+ 	* libgnat/s-excmac__gcc.ads: add limited keyword.
+ 	* libgnat/s-soflin.ads: add limited keyword.
+ 
+ 2024-08-23  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch3.adb: Add method Check_Inherited_Limted_Record for
+ 	emitting the warning for an inherited limited type.
+ 	* warnsw.adb: Add processing for the -gnatw_l switch that
+ 	triggeres the inheritly limited type warning.
+ 	* warnsw.ads: same as above.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+ 	entry for -gnatw_l switch.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Private_Overriding): Improve code detecting
+ 	error on private function with controlling result. Fixes the
+ 	regression of ACATS bde0003.
+ 
+ 2024-08-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.ads, cstand.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb,
+ 	exp_dbug.adb, exp_util.adb, gnatlink.adb, lib-util.adb,
+ 	libgnat/a-except.adb, libgnat/a-exexpr.adb, libgnat/a-ngcoar.adb,
+ 	libgnat/s-rannum.adb, libgnat/s-trasym__dwarf.adb, osint.adb,
+ 	rtsfind.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
+ 	sem_ch3.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb,
+ 	sem_util.adb: Fix style.
+ 
+ 2024-08-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Ensure_Valid): Remove detection of boolean and
+ 	short-circuit operators.
+ 	(Expr_Known_Valid): Detect short-circuit operators; detection of
+ 	boolean operators was already done in this routine.
+ 
+ 2024-08-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Ensure_Valid): Use Find_Actual.
+ 
+ 2024-08-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Ensure_Valid): Use First_Actual/Next_Actual.
+ 	* exp_ch6.adb (Is_Direct_Deep_Call): Likewise.
+ 	* exp_util.adb (Type_Of_Formal): Likewise.
+ 	* sem_util.adb (Is_Container_Element): Likewise; cleanup
+ 	membership test by using a subtype.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Temporarily remove reporting
+ 	an error when the new aspect is set to True and the extensions are
+ 	not enabled.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_util.ads (Is_Expanded_Class_Wide_Interface_Object_Decl): New
+ 	subprogram.
+ 	* exp_util.adb (Is_Expanded_Class_Wide_Interface_Object_Decl):
+ 	ditto.
+ 	* sem_util.adb (Is_Aliased_View): Handle expanded class-wide type
+ 	object declaration.
+ 	* checks.adb (Is_Aliased_Unconstrained_Component): Protect the
+ 	frontend against calling Is_Aliased_View with Empty. Found working
+ 	on this issue.
+ 
+ 2024-08-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* aspects.ads (Aspect_First_Controlling_Parameter): New aspect.
+ 	Defined as implementation defined aspect that has a static boolean
+ 	value and it is converted to pragma when the value is True.
+ 	* einfo.ads (Has_First_Controlling_Parameter): New attribute.
+ 	* exp_ch9.adb (Build_Corresponding_Record): Propagate the aspect
+ 	to the corresponding record type.
+ 	(Expand_N_Protected_Type_Declaration): Analyze the inherited
+ 	aspect to add the pragma.
+ 	(Expand_N_Task_Type_Declaration): ditto.
+ 	* freeze.adb (Warn_If_Implicitly_Inherited_Aspects): New
+ 	subprogram.
+ 	(Has_First_Ctrl_Param_Aspect): New subprogram.
+ 	(Freeze_Record_Type): Call Warn_If_Implicitly_Inherited_Aspects.
+ 	(Freeze_Subprogram): Check illegal subprograms of tagged types and
+ 	interface types that have this new aspect.
+ 	* gen_il-fields.ads (Has_First_Controlling_Parameter): New entity
+ 	field.
+ 	* gen_il-gen-gen_entities.adb (Has_First_Controlling_Parameter):
+ 	The new field is a semantic flag.
+ 	* gen_il-internals.adb (Image): Add
+ 	Has_First_Controlling_Parameter.
+ 	* par-prag.adb (Prag): No action for
+ 	Pragma_First_Controlling_Parameter since processing is handled
+ 	entirely in Sem_Prag.
+ 	* sem_ch12.adb (Validate_Private_Type_Instance): When the generic
+ 	formal has this new aspect, check that the actual type also has
+ 	this aspect.
+ 	* sem_ch13.adb (Analyze_One_Aspect): Check that the aspect is
+ 	applied to a tagged type or a concurrent type.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): Derived tagged
+ 	types inherit this new aspect, and also from their implemented
+ 	interface types.
+ 	(Process_Full_View): Propagate the aspect to the full view.
+ 	* sem_ch6.adb (Is_A_Primitive): New subprogram; used to factor
+ 	code and also clarify detection of primitives.
+ 	* sem_ch9.adb (Check_Interfaces): Propagate this new aspect to the
+ 	type implementing interface types.
+ 	* sem_disp.adb (Check_Controlling_Formals): Handle tagged type
+ 	that has the aspect and has subprograms overriding primitives of
+ 	tagged types that lack this aspect.
+ 	(Check_Dispatching_Operation): Warn on dispatching primitives
+ 	disallowed by this new aspect.
+ 	(Has_Predefined_Dispatching_Operation_Name): New subprogram.
+ 	(Find_Dispatching_Type): Handle dispatching functions of tagged
+ 	types that have the new aspect.
+ 	(Find_Primitive_Covering_Interface): For primitives of tagged
+ 	types that have the aspect and override a primitive of a parent
+ 	type that does not have the aspect, we must temporarily unset
+ 	attribute First_Controlling_ Parameter to properly check
+ 	conformance.
+ 	* sem_prag.ads (Aspect_Specifying_Pragma): Add new pragma.
+ 	* sem_prag.adb (Pragma_First_Controlling_Parameter): Handle new
+ 	pragma.
+ 	* snames.ads-tmpl (Name_First_Controlling_Parameter): New name.
+ 	* warnsw.ads (Warn_On_Non_Dispatching_Primitives): New warning.
+ 	* warnsw.adb (Warn_On_Non_Dispatching_Primitives): New warning;
+ 	not set by default when GNAT_Mode warnings are enabled, nor when
+ 	all warnings are enabled (-gnatwa).
+ 
+ 2024-08-19  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR ada/115917
+ 	* gnatvsn.ads: Add note about the duplication of this value in
+ 	version.c.
+ 	* version.c (VER_LEN_MAX): Define to the same value as
+ 	Gnatvsn.Ver_Len_Max.
+ 	(gnat_version_string): Use VER_LEN_MAX as bound.
+ 
+ 2024-08-08  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Discriminant_Conformance): Perform check for
+ 	illegal access discriminant default values when the completion of
+ 	a limited private type is analyzed.
+ 	* sem_aux.adb (Is_Immutably_Limited): If passed the
+ 	not-yet-analyzed entity for the full view of a record type, test
+ 	the Limited_Present flag
+ 	(which is set by the parser).
+ 
+ 2024-08-08  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch4.adb (Build_Eq_Call): In the abstract callee case, copy
+ 	the Etype of the callee onto the Make_Raise_Program_Error result.
+ 
+ 2024-08-08  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch7.adb (Unnest_Block): Copy the At_End_Proc from the block
+ 	statement to the newly created subprogram body.
+ 
+ 2024-08-08  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* exp_put_image.adb (Append_Component_Attr): Obtain the mutably
+ 	tagged type for the component type.
+ 	* mutably_tagged.adb (Make_Mutably_Tagged_Conversion): Add more
+ 	cases to avoid conversion generation.
+ 	* sem_attr.adb (Check_Put_Image_Attribute): Add mutably tagged
+ 	type conversion.
+ 	* sem_ch12.adb (Analyze_One_Association): Add rewrite for formal
+ 	type declarations which are mutably tagged type to their
+ 	equivalent type.
+ 	(Instantiate_Type): Add condition to obtain class wide equivalent
+ 	types.
+ 	(Validate_Private_Type_Instance): Add check for class wide
+ 	equivalent types which are considered "definite".
+ 	* sem_util.adb (Is_Variable): Add condition to handle selected
+ 	components of view conversions. Add missing check for selected
+ 	components.
+ 	(Is_View_Conversion): Add condition to handle class wide
+ 	equivalent types.
+ 
+ 2024-08-08  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* stylesw.adb (Set_Style_Check_Options): Disable max nesting level
+ 	when unspecified
+ 
+ 2024-08-08  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
+ 	If the prefix is an interface type, generate code to obtain its
+ 	address and displace it to reference the base of the object.
+ 
+ 2024-08-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* libgnarl/s-taprop__posix.adb (Stack_Guard): Use Interfaces.C.size_t
+ 	for the type of Page_Size.
+ 
+ 2024-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* libgnarl/s-taprop__solaris.adb (Set_Task_Affinity): Fully
+ 	quality int.
+ 
+ 2024-08-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Concatenation_Rest): Do not add a wrong
+ 	interpretation of the concatenation, using the type of the operand
+ 	already recognized as of the element type.
+ 
+ 2024-08-06  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch12.adb: Implement type inference for generic parameters.
+ 	(Maybe_Infer_One): Forbid inference of anonymous subtypes and
+ 	types.
+ 	(Inference_Reason): Fix comment.
+ 	* debug.adb: Document -gnatd_I switch.
+ 	* errout.ads: Document that Empty is not allowed for "&".
+ 	* errout.adb (Set_Msg_Insertion_Node): Minor: Do not allow
+ 	Error_Msg_Node_1 = Empty for "&". Use "in" instead of multiple
+ 	"=". Improve comment.
+ 
+ 2024-08-06  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Statement.Wrap_Loop_Statement): Remove
+ 	the loop Entity_Id from its old scope and insert it in the new
+ 	block scope that wraps it.
+ 
+ 2024-08-06  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): For scalar derived types that
+ 	inherit the aspect Default_Value, do not analyze and resolve the
+ 	inherited aspect, as the type of the aspect remains the parent
+ 	type.
+ 
+ 2024-08-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* libgnarl/s-interr__hwint.adb: Use fully qualified names to avoid
+ 	ambiguity.
+ 	* libgnarl/s-taprop__qnx.adb: Likewise.
+ 
+ 2024-08-06  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* repinfo.adb (List_Record_Info): Handle private record types.
+ 
+ 2024-08-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* libgnarl/s-taprop__mingw.adb: Use fully qualified names
+ 	to avoid ambiguity.
+ 	* libgnarl/s-taprop__posix.adb: Likewise.
+ 	* libgnarl/s-taprop__qnx.adb: Likewise.
+ 	* libgnarl/s-taprop__rtems.adb: Likewise.
+ 
+ 2024-08-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* freeze.adb (Build_Renamed_Body): Propagate SPARK_Pragma to body
+ 	build from renaming, so that locally relevant value is taken into
+ 	account.
+ 	* sem_ch6.adb (Analyze_Expression_Function): Propagate
+ 	SPARK_Pragma to body built from expression function, so that
+ 	locally relevant value is taken into account.
+ 
+ 2024-08-06  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch8.adb (Find_Direct_Name): Disable the special-purpose code
+ 	when we are actually compiling the run-time library itself.
+ 	* libgnarl/a-exetim__posix.adb: Fix newly-found use-clause
+ 	conflicts.
+ 	* libgnat/a-direct.adb: Likewise.
+ 	* libgnat/a-nbnbin.adb: Likewise.
+ 	* libgnat/a-timoio__128.adb: Likewise.
+ 	* libgnat/a-timoio.adb: Likewise.
+ 	* libgnat/a-wtmoio__128.adb: Likewise.
+ 	* libgnat/a-wtmoio.adb: Likewise.
+ 	* libgnat/a-ztmoio__128.adb: Likewise.
+ 	* libgnat/a-ztmoio.adb: Likewise.
+ 
+ 2024-08-02  Yannick Moy  <moy@adacore.com>
+ 
+ 	* aspects.adb (Find_Aspect): Take into account the case of a node
+ 	of kind N_Defining_Program_Unit_Name.
+ 	* sem_ch10.adb (Analyze_Compilation_Unit): Copy the SPARK aspect
+ 	from the spec to the body. Delay semantic analysis after that
+ 	point to ensure that SPARK_Mode is properly analyzed.
+ 
+ 2024-08-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Add_Loop_Actions): Actions are now attached to
+ 	iterated component association just like they are attached to
+ 	ordinary component association.
+ 	(Build_Array_Aggr_Code): If resolution of the array aggregate
+ 	generated some actions, e.g. for run-time checks, then we must
+ 	keep them; same for the Other_Clause.
+ 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Unset
+ 	references to iterator variable in loop actions (which might come
+ 	from run-time check), just these references are unset in the
+ 	expression itself.
+ 
+ 2024-08-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Insert_Actions): Remove null ELSE branch.
+ 
+ 2024-08-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Add_Loop_Actions): Change manipulation of list
+ 	to avoid unnecessary calls to Parent and Loop_Actions.
+ 
+ 2024-08-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Insert_Actions): Move negation in front of
+ 	complex conjunctions.
+ 
+ 2024-08-02  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Gen_Assign): Fix layout.
+ 	* sem_aggr.adb (Empty_Range): Reuse Choice_List.
+ 
+ 2024-08-02  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb
+ 	(Expand_Container_Aggregate.Expand_Iterated_Component): Set the
+ 	Reverse_Present flag when creating the loop's iteration_scheme.
+ 	* gen_il-gen-gen_nodes.adb: Add flag Reverse_Present to
+ 	N_Iterated_Component_Association nodes.
+ 	* par-ch3.adb (P_Constraint_Op): Remove testing for and ignoring
+ 	of Tok_In following a constraint. It's allowed for "in" to follow
+ 	a constraint of loop_parameter_subtype_indication of an
+ 	iterator_specification, so it shouldn't be ignored.
+ 	* par-ch4.adb (P_Iterated_Component_Association): Account for
+ 	"reverse" following the "in" in an iterated_component_association,
+ 	and set the Reverse_Present flag on the
+ 	N_Iterated_Component_Association node. Add handling for a ":"
+ 	following the identifier in an iterator_specification of an
+ 	iterated_element_association, sharing the code with the "of" case
+ 	(which backs up to the identifier at the beginning of the
+ 	iterator_specification). Fix incorrect trailing comment following
+ 	the call to Scan.
+ 	(Build_Iterated_Element_Association): Set the Reverse_Present flag
+ 	on an N_Loop_Parameter_Specification node of an
+ 	N_Iterated_Element_Association.
+ 	* par-ch5.adb (P_Iterator_Specification): Remove error-recovery
+ 	and error code that reports "subtype indication is only legal on
+ 	an element iterator", as that error can no longer be emitted (and
+ 	was formerly only reported on one fixedbugs test).
+ 	* sem_aggr.adb
+ 	(Resolve_Container_Aggregate.Resolve_Iterated_Association): When
+ 	creating an N_Iterator_Specification for an
+ 	N_Iterated_Component_Association, set the Reverse_Present flag of
+ 	the N_Iterated_Specification from the flag on the latter.
+ 	* sinfo.ads: Add comments for the Reverse_Present flag, which is
+ 	now allowed on nodes of kind N_Iterated_Component_Association.
+ 
+ 2024-08-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate the
+ 	No_Raise flag like the No_Return flag.
+ 
+ 2024-08-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Remove variables.
+ 	(To_Int): New function.
+ 	(Add_Range_Size): Use newly introduced function.
+ 
+ 2024-08-02  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strunb.adb (Sum, Saturated_Sum, Saturated_Mul): Adapt
+ 	function signatures to more precise types that allow proof.
+ 	(function "&"): Conditionally assign a slice to avoid possible
+ 	overflow which only occurs when the assignment is a noop (because
+ 	the slice is empty in that case).
+ 	(Append): Same.
+ 	(function "*"): Retype K to avoid a possible overflow. Add early
+ 	return on null length for proof.
+ 	(Delete): Fix implementation to return the correct result in all
+ 	cases allowed by the Ada standard.
+ 	(Insert): Same. Also avoid possible overflows.
+ 	(Length): Rewrite as expression function for proof.
+ 	(Overwrite): Avoid possible overflows.
+ 	(Slice): Same.
+ 	(To_String): Rewrite as expression function for proof.
+ 	* libgnat/a-strunb.ads: Extend Assertion_Policy to new contracts
+ 	used. Add complete functional contracts to all subprograms of the
+ 	public API except Count.
+ 	* libgnat/a-strunb__shared.adb (Sum): Adapt function signature to
+ 	more precise types that allow proof.
+ 	(function "&"): Conditionally assign a slice to avoid possible
+ 	overflow.
+ 	(function "*"): Retype K to avoid a possible overflow.
+ 	(Delete): Fix implementation to return the correct result in all
+ 	cases allowed by the Ada standard.
+ 	(Insert): Avoid possible overflows.
+ 	(Overwrite): Avoid possible overflows.
+ 	(Replace_Slice): Same.
+ 	(Slice): Same.
+ 	(To_String): Rewrite as expression function for proof.
+ 	* libgnat/a-strunb__shared.ads: Extend Assertion_Policy to new
+ 	contracts used. Add complete functional contracts to all
+ 	subprograms of the public API except Count. Mark public part of
+ 	spec as in SPARK.
+ 
+ 2024-08-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* scng.adb (Slit): Initialize object in uncommon path.
+ 
+ 2024-08-02  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* exp_ch4.adb (Generate_Temporary): Remove unused procedure.
+ 
+ 2024-08-02  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* einfo-utils.ads (Is_Finalizer): Delete.
+ 	* einfo-utils.adb (Is_Finalizer): Delete.
+ 	* einfo.ads: Adjust comment.
+ 	* gen_il-fields.ads, gen_il-gen-gen_entities.adb: Add Is_Finalizer
+ 	flag.
+ 	* exp_ch3.adb (Build_Init_Procedure): Set it.
+ 	* exp_ch7.adb (Create_Finalizer): Likewise.
+ 	* exp_util.adb (Try_Inline_Always): New function.
+ 	* exp_util.ads (Try_Inline_Always): New function.
+ 	* sem_elab.adb (Is_Finalizer_Proc): Replace with Is_Finalizer.
+ 
+ 2024-08-02  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/a-calend.adb: Modify unix time handling.
+ 
+ 2024-08-02  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Add examples.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-02  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* gen_il-fields.ads (Is_Interpolated_String_Literal): New field.
+ 	* gen_il-gen-gen_nodes.adb (Is_Interpolated_String_Literal): The
+ 	new field is a flag handled by the parser (syntax flag).
+ 	* par-ch2.adb (P_Interpolated_String_Literal): Decorate the new
+ 	flag.
+ 	* sem_ch2.adb (Analyze_Interpolated_String_Literal): Improve code
+ 	detecting and reporting ambiguous function calls.
+ 	* sem_res.adb (Resolve_Interpolated_String_Literal): Restrict
+ 	resolution imposed by the context type to string literals that
+ 	have the new flag.
+ 	* sinfo.ads (Is_Interpolated_String_Literal): New field defined in
+ 	string literals. Fix documentation of the syntax rule of
+ 	interpolated string literal.
+ 
+ 2024-08-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Assignment): Delete code that was
+ 	incorrectly implementing a preference rule.
+ 
+ 2024-08-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Relaxed Finalization): New paragraph in head
+ 	comment.
+ 	* sem_ch13.adb (Validate_Finalizable_Aspect): Give an error
+ 	message if strict finalization is required but not supported by
+ 	the runtime.
+ 
+ 2024-08-02  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_util.adb (Set_Referenced_Modified): Set referenced as LHS
+ 	for the prefixes of array slices.
+ 
+ 2024-08-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch8.adb (Find_Type): If Is_Current_Instance returns True for
+ 	N (and Comes_From_Source (N) is also True) then flag an error.
+ 	Call Is_Current_Instance (twice) instead of duplicating (twice)
+ 	N_Access_Definition-related code in Is_Current_Instance.
+ 	* sem_util.adb (Is_Current_Instance): Implement
+ 	access-type-related clauses of the RM 8.6 current instance rule.
+ 	For pragmas Predicate and Predicate_Failure, distinguish between
+ 	the first and subsequent pragma arguments.
+ 
+ 2024-08-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_res.adb (Valid_Conversion): Test In_Instance instead of
+ 	In_Instance_Body.
+ 
+ 2024-08-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Add Aspect_No_Raise identifier.
+ 	(Implementation_Defined_Aspect): Add True for Aspect_No_Raise.
+ 	(Is_Representation_Aspect): Add False for Aspect_No_Raise.
+ 	(Aspect_Names): Add Name_No_Raise for Aspect_No_Raise.
+ 	(Aspect_Delay): Add Always_Delay for Aspect_No_Raise.
+ 	* checks.ads (Raise_Checks_Suppressed): New function.
+ 	(Apply_Raise_Check): New procedure.
+ 	* checks.adb (Apply_Raise_Check): New procedure.
+ 	(Raise_Checks_Suppressed): New function.
+ 	* doc/gnat_rm/gnat_language_extensions.rst (Generalized
+ 	Finalization): Update.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst (No_Raise): New.
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst (Check
+ 	names): Document Raise_Check and alphabetize others.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst (No_Raise): New.
+ 	* einfo.ads (No_Raise): New flag defined in subprograms and
+ 	generic subprograms.
+ 	* exp_ch6.adb (Expand_N_Subprogram_Body): Call Apply_Raise_Check
+ 	at the end of the processing.
+ 	* exp_ch11.adb (Get_RT_Exception_Name): Add alternative for
+ 	PE_Raise_Check_Failed to case statement.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add No_Raise identifier.
+ 	* gen_il-gen-gen_entities.adb (Subprogram_Kind): Add No_Raise as
+ 	semantical flag.
+ 	(Generic_Subprogram_Kind): Likewise.
+ 	* par-prag.adb (Prag): Add alternative for Pragma_No_Raise to case
+ 	statement.
+ 	* sem_ch13.adb (Validate_Finalizable_Aspect): Set No_Raise on the
+ 	Adjust and Finalize primitives if Relaxed_Finalization is set.
+ 	* sem_prag.adb (Analyze_Pragma): Add alternative for
+ 	Pragma_No_Raise to case statement.
+ 	(Sig_Flag): Add 0 for Pragma_No_Raise.
+ 	* snames.ads-tmpl (Remaining pragma names): Add Name_No_Raise.
+ 	(Names of recognized checks): Add Name_Raise_Check.
+ 	(Pragma_Id): Add Pragma_No_Raise identifier.
+ 	* types.ads (Raise_Check): New named number.
+ 	(All_Checks): Adjust.
+ 	(RT_Exception_Code): Add PE_Raise_Check_Failed identifier.
+ 	(Rkind): Add PE_Reason for PE_Raise_Check_Failed and alphabetize.
+ 	* types.h (RT_Exception_Code): Add PE_Raise_Check_Failed as 38.
+ 	(LAST_REASON_CODE): Adjust.
+ 	* libgnat/a-except.adb (Rcheck_PE_Raise_Check): New procedure with
+ 	pragmas Export, No_Return and Machine_Attributes.
+ 	(Rmsg_38): New string constant.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-08-02  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_library_routines.rst: Add note to section
+ 	of Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
+ 	* doc/gnat_rm/the_gnat_library.rst: Add note to section about
+ 	GNAT.Random_Numbers.
+ 	* libgnat/a-nudira.ads: Add note about cryptographic properties.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Fix layout of section.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Is_Conversion_Or_Reference_To_Formal): New
+ 	function declaration.
+ 	* exp_util.adb (Is_Conversion_Or_Reference_To_Formal): New
+ 	function body.
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Call the predicate
+ 	Is_Conversion_Or_Reference_To_Formal in order to decide whether a
+ 	tag check or reassignment is needed.
+ 	* freeze.adb (Should_Freeze_Type): Move declaration and body to
+ 	the appropriate places. Also return True for tagged results
+ 	subject to the expansion done in Expand_Simple_Function_Return
+ 	that is guarded by the predicate
+ 	Is_Conversion_Or_Reference_To_Formal.
+ 
+ 2024-08-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Statement): Fix loop pattern detection
+ 	code. Fix typo.
+ 
+ 2024-08-01  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strunb.adb (Realloc_For_Chunk): Fix computation of new
+ 	size.
+ 
+ 2024-08-01  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strbou.ads (To_String): Add a postcondition to state
+ 	the value of bounds of the returned string, which helps with proof
+ 	of callers.
+ 	* libgnat/a-strfix.adb (Delete): Fix implementation to produce
+ 	correct result in all cases. For example, returned string should
+ 	always have a lower bound of 1, which was not respected in one
+ 	case. This was not detected by proof, since this code was dead
+ 	according to the too strict precondition.
+ 	* libgnat/a-strfix.ads (Delete): State the correct precondition
+ 	from standard which allows a value of Through beyond the last
+ 	valid index, and also restricts values of From from below. Update
+ 	the Contract_Cases accordingly to allow new values of parameters.
+ 
+ 2024-08-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Don't check for duplicate
+ 	SPARK_Mode pragmas in configuration files.
+ 
+ 2024-08-01  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute, Attribute_*Access): Resolve
+ 	overloaded prefixes that denote objects of reference types,
+ 	determining whether to use the prefix object directly, or expand
+ 	it as an explicit dereference.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sinfo.ads (N_Block_Statement): Move At_End_Proc to the end of
+ 	slot list and alphabetize flag list.
+ 	(N_Subprogram_Body): Add At_End_Proc.
+ 	(N_Package_Body): Move At_End_Proc to the end of slot list.
+ 	(N_Subprogram_Body_Stub): Remove At_End_Proc.
+ 
+ 2024-08-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification):
+ 	Unconditionally set the type of loop parameter.
+ 
+ 2024-08-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* backend_utils.adb (Scan_Common_Back_End_Switch): Remove blank
+ 	line.
+ 	* errout.adb (Output_JSON_Message): Likewise.
+ 	* erroutc.adb (Set_Msg_Char): Likewise.
+ 	* exp_aggr.adb (Two_Dim_Packed_Array_Handled): Likewise.
+ 	* exp_pakd.adb (Expand_Packed_Address_Reference): Likewise.
+ 	(Expand_Packed_Bit_Reference): Likewise.
+ 	(Expand_Packed_Boolean_Operator): Likewise.
+ 	(Expand_Packed_Element_Reference): Likewise.
+ 	(Expand_Packed_Eq): Likewise.
+ 	(Expand_Packed_Not): Likewise.
+ 	* exp_prag.adb (Build_Dim3_Declaration): Likewise.
+ 	* exp_strm.adb (Build_Elementary_Input_Call): Likewise.
+ 	* freeze.adb (Find_Aspect_No_Parts): Likewise.
+ 	(Get_Aspect_No_Parts_Value): Likewise.
+ 	* gen_il-gen.adb (Compile): Likewise.
+ 	* gnat1drv.adb (Adjust_Global_Switches): Likewise.
+ 	* gnat_cuda.adb (Expand_CUDA_Package): Likewise.
+ 	* gnatchop.adb (Read_File): Likewise.
+ 	* gnatls.adb (Get_Runtime_Path): Likewise.
+ 	* make.adb (Binding_Phase): Likewise.
+ 	* par-ch11.adb (P_Exception_Choice): Likewise.
+ 	* par-ch5.adb (P_Loop_Parameter_Specification): Likewise.
+ 	* par-ch6.adb (Is_Extended): Likewise.
+ 	* sem_attr.adb (Check_Dereference): Likewise.
+ 	* sem_ch12.adb (Build_Subprogram_Decl_Wrapper): Likewise.
+ 	* sem_ch3.adb (Build_Itype_Reference): Likewise.
+ 	* sem_prag.adb (Validate_Compile_Time_Warning_Errors): Likewise.
+ 	* sem_res.adb (Resolve_Declare_Expression): Likewise.
+ 	* sem_util.adb (Build_Default_Subtype): Likewise.
+ 	* sprint.adb (Sprint_Paren_Comma_List): Likewise.
+ 
+ 2024-08-01  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* par-ch2.adb (P_Interpolated_String_Literal): remove support of
+ 	multi-line string literals.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Update documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-08-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_warn.adb (Output_Obsolescent_Entity_Warnings): use the ?j?
+ 	in warning messages.
+ 
+ 2024-08-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Fix test for
+ 	expanded quantified expression context.
+ 	(Is_Expanded_Quantified_Expr): New function.
+ 
+ 2024-08-01  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch13.adb (Add_Predicate): Remove the premature "return;".
+ 	Ghost code needs to be processed by later code in this procedure
+ 	even when ignored; otherwise the second pass of name resolution
+ 	fails much later. However, protect Set_SCO_Pragma_Enabled and
+ 	Add_Condition with "if not Is_Ignored_Ghost_Pragma"; these parts
+ 	should not happen if the ghost code is Ignored.
+ 	* libgnat/interfac__2020.ads (Unsigned_8): Minor reformatting.
+ 	* libgnat/interfac.ads (IEEE_Extended_Float): Minor comment
+ 	improvement.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (No_Return): Change description and adjust
+ 	accordingly.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Remove No_Return.
+ 	(Subprogram_Kind): Add No_Return.
+ 	(Generic_Subprogram_Kind): Likewise.
+ 	* sem_ch6.adb (Analyze_Return_Statement): Adjust No_Return test.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst (Generalized
+ 	Finalization): Update status.
+ 	* einfo.ads (Has_Relaxed_Finalization): Add more details.
+ 	* exp_ch4.adb (Process_Transients_In_Expression): Invoke
+ 	Make_Finalize_Call_For_Node instead of building the call.
+ 	* exp_ch5.adb (Expand_N_Assignment_Statement): Do not set up an
+ 	exception handler around the assignment for a controlled type with
+ 	relaxed finalization semantics. Streamline the code implementing
+ 	the protection against aborts and do not use an At_End handler for
+ 	a controlled type with relaxed finalization semantics.
+ 	* exp_ch7.ads (Make_Finalize_Call_For_Node): New function.
+ 	* exp_ch7.adb (Finalize_Address_For_Node): New function renaming.
+ 	(Set_Finalize_Address_For_Node): New procedure renaming.
+ 	(Attach_Object_To_Master_Node): Also attach the Finalize_Address
+ 	primitive to the Master_Node statically.
+ 	(Build_Finalizer): Add Has_Strict_Ctrl_Objs local variable. Insert
+ 	back the body of the finalizer at the end of the statement list in
+ 	the non-package case and restore the associated support code to
+ 	that effect. When all the controlled objects have the relaxed
+ 	finalization semantics, do not create a Finalization_Master and
+ 	finalize the objects directly instead.
+ 	(Processing_Actions): Add Strict parameter and use it to set the
+ 	Has_Strict_Ctrl_Objs variable.
+ 	(Process_Declarations): Make main loop more robust and adjust
+ 	calls to Processing_Actions.
+ 	(Make_Finalize_Address_Body): Mark the primitive as inlined if the
+ 	type has relaxed finalization semantics.
+ 	(Make_Finalize_Call_For_Node): New function.
+ 	* sem_ch6.adb (Check_Statement_Sequence): Skip subprogram bodies.
+ 	* libgnat/s-finpri.ads (Finalize_Object): Add Finalize_Address
+ 	parameter.
+ 	(Master_Node): Remove superfluous qualification.
+ 	* libgnat/s-finpri.adb (Attach_Object_To_Node): Likewise.
+ 	(Finalize_Master): Adjust calls to Finalize_Object.
+ 	(Finalize_Object): Add Finalize_Address parameter and assert that
+ 	it is equal to the component of the node. Use the Object_Address
+ 	component as guard.
+ 	(Suppress_Object_Finalize_At_End): Clear Object_Address component.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-08-01  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Main): Put back support for -G
+ 	* bindusg.adb (Display): Put back line for -G
+ 	* opt.ads (CCG_Mode): Update doc
+ 	* switch-b.adb (Scan_Binder_Switches): Put back support for -G
+ 
+ 2024-08-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Disable expansion
+ 	in CodePeerMode.
+ 	(Expand_Packed_Address_Reference): Likewise.
+ 	(Expand_Packed_Bit_Reference): Likewise.
+ 	(Expand_Packed_Boolean_Operator): Likewise.
+ 	(Expand_Packed_Element_Reference): Likewise.
+ 	(Expand_Packed_Eq): Likewise.
+ 	(Expand_Packed_Not): Likewise.
+ 
+ 2024-08-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_Too_Late): Move routine to top-level.
+ 	(Resolve_Aspect_Expressions): Check aspects Default_Value and
+ 	Default_Component_Value before resolving their expressions.
+ 
+ 2024-08-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_Too_Late): Prevent freezing during
+ 	preanalysis.
+ 
+ 2024-08-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Resolve_Aspect_Expression): Don't set
+ 	Must_Not_Freeze before preanalyzing spec expressions.
+ 
+ 2024-08-01  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_disp.adb (Check_Dispatching_Operation): When calling
+ 	Error_Msg_NE to generate a "missing overriding indicator" message,
+ 	generate a warning message instead of an error message (and update
+ 	comment to describe this new behavior).
+ 
+ 2024-08-01  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb (Collect_Aggr_Bounds): Adjust previous patch to
+ 	store the bounds of inner null aggregates in the itype; required
+ 	generate the runtime check of ARM 4.3.3(30).
+ 
+ 2024-08-01  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* osint-c.ads, osint-c.adb (Create_C_File, Close_C_File,
+ 	Delete_C_File): Put back, needed by LLVM based CCG.
+ 	* exp_unst.adb (Unnest_Subprogram): Complete previous change by
+ 	removing now dead code and corresponding ??? comment.
+ 
+ 2024-08-01  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do the
+ 	component adjustment in the case of initialization by a container
+ 	aggregate.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): Set Expansion_Delayed on
+ 	intermediate conditional expressions for BIP aggregate returns
+ 	too.
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Also deal with delayed
+ 	expansion in the return case.
+ 	(Expand_N_If_Expression): Likewise.
+ 
+ 2024-08-01  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb (Is_Effectively_Visible_Opertor): Return True if
+ 	Checking_Potentially_Static_Expression is True. The accompanying
+ 	comment says True is returned "if there is a reason it is ok for
+ 	Is_Visible_Operator to return False"; if
+ 	Checking_Potentially_Static_Expression is true, that is such a
+ 	reason.
+ 
+ 2024-08-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Stop
+ 	ignoring Component_Size attribute in CodePeer_Mode.
+ 
+ 2024-08-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Prepare_Param_Spec_Loop): Fix criterion for
+ 	wrapping loop statements into blocks.
+ 
+ 2024-08-01  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* bindgen.adb, bindusg.adb, debug.adb, einfo.ads,
+ 	exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
+ 	exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_dbug.adb,
+ 	exp_dbug.ads, exp_intr.adb, exp_unst.adb, exp_util.adb,
+ 	exp_util.ads, freeze.adb, gen_il-fields.ads,
+ 	gen_il-gen-gen_entities.adb, gnat1drv.adb, inline.adb, opt.ads,
+ 	osint-c.adb, osint-c.ads, sem_attr.adb, sem_ch12.adb, sem_ch3.adb,
+ 	sem_ch4.adb, sem_ch6.adb, sem_elab.adb, sem_res.adb, sinfo.ads,
+ 	snames.ads-tmpl, switch-b.adb, switch-c.adb: Major
+ 	clean up to remove C code generation for bodies.
+ 
+ 2024-08-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Flatten): Do not reject empty aggregates. Adjust
+ 	criterion for emitting warning about ineffective others clause.
+ 	* sem_aggr.adb (Array_Aggr_Subtype): Fix typo. Add handling of
+ 	aggregates that were converted to positional form.
+ 	(Resolve_Aggregate): Tweak criterion for transforming into a
+ 	string literal.
+ 	(Resolve_Array_Aggregate): Tweak criterion for reusing existing
+ 	bounds of aggregate.
+ 	(Retrieve_Aggregate_Bounds): New procedure.
+ 	* sem_util.adb (Has_Static_Empty_Array_Bounds): New function.
+ 	* sem_util.ads (Has_Static_Empty_Array_Bounds): Likewise.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.ads (Build_Finalizer): Remove Top_Decls parameter.
+ 	* exp_ch7.adb (Build_Finalizer): Likewise. Rename Counter_Val into
+ 	Count, replace Has_Ctrl_Objs local variable by expression
+ 	function, remove Spec_Decls local variable and do not reset
+ 	Finalizer_Decls.
+ 	(Expand_Cleanup_Actions): Adjust call to Build_Finalizer.
+ 	(Expand_N_Package_Body): Likewise.
+ 	(Expand_N_Package_Declaration): Likewise.
+ 	* inline.adb (Cleanup_Scopes): Likewise.
+ 
+ 2024-08-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Address_For_Finalize): Generate a direct call
+ 	to the "+" operator of System.Storage_Elements.
+ 	(Make_Finalize_Address_Stmts): Likewise.
+ 	* rtsfind.ads (RE_Id): Remove RE_Add_Offset_To_Address.
+ 	(RE_Unit_Table): Remove entry for RE_Add_Offset_To_Address.
+ 	* libgnat/s-finpri.ads (Add_Offset_To_Address): Delete.
+ 	* libgnat/s-finpri.adb (Add_Offset_To_Address): Likewise.
+ 
+ 2024-07-07  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* gcc-interface/Make-lang.in (ada.all.cross): Move recipe to...
+ 	(GNATTOOLS_CROSS_MV): ... this new variable.
+ 	(cross-gnattools): Paste it here.
+ 	(gnattools-cross-mv): New target.
+ 
+ 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/misc.cc (gnat_get_array_descr_info): Only follow
+ 	TYPE_DEBUG_TYPE if TYPE_CAN_HAVE_DEBUG_TYPE_P.
+ 	* gcc-interface/utils.cc (sized_type_hash): New struct.
+ 	(sized_type_hasher): New struct.
+ 	(sized_type_hash_table): New variable.
+ 	(init_gnat_utils): Allocate it.
+ 	(destroy_gnat_utils): Release it.
+ 	(sized_type_hasher::equal): New.
+ 	(hash_sized_type): New.
+ 	(canonicalize_sized_type): New.
+ 	(make_type_from_size): Use it to cache packed variants.  Fix
+ 	type reuse by combining biased_p and for_biased earlier.  Hold
+ 	the combination in for_biased, adjusting later uses.
+ 
+ 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/cuintp.cc (UI_To_gnu): Add mode that selects a
+ 	wide enough unsigned type.  Fail if the constant exceeds the
+ 	representable numbers.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use it for
+ 	numerator and denominator of fixed-point types.  In case of
+ 	failure, fall back to an indeterminate fraction.
+ 
+ 2024-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Concatenate): In the case where an operand
+ 	does not have both bounds known at compile time, use nevertheless
+ 	the low bound directly if it is known at compile time.
+ 	Fold the conditional expression giving the low bound of the result
+ 	in the general case if the low bound of all the operands are equal.
+ 
+ 2024-07-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch12.adb (Save_And_Reset): Fix value of low bound used to
+ 	reset table.
+ 
+ 2024-07-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_attr.adb
+ 	(Analyze_Image_Attribute.Check_Image_Type): Check for
+ 	E_Access_Attribute_Type prefix type.
+ 
+ 2024-07-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch9.adb
+ 	(Expand_N_Protected_Body): Declare new procedure
+ 	Unanalyze_Use_Clauses and call it before analyzing the newly
+ 	constructed subprogram body.
+ 
+ 2024-07-02  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_put_image.adb
+ 	(Build_Record_Put_Image_Procedure): Declare new Boolean-valued
+ 	function Null_Record_Default_Implementation_OK; call it as part of
+ 	deciding whether to generate "(NULL RECORD)" text.
+ 
+ 2024-07-02  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_ch5.adb:
+ 	(Analyze_Assignment): Add special expansion for qualified expressions
+ 	in certain cases dealing with mutably tagged types.
+ 
+ 2024-07-02  Bob Duff  <duff@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Type_Refs): If Node is in N_Has_Etype,
+ 	check that it has had its Etype set, because this can be
+ 	called early for expression functions that are completions.
+ 
+ 2024-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Array_Comparison): Remove the obsolete byte
+ 	addressibility test. If Support_Composite_Compare_On_Target is true,
+ 	immediately return for a component size of 8, an unsigned component
+ 	type and aligned operands. Disable when Unnest_Subprogram_Mode is
+ 	true (for LLVM).
+ 	(Expand_N_Op_Eq): Adjust comment.
+ 	* targparm.ads (Support_Composite_Compare_On_Target): Replace bit by
+ 	byte in description and document support for ordering comparisons.
+ 	* gcc-interface/utils2.cc (compare_arrays): Rename into...
+ 	(compare_arrays_for_equality): ...this.  Remove redundant lines.
+ 	(compare_arrays_for_ordering): New function.
+ 	(build_binary_op) <comparisons>: Call compare_arrays_for_ordering
+ 	to implement ordering comparisons for arrays.
+ 
+ 2024-07-02  Yannick Moy  <moy@adacore.com>
+ 
+ 	* contracts.adb (Analyze_Pragmas_In_Declarations): Analyze
+ 	pragmas in two iterations over the list of declarations in
+ 	order to analyze some pragmas before others.
+ 	* einfo-utils.ads (Get_Pragma): Fix comment.
+ 	* sem_prag.ads (Pragma_Significant_To_Subprograms): Fix.
+ 	(Pragma_Significant_To_Subprograms_Analyzed_First): Add new
+ 	global array to identify these pragmas which should be analyzed
+ 	first, which concerns only Extensions_Visible for now.
+ 
+ 2024-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Convert_View): Add third parameter Typ and use it if
+ 	the second parameter does not have an Etype.
+ 	(Make_Adjust_Call): Remove obsolete setting of Etype and pass Typ in
+ 	call to Convert_View.
+ 	(Make_Final_Call): Likewise.
+ 	(Make_Init_Call): Pass Typ in call to Convert_View.
+ 
+ 2024-07-02  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb (Cannot_Compute_High_Bound): New subprogram.
+ 	(Report_Null_Array_Constraint_Error): New subprogram.
+ 	(Collect_Aggr_Bounds): For null aggregates, build the bounds
+ 	of the inner dimensions.
+ 	(Has_Null_Aggregate_Raising_Constraint_Error): New subprogram.
+ 	(Subtract): New subprogram.
+ 	(Resolve_Array_Aggregate): Report a warning when the index of
+ 	null array aggregates is an enumeration type or a modular type
+ 	at we can statically determine that the program will raise CE
+ 	at runtime computing its high bound.
+ 	(Resolve_Null_Array_Aggregate): ditto.
+ 
+ 2024-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
+ 	(No_Default_Initialization): Mention components alongside variables.
+ 	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Check that the
+ 	restriction No_Default_Initialization is not in effect for default
+ 	initialized component.
+ 	(Build_Record_Aggr_Code): Likewise.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* debug.adb (dJ): Add back as unused.
+ 
+ 2024-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-carsi8.adb: Remove clauses for System.Address_Operations
+ 	and use only operations of System.Storage_Elements for addresses.
+ 	* libgnat/s-casi16.adb: Likewise.
+ 	* libgnat/s-casi32.adb: Likewise.
+ 	* libgnat/s-casi64.adb: Likewise.
+ 	* libgnat/s-casi128.adb: Likewise.
+ 	* libgnat/s-carun8.adb: Likewise.
+ 	* libgnat/s-caun16.adb: Likewise.
+ 	* libgnat/s-caun32.adb: Likewise.
+ 	* libgnat/s-caun64.adb: Likewise.
+ 	* libgnat/s-caun128.adb: Likewise.
+ 	* libgnat/s-geveop.adb: Likewise.
+ 
+ 2024-06-27  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch2.adb (Analyze_Interpolated_String_Literal): Report
+ 	interpretations of ambiguous parameterless function calls.
+ 
+ 2024-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Target_Name): Call Analyze_Dimension on the
+ 	node once the Etype is set.
+ 	* sem_dim.adb (OK_For_Dimension): Set to True for N_Target_Name.
+ 	(Analyze_Dimension): Call Analyze_Dimension_Has_Etype for it.
+ 
+ 2024-06-27  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* mdll.adb (Build_Non_Reloc_DLL): Fix incorrect assignment
+ 	to array object.
+ 	(Ada_Build_Non_Reloc_DLL): Likewise.
+ 
+ 2024-06-27  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Has_Applicable_User_Defined_Literal): Add missing
+ 	support for interpolated strings.
+ 
+ 2024-06-27  Martin Clochard  <clochard@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Overriding_Indicator) Remove Comes_From_Source filter.
+ 	(New_Overloaded_Entity) Move up special case of LSP_Subprogram,
+ 	and remove Comes_From_Source filter.
+ 
+ 2024-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Add Aspect_Finalizable.
+ 	(Implementation_Defined_Aspect): Add True for Aspect_Finalizable.
+ 	(Operational_Aspect): Add True for Aspect_Finalizable.
+ 	(Aspect_Argument): Add Expression for Aspect_Finalizable.
+ 	(Is_Representation_Aspect): Add False for Aspect_Finalizable.
+ 	(Aspect_Names): Add Name_Finalizable for Aspect_Finalizable.
+ 	(Aspect_Delay): Add Always_Delay  for Aspect_Finalizable.
+ 	* checks.adb: Add with and use clauses for Sem_Elab.
+ 	(Install_Primitive_Elaboration_Check): Call Is_Controlled_Procedure.
+ 	* einfo.ads (Has_Relaxed_Finalization): Document new flag.
+ 	(Is_Controlled_Active): Update documentation.
+ 	* exp_aggr.adb (Generate_Finalization_Actions): Replace Find_Prim_Op
+ 	with Find_Controlled_Prim_Op for Name_Finalize.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
+ 	Return 0 if the prefix type has relaxed finalization.
+ 	* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty if
+ 	the type needs finalization.
+ 	(Expand_Freeze_Record_Type): Call Find_Controlled_Prim_Op instead of
+ 	Find_Prim_Op for Name_{Adjust,Initialize,Finalize}.
+ 	Call Make_Finalize_Address_Body for all controlled types.
+ 	* exp_ch4.adb (Insert_Dereference_Action): Do not generate a call to
+ 	Adjust_Controlled_Dereference if the designated type has relaxed
+ 	finalization.
+ 	* exp_ch6.adb (Needs_BIP_Collection): Return false for an untagged
+ 	type that has relaxed finalization.
+ 	* exp_ch7.adb (Allows_Finalization_Collection): Return false if the
+ 	designated type has relaxed finalization.
+ 	(Check_Visibly_Controlled): Call Find_Controlled_Prim_Op instead of
+ 	Find_Prim_Op.
+ 	(Make_Adjust_Call): Likewise.
+ 	(Make_Deep_Record_Body): Likewise.
+ 	(Make_Final_Call): Likewise.
+ 	(Make_Init_Call): Likewise.
+ 	* exp_disp.adb (Set_All_DT_Position): Remove obsolete warning.
+ 	* exp_util.ads: Add with and use clauses for Snames.
+ 	(Find_Prim_Op): Add precondition.
+ 	(Find_Controlled_Prim_Op): New function declaration.
+ 	(Name_Of_Controlled_Prim_Op): Likewise.
+ 	* exp_util.adb: Remove with and use clauses for Snames.
+ 	(Build_Allocate_Deallocate_Proc): Do not build finalization actions
+ 	if the designated type has relaxed finalization.
+ 	(Find_Controlled_Prim_Op): New function.
+ 	(Find_Last_Init): Call Find_Controlled_Prim_Op instead of
+ 	Find_Prim_Op.
+ 	(Name_Of_Controlled_Prim_Op): New function.
+ 	* freeze.adb (Freeze_Entity.Freeze_Record_Type): Propagate the
+ 	Has_Relaxed_Finalization flag from components.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add Has_Relaxed_Finalization.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Likewise.
+ 	* sem_aux.adb (Is_By_Reference_Type): Return true for all controlled
+ 	types.
+ 	* sem_ch3.adb (Build_Derived_Record_Type): Do not special case types
+ 	declared in Ada.Finalization.
+ 	(Record_Type_Definition): Propagate the Has_Relaxed_Finalization
+ 	flag from components.
+ 	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Also process the
+ 	Finalizable aspect.
+ 	(Analyze_Aspect_Specifications): Likewise. Call Flag_Non_Static_Expr
+ 	in more cases.
+ 	(Check_Aspect_At_Freeze_Point): Likewise.
+ 	(Inherit_Aspects_At_Freeze_Point): Likewise.
+ 	(Resolve_Aspect_Expressions): Likewise.
+ 	(Resolve_Finalizable_Argument): New procedure.
+ 	(Validate_Finalizable_Aspect): Likewise.
+ 	* sem_elab.ads: Add with and use clauses for Snames.
+ 	(Is_Controlled_Procedure): New function declaration.
+ 	* sem_elab.adb: Remove with and use clauses for Snames.
+ 	(Is_Controlled_Proc): Move to...
+ 	(Is_Controlled_Procedure): ...here and rename.
+ 	(Check_A_Call): Call Find_Controlled_Prim_Op instead of
+ 	Find_Prim_Op.
+ 	(Is_Finalization_Procedure): Likewise.
+ 	* sem_util.ads (Propagate_Controlled_Flags): Update documentation.
+ 	* sem_util.adb (Is_Fully_Initialized_Type): Replace call to
+ 	Find_Optional_Prim_Op with Find_Controlled_Prim_Op.
+ 	Call Has_Null_Extension only for derived tagged types.
+ 	(Propagate_Controlled_Flags): Propagate Has_Relaxed_Finalization.
+ 	* snames.ads-tmpl (Name_Finalizable): New name.
+ 	(Name_Relaxed_Finalization): Likewise.
+ 	* libgnat/s-finroo.ads (Root_Controlled): Add Finalizable aspect.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Document implementation
+ 	of Generalized Finalization.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Also return early
+ 	for a protected subprogram in -gnatc mode.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <discrete_type>: Set
+ 	the TYPE_JUSTIFIED_MODULAR_P flag earlier.
+ 	* gcc-interface/misc.cc (gnat_unit_size_without_reusable_padding):
+ 	New function.
+ 	(LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Redefine to above
+ 	function.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (clear_decl_bit_field): New function.
+ 	(finish_record_type): Call clear_decl_bit_field instead of clearing
+ 	DECL_BIT_FIELD manually.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Fix formatting.
+ 	* gcc-interface/utils2.cc: Include optabs-query.h.
+ 	(fast_modulo_reduction): Call can_mult_highpart_p on the TYPE_MODE
+ 	before generating a high-part multiply.  Fix formatting.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/gigi.h (fast_modulo_reduction): Declare.
+ 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: In the unsigned
+ 	case, call fast_modulo_reduction for {FLOOR,TRUNC}_MOD_EXPR if the
+ 	RHS is a constant and not a power of two, and the precision is not
+ 	larger than the word size.
+ 	* gcc-interface/utils2.cc: Include expmed.h.
+ 	(fast_modulo_reduction): New function.
+ 	(nonbinary_modular_operation): Call fast_modulo_reduction for the
+ 	multiplication if the precision is not larger than the word size.
+ 
+ 2024-06-21  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch2.adb (Analyze_Interpolated_String_Literal): Reject
+ 	ambiguous function calls.
+ 
+ 2024-06-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Examine_Array_Bounds): Add missing return
+ 	statements. Fix criterion for a string literal being empty.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* bcheck.adb (Check_Consistency_Of_Sdep): Guard against path to ALI
+ 	file not found.
+ 
+ 2024-06-21  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Fix code locating the entity
+ 	of the parent type.
+ 
+ 2024-06-21  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* make.adb (Scan_Make_Arg): Adjust error message.
+ 	* gnatls.adb (Search_RTS): Likewise.
+ 	* switch-b.adb (Scan_Debug_Switches): Likewise.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Direct_Primitive_Operations): Mention concurrent types
+ 	as well as GNAT extensions instead of implementation details.
+ 	(Primitive_Operations): Document that Direct_Primitive_Operations is
+ 	also used for concurrent types as a fallback.
+ 	* einfo-utils.adb (Primitive_Operations): Tweak formatting.
+ 	* exp_util.ads (Find_Prim_Op): Adjust description.
+ 	* exp_util.adb (Make_Subtype_From_Expr): In the private case with
+ 	unknown discriminants, always copy Direct_Primitive_Operations and
+ 	do not overwrite the Class_Wide_Type of the expression's base type.
+ 	* sem_ch3.adb (Analyze_Incomplete_Type_Decl): Tweak comment.
+ 	(Analyze_Subtype_Declaration): Remove older and now dead calls to
+ 	Set_Direct_Primitive_Operations.  Tweak comment.
+ 	(Build_Derived_Private_Type): Likewise.
+ 	(Build_Derived_Record_Type): Likewise.
+ 	(Build_Discriminated_Subtype): Set Direct_Primitive_Operations in
+ 	all cases instead of just for tagged types.
+ 	(Complete_Private_Subtype): Likewise.
+ 	(Derived_Type_Declaration): Tweak comment.
+ 	* sem_ch4.ads (Try_Object_Operation): Adjust description.
+ 
+ 2024-06-21  Doug Rupp  <rupp@adacore.com>
+ 
+ 	* init.c [vxworks] (__gnat_install_handler): Revert to
+ 	installing signal handlers without regard to interrupt_state.
+ 
+ 2024-06-21  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_disp.adb (Find_Hidden_Overridden_Primitive): Check
+ 	public dispatching primitives of ancestors; previously,
+ 	only immediately-visible primitives were checked.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Generate_Index_Checks): Add specific treatment for
+ 	index expressions that are N_Expression_With_Actions nodes.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Selected_Component): Rename Name into Pref
+ 	and use Sel local variable consistently.
+ 	(Is_Simple_Indexed_Component): New predicate.
+ 	Call Is_Simple_Indexed_Component to determine whether to build an
+ 	actual subtype for the component.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Array_Type): Decouple the handling of the
+ 	interaction between packing and aliased/atomic components from
+ 	that of the interaction between a component clause and aliased/
+ 	atomic components, and retrofit the processing of the interaction
+ 	between the two characteristics and independent components into
+ 	the common processing.
+ 
+ 2024-06-21  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb
+ 	(N_Generic_Package_Declaration): Remove Activation_Chain_Entity.
+ 	* sinfo.ads: Comment improvements. Add missing doc.
+ 	Remove obsolete comment about Activation_Chain_Entity.
+ 	* einfo.ads: Comment improvements. Add missing doc.
+ 	* einfo-utils.adb (Base_Type): Add Assert (disabled for now).
+ 	(Next_Index): Minor cleanup.
+ 	* aspects.ads: Minor comment fix.
+ 	* exp_ch6.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 
+ 2024-06-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Add_Interface_Tag_Components): Simplify with No.
+ 
+ 2024-06-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb (Is_Effectively_Visible_Operator): A new function.
+ 	(Check_Arithmetic_Pair): In paths where Add_One_Interp was
+ 	previously called unconditionally, instead call only if
+ 	Is_Effectively_Visible_Operator returns True.
+ 	(Check_Boolean_Pair): Likewise.
+ 	(Find_Unary_Types): Likewise.
+ 
+ 2024-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* accessibility.adb (Accessibility_Level): Apply the processing to
+ 	Expr when its Original_Node is an unanalyzed identifier.
+ 
+ 2024-06-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (In_Aspect_Specification): Use the standard
+ 	condition that works correctly with declare expressions.
+ 	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Replace
+ 	ordinary analysis with preanalysis of spec expressions.
+ 
+ 2024-06-21  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* csets.ads (Identifier_Char): New function - replacing table.
+ 	* csets.adb (Identifier_Char): Rename and move table for static values.
+ 	(Initialize): Remove dynamic calculations.
+ 	(Identifier_Char): New function to calculate dynamic values.
+ 	* opt.adb (Set_Config_Switches): Remove setting of Identifier_Char.
+ 
+ 2024-06-20  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute.Proper_Op): When resolving the
+ 	name of the reducer subprogram in a reduction expression,
+ 	Proper_Op treats references to operators defined in Standard
+ 	specially. Disable this special treatment if the type of the
+ 	reduction expression is not the right class of type for the
+ 	operator, or if a new Boolean parameter (named "Strict") is True.
+ 	(Resolve_Attribute): In the overloaded case, iterate over the
+ 	reducer subprogram candidates twice. First with Strict => True and
+ 	then, if no good intepretation is found, with Strict => False.
+ 
+ 2024-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Type): Fix checking.
+ 
+ 2024-06-20  Bob Duff  <duff@adacore.com>
+ 
+ 	* expander.ads: Minor comment fixes.
+ 	* nlists.ads: Misc comment improvements.
+ 	* sem_aux.ads (First_Discriminant): Improve comment.
+ 	* sem_ch12.adb: Misc cleanups.
+ 	(Associations): New package containing type Gen_Assocs_Rec
+ 	to represent matchings, and function Match_Assocs to create the
+ 	Gen_Assocs_Rec constant.
+ 	(Analyze_Associations): Call Match_Assocs, and other major
+ 	changes related to that.
+ 	* sem_ch12.ads: Minor comment fixes.
+ 	* sem_ch3.adb: Minor comment fixes.
+ 
+ 2024-06-20  Steve Baird  <baird@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Update documentation.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
+ 	documentation.
+ 	* errout.adb
+ 	(Error_Msg_GNAT_Extension): Update error message text.
+ 	* par-prag.adb: Update pragma parsing. This includes changing the
+ 	the name of the Check_Arg_Is_On_Or_Off formal parameter All_OK_Too
+ 	to All_Extensions_OK_Too.
+ 	* sem_prag.adb (Analyze_Pragma): In analyzing an
+ 	Extensions_Allowed pragma, replace uses of Name_All with
+ 	Name_All_Extensions; update a comment to reflect this.
+ 	* snames.ads-tmpl: Add Name_All_Extensions declaration.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-06-20  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch4.adb (Try_Selected_Component_In_Instance): Reverse if_statement
+ 	clauses so that the testing for the special case of extensions of private
+ 	types in instance bodies is done first, followed by the testing for the case
+ 	of a parent type that's a generic actual type. In the extension case, apply
+ 	Base_Type to the type actual in the test of Used_As_Generic_Actual, and add
+ 	a test of Present (Parent_Subtype (Typ)).
+ 
+ 2024-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call): In the
+ 	case of formal with a fixed lower bounds, insert appropriate
+ 	conversion like in the case of a constrained type.
+ 	* tbuild.adb (Unchecked_Convert_To): Do not skip the conversion
+ 	when it may involve sliding due to a type with fixed lower bound.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Formal_Package): Accept renamings of a
+ 	generic parent that is a child unit for the abbreviated instance.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Composite_Equality): In the untagged record
+ 	case, always look for a user-defined equality operator in Ada 2012.
+ 
+ 2024-06-20  Doug Rupp  <rupp@adacore.com>
+ 
+ 	* ali.ads (Interrupts_Default_To_System): New boolean.
+ 	(Interrupts_Default_To_System_Specified): New boolean.
+ 	* ali.adb (Interrupts_Default_To_System_Specified): Initialize.
+ 	(Interrupts_Default_To_System): Initialize.
+ 	(Scan_ALI): Processing for "ID".
+ 	* bindgen.adb: Coallesce comments on interrupt settings to ...
+ 	(Gen_Adainit): Import Interrupts_Default_To_System flag and set if
+ 	pragma specified.
+ 	(Gen_Output_File_Ada): Generate Local_Interrupt_States according
+ 	to pragma.
+ 	* init.c: ... here.
+ 	[vxworks] (__gnat_install_handler): Test for interrupt_state.
+ 	(__gl_interrupts_default_to_system): New global flag.
+ 	(__gnat_get_interrupt_State): return interrupt state according to
+ 	new global flag.
+ 	* lib-writ.ads: Document "ID".
+ 	* lib-writ.adb: Write out "ID".
+ 	* opt.ads (Interrupts_System_By_Default): New boolean, defaulted
+ 	to False.
+ 	* par-prag.adb (Pragma_Interrupts_System_By_Default): New.
+ 	* sem_prag.adb (Pragma_Interrupts_System_By_Default): Handle it.
+ 	(Pragma_Interrupts_System_By_Default): Default it.
+ 	* snames.ads-tmpl (Name_Interrupts_System_By_Default): New name.
+ 	(Pragma_Interrupts_System_By_Default): New
+ 	* libgnarl/s-intman__posix.adb (Initialize): Ensure the
+ 	Keep_Unmasked signal is sigset-able.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Document pragma
+ 	Interrupts_System_By_Default.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
+ 	pragmas): Add Interrupts_System_By_Default. (Partition-Wide
+ 	Settings): Mention pragma Interrupts_System_By_Default.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Array_Equality.Component_Equality): Copy the
+ 	Comes_From_Source flag from the original test to the new one, and
+ 	remove obsolete code dealing with unchecked unions.
+ 	* sem_util.adb (Has_Inferable_Discriminants): Return False for an
+ 	incomplete or private nominal subtype.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Expression): Also attach pending freeze nodes
+ 	to the parent in the case of an internal block in a spec expression.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* debug.adb (d_l): Document new usage for the compiler.
+ 	* freeze.adb (Check_Strict_Alignment): Set the Strict_Alignment
+ 	flag on array types with aliased component, except if the
+ 	component size is equal to the storage unit or the -gnatd_l switch
+ 	is specified.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_advice.rst (Representation Clauses):
+ 	Remove >> marker and add end of sentence after code-block directive.
+ 	(RM 13.5.3(7-8)): Update to Ada 2005 wording.
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst
+ 	(RM 13.5.3(5)): Likewise.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_aspects.rst
+ 	(Aspect Subprogram_Variant): Refer to SPARK User's Guide.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Subprogram_Variant): Document syntax to satisfy the
+ 	convention; refer to SPARK User's Guide for semantics.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Array_Type): Call Propagate_Controlled_Flags
+ 	to propagate the controlled flags from the component to the array.
+ 	(Freeze_Record_Type): Propagate the Finalize_Storage_Only flag
+ 	from the components to the record.
+ 	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Do not call
+ 	Propagate_Concurrent_Flags here but...
+ 	(Array_Type_Declaration): Tidy and call Propagate_Controlled_Flags
+ 	to propagate the controlled flags from the component to the array.
+ 	(Build_Derived_Private_Type): Do not propagate the controlled flags
+ 	manually here but...
+ 	(Build_Derived_Record_Type): ...call Propagate_Controlled_Flags to
+ 	propagate the controlled flags from parent to derived type.
+ 	(Build_Derived_Type): Likewise.
+ 	(Copy_Array_Base_Type_Attributes): Call Propagate_Controlled_Flags
+ 	to copy the controlled flags.
+ 	(Record_Type_Definition): Streamline the propagation of the
+ 	Finalize_Storage_Only flag from the components to the record.
+ 	* sem_ch7.adb (Preserve_Full_Attributes): Use Full_Base and call
+ 	Propagate_Controlled_Flags to copy the controlled flags.
+ 	* sem_ch9.adb (Analyze_Protected_Definition): Use canonical idiom
+ 	to compute Has_Controlled_Component.
+ 	(Analyze_Protected_Type_Declaration): Minor tweak.
+ 	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Do not deal with
+ 	Finalize_Storage_Only here.
+ 	* sem_util.ads (Propagate_Controlled_Flags): New declaration.
+ 	* sem_util.adb (Propagate_Controlled_Flags): New procedure.
+ 
+ 2024-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* freeze.adb (Check_Current_Instance): This routine is only called
+ 	with parameter E being a type entity, so there is no need to check
+ 	for types just before the equality with E.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Regroup condition
+ 	to avoid unnecessary evaluation.
+ 	(Check_Aspect_At_End_Of_Declarations): If In_Instance is true,
+ 	then the routine exits early.
+ 
+ 2024-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* freeze.adb (Find_Aspect_No_Parts): Tune whitespace.
+ 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Fix style.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Remove Aspect_Max_Entry_Queue_Depth.
+ 	(global arrays): Remove entry for it.
+ 	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove
+ 	reference to pragma Max_Entry_Queue_Depth in comment.
+ 	* par-prag.adb (Prag): Remove handling of
+ 	Pragma_Max_Entry_Queue_Depth.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Remove reference
+ 	to aspect Max_Entry_Queue_Depth in comment.
+ 	(Analyze_Aspect_Specifications): Remove processing of aspect
+ 	Max_Entry_Queue_Depth.
+ 	(Check_Aspect_At_Freeze_Point): Likewise.
+ 	* sem_prag.ads (Find_Related_Declaration_Or_Body): Remove
+ 	reference to pragma Max_Entry_Queue_Depth in comment.
+ 	* sem_prag.adb (Analyze_Pragma): Remove processing of pragma
+ 	Max_Entry_Queue_Depth.
+ 	(Sig_Flags): Remove entry for Pragma_Max_Entry_Queue_Depth.
+ 	* sem_util.adb (Get_Max_Queue_Length): Remove handling of pragma
+ 	Max_Entry_Queue_Depth.
+ 	(Has_Max_Queue_Length): Likewise.
+ 	* snames.ads-tmpl (Name_Max_Entry_Queue_Depth): Move back from
+ 	pragmas section to others section.
+ 	(Pragma_Id): Remove Pragma_Max_Entry_Queue_Depth.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst (Pragma Storage_Model):
+ 	Rename to Storage Model.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Alphabetize.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnat1drv.adb (Gnat1drv): Add coverage instrumentation
+ 	annotations.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): Do not propagate the
+ 	concurrent flags and the Has_Controlled_Component flag here.
+ 	(Expand_Freeze_Record_Type): Likewise.
+ 	* freeze.adb (Freeze_Array_Type): Propagate the concurrent flags.
+ 	(Freeze_Record_Type): Likewise.
+ 	* sem_util.adb (Has_Some_Controlled_Component): Adjust comment.
+ 
+ 2024-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* mutably_tagged.ads: Fix minor issues in comments throughout.
+ 
+ 2024-06-20  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* debug.adb: Add documentation for -gnatd_w.
+ 
+ 2024-06-20  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update
+ 	documentation for -gnatw.v.
+ 	* sem_ch13.adb: Convert all -gnatw.v related messages to warnings.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update
+ 	documentation for -gnatw.n switch.
+ 	* exp_util.adb: Convert info messages into warnings.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+ 	entry for -gnatis.
+ 	* errout.adb (Error_Msg_Internal): Stop printing info messages if
+ 	-gnatis was used.
+ 	* opt.ads: Add Info_Suppressed flag to track whether info messages
+ 	should be suppressed.
+ 	* switch-c.adb: Add parsing for -gnatis.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.ads: Remove Warning_Info_Messages.
+ 	* errout.adb: Remove various places where Warning_Info_Messages
+ 	was used.
+ 	* erroutc.adb: Remove various places where Warning_Info_Messages
+ 	was used. Create Error_Msg_Object objects with only an info
+ 	attribute if the message contained both info and warning insertion
+ 	characters. New method Has_Switch_Tag for detecting if a message
+ 	should have an error tag.
+ 	* errutil.adb: Create Error_Msg_Object objects with only an info
+ 	attribute if the message contained both info and warning insertion
+ 	characters.
+ 
+ 2024-06-20  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add entry for 'Super.
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Remove entry
+ 	for 'Super.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-20  Steve Baird  <baird@adacore.com>
+ 
+ 	* gprep.adb (Process_Files.Process_One_File): When calling OS_Exit in an error
+ 	path, pass in a Status parameter of 1 instead of 0 (because 0
+ 	indicates success).
+ 	* lib-load.adb (Load_Main_Source): Do not emit a message about a missing source file
+ 	if other error messages were generated by calling Load_Source_File;
+ 	the file isn't missing - it failed preprocessing.
+ 
+ 2024-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Attribute_22): Add Put_Image and Object_Size.
+ 	* sem_attr.ads (Attribute_Impl_Def): Remove Object_Size.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Makefile.in (tmake_file): Remove all references.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc: Include function.h.
+ 	(gnat_to_gnu_param): Minor comment tweaks.
+ 	(gnat_to_gnu_subprog_type): Take into account the default for the
+ 	computation of the return mechanism.  Give a warning if a by-copy
+ 	specified mechanism cannot be honored.
+ 
+ 2024-06-14  Yannick Moy  <moy@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (elaborate_all_entities_for_package)
+ 	(process_freeze_entity): Skip entities of kind E_Subprogram_Body.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/109817
+ 	* gcc-interface/trans.cc (maybe_make_gnu_thunk): Create an alias
+ 	instead of a null thunk.
+ 
+ 2024-06-14  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Typo fix.
+ 	(gnat_to_gnu_component_type): Indent fix.
+ 	* gcc-interface/gigi.h (build_call_alloc_dealloc): Typo fix.
+ 	* gcc-interface/utils.cc (make_dummy_type): Typo fix.
+ 	* gcc-interface/utils2.cc (gnat_protect_expr): Indent fix.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Alphabetize, remove the GNAT tag from
+ 	Default_Initial_Condition and Object_Size, move No_Controlled_Parts
+ 	and No_Task_Parts to boolean subclass.
+ 	(Nonoverridable_Aspect_Id): Add missing Ada 2022 aspects.
+ 	(Implementation_Defined_Aspect): Add all missing aspects, remove
+ 	Max_Entry_Queue_Length and Object_Size
+ 	(Aspect_Argument): Remove specific entries for No_Controlled_Parts
+ 	and No_Task_Parts, list boolean aspects last.
+ 	(Is_Representation_Aspect ): Move boolean aspects last.
+ 	(Aspect_Names): Alphabetize.
+ 	* sem_ch13.adb (Analyze_Aspect_Disable_Controlled): Adjust.
+ 	(Analyze_Aspect_Specifications): Move around processing for
+ 	No_Controlled_Parts and No_Task_Parts.
+ 	(Check_Aspect_At_Freeze_Point): Remove specific entries for
+ 	No_Controlled_Parts and No_Task_Parts
+ 
+ 2024-06-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb
+ 	(Expand_Loop_Entry_Attribute):
+ 	Ensure that Etype of the saved expression is set correctly.
+ 
+ 2024-06-14  Jerome Guitton  <guitton@adacore.com>
+ 
+ 	* sysdep.c (S_dosFsLib_FILE_NOT_FOUND, S_nfsLib_NFSERR_NOENT):
+ 	New macros, falback to ENOENT when not already defined.
+ 	(__gnat_is_file_not_found_error): Use these new macros to remove
+ 	tests against VxWorks flavors.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* snames.ads-tmpl (Name_Present): Move to Repinfo section.
+ 
+ 2024-06-14  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add documentation for
+ 	mutably tagged type feature.
+ 	* aspects.ads: Add registration for 'Size'Class.
+ 	* einfo.ads: Add documentation for new components
+ 	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
+ 	* exp_aggr.adb (Gen_Assign): Assume associated mutably tagged type
+ 	when class-wide equivalent type is encountered.
+ 	(Contains_Mutably_Tagged_Type): New subprogram.
+ 	(Convert_To_Positional): Assume associated mutably tagged type
+ 	when class-wide equivalent type is encountered.
+ 	(Is_Static_Element): Assume associated mutably tagged type when
+ 	class-wide equivalent type is encountered.
+ 	(Expand_Array_Aggregate): Assume associated mutably tagged type
+ 	when class-wide equivalent type is encountered.
+ 	(Expand_Record_Aggregate): Force mutably tagged records to be
+ 	expanded into assignments.
+ 	* exp_ch3.adb (Build_Array_Init_Proc): Assume associated mutably
+ 	tagged type when class-wide equivalent type is encountered.
+ 	(Simple_Initialization_OK): Disallow simple initialization for
+ 	class-wide equivalent types.
+ 	(Build_Init_Statements): Assume associated mutably tagged type
+ 	when class-wide equivalent type is encountered.
+ 	(Expand_Freeze_Array_Type): Ignore building of record init procs
+ 	for mutably tagged types.
+ 	(Expand_N_Full_Type_Declaration): Replace mutably tagged type
+ 	declarations with their associated class-wide equivalent types.
+ 	(Default_Initialize_Object): Add special handling for mutably
+ 	tagged types.
+ 	* exp_ch4.adb (Expand_N_Allocator): Add initialization for mutably
+ 	tagged types.
+ 	(Expand_Record_Equality): Generate mutably tagged unchecked
+ 	conversions.
+ 	* exp_ch5.adb (Expand_N_Assignment_Statement): Generate a special
+ 	assignment case for class-wide equivalent types which does tag
+ 	assignments and ignores certain checks.
+ 	* exp_ch6.adb (Expand_Call_Helper): Propagate constrained extra
+ 	formal actuals for mutably tagged types.
+ 	* exp_ch7.adb (Make_Init_Call): Handle mutably tagged type
+ 	initialization.
+ 	* exp_util.adb (Make_CW_Equivalent_Type): Modify to handle mutably
+ 	tagged objects which contain no initialization expression.
+ 	(Make_Subtype_From_Expr): Modify call to Make_CW_Equivalent_Type.
+ 	* exp_util.ads (Make_CW_Equivalent_Type): Move declaration from
+ 	body to spec.
+ 	* freeze.adb (Size_Known): No longer return false automatically
+ 	when a class-wide type is encountered.
+ 	(Freeze_Entity): Ignore error messages about size not being known
+ 	for mutably tagged types.
+ 	* gen_il-fields.ads: Register new fields
+ 	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
+ 	* gen_il-gen-gen_entities.adb: Register new fields
+ 	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type for type
+ 	entities.
+ 	* mutably_tagged.adb, mutably_tagged.ads
+ 	(Corresponding_Mutably_Tagged_Type): New subprogram.
+ 	(Depends_On_Mutably_Tagged_Ext_Comp): New subprogram.
+ 	(Get_Corresponding_Mutably_Tagged_Type_If_Present): New
+ 	subprogram.
+ 	(Get_Corresponding_Tagged_Type_If_Present): New subprogram.
+ 	(Is_Mutably_Tagged_Conversion): New subprogram.
+ 	(Is_Mutably_Tagged_CW_Equivalent_Type): New subprogram.
+ 	(Make_Mutably_Tagged_Conversion): New subprogram.
+ 	(Make_CW_Size_Compile_Check): New subprogram.
+ 	(Make_Mutably_Tagged_CW_Check): New subprogram.
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Skip tag checks for
+ 	class-wide equivalent types.
+ 	(Resolve_Aggr_Expr): Assume associated mutably tagged type when
+ 	class-wide equivalent type is encountered.
+ 	* sem_attr.adb (Analyze_Attribute): Allow 'Tag on mutably tagged
+ 	types.
+ 	(Resolve_Attribute): Detect errors for dependence of mutably
+ 	tagged extension type component.
+ 	* sem_ch12.adb (Instantiate_Object): Detect errors for dependence
+ 	of mutably tagged extension type component.
+ 	* sem_ch13.adb (Analyze_One_Aspect): Propagate 'Size'Class to
+ 	class-wide type.
+ 	(Analyze_Attribute_Definition_Clause): Add handling of 'Size'Class
+ 	by generating class-wide equivalent types and checking for illegal
+ 	uses.
+ 	* sem_ch2.adb (Analyze_Identifier): Generate unchecked conversion
+ 	for class-wide equivalent types.
+ 	* sem_ch3.adb (Analyze_Component_Declaration): Avoid unconstrained
+ 	errors on mutably tagged types.
+ 	(Analyze_Object_Declaration): Rewrite declarations of mutably
+ 	tagged types to use class-wide equivalent types.
+ 	(Array_Type_Declaration): Modify arrays of mutably tagged types to
+ 	use their corresponding class-wide equivalent types.
+ 	(Derived_Type_Declaration): Add various checks for mutably tagged
+ 	derived types.
+ 	* sem_ch4.adb (Analyze_Allocator): Replace reference to mutably
+ 	tagged type with cooresponding tagged type.
+ 	(Process_Indexed_Component): Generate unchecked conversion for
+ 	class-wide equivalent type.
+ 	(Analyze_One_Call): Generate unchecked conversion for class-wide
+ 	equivalent types.
+ 	(Analyze_Selected_Component): Assume reference to class-wide
+ 	equivalent type is associated mutably tagged type.
+ 	(Analyze_Type_Conversion): Generate unchecked conversion for
+ 	class-wide equivalent type.
+ 	* sem_ch5.adb (Analyze_Assignment): Assume associated mutably
+ 	tagged type when class-wide equivalent type is encountered.
+ 	(Analyze_Iterator_Specification): Detect errors for dependence of
+ 	mutably tagged extension type component.
+ 	* sem_ch6.adb (Create_Extra_Formals): Add code to generate extra
+ 	formal for mutably tagged types to signal if they are constrained.
+ 	* sem_ch8.adb (Analyze_Object_Renaming): Detect error on renaming
+ 	of mutably tagged extension type component.
+ 	(Analyze_Renaming_Primitive_Operation): Detect error on renaming
+ 	of mutably tagged extension type component.
+ 	* sem_res.adb (Resolve_Actuals): Allow class-wide arguments on
+ 	class-wide equivalent types.
+ 	(Valid_Conversion): Assume associated mutably tagged type when
+ 	class-wide equivalent type is encountered.
+ 	* sem_util.adb (Is_Fully_Initialized_Type): Flag mutably tagged
+ 	types as fully initialized.
+ 	(Needs_Simple_Initalization): Flag class-wide equivalent types as
+ 	needing initialization.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gcc-interface/Make-lang.in: Add entry for mutably_tagged.o.
+ 
+ 2024-06-14  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb:
+ 	(Accessibility_Level): Replace call Get_Full_View with call to
+ 	Full_View since Get_Full_View only works with incomplete types.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* aspects.ads (Operational_Aspect): Alphabetize.
+ 	* sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Fix description.
+ 	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point) <Aggregate>: Give
+ 	the error for array types here instead of...
+ 	(Analyze_Aspect_Specifications) <Aggregate>: Adjust comment.
+ 	(Check_Aspect_At_Freeze_Point) <Aggregate>: ...here.
+ 
+ 2024-06-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_aggr.adb (Must_Slide): Add missing support for
+ 	multidimensional arrays.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_All): Call Check_Aspects_At_End_Of_Declarations
+ 	to perform the visibility check for aspects.
+ 	* sem_ch13.ads (Check_Aspects_At_End_Of_Declarations): Declare.
+ 	(Check_Aspect_At_Freeze_Point): Move to...
+ 	(Check_Aspect_At_End_Of_Declarations): Move to...
+ 	* sem_ch13.adb 	(Check_Aspect_At_Freeze_Point): ...here.
+ 	(Check_Aspect_At_End_Of_Declarations): ...here.
+ 	(Analyze_Aspect_Specifications): Remove peculiar processing for
+ 	Stable_Properties, Designated_Storage_Model, Storage_Model_Type
+ 	and Aggregate.  Move that of Local_Restrictions around.  Reset
+ 	Aitem at the beginning of the loop for each aspect.
+ 	(Check_Aspects_At_End_Of_Declarations): New procedure.
+ 
+ 2024-06-14  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_attr.adb:
+ 	(Analyze_Attribute): Add check for dereference.
+ 
+ 2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* snames.ads-tmpl (Name_Storage_Model): Delete.
+ 
+ 2024-06-14  Alexandre Oliva  <oliva@gnu.org>
+ 
+ 	Revert:
+ 	2024-06-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
+ 	as the debug type for packed fields.
+ 
+ 2024-06-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_util.adb
+ 	(Insert_Actions): Code was relying on an incorrect assumption that an
+ 	N_Itype_Reference cannot occur in declaration list or a statement
+ 	list.  Fix the code to handle this case.
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* debug.adb: Remove mentions of -gnatdJ.
+ 	* errout.adb: Remove printing subprogram names to JSON.
+ 	* erroutc.adb: Remove printing subprogram names in messages.
+ 	* erroutc.ads: Remove Node and Subprogram_Name_Ptr used for -gnatdJ.
+ 	* errutil.adb: Remove Node used for -gnatdJ
+ 	* gnat1drv.adb: Remove references of -gnatdJ and
+ 	Include_Subprgram_In_Messages.
+ 	* opt.ads: Remove Include_Subprgram_In_Messages
+ 	* par-util.adb: Remove behavior related to
+ 	Include_Subprgram_In_Messages.
+ 	* sem_util.adb: Remove Subprogram_Name used for -gnatdJ
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Attach_Object_To_Master_Node): Fix formatting.
+ 	(Build_Finalizer.Process_Object_Declaration): Synthesize a local
+ 	Finalize_Address primitive if the object's subtype is an array
+ 	that has a constrained first subtype and is not this first subtype.
+ 	* exp_util.adb (Find_Last_Init): Get again to the base type in the
+ 	indirect case.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst (Iterable):
+ 	Delete entry.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_util.adb (Check_Ambiguous_Aggregate): Fix test.
+ 
+ 2024-06-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* freeze.ads (Check_Condition_Entities): Complete documentation.
+ 	* freeze.adb (Check_Inherited_Conditions): Extend its functionality to
+ 	build two kind of wrappers: the existing LSP wrappers, and wrappers
+ 	required to handle postconditions of interface primitives implemented
+ 	by inherited primitives.
+ 	(Build_Inherited_Condition_Pragmas): Rename formal.
+ 	(Freeze_Record_Type): For derived tagged types, move call to
+ 	Check_Inherited_Conditions to subprogram Freeze_Entity_Checks;
+ 	done to improve the performance of Check_Inherited_Conditions since it
+ 	can rely on the internal entities that link interface primitives with
+ 	tagged type primitives that implement them.
+ 	(Check_Interface_Primitives_Strub_Mode): New subprogram.
+ 	* sem_ch13.adb (Freeze_Entity_Checks): Call Check_Inherited_Conditions.
+ 	Call Check_Inherited_Conditions with derived interface types to check
+ 	strub mode compatibility of their primitives.
+ 	* sem_disp.adb (Check_Dispatching_Operation): Adjust assertion to accept
+ 	wrappers of interface primitives that have classwide postconditions.
+ 	* exp_disp.adb (Write_DT): Adding text to identify wrappers.
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): add warning insertion
+ 	character into the info message.
+ 
+ 2024-06-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(New_Copy_Tree.Visit_Entity): Delete code that prevented copying some entities.
+ 
+ 2024-06-13  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch12.adb (Check_Fixed_Point_Actual): Minor rewording; it seems
+ 	more proper to say "operator" rather than "operation".
+ 	(Matching_Actual): Give an error for <> in positional notation.
+ 	This is a syntax error. Disable this for now.
+ 	(Analyze_Associations): Copy the use clause in all cases.
+ 	The "mustn't recopy" comment seems wrong, because New_Copy_Tree
+ 	preserves Slocs.
+ 	* libgnat/a-ticoau.ads: Fix violation of new postion-box error.
+ 	* libgnat/a-wtcoau.ads: Likewise.
+ 	* libgnat/a-ztcoau.ads: Likewise.
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* par-labl.adb (Rewrite_As_Loop): Remove info message
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* par-ch7.adb: Remove warning characters from info message
+ 	* par-endh.adb: Remove warning characters from info message
+ 	* sem_res.adb: Remove warning characters from info message
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): change the
+ 	info message to a continuation message.
+ 
+ 2024-06-13  Viljar Indus  <indus@adacore.com>
+ 
+ 	* inline.adb (Cannot_Inline): Simplify string handling logic.
+ 
+ 2024-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Skip entities
+ 	of kind E_Subprogram_Body.
+ 	* repinfo.adb (List_Entities): Remove special case for subprogram
+ 	bodies.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): List subprogram
+ 	body entities in the enclosing scope.
+ 
+ 2024-06-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch4.adb (Traverse_Interfaces): Add missing support
+ 	for climbing to parents of interface types.
+ 
+ 2024-06-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst:
+ 	Update Super attribute documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Cleanup_Statements): Adapt to changes
+ 	made to Build_Protected_Subprogram_Call_Cleanup.
+ 	* exp_ch9.adb (Make_Unlock_Statement, Wrap_Unprotected_Call):
+ 	New functions.
+ 	(Build_Protected_Subprogram_Body): Fix resource management in
+ 	generated code.
+ 	(Build_Protected_Subprogram_Call_Cleanup): Make use of newly
+ 	introduced Make_Unlock_Statement.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114710
+ 	* exp_util.adb (Find_Renamed_Object): Recurse for any renaming.
+ 
+ 2024-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ 	Iterate over encapsulating abstract states.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imad32$(objext),
+ 	s-imad64$(objext) and s-imagea$(objext).
+ 	* exp_atag.ads (Build_Set_Size_Function): Replace Tag_Node parameter
+ 	with Typ parameter.
+ 	* exp_atag.adb: Add clauses for Sinfo.Utils.
+ 	(Build_Set_Size_Function): Retrieve the TSD object statically.
+ 	* exp_disp.adb: Add clauses for Ttypes.
+ 	(Make_DT): Call Address_Image{32,64] instead of Address_Image.
+ 	(Register_Primitive): Pass Tag_Typ to Build_Set_Size_Function.
+ 	* rtsfind.ads (RTU_Id): Remove System_Address_Image and add
+ 	System_Img_Address_{32;64}.
+ 	(RE_Id): Remove entry for RE_Address_Image and add entries for
+ 	RE_Address_Image{32,64}.
+ 	* rtsfind.adb (System_Descendant): Adjust to above changes.
+ 	* libgnat/a-tags.ads (Address_Array): Suppress initialization.
+ 	* libgnat/s-addima.adb (System.Address_Image): Call the appropriate
+ 	routine based on the address size.
+ 	* libgnat/s-imad32.ads: New file.
+ 	* libgnat/s-imad64.ads: Likewise.
+ 	* libgnat/s-imagea.ads: Likewise.
+ 	* libgnat/s-imagea.adb: Likewise.
+ 	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS) [$(STAGE1)=False]: Add
+ 	ada/libgnat/s-imad32.o and ada/libgnat/s-imad64.o.
+ 
+ 2024-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
+ 	when constant with address clause is found.
+ 
+ 2024-06-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnatlink.adb (Gnatlink): Fix incorrect lower bound assumption.
+ 	(Is_Prefix): New function.
+ 
+ 2024-06-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch7.adb
+ 	(Requires_Completion_In_Body): Modify the Comes_From_Source test so that
+ 	the implicit declaration of an inherited subprogram does not cause
+ 	an incorrect result of True.
+ 
+ 2024-06-13  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Inline if -gnatn in
+ 	CCG mode even if -O0.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114710
+ 	* exp_util.adb (Find_Renamed_Object): Recurse if the renamed object
+ 	is itself a renaming.
+ 
+ 2024-06-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Enhance support for
+ 	using 'Old with a prefix that references an overloaded
+ 	function that has no parameters; add missing support
+ 	for the use of 'Old within qualified expressions.
+ 	* sem_util.ads (Preanalyze_And_Resolve_Without_Errors):
+ 	New subprogram.
+ 	* sem_util.adb (Preanalyze_And_Resolve_Without_Errors):
+ 	New subprogram.
+ 
+ 2024-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* layout.adb (Layout_Type): Use high-level wrapper routine.
+ 	* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-tsmona__linux.adb (Get): Move down descriptive comment.
+ 	* libgnat/s-tsmona__mingw.adb: Add with clause and use clause for
+ 	System.Storage_Elements.
+ 	(Get): Pass GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT in the call
+ 	to GetModuleHandleEx and remove the subsequent call to FreeLibrary.
+ 	Upon success, set Load_Addr to the base address of the module.
+ 	* libgnat/s-win32.ads (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS): Use
+ 	shorter literal.
+ 	(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT): New constant.
+ 
+ 2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114710
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove dead
+ 	code dealing with renamings.
+ 	* exp_util.ads (Is_Finalizable_Transient): Rename Rel_Node to N.
+ 	* exp_util.adb (Is_Finalizable_Transient): Likewise.
+ 	(Is_Aliased): Remove obsolete code dealing wih EWA nodes and only
+ 	consider renamings present in N itself.
+ 	(Requires_Cleanup_Actions): Remove dead code dealing with renamings.
+ 
+ 2024-06-13  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Set the applicable policy
+ 	of a type declaration when its aspect Dynamic_Predicate is
+ 	analyzed.
+ 	* sem_prag.adb (Handle_Dynamic_Predicate_Check): New subprogram
+ 	that enables or ignores dynamic predicate checks depending on
+ 	whether dynamic checks are enabled in the context where the
+ 	associated type declaration is defined; used in the analysis
+ 	of pragma check. In addition, for pragma Predicate, do not
+ 	disable it when the aspect was internally build as part of
+ 	processing a dynamic predicate aspect.
+ 
+ 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
+ 	as the debug type for packed fields.
+ 
+ 2024-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Nonbinary_Modular_Op): Create an explicit Mod
+ 	for additive operations if No_Implicit_Conditionals is in effect.
+ 	(Expand_Modular_Addition): Likewise.
+ 	(Expand_Modular_Subtraction): Likewise.
+ 	(Expand_Modular_Op): Always use an unsigned type obtained by calling
+ 	Small_Integer_Type_For on the required size.
+ 
+ 2024-06-10  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support
+ 	for access-to-subprogram parameter types.
+ 	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
+ 	Add dummy BIP parameters to access-to-subprogram types
+ 	that may reference a function that has BIP parameters.
+ 
+ 2024-06-10  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_prag.adb (Set_Convention_From_Pragma): If the specified convention on
+ 	a record type is not C_Pass_By_Copy, then force the C_Pass_By_Copy flag to
+ 	False, to ensure that it's overridden.
+ 
+ 2024-06-10  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Association): Change "not Present"
+ 	to "No" in test of Add_Named_Subp.
+ 
+ 2024-06-10  Steve Baird  <baird@adacore.com>
+ 
+ 	* freeze.adb
+ 	(Should_Freeze_Type.Is_Dispatching_Call_Or_Aggregate): Treat an extension
+ 	aggregate or a delta aggregate like a regular aggregate.
+ 
+ 2024-06-10  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Association): In the case of
+ 	N_Iterated_Element_Associations that have a key expression, issue
+ 	an error if the aggregate type does not have an Add_Named
+ 	operation, and include a reference to RM22 4.3.5(24) in the error
+ 	message. In the case of an N_Component_Association with a
+ 	Defining_Identifer where the "choice" is given by a function call,
+ 	in the creation of the iterator_specification associate a copy of
+ 	Choice as its Name, and remove the call to
+ 	Analyze_Iterator_Specification, which was causing problems with
+ 	the reanalysis of function calls originally given in prefixed form
+ 	that were transformed into function calls in normal (infix) form.
+ 	The iterator_specification will be analyzed later in any case, so
+ 	that call should not be done here. Remove the with and use of
+ 	Sem_Ch5.
+ 
+ 2024-06-10  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* ali.adb (Get_Nat): Remove unnecessary parentheses.
+ 	* exp_ch11.adb (Expand_Local_Exception_Handlers): Remove
+ 	unnecessary parentheses.
+ 	* freeze.adb (Freeze_Entity): Remove unnecessary parentheses.
+ 	* lib-list.adb (List): Remove unnecessary parentheses.
+ 	* par-ch5.adb (P_Condition): Add extra parentheses checks on
+ 	condition operands.
+ 	* sem_ch3.adb (Add_Interface_Tag_Components): Remove unnecessary
+ 	parentheses.
+ 	(Check_Delta_Expression): Remove unnecessary parenthesis.
+ 	(Check_Digits_Expression): Remove unnecessary parentheses.
+ 	* sem_ch12.adb (Validate_Array_Type_Instance): Remove unnecessary
+ 	parentheses.
+ 
+ 2024-06-10  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Add
+ 	expansion of filter condition.
+ 	(Expand_Formal_Container_Loop): Add expansion of filter condition.
+ 
+ 2024-06-10  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Accessibility_Level): Use Get_Full_View to
+ 	avoid crashes when calculating scope.
+ 
+ 2024-06-10  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb (Warn_On_Unreferenced_Entity): Add a condition to
+ 	ignore warnings on unreferenced abstract subprogram.
+ 
+ 2024-06-10  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Add check for interface parent
+ 	types.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo.ads, exp_attr.adb, exp_ch4.adb, exp_ch7.adb,
+ 	lib-writ.adb, libgnat/a-stbuut.ads, sem_ch13.adb, sem_ch3.adb,
+ 	sem_ch7.adb: Use "RM" in comments.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Immediate_Context_Implies_Is_Potentially_Unevaluated): Use
+ 	collective subtypes in membership tests.
+ 	(Is_Known_On_Entry): Require all alternatives in a case statement
+ 	to return; this change could prevent a recently fixed glitch,
+ 	where one of the alternatives relied on the return statement
+ 	afterwards (also, the new code is shorter).
+ 	* sem_util.ads (Is_Potentially_Unevaluated): Clarify that this
+ 	routine applies to Ada 2012.
+ 
+ 2024-06-10  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-chtgfo.adb (Generic_Read, Generic_Write): Remove.
+ 	* libgnat/a-chtgfo.ads: Same. Remove dependency on Ada.Streams.
+ 
+ 2024-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage of
+ 	SetThreadAffinityMask.
+ 	* libgnat/s-winext.ads (SetThreadAffinityMask): Fix binding
+ 	signature.
+ 
+ 2024-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage
+ 	of SetThreadIdealProcessor.
+ 
+ 2024-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-os_lib.adb (Normalize_Pathname): Remove incorrect
+ 	assert statement.
+ 	(Missed_Drive_Letter): Rename into...
+ 	(Drive_Letter_Omitted): This.
+ 
+ 2024-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnatlink.adb (Check_File_Name): Fix incorrect assumption.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Use constants
+ 	declared at the beginning of subprogram; tune layout.
+ 	* exp_ch3.adb (Predefined_Primitive_Bodies): Tune layout.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(No_Tagged_Streams): Move documentation.
+ 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
+ 	(No_Streams): Likewise.
+ 	* exp_disp.adb (Make_DT): Extend comment.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Use fully qualified name
+ 	without a NUL, so that it doesn't need to be skipped afterwards.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb (Stream_Operation_OK): Check restriction
+ 	No_Default_Stream_Attributes before call to
+ 	Type_Without_Stream_Operation.
+ 	* sem_util.adb (Type_Without_Stream_Operation): Remove static
+ 	condition from recursive routine
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Has_Single_Return_In_GNATprove_Mode): Remove.
+ 	(Process_Formals): When rewriting an occurrence of a formal
+ 	parameter, use location of the occurrence, not of the inlined
+ 	call.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* debug.adb (d_k): Use first available debug switch.
+ 	* gnat1drv.adb (Adjust_Global_Switches): If new debug switch is
+ 	active then don't expand assertion expressions by default.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch6.adb (Install_Class_Preconditions_Check): Refactor
+ 	common code for checking if precondition fails, since the
+ 	difference is only in raising an exception or calling the
+ 	Raise_Assert_Failure procedure.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch6.adb (Build_Dynamic_Check_Helper_Call): Remove unused
+ 	iteration over formal parameters.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Make
+ 	discriminants visible when analyzing aspect Interrupt_Priority.
+ 	(Freeze_Entity_Checks): Likewise.
+ 	(Resolve_Aspect_Expressions): Likewise for both aspects CPU and
+ 	Interrupt_Priority.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Report_Extra_Clauses): Remove redundant check
+ 	for empty list, because First works also for No_List.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Dependency_Clause, Check_Output_States,
+ 	Report_Extra_Clauses): Remove multiple checks for being inside
+ 	an instance.
+ 	(Analyze_Refined_Depends_In_Decl_Part): Add single check for
+ 	being inside an instance.
+ 
+ 2024-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Check_In_Out_States, Check_Input_States,
+ 	Check_Output_States, Check_Proof_In_States,
+ 	Check_Refined_Global_List, Report_Extra_Constituents,
+ 	Report_Missing_Items): Remove multiple checks for being inside
+ 	an instance.
+ 	(Analyze_Refined_Global_In_Decl_Part): Add single check for
+ 	being inside an instance.
+ 
+ 2024-06-05  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of
+ 	long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
+ 
+ 2024-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115270
+ 	* Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
+ 	the 32-bit library.
+ 	(SPARC/Linux): Likewise.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115168
+ 	* libgnarl/s-taprop__solaris.adb (Initialize): Fix pasto.
+ 	* libgnat/s-oslock__solaris.ads (Owner_Int): Delete.
+ 	(Owner_ID): Change the designated type to Integer.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (nonbinary_modular_operation): Rewrite.
+ 	Do not create signed types for subtraction, do not create types with
+ 	partial precision, call fold_convert instead of convert throughout.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use the Is_Base_Type
+ 	predicate and remove superfluous calls to Base_Type.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (gnat_protect_expr): Deal specifically
+ 	with atomic loads. Document the relationship with gnat_save_expr.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: For a
+ 	packed type implemented specially, temporarily save the XUA type as
+ 	equivalent to the entity before processing the implementation type.
+ 	For this implementation type, if its component type is the same as
+ 	that of the original type, copy the alias set from the latter.
+ 	<types>: Resort to universal aliasing for all interface types.
+ 	* gcc-interface/trans.cc (Call_to_gnu): Add GNU_ACTUAL_TYPE local
+ 	variable and rename existing one to GNU_UNPADDED_ACTUAL_TYPE.
+ 	If the formal is passed by reference and the actual is a conversion,
+ 	call aliasable_p to detect aliasing violations, issue a warning upon
+ 	finding one and create the temporary in the target type.
+ 	Add an assertion that no such violation has been missed above.
+ 	(addressable_p): Revert latest changes.
+ 	(aliasable_p): New predicate.
+ 	* gcc-interface/utils2.cc (build_binary_op) <ARRAY_RANGE_REF>: When
+ 	creating a new array type on the fly, preserve the alias set of the
+ 	operation type.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
+ 	In the return-by-invisible-reference case, remove conversions before
+ 	looking for a dereference in the return values and building the test
+ 	protecting against a useless copy operation.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Set
+ 	TYPE_TYPELESS_STORAGE on the array types if Universal_Aliasing is
+ 	set on the type or its component type.
+ 	<E_Array_Subtype>: Likewise.
+ 	For other aggregate types, set TYPE_TYPELESS_STORAGE in this case.
+ 	(set_typeless_storage_on_aggregate_type): New function.
+ 	(set_universal_aliasing_on_type): Likewise.
+ 	* gcc-interface/trans.cc (Call_to_gnu): Add const to local variable.
+ 	Adjust comment.  Pass GNAT_NAME in the call to addressable_p and add
+ 	a bypass for atomic types in case it returns false.
+ 	(addressable_p): Add GNAT_EXPR third parameter with default value
+ 	and add a default value to the existing second parameter.
+ 	<VIEW_CONVERT_EXPR:>: Return false if the expression comes from a
+ 	function call and if the alias sets of source and target types are
+ 	both distinct from zero and each other.
+ 
+ 2024-05-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_cond_expr): Also apply an
+ 	indirection when the result type is variable-sized.
+ 
+ 2024-05-21  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/decl.cc: Fix typo in comment.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add an
+ 	assertion that this is not a deallocation of the return or secondary
+ 	stack and remove subsequent unreachable code.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_cond_expr): Use the indirect path
+ 	for all types containing a placeholder.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in (GNATBIND_OBJS): Remove unused
+ 	dependencies.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Give a
+ 	warning for a statically allocated object whose size is constant,
+ 	valid but too large.
+ 	(allocatable_size_p): In the static case, return false for a size
+ 	that is constant, valid but too large.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: For an
+ 	array allocated with its bounds, make sure to have an array type
+ 	to build the template.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (access_attribute_p): New predicate.
+ 	(lvalue_required_for_attribute_p): Return again 1 for Size and add
+ 	the missing terminating call to gcc_unreachable.
+ 	(gnat_to_gnu): Return the result unmodified for a reference to an
+ 	unconstrained array only if it is the prefix of an access attribute.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (relate_alias_sets): Restore previous code
+ 	when the type uses structural equality.
+ 
+ 2024-05-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_util.adb (Remove_Side_Effects): Make_Reference assumes that
+ 	the referenced object satisfies the constraints of the designated
+ 	subtype of the access type. Ensure that this assumption holds by
+ 	introducing a qualified expression if needed (and then ensuring
+ 	that checking associated with evaluation of the qualified
+ 	expression is not suppressed).
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Nonoverridable_Aspect_Id): Fix layout.
+ 
+ 2024-05-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* frontend.adb (Frontend): Remove duplicate statement.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Validate_Unchecked_Conversion): Restrict forcing the
+ 	Can_Use_Internal_Rep flag to platforms that require unnesting.
+ 
+ 2024-05-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_elab.adb: Add missing elaboration insertion
+ 	characters to info messages.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Add_Scope_To_Clean): Use Append_Unique_Elmt.
+ 	(Analyze_Inlined_Bodies): Refine type of a local counter;
+ 	remove extra whitespace.
+ 
+ 2024-05-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taenca.adb (Wait_For_Completion): Remove call to
+ 	Yield.
+ 	* libgnarl/s-tasren.adb (Timed_Selective_Wait, Wait_For_Call):
+ 	Remove calls to Yield.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_of_ada_2012_features.rst:
+ 	Fix formatting.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_of_ada_2012_features.rst:
+ 	Order list by AI number.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_of_ada_2012_features.rst
+ 	(AI-0216): Fix index reference.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Update the documentation of -gnatw.n and -gnatw.l
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(No_Tagged_Streams): Document how to avoid exposing entity names
+ 	for the entire partition.
+ 	* exp_disp.adb (Make_DT): Make use of restriction No_Streams.
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Respect
+ 	Discard_Names in the generated Put_Image procedure.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
+ 	useless conversions.
+ 
+ 2024-05-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
+ 	trailing NUL from the fully qualified type name.
+ 
+ 2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* err_vars.ads (Error_Msg_Sloc): Initialize to No_Location.
+ 
+ 2024-05-21  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_ugn/platform_specific_information.rst: Add note about
+ 	different priority level granularities under different policies in
+ 	Windows and move POSIX related info into new section.
+ 	* libgnarl/s-taprop.ads: Add note about Task_Dispatching_Policy.
+ 	* libgnarl/s-taprop__mingw.adb:
+ 	(Set_Priority): Add use of Non_FIFO_Underlying_Priorities.
+ 	* libgnat/system-mingw.ads: Add documentation for modifying
+ 	priority mappings and add alternative mapping
+ 	Non_FIFO_Underlying_Priorities.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-05-20  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch12.adb: Misc cleanups and comment fixes.
+ 	(Check_Overloaded_Formal_Subprogram): Remove the Others_Choice
+ 	error message.
+ 	(Others_Choice): Remove this variable; no longer needed.
+ 	* types.ads (Text_Ptr): Add a range constraint limiting the
+ 	subtype to values that are actually used. This has the advantage
+ 	that when the compiler is compiled with validity checks,
+ 	uninitialized values of subtypes Text_Ptr and Source_Ptr will be
+ 	caught.
+ 	* sinput.ads (Sloc_Adjust): Use the base subtype; this is used as
+ 	an offset, so we need to allow arbitrary negative values.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.ads (Preload_Finalization_Collection): Delete.
+ 	* exp_ch7.adb (Allows_Finalization_Collection): Revert change.
+ 	(Preload_Finalization_Collection): Delete.
+ 	* opt.ads (Interface_Seen): Likewise.
+ 	* scng.adb (Scan): Revert latest change.
+ 	* sem_ch10.adb: Remove clause for Exp_Ch7.
+ 	(Analyze_Compilation_Unit): Revert latest change.
+ 	* libgnat/i-c.ads: Use a fully qualified name for the standard "+"
+ 	operator in the preconditons/postconditions of subprograms.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Record_Aggregate.Component_OK_For_Backend):
+ 	Also return False for a delayed conditional expression.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.ads (Check_Compile_Time_Size): Remove obsolete description
+ 	of usage for the Size_Known_At_Compile_Time flag.
+ 	* freeze.adb (Check_Compile_Time_Size.Size_Known): In the case where
+ 	a variant part is present, do not return False if Esize is known.
+ 	* sem_util.adb (Needs_Secondary_Stack.Caller_Known_Size_Record): Add
+ 	missing "Start of processing" comment.  Return true if either a size
+ 	clause or an object size clause has been given for the first subtype
+ 	of the type.
+ 
+ 2024-05-20  Bob Duff  <duff@adacore.com>
+ 
+ 	* sinfo.ads: Misc comment corrections and clarifications.
+ 	The syntax for GENERIC_ASSOCIATION and FORMAL_PACKAGE_ACTUAL_PART
+ 	was wrong.
+ 	Emphasize that "others => <>" is not represented as an
+ 	N_Generic_Association (with or without Box_Present set),
+ 	and give examples illustrating the various possibilities.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo-utils.ads (Is_Base_Type): Move to Miscellaneous Subprograms
+ 	section and add description.
+ 	* fe.h (Is_Base_Type): Declare.
+ 
+ 2024-05-20  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
+ 	Resolve_Record_Aggregate in front of code related to calling
+ 	Resolve_Container_Aggregate (and add test that the aggregate is
+ 	not homogeneous), and remove special-case testing and call to
+ 	Resolve_Container_Aggregate for empty aggregates. Also, add error
+ 	check for an attempt to use "[]" for an aggregate of a record type
+ 	that does not specify an Aggregate aspect.
+ 	(Resolve_Record_Aggregate): Remove error check for record
+ 	aggregates with "[]" (now done by Resolve_Aggregate).
+ 
+ 2024-05-20  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
+ 	Resolve_Record_Aggregate in front of code related to calling
+ 	Resolve_Container_Aggregate (and add test that the aggregate
+ 	is not homogeneous), and remove special-case testing and call
+ 	to Resolve_Container_Aggregate for empty aggregates.
+ 
+ 2024-05-20  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Accessibility_Level): Add cases for 'First
+ 	and 'Last.
+ 
+ 2024-05-20  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Remove restriction on 'Super
+ 	for abstract types.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.ads (Attribute_Impl_Def): Fix list of
+ 	implementation-defined attributes.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Attribute_12): Add attributes Old,
+ 	Overlaps_Storage and Result.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Move IF statement that
+ 	checks restriction No_Implementation_Attributes for Ada 2005,
+ 	2012 and Ada 2022 attributes inside Comes_From_Source condition
+ 	that checks the same restriction for Ada 83 attributes.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Remove condition that is
+ 	already checked by an enclosing IF statement.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.ads (Universal_Type_Attribute): Simplify using
+ 	array aggregate syntax with discrete choice list.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.ads (Attribute_Impl_Def): Fix style in comment.
+ 
+ 2024-05-20  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taprop__linux.adb (Enter_Task): Move setting
+ 	of thread ID out of Enter_Task.
+ 	(Initialize): Set thread ID for the environment task.
+ 	(Create_Task): Remove now unnecessary Unrestricted_Access
+ 	attribute and add justification for a memory write.
+ 	* libgnarl/s-taprop__posix.adb: Likewise.
+ 	* libgnarl/s-taprop__qnx.adb: Likewise.
+ 	* libgnarl/s-taprop__rtems.adb: Likewise.
+ 	* libgnarl/s-taprop__solaris.adb: Likewise.
+ 	* libgnarl/s-taspri__posix.ads: Remove pragma Atomic for
+ 	Private_Data.Thread, and update documentation comment.
+ 	* libgnarl/s-taspri__lynxos.ads: Likewise.
+ 	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
+ 	* libgnarl/s-taspri__solaris.ads: Likewise.
+ 	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Adapt to
+ 	Enter_Task not setting the thread ID anymore.
+ 	* libgnarl/s-tassta.adb (Task_Wrapper): Update comment.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Is_Delayed_Conditional_Expression): New predicate.
+ 	* exp_aggr.adb (Convert_To_Assignments.Known_Size): Likewise.
+ 	(Convert_To_Assignments): Climb the parent chain, looking through
+ 	qualified expressions and dependent expressions of conditional
+ 	expressions, to find out whether the expansion may be delayed.
+ 	Call Known_Size for this in the case of an object declaration.
+ 	If so, set Expansion_Delayed on the aggregate as well as all the
+ 	intermediate conditional expressions.
+ 	(Initialize_Component): Reset the Analyzed flag on an initialization
+ 	expression that is a conditional expression whose expansion has been
+ 	delayed.
+ 	(Is_Delayed_Conditional_Expression): New predicate.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Handle initialization
+ 	expressions that are conditional expressions whose expansion has
+ 	been delayed.
+ 	* exp_ch4.adb (Build_Explicit_Assignment): New procedure.
+ 	(Expand_Allocator_Expression): Handle initialization expressions
+ 	that are conditional expressions whose expansion has been delayed.
+ 	(Expand_N_Case_Expression): Deal with expressions whose expansion
+ 	has been delayed by waiting for the rewriting of their parent as
+ 	an assignment statement and then optimizing the assignment.
+ 	(Expand_N_If_Expression): Likewise.
+ 	(Expand_N_Qualified_Expression): Do not apply a predicate check to
+ 	an operand that is a delayed aggregate or conditional expression.
+ 	* gen_il-gen-gen_nodes.adb (N_If_Expression): Add Expansion_Delayed
+ 	semantic flag.
+ 	(N_Case_Expression): Likewise.
+ 	* sinfo.ads (Expansion_Delayed): Document extended usage.
+ 
+ 2024-05-20  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Add top-level
+ 	variables Choice_{Lo|Hi} and Int_Choice_{Lo|Hi} used for
+ 	determining the low and high bounds of component association
+ 	choices. Replace code for determining whether we have an indexed
+ 	aggregate with call to new function Sem_Aggr.Is_Indexed_Aggregate.
+ 	Remove test of whether Empty_Subp is a function, since it must be
+ 	a function. Move Default and Count_Type to be locals of a new
+ 	block enclosing the code that creates the object to hold the
+ 	aggregate length, and set them according to the default and type
+ 	of the Empty function's parameter when present (and to Empty and
+ 	Standard_Natural otherwise). Use Siz_Exp for the aggregate length
+ 	when set, and use Empty's default length when available, and use
+ 	zero for the length otherwise. In generating the call to the
+ 	New_Indexed function, use the determined lower and upper bounds if
+ 	determined earlier by Aggregate_Size, and otherwise compute those
+ 	from the index type's lower bound and the determined aggregate
+ 	length. In the case where a call to Empty is generated and the
+ 	function has a formal parameter, pass the value saved in Siz_Decl
+ 	(otherwise the parameter list is empty). Remove code specific to
+ 	making a parameterless call to the Empty function. Extend the code
+ 	for handling positional container aggregates to account for types
+ 	that define Assign_Indexed, rather than just Add_Unnamed, and in
+ 	the case of indexed aggregates, create a temporary object to hold
+ 	values of the aggregate's key index, and initialize and increment
+ 	that temporary for each call generated to the Assign_Indexed
+ 	procedure. For named container aggregates that have key choices
+ 	given by ranges, call Expand_Range_Component to generate a loop
+ 	that will call the appropriate insertion procedure for each value
+ 	of the range. For indexed aggregates with a Component_Associations
+ 	list, set and use the Assign_Indexed procedure for each component
+ 	association, whether or not there's an iterator specification.
+ 	(Add_Range_Size): Add code to determine the low and high bounds of
+ 	the range and capture those in up-level variables when their value
+ 	is less than or greater than (respectively) the current minimum
+ 	and maximum bounds values.
+ 	(Aggregate_Size): Separately handle the case where a single choice
+ 	is of a discrete type, and call Add_Range_Size to take its value
+ 	into consideration for determination of min and max bounds of the
+ 	aggregate. Add comments in a couple of places.
+ 	(Build_Siz_Exp): Remove the last sentence and "???" from the
+ 	comment that talks about accumulating nonstatic sizes, since that
+ 	sentence seems to be obsolete. Record the low and high bound
+ 	values in Choice_Lo and Choice_Hi in the case of a nonstatic
+ 	range.
+ 	(Expand_Iterated_Component): Set the Defining_Identifier of the
+ 	iterator specification to the Loop_Id in the
+ 	N_Iterated_Component_Association case.
+ 	(Expand_Range_Component): Procedure unnested from the block
+ 	handling indexed aggregates in Expand_Container_Aggregate, and
+ 	moved to top level of that procedure so it can also be called for
+ 	Add_Named cases. A formal parameter Insert_Op is added, and
+ 	existing calls to this procedure are changed to pass the
+ 	appropriate insertion procedure's Entity.
+ 	* sem_aggr.ads: Add with_clause for Sinfo.Nodes.
+ 	(Is_Indexed_Aggregate): New function for use by
+ 	Resolve_Container_Aggregate and Expand_Container_Aggregate.
+ 	* sem_aggr.adb: Add with_clause for Sem_Ch5. Move with_clause for
+ 	Sinfo.Nodes to sem_aggr.ads.
+ 	(Is_Indexed_Aggregate): New function to determine whether a
+ 	container aggregate is a container aggregate (replacing local
+ 	variable of the same name in Resolve_Container_Aggregate).
+ 	(Resolve_Iterated_Association): Remove part of comment saying that
+ 	a Key_Expression is always present. Set Parent field of the copy
+ 	of a component association with a loop parameter specification. On
+ 	the setting of Loop_Param_Id, account for a
+ 	Loop_Parameter_Specification being changed into an
+ 	Iterator_Specification as a result of being analyzed. Only call
+ 	Preanalyze_And_Resolve on Key_Expr when a key expression is
+ 	actually present. Remove loop for handling choices for the case of
+ 	an N_Component_Association with a Defining_Identifier (there
+ 	shouldn't be more than one choice in this case, and add an
+ 	assertion to ensure that). Also add code here to handle the case
+ 	where the choice is a function call, creating an
+ 	iterator_specification analyzing it, and call
+ 	Resolve_Iterated_Association recursively to process it. Add error
+ 	check to enforce RM22 4.3.5(27), which requires that the type of
+ 	the loop parameter must be the same as the key type when there is
+ 	no key expression and the aggregate is an indexed aggregate or has
+ 	an Add_Named op.
+ 	(Resolve_Container_Aggregate): In the Add_Unnamed case, call
+ 	Resolve_Iterated_Association for both
+ 	N_Iterated_Element_Association and N_Component_Association (rather
+ 	than just the latter). Remove error check for nonstatic choices in
+ 	component associations in Add_Named cases (multiple named
+ 	nonstatic associations are fine except in indexed aggregates).
+ 	Remove local variable Is_Indexed_Aggregate, replaced with new
+ 	library-level function of the same name, and add test of
+ 	Is_Indexed_Aggregate in the case where the aggregate type has an
+ 	Assign_Indexed operation, as a guard for doing error checks for
+ 	indexed aggregates. For indexed aggregate resolution, do not call
+ 	Analyze_And_Resolve on the expression of an
+ 	N_Component_Association in the "box association" case. Move error
+ 	checks for indexed aggregates with iterated associations that flag
+ 	cases where an association is a loop_parameter_specification with
+ 	an iterator filter or a key expression (violation of RM22
+ 	4.3.5(28/5)), from the loop that checks for contiguous and
+ 	nonoverlapping choices and into the preceding association loop
+ 	after the call to Resolve_Iterated_Association. The RM reference
+ 	is added to the error-message strings.
+ 
+ 2024-05-20  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taprop__linux.adb (Set_Task_Affinity): Fix
+ 	decision about whether to call CPU_FREE.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Convert_Aggr_In_Allocator): Remove Aggr parameter
+ 	and adjust description.
+ 	(Convert_Aggr_In_Object_Decl): Adjust description.
+ 	* exp_aggr.adb (Convert_Aggr_In_Allocator): Remove Aggr parameter
+ 	and add local variable of the same name instead.  Adjust call to
+ 	Convert_Array_Aggr_In_Allocator.
+ 	(Convert_Aggr_In_Object_Decl): Add comment for early return and
+ 	remove useless inner block statement.
+ 	(Convert_Array_Aggr_In_Allocator):  Remove Aggr parameter and add
+ 	local variable of the same name instead.
+ 	(In_Place_Assign_OK): Move down declarations of local variables.
+ 	(Convert_To_Assignments): Put all declarations of local variables
+ 	in the same place.  Fix typo in comment.  Replace T with Full_Typ.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Call Unqualify instead
+ 	of Expression on the qualified expression of the allocator for the
+ 	sake of consistency.  Adjust call to Convert_Aggr_In_Allocator.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Handle enumeration type with
+ 	Discard_Names.
+ 
+ 2024-05-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_imgv.adb (Expand_Width_Attribute): Fix for 'Width that
+ 	is computed at run time.
+ 	* sem_attr.adb (Eval_Attribute): Fix for 'Width that is computed
+ 	at compilation time.
+ 
+ 2024-05-20  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* libgnat/s-pooglo.adb (Allocate): Use arithmetic on
+ 	System.Address to compute the aligned address.
+ 
+ 2024-05-20  Steve Baird  <baird@adacore.com>
+ 
+ 	* freeze.adb (Adjust_Esize_For_Alignment): Assert that a valid
+ 	Alignment specification cannot result in adjusting the given
+ 	type's Esize to be larger than System_Max_Integer_Size.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): In analyzing
+ 	an Alignment specification, enforce the rule that a specified
+ 	Alignment value for a discrete or fixed-point type shall not be
+ 	larger than System_Max_Integer_Size / 8 .
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/g-sothco.ads (In_Addr): Add aspect Universal_Aliasing.
+ 
+ 2024-05-20  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Exclude detection of duplicates
+ 	because they are detected elsewhere.
+ 
+ 2024-05-20  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Clarify
+ 	comments.
+ 	* sem_prag.adb (Analyze_Pragma): Check for duplicates
+ 	Max_Entry_Queue_Length, Max_Entry_Queue_Depth and Max_Queue_Length
+ 	for the same protected entry.
+ 	* sem_util.adb (Get_Max_Queue_Length): Take into account all three
+ 	representation aspects that can be used to set this restriction.
+ 	(Has_Max_Queue_Length): Likewise.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst:
+ 	(pragma Max_Queue_Length): Fix pragma in example.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.ads (Collection_Node): Move to private part.
+ 	(Collection_Node_Ptr): Likewise.
+ 	(Header_Alignment): Change to declaration and move completion to
+ 	private part.
+ 	(Header_Size): Likewise.
+ 	(Lock_Type): Delete.
+ 	(Finalization_Collection): Move Lock component and remove default
+ 	value for Finalization_Started component.
+ 	* libgnat/s-finpri.adb (Initialize): Reorder statements.
+ 
+ 2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Universal_Aliasing): Remove reference to No_Strict_Aliasing.
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst
+ 	(Optimization and Strict Aliasinng): Simplify first example and
+ 	make it more consistent with the second.  Add description of the
+ 	effects of pragma Universal_Aliasing and document new warning
+ 	issued for unchecked conversions.  Remove obsolete stuff.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115133
+ 	* libgnarl/s-osinte__solaris.ads (mutex_t): Fix typo.
+ 	* libgnarl/s-taprop__solaris.adb (Record_Lock): Add conversion.
+ 	(Check_Sleep): Likewise.
+ 	(Record_Wakeup): Likewise.
+ 	(Check_Unlock): Likewise.
+ 	* libgnarl/s-tasini.adb (Initialize_RTS_Lock): Add pragma Import
+ 	on the overlaid variable.
+ 	(Finalize_RTS_Lock): Likewise.
+ 	(Acquire_RTS_Lock): Likewise.
+ 	(Release_RTS_Lock): Likewise.
+ 	* libgnarl/s-taspri__solaris.ads (To_RTS_Lock_Ptr): New instance
+ 	of Ada.Unchecked_Conversion.
+ 	* libgnat/s-oslock__solaris.ads: Add with clause for
+ 	Ada.Unchecked_Conversion.
+ 	(array_type_9): Add missing name qualification.
+ 	(record_type_3): Likewise.
+ 	(mutex_t): Fix formatting.
+ 
+ 2024-05-17  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate):
+ 	Derive the size for iterable aggregates in the case of
+ 	one-dimensional array objects.
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Aggr_Size_OK): Remove workaround and extend
+ 	comment.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Adainit): Generate declaration and call to the
+ 	imported procedure __gnat_tasking_runtime_initialize if need be.
+ 	* libgnat/s-soflin.ads (Locking Soft-Links): Add commentary.
+ 	* libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): New procedure
+ 	exported as __gnat_tasking_runtime_initialize.  Initialize RTS_Lock
+ 	manipulation routines here instead of...
+ 	(Init_RTS): ...here.
+ 
+ 2024-05-17  Steve Baird  <baird@adacore.com>
+ 
+ 	* scng.adb (scan): When checking for an unprocessed preprocessor
+ 	directive, take into account the preprocessor's rules about case
+ 	insensitivity and about white space between the '#' and the
+ 	keyword.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnarl/s-taspri__mingw.ads: Add clause for System.OS_Interface.
+ 	(Private_Data): Change type of Thread component.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/g-alvevi.ads: Add pragma Universal_Aliasing for all the
+ 	view types.
+ 	* libgnat/s-stratt.ads: Likewise for Fat_Pointer type.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-oslock$(objext).
+ 	(LIBGNAT_TARGET_PAIRS): Use s-oslock__dummy.ads by default.
+ 	Set specific s-oslock.ads source file for all the platforms.
+ 	* exp_ch7.ads (Preload_Finalization_Collection): New procedure.
+ 	* exp_ch7.adb (Allows_Finalization_Collection): Return False if
+ 	System.Finalization_Primitives has not been preloaded.
+ 	(Preload_Finalization_Collection): New procedure.
+ 	* opt.ads (Interface_Seen): New boolean variable.
+ 	* s-oscons-tmplt.c: Use "N" string for pragma Style_Checks.
+ 	* scng.adb (Scan): Set Interface_Seen upon seeing "interface".
+ 	* sem_ch10.adb: Add clause for Exp_Ch7.
+ 	(Analyze_Compilation_Unit): Call Preload_Finalization_Collection
+ 	after the context of the unit is analyzed.
+ 	* libgnarl/a-rttiev.adb: Add with clause for System.OS_Locks and
+ 	alphabetize others.
+ 	(Event_Queue_Lock): Adjust qualified name of subtype.
+ 	* libgnarl/s-osinte__aix.ads: Add with clause for System.OS_Locks
+ 	and change pthread_mutex_t into a local subtype.
+ 	* libgnarl/s-osinte__android.ads: Likewise.
+ 	* libgnarl/s-osinte__darwin.ads: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.ads: Likewise.
+ 	* libgnarl/s-osinte__freebsd.ads: Likewise.
+ 	* libgnarl/s-osinte__gnu.ads: Likewise.
+ 	* libgnarl/s-osinte__hpux-dce.ads: Likewise.
+ 	* libgnarl/s-osinte__hpux.ads: Add Likewise.
+ 	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
+ 	* libgnarl/s-osinte__linux.ads: Likewise.
+ 	* libgnarl/s-osinte__lynxos178e.ads: Likewise.
+ 	* libgnarl/s-osinte__qnx.ads: Likewise.
+ 	* libgnarl/s-osinte__rtems.ads: Likewise.
+ 	* libgnarl/s-osinte__mingw.ads: Add with clause for System.OS_Locks
+ 	and change CRITICAL_SECTION into a local subtype.  Add declarations
+ 	for imported procedures dealing with CRITICAL_SECTION.
+ 	* libgnarl/s-osinte__solaris.ads: Add with clause for System.OS_Locks
+ 	and change mutex_t into a local subtype.
+ 	* libgnarl/s-osinte__vxworks.ads: Add missing blank line.
+ 	* libgnarl/s-taprop.ads: Alphabetize clauses and package renamings.
+ 	Use qualified name for RTS_Lock throughout.
+ 	* libgnarl/s-taprop__dummy.adb: Add use clause for System.OS_Locks
+ 	and alphabetize others.
+ 	* libgnarl/s-taprop__hpux-dce.adb: Likewise.
+ 	* libgnarl/s-taprop__linux.adb: Likewise.
+ 	* libgnarl/s-taprop__posix.adb: Likewise.
+ 	* libgnarl/s-taprop__qnx.adb: Likewise.
+ 	* libgnarl/s-taprop__rtems.adb: Likewise.
+ 	* libgnarl/s-taprop__solaris.adb: Likewise.
+ 	* libgnarl/s-taprop__vxworks.adb: Likewise.
+ 	* libgnarl/s-taprop__mingw.adb: Likewise.  Remove declarations for
+ 	imported procedures dealing with CRITICAL_SECTION.
+ 	* libgnarl/s-tarest.adb: Add with clause for System.OS_Locks and
+ 	alphabetize others.
+ 	(Global_Task_Lock): Adjust qualified name of subtype.
+ 	* libgnarl/s-tasini.adb: Add clause for System.OS_Locks.
+ 	(Initialize_RTS_Lock): New procedure.
+ 	(Finalize_RTS_Lock): Likewise.
+ 	(Acquire_RTS_Lock): Likewise.
+ 	(Release_RTS_Lock): Likewise.
+ 	(Init_RTS): Add compile-time assertions for RTS_Lock types.
+ 	Set the soft links for the RTS lock manipulation routines.
+ 	* libgnarl/s-taspri__dummy.ads: Add with clause for System.OS_Locks.
+ 	(RTS_Lock): Delete and adjust throughout accordingly.
+ 	* libgnarl/s-taspri__hpux-dce.ads: Likewise.
+ 	* libgnarl/s-taspri__lynxos.ads: Likewise.
+ 	* libgnarl/s-taspri__mingw.ads: Likewise.
+ 	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
+ 	* libgnarl/s-taspri__posix.ads: Likewise.
+ 	* libgnarl/s-taspri__solaris.ads: Likewise.
+ 	* libgnarl/s-taspri__vxworks.ads: Likewise.
+ 	* libgnat/s-finpri.ads: Add clause for System.OS_Locks.
+ 	(Finalization_Collection): Change type of Lock.
+ 	* libgnat/s-finpri.adb (Initialize): Call Initialize_RTS_Lock.
+ 	(Lock_Collection): Call Acquire_RTS_Lock.
+ 	(Unlock_Collection): Call Release_RTS_Lock.
+ 	* libgnat/s-oslock__dummy.ads: New file.
+ 	* libgnat/s-oslock__hpux-dce.ads: Likewise.
+ 	* libgnat/s-oslock__mingw.ads: Likewise.
+ 	* libgnat/s-oslock__posix.ads: Likewise.
+ 	* libgnat/s-oslock__solaris.ads: Likewise.
+ 	* libgnat/s-oslock__vxworks.ads: Likewise.
+ 	* libgnat/s-soflin.ads (Null_Set_Address): New null procedure.
+ 	(Initialize_RTS_Lock): New soft link.
+ 	(Finalize_RTS_Lock): Likewise.
+ 	(Acquire_RTS_Lock): Likewise.
+ 	(Release_RTS_Lock): Likewise.
+ 	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
+ 	call Apply_Predicate_Check on the resulting access value if need be.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Materialize_Entity): Document secondary usage.
+ 
+ 2024-05-17  Steve Baird  <baird@adacore.com>
+ 
+ 	* local_restrict.adb (Active_Restriction): When traversing scopes,
+ 	do not skip over a subprogram body.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnarl/s-taprop__dummy.adb (Initialize_Lock): Fix formatting.
+ 	* libgnarl/s-taprop__linux.adb (RTS_Lock_Ptr): Delete.
+ 	(Init_Mutex): Rename into...
+ 	(Initialize_Lock): ...this.
+ 	(Initialize_Lock [Lock]): Call above procedure.
+ 	(Initialize_Lock [RTS_Lock]): Likewise.
+ 	(Initialize_TCB): Likewise.
+ 	* libgnarl/s-taprop__posix.adb (Initialize_Lock): New procedure
+ 	factored out from the other two homonyms.
+ 	(Initialize_Lock [Lock]): Call above procedure.
+ 	(Initialize_Lock [RTS_Lock]): Likewise.
+ 	* libgnarl/s-taprop__qnx.adb (RTS_Lock_Ptr): Delete.
+ 	(Init_Mutex): Rename into...
+ 	(Initialize_Lock): ...this.
+ 	(Initialize_Lock [Lock]): Call above procedure.
+ 	(Initialize_Lock [RTS_Lock]): Likewise.
+ 	(Initialize_TCB): Likewise.
+ 	* libgnarl/s-taprop__rtems.adb (Initialize_Lock): New procedure
+ 	factored out from the other two homonyms.
+ 	(Initialize_Lock [Lock]): Call above procedure.
+ 	(Initialize_Lock [RTS_Lock]): Likewise.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Known_On_Entry): Handle constants introduced
+ 	by validity checks.
+ 
+ 2024-05-17  Steve Baird  <baird@adacore.com>
+ 
+ 	* libgnat/a-direct.adb (Start_Search_Internal): Do not call
+ 	Modification_Time for a special file; declare a Calendar.Time
+ 	constant No_Time and use that instead.
+ 
+ 2024-05-17  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Add
+ 	Has_Predicates test for a scalar component to match what is
+ 	already done for other kinds of components.
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Improve comments
+ 	and condition.
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Fix location of error
+ 	message.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Move to
+ 	Sem_Util, so it can be used from GNATprove.
+ 	* sem_util.ads (Is_Unconstrained_Or_Tagged_Item): Move from
+ 	Sem_Prag; spec.
+ 	* sem_util.adb (Is_Unconstrained_Or_Tagged_Item): Move from
+ 	Sem_Prag; body.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_pakd.adb (Create_Packed_Array_Impl_Type): For non-bit-packed
+ 	array types, propagate the aliased property of the component.
+ 	(Install_PAT): Set fields on the implicit base type of an array.
+ 	* libgnat/a-stream.ads (private part): Add pragma Universal_Aliasing
+ 	for Stream_Element.
+ 	* libgnat/g-alleve.ads: Add pragma Universal_Aliasing for all the
+ 	vector types.
+ 	* libgnat/g-alleve__hard.ads: Likewise.
+ 
+ 2024-05-17  Bob Duff  <duff@adacore.com>
+ 
+ 	* bcheck.adb (Check_Consistency_Of_Sdep): Split out new procedure.
+ 	Add check for special case of subprogram spec that no longer
+ 	exists.
+ 	(Check_Consistency): Call Check_Consistency_Of_Sdep, except when
+ 	Reified_Child_Spec is True. No need for "goto Continue" or "exit
+ 	Sdep_Loop".
+ 	* ali.ads (Subunit_Name, Unit_Name): Change the type to
+ 	Unit_Name_Type. Add a comment pointing to the ALI file
+ 	documentation, because it's in a somewhat-surprising place.
+ 	* ali.adb (Scan_ALI): Subunit_Name and Unit_Name are now
+ 	Unit_Name_Type. Remove comment explaining why Name_Find is used;
+ 	Name_Find is the usual case. Do not remove the "%s" or "%b" from
+ 	the Unit_Name. We need to be able to distinguish specs and bodies.
+ 	This is also necessary to obey the invariant of Unit_Name_Type.
+ 	* binde.adb (Write_Closure): Subunit_Name is now Unit_Name_Type.
+ 	* clean.adb (Clean_Executables): Likewise.
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Null_Array_Aggregate): Update
+ 	documentation comments.
+ 
+ 2024-05-17  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb (Has_Some_Controlled_Component): Fix a bug which
+ 	causes (in some cases involving a Disable_Controlled aspect
+ 	specification) Needs_Finalization to return different answers for
+ 	one type depending on whether the function is called before or
+ 	after the type is frozen.
+ 	* libgnat/a-coorse.ads: Type Control_Reference_Type gets an Adjust
+ 	procedure.
+ 	* libgnat/a-cborse.ads: Likewise.
+ 	* libgnat/a-ciorse.ads: Likewise
+ 	* libgnat/a-coorse.adb:
+ 	(Finalize): Reclaim allocated Key_Type object.
+ 	(Adjust): New procedure; prevent sharing of non-null Key_Access
+ 	values by allocating a copy.
+ 	* libgnat/a-cborse.adb: Likewise.
+ 	* libgnat/a-ciorse.adb: Likewise.
+ 
+ 2024-05-17  Bob Duff  <duff@adacore.com>
+ 
+ 	* uname.adb (Get_Unit_Name_String): Move Asserts after
+ 	Buf is initialized.
+ 
+ 2024-05-17  Bob Duff  <duff@adacore.com>
+ 
+ 	* ali-util.adb (Read_Withed_ALIs): Minor reformatting.
+ 	* bindo-units.adb (Corresponding_Body): Add assert.
+ 	(Corresponding_Spec): Likewise.
+ 	* uname.adb: Clean up assertions, use available functions.
+ 	Get_Spec_Name/Get_Body_Name can assert that N obeys the
+ 	conventions for Unit_Name_Type (end in "%s" or "%b").
+ 
+ 2024-05-17  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* raise-gcc.c: Work around __builtin_code_address_from_pointer
+ 	if it is unavailable.
+ 
+ 2024-05-17  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code) <Gen_Loop>: Copy the
+ 	initialization expression when unrolling the loop.
+ 
+ 2024-05-17  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_disp.adb (Check_Dispatching_Operation): Call
+ 	Create_Extra_Formals, so that the caller will have an extra
+ 	"constrained" parameter, which will be checked on assignment in
+ 	the callee, and will be passed in by the caller.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Remove call
+ 	to Has_Discriminants; combine ELSIF branches.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch7.adb (New_Private_Type): Simplify setting of
+ 	Is_Constrained flag.
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Simplify
+ 	detection of private types with no discriminant.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects
+ 	of private types with unknown discriminants.
+ 
+ 2024-05-17  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated
+ 	testing of type kinds.
+ 
+ 2024-05-17  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Fix
+ 	copy/paste.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-05-17  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Component_Declaration):
+ 	Apply range checks only for Scalar_Types to
+ 	ensure that they have the Scalar_Range attribute.
+ 
+ 2024-05-17  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Component_Declaration):
+ 	Add Range_Checks for Subtype_Indications
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Remove call to
+ 	Relocate_Node.
+ 	* sem_attr.adb (Analyze_Attribute): Likewise.
+ 
+ 2024-05-17  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Flatten): Small cleanup.
+ 
+ 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute) <Attribute_Size>: Remove special
+ 	processing for pragma Compile_Time_{Warning,Error}.
+ 	(Eval_Attribute.Compile_Time_Known_Attribute): Set Is_Static on the
+ 	resulting value if In_Compile_Time_Warning_Or_Error is set.
+ 	(Eval_Attribute.Full_Type): New helper function.
+ 	(Eval_Attribute): Call Full_Type for type attributes.  Add handling
+ 	of Object_Size and adjust that of Max_Size_In_Storage_Elements in
+ 	the non-static case.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Attach_Object_To_Master_Node): Remove reference to a
+ 	transient object in comment.
+ 
+ 2024-05-16  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): also reset scope
+ 	for object declarations.
+ 
+ 2024-05-16  Steve Baird  <baird@adacore.com>
+ 
+ 	* checks.adb (Expr_Known_Valid): Return True for a static expression.
+ 	* exp_util.adb (Adjust_Condition): No validity check needed for a
+ 	condition if it is an expression for which a validity check has
+ 	already been generated.
+ 
+ 2024-05-16  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* libgnat/a-coinve.ads (type Vector): In the Aggregate aspect for
+ 	this type, the Empty operation is changed to denote the Empty
+ 	function, rather than the Empty_Vector constant.
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Remove code for
+ 	handling the case where the Empty_Subp denotes a constant object,
+ 	which should never happen (and add an assertion that Empty_Subp
+ 	must denote a function).
+ 	* sem_ch13.adb (Valid_Empty): No longer allow the entity to be an
+ 	E_Constant, and require the (optional) parameter of an Empty
+ 	function to be of a signed integer type (rather than any integer
+ 	type).
+ 
+ 2024-05-16  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Add entry for
+ 	Super attribute.
+ 	* accessibility.adb (Accessibility_Level): Add handling for Super.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
+ 	Super.
+ 	* sem_attr.adb (Analyze_Attribute): Create a case to handle the
+ 	semantic checking and expansion for Super.
+ 	(Eval_Attribute): Add entry for Super.
+ 	* sem_attr.ads: Add entry for Super.
+ 	* sem_util.adb (Is_Aliased_View, Is_Variable): Add case to handle
+ 	references to 'Super.
+ 	* snames.ads-tmpl: Register Name_Super and Attribute_Super.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.ads (Check_Function_Writable_Actuals): Fix comment.
+ 
+ 2024-05-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Case_Expression): Add length check
+ 	insertion.
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Add handling of nodes
+ 	known to raise Constraint_Error.
+ 
+ 2024-05-16  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* adaint.c: New defines for STANDALONE mode.
+ 
+ 2024-05-16  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
+ 	If the spec is not present for a subprogram body then
+ 	check if the body definiton was created for a protected
+ 	procedure.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_cg.adb (Generate_CG_Output): Remove code for ignored ghost
+ 	entities that applied to subprogram calls.
+ 	(Register_CG_Node): Skip ignored ghost entities, both calls
+ 	and tagged types, when they are registered.
+ 
+ 2024-05-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* checks.adb (Apply_Selected_Length_Checks): Fix reason code.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.adb (Raise_From_Controlled_Operation): New
+ 	declaration of imported procedure moved from...
+ 	(Finalize_Master): ...there.
+ 	(Finalize): Call Raise_From_Controlled_Operation instead of
+ 	Reraise_Occurrence to propagate the exception, if any.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_If_Expression): Add guard for
+ 	if_expression without an ELSE part.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch13.adb (Expand_N_Free_Statement): After analysis, the
+ 	new temporary has the type of its Object_Definition and the new
+ 	occurrence of this temporary has this type as well; simplify.
+ 	* sem_util.adb
+ 	(Indirect_Temp_Value): Remove redundant call to Set_Etype;
+ 	simplify.
+ 	(Is_Access_Type_For_Indirect_Temp): Add missing body header.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Known_On_Entry): Check whether condition and
+ 	dependent expressions of an if_expression are known on entry.
+ 
+ 2024-05-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* checks.ads: Fix comments.
+ 	* checks.adb: Likewise.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.ads: Add use type clause for Storage_Offset.
+ 	(Header_Alignment): Turn into an expression function.
+ 	(Header_Size): Likewise.
+ 	* libgnat/s-finpri.adb: Remove use type clause for Storage_Offset.
+ 	(Header_Alignment): Delete.
+ 	(Header_Size): Likewise.
+ 
+ 2024-05-16  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch7.adb (Unnest_Loop::Fixup_Inner_Scopes): detect a new
+ 	problematic pattern and fixup the scope accordingly.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix typo.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.ads (Header_Alignment): New function.
+ 	(Header_Size): Adjust description.
+ 	(Master_Node): Put Finalize_Address as first component.
+ 	(Collection_Node): Likewise.
+ 	* libgnat/s-finpri.adb (Header_Alignment): New function.
+ 	(Header_Size): Return the object size in storage units.
+ 	* libgnat/s-stposu.ads (Adjust_Controlled_Dereference): Replace
+ 	collection node with header in description.
+ 	* libgnat/s-stposu.adb (Adjust_Controlled_Dereference): Likewise.
+ 	(Allocate_Any_Controlled): Likewise.  Pass the maximum of the
+ 	specified alignment and that of the header to the allocator.
+ 	(Deallocate_Any_Controlled): Likewise to the deallocator.
+ 
+ 2024-05-16  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion):
+ 	Explicitly create new Defining_Iterators for both
+ 	of the loops.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Private_Overriding): Implement the second part
+ 	of RM 3.9.3(10) consistently in both cases.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* erroutc.adb (Set_Msg_Insertion_Reserved_Word): Fix casing for
+ 	CUDA appearing in error message strings.
+ 	(Set_Msg_Str): Likewise for CUDA being a part of a Name_Id.
+ 
+ 2024-05-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Composite_Equality): Call Error_Msg_N
+ 	instead of Error_Msg.
+ 
+ 2024-05-16  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): Further tweaking
+ 	of the point where a compiler-generated Put_Image or streaming
+ 	subprogram is to be inserted in the tree. If one such subprogram
+ 	calls another (as is often the case with, for example, Put_Image
+ 	procedures for composite type and for a component type thereof),
+ 	then we want to avoid use-before-definition problems that can
+ 	result from inserting the caller ahead of the callee.
+ 
+ 2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.ads (Lock_Type): New modular type.
+ 	(Collection_Node): Add Enclosing_Collection component.
+ 	(Finalization_Collection): Add Lock component.
+ 	* libgnat/s-finpri.adb: Add clauses for System.Atomic_Primitives.
+ 	(Attach_Object_To_Collection): Lock and unlock the collection.
+ 	Save a pointer to the enclosing collection in the node.
+ 	(Detach_Object_From_Collection): Lock and unlock the collection.
+ 	(Finalize): Likewise.
+ 	(Initialize): Initialize the lock.
+ 	(Lock_Collection): New procedure.
+ 	(Unlock_Collection): Likewise.
+ 
+ 2024-05-16  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Expand existing checks for
+ 	generic formal types for which Is_Generic_Type returns False. In
+ 	that case, mark the attribute reference as nonstatic.
+ 
+ 2024-05-16  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb (Copy_Node_With_Replacement): Add call to
+ 	Copy_Dimensions so that any dimension information associated with
+ 	the copied node is also associated with the resulting copy.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Procedure_Specification): Remove
+ 	Aspect_Specifications field.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
+ 	reuse existing constant where possible.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
+ 	reuse existing constant where possible.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Fix ordering.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Move case alternative to match
+ 	to alphabetic order.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix casing
+ 	(this primarily fixes a style, because the capitalization will
+ 	not be preserved by the error-reporting machinery anyway).
+ 	* sem_ch13.adb (Analyze_User_Aspect_Aspect_Specification): Fix
+ 	casing in error message.
+ 
+ 2024-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
+ 	documentation.
+ 	* sem_prag.adb: Fix comments.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-14  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id, Boolean_Aspect): Change categorization
+ 	of Boolean-valued SPARK aspects.
+ 	* sem_ch13.adb (Analyze_Aspect_Specification): Adapt CASE
+ 	statements to new classification of Boolean-valued SPARK
+ 	aspects.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch13.adb (Validate_Unchecked_Conversions): Add node
+ 	parameters to Error_Msg calls.
+ 
+ 2024-05-14  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_util.adb: Typo fix in comment.
+ 	* exp_aggr.adb: Likewise.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Finalization Management): Add a short description of
+ 	the implementation of finalization chains.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Move the first call to
+ 	Build_Allocate_Deallocate_Proc up to before the accessibility check.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* errout.adb (Validate_Specific_Warnings): Adapt to record
+ 	definition change.
+ 	* erroutc.adb (Set_Specific_Warning_On, Set_Specific_Warning_Off,
+ 	Warning_Specifically_Suppressed): Likewise.
+ 	* erroutc.ads: Change record definition.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Default_Initialization): Do not generate the
+ 	protection for finalization collections.
+ 	(Build_Heap_Or_Pool_Allocator): Set the No_Initialization flag on
+ 	the declaration of the temporary.
+ 	* exp_ch4.adb (Build_Aggregate_In_Place): Do not build an allocation
+ 	procedure here.
+ 	(Expand_Allocator_Expression): Build an allocation procedure, if it
+ 	is required, only just before rewriting the allocator.
+ 	(Expand_N_Allocator): Do not build an allocation procedure if the
+ 	No_Initialization flag is set on the allocator, except for those
+ 	generated for special return objects.  In other cases, build an
+ 	allocation procedure, if it is required, only before rewriting
+ 	the allocator.
+ 	* exp_ch7.ads (Make_Address_For_Finalize): New function declaration.
+ 	* exp_ch7.adb (Finalization Management): Update description for
+ 	dynamically allocated objects.
+ 	(Make_Address_For_Finalize): Remove declaration.
+ 	(Find_Last_Init): Change to function and move to...
+ 	(Process_Object_Declaration): Adjust to above change.
+ 	* exp_util.ads (Build_Allocate_Deallocate_Proc): Add Mark parameter
+ 	with Empty default and document it.
+ 	(Find_Last_Init): New function declaration.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Add Mark parameter
+ 	with Empty default and pass it in recursive call.  Deal with type
+ 	conversions created for interface types.  Adjust call sequence to
+ 	Allocate_Any_Controlled by changing Collection to In/Out parameter
+ 	and removing Finalize_Address parameter.  For a controlled object,
+ 	generate a conditional call to Attach_Object_To_Collection for an
+ 	allocation and to Detach_Object_From_Collection for a deallocation.
+ 	(Find_Last_Init): ...here.  Compute the initialization type for an
+ 	allocator whose designating type is class wide specifically and also
+ 	handle concurrent types.
+ 	* rtsfind.ads (RE_Id): Add RE_Attach_Object_To_Collection and
+ 	RE_Detach_Object_From_Collection.
+ 	(RE_Unit_Table): Add entries for RE_Attach_Object_To_Collection and
+ 	RE_Detach_Object_From_Collection.
+ 	* libgnat/s-finpri.ads (Finalization_Started): Delete.
+ 	(Attach_Node_To_Collection): Likewise.
+ 	(Detach_Node_From_Collection): Move to...
+ 	(Attach_Object_To_Collection): New procedure declaration.
+ 	(Detach_Object_From_Collection): Likewise.
+ 	(Finalization_Collection): Remove Atomic for Finalization_Started.
+ 	Add pragma Inline for Initialize.
+ 	* libgnat/s-finpri.adb: Add clause for Ada.Unchecked_Conversion.
+ 	(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
+ 	(Detach_Node_From_Collection): ...here.
+ 	(Attach_Object_To_Collection): New procedure.
+ 	(Detach_Object_From_Collection): Likewise.
+ 	(Finalization_Started): Delete.
+ 	(Finalize): Replace allocation with attachment in comments.
+ 	* libgnat/s-stposu.ads (Allocate_Any_Controlled): Rename parameter
+ 	Context_Subpool into Named_Subpool, parameter Context_Collection
+ 	into Collection and change it to In/Out, and remove Fin_Address.
+ 	* libgnat/s-stposu.adb: Remove clause for Ada.Unchecked_Conversion
+ 	and Finalization_Primitives.
+ 	(To_Collection_Node_Ptr): Delete.
+ 	(Allocate_Any_Controlled): Rename parameter Context_Subpool into
+ 	Named_Subpool, parameter Context_Collection into Collection and
+ 	change it to In/Out, and remove Fin_Address.  Do not lock/unlock
+ 	and do not attach the object, instead only displace its address.
+ 	(Deallocate_Any_Controlled): Do not lock/unlock and do not detach
+ 	the object.
+ 	(Header_Size_With_Padding): Use qualified name for Header_Size.
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): If a subprogram
+ 	associated with a (library-level) type declared in another unit is
+ 	to be inserted somewhere in a list, then insert it at the head of
+ 	the list.
+ 	* sem_ch5.adb (Analyze_Assignment): Normally a limited-type
+ 	assignment is illegal. Relax this rule if Comes_From_Source is
+ 	False and the type is not immutably limited.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* errout.ads (Error_Msg): Add node parameter.
+ 	* errout.adb (Error_Msg): Add parameter and pass it to
+ 	the underlying call.
+ 	* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
+ 	pragma node when emitting errors.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* styleg.ads (Check_Xtra_Parens_Precedence): Moved ...
+ 	* style.ads (Check_Xtra_Parens_Precedence): ... here. Also
+ 	replace corresponding renaming.
+ 	* styleg.adb (Check_Xtra_Parens_Precedence): Moved ...
+ 	* style.adb (Check_Xtra_Parens_Precedence): here. Also use
+ 	Errout.Error_Msg and pass it a node parameter.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Convert_Aggr_In_Allocator): Rename Alloc into N,
+ 	replace Decl with Temp and adjust description.
+ 	(Convert_Aggr_In_Object_Decl): Alphabetize.
+ 	(Is_Delayed_Aggregate): Likewise.
+ 	* exp_aggr.adb (Convert_Aggr_In_Allocator): Rename Alloc into N
+ 	and replace Decl with Temp.  Allocate a list only when neeeded.
+ 	(Convert_Array_Aggr_In_Allocator): Replace N with Decl and insert
+ 	new code before it.
+ 	* exp_ch4.adb (Build_Aggregate_In_Place): New procedure nested in
+ 	Expand_Allocator_Expression.
+ 	(Expand_Allocator_Expression): Call it to build aggregates in place.
+ 	Remove second parameter in calls to Build_Allocate_Deallocate_Proc.
+ 	(Expand_N_Allocator): Likewise.
+ 	* exp_ch13.adb (Expand_N_Free_Statement): Likewise.
+ 	* exp_util.ads (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
+ 	parameter.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
+ 	parameter and replace it with local variable of same name.  Delete
+ 	useless pattern matching.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* usage.adb (Usage): Fix enabled-by-default indicators.
+ 
+ 2024-05-14  Philippe Gil  <gil@adacore.com>
+ 
+ 	* libgnat/s-win32.ads (LocalFileTimeToFileTime): Swap parameters.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* restrict.adb (Violation_Of_No_Dependence): Tweak error
+ 	reporting calls.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Adapt call to new signature.
+ 	* erroutc.ads (Set_Specific_Warning_Off): change signature
+ 	and update documentation.
+ 	(Validate_Specific_Warnings): Move ...
+ 	* errout.adb: ... here and change signature. Also move body
+ 	of Validate_Specific_Warnings from erroutc.adb.
+ 	(Finalize): Adapt call.
+ 	* errout.ads (Set_Specific_Warning_Off): Adapt signature of
+ 	renaming.
+ 	* erroutc.adb (Set_Specific_Warning_Off): Adapt signature and
+ 	body.
+ 	(Validate_Specific_Warnings): Move to the body of Errout.
+ 	(Warning_Specifically_Suppressed): Adapt body.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Pass N in the call to
+ 	Build_Initialization_Call.
+ 	(Build_Record_Aggr_Code): Likewise.
+ 	(Convert_Aggr_In_Object_Decl): Likewise.
+ 	(Initialize_Discriminants): Likewise.
+ 	* exp_ch3.ads (Build_Initialization_Call): Replace Loc witn N.
+ 	* exp_ch3.adb (Build_Array_Init_Proc): Pass N in the call to
+ 	Build_Initialization_Call.
+ 	(Build_Default_Initialization): Likewise.
+ 	(Expand_N_Object_Declaration): Likewise.
+ 	(Build_Initialization_Call): Replace Loc witn N parameter and add
+ 	Loc local variable.  Build a default subtype for an allocator of
+ 	a discriminated type with defaulted discriminants.
+ 	(Build_Record_Init_Proc): Pass the declaration of components in the
+ 	call to Build_Initialization_Call.
+ 	* exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): Pass the
+ 	allocator in the call to Build_Initialization_Call.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo.
+ 
+ 2024-05-14  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_util.adb (Find_Hook_Context): Exclude N_*Aggregate Nkinds
+ 	of Parent (Par) from the early return in the second loop of the
+ 	In_Cond_Expr case, to prevent returning an aggregate from this
+ 	function rather than the enclosing declaration or statement.
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb: Replace 6 "not Present" tests with equivalent calls to "No".
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Examine the Expression
+ 	field after the call to Default_Initialize_Object in order to set
+ 	Is_Known_Null, as well as Is_Known_Non_Null, on an access object.
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb: Change name of package Cached_Streaming_Ops to
+ 	reflect the fact that it is now also used for Put_Image
+ 	procedures. Similarly change other "Streaming_Op" names therein.
+ 	Add Validate_Cached_Candidate procedure to detect case where a
+ 	subprogram found in the cache cannot be reused. Add new generic
+ 	procedure Build_And_Insert_Type_Attr_Subp; the "Build" part is
+ 	handled by just calling a formal procedure; the bulk of this
+ 	(generic) procedure's code has to with deciding where in the tree
+ 	to insert the newly-constructed subprogram. Replace each later
+ 	"Build" call (and the following Insert_Action or
+ 	Compile_Stream_Body_In_Scope call) with a declare block that
+ 	instantiates and then calls this generic procedure. Delete the
+ 	now-unused procedure Compile_Stream_Body_In_Scope. A constructed
+ 	subprogram is entered in the appropriate cache if the
+ 	corresponding type is untagged; this replaces more complex tests.
+ 	A new function Interunit_Ref_OK is added to determine whether an
+ 	attribute reference occuring in one unit can safely refer to a
+ 	cached subprogram declared in another unit.
+ 	* exp_ch3.adb (Build_Predefined_Primitive_Bodies): A formal
+ 	parameter was deleted, so delete the corresponding actual in a
+ 	call.
+ 	* exp_put_image.adb (Build_Array_Put_Image_Procedure): Because the
+ 	procedure being built may be referenced more than once, the
+ 	generated procedure takes its source position info from the type
+ 	declaration instead of the (first) attribute reference.
+ 	(Build_Record_Put_Image_Procedure): Likewise.
+ 	* exp_put_image.ads (Build_Array_Put_Image_Procedure): Eliminate
+ 	now-unused Nod parameter.
+ 	(Build_Record_Put_Image_Procedure): Eliminate now-unused Loc parameter.
+ 	* sem_ch3.adb (Constrain_Discriminated_Type): For declaring a
+ 	subtype with a discriminant constraint, ignore privacy if
+ 	Comes_From_Source is false (as is already done if Is_Instance is
+ 	true).
+ 	* sem_res.adb (Resolve): When passed two type entities that have
+ 	the same underlying base type, Sem_Type.Covers may return False in
+ 	some cases because of privacy. [This can happen even if
+ 	Is_Private_Type returns False both for Etype (N) and for Typ;
+ 	Covers calls Base_Type, which can take a non-private argument and
+ 	yield a private result.] If Comes_From_Source (N) is False
+ 	(e.g., for a compiler-generated Put_Image or streaming subprogram), then
+ 	avoid that scenario by not calling Covers. Covers already has tests for
+ 	doing this sort of thing (see the calls therein to Full_View_Covers),
+ 	but the Comes_From_Source test is too coarse to apply there. So instead
+ 	we handle the problem here at the call site.
+ 	(Original_Implementation_Base_Type): A new function. Same as
+ 	Implementation_Base_Type except if the Original_Node attribute of
+ 	a non-derived type declaration indicates that it once was a derived
+ 	type declaration. Needed for looking through privacy.
+ 	(Valid Conversion): Ignore privacy when converting between different views
+ 	of the same type if Comes_From_Source is False for the conversion.
+ 	(Valid_Tagged_Conversion): An ancestor-to-descendant conversion is not an
+ 	illegal downward conversion if there is no type extension involved
+ 	(because the derivation was from an untagged view of the parent type).
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Case_Statement): Emit a message and return
+ 	early in the case where general case statements are allowed but
+ 	the selector expression is of a private type. This is done to
+ 	avoid a bugbox.
+ 
+ 2024-05-14  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_util.adb (Set_Referenced_Modified): Use Original_Node to
+ 	avoid recursive calls on expanded / internal objects such that
+ 	source nodes get appropriately marked as referenced.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_warn.adb (Warn_On_Overlapping_Actuals): Stop ignoring
+ 	warning suppression settings.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass the alignment
+ 	parameter in the inner call for a secondary stack allocation too.
+ 
+ 2024-05-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch10.adb (Install_Inherited_Policy_Pragmas): New subprogram.
+ 	(Remove_Inherited_Policy_Pragmas): New subprogram.
+ 	(Analyze_Compilation_Unit): Call the new subprograms to
+ 	install and remove inherited assertion policy pragmas.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_If_Expression): Set No_Initialization on the
+ 	declaration of the temporary in the by-reference case.
+ 	* exp_util.adb (Initialized_By_Access): Delete.
+ 	(Is_Allocated): Likewise.
+ 	(Initialized_By_Reference): New predicate.
+ 	(Is_Finalizable_Transient): If the transient object is of an access
+ 	type, do not return true unless it is initialized by a reference.
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb:	Move computation of Accum_Typ entirely into the
+ 	function Build_Stat.
+ 
+ 2024-05-14  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch12.ads: Declare new Instance_Context package, which
+ 	declares a private type Context with operations Save_And_Reset and
+ 	Restore.
+ 	* sem_ch12.adb: Provide body for new Instance_Context package.
+ 	* rtsfind.adb (Load_RTU): Wrap an Instance_Context Save/Restore
+ 	call pair around the call to Semantics.
+ 	* table.ads: Add initial value for Last_Val (because
+ 	Save_And_Reset expects Last_Val to be initialized).
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Replace reference to
+ 	Build_Task_Allocate_Block_With_Init_Stmts in comment with reference
+ 	to Build_Task_Allocate_Block.
+ 	(Convert_Aggr_In_Allocator): Likewise for the call in the code.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
+ 	* exp_ch3.ads: Alphabetize clauses.
+ 	(Build_Default_Initialization): New function declaration.
+ 	(Build_Default_Simple_Initialization): Likewise.
+ 	(Build_Initialization_Call): Add Target_Ref parameter with default.
+ 	* exp_ch3.adb (Build_Default_Initialization): New function extracted
+ 	from...
+ 	(Build_Default_Simple_Initialization): Likewise.
+ 	(Build_Initialization_Call): Add Target_Ref parameter with default.
+ 	(Expand_N_Object_Declaration): ...here.
+ 	(Default_Initialize_Object): Call Build_Default_Initialization and
+ 	Build_Default_Simple_Initialization.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Minor comment tweaks.
+ 	(Expand_N_Allocator): Call Build_Default_Initialization and
+ 	Build_Default_Simple_Initialization to implement the default
+ 	initialization of the allocated object.
+ 	* exp_ch9.ads (Build_Task_Allocate_Block): Delete.
+ 	(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
+ 	(Build_Task_Allocate_Block): ...this.
+ 	* exp_ch9.adb: Remove clauses for Exp_Tss.
+ 	(Build_Task_Allocate_Block): Delete.
+ 	(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
+ 	(Build_Task_Allocate_Block): ...this.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove unnecessary
+ 	initialization expression, adjust commentary and replace early exit
+ 	with assertion.
+ 	* sem_ch4.adb (Analyze_Allocator): In the null-exclusion case, call
+ 	Apply_Compile_Time_Constraint_Error to insert the raise.
+ 
+ 2024-05-14  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* styleg.ads (Check_Boolean_Operator): Moved ...
+ 	* style.ads (Check_Boolean_Operator): ... here.
+ 	* styleg.adb (Check_Boolean_Operator): Moved ...
+ 	* style.adb (Check_Boolean_Operator): ... here. Also add node
+ 	parameter to call to Errout.Error_Msg.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sprint.adb (Sprint_Node_Actual) <N_Raise_Statement>: Be prepared
+ 	for an empty Name.
+ 	<N_Raise_When_Statement>: Likewise.
+ 
+ 2024-05-14  Yannick Moy  <moy@adacore.com>
+ 
+ 	* contracts.adb: Fix references to SPARK RM rules.
+ 	* freeze.adb: Same.
+ 	* ghost.adb: Fix references to SPARK RM rules.
+ 	(Check_Ghost_Context): Update checking of references to
+ 	ghost entities in assertion expressions.
+ 	* sem_ch6.adb: Fix references to SPARK RM rules.
+ 	* sem_prag.adb: Same.
+ 
+ 2024-05-14  Yannick Moy  <moy@adacore.com>
+ 
+ 	* ghost.adb (Mark_And_Set_Ghost_Instantiation): Fix the current
+ 	Ghost policy for the instantiation.
+ 
+ 2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Default_Initialize_Object): Return immediately when
+ 	either Has_Init_Expression or No_Initialization is set on the node.
+ 	Tidy up the rest of the code accordingly.
+ 	(Simple_Initialization_OK): Do not test Has_Init_Expression here.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* accessibility.adb: Remove clauses for Exp_Ch3.
+ 	* exp_ch3.ads (Init_Proc_Level_Formal): Move declaration to...
+ 	* exp_ch3.adb (Init_Proc_Level_Formal): Move body to...
+ 	* exp_util.ads (Init_Proc_Level_Formal): ...here.
+ 	(Inside_Init_Proc): Alphabetize.
+ 	* exp_util.adb (Init_Proc_Level_Formal): ...here.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Potentially_Unevaluated): Remove code for
+ 	recovering the original structure of expressions with AND THEN.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Attribute_22): Remove Put_Image and Object_Size.
+ 	* sem_attr.ads (Attribute_Imp_Def): Restore Object_Size.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb: Adjust the description of finalization management.
+ 	(Build_Finalizer): Rename scope master into master throughout.
+ 	* rtsfind.ads (RE_Id): Replace RE_Finalization_Scope_Master with
+ 	RE_Finalization_Master.
+ 	(RE_Unit_Table): Replace entry for RE_Finalization_Scope_Master with
+ 	entry for RE_Finalization_Master.
+ 	* libgnat/s-finpri.ads (Finalization_Scope_Master): Rename into...
+ 	(Finalization_Master): ...this.
+ 	(Attach_Object_To_Master): Adjust to above renaming.
+ 	(Chain_Node_To_Master): Likewise.
+ 	(Finalize_Master): Likewise.
+ 	* libgnat/s-finpri.adb (Attach_Object_To_Master): Likewise.
+ 	(Chain_Node_To_Master): Likewise.
+ 	(Finalize_Master): Likewise.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-imaged.ads (System.Image_D): Add Uns formal parameter.
+ 	* libgnat/s-imaged.adb: Add with clauses for System.Image_I,
+ 	System.Value_I_Spec and System.Value_U_Spec.
+ 	(Uns_Spec): New instance of System.Value_U_Spec.
+ 	(Int_Spec): New instance of System.Value_I_Spec.
+ 	(Image_I): New instance of System.Image_I.
+ 	(Set_Image_Integer): New renaming.
+ 	(Set_Image_Decimal): Replace 'Image with call to Set_Image_Integer.
+ 	* libgnat/s-imde32.ads (Uns32): New subtype.
+ 	(Impl): Pass Uns32 as second actual paramter to Image_D.
+ 	* libgnat/s-imde64.ads (Uns64): New subtype.
+ 	(Impl): Pass Uns64 as second actual paramter to Image_D.
+ 	* libgnat/s-imde128.ads (Uns128): New subtype.
+ 	(Impl): Pass Uns128 as second actual paramter to Image_D.
+ 	* libgnat/s-imagef.adb (Set_Image_Fixed): Document bounds for the
+ 	A, D and AF local constants.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Attribute_22): Add Put_Image and Object_Size.
+ 	* sem_attr.ads (Attribute_Imp_Def): Remove Object_Size.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.adb (Copy_Aspects): Style fix.
+ 	* contracts.adb (Analyze_Contracts): Style fix.
+ 	(Save_Global_References_In_Contract): Remove extra guards.
+ 	* par_sco.adb (Traverse_Aspects): Move guard to the caller and
+ 	make it consistent with Save_Global_References_In_Contract.
+ 	* sem_ch12.adb (Has_Contracts): Remove extra guards.
+ 	* sem_ch3.adb (Delayed_Aspect_Present, Get_Partial_View_Aspect,
+ 	Check_Duplicate_Aspects): Likewise.
+ 	* sem_disp.adb (Check_Dispatching_Operation): Likewise.
+ 
+ 2024-05-13  Bob Duff  <duff@adacore.com>
+ 
+ 	* errout.adb (Output_Messages): Protect against the total going
+ 	negative.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb (Append_Enabled_Item): Remove use of Split_PPC;
+ 	simplify.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove flag definition.
+ 	* gen_il-gen-gen_nodes.adb (N_Aspect_Specification, N_Pragma):
+ 	Remove Split_PPC flags.
+ 	* gen_il-internals.adb (Image): Remove use of Split_PPC.
+ 	* par_sco.adb (Traverse_Aspects): Likewise.
+ 	* sem_ch13.adb (Make_Aitem_Pragma): Likewise.
+ 	* sem_ch6.adb (List_Inherited_Pre_Post_Aspects): Likewise.
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition, Analyze_Pragma,
+ 	Find_Related_Declaration_Or_Body): Likewise.
+ 	* sem_util.adb (Applied_On_Conjunct): Likewise.
+ 	* sinfo.ads: Remove flag documentation.
+ 	* treepr.adb (Image): Remove use of Split_PPC.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch6.adb (Append_Message): Build the location string from
+ 	scratch and not rely on the one produced while splitting the
+ 	aspect into pragmas.
+ 	* exp_prag.adb (Expand_Pragma_Check): Split pre/post checks in
+ 	expansion.
+ 	* sem_ch13.adb (Analyze_Aspect_Specification): Don't split
+ 	pre/post expressions into conjuncts; don't add message with
+ 	location to the corresponding pragma.
+ 	* sem_prag.adb (Build_Pragma_Check_Equivalent): Inherited
+ 	pragmas no longer have messages that would need to be updated.
+ 	* sinput.adb (Build_Location_String): Adjust to keep previous
+ 	messages while using with inherited pragmas.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb (Inherit_Subprogram_Contract): Fix style.
+ 	* sem_ch5.adb (Analyze_Iterator_Specification): Likewise.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Has_No_Output): Iteration with
+ 	First_Formal/Next_Formal involves Entity_Ids.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): When processing pragma
+ 	Lock_Free, check if restriction No_Implementation_Pragmas is
+ 	enabled.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gen_il-fields.ads (Opt_Field_Enum):
+ 	Remove Is_Expanded_Contract from the list of flags.
+ 	* gen_il-gen-gen_nodes.adb (N_Contract): Remove
+ 	Is_Expanded_Contract from the list of N_Contract fields.
+ 	* sinfo.ads (Is_Expanded_Contract): Remove comments for the flag
+ 	and its single occurrence in N_Contract.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Protected_Subprogram_Body,
+ 	Build_Protected_Subprogram_Call_Cleanup): Reuse refactored
+ 	routine.
+ 	* sem_util.adb
+ 	(Has_Enabled_Aspect): Refactored repeated code.
+ 	(Is_Static_Function): Reuse refactored routine.
+ 	* sem_util.ads (Has_Enabled_Aspect):
+ 	New query routine refactored from repeated code.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Protected_Subprogram_Call_Cleanup): If
+ 	aspect Exclusive_Functions is present then the cleanup of a
+ 	protected function now services queued entries, just like the
+ 	cleanup of a protected procedure.
+ 
+ 2024-05-13  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_util.ads (Append_Entity_Name): Fix comment to reflect new
+ 	semantics. The comment said, "The qualification stops at an
+ 	enclosing scope has no source name (block or loop)." There seems
+ 	to be no reason for stopping; instead, we should SKIP things with
+ 	no source name. And the "loop" part was wrong.
+ 	* sem_util.adb (Append_Entity_Name): Do not stop the recursion;
+ 	skip to next-outer scope instead. Misc cleanup/simplification.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.adb (Finalize): Replace "master" by "collection"
+ 	in comments and add a comment about the form of the loop.
+ 	* libgnat/s-stposu.adb (Allocate_Any_Controlled): Tweak comment.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-finmas$(objext).
+ 	* einfo.ads (Anonymous_Masters): Rename into Anonymous_Collections.
+ 	(Finalization_Master): Rename into Finalization_Collection.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Replace Anonymous_Masters
+ 	with Anonymous_Collections; and Finalization_Master with
+ 	Finalization_Collection.
+ 	* gen_il-gen-gen_entities.adb (Access_Kind): Likewise.
+ 	(E_Function): Likewise.
+ 	(E_Procedure): Likewise.
+ 	(E_Package): Likewise.
+ 	(E_Subprogram_Body): Likewise.
+ 	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Adjust to renamings.
+ 	(Freeze_Type): Likewise.
+ 	(Stream_Operation_OK): Remove obsolete test.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Adjust to renamings.
+ 	(Expand_N_Allocator): Likewise.
+ 	* exp_ch6.ads (BIP_Formal_Kind): Replace BIP_Finalization_Master
+ 	with BIP_Collection.
+ 	(Needs_BIP_Finalization_Master): Rename into...
+ 	(Needs_BIP_Collection): ...this.
+ 	* exp_ch6.adb (BIP_Finalization_Master_Suffix): Delete.
+ 	(BIP_Collection_Suffix): New constant string.
+ 	(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Rename to
+ 	(Add_Collection_Actual_To_Build_In_Place_Call): ...this and adjust.
+ 	(BIP_Formal_Suffix): Replace BIP_Finalization_Master alternative
+ 	with BIP_Collection alternative.
+ 	(BIP_Suffix_Kind): Replace test on BIP_Finalization_Master_Suffix
+ 	with test on BIP_Collection_Suffix.
+ 	(Is_Build_In_Place_Entity): Likewise.
+ 	(Make_Build_In_Place_Call_In_Allocator): Call Needs_BIP_Collection
+ 	and Add_Collection_Actual_To_Build_In_Place_Call.
+ 	(Make_Build_In_Place_Call_In_Anonymous_Context): Likewise.
+ 	(Make_Build_In_Place_Call_In_Assignment): Likewise.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
+ 	(Needs_BIP_Finalization_Master): Rename into...
+ 	(Needs_BIP_Collection): ...this.
+ 	(Needs_BIP_Alloc_Form): Call Needs_BIP_Collection.
+ 	* exp_ch7.ads (Build_Anonymous_Master): Rename into...
+ 	(Build_Anonymous_Collection): ...this.
+ 	(Build_Finalization_Master): Rename into...
+ 	(Build_Finalization_Collection): ...this.
+ 	* exp_ch7.adb (Allows_Finalization_Master): Rename into...
+ 	(Allows_Finalization_Collection): ...this.
+ 	(Build_BIP_Cleanup_Stmts): Adjust to renamings.
+ 	(Build_Anonymous_Master): Rename into...
+ 	(Build_Anonymous_Collection): ...this.  Adjust to renamings.
+ 	(Build_Finalization_Master): Rename into...
+ 	(Build_Finalization_Collection): ...this.  Adjust to renamings.
+ 	(Build_Finalizer): Adjust comment to renamings.
+ 	* exp_ch13.adb (Expand_N_Free_Statement): Adjust to renamings.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Likewise.
+ 	(Requires_Cleanup_Actions): Adjust comment to renamings.
+ 	* freeze.adb (Freeze_All): Likewise.
+ 	* rtsfind.ads (RTU_Id): Remove System_Finalization_Masters.
+ 	(RE_Id): Remove RE_Finalization_Master & RE_Finalization_Master_Ptr
+ 	add RE_Finalization_Collection & RE_Finalization_Collection_Ptr.
+ 	Adjust RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
+ 	(RE_Unit_Table): Remove entries for RE_Finalization_Master &
+ 	RE_Finalization_Master_Ptr, add ones for RE_Finalization_Collection
+ 	& RE_Finalization_Collection_Ptr.  Also adjust those of
+ 	RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
+ 	* sem_ch3.adb (Access_Type_Declaration): Adjust to renamings.
+ 	* sem_ch6.adb (Create_Extra_Formals): Likewise.
+ 	* sem_util.adb (Designated_Subtype_Mark): Likewise.
+ 	* libgnat/s-finpri.ads: Add clauses for Ada.Finalization and
+ 	System.Storage_Elements.
+ 	(Finalization_Collection): New limited controlled type.
+ 	(Finalization_Collection_Ptr): Likewise.
+ 	(Initialize): New overriding procedure.
+ 	(Finalize): Likewise.
+ 	(Finalization_Started): Likewise.
+ 	(Collection_Node): New type.
+ 	(Collection_Node_Ptr): Likewise.
+ 	(Attach_Node_To_Collection): New procedure.
+ 	(Detach_Node_From_Collection): Likewise.
+ 	(Header_Size): New function.
+ 	(Add_Offset_To_Address): Likewise.
+ 	* libgnat/s-finpri.adb (Add_Offset_To_Address): New function.
+ 	(Attach_Node_To_Collection): New procedure.
+ 	(Detach_Node_From_Collection): Likewise.
+ 	(Finalization_Started): Likewise.
+ 	(Finalize): New overriding procedure.
+ 	(Header_Size): New function.
+ 	(Initialize): New overriding procedure.
+ 	* libgnat/s-spsufi.ads (Finalize_And_Deallocate): Adjust comment.
+ 	* libgnat/s-spsufi.adb: Remove clause for Finalization_Masters and
+ 	add clause for Finalization_Primitives.
+ 	(Finalize_And_Deallocate): Finalize the Collection component.
+ 	* libgnat/s-stposu.ads: Remove clause for Finalization_Masters and
+ 	add clause for Finalization_Primitives.
+ 	(Root_Subpool): Replace Master component with Collection.
+ 	(Allocate_Any_Controlled): Replace Context_Master parameter with
+ 	Context_Collection parameter.
+ 	* libgnat/s-stposu.adb: Remove clauses for Finalization_Masters and
+ 	add clauses for Finalization_Primitives.
+ 	(Address_To_FM_Node_Ptr): Delete.
+ 	(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
+ 	(Adjust_Controlled_Dereference): Adjust comment to renamings.
+ 	(Allocate_Any_Controlled): Replace Context_Master parameter with
+ 	Context_Collection parameter.  Adjust to renamings.
+ 	(Deallocate_Any_Controlled): Adjust to renamings.
+ 	(Print_Subpool): Likewise.
+ 	* libgnat/s-finmas.ads: Delete.
+ 	* libgnat/s-finmas.adb: Likewise.
+ 
+ 2024-05-13  Ashley Gay  <gay@adacore.com>
+ 
+ 	* Makefile.rtl: remove i-vxinco.* from the build
+ 	* doc/gnat_rm/the_gnat_library.rst: Remove i-vxinco.ads from
+ 	the units documentation.
+ 	* impunit.adb: Remove i-vxinco from the list of available units
+ 	in GNATstudio.
+ 	* libgnarl/i-vxinco.adb: Remove.
+ 	* libgnarl/i-vxinco.ads: Ditto.
+ 	* libgnarl/s-interr__vxworks.adb: enrich comment
+ 	* libgnarl/s-vxwext__kernel.ads: fix comment
+ 	* libgnat/i-vxwork.ads: Remove deprecated interrupt connections
+ 	API, as well as an example.
+ 	* libgnat/i-vxwork__x86.ads: Ditto and add the paragma
+ 	Obscolescent to Attach_Handler
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Use the BIPstoragepool
+ 	formal parameter to retrieve the pool in the presence of a master.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Always pass
+ 	a pool reference along with the master reference.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
+ 	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use the BIPstoragepool
+ 	formal parameter to retrieve the pool in the presence of a master.
+ 	(Create_Anonymous_Master): Do not call Set_Base_Pool.
+ 	(Build_Finalization_Master): Likewise.
+ 	* rtsfind.ads (RE_Id): Remove RE_Base_Pool and RE_Set_Base_Pool.
+ 	(RE_Unit_Table): Remove associated entries.
+ 	* libgnat/s-finmas.ads: Remove clause for System.Storage_Pools.
+ 	(Any_Storage_Pool_Ptr): Delete.
+ 	(Finalization_Master): Remove Base_Pool component.
+ 	(Base_Pool): Delete.
+ 	(Set_Base_Pool): Likewise.
+ 	* libgnat/s-finmas.adb (Base_Pool): Likewise.
+ 	(Set_Base_Pool): Likewise.
+ 	(Print_Master): Do not print Base_Pool.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
+ 	Rename Pool_Actual into Pool_Exp and use Empty as default value.
+ 	(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Change the
+ 	names of the first two parameters and use a simpler code structure.
+ 	(Make_Build_In_Place_Call_In_Allocator): Rename the local variable
+ 	for the pool actual and set it to Empty if it is not used.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Rename the local
+ 	variable for the master actual.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): In the case of a
+ 	return object of a BIP function that needs finalization, save
+ 	the assignment statement made to initialize it, if any.
+ 	* exp_ch6.ads (BIP_Formal_Kind): Adjust description.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Make a
+ 	couple of adjustments to the commentary.
+ 	(Needs_BIP_Alloc_Form): Also return true if the function needs
+ 	a BIP_Finalization_Master parameter.
+ 	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove now always true
+ 	test on Needs_BIP_Alloc_Form.
+ 	(Attach_Object_To_Master_Node): Remove duplication in comment.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Get_Index_Bounds): Guard against missing Entity,
+ 	which happens on illegal constrained type declaration.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Treat Alignment like Component_Size
+ 	for array types.
+ 
+ 2024-05-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_case.adb: Replace all tests of Core_Extensions_Allowed with
+ 	corresponding tests of All_Extensions_Allowed.
+ 	* sem_ch5.adb: Likewise.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: update documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (New_Put_Image_Subprogram): In the nondeferred case
+ 	coming from an aspect and for a type with delaying freezing, also
+ 	freeze the subprogram immediately.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/a-direct.adb (Start_Search_Internal): Combine subtype
+ 	and object declaration.
+ 	* libgnat/g-dirope.adb (Read): Replace convoluted unchecked
+ 	conversion with an overlay.
+ 
+ 2024-05-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/g-dirope.adb (Read): Use null-excluding,
+ 	access-to-constant type; replace element-by-element copy with
+ 	array assignments.
+ 
+ 2024-05-13  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Move determination of
+ 	whether the aggregate is an indexed aggregate earlier in the
+ 	procedure. Test Is_Indexed_Aggregate as a criterion for generating
+ 	a call to the container type's New_Indexed function, add proper
+ 	computation of bounds to pass in to the function, and remove later
+ 	code for generating such a call. Add and improve comments.
+ 	(Aggregate_Size): Remove special treatment of case where there is
+ 	exactly one component association, and instead loop over all
+ 	component associations to determine whether any of them have a
+ 	nonstatic length. If there is at least one such nonstatic
+ 	association, return -1.
+ 	(Build_Siz_Exp): Accumulate a sum of the sizes of each of the
+ 	component associations in Siz_Exp (which will only be used if
+ 	there any associations that are of Nkind
+ 	N_Iterated_Component_Association with a nonstatic range).
+ 	(Expand_Range_Component): Fix typos in the procedure's spec
+ 	comment and block comment.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Number_Of_Elements_In_Array): Fix counting of
+ 	elements in null arrays; remove redundant parenthesis; avoid
+ 	run-time conversion of 1 to universal integer.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count,
+ 	Increment_Primary_Stack_Count, Increment_Sec_Stack_Count,
+ 	Unit_Record): Stack counts are never negative.
+ 	* ali.ads (Unit_Record): Likewise.
+ 	* bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise.
+ 	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise.
+ 	* sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array):
+ 	Likewise.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Do not look for
+ 	tasks inside record discriminants; remove avoid repeated call to
+ 	Has_Task that happened for record components.
+ 	(Expand_N_Object_Declaration): Use high-level routine to detect
+ 	array types and subtypes; remove unused initial values.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.ads (Static_Array_Aggregate): Fix typo in comment.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Has_Single_Return): Remove redundant check for
+ 	empty list, because First works also for empty list.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Useful): Remove redundant check for empty list,
+ 	because iteration with First works also for empty list; rename
+ 	local variable from L to Action.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Has_Formal_With_Per_Object_Constrained_Component):
+ 	Use flag Has_Per_Object_Constraint which is set by analysis;
+ 	rename for consistency.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Access_Attribute): Replace loop with
+ 	Current_Scope_No_Loops.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Access_Attribute): Move code to IF
+ 	branch where its result is used.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Access_Attribute): Prevent search from
+ 	going too far.
+ 	* sem_ch3.adb (Analyze_Component_Declaration): Remove
+ 	Contains_POC; reuse Has_Discriminant_Dependent_Constraint.
+ 
+ 2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Pending_Access_Types): Delete.
+ 	* exp_ch3.adb (Freeze_Type.Process_Pending_Access_Types): Likewise.
+ 	(Freeze_Type): Do not call Process_Pending_Access_Types.
+ 	* exp_ch7.ads (Make_Set_Finalize_Address_Call): Delete.
+ 	* exp_ch7.adb (Build_Finalization_Master.Add_Pending_Access_Type):
+ 	Delete.
+ 	(Build_Finalization_Master): Do not set Finalize_Address on the
+ 	master or call Add_Pending_Access_Type.
+ 	(Make_Set_Finalize_Address_Call): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Pending_Access_Types.
+ 	* gen_il-gen-gen_entities.adb (Type_Kind): Likewise.
+ 	* rtsfind.ads (RE_Id): Remove RE_Set_Finalize_Address.
+ 	(RE_Unit_Table): Likewise.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not deal with
+ 	pending access types.
+ 	* libgnat/s-finmas.ads (Attach_Unprotected): Add Finalize_Address
+ 	second parameter.
+ 	(Delete_Finalize_Address_Unprotected): Delete.
+ 	(Finalize_Address): Likewise.
+ 	(Finalize_Address_Unprotected): Likewise.
+ 	(Is_Homogeneous): Likewise.
+ 	(Set_Finalize_Address): Likewise.
+ 	(Set_Finalize_Address_Unprotected): Likewise.
+ 	(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
+ 	(Set_Is_Heterogeneous): Likewise.
+ 	(FM_Node): Add Finalize_Address component.
+ 	(Finalization_Master): Remove Is_Homogeneous and Finalize_Address
+ 	components.
+ 	* libgnat/s-finmas.adb: Remove with & use clauses for System.HTable.
+ 	(Finalize_Address_Table): Delete.
+ 	(Attach_Unprotected): Add Finalize_Address second parameter and save
+ 	its value in the Finalize_Address field of the node.
+ 	(Delete_Finalize_Address_Unprotected): Delete.
+ 	(Finalize): Call Finalize_Address saved in the nodes.
+ 	(Finalize_Address): Delete.
+ 	(Finalize_Address_Unprotected): Likewise.
+ 	(Hash): Likewise.
+ 	(Is_Homogeneous): Likewise.
+ 	(Print_Master): Adjust.
+ 	(Set_Finalize_Address): Delete.
+ 	(Set_Finalize_Address_Unprotected): Likewise.
+ 	(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
+ 	(Set_Is_Heterogeneous): Likewise.
+ 	* libgnat/s-stposu.adb (Finalize_Address_Table_In_Use): Likewise.
+ 	(Allocate_Any_Controlled): Pass Fin_Address to Attach_Unprotected
+ 	and remove obsolete processing.
+ 	(Deallocate_Any_Controlled): Remove obsolete processing.
+ 	(Set_Pool_Of_Subpool): Do not call Set_Is_Heterogeneous.
+ 
+ 2024-05-07  Joffrey Huguet  <huguet@adacore.com>
+ 
+ 	* libgnat/a-ngelfu.ads (Sqrt): Add Global contracts.
+ 	(Log): Likewise.
+ 	(Exp): Likewise.
+ 	("**"): Likewise.
+ 	(Sin): Likewise.
+ 	(Cos): Likewise.
+ 	(Tan): Likewise.
+ 	(Cot): Likewise.
+ 	(Arcsin): Likewise.
+ 	(Arccos): Likewise.
+ 	(Arctan): Likewise.
+ 	(Arccot): Likewise.
+ 	(Sinh): Likewise.
+ 	(Cosh): Likewise.
+ 	(Tanh): Likewise.
+ 	(Coth): Likewise.
+ 	(Arcsinh): Likewise.
+ 	(Arccosh): Likewise.
+ 	(Arctanh): Likewise.
+ 	(Arccoth): Likewise.
+ 
+ 2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Postconditions_Proc): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Postconditions_Proc.
+ 	* gen_il-gen-gen_entities.adb (E_Function): Likewise.
+ 	(E_Procedure): Likewise.
+ 	(E_Entry): Likewise.
+ 	(E_Entry_Family): Likewise.
+ 
+ 2024-05-07  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sinfo.ads: Fix typo.
+ 
+ 2024-05-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_attr.adb (Attribute_Old): The 'Old attribute we are
+ 	processing here is in a postcondition, which cannot be inside the
+ 	"Wrapped_Statements" of the subprogram with that postcondition. So
+ 	remove the loop labeled "Climb the parent chain looking for
+ 	subprogram _Wrapped_Statements". The only way this loop could find
+ 	a Subp is if we are nested inside a subprogram that also has a
+ 	postcondition, and in that case we would find the wrong (outer)
+ 	one. In any case, Subp is set to Empty after the loop, so all
+ 	subsequent tests for Present (Subp) are necessarily False; remove
+ 	them and the corresponding code. Set Ins_Node unconditionally (to
+ 	the right thing). Remove obsolete comments.
+ 	* sem_util.adb (Determining_Expressions): Fix assertion;
+ 	Pragma_Test_Case was missing.
+ 	(Eligible_For_Conditional_Evaluation): Fix assert that could fail
+ 	in case of errors.
+ 	* libgnat/s-valspe.ads: Remove pragma Unevaluated_Use_Of_Old;
+ 	there are no uses of 'Old in this package.
+ 
+ 2024-05-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strsea.adb (Index): Add assertions.
+ 	* libgnat/a-strsup.ads ("="): Remove useless precondition.
+ 	* libgnat/s-aridou.adb (Prove_Rounding_Case): Add assertions.
+ 	(Lemma_Shift_Right): Add call to lemma.
+ 	* libgnat/s-arit32.adb (Prove_Rounding_Case): Add assertion.
+ 	(Prove_ Signs): Add assertions.
+ 	(Scaled_Divide32): Add assertions.
+ 
+ 2024-05-07  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Restructure the loop over
+ 	possible resolutions of a No_Return pragma's argument so that
+ 	functions (and generic functions) are not processed until after it
+ 	is known whether there is a non-function candidate resolution. For
+ 	a pre-2022 Ada version, terminate the iteration before processing
+ 	functions if a non-function resolution is found.
+ 
+ 2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/g-socthi.ads (C_Bind): Turn into inline function.
+ 	(C_Getpeername): Likewise.
+ 	(C_Getsockname): Likewise.
+ 	(C_Getsockopt): Likewise.
+ 	(C_Setsockopt): Likewise.
+ 	(Nonreentrant_Gethostbyaddr): Likewise.
+ 	* libgnat/g-socthi.adb (Syscall_Accept): Adjust profile.
+ 	(Syscall_Connect): Likewise.
+ 	(Syscall_Recvfrom): Likewise.
+ 	(Syscall_Sendto): Likewise.
+ 	(C_Bind): New function.
+ 	(C_Accept): Adjust to above change for profiles.
+ 	(C_Connect): Likewise.
+ 	(C_Getpeername): New function.
+ 	(C_Getsockname): Likewise.
+ 	(C_Getsockopt): Likewise.
+ 	(C_Recvfrom):  Adjust to above change for profiles.
+ 	(C_Setsockopt): New function.
+ 	(Nonreentrant_Gethostbyaddr): Likewise.
+ 
+ 2024-05-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* par-ch3.adb (P_Component_Items): Move P_Aspect_Specifications
+ 	into the loop, so aspects can be attached to multiple component
+ 	declarations.
+ 	(P_Type_Declaration, P_Subtype_Declaration)
+ 	(P_Known_Discriminant_Part_Opt): Remove default for Semicolon in
+ 	calls to P_Aspect_Specifications.
+ 	* gen_il-gen-gen_nodes.adb (N_Discriminant_Specification): Add
+ 	Aspect_Specifications field to N_Discriminant_Specification, which
+ 	was missing.
+ 	* aspects.adb (Has_Aspect_Specifications_Flag): Make it True for
+ 	N_Discriminant_Specification.
+ 	* par-ch13.adb: Remove default for Semicolon in calls to
+ 	P_Aspect_Specifications.
+ 	(Get_Aspect_Specifications): Misc cleanup.
+ 	(P_Aspect_Specifications): Remove comment. It's not clear what
+ 	"the flag" is referring to, but anyway the first part of the
+ 	comment is obvious, and the second part is apparently obsolete.
+ 	Misc cleanup.
+ 	* par.adb (P_Aspect_Specifications, Get_Aspect_Specifications):
+ 	Remove default for Semicolon; calls are more readable that way.
+ 	Improve comments.
+ 	* par-ch12.adb: Remove default for Semicolon in calls to
+ 	P_Aspect_Specifications.
+ 	* par-ch6.adb: Likewise.
+ 	* par-ch7.adb: Likewise.
+ 	* par-ch9.adb: Likewise.
+ 	* par-endh.adb: Likewise.
+ 
+ 2024-05-07  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): Better
+ 	handle itypes such that the tree copy required for the expansion
+ 	of the pragma doesn't cause ordering problems with internal names.
+ 
+ 2024-05-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Actuals): Add range check flag.
+ 
+ 2024-05-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_util.adb (Find_Placement_In_State_Space): Stop search for
+ 	placement when reaching the public state of a generic package.
+ 
+ 2024-05-07  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Return_Subtype_Indication): Add missing check
+ 	on statically compatible subtypes.
+ 	* sem_eval.adb (Subtypes_Statically_Compatible): Ensure that both
+ 	types are either scalar types or access types to evaluate this
+ 	predicate.
+ 
+ 2024-05-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch13.adb (Resolve_Name): Clarify comment.
+ 
+ 2024-05-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch13.adb (Resolve_Name): This is called only for names in
+ 	aspect_specifications. If the name is an overloaded
+ 	selected_component, reset the Entity. Note that this was already
+ 	done for N_Identifier in the code just below.
+ 
+ 2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.adb (List_Record_Info.List_Structural_Record_Layout): Add
+ 	another guard for private types after retrieving the parent in the
+ 	extension case.
+ 
+ 2024-05-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_util.adb (Is_Volatile_Function): Return True on functions
+ 	with side effects.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Global_Item): Handle side-effect
+ 	functions like procedures.
+ 
+ 2024-05-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Collect_Global_Item): Update comment.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Collect_Global_Item): Handle functions with
+ 	side-effects.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Collect_Global_Item): Move code.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Find_Role): Handle functions with side-effects
+ 	like procedures.
+ 
+ 2024-05-06  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch6.adb
+ 	(Make_Build_In_Place_Iface_Call_In_Object_Declaration): Set the
+ 	Is_Return_Object flag on the entity of the temp object created to
+ 	hold the BIP call result, from the flag on the passed-in object
+ 	declaration's entity. Update copyright notice to 2024.
+ 
+ 2024-05-06  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch10.adb (Expand_With_Clause): Misc cleanup.
+ 	(Install_Private_With_Clauses): Avoid installing a private
+ 	with_clause that comes from an instantiated generic
+ 	(it is marked as Implicit_With, but doesn't come from a parent
+ 	with). Fix typo in comment, and other minor cleanups.
+ 
+ 2024-05-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Build_Default_Subtype): Tweak source location
+ 	information.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not call
+ 	Processing_Actions for simple protected objects if the profile is
+ 	restricted.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Do not return True for
+ 	simple protected objects if the profile is restricted.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* fe.h: Remove unused declarations and add 'extern' to others.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo-utils.adb (Is_Relaxed_Initialization_State): Remove.
+ 	* einfo-utils.ads (Is_Relaxed_Initialization_State): Remove.
+ 	* einfo.ads: Remove description of removed aspect.
+ 	* fe.h (Is_Relaxed_Initialization_State): Remove.
+ 	* sem_prag.adb (Analyze_Abstract_State): Remove support for
+ 	Relaxed_Initialization.
+ 	* sem_util.adb (Has_Relaxed_Initialization): Likewise.
+ 	* sem_util.ads (Has_Relaxed_Initialization): Likewise.
+ 
+ 2024-05-06  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb (Within_Postcondition): Add coverage for
+ 	Preconditions
+ 
+ 2024-05-06  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb (Within_Postcondition): Add/modify comments to
+ 	document various cases.
+ 
+ 2024-05-06  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb (Within_Postcondition): Renamed to
+ 	Within_Contract_Or_Predicate.
+ 
+ 2024-05-06  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb (Within_Postcondition): Add case to ignore
+ 	references within generated predicate function calls.
+ 
+ 2024-05-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* hostparm.ads: Fix reference to RM clause.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-finpri.ads (Finalize_Master): Remove obsolete reference
+ 	in the description.
+ 	(Finalize_Object): Document the effects of repeated calls.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Finalization_Master_Node_Or_Object): Rename into...
+ 	(Finalization_Master_Node): ...this and adjust description.
+ 	* exp_ch4.adb (Process_Transient_In_Expression): Attach the object
+ 	to its master node here.
+ 	* exp_ch7.ads (Attach_Object_To_Master_Node): New declaration.
+ 	* exp_ch7.adb (Attach_Object_To_Master_Node): New procedure.
+ 	(Build_Finalizer.Process_Declarations): Examine the type of a
+ 	variable to spot master nodes.
+ 	(Build_Finalizer.Process_Object_Declaration): Look only at the
+ 	object and deal specifically with the case of a master node.
+ 	(Build_Finalizer.Build_BIP_Cleanup_Stmts): Move to child function
+ 	of Attach_Object_To_Master_Node.
+ 	(Build_Finalizer.Make_Address_For_Finalize): Move to...
+ 	(Insert_Actions_In_Scope_Around.Process_Transient_In_Scope): Attach
+ 	the object to its master node here.
+ 	(Make_Address_For_Finalize): ...here.
+ 	(Make_Master_Node_Declaration): Adjust to above renaming and set
+ 	Finalization_Master_Node only on the object.
+ 	(Make_Suppress_Object_Finalize_Call): Adjust to above renaming and
+ 	attach the object to its master node here.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Examine the type of a
+ 	variable to spot master nodes.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming.
+ 	* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
+ 	* rtsfind.ads (RE_Id): Add RE_Chain_Node_To_Master.
+ 	(RE_Unit_Table): Add entry for  RE_Chain_Node_To_Master.
+ 	* libgnat/s-finpri.ads (Chain_Node_To_Master): New declaration.
+ 	* libgnat/s-finpri.adb (Chain_Node_To_Master): New procedure.
+ 	(Attach_Object_To_Master): Call it.
+ 	(Finalize_Master): Do not raise Program_Error on null addresses.
+ 	(Finalize_Object): Add assertion that the address is not null.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnarl/s-taprob.ads (Protection): Add cross-reference to the
+ 	counterpart in System.Tasking.Protected_Objects.Entries.
+ 	* libgnarl/s-taskin.ads (Locking Rules): Replace PO_Simple by
+ 	Protected_Objects.
+ 	* libgnarl/s-tpoben.ads (Protection_Entries): Likewise.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
+ 	Return 0 if the prefix is a dereference of an access value subject
+ 	to the No_Heap_Finalization pragma.
+ 
+ 2024-05-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_imgv.adb (Append_Table_To): Remove reference to removed
+ 	field.
+ 	* gen_il-fields.ads: Remove Is_Enum_Array_Aggregate field.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* sem_aggr.adb: Tweak warning emission condition.
+ 	* sinfo.ads: Remove documentation for Is_Enum_Array_Aggregate.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* make.adb (Scan_Make_Arg): Remove redundant condition.
+ 	* switch-b.adb (Scan_Debug_Switches): Likewise.
+ 	* switch-c.adb (Scan_Front_End_Switches): Likewise.
+ 
+ 2024-05-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard.
+ 
+ 2024-05-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Create_Packed_Array_Impl_Type): Set associated
+ 	node for the packed array itype.
+ 	* exp_util.adb (Possible_Side_Effect_In_SPARK): Remove
+ 	workaround for a missing associated node.
+ 
+ 2024-05-06  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): When changing the convention of
+ 	primitive to match that of the type, only do this for user-specified
+ 	primitives.
+ 
+ 2024-05-06  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_put_image.adb (Build_Image_Call): Call Set_Uses_Sec_Stack on
+ 	the current scope. We don't do this at all call sites, because
+ 	there are three; better to do it here.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute) <Attribute_Round>: Also accept it
+ 	for ordinary fixed point types.
+ 	* doc/gnat_rm/implementation_defined_attributes.rst (Round): New.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Use No instead of
+ 	not Present.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Adjust
+ 	the Sloc of the master node declaration in the degenerate case.
+ 
+ 2024-05-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Call_Can_Be_Inlined_In_GNATprove_Mode):
+ 	Add case to prevent inlining of call.
+ 	* inline.ads: Likewise.
+ 	* sem_res.adb (Resolve_Call): Update comment and message.
+ 
+ 2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-finpri$(objext).
+ 	* contracts.adb (Add_Call_Helper): Append freeze actions to the
+ 	class-wide type rather than the specific tagged type.
+ 	* einfo.ads (Finalization_Master_Node_Or_Node): Document.
+ 	(Status_Flag_Or_Transient_Decl): Remove.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Address>: Do not
+ 	adjust a return object of a class-wide interface type.
+ 	* exp_ch3.adb  (Expand_Freeze_Class_Wide_Type): Add test that
+ 	Finalize_Address is not already present as a condition for calling
+ 	Make_Finalize_Address_Body.
+ 	(Expand_Freeze_Record_Type): Call Make_Finalize_Address_Body for
+ 	class-wide types of both regular tagged types and interface types.
+ 	* exp_ch4.adb (Process_Transients_In_Expression): Replace the use
+ 	of hooks with the use of master nodes.
+ 	* exp_ch6.adb (Build_Flag_For_Function): Delete.
+ 	(Expand_N_Extended_Return_Statement): Create a master node for the
+ 	return object if it does not exist.  At the end of the statement,
+ 	generate a call to Suppress_Object_Finalize.
+ 	(Expand_Non_Function_Return): Likewise just before the return.
+ 	* exp_ch7.ads (Make_Master_Node_Declaration): Declare.
+ 	(Make_Suppress_Object_Finalize_Call): Likewise.
+ 	* exp_ch7.adb (Build_Finalization_Master): Defer generating the
+ 	call to Set_Finalize_Address until freezing if the Finalize_Address
+ 	procedure has not been analyzed yet.
+ 	(Build_Finalizer): Reimplement the expansion using a finalization
+ 	scope master per finalizer.
+ 	(Insert_Actions_In_Scope_Around): Replace finalization hooks by
+ 	master nodes and calls to the Finalize_Object.
+ 	(Make_Master_Node_Declaration): New procedure.
+ 	(Make_Suppress_Object_Finalize_Call): Likewise.
+ 	* exp_util.ads (Build_Transient_Object_Statements): Delete.
+ 	* exp_util.adb (Build_Transient_Object_Statements): Likewise.
+ 	(Requires_Cleanup_Actions): Remove obsolete code and return true
+ 	for master nodes.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add
+ 	Finalization_Master_Node_Or_Object and
+ 	remove Status_Flag_Or_Transient_Decl.
+ 	* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
+ 	* rtsfind.ads (RTU_Id): Add System_Finalization_Primitives.
+ 	(RE_Id): Add entities of System_Finalization_Primitives.
+ 	(RE_Unit_Table): Add entries for them.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): For an array whose type
+ 	has an unconstrained first subtype and a controlled component, set
+ 	the Is_Constr_Array_Subt_With_Bounds flag.
+ 	* libgnat/s-finpri.ads: New file.
+ 	* libgnat/s-finpri.adb: Likewise.
+ 
+ 2024-05-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Adapt checking.
+ 
+ 2024-04-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gnatvsn.ads: Bump Library_Version to 15.
+ 
+ 2024-04-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_aspects.rst
+ 	(Exceptional_Cases): Add description for aspect.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Exceptional_Cases): Add description for pragma.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-03-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113979
+ 	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
+ 	call Apply_Predicate_Check on the resulting access value if needed.
+ 
+ 2024-02-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113893
+ 	* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
+ 	for a local designated type.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
+ 	to false if no finalization master is attached to an access type
+ 	and assert that it is anonymous in this case.
+ 	* sem_res.adb (Resolve_Allocator): Mention that the object might
+ 	not be finalized at all in the warning given when the type is an
+ 	anonymous access-to-controlled type.
+ 
+ 2024-01-23  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gnatvsn.ads: Update year.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
+ 	TYPE_CANONICAL of types when it comes to aliasing.
+ 	* gcc-interface/utils.cc (relate_alias_sets): Likewise.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
+ 	separate FLD local variable to hold the first field of the fat
+ 	pointer type being built.
+ 	* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
+ 	the first two parameters.
+ 	* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.
+ 
+ 2024-01-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_attr.adb: avoid marking a use of the Address attribute
+ 	as a modification of its prefix.
+ 
+ 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
+ 	tests to tests using "No" (in two places).
+ 
+ 2024-01-09  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Type): Make the relevant error message
+ 	conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
+ 	cleanup.
+ 
+ 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
+ 	whether the aggregate is an indexed aggregate, setting a flag
+ 	(Is_Indexed_Aggregate), which is tested to have proper separation
+ 	of treatment for the Add_Unnamed
+ 	(for positional aggregates) and New_Indexed (for indexed
+ 	aggregates) cases. In the code generating associations for indexed
+ 	aggregates, remove the code for Expressions cases entirely, since
+ 	the code for indexed aggregates is governed by the presence of
+ 	Component_Associations, and add an assertion that Expressions must
+ 	be Empty. Also, exclude empty aggregates from entering that code.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* rtsfind.ads (RE_Id): Remove RE_Attach.
+ 	(RE_Unit_Table): Likewise.
+ 	* libgnat/s-finmas.ads (Attach): Delete.
+ 	* libgnat/s-finmas.adb (Attach): Likewise.
+ 
+ 2024-01-09  Tucker Taft  <taft@adacore.com>
+ 
+ 	* pprint.adb (List_Name): Check for "Box_Present" when displaying
+ 	a list, and emit "<>" if returns True.
+ 	* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
+ 	parameter is from a package that was mentioned in a limited with
+ 	clause, and make no further checks, since this check routine does
+ 	not have all the logic to check such a usage.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
+ 	with itypes that are class-wide subtypes.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
+ 	(Atomic_Store_8): New instantiated procedure.
+ 	(Atomic_Store_16): Likewise.
+ 	(Atomic_Store_32): Likewise.
+ 	(Atomic_Store_64): Likewise.
+ 	* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
+ 	(Atomic_Store_8): New instantiated procedure.
+ 	(Atomic_Store_16): Likewise.
+ 	(Atomic_Store_32): Likewise.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
+ 	support for __atomic_store_n and __sync_bool_compare_and_swap_n.
+ 	* gcc-interface/gigi.h (list_second): New inline function.
+ 
+ 2024-01-09  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
+ 	the type of the formals with its corresponding record in
+ 	init-procs.
+ 	* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
+ 	a procedure that denotes a renaming of an entry.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
+ 	itype declarations.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
+ 	flag by default in GNATprove mode.
+ 	* sem_res.adb (Resolve_Call): Only look at flag which is cleared
+ 	when inlined subprogram is detected to be recursive.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
+ 	Remove detection of recursive calls.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
+ 	dead code.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
+ 	* sem_ch8.adb (Find_Direct_Name): Likewise.
+ 
+ 2024-01-09  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb (Enclosing_Declaration): Instead of returning a
+ 	subprogram specification node, return its parent (which is
+ 	presumably a subprogram declaration).
+ 	* contracts.adb (Insert_Stable_Property_Check): Remove code
+ 	formerly needed to compensate for incorrect behavior of
+ 	Sem_Util.Enclosing_Declaration.
+ 	* exp_attr.adb (In_Available_Context): Remove code formerly needed
+ 	to compensate for incorrect behavior of
+ 	Sem_Util.Enclosing_Declaration.
+ 	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
+ 	needed to compensate for incorrect behavior of
+ 	Sem_Util.Enclosing_Declaration.
+ 
+ 2024-01-09  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch8.adb (Check_Constrained_Object): Before updating the
+ 	subtype mark of an object renaming declaration by calling Rewrite,
+ 	first check whether the destination of the Rewrite call exists.
+ 	* atree.adb (Copy_Slots): Return without performing any updates if
+ 	Destination equals Empty or Error, or if Source equals Empty. Any
+ 	of those conditions indicates an error case.
+ 	* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
+ 	errors.
+ 	* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
+ 	not pass Error as destination in a call to Rewrite.
+ 	(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
+ 	or Empty as destination in a call to Rewrite.
+ 
+ 2024-01-09  Joffrey Huguet  <huguet@adacore.com>
+ 
+ 	* libgnat/i-cstrin.ads (Update): Fix precondition.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
+ 	call to Transform_BIP_Assignment as well as the procedure.
+ 
+ 2024-01-09  Bob Duff  <duff@adacore.com>
+ 
+ 	* lib-xref.adb (Generate_Reference): Do not count it as a read
+ 	reference if we're calling a TSS.
+ 
+ 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_aspects.rst,
+ 	doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
+ 	Always_Terminates.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/78207
+ 	* libgnat/g-regexp.ads: Fix outdated comment.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112781
+ 	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
+ 	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
+ 	(Is_Function_Call_With_BIP_Formals): New predicate.
+ 	(Is_Build_In_Place_Function_Call): Restore original semantics.
+ 	(Expand_Call_Helper): Adjust conditions guarding the calls to
+ 	Add_Dummy_Build_In_Place_Actuals to above renaming.
+ 	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
+ 	(Expand_Simple_Function_Return): Likewise.  Move the assertion
+ 	to after the transformation into an extended return statement.
+ 	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
+ 	(Make_Build_In_Place_Call_In_Assignment): Likewise.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112781
+ 	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
+ 	consistently to retrieve the ancestor for a derived type.
+ 	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
+ 	consistently before accessing Designated_Type.
+ 
+ 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
+ 	assertion for regular pointer types.
+ 
+ 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/lang.opt.urls: New file, autogenerated by
+ 	regenerate-opt-urls.py.
+ 
+ 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gnat_ugn.texi: Bump @copying's copyright year.
+ 	* gnat_rm.texi: Likewise.
+ 
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff -Nrcpad gcc-14.2.0/gcc/ada/Makefile.rtl gcc-15.1.0/gcc/ada/Makefile.rtl
*** gcc-14.2.0/gcc/ada/Makefile.rtl	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/Makefile.rtl	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2024, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2025, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** ifndef ADAC
*** 26,31 ****
--- 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) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 120,127 ****
    a-chlat9$(objext) \
    a-chtgbk$(objext) \
    a-chtgbo$(objext) \
-   a-chtgfk$(objext) \
-   a-chtgfo$(objext) \
    a-chtgke$(objext) \
    a-chtgop$(objext) \
    a-chzla1$(objext) \
--- 126,131 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 596,602 ****
    s-ficobl$(objext) \
    s-filatt$(objext) \
    s-fileio$(objext) \
!   s-finmas$(objext) \
    s-finroo$(objext) \
    s-flocon$(objext) \
    s-fode32$(objext) \
--- 600,606 ----
    s-ficobl$(objext) \
    s-filatt$(objext) \
    s-fileio$(objext) \
!   s-finpri$(objext) \
    s-finroo$(objext) \
    s-flocon$(objext) \
    s-fode32$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 611,616 ****
--- 615,623 ----
    s-geveop$(objext) \
    s-gloloc$(objext) \
    s-htable$(objext) \
+   s-imad32$(objext) \
+   s-imad64$(objext) \
+   s-imagea$(objext) \
    s-imageb$(objext) \
    s-imaged$(objext) \
    s-imagef$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 652,657 ****
--- 659,665 ----
    s-multip$(objext) \
    s-os_lib$(objext) \
    s-oscons$(objext) \
+   s-oslock$(objext) \
    s-osprim$(objext) \
    s-pack03$(objext) \
    s-pack05$(objext) \
*************** a-intnam.ads<libgnarl/a-intnam__dummy.ad
*** 831,836 ****
--- 839,845 ----
  s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
  s-intman.adb<libgnarl/s-intman__dummy.adb \
  s-osinte.ads<libgnarl/s-osinte__dummy.ads \
+ s-oslock.ads<libgnat/s-oslock__dummy.ads \
  s-osprim.adb<libgnat/s-osprim__posix.adb \
  s-taprop.adb<libgnarl/s-taprop__dummy.adb \
  s-taspri.ads<libgnarl/s-taspri__dummy.ads
*************** GCC_SPEC_FILES=
*** 1074,1082 ****
--- 1083,1103 ----
  # $(strip STRING) removes leading and trailing spaces from STRING.
  # If what's left is null then it's a match.
  
+ # Setup to make sure at most one match gets selected, useful for android
+ # targets which are canonically configured with a linux-android target_os,
+ # which would match filtering patterns such as linux% intended to match
+ # only regular linux or linux64 variants.
+ 
+ # The current set of selected pairs.  A new match remains allowed
+ # as long as this isn't assigned a new value.
+ SELECTED_PAIRS=PAIRS_NONE
+ 
  # PowerPC VxWorks6 and VxWorks7
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
  
+   SELECTED_PAIRS=powerpc-vxworks
+ 
    ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
       ARCH_STR=ppc64
    else
*************** ifeq ($(strip $(filter-out powerpc% wrs
*** 1097,1102 ****
--- 1118,1124 ----
    s-intman.adb<libgnarl/s-intman__vxworks.adb \
    s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
    s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
+   s-oslock.ads<libgnat/s-oslock__vxworks.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-parame.ads<libgnat/s-parame__vxworks.ads \
    s-parame.adb<libgnat/s-parame__vxworks.adb \
*************** ifeq ($(strip $(filter-out powerpc% wrs
*** 1141,1146 ****
--- 1163,1169 ----
      else
        ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
          LIBGNAT_TARGET_PAIRS += \
+         s-interr.ads<libgnarl/s-interr__vxworks.ads \
          s-interr.adb<libgnarl/s-interr__vxworks.adb \
          s-mudido.adb<libgnarl/s-mudido__affinity.adb \
          s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
*************** ifeq ($(strip $(filter-out powerpc% wrs
*** 1152,1157 ****
--- 1175,1181 ----
        else
          ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
            LIBGNAT_TARGET_PAIRS += \
+           s-interr.ads<libgnarl/s-interr__vxworks.ads \
            s-interr.adb<libgnarl/s-interr__vxworks.adb \
            s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
            s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
*************** ifeq ($(strip $(filter-out powerpc% wrs
*** 1161,1167 ****
            RTSERR = $(error NO SUCH RUNTIME)
          endif
        endif
!       EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
      endif
    endif
  
--- 1185,1191 ----
            RTSERR = $(error NO SUCH RUNTIME)
          endif
        endif
!       EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxwork.o i-vxwoio.o
      endif
    endif
  
*************** ifeq ($(strip $(filter-out powerpc% wrs
*** 1183,1192 ****
--- 1207,1220 ----
      GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
    endif
  endif
+ endif
  
  # x86/x86_64 VxWorks7
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
  
+   SELECTED_PAIRS=x86-vxworks7
+ 
    LIBGNAT_TARGET_PAIRS= \
    a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
    i-vxwork.ads<libgnat/i-vxwork__x86.ads \
*************** ifeq ($(strip $(filter-out %86 x86_64 wr
*** 1198,1203 ****
--- 1226,1232 ----
    s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
    s-intman.ads<libgnarl/s-intman__vxworks.ads \
    s-intman.adb<libgnarl/s-intman__vxworks.adb \
+   s-oslock.ads<libgnat/s-oslock__vxworks.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-parame.ads<libgnat/s-parame__vxworks.ads \
    s-parame.adb<libgnat/s-parame__vxworks.adb \
*************** ifeq ($(strip $(filter-out %86 x86_64 wr
*** 1266,1271 ****
--- 1295,1301 ----
    else
      ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
        LIBGNAT_TARGET_PAIRS += \
+       s-interr.ads<libgnarl/s-interr__vxworks.ads \
        s-interr.adb<libgnarl/s-interr__vxworks.adb \
        s-mudido.adb<libgnarl/s-mudido__affinity.adb \
        s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
*************** ifeq ($(strip $(filter-out %86 x86_64 wr
*** 1278,1284 ****
        RTSERR = $(error NO SUCH RUNTIME)
      endif
  
!     EXTRA_GNATRTL_NONTASKING_OBJS += i-vxinco.o i-vxwork.o i-vxwoio.o
    endif
  
    EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
--- 1308,1314 ----
        RTSERR = $(error NO SUCH RUNTIME)
      endif
  
!     EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o
    endif
  
    EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
*************** ifeq ($(strip $(filter-out %86 x86_64 wr
*** 1291,1311 ****
--- 1321,1347 ----
  
    GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
  endif
+ endif
  
  # ARM and Aarch64 VxWorks7
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
  
+   SELECTED_PAIRS=arm-vxworks7
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
    a-naliop.ads<libgnat/a-naliop__nolibm.ads \
    a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
    a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
    s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
+   s-interr.ads<libgnarl/s-interr__vxworks.ads \
    s-interr.adb<libgnarl/s-interr__vxworks.adb \
    s-intman.ads<libgnarl/s-intman__vxworks.ads \
    s-intman.adb<libgnarl/s-intman__vxworks.adb \
    s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
    s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
+   s-oslock.ads<libgnat/s-oslock__vxworks.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-parame.ads<libgnat/s-parame__vxworks.ads \
    s-parame.adb<libgnat/s-parame__vxworks.adb \
*************** ifeq ($(strip $(filter-out aarch64 arm w
*** 1370,1395 ****
    endif
  
    EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
!   EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
  
    EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
  
    GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
  endif
  
- # ARM android
- ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__android.adb \
-   s-linux.ads<libgnarl/s-linux__android.ads \
    s-osinte.adb<libgnarl/s-osinte__android.adb \
    s-osinte.ads<libgnarl/s-osinte__android.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
--- 1406,1435 ----
    endif
  
    EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
!   EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
  
    EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
  
    GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
  endif
+ endif
+ 
+ # ARM and AARCH64 Android
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
+ ifeq ($(strip $(filter-out arm% aarch64 linux-android%,$(target_cpu) $(target_os))),)
  
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__android.adb \
    s-osinte.adb<libgnarl/s-osinte__android.adb \
    s-osinte.ads<libgnarl/s-osinte__android.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
*************** ifeq ($(strip $(filter-out arm% linux-an
*** 1397,1412 ****
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
!   EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
!   EXTRA_LIBGNAT_SRCS+=sigtramp.h
!   EH_MECHANISM=-arm
    THREADSLIB =
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
  
  # ARM and AARCH64 QNX
  ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__qnx.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
--- 1437,1478 ----
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
! 
!   # ARM and aarch64 rely on different unwinding mechanisms, and as
!   # a 64bit target, aarch64 can also incorporate support for 128bit
!   # arithmetic.
! 
!   ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
!      SELECTED_PAIRS=arm-android
! 
!      EH_MECHANISM=-arm
!      LIBGNAT_TARGET_PAIRS += \
!        s-linux.ads<libgnarl/s-linux__android-arm.ads
!   else
!      SELECTED_PAIRS=aarch64-android
! 
!      EH_MECHANISM=-gcc
!      LIBGNAT_TARGET_PAIRS += \
!        s-linux.ads<libgnarl/s-linux__android-aarch64.ads
! 
!      LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
!      EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
!   endif
! 
!   EXTRA_LIBGNAT_OBJS+=sigtramp-android.o
!   EXTRA_LIBGNAT_SRCS+=sigtramp.h sigtramp-android-asm.h
    THREADSLIB =
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # ARM and AARCH64 QNX
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=arm-qnx
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__qnx.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out arm aarch64 %
*** 1414,1419 ****
--- 1480,1486 ----
    s-intman.adb<libgnarl/s-intman__qnx.adb \
    s-osinte.adb<libgnarl/s-osinte__qnx.adb \
    s-osinte.ads<libgnarl/s-osinte__qnx.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-qnx.ads<libgnarl/s-qnx.ads \
    s-taprop.adb<libgnarl/s-taprop__qnx.adb \
*************** ifeq ($(strip $(filter-out arm aarch64 %
*** 1439,1445 ****
       LIBGNAT_TARGET_PAIRS += \
         s-dorepr.adb<libgnat/s-dorepr__fma.adb
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
!      EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
    endif
    GNATLIB_SHARED = gnatlib-shared-dual
    EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
--- 1506,1512 ----
       LIBGNAT_TARGET_PAIRS += \
         s-dorepr.adb<libgnat/s-dorepr__fma.adb
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
!      EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
    endif
    GNATLIB_SHARED = gnatlib-shared-dual
    EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
*************** ifeq ($(strip $(filter-out arm aarch64 %
*** 1450,1458 ****
--- 1517,1530 ----
    THREADSLIB=
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # SPARC Solaris
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=sparc-solaris
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__solaris.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out sparc% sun so
*** 1461,1466 ****
--- 1533,1539 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__solaris.adb \
    s-osinte.ads<libgnarl/s-osinte__solaris.ads \
+   s-oslock.ads<libgnat/s-oslock__solaris.ads \
    s-osprim.adb<libgnat/s-osprim__solaris.adb \
    s-taprop.adb<libgnarl/s-taprop__solaris.adb \
    s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
*************** ifeq ($(strip $(filter-out sparc% sun so
*** 1494,1502 ****
--- 1567,1580 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # x86 and x86-64 Solaris
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86-solaris
+ 
    LIBGNAT_TARGET_PAIRS_COMMON = \
    a-intnam.ads<libgnarl/a-intnam__solaris.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out %86 %x86_64 s
*** 1504,1509 ****
--- 1582,1588 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__solaris.adb \
    s-osinte.ads<libgnarl/s-osinte__solaris.ads \
+   s-oslock.ads<libgnat/s-oslock__solaris.ads \
    s-osprim.adb<libgnat/s-osprim__solaris.adb \
    s-taprop.adb<libgnarl/s-taprop__solaris.adb \
    s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
*************** ifeq ($(strip $(filter-out %86 %x86_64 s
*** 1547,1555 ****
--- 1626,1639 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # x86 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-synbar.adb<libgnarl/a-synbar__posix.adb \
*************** ifeq ($(strip $(filter-out %86 linux%,$(
*** 1577,1582 ****
--- 1661,1667 ----
    LIBGNAT_TARGET_PAIRS += \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out %86 linux%,$(
*** 1598,1612 ****
  
    GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
  endif
  
  # x86 kfreebsd
  ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
--- 1683,1703 ----
  
    GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
  endif
+ endif
  
  # x86 kfreebsd
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86-kfreebsd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
*************** ifeq ($(strip $(filter-out %86 kfreebsd%
*** 1628,1653 ****
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
  
  # i[3456]86-pc-gnu i.e. GNU Hurd
  ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__gnu.adb \
    s-osinte.ads<libgnarl/s-osinte__gnu.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_TARGET_PAIRS) \
!   system.ads<libgnat/system-freebsd.ads
  
!   TOOLS_TARGET_PAIRS =  indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
  
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
--- 1719,1752 ----
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
+ endif
  
  # i[3456]86-pc-gnu i.e. GNU Hurd
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86-gnuhurd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__gnu.adb \
    s-osinte.ads<libgnarl/s-osinte__gnu.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_TARGET_PAIRS) \
!   system.ads<libgnat/system-gnu.ads
  
!   TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
  
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out %86 pc gnu,$(
*** 1655,1678 ****
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
  
  ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_64_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
    system.ads<libgnat/system-freebsd.ads
  
!   EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
--- 1754,1786 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
+ # x86-64 kfreebsd
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86_64-kfreebsd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_64_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
    system.ads<libgnat/system-freebsd.ads
  
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
*************** ifeq ($(strip $(filter-out x86_64 kfreeb
*** 1682,1709 ****
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
  
  # aarch64 FreeBSD
  ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
    s-dorepr.adb<libgnat/s-dorepr__fma.adb \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
-   s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
!   s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
    system.ads<libgnat/system-freebsd.ads
  
!   EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
  
    GNATLIB_SHARED = gnatlib-shared-dual
  
--- 1790,1873 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
+ 
+ # x86_64-pc-gnu i.e. GNU Hurd
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
+ ifeq ($(strip $(filter-out x86_64 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86_64-gnuhurd
+ 
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
+   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
+   s-intman.adb<libgnarl/s-intman__posix.adb \
+   s-osinte.adb<libgnarl/s-osinte__gnu.adb \
+   s-osinte.ads<libgnarl/s-osinte__gnu.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
+   s-osprim.adb<libgnat/s-osprim__posix.adb \
+   s-taprop.adb<libgnarl/s-taprop__posix.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(X86_64_TARGET_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
+   system.ads<libgnat/system-gnu.ads
+ 
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
+   TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
+ 
+   EH_MECHANISM=-gcc
+   THREADSLIB = -lpthread
+   GNATLIB_SHARED = gnatlib-shared-dual
+   GMEM_LIB = gmemlib
+   LIBRARY_VERSION := $(LIB_VERSION)
+ endif
+ endif
  
  # aarch64 FreeBSD
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=aarch64-freebsd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
    s-dorepr.adb<libgnat/s-dorepr__fma.adb \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
!   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
    system.ads<libgnat/system-freebsd.ads
  
!   # Morello CheriBSD
!   ifneq (,$(findstring morello,$(target_alias)))
!     LIBGNAT_TARGET_PAIRS += \
!     s-intman.adb<libgnarl/s-intman__cheribsd.adb \
!     s-osinte.ads<libgnarl/s-osinte__cheribsd.ads \
!     s-secsta.adb<libgnat/s-secsta__cheri.adb
! 
!     EXTRA_GNATRTL_NONTASKING_OBJS += i-cheri.o i-cheri-exceptions.o
!   else
!     LIBGNAT_TARGET_PAIRS += \
!     s-intman.adb<libgnarl/s-intman__posix.adb \
!     s-osinte.ads<libgnarl/s-osinte__freebsd.ads
!   endif
! 
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
  
    GNATLIB_SHARED = gnatlib-shared-dual
  
*************** ifeq ($(strip $(filter-out %aarch64 free
*** 1713,1728 ****
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
  
  # x86 FreeBSD
  ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
    s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
--- 1877,1898 ----
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
+ endif
  
  # x86 FreeBSD
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86-freebsd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
    s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
*************** ifeq ($(strip $(filter-out %86 freebsd%,
*** 1743,1758 ****
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
  
  # x86-64 FreeBSD
  ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
    s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
--- 1913,1934 ----
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
+ endif
  
  # x86-64 FreeBSD
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86_64-freebsd
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
    s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
*************** ifeq ($(strip $(filter-out %86_64 freebs
*** 1775,1794 ****
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
  
  # x86-64 DragonFly
  ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
    s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_64_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
--- 1951,1977 ----
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
+ endif
  
  # x86-64 DragonFly
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86_64-dragonfly
+ 
    LIBGNAT_TARGET_PAIRS = \
!   a-intnam.ads<libgnarl/a-intnam__bsd.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
    s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_64_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
*************** ifeq ($(strip $(filter-out %86_64 dragon
*** 1798,1803 ****
--- 1981,1987 ----
  
    EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
    EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
  
    EH_MECHANISM=-gcc
    THREADSLIB= -lpthread
*************** ifeq ($(strip $(filter-out %86_64 dragon
*** 1805,1813 ****
--- 1989,2002 ----
    LIBRARY_VERSION := $(LIB_VERSION)
    MISCLIB = -lutil
  endif
+ endif
  
  # S390 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=s390-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out s390% linux%,
*** 1816,1827 ****
--- 2005,2019 ----
    s-linux.ads<libgnarl/s-linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-s390.ads
  
    ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
*************** ifeq ($(strip $(filter-out s390% linux%,
*** 1838,1872 ****
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
- 
- # HP/PA HP-UX 10
- ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
-   LIBGNAT_TARGET_PAIRS = \
-   a-intnam.ads<libgnarl/a-intnam__hpux.ads \
-   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
-   s-interr.adb<libgnarl/s-interr__sigaction.adb \
-   s-intman.adb<libgnarl/s-intman__posix.adb \
-   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
-   s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
-   s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
-   s-parame.ads<libgnat/s-parame__hpux.ads \
-   s-osprim.adb<libgnat/s-osprim__posix.adb \
-   s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
-   s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
-   s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
-   system.ads<libgnat/system-hpux.ads
- 
-   EH_MECHANISM=-gcc
  endif
  
  # HP/PA HP-UX 11
  ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__hpux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
--- 2030,2051 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
  endif
  
  # HP/PA HP-UX 11
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=hppa-hpux11
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__hpux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out hppa% hp hpux
*** 1875,1880 ****
--- 2054,2060 ----
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__hpux.ads \
    s-parame.ads<libgnat/s-parame__hpux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-traceb.adb<libgnat/s-traceb__hpux.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
*************** ifeq ($(strip $(filter-out hppa% hp hpux
*** 1891,1905 ****
--- 2071,2091 ----
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # IBM AIX
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=ibm-aix
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__aix.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__aix.adb \
    s-osinte.ads<libgnarl/s-osinte__aix.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
*************** ifeq ($(strip $(filter-out ibm aix%,$(ta
*** 1927,1935 ****
--- 2113,2126 ----
  
    GMEM_LIB = gmemlib
  endif
+ endif
  
  # LynxOS 178 and LynxOS 178 Elf
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
+ 
+   SELECTED_PAIRS=lynx178
+ 
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
    LIBGNAT_TARGET_PAIRS = \
*************** ifeq ($(strip $(filter-out lynxos178%,$(
*** 1941,1946 ****
--- 2132,2138 ----
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__lynxos.adb \
    s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.ads<libgnat/s-osprim__lynxos.ads \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
*************** ifeq ($(strip $(filter-out lynxos178%,$(
*** 1963,1971 ****
--- 2155,2168 ----
  
    EH_MECHANISM=-gcc
  endif
+ endif
  
  # RTEMS
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out rtems%,$(target_os))),)
+ 
+   SELECTED_PAIRS=rtems
+ 
    LIBGNAT_TARGET_PAIRS = \
    system.ads<libgnat/system-rtems.ads \
    a-intnam.ads<libgnarl/a-intnam__rtems.ads \
*************** ifeq ($(strip $(filter-out rtems%,$(targ
*** 1974,1979 ****
--- 2171,2177 ----
    s-intman.ads<libgnarl/s-intman__rtems.ads \
    s-osinte.adb<libgnarl/s-osinte__rtems.adb \
    s-osinte.ads<libgnarl/s-osinte__rtems.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__rtems.adb \
    s-parame.adb<libgnat/s-parame__rtems.adb \
    s-parame.ads<libgnat/s-parame__posix2008.ads \
*************** ifeq ($(strip $(filter-out rtems%,$(targ
*** 2006,2011 ****
--- 2204,2210 ----
         $(ATOMICS_BUILTINS_TARGET_PAIRS)
    endif
  endif
+ endif
  
  # PikeOS
  ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
*************** ifeq ($(strip $(filter-out elf eabi eabi
*** 2017,2023 ****
--- 2216,2226 ----
    TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
  endif
  
+ # gjgpp
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
+ 
+   SELECTED_PAIRS=djgpp
    GNATRTL_SOCKETS_OBJS =
  
    LIBGNAT_TARGET_PAIRS = \
*************** ifeq ($(strip $(filter-out %djgpp,$(targ
*** 2033,2041 ****
--- 2236,2249 ----
  
    EH_MECHANISM=-gcc
  endif
+ endif
  
  # Cygwin/Mingw32
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
+ 
+   SELECTED_PAIRS=cygming
+ 
    # Cygwin provides a full Posix environment, and so we use the default
    # versions g-socthi rather than the Windows-specific MinGW version.
    # Ideally we would use all the default versions for Cygwin and none
*************** ifeq ($(strip $(filter-out cygwin% mingw
*** 2075,2080 ****
--- 2283,2289 ----
    s-intman.adb<libgnarl/s-intman__mingw.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__mingw.ads \
+   s-oslock.ads<libgnat/s-oslock__mingw.ads \
    s-osprim.adb<libgnat/s-osprim__mingw.adb \
    s-taprop.adb<libgnarl/s-taprop__mingw.adb
  
*************** ifeq ($(strip $(filter-out cygwin% mingw
*** 2119,2127 ****
--- 2328,2341 ----
    soext = .dll
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # LoongArch Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=loongarch-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out loongarch% li
*** 2135,2140 ****
--- 2349,2355 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out loongarch% li
*** 2143,2150 ****
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    g-sercom.adb<libgnat/g-sercom__linux.adb \
    $(TRASYM_DWARF_UNIX_PAIRS) \
-   $(GNATRTL_128BIT_PAIRS) \
    s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-loongarch.ads
--- 2358,2365 ----
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    g-sercom.adb<libgnat/g-sercom__linux.adb \
    $(TRASYM_DWARF_UNIX_PAIRS) \
    s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+   $(GNATRTL_128BIT_PAIRS) \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-loongarch.ads
*************** ifeq ($(strip $(filter-out loongarch% li
*** 2167,2176 ****
    GNATLIBCFLAGS += -mno-strict-align
    GNATLIBCFLAGS_FOR_C += -mno-strict-align
  endif
! 
  
  # Mips Linux
  ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
--- 2382,2395 ----
    GNATLIBCFLAGS += -mno-strict-align
    GNATLIBCFLAGS_FOR_C += -mno-strict-align
  endif
! endif
  
  # Mips Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=mips-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out mips% linux%,
*** 2179,2190 ****
--- 2398,2412 ----
    s-linux.ads<libgnarl/s-linux__mips.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-mips.ads
  
    ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
*************** ifeq ($(strip $(filter-out mips% linux%,
*** 2201,2206 ****
--- 2423,2430 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out mips% linux%,
*** 2208,2216 ****
--- 2432,2445 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # PowerPC and e500v2 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=powerpc-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out powerpc% linu
*** 2226,2231 ****
--- 2455,2461 ----
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out powerpc% linu
*** 2265,2273 ****
--- 2495,2508 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # ARM linux, GNU eabi
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=arm-linux-gnueabi
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out arm% linux-gn
*** 2275,2280 ****
--- 2510,2516 ----
    s-linux.ads<libgnarl/s-linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out arm% linux-gn
*** 2282,2287 ****
--- 2518,2524 ----
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
*************** ifeq ($(strip $(filter-out arm% linux-gn
*** 2296,2304 ****
--- 2533,2546 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # AArch64 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=aarch64-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out aarch64% linu
*** 2310,2326 ****
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-linux.ads<libgnarl/s-linux.ads \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
-   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
--- 2552,2570 ----
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-linux.ads<libgnarl/s-linux.ads \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
+   s-parame.adb<libgnat/s-parame__aarch64-linux.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
*************** ifeq ($(strip $(filter-out aarch64% linu
*** 2328,2335 ****
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) \
! 				   $(TRASYM_DWARF_UNIX_OBJS)
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
--- 2572,2579 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
*************** ifeq ($(strip $(filter-out aarch64% linu
*** 2338,2346 ****
--- 2582,2595 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # SPARC Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=sparc-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out sparc% linux%
*** 2349,2360 ****
--- 2598,2612 ----
    s-linux.ads<libgnarl/s-linux__sparc.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-sparc.ads
  
    ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
*************** ifeq ($(strip $(filter-out sparc% linux%
*** 2375,2380 ****
--- 2627,2634 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out sparc% linux%
*** 2382,2390 ****
--- 2636,2649 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # HP/PA Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=hppa-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out hppa% linux%,
*** 2392,2407 ****
--- 2651,2671 ----
    s-linux.ads<libgnarl/s-linux__hppa.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-hppa.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out hppa% linux%,
*** 2409,2417 ****
--- 2673,2686 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # M68K Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=m68k-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out m68k% linux%,
*** 2419,2434 ****
--- 2688,2708 ----
    s-linux.ads<libgnarl/s-linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-m68k.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out m68k% linux%,
*** 2436,2444 ****
--- 2710,2723 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # SH4 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=sh4-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
*************** ifeq ($(strip $(filter-out sh4% linux%,$
*** 2446,2461 ****
--- 2725,2745 ----
    s-linux.ads<libgnarl/s-linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-sh4.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    MISCLIB=
*************** ifeq ($(strip $(filter-out sh4% linux%,$
*** 2464,2472 ****
--- 2748,2761 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # IA64 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=ia64-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out %ia64 linux%,
*** 2481,2486 ****
--- 2770,2776 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out %ia64 linux%,
*** 2506,2514 ****
--- 2796,2809 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # IA64 HP-UX
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
+ 
+   SELECTED_PAIRS=ia64-hpux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__hpux.ads \
    s-dorepr.adb<libgnat/s-dorepr__fma.adb \
*************** ifeq ($(strip $(filter-out ia64% hp hpux
*** 2516,2521 ****
--- 2811,2817 ----
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__hpux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
*************** ifeq ($(strip $(filter-out ia64% hp hpux
*** 2538,2546 ****
--- 2834,2847 ----
    SO_OPTS = -Wl,+h,
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # Alpha Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=alpha-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out alpha% linux%
*** 2549,2560 ****
--- 2850,2864 ----
    s-linux.ads<libgnarl/s-linux__alpha.ads \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    $(GNATRTL_128BIT_PAIRS) \
*************** ifeq ($(strip $(filter-out alpha% linux%
*** 2562,2568 ****
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    MISCLIB=
--- 2866,2873 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
!   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    MISCLIB=
*************** ifeq ($(strip $(filter-out alpha% linux%
*** 2570,2578 ****
--- 2875,2888 ----
    GNATLIB_SHARED=gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # x86-64 Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x86_64-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out %x86_64 linux
*** 2585,2590 ****
--- 2895,2901 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
*************** ifeq ($(strip $(filter-out %x86_64 linux
*** 2615,2622 ****
--- 2926,2939 ----
  
    GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
  endif
+ endif
  
+ # x32-linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=x32-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-exetim.adb<libgnarl/a-exetim__posix.adb \
    a-exetim.ads<libgnarl/a-exetim__default.ads \
*************** ifeq ($(strip $(filter-out %x32 linux%,$
*** 2629,2634 ****
--- 2946,2952 ----
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__x32.adb \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__x32.adb \
    s-parame.ads<libgnat/s-parame__posix2008.ads \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
*************** ifeq ($(strip $(filter-out %x32 linux%,$
*** 2656,2664 ****
--- 2974,2987 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # RISC-V Linux
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
+ 
+   SELECTED_PAIRS=riscv-linux
+ 
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
*************** ifeq ($(strip $(filter-out riscv% linux%
*** 2668,2679 ****
--- 2991,3005 ----
    s-linux.ads<libgnarl/s-linux__riscv.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
    s-taprop.adb<libgnarl/s-taprop__linux.adb \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    system.ads<libgnat/system-linux-riscv.ads
  
    ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
*************** ifeq ($(strip $(filter-out riscv% linux%
*** 2690,2695 ****
--- 3016,3023 ----
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ 
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
*************** ifeq ($(strip $(filter-out riscv% linux%
*** 2697,2711 ****
--- 3025,3045 ----
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
+ endif
  
  # Darwin (Mac OS X)
+ ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
  ifeq ($(strip $(filter-out darwin%,$(target_os))),)
+ 
+   SELECTED_PAIRS=darwin
+ 
    SO_OPTS = -shared-libgcc
    LIBGNAT_TARGET_PAIRS = \
      a-intnam.ads<libgnarl/a-intnam__darwin.ads \
      s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
      s-osinte.adb<libgnarl/s-osinte__darwin.adb \
      s-osinte.ads<libgnarl/s-osinte__darwin.ads \
+     s-oslock.ads<libgnat/s-oslock__posix.ads \
      s-taprop.adb<libgnarl/s-taprop__posix.adb \
      s-taspri.ads<libgnarl/s-taspri__posix.ads \
      g-sercom.adb<libgnat/g-sercom__linux.adb \
*************** ifeq ($(strip $(filter-out darwin%,$(tar
*** 2814,2826 ****
    soext = .dylib
    GCC_LINK_FLAGS=-static-libstdc++
  endif
  
  ifeq ($(EH_MECHANISM),-gcc)
    LIBGNAT_TARGET_PAIRS += \
      s-excmac.ads<libgnat/s-excmac__gcc.ads \
      s-excmac.adb<libgnat/s-excmac__gcc.adb
    EXTRA_LIBGNAT_OBJS+=raise-gcc.o
!   EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
  endif
  
  ifeq ($(EH_MECHANISM),-arm)
--- 3148,3166 ----
    soext = .dylib
    GCC_LINK_FLAGS=-static-libstdc++
  endif
+ endif
  
  ifeq ($(EH_MECHANISM),-gcc)
    LIBGNAT_TARGET_PAIRS += \
      s-excmac.ads<libgnat/s-excmac__gcc.ads \
      s-excmac.adb<libgnat/s-excmac__gcc.adb
    EXTRA_LIBGNAT_OBJS+=raise-gcc.o
! ifeq ($(LLVM_BUILD),)
!   EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o \
!     g-cpp$(objext) g-cppstd$(objext) g-cstyin$(objext)
! else
!   EXTRA_GNATRTL_NONTASKING_OBJS+=s-excmac.o
! endif
  endif
  
  ifeq ($(EH_MECHANISM),-arm)
*************** ifeq ($(EH_MECHANISM),-arm)
*** 2828,2834 ****
      s-excmac.ads<libgnat/s-excmac__arm.ads \
      s-excmac.adb<libgnat/s-excmac__arm.adb
    EXTRA_LIBGNAT_OBJS+=raise-gcc.o
!   EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
  endif
  
  ifeq ($(strip $(filter-out linux%,$(target_os))),)
--- 3168,3179 ----
      s-excmac.ads<libgnat/s-excmac__arm.ads \
      s-excmac.adb<libgnat/s-excmac__arm.adb
    EXTRA_LIBGNAT_OBJS+=raise-gcc.o
! ifeq ($(LLVM_BUILD),)
!   EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o \
!     g-cpp$(objext) g-cppstd$(objext) g-cstyin$(objext)
! else
!   EXTRA_GNATRTL_NONTASKING_OBJS+=s-excmac.o
! endif
  endif
  
  ifeq ($(strip $(filter-out linux%,$(target_os))),)
*************** ADA_EXCLUDE_SRCS =\
*** 2896,2902 ****
    g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
    g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
    g-intpri.ads g-regist.adb g-regist.ads g-sse.ads    g-ssvety.ads \
!   i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
    s-linux.ads  s-vxwext.adb s-vxwext.ads s-win32.ads  s-winext.ads \
    s-stchop.ads s-stchop.adb \
    s-strcom.adb s-strcom.ads s-thread.ads \
--- 3241,3248 ----
    g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
    g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
    g-intpri.ads g-regist.adb g-regist.ads g-sse.ads    g-ssvety.ads \
!   i-cheri.ads i-cheri.adb i-cheri-exceptions.ads \
!   i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
    s-linux.ads  s-vxwext.adb s-vxwext.ads s-win32.ads  s-winext.ads \
    s-stchop.ads s-stchop.adb \
    s-strcom.adb s-strcom.ads s-thread.ads \
diff -Nrcpad gcc-14.2.0/gcc/ada/accessibility.adb gcc-15.1.0/gcc/ada/accessibility.adb
*** gcc-14.2.0/gcc/ada/accessibility.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/accessibility.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Elists;         use Elists;
*** 32,38 ****
  with Errout;         use Errout;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Atag;       use Exp_Atag;
- with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
--- 32,37 ----
*************** package body Accessibility is
*** 188,193 ****
--- 187,201 ----
                   or else (Nkind (Node_Par) = N_Object_Renaming_Declaration
                             and then Comes_From_Iterator (Node_Par))
                 then
+                   --  Handle the case of expressions within library level
+                   --  subprograms here by adding one to the level modifier.
+ 
+                   if Encl_Scop = Standard_Standard
+                     and then Nkind (Node_Par) = N_Subprogram_Body
+                   then
+                      Master_Lvl_Modifier := Master_Lvl_Modifier + 1;
+                   end if;
+ 
                    --  Note that in some rare cases the scope depth may not be
                    --  set, for example, when we are in the middle of analyzing
                    --  a type and the enclosing scope is said type. In that case
*************** package body Accessibility is
*** 399,405 ****
  
        --  Local variables
  
!       E   : Node_Id := Original_Node (Expr);
        Pre : Node_Id;
  
     --  Start of processing for Accessibility_Level
--- 407,413 ----
  
        --  Local variables
  
!       E   : Node_Id;
        Pre : Node_Id;
  
     --  Start of processing for Accessibility_Level
*************** package body Accessibility is
*** 410,415 ****
--- 418,434 ----
  
        if Present (Param_Entity (Expr)) then
           E := Param_Entity (Expr);
+ 
+       --  Use the original node unless it is an unanalyzed identifier, as we
+       --  don't want to reason on unanalyzed expressions from predicates.
+ 
+       elsif Nkind (Original_Node (Expr)) /= N_Identifier
+         or else Analyzed (Original_Node (Expr))
+       then
+          E := Original_Node (Expr);
+ 
+       else
+          E := Expr;
        end if;
  
        --  Extract the entity
*************** package body Accessibility is
*** 454,459 ****
--- 473,495 ----
              if Attribute_Name (E) = Name_Access then
                 return Accessibility_Level (Prefix (E));
  
+             --  If we have reached a 'Input attribute then this is the
+             --  the result of the expansion of an object declaration with
+             --  an initial value featuring it. Is this the only case ???
+ 
+             --  For example:
+ 
+             --    Opaque : aliased Stream_Element_Array :=
+             --      Stream_Element_Array'Input (S);
+ 
+             elsif Attribute_Name (E) = Name_Input then
+ 
+                --  Return the level of the enclosing declaration
+ 
+                return Make_Level_Literal
+                         (Innermost_Master_Scope_Depth
+                           (Enclosing_Declaration (Expr)));
+ 
              --  Unchecked or unrestricted attributes have unlimited depth
  
              elsif Attribute_Name (E) in Name_Address
*************** package body Accessibility is
*** 466,472 ****
              --  so handle these cases explicitly.
  
              elsif Attribute_Name (E)
!                     in Name_Old | Name_Loop_Entry | Name_Result
              then
                 --  Named access types
  
--- 502,516 ----
              --  so handle these cases explicitly.
  
              elsif Attribute_Name (E)
!                     in Name_Old        |
!                        Name_Loop_Entry |
!                        Name_Result     |
!                        Name_Super      |
!                        Name_Tag        |
!                        Name_Safe_First |
!                        Name_Safe_Last  |
!                        Name_First      |
!                        Name_Last
              then
                 --  Named access types
  
*************** package body Accessibility is
*** 1178,1184 ****
              return First (Choices (Assoc));
  
           elsif Nkind (Assoc) = N_Discriminant_Association then
!             return (First (Selector_Names (Assoc)));
  
           else
              raise Program_Error;
--- 1222,1228 ----
              return First (Choices (Assoc));
  
           elsif Nkind (Assoc) = N_Discriminant_Association then
!             return First (Selector_Names (Assoc));
  
           else
              raise Program_Error;
*************** package body Accessibility is
*** 1257,1263 ****
                 exit;
              end if;
  
!             Nlists.Next (Return_Con);
           end loop;
  
           pragma Assert (Present (Return_Con));
--- 1301,1307 ----
                 exit;
              end if;
  
!             Next (Return_Con);
           end loop;
  
           pragma Assert (Present (Return_Con));
*************** package body Accessibility is
*** 1658,1664 ****
           if not Is_List_Member (Assoc) then
              exit;
           else
!             Nlists.Next (Assoc);
           end if;
        end loop;
     end Check_Return_Construct_Accessibility;
--- 1702,1708 ----
           if not Is_List_Member (Assoc) then
              exit;
           else
!             Next (Assoc);
           end if;
        end loop;
     end Check_Return_Construct_Accessibility;
*************** package body Accessibility is
*** 2220,2226 ****
                    --  that of the type.
  
                    elsif Ekind (Def_Ent) = E_Discriminant then
!                      return Scope_Depth (Scope (Def_Ent));
                    end if;
                 end if;
  
--- 2264,2274 ----
                    --  that of the type.
  
                    elsif Ekind (Def_Ent) = E_Discriminant then
!                      return Scope_Depth
!                        (if Present (Full_View (Scope (Def_Ent))) then
!                            Full_View (Scope (Def_Ent))
!                         else
!                            Scope (Def_Ent));
                    end if;
                 end if;
  
*************** package body Accessibility is
*** 2309,2315 ****
           return Scope_Depth (Standard_Standard);
        end if;
  
!       return Scope_Depth (Enclosing_Dynamic_Scope (Btyp));
     end Type_Access_Level;
  
  end Accessibility;
--- 2357,2376 ----
           return Scope_Depth (Standard_Standard);
        end if;
  
!       --  It is possible that the current scope is an aliased subprogram -
!       --  this can happen when an abstract primitive from a root type is not
!       --  not visible.
! 
!       if Is_Subprogram (Enclosing_Dynamic_Scope (Btyp))
!         and then Present (Alias (Enclosing_Dynamic_Scope (Btyp)))
!       then
!          return Scope_Depth (Ultimate_Alias (Enclosing_Dynamic_Scope (Btyp)));
! 
!       --  Otherwise, simply use the enclosing dynamic scope
! 
!       else
!          return Scope_Depth (Enclosing_Dynamic_Scope (Btyp));
!       end if;
     end Type_Access_Level;
  
  end Accessibility;
diff -Nrcpad gcc-14.2.0/gcc/ada/accessibility.ads gcc-15.1.0/gcc/ada/accessibility.ads
*** gcc-14.2.0/gcc/ada/accessibility.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/accessibility.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/ada_get_targ.adb gcc-15.1.0/gcc/ada/ada_get_targ.adb
*** gcc-14.2.0/gcc/ada/ada_get_targ.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ada_get_targ.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/adabkend.adb gcc-15.1.0/gcc/ada/adabkend.adb
*** gcc-14.2.0/gcc/ada/adabkend.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adabkend.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/adabkend.ads gcc-15.1.0/gcc/ada/adabkend.ads
*** gcc-14.2.0/gcc/ada/adabkend.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adabkend.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/adadecode.c gcc-15.1.0/gcc/ada/adadecode.c
*** gcc-14.2.0/gcc/ada/adadecode.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adadecode.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2001-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2001-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/adadecode.h gcc-15.1.0/gcc/ada/adadecode.h
*** gcc-14.2.0/gcc/ada/adadecode.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adadecode.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2001-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2001-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/adaint.c gcc-15.1.0/gcc/ada/adaint.c
*** gcc-14.2.0/gcc/ada/adaint.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adaint.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern "C" {
*** 175,181 ****
  
  #include "mingw32.h"
  
! /* Current code page and CCS encoding to use, set in initialize.c.  */
  UINT __gnat_current_codepage;
  UINT __gnat_current_ccs_encoding;
  
--- 175,181 ----
  
  #include "mingw32.h"
  
! /* Current code page and CCS encoding to use, set in rtinit.c.  */
  UINT __gnat_current_codepage;
  UINT __gnat_current_ccs_encoding;
  
*************** UINT __gnat_current_ccs_encoding;
*** 242,247 ****
--- 242,254 ----
  #undef DIR_SEPARATOR
  #define DIR_SEPARATOR '\\'
  
+ #ifdef STANDALONE
+ #undef PATH_SEPARATOR
+ #define PATH_SEPARATOR ';'
+ #undef HOST_EXECUTABLE_SUFFIX
+ #define HOST_EXECUTABLE_SUFFIX ".exe"
+ #endif
+ 
  #else
  #include <signal.h>
  #include <utime.h>
*************** __gnat_locate_exec (char *exec_name, cha
*** 3072,3103 ****
  /* Locate an executable using the Systems default PATH.  */
  
  char *
! __gnat_locate_exec_on_path (char *exec_name)
  {
    char *apath_val;
  
  #if defined (_WIN32)
    TCHAR *wpath_val = _tgetenv (_T("PATH"));
-   TCHAR *wapath_val;
-   /* In Win32 systems we expand the PATH as for XP environment
-      variables are not automatically expanded. We also prepend the
-      ".;" to the path to match normal NT path search semantics */
- 
    #define EXPAND_BUFFER_SIZE 32767
  
!   wapath_val = (TCHAR *) alloca (EXPAND_BUFFER_SIZE);
  
!   wapath_val [0] = '.';
!   wapath_val [1] = ';';
  
!   DWORD res = ExpandEnvironmentStrings
!     (wpath_val, &wapath_val[2], EXPAND_BUFFER_SIZE - 2);
  
!   if (!res) wapath_val [0] = _T('\0');
  
!   apath_val = (char *) alloca (EXPAND_BUFFER_SIZE);
  
!   WS2SC (apath_val, wapath_val, EXPAND_BUFFER_SIZE);
  
  #else
    const char *path_val = getenv ("PATH");
--- 3079,3114 ----
  /* Locate an executable using the Systems default PATH.  */
  
  char *
! __gnat_locate_exec_on_path (char *exec_name,
! 				    int current_dir_on_windows ATTRIBUTE_UNUSED)
  {
    char *apath_val;
  
  #if defined (_WIN32)
    TCHAR *wpath_val = _tgetenv (_T("PATH"));
    #define EXPAND_BUFFER_SIZE 32767
+   apath_val = (char *) alloca (EXPAND_BUFFER_SIZE);
  
!   if (current_dir_on_windows) {
!     TCHAR *wapath_val;
!     /* In Win32 systems we expand the PATH as for XP environment
!       variables are not automatically expanded. We also prepend the
!       ".;" to the path to match normal NT path search semantics */
  
!     wapath_val = (TCHAR *) alloca (EXPAND_BUFFER_SIZE);
  
!     wapath_val [0] = '.';
!     wapath_val [1] = ';';
  
!     DWORD res = ExpandEnvironmentStrings
!       (wpath_val, &wapath_val[2], EXPAND_BUFFER_SIZE - 2);
  
!     if (!res) wapath_val [0] = _T('\0');
  
!     WS2SC (apath_val, wapath_val, EXPAND_BUFFER_SIZE);
!   } else {
!     WS2SC (apath_val, wpath_val, EXPAND_BUFFER_SIZE);
!   }
  
  #else
    const char *path_val = getenv ("PATH");
diff -Nrcpad gcc-14.2.0/gcc/ada/adaint.h gcc-15.1.0/gcc/ada/adaint.h
*** gcc-14.2.0/gcc/ada/adaint.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/adaint.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern int    __gnat_portable_wait
*** 240,246 ****
  extern int    __gnat_portable_no_block_wait        (int *);
  extern int    __gnat_current_process_id            (void);
  extern char  *__gnat_locate_exec                   (char *, char *);
! extern char  *__gnat_locate_exec_on_path           (char *);
  extern char  *__gnat_locate_regular_file           (char *, char *);
  extern void   __gnat_maybe_glob_args               (int *, char ***);
  extern void   __gnat_os_exit			   (int);
--- 240,246 ----
  extern int    __gnat_portable_no_block_wait        (int *);
  extern int    __gnat_current_process_id            (void);
  extern char  *__gnat_locate_exec                   (char *, char *);
! extern char  *__gnat_locate_exec_on_path           (char *, int);
  extern char  *__gnat_locate_regular_file           (char *, char *);
  extern void   __gnat_maybe_glob_args               (int *, char ***);
  extern void   __gnat_os_exit			   (int);
diff -Nrcpad gcc-14.2.0/gcc/ada/affinity.c gcc-15.1.0/gcc/ada/affinity.c
*** gcc-14.2.0/gcc/ada/affinity.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/affinity.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/ali-util.adb gcc-15.1.0/gcc/ada/ali-util.adb
*** gcc-14.2.0/gcc/ada/ali-util.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ali-util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Opt;     use Opt;
*** 29,34 ****
--- 29,35 ----
  with Output;  use Output;
  with Osint;   use Osint;
  with Scans;   use Scans;
+ with Fname;   use Fname;
  with Scng;
  with Sinput.C;
  with Stringt;
*************** package body ALI.Util is
*** 87,94 ****
     -----------------------
  
     function Get_File_Checksum (Fname : File_Name_Type) return Word is
!       Full_Name    : File_Name_Type;
!       Source_Index : Source_File_Index;
  
     begin
        Full_Name := Find_File (Fname, Osint.Source);
--- 88,97 ----
     -----------------------
  
     function Get_File_Checksum (Fname : File_Name_Type) return Word is
!       Full_Name           : File_Name_Type;
!       Source_Index        : Source_File_Index;
!       Ada_Version_Current : Ada_Version_Type;
!       Internal_Unit       : constant Boolean := Is_Internal_File_Name (Fname);
  
     begin
        Full_Name := Find_File (Fname, Osint.Source);
*************** package body ALI.Util is
*** 109,114 ****
--- 112,126 ----
  
        Scanner.Initialize_Scanner (Source_Index);
  
+       --  The runtime files are precompiled with an implicitly defined Ada
+       --  version that we set here to improve the parsing required to compute
+       --  the checksum.
+ 
+       if Internal_Unit then
+          Ada_Version_Current := Ada_Version;
+          Ada_Version := Ada_Version_Runtime;
+       end if;
+ 
        --  Scan the complete file to compute its checksum
  
        loop
*************** package body ALI.Util is
*** 116,121 ****
--- 128,139 ----
           exit when Token = Tok_EOF;
        end loop;
  
+       --  Restore the Ada version if we changed it
+ 
+       if Internal_Unit then
+          Ada_Version := Ada_Version_Current;
+       end if;
+ 
        return Scans.Checksum;
     end Get_File_Checksum;
  
*************** package body ALI.Util is
*** 161,169 ****
        --  Process all dependent units
  
        for U in ALIs.Table (Id).First_Unit .. ALIs.Table (Id).Last_Unit loop
!          for
!            W in Units.Table (U).First_With .. Units.Table (U).Last_With
!          loop
              Afile := Withs.Table (W).Afile;
  
              --  Only process if not a generic (Afile /= No_File) and if
--- 179,185 ----
        --  Process all dependent units
  
        for U in ALIs.Table (Id).First_Unit .. ALIs.Table (Id).Last_Unit loop
!          for W in Units.Table (U).First_With .. Units.Table (U).Last_With loop
              Afile := Withs.Table (W).Afile;
  
              --  Only process if not a generic (Afile /= No_File) and if
diff -Nrcpad gcc-14.2.0/gcc/ada/ali-util.ads gcc-15.1.0/gcc/ada/ali-util.ads
*** gcc-14.2.0/gcc/ada/ali-util.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ali-util.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/ali.adb gcc-15.1.0/gcc/ada/ali.adb
*** gcc-14.2.0/gcc/ada/ali.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ali.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body ALI is
*** 665,670 ****
--- 665,671 ----
        No_Object_Specified                    := False;
        No_Component_Reordering_Specified      := False;
        GNATprove_Mode_Specified               := False;
+       Interrupts_Default_To_System_Specified := False;
        Normalize_Scalars_Specified            := False;
        Partition_Elaboration_Policy_Specified := ' ';
        Queuing_Policy_Specified               := ' ';
*************** package body ALI is
*** 1351,1357 ****
           --  Check if we are on a number. In the case of bad ALI files, this
           --  may not be true.
  
!          if not (Nextc in '0' .. '9') then
              Fatal_Error;
           end if;
  
--- 1352,1358 ----
           --  Check if we are on a number. In the case of bad ALI files, this
           --  may not be true.
  
!          if Nextc not in '0' .. '9' then
              Fatal_Error;
           end if;
  
*************** package body ALI is
*** 1750,1755 ****
--- 1751,1757 ----
          First_Specific_Dispatching   => Specific_Dispatching.Last + 1,
          First_Unit                   => No_Unit_Id,
          GNATprove_Mode               => False,
+         Interrupts_Default_To_System => False,
          Invocation_Graph_Encoding    => No_Encoding,
          Last_CUDA_Kernel             => CUDA_Kernels.Last,
          Last_Interrupt_State         => Interrupt_States.Last,
*************** package body ALI is
*** 2005,2010 ****
--- 2007,2019 ----
                 GNATprove_Mode_Specified := True;
                 ALIs.Table (Id).GNATprove_Mode := True;
  
+             --  Processing for ID (Interrupts Default to System)
+ 
+             elsif C = 'I' then
+                Checkc ('D');
+                Interrupts_Default_To_System_Specified := True;
+                ALIs.Table (Id).Interrupts_Default_To_System := True;
+ 
              --  Processing for Lx
  
              elsif C = 'L' then
*************** package body ALI is
*** 2933,2956 ****
                 Checkc (' ');
                 Skip_Space;
                 Withs.Increment_Last;
!                Withs.Table (Withs.Last).Uname              := Get_Unit_Name;
!                Withs.Table (Withs.Last).Elaborate          := False;
!                Withs.Table (Withs.Last).Elaborate_All      := False;
!                Withs.Table (Withs.Last).Elab_Desirable     := False;
!                Withs.Table (Withs.Last).Elab_All_Desirable := False;
!                Withs.Table (Withs.Last).SAL_Interface      := False;
!                Withs.Table (Withs.Last).Limited_With       := (C = 'Y');
!                Withs.Table (Withs.Last).Implicit_With      := (C = 'Z');
! 
!                --  Generic case with no object file available
! 
!                if At_Eol then
!                   Withs.Table (Withs.Last).Sfile := No_File;
!                   Withs.Table (Withs.Last).Afile := No_File;
  
!                --  Normal case
  
!                else
                    Withs.Table (Withs.Last).Sfile := Get_File_Name
                                                        (Lower => True);
                    Withs.Table (Withs.Last).Afile := Get_File_Name
--- 2942,2963 ----
                 Checkc (' ');
                 Skip_Space;
                 Withs.Increment_Last;
!                Withs.Table (Withs.Last) :=
!                  (Uname              => Get_Unit_Name,
!                   Sfile              => No_File,
!                   Afile              => No_File,
!                   Elaborate          => False,
!                   Elaborate_All      => False,
!                   Elab_Desirable     => False,
!                   Elab_All_Desirable => False,
!                   SAL_Interface      => False,
!                   Limited_With       => (C = 'Y'),
!                   Implicit_With      => (C = 'Z'));
  
!                --  If At_Eol, then no object file is available; leave Sfile and
!                --  Afile as above (No_File).
  
!                if not At_Eol then
                    Withs.Table (Withs.Last).Sfile := Get_File_Name
                                                        (Lower => True);
                    Withs.Table (Withs.Last).Afile := Get_File_Name
*************** package body ALI is
*** 3287,3294 ****
  
              --  Acquire (sub)unit and reference file name entries
  
!             Sdep.Table (Sdep.Last).Subunit_Name := No_Name;
!             Sdep.Table (Sdep.Last).Unit_Name    := No_Name;
              Sdep.Table (Sdep.Last).Rfile        :=
                Sdep.Table (Sdep.Last).Sfile;
              Sdep.Table (Sdep.Last).Start_Line   := 1;
--- 3294,3301 ----
  
              --  Acquire (sub)unit and reference file name entries
  
!             Sdep.Table (Sdep.Last).Subunit_Name := No_Unit_Name;
!             Sdep.Table (Sdep.Last).Unit_Name    := No_Unit_Name;
              Sdep.Table (Sdep.Last).Rfile        :=
                Sdep.Table (Sdep.Last).Sfile;
              Sdep.Table (Sdep.Last).Start_Line   := 1;
*************** package body ALI is
*** 3304,3319 ****
                       Add_Char_To_Name_Buffer (Getc);
                    end loop;
  
!                   --  Set the (sub)unit name. Note that we use Name_Find rather
!                   --  than Name_Enter here as the subunit name may already
!                   --  have been put in the name table by the Project Manager.
  
                    if Name_Len <= 2
                      or else Name_Buffer (Name_Len - 1) /= '%'
                    then
                       Sdep.Table (Sdep.Last).Subunit_Name := Name_Find;
                    else
-                      Name_Len := Name_Len - 2;
                       Sdep.Table (Sdep.Last).Unit_Name := Name_Find;
                    end if;
  
--- 3311,3323 ----
                       Add_Char_To_Name_Buffer (Getc);
                    end loop;
  
!                   --  Set the (sub)unit name.
  
                    if Name_Len <= 2
                      or else Name_Buffer (Name_Len - 1) /= '%'
                    then
                       Sdep.Table (Sdep.Last).Subunit_Name := Name_Find;
                    else
                       Sdep.Table (Sdep.Last).Unit_Name := Name_Find;
                    end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/ali.ads gcc-15.1.0/gcc/ada/ali.ads
*** gcc-14.2.0/gcc/ada/ali.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ali.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,31 ****
  
  --  This package defines the internal data structures used for representation
  --  of Ada Library Information (ALI) acquired from the ALI files generated by
! --  the front end.
  
  with Casing;  use Casing;
  with Gnatvsn; use Gnatvsn;
--- 25,31 ----
  
  --  This package defines the internal data structures used for representation
  --  of Ada Library Information (ALI) acquired from the ALI files generated by
! --  the front end. The format of the ALI files is documented in Lib.Writ.
  
  with Casing;  use Casing;
  with Gnatvsn; use Gnatvsn;
*************** package ALI is
*** 227,232 ****
--- 227,235 ----
        --  signalled by GP appearing on the P line. Not set if 'P' appears in
        --  Ignore_Lines.
  
+       Interrupts_Default_To_System : Boolean;
+       --  Set to True if pragma Interrupts_System_By_Default is seen;
+ 
        No_Component_Reordering : Boolean;
        --  Set to True if file was compiled with a configuration pragma file
        --  containing pragma No_Component_Reordering. Not set if 'P' appears
*************** package ALI is
*** 482,492 ****
        --  Indicates whether a package body or a spec has a library-level
        --  finalization routine.
  
!       Primary_Stack_Count : Int;
        --  Indicates the number of task objects declared in this unit that have
        --  default sized primary stacks.
  
!       Sec_Stack_Count : Int;
        --  Indicates the number of task objects declared in this unit that have
        --  default sized secondary stacks.
     end record;
--- 485,495 ----
        --  Indicates whether a package body or a spec has a library-level
        --  finalization routine.
  
!       Primary_Stack_Count : Nat;
        --  Indicates the number of task objects declared in this unit that have
        --  default sized primary stacks.
  
!       Sec_Stack_Count : Nat;
        --  Indicates the number of task objects declared in this unit that have
        --  default sized secondary stacks.
     end record;
*************** package ALI is
*** 591,596 ****
--- 594,602 ----
     Initialize_Scalars_Used : Boolean := False;
     --  Set True if an ali file contains the Initialize_Scalars flag
  
+    Interrupts_Default_To_System_Specified : Boolean := False;
+    --  Set to True if an pragma Interrupts_System_By_Default is seen.
+ 
     Locking_Policy_Specified : Character := ' ';
     --  Set to blank by Initialize_ALI. Set to the appropriate locking policy
     --  character if an ali file contains a P line setting the locking policy.
*************** package ALI is
*** 882,892 ****
        --  Set True for dummy entries that correspond to missing files or files
        --  where no dependency relationship exists.
  
!       Subunit_Name : Name_Id;
!       --  Name_Id for subunit name if present, else No_Name
  
!       Unit_Name : Name_Id;
!       --  Name_Id for the unit name if not a subunit (No_Name for a subunit)
  
        Rfile : File_Name_Type;
        --  Reference file name. Same as Sfile unless a Source_Reference pragma
--- 888,898 ----
        --  Set True for dummy entries that correspond to missing files or files
        --  where no dependency relationship exists.
  
!       Subunit_Name : Unit_Name_Type;
!       --  Subunit name if present, else No_Unit_Name
  
!       Unit_Name : Unit_Name_Type;
!       --  Unit name if not a subunit (No_Unit_Name for a subunit)
  
        Rfile : File_Name_Type;
        --  Reference file name. Same as Sfile unless a Source_Reference pragma
diff -Nrcpad gcc-14.2.0/gcc/ada/alloc.ads gcc-15.1.0/gcc/ada/alloc.ads
*** gcc-14.2.0/gcc/ada/alloc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/alloc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/argv-lynxos178-raven-cert.c gcc-15.1.0/gcc/ada/argv-lynxos178-raven-cert.c
*** gcc-14.2.0/gcc/ada/argv-lynxos178-raven-cert.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/argv-lynxos178-raven-cert.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/argv.c gcc-15.1.0/gcc/ada/argv.c
*** gcc-14.2.0/gcc/ada/argv.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/argv.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/aspects.adb gcc-15.1.0/gcc/ada/aspects.adb
*** gcc-14.2.0/gcc/ada/aspects.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/aspects.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Aspects is
*** 190,202 ****
        --  Note that not all aspects are added to the chain of representation
        --  items. In such cases, search the list of aspect specifications. First
        --  find the declaration node where the aspects reside. This is usually
!       --  the parent or the parent of the parent.
  
        if No (Parent (Owner)) then
           return Empty;
        end if;
  
        Decl := Parent (Owner);
        if not Permits_Aspect_Specifications (Decl) then
           Decl := Parent (Decl);
  
--- 190,208 ----
        --  Note that not all aspects are added to the chain of representation
        --  items. In such cases, search the list of aspect specifications. First
        --  find the declaration node where the aspects reside. This is usually
!       --  the parent or the parent of the parent, after getting through the
!       --  additional indirection of the N_Defining_Program_Unit_Name if needed.
  
        if No (Parent (Owner)) then
           return Empty;
        end if;
  
        Decl := Parent (Owner);
+ 
+       if Nkind (Decl) = N_Defining_Program_Unit_Name then
+          Decl := Parent (Decl);
+       end if;
+ 
        if not Permits_Aspect_Specifications (Decl) then
           Decl := Parent (Decl);
  
*************** package body Aspects is
*** 433,439 ****
     -------------------
  
     procedure Copy_Aspects (From : Node_Id; To : Node_Id) is
- 
     begin
        if not Has_Aspects (From) then
           return;
--- 439,444 ----
*************** package body Aspects is
*** 450,455 ****
--- 455,461 ----
     Has_Aspect_Specifications_Flag : constant array (Node_Kind) of Boolean :=
       (N_Abstract_Subprogram_Declaration        => True,
        N_Component_Declaration                  => True,
+       N_Discriminant_Specification             => True,
        N_Entry_Body                             => True,
        N_Entry_Declaration                      => True,
        N_Exception_Declaration                  => True,
*************** package body Aspects is
*** 471,478 ****
        N_Package_Body_Stub                      => True,
        N_Package_Declaration                    => True,
        N_Package_Instantiation                  => True,
-       N_Package_Specification                  => True,
        N_Package_Renaming_Declaration           => True,
        N_Parameter_Specification                => True,
        N_Private_Extension_Declaration          => True,
        N_Private_Type_Declaration               => True,
--- 477,484 ----
        N_Package_Body_Stub                      => True,
        N_Package_Declaration                    => True,
        N_Package_Instantiation                  => True,
        N_Package_Renaming_Declaration           => True,
+       N_Package_Specification                  => True,
        N_Parameter_Specification                => True,
        N_Private_Extension_Declaration          => True,
        N_Private_Type_Declaration               => True,
diff -Nrcpad gcc-14.2.0/gcc/ada/aspects.ads gcc-15.1.0/gcc/ada/aspects.ads
*** gcc-14.2.0/gcc/ada/aspects.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/aspects.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Types;   use Types;
*** 64,91 ****
  
  package Aspects is
  
!    --  Type defining recognized aspects
  
     type Aspect_Id is
       (No_Aspect,                            -- Dummy entry for no aspect
        Aspect_Abstract_State,                -- GNAT
        Aspect_Address,
        Aspect_Aggregate,
        Aspect_Alignment,
-       Aspect_Always_Terminates,             -- GNAT
        Aspect_Annotate,                      -- GNAT
-       Aspect_Async_Readers,                 -- GNAT
-       Aspect_Async_Writers,                 -- GNAT
        Aspect_Attach_Handler,
        Aspect_Bit_Order,
        Aspect_Component_Size,
-       Aspect_Constant_After_Elaboration,    -- GNAT
        Aspect_Constant_Indexing,
        Aspect_Contract_Cases,                -- GNAT
        Aspect_Convention,
        Aspect_CPU,
        Aspect_Default_Component_Value,
!       Aspect_Default_Initial_Condition,     -- GNAT
        Aspect_Default_Iterator,
        Aspect_Default_Storage_Pool,
        Aspect_Default_Value,
--- 64,91 ----
  
  package Aspects is
  
!    --  Type enumerating the recognized aspects. The GNAT tag must be in keeping
!    --  with the Implementation_Defined_Aspect array below.
  
     type Aspect_Id is
       (No_Aspect,                            -- Dummy entry for no aspect
+ 
+       --  The following aspects do not have a (static) boolean value
+ 
        Aspect_Abstract_State,                -- GNAT
        Aspect_Address,
        Aspect_Aggregate,
        Aspect_Alignment,
        Aspect_Annotate,                      -- GNAT
        Aspect_Attach_Handler,
        Aspect_Bit_Order,
        Aspect_Component_Size,
        Aspect_Constant_Indexing,
        Aspect_Contract_Cases,                -- GNAT
        Aspect_Convention,
        Aspect_CPU,
        Aspect_Default_Component_Value,
!       Aspect_Default_Initial_Condition,
        Aspect_Default_Iterator,
        Aspect_Default_Storage_Pool,
        Aspect_Default_Value,
*************** package Aspects is
*** 95,107 ****
        Aspect_Dimension_System,              -- GNAT
        Aspect_Dispatching_Domain,
        Aspect_Dynamic_Predicate,
-       Aspect_Effective_Reads,               -- GNAT
-       Aspect_Effective_Writes,              -- GNAT
        Aspect_Exceptional_Cases,             -- GNAT
!       Aspect_Extensions_Visible,            -- GNAT
        Aspect_External_Name,
        Aspect_External_Tag,
!       Aspect_Ghost,                         -- GNAT
        Aspect_Ghost_Predicate,               -- GNAT
        Aspect_Global,                        -- GNAT
        Aspect_GNAT_Annotate,                 -- GNAT
--- 95,106 ----
        Aspect_Dimension_System,              -- GNAT
        Aspect_Dispatching_Domain,
        Aspect_Dynamic_Predicate,
        Aspect_Exceptional_Cases,             -- GNAT
!       Aspect_Exit_Cases,                    -- GNAT
!       Aspect_External_Initialization,       -- GNAT
        Aspect_External_Name,
        Aspect_External_Tag,
!       Aspect_Finalizable,                   -- GNAT
        Aspect_Ghost_Predicate,               -- GNAT
        Aspect_Global,                        -- GNAT
        Aspect_GNAT_Annotate,                 -- GNAT
*************** package Aspects is
*** 112,130 ****
        Aspect_Integer_Literal,
        Aspect_Interrupt_Priority,
        Aspect_Invariant,                     -- GNAT
-       Aspect_Iterator_Element,
        Aspect_Iterable,                      -- GNAT
        Aspect_Link_Name,
        Aspect_Linker_Section,                -- GNAT
        Aspect_Local_Restrictions,            -- GNAT
        Aspect_Machine_Radix,
-       Aspect_Max_Entry_Queue_Depth,         -- GNAT
        Aspect_Max_Entry_Queue_Length,
        Aspect_Max_Queue_Length,              -- GNAT
!       Aspect_No_Caching,                    -- GNAT
!       Aspect_No_Controlled_Parts,
!       Aspect_No_Task_Parts,                 -- GNAT
!       Aspect_Object_Size,                   -- GNAT
        Aspect_Obsolescent,                   -- GNAT
        Aspect_Output,
        Aspect_Part_Of,                       -- GNAT
--- 111,125 ----
        Aspect_Integer_Literal,
        Aspect_Interrupt_Priority,
        Aspect_Invariant,                     -- GNAT
        Aspect_Iterable,                      -- GNAT
+       Aspect_Iterator_Element,
        Aspect_Link_Name,
        Aspect_Linker_Section,                -- GNAT
        Aspect_Local_Restrictions,            -- GNAT
        Aspect_Machine_Radix,
        Aspect_Max_Entry_Queue_Length,
        Aspect_Max_Queue_Length,              -- GNAT
!       Aspect_Object_Size,
        Aspect_Obsolescent,                   -- GNAT
        Aspect_Output,
        Aspect_Part_Of,                       -- GNAT
*************** package Aspects is
*** 146,152 ****
        Aspect_Relaxed_Initialization,        -- GNAT
        Aspect_Scalar_Storage_Order,          -- GNAT
        Aspect_Secondary_Stack_Size,          -- GNAT
-       Aspect_Side_Effects,                  -- GNAT
        Aspect_Simple_Storage_Pool,           -- GNAT
        Aspect_Size,
        Aspect_Small,
--- 141,146 ----
*************** package Aspects is
*** 168,174 ****
        Aspect_User_Aspect,                   -- GNAT
        Aspect_Value_Size,                    -- GNAT
        Aspect_Variable_Indexing,
-       Aspect_Volatile_Function,             -- GNAT
        Aspect_Warnings,                      -- GNAT
        Aspect_Write,
  
--- 162,167 ----
*************** package Aspects is
*** 190,222 ****
        --  the aspect value is inherited from the parent, in which case, we do
        --  not allow False if we inherit a True value from the parent.
  
        Aspect_Asynchronous,
        Aspect_Atomic,
        Aspect_Atomic_Components,
!       Aspect_Disable_Controlled,            -- GNAT
!       Aspect_Discard_Names,
        Aspect_CUDA_Device,                   -- GNAT
        Aspect_CUDA_Global,                   -- GNAT
        Aspect_Exclusive_Functions,
        Aspect_Export,
        Aspect_Favor_Top_Level,               -- GNAT
        Aspect_Full_Access_Only,
        Aspect_Independent,
        Aspect_Independent_Components,
-       Aspect_Import,
        Aspect_Inline,
        Aspect_Inline_Always,                 -- GNAT
        Aspect_Interrupt_Handler,
        Aspect_Lock_Free,                     -- GNAT
        Aspect_No_Inline,                     -- GNAT
        Aspect_No_Return,
        Aspect_No_Tagged_Streams,             -- GNAT
        Aspect_Pack,
        Aspect_Persistent_BSS,                -- GNAT
        Aspect_Preelaborable_Initialization,
        Aspect_Pure_Function,                 -- GNAT
        Aspect_Remote_Access_Type,            -- GNAT
        Aspect_Shared,                        -- GNAT (equivalent to Atomic)
        Aspect_Simple_Storage_Pool_Type,      -- GNAT
        Aspect_Static,
        Aspect_Suppress_Debug_Info,           -- GNAT
--- 183,230 ----
        --  the aspect value is inherited from the parent, in which case, we do
        --  not allow False if we inherit a True value from the parent.
  
+       Aspect_Always_Terminates,             -- GNAT
        Aspect_Asynchronous,
+       Aspect_Async_Readers,                 -- GNAT
+       Aspect_Async_Writers,                 -- GNAT
        Aspect_Atomic,
        Aspect_Atomic_Components,
!       Aspect_Constant_After_Elaboration,    -- GNAT
        Aspect_CUDA_Device,                   -- GNAT
        Aspect_CUDA_Global,                   -- GNAT
+       Aspect_Disable_Controlled,            -- GNAT
+       Aspect_Discard_Names,
+       Aspect_Effective_Reads,               -- GNAT
+       Aspect_Effective_Writes,              -- GNAT
        Aspect_Exclusive_Functions,
        Aspect_Export,
+       Aspect_Extended_Access,               -- GNAT
+       Aspect_Extensions_Visible,            -- GNAT
        Aspect_Favor_Top_Level,               -- GNAT
+       Aspect_First_Controlling_Parameter,   -- GNAT
        Aspect_Full_Access_Only,
+       Aspect_Ghost,                         -- GNAT
+       Aspect_Import,
        Aspect_Independent,
        Aspect_Independent_Components,
        Aspect_Inline,
        Aspect_Inline_Always,                 -- GNAT
        Aspect_Interrupt_Handler,
        Aspect_Lock_Free,                     -- GNAT
+       Aspect_No_Caching,                    -- GNAT
+       Aspect_No_Controlled_Parts,
        Aspect_No_Inline,                     -- GNAT
+       Aspect_No_Raise,                      -- GNAT
        Aspect_No_Return,
        Aspect_No_Tagged_Streams,             -- GNAT
+       Aspect_No_Task_Parts,                 -- GNAT
        Aspect_Pack,
        Aspect_Persistent_BSS,                -- GNAT
        Aspect_Preelaborable_Initialization,
        Aspect_Pure_Function,                 -- GNAT
        Aspect_Remote_Access_Type,            -- GNAT
        Aspect_Shared,                        -- GNAT (equivalent to Atomic)
+       Aspect_Side_Effects,                  -- GNAT
        Aspect_Simple_Storage_Pool_Type,      -- GNAT
        Aspect_Static,
        Aspect_Suppress_Debug_Info,           -- GNAT
*************** package Aspects is
*** 230,235 ****
--- 238,244 ----
        Aspect_Volatile,
        Aspect_Volatile_Components,
        Aspect_Volatile_Full_Access,          -- GNAT
+       Aspect_Volatile_Function,             -- GNAT
        Aspect_Yield);
  
     subtype Aspect_Id_Exclude_No_Aspect is
*************** package Aspects is
*** 237,250 ****
     --  Aspect_Id's excluding No_Aspect
  
     subtype Nonoverridable_Aspect_Id is Aspect_Id with
!      Static_Predicate => Nonoverridable_Aspect_Id in
!        Aspect_Default_Iterator | Aspect_Iterator_Element |
!        Aspect_Implicit_Dereference | Aspect_Constant_Indexing |
!        Aspect_Variable_Indexing | Aspect_Aggregate |
!        Aspect_Max_Entry_Queue_Length
!         | Aspect_No_Controlled_Parts
!        --  ??? No_Controlled_Parts not yet in Aspect_Id enumeration
!        ;  --  see RM 13.1.1(18.7)
  
     --  The following array indicates aspects that accept 'Class
  
--- 246,263 ----
     --  Aspect_Id's excluding No_Aspect
  
     subtype Nonoverridable_Aspect_Id is Aspect_Id with
!      Static_Predicate =>
!        Nonoverridable_Aspect_Id in Aspect_Aggregate
!                                  | Aspect_Constant_Indexing
!                                  | Aspect_Default_Iterator
!                                  | Aspect_Implicit_Dereference
!                                  | Aspect_Integer_Literal
!                                  | Aspect_Iterator_Element
!                                  | Aspect_Max_Entry_Queue_Length
!                                  | Aspect_No_Controlled_Parts
!                                  | Aspect_Real_Literal
!                                  | Aspect_String_Literal
!                                  | Aspect_Variable_Indexing;
  
     --  The following array indicates aspects that accept 'Class
  
*************** package Aspects is
*** 257,262 ****
--- 270,276 ----
        Aspect_Post              => True,
        Aspect_Read              => True,
        Aspect_Write             => True,
+       Aspect_Size              => True,
        Aspect_Stable_Properties => True,
        Aspect_Type_Invariant    => True,
        others                   => False);
*************** package Aspects is
*** 271,298 ****
        Aspect_Async_Writers              => True,
        Aspect_Constant_After_Elaboration => True,
        Aspect_Contract_Cases             => True,
        Aspect_Depends                    => True,
        Aspect_Dimension                  => True,
        Aspect_Dimension_System           => True,
        Aspect_Effective_Reads            => True,
        Aspect_Effective_Writes           => True,
        Aspect_Exceptional_Cases          => True,
        Aspect_Extensions_Visible         => True,
        Aspect_Favor_Top_Level            => True,
        Aspect_Ghost                      => True,
        Aspect_Ghost_Predicate            => True,
        Aspect_Global                     => True,
        Aspect_GNAT_Annotate              => True,
        Aspect_Inline_Always              => True,
        Aspect_Invariant                  => True,
        Aspect_Lock_Free                  => True,
-       Aspect_Max_Entry_Queue_Depth      => True,
-       Aspect_Max_Entry_Queue_Length     => True,
        Aspect_Max_Queue_Length           => True,
!       Aspect_Object_Size                => True,
        Aspect_Persistent_BSS             => True,
        Aspect_Predicate                  => True,
        Aspect_Pure_Function              => True,
        Aspect_Relaxed_Initialization     => True,
        Aspect_Remote_Access_Type         => True,
        Aspect_Scalar_Storage_Order       => True,
--- 285,335 ----
        Aspect_Async_Writers              => True,
        Aspect_Constant_After_Elaboration => True,
        Aspect_Contract_Cases             => True,
+       Aspect_CUDA_Device                => True,
+       Aspect_CUDA_Global                => True,
        Aspect_Depends                    => True,
+       Aspect_Designated_Storage_Model   => True,
        Aspect_Dimension                  => True,
        Aspect_Dimension_System           => True,
+       Aspect_Disable_Controlled         => True,
        Aspect_Effective_Reads            => True,
        Aspect_Effective_Writes           => True,
        Aspect_Exceptional_Cases          => True,
+       Aspect_Exit_Cases                 => True,
+       Aspect_Extended_Access            => True,
        Aspect_Extensions_Visible         => True,
+       Aspect_External_Initialization    => True,
        Aspect_Favor_Top_Level            => True,
+       Aspect_Finalizable                => True,
+       Aspect_First_Controlling_Parameter => True,
        Aspect_Ghost                      => True,
        Aspect_Ghost_Predicate            => True,
        Aspect_Global                     => True,
        Aspect_GNAT_Annotate              => True,
+       Aspect_Initial_Condition          => True,
+       Aspect_Initializes                => True,
        Aspect_Inline_Always              => True,
        Aspect_Invariant                  => True,
+       Aspect_Iterable                   => True,
+       Aspect_Linker_Section             => True,
+       Aspect_Local_Restrictions         => True,
        Aspect_Lock_Free                  => True,
        Aspect_Max_Queue_Length           => True,
!       Aspect_No_Caching                 => True,
!       Aspect_No_Elaboration_Code_All    => True,
!       Aspect_No_Inline                  => True,
!       Aspect_No_Raise                   => True,
!       Aspect_No_Tagged_Streams          => True,
!       Aspect_No_Task_Parts              => True,
!       Aspect_Obsolescent                => True,
!       Aspect_Part_Of                    => True,
        Aspect_Persistent_BSS             => True,
        Aspect_Predicate                  => True,
        Aspect_Pure_Function              => True,
+       Aspect_Refined_Depends            => True,
+       Aspect_Refined_Global             => True,
+       Aspect_Refined_Post               => True,
+       Aspect_Refined_State              => True,
        Aspect_Relaxed_Initialization     => True,
        Aspect_Remote_Access_Type         => True,
        Aspect_Scalar_Storage_Order       => True,
*************** package Aspects is
*** 301,316 ****
        Aspect_Side_Effects               => True,
        Aspect_Simple_Storage_Pool        => True,
        Aspect_Simple_Storage_Pool_Type   => True,
        Aspect_Subprogram_Variant         => True,
        Aspect_Suppress_Debug_Info        => True,
        Aspect_Suppress_Initialization    => True,
-       Aspect_Thread_Local_Storage       => True,
        Aspect_Test_Case                  => True,
        Aspect_Universal_Aliasing         => True,
        Aspect_Unmodified                 => True,
        Aspect_Unreferenced               => True,
        Aspect_Unreferenced_Objects       => True,
        Aspect_Value_Size                 => True,
        Aspect_Volatile_Function          => True,
        Aspect_Warnings                   => True,
        others                            => False);
--- 338,358 ----
        Aspect_Side_Effects               => True,
        Aspect_Simple_Storage_Pool        => True,
        Aspect_Simple_Storage_Pool_Type   => True,
+       Aspect_SPARK_Mode                 => True,
+       Aspect_Storage_Model_Type         => True,
        Aspect_Subprogram_Variant         => True,
        Aspect_Suppress_Debug_Info        => True,
        Aspect_Suppress_Initialization    => True,
        Aspect_Test_Case                  => True,
+       Aspect_Thread_Local_Storage       => True,
+       Aspect_Unimplemented              => True,
        Aspect_Universal_Aliasing         => True,
        Aspect_Unmodified                 => True,
        Aspect_Unreferenced               => True,
        Aspect_Unreferenced_Objects       => True,
+       Aspect_User_Aspect                => True,
        Aspect_Value_Size                 => True,
+       Aspect_Volatile_Full_Access       => True,
        Aspect_Volatile_Function          => True,
        Aspect_Warnings                   => True,
        others                            => False);
*************** package Aspects is
*** 322,333 ****
     --  List is currently incomplete ???
  
     Operational_Aspect : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Constant_Indexing          => True,
        Aspect_Default_Iterator           => True,
!       Aspect_Iterator_Element           => True,
        Aspect_Iterable                   => True,
        Aspect_Variable_Indexing          => True,
-       Aspect_Aggregate                  => True,
        others                            => False);
  
     --  The following array indicates aspects for which multiple occurrences of
--- 364,376 ----
     --  List is currently incomplete ???
  
     Operational_Aspect : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Aggregate                  => True,
!       Aspect_Constant_Indexing          => True,
        Aspect_Default_Iterator           => True,
!       Aspect_Finalizable                => True,
        Aspect_Iterable                   => True,
+       Aspect_Iterator_Element           => True,
        Aspect_Variable_Indexing          => True,
        others                            => False);
  
     --  The following array indicates aspects for which multiple occurrences of
*************** package Aspects is
*** 353,361 ****
     --  enabling the aspect. If the parameter is present it must be a static
     --  expression of type Standard.Boolean. If the value is True, then the
     --  aspect is enabled. If it is False, the aspect is disabled.
  
     subtype Boolean_Aspects is
!      Aspect_Id range Aspect_Asynchronous .. Aspect_Id'Last;
  
     subtype Pre_Post_Aspects is
       Aspect_Id range Aspect_Post .. Aspect_Precondition;
--- 396,408 ----
     --  enabling the aspect. If the parameter is present it must be a static
     --  expression of type Standard.Boolean. If the value is True, then the
     --  aspect is enabled. If it is False, the aspect is disabled.
+    --
+    --  The Always_Terminates fits in this category even though it accepts an
+    --  optional boolean parameter which is non-static, because we want it to
+    --  be usable with pragma User_Defined_Aspect.
  
     subtype Boolean_Aspects is
!      Aspect_Id range Aspect_Always_Terminates .. Aspect_Id'Last;
  
     subtype Pre_Post_Aspects is
       Aspect_Id range Aspect_Post .. Aspect_Precondition;
*************** package Aspects is
*** 376,389 ****
        Aspect_Address                    => Expression,
        Aspect_Aggregate                  => Expression,
        Aspect_Alignment                  => Expression,
-       Aspect_Always_Terminates          => Optional_Expression,
        Aspect_Annotate                   => Expression,
-       Aspect_Async_Readers              => Optional_Expression,
-       Aspect_Async_Writers              => Optional_Expression,
        Aspect_Attach_Handler             => Expression,
        Aspect_Bit_Order                  => Expression,
        Aspect_Component_Size             => Expression,
-       Aspect_Constant_After_Elaboration => Optional_Expression,
        Aspect_Constant_Indexing          => Name,
        Aspect_Contract_Cases             => Expression,
        Aspect_Convention                 => Name,
--- 423,432 ----
*************** package Aspects is
*** 399,411 ****
        Aspect_Dimension_System           => Expression,
        Aspect_Dispatching_Domain         => Expression,
        Aspect_Dynamic_Predicate          => Expression,
-       Aspect_Effective_Reads            => Optional_Expression,
-       Aspect_Effective_Writes           => Optional_Expression,
        Aspect_Exceptional_Cases          => Expression,
!       Aspect_Extensions_Visible         => Optional_Expression,
        Aspect_External_Name              => Expression,
        Aspect_External_Tag               => Expression,
!       Aspect_Ghost                      => Optional_Expression,
        Aspect_Ghost_Predicate            => Expression,
        Aspect_Global                     => Expression,
        Aspect_GNAT_Annotate              => Expression,
--- 442,453 ----
        Aspect_Dimension_System           => Expression,
        Aspect_Dispatching_Domain         => Expression,
        Aspect_Dynamic_Predicate          => Expression,
        Aspect_Exceptional_Cases          => Expression,
!       Aspect_Exit_Cases                 => Expression,
!       Aspect_External_Initialization    => Expression,
        Aspect_External_Name              => Expression,
        Aspect_External_Tag               => Expression,
!       Aspect_Finalizable                => Expression,
        Aspect_Ghost_Predicate            => Expression,
        Aspect_Global                     => Expression,
        Aspect_GNAT_Annotate              => Expression,
*************** package Aspects is
*** 422,433 ****
        Aspect_Linker_Section             => Expression,
        Aspect_Local_Restrictions         => Expression,
        Aspect_Machine_Radix              => Expression,
-       Aspect_Max_Entry_Queue_Depth      => Expression,
        Aspect_Max_Entry_Queue_Length     => Expression,
        Aspect_Max_Queue_Length           => Expression,
-       Aspect_No_Caching                 => Optional_Expression,
-       Aspect_No_Controlled_Parts        => Optional_Expression,
-       Aspect_No_Task_Parts              => Optional_Expression,
        Aspect_Object_Size                => Expression,
        Aspect_Obsolescent                => Optional_Expression,
        Aspect_Output                     => Name,
--- 464,471 ----
*************** package Aspects is
*** 450,456 ****
        Aspect_Relaxed_Initialization     => Optional_Expression,
        Aspect_Scalar_Storage_Order       => Expression,
        Aspect_Secondary_Stack_Size       => Expression,
-       Aspect_Side_Effects               => Optional_Expression,
        Aspect_Simple_Storage_Pool        => Name,
        Aspect_Size                       => Expression,
        Aspect_Small                      => Expression,
--- 488,493 ----
*************** package Aspects is
*** 472,483 ****
        Aspect_User_Aspect                => Expression,
        Aspect_Value_Size                 => Expression,
        Aspect_Variable_Indexing          => Name,
-       Aspect_Volatile_Function          => Optional_Expression,
        Aspect_Warnings                   => Name,
        Aspect_Write                      => Name,
  
!       Boolean_Aspects                   => Optional_Expression,
!       Library_Unit_Aspects              => Optional_Expression);
  
     --  The following array indicates what aspects are representation aspects
  
--- 509,519 ----
        Aspect_User_Aspect                => Expression,
        Aspect_Value_Size                 => Expression,
        Aspect_Variable_Indexing          => Name,
        Aspect_Warnings                   => Name,
        Aspect_Write                      => Name,
  
!       Library_Unit_Aspects              => Optional_Expression,
!       Boolean_Aspects                   => Optional_Expression);
  
     --  The following array indicates what aspects are representation aspects
  
*************** package Aspects is
*** 487,506 ****
        Aspect_Address                      => True,
        Aspect_Aggregate                    => False,
        Aspect_Alignment                    => True,
-       Aspect_Always_Terminates            => False,
        Aspect_Annotate                     => False,
-       Aspect_Async_Readers                => False,
-       Aspect_Async_Writers                => False,
        Aspect_Attach_Handler               => False,
        Aspect_Bit_Order                    => True,
        Aspect_Component_Size               => True,
-       Aspect_Constant_After_Elaboration   => False,
        Aspect_Constant_Indexing            => False,
        Aspect_Contract_Cases               => False,
        Aspect_Convention                   => True,
        Aspect_CPU                          => False,
-       Aspect_CUDA_Device                  => False,
-       Aspect_CUDA_Global                  => False,
        Aspect_Default_Component_Value      => True,
        Aspect_Default_Initial_Condition    => False,
        Aspect_Default_Iterator             => False,
--- 523,536 ----
*************** package Aspects is
*** 512,525 ****
        Aspect_Dimension_System             => False,
        Aspect_Dispatching_Domain           => False,
        Aspect_Dynamic_Predicate            => False,
-       Aspect_Effective_Reads              => False,
-       Aspect_Effective_Writes             => False,
        Aspect_Exceptional_Cases            => False,
        Aspect_Exclusive_Functions          => False,
!       Aspect_Extensions_Visible           => False,
!       Aspect_External_Name                => False,
        Aspect_External_Tag                 => False,
!       Aspect_Ghost                        => False,
        Aspect_Ghost_Predicate              => False,
        Aspect_Global                       => False,
        Aspect_GNAT_Annotate                => False,
--- 542,556 ----
        Aspect_Dimension_System             => False,
        Aspect_Dispatching_Domain           => False,
        Aspect_Dynamic_Predicate            => False,
        Aspect_Exceptional_Cases            => False,
+       Aspect_Exit_Cases                   => False,
        Aspect_Exclusive_Functions          => False,
!       Aspect_Extended_Access              => True,
!       Aspect_External_Initialization      => False,
!       Aspect_External_Name                => True,
        Aspect_External_Tag                 => False,
!       Aspect_Finalizable                  => False,
!       Aspect_First_Controlling_Parameter  => False,
        Aspect_Ghost_Predicate              => False,
        Aspect_Global                       => False,
        Aspect_GNAT_Annotate                => False,
*************** package Aspects is
*** 536,547 ****
        Aspect_Linker_Section               => True,
        Aspect_Local_Restrictions           => False,
        Aspect_Machine_Radix                => True,
-       Aspect_Max_Entry_Queue_Depth        => False,
        Aspect_Max_Entry_Queue_Length       => False,
        Aspect_Max_Queue_Length             => False,
-       Aspect_No_Caching                   => False,
-       Aspect_No_Controlled_Parts          => False,
-       Aspect_No_Task_Parts                => False,
        Aspect_Object_Size                  => True,
        Aspect_Obsolescent                  => False,
        Aspect_Output                       => False,
--- 567,574 ----
*************** package Aspects is
*** 564,570 ****
        Aspect_Relaxed_Initialization       => False,
        Aspect_Scalar_Storage_Order         => True,
        Aspect_Secondary_Stack_Size         => True,
-       Aspect_Side_Effects                 => False,
        Aspect_Simple_Storage_Pool          => True,
        Aspect_Size                         => True,
        Aspect_Small                        => True,
--- 591,596 ----
*************** package Aspects is
*** 586,621 ****
        Aspect_User_Aspect                  => False,
        Aspect_Value_Size                   => True,
        Aspect_Variable_Indexing            => False,
-       Aspect_Volatile_Function            => False,
        Aspect_Warnings                     => False,
        Aspect_Write                        => False,
  
        Library_Unit_Aspects                => False,
  
        Aspect_Asynchronous                 => True,
        Aspect_Atomic                       => True,
        Aspect_Atomic_Components            => True,
        Aspect_Disable_Controlled           => False,
        Aspect_Discard_Names                => True,
        Aspect_Export                       => True,
        Aspect_Favor_Top_Level              => False,
        Aspect_Full_Access_Only             => True,
        Aspect_Independent                  => True,
        Aspect_Independent_Components       => True,
-       Aspect_Import                       => True,
        Aspect_Inline                       => False,
        Aspect_Inline_Always                => False,
        Aspect_Interrupt_Handler            => False,
        Aspect_Lock_Free                    => False,
        Aspect_No_Inline                    => False,
        Aspect_No_Return                    => False,
        Aspect_No_Tagged_Streams            => False,
        Aspect_Pack                         => True,
        Aspect_Persistent_BSS               => True,
        Aspect_Preelaborable_Initialization => False,
        Aspect_Pure_Function                => False,
        Aspect_Remote_Access_Type           => False,
        Aspect_Shared                       => True,
        Aspect_Simple_Storage_Pool_Type     => True,
        Aspect_Static                       => False,
        Aspect_Suppress_Debug_Info          => False,
--- 612,661 ----
        Aspect_User_Aspect                  => False,
        Aspect_Value_Size                   => True,
        Aspect_Variable_Indexing            => False,
        Aspect_Warnings                     => False,
        Aspect_Write                        => False,
  
        Library_Unit_Aspects                => False,
  
+       Aspect_Always_Terminates            => False,
        Aspect_Asynchronous                 => True,
+       Aspect_Async_Readers                => False,
+       Aspect_Async_Writers                => False,
        Aspect_Atomic                       => True,
        Aspect_Atomic_Components            => True,
+       Aspect_Constant_After_Elaboration   => False,
+       Aspect_CUDA_Device                  => False,
+       Aspect_CUDA_Global                  => False,
        Aspect_Disable_Controlled           => False,
        Aspect_Discard_Names                => True,
+       Aspect_Effective_Reads              => False,
+       Aspect_Effective_Writes             => False,
        Aspect_Export                       => True,
+       Aspect_Extensions_Visible           => False,
        Aspect_Favor_Top_Level              => False,
        Aspect_Full_Access_Only             => True,
+       Aspect_Ghost                        => False,
+       Aspect_Import                       => True,
        Aspect_Independent                  => True,
        Aspect_Independent_Components       => True,
        Aspect_Inline                       => False,
        Aspect_Inline_Always                => False,
        Aspect_Interrupt_Handler            => False,
        Aspect_Lock_Free                    => False,
+       Aspect_No_Caching                   => False,
+       Aspect_No_Controlled_Parts          => False,
        Aspect_No_Inline                    => False,
+       Aspect_No_Raise                     => False,
        Aspect_No_Return                    => False,
        Aspect_No_Tagged_Streams            => False,
+       Aspect_No_Task_Parts                => False,
        Aspect_Pack                         => True,
        Aspect_Persistent_BSS               => True,
        Aspect_Preelaborable_Initialization => False,
        Aspect_Pure_Function                => False,
        Aspect_Remote_Access_Type           => False,
        Aspect_Shared                       => True,
+       Aspect_Side_Effects                 => False,
        Aspect_Simple_Storage_Pool_Type     => True,
        Aspect_Static                       => False,
        Aspect_Suppress_Debug_Info          => False,
*************** package Aspects is
*** 629,634 ****
--- 669,675 ----
        Aspect_Volatile                     => True,
        Aspect_Volatile_Components          => True,
        Aspect_Volatile_Full_Access         => True,
+       Aspect_Volatile_Function            => False,
        Aspect_Yield                        => False);
  
     -----------------------------------------
*************** package Aspects is
*** 678,689 ****
--- 719,735 ----
        Aspect_Effective_Writes             => Name_Effective_Writes,
        Aspect_Elaborate_Body               => Name_Elaborate_Body,
        Aspect_Exceptional_Cases            => Name_Exceptional_Cases,
+       Aspect_Exit_Cases                   => Name_Exit_Cases,
        Aspect_Exclusive_Functions          => Name_Exclusive_Functions,
        Aspect_Export                       => Name_Export,
+       Aspect_Extended_Access              => Name_Extended_Access,
        Aspect_Extensions_Visible           => Name_Extensions_Visible,
+       Aspect_External_Initialization      => Name_External_Initialization,
        Aspect_External_Name                => Name_External_Name,
        Aspect_External_Tag                 => Name_External_Tag,
        Aspect_Favor_Top_Level              => Name_Favor_Top_Level,
+       Aspect_Finalizable                  => Name_Finalizable,
+       Aspect_First_Controlling_Parameter  => Name_First_Controlling_Parameter,
        Aspect_Full_Access_Only             => Name_Full_Access_Only,
        Aspect_Ghost                        => Name_Ghost,
        Aspect_Ghost_Predicate              => Name_Ghost_Predicate,
*************** package Aspects is
*** 702,715 ****
        Aspect_Interrupt_Handler            => Name_Interrupt_Handler,
        Aspect_Interrupt_Priority           => Name_Interrupt_Priority,
        Aspect_Invariant                    => Name_Invariant,
-       Aspect_Iterator_Element             => Name_Iterator_Element,
        Aspect_Iterable                     => Name_Iterable,
        Aspect_Link_Name                    => Name_Link_Name,
        Aspect_Linker_Section               => Name_Linker_Section,
        Aspect_Lock_Free                    => Name_Lock_Free,
        Aspect_Local_Restrictions           => Name_Local_Restrictions,
        Aspect_Machine_Radix                => Name_Machine_Radix,
-       Aspect_Max_Entry_Queue_Depth        => Name_Max_Entry_Queue_Depth,
        Aspect_Max_Entry_Queue_Length       => Name_Max_Entry_Queue_Length,
        Aspect_Max_Queue_Length             => Name_Max_Queue_Length,
        Aspect_No_Caching                   => Name_No_Caching,
--- 748,760 ----
        Aspect_Interrupt_Handler            => Name_Interrupt_Handler,
        Aspect_Interrupt_Priority           => Name_Interrupt_Priority,
        Aspect_Invariant                    => Name_Invariant,
        Aspect_Iterable                     => Name_Iterable,
+       Aspect_Iterator_Element             => Name_Iterator_Element,
        Aspect_Link_Name                    => Name_Link_Name,
        Aspect_Linker_Section               => Name_Linker_Section,
        Aspect_Lock_Free                    => Name_Lock_Free,
        Aspect_Local_Restrictions           => Name_Local_Restrictions,
        Aspect_Machine_Radix                => Name_Machine_Radix,
        Aspect_Max_Entry_Queue_Length       => Name_Max_Entry_Queue_Length,
        Aspect_Max_Queue_Length             => Name_Max_Queue_Length,
        Aspect_No_Caching                   => Name_No_Caching,
*************** package Aspects is
*** 717,722 ****
--- 762,768 ----
        Aspect_No_Task_Parts                => Name_No_Task_Parts,
        Aspect_No_Elaboration_Code_All      => Name_No_Elaboration_Code_All,
        Aspect_No_Inline                    => Name_No_Inline,
+       Aspect_No_Raise                     => Name_No_Raise,
        Aspect_No_Return                    => Name_No_Return,
        Aspect_No_Tagged_Streams            => Name_No_Tagged_Streams,
        Aspect_Object_Size                  => Name_Object_Size,
*************** package Aspects is
*** 932,940 ****
        Aspect_Dynamic_Predicate            => Always_Delay,
        Aspect_Elaborate_Body               => Always_Delay,
        Aspect_Exclusive_Functions          => Always_Delay,
-       Aspect_External_Name                => Always_Delay,
        Aspect_External_Tag                 => Always_Delay,
        Aspect_Favor_Top_Level              => Always_Delay,
        Aspect_Ghost_Predicate              => Always_Delay,
        Aspect_Implicit_Dereference         => Always_Delay,
        Aspect_Independent                  => Always_Delay,
--- 978,986 ----
        Aspect_Dynamic_Predicate            => Always_Delay,
        Aspect_Elaborate_Body               => Always_Delay,
        Aspect_Exclusive_Functions          => Always_Delay,
        Aspect_External_Tag                 => Always_Delay,
        Aspect_Favor_Top_Level              => Always_Delay,
+       Aspect_Finalizable                  => Always_Delay,
        Aspect_Ghost_Predicate              => Always_Delay,
        Aspect_Implicit_Dereference         => Always_Delay,
        Aspect_Independent                  => Always_Delay,
*************** package Aspects is
*** 948,957 ****
        Aspect_Invariant                    => Always_Delay,
        Aspect_Iterable                     => Always_Delay,
        Aspect_Iterator_Element             => Always_Delay,
-       Aspect_Link_Name                    => Always_Delay,
-       Aspect_Linker_Section               => Always_Delay,
        Aspect_Lock_Free                    => Always_Delay,
        Aspect_No_Inline                    => Always_Delay,
        Aspect_No_Return                    => Always_Delay,
        Aspect_Output                       => Always_Delay,
        Aspect_Persistent_BSS               => Always_Delay,
--- 994,1002 ----
        Aspect_Invariant                    => Always_Delay,
        Aspect_Iterable                     => Always_Delay,
        Aspect_Iterator_Element             => Always_Delay,
        Aspect_Lock_Free                    => Always_Delay,
        Aspect_No_Inline                    => Always_Delay,
+       Aspect_No_Raise                     => Always_Delay,
        Aspect_No_Return                    => Always_Delay,
        Aspect_Output                       => Always_Delay,
        Aspect_Persistent_BSS               => Always_Delay,
*************** package Aspects is
*** 978,983 ****
--- 1023,1029 ----
        Aspect_Shared_Passive               => Always_Delay,
        Aspect_Simple_Storage_Pool          => Always_Delay,
        Aspect_Simple_Storage_Pool_Type     => Always_Delay,
+       Aspect_Stable_Properties            => Always_Delay,
        Aspect_Static_Predicate             => Always_Delay,
        Aspect_Storage_Model_Type           => Always_Delay,
        Aspect_Storage_Pool                 => Always_Delay,
*************** package Aspects is
*** 1013,1020 ****
--- 1059,1069 ----
        Aspect_Effective_Reads              => Never_Delay,
        Aspect_Effective_Writes             => Never_Delay,
        Aspect_Exceptional_Cases            => Never_Delay,
+       Aspect_Exit_Cases                   => Never_Delay,
        Aspect_Export                       => Never_Delay,
        Aspect_Extensions_Visible           => Never_Delay,
+       Aspect_External_Initialization      => Never_Delay,
+       Aspect_First_Controlling_Parameter  => Never_Delay,
        Aspect_Ghost                        => Never_Delay,
        Aspect_Global                       => Never_Delay,
        Aspect_GNAT_Annotate                => Never_Delay,
*************** package Aspects is
*** 1022,1028 ****
        Aspect_Initial_Condition            => Never_Delay,
        Aspect_Local_Restrictions           => Never_Delay,
        Aspect_Initializes                  => Never_Delay,
-       Aspect_Max_Entry_Queue_Depth        => Never_Delay,
        Aspect_Max_Entry_Queue_Length       => Never_Delay,
        Aspect_Max_Queue_Length             => Never_Delay,
        Aspect_No_Caching                   => Never_Delay,
--- 1071,1076 ----
*************** package Aspects is
*** 1039,1045 ****
        Aspect_Relaxed_Initialization       => Never_Delay,
        Aspect_Side_Effects                 => Never_Delay,
        Aspect_SPARK_Mode                   => Never_Delay,
-       Aspect_Stable_Properties            => Always_Delay,
        Aspect_Static                       => Never_Delay,
        Aspect_Subprogram_Variant           => Never_Delay,
        Aspect_Synchronization              => Never_Delay,
--- 1087,1092 ----
*************** package Aspects is
*** 1055,1061 ****
--- 1102,1112 ----
        Aspect_Atomic_Components            => Rep_Aspect,
        Aspect_Bit_Order                    => Rep_Aspect,
        Aspect_Component_Size               => Rep_Aspect,
+       Aspect_Extended_Access              => Rep_Aspect,
+       Aspect_External_Name                => Rep_Aspect,
        Aspect_Full_Access_Only             => Rep_Aspect,
+       Aspect_Link_Name                    => Rep_Aspect,
+       Aspect_Linker_Section               => Rep_Aspect,
        Aspect_Machine_Radix                => Rep_Aspect,
        Aspect_Object_Size                  => Rep_Aspect,
        Aspect_Pack                         => Rep_Aspect,
*************** package Aspects is
*** 1159,1165 ****
                           Class_Present : Boolean := False;
                           Or_Rep_Item   : Boolean := False) return Node_Id;
     --  Find the aspect specification of aspect A (or A'Class if Class_Present)
!    --  associated with entity I.
     --  If found, then return the aspect specification.
     --  If not found and Or_Rep_Item is true, then look for a representation
     --  item (as opposed to an N_Aspect_Specification node) which specifies
--- 1210,1216 ----
                           Class_Present : Boolean := False;
                           Or_Rep_Item   : Boolean := False) return Node_Id;
     --  Find the aspect specification of aspect A (or A'Class if Class_Present)
!    --  associated with entity Id.
     --  If found, then return the aspect specification.
     --  If not found and Or_Rep_Item is true, then look for a representation
     --  item (as opposed to an N_Aspect_Specification node) which specifies
diff -Nrcpad gcc-14.2.0/gcc/ada/atree.adb gcc-15.1.0/gcc/ada/atree.adb
*** gcc-14.2.0/gcc/ada/atree.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/atree.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Atree is
*** 2076,2081 ****
--- 2076,2096 ----
        end if;
     end Node_Parent;
  
+    -------------------------------
+    -- Parent_Or_List_Containing --
+    -------------------------------
+ 
+    function Parent_Or_List_Containing (X : Union_Id) return Union_Id is
+    begin
+       if X in Node_Range then
+          return Link (Node_Id (X));
+       elsif X in List_Range then
+          return Union_Id (List_Parent (List_Id (X)));
+       else
+          raise Program_Error;
+       end if;
+    end Parent_Or_List_Containing;
+ 
     -------------
     -- Present --
     -------------
*************** package body Atree is
*** 2444,2450 ****
     -----------------------------------
  
     function Internal_Traverse_With_Parent
!       (Node : Node_Id) return Traverse_Final_Result
     is
        Tail_Recursion_Counter : Natural := 0;
  
--- 2459,2465 ----
     -----------------------------------
  
     function Internal_Traverse_With_Parent
!      (Node : Node_Id) return Traverse_Final_Result
     is
        Tail_Recursion_Counter : Natural := 0;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/atree.ads gcc-15.1.0/gcc/ada/atree.ads
*** gcc-14.2.0/gcc/ada/atree.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/atree.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Atree is
*** 161,175 ****
     --  Number of warnings detected. Initialized to zero at the start of
     --  compilation. This count includes the count of style and info messages.
  
!    Warning_Info_Messages : Nat := 0;
!    --  Number of info messages generated as warnings. Info messages are never
!    --  treated as errors (whether from use of the pragma, or the compiler
!    --  switch -gnatwe).
! 
!    Report_Info_Messages : Nat := 0;
     --  Number of info messages generated as reports. Info messages are never
     --  treated as errors (whether from use of the pragma, or the compiler
!    --  switch -gnatwe). Used under Spark_Mode to report proved checks.
  
     Check_Messages : Nat := 0;
     --  Number of check messages generated. Check messages are neither warnings
--- 161,171 ----
     --  Number of warnings detected. Initialized to zero at the start of
     --  compilation. This count includes the count of style and info messages.
  
!    Info_Messages : Nat := 0;
     --  Number of info messages generated as reports. Info messages are never
     --  treated as errors (whether from use of the pragma, or the compiler
!    --  switch -gnatwe). Used by GNATprove under SPARK_Mode to report proved
!    --  checks.
  
     Check_Messages : Nat := 0;
     --  Number of check messages generated. Check messages are neither warnings
*************** package Atree is
*** 460,465 ****
--- 456,466 ----
     --  Parent has the same name as the one in Nlists; Node_Parent can be used
     --  more easily in the debugger.
  
+    function Parent_Or_List_Containing (X : Union_Id) return Union_Id;
+    --  X must be in Node_Range or in List_Range. If X is in Node_Range and is
+    --  contained in a list, returns that list, otherwise return the parent of
+    --  the list or node represented by X.
+ 
     function Paren_Count (N : Node_Id) return Nat;
     pragma Inline (Paren_Count);
     --  Number of parentheses that surround an expression
diff -Nrcpad gcc-14.2.0/gcc/ada/atree.h gcc-15.1.0/gcc/ada/atree.h
*** gcc-14.2.0/gcc/ada/atree.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/atree.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/aux-io.c gcc-15.1.0/gcc/ada/aux-io.c
*** gcc-14.2.0/gcc/ada/aux-io.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/aux-io.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/back_end.adb gcc-15.1.0/gcc/ada/back_end.adb
*** gcc-14.2.0/gcc/ada/back_end.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/back_end.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/back_end.ads gcc-15.1.0/gcc/ada/back_end.ads
*** gcc-14.2.0/gcc/ada/back_end.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/back_end.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/backend_utils.adb gcc-15.1.0/gcc/ada/backend_utils.adb
*** gcc-14.2.0/gcc/ada/backend_utils.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/backend_utils.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2021-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2021-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Backend_Utils is
*** 38,44 ****
        First : constant Positive := Switch_Chars'First + 1;
        Last  : constant Natural  := Switch_Last (Switch_Chars);
     begin
- 
        --  Recognize -gxxx switches
  
        if Switch_Chars (First) = 'g' then
--- 38,43 ----
*************** package body Backend_Utils is
*** 66,71 ****
--- 65,85 ----
        elsif Switch_Chars (First .. Last) = "fdiagnostics-format=json" then
           Opt.JSON_Output := True;
  
+       --  Back end switch -fdiagnostics-format=sarif-file tells the frontend
+       --  to output its error and warning messages in the sarif format. The
+       --  messages from gnat are written to a file <source_file>.gnat.sarif.
+ 
+       elsif Switch_Chars (First .. Last) = "fdiagnostics-format=sarif-file"
+       then
+          Opt.SARIF_File := True;
+ 
+       --  Back end switch -fdiagnostics-format=sarif-stderr tells the frontend
+       --  to output its error and warning messages in the sarif format.
+ 
+       elsif Switch_Chars (First .. Last) = "fdiagnostics-format=sarif-stderr"
+       then
+          Opt.SARIF_Output := True;
+ 
        --  Back-end switch -fno-inline also sets the front end flags to entirely
        --  inhibit all inlining. So we store it and set the appropriate
        --  flags.
diff -Nrcpad gcc-14.2.0/gcc/ada/backend_utils.ads gcc-15.1.0/gcc/ada/backend_utils.ads
*** gcc-14.2.0/gcc/ada/backend_utils.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/backend_utils.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2021-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2021-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bcheck.adb gcc-15.1.0/gcc/ada/bcheck.adb
*** gcc-14.2.0/gcc/ada/bcheck.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bcheck.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Osint;
*** 36,41 ****
--- 36,42 ----
  with Output;   use Output;
  with Rident;   use Rident;
  with Types;    use Types;
+ with Uname;
  
  package body Bcheck is
  
*************** package body Bcheck is
*** 68,73 ****
--- 69,80 ----
     --  Used to compare two unit names for No_Dependence checks. U1 is in
     --  standard unit name format, and U2 is in literal form with periods.
  
+    procedure Check_Consistency_Of_Sdep
+      (A : ALIs_Record; D : Sdep_Record; Src : Source_Record);
+    --  Called by Check_Consistency to check the consistency of one Sdep record,
+    --  where A is the ALI, and D represents the unit it depends on, and Src is
+    --  the source file corresponding to D.
+ 
     -------------------------------------
     -- Check_Configuration_Consistency --
     -------------------------------------
*************** package body Bcheck is
*** 107,121 ****
        Check_Consistent_Dispatching_Policy;
     end Check_Configuration_Consistency;
  
     -----------------------
     -- Check_Consistency --
     -----------------------
  
     procedure Check_Consistency is
!       Src : Source_Id;
!       --  Source file Id for this Sdep entry
  
!       ALI_Path_Id : File_Name_Type;
  
     begin
        --  First, we go through the source table to see if there are any cases
--- 114,246 ----
        Check_Consistent_Dispatching_Policy;
     end Check_Configuration_Consistency;
  
+    -------------------------------
+    -- Check_Consistency_Of_Sdep --
+    -------------------------------
+ 
+    procedure Check_Consistency_Of_Sdep
+      (A : ALIs_Record; D : Sdep_Record; Src : Source_Record)
+    is
+       use Uname;
+       ALI_Path_Id : File_Name_Type;
+    begin
+       --  Check for special case of withing a unit that does not exist any
+       --  more. If the unit was completely missing we would already have
+       --  detected this, but a nasty case arises when we have a subprogram body
+       --  with no spec, and some obsolete unit with's a previous (now
+       --  disappeared) spec. We detect this nasty case by noticing we're
+       --  depending on a spec that has no corresponding unit table entry,
+       --  but the body does.
+ 
+       if Present (D.Unit_Name)
+         and then Is_Spec_Name (D.Unit_Name)
+         and then Get_Name_Table_Int (D.Unit_Name) = 0 -- no unit table entry?
+         and then Get_Name_Table_Int (Get_Body_Name (D.Unit_Name)) /= 0
+       then
+          Error_Msg_File_1 := A.Sfile;
+          Error_Msg_Unit_1 := D.Unit_Name;
+          Error_Msg ("{ depends on $ which no longer exists");
+       end if;
+ 
+       --  Now if the time stamps match, or all checksums match, then we are OK;
+       --  otherwise we have an error.
+ 
+       if D.Stamp /= Src.Stamp and then not Src.All_Checksums_Match then
+          Error_Msg_File_1 := A.Sfile;
+          Error_Msg_File_2 := D.Sfile;
+ 
+          --  Two styles of message, depending on whether or not
+          --  the updated file is the one that must be recompiled
+ 
+          if Error_Msg_File_1 = Error_Msg_File_2 then
+             if Tolerate_Consistency_Errors then
+                Error_Msg
+                   ("?{ has been modified and should be recompiled");
+             else
+                Error_Msg
+                  ("{ has been modified and must be recompiled");
+             end if;
+ 
+          else
+             ALI_Path_Id := Osint.Full_Lib_File_Name (A.Afile);
+ 
+             --  Guard against Find_File not finding (again) the file because
+             --  Primary_Directory has been clobbered in between.
+ 
+             if Present (ALI_Path_Id)
+               and then Osint.Is_Readonly_Library (ALI_Path_Id)
+             then
+                if Tolerate_Consistency_Errors then
+                   Error_Msg ("?{ should be recompiled");
+                   Error_Msg_File_1 := ALI_Path_Id;
+                   Error_Msg ("?({ is obsolete and read-only)");
+                else
+                   Error_Msg ("{ must be compiled");
+                   Error_Msg_File_1 := ALI_Path_Id;
+                   Error_Msg ("({ is obsolete and read-only)");
+                end if;
+ 
+             elsif Tolerate_Consistency_Errors then
+                Error_Msg
+                  ("?{ should be recompiled ({ has been modified)");
+ 
+             else
+                Error_Msg ("{ must be recompiled ({ has been modified)");
+             end if;
+          end if;
+ 
+          if not Tolerate_Consistency_Errors and Verbose_Mode then
+             Error_Msg_File_1 := Src.Stamp_File;
+ 
+             if Src.Source_Found then
+                Error_Msg_File_1 :=
+                  Osint.Full_Source_Name (Error_Msg_File_1);
+             else
+                Error_Msg_File_1 :=
+                  Osint.Full_Lib_File_Name (Error_Msg_File_1);
+             end if;
+ 
+             Error_Msg
+               ("time stamp from { " & String (Src.Stamp));
+ 
+             Error_Msg_File_1 := D.Sfile;
+             Error_Msg
+               (" conflicts with { timestamp " &
+                String (D.Stamp));
+ 
+             Error_Msg_File_1 :=
+               Osint.Full_Lib_File_Name (A.Afile);
+             Error_Msg (" from {");
+          end if;
+       end if;
+    end Check_Consistency_Of_Sdep;
+ 
     -----------------------
     -- Check_Consistency --
     -----------------------
  
     procedure Check_Consistency is
!       function Reified_Child_Spec (A : ALI_Id; D : Sdep_Id) return Boolean;
!       --  When we have a child subprogram body with no spec, the missing spec
!       --  is reified in the ALI file. This returns True if D is a dependency on
!       --  such a reified spec. The body always immediately follows the spec
!       --  and there is no no unit table entry for the spec in this case.
!       --  We do not want to call Check_Consistency_Of_Sdep for these specs,
!       --  because it confuses the detection of (truly) missing specs.
  
!       function Reified_Child_Spec (A : ALI_Id; D : Sdep_Id) return Boolean is
!          use Uname;
!       begin
!          return Present (Sdep.Table (D).Unit_Name)
!            and then Get_Name_Table_Int (Sdep.Table (D).Unit_Name) = 0
!            and then D /= ALIs.Table (A).Last_Sdep
!            and then Sdep.Table (D).Sfile = Sdep.Table (D + 1).Sfile
!            and then Is_Spec_Name (Sdep.Table (D).Unit_Name)
!            and then Get_Body_Name (Sdep.Table (D).Unit_Name) =
!                     Sdep.Table (D + 1).Unit_Name;
!       end Reified_Child_Spec;
! 
!    --  Start of processing for Check_Consistency
  
     begin
        --  First, we go through the source table to see if there are any cases
*************** package body Bcheck is
*** 172,260 ****
           Sdep_Loop : for D in
             ALIs.Table (A).First_Sdep .. ALIs.Table (A).Last_Sdep
           loop
!             if Sdep.Table (D).Dummy_Entry then
!                goto Continue;
!             end if;
! 
!             Src := Source_Id (Get_Name_Table_Int (Sdep.Table (D).Sfile));
! 
!             --  If the time stamps match, or all checksums match, then we
!             --  are OK, otherwise we have a definite error.
! 
!             if Sdep.Table (D).Stamp /= Source.Table (Src).Stamp
!               and then not Source.Table (Src).All_Checksums_Match
              then
!                Error_Msg_File_1 := ALIs.Table (A).Sfile;
!                Error_Msg_File_2 := Sdep.Table (D).Sfile;
! 
!                --  Two styles of message, depending on whether or not
!                --  the updated file is the one that must be recompiled
! 
!                if Error_Msg_File_1 = Error_Msg_File_2 then
!                   if Tolerate_Consistency_Errors then
!                      Error_Msg
!                         ("?{ has been modified and should be recompiled");
!                   else
!                      Error_Msg
!                        ("{ has been modified and must be recompiled");
!                   end if;
! 
!                else
!                   ALI_Path_Id :=
!                     Osint.Full_Lib_File_Name (ALIs.Table (A).Afile);
! 
!                   if Osint.Is_Readonly_Library (ALI_Path_Id) then
!                      if Tolerate_Consistency_Errors then
!                         Error_Msg ("?{ should be recompiled");
!                         Error_Msg_File_1 := ALI_Path_Id;
!                         Error_Msg ("?({ is obsolete and read-only)");
!                      else
!                         Error_Msg ("{ must be compiled");
!                         Error_Msg_File_1 := ALI_Path_Id;
!                         Error_Msg ("({ is obsolete and read-only)");
!                      end if;
! 
!                   elsif Tolerate_Consistency_Errors then
!                      Error_Msg
!                        ("?{ should be recompiled ({ has been modified)");
! 
!                   else
!                      Error_Msg ("{ must be recompiled ({ has been modified)");
!                   end if;
!                end if;
! 
!                if not Tolerate_Consistency_Errors and Verbose_Mode then
!                   Error_Msg_File_1 := Source.Table (Src).Stamp_File;
! 
!                   if Source.Table (Src).Source_Found then
!                      Error_Msg_File_1 :=
!                        Osint.Full_Source_Name (Error_Msg_File_1);
!                   else
!                      Error_Msg_File_1 :=
!                        Osint.Full_Lib_File_Name (Error_Msg_File_1);
!                   end if;
! 
!                   Error_Msg
!                     ("time stamp from { " & String (Source.Table (Src).Stamp));
! 
!                   Error_Msg_File_1 := Sdep.Table (D).Sfile;
!                   Error_Msg
!                     (" conflicts with { timestamp " &
!                      String (Sdep.Table (D).Stamp));
! 
!                   Error_Msg_File_1 :=
!                     Osint.Full_Lib_File_Name (ALIs.Table (A).Afile);
!                   Error_Msg (" from {");
!                end if;
! 
!                --  Exit from the loop through Sdep entries once we find one
!                --  that does not match.
! 
!                exit Sdep_Loop;
              end if;
- 
-          <<Continue>>
-             null;
           end loop Sdep_Loop;
        end loop ALIs_Loop;
     end Check_Consistency;
--- 297,310 ----
           Sdep_Loop : for D in
             ALIs.Table (A).First_Sdep .. ALIs.Table (A).Last_Sdep
           loop
!             if not Sdep.Table (D).Dummy_Entry
!               and then not Reified_Child_Spec (A, D)
              then
!                Check_Consistency_Of_Sdep
!                  (ALIs.Table (A), Sdep.Table (D),
!                   Source.Table
!                     (Source_Id (Get_Name_Table_Int (Sdep.Table (D).Sfile))));
              end if;
           end loop Sdep_Loop;
        end loop ALIs_Loop;
     end Check_Consistency;
*************** package body Bcheck is
*** 1263,1269 ****
     procedure Check_Duplicated_Subunits is
     begin
        for J in Sdep.First .. Sdep.Last loop
!          if Sdep.Table (J).Subunit_Name /= No_Name then
              Get_Decoded_Name_String (Sdep.Table (J).Subunit_Name);
              Name_Len := Name_Len + 2;
              Name_Buffer (Name_Len - 1) := '%';
--- 1313,1319 ----
     procedure Check_Duplicated_Subunits is
     begin
        for J in Sdep.First .. Sdep.Last loop
!          if Sdep.Table (J).Subunit_Name /= No_Unit_Name then
              Get_Decoded_Name_String (Sdep.Table (J).Subunit_Name);
              Name_Len := Name_Len + 2;
              Name_Buffer (Name_Len - 1) := '%';
diff -Nrcpad gcc-14.2.0/gcc/ada/bcheck.ads gcc-15.1.0/gcc/ada/bcheck.ads
*** gcc-14.2.0/gcc/ada/bcheck.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bcheck.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/binde.adb gcc-15.1.0/gcc/ada/binde.adb
*** gcc-14.2.0/gcc/ada/binde.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/binde.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Binde is
*** 2334,2340 ****
        for J in Sdep.First .. Sdep.Last loop
           Source := Sdep.Table (J).Sfile;
  
!          if Sdep.Table (J).Subunit_Name /= No_Name
             and then Put_In_Sources (Source)
             and then not Is_Internal_File_Name (Source)
           then
--- 2334,2340 ----
        for J in Sdep.First .. Sdep.Last loop
           Source := Sdep.Table (J).Sfile;
  
!          if Sdep.Table (J).Subunit_Name /= No_Unit_Name
             and then Put_In_Sources (Source)
             and then not Is_Internal_File_Name (Source)
           then
diff -Nrcpad gcc-14.2.0/gcc/ada/binde.ads gcc-15.1.0/gcc/ada/binde.ads
*** gcc-14.2.0/gcc/ada/binde.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/binde.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/binderr.adb gcc-15.1.0/gcc/ada/binderr.adb
*** gcc-14.2.0/gcc/ada/binderr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/binderr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/binderr.ads gcc-15.1.0/gcc/ada/binderr.ads
*** gcc-14.2.0/gcc/ada/binderr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/binderr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindgen.adb gcc-15.1.0/gcc/ada/bindgen.adb
*** gcc-14.2.0/gcc/ada/bindgen.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindgen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 24,30 ****
  ------------------------------------------------------------------------------
  
  with Casing;   use Casing;
- with Fname;    use Fname;
  with Gnatvsn;  use Gnatvsn;
  with Hostparm;
  with Namet;    use Namet;
--- 24,29 ----
*************** package body Bindgen is
*** 57,67 ****
     Num_Elab_Calls : Nat := 0;
     --  Number of generated calls to elaboration routines
  
!    Num_Primary_Stacks : Int := 0;
     --  Number of default-sized primary stacks the binder needs to allocate for
     --  task objects declared in the program.
  
!    Num_Sec_Stacks : Int := 0;
     --  Number of default-sized primary stacks the binder needs to allocate for
     --  task objects declared in the program.
  
--- 56,66 ----
     Num_Elab_Calls : Nat := 0;
     --  Number of generated calls to elaboration routines
  
!    Num_Primary_Stacks : Nat := 0;
     --  Number of default-sized primary stacks the binder needs to allocate for
     --  task objects declared in the program.
  
!    Num_Sec_Stacks : Nat := 0;
     --  Number of default-sized primary stacks the binder needs to allocate for
     --  task objects declared in the program.
  
*************** package body Bindgen is
*** 273,281 ****
     --  such a pragma is given (the string will be a null string if no pragmas
     --  were used). If pragma were present the entries apply to the interrupts
     --  in sequence from the first interrupt, and are set to one of four
!    --  possible settings: 'n' for not specified, 'u' for user, 'r' for run
!    --  time, 's' for system, see description of Interrupt_State pragma for
!    --  further details.
  
     --  Num_Interrupt_States is the length of the Interrupt_States string. It
     --  will be set to zero if no Interrupt_State pragmas are present.
--- 272,279 ----
     --  such a pragma is given (the string will be a null string if no pragmas
     --  were used). If pragma were present the entries apply to the interrupts
     --  in sequence from the first interrupt, and are set to one of four
!    --  possible settings: 'n', 'u', 'r', 's', see description in init.c
!    --  (__gnat_get_interrupt_state) for further details.
  
     --  Num_Interrupt_States is the length of the Interrupt_States string. It
     --  will be set to zero if no Interrupt_State pragmas are present.
*************** package body Bindgen is
*** 819,826 ****
              WBI ("      pragma Import (C, XDR_Stream, ""__gl_xdr_stream"");");
           end if;
  
!          --  Import entry point for elaboration time signal handler
!          --  installation, and indication of if it's been called previously.
  
           WBI ("");
           WBI ("      procedure Runtime_Initialize " &
--- 817,827 ----
              WBI ("      pragma Import (C, XDR_Stream, ""__gl_xdr_stream"");");
           end if;
  
!          WBI ("      Interrupts_Default_To_System : Integer;");
!          WBI ("      pragma Import (C, Interrupts_Default_To_System, " &
!               """__gl_interrupts_default_to_system"");");
! 
!          --  Import entry point for initialization of the runtime
  
           WBI ("");
           WBI ("      procedure Runtime_Initialize " &
*************** package body Bindgen is
*** 828,833 ****
--- 829,843 ----
           WBI ("      pragma Import (C, Runtime_Initialize, " &
                """__gnat_runtime_initialize"");");
  
+          --  Import entry point for initialization of the tasking runtime
+ 
+          if With_GNARL then
+             WBI ("");
+             WBI ("      procedure Tasking_Runtime_Initialize;");
+             WBI ("      pragma Import (C, Tasking_Runtime_Initialize, " &
+                  """__gnat_tasking_runtime_initialize"");");
+          end if;
+ 
           --  Import handlers attach procedure for sequential elaboration policy
  
           if System_Interrupts_Used
*************** package body Bindgen is
*** 1032,1037 ****
--- 1042,1052 ----
           Set_String (";");
           Write_Statement_Buffer;
  
+          if Interrupts_Default_To_System_Specified then
+             Set_String ("      Interrupts_Default_To_System := 1;");
+             Write_Statement_Buffer;
+          end if;
+ 
           if Leap_Seconds_Support then
              WBI ("      Leap_Seconds_Support := 1;");
           end if;
*************** package body Bindgen is
*** 1090,1095 ****
--- 1105,1116 ----
           --  Generate call to Runtime_Initialize
  
           WBI ("      Runtime_Initialize (1);");
+ 
+          --  Generate call to Tasking_Runtime_Initialize
+ 
+          if With_GNARL then
+             WBI ("      Tasking_Runtime_Initialize;");
+          end if;
        end if;
  
        --  Generate call to set Initialize_Scalar values if active
*************** package body Bindgen is
*** 1517,1523 ****
  
              --  Nothing to do if predefined unit in no run time mode
  
!             if No_Run_Time_Mode and then Is_Predefined_File_Name (U.Sfile) then
                 null;
  
              --  Likewise if this is an interface to a stand alone library
--- 1538,1544 ----
  
              --  Nothing to do if predefined unit in no run time mode
  
!             if No_Run_Time_Mode and then U.Predefined then
                 null;
  
              --  Likewise if this is an interface to a stand alone library
*************** package body Bindgen is
*** 1702,1710 ****
                --  Don't generate reference for predefined file in No_Run_Time
                --  mode, since we don't include the object files in this case
  
!               and then not
!                 (No_Run_Time_Mode
!                   and then Is_Predefined_File_Name (U.Sfile))
              then
                 Get_Name_String (U.Sfile);
                 Set_String ("   ");
--- 1723,1729 ----
                --  Don't generate reference for predefined file in No_Run_Time
                --  mode, since we don't include the object files in this case
  
!               and then not (No_Run_Time_Mode and then U.Predefined)
              then
                 Get_Name_String (U.Sfile);
                 Set_String ("   ");
*************** package body Bindgen is
*** 2091,2097 ****
        if Bind_Main_Program
          and then not Minimal_Binder
          and then not CodePeer_Mode
!         and then not Generate_C_Code
        then
           WBI ("      Ensure_Reference : aliased System.Address := " &
                "Ada_Main_Program_Name'Address;");
--- 2110,2116 ----
        if Bind_Main_Program
          and then not Minimal_Binder
          and then not CodePeer_Mode
!         and then not CCG_Mode
        then
           WBI ("      Ensure_Reference : aliased System.Address := " &
                "Ada_Main_Program_Name'Address;");
*************** package body Bindgen is
*** 3491,3497 ****
  
              begin
                 while IS_Pragma_Settings.Last < Inum loop
!                   IS_Pragma_Settings.Append ('n');
                 end loop;
  
                 IS_Pragma_Settings.Table (Inum) := Stat;
--- 3510,3520 ----
  
              begin
                 while IS_Pragma_Settings.Last < Inum loop
!                   if Interrupts_Default_To_System_Specified then
!                      IS_Pragma_Settings.Append ('s');
!                   else
!                      IS_Pragma_Settings.Append ('n');
!                   end if;
                 end loop;
  
                 IS_Pragma_Settings.Table (Inum) := Stat;
diff -Nrcpad gcc-14.2.0/gcc/ada/bindgen.ads gcc-15.1.0/gcc/ada/bindgen.ads
*** gcc-14.2.0/gcc/ada/bindgen.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindgen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-augmentors.adb gcc-15.1.0/gcc/ada/bindo-augmentors.adb
*** gcc-14.2.0/gcc/ada/bindo-augmentors.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-augmentors.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-augmentors.ads gcc-15.1.0/gcc/ada/bindo-augmentors.ads
*** gcc-14.2.0/gcc/ada/bindo-augmentors.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-augmentors.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-builders.adb gcc-15.1.0/gcc/ada/bindo-builders.adb
*** gcc-14.2.0/gcc/ada/bindo-builders.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-builders.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-builders.ads gcc-15.1.0/gcc/ada/bindo-builders.ads
*** gcc-14.2.0/gcc/ada/bindo-builders.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-builders.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-diagnostics.adb gcc-15.1.0/gcc/ada/bindo-diagnostics.adb
*** gcc-14.2.0/gcc/ada/bindo-diagnostics.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-diagnostics.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-diagnostics.ads gcc-15.1.0/gcc/ada/bindo-diagnostics.ads
*** gcc-14.2.0/gcc/ada/bindo-diagnostics.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-diagnostics.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-elaborators.adb gcc-15.1.0/gcc/ada/bindo-elaborators.adb
*** gcc-14.2.0/gcc/ada/bindo-elaborators.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-elaborators.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-elaborators.ads gcc-15.1.0/gcc/ada/bindo-elaborators.ads
*** gcc-14.2.0/gcc/ada/bindo-elaborators.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-elaborators.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-graphs.adb gcc-15.1.0/gcc/ada/bindo-graphs.adb
*** gcc-14.2.0/gcc/ada/bindo-graphs.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-graphs.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-graphs.ads gcc-15.1.0/gcc/ada/bindo-graphs.ads
*** gcc-14.2.0/gcc/ada/bindo-graphs.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-graphs.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-units.adb gcc-15.1.0/gcc/ada/bindo-units.adb
*** gcc-14.2.0/gcc/ada/bindo-units.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-units.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Bindo.Units is
*** 103,109 ****
  
     begin
        pragma Assert (U_Rec.Utype = Is_Spec);
!       return U_Id - 1;
     end Corresponding_Body;
  
     ------------------------
--- 103,111 ----
  
     begin
        pragma Assert (U_Rec.Utype = Is_Spec);
!       return Result : constant Unit_Id := U_Id - 1 do
!          pragma Assert (ALI.Units.Table (Result).Utype = Is_Body);
!       end return;
     end Corresponding_Body;
  
     ------------------------
*************** package body Bindo.Units is
*** 117,123 ****
  
     begin
        pragma Assert (U_Rec.Utype = Is_Body);
!       return U_Id + 1;
     end Corresponding_Spec;
  
     ------------------------
--- 119,127 ----
  
     begin
        pragma Assert (U_Rec.Utype = Is_Body);
!       return Result : constant Unit_Id := U_Id + 1 do
!          pragma Assert (ALI.Units.Table (Result).Utype = Is_Spec);
!       end return;
     end Corresponding_Spec;
  
     ------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-units.ads gcc-15.1.0/gcc/ada/bindo-units.ads
*** gcc-14.2.0/gcc/ada/bindo-units.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-units.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-validators.adb gcc-15.1.0/gcc/ada/bindo-validators.adb
*** gcc-14.2.0/gcc/ada/bindo-validators.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-validators.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-validators.ads gcc-15.1.0/gcc/ada/bindo-validators.ads
*** gcc-14.2.0/gcc/ada/bindo-validators.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-validators.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-writers.adb gcc-15.1.0/gcc/ada/bindo-writers.adb
*** gcc-14.2.0/gcc/ada/bindo-writers.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-writers.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo-writers.ads gcc-15.1.0/gcc/ada/bindo-writers.ads
*** gcc-14.2.0/gcc/ada/bindo-writers.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo-writers.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo.adb gcc-15.1.0/gcc/ada/bindo.adb
*** gcc-14.2.0/gcc/ada/bindo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindo.ads gcc-15.1.0/gcc/ada/bindo.ads
*** gcc-14.2.0/gcc/ada/bindo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindusg.adb gcc-15.1.0/gcc/ada/bindusg.adb
*** gcc-14.2.0/gcc/ada/bindusg.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindusg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/bindusg.ads gcc-15.1.0/gcc/ada/bindusg.ads
*** gcc-14.2.0/gcc/ada/bindusg.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/bindusg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/butil.adb gcc-15.1.0/gcc/ada/butil.adb
*** gcc-14.2.0/gcc/ada/butil.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/butil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/butil.ads gcc-15.1.0/gcc/ada/butil.ads
*** gcc-14.2.0/gcc/ada/butil.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/butil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/cal.c gcc-15.1.0/gcc/ada/cal.c
*** gcc-14.2.0/gcc/ada/cal.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/cal.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/casing.adb gcc-15.1.0/gcc/ada/casing.adb
*** gcc-14.2.0/gcc/ada/casing.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/casing.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/casing.ads gcc-15.1.0/gcc/ada/casing.ads
*** gcc-14.2.0/gcc/ada/casing.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/casing.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/checks.adb gcc-15.1.0/gcc/ada/checks.adb
*** gcc-14.2.0/gcc/ada/checks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/checks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sem_Ch3;        use Sem_Ch3;
*** 50,55 ****
--- 50,56 ----
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Cat;        use Sem_Cat;
  with Sem_Disp;       use Sem_Disp;
+ with Sem_Elab;       use Sem_Elab;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Mech;       use Sem_Mech;
  with Sem_Res;        use Sem_Res;
*************** package body Checks is
*** 322,337 ****
     --  that the access value is non-null, since the checks do not
     --  not apply to null access values.
  
!    procedure Install_Static_Check (R_Cno : Node_Id; Loc : Source_Ptr);
     --  Called by Apply_{Length,Range}_Checks to rewrite the tree with the
     --  Constraint_Error node.
  
     function Is_Signed_Integer_Arithmetic_Op (N : Node_Id) return Boolean;
     --  Returns True if node N is for an arithmetic operation with signed
!    --  integer operands. This includes unary and binary operators, and also
!    --  if and case expression nodes where the dependent expressions are of
!    --  a signed integer type. These are the kinds of nodes for which special
!    --  handling applies in MINIMIZED or ELIMINATED overflow checking mode.
  
     function Range_Or_Validity_Checks_Suppressed
       (Expr : Node_Id) return Boolean;
--- 323,340 ----
     --  that the access value is non-null, since the checks do not
     --  not apply to null access values.
  
!    procedure Install_Static_Check
!      (R_Cno : Node_Id; Loc : Source_Ptr; Reason : RT_Exception_Code);
     --  Called by Apply_{Length,Range}_Checks to rewrite the tree with the
     --  Constraint_Error node.
  
     function Is_Signed_Integer_Arithmetic_Op (N : Node_Id) return Boolean;
     --  Returns True if node N is for an arithmetic operation with signed
!    --  integer operands. This includes unary and binary operators (including
!    --  comparison operators), and also if and case expression nodes which
!    --  yield a value of a signed integer type.
!    --  These are the kinds of nodes for which special handling applies in
!    --  MINIMIZED or ELIMINATED overflow checking mode.
  
     function Range_Or_Validity_Checks_Suppressed
       (Expr : Node_Id) return Boolean;
*************** package body Checks is
*** 346,352 ****
        Warn_Node  : Node_Id) return Check_Result;
     --  Like Apply_Selected_Length_Checks, except it doesn't modify
     --  anything, just returns a list of nodes as described in the spec of
!    --  this package for the Range_Check function.
     --  ??? In fact it does construct the test and insert it into the tree,
     --  and insert actions in various ways (calling Insert_Action directly
     --  in particular) so we do not call it in GNATprove mode, contrary to
--- 349,355 ----
        Warn_Node  : Node_Id) return Check_Result;
     --  Like Apply_Selected_Length_Checks, except it doesn't modify
     --  anything, just returns a list of nodes as described in the spec of
!    --  this package for the Get_Range_Checks function.
     --  ??? In fact it does construct the test and insert it into the tree,
     --  and insert actions in various ways (calling Insert_Action directly
     --  in particular) so we do not call it in GNATprove mode, contrary to
*************** package body Checks is
*** 359,365 ****
        Warn_Node  : Node_Id) return Check_Result;
     --  Like Apply_Range_Check, except it does not modify anything, just
     --  returns a list of nodes as described in the spec of this package
!    --  for the Range_Check function.
  
     ------------------------------
     -- Access_Checks_Suppressed --
--- 362,368 ----
        Warn_Node  : Node_Id) return Check_Result;
     --  Like Apply_Range_Check, except it does not modify anything, just
     --  returns a list of nodes as described in the spec of this package
!    --  for the Get_Range_Checks function.
  
     ------------------------------
     -- Access_Checks_Suppressed --
*************** package body Checks is
*** 1547,1553 ****
        then
           if (Etype (N) = Typ
                or else (Do_Access and then Designated_Type (Typ) = S_Typ))
!            and then not Is_Aliased_View (Lhs)
           then
              return;
           end if;
--- 1550,1556 ----
        then
           if (Etype (N) = Typ
                or else (Do_Access and then Designated_Type (Typ) = S_Typ))
!            and then (No (Lhs) or else not Is_Aliased_View (Lhs))
           then
              return;
           end if;
*************** package body Checks is
*** 2073,2079 ****
           Lo := Succ (Expr_Type, UR_From_Uint (Ifirst - 1));
           Lo_OK := True;
  
!       elsif abs (Ifirst) < Max_Bound then
           Lo := UR_From_Uint (Ifirst) - Ureal_Half;
           Lo_OK := (Ifirst > 0);
  
--- 2076,2082 ----
           Lo := Succ (Expr_Type, UR_From_Uint (Ifirst - 1));
           Lo_OK := True;
  
!       elsif abs Ifirst < Max_Bound then
           Lo := UR_From_Uint (Ifirst) - Ureal_Half;
           Lo_OK := (Ifirst > 0);
  
*************** package body Checks is
*** 2117,2123 ****
           Hi := Pred (Expr_Type, UR_From_Uint (Ilast + 1));
           Hi_OK := True;
  
!       elsif abs (Ilast) < Max_Bound then
           Hi := UR_From_Uint (Ilast) + Ureal_Half;
           Hi_OK := (Ilast < 0);
        else
--- 2120,2126 ----
           Hi := Pred (Expr_Type, UR_From_Uint (Ilast + 1));
           Hi_OK := True;
  
!       elsif abs Ilast < Max_Bound then
           Hi := UR_From_Uint (Ilast) + Ureal_Half;
           Hi_OK := (Ilast < 0);
        else
*************** package body Checks is
*** 2890,2895 ****
--- 2893,2902 ----
  
        if Deref then
           Expr := Make_Explicit_Dereference (Loc, Prefix => Expr);
+ 
+          --  Preserve Comes_From_Source for Predicate_Check_In_Scope
+ 
+          Preserve_Comes_From_Source (Expr, N);
        end if;
  
        --  Disable checks to prevent an infinite recursion
*************** package body Checks is
*** 2899,2904 ****
--- 2906,2983 ----
     end Apply_Predicate_Check;
  
     -----------------------
+    -- Apply_Raise_Check --
+    -----------------------
+ 
+    procedure Apply_Raise_Check (N : Node_Id) is
+       Loc : constant Source_Ptr := Sloc (N);
+ 
+       Block    : Node_Id;
+       Block_Id : Entity_Id;
+       HSS      : Node_Id;
+       Spec_Id  : Entity_Id;
+ 
+    begin
+       pragma Assert (Nkind (N) = N_Subprogram_Body);
+ 
+       if Present (Corresponding_Spec (N)) then
+          Spec_Id := Corresponding_Spec (N);
+       else
+          Spec_Id := Defining_Entity (N);
+       end if;
+ 
+       --  Return immediately if the check is not needed or is suppressed
+ 
+       if not No_Raise (Spec_Id) or else Raise_Checks_Suppressed (Spec_Id) then
+          return;
+       end if;
+ 
+       --  Build a block using the declarations, statements and At_End procedure
+       --  from the subprogram body.
+ 
+       Block_Id := New_Internal_Entity (E_Block, Spec_Id, Loc, 'B');
+       Set_Etype (Block_Id, Standard_Void_Type);
+       Set_Scope (Block_Id, Spec_Id);
+ 
+       Block :=
+         Make_Block_Statement (Loc,
+           Identifier                 => New_Occurrence_Of (Block_Id, Loc),
+           Declarations               => Declarations (N),
+           Handled_Statement_Sequence => Handled_Statement_Sequence (N),
+           At_End_Proc                => At_End_Proc (N));
+ 
+       Set_Parent (Block_Id, Block);
+ 
+       --  Wrap the block in a sequence of statements with an Others handler
+       --  and attach it directly to the subprogram body. Generate:
+       --
+       --    begin
+       --      Bnn :
+       --      ...
+       --      end Bnn;
+       --    exception
+       --      when others =>
+       --        [program_error "raise check failed"]
+       --    end
+ 
+       HSS :=
+         Make_Handled_Sequence_Of_Statements (Loc,
+           Statements         => New_List (Block),
+           Exception_Handlers => New_List (
+             Make_Exception_Handler (Loc,
+               Exception_Choices => New_List (Make_Others_Choice (Loc)),
+               Statements        => New_List (
+                 Make_Raise_Program_Error (Loc,
+                   Reason => PE_Raise_Check_Failed)))));
+ 
+       Set_Declarations (N, No_List);
+       Set_Handled_Statement_Sequence (N, HSS);
+       Set_At_End_Proc (N, Empty);
+ 
+       Analyze (HSS);
+    end Apply_Raise_Check;
+ 
+    -----------------------
     -- Apply_Range_Check --
     -----------------------
  
*************** package body Checks is
*** 3001,3007 ****
              Insert_Action (Insert_Node, R_Cno);
  
           else
!             Install_Static_Check (R_Cno, Loc);
           end if;
        end loop;
     end Apply_Range_Check;
--- 3080,3086 ----
              Insert_Action (Insert_Node, R_Cno);
  
           else
!             Install_Static_Check (R_Cno, Loc, CE_Range_Check_Failed);
           end if;
        end loop;
     end Apply_Range_Check;
*************** package body Checks is
*** 3469,3475 ****
              end if;
  
           else
!             Install_Static_Check (R_Cno, Loc);
           end if;
        end loop;
     end Apply_Selected_Length_Checks;
--- 3548,3554 ----
              end if;
  
           else
!             Install_Static_Check (R_Cno, Loc, CE_Length_Check_Failed);
           end if;
        end loop;
     end Apply_Selected_Length_Checks;
*************** package body Checks is
*** 3901,3908 ****
     -------------------------------------
  
     --  Note: internally Disable/Enable_Atomic_Synchronization is implemented
!    --  using a bogus check called Atomic_Synchronization. This is to make it
!    --  more convenient to get exactly the same semantics as [Un]Suppress.
  
     function Atomic_Synchronization_Disabled (E : Entity_Id) return Boolean is
     begin
--- 3980,3989 ----
     -------------------------------------
  
     --  Note: internally Disable/Enable_Atomic_Synchronization is implemented
!    --  using a pseudo-check called _Atomic_Synchronization. This is to make it
!    --  more convenient to get the same placement and scope rules as
!    --  [Un]Suppress. The check name has a leading underscore to make
!    --  it reserved by the implementation.
  
     function Atomic_Synchronization_Disabled (E : Entity_Id) return Boolean is
     begin
*************** package body Checks is
*** 6162,6168 ****
        --  do the corresponding optimizations later on when applying the checks.
  
        if Mode in Minimized_Or_Eliminated then
!          if not (Overflow_Checks_Suppressed (Etype (N)))
             and then not (Is_Entity_Name (N)
                            and then Overflow_Checks_Suppressed (Entity (N)))
           then
--- 6243,6249 ----
        --  do the corresponding optimizations later on when applying the checks.
  
        if Mode in Minimized_Or_Eliminated then
!          if not Overflow_Checks_Suppressed (Etype (N))
             and then not (Is_Entity_Name (N)
                            and then Overflow_Checks_Suppressed (Entity (N)))
           then
*************** package body Checks is
*** 6725,6800 ****
  
           if Is_Scalar_Type (Typ) then
              declare
!                P : Node_Id;
!                N : Node_Id;
!                E : Entity_Id;
!                F : Entity_Id;
!                A : Node_Id;
!                L : List_Id;
  
              begin
!                --  Find actual argument (which may be a parameter association)
!                --  and the parent of the actual argument (the call statement)
! 
!                N := Expr;
!                P := Parent (Expr);
! 
!                if Nkind (P) = N_Parameter_Association then
!                   N := P;
!                   P := Parent (N);
!                end if;
! 
!                --  If this is an indirect or dispatching call, get signature
!                --  from the subprogram type.
  
!                if Nkind (P) in N_Entry_Call_Statement
!                              | N_Function_Call
!                              | N_Procedure_Call_Statement
                 then
!                   E := Get_Called_Entity (P);
!                   L := Parameter_Associations (P);
! 
!                   --  Only need to worry if there are indeed actuals, and if
!                   --  this could be a subprogram call, otherwise we cannot get
!                   --  a match (either we are not an argument, or the mode of
!                   --  the formal is not OUT). This test also filters out the
!                   --  generic case.
! 
!                   if Is_Non_Empty_List (L) and then Is_Subprogram (E) then
! 
!                      --  This is the loop through parameters, looking for an
!                      --  OUT parameter for which we are the argument.
! 
!                      F := First_Formal (E);
!                      A := First (L);
!                      while Present (F) loop
!                         if A = N
!                           and then (Ekind (F) = E_Out_Parameter
!                                      or else Mechanism (F) = By_Reference)
!                         then
!                            return;
!                         end if;
! 
!                         Next_Formal (F);
!                         Next (A);
!                      end loop;
!                   end if;
                 end if;
              end;
           end if;
        end if;
  
-       --  If this is a boolean expression, only its elementary operands need
-       --  checking: if they are valid, a boolean or short-circuit operation
-       --  with them will be valid as well.
- 
-       if Base_Type (Typ) = Standard_Boolean
-         and then
-          (Nkind (Expr) in N_Op or else Nkind (Expr) in N_Short_Circuit)
-       then
-          return;
-       end if;
- 
        --  If we fall through, a validity check is required
  
        Insert_Valid_Check (Expr, Related_Id, Is_Low_Bound, Is_High_Bound);
--- 6806,6828 ----
  
           if Is_Scalar_Type (Typ) then
              declare
!                Formal : Entity_Id;
!                Call   : Node_Id;
  
              begin
!                Find_Actual (Expr, Formal, Call);
  
!                if Present (Formal)
!                  and then
!                    (Ekind (Formal) = E_Out_Parameter
!                       or else Mechanism (Formal) = By_Reference)
                 then
!                   return;
                 end if;
              end;
           end if;
        end if;
  
        --  If we fall through, a validity check is required
  
        Insert_Valid_Check (Expr, Related_Id, Is_Low_Bound, Is_High_Bound);
*************** package body Checks is
*** 6811,6817 ****
     ----------------------
  
     function Expr_Known_Valid (Expr : Node_Id) return Boolean is
!       Typ : constant Entity_Id := Etype (Expr);
  
     begin
        --  Non-scalar types are always considered valid, since they never give
--- 6839,6845 ----
     ----------------------
  
     function Expr_Known_Valid (Expr : Node_Id) return Boolean is
!       Typ : constant Entity_Id := Validated_View (Etype (Expr));
  
     begin
        --  Non-scalar types are always considered valid, since they never give
*************** package body Checks is
*** 6838,6843 ****
--- 6866,6874 ----
        then
           return True;
  
+       elsif Is_Static_Expression (Expr) then
+          return True;
+ 
        --  If the expression is the value of an object that is known to be
        --  valid, then clearly the expression value itself is valid.
  
*************** package body Checks is
*** 6912,6920 ****
           return True;
  
        --  The result of a membership test is always valid, since it is true or
!       --  false, there are no other possibilities.
  
!       elsif Nkind (Expr) in N_Membership_Test then
           return True;
  
        --  For all other cases, we do not know the expression is valid
--- 6943,6952 ----
           return True;
  
        --  The result of a membership test is always valid, since it is true or
!       --  false, there are no other possibilities; same for short-circuit
!       --  operators.
  
!       elsif Nkind (Expr) in N_Membership_Test | N_Short_Circuit then
           return True;
  
        --  For all other cases, we do not know the expression is valid
*************** package body Checks is
*** 7244,7250 ****
        Loc   : constant Source_Ptr := Sloc (N);
        A     : constant Node_Id    := Prefix (N);
        A_Ent : constant Entity_Id  := Entity_Of_Prefix;
!       Sub   : Node_Id;
  
     --  Start of processing for Generate_Index_Checks
  
--- 7276,7283 ----
        Loc   : constant Source_Ptr := Sloc (N);
        A     : constant Node_Id    := Prefix (N);
        A_Ent : constant Entity_Id  := Entity_Of_Prefix;
! 
!       Expr : Node_Id;
  
     --  Start of processing for Generate_Index_Checks
  
*************** package body Checks is
*** 7273,7281 ****
        --  Delay the generation of the check until 'Loop_Entry has been properly
        --  expanded. This is done in Expand_Loop_Entry_Attributes.
  
!       elsif Nkind (Prefix (N)) = N_Attribute_Reference
!         and then Attribute_Name (Prefix (N)) = Name_Loop_Entry
!       then
           return;
        end if;
  
--- 7306,7312 ----
        --  Delay the generation of the check until 'Loop_Entry has been properly
        --  expanded. This is done in Expand_Loop_Entry_Attributes.
  
!       elsif Is_Attribute_Loop_Entry (Prefix (N)) then
           return;
        end if;
  
*************** package body Checks is
*** 7290,7302 ****
        --  us to omit the check have already been taken into account in the
        --  setting of the Do_Range_Check flag earlier on.
  
!       Sub := First (Expressions (N));
  
        --  Handle string literals
  
        if Ekind (Etype (A)) = E_String_Literal_Subtype then
!          if Do_Range_Check (Sub) then
!             Set_Do_Range_Check (Sub, False);
  
              --  For string literals we obtain the bounds of the string from the
              --  associated subtype.
--- 7321,7333 ----
        --  us to omit the check have already been taken into account in the
        --  setting of the Do_Range_Check flag earlier on.
  
!       Expr := First (Expressions (N));
  
        --  Handle string literals
  
        if Ekind (Etype (A)) = E_String_Literal_Subtype then
!          if Do_Range_Check (Expr) then
!             Set_Do_Range_Check (Expr, False);
  
              --  For string literals we obtain the bounds of the string from the
              --  associated subtype.
*************** package body Checks is
*** 7306,7313 ****
                  Condition =>
                     Make_Not_In (Loc,
                       Left_Opnd  =>
!                        Convert_To (Base_Type (Etype (Sub)),
!                          Duplicate_Subexpr_Move_Checks (Sub)),
                       Right_Opnd =>
                         Make_Attribute_Reference (Loc,
                           Prefix         => New_Occurrence_Of (Etype (A), Loc),
--- 7337,7344 ----
                  Condition =>
                     Make_Not_In (Loc,
                       Left_Opnd  =>
!                        Convert_To (Base_Type (Etype (Expr)),
!                          Duplicate_Subexpr_Move_Checks (Expr)),
                       Right_Opnd =>
                         Make_Attribute_Reference (Loc,
                           Prefix         => New_Occurrence_Of (Etype (A), Loc),
*************** package body Checks is
*** 7326,7336 ****
              Ind     : Pos;
              Num     : List_Id;
              Range_N : Node_Id;
  
           begin
              A_Idx := First_Index (Etype (A));
              Ind   := 1;
!             while Present (Sub) loop
                 if Do_Range_Check (Sub) then
                    Set_Do_Range_Check (Sub, False);
  
--- 7357,7375 ----
              Ind     : Pos;
              Num     : List_Id;
              Range_N : Node_Id;
+             Stmt    : Node_Id;
+             Sub     : Node_Id;
  
           begin
              A_Idx := First_Index (Etype (A));
              Ind   := 1;
!             while Present (Expr) loop
!                if Nkind (Expr) = N_Expression_With_Actions then
!                   Sub := Expression (Expr);
!                else
!                   Sub := Expr;
!                end if;
! 
                 if Do_Range_Check (Sub) then
                    Set_Do_Range_Check (Sub, False);
  
*************** package body Checks is
*** 7392,7398 ****
                           Expressions    => Num);
                    end if;
  
!                   Insert_Action (N,
                      Make_Raise_Constraint_Error (Loc,
                        Condition =>
                           Make_Not_In (Loc,
--- 7431,7437 ----
                           Expressions    => Num);
                    end if;
  
!                   Stmt :=
                      Make_Raise_Constraint_Error (Loc,
                        Condition =>
                           Make_Not_In (Loc,
*************** package body Checks is
*** 7400,7413 ****
                               Convert_To (Base_Type (Etype (Sub)),
                                 Duplicate_Subexpr_Move_Checks (Sub)),
                             Right_Opnd => Range_N),
!                       Reason => CE_Index_Check_Failed));
  
                    Checks_Generated.Elements (Ind) := True;
                 end if;
  
                 Next_Index (A_Idx);
                 Ind := Ind + 1;
!                Next (Sub);
              end loop;
           end;
        end if;
--- 7439,7459 ----
                               Convert_To (Base_Type (Etype (Sub)),
                                 Duplicate_Subexpr_Move_Checks (Sub)),
                             Right_Opnd => Range_N),
!                       Reason => CE_Index_Check_Failed);
! 
!                   if Nkind (Expr) = N_Expression_With_Actions then
!                      Append_To (Actions (Expr), Stmt);
!                      Analyze (Stmt);
!                   else
!                      Insert_Action (Expr, Stmt);
!                   end if;
  
                    Checks_Generated.Elements (Ind) := True;
                 end if;
  
                 Next_Index (A_Idx);
                 Ind := Ind + 1;
!                Next (Expr);
              end loop;
           end;
        end if;
*************** package body Checks is
*** 8296,8301 ****
--- 8342,8350 ----
           =>
              return Is_Signed_Integer_Type (Etype (N));
  
+          when N_Op_Compare =>
+             return Is_Signed_Integer_Type (Etype (Left_Opnd (N)));
+ 
           when N_Case_Expression
              | N_If_Expression
           =>
*************** package body Checks is
*** 8358,8368 ****
  
        if Inside_A_Generic then
           return;
!       end if;
  
        --  No check needed if known to be non-null
  
!       if Known_Non_Null (N) then
           return;
        end if;
  
--- 8407,8421 ----
  
        if Inside_A_Generic then
           return;
! 
!       --  No check during preanalysis
! 
!       elsif Preanalysis_Active then
!          return;
  
        --  No check needed if known to be non-null
  
!       elsif Known_Non_Null (N) then
           return;
        end if;
  
*************** package body Checks is
*** 8380,8386 ****
             --  where the expression might not be evaluated, and the warning
             --  appear as extraneous noise.
  
!            and then not Within_Case_Or_If_Expression (N)
           then
              Apply_Compile_Time_Constraint_Error
                (N, "null value not allowed here??", CE_Access_Check_Failed);
--- 8433,8439 ----
             --  where the expression might not be evaluated, and the warning
             --  appear as extraneous noise.
  
!            and then not Within_Conditional_Expression (N)
           then
              Apply_Compile_Time_Constraint_Error
                (N, "null value not allowed here??", CE_Access_Check_Failed);
*************** package body Checks is
*** 8522,8527 ****
--- 8575,8585 ----
        if GNATprove_Mode then
           return;
  
+       --  No check during preanalysis
+ 
+       elsif Preanalysis_Active then
+          return;
+ 
        --  Do not generate an elaboration check if all checks have been
        --  suppressed.
  
*************** package body Checks is
*** 8602,8609 ****
        --  need to be called while elaboration is taking place.
  
        elsif Is_Controlled (Tag_Typ)
!         and then
!           Chars (Subp_Id) in Name_Adjust | Name_Finalize | Name_Initialize
        then
           return;
        end if;
--- 8660,8668 ----
        --  need to be called while elaboration is taking place.
  
        elsif Is_Controlled (Tag_Typ)
!         and then (Is_Controlled_Procedure (Subp_Id, Name_Adjust)
!                    or else Is_Controlled_Procedure (Subp_Id, Name_Finalize)
!                    or else Is_Controlled_Procedure (Subp_Id, Name_Initialize))
        then
           return;
        end if;
*************** package body Checks is
*** 8692,8705 ****
     -- Install_Static_Check --
     --------------------------
  
!    procedure Install_Static_Check (R_Cno : Node_Id; Loc : Source_Ptr) is
        Stat : constant Boolean   := Is_OK_Static_Expression (R_Cno);
        Typ  : constant Entity_Id := Etype (R_Cno);
  
     begin
        Rewrite (R_Cno,
          Make_Raise_Constraint_Error (Loc,
!           Reason => CE_Range_Check_Failed));
        Set_Analyzed (R_Cno);
        Set_Etype (R_Cno, Typ);
        Set_Raises_Constraint_Error (R_Cno);
--- 8751,8766 ----
     -- Install_Static_Check --
     --------------------------
  
!    procedure Install_Static_Check
!      (R_Cno : Node_Id; Loc : Source_Ptr; Reason : RT_Exception_Code)
!    is
        Stat : constant Boolean   := Is_OK_Static_Expression (R_Cno);
        Typ  : constant Entity_Id := Etype (R_Cno);
  
     begin
        Rewrite (R_Cno,
          Make_Raise_Constraint_Error (Loc,
!           Reason => Reason));
        Set_Analyzed (R_Cno);
        Set_Etype (R_Cno, Typ);
        Set_Raises_Constraint_Error (R_Cno);
*************** package body Checks is
*** 9549,9569 ****
     end Predicate_Checks_Suppressed;
  
     -----------------------------
     -- Range_Checks_Suppressed --
     -----------------------------
  
     function Range_Checks_Suppressed (E : Entity_Id) return Boolean is
     begin
!       if Present (E) then
!          if Kill_Range_Checks (E) then
!             return True;
! 
!          elsif Checks_May_Be_Suppressed (E) then
!             return Is_Check_Suppressed (E, Range_Check);
!          end if;
        end if;
- 
-       return Scope_Suppress.Suppress (Range_Check);
     end Range_Checks_Suppressed;
  
     -----------------------------------------
--- 9610,9638 ----
     end Predicate_Checks_Suppressed;
  
     -----------------------------
+    -- Raise_Checks_Suppressed --
+    -----------------------------
+ 
+    function Raise_Checks_Suppressed (E : Entity_Id) return Boolean is
+    begin
+       if Present (E) and then Checks_May_Be_Suppressed (E) then
+          return Is_Check_Suppressed (E, Raise_Check);
+       else
+          return Scope_Suppress.Suppress (Raise_Check);
+       end if;
+    end Raise_Checks_Suppressed;
+ 
+    -----------------------------
     -- Range_Checks_Suppressed --
     -----------------------------
  
     function Range_Checks_Suppressed (E : Entity_Id) return Boolean is
     begin
!       if Present (E) and then Checks_May_Be_Suppressed (E) then
!          return Is_Check_Suppressed (E, Range_Check);
!       else
!          return Scope_Suppress.Suppress (Range_Check);
        end if;
     end Range_Checks_Suppressed;
  
     -----------------------------------------
*************** package body Checks is
*** 9651,9660 ****
           Set_Do_Range_Check (N, False);
  
           case Nkind (N) is
-             when N_And_Then =>
-                Traverse (Left_Opnd (N));
-                return Skip;
- 
              when N_Attribute_Reference =>
                 Set_Do_Overflow_Check (N, False);
  
--- 9720,9725 ----
*************** package body Checks is
*** 9662,9696 ****
                 Set_Do_Overflow_Check (N, False);
  
                 case Nkind (N) is
!                   when N_Op_Divide =>
!                      Set_Do_Division_Check (N, False);
! 
!                   when N_Op_And =>
!                      Set_Do_Length_Check (N, False);
! 
!                   when N_Op_Mod =>
!                      Set_Do_Division_Check (N, False);
! 
!                   when N_Op_Or =>
!                      Set_Do_Length_Check (N, False);
! 
!                   when N_Op_Rem =>
                       Set_Do_Division_Check (N, False);
  
!                   when N_Op_Xor =>
                       Set_Do_Length_Check (N, False);
  
                    when others =>
                       null;
                 end case;
  
-             when N_Or_Else =>
-                Traverse (Left_Opnd (N));
-                return Skip;
- 
              when N_Selected_Component =>
                 Set_Do_Discriminant_Check (N, False);
  
              when N_Type_Conversion =>
                 Set_Do_Length_Check   (N, False);
                 Set_Do_Overflow_Check (N, False);
--- 9727,9755 ----
                 Set_Do_Overflow_Check (N, False);
  
                 case Nkind (N) is
!                   when N_Op_Divide
!                      | N_Op_Mod
!                      | N_Op_Rem
!                   =>
                       Set_Do_Division_Check (N, False);
  
!                   when N_Op_And
!                      | N_Op_Or
!                      | N_Op_Xor
!                   =>
                       Set_Do_Length_Check (N, False);
  
                    when others =>
                       null;
                 end case;
  
              when N_Selected_Component =>
                 Set_Do_Discriminant_Check (N, False);
  
+             when N_Short_Circuit =>
+                Traverse (Left_Opnd (N));
+                return Skip;
+ 
              when N_Type_Conversion =>
                 Set_Do_Length_Check   (N, False);
                 Set_Do_Overflow_Check (N, False);
*************** package body Checks is
*** 9800,9806 ****
           if Ekind (Scope (E)) = E_Record_Type
             and then Has_Discriminants (Scope (E))
           then
!             N := Build_Discriminal_Subtype_Of_Component (E);
  
              if Present (N) then
                 Insert_Action (Expr, N);
--- 9859,9873 ----
           if Ekind (Scope (E)) = E_Record_Type
             and then Has_Discriminants (Scope (E))
           then
!             --  If the expression is a selected component, in other words,
!             --  has a prefix, then build an actual subtype from the prefix.
!             --  Otherwise, build an actual subtype from the discriminal.
! 
!             if Nkind (Expr) = N_Selected_Component then
!                N := Build_Actual_Subtype_Of_Component (E, Expr);
!             else
!                N := Build_Discriminal_Subtype_Of_Component (E);
!             end if;
  
              if Present (N) then
                 Insert_Action (Expr, N);
*************** package body Checks is
*** 10093,10099 ****
  
              --    T_Typ'Length = string-literal-length
  
!             if Nkind (Expr_Actual) = N_String_Literal
                and then Ekind (Etype (Expr_Actual)) = E_String_Literal_Subtype
              then
                 Cond :=
--- 10160,10168 ----
  
              --    T_Typ'Length = string-literal-length
  
!             --  The above also applies to the External_Initializer case.
! 
!             if Nkind (Expr_Actual) in N_String_Literal | N_External_Initializer
                and then Ekind (Etype (Expr_Actual)) = E_String_Literal_Subtype
              then
                 Cond :=
diff -Nrcpad gcc-14.2.0/gcc/ada/checks.ads gcc-15.1.0/gcc/ada/checks.ads
*** gcc-14.2.0/gcc/ada/checks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/checks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Checks is
*** 49,56 ****
        record
           Elements : Bit_Vector (1 .. Dimensions);
        end record;
!    Empty_Dimension_Set : constant Dimension_Set
!      := (Dimensions => 0, Elements => (others => <>));
  
     procedure Initialize;
     --  Called for each new main source program, to initialize internal
--- 49,56 ----
        record
           Elements : Bit_Vector (1 .. Dimensions);
        end record;
!    Empty_Dimension_Set : constant Dimension_Set :=
!      (Dimensions => 0, Elements => (others => <>));
  
     procedure Initialize;
     --  Called for each new main source program, to initialize internal
*************** package Checks is
*** 69,74 ****
--- 69,75 ----
     function Length_Checks_Suppressed         (E : Entity_Id) return Boolean;
     function Overflow_Checks_Suppressed       (E : Entity_Id) return Boolean;
     function Predicate_Checks_Suppressed      (E : Entity_Id) return Boolean;
+    function Raise_Checks_Suppressed          (E : Entity_Id) return Boolean;
     function Range_Checks_Suppressed          (E : Entity_Id) return Boolean;
     function Storage_Checks_Suppressed        (E : Entity_Id) return Boolean;
     function Tag_Checks_Suppressed            (E : Entity_Id) return Boolean;
*************** package Checks is
*** 265,270 ****
--- 266,275 ----
     --  When N is an actual in a call, Fun is the function being called, which
     --  is used to generate a warning if the call leads to infinite recursion.
  
+    procedure Apply_Raise_Check (N : Node_Id);
+    --  N is an N_Subprogram_Body node. Apply a raise check to N if its entity
+    --  is subject to the GNAT aspect/pragma No_Raise.
+ 
     procedure Apply_Type_Conversion_Checks (N : Node_Id);
     --  N is an N_Type_Conversion node. A type conversion actually involves
     --  two sorts of checks. The first check is the checks that ensures that
*************** package Checks is
*** 980,986 ****
  private
  
     type Check_Result is array (Positive range 1 .. 2) of Node_Id;
!    --  There are two cases for the result returned by Range_Check:
     --
     --    For the static case the result is one or two nodes that should cause
     --    a Constraint_Error. Typically these will include Expr itself or the
--- 985,991 ----
  private
  
     type Check_Result is array (Positive range 1 .. 2) of Node_Id;
!    --  There are two cases for the result returned by Get_Range_Checks:
     --
     --    For the static case the result is one or two nodes that should cause
     --    a Constraint_Error. Typically these will include Expr itself or the
diff -Nrcpad gcc-14.2.0/gcc/ada/cio.c gcc-15.1.0/gcc/ada/cio.c
*** gcc-14.2.0/gcc/ada/cio.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/cio.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/clean.adb gcc-15.1.0/gcc/ada/clean.adb
*** gcc-14.2.0/gcc/ada/clean.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/clean.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Clean is
*** 248,254 ****
                       for J in ALIs.Table (The_ALI).First_Sdep ..
                         ALIs.Table (The_ALI).Last_Sdep
                       loop
!                         if Sdep.Table (J).Subunit_Name /= No_Name then
                             Sources.Increment_Last;
                             Sources.Table (Sources.Last) :=
                               Sdep.Table (J).Sfile;
--- 248,254 ----
                       for J in ALIs.Table (The_ALI).First_Sdep ..
                         ALIs.Table (The_ALI).Last_Sdep
                       loop
!                         if Sdep.Table (J).Subunit_Name /= No_Unit_Name then
                             Sources.Increment_Last;
                             Sources.Table (Sources.Last) :=
                               Sdep.Table (J).Sfile;
diff -Nrcpad gcc-14.2.0/gcc/ada/clean.ads gcc-15.1.0/gcc/ada/clean.ads
*** gcc-14.2.0/gcc/ada/clean.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/clean.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/comperr.adb gcc-15.1.0/gcc/ada/comperr.adb
*** gcc-14.2.0/gcc/ada/comperr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/comperr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Errout;         use Errout;
+ with Generate_Minimal_Reproducer;
  with Gnatvsn;        use Gnatvsn;
  with Lib;            use Lib;
  with Namet;          use Namet;
*************** package body Comperr is
*** 263,269 ****
              Src : Source_Buffer_Ptr;
  
           begin
!             Namet.Unlock;
              Name_Buffer (1 .. 12) := "gnat_bug.box";
              Name_Len := 12;
              Read_Source_File (Name_Enter, 0, Hi, Src, FD);
--- 264,270 ----
              Src : Source_Buffer_Ptr;
  
           begin
!             Namet.Unlock_If_Locked;
              Name_Buffer (1 .. 12) := "gnat_bug.box";
              Name_Len := 12;
              Read_Source_File (Name_Enter, 0, Hi, Src, FD);
*************** package body Comperr is
*** 403,408 ****
--- 404,418 ----
                 Write_Str ("list may be incomplete");
           end;
  
+          begin
+             if Debug_Flag_Underscore_M then
+                Generate_Minimal_Reproducer;
+             end if;
+          exception
+             when others =>
+                Write_Str ("failed to generate reproducer");
+          end;
+ 
           Write_Eol;
           Set_Standard_Output;
  
*************** package body Comperr is
*** 539,543 ****
  
        Write_Char (After);
     end Repeat_Char;
- 
  end Comperr;
--- 549,552 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/comperr.ads gcc-15.1.0/gcc/ada/comperr.ads
*** gcc-14.2.0/gcc/ada/comperr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/comperr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Comperr is
*** 46,52 ****
     --  Note that this is only used at the outer level (to handle constraint
     --  errors or assert errors etc.) In the normal logic of the compiler we
     --  always use pragma Assert to check for errors, and if necessary an
!    --  explicit abort is achieved by pragma Assert (False). From_GCC is true
     --  for a GCC abort and false for a front end exception (with a possible
     --  message stored in TSD.Current_Excep).
  
--- 46,52 ----
     --  Note that this is only used at the outer level (to handle constraint
     --  errors or assert errors etc.) In the normal logic of the compiler we
     --  always use pragma Assert to check for errors, and if necessary an
!    --  explicit abort is achieved by raise Program_Error. From_GCC is true
     --  for a GCC abort and false for a front end exception (with a possible
     --  message stored in TSD.Current_Excep).
  
diff -Nrcpad gcc-14.2.0/gcc/ada/config-lang.in gcc-15.1.0/gcc/ada/config-lang.in
*** gcc-14.2.0/gcc/ada/config-lang.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/config-lang.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/contracts.adb gcc-15.1.0/gcc/ada/contracts.adb
*** gcc-14.2.0/gcc/ada/contracts.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/contracts.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2015-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Contracts is
*** 266,271 ****
--- 266,272 ----
           elsif Prag_Nam in Name_Always_Terminates
                           | Name_Contract_Cases
                           | Name_Exceptional_Cases
+                          | Name_Exit_Cases
                           | Name_Subprogram_Variant
                           | Name_Test_Case
           then
*************** package body Contracts is
*** 512,518 ****
                 if Present (It) then
                    Validate_Iterable_Aspect (E, It);
                 end if;
- 
                 if Present (I_Lit) then
                    Validate_Literal_Aspect (E, I_Lit);
                 end if;
--- 513,518 ----
*************** package body Contracts is
*** 547,579 ****
  
     begin
        --  Move through the body's declarations analyzing all pragmas which
!       --  appear at the top of the declarations.
  
!       Curr_Decl := First (Declarations (Unit_Declaration_Node (Body_Id)));
!       while Present (Curr_Decl) loop
  
!          if Nkind (Curr_Decl) = N_Pragma then
  
!             if Pragma_Significant_To_Subprograms
!                  (Get_Pragma_Id (Curr_Decl))
!             then
!                Analyze (Curr_Decl);
!             end if;
  
!          --  Skip the renamings of discriminants and protection fields
  
!          elsif Is_Prologue_Renaming (Curr_Decl) then
!             null;
  
!          --  We have reached something which is not a pragma so we can be sure
!          --  there are no more contracts or pragmas which need to be taken into
!          --  account.
  
!          else
!             exit;
!          end if;
  
!          Next (Curr_Decl);
        end loop;
     end Analyze_Pragmas_In_Declarations;
  
--- 547,587 ----
  
     begin
        --  Move through the body's declarations analyzing all pragmas which
!       --  appear at the top of the declarations. Go over the list twice, so
!       --  that pragmas which should be analyzed first are analyzed in the
!       --  first pass.
  
!       for Pragmas_Analyzed_First in reverse False .. True loop
  
!          Curr_Decl := First (Declarations (Unit_Declaration_Node (Body_Id)));
!          while Present (Curr_Decl) loop
  
!             if Nkind (Curr_Decl) = N_Pragma then
  
!                if Pragma_Significant_To_Subprograms
!                     (Get_Pragma_Id (Curr_Decl))
!                  and then Pragmas_Analyzed_First =
!                    Pragma_Significant_To_Subprograms_Analyzed_First
!                      (Get_Pragma_Id (Curr_Decl))
!                then
!                   Analyze (Curr_Decl);
!                end if;
  
!             --  Skip the renamings of discriminants and protection fields
  
!             elsif Is_Prologue_Renaming (Curr_Decl) then
!                null;
  
!             --  We have reached something which is not a pragma so we can be
!             --  sure there are no more contracts or pragmas which need to be
!             --  taken into account.
  
!             else
!                exit;
!             end if;
! 
!             Next (Curr_Decl);
!          end loop;
        end loop;
     end Analyze_Pragmas_In_Declarations;
  
*************** package body Contracts is
*** 783,788 ****
--- 791,799 ----
                    Analyze_Contract_Cases_In_Decl_Part (Prag, Freeze_Id);
                 end if;
  
+             elsif Prag_Nam = Name_Exit_Cases then
+                Analyze_Exit_Cases_In_Decl_Part (Prag);
+ 
              elsif Prag_Nam = Name_Exceptional_Cases then
                 Analyze_Exceptional_Cases_In_Decl_Part (Prag);
  
*************** package body Contracts is
*** 1115,1121 ****
        if Comes_From_Source (Obj_Id) and then Is_Ghost_Entity (Obj_Id) then
  
           --  A Ghost object cannot be of a type that yields a synchronized
!          --  object (SPARK RM 6.9(19)).
  
           if Yields_Synchronized_Object (Obj_Typ) then
              Error_Msg_N ("ghost object & cannot be synchronized", Obj_Id);
--- 1126,1132 ----
        if Comes_From_Source (Obj_Id) and then Is_Ghost_Entity (Obj_Id) then
  
           --  A Ghost object cannot be of a type that yields a synchronized
!          --  object (SPARK RM 6.9(21)).
  
           if Yields_Synchronized_Object (Obj_Typ) then
              Error_Msg_N ("ghost object & cannot be synchronized", Obj_Id);
*************** package body Contracts is
*** 2115,2123 ****
        if Nkind (Templ) = N_Generic_Package_Declaration then
           Mutate_Ekind (Templ_Id, E_Generic_Package);
  
!          if Present (Visible_Declarations (Specification (Templ))) then
!             Decl := First (Visible_Declarations (Specification (Templ)));
!          end if;
  
        --  A generic package body carries contract-related source pragmas in its
        --  declarations.
--- 2126,2132 ----
        if Nkind (Templ) = N_Generic_Package_Declaration then
           Mutate_Ekind (Templ_Id, E_Generic_Package);
  
!          Decl := First (Visible_Declarations (Specification (Templ)));
  
        --  A generic package body carries contract-related source pragmas in its
        --  declarations.
*************** package body Contracts is
*** 2125,2133 ****
        elsif Nkind (Templ) = N_Package_Body then
           Mutate_Ekind (Templ_Id, E_Package_Body);
  
!          if Present (Declarations (Templ)) then
!             Decl := First (Declarations (Templ));
!          end if;
  
        --  Generic subprogram declaration
  
--- 2134,2140 ----
        elsif Nkind (Templ) = N_Package_Body then
           Mutate_Ekind (Templ_Id, E_Package_Body);
  
!          Decl := First (Declarations (Templ));
  
        --  Generic subprogram declaration
  
*************** package body Contracts is
*** 2142,2150 ****
           --  the Pragmas_After list for contract-related source pragmas.
  
           if Nkind (Context) = N_Compilation_Unit then
!             if Present (Aux_Decls_Node (Context))
!               and then Present (Pragmas_After (Aux_Decls_Node (Context)))
!             then
                 Decl := First (Pragmas_After (Aux_Decls_Node (Context)));
              end if;
  
--- 2149,2155 ----
           --  the Pragmas_After list for contract-related source pragmas.
  
           if Nkind (Context) = N_Compilation_Unit then
!             if Present (Aux_Decls_Node (Context)) then
                 Decl := First (Pragmas_After (Aux_Decls_Node (Context)));
              end if;
  
*************** package body Contracts is
*** 2161,2169 ****
        elsif Nkind (Templ) = N_Subprogram_Body then
           Mutate_Ekind (Templ_Id, E_Subprogram_Body);
  
!          if Present (Declarations (Templ)) then
!             Decl := First (Declarations (Templ));
!          end if;
        end if;
  
        --  Inspect the relevant declarations looking for contract-related source
--- 2166,2172 ----
        elsif Nkind (Templ) = N_Subprogram_Body then
           Mutate_Ekind (Templ_Id, E_Subprogram_Body);
  
!          Decl := First (Declarations (Templ));
        end if;
  
        --  Inspect the relevant declarations looking for contract-related source
*************** package body Contracts is
*** 2714,2735 ****
           --  Otherwise, add the item
  
           else
!             if No (List) then
!                List := New_List;
!             end if;
! 
!             --  If the pragma is a conjunct in a composite postcondition, it
!             --  has been processed in reverse order. In the postcondition body
!             --  it must appear before the others.
! 
!             if Nkind (Item) = N_Pragma
!               and then From_Aspect_Specification (Item)
!               and then Split_PPC (Item)
!             then
!                Prepend (Item, List);
!             else
!                Append (Item, List);
!             end if;
           end if;
        end Append_Enabled_Item;
  
--- 2717,2723 ----
           --  Otherwise, add the item
  
           else
!             Append_New (Item, List);
           end if;
        end Append_Enabled_Item;
  
*************** package body Contracts is
*** 2770,2775 ****
--- 2758,2766 ----
                       elsif Pragma_Name (Prag) = Name_Exceptional_Cases then
                          Expand_Pragma_Exceptional_Cases (Prag);
  
+                      elsif Pragma_Name (Prag) = Name_Exit_Cases then
+                         Expand_Pragma_Exit_Cases (Prag);
+ 
                       elsif Pragma_Name (Prag) = Name_Subprogram_Variant then
                          Expand_Pragma_Subprogram_Variant
                            (Prag       => Prag,
*************** package body Contracts is
*** 2942,2950 ****
                 --  Wrappers of class-wide pre/postconditions reference the
                 --  parent primitive that has the inherited contract.
  
!                if Is_Wrapper (Subp_Id)
!                  and then Present (LSP_Subprogram (Subp_Id))
!                then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
--- 2933,2939 ----
                 --  Wrappers of class-wide pre/postconditions reference the
                 --  parent primitive that has the inherited contract.
  
!                if Is_LSP_Wrapper (Subp_Id) then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
*************** package body Contracts is
*** 3604,3611 ****
        --------------------
  
        procedure Inherit_Pragma (Prag_Id : Pragma_Id) is
!          Prag     : constant Node_Id := Get_Pragma (From_Subp, Prag_Id);
!          New_Prag : Node_Id;
  
        begin
           --  A pragma cannot be part of more than one First_Pragma/Next_Pragma
--- 3593,3599 ----
        --------------------
  
        procedure Inherit_Pragma (Prag_Id : Pragma_Id) is
!          Prag : constant Node_Id := Get_Pragma (From_Subp, Prag_Id);
  
        begin
           --  A pragma cannot be part of more than one First_Pragma/Next_Pragma
*************** package body Contracts is
*** 3613,3626 ****
           --  flagged as inherited for distinction purposes.
  
           if Present (Prag) then
!             New_Prag := New_Copy_Tree (Prag);
!             Set_Is_Inherited_Pragma (New_Prag);
! 
!             Add_Contract_Item (New_Prag, Subp);
           end if;
        end Inherit_Pragma;
  
!    --   Start of processing for Inherit_Subprogram_Contract
  
     begin
        --  Inheritance is carried out only when both entities are subprograms
--- 3601,3611 ----
           --  flagged as inherited for distinction purposes.
  
           if Present (Prag) then
!             Add_Contract_Item (New_Copy_Tree (Prag), Subp);
           end if;
        end Inherit_Pragma;
  
!    --  Start of processing for Inherit_Subprogram_Contract
  
     begin
        --  Inheritance is carried out only when both entities are subprograms
*************** package body Contracts is
*** 4081,4088 ****
  
           begin
              Spec := Build_Call_Helper_Spec (Helper_Id);
!             Set_Must_Override      (Spec, False);
!             Set_Must_Not_Override  (Spec, False);
              Set_Is_Inlined (Helper_Id);
              Set_Is_Public  (Helper_Id);
  
--- 4066,4073 ----
  
           begin
              Spec := Build_Call_Helper_Spec (Helper_Id);
!             Set_Must_Override     (Spec, False);
!             Set_Must_Not_Override (Spec, False);
              Set_Is_Inlined (Helper_Id);
              Set_Is_Public  (Helper_Id);
  
*************** package body Contracts is
*** 4176,4188 ****
           Helper_Decl := Build_Call_Helper_Decl;
           Mutate_Ekind (Helper_Id, Ekind (Subp_Id));
  
!          --  Add the helper to the freezing actions of the tagged type
  
!          Append_Freeze_Action (Tagged_Type, Helper_Decl);
           Analyze (Helper_Decl);
  
           Helper_Body := Build_Call_Helper_Body;
!          Append_Freeze_Action (Tagged_Type, Helper_Body);
  
           --  If this helper is built as part of building the DTW at the
           --  freezing point of its tagged type then we cannot defer
--- 4161,4173 ----
           Helper_Decl := Build_Call_Helper_Decl;
           Mutate_Ekind (Helper_Id, Ekind (Subp_Id));
  
!          --  Add the helper to the freezing actions of the class-wide type
  
!          Append_Freeze_Action (Class_Wide_Type (Tagged_Type), Helper_Decl);
           Analyze (Helper_Decl);
  
           Helper_Body := Build_Call_Helper_Body;
!          Append_Freeze_Action (Class_Wide_Type (Tagged_Type), Helper_Body);
  
           --  If this helper is built as part of building the DTW at the
           --  freezing point of its tagged type then we cannot defer
*************** package body Contracts is
*** 4610,4618 ****
                 --  parent primitive that has the inherited contract and help
                 --  us to climb fast.
  
!                if Is_Wrapper (Subp_Id)
!                  and then Present (LSP_Subprogram (Subp_Id))
!                then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
--- 4595,4601 ----
                 --  parent primitive that has the inherited contract and help
                 --  us to climb fast.
  
!                if Is_LSP_Wrapper (Subp_Id) then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
*************** package body Contracts is
*** 4995,5003 ****
  
        Push_Scope (Gen_Id);
  
!       if Permits_Aspect_Specifications (Templ)
!         and then Has_Aspects (Templ)
!       then
           Save_Global_References_In_Aspects (Templ);
        end if;
  
--- 4978,4984 ----
  
        Push_Scope (Gen_Id);
  
!       if Permits_Aspect_Specifications (Templ) then
           Save_Global_References_In_Aspects (Templ);
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/contracts.ads gcc-15.1.0/gcc/ada/contracts.ads
*** gcc-14.2.0/gcc/ada/contracts.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/contracts.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2015-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/csets.adb gcc-15.1.0/gcc/ada/csets.adb
*** gcc-14.2.0/gcc/ada/csets.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/csets.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.WCh_Con; use System.WCh_Con;
*** 29,34 ****
--- 29,40 ----
  
  package body Csets is
  
+    Identifier_Char_Table : Char_Array_Flags;
+    --  This table contains all statically known characters which can appear in
+    --  identifiers, but excludes characters which need to be known dynamically,
+    --  for example like those that depend on the current Ada version which may
+    --  change from file to file.
+ 
     X_80 : constant Character := Character'Val (16#80#);
     X_81 : constant Character := Character'Val (16#81#);
     X_82 : constant Character := Character'Val (16#82#);
*************** package body Csets is
*** 1085,1090 ****
--- 1091,1124 ----
  
        others => ' ');
  
+    ---------------------
+    -- Identifier_Char --
+    ---------------------
+ 
+    function Identifier_Char (Item : Character) return Boolean is
+    begin
+       --  Handle explicit dynamic cases
+ 
+       case Item is
+ 
+          --  Add [ as an identifier character to deal with the brackets
+          --  notation for wide characters used in identifiers for versions up
+          --  to Ada 2012.
+ 
+          --  Note that if we are not allowing wide characters in identifiers,
+          --  then any use of this notation will be flagged as an error in
+          --  Scan_Identifier.
+ 
+          when '[' | ']' =>
+             return Ada_Version < Ada_2022;
+ 
+          --  Otherwise, this is a static case - use the table
+ 
+          when others =>
+             return Identifier_Char_Table (Item);
+       end case;
+    end Identifier_Char;
+ 
     ----------------
     -- Initialize --
     ----------------
*************** package body Csets is
*** 1144,1167 ****
        --  Build Identifier_Char table from used entries of Fold_Upper
  
        for J in Character loop
!          Identifier_Char (J) := (Fold_Upper (J) /= ' ');
        end loop;
  
-       --  Add [ as an identifier character to deal with the brackets notation
-       --  for wide characters used in identifiers for versions up to Ada 2012.
-       --  Note that if we are not allowing wide characters in identifiers, then
-       --  any use of this notation will be flagged as an error in
-       --  Scan_Identifier.
- 
-       Identifier_Char ('[') := Ada_Version < Ada_2022;
- 
        --  Add entry for ESC if wide characters in use with a wide character
        --  encoding method active that uses the ESC code for encoding.
  
        if Identifier_Character_Set = 'w'
          and then Wide_Character_Encoding_Method in WC_ESC_Encoding_Method
        then
!          Identifier_Char (ASCII.ESC) := True;
        end if;
     end Initialize;
  
--- 1178,1193 ----
        --  Build Identifier_Char table from used entries of Fold_Upper
  
        for J in Character loop
!          Identifier_Char_Table (J) := (Fold_Upper (J) /= ' ');
        end loop;
  
        --  Add entry for ESC if wide characters in use with a wide character
        --  encoding method active that uses the ESC code for encoding.
  
        if Identifier_Character_Set = 'w'
          and then Wide_Character_Encoding_Method in WC_ESC_Encoding_Method
        then
!          Identifier_Char_Table (ASCII.ESC) := True;
        end if;
     end Initialize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/csets.ads gcc-15.1.0/gcc/ada/csets.ads
*** gcc-14.2.0/gcc/ada/csets.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/csets.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Csets is
*** 80,91 ****
     Fold_Lower : Translate_Table;
     --  Table to fold upper case identifier letters to lower case
  
!    Identifier_Char : Char_Array_Flags;
!    --  This table has True entries for all characters that can legally appear
!    --  in identifiers, including digits, the underline character, all letters
!    --  including upper and lower case and extended letters (as controlled by
!    --  the setting of Opt.Identifier_Character_Set), left bracket for brackets
!    --  notation wide characters and also ESC if wide characters are permitted
!    --  in identifiers using escape sequences starting with ESC.
  
  end Csets;
--- 80,91 ----
     Fold_Lower : Translate_Table;
     --  Table to fold upper case identifier letters to lower case
  
!    function Identifier_Char (Item : Character) return Boolean;
!    --  Return True for all characters that can legally appear in identifiers,
!    --  including digits, the underline character, all letters including upper
!    --  and lower case and extended letters (as controlled by the setting of
!    --  Opt.Identifier_Character_Set), left bracket for brackets notation wide
!    --  characters and also ESC if wide characters are permitted in identifiers
!    --  using escape sequences starting with ESC.
  
  end Csets;
diff -Nrcpad gcc-14.2.0/gcc/ada/cstand.adb gcc-15.1.0/gcc/ada/cstand.adb
*** gcc-14.2.0/gcc/ada/cstand.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/cstand.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body CStand is
*** 1334,1341 ****
        --  used internally. They are unsigned types with the same length as
        --  the correspondingly named signed integer types.
  
!       Standard_Short_Short_Unsigned
!         := New_Standard_Entity ("short_short_unsigned");
        Build_Unsigned_Integer_Type
          (Standard_Short_Short_Unsigned, Standard_Short_Short_Integer_Size);
  
--- 1334,1341 ----
        --  used internally. They are unsigned types with the same length as
        --  the correspondingly named signed integer types.
  
!       Standard_Short_Short_Unsigned :=
!         New_Standard_Entity ("short_short_unsigned");
        Build_Unsigned_Integer_Type
          (Standard_Short_Short_Unsigned, Standard_Short_Short_Integer_Size);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/cstand.ads gcc-15.1.0/gcc/ada/cstand.ads
*** gcc-14.2.0/gcc/ada/cstand.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/cstand.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/cstreams.c gcc-15.1.0/gcc/ada/cstreams.c
*** gcc-14.2.0/gcc/ada/cstreams.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/cstreams.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *              Auxiliary C functions for Interfaces.C.Streams              *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *              Auxiliary C functions for Interfaces.C.Streams              *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/ctrl_c.c gcc-15.1.0/gcc/ada/ctrl_c.c
*** gcc-14.2.0/gcc/ada/ctrl_c.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ctrl_c.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2002-2024, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2002-2025, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/debug.adb gcc-15.1.0/gcc/ada/debug.adb
*** gcc-14.2.0/gcc/ada/debug.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/debug.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Debug is
*** 67,80 ****
     --  dG   Generate all warnings including those normally suppressed
     --  dH   Hold (kill) call to gigi
     --  dI   Inhibit internal name numbering in gnatG listing
!    --  dJ   Prepend subprogram name in messages
     --  dK   Kill all error messages
     --  dL   Ignore external calls from instances for elaboration
     --  dM   Assume all variables are modified (no current values)
     --  dN   No file name information in exception messages
     --  dO   Output immediate error messages
     --  dP   Do not check for controlled objects in preelaborable packages
!    --  dQ
     --  dR   Bypass check for correct version of s-rpc
     --  dS   Never convert numbers to machine numbers in Sem_Eval
     --  dT   Convert to machine numbers only for constant declarations
--- 67,80 ----
     --  dG   Generate all warnings including those normally suppressed
     --  dH   Hold (kill) call to gigi
     --  dI   Inhibit internal name numbering in gnatG listing
!    --  dJ
     --  dK   Kill all error messages
     --  dL   Ignore external calls from instances for elaboration
     --  dM   Assume all variables are modified (no current values)
     --  dN   No file name information in exception messages
     --  dO   Output immediate error messages
     --  dP   Do not check for controlled objects in preelaborable packages
!    --  dQ   Do not generate cleanups for qualified expressions of allocators
     --  dR   Bypass check for correct version of s-rpc
     --  dS   Never convert numbers to machine numbers in Sem_Eval
     --  dT   Convert to machine numbers only for constant declarations
*************** package body Debug is
*** 105,111 ****
     --  d.r  Disable reordering of components in record types
     --  d.s  Strict secondary stack management
     --  d.t  Disable static allocation of library level dispatch tables
!    --  d.u  Enable Modify_Tree_For_C (update tree for c)
     --  d.v  Enforce SPARK elaboration rules in SPARK code
     --  d.w  Do not check for infinite loops
     --  d.x  No exception handlers
--- 105,111 ----
     --  d.r  Disable reordering of components in record types
     --  d.s  Strict secondary stack management
     --  d.t  Disable static allocation of library level dispatch tables
!    --  d.u
     --  d.v  Enforce SPARK elaboration rules in SPARK code
     --  d.w  Do not check for infinite loops
     --  d.x  No exception handlers
*************** package body Debug is
*** 148,166 ****
     --  d_h  Disable the use of (perfect) hash functions for enumeration Value
     --  d_i  Ignore activations and calls to instances for elaboration
     --  d_j  Read JSON files and populate Repinfo tables (opposite of -gnatRjs)
!    --  d_k
!    --  d_l
!    --  d_m
     --  d_n
     --  d_o
     --  d_p  Ignore assertion pragmas for elaboration
!    --  d_q
     --  d_r  Disable the use of the return slot in functions
     --  d_s  Stop elaboration checks on synchronous suspension
     --  d_t  In LLVM-based CCG, dump LLVM IR after transformations are done
     --  d_u  In LLVM-based CCG, dump flows
     --  d_v  Enable additional checks and debug printouts in Atree
!    --  d_w
     --  d_x  Disable inline expansion of Image attribute for enumeration types
     --  d_y
     --  d_z
--- 148,166 ----
     --  d_h  Disable the use of (perfect) hash functions for enumeration Value
     --  d_i  Ignore activations and calls to instances for elaboration
     --  d_j  Read JSON files and populate Repinfo tables (opposite of -gnatRjs)
!    --  d_k  In CodePeer mode disable expansion of assertion checks
!    --  d_l  Disable strict alignment of array types with aliased component
!    --  d_m  Run adareducer on crash
     --  d_n
     --  d_o
     --  d_p  Ignore assertion pragmas for elaboration
!    --  d_q  Do not enforce freezing for equality operator of boolean subtype
     --  d_r  Disable the use of the return slot in functions
     --  d_s  Stop elaboration checks on synchronous suspension
     --  d_t  In LLVM-based CCG, dump LLVM IR after transformations are done
     --  d_u  In LLVM-based CCG, dump flows
     --  d_v  Enable additional checks and debug printouts in Atree
!    --  d_w  In LLVM-based CCG, don't send front end data to CCG
     --  d_x  Disable inline expansion of Image attribute for enumeration types
     --  d_y
     --  d_z
*************** package body Debug is
*** 168,186 ****
     --  d_A  Stop generation of ALI file
     --  d_B  Warn on build-in-place function calls
     --  d_C
!    --  d_D
!    --  d_E
     --  d_F  Encode full invocation paths in ALI files
     --  d_G
     --  d_H
!    --  d_I
     --  d_J
     --  d_K  (Reserved) Enable reporting a warning on known-problem issues
     --  d_L  Output trace information on elaboration checking
!    --  d_M
     --  d_N
     --  d_O
!    --  d_P
     --  d_Q
     --  d_R  For LLVM, dump the representation of records
     --  d_S
--- 168,186 ----
     --  d_A  Stop generation of ALI file
     --  d_B  Warn on build-in-place function calls
     --  d_C
!    --  d_D  Use improved diagnostics
!    --  d_E  Print diagnostics and switch repository
     --  d_F  Encode full invocation paths in ALI files
     --  d_G
     --  d_H
!    --  d_I  Note generic formal type inference
     --  d_J
     --  d_K  (Reserved) Enable reporting a warning on known-problem issues
     --  d_L  Output trace information on elaboration checking
!    --  d_M  Ignore Source_File_Name and Source_File_Name_Project pragmas
     --  d_N
     --  d_O
!    --  d_P  Disable runtime check for null prefix of prefixed subprogram call
     --  d_Q
     --  d_R  For LLVM, dump the representation of records
     --  d_S
*************** package body Debug is
*** 207,213 ****
     --  d.3  Output debugging information from Exp_Unst
     --  d.4  Do not delete generated C file in case of errors
     --  d.5  Do not generate imported subprogram definitions in C code
!    --  d.6  Do not avoid declaring unreferenced types in C code
     --  d.7  Disable unsound heuristics in gnat2scil (for CP as SPARK prover)
     --  d.8  Disable unconditional inlining of expression functions
     --  d.9
--- 207,213 ----
     --  d.3  Output debugging information from Exp_Unst
     --  d.4  Do not delete generated C file in case of errors
     --  d.5  Do not generate imported subprogram definitions in C code
!    --  d.6
     --  d.7  Disable unsound heuristics in gnat2scil (for CP as SPARK prover)
     --  d.8  Disable unconditional inlining of expression functions
     --  d.9
*************** package body Debug is
*** 615,625 ****
     --       is used in the fixed bugs run to minimize system and version
     --       dependency in filed -gnatD or -gnatG output.
  
-    --  dJ   Prepend the name of the enclosing subprogram in compiler messages
-    --       (errors, warnings, style checks). This is useful in particular to
-    --       integrate compiler warnings in static analysis tools such as
-    --       CodePeer.
- 
     --  dK   Kill all error messages. This debug flag suppresses the output
     --       of all error messages. It is used in regression tests where the
     --       error messages are target dependent and irrelevant.
--- 615,620 ----
*************** package body Debug is
*** 645,650 ****
--- 640,648 ----
     --       in preelaborable packages, but this restriction is a huge pain,
     --       especially in the predefined library units.
  
+    --  dQ   Do not generate cleanups to deallocate the memory in case qualified
+    --       expressions of allocators raise an exception.
+ 
     --  dR   Bypass the check for a proper version of s-rpc being present
     --       to use the -gnatz? switch. This allows debugging of the use
     --       of stubs generation without needing to have GLADE (or some
*************** package body Debug is
*** 802,809 ****
     --       previous dynamic construction of tables. It is there as a possible
     --       work around if we run into trouble with the new implementation.
  
!    --  d.u  Sets Modify_Tree_For_C mode in which tree is modified to make it
!    --       easier to generate code using a C compiler.
  
     --  d.v  This flag enforces the elaboration rules defined in the SPARK
     --       Reference Manual, chapter 7.7, to all SPARK code within a unit. As
--- 800,806 ----
     --       previous dynamic construction of tables. It is there as a possible
     --       work around if we run into trouble with the new implementation.
  
!    --  d.u
  
     --  d.v  This flag enforces the elaboration rules defined in the SPARK
     --       Reference Manual, chapter 7.7, to all SPARK code within a unit. As
*************** package body Debug is
*** 990,999 ****
--- 987,1008 ----
     --       compilation session if -gnatRjs was passed, in order to populate
     --       the internal tables of the Repinfo unit from them.
  
+    --  d_k  In CodePeer mode assertion expressions are expanded by default
+    --       (regardless of the -gnata compiler switch); when this switch is
+    --       enabled, expansion of assertion expressions is controlled by
+    --       pragma Assertion_Policy.
+ 
+    --  d_l  The compiler does not enforce the strict alignment of array types
+    --       that are declared with an aliased component.
+ 
     --  d_p  The compiler ignores calls to subprograms which verify the run-time
     --       semantics of invariants and postconditions in both the static and
     --       dynamic elaboration models.
  
+    --  d_q  The compiler does not enforce the new freezing rule introduced for
+    --       primitive equality operators in Ada 2012 when the operator returns
+    --       a subtype of Boolean.
+ 
     --  d_r  The compiler does not make use of the return slot in the expansion
     --       of functions returning a by-reference type. If this use is required
     --       for these functions to return on the primary stack, then they are
*************** package body Debug is
*** 1012,1017 ****
--- 1021,1028 ----
  
     --  d_v  Enable additional checks and debug printouts in Atree
  
+    --  d_w  In LLVM-based CCG, don't send front end data to CCG
+ 
     --  d_x  The compiler does not expand in line the Image attribute for user-
     --       defined enumeration types and the standard boolean type.
  
*************** package body Debug is
*** 1025,1030 ****
--- 1036,1044 ----
     --       an external target, offering additional information to GNATBIND for
     --       purposes of error diagnostics.
  
+    --  d_I  Generic formal type inference: print a "note:" message for each
+    --       actual type that is inferred, or could be inferred.
+ 
     --  d_K  (Reserved) Enable reporting a warning on known-problem issues of
     --       previous releases. No action performed in the wavefront.
  
*************** package body Debug is
*** 1033,1038 ****
--- 1047,1061 ----
     --       it is checked, and the progress of the recursive trace through
     --       elaboration calls at compile time.
  
+    --  d_P  For prefixed subprogram calls with an access-type prefix, disable
+    --       the generation of a null-excluding runtime check on the prefix,
+    --       even when the called subprogram has a first access parameter that
+    --       does not exclude null (that is the case only for class-wide
+    --       parameter, as controlling parameters are automatically null-
+    --       excluding). In such a case, P.Proc is equivalent to the call
+    --       Proc(P.all'Access); see RM 6.4(9.1/5). This includes a dereference,
+    --       and thus a null check.
+ 
     --  d_R  In the LLVM backend, output the internal representation of
     --       each record
  
*************** package body Debug is
*** 1113,1122 ****
     --       This debug flag disables this generation when generating C code,
     --       assuming a proper #include will be used instead.
  
-    --  d.6  By default the C back-end avoids declaring types that are not
-    --       referenced by the generated C code. This debug flag restores the
-    --       output of all the types.
- 
     --  d.7  Indicates (to gnat2scil) that CodePeer is being invoked as a
     --       prover by the SPARK tools and that therefore gnat2scil should
     --       avoid SCIL generation strategies which can introduce soundness
--- 1136,1141 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/debug.ads gcc-15.1.0/gcc/ada/debug.ads
*** gcc-14.2.0/gcc/ada/debug.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/debug.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/debug_a.adb gcc-15.1.0/gcc/ada/debug_a.adb
*** gcc-14.2.0/gcc/ada/debug_a.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/debug_a.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/debug_a.ads gcc-15.1.0/gcc/ada/debug_a.ads
*** gcc-14.2.0/gcc/ada/debug_a.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/debug_a.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-brief_emitter.adb gcc-15.1.0/gcc/ada/diagnostics-brief_emitter.adb
*** gcc-14.2.0/gcc/ada/diagnostics-brief_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-brief_emitter.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,137 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . B R I E F _ E M I T T E R            --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Diagnostics.Utils;             use Diagnostics.Utils;
+ with Erroutc;                       use Erroutc;
+ with Opt;                           use Opt;
+ with Output;                        use Output;
+ 
+ package body Diagnostics.Brief_Emitter is
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Sub_Diagnostic_Type;
+       Diag     : Diagnostic_Type);
+ 
+    --------------------------
+    -- Print_Sub_Diagnostic --
+    --------------------------
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Sub_Diagnostic_Type;
+       Diag     : Diagnostic_Type)
+    is
+       --  In GNAT sub messages were grouped by the main messages by also having
+       --  the same location. In the brief printer we use the primary location
+       --  of the main diagnostic for all of the subdiagnostics.
+       Prim_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
+ 
+       Sptr     : constant Source_Ptr        := Prim_Loc.Span.Ptr;
+ 
+       Text     : String_Ptr;
+ 
+       Line_Length : constant Nat := (if Error_Msg_Line_Length = 0 then Nat'Last
+           else Error_Msg_Line_Length);
+ 
+       Switch_Str : constant String := Get_Doc_Switch (Diag);
+    begin
+       Text := new String'(To_String (Sptr) & ": "
+          & Kind_To_String (Sub_Diag, Diag)  & ": "
+          & Sub_Diag.Message.all);
+ 
+       if Switch_Str /= "" then
+          Text := new String'(Text.all & " " & Switch_Str);
+       end if;
+ 
+       if Diag.Warn_Err then
+          Text := new String'(Text.all & " [warning-as-error]");
+       end if;
+ 
+       Output_Text_Within (Text, Line_Length);
+       Write_Eol;
+    end Print_Sub_Diagnostic;
+ 
+    ----------------------
+    -- Print_Diagnostic --
+    ----------------------
+ 
+    procedure Print_Diagnostic (Diag : Diagnostic_Type) is
+       use Sub_Diagnostic_Lists;
+ 
+       Prim_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
+ 
+       Sptr     : constant Source_Ptr        := Prim_Loc.Span.Ptr;
+ 
+       Text     : String_Ptr;
+ 
+       Line_Length : constant Nat := (if Error_Msg_Line_Length = 0 then Nat'Last
+           else Error_Msg_Line_Length);
+ 
+       Switch_Str : constant String := Get_Doc_Switch (Diag);
+    begin
+       Write_Str (To_String (Sptr) & ": ");
+ 
+       --  Ignore the message prefix on Style messages. They will use
+       --  the (style) prefix within the message.
+       --
+       --  Also disable the "error:" prefix if Unique_Error_Tag is unset.
+ 
+       if (Diag.Kind = Style and then not Diag.Warn_Err)
+          or else (Diag.Kind = Error and then not Unique_Error_Tag)
+       then
+          Text := new String'("");
+       else
+          Text := new String'(Kind_To_String (Diag) & ": ");
+       end if;
+ 
+       Text := new String'(Text.all & Diag.Message.all);
+ 
+       if Switch_Str /= "" then
+          Text := new String'(Text.all & " " & Switch_Str);
+       end if;
+ 
+       if Diag.Warn_Err then
+          Text := new String'(Text.all & " [warning-as-error]");
+       end if;
+ 
+       Output_Text_Within (Text, Line_Length);
+       Write_Eol;
+ 
+       if Present (Diag.Sub_Diagnostics) then
+          declare
+ 
+             Sub_Diag : Sub_Diagnostic_Type;
+ 
+             It : Iterator := Iterate (Diag.Sub_Diagnostics);
+          begin
+             while Has_Next (It) loop
+                Next (It, Sub_Diag);
+ 
+                Print_Sub_Diagnostic (Sub_Diag, Diag);
+             end loop;
+          end;
+       end if;
+ 
+    end Print_Diagnostic;
+ end Diagnostics.Brief_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-brief_emitter.ads gcc-15.1.0/gcc/ada/diagnostics-brief_emitter.ads
*** gcc-14.2.0/gcc/ada/diagnostics-brief_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-brief_emitter.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,28 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . B R I E F _ E M I T T E R            --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.Brief_Emitter is
+    procedure Print_Diagnostic (Diag : Diagnostic_Type);
+ end Diagnostics.Brief_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-constructors.adb gcc-15.1.0/gcc/ada/diagnostics-constructors.adb
*** gcc-14.2.0/gcc/ada/diagnostics-constructors.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-constructors.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,514 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . C O N S T R U C T O R S              --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Sinfo.Nodes;                   use Sinfo.Nodes;
+ with Diagnostics.Utils;             use Diagnostics.Utils;
+ 
+ package body Diagnostics.Constructors is
+ 
+    -----------------------------------------------
+    -- Make_Default_Iterator_Not_Primitive_Error --
+    -----------------------------------------------
+ 
+    function Make_Default_Iterator_Not_Primitive_Error
+      (Expr : Node_Id;
+       Subp : Entity_Id) return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg       => "improper function for default iterator",
+            Location  => Primary_Labeled_Span (Expr),
+            Id        => GNAT0001,
+            Kind      => Diagnostics.Error,
+            Sub_Diags =>
+              (1 =>
+                 Continuation
+                   (Msg =>
+                      "default iterator defined " &
+                      Sloc_To_String (Subp, Sloc (Expr)) &
+                      " must be a local primitive or class-wide function",
+                    Locations =>
+                      (1 => Primary_Labeled_Span (Subp)))));
+    end Make_Default_Iterator_Not_Primitive_Error;
+ 
+    -------------------------------------------------
+    -- Record_Default_Iterator_Not_Primitive_Error --
+    -------------------------------------------------
+ 
+    procedure Record_Default_Iterator_Not_Primitive_Error
+      (Expr : Node_Id;
+       Subp : Entity_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Default_Iterator_Not_Primitive_Error (Expr, Subp));
+    end Record_Default_Iterator_Not_Primitive_Error;
+ 
+    ---------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_Error --
+    ---------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0002,
+            Kind     => Diagnostics.Error,
+            Spans    =>
+              (1 =>
+                 (Secondary_Labeled_Span
+                    (N     => L,
+                     Label => To_Type_Name (L_Type))),
+               2 =>
+                 Secondary_Labeled_Span
+                   (N     => R,
+                    Label => To_Type_Name (R_Type))));
+    end Make_Invalid_Operand_Types_For_Operator_Error;
+ 
+    -----------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_Error --
+    -----------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id)
+    is
+ 
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_Error
+            (Op, L, L_Type, R, R_Type));
+    end Record_Invalid_Operand_Types_For_Operator_Error;
+ 
+    ---------------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_L_Int_Error --
+    ---------------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_L_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0003,
+            Kind     => Diagnostics.Error,
+            Spans    =>
+              (1 =>
+                 (Secondary_Labeled_Span
+                    (N     => L,
+                     Label =>
+                       "left operand has type " &
+                       To_Name (L_Type))),
+               2 =>
+                 Secondary_Labeled_Span
+                   (N     => R,
+                    Label =>
+                      "right operand has type " &
+                      To_Name (R_Type))),
+             Sub_Diags =>
+               (1 => Suggestion (Msg => "Convert left operand to ""Integer""")
+             )
+          );
+    end Make_Invalid_Operand_Types_For_Operator_L_Int_Error;
+ 
+    -----------------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_L_Int_Error --
+    -----------------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_L_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id)
+    is
+ 
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_L_Int_Error
+            (Op, L, L_Type, R, R_Type));
+    end Record_Invalid_Operand_Types_For_Operator_L_Int_Error;
+ 
+    ---------------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_R_Int_Error --
+    ---------------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_R_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0004,
+            Kind     => Diagnostics.Error,
+            Spans    =>
+              (1 =>
+                 Secondary_Labeled_Span
+                    (N     => L,
+                     Label =>
+                       "left operand has type " &
+                       To_Name (L_Type)),
+               2 =>
+                 Secondary_Labeled_Span
+                   (N     => R,
+                    Label =>
+                      "right operand has type " &
+                      To_Name (R_Type))),
+             Sub_Diags =>
+               (1 => Suggestion (Msg => "Convert right operand to ""Integer""")
+             )
+          );
+    end Make_Invalid_Operand_Types_For_Operator_R_Int_Error;
+ 
+    -----------------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_R_Int_Error --
+    -----------------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_R_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id)
+    is
+ 
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_R_Int_Error
+            (Op, L, L_Type, R, R_Type));
+    end Record_Invalid_Operand_Types_For_Operator_R_Int_Error;
+ 
+    ---------------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_L_Acc_Error --
+    ---------------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_L_Acc_Error
+      (Op     : Node_Id;
+       L      : Node_Id) return Diagnostic_Type
+    is
+ 
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0005,
+            Kind     => Diagnostics.Error,
+            Spans    =>
+              (1 =>
+                 Secondary_Labeled_Span
+                    (N     => L,
+                     Label =>
+                       "left operand is access type ")
+             )
+          );
+    end Make_Invalid_Operand_Types_For_Operator_L_Acc_Error;
+ 
+    -----------------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_L_Acc_Error --
+    -----------------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
+      (Op     : Node_Id;
+       L      : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
+            (Op, L));
+    end Record_Invalid_Operand_Types_For_Operator_L_Acc_Error;
+ 
+    ---------------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_L_Acc_Error --
+    ---------------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
+      (Op     : Node_Id;
+       R      : Node_Id) return Diagnostic_Type
+    is
+ 
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0006,
+            Kind     => Diagnostics.Error,
+            Spans    =>
+              (1 =>
+                 Secondary_Labeled_Span
+                    (N     => R,
+                     Label =>
+                       "right operand is access type ")
+             )
+          );
+    end Make_Invalid_Operand_Types_For_Operator_R_Acc_Error;
+ 
+    -----------------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_R_Acc_Error --
+    -----------------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
+      (Op     : Node_Id;
+       R      : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
+            (Op, R));
+    end Record_Invalid_Operand_Types_For_Operator_R_Acc_Error;
+ 
+    -----------------------------------------------------------
+    -- Make_Invalid_Operand_Types_For_Operator_General_Error --
+    -----------------------------------------------------------
+ 
+    function Make_Invalid_Operand_Types_For_Operator_General_Error
+      (Op : Node_Id) return Diagnostic_Type
+    is
+ 
+    begin
+       return
+         Make_Diagnostic
+           (Msg      => "invalid operand types for operator " & To_Name (Op),
+            Location => Primary_Labeled_Span (Op),
+            Id       => GNAT0007,
+            Kind     => Diagnostics.Error
+          );
+    end Make_Invalid_Operand_Types_For_Operator_General_Error;
+ 
+    -------------------------------------------------------------
+    -- Record_Invalid_Operand_Types_For_Operator_General_Error --
+    -------------------------------------------------------------
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_General_Error
+      (Op     : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Invalid_Operand_Types_For_Operator_General_Error (Op));
+    end Record_Invalid_Operand_Types_For_Operator_General_Error;
+ 
+    --------------------------------------------------
+    -- Make_Pragma_No_Effect_With_Lock_Free_Warning --
+    --------------------------------------------------
+ 
+    function Make_Pragma_No_Effect_With_Lock_Free_Warning
+      (Pragma_Node    : Node_Id; Pragma_Name : Name_Id;
+       Lock_Free_Node : Node_Id; Lock_Free_Range : Node_Id)
+       return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg      =>
+              "pragma " & '"' & Get_Name_String (Pragma_Name) & '"' &
+              " for " & To_Name (Lock_Free_Node) &
+              " has no effect when Lock_Free given",
+            Location => Primary_Labeled_Span (Pragma_Node, "No effect"),
+            Id       => GNAT0008,
+            Kind     => Diagnostics.Warning,
+            Spans    =>
+              (1 =>
+                 Labeled_Span
+                   (Span       => To_Full_Span (Lock_Free_Range),
+                    Label      => "Lock_Free in effect here",
+                    Is_Primary => False,
+                    Is_Region  => True)));
+    end Make_Pragma_No_Effect_With_Lock_Free_Warning;
+ 
+    --------------------------------------------
+    -- Record_Pragma_No_Effect_With_Lock_Free --
+    --------------------------------------------
+ 
+    procedure Record_Pragma_No_Effect_With_Lock_Free_Warning
+      (Pragma_Node : Node_Id;
+       Pragma_Name : Name_Id;
+       Lock_Free_Node : Node_Id;
+       Lock_Free_Range : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Pragma_No_Effect_With_Lock_Free_Warning
+            (Pragma_Node, Pragma_Name, Lock_Free_Node, Lock_Free_Range));
+    end Record_Pragma_No_Effect_With_Lock_Free_Warning;
+ 
+    ----------------------------------
+    -- Make_End_Loop_Expected_Error --
+    ----------------------------------
+ 
+    function Make_End_Loop_Expected_Error
+      (End_Loc   : Source_Span;
+       Start_Loc : Source_Ptr) return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg      =>
+              """end loop;"" expected for ""loop"" " &
+              Sloc_To_String (Start_Loc, End_Loc.Ptr),
+            Location => Primary_Labeled_Span (End_Loc),
+            Id       => GNAT0009,
+            Kind     => Diagnostics.Error,
+            Spans    => (1 => Secondary_Labeled_Span (To_Span (Start_Loc))),
+            Fixes    =>
+              (1 =>
+                 Fix
+                   (Description   => "Replace with 'end loop;'",
+                    Edits         =>
+                      (1 => Edit (Text => "end loop;", Span => End_Loc)),
+                    Applicability => Legal)));
+    end Make_End_Loop_Expected_Error;
+ 
+    ------------------------------------
+    -- Record_End_Loop_Expected_Error --
+    ------------------------------------
+ 
+    procedure Record_End_Loop_Expected_Error
+      (End_Loc : Source_Span; Start_Loc : Source_Ptr)
+    is
+    begin
+       Record_Diagnostic (Make_End_Loop_Expected_Error (End_Loc, Start_Loc));
+    end Record_End_Loop_Expected_Error;
+ 
+    ----------------------------------------
+    -- Make_Representation_Too_Late_Error --
+    ----------------------------------------
+ 
+    function Make_Representation_Too_Late_Error
+      (Rep    : Node_Id;
+       Freeze : Node_Id;
+       Def    : Node_Id)
+       return Diagnostic_Type
+    is
+    begin
+       return
+         Make_Diagnostic
+           (Msg       =>
+              "record representation cannot be specified" &
+              " after the type is frozen",
+            Location  =>
+              Primary_Labeled_Span
+                (N     => Rep,
+                 Label => "record representation clause specified here"),
+            Id        => GNAT0010,
+            Kind      => Error,
+            Spans     =>
+              (1 =>
+                 Secondary_Labeled_Span
+                   (N     => Freeze,
+                    Label =>
+                      "Type " & To_Name (Def) & " is frozen here"),
+               2 =>
+                 Secondary_Labeled_Span
+                   (N     => Def,
+                    Label =>
+                      "Type " & To_Name (Def) & " is declared here")),
+            Sub_Diags =>
+              (1 =>
+                 Suggestion
+                   (Msg  =>
+                      "move the record representation clause" &
+                      " before the freeze point " &
+                      Sloc_To_String (Sloc (Freeze), Sloc (Rep)))));
+    end Make_Representation_Too_Late_Error;
+ 
+    ------------------------------------------
+    -- Record_Representation_Too_Late_Error --
+    ------------------------------------------
+ 
+    procedure Record_Representation_Too_Late_Error
+      (Rep    : Node_Id;
+       Freeze : Node_Id;
+       Def    : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Representation_Too_Late_Error (Rep, Freeze, Def));
+    end Record_Representation_Too_Late_Error;
+ 
+    ------------------------------------------
+    -- Make_Mixed_Container_Aggregate_Error --
+    ------------------------------------------
+ 
+    function Make_Mixed_Container_Aggregate_Error
+      (Aggr       : Node_Id;
+       Pos_Elem   : Node_Id;
+       Named_Elem : Node_Id) return Diagnostic_Type
+    is
+ 
+    begin
+       return
+         Make_Diagnostic
+           (Msg       =>
+              "container aggregate cannot be both positional and named",
+            Location  => Primary_Labeled_Span (Aggr),
+            Id        => GNAT0011,
+            Kind      => Diagnostics.Error,
+            Spans     =>
+              (1 => Secondary_Labeled_Span
+                (Pos_Elem, "positional element "),
+              2 => Secondary_Labeled_Span
+                (Named_Elem, "named element")));
+    end Make_Mixed_Container_Aggregate_Error;
+ 
+    --------------------------------------------
+    -- Record_Mixed_Container_Aggregate_Error --
+    --------------------------------------------
+ 
+    procedure Record_Mixed_Container_Aggregate_Error
+      (Aggr       : Node_Id;
+       Pos_Elem   : Node_Id;
+       Named_Elem : Node_Id)
+    is
+    begin
+       Record_Diagnostic
+         (Make_Mixed_Container_Aggregate_Error (Aggr, Pos_Elem, Named_Elem));
+    end Record_Mixed_Container_Aggregate_Error;
+ 
+ end Diagnostics.Constructors;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-constructors.ads gcc-15.1.0/gcc/ada/diagnostics-constructors.ads
*** gcc-14.2.0/gcc/ada/diagnostics-constructors.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-constructors.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,143 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . C O N S T R U C T O R S              --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Namet; use Namet;
+ 
+ package Diagnostics.Constructors is
+ 
+    function Make_Default_Iterator_Not_Primitive_Error
+      (Expr : Node_Id;
+       Subp : Entity_Id) return Diagnostic_Type;
+ 
+    procedure Record_Default_Iterator_Not_Primitive_Error
+      (Expr : Node_Id;
+       Subp : Entity_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_L_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_L_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_R_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_R_Int_Error
+      (Op     : Node_Id;
+       L      : Node_Id;
+       L_Type : Node_Id;
+       R      : Node_Id;
+       R_Type : Node_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_L_Acc_Error
+      (Op     : Node_Id;
+       L      : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
+      (Op     : Node_Id;
+       L      : Node_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
+      (Op     : Node_Id;
+       R      : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
+      (Op     : Node_Id;
+       R      : Node_Id);
+ 
+    function Make_Invalid_Operand_Types_For_Operator_General_Error
+      (Op     : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Invalid_Operand_Types_For_Operator_General_Error
+      (Op     : Node_Id);
+ 
+    function Make_Pragma_No_Effect_With_Lock_Free_Warning
+      (Pragma_Node     : Node_Id;
+       Pragma_Name     : Name_Id;
+       Lock_Free_Node  : Node_Id;
+       Lock_Free_Range : Node_Id)
+       return Diagnostic_Type;
+ 
+    procedure Record_Pragma_No_Effect_With_Lock_Free_Warning
+      (Pragma_Node    : Node_Id;
+       Pragma_Name    : Name_Id;
+       Lock_Free_Node : Node_Id;
+       Lock_Free_Range : Node_Id);
+ 
+    function Make_End_Loop_Expected_Error
+      (End_Loc : Source_Span;
+       Start_Loc : Source_Ptr) return Diagnostic_Type;
+ 
+    procedure Record_End_Loop_Expected_Error
+      (End_Loc : Source_Span;
+       Start_Loc : Source_Ptr);
+ 
+    function Make_Representation_Too_Late_Error
+      (Rep    : Node_Id;
+       Freeze : Node_Id;
+       Def    : Node_Id)
+       return Diagnostic_Type;
+ 
+    procedure Record_Representation_Too_Late_Error
+      (Rep    : Node_Id;
+       Freeze : Node_Id;
+       Def    : Node_Id);
+ 
+    function Make_Mixed_Container_Aggregate_Error
+      (Aggr       : Node_Id;
+       Pos_Elem   : Node_Id;
+       Named_Elem : Node_Id) return Diagnostic_Type;
+ 
+    procedure Record_Mixed_Container_Aggregate_Error
+      (Aggr       : Node_Id;
+       Pos_Elem   : Node_Id;
+       Named_Elem : Node_Id);
+ 
+ end Diagnostics.Constructors;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-converter.adb gcc-15.1.0/gcc/ada/diagnostics-converter.adb
*** gcc-14.2.0/gcc/ada/diagnostics-converter.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-converter.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,254 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                D I A G N O S T I C S . C O N V E R T E R                 --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Erroutc; use Erroutc;
+ with Debug;   use Debug;
+ with Diagnostics.Repository;        use Diagnostics.Repository;
+ with Diagnostics.SARIF_Emitter;     use Diagnostics.SARIF_Emitter;
+ with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
+ with Opt;    use Opt;
+ with Osint;  use Osint;
+ with Output; use Output;
+ use Diagnostics.Diagnostics_Lists;
+ with System.OS_Lib; use System.OS_Lib;
+ 
+ package body Diagnostics.Converter is
+ 
+    function Convert (E_Id : Error_Msg_Id) return Diagnostic_Type;
+ 
+    function Convert_Sub_Diagnostic
+      (E_Id : Error_Msg_Id) return Sub_Diagnostic_Type;
+ 
+    function Get_Warning_Kind (E_Msg : Error_Msg_Object) return Diagnostic_Kind
+    is (if E_Msg.Warn_Chr = "* " then Restriction_Warning
+        elsif E_Msg.Warn_Chr = "? " then Default_Warning
+        elsif E_Msg.Warn_Chr = "  " then Tagless_Warning
+        else Warning);
+    --  NOTE: Some messages have both info and warning set to true. The old
+    --  printer added the warning switch label but treated the message as
+    --  an info message.
+ 
+    function Get_Diagnostics_Kind (E_Msg : Error_Msg_Object)
+                                   return Diagnostic_Kind
+    is (if E_Msg.Kind = Erroutc.Warning then Get_Warning_Kind (E_Msg)
+       elsif E_Msg.Kind = Erroutc.Style then Style
+       elsif E_Msg.Kind = Erroutc.Info then Info
+       elsif E_Msg.Kind = Erroutc.Non_Serious_Error then Non_Serious_Error
+       else Error);
+ 
+    -----------------------------------
+    -- Convert_Errors_To_Diagnostics --
+    -----------------------------------
+ 
+    procedure Convert_Errors_To_Diagnostics
+    is
+       E : Error_Msg_Id;
+    begin
+       E := First_Error_Msg;
+       while E /= No_Error_Msg loop
+ 
+          if not Errors.Table (E).Deleted
+            and then not Errors.Table (E).Msg_Cont
+          then
+ 
+             --  We do not need to update the count of converted error messages
+             --  since they are accounted for in their creation.
+ 
+             Record_Diagnostic (Convert (E), Update_Count => False);
+          end if;
+ 
+          E := Errors.Table (E).Next;
+       end loop;
+ 
+    end Convert_Errors_To_Diagnostics;
+ 
+    ----------------------------
+    -- Convert_Sub_Diagnostic --
+    ----------------------------
+ 
+    function Convert_Sub_Diagnostic
+      (E_Id : Error_Msg_Id) return Sub_Diagnostic_Type
+    is
+       E_Msg : constant Error_Msg_Object := Errors.Table (E_Id);
+       D : Sub_Diagnostic_Type;
+    begin
+       D.Message := E_Msg.Text;
+ 
+       --  All converted sub-diagnostics are continuations. When emitted they
+       --  shall be printed with the same kind token as the main diagnostic.
+       D.Kind := Continuation;
+ 
+       Add_Location (D,
+         Primary_Labeled_Span
+           (if E_Msg.Insertion_Sloc /= No_Location
+            then To_Span (E_Msg.Insertion_Sloc)
+            else E_Msg.Sptr));
+ 
+       if E_Msg.Optr.Ptr /= E_Msg.Sptr.Ptr then
+          Add_Location (D, Secondary_Labeled_Span (E_Msg.Optr));
+       end if;
+ 
+       return D;
+    end Convert_Sub_Diagnostic;
+ 
+    -------------
+    -- Convert --
+    -------------
+ 
+    function Convert (E_Id : Error_Msg_Id) return Diagnostic_Type is
+ 
+       E_Next_Id : Error_Msg_Id;
+ 
+       E_Msg : constant Error_Msg_Object := Errors.Table (E_Id);
+       D : Diagnostic_Type;
+    begin
+       D.Message := E_Msg.Text;
+ 
+       D.Kind := Get_Diagnostics_Kind (E_Msg);
+ 
+       if E_Msg.Kind in Erroutc.Warning | Erroutc.Style | Erroutc.Info then
+          D.Switch := Get_Switch_Id (E_Msg);
+       end if;
+ 
+       D.Warn_Err := E_Msg.Warn_Err;
+ 
+       --  Convert the primary location
+ 
+       Add_Location (D, Primary_Labeled_Span (E_Msg.Sptr));
+ 
+       --  Convert the secondary location if it is different from the primary
+ 
+       if E_Msg.Optr.Ptr /= E_Msg.Sptr.Ptr then
+          Add_Location (D, Secondary_Labeled_Span (E_Msg.Optr));
+       end if;
+ 
+       E_Next_Id := Errors.Table (E_Id).Next;
+       while E_Next_Id /= No_Error_Msg
+         and then Errors.Table (E_Next_Id).Msg_Cont
+       loop
+          Add_Sub_Diagnostic (D, Convert_Sub_Diagnostic (E_Next_Id));
+          E_Next_Id := Errors.Table (E_Next_Id).Next;
+       end loop;
+ 
+       return D;
+    end Convert;
+ 
+    ----------------------
+    -- Emit_Diagnostics --
+    ----------------------
+ 
+    procedure Emit_Diagnostics is
+       D : Diagnostic_Type;
+ 
+       It : Iterator := Iterate (All_Diagnostics);
+ 
+       Sarif_File_Name : constant String :=
+         Get_First_Main_File_Name & ".gnat.sarif";
+ 
+       Switches_File_Name : constant String := "gnat_switches.json";
+ 
+       Diagnostics_File_Name : constant String := "gnat_diagnostics.json";
+ 
+       Dummy : Boolean;
+    begin
+       if Opt.SARIF_Output then
+          Set_Standard_Error;
+ 
+          Print_SARIF_Report (All_Diagnostics);
+ 
+          Set_Standard_Output;
+       elsif Opt.SARIF_File then
+          Delete_File (Sarif_File_Name, Dummy);
+          declare
+             Output_FD : constant File_Descriptor :=
+               Create_New_File
+                 (Sarif_File_Name,
+                  Fmode => Text);
+ 
+          begin
+             Set_Output (Output_FD);
+ 
+             Print_SARIF_Report (All_Diagnostics);
+ 
+             Set_Standard_Output;
+ 
+             Close (Output_FD);
+          end;
+       else
+          Set_Standard_Error;
+ 
+          while Has_Next (It) loop
+             Next (It, D);
+ 
+             Print_Diagnostic (D);
+          end loop;
+ 
+          Set_Standard_Output;
+       end if;
+ 
+       if Debug_Flag_Underscore_EE then
+ 
+          --  Print the switch repository to a file
+ 
+          Delete_File (Switches_File_Name, Dummy);
+          declare
+             Output_FD : constant File_Descriptor :=
+               Create_New_File
+                 (Switches_File_Name,
+                  Fmode => Text);
+ 
+          begin
+             Set_Output (Output_FD);
+ 
+             Print_Switch_Repository;
+ 
+             Set_Standard_Output;
+ 
+             Close (Output_FD);
+          end;
+ 
+          --  Print the diagnostics repository to a file
+ 
+          Delete_File (Diagnostics_File_Name, Dummy);
+          declare
+             Output_FD : constant File_Descriptor :=
+               Create_New_File
+                 (Diagnostics_File_Name,
+                  Fmode => Text);
+ 
+          begin
+             Set_Output (Output_FD);
+ 
+             Print_Diagnostic_Repository;
+ 
+             Set_Standard_Output;
+ 
+             Close (Output_FD);
+          end;
+       end if;
+ 
+       Destroy (All_Diagnostics);
+    end Emit_Diagnostics;
+ 
+ end Diagnostics.Converter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-converter.ads gcc-15.1.0/gcc/ada/diagnostics-converter.ads
*** gcc-14.2.0/gcc/ada/diagnostics-converter.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-converter.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,31 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                D I A G N O S T I C S . C O N V E R T E R                 --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.Converter is
+ 
+    procedure Convert_Errors_To_Diagnostics;
+ 
+    procedure Emit_Diagnostics;
+ end Diagnostics.Converter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-json_utils.adb gcc-15.1.0/gcc/ada/diagnostics-json_utils.adb
*** gcc-14.2.0/gcc/ada/diagnostics-json_utils.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-json_utils.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,115 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . J S O N _ U T I L S                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Output; use Output;
+ 
+ package body Diagnostics.JSON_Utils is
+ 
+    -----------------
+    -- Begin_Block --
+    -----------------
+ 
+    procedure Begin_Block is
+    begin
+       Indent_Level := Indent_Level + 1;
+    end Begin_Block;
+ 
+    ---------------
+    -- End_Block --
+    ---------------
+ 
+    procedure End_Block is
+    begin
+       Indent_Level := Indent_Level - 1;
+    end End_Block;
+ 
+    procedure Indent is begin
+       if JSON_FORMATTING then
+          for I in 1 .. INDENT_SIZE * Indent_Level loop
+             Write_Char (' ');
+          end loop;
+       end if;
+    end Indent;
+ 
+    -------------------
+    -- NL_And_Indent --
+    -------------------
+ 
+    procedure NL_And_Indent is
+    begin
+       if JSON_FORMATTING then
+          Write_Eol;
+          Indent;
+       end if;
+    end NL_And_Indent;
+ 
+    -----------------------------
+    -- Write_Boolean_Attribute --
+    -----------------------------
+ 
+    procedure Write_Boolean_Attribute (Name : String; Value : Boolean) is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Str (if Value then "true" else "false");
+    end Write_Boolean_Attribute;
+ 
+    -------------------------
+    -- Write_Int_Attribute --
+    -------------------------
+ 
+    procedure Write_Int_Attribute (Name : String; Value : Int) is
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Int (Value);
+    end Write_Int_Attribute;
+ 
+    -------------------------------
+    -- Write_JSON_Escaped_String --
+    -------------------------------
+ 
+    procedure Write_JSON_Escaped_String (Str : String) is
+    begin
+       for C of Str loop
+          if C = '"' or else C = '\' then
+             Write_Char ('\');
+          end if;
+ 
+          Write_Char (C);
+       end loop;
+    end Write_JSON_Escaped_String;
+ 
+    ----------------------------
+    -- Write_String_Attribute --
+    ----------------------------
+ 
+    procedure Write_String_Attribute (Name : String; Value : String) is
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Char ('"');
+       Write_JSON_Escaped_String (Value);
+       Write_Char ('"');
+    end Write_String_Attribute;
+ 
+ end Diagnostics.JSON_Utils;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-json_utils.ads gcc-15.1.0/gcc/ada/diagnostics-json_utils.ads
*** gcc-14.2.0/gcc/ada/diagnostics-json_utils.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-json_utils.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,75 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . J S O N _ U T I L S                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.JSON_Utils is
+ 
+    JSON_FORMATTING : constant Boolean := True;
+    --  Adds newlines and indentation to the output JSON.
+    --
+    --  NOTE: This flag could be associated with the gcc switch:
+    --  '-fno-diagnostics-json-formatting'
+ 
+    INDENT_SIZE : constant := 2;
+    --  The number of spaces to indent each level of the JSON output.
+ 
+    Indent_Level : Natural := 0;
+    --  The current indentation level.
+ 
+    procedure Begin_Block;
+    --  Increase the indentation level by one
+ 
+    procedure End_Block;
+    --  Decrease the indentation level by one
+ 
+    procedure Indent;
+    --  Print the indentation for the line
+ 
+    procedure NL_And_Indent;
+    --  Print a new line
+ 
+    procedure Write_Boolean_Attribute (Name : String; Value : Boolean);
+    --  Write a JSON attribute with a boolean value.
+    --
+    --  The value is either 'true' or 'false' without any quotes
+ 
+    procedure Write_Int_Attribute (Name : String; Value : Int);
+ 
+    procedure Write_JSON_Escaped_String (Str : String);
+    --  Write each character of Str, taking care of preceding each quote and
+    --  backslash with a backslash. Note that this escaping differs from what
+    --  GCC does.
+    --
+    --  Indeed, the JSON specification mandates encoding wide characters
+    --  either as their direct UTF-8 representation or as their escaped
+    --  UTF-16 surrogate pairs representation. GCC seems to prefer escaping -
+    --  we choose to use the UTF-8 representation instead.
+ 
+    procedure Write_String_Attribute (Name : String; Value : String);
+    --  Write a JSON attribute with a string value.
+    --
+    --  The Value is surrounded by double quotes ("") and the special characters
+    --  within the string are escaped.
+ 
+ end Diagnostics.JSON_Utils;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-pretty_emitter.adb gcc-15.1.0/gcc/ada/diagnostics-pretty_emitter.adb
*** gcc-14.2.0/gcc/ada/diagnostics-pretty_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-pretty_emitter.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,1294 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Diagnostics.Utils; use Diagnostics.Utils;
+ with Output;            use Output;
+ with Sinput;            use Sinput;
+ with Erroutc;           use Erroutc;
+ 
+ package body Diagnostics.Pretty_Emitter is
+ 
+    REGION_OFFSET : constant := 1;
+    --  Number of characters between the line bar and the region span
+ 
+    REGION_ARM_SIZE : constant := 2;
+    --  Number of characters on the region span arms
+    --  e.g. two for this case:
+    --   +--
+    --   |
+    --   +--
+    --   ^^
+ 
+    REGION_SIZE : constant := REGION_OFFSET + 1 + REGION_ARM_SIZE;
+    --  The total number of characters taken up by the region span characters
+ 
+    MAX_BAR_POS : constant := 7;
+    --  The maximum position of the line bar from the start of the line
+    type Printable_Line is record
+       First   : Source_Ptr;
+       --  The first character of the line
+ 
+       Last    : Source_Ptr;
+       --  The last character of the line
+ 
+       Line_Nr : Pos;
+       --  The line number
+ 
+       Spans   : Labeled_Span_List;
+       --  The spans applied on the line
+    end record;
+ 
+    procedure Destroy (Elem : in out Printable_Line);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : Printable_Line) return Boolean is
+      (L.Line_Nr = R.Line_Nr);
+ 
+    package Lines_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Printable_Line,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Lines_List is Lines_Lists.Doubly_Linked_List;
+ 
+    type File_Sections is record
+       File  : String_Ptr;
+       --  Name of the file
+ 
+       Lines : Lines_List;
+       --  Lines to be printed for the file
+    end record;
+ 
+    procedure Destroy (Elem : in out File_Sections);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : File_Sections) return Boolean is
+      (L.File /= null
+        and then R.File /= null
+        and then L.File.all = R.File.all);
+ 
+    package File_Section_Lists is new Doubly_Linked_Lists
+      (Element_Type    => File_Sections,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype File_Section_List is File_Section_Lists.Doubly_Linked_List;
+ 
+    function Create_File_Sections (Spans : Labeled_Span_List)
+                                   return File_Section_List;
+    --  Create a list of file sections from the labeled spans that are to be
+    --  printed.
+    --
+    --  Each file section contains a list of lines that are to be printed for
+    --  the file and the spans that are applied to each of those lines.
+ 
+    procedure Create_File_Section
+      (Sections : in out File_Section_List;
+       Loc      : Labeled_Span_Type);
+    --  Create a new file section for the given labeled span.
+ 
+    procedure Add_Printable_Line
+      (Lines : Lines_List;
+       Loc   : Labeled_Span_Type;
+       S_Ptr : Source_Ptr);
+ 
+    procedure Create_Printable_Line
+      (Lines : Lines_List;
+       Loc   : Labeled_Span_Type;
+       S_Ptr : Source_Ptr);
+    --  Create a new printable line for the given labeled span and add it in the
+    --  correct position to the Lines list based on the line number.
+ 
+    function Has_Region_Span_Start (L : Printable_Line) return Boolean;
+    function Has_Region_Span_End   (L : Printable_Line) return Boolean;
+ 
+    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean;
+ 
+    procedure Write_Region_Delimiter;
+    --  Write the arms signifying the start and end of a region span
+    --  e.g. +--
+ 
+    procedure Write_Region_Bar;
+    --  Write the bar signifying the continuation of a region span
+    --  e.g. |
+ 
+    procedure Write_Region_Continuation;
+    --  Write the continuation signifying the continuation of a region span
+    --  e.g. :
+ 
+    procedure Write_Region_Offset;
+    --  Write a number of whitespaces equal to the size of the region span
+ 
+    function Trimmed_Image (I : Natural) return String;
+ 
+    procedure Write_Span_Labels (Loc : Labeled_Span_Type;
+                                 L   : Printable_Line;
+                                 Line_Size : Integer;
+                                 Idx : String;
+                                 Within_Region_Span : Boolean);
+ 
+    procedure Write_File_Section (Sec : File_Sections;
+                                  Write_File_Name  : Boolean;
+                                  File_Name_Offset : Integer);
+ 
+    procedure Write_Labeled_Spans (Spans            : Labeled_Span_List;
+                                   Write_File_Name  : Boolean;
+                                   File_Name_Offset : Integer);
+ 
+    procedure Write_Intersecting_Labels
+      (Intersecting_Labels : Labeled_Span_List);
+ 
+    function Get_Line_End
+      (Buf : Source_Buffer_Ptr;
+       Loc : Source_Ptr) return Source_Ptr;
+    --  Get the source location for the end of the line (LF) in Buf for Loc. If
+    --  Loc is past the end of Buf already, return Buf'Last.
+ 
+    function Get_Line_Start
+      (Buf : Source_Buffer_Ptr;
+       Loc : Source_Ptr) return Source_Ptr;
+    --  Get the source location for the start of the line in Buf for Loc
+ 
+    function Get_First_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get first non-space character in the line containing Loc
+ 
+    function Get_Last_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get last non line end [LF, CR] character in the line containing Loc
+ 
+    function Image (X : Positive; Width : Positive) return String;
+    --  Output number X over Width characters, with whitespace padding.
+    --  Only output the low-order Width digits of X, if X is larger than
+    --  Width digits.
+ 
+    procedure Write_Buffer
+      (Buf   : Source_Buffer_Ptr;
+       First : Source_Ptr;
+       Last  : Source_Ptr);
+    --  Output the characters from First to Last position in Buf, using
+    --  Write_Buffer_Char.
+ 
+    procedure Write_Buffer_Char
+      (Buf : Source_Buffer_Ptr;
+       Loc : Source_Ptr);
+    --  Output the characters at position Loc in Buf, translating ASCII.HT
+    --  in a suitable number of spaces so that the output is not modified
+    --  by starting in a different column that 1.
+ 
+    procedure Write_Line_Marker
+      (Num   : Pos;
+       Width : Positive);
+ 
+    procedure Write_Empty_Bar_Line (Width : Integer);
+ 
+    procedure Write_Empty_Skip_Line (Width : Integer);
+ 
+    procedure Write_Error_Msg_Line (Diag : Diagnostic_Type);
+    --  Write the error message line for the given diagnostic:
+    --
+    --  '['<Diag.Id>']' <Diag.Kind>: <Diag.Message> ['['<Diag.Switch>']']
+ 
+    function Should_Write_File_Name (Sub_Diag : Sub_Diagnostic_Type;
+                                     Diag : Diagnostic_Type) return Boolean;
+    --  If the sub-diagnostic and the main diagnostic only point to the same
+    --  file then there is no reason to add the file name to the sub-diagnostic.
+ 
+    function Should_Write_Spans (Sub_Diag : Sub_Diagnostic_Type;
+                                 Diag : Diagnostic_Type)
+                                 return Boolean;
+    --  Old sub-diagnostics used to have the same location as the main
+    --  diagnostic in order to group them correctly. However in most cases
+    --  it was not meant to point to a location but rather add an additional
+    --  message to the original diagnostic.
+    --
+    --  If the sub-diagnostic and the main diagnostic have the same location
+    --  then we should avoid printing the spans.
+ 
+    procedure Print_Edit
+      (Edit   : Edit_Type;
+       Offset : Integer);
+ 
+    procedure Print_Fix
+      (Fix    : Fix_Type;
+       Offset : Integer);
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Sub_Diagnostic_Type;
+       Diag     : Diagnostic_Type;
+       Offset   : Integer);
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Printable_Line)
+    is
+    begin
+       --  Diagnostic elements will be freed when all the diagnostics have been
+       --  emitted.
+       null;
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out File_Sections)
+    is
+    begin
+       Free (Elem.File);
+    end Destroy;
+ 
+    ------------------
+    -- Get_Line_End --
+    ------------------
+ 
+    function Get_Line_End
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Source_Ptr'Min (Loc, Buf'Last);
+    begin
+       while Cur_Loc < Buf'Last
+         and then Buf (Cur_Loc) /= ASCII.LF
+       loop
+          Cur_Loc := Cur_Loc + 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Line_End;
+ 
+    --------------------
+    -- Get_Line_Start --
+    --------------------
+ 
+    function Get_Line_Start
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Loc;
+    begin
+       while Cur_Loc > Buf'First
+         and then Buf (Cur_Loc - 1) /= ASCII.LF
+       loop
+          Cur_Loc := Cur_Loc - 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Line_Start;
+ 
+    -------------------------
+    -- Get_First_Line_Char --
+    -------------------------
+ 
+    function Get_First_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Get_Line_Start (Buf, Loc);
+    begin
+       while Cur_Loc < Buf'Last
+         and then Buf (Cur_Loc) = ' '
+       loop
+          Cur_Loc := Cur_Loc + 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_First_Line_Char;
+ 
+    ------------------------
+    -- Get_Last_Line_Char --
+    ------------------------
+ 
+    function Get_Last_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Get_Line_End (Buf, Loc);
+    begin
+       while Cur_Loc > Buf'First
+         and then Buf (Cur_Loc) in ASCII.LF | ASCII.CR
+       loop
+          Cur_Loc := Cur_Loc - 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Last_Line_Char;
+ 
+    -----------
+    -- Image --
+    -----------
+ 
+    function Image (X : Positive; Width : Positive) return String is
+       Str  : String (1 .. Width);
+       Curr : Natural := X;
+    begin
+       for J in reverse 1 .. Width loop
+          if Curr > 0 then
+             Str (J) := Character'Val (Character'Pos ('0') + Curr mod 10);
+             Curr := Curr / 10;
+          else
+             Str (J) := ' ';
+          end if;
+       end loop;
+ 
+       return Str;
+    end Image;
+ 
+    --------------------------------
+    -- Has_Multiple_Labeled_Spans --
+    --------------------------------
+ 
+    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean
+    is
+       Count : Natural := 0;
+ 
+       Loc : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (L.Spans);
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+          if Loc.Label /= null then
+             Count := Count + 1;
+          end if;
+       end loop;
+ 
+       return Count > 1;
+    end Has_Multiple_Labeled_Spans;
+ 
+    ---------------------------
+    -- Has_Region_Span_Start --
+    ---------------------------
+ 
+    function Has_Region_Span_Start (L : Printable_Line) return Boolean is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (L.Spans);
+ 
+       Has_Region_Start : Boolean := False;
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          if not Has_Region_Start
+             and then Loc.Is_Region
+             and then L.Line_Nr =
+               Pos (Get_Physical_Line_Number (Loc.Span.First))
+          then
+             Has_Region_Start := True;
+          end if;
+       end loop;
+       return Has_Region_Start;
+    end Has_Region_Span_Start;
+ 
+    -------------------------
+    -- Has_Region_Span_End --
+    -------------------------
+ 
+    function Has_Region_Span_End (L : Printable_Line) return Boolean is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (L.Spans);
+ 
+       Has_Region_End : Boolean := False;
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          if not Has_Region_End
+             and then Loc.Is_Region
+             and then L.Line_Nr =
+               Pos (Get_Physical_Line_Number (Loc.Span.Last))
+          then
+             Has_Region_End := True;
+          end if;
+       end loop;
+       return Has_Region_End;
+    end Has_Region_Span_End;
+ 
+    ------------------
+    -- Write_Buffer --
+    ------------------
+ 
+    procedure Write_Buffer
+      (Buf   : Source_Buffer_Ptr;
+       First : Source_Ptr;
+       Last  : Source_Ptr)
+    is
+    begin
+       for Loc in First .. Last loop
+          Write_Buffer_Char (Buf, Loc);
+       end loop;
+    end Write_Buffer;
+ 
+    -----------------------
+    -- Write_Buffer_Char --
+    -----------------------
+ 
+    procedure Write_Buffer_Char
+      (Buf : Source_Buffer_Ptr;
+       Loc : Source_Ptr)
+    is
+    begin
+       --  If the character ASCII.HT is not the last one in the file,
+       --  output as many spaces as the character represents in the
+       --  original source file.
+ 
+       if Buf (Loc) = ASCII.HT
+          and then Loc < Buf'Last
+       then
+          for X in Get_Column_Number (Loc) ..
+                   Get_Column_Number (Loc + 1) - 1
+          loop
+             Write_Char (' ');
+          end loop;
+ 
+       --  Otherwise output the character itself
+ 
+       else
+          Write_Char (Buf (Loc));
+       end if;
+    end Write_Buffer_Char;
+ 
+    -----------------------
+    -- Write_Line_Marker --
+    -----------------------
+ 
+    procedure Write_Line_Marker
+      (Num   : Pos;
+       Width : Positive)
+    is
+    begin
+       Write_Str (Image (Positive (Num), Width => Width - 2));
+       Write_Str (" |");
+    end Write_Line_Marker;
+ 
+    --------------------------
+    -- Write_Empty_Bar_Line --
+    --------------------------
+ 
+    procedure Write_Empty_Bar_Line (Width : Integer) is
+ 
+    begin
+       Write_Str (String'(1 .. Width - 1 => ' '));
+       Write_Str ("|");
+    end Write_Empty_Bar_Line;
+ 
+    ---------------------------
+    -- Write_Empty_Skip_Line --
+    ---------------------------
+ 
+    procedure Write_Empty_Skip_Line (Width : Integer) is
+ 
+    begin
+       Write_Str (String'(1 .. Width - 1 => ' '));
+       Write_Str (":");
+    end Write_Empty_Skip_Line;
+ 
+    ----------------------------
+    -- Write_Region_Delimiter --
+    ----------------------------
+ 
+    procedure Write_Region_Delimiter is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str ("+");
+       Write_Str (String'(1 .. REGION_ARM_SIZE => '-'));
+    end Write_Region_Delimiter;
+ 
+    ----------------------
+    -- Write_Region_Bar --
+    ----------------------
+ 
+    procedure Write_Region_Bar is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str ("|");
+       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
+    end Write_Region_Bar;
+ 
+    -------------------------------
+    -- Write_Region_Continuation --
+    -------------------------------
+ 
+    procedure Write_Region_Continuation is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (":");
+       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
+    end Write_Region_Continuation;
+ 
+    -------------------------
+    -- Write_Region_Offset --
+    -------------------------
+ 
+    procedure Write_Region_Offset is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_SIZE => ' '));
+    end Write_Region_Offset;
+ 
+    ------------------------
+    -- Add_Printable_Line --
+    ------------------------
+ 
+    procedure Add_Printable_Line
+      (Lines : Lines_List;
+       Loc   : Labeled_Span_Type;
+       S_Ptr : Source_Ptr)
+    is
+       L          : Printable_Line;
+       L_It       : Lines_Lists.Iterator;
+ 
+       Line_Ptr   : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
+       Line_Found : Boolean      := False;
+    begin
+       L_It := Lines_Lists.Iterate (Lines);
+       while Lines_Lists.Has_Next (L_It) loop
+          Lines_Lists.Next (L_It, L);
+ 
+          if not Line_Found and then L.Line_Nr = Line_Ptr then
+             if not Labeled_Span_Lists.Contains (L.Spans, Loc) then
+                Labeled_Span_Lists.Append (L.Spans, Loc);
+             end if;
+             Line_Found := True;
+          end if;
+       end loop;
+ 
+       if not Line_Found then
+          Create_Printable_Line (Lines, Loc, S_Ptr);
+       end if;
+    end Add_Printable_Line;
+ 
+    ---------------------------
+    -- Create_Printable_Line --
+    ---------------------------
+ 
+    procedure Create_Printable_Line
+      (Lines : Lines_List;
+       Loc   : Labeled_Span_Type;
+       S_Ptr : Source_Ptr)
+    is
+       Spans : constant Labeled_Span_List := Labeled_Span_Lists.Create;
+ 
+       Buf : constant Source_Buffer_Ptr :=
+         Source_Text (Get_Source_File_Index (S_Ptr));
+ 
+       Line_Nr  : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
+ 
+       New_Line : constant Printable_Line :=
+         (First   => Get_Line_Start (Buf, S_Ptr),
+          Last    => Get_Line_End (Buf, S_Ptr),
+          Line_Nr => Line_Nr,
+          Spans   => Spans);
+ 
+       L    : Printable_Line;
+       L_It : Lines_Lists.Iterator := Lines_Lists.Iterate (Lines);
+ 
+       Found_Greater_Line : Boolean := False;
+       Insert_Before_Line : Printable_Line;
+    begin
+       Labeled_Span_Lists.Append (Spans, Loc);
+ 
+       --  Insert the new line based on the line number
+ 
+       while Lines_Lists.Has_Next (L_It) loop
+          Lines_Lists.Next (L_It, L);
+ 
+          if not Found_Greater_Line
+            and then L.Line_Nr > New_Line.Line_Nr
+          then
+             Found_Greater_Line := True;
+             Insert_Before_Line := L;
+ 
+             Lines_Lists.Insert_Before (Lines, Insert_Before_Line, New_Line);
+          end if;
+       end loop;
+ 
+       if Found_Greater_Line then
+ 
+          --  Insert after all the lines have been iterated over to avoid the
+          --  mutation lock in GNAT.Lists
+ 
+          null;
+       else
+          Lines_Lists.Append (Lines, New_Line);
+       end if;
+    end Create_Printable_Line;
+ 
+    -------------------------
+    -- Create_File_Section --
+    -------------------------
+ 
+    procedure Create_File_Section
+      (Sections : in out File_Section_List; Loc : Labeled_Span_Type)
+    is
+       Lines : constant Lines_List := Lines_Lists.Create;
+ 
+       --  Carret positions
+       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
+       Line_Ptr : constant Pos := Pos (Get_Physical_Line_Number (Ptr));
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Pos := Pos (Get_Physical_Line_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Pos := Pos (Get_Physical_Line_Number (Lst));
+    begin
+       Create_Printable_Line (Lines, Loc, Fst);
+ 
+       if Line_Fst /= Line_Ptr then
+          Create_Printable_Line (Lines, Loc, Ptr);
+       end if;
+ 
+       if Line_Ptr /= Line_Lst then
+          Create_Printable_Line (Lines, Loc, Lst);
+       end if;
+ 
+       File_Section_Lists.Append
+         (Sections,
+          (File  => new String'(To_File_Name (Loc.Span.Ptr)),
+           Lines => Lines));
+    end Create_File_Section;
+ 
+    --------------------------
+    -- Create_File_Sections --
+    --------------------------
+ 
+    function Create_File_Sections
+      (Spans : Labeled_Span_List) return File_Section_List
+    is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Spans);
+ 
+       Sections : File_Section_List := File_Section_Lists.Create;
+ 
+       Sec  : File_Sections;
+       F_It : File_Section_Lists.Iterator;
+ 
+       File_Found : Boolean;
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          File_Found := False;
+          F_It       := File_Section_Lists.Iterate (Sections);
+ 
+          while File_Section_Lists.Has_Next (F_It) loop
+             File_Section_Lists.Next (F_It, Sec);
+ 
+             if Sec.File /= null
+               and then Sec.File.all = To_File_Name (Loc.Span.Ptr)
+             then
+                File_Found := True;
+ 
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.First);
+ 
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Ptr);
+ 
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Last);
+             end if;
+          end loop;
+ 
+          if not File_Found then
+             Create_File_Section (Sections, Loc);
+          end if;
+       end loop;
+ 
+       return Sections;
+    end Create_File_Sections;
+ 
+    -----------------------
+    -- Write_Span_Labels --
+    -----------------------
+ 
+    procedure Write_Span_Labels (Loc : Labeled_Span_Type;
+                                 L   : Printable_Line;
+                                 Line_Size : Integer;
+                                 Idx : String;
+                                 Within_Region_Span : Boolean)
+    is
+       Span_Char : constant Character := (if Loc.Is_Primary then '~' else '-');
+ 
+       Buf : constant Source_Buffer_Ptr :=
+         Source_Text (Get_Source_File_Index (L.First));
+ 
+       Col_L_Fst : constant Natural := Natural
+         (Get_Column_Number (Get_First_Line_Char (Buf, L.First)));
+       Col_L_Lst : constant Natural := Natural
+         (Get_Column_Number (Get_Last_Line_Char (Buf, L.Last)));
+ 
+       --  Carret positions
+       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
+       Line_Ptr : constant Pos        := Pos (Get_Physical_Line_Number (Ptr));
+       Col_Ptr  : constant Natural    := Natural (Get_Column_Number (Ptr));
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Pos        := Pos (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Natural    := Natural (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Pos        := Pos (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Natural    := Natural (Get_Column_Number (Lst));
+ 
+       --  Attributes for the span on the current line
+ 
+       Span_Sym : constant String := (if Idx = "" then "^" else Idx);
+ 
+       Span_Fst : constant Natural :=
+         (if Line_Fst = L.Line_Nr then Col_Fst else Col_L_Fst);
+ 
+       Span_Lst : constant Natural :=
+         (if Line_Lst = L.Line_Nr then Col_Lst else Col_L_Lst);
+ 
+       Span_Ptr_Fst : constant Natural :=
+         (if Line_Ptr = L.Line_Nr then Col_Ptr else Col_L_Fst);
+ 
+       Span_Ptr_Lst : constant Natural :=
+         (if Line_Ptr = L.Line_Nr
+          then Span_Ptr_Fst + Span_Sym'Length
+          else Span_Fst);
+ 
+    begin
+       if not Loc.Is_Region then
+          Write_Empty_Bar_Line (Line_Size);
+ 
+          if Within_Region_Span then
+             Write_Region_Bar;
+          else
+             Write_Region_Offset;
+          end if;
+ 
+          Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+ 
+          if Line_Ptr = L.Line_Nr then
+             Write_Str (String'(Span_Fst .. Col_Ptr - 1 => Span_Char));
+             Write_Str (Span_Sym);
+          end if;
+ 
+          Write_Str (String'(Span_Ptr_Lst .. Span_Lst => Span_Char));
+ 
+          Write_Eol;
+ 
+          --  Write the label under the line unless it is an intersecting span.
+          --  In this case omit the label which will be printed later along with
+          --  the index.
+ 
+          if Loc.Label /= null and then Idx = "" then
+             Write_Empty_Bar_Line (Line_Size);
+ 
+             if Within_Region_Span then
+                Write_Region_Bar;
+             else
+                Write_Region_Offset;
+             end if;
+ 
+             Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+             Write_Str (Loc.Label.all);
+             Write_Eol;
+          end if;
+       else
+          if Line_Lst = L.Line_Nr then
+             Write_Empty_Bar_Line (Line_Size);
+             Write_Str (String'(1 .. REGION_OFFSET => ' '));
+             Write_Str (Loc.Label.all);
+             Write_Eol;
+          end if;
+       end if;
+ 
+    end Write_Span_Labels;
+ 
+    -------------------
+    -- Trimmed_Image --
+    -------------------
+ 
+    function Trimmed_Image (I : Natural) return String is
+       Img_Raw : constant String  := Natural'Image (I);
+    begin
+       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Trimmed_Image;
+ 
+    -------------------------------
+    -- Write_Intersecting_Labels --
+    -------------------------------
+ 
+    procedure Write_Intersecting_Labels
+      (Intersecting_Labels : Labeled_Span_List)
+    is
+       Ls    : Labeled_Span_Type;
+       Ls_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Intersecting_Labels);
+       Idx   : Integer := 0;
+    begin
+       while Labeled_Span_Lists.Has_Next (Ls_It) loop
+          Labeled_Span_Lists.Next (Ls_It, Ls);
+          Idx := Idx + 1;
+ 
+          Write_Empty_Bar_Line (MAX_BAR_POS);
+          Write_Str (" ");
+          Write_Int (Int (Idx));
+          Write_Str (": ");
+          Write_Str (Ls.Label.all);
+          Write_Eol;
+       end loop;
+    end Write_Intersecting_Labels;
+ 
+    ------------------------
+    -- Write_File_Section --
+    ------------------------
+ 
+    procedure Write_File_Section (Sec              : File_Sections;
+                                  Write_File_Name  : Boolean;
+                                  File_Name_Offset : Integer)
+    is
+       use Lines_Lists;
+ 
+       L : Printable_Line;
+       L_It : Iterator := Iterate (Sec.Lines);
+ 
+       --  The error should be included in the first (primary) span of the file.
+       Loc : constant Labeled_Span_Type :=
+          Labeled_Span_Lists.First (Lines_Lists.First (Sec.Lines).Spans);
+ 
+       Multiple_Labeled_Spans : Boolean := False;
+ 
+       Idx : Integer := 0;
+ 
+       Intersecting_Labels : constant Labeled_Span_List :=
+         Labeled_Span_Lists.Create;
+ 
+       Prev_Line_Nr : Natural := 0;
+ 
+       Within_Region_Span : Boolean := False;
+    begin
+       if Write_File_Name then
+ 
+          --  offset the file start location for sub-diagnostics
+ 
+          Write_Str (String'(1 .. File_Name_Offset => ' '));
+          Write_Str ("--> " & To_String (Loc.Span.Ptr));
+          Write_Eol;
+       end if;
+ 
+       while Has_Next (L_It) loop
+          Next (L_It, L);
+          declare
+             Line_Nr  : constant Pos := L.Line_Nr;
+             Line_Str : constant String := Trimmed_Image (Natural (Line_Nr));
+ 
+             Line_Size : constant Integer :=
+               Integer'Max (Line_Str'Length, MAX_BAR_POS);
+ 
+             Loc : Labeled_Span_Type;
+             Loc_It : Labeled_Span_Lists.Iterator :=
+               Labeled_Span_Lists.Iterate (L.Spans);
+ 
+             Buf : constant Source_Buffer_Ptr :=
+               Source_Text (Get_Source_File_Index (L.First));
+ 
+             Contains_Region_Span_Start : constant Boolean :=
+               Has_Region_Span_Start (L);
+             Contains_Region_Span_End   : constant Boolean :=
+               Has_Region_Span_End (L);
+          begin
+             if not Multiple_Labeled_Spans then
+                Multiple_Labeled_Spans :=  Has_Multiple_Labeled_Spans (L);
+             end if;
+ 
+             --  Write an empty line with the continuation symbol if the line
+             --  numbers are not contiguous
+ 
+             if Prev_Line_Nr /= 0
+               and then Pos (Prev_Line_Nr + 1) /= Line_Nr
+             then
+                Write_Empty_Skip_Line (Line_Size);
+ 
+                if Within_Region_Span then
+                   Write_Region_Continuation;
+                end if;
+ 
+                Write_Eol;
+             end if;
+ 
+             if Contains_Region_Span_Start then
+                Within_Region_Span := True;
+             end if;
+ 
+             Write_Line_Marker (Line_Nr, Line_Size);
+ 
+             --  Write either the region span symbol or the same number of
+             --  whitespaces.
+ 
+             if Contains_Region_Span_Start or Contains_Region_Span_End then
+                Write_Region_Delimiter;
+             elsif Within_Region_Span then
+                Write_Region_Bar;
+             else
+                Write_Region_Offset;
+             end if;
+ 
+             --  Write the line itself
+ 
+             Write_Buffer
+                (Buf   => Buf,
+                 First => L.First,
+                 Last  => L.Last);
+ 
+             --  Write all the spans for the line
+ 
+             while Labeled_Span_Lists.Has_Next (Loc_It) loop
+                Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+                if Multiple_Labeled_Spans
+                  and then Loc.Label /= null
+                then
+ 
+                   --  Collect all the spans with labels to print them at the
+                   --  end.
+ 
+                   Labeled_Span_Lists.Append (Intersecting_Labels, Loc);
+ 
+                   Idx := Idx + 1;
+ 
+                   Write_Span_Labels (Loc,
+                                      L,
+                                      Line_Size,
+                                      Trimmed_Image (Idx),
+                                      Within_Region_Span);
+                else
+                   Write_Span_Labels (Loc,
+                                      L,
+                                      Line_Size,
+                                      "",
+                                      Within_Region_Span);
+                end if;
+ 
+             end loop;
+ 
+             if Contains_Region_Span_End then
+                Within_Region_Span := False;
+             end if;
+ 
+             Prev_Line_Nr := Natural (Line_Nr);
+          end;
+       end loop;
+ 
+       Write_Intersecting_Labels (Intersecting_Labels);
+    end Write_File_Section;
+ 
+    -------------------------
+    -- Write_Labeled_Spans --
+    -------------------------
+ 
+    procedure Write_Labeled_Spans (Spans            : Labeled_Span_List;
+                                   Write_File_Name  : Boolean;
+                                   File_Name_Offset : Integer)
+    is
+       Sections : File_Section_List := Create_File_Sections (Spans);
+ 
+       Sec  : File_Sections;
+       F_It : File_Section_Lists.Iterator :=
+         File_Section_Lists.Iterate (Sections);
+    begin
+       while File_Section_Lists.Has_Next (F_It) loop
+          File_Section_Lists.Next (F_It, Sec);
+ 
+          Write_File_Section
+            (Sec, Write_File_Name, File_Name_Offset);
+       end loop;
+ 
+       File_Section_Lists.Destroy (Sections);
+    end Write_Labeled_Spans;
+ 
+    --------------------------
+    -- Write_Error_Msg_Line --
+    --------------------------
+ 
+    procedure Write_Error_Msg_Line (Diag : Diagnostic_Type) is
+       Switch_Str : constant String := Get_Doc_Switch (Diag);
+ 
+       Kind_Str : constant String := Kind_To_String (Diag);
+ 
+       SGR_Code : constant String :=
+         (if Kind_Str = "error"      then SGR_Error
+          elsif Kind_Str = "warning" then SGR_Warning
+          elsif Kind_Str = "info"    then SGR_Note
+          else                            SGR_Reset);
+    begin
+       Write_Str (SGR_Code);
+ 
+       Write_Str ("[" & To_String (Diag.Id) & "]");
+ 
+       Write_Str (" " & Kind_To_String (Diag) & ": ");
+ 
+       Write_Str (SGR_Reset);
+ 
+       Write_Str (Diag.Message.all);
+ 
+       if Switch_Str /= "" then
+          Write_Str (" " & Switch_Str);
+       end if;
+ 
+       if Diag.Warn_Err then
+          Write_Str (" [warning-as-error]");
+       end if;
+ 
+       Write_Eol;
+    end Write_Error_Msg_Line;
+ 
+    ----------------------------
+    -- Should_Write_File_Name --
+    ----------------------------
+ 
+    function Should_Write_File_Name (Sub_Diag : Sub_Diagnostic_Type;
+                                     Diag : Diagnostic_Type)
+                                     return Boolean
+    is
+       Sub_Loc  : constant Labeled_Span_Type := Primary_Location (Sub_Diag);
+       Diag_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
+ 
+       function Has_Multiple_Files (Spans : Labeled_Span_List) return Boolean;
+ 
+       ------------------------
+       -- Has_Multiple_Files --
+       ------------------------
+ 
+       function Has_Multiple_Files
+         (Spans : Labeled_Span_List) return Boolean
+       is
+          First : constant Labeled_Span_Type :=
+            Labeled_Span_Lists.First (Spans);
+ 
+          File : constant String := To_File_Name (First.Span.Ptr);
+ 
+          Loc : Labeled_Span_Type;
+          It : Labeled_Span_Lists.Iterator :=
+            Labeled_Span_Lists.Iterate (Spans);
+ 
+       begin
+          while Labeled_Span_Lists.Has_Next (It) loop
+             Labeled_Span_Lists.Next (It, Loc);
+ 
+             if To_File_Name (Loc.Span.Ptr) /= File then
+                return True;
+             end if;
+          end loop;
+          return False;
+       end Has_Multiple_Files;
+    begin
+       return
+         Has_Multiple_Files (Diag.Locations)
+         or else To_File_Name (Sub_Loc.Span.Ptr) /=
+           To_File_Name (Diag_Loc.Span.Ptr);
+    end Should_Write_File_Name;
+ 
+    ------------------------
+    -- Should_Write_Spans --
+    ------------------------
+ 
+    function Should_Write_Spans (Sub_Diag : Sub_Diagnostic_Type;
+                                 Diag : Diagnostic_Type)
+                                 return Boolean
+    is
+       Sub_Loc  : constant Labeled_Span_Type := Primary_Location (Sub_Diag);
+       Diag_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
+    begin
+       return Sub_Loc /= No_Labeled_Span
+         and then Diag_Loc /= No_Labeled_Span
+         and then Sub_Loc.Span.Ptr /= Diag_Loc.Span.Ptr;
+    end Should_Write_Spans;
+ 
+    ----------------
+    -- Print_Edit --
+    ----------------
+ 
+    procedure Print_Edit (Edit : Edit_Type; Offset : Integer) is
+       Buf : constant Source_Buffer_Ptr :=
+          Source_Text (Get_Source_File_Index (Edit.Span.Ptr));
+ 
+       Line_Nr : constant Pos := Pos (Get_Physical_Line_Number (Edit.Span.Ptr));
+ 
+       Line_Fst : constant Source_Ptr := Get_Line_Start (Buf, Edit.Span.First);
+       Line_Lst : constant Source_Ptr := Get_Line_End (Buf, Edit.Span.First);
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+       Write_Str ("--> " & To_File_Name (Edit.Span.Ptr));
+       Write_Eol;
+ 
+       --  write the original line
+ 
+       Write_Char ('-');
+       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
+ 
+       Write_Buffer
+          (Buf   => Buf,
+           First => Line_Fst,
+           Last  => Line_Lst);
+ 
+       --  write the edited line
+ 
+       Write_Char ('+');
+       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
+ 
+       Write_Buffer
+         (Buf   => Buf,
+          First => Line_Fst,
+          Last  => Edit.Span.First - 1);
+ 
+       if Edit.Text /= null then
+          Write_Str (Edit.Text.all);
+       end if;
+ 
+       Write_Buffer
+         (Buf   => Buf,
+          First => Edit.Span.Last + 1,
+          Last  => Line_Lst);
+ 
+    end Print_Edit;
+ 
+    ---------------
+    -- Print_Fix --
+    ---------------
+ 
+    procedure Print_Fix (Fix : Fix_Type; Offset : Integer) is
+       use Edit_Lists;
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+       Write_Str ("+ Fix: ");
+ 
+       if Fix.Description /= null then
+          Write_Str (Fix.Description.all);
+       end if;
+       Write_Eol;
+ 
+       if Present (Fix.Edits) then
+          declare
+             Edit : Edit_Type;
+ 
+             It : Iterator := Iterate (Fix.Edits);
+          begin
+             while Has_Next (It) loop
+                Next (It, Edit);
+ 
+                Print_Edit (Edit, MAX_BAR_POS - 1);
+             end loop;
+          end;
+       end if;
+    end Print_Fix;
+ 
+    --------------------------
+    -- Print_Sub_Diagnostic --
+    --------------------------
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Sub_Diagnostic_Type;
+       Diag     : Diagnostic_Type;
+       Offset   : Integer)
+    is
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+ 
+       if Sub_Diag.Kind = Suggestion then
+          Write_Str ("+ Suggestion: ");
+       else
+          Write_Str ("+ ");
+       end if;
+ 
+       Write_Str (Sub_Diag.Message.all);
+       Write_Eol;
+ 
+       if Should_Write_Spans (Sub_Diag, Diag) then
+          Write_Labeled_Spans (Sub_Diag.Locations,
+                               Should_Write_File_Name (Sub_Diag, Diag),
+                               Offset);
+       end if;
+    end Print_Sub_Diagnostic;
+ 
+    ----------------------
+    -- Print_Diagnostic --
+    ----------------------
+ 
+    procedure Print_Diagnostic (Diag : Diagnostic_Type) is
+ 
+    begin
+       --  Print the main diagnostic
+ 
+       Write_Error_Msg_Line (Diag);
+ 
+       --  Print diagnostic locations along with spans
+ 
+       Write_Labeled_Spans (Diag.Locations, True, 0);
+ 
+       --  Print subdiagnostics
+ 
+       if Sub_Diagnostic_Lists.Present (Diag.Sub_Diagnostics) then
+          declare
+             use Sub_Diagnostic_Lists;
+             Sub_Diag : Sub_Diagnostic_Type;
+ 
+             It : Iterator := Iterate (Diag.Sub_Diagnostics);
+          begin
+             while Has_Next (It) loop
+                Next (It, Sub_Diag);
+ 
+                --  Print the subdiagnostic and offset the location of the file
+                --  name
+ 
+                Print_Sub_Diagnostic (Sub_Diag, Diag, MAX_BAR_POS - 1);
+             end loop;
+          end;
+       end if;
+ 
+       --  Print fixes
+ 
+       if Fix_Lists.Present (Diag.Fixes) then
+          declare
+             use Fix_Lists;
+             Fix : Fix_Type;
+ 
+             It : Iterator := Iterate (Diag.Fixes);
+          begin
+             while Has_Next (It) loop
+                Next (It, Fix);
+ 
+                Print_Fix (Fix, MAX_BAR_POS - 1);
+             end loop;
+          end;
+       end if;
+ 
+       --  Separate main diagnostics with a blank line
+ 
+       Write_Eol;
+ 
+    end Print_Diagnostic;
+ end Diagnostics.Pretty_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-pretty_emitter.ads gcc-15.1.0/gcc/ada/diagnostics-pretty_emitter.ads
*** gcc-14.2.0/gcc/ada/diagnostics-pretty_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-pretty_emitter.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,28 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.Pretty_Emitter is
+    procedure Print_Diagnostic (Diag : Diagnostic_Type);
+ end Diagnostics.Pretty_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-repository.adb gcc-15.1.0/gcc/ada/diagnostics-repository.adb
*** gcc-14.2.0/gcc/ada/diagnostics-repository.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-repository.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,122 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . R E P O S I T O R Y                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Diagnostics.JSON_Utils;        use Diagnostics.JSON_Utils;
+ with Diagnostics.Utils;             use Diagnostics.Utils;
+ with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
+ with Output;                        use Output;
+ 
+ package body Diagnostics.Repository is
+ 
+    ---------------------------------
+    -- Print_Diagnostic_Repository --
+    ---------------------------------
+ 
+    procedure Print_Diagnostic_Repository is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & "Diagnostics" & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Avoid printing the first switch, which is a placeholder
+ 
+       for I in Diagnostic_Entries'First .. Diagnostic_Entries'Last loop
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Write_Char ('{');
+          Begin_Block;
+          NL_And_Indent;
+ 
+          Write_String_Attribute ("Id", To_String (I));
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Human_Id /= null then
+             Write_String_Attribute ("Human_Id",
+                                      Diagnostic_Entries (I).Human_Id.all);
+          else
+             Write_String_Attribute ("Human_Id", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Status = Active then
+             Write_String_Attribute ("Status", "Active");
+          else
+             Write_String_Attribute ("Status", "Deprecated");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Documentation /= null then
+             Write_String_Attribute ("Documentation",
+                                      Diagnostic_Entries (I).Documentation.all);
+          else
+             Write_String_Attribute ("Documentation", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Switch /= No_Switch_Id then
+             Write_Char (',');
+             NL_And_Indent;
+             Write_String_Attribute
+               ("Switch",
+                Get_Switch (Diagnostic_Entries (I).Switch).Human_Id.all);
+          else
+             Write_String_Attribute ("Switch", "null");
+          end if;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char ('}');
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_Diagnostic_Repository;
+ 
+ end Diagnostics.Repository;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-repository.ads gcc-15.1.0/gcc/ada/diagnostics-repository.ads
*** gcc-14.2.0/gcc/ada/diagnostics-repository.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-repository.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,113 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . R E P O S I T O R Y                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ package Diagnostics.Repository is
+ 
+    type Diagnostics_Registry_Type is
+      array (Diagnostic_Id) of Diagnostic_Entry_Type;
+ 
+    --  Include the diagnostic entries for every diagnostic id.
+    --  The entries should include:
+    --  * Whether the diagnostic with this id is active or not
+    --  * The human-readable name for the diagnostic for SARIF reports
+    --  * The switch id for the diagnostic if the diagnostic is linked to any
+    --    compiler switch
+    --  * The documentation file for the diagnostic written in the MD format.
+    --    The documentation file should include:
+    --    - The diagnostic id
+    --    - A short description of the diagnostic
+    --    - A minimal example of the code that triggers the diagnostic
+    --    - An explanation of why the diagnostic was triggered
+    --    - A suggestion on how to fix the issue
+    --    - Optionally additional information
+    --    TODO: the mandatory fields for the documentation file could be changed
+ 
+    Diagnostic_Entries : Diagnostics_Registry_Type :=
+      (No_Diagnostic_Id => (others => <>),
+       GNAT0001         =>
+         (Status        => Active,
+          Human_Id      => new String'("Default_Iterator_Not_Primitive_Error"),
+          Documentation => new String'("./error_codes/GNAT0001.md"),
+          Switch        => No_Switch_Id),
+       GNAT0002         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_For_Operator_Error"),
+          Documentation => new String'("./error_codes/GNAT0002.md"),
+          Switch        => No_Switch_Id),
+       GNAT0003         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_Left_To_Int_Error"),
+          Documentation => new String'("./error_codes/GNAT0003.md"),
+          Switch        => No_Switch_Id),
+       GNAT0004         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_Right_To_Int_Error"),
+          Documentation => new String'("./error_codes/GNAT0004.md"),
+          Switch        => No_Switch_Id),
+       GNAT0005         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_Left_Acc_Error"),
+          Documentation => new String'("./error_codes/GNAT0005.md"),
+          Switch        => No_Switch_Id),
+       GNAT0006         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_Right_Acc_Error"),
+          Documentation => new String'("./error_codes/GNAT0006.md"),
+          Switch        => No_Switch_Id),
+       GNAT0007         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_General_Error"),
+          Documentation => new String'("./error_codes/GNAT0007.md"),
+          Switch        => No_Switch_Id),
+       GNAT0008         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Pragma_No_Effect_With_Lock_Free_Warning"),
+          Documentation => new String'("./error_codes/GNAT0008.md"),
+          Switch        => No_Switch_Id),
+       GNAT0009         =>
+         (Status        => Active,
+          Human_Id      => new String'("End_Loop_Expected_Error"),
+          Documentation => new String'("./error_codes/GNAT0009.md"),
+          Switch        => No_Switch_Id),
+       GNAT0010         =>
+         (Status        => Active,
+          Human_Id      => new String'("Representation_Too_Late_Error"),
+          Documentation => new String'("./error_codes/GNAT0010.md"),
+          Switch        => No_Switch_Id),
+       GNAT0011         =>
+         (Status        => Active,
+          Human_Id      => new String'("Mixed_Container_Aggregate_Error"),
+          Documentation => new String'("./error_codes/GNAT0011.md"),
+          Switch        => No_Switch_Id));
+ 
+    procedure Print_Diagnostic_Repository;
+ 
+ end Diagnostics.Repository;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-sarif_emitter.adb gcc-15.1.0/gcc/ada/diagnostics-sarif_emitter.adb
*** gcc-14.2.0/gcc/ada/diagnostics-sarif_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-sarif_emitter.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,1173 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Diagnostics.Utils;      use Diagnostics.Utils;
+ with Diagnostics.JSON_Utils; use Diagnostics.JSON_Utils;
+ with Gnatvsn;                use Gnatvsn;
+ with Output;                 use Output;
+ with Sinput;                 use Sinput;
+ with Lib;                    use Lib;
+ with Namet;                  use Namet;
+ with Osint;                  use Osint;
+ with Errout;                 use Errout;
+ 
+ package body Diagnostics.SARIF_Emitter is
+ 
+    --  We are currently using SARIF 2.1.0
+ 
+    SARIF_Version : constant String := "2.1.0";
+    pragma Style_Checks ("M100");
+    SARIF_Schema  : constant String :=
+      "https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json";
+    pragma Style_Checks ("M79");
+ 
+    type Artifact_Change is record
+       File  : String_Ptr;
+       --  Name of the file
+ 
+       Replacements : Edit_List;
+       --  Regions of texts to be edited
+    end record;
+ 
+    procedure Destroy (Elem : in out Artifact_Change);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : Artifact_Change) return Boolean is
+      (L.File /= null
+       and then R.File /= null
+       and then L.File.all = R.File.all);
+ 
+    package Artifact_Change_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Artifact_Change,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Artifact_Change_List is Artifact_Change_Lists.Doubly_Linked_List;
+ 
+    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List;
+    --  Group edits of a Fix into Artifact_Changes that organize the edits by
+    --  file name.
+ 
+    function Get_Unique_Rules (Diags : Diagnostic_List) return Diagnostic_List;
+    --  Get a list of diagnostics that have unique Diagnostic Id-s.
+ 
+    procedure Print_Replacement (Replacement : Edit_Type);
+    --  Print a replacement node
+    --
+    --  {
+    --    deletedRegion: {<Region>},
+    --    insertedContent: {<Message>}
+    --  }
+ 
+    procedure Print_Fix (Fix : Fix_Type);
+    --  Print the fix node
+    --
+    --  {
+    --    description: {<Message>},
+    --    artifactChanges: [<ArtifactChange>]
+    --  }
+ 
+    procedure Print_Fixes (Diag : Diagnostic_Type);
+    --  Print the fixes node
+    --
+    --  "fixes": [
+    --    <Fix>,
+    --    ...
+    --  ]
+ 
+    procedure Print_Invocations;
+    --  Print an invocations node that consists of
+    --  * a single invocation node that consists of:
+    --    * commandLine
+    --    * executionSuccessful
+    --
+    --  "invocations": [
+    --    {
+    --      "commandLine": <command line arguments provided to the GNAT FE>,
+    --      "executionSuccessful": ["true"|"false"],
+    --    }
+    --  ]
+ 
+    procedure Print_Artifact_Change (A : Artifact_Change);
+    --  Print an ArtifactChange node
+    --
+    --  {
+    --    artifactLocation: {<ArtifactLocation>},
+    --    replacements: [<Replacements>]
+    --  }
+ 
+    procedure Print_Artifact_Location (File_Name : String);
+    --  Print an artifactLocation node
+    --
+    --   "artifactLocation": {
+    --     "URI": <File_Name>
+    --   }
+ 
+    procedure Print_Location (Loc : Labeled_Span_Type;
+                              Msg : String_Ptr);
+    --  Print a location node that consists of
+    --  * an optional message node
+    --  * a physicalLocation node
+    --    * ArtifactLocation node that consists of the file name
+    --    * Region node that consists of the start and end positions of the span
+    --
+    --  {
+    --    "message": {
+    --      "text": <Msg>
+    --    },
+    --    "physicalLocation": {
+    --      "artifactLocation": {
+    --        "URI": <File_Name (Loc)>
+    --      },
+    --      "region": {
+    --        "startLine": <Line(Loc.Fst)>,
+    --        "startColumn": <Col(Loc.Fst)>,
+    --        "endLine": <Line(Loc.Lst)>,
+    --        "endColumn": Col(Loc.Lst)>
+    --      }
+    --    }
+    --  }
+ 
+    procedure Print_Locations (Diag : Diagnostic_Type);
+    --  Print a locations node that consists of multiple location nodes. However
+    --  typically just one location for the primary span of the diagnostic.
+    --
+    --   "locations": [
+    --      <Location (Primary_Span (Diag))>
+    --   ],
+ 
+    procedure Print_Message (Text : String; Name : String := "message");
+    --  Print a SARIF message node
+    --
+    --  "message": {
+    --    "text": <text>
+    --  },
+ 
+    procedure Print_Related_Locations (Diag : Diagnostic_Type);
+    --  Print a relatedLocations node that consists of multiple location nodes.
+    --  Related locations are the non-primary spans of the diagnostic and the
+    --  primary locations of sub-diagnostics.
+    --
+    --   "relatedLocations": [
+    --      <Location (Diag.Loc)>
+    --   ],
+ 
+    procedure Print_Region (Start_Line : Int;
+                            Start_Col  : Int;
+                            End_Line   : Int;
+                            End_Col    : Int;
+                            Name       : String := "region");
+    --  Print a region node.
+    --
+    --  More specifically a text region node that specifies the textual
+    --  location of the region. Note that in SARIF there are also binary
+    --  regions.
+    --
+    --   "<Name>": {
+    --     "startLine": Start_Line,
+    --     "startColumn": Start_Col,
+    --     "endLine": End_Line,
+    --     "endColumn": End_Col + 1
+    --   }
+    --
+    --  Note that there are many types of nodes that can have a region type,
+    --  but have a different node name.
+    --
+    --  The end column is defined differently in the SARIF report than it is
+    --  for the spans within GNAT. Internally we consider the end column of a
+    --  span to be the last character of the span.
+    --
+    --  However in SARIF the end column is defined as:
+    --  "The column number of the character following the end of the region"
+    --
+    --  This method assumes that the End_Col passed to this procedure is using
+    --  the GNAT span definition and we amend the endColumn value so that it
+    --  matches the SARIF definition.
+ 
+    procedure Print_Result (Diag : Diagnostic_Type);
+    --   {
+    --     "ruleId": <Diag.Id>,
+    --     "level": <Diag.Kind>,
+    --     "message": {
+    --       "text": <Diag.Message>
+    --     },
+    --     "locations": [<Primary_Location>],
+    --     "relatedLocations": [<Secondary_Locations>]
+    --  },
+ 
+    procedure Print_Results (Diags : Diagnostic_List);
+    --  Print a results node that consists of multiple result nodes for each
+    --  diagnostic instance.
+    --
+    --   "results": [
+    --     <Result (Diag)>
+    --   ]
+ 
+    procedure Print_Rule (Diag : Diagnostic_Type);
+    --  Print a rule node that consists of the following attributes:
+    --  * ruleId
+    --  * name
+    --
+    --  {
+    --    "id": <Diag.Id>,
+    --    "name": <Human_Id(Diag)>
+    --  },
+ 
+    procedure Print_Rules (Diags : Diagnostic_List);
+    --  Print a rules node that consists of multiple rule nodes.
+    --  Rules are considered to be a set of unique diagnostics with the unique
+    --  id-s.
+    --
+    --   "rules": [
+    --     <Rule (Diag)>
+    --   ]
+ 
+    procedure Print_Runs (Diags : Diagnostic_List);
+    --  Print a runs node that can consist of multiple run nodes.
+    --  However for our report it consists of a single run that consists of
+    --  * a tool node
+    --  * a results node
+    --
+    --   {
+    --     "tool": { <Tool (Diags)> },
+    --     "results": [<Results (Diags)>]
+    --   }
+ 
+    procedure Print_Tool (Diags : Diagnostic_List);
+    --  Print a tool node that consists of
+    --  * a driver node that consists of:
+    --    * name
+    --    * version
+    --    * rules
+    --
+    --  "tool": {
+    --    "driver": {
+    --      "name": "GNAT",
+    --      "version": <GNAT_Version>,
+    --      "rules": [<Rules (Diags)>]
+    --    }
+    --  }
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Artifact_Change)
+    is
+ 
+    begin
+       Free (Elem.File);
+    end Destroy;
+ 
+    --------------------------
+    -- Get_Artifact_Changes --
+    --------------------------
+ 
+    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List
+    is
+       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type);
+ 
+       ------------
+       -- Insert --
+       ------------
+ 
+       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type)
+       is
+          A : Artifact_Change;
+ 
+          It : Artifact_Change_Lists.Iterator :=
+            Artifact_Change_Lists.Iterate (Changes);
+       begin
+          while Artifact_Change_Lists.Has_Next (It) loop
+             Artifact_Change_Lists.Next (It, A);
+ 
+             if A.File.all = To_File_Name (E.Span.Ptr) then
+                Edit_Lists.Append (A.Replacements, E);
+                return;
+             end if;
+          end loop;
+ 
+          declare
+             Replacements : constant Edit_List := Edit_Lists.Create;
+          begin
+             Edit_Lists.Append (Replacements, E);
+             Artifact_Change_Lists.Append
+               (Changes,
+                (File  => new String'(To_File_Name (E.Span.Ptr)),
+                 Replacements => Replacements));
+          end;
+       end Insert;
+ 
+       Changes : constant Artifact_Change_List := Artifact_Change_Lists.Create;
+ 
+       E : Edit_Type;
+ 
+       It : Edit_Lists.Iterator := Edit_Lists.Iterate (Fix.Edits);
+    begin
+       while Edit_Lists.Has_Next (It) loop
+          Edit_Lists.Next (It, E);
+ 
+          Insert (Changes, E);
+       end loop;
+ 
+       return Changes;
+    end Get_Artifact_Changes;
+ 
+    ----------------------
+    -- Get_Unique_Rules --
+    ----------------------
+ 
+    function Get_Unique_Rules (Diags : Diagnostic_List)
+                               return Diagnostic_List
+    is
+       use Diagnostics.Diagnostics_Lists;
+ 
+       procedure Insert (Rules : Diagnostic_List; D : Diagnostic_Type);
+ 
+       ------------
+       -- Insert --
+       ------------
+ 
+       procedure Insert (Rules : Diagnostic_List; D : Diagnostic_Type) is
+          It : Iterator := Iterate (Rules);
+          R  : Diagnostic_Type;
+       begin
+          while Has_Next (It) loop
+             Next (It, R);
+ 
+             if R.Id = D.Id then
+                return;
+             elsif R.Id > D.Id then
+                Insert_Before (Rules, R, D);
+                return;
+             end if;
+          end loop;
+ 
+          Append (Rules, D);
+       end Insert;
+ 
+       D : Diagnostic_Type;
+       Unique_Rules : constant Diagnostic_List := Create;
+ 
+       It : Iterator := Iterate (Diags);
+    begin
+       if Present (Diags) then
+          while Has_Next (It) loop
+             Next (It, D);
+             Insert (Unique_Rules, D);
+          end loop;
+       end if;
+ 
+       return Unique_Rules;
+    end Get_Unique_Rules;
+ 
+    ---------------------------
+    -- Print_Artifact_Change --
+    ---------------------------
+ 
+    procedure Print_Artifact_Change (A : Artifact_Change)
+    is
+       use Diagnostics.Edit_Lists;
+       E : Edit_Type;
+       E_It : Iterator;
+ 
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print artifactLocation
+ 
+       Print_Artifact_Location (A.File.all);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Str ("""" & "replacements" & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       E_It := Iterate (A.Replacements);
+ 
+       while Has_Next (E_It) loop
+          Next (E_It, E);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Replacement (E);
+       end loop;
+ 
+       --  End replacements
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       --  End artifactChange
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Artifact_Change;
+ 
+    -----------------------------
+    -- Print_Artifact_Location --
+    -----------------------------
+ 
+    procedure Print_Artifact_Location (File_Name : String) is
+ 
+    begin
+       Write_Str ("""" & "artifactLocation" & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute ("uri", File_Name);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Artifact_Location;
+ 
+    -----------------------
+    -- Print_Replacement --
+    -----------------------
+ 
+    procedure Print_Replacement (Replacement : Edit_Type) is
+       --  Span start positions
+       Fst      : constant Source_Ptr := Replacement.Span.First;
+       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Replacement.Span.Last;
+       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print deletedRegion
+ 
+       Print_Region (Start_Line => Line_Fst,
+                     Start_Col  => Col_Fst,
+                     End_Line   => Line_Lst,
+                     End_Col    => Col_Lst,
+                     Name       => "deletedRegion");
+ 
+       if Replacement.Text /= null then
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Print_Message (Replacement.Text.all, "insertedContent");
+       end if;
+ 
+       --  End replacement
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Replacement;
+ 
+    ---------------
+    -- Print_Fix --
+    ---------------
+ 
+    procedure Print_Fix (Fix : Fix_Type) is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print the message if the location has one
+ 
+       if Fix.Description /= null then
+          Print_Message (Fix.Description.all, "description");
+ 
+          Write_Char (',');
+          NL_And_Indent;
+       end if;
+ 
+       declare
+          use Artifact_Change_Lists;
+          Changes : Artifact_Change_List := Get_Artifact_Changes (Fix);
+          A       : Artifact_Change;
+          A_It    : Iterator := Iterate (Changes);
+       begin
+          Write_Str ("""" & "artifactChanges" & """" & ": " & "[");
+          Begin_Block;
+ 
+          while Has_Next (A_It) loop
+             Next (A_It, A);
+ 
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+ 
+             Print_Artifact_Change (A);
+          end loop;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char (']');
+ 
+          Destroy (Changes);
+       end;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Fix;
+ 
+    -----------------
+    -- Print_Fixes --
+    -----------------
+ 
+    procedure Print_Fixes (Diag : Diagnostic_Type) is
+       use Diagnostics.Fix_Lists;
+       F  : Fix_Type;
+       F_It : Iterator;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & "fixes" & """" & ": " & "[");
+       Begin_Block;
+ 
+       if Present (Diag.Fixes) then
+          F_It := Iterate (Diag.Fixes);
+          while Has_Next (F_It) loop
+             Next (F_It, F);
+ 
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Fix (F);
+          end loop;
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Fixes;
+ 
+    -----------------------
+    -- Print_Invocations --
+    -----------------------
+ 
+    procedure Print_Invocations is
+ 
+       function Compose_Command_Line return String;
+       --  Composes the original command line from the parsed main file name and
+       --  relevant compilation switches
+ 
+       function Compose_Command_Line return String is
+          Buffer : Bounded_String;
+       begin
+          Append (Buffer, Get_First_Main_File_Name);
+          for I in 1 .. Compilation_Switches_Last loop
+             declare
+                Switch : constant String := Get_Compilation_Switch (I).all;
+             begin
+                if Buffer.Length + Switch'Length + 1 <= Buffer.Max_Length then
+                   Append (Buffer, ' ' & Switch);
+                end if;
+             end;
+          end loop;
+ 
+          return +Buffer;
+       end Compose_Command_Line;
+ 
+    begin
+       Write_Str ("""" & "invocations" & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print commandLine
+ 
+       Write_String_Attribute ("commandLine", Compose_Command_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print executionSuccessful
+ 
+       Write_Boolean_Attribute ("executionSuccessful", Compilation_Errors);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Invocations;
+ 
+    ------------------
+    -- Print_Region --
+    ------------------
+ 
+    procedure Print_Region (Start_Line : Int;
+                            Start_Col  : Int;
+                            End_Line   : Int;
+                            End_Col    : Int;
+                            Name       : String := "region")
+    is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Int_Attribute ("startLine", Start_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute ("startColumn", Start_Col);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute ("endLine", End_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Convert the end of the span to the definition of the endColumn
+       --  for a SARIF region.
+ 
+       Write_Int_Attribute ("endColumn", End_Col + 1);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Region;
+ 
+    --------------------
+    -- Print_Location --
+    --------------------
+ 
+    procedure Print_Location (Loc : Labeled_Span_Type;
+                              Msg : String_Ptr)
+    is
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
+ 
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print the message if the location has one
+ 
+       if Msg /= null then
+          Print_Message (Msg.all);
+ 
+          Write_Char (',');
+          NL_And_Indent;
+       end if;
+ 
+       Write_Str ("""" & "physicalLocation" & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print artifactLocation
+ 
+       Print_Artifact_Location (To_File_Name (Loc.Span.Ptr));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print region
+ 
+       Print_Region (Start_Line => Line_Fst,
+                     Start_Col  => Col_Fst,
+                     End_Line   => Line_Lst,
+                     End_Col    => Col_Lst);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Location;
+ 
+    ---------------------
+    -- Print_Locations --
+    ---------------------
+ 
+    procedure Print_Locations (Diag : Diagnostic_Type) is
+       use Diagnostics.Labeled_Span_Lists;
+       Loc : Labeled_Span_Type;
+       It : Iterator := Iterate (Diag.Locations);
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & "locations" & """" & ": " & "[");
+       Begin_Block;
+ 
+       while Has_Next (It) loop
+          Next (It, Loc);
+ 
+          --  Only the primary span is considered as the main location other
+          --  spans are considered related locations
+ 
+          if Loc.Is_Primary then
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Location (Loc, Loc.Label);
+          end if;
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+    end Print_Locations;
+ 
+    -------------------
+    -- Print_Message --
+    -------------------
+ 
+    procedure Print_Message (Text : String; Name : String := "message") is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+       Write_String_Attribute ("text", Text);
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Message;
+ 
+    -----------------------------
+    -- Print_Related_Locations --
+    -----------------------------
+ 
+    procedure Print_Related_Locations (Diag : Diagnostic_Type) is
+       Loc : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Diag.Locations);
+ 
+       Sub : Sub_Diagnostic_Type;
+       Sub_It : Sub_Diagnostic_Lists.Iterator;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & "relatedLocations" & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Related locations are the non-primary spans of the diagnostic
+ 
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          --  Non-primary spans are considered related locations
+ 
+          if not Loc.Is_Primary then
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Location (Loc, Loc.Label);
+          end if;
+       end loop;
+ 
+       --  And the sub-diagnostic locations
+ 
+       if Sub_Diagnostic_Lists.Present (Diag.Sub_Diagnostics) then
+          Sub_It := Sub_Diagnostic_Lists.Iterate (Diag.Sub_Diagnostics);
+ 
+          while Sub_Diagnostic_Lists.Has_Next (Sub_It) loop
+             Sub_Diagnostic_Lists.Next (Sub_It, Sub);
+ 
+             declare
+                Found : Boolean := False;
+ 
+                Prim_Loc : Labeled_Span_Type;
+             begin
+                if Labeled_Span_Lists.Present (Sub.Locations) then
+                   Loc_It := Labeled_Span_Lists.Iterate (Sub.Locations);
+                   while Labeled_Span_Lists.Has_Next (Loc_It) loop
+                      Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+                      --  For sub-diagnostic locations, only the primary span is
+                      --  considered.
+ 
+                      if not Found and then Loc.Is_Primary then
+                         Found    := True;
+                         Prim_Loc := Loc;
+                      end if;
+                   end loop;
+                else
+ 
+                   --  If there are no locations for the sub-diagnostic then use
+                   --  the primary location of the main diagnostic.
+ 
+                   Found    := True;
+                   Prim_Loc := Primary_Location (Diag);
+                end if;
+ 
+                --  For mapping sub-diagnostics to related locations we have to
+                --  make some compromises in details.
+                --
+                --  Firstly we only make one entry that is for the primary span
+                --  of the sub-diagnostic.
+                --
+                --  Secondly this span can also have a label. However this
+                --  pattern is not advised and by default we include the message
+                --  of the sub-diagnostic as the message in location node since
+                --  it should have more information.
+ 
+                if Found then
+                   if First then
+                      First := False;
+                   else
+                      Write_Char (',');
+                   end if;
+                   NL_And_Indent;
+                   Print_Location (Prim_Loc, Sub.Message);
+                end if;
+             end;
+          end loop;
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+    end Print_Related_Locations;
+ 
+    ------------------
+    -- Print_Result --
+    ------------------
+ 
+    procedure Print_Result (Diag : Diagnostic_Type) is
+ 
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print ruleId
+ 
+       Write_String_Attribute ("ruleId", "[" & To_String (Diag.Id) & "]");
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print level
+ 
+       Write_String_Attribute ("level", Kind_To_String (Diag));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print message
+ 
+       Print_Message (Diag.Message.all);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print locations
+ 
+       Print_Locations (Diag);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print related locations
+ 
+       Print_Related_Locations (Diag);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print fixes
+ 
+       Print_Fixes (Diag);
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Result;
+ 
+    -------------------
+    -- Print_Results --
+    -------------------
+ 
+    procedure Print_Results (Diags : Diagnostic_List) is
+       use Diagnostics.Diagnostics_Lists;
+ 
+       D : Diagnostic_Type;
+ 
+       It : Iterator := Iterate (All_Diagnostics);
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & "results" & """" & ": " & "[");
+       Begin_Block;
+ 
+       if Present (Diags) then
+          while Has_Next (It) loop
+             Next (It, D);
+ 
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Result (D);
+          end loop;
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Results;
+ 
+    ----------------
+    -- Print_Rule --
+    ----------------
+ 
+    procedure Print_Rule (Diag : Diagnostic_Type) is
+       Human_Id : constant String_Ptr := Get_Human_Id (Diag);
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute ("id", "[" & To_String (Diag.Id) & "]");
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       if Human_Id = null then
+          Write_String_Attribute ("name", "Uncategorized_Diagnostic");
+       else
+          Write_String_Attribute ("name", Human_Id.all);
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Rule;
+ 
+    -----------------
+    -- Print_Rules --
+    -----------------
+ 
+    procedure Print_Rules (Diags : Diagnostic_List) is
+       use Diagnostics.Diagnostics_Lists;
+ 
+       R : Diagnostic_Type;
+       Rules : constant Diagnostic_List := Get_Unique_Rules (Diags);
+ 
+       It : Iterator := Iterate (Rules);
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & "rules" & """" & ": " & "[");
+       Begin_Block;
+ 
+       while Has_Next (It) loop
+          Next (It, R);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Rule (R);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+    end Print_Rules;
+ 
+    ----------------
+    -- Print_Tool --
+    ----------------
+ 
+    procedure Print_Tool (Diags : Diagnostic_List) is
+ 
+    begin
+       Write_Str ("""" & "tool" & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  --  Attributes of tool
+ 
+       Write_Str ("""" & "driver" & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Attributes of tool.driver
+ 
+       Write_String_Attribute ("name", "GNAT");
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute ("version", Gnat_Version_String);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Rules (Diags);
+ 
+       --  End of tool.driver
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+ 
+       --  End of tool
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Tool;
+ 
+    ----------------
+    -- Print_Runs --
+    ----------------
+ 
+    procedure Print_Runs (Diags : Diagnostic_List) is
+ 
+    begin
+       Write_Str ("""" & "runs" & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Runs can consist of multiple "run"-s. However the GNAT SARIF report
+       --  only has one.
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  A run consists of a tool
+ 
+       Print_Tool (Diags);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  A run consists of an invocation
+       Print_Invocations;
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  A run consists of results
+ 
+       Print_Results (Diags);
+ 
+       --  End of run
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       --  End of runs
+ 
+       Write_Char (']');
+    end Print_Runs;
+ 
+    ------------------------
+    -- Print_SARIF_Report --
+    ------------------------
+ 
+    procedure Print_SARIF_Report (Diags : Diagnostic_List) is
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute ("$schema", SARIF_Schema);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute ("version", SARIF_Version);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Runs (Diags);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_SARIF_Report;
+ 
+ end Diagnostics.SARIF_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-sarif_emitter.ads gcc-15.1.0/gcc/ada/diagnostics-sarif_emitter.ads
*** gcc-14.2.0/gcc/ada/diagnostics-sarif_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-sarif_emitter.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,29 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.SARIF_Emitter is
+ 
+    procedure Print_SARIF_Report (Diags : Diagnostic_List);
+ end Diagnostics.SARIF_Emitter;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-switch_repository.adb gcc-15.1.0/gcc/ada/diagnostics-switch_repository.adb
*** gcc-14.2.0/gcc/ada/diagnostics-switch_repository.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-switch_repository.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,690 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Diagnostics.JSON_Utils; use Diagnostics.JSON_Utils;
+ with Output;                 use Output;
+ package body Diagnostics.Switch_Repository is
+ 
+    Switches : constant array (Switch_Id)
+      of Switch_Type :=
+      (No_Switch_Id            =>
+         (others => <>),
+       gnatwb                  =>
+         (Human_Id          => new String'("Warn_On_Bad_Fixed_Value"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwb"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwc                  =>
+         (Human_Id          => new String'("Constant_Condition_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwc"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwd                  =>
+         --  TODO: is this a subcheck of general gnatwu?
+         (Human_Id          => new String'("Warn_On_Dereference"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwd"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwf                       =>
+         (Human_Id          => new String'("Check_Unreferenced_Formals"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwf"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwg                       =>
+         (Human_Id          => new String'("Warn_On_Unrecognized_Pragma"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwg"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwh                       =>
+         (Human_Id          => new String'("Warn_On_Hiding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwh"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwi                       =>
+         (Human_Id          => new String'("Implementation_Unit_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwi"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwj                      =>
+         (Human_Id          => new String'("Warn_On_Obsolescent_Feature"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwj"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwk                      =>
+         (Human_Id          => new String'("Warn_On_Constant"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwk"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwl                      =>
+         (Human_Id          => new String'("Elab_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwl"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwm                      =>
+         (Human_Id          => new String'("Warn_On_Modified_Unread"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwm"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwo                      =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwo"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwp                      =>
+         (Human_Id          => new String'("Ineffective_Inline_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwp"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwq                      =>
+         (Human_Id => new String'("Warn_On_Questionable_Missing_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwq"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwr                      =>
+         (Human_Id          => new String'("Warn_On_Redundant_Constructs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwr"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwt                      =>
+         (Human_Id          => new String'("Warn_On_Deleted_Code"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwt"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwu                      =>
+         (Human_Id          => new String'("Warn_On_Unused_Entities"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwu"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwv                      =>
+         (Human_Id          => new String'("Warn_On_No_Value_Assigned"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwv"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatww                      =>
+         (Human_Id          => new String'("Warn_On_Assumed_Low_Bound"),
+          Status            => Active,
+          Short_Name        => new String'("gnatww"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwx                      =>
+         (Human_Id          => new String'("Warn_On_Export_Import"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwx"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwy                      =>
+         (Human_Id          => new String'("Warn_On_Ada_Compatibility_Issues"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwy"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwz                      =>
+         (Human_Id          => new String'("Warn_On_Unchecked_Conversion"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwz"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_a                      =>
+         (Human_Id          => new String'("Warn_On_Assertion_Failure"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.a"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_b                      =>
+         (Human_Id          => new String'("Warn_On_Biased_Representation"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.b"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_c                      =>
+         (Human_Id          => new String'("Warn_On_Unrepped_Components"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.c"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_f                      =>
+         (Human_Id          => new String'("Warn_On_Elab_Access"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.f"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_h                      =>
+         (Human_Id          => new String'("Warn_On_Record_Holes"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.h"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_i                      =>
+         (Human_Id          => new String'("Warn_On_Overlap"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.i"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_j                      =>
+         (Human_Id          => new String'("Warn_On_Late_Primitives"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.j"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_k                      =>
+         (Human_Id          => new String'("Warn_On_Standard_Redefinition"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.k"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_l                      =>
+         (Human_Id          => new String'("List_Inherited_Aspects"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.l"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_m                      =>
+         (Human_Id          => new String'("Warn_On_Suspicious_Modulus_Value"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.m"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_n                      =>
+         (Human_Id          => new String'("Warn_On_Atomic_Synchronization"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.n"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_o                      =>
+         (Human_Id          => new String'("Warn_On_All_Unread_Out_Parameters"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.o"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_p                      =>
+         (Human_Id          => new String'("Warn_On_Parameter_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.p"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_q                      =>
+         (Human_Id          => new String'("Warn_On_Questionable_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.q"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_r                      =>
+         (Human_Id          => new String'("Warn_On_Object_Renames_Function"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.r"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_s                      =>
+         (Human_Id          => new String'("Warn_On_Overridden_Size"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.s"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_t                      =>
+         (Human_Id          => new String'("Warn_On_Suspicious_Contract"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.t"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_u                      =>
+         (Human_Id => new String'("Warn_On_Unordered_Enumeration_Type"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.u"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_v                      =>
+         (Human_Id          => new String'("Warn_On_Reverse_Bit_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.v"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_w                      =>
+         (Human_Id          => new String'("Warn_On_Warnings_Off"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.w"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_x                      =>
+         (Human_Id          =>
+           new String'("Warn_No_Exception_Propagation_Active"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.x"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_y                      =>
+         (Human_Id          => new String'("List_Body_Required_Info"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.y"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_z                      =>
+         (Human_Id          => new String'("Warn_On_Size_Alignment"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.z"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_a                      =>
+         (Human_Id          => new String'("Warn_On_Anonymous_Allocators"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_a"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_c                      =>
+         (Human_Id => new String'("Warn_On_Unknown_Compile_Time_Warning"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_c"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_j                      =>
+         (Human_Id => new String'("Warn_On_Non_Dispatching_Primitives"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_j"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_l                      =>
+         (Human_Id => new String'("Warn_On_Inherently_Limited_Types"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_l"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_p                      =>
+         (Human_Id          => new String'("Warn_On_Pedantic_Checks"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_p"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_q                      =>
+         (Human_Id          => new String'("Warn_On_Ignored_Equality"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_q"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_r                      =>
+         (Human_Id          => new String'("Warn_On_Component_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_r"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_s                      =>
+         (Human_Id => new String'("Warn_On_Ineffective_Predicate_Test"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_s"),
+          Description       => null,
+          Documentation_Url => null),
+       --  NOTE: this flag is usually followed by a number specfifying the
+       --  indentation level. We encode all of these warnings as -gnaty0
+       --  irregardless of the actual numeric value.
+       gnaty      =>
+         (Human_Id          => new String'("Style_Check_Indentation_Level"),
+          Status            => Active,
+          Short_Name        => new String'("gnaty0"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatya  =>
+         (Human_Id          => new String'("Style_Check_Attribute_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatya"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyaa  =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyA"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyb  =>
+         (Human_Id          => new String'("Style_Check_Blanks_At_End"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyb"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatybb  =>
+         --  NOTE: in live documentation it is called "Check Boolean operators"
+         (Human_Id          => new String'("Style_Check_Boolean_And_Or"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyB"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyc  =>
+         (Human_Id          => new String'("Style_Check_Comments_Double_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyc"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatycc  =>
+         (Human_Id          => new String'("Style_Check_Comments_Single_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyC"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyd  =>
+         (Human_Id          => new String'("Style_Check_DOS_Line_Terminator"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyd"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatydd  =>
+         (Human_Id          => new String'("Style_Check_Mixed_Case_Decls"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyD"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatye  =>
+         (Human_Id          => new String'("Style_Check_End_Labels"),
+          Status            => Active,
+          Short_Name        => new String'("gnatye"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyf =>
+         (Human_Id          => new String'("Style_Check_Form_Feeds"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyf"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyh =>
+         (Human_Id          => new String'("Style_Check_Horizontal_Tabs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyh"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyi =>
+         (Human_Id          => new String'("Style_Check_If_Then_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyi"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyii =>
+         (Human_Id          => new String'("Style_Check_Mode_In"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyI"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyk =>
+         (Human_Id          => new String'("Style_Check_Keyword_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyk"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyl =>
+         (Human_Id          => new String'("Style_Check_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyl"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyll =>
+         (Human_Id          => new String'("Style_Check_Max_Nesting_Level"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyL"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatym =>
+         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
+          Status            => Active,
+          Short_Name        => new String'("gnatym"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatymm =>
+         --  TODO: May contain line length
+         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyM"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyn =>
+         (Human_Id          => new String'("Style_Check_Standard"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyn"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyo =>
+         (Human_Id          => new String'("Style_Check_Order_Subprograms"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyo"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyoo =>
+         (Human_Id          => new String'("Style_Check_Missing_Overriding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyO"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyp =>
+         (Human_Id          => new String'("Style_Check_Pragma_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyp"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyr =>
+         (Human_Id          => new String'("Style_Check_References"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyr"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatys =>
+         (Human_Id          => new String'("Style_Check_Specs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatys"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyss =>
+         (Human_Id          => new String'("Style_Check_Separate_Stmt_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyS"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatytt =>
+         (Human_Id          => new String'("Style_Check_Tokens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyt"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyu =>
+         (Human_Id          => new String'("Style_Check_Blank_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyu"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyx =>
+         (Human_Id          => new String'("Style_Check_Xtra_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyx"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyz =>
+         (Human_Id => new String'("Style_Check_Xtra_Parens_Precedence"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyz"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatel =>
+         (Human_Id => new String'("Display_Elaboration_Messages"),
+          Status            => Active,
+          Short_Name        => new String'("gnatel"),
+          Description       => null,
+          Documentation_Url => null)
+       );
+ 
+    ----------------
+    -- Get_Switch --
+    ----------------
+ 
+    function Get_Switch (Id : Switch_Id) return Switch_Type is
+ 
+    begin
+       return Switches (Id);
+    end Get_Switch;
+ 
+    function Get_Switch (Diag : Diagnostic_Type) return Switch_Type is
+ 
+    begin
+       return Get_Switch (Diag.Switch);
+    end Get_Switch;
+ 
+    -------------------
+    -- Get_Switch_Id --
+    -------------------
+ 
+    function Get_Switch_Id (Name : String) return Switch_Id is
+       Trimmed_Name : constant String :=
+         (if Name (Name'Last) = ' ' then Name (Name'First .. Name'Last - 1)
+          else Name);
+    begin
+       for I in Active_Switch_Id loop
+          if Switches (I).Short_Name.all = Trimmed_Name then
+             return I;
+          end if;
+       end loop;
+ 
+       return No_Switch_Id;
+    end Get_Switch_Id;
+ 
+    -------------------
+    -- Get_Switch_Id --
+    -------------------
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id is
+       Switch_Name : constant String :=
+         (if E.Warn_Chr = "$ " then "gnatel"
+          elsif E.Warn_Chr in "? " | "  " then ""
+          elsif E.Kind in Erroutc.Warning | Erroutc.Info
+          then "gnatw" & E.Warn_Chr
+          elsif E.Kind in Erroutc.Style then "gnatw" & E.Warn_Chr
+          else "");
+    begin
+       if Switch_Name /= "" then
+          return Get_Switch_Id (Switch_Name);
+       else
+          return No_Switch_Id;
+       end if;
+    end Get_Switch_Id;
+ 
+    -----------------------------
+    -- Print_Switch_Repository --
+    -----------------------------
+ 
+    procedure Print_Switch_Repository is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & "Switches" & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Avoid printing the first switch, which is a placeholder
+ 
+       for I in Active_Switch_Id loop
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Write_Char ('{');
+          Begin_Block;
+          NL_And_Indent;
+ 
+          if Switches (I).Human_Id /= null then
+             Write_String_Attribute ("Human_Id", Switches (I).Human_Id.all);
+          else
+             Write_String_Attribute ("Human_Id", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Short_Name /= null then
+             Write_String_Attribute ("Short_Name", Switches (I).Short_Name.all);
+          else
+             Write_String_Attribute ("Short_Name", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Status = Active then
+             Write_String_Attribute ("Status", "Active");
+          else
+             Write_String_Attribute ("Status", "Deprecated");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Description /= null then
+             Write_String_Attribute ("Description",
+                                      Switches (I).Description.all);
+          else
+             Write_String_Attribute ("Description", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Description /= null then
+             Write_String_Attribute ("Documentation_Url",
+                                     Switches (I).Description.all);
+          else
+             Write_String_Attribute ("Documentation_Url", "null");
+          end if;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char ('}');
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_Switch_Repository;
+ 
+ end Diagnostics.Switch_Repository;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-switch_repository.ads gcc-15.1.0/gcc/ada/diagnostics-switch_repository.ads
*** gcc-14.2.0/gcc/ada/diagnostics-switch_repository.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-switch_repository.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,39 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Erroutc; use Erroutc;
+ 
+ package Diagnostics.Switch_Repository is
+ 
+    function Get_Switch (Id : Switch_Id) return Switch_Type;
+ 
+    function Get_Switch (Diag : Diagnostic_Type) return Switch_Type;
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id;
+ 
+    function Get_Switch_Id (Name : String) return Switch_Id;
+ 
+    procedure Print_Switch_Repository;
+ 
+ end Diagnostics.Switch_Repository;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-utils.adb gcc-15.1.0/gcc/ada/diagnostics-utils.adb
*** gcc-14.2.0/gcc/ada/diagnostics-utils.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-utils.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,357 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                     D I A G N O S T I C S . U T I L S                    --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Diagnostics.Repository;        use Diagnostics.Repository;
+ with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
+ with Errout;                        use Errout;
+ with Erroutc;                       use Erroutc;
+ with Namet;                         use Namet;
+ with Opt;                           use Opt;
+ with Sinput;                        use Sinput;
+ with Sinfo.Nodes;                   use Sinfo.Nodes;
+ with Warnsw;                        use Warnsw;
+ 
+ package body Diagnostics.Utils is
+ 
+    ------------------
+    -- Get_Human_Id --
+    ------------------
+ 
+    function Get_Human_Id (D : Diagnostic_Type) return String_Ptr is
+    begin
+       if D.Switch = No_Switch_Id then
+          return Diagnostic_Entries (D.Id).Human_Id;
+       else
+          return Get_Switch (D).Human_Id;
+       end if;
+    end Get_Human_Id;
+ 
+    ------------------
+    -- To_File_Name --
+    ------------------
+ 
+    function To_File_Name (Sptr : Source_Ptr) return String is
+       Sfile    : constant Source_File_Index := Get_Source_File_Index (Sptr);
+       Ref_Name : constant File_Name_Type    :=
+         (if Full_Path_Name_For_Brief_Errors then Full_Ref_Name (Sfile)
+          else Reference_Name (Sfile));
+ 
+    begin
+       return Get_Name_String (Ref_Name);
+    end To_File_Name;
+ 
+    --------------------
+    -- Line_To_String --
+    --------------------
+ 
+    function Line_To_String (Sptr : Source_Ptr) return String is
+       Line    : constant Logical_Line_Number := Get_Logical_Line_Number (Sptr);
+       Img_Raw : constant String  := Int'Image (Int (Line));
+ 
+    begin
+       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Line_To_String;
+ 
+    ----------------------
+    -- Column_To_String --
+    ----------------------
+ 
+    function Column_To_String (Sptr : Source_Ptr) return String is
+       Col : constant Column_Number := Get_Column_Number (Sptr);
+       Img_Raw : constant String  := Int'Image (Int (Col));
+ 
+    begin
+       return
+         (if Col < 10 then "0" else "")
+         & Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Column_To_String;
+ 
+    ---------------
+    -- To_String --
+    ---------------
+ 
+    function To_String (Sptr : Source_Ptr) return String is
+    begin
+       return
+         To_File_Name (Sptr) & ":" & Line_To_String (Sptr) & ":"
+         & Column_To_String (Sptr);
+    end To_String;
+ 
+    --------------------
+    -- Sloc_To_String --
+    --------------------
+ 
+    function Sloc_To_String
+      (N : Node_Or_Entity_Id; Ref : Source_Ptr) return String
+    is
+ 
+    begin
+       return Sloc_To_String (Sloc (N), Ref);
+    end Sloc_To_String;
+ 
+    --------------------
+    -- Sloc_To_String --
+    --------------------
+ 
+    function Sloc_To_String (Sptr : Source_Ptr; Ref : Source_Ptr) return String
+    is
+ 
+    begin
+       if Sptr = No_Location then
+          return "at unknown location";
+ 
+       elsif Sptr = System_Location then
+          return "in package System";
+ 
+       elsif Sptr = Standard_Location then
+          return "in package Standard";
+ 
+       elsif Sptr = Standard_ASCII_Location then
+          return "in package Standard.ASCII";
+ 
+       else
+          if Full_File_Name (Get_Source_File_Index (Sptr))
+             /= Full_File_Name (Get_Source_File_Index (Ref))
+          then
+             return "at " & To_String (Sptr);
+          else
+             return "at line " & Line_To_String (Sptr);
+          end if;
+       end if;
+    end Sloc_To_String;
+ 
+    ------------------
+    -- To_Full_Span --
+    ------------------
+ 
+    function To_Full_Span (N : Node_Id) return Source_Span
+    is
+       Fst, Lst : Node_Id;
+    begin
+       First_And_Last_Nodes (N, Fst, Lst);
+       return To_Span (Ptr   => Sloc (N),
+                       First => First_Sloc (Fst),
+                       Last  => Last_Sloc (Lst));
+    end To_Full_Span;
+ 
+    ---------------
+    -- To_String --
+    ---------------
+ 
+    function To_String (Id : Diagnostic_Id) return String is
+    begin
+       if Id = No_Diagnostic_Id then
+          return "GNAT0000";
+       else
+          return Id'Img;
+       end if;
+    end To_String;
+ 
+    -------------
+    -- To_Name --
+    -------------
+ 
+    function To_Name (E : Entity_Id) return String is
+    begin
+       --  The name of the node operator "&" has many special cases. Reuse the
+       --  node to name conversion implementation from the errout package for
+       --  now.
+ 
+       Error_Msg_Node_1 := E;
+       Set_Msg_Text ("&", Sloc (E));
+ 
+       return Msg_Buffer (1 .. Msglen);
+    end To_Name;
+ 
+    ------------------
+    -- To_Type_Name --
+    ------------------
+ 
+    function To_Type_Name (E : Entity_Id) return String is
+    begin
+       Error_Msg_Node_1 := E;
+       Set_Msg_Text ("}", Sloc (E));
+ 
+       return Msg_Buffer (1 .. Msglen);
+    end To_Type_Name;
+ 
+    --------------------
+    -- Kind_To_String --
+    --------------------
+ 
+    function Kind_To_String
+      (D : Sub_Diagnostic_Type;
+       Parent : Diagnostic_Type) return String
+    is
+      (case D.Kind is
+         when Continuation => Kind_To_String (Parent),
+         when Help => "help",
+         when Note => "note",
+         when Suggestion => "suggestion");
+ 
+    --------------------
+    -- Kind_To_String --
+    --------------------
+ 
+    function Kind_To_String (D : Diagnostic_Type) return String is
+      (if D.Warn_Err then "error"
+       else
+        (case D.Kind is
+         when Diagnostics.Error | Non_Serious_Error => "error",
+         when Warning | Restriction_Warning | Default_Warning |
+              Tagless_Warning => "warning",
+         when Style => "style",
+         when Info => "info"));
+ 
+    ------------------------------
+    -- Get_Primary_Labeled_Span --
+    ------------------------------
+ 
+    function Get_Primary_Labeled_Span (Spans : Labeled_Span_List)
+                                       return Labeled_Span_Type
+    is
+       use Labeled_Span_Lists;
+ 
+       S  : Labeled_Span_Type;
+       It : Iterator;
+    begin
+       if Present (Spans) then
+          It := Iterate (Spans);
+          while Has_Next (It) loop
+             Next (It, S);
+             if S.Is_Primary then
+                return S;
+             end if;
+          end loop;
+       end if;
+ 
+       return No_Labeled_Span;
+    end Get_Primary_Labeled_Span;
+ 
+    --------------------
+    -- Get_Doc_Switch --
+    --------------------
+ 
+    function Get_Doc_Switch (Diag : Diagnostic_Type) return String is
+    begin
+       if Warning_Doc_Switch
+         and then Diag.Kind in Default_Warning
+                             | Info
+                             | Restriction_Warning
+                             | Style
+                             | Warning
+       then
+          if Diag.Switch = No_Switch_Id then
+             if Diag.Kind = Restriction_Warning then
+                return "[restriction warning]";
+ 
+                --  Info messages can have a switch tag but they should not have
+                --  a default switch tag.
+ 
+             elsif Diag.Kind /= Info then
+ 
+                --  For Default_Warning
+ 
+                return "[enabled by default]";
+             end if;
+          else
+             declare
+                S : constant Switch_Type := Get_Switch (Diag);
+             begin
+                return "[-" & S.Short_Name.all & "]";
+             end;
+          end if;
+       end if;
+ 
+       return "";
+    end Get_Doc_Switch;
+ 
+    --------------------
+    -- Appears_Before --
+    --------------------
+ 
+    function Appears_Before (D1, D2 : Diagnostic_Type) return Boolean is
+ 
+    begin
+       return Appears_Before (Primary_Location (D1).Span.Ptr,
+                              Primary_Location (D2).Span.Ptr);
+    end Appears_Before;
+ 
+    --------------------
+    -- Appears_Before --
+    --------------------
+ 
+    function Appears_Before (P1, P2 : Source_Ptr) return Boolean is
+ 
+    begin
+       if Get_Source_File_Index (P1) = Get_Source_File_Index (P2) then
+          if Get_Logical_Line_Number (P1) = Get_Logical_Line_Number (P2) then
+             return Get_Column_Number (P1) < Get_Column_Number (P2);
+          else
+             return Get_Logical_Line_Number (P1) < Get_Logical_Line_Number (P2);
+          end if;
+       else
+          return Get_Source_File_Index (P1) < Get_Source_File_Index (P2);
+       end if;
+    end Appears_Before;
+ 
+    ------------------------------
+    -- Insert_Based_On_Location --
+    ------------------------------
+ 
+    procedure Insert_Based_On_Location
+      (List : Diagnostic_List;
+       Diagnostic : Diagnostic_Type)
+    is
+       use Diagnostics_Lists;
+ 
+       It : Iterator := Iterate (List);
+       D  : Diagnostic_Type;
+    begin
+       --  This is the common scenario where the error is reported at the
+       --  natural order the tree is processed. This saves a lot of time when
+       --  looking for the correct position in the list when there are a lot of
+       --  diagnostics.
+ 
+       if Present (List) and then
+          not Is_Empty (List) and then
+          Appears_Before (Last (List), Diagnostic)
+       then
+          Append (List, Diagnostic);
+       else
+          while Has_Next (It) loop
+             Next (It, D);
+ 
+             if Appears_Before (Diagnostic, D) then
+                Insert_Before (List, D, Diagnostic);
+                return;
+             end if;
+          end loop;
+ 
+          Append (List, Diagnostic);
+       end if;
+    end Insert_Based_On_Location;
+ 
+ end Diagnostics.Utils;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics-utils.ads gcc-15.1.0/gcc/ada/diagnostics-utils.ads
*** gcc-14.2.0/gcc/ada/diagnostics-utils.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics-utils.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,91 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                     D I A G N O S T I C S . U T I L S                    --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Diagnostics.Utils is
+ 
+    function Get_Human_Id (D : Diagnostic_Type) return String_Ptr;
+ 
+    function Sloc_To_String (Sptr : Source_Ptr; Ref : Source_Ptr) return String;
+    --  Convert the source pointer to a string and prefix it with the correct
+    --  preposition.
+    --
+    --  * If the location is in one of the standard locations,
+    --    then it yields "in package <LOCATION>". The explicit standard
+    --    locations are:
+    --    * System
+    --    * Standard
+    --    * Standard.ASCII
+    --  * if the location is missing the the sloc yields "at unknown location"
+    --  * if the location is in the same file as the current file,
+    --    then it yields "at line <line>".
+    --  * Otherwise sloc yields "at <file>:<line>:<column>"
+ 
+    function Sloc_To_String (N : Node_Or_Entity_Id;
+                             Ref : Source_Ptr)
+                             return String;
+    --  Converts the Sloc of the node or entity to a Sloc string.
+ 
+    function To_String (Sptr : Source_Ptr) return String;
+    --  Convert the source pointer to a string of the form: "file:line:column"
+ 
+    function To_File_Name (Sptr : Source_Ptr) return String;
+    --  Converts the file name of the Sptr to a string.
+ 
+    function Line_To_String (Sptr : Source_Ptr) return String;
+    --  Converts the logical line number of the Sptr to a string.
+ 
+    function Column_To_String (Sptr : Source_Ptr) return String;
+    --  Converts the column number of the Sptr to a string. Column values less
+    --  than 10 are prefixed with a 0.
+ 
+    function To_Full_Span (N : Node_Id) return Source_Span;
+ 
+    function To_String (Id : Diagnostic_Id) return String;
+    --  Convert the diagnostic ID to a 4 character string padded with 0-s.
+ 
+    function To_Name (E : Entity_Id) return String;
+ 
+    function To_Type_Name (E : Entity_Id) return String;
+ 
+    function Kind_To_String (D : Diagnostic_Type) return String;
+ 
+    function Kind_To_String
+      (D : Sub_Diagnostic_Type;
+       Parent : Diagnostic_Type) return String;
+ 
+    function Get_Primary_Labeled_Span (Spans : Labeled_Span_List)
+                                       return Labeled_Span_Type;
+ 
+    function Get_Doc_Switch (Diag : Diagnostic_Type) return String;
+ 
+    function Appears_Before (D1, D2 : Diagnostic_Type) return Boolean;
+ 
+    function Appears_Before (P1, P2 : Source_Ptr) return Boolean;
+ 
+    procedure Insert_Based_On_Location
+      (List       : Diagnostic_List;
+       Diagnostic : Diagnostic_Type);
+ 
+ end Diagnostics.Utils;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics.adb gcc-15.1.0/gcc/ada/diagnostics.adb
*** gcc-14.2.0/gcc/ada/diagnostics.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,539 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                          D I A G N O S T I C S                           --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Atree;                  use Atree;
+ with Debug;                  use Debug;
+ with Diagnostics.Brief_Emitter;
+ with Diagnostics.Pretty_Emitter;
+ with Diagnostics.Repository; use Diagnostics.Repository;
+ with Diagnostics.Utils;      use Diagnostics.Utils;
+ with Lib;                    use Lib;
+ with Opt;                    use Opt;
+ with Sinput;                 use Sinput;
+ with Warnsw;
+ 
+ package body Diagnostics is
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type) is
+    begin
+       Free (Elem.Label);
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Sub_Diagnostic_Type) is
+    begin
+       Free (Elem.Message);
+       if Labeled_Span_Lists.Present (Elem.Locations) then
+          Labeled_Span_Lists.Destroy (Elem.Locations);
+       end if;
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Edit_Type) is
+    begin
+       Free (Elem.Text);
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Fix_Type) is
+    begin
+       Free (Elem.Description);
+       if Edit_Lists.Present (Elem.Edits) then
+          Edit_Lists.Destroy (Elem.Edits);
+       end if;
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Diagnostic_Type) is
+    begin
+       Free (Elem.Message);
+       if Labeled_Span_Lists.Present (Elem.Locations) then
+          Labeled_Span_Lists.Destroy (Elem.Locations);
+       end if;
+       if Sub_Diagnostic_Lists.Present (Elem.Sub_Diagnostics) then
+          Sub_Diagnostic_Lists.Destroy (Elem.Sub_Diagnostics);
+       end if;
+       if Fix_Lists.Present (Elem.Fixes) then
+          Fix_Lists.Destroy (Elem.Fixes);
+       end if;
+    end Destroy;
+ 
+    ------------------
+    -- Add_Location --
+    ------------------
+ 
+    procedure Add_Location
+      (Diagnostic : in out Sub_Diagnostic_Type; Location : Labeled_Span_Type)
+    is
+       use Labeled_Span_Lists;
+    begin
+       if not Present (Diagnostic.Locations) then
+          Diagnostic.Locations := Create;
+       end if;
+ 
+       Append (Diagnostic.Locations, Location);
+    end Add_Location;
+ 
+    ----------------------
+    -- Primary_Location --
+    ----------------------
+ 
+    function Primary_Location
+      (Diagnostic : Sub_Diagnostic_Type) return Labeled_Span_Type
+    is
+    begin
+       return Get_Primary_Labeled_Span (Diagnostic.Locations);
+    end Primary_Location;
+ 
+    ------------------
+    -- Add_Location --
+    ------------------
+ 
+    procedure Add_Location
+      (Diagnostic : in out Diagnostic_Type; Location : Labeled_Span_Type)
+    is
+       use Labeled_Span_Lists;
+    begin
+       if not Present (Diagnostic.Locations) then
+          Diagnostic.Locations := Create;
+       end if;
+ 
+       Append (Diagnostic.Locations, Location);
+    end Add_Location;
+ 
+    ------------------------
+    -- Add_Sub_Diagnostic --
+    ------------------------
+ 
+    procedure Add_Sub_Diagnostic
+      (Diagnostic     : in out Diagnostic_Type;
+       Sub_Diagnostic :        Sub_Diagnostic_Type)
+    is
+       use Sub_Diagnostic_Lists;
+    begin
+       if not Present (Diagnostic.Sub_Diagnostics) then
+          Diagnostic.Sub_Diagnostics := Create;
+       end if;
+ 
+       Append (Diagnostic.Sub_Diagnostics, Sub_Diagnostic);
+    end Add_Sub_Diagnostic;
+ 
+    procedure Add_Edit (Fix : in out Fix_Type; Edit : Edit_Type) is
+       use Edit_Lists;
+    begin
+       if not Present (Fix.Edits) then
+          Fix.Edits := Create;
+       end if;
+ 
+       Append (Fix.Edits, Edit);
+    end Add_Edit;
+ 
+    -------------
+    -- Add_Fix --
+    -------------
+ 
+    procedure Add_Fix (Diagnostic : in out Diagnostic_Type; Fix : Fix_Type) is
+       use Fix_Lists;
+    begin
+       if not Present (Diagnostic.Fixes) then
+          Diagnostic.Fixes := Create;
+       end if;
+ 
+       Append (Diagnostic.Fixes, Fix);
+    end Add_Fix;
+ 
+    -----------------------
+    -- Record_Diagnostic --
+    -----------------------
+ 
+    procedure Record_Diagnostic (Diagnostic : Diagnostic_Type;
+                                 Update_Count : Boolean := True)
+    is
+ 
+       procedure Update_Diagnostic_Count (Diagnostic : Diagnostic_Type);
+ 
+       -----------------------------
+       -- Update_Diagnostic_Count --
+       -----------------------------
+ 
+       procedure Update_Diagnostic_Count (Diagnostic : Diagnostic_Type) is
+ 
+       begin
+          case Diagnostic.Kind is
+             when Error =>
+                Total_Errors_Detected := Total_Errors_Detected + 1;
+                Serious_Errors_Detected := Serious_Errors_Detected + 1;
+ 
+             when Non_Serious_Error =>
+                Total_Errors_Detected := Total_Errors_Detected + 1;
+ 
+             when Warning
+                | Default_Warning
+                | Tagless_Warning
+                | Restriction_Warning
+                | Style
+             =>
+                Warnings_Detected := Warnings_Detected + 1;
+ 
+                if Diagnostic.Warn_Err then
+                   Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
+                end if;
+ 
+             when Info =>
+                Info_Messages := Info_Messages + 1;
+          end case;
+       end Update_Diagnostic_Count;
+ 
+       procedure Handle_Serious_Error;
+       --  Internal procedure to do all error message handling for a serious
+       --  error message, other than bumping the error counts and arranging
+       --  for the message to be output.
+ 
+       procedure Handle_Serious_Error is
+       begin
+          --  Turn off code generation if not done already
+ 
+          if Operating_Mode = Generate_Code then
+             Operating_Mode := Check_Semantics;
+             Expander_Active := False;
+          end if;
+ 
+          --  Set the fatal error flag in the unit table unless we are in
+          --  Try_Semantics mode (in which case we set ignored mode if not
+          --  currently set. This stops the semantics from being performed
+          --  if we find a serious error. This is skipped if we are currently
+          --  dealing with the configuration pragma file.
+ 
+          if Current_Source_Unit /= No_Unit then
+             declare
+                U : constant Unit_Number_Type :=
+                  Get_Source_Unit
+                    (Primary_Location (Diagnostic).Span.Ptr);
+             begin
+                if Try_Semantics then
+                   if Fatal_Error (U) = None then
+                      Set_Fatal_Error (U, Error_Ignored);
+                   end if;
+                else
+                   Set_Fatal_Error (U, Error_Detected);
+                end if;
+             end;
+          end if;
+ 
+          --  Disable warnings on unused use clauses and the like. Otherwise, an
+          --  error might hide a reference to an entity in a used package, so
+          --  after fixing the error, the use clause no longer looks like it was
+          --  unused.
+ 
+          Warnsw.Check_Unreferenced := False;
+          Warnsw.Check_Unreferenced_Formals := False;
+       end Handle_Serious_Error;
+    begin
+       Insert_Based_On_Location (All_Diagnostics, Diagnostic);
+ 
+       if Update_Count then
+          Update_Diagnostic_Count (Diagnostic);
+       end if;
+ 
+       if Diagnostic.Kind = Error then
+          Handle_Serious_Error;
+       end if;
+    end Record_Diagnostic;
+ 
+    ----------------------
+    -- Print_Diagnostic --
+    ----------------------
+ 
+    procedure Print_Diagnostic (Diagnostic : Diagnostic_Type) is
+ 
+    begin
+       if Debug_Flag_FF then
+          Diagnostics.Pretty_Emitter.Print_Diagnostic (Diagnostic);
+       else
+          Diagnostics.Brief_Emitter.Print_Diagnostic (Diagnostic);
+       end if;
+    end Print_Diagnostic;
+ 
+    ----------------------
+    -- Primary_Location --
+    ----------------------
+ 
+    function Primary_Location
+      (Diagnostic : Diagnostic_Type) return Labeled_Span_Type
+    is
+    begin
+       return Get_Primary_Labeled_Span (Diagnostic.Locations);
+    end Primary_Location;
+ 
+    ---------------------
+    -- Make_Diagnostic --
+    ---------------------
+ 
+    function Make_Diagnostic
+      (Msg       : String;
+       Location  : Labeled_Span_Type;
+       Id        : Diagnostic_Id        := No_Diagnostic_Id;
+       Kind      : Diagnostic_Kind      := Diagnostics.Error;
+       Switch    : Switch_Id            := No_Switch_Id;
+       Spans     : Labeled_Span_Array   := No_Locations;
+       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
+       Fixes     : Fix_Array            := No_Fixes)
+       return Diagnostic_Type
+    is
+       D : Diagnostic_Type;
+    begin
+       D.Message := new String'(Msg);
+       D.Id      := Id;
+       D.Kind    := Kind;
+ 
+       if Id /= No_Diagnostic_Id then
+          pragma Assert (Switch = Diagnostic_Entries (Id).Switch,
+             "Provided switch must be the same as in the registry");
+       end if;
+       D.Switch  := Switch;
+ 
+       pragma Assert (Location.Is_Primary, "Main location must be primary");
+       Add_Location (D, Location);
+ 
+       for I in Spans'Range loop
+          Add_Location (D, Spans (I));
+       end loop;
+ 
+       for I in Sub_Diags'Range loop
+          Add_Sub_Diagnostic (D, Sub_Diags (I));
+       end loop;
+ 
+       for I in Fixes'Range loop
+          Add_Fix (D, Fixes (I));
+       end loop;
+ 
+       return D;
+    end Make_Diagnostic;
+ 
+    -----------------------
+    -- Record_Diagnostic --
+    -----------------------
+ 
+    procedure Record_Diagnostic
+      (Msg       : String;
+       Location  : Labeled_Span_Type;
+       Id        : Diagnostic_Id        := No_Diagnostic_Id;
+       Kind      : Diagnostic_Kind      := Diagnostics.Error;
+       Switch    : Switch_Id            := No_Switch_Id;
+       Spans     : Labeled_Span_Array   := No_Locations;
+       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
+       Fixes     : Fix_Array            := No_Fixes)
+    is
+ 
+    begin
+       Record_Diagnostic
+         (Make_Diagnostic
+            (Msg       => Msg,
+             Location  => Location,
+             Id        => Id,
+             Kind      => Kind,
+             Switch    => Switch,
+             Spans     => Spans,
+             Sub_Diags => Sub_Diags,
+             Fixes     => Fixes));
+    end Record_Diagnostic;
+ 
+    ------------------
+    -- Labeled_Span --
+    ------------------
+ 
+    function Labeled_Span (Span       : Source_Span;
+                           Label      : String := "";
+                           Is_Primary : Boolean := True;
+                           Is_Region  : Boolean := False)
+                           return Labeled_Span_Type
+    is
+       L : Labeled_Span_Type;
+    begin
+       L.Span       := Span;
+       if Label /= "" then
+          L.Label      := new String'(Label);
+       end if;
+       L.Is_Primary := Is_Primary;
+       L.Is_Region  := Is_Region;
+ 
+       return L;
+    end Labeled_Span;
+ 
+    --------------------------
+    -- Primary_Labeled_Span --
+    --------------------------
+ 
+    function Primary_Labeled_Span (Span  : Source_Span;
+                                   Label : String  := "")
+                                   return Labeled_Span_Type
+    is begin
+       return Labeled_Span (Span => Span, Label => Label, Is_Primary => True);
+    end Primary_Labeled_Span;
+ 
+    --------------------------
+    -- Primary_Labeled_Span --
+    --------------------------
+ 
+    function Primary_Labeled_Span (N     : Node_Or_Entity_Id;
+                                   Label : String := "")
+                                   return Labeled_Span_Type
+    is
+    begin
+       return Primary_Labeled_Span (To_Full_Span (N), Label);
+    end Primary_Labeled_Span;
+ 
+    ----------------------------
+    -- Secondary_Labeled_Span --
+    ----------------------------
+ 
+    function Secondary_Labeled_Span
+      (Span  : Source_Span;
+       Label : String := "")
+       return Labeled_Span_Type
+    is
+    begin
+       return Labeled_Span (Span => Span, Label => Label, Is_Primary => False);
+    end Secondary_Labeled_Span;
+ 
+    ----------------------------
+    -- Secondary_Labeled_Span --
+    ----------------------------
+ 
+    function Secondary_Labeled_Span (N     : Node_Or_Entity_Id;
+                                     Label : String  := "")
+                                     return Labeled_Span_Type
+    is
+    begin
+       return Secondary_Labeled_Span (To_Full_Span (N), Label);
+    end Secondary_Labeled_Span;
+ 
+    --------------
+    -- Sub_Diag --
+    --------------
+ 
+    function Sub_Diag (Msg       : String;
+                       Kind      : Sub_Diagnostic_Kind :=
+                         Diagnostics.Continuation;
+                       Locations : Labeled_Span_Array  := No_Locations)
+                       return Sub_Diagnostic_Type
+    is
+       S : Sub_Diagnostic_Type;
+    begin
+       S.Message := new String'(Msg);
+       S.Kind    := Kind;
+ 
+       for I in Locations'Range loop
+          Add_Location (S, Locations (I));
+       end loop;
+ 
+       return S;
+    end Sub_Diag;
+ 
+    ------------------
+    -- Continuation --
+    ------------------
+ 
+    function Continuation (Msg       : String;
+                           Locations : Labeled_Span_Array := No_Locations)
+                           return Sub_Diagnostic_Type
+    is
+    begin
+       return Sub_Diag (Msg, Diagnostics.Continuation, Locations);
+    end Continuation;
+ 
+    ----------
+    -- Help --
+    ----------
+ 
+    function Help (Msg       : String;
+                   Locations : Labeled_Span_Array := No_Locations)
+                   return Sub_Diagnostic_Type
+    is
+    begin
+       return Sub_Diag (Msg, Diagnostics.Help, Locations);
+    end Help;
+ 
+    ----------------
+    -- Suggestion --
+    ----------------
+ 
+    function Suggestion (Msg       : String;
+                         Locations : Labeled_Span_Array := No_Locations)
+                         return Sub_Diagnostic_Type
+    is
+    begin
+       return Sub_Diag (Msg, Diagnostics.Suggestion, Locations);
+    end Suggestion;
+ 
+    ---------
+    -- Fix --
+    ---------
+ 
+    function Fix
+      (Description   : String;
+       Edits         : Edit_Array;
+       Applicability : Applicability_Type := Unspecified) return Fix_Type
+    is
+       F : Fix_Type;
+    begin
+       F.Description   := new String'(Description);
+ 
+       for I in Edits'Range loop
+          Add_Edit (F, Edits (I));
+       end loop;
+ 
+       F.Applicability := Applicability;
+ 
+       return F;
+    end Fix;
+ 
+    ----------
+    -- Edit --
+    ----------
+ 
+    function Edit (Text : String; Span : Source_Span) return Edit_Type is
+ 
+    begin
+       return (Text => new String'(Text), Span => Span);
+    end Edit;
+ 
+ end Diagnostics;
diff -Nrcpad gcc-14.2.0/gcc/ada/diagnostics.ads gcc-15.1.0/gcc/ada/diagnostics.ads
*** gcc-14.2.0/gcc/ada/diagnostics.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/diagnostics.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,477 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                          D I A G N O S T I C S                           --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Types;      use Types;
+ with GNAT.Lists; use GNAT.Lists;
+ 
+ package Diagnostics is
+ 
+    type Diagnostic_Id is
+      (No_Diagnostic_Id,
+       GNAT0001,
+       GNAT0002,
+       GNAT0003,
+       GNAT0004,
+       GNAT0005,
+       GNAT0006,
+       GNAT0007,
+       GNAT0008,
+       GNAT0009,
+       GNAT0010,
+       GNAT0011);
+ 
+    --  Labeled_Span_Type represents a span of source code that is associated
+    --  with a textual label. Primary spans indicate the primary location of the
+    --  diagnostic. Non-primary spans are used to indicate secondary locations.
+    --
+    --  Spans can contain labels that are used to annotate the highlighted span.
+    --  Usually, the label is a short and concise message that provide
+    --  additional allthough non-critical information about the span. This is
+    --  an important since labels are not printed in the brief output and are
+    --  only present in the pretty and structural outputs. That is an important
+    --  distintion when choosing between a label and a sub-diagnostic.
+    type Labeled_Span_Type is record
+       Label : String_Ptr := null;
+       --  Text associated with the span
+ 
+       Span : Source_Span := (others => No_Location);
+       --  Textual region in the source code
+ 
+       Is_Primary : Boolean := True;
+       --  Primary spans are used to indicate the primary location of the
+       --  diagnostic. Typically there should just be one primary span per
+       --  diagnostic.
+       --  Non-primary spans are used to indicate secondary locations and
+       --  typically are formatted in a different way or omitted in some
+       --  contexts.
+ 
+       Is_Region : Boolean := False;
+       --  Regional spans are multiline spans that have a unique way of being
+       --  displayed in the pretty output.
+    end record;
+ 
+    No_Labeled_Span : constant Labeled_Span_Type := (others => <>);
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type);
+    pragma Inline (Destroy);
+ 
+    package Labeled_Span_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Labeled_Span_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+    subtype Labeled_Span_List is Labeled_Span_Lists.Doubly_Linked_List;
+ 
+    type Sub_Diagnostic_Kind is
+      (Continuation,
+       Help,
+       Note,
+       Suggestion);
+ 
+    --  Sub_Diagnostic_Type represents a sub-diagnostic message that is meant
+    --  to provide additional information about the primary diagnostic message.
+    --
+    --  Sub-diagnostics are usually constructed with a full sentence as the
+    --  message and provide important context to the main diagnostic message or
+    --  some concrete action to the user.
+    --
+    --  This is different from the labels of labeled spans which are meant to be
+    --  short and concise and are mostly there to annotate the higlighted span.
+ 
+    type Sub_Diagnostic_Type is record
+       Kind : Sub_Diagnostic_Kind;
+ 
+       Message : String_Ptr;
+ 
+       Locations : Labeled_Span_List;
+    end record;
+ 
+    procedure Add_Location
+      (Diagnostic : in out Sub_Diagnostic_Type; Location : Labeled_Span_Type);
+ 
+    function Primary_Location
+      (Diagnostic : Sub_Diagnostic_Type) return Labeled_Span_Type;
+ 
+    procedure Destroy (Elem : in out Sub_Diagnostic_Type);
+    pragma Inline (Destroy);
+ 
+    package Sub_Diagnostic_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Sub_Diagnostic_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Sub_Diagnostic_List is Sub_Diagnostic_Lists.Doubly_Linked_List;
+ 
+    --  An Edit_Type represents a textual edit that is associated with a Fix.
+    type Edit_Type is record
+       Span : Source_Span;
+       --  Region of the file to be removed
+ 
+       Text : String_Ptr;
+       --  Text to be inserted at the start location of the span
+    end record;
+ 
+    procedure Destroy (Elem : in out Edit_Type);
+    pragma Inline (Destroy);
+ 
+    package Edit_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Edit_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Edit_List is Edit_Lists.Doubly_Linked_List;
+ 
+    --  Type Applicability_Type will indicate the state of the resulting code
+    --  after applying a fix.
+    --  * Option Has_Placeholders indicates that the fix contains placeholders
+    --    that the user would need to fill.
+    --  * Option Legal indicates that applying the fix will result in legal Ada
+    --    code.
+    --  * Option Possibly_Illegal indicates that applying the fix will result in
+    --    possibly legal, but also possibly illegal Ada code.
+    type Applicability_Type is
+      (Has_Placeholders,
+       Legal,
+       Possibly_Illegal,
+       Unspecified);
+ 
+    type Fix_Type is record
+       Description : String_Ptr := null;
+       --  Message describing the fix that will be displayed to the user.
+ 
+       Applicability : Applicability_Type := Unspecified;
+ 
+       Edits : Edit_List;
+       --   File changes for the fix.
+    end record;
+ 
+    procedure Destroy (Elem : in out Fix_Type);
+    pragma Inline (Destroy);
+ 
+    package Fix_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Fix_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Fix_List is Fix_Lists.Doubly_Linked_List;
+ 
+    procedure Add_Edit (Fix : in out Fix_Type; Edit : Edit_Type);
+ 
+    type Status_Type is
+      (Active,
+       Deprecated);
+ 
+    type Switch_Id is (
+       No_Switch_Id,
+       gnatwb,
+       gnatwc,
+       gnatwd,
+       gnatwf,
+       gnatwg,
+       gnatwh,
+       gnatwi,
+       gnatwj,
+       gnatwk,
+       gnatwl,
+       gnatwm,
+       gnatwo,
+       gnatwp,
+       gnatwq,
+       gnatwr,
+       gnatwt,
+       gnatwu,
+       gnatwv,
+       gnatww,
+       gnatwx,
+       gnatwy,
+       gnatwz,
+       gnatw_dot_a,
+       gnatw_dot_b,
+       gnatw_dot_c,
+       gnatw_dot_f,
+       gnatw_dot_h,
+       gnatw_dot_i,
+       gnatw_dot_j,
+       gnatw_dot_k,
+       gnatw_dot_l,
+       gnatw_dot_m,
+       gnatw_dot_n,
+       gnatw_dot_o,
+       gnatw_dot_p,
+       gnatw_dot_q,
+       gnatw_dot_r,
+       gnatw_dot_s,
+       gnatw_dot_t,
+       gnatw_dot_u,
+       gnatw_dot_v,
+       gnatw_dot_w,
+       gnatw_dot_x,
+       gnatw_dot_y,
+       gnatw_dot_z,
+       gnatw_underscore_a,
+       gnatw_underscore_c,
+       gnatw_underscore_j,
+       gnatw_underscore_l,
+       gnatw_underscore_p,
+       gnatw_underscore_q,
+       gnatw_underscore_r,
+       gnatw_underscore_s,
+       gnaty,
+       gnatya,
+       gnatyb,
+       gnatyc,
+       gnatyd,
+       gnatye,
+       gnatyf,
+       gnatyh,
+       gnatyi,
+       gnatyk,
+       gnatyl,
+       gnatym,
+       gnatyn,
+       gnatyo,
+       gnatyp,
+       gnatyr,
+       gnatys,
+       gnatyu,
+       gnatyx,
+       gnatyz,
+       gnatyaa,
+       gnatybb,
+       gnatycc,
+       gnatydd,
+       gnatyii,
+       gnatyll,
+       gnatymm,
+       gnatyoo,
+       gnatyss,
+       gnatytt,
+       gnatel
+    );
+ 
+    subtype Active_Switch_Id is Switch_Id range gnatwb .. gnatel;
+    --  The range of switch ids that represent switches that trigger a specific
+    --  diagnostic check.
+ 
+    type Switch_Type is record
+ 
+       Status : Status_Type := Active;
+       --  The status will indicate whether the switch is currently active,
+       --  or has been deprecated. A deprecated switch will not control
+       --  diagnostics, and will not be emitted by the GNAT usage.
+ 
+       Human_Id : String_Ptr := null;
+       --  The Human_Id will be a unique and stable string-based ID which
+       --  identifies the content of the switch within the switch registry.
+       --  This ID will appear in SARIF readers.
+ 
+       Short_Name : String_Ptr := null;
+       --  The Short_Name will denote the -gnatXX name of the switch.
+ 
+       Description : String_Ptr := null;
+       --  The description will contain the description of the switch, as it is
+       --  currently emitted by the GNAT usage.
+ 
+       Documentation_Url : String_Ptr := null;
+       --  The documentation_url will point to the AdaCore documentation site
+       --  for the switch.
+ 
+    end record;
+ 
+    type Diagnostic_Kind is
+      (Error,
+       Non_Serious_Error,
+       --  Typically all errors are considered serious and the compiler should
+       --  stop its processing since the tree is essentially invalid. However,
+       --  some errors are not serious and the compiler can continue its
+       --  processing to discover more critical errors.
+       Warning,
+       Default_Warning,
+       --  Warning representing the old warnings created with the '??' insertion
+       --  character. These warning have the [enabled by default] tag.
+       Restriction_Warning,
+       --  Warning representing the old warnings created with the '?*?'
+       --  insertion character. These warning have the [restriction warning]
+       --  tag.
+       Style,
+       Tagless_Warning,
+       --  Warning representing the old warnings created with the '?' insertion
+       --  character.
+       Info
+    );
+ 
+    type Diagnostic_Entry_Type is record
+       Status : Status_Type := Active;
+ 
+       Human_Id : String_Ptr := null;
+       --  A human readable code for the diagnostic. If the diagnostic has a
+       --  switch with a human id then the human_id of the switch shall be used
+       --  in SARIF reports.
+ 
+       Documentation : String_Ptr := null;
+ 
+       Switch : Switch_Id := No_Switch_Id;
+       --  The switch that controls the diagnostic message.
+    end record;
+ 
+    type Diagnostic_Type is record
+ 
+       Id : Diagnostic_Id := No_Diagnostic_Id;
+ 
+       Kind : Diagnostic_Kind := Error;
+ 
+       Switch : Switch_Id := No_Switch_Id;
+ 
+       Message : String_Ptr := null;
+ 
+       Warn_Err : Boolean := False;
+       --  Signal whether the diagnostic was converted from a warning to an
+       --  error. This needs to be set during the message emission as this
+       --  behavior depends on the context of the code.
+ 
+       Locations : Labeled_Span_List := Labeled_Span_Lists.Nil;
+ 
+       Sub_Diagnostics : Sub_Diagnostic_List := Sub_Diagnostic_Lists.Nil;
+ 
+       Fixes : Fix_List := Fix_Lists.Nil;
+    end record;
+ 
+    procedure Destroy (Elem : in out Diagnostic_Type);
+    pragma Inline (Destroy);
+ 
+    package Diagnostics_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Diagnostic_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Diagnostic_List is Diagnostics_Lists.Doubly_Linked_List;
+ 
+    All_Diagnostics : Diagnostic_List := Diagnostics_Lists.Create;
+ 
+    procedure Add_Location
+      (Diagnostic : in out Diagnostic_Type; Location : Labeled_Span_Type);
+ 
+    procedure Add_Sub_Diagnostic
+      (Diagnostic     : in out Diagnostic_Type;
+       Sub_Diagnostic :        Sub_Diagnostic_Type);
+ 
+    procedure Add_Fix (Diagnostic : in out Diagnostic_Type; Fix : Fix_Type);
+ 
+    procedure Record_Diagnostic (Diagnostic : Diagnostic_Type;
+                                 Update_Count : Boolean := True);
+ 
+    procedure Print_Diagnostic (Diagnostic : Diagnostic_Type);
+ 
+    function Primary_Location
+      (Diagnostic : Diagnostic_Type) return Labeled_Span_Type;
+ 
+    type Labeled_Span_Array is
+      array (Positive range <>) of Labeled_Span_Type;
+    type Sub_Diagnostic_Array is
+      array (Positive range <>) of Sub_Diagnostic_Type;
+    type Fix_Array is
+      array (Positive range <>) of Fix_Type;
+    type Edit_Array is
+      array (Positive range <>) of Edit_Type;
+ 
+    No_Locations : constant Labeled_Span_Array (1 .. 0)   := (others => <>);
+    No_Sub_Diags : constant Sub_Diagnostic_Array (1 .. 0) := (others => <>);
+    No_Fixes     : constant Fix_Array (1 .. 0)            := (others => <>);
+    No_Edits     : constant Edit_Array (1 .. 0)           := (others => <>);
+ 
+    function Make_Diagnostic
+      (Msg       : String;
+       Location  : Labeled_Span_Type;
+       Id        : Diagnostic_Id        := No_Diagnostic_Id;
+       Kind      : Diagnostic_Kind      := Diagnostics.Error;
+       Switch    : Switch_Id            := No_Switch_Id;
+       Spans     : Labeled_Span_Array   := No_Locations;
+       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
+       Fixes     : Fix_Array            := No_Fixes)
+       return Diagnostic_Type;
+ 
+    procedure Record_Diagnostic
+      (Msg       : String;
+       Location  : Labeled_Span_Type;
+       Id        : Diagnostic_Id        := No_Diagnostic_Id;
+       Kind      : Diagnostic_Kind      := Diagnostics.Error;
+       Switch    : Switch_Id            := No_Switch_Id;
+       Spans     : Labeled_Span_Array   := No_Locations;
+       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
+       Fixes     : Fix_Array            := No_Fixes);
+ 
+    function Labeled_Span (Span       : Source_Span;
+                           Label      : String  := "";
+                           Is_Primary : Boolean := True;
+                           Is_Region  : Boolean := False)
+                           return Labeled_Span_Type;
+ 
+    function Primary_Labeled_Span (Span  : Source_Span;
+                                   Label : String  := "")
+                                   return Labeled_Span_Type;
+ 
+    function Primary_Labeled_Span (N     : Node_Or_Entity_Id;
+                                   Label : String  := "")
+                                   return Labeled_Span_Type;
+ 
+    function Secondary_Labeled_Span (Span  : Source_Span;
+                                     Label : String  := "")
+                                     return Labeled_Span_Type;
+ 
+    function Secondary_Labeled_Span (N     : Node_Or_Entity_Id;
+                                     Label : String  := "")
+                                     return Labeled_Span_Type;
+ 
+    function Sub_Diag (Msg       : String;
+                       Kind      : Sub_Diagnostic_Kind :=
+                         Diagnostics.Continuation;
+                       Locations : Labeled_Span_Array := No_Locations)
+                       return Sub_Diagnostic_Type;
+ 
+    function Continuation (Msg       : String;
+                           Locations : Labeled_Span_Array := No_Locations)
+                           return Sub_Diagnostic_Type;
+ 
+    function Help (Msg       : String;
+                   Locations : Labeled_Span_Array := No_Locations)
+                   return Sub_Diagnostic_Type;
+ 
+    function Suggestion (Msg       : String;
+                         Locations : Labeled_Span_Array := No_Locations)
+                         return Sub_Diagnostic_Type;
+ 
+    function Fix (Description   : String;
+                  Edits         : Edit_Array;
+                  Applicability : Applicability_Type := Unspecified)
+                  return Fix_Type;
+ 
+    function Edit (Text : String;
+                   Span : Source_Span)
+                   return Edit_Type;
+ end Diagnostics;
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Fri Apr 25 08:18:00 2025
*************** There are two sets of language extension
*** 14,21 ****
    available to users early on.
  
  * The second is the experimental set. It includes the first, but also
!   experimental features, that are here because they're still in an early
!   prototyping phase.
  
  How to activate the extended GNAT Ada superset
  ==============================================
--- 14,22 ----
    available to users early on.
  
  * The second is the experimental set. It includes the first, but also
!   experimental features, which are considered experimental because
!   they're still in an early prototyping phase.
!   These features might be removed or heavily modified at any time.
  
  How to activate the extended GNAT Ada superset
  ==============================================
*************** There are two ways to activate the exten
*** 32,59 ****
  As a configuration pragma, you can either put it at the beginning of a source
  file, or in a ``.adc`` file corresponding to your project.
  
! * The ``-gnatX`` option, that you can pass to the compiler directly, will
    activate the curated subset of extensions.
  
! .. attention:: You can activate the extended set of extensions by using either
!    the ``-gnatX0`` command line flag, or the pragma ``Extensions_Allowed`` with
!    ``All`` as an argument. However, it is not recommended you use this subset
!    for serious projects, and is only means as a playground/technology preview.
  
  .. _Curated_Language_Extensions:
  
  Curated Extensions
  ==================
  
  Local Declarations Without Block
  --------------------------------
  
! A basic_declarative_item may appear at the place of any statement.
! This avoids the heavy syntax of block_statements just to declare
! something locally.
  
- Link to the original RFC:
- https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-local-vars-without-block.md
  For example:
  
  .. code-block:: ada
--- 33,66 ----
  As a configuration pragma, you can either put it at the beginning of a source
  file, or in a ``.adc`` file corresponding to your project.
  
! * The ``-gnatX`` command-line option will
    activate the curated subset of extensions.
  
! .. attention:: You can activate the experimental set of extensions
!    in addition by using either
!    the ``-gnatX0`` command-line option, or the pragma ``Extensions_Allowed`` with
!    ``All_Extensions`` as an argument. However, it is not recommended you use
!    this subset for serious projects; it is only meant as a technology preview
!    for use in playground experiments.
  
  .. _Curated_Language_Extensions:
  
  Curated Extensions
  ==================
  
+ Features activated via ``-gnatX`` or
+ ``pragma Extensions_Allowed (On)``.
+ 
  Local Declarations Without Block
  --------------------------------
  
! A ``basic_declarative_item`` may appear at the place of any statement. This
! avoids the heavy syntax of block_statements just to declare something locally.
! 
! The only valid kinds of declarations for now are ``object_declaration``,
! ``object_renaming_declaration``, ``use_package_clause``, and
! ``use_type_clause``.
  
  For example:
  
  .. code-block:: ada
*************** For example:
*** 66,259 ****
        X := X + Squared;
     end if;
  
! Conditional when constructs
! ---------------------------
  
! This feature extends the use of ``when`` as a way to condition a control-flow
! related statement, to all control-flow related statements.
  
! To do a conditional return in a procedure the following syntax should be used:
  
! .. code-block:: ada
  
!    procedure P (Condition : Boolean) is
!    begin
!       return when Condition;
!    end;
  
! This will return from the procedure if ``Condition`` is true.
  
! When being used in a function the conditional part comes after the return value:
  
! .. code-block:: ada
  
!    function Is_Null (I : Integer) return Boolean is
!    begin
!       return True when I = 0;
!       return False;
!    end;
  
! In a similar way to the ``exit when`` a ``goto ... when`` can be employed:
  
! .. code-block:: ada
  
!    procedure Low_Level_Optimized is
!       Flags : Bitmapping;
!    begin
!       Do_1 (Flags);
!       goto Cleanup when Flags (1);
  
!       Do_2 (Flags);
!       goto Cleanup when Flags (32);
  
!       --  ...
  
!    <<Cleanup>>
!       --  ...
!    end;
  
! .. code-block
  
! To use a conditional raise construct:
  
! .. code-block:: ada
  
!    procedure Foo is
!    begin
!       raise Error when Imported_C_Func /= 0;
!    end;
  
! An exception message can also be added:
  
! .. code-block:: ada
  
!    procedure Foo is
!    begin
!       raise Error with "Unix Error"
!         when Imported_C_Func /= 0;
!    end;
  
  
! Link to the original RFC:
! https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-conditional-when-constructs.rst
  
! Case pattern matching
! ---------------------
  
! The selector for a case statement (but not yet for a case expression) may be of a composite type, subject to
! some restrictions (described below). Aggregate syntax is used for choices
! of such a case statement; however, in cases where a "normal" aggregate would
! require a discrete value, a discrete subtype may be used instead; box
! notation can also be used to match all values.
  
! Consider this example:
  
! .. code-block:: ada
  
!   type Rec is record
!      F1, F2 : Integer;
!   end record;
  
!   procedure Caser_1 (X : Rec) is
!   begin
!      case X is
!         when (F1 => Positive, F2 => Positive) =>
!            Do_This;
!         when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!            Do_That;
!         when others =>
!             Do_The_Other_Thing;
!      end case;
!   end Caser_1;
  
! If ``Caser_1`` is called and both components of X are positive, then
! ``Do_This`` will be called; otherwise, if either component is nonnegative
! then ``Do_That`` will be called; otherwise, ``Do_The_Other_Thing`` will be
! called.
  
! In addition, pattern bindings are supported. This is a mechanism
! for binding a name to a component of a matching value for use within
! an alternative of a case statement. For a component association
! that occurs within a case choice, the expression may be followed by
! ``is <identifier>``. In the special case of a "box" component association,
! the identifier may instead be provided within the box. Either of these
! indicates that the given identifier denotes (a constant view of) the matching
! subcomponent of the case selector.
  
! .. attention:: Binding is not yet supported for arrays or subcomponents
!    thereof.
  
! Consider this example (which uses type ``Rec`` from the previous example):
  
! .. code-block:: ada
  
!   procedure Caser_2 (X : Rec) is
!   begin
!      case X is
!         when (F1 => Positive is Abc, F2 => Positive) =>
!            Do_This (Abc)
!         when (F1 => Natural is N1, F2 => <N2>) |
!              (F1 => <N2>, F2 => Natural is N1) =>
!            Do_That (Param_1 => N1, Param_2 => N2);
!         when others =>
!            Do_The_Other_Thing;
!      end case;
!   end Caser_2;
  
! This example is the same as the previous one with respect to determining
! whether ``Do_This``, ``Do_That``, or ``Do_The_Other_Thing`` will be called. But
! for this version, ``Do_This`` takes a parameter and ``Do_That`` takes two
! parameters. If ``Do_This`` is called, the actual parameter in the call will be
! ``X.F1``.
  
! If ``Do_That`` is called, the situation is more complex because there are two
! choices for that alternative. If ``Do_That`` is called because the first choice
! matched (i.e., because ``X.F1`` is nonnegative and either ``X.F1`` or ``X.F2``
! is zero or negative), then the actual parameters of the call will be (in order)
! ``X.F1`` and ``X.F2``. If ``Do_That`` is called because the second choice
! matched (and the first one did not), then the actual parameters will be
! reversed.
  
! Within the choice list for single alternative, each choice must define the same
! set of bindings and the component subtypes for for a given identifer must all
! statically match. Currently, the case of a binding for a nondiscrete component
! is not implemented.
  
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first set shall
! be a proper subset of the second (and the later alternative will not be
! executed if the earlier alternative "matches"). All possible values of the
! composite type shall be covered. The composite type of the selector shall be an
! array or record type that is neither limited nor class-wide. Currently, a "when
! others =>" case choice is required; it is intended that this requirement will
! be relaxed at some point.
  
! If a subcomponent's subtype does not meet certain restrictions, then the only
! value that can be specified for that subcomponent in a case choice expression
! is a "box" component association (which matches all possible values for the
! subcomponent). This restriction applies if:
  
! - the component subtype is not a record, array, or discrete type; or
  
! - the component subtype is subject to a non-static constraint or has a
!   predicate; or:
  
! - the component type is an enumeration type that is subject to an enumeration
!   representation clause; or
  
! - the component type is a multidimensional array type or an array type with a
!   nonstatic index subtype.
  
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually "Capacity exceeded in compiling
! case statement with composite selector type".
  
- Link to the original RFC:
- https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-pattern-matching.rst
  
  Fixed lower bounds for array types and subtypes
  -----------------------------------------------
--- 73,284 ----
        X := X + Squared;
     end if;
  
! It is generally a good practice to declare local variables (or constants) with as
! short a lifetime as possible. However, introducing a declare block to accomplish
! this is a relatively heavy syntactic load along with a traditional extra level
! of indentation. The alternative syntax supported here allows declarations
! in any statement sequence.
! The lifetime of such local declarations is until the end of
! the enclosing construct. The same enclosing construct cannot contain several
! declarations of the same defining name; however, overriding symbols from higher-level
! scopes works similarly to the explicit ``declare`` block.
  
! If the enclosing construct allows an exception handler (such as an accept
! statement, begin-except-end block or a subprogram body), declarations that
! appear at the place of a statement are *not* visible within the handler. Only
! declarations that precede the beginning of the construct with an exception
! handler would be visible in this handler.
  
! .. attention::
  
!   Here are a couple of examples illustrating the scoping rules described above.
  
!    1. Those declarations are not visible from the potential exception handler:
  
!       .. code-block:: ada
  
!          begin
!             A : Integer
!             ...
!          exception
!             when others =>
!                 Put_Line (A'Image) --  ILLEGAL
!          end;
  
!    2. The following is legal
  
!       .. code-block:: ada
  
!          declare
!             A : Integer := 10;
!          begin
!             A : Integer := 12;
!          end;
  
!       because it is roughly expanded into
  
!       .. code-block:: ada
  
!          declare
!             A : Integer := 10;
!          begin
!             declare
!                A : Integer := 12;
!             begin
!                ...
!             end;
!          end;
  
!        And as such the second ``A`` declaration is hiding the first one.
  
! Deep delta Aggregates
! ---------------------
  
! Ada 2022's delta aggregates are extended to allow deep updates.
  
! A delta aggregate may be used to specify new values for subcomponents of the
! copied base value, instead of only new values for direct components of the
! copied base value. This allows a more compact expression of updated values with
! a single delta aggregate, instead of multiple nested delta aggregates.
  
! The syntax of delta aggregates in the extended version is the following:
  
! Syntax
! ^^^^^^
  
! .. code::
  
!    delta_aggregate ::= record_delta_aggregate | array_delta_aggregate
  
!    record_delta_aggregate ::=
!      ( base_expression with delta record_subcomponent_association_list )
  
+    record_subcomponent_association_list ::=
+      record_subcomponent_association {, record_subcomponent_association}
  
!    record_subcomponent_association ::=
!      record_subcomponent_choice_list => expression
  
!    record_subcomponent_choice_list ::=
!      record_subcomponent_choice {'|' record_subcomponent_choice}
  
!    record_subcomponent_choice ::=
!        component_selector_name
!      | record_subcomponent_choice (expression)
!      | record_subcomponent_choice . component_selector_name
  
!    array_delta_aggregate ::=
!        ( base_expression with delta array_component_association_list )
!      | '[' base_expression with delta array_component_association_list ']'
!      | ( base_expression with delta array_subcomponent_association_list )
!      | '[' base_expression with delta array_subcomponent_association_list ']'
  
!    array_subcomponent_association_list ::=
!      array_subcomponent_association {, array_subcomponent_association}
  
!    array_subcomponent_association ::=
!      array_subcomponent_choice_list => expression
  
!    array_subcomponent_choice_list ::=
!      array_subcomponent_choice {'|' array_subcomponent_choice}
  
!    array_subcomponent_choice ::=
!        ( expression )
!      | array_subcomponent_choice (expression)
!      | array_subcomponent_choice . component_selector_name
  
! Legality Rules
! ^^^^^^^^^^^^^^
  
! 1. For an ``array_delta_aggregate``, the discrete_choice shall not be **others**.
  
! 2. For an ``array_delta_aggregate``, the dimensionality of the type of the
!    ``delta_aggregate`` shall be 1.
  
! 3. For an ``array_delta_aggregate``, the ``base_expression`` and each
!    expression in every ``array_component_association`` or
!    ``array_subcomponent_association`` shall be of a nonlimited type.
  
! 4. For a ``record_delta_aggregate``, no ``record_subcomponent_choices`` that
!    consists of only ``component_selector_names`` shall be the same or a prefix
!    of another record_subcomponent_choice.
  
! 5. For an ``array_subcomponent_choice`` or a ``record_subcomponent_choice`` the
!    ``component_selector_name`` shall not be a subcomponent that depends on
!    discriminants of an unconstrained record subtype with defaulted
!    discriminants unless its prefix consists of only
!    ``component_selector_names``.
  
!    [Rationale: As a result of this rule, accessing the subcomponent can only
!    lead to a discriminant check failure if the subcomponent was not present in
!    the object denoted by the base_expression, prior to any update.]
  
! Dynamic Semantics
! ^^^^^^^^^^^^^^^^^
  
! The evaluation of a ``delta_aggregate`` begins with the evaluation of the
! ``base_expression`` of the delta_aggregate; then that value is used to create
! and initialize the anonymous object of the aggregate. The bounds of the
! anonymous object of an ``array_delta_aggregate`` and the discriminants (if any)
! of the anonymous object of a ``record_delta_aggregate`` are those of the
! ``base_expression``.
  
! If a ``record_delta_aggregate`` is of a specific tagged type, its tag is that
! of the specific type; if it is of a class-wide type, its tag is that of the
! base_expression.
  
! For a ``delta_aggregate``, for each ``discrete_choice`` or each subcomponent
! associated with a ``record_subcomponent_associated``,
! ``array_component_association`` or ``array_subcomponent_association`` (in the
! order given in the enclosing ``discrete_choice_list`` or
! ``subcomponent_association_list``, respectively):
  
! - if the associated subcomponent belongs to a variant, a check is made that the
!   values of the governing discriminants are such that the anonymous object has
!   this component. The exception ``Constraint_Error`` is raised if this check fails.
  
! - if the associated subcomponent is a subcomponent of an array, then for each
!   represented index value (in ascending order, if the ``discrete_choice``
!   represents a range):
  
!     * the index value is converted to the index type of the array type.
  
!     * a check is made that the index value belongs to the index range of the
!       corresponding array part of the anonymous object; ``Constraint_Error`` is
!       raised if this check fails.
! 
!     * the expression of the ``record_subcomponent_association``,
!       ``array_component_association`` or ``array_subcomponent_association`` is
!       evaluated, converted to the nominal subtype of the associated subcomponent,
!       and assigned to the corresponding subcomponent of the anonymous object.
! 
! Examples
! ^^^^^^^^
! 
! .. code-block:: ada
!    :linenos:
! 
!    declare
!       type Point is record
!          X, Y : Integer;
!       end record;
! 
!       type Segment is array (1 .. 2) of Point;
!       type Triangle is array (1 .. 3) of Segment;
! 
!       S : Segment := (1 .. 2 => (0, 0));
!       T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
!    begin
!       S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);
! 
!       pragma Assert (S (1).X = 12);
!       pragma Assert (S (2).Y = 12);
!       pragma Assert (S (1).Y = 15);
! 
!       T := (T with delta (2)(1).Y => 18);
!       pragma Assert (T (2)(1).Y = 18);
!    end;
  
  
  Fixed lower bounds for array types and subtypes
  -----------------------------------------------
*************** the efficiency of indexing operations, s
*** 301,309 ****
  lower bound of unconstrained array formals when the formal's subtype has index
  ranges with static fixed lower bounds.
  
- Link to the original RFC:
- https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-fixed-lower-bound.rst
- 
  Prefixed-view notation for calls to primitive subprograms of untagged types
  ---------------------------------------------------------------------------
  
--- 326,331 ----
*************** appear within parentheses after the name
*** 316,324 ****
  
  This same notation is already available for tagged types. This extension allows
  for untagged types. It is allowed for all primitive operations of the type
! independent of whether they were originally declared in a package spec or its
! private part, or were inherited and/or overridden as part of a derived type
! declaration occuring anywhere, so long as the first parameter is of the type,
  or an access parameter designating the type.
  
  For example:
--- 338,346 ----
  
  This same notation is already available for tagged types. This extension allows
  for untagged types. It is allowed for all primitive operations of the type
! independent of whether they were originally declared in a package spec,
! or were inherited and/or overridden as part of a derived type
! declaration occurring anywhere, so long as the first parameter is of the type,
  or an access parameter designating the type.
  
  For example:
*************** For example:
*** 352,360 ****
      pragma Assert (V.Length = 2);
      pragma Assert (V.Nth_Element(1) = 42);
  
- Link to the original RFC:
- https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-prefixed-untagged.rst
- 
  Expression defaults for generic formal functions
  ------------------------------------------------
  
--- 374,379 ----
*************** Here is an example of this feature:
*** 379,391 ****
         -- ...
      end Stacks;
  
! Link to the original RFC:
! https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-expression-functions-as-default-for-generic-formal-function-parameters.rst
  
  String interpolation
  --------------------
  
  The syntax for string literals is extended to support string interpolation.
  
  Within an interpolated string literal, an arbitrary expression, when
  enclosed in ``{ ... }``, is expanded at run time into the result of calling
--- 398,414 ----
         -- ...
      end Stacks;
  
! If Stacks is instantiated with an explicit actual for Copy,
! then that will be called when Copy is called in the generic body.
! If the default is used (i.e. there is no actual corresponding to Copy),
! then calls to Copy in the instance will simply return Item.
  
  String interpolation
  --------------------
  
  The syntax for string literals is extended to support string interpolation.
+ An interpolated string literal starts with ``f``, immediately before
+ the first double-quote character.
  
  Within an interpolated string literal, an arbitrary expression, when
  enclosed in ``{ ... }``, is expanded at run time into the result of calling
*************** will be evaluated and included in the st
*** 405,410 ****
--- 428,439 ----
        Put_Line (f"The name is {Name} and the sum is {X + Y}.");
     end Test_Interpolation;
  
+ This will print:
+ 
+ .. code-block:: ada
+ 
+     The name is Leo and the sum is 27.
+ 
  In addition, an escape character (``\``) is provided for inserting certain
  standard control characters (such as ``\t`` for tabulation or ``\n`` for
  newline) or to escape characters with special significance to the
*************** escaped_character   meaning
*** 428,436 ****
  ``\}``              ``}``
  =================   =================
  
! Note that, unlike normal string literals, doubled characters have no
  special significance. So to include a double-quote or a brace character
  in an interpolated string, they must be preceded by a ``\``.
  For example:
  
  .. code-block:: ada
--- 457,466 ----
  ``\}``              ``}``
  =================   =================
  
! Note that, unlike normal string literals, doubled double-quote characters have no
  special significance. So to include a double-quote or a brace character
  in an interpolated string, they must be preceded by a ``\``.
+ Multiple interpolated strings are concatenated.
  For example:
  
  .. code-block:: ada
*************** For example:
*** 440,459 ****
         f" a double quote is \" and" &
         f" an open brace is \{");
  
! Finally, a syntax is provided for creating multi-line string literals,
! without having to explicitly use an escape sequence such as ``\n``. For
! example:
  
  .. code-block:: ada
  
!     Put_Line
!       (f"This is a multi-line"
!         "string literal"
!         "There is no ambiguity about how many"
!         "spaces are included in each line");
! 
! Here is a link to the original RFC   :
! https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-string-interpolation.rst
  
  Constrained attribute for generic objects
  -----------------------------------------
--- 470,481 ----
         f" a double quote is \" and" &
         f" an open brace is \{");
  
! This will print:
  
  .. code-block:: ada
  
!       X = 12 and Y = 15 and X+Y = 27
!       a double quote is " and an open brace is {
  
  Constrained attribute for generic objects
  -----------------------------------------
*************** The Ada 202x ``Static`` aspect can be sp
*** 468,498 ****
  and the compiler will evaluate some of these intrinsics statically, in
  particular the ``Shift_Left`` and ``Shift_Right`` intrinsics.
  
  .. _Experimental_Language_Extensions:
  
  Experimental Language Extensions
  ================================
  
! Pragma Storage_Model
! --------------------
  
! This feature proposes to redesign the concepts of Storage Pools into a more
! efficient model allowing higher performances and easier integration with low
! footprint embedded run-times.
  
! It also extends it to support distributed memory models, in particular to
! support interactions with GPU.
  
! Here is a link to the full RFC:
! https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-storage-model.rst
  
! Simpler accessibility model
  ---------------------------
  
! The goal of this feature is to restore a common understanding of accessibility
! rules for implementers and users alike. The new rules should both be effective
! at preventing errors and feel natural and compatible in an Ada environment
! while removing dynamic accessibility checking.
  
! Here is a link to the full RFC:
! https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-simpler-accessibility.md
--- 490,1768 ----
  and the compiler will evaluate some of these intrinsics statically, in
  particular the ``Shift_Left`` and ``Shift_Right`` intrinsics.
  
+ First Controlling Parameter
+ ---------------------------
+ 
+ A new pragma/aspect, ``First_Controlling_Parameter``, is introduced for tagged
+ types, altering the semantics of primitive/controlling parameters. When a
+ tagged type is marked with this aspect, only subprograms where the first
+ parameter is of that type will be considered dispatching primitives. This
+ pragma/aspect applies to the entire hierarchy, starting from the specified
+ type, without affecting inherited primitives.
+ 
+ Here is an example of this feature:
+ 
+ .. code-block:: ada
+ 
+     package Example is
+        type Root is tagged private;
+ 
+        procedure P (V : Integer; V2 : Root);
+        -- Primitive
+ 
+        type Child is tagged private
+          with First_Controlling_Parameter;
+ 
+     private
+        type Root is tagged null record;
+        type Child is new Root with null record;
+ 
+        overriding
+        procedure P (V : Integer; V2 : Child);
+        -- Primitive
+ 
+        procedure P2 (V : Integer; V2 : Child);
+        -- NOT Primitive
+ 
+        function F return Child; -- NOT Primitive
+ 
+        function F2 (V : Child) return Child;
+        -- Primitive, but only controlling on the first parameter
+     end Example;
+ 
+ Note that ``function F2 (V : Child) return Child;`` differs from ``F2 (V : Child)
+ return Child'Class;`` in that the return type is a specific, definite type. This
+ is also distinct from the legacy semantics, where further derivations with
+ added fields would require overriding the function.
+ 
+ The option ``-gnatw_j``, that you can pass to the compiler directly, enables
+ warnings related to this new language feature. For instance, compiling the
+ example above without this switch produces no warnings, but compiling it with
+ ``-gnatw_j`` generates the following warning on the declaration of procedure P2:
+ 
+ .. code-block:: ada
+ 
+     warning: not a dispatching primitive of tagged type "Child"
+     warning: disallowed by First_Controlling_Parameter on "Child"
+ 
+ For generic formal tagged types, you can specify whether the type has the
+ First_Controlling_Parameter aspect enabled:
+ 
+ .. code-block:: ada
+ 
+     generic
+        type T is tagged private with First_Controlling_Parameter;
+     package T is
+         type U is new T with null record;
+         function Foo return U; -- Not a primitive
+     end T;
+ 
+ For tagged partial views, the value of the aspect must be consistent between
+ the partial and full views:
+ 
+ .. code-block:: ada
+ 
+     package R is
+        type T is tagged private;
+     ...
+     private
+        type T is tagged null record with First_Controlling_Parameter; -- ILLEGAL
+     end R;
+ 
+ Restricting the position of controlling parameter offers several advantages:
+ 
+ * Simplification of the dispatching rules improves readability of Ada programs.
+   One doesn't need to analyze all subprogram parameters to understand if the given
+   subprogram is a primitive of a certain tagged type.
+ 
+ * A programmer is free to use any type, including class-wide types, on other
+   parameters of a subprogram, without the need to consider possible effects of
+   overriding a primitive or creating new one.
+ 
+ * The result of a function is never a controlling result.
+ 
+ 
  .. _Experimental_Language_Extensions:
  
  Experimental Language Extensions
  ================================
  
! Features activated via ``-gnatX0`` or
! ``pragma Extensions_Allowed (All_Extensions)``.
  
! Conditional when constructs
! ---------------------------
  
! This feature extends the use of ``when`` as a way to condition a control-flow
! related statement, to all control-flow related statements.
  
! To do a conditional return in a procedure the following syntax should be used:
  
! .. code-block:: ada
! 
!    procedure P (Condition : Boolean) is
!    begin
!       return when Condition;
!    end P;
! 
! This will return from the procedure if ``Condition`` is true.
! 
! When being used in a function the conditional part comes after the return value:
! 
! .. code-block:: ada
! 
!    function Is_Null (I : Integer) return Boolean is
!    begin
!       return True when I = 0;
!       return False;
!    end;
! 
! In a similar way to the ``exit when`` a ``goto ... when`` can be employed:
! 
! .. code-block:: ada
! 
!    procedure Low_Level_Optimized is
!       Flags : Bitmapping;
!    begin
!       Do_1 (Flags);
!       goto Cleanup when Flags (1);
! 
!       Do_2 (Flags);
!       goto Cleanup when Flags (32);
! 
!       --  ...
! 
!    <<Cleanup>>
!       --  ...
!    end;
! 
! .. code-block
! 
! To use a conditional raise construct:
! 
! .. code-block:: ada
! 
!    procedure Foo is
!    begin
!       raise Error when Imported_C_Func /= 0;
!    end;
! 
! An exception message can also be added:
! 
! .. code-block:: ada
! 
!    procedure Foo is
!    begin
!       raise Error with "Unix Error"
!         when Imported_C_Func /= 0;
!    end;
! 
! Storage Model
! -------------
! 
! This extends Storage Pools into a more efficient model allowing higher performance,
! easier integration with low footprint embedded run-times and copying data between
! different pools of memory. The latter is especially useful when working with distributed
! memory models, in particular to support interactions with GPU.
! 
! Aspect Storage_Model_Type
! ^^^^^^^^^^^^^^^^^^^^^^^^^^
! 
! A Storage model is a type with a specified ``Storage_Model_Type``
! aspect, e.g.:
! 
! .. code-block:: Ada
! 
!    type A_Model is null record
!       with Storage_Model_Type (...);
! 
! Storage_Model_Type itself accepts six parameters:
! 
! - Address_Type, the type of the address managed by this model. This has to be
!   a scalar type or derived from System.Address.
! - Allocate, a procedure used for allocating memory in this model
! - Deallocate, a procedure used for deallocating memory in this model
! - Copy_To, a procedure used to copy memory from native memory to this model
! - Copy_From, a procedure used to copy memory from this model to native memory
! - Storage_Size, a function returning the amount of memory left
! - Null_Address, a value for the null address value
! 
! By default, Address_Type is System.Address, and the five subprograms
! perform native operations (e.g. the allocator is the native ``new`` allocator).
! Users can decide to specify one or more of these. When an Address_Type is
! specified to be other than System.Address, all of the subprograms have
! to be specified.
! 
! The prototypes of these procedures are as follows:
! 
! .. code-block:: Ada
! 
!    procedure Allocate
!      (Model           : in out A_Model;
!       Storage_Address : out Address_Type;
!       Size            : Storage_Count;
!       Alignment       : Storage_Count);
! 
!    procedure Deallocate
!      (Model           : in out A_Model;
!       Storage_Address : out Address_Type;
!       Size            : Storage_Count;
!       Alignment       : Storage_Count);
! 
!    procedure Copy_To
!      (Model   : in out A_Model;
!       Target  : Address_Type;
!       Source  : System.Address;
!       Size    : Storage_Count);
! 
!    procedure Copy_From
!      (Model  : in out A_Model;
!       Target : System.Address;
!       Source : Address_Type;
!       Size   : Storage_Count);
! 
!    function Storage_Size
!      (Pool : A_Model)
!       return Storage_Count;
! 
! Here's an example of how this could be instantiated in the context of CUDA:
! 
! .. code-block:: Ada
! 
!    package CUDA_Memory is
! 
!       type CUDA_Storage_Model is null record
!          with Storage_Model_Type => (
!             Address_Type => CUDA_Address,
!             Allocate     => CUDA_Allocate,
!             Deallocate   => CUDA_Deallocate,
!             Copy_To      => CUDA_Copy_To,
!             Copy_From    => CUDA_Copy_From,
!             Storage_Size => CUDA_Storage_Size,
!             Null_Address => CUDA_Null_Address
!          );
! 
!       type CUDA_Address is new System.Address;
!       --  We're assuming for now same address size on host and device
! 
!       procedure CUDA_Allocate
!         (Model           : in out CUDA_Storage_Model;
!          Storage_Address : out CUDA_Address;
!          Size            : Storage_Count;
!          Alignment       : Storage_Count);
! 
!       procedure CUDA_Deallocate
!         (Model           : in out CUDA_Storage_Model;
!          Storage_Address : out CUDA_Address;
!          Size            : Storage_Count;
!          Alignment       : Storage_Count);
! 
!       procedure CUDA_Copy_To
!         (Model  : in out CUDA_Storage_Model;
!          Target : CUDA_Address;
!          Source : System.Address;
!          Size   : Storage_Count);
! 
!       procedure CUDA_Copy_From
!         (Model   : in out CUDA_Storage_Model;
!          Target  : System.Address;
!          Source  : CUDA_Address;
!          Size    : Storage_Count);
! 
!       function CUDA_Storage_Size
!         (Pool : CUDA_Storage_Model)
!          return Storage_Count return Storage_Count'Last;
! 
!       CUDA_Null_Address : constant CUDA_Address :=
!          CUDA_Address (System.Null_Address);
! 
!       CUDA_Memory : CUDA_Storage_Model;
! 
!    end CUDA_Memory;
! 
! Aspect Designated_Storage_Model
! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
! 
! A new aspect, Designated_Storage_Model, allows to specify the memory model
! for the objects pointed by an access type. Under this aspect, allocations
! and deallocations will come from the specified memory model instead
! of the standard ones. In addition, if write operations are needed for
! initialization, or if there is a copy of the target object from and to a
! standard memory area, the Copy_To and Copy_From functions will be called.
! It allows to encompass the capabilities of storage pools, e.g.:
! 
! .. code-block:: Ada
! 
!    procedure Main is
!       type Integer_Array is array (Integer range <>) of Integer;
! 
!       type Host_Array_Access is access all Integer_Array;
!       type Device_Array_Access is access Integer_Array
!          with Designated_Storage_Model => CUDA_Memory;
! 
!       procedure Free is new Unchecked_Deallocation
!          (Host_Array_Type, Host_Array_Access);
!       procedure Free is new Unchecked_Deallocation
!          (Device_Array_Type, Device_Array_Access);
! 
!       Host_Array : Host_Array_Access := new Integer_Array (1 .. 10);
! 
!       Device_Array : Device_Array_Access := new Host_Array (1 .. 10);
!       --  Calls CUDA_Storage_Model.Allocate to allocate the fat pointers and
!       --  the bounds, then CUDA_Storage_Model.Copy_In to copy the values of the
!       --  boundaries.
!    begin
!       Host_Array.all := (others => 0);
! 
!       Device_Array.all := Host_Array.all;
!       --  Calls CUDA_Storage_Model.Copy_To to write to the device array from the
!       --  native memory.
! 
!       Host_Array.all := Device_Array.all;
!       --  Calls CUDA_Storage_Model.Copy_From to read from the device array and
!       --  write to native memory.
! 
!       Free (Host_Array);
! 
!       Free (Device_Array);
!       --  Calls CUDA_Storage_Model.Deallocate;
!    end;
! 
! Taking ``'Address`` of an object with a specific memory model returns an object of
! the type of the address for that memory category, which may be different from
! System.Address.
! 
! When copying is performed between two specific memory models, the native memory
! is used as a temporary between the two. E.g.:
! 
! .. code-block:: Ada
! 
!   type Foo_I is access Integer with Designated_Storage_Model => Foo;
!   type Bar_I is access Integer with Designated_Storage_Model => Bar;
! 
!     X : Foo_I := new Integer;
!     Y : Bar_I := new Integer;
!   begin
!     X.all := Y.all;
! 
! conceptually becomes:
! 
! .. code-block:: Ada
! 
!     X : Foo_I := new Integer;
!     T : Integer;
!     Y : Bar_I := new Integer;
!   begin
!     T := Y.all;
!     X.all := T;
! 
! Legacy Storage Pools
! ^^^^^^^^^^^^^^^^^^^^^
! 
! Legacy Storage Pools are now replaced by a Storage_Model_Type.
! They are implemented as follows:
! 
! .. code-block:: Ada
! 
!    type Root_Storage_Pool is abstract
!      new Ada.Finalization.Limited_Controlled with private
!    with Storage_Model_Type => (
!       Allocate     => Allocate,
!       Deallocate   => Deallocate,
!       Storage_Size => Storage_Size
!    );
!    pragma Preelaborable_Initialization (Root_Storage_Pool);
! 
!    procedure Allocate
!      (Pool                     : in out Root_Storage_Pool;
!       Storage_Address          : out System.Address;
!       Size_In_Storage_Elements : System.Storage_Elements.Storage_Count;
!       Alignment                : System.Storage_Elements.Storage_Count)
!    is abstract;
! 
!    procedure Deallocate
!      (Pool                     : in out Root_Storage_Pool;
!       Storage_Address          : System.Address;
!       Size_In_Storage_Elements : System.Storage_Elements.Storage_Count;
!       Alignment                : System.Storage_Elements.Storage_Count)
!    is abstract;
! 
!    function Storage_Size
!      (Pool : Root_Storage_Pool)
!       return System.Storage_Elements.Storage_Count
!    is abstract;
! 
! The legacy notation:
! 
! .. code-block:: Ada
! 
!    type My_Pools is new Root_Storage_Pool with record [...]
! 
!    My_Pool_Instance : Storage_Model_Pool.Storage_Model :=
!       My_Pools'(others => <>);
! 
!    type Acc is access Integer_Array with Storage_Pool => My_Pool;
! 
! can still be accepted as a shortcut for the new syntax.
! 
! Attribute Super
! ---------------
! .. index:: Super
! 
! The ``Super`` attribute can be applied to objects of tagged types in order
! to obtain a view conversion to the most immediate specific parent type.
! 
! It cannot be applied to objects of types without any ancestors.
! 
! .. code-block:: ada
! 
!   type T1 is tagged null record;
!   procedure P (V : T1);
! 
!   type T2 is new T1 with null record;
! 
!   type T3 is new T2 with null record;
!   procedure P (V : T3);
! 
!   procedure Call (
!     V1 : T1'Class;
!     V2 : T2'Class;
!     V3 : T3'Class) is
!   begin
!     V1'Super.P; --  Illegal call as T1 doesn't have any ancestors
!     V2'Super.P; --  Equivalent to "T1 (V).P;", a non-dispatching call
!                 --  to T1's primitive procedure P.
!     V3'Super.P; --  Equivalent to "T2 (V).P;"; Since T2 doesn't
!                 --  override P, a non-dispatching call to T1.P is
!                 --  executed.
!   end;
! 
! Simpler Accessibility Model
  ---------------------------
  
! The goal of this feature is to simplify the accessibility rules by removing
! dynamic accessibility checks that are often difficult to understand and debug.
! The new rules eliminate the need for runtime accessibility checks by imposing
! more conservative legality rules when enabled via a new restriction (see RM 13.12),
! No_Dynamic_Accessibility_Checks, which prevents dangling reference problems
! at compile time.
  
! This restriction has no effect on the user-visible behavior of a program when executed;
! the only effect of this restriction is to enable additional compile-time checks
! (described below) which ensure statically that Ada's dynamic accessibility checks
! will not fail.
! 
! The feature can be activated with ``pragma Restrictions (No_Dynamic_Accessibility_Checks);``.
! As a result, additional compile-time checks are performed; these checks pertain to
! stand-alone objects, subprogram parameters, and function results as described below.
! 
! All of the refined rules are compatible with the [use of anonymous access types in SPARK]
! (http://docs.adacore.com/spark2014-docs/html/lrm/declarations-and-types.html#access-types).
! 
! 
! Stand-alone objects
! ^^^^^^^^^^^^^^^^^^^^
! 
! .. code-block:: ada
! 
!    Var        : access T := ...
!    Var_To_Cst : access constant T := ...
!    Cst        : constant access T := ...
!    Cst_To_Cst : constant access constant T := ...
! 
! In this section, we will refer to a stand-alone object of an anonymous access
! type as an SO.
! 
! When the restriction is in effect, the "statically deeper" relationship
! (see RM 3.10.2(4)) does apply to the type of a SO (contrary to RM 3.10.2(19.2))
! and, for the purposes of compile-time checks, the accessibility level of the
! type of a SO is the accessibility level of that SO.
! This supports many common use-cases without the employment of ``Unchecked_Access``
! while still removing the need for dynamic checks.
! 
! This statically disallows cases that would otherwise require a dynamic accessibility
! check, such as
! 
! .. code-block:: ada
! 
!    type Ref is access all Integer;
!    Ptr : Ref;
!    Good : aliased Integer;
! 
!    procedure Proc is
!       Bad : aliased Integer;
!       Stand_Alone : access Integer;
!    begin
!       if <some condition> then
!          Stand_Alone := Good'Access;
!       else
!          Stand_Alone := Bad'Access;
!       end if;
!       Ptr := Ref (Stand_Alone);
!    end Proc;
! 
! If a No_Dynamic_Accessibility_Checks restriction is in effect, then the otherwise-legal
! type conversion (the right-hand side of the assignment to Ptr) becomes a violation
! of the RM 4.6 rule "The accessibility level of the operand type shall not be
! statically deeper than that of the target type ...".
! 
! Subprogram parameters
! ^^^^^^^^^^^^^^^^^^^^^^
! 
! .. code-block:: ada
! 
!    procedure P (V : access T; X : access constant T);
! 
! 
! In most cases (the exceptions are described below), a No_Dynamic_Accessibility_Checks
! restriction means that the "statically deeper" relationship does apply to the anonymous
! type of an access parameter specifying an access-to-object type (contrary to RM 3.10.2(19.1))
! and, for purposes of compile-time "statically deeper" checks, the accessibility level
! of the type of such a parameter is the accessibility level of the parameter.
! 
! This change (at least as described so far) doesn't affect the caller's side, but on the
! callee's side it means that object designated by a non-null parameter of an anonymous
! access type is treated as having the same accessibility level as a local object declared
! immediately within the called subprogram.
! 
! With the restriction in effect, the otherwise-legal type conversion in the following example
! becomes illegal:
! 
! .. code-block:: ada
! 
!    type Ref is access all Integer;
!    Ptr : Ref;
! 
!    procedure Proc (Param : access Integer) is
!    begin
!       Ptr := Ref (Param);
!    end Proc;
! 
! The aforementioned exceptions have to do with return statements from functions that either
! return the given parameter (in the case of a function whose result type is an anonymous
! access type) or return the given parameter value as an access discriminant of the function
! result (or of some discriminated part thereof). More specifically, the "statically deeper"
! changes described above do not apply for purposes of checking the "shall not be statically
! deeper" rule for access discriminant parts of function results (RM 6.5(5.9)) or in determining
! the legality of an (implicit) type conversion from the anonymous access type of a parameter
! of a function to an anonymous access result type of that function. In order to prevent these
! rule relaxations from introducing the possibility of dynamic accessibility check failures,
! compensating compile-time checks are performed at the call site to prevent cases where
! including the value of an access parameter as part of a function result could make such
! check failures possible (specifically, the discriminant checks of RM 6.5(21) or, in the
! case of an anonymous access result type, the RM 4.6(48) check performed when converting
! to that result type). These compile-time checks are described in the next section.
! 
! From the callee's perspective, the level of anonymous access formal parameters would be
! between the level of the subprogram and the level of the subprogram's locals. This has the effect
! of formal parameters being treated as local to the callee except in:
! 
! * Use as a function result
! * Use as a value for an access discriminant in result object
! * Use as an assignments between formal parameters
! 
! Note that with these more restricted rules we lose track of accessibility levels when assigned to
! local objects thus making (in the example below) the assignment to Node2.Link from Temp below
! compile-time illegal.
! 
! .. code-block:: ada
! 
!    type Node is record
!       Data : Integer;
!       Link : access Node;
!    end record;
! 
!    procedure Swap_Links (Node1, Node2 : in out Node) is
!       Temp : constant access Node := Node1.Link; -- We lose the "association" to Node1
!    begin
!       Node1.Link := Node2.Link; -- Allowed
!       Node2.Link := Temp;       -- Not allowed
!    end;
! 
!    function Identity (N : access Node) return access Node is
!       Local : constant access Node := N;
!    begin
!       if True then
!          return N;              -- Allowed
!       else
!          return Local;          -- Not allowed
!       end if;
!    end;
! 
! Function results
! ^^^^^^^^^^^^^^^^
! 
! .. code-block:: ada
! 
!    function Get (X : Rec) return access T;
! 
! If the result subtype of a function is either an anonymous access (sub)type, a
! class-wide (sub)type, an unconstrained subtype with an access discriminant, or
! a type with an unconstrained subcomponent subtype that has at least one access
! discriminant (this last case is only possible if the access discriminant has a
! default value), then we say that the function result type "might require an
! anonymous-access-part accessibility check". If a function has an access parameter,
! or a parameter whose subtype "might require an anonymous-access-part accessibility
! check", then we say that the each such parameter "might be used to pass in an
! anonymous-access value". If the first of these conditions holds for the result
! subtype of a function and the second condition holds for at least one parameter
! that function, then it is possible that a call to that function could return a
! result that contains anonymous-access values that were passed in via the parameter.
! 
! Given a function call where the result type "might require an anonymous-access-part
! accessibility check" and a formal parameter of that function that "might be used to
! pass in an anonymous-access value", either the type of that formal parameter is an
! anonymous access type or it is not. If it is, and if a No_Dynamic_Access_Checks
! restriction is in effect, then the accessibility level of the type of the actual
! parameter shall be statically known to not be deeper than that of the master of
! the call. If it isn't, then the accessibility level of the actual parameter shall
! be statically known to not be deeper than that of the master of the call.
! 
! Function result example:
! 
! .. code-block:: ada
! 
!    declare
!       type T is record
!          Comp : aliased Integer;
!       end record;
! 
!       function Identity (Param : access Integer) return access Integer is
!       begin
!          return Param;        -- Legal
!       end;
! 
!       function Identity_2 (Param : aliased Integer) return access Integer is
!       begin
!          return Param'Access; -- Legal
!       end;
! 
!       X : access Integer;
!    begin
!       X := Identity (X);      -- Legal
!       declare
!          Y : access Integer;
!          Z : aliased Integer;
!       begin
!          X := Identity (Y);   -- Illegal since Y is too deep
!          X := Identity_2 (Z); -- Illegal since Z is too deep
!       end;
!    end;
! 
! In order to avoid having to expand the definition of "might be used to pass in an
! anonymous-access value" to include any parameter of a tagged type, the
! No_Dynamic_Access_Checks restriction also imposes a requirement that a type extension
! cannot include the explicit definition of an access discriminant.
! 
! Here is an example of one such case of an upward conversion which would lead to a memory leak:
! 
! .. code-block:: ada
! 
!    declare
!       type T is tagged null record;
!       type T2 (Disc : access Integer) is new T with null record; -- Must be illegal
! 
!       function Identity (Param : aliased T'Class) return access Integer is
!       begin
!          return T2 (T'Class (Param)).Disc; -- Here P gets effectively returned and set to X
!       end;
! 
!       X : access Integer;
!    begin
!       declare
!          P : aliased Integer;
!          Y : T2 (P'Access);
!       begin
!          X := Identity (T'Class (Y)); -- Pass local variable P (via Y's discriminant),
!                                     -- leading to a memory leak.
!       end;
!    end;
!    ```
! 
!    Thus we need to make the following illegal to avoid such situations:
! 
!    ```ada
!    package Pkg1 is
!       type T1 is tagged null record;
!       function Func (X1 : T1) return access Integer is (null);
!    end;
! 
!    package Pkg2 is
!       type T2 (Ptr1, Ptr2 : access Integer) is new Pkg1.T1 with null record; -- Illegal
!       ...
!    end;
! 
! In order to prevent upward conversions of anonymous function results (like below), we
! also would need to assure that the level of such a result (from the callee's perspective)
! is statically deeper:
! 
! .. code-block:: ada
! 
!    declare
!       type Ref is access all Integer;
!       Ptr : Ref;
!       function Foo (Param : access Integer) return access Integer is
!       begin
!          return Result : access Integer := Param; do
!             Ptr := Ref (Result); -- Not allowed
!          end return;
!       end;
!    begin
!       declare
!          Local : aliased Integer;
!       begin
!          Foo (Local'Access).all := 123;
!       end;
!    end;
! 
! Case pattern matching
! ---------------------
! 
! The selector for a case statement (but not for a case expression) may
! be of a composite type, subject to some restrictions (described below).
! Aggregate syntax is used for choices of such a case statement; however,
! in cases where a "normal" aggregate would require a discrete value, a
! discrete subtype may be used instead; box notation can also be used to
! match all values.
! 
! Consider this example:
! 
! .. code-block:: ada
! 
!   type Rec is record
!      F1, F2 : Integer;
!   end record;
! 
!   procedure Caser_1 (X : Rec) is
!   begin
!      case X is
!         when (F1 => Positive, F2 => Positive) =>
!            Do_This;
!         when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!            Do_That;
!         when others =>
!             Do_The_Other_Thing;
!      end case;
!   end Caser_1;
! 
! If ``Caser_1`` is called and both components of X are positive, then
! ``Do_This`` will be called; otherwise, if either component is nonnegative
! then ``Do_That`` will be called; otherwise, ``Do_The_Other_Thing`` will be
! called.
! 
! In addition, pattern bindings are supported. This is a mechanism
! for binding a name to a component of a matching value for use within
! an alternative of a case statement. For a component association
! that occurs within a case choice, the expression may be followed by
! ``is <identifier>``. In the special case of a "box" component association,
! the identifier may instead be provided within the box. Either of these
! indicates that the given identifier denotes (a constant view of) the matching
! subcomponent of the case selector.
! 
! .. attention:: Binding is not yet supported for arrays or subcomponents
!    thereof.
! 
! Consider this example (which uses type ``Rec`` from the previous example):
! 
! .. code-block:: ada
! 
!   procedure Caser_2 (X : Rec) is
!   begin
!      case X is
!         when (F1 => Positive is Abc, F2 => Positive) =>
!            Do_This (Abc)
!         when (F1 => Natural is N1, F2 => <N2>) |
!              (F1 => <N2>, F2 => Natural is N1) =>
!            Do_That (Param_1 => N1, Param_2 => N2);
!         when others =>
!            Do_The_Other_Thing;
!      end case;
!   end Caser_2;
! 
! This example is the same as the previous one with respect to determining
! whether ``Do_This``, ``Do_That``, or ``Do_The_Other_Thing`` will be called. But
! for this version, ``Do_This`` takes a parameter and ``Do_That`` takes two
! parameters. If ``Do_This`` is called, the actual parameter in the call will be
! ``X.F1``.
! 
! If ``Do_That`` is called, the situation is more complex because there are two
! choices for that alternative. If ``Do_That`` is called because the first choice
! matched (i.e., because ``X.F1`` is nonnegative and either ``X.F1`` or ``X.F2``
! is zero or negative), then the actual parameters of the call will be (in order)
! ``X.F1`` and ``X.F2``. If ``Do_That`` is called because the second choice
! matched (and the first one did not), then the actual parameters will be
! reversed.
! 
! Within the choice list for single alternative, each choice must define the same
! set of bindings and the component subtypes for for a given identifier must all
! statically match. Currently, the case of a binding for a nondiscrete component
! is not implemented.
! 
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first set shall
! be a proper subset of the second (and the later alternative will not be
! executed if the earlier alternative "matches"). All possible values of the
! composite type shall be covered. The composite type of the selector shall be an
! array or record type that is neither limited nor class-wide. Currently, a "when
! others =>" case choice is required; it is intended that this requirement will
! be relaxed at some point.
! 
! If a subcomponent's subtype does not meet certain restrictions, then the only
! value that can be specified for that subcomponent in a case choice expression
! is a "box" component association (which matches all possible values for the
! subcomponent). This restriction applies if:
! 
! - the component subtype is not a record, array, or discrete type; or
! 
! - the component subtype is subject to a non-static constraint or has a
!   predicate; or:
! 
! - the component type is an enumeration type that is subject to an enumeration
!   representation clause; or
! 
! - the component type is a multidimensional array type or an array type with a
!   nonstatic index subtype.
! 
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually "Capacity exceeded in compiling
! case statement with composite selector type".
! 
! Mutably Tagged Types with Size'Class Aspect
! -------------------------------------------
! 
! The ``Size'Class`` aspect can be applied to a tagged type to specify a size
! constraint for the type and its descendants. When this aspect is specified
! on a tagged type, the class-wide type of that type is considered to be a
! "mutably tagged" type - meaning that objects of the class-wide type can have
! their tag changed by assignment from objects with a different tag.
! 
! Example:
! 
! .. code-block:: ada
! 
!     type Base is tagged null record
!         with Size'Class => 16 * 8;  -- Size in bits (128 bits, or 16 bytes)
! 
!     type Derived_Type is new Base with record
!        Data_Field : Integer;
!     end record;  -- ERROR if Derived_Type exceeds 16 bytes
! 
! Class-wide types with a specified ``Size'Class`` can be used as the type of
! array components, record components, and stand-alone objects.
! 
! .. code-block:: ada
! 
!     Inst : Base'Class;
!     type Array_of_Base is array (Positive range <>) of Base'Class;
! 
! If the ``Size'Class`` aspect is specified for a type ``T``, then every
! specific descendant of ``T`` [redundant: (including ``T``)]
! 
! - shall have a Size that does not exceed the specified value; and
! 
! - shall be undiscriminated; and
! 
! - shall have no composite subcomponent whose subtype is subject to a
!   dynamic constraint; and
! 
! - shall have no interface progenitors; and
! 
! - shall not have a tagged partial view other than a private extension; and
! 
! - shall not have a statically deeper accessibility level than that of ``T``.
! 
! In addition to the places where Legality Rules normally apply (see 12.3),
! these legality rules apply also in the private part and in the body of an
! instance of a generic unit.
! 
! For any subtype ``S`` that is a subtype of a descendant of ``T``, ``S'Class'Size`` is
! defined to yield the specified value [redundant:,  although ``S'Class'Size`` is
! not a static expression].
! 
! A class-wide descendant of a type with a specified ``Size'Class`` aspect is
! defined to be a "mutably tagged" type. Any subtype of a mutably tagged type is,
! by definition, a definite subtype (RM 3.3 notwithstanding). Default
! initialization of an object of such a definite subtype proceeds as for the
! corresponding specific type, except that ``Program_Error`` is raised if the
! specific type is abstract. [In particular, the initial tag of the object is
! that of the corresponding specific type.]
! 
! An object of a tagged type is defined to be "tag-constrained" if it is
! 
! - an object whose type is not mutably tagged; or
! 
! - a constant object; or
! 
! - a view conversion of a tag-constrained object; or
! 
! - a formal ``in out`` or ``out`` parameter whose corresponding
!   actual parameter is tag-constrained.
! 
! In the case of an assignment to a tagged variable that
! is not tag-constrained, no check is performed that the tag of the value of
! the expression is the same as that of the target (RM 5.2 notwithstanding).
! Instead, the tag of the target object becomes that of the source object of
! the assignment.
! An assignment to a composite object similarly copies the tags of any
! subcomponents of the source object that have a mutably-tagged type.
! 
! The ``Constrained`` attribute is defined for any name denoting an object of a
! mutably tagged type (RM 3.7.2 notwithstanding). In this case, the Constrained
! attribute yields the value True if the object is tag-constrained and False
! otherwise.
! 
! Renaming is not allowed (see 8.5.1) for a type conversion having an operand of
! a mutably tagged type ``MT`` and a target type ``TT`` such that ``TT'Class``
! does not cover ``MT``, nor for any part of such an object, nor for any slice
! of such an object. This rule also applies in any context where a name is
! required to be one for which "renaming is allowed" (for example, see RM 12.4).
! 
! A name denoting a view of a variable of a mutably tagged type shall not
! occur as an operative constituent of the prefix of a name denoting a
! prefixed view of a callable entity, except as the callee name in a call to
! the callable entity.
! 
! For a type conversion between two general access types, either both or neither
! of the designated types shall be mutably tagged. For an ``Access`` (or
! ``Unchecked_Access``) attribute reference, the designated type of the type of the
! attribute reference and the type of the prefix of the attribute shall either
! both or neither be mutably tagged.
! 
! The execution of a construct is erroneous if the construct has a constituent
! that is a name denoting a subcomponent of a tagged object and the object's
! tag is changed by this execution between evaluating the name and the last use
! (within this execution) of the subcomponent denoted by the name.
! 
! If the type of a formal parameter is a specific tagged type then the execution
! of the call is erroneous if the tag of the actual is changed while the formal
! parameter exists (that is, before leaving the corresponding callable
! construct).
! 
! Generalized Finalization
! ------------------------
! 
! The ``Finalizable`` aspect can be applied to any record type, tagged or not,
! to specify that it provides the same level of control on the operations of
! initialization, finalization, and assignment of objects as the controlled
! types (see RM 7.6(2) for a high-level overview). The only restriction is
! that the record type must be a root type, in other words not a derived type.
! 
! The aspect additionally makes it possible to specify relaxed semantics for
! the finalization operations by means of the ``Relaxed_Finalization`` setting.
! 
! Example:
! 
! .. code-block:: ada
! 
!     type Ctrl is record
!       Id : Natural := 0;
!     end record
!       with Finalizable => (Initialize           => Initialize,
!                            Adjust               => Adjust,
!                            Finalize             => Finalize,
!                            Relaxed_Finalization => True);
! 
!     procedure Adjust     (Obj : in out Ctrl);
!     procedure Finalize   (Obj : in out Ctrl);
!     procedure Initialize (Obj : in out Ctrl);
! 
! The three procedures have the same profile, taking a single ``in out T``
! parameter.
! 
! We follow the same dynamic semantics as controlled objects:
! 
!  - ``Initialize`` is called when an object of type ``T`` is declared without
!    default expression.
! 
!  - ``Adjust`` is called after an object of type ``T`` is assigned a new value.
! 
!  - ``Finalize`` is called when an object of type ``T`` goes out of scope (for
!    stack-allocated objects) or is explicitly deallocated (for heap-allocated
!    objects). It is also called when on the value being replaced in an
!    assignment.
! 
! However the following differences are enforced by default when compared to the
! current Ada controlled-objects finalization model:
! 
! * No automatic finalization of heap allocated objects: ``Finalize`` is only
!   called when an object is implicitly deallocated. As a consequence, no-runtime
!   support is needed for the implicit case, and no header will be maintained for
!   this in heap-allocated controlled objects.
! 
!   Heap-allocated objects allocated through a nested access type definition will
!   hence **not** be deallocated either. The result is simply that memory will be
!   leaked in those cases.
! 
! * The ``Finalize`` procedure should have have the :ref:`No_Raise_Aspect` specified.
!   If that's not the case, a compilation error will be raised.
! 
! Additionally, two other configuration aspects are added,
! ``Legacy_Heap_Finalization`` and ``Exceptions_In_Finalize``:
! 
! * ``Legacy_Heap_Finalization``: Uses the legacy automatic finalization of
!   heap-allocated objects
! 
! * ``Exceptions_In_Finalize``: Allow users to have a finalizer that raises exceptions
!   **NB!** note that using this aspect introduces execution time penalities.
! 
! .. _No_Raise_Aspect:
! 
! No_Raise aspect
! ----------------
! 
! The ``No_Raise`` aspect can be applied to a subprogram to declare that this subprogram is not
! expected to raise any exceptions. Should an exception still occur during the execution of
! this subprogram, ``Program_Error`` is raised.
! 
! New specification for ``Ada.Finalization.Controlled``
! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
! 
! ``Ada.Finalization.Controlled`` is now specified as:
! 
! .. code-block:: ada
! 
!    type Controlled is abstract tagged null record
!       with Initialize => Initialize,
!          Adjust => Adjust,
!          Finalize => Finalize,
!          Legacy_Heap_Finalization, Exceptions_In_Finalize;
! 
!          procedure Initialize (Self : in out Controlled) is abstract;
!          procedure Adjust (Self : in out Controlled) is abstract;
!          procedure Finalize (Self : in out Controlled) is abstract;
! 
! 
! ### Examples
! 
! A simple example of a ref-counted type:
! 
! .. code-block:: ada
! 
!    type T is record
!       Value : Integer;
!       Ref_Count : Natural := 0;
!    end record;
! 
!    procedure Inc_Ref (X : in out T);
!    procedure Dec_Ref (X : in out T);
! 
!    type T_Access is access all T;
! 
!    type T_Ref is record
!       Value : T_Access;
!    end record
!       with Adjust   => Adjust,
!          Finalize => Finalize;
! 
!    procedure Adjust (Ref : in out T_Ref) is
!    begin
!       Inc_Ref (Ref.Value);
!    end Adjust;
! 
!    procedure Finalize (Ref : in out T_Ref) is
!    begin
!       Def_Ref (Ref.Value);
!    end Finalize;
! 
! 
! A simple file handle that ensures resources are properly released:
! 
! .. code-block:: ada
! 
!    package P is
!       type File (<>) is limited private;
! 
!       function Open (Path : String) return File;
! 
!       procedure Close (F : in out File);
!    private
!       type File is limited record
!          Handle : ...;
!       end record
!          with Finalize => Close;
! 
! 
! Finalized tagged types
! ^^^^^^^^^^^^^^^^^^^^^^^
! 
! Aspects are inherited by derived types and optionally overriden by those. The
! compiler-generated calls to the user-defined operations are then
! dispatching whenever it makes sense, i.e. the object in question is of
! class-wide type and the class includes at least one finalized tagged type.
! 
! However note that for simplicity, it is forbidden to change the value of any of
! those new aspects in derived types.
! 
! Composite types
! ^^^^^^^^^^^^^^^
! 
! When a finalized type is used as a component of a composite type, the latter
! becomes finalized as well. The three primitives are derived automatically
! in order to call the primitives of their components.
! 
! If that composite type was already user-finalized, then the compiler
! calls the primitives of the components so as to stay consistent with today's
! controlled types's behavior.
! 
! So, ``Initialize`` and ``Adjust`` are called on components before they
! are called on the composite object, but ``Finalize`` is  called on the composite
! object first.
! 
! Interoperability with controlled types
! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
! 
! As a consequence of the redefinition of the ``Controlled`` type as a base type
! with the new aspects defined, interoperability with controlled type naturally
! follows the definition of the above rules. In particular:
! 
! * It is possible to have a new finalized type have a controlled type
!   component
! * It is possible to have a controlled type have a finalized type
!   component
! 
! 
! Inference of Dependent Types in Generic Instantiations
! ------------------------------------------------------
! 
! If a generic formal type T2 depends on another formal type T1,
! the actual for T1 can be inferred from the actual for T2.
! That is, you can give the actual for T2, and leave out the one
! for T1.
! 
! For example, ``Ada.Unchecked_Deallocation`` has two generic formals:
! 
! .. code-block:: ada
! 
!    generic
!       type Object (<>) is limited private;
!       type Name is access Object;
!    procedure Ada.Unchecked_Deallocation (X : in out Name);
! 
! where ``Name`` depends on ``Object``. With this language extension,
! you can leave out the actual for ``Object``, as in:
! 
! .. code-block:: ada
! 
!    type Integer_Access is access all Integer;
! 
!    procedure Free is new Unchecked_Deallocation (Name => Integer_Access);
! 
! The compiler will infer that the actual type for ``Object`` is ``Integer``.
! Note that named notation is always required when using inference.
! 
! The following inferences are allowed:
! 
! - For a formal access type, the designated type can be inferred.
! 
! - For a formal array type, the index type(s) and the component
!   type can be inferred.
! 
! - For a formal type with discriminants, the type(s) of the discriminants
!   can be inferred.
! 
! Example for arrays:
! 
! .. code-block:: ada
! 
!    generic
!       type Element_Type is private;
!       type Index_Type is (<>);
!       type Array_Type is array (Index_Type range <>) of Element_Type;
!    package Array_Operations is
!       ...
!    end Array_Operations;
! 
!    ...
! 
!    type Int_Array is array (Positive range <>) of Integer;
! 
!    package Int_Array_Operations is new Array_Operations (Array_Type => Int_Array);
! 
! The index and component types of ``Array_Type`` are inferred from
! ``Int_Array``, so that the above instantiation is equivalent to
! the following standard-Ada instantiation:
! 
! .. code-block:: ada
! 
!    package Int_Array_Operations is new Array_Operations
!       (Element_Type => Integer,
!          Index_Type   => Positive,
!          Array_Type   => Int_Array);
! 
! 
! External_Initialization Aspect
! ------------------------------
! 
! The ``External_Initialization`` aspect provides a feature similar to Rust's ``include_bytes!``
! and to C23's ``#embed``. It has the effect of initializing an object with the contents of
! a file specified by a file path.
! 
! Only string objects and objects of type ``Ada.Streams.Stream_Element_Array`` can be subject
! to the ``External_Initialization`` aspect.
! 
! Example:
! 
! .. code-block:: ada
! 
!    with Ada.Streams;
! 
!    package P is
!       S : constant String with External_Initialization => "foo.txt";
! 
!       X : constant Ada.Streams.Stream_Element_Array with External_Initialization => "bar.bin";
!    end P;
! 
! ``External_Initialization`` aspect accepts the following parameters:
! 
! - mandatory ``Path``: the path the compiler uses to access the binary resource.
! 
! If ``Path`` is a relative path, it is interpreted relatively to the directory of the file that contains the aspect specification.
! 
! .. attention:: The maximum size of loaded files is limited to 2\ :sup:`31` bytes.
! 
! 
! Finally construct
! -----------------
! 
! The ``finally`` keyword makes it possible to have a sequence of statements be executed when
! another sequence of statements is completed, whether normally or abnormally.
! 
! This feature is similar to the one with the same name in other languages such as Java.
! 
! Syntax
! ^^^^^^
! 
! .. code-block:: text
! 
!    handled_sequence_of_statements ::=
!         sequence_of_statements
!      [exception
!         exception_handler
!        {exception_handler}]
!      [finally
!        sequence_of_statements]
! 
! Legality Rules
! ^^^^^^^^^^^^^^
! 
! Return statements in the ``sequence_of_statements`` attached to the finally that would cause control
! to be transferred outside the finally part are forbidden.
! 
! Goto & exit where the target is outside of the finally's ``sequence_of_statements`` are forbidden
! 
! Dynamic Semantics
! ^^^^^^^^^^^^^^^^^
! 
! Statements in the optional ``sequence_of_statements`` contained in the ``finally`` branch will be
! executed unconditionally, after the main ``sequence_of_statements`` is executed, and after any
! potential ``exception_handler`` is executed.
! 
! If an exception is raised in the finally part, it cannot be caught by the ``exception_handler``.
! 
! Abort/ATC (asynchronous transfer of control) cannot interrupt a finally block, nor prevent its
! execution, that is the finally block must be executed in full even if the containing task is
! aborted, or if the control is transferred out of the block.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_advice.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_advice.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_advice.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_advice.rst	Fri Apr 25 08:18:00 2025
*************** RM 13.1 (21-24): Representation Clauses
*** 302,315 ****
  Followed.  In fact, GNAT goes beyond the recommended level of support
  by allowing nonstatic expressions in some representation clauses even
  without the need to declare constants initialized with the values of
! such expressions.
! For example:
  
  .. code-block:: ada
  
      X : Integer;
      Y : Float;
!     for Y'Address use X'Address;>>
  
  
    "An implementation need not support a specification for the ``Size``
--- 302,316 ----
  Followed.  In fact, GNAT goes beyond the recommended level of support
  by allowing nonstatic expressions in some representation clauses even
  without the need to declare constants initialized with the values of
! such expressions. For example:
  
  .. code-block:: ada
  
      X : Integer;
      Y : Float;
!     for Y'Address use X'Address;
! 
! is accepted directly by GNAT.
  
  
    "An implementation need not support a specification for the ``Size``
*************** RM 13.5.3(7-8): Bit Ordering
*** 585,596 ****
  
    "The recommended level of support for the non-default bit ordering is:
  
!   If ``Word_Size`` = ``Storage_Unit``, then the implementation
!   should support the non-default bit ordering in addition to the default
!   bit ordering."
  
! Followed.  Word size does not equal storage size in this implementation.
! Thus non-default bit ordering is not supported.
  
  .. index:: Address, as private type
  
--- 586,595 ----
  
    "The recommended level of support for the non-default bit ordering is:
  
!   The implementation should support the nondefault bit ordering in addition
!   to the default bit ordering."
  
! Followed.
  
  .. index:: Address, as private type
  
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Fri Apr 25 08:18:00 2025
*************** with a specific postcondition.
*** 255,260 ****
--- 255,272 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.9.
  
+ Aspect Exit_Cases
+ =================
+ .. index:: Exit_Cases
+ 
+ This aspect may be specified for procedures and functions with side effects;
+ it can be used to partition the input state into a list of cases and specify,
+ for each case, how the subprogram is allowed to terminate (i.e. return normally
+ or propagate an exception).
+ 
+ For the syntax and semantics of this aspect, see the SPARK 2014 Reference
+ Manual, section 6.1.10.
+ 
  Aspect Extensions_Visible
  =========================
  .. index:: Extensions_Visible
*************** Aspect No_Inline
*** 473,478 ****
--- 485,496 ----
  
  This boolean aspect is equivalent to :ref:`pragma No_Inline<Pragma-No_Inline>`.
  
+ Aspect No_Raise
+ ===============
+ .. index:: No_Raise
+ 
+ This boolean aspect is equivalent to :ref:`pragma No_Raise<Pragma-No_Raise>`.
+ 
  Aspect No_Tagged_Streams
  ========================
  .. index:: No_Tagged_Streams
*************** Aspect Remote_Access_Type
*** 574,579 ****
--- 592,603 ----
  
  This aspect is equivalent to :ref:`pragma Remote_Access_Type<Pragma-Remote_Access_Type>`.
  
+ Aspect Scalar_Storage_Order
+ ===========================
+ .. index:: Scalar_Storage_Order
+ 
+ This aspect is equivalent to a :ref:`attribute Scalar_Storage_Order<Attribute-Scalar_Storage_Order>`.
+ 
  Aspect Secondary_Stack_Size
  ===========================
  
*************** Aspect Secondary_Stack_Size
*** 581,593 ****
  
  This aspect is equivalent to :ref:`pragma Secondary_Stack_Size<Pragma-Secondary_Stack_Size>`.
  
- 
- Aspect Scalar_Storage_Order
- ===========================
- .. index:: Scalar_Storage_Order
- 
- This aspect is equivalent to a :ref:`attribute Scalar_Storage_Order<Attribute-Scalar_Storage_Order>`.
- 
  Aspect Shared
  =============
  .. index:: Shared
--- 605,610 ----
*************** This aspect is equivalent to :ref:`pragm
*** 621,626 ****
--- 638,650 ----
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
+ Aspect Subprogram_Variant
+ =========================
+ .. index:: Subprogram_Variant
+ 
+ For the syntax and semantics of this aspect, see the SPARK 2014 Reference
+ Manual, section 6.1.8.
+ 
  Aspect Suppress_Debug_Info
  ==========================
  .. index:: Suppress_Debug_Info
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Fri Apr 25 08:18:00 2025
*************** Attribute Atomic_Always_Lock_Free
*** 81,90 ****
  =================================
  .. index:: Atomic_Always_Lock_Free
  
! The prefix of the ``Atomic_Always_Lock_Free`` attribute is a type.
! The result is a Boolean value which is True if the type has discriminants,
! and False otherwise.  The result indicate whether atomic operations are
! supported by the target for the given type.
  
  Attribute Bit
  =============
--- 81,89 ----
  =================================
  .. index:: Atomic_Always_Lock_Free
  
! The prefix of the ``Atomic_Always_Lock_Free`` attribute is a type. The
! result indicates whether atomic operations are supported by the target
! for the given type.
  
  Attribute Bit
  =============
*************** uninitialized value of the type if pragm
*** 566,577 ****
  including the ability to modify the value with the binder -Sxx flag and
  relevant environment variables at run time.
  
- Attribute Iterable
- ==================
- .. index:: Iterable
- 
- Equivalent to Aspect Iterable.
- 
  Attribute Large
  ===============
  .. index:: Ada 83 attributes
--- 565,570 ----
*************** is used to refer to the result of the fu
*** 918,923 ****
--- 911,924 ----
  For a further discussion of the use of this attribute and examples of its use,
  see the description of pragma Postcondition.
  
+ Attribute Round
+ =====================
+ .. index:: Round
+ 
+ In addition to the usage of this attribute in the Ada RM, GNAT
+ also permits the use of the ``'Round`` attribute for ordinary
+ fixed point types.
+ 
  Attribute Safe_Emax
  ===================
  .. index:: Ada 83 attributes
*************** has returned, such calls are erroneous.
*** 1381,1387 ****
  
    package body P is
  
!      type Less_Nested is not null access procedure;
       Global : Less_Nested;
  
       procedure P1 is
--- 1382,1388 ----
  
    package body P is
  
!      type Less_Nested is access procedure;
       Global : Less_Nested;
  
       procedure P1 is
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Fri Apr 25 08:18:00 2025
*************** via compiler switches such as "-gnata".
*** 478,488 ****
  *
    "Implementation-defined check names.  See 11.5(27)."
  
! The implementation defined check names include Alignment_Check,
! Atomic_Synchronization, Duplicated_Tag_Check, Container_Checks,
! Tampering_Check, Predicate_Check, and Validity_Check. In addition, a user
! program can add implementation-defined check names by means of the pragma
! Check_Name. See the description of pragma ``Suppress`` for full details.
  
  *
    "Existence and meaning of second parameter of pragma Unsuppress.
--- 478,489 ----
  *
    "Implementation-defined check names.  See 11.5(27)."
  
! The implementation-defined check names include Alignment_Check,
! Container_Checks, Duplicated_Tag_Check, Predicate_Check,
! Raise_Check, Tampering_Check, and Validity_Check. In addition, a
! user program can add implementation-defined check names by means
! of the pragma Check_Name. See the description of pragma
! ``Suppress`` for details.
  
  *
    "Existence and meaning of second parameter of pragma Unsuppress.
*************** which contains a pointer to the dispatch
*** 554,562 ****
    "If ``Word_Size`` = ``Storage_Unit``, the default bit
    ordering.  See 13.5.3(5)."
  
! ``Word_Size`` (32) is not the same as ``Storage_Unit`` (8) for this
! implementation, so no non-default bit ordering is supported.  The default
! bit ordering corresponds to the natural endianness of the target architecture.
  
  *
    "The contents of the visible part of package ``System``.  See 13.7(2)."
--- 555,561 ----
    "If ``Word_Size`` = ``Storage_Unit``, the default bit
    ordering.  See 13.5.3(5)."
  
! ``Word_Size`` does not equal ``Storage_Unit`` in this implementation.
  
  *
    "The contents of the visible part of package ``System``.  See 13.7(2)."
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Fri Apr 25 08:18:00 2025
*************** Syntax:
*** 341,347 ****
    pragma Always_Terminates [ (boolean_EXPRESSION) ];
  
  For the semantics of this pragma, see the entry for aspect ``Always_Terminates``
! in the SPARK 2014 Reference Manual, section 7.1.2.
  
  .. _Pragma-Annotate:
  
--- 341,347 ----
    pragma Always_Terminates [ (boolean_EXPRESSION) ];
  
  For the semantics of this pragma, see the entry for aspect ``Always_Terminates``
! in the SPARK 2014 Reference Manual, section 6.1.11.
  
  .. _Pragma-Annotate:
  
*************** Syntax:
*** 1662,1679 ****
  
    pragma Disable_Atomic_Synchronization [(Entity)];
  
  
  Ada requires that accesses (reads or writes) of an atomic variable be
  regarded as synchronization points in the case of multiple tasks.
  Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This capability may
! be turned off using this pragma in cases where it is known not to be
! required.
  
! The placement and scope rules for this pragma are the same as those
! for ``pragma Suppress``. In particular it can be used as a
! configuration  pragma, or in a declaration sequence where it applies
! till the end of the scope. If an ``Entity`` argument is present,
  the action applies only to that entity.
  
  Pragma Dispatching_Domain
--- 1662,1681 ----
  
    pragma Disable_Atomic_Synchronization [(Entity)];
  
+   pragma Enable_Atomic_Synchronization [(Entity)];
  
  Ada requires that accesses (reads or writes) of an atomic variable be
  regarded as synchronization points in the case of multiple tasks.
  Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This synchronization
! is performed by default, but can be turned off using pragma
! ``Disable_Atomic_Synchronization``.
! The ``Enable_Atomic_Synchronization`` pragma turns it back on.
  
! The placement and scope rules for these pragmas are the same as those
! for ``pragma Suppress``. In particular they can be used as
! configuration pragmas, or in a declaration sequence where they apply
! until the end of the scope. If an ``Entity`` argument is present,
  the action applies only to that entity.
  
  Pragma Dispatching_Domain
*************** Syntax:
*** 1903,1923 ****
  
    pragma Enable_Atomic_Synchronization [(Entity)];
  
! 
! Ada requires that accesses (reads or writes) of an atomic variable be
! regarded as synchronization points in the case of multiple tasks.
! Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This synchronization
! is performed by default, but can be turned off using
! ``pragma Disable_Atomic_Synchronization``. The
! ``Enable_Atomic_Synchronization`` pragma can be used to turn
! it back on.
! 
! The placement and scope rules for this pragma are the same as those
! for ``pragma Unsuppress``. In particular it can be used as a
! configuration  pragma, or in a declaration sequence where it applies
! till the end of the scope. If an ``Entity`` argument is present,
! the action applies only to that entity.
  
  Pragma Exceptional_Cases
  ========================
--- 1905,1912 ----
  
    pragma Enable_Atomic_Synchronization [(Entity)];
  
! Reenables atomic synchronization; see ``pragma Disable_Atomic_Synchronization``
! for details.
  
  Pragma Exceptional_Cases
  ========================
*************** Syntax:
*** 1937,1942 ****
--- 1926,1951 ----
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
  6.1.9.
  
+ Pragma Exit_Cases
+ =================
+ .. index:: Exit_Cases
+ 
+ Syntax:
+ 
+ ::
+ 
+   pragma Exit_Cases (EXIT_CASE_LIST);
+ 
+   EXIT_CASE_LIST ::= EXIT_CASE {, EXIT_CASE}
+   EXIT_CASE      ::= GUARD => EXIT_KIND
+   EXIT_KIND      ::= Normal_Return
+                    | Exception_Raised
+ 		   | (Exception_Raised => exception_name)
+   GUARD          ::= Boolean_expression
+ 
+ For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
+ 6.1.10.
+ 
  Pragma Export_Function
  ======================
  .. index:: Argument passing mechanisms
*************** Syntax:
*** 2208,2226 ****
  
  .. code-block:: ada
  
!   pragma Extensions_Allowed (On | Off | All);
  
  
! This configuration pragma enables (via the "On" or "All" argument) or disables
! (via the "Off" argument) the implementation extension mode; the pragma takes
! precedence over the ``-gnatX`` and ``-gnatX0`` command switches.
  
  If an argument of ``"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:`here<Curated_Language_Extensions>`)
  
! An argument of ``"All"`` has the same effect except that some extra
  experimental extensions are enabled (See the list here
  :ref:`here<Experimental_Language_Extensions>`)
  
--- 2217,2235 ----
  
  .. code-block:: ada
  
!   pragma Extensions_Allowed (On | Off | All_Extensions);
  
  
! This configuration pragma enables (via the "On" or "All_Extensions" argument)
! or disables (via the "Off" argument) the implementation extension mode; the
! pragma takes precedence over the ``-gnatX`` and ``-gnatX0`` command switches.
  
  If an argument of ``"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:`here<Curated_Language_Extensions>`)
  
! An argument of ``"All_Extensions"`` has the same effect except that some extra
  experimental extensions are enabled (See the list here
  :ref:`here<Experimental_Language_Extensions>`)
  
*************** Syntax:
*** 2381,2387 ****
  
  .. code-block:: ada
  
!   pragma Favor_Top_Level (type_NAME);
  
  
  The argument of pragma ``Favor_Top_Level`` must be a named access-to-subprogram
--- 2390,2396 ----
  
  .. code-block:: ada
  
!   pragma Favor_Top_Level (type_LOCAL_NAME);
  
  
  The argument of pragma ``Favor_Top_Level`` must be a named access-to-subprogram
*************** Syntax:
*** 2838,2844 ****
  
  .. code-block:: ada
  
!   pragma Independent (Local_NAME);
  
  
  This pragma is standard in Ada 2012 mode (which also provides an aspect
--- 2847,2853 ----
  
  .. code-block:: ada
  
!   pragma Independent (component_LOCAL_NAME);
  
  
  This pragma is standard in Ada 2012 mode (which also provides an aspect
*************** Overriding the default state of signals
*** 3185,3190 ****
--- 3194,3212 ----
  with an application's runtime behavior in the cases of the synchronous signals,
  and in the case of the signal used to implement the ``abort`` statement.
  
+ Pragma Interrupts_System_By_Default
+ ===================================
+ 
+ Syntax:
+ 
+ 
+ ::
+ 
+   pragma Interrupts_System_By_Default;
+ 
+ Default all interrupts to the System state as defined above in pragma
+ ``Interrupt_State``. This is a configuration pragma.
+ 
  .. _Pragma-Invariant:
  
  Pragma Invariant
*************** Pragma Lock_Free
*** 3537,3542 ****
--- 3559,3569 ----
  ================
  
  Syntax:
+ 
+ .. code-block:: ada
+ 
+   pragma Lock_Free [ (static_boolean_EXPRESSION) ];
+ 
  This pragma may be specified for protected types or objects. It specifies that
  the implementation of protected operations must be implemented without locks.
  Compilation fails if the compiler cannot generate lock-free code for the
*************** Pragma Max_Queue_Length
*** 3766,3772 ****
  
  Syntax::
  
!    pragma Max_Entry_Queue (static_integer_EXPRESSION);
  
  
  This pragma is used to specify the maximum callers per entry queue for
--- 3793,3799 ----
  
  Syntax::
  
!    pragma Max_Queue_Length (static_integer_EXPRESSION);
  
  
  This pragma is used to specify the maximum callers per entry queue for
*************** same name) that establishes the restrict
*** 3850,3856 ****
  the current unit and any extended main source units (body and subunits).
  It also has the effect of enforcing a transitive application of this
  aspect, so that if any unit is implicitly or explicitly with'ed by the
! current unit, it must also have the No_Elaboration_Code_All aspect set.
  It may be applied to package or subprogram specs or their generic versions.
  
  Pragma No_Heap_Finalization
--- 3877,3883 ----
  the current unit and any extended main source units (body and subunits).
  It also has the effect of enforcing a transitive application of this
  aspect, so that if any unit is implicitly or explicitly with'ed by the
! current unit, it must also have the `No_Elaboration_Code_All` aspect set.
  It may be applied to package or subprogram specs or their generic versions.
  
  Pragma No_Heap_Finalization
*************** in particular it is not subject to the u
*** 3905,3910 ****
--- 3932,3956 ----
  *-gnatN*.  It is illegal to specify both pragma ``No_Inline`` and
  pragma ``Inline_Always`` for the same ``NAME``.
  
+ .. _Pragma-No_Raise:
+ 
+ Pragma No_Raise
+ ===============
+ 
+ Syntax:
+ 
+ 
+ ::
+ 
+   pragma No_Raise (subprogram_LOCAL_NAME {, subprogram_LOCAL_NAME});
+ 
+ 
+ Each ``subprogram_LOCAL_NAME`` argument must refer to one or more subprogram
+ declarations in the current declarative part.  A subprogram to which this
+ pragma is applied may not raise an exception that is not caught within it.
+ An implementation-defined check named `Raise_Check` is associated with the
+ pragma, and `Program_Error` is raised upon its failure (see RM 11.5(19/5)).
+ 
  Pragma No_Return
  ================
  
*************** Syntax:
*** 4508,4514 ****
  
  ::
  
!   pragma Persistent_BSS [(LOCAL_NAME)]
  
  
  This pragma allows selected objects to be placed in the ``.persistent_bss``
--- 4554,4560 ----
  
  ::
  
!   pragma Persistent_BSS [(object_LOCAL_NAME)]
  
  
  This pragma allows selected objects to be placed in the ``.persistent_bss``
*************** Syntax:
*** 5862,5868 ****
    pragma Side_Effects [ (static_boolean_EXPRESSION) ];
  
  For the semantics of this pragma, see the entry for aspect
! ``Side_Effects`` in the SPARK Reference Manual, section 6.1.11.
  
  .. _Pragma-Simple_Storage_Pool_Type:
  
--- 5908,5914 ----
    pragma Side_Effects [ (static_boolean_EXPRESSION) ];
  
  For the semantics of this pragma, see the entry for aspect
! ``Side_Effects`` in the SPARK Reference Manual, section 6.1.12.
  
  .. _Pragma-Simple_Storage_Pool_Type:
  
*************** activated.  These are additive, so they
*** 6291,6311 ****
  set style check options.  The codes for the options are the same as those
  used in the *-gnaty* switch to *gcc* or *gnatmake*.
  For example the following two methods can be used to enable
! layout checking:
  
  *
  
!   ::
  
      pragma Style_Checks ("l");
! 
  
  *
  
    ::
  
!     gcc -c -gnatyl ...
  
  
  The form ``ALL_CHECKS`` activates all standard checks (its use is equivalent
  to the use of the :switch:`gnaty` switch with no options.
--- 6337,6427 ----
  set style check options.  The codes for the options are the same as those
  used in the *-gnaty* switch to *gcc* or *gnatmake*.
  For example the following two methods can be used to enable
! layout checking and to change the maximum nesting level value:
  
  *
  
!   .. code-block:: ada
  
+     --  switch on layout checks
      pragma Style_Checks ("l");
!     --  set the number of maximum allowed nesting levels to 15
!     pragma Style_Checks ("L15");
  
  *
  
    ::
  
!     gcc -c -gnatyl -gnatyL15 ...
! 
! 
! The string literal values can be cumulatively switched on and off by prefixing
! the value with ``+`` or ``-``, where:
! 
! * ``+`` is equivalent to no prefix. It applies the check referenced by the
!   literal value;
! * ``-`` switches the referenced check off.
! 
! 
! .. code-block:: ada
!   :linenos:
!   :emphasize-lines: 15
! 
!   --  allow misaligned block by disabling layout check
!   pragma Style_Checks ("-l");
!   declare
!       msg : constant String := "Hello";
!   begin
!       Put_Line (msg);
!       end;
! 
!   --  enable the layout check again
!   pragma Style_Checks ("l");
!   declare
!       msg : constant String := "Hello";
!   begin
!       Put_Line (msg);
!       end;
  
+ The code above contains two layout errors, however, only
+ the last line is picked up by the compiler.
+ 
+ Similarly, the switches containing a numeric value can be applied in sequence.
+ In the example below, the permitted nesting level is reduced in in the middle
+ block and the compiler raises a warning on the highlighted line.
+ 
+ .. code-block:: ada
+   :linenos:
+   :emphasize-lines: 15
+ 
+   -- Permit 3 levels of nesting
+   pragma Style_Checks ("L3");
+ 
+   procedure Main is
+   begin
+       if True then
+         if True then
+             null;
+         end if;
+       end if;
+       --  Reduce permitted nesting levels to 2.
+       --  Note that "+L2" and "L2" are equivalent.
+       pragma Style_Checks ("+L2");
+       if True then
+         if True then
+             null;
+         end if;
+       end if;
+       --  Disable checking permitted nesting levels.
+       --  Note that the number after "-L" is insignificant,
+       --  "-L", "-L3" and "-Lx" are all equivalent.
+       pragma Style_Checks ("-L3");
+       if True then
+         if True then
+             null;
+         end if;
+       end if;
+   end Main;
  
  The form ``ALL_CHECKS`` activates all standard checks (its use is equivalent
  to the use of the :switch:`gnaty` switch with no options.
*************** The forms with ``Off`` and ``On``
*** 6319,6325 ****
  can be used to temporarily disable style checks
  as shown in the following example:
  
- 
  .. code-block:: ada
  
    pragma Style_Checks ("k"); -- requires keywords in lower case
--- 6435,6440 ----
*************** for the specified entity, as shown in th
*** 6342,6347 ****
--- 6457,6492 ----
    pragma Style_Checks (Off, Arg);
    Rf2 : Integer := ARG;      -- OK, no error
  
+ Pragma Subprogram_Variant
+ =========================
+ .. index:: Subprogram_Variant
+ 
+ Syntax:
+ 
+ 
+ ::
+ 
+   pragma Subprogram_Variant (SUBPROGRAM_VARIANT_LIST);
+ 
+   SUBPROGRAM_VARIANT_LIST ::=
+     STRUCTURAL_SUBPROGRAM_VARIANT_ITEM
+   | NUMERIC_SUBPROGRAM_VARIANT_ITEMS
+ 
+   NUMERIC_SUBPROGRAM_VARIANT_ITEMS ::=
+     NUMERIC_SUBPROGRAM_VARIANT_ITEM {, NUMERIC_SUBPROGRAM_VARIANT_ITEM}
+ 
+   NUMERIC_SUBPROGRAM_VARIANT_ITEM ::=
+     CHANGE_DIRECTION => EXPRESSION
+ 
+   STRUCTURAL_SUBPROGRAM_VARIANT_ITEM ::=
+     STRUCTURAL => EXPRESSION
+ 
+   CHANGE_DIRECTION ::= Increases | Decreases
+ 
+ The ``Subprogram_Variant`` pragma is intended to be an exact replacement for
+ the implementation-defined ``Subprogram_Variant`` aspect, and shares its
+ restrictions and semantics.
+ 
  
  Pragma Subtitle
  ===============
*************** Syntax:
*** 6500,6511 ****
  
  ::
  
!   pragma Suppress_Initialization ([Entity =>] variable_or_subtype_Name);
  
  
! Here variable_or_subtype_Name is the name introduced by a type declaration
! or subtype declaration or the name of a variable introduced by an
! object declaration.
  
  In the case of a type or subtype
  this pragma suppresses any implicit or explicit initialization
--- 6645,6656 ----
  
  ::
  
!   pragma Suppress_Initialization ([Entity =>] variable_or_subtype_LOCAL_NAME);
  
  
! Here variable_or_subtype_LOCAL_NAME is the name introduced by a type
! declaration or subtype declaration or the name of a variable introduced by
! an object declaration.
  
  In the case of a type or subtype
  this pragma suppresses any implicit or explicit initialization
*************** Syntax:
*** 6889,6910 ****
  
  
  This configuration pragma defines a new aspect, making it available for
! subsequent use in a User_Aspect aspect specification. The first
! identifier is the name of the new aspect. Any subsequent arguments
! specify the names of other aspects. A subsequent name for which no parenthesized
! arguments are given shall denote either a Boolean-valued
! non-representation aspect or an aspect that has been defined by another
! User_Aspect_Definition pragma. A name for which one or more arguments are
! given shall be either Annotate or Local_Restrictions (and the arguments shall
! be appropriate for the named aspect). This pragma, together with the
! User_Aspect aspect, provides a mechanism for
! avoiding textual duplication if some set of aspect specifications is needed
! in multiple places. This is somewhat analogous to how profiles allow avoiding
! duplication of Restrictions pragmas. The visibility rules for an aspect
! defined by a User_Aspect_Definition pragma are the same as for a check name
! introduced by a Check_Name pragma. If multiple
! definitions are visible for some aspect at some point, then the
! definitions must agree. A predefined aspect cannot be redefined.
  
  
  Pragma Unimplemented_Unit
--- 7034,7057 ----
  
  
  This configuration pragma defines a new aspect, making it available for
! subsequent use in a `User_Aspect` aspect specification. The first identifier
! is the name of the new aspect. Any subsequent arguments specify the names
! of other aspects. A subsequent name for which no parenthesized arguments
! are given shall denote either a Boolean-valued non-representation aspect
! or an aspect that has been defined by another `User_Aspect_Definition`
! pragma. A name for which one or more arguments are given shall be either
! `Annotate` or `Local_Restrictions` (and the arguments shall be appropriate
! for the named aspect).
! 
! This pragma, together with the `User_Aspect` aspect, provides a mechanism
! for avoiding textual duplication if some set of aspect specifications
! is needed in multiple places. This is somewhat analogous to how profiles
! allow avoiding duplication of `Restrictions` pragmas.
! 
! The visibility rules for an aspect defined by a `User_Aspect_Definition`
! pragma are the same as for a check name introduced by a `Check_Name`
! pragma. If multiple definitions are visible for some aspect at some point,
! then the definitions must agree. A predefined aspect cannot be redefined.
  
  
  Pragma Unimplemented_Unit
*************** Syntax:
*** 6919,6927 ****
  
  
  If this pragma occurs in a unit that is processed by the compiler, GNAT
! aborts with the message :samp:`xxx not implemented`, where
! ``xxx`` is the name of the current compilation unit.  This pragma is
! intended to allow the compiler to handle unimplemented library units in
  a clean manner.
  
  The abort only happens if code is being generated.  Thus you can use
--- 7066,7074 ----
  
  
  If this pragma occurs in a unit that is processed by the compiler, GNAT
! aborts with the message :samp:`xxx is not supported in this configuration`,
! where ``xxx`` is the name of the current compilation unit.  This pragma
! is intended to allow the compiler to handle unimplemented library units in
  a clean manner.
  
  The abort only happens if code is being generated.  Thus you can use
*************** Syntax:
*** 6942,6951 ****
  
  ``type_LOCAL_NAME`` must refer to a type declaration in the current
  declarative part.  The effect is to inhibit strict type-based aliasing
! optimization for the given type.  In other words, the effect is as though
! access types designating this type were subject to pragma No_Strict_Aliasing.
! For a detailed description of the strict aliasing optimization, and the
! situations in which it must be suppressed, see the section on
  ``Optimization and Strict Aliasing`` in the :title:`GNAT User's Guide`.
  
  .. _Pragma-Unmodified:
--- 7089,7097 ----
  
  ``type_LOCAL_NAME`` must refer to a type declaration in the current
  declarative part.  The effect is to inhibit strict type-based aliasing
! optimizations for the given type.  For a detailed description of the
! strict type-based aliasing optimizations and the situations in which
! they need to be suppressed, see the section on
  ``Optimization and Strict Aliasing`` in the :title:`GNAT User's Guide`.
  
  .. _Pragma-Unmodified:
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst	Fri Apr 25 08:18:00 2025
*************** in the RM, the earliest is used.
*** 43,618 ****
  A complete description of the AIs may be found in
  http://www.ada-auth.org/ai05-summary.html.
  
! .. index:: AI-0176 (Ada 2012 feature)
  
! * *AI-0176 Quantified expressions (2010-09-29)*
  
!   Both universally and existentially quantified expressions are implemented.
!   They use the new syntax for iterators proposed in AI05-139-2, as well as
!   the standard Ada loop syntax.
  
!   RM References:  1.01.04 (12)   2.09 (2/2)   4.04 (7)   4.05.09 (0)
  
! .. index:: AI-0079 (Ada 2012 feature)
  
! * *AI-0079 Allow other_format characters in source (2010-07-10)*
  
!   Wide characters in the unicode category *other_format* are now allowed in
!   source programs between tokens, but not within a token such as an identifier.
  
!   RM References:  2.01 (4/2)   2.02 (7)
  
! .. index:: AI-0091 (Ada 2012 feature)
  
! * *AI-0091 Do not allow other_format in identifiers (0000-00-00)*
  
!   Wide characters in the unicode category *other_format* are not permitted
!   within  an identifier, since this can be a security problem. The error
!   message for this case has been improved to be more specific, but GNAT has
!   never allowed such characters to appear in identifiers.
  
!   RM References:  2.03 (3.1/2)   2.03 (4/2)   2.03 (5/2)   2.03 (5.1/2)   2.03 (5.2/2)   2.03 (5.3/2)   2.09 (2/2)
  
! .. index:: AI-0100 (Ada 2012 feature)
  
! * *AI-0100 Placement of pragmas  (2010-07-01)*
  
!   This AI is an earlier version of AI-163. It simplifies the rules
!   for legal placement of pragmas. In the case of lists that allow pragmas, if
!   the list may have no elements, then the list may consist solely of pragmas.
  
!   RM References:  2.08 (7)
  
! .. index:: AI-0163 (Ada 2012 feature)
  
! * *AI-0163 Pragmas in place of null (2010-07-01)*
  
!   A statement sequence may be composed entirely of pragmas. It is no longer
!   necessary to add a dummy ``null`` statement to make the sequence legal.
  
!   RM References:  2.08 (7)   2.08 (16)
  
! .. index:: AI-0080 (Ada 2012 feature)
  
! * *AI-0080 'View of' not needed if clear from context (0000-00-00)*
  
!   This is an editorial change only, described as non-testable in the AI.
  
!   RM References:  3.01 (7)
  
! .. index:: AI-0183 (Ada 2012 feature)
  
! * *AI-0183 Aspect specifications (2010-08-16)*
  
!   Aspect specifications have been fully implemented except for pre and post-
!   conditions, and type invariants, which have their own separate AI's. All
!   forms of declarations listed in the AI are supported. The following is a
!   list of the aspects supported (with GNAT implementation aspects marked)
  
! ==================================== ===========
! Supported Aspect                     Source
! ==================================== ===========
!   ``Ada_2005``                           -- GNAT
!   ``Ada_2012``                           -- GNAT
!   ``Address``
!   ``Alignment``
!   ``Atomic``
!   ``Atomic_Components``
!   ``Bit_Order``
!   ``Component_Size``
!   ``Contract_Cases``                     -- GNAT
!   ``Discard_Names``
!   ``External_Tag``
!   ``Favor_Top_Level``                    -- GNAT
!   ``Inline``
!   ``Inline_Always``                      -- GNAT
!   ``Invariant``                          -- GNAT
!   ``Machine_Radix``
!   ``No_Return``
!   ``Object_Size``                        -- GNAT
!   ``Pack``
!   ``Persistent_BSS``                     -- GNAT
!   ``Post``
!   ``Pre``
!   ``Predicate``
!   ``Preelaborable_Initialization``
!   ``Pure_Function``                      -- GNAT
!   ``Remote_Access_Type``                 -- GNAT
!   ``Shared``                             -- GNAT
!   ``Size``
!   ``Storage_Pool``
!   ``Storage_Size``
!   ``Stream_Size``
!   ``Suppress``
!   ``Suppress_Debug_Info``                -- GNAT
!   ``Test_Case``                          -- GNAT
!   ``Thread_Local_Storage``               -- GNAT
!   ``Type_Invariant``
!   ``Unchecked_Union``
!   ``Universal_Aliasing``                 -- GNAT
!   ``Unmodified``                         -- GNAT
!   ``Unreferenced``                       -- GNAT
!   ``Unreferenced_Objects``               -- GNAT
!   ``Unsuppress``
!   ``Value_Size``                         -- GNAT
!   ``Volatile``
!   ``Volatile_Components``
!   ``Warnings``                           -- GNAT
! ==================================== ===========
  
!   Note that for aspects with an expression, e.g. ``Size``, the expression is
!   treated like a default expression (visibility is analyzed at the point of
!   occurrence of the aspect, but evaluation of the expression occurs at the
!   freeze point of the entity involved).
  
!   RM References:  3.02.01 (3)   3.02.02 (2)   3.03.01 (2/2)   3.08 (6)
!   3.09.03 (1.1/2)   6.01 (2/2)   6.07 (2/2)   9.05.02 (2/2)   7.01 (3)   7.03
!   (2)   7.03 (3)   9.01 (2/2)   9.01 (3/2)   9.04 (2/2)   9.04 (3/2)
!   9.05.02 (2/2)   11.01 (2)   12.01 (3)   12.03 (2/2)   12.04 (2/2)   12.05 (2)
!   12.06 (2.1/2)   12.06 (2.2/2)   12.07 (2)   13.01 (0.1/2)   13.03 (5/1)
!   13.03.01 (0)
  
! .. index:: AI-0128 (Ada 2012 feature)
  
! * *AI-0128 Inequality is a primitive operation (0000-00-00)*
  
!   If an equality operator ("=") is declared for a type, then the implicitly
!   declared inequality operator ("/=") is a primitive operation of the type.
!   This is the only reasonable interpretation, and is the one always implemented
!   by GNAT, but the RM was not entirely clear in making this point.
  
!   RM References:  3.02.03 (6)   6.06 (6)
  
! .. index:: AI-0003 (Ada 2012 feature)
  
! * *AI-0003 Qualified expressions as names (2010-07-11)*
  
!   In Ada 2012, a qualified expression is considered to be syntactically a name,
!   meaning that constructs such as ``A'(F(X)).B`` are now legal. This is
!   useful in disambiguating some cases of overloading.
  
!   RM References:  3.03 (11)   3.03 (21)   4.01 (2)   4.04 (7)   4.07 (3)
!   5.04 (7)
  
! .. index:: AI-0120 (Ada 2012 feature)
  
! * *AI-0120 Constant instance of protected object (0000-00-00)*
  
!   This is an RM editorial change only. The section that lists objects that are
!   constant failed to include the current instance of a protected object
!   within a protected function. This has always been treated as a constant
!   in GNAT.
  
!   RM References:  3.03 (21)
  
! .. index:: AI-0008 (Ada 2012 feature)
  
! * *AI-0008 General access to constrained objects (0000-00-00)*
  
!   The wording in the RM implied that if you have a general access to a
!   constrained object, it could be used to modify the discriminants. This was
!   obviously not intended. ``Constraint_Error`` should be raised, and GNAT
!   has always done so in this situation.
  
!   RM References:  3.03 (23)   3.10.02 (26/2)   4.01 (9)   6.04.01 (17)   8.05.01 (5/2)
  
! .. index:: AI-0093 (Ada 2012 feature)
  
! * *AI-0093 Additional rules use immutably limited (0000-00-00)*
  
!   This is an editorial change only, to make more widespread use of the Ada 2012
!   'immutably limited'.
  
!   RM References:  3.03 (23.4/3)
  
! .. index:: AI-0096 (Ada 2012 feature)
  
! * *AI-0096 Deriving from formal private types (2010-07-20)*
  
!   In general it is illegal for a type derived from a formal limited type to be
!   nonlimited.  This AI makes an exception to this rule: derivation is legal
!   if it appears in the private part of the generic, and the formal type is not
!   tagged. If the type is tagged, the legality check must be applied to the
!   private part of the package.
  
!   RM References:  3.04 (5.1/2)   6.02 (7)
  
! .. index:: AI-0181 (Ada 2012 feature)
  
! * *AI-0181 Soft hyphen is a non-graphic character (2010-07-23)*
  
!   From Ada 2005 on, soft hyphen is considered a non-graphic character, which
!   means that it has a special name (``SOFT_HYPHEN``) in conjunction with the
!   ``Image`` and ``Value`` attributes for the character types. Strictly
!   speaking this is an inconsistency with Ada 95, but in practice the use of
!   these attributes is so obscure that it will not cause problems.
  
!   RM References:  3.05.02 (2/2)   A.01 (35/2)   A.03.03 (21)
  
! .. index:: AI-0182 (Ada 2012 feature)
  
! * *AI-0182 Additional forms for* ``Character'Value`` *(0000-00-00)*
  
!   This AI allows ``Character'Value`` to accept the string ``'?'`` where
!   ``?`` is any character including non-graphic control characters. GNAT has
!   always accepted such strings. It also allows strings such as
!   ``HEX_00000041`` to be accepted, but GNAT does not take advantage of this
!   permission and raises ``Constraint_Error``, as is certainly still
!   permitted.
  
!   RM References:  3.05 (56/2)
  
! .. index:: AI-0214 (Ada 2012 feature)
  
! * *AI-0214 Defaulted discriminants for limited tagged (2010-10-01)*
  
!   Ada 2012 relaxes the restriction that forbids discriminants of tagged types
!   to have default expressions by allowing them when the type is limited. It
!   is often useful to define a default value for a discriminant even though
!   it can't be changed by assignment.
  
!   RM References:  3.07 (9.1/2)   3.07.02 (3)
  
! .. index:: AI-0102 (Ada 2012 feature)
  
! * *AI-0102 Some implicit conversions are illegal (0000-00-00)*
  
!   It is illegal to assign an anonymous access constant to an anonymous access
!   variable. The RM did not have a clear rule to prevent this, but GNAT has
!   always generated an error for this usage.
  
!   RM References:  3.07 (16)   3.07.01 (9)   6.04.01 (6)   8.06 (27/2)
  
! .. index:: AI-0158 (Ada 2012 feature)
  
! * *AI-0158 Generalizing membership tests (2010-09-16)*
  
!   This AI extends the syntax of membership tests to simplify complex conditions
!   that can be expressed as membership in a subset of values of any type. It
!   introduces syntax for a list of expressions that may be used in loop contexts
!   as well.
  
!   RM References:  3.08.01 (5)   4.04 (3)   4.05.02 (3)   4.05.02 (5)   4.05.02 (27)
  
! .. index:: AI-0173 (Ada 2012 feature)
  
! * *AI-0173 Testing if tags represent abstract types (2010-07-03)*
  
!   The function ``Ada.Tags.Type_Is_Abstract`` returns ``True`` if invoked
!   with the tag of an abstract type, and ``False`` otherwise.
  
!   RM References:  3.09 (7.4/2)   3.09 (12.4/2)
  
! .. index:: AI-0076 (Ada 2012 feature)
  
! * *AI-0076 function with controlling result (0000-00-00)*
  
!   This is an editorial change only. The RM defines calls with controlling
!   results, but uses the term 'function with controlling result' without an
!   explicit definition.
  
!   RM References:  3.09.02 (2/2)
  
! .. index:: AI-0126 (Ada 2012 feature)
  
! * *AI-0126 Dispatching with no declared operation (0000-00-00)*
  
!   This AI clarifies dispatching rules, and simply confirms that dispatching
!   executes the operation of the parent type when there is no explicitly or
!   implicitly declared operation for the descendant type. This has always been
!   the case in all versions of GNAT.
  
!   RM References:  3.09.02 (20/2)   3.09.02 (20.1/2)   3.09.02 (20.2/2)
  
! .. index:: AI-0097 (Ada 2012 feature)
  
! * *AI-0097 Treatment of abstract null extension (2010-07-19)*
  
!   The RM as written implied that in some cases it was possible to create an
!   object of an abstract type, by having an abstract extension inherit a non-
!   abstract constructor from its parent type. This mistake has been corrected
!   in GNAT and in the RM, and this construct is now illegal.
  
!   RM References:  3.09.03 (4/2)
  
! .. index:: AI-0203 (Ada 2012 feature)
  
! * *AI-0203 Extended return cannot be abstract (0000-00-00)*
  
!   A return_subtype_indication cannot denote an abstract subtype. GNAT has never
!   permitted such usage.
  
!   RM References:  3.09.03 (8/3)
  
! .. index:: AI-0198 (Ada 2012 feature)
  
! * *AI-0198 Inheriting abstract operators  (0000-00-00)*
  
!   This AI resolves a conflict between two rules involving inherited abstract
!   operations and predefined operators. If a derived numeric type inherits
!   an abstract operator, it overrides the predefined one. This interpretation
!   was always the one implemented in GNAT.
  
!   RM References:  3.09.03 (4/3)
  
! .. index:: AI-0073 (Ada 2012 feature)
  
! * *AI-0073 Functions returning abstract types (2010-07-10)*
  
!   This AI covers a number of issues regarding returning abstract types. In
!   particular generic functions cannot have abstract result types or access
!   result types designated an abstract type. There are some other cases which
!   are detailed in the AI. Note that this binding interpretation has not been
!   retrofitted to operate before Ada 2012 mode, since it caused a significant
!   number of regressions.
  
!   RM References:  3.09.03 (8)   3.09.03 (10)   6.05 (8/2)
  
! .. index:: AI-0070 (Ada 2012 feature)
  
! * *AI-0070 Elaboration of interface types (0000-00-00)*
  
!   This is an editorial change only, there are no testable consequences short of
!   checking for the absence of generated code for an interface declaration.
  
!   RM References:  3.09.04 (18/2)
  
! .. index:: AI-0208 (Ada 2012 feature)
  
! * *AI-0208 Characteristics of incomplete views (0000-00-00)*
  
!   The wording in the Ada 2005 RM concerning characteristics of incomplete views
!   was incorrect and implied that some programs intended to be legal were now
!   illegal. GNAT had never considered such programs illegal, so it has always
!   implemented the intent of this AI.
  
!   RM References:  3.10.01 (2.4/2)   3.10.01 (2.6/2)
  
! .. index:: AI-0162 (Ada 2012 feature)
  
! * *AI-0162 Incomplete type completed by partial view (2010-09-15)*
  
!   Incomplete types are made more useful by allowing them to be completed by
!   private types and private extensions.
  
!   RM References:  3.10.01 (2.5/2)   3.10.01 (2.6/2)   3.10.01 (3)   3.10.01 (4/2)
  
! .. index:: AI-0098 (Ada 2012 feature)
  
! * *AI-0098 Anonymous subprogram access restrictions (0000-00-00)*
  
!   An unintentional omission in the RM implied some inconsistent restrictions on
!   the use of anonymous access to subprogram values. These restrictions were not
!   intentional, and have never been enforced by GNAT.
  
!   RM References:  3.10.01 (6)   3.10.01 (9.2/2)
  
! .. index:: AI-0199 (Ada 2012 feature)
  
! * *AI-0199 Aggregate with anonymous access components (2010-07-14)*
  
!   A choice list in a record aggregate can include several components of
!   (distinct) anonymous access types as long as they have matching designated
!   subtypes.
  
!   RM References:  4.03.01 (16)
  
! .. index:: AI-0220 (Ada 2012 feature)
  
! * *AI-0220 Needed components for aggregates (0000-00-00)*
  
!   This AI addresses a wording problem in the RM that appears to permit some
!   complex cases of aggregates with nonstatic discriminants. GNAT has always
!   implemented the intended semantics.
  
!   RM References:  4.03.01 (17)
  
! .. index:: AI-0147 (Ada 2012 feature)
  
! * *AI-0147 Conditional expressions (2009-03-29)*
  
!   Conditional expressions are permitted. The form of such an expression is:
  
!   ::
  
!         (if expr then expr {elsif expr then expr} [else expr])
  
!   The parentheses can be omitted in contexts where parentheses are present
!   anyway, such as subprogram arguments and pragma arguments. If the **else**
!   clause is omitted, **else** *True* is assumed;
!   thus ``(if A then B)`` is a way to conveniently represent
!   *(A implies B)* in standard logic.
  
!   RM References:  4.03.03 (15)   4.04 (1)   4.04 (7)   4.05.07 (0)   4.07 (2)
!   4.07 (3)   4.09 (12)   4.09 (33)   5.03 (3)   5.03 (4)   7.05 (2.1/2)
  
! .. index:: AI-0037 (Ada 2012 feature)
  
! * *AI-0037 Out-of-range box associations in aggregate (0000-00-00)*
  
!   This AI confirms that an association of the form ``Indx => <>`` in an
!   array aggregate must raise ``Constraint_Error`` if ``Indx``
!   is out of range. The RM specified a range check on other associations, but
!   not when the value of the association was defaulted. GNAT has always inserted
!   a constraint check on the index value.
  
!   RM References:  4.03.03 (29)
  
! .. index:: AI-0123 (Ada 2012 feature)
  
! * *AI-0123 Composability of equality (2010-04-13)*
  
!   Equality of untagged record composes, so that the predefined equality for a
!   composite type that includes a component of some untagged record type
!   ``R`` uses the equality operation of ``R`` (which may be user-defined
!   or predefined). This makes the behavior of untagged records identical to that
!   of tagged types in this respect.
  
!   This change is an incompatibility with previous versions of Ada, but it
!   corrects a non-uniformity that was often a source of confusion. Analysis of
!   a large number of industrial programs indicates that in those rare cases
!   where a composite type had an untagged record component with a user-defined
!   equality, either there was no use of the composite equality, or else the code
!   expected the same composability as for tagged types, and thus had a bug that
!   would be fixed by this change.
  
!   RM References:  4.05.02 (9.7/2)   4.05.02 (14)   4.05.02 (15)   4.05.02 (24)
!   8.05.04 (8)
  
! .. index:: AI-0088 (Ada 2012 feature)
  
! * *AI-0088 The value of exponentiation (0000-00-00)*
  
!   This AI clarifies the equivalence rule given for the dynamic semantics of
!   exponentiation: the value of the operation can be obtained by repeated
!   multiplication, but the operation can be implemented otherwise (for example
!   using the familiar divide-by-two-and-square algorithm, even if this is less
!   accurate), and does not imply repeated reads of a volatile base.
  
!   RM References:  4.05.06 (11)
  
! .. index:: AI-0188 (Ada 2012 feature)
  
! * *AI-0188 Case expressions (2010-01-09)*
  
!   Case expressions are permitted. This allows use of constructs such as:
  
!   .. code-block:: ada
  
!       X := (case Y is when 1 => 2, when 2 => 3, when others => 31)
  
!   RM References:  4.05.07 (0)   4.05.08 (0)   4.09 (12)   4.09 (33)
  
! .. index:: AI-0104 (Ada 2012 feature)
  
! * *AI-0104 Null exclusion and uninitialized allocator (2010-07-15)*
  
!   The assignment ``Ptr := new not null Some_Ptr;`` will raise
!   ``Constraint_Error`` because the default value of the allocated object is
!   **null**. This useless construct is illegal in Ada 2012.
  
!   RM References:  4.08 (2)
  
! .. index:: AI-0157 (Ada 2012 feature)
  
! * *AI-0157 Allocation/Deallocation from empty pool (2010-07-11)*
  
!   Allocation and Deallocation from an empty storage pool (i.e. allocation or
!   deallocation of a pointer for which a static storage size clause of zero
!   has been given) is now illegal and is detected as such. GNAT
!   previously gave a warning but not an error.
  
!   RM References:  4.08 (5.3/2)   13.11.02 (4)   13.11.02 (17)
  
! .. index:: AI-0179 (Ada 2012 feature)
  
! * *AI-0179 Statement not required after label (2010-04-10)*
  
!   It is not necessary to have a statement following a label, so a label
!   can appear at the end of a statement sequence without the need for putting a
!   null statement afterwards, but it is not allowable to have only labels and
!   no real statements in a statement sequence.
  
!   RM References:  5.01 (2)
  
! .. index:: AI-0139-2 (Ada 2012 feature)
  
! * *AI-0139-2 Syntactic sugar for iterators (2010-09-29)*
  
!   The new syntax for iterating over arrays and containers is now implemented.
!   Iteration over containers is for now limited to read-only iterators. Only
!   default iterators are supported, with the syntax:  ``for Elem of C``.
  
!   RM References:  5.05
  
! .. index:: AI-0134 (Ada 2012 feature)
  
! * *AI-0134 Profiles must match for full conformance (0000-00-00)*
  
!   For full conformance, the profiles of anonymous-access-to-subprogram
!   parameters must match. GNAT has always enforced this rule.
  
!   RM References:  6.03.01 (18)
  
! .. index:: AI-0207 (Ada 2012 feature)
  
! * *AI-0207 Mode conformance and access constant (0000-00-00)*
  
!   This AI confirms that access_to_constant indication must match for mode
!   conformance. This was implemented in GNAT when the qualifier was originally
!   introduced in Ada 2005.
  
!   RM References:  6.03.01 (16/2)
  
! .. index:: AI-0046 (Ada 2012 feature)
  
! * *AI-0046 Null exclusion match for full conformance (2010-07-17)*
  
!   For full conformance, in the case of access parameters, the null exclusion
!   must match (either both or neither must have ``not null``).
  
!   RM References:  6.03.02 (18)
  
! .. index:: AI-0118 (Ada 2012 feature)
  
! * *AI-0118 The association of parameter associations (0000-00-00)*
  
!   This AI clarifies the rules for named associations in subprogram calls and
!   generic instantiations. The rules have been in place since Ada 83.
  
!   RM References:  6.04.01 (2)   12.03 (9)
  
! .. index:: AI-0196 (Ada 2012 feature)
  
! * *AI-0196 Null exclusion tests for out parameters (0000-00-00)*
  
!   Null exclusion checks are not made for ``out`` parameters when
!   evaluating the actual parameters. GNAT has never generated these checks.
  
!   RM References:  6.04.01 (13)
  
! .. index:: AI-0015 (Ada 2012 feature)
  
! * *AI-0015 Constant return objects (0000-00-00)*
  
!   The return object declared in an *extended_return_statement* may be
!   declared constant. This was always intended, and GNAT has always allowed it.
  
!   RM References:  6.05 (2.1/2)   3.03 (10/2)   3.03 (21)   6.05 (5/2)
!   6.05 (5.7/2)
  
! .. index:: AI-0032 (Ada 2012 feature)
  
! * *AI-0032 Extended return for class-wide functions (0000-00-00)*
  
!   If a function returns a class-wide type, the object of an extended return
!   statement can be declared with a specific type that is covered by the class-
!   wide type. This has been implemented in GNAT since the introduction of
!   extended returns. Note AI-0103 complements this AI by imposing matching
!   rules for constrained return types.
  
!   RM References:  6.05 (5.2/2)   6.05 (5.3/2)   6.05 (5.6/2)   6.05 (5.8/2)
!   6.05 (8/2)
  
  .. index:: AI-0103 (Ada 2012 feature)
  
--- 43,583 ----
  A complete description of the AIs may be found in
  http://www.ada-auth.org/ai05-summary.html.
  
! .. index:: AI-0002 (Ada 2012 feature)
  
! * *AI-0002 Export C with unconstrained arrays (0000-00-00)*
  
!   The compiler is not required to support exporting an Ada subprogram with
!   convention C if there are parameters or a return type of an unconstrained
!   array type (such as ``String``). GNAT allows such declarations but
!   generates warnings. It is possible, but complicated, to write the
!   corresponding C code and certainly such code would be specific to GNAT and
!   non-portable.
  
!   RM References:  B.01 (17)   B.03 (62)   B.03 (71.1/2)
  
! .. index:: AI-0003 (Ada 2012 feature)
  
! * *AI-0003 Qualified expressions as names (2010-07-11)*
  
!   In Ada 2012, a qualified expression is considered to be syntactically a name,
!   meaning that constructs such as ``A'(F(X)).B`` are now legal. This is
!   useful in disambiguating some cases of overloading.
  
!   RM References:  3.03 (11)   3.03 (21)   4.01 (2)   4.04 (7)   4.07 (3)
!   5.04 (7)
  
! .. index:: AI-0007 (Ada 2012 feature)
  
! * *AI-0007 Stream read and private scalar types (0000-00-00)*
  
!   The RM as written appeared to limit the possibilities of declaring read
!   attribute procedures for private scalar types. This limitation was not
!   intended, and has never been enforced by GNAT.
  
!   RM References:  13.13.02 (50/2)   13.13.02 (51/2)
  
! .. index:: AI-0008 (Ada 2012 feature)
  
! * *AI-0008 General access to constrained objects (0000-00-00)*
  
!   The wording in the RM implied that if you have a general access to a
!   constrained object, it could be used to modify the discriminants. This was
!   obviously not intended. ``Constraint_Error`` should be raised, and GNAT
!   has always done so in this situation.
  
!   RM References:  3.03 (23)   3.10.02 (26/2)   4.01 (9)   6.04.01 (17)   8.05.01 (5/2)
  
! .. index:: AI-0009 (Ada 2012 feature)
  
! * *AI-0009 Pragma Independent[_Components] (2010-07-23)*
  
!   This AI introduces the new pragmas ``Independent`` and
!   ``Independent_Components``,
!   which control guaranteeing independence of access to objects and components.
!   The AI also requires independence not unaffected by confirming rep clauses.
  
!   RM References:  9.10 (1)   13.01 (15/1)   13.02 (9)   13.03 (13)   C.06 (2)
!   C.06 (4)   C.06 (6)   C.06 (9)   C.06 (13)   C.06 (14)
  
! .. index:: AI-0012 (Ada 2012 feature)
  
! * *AI-0012 Pack/Component_Size for aliased/atomic (2010-07-15)*
  
!   It is now illegal to give an inappropriate component size or a pragma
!   ``Pack`` that attempts to change the component size in the case of atomic
!   or aliased components. Previously GNAT ignored such an attempt with a
!   warning.
  
!   RM References:  13.02 (6.1/2)   13.02 (7)   C.06 (10)   C.06 (11)   C.06 (21)
  
! .. index:: AI-0015 (Ada 2012 feature)
  
! * *AI-0015 Constant return objects (0000-00-00)*
  
!   The return object declared in an *extended_return_statement* may be
!   declared constant. This was always intended, and GNAT has always allowed it.
  
!   RM References:  6.05 (2.1/2)   3.03 (10/2)   3.03 (21)   6.05 (5/2)
!   6.05 (5.7/2)
  
! .. index:: AI-0017 (Ada 2012 feature)
  
! * *AI-0017 Freezing and incomplete types (0000-00-00)*
  
!   So-called 'Taft-amendment types' (i.e., types that are completed in package
!   bodies) are not frozen by the occurrence of bodies in the
!   enclosing declarative part. GNAT always implemented this properly.
  
!   RM References:  13.14 (3/1)
  
! .. index:: AI-0019 (Ada 2012 feature)
  
! * *AI-0019 Freezing of primitives for tagged types (0000-00-00)*
  
!   The RM suggests that primitive subprograms of a specific tagged type are
!   frozen when the tagged type is frozen. This would be an incompatible change
!   and is not intended. GNAT has never attempted this kind of freezing and its
!   behavior is consistent with the recommendation of this AI.
  
!   RM References:  13.14 (2)   13.14 (3/1)   13.14 (8.1/1)   13.14 (10)   13.14 (14)   13.14 (15.1/2)
  
! .. index:: AI-0026 (Ada 2012 feature)
  
! * *AI-0026 Missing rules for Unchecked_Union (2010-07-07)*
  
!   Record representation clauses concerning Unchecked_Union types cannot mention
!   the discriminant of the type. The type of a component declared in the variant
!   part of an Unchecked_Union cannot be controlled, have controlled components,
!   nor have protected or task parts. If an Unchecked_Union type is declared
!   within the body of a generic unit or its descendants, then the type of a
!   component declared in the variant part cannot be a formal private type or a
!   formal private extension declared within the same generic unit.
  
!   RM References:  7.06 (9.4/2)   B.03.03 (9/2)   B.03.03 (10/2)
  
! .. index:: AI-0030 (Ada 2012 feature)
  
! * *AI-0030 Requeue on synchronized interfaces (2010-07-19)*
  
!   Requeue is permitted to a protected, synchronized or task interface primitive
!   providing it is known that the overriding operation is an entry. Otherwise
!   the requeue statement has the same effect as a procedure call. Use of pragma
!   ``Implemented`` provides a way to impose a static requirement on the
!   overriding operation by adhering to one of the implementation kinds: entry,
!   protected procedure or any of the above.
  
!   RM References:  9.05 (9)   9.05.04 (2)   9.05.04 (3)   9.05.04 (5)
!   9.05.04 (6)   9.05.04 (7)   9.05.04 (12)
  
! .. index:: AI-0031 (Ada 2012 feature)
  
! * *AI-0031 Add From parameter to Find_Token (2010-07-25)*
  
!   A new version of ``Find_Token`` is added to all relevant string packages,
!   with an extra parameter ``From``. Instead of starting at the first
!   character of the string, the search for a matching Token starts at the
!   character indexed by the value of ``From``.
!   These procedures are available in all versions of Ada
!   but if used in versions earlier than Ada 2012 they will generate a warning
!   that an Ada 2012 subprogram is being used.
  
!   RM References:  A.04.03 (16)   A.04.03 (67)   A.04.03 (68/1)   A.04.04 (51)
!   A.04.05 (46)
  
! .. index:: AI-0032 (Ada 2012 feature)
  
! * *AI-0032 Extended return for class-wide functions (0000-00-00)*
  
!   If a function returns a class-wide type, the object of an extended return
!   statement can be declared with a specific type that is covered by the class-
!   wide type. This has been implemented in GNAT since the introduction of
!   extended returns. Note AI-0103 complements this AI by imposing matching
!   rules for constrained return types.
  
!   RM References:  6.05 (5.2/2)   6.05 (5.3/2)   6.05 (5.6/2)   6.05 (5.8/2)
!   6.05 (8/2)
  
! .. index:: AI-0033 (Ada 2012 feature)
  
! * *AI-0033 Attach/Interrupt_Handler in generic (2010-07-24)*
  
!   Neither of these two pragmas may appear within a generic template, because
!   the generic might be instantiated at other than the library level.
  
!   RM References:  13.11.02 (16)   C.03.01 (7/2)   C.03.01 (8/2)
  
! .. index:: AI-0034 (Ada 2012 feature)
  
! * *AI-0034 Categorization of limited views (0000-00-00)*
  
!   The RM makes certain limited with clauses illegal because of categorization
!   considerations, when the corresponding normal with would be legal. This is
!   not intended, and GNAT has always implemented the recommended behavior.
  
!   RM References:  10.02.01 (11/1)   10.02.01 (17/2)
  
! .. index:: AI-0035 (Ada 2012 feature)
  
! * *AI-0035 Inconsistencies with Pure units (0000-00-00)*
  
!   This AI remedies some inconsistencies in the legality rules for Pure units.
!   Derived access types are legal in a pure unit (on the assumption that the
!   rule for a zero storage pool size has been enforced on the ancestor type).
!   The rules are enforced in generic instances and in subunits. GNAT has always
!   implemented the recommended behavior.
  
!   RM References:  10.02.01 (15.1/2)   10.02.01 (15.4/2)   10.02.01 (15.5/2)   10.02.01 (17/2)
  
! .. index:: AI-0037 (Ada 2012 feature)
  
! * *AI-0037 Out-of-range box associations in aggregate (0000-00-00)*
  
!   This AI confirms that an association of the form ``Indx => <>`` in an
!   array aggregate must raise ``Constraint_Error`` if ``Indx``
!   is out of range. The RM specified a range check on other associations, but
!   not when the value of the association was defaulted. GNAT has always inserted
!   a constraint check on the index value.
  
!   RM References:  4.03.03 (29)
  
! .. index:: AI-0038 (Ada 2012 feature)
  
! * *AI-0038 Minor errors in Text_IO (0000-00-00)*
  
!   These are minor errors in the description on three points. The intent on
!   all these points has always been clear, and GNAT has always implemented the
!   correct intended semantics.
  
!   RM References:  A.10.05 (37)   A.10.07 (8/1)   A.10.07 (10)   A.10.07 (12)   A.10.08 (10)   A.10.08 (24)
  
! .. index:: AI-0039 (Ada 2012 feature)
  
! * *AI-0039 Stream attributes cannot be dynamic (0000-00-00)*
  
!   The RM permitted the use of dynamic expressions (such as ``ptr.all``)
!   for stream attributes, but these were never useful and are now illegal. GNAT
!   has always regarded such expressions as illegal.
  
!   RM References:  13.03 (4)   13.03 (6)   13.13.02 (38/2)
  
! .. index:: AI-0040 (Ada 2012 feature)
  
! * *AI-0040 Limited with clauses on descendant (0000-00-00)*
  
!   This AI confirms that a limited with clause in a child unit cannot name
!   an ancestor of the unit. This has always been checked in GNAT.
  
!   RM References:  10.01.02 (20/2)
  
! .. index:: AI-0042 (Ada 2012 feature)
  
! * *AI-0042 Overriding versus implemented-by (0000-00-00)*
  
!   This AI fixes a wording gap in the RM. An operation of a synchronized
!   interface can be implemented by a protected or task entry, but the abstract
!   operation is not being overridden in the usual sense, and it must be stated
!   separately that this implementation is legal. This has always been the case
!   in GNAT.
  
!   RM References:  9.01 (9.2/2)   9.04 (11.1/2)
  
! .. index:: AI-0043 (Ada 2012 feature)
  
! * *AI-0043 Rules about raising exceptions (0000-00-00)*
  
!   This AI covers various omissions in the RM regarding the raising of
!   exceptions. GNAT has always implemented the intended semantics.
  
!   RM References:  11.04.01 (10.1/2)   11 (2)
  
! .. index:: AI-0044 (Ada 2012 feature)
  
! * *AI-0044 Restrictions on container instantiations (0000-00-00)*
  
!   This AI places restrictions on allowed instantiations of generic containers.
!   These restrictions are not checked by the compiler, so there is nothing to
!   change in the implementation. This affects only the RM documentation.
  
!   RM References:  A.18 (4/2)   A.18.02 (231/2)   A.18.03 (145/2)   A.18.06 (56/2)   A.18.08 (66/2)   A.18.09 (79/2)   A.18.26 (5/2)   A.18.26 (9/2)
  
! .. index:: AI-0046 (Ada 2012 feature)
  
! * *AI-0046 Null exclusion match for full conformance (2010-07-17)*
  
!   For full conformance, in the case of access parameters, the null exclusion
!   must match (either both or neither must have ``not null``).
  
!   RM References:  6.03.02 (18)
  
! .. index:: AI-0050 (Ada 2012 feature)
  
! * *AI-0050 Raising Constraint_Error early for function call (0000-00-00)*
  
!   The implementation permissions for raising ``Constraint_Error`` early on a function call
!   when it was clear an exception would be raised were over-permissive and allowed
!   mishandling of discriminants in some cases. GNAT did
!   not take advantage of these incorrect permissions in any case.
  
!   RM References:  6.05 (24/2)
  
! .. index:: AI-0056 (Ada 2012 feature)
  
! * *AI-0056 Index on null string returns zero (0000-00-00)*
  
!   The wording in the Ada 2005 RM implied an incompatible handling of the
!   ``Index`` functions, resulting in raising an exception instead of
!   returning zero in some situations.
!   This was not intended and has been corrected.
!   GNAT always returned zero, and is thus consistent with this AI.
  
!   RM References:  A.04.03 (56.2/2)   A.04.03 (58.5/2)
  
! .. index:: AI-0058 (Ada 2012 feature)
  
! * *AI-0058 Abnormal completion of an extended return (0000-00-00)*
  
!   The RM had some incorrect wording implying wrong treatment of abnormal
!   completion in an extended return. GNAT has always implemented the intended
!   correct semantics as described by this AI.
  
!   RM References:  6.05 (22/2)
  
! .. index:: AI-0060 (Ada 2012 feature)
  
! * *AI-0060 Extended definition of remote access types (0000-00-00)*
  
!   This AI extends the definition of remote access types to include access
!   to limited, synchronized, protected or task class-wide interface types.
!   GNAT already implemented this extension.
  
!   RM References:  A (4)   E.02.02 (9/1)   E.02.02 (9.2/1)   E.02.02 (14/2)   E.02.02 (18)
  
! .. index:: AI-0062 (Ada 2012 feature)
  
! * *AI-0062 Null exclusions and deferred constants (0000-00-00)*
  
!   A full constant may have a null exclusion even if its associated deferred
!   constant does not. GNAT has always allowed this.
  
!   RM References:  7.04 (6/2)   7.04 (7.1/2)
  
! .. index:: AI-0064 (Ada 2012 feature)
  
! * *AI-0064 Redundant finalization rule (0000-00-00)*
  
!   This is an editorial change only. The intended behavior is already checked
!   by an existing ACATS test, which GNAT has always executed correctly.
  
!   RM References:  7.06.01 (17.1/1)
  
! .. index:: AI-0065 (Ada 2012 feature)
  
! * *AI-0065 Remote access types and external streaming (0000-00-00)*
  
!   This AI clarifies the fact that all remote access types support external
!   streaming. This fixes an obvious oversight in the definition of the
!   language, and GNAT always implemented the intended correct rules.
  
!   RM References:  13.13.02 (52/2)
  
! .. index:: AI-0070 (Ada 2012 feature)
  
! * *AI-0070 Elaboration of interface types (0000-00-00)*
  
!   This is an editorial change only, there are no testable consequences short of
!   checking for the absence of generated code for an interface declaration.
  
!   RM References:  3.09.04 (18/2)
  
! .. index:: AI-0072 (Ada 2012 feature)
  
! * *AI-0072 Task signalling using 'Terminated (0000-00-00)*
  
!   This AI clarifies that task signalling for reading ``'Terminated`` only
!   occurs if the result is True. GNAT semantics has always been consistent with
!   this notion of task signalling.
  
!   RM References:  9.10 (6.1/1)
  
! .. index:: AI-0073 (Ada 2012 feature)
  
! * *AI-0073 Functions returning abstract types (2010-07-10)*
  
!   This AI covers a number of issues regarding returning abstract types. In
!   particular generic functions cannot have abstract result types or access
!   result types designated an abstract type. There are some other cases which
!   are detailed in the AI. Note that this binding interpretation has not been
!   retrofitted to operate before Ada 2012 mode, since it caused a significant
!   number of regressions.
  
!   RM References:  3.09.03 (8)   3.09.03 (10)   6.05 (8/2)
  
! .. index:: AI-0076 (Ada 2012 feature)
  
! * *AI-0076 function with controlling result (0000-00-00)*
  
!   This is an editorial change only. The RM defines calls with controlling
!   results, but uses the term 'function with controlling result' without an
!   explicit definition.
  
!   RM References:  3.09.02 (2/2)
  
! .. index:: AI-0077 (Ada 2012 feature)
  
! * *AI-0077 Limited withs and scope of declarations (0000-00-00)*
  
!   This AI clarifies that a declaration does not include a context clause,
!   and confirms that it is illegal to have a context in which both a limited
!   and a nonlimited view of a package are accessible. Such double visibility
!   was always rejected by GNAT.
  
!   RM References:  10.01.02 (12/2)   10.01.02 (21/2)   10.01.02 (22/2)
  
! .. index:: AI-0078 (Ada 2012 feature)
  
! * *AI-0078 Relax Unchecked_Conversion alignment rules (0000-00-00)*
  
!   In Ada 2012, compilers are required to support unchecked conversion where the
!   target alignment is a multiple of the source alignment. GNAT always supported
!   this case (and indeed all cases of differing alignments, doing copies where
!   required if the alignment was reduced).
  
!   RM References:  13.09 (7)
  
! .. index:: AI-0079 (Ada 2012 feature)
  
! * *AI-0079 Allow other_format characters in source (2010-07-10)*
  
!   Wide characters in the unicode category *other_format* are now allowed in
!   source programs between tokens, but not within a token such as an identifier.
  
!   RM References:  2.01 (4/2)   2.02 (7)
  
! .. index:: AI-0080 (Ada 2012 feature)
  
! * *AI-0080 'View of' not needed if clear from context (0000-00-00)*
  
!   This is an editorial change only, described as non-testable in the AI.
  
!   RM References:  3.01 (7)
  
! .. index:: AI-0087 (Ada 2012 feature)
  
! * *AI-0087 Actual for formal nonlimited derived type (2010-07-15)*
  
!   The actual for a formal nonlimited derived type cannot be limited. In
!   particular, a formal derived type that extends a limited interface but which
!   is not explicitly limited cannot be instantiated with a limited type.
  
!   RM References:  7.05 (5/2)   12.05.01 (5.1/2)
  
! .. index:: AI-0088 (Ada 2012 feature)
  
! * *AI-0088 The value of exponentiation (0000-00-00)*
  
!   This AI clarifies the equivalence rule given for the dynamic semantics of
!   exponentiation: the value of the operation can be obtained by repeated
!   multiplication, but the operation can be implemented otherwise (for example
!   using the familiar divide-by-two-and-square algorithm, even if this is less
!   accurate), and does not imply repeated reads of a volatile base.
  
!   RM References:  4.05.06 (11)
  
! .. index:: AI-0091 (Ada 2012 feature)
  
! * *AI-0091 Do not allow other_format in identifiers (0000-00-00)*
  
!   Wide characters in the unicode category *other_format* are not permitted
!   within  an identifier, since this can be a security problem. The error
!   message for this case has been improved to be more specific, but GNAT has
!   never allowed such characters to appear in identifiers.
  
!   RM References:  2.03 (3.1/2)   2.03 (4/2)   2.03 (5/2)   2.03 (5.1/2)   2.03 (5.2/2)   2.03 (5.3/2)   2.09 (2/2)
  
! .. index:: AI-0093 (Ada 2012 feature)
  
! * *AI-0093 Additional rules use immutably limited (0000-00-00)*
  
!   This is an editorial change only, to make more widespread use of the Ada 2012
!   'immutably limited'.
  
!   RM References:  3.03 (23.4/3)
  
! .. index:: AI-0095 (Ada 2012 feature)
  
! * *AI-0095 Address of intrinsic subprograms (0000-00-00)*
  
!   The prefix of ``'Address`` cannot statically denote a subprogram with
!   convention ``Intrinsic``. The use of the ``Address`` attribute raises
!   ``Program_Error`` if the prefix denotes a subprogram with convention
!   ``Intrinsic``.
  
!   RM References:  13.03 (11/1)
  
! .. index:: AI-0096 (Ada 2012 feature)
  
! * *AI-0096 Deriving from formal private types (2010-07-20)*
  
!   In general it is illegal for a type derived from a formal limited type to be
!   nonlimited.  This AI makes an exception to this rule: derivation is legal
!   if it appears in the private part of the generic, and the formal type is not
!   tagged. If the type is tagged, the legality check must be applied to the
!   private part of the package.
  
!   RM References:  3.04 (5.1/2)   6.02 (7)
  
! .. index:: AI-0097 (Ada 2012 feature)
  
! * *AI-0097 Treatment of abstract null extension (2010-07-19)*
  
!   The RM as written implied that in some cases it was possible to create an
!   object of an abstract type, by having an abstract extension inherit a non-
!   abstract constructor from its parent type. This mistake has been corrected
!   in GNAT and in the RM, and this construct is now illegal.
  
!   RM References:  3.09.03 (4/2)
  
! .. index:: AI-0098 (Ada 2012 feature)
  
! * *AI-0098 Anonymous subprogram access restrictions (0000-00-00)*
  
!   An unintentional omission in the RM implied some inconsistent restrictions on
!   the use of anonymous access to subprogram values. These restrictions were not
!   intentional, and have never been enforced by GNAT.
  
!   RM References:  3.10.01 (6)   3.10.01 (9.2/2)
  
! .. index:: AI-0099 (Ada 2012 feature)
  
! * *AI-0099 Tag determines whether finalization needed (0000-00-00)*
  
!   This AI clarifies that 'needs finalization' is part of dynamic semantics,
!   and therefore depends on the run-time characteristics of an object (i.e. its
!   tag) and not on its nominal type. As the AI indicates: "we do not expect
!   this to affect any implementation".
  
!   RM References:  7.06.01 (6)   7.06.01 (7)   7.06.01 (8)   7.06.01 (9/2)
  
! .. index:: AI-0100 (Ada 2012 feature)
  
! * *AI-0100 Placement of pragmas  (2010-07-01)*
  
!   This AI is an earlier version of AI-163. It simplifies the rules
!   for legal placement of pragmas. In the case of lists that allow pragmas, if
!   the list may have no elements, then the list may consist solely of pragmas.
  
!   RM References:  2.08 (7)
! 
! .. index:: AI-0102 (Ada 2012 feature)
! 
! * *AI-0102 Some implicit conversions are illegal (0000-00-00)*
! 
!   It is illegal to assign an anonymous access constant to an anonymous access
!   variable. The RM did not have a clear rule to prevent this, but GNAT has
!   always generated an error for this usage.
! 
!   RM References:  3.07 (16)   3.07.01 (9)   6.04.01 (6)   8.06 (27/2)
  
  .. index:: AI-0103 (Ada 2012 feature)
  
*************** Supported Aspect                     Sou
*** 624,801 ****
  
    RM References:  6.05 (5.2/2)
  
! .. index:: AI-0058 (Ada 2012 feature)
! 
! * *AI-0058 Abnormal completion of an extended return (0000-00-00)*
! 
!   The RM had some incorrect wording implying wrong treatment of abnormal
!   completion in an extended return. GNAT has always implemented the intended
!   correct semantics as described by this AI.
! 
!   RM References:  6.05 (22/2)
  
! .. index:: AI-0050 (Ada 2012 feature)
  
! * *AI-0050 Raising Constraint_Error early for function call (0000-00-00)*
  
!   The implementation permissions for raising ``Constraint_Error`` early on a function call
!   when it was clear an exception would be raised were over-permissive and allowed
!   mishandling of discriminants in some cases. GNAT did
!   not take advantage of these incorrect permissions in any case.
  
!   RM References:  6.05 (24/2)
  
! .. index:: AI-0125 (Ada 2012 feature)
  
! * *AI-0125 Nonoverridable operations of an ancestor (2010-09-28)*
  
!   In Ada 2012, the declaration of a primitive operation of a type extension
!   or private extension can also override an inherited primitive that is not
!   visible at the point of this declaration.
  
!   RM References:  7.03.01 (6)   8.03 (23)   8.03.01 (5/2)   8.03.01 (6/2)
  
! .. index:: AI-0062 (Ada 2012 feature)
  
! * *AI-0062 Null exclusions and deferred constants (0000-00-00)*
  
!   A full constant may have a null exclusion even if its associated deferred
!   constant does not. GNAT has always allowed this.
  
!   RM References:  7.04 (6/2)   7.04 (7.1/2)
  
! .. index:: AI-0178 (Ada 2012 feature)
  
! * *AI-0178 Incomplete views are limited (0000-00-00)*
  
!   This AI clarifies the role of incomplete views and plugs an omission in the
!   RM. GNAT always correctly restricted the use of incomplete views and types.
  
!   RM References:  7.05 (3/2)   7.05 (6/2)
  
! .. index:: AI-0087 (Ada 2012 feature)
  
! * *AI-0087 Actual for formal nonlimited derived type (2010-07-15)*
  
!   The actual for a formal nonlimited derived type cannot be limited. In
!   particular, a formal derived type that extends a limited interface but which
!   is not explicitly limited cannot be instantiated with a limited type.
  
!   RM References:  7.05 (5/2)   12.05.01 (5.1/2)
  
! .. index:: AI-0099 (Ada 2012 feature)
  
! * *AI-0099 Tag determines whether finalization needed (0000-00-00)*
  
!   This AI clarifies that 'needs finalization' is part of dynamic semantics,
!   and therefore depends on the run-time characteristics of an object (i.e. its
!   tag) and not on its nominal type. As the AI indicates: "we do not expect
!   this to affect any implementation''.
  
!   RM References:  7.06.01 (6)   7.06.01 (7)   7.06.01 (8)   7.06.01 (9/2)
  
! .. index:: AI-0064 (Ada 2012 feature)
  
! * *AI-0064 Redundant finalization rule (0000-00-00)*
  
!   This is an editorial change only. The intended behavior is already checked
!   by an existing ACATS test, which GNAT has always executed correctly.
  
!   RM References:  7.06.01 (17.1/1)
  
! .. index:: AI-0026 (Ada 2012 feature)
  
! * *AI-0026 Missing rules for Unchecked_Union (2010-07-07)*
  
!   Record representation clauses concerning Unchecked_Union types cannot mention
!   the discriminant of the type. The type of a component declared in the variant
!   part of an Unchecked_Union cannot be controlled, have controlled components,
!   nor have protected or task parts. If an Unchecked_Union type is declared
!   within the body of a generic unit or its descendants, then the type of a
!   component declared in the variant part cannot be a formal private type or a
!   formal private extension declared within the same generic unit.
  
!   RM References:  7.06 (9.4/2)   B.03.03 (9/2)   B.03.03 (10/2)
  
! .. index:: AI-0205 (Ada 2012 feature)
  
! * *AI-0205 Extended return declares visible name (0000-00-00)*
  
!   This AI corrects a simple omission in the RM. Return objects have always
!   been visible within an extended return statement.
  
!   RM References:  8.03 (17)
  
! .. index:: AI-0042 (Ada 2012 feature)
  
! * *AI-0042 Overriding versus implemented-by (0000-00-00)*
  
!   This AI fixes a wording gap in the RM. An operation of a synchronized
!   interface can be implemented by a protected or task entry, but the abstract
!   operation is not being overridden in the usual sense, and it must be stated
!   separately that this implementation is legal. This has always been the case
!   in GNAT.
  
!   RM References:  9.01 (9.2/2)   9.04 (11.1/2)
  
! .. index:: AI-0030 (Ada 2012 feature)
  
! * *AI-0030 Requeue on synchronized interfaces (2010-07-19)*
  
!   Requeue is permitted to a protected, synchronized or task interface primitive
!   providing it is known that the overriding operation is an entry. Otherwise
!   the requeue statement has the same effect as a procedure call. Use of pragma
!   ``Implemented`` provides a way to impose a static requirement on the
!   overriding operation by adhering to one of the implementation kinds: entry,
!   protected procedure or any of the above.
  
!   RM References:  9.05 (9)   9.05.04 (2)   9.05.04 (3)   9.05.04 (5)
!   9.05.04 (6)   9.05.04 (7)   9.05.04 (12)
  
! .. index:: AI-0201 (Ada 2012 feature)
  
! * *AI-0201 Independence of atomic object components (2010-07-22)*
  
!   If an Atomic object has a pragma ``Pack`` or a ``Component_Size``
!   attribute, then individual components may not be addressable by independent
!   tasks. However, if the representation clause has no effect (is confirming),
!   then independence is not compromised. Furthermore, in GNAT, specification of
!   other appropriately addressable component sizes (e.g. 16 for 8-bit
!   characters) also preserves independence. GNAT now gives very clear warnings
!   both for the declaration of such a type, and for any assignment to its components.
  
!   RM References:  9.10 (1/3)   C.06 (22/2)   C.06 (23/2)
  
! .. index:: AI-0009 (Ada 2012 feature)
  
! * *AI-0009 Pragma Independent[_Components] (2010-07-23)*
  
!   This AI introduces the new pragmas ``Independent`` and
!   ``Independent_Components``,
!   which control guaranteeing independence of access to objects and components.
!   The AI also requires independence not unaffected by confirming rep clauses.
  
!   RM References:  9.10 (1)   13.01 (15/1)   13.02 (9)   13.03 (13)   C.06 (2)
!   C.06 (4)   C.06 (6)   C.06 (9)   C.06 (13)   C.06 (14)
  
! .. index:: AI-0072 (Ada 2012 feature)
  
! * *AI-0072 Task signalling using 'Terminated (0000-00-00)*
  
!   This AI clarifies that task signalling for reading ``'Terminated`` only
!   occurs if the result is True. GNAT semantics has always been consistent with
!   this notion of task signalling.
  
!   RM References:  9.10 (6.1/1)
  
! .. index:: AI-0108 (Ada 2012 feature)
  
! * *AI-0108 Limited incomplete view and discriminants (0000-00-00)*
  
!   This AI confirms that an incomplete type from a limited view does not have
!   discriminants. This has always been the case in GNAT.
  
!   RM References:  10.01.01 (12.3/2)
  
  .. index:: AI-0129 (Ada 2012 feature)
  
--- 589,758 ----
  
    RM References:  6.05 (5.2/2)
  
! .. index:: AI-0104 (Ada 2012 feature)
  
! * *AI-0104 Null exclusion and uninitialized allocator (2010-07-15)*
  
!   The assignment ``Ptr := new not null Some_Ptr;`` will raise
!   ``Constraint_Error`` because the default value of the allocated object is
!   **null**. This useless construct is illegal in Ada 2012.
  
!   RM References:  4.08 (2)
  
! .. index:: AI-0106 (Ada 2012 feature)
  
! * *AI-0106 No representation pragmas on generic formals (0000-00-00)*
  
!   The RM appeared to allow representation pragmas on generic formal parameters,
!   but this was not intended, and GNAT has never permitted this usage.
  
!   RM References:  13.01 (9.1/1)
  
! .. index:: AI-0108 (Ada 2012 feature)
  
! * *AI-0108 Limited incomplete view and discriminants (0000-00-00)*
  
!   This AI confirms that an incomplete type from a limited view does not have
!   discriminants. This has always been the case in GNAT.
  
!   RM References:  10.01.01 (12.3/2)
  
! .. index:: AI-0109 (Ada 2012 feature)
  
! * *AI-0109 Redundant check in S'Class'Input (0000-00-00)*
  
!   This AI is an editorial change only. It removes the need for a tag check
!   that can never fail.
  
!   RM References:  13.13.02 (34/2)
  
! .. index:: AI-0112 (Ada 2012 feature)
  
! * *AI-0112 Detection of duplicate pragmas (2010-07-24)*
  
!   This AI concerns giving names to various representation aspects, but the
!   practical effect is simply to make the use of duplicate
!   ``Atomic[_Components]``,
!   ``Volatile[_Components]``, and
!   ``Independent[_Components]`` pragmas illegal, and GNAT
!   now performs this required check.
  
!   RM References:  13.01 (8)
  
! .. index:: AI-0114 (Ada 2012 feature)
  
! * *AI-0114 Classification of letters (0000-00-00)*
  
!   The code points 170 (``FEMININE ORDINAL INDICATOR``),
!   181 (``MICRO SIGN``), and
!   186 (``MASCULINE ORDINAL INDICATOR``) are technically considered
!   lower case letters by Unicode.
!   However, they are not allowed in identifiers, and they
!   return ``False`` to ``Ada.Characters.Handling.Is_Letter/Is_Lower``.
!   This behavior is consistent with that defined in Ada 95.
  
!   RM References:  A.03.02 (59)   A.04.06 (7)
  
! .. index:: AI-0116 (Ada 2012 feature)
  
! * *AI-0116 Alignment of class-wide objects (0000-00-00)*
  
!   This AI requires that the alignment of a class-wide object be no greater
!   than the alignment of any type in the class. GNAT has always followed this
!   recommendation.
  
!   RM References:  13.03 (29)   13.11 (16)
  
! .. index:: AI-0118 (Ada 2012 feature)
  
! * *AI-0118 The association of parameter associations (0000-00-00)*
  
!   This AI clarifies the rules for named associations in subprogram calls and
!   generic instantiations. The rules have been in place since Ada 83.
  
!   RM References:  6.04.01 (2)   12.03 (9)
  
! .. index:: AI-0120 (Ada 2012 feature)
  
! * *AI-0120 Constant instance of protected object (0000-00-00)*
  
!   This is an RM editorial change only. The section that lists objects that are
!   constant failed to include the current instance of a protected object
!   within a protected function. This has always been treated as a constant
!   in GNAT.
  
!   RM References:  3.03 (21)
  
! .. index:: AI-0122 (Ada 2012 feature)
  
! * *AI-0122 Private with and children of generics (0000-00-00)*
  
!   This AI clarifies the visibility of private children of generic units within
!   instantiations of a parent. GNAT has always handled this correctly.
  
!   RM References:  10.01.02 (12/2)
  
! .. index:: AI-0123 (Ada 2012 feature)
  
! * *AI-0123 Composability of equality (2010-04-13)*
  
!   Equality of untagged record composes, so that the predefined equality for a
!   composite type that includes a component of some untagged record type
!   ``R`` uses the equality operation of ``R`` (which may be user-defined
!   or predefined). This makes the behavior of untagged records identical to that
!   of tagged types in this respect.
  
!   This change is an incompatibility with previous versions of Ada, but it
!   corrects a non-uniformity that was often a source of confusion. Analysis of
!   a large number of industrial programs indicates that in those rare cases
!   where a composite type had an untagged record component with a user-defined
!   equality, either there was no use of the composite equality, or else the code
!   expected the same composability as for tagged types, and thus had a bug that
!   would be fixed by this change.
  
!   RM References:  4.05.02 (9.7/2)   4.05.02 (14)   4.05.02 (15)   4.05.02 (24)
!   8.05.04 (8)
  
! .. index:: AI-0125 (Ada 2012 feature)
  
! * *AI-0125 Nonoverridable operations of an ancestor (2010-09-28)*
  
!   In Ada 2012, the declaration of a primitive operation of a type extension
!   or private extension can also override an inherited primitive that is not
!   visible at the point of this declaration.
  
!   RM References:  7.03.01 (6)   8.03 (23)   8.03.01 (5/2)   8.03.01 (6/2)
  
! .. index:: AI-0126 (Ada 2012 feature)
  
! * *AI-0126 Dispatching with no declared operation (0000-00-00)*
  
!   This AI clarifies dispatching rules, and simply confirms that dispatching
!   executes the operation of the parent type when there is no explicitly or
!   implicitly declared operation for the descendant type. This has always been
!   the case in all versions of GNAT.
  
!   RM References:  3.09.02 (20/2)   3.09.02 (20.1/2)   3.09.02 (20.2/2)
  
! .. index:: AI-0127 (Ada 2012 feature)
  
! * *AI-0127 Adding Locale Capabilities (2010-09-29)*
  
!   This package provides an interface for identifying the current locale.
  
!   RM References:  A.19    A.19.01    A.19.02    A.19.03    A.19.05    A.19.06
!   A.19.07    A.19.08    A.19.09    A.19.10    A.19.11    A.19.12    A.19.13
  
! .. index:: AI-0128 (Ada 2012 feature)
  
! * *AI-0128 Inequality is a primitive operation (0000-00-00)*
  
!   If an equality operator ("=") is declared for a type, then the implicitly
!   declared inequality operator ("/=") is a primitive operation of the type.
!   This is the only reasonable interpretation, and is the one always implemented
!   by GNAT, but the RM was not entirely clear in making this point.
  
!   RM References:  3.02.03 (6)   6.06 (6)
  
  .. index:: AI-0129 (Ada 2012 feature)
  
*************** Supported Aspect                     Sou
*** 809,843 ****
  
    RM References:  10.01.01 (12.2/2)   10.01.01 (12.3/2)
  
- .. index:: AI-0077 (Ada 2012 feature)
- 
- * *AI-0077 Limited withs and scope of declarations (0000-00-00)*
- 
-   This AI clarifies that a declaration does not include a context clause,
-   and confirms that it is illegal to have a context in which both a limited
-   and a nonlimited view of a package are accessible. Such double visibility
-   was always rejected by GNAT.
- 
-   RM References:  10.01.02 (12/2)   10.01.02 (21/2)   10.01.02 (22/2)
- 
- .. index:: AI-0122 (Ada 2012 feature)
- 
- * *AI-0122 Private with and children of generics (0000-00-00)*
- 
-   This AI clarifies the visibility of private children of generic units within
-   instantiations of a parent. GNAT has always handled this correctly.
- 
-   RM References:  10.01.02 (12/2)
- 
- .. index:: AI-0040 (Ada 2012 feature)
- 
- * *AI-0040 Limited with clauses on descendant (0000-00-00)*
- 
-   This AI confirms that a limited with clause in a child unit cannot name
-   an ancestor of the unit. This has always been checked in GNAT.
- 
-   RM References:  10.01.02 (20/2)
- 
  .. index:: AI-0132 (Ada 2012 feature)
  
  * *AI-0132 Placement of library unit pragmas (0000-00-00)*
--- 766,771 ----
*************** Supported Aspect                     Sou
*** 848,1022 ****
  
    RM References:  10.01.05 (7)
  
! .. index:: AI-0034 (Ada 2012 feature)
! 
! * *AI-0034 Categorization of limited views (0000-00-00)*
  
!   The RM makes certain limited with clauses illegal because of categorization
!   considerations, when the corresponding normal with would be legal. This is
!   not intended, and GNAT has always implemented the recommended behavior.
  
!   RM References:  10.02.01 (11/1)   10.02.01 (17/2)
  
! .. index:: AI-0035 (Ada 2012 feature)
  
! * *AI-0035 Inconsistencies with Pure units (0000-00-00)*
  
!   This AI remedies some inconsistencies in the legality rules for Pure units.
!   Derived access types are legal in a pure unit (on the assumption that the
!   rule for a zero storage pool size has been enforced on the ancestor type).
!   The rules are enforced in generic instances and in subunits. GNAT has always
!   implemented the recommended behavior.
  
!   RM References:  10.02.01 (15.1/2)   10.02.01 (15.4/2)   10.02.01 (15.5/2)   10.02.01 (17/2)
  
! .. index:: AI-0219 (Ada 2012 feature)
  
! * *AI-0219 Pure permissions and limited parameters (2010-05-25)*
  
!   This AI refines the rules for the cases with limited parameters which do not
!   allow the implementations to omit 'redundant'. GNAT now properly conforms
!   to the requirements of this binding interpretation.
  
!   RM References:  10.02.01 (18/2)
  
! .. index:: AI-0043 (Ada 2012 feature)
  
! * *AI-0043 Rules about raising exceptions (0000-00-00)*
  
!   This AI covers various omissions in the RM regarding the raising of
!   exceptions. GNAT has always implemented the intended semantics.
  
!   RM References:  11.04.01 (10.1/2)   11 (2)
  
! .. index:: AI-0200 (Ada 2012 feature)
  
! * *AI-0200 Mismatches in formal package declarations (0000-00-00)*
  
!   This AI plugs a gap in the RM which appeared to allow some obviously intended
!   illegal instantiations. GNAT has never allowed these instantiations.
  
!   RM References:  12.07 (16)
  
! .. index:: AI-0112 (Ada 2012 feature)
  
! * *AI-0112 Detection of duplicate pragmas (2010-07-24)*
  
!   This AI concerns giving names to various representation aspects, but the
!   practical effect is simply to make the use of duplicate
!   ``Atomic[_Components]``,
!   ``Volatile[_Components]``, and
!   ``Independent[_Components]`` pragmas illegal, and GNAT
!   now performs this required check.
  
!   RM References:  13.01 (8)
  
! .. index:: AI-0106 (Ada 2012 feature)
  
! * *AI-0106 No representation pragmas on generic formals (0000-00-00)*
  
!   The RM appeared to allow representation pragmas on generic formal parameters,
!   but this was not intended, and GNAT has never permitted this usage.
  
!   RM References:  13.01 (9.1/1)
  
! .. index:: AI-0012 (Ada 2012 feature)
  
! * *AI-0012 Pack/Component_Size for aliased/atomic (2010-07-15)*
  
!   It is now illegal to give an inappropriate component size or a pragma
!   ``Pack`` that attempts to change the component size in the case of atomic
!   or aliased components. Previously GNAT ignored such an attempt with a
!   warning.
  
!   RM References:  13.02 (6.1/2)   13.02 (7)   C.06 (10)   C.06 (11)   C.06 (21)
  
! .. index:: AI-0039 (Ada 2012 feature)
  
! * *AI-0039 Stream attributes cannot be dynamic (0000-00-00)*
  
!   The RM permitted the use of dynamic expressions (such as ``ptr.all``)`
!   for stream attributes, but these were never useful and are now illegal. GNAT
!   has always regarded such expressions as illegal.
  
!   RM References:  13.03 (4)   13.03 (6)   13.13.02 (38/2)
  
! .. index:: AI-0095 (Ada 2012 feature)
  
! * *AI-0095 Address of intrinsic subprograms (0000-00-00)*
  
!   The prefix of ``'Address`` cannot statically denote a subprogram with
!   convention ``Intrinsic``. The use of the ``Address`` attribute raises
!   ``Program_Error`` if the prefix denotes a subprogram with convention
!   ``Intrinsic``.
  
!   RM References:  13.03 (11/1)
  
! .. index:: AI-0116 (Ada 2012 feature)
  
! * *AI-0116 Alignment of class-wide objects (0000-00-00)*
  
!   This AI requires that the alignment of a class-wide object be no greater
!   than the alignment of any type in the class. GNAT has always followed this
!   recommendation.
  
!   RM References:  13.03 (29)   13.11 (16)
  
! .. index:: AI-0146 (Ada 2012 feature)
  
! * *AI-0146 Type invariants (2009-09-21)*
  
!   Type invariants may be specified for private types using the aspect notation.
!   Aspect ``Type_Invariant`` may be specified for any private type,
!   ``Type_Invariant'Class`` can
!   only be specified for tagged types, and is inherited by any descendent of the
!   tagged types. The invariant is a boolean expression that is tested for being
!   true in the following situations: conversions to the private type, object
!   declarations for the private type that are default initialized, and
!   [**in**] **out**
!   parameters and returned result on return from any primitive operation for
!   the type that is visible to a client.
!   GNAT defines the synonyms ``Invariant`` for ``Type_Invariant`` and
!   ``Invariant'Class`` for ``Type_Invariant'Class``.
  
!   RM References:  13.03.03 (00)
  
! .. index:: AI-0078 (Ada 2012 feature)
  
! * *AI-0078 Relax Unchecked_Conversion alignment rules (0000-00-00)*
  
!   In Ada 2012, compilers are required to support unchecked conversion where the
!   target alignment is a multiple of the source alignment. GNAT always supported
!   this case (and indeed all cases of differing alignments, doing copies where
!   required if the alignment was reduced).
  
!   RM References:  13.09 (7)
  
! .. index:: AI-0195 (Ada 2012 feature)
  
! * *AI-0195 Invalid value handling is implementation defined (2010-07-03)*
  
!   The handling of invalid values is now designated to be implementation
!   defined. This is a documentation change only, requiring Annex M in the GNAT
!   Reference Manual to document this handling.
!   In GNAT, checks for invalid values are made
!   only when necessary to avoid erroneous behavior. Operations like assignments
!   which cannot cause erroneous behavior ignore the possibility of invalid
!   values and do not do a check. The date given above applies only to the
!   documentation change, this behavior has always been implemented by GNAT.
  
!   RM References:  13.09.01 (10)
  
! .. index:: AI-0193 (Ada 2012 feature)
  
! * *AI-0193 Alignment of allocators (2010-09-16)*
  
!   This AI introduces a new attribute ``Max_Alignment_For_Allocation``,
!   analogous to ``Max_Size_In_Storage_Elements``, but for alignment instead
!   of size.
  
!   RM References:  13.11 (16)   13.11 (21)   13.11.01 (0)   13.11.01 (1)
!   13.11.01 (2)   13.11.01 (3)
  
  .. index:: AI-0177 (Ada 2012 feature)
  
--- 776,948 ----
  
    RM References:  10.01.05 (7)
  
! .. index:: AI-0134 (Ada 2012 feature)
  
! * *AI-0134 Profiles must match for full conformance (0000-00-00)*
  
!   For full conformance, the profiles of anonymous-access-to-subprogram
!   parameters must match. GNAT has always enforced this rule.
  
!   RM References:  6.03.01 (18)
  
! .. index:: AI-0137 (Ada 2012 feature)
  
! * *AI-0137 String encoding package (2010-03-25)*
  
!   The packages ``Ada.Strings.UTF_Encoding``, together with its child
!   packages, ``Conversions``, ``Strings``, ``Wide_Strings``,
!   and ``Wide_Wide_Strings`` have been
!   implemented. These packages (whose documentation can be found in the spec
!   files :file:`a-stuten.ads`, :file:`a-suenco.ads`, :file:`a-suenst.ads`,
!   :file:`a-suewst.ads`, :file:`a-suezst.ads`) allow encoding and decoding of
!   ``String``, ``Wide_String``, and ``Wide_Wide_String``
!   values using UTF coding schemes (including UTF-8, UTF-16LE, UTF-16BE, and
!   UTF-16), as well as conversions between the different UTF encodings. With
!   the exception of ``Wide_Wide_Strings``, these packages are available in
!   Ada 95 and Ada 2005 mode as well as Ada 2012 mode.
!   The ``Wide_Wide_Strings`` package
!   is available in Ada 2005 mode as well as Ada 2012 mode (but not in Ada 95
!   mode since it uses ``Wide_Wide_Character``).
  
!   RM References:  A.04.11
  
! .. index:: AI-0139-2 (Ada 2012 feature)
  
! * *AI-0139-2 Syntactic sugar for iterators (2010-09-29)*
  
!   The new syntax for iterating over arrays and containers is now implemented.
!   Iteration over containers is for now limited to read-only iterators. Only
!   default iterators are supported, with the syntax: ``for Elem of C``.
  
!   RM References:  5.05
  
! .. index:: AI-0146 (Ada 2012 feature)
  
! * *AI-0146 Type invariants (2009-09-21)*
  
!   Type invariants may be specified for private types using the aspect notation.
!   Aspect ``Type_Invariant`` may be specified for any private type,
!   ``Type_Invariant'Class`` can
!   only be specified for tagged types, and is inherited by any descendent of the
!   tagged types. The invariant is a boolean expression that is tested for being
!   true in the following situations: conversions to the private type, object
!   declarations for the private type that are default initialized, and
!   [**in**] **out**
!   parameters and returned result on return from any primitive operation for
!   the type that is visible to a client.
!   GNAT defines the synonyms ``Invariant`` for ``Type_Invariant`` and
!   ``Invariant'Class`` for ``Type_Invariant'Class``.
  
!   RM References:  13.03.03 (00)
  
! .. index:: AI-0147 (Ada 2012 feature)
  
! * *AI-0147 Conditional expressions (2009-03-29)*
  
!   Conditional expressions are permitted. The form of such an expression is:
  
!   ::
  
!         (if expr then expr {elsif expr then expr} [else expr])
  
!   The parentheses can be omitted in contexts where parentheses are present
!   anyway, such as subprogram arguments and pragma arguments. If the **else**
!   clause is omitted, **else** *True* is assumed;
!   thus ``(if A then B)`` is a way to conveniently represent
!   *(A implies B)* in standard logic.
  
!   RM References:  4.03.03 (15)   4.04 (1)   4.04 (7)   4.05.07 (0)   4.07 (2)
!   4.07 (3)   4.09 (12)   4.09 (33)   5.03 (3)   5.03 (4)   7.05 (2.1/2)
  
! .. index:: AI-0152 (Ada 2012 feature)
  
! * *AI-0152 Restriction No_Anonymous_Allocators (2010-09-08)*
  
!   Restriction ``No_Anonymous_Allocators`` prevents the use of allocators
!   where the type of the returned value is an anonymous access type.
  
!   RM References:  H.04 (8/1)
  
! .. index:: AI-0157 (Ada 2012 feature)
  
! * *AI-0157 Allocation/Deallocation from empty pool (2010-07-11)*
  
!   Allocation and Deallocation from an empty storage pool (i.e. allocation or
!   deallocation of a pointer for which a static storage size clause of zero
!   has been given) is now illegal and is detected as such. GNAT
!   previously gave a warning but not an error.
  
!   RM References:  4.08 (5.3/2)   13.11.02 (4)   13.11.02 (17)
  
! .. index:: AI-0158 (Ada 2012 feature)
  
! * *AI-0158 Generalizing membership tests (2010-09-16)*
  
!   This AI extends the syntax of membership tests to simplify complex conditions
!   that can be expressed as membership in a subset of values of any type. It
!   introduces syntax for a list of expressions that may be used in loop contexts
!   as well.
  
!   RM References:  3.08.01 (5)   4.04 (3)   4.05.02 (3)   4.05.02 (5)   4.05.02 (27)
  
! .. index:: AI-0161 (Ada 2012 feature)
  
! * *AI-0161 Restriction No_Default_Stream_Attributes (2010-09-11)*
  
!   A new restriction ``No_Default_Stream_Attributes`` prevents the use of any
!   of the default stream attributes for elementary types. If this restriction is
!   in force, then it is necessary to provide explicit subprograms for any
!   stream attributes used.
  
!   RM References:  13.12.01 (4/2)   13.13.02 (40/2)   13.13.02 (52/2)
  
! .. index:: AI-0162 (Ada 2012 feature)
  
! * *AI-0162 Incomplete type completed by partial view (2010-09-15)*
  
!   Incomplete types are made more useful by allowing them to be completed by
!   private types and private extensions.
  
!   RM References:  3.10.01 (2.5/2)   3.10.01 (2.6/2)   3.10.01 (3)   3.10.01 (4/2)
  
! .. index:: AI-0163 (Ada 2012 feature)
  
! * *AI-0163 Pragmas in place of null (2010-07-01)*
  
!   A statement sequence may be composed entirely of pragmas. It is no longer
!   necessary to add a dummy ``null`` statement to make the sequence legal.
  
!   RM References:  2.08 (7)   2.08 (16)
  
! .. index:: AI-0171 (Ada 2012 feature)
  
! * *AI-0171 Pragma CPU and Ravenscar Profile (2010-09-24)*
  
!   A new package ``System.Multiprocessors`` is added, together with the
!   definition of pragma ``CPU`` for controlling task affinity. A new no
!   dependence restriction, on ``System.Multiprocessors.Dispatching_Domains``,
!   is added to the Ravenscar profile.
  
!   RM References:  D.13.01 (4/2)   D.16
  
! .. index:: AI-0173 (Ada 2012 feature)
  
! * *AI-0173 Testing if tags represent abstract types (2010-07-03)*
  
!   The function ``Ada.Tags.Type_Is_Abstract`` returns ``True`` if invoked
!   with the tag of an abstract type, and ``False`` otherwise.
  
!   RM References:  3.09 (7.4/2)   3.09 (12.4/2)
  
! .. index:: AI-0176 (Ada 2012 feature)
  
! * *AI-0176 Quantified expressions (2010-09-29)*
  
!   Both universally and existentially quantified expressions are implemented.
!   They use the new syntax for iterators proposed in AI05-139-2, as well as
!   the standard Ada loop syntax.
  
!   RM References:  1.01.04 (12)   2.09 (2/2)   4.04 (7)   4.05.09 (0)
  
  .. index:: AI-0177 (Ada 2012 feature)
  
*************** Supported Aspect                     Sou
*** 1035,1306 ****
  
    RM References:  13.11.01 (3/2)
  
! .. index:: AI-0033 (Ada 2012 feature)
  
! * *AI-0033 Attach/Interrupt_Handler in generic (2010-07-24)*
  
!   Neither of these two pragmas may appear within a generic template, because
!   the generic might be instantiated at other than the library level.
  
!   RM References:  13.11.02 (16)   C.03.01 (7/2)   C.03.01 (8/2)
  
! .. index:: AI-0161 (Ada 2012 feature)
  
! * *AI-0161 Restriction No_Default_Stream_Attributes (2010-09-11)*
  
!   A new restriction ``No_Default_Stream_Attributes`` prevents the use of any
!   of the default stream attributes for elementary types. If this restriction is
!   in force, then it is necessary to provide explicit subprograms for any
!   stream attributes used.
  
!   RM References:  13.12.01 (4/2)   13.13.02 (40/2)   13.13.02 (52/2)
  
! .. index:: AI-0194 (Ada 2012 feature)
  
! * *AI-0194 Value of Stream_Size attribute (0000-00-00)*
  
!   The ``Stream_Size`` attribute returns the default number of bits in the
!   stream representation of the given type.
!   This value is not affected by the presence
!   of stream subprogram attributes for the type. GNAT has always implemented
!   this interpretation.
  
!   RM References:  13.13.02 (1.2/2)
  
! .. index:: AI-0109 (Ada 2012 feature)
  
! * *AI-0109 Redundant check in S'Class'Input (0000-00-00)*
  
!   This AI is an editorial change only. It removes the need for a tag check
!   that can never fail.
  
!   RM References:  13.13.02 (34/2)
  
! .. index:: AI-0007 (Ada 2012 feature)
  
! * *AI-0007 Stream read and private scalar types (0000-00-00)*
  
!   The RM as written appeared to limit the possibilities of declaring read
!   attribute procedures for private scalar types. This limitation was not
!   intended, and has never been enforced by GNAT.
  
!   RM References:  13.13.02 (50/2)   13.13.02 (51/2)
  
! .. index:: AI-0065 (Ada 2012 feature)
  
! * *AI-0065 Remote access types and external streaming (0000-00-00)*
  
!   This AI clarifies the fact that all remote access types support external
!   streaming. This fixes an obvious oversight in the definition of the
!   language, and GNAT always implemented the intended correct rules.
  
!   RM References:  13.13.02 (52/2)
  
! .. index:: AI-0019 (Ada 2012 feature)
  
! * *AI-0019 Freezing of primitives for tagged types (0000-00-00)*
  
!   The RM suggests that primitive subprograms of a specific tagged type are
!   frozen when the tagged type is frozen. This would be an incompatible change
!   and is not intended. GNAT has never attempted this kind of freezing and its
!   behavior is consistent with the recommendation of this AI.
  
!   RM References:  13.14 (2)   13.14 (3/1)   13.14 (8.1/1)   13.14 (10)   13.14 (14)   13.14 (15.1/2)
  
! .. index:: AI-0017 (Ada 2012 feature)
  
! * *AI-0017 Freezing and incomplete types (0000-00-00)*
  
!   So-called 'Taft-amendment types' (i.e., types that are completed in package
!   bodies) are not frozen by the occurrence of bodies in the
!   enclosing declarative part. GNAT always implemented this properly.
  
!   RM References:  13.14 (3/1)
  
! .. index:: AI-0060 (Ada 2012 feature)
  
! * *AI-0060 Extended definition of remote access types (0000-00-00)*
  
!   This AI extends the definition of remote access types to include access
!   to limited, synchronized, protected or task class-wide interface types.
!   GNAT already implemented this extension.
  
!   RM References:  A (4)   E.02.02 (9/1)   E.02.02 (9.2/1)   E.02.02 (14/2)   E.02.02 (18)
  
! .. index:: AI-0114 (Ada 2012 feature)
  
! * *AI-0114 Classification of letters (0000-00-00)*
  
!   The code points 170 (``FEMININE ORDINAL INDICATOR``),
!   181 (``MICRO SIGN``), and
!   186 (``MASCULINE ORDINAL INDICATOR``) are technically considered
!   lower case letters by Unicode.
!   However, they are not allowed in identifiers, and they
!   return ``False`` to ``Ada.Characters.Handling.Is_Letter/Is_Lower``.
!   This behavior is consistent with that defined in Ada 95.
  
!   RM References:  A.03.02 (59)   A.04.06 (7)
  
! .. index:: AI-0185 (Ada 2012 feature)
  
! * *AI-0185 Ada.Wide_[Wide_]Characters.Handling (2010-07-06)*
  
!   Two new packages ``Ada.Wide_[Wide_]Characters.Handling`` provide
!   classification functions for ``Wide_Character`` and
!   ``Wide_Wide_Character``, as well as providing
!   case folding routines for ``Wide_[Wide_]Character`` and
!   ``Wide_[Wide_]String``.
  
!   RM References:  A.03.05 (0)   A.03.06 (0)
  
! .. index:: AI-0031 (Ada 2012 feature)
  
! * *AI-0031 Add From parameter to Find_Token (2010-07-25)*
  
!   A new version of ``Find_Token`` is added to all relevant string packages,
!   with an extra parameter ``From``. Instead of starting at the first
!   character of the string, the search for a matching Token starts at the
!   character indexed by the value of ``From``.
!   These procedures are available in all versions of Ada
!   but if used in versions earlier than Ada 2012 they will generate a warning
!   that an Ada 2012 subprogram is being used.
  
!   RM References:  A.04.03 (16)   A.04.03 (67)   A.04.03 (68/1)   A.04.04 (51)
!   A.04.05 (46)
  
! .. index:: AI-0056 (Ada 2012 feature)
  
! * *AI-0056 Index on null string returns zero (0000-00-00)*
  
!   The wording in the Ada 2005 RM implied an incompatible handling of the
!   ``Index`` functions, resulting in raising an exception instead of
!   returning zero in some situations.
!   This was not intended and has been corrected.
!   GNAT always returned zero, and is thus consistent with this AI.
  
!   RM References:  A.04.03 (56.2/2)   A.04.03 (58.5/2)
  
! .. index:: AI-0137 (Ada 2012 feature)
  
! * *AI-0137 String encoding package (2010-03-25)*
  
!   The packages ``Ada.Strings.UTF_Encoding``, together with its child
!   packages, ``Conversions``, ``Strings``, ``Wide_Strings``,
!   and ``Wide_Wide_Strings`` have been
!   implemented. These packages (whose documentation can be found in the spec
!   files :file:`a-stuten.ads`, :file:`a-suenco.ads`, :file:`a-suenst.ads`,
!   :file:`a-suewst.ads`, :file:`a-suezst.ads`) allow encoding and decoding of
!   ``String``, ``Wide_String``, and ``Wide_Wide_String``
!   values using UTF coding schemes (including UTF-8, UTF-16LE, UTF-16BE, and
!   UTF-16), as well as conversions between the different UTF encodings. With
!   the exception of ``Wide_Wide_Strings``, these packages are available in
!   Ada 95 and Ada 2005 mode as well as Ada 2012 mode.
!   The ``Wide_Wide_Strings`` package
!   is available in Ada 2005 mode as well as Ada 2012 mode (but not in Ada 95
!   mode since it uses ``Wide_Wide_Character``).
  
!   RM References:  A.04.11
  
! .. index:: AI-0038 (Ada 2012 feature)
  
! * *AI-0038 Minor errors in Text_IO (0000-00-00)*
  
!   These are minor errors in the description on three points. The intent on
!   all these points has always been clear, and GNAT has always implemented the
!   correct intended semantics.
  
!   RM References:  A.10.05 (37)   A.10.07 (8/1)   A.10.07 (10)   A.10.07 (12)   A.10.08 (10)   A.10.08 (24)
  
! .. index:: AI-0044 (Ada 2012 feature)
  
! * *AI-0044 Restrictions on container instantiations (0000-00-00)*
  
!   This AI places restrictions on allowed instantiations of generic containers.
!   These restrictions are not checked by the compiler, so there is nothing to
!   change in the implementation. This affects only the RM documentation.
  
!   RM References:  A.18 (4/2)   A.18.02 (231/2)   A.18.03 (145/2)   A.18.06 (56/2)   A.18.08 (66/2)   A.18.09 (79/2)   A.18.26 (5/2)   A.18.26 (9/2)
  
! .. index:: AI-0127 (Ada 2012 feature)
  
! * *AI-0127 Adding Locale Capabilities (2010-09-29)*
  
!   This package provides an interface for identifying the current locale.
  
!   RM References:  A.19    A.19.01    A.19.02    A.19.03    A.19.05    A.19.06
!   A.19.07    A.19.08    A.19.09    A.19.10    A.19.11    A.19.12    A.19.13
  
! .. index:: AI-0002 (Ada 2012 feature)
  
! * *AI-0002 Export C with unconstrained arrays (0000-00-00)*
  
!   The compiler is not required to support exporting an Ada subprogram with
!   convention C if there are parameters or a return type of an unconstrained
!   array type (such as ``String``). GNAT allows such declarations but
!   generates warnings. It is possible, but complicated, to write the
!   corresponding C code and certainly such code would be specific to GNAT and
!   non-portable.
  
!   RM References:  B.01 (17)   B.03 (62)   B.03 (71.1/2)
  
! .. index:: AI05-0216 (Ada 2012 feature)
  
! * *AI-0216 No_Task_Hierarchy forbids local tasks (0000-00-00)*
  
!   It is clearly the intention that ``No_Task_Hierarchy`` is intended to
!   forbid tasks declared locally within subprograms, or functions returning task
!   objects, and that is the implementation that GNAT has always provided.
!   However the language in the RM was not sufficiently clear on this point.
!   Thus this is a documentation change in the RM only.
  
!   RM References:  D.07 (3/3)
  
! .. index:: AI-0211 (Ada 2012 feature)
  
! * *AI-0211 No_Relative_Delays forbids Set_Handler use (2010-07-09)*
  
!   The restriction ``No_Relative_Delays`` forbids any calls to the subprogram
!   ``Ada.Real_Time.Timing_Events.Set_Handler``.
  
!   RM References:  D.07 (5)   D.07 (10/2)   D.07 (10.4/2)   D.07 (10.7/2)
  
! .. index:: AI-0190 (Ada 2012 feature)
  
! * *AI-0190 pragma Default_Storage_Pool (2010-09-15)*
  
!   This AI introduces a new pragma ``Default_Storage_Pool``, which can be
!   used to control storage pools globally.
!   In particular, you can force every access
!   type that is used for allocation (**new**) to have an explicit storage pool,
!   or you can declare a pool globally to be used for all access types that lack
!   an explicit one.
  
!   RM References:  D.07 (8)
  
! .. index:: AI-0189 (Ada 2012 feature)
  
! * *AI-0189 No_Allocators_After_Elaboration (2010-01-23)*
  
!   This AI introduces a new restriction ``No_Allocators_After_Elaboration``,
!   which says that no dynamic allocation will occur once elaboration is
!   completed.
!   In general this requires a run-time check, which is not required, and which
!   GNAT does not attempt. But the static cases of allocators in a task body or
!   in the body of the main program are detected and flagged at compile or bind
!   time.
  
!   RM References:  D.07 (19.1/2)   H.04 (23.3/2)
  
! .. index:: AI-0171 (Ada 2012 feature)
  
! * *AI-0171 Pragma CPU and Ravenscar Profile (2010-09-24)*
  
!   A new package ``System.Multiprocessors`` is added, together with the
!   definition of pragma ``CPU`` for controlling task affinity. A new no
!   dependence restriction, on ``System.Multiprocessors.Dispatching_Domains``,
!   is added to the Ravenscar profile.
  
!   RM References:  D.13.01 (4/2)   D.16
  
  .. index:: AI-0210 (Ada 2012 feature)
  
--- 961,1272 ----
  
    RM References:  13.11.01 (3/2)
  
! .. index:: AI-0178 (Ada 2012 feature)
  
! * *AI-0178 Incomplete views are limited (0000-00-00)*
  
!   This AI clarifies the role of incomplete views and plugs an omission in the
!   RM. GNAT always correctly restricted the use of incomplete views and types.
  
!   RM References:  7.05 (3/2)   7.05 (6/2)
  
! .. index:: AI-0179 (Ada 2012 feature)
  
! * *AI-0179 Statement not required after label (2010-04-10)*
  
!   It is not necessary to have a statement following a label, so a label
!   can appear at the end of a statement sequence without the need for putting a
!   null statement afterwards, but it is not allowable to have only labels and
!   no real statements in a statement sequence.
  
!   RM References:  5.01 (2)
  
! .. index:: AI-0181 (Ada 2012 feature)
  
! * *AI-0181 Soft hyphen is a non-graphic character (2010-07-23)*
  
!   From Ada 2005 on, soft hyphen is considered a non-graphic character, which
!   means that it has a special name (``SOFT_HYPHEN``) in conjunction with the
!   ``Image`` and ``Value`` attributes for the character types. Strictly
!   speaking this is an inconsistency with Ada 95, but in practice the use of
!   these attributes is so obscure that it will not cause problems.
  
!   RM References:  3.05.02 (2/2)   A.01 (35/2)   A.03.03 (21)
  
! .. index:: AI-0182 (Ada 2012 feature)
  
! * *AI-0182 Additional forms for* ``Character'Value`` *(0000-00-00)*
  
!   This AI allows ``Character'Value`` to accept the string ``'?'`` where
!   ``?`` is any character including non-graphic control characters. GNAT has
!   always accepted such strings. It also allows strings such as
!   ``HEX_00000041`` to be accepted, but GNAT does not take advantage of this
!   permission and raises ``Constraint_Error``, as is certainly still
!   permitted.
  
!   RM References:  3.05 (56/2)
  
! .. index:: AI-0183 (Ada 2012 feature)
  
! * *AI-0183 Aspect specifications (2010-08-16)*
  
!   Aspect specifications have been fully implemented except for pre and post-
!   conditions, and type invariants, which have their own separate AI's. All
!   forms of declarations listed in the AI are supported. The following is a
!   list of the aspects supported (with GNAT implementation aspects marked)
  
! ==================================== ===========
! Supported Aspect                     Source
! ==================================== ===========
!   ``Ada_2005``                           -- GNAT
!   ``Ada_2012``                           -- GNAT
!   ``Address``
!   ``Alignment``
!   ``Atomic``
!   ``Atomic_Components``
!   ``Bit_Order``
!   ``Component_Size``
!   ``Contract_Cases``                     -- GNAT
!   ``Discard_Names``
!   ``External_Tag``
!   ``Favor_Top_Level``                    -- GNAT
!   ``Inline``
!   ``Inline_Always``                      -- GNAT
!   ``Invariant``                          -- GNAT
!   ``Machine_Radix``
!   ``No_Return``
!   ``Object_Size``                        -- GNAT
!   ``Pack``
!   ``Persistent_BSS``                     -- GNAT
!   ``Post``
!   ``Pre``
!   ``Predicate``
!   ``Preelaborable_Initialization``
!   ``Pure_Function``                      -- GNAT
!   ``Remote_Access_Type``                 -- GNAT
!   ``Shared``                             -- GNAT
!   ``Size``
!   ``Storage_Pool``
!   ``Storage_Size``
!   ``Stream_Size``
!   ``Suppress``
!   ``Suppress_Debug_Info``                -- GNAT
!   ``Test_Case``                          -- GNAT
!   ``Thread_Local_Storage``               -- GNAT
!   ``Type_Invariant``
!   ``Unchecked_Union``
!   ``Universal_Aliasing``                 -- GNAT
!   ``Unmodified``                         -- GNAT
!   ``Unreferenced``                       -- GNAT
!   ``Unreferenced_Objects``               -- GNAT
!   ``Unsuppress``
!   ``Value_Size``                         -- GNAT
!   ``Volatile``
!   ``Volatile_Components``
!   ``Warnings``                           -- GNAT
! ==================================== ===========
  
!   Note that for aspects with an expression, e.g. ``Size``, the expression is
!   treated like a default expression (visibility is analyzed at the point of
!   occurrence of the aspect, but evaluation of the expression occurs at the
!   freeze point of the entity involved).
  
!   RM References:  3.02.01 (3)   3.02.02 (2)   3.03.01 (2/2)   3.08 (6)
!   3.09.03 (1.1/2)   6.01 (2/2)   6.07 (2/2)   9.05.02 (2/2)   7.01 (3)   7.03
!   (2)   7.03 (3)   9.01 (2/2)   9.01 (3/2)   9.04 (2/2)   9.04 (3/2)
!   9.05.02 (2/2)   11.01 (2)   12.01 (3)   12.03 (2/2)   12.04 (2/2)   12.05 (2)
!   12.06 (2.1/2)   12.06 (2.2/2)   12.07 (2)   13.01 (0.1/2)   13.03 (5/1)
!   13.03.01 (0)
  
! .. index:: AI-0185 (Ada 2012 feature)
  
! * *AI-0185 Ada.Wide_[Wide_]Characters.Handling (2010-07-06)*
  
!   Two new packages ``Ada.Wide_[Wide_]Characters.Handling`` provide
!   classification functions for ``Wide_Character`` and
!   ``Wide_Wide_Character``, as well as providing
!   case folding routines for ``Wide_[Wide_]Character`` and
!   ``Wide_[Wide_]String``.
  
!   RM References:  A.03.05 (0)   A.03.06 (0)
  
! .. index:: AI-0188 (Ada 2012 feature)
  
! * *AI-0188 Case expressions (2010-01-09)*
  
!   Case expressions are permitted. This allows use of constructs such as:
  
!   .. code-block:: ada
  
!       X := (case Y is when 1 => 2, when 2 => 3, when others => 31)
  
!   RM References:  4.05.07 (0)   4.05.08 (0)   4.09 (12)   4.09 (33)
  
! .. index:: AI-0189 (Ada 2012 feature)
  
! * *AI-0189 No_Allocators_After_Elaboration (2010-01-23)*
  
!   This AI introduces a new restriction ``No_Allocators_After_Elaboration``,
!   which says that no dynamic allocation will occur once elaboration is
!   completed.
!   In general this requires a run-time check, which is not required, and which
!   GNAT does not attempt. But the static cases of allocators in a task body or
!   in the body of the main program are detected and flagged at compile or bind
!   time.
  
!   RM References:  D.07 (19.1/2)   H.04 (23.3/2)
  
! .. index:: AI-0190 (Ada 2012 feature)
  
! * *AI-0190 pragma Default_Storage_Pool (2010-09-15)*
  
!   This AI introduces a new pragma ``Default_Storage_Pool``, which can be
!   used to control storage pools globally.
!   In particular, you can force every access
!   type that is used for allocation (**new**) to have an explicit storage pool,
!   or you can declare a pool globally to be used for all access types that lack
!   an explicit one.
  
!   RM References:  D.07 (8)
  
! .. index:: AI-0193 (Ada 2012 feature)
  
! * *AI-0193 Alignment of allocators (2010-09-16)*
  
!   This AI introduces a new attribute ``Max_Alignment_For_Allocation``,
!   analogous to ``Max_Size_In_Storage_Elements``, but for alignment instead
!   of size.
  
!   RM References:  13.11 (16)   13.11 (21)   13.11.01 (0)   13.11.01 (1)
!   13.11.01 (2)   13.11.01 (3)
  
! .. index:: AI-0194 (Ada 2012 feature)
  
! * *AI-0194 Value of Stream_Size attribute (0000-00-00)*
  
!   The ``Stream_Size`` attribute returns the default number of bits in the
!   stream representation of the given type.
!   This value is not affected by the presence
!   of stream subprogram attributes for the type. GNAT has always implemented
!   this interpretation.
  
!   RM References:  13.13.02 (1.2/2)
  
! .. index:: AI-0195 (Ada 2012 feature)
  
! * *AI-0195 Invalid value handling is implementation defined (2010-07-03)*
  
!   The handling of invalid values is now designated to be implementation
!   defined. This is a documentation change only, requiring Annex M in the GNAT
!   Reference Manual to document this handling.
!   In GNAT, checks for invalid values are made
!   only when necessary to avoid erroneous behavior. Operations like assignments
!   which cannot cause erroneous behavior ignore the possibility of invalid
!   values and do not do a check. The date given above applies only to the
!   documentation change, this behavior has always been implemented by GNAT.
  
!   RM References:  13.09.01 (10)
  
! .. index:: AI-0196 (Ada 2012 feature)
  
! * *AI-0196 Null exclusion tests for out parameters (0000-00-00)*
  
!   Null exclusion checks are not made for ``out`` parameters when
!   evaluating the actual parameters. GNAT has never generated these checks.
  
!   RM References:  6.04.01 (13)
  
! .. index:: AI-0198 (Ada 2012 feature)
  
! * *AI-0198 Inheriting abstract operators  (0000-00-00)*
  
!   This AI resolves a conflict between two rules involving inherited abstract
!   operations and predefined operators. If a derived numeric type inherits
!   an abstract operator, it overrides the predefined one. This interpretation
!   was always the one implemented in GNAT.
  
!   RM References:  3.09.03 (4/3)
  
! .. index:: AI-0199 (Ada 2012 feature)
  
! * *AI-0199 Aggregate with anonymous access components (2010-07-14)*
  
!   A choice list in a record aggregate can include several components of
!   (distinct) anonymous access types as long as they have matching designated
!   subtypes.
  
!   RM References:  4.03.01 (16)
  
! .. index:: AI-0200 (Ada 2012 feature)
  
! * *AI-0200 Mismatches in formal package declarations (0000-00-00)*
  
!   This AI plugs a gap in the RM which appeared to allow some obviously intended
!   illegal instantiations. GNAT has never allowed these instantiations.
  
!   RM References:  12.07 (16)
  
! .. index:: AI-0201 (Ada 2012 feature)
  
! * *AI-0201 Independence of atomic object components (2010-07-22)*
  
!   If an Atomic object has a pragma ``Pack`` or a ``Component_Size``
!   attribute, then individual components may not be addressable by independent
!   tasks. However, if the representation clause has no effect (is confirming),
!   then independence is not compromised. Furthermore, in GNAT, specification of
!   other appropriately addressable component sizes (e.g. 16 for 8-bit
!   characters) also preserves independence. GNAT now gives very clear warnings
!   both for the declaration of such a type, and for any assignment to its components.
  
!   RM References:  9.10 (1/3)   C.06 (22/2)   C.06 (23/2)
  
! .. index:: AI-0203 (Ada 2012 feature)
  
! * *AI-0203 Extended return cannot be abstract (0000-00-00)*
  
!   A return_subtype_indication cannot denote an abstract subtype. GNAT has never
!   permitted such usage.
  
!   RM References:  3.09.03 (8/3)
  
! .. index:: AI-0205 (Ada 2012 feature)
  
! * *AI-0205 Extended return declares visible name (0000-00-00)*
  
!   This AI corrects a simple omission in the RM. Return objects have always
!   been visible within an extended return statement.
  
!   RM References:  8.03 (17)
  
! .. index:: AI-0206 (Ada 2012 feature)
  
! * *AI-0206 Remote types packages and preelaborate (2010-07-24)*
  
!   Remote types packages are now allowed to depend on preelaborated packages.
!   This was formerly considered illegal.
  
!   RM References:  E.02.02 (6)
  
! .. index:: AI-0207 (Ada 2012 feature)
  
! * *AI-0207 Mode conformance and access constant (0000-00-00)*
  
!   This AI confirms that access_to_constant indication must match for mode
!   conformance. This was implemented in GNAT when the qualifier was originally
!   introduced in Ada 2005.
  
!   RM References:  6.03.01 (16/2)
  
! .. index:: AI-0208 (Ada 2012 feature)
  
! * *AI-0208 Characteristics of incomplete views (0000-00-00)*
  
!   The wording in the Ada 2005 RM concerning characteristics of incomplete views
!   was incorrect and implied that some programs intended to be legal were now
!   illegal. GNAT had never considered such programs illegal, so it has always
!   implemented the intent of this AI.
  
!   RM References:  3.10.01 (2.4/2)   3.10.01 (2.6/2)
  
  .. index:: AI-0210 (Ada 2012 feature)
  
*************** Supported Aspect                     Sou
*** 1311,1330 ****
  
    RM References:  D.15 (24/2)
  
! .. index:: AI-0206 (Ada 2012 feature)
  
! * *AI-0206 Remote types packages and preelaborate (2010-07-24)*
  
!   Remote types packages are now allowed to depend on preelaborated packages.
!   This was formerly considered illegal.
  
!   RM References:  E.02.02 (6)
  
! .. index:: AI-0152 (Ada 2012 feature)
  
! * *AI-0152 Restriction No_Anonymous_Allocators (2010-09-08)*
  
!   Restriction ``No_Anonymous_Allocators`` prevents the use of allocators
!   where the type of the returned value is an anonymous access type.
  
!   RM References:  H.04 (8/1)
--- 1277,1330 ----
  
    RM References:  D.15 (24/2)
  
! .. index:: AI-0211 (Ada 2012 feature)
  
! * *AI-0211 No_Relative_Delays forbids Set_Handler use (2010-07-09)*
  
!   The restriction ``No_Relative_Delays`` forbids any calls to the subprogram
!   ``Ada.Real_Time.Timing_Events.Set_Handler``.
  
!   RM References:  D.07 (5)   D.07 (10/2)   D.07 (10.4/2)   D.07 (10.7/2)
  
! .. index:: AI-0214 (Ada 2012 feature)
  
! * *AI-0214 Defaulted discriminants for limited tagged (2010-10-01)*
  
!   Ada 2012 relaxes the restriction that forbids discriminants of tagged types
!   to have default expressions by allowing them when the type is limited. It
!   is often useful to define a default value for a discriminant even though
!   it can't be changed by assignment.
  
!   RM References:  3.07 (9.1/2)   3.07.02 (3)
! 
! .. index:: AI-0216 (Ada 2012 feature)
! 
! * *AI-0216 No_Task_Hierarchy forbids local tasks (0000-00-00)*
! 
!   It is clearly the intention that ``No_Task_Hierarchy`` is intended to
!   forbid tasks declared locally within subprograms, or functions returning task
!   objects, and that is the implementation that GNAT has always provided.
!   However the language in the RM was not sufficiently clear on this point.
!   Thus this is a documentation change in the RM only.
! 
!   RM References:  D.07 (3/3)
! 
! .. index:: AI-0219 (Ada 2012 feature)
! 
! * *AI-0219 Pure permissions and limited parameters (2010-05-25)*
! 
!   This AI refines the rules for the cases with limited parameters which do not
!   allow the implementations to omit 'redundant'. GNAT now properly conforms
!   to the requirements of this binding interpretation.
! 
!   RM References:  10.02.01 (18/2)
! 
! .. index:: AI-0220 (Ada 2012 feature)
! 
! * *AI-0220 Needed components for aggregates (0000-00-00)*
! 
!   This AI addresses a wording problem in the RM that appears to permit some
!   complex cases of aggregates with nonstatic discriminants. GNAT has always
!   implemented the intended semantics.
! 
!   RM References:  4.03.01 (17)
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst	Fri Apr 25 08:18:00 2025
*************** It is also possible to import a C++ exce
*** 121,127 ****
  
  
  The ``External_Name`` is the name of the C++ RTTI symbol. You can then
! cover a specific C++ exception in an exception handler.
  
  .. _Interfacing_to_COBOL:
  
--- 121,288 ----
  
  
  The ``External_Name`` is the name of the C++ RTTI symbol. You can then
! cover a specific C++ exception in an exception handler. If the string
! ends with "'Class", as if referencing the Class attribute of the C++
! type, that enables "class-wide" type matching, i.e., instances of C++
! classes derived from the one denoted by the RTTI symbol, that would be
! caught by C++ handlers for that type, will also be caught by Ada
! handlers for ``Entity``. For non-class-wide RTTI symbols imported from
! C++, only exact type matches will be handled. C++ rethrown (dependent)
! exceptions are not distinguishable from the corresponding primary
! exceptions: they are handled exactly as if the primary exception had
! been raised.
! 
! With imported exceptions, especially with base-type matching, a single
! handled_sequence_of_statements may have exception handlers with
! choices that cover the same C++ types in ways that GNAT cannot detect.
! For example, C++ classes ``base`` and ``derived`` may be imported as
! exceptions with base-type matching, but GNAT does not know that they
! are related by inheritance, only the runtime will know it. Given:
! 
! ::
! 
!    exception
!      when Derived_Exception => null;
!      when Base_Exception => null;
!      when others => null;
! 
! the earliest handler that matches the type of the raised object will
! be selected. If an instance of ``derived`` or a further derived type
! is raised, the first handler will be used; if an instance of ``base``
! that is not an instance of ``derived`` is raised, the second handler
! will be used; raised objects that are not instances of ``base`` will
! be handled by the ``others`` handler. However, if the handlers were
! reordered (``others`` must remain last), the ``Derived_Exception``
! handler would never be used, because ``Base_Exception`` would match
! any instances of ``derived`` before ``Derived_Exception`` or
! ``others`` handlers were considered. Mixing exact-type and base-type
! matching exceptions may also involve overlapping handlers that GNAT
! will not reject: an exact-type ``Base_Only_Exception`` handler placed
! before ``Base_Exception`` will handle instances of ``base``, whereas
! instances of derived types will be handled by
! ``Base_Exception``. Swapping them will cause ``Base_Exception`` to
! handle all instances of ``base`` and derived types, so that a
! subsequent handler for ``Base_Only_Exception`` will never be selected.
! 
! The C++ object associated with a C++ ``Exception_Occurrence`` may be
! obtained by calling the ``GNAT.CPP_Exceptions.Get_Object_Address``
! function. There are convenience generic wrappers named ``Get_Object``,
! ``Get_Access_To_Object``, and ``Get_Access_To_Tagged_Object``,
! parameterized on the expected Ada type. Note that, for exceptions
! imported from C++, the address of the object is that of the subobject
! of the type associated with the exception, which may have a different
! address from that of the full object; for C++ exceptions handled by
! ``others`` handlers, however, the address of the full object is
! returned.
! 
! E.g., if the imported exception uses the RTTI symbol for the base
! class, followed by "'Class", and the C++ code raises (throws) an
! instance of a derived class, a handler for that imported exception
! will catch this ``Exception_Occurrence``, and ``Get_Object_Address``
! will return the address of the base subobject of the raised derived
! object; ``Get_Object``, ``Get_Access_To_Object`` and
! ``Get_Access_To_Tagged_Object`` only convert that address to the
! parameterized type, so the specified type ought to be a type that
! imports the C++ type whose RTTI symbol was named in the declared
! exception, i.e., base, not derived or any other type. GNAT cannot
! detect or report if a type is named that does not match the handler's
! RTTI-specified type.
! 
! For ``others`` handlers, and for exact type matches, the full object
! is obtained. The ``Get_Type_Info`` function that takes an
! ``Exception_Occurrence`` argument can be used to verify the type of
! the C++ object raised as an exception. The other ``Get_Type_Info``
! function, that takes an ``Exception_Id``, obtains the type expected by
! the handler, and no such type exists for ``others`` handlers.
! ``GNAT.CPP.Std.Name`` can then convert the opaque
! ``GNAT.CPP.Std.Type_Info_Ptr`` access to ``std::type_info`` objects,
! returned by either ``Get_Type_Info`` function, to a C++ mangled type
! name.
! 
! If an ``Exception_Occurrence`` was raised from C++, or following C++
! conventions, ``GNAT.Exception_Actions.Exception_Language`` will return
! ``EL_Cpp``, whether the exception handler is an imported C++ exception
! or ``others``. ``GNAT.Exception_Actions.Is_Foreign_Exception`` returns
! True for all of these, as well as for any case in which
! ``Exception_Language`` is not ``EL_Ada``.
! 
! ::
! 
!     --  Given the following partial package specification:
! 
!       Base_Exception : exception;
!       pragma Import (Cpp, Base_Exception, "_ZTI4base'Class");
!       --  Handle instances of base, and of subclasses.
! 
!       type Base is limited tagged record
! 	[...]
!       end record;
!       pragma Import (Cpp, Base);
! 
!       type Derived is limited tagged record
! 	[...]
!       end record;
!       pragma Import (Cpp, Derived);
! 
!       type Unrelated is access procedure (B : Boolean);
! 
!       function Get_Base_Obj_Acc is
! 	new Get_Access_To_Tagged_Object (Base);
!       function Get_Derived_Obj_Acc is
! 	new Get_Access_To_Tagged_Object (Derived);
!       function Get_Unrelated_Obj_Acc is
! 	new Get_Access_To_Object (Unrelated);
! 
!       procedure Raise_Derived;
!       --  Raises an instance of derived (with a base subobject).
! 
! 
!     --  The comments next to each statement indicate the behavior of
!     --  the following pseudocode blocks:
! 
!     begin
!       Raise_Derived;
!     exception
!       when BEx : Base_Exception =>
! 	?? := Is_Foreign_Exception (BEx);  --  True
! 	?? := Exception_Language (BEx);    --  EL_Cpp
! 	?? := Name (Get_Type_Info (BEx));  --  "7derived"
! 	?? := Name (Get_Type_Info (Exception_Identity (BEx)));  --  "4base"
! 	?? := Get_Object_Address (BEx);    --  base subobject in derived object
! 	?? := Get_Base_Obj_Acc (BEx):      --  ditto, as access to Base
! 	?? := Get_Derived_Obj_Acc (BEx):   --  ditto, NO ERROR DETECTED!
! 	?? := Get_Unrelated_Obj_Acc (BEx): --  ditto, NO ERROR DETECTED!
!     end;
! 
! 
!     begin
!       Raise_Derived;
!     exception
!       when BEx : others =>
! 	?? := Is_Foreign_Exception (BEx);  --  True
! 	?? := Exception_Language (BEx);    --  EL_Cpp
! 	?? := Name (Get_Type_Info (BEx));  --  "7derived"
! 	?? := Get_Type_Info (Exception_Identity (BEx));  --  null
! 	?? := Get_Object_Address (BEx);    --  full derived object
! 	?? := Get_Derived_Obj_Acc (BEx):   --  ditto, as access to Derived
! 	?? := Get_Base_Obj_Acc (BEx):      --  ditto, NO ERROR DETECTED!
! 	?? := Get_Unrelated_Obj_Acc (BEx): --  ditto, NO ERROR DETECTED!
!     end;
! 
! The calls marked with ``NO ERROR DETECTED!`` will compile sucessfully,
! even though the types specified in the specializations of the generic
! function do not match the type of the exception object that the
! function is expected to return. Mismatches between derived and base
! types are particularly relevant because they will appear to work as
! long as there isn't any offset between pointers to these types. This
! may hold in many cases, but is subject to change with various possible
! changes to the derived class.
! 
! The ``GNAT.CPP.Std`` package offers interfaces corresponding to the
! C++ standard type ``std::type_info``. Function ``To_Type_Info_Ptr``
! builds an opaque ``Type_Info_Ptr`` to reference a ``std::type_info``
! object at a given ``System.Address``.
! 
  
  .. _Interfacing_to_COBOL:
  
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Fri Apr 25 08:18:00 2025
*************** No_Default_Initialization
*** 163,170 ****
  .. index:: No_Default_Initialization
  
  [GNAT] This restriction prohibits any instance of default initialization
! of variables.  The binder implements a consistency rule which prevents
! any unit compiled without the restriction from with'ing a unit with the
  restriction (this allows the generation of initialization procedures to
  be skipped, since you can be sure that no call is ever generated to an
  initialization procedure in a unit with the restriction active). If used
--- 163,170 ----
  .. index:: No_Default_Initialization
  
  [GNAT] This restriction prohibits any instance of default initialization
! of variables or components. The binder implements a consistency check that
! prevents any unit without the restriction from with'ing a unit with the
  restriction (this allows the generation of initialization procedures to
  be skipped, since you can be sure that no call is ever generated to an
  initialization procedure in a unit with the restriction active). If used
*************** To take maximum advantage of this space-
*** 675,680 ****
--- 675,686 ----
  unit declaring a tagged type should be compiled with the restriction,
  though this is not required.
  
+ When pragmas ``Discard_Names`` and ``Restrictions (No_Streams)`` simultaneously
+ apply to a tagged type, its Expanded_Name and External_Tag are also initialized
+ with empty strings. In particular, both these pragmas can be applied as
+ configuration pragmas to avoid exposing entity names at binary level for the
+ entire partition.
+ 
  No_Tagged_Type_Registration
  ---------------------------
  .. index:: No_Tagged_Type_Registration
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/standard_library_routines.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/standard_library_routines.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/standard_library_routines.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/standard_library_routines.rst	Fri Apr 25 08:18:00 2025
*************** the unit is not implemented.
*** 302,313 ****
  
  ``Ada.Numerics.Discrete_Random``
    This generic package provides a random number generator suitable for generating
!   uniformly distributed values of a specified discrete subtype.
  
  
  ``Ada.Numerics.Float_Random``
    This package provides a random number generator suitable for generating
!   uniformly distributed floating point values in the unit interval.
  
  
  ``Ada.Numerics.Generic_Complex_Elementary_Functions``
--- 302,315 ----
  
  ``Ada.Numerics.Discrete_Random``
    This generic package provides a random number generator suitable for generating
!   uniformly distributed values of a specified discrete subtype. It should not be
!   used as a cryptographic pseudo-random source.
  
  
  ``Ada.Numerics.Float_Random``
    This package provides a random number generator suitable for generating
!   uniformly distributed floating point values in the unit interval. It should not
!   be used as a cryptographic pseudo-random source.
  
  
  ``Ada.Numerics.Generic_Complex_Elementary_Functions``
*************** the unit is not implemented.
*** 381,387 ****
    then such a backward jump may occur.
  
  ``Ada.Real_Time.Timing_Events`` *(D.15)*
!   Not implemented in GNAT.
  
  ``Ada.Sequential_IO`` *(A.8.1)*
    This package provides input-output facilities for sequential files,
--- 383,390 ----
    then such a backward jump may occur.
  
  ``Ada.Real_Time.Timing_Events`` *(D.15)*
!   This package allows procedures to be executed at a specified time without
!   the use of a task or a delay statement.
  
  ``Ada.Sequential_IO`` *(A.8.1)*
    This package provides input-output facilities for sequential files,
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Fri Apr 25 08:18:00 2025
*************** convenient for use with realtime applica
*** 1329,1335 ****
  .. index:: Random number generation
  
  Provides random number capabilities which extend those available in the
! standard Ada library and are more convenient to use.
  
  .. _`GNAT.Regexp_(g-regexp.ads)`:
  
--- 1329,1337 ----
  .. index:: Random number generation
  
  Provides random number capabilities which extend those available in the
! standard Ada library and are more convenient to use. This package is
! however NOT suitable for situations requiring cryptographically secure
! randomness.
  
  .. _`GNAT.Regexp_(g-regexp.ads)`:
  
*************** mainframes.
*** 1915,1937 ****
  .. index:: VxWorks, interfacing
  
  This package provides a limited binding to the VxWorks API.
- In particular, it interfaces with the
- VxWorks hardware interrupt facilities.
- 
- .. _`Interfaces.VxWorks.Int_Connection_(i-vxinco.ads)`:
- 
- ``Interfaces.VxWorks.Int_Connection`` (:file:`i-vxinco.ads`)
- ============================================================
- 
- .. index:: Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
- 
- .. index:: Interfacing to VxWorks
- 
- .. index:: VxWorks, interfacing
- 
- This package provides a way for users to replace the use of
- intConnect() with a custom routine for installing interrupt
- handlers.
  
  .. _`Interfaces.VxWorks.IO_(i-vxwoio.ads)`:
  
--- 1917,1922 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst gcc-15.1.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst	Fri Apr 25 08:18:00 2025
*************** One common use of file sharing in Ada 83
*** 894,900 ****
  Sequential_IO on the same file with different types, to achieve
  heterogeneous input-output.  Although this approach will work in GNAT if
  ``shared=yes`` is specified, it is preferable in Ada to use Stream_IO
! for this purpose (using the stream attributes)
  
  .. _Filenames_encoding:
  
--- 894,900 ----
  Sequential_IO on the same file with different types, to achieve
  heterogeneous input-output.  Although this approach will work in GNAT if
  ``shared=yes`` is specified, it is preferable in Ada to use Stream_IO
! for this purpose (using the stream attributes).
  
  .. _Filenames_encoding:
  
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Fri Apr 25 08:18:00 2025
*************** toolset for the full Ada programming lan
*** 14,26 ****
  It documents the features of the compiler and tools, and explains
  how to use them to build Ada applications.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 202x, and it may also be
! invoked in Ada 83 compatibility mode.
! By default, GNAT assumes Ada 2012, but you can override with a
! compiler switch (:ref:`Compiling_Different_Versions_of_Ada`)
! to explicitly specify the language version.
! Throughout this manual, references to 'Ada' without a year suffix
! apply to all Ada versions of the language, starting with Ada 95.
  
  What This Guide Contains
  ========================
--- 14,33 ----
  It documents the features of the compiler and tools, and explains
  how to use them to build Ada applications.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 2022.  You may
! also invoke it in Ada 83 compatibility mode.  By default, GNAT assumes
! Ada 2012, but you can use a compiler switch
! (:ref:`Compiling_Different_Versions_of_Ada`) to explicitly specify the
! language version.  Throughout this manual, references to 'Ada' without
! a year suffix apply to all versions of the Ada language starting with
! Ada 95.
! 
! GNAT supports both the GCC and LLVM back end compilation families.
! Most GNAT versions use the GCC back end, but some are now available using
! the LLVM back end. In some places in this manual, we distinguish between
! the two back ends, but in most cases, everything in this manual applies
! to both back ends. We refer to GNAT with the LLVM back end as 'GNAT LLVM'.
! See :ref:`GNATLLVM` for limitations of GNAT LLVM.
  
  What This Guide Contains
  ========================
*************** in this guide:
*** 130,139 ****
  
      and then shown this way.
  
! * Commands that are entered by the user are shown as preceded by a prompt string
    comprising the ``$`` character followed by a space.
  
  * Full file names are shown with the '/' character
    as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
    If you are using GNAT on a Windows platform, please note that
!   the '\\' character should be used instead.
--- 137,146 ----
  
      and then shown this way.
  
! * Commands that you enter are shown as preceded by a prompt string
    comprising the ``$`` character followed by a space.
  
  * Full file names are shown with the '/' character
    as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
    If you are using GNAT on a Windows platform, please note that
!   you should use the '\\' character instead.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Fri Apr 25 08:18:00 2025
*************** Alphabetical List of All Switches
*** 1754,1760 ****
  
    ``Maximum_Alignment`` is the maximum alignment that the compiler can choose
    by default for a type or object, which is also the maximum alignment that can
!   be specified in GNAT. It is computed for GCC backends as ``BIGGEST_ALIGNMENT
    / BITS_PER_UNIT`` where GCC macro ``BIGGEST_ALIGNMENT`` is documented as
    follows: `Biggest alignment that any data type can require on this machine,
    in bits.`
--- 1754,1760 ----
  
    ``Maximum_Alignment`` is the maximum alignment that the compiler can choose
    by default for a type or object, which is also the maximum alignment that can
!   be specified in GNAT. It is computed for GCC back ends as ``BIGGEST_ALIGNMENT
    / BITS_PER_UNIT`` where GCC macro ``BIGGEST_ALIGNMENT`` is documented as
    follows: `Biggest alignment that any data type can require on this machine,
    in bits.`
*************** Alphabetical List of All Switches
*** 2009,2015 ****
  
  :switch:`-gnatn[12]`
    Activate inlining across units for subprograms for which pragma ``Inline``
!   is specified. This inlining is performed by the GCC back-end. An optional
    digit sets the inlining level: 1 for moderate inlining across units
    or 2 for full inlining across units. If no inlining level is specified,
    the compiler will pick it based on the optimization level.
--- 2009,2015 ----
  
  :switch:`-gnatn[12]`
    Activate inlining across units for subprograms for which pragma ``Inline``
!   is specified. This inlining is performed by the GCC back end. An optional
    digit sets the inlining level: 1 for moderate inlining across units
    or 2 for full inlining across units. If no inlining level is specified,
    the compiler will pick it based on the optimization level.
*************** of the pragma in the :title:`GNAT_Refere
*** 3415,3421 ****
  .. index:: -gnatw.l  (gcc)
  
  :switch:`-gnatw.l`
!   *List inherited aspects.*
  
    This switch causes the compiler to list inherited invariants,
    preconditions, and postconditions from Type_Invariant'Class, Invariant'Class,
--- 3415,3421 ----
  .. index:: -gnatw.l  (gcc)
  
  :switch:`-gnatw.l`
!   *List inherited aspects as info messages.*
  
    This switch causes the compiler to list inherited invariants,
    preconditions, and postconditions from Type_Invariant'Class, Invariant'Class,
*************** of the pragma in the :title:`GNAT_Refere
*** 3425,3435 ****
  .. index:: -gnatw.L  (gcc)
  
  :switch:`-gnatw.L`
!   *Suppress listing of inherited aspects.*
  
    This switch suppresses listing of inherited aspects.
  
  
  .. index:: -gnatwm  (gcc)
  
  :switch:`-gnatwm`
--- 3425,3452 ----
  .. index:: -gnatw.L  (gcc)
  
  :switch:`-gnatw.L`
!   *Suppress listing of inherited aspects as info messages.*
  
    This switch suppresses listing of inherited aspects.
  
  
+ .. index:: -gnatw_l  (gcc)
+ 
+ :switch:`-gnatw_l`
+   *Activate warnings on implicitly limited types.*
+ 
+   This switch causes the compiler trigger warnings on record types that do not
+   have a limited keyword but contain a component that is a limited type.
+ 
+ 
+ .. index:: -gnatw_L  (gcc)
+ 
+ :switch:`-gnatw_L`
+   *Suppress warnings on implicitly limited types.*
+ 
+   This switch suppresses warnings on implicitly limited types.
+ 
+ 
  .. index:: -gnatwm  (gcc)
  
  :switch:`-gnatwm`
*************** of the pragma in the :title:`GNAT_Refere
*** 3497,3503 ****
  :switch:`-gnatw.n`
    *Activate warnings on atomic synchronization.*
  
!   This switch actives warnings when an access to an atomic variable
    requires the generation of atomic synchronization code. These
    warnings are off by default.
  
--- 3514,3520 ----
  :switch:`-gnatw.n`
    *Activate warnings on atomic synchronization.*
  
!   This switch activates warnings when an access to an atomic variable
    requires the generation of atomic synchronization code. These
    warnings are off by default.
  
*************** of the pragma in the :title:`GNAT_Refere
*** 3570,3576 ****
    many reasons for not being able to inline a call, including most
    commonly that the call is too complex to inline. The default is
    that such warnings are not given.
!   Warnings on ineffective inlining by the gcc back-end can be activated
    separately, using the gcc switch -Winline.
  
  
--- 3587,3593 ----
    many reasons for not being able to inline a call, including most
    commonly that the call is too complex to inline. The default is
    that such warnings are not given.
!   Warnings on ineffective inlining by the gcc back end can be activated
    separately, using the gcc switch -Winline.
  
  
*************** of the pragma in the :title:`GNAT_Refere
*** 3997,4018 ****
  .. index:: bit order warnings
  
  :switch:`-gnatw.v`
!   *Activate info messages for non-default bit order.*
  
!   This switch activates messages (labeled "info", they are not warnings,
!   just informational messages) about the effects of non-default bit-order
!   on records to which a component clause is applied. The effect of specifying
!   non-default bit ordering is a bit subtle (and changed with Ada 2005), so
!   these messages, which are given by default, are useful in understanding the
!   exact consequences of using this feature.
  
  
  .. index:: -gnatw.V  (gcc)
  
  :switch:`-gnatw.V`
!   *Suppress info messages for non-default bit order.*
  
!   This switch suppresses information messages for the effects of specifying
    non-default bit order on record components with component clauses.
  
  
--- 4014,4034 ----
  .. index:: bit order warnings
  
  :switch:`-gnatw.v`
!   *Activate warnings for non-default bit order.*
  
!   This switch activates warning messages about the effects of non-default
!   bit-order on records to which a component clause is applied. The effect of
!   specifying non-default bit ordering is a bit subtle
!   (and changed with Ada 2005), so these messages, which are given by default,
!   are useful in understanding the exact consequences of using this feature.
  
  
  .. index:: -gnatw.V  (gcc)
  
  :switch:`-gnatw.V`
!   *Suppress warnings for non-default bit order.*
  
!   This switch suppresses warnings for the effects of specifying
    non-default bit order on record components with component clauses.
  
  
*************** When no switch :switch:`-gnatw` is used,
*** 4372,4377 ****
--- 4388,4410 ----
  
  .. _Debugging_and_Assertion_Control:
  
+ 
+ 
+ Info message Control
+ --------------------
+ 
+ In addition to the warning messages, the compiler can also generate info
+ messages. In order to control the generation of these messages, the following
+ switch is provided:
+ 
+ :switch:`-gnatis`
+   *Suppress all info messages.*
+ 
+   This switch completely suppresses the output of all info messages from the
+   GNAT front end.
+ 
+ 
+ 
  Debugging and Assertion Control
  -------------------------------
  
*************** checks to be performed. The following ch
*** 4750,4756 ****
    then proper indentation is checked, with the digit indicating the
    indentation level required. A value of zero turns off this style check.
    The rule checks that the following constructs start on a column that is
!   a multiple of the alignment level:
  
    * beginnings of declarations (except record component declarations)
      and statements;
--- 4783,4789 ----
    then proper indentation is checked, with the digit indicating the
    indentation level required. A value of zero turns off this style check.
    The rule checks that the following constructs start on a column that is
!   one plus a multiple of the alignment level:
  
    * beginnings of declarations (except record component declarations)
      and statements;
*************** checks to be performed. The following ch
*** 4761,4770 ****
      or body or that completes a compound statement.
  
    Full line comments must be
!   aligned with the ``--`` starting on a column that is a multiple of
    the alignment level, or they may be aligned the same way as the following
    non-blank line (this is useful when full line comments appear in the middle
!   of a statement, or they may be aligned with the source line on the previous
    non-blank line.
  
  .. index:: -gnatya   (gcc)
--- 4794,4803 ----
      or body or that completes a compound statement.
  
    Full line comments must be
!   aligned with the ``--`` starting on a column that is one plus a multiple of
    the alignment level, or they may be aligned the same way as the following
    non-blank line (this is useful when full line comments appear in the middle
!   of a statement), or they may be aligned with the source line on the previous
    non-blank line.
  
  .. index:: -gnatya   (gcc)
*************** switches refine this default behavior.
*** 5346,5355 ****
    execution if that assumption is wrong.
  
    The checks subject to suppression include all the checks defined by the Ada
!   standard, the additional implementation defined checks ``Alignment_Check``,
!   ``Duplicated_Tag_Check``, ``Predicate_Check``, ``Container_Checks``, ``Tampering_Check``,
!   and ``Validity_Check``, as well as any checks introduced using ``pragma Check_Name``.
!   Note that ``Atomic_Synchronization`` is not automatically suppressed by use of this option.
  
    If the code depends on certain checks being active, you can use
    pragma ``Unsuppress`` either as a configuration pragma or as
--- 5379,5386 ----
    execution if that assumption is wrong.
  
    The checks subject to suppression include all the checks defined by the Ada
!   standard, as well as all implementation-defined checks,
!   including any checks introduced using ``pragma Check_Name``.
  
    If the code depends on certain checks being active, you can use
    pragma ``Unsuppress`` either as a configuration pragma or as
*************** be presented in subsequent sections.
*** 6716,6722 ****
    .. index:: -o   (gnatbind)
  
  :switch:`-o {file}`
!   Name the output file ``file`` (default is :file:`b~`xxx`.adb`).
    Note that if this option is used, then linking must be done manually,
    gnatlink cannot be used.
  
--- 6747,6753 ----
    .. index:: -o   (gnatbind)
  
  :switch:`-o {file}`
!   Name the output file ``file`` (default is :file:`b~{xxx}.adb`).
    Note that if this option is used, then linking must be done manually,
    gnatlink cannot be used.
  
*************** The following switches are available wit
*** 7686,7692 ****
    command that will be used by ``gnatlink`` will be ``foo -c -x -y``.
    A limitation of this syntax is that the name and path name of the executable
    itself must not include any embedded spaces. If the compiler executable is
!   different from the default one (gcc or <prefix>-gcc), then the back-end
    switches in the ALI file are not used to compile the binder generated source.
    For example, this is the case with ``--GCC="foo -x -y"``. But the back end
    switches will be used for ``--GCC="gcc -gnatv"``. If several
--- 7717,7723 ----
    command that will be used by ``gnatlink`` will be ``foo -c -x -y``.
    A limitation of this syntax is that the name and path name of the executable
    itself must not include any embedded spaces. If the compiler executable is
!   different from the default one (gcc or <prefix>-gcc), then the back end
    switches in the ALI file are not used to compile the binder generated source.
    For example, this is the case with ``--GCC="foo -x -y"``. But the back end
    switches will be used for ``--GCC="gcc -gnatv"``. If several
*************** replace colons with semicolons in the as
*** 7988,7990 ****
--- 8019,8141 ----
  
    all:
            gnatmake main_unit
+ 
+ .. _GNATLLVM:
+ 
+ GNAT with the LLVM Back End
+ ===========================
+ 
+ This section outlines the usage of the GNAT compiler with the LLVM
+ back end and highlights its key limitations. Certain GNAT versions,
+ referred to as GNAT LLVM, include an alternative LLVM back end
+ alongside the GCC back end, providing access to utilities that operate
+ at the LLVM Intermediate Representation (IR) level. This also enhances
+ safety by facilitating dissimilar redundancy through diverse code
+ generation techniques, allowing for the creation of two distinct
+ binaries from the same source code.
+ 
+ Although both GNAT LLVM and the GCC-based GNAT follow most ABI rules,
+ there are some cases where there you may encounter an incompatibility
+ between the two compilers.  One such case for the 64-bit Intel X86 is
+ a difference in parameter passing when a structure that consists of 64
+ bits is passed. The native LLVM handling (and hence that of GNAT LLVM)
+ and ``clang`` disagree in this case. GCC follows ``clang``. The formal
+ ABI agrees with LLVM.
+ 
+ In any case, we don't recommend you link code compiled with GNAT LLVM
+ to code compiled by the GCC version of GNAT. This is a specific case
+ of the general rule that you should compile all your Ada code with the
+ same version of GNAT. Both ``gnatmake`` and ``gprbuild`` ensure this
+ is done.
+ 
+ You may, however, run into this incompatibility if you pass such a
+ record between C and Ada. In general, we recommend keeping the data
+ passed between C and Ada as simple as practical.
+ 
+ GNAT LLVM currently provides limited support for debugging data. It
+ provides full line number information for declarations and statements,
+ but not sufficient debugging data to display all Ada data
+ structures. GNAT LLVM outputs complete debugging data only for types
+ with a direct equivalent in C, namely records without discriminants
+ and constrained arrays whose dimensions are known at compile time. You
+ will not be able to use ``gdb`` print commands to look at objects not
+ of those types or to display components of those types. You can use
+ low-level ``gdb`` commands that display memory to view such data
+ provided you know how they're laid out.  Debugging information may
+ also be limited for bitfields (fields whose size and position
+ aren't on byte boundaries)
+ 
+ In addition, debugging information may be confusing if you have
+ ``out`` parameters to subprograms. If you have a procedure with only
+ one ``out`` parameter, GNAT LLVM converts that to a function returning
+ an object of that type. If you have multiple ``out`` parameters or
+ have a function that also has an ``out`` parameter, GNAT LLVM converts
+ that subprogram into a function that returns a record where each field
+ is either an ``out`` parameter or the function return value, if any.
+ The debug information reflects these transformations and not the original
+ Ada source code.
+ 
+ GNAT LLVM doesn't fully implement the :switch:`-fcheck-stack` switch.
+ When you specify it, the code generated by GNAT LLVM tests for allocating
+ overly-large items on the stack, but not all cases of stack overflow.  For
+ example, if you have a very deep recursion where each call only uses a
+ small amount of stack and the total stack depth exceeds the amount of
+ available stack, the program will be terminated by a signal instead of
+ raising an Ada exception.
+ 
+ GNAT LLVM doesn't support the ``Scalar_Storage_Order`` pragma except when
+ it's used to confirm the chosen storage order. This is because this facility
+ is provided by GCC but not by LLVM.
+ 
+ GNAT LLVM doesn't support Convention C++, which provides so-called
+ 'name mangling' by encoding parameter and return datatypes into a
+ function name.
+ 
+ .. only:: PRO
+ 
+     Unlike the GCC versions of GNAT, GNAT LLVM doesn't include any
+     Ada libraries. You can obtain source packages from GNATtracker and
+     build them with the compiler configuration appropriate for your
+     project. AdaCore internally builds and tests the GNAT Components
+     Collection, XML/Ada, and AUnit libraries to ensure compatibility
+     with GNAT LLVM, but not all options of those libraries are
+     currently supported with all targets of GNAT LLVM. If you need to
+     use any of these libraries, please open a support ticket.
+ 
+ We provide two options that you can use to build code with GNAT LLVM:
+ 
+ * GNAT LLVM includes a version of ``gnatmake`` called
+   ``llvm-gnatmake``, which is equivalent to ``gnatmake`` and has the
+   same switches, except that it uses GNAT LLVM instead of the GCC
+   version of GNAT.
+ 
+ * ``gprbuild`` can detect and use GNAT LLVM when it is installed.
+ 
+   ``gprbuild`` uses the first applicable compiler on the executable
+   search path, including GNAT LLVM.  An easy way to build with GNAT
+   LLVM is to make it available on the operating system's search path
+   before any other Ada compiler (such as the GCC version of GNAT). To
+   avoid accidentally using a different compiler than the one you want
+   to use, we recommend generating an explicit toolchain configuration
+   file with ``gprconfig`` and using it with ``gprbuild``; see the
+   *GPRbuild and GPR Companion Tools User's Guide* for details. You
+   can determine from the first line of the :file:`.ali` file
+   which version of GNAT built that file because it contains either
+   :code:`GNAT` or :code:`GNAT-LLVM`.
+ 
+ .. only:: PRO
+ 
+     If your project uses one of the libraries packaged with the GCC
+     version of GNAT, it is important that you use the GPR tools from
+     the GNAT LLVM package when building with GNAT LLVM. Otherwise,
+     ``gprbuild`` would try to use the precompiled libraries shipped with
+     the GCC version of GNAT, mixing those objects with code generated
+     by GNAT LLVM, which is not supported.
+ 
+ GNAT LLVM understands the same target triplets as the GCC version of
+ GNAT.
+ 
+ .. only:: PRO
+ 
+   It provides the same runtimes with the exception that light runtimes
+   are not currently included with the native compilers.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst	Fri Apr 25 08:18:00 2025
*************** Elaboration Order Handling in GNAT
*** 17,24 ****
  .. index:: Order of elaboration
  .. index:: Elaboration control
  
! This appendix describes the handling of elaboration code in Ada and GNAT, and
! discusses how the order of elaboration of program units can be controlled in
  GNAT, either automatically or with explicit programming features.
  
  .. _Elaboration_Code:
--- 17,24 ----
  .. index:: Order of elaboration
  .. index:: Elaboration control
  
! This appendix describes the handling of elaboration code in Ada and GNAT and
! discusses how you can control the order of elaboration of program units in
  GNAT, either automatically or with explicit programming features.
  
  .. _Elaboration_Code:
*************** initializing data. These sections are re
*** 36,42 ****
  Elaboration code is executed as follows:
  
  * All partitions of an Ada program are executed in parallel with one another,
!   possibly in a separate address space, and possibly on a separate computer.
  
  * The execution of a partition involves running the environment task for that
    partition.
--- 36,42 ----
  Elaboration code is executed as follows:
  
  * All partitions of an Ada program are executed in parallel with one another,
!   possibly in a separate address space and possibly on a separate computer.
  
  * The execution of a partition involves running the environment task for that
    partition.
*************** In addition to the Ada terminology, this
*** 71,78 ****
  
  * *Target*
  
!   A construct elaborated by a scenario is referred to as *elaboration target*
!   or simply **target**. GNAT recognizes the following targets:
  
    - For ``'Access`` of entries, operators, and subprograms, the target is the
      entry, operator, or subprogram being aliased.
--- 71,79 ----
  
  * *Target*
  
!   A construct elaborated by a scenario is referred to as an
!   *elaboration target* or simply a **target**. GNAT recognizes the
!   following targets:
  
    - For ``'Access`` of entries, operators, and subprograms, the target is the
      entry, operator, or subprogram being aliased.
*************** factors:
*** 188,194 ****
  
  * invocations performed in elaboration code
  
! A program may have several elaboration orders depending on its structure.
  
    .. code-block:: ada
  
--- 189,196 ----
  
  * invocations performed in elaboration code
  
! A program may have several possible elaboration orders depending on
! its structure:
  
    .. code-block:: ada
  
*************** Ada states that a total elaboration orde
*** 256,262 ****
  what this order is. A compiler is thus tasked with choosing a suitable
  elaboration order which satisfies the dependencies imposed by |with| clauses,
  unit categorization, elaboration-control pragmas, and invocations performed in
! elaboration code. Ideally an order that avoids ABE problems should be chosen,
  however a compiler may not always find such an order due to complications with
  respect to control and data flow.
  
--- 258,264 ----
  what this order is. A compiler is thus tasked with choosing a suitable
  elaboration order which satisfies the dependencies imposed by |with| clauses,
  unit categorization, elaboration-control pragmas, and invocations performed in
! elaboration code. Ideally, an order that avoids ABE problems should be chosen,
  however a compiler may not always find such an order due to complications with
  respect to control and data flow.
  
*************** provides three lines of defense:
*** 277,283 ****
  
  * *Dynamic semantics*
  
!   Dynamic checks are performed at run time, to ensure that a target is
    elaborated prior to a scenario that invokes it, thus avoiding ABE problems.
    A failed run-time check raises exception ``Program_Error``. The following
    restrictions apply:
--- 279,285 ----
  
  * *Dynamic semantics*
  
!   Dynamic checks are performed at run time to ensure that a target is
    elaborated prior to a scenario that invokes it, thus avoiding ABE problems.
    A failed run-time check raises exception ``Program_Error``. The following
    restrictions apply:
*************** provides three lines of defense:
*** 304,310 ****
  
  * *Elaboration control*
  
!   Pragmas are provided for the programmer to specify the desired elaboration
    order.
  
  .. _Controlling_the_Elaboration_Order_in_Ada:
--- 306,312 ----
  
  * *Elaboration control*
  
!   Ada provides pragmas for you to specify the desired elaboration
    order.
  
  .. _Controlling_the_Elaboration_Order_in_Ada:
*************** provides three lines of defense:
*** 312,323 ****
  Controlling the Elaboration Order in Ada
  ========================================
  
! Ada provides several idioms and pragmas to aid the programmer with specifying
! the desired elaboration order and avoiding ABE problems altogether.
  
  * *Packages without a body*
  
!   A library package which does not require a completing body does not suffer
    from ABE problems.
  
    .. code-block:: ada
--- 314,325 ----
  Controlling the Elaboration Order in Ada
  ========================================
  
! Ada provides several idioms and pragmas to aid you in specifying your
! desired elaboration order and avoiding ABE problems.
  
  * *Packages without a body*
  
!   A library package that does not require a completing body does not suffer
    from ABE problems.
  
    .. code-block:: ada
*************** the desired elaboration order and avoidi
*** 391,399 ****
       body of Server
       spec of Client
  
!   because the spec of ``Server`` must be elaborated prior to ``Client`` by
!   virtue of the |with| clause, and in addition the body of ``Server`` must be
!   elaborated immediately after the spec of ``Server``.
  
    Removing pragma ``Elaborate_Body`` could result in the following incorrect
    elaboration order:
--- 393,401 ----
       body of Server
       spec of Client
  
!   because the spec of ``Server`` must be elaborated prior to
!   ``Client`` by virtue of the |with| clause and the body of ``Server``
!   must be elaborated immediately after the spec of ``Server``.
  
    Removing pragma ``Elaborate_Body`` could result in the following incorrect
    elaboration order:
*************** depend on.
*** 420,426 ****
  
  * *pragma Elaborate (Unit)*
  
!   Pragma ``Elaborate`` can be placed in the context clauses of a unit, after a
    |with| clause. It guarantees that both the spec and body of its argument will
    be elaborated prior to the unit with the pragma. Note that other unrelated
    units may be elaborated in between the spec and the body.
--- 422,428 ----
  
  * *pragma Elaborate (Unit)*
  
!   You can place pragma ``Elaborate``  in the context clauses of a unit, after a
    |with| clause. It guarantees that both the spec and body of its argument will
    be elaborated prior to the unit with the pragma. Note that other unrelated
    units may be elaborated in between the spec and the body.
*************** depend on.
*** 473,483 ****
  
  * *pragma Elaborate_All (Unit)*
  
!   Pragma ``Elaborate_All`` is placed in the context clauses of a unit, after
!   a |with| clause. It guarantees that both the spec and body of its argument
!   will be elaborated prior to the unit with the pragma, as well as all units
!   |withed| by the spec and body of the argument, recursively. Note that other
!   unrelated units may be elaborated in between the spec and the body.
  
    .. code-block:: ada
  
--- 475,486 ----
  
  * *pragma Elaborate_All (Unit)*
  
!   You can place pragma ``Elaborate_All`` in the context clauses of a
!   unit, after a |with| clause. It guarantees that both the spec and
!   body of its argument will be elaborated prior to the unit with the
!   pragma as well as all units |withed| by the spec and body of the
!   argument, recursively. Note that other unrelated units may be
!   elaborated in between the spec and the body.
  
    .. code-block:: ada
  
*************** the server unit requires a body and does
*** 566,577 ****
  or Elaborate_Body, then the client unit should have pragma Elaborate or
  Elaborate_All for the server unit.*
  
! If the rule outlined above is not followed, then a program may fall in one of
! the following states:
  
  * *No elaboration order exists*
  
!   In this case a compiler must diagnose the situation, and refuse to build an
    executable program.
  
  * *One or more incorrect elaboration orders exist*
--- 569,580 ----
  or Elaborate_Body, then the client unit should have pragma Elaborate or
  Elaborate_All for the server unit.*
  
! If you do not follow the rule outlined above, a program may fall in one of
! the following ways:
  
  * *No elaboration order exists*
  
!   In this case a compiler must diagnose the situation and refuse to build an
    executable program.
  
  * *One or more incorrect elaboration orders exist*
*************** the following states:
*** 581,597 ****
  
  * *Several elaboration orders exist, some correct, some incorrect*
  
!   In this case the programmer has not controlled the elaboration order. As a
!   result, a compiler may or may not pick one of the correct orders, and the
    program may or may not raise ``Program_Error`` when it is run. This is the
!   worst possible state because the program may fail on another compiler, or
!   even another version of the same compiler.
  
  * *One or more correct orders exist*
  
!   In this case a compiler can build an executable program, and the program is
    run successfully. This state may be guaranteed by following the outlined
!   rules, or may be the result of good program architecture.
  
  Note that one additional advantage of using ``Elaborate`` and ``Elaborate_All``
  is that the program continues to stay in the last state (one or more correct
--- 584,600 ----
  
  * *Several elaboration orders exist, some correct, some incorrect*
  
!   In this case, you have not controlled the elaboration order. As a
!   result, a compiler may or may not pick one of the correct orders and the
    program may or may not raise ``Program_Error`` when it is run. This is the
!   worst possible state because the program may fail on another compiler or
!   even a different version of the same compiler.
  
  * *One or more correct orders exist*
  
!   In this case a compiler can build an executable program and the program is
    run successfully. This state may be guaranteed by following the outlined
!   rules or may be the result of good program architecture.
  
  Note that one additional advantage of using ``Elaborate`` and ``Elaborate_All``
  is that the program continues to stay in the last state (one or more correct
*************** orders exist) even if maintenance change
*** 602,610 ****
  Controlling the Elaboration Order in GNAT
  =========================================
  
! In addition to Ada semantics and rules synthesized from them, GNAT offers
! three elaboration models to aid the programmer with specifying the correct
! elaboration order and to diagnose elaboration problems.
  
  .. index:: Dynamic elaboration model
  
--- 605,613 ----
  Controlling the Elaboration Order in GNAT
  =========================================
  
! In addition to Ada semantics and rules synthesized from them, GNAT
! offers three elaboration models to aid you in specifying the correct
! elaboration order and in diagnosing elaboration problems.
  
  .. index:: Dynamic elaboration model
  
*************** elaboration order and to diagnose elabor
*** 631,637 ****
    assumptions stated above. An order obtained using the dynamic model may fail
    an ABE check at run time when GNAT ignored an invocation.
  
!   The dynamic model is enabled with compiler switch :switch:`-gnatE`.
  
  .. index:: Static elaboration model
  
--- 634,640 ----
    assumptions stated above. An order obtained using the dynamic model may fail
    an ABE check at run time when GNAT ignored an invocation.
  
!   You enable the dynamic model with the compiler switch :switch:`-gnatE`.
  
  .. index:: Static elaboration model
  
*************** elaboration order and to diagnose elabor
*** 678,701 ****
    following legacy models:
  
    - `Legacy elaboration-checking model` available in pre-18.x versions of GNAT.
!     This model is enabled with compiler switch :switch:`-gnatH`.
  
    - `Legacy elaboration-order model` available in pre-20.x versions of GNAT.
!     This model is enabled with binder switch :switch:`-H`.
  
  .. index:: Relaxed elaboration mode
  
! The dynamic, legacy, and static models can be relaxed using compiler switch
! :switch:`-gnatJ`, making them more permissive. Note that in this mode, GNAT
! may not diagnose certain elaboration issues or install run-time checks.
  
  .. _Mixing_Elaboration_Models:
  
  Mixing Elaboration Models
  =========================
  
! It is possible to mix units compiled with a different elaboration model,
! however the following rules must be observed:
  
  * A client unit compiled with the dynamic model can only |with| a server unit
    that meets at least one of the following criteria:
--- 681,705 ----
    following legacy models:
  
    - `Legacy elaboration-checking model` available in pre-18.x versions of GNAT.
!     You can enable this model with compiler switch :switch:`-gnatH`.
  
    - `Legacy elaboration-order model` available in pre-20.x versions of GNAT.
!     You can enable this model with binder switch :switch:`-H`.
  
  .. index:: Relaxed elaboration mode
  
! You can relax the dynamic, legacy, and static models by specifying
! compiler switch :switch:`-gnatJ`, which makes them more permissive. Note
! that in this mode, GNAT may not diagnose certain elaboration issues or
! install run-time checks.
  
  .. _Mixing_Elaboration_Models:
  
  Mixing Elaboration Models
  =========================
  
! You can mix units compiled with different elaboration models. However
! you must observe the following rules:
  
  * A client unit compiled with the dynamic model can only |with| a server unit
    that meets at least one of the following criteria:
*************** violated, the binder emits a warning:
*** 718,724 ****
       warning: "x.ads" has dynamic elaboration checks and with's
       warning:   "y.ads" which has static elaboration checks
  
! The warnings can be suppressed by binder switch :switch:`-ws`.
  
  .. _ABE_Diagnostics:
  
--- 722,728 ----
       warning: "x.ads" has dynamic elaboration checks and with's
       warning:   "y.ads" which has static elaboration checks
  
! You can suppress these warnings by specifying binder switch :switch:`-ws`.
  
  .. _ABE_Diagnostics:
  
*************** GNAT performs extensive diagnostics on a
*** 729,742 ****
  that invoke internal targets, regardless of whether the dynamic, SPARK, or
  static model is in effect.
  
! Note that GNAT emits warnings rather than hard errors whenever it encounters an
  elaboration problem. This is because the elaboration model in effect may be too
! conservative, or a particular scenario may not be invoked due conditional
! execution. The warnings can be suppressed selectively with ``pragma Warnings
  (Off)`` or globally with compiler switch :switch:`-gnatwL`.
  
  A *guaranteed ABE* arises when the body of a target is not elaborated early
! enough, and causes *all* scenarios that directly invoke the target to fail.
  
    .. code-block:: ada
  
--- 733,746 ----
  that invoke internal targets, regardless of whether the dynamic, SPARK, or
  static model is in effect.
  
! Note that GNAT emits warnings rather than errors whenever it encounters an
  elaboration problem. This is because the elaboration model in effect may be too
! conservative or a particular scenario may not be invoked due to conditional
! execution. You can selectively suppress the warnings with ``pragma Warnings
  (Off)`` or globally with compiler switch :switch:`-gnatwL`.
  
  A *guaranteed ABE* arises when the body of a target is not elaborated early
! enough and causes *all* scenarios that directly invoke the target to fail.
  
    .. code-block:: ada
  
*************** the declaration of ``Val``. This invokes
*** 763,769 ****
          >>> warning: Program_Error will be raised at run time
  
  A *conditional ABE* arises when the body of a target is not elaborated early
! enough, and causes *some* scenarios that directly invoke the target to fail.
  
    .. code-block:: ada
  
--- 767,773 ----
          >>> warning: Program_Error will be raised at run time
  
  A *conditional ABE* arises when the body of a target is not elaborated early
! enough and causes *some* scenarios that directly invoke the target to fail.
  
    .. code-block:: ada
  
*************** SPARK Diagnostics
*** 821,828 ****
  =================
  
  GNAT enforces the SPARK rules of elaboration as defined in the SPARK Reference
! Manual section 7.7 when compiler switch :switch:`-gnatd.v` is in effect. Note
! that GNAT emits hard errors whenever it encounters a violation of the SPARK
  rules.
  
    ::
--- 825,832 ----
  =================
  
  GNAT enforces the SPARK rules of elaboration as defined in the SPARK Reference
! Manual section 7.7 when you specify compiler switch :switch:`-gnatd.v`. Note
! that GNAT emits errors whenever it encounters a violation of the SPARK
  rules.
  
    ::
*************** subprograms, where the program controls
*** 938,944 ****
  Although this is the most desirable option, it may be impractical and involve
  too much modification, especially in the case of complex legacy code.
  
! When faced with an elaboration circularity, the programmer should also consider
  the tactics given in the suggestions section of the circularity diagnostic.
  Depending on the units involved in the circularity, their |with| clauses,
  purity, preelaborability, presence of elaboration-control pragmas and
--- 942,948 ----
  Although this is the most desirable option, it may be impractical and involve
  too much modification, especially in the case of complex legacy code.
  
! When faced with an elaboration circularity, you should also consider
  the tactics given in the suggestions section of the circularity diagnostic.
  Depending on the units involved in the circularity, their |with| clauses,
  purity, preelaborability, presence of elaboration-control pragmas and
*************** following tactics to eliminate the circu
*** 951,960 ****
  
       remove pragma Elaborate for unit "..." in unit "..."
  
!   This tactic is suggested when the binder has determined that pragma
!   ``Elaborate``:
  
!   - Prevents a set of units from being elaborated.
  
    - The removal of the pragma will not eliminate the semantic effects of the
      pragma. In other words, the argument of the pragma will still be elaborated
--- 955,963 ----
  
       remove pragma Elaborate for unit "..." in unit "..."
  
!   The binder suggests this tactic when it has determined that:
  
!   - pragma ``Elaborate`` prevents a set of units from being elaborated.
  
    - The removal of the pragma will not eliminate the semantic effects of the
      pragma. In other words, the argument of the pragma will still be elaborated
*************** following tactics to eliminate the circu
*** 962,968 ****
  
    - The removal of the pragma will enable the successful ordering of the units.
  
!   The programmer should remove the pragma as advised, and rebuild the program.
  
  * Pragma Elaborate_All elimination
  
--- 965,971 ----
  
    - The removal of the pragma will enable the successful ordering of the units.
  
!   You should remove the pragma as advised and rebuild the program.
  
  * Pragma Elaborate_All elimination
  
*************** following tactics to eliminate the circu
*** 970,979 ****
  
       remove pragma Elaborate_All for unit "..." in unit "..."
  
!   This tactic is suggested when the binder has determined that pragma
!   ``Elaborate_All``:
  
!   - Prevents a set of units from being elaborated.
  
    - The removal of the pragma will not eliminate the semantic effects of the
      pragma. In other words, the argument of the pragma along with its |with|
--- 973,982 ----
  
       remove pragma Elaborate_All for unit "..." in unit "..."
  
!   The binder suggests this tactic when it has determined that:
  
!   - pragma ``Elaborate_All`` prevents a set of units from being
!     elaborated.
  
    - The removal of the pragma will not eliminate the semantic effects of the
      pragma. In other words, the argument of the pragma along with its |with|
*************** following tactics to eliminate the circu
*** 981,987 ****
  
    - The removal of the pragma will enable the successful ordering of the units.
  
!   The programmer should remove the pragma as advised, and rebuild the program.
  
  * Pragma Elaborate_All downgrade
  
--- 984,990 ----
  
    - The removal of the pragma will enable the successful ordering of the units.
  
!   You should remove the pragma as advised and rebuild the program.
  
  * Pragma Elaborate_All downgrade
  
*************** following tactics to eliminate the circu
*** 989,1000 ****
  
       change pragma Elaborate_All for unit "..." to Elaborate in unit "..."
  
!   This tactic is always suggested with the pragma ``Elaborate_All`` elimination
!   tactic. It offers a different alternative of guaranteeing that the argument
!   of the pragma will still be elaborated prior to the unit containing the
!   pragma.
  
!   The programmer should update the pragma as advised, and rebuild the program.
  
  * Pragma Elaborate_Body elimination
  
--- 992,1003 ----
  
       change pragma Elaborate_All for unit "..." to Elaborate in unit "..."
  
!   The binder always suggests this tactic when it suggests the pragma
!   ``Elaborate_All`` elimination tactic. It offers a different
!   alternative of guaranteeing that the argument of the pragma will
!   still be elaborated prior to the unit containing the pragma.
  
!   You should update the pragma as advised and rebuild the program.
  
  * Pragma Elaborate_Body elimination
  
*************** following tactics to eliminate the circu
*** 1002,1011 ****
  
       remove pragma Elaborate_Body in unit "..."
  
!   This tactic is suggested when the binder has determined that pragma
!   ``Elaborate_Body``:
  
!   - Prevents a set of units from being elaborated.
  
    - The removal of the pragma will enable the successful ordering of the units.
  
--- 1005,1013 ----
  
       remove pragma Elaborate_Body in unit "..."
  
!   The binder suggests this tactic when it has determined that:
  
!   - pragma ``Elaborate_Body`` prevents a set of units from being elaborated.
  
    - The removal of the pragma will enable the successful ordering of the units.
  
*************** following tactics to eliminate the circu
*** 1013,1019 ****
    other purposes, such as guaranteeing the initialization of a variable
    declared in the spec by elaboration code in the body.
  
!   The programmer should remove the pragma as advised, and rebuild the program.
  
  * Use of pragma Restrictions
  
--- 1015,1022 ----
    other purposes, such as guaranteeing the initialization of a variable
    declared in the spec by elaboration code in the body.
  
!   If the pragma is not required for another purpose, you should remove
!   the pragma as advised and rebuild the program.
  
  * Use of pragma Restrictions
  
*************** following tactics to eliminate the circu
*** 1021,1027 ****
  
       use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
  
!   This tactic is suggested when the binder has determined that a task
    activation at elaboration time:
  
    - Prevents a set of units from being elaborated.
--- 1024,1030 ----
  
       use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
  
!   The binder suggests this tactic when it has determined that a task
    activation at elaboration time:
  
    - Prevents a set of units from being elaborated.
*************** following tactics to eliminate the circu
*** 1046,1061 ****
    - The use of the dynamic model will enable the successful ordering of the
      units.
  
!   The programmer has two options:
  
    - Determine the units involved in the invocation using the detailed
!     invocation information, and add compiler switch :switch:`-gnatE` to the
!     compilation arguments of selected files only. This approach will yield
      safer elaboration orders compared to the other option because it will
      minimize the opportunities presented to the dynamic model for ignoring
      invocations.
  
!   - Add compiler switch :switch:`-gnatE` to the general compilation arguments.
  
  * Use of detailed invocation information
  
--- 1049,1064 ----
    - The use of the dynamic model will enable the successful ordering of the
      units.
  
!   You have two options:
  
    - Determine the units involved in the invocation using the detailed
!     invocation information and add compiler switch :switch:`-gnatE` to the
!     compilation arguments of those units only. This approach will yield
      safer elaboration orders compared to the other option because it will
      minimize the opportunities presented to the dynamic model for ignoring
      invocations.
  
!   - Add compiler switch :switch:`-gnatE` to the global compilation arguments.
  
  * Use of detailed invocation information
  
*************** following tactics to eliminate the circu
*** 1063,1075 ****
  
       use detailed invocation information (compiler switch -gnatd_F)
  
!   This tactic is always suggested with the use of the dynamic model tactic. It
!   causes the circularity section of the circularity diagnostic to describe the
!   flow of elaboration code from a unit to a unit, enumerating all such paths in
!   the process.
  
!   The programmer should analyze this information to determine which units
!   should be compiled with the dynamic model.
  
  * Forced-dependency elimination
  
--- 1066,1078 ----
  
       use detailed invocation information (compiler switch -gnatd_F)
  
!   The binder always suggests this tactic when it suggests use of the
!   dynamic model tactic. It causes the circularity section of the
!   circularity diagnostic to describe the flow of elaboration code from
!   a unit to a unit, enumerating all such paths in the process.
  
!   You should analyze this information to determine which units should
!   be compiled with the dynamic model.
  
  * Forced-dependency elimination
  
*************** following tactics to eliminate the circu
*** 1077,1092 ****
  
       remove the dependency of unit "..." on unit "..." from the argument of switch -f
  
!   This tactic is suggested when the binder has determined that a dependency
!   present in the forced-elaboration-order file indicated by binder switch
!   :switch:`-f`:
  
    - Prevents a set of units from being elaborated.
  
    - The removal of the dependency will enable the successful ordering of the
      units.
  
!   The programmer should edit the forced-elaboration-order file, remove the
    dependency, and rebind the program.
  
  * All forced-dependency elimination
--- 1080,1095 ----
  
       remove the dependency of unit "..." on unit "..." from the argument of switch -f
  
!   The binder suggests this tactic when it has determined that a
!   dependency present in the forced-elaboration-order file indicated by
!   binder switch :switch:`-f`:
  
    - Prevents a set of units from being elaborated.
  
    - The removal of the dependency will enable the successful ordering of the
      units.
  
!   You should edit the forced-elaboration-order file, remove the
    dependency, and rebind the program.
  
  * All forced-dependency elimination
*************** following tactics to eliminate the circu
*** 1095,1105 ****
  
       remove switch -f
  
!   This tactic is suggested in case editing the forced-elaboration-order file is
!   not an option.
  
!   The programmer should remove binder switch :switch:`-f` from the binder
!   arguments, and rebind.
  
  * Multiple-circularities diagnostic
  
--- 1098,1108 ----
  
       remove switch -f
  
!   The binder suggests this tactic when editing the
!   forced-elaboration-order file is not an option.
  
!   You should remove binder switch :switch:`-f` from the binder
!   arguments and rebind.
  
  * Multiple-circularities diagnostic
  
*************** following tactics to eliminate the circu
*** 1107,1122 ****
  
       diagnose all circularities (binder switch -d_C)
  
!   By default, the binder will diagnose only the highest-precedence circularity.
!   If the program contains multiple circularities, the binder will suggest the
!   use of binder switch :switch:`-d_C` in order to obtain the diagnostics of all
!   circularities.
  
!   The programmer should add binder switch :switch:`-d_C` to the binder
!   arguments, and rebind.
  
  If none of the tactics suggested by the binder eliminate the elaboration
! circularity, the programmer should consider using one of the legacy elaboration
  models, in the following order:
  
  * Use the pre-20.x legacy elaboration-order model, with binder switch
--- 1110,1125 ----
  
       diagnose all circularities (binder switch -d_C)
  
!   By default, the binder only diagnoses the highest-precedence
!   circularity.  If the program contains multiple circularities, the
!   binder will suggest the use of binder switch :switch:`-d_C` in order
!   to obtain the diagnostics for each circularity.
  
!   You should add binder switch :switch:`-d_C` to the binder arguments
!   and rebind.
  
  If none of the tactics suggested by the binder eliminate the elaboration
! circularity, you should consider using one of the legacy elaboration
  models, in the following order:
  
  * Use the pre-20.x legacy elaboration-order model, with binder switch
*************** the elaboration order chosen by the bind
*** 1150,1156 ****
  .. index:: -gnatel  (gnat)
  
  :switch:`-gnatel`
!   Turn on info messages on generated Elaborate[_All] pragmas
  
    This switch is only applicable to the pre-20.x legacy elaboration models.
    The post-20.x elaboration model no longer relies on implicitly generated
--- 1153,1159 ----
  .. index:: -gnatel  (gnat)
  
  :switch:`-gnatel`
!   Turn on informational messages on generated Elaborate[_All] pragmas
  
    This switch is only applicable to the pre-20.x legacy elaboration models.
    The post-20.x elaboration model no longer relies on implicitly generated
*************** the elaboration order chosen by the bind
*** 1280,1302 ****
  Summary of Procedures for Elaboration Control
  =============================================
  
! A programmer should first compile the program with the default options, using
  none of the binder or compiler switches. If the binder succeeds in finding an
  elaboration order, then apart from possible cases involving dispatching calls
  and access-to-subprogram types, the program is free of elaboration errors.
  
! If it is important for the program to be portable to compilers other than GNAT,
! then the programmer should use compiler switch :switch:`-gnatel` and consider
! the messages about missing or implicitly created ``Elaborate`` and
! ``Elaborate_All`` pragmas.
  
! If the binder reports an elaboration circularity, the programmer has several
  options:
  
! * Ensure that elaboration warnings are enabled. This will allow the static
    model to output trace information of elaboration issues. The trace
!   information could shed light on previously unforeseen dependencies, as well
!   as their origins. Elaboration warnings are enabled with compiler switch
    :switch:`-gnatwl`.
  
  * Cosider the tactics given in the suggestions section of the circularity
--- 1283,1305 ----
  Summary of Procedures for Elaboration Control
  =============================================
  
! You should first compile the program with the default options, using
  none of the binder or compiler switches. If the binder succeeds in finding an
  elaboration order, then apart from possible cases involving dispatching calls
  and access-to-subprogram types, the program is free of elaboration errors.
  
! If it is important for the program to be portable to compilers other
! than GNAT, you should use compiler switch :switch:`-gnatel` and
! consider the messages about missing or implicitly created
! ``Elaborate`` and ``Elaborate_All`` pragmas.
  
! If the binder reports an elaboration circularity, you have several
  options:
  
! * Ensure that elaboration warnings are enabled. This allows the static
    model to output trace information of elaboration issues. The trace
!   information could shed light on previously unforeseen dependencies as well
!   as their origins. You enable elaboration warnings with compiler switch
    :switch:`-gnatwl`.
  
  * Cosider the tactics given in the suggestions section of the circularity
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/example_of_binder_output.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/example_of_binder_output.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/example_of_binder_output.rst	Fri Apr 25 08:18:00 2025
*************** Example of Binder Output File
*** 7,13 ****
  .. index:: Binder output (example)
  
  This Appendix displays the source code for the output file
! generated by *gnatbind* for a simple 'Hello World' program.
  Comments have been added for clarification purposes.
  
  
--- 7,13 ----
  .. index:: Binder output (example)
  
  This Appendix displays the source code for the output file
! generated by ``gnatbind`` for a simple 'Hello World' program.
  Comments have been added for clarification purposes.
  
  
*************** Comments have been added for clarificati
*** 24,31 ****
  
       --  The main program saves the parameters (argument count,
       --  argument values, environment pointer) in global variables
!      --  for later access by other units including
!      --  Ada.Command_Line.
  
       gnat_argc : Integer;
       gnat_argv : System.Address;
--- 24,30 ----
  
       --  The main program saves the parameters (argument count,
       --  argument values, environment pointer) in global variables
!      --  for later access by other units including Ada.Command_Line.
  
       gnat_argc : Integer;
       gnat_argv : System.Address;
*************** Comments have been added for clarificati
*** 400,407 ****
    package body ada_main is
       pragma Warnings (Off);
  
!      --  These values are reference counter associated to units which have
!      --  been elaborated. It is also used to avoid elaborating the
       --  same unit twice.
  
       E72 : Short_Integer; pragma Import (Ada, E72, "system__os_lib_E");
--- 399,406 ----
    package body ada_main is
       pragma Warnings (Off);
  
!      --  These values are reference counters associated with units that have
!      --  been elaborated. They are used to avoid elaborating the
       --  same unit twice.
  
       E72 : Short_Integer; pragma Import (Ada, E72, "system__os_lib_E");
*************** Comments have been added for clarificati
*** 559,566 ****
          --  Now we have the elaboration calls for all units in the partition.
          --  The Elab_Spec and Elab_Body attributes generate references to the
          --  implicit elaboration procedures generated by the compiler for
!         --  each unit that requires elaboration. Increment a counter of
!         --  reference for each unit.
  
          System.Soft_Links'Elab_Spec;
          System.Exception_Table'Elab_Body;
--- 558,565 ----
          --  Now we have the elaboration calls for all units in the partition.
          --  The Elab_Spec and Elab_Body attributes generate references to the
          --  implicit elaboration procedures generated by the compiler for
!         --  each unit that requires elaboration. Also increment a reference
! 	--  counter for each unit.
  
          System.Soft_Links'Elab_Spec;
          System.Exception_Table'Elab_Body;
*************** Comments have been added for clarificati
*** 625,635 ****
       end adafinal;
  
       --  We get to the main program of the partition by using
!      --  pragma Import because if we try to with the unit and
!      --  call it Ada style, then not only do we waste time
!      --  recompiling it, but also, we don't really know the right
!      --  switches (e.g.@: identifier character set) to be used
!      --  to compile it.
  
       procedure Ada_Main_Program;
       pragma Import (Ada, Ada_Main_Program, "_ada_hello");
--- 624,633 ----
       end adafinal;
  
       --  We get to the main program of the partition by using
!      --  pragma Import because if we try to 'with' the unit and
!      --  call it in Ada style, not only do we waste time recompiling it,
!      --  but we don't know the right switches (e.g.@: identifier
!      --  character set) to be used to compile it.
  
       procedure Ada_Main_Program;
       pragma Import (Ada, Ada_Main_Program, "_ada_hello");
*************** binder. We have added comments to more c
*** 734,742 ****
  of each part of the generated ``Ada_Main`` package.
  
  The code is standard Ada in all respects, and can be processed by any
! tools that handle Ada. In particular, it is possible to use the debugger
  in Ada mode to debug the generated ``Ada_Main`` package. For example,
! suppose that for reasons that you do not understand, your program is crashing
  during elaboration of the body of ``Ada.Text_IO``. To locate this bug,
  you can place a breakpoint on the call:
  
--- 732,740 ----
  of each part of the generated ``Ada_Main`` package.
  
  The code is standard Ada in all respects, and can be processed by any
! tools that handle Ada. In particular, you can use the debugger
  in Ada mode to debug the generated ``Ada_Main`` package. For example,
! suppose that for reasons you don't understand, your program is crashing
  during elaboration of the body of ``Ada.Text_IO``. To locate this bug,
  you can place a breakpoint on the call:
  
*************** you can place a breakpoint on the call:
*** 745,749 ****
       Ada.Text_Io'Elab_Body;
  
  and trace the elaboration routine for this package to find out where
! the problem might be (more usually of course you would be debugging
  elaboration code in your own application).
--- 743,747 ----
       Ada.Text_Io'Elab_Body;
  
  and trace the elaboration routine for this package to find out where
! the problem might be (more usually, of course, you would be debugging
  elaboration code in your own application).
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst	Fri Apr 25 08:18:00 2025
*************** For information on GNAT Studio please re
*** 22,78 ****
  System Requirements
  ===================
  
! Even though any machine can run the GNAT toolset and GNAT Studio IDE, in order
! to get the best experience, we recommend using a machine with as many cores
! as possible since all individual compilations can run in parallel.
  A comfortable setup for a compiler server is a machine with 24 physical cores
  or more, with at least 48 GB of memory (2 GB per core).
  
! For a desktop machine, a minimum of 4 cores is recommended (8 preferred),
  with at least 2GB per core (so 8 to 16GB).
  
! In addition, for running and navigating sources in GNAT Studio smoothly, we
! recommend at least 1.5 GB plus 3 GB of RAM per 1 million source line of code.
! In other words, we recommend at least 3 GB for for 500K lines of code and
  7.5 GB for 2 million lines of code.
  
! Note that using local and fast drives will also make a difference in terms of
! build and link time. Network drives such as NFS, SMB, or worse, configuration
! management filesystems (such as ClearCase dynamic views) should be avoided as
! much as possible and will produce very degraded performance (typically 2 to 3
! times slower than on local fast drives). If such slow drives cannot be avoided
! for accessing the source code, then you should at least configure your project
! file so that the result of the compilation is stored on a drive local to the
! machine performing the run. This can be achieved by setting the ``Object_Dir``
! project file attribute.
  
  .. _Running_GNAT:
  
  Running GNAT
  ============
  
! Three steps are needed to create an executable file from an Ada source
! file:
  
! *   The source file(s) must be compiled.
! *   The file(s) must be bound using the GNAT binder.
! *   All appropriate object files must be linked to produce an executable.
  
! All three steps are most commonly handled by using the ``gnatmake``
! utility program that, given the name of the main program, automatically
! performs the necessary compilation, binding and linking steps.
  
  .. _Running_a_Simple_Ada_Program:
  
  Running a Simple Ada Program
  ============================
  
! Any text editor may be used to prepare an Ada program.
! (If Emacs is used, the optional Ada mode may be helpful in laying out the
  program.)
  The program text is a normal text file. We will assume in our initial
  example that you have used your editor to prepare the following
! standard format text file:
  
  
  .. code-block:: ada
--- 22,79 ----
  System Requirements
  ===================
  
! Even though any machine can run the GNAT toolset and GNAT Studio IDE, 
! to get the best experience we recommend using a machine with as many cores
! as possible, allowing individual compilations to run in parallel.
  A comfortable setup for a compiler server is a machine with 24 physical cores
  or more, with at least 48 GB of memory (2 GB per core).
  
! For a desktop machine, we recommend a minimum of 4 cores (8 is preferred),
  with at least 2GB per core (so 8 to 16GB).
  
! In addition, for running and smoothly navigating sources in GNAT Studio, we
! recommend at least 1.5 GB, plus 3 GB of RAM per million source lines of code.
! So we recommend at least 3 GB for 500K lines of code and
  7.5 GB for 2 million lines of code.
  
! Using fast, local drives can make a significant difference in build
! and link times. You should avoid network drives such as NFS, SMB, or
! worse, configuration management filesystems (such as ClearCase dynamic
! views) as much as possible since these will produce very degraded
! performance (typically 2 to 3 times slower than on fast, local
! drives). If you cannot avoid using such slow drives for accessing
! source code, you should at least configure your project file so
! the result of the compilation is stored on a drive local to the
! machine performing the compilation. You can do this by setting the
! ``Object_Dir`` project file attribute.
  
  .. _Running_GNAT:
  
  Running GNAT
  ============
  
! You need to take three steps to create an executable file from an Ada
! source file:
  
! *   You must compile the source file(s).
! *   You must bind the file(s) using the GNAT binder.
! *   You must link all appropriate object files to produce an executable.
  
! You most commonly perform all three steps by using the ``gnatmake``
! utility program.  You pass it the name of the main program and it automatically
! performs the necessary compilation, binding, and linking steps.
  
  .. _Running_a_Simple_Ada_Program:
  
  Running a Simple Ada Program
  ============================
  
! You may use any text editor to prepare an Ada program.
! (If you use Emacs, an optional Ada mode may be helpful in laying out the
  program.)
  The program text is a normal text file. We will assume in our initial
  example that you have used your editor to prepare the following
! standard format text file named :file:`hello.adb`:
  
  
  .. code-block:: ada
*************** standard format text file:
*** 83,103 ****
       Put_Line ("Hello WORLD!");
    end Hello;
  
- This file should be named :file:`hello.adb`.
  With the normal default file naming conventions, GNAT requires
  that each file
  contain a single compilation unit whose file name is the
! unit name,
! with periods replaced by hyphens; the
  extension is :file:`ads` for a
  spec and :file:`adb` for a body.
  You can override this default file naming convention by use of the
! special pragma ``Source_File_Name`` (for further information please
! see :ref:`Using_Other_File_Names`).
  Alternatively, if you want to rename your files according to this default
  convention, which is probably more convenient if you will be using GNAT
! for all your compilations, then the ``gnatchop`` utility
! can be used to generate correctly-named source files
  (see :ref:`Renaming_Files_with_gnatchop`).
  
  You can compile the program using the following command (``$`` is used
--- 84,101 ----
       Put_Line ("Hello WORLD!");
    end Hello;
  
  With the normal default file naming conventions, GNAT requires
  that each file
  contain a single compilation unit whose file name is the
! unit name with periods replaced by hyphens; the
  extension is :file:`ads` for a
  spec and :file:`adb` for a body.
  You can override this default file naming convention by use of the
! special pragma ``Source_File_Name`` (see :ref:`Using_Other_File_Names`).
  Alternatively, if you want to rename your files according to this default
  convention, which is probably more convenient if you will be using GNAT
! for all your compilations, then you use can use the ``gnatchop`` utility
! to generate correctly-named source files
  (see :ref:`Renaming_Files_with_gnatchop`).
  
  You can compile the program using the following command (``$`` is used
*************** as the command prompt in the examples in
*** 108,123 ****
    $ gcc -c hello.adb
  
  
! ``gcc`` is the command used to run the compiler. This compiler is
  capable of compiling programs in several languages, including Ada and
! C. It assumes that you have given it an Ada program if the file extension is
! either :file:`.ads` or :file:`.adb`, and it will then call
  the GNAT compiler to compile the specified file.
  
  The :switch:`-c` switch is required. It tells ``gcc`` to only do a
  compilation. (For C programs, ``gcc`` can also do linking, but this
! capability is not used directly for Ada programs, so the :switch:`-c`
! switch must always be present.)
  
  This compile command generates a file
  :file:`hello.o`, which is the object
--- 106,121 ----
    $ gcc -c hello.adb
  
  
! ``gcc`` is the command used to run the compiler. It is
  capable of compiling programs in several languages, including Ada and
! C. It assumes you have given it an Ada program if the file extension is
! either :file:`.ads` or :file:`.adb`, in which case it will call
  the GNAT compiler to compile the specified file.
  
  The :switch:`-c` switch is required. It tells ``gcc`` to only do a
  compilation. (For C programs, ``gcc`` can also do linking, but this
! capability is not used directly for Ada programs, so you must always
! specify the :switch:`-c`.)
  
  This compile command generates a file
  :file:`hello.o`, which is the object
*************** an 'Ada Library Information' file :file:
*** 126,136 ****
  which contains additional information used to check
  that an Ada program is consistent.
  
! To build an executable file, use either ``gnatmake`` or gprbuild with
! the name of the main file: these tools are builders that will take care of
  all the necessary build steps in the correct order.
  In particular, these builders automatically recompile any sources that have
! been modified since they were last compiled, or sources that depend
  on such modified sources, so that 'version skew' is avoided.
  
  .. index:: Version skew (avoided by ``gnatmake``)
--- 124,134 ----
  which contains additional information used to check
  that an Ada program is consistent.
  
! To build an executable file, use either ``gnatmake`` or ``gprbuild`` with
! the name of the main file: these tools are builders that perform
  all the necessary build steps in the correct order.
  In particular, these builders automatically recompile any sources that have
! been modified since they were last compiled, as well as sources that depend
  on such modified sources, so that 'version skew' is avoided.
  
  .. index:: Version skew (avoided by ``gnatmake``)
*************** on such modified sources, so that 'versi
*** 139,145 ****
  
    $ gnatmake hello.adb
  
! The result is an executable program called :file:`hello`, which can be
  run by entering:
  
  .. code-block:: sh
--- 137,143 ----
  
    $ gnatmake hello.adb
  
! The result is an executable program called :file:`hello`, which you can
  run by entering:
  
  .. code-block:: sh
*************** appear in response to this command.
*** 160,167 ****
  Running a Program with Multiple Units
  =====================================
  
! Consider a slightly more complicated example that has three files: a
! main program, and the spec and body of a package:
  
  
  .. code-block:: ada
--- 158,165 ----
  Running a Program with Multiple Units
  =====================================
  
! Consider a slightly more complicated example with three files: a
! main program and the spec and body of a package:
  
  
  .. code-block:: ada
*************** following three separate files:
*** 210,224 ****
  Note that there is no required order of compilation when using GNAT.
  In particular it is perfectly fine to compile the main program first.
  Also, it is not necessary to compile package specs in the case where
! there is an accompanying body; you only need to compile the body. If you want
  to submit these files to the compiler for semantic checking and not code
! generation, then use the :switch:`-gnatc` switch:
  
  .. code-block:: sh
  
    $ gcc -c greetings.ads -gnatc
  
! Although the compilation can be done in separate steps, in practice it is
  almost always more convenient to use the ``gnatmake`` or ``gprbuild`` tools:
  
  .. code-block:: sh
--- 208,222 ----
  Note that there is no required order of compilation when using GNAT.
  In particular it is perfectly fine to compile the main program first.
  Also, it is not necessary to compile package specs in the case where
! there is an accompanying body; you only need compile the body. If you want
  to submit these files to the compiler for semantic checking and not code
! generation, use the :switch:`-gnatc` switch:
  
  .. code-block:: sh
  
    $ gcc -c greetings.ads -gnatc
  
! Although you can do the compilation in separate steps, in practice it's
  almost always more convenient to use the ``gnatmake`` or ``gprbuild`` tools:
  
  .. code-block:: sh
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Fri Apr 25 08:18:00 2025
*************** Running and Debugging Ada Programs
*** 33,48 ****
  
  This section discusses how to debug Ada programs.
  
! An incorrect Ada program may be handled in three ways by the GNAT compiler:
  
  * The illegality may be a violation of the static semantics of Ada. In
!   that case GNAT diagnoses the constructs in the program that are illegal.
!   It is then a straightforward matter for the user to modify those parts of
    the program.
  
  * The illegality may be a violation of the dynamic semantics of Ada. In
    that case the program compiles and executes, but may generate incorrect
!   results, or may terminate abnormally with some exception.
  
  * When presented with a program that contains convoluted errors, GNAT
    itself may terminate abnormally without providing full diagnostics on
--- 33,48 ----
  
  This section discusses how to debug Ada programs.
  
! The GNAT compiler handles an incorrect Ada program in three ways:
  
  * The illegality may be a violation of the static semantics of Ada. In
!   that case, GNAT diagnoses the constructs in the program that are illegal.
!   It's then a straightforward matter for you to modify those parts of
    the program.
  
  * The illegality may be a violation of the dynamic semantics of Ada. In
    that case the program compiles and executes, but may generate incorrect
!   results or may terminate abnormally with some exception.
  
  * When presented with a program that contains convoluted errors, GNAT
    itself may terminate abnormally without providing full diagnostics on
*************** The GNAT Debugger GDB
*** 58,113 ****
  ---------------------
  
  ``GDB`` is a general purpose, platform-independent debugger that
! can be used to debug mixed-language programs compiled with ``gcc``,
  and in particular is capable of debugging Ada programs compiled with
  GNAT. The latest versions of ``GDB`` are Ada-aware and can handle
  complex Ada data structures.
  
  See :title:`Debugging with GDB`,
  for full details on the usage of ``GDB``, including a section on
! its usage on programs. This manual should be consulted for full
  details. The section that follows is a brief introduction to the
  philosophy and use of ``GDB``.
  
! When GNAT programs are compiled, the compiler optionally writes debugging
  information into the generated object file, including information on
! line numbers, and on declared types and variables. This information is
  separate from the generated code. It makes the object files considerably
  larger, but it does not add to the size of the actual executable that
! will be loaded into memory, and has no impact on run-time performance. The
  generation of debug information is triggered by the use of the
  :switch:`-g` switch in the ``gcc`` or ``gnatmake`` command
! used to carry out the compilations. It is important to emphasize that
! the use of these options does not change the generated code.
  
! The debugging information is written in standard system formats that
  are used by many tools, including debuggers and profilers. The format
  of the information is typically designed to describe C types and
  semantics, but GNAT implements a translation scheme which allows full
  details about Ada types and variables to be encoded into these
  standard C formats. Details of this encoding scheme may be found in
! the file exp_dbug.ads in the GNAT source distribution. However, the
! details of this encoding are, in general, of no interest to a user,
  since ``GDB`` automatically performs the necessary decoding.
  
  When a program is bound and linked, the debugging information is
! collected from the object files, and stored in the executable image of
  the program. Again, this process significantly increases the size of
! the generated executable file, but it does not increase the size of
! the executable program itself. Furthermore, if this program is run in
  the normal manner, it runs exactly as if the debug information were
! not present, and takes no more actual memory.
  
  However, if the program is run under control of ``GDB``, the
  debugger is activated.  The image of the program is loaded, at which
! point it is ready to run.  If a run command is given, then the program
! will run exactly as it would have if ``GDB`` were not present. This
! is a crucial part of the ``GDB`` design philosophy.  ``GDB`` is
  entirely non-intrusive until a breakpoint is encountered.  If no
! breakpoint is ever hit, the program will run exactly as it would if no
  debugger were present. When a breakpoint is hit, ``GDB`` accesses
  the debugging information and can respond to user commands to inspect
! variables, and more generally to report on the state of execution.
  
  .. _Running_GDB:
  
--- 58,114 ----
  ---------------------
  
  ``GDB`` is a general purpose, platform-independent debugger that
! you can use to debug mixed-language programs, including compiled with ``gcc``,
  and in particular is capable of debugging Ada programs compiled with
  GNAT. The latest versions of ``GDB`` are Ada-aware and can handle
  complex Ada data structures.
  
  See :title:`Debugging with GDB`,
  for full details on the usage of ``GDB``, including a section on
! its usage on programs. That manual should be consulted for full
  details. The section that follows is a brief introduction to the
  philosophy and use of ``GDB``.
  
! When programs are compiled, the compiler optionally writes debugging
  information into the generated object file, including information on
! line numbers and on declared types and variables. This information is
  separate from the generated code. It makes the object files considerably
  larger, but it does not add to the size of the actual executable that
! is loaded into memory and has no impact on run-time performance. The
  generation of debug information is triggered by the use of the
  :switch:`-g` switch in the ``gcc`` or ``gnatmake`` command
! you used to perform the compilations. It is important to emphasize that
! it's a goal of GCC, and hence GNAT, that the use of this switch does
! not change the generated code.
  
! The compiler writes the debugging information in standard system formats that
  are used by many tools, including debuggers and profilers. The format
  of the information is typically designed to describe C types and
  semantics, but GNAT implements a translation scheme which allows full
  details about Ada types and variables to be encoded into these
  standard C formats. Details of this encoding scheme may be found in
! the file :file:`exp_dbug.ads` in the GNAT source distribution. However, the
! details of this encoding are, in most cases, of no interest to a user,
  since ``GDB`` automatically performs the necessary decoding.
  
  When a program is bound and linked, the debugging information is
! collected from the object files and stored in the executable image of
  the program. Again, this process significantly increases the size of
! the generated executable file, but does not increase the size of
! the executable program in memory. Furthermore, if this program is run in
  the normal manner, it runs exactly as if the debug information were
! not present and takes no more actual memory.
  
  However, if the program is run under control of ``GDB``, the
  debugger is activated.  The image of the program is loaded, at which
! point it is ready to run.  If you give a run command, the program
! runs exactly as it would have if ``GDB`` were not present. This
! is a crucial part of the ``GDB`` design philosophy: ``GDB`` is
  entirely non-intrusive until a breakpoint is encountered.  If no
! breakpoint is ever hit, the program runs exactly as it would if no
  debugger were present. When a breakpoint is hit, ``GDB`` accesses
  the debugging information and can respond to user commands to inspect
! variables and more generally to report on the state of execution.
  
  .. _Running_GDB:
  
*************** Running GDB
*** 116,124 ****
  
  This section describes how to initiate the debugger.
  
! The debugger can be launched from a ``GNAT Studio`` menu or
  directly from the command line. The description below covers the latter use.
! All the commands shown can be used in the ``GNAT Studio`` debug console window,
  but there are usually more GUI-based ways to achieve the same effect.
  
  The command to run ``GDB`` is
--- 117,125 ----
  
  This section describes how to initiate the debugger.
  
! You can launch the debugger from a ``GNAT Studio`` menu or
  directly from the command line. The description below covers the latter use.
! You can use all the commands shown in the ``GNAT Studio`` debug console window,
  but there are usually more GUI-based ways to achieve the same effect.
  
  The command to run ``GDB`` is
*************** where ``program`` is the name of the exe
*** 131,137 ****
  activates the debugger and results in a prompt for debugger commands.
  The simplest command is simply ``run``, which causes the program to run
  exactly as if the debugger were not present. The following section
! describes some of the additional commands that can be given to ``GDB``.
  
  
  .. _Introduction_to_GDB_Commands:
--- 132,138 ----
  activates the debugger and results in a prompt for debugger commands.
  The simplest command is simply ``run``, which causes the program to run
  exactly as if the debugger were not present. The following section
! describes some of the additional commands that you can give to ``GDB``.
  
  
  .. _Introduction_to_GDB_Commands:
*************** See :title:`Debugging with GDB` for exte
*** 144,160 ****
  of these commands, together with examples of their use. Furthermore,
  the command *help* invoked from within GDB activates a simple help
  facility which summarizes the available commands and their options.
! In this section we summarize a few of the most commonly
  used commands to give an idea of what ``GDB`` is about. You should create
  a simple program with debugging information and experiment with the use of
! these ``GDB`` commands on the program as you read through the
  following section.
  
  * :samp:`set args {arguments}`
!     The *arguments* list above is a list of arguments to be passed to
!     the program on a subsequent run command, just as though the arguments
!     had been entered on a normal invocation of the program. The ``set args``
!     command is not needed if the program does not require arguments.
  
  
  * :samp:`run`
--- 145,161 ----
  of these commands, together with examples of their use. Furthermore,
  the command *help* invoked from within GDB activates a simple help
  facility which summarizes the available commands and their options.
! In this section, we summarize a few of the most commonly
  used commands to give an idea of what ``GDB`` is about. You should create
  a simple program with debugging information and experiment with the use of
! these ``GDB`` commands on that program as you read through the
  following section.
  
  * :samp:`set args {arguments}`
!     *arguments* is a list of arguments to be passed to the program on
!     a subsequent run command, just as though the arguments had been
!     entered on a normal invocation of the program. You do not need the
!     ``set args`` command if the program does not require arguments.
  
  
  * :samp:`run`
*************** following section.
*** 162,198 ****
      the beginning. If the program is already running, that is to say if
      you are currently positioned at a breakpoint, then a prompt will ask
      for confirmation that you want to abandon the current execution and
!     restart.
  
  
  * :samp:`breakpoint {location}`
!     The breakpoint command sets a breakpoint, that is to say a point at which
      execution will halt and ``GDB`` will await further
!     commands. *location* is
!     either a line number within a file, given in the format ``file:linenumber``,
!     or it is the name of a subprogram. If you request that a breakpoint be set on
!     a subprogram that is overloaded, a prompt will ask you to specify on which of
!     those subprograms you want to breakpoint. You can also
!     specify that all of them should be breakpointed. If the program is run
!     and execution encounters the breakpoint, then the program
!     stops and ``GDB`` signals that the breakpoint was encountered by
!     printing the line of code before which the program is halted.
  
  
  * :samp:`catch exception {name}`
      This command causes the program execution to stop whenever exception
!     ``name`` is raised.  If ``name`` is omitted, then the execution is
      suspended when any exception is raised.
  
  
  * :samp:`print {expression}`
!     This will print the value of the given expression. Most simple
      Ada expression formats are properly handled by ``GDB``, so the expression
      can contain function calls, variables, operators, and attribute references.
  
  
  * :samp:`continue`
!     Continues execution following a breakpoint, until the next breakpoint or the
      termination of the program.
  
  
--- 163,201 ----
      the beginning. If the program is already running, that is to say if
      you are currently positioned at a breakpoint, then a prompt will ask
      for confirmation that you want to abandon the current execution and
!     restart. You can also specify program arguments on this command and
!     if you specify ``run`` with no arguments, the arguments used on
!     the previous command will be used again.
  
  
  * :samp:`breakpoint {location}`
!     This command sets a breakpoint, that is to say a point at which
      execution will halt and ``GDB`` will await further
!     commands. *location* is either a line number within a file, which
!     you specify in the format ``file:linenumber``, or the name of a
!     subprogram. If you request a breakpoint be set on a subprogram
!     that is overloaded, either a prompt will ask you to specify on
!     which of those subprograms you want to breakpoint or a breakpoint
!     will be set on all of them. If the program is run and execution
!     encounters the breakpoint, the program stops and ``GDB``
!     signals that the breakpoint was encountered by printing the line
!     of code before which the program is halted.
  
  
  * :samp:`catch exception {name}`
      This command causes the program execution to stop whenever exception
!     ``name`` is raised.  If you omit ``name``, execution is
      suspended when any exception is raised.
  
  
  * :samp:`print {expression}`
!     This prints the value of the given expression. Most
      Ada expression formats are properly handled by ``GDB``, so the expression
      can contain function calls, variables, operators, and attribute references.
  
  
  * :samp:`continue`
!     Continues execution following a breakpoint until the next breakpoint or the
      termination of the program.
  
  
*************** following section.
*** 203,231 ****
  
  
  * :samp:`next`
!     Executes a single line. If this line is a subprogram call, executes and
!     returns from the call.
  
  
  * :samp:`list`
!     Lists a few lines around the current source location. In practice, it
!     is usually more convenient to have a separate edit window open with the
!     relevant source file displayed. Successive applications of this command
!     print subsequent lines. The command can be given an argument which is a
!     line number, in which case it displays a few lines around the specified one.
  
  
  * :samp:`backtrace`
      Displays a backtrace of the call chain. This command is typically
!     used after a breakpoint has occurred, to examine the sequence of calls that
      leads to the current breakpoint. The display includes one line for each
      activation record (frame) corresponding to an active subprogram.
  
  
  * :samp:`up`
      At a breakpoint, ``GDB`` can display the values of variables local
!     to the current frame. The command ``up`` can be used to
!     examine the contents of other active frames, by moving the focus up
      the stack, that is to say from callee to caller, one frame at a time.
  
  
--- 206,238 ----
  
  
  * :samp:`next`
!     Executes a single line. If this line is a subprogram call, the
!     program executes that call and returns.
  
  
  * :samp:`list`
! 
!     Lists a few lines around the current source location. In practice,
!     it is usually more convenient to have a separate edit window open
!     with the relevant source file displayed. ``emacs`` has debugging
!     modes that display both the relevant source and ``GDB`` commands
!     and output.  Successive applications of this command print
!     subsequent lines. You can give this command an argument which is a
!     line number, in which case it displays a few lines around the
!     specified line.
  
  
  * :samp:`backtrace`
      Displays a backtrace of the call chain. This command is typically
!     used after a breakpoint has occurred to examine the sequence of calls that
      leads to the current breakpoint. The display includes one line for each
      activation record (frame) corresponding to an active subprogram.
  
  
  * :samp:`up`
      At a breakpoint, ``GDB`` can display the values of variables local
!     to the current frame. You can use the command ``up`` to
!     examine the contents of other active frames by moving the focus up
      the stack, that is to say from callee to caller, one frame at a time.
  
  
*************** following section.
*** 241,264 ****
  
  * :samp:`kill`
      Kills the child process in which the program is running under GDB.
!     This may be useful for several purposes:
  
      * It allows you to recompile and relink your program, since on many systems
        you cannot regenerate an executable file while it is running in a process.
  
!     * You can run your program outside the debugger, on systems that do not
        permit executing a program outside GDB while breakpoints are set
        within GDB.
  
      * It allows you to debug a core dump rather than a running process.
  
! The above list is a very short introduction to the commands that
  ``GDB`` provides. Important additional capabilities, including conditional
  breakpoints, the ability to execute command sequences on a breakpoint,
  the ability to debug at the machine instruction level and many other
  features are described in detail in :title:`Debugging with GDB`.
  Note that most commands can be abbreviated
! (for example, c for continue, bt for backtrace).
  
  
  .. _Using_Ada_Expressions:
--- 248,273 ----
  
  * :samp:`kill`
      Kills the child process in which the program is running under GDB.
!     You may find this useful for several purposes:
  
      * It allows you to recompile and relink your program, since on many systems
        you cannot regenerate an executable file while it is running in a process.
  
!     * You can run your program outside the debugger on systems that do not
        permit executing a program outside GDB while breakpoints are set
        within GDB.
  
      * It allows you to debug a core dump rather than a running process.
  
! The above is a very short introduction to the commands that
  ``GDB`` provides. Important additional capabilities, including conditional
  breakpoints, the ability to execute command sequences on a breakpoint,
  the ability to debug at the machine instruction level and many other
  features are described in detail in :title:`Debugging with GDB`.
  Note that most commands can be abbreviated
! (for example, "c" for ``continue`` and "bt" for ``backtrace``) and only enough
! characters need be typed to disambiguate the command (e.g., "br" for
! ``breakpoint``).
  
  
  .. _Using_Ada_Expressions:
*************** Using Ada Expressions
*** 268,285 ****
  
  .. index:: Ada expressions (in gdb)
  
! ``GDB`` supports a fairly large subset of Ada expression syntax, with some
  extensions. The philosophy behind the design of this subset is
  
!   * That ``GDB`` should provide basic literals and access to operations for
      arithmetic, dereferencing, field selection, indexing, and subprogram calls,
      leaving more sophisticated computations to subprograms written into the
      program (which therefore may be called from ``GDB``).
  
!   * That type safety and strict adherence to Ada language restrictions
      are not particularly relevant in a debugging context.
  
!   * That brevity is important to the ``GDB`` user.
  
  Thus, for brevity, the debugger acts as if there were
  implicit ``with`` and ``use`` clauses in effect for all user-written
--- 277,294 ----
  
  .. index:: Ada expressions (in gdb)
  
! ``GDB`` supports a very large subset of Ada expression syntax, with some
  extensions. The philosophy behind the design of this subset is
  
!   * ``GDB`` should provide basic literals and access to operations for
      arithmetic, dereferencing, field selection, indexing, and subprogram calls,
      leaving more sophisticated computations to subprograms written into the
      program (which therefore may be called from ``GDB``).
  
!   * Type safety and strict adherence to Ada language restrictions
      are not particularly relevant in a debugging context.
  
!   * Brevity is important to the ``GDB`` user.
  
  Thus, for brevity, the debugger acts as if there were
  implicit ``with`` and ``use`` clauses in effect for all user-written
*************** Calling User-Defined Subprograms
*** 296,324 ****
  --------------------------------
  
  An important capability of ``GDB`` is the ability to call user-defined
! subprograms while debugging. This is achieved simply by entering
  a subprogram call statement in the form:
  
    ::
  
       call subprogram-name (parameters)
  
! The keyword ``call`` can be omitted in the normal case where the
  ``subprogram-name`` does not coincide with any of the predefined
  ``GDB`` commands.
  
  The effect is to invoke the given subprogram, passing it the
! list of parameters that is supplied. The parameters can be expressions and
  can include variables from the program being debugged. The
  subprogram must be defined
! at the library level within your program, and ``GDB`` will call the
  subprogram within the environment of your program execution (which
  means that the subprogram is free to access or even modify variables
  within your program).
  
! The most important use of this facility is in allowing the inclusion of
  debugging routines that are tailored to particular data structures
! in your program. Such debugging routines can be written to provide a suitably
  high-level description of an abstract type, rather than a low-level dump
  of its physical layout. After all, the standard
  ``GDB print`` command only knows the physical layout of your
--- 305,333 ----
  --------------------------------
  
  An important capability of ``GDB`` is the ability to call user-defined
! subprograms while debugging. You do this by simply entering
  a subprogram call statement in the form:
  
    ::
  
       call subprogram-name (parameters)
  
! You can omit the keyword ``call`` in the normal case where the
  ``subprogram-name`` does not coincide with any of the predefined
  ``GDB`` commands.
  
  The effect is to invoke the given subprogram, passing it the
! list of parameters that is supplied. The parameters you specify can be expressions and
  can include variables from the program being debugged. The
  subprogram must be defined
! at the library level within your program and ``GDB`` will call the
  subprogram within the environment of your program execution (which
  means that the subprogram is free to access or even modify variables
  within your program).
  
! The most important use of this facility that you can include
  debugging routines that are tailored to particular data structures
! in your program. You can write such debugging routines to provide a suitably
  high-level description of an abstract type, rather than a low-level dump
  of its physical layout. After all, the standard
  ``GDB print`` command only knows the physical layout of your
*************** the contents of the tree nodes used to r
*** 330,350 ****
  But tree nodes are represented simply by an integer value (which in turn
  is an index into a table of nodes).
  Using the ``print`` command on a tree node would simply print this integer
! value, which is not very useful. But the PN routine (defined in file
! treepr.adb in the GNAT sources) takes a tree node as input, and displays
  a useful high level representation of the tree node, which includes the
! syntactic category of the node, its position in the source, the integers
! that denote descendant nodes and parent node, as well as varied
  semantic information. To study this example in more detail, you might want to
! look at the body of the PN procedure in the stated file.
  
! Another useful application of this capability is to deal with situations of
  complex data which are not handled suitably by GDB. For example, if you specify
  Convention Fortran for a multi-dimensional array, GDB does not know that
  the ordering of array elements has been switched and will not properly
  address the array elements. In such a case, instead of trying to print the
  elements directly from GDB, you can write a callable procedure that prints
! the elements in the desired format.
  
  
  .. _Using_the_Next_Command_in_a_Function:
--- 339,359 ----
  But tree nodes are represented simply by an integer value (which in turn
  is an index into a table of nodes).
  Using the ``print`` command on a tree node would simply print this integer
! value, which is not very useful. But the ``PN`` routine (defined in file
! :file:`treepr.adb` in the GNAT sources) takes a tree node as input and displays
  a useful high level representation of the tree node, which includes the
! syntactic category of the node, its position in the source,
! the descendant nodes and parent node, as well as lots of
  semantic information. To study this example in more detail, you might want to
! look at the body of the ``PN`` procedure in the above file.
  
! Another useful application of this capability is to deal with situations where
  complex data which are not handled suitably by GDB. For example, if you specify
  Convention Fortran for a multi-dimensional array, GDB does not know that
  the ordering of array elements has been switched and will not properly
  address the array elements. In such a case, instead of trying to print the
  elements directly from GDB, you can write a callable procedure that prints
! the elements in the format you desire.
  
  
  .. _Using_the_Next_Command_in_a_Function:
*************** arises in the case of a ``return`` state
*** 358,364 ****
  
  Part of the code for a return statement is the 'epilogue' of the function.
  This is the code that returns to the caller. There is only one copy of
! this epilogue code, and it is typically associated with the last return
  statement in the function if there is more than one return. In some
  implementations, this epilogue is associated with the first statement
  of the function.
--- 367,373 ----
  
  Part of the code for a return statement is the 'epilogue' of the function.
  This is the code that returns to the caller. There is only one copy of
! this epilogue code and it is typically associated with the last return
  statement in the function if there is more than one return. In some
  implementations, this epilogue is associated with the first statement
  of the function.
*************** Ada Tasks
*** 426,433 ****
         *  4   80ae800   3   80b8000  15 Running               c
  
  
!     In this listing, the asterisk before the first task indicates it to be the
!     currently running task. The first column lists the task ID that is used
      to refer to tasks in the following commands.
  
  
--- 435,442 ----
         *  4   80ae800   3   80b8000  15 Running               c
  
  
!     In this listing, the asterisk before the first task indicates it's
!     currently running task. The first column lists the task ID used
      to refer to tasks in the following commands.
  
  
*************** Ada Tasks
*** 439,450 ****
      *linespec* specifies source lines.
  
      Use the qualifier :samp:`task {taskid}` with a breakpoint command
!     to specify that you only want ``GDB`` to stop the program when a
      particular Ada task reaches this breakpoint. *taskid* is one of the
      numeric task identifiers assigned by ``GDB``, shown in the first
      column of the ``info tasks`` display.
  
!     If you do not specify :samp:`task {taskid}` when you set a
      breakpoint, the breakpoint applies to *all* tasks of your
      program.
  
--- 448,459 ----
      *linespec* specifies source lines.
  
      Use the qualifier :samp:`task {taskid}` with a breakpoint command
!     to specify that you only want ``GDB`` to stop the program when that
      particular Ada task reaches this breakpoint. *taskid* is one of the
      numeric task identifiers assigned by ``GDB``, shown in the first
      column of the ``info tasks`` display.
  
!     If you don't specify :samp:`task {taskid}` when you set a
      breakpoint, the breakpoint applies to *all* tasks of your
      program.
  
*************** Ada Tasks
*** 457,468 ****
  * :samp:`task {taskno}`
  
      This command allows switching to the task referred by *taskno*. In
!     particular, this allows browsing of the backtrace of the specified
!     task. It is advisable to switch back to the original task before
!     continuing execution otherwise the scheduling of the program may be
!     perturbed.
  
! For more detailed information on the tasking support,
  see :title:`Debugging with GDB`.
  
  
--- 466,477 ----
  * :samp:`task {taskno}`
  
      This command allows switching to the task referred by *taskno*. In
!     particular, it allows browsing the backtrace of the specified
!     task. You should switch back to the original task before
!     continuing execution; otherwise the scheduling of the program may be
!     disturbed.
  
! For more detailed information on tasking support,
  see :title:`Debugging with GDB`.
  
  
*************** see :title:`Debugging with GDB`.
*** 474,486 ****
  Debugging Generic Units
  -----------------------
  
! GNAT always uses code expansion for generic instantiation. This means that
! each time an instantiation occurs, a complete copy of the original code is
! made, with appropriate substitutions of formals by actuals.
  
! It is not possible to refer to the original generic entities in
! ``GDB``, but it is always possible to debug a particular instance of
! a generic, by using the appropriate expanded names. For example, if we have
  
    .. code-block:: ada
  
--- 483,496 ----
  Debugging Generic Units
  -----------------------
  
! GNAT always uses the code expansion mechanism for generic
! instantiation. This means that each time an instantiation occurs, the
! compiler makes a complete copy of the original code, with
! appropriate substitutions of formals by actuals.
  
! You can't refer to the original generic entities in ``GDB``, but you
! can debug a particular instance of a generic by using the appropriate
! expanded names. For example, if we have
  
    .. code-block:: ada
  
*************** use the command:
*** 517,524 ****
       (gdb) break g.k2.kp
  
  When the breakpoint occurs, you can step through the code of the
! instance in the normal manner and examine the values of local variables, as for
! other units.
  
  
  .. index:: Remote Debugging with gdbserver
--- 527,534 ----
       (gdb) break g.k2.kp
  
  When the breakpoint occurs, you can step through the code of the
! instance in the normal manner and examine the values of local
! variables, as you do for other units.
  
  
  .. index:: Remote Debugging with gdbserver
*************** other units.
*** 528,544 ****
  Remote Debugging with gdbserver
  -------------------------------
  
! On platforms where gdbserver is supported, it is possible to use this tool
  to debug your application remotely.  This can be useful in situations
  where the program needs to be run on a target host that is different
  from the host used for development, particularly when the target has
  a limited amount of resources (either CPU and/or memory).
  
! To do so, start your program using gdbserver on the target machine.
! gdbserver then automatically suspends the execution of your program
! at its entry point, waiting for a debugger to connect to it.  The
! following commands starts an application and tells gdbserver to
! wait for a connection with the debugger on localhost port 4444.
  
  
    ::
--- 538,554 ----
  Remote Debugging with gdbserver
  -------------------------------
  
! On platforms that support ``gdbserver``, you can use this tool
  to debug your application remotely.  This can be useful in situations
  where the program needs to be run on a target host that is different
  from the host used for development, particularly when the target has
  a limited amount of resources (either CPU and/or memory).
  
! To do so, start your program using ``gdbserver`` on the target machine.
! ``gdbserver`` automatically suspends the execution of your program
! at its entry point, waiting for a debugger to connect to it.  You use the
! following commands to start an application and tell ``gdbserver`` to
! wait for a connection with the debugger on ``localhost`` port 4444.
  
  
    ::
*************** wait for a connection with the debugger
*** 547,556 ****
       Process program created; pid = 5685
       Listening on port 4444
  
! Once gdbserver has started listening, we can tell the debugger to establish
! a connection with this gdbserver, and then start the same debugging session
! as if the program was being debugged on the same host, directly under
! the control of GDB.
  
    ::
  
--- 557,566 ----
       Process program created; pid = 5685
       Listening on port 4444
  
! Once ``gdbserver`` has started listening, you can tell the debugger to
! establish a connection with this ``gdbserver``, and then start a
! debugging session as if the program was being debugged on the
! same host, directly under the control of ``GDB``.
  
    ::
  
*************** the control of GDB.
*** 566,578 ****
       Breakpoint 1, foo () at foo.adb:4
       4       end foo;
  
! It is also possible to use gdbserver to attach to an already running
! program, in which case the execution of that program is simply suspended
! until the connection between the debugger and gdbserver is established.
  
! For more information on how to use gdbserver, see the *Using the gdbserver Program*
! section in :title:`Debugging with GDB`.
! GNAT provides support for gdbserver on x86-linux, x86-windows and x86_64-linux.
  
  
  .. index:: Abnormal Termination or Failure to Terminate
--- 576,589 ----
       Breakpoint 1, foo () at foo.adb:4
       4       end foo;
  
! You can also use ``gdbserver`` to attach to an already running
! program, in which case the execution of that program is suspended
! until you have established the connection between the debugger and ``gdbserver``.
  
! For more information on how to use ``gdbserver``, see the *Using the
! gdbserver Program* section in :title:`Debugging with GDB`.  GNAT
! provides support for ``gdbserver`` on x86-linux, x86-windows and
! x86_64-linux.
  
  
  .. index:: Abnormal Termination or Failure to Terminate
*************** GNAT Abnormal Termination or Failure to
*** 584,590 ****
  
  When presented with programs that contain serious errors in syntax
  or semantics,
! GNAT may on rare occasions  experience problems in operation, such
  as aborting with a
  segmentation fault or illegal memory access, raising an internal
  exception, terminating abnormally, or failing to terminate at all.
--- 595,601 ----
  
  When presented with programs that contain serious errors in syntax
  or semantics,
! GNAT may, on rare occasions, experience problems such
  as aborting with a
  segmentation fault or illegal memory access, raising an internal
  exception, terminating abnormally, or failing to terminate at all.
*************** In such cases, you can activate
*** 592,604 ****
  various features of GNAT that can help you pinpoint the construct in your
  program that is the likely source of the problem.
  
! The following strategies are presented in increasing order of
! difficulty, corresponding to your experience in using GNAT and your
! familiarity with compiler internals.
  
! * Run ``gcc`` with the :switch:`-gnatf`. This first
!   switch causes all errors on a given line to be reported. In its absence,
!   only the first error on a line is displayed.
  
    The :switch:`-gnatdO` switch causes errors to be displayed as soon as they
    are encountered, rather than after compilation is terminated. If GNAT
--- 603,615 ----
  various features of GNAT that can help you pinpoint the construct in your
  program that is the likely source of the problem.
  
! The following strategies for you to use in such cases are presented in
! increasing order of difficulty, corresponding to your experience in
! using GNAT and your familiarity with compiler internals.
  
! * Run ``gcc`` with the :switch:`-gnatf`. This switch causes all errors
!   on a given line to be reported. In its absence, GNAT only displays
!   the first error on a line.
  
    The :switch:`-gnatdO` switch causes errors to be displayed as soon as they
    are encountered, rather than after compilation is terminated. If GNAT
*************** familiarity with compiler internals.
*** 609,615 ****
    mode, ``gcc`` produces ongoing information about the progress of the
    compilation and provides the name of each procedure as code is
    generated. This switch allows you to find which Ada procedure was being
!   compiled when it encountered a code generation problem.
  
  .. index:: -gnatdc switch
  
--- 620,626 ----
    mode, ``gcc`` produces ongoing information about the progress of the
    compilation and provides the name of each procedure as code is
    generated. This switch allows you to find which Ada procedure was being
!   compiled when it encountered a problem.
  
  .. index:: -gnatdc switch
  
*************** familiarity with compiler internals.
*** 620,631 ****
  
  * Finally, you can start
    ``gdb`` directly on the ``gnat1`` executable. ``gnat1`` is the
!   front-end of GNAT, and can be run independently (normally it is just
    called from ``gcc``). You can use ``gdb`` on ``gnat1`` as you
    would on a C program (but :ref:`The_GNAT_Debugger_GDB` for caveats). The
    ``where`` command is the first line of attack; the variable
    ``lineno`` (seen by ``print lineno``), used by the second phase of
!   ``gnat1`` and by the ``gcc`` backend, indicates the source line at
    which the execution stopped, and ``input_file name`` indicates the name of
    the source file.
  
--- 631,642 ----
  
  * Finally, you can start
    ``gdb`` directly on the ``gnat1`` executable. ``gnat1`` is the
!   front-end of GNAT and can be run independently (normally it is just
    called from ``gcc``). You can use ``gdb`` on ``gnat1`` as you
    would on a C program (but :ref:`The_GNAT_Debugger_GDB` for caveats). The
    ``where`` command is the first line of attack; the variable
    ``lineno`` (seen by ``print lineno``), used by the second phase of
!   ``gnat1`` and by the ``gcc`` back end, indicates the source line at
    which the execution stopped, and ``input_file name`` indicates the name of
    the source file.
  
*************** familiarity with compiler internals.
*** 635,641 ****
  Naming Conventions for GNAT Source Files
  ----------------------------------------
  
! In order to examine the workings of the GNAT system, the following
  brief description of its organization may be helpful:
  
  * Files with prefix :file:`sc` contain the lexical scanner.
--- 646,652 ----
  Naming Conventions for GNAT Source Files
  ----------------------------------------
  
! In order to bettter understand the workings of the GNAT system, the following
  brief description of its organization may be helpful:
  
  * Files with prefix :file:`sc` contain the lexical scanner.
*************** brief description of its organization ma
*** 646,659 ****
  
  * All files prefixed with :file:`sem` perform semantic analysis. The
    numbers correspond to chapters of the Ada standard. For example, all
!   issues involving context clauses can be found in :file:`sem_ch10.adb`. In
!   addition, some features of the language require sufficient special processing
!   to justify their own semantic files: sem_aggr for aggregates, sem_disp for
!   dynamic dispatching, etc.
  
  * All files prefixed with :file:`exp` perform normalization and
    expansion of the intermediate representation (abstract syntax tree, or AST).
!   these files use the same numbering scheme as the parser and semantics files.
    For example, the construction of record initialization procedures is done in
    :file:`exp_ch3.adb`.
  
--- 657,674 ----
  
  * All files prefixed with :file:`sem` perform semantic analysis. The
    numbers correspond to chapters of the Ada standard. For example, all
!   issues involving context clauses can be found in
!   :file:`sem_ch10.adb`. In addition, some features of the language
!   require sufficient special processing to justify their own semantic
!   files, such as :file:`sem_aggr.adb` for aggregates and
!   :file:`sem_disp.adb` for dynamic dispatching.
  
  * All files prefixed with :file:`exp` perform normalization and
    expansion of the intermediate representation (abstract syntax tree, or AST).
!   The expansion has the effect of lowering the semantic level of the AST to
!   a level closer to what the back end can handle. For example, it converts
!   tasking operations into calls to the appropriate runtime routines.
!   These files use the same numbering scheme as the parser and semantics files.
    For example, the construction of record initialization procedures is done in
    :file:`exp_ch3.adb`.
  
*************** brief description of its organization ma
*** 670,675 ****
--- 685,694 ----
  * The files :file:`einfo.ads` and :file:`einfo.adb` detail the attributes of
    all entities, computed during semantic analysis.
  
+ * The files prefixed with :file:`gen_il` generate most of the functions
+   defined in :file:`sinfo.ads` and :file:`einfo.ads`, which set and get
+   various fields and flags of the AST.
+ 
  * Library management issues are dealt with in files with prefix
    :file:`lib`.
  
*************** Getting Internal Debugging Information
*** 701,707 ****
  --------------------------------------
  
  Most compilers have internal debugging switches and modes. GNAT
! does also, except GNAT internal debugging switches and modes are not
  secret. A summary and full description of all the compiler and binder
  debug flags are in the file :file:`debug.adb`. You must obtain the
  sources of the compiler to see the full detailed effects of these flags.
--- 720,726 ----
  --------------------------------------
  
  Most compilers have internal debugging switches and modes. GNAT
! does too, except GNAT internal debugging switches and modes are not
  secret. A summary and full description of all the compiler and binder
  debug flags are in the file :file:`debug.adb`. You must obtain the
  sources of the compiler to see the full detailed effects of these flags.
*************** sources of the compiler to see the full
*** 709,719 ****
  The switches that print the source of the program (reconstructed from
  the internal tree) are of general interest for user programs, as are the
  options to print
! the full internal tree, and the entity table (the symbol table
  information). The reconstructed source provides a readable version of the
! program after the front-end has completed analysis and  expansion,
  and is useful when studying the performance of specific constructs.
! For example, constraint checks are indicated, complex aggregates
  are replaced with loops and assignments, and tasking primitives
  are replaced with run-time calls.
  
--- 728,738 ----
  The switches that print the source of the program (reconstructed from
  the internal tree) are of general interest for user programs, as are the
  options to print
! the full internal tree and the entity table (the symbol table
  information). The reconstructed source provides a readable version of the
! program after the front-end has completed analysis and  expansion
  and is useful when studying the performance of specific constructs.
! For example, constraint checks are shown explicitly, complex aggregates
  are replaced with loops and assignments, and tasking primitives
  are replaced with run-time calls.
  
*************** that is to say the subprogram currently
*** 740,746 ****
  from which we want to obtain the traceback.
  
  Note that there is no runtime performance penalty when stack traceback
! is enabled, and no exception is raised during program execution.
  
  .. index:: traceback, non-symbolic
  
--- 759,765 ----
  from which we want to obtain the traceback.
  
  Note that there is no runtime performance penalty when stack traceback
! is enabled and no exception is raised during program execution.
  
  .. index:: traceback, non-symbolic
  
*************** for a complete list of supported platfor
*** 755,769 ****
  
  .. rubric:: Tracebacks From an Unhandled Exception
  
! A runtime non-symbolic traceback is a list of addresses of call instructions.
! To enable this feature you must use the :switch:`-E` ``gnatbind`` option. With
! this option a stack traceback is stored as part of exception information.
  
  You can translate this information using the ``addr2line`` tool, provided that
  the program is compiled with debugging options (see :ref:`Switches_for_gcc`)
  and linked at a fixed position with :switch:`-no-pie`.
  
! Here is a simple example with ``gnatmake``:
  
    .. code-block:: ada
  
--- 774,789 ----
  
  .. rubric:: Tracebacks From an Unhandled Exception
  
! A runtime non-symbolic traceback is a list of addresses of call
! instructions.  To enable this feature you must use the :switch:`-E`
! ``gnatbind`` switch. With this switch, a stack traceback is stored at
! runtime as part of exception information.
  
  You can translate this information using the ``addr2line`` tool, provided that
  the program is compiled with debugging options (see :ref:`Switches_for_gcc`)
  and linked at a fixed position with :switch:`-no-pie`.
  
! Here's a simple example with ``gnatmake``:
  
    .. code-block:: ada
  
*************** Here is a simple example with ``gnatmake
*** 794,804 ****
       Call stack traceback locations:
       0x401373 0x40138b 0x40139c 0x401335 0x4011c4 0x4011f1 0x77e892a4
  
! As we see the traceback lists a sequence of addresses for the unhandled
! exception ``CONSTRAINT_ERROR`` raised in procedure P1. It is easy to
! guess that this exception come from procedure P1. To translate these
! addresses into the source lines where the calls appear, the ``addr2line``
! tool needs to be invoked like this:
  
    ::
  
--- 814,824 ----
       Call stack traceback locations:
       0x401373 0x40138b 0x40139c 0x401335 0x4011c4 0x4011f1 0x77e892a4
  
! As we can see, the traceback lists a sequence of addresses for the unhandled
! exception ``CONSTRAINT_ERROR`` raised in procedure P1. It's easy to
! see that this exception come from procedure P1. To translate these
! addresses into the source lines where the calls appear, you need to
! invoke the ``addr2line`` tool like this:
  
    ::
  
*************** The ``addr2line`` tool has several other
*** 836,848 ****
       0x77e892a4: ?? ??:0
  
  
! From this traceback we can see that the exception was raised in :file:`stb.adb`
  at line 5, which was reached from a procedure call in :file:`stb.adb` at line
! 10, and so on. The :file:`b~std.adb` is the binder file, which contains the
! call to the main program. :ref:`Running_gnatbind`. The remaining entries are
! assorted runtime routines and the output will vary from platform to platform.
  
! It is also possible to use ``GDB`` with these traceback addresses to debug
  the program. For example, we can break at a given code location, as reported
  in the stack traceback::
  
--- 856,868 ----
       0x77e892a4: ?? ??:0
  
  
! From this traceback, we can see that the exception was raised in :file:`stb.adb`
  at line 5, which was reached from a procedure call in :file:`stb.adb` at line
! 10, and so on. :file:`b~std.adb` is the binder file, which contains the
! call to the main program; :ref:`Running_gnatbind`. The remaining entries are
! assorted runtime routines. The output will vary from platform to platform.
  
! You can also use ``GDB`` with these traceback addresses to debug
  the program. For example, we can break at a given code location, as reported
  in the stack traceback::
  
*************** Executables on recent Linux and Windows
*** 868,876 ****
  using the switch :switch:`-no-pie` during linking, you need to use the
  ``gnatsymbolize`` tool with :switch:`--load` instead of the ``addr2line``
  tool. The main difference is that you need to copy the Load Address output
! in the traceback ahead of the sequence of addresses. And the default mode
  of ``gnatsymbolize`` is equivalent to that of ``addr2line`` with the above
! switches, so none of them is needed::
  
       $ gnatmake stb -g -bargs -E
       $ stb
--- 888,896 ----
  using the switch :switch:`-no-pie` during linking, you need to use the
  ``gnatsymbolize`` tool with :switch:`--load` instead of the ``addr2line``
  tool. The main difference is that you need to copy the Load Address output
! in the traceback ahead of the sequence of addresses. The default mode
  of ``gnatsymbolize`` is equivalent to that of ``addr2line`` with the above
! switches, so none of them are needed::
  
       $ gnatmake stb -g -bargs -E
       $ stb
*************** switches, so none of them is needed::
*** 895,904 ****
  
  .. rubric:: Tracebacks From Exception Occurrences
  
! Non-symbolic tracebacks are obtained by using the :switch:`-E` binder argument.
! The stack traceback is attached to the exception information string, and can
! be retrieved in an exception handler within the Ada program, by means of the
! Ada facilities defined in ``Ada.Exceptions``. Here is a simple example:
  
    .. code-block:: ada
  
--- 915,924 ----
  
  .. rubric:: Tracebacks From Exception Occurrences
  
! Non-symbolic tracebacks are obtained by using the :switch:`-E` binder switch.
! The stack traceback is attached to the exception information string and you can
! retrieve it in an exception handler within the Ada program by means of the
! Ada facilities defined in ``Ada.Exceptions``. Here's a simple example:
  
    .. code-block:: ada
  
*************** Ada facilities defined in ``Ada.Exceptio
*** 941,955 ****
  
  .. rubric:: Tracebacks From Anywhere in a Program
  
! It is also possible to retrieve a stack traceback from anywhere in a program.
! For this you need to use the ``GNAT.Traceback`` API. This package includes a
! procedure called ``Call_Chain`` that computes a complete stack traceback, as
! well as useful display procedures described below. It is not necessary to use
! the :switch:`-E` ``gnatbind`` option in this case, because the stack traceback
  mechanism is invoked explicitly.
  
! In the following example we compute a traceback at a specific location in the
! program, and we display it using ``GNAT.Debug_Utilities.Image`` to convert
  addresses to strings:
  
  
--- 961,975 ----
  
  .. rubric:: Tracebacks From Anywhere in a Program
  
! You can also retrieve a stack traceback from anywhere in a program.
! For this, you need to use the ``GNAT.Traceback`` API. This package includes a
! procedure called ``Call_Chain`` that computes a complete stack traceback as
! well as useful display procedures described below. You don't have to use
! the :switch:`-E` ``gnatbind`` switch in this case because the stack traceback
  mechanism is invoked explicitly.
  
! In the following example, we compute a traceback at a specific location in the
! program and display it using ``GNAT.Debug_Utilities.Image`` to convert
  addresses to strings:
  
  
*************** addresses to strings:
*** 1011,1017 ****
         0x4011F1 0x77E892A4
  
  
! You can then get further information by invoking the ``addr2line`` tool or
  the ``gnatsymbolize`` tool as described earlier (note that the hexadecimal
  addresses need to be specified in C format, with a leading '0x').
  
--- 1031,1037 ----
         0x4011F1 0x77E892A4
  
  
! You can get even more information by invoking the ``addr2line`` tool or
  the ``gnatsymbolize`` tool as described earlier (note that the hexadecimal
  addresses need to be specified in C format, with a leading '0x').
  
*************** Note that this feature is not supported
*** 1030,1036 ****
  list of currently supported platforms.
  
  Note that the symbolic traceback requires that the program be compiled
! with debug information. If it is not compiled with debug information
  only the non-symbolic information will be valid.
  
  
--- 1050,1056 ----
  list of currently supported platforms.
  
  Note that the symbolic traceback requires that the program be compiled
! with debug information. If you do not compile it with debug information,
  only the non-symbolic information will be valid.
  
  
*************** Here is an example:
*** 1083,1092 ****
  
  .. rubric:: Tracebacks From Anywhere in a Program
  
! It is possible to get a symbolic stack traceback
! from anywhere in a program, just as for non-symbolic tracebacks.
  The first step is to obtain a non-symbolic
! traceback, and then call ``Symbolic_Traceback`` to compute the symbolic
  information. Here is an example:
  
    .. code-block:: ada
--- 1103,1112 ----
  
  .. rubric:: Tracebacks From Anywhere in a Program
  
! You can get a symbolic stack traceback
! from anywhere in a program, just as you can for non-symbolic tracebacks.
  The first step is to obtain a non-symbolic
! traceback. Then call ``Symbolic_Traceback`` to compute the symbolic
  information. Here is an example:
  
    .. code-block:: ada
*************** information. Here is an example:
*** 1123,1133 ****
  
  .. rubric:: Automatic Symbolic Tracebacks
  
! Symbolic tracebacks may also be enabled by using the -Es switch to gnatbind (as
! in ``gprbuild -g ... -bargs -Es``).
! This will cause the Exception_Information to contain a symbolic traceback,
! which will also be printed if an unhandled exception terminates the
! program.
  
  
  .. _Pretty-Printers_For_The_GNAT_Runtime:
--- 1143,1153 ----
  
  .. rubric:: Automatic Symbolic Tracebacks
  
! You may also enable symbolic tracebacks by using
! the :switch:`-Es` switch to gnatbind (as in ``gprbuild -g ... -bargs -Es``).
! This causes the Exception_Information to contain a symbolic
! traceback, which will also be printed if an unhandled exception
! terminates the program.
  
  
  .. _Pretty-Printers_For_The_GNAT_Runtime:
*************** standard container, such as ``Ada.Contai
*** 1161,1168 ****
        end PP;
  
  When this program is built with debugging information and run under
! GDB up to the ``Map.Clear`` statement, trying to print ``Map`` will
! yield information that is only relevant to the developers of our standard
  containers:
  
    ::
--- 1181,1188 ----
        end PP;
  
  When this program is built with debugging information and run under
! ``GDB`` up to the ``Map.Clear`` statement, trying to print ``Map`` will
! yield information that is only relevant to the developers of the standard
  containers:
  
    ::
*************** containers:
*** 1181,1198 ****
          )
        )
  
! Fortunately, GDB has a feature called `pretty-printers
  <http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Introduction>`_,
! which allows customizing how GDB displays data structures. The GDB
! shipped with GNAT embeds such pretty-printers for the most common
! containers in the standard library.  To enable them, either run the
! following command manually under GDB or add it to your ``.gdbinit`` file:
  
    ::
  
        python import gnatdbg; gnatdbg.setup()
  
! Once this is done, GDB's ``print`` command will automatically use
  these pretty-printers when appropriate. Using the previous example:
  
    ::
--- 1201,1219 ----
          )
        )
  
! Fortunately, ``GDB ``has a feature called `pretty-printers
  <http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Introduction>`_,
! which allows customizing how ``GDB`` displays data structures. The
! ``GDB`` shipped with GNAT embeds such pretty-printers for the most
! common containers in the standard library.  To enable them, either run
! the following command manually under ``GDB`` or add it to your
! :file:`.gdbinit` file:
  
    ::
  
        python import gnatdbg; gnatdbg.setup()
  
! Once you've done this, ``GDB``'s ``print`` command will automatically use
  these pretty-printers when appropriate. Using the previous example:
  
    ::
*************** including when displaying the arguments
*** 1209,1216 ****
  GDB's ``backtrace`` command) or when printing the value returned by a
  function (in GDB's ``finish`` command).
  
! To display a value without involving pretty-printers, ``print`` can be
! invoked with its ``/r`` option:
  
    ::
  
--- 1230,1237 ----
  GDB's ``backtrace`` command) or when printing the value returned by a
  function (in GDB's ``finish`` command).
  
! To display a value without involving pretty-printers, you can invoke
! ``print`` with its ``/r`` option:
  
    ::
  
*************** invoked with its ``/r`` option:
*** 1218,1224 ****
        $1 = (
          tree => (...
  
! Finer control of pretty-printers is also possible: see `GDB's online
  documentation
  <http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Commands>`_
  for more information.
--- 1239,1245 ----
        $1 = (
          tree => (...
  
! You can also obtain finer control of pretty-printers: see `GDB's online
  documentation
  <http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Commands>`_
  for more information.
*************** Profiling an Ada Program with gprof
*** 1243,1262 ****
  -----------------------------------
  
  This section is not meant to be an exhaustive documentation of ``gprof``.
! Full documentation for it can be found in the :title:`GNU Profiler User's Guide`
  documentation that is part of this GNAT distribution.
  
  Profiling a program helps determine the parts of a program that are executed
! most often, and are therefore the most time-consuming.
  
  ``gprof`` is the standard GNU profiling tool; it has been enhanced to
  better handle Ada programs and multitasking.
! It is currently supported on the following platforms
  
  * Linux x86/x86_64
  * Windows x86/x86_64 (without PIE support)
  
! In order to profile a program using ``gprof``, several steps are needed:
  
  #. Instrument the code, which requires a full recompilation of the project with the
     proper switches.
--- 1264,1284 ----
  -----------------------------------
  
  This section is not meant to be an exhaustive documentation of ``gprof``.
! You can find full documentation for it in the :title:`GNU Profiler User's Guide`
  documentation that is part of this GNAT distribution.
  
  Profiling a program helps determine the parts of a program that are executed
! most often and are therefore the most time-consuming.
  
  ``gprof`` is the standard GNU profiling tool; it has been enhanced to
  better handle Ada programs and multitasking.
! It's currently supported on the following platforms
  
  * Linux x86/x86_64
  * Windows x86/x86_64 (without PIE support)
  
! In order to profile a program using ``gprof``, you need to perform the
! following steps:
  
  #. Instrument the code, which requires a full recompilation of the project with the
     proper switches.
*************** In order to profile a program using ``gp
*** 1266,1272 ****
  
  #. Analyze the results using the ``gprof`` tool.
  
! The following sections detail the different steps, and indicate how
  to interpret the results.
  
  
--- 1288,1294 ----
  
  #. Analyze the results using the ``gprof`` tool.
  
! The following sections detail the different steps and indicate how
  to interpret the results.
  
  
*************** Compilation for profiling
*** 1278,1299 ****
  .. index:: -pg (gcc), for profiling
  .. index:: -pg (gnatlink), for profiling
  
! In order to profile a program the first step is to tell the compiler
! to generate the necessary profiling information. The compiler switch to be used
! is ``-pg``, which must be added to other compilation switches. This
! switch needs to be specified both during compilation and link stages, and can
! be specified once when using gnatmake:
  
    ::
  
       $ gnatmake -f -pg -P my_project
  
! Note that only the objects that were compiled with the ``-pg`` switch will
! be profiled; if you need to profile your whole project, use the ``-f``
! gnatmake switch to force full recompilation.
  
! Note that on Windows, gprof does not support PIE. The ``-no-pie`` switch
! should be added to the linker flags to disable this feature.
  
  
  .. _Program_execution:
--- 1300,1321 ----
  .. index:: -pg (gcc), for profiling
  .. index:: -pg (gnatlink), for profiling
  
! In order to profile a program, you must first to tell the compiler
! to generate the necessary profiling information. You do this using the compiler switch :switch:`-pg`, which you must add to other compilation switches. You need
! to specify this
! switch during compilation and link stages, and you can
! specified it only once when using ``gnatmake``:
  
    ::
  
       $ gnatmake -f -pg -P my_project
  
! Note that only the objects that were compiled with the :switch:`-pg` switch will
! be profiled; if you need to profile your whole project, use the :switch:`-f`
! ``gnatmake`` switch to force full recompilation.
  
! Note that on Windows, ``gprof`` does not support PIE. You should add
! the :switch:`-no-pie` switch to the linker flags to disable PIE.
  
  
  .. _Program_execution:
*************** properly analyzed.
*** 1310,1316 ****
  
  Once the program completes execution, a data file called :file:`gmon.out` is
  generated in the directory where the program was launched from. If this file
! already exists, it will be overwritten.
  
  
  .. _Running_gprof:
--- 1332,1338 ----
  
  Once the program completes execution, a data file called :file:`gmon.out` is
  generated in the directory where the program was launched from. If this file
! already exists, it will be overwritten by running the program.
  
  
  .. _Running_gprof:
*************** already exists, it will be overwritten.
*** 1318,1324 ****
  Running gprof
  ^^^^^^^^^^^^^
  
! The ``gprof`` tool is called as follow:
  
    ::
  
--- 1340,1346 ----
  Running gprof
  ^^^^^^^^^^^^^
  
! You can call the ``gprof`` tool as follows:
  
    ::
  
*************** or simply:
*** 1330,1400 ****
  
      $ gprof my_prog
  
! The complete form of the gprof command line is the following:
  
    ::
  
       $ gprof [switches] [executable [data-file]]
  
! ``gprof`` supports numerous switches. The order of these
! switch does not matter. The full list of options can be found in
! the GNU Profiler User's Guide documentation that comes with this documentation.
  
! The following is the subset of those switches that is most relevant:
  
  .. index:: --demangle (gprof)
  
! :samp:`--demangle[={style}]`, :samp:`--no-demangle`
!   These options control whether symbol names should be demangled when
!   printing output.  The default is to demangle C++ symbols.  The
!   ``--no-demangle`` option may be used to turn off demangling. Different
    compilers have different mangling styles.  The optional demangling style
    argument can be used to choose an appropriate demangling style for your
    compiler, in particular Ada symbols generated by GNAT can be demangled using
!   ``--demangle=gnat``.
  
  
  .. index:: -e (gprof)
  
! :samp:`-e {function_name}`
!   The :samp:`-e {function}` option tells ``gprof`` not to print
!   information about the function ``function_name`` (and its
!   children...) in the call graph.  The function will still be listed
    as a child of any functions that call it, but its index number will be
!   shown as ``[not printed]``.  More than one ``-e`` option may be
!   given; only one ``function_name`` may be indicated with each ``-e``
!   option.
  
  
  .. index:: -E (gprof)
  
! :samp:`-E {function_name}`
!   The :samp:`-E {function}` option works like the ``-e`` option, but
    execution time spent in the function (and children who were not called from
!   anywhere else), will not be used to compute the percentages-of-time for
!   the call graph.  More than one :switch:`-E` option may be given; only one
!   ``function_name`` may be indicated with each :switch:`-E`` option.
  
  
  .. index:: -f (gprof)
  
! :samp:`-f {function_name}`
!   The :samp:`-f {function}` option causes ``gprof`` to limit the
!   call graph to the function ``function_name`` and its children (and
!   their children...).  More than one ``-f`` option may be given;
!   only one ``function_name`` may be indicated with each ``-f``
!   option.
  
  
  .. index:: -F (gprof)
  
! :samp:`-F {function_name}`
!   The :samp:`-F {function}` option works like the ``-f`` option, but
!   only time spent in the function and its children (and their
!   children...) will be used to determine total-time and
!   percentages-of-time for the call graph.  More than one ``-F`` option
!   may be given; only one ``function_name`` may be indicated with each
!   ``-F`` option.  The ``-F`` option overrides the ``-E`` option.
  
  
  .. _Interpretation_of_profiling_results:
--- 1352,1422 ----
  
      $ gprof my_prog
  
! The complete form of the ``gprof`` command line is the following:
  
    ::
  
       $ gprof [switches] [executable [data-file]]
  
! ``gprof`` supports numerous switches, whose order does not matter. You
! can find the full list of switches in the :title:`GNU Profiler
! User's Guide`.
  
! The following are the most relevant of those switches:
  
  .. index:: --demangle (gprof)
  
! :switch:`--demangle[={style}]`, :switch:`--no-demangle`
!   These switches control whether symbol names should be demangled when
!   printing output.  The default is to demangle C++ symbols.  You can use
!   :switch:`--no-demangle` to turn off demangling. Different
    compilers have different mangling styles.  The optional demangling style
    argument can be used to choose an appropriate demangling style for your
    compiler, in particular Ada symbols generated by GNAT can be demangled using
!   :switch:`--demangle=gnat`.
  
  
  .. index:: -e (gprof)
  
! :switch:`-e {function_name}`
!   The :switch:`-e {function}` option tells ``gprof`` not to print
!   information about the function ``function_name`` and its
!   children in the call graph.  The function will still be listed
    as a child of any functions that call it, but its index number will be
!   shown as ``[not printed]``.  You may specify more than one :switch:`-e` switch,
!   but you may only include one ``function_name``  with each :switch:`-e`
!   switch.
  
  
  .. index:: -E (gprof)
  
! :switch:`-E {function_name}`
!   The :switch:`-E {function}` switch works like the :switch:`-e` switch, but
    execution time spent in the function (and children who were not called from
!   anywhere else) will not be used to compute the percentages-of-time for
!   the call graph.  You may specify more than one :switch:`-E` switch, but
!   you may only include one  ``function_name`` with each :switch:`-E` switch.
  
  
  .. index:: -f (gprof)
  
! :switch:`-f {function_name}`
!   The :switch:`-f {function}` switch causes ``gprof`` to limit the
!   call graph to the function ``function_name`` and its children and
!   their children.  You may specify more than one :switch:`-f` switch,
!   but you may only include one ``function_name`` with each :switch:`-f` switch.
  
  
  .. index:: -F (gprof)
  
! :switch:`-F {function_name}`
!   The :switch:`-F {function}` switch works like the :switch:`-f` switch, but
!   only time spent in the function and its children and their
!   children will be used to determine total-time and
!   percentages-of-time for the call graph.  You may specify more than one
!   :switch:`-F` switch, but you may include only one ``function_name``  with each
!   :switch:`-F` switch.  The :switch:`-F` switch overrides the :switch:`-E`
!   switch.
  
  
  .. _Interpretation_of_profiling_results:
*************** The following is the subset of those swi
*** 1402,1418 ****
  Interpretation of profiling results
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The results of the profiling analysis are represented by two arrays: the
! 'flat profile' and the 'call graph'. Full documentation of those outputs
! can be found in the GNU Profiler User's Guide.
  
! The flat profile shows the time spent in each function of the program, and how
! many time it has been called. This allows you to locate easily the most
  time-consuming functions.
  
  The call graph shows, for each subprogram, the subprograms that call it,
  and the subprograms that it calls. It also provides an estimate of the time
! spent in each of those callers/called subprograms.
  
  
  
--- 1424,1440 ----
  Interpretation of profiling results
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The results of the profiling analysis are represented by two arrays:
! the 'flat profile' and the 'call graph'. You can find full
! documentation of those outputs in the :title:`GNU Profiler User's Guide`.
  
! The flat profile shows the time spent in each function of the program and how
! many time it has been called. This allows you to easily locate the most
  time-consuming functions.
  
  The call graph shows, for each subprogram, the subprograms that call it,
  and the subprograms that it calls. It also provides an estimate of the time
! spent in each of those callers and called subprograms.
  
  
  
*************** Improving Performance
*** 1424,1430 ****
  .. index:: Improving performance
  
  This section presents several topics related to program performance.
! It first describes some of the tradeoffs that need to be considered
  and some of the techniques for making your program run faster.
  
  It then documents the unused subprogram/data elimination feature,
--- 1446,1452 ----
  .. index:: Improving performance
  
  This section presents several topics related to program performance.
! It first describes some of the tradeoffs that you need to consider
  and some of the techniques for making your program run faster.
  
  It then documents the unused subprogram/data elimination feature,
*************** Performance Considerations
*** 1436,1442 ****
  --------------------------
  
  The GNAT system provides a number of options that allow a trade-off
! between
  
  * performance of the generated code
  
--- 1458,1464 ----
  --------------------------
  
  The GNAT system provides a number of options that allow a trade-off
! between:
  
  * performance of the generated code
  
*************** between
*** 1446,1454 ****
  
  * the degree of run-time checking.
  
! The defaults (if no options are selected) aim at improving the speed
  of compilation and minimizing dependences, at the expense of performance
! of the generated code:
  
  * no optimization
  
--- 1468,1476 ----
  
  * the degree of run-time checking.
  
! The default (if you don't select any switches) aims at improving the speed
  of compilation and minimizing dependences, at the expense of performance
! of the generated code and consists of:
  
  * no optimization
  
*************** of the generated code:
*** 1457,1463 ****
  * all run-time checks enabled except overflow and elaboration checks
  
  These options are suitable for most program development purposes. This
! section describes how you can modify these choices, and also provides
  some guidelines on debugging optimized code.
  
  
--- 1479,1485 ----
  * all run-time checks enabled except overflow and elaboration checks
  
  These options are suitable for most program development purposes. This
! section describes how you can modify these choices and also provides
  some guidelines on debugging optimized code.
  
  
*************** Controlling Run-Time Checks
*** 1467,1498 ****
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  By default, GNAT generates all run-time checks, except stack overflow
! checks, and checks for access before elaboration on subprogram
! calls. The latter are not required in default mode, because all
  necessary checking is done at compile time.
  
  .. index:: -gnatp (gcc)
  .. index:: -gnato (gcc)
  
! The gnat switch, :switch:`-gnatp` allows this default to be modified. See
  :ref:`Run-Time_Checks`.
  
  Our experience is that the default is suitable for most development
  purposes.
  
! Elaboration checks are off by default, and also not needed by default, since
! GNAT uses a static elaboration analysis approach that avoids the need for
! run-time checking. This manual contains a full chapter discussing the issue
! of elaboration checks, and if the default is not satisfactory for your use,
! you should read this chapter.
  
  For validity checks, the minimal checks required by the Ada Reference
! Manual (for case statements and assignments to array elements) are on
! by default. These can be suppressed by use of the :switch:`-gnatVn` switch.
  Note that in Ada 83, there were no validity checks, so if the Ada 83 mode
  is acceptable (or when comparing GNAT performance with an Ada 83 compiler),
  it may be reasonable to routinely use :switch:`-gnatVn`. Validity checks
! are also suppressed entirely if :switch:`-gnatp` is used.
  
  .. index:: Overflow checks
  .. index:: Checks, overflow
--- 1489,1520 ----
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  By default, GNAT generates all run-time checks, except stack overflow
! checks and checks for access before elaboration on subprogram
! calls. The latter are not required in default mode because all
  necessary checking is done at compile time.
  
  .. index:: -gnatp (gcc)
  .. index:: -gnato (gcc)
  
! The GNAT switch, :switch:`-gnatp` allows you to modify this default; see
  :ref:`Run-Time_Checks`.
  
  Our experience is that the default is suitable for most development
  purposes.
  
! Elaboration checks are off by default and also not needed by default
! since GNAT uses a static elaboration analysis approach that avoids the
! need for run-time checking. This manual contains a full chapter
! discussing the issue of elaboration checks and you should read this
! chapter if the default is not satisfactory for your use,
  
  For validity checks, the minimal checks required by the Ada Reference
! Manual (for case statements and assignments to array elements) are enabled
! by default. You can suppress these by using the :switch:`-gnatVn` switch.
  Note that in Ada 83, there were no validity checks, so if the Ada 83 mode
  is acceptable (or when comparing GNAT performance with an Ada 83 compiler),
  it may be reasonable to routinely use :switch:`-gnatVn`. Validity checks
! are also suppressed entirely if you use :switch:`-gnatp`.
  
  .. index:: Overflow checks
  .. index:: Checks, overflow
*************** are also suppressed entirely if :switch:
*** 1503,1511 ****
  .. index:: pragma Unsuppress
  
  Note that the setting of the switches controls the default setting of
! the checks. They may be modified using either ``pragma Suppress`` (to
  remove checks) or ``pragma Unsuppress`` (to add back suppressed
! checks) in the program source.
  
  
  .. _Use_of_Restrictions:
--- 1525,1533 ----
  .. index:: pragma Unsuppress
  
  Note that the setting of the switches controls the default setting of
! the checks. You may modify them using either ``pragma Suppress`` (to
  remove checks) or ``pragma Unsuppress`` (to add back suppressed
! checks) in your program source.
  
  
  .. _Use_of_Restrictions:
*************** checks) in the program source.
*** 1513,1543 ****
  Use of Restrictions
  ^^^^^^^^^^^^^^^^^^^
  
! The use of pragma Restrictions allows you to control which features are
! permitted in your program. Apart from the obvious point that if you avoid
! relatively expensive features like finalization (enforceable by the use
! of pragma Restrictions (No_Finalization)), the use of this pragma does not
! affect the generated code in most cases.
  
  One notable exception to this rule is that the possibility of task abort
  results in some distributed overhead, particularly if finalization or
! exception handlers are used. The reason is that certain sections of code
! have to be marked as non-abortable.
  
! If you use neither the ``abort`` statement, nor asynchronous transfer
! of control (``select ... then abort``), then this distributed overhead
! is removed, which may have a general positive effect in improving
! overall performance.  Especially code involving frequent use of tasking
! constructs and controlled types will show much improved performance.
! The relevant restrictions pragmas are
  
    .. code-block:: ada
  
        pragma Restrictions (No_Abort_Statements);
        pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
  
! It is recommended that these restriction pragmas be used if possible. Note
! that this also means that you can write code without worrying about the
  possibility of an immediate abort at any point.
  
  
--- 1535,1566 ----
  Use of Restrictions
  ^^^^^^^^^^^^^^^^^^^
  
! You can use pragma Restrictions to control which features are
! permitted in your program. In most cases, the use of this pragma
! itself does not affect the generated code (but, of course, if you
! avoid relatively expensive features like finalization, you'll have
! more efficient programs and that's enforceable by the use of pragma
! Restrictions (No_Finalization).
  
  One notable exception to this rule is that the possibility of task abort
  results in some distributed overhead, particularly if finalization or
! exception handlers are used. This is because certain sections of code
! must be marked as non-abortable.
  
! If you use neither the ``abort`` statement nor asynchronous transfer
! of control (``select ... then abort``), this distributed overhead can
! be removed, which may have a general positive effect in improving
! overall performance, especially in code involving frequent use of
! tasking constructs and controlled types, which will show much improved
! performance.  The relevant restrictions pragmas are
  
    .. code-block:: ada
  
        pragma Restrictions (No_Abort_Statements);
        pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
  
! We recommend that you use these restriction pragmas if possible. If you do
! this, it also means you can write code without worrying about the
  possibility of an immediate abort at any point.
  
  
*************** Optimization Levels
*** 1548,1573 ****
  
  .. index:: -O (gcc)
  
! Without any optimization option,
! the compiler's goal is to reduce the cost of
! compilation and to make debugging produce the expected results.
! Statements are independent: if you stop the program with a breakpoint between
! statements, you can then assign a new value to any variable or change
! the program counter to any other statement in the subprogram and get exactly
! the results you would expect from the source code.
  
  Turning on optimization makes the compiler attempt to improve the
  performance and/or code size at the expense of compilation time and
  possibly the ability to debug the program.
  
! If you use multiple
! -O options, with or without level numbers,
! the last such option is the one that is effective.
  
! The default is optimization off. This results in the fastest compile
! times, but GNAT makes absolutely no attempt to optimize, and the
! generated programs are considerably larger and slower than when
! optimization is enabled. You can use the
  :switch:`-O` switch (the permitted forms are :switch:`-O0`, :switch:`-O1`
  :switch:`-O2`, :switch:`-O3`, and :switch:`-Os`)
  to ``gcc`` to control the optimization level:
--- 1571,1593 ----
  
  .. index:: -O (gcc)
  
! Without any optimization switch, the compiler's goal is to reduce the
! cost of compilation and to make debugging produce the expected
! results.  This means that statements are independent: if you stop the
! program with a breakpoint between statements, you can then assign a
! new value to any variable or change the program counter to any other
! statement in the subprogram and get exactly the results you would
! expect from the source code. However, the generated programs are
! considerably larger and slower than when optimization is enabled.
  
  Turning on optimization makes the compiler attempt to improve the
  performance and/or code size at the expense of compilation time and
  possibly the ability to debug the program.
  
! If you use multiple :switch:`-O` switches, with or without level
! numbers, the last such switch is the one that's used.
  
! You can use the
  :switch:`-O` switch (the permitted forms are :switch:`-O0`, :switch:`-O1`
  :switch:`-O2`, :switch:`-O3`, and :switch:`-Os`)
  to ``gcc`` to control the optimization level:
*************** to ``gcc`` to control the optimization l
*** 1576,1599 ****
  * :switch:`-O0`
      No optimization (the default);
      generates unoptimized code but has
!     the fastest compilation time.
  
!     Note that many other compilers do substantial optimization even
!     if 'no optimization' is specified. With gcc, it is very unusual
!     to use :switch:`-O0` for production if execution time is of any concern,
!     since :switch:`-O0` means (almost) no optimization. This difference
!     between gcc and other compilers should be kept in mind when
!     doing performance comparisons.
  
  * :switch:`-O1`
!     Moderate optimization;
!     optimizes reasonably well but does not
!     degrade compilation time significantly.
  
  * :switch:`-O2`
      Full optimization;
      generates highly optimized code and has
!     the slowest compilation time.
  
  * :switch:`-O3`
      Full optimization as in :switch:`-O2`;
--- 1596,1621 ----
  * :switch:`-O0`
      No optimization (the default);
      generates unoptimized code but has
!     the fastest compilation time. Debugging is easiest with this switch.
  
!     Note that many other compilers do substantial optimization even if
!     'no optimization' is specified. With GCC, it is very unusual to
!     use :switch:`-O0` for production if execution time is of any
!     concern, since :switch:`-O0` means (almost) no optimization. You
!     should keep this difference between GCC and other compilers in
!     mind when doing performance comparisons.
  
  * :switch:`-O1`
!     Moderate optimization; optimizes reasonably well but does not
!     degrade compilation time significantly. You may not be able to see
!     some variables in the debugger and changing the value of some
!     variables in the debugger may not have the effect you desire.
  
  * :switch:`-O2`
      Full optimization;
      generates highly optimized code and has
!     the slowest compilation time. You may see significant impacts on
!     your ability to display and modify variables in the debugger.
  
  * :switch:`-O3`
      Full optimization as in :switch:`-O2`;
*************** of the optimization settings in general
*** 1617,1626 ****
  See the *Options That Control Optimization* section in
  :title:`Using the GNU Compiler Collection (GCC)`
  for details about
! the :switch:`-O` settings and a number of :switch:`-f` options that
  individually enable or disable specific optimizations.
  
! Unlike some other compilation systems, ``gcc`` has
  been tested extensively at all optimization levels. There are some bugs
  which appear only with optimization turned on, but there have also been
  bugs which show up only in *unoptimized* code. Selecting a lower
--- 1639,1648 ----
  See the *Options That Control Optimization* section in
  :title:`Using the GNU Compiler Collection (GCC)`
  for details about
! the :switch:`-O` settings and a number of :switch:`-f` switches that
  individually enable or disable specific optimizations.
  
! Unlike some other compilation systems, GCC has
  been tested extensively at all optimization levels. There are some bugs
  which appear only with optimization turned on, but there have also been
  bugs which show up only in *unoptimized* code. Selecting a lower
*************** level of optimization does not improve t
*** 1628,1634 ****
  generator, which in practice is highly reliable at all optimization
  levels.
  
! Note regarding the use of :switch:`-O3`: The use of this optimization level
  ought not to be automatically preferred over that of level :switch:`-O2`,
  since it often results in larger executables which may run more slowly.
  See further discussion of this point in :ref:`Inlining_of_Subprograms`.
--- 1650,1656 ----
  generator, which in practice is highly reliable at all optimization
  levels.
  
! A note regarding the use of :switch:`-O3`: The use of this optimization level
  ought not to be automatically preferred over that of level :switch:`-O2`,
  since it often results in larger executables which may run more slowly.
  See further discussion of this point in :ref:`Inlining_of_Subprograms`.
*************** These are the most common cases:
*** 1678,1687 ****
      may not be able to stop on what looks like a statement.
  
    - *Invariant code motion:* moving an expression that does not change within a
!     loop, to the beginning of the loop.
  
    - *Instruction scheduling:* moving instructions so as to
!     overlap loads and stores (typically) with other code, or in
      general to move computations of values closer to their uses. Often
      this causes you to pass an assignment statement without the assignment
      happening and then later bounce back to the statement when the
--- 1700,1709 ----
      may not be able to stop on what looks like a statement.
  
    - *Invariant code motion:* moving an expression that does not change within a
!     loop to the beginning of the loop.
  
    - *Instruction scheduling:* moving instructions so as to
!     overlap loads and stores (typically) with other code or in
      general to move computations of values closer to their uses. Often
      this causes you to pass an assignment statement without the assignment
      happening and then later bounce back to the statement when the
*************** These are the most common cases:
*** 1703,1709 ****
    - In a subprogram prologue, a parameter may not yet have been moved to its
      'home'.
  
!   - A variable may be dead, and its register re-used.  This is
      probably the most common cause.
  
    - As mentioned above, the assignment of a value to a variable may
--- 1725,1731 ----
    - In a subprogram prologue, a parameter may not yet have been moved to its
      'home'.
  
!   - A variable may be dead and its register re-used.  This is
      probably the most common cause.
  
    - As mentioned above, the assignment of a value to a variable may
*************** These are the most common cases:
*** 1715,1728 ****
  
    In general, when an unexpected value appears for a local variable or parameter
    you should first ascertain if that value was actually computed by
!   your program, as opposed to being incorrectly reported by the debugger.
    Record fields or
    array elements in an object designated by an access value
!   are generally less of a problem, once you have ascertained that the access
    value is sensible.
    Typically, this means checking variables in the preceding code and in the
    calling subprogram to verify that the value observed is explainable from other
!   values (one must apply the procedure recursively to those
    other values); or re-running the code and stopping a little earlier
    (perhaps before the call) and stepping to better see how the variable obtained
    the value in question; or continuing to step *from* the point of the
--- 1737,1750 ----
  
    In general, when an unexpected value appears for a local variable or parameter
    you should first ascertain if that value was actually computed by
!   your program as opposed to being incorrectly reported by the debugger.
    Record fields or
    array elements in an object designated by an access value
!   are generally less of a problem once you have verified that the access
    value is sensible.
    Typically, this means checking variables in the preceding code and in the
    calling subprogram to verify that the value observed is explainable from other
!   values (you must apply the procedure recursively to those
    other values); or re-running the code and stopping a little earlier
    (perhaps before the call) and stepping to better see how the variable obtained
    the value in question; or continuing to step *from* the point of the
*************** following conditions are met:
*** 1750,1757 ****
  
  * The optimization level is at least :switch:`-O1`.
  
! * The called subprogram is suitable for inlining: It must be small enough
!   and not contain something that ``gcc`` cannot support in inlined
    subprograms.
  
    .. index:: pragma Inline
--- 1772,1779 ----
  
  * The optimization level is at least :switch:`-O1`.
  
! * The called subprogram is suitable for inlining: it must be small enough
!   and not contain something that the back end cannot support in inlined
    subprograms.
  
    .. index:: pragma Inline
*************** following conditions are met:
*** 1760,1775 ****
  * Any one of the following applies: ``pragma Inline`` is applied to the
    subprogram; the subprogram is local to the unit and called once from
    within it; the subprogram is small and optimization level :switch:`-O2` is
!   specified; optimization level :switch:`-O3` is specified.
  
  Calls to subprograms in |withed| units are normally not inlined.
! To achieve actual inlining (that is, replacement of the call by the code
  in the body of the subprogram), the following conditions must all be true:
  
  * The optimization level is at least :switch:`-O1`.
  
  * The called subprogram is suitable for inlining: It must be small enough
!   and not contain something that ``gcc`` cannot support in inlined
    subprograms.
  
  * There is a ``pragma Inline`` for the subprogram.
--- 1782,1798 ----
  * Any one of the following applies: ``pragma Inline`` is applied to the
    subprogram; the subprogram is local to the unit and called once from
    within it; the subprogram is small and optimization level :switch:`-O2` is
!   specified; optimization level :switch:`-O3` is specified; or the subprogram
!   is an expression function.
  
  Calls to subprograms in |withed| units are normally not inlined.
! To achieve inlining in those case (that is, replacement of the call by the code
  in the body of the subprogram), the following conditions must all be true:
  
  * The optimization level is at least :switch:`-O1`.
  
  * The called subprogram is suitable for inlining: It must be small enough
!   and not contain something that the back end cannot support in inlined
    subprograms.
  
  * There is a ``pragma Inline`` for the subprogram.
*************** in the body of the subprogram), the foll
*** 1777,1783 ****
  * The :switch:`-gnatn` switch is used on the command line.
  
  Even if all these conditions are met, it may not be possible for
! the compiler to inline the call, due to the length of the body,
  or features in the body that make it impossible for the compiler
  to do the inlining.
  
--- 1800,1806 ----
  * The :switch:`-gnatn` switch is used on the command line.
  
  Even if all these conditions are met, it may not be possible for
! the compiler to inline the call due to the length of the body,
  or features in the body that make it impossible for the compiler
  to do the inlining.
  
*************** is compiled, the call will be inlined if
*** 1813,1862 ****
  enough, but now ``Main`` depends on the body of ``R`` in
  :file:`r.adb` as well as on the spec. This means that if this body is edited,
  the main program must be recompiled. Note that this extra dependency
! occurs whether or not the call is in fact inlined by ``gcc``.
  
  The use of front end inlining with :switch:`-gnatN` generates similar
  additional dependencies.
  
  .. index:: -fno-inline (gcc)
  
! Note: The :switch:`-fno-inline` switch overrides all other conditions and ensures that
! no inlining occurs, unless requested with pragma Inline_Always for ``gcc``
! back-ends. The extra dependences resulting from :switch:`-gnatn` will still be active,
! even if this switch is used to suppress the resulting inlining actions.
  
  .. index:: -fno-inline-functions (gcc)
  
! Note: The :switch:`-fno-inline-functions` switch can be used to prevent
! automatic inlining of subprograms if :switch:`-O3` is used.
  
  .. index:: -fno-inline-small-functions (gcc)
  
! Note: The :switch:`-fno-inline-small-functions` switch can be used to prevent
! automatic inlining of small subprograms if :switch:`-O2` is used.
  
  .. index:: -fno-inline-functions-called-once (gcc)
  
! Note: The :switch:`-fno-inline-functions-called-once` switch
! can be used to prevent inlining of subprograms local to the unit
! and called once from within it if :switch:`-O1` is used.
  
! Note regarding the use of :switch:`-O3`: :switch:`-gnatn` is made up of two
! sub-switches :switch:`-gnatn1` and :switch:`-gnatn2` that can be directly
! specified in lieu of it, :switch:`-gnatn` being translated into one of them
  based on the optimization level. With :switch:`-O2` or below, :switch:`-gnatn`
  is equivalent to :switch:`-gnatn1` which activates pragma ``Inline`` with
  moderate inlining across modules. With :switch:`-O3`, :switch:`-gnatn` is
  equivalent to :switch:`-gnatn2` which activates pragma ``Inline`` with
  full inlining across modules. If you have used pragma ``Inline`` in
! appropriate cases, then it is usually much better to use :switch:`-O2`
  and :switch:`-gnatn` and avoid the use of :switch:`-O3` which has the additional
  effect of inlining subprograms you did not think should be inlined. We have
  found that the use of :switch:`-O3` may slow down the compilation and increase
  the code size by performing excessive inlining, leading to increased
  instruction cache pressure from the increased code size and thus minor
! performance improvements. So the bottom line here is that you should not
! automatically assume that :switch:`-O3` is better than :switch:`-O2`, and
  indeed you should use :switch:`-O3` only if tests show that it actually
  improves performance for your program.
  
--- 1836,1889 ----
  enough, but now ``Main`` depends on the body of ``R`` in
  :file:`r.adb` as well as on the spec. This means that if this body is edited,
  the main program must be recompiled. Note that this extra dependency
! occurs whether or not the call is in fact inlined by the back end.
  
  The use of front end inlining with :switch:`-gnatN` generates similar
  additional dependencies.
  
  .. index:: -fno-inline (gcc)
  
! Note: The :switch:`-fno-inline` switch overrides all other conditions
! and ensures that no inlining occurs, unless requested with pragma
! Inline_Always for most back ends. The extra dependences resulting from
! :switch:`-gnatn` will still be active, even if this switch is used to
! suppress the resulting inlining actions.
  
  .. index:: -fno-inline-functions (gcc)
  
! For the GCC back end, you can use the
! :switch:`-fno-inline-functions` switch to prevent automatic inlining
! of subprograms if you use :switch:`-O3`.
  
  .. index:: -fno-inline-small-functions (gcc)
  
! For the GCC back end, you can use the
! :switch:`-fno-inline-small-functions` switch to prevent automatic
! inlining of small subprograms if you use :switch:`-O2`.
  
  .. index:: -fno-inline-functions-called-once (gcc)
  
! For the GC back end, you can use the
! :switch:`-fno-inline-functions-called-once` switch to prevent inlining
! of subprograms local to the unit and called once from within it if you
! use :switch:`-O1`.
  
! A note regarding the use of :switch:`-O3`: :switch:`-gnatn` is made up of two
! sub-switches :switch:`-gnatn1` and :switch:`-gnatn2` that you can directly
! specify. :switch:`-gnatn` is translated into one of them
  based on the optimization level. With :switch:`-O2` or below, :switch:`-gnatn`
  is equivalent to :switch:`-gnatn1` which activates pragma ``Inline`` with
  moderate inlining across modules. With :switch:`-O3`, :switch:`-gnatn` is
  equivalent to :switch:`-gnatn2` which activates pragma ``Inline`` with
  full inlining across modules. If you have used pragma ``Inline`` in
! appropriate cases, it's usually much better to use :switch:`-O2`
  and :switch:`-gnatn` and avoid the use of :switch:`-O3` which has the additional
  effect of inlining subprograms you did not think should be inlined. We have
  found that the use of :switch:`-O3` may slow down the compilation and increase
  the code size by performing excessive inlining, leading to increased
  instruction cache pressure from the increased code size and thus minor
! performance degradations. So the bottom line here is that you should not
! automatically assume that :switch:`-O3` is better than :switch:`-O2` and
  indeed you should use :switch:`-O3` only if tests show that it actually
  improves performance for your program.
  
*************** Floating Point Operations
*** 1867,1909 ****
  
  .. index:: Floating-Point Operations
  
! On almost all targets, GNAT maps Float and Long_Float to the 32-bit and
! 64-bit standard IEEE floating-point representations, and operations will
  use standard IEEE arithmetic as provided by the processor. On most, but
! not all, architectures, the attribute Machine_Overflows is False for these
  types, meaning that the semantics of overflow is implementation-defined.
  In the case of GNAT, these semantics correspond to the normal IEEE
  treatment of infinities and NaN (not a number) values. For example,
  1.0 / 0.0 yields plus infinitiy and 0.0 / 0.0 yields a NaN. By
  avoiding explicit overflow checks, the performance is greatly improved
! on many targets. However, if required, floating-point overflow can be
! enabled by the use of the pragma Check_Float_Overflow.
  
  Another consideration that applies specifically to x86 32-bit
  architectures is which form of floating-point arithmetic is used.
! By default the operations use the old style x86 floating-point,
  which implements an 80-bit extended precision form (on these
! architectures the type Long_Long_Float corresponds to that form).
  In addition, generation of efficient code in this mode means that
! the extended precision form will be used for intermediate results.
  This may be helpful in improving the final precision of a complex
! expression. However it means that the results obtained on the x86
! will be different from those on other architectures, and for some
  algorithms, the extra intermediate precision can be detrimental.
  
  In addition to this old-style floating-point, all modern x86 chips
  implement an alternative floating-point operation model referred
! to as SSE2. In this model there is no extended form, and furthermore
  execution performance is significantly enhanced. To force GNAT to use
  this more modern form, use both of the switches:
  
     -msse2 -mfpmath=sse
  
  A unit compiled with these switches will automatically use the more
! efficient SSE2 instruction set for Float and Long_Float operations.
  Note that the ABI has the same form for both floating-point models,
! so it is permissible to mix units compiled with and without these
! switches.
  
  
  
--- 1894,1935 ----
  
  .. index:: Floating-Point Operations
  
! On almost all targets, GNAT maps ``Float`` and ``Long_Float`` to the 32-bit and
! 64-bit standard IEEE floating-point representations and operations will
  use standard IEEE arithmetic as provided by the processor. On most, but
! not all, architectures, the attribute ``Machine_Overflows`` is ``False`` for these
  types, meaning that the semantics of overflow is implementation-defined.
  In the case of GNAT, these semantics correspond to the normal IEEE
  treatment of infinities and NaN (not a number) values. For example,
  1.0 / 0.0 yields plus infinitiy and 0.0 / 0.0 yields a NaN. By
  avoiding explicit overflow checks, the performance is greatly improved
! on many targets. However, if required, you can enable floating-point overflow
! by using the pragma ``Check_Float_Overflow``.
  
  Another consideration that applies specifically to x86 32-bit
  architectures is which form of floating-point arithmetic is used.
! By default, the operations use the old style x86 floating-point,
  which implements an 80-bit extended precision form (on these
! architectures the type ``Long_Long_Float`` corresponds to that form).
  In addition, generation of efficient code in this mode means that
! the extended precision form is used for intermediate results.
  This may be helpful in improving the final precision of a complex
! expression, but it means that the results obtained on the x86
! may be different from those on other architectures and, for some
  algorithms, the extra intermediate precision can be detrimental.
  
  In addition to this old-style floating-point, all modern x86 chips
  implement an alternative floating-point operation model referred
! to as SSE2. In this model, there is no extended form and
  execution performance is significantly enhanced. To force GNAT to use
  this more modern form, use both of the switches:
  
     -msse2 -mfpmath=sse
  
  A unit compiled with these switches will automatically use the more
! efficient SSE2 instruction set for ``Float`` and ``Long_Float`` operations.
  Note that the ABI has the same form for both floating-point models,
! so you can mix units compiled with and without these switches.
  
  
  
*************** Vectorization of loops
*** 1916,1932 ****
  
  .. index:: Optimization Switches
  
! You can take advantage of the auto-vectorizer present in the ``gcc``
! back end to vectorize loops with GNAT.  The corresponding command line switch
! is :switch:`-ftree-vectorize` but, as it is enabled by default at :switch:`-O3`
! and other aggressive optimizations helpful for vectorization also are enabled
! by default at this level, using :switch:`-O3` directly is recommended.
  
! You also need to make sure that the target architecture features a supported
! SIMD instruction set.  For example, for the x86 architecture, you should at
! least specify :switch:`-msse2` to get significant vectorization (but you don't
! need to specify it for x86-64 as it is part of the base 64-bit architecture).
! Similarly, for the PowerPC architecture, you should specify :switch:`-maltivec`.
  
  The preferred loop form for vectorization is the ``for`` iteration scheme.
  Loops with a ``while`` iteration scheme can also be vectorized if they are
--- 1942,1961 ----
  
  .. index:: Optimization Switches
  
! The GCC and LLVM back ends have an auto-vectorizer that's enabled by
! default at some optimization levels.  For the GCC back end, it's
! enabled by default at :switch:`-O3` and you can request it at other
! levels with :switch:`-ftree-vectorize`. For the LLVM back end, it's
! enabled by default at lower levels, but you can explicitly enable or
! disable it with the :switch:`-fno-vectorize`, :switch:`-fvectorize`,
! :switch:`-fno-slp-vectorize`, and :switch:`-fslp-vectorize` switches.
  
! To get auto-vectorization, you also need to make sure that the target
! architecture features a supported SIMD instruction set.  For example,
! for the x86 architecture, you should at least specify :switch:`-msse2`
! to get significant vectorization (but you don't need to specify it for
! x86-64 as it is part of the base 64-bit architecture).  Similarly, for
! the PowerPC architecture, you should specify :switch:`-maltivec`.
  
  The preferred loop form for vectorization is the ``for`` iteration scheme.
  Loops with a ``while`` iteration scheme can also be vectorized if they are
*************** contain a single nested loop, if it can
*** 1950,1956 ****
         end Sum;
  
  The vectorizable operations depend on the targeted SIMD instruction set, but
! the adding and some of the multiplying operators are generally supported, as
  well as the logical operators for modular types. Note that compiling
  with :switch:`-gnatp` might well reveal cases where some checks do thwart
  vectorization.
--- 1979,1985 ----
         end Sum;
  
  The vectorizable operations depend on the targeted SIMD instruction set, but
! addition and some multiplication operators are generally supported, as
  well as the logical operators for modular types. Note that compiling
  with :switch:`-gnatp` might well reveal cases where some checks do thwart
  vectorization.
*************** or unconstrained array types:
*** 1993,2003 ****
  
  The quality of the generated code decreases when the dynamic aspect of the
  array type increases, the worst code being generated for unconstrained array
! types.  This is so because, the less information the compiler has about the
  bounds of the array, the more fallback code it needs to generate in order to
  fix things up at run time.
  
! It is possible to specify that a given loop should be subject to vectorization
  preferably to other optimizations by means of pragma ``Loop_Optimize``:
  
    .. code-block:: ada
--- 2022,2032 ----
  
  The quality of the generated code decreases when the dynamic aspect of the
  array type increases, the worst code being generated for unconstrained array
! types.  This is because the less information the compiler has about the
  bounds of the array, the more fallback code it needs to generate in order to
  fix things up at run time.
  
! You can specify that a given loop should be subject to vectorization
  preferably to other optimizations by means of pragma ``Loop_Optimize``:
  
    .. code-block:: ada
*************** preferably to other optimizations by mea
*** 2005,2013 ****
        pragma Loop_Optimize (Vector);
  
  placed immediately within the loop will convey the appropriate hint to the
! compiler for this loop.
  
! It is also possible to help the compiler generate better vectorized code
  for a given loop by asserting that there are no loop-carried dependencies
  in the loop.  Consider for example the procedure:
  
--- 2034,2043 ----
        pragma Loop_Optimize (Vector);
  
  placed immediately within the loop will convey the appropriate hint to the
! compiler for this loop. This is currently only supported for the GCC
! back end.
  
! You can also help the compiler generate better vectorized code
  for a given loop by asserting that there are no loop-carried dependencies
  in the loop.  Consider for example the procedure:
  
*************** be overcome by another hint:
*** 2036,2041 ****
--- 2066,2072 ----
  
  placed immediately within the loop will tell the compiler that it can safely
  omit the non-vectorized version of the loop as well as the run-time test.
+ This is also currently only supported by the GCC back end.
  
  
  .. _Other_Optimization_Switches:
*************** Other Optimization Switches
*** 2045,2059 ****
  
  .. index:: Optimization Switches
  
! Since GNAT uses the ``gcc`` back end, all the specialized
! ``gcc`` optimization switches are potentially usable. These switches
! have not been extensively tested with GNAT but can generally be expected
! to work. Examples of switches in this category are :switch:`-funroll-loops`
! and the various target-specific :switch:`-m` options (in particular, it has
! been observed that :switch:`-march=xxx` can significantly improve performance
! on appropriate machines). For full details of these switches, see
! the *Submodel Options* section in the *Hardware Models and Configurations*
! chapter of :title:`Using the GNU Compiler Collection (GCC)`.
  
  
  .. _Optimization_and_Strict_Aliasing:
--- 2076,2091 ----
  
  .. index:: Optimization Switches
  
! You can also use any specialized optimization switches supported by
! the back end being used.  These switches have not been extensively
! tested with GNAT but can generally be expected to work. Examples of
! switches in this category for the GCC back end are
! :switch:`-funroll-loops` and the various target-specific :switch:`-m`
! options (in particular, it has been observed that :switch:`-march=xxx`
! can significantly improve performance on appropriate machines). For
! full details of these switches, see the *Submodel Options* section in
! the *Hardware Models and Configurations* chapter of :title:`Using the
! GNU Compiler Collection (GCC)`.
  
  
  .. _Optimization_and_Strict_Aliasing:
*************** the following example:
*** 2072,2283 ****
  
    .. code-block:: ada
  
!      procedure R is
          type Int1 is new Integer;
          type Int2 is new Integer;
!         type Int1A is access Int1;
!         type Int2A is access Int2;
!         Int1V : Int1A;
!         Int2V : Int2A;
          ...
  
       begin
          ...
          for J in Data'Range loop
!            if Data (J) = Int1V.all then
!               Int2V.all := Int2V.all + 1;
             end if;
          end loop;
          ...
!      end R;
  
! In this example, since the variable ``Int1V`` can only access objects
! of type ``Int1``, and ``Int2V`` can only access objects of type
! ``Int2``, there is no possibility that the assignment to
! ``Int2V.all`` affects the value of ``Int1V.all``. This means that
! the compiler optimizer can "know" that the value ``Int1V.all`` is constant
! for all iterations of the loop and avoid the extra memory reference
! required to dereference it each time through the loop.
  
! This kind of optimization, called strict aliasing analysis, is
  triggered by specifying an optimization level of :switch:`-O2` or
! higher or :switch:`-Os` and allows GNAT to generate more efficient code
! when access values are involved.
  
! However, although this optimization is always correct in terms of
! the formal semantics of the Ada Reference Manual, difficulties can
! arise if features like ``Unchecked_Conversion`` are used to break
! the typing system. Consider the following complete program example:
  
    .. code-block:: ada
  
!       package p1 is
!          type int1 is new integer;
!          type int2 is new integer;
!          type a1 is access int1;
!          type a2 is access int2;
!       end p1;
  
!       with p1; use p1;
!       package p2 is
!          function to_a2 (Input : a1) return a2;
        end p2;
  
        with Ada.Unchecked_Conversion;
!       package body p2 is
!          function to_a2 (Input : a1) return a2 is
!             function to_a2u is
!               new Ada.Unchecked_Conversion (a1, a2);
           begin
!             return to_a2u (Input);
!          end to_a2;
!       end p2;
  
!       with p2; use p2;
!       with p1; use p1;
        with Text_IO; use Text_IO;
!       procedure m is
!          v1 : a1 := new int1;
!          v2 : a2 := to_a2 (v1);
        begin
!          v1.all := 1;
!          v2.all := 0;
!          put_line (int1'image (v1.all));
        end;
  
! This program prints out 0 in :switch:`-O0` or :switch:`-O1`
! mode, but it prints out 1 in :switch:`-O2` mode. That's
! because in strict aliasing mode, the compiler can and
! does assume that the assignment to ``v2.all`` could not
! affect the value of ``v1.all``, since different types
! are involved.
  
  This behavior is not a case of non-conformance with the standard, since
  the Ada RM specifies that an unchecked conversion where the resulting
  bit pattern is not a correct value of the target type can result in an
  abnormal value and attempting to reference an abnormal value makes the
  execution of a program erroneous.  That's the case here since the result
! does not point to an object of type ``int2``.  This means that the
! effect is entirely unpredictable.
  
! However, although that explanation may satisfy a language
! lawyer, in practice an applications programmer expects an
! unchecked conversion involving pointers to create true
! aliases and the behavior of printing 1 seems plain wrong.
! In this case, the strict aliasing optimization is unwelcome.
  
! Indeed the compiler recognizes this possibility, and the
! unchecked conversion generates a warning:
  
    ::
  
!      p2.adb:5:07: warning: possible aliasing problem with type "a2"
       p2.adb:5:07: warning: use -fno-strict-aliasing switch for references
!      p2.adb:5:07: warning:  or use "pragma No_Strict_Aliasing (a2);"
  
! Unfortunately the problem is recognized when compiling the body of
! package ``p2``, but the actual "bad" code is generated while
! compiling the body of ``m`` and this latter compilation does not see
! the suspicious ``Unchecked_Conversion``.
  
  As implied by the warning message, there are approaches you can use to
! avoid the unwanted strict aliasing optimization in a case like this.
  
! One possibility is to simply avoid the use of :switch:`-O2`, but
! that is a bit drastic, since it throws away a number of useful
! optimizations that do not involve strict aliasing assumptions.
  
! A less drastic approach is to compile the program using the
! option :switch:`-fno-strict-aliasing`. Actually it is only the
  unit containing the dereferencing of the suspicious pointer
! that needs to be compiled. So in this case, if we compile
! unit ``m`` with this switch, then we get the expected
! value of zero printed. Analyzing which units might need
! the switch can be painful, so a more reasonable approach
  is to compile the entire program with options :switch:`-O2`
! and :switch:`-fno-strict-aliasing`. If the performance is
! satisfactory with this combination of options, then the
! advantage is that the entire issue of possible "wrong"
! optimization due to strict aliasing is avoided.
  
! To avoid the use of compiler switches, the configuration
! pragma ``No_Strict_Aliasing`` with no parameters may be
! used to specify that for all access types, the strict
! aliasing optimization should be suppressed.
  
! However, these approaches are still overkill, in that they causes
  all manipulations of all access values to be deoptimized. A more
  refined approach is to concentrate attention on the specific
  access type identified as problematic.
  
! First, if a careful analysis of uses of the pointer shows
! that there are no possible problematic references, then
! the warning can be suppressed by bracketing the
! instantiation of ``Unchecked_Conversion`` to turn
! the warning off:
  
!   .. code-block:: ada
  
!      pragma Warnings (Off);
!      function to_a2u is
!        new Ada.Unchecked_Conversion (a1, a2);
!      pragma Warnings (On);
  
! Of course that approach is not appropriate for this particular
! example, since indeed there is a problematic reference. In this
! case we can take one of two other approaches.
  
! The first possibility is to move the instantiation of unchecked
! conversion to the unit in which the type is declared. In
! this example, we would move the instantiation of
! ``Unchecked_Conversion`` from the body of package
! ``p2`` to the spec of package ``p1``. Now the
! warning disappears. That's because any use of the
! access type knows there is a suspicious unchecked
! conversion, and the strict aliasing optimization
! is automatically suppressed for the type.
  
! If it is not practical to move the unchecked conversion to the same unit
! in which the destination access type is declared (perhaps because the
! source type is not visible in that unit), you may use pragma
! ``No_Strict_Aliasing`` for the type. This pragma must occur in the
! same declarative sequence as the declaration of the access type:
  
    .. code-block:: ada
  
!      type a2 is access int2;
!      pragma No_Strict_Aliasing (a2);
  
! Here again, the compiler now knows that the strict aliasing optimization
! should be suppressed for any reference to type ``a2`` and the
! expected behavior is obtained.
  
! Finally, note that although the compiler can generate warnings for
! simple cases of unchecked conversions, there are tricker and more
! indirect ways of creating type incorrect aliases which the compiler
! cannot detect. Examples are the use of address overlays and unchecked
! conversions involving composite types containing access types as
! components. In such cases, no warnings are generated, but there can
! still be aliasing problems. One safe coding practice is to forbid the
! use of address clauses for type overlaying, and to allow unchecked
! conversion only for primitive types. This is not really a significant
! restriction since any possible desired effect can be achieved by
! unchecked conversion of access values.
  
! The aliasing analysis done in strict aliasing mode can certainly
! have significant benefits. We have seen cases of large scale
! application code where the time is increased by up to 5% by turning
! this optimization off. If you have code that includes significant
! usage of unchecked conversion, you might want to just stick with
! :switch:`-O1` and avoid the entire issue. If you get adequate
! performance at this level of optimization level, that's probably
! the safest approach. If tests show that you really need higher
! levels of optimization, then you can experiment with :switch:`-O2`
! and :switch:`-O2 -fno-strict-aliasing` to see how much effect this
! has on size and speed of the code. If you really need to use
! :switch:`-O2` with strict aliasing in effect, then you should
! review any uses of unchecked conversion of access types,
! particularly if you are getting the warnings described above.
  
  
  .. _Aliased_Variables_and_Optimization:
--- 2104,2357 ----
  
    .. code-block:: ada
  
!      procedure M is
          type Int1 is new Integer;
+         I1 : Int1;
+ 
          type Int2 is new Integer;
!         type A2 is access Int2;
!         V2 : A2;
          ...
  
       begin
          ...
          for J in Data'Range loop
!            if Data (J) = I1 then
!               V2.all := V2.all + 1;
             end if;
          end loop;
          ...
!      end;
  
! Here, since ``V2`` can only access objects of type ``Int2``
! and ``I1`` is not one of them, there is no possibility that the assignment
! to ``V2.all`` affects the value of ``I1``. This means that the compiler
! optimizer can infer that the value ``I1`` is constant for all iterations
! of the loop and load it from memory only once, before entering the loop,
! instead of in every iteration (this is called load hoisting).
  
! This kind of optimizations, based on strict type-based aliasing, is
  triggered by specifying an optimization level of :switch:`-O2` or
! higher (or :switch:`-Os`) for the GCC back end and :switch:`-O1` or
! higher for the LLVM back end and allows the compiler to generate more
! efficient code.
  
! However, although this optimization is always correct in terms of the
! formal semantics of the Ada Reference Manual, you can run into
! difficulties arise if you use features like ``Unchecked_Conversion``
! to break the typing system. Consider the following complete program
! example:
  
    .. code-block:: ada
  
!       package P1 is
!          type Int1 is new Integer;
!          type A1 is access Int1;
  
!          type Int2 is new Integer;
!          type A2 is access Int2;
!       end P1;
! 
!       with P1; use P1;
!       package P2 is
!          function To_A2 (Input : A1) return A2;
        end p2;
  
        with Ada.Unchecked_Conversion;
!       package body P2 is
!          function To_A2 (Input : A1) return A2 is
!             function Conv is
!               new Ada.Unchecked_Conversion (A1, A2);
           begin
!             return Conv (Input);
!          end To_A2;
!       end P2;
  
!       with P1; use P1;
!       with P2; use P2;
        with Text_IO; use Text_IO;
!       procedure M is
!          V1 : A1 := new Int1;
!          V2 : A2 := To_A2 (V1);
        begin
!          V1.all := 1;
!          V2.all := 0;
!          Put_Line (Int1'Image (V1.all));
        end;
  
! This program prints out ``0`` in :switch:`-O0` mode,
! but it prints out ``1`` in :switch:`-O2` mode. That's because in strict
! aliasing mode, the compiler may and does assume that the assignment to
! ``V2.all`` could not affect the value of ``V1.all``, since different
! types are involved.
  
  This behavior is not a case of non-conformance with the standard, since
  the Ada RM specifies that an unchecked conversion where the resulting
  bit pattern is not a correct value of the target type can result in an
  abnormal value and attempting to reference an abnormal value makes the
  execution of a program erroneous.  That's the case here since the result
! does not point to an object of type ``Int2``.  This means that the effect
! is entirely unpredictable.
  
! However, although that explanation may satisfy a language lawyer, in
! practice, you probably expect an unchecked conversion
! involving pointers to create true aliases and the behavior of printing
! ``1`` is questionable. In this case, the strict type-based aliasing
! optimizations are clearly unwelcome.
  
! Indeed, the compiler recognizes this possibility and the instantiation of
! Unchecked_Conversion generates a warning:
  
    ::
  
!      p2.adb:5:07: warning: possible aliasing problem with type "A2"
       p2.adb:5:07: warning: use -fno-strict-aliasing switch for references
!      p2.adb:5:07: warning:  or use "pragma No_Strict_Aliasing (A2);"
  
! Unfortunately the problem is only recognized when compiling the body of
! package ``P2``, but the actual problematic code is generated while
! compiling the body of ``M`` and this latter compilation does not see
! the suspicious instance of ``Unchecked_Conversion``.
  
  As implied by the warning message, there are approaches you can use to
! avoid the unwanted strict aliasing optimizations in a case like this.
  
! One possibility is to simply avoid the use of higher levels of optimization,
! but that is quite drastic, since it throws away a number of useful
! optimizations that don't involve strict aliasing assumptions.
  
! A less drastic approach is for you to compile the program using the
! :switch:`-fno-strict-aliasing` switch. Actually, it is only the
  unit containing the dereferencing of the suspicious pointer
! that you need to compile with that switch. So, in this case, if you compile
! unit ``M`` with this switch, you get the expected
! value of ``0`` printed. Analyzing which units might need
! the switch can be painful, so you may find it a more reasonable approach
  is to compile the entire program with options :switch:`-O2`
! and :switch:`-fno-strict-aliasing`. If you obtain satisfactory performance
! with this combination of options, then the
! advantage is that you have avoided the entire issue of possible problematic
! optimizations due to strict aliasing.
  
! To avoid the use of compiler switches, you may use the configuration
! pragma ``No_Strict_Aliasing`` with no parameters
! to specify that for all access types, the strict
! aliasing optimizations should be suppressed.
  
! However, these approaches are still overkill, in that they cause
  all manipulations of all access values to be deoptimized. A more
  refined approach is to concentrate attention on the specific
  access type identified as problematic.
  
! The first possibility is to move the instantiation of unchecked
! conversion to the unit in which the type is declared. In this
! example, you would move the instantiation of ``Unchecked_Conversion``
! from the body of package ``P2`` to the spec of package ``P1``.
! Now, the warning disappears because any use of the access type
! knows there is a suspicious unchecked conversion and the strict
! aliasing optimizations are automatically suppressed for it.
  
! If it's not practical to move the unchecked conversion to the same unit
! in which the destination access type is declared (perhaps because the
! source type is not visible in that unit), the second possibiliy is for you to
! use pragma ``No_Strict_Aliasing`` for the type. You must place this pragma
! in the same declarative part as the declaration of the access type:
  
!   .. code-block:: ada
  
!      type A2 is access Int2;
!      pragma No_Strict_Aliasing (A2);
  
! Here again, the compiler now knows that strict aliasing optimizations
! should be suppressed for any dereference made through type ``A2`` and
! the expected behavior is obtained.
  
! The third possibility is to declare that one of the designated types
! involved, namely ``Int1`` or ``Int2``, is allowed to alias any other
! type in the universe, by using pragma ``Universal_Aliasing``:
  
    .. code-block:: ada
  
!      type Int2 is new Integer;
!      pragma Universal_Aliasing (Int2);
  
! The effect is equivalent to applying pragma ``No_Strict_Aliasing`` to
! every access type designating ``Int2``, in particular ``A2``, and, more
! generally, to every reference made to an object of declared type ``Int2``,
! so it's very powerful and effectively takes ``Int2`` out of the alias
! analysis performed by the compiler in all circumstances.
  
! You can also use this pragma used to deal with aliasing issues that arise
! from the use of ``Unchecked_Conversion`` in the source code but
! without the presence of access types. The typical example is code
! that streams data by means of arrays of storage units (bytes):
  
!  .. code-block:: ada
! 
!     type Byte is mod 2**System.Storage_Unit;
!     for Byte'Size use System.Storage_Unit;
! 
!     type Chunk_Of_Bytes is array (1 .. 64) of Byte;
! 
!     procedure Send (S : Chunk_Of_Bytes);
! 
!     type Rec is record
!        ...
!     end record;
! 
!     procedure Dump (R : Rec) is
!        function To_Stream is
!           new Ada.Unchecked_Conversion (Rec, Chunk_Of_Bytes);
!     begin
!        Send (To_Stream (R));
!     end;
! 
! This generates the following warning for the call to ``Send``:
! 
!   ::
! 
!      dump.adb:8:25: warning: unchecked conversion implemented by copy
!      dump.adb:8:25: warning: use pragma Universal_Aliasing on either type
!      dump.adb:8:25: warning: to enable RM 13.9(12) implementation permission
! 
! This occurs because the formal parameter ``S`` of ``Send`` is passed by
! reference by the compiler and it's not possible to pass a reference to
! ``R`` directly in the call without violating strict type-based aliasing.
! That's why the compiler generates a temporary of type ``Chunk_Of_Bytes``
! just before the call and passes a reference to this temporary instead.
! 
! As implied by the warning message, you can avoid the temporary
! (and the warning) by means of pragma ``Universal_Aliasing``:
! 
!  .. code-block:: ada
! 
!     type Chunk_Of_Bytes is array (1 .. 64) of Byte;
!     pragma Universal_Aliasing (Chunk_Of_Bytes);
! 
! You can also apply this pragma to the component type instead:
! 
!  .. code-block:: ada
! 
!     type Byte is mod 2**System.Storage_Unit;
!     for Byte'Size use System.Storage_Unit;
!     pragma Universal_Aliasing (Byte);
! 
! and every array type whose component is ``Byte`` will inherit the pragma.
! 
! To summarize, the alias analysis performed in strict aliasing mode by
! the compiler can have significant benefits. We've seen cases of large
! scale application code where the execution time is increased by up to
! 5% when these optimizations are turned off. However, if you have code
! that make significant use of unchecked conversion, you might want to
! just stick with :switch:`-O1` (with the GCC back end) and avoid the
! entire issue. If you get adequate performance at this level of
! optimization, that's probably the safest approach. If tests show that
! you really need higher levels of optimization, then you can experiment
! with :switch:`-O2` and :switch:`-O2 -fno-strict-aliasing` to see how
! much effect this has on size and speed of the code. If you really need
! to use :switch:`-O2` with strict aliasing in effect, then you should
! review any uses of unchecked conversion, particularly if you are
! getting the warnings described above.
  
  
  .. _Aliased_Variables_and_Optimization:
*************** Aliased Variables and Optimization
*** 2287,2298 ****
  
  .. index:: Aliasing
  
! There are scenarios in which programs may
  use low level techniques to modify variables
  that otherwise might be considered to be unassigned. For example,
! a variable can be passed to a procedure by reference, which takes
! the address of the parameter and uses the address to modify the
! variable's value, even though it is passed as an IN parameter.
  Consider the following example:
  
    .. code-block:: ada
--- 2361,2372 ----
  
  .. index:: Aliasing
  
! There are scenarios in which your programs may
  use low level techniques to modify variables
  that otherwise might be considered to be unassigned. For example,
! you can pass a variable to a procedure by reference by taking
! the address of the parameter and using that address to modify the
! variable's value, even though the address is passed as an ``in`` parameter.
  Consider the following example:
  
    .. code-block:: ada
*************** Consider the following example:
*** 2319,2339 ****
          Get_String (Temp, Max_Length);
       end;
  
! where Get_String is a C function that uses the address in Temp to
  modify the variable ``Name``. This code is dubious, and arguably
! erroneous, and the compiler would be entitled to assume that
  ``Name`` is never modified, and generate code accordingly.
  
! However, in practice, this would cause some existing code that
! seems to work with no optimization to start failing at high
  levels of optimization.
  
! What the compiler does for such cases is to assume that marking
! a variable as aliased indicates that some "funny business" may
! be going on. The optimizer recognizes the aliased keyword and
! inhibits optimizations that assume the value cannot be assigned.
! This means that the above example will in fact "work" reliably,
! that is, it will produce the expected results.
  
  
  .. _Atomic_Variables_and_Optimization:
--- 2393,2415 ----
          Get_String (Temp, Max_Length);
       end;
  
! where Get_String is a C function that uses the address in ``Temp`` to
  modify the variable ``Name``. This code is dubious, and arguably
! erroneous, and the compiler is entitled to assume that
  ``Name`` is never modified, and generate code accordingly.
  
! However, in practice, this could cause some existing code that
! seems to work with no optimization to start failing at higher
  levels of optimization.
  
! What the compiler does for such cases, is to assume that marking a
! variable as aliased indicates that some "funny business" may be going
! on. The optimizer recognizes the ``aliased`` keyword and inhibits any
! optimizations that assume the variable cannot be assigned to.  This
! means that the above example will in fact "work" reliably, that is, it
! will produce the expected results. However, you should nevertheless
! avoid code such as this if possible because it's not portable and may not
! functin as you expect with all compilers.
  
  
  .. _Atomic_Variables_and_Optimization:
*************** Atomic Variables and Optimization
*** 2343,2361 ****
  
  .. index:: Atomic
  
! There are two considerations with regard to performance when
! atomic variables are used.
  
  First, the RM only guarantees that access to atomic variables
! be atomic, it has nothing to say about how this is achieved,
  though there is a strong implication that this should not be
! achieved by explicit locking code. Indeed GNAT will never
! generate any locking code for atomic variable access (it will
  simply reject any attempt to make a variable or type atomic
! if the atomic access cannot be achieved without such locking code).
  
! That being said, it is important to understand that you cannot
! assume that the entire variable will always be accessed. Consider
  this example:
  
    .. code-block:: ada
--- 2419,2437 ----
  
  .. index:: Atomic
  
! You need to take two things into consideration with regard to performance when
! you use atomic variables.
  
  First, the RM only guarantees that access to atomic variables
! be atomic, but has nothing to say about how this is achieved,
  though there is a strong implication that this should not be
! achieved by explicit locking code. Indeed, GNAT never
! generates any locking code for atomic variable access; it will
  simply reject any attempt to make a variable or type atomic
! if the atomic access cannot be achieved without such locking code.
  
! That being said, it's important to understand that you cannot
! assume the the program will always access the entire variable. Consider
  this example:
  
    .. code-block:: ada
*************** this example:
*** 2374,2381 ****
  
  You cannot assume that the reference to ``RV.B``
  will read the entire 32-bit
! variable with a single load instruction. It is perfectly legitimate if
! the hardware allows it to do a byte read of just the B field. This read
  is still atomic, which is all the RM requires. GNAT can and does take
  advantage of this, depending on the architecture and optimization level.
  Any assumption to the contrary is non-portable and risky. Even if you
--- 2450,2457 ----
  
  You cannot assume that the reference to ``RV.B``
  will read the entire 32-bit
! variable with a single load instruction. It is perfectly legitimate, if
! the hardware allows it, to do a byte read of just the ``B`` field. This read
  is still atomic, which is all the RM requires. GNAT can and does take
  advantage of this, depending on the architecture and optimization level.
  Any assumption to the contrary is non-portable and risky. Even if you
*************** as in:
*** 2394,2403 ****
          X := RV_Copy.B;
       end;
  
! Now the reference to RV must read the whole variable.
! Actually one can imagine some compiler which figures
  out that the whole copy is not required (because only
! the B field is actually accessed), but GNAT
  certainly won't do that, and we don't know of any
  compiler that would not handle this right, and the
  above code will in practice work portably across
--- 2470,2479 ----
          X := RV_Copy.B;
       end;
  
! Now the reference to ``RV`` must read the whole variable.
! Actually, one can imagine some compiler which figures
  out that the whole copy is not required (because only
! the ``B`` field is actually accessed), but GNAT
  certainly won't do that, and we don't know of any
  compiler that would not handle this right, and the
  above code will in practice work portably across
*************** The second issue with atomic variables h
*** 2407,2414 ****
  the possible requirement of generating synchronization
  code. For more details on this, consult the sections on
  the pragmas Enable/Disable_Atomic_Synchronization in the
! GNAT Reference Manual. If performance is critical, and
! such synchronization code is not required, it may be
  useful to disable it.
  
  
--- 2483,2490 ----
  the possible requirement of generating synchronization
  code. For more details on this, consult the sections on
  the pragmas Enable/Disable_Atomic_Synchronization in the
! :title:``GNAT Reference Manual``. If performance is critical, and
! such synchronization code is not required, you may find it
  useful to disable it.
  
  
*************** Passive Task Optimization
*** 2419,2461 ****
  
  .. index:: Passive Task
  
! A passive task is one which is sufficiently simple that
! in theory a compiler could recognize it an implement it
  efficiently without creating a new thread. The original design
  of Ada 83 had in mind this kind of passive task optimization, but
! only a few Ada 83 compilers attempted it. The problem was that
  it was difficult to determine the exact conditions under which
  the optimization was possible. The result is a very fragile
  optimization where a very minor change in the program can
  suddenly silently make a task non-optimizable.
  
  With the revisiting of this issue in Ada 95, there was general
! agreement that this approach was fundamentally flawed, and the
  notion of protected types was introduced. When using protected
! types, the restrictions are well defined, and you KNOW that the
  operations will be optimized, and furthermore this optimized
  performance is fully portable.
  
  Although it would theoretically be possible for GNAT to attempt to
! do this optimization, but it really doesn't make sense in the
! context of Ada 95, and none of the Ada 95 compilers implement
! this optimization as far as we know. In particular GNAT never
  attempts to perform this optimization.
  
! In any new Ada 95 code that is written, you should always
  use protected types in place of tasks that might be able to
  be optimized in this manner.
! Of course this does not help if you have legacy Ada 83 code
  that depends on this optimization, but it is unusual to encounter
  a case where the performance gains from this optimization
  are significant.
  
  Your program should work correctly without this optimization. If
! you have performance problems, then the most practical
  approach is to figure out exactly where these performance problems
! arise, and update those particular tasks to be protected types. Note
! that typically clients of the tasks who call entries, will not have
! to be modified, only the task definition itself.
  
  
  .. _Text_IO_Suggestions:
--- 2495,2537 ----
  
  .. index:: Passive Task
  
! A passive task is one which is sufficiently simple that,
! in theory, a compiler could recognize it and implement it
  efficiently without creating a new thread. The original design
  of Ada 83 had in mind this kind of passive task optimization, but
! only a few Ada 83 compilers attempted it. The reason was that
  it was difficult to determine the exact conditions under which
  the optimization was possible. The result is a very fragile
  optimization where a very minor change in the program can
  suddenly silently make a task non-optimizable.
  
  With the revisiting of this issue in Ada 95, there was general
! agreement that this approach was fundamentally flawed and the
  notion of protected types was introduced. When using protected
! types, the restrictions are well defined, you KNOW that the
  operations will be optimized, and furthermore this optimized
  performance is fully portable.
  
  Although it would theoretically be possible for GNAT to attempt to
! do this optimization, it really doesn't make sense in the
! context of Ada 95 and none of the Ada 95 compilers implement
! this optimization as far as we know. GNAT never
  attempts to perform this optimization.
  
! In any new Ada 95 code that you write, you should always
  use protected types in place of tasks that might be able to
  be optimized in this manner.
! Of course, this does not help if you have legacy Ada 83 code
  that depends on this optimization, but it is unusual to encounter
  a case where the performance gains from this optimization
  are significant.
  
  Your program should work correctly without this optimization. If
! you have performance problems, the most practical
  approach is to figure out exactly where these performance problems
! arise and update those particular tasks to be protected types. Note
! that typically clients of the tasks who call entries will not have
! to be modified, only the task definitions themselves.
  
  
  .. _Text_IO_Suggestions:
*************** to be modified, only the task definition
*** 2465,2484 ****
  
  .. index:: Text_IO and performance
  
! The ``Ada.Text_IO`` package has fairly high overheads due in part to
  the requirement of maintaining page and line counts. If performance
! is critical, a recommendation is to use ``Stream_IO`` instead of
! ``Text_IO`` for volume output, since this package has less overhead.
  
! If ``Text_IO`` must be used, note that by default output to the standard
! output and standard error files is unbuffered (this provides better
! behavior when output statements are used for debugging, or if the
! progress of a program is observed by tracking the output, e.g. by
  using the Unix *tail -f* command to watch redirected output).
  
! If you are generating large volumes of output with ``Text_IO`` and
  performance is an important factor, use a designated file instead
! of the standard output file, or change the standard output file to
  be buffered using ``Interfaces.C_Streams.setvbuf``.
  
  
--- 2541,2560 ----
  
  .. index:: Text_IO and performance
  
! The ``Ada.Text_IO`` package has fairly high overhead due in part to
  the requirement of maintaining page and line counts. If performance
! is critical, one recommendation is to use ``Stream_IO`` instead of
! ``Text_IO`` for large-volume output, since it has less overhead.
  
! If you must use ``Text_IO``, note that output to the standard output and
! standard error files is unbuffered by default (this provides
! better behavior when output statements are used for debugging or if
! the progress of a program is observed by tracking the output, e.g. by
  using the Unix *tail -f* command to watch redirected output).
  
! If you're generating large volumes of output with ``Text_IO`` and
  performance is an important factor, use a designated file instead
! of the standard output file or change the standard output file to
  be buffered using ``Interfaces.C_Streams.setvbuf``.
  
  
*************** your executable just by setting options
*** 2497,2512 ****
  About unused subprogram/data elimination
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! By default, an executable contains all code and data of its composing objects
  (directly linked or coming from statically linked libraries), even data or code
! never used by this executable.
! 
! This feature will allow you to eliminate such unused code from your
! executable, making it smaller (in disk and in memory).
  
! This functionality is available on all Linux platforms except for the IA-64
  architecture and on all cross platforms using the ELF binary file format.
! In both cases GNU binutils version 2.16 or later are required to enable it.
  
  .. _Compilation_options:
  
--- 2573,2586 ----
  About unused subprogram/data elimination
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! By default, an executable contains all code and data of its objects
  (directly linked or coming from statically linked libraries), even data or code
! never used by this executable. This feature eliminates such unused code from your
! executable, thus making it smaller (in disk and in memory).
  
! You can use this functionality on all Linux platforms except for the IA-64
  architecture and on all cross platforms using the ELF binary file format.
! In both cases, GNU binutils version 2.16 or later are required to enable it.
  
  .. _Compilation_options:
  
*************** is directly performed by the linker.
*** 2520,2550 ****
  .. index:: -fdata-sections (gcc)
  
  In order to do this, it has to work with objects compiled with the
! following options:
  :switch:`-ffunction-sections` :switch:`-fdata-sections`.
  
  These options are usable with C and Ada files.
! They will place respectively each
  function or data in a separate section in the resulting object file.
  
! Once the objects and static libraries are created with these options, the
! linker can perform the dead code elimination. You can do this by setting
! the :switch:`-Wl,--gc-sections` option to gcc command or in the
! :switch:`-largs` section of ``gnatmake``. This will perform a
! garbage collection of code and data never referenced.
  
! If the linker performs a partial link (:switch:`-r` linker option), then you
! will need to provide the entry point using the :switch:`-e` / :switch:`--entry`
! linker option.
  
  Note that objects compiled without the :switch:`-ffunction-sections` and
  :switch:`-fdata-sections` options can still be linked with the executable.
! However, no dead code elimination will be performed on those objects (they will
  be linked as is).
  
! The GNAT static library is now compiled with -ffunction-sections and
! -fdata-sections on some platforms. This allows you to eliminate the unused code
! and data of the GNAT library from your executable.
  
  
  .. _Example_of_unused_subprogram/data_elimination:
--- 2594,2626 ----
  .. index:: -fdata-sections (gcc)
  
  In order to do this, it has to work with objects compiled with the
! following switches passed to the GCC back end:
  :switch:`-ffunction-sections` :switch:`-fdata-sections`.
  
  These options are usable with C and Ada files.
! They cause the compiler to place each
  function or data in a separate section in the resulting object file.
  
! Once you've created the objects and static libraries with these switches, the
! linker can perform the dead code elimination. You can do this by specifying
! the :switch:`-Wl,--gc-sections` switch to your ``gcc`` command or in the
! :switch:`-largs` section of your invocation of ``gnatmake``. This causes
! the linker to perform a
! garbage collection and remove code and data that are never referenced.
  
! If the linker performs a partial link (:switch:`-r` linker switch), then you
! need to provide the entry point using the :switch:`-e` / :switch:`--entry`
! linker switch.
  
  Note that objects compiled without the :switch:`-ffunction-sections` and
  :switch:`-fdata-sections` options can still be linked with the executable.
! However, no dead code elimination can be performed on those objects (they will
  be linked as is).
  
! The GNAT static library is compiled with :switch:`-ffunction-sections`
! and :switch:`-fdata-sections` on some platforms. This allows you to
! eliminate the unused code and data of the GNAT library from your
! executable.
  
  
  .. _Example_of_unused_subprogram/data_elimination:
*************** and data of the GNAT library from your e
*** 2552,2558 ****
  Example of unused subprogram/data elimination
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Here is a simple example:
  
    .. code-block:: ada
  
--- 2628,2634 ----
  Example of unused subprogram/data elimination
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Here's a simple example:
  
    .. code-block:: ada
  
*************** Here is a simple example:
*** 2584,2590 ****
       end Aux;
  
  ``Unused`` and ``Unused_Data`` are never referenced in this code
! excerpt, and hence they may be safely removed from the final executable.
  
    ::
  
--- 2660,2666 ----
       end Aux;
  
  ``Unused`` and ``Unused_Data`` are never referenced in this code
! excerpt and hence may be safely removed from the final executable.
  
    ::
  
*************** excerpt, and hence they may be safely re
*** 2603,2611 ****
       02005350 T aux__used
       0201ffe0 B aux__used_data
  
! It can be observed that the procedure ``Unused`` and the object
! ``Unused_Data`` are removed by the linker when using the
! appropriate options.
  
  
  .. index:: Overflow checks
--- 2679,2687 ----
       02005350 T aux__used
       0201ffe0 B aux__used_data
  
! You can see that the procedure ``Unused`` and the object
! ``Unused_Data`` are removed by the linker when you've used the
! appropriate switches.
  
  
  .. index:: Overflow checks
*************** that intermediate results are not out of
*** 2632,2643 ****
       ...
       A := A + 1;
  
! If ``A`` has the value ``Integer'Last``, then the addition may cause
  overflow since the result is out of range of the type ``Integer``.
! In this case ``Constraint_Error`` will be raised if checks are
  enabled.
  
! A trickier situation arises in examples like the following:
  
    .. code-block:: ada
  
--- 2708,2719 ----
       ...
       A := A + 1;
  
! If ``A`` has the value ``Integer'Last``, the addition will cause
  overflow since the result is out of range of the type ``Integer``.
! In this case, execution will raise ``Constraint_Error`` if checks are
  enabled.
  
! A trickier situation arises in cases like the following:
  
    .. code-block:: ada
  
*************** A trickier situation arises in examples
*** 2646,2657 ****
       A := (A + 1) + C;
  
  where ``A`` is ``Integer'Last`` and ``C`` is ``-1``.
! Now the final result of the expression on the right hand side is
  ``Integer'Last`` which is in range, but the question arises whether the
  intermediate addition of ``(A + 1)`` raises an overflow error.
  
  The (perhaps surprising) answer is that the Ada language
! definition does not answer this question. Instead it leaves
  it up to the implementation to do one of two things if overflow
  checks are enabled.
  
--- 2722,2733 ----
       A := (A + 1) + C;
  
  where ``A`` is ``Integer'Last`` and ``C`` is ``-1``.
! Here, the final result of the expression on the right hand side is
  ``Integer'Last`` which is in range, but the question arises whether the
  intermediate addition of ``(A + 1)`` raises an overflow error.
  
  The (perhaps surprising) answer is that the Ada language
! definition does not answer this question. Instead, it leaves
  it up to the implementation to do one of two things if overflow
  checks are enabled.
  
*************** checks are enabled.
*** 2660,2686 ****
  * yield the correct mathematical result which is then used in
    subsequent operations.
  
! If the compiler chooses the first approach, then the assignment of this
  example will indeed raise ``Constraint_Error`` if overflow checking is
! enabled, or result in erroneous execution if overflow checks are suppressed.
  
  But if the compiler
! chooses the second approach, then it can perform both additions yielding
  the correct mathematical result, which is in range, so no exception
! will be raised, and the right result is obtained, regardless of whether
  overflow checks are suppressed.
  
! Note that in the first example an
  exception will be raised in either case, since if the compiler
  gives the correct mathematical result for the addition, it will
! be out of range of the target type of the assignment, and thus
  fails the range check.
  
  This lack of specified behavior in the handling of overflow for
! intermediate results is a source of non-portability, and can thus
! be problematic when programs are ported. Most typically this arises
! in a situation where the original compiler did not raise an exception,
! and then the application is moved to a compiler where the check is
  performed on the intermediate result and an unexpected exception is
  raised.
  
--- 2736,2762 ----
  * yield the correct mathematical result which is then used in
    subsequent operations.
  
! If the compiler chooses the first approach, the execution of this
  example will indeed raise ``Constraint_Error`` if overflow checking is
! enabled or result in erroneous execution if overflow checks are suppressed.
  
  But if the compiler
! chooses the second approach, it can perform both additions yielding
  the correct mathematical result, which is in range, so no exception
! is raised and the right result is obtained, regardless of whether
  overflow checks are suppressed.
  
! Note that in the first example, an
  exception will be raised in either case, since if the compiler
  gives the correct mathematical result for the addition, it will
! be out of range of the target type of the assignment and thus
  fails the range check.
  
  This lack of specified behavior in the handling of overflow for
! intermediate results is a source of non-portability and can thus
! be problematic when you port programs. Most typically, this arises
! in a situation where the original compiler did not raise an exception
! and you move the application to a compiler where the check is
  performed on the intermediate result and an unexpected exception is
  raised.
  
*************** assertion forms, another issue arises. C
*** 2692,2702 ****
         procedure P (A, B : Integer) with
           Pre => A + B <= Integer'Last;
  
! One often wants to regard arithmetic in a context like this from
! a mathematical point of view. So for example, if the two actual parameters
! for a call to ``P`` are both ``Integer'Last``, then
! the precondition should be regarded as False. If we are executing
! in a mode with run-time checks enabled for preconditions, then we would
  like this precondition to fail, rather than raising an exception
  because of the intermediate overflow.
  
--- 2768,2778 ----
         procedure P (A, B : Integer) with
           Pre => A + B <= Integer'Last;
  
! We often want to regard arithmetic in a context such as this from a
! purely mathematical point of view. So, for example, if the two actual
! parameters for a call to ``P`` are both ``Integer'Last`` then the
! precondition should be evaluated as ``False``. If we're executing in a
! mode with run-time checks enabled for preconditions, then we would
  like this precondition to fail, rather than raising an exception
  because of the intermediate overflow.
  
*************** Consider the call
*** 2719,2727 ****
         Q (A => Integer'Last, B => 1, C => -1);
  
  From a mathematical point of view the precondition
! is True, but at run time we may (but are not guaranteed to) get an
  exception raised because of the intermediate overflow (and we really
! would prefer this precondition to be considered True at run time).
  
  
  .. _Management_of_Overflows_in_GNAT:
--- 2795,2803 ----
         Q (A => Integer'Last, B => 1, C => -1);
  
  From a mathematical point of view the precondition
! is ``True``, but at run time we may (but are not guaranteed to) get an
  exception raised because of the intermediate overflow (and we really
! would prefer this precondition to be considered ``True`` at run time).
  
  
  .. _Management_of_Overflows_in_GNAT:
*************** would prefer this precondition to be con
*** 2729,2739 ****
  Management of Overflows in GNAT
  -------------------------------
  
! To deal with the portability issue, and with the problem of
  mathematical versus run-time interpretation of the expressions in
  assertions, GNAT provides comprehensive control over the handling
! of intermediate overflow. GNAT can operate in three modes, and
! furthermore, permits separate selection of operating modes for
  the expressions within assertions (here the term 'assertions'
  is used in the technical sense, which includes preconditions and so forth)
  and for expressions appearing outside assertions.
--- 2805,2815 ----
  Management of Overflows in GNAT
  -------------------------------
  
! To deal with the portability issue and with the problem of
  mathematical versus run-time interpretation of the expressions in
  assertions, GNAT provides comprehensive control over the handling
! of intermediate overflows. It can operate in three modes, and
! in addition, permits separate selection of operating modes for
  the expressions within assertions (here the term 'assertions'
  is used in the technical sense, which includes preconditions and so forth)
  and for expressions appearing outside assertions.
*************** The three modes are:
*** 2745,2751 ****
    In this mode, all intermediate results for predefined arithmetic
    operators are computed using the base type, and the result must
    be in range of the base type. If this is not the
!   case then either an exception is raised (if overflow checks are
    enabled) or the execution is erroneous (if overflow checks are suppressed).
    This is the normal default mode.
  
--- 2821,2827 ----
    In this mode, all intermediate results for predefined arithmetic
    operators are computed using the base type, and the result must
    be in range of the base type. If this is not the
!   case, then either an exception is raised (if overflow checks are
    enabled) or the execution is erroneous (if overflow checks are suppressed).
    This is the normal default mode.
  
*************** The three modes are:
*** 2766,2772 ****
    improvement in space and time behavior.
  
    However, there are cases where ``Long_Long_Integer`` is not large
!   enough, consider the following example:
  
      .. code-block:: ada
  
--- 2842,2848 ----
    improvement in space and time behavior.
  
    However, there are cases where ``Long_Long_Integer`` is not large
!   enough. Consider the following example:
  
      .. code-block:: ada
  
*************** The three modes are:
*** 2776,2783 ****
    where ``A`` = ``B`` = ``C`` = ``D`` = ``Integer'Last``.
    Now the intermediate results are
    out of the range of ``Long_Long_Integer`` even though the final result
!   is in range and the precondition is True (from a mathematical point
!   of view). In such a case, operating in this mode, an overflow occurs
    for the intermediate computation (which is why this mode
    says *most* intermediate overflows are avoided). In this case,
    an exception is raised if overflow checks are enabled, and the
--- 2852,2859 ----
    where ``A`` = ``B`` = ``C`` = ``D`` = ``Integer'Last``.
    Now the intermediate results are
    out of the range of ``Long_Long_Integer`` even though the final result
!   is in range and the precondition is ``True`` from a mathematical point
!   of view. In such a case, operating in this mode, an overflow occurs
    for the intermediate computation (which is why this mode
    says *most* intermediate overflows are avoided). In this case,
    an exception is raised if overflow checks are enabled, and the
*************** The three modes are:
*** 2790,2796 ****
    mode, the above example with ``A**2 * B**2`` would
    not cause intermediate overflow, because the intermediate result
    would be evaluated using sufficient precision, and the result
!   of evaluating the precondition would be True.
  
    This mode has the advantage of avoiding any intermediate
    overflows, but at the expense of significant run-time overhead,
--- 2866,2872 ----
    mode, the above example with ``A**2 * B**2`` would
    not cause intermediate overflow, because the intermediate result
    would be evaluated using sufficient precision, and the result
!   of evaluating the precondition would be ``True``.
  
    This mode has the advantage of avoiding any intermediate
    overflows, but at the expense of significant run-time overhead,
*************** The three modes are:
*** 2800,2811 ****
    This mode provides cleaner semantics for assertions, since now
    the run-time behavior emulates true arithmetic behavior for the
    predefined arithmetic operators, meaning that there is never a
!   conflict between the mathematical view of the assertion, and its
    run-time behavior.
  
    Note that in this mode, the behavior is unaffected by whether or
    not overflow checks are suppressed, since overflow does not occur.
!   It is possible for gigantic intermediate expressions to raise
    ``Storage_Error`` as a result of attempting to compute the
    results of such expressions (e.g. ``Integer'Last ** Integer'Last``)
    but overflow is impossible.
--- 2876,2887 ----
    This mode provides cleaner semantics for assertions, since now
    the run-time behavior emulates true arithmetic behavior for the
    predefined arithmetic operators, meaning that there is never a
!   conflict between the mathematical view of the assertion and its
    run-time behavior.
  
    Note that in this mode, the behavior is unaffected by whether or
    not overflow checks are suppressed, since overflow does not occur.
!   Gigantic intermediate expressions can still raise
    ``Storage_Error`` as a result of attempting to compute the
    results of such expressions (e.g. ``Integer'Last ** Integer'Last``)
    but overflow is impossible.
*************** Note that these modes apply only to the
*** 2815,2831 ****
  arithmetic, membership, and comparison operators for signed integer
  arithmetic.
  
! For fixed-point arithmetic, checks can be suppressed. But if checks
! are enabled
! then fixed-point values are always checked for overflow against the
! base type for intermediate expressions (that is such checks always
  operate in the equivalent of ``STRICT`` mode).
  
  For floating-point, on nearly all architectures, ``Machine_Overflows``
! is False, and IEEE infinities are generated, so overflow exceptions
! are never raised. If you want to avoid infinities, and check that
! final results of expressions are in range, then you can declare a
! constrained floating-point type, and range checks will be carried
  out in the normal manner (with infinite values always failing all
  range checks).
  
--- 2891,2907 ----
  arithmetic, membership, and comparison operators for signed integer
  arithmetic.
  
! For fixed-point arithmetic, you suppress checks. But if checks
! are enabled,
! fixed-point values are always checked for overflow against the
! base type for intermediate expressions (i.e., such checks always
  operate in the equivalent of ``STRICT`` mode).
  
  For floating-point, on nearly all architectures, ``Machine_Overflows``
! is ``False``, and IEEE infinities are generated, so overflow exceptions
! are never raised. If you want to avoid infinities and check that
! final results of expressions are in range, you can declare a
! constrained floating-point type and range checks are carried
  out in the normal manner (with infinite values always failing all
  range checks).
  
*************** Specifying the Desired Mode
*** 2837,2845 ****
  
  .. index:: pragma Overflow_Mode
  
! The desired mode of for handling intermediate overflow can be specified using
  either the ``Overflow_Mode`` pragma or an equivalent compiler switch.
! The pragma has the form
  
    .. code-block:: ada
  
--- 2913,2922 ----
  
  .. index:: pragma Overflow_Mode
  
! You can specify
! the desired mode of for handling intermediate overflow using
  either the ``Overflow_Mode`` pragma or an equivalent compiler switch.
! The pragma has the form:
  
    .. code-block:: ada
  
*************** where ``MODE`` is one of
*** 2854,2862 ****
  The case is ignored, so ``MINIMIZED``, ``Minimized`` and
  ``minimized`` all have the same effect.
  
! If only the ``General`` parameter is present, then the given ``MODE`` applies
! to expressions both within and outside assertions. If both arguments
! are present, then ``General`` applies to expressions outside assertions,
  and ``Assertions`` applies to expressions within assertions. For example:
  
    .. code-block:: ada
--- 2931,2939 ----
  The case is ignored, so ``MINIMIZED``, ``Minimized`` and
  ``minimized`` all have the same effect.
  
! If you only specify the ``General`` parameter, the given ``MODE`` applies
! to expressions both within and outside assertions. If you specify both arguments,
! the value of ``General`` applies to expressions outside assertions,
  and ``Assertions`` applies to expressions within assertions. For example:
  
    .. code-block:: ada
*************** and ``Assertions`` applies to expression
*** 2864,2881 ****
       pragma Overflow_Mode
         (General => Minimized, Assertions => Eliminated);
  
! specifies that general expressions outside assertions be evaluated
! in 'minimize intermediate overflows' mode, and expressions within
  assertions be evaluated in 'eliminate intermediate overflows' mode.
  This is often a reasonable choice, avoiding excessive overhead
  outside assertions, but assuring a high degree of portability
! when importing code from another compiler, while incurring
  the extra overhead for assertion expressions to ensure that
  the behavior at run time matches the expected mathematical
  behavior.
  
  The ``Overflow_Mode`` pragma has the same scoping and placement
! rules as pragma ``Suppress``, so it can occur either as a
  configuration pragma, specifying a default for the whole
  program, or in a declarative scope, where it applies to the
  remaining declarations and statements in that scope.
--- 2941,2958 ----
       pragma Overflow_Mode
         (General => Minimized, Assertions => Eliminated);
  
! specifies that expressions outside assertions be evaluated
! in 'minimize intermediate overflows' mode and expressions within
  assertions be evaluated in 'eliminate intermediate overflows' mode.
  This is often a reasonable choice, avoiding excessive overhead
  outside assertions, but assuring a high degree of portability
! when importing code from another compiler while incurring
  the extra overhead for assertion expressions to ensure that
  the behavior at run time matches the expected mathematical
  behavior.
  
  The ``Overflow_Mode`` pragma has the same scoping and placement
! rules as pragma ``Suppress``, so you can use it either as a
  configuration pragma, specifying a default for the whole
  program, or in a declarative scope, where it applies to the
  remaining declarations and statements in that scope.
*************** or ``Unsuppress`` in the usual manner.
*** 2890,2898 ****
  .. index:: -gnato? (gcc)
  .. index:: -gnato?? (gcc)
  
! Additionally, a compiler switch :switch:`-gnato?` or :switch:`-gnato??`
! can be used to control the checking mode default (which can be subsequently
! overridden using pragmas).
  
  Here ``?`` is one of the digits ``1`` through ``3``:
  
--- 2967,2975 ----
  .. index:: -gnato? (gcc)
  .. index:: -gnato?? (gcc)
  
! Additionally, you can use the compiler switch :switch:`-gnato?` or
! :switch:`-gnato??` to control the checking mode default (which you can
! subsequently override using the above pragmas).
  
  Here ``?`` is one of the digits ``1`` through ``3``:
  
*************** Here ``?`` is one of the digits ``1`` th
*** 2902,2917 ****
    ``3``  eliminate intermediate overflows (``ELIMINATED``)
    ====== ======================================================
  
! As with the pragma, if only one digit appears then it applies to all
! cases; if two digits are given, then the first applies outside
! assertions, and the second within assertions. Thus the equivalent
  of the example pragma above would be
  :switch:`-gnato23`.
  
! If no digits follow the :switch:`-gnato`, then it is equivalent to
! :switch:`-gnato11`,
! causing all intermediate operations to be computed using the base
! type (``STRICT`` mode).
  
  
  .. _Default_Settings:
--- 2979,2993 ----
    ``3``  eliminate intermediate overflows (``ELIMINATED``)
    ====== ======================================================
  
! As with the pragma, if only one digit appears, it applies to all
! cases; if two digits are given, the first applies to expressions outside
! assertions and the second within assertions. Thus the equivalent
  of the example pragma above would be
  :switch:`-gnato23`.
  
! If you don't provide any digits following the :switch:`-gnato`, it's
! equivalent to :switch:`-gnato11`, causing all intermediate operations
! to be computed using the base type (``STRICT`` mode).
  
  
  .. _Default_Settings:
*************** which causes all computations both insid
*** 2929,2939 ****
  base type, and is equivalent to :switch:`-gnato` (with no digits following).
  
  The pragma ``Suppress (Overflow_Check)`` disables overflow
! checking, but it has no effect on the method used for computing
  intermediate results.
- 
  The pragma ``Unsuppress (Overflow_Check)`` enables overflow
! checking, but it has no effect on the method used for computing
  intermediate results.
  
  
--- 3005,3014 ----
  base type, and is equivalent to :switch:`-gnato` (with no digits following).
  
  The pragma ``Suppress (Overflow_Check)`` disables overflow
! checking but has no effect on the method used for computing
  intermediate results.
  The pragma ``Unsuppress (Overflow_Check)`` enables overflow
! checking but has no effect on the method used for computing
  intermediate results.
  
  
*************** intermediate results.
*** 2942,2956 ****
  Implementation Notes
  --------------------
  
! In practice on typical 64-bit machines, the ``MINIMIZED`` mode is
! reasonably efficient, and can be generally used. It also helps
! to ensure compatibility with code imported from some other
! compiler to GNAT.
  
  Setting all intermediate overflows checking (``STRICT`` mode)
  makes sense if you want to
! make sure that your code is compatible with any other possible
! Ada implementation. This may be useful in ensuring portability
  for code that is to be exported to some other compiler than GNAT.
  
  The Ada standard allows the reassociation of expressions at
--- 3017,3031 ----
  Implementation Notes
  --------------------
  
! In practice, on typical 64-bit machines, the ``MINIMIZED`` mode is
! reasonably efficient and you can generally use it. It also helps
! to ensure compatibility with code imported from other
! compilers to GNAT.
  
  Setting all intermediate overflows checking (``STRICT`` mode)
  makes sense if you want to
! make sure your code is compatible with any other
! Ada implementations. You may find this useful in ensuring portability
  for code that is to be exported to some other compiler than GNAT.
  
  The Ada standard allows the reassociation of expressions at
*************** still has the same bounds as its associa
*** 2982,2988 ****
  type at run-time.
  
  Currently, the ``ELIMINATED`` mode is only available on target
! platforms for which ``Long_Long_Integer`` is 64-bits (nearly all GNAT
  platforms).
  
  
--- 3057,3063 ----
  type at run-time.
  
  Currently, the ``ELIMINATED`` mode is only available on target
! platforms for which ``Long_Long_Integer`` is at least 64-bits (nearly all GNAT
  platforms).
  
  
*************** Performing Dimensionality Analysis in GN
*** 2994,3018 ****
  
  .. index:: Dimensionality analysis
  
! The GNAT compiler supports dimensionality checking. The user can
! specify physical units for objects, and the compiler will verify that uses
! of these objects are compatible with their dimensions, in a fashion that is
  familiar to engineering practice. The dimensions of algebraic expressions
  (including powers with static exponents) are computed from their constituents.
  
  .. index:: Dimension_System aspect
  .. index:: Dimension aspect
  
! This feature depends on Ada 2012 aspect specifications, and is available from
! version 7.0.1 of GNAT onwards.
  The GNAT-specific aspect ``Dimension_System``
  allows you to define a system of units; the aspect ``Dimension``
! then allows the user to declare dimensioned quantities within a given system.
  (These aspects are described in the *Implementation Defined Aspects*
! chapter of the *GNAT Reference Manual*).
  
  The major advantage of this model is that it does not require the declaration of
! multiple operators for all possible combinations of types: it is only necessary
  to use the proper subtypes in object declarations.
  
  .. index:: System.Dim.Mks package (GNAT library)
--- 3069,3093 ----
  
  .. index:: Dimensionality analysis
  
! The GNAT compiler supports dimensionality checking. You can
! specify physical units for objects and the compiler verifies that uses
! of these objects are compatible with their dimension, in a fashion that is
  familiar to engineering practice. The dimensions of algebraic expressions
  (including powers with static exponents) are computed from their constituents.
  
  .. index:: Dimension_System aspect
  .. index:: Dimension aspect
  
! This feature depends on Ada 2012 aspect specifications and is available for
! versions 7.0.1 and later of GNAT.
  The GNAT-specific aspect ``Dimension_System``
  allows you to define a system of units; the aspect ``Dimension``
! allows you to declare dimensioned quantities within a given system.
  (These aspects are described in the *Implementation Defined Aspects*
! chapter of the :title:`GNAT Reference Manual`).
  
  The major advantage of this model is that it does not require the declaration of
! multiple operators for all possible combinations of types: you is only need
  to use the proper subtypes in object declarations.
  
  .. index:: System.Dim.Mks package (GNAT library)
*************** to use the proper subtypes in object dec
*** 3020,3028 ****
  
  The simplest way to impose dimensionality checking on a computation is to make
  use of one of the instantiations of the package ``System.Dim.Generic_Mks``, which
! are part of the GNAT library. This generic package defines a floating-point
  type ``MKS_Type``, for which a sequence of dimension names are specified,
! together with their conventional abbreviations.  The following should be read
  together with the full specification of the package, in file
  :file:`s-digemk.ads`.
  
--- 3095,3103 ----
  
  The simplest way to impose dimensionality checking on a computation is to make
  use of one of the instantiations of the package ``System.Dim.Generic_Mks``, which
! is part of the GNAT library. This generic package defines a floating-point
  type ``MKS_Type``, for which a sequence of dimension names are specified,
! together with their conventional abbreviations.  You should read the following
  together with the full specification of the package, in file
  :file:`s-digemk.ads`.
  
*************** GNAT library:
*** 3082,3088 ****
  * ``System.Dim.Mks`` based on ``Long_Long_Float`` defined in :file:`s-dimmks.ads`.
  
  Using one of these packages, you can then define a derived unit by providing
! the aspect that specifies its dimensions within the MKS system, as well as the
  string to be used for output of a value of that unit:
  
    .. code-block:: ada
--- 3157,3163 ----
  * ``System.Dim.Mks`` based on ``Long_Long_Float`` defined in :file:`s-dimmks.ads`.
  
  Using one of these packages, you can then define a derived unit by providing
! the aspect that specifies its dimensions within the MKS system as well as the
  string to be used for output of a value of that unit:
  
    .. code-block:: ada
*************** string to be used for output of a value
*** 3093,3099 ****
                            Second => -2,
                            others => 0);
  
! Here is a complete example of use:
  
    .. code-block:: ada
  
--- 3168,3174 ----
                            Second => -2,
                            others => 0);
  
! Here's a complete example:
  
    .. code-block:: ada
  
*************** are rejected with the following diagnose
*** 3144,3150 ****
          >>> left-hand side has dimension [L]
          >>> right-hand side has dimension [M]
  
! The dimensions of an expression are properly displayed, even if there is
  no explicit subtype for it. If we add to the program:
  
    .. code-block:: ada
--- 3219,3225 ----
          >>> left-hand side has dimension [L]
          >>> right-hand side has dimension [M]
  
! The dimensions of an expression are properly displayed even if there is
  no explicit subtype for it. If we add to the program:
  
    .. code-block:: ada
*************** no explicit subtype for it. If we add to
*** 3153,3159 ****
          Put (G * T, Aft =>2, Exp =>0);
          Put_Line ("");
  
! then the output includes:
  
    ::
  
--- 3228,3234 ----
          Put (G * T, Aft =>2, Exp =>0);
          Put_Line ("");
  
! the output includes:
  
    ::
  
*************** mathematical definitions for the vector
*** 3207,3213 ****
  
  * :samp:`DV({op expr})`, where *op* is a unary operator, is :samp:`DV({expr})`
  
! * :samp:`DV({expr1 op expr2})` where *op* is "+" or "-" is :samp:`DV({expr1})`
    provided that :samp:`DV({expr1})` = :samp:`DV({expr2})`.
    If this condition is not met then the construct is illegal.
  
--- 3282,3288 ----
  
  * :samp:`DV({op expr})`, where *op* is a unary operator, is :samp:`DV({expr})`
  
! * :samp:`DV({expr1 op expr2})`, where *op* is "+" or "-", is :samp:`DV({expr1})`
    provided that :samp:`DV({expr1})` = :samp:`DV({expr2})`.
    If this condition is not met then the construct is illegal.
  
*************** combine a dimensioned and dimensionless
*** 3226,3232 ****
  ``Acceleration``.
  
  The dimensionality checks for relationals use the same rules as
! for "+" and "-", except when comparing to a literal; thus
  
    .. code-block:: ada
  
--- 3301,3307 ----
  ``Acceleration``.
  
  The dimensionality checks for relationals use the same rules as
! for "+" and "-" except when comparing to a literal; thus
  
    .. code-block:: ada
  
*************** and is thus illegal, but
*** 3244,3283 ****
  
          acc > 10.0
  
! is accepted with a warning. Analogously a conditional expression requires the
  same dimension vector for each branch (with no exception for literals).
  
  The dimension vector of a type conversion :samp:`T({expr})` is defined
  as follows, based on the nature of ``T``:
  
! * If ``T`` is a dimensioned subtype then :samp:`DV(T({expr}))` is ``DV(T)``
    provided that either *expr* is dimensionless or
    :samp:`DV(T)` = :samp:`DV({expr})`. The conversion is illegal
    if *expr* is dimensioned and :samp:`DV({expr})` /= ``DV(T)``.
    Note that vector equality does not require that the corresponding
    Unit_Names be the same.
  
!   As a consequence of the above rule, it is possible to convert between
!   different dimension systems that follow the same international system
!   of units, with the seven physical components given in the standard order
!   (length, mass, time, etc.). Thus a length in meters can be converted to
!   a length in inches (with a suitable conversion factor) but cannot be
!   converted, for example, to a mass in pounds.
  
  * If ``T`` is the base type for *expr* (and the dimensionless root type of
    the dimension system), then :samp:`DV(T({expr}))` is ``DV(expr)``.
    Thus, if *expr* is of a dimensioned subtype of ``T``, the conversion may
    be regarded as a "view conversion" that preserves dimensionality.
  
!   This rule makes it possible to write generic code that can be instantiated
!   with compatible dimensioned subtypes.  The generic unit will contain
    conversions that will consequently be present in instantiations, but
    conversions to the base type will preserve dimensionality and make it
    possible to write generic code that is correct with respect to
    dimensionality.
  
  * Otherwise (i.e., ``T`` is neither a dimensioned subtype nor a dimensionable
!   base type), :samp:`DV(T({expr}))` is the empty vector. Thus a dimensioned
    value can be explicitly converted to a non-dimensioned subtype, which
    of course then escapes dimensionality analysis.
  
--- 3319,3358 ----
  
          acc > 10.0
  
! is accepted with a warning. Analogously, a conditional expression requires the
  same dimension vector for each branch (with no exception for literals).
  
  The dimension vector of a type conversion :samp:`T({expr})` is defined
  as follows, based on the nature of ``T``:
  
! * If ``T`` is a dimensioned subtype, then :samp:`DV(T({expr}))` is ``DV(T)``
    provided that either *expr* is dimensionless or
    :samp:`DV(T)` = :samp:`DV({expr})`. The conversion is illegal
    if *expr* is dimensioned and :samp:`DV({expr})` /= ``DV(T)``.
    Note that vector equality does not require that the corresponding
    Unit_Names be the same.
  
!   As a consequence of the above rule, you can convert between
!   different dimension systems that follow the same international
!   system of units, with the seven physical components given in the
!   standard order (length, mass, time, etc.). Thus, you can convert a
!   length in meters to a length in inches (with a suitable conversion
!   factor) but not, for example, to a mass in pounds.
  
  * If ``T`` is the base type for *expr* (and the dimensionless root type of
    the dimension system), then :samp:`DV(T({expr}))` is ``DV(expr)``.
    Thus, if *expr* is of a dimensioned subtype of ``T``, the conversion may
    be regarded as a "view conversion" that preserves dimensionality.
  
!   This rule means you can write generic code that can be instantiated
!   with compatible dimensioned subtypes.  You include in the generic unit
    conversions that will consequently be present in instantiations, but
    conversions to the base type will preserve dimensionality and make it
    possible to write generic code that is correct with respect to
    dimensionality.
  
  * Otherwise (i.e., ``T`` is neither a dimensioned subtype nor a dimensionable
!   base type), :samp:`DV(T({expr}))` is the empty vector. Thus, a dimensioned
    value can be explicitly converted to a non-dimensioned subtype, which
    of course then escapes dimensionality analysis.
  
*************** An assignment statement
*** 3290,3310 ****
  
           Source := Target;
  
! requires ``DV(Source)`` = ``DV(Target)``, and analogously for parameter
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
! When using dimensioned types with elementary functions it is necessary to
  instantiate the ``Ada.Numerics.Generic_Elementary_Functions`` package using
! the ``Mks_Type`` and not any of the derived subtypes such as ``Distance``.
! For functions such as ``Sqrt`` the dimensional analysis will fail when using
  the subtypes because both the parameter and return are of the same type.
  
  An example instantiation
  
    .. code-block:: ada
!   
!         package Mks_Numerics is new 
             Ada.Numerics.Generic_Elementary_Functions (System.Dim.Mks.Mks_Type);
  
  .. _Stack_Related_Facilities:
--- 3365,3385 ----
  
           Source := Target;
  
! requires ``DV(Source)`` = ``DV(Target)`` and analogously for parameter
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
! When using dimensioned types with elementary functions, you need not
  instantiate the ``Ada.Numerics.Generic_Elementary_Functions`` package using
! the ``Mks_Type`` nor for any of the derived subtypes such as ``Distance``.
! For functions such as ``Sqrt``, the dimensional analysis will fail when using
  the subtypes because both the parameter and return are of the same type.
  
  An example instantiation
  
    .. code-block:: ada
! 
!         package Mks_Numerics is new
             Ada.Numerics.Generic_Elementary_Functions (System.Dim.Mks.Mks_Type);
  
  .. _Stack_Related_Facilities:
*************** Stack Overflow Checking
*** 3327,3333 ****
  
  For most operating systems, ``gcc`` does not perform stack overflow
  checking by default. This means that if the main environment task or
! some other task exceeds the available stack space, then unpredictable
  behavior will occur. Most native systems offer some level of protection by
  adding a guard page at the end of each task stack. This mechanism is usually
  not enough for dealing properly with stack overflow situations because
--- 3402,3408 ----
  
  For most operating systems, ``gcc`` does not perform stack overflow
  checking by default. This means that if the main environment task or
! some other task exceeds the available stack space, unpredictable
  behavior will occur. Most native systems offer some level of protection by
  adding a guard page at the end of each task stack. This mechanism is usually
  not enough for dealing properly with stack overflow situations because
*************** guard page is hit, there may not be any
*** 3337,3343 ****
  the exception propagation code. Enabling stack checking avoids
  such situations.
  
! To activate stack checking, compile all units with the ``gcc`` option
  :switch:`-fstack-check`. For example:
  
    ::
--- 3412,3418 ----
  the exception propagation code. Enabling stack checking avoids
  such situations.
  
! To activate stack checking, compile all units with the ``gcc`` switch
  :switch:`-fstack-check`. For example:
  
    ::
*************** To activate stack checking, compile all
*** 3347,3363 ****
  Units compiled with this option will generate extra instructions to check
  that any use of the stack (for procedure calls or for declaring local
  variables in declare blocks) does not exceed the available stack space.
! If the space is exceeded, then a ``Storage_Error`` exception is raised.
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the ``-d`` bind switch
! (:ref:`Switches_for_gnatbind`). Task specific stack sizes may be set using the
  ``Storage_Size`` pragma.
  
  For the environment task, the stack size is determined by the operating system.
  Consequently, to modify the size of the environment task please refer to your
  operating system documentation.
  
  
  .. _Static_Stack_Usage_Analysis:
  
--- 3422,3440 ----
  Units compiled with this option will generate extra instructions to check
  that any use of the stack (for procedure calls or for declaring local
  variables in declare blocks) does not exceed the available stack space.
! If the space is exceeded, a ``Storage_Error`` exception is raised.
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the ``-d`` bind switch
! (:ref:`Switches_for_gnatbind`). You can set task specific stack sizes using the
  ``Storage_Size`` pragma.
  
  For the environment task, the stack size is determined by the operating system.
  Consequently, to modify the size of the environment task please refer to your
  operating system documentation.
  
+ When using the LLVM back end, this switch doesn't perform full stack overflow
+ checking, but just checks for very large local dynamic allocations.
  
  .. _Static_Stack_Usage_Analysis:
  
*************** Static Stack Usage Analysis
*** 3368,3376 ****
  
  .. index:: -fstack-usage
  
! A unit compiled with ``-fstack-usage`` will generate an extra file
  that specifies
! the maximum amount of stack used, on a per-function basis.
  The file has the same
  basename as the target object file with a :file:`.su` extension.
  Each line of this file is made up of three fields:
--- 3445,3453 ----
  
  .. index:: -fstack-usage
  
! A unit compiled with the :switch:`-fstack-usage` switch generate an extra file
  that specifies
! the maximum amount of stack used on a per-function basis.
  The file has the same
  basename as the target object file with a :file:`.su` extension.
  Each line of this file is made up of three fields:
*************** of the function stack analysis. When it
*** 3395,3403 ****
  means that the second field is a reliable maximum of the function stack
  utilization.
  
! A unit compiled with ``-Wstack-usage`` will issue a warning for each
! subprogram whose stack usage might be larger than the specified amount of
! bytes.  The wording is in keeping with the qualifier documented above.
  
  
  .. _Dynamic_Stack_Usage_Analysis:
--- 3472,3483 ----
  means that the second field is a reliable maximum of the function stack
  utilization.
  
! Compilation of a unit with the :switch:`-Wstack-usage` switch will
! issue a warning for each subprogram whose stack usage might be larger
! than the specified amount of bytes.  The wording of that warning is
! consistent with that in the file documented above.
! 
! This is not supported by the LLVM back end.
  
  
  .. _Dynamic_Stack_Usage_Analysis:
*************** bytes.  The wording is in keeping with t
*** 3405,3411 ****
  Dynamic Stack Usage Analysis
  ----------------------------
  
! It is possible to measure the maximum amount of stack used by a task, by
  adding a switch to ``gnatbind``, as:
  
    ::
--- 3485,3491 ----
  Dynamic Stack Usage Analysis
  ----------------------------
  
! You can measure the maximum amount of stack used by a task by
  adding a switch to ``gnatbind``, as:
  
    ::
*************** Note that this switch is not compatible
*** 3418,3433 ****
  Valgrind and DrMemory; they will report errors.
  
  It is not always convenient to output the stack usage when the program
! is still running. Hence, it is possible to delay this output until program
! termination. for a given number of tasks specified as the argument of the
! ``-u`` option. For instance:
  
    ::
  
       $ gnatbind -u100 file
  
! will buffer the stack usage information of the first 100 tasks to terminate and
! output this info at program termination. Results are displayed in four
  columns:
  
    ::
--- 3498,3513 ----
  Valgrind and DrMemory; they will report errors.
  
  It is not always convenient to output the stack usage when the program
! is still running. Hence, you can delay this output until the
! termination of the number of tasks specified as the argument of the
! :switch:`-u` switch. For example:
  
    ::
  
       $ gnatbind -u100 file
  
! buffers the stack usage information of the first 100 tasks to terminate and
! outputs it when the program terminates. Results are displayed in four
  columns:
  
    ::
*************** where:
*** 3447,3456 ****
    is not entirely analyzed, and it's not possible to know exactly how
    much has actually been used.
  
! By default the environment task stack, the stack that contains the main unit,
! is not processed. To enable processing of the environment task stack, the
! environment variable GNAT_STACK_LIMIT needs to be set to the maximum size of
! the environment task stack. This amount is given in kilobytes. For example:
  
    ::
  
--- 3527,3537 ----
    is not entirely analyzed, and it's not possible to know exactly how
    much has actually been used.
  
! By default, ``gnatbind`` does not process the environment task stack,
! the stack that contains the main unit. To enable processing of the
! environment task stack, set the environment variable GNAT_STACK_LIMIT
! to the maximum size of the environment task stack. This amount is
! given in kilobytes. For example:
  
    ::
  
*************** the environment task stack. This amount
*** 3459,3464 ****
--- 3540,3547 ----
  would specify to the analyzer that the environment task stack has a limit
  of 1.6 megabytes. Any stack usage beyond this will be ignored by the analysis.
  
+ This is not suppored by the LLVM back end.
+ 
  The package ``GNAT.Task_Stack_Usage`` provides facilities to get
  stack-usage reports at run time. See its body for the details.
  
*************** stack-usage reports at run time. See its
*** 3469,3475 ****
  Memory Management Issues
  ========================
  
! This section describes some useful memory pools provided in the GNAT library
  and in particular the GNAT Debug Pool facility, which can be used to detect
  incorrect uses of access values (including 'dangling references').
  
--- 3552,3558 ----
  Memory Management Issues
  ========================
  
! This section describes some useful memory pools provided in the GNAT library,
  and in particular the GNAT Debug Pool facility, which can be used to detect
  incorrect uses of access values (including 'dangling references').
  
*************** Some Useful Memory Pools
*** 3486,3499 ****
  .. index:: Memory Pool
  .. index:: storage, pool
  
! The ``System.Pool_Global`` package offers the Unbounded_No_Reclaim_Pool
  storage pool. Allocations use the standard system call ``malloc`` while
  deallocations use the standard system call ``free``. No reclamation is
  performed when the pool goes out of scope. For performance reasons, the
  standard default Ada allocators/deallocators do not use any explicit storage
  pools but if they did, they could use this storage pool without any change in
  behavior. That is why this storage pool is used  when the user
! manages to make the default implicit allocator explicit as in this example:
  
    .. code-block:: ada
  
--- 3569,3582 ----
  .. index:: Memory Pool
  .. index:: storage, pool
  
! The ``System.Pool_Global`` package provides the ``Unbounded_No_Reclaim_Pool``
  storage pool. Allocations use the standard system call ``malloc`` while
  deallocations use the standard system call ``free``. No reclamation is
  performed when the pool goes out of scope. For performance reasons, the
  standard default Ada allocators/deallocators do not use any explicit storage
  pools but if they did, they could use this storage pool without any change in
  behavior. That is why this storage pool is used  when the user
! makes the default implicit allocator explicit as in this example:
  
    .. code-block:: ada
  
*************** manages to make the default implicit all
*** 3505,3512 ****
         -- the above is equivalent to
         for T2'Storage_Pool use System.Pool_Global.Global_Pool_Object;
  
! The ``System.Pool_Local`` package offers the ``Unbounded_Reclaim_Pool`` storage
! pool. The allocation strategy is similar to ``Pool_Local``
  except that the all
  storage allocated with this pool is reclaimed when the pool object goes out of
  scope. This pool provides a explicit mechanism similar to the implicit one
--- 3588,3595 ----
         -- the above is equivalent to
         for T2'Storage_Pool use System.Pool_Global.Global_Pool_Object;
  
! The ``System.Pool_Local`` package provides the ``Unbounded_Reclaim_Pool`` storage
! pool. Its allocation strategy is similar to ``Pool_Local``
  except that the all
  storage allocated with this pool is reclaimed when the pool object goes out of
  scope. This pool provides a explicit mechanism similar to the implicit one
*************** The whole storage for the pool is
*** 3541,3547 ****
  allocated at once, usually on the stack at the point where the access type is
  elaborated. It is automatically reclaimed when exiting the scope where the
  access type is defined. This package is not intended to be used directly by the
! user and it is implicitly used for each such declaration:
  
    .. code-block:: ada
  
--- 3624,3631 ----
  allocated at once, usually on the stack at the point where the access type is
  elaborated. It is automatically reclaimed when exiting the scope where the
  access type is defined. This package is not intended to be used directly by the
! user; it is implicitly used for each declaration with a specified
! ``Storage_Size``:
  
    .. code-block:: ada
  
*************** The GNAT Debug Pool Facility
*** 3557,3570 ****
  .. index:: Debug Pool
  .. index:: storage, pool, memory corruption
  
! The use of unchecked deallocation and unchecked conversion can easily
  lead to incorrect memory references. The problems generated by such
! references are usually difficult to tackle because the symptoms can be
  very remote from the origin of the problem. In such cases, it is
  very helpful to detect the problem as early as possible. This is the
  purpose of the Storage Pool provided by ``GNAT.Debug_Pools``.
  
! In order to use the GNAT specific debugging pool, the user must
  associate a debug pool object with each of the access types that may be
  related to suspected memory problems. See Ada Reference Manual 13.11.
  
--- 3641,3654 ----
  .. index:: Debug Pool
  .. index:: storage, pool, memory corruption
  
! Using unchecked deallocation and unchecked conversion can easily
  lead to incorrect memory references. The problems generated by such
! references are usually difficult to find because the symptoms can be
  very remote from the origin of the problem. In such cases, it is
  very helpful to detect the problem as early as possible. This is the
  purpose of the Storage Pool provided by ``GNAT.Debug_Pools``.
  
! In order to use the GNAT specific debugging pool, you must
  associate a debug pool object with each of the access types that may be
  related to suspected memory problems. See Ada Reference Manual 13.11.
  
*************** related to suspected memory problems. Se
*** 3576,3587 ****
  
  ``GNAT.Debug_Pools`` is derived from a GNAT-specific kind of
  pool: the ``Checked_Pool``. Such pools, like standard Ada storage pools,
! allow the user to redefine allocation and deallocation strategies. They
! also provide a checkpoint for each dereference, through the use of
  the primitive operation ``Dereference`` which is implicitly called at
  each dereference of an access value.
  
! Once an access type has been associated with a debug pool, operations on
  values of the type may raise four distinct exceptions,
  which correspond to four potential kinds of memory corruption:
  
--- 3660,3671 ----
  
  ``GNAT.Debug_Pools`` is derived from a GNAT-specific kind of
  pool: the ``Checked_Pool``. Such pools, like standard Ada storage pools,
! allow you to redefine allocation and deallocation strategies. They
! also provide a checkpoint for each dereference through the use of
  the primitive operation ``Dereference`` which is implicitly called at
  each dereference of an access value.
  
! Once you have associated an access type with a debug pool, operations on
  values of the type may raise four distinct exceptions,
  which correspond to four potential kinds of memory corruption:
  
*************** which correspond to four potential kinds
*** 3593,3609 ****
  For types associated with a Debug_Pool, dynamic allocation is performed using
  the standard GNAT allocation routine. References to all allocated chunks of
  memory are kept in an internal dictionary. Several deallocation strategies are
! provided, whereupon the user can choose to release the memory to the system,
  keep it allocated for further invalid access checks, or fill it with an easily
  recognizable pattern for debug sessions. The memory pattern is the old IBM
  hexadecimal convention: ``16#DEADBEEF#``.
  
! See the documentation in the file g-debpoo.ads for more information on the
! various strategies.
  
  Upon each dereference, a check is made that the access value denotes a
! properly allocated memory location. Here is a complete example of use of
! ``Debug_Pools``, that includes typical instances of  memory corruption:
  
    .. code-block:: ada
  
--- 3677,3693 ----
  For types associated with a Debug_Pool, dynamic allocation is performed using
  the standard GNAT allocation routine. References to all allocated chunks of
  memory are kept in an internal dictionary. Several deallocation strategies are
! provided, allowing you to choose to release the memory to the system,
  keep it allocated for further invalid access checks, or fill it with an easily
  recognizable pattern for debug sessions. The memory pattern is the old IBM
  hexadecimal convention: ``16#DEADBEEF#``.
  
! See the documentation in the file :file:`g-debpoo.ads` for more
! information on the various strategies.
  
  Upon each dereference, a check is made that the access value denotes a
! properly allocated memory location. Here's a complete example of use of
! ``Debug_Pools``, which includes typical instances of  memory corruption:
  
    .. code-block:: ada
  
*************** execution of this erroneous program:
*** 3697,3704 ****
    The ``gnatmem`` utility monitors dynamic allocation and
    deallocation activity in a program, and displays information about
    incorrect deallocations and possible sources of memory leaks.
!   It is designed to work for fixed-position executables in association
!   with a static runtime library only and in this context provides three
    types of information:
  
    * General information concerning memory management, such as the total
--- 3781,3788 ----
    The ``gnatmem`` utility monitors dynamic allocation and
    deallocation activity in a program, and displays information about
    incorrect deallocations and possible sources of memory leaks.
!   It is designed to work for fixed-position executables that use
!   a static runtime library and, in this context, provides three
    types of information:
  
    * General information concerning memory management, such as the total
*************** execution of this erroneous program:
*** 3706,3713 ****
      memory and the high water mark, i.e., the largest amount of allocated
      memory in the course of program execution.
  
!   * Backtraces for all incorrect deallocations, that is to say deallocations
!     which do not correspond to a valid allocation.
  
    * Information on each allocation that is potentially the origin of a memory
      leak.
--- 3790,3797 ----
      memory and the high water mark, i.e., the largest amount of allocated
      memory in the course of program execution.
  
!   * Backtraces for all incorrect deallocations, which are deallocations
!     that do not correspond to a valid allocation.
  
    * Information on each allocation that is potentially the origin of a memory
      leak.
*************** execution of this erroneous program:
*** 3729,3764 ****
  
         $ gnatmem [ switches ] [ DEPTH ] user_program
  
!   The user program must be linked with the instrumented version of the
!   allocation and deallocation routines. This is done by linking with the
    :file:`libgmem.a` library. For correct symbolic backtrace information,
!   the user program should also both be compiled with debugging options
!   (see :ref:`Switches_for_gcc`) and be linked at a fixed position with
!   :switch:`-no-pie`. For example to build :file:`my_program` with
    ``gnatmake``:
  
      ::
  
         $ gnatmake my_program -g -largs -lgmem -no-pie
  
!   As library :file:`libgmem.a` contains an alternate body for package
!   ``System.Memory``, :file:`s-memory.adb` should not be compiled and linked
!   when an executable is linked with library :file:`libgmem.a`. It is then not
!   recommended to use ``gnatmake`` with switch :switch:`-a`.
  
    When :file:`my_program` is executed, the file :file:`gmem.out` is produced.
    This file contains information about all allocations and deallocations
    performed by the program. It is produced by the instrumented allocations and
    deallocations routines and will be used by ``gnatmem``.
  
!   In order to produce symbolic backtrace information for allocations and
    deallocations performed by the GNAT run-time library, you need to use a
    version of that library that has been compiled with the :switch:`-g` switch
    (see :ref:`Rebuilding_the_GNAT_Run-Time_Library`).
  
!   ``gnatmem`` must be supplied with the :file:`gmem.out` file and the executable to
    examine. If the location of :file:`gmem.out` file was not explicitly supplied by
!   :switch:`-i` switch, gnatmem will assume that this file can be found in the
    current directory. For example, after you have executed :file:`my_program`,
    :file:`gmem.out` can be analyzed by ``gnatmem`` using the command:
  
--- 3813,3848 ----
  
         $ gnatmem [ switches ] [ DEPTH ] user_program
  
!   You must link your program with the instrumented version of the
!   allocation and deallocation routines. You do this by linking with the
    :file:`libgmem.a` library. For correct symbolic backtrace information,
!   you should also compile your program with debugging options
!   (see :ref:`Switches_for_gcc`) and be linked at a fixed position (with
!   :switch:`-no-pie`). For example to build :file:`my_program` with
    ``gnatmake``:
  
      ::
  
         $ gnatmake my_program -g -largs -lgmem -no-pie
  
!   Because library :file:`libgmem.a` contains an alternate body for package
!   ``System.Memory``, you should not compile and link :file:`s-memory.adb`
!   when you link an executable with library :file:`libgmem.a`. In that case,
!   we don't recommended specifying switch :switch:`-a` to ``gnatmake``.
  
    When :file:`my_program` is executed, the file :file:`gmem.out` is produced.
    This file contains information about all allocations and deallocations
    performed by the program. It is produced by the instrumented allocations and
    deallocations routines and will be used by ``gnatmem``.
  
!   To produce symbolic backtrace information for allocations and
    deallocations performed by the GNAT run-time library, you need to use a
    version of that library that has been compiled with the :switch:`-g` switch
    (see :ref:`Rebuilding_the_GNAT_Run-Time_Library`).
  
!   You must supply ``gnatmem``  with the :file:`gmem.out` file and the executable to
    examine. If the location of :file:`gmem.out` file was not explicitly supplied by
!   :switch:`-i` switch, ``gnatmem`` assumes that this file can be found in the
    current directory. For example, after you have executed :file:`my_program`,
    :file:`gmem.out` can be analyzed by ``gnatmem`` using the command:
  
*************** execution of this erroneous program:
*** 3794,3807 ****
          .
  
    The first block of output gives general information. In this case, the
!   Ada construct ``new`` was executed 45 times, and only 6 calls to an
!   Unchecked_Deallocation routine occurred.
  
!   Subsequent paragraphs display  information on all allocation roots.
!   An allocation root is a specific point in the execution of the program
    that generates some dynamic allocation, such as a ``new``
    construct. This root is represented by an execution backtrace (or subprogram
!   call stack). By default the backtrace depth for allocations roots is 1, so
    that a root corresponds exactly to a source location. The backtrace can
    be made deeper, to make the root more specific.
  
--- 3878,3891 ----
          .
  
    The first block of output gives general information. In this case, the
!   Ada construct ``new`` was executed 45 times and only 6 calls to an
!   ``Unchecked_Deallocation`` routine occurred.
  
!   Subsequent paragraphs display information on all allocation roots.
!   An *allocation root* is a specific point in the execution of the program
    that generates some dynamic allocation, such as a ``new``
    construct. This root is represented by an execution backtrace (or subprogram
!   call stack). By default, the backtrace depth for allocations roots is 1, so
    that a root corresponds exactly to a source location. The backtrace can
    be made deeper, to make the root more specific.
  
*************** execution of this erroneous program:
*** 3814,3872 ****
  
    .. index:: -q (gnatmem)
  
!   :samp:`-q`
      Quiet. Gives the minimum output needed to identify the origin of the
      memory leaks. Omits statistical information.
  
  
    .. index:: DEPTH switch (gnatmem)
  
!   :samp:`{DEPTH}`
      ``DEPTH`` is an integer literal (usually between 1 and 10) which controls
      the depth of the backtraces defining allocation root. The default value for
      DEPTH is 1. The deeper the backtrace, the more precise the localization of
      the root. Note that the total number of roots can depend on this
!     parameter, in other words there may be more roots when the requested
!     backtrace depth is higher. This parameter must be specified *before* the
      name of the executable to be analyzed, to avoid ambiguity.
  
  
    .. index:: -b (gnatmem)
  
!   :samp:`-b {N}`
      This switch has the same effect as just a depth parameter ``N``.
  
  
    .. index:: -i (gnatmem)
  
!   :samp:`-i {file}`
      Do the ``gnatmem`` processing starting from :file:`file`, rather than
      :file:`gmem.out` in the current directory.
  
  
    .. index:: -m (gnatmem)
  
!   :samp:`-m {n}`
      This switch causes ``gnatmem`` to mask the allocation roots that have less
!     than n leaks.  The default value is 1. Specifying the value of 0 will allow
      examination of even the roots that did not result in leaks.
  
  
    .. index:: -s (gnatmem)
  
!   :samp:`-s {order}`
!     This switch causes ``gnatmem`` to sort the allocation roots according to the
!     specified order of sort criteria, each identified by a single letter. The
!     currently supported criteria are ``n``, ``h``, and ``w`` standing respectively for
!     number of unfreed allocations, high watermark, and final watermark
!     corresponding to a specific root. The default order is ``nwh``.
  
  
    .. index:: -t (gnatmem)
  
!   :samp:`-t`
      This switch causes memory allocated size to be always output in bytes.
!     Default ``gnatmem`` behavior is to show memory sizes less then 1 kilobyte
      in bytes, from 1 kilobyte till 1 megabyte in kilobytes and the rest in
      megabytes.
  
--- 3898,3957 ----
  
    .. index:: -q (gnatmem)
  
!   :switch:`-q`
      Quiet. Gives the minimum output needed to identify the origin of the
      memory leaks. Omits statistical information.
  
  
    .. index:: DEPTH switch (gnatmem)
  
!   :switch:`{DEPTH}`
      ``DEPTH`` is an integer literal (usually between 1 and 10) which controls
      the depth of the backtraces defining allocation root. The default value for
      DEPTH is 1. The deeper the backtrace, the more precise the localization of
      the root. Note that the total number of roots can depend on this
!     parameter; in other words there may be more roots when the requested
!     backtrace depth is higher. You must specify this parameter *before* the
      name of the executable to be analyzed, to avoid ambiguity.
  
  
    .. index:: -b (gnatmem)
  
!   :switch:`-b {N}`
      This switch has the same effect as just a depth parameter ``N``.
  
  
    .. index:: -i (gnatmem)
  
!   :switch:`-i {file}`
      Do the ``gnatmem`` processing starting from :file:`file`, rather than
      :file:`gmem.out` in the current directory.
  
  
    .. index:: -m (gnatmem)
  
!   :switch:`-m {n}`
      This switch causes ``gnatmem`` to mask the allocation roots that have less
!     than ``n`` leaks.  The default value is 1. Specifying the value of 0 will allow
      examination of even the roots that did not result in leaks.
  
  
    .. index:: -s (gnatmem)
  
!   :switch:`-s {order}`
!     This switch causes ``gnatmem`` to sort the allocation roots
!     according to the specified sort criteria, each identified by a
!     single letter. The currently supported criteria are ``n``, ``h``,
!     and ``w`` representing, respectively, the number of unfreed
!     allocations, the high watermark, and the final watermark corresponding to
!     a specific root. The default order is ``nwh``.
  
  
    .. index:: -t (gnatmem)
  
!   :switch:`-t`
      This switch causes memory allocated size to be always output in bytes.
!     The default ``gnatmem`` behavior is to show memory sizes less then 1 kilobyte
      in bytes, from 1 kilobyte till 1 megabyte in kilobytes and the rest in
      megabytes.
  
*************** execution of this erroneous program:
*** 3918,3936 ****
  
         $ gnatmake -g test_gm -largs -lgmem
  
!   Then we execute the program as usual:
  
      ::
  
         $ test_gm
  
!   Then ``gnatmem`` is invoked simply with
  
      ::
  
         $ gnatmem test_gm
  
!   which produces the following output (result may vary on different platforms):
  
      ::
  
--- 4003,4022 ----
  
         $ gnatmake -g test_gm -largs -lgmem
  
!   We execute the program as usual:
  
      ::
  
         $ test_gm
  
!   ``gnatmem`` is invoked simply with
  
      ::
  
         $ gnatmem test_gm
  
!   which produces the following output (the details may vary on
!   different platforms):
  
      ::
  
*************** execution of this erroneous program:
*** 3966,3988 ****
             s-secsta.adb:181 system.secondary_stack.ss_init
  
  
!   Note that the GNAT runtime contains itself a certain number of
!   allocations that have no  corresponding deallocation,
    as shown here for root #2 and root #3.
    This is a normal behavior when the number of non-freed allocations
!   is one, it allocates dynamic data structures that the run time needs for
    the complete lifetime of the program. Note also that there is only one
!   allocation root in the user program with a single line back trace:
!   test_gm.adb:11 test_gm.my_alloc, whereas a careful analysis of the
!   program shows that 'My_Alloc' is called at 2 different points in the
    source (line 21 and line 24). If those two allocation roots need to be
!   distinguished, the backtrace depth parameter can be used:
  
      ::
  
         $ gnatmem 3 test_gm
  
!   which will give the following output:
  
  
      ::
--- 4052,4074 ----
             s-secsta.adb:181 system.secondary_stack.ss_init
  
  
!   Note that the GNAT runtime itself contains a certain number of
!   allocations that have no corresponding deallocations,
    as shown here for root #2 and root #3.
    This is a normal behavior when the number of non-freed allocations
!   is one: it allocates dynamic data structures that the run time needs for
    the complete lifetime of the program. Note also that there is only one
!   allocation root in the user program, with a single line back trace:
!   ``test_gm.adb:11 test_gm.my_alloc``, whereas a careful analysis of the
!   program shows that ``My_Alloc`` is called at 2 different points in the
    source (line 21 and line 24). If those two allocation roots need to be
!   distinguished, you can use the backtrace depth parameter:
  
      ::
  
         $ gnatmem 3 test_gm
  
!   which produces the following output:
  
  
      ::
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst	Fri Apr 25 08:18:00 2025
*************** This chapter describes a number of utili
*** 18,24 ****
    * :ref:`The_Body_Stub_Generator_gnatstub`
    * :ref:`The_Backtrace_Symbolizer_gnatsymbolize`
  
!   It also describes how several of these tools can be used in conjunction
    with project files: :ref:`Using_Project_Files_with_GNAT_Tools`
  
  .. only:: FSF
--- 18,24 ----
    * :ref:`The_Body_Stub_Generator_gnatstub`
    * :ref:`The_Backtrace_Symbolizer_gnatsymbolize`
  
!   It also describes how you can use several of these tools in conjunction
    with project files: :ref:`Using_Project_Files_with_GNAT_Tools`
  
  .. only:: FSF
*************** The File Cleanup Utility ``gnatclean``
*** 42,48 ****
  .. index:: File cleanup tool
  .. index:: gnatclean
  
! ``gnatclean`` is a tool that allows the deletion of files produced by the
  compiler, binder and linker, including ALI files, object files, tree files,
  expanded source files, library files, interface copy source files, binder
  generated files and executable files.
--- 42,48 ----
  .. index:: File cleanup tool
  .. index:: gnatclean
  
! ``gnatclean`` is a tool that deletes some files produced by the
  compiler, binder and linker, including ALI files, object files, tree files,
  expanded source files, library files, interface copy source files, binder
  generated files and executable files.
*************** generated files and executable files.
*** 52,72 ****
  Running ``gnatclean``
  ---------------------
  
! The ``gnatclean`` command has the form:
  
    ::
  
        $ gnatclean switches names
  
! where ``names`` is a list of source file names. Suffixes :file:`.ads` and
! :file:`adb` may be omitted. If a project file is specified using switch
! :switch:`-P`, then ``names`` may be completely omitted.
  
! In normal mode, ``gnatclean`` delete the files produced by the compiler and,
! if switch :switch:`-c` is not specified, by the binder and
! the linker. In informative-only mode, specified by switch
! :switch:`-n`, the list of files that would have been deleted in
! normal mode is listed, but no file is actually deleted.
  
  
  .. _Switches_for_gnatclean:
--- 52,72 ----
  Running ``gnatclean``
  ---------------------
  
! You run the ``gnatclean`` command as follow:
  
    ::
  
        $ gnatclean switches names
  
! where ``names`` is a list of source file names. You may omit suffixes :file:`.ads` and
! :file:`adb`. If a project file is specified using switch
! :switch:`-P`, then you may completely omit ``names``.
  
! In normal mode, ``gnatclean`` deletes the files produced by the compiler and,
! if switch :switch:`-c` is not specified, produced by the binder and
! linker. In information-only mode, specified by switch
! :switch:`-n`, ``gnatclean`` lists the files that would have been deleted in
! normal mode, but doesn't actually delete any files.
  
  
  .. _Switches_for_gnatclean:
*************** Switches for ``gnatclean``
*** 79,100 ****
  .. index:: --version (gnatclean)
  
  :switch:`--version`
!   Display copyright and version, then exit disregarding all other options.
  
  .. index:: --help (gnatclean)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage, then exit disregarding
!   all other options.
  
  :switch:`--subdirs={subdir}`
!   Actual object directory of each project file is the subdirectory subdir of the
!   object directory specified or defaulted in the project file.
  
  :switch:`--unchecked-shared-lib-imports`
    By default, shared library projects are not allowed to import static library
!   projects. When this switch is used on the command line, this restriction is
!   relaxed.
  
  .. index:: -c (gnatclean)
  
--- 79,100 ----
  .. index:: --version (gnatclean)
  
  :switch:`--version`
!   Display copyright and version, then exit, disregarding all other options.
  
  .. index:: --help (gnatclean)
  
  :switch:`--help`
!   If :switch:`--version` was not specified, display usage, then exit
!   disregarding all other options.
  
  :switch:`--subdirs={subdir}`
!   Actual object directory of each project file, which is the
!   subdirectory ``subdir`` of the object directory specified or defaulted
!   in the project file.
  
  :switch:`--unchecked-shared-lib-imports`
    By default, shared library projects are not allowed to import static library
!   projects. When this switch is specified, this restriction is lifted.
  
  .. index:: -c (gnatclean)
  
*************** Switches for ``gnatclean``
*** 106,120 ****
  .. index:: -D (gnatclean)
  
  :switch:`-D {dir}`
!   Indicate that ALI and object files should normally be found in directory ``dir``.
  
  .. index:: -F (gnatclean)
  
  :switch:`-F`
!   When using project files, if some errors or warnings are detected during
!   parsing and verbose mode is not in effect (no use of switch
!   -v), then error lines start with the full path name of the project
!   file, rather than its simple file name.
  
  .. index:: -h (gnatclean)
  
--- 106,121 ----
  .. index:: -D (gnatclean)
  
  :switch:`-D {dir}`
!   Indicate that ALI and object files should normally be found in
!   directory ``dir``.
  
  .. index:: -F (gnatclean)
  
  :switch:`-F`
!   When using project files, if some errors or warnings are detected
!   during parsing and verbose mode is not in effect (the switch
!   :switch:`-v` is not specified), error lines start with the full path
!   name of the project file, rather than its simple file name.
  
  .. index:: -h (gnatclean)
  
*************** Switches for ``gnatclean``
*** 130,155 ****
  .. index:: -P (gnatclean)
  
  :switch:`-P{project}`
!   Use project file ``project``. Only one such switch can be used.
!   When cleaning a project file, the files produced by the compilation of the
!   immediate sources or inherited sources of the project files are to be
!   deleted. This is not depending on the presence or not of executable names
!   on the command line.
  
  .. index:: -q (gnatclean)
  
  :switch:`-q`
    Quiet output. If there are no errors, do not output anything, except in
!   verbose mode (switch -v) or in informative-only mode
!   (switch -n).
  
  .. index:: -r (gnatclean)
  
  :switch:`-r`
!   When a project file is specified (using switch -P),
!   clean all imported and extended project files, recursively. If this switch
!   is not specified, only the files related to the main project file are to be
!   deleted. This switch has no effect if no project file is specified.
  
  .. index:: -v (gnatclean)
  
--- 131,157 ----
  .. index:: -P (gnatclean)
  
  :switch:`-P{project}`
!   Use project file ``project``. You can specify only one such switch.
!   When cleaning a project file, ``gnatclean`` deletes the files
!   produced by the compilation of the immediate sources or inherited
!   sources of the project files. This does not depend on whether or not
!   you include executable names on the command line.
  
  .. index:: -q (gnatclean)
  
  :switch:`-q`
    Quiet output. If there are no errors, do not output anything, except in
!   verbose mode (:switch:`-v`) or in information-only mode
!   (:switch:`-n`).
  
  .. index:: -r (gnatclean)
  
  :switch:`-r`
!   When a project file is specified (using :switch:`-P`), clean all
!   imported and extended project files, recursively. If you don't
!   specify this switch, ``gnatclean`` only deletes the files related to
!   the main project file. This switch has no effect if you don't
!   specify a project file.
  
  .. index:: -v (gnatclean)
  
*************** The GNAT Library Browser ``gnatls``
*** 200,206 ****
  
  ``gnatls`` is a tool that outputs information about compiled
  units. It gives the relationship between objects, unit names and source
! files. It can also be used to check the source dependencies of a unit
  as well as various characteristics.
  
  .. _Running_gnatls:
--- 202,208 ----
  
  ``gnatls`` is a tool that outputs information about compiled
  units. It gives the relationship between objects, unit names and source
! files. You can also use it to check the source dependencies of a unit
  as well as various characteristics.
  
  .. _Running_gnatls:
*************** as well as various characteristics.
*** 208,214 ****
  Running ``gnatls``
  ------------------
  
! The ``gnatls`` command has the form
  
    ::
  
--- 210,216 ----
  Running ``gnatls``
  ------------------
  
! You run the ``gnatls`` command as follows:
  
    ::
  
*************** The ``gnatls`` command has the form
*** 216,230 ****
  
  The main argument is the list of object or :file:`ali` files
  (see :ref:`The_Ada_Library_Information_Files`)
! for which information is requested.
  
! In normal mode, without additional option, ``gnatls`` produces a
! four-column listing. Each line represents information for a specific
  object. The first column gives the full path of the object, the second
! column gives the name of the principal unit in this object, the third
  column gives the status of the source and the fourth column gives the
  full path of the source representing this unit.
! Here is a simple example of use:
  
  
    ::
--- 218,232 ----
  
  The main argument is the list of object or :file:`ali` files
  (see :ref:`The_Ada_Library_Information_Files`)
! for which you are requesting information.
  
! In the default mode, without additional options, ``gnatls`` produces a
! four-column listing. Each line contains information for a specific
  object. The first column gives the full path of the object, the second
! column gives the name of the principal unit in the object, the third
  column gives the status of the source and the fourth column gives the
  full path of the source representing this unit.
! Here's a simple example:
  
  
    ::
*************** Here is a simple example of use:
*** 239,247 ****
       ./text_io_example.o  text_io_example   OK text_io_example.adb
       ./tgef.o             tgef             DIF tgef.adb
  
! The first line can be interpreted as follows: the main unit which is
  contained in
! object file :file:`demo1.o` is demo1, whose main source is in
  :file:`demo1.adb`. Furthermore, the version of the source used for the
  compilation of demo1 has been modified (DIF). Each source file has a status
  qualifier which can be:
--- 241,249 ----
       ./text_io_example.o  text_io_example   OK text_io_example.adb
       ./tgef.o             tgef             DIF tgef.adb
  
! You should interpret the first line as follows: the main unit, which is
  contained in
! object file :file:`demo1.o`, is demo1, whose main source is in
  :file:`demo1.adb`. Furthermore, the version of the source used for the
  compilation of demo1 has been modified (DIF). Each source file has a status
  qualifier which can be:
*************** qualifier which can be:
*** 253,261 ****
  *MOK (slightly modified)*
    The version of the source file used for the compilation of the
    specified unit differs from the actual source file but not enough to
!   require recompilation. If you use gnatmake with the option
!   :switch:`-m` (minimal recompilation), a file marked
!   MOK will not be recompiled.
  
  *DIF (modified)*
    No version of the source found on the path corresponds to the source
--- 255,263 ----
  *MOK (slightly modified)*
    The version of the source file used for the compilation of the
    specified unit differs from the actual source file but not enough to
!   require recompilation (e.g., only comments have been changed). If
!   you run ``gnatmake`` with the option :switch:`-m` (minimal
!   recompilation), it will not recompile a file marked MOK.
  
  *DIF (modified)*
    No version of the source found on the path corresponds to the source
*************** qualifier which can be:
*** 275,294 ****
  Switches for ``gnatls``
  -----------------------
  
! ``gnatls`` recognizes the following switches:
  
  
  .. index:: --version (gnatls)
  
  :switch:`--version`
!   Display copyright and version, then exit disregarding all other options.
  
  
  .. index:: --help (gnatls)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage, then exit disregarding
!   all other options.
  
  
  .. index:: -a (gnatls)
--- 277,296 ----
  Switches for ``gnatls``
  -----------------------
  
! You can specify the following switches to ``gnatls``:
  
  
  .. index:: --version (gnatls)
  
  :switch:`--version`
!   Display copyright and version, then exit, disregarding all other options.
  
  
  .. index:: --help (gnatls)
  
  :switch:`--help`
!   If :switch:`--version` was not specified, display usage, then exit,
!   disregarding all other options.
  
  
  .. index:: -a (gnatls)
*************** Switches for ``gnatls``
*** 301,307 ****
  .. index:: -d (gnatls)
  
  :switch:`-d`
!   List sources from which specified units depend on.
  
  
  .. index:: -h (gnatls)
--- 303,309 ----
  .. index:: -d (gnatls)
  
  :switch:`-d`
!   List sources that specified units depend on.
  
  
  .. index:: -h (gnatls)
*************** Switches for ``gnatls``
*** 331,340 ****
  .. index:: -files (gnatls)
  
  :switch:`-files={file}`
!   Take as arguments the files listed in text file ``file``.
!   Text file ``file`` may contain empty lines that are ignored.
!   Each nonempty line should contain the name of an existing file.
!   Several such switches may be specified simultaneously.
  
  
  .. index:: -aO (gnatls)
--- 333,342 ----
  .. index:: -files (gnatls)
  
  :switch:`-files={file}`
!   Take as arguments the files listed in text file ``file``, which may
!   contain empty lines that are ignored.  Each nonempty line should
!   contain the name of an existing file.  Several such switches may be
!   specified on the same command.
  
  
  .. index:: -aO (gnatls)
*************** Switches for ``gnatls``
*** 346,353 ****
  .. index:: -I- (gnatls)
  
  :switch:`-aO{dir}`, :switch:`-aI{dir}`, :switch:`-I{dir}`, :switch:`-I-`, :switch:`-nostdinc`
!   Source path manipulation. Same meaning as the equivalent ``gnatmake``
!   flags (:ref:`Switches_for_gnatmake`).
  
  
  .. index:: -aP (gnatls)
--- 348,355 ----
  .. index:: -I- (gnatls)
  
  :switch:`-aO{dir}`, :switch:`-aI{dir}`, :switch:`-I{dir}`, :switch:`-I-`, :switch:`-nostdinc`
!   Source path manipulation. It has the same meaning as the equivalent
!   ``gnatmake`` switches (:ref:`Switches_for_gnatmake`).
  
  
  .. index:: -aP (gnatls)
*************** Switches for ``gnatls``
*** 359,372 ****
  .. index:: --RTS (gnatls)
  
  :switch:`--RTS={rts-path}`
!   Specifies the default location of the runtime library. Same meaning as the
!   equivalent ``gnatmake`` flag (:ref:`Switches_for_gnatmake`).
  
  
  .. index:: -v (gnatls)
  
  :switch:`-v`
!   Verbose mode. Output the complete source, object and project paths. Do not use
    the default column layout but instead use long format giving as much as
    information possible on each requested units, including special
    characteristics such as:
--- 361,375 ----
  .. index:: --RTS (gnatls)
  
  :switch:`--RTS={rts-path}`
!   Specifies the default location of the runtime library. It has the
!   same meaning as the equivalent ``gnatmake`` switch
!   (:ref:`Switches_for_gnatmake`).
  
  
  .. index:: -v (gnatls)
  
  :switch:`-v`
!   Verbose mode. Output the complete source, object and project paths. Don't use
    the default column layout but instead use long format giving as much as
    information possible on each requested units, including special
    characteristics such as:
*************** Switches for ``gnatls``
*** 394,401 ****
  Example of ``gnatls`` Usage
  ---------------------------
  
! Example of using the verbose switch. Note how the source and
! object paths are affected by the -I switch.
  
    ::
  
--- 397,404 ----
  Example of ``gnatls`` Usage
  ---------------------------
  
! Here's an example of using the verbose switch. Note how the source and
! object paths are affected by the :switch:`-I` switch.
  
    ::
  
*************** object paths are affected by the -I swit
*** 425,433 ****
             Flags  => No_Elab_Code
             Source => demo1.adb    modified
  
! The following is an example of use of the dependency list.
! Note the use of the -s switch
! which gives a straight list of source files. This can be useful for
  building specialized scripts.
  
    ::
--- 428,436 ----
             Flags  => No_Elab_Code
             Source => demo1.adb    modified
  
! Here's an example of use of the dependency list.
! Note the use of the :switch:`-s` switch,
! which gives a simple list of source files. You may find this useful for
  building specialized scripts.
  
    ::
*************** building specialized scripts.
*** 505,511 ****
       file name may contain path information; it does not have to follow
       the GNAT file naming rules
  
!    Note that it is no longer necessary to specify the Ada language version;
     ``gnatpp`` can process Ada source code written in any version from Ada 83
     onward without specifying any language version switch.
  
--- 508,514 ----
       file name may contain path information; it does not have to follow
       the GNAT file naming rules
  
!    Note that you no longer need to specify the Ada language version;
     ``gnatpp`` can process Ada source code written in any version from Ada 83
     onward without specifying any language version switch.
  
*************** building specialized scripts.
*** 518,524 ****
     The following subsections describe the various switches accepted by
     ``gnatpp``, organized by category.
  
!    You specify a switch by supplying a name and generally also a value.
     In many cases the values for a switch with a given name are incompatible
     with each other
     (for example the switch that controls the casing of a reserved word may have
--- 521,527 ----
     The following subsections describe the various switches accepted by
     ``gnatpp``, organized by category.
  
!    You specify a switch by supplying a name and usually also a value.
     In many cases the values for a switch with a given name are incompatible
     with each other
     (for example the switch that controls the casing of a reserved word may have
*************** building specialized scripts.
*** 527,533 ****
     invocation of ``gnatpp``.
     If more than one is supplied, the last one is used.
     However, some values for the same switch are mutually compatible.
!    You may supply several such switches to ``gnatpp``, but then
     each must be specified in full, with both the name and the value.
     Abbreviated forms (the name appearing once, followed by each value) are
     not permitted.
--- 530,536 ----
     invocation of ``gnatpp``.
     If more than one is supplied, the last one is used.
     However, some values for the same switch are mutually compatible.
!    You may supply several such switches to ``gnatpp``, but
     each must be specified in full, with both the name and the value.
     Abbreviated forms (the name appearing once, followed by each value) are
     not permitted.
*************** building specialized scripts.
*** 548,557 ****
     :switch:`--layout=default|minimal|compact|tall`
  
     :switch:`default`
!      The default layout will follow a compact style but add aligment and put
!      some keywords on a separate line.
       
!      Alignment is added in the the following constructs:
  
       * ``:`` in declarations,
       * ``:=`` in initializations in declarations,
--- 551,560 ----
     :switch:`--layout=default|minimal|compact|tall`
  
     :switch:`default`
!      The default layout is a compact style, but ``gnatpp`` adds
!      alignment and puts some keywords on a separate line.
       
!      ``gnatpp`` adds alignment in the the following constructs:
  
       * ``:`` in declarations,
       * ``:=`` in initializations in declarations,
*************** building specialized scripts.
*** 560,573 ****
       * ``at`` keywords in the component clauses in record representation
         clauses.
  
!      In addition, ``in`` and ``out`` keywords in parameter specifications are
!      also lined up.
  
!      The keyword ``is`` is placed on a separate line in a subprogram body in
!      case the spec occupies more than one line.
  
!      The keyword ``return`` is placed on a separate line if a subprogram spec
!      does not fit on one line.
  
     :switch:`minimal`
       The minimal layout will avoid changing the source layout by keeping all
--- 563,576 ----
       * ``at`` keywords in the component clauses in record representation
         clauses.
  
!      In addition, ``gnatpp`` also lines up ``in`` and ``out`` keywords
!      in parameter specifications.
  
!      ``gnatpp`` places the keyword ``is`` on a separate line in a
!      subprogram body in case the spec occupies more than one line.
  
!      ``gnatpp`` places the keyword ``return`` on a separate line if a
!      subprogram spec does not fit on one line.
  
     :switch:`minimal`
       The minimal layout will avoid changing the source layout by keeping all
*************** building specialized scripts.
*** 576,585 ****
       the line length limit.
  
     :switch:`compact`
!      The compact layout will avoid adding line breaks and alignment by packing
       as many subexpressions on the same line as possible.
  
!      Whole-line comments that form a paragraph will be filled in typical word
       processor style (that is, moving words between lines to make them similar
       in length, except the last one which may be shorter).
  
--- 579,588 ----
       the line length limit.
  
     :switch:`compact`
!      The compact layout avoids adding line breaks and alignment by packing
       as many subexpressions on the same line as possible.
  
!      Whole-line comments that form a paragraph are filled in typical word
       processor style (that is, moving words between lines to make them similar
       in length, except the last one which may be shorter).
  
*************** building specialized scripts.
*** 589,595 ****
       comment.
  
     :switch:`tall`
!      The tall layout will favor adding lines breaks and alignment. It adds
       all the alignment and line breaks defined in the ``default`` option,
       and in addition:
  
--- 592,598 ----
       comment.
  
     :switch:`tall`
!      The tall layout favors adding lines breaks and alignment. It adds
       all the alignment and line breaks defined in the ``default`` option,
       and in addition:
  
*************** building specialized scripts.
*** 628,644 ****
  
     .. index:: Casing control in gnatpp
  
!    ``gnatpp`` allows you to specify the casing for reserved words, pragma
!    names, attribute designators and identifiers. For identifiers you may define
!    a general rule for name casing but also override this rule via a set of
!    dictionary files.
  
     Three types of casing are supported: 'Lower Case', 'Upper Case', and
!    'Mixed Case'. 'Mixed case' means that the first letter, and also each
!    letter immediately following an underscore, are converted to their
!    uppercase forms and all the other letters are converted to their lowercase
     forms.
  
     .. index:: --name-case-as-declared (gnatpp)
  
     :switch:`--name-case-as-declared, -nD`
--- 631,651 ----
  
     .. index:: Casing control in gnatpp
  
!    ``gnatpp`` allows you to specify the casing for reserved words,
!    pragma names, attribute designators, and identifiers. For
!    identifiers, you may define a general rule for name casing but also
!    override this rule via a set of dictionary files.
  
     Three types of casing are supported: 'Lower Case', 'Upper Case', and
!    'Mixed Case'. 'Mixed case' means that the first letter and each
!    letter immediately following an underscore are converted to their
!    uppercase forms and all other letters are converted to their lowercase
     forms.
  
+ 
+ 
+ 
+ 
     .. index:: --name-case-as-declared (gnatpp)
  
     :switch:`--name-case-as-declared, -nD`
*************** building specialized scripts.
*** 690,713 ****
  
     :switch:`--enum-case-as-declared, -neD`
       Enumeration literal casing for defining occurrences are as they appear in
!      the source file. Overrides -n casing setting.
  
     .. index:: --enum-upper-case (gnatpp)
  
     :switch:`--enum-upper-case, -neU`
!      Enumeration literals are in upper case. Overrides -n casing
       setting.
  
     .. index:: --enum-lower-case (gnatpp)
  
     :switch:`--enum-lower-case, -neL`
!      Enumeration literals are in lower case. Overrides -n casing
       setting.
  
     .. index:: --enum-mixed-case (gnatpp)
  
     :switch:`--enum-mixed-case, -neM`
!      Enumeration literals are in mixed case. Overrides -n casing
       setting.
  
     .. index:: --type-case-as-declared (gnatpp)
--- 697,720 ----
  
     :switch:`--enum-case-as-declared, -neD`
       Enumeration literal casing for defining occurrences are as they appear in
!      the source file. Overrides the :switch:`-n` casing setting.
  
     .. index:: --enum-upper-case (gnatpp)
  
     :switch:`--enum-upper-case, -neU`
!      Enumeration literals are in upper case. Overrides the :switch:`-n` casing
       setting.
  
     .. index:: --enum-lower-case (gnatpp)
  
     :switch:`--enum-lower-case, -neL`
!      Enumeration literals are in lower case. Overrides the :switch:`-n` casing
       setting.
  
     .. index:: --enum-mixed-case (gnatpp)
  
     :switch:`--enum-mixed-case, -neM`
!      Enumeration literals are in mixed case. Overrides the :switch:`-n` casing
       setting.
  
     .. index:: --type-case-as-declared (gnatpp)
*************** building specialized scripts.
*** 715,751 ****
     :switch:`--type-case-as-declared, -ntD`
       Names introduced by type and subtype declarations are always
       cased as they appear in the declaration in the source file.
!      Overrides -n casing setting.
  
     .. index:: --type-upper-case (gnatpp)
  
     :switch:`--type-upper-case, -ntU`
       Names introduced by type and subtype declarations are always in
!      upper case. Overrides -n casing setting.
  
     .. index:: --type-lower-case (gnatpp)
  
     :switch:`--type-lower-case, -ntL`
       Names introduced by type and subtype declarations are always in
!      lower case. Overrides -n casing setting.
  
     .. index:: --type-mixed-case (gnatpp)
  
     :switch:`--type-mixed-case, -ntM`
       Names introduced by type and subtype declarations are always in
!      mixed case. Overrides -n casing setting.
  
     .. index:: --number-upper-case (gnatpp)
  
     :switch:`--number-upper-case, -nnU`
       Names introduced by number declarations are always in
!      upper case. Overrides -n casing setting.
  
     .. index:: --number-lower-case (gnatpp)
  
     :switch:`--number-lower-case, -nnL`
       Names introduced by number declarations are always in
!      lower case. Overrides -n casing setting.
  
     .. index:: --number-mixed-case (gnatpp)
  
--- 722,758 ----
     :switch:`--type-case-as-declared, -ntD`
       Names introduced by type and subtype declarations are always
       cased as they appear in the declaration in the source file.
!      Overrides the :switch:`-n` casing setting.
  
     .. index:: --type-upper-case (gnatpp)
  
     :switch:`--type-upper-case, -ntU`
       Names introduced by type and subtype declarations are always in
!      upper case. Overrides the :switch:`-n` casing setting.
  
     .. index:: --type-lower-case (gnatpp)
  
     :switch:`--type-lower-case, -ntL`
       Names introduced by type and subtype declarations are always in
!      lower case. Overrides the :switch:`-n` casing setting.
  
     .. index:: --type-mixed-case (gnatpp)
  
     :switch:`--type-mixed-case, -ntM`
       Names introduced by type and subtype declarations are always in
!      mixed case. Overrides the :switch:`-n` casing setting.
  
     .. index:: --number-upper-case (gnatpp)
  
     :switch:`--number-upper-case, -nnU`
       Names introduced by number declarations are always in
!      upper case. Overrides the :switch:`-n` casing setting.
  
     .. index:: --number-lower-case (gnatpp)
  
     :switch:`--number-lower-case, -nnL`
       Names introduced by number declarations are always in
!      lower case. Overrides the :switch:`-n` casing setting.
  
     .. index:: --number-mixed-case (gnatpp)
  
*************** building specialized scripts.
*** 798,804 ****
  
     :switch:`--syntax-only`
       Disable the semantic analysis (name resolution) done by libadalang.
!      This means gnatpp will not be able to support any of the
       "as-declared" switches.
  
     .. index:: --dictionary (gnatpp)
--- 805,811 ----
  
     :switch:`--syntax-only`
       Disable the semantic analysis (name resolution) done by libadalang.
!      This means ``gnatpp`` is not able to support any of the
       "as-declared" switches.
  
     .. index:: --dictionary (gnatpp)
*************** building specialized scripts.
*** 821,827 ****
     :switch:`--dictionary=-, -D=-`
       Do not use the default dictionary file;
       instead, use the casing
!      defined by a ``-n`` switch and any explicit
       dictionary file(s)
  
     The structure of a dictionary file, and details on the conventions
--- 828,834 ----
     :switch:`--dictionary=-, -D=-`
       Do not use the default dictionary file;
       instead, use the casing
!      defined by a :switch:`-n` switch and any explicit
       dictionary file(s)
  
     The structure of a dictionary file, and details on the conventions
*************** building specialized scripts.
*** 846,858 ****
     .. index:: --max-line-length (gnatpp)
  
     :switch:`--max-line-length={nnn}, -M={nnn}`
!      Maximum line length, ``nnn`` from 32...256, the default value is 79
  
  
     .. index:: --indentation (gnatpp)
  
     :switch:`--indentation={nnn}, -i={nnn}`
!      Indentation level, ``nnn`` from 1...9, the default value is 3
  
  
     .. index:: --indent-continuation (gnatpp)
--- 853,865 ----
     .. index:: --max-line-length (gnatpp)
  
     :switch:`--max-line-length={nnn}, -M={nnn}`
!      Maximum line length, ``nnn`` from 32...256. The default value is 79
  
  
     .. index:: --indentation (gnatpp)
  
     :switch:`--indentation={nnn}, -i={nnn}`
!      Indentation level, ``nnn`` from 1...9. The default value is 3
  
  
     .. index:: --indent-continuation (gnatpp)
*************** building specialized scripts.
*** 878,885 ****
     :switch:`--decimal-grouping={n}`
       Put underscores in decimal literals (numeric literals without a base)
       every ``n`` characters. If a literal already has one or more
!      underscores, it is not modified. For example, with
!      ``--decimal-grouping=3``, ``1000000`` will be changed to
       ``1_000_000``.
  
  
--- 885,892 ----
     :switch:`--decimal-grouping={n}`
       Put underscores in decimal literals (numeric literals without a base)
       every ``n`` characters. If a literal already has one or more
!      underscores, ``gnatpp`` will not modify it. For example, with
!      ``--decimal-grouping=3``, ``1000000`` is changed to
       ``1_000_000``.
  
  
*************** building specialized scripts.
*** 887,902 ****
  
     :switch:`--based-grouping={n}`
       Same as ``--decimal-grouping``, but for based literals. For
!      example, with ``--based-grouping=4``, ``16#0001FFFE#`` will be
       changed to ``16#0001_FFFE#``.
  
     .. index:: --call-threshold (gnatpp)
  
     :switch:`--call-threshold={nnn}`
!      If the number of parameter associations is greater than ``nnn`` and if at
!      least one association uses named notation, start each association from
!      a new line. If ``nnn`` is 0, no check for the number of associations
!      is made; this is the default.
  
     .. index:: --par-threshold (gnatpp)
  
--- 894,909 ----
  
     :switch:`--based-grouping={n}`
       Same as ``--decimal-grouping``, but for based literals. For
!      example, with ``--based-grouping=4``, ``16#0001FFFE#`` is
       changed to ``16#0001_FFFE#``.
  
     .. index:: --call-threshold (gnatpp)
  
     :switch:`--call-threshold={nnn}`
!      If the number of parameter associations is greater than ``nnn``
!      and if at least one association uses named notation, start each
!      association from a new line. If ``nnn`` is 0, ``gnatpp`` does not
!      check for the number of associations; this is the default.
  
     .. index:: --par-threshold (gnatpp)
  
*************** building specialized scripts.
*** 904,910 ****
       If the number of parameter specifications is greater than ``nnn``
       (or equal to ``nnn`` in case of a function), start each specification from
       a new line. If ``nnn`` is 0, and :switch:`--no-separate-is` was not
!      specified, then the ``is`` is placed on a separate line. This feature is
       disabled by default.
  
  
--- 911,917 ----
       If the number of parameter specifications is greater than ``nnn``
       (or equal to ``nnn`` in case of a function), start each specification from
       a new line. If ``nnn`` is 0, and :switch:`--no-separate-is` was not
!      specified, then the ``is`` is placed on a separate line. This option is
       disabled by default.
  
  
*************** building specialized scripts.
*** 913,920 ****
     Setting the Source Search Path
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    To define the search path for the input source file, ``gnatpp``
!    uses the same switches as the GNAT compiler, with the same effects:
  
     .. index:: -I (gnatpp)
  
--- 920,927 ----
     Setting the Source Search Path
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    To define the search path for the input source file, pass ``gnatpp``
!    the same switches as the GNAT compiler, with the same effects:
  
     .. index:: -I (gnatpp)
  
*************** building specialized scripts.
*** 935,942 ****
     Output File Control
     ^^^^^^^^^^^^^^^^^^^
  
!    By default the output overwrites the input file.
!    The output may be redirected by the following switches:
  
  
     .. index:: --replace (gnatpp)
--- 942,949 ----
     Output File Control
     ^^^^^^^^^^^^^^^^^^^
  
!    By default, the output overwrites the input file.
!    You can specify the location of the output with the following switches:
  
  
     .. index:: --replace (gnatpp)
*************** building specialized scripts.
*** 950,960 ****
     .. index:: --output-dir (gnatpp)
  
     :switch:`--output-dir={dir}`
!      Generate output file in directory :file:`dir` with the same name as
!      the input file. If :file:`dir` is the same as the directory
!      containing the input file, the input file is not processed; use
!      ``--replace`` if you want to update the input file in
!      place.
  
  
     .. index:: --pipe (gnatpp)
--- 957,967 ----
     .. index:: --output-dir (gnatpp)
  
     :switch:`--output-dir={dir}`
!      Generate the output file in directory :file:`dir` with the same
!      name as the input file. If :file:`dir` is the same as the
!      directory containing the input file, ``gnatpp`` does not read or
!      process the input file; use ``--replace`` if you want to update
!      the input file in place.
  
  
     .. index:: --pipe (gnatpp)
*************** building specialized scripts.
*** 981,987 ****
     .. index:: --replace-backup (gnatpp)
  
     :switch:`--replace-backup, -r`
!      Replace the input source file with the reformatted output, and copy the
       original input source into the file whose name is obtained by appending
       the :file:`.npp` suffix to the name of the input file.
       If a file with this name already exists, ``gnatpp`` terminates without
--- 988,994 ----
     .. index:: --replace-backup (gnatpp)
  
     :switch:`--replace-backup, -r`
!      Replace the input source file with the reformatted output and copy the
       original input source into the file whose name is obtained by appending
       the :file:`.npp` suffix to the name of the input file.
       If a file with this name already exists, ``gnatpp`` terminates without
*************** building specialized scripts.
*** 1018,1028 ****
  
       * *b* - Brackets encoding (default value)
  
!    Options ``--output-file`` and ``--output-force`` are allowed only if
!    the call to gnatpp contains only one file to reformat.
  
!    Option ``--eol`` and ``--wide-character-encoding`` cannot be used together
!    with the ``--pipe`` option.
  
  
     .. _Other_gnatpp_Switches:
--- 1025,1037 ----
  
       * *b* - Brackets encoding (default value)
  
!    You may only specify options :switch:`--output-file` and
!    :switch:`--output-force` if the call to ``gnatpp`` contains only
!    one file to reformat.
  
!    You may not use the option :switch:`--eol` or
!    :switch:`--wide-character-encoding` together with the
!    :switch:`--pipe` option.
  
  
     .. _Other_gnatpp_Switches:
*************** building specialized scripts.
*** 1030,1054 ****
     Other ``gnatpp`` Switches
     ^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    The additional ``gnatpp`` switches are defined in this subsection.
  
  
     .. index:: --version  (gnatpp)
  
     :switch:`--version`
!      Display copyright and version, then exit disregarding all other options.
  
  
     .. index:: --help  (gnatpp)
  
     :switch:`--help`
!      Display usage, then exit disregarding all other options.
  
  
     .. index:: -P  (gnatpp)
  
     :switch:`-P {file}`
!      Indicates the name of the project file that describes the set of sources
       to be processed. The exact set of argument sources depends on other
       options specified; see below.
  
--- 1039,1064 ----
     Other ``gnatpp`` Switches
     ^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    You can also use the additional ``gnatpp`` switches defined in
!    this subsection.
  
  
     .. index:: --version  (gnatpp)
  
     :switch:`--version`
!      Display copyright and version, then exit, disregarding all other options.
  
  
     .. index:: --help  (gnatpp)
  
     :switch:`--help`
!      Display usage, then exit, disregarding all other options.
  
  
     .. index:: -P  (gnatpp)
  
     :switch:`-P {file}`
!      Specifies the name of the project file that describes the set of sources
       to be processed. The exact set of argument sources depends on other
       options specified; see below.
  
*************** building specialized scripts.
*** 1056,1098 ****
     .. index:: -U  (gnatpp)
  
     :switch:`-U`
!      If a project file is specified and no argument source is explicitly
!      specified (either directly or by means of ``--files`` option), process
!      all the units of the closure of the argument project. Otherwise this
!      option has no effect.
  
     :switch:`-U {main_unit}`
!      If a project file is specified and no argument source is explicitly
!      specified (either directly or by means of ``--files`` option), process
!      the closure of units rooted at ``main_unit``. Otherwise this option
!      has no effect.
  
  
     .. index:: -X  (gnatpp)
  
     :switch:`-X{name}={value}`
!      Indicates that external variable ``name`` in the argument project
!      has the value ``value``. Has no effect if no project is specified.
  
  
     .. index:: --RTS (gnatpp)
  
     :switch:`--RTS={rts-path}`
!      Specifies the default location of the runtime library. Same meaning as the
!      equivalent ``gnatmake`` flag (:ref:`Switches_for_gnatmake`).
  
  
     .. index:: --incremental  (gnatpp)
  
     :switch:`--incremental`
!      Incremental processing on a per-file basis. Source files are only
!      processed if they have been modified, or if files they depend on have
!      been modified. This is similar to the way gnatmake/gprbuild only
!      compiles files that need to be recompiled. A project file is required
!      in this mode, and the gnat driver (as in *gnat pretty*) is not
!      supported.
       (Note: this switch is not yet supported in the libadalang-based
!      version of gnatpp.)
  
  
     .. index:: --pp-off  (gnatpp)
--- 1066,1110 ----
     .. index:: -U  (gnatpp)
  
     :switch:`-U`
!      If you specify a project file but don't specify a source file,
!      either directly or by means of a :switch:`--files` option,
!      ``gnatpp`` processes all the units of the closure of the
!      specifed project. Otherwise this option has no effect.
  
     :switch:`-U {main_unit}`
!      If you specify a project file but don't specify a source file,
!      either directly or by means of :switch:`--files` option,
!      ``gnatpp`` will process the closure of units rooted at
!      ``main_unit``. Otherwise this option has no effect.
  
  
     .. index:: -X  (gnatpp)
  
     :switch:`-X{name}={value}`
!      Indicates that external variable ``name`` in the specified project
!      has the value ``value``. Has no effect if you don't specify a project.
  
  
     .. index:: --RTS (gnatpp)
  
     :switch:`--RTS={rts-path}`
!      Specifies the default location of the runtime library. It has the
!      same meaning as the equivalent ``gnatmake`` switch
!      (:ref:`Switches_for_gnatmake`).
  
  
     .. index:: --incremental  (gnatpp)
  
     :switch:`--incremental`
! 
!      ``gnatpp`` will perform incremental processing on a per-file
!      basis. It will only process a source file if it has been
!      modified, or if files it depends on have been modified. This is
!      similar to the way ``gnatmake``/``gprbuild`` only compiles files that
!      need to be recompiled. You must specify a project file in this mode,
!      and the gnat driver (as in *gnat pretty*) is not supported.
       (Note: this switch is not yet supported in the libadalang-based
!      version of ``gnatpp``.)
  
  
     .. index:: --pp-off  (gnatpp)
*************** building specialized scripts.
*** 1112,1136 ****
     .. index:: --files (gnatpp)
  
     :switch:`--files={filename}, -files={filename}`
!      Take as arguments the files listed in text file ``file``.
!      Text file ``file`` may contain empty lines that are ignored.
       Each nonempty line should contain the name of an existing file.
!      Several such switches may be specified simultaneously.
  
  
     .. index:: --ignore (gnatpp)
  
     :switch:`--ignore={filename}`
!      Do not process the sources listed in a specified file. This option cannot
!      be used in incremental mode.
  
  
     .. index:: --jobs (gnatpp)
  
     :switch:`--jobs={n}, -j={n}`
!      With ``--incremental``, use *n* ``gnatpp`` processes to perform
!      pretty printing in parallel. If *n* is 0, then the maximum number
!      processes is the number of core processors on the platform.
  
  
     .. index:: --verbose (gnatpp)
--- 1124,1148 ----
     .. index:: --files (gnatpp)
  
     :switch:`--files={filename}, -files={filename}`
!      Take as arguments the files listed in text file ``file``, which
!      may contain empty lines that are ignored.
       Each nonempty line should contain the name of an existing file.
!      You may specify several such switches on the same command line.
  
  
     .. index:: --ignore (gnatpp)
  
     :switch:`--ignore={filename}`
!      ``gnatpp`` will not process the sources listed in the specified file.
!      You can't specify this option in incremental mode.
  
  
     .. index:: --jobs (gnatpp)
  
     :switch:`--jobs={n}, -j={n}`
!      With :switch:`--incremental`, use *n* ``gnatpp`` processes to perform
!      pretty printing in parallel. If *n* is 0, the maximum number
!      processes is the number of core processors on the host.
  
  
     .. index:: --verbose (gnatpp)
*************** building specialized scripts.
*** 1144,1152 ****
     :switch:`--quiet, -q`
       Quiet mode
  
!    If a project file is specified and no argument source is explicitly
!    specified (either directly or by means of ``--files`` option), and no
!    ``-U`` is specified, then the set of processed sources is
     all the immediate units of the argument project.
  
  
--- 1156,1164 ----
     :switch:`--quiet, -q`
       Quiet mode
  
!    If you specify a project file, but no source files
!    (either directly or by means of a :switch:`--files` option), and you
!    specify the :switch:`-U`, then the set of processed sources is
     all the immediate units of the argument project.
  
  
*************** building specialized scripts.
*** 1155,1163 ****
     Formatting Rules
     ----------------
  
!    The following subsections show how ``gnatpp`` treats, comments, program
!    layout, name casing and how to disable ``gnatpp`` in source code regions.
!    They provide more details of the switches shown above.
  
  
     .. _Disabling_Pretty_Printing:
--- 1167,1176 ----
     Formatting Rules
     ----------------
  
!    The following subsections show how ``gnatpp`` treats comments,
!    program layout, and name casing as well as how to disable ``gnatpp`` in
!    source code regions.  They provide more details of the switches
!    shown above.
  
  
     .. _Disabling_Pretty_Printing:
*************** building specialized scripts.
*** 1165,1184 ****
     Disabling Pretty Printing
     ^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    Pretty printing is highly heuristic in nature, and sometimes doesn't
!    do exactly what you want. If you wish to format a certain region of
     code by hand, you can turn off pretty printing in that region by
     surrounding it with special comments that start with ``--!pp off``
!    and ``--!pp on``. The text in that region will then be reproduced
     verbatim in the output with no formatting.
  
!    To disable pretty printing for the whole file, put ``--!pp off`` at
     the top, with no following ``--!pp on``.
  
!    The comments must appear on a line by themselves, with nothing
!    preceding except spaces. The initial text of the comment must be
!    exactly ``--!pp off`` or ``--!pp on`` (case sensitive), but may
!    be followed by arbitrary additional text. For example:
  
       .. code-block:: ada
  
--- 1178,1197 ----
     Disabling Pretty Printing
     ^^^^^^^^^^^^^^^^^^^^^^^^^
  
!    Pretty printing is highly heuristic in nature and sometimes doesn't
!    do exactly what you want. If you want to format a certain region of
     code by hand, you can turn off pretty printing in that region by
     surrounding it with special comments that start with ``--!pp off``
!    and ``--!pp on``. The text in that region is reproduced
     verbatim in the output with no formatting.
  
!    To disable pretty printing for an entire file, put ``--!pp off`` at
     the top, with no following ``--!pp on``.
  
!    You must place each of these comments on a line by themselves, with nothing
!    preceding except spaces. You must have the initial text of the comment be
!    exactly ``--!pp off`` or ``--!pp on`` (case sensitive), but you may
!    follow it by arbitrary additional text. For example:
  
       .. code-block:: ada
  
*************** building specialized scripts.
*** 1191,1207 ****
             --!pp on -- reenable pretty printing
             ...
  
!    You can specify different comment strings using the ``--pp-off``
!    and ``--pp-on`` switches. For example, if you say:
  
       ::
  
          $ gnatpp --pp-off=' pp-' *.ad?
  
!    then gnatpp will recognize comments of the form
!    ``-- pp-`` instead of ``--!pp off`` for disabling pretty
!    printing. Note that the leading ``--`` of the comment is not
!    included in the argument to these switches.
  
  
     .. _Formatting_Comments:
--- 1204,1220 ----
             --!pp on -- reenable pretty printing
             ...
  
!    You can specify different comment strings using the :switch:`--pp-off`
!    and :switch:`--pp-on` switches. For example, if you say:
  
       ::
  
          $ gnatpp --pp-off=' pp-' *.ad?
  
!    ``gnatpp`` will recognize comments of the form ``-- pp-`` instead
!    of ``--!pp off`` for disabling pretty printing. Note that you do
!    not include the leading ``--`` of the comment in the argument to
!    these switches.
  
  
     .. _Formatting_Comments:
*************** building specialized scripts.
*** 1209,1225 ****
     Formatting Comments
     ^^^^^^^^^^^^^^^^^^^
  
!    Only ``--layout=compact`` and ``--layout=tall`` format comments.
  
     Comments in Ada code are of two kinds:
  
!    * a *whole-line comment*, which appears by itself (possibly preceded by
       white space) on a line
  
!    * an *end-of-line comment*, which follows some other Ada code on
       the same line.
  
!    A whole-line comment is indented according to the surrounding code,
     with some exceptions. Comments that start in column 1 are kept
     there. If possible, comments are not moved so far to the right that
     the maximum line length is exceeded. Special-form comments such as
--- 1222,1238 ----
     Formatting Comments
     ^^^^^^^^^^^^^^^^^^^
  
!    Only :switch:`--layout=compact` and :switch:`--layout=tall` format comments.
  
     Comments in Ada code are of two kinds:
  
!    * *whole-line comments*, which appear by themselves (possibly preceded by
       white space) on a line
  
!    * *end-of-line comments*, which follows some other Ada code on
       the same line.
  
!    ``gnatpp`` indents whole-line comment according to the surrounding code,
     with some exceptions. Comments that start in column 1 are kept
     there. If possible, comments are not moved so far to the right that
     the maximum line length is exceeded. Special-form comments such as
*************** building specialized scripts.
*** 1227,1242 ****
  
     For an end-of-line comment, ``gnatpp`` tries to leave the same
     number of spaces between the end of the preceding Ada code and the
!    beginning of the comment as appear in the original source.
  
     For each whole-line comment that does not end with two hyphens or that are
     not special-form comments, ``gnatpp`` inserts spaces if necessary after the
     starting two hyphens to ensure that there are at least two spaces between
     these hyphens and the first non-blank character of the comment.
  
!    With ``--layout=compact``, whole-line comments that form a paragraph will be
!    filled in typical word processor style (that is, moving words between lines
!    to make the lines other than the last similar in length).
  
  
     .. _Name_Casing:
--- 1240,1256 ----
  
     For an end-of-line comment, ``gnatpp`` tries to leave the same
     number of spaces between the end of the preceding Ada code and the
!    beginning of the comment, as it appears in the original source.
  
     For each whole-line comment that does not end with two hyphens or that are
     not special-form comments, ``gnatpp`` inserts spaces if necessary after the
     starting two hyphens to ensure that there are at least two spaces between
     these hyphens and the first non-blank character of the comment.
  
!    With :switch:`--layout=compact`, ``gnatpp`` fills in whole-line
!    comments that form a paragraph in typical word processor style
!    (that is, moving words between lines to make the lines other than
!    the last similar in length).
  
  
     .. _Name_Casing:
*************** building specialized scripts.
*** 1247,1268 ****
     ``gnatpp`` always converts the usage occurrence of a (simple) name to
     the same casing as the corresponding defining identifier.
  
!    You control the casing for defining occurrences via the ``--name...``
!    switches. With ``--name-case-as-declared``, which is the default,
     defining occurrences appear exactly as in the source file where they
     are declared. The other values for this switch --
!    ``--name-upper-case``, ``--name-lower-case``, ``--name-mixed-case``
     -- result in upper, lower, or mixed case, respectively. If
     ``gnatpp`` changes the casing of a defining occurrence, it
!    analogously changes the casing of all the usage occurrences of this
     name.
  
!    If the defining occurrence of a name is not in the source compilation
!    unit currently being processed by ``gnatpp``, the casing of each
!    reference to this name is changed according to the switch (subject to
!    the dictionary file mechanism described below). Thus ``gnatpp`` acts
!    as though the switch had affected the casing for the defining
!    occurrence of the name.
  
     The options
     :switch:`--attribute...`,
--- 1261,1283 ----
     ``gnatpp`` always converts the usage occurrence of a (simple) name to
     the same casing as the corresponding defining identifier.
  
!    You control the casing for defining occurrences via the :switch:`--name...`
!    switches. With :switch:`--name-case-as-declared`, which is the default,
     defining occurrences appear exactly as in the source file where they
     are declared. The other values for this switch --
!    :switch:`--name-upper-case`, :switch:`--name-lower-case`, and
!    :switch:`--name-mixed-case`
     -- result in upper, lower, or mixed case, respectively. If
     ``gnatpp`` changes the casing of a defining occurrence, it
!    similarly changes the casing of all the usage occurrences of this
     name.
  
!    If the defining occurrence of a name is not in the source
!    compilation unit currently being processed by ``gnatpp``,
!    ``gnatpp`` changes the casing of each reference to this name
!    according to the switch (subject to the dictionary file mechanism
!    described below). Thus ``gnatpp`` acts as though the switch had
!    affected the casing for the defining occurrence of the name.
  
     The options
     :switch:`--attribute...`,
*************** building specialized scripts.
*** 1276,1312 ****
     types, named numbers and pragmas, respectively.
     :switch:`--type...` cover subtypes as well.
  
!    Some names may need to be spelled with casing conventions that are not
!    covered by the upper-, lower-, and mixed-case transformations.
!    You can arrange correct casing by placing such names in a
!    *dictionary file*,
!    and then supplying a ``--dictionary`` switch.
!    The casing of names from dictionary files overrides
!    any ``--name...`` switch.
  
!    To handle the casing of Ada predefined names and the names from GNAT libraries,
!    ``gnatpp`` assumes a default dictionary file.
!    The name of each predefined entity is spelled with the same casing as is used
!    for the entity in the :title:`Ada Reference Manual` (usually mixed case).
!    The name of each entity in the GNAT libraries is spelled with the same casing
!    as is used in the declaration of that entity.
  
!    The ``--dictionary=-`` switch suppresses the use of
!    the default dictionary file. Instead, the casing for predefined and
!    GNAT-defined names will be established by the
!    ``-n`` switch or explicit dictionary files. For
!    example, by default the names ``Ada.Text_IO`` and
!    ``GNAT.OS_Lib`` will appear as just shown, even in the presence of
!    a ``--name-upper-case`` switch. To ensure that even
!    such names are rendered in uppercase, additionally supply the
!    --dictionary=- switch (or else place these names
!    in upper case in a dictionary file).
  
!    A dictionary file is a plain text file; each line in this file can be
     either a blank line (containing only space characters), an Ada comment
     line, or the specification of exactly one *casing schema*.
  
!    A casing schema is a string that has the following syntax:
  
       ::
  
--- 1291,1326 ----
     types, named numbers and pragmas, respectively.
     :switch:`--type...` cover subtypes as well.
  
!    You may need some names to be spelled with casing conventions that
!    are not covered by the upper-, lower-, and mixed-case
!    transformations.  You can have ``gnatpp`` produce the correct
!    casing by placing such names in a *dictionary file*, and
!    specifying a :switch:`--dictionary` switch.  Specifying any
!    dictionary files overrides any :switch:`--name...` switch.
  
!    ``gnatpp`` uses a default dictionary file to choose the casing of
!    Ada predefined names and the names from GNAT libraries,
!    
!    Each predefined entity is converted to the same casing as
!    the entity in the :title:`Ada Reference Manual` (usually
!    mixed case) and each entity in the GNAT libraries is cased
!    the same as its declaration in the library.
  
!    You can specify the :switch:`--dictionary=-` switch to suppress
!    the use of the default dictionary file. Instead, the casing for
!    predefined and GNAT-defined names is given by the :switch:`-n`
!    switch or explicit dictionary files. For example, by default the
!    names ``Ada.Text_IO`` and ``GNAT.OS_Lib`` appear as just shown,
!    even in the presence of a :switch:`--name-upper-case` switch. To
!    ensure that even such names are rendered in uppercase, you must
!    specify the :switch:`--dictionary=-` switch or place these names
!    in upper case in a dictionary file.
  
!    A dictionary file is a plain text file; each line in this file is
     either a blank line (containing only space characters), an Ada comment
     line, or the specification of exactly one *casing schema*.
  
!    A casing schema is a string with the following syntax:
  
       ::
  
*************** building specialized scripts.
*** 1318,1353 ****
     (See :title:`Ada Reference Manual`, Section 2.3) for the definition of the
     ``identifier`` lexical element and the ``letter_or_digit`` category.)
  
!    The casing schema string can be followed by white space and/or an Ada-style
!    comment; any amount of white space is allowed before the string.
  
!    If a dictionary file is passed as
!    the value of a :switch:`--dictionary={file}` switch
!    then for every
!    simple name and every identifier, ``gnatpp`` checks if the dictionary
!    defines the casing for the name or for some of its parts (the term 'subword'
!    is used below to denote the part of a name which is delimited by '_' or by
!    the beginning or end of the word and which does not contain any '_' inside):
  
!    * if the whole name is in the dictionary, ``gnatpp`` uses for this name
!      the casing defined by the dictionary; no subwords are checked for this word
  
!    * for every subword ``gnatpp`` checks if the dictionary contains the
!      corresponding string of the form ``simple_identifier``,
!      and if it does, the casing of this ``simple_identifier`` is used
!      for this subword
  
!    * if the whole name does not contain any '_' inside, and if for this name
!      the dictionary contains two entries -- one of the form ``identifier``,
!      and another of the form ``simple_identifier`` -- then the first one
!      is applied to define the casing of this name
  
!    * if more than one dictionary file is passed as ``gnatpp`` switches, each
!      dictionary adds new casing exceptions and overrides all the existing casing
!      exceptions set by the previous dictionaries
  
     * when ``gnatpp`` checks if the word or subword is in the dictionary,
!      this check is not case sensitive
  
     For example, suppose we have the following source to reformat:
  
--- 1332,1369 ----
     (See :title:`Ada Reference Manual`, Section 2.3) for the definition of the
     ``identifier`` lexical element and the ``letter_or_digit`` category.)
  
!    You can follow a casing schema string by white space and/or an Ada-style
!    comment. You can also have any amount of white space before the string.
  
!    If you pass a dictionary file as the value of a
!    :switch:`--dictionary={file}` switch, ``gnatpp`` checks every
!    simple name and identifier to see if the dictionary defines
!    the casing for the name or for some of its parts (the term
!    'subword' is used below to denote the part of a name that is
!    delimited by '_' or by the beginning or end of the word that
!    doesn't contain any '_' characters):
  
!    * if the complete name is in the dictionary, ``gnatpp`` uses the
!      casing defined by the dictionary for this name; it does not check
!      any subwords
  
!    * for every subword, ``gnatpp`` checks if the dictionary contains
!      the corresponding string of the form ``simple_identifier``, and
!      if it does, the casing of this ``simple_identifier`` is used for
!      this subword
  
!    * if the complete name does not contain any '_' characters and if
!      for this name the dictionary contains two entries -- one of the
!      form ``identifier``, and another of the form
!      ``simple_identifier`` -- ``gnatpp`` uses the first one to obtain
!      the casing of this name
  
!    * if you pass more than one dictionary file as ``gnatpp`` switches,
!      each dictionary adds new casing exceptions and overrides all the
!      existing casing exceptions set by the previous dictionaries
  
     * when ``gnatpp`` checks if the word or subword is in the dictionary,
!      it uses a check that's not case sensitive
  
     For example, suppose we have the following source to reformat:
  
*************** building specialized scripts.
*** 1380,1386 ****
  
          $ gnatpp --name-mixed-case --dictionary=dict1 --dictionary=dict2 test.adb
  
!    then we will get the following name casing in the ``gnatpp`` output:
  
  
       .. code-block:: ada
--- 1396,1402 ----
  
          $ gnatpp --name-mixed-case --dictionary=dict1 --dictionary=dict2 test.adb
  
!    then we get the following name casing in the ``gnatpp`` output:
  
  
       .. code-block:: ada
*************** building specialized scripts.
*** 1400,1408 ****
     ^^^^^^^^^^^^^^^^^^^^^^^
  
     ``gnatpp`` has some support for preprocessor directives.
!    You can use preprocessor symbols, as in ``$symbol``.
!    In addition, you can use conditional compilation,
!    so long as the program text is syntactically legal Ada code
     after removing all the preprocessor directives (lines starting
     with ``#``). For example, ``gnatpp`` can format the following:
  
--- 1416,1424 ----
     ^^^^^^^^^^^^^^^^^^^^^^^
  
     ``gnatpp`` has some support for preprocessor directives.
!    You can use preprocessor symbols such as ``$symbol``.
!    In addition, you can use conditional compilation as
!    long as the program text is syntactically legal Ada code
     after removing all the preprocessor directives (lines starting
     with ``#``). For example, ``gnatpp`` can format the following:
  
*************** building specialized scripts.
*** 1480,1487 ****
     .. index:: --compact (gnatpp)
  
     :switch:`--compact, --no-compact`
!      In calls and similar, ``--compact`` packs as many
!      subexpressions on the same line as possible. Example:
  
       .. code-block:: ada
  
--- 1496,1503 ----
     .. index:: --compact (gnatpp)
  
     :switch:`--compact, --no-compact`
!      In calls and similar constructs, :switch:`--compact` packs as many
!      subexpressions into the same line as is possible. Example:
  
       .. code-block:: ada
  
*************** building specialized scripts.
*** 1489,1498 ****
            (Short_One, Another_Short_One,
             A_Very_Very_Very_Very_Very_Very_Very_Very_Long_One);
  
!      On the contrary, with ``--no-compact``, in calls and similar, if it is
!      necessary to split a line between two subexpressions (because otherwise
!      the construct would exceed --max-line-length), then all such
!      subexpressions are placed on separate lines. Example:
  
       .. code-block:: ada
  
--- 1505,1515 ----
            (Short_One, Another_Short_One,
             A_Very_Very_Very_Very_Very_Very_Very_Very_Long_One);
  
!      On the other hand, if you specify :switch:`--no-compact`,
!      ``gnatpp`` places all such subexpressions on separate lines if
!      it's necessary to split a line between two subexpressions to
!      avoid the construct exceeding :switch:`--max-line-length`. For
!      example:
  
       .. code-block:: ada
  
*************** building specialized scripts.
*** 1546,1560 ****
     .. index:: --indent-named-statements (gnatpp)
  
     :switch:`--indent-named-statements, --no-indent-named-statements`
!      Named block and loop statements are indented with respect to
!      the name.
  
     .. index:: --split-line-before-op (gnatpp)
  
!    :switch:`--split-line-before-op, --no-split-line-before-op`
!      If it is necessary to split a line at a binary operator, by default
!      the line is split after the operator. With this option, it is split
!      before the operator.
  
     .. index:: --use-on-new-line (gnatpp)
  
--- 1563,1576 ----
     .. index:: --indent-named-statements (gnatpp)
  
     :switch:`--indent-named-statements, --no-indent-named-statements`
!      Indent block and loop statements with respect to the name.
  
     .. index:: --split-line-before-op (gnatpp)
  
!    :switch:`--split-line-before-op, --no-split-line-before-op` If it
!      is necessary to split a line at a binary operator, by default the
!      line is split after the operator. When you specify this switch,
!      it is split before the operator.
  
     .. index:: --use-on-new-line (gnatpp)
  
*************** building specialized scripts.
*** 1656,1662 ****
    .. index:: ! gnatstub
  
    ``gnatstub`` creates empty but compilable bodies
!   for library unit declarations, and empty but compilable
    subunits for body stubs.
  
    ``gnatstub`` is a project-aware tool.
--- 1672,1678 ----
    .. index:: ! gnatstub
  
    ``gnatstub`` creates empty but compilable bodies
!   for library unit declarations and empty but compilable
    subunits for body stubs.
  
    ``gnatstub`` is a project-aware tool.
*************** building specialized scripts.
*** 1668,1684 ****
    ``gnatstub`` switches is named ``gnatstub``.
  
  
!   By default, all the program unit bodies generated by ``gnatstub``
    raise ``Program_Error``, which will catch accidental calls of
!   generated stubs. This behavior can be changed with option
!   ``--no-exception`` (see below).
  
    .. _Running_gnatstub:
  
    Running ``gnatstub``
    --------------------
  
!   ``gnatstub`` invocation has the following form:
  
      ::
  
--- 1684,1700 ----
    ``gnatstub`` switches is named ``gnatstub``.
  
  
!   By default, all program unit bodies generated by ``gnatstub``
    raise ``Program_Error``, which will catch accidental calls of
!   generated stubs. You can change this behavior with switch
!   :switch:`--no-exception` (see below).
  
    .. _Running_gnatstub:
  
    Running ``gnatstub``
    --------------------
  
!   You invoke ``gnatstub`` like this:
  
      ::
  
*************** building specialized scripts.
*** 1686,1710 ****
  
    where
  
!   * *filename*
!       is the name of the source file that contains a library unit declaration
!       for which a body must be created or a library unit body for which subunits
!       must be created for the body stubs declared in this body.
!       The file name may contain path information.
!       If the name does not follow GNAT file naming conventions and the set
!       of switches does not contain a project file that defines naming
!       conventions, the name of the body file must
!       be provided
!       explicitly as the value of the :switch:`--output={body-name}` option.
!       If the file name follows the GNAT file naming
!       conventions and the name of the body file is not provided,
!       ``gnatstub``
!       takes the naming conventions for the generated source from the
!       project file provided as a parameter of ``-P`` switch if any,
!       or creates the name file to generate using the standard GNAT
!       naming conventions.
  
!       Note that it is no longer necessary to specify the Ada language version;
        ``gnatstub`` can process Ada source code written in any version from
        Ada 83 onward without specifying any language version switch.
  
--- 1702,1723 ----
  
    where
  
!   * *filename* is the name of the source file that contains a library
!       unit declaration for which you want a body to be created or a
!       library unit body for which you want subunits to be created for
!       the body stubs declared in this body.  The file name may contain
!       path information.  If the name does not follow GNAT file naming
!       conventions and the set of switches does not contain a project
!       file that defines naming conventions, you must explicitly
!       provide the name of the body file as the value of the
!       :switch:`--output={body-name}` switch.  If the file name follows
!       the GNAT file naming conventions and you do not provide the name
!       of the body file ``gnatstub`` uses the naming conventions for
!       the generated source from the project file provided as a
!       parameter of a :switch:`-P` switch if any, or creates the name file
!       using the standard GNAT naming conventions.
  
!       Note that you no longer need to specify the Ada language version;
        ``gnatstub`` can process Ada source code written in any version from
        Ada 83 onward without specifying any language version switch.
  
*************** building specialized scripts.
*** 1720,1740 ****
    .. index:: --version (gnatstub)
  
    :switch:`--version`
!     Display copyright and version, then exit disregarding all other options.
  
  
    .. index:: --help (gnatstub)
  
    :switch:`--help`
!     Display usage, then exit disregarding all other options.
  
  
    .. index:: -P (gnatstub)
  
    :switch:`-P {file}`
!     Indicates the name of the project file that describes the set of sources
!     to be processed. An aggregate project is allowed as the file parameter only
!     if it has exactly one non-aggregate project being aggregated.
  
  
    .. index:: -X (gnatstub)
--- 1733,1754 ----
    .. index:: --version (gnatstub)
  
    :switch:`--version`
!     Display copyright and version, then exit, disregarding all other options.
  
  
    .. index:: --help (gnatstub)
  
    :switch:`--help`
!     Display usage, then exit, disregarding all other options.
  
  
    .. index:: -P (gnatstub)
  
    :switch:`-P {file}`
!     Indicates the name of the project file that describes the set of
!     sources to be processed. You can specify an aggregate project as
!     the file parameter only if it has exactly one non-aggregate
!     project being aggregated.
  
  
    .. index:: -X (gnatstub)
*************** building specialized scripts.
*** 1747,1760 ****
    .. index:: --RTS (gnatstub)
  
    :switch:`--RTS={rts-path}`
!     Specifies the default location of the runtime library. Same meaning as the
!     equivalent ``gnatmake`` flag (:ref:`Switches_for_gnatmake`).
  
  
    .. index:: --subunits (gnatstub)
  
    :switch:`--subunits`
!     Generate subunits for body stubs. If this switch is specified,
      ``gnatstub`` expects a library unit body as an argument file;
      otherwise a library unit declaration is expected. If a body stub
      already has a corresponding subunit, ``gnatstub`` does not
--- 1761,1775 ----
    .. index:: --RTS (gnatstub)
  
    :switch:`--RTS={rts-path}`
!     Specifies the default location of the runtime library. It has the
!     same meaning as the equivalent ``gnatmake`` flag
!     (:ref:`Switches_for_gnatmake`).
  
  
    .. index:: --subunits (gnatstub)
  
    :switch:`--subunits`
!     Generate subunits for body stubs. If you specify this switch,
      ``gnatstub`` expects a library unit body as an argument file;
      otherwise a library unit declaration is expected. If a body stub
      already has a corresponding subunit, ``gnatstub`` does not
*************** building specialized scripts.
*** 1767,1773 ****
      If the destination directory already contains a file with the name of the
      body file
      for the argument spec file, replace it with the generated body stub.
!     This switch cannot be used together with ``--subunits``.
  
  
    .. index:: --comment-header-spec (gnatstub)
--- 1782,1788 ----
      If the destination directory already contains a file with the name of the
      body file
      for the argument spec file, replace it with the generated body stub.
!     This switch cannot be used together with :switch:`--subunits`.
  
  
    .. index:: --comment-header-spec (gnatstub)
*************** building specialized scripts.
*** 1794,1801 ****
  
    :switch:`--max-line-length={n}`
      (``n`` is a non-negative integer). Set the maximum line length for
!     the output files. The default is 79. The maximum value that can be
!     specified is 32767.
  
  
    .. index:: --indentation (gnatstub)
--- 1809,1816 ----
  
    :switch:`--max-line-length={n}`
      (``n`` is a non-negative integer). Set the maximum line length for
!     the output files. The default is 79. The maximum value that you can
!     specify is 32767.
  
  
    .. index:: --indentation (gnatstub)
*************** building specialized scripts.
*** 1809,1859 ****
    .. index:: --alphabetical-order (gnatstub)
  
    :switch:`--alphabetical-order`
!     Order local bodies alphabetically. (By default local bodies are ordered
      in the same way as the corresponding local specs in the argument
!     spec file.)
  
  
    .. index:: --no-exception (gnatstub)
  
    :switch:`--no-exception`
      Avoid raising Program_Error in the generated bodies of program unit stubs,
!     except in the case of functions, where we have no value to return.
  
  
    .. index:: --no-local-header (gnatstub)
  
    :switch:`--no-local-header`
!     Do not place local comment header with unit name before body stub for a
      unit.
  
  
    .. index:: --files (gnatstub)
  
    :switch:`--files={filename}`
!     Take as arguments the files listed in text file ``file``.
!     Text file ``file`` may contain empty lines that are ignored.
!     Each nonempty line should contain the name of an existing file.
!     Several such switches may be specified.
  
  
    .. index:: --output (gnatstub)
  
!   :switch:`--output={body-name}`
!     Body file name. This should be set if the argument file name does
!     not follow the default GNAT file naming conventions, and the naming
!     conventions are not specified by a project file. If this switch and
!     ``-P`` are both omitted, the name for the body will be obtained
!     according to the default GNAT file naming conventions.
  
  
    .. index:: --output-dir (gnatstub)
  
!   :switch:`--output-dir={dir-name}`
!     The directory in which to place the output files.
!     If this switch is not set, the generated library unit body is
!     placed in the current directory, and generated sununits
!     in the directory where the argument body is located.
  
  
    .. index:: --wide-character-encoding (gnatstub)
--- 1824,1874 ----
    .. index:: --alphabetical-order (gnatstub)
  
    :switch:`--alphabetical-order`
!     Order local bodies alphabetically. By default local bodies are ordered
      in the same way as the corresponding local specs in the argument
!     spec file.
  
  
    .. index:: --no-exception (gnatstub)
  
    :switch:`--no-exception`
      Avoid raising Program_Error in the generated bodies of program unit stubs,
!     except in the case of functions, where there will be value to return.
  
  
    .. index:: --no-local-header (gnatstub)
  
    :switch:`--no-local-header`
!     Do not place a local comment header with unit name before body stub for a
      unit.
  
  
    .. index:: --files (gnatstub)
  
    :switch:`--files={filename}`
!     Take as arguments the files listed in text file ``file``, which
!     may contain empty lines that are ignored.
!     You should specify the name of an existing file in each non-empty line.
!     You may specify multiple :switch:`--files=` switches.
  
  
    .. index:: --output (gnatstub)
  
!   :switch:`--output={body-name}` Body file name. You should set this
!     if the argument file name does not follow the default GNAT file
!     naming conventions and the naming conventions are not specified by
!     a project file. If you omit both this switch and :switch:`-P`,
!     ``gnatpp`` will choose the name for the body according to the
!     default GNAT file naming conventions.
  
  
    .. index:: --output-dir (gnatstub)
  
!   :switch:`--output-dir={dir-name}` The directory in which to place
!     the output files.  If you do not specify this switch, ``gnatpp``
!     places the generated library unit body in the current directory
!     and generated sununits in the directory where the argument body is
!     located.
  
  
    .. index:: --wide-character-encoding (gnatstub)
*************** building specialized scripts.
*** 1961,1967 ****
  
         $ gnatsymbolize [ switches ] filename [ addresses ]
  
!   For instance, consider the following Ada program:
  
       .. code-block:: ada
  
--- 1976,1982 ----
  
         $ gnatsymbolize [ switches ] filename [ addresses ]
  
!   For example, consider the following Ada program:
  
       .. code-block:: ada
  
*************** building specialized scripts.
*** 2022,2028 ****
  
    This program, when built and run, prints a list of addresses which
    correspond to the traceback when inside function ``Call_Me_Third``.
!   For instance, on x86-64 GNU/Linux:
  
      ::
  
--- 2037,2043 ----
  
    This program, when built and run, prints a list of addresses which
    correspond to the traceback when inside function ``Call_Me_Third``.
!   For example, on x86-64 GNU/Linux:
  
      ::
  
*************** building specialized scripts.
*** 2035,2042 ****
         0x00005586C9D8128C
         0x00005586C9D81069
  
!   ``gnatsymbolize`` can be used to translate those addresses into
!   code locations as follow:
  
      ::
  
--- 2050,2057 ----
         0x00005586C9D8128C
         0x00005586C9D81069
  
!   You can use ``gnatsymbolize``  to translate those addresses into
!   code locations as follows:
  
      ::
  
*************** building specialized scripts.
*** 2052,2058 ****
    Switches for ``gnatsymbolize``
    ------------------------------
  
!   ``gnatsymbolize`` recognizes the following switches:
  
    .. index:: --help (gnatsymbolize)
  
--- 2067,2073 ----
    Switches for ``gnatsymbolize``
    ------------------------------
  
!   You can specify the following switches for ``gnatsymbolize``:
  
    .. index:: --help (gnatsymbolize)
  
*************** building specialized scripts.
*** 2062,2068 ****
  
    :switch:`--cache`
      Read the symbolic information from the executable and cache them
!     in memory in order to accelerate the translation of each address
      into a symbolic location.
  
      Depending on the size of the executable and the number of addresses
--- 2077,2083 ----
  
    :switch:`--cache`
      Read the symbolic information from the executable and cache them
!     in memory to accelerate the translation of each address
      into a symbolic location.
  
      Depending on the size of the executable and the number of addresses
*************** building specialized scripts.
*** 2070,2082 ****
      overall.
  
    :switch:`--dump`
!     If :switch:`--cache` is used, dump the contents of the cache on
      Standard Output. Has no effect otherwise.
  
    :switch:`--count={N}`
!     Compute the symbolic traceback ``N`` times in a row. This option
!     is mostly useful for measuring the performance of ``gnatsymbolize``,
!     particularly in the case where the cache is being used.
  
    :switch:`--load`
      Interpret the first address as the load address of the executable.
--- 2085,2097 ----
      overall.
  
    :switch:`--dump`
!     If you have specified :switch:`--cache`, dump the contents of the cache to
      Standard Output. Has no effect otherwise.
  
    :switch:`--count={N}`
!     Compute the symbolic traceback ``N`` times in a row. You use this switch
!     mostly for measuring the performance of ``gnatsymbolize``,
!     particularly in the case where you have specified the cache to be used.
  
    :switch:`--load`
      Interpret the first address as the load address of the executable.
*************** building specialized scripts.
*** 2086,2099 ****
    ----------------------------------
  
    The translation is performed by reading the DWARF debugging
!   information produced by the compiler for each unit. All units
!   for which the translation is to be done must therefore be compiled
!   such that DWARF debugging information is produced. In most cases,
!   this is done by simply compiling with ``-g``.
  
    This program provides a functionality similar to ``addr2line``.
    It has fewer options to tailor its output, but has been designed
!   to require fewer of the DWARF sections to be present in the
    executable. In particular, it works for code compiled with ``-g1``.
  
  
--- 2101,2114 ----
    ----------------------------------
  
    The translation is performed by reading the DWARF debugging
!   information produced by the compiler for each unit. You must
!   therefore compile all units for which the translation is to be done
!   in a way that DWARF debugging information is produced. In most cases,
!   you do this by simply compiling with :switch:`-g`.
  
    This program provides a functionality similar to ``addr2line``.
    It has fewer options to tailor its output, but has been designed
!   to require fewer DWARF sections to be present in the
    executable. In particular, it works for code compiled with ``-g1``.
  
  
*************** building specialized scripts.
*** 2104,2110 ****
     Using Project Files with GNAT Tools
     ===================================
  
!    This section describes how project files can be used in conjunction
     with a number of GNAT tools.
     For a comprehensive description of project files and the overall
     GNAT Project Manager facility, please refer to the
--- 2119,2125 ----
     Using Project Files with GNAT Tools
     ===================================
  
!    This section describes how you can use project files in conjunction
     with a number of GNAT tools.
     For a comprehensive description of project files and the overall
     GNAT Project Manager facility, please refer to the
*************** building specialized scripts.
*** 2129,2146 ****
        specified, see below.
  
     :switch:`-U`
!       If a project file is supplied, say for project ``proj``,
!       but no sources are specified for ``proj`` (either by a
        project attribute or through a tool option that provides a list
        of the files to be used), process all the source files
        from projects imported either directly or indirectly by ``proj``.
        Otherwise this option has no effect.
  
     :switch:`-U {source_file}`
!       Similar to :switch:`-U`, but if no sources are specified then
        process only those source files for units in the closure of
        the Ada source contained in ``source_file``. Note that this option
!       expects the source file name but not the Ada unit name as its
        parameter.
  
     :switch:`-X{name}={val}`
--- 2144,2161 ----
        specified, see below.
  
     :switch:`-U`
!       If you supply a project file, say for project ``proj``,
!       but you don't specify any sources for ``proj`` (either by a
        project attribute or through a tool option that provides a list
        of the files to be used), process all the source files
        from projects imported either directly or indirectly by ``proj``.
        Otherwise this option has no effect.
  
     :switch:`-U {source_file}`
!       Similar to :switch:`-U`, but if you don't specify any sources,
        process only those source files for units in the closure of
        the Ada source contained in ``source_file``. Note that this option
!       expects the source file name, not the Ada unit name, as its
        parameter.
  
     :switch:`-X{name}={val}`
*************** building specialized scripts.
*** 2148,2172 ****
        value ``val``. Has no effect if no project has been specified.
  
     :switch:`--subdirs={dir}`
!       Use the ``dir`` subdirectory of the project's object directory (or the ``dir``
!       subdirectory of the project file directory if the project does not specify
!       an object directory) for tool output files. Has no effect if no project
!       has been specified or if :switch:`--no-objects-dir` is specified.
  
     :switch:`--no-objects-dir`
!       Place all the result files into the current directory (i.e., the directory
!       from which the tool invocation command is issued) instead of the project's
!       object directory. Has no effect if no project has been specified.
  
     :switch:`-eL`
        Follow all symbolic links when processing project files.
  
!    If a project file is specified and there is neither a :switch:`-U` option,
!    nor a :switch:`-U {main_unit}` option, nor some other explicit option to
     specify the source files, then the sources to be processed are the
     immediate sources of the specified project (i.e., the source files directly
     defined by that project, either implicitly by residing in the project
!    source directories, or explicitly through any of the source-related
     attributes).
  
     .. _Tool-specific_packages_in_project files:
--- 2163,2190 ----
        value ``val``. Has no effect if no project has been specified.
  
     :switch:`--subdirs={dir}`
!       Use the ``dir`` subdirectory of the project's object directory
!       (or the ``dir`` subdirectory of the project file directory if
!       the project does not specify an object directory) for tool
!       output files. Has no effect if you haven't specified a project
!       and if you haven't specified the if :switch:`--no-objects-dir`
!       switch.
  
     :switch:`--no-objects-dir`
!       Place all the result files into the current directory (i.e., the
!       directory from which the tool invocation command is issued)
!       instead of the project's object directory. Has no effect if you
!       haven't specified a project.
  
     :switch:`-eL`
        Follow all symbolic links when processing project files.
  
!    If you specify a project file but neither a :switch:`-U` option,
!    nor a :switch:`-U {main_unit}` option, nor any other explicit option to
     specify the source files, then the sources to be processed are the
     immediate sources of the specified project (i.e., the source files directly
     defined by that project, either implicitly by residing in the project
!    source directories or explicitly through any of the source-related
     attributes).
  
     .. _Tool-specific_packages_in_project files:
*************** building specialized scripts.
*** 2178,2184 ****
     the package names are given elsewhere in this manual, in the sections that describe
     the respective tools.
  
!    A tool-specific package in a project file may define the ``Default_Switches``
!    attribute indexed by "ada" (as language name). The value of this attribute
!    is a list of switches that will be supplied at tool invocation.
!    Project-specific switches cannot be specified through this attribute.
--- 2196,2203 ----
     the package names are given elsewhere in this manual, in the sections that describe
     the respective tools.
  
!    A tool-specific package in a project file may define the
!    ``Default_Switches`` attribute indexed by "ada" (as language
!    name). You set the value of this attribute to a list of switches
!    that you want the tool to use when it's invoked.  You cannot
!    specify project-specific switches through this attribute.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/inline_assembler.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/inline_assembler.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/inline_assembler.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/inline_assembler.rst	Fri Apr 25 08:18:00 2025
*************** Inline Assembler
*** 9,18 ****
  .. index:: Inline Assembler
  
  If you need to write low-level software that interacts directly
! with the hardware, Ada provides two ways to incorporate assembly
  language code into your program.  First, you can import and invoke
  external routines written in assembly language, an Ada feature fully
! supported by GNAT.  However, for small sections of code it may be simpler
  or more efficient to include assembly language statements directly
  in your Ada source program, using the facilities of the implementation-defined
  package ``System.Machine_Code``, which incorporates the gcc
--- 9,18 ----
  .. index:: Inline Assembler
  
  If you need to write low-level software that interacts directly
! with the hardware, Ada provides two ways for you to incorporate assembly
  language code into your program.  First, you can import and invoke
  external routines written in assembly language, an Ada feature fully
! supported by GNAT.  However, for small sections of code, it may be simpler
  or more efficient to include assembly language statements directly
  in your Ada source program, using the facilities of the implementation-defined
  package ``System.Machine_Code``, which incorporates the gcc
*************** including the following:
*** 24,37 ****
  * Automatic usage of the proper calling conventions
  * Access to Ada constants and variables
  * Definition of intrinsic routines
! * Possibility of inlining a subprogram comprising assembler code
  * Code optimizer can take Inline Assembler code into account
  
  This appendix presents a series of examples to show you how to use
  the Inline Assembler.  Although it focuses on the Intel x86,
  the general approach applies also to other processors.
! It is assumed that you are familiar with Ada
! and with assembly language programming.
  
  .. _Basic_Assembler_Syntax:
  
--- 24,37 ----
  * Automatic usage of the proper calling conventions
  * Access to Ada constants and variables
  * Definition of intrinsic routines
! * Possibility of inlining a subprogram consisting of assembler code
  * Code optimizer can take Inline Assembler code into account
  
  This appendix presents a series of examples to show you how to use
  the Inline Assembler.  Although it focuses on the Intel x86,
  the general approach applies also to other processors.
! It is assumed you are familiar with both Ada
! and assembly language programming.
  
  .. _Basic_Assembler_Syntax:
  
*************** pre-processor) documentation for further
*** 99,107 ****
  A Simple Example of Inline Assembler
  ====================================
  
! The following example will generate a single assembly language statement,
  ``nop``, which does nothing.  Despite its lack of run-time effect,
! the example will be useful in illustrating the basics of
  the Inline Assembler facility.
  
    .. code-block:: ada
--- 99,107 ----
  A Simple Example of Inline Assembler
  ====================================
  
! The following example generate a single assembly language statement,
  ``nop``, which does nothing.  Despite its lack of run-time effect,
! the example is useful in illustrating the basics of
  the Inline Assembler facility.
  
    .. code-block:: ada
*************** the Inline Assembler facility.
*** 114,131 ****
  
  ``Asm`` is a procedure declared in package ``System.Machine_Code``;
  here it takes one parameter, a *template string* that must be a static
! expression and that will form the generated instruction.
  ``Asm`` may be regarded as a compile-time procedure that parses
! the template string and additional parameters (none here),
! from which it generates a sequence of assembly language instructions.
  
  The examples in this chapter will illustrate several of the forms
  for invoking ``Asm``; a complete specification of the syntax
  is found in the ``Machine_Code_Insertions`` section of the
  :title:`GNAT Reference Manual`.
  
! Under the standard GNAT conventions, the ``Nothing`` procedure
! should be in a file named :file:`nothing.adb`.
  You can build the executable in the usual way:
  
    ::
--- 114,131 ----
  
  ``Asm`` is a procedure declared in package ``System.Machine_Code``;
  here it takes one parameter, a *template string* that must be a static
! expression that produces the generated instruction.
  ``Asm`` may be regarded as a compile-time procedure that parses
! the template string and any additional parameters (none, in this case)
! and generates one or more assembly language instructions.
  
  The examples in this chapter will illustrate several of the forms
  for invoking ``Asm``; a complete specification of the syntax
  is found in the ``Machine_Code_Insertions`` section of the
  :title:`GNAT Reference Manual`.
  
! Under the standard GNAT conventions, you should put the ``Nothing`` procedure
! in a file named :file:`nothing.adb`.
  You can build the executable in the usual way:
  
    ::
*************** where the options are:
*** 155,161 ****
      do not add runtime checks
  
  This gives a human-readable assembler version of the code. The resulting
! file will have the same name as the Ada source file, but with a ``.s``
  extension. In our example, the file :file:`nothing.s` has the following
  contents:
  
--- 155,161 ----
      do not add runtime checks
  
  This gives a human-readable assembler version of the code. The resulting
! file has the same name as the Ada source file but with a ``.s``
  extension. In our example, the file :file:`nothing.s` has the following
  contents:
  
*************** can differ on different targets. For exa
*** 183,190 ****
  on NT you will see '/APP'.
  
  If you make a mistake in your assembler code (such as using the
! wrong size modifier, or using a wrong operand for the instruction) GNAT
! will report this error in a temporary file, which will be deleted when
  the compilation is finished.  Generating an assembler file will help
  in such cases, since you can assemble this file separately using the
  ``as`` assembler that comes with gcc.
--- 183,190 ----
  on NT you will see '/APP'.
  
  If you make a mistake in your assembler code (such as using the
! wrong size modifier or using a wrong operand for the instruction) GNAT
! will report this error in a temporary file, which is deleted when
  the compilation is finished.  Generating an assembler file will help
  in such cases, since you can assemble this file separately using the
  ``as`` assembler that comes with gcc.
*************** Assembling the file using the command
*** 197,203 ****
  
  will give you error messages whose lines correspond to the assembler
  input file, so you can easily find and correct any mistakes you made.
! If there are no errors, ``as`` will generate an object file
  :file:`nothing.out`.
  
  
--- 197,203 ----
  
  will give you error messages whose lines correspond to the assembler
  input file, so you can easily find and correct any mistakes you made.
! If there are no errors, ``as`` generates an object file called
  :file:`nothing.out`.
  
  
*************** statements.
*** 227,236 ****
          Put_Line ("Flags register:" & Flags'Img);
       end Get_Flags;
  
! In order to have a nicely aligned assembly listing, we have separated
! multiple assembler statements in the Asm template string with linefeed
! (ASCII.LF) and horizontal tab (ASCII.HT) characters.
! The resulting section of the assembly output file is:
  
    ::
  
--- 227,236 ----
          Put_Line ("Flags register:" & Flags'Img);
       end Get_Flags;
  
! We have separated multiple assembler statements in the Asm template
! string with linefeed (ASCII.LF) and horizontal tab (ASCII.HT)
! characters in order to have a nicely aligned assembly listing.  The
! resulting section of the assembly output file is:
  
    ::
  
*************** In the generated assembly code, one of t
*** 269,288 ****
  Names such as ``%0``, ``%1``, ``%2``, etc., denote input or output
  variables: operands you later define using ``Input`` or ``Output``
  parameters to ``Asm``.
! An output variable is illustrated in
! the third statement in the Asm template string:
  
    ::
  
       movl %%eax, %0
  
! The intent is to store the contents of the eax register in a variable that can
! be accessed in Ada.  Simply writing ``movl %%eax, Flags`` would not
! necessarily work, since the compiler might optimize by using a register
! to hold Flags, and the expansion of the ``movl`` instruction would not be
! aware of this optimization.  The solution is not to store the result directly
! but rather to advise the compiler to choose the correct operand form;
! that is the purpose of the ``%0`` output variable.
  
  Information about the output variable is supplied in the ``Outputs``
  parameter to ``Asm``:
--- 269,289 ----
  Names such as ``%0``, ``%1``, ``%2``, etc., denote input or output
  variables: operands you later define using ``Input`` or ``Output``
  parameters to ``Asm``.
! An output variable is shown in
! the third section of the Asm template string:
  
    ::
  
       movl %%eax, %0
  
! The intent of this section is to store the contents of the ``eax``
! register in a variable that can be accessed in Ada.  Simply writing
! ``movl %%eax, Flags`` would not necessarily work, since the compiler
! might optimize by using a register to hold ``Flags``, and the expansion of
! the ``movl`` instruction would not be aware of this optimization.  The
! solution is not to store the result directly but rather to advise the
! compiler to choose the correct operand form; that is the purpose of
! the ``%0`` output variable.
  
  Information about the output variable is supplied in the ``Outputs``
  parameter to ``Asm``:
*************** parameter to ``Asm``:
*** 292,305 ****
       Outputs => Unsigned_32'Asm_Output ("=g", Flags));
  
  The output is defined by the ``Asm_Output`` attribute of the target type;
! the general format is
  
    .. code-block:: ada
  
       Type'Asm_Output (constraint_string, variable_name)
  
  The constraint string directs the compiler how
! to store/access the associated variable.  In the example
  
    .. code-block:: ada
  
--- 293,306 ----
       Outputs => Unsigned_32'Asm_Output ("=g", Flags));
  
  The output is defined by the ``Asm_Output`` attribute of the target type;
! the general format is:
  
    .. code-block:: ada
  
       Type'Asm_Output (constraint_string, variable_name)
  
  The constraint string directs the compiler how
! to store/access the associated variable.  In the example:
  
    .. code-block:: ada
  
*************** the optimizer from keeping it in a regis
*** 316,329 ****
  uses the ``"r"`` (register) constraint, telling the compiler to
  store the variable in a register.
  
! If the constraint is preceded by the equal character '=', it tells
! the compiler that the variable will be used to store data into it.
  
  In the ``Get_Flags`` example, we used the ``"g"`` (global) constraint,
! allowing the optimizer to choose whatever it deems best.
  
  There are a fairly large number of constraints, but the ones that are
! most useful (for the Intel x86 processor) are the following:
  
   ====== ==========================================
   *=*    output constraint
--- 317,330 ----
  uses the ``"r"`` (register) constraint, telling the compiler to
  store the variable in a register.
  
! If you precede the constraint with the equal character ('='), it tells
! the compiler that the variable will have data stored into it.
  
  In the ``Get_Flags`` example, we used the ``"g"`` (global) constraint,
! allowing the optimizer to choose whatever operand it deems best.
  
  There are a fairly large number of constraints, but the ones that are
! most useful for the Intel x86 processor are the following:
  
   ====== ==========================================
   *=*    output constraint
*************** most useful (for the Intel x86 processor
*** 340,348 ****
   *q*    use one of eax, ebx, ecx, edx, esi or edi
   ====== ==========================================
  
! The full set of constraints is described in the gcc and ``as``
! documentation; note that it is possible to combine certain constraints
! in one constraint string.
  
  You specify the association of an output variable with an assembler operand
  through the :samp:`%{n}` notation, where *n* is a non-negative
--- 341,349 ----
   *q*    use one of eax, ebx, ecx, edx, esi or edi
   ====== ==========================================
  
! The full set of constraints is described in the ``gcc`` and ``as``
! documentation; note that you can combine certain constraints
! into one constraint string.
  
  You specify the association of an output variable with an assembler operand
  through the :samp:`%{n}` notation, where *n* is a non-negative
*************** integer.  Thus in
*** 356,364 ****
            Outputs => Unsigned_32'Asm_Output ("=g", Flags));
  
  
! ``%0`` will be replaced in the expanded code by the appropriate operand,
! whatever
! the compiler decided for the ``Flags`` variable.
  
  In general, you may have any number of output variables:
  
--- 357,364 ----
            Outputs => Unsigned_32'Asm_Output ("=g", Flags));
  
  
! ``%0`` is replaced in the expanded code by the appropriate operand,
! whatever the compiler chose for the ``Flags`` variable.
  
  In general, you may have any number of output variables:
  
*************** For example:
*** 381,388 ****
  where ``Var_A``, ``Var_B``, and ``Var_C`` are variables
  in the Ada program.
  
! As a variation on the ``Get_Flags`` example, we can use the constraints
! string to direct the compiler to store the eax register into the ``Flags``
  variable, instead of including the store instruction explicitly in the
  ``Asm`` template string:
  
--- 381,388 ----
  where ``Var_A``, ``Var_B``, and ``Var_C`` are variables
  in the Ada program.
  
! As a variation on the ``Get_Flags`` example, we can use the constraint
! string to direct the compiler to store the ``eax`` register into the ``Flags``
  variable, instead of including the store instruction explicitly in the
  ``Asm`` template string:
  
*************** variable, instead of including the store
*** 402,408 ****
       end Get_Flags_2;
  
  The ``"a"`` constraint tells the compiler that the ``Flags``
! variable will come from the eax register. Here is the resulting code:
  
    ::
  
--- 402,408 ----
       end Get_Flags_2;
  
  The ``"a"`` constraint tells the compiler that the ``Flags``
! variable will come from the ``eax`` register. Here is the resulting code:
  
    ::
  
*************** variable will come from the eax register
*** 415,421 ****
  The compiler generated the store of eax into Flags after
  expanding the assembler code.
  
! Actually, there was no need to pop the flags into the eax register;
  more simply, we could just pop the flags directly into the program variable:
  
    .. code-block:: ada
--- 415,421 ----
  The compiler generated the store of eax into Flags after
  expanding the assembler code.
  
! In fact, there was no need to pop the flags into the ``eax`` register;
  more simply, we could just pop the flags directly into the program variable:
  
    .. code-block:: ada
*************** Input Variables in Inline Assembler
*** 441,447 ****
  
  The example in this section illustrates how to specify the source operands
  for assembly language statements.
! The program simply increments its input value by 1:
  
    .. code-block:: ada
  
--- 441,447 ----
  
  The example in this section illustrates how to specify the source operands
  for assembly language statements.
! The procedure simply increments its input value by 1:
  
    .. code-block:: ada
  
*************** The program simply increments its input
*** 469,495 ****
       end Increment;
  
  The ``Outputs`` parameter to ``Asm`` specifies
! that the result will be in the eax register and that it is to be stored
  in the ``Result`` variable.
  
  The ``Inputs`` parameter looks much like the ``Outputs`` parameter,
  but with an ``Asm_Input`` attribute.
  The ``"="`` constraint, indicating an output value, is not present.
  
! You can have multiple input variables, in the same way that you can have more
  than one output variable.
  
  The parameter count (%0, %1) etc, still starts at the first output statement,
  and continues with the input statements.
  
  Just as the ``Outputs`` parameter causes the register to be stored into the
! target variable after execution of the assembler statements, so does the
! ``Inputs`` parameter cause its variable to be loaded into the register
  before execution of the assembler statements.
  
  Thus the effect of the ``Asm`` invocation is:
  
! * load the 32-bit value of ``Value`` into eax
  * execute the ``incl %eax`` instruction
  * store the contents of eax into the ``Result`` variable
  
--- 469,495 ----
       end Increment;
  
  The ``Outputs`` parameter to ``Asm`` specifies
! that the result is in the ``eax`` register and that it is to be stored
  in the ``Result`` variable.
  
  The ``Inputs`` parameter looks much like the ``Outputs`` parameter,
  but with an ``Asm_Input`` attribute.
  The ``"="`` constraint, indicating an output value, is not present.
  
! You can have multiple input variables in the same way you can have more
  than one output variable.
  
  The parameter count (%0, %1) etc, still starts at the first output statement,
  and continues with the input statements.
  
  Just as the ``Outputs`` parameter causes the register to be stored into the
! target variable after execution of the assembler statements, the
! ``Inputs`` parameter causes its variable to be loaded into the register
  before execution of the assembler statements.
  
  Thus the effect of the ``Asm`` invocation is:
  
! * load the 32-bit value of ``Value`` into ``eax``
  * execute the ``incl %eax`` instruction
  * store the contents of eax into the ``Result`` variable
  
*************** frame) can be significant, compared to t
*** 520,526 ****
  body.  A solution is to apply Ada's ``Inline`` pragma to the subprogram,
  which directs the compiler to expand invocations of the subprogram at the
  point(s) of call, instead of setting up a stack frame for out-of-line calls.
! Here is the resulting program:
  
    .. code-block:: ada
  
--- 520,526 ----
  body.  A solution is to apply Ada's ``Inline`` pragma to the subprogram,
  which directs the compiler to expand invocations of the subprogram at the
  point(s) of call, instead of setting up a stack frame for out-of-line calls.
! Here's the resulting program:
  
    .. code-block:: ada
  
*************** such as Ada is that the compiler needs t
*** 593,606 ****
  being used by the assembly code.  In some cases, such as the earlier examples,
  the constraint string is sufficient to indicate register usage (e.g.,
  ``"a"`` for
! the eax register).  But more generally, the compiler needs an explicit
  identification of the registers that are used by the Inline Assembly
  statements.
  
  Using a register that the compiler doesn't know about
! could be a side effect of an instruction (like ``mull``
! storing its result in both eax and edx).
! It can also arise from explicit register usage in your
  assembly code; for example:
  
    .. code-block:: ada
--- 593,606 ----
  being used by the assembly code.  In some cases, such as the earlier examples,
  the constraint string is sufficient to indicate register usage (e.g.,
  ``"a"`` for
! the ``eax`` register).  But, more generally, the compiler needs an explicit
  identification of the registers that are used by the Inline Assembly
  statements.
  
  Using a register that the compiler doesn't know about
! could be a side effect of an instruction (like ``mull``, which
! stores its result into both ``eax`` and ``edx``).
! It can also arise from explicit register usage within your
  assembly code; for example:
  
    .. code-block:: ada
*************** assembly code; for example:
*** 611,620 ****
            Inputs  => Unsigned_32'Asm_Input  ("g", Var_In));
  
  where the compiler (since it does not analyze the ``Asm`` template string)
! does not know you are using the ebx register.
  
  In such cases you need to supply the ``Clobber`` parameter to ``Asm``,
! to identify the registers that will be used by your assembly code:
  
  
    .. code-block:: ada
--- 611,620 ----
            Inputs  => Unsigned_32'Asm_Input  ("g", Var_In));
  
  where the compiler (since it does not analyze the ``Asm`` template string)
! does not know you are using the ``ebx`` register.
  
  In such cases you need to supply the ``Clobber`` parameter to ``Asm``,
! to identify the registers used by your assembly code:
  
  
    .. code-block:: ada
*************** to identify the registers that will be u
*** 626,634 ****
            Clobber => "ebx");
  
  The Clobber parameter is a static string expression specifying the
! register(s) you are using.  Note that register names are *not* prefixed
! by a percent sign. Also, if more than one register is used then their names
! are separated by commas; e.g., ``"eax, ebx"``
  
  The ``Clobber`` parameter has several additional uses:
  
--- 626,634 ----
            Clobber => "ebx");
  
  The Clobber parameter is a static string expression specifying the
! register(s) you are using.  Note that register names are *not*
! prefixed by a percent sign. Also, if more than one register is used,
! you separate their names by commas; e.g., ``"eax, ebx"``
  
  The ``Clobber`` parameter has several additional uses:
  
*************** unwanted effects.  For example, when an
*** 648,654 ****
  variable is inside a loop, the compiler might move the loading of the input
  variable outside the loop, regarding it as a one-time initialization.
  
! If this effect is not desired, you can disable such optimizations by setting
  the ``Volatile`` parameter to ``True``; for example:
  
    .. code-block:: ada
--- 648,654 ----
  variable is inside a loop, the compiler might move the loading of the input
  variable outside the loop, regarding it as a one-time initialization.
  
! If you don't want this to happen, you can disable such optimizations by setting
  the ``Volatile`` parameter to ``True``; for example:
  
    .. code-block:: ada
*************** By default, ``Volatile`` is set to ``Fal
*** 664,670 ****
  ``Outputs`` parameter.
  
  Although setting ``Volatile`` to ``True`` prevents unwanted
! optimizations, it will also disable other optimizations that might be
  important for efficiency. In general, you should set ``Volatile``
  to ``True`` only if the compiler's optimizations have created
  problems.
--- 664,670 ----
  ``Outputs`` parameter.
  
  Although setting ``Volatile`` to ``True`` prevents unwanted
! optimizations, it also disables other optimizations that might be
  important for efficiency. In general, you should set ``Volatile``
  to ``True`` only if the compiler's optimizations have created
  problems.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Fri Apr 25 08:18:00 2025
*************** Platform-Specific Information
*** 13,19 ****
  *****************************
  
  This appendix contains information relating to the implementation
! of run-time libraries on various platforms and also covers topics
  related to the GNAT implementation on specific Operating Systems.
  
  .. _`Run_Time_Libraries`:
--- 13,19 ----
  *****************************
  
  This appendix contains information relating to the implementation
! of run-time libraries on various platforms. It also covers topics
  related to the GNAT implementation on specific Operating Systems.
  
  .. _`Run_Time_Libraries`:
*************** Specifying a Run-Time Library
*** 87,94 ****
  =============================
  
  The :file:`adainclude` subdirectory containing the sources of the GNAT
! run-time library, and the :file:`adalib` subdirectory containing the
! :file:`ALI` files and the static and/or shared GNAT library, are located
  in the gcc target-dependent area:
  
  
--- 87,94 ----
  =============================
  
  The :file:`adainclude` subdirectory containing the sources of the GNAT
! run-time library and the :file:`adalib` subdirectory containing the
! :file:`ALI` files and the static and/or shared GNAT library are located
  in the gcc target-dependent area:
  
  
*************** in the gcc target-dependent area:
*** 96,102 ****
  
        target=$prefix/lib/gcc/gcc-*dumpmachine*/gcc-*dumpversion*/
  
! As indicated above, on some platforms several run-time libraries are supplied.
  These libraries are installed in the target dependent area and
  contain a complete source and binary subdirectory. The detailed description
  below explains the differences between the different libraries in terms of
--- 96,102 ----
  
        target=$prefix/lib/gcc/gcc-*dumpmachine*/gcc-*dumpversion*/
  
! As indicated above, on some platforms, several run-time libraries are supplied.
  These libraries are installed in the target dependent area and
  contain a complete source and binary subdirectory. The detailed description
  below explains the differences between the different libraries in terms of
*************** For example on x86-linux:
*** 151,158 ****
                       Run-Time Library Directory Structure
            (Upper-case names and dotted/dashed arrows represent soft links)
  
! If the *rts-sjlj* library is to be selected on a permanent basis,
! these soft links can be modified with the following commands:
  
    ::
  
--- 151,158 ----
                       Run-Time Library Directory Structure
            (Upper-case names and dotted/dashed arrows represent soft links)
  
! If you want to select the *rts-sjlj* library on a permanent basis,
! you can modify these soft links with the following commands:
  
    ::
  
*************** Alternatively, you can specify :file:`rt
*** 165,226 ****
  :file:`$target/ada_source_path` and :file:`rts-sjlj/adalib` in
  :file:`$target/ada_object_path`.
  
! .. index:: --RTS option
! 
! Selecting another run-time library temporarily can be
! achieved by using the :switch:`--RTS` switch, e.g., :switch:`--RTS=sjlj`
! 
! 
! .. _Choosing_the_Scheduling_Policy:
! 
! .. index:: SCHED_FIFO scheduling policy
! .. index:: SCHED_RR scheduling policy
! .. index:: SCHED_OTHER scheduling policy
! 
! Choosing the Scheduling Policy
! ------------------------------
! 
! When using a POSIX threads implementation, you have a choice of several
! scheduling policies: ``SCHED_FIFO``, ``SCHED_RR`` and ``SCHED_OTHER``.
! 
! Typically, the default is ``SCHED_OTHER``, while using ``SCHED_FIFO``
! or ``SCHED_RR`` requires special (e.g., root) privileges.
! 
! .. index:: pragma Time_Slice
! .. index:: -T0 option
! .. index:: pragma Task_Dispatching_Policy
! 
! 
! By default, GNAT uses the ``SCHED_OTHER`` policy. To specify
! ``SCHED_FIFO``,
! you can use one of the following:
! 
! * ``pragma Time_Slice (0.0)``
! * the corresponding binder option :switch:`-T0`
! * ``pragma Task_Dispatching_Policy (FIFO_Within_Priorities)``
! 
! 
! To specify ``SCHED_RR``,
! you should use ``pragma Time_Slice`` with a
! value greater than 0.0, or else use the corresponding :switch:`-T`
! binder option.
! 
! 
! To make sure a program is running as root, you can put something like
! this in a library package body in your application:
! 
!   .. code-block:: ada
  
!      function geteuid return Integer;
!      pragma Import (C, geteuid, "geteuid");
!      Ignore : constant Boolean :=
!        (if geteuid = 0 then True else raise Program_Error with "must be root");
  
- It gets the effective user id, and if it's not 0 (i.e. root), it raises
- Program_Error. Note that if you re running the code in a container, this may
- not be sufficient, as you may have sufficient priviledge on the container,
- but not on the host machine running the container, so check that you also
- have sufficient priviledge for running the container image.
  
  .. index:: Linux
  .. index:: GNU/Linux
--- 165,175 ----
  :file:`$target/ada_source_path` and :file:`rts-sjlj/adalib` in
  :file:`$target/ada_object_path`.
  
! .. index:: --RTS switch
  
! You can select another run-time library temporarily
! by using the :switch:`--RTS` switch, e.g., :switch:`--RTS=sjlj`
  
  
  .. index:: Linux
  .. index:: GNU/Linux
*************** The name of of that package depends on y
*** 243,256 ****
  * RedHat, SUSE: ``glibc-devel``;
  * Debian, Ubuntu: ``libc6-dev`` (normally installed by default).
  
! If using the 32-bit version of GNAT on a 64-bit version of GNU/Linux,
  you'll need the 32-bit version of the following packages:
  
  * RedHat, SUSE: ``glibc.i686``, ``glibc-devel.i686``, ``ncurses-libs.i686``
  * SUSE: ``glibc-locale-base-32bit``
  * Debian, Ubuntu: ``libc6:i386``, ``libc6-dev:i386``, ``lib32ncursesw5``
  
! Other GNU/Linux distributions might be choosing a different name
  for those packages.
  
  
--- 192,205 ----
  * RedHat, SUSE: ``glibc-devel``;
  * Debian, Ubuntu: ``libc6-dev`` (normally installed by default).
  
! If you're using the 32-bit version of GNAT on a 64-bit version of GNU/Linux,
  you'll need the 32-bit version of the following packages:
  
  * RedHat, SUSE: ``glibc.i686``, ``glibc-devel.i686``, ``ncurses-libs.i686``
  * SUSE: ``glibc-locale-base-32bit``
  * Debian, Ubuntu: ``libc6:i386``, ``libc6-dev:i386``, ``lib32ncursesw5``
  
! Other GNU/Linux distributions might choose different name
  for those packages.
  
  
*************** Independent.
*** 277,285 ****
  If you are not interested in building PIE binaries, you can simply
  turn this feature off by first compiling your code with :samp:`-fno-pie`
  and then by linking with :samp:`-no-pie` (note the subtle but important
! difference in the names of the options -- the linker option does **not**
! have an `f` after the dash!). When using gprbuild, this is
! achieved by updating the *Required_Switches* attribute in package `Compiler`
  and, depending on your type of project, either attribute *Switches*
  or attribute *Library_Options* in package `Linker`.
  
--- 226,234 ----
  If you are not interested in building PIE binaries, you can simply
  turn this feature off by first compiling your code with :samp:`-fno-pie`
  and then by linking with :samp:`-no-pie` (note the subtle but important
! difference in the names of the switches -- the linker switch does **not**
! have an `f` after the dash!). When using gprbuild, you do this
! by updating the *Required_Switches* attribute in package `Compiler`
  and, depending on your type of project, either attribute *Switches*
  or attribute *Library_Options* in package `Linker`.
  
*************** drop the :samp:`-no-pie` workaround, you
*** 296,301 ****
--- 245,299 ----
  dependencies rebuilt with PIE enabled (compiled with :samp:`-fPIE`
  and linked with :samp:`-pie`).
  
+ .. _Choosing_the_Scheduling_Policy_With_GNU_Linux:
+ 
+ .. index:: SCHED_FIFO scheduling policy
+ .. index:: SCHED_RR scheduling policy
+ .. index:: SCHED_OTHER scheduling policy
+ 
+ Choosing the Scheduling Policy with GNU/Linux
+ ---------------------------------------------
+ 
+ When using a POSIX threads implementation, you have a choice of several
+ scheduling policies: ``SCHED_FIFO``, ``SCHED_RR`` and ``SCHED_OTHER``.
+ 
+ Typically, the default is ``SCHED_OTHER``, while using ``SCHED_FIFO``
+ or ``SCHED_RR`` requires special (e.g., root) privileges.
+ 
+ .. index:: pragma Time_Slice
+ .. index:: -T0 switch
+ .. index:: pragma Task_Dispatching_Policy
+ 
+ 
+ By default, GNAT uses the ``SCHED_OTHER`` policy. To specify
+ ``SCHED_FIFO``,
+ you can use one of the following:
+ 
+ * ``pragma Time_Slice (0.0)``
+ * the corresponding binder switch :switch:`-T0`
+ * ``pragma Task_Dispatching_Policy (FIFO_Within_Priorities)``
+ 
+ To specify ``SCHED_RR``,
+ you should use ``pragma Time_Slice`` with a
+ value greater than 0.0, or else use the corresponding :switch:`-T`
+ binder switch.
+ 
+ To make sure a program is running as root, you can put something like
+ this in a library package body in your application:
+ 
+   .. code-block:: ada
+ 
+      function geteuid return Integer;
+      pragma Import (C, geteuid, "geteuid");
+      Ignore : constant Boolean :=
+        (if geteuid = 0 then True else raise Program_Error with "must be root");
+ 
+ This gets the effective user id and if it's not 0 (i.e. root), it raises
+ Program_Error. Note that if you're running the code in a container, this may
+ not be sufficient as you may have sufficient privilege on the container,
+ but not on the host machine running the container, so check that you also
+ have sufficient priviledge for running the container image.
+ 
  .. _A_GNU_Linux_debug_quirk:
  
  A GNU/Linux Debug Quirk
*************** A GNU/Linux Debug Quirk
*** 304,311 ****
  On SuSE 15, some kernels have a defect causing issues when debugging
  programs using threads or Ada tasks. Due to the lack of documentation
  found regarding this kernel issue, we can only provide limited
! information about which kernels are impacted: kernel version 5.3.18 is
! known to be impacted, and kernels in the 5.14 range or newer are
  believed to fix this problem.
  
  The bug affects the debugging of 32-bit processes on a 64-bit system.
--- 302,309 ----
  On SuSE 15, some kernels have a defect causing issues when debugging
  programs using threads or Ada tasks. Due to the lack of documentation
  found regarding this kernel issue, we can only provide limited
! information about which kernels are impacted. Kernel version 5.3.18 is
! known to be impacted and kernels in the 5.14 range or newer are
  believed to fix this problem.
  
  The bug affects the debugging of 32-bit processes on a 64-bit system.
*************** platforms.
*** 330,341 ****
    .. rubric:: Installing from the Command Line
  
    By default the GNAT installers display a GUI that prompts you to enter
!   the installation path and similar information, and then guides you through the
!   installation process. It is also possible to perform silent installations
    using the command-line interface.
  
!   In order to install one of the GNAT installers from the command
!   line you should pass parameter :switch:`/S` (and, optionally,
    :switch:`/D=<directory>`) as command-line arguments.
  
     For example, for an unattended installation of
--- 328,339 ----
    .. rubric:: Installing from the Command Line
  
    By default the GNAT installers display a GUI that prompts you to enter
!   the installation path and similar information and then guides you through the
!   installation process. You can also perform silent installations
    using the command-line interface.
  
!   To install one of the GNAT installers from the command
!   line, you should pass parameter :switch:`/S` (and, optionally,
    :switch:`/D=<directory>`) as command-line arguments.
  
     For example, for an unattended installation of
*************** platforms.
*** 351,357 ****
     You can use the same syntax for all installers.
  
     Note that unattended installations don't modify system path, nor create file
!    associations, so such activities need to be done by hand.
  
  
  .. _Using_GNAT_on_Windows:
--- 349,355 ----
     You can use the same syntax for all installers.
  
     Note that unattended installations don't modify system path, nor create file
!    associations, so you need to do such activities by hand.
  
  
  .. _Using_GNAT_on_Windows:
*************** One of the strengths of the GNAT technol
*** 364,370 ****
  ``gdb`` debugger, etc.) is used in the same way regardless of the
  platform.
  
! On Windows this tool set is complemented by a number of Microsoft-specific
  tools that have been provided to facilitate interoperability with Windows
  when this is required. With these tools:
  
--- 362,368 ----
  ``gdb`` debugger, etc.) is used in the same way regardless of the
  platform.
  
! On Windows, this tool set is complemented by a number of Microsoft-specific
  tools that have been provided to facilitate interoperability with Windows
  when this is required. With these tools:
  
*************** when this is required. With these tools:
*** 375,419 ****
  * You can use any Dynamically Linked Library (DLL) in your Ada code (both
    relocatable and non-relocatable DLLs are supported).
  
! * You can build Ada DLLs for use in other applications. These applications
!   can be written in a language other than Ada (e.g., C, C++, etc). Again both
!   relocatable and non-relocatable Ada DLLs are supported.
  
  * You can include Windows resources in your Ada application.
  
  * You can use or create COM/DCOM objects.
  
! Immediately below are listed all known general GNAT-for-Windows restrictions.
! Other restrictions about specific features like Windows Resources and DLLs
! are listed in separate sections below.
! 
  
! * It is not possible to use ``GetLastError`` and ``SetLastError``
    when tasking, protected records, or exceptions are used. In these
    cases, in order to implement Ada semantics, the GNAT run-time system
    calls certain Win32 routines that set the last error variable to 0 upon
!   success. It should be possible to use ``GetLastError`` and
    ``SetLastError`` when tasking, protected record, and exception
    features are not used, but it is not guaranteed to work.
  
! * It is not possible to link against Microsoft C++ libraries except for
!   import libraries. Interfacing must be done by the mean of DLLs.
  
! * It is possible to link against Microsoft C libraries. Yet the preferred
    solution is to use C/C++ compiler that comes with GNAT, since it
    doesn't require having two different development environments and makes the
    inter-language debugging experience smoother.
  
! * When the compilation environment is located on FAT32 drives, users may
!   experience recompilations of the source files that have not changed if
    Daylight Saving Time (DST) state has changed since the last time files
    were compiled. NTFS drives do not have this problem.
  
  * No components of the GNAT toolset use any entries in the Windows
!   registry. The only entries that can be created are file associations and
!   PATH settings, provided the user has chosen to create them at installation
!   time, as well as some minimal book-keeping information needed to correctly
!   uninstall or integrate different GNAT products.
  
  
  .. _Using_a_network_installation_of_GNAT:
--- 373,418 ----
  * You can use any Dynamically Linked Library (DLL) in your Ada code (both
    relocatable and non-relocatable DLLs are supported).
  
! * You can build Ada DLLs for use in other applications. You can write
!   these applications in a language other than Ada (e.g., C, C++,
!   etc). Again, both relocatable and non-relocatable Ada DLLs are
!   supported.
  
  * You can include Windows resources in your Ada application.
  
  * You can use or create COM/DCOM objects.
  
! Listed immediately below are all known general GNAT-for-Windows
! restrictions.  We list other restrictions about specific features such
! as Windows Resources and DLLs in separate sections below.
  
! * You cannot use ``GetLastError`` and ``SetLastError``
    when tasking, protected records, or exceptions are used. In these
    cases, in order to implement Ada semantics, the GNAT run-time system
    calls certain Win32 routines that set the last error variable to 0 upon
!   success. You may be able to use ``GetLastError`` and
    ``SetLastError`` when tasking, protected record, and exception
    features are not used, but it is not guaranteed to work.
  
! * You cannot link against Microsoft C++ libraries except for
!   import libraries. You must do interfacing by means of DLLs.
  
! * You can link against Microsoft C libraries. However, the preferred
    solution is to use C/C++ compiler that comes with GNAT, since it
    doesn't require having two different development environments and makes the
    inter-language debugging experience smoother.
  
! * When the compilation environment is located on FAT32 drives, you may
!   experience recompilations of source files that have not changed if
    Daylight Saving Time (DST) state has changed since the last time files
    were compiled. NTFS drives do not have this problem.
  
  * No components of the GNAT toolset use any entries in the Windows
!   registry. The only entries installation of GNAT may create are file
!   associations and PATH settings, provided you chose to
!   create them at installation time, as well as some minimal
!   bookkeeping information needed to correctly uninstall or integrate
!   different GNAT products.
  
  
  .. _Using_a_network_installation_of_GNAT:
*************** make it available:
*** 438,444 ****
  
  Be aware that every compilation using the network installation results in the
  transfer of large amounts of data across the network and will likely cause
! serious performance penalty.
  
  .. _CONSOLE_and_WINDOWS_subsystems:
  
--- 437,443 ----
  
  Be aware that every compilation using the network installation results in the
  transfer of large amounts of data across the network and will likely cause
! a serious performance penalty.
  
  .. _CONSOLE_and_WINDOWS_subsystems:
  
*************** CONSOLE and WINDOWS subsystems
*** 450,460 ****
  .. index:: -mwindows
  
  There are two main subsystems under Windows. The ``CONSOLE`` subsystem
! (which is the default subsystem) will always create a console when
  launching the application. This is not something desirable when the
! application has a Windows GUI. To get rid of this console the
! application must be using the ``WINDOWS`` subsystem. To do so
! the :switch:`-mwindows` linker option must be specified.
  
     ::
  
--- 449,459 ----
  .. index:: -mwindows
  
  There are two main subsystems under Windows. The ``CONSOLE`` subsystem
! (which is the default subsystem) always creates a console when
  launching the application. This is not something desirable when the
! application has a Windows GUI. To remove this console, your
! application must use the ``WINDOWS`` subsystem. To do so, you must
! specify the :switch:`-mwindows` linker switch.
  
     ::
  
*************** Temporary Files
*** 467,474 ****
  
  .. index:: Temporary files
  
! It is possible to control where temporary files gets created by setting
! the :envvar:`TMP` environment variable. The file will be created:
  
  * Under the directory pointed to by the :envvar:`TMP` environment variable if
    this directory exists.
--- 466,473 ----
  
  .. index:: Temporary files
  
! You can control where temporary files get created by setting the
! :envvar:`TMP` environment variable. The file will be created:
  
  * Under the directory pointed to by the :envvar:`TMP` environment variable if
    this directory exists.
*************** By default, an executable compiled for t
*** 492,498 ****
  the following postprocessing on the arguments passed on the command
  line:
  
! * If the argument contains the characters ``*`` and/or ``?``, then
    file expansion will be attempted. For example, if the current directory
    contains :file:`a.txt` and :file:`b.txt`, then when calling::
  
--- 491,497 ----
  the following postprocessing on the arguments passed on the command
  line:
  
! * If the argument contains the characters ``*`` and/or ``?``,
    file expansion will be attempted. For example, if the current directory
    contains :file:`a.txt` and :file:`b.txt`, then when calling::
  
*************** line:
*** 504,510 ****
        Ada.Command_Line.Argument (1) -> "a.txt"
        Ada.Command_Line.Argument (2) -> "b.txt"
  
! * Filename expansion can be disabled for a given argument by using single
    quotes. Thus, calling::
  
        $ my_ada_program '*.txt'
--- 503,509 ----
        Ada.Command_Line.Argument (1) -> "a.txt"
        Ada.Command_Line.Argument (2) -> "b.txt"
  
! * You can disable filename expansion for a given argument by using single
    quotes. Thus, calling::
  
        $ my_ada_program '*.txt'
*************** line:
*** 513,522 ****
  
        Ada.Command_Line.Argument (1) -> "*.txt"
  
! Note that if the program is launched from a shell such as Cygwin Bash
! then quote removal might be performed by the shell.
  
! In some contexts it might be useful to disable this feature (for example if
  the program performs its own argument expansion). In order to do this, a C
  symbol needs to be defined and set to ``0``. You can do this by
  adding the following code fragment in one of your Ada units:
--- 512,521 ----
  
        Ada.Command_Line.Argument (1) -> "*.txt"
  
! Note that if the program is launched from a shell such as Cygwin Bash,
! quote removal might be performed by that shell.
  
! In some contexts, it might be useful to disable this feature (for example if
  the program performs its own argument expansion). In order to do this, a C
  symbol needs to be defined and set to ``0``. You can do this by
  adding the following code fragment in one of your Ada units:
*************** and::
*** 534,539 ****
--- 533,555 ----
  
     Ada.Command_Line.Argument (1) -> "'*.txt'"
  
+ .. _Choosing_the_Scheduling_Policy_With_Windows:
+ 
+ Choosing the Scheduling Policy with Windows
+ -------------------------------------------
+ 
+ Under Windows, the standard 31 priorities of the Ada model are mapped onto
+ Window's seven standard priority levels by default: Idle, Lowest, Below Normal,
+ Normal, Above Normal,
+ 
+ When using the ``FIFO_Within_Priorities`` task dispatching policy, GNAT
+ assigns the ``REALTIME_PRIORITY_CLASS`` priority class to the application
+ and maps the Ada priority range to the sixteen priorities made available under
+ ``REALTIME_PRIORITY_CLASS``.
+ 
+ For details on the values of the different priority mappings, see declarations
+ in :file:`system.ads`. For more information about Windows priorities, please
+ refer to Microsoft documentation.
  
  Windows Socket Timeouts
  -----------------------
*************** Microsoft Windows desktops older than ``
*** 542,554 ****
  older than ``2019`` set a socket timeout 500 milliseconds longer than the value
  set by setsockopt with ``SO_RCVTIMEO`` and ``SO_SNDTIMEO`` options. The GNAT
  runtime makes a correction for the difference in the corresponding Windows
! versions. For Windows Server starting with version ``2019``, the user must
  provide a manifest file for the GNAT runtime to be able to recognize that
  the Windows version does not need the timeout correction. The manifest file
! should be located in the same directory as the executable file, and its file
  name must match the executable name suffixed by ``.manifest``. For example,
! if the executable name is :file:`sock_wto.exe`, then the manifest file name
! has to be :file:`sock_wto.exe.manifest`. The manifest file must contain at
  least the following data::
  
     <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
--- 558,570 ----
  older than ``2019`` set a socket timeout 500 milliseconds longer than the value
  set by setsockopt with ``SO_RCVTIMEO`` and ``SO_SNDTIMEO`` options. The GNAT
  runtime makes a correction for the difference in the corresponding Windows
! versions. For Windows Server starting with version ``2019``, you must
  provide a manifest file for the GNAT runtime to be able to recognize that
  the Windows version does not need the timeout correction. The manifest file
! should be located in the same directory as the executable file and its file
  name must match the executable name suffixed by ``.manifest``. For example,
! if the executable name is :file:`sock_wto.exe`, the manifest file name
! must be :file:`sock_wto.exe.manifest`. The manifest file must contain at
  least the following data::
  
     <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
*************** least the following data::
*** 569,581 ****
     </compatibility>
     </assembly>
  
! Without the manifest file, the socket timeout is going to be overcorrected on
! these Windows Server versions and the actual time is going to be 500
! milliseconds shorter than what was set with GNAT.Sockets.Set_Socket_Option.
! Note that on Microsoft Windows versions where correction is necessary, there
! is no way to set a socket timeout shorter than 500 ms. If a socket timeout
! shorter than 500 ms is needed on these Windows versions, a call to
! Check_Selector should be added before any socket read or write operations.
  
  
  .. _Mixed-Language_Programming_on_Windows:
--- 585,599 ----
     </compatibility>
     </assembly>
  
! Without the manifest file, the socket timeout will be overcorrected on
! these Windows Server versions and the actual time wil be 500
! milliseconds shorter than what was set with
! ``GNAT.Sockets.Set_Socket_Option``.  Note that on Microsoft Windows
! versions where correction is necessary, there is no way to set a
! socket timeout shorter than 500 ms. If a socket timeout shorter than
! 500 ms is needed on these Windows versions, you should add a call to
! ``Check_Selector`` before any socket read or write
! operations.
  
  
  .. _Mixed-Language_Programming_on_Windows:
*************** your application, there are no Windows-s
*** 594,613 ****
  affect the overall interoperability with your Ada code. If you do want
  to use the Microsoft tools for your C++ code, you have two choices:
  
! * Encapsulate your C++ code in a DLL to be linked with your Ada
!   application. In this case, use the Microsoft or whatever environment to
    build the DLL and use GNAT to build your executable
    (:ref:`Using_DLLs_with_GNAT`).
  
! * Or you can encapsulate your Ada code in a DLL to be linked with the
    other part of your application. In this case, use GNAT to build the DLL
    (:ref:`Building_DLLs_with_GNAT_Project_files`) and use the Microsoft
!   or whatever environment to build your executable.
  
! In addition to the description about C main in
! :ref:`Mixed_Language_Programming` section, if the C main uses a
! stand-alone library it is required on x86-windows to
! setup the SEH context. For this the C main must looks like this:
  
  
    .. code-block:: c
--- 612,631 ----
  affect the overall interoperability with your Ada code. If you do want
  to use the Microsoft tools for your C++ code, you have two choices:
  
! * You can encapsulate your C++ code in a DLL to be linked with your Ada
!   application. In this case, use the Microsoft or other environment to
    build the DLL and use GNAT to build your executable
    (:ref:`Using_DLLs_with_GNAT`).
  
! * You can encapsulate your Ada code in a DLL to be linked with the
    other part of your application. In this case, use GNAT to build the DLL
    (:ref:`Building_DLLs_with_GNAT_Project_files`) and use the Microsoft
!   or other environment to build your executable.
  
! In addition to the description about C ``main`` in
! :ref:`Mixed_Language_Programming` section, if the C ``main`` uses a
! stand-alone library, it is required on x86-windows to
! setup the SEH context. For this, the C ``main`` must looks like this:
  
  
    .. code-block:: c
*************** setup the SEH context. For this the C ma
*** 634,640 ****
          adafinal();
        }
  
! Note that this is not needed on x86_64-windows where the Windows
  native SEH support is used.
  
  
--- 652,658 ----
          adafinal();
        }
  
! Note that you need not do this on x86_64-windows where the Windows
  native SEH support is used.
  
  
*************** Windows Calling Conventions
*** 646,652 ****
  .. index:: Stdcall
  .. index:: APIENTRY
  
! This section pertain only to Win32. On Win64 there is a single native
  calling convention. All convention specifiers are ignored on this
  platform.
  
--- 664,670 ----
  .. index:: Stdcall
  .. index:: APIENTRY
  
! This section pertain only to Win32. On Win64, there is a single native
  calling convention. All convention specifiers are ignored on this
  platform.
  
*************** are available for Windows:
*** 675,705 ****
  This is the default calling convention used when interfacing to C/C++
  routines compiled with either ``gcc`` or Microsoft Visual C++.
  
! In the ``C`` calling convention subprogram parameters are pushed on the
  stack by the caller from right to left. The caller itself is in charge of
  cleaning up the stack after the call. In addition, the name of a routine
  with ``C`` calling convention is mangled by adding a leading underscore.
  
  The name to use on the Ada side when importing (or exporting) a routine
  with ``C`` calling convention is the name of the routine. For
! instance the C function:
  
     ::
  
         int get_val (long);
  
! should be imported from Ada as follows:
  
    .. code-block:: ada
  
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (C, Get_Val, External_Name => "get_val");
  
! Note that in this particular case the ``External_Name`` parameter could
! have been omitted since, when missing, this parameter is taken to be the
! name of the Ada entity in lower case. When the ``Link_Name`` parameter
! is missing, as in the above example, this parameter is set to be the
! ``External_Name`` with a leading underscore.
  
  When importing a variable defined in C, you should always use the ``C``
  calling convention unless the object containing the variable is part of a
--- 693,723 ----
  This is the default calling convention used when interfacing to C/C++
  routines compiled with either ``gcc`` or Microsoft Visual C++.
  
! In the ``C`` calling convention, subprogram parameters are pushed on the
  stack by the caller from right to left. The caller itself is in charge of
  cleaning up the stack after the call. In addition, the name of a routine
  with ``C`` calling convention is mangled by adding a leading underscore.
  
  The name to use on the Ada side when importing (or exporting) a routine
  with ``C`` calling convention is the name of the routine. For
! example you should import the C function:
  
     ::
  
         int get_val (long);
  
! from Ada as follows:
  
    .. code-block:: ada
  
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (C, Get_Val, External_Name => "get_val");
  
! Note that in this particular case, you could have omitted the
! ``External_Name`` parameter since, when missing, this parameter is set
! to the name of the Ada entity in lower case. When the ``Link_Name``
! parameter is missing, as in the above example, this parameter is set
! the ``External_Name`` with a leading underscore.
  
  When importing a variable defined in C, you should always use the ``C``
  calling convention unless the object containing the variable is part of a
*************** convention, :ref:`Stdcall_Calling_Conven
*** 714,725 ****
  
  This convention, which was the calling convention used for Pascal
  programs, is used by Microsoft for all the routines in the Win32 API for
! efficiency reasons. It must be used to import any routine for which this
  convention was specified.
  
! In the ``Stdcall`` calling convention subprogram parameters are pushed
! on the stack by the caller from right to left. The callee (and not the
! caller) is in charge of cleaning the stack on routine exit. In addition,
  the name of a routine with ``Stdcall`` calling convention is mangled by
  adding a leading underscore (as for the ``C`` calling convention) and a
  trailing :samp:`@{nn}`, where ``nn`` is the overall size (in
--- 732,743 ----
  
  This convention, which was the calling convention used for Pascal
  programs, is used by Microsoft for all the routines in the Win32 API for
! efficiency reasons. You must use it to import any routine for which this
  convention was specified.
  
! In the ``Stdcall`` calling convention, subprogram parameters are also pushed
! on the stack by the caller from right to left. However, the callee, not the
! caller, is in charge of cleaning up the stack on routine exit. In addition,
  the name of a routine with ``Stdcall`` calling convention is mangled by
  adding a leading underscore (as for the ``C`` calling convention) and a
  trailing :samp:`@{nn}`, where ``nn`` is the overall size (in
*************** bytes) of the parameters passed to the r
*** 728,740 ****
  The name to use on the Ada side when importing a C routine with a
  ``Stdcall`` calling convention is the name of the C routine. The leading
  underscore and trailing :samp:`@{nn}` are added automatically by
! the compiler. For instance the Win32 function:
  
    ::
  
        APIENTRY int get_val (long);
  
! should be imported from Ada as follows:
  
    .. code-block:: ada
  
--- 746,758 ----
  The name to use on the Ada side when importing a C routine with a
  ``Stdcall`` calling convention is the name of the C routine. The leading
  underscore and trailing :samp:`@{nn}` are added automatically by
! the compiler. For example, you could import the Win32 function:
  
    ::
  
        APIENTRY int get_val (long);
  
! from Ada as follows:
  
    .. code-block:: ada
  
*************** should be imported from Ada as follows:
*** 742,758 ****
       pragma Import (Stdcall, Get_Val);
       --  On the x86 a long is 4 bytes, so the Link_Name is "_get_val@4"
  
! As for the ``C`` calling convention, when the ``External_Name``
! parameter is missing, it is taken to be the name of the Ada entity in lower
! case. If instead of writing the above import pragma you write:
  
    .. code-block:: ada
  
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (Stdcall, Get_Val, External_Name => "retrieve_val");
  
! then the imported routine is ``_retrieve_val@4``. However, if instead
! of specifying the ``External_Name`` parameter you specify the
  ``Link_Name`` as in the following example:
  
    .. code-block:: ada
--- 760,777 ----
       pragma Import (Stdcall, Get_Val);
       --  On the x86 a long is 4 bytes, so the Link_Name is "_get_val@4"
  
! Like the case for the ``C`` calling convention, when the
! ``External_Name`` parameter is missing, it is the name of the Ada
! entity in lower case. If instead of writing the above import pragma
! you write:
  
    .. code-block:: ada
  
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (Stdcall, Get_Val, External_Name => "retrieve_val");
  
! the imported routine is ``_retrieve_val@4``. However, if instead
! of specifying the ``External_Name`` parameter, you specify the
  ``Link_Name`` as in the following example:
  
    .. code-block:: ada
*************** of specifying the ``External_Name`` para
*** 760,774 ****
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (Stdcall, Get_Val, Link_Name => "retrieve_val");
  
! then the imported routine is ``retrieve_val``, that is, there is no
! decoration at all. No leading underscore and no Stdcall suffix
  :samp:`@{nn}`.
  
  This is especially important as in some special cases a DLL's entry
  point name lacks a trailing :samp:`@{nn}` while the exported
  name generated for a call has it.
  
! It is also possible to import variables defined in a DLL by using an
  import pragma for a variable. As an example, if a DLL contains a
  variable defined as:
  
--- 779,793 ----
       function Get_Val (V : Interfaces.C.long) return Interfaces.C.int;
       pragma Import (Stdcall, Get_Val, Link_Name => "retrieve_val");
  
! the imported routine is ``retrieve_val``. There is no
! decoration at all; no leading underscore and no Stdcall suffix
  :samp:`@{nn}`.
  
  This is especially important as in some special cases a DLL's entry
  point name lacks a trailing :samp:`@{nn}` while the exported
  name generated for a call has it.
  
! You can also import variables defined in a DLL by using an
  import pragma for a variable. As an example, if a DLL contains a
  variable defined as:
  
*************** then, to access this variable from Ada y
*** 783,789 ****
        My_Var : Interfaces.C.int;
        pragma Import (Stdcall, My_Var);
  
! Note that to ease building cross-platform bindings this convention
  will be handled as a ``C`` calling convention on non-Windows platforms.
  
  
--- 802,808 ----
        My_Var : Interfaces.C.int;
        pragma Import (Stdcall, My_Var);
  
! Note that to ease building cross-platform bindings, this convention
  will be handled as a ``C`` calling convention on non-Windows platforms.
  
  
*************** will be handled as a ``C`` calling conve
*** 792,798 ****
  ``Win32`` Calling Convention
  """"""""""""""""""""""""""""
  
! This convention, which is GNAT-specific is fully equivalent to the
  ``Stdcall`` calling convention described above.
  
  
--- 811,817 ----
  ``Win32`` Calling Convention
  """"""""""""""""""""""""""""
  
! This convention, which is GNAT-specific, is fully equivalent to the
  ``Stdcall`` calling convention described above.
  
  
*************** This convention, which is GNAT-specific
*** 801,807 ****
  ``DLL`` Calling Convention
  """"""""""""""""""""""""""
  
! This convention, which is GNAT-specific is fully equivalent to the
  ``Stdcall`` calling convention described above.
  
  
--- 820,826 ----
  ``DLL`` Calling Convention
  """"""""""""""""""""""""""
  
! This convention, which is GNAT-specific, is fully equivalent to the
  ``Stdcall`` calling convention described above.
  
  
*************** slower since, as you will understand bel
*** 823,832 ****
  
  To illustrate the remainder of this section, suppose that an application
  wants to use the services of a DLL :file:`API.dll`. To use the services
! provided by :file:`API.dll` you must statically link against the DLL or
  an import library which contains a jump table with an entry for each
! routine and variable exported by the DLL. In the Microsoft world this
! import library is called :file:`API.lib`. When using GNAT this import
  library is called either :file:`libAPI.dll.a`, :file:`libapi.dll.a`,
  :file:`libAPI.a` or :file:`libapi.a` (names are case insensitive).
  
--- 842,851 ----
  
  To illustrate the remainder of this section, suppose that an application
  wants to use the services of a DLL :file:`API.dll`. To use the services
! provided by :file:`API.dll`, you must statically link against the DLL or
  an import library which contains a jump table with an entry for each
! routine and variable exported by the DLL. In the Microsoft world, this
! import library is called :file:`API.lib`. When using GNAT, this import
  library is called either :file:`libAPI.dll.a`, :file:`libapi.dll.a`,
  :file:`libAPI.a` or :file:`libapi.a` (names are case insensitive).
  
*************** and you run your application, here is wh
*** 838,848 ****
  * The DLL :file:`API.dll` is mapped into the address space of your
    application. This means that:
  
!   - The DLL will use the stack of the calling thread.
  
!   - The DLL will use the virtual address space of the calling process.
  
!   - The DLL will allocate memory from the virtual address space of the calling
      process.
  
    - Handles (pointers) can be safely exchanged between routines in the DLL
--- 857,867 ----
  * The DLL :file:`API.dll` is mapped into the address space of your
    application. This means that:
  
!   - The DLL uses the stack of the calling thread.
  
!   - The DLL uses the virtual address space of the calling process.
  
!   - The DLL allocates memory from the virtual address space of the calling
      process.
  
    - Handles (pointers) can be safely exchanged between routines in the DLL
*************** and you run your application, here is wh
*** 859,877 ****
    variables exported by the DLL.
  
  There is an additional point which is worth mentioning. In the Windows
! world there are two kind of DLLs: relocatable and non-relocatable
! DLLs. Non-relocatable DLLs can only be loaded at a very specific address
  in the target application address space. If the addresses of two
  non-relocatable DLLs overlap and these happen to be used by the same
! application, a conflict will occur and the application will run
! incorrectly. Hence, when possible, it is always preferable to use and
  build relocatable DLLs. Both relocatable and non-relocatable DLLs are
! supported by GNAT. Note that the :switch:`-s` linker option (see GNU Linker
! User's Guide) removes the debugging symbols from the DLL but the DLL can
  still be relocated.
  
  As a side note, an interesting difference between Microsoft DLLs and
! Unix shared libraries, is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
  a definition file (see :ref:`The Definition File <The_Definition_File>`).
--- 878,896 ----
    variables exported by the DLL.
  
  There is an additional point which is worth mentioning. In the Windows
! world, there are two kind of DLLs: relocatable and non-relocatable
! DLLs. Non-relocatable DLLs can only be loaded at a specific address
  in the target application address space. If the addresses of two
  non-relocatable DLLs overlap and these happen to be used by the same
! application, a conflict occurs and the application will run
! incorrectly. Hence, when possible, you should always use and
  build relocatable DLLs. Both relocatable and non-relocatable DLLs are
! supported by GNAT. Note that the :switch:`-s` linker switch (see GNU Linker
! User's Guide) removes the debugging symbols from the DLL, but the DLL can
  still be relocated.
  
  As a side note, an interesting difference between Microsoft DLLs and
! Unix shared libraries is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
  a definition file (see :ref:`The Definition File <The_Definition_File>`).
*************** To use the services of a DLL, say :file:
*** 886,897 ****
  you must have:
  
  * The Ada spec for the routines and/or variables you want to access in
!   :file:`API.dll`. If not available this Ada spec must be built from the C/C++
!   header files provided with the DLL.
  
  * The import library (:file:`libAPI.dll.a` or :file:`API.lib`). As previously
!   mentioned an import library is a statically linked library containing the
!   import table which will be filled at load time to point to the actual
    :file:`API.dll` routines. Sometimes you don't have an import library for the
    DLL you want to use. The following sections will explain how to build
    one. Note that this is optional.
--- 905,916 ----
  you must have:
  
  * The Ada spec for the routines and/or variables you want to access in
!   :file:`API.dll`. If not available, you must build this Ada spec from the
!   C/C++ header files provided with the DLL.
  
  * The import library (:file:`libAPI.dll.a` or :file:`API.lib`). As previously
!   mentioned, an import library is a statically linked library containing the
!   import table, which is filled at load time to point to the actual
    :file:`API.dll` routines. Sometimes you don't have an import library for the
    DLL you want to use. The following sections will explain how to build
    one. Note that this is optional.
*************** look for a library name in this specific
*** 917,924 ****
  * :file:`libAPI.dll`
  * :file:`API.dll`
  
! The first three are the GNU style import libraries. The third is the
! Microsoft style import libraries. The last two are the actual DLL names.
  
  Note that if the Ada package spec for :file:`API.dll` contains the
  following pragma
--- 936,943 ----
  * :file:`libAPI.dll`
  * :file:`API.dll`
  
! The first three are the GNU-style import libraries. The third is the
! Microsoft-style import libraries. The last two are the actual DLL names.
  
  Note that if the Ada package spec for :file:`API.dll` contains the
  following pragma
*************** following pragma
*** 930,936 ****
  you do not have to add :switch:`-largs -lAPI` at the end of the
  ``gnatmake`` command.
  
! If any one of the items above is missing you will have to create it
  yourself. The following sections explain how to do so using as an
  example a fictitious DLL called :file:`API.dll`.
  
--- 949,955 ----
  you do not have to add :switch:`-largs -lAPI` at the end of the
  ``gnatmake`` command.
  
! If any one of the items above is missing, you will have to create it
  yourself. The following sections explain how to do so using as an
  example a fictitious DLL called :file:`API.dll`.
  
*************** A DLL typically comes with a C/C++ heade
*** 944,950 ****
  definitions of the routines and variables exported by the DLL. The Ada
  equivalent of this header file is a package spec that contains definitions
  for the imported entities. If the DLL you intend to use does not come with
! an Ada spec you have to generate one such spec yourself. For example if
  the header file of :file:`API.dll` is a file :file:`api.h` containing the
  following two definitions:
  
--- 963,969 ----
  definitions of the routines and variables exported by the DLL. The Ada
  equivalent of this header file is a package spec that contains definitions
  for the imported entities. If the DLL you intend to use does not come with
! an Ada spec, you have to generate such a spec yourself. For example, if
  the header file of :file:`API.dll` is a file :file:`api.h` containing the
  following two definitions:
  
*************** suffix) has the following structure:
*** 1017,1023 ****
  
  *EXPORTS*
    This section gives the list of exported symbols (procedures, functions or
!   variables). For instance in the case of :file:`API.dll` the ``EXPORTS``
    section of :file:`API.def` looks like:
  
    ::
--- 1036,1042 ----
  
  *EXPORTS*
    This section gives the list of exported symbols (procedures, functions or
!   variables). For example, in the case of :file:`API.dll` the ``EXPORTS``
    section of :file:`API.def` looks like:
  
    ::
*************** sections are not relevant to the discuss
*** 1040,1046 ****
  
  You can automatically create the definition file :file:`API.def`
  (see :ref:`The Definition File <The_Definition_File>`) from a DLL.
! For that use the ``dlltool`` program as follows:
  
    ::
  
--- 1059,1065 ----
  
  You can automatically create the definition file :file:`API.def`
  (see :ref:`The Definition File <The_Definition_File>`) from a DLL.
! To do that, use the ``dlltool`` program as follows:
  
    ::
  
*************** For that use the ``dlltool`` program as
*** 1048,1068 ****
  
    Note that if some routines in the DLL have the ``Stdcall`` convention
    (:ref:`Windows_Calling_Conventions`) with stripped :samp:`@{nn}`
!   suffix then you'll have to edit :file:`api.def` to add it, and specify
    :switch:`-k` to ``gnatdll`` when creating the import library.
  
    Here are some hints to find the right :samp:`@{nn}` suffix.
  
!   - If you have the Microsoft import library (.lib), it is possible to get
!     the right symbols by using Microsoft ``dumpbin`` tool (see the
!     corresponding Microsoft documentation for further details).
  
      ::
  
          $ dumpbin /exports api.lib
  
!   - If you have a message about a missing symbol at link time the compiler
!     tells you what symbol is expected. You just have to go back to the
      definition file and add the right suffix.
  
  
--- 1067,1088 ----
  
    Note that if some routines in the DLL have the ``Stdcall`` convention
    (:ref:`Windows_Calling_Conventions`) with stripped :samp:`@{nn}`
!   suffix then you'll have to edit :file:`api.def` to add it and specify
    :switch:`-k` to ``gnatdll`` when creating the import library.
  
    Here are some hints to find the right :samp:`@{nn}` suffix.
  
!   - If you have the Microsoft import library (.lib), you may be able
!     to find the right symbols by using the Microsoft ``dumpbin`` tool
!     (see the corresponding Microsoft documentation for further
!     details).
  
      ::
  
          $ dumpbin /exports api.lib
  
!   - If you get a message about a missing symbol at link time, the compiler
!     tells you what symbol is expected. You then can go back to the
      definition file and add the right suffix.
  
  
*************** For that use the ``dlltool`` program as
*** 1070,1077 ****
  
  .. rubric:: GNAT-Style Import Library
  
! To create a static import library from :file:`API.dll` with the GNAT tools
! you should create the .def file, then use ``gnatdll`` tool
  (see :ref:`Using_gnatdll`) as follows:
  
    ::
--- 1090,1097 ----
  
  .. rubric:: GNAT-Style Import Library
  
! To create a static import library from :file:`API.dll` with the GNAT tools,
! you should create the :file:`.def` file and use the ``gnatdll`` tool
  (see :ref:`Using_gnatdll`) as follows:
  
    ::
*************** you should create the .def file, then us
*** 1083,1089 ****
    :file:`API.dll`. The name of the static import library generated is
    computed from the name of the definition file as follows: if the
    definition file name is :file:`xyz.def`, the import library name will
!   be :file:`libxyz.a`. Note that in the previous example option
    :switch:`-e` could have been removed because the name of the definition
    file (before the ``.def`` suffix) is the same as the name of the
    DLL (:ref:`Using_gnatdll` for more information about ``gnatdll``).
--- 1103,1109 ----
    :file:`API.dll`. The name of the static import library generated is
    computed from the name of the definition file as follows: if the
    definition file name is :file:`xyz.def`, the import library name will
!   be :file:`libxyz.a`. Note that in the previous example, the switch
    :switch:`-e` could have been removed because the name of the definition
    file (before the ``.def`` suffix) is the same as the name of the
    DLL (:ref:`Using_gnatdll` for more information about ``gnatdll``).
*************** Ada DLL available to applications develo
*** 1098,1111 ****
  tools (:ref:`Mixed-Language_Programming_on_Windows`).
  
  To create a Microsoft-style import library for :file:`API.dll` you
! should create the .def file, then build the actual import library using
  Microsoft's ``lib`` utility:
  
    ::
  
        $ lib -machine:IX86 -def:API.def -out:API.lib
  
!   If you use the above command the definition file :file:`API.def` must
    contain a line giving the name of the DLL:
  
    ::
--- 1118,1131 ----
  tools (:ref:`Mixed-Language_Programming_on_Windows`).
  
  To create a Microsoft-style import library for :file:`API.dll` you
! should create the :file:`.def` file, then build the actual import library using
  Microsoft's ``lib`` utility:
  
    ::
  
        $ lib -machine:IX86 -def:API.def -out:API.lib
  
!   If you use the above command, the definition file :file:`API.def` must
    contain a line giving the name of the DLL:
  
    ::
*************** There is nothing specific to Windows in
*** 1127,1135 ****
  See the *Library Projects* section in the *GNAT Project Manager*
  chapter of the *GPRbuild User's Guide*.
  
! Due to a system limitation, it is not possible under Windows to create threads
  when inside the ``DllMain`` routine which is used for auto-initialization
! of shared libraries, so it is not possible to have library level tasks in SALs.
  
  
  .. _Building_DLLs_with_GNAT:
--- 1147,1155 ----
  See the *Library Projects* section in the *GNAT Project Manager*
  chapter of the *GPRbuild User's Guide*.
  
! Due to a system limitation, you cannot create threads under Windows
  when inside the ``DllMain`` routine which is used for auto-initialization
! of shared libraries, so you can't have library level tasks in SALs.
  
  
  .. _Building_DLLs_with_GNAT:
*************** Building DLLs with GNAT
*** 1139,1163 ****
  
  .. index:: DLLs, building
  
! This section explain how to build DLLs using the GNAT built-in DLL
! support. With the following procedure it is straight forward to build
  and use DLLs with GNAT.
  
  
  * Building object files.
    The first step is to build all objects files that are to be included
!   into the DLL. This is done by using the standard ``gnatmake`` tool.
  
  * Building the DLL.
!   To build the DLL you must use the ``gcc`` :switch:`-shared` and
!   :switch:`-shared-libgcc` options. It is quite simple to use this method:
  
    ::
  
        $ gcc -shared -shared-libgcc -o api.dll obj1.o obj2.o ...
  
!   It is important to note that in this case all symbols found in the
!   object files are automatically exported. It is possible to restrict
    the set of symbols to export by passing to ``gcc`` a definition
    file (see :ref:`The Definition File <The_Definition_File>`).
    For example:
--- 1159,1183 ----
  
  .. index:: DLLs, building
  
! This section explains how to build DLLs using the GNAT built-in DLL
! support. With the following procedure, it is straightforward to build
  and use DLLs with GNAT.
  
  
  * Building object files.
    The first step is to build all objects files that are to be included
!   into the DLL. This is done using the standard ``gnatmake`` tool.
  
  * Building the DLL.
!   To build the DLL, you must use the ``gcc`` :switch:`-shared` and
!   :switch:`-shared-libgcc` switches. It's quite simple to use this method:
  
    ::
  
        $ gcc -shared -shared-libgcc -o api.dll obj1.o obj2.o ...
  
!   It's important to note that in this case all symbols found in the
!   object files are automatically exported. You can restrict
    the set of symbols to export by passing to ``gcc`` a definition
    file (see :ref:`The Definition File <The_Definition_File>`).
    For example:
*************** and use DLLs with GNAT.
*** 1166,1180 ****
  
        $ gcc -shared -shared-libgcc -o api.dll api.def obj1.o obj2.o ...
  
!   If you use a definition file you must export the elaboration procedures
!   for every package that required one. Elaboration procedures are named
    using the package name followed by "_E".
  
  * Preparing DLL to be used.
!   For the DLL to be used by client programs the bodies must be hidden
!   from it and the .ali set with read-only attribute. This is very important
!   otherwise GNAT will recompile all packages and will not actually use
!   the code in the DLL. For example:
  
    ::
  
--- 1186,1200 ----
  
        $ gcc -shared -shared-libgcc -o api.dll api.def obj1.o obj2.o ...
  
!   If you use a definition file, you must export the elaboration procedures
!   for every package that requires one. Elaboration procedures are named
    using the package name followed by "_E".
  
  * Preparing DLL to be used.
!   For the DLL to be used by client programs, the bodies must be hidden
!   from it and the :file:`.ali` set with read-only attribute. This is very
!   important because otherwise GNAT will recompile all packages and will not
!   actually use the code in the DLL. For example:
  
    ::
  
*************** and use DLLs with GNAT.
*** 1182,1191 ****
        $ copy *.ads *.ali api.dll apilib
        $ attrib +R apilib\\*.ali
  
! At this point it is possible to use the DLL by directly linking
  against it. Note that you must use the GNAT shared runtime when using
! GNAT shared libraries. This is achieved by using the :switch:`-shared` binder
! option.
  
    ::
  
--- 1202,1211 ----
        $ copy *.ads *.ali api.dll apilib
        $ attrib +R apilib\\*.ali
  
! At this point, you can use the DLL by directly linking
  against it. Note that you must use the GNAT shared runtime when using
! GNAT shared libraries. You do this with the :switch:`-shared` binder
! switch.
  
    ::
  
*************** Building DLLs with gnatdll
*** 1201,1207 ****
  
  Note that it is preferred to use GNAT Project files
  (:ref:`Building_DLLs_with_GNAT_Project_files`) or the built-in GNAT
! DLL support (:ref:`Building_DLLs_with_GNAT`) or to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  ``gnatdll``. These DLLs will be referred to as Ada DLLs in the
--- 1221,1227 ----
  
  Note that it is preferred to use GNAT Project files
  (:ref:`Building_DLLs_with_GNAT_Project_files`) or the built-in GNAT
! DLL support (:ref:`Building_DLLs_with_GNAT`) to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  ``gnatdll``. These DLLs will be referred to as Ada DLLs in the
*************** non-Ada applications are as follows:
*** 1217,1229 ****
    skip this step if you plan to use the Ada DLL only from Ada applications.
  
  * Your Ada code must export an initialization routine which calls the routine
!   ``adainit`` generated by ``gnatbind`` to perform the elaboration of
    the Ada code in the DLL (:ref:`Ada_DLLs_and_Elaboration`). The initialization
    routine exported by the Ada DLL must be invoked by the clients of the DLL
    to initialize the DLL.
  
  * When useful, the DLL should also export a finalization routine which calls
!   routine ``adafinal`` generated by ``gnatbind`` to perform the
    finalization of the Ada code in the DLL (:ref:`Ada_DLLs_and_Finalization`).
    The finalization routine exported by the Ada DLL must be invoked by the
    clients of the DLL when the DLL services are no further needed.
--- 1237,1249 ----
    skip this step if you plan to use the Ada DLL only from Ada applications.
  
  * Your Ada code must export an initialization routine which calls the routine
!   ``adainit`` (generated by ``gnatbind``) to perform the elaboration of
    the Ada code in the DLL (:ref:`Ada_DLLs_and_Elaboration`). The initialization
    routine exported by the Ada DLL must be invoked by the clients of the DLL
    to initialize the DLL.
  
  * When useful, the DLL should also export a finalization routine which calls
!   routine ``adafinal`` (also generated by ``gnatbind``) to perform the
    finalization of the Ada code in the DLL (:ref:`Ada_DLLs_and_Finalization`).
    The finalization routine exported by the Ada DLL must be invoked by the
    clients of the DLL when the DLL services are no further needed.
*************** non-Ada applications are as follows:
*** 1234,1245 ****
  * You must provide a definition file listing the exported entities
    (:ref:`The Definition File <The_Definition_File>`).
  
! * Finally you must use ``gnatdll`` to produce the DLL and the import
    library (:ref:`Using_gnatdll`).
  
  Note that a relocatable DLL stripped using the ``strip``
! binutils tool will not be relocatable anymore. To build a DLL without
! debug information pass :switch:`-largs -s` to ``gnatdll``. This
  restriction does not apply to a DLL built using a Library Project.
  See the *Library Projects* section in the *GNAT Project Manager*
  chapter of the *GPRbuild User's Guide*.
--- 1254,1265 ----
  * You must provide a definition file listing the exported entities
    (:ref:`The Definition File <The_Definition_File>`).
  
! * Finally, you must use ``gnatdll`` to produce the DLL and the import
    library (:ref:`Using_gnatdll`).
  
  Note that a relocatable DLL stripped using the ``strip``
! binutils tool is no longer relocatable. To build a DLL without
! debug information, pass :switch:`-largs -s` to ``gnatdll``. This
  restriction does not apply to a DLL built using a Library Project.
  See the *Library Projects* section in the *GNAT Project Manager*
  chapter of the *GPRbuild User's Guide*.
*************** chapter of the *GPRbuild User's Guide*.
*** 1250,1260 ****
  Limitations When Using Ada DLLs from Ada
  """"""""""""""""""""""""""""""""""""""""
  
! When using Ada DLLs from Ada applications there is a limitation users
! should be aware of. Because on Windows the GNAT run-time is not in a DLL of
! its own, each Ada DLL includes a part of the GNAT run-time. Specifically,
  each Ada DLL includes the services of the GNAT run-time that are necessary
! to the Ada code inside the DLL. As a result, when an Ada program uses an
  Ada DLL there are two independent GNAT run-times: one in the Ada DLL and
  one in the main program.
  
--- 1270,1280 ----
  Limitations When Using Ada DLLs from Ada
  """"""""""""""""""""""""""""""""""""""""
  
! When using Ada DLLs from Ada applications there is a limitation you
! should be aware of. On Windows, the GNAT run-time is not in a DLL of
! its own, so each Ada DLL includes a part of the GNAT run-time. Specifically,
  each Ada DLL includes the services of the GNAT run-time that are necessary
! for the Ada code inside the DLL. As a result, when an Ada program uses an
  Ada DLL there are two independent GNAT run-times: one in the Ada DLL and
  one in the main program.
  
*************** variable:
*** 1327,1333 ****
          end Finalize_API;
       end API;
  
! If the Ada DLL you are building will only be used by Ada applications
  you do not have to export Ada entities with a ``C`` or ``Stdcall``
  convention. As an example, the previous package could be written as
  follows:
--- 1347,1353 ----
          end Finalize_API;
       end API;
  
! If the Ada DLL you are building will only be used by Ada applications,
  you do not have to export Ada entities with a ``C`` or ``Stdcall``
  convention. As an example, the previous package could be written as
  follows:
*************** follows:
*** 1361,1367 ****
       end API;
  
  Note that if you do not export the Ada entities with a ``C`` or
! ``Stdcall`` convention you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
  (:ref:`Creating_the_Definition_File`).
  
--- 1381,1387 ----
       end API;
  
  Note that if you do not export the Ada entities with a ``C`` or
! ``Stdcall`` convention, you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
  (:ref:`Creating_the_Definition_File`).
  
*************** routines in the Ada library that are nee
*** 1378,1384 ****
  user of your DLL must do is elaborate the Ada code
  (:ref:`Elaboration_Order_Handling_in_GNAT`).
  
! To achieve this you must export an initialization routine
  (``Initialize_API`` in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine ``adainit`` generated by the GNAT binder
--- 1398,1404 ----
  user of your DLL must do is elaborate the Ada code
  (:ref:`Elaboration_Order_Handling_in_GNAT`).
  
! To allow this, you must export an initialization routine
  (``Initialize_API`` in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine ``adainit`` generated by the GNAT binder
*************** automatically invoked during the DLL bui
*** 1388,1400 ****
  tool (:ref:`Using_gnatdll`).
  
  When a DLL is loaded, Windows systematically invokes a routine called
! ``DllMain``. It would therefore be possible to call ``adainit``
  directly from ``DllMain`` without having to provide an explicit
! initialization routine. Unfortunately, it is not possible to call
  ``adainit`` from the ``DllMain`` if your program has library level
  tasks because access to the ``DllMain`` entry point is serialized by
  the system (that is, only a single thread can execute 'through' it at a
! time), which means that the GNAT run-time will deadlock waiting for the
  newly created task to complete its initialization.
  
  
--- 1408,1420 ----
  tool (:ref:`Using_gnatdll`).
  
  When a DLL is loaded, Windows systematically invokes a routine called
! ``DllMain``. It should therefore be possible to call ``adainit``
  directly from ``DllMain`` without having to provide an explicit
! initialization routine. Unfortunately, you can't call
  ``adainit`` from the ``DllMain`` if your program has library level
  tasks because access to the ``DllMain`` entry point is serialized by
  the system (that is, only a single thread can execute 'through' it at a
! time), which means that the GNAT run-time will deadlock waiting for a
  newly created task to complete its initialization.
  
  
*************** contained in the DLL: one for building t
*** 1439,1445 ****
  the DLL. This is because the ``DLL`` calling convention is needed to
  use a variable defined in a DLL, but when building the DLL, the variable
  must have either the ``Ada`` or ``C`` calling convention. As an
! example consider a DLL comprising the following package ``API``:
  
    .. code-block:: ada
  
--- 1459,1465 ----
  the DLL. This is because the ``DLL`` calling convention is needed to
  use a variable defined in a DLL, but when building the DLL, the variable
  must have either the ``Ada`` or ``C`` calling convention. As an
! example consider a DLL consisting of the following package ``API``:
  
    .. code-block:: ada
  
*************** DLL is:
*** 1466,1474 ****
  Creating the Definition File
  """"""""""""""""""""""""""""
  
! The definition file is the last file needed to build the DLL. It lists
  the exported symbols. As an example, the definition file for a DLL
! containing only package ``API`` (where all the entities are exported
  with a ``C`` calling convention) is:
  
    ::
--- 1486,1494 ----
  Creating the Definition File
  """"""""""""""""""""""""""""
  
! The definition file is the last file you need to build the DLL. It lists
  the exported symbols. As an example, the definition file for a DLL
! containing only package ``API`` above (where all the entities are exported
  with a ``C`` calling convention) is:
  
    ::
*************** with a ``C`` calling convention) is:
*** 1480,1486 ****
          initialize_api
  
  If the ``C`` calling convention is missing from package ``API``,
! then the definition file contains the mangled Ada names of the above
  entities, which in this case are:
  
    ::
--- 1500,1506 ----
          initialize_api
  
  If the ``C`` calling convention is missing from package ``API``,
! the definition file contains the mangled Ada names of the above
  entities, which in this case are:
  
    ::
*************** Using ``gnatdll``
*** 1501,1509 ****
  
  ``gnatdll`` is a tool to automate the DLL build process once all the Ada
  and non-Ada sources that make up your DLL have been compiled.
! ``gnatdll`` is actually in charge of two distinct tasks: build the
! static import library for the DLL and the actual DLL. The form of the
! ``gnatdll`` command is
  
    ::
  
--- 1521,1529 ----
  
  ``gnatdll`` is a tool to automate the DLL build process once all the Ada
  and non-Ada sources that make up your DLL have been compiled.
! ``gnatdll`` is actually in charge of two distinct tasks: building both the
! static import library for the DLL and the actual DLL. You invoke the
! ``gnatdll`` command as
  
    ::
  
*************** You may specify any of the following swi
*** 1522,1555 ****
    .. index:: -a (gnatdll)
  
  :switch:`-a[{address}]`
!   Build a non-relocatable DLL at ``address``. If ``address`` is not
!   specified the default address ``0x11000000`` will be used. By default,
!   when this switch is missing, ``gnatdll`` builds relocatable DLL. We
!   advise the reader to build relocatable DLL.
! 
! 
!   .. index:: -b (gnatdll)
! 
! :switch:`-b {address}`
!   Set the relocatable DLL base address. By default the address is
!   ``0x11000000``.
  
  
    .. index:: -bargs (gnatdll)
  
  :switch:`-bargs {opts}`
!   Binder options. Pass ``opts`` to the binder.
  
  
    .. index:: -d (gnatdll)
  
  :switch:`-d {dllfile}`
!   ``dllfile`` is the name of the DLL. This switch must be present for
!   ``gnatdll`` to do anything. The name of the generated import library is
!   obtained algorithmically from ``dllfile`` as shown in the following
    example: if ``dllfile`` is :file:`xyz.dll`, the import library name is
!   :file:`libxyz.dll.a`. The name of the definition file to use (if not specified
!   by option :switch:`-e`) is obtained algorithmically from ``dllfile``
    as shown in the following example:
    if ``dllfile`` is :file:`xyz.dll`, the definition
    file used is :file:`xyz.def`.
--- 1542,1568 ----
    .. index:: -a (gnatdll)
  
  :switch:`-a[{address}]`
!   Build a non-relocatable DLL at ``address``. If you don't specify
!   ``address``, ``gnatdll`` uses the default address of ``0x11000000``. By
!   default, when this switch is missing, ``gnatdll`` builds a
!   relocatable DLL. We advise you to build relocatable DLL.
  
  
    .. index:: -bargs (gnatdll)
  
  :switch:`-bargs {opts}`
!   Binder switches. Pass ``opts`` to the binder.
  
  
    .. index:: -d (gnatdll)
  
  :switch:`-d {dllfile}`
!   ``dllfile`` is the name of the DLL. You must specify this switch for
!   ``gnatdll`` to do anything. ``gnatdll`` names the generated import library
!   algorithmically from ``dllfile`` as shown in the following
    example: if ``dllfile`` is :file:`xyz.dll`, the import library name is
!   :file:`libxyz.dll.a`. ``gnatdll`` obtains the name of the definition file (if not specified
!   by switch :switch:`-e`) algorithmically from ``dllfile``
    as shown in the following example:
    if ``dllfile`` is :file:`xyz.dll`, the definition
    file used is :file:`xyz.def`.
*************** You may specify any of the following swi
*** 1590,1599 ****
  :switch:`-k`
    Removes the :samp:`@{nn}` suffix from the import library's exported
    names, but keeps them for the link names. You must specify this
!   option if you want to use a ``Stdcall`` function in a DLL for which
    the :samp:`@{nn}` suffix has been removed. This is the case for most
!   of the Windows NT DLL for example. This option has no effect when
!   :switch:`-n` option is specified.
  
  
    .. index:: -l (gnatdll)
--- 1603,1612 ----
  :switch:`-k`
    Removes the :samp:`@{nn}` suffix from the import library's exported
    names, but keeps them for the link names. You must specify this
!   switch if you want to use a ``Stdcall`` function in a DLL for which
    the :samp:`@{nn}` suffix has been removed. This is the case for most
!   of the Windows NT DLL for example. This switch has no effect if you
!   specify the :switch:`-n` switch.
  
  
    .. index:: -l (gnatdll)
*************** You may specify any of the following swi
*** 1625,1636 ****
    .. index:: -largs (gnatdll)
  
  :switch:`-largs {opts}`
!   Linker options. Pass ``opts`` to the linker.
  
  
  .. rubric:: ``gnatdll`` Example
  
! As an example the command to build a relocatable DLL from :file:`api.adb`
  once :file:`api.adb` has been compiled and :file:`api.def` created is
  
    ::
--- 1638,1649 ----
    .. index:: -largs (gnatdll)
  
  :switch:`-largs {opts}`
!   Linker switches. Pass ``opts`` to the linker.
  
  
  .. rubric:: ``gnatdll`` Example
  
! As an example, the command to build a relocatable DLL from :file:`api.adb`
  once :file:`api.adb` has been compiled and :file:`api.def` created is
  
    ::
*************** only the DLL, just type:
*** 1645,1651 ****
  
       $ gnatdll -d api.dll -n api.ali
  
! Alternatively if you want to create just the import library, type:
  
    ::
  
--- 1658,1664 ----
  
       $ gnatdll -d api.dll -n api.ali
  
! Alternatively, if you want to create just the import library, type:
  
    ::
  
*************** goes on behind the scenes, you should sk
*** 1660,1671 ****
  
  We use the previous example of a DLL containing the Ada package ``API``,
  to illustrate the steps necessary to build a DLL. The starting point is a
! set of objects that will make up the DLL and the corresponding ALI
! files. In the case of this example this means that :file:`api.o` and
! :file:`api.ali` are available. To build a relocatable DLL, ``gnatdll`` does
  the following:
  
! * ``gnatdll`` builds the base file (:file:`api.base`). A base file gives
    the information necessary to generate relocation information for the
    DLL.
  
--- 1673,1684 ----
  
  We use the previous example of a DLL containing the Ada package ``API``,
  to illustrate the steps necessary to build a DLL. The starting point is a
! set of objects that make up the DLL and the corresponding ALI
! files. In the case of this example, this means :file:`api.o` and
! :file:`api.ali`. To build a relocatable DLL, ``gnatdll`` does
  the following:
  
! * builds the base file (:file:`api.base`). A base file gives
    the information necessary to generate relocation information for the
    DLL.
  
*************** the following:
*** 1675,1686 ****
        $ gnatlink api -o api.jnk -mdll -Wl,--base-file,api.base
  
    In addition to the base file, the ``gnatlink`` command generates an
!   output file :file:`api.jnk` which can be discarded. The :switch:`-mdll` switch
    asks ``gnatlink`` to generate the routines ``DllMain`` and
    ``DllMainCRTStartup`` that are called by the Windows loader when the DLL
    is loaded into memory.
  
! * ``gnatdll`` uses ``dlltool`` (see :ref:`Using dlltool <Using_dlltool>`) to build the
    export table (:file:`api.exp`). The export table contains the relocation
    information in a form which can be used during the final link to ensure
    that the Windows loader is able to place the DLL anywhere in memory.
--- 1688,1699 ----
        $ gnatlink api -o api.jnk -mdll -Wl,--base-file,api.base
  
    In addition to the base file, the ``gnatlink`` command generates an
!   output file :file:`api.jnk`, which can be discarded. The :switch:`-mdll` switch
    asks ``gnatlink`` to generate the routines ``DllMain`` and
    ``DllMainCRTStartup`` that are called by the Windows loader when the DLL
    is loaded into memory.
  
! * uses ``dlltool`` (see :ref:`Using dlltool <Using_dlltool>`) to build the
    export table (:file:`api.exp`). The export table contains the relocation
    information in a form which can be used during the final link to ensure
    that the Windows loader is able to place the DLL anywhere in memory.
*************** the following:
*** 1690,1696 ****
        $ dlltool --dllname api.dll --def api.def --base-file api.base \\
                  --output-exp api.exp
  
! * ``gnatdll`` builds the base file using the new export table. Note that
    ``gnatbind`` must be called once again since the binder generated file
    has been deleted during the previous call to ``gnatlink``.
  
--- 1703,1709 ----
        $ dlltool --dllname api.dll --def api.def --base-file api.base \\
                  --output-exp api.exp
  
! * builds the base file using the new export table. Note that
    ``gnatbind`` must be called once again since the binder generated file
    has been deleted during the previous call to ``gnatlink``.
  
*************** the following:
*** 1701,1707 ****
              -Wl,--base-file,api.base
  
  
! * ``gnatdll`` builds the new export table using the new base file and
    generates the DLL import library :file:`libAPI.dll.a`.
  
  
--- 1714,1720 ----
              -Wl,--base-file,api.base
  
  
! * builds the new export table using the new base file and
    generates the DLL import library :file:`libAPI.dll.a`.
  
  
*************** the following:
*** 1710,1717 ****
        $ dlltool --dllname api.dll --def api.def --base-file api.base \\
                  --output-exp api.exp --output-lib libAPI.a
  
! * Finally ``gnatdll`` builds the relocatable DLL using the final export
!   table.
  
    ::
  
--- 1723,1729 ----
        $ dlltool --dllname api.dll --def api.def --base-file api.base \\
                  --output-exp api.exp --output-lib libAPI.a
  
! * Finally, builds the relocatable DLL using the final export table.
  
    ::
  
*************** the following:
*** 1725,1732 ****
  
  ``dlltool`` is the low-level tool used by ``gnatdll`` to build
  DLLs and static import libraries. This section summarizes the most
! common ``dlltool`` switches. The form of the ``dlltool`` command
! is
  
    ::
  
--- 1737,1743 ----
  
  ``dlltool`` is the low-level tool used by ``gnatdll`` to build
  DLLs and static import libraries. This section summarizes the most
! common ``dlltool`` switches. You run ``dlltool`` as follows:
  
    ::
  
*************** is
*** 1738,1745 ****
  .. index:: --base-file (dlltool)
  
  :switch:`--base-file {basefile}`
!   Read the base file ``basefile`` generated by the linker. This switch
!   is used to create a relocatable DLL.
  
  
  .. index:: --def (dlltool)
--- 1749,1756 ----
  .. index:: --base-file (dlltool)
  
  :switch:`--base-file {basefile}`
!   Read the base file ``basefile`` generated by the linker. You use this switch
!   to create a relocatable DLL.
  
  
  .. index:: --def (dlltool)
*************** is
*** 1751,1757 ****
  .. index:: --dllname (dlltool)
  
  :switch:`--dllname {name}`
!   Gives the name of the DLL. This switch is used to embed the name of the
    DLL in the static import library generated by ``dlltool`` with switch
    :switch:`--output-lib`.
  
--- 1762,1768 ----
  .. index:: --dllname (dlltool)
  
  :switch:`--dllname {name}`
!   Gives the name of the DLL. You use this switch to embed the name of the
    DLL in the static import library generated by ``dlltool`` with switch
    :switch:`--output-lib`.
  
*************** GNAT and Windows Resources
*** 1802,1809 ****
  
  .. index:: Resources, windows
  
! Resources are an easy way to add Windows specific objects to your
! application. The objects that can be added as resources include:
  
  * menus
  
--- 1813,1820 ----
  
  .. index:: Resources, windows
  
! Resources are an easy way to add Windows-specific objects to your
! application. The objects that you can add as resources include:
  
  * menus
  
*************** application. The objects that can be add
*** 1823,1835 ****
  
  * version information
  
! For example, a version information resource can be defined as follow and
! embedded into an executable or DLL:
! 
! A version information resource can be used to embed information into an
! executable or a DLL. These information can be viewed using the file properties
! from the Windows Explorer. Here is an example of a version information
! resource:
  
    ::
  
--- 1834,1843 ----
  
  * version information
  
! You can use a version information resource to embed information into
! an executable or a DLL. This information can be viewed using the file
! properties from the Windows Explorer. Here's an example of a version
! information resource:
  
    ::
  
*************** The value ``0809`` (langID) is for the U
*** 1863,1869 ****
  multilingual.
  
  This section explains how to build, compile and use resources. Note that this
! section does not cover all resource objects, for a complete description see
  the corresponding Microsoft documentation.
  
  
--- 1871,1877 ----
  multilingual.
  
  This section explains how to build, compile and use resources. Note that this
! section does not cover all resource objects; for a complete description see
  the corresponding Microsoft documentation.
  
  
*************** Building Resources
*** 1874,1890 ****
  
  .. index:: Resources, building
  
! A resource file is an ASCII file. By convention resource files have an
  :file:`.rc` extension.
  The easiest way to build a resource file is to use Microsoft tools
  such as ``imagedit.exe`` to build bitmaps, icons and cursors and
  ``dlgedit.exe`` to build dialogs.
! It is always possible to build an :file:`.rc` file yourself by writing a
  resource script.
  
! It is not our objective to explain how to write a resource file. A
! complete description of the resource script language can be found in the
! Microsoft documentation.
  
  
  .. _Compiling_Resources:
--- 1882,1898 ----
  
  .. index:: Resources, building
  
! A resource file is an ASCII file. By convention, resource files have an
  :file:`.rc` extension.
  The easiest way to build a resource file is to use Microsoft tools
  such as ``imagedit.exe`` to build bitmaps, icons and cursors and
  ``dlgedit.exe`` to build dialogs.
! You can always build an :file:`.rc` file yourself by writing a
  resource script.
  
! It's not our objective to explain how to write a resource file. A
! complete description of the resource script language can be found in
! the Microsoft documentation.
  
  
  .. _Compiling_Resources:
*************** Compiling Resources
*** 1896,1918 ****
  .. index:: windres
  .. index:: Resources, compiling
  
! This section describes how to build a GNAT-compatible (COFF) object file
! containing the resources. This is done using the Resource Compiler
  ``windres`` as follows:
  
    ::
  
       $ windres -i myres.rc -o myres.o
  
! By default ``windres`` will run ``gcc`` to preprocess the :file:`.rc`
  file. You can specify an alternate preprocessor (usually named
  :file:`cpp.exe`) using the ``windres`` :switch:`--preprocessor`
! parameter. A list of all possible options may be obtained by entering
  the command ``windres`` :switch:`--help`.
  
! It is also possible to use the Microsoft resource compiler ``rc.exe``
  to produce a :file:`.res` file (binary resource file). See the
! corresponding Microsoft documentation for further details. In this case
  you need to use ``windres`` to translate the :file:`.res` file to a
  GNAT-compatible object file as follows:
  
--- 1904,1926 ----
  .. index:: windres
  .. index:: Resources, compiling
  
! This section describes how you can build a GNAT-compatible (COFF) object file
! containing the resources. You do this using the Resource Compiler
  ``windres`` as follows:
  
    ::
  
       $ windres -i myres.rc -o myres.o
  
! By default ``windres`` runs ``gcc`` to preprocess the :file:`.rc`
  file. You can specify an alternate preprocessor (usually named
  :file:`cpp.exe`) using the ``windres`` :switch:`--preprocessor`
! parameter. You can obtain a list of all possible switches by entering
  the command ``windres`` :switch:`--help`.
  
! You can also use the Microsoft resource compiler ``rc.exe``
  to produce a :file:`.res` file (binary resource file). See the
! corresponding Microsoft documentation for further details. In this case,
  you need to use ``windres`` to translate the :file:`.res` file to a
  GNAT-compatible object file as follows:
  
*************** Using Resources
*** 1930,1937 ****
  
  To include the resource file in your program just add the
  GNAT-compatible object file for the resource(s) to the linker
! arguments. With ``gnatmake`` this is done by using the :switch:`-largs`
! option:
  
    ::
  
--- 1938,1945 ----
  
  To include the resource file in your program just add the
  GNAT-compatible object file for the resource(s) to the linker
! arguments. With ``gnatmake`` you do this using the :switch:`-largs`
! switch:
  
    ::
  
*************** Using GNAT DLLs from Microsoft Visual St
*** 1945,1955 ****
  
  .. index:: Microsoft Visual Studio, use with GNAT DLLs
  
! This section describes a common case of mixed GNAT/Microsoft Visual Studio
! application development, where the main program is developed using MSVS, and
! is linked with a DLL developed using GNAT. Such a mixed application should
! be developed following the general guidelines outlined above; below is the
! cookbook-style sequence of steps to follow:
  
  1. First develop and build the GNAT shared library using a library project
     (let's assume the project is :file:`mylib.gpr`, producing the library :file:`libmylib.dll`):
--- 1953,1964 ----
  
  .. index:: Microsoft Visual Studio, use with GNAT DLLs
  
! This section describes a common case of mixed GNAT/Microsoft Visual
! Studio application development, where the main program is developed
! using MSVS and is linked with a DLL developed using GNAT. You should
! develop such a mixed application following the general guidelines
! outlined above; below is the cookbook-style sequence of steps to
! follow:
  
  1. First develop and build the GNAT shared library using a library project
     (let's assume the project is :file:`mylib.gpr`, producing the library :file:`libmylib.dll`):
*************** cookbook-style sequence of steps to foll
*** 1958,1966 ****
  
       $ gprbuild -p mylib.gpr
  
! 2. Produce a .def file for the symbols you need to interface with, either by
!    hand or automatically with possibly some manual adjustments
!    (see :ref:`Creating Definition File Automatically <Create_Def_File_Automatically>`):
  
    ::
  
--- 1967,1976 ----
  
       $ gprbuild -p mylib.gpr
  
! 2. Produce a :file:`.def` file for the symbols you need to interface
!    with, either by hand or automatically with possibly some manual
!    adjustments (see :ref:`Creating Definition File Automatically
!    <Create_Def_File_Automatically>`):
  
    ::
  
*************** If you are using a 64-bit toolchain, the
*** 1980,1993 ****
  
       $ lib -machine:X64 -def:libmylib.def -out:libmylib.lib
  
! 5. Build the C main
  
    ::
  
       $ cl /O2 /MD main.c libmylib.lib
  
! 6. Before running the executable, make sure you have set the PATH to the DLL,
!    or copy the DLL into into the directory containing the .exe.
  
  
  .. _Debugging_a_DLL:
--- 1990,2004 ----
  
       $ lib -machine:X64 -def:libmylib.def -out:libmylib.lib
  
! 5. Build the C ``main``:
  
    ::
  
       $ cl /O2 /MD main.c libmylib.lib
  
! 6. Before running the executable, make sure you have set the PATH to
!    include the DLL or copy the DLL into into the directory containing
!    the :file:`.exe`.
  
  
  .. _Debugging_a_DLL:
*************** Debugging a DLL
*** 1997,2017 ****
  
  .. index:: DLL debugging
  
! Debugging a DLL is similar to debugging a standard program. But
! we have to deal with two different executable parts: the DLL and the
! program that uses it. We have the following four possibilities:
  
! * The program and the DLL are built with GCC/GNAT.
  * The program is built with foreign tools and the DLL is built with
    GCC/GNAT.
  * The program is built with GCC/GNAT and the DLL is built with
    foreign tools.
  
! In this section we address only cases one and two above.
! There is no point in trying to debug
! a DLL with GNU/GDB, if there is no GDB-compatible debugging
! information in it. To do so you must use a debugger compatible with the
! tools suite used to build the DLL.
  
  .. _Program_and_DLL_Both_Built_with_GCC/GNAT:
  
--- 2008,2027 ----
  
  .. index:: DLL debugging
  
! Debugging a DLL is similar to debugging a standard program, but
! you have to deal with two different executable parts: the DLL and the
! program that uses it. There are the following four possibilities:
  
! * The program and DLL are built with GCC/GNAT.
  * The program is built with foreign tools and the DLL is built with
    GCC/GNAT.
  * The program is built with GCC/GNAT and the DLL is built with
    foreign tools.
  
! In this section we address only cases one and two above.  Note that
! there is no point in trying to debug a DLL with GNU/GDB if there is no
! GDB-compatible debugging information in it. To do so, you must use a
! debugger compatible with the tools suite used to build the DLL.
  
  .. _Program_and_DLL_Both_Built_with_GCC/GNAT:
  
*************** Program and DLL Both Built with GCC/GNAT
*** 2019,2032 ****
  """"""""""""""""""""""""""""""""""""""""
  
  This is the simplest case. Both the DLL and the program have ``GDB``
! compatible debugging information. It is then possible to break anywhere in
! the process. Let's suppose here that the main procedure is named
! ``ada_main`` and that in the DLL there is an entry point named
  ``ada_dll``.
  
  The DLL (:ref:`Introduction_to_Dynamic_Link_Libraries_DLLs`) and
! program must have been built with the debugging information (see GNAT -g
! switch). Here are the step-by-step instructions for debugging it:
  
  * Launch ``GDB`` on the main program.
  
--- 2029,2042 ----
  """"""""""""""""""""""""""""""""""""""""
  
  This is the simplest case. Both the DLL and the program have ``GDB``
! compatible debugging information. You can then break anywhere in
! the process. Let's suppose the main procedure is named
! ``ada_main`` and in the DLL there's an entry point named
  ``ada_dll``.
  
  The DLL (:ref:`Introduction_to_Dynamic_Link_Libraries_DLLs`) and
! program must have been built with the debugging information (see the GNAT
! :switch:`-g` switch). Here are the step-by-step instructions for debugging it:
  
  * Launch ``GDB`` on the main program.
  
*************** switch). Here are the step-by-step instr
*** 2040,2049 ****
  
        (gdb) start
  
!   This step is required to be able to set a breakpoint inside the DLL. As long
!   as the program is not run, the DLL is not loaded. This has the
!   consequence that the DLL debugging information is also not loaded, so it is not
!   possible to set a breakpoint in the DLL.
  
  * Set a breakpoint inside the DLL
  
--- 2050,2059 ----
  
        (gdb) start
  
!   This step is required to be able to set a breakpoint inside
!   the DLL. Until the program is run, the DLL is not loaded. This has
!   the consequence that the DLL debugging information is also not
!   loaded, so it is not possible to set a breakpoint in the DLL.
  
  * Set a breakpoint inside the DLL
  
*************** switch). Here are the step-by-step instr
*** 2052,2059 ****
        (gdb) break ada_dll
        (gdb) cont
  
! At this stage a breakpoint is set inside the DLL. From there on
! you can use the standard approach to debug the whole program
  (:ref:`Running_and_Debugging_Ada_Programs`).
  
  
--- 2062,2069 ----
        (gdb) break ada_dll
        (gdb) cont
  
! At this stage, a breakpoint is set inside the DLL. From there on
! you can use standard ``GDB`` commands to debug the whole program
  (:ref:`Running_and_Debugging_Ada_Programs`).
  
  
*************** you can use the standard approach to deb
*** 2062,2087 ****
  Program Built with Foreign Tools and DLL Built with GCC/GNAT
  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  
! In this case things are slightly more complex because it is not possible to
  start the main program and then break at the beginning to load the DLL and the
! associated DLL debugging information. It is not possible to break at the
! beginning of the program because there is no ``GDB`` debugging information,
! and therefore there is no direct way of getting initial control. This
! section addresses this issue by describing some methods that can be used
  to break somewhere in the DLL to debug it.
  
! First suppose that the main procedure is named ``main`` (this is for
! example some C code built with Microsoft Visual C) and that there is a
! DLL named ``test.dll`` containing an Ada entry point named
  ``ada_dll``.
  
  The DLL (see :ref:`Introduction_to_Dynamic_Link_Libraries_DLLs`) must have
! been built with debugging information (see the GNAT :switch:`-g` option).
  
  
  .. rubric:: Debugging the DLL Directly
  
! * Find out the executable starting address
  
    ::
  
--- 2072,2097 ----
  Program Built with Foreign Tools and DLL Built with GCC/GNAT
  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  
! In this case, things are slightly more complex because you can't
  start the main program and then break at the beginning to load the DLL and the
! associated DLL debugging information. It's not possible to break at the
! beginning of the program because there's no ``GDB`` debugging information,
! and therefore there's no direct way of getting initial control. This
! section addresses this issue by describing some methods that you can use
  to break somewhere in the DLL to debug it.
  
! First, suppose that the main procedure is named ``main`` (this is the
! case, for example, for some C code built with Microsoft Visual C) and that
! there's a DLL named ``test.dll`` containing an Ada entry point named
  ``ada_dll``.
  
  The DLL (see :ref:`Introduction_to_Dynamic_Link_Libraries_DLLs`) must have
! been built with debugging information (see the GNAT :switch:`-g` switch).
  
  
  .. rubric:: Debugging the DLL Directly
  
! * Determine the executable's starting address
  
    ::
  
*************** been built with debugging information (s
*** 2102,2115 ****
  
        $ gdb main.exe
  
! * Set a breakpoint at the starting address, and launch the program.
  
    ::
  
        $ (gdb) break *0x00401010
        $ (gdb) run
  
!   The program will stop at the given address.
  
  * Set a breakpoint on a DLL subroutine.
  
--- 2112,2125 ----
  
        $ gdb main.exe
  
! * Set a breakpoint at the starting address and launch the program.
  
    ::
  
        $ (gdb) break *0x00401010
        $ (gdb) run
  
!   The program will stop at the specified address.
  
  * Set a breakpoint on a DLL subroutine.
  
*************** been built with debugging information (s
*** 2131,2152 ****
  
        (gdb) cont
  
!   This will run the program until it reaches the breakpoint that has been
!   set. From that point you can use the standard way to debug a program
!   as described in (:ref:`Running_and_Debugging_Ada_Programs`).
  
! It is also possible to debug the DLL by attaching to a running process.
  
  
  .. rubric:: Attaching to a Running Process
  
  .. index:: DLL debugging, attach to process
  
! With ``GDB`` it is always possible to debug a running process by
! attaching to it. It is possible to debug a DLL this way. The limitation
! of this approach is that the DLL must run long enough to perform the
! attach operation. It may be useful for instance to insert a time wasting
! loop in the code of the DLL to meet this criterion.
  
  * Launch the main program :file:`main.exe`.
  
--- 2141,2163 ----
  
        (gdb) cont
  
!   This runs the program until it reaches the breakpoint that you've
!   set. From that point, you can use standard ``GDB`` commands to debug
!   a program as described in
!   (:ref:`Running_and_Debugging_Ada_Programs`).
  
! You can also debug the DLL by attaching ``GDB`` to a running process.
  
  
  .. rubric:: Attaching to a Running Process
  
  .. index:: DLL debugging, attach to process
  
! With ``GDB``, you can always debug a running process by attaching to
! it. It's possible to debug a DLL this way. The limitation of this
! approach is that the DLL must run long enough to perform the attach
! operation. To ensure this, you may want, for example, to insert a
! time-wasting loop in the code of the DLL to allow this to happen.
  
  * Launch the main program :file:`main.exe`.
  
*************** loop in the code of the DLL to meet this
*** 2187,2195 ****
  
        (gdb) cont
  
! This last step will resume the process execution, and stop at
! the breakpoint we have set. From there you can use the standard
! approach to debug a program as described in
  :ref:`Running_and_Debugging_Ada_Programs`.
  
  
--- 2198,2206 ----
  
        (gdb) cont
  
! This last step will resume the process execution and stop at
! the breakpoint we have set. From there you can use standard
! ``GDB`` commands to debug a program, as described in
  :ref:`Running_and_Debugging_Ada_Programs`.
  
  
*************** approach to debug a program as described
*** 2198,2218 ****
  Setting Stack Size from ``gnatlink``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! It is possible to specify the program stack size at link time. On modern
! versions of Windows, starting with XP, this is mostly useful to set the size of
! the main stack (environment task). The other task stacks are set with pragma
! Storage_Size or with the *gnatbind -d* command.
  
! Since older versions of Windows (2000, NT4, etc.) do not allow setting the
  reserve size of individual tasks, the link-time stack size applies to all
  tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
! This setting can be done with ``gnatlink`` using either of the following:
  
  
! * :switch:`-Xlinker` linker option
  
    ::
  
--- 2209,2229 ----
  Setting Stack Size from ``gnatlink``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! You can specify the program stack size at link time. On most versions
! of Windows, starting with XP, this is mostly useful to set the size of
! the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the *gnatbind -d* command.
  
! Since very old versions of Windows (2000, NT4, etc.) don't allow setting the
  reserve size of individual tasks, the link-time stack size applies to all
  tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
! You can set this with ``gnatlink`` using either of the following:
  
  
! * :switch:`-Xlinker` linker switch
  
    ::
  
*************** This setting can be done with ``gnatlink
*** 2222,2236 ****
    This sets the stack reserve size to 0x10000 bytes and the stack commit
    size to 0x1000 bytes.
  
! * :switch:`-Wl` linker option
  
    ::
  
      $ gnatlink hello -Wl,--stack=0x1000000
  
    This sets the stack reserve size to 0x1000000 bytes. Note that with
!   :switch:`-Wl` option it is not possible to set the stack commit size
!   because the comma is a separator for this option.
  
  
  .. _Setting_Heap_Size_from_gnatlink:
--- 2233,2247 ----
    This sets the stack reserve size to 0x10000 bytes and the stack commit
    size to 0x1000 bytes.
  
! * :switch:`-Wl` linker switch
  
    ::
  
      $ gnatlink hello -Wl,--stack=0x1000000
  
    This sets the stack reserve size to 0x1000000 bytes. Note that with
!   :switch:`-Wl` switch, you can't also set the stack commit size
!   because the comma is a separator for this switch.
  
  
  .. _Setting_Heap_Size_from_gnatlink:
*************** Setting Heap Size from ``gnatlink``
*** 2241,2247 ****
  Under Windows systems, it is possible to specify the program heap size from
  ``gnatlink`` using either of the following:
  
! * :switch:`-Xlinker` linker option
  
    ::
  
--- 2252,2258 ----
  Under Windows systems, it is possible to specify the program heap size from
  ``gnatlink`` using either of the following:
  
! * :switch:`-Xlinker` linker switch
  
    ::
  
*************** Under Windows systems, it is possible to
*** 2250,2256 ****
    This sets the heap reserve size to 0x10000 bytes and the heap commit
    size to 0x1000 bytes.
  
! * :switch:`-Wl` linker option
  
    ::
  
--- 2261,2267 ----
    This sets the heap reserve size to 0x10000 bytes and the heap commit
    size to 0x1000 bytes.
  
! * :switch:`-Wl` linker switch
  
    ::
  
*************** Under Windows systems, it is possible to
*** 2258,2265 ****
  
  
    This sets the heap reserve size to 0x1000000 bytes. Note that with
!   :switch:`-Wl` option it is not possible to set the heap commit size
!   because the comma is a separator for this option.
  
  
  .. _Win32_Specific_Addons:
--- 2269,2276 ----
  
  
    This sets the heap reserve size to 0x1000000 bytes. Note that with
!   :switch:`-Wl` switch, you can't also set the heap commit size
!   because the comma is a separator for this switch.
  
  
  .. _Win32_Specific_Addons:
*************** This section describes the Windows speci
*** 2274,2283 ****
  Win32Ada
  ^^^^^^^^
  
! Win32Ada is a binding for the Microsoft Win32 API. This binding can be
! easily installed from the provided installer. To use the Win32Ada
! binding you need to use a project file, and adding a single with_clause
! will give you full access to the Win32Ada binding sources and ensure
  that the proper libraries are passed to the linker.
  
    .. code-block:: gpr
--- 2285,2294 ----
  Win32Ada
  ^^^^^^^^
  
! ``Win32Ada`` is a binding for the Microsoft Win32 API, which you can
! easily install using the provided installer. To use it,
! you need to use a project file and add a single with_clause
! to give you full access to the ``Win32Ada`` binding sources and ensure
  that the proper libraries are passed to the linker.
  
    .. code-block:: gpr
*************** that the proper libraries are passed to
*** 2287,2294 ****
           for Sources use ...;
        end P;
  
! To build the application you just need to call gprbuild for the
! application's project, here p.gpr:
  
    .. code-block:: sh
  
--- 2298,2305 ----
           for Sources use ...;
        end P;
  
! To build the application, you just need to call ``gprbuild`` for the
! application's project, here :file:`p.gpr`:
  
    .. code-block:: sh
  
*************** application's project, here p.gpr:
*** 2299,2310 ****
  wPOSIX
  ^^^^^^
  
! wPOSIX is a minimal POSIX binding whose goal is to help with building
  cross-platforms applications. This binding is not complete though, as
  the Win32 API does not provide the necessary support for all POSIX APIs.
  
! To use the wPOSIX binding you need to use a project file, and adding
! a single with_clause will give you full access to the wPOSIX binding
  sources and ensure that the proper libraries are passed to the linker.
  
    .. code-block:: gpr
--- 2310,2321 ----
  wPOSIX
  ^^^^^^
  
! ``wPOSIX`` is a minimal POSIX binding whose goal is to help with building
  cross-platforms applications. This binding is not complete though, as
  the Win32 API does not provide the necessary support for all POSIX APIs.
  
! To use the ``wPOSIX`` binding, you need to use a project file and add
! a single *with* clause to give you full access to the ``wPOSIX`` binding
  sources and ensure that the proper libraries are passed to the linker.
  
    .. code-block:: gpr
*************** sources and ensure that the proper libra
*** 2314,2321 ****
           for Sources use ...;
        end P;
  
! To build the application you just need to call gprbuild for the
! application's project, here p.gpr:
  
    .. code-block:: sh
  
--- 2325,2332 ----
           for Sources use ...;
        end P;
  
! To build the application, you just need to call ``gprbuild`` for the
! application's project, here :file:`p.gpr`:
  
    .. code-block:: sh
  
*************** platform.
*** 2335,2344 ****
  Codesigning the Debugger
  ------------------------
  
! The Darwin Kernel requires the debugger to have special permissions
! before it is allowed to control other processes. These permissions
! are granted by codesigning the GDB executable. Without these
! permissions, the debugger will report error messages such as::
  
     Starting program: /x/y/foo
     Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5).
--- 2346,2356 ----
  Codesigning the Debugger
  ------------------------
  
! The Darwin Kernel, used by Apple's OS X, requires the debugger to have
! special permissions before it's allowed to control other
! processes. These permissions are granted by codesigning the GDB
! executable. Without these permissions, the debugger will report error
! messages such as::
  
     Starting program: /x/y/foo
     Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5).
*************** how to create one:
*** 2377,2390 ****
    (this is unfortunately required)
  
  
! Once a certificate has been created, the debugger can be codesigned
! as follow. In a Terminal, run the following command:
  
    ::
  
       $ codesign -f -s  "gdb-cert"  <gnat_install_prefix>/bin/gdb
  
! where "gdb-cert" should be replaced by the actual certificate
! name chosen above, and <gnat_install_prefix> should be replaced by
! the location where you installed GNAT.  Also, be sure that users are
! in the Unix group ``_developer``.
--- 2389,2402 ----
    (this is unfortunately required)
  
  
! Once you've created a certificate as above, you can codesign the debugger
! by running the following command in a Terminal:
  
    ::
  
       $ codesign -f -s  "gdb-cert"  <gnat_install_prefix>/bin/gdb
  
! with ``gdb-cert`` replaced by the actual certificate name chosen
! above, and ``gnat_install_prefix`` replaced by the location where you
! installed GNAT.  Also, be sure that users of ``GDB`` are in the Unix
! group ``_developer``.
diff -Nrcpad gcc-14.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst gcc-15.1.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
*** gcc-14.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Fri Apr 25 08:18:00 2025
*************** Source Representation
*** 53,59 ****
  
  Ada source programs are represented in standard text files, using
  Latin-1 coding. Latin-1 is an 8-bit code that includes the familiar
! 7-bit ASCII set, plus additional characters used for
  representing foreign languages (see :ref:`Foreign_Language_Representation`
  for support of non-USA character sets). The format effector characters
  are represented using their standard ASCII encodings, as follows:
--- 53,59 ----
  
  Ada source programs are represented in standard text files, using
  Latin-1 coding. Latin-1 is an 8-bit code that includes the familiar
! 7-bit ASCII set plus additional characters used for
  representing foreign languages (see :ref:`Foreign_Language_Representation`
  for support of non-USA character sets). The format effector characters
  are represented using their standard ASCII encodings, as follows:
*************** are represented using their standard ASC
*** 68,78 ****
      :kbd:`FF`    Form feed               ``16#0C#``
      =========== ======================= ===========
  
! Source files are in standard text file format. In addition, GNAT will
! recognize a wide variety of stream formats, in which the end of
  physical lines is marked by any of the following sequences:
  ``LF``, ``CR``, ``CR-LF``, or ``LF-CR``. This is useful
! in accommodating files that are imported from other operating systems.
  
  .. index:: pair: End of source file; Source file, end
  
--- 68,78 ----
      :kbd:`FF`    Form feed               ``16#0C#``
      =========== ======================= ===========
  
! Source files are in standard text file format. In addition, GNAT
! recognizes a wide variety of stream formats, in which the end of
  physical lines is marked by any of the following sequences:
  ``LF``, ``CR``, ``CR-LF``, or ``LF-CR``. This is useful
! in accommodating files imported from other operating systems.
  
  .. index:: pair: End of source file; Source file, end
  
*************** in accommodating files that are imported
*** 81,87 ****
  The end of a source file is normally represented by the physical end of
  file. However, the control character ``16#1A#`` (:kbd:`SUB`) is also
  recognized as signalling the end of the source file. Again, this is
! provided for compatibility with other operating systems where this
  code is used to represent the end of file.
  
  .. index:: spec (definition), compilation (definition)
--- 81,87 ----
  The end of a source file is normally represented by the physical end of
  file. However, the control character ``16#1A#`` (:kbd:`SUB`) is also
  recognized as signalling the end of the source file. Again, this is
! provided for compatibility with other, legacy, operating systems where this
  code is used to represent the end of file.
  
  .. index:: spec (definition), compilation (definition)
*************** associated with the unit. For example, t
*** 91,97 ****
  package declaration (a package *spec*) and the corresponding body in
  separate files. An Ada *compilation* (which is a sequence of
  compilation units) is represented using a sequence of files. Similarly,
! you will place each subunit or child unit in a separate file.
  
  .. _Foreign_Language_Representation:
  
--- 91,97 ----
  package declaration (a package *spec*) and the corresponding body in
  separate files. An Ada *compilation* (which is a sequence of
  compilation units) is represented using a sequence of files. Similarly,
! you place each subunit or child unit in a separate file.
  
  .. _Foreign_Language_Representation:
  
*************** Latin-1
*** 111,117 ****
  
  The basic character set is Latin-1. This character set is defined by ISO
  standard 8859, part 1. The lower half (character codes ``16#00#``
! ... ``16#7F#)`` is identical to standard ASCII coding, but the upper
  half is used to represent additional characters. These include extended letters
  used by European languages, such as French accents, the vowels with umlauts
  used in German, and the extra letter A-ring used in Swedish.
--- 111,117 ----
  
  The basic character set is Latin-1. This character set is defined by ISO
  standard 8859, part 1. The lower half (character codes ``16#00#``
! ... ``16#7F#)`` is identical to standard ASCII coding but the upper
  half is used to represent additional characters. These include extended letters
  used by European languages, such as French accents, the vowels with umlauts
  used in German, and the extra letter A-ring used in Swedish.
*************** GNAT also supports several other 8-bit c
*** 173,179 ****
  .. index:: code page 437 (IBM PC)
  
  *IBM PC (code page 437)*
!   This code page is the normal default for PCs in the U.S. It corresponds
    to the original IBM PC character set. This set has some, but not all, of
    the extended Latin-1 letters, but these letters do not have the same
    encoding as Latin-1. In this mode, these letters are allowed in
--- 173,179 ----
  .. index:: code page 437 (IBM PC)
  
  *IBM PC (code page 437)*
!   This code page is the normal default for PCs in the US. It corresponds
    to the original IBM PC character set. This set has some, but not all, of
    the extended Latin-1 letters, but these letters do not have the same
    encoding as Latin-1. In this mode, these letters are allowed in
*************** GNAT also supports several other 8-bit c
*** 189,195 ****
  
  
  *Full Upper 8-bit*
!   Any character in the range 80-FF allowed in identifiers, and all are
    considered distinct. In other words, there are no uppercase and lowercase
    equivalences in this range. This is useful in conjunction with
    certain encoding schemes used for some foreign character sets (e.g.,
--- 189,195 ----
  
  
  *Full Upper 8-bit*
!   Any character in the range 80-FF is allowed in identifiers and all are
    considered distinct. In other words, there are no uppercase and lowercase
    equivalences in this range. This is useful in conjunction with
    certain encoding schemes used for some foreign character sets (e.g.,
*************** possible encoding schemes:
*** 244,261 ****
    ``16#cd#``, with the restrictions described for upper-half encoding as
    described above. The internal character code is the corresponding JIS
    character according to the standard algorithm for Shift-JIS
!   conversion. Only characters defined in the JIS code set table can be
!   used with this encoding method.
  
  .. index:: EUC Coding
  
  *EUC Coding*
    A wide character is represented by a two-character sequence
!   ``16#ab#`` and
!   ``16#cd#``, with both characters being in the upper half. The internal
!   character code is the corresponding JIS character according to the EUC
!   encoding algorithm. Only characters defined in the JIS code set table
!   can be used with this encoding method.
  
  
  *UTF-8 Coding*
--- 244,260 ----
    ``16#cd#``, with the restrictions described for upper-half encoding as
    described above. The internal character code is the corresponding JIS
    character according to the standard algorithm for Shift-JIS
!   conversion. You can only use characters defined in the JIS code set table
!   with this encoding method.
  
  .. index:: EUC Coding
  
  *EUC Coding*
    A wide character is represented by a two-character sequence
!   ``16#ab#`` and ``16#cd#``, with both characters being in the upper
!   half. The internal character code is the corresponding JIS character
!   according to the EUC encoding algorithm. You can only use characters
!   defined in the JIS code set table with this encoding method.
  
  
  *UTF-8 Coding*
*************** possible encoding schemes:
*** 273,280 ****
    are represented as ASCII bytes and all upper half characters and
    other wide characters are represented as sequences of upper-half
    (The full UTF-8 scheme allows for encoding 31-bit characters as
!   6-byte sequences, and in the following section on wide wide
!   characters, the use of these sequences is documented).
  
  
  *Brackets Coding*
--- 272,279 ----
    are represented as ASCII bytes and all upper half characters and
    other wide characters are represented as sequences of upper-half
    (The full UTF-8 scheme allows for encoding 31-bit characters as
!   6-byte sequences the use of these sequences is documented in the
!   following section on wide wide characters.)
  
  
  *Brackets Coding*
*************** possible encoding schemes:
*** 283,296 ****
  
      [ " a b c d " ]
  
!   where ``a``, ``b``, ``c``, ``d`` are the four hexadecimal
!   characters (using uppercase letters) of the wide character code. For
!   example, ['A345'] is used to represent the wide character with code
!   ``16#A345#``. It is also possible (though not required) to use the
!   Brackets coding for upper half characters. For example, the code
!   ``16#A3#`` can be represented as ``['A3']``.
  
!   This scheme is compatible with use of the full Wide_Character set,
    and is also the method used for wide character encoding in some standard
    ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  
--- 282,295 ----
  
      [ " a b c d " ]
  
!   where ``a``, ``b``, ``c``, ``d`` are the four hexadecimal characters
!   (using uppercase letters) of the wide character code. For example,
!   ['A345'] is used to represent the wide character with code
!   ``16#A345#``. You can also (though you are not required to) use the
!   Brackets coding for upper half characters. For example, you can
!   represent the code ``16#A3#`` as ``['A3']``.
  
!   This scheme is compatible with use of the full ``Wide_Character`` set,
    and is also the method used for wide character encoding in some standard
    ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  
*************** possible encoding schemes:
*** 339,345 ****
    example, ["1F4567"] is used to represent the wide wide character with code
    ``16#001F_4567#``.
  
!   This scheme is compatible with use of the full Wide_Wide_Character set,
    and is also the method used for wide wide character encoding in some standard
    ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  
--- 338,344 ----
    example, ["1F4567"] is used to represent the wide wide character with code
    ``16#001F_4567#``.
  
!   This scheme is compatible with use of the full ``Wide_Wide_Character`` set,
    and is also the method used for wide wide character encoding in some standard
    ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  
*************** possible encoding schemes:
*** 349,357 ****
  File Naming Topics and Utilities
  ================================
  
! GNAT has a default file naming scheme and also provides the user with
! a high degree of control over how the names and extensions of the
! source files correspond to the Ada compilation units that they contain.
  
  
  .. _File_Naming_Rules:
--- 348,357 ----
  File Naming Topics and Utilities
  ================================
  
! GNAT has a default file naming scheme, but and also provides you
! with a high degree of control over how the names and extensions of your
! source files correspond to the Ada compilation units that they
! contain.
  
  
  .. _File_Naming_Rules:
*************** source files correspond to the Ada compi
*** 359,376 ****
  File Naming Rules
  -----------------
  
! The default file name is determined by the name of the unit that the
  file contains. The name is formed by taking the full expanded name of
! the unit and replacing the separating dots with hyphens and using
  lowercase for all letters.
  
! An exception arises if the file name generated by the above rules starts
  with one of the characters
! ``a``, ``g``, ``i``, or ``s``, and the second character is a
! minus. In this case, the character tilde is used in place
! of the minus. The reason for this special rule is to avoid clashes with
! the standard names for child units of the packages System, Ada,
! Interfaces, and GNAT, which use the prefixes
  ``s-``, ``a-``, ``i-``, and ``g-``,
  respectively.
  
--- 359,376 ----
  File Naming Rules
  -----------------
  
! GNAT determines the default file name by the name of the unit that the
  file contains. The name is formed by taking the full expanded name of
! the unit, replacing the separating dots with hyphens, and using
  lowercase for all letters.
  
! An exception occurs if the file name generated by the above rules starts
  with one of the characters
! ``a``, ``g``, ``i``, or ``s`` and the second character is a
! hyphen. In this case, the character tilde is used in place
! of the hypen. This special rule avoids clashes with
! the standard names for child units of the packages ``System``, ``Ada``,
! ``Interfaces``, and ``GNAT``, which use the prefixes
  ``s-``, ``a-``, ``i-``, and ``g-``,
  respectively.
  
*************** Following these rules can result in exce
*** 395,417 ****
  file names if corresponding
  unit names are long (for example, if child units or subunits are
  heavily nested). An option is available to shorten such long file names
! (called file name 'krunching'). This may be particularly useful when
  programs being developed with GNAT are to be used on operating systems
  with limited file name lengths. :ref:`Using_gnatkr`.
  
  Of course, no file shortening algorithm can guarantee uniqueness over
  all possible unit names; if file name krunching is used, it is your
! responsibility to ensure no name clashes occur. Alternatively you
  can specify the exact file names that you want used, as described
  in the next section. Finally, if your Ada programs are migrating from a
! compiler with a different naming convention, you can use the gnatchop
  utility to produce source files that follow the GNAT naming conventions.
  (For details see :ref:`Renaming_Files_with_gnatchop`.)
  
  Note: in the case of Windows or Mac OS operating systems, case is not
! significant. So for example on Windows if the canonical name is
  :file:`main-sub.adb`, you can use the file name :file:`Main-Sub.adb` instead.
! However, case is significant for other operating systems, so for example,
  if you want to use other than canonically cased file names on a Unix system,
  you need to follow the procedures described in the next section.
  
--- 395,417 ----
  file names if corresponding
  unit names are long (for example, if child units or subunits are
  heavily nested). An option is available to shorten such long file names
! (called file name 'krunching'). You may find this particularly useful when
  programs being developed with GNAT are to be used on operating systems
  with limited file name lengths. :ref:`Using_gnatkr`.
  
  Of course, no file shortening algorithm can guarantee uniqueness over
  all possible unit names; if file name krunching is used, it is your
! responsibility to ensure no name clashes occur. Alternatively, you
  can specify the exact file names that you want used, as described
  in the next section. Finally, if your Ada programs are migrating from a
! compiler with a different naming convention, you can use the ``gnatchop``
  utility to produce source files that follow the GNAT naming conventions.
  (For details see :ref:`Renaming_Files_with_gnatchop`.)
  
  Note: in the case of Windows or Mac OS operating systems, case is not
! significant. So, for example, on Windows if the canonical name is
  :file:`main-sub.adb`, you can use the file name :file:`Main-Sub.adb` instead.
! However, case is significant for other operating systems, so, for example,
  if you want to use other than canonically cased file names on a Unix system,
  you need to follow the procedures described in the next section.
  
*************** Using Other File Names
*** 422,439 ****
  
  .. index:: File names
  
! In the previous section, we have described the default rules used by
  GNAT to determine the file name in which a given unit resides. It is
! often convenient to follow these default rules, and if you follow them,
  the compiler knows without being explicitly told where to find all
  the files it needs.
  
  .. index:: Source_File_Name pragma
  
  However, in some cases, particularly when a program is imported from
! another Ada compiler environment, it may be more convenient for the
! programmer to specify which file names contain which units. GNAT allows
! arbitrary file names to be used by means of the Source_File_Name pragma.
  The form of this pragma is as shown in the following examples:
  
  .. code-block:: ada
--- 422,439 ----
  
  .. index:: File names
  
! The previous section described the default rules used by
  GNAT to determine the file name in which a given unit resides. It is
! usually convenient to follow these default rules, and if you follow them,
  the compiler knows without being explicitly told where to find all
  the files it needs.
  
  .. index:: Source_File_Name pragma
  
  However, in some cases, particularly when a program is imported from
! another Ada compiler environment, it may be more convenient for you
! to specify which file names contain which units. GNAT allows
! arbitrary file names to be used by means of the ``Source_File_Name`` pragma.
  The form of this pragma is as shown in the following examples:
  
  .. code-block:: ada
*************** indicates whether the file name is for a
*** 450,456 ****
  the file name itself is given by a string literal.
  
  The source file name pragma is a configuration pragma, which means that
! normally it will be placed in the :file:`gnat.adc`
  file used to hold configuration
  pragmas that apply to a complete compilation environment.
  For more details on how the :file:`gnat.adc` file is created and used
--- 450,456 ----
  the file name itself is given by a string literal.
  
  The source file name pragma is a configuration pragma, which means that
! normally you will place it in the :file:`gnat.adc`
  file used to hold configuration
  pragmas that apply to a complete compilation environment.
  For more details on how the :file:`gnat.adc` file is created and used
*************** see :ref:`Handling_of_Configuration_Prag
*** 458,469 ****
  
  .. index:: gnat.adc
  
! GNAT allows completely arbitrary file names to be specified using the
  source file name pragma. However, if the file name specified has an
! extension other than :file:`.ads` or :file:`.adb` it is necessary to use
! a special syntax when compiling the file. The name in this case must be
! preceded by the special sequence ``-x`` followed by a space and the name
! of the language, here ``ada``, as in:
  
  .. code-block:: sh
  
--- 458,469 ----
  
  .. index:: gnat.adc
  
! GNAT allows you to specify completely arbitrary file names using the
  source file name pragma. However, if the file name specified has an
! extension other than :file:`.ads` or :file:`.adb` you must use a
! special syntax when compiling the file. The name on the command line
! in this case must be preceded by the special sequence ``-x`` followed
! by a space and the name of the language, here ``ada``, as in:
  
  .. code-block:: sh
  
*************** of the language, here ``ada``, as in:
*** 471,478 ****
  
  ``gnatmake`` handles non-standard file names in the usual manner (the
  non-standard file name for the main program is simply used as the
! argument to gnatmake). Note that if the extension is also non-standard,
! then it must be included in the ``gnatmake`` command, it may not
  be omitted.
  
  .. _Alternative_File_Naming_Schemes:
--- 471,478 ----
  
  ``gnatmake`` handles non-standard file names in the usual manner (the
  non-standard file name for the main program is simply used as the
! argument to ``gnatmake``). Note that if the extension is also non-standard,
! you must include it in the ``gnatmake`` command; it may not
  be omitted.
  
  .. _Alternative_File_Naming_Schemes:
*************** Alternative File Naming Schemes
*** 486,493 ****
  
  The previous section described the use of the ``Source_File_Name``
  pragma to allow arbitrary names to be assigned to individual source files.
! However, this approach requires one pragma for each file, and especially in
! large systems can result in very long :file:`gnat.adc` files, and also create
  a maintenance problem.
  
  .. index:: Source_File_Name pragma
--- 486,493 ----
  
  The previous section described the use of the ``Source_File_Name``
  pragma to allow arbitrary names to be assigned to individual source files.
! However, this approach requires one pragma for each file and, especially in
! large systems, can result in very long :file:`gnat.adc` files, which can create
  a maintenance problem.
  
  .. index:: Source_File_Name pragma
*************** systematically for this asterisk. The op
*** 523,570 ****
  ``Casing`` indicates
  whether the unit name is to be all upper-case letters, all lower-case letters,
  or mixed-case. If no
! ``Casing`` parameter is used, then the default is all
  lower-case.
  
! The optional ``Dot_Replacement`` string is used to replace any periods
! that occur in subunit or child unit names. If no ``Dot_Replacement``
! argument is used then separating dots appear unchanged in the resulting
! file name.
! Although the above syntax indicates that the
! ``Casing`` argument must appear
! before the ``Dot_Replacement`` argument, but it
! is also permissible to write these arguments in the opposite order.
  
! As indicated, it is possible to specify different naming schemes for
! bodies, specs, and subunits. Quite often the rule for subunits is the
! same as the rule for bodies, in which case, there is no need to give
! a separate ``Subunit_File_Name`` rule, and in this case the
  ``Body_File_name`` rule is used for subunits as well.
  
! The separate rule for subunits can also be used to implement the rather
  unusual case of a compilation environment (e.g., a single directory) which
  contains a subunit and a child unit with the same unit name. Although
  both units cannot appear in the same partition, the Ada Reference Manual
  allows (but does not require) the possibility of the two units coexisting
  in the same environment.
  
! The file name translation works in the following steps:
  
  * If there is a specific ``Source_File_Name`` pragma for the given unit,
!   then this is always used, and any general pattern rules are ignored.
  
  * If there is a pattern type ``Source_File_Name`` pragma that applies to
!   the unit, then the resulting file name will be used if the file exists. If
!   more than one pattern matches, the latest one will be tried first, and the
!   first attempt resulting in a reference to a file that exists will be used.
  
  * If no pattern type ``Source_File_Name`` pragma that applies to the unit
!   for which the corresponding file exists, then the standard GNAT default
    naming rules are used.
  
  As an example of the use of this mechanism, consider a commonly used scheme
  in which file names are all lower case, with separating periods copied
! unchanged to the resulting file name, and specs end with :file:`.1.ada`, and
  bodies end with :file:`.2.ada`. GNAT will follow this scheme if the following
  two pragmas appear:
  
--- 523,568 ----
  ``Casing`` indicates
  whether the unit name is to be all upper-case letters, all lower-case letters,
  or mixed-case. If no
! ``Casing`` parameter is used, the default is all
  lower-case.
  
! You use the optional ``Dot_Replacement`` string to replace any periods
! that occur in subunit or child unit names. If you don't specify a
! ``Dot_Replacement`` argument, separating dots appear unchanged in the
! resulting file name.  The above syntax indicates that the ``Casing``
! argument must appear before the ``Dot_Replacement`` argument, but you
! can write these arguments in any order.
  
! As indicated, you can specify different naming schemes for
! bodies, specs, and subunits. Quite often, the rule for subunits is the
! same as the rule for bodies, in which case, you need not provide
! a separate ``Subunit_File_Name`` rule; in this case the
  ``Body_File_name`` rule is used for subunits as well.
  
! You can also use the separate rule for subunits to implement the rather
  unusual case of a compilation environment (e.g., a single directory) which
  contains a subunit and a child unit with the same unit name. Although
  both units cannot appear in the same partition, the Ada Reference Manual
  allows (but does not require) the possibility of the two units coexisting
  in the same environment.
  
! File name translation consists of the following steps:
  
  * If there is a specific ``Source_File_Name`` pragma for the given unit,
!   this is always used and any general pattern rules are ignored.
  
  * If there is a pattern type ``Source_File_Name`` pragma that applies to
!   the unit, the resulting file name is used if the file exists. If
!   more than one pattern matches, the latest one is tried first and the
!   first attempt that results in a reference to a file that exists is used.
  
  * If no pattern type ``Source_File_Name`` pragma that applies to the unit
!   for which the corresponding file exists, the standard GNAT default
    naming rules are used.
  
  As an example of the use of this mechanism, consider a commonly used scheme
  in which file names are all lower case, with separating periods copied
! unchanged to the resulting file name, specs end with :file:`.1.ada`, and
  bodies end with :file:`.2.ada`. GNAT will follow this scheme if the following
  two pragmas appear:
  
*************** two pragmas appear:
*** 575,582 ****
       pragma Source_File_Name
         (Body_File_Name => ".2.ada");
  
! The default GNAT scheme is actually implemented by providing the following
! default pragmas internally:
  
  .. code-block:: ada
  
--- 573,580 ----
       pragma Source_File_Name
         (Body_File_Name => ".2.ada");
  
! The default GNAT scheme is equivalent to providing the following
! default pragmas:
  
  .. code-block:: ada
  
*************** default pragmas internally:
*** 586,596 ****
         (Body_File_Name => ".adb", Dot_Replacement => "-");
  
  Our final example implements a scheme typically used with one of the
! Ada 83 compilers, where the separator character for subunits was '__'
  (two underscores), specs were identified by adding :file:`_.ADA`, bodies
  by adding :file:`.ADA`, and subunits by
  adding :file:`.SEP`. All file names were
! upper case. Child units were not present of course since this was an
  Ada 83 compiler, but it seems reasonable to extend this scheme to use
  the same double underscore separator for child units.
  
--- 584,594 ----
         (Body_File_Name => ".adb", Dot_Replacement => "-");
  
  Our final example implements a scheme typically used with one of the
! legacy Ada 83 compilers, where the separator character for subunits was '__'
  (two underscores), specs were identified by adding :file:`_.ADA`, bodies
  by adding :file:`.ADA`, and subunits by
  adding :file:`.SEP`. All file names were
! upper case. Child units were not present, of course, since this was an
  Ada 83 compiler, but it seems reasonable to extend this scheme to use
  the same double underscore separator for child units.
  
*************** Handling Arbitrary File Naming Conventio
*** 624,647 ****
  Arbitrary File Naming Conventions
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The GNAT compiler must be able to know the source file name of a compilation
! unit.  When using the standard GNAT default file naming conventions
! (``.ads`` for specs, ``.adb`` for bodies), the GNAT compiler
  does not need additional information.
  
! When the source file names do not follow the standard GNAT default file naming
! conventions, the GNAT compiler must be given additional information through
! a configuration pragmas file (:ref:`Configuration_Pragmas`)
! or a project file.
! When the non-standard file naming conventions are well-defined,
! a small number of pragmas ``Source_File_Name`` specifying a naming pattern
  (:ref:`Alternative_File_Naming_Schemes`) may be sufficient. However,
! if the file naming conventions are irregular or arbitrary, a number
! of pragma ``Source_File_Name`` for individual compilation units
! must be defined.
! To help maintain the correspondence between compilation unit names and
! source file names within the compiler,
! GNAT provides a tool ``gnatname`` to generate the required pragmas for a
  set of files.
  
  .. _Running_gnatname:
--- 622,644 ----
  Arbitrary File Naming Conventions
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The GNAT compiler must know the source file name of a compilation unit
! in order to compile it.  When using the standard GNAT default file
! naming conventions (``.ads`` for specs, ``.adb`` for bodies), it
  does not need additional information.
  
! When the source file names do not follow the standard GNAT default
! file naming conventions, you must give the GNAT compiler additional
! information through a configuration pragmas file
! (:ref:`Configuration_Pragmas`) or a project file.  When the
! non-standard file naming conventions are well-defined, a small number
! of pragmas ``Source_File_Name`` specifying a naming pattern
  (:ref:`Alternative_File_Naming_Schemes`) may be sufficient. However,
! if the file naming conventions are irregular or arbitrary, you must
! define a number of pragma ``Source_File_Name`` for individual
! compilation units.  To help maintain the correspondence between
! compilation unit names and source file names within the compiler, GNAT
! provides a tool ``gnatname`` to generate the required pragmas for a
  set of files.
  
  .. _Running_gnatname:
*************** The usual form of the ``gnatname`` comma
*** 657,683 ****
            [--and [ switches ]  naming_pattern  [ naming_patterns ]]
  
  
! All of the arguments are optional. If invoked without any argument,
  ``gnatname`` will display its usage.
  
! When used with at least one naming pattern, ``gnatname`` will attempt to
  find all the compilation units in files that follow at least one of the
  naming patterns. To find these compilation units,
! ``gnatname`` will use the GNAT compiler in syntax-check-only mode on all
  regular files.
  
! One or several Naming Patterns may be given as arguments to ``gnatname``.
  Each Naming Pattern is enclosed between double quotes (or single
  quotes on Windows).
  A Naming Pattern is a regular expression similar to the wildcard patterns
  used in file names by the Unix shells or the DOS prompt.
  
! ``gnatname`` may be called with several sections of directories/patterns.
! Sections are separated by the switch :switch:`--and`. In each section, there must be
! at least one pattern. If no directory is specified in a section, the current
! directory (or the project directory if :switch:`-P` is used) is implied.
! The options other that the directory switches and the patterns apply globally
! even if they are in different sections.
  
  Examples of Naming Patterns are::
  
--- 654,681 ----
            [--and [ switches ]  naming_pattern  [ naming_patterns ]]
  
  
! All of the arguments are optional. If invoked without any arguments,
  ``gnatname`` will display its usage.
  
! When used with at least one naming pattern, ``gnatname`` attempts to
  find all the compilation units in files that follow at least one of the
  naming patterns. To find these compilation units,
! ``gnatname`` uses the GNAT compiler in syntax-check-only mode on all
  regular files.
  
! One or several *Naming Patterns* may be given as arguments to ``gnatname``.
  Each Naming Pattern is enclosed between double quotes (or single
  quotes on Windows).
  A Naming Pattern is a regular expression similar to the wildcard patterns
  used in file names by the Unix shells or the DOS prompt.
  
! You may call ``gnatname`` with several sections of
! directories/patterns.  Sections are separated by the switch
! :switch:`--and`. In each section, you must include at least one
! pattern. If you don't specify a directory a section, the current
! directory (or the project directory if :switch:`-P` is used) is
! used.  The options other that the directory switches and the
! patterns apply globally even if they are in different sections.
  
  Examples of Naming Patterns are::
  
*************** You may specify any of the following swi
*** 706,721 ****
  .. index:: --version (gnatname)
  
  :switch:`--version`
!   Display Copyright and version, then exit disregarding all other options.
  
  .. index:: --help (gnatname)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage, then exit disregarding
    all other options.
  
  :switch:`--subdirs={dir}`
!   Real object, library or exec directories are subdirectories <dir> of the
    specified ones.
  
  :switch:`--no-backup`
--- 704,719 ----
  .. index:: --version (gnatname)
  
  :switch:`--version`
!   Display Copyright and version, then exit disregarding, all other options.
  
  .. index:: --help (gnatname)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage, then exit, disregarding
    all other options.
  
  :switch:`--subdirs={dir}`
!   Actual object, library or exec directories are subdirectories <dir> of the
    specified ones.
  
  :switch:`--no-backup`
*************** You may specify any of the following swi
*** 729,769 ****
  :switch:`-c{filename}`
    Create a configuration pragmas file :file:`filename` (instead of the default
    :file:`gnat.adc`).
!   There may be zero, one or more space between :switch:`-c` and
    :file:`filename`.
    :file:`filename` may include directory information. :file:`filename` must be
!   writable. There may be only one switch :switch:`-c`.
    When a switch :switch:`-c` is
!   specified, no switch :switch:`-P` may be specified (see below).
  
  .. index:: -d (gnatname)
  
  :switch:`-d{dir}`
!   Look for source files in directory :file:`dir`. There may be zero, one or more
    spaces between :switch:`-d` and :file:`dir`.
!   :file:`dir` may end with ``/**``, that is it may be of the form
    ``root_dir/**``. In this case, the directory ``root_dir`` and all of its
    subdirectories, recursively, have to be searched for sources.
!   When a switch :switch:`-d`
!   is specified, the current working directory will not be searched for source
!   files, unless it is explicitly specified with a :switch:`-d`
    or :switch:`-D` switch.
!   Several switches :switch:`-d` may be specified.
    If :file:`dir` is a relative path, it is relative to the directory of
    the configuration pragmas file specified with switch
    :switch:`-c`,
    or to the directory of the project file specified with switch
    :switch:`-P` or,
!   if neither switch :switch:`-c`
!   nor switch :switch:`-P` are specified, it is relative to the
    current working directory. The directory
!   specified with switch :switch:`-d` must exist and be readable.
  
  .. index:: -D (gnatname)
  
  :switch:`-D{filename}`
    Look for source files in all directories listed in text file :file:`filename`.
!   There may be zero, one or more spaces between :switch:`-D`
    and :file:`filename`.
    :file:`filename` must be an existing, readable text file.
    Each nonempty line in :file:`filename` must be a directory.
--- 727,767 ----
  :switch:`-c{filename}`
    Create a configuration pragmas file :file:`filename` (instead of the default
    :file:`gnat.adc`).
!   There may be zero, one, or more space between :switch:`-c` and
    :file:`filename`.
    :file:`filename` may include directory information. :file:`filename` must be
!   writable. You can specify only one switch :switch:`-c`.
    When a switch :switch:`-c` is
!   specified, you may not specify switch :switch:`-P` (see below).
  
  .. index:: -d (gnatname)
  
  :switch:`-d{dir}`
!   Look for source files in directory :file:`dir`. You may put zero, one or more
    spaces between :switch:`-d` and :file:`dir`.
!   :file:`dir` may end with ``/**``, i.e., you may write it the form
    ``root_dir/**``. In this case, the directory ``root_dir`` and all of its
    subdirectories, recursively, have to be searched for sources.
!   When you specify a :switch:`-d` switch,
!   the current working directory will is not searched for source
!   files unless you explicitly specify it with a :switch:`-d`
    or :switch:`-D` switch.
!   You may specify several switches :switch:`-d`.
    If :file:`dir` is a relative path, it is relative to the directory of
    the configuration pragmas file specified with switch
    :switch:`-c`,
    or to the directory of the project file specified with switch
    :switch:`-P` or,
!   if you don't specify either switch :switch:`-c`
!   or switch :switch:`-P`, it's relative to the
    current working directory. The directory
!   you specified with switch :switch:`-d` must exist and be readable.
  
  .. index:: -D (gnatname)
  
  :switch:`-D{filename}`
    Look for source files in all directories listed in text file :file:`filename`.
!   You may place zero, one or more spaces between :switch:`-D`
    and :file:`filename`.
    :file:`filename` must be an existing, readable text file.
    Each nonempty line in :file:`filename` must be a directory.
*************** You may specify any of the following swi
*** 777,794 ****
    .. index:: -f (gnatname)
  
  :switch:`-f{pattern}`
!   Foreign patterns. Using this switch, it is possible to add sources of languages
!   other than Ada to the list of sources of a project file.
!   It is only useful if a -P switch is used.
    For example,
  
    .. code-block:: sh
  
       gnatname -Pprj -f"*.c" "*.ada"
  
!   will look for Ada units in all files with the :file:`.ada` extension,
!   and will add to the list of file for project :file:`prj.gpr` the C files
!   with extension :file:`.c`.
  
    .. index:: -h (gnatname)
  
--- 775,792 ----
    .. index:: -f (gnatname)
  
  :switch:`-f{pattern}`
!   Foreign patterns. Using this switch, you can add sources of languages
!   other than Ada to the list of sources of a project file, but
!   it's only useful if you also specify a :switch:`-P` switch.
    For example,
  
    .. code-block:: sh
  
       gnatname -Pprj -f"*.c" "*.ada"
  
!   looks for Ada units in all files with the :file:`.ada` extension,
!   and adds the C files with extension :file:`.c` to the list of file
!   for project :file:`prj.gpr` .
  
    .. index:: -h (gnatname)
  
*************** You may specify any of the following swi
*** 798,841 ****
    .. index:: -P (gnatname)
  
  :switch:`-P{proj}`
!   Create or update project file :file:`proj`. There may be zero, one or more space
!   between :switch:`-P` and :file:`proj`. :file:`proj` may include directory
!   information. :file:`proj` must be writable.
!   There may be only one switch :switch:`-P`.
!   When a switch :switch:`-P` is specified,
!   no switch :switch:`-c` may be specified.
!   On all platforms, except on VMS, when ``gnatname`` is invoked for an
!   existing project file <proj>.gpr, a backup copy of the project file is created
!   in the project directory with file name <proj>.gpr.saved_x. 'x' is the first
!   non negative number that makes this backup copy a new file.
  
    .. index:: -v (gnatname)
  
  :switch:`-v`
!   Verbose mode. Output detailed explanation of behavior to :file:`stdout`.
!   This includes name of the file written, the name of the directories to search
    and, for each file in those directories whose name matches at least one of
    the Naming Patterns, an indication of whether the file contains a unit,
!   and if so the name of the unit.
  
  .. index:: -v -v (gnatname)
  
  :switch:`-v -v`
!   Very Verbose mode. In addition to the output produced in verbose mode,
    for each file in the searched directories whose name matches none of
!   the Naming Patterns, an indication is given that there is no match.
  
    .. index:: -x (gnatname)
  
  :switch:`-x{pattern}`
!   Excluded patterns. Using this switch, it is possible to exclude some files
!   that would match the name patterns. For example,
  
    .. code-block:: sh
  
        gnatname -x "*_nt.ada" "*.ada"
  
!   will look for Ada units in all files with the :file:`.ada` extension,
    except those whose names end with :file:`_nt.ada`.
  
  
--- 796,841 ----
    .. index:: -P (gnatname)
  
  :switch:`-P{proj}`
! 
!   Create or update project file :file:`proj`. You may place zero, one
!   or more space between :switch:`-P` and :file:`proj`. :file:`proj`
!   may include directory information. :file:`proj` must be writable.
!   There may be only one switch :switch:`-P`.  When you specify switch
!   :switch:`-P`, you may not also include switch :switch:`-c`.  On all
!   platforms except VMS when ``gnatname`` is invoked for an existing
!   project file :file:`<proj>.gpr``, ``gnatname`` creates a backup copy
!   of the project file in the project directory with file name
!   :file:`<proj>.gpr.saved_x` where ``x`` is the first non negative
!   number that creates a unique filename.
  
    .. index:: -v (gnatname)
  
  :switch:`-v`
!   Verbose mode. Output detailed explanation of what it's doing to :file:`stdout`.
!   This includes name of the file written, the name of the directories searched,
    and, for each file in those directories whose name matches at least one of
    the Naming Patterns, an indication of whether the file contains a unit,
!   and, if so, the name of the unit.
  
  .. index:: -v -v (gnatname)
  
  :switch:`-v -v`
!   Very verbose mode. In addition to the output produced in verbose mode
!   (a single :switch:`-v` switch),
    for each file in the searched directories whose name matches none of
!   the Naming Patterns, ``gnatname`` indicates that there is no match.
  
    .. index:: -x (gnatname)
  
  :switch:`-x{pattern}`
!   Excluded patterns. Using this switch, you can exclude some files
!   that otherwise would match the name patterns. For example,
  
    .. code-block:: sh
  
        gnatname -x "*_nt.ada" "*.ada"
  
!   looks for Ada units in all files with the :file:`.ada` extension,
    except those whose names end with :file:`_nt.ada`.
  
  
*************** Note the optional spaces after :switch:`
*** 860,869 ****
       $ gnatname -P/home/me/proj -x "*_nt_body.ada"
       -dsources -dsources/plus -Dcommon_dirs.txt "body_*" "spec_*"
  
! Note that several switches :switch:`-d` may be used,
! even in conjunction with one or several switches
! :switch:`-D`. Several Naming Patterns and one excluded pattern
! are used in this example.
  
  
  .. _File_Name_Krunching_with_gnatkr:
--- 860,868 ----
       $ gnatname -P/home/me/proj -x "*_nt_body.ada"
       -dsources -dsources/plus -Dcommon_dirs.txt "body_*" "spec_*"
  
! Note that you may use several :switch:`-d` switches, even in
! conjunction with one or several :switch:`-D` switches. This example
! illustrates multiple Naming Patterns and one excluded pattern.
  
  
  .. _File_Name_Krunching_with_gnatkr:
*************** File Name Krunching with ``gnatkr``
*** 873,882 ****
  
  .. index:: ! gnatkr
  
! This section discusses the method used by the compiler to shorten
  the default file names chosen for Ada units so that they do not
! exceed the maximum length permitted. It also describes the
! ``gnatkr`` utility that can be used to determine the result of
  applying this shortening.
  
  .. _About_gnatkr:
--- 872,881 ----
  
  .. index:: ! gnatkr
  
! Here we discuss the method used by the compiler to shorten
  the default file names chosen for Ada units so that they do not
! exceed the maximum length permitted. We also describe the
! ``gnatkr`` utility, which you can use to determine the result of
  applying this shortening.
  
  .. _About_gnatkr:
*************** applying this shortening.
*** 884,892 ****
  About ``gnatkr``
  ^^^^^^^^^^^^^^^^
  
! The default file naming rule in GNAT
! is that the file name must be derived from
! the unit name. The exact default rule is as follows:
  
  * Take the unit name and replace all dots by hyphens.
  
--- 883,890 ----
  About ``gnatkr``
  ^^^^^^^^^^^^^^^^
  
! GNAT requires that the file name must be derived from the unit
! name. The default rule is as follows:
  
  * Take the unit name and replace all dots by hyphens.
  
*************** the unit name. The exact default rule is
*** 895,903 ****
    :samp:`a`, :samp:`g`, :samp:`s`, or :samp:`i`,
    then replace the dot by the character
    :samp:`~` (tilde)
!   instead of a minus.
  
!   The reason for this exception is to avoid clashes
    with the standard names for children of System, Ada, Interfaces,
    and GNAT, which use the prefixes
    :samp:`s-`, :samp:`a-`, :samp:`i-`, and :samp:`g-`,
--- 893,901 ----
    :samp:`a`, :samp:`g`, :samp:`s`, or :samp:`i`,
    then replace the dot by the character
    :samp:`~` (tilde)
!   instead of a hyphen.
  
!   This exception avoids clashes
    with the standard names for children of System, Ada, Interfaces,
    and GNAT, which use the prefixes
    :samp:`s-`, :samp:`a-`, :samp:`i-`, and :samp:`g-`,
*************** the unit name. The exact default rule is
*** 905,948 ****
  
  The :switch:`-gnatk{nn}`
  switch of the compiler activates a 'krunching'
! circuit that limits file names to nn characters (where nn is a decimal
  integer).
  
! The ``gnatkr`` utility can be used to determine the krunched name for
! a given file, when krunched to a specified maximum length.
  
  .. _Using_gnatkr:
  
  Using ``gnatkr``
  ^^^^^^^^^^^^^^^^
  
! The ``gnatkr`` command has the form:
  
  .. code-block:: sh
  
        $ gnatkr name [ length ]
  
  ``name`` is the uncrunched file name, derived from the name of the unit
! in the standard manner described in the previous section (i.e., in particular
! all dots are replaced by hyphens). The file name may or may not have an
  extension (defined as a suffix of the form period followed by arbitrary
! characters other than period). If an extension is present then it will
! be preserved in the output. For example, when krunching :file:`hellofile.ads`
! to eight characters, the result will be hellofil.ads.
  
! Note: for compatibility with previous versions of ``gnatkr`` dots may
! appear in the name instead of hyphens, but the last dot will always be
! taken as the start of an extension. So if ``gnatkr`` is given an argument
! such as :file:`Hello.World.adb` it will be treated exactly as if the first
! period had been a hyphen, and for example krunching to eight characters
! gives the result :file:`hellworl.adb`.
  
! Note that the result is always all lower case.
! Characters of the other case are folded as required.
  
  ``length`` represents the length of the krunched name. The default
! when no argument is given is 8 characters. A length of zero stands for
! unlimited, in other words do not chop except for system files where the
  implied crunching length is always eight characters.
  
  The output is the krunched name. The output has an extension only if the
--- 903,947 ----
  
  The :switch:`-gnatk{nn}`
  switch of the compiler activates a 'krunching'
! circuit that limits file names to ``nn`` characters (where ``nn`` is a decimal
  integer).
  
! You can use the ``gnatkr`` utility to determine the krunched name for
! a given file when krunched to a specified maximum length.
  
  .. _Using_gnatkr:
  
  Using ``gnatkr``
  ^^^^^^^^^^^^^^^^
  
! You invoke the ``gnatkr`` command as follows:
  
  .. code-block:: sh
  
        $ gnatkr name [ length ]
  
  ``name`` is the uncrunched file name, derived from the name of the unit
! in the default manner described in the previous section (i.e., in particular
! all dots are replaced by hyphens). You may or may not include an
  extension (defined as a suffix of the form period followed by arbitrary
! characters other than period) in the filename. If you do, ``gnatkr`` will
! preserve it in the output. For example, when krunching :file:`hellofile.ads`
! to eight characters, the result will be :file:`hellofil.ads`.
  
! Note: for compatibility with previous versions of ``gnatkr``, you can
! use dots in the name instead of hyphens, but ``gnatkr`` always
! interprets the last dot as the start of an extension. So if you pass ``gnatkr``
! an argument such as :file:`Hello.World.adb`, it treats it
! exactly as if the first period had been a hyphen, so, for
! example, krunching to eight characters gives the result
! :file:`hellworl.adb`.
  
! Note that the result is always all lower case.  Other characters are
! folded as required.
  
  ``length`` represents the length of the krunched name. The default
! if you don't specify it, is 8 characters. A length of zero means
! unlimited, in other words don't chop except for system files where the
  implied crunching length is always eight characters.
  
  The output is the krunched name. The output has an extension only if the
*************** spec and ``.adb`` for a body.
*** 965,980 ****
  Krunching does not affect the extension, but the file name is shortened to
  the specified length by following these rules:
  
! * The name is divided into segments separated by hyphens, tildes or
    underscores and all hyphens, tildes, and underscores are
    eliminated. If this leaves the name short enough, we are done.
  
  * If the name is too long, the longest segment is located (left-most
!   if there are two of equal length), and shortened by dropping
    its last character. This is repeated until the name is short enough.
  
    As an example, consider the krunching of :file:`our-strings-wide_fixed.adb`
!   to fit the name into 8 characters as required by some operating systems::
  
        our-strings-wide_fixed 22
        our strings wide fixed 19
--- 964,979 ----
  Krunching does not affect the extension, but the file name is shortened to
  the specified length by following these rules:
  
! * The name is divided into segments separated by hyphens, tildes, or
    underscores and all hyphens, tildes, and underscores are
    eliminated. If this leaves the name short enough, we are done.
  
  * If the name is too long, the longest segment is located (left-most
!   if there are two of equal length) and shortened by dropping
    its last character. This is repeated until the name is short enough.
  
    As an example, consider the krunching of :file:`our-strings-wide_fixed.adb`
!   to fit the name into 8 characters, as required by some operating systems::
  
        our-strings-wide_fixed 22
        our strings wide fixed 19
*************** the specified length by following these
*** 1004,1012 ****
    :file:`system-`        :file:`s-`
    ===================== ==============
  
!   These system files have a hyphen in the second character position. That
!   is why normal user files replace such a character with a
!   tilde, to avoid confusion with system file names.
  
    As an example of this special rule, consider
    :file:`ada-strings-wide_fixed.adb`, which gets krunched as follows::
--- 1003,1011 ----
    :file:`system-`        :file:`s-`
    ===================== ==============
  
!   These system files have a hyphen in the second character
!   position. That's is why normal user files replace such a character
!   with a tilde.
  
    As an example of this special rule, consider
    :file:`ada-strings-wide_fixed.adb`, which gets krunched as follows::
*************** the specified length by following these
*** 1025,1034 ****
        a-  st      wi   fi    8
        Final file name: a-stwifi.adb
  
! Of course no file shortening algorithm can guarantee uniqueness over all
! possible unit names, and if file name krunching is used then it is your
  responsibility to ensure that no name clashes occur. The utility
! program ``gnatkr`` is supplied for conveniently determining the
  krunched name of a file.
  
  .. _Examples_of_gnatkr_Usage:
--- 1024,1033 ----
        a-  st      wi   fi    8
        Final file name: a-stwifi.adb
  
! Of course, no file shortening algorithm can guarantee uniqueness over all
! possible unit names. If file name krunching is used, it'is your
  responsibility to ensure that no name clashes occur. The utility
! program ``gnatkr`` is supplied so that you can conveniently determine the
  krunched name of a file.
  
  .. _Examples_of_gnatkr_Usage:
*************** Renaming Files with ``gnatchop``
*** 1054,1060 ****
  .. index:: ! gnatchop
  
  This section discusses how to handle files with multiple units by using
! the ``gnatchop`` utility. This utility is also useful in renaming
  files to meet the standard GNAT default file naming conventions.
  
  .. _Handling_Files_with_Multiple_Units:
--- 1053,1059 ----
  .. index:: ! gnatchop
  
  This section discusses how to handle files with multiple units by using
! the ``gnatchop`` utility. You will also find this utility useful in renaming
  files to meet the standard GNAT default file naming conventions.
  
  .. _Handling_Files_with_Multiple_Units:
*************** files to meet the standard GNAT default
*** 1062,1088 ****
  Handling Files with Multiple Units
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The basic compilation model of GNAT requires that a file submitted to the
! compiler have only one unit and there be a strict correspondence
  between the file name and the unit name.
  
! If you want to keep your files with multiple units,
  perhaps to maintain compatibility with some other Ada compilation system,
! you can use ``gnatname`` to generate or update your project files.
! Generated or modified project files can be processed by GNAT.
  
  See :ref:`Handling_Arbitrary_File_Naming_Conventions_with_gnatname`
  for more details on how to use `gnatname`.
  
! Alternatively, if you want to permanently restructure a set of 'foreign'
! files so that they match the GNAT rules, and do the remaining development
! using the GNAT structure, you can simply use ``gnatchop`` once, generate the
! new set of files and work with them from that point on.
  
  Note that if your file containing multiple units starts with a byte order
! mark (BOM) specifying UTF-8 encoding, then the files generated by gnatchop
! will each start with a copy of this BOM, meaning that they can be compiled
! automatically in UTF-8 mode without needing to specify an explicit encoding.
  
  .. _Operating_gnatchop_in_Compilation_Mode:
  
--- 1061,1088 ----
  Handling Files with Multiple Units
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! GNAT's fundamental compilation model requires that a file submitted to the
! compiler contain only one unit and there be a strict correspondence
  between the file name and the unit name.
  
! If you want to have your files contain multiple units,
  perhaps to maintain compatibility with some other Ada compilation system,
! you can use ``gnatname`` to generate or update your project files, which
! can be processed by GNAT.
  
  See :ref:`Handling_Arbitrary_File_Naming_Conventions_with_gnatname`
  for more details on how to use `gnatname`.
  
! Alternatively, if you want to permanently restructure a set of
! 'foreign' files so that they match the GNAT rules, and do the
! remaining development using the GNAT structure, you can simply use
! ``gnatchop`` once, generate the new set of files containing only one
! unit per file, and work with them from that point on.
  
  Note that if your file containing multiple units starts with a byte order
! mark (BOM) specifying UTF-8 encoding, each file generated by gnatchop
! will start with a copy of this BOM, meaning that they can be compiled
! automatically in UTF-8 mode without you needing to specify an explicit encoding.
  
  .. _Operating_gnatchop_in_Compilation_Mode:
  
*************** Operating gnatchop in Compilation Mode
*** 1090,1116 ****
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  The basic function of ``gnatchop`` is to take a file with multiple units
! and split it into separate files. The boundary between files is reasonably
  clear, except for the issue of comments and pragmas. In default mode, the
  rule is that any pragmas between units belong to the previous unit, except
  that configuration pragmas always belong to the following unit. Any comments
  belong to the following unit. These rules
  almost always result in the right choice of
! the split point without needing to mark it explicitly and most users will
! find this default to be what they want. In this default mode it is incorrect to
  submit a file containing only configuration pragmas, or one that ends in
  configuration pragmas, to ``gnatchop``.
  
! However, using a special option to activate 'compilation mode',
  ``gnatchop``
  can perform another function, which is to provide exactly the semantics
! required by the RM for handling of configuration pragmas in a compilation.
! In the absence of configuration pragmas (at the main file level), this
! option has no effect, but it causes such configuration pragmas to be handled
! in a quite different manner.
  
! First, in compilation mode, if ``gnatchop`` is given a file that consists of
! only configuration pragmas, then this file is appended to the
  :file:`gnat.adc` file in the current directory. This behavior provides
  the required behavior described in the RM for the actions to be taken
  on submitting such a file to the compiler, namely that these pragmas
--- 1090,1116 ----
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  The basic function of ``gnatchop`` is to take a file with multiple units
! and split it into separate files. The boundary between units is reasonably
  clear, except for the issue of comments and pragmas. In default mode, the
  rule is that any pragmas between units belong to the previous unit, except
  that configuration pragmas always belong to the following unit. Any comments
  belong to the following unit. These rules
  almost always result in the right choice of
! the split point without you needing to mark it explicitly and you'll likely
! find this default to be what you want. In this default mode, you may not
  submit a file containing only configuration pragmas, or one that ends in
  configuration pragmas, to ``gnatchop``.
  
! However, using a special switch to activate 'compilation mode',
  ``gnatchop``
  can perform another function, which is to provide exactly the semantics
! required by the RM for the handling of configuration pragmas in a compilation.
! In the absence of configuration pragmas at the main file level, this
! switch has no effect, but it causes such configuration pragmas to be handled
! in a very different manner.
  
! First, in compilation mode, if you give ``gnatchop`` a file that consists of
! only configuration pragmas, it appends this file to the
  :file:`gnat.adc` file in the current directory. This behavior provides
  the required behavior described in the RM for the actions to be taken
  on submitting such a file to the compiler, namely that these pragmas
*************** environment. Using GNAT, the current dir
*** 1120,1133 ****
  of a compilation environment. For more information on the
  :file:`gnat.adc` file, see :ref:`Handling_of_Configuration_Pragmas`.
  
! Second, in compilation mode, if ``gnatchop``
! is given a file that starts with
! configuration pragmas, and contains one or more units, then these
! configuration pragmas are prepended to each of the chopped files. This
! behavior provides the required behavior described in the RM for the
! actions to be taken on compiling such a file, namely that the pragmas
! apply to all units in the compilation, but not to subsequently compiled
! units.
  
  Finally, if configuration pragmas appear between units, they are appended
  to the previous unit. This results in the previous unit being illegal,
--- 1120,1132 ----
  of a compilation environment. For more information on the
  :file:`gnat.adc` file, see :ref:`Handling_of_Configuration_Pragmas`.
  
! Second, in compilation mode, if you give ``gnatchop`` a file that
! starts with configuration pragmas and contains one or more units, then
! configuration pragmas are prepended to each of the chopped
! files. This behavior provides the required behavior described in the
! RM for the actions to be taken on compiling such a file, namely that
! the pragmas apply to all units in the compilation, but not to
! subsequently compiled units.
  
  Finally, if configuration pragmas appear between units, they are appended
  to the previous unit. This results in the previous unit being illegal,
*************** a unit. This provides the required RM be
*** 1136,1147 ****
  pragmas other than those preceding the first compilation unit of a
  compilation.
  
! For most purposes, ``gnatchop`` will be used in default mode. The
! compilation mode described above is used only if you need exactly
! accurate behavior with respect to compilations, and you have files
  that contain multiple units and configuration pragmas. In this
! circumstance the use of ``gnatchop`` with the compilation mode
! switch provides the required behavior, and is for example the mode
  in which GNAT processes the ACVC tests.
  
  
--- 1135,1146 ----
  pragmas other than those preceding the first compilation unit of a
  compilation.
  
! For most purposes, you will use ``gnatchop``  in default mode. You only
! use the compilation mode described above if you need precisely
! accurate behavior with respect to compilations and you have files
  that contain multiple units and configuration pragmas. In this
! circumstance, the use of ``gnatchop`` with the compilation mode
! switch provides the required behavior. This is the mode
  in which GNAT processes the ACVC tests.
  
  
*************** in which GNAT processes the ACVC tests.
*** 1150,1156 ****
  Command Line for ``gnatchop``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The ``gnatchop`` command has the form:
  
  .. code-block:: sh
  
--- 1149,1155 ----
  Command Line for ``gnatchop``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! You call ``gnatchop`` as follows:
  
  .. code-block:: sh
  
*************** When run in default mode, ``gnatchop`` g
*** 1166,1172 ****
  the current directory for each unit in each of the files.
  
  ``directory``, if specified, gives the name of the directory to which
! the output files will be written. If it is not specified, all files are
  written to the current directory.
  
  For example, given a
--- 1165,1171 ----
  the current directory for each unit in each of the files.
  
  ``directory``, if specified, gives the name of the directory to which
! the output files will be written. If you don't specify it, all files are
  written to the current directory.
  
  For example, given a
*************** the command
*** 1191,1202 ****
  generates two files in the current directory, one called
  :file:`hello.ads` containing the single line that is the procedure spec,
  and the other called :file:`hello.adb` containing the remaining text. The
! original file is not affected. The generated files can be compiled in
  the normal manner.
  
! When gnatchop is invoked on a file that is empty or that contains only empty
! lines and/or comments, gnatchop will not fail, but will not produce any
! new sources.
  
  For example, given a
  file called :file:`toto.txt` containing
--- 1190,1201 ----
  generates two files in the current directory, one called
  :file:`hello.ads` containing the single line that is the procedure spec,
  and the other called :file:`hello.adb` containing the remaining text. The
! original file is not affected. You can compile these generated files in
  the normal manner.
  
! When you invoke ``gnatchop`` on a file that is empty or contains only
! empty lines and/or comments, ``gnatchop`` will complete normally, but
! won't produce any new file.
  
  For example, given a
  file called :file:`toto.txt` containing
*************** Switches for ``gnatchop``
*** 1229,1253 ****
  .. index:: --version (gnatchop)
  
  :switch:`--version`
!   Display Copyright and version, then exit disregarding all other options.
  
  .. index:: --help (gnatchop)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage, then exit disregarding
    all other options.
  
  .. index:: -c (gnatchop)
  
  :switch:`-c`
    Causes ``gnatchop`` to operate in compilation mode, in which
!   configuration pragmas are handled according to strict RM rules. See
    previous section for a full description of this mode.
  
  :switch:`-gnat{xxx}`
!   This passes the given :switch:`-gnat{xxx}` switch to ``gnat`` which is
    used to parse the given file. Not all *xxx* options make sense,
!   but for example, the use of :switch:`-gnati2` allows ``gnatchop`` to
    process a source file that uses Latin-2 coding for identifiers.
  
  :switch:`-h`
--- 1228,1252 ----
  .. index:: --version (gnatchop)
  
  :switch:`--version`
!   Display copyright and version, then exit, disregarding all other options.
  
  .. index:: --help (gnatchop)
  
  :switch:`--help`
!   If :switch:`--version` is not present, display usage, then exit, disregarding
    all other options.
  
  .. index:: -c (gnatchop)
  
  :switch:`-c`
    Causes ``gnatchop`` to operate in compilation mode, in which
!   configuration pragmas are handled according to strict RM rules. See the
    previous section for a full description of this mode.
  
  :switch:`-gnat{xxx}`
!   This passes the given :switch:`-gnat{xxx}` switch to ``gcc`` which is
    used to parse the given file. Not all *xxx* options make sense,
!   but, for example, the use of :switch:`-gnati2` allows ``gnatchop`` to
    process a source file that uses Latin-2 coding for identifiers.
  
  :switch:`-h`
*************** Switches for ``gnatchop``
*** 1257,1279 ****
  .. index:: -k (gnatchop)
  
  :switch:`-k{mm}`
!   Limit generated file names to the specified number ``mm``
!   of characters.
!   This is useful if the
!   resulting set of files is required to be interoperable with systems
!   which limit the length of file names.
!   No space is allowed between the :switch:`-k` and the numeric value. The numeric
!   value may be omitted in which case a default of :switch:`-k8`,
!   suitable for use
!   with DOS-like file systems, is used. If no :switch:`-k` switch
!   is present then
    there is no limit on the length of file names.
  
  .. index:: -p (gnatchop)
  
  :switch:`-p`
    Causes the file modification time stamp of the input file to be
!   preserved and used for the time stamp of the output file(s). This may be
    useful for preserving coherency of time stamps in an environment where
    ``gnatchop`` is used as part of a standard build process.
  
--- 1256,1276 ----
  .. index:: -k (gnatchop)
  
  :switch:`-k{mm}`
! 
!   Limit generated file names to the specified number ``mm`` of
!   characters.  This is useful if the resulting set of files is
!   required to be interoperable with systems which limit the length of
!   file names.  You may not place any space between the :switch:`-k`
!   and the numeric value. You can omit the numeric value, in which case
!   ``gnatchop`` will use a default of :switch:`-k8`, suitable for use
!   with DOS-like file systems. If you don't specify a :switch:`-k` switch,
    there is no limit on the length of file names.
  
  .. index:: -p (gnatchop)
  
  :switch:`-p`
    Causes the file modification time stamp of the input file to be
!   preserved and used for the time stamp of the output file(s). You may find this
    useful for preserving coherency of time stamps in an environment where
    ``gnatchop`` is used as part of a standard build process.
  
*************** Switches for ``gnatchop``
*** 1288,1297 ****
  
  :switch:`-r`
    Generate ``Source_Reference`` pragmas. Use this switch if the output
!   files are regarded as temporary and development is to be done in terms
    of the original unchopped file. This switch causes
    ``Source_Reference`` pragmas to be inserted into each of the
!   generated files to refers back to the original file name and line number.
    The result is that all error messages refer back to the original
    unchopped file.
    In addition, the debugging information placed into the object file (when
--- 1285,1294 ----
  
  :switch:`-r`
    Generate ``Source_Reference`` pragmas. Use this switch if the output
!   files are regarded as temporary and development is to be done from
    of the original unchopped file. This switch causes
    ``Source_Reference`` pragmas to be inserted into each of the
!   generated files to refer back to the original file name and line number.
    The result is that all error messages refer back to the original
    unchopped file.
    In addition, the debugging information placed into the object file (when
*************** Switches for ``gnatchop``
*** 1302,1309 ****
  
    If the original file to be chopped itself contains
    a ``Source_Reference``
!   pragma referencing a third file, then gnatchop respects
!   this pragma, and the generated ``Source_Reference`` pragmas
    in the chopped file refer to the original file, with appropriate
    line numbers. This is particularly useful when ``gnatchop``
    is used in conjunction with ``gnatprep`` to compile files that
--- 1299,1306 ----
  
    If the original file to be chopped itself contains
    a ``Source_Reference``
!   pragma referencing a third file, ``gnatchop`` respects these
!   pragmas and the generated ``Source_Reference`` pragmas
    in the chopped file refer to the original file, with appropriate
    line numbers. This is particularly useful when ``gnatchop``
    is used in conjunction with ``gnatprep`` to compile files that
*************** Switches for ``gnatchop``
*** 1312,1336 ****
  .. index:: -v (gnatchop)
  
  :switch:`-v`
!   Causes ``gnatchop`` to operate in verbose mode. The version
!   number and copyright notice are output, as well as exact copies of
!   the gnat1 commands spawned to obtain the chop control information.
  
  .. index:: -w (gnatchop)
  
  :switch:`-w`
!   Overwrite existing file names. Normally ``gnatchop`` regards it as a
!   fatal error if there is already a file with the same name as a
!   file it would otherwise output, in other words if the files to be
    chopped contain duplicated units. This switch bypasses this
!   check, and causes all but the last instance of such duplicated
    units to be skipped.
  
  .. index:: --GCC= (gnatchop)
  
  :switch:`--GCC={xxxx}`
    Specify the path of the GNAT parser to be used. When this switch is used,
!   no attempt is made to add the prefix to the GNAT parser executable.
  
  
  .. _Examples_of_gnatchop_Usage:
--- 1309,1335 ----
  .. index:: -v (gnatchop)
  
  :switch:`-v`
!   Causes ``gnatchop`` to operate in verbose mode. It outputs the
!   version number and copyright notice as well as exact copies of the
!   commands spawned to obtain the information needed to control chopping.
  
  .. index:: -w (gnatchop)
  
  :switch:`-w`
!   Overwrite existing file names. Normally, ``gnatchop`` treats it as a
!   fatal error if there's already a file with the same name as a
!   file it would otherwise output. This can happen either if you've previously
!   chopped that file or if the files to be
    chopped contain duplicated units. This switch bypasses this
!   check and causes all but the last instance of such duplicated
    units to be skipped.
  
  .. index:: --GCC= (gnatchop)
  
  :switch:`--GCC={xxxx}`
    Specify the path of the GNAT parser to be used. When this switch is used,
!   ``gnatchop`` makes no attempt to add a prefix to the GNAT parser executable,
!   so it must include the full pathname.
  
  
  .. _Examples_of_gnatchop_Usage:
*************** Examples of ``gnatchop`` Usage
*** 1342,1348 ****
  
        $ gnatchop -w hello_s.ada prerelease/files
  
! Chops the source file :file:`hello_s.ada`. The output files will be
  placed in the directory :file:`prerelease/files`,
  overwriting any
  files with matching names in that directory (no files in the current
--- 1341,1347 ----
  
        $ gnatchop -w hello_s.ada prerelease/files
  
! Chops the source file :file:`hello_s.ada`. The output files are
  placed in the directory :file:`prerelease/files`,
  overwriting any
  files with matching names in that directory (no files in the current
*************** into the current directory. One
*** 1357,1378 ****
  useful application of ``gnatchop`` is in sending sets of sources
  around, for example in email messages. The required sources are simply
  concatenated (for example, using a Unix ``cat``
! command), and then
  ``gnatchop`` is used at the other end to reconstitute the original
! file names.
  
  .. code-block:: sh
  
        $ gnatchop file1 file2 file3 direc
  
! Chops all units in files :file:`file1`, :file:`file2`, :file:`file3`, placing
! the resulting files in the directory :file:`direc`. Note that if any units
! occur more than once anywhere within this set of files, an error message
! is generated, and no files are written. To override this check, use the
! :switch:`-w` switch,
! in which case the last occurrence in the last file will
! be the one that is output, and earlier duplicate occurrences for a given
! unit will be skipped.
  
  .. _Configuration_Pragmas:
  
--- 1356,1377 ----
  useful application of ``gnatchop`` is in sending sets of sources
  around, for example in email messages. The required sources are simply
  concatenated (for example, using a Unix ``cat``
! command) and
  ``gnatchop`` is used at the other end to reconstitute the original
! files.
  
  .. code-block:: sh
  
        $ gnatchop file1 file2 file3 direc
  
! Chops all units in files :file:`file1`, :file:`file2`, :file:`file3`,
! placing the resulting files in the directory :file:`direc`. Note that
! if any units occur more than once anywhere within this set of files,
! ``gnatchop`` generates an error message, and doesn't write any
! files. To override this check, use the :switch:`-w` switch, in which
! case the last occurrence in the last file will be the one that is
! output and ``gnatchop`` will skip earlier duplicate occurrences for
! the same unit.
  
  .. _Configuration_Pragmas:
  
*************** Configuration Pragmas
*** 1383,1390 ****
  
  .. index:: Pragmas, configuration
  
! Configuration pragmas include those pragmas described as
! such in the Ada Reference Manual, as well as
  implementation-dependent pragmas that are configuration pragmas.
  See the ``Implementation_Defined_Pragmas`` chapter in the
  :title:`GNAT_Reference_Manual` for details on these
--- 1382,1389 ----
  
  .. index:: Pragmas, configuration
  
! Configuration pragmas supported by GNAT consist of those pragmas described as
! such in the Ada Reference Manual and the
  implementation-dependent pragmas that are configuration pragmas.
  See the ``Implementation_Defined_Pragmas`` chapter in the
  :title:`GNAT_Reference_Manual` for details on these
*************** recognized by GNAT::
*** 1430,1435 ****
--- 1429,1435 ----
       Implicit_Packing
       Initialize_Scalars
       Interrupt_State
+      Interrupts_System_By_Default
       License
       Locking_Policy
       No_Component_Reordering
*************** recognized by GNAT::
*** 1473,1487 ****
  Handling of Configuration Pragmas
  ---------------------------------
  
! Configuration pragmas may either appear at the start of a compilation
! unit, or they can appear in a configuration pragma file to apply to
  all compilations performed in a given compilation environment.
  
! GNAT also provides the ``gnatchop`` utility to provide an automatic
! way to handle configuration pragmas following the semantics for
! compilations (that is, files with multiple units), described in the RM.
  See :ref:`Operating_gnatchop_in_Compilation_Mode` for details.
! However, for most purposes, it will be more convenient to edit the
  :file:`gnat.adc` file that contains configuration pragmas directly,
  as described in the following section.
  
--- 1473,1487 ----
  Handling of Configuration Pragmas
  ---------------------------------
  
! You can place configuration pragmas either appear at the start of a compilation
! unit or in a configuration pragma file that applies to
  all compilations performed in a given compilation environment.
  
! GNAT includes the ``gnatchop`` utility to provide an automatic
! way to handle configuration pragmas that follows the semantics for
! compilations (that is, files with multiple units) described in the RM.
  See :ref:`Operating_gnatchop_in_Compilation_Mode` for details.
! However, for most purposes, you will find it more convenient to edit the
  :file:`gnat.adc` file that contains configuration pragmas directly,
  as described in the following section.
  
*************** Restrictions that require partition-wide
*** 1493,1513 ****
  ``No_Tasking``) are
  recognized wherever they appear
  and can be freely inherited, e.g. from a |withed| unit to the |withing|
! unit. This makes sense since the binder will in any case insist on seeing
! consistent use, so any unit not conforming to any restrictions that are
! anywhere in the partition will be rejected, and you might as well find
! that out at compile time rather than at bind time.
  
  For restrictions that do not require partition-wide consistency, e.g.
! SPARK or No_Implementation_Attributes, in general the restriction applies
! only to the unit in which the pragma appears, and not to any other units.
  
! The exception is No_Elaboration_Code which always applies to the entire
! object file from a compilation, i.e. to the body, spec, and all subunits.
! This restriction can be specified in a configuration pragma file, or it
! can be on the body and/or the spec (in either case it applies to all the
! relevant units). It can appear on a subunit only if it has previously
! appeared in the body of spec.
  
  
  .. _The_Configuration_Pragmas_Files:
--- 1493,1514 ----
  ``No_Tasking``) are
  recognized wherever they appear
  and can be freely inherited, e.g. from a |withed| unit to the |withing|
! unit. This makes sense since the binder will always insist on seeing
! consistent us, so any unit not conforming to any restrictions
! anywhere in the partition will be rejected and it's better for you to find
! that out at compile time rather than bind time.
  
  For restrictions that do not require partition-wide consistency, e.g.
! ``SPARK`` or ``No_Implementation_Attributes``, the restriction
! normally applies only to the unit in which the pragma appears, and not
! to any other units.
  
! The exception is ``No_Elaboration_Code``, which always applies to the
! entire object file from a compilation, i.e. to the body, spec, and all
! subunits.  You can apply this restriction in a configuration pragma
! file or you can ace it in the body and/or the spec (in either case it
! applies to all the relevant units). You can place it on a subunit only if
! you have previously placed it in the body of spec.
  
  
  .. _The_Configuration_Pragmas_Files:
*************** The Configuration Pragmas Files
*** 1517,1549 ****
  
  .. index:: gnat.adc
  
! In GNAT a compilation environment is defined by the current
! directory at the time that a compile command is given. This current
! directory is searched for a file whose name is :file:`gnat.adc`. If
! this file is present, it is expected to contain one or more
! configuration pragmas that will be applied to the current compilation.
! However, if the switch :switch:`-gnatA` is used, :file:`gnat.adc` is not
! considered. When taken into account, :file:`gnat.adc` is added to the
! dependencies, so that if :file:`gnat.adc` is modified later, an invocation of
! ``gnatmake`` will recompile the source.
  
! Configuration pragmas may be entered into the :file:`gnat.adc` file
! either by running ``gnatchop`` on a source file that consists only of
! configuration pragmas, or more conveniently by direct editing of the
  :file:`gnat.adc` file, which is a standard format source file.
  
! Besides :file:`gnat.adc`, additional files containing configuration
! pragmas may be applied to the current compilation using the switch
! :switch:`-gnatec={path}` where ``path`` must designate an existing file that
! contains only configuration pragmas. These configuration pragmas are
! in addition to those found in :file:`gnat.adc` (provided :file:`gnat.adc`
! is present and switch :switch:`-gnatA` is not used).
! 
! It is allowable to specify several switches :switch:`-gnatec=`, all of which
! will be taken into account.
  
! Files containing configuration pragmas specified with switches
! :switch:`-gnatec=` are added to the dependencies, unless they are
  temporary files. A file is considered temporary if its name ends in
  :file:`.tmp` or :file:`.TMP`. Certain tools follow this naming
  convention because they pass information to ``gcc`` via
--- 1518,1550 ----
  
  .. index:: gnat.adc
  
! In GNAT, a compilation environment is defined by the current directory
! at the time that a compile command is given. This current directory is
! searched for a file whose name is :file:`gnat.adc`. If this file is
! present, it is expected to contain one or more configuration pragmas
! that will be applied to the current compilation.  However, if you
! specify the switch :switch:`-gnatA`, GNAT ignores
! :file:`gnat.adc`. When used, GNAT adds :file:`gnat.adc` to the
! dependencies so that if :file:`gnat.adc` is modified later, the source
! will be recompiled on a future invocation of ``gnatmake``.
  
! You can add
! configuration pragmas into the :file:`gnat.adc` file
! either by running ``gnatchop`` on a source file consisting only of
! configuration pragmas or, more conveniently, by directly editing the
  :file:`gnat.adc` file, which is a standard format source file.
  
! Besides :file:`gnat.adc`, you may apply additional files containing
! configuration pragmas to the current compilation using the
! :switch:`-gnatec={path}` switch, where ``path`` must designate an
! existing file that contains only configuration pragmas. These
! configuration pragmas are in addition to those found in
! :file:`gnat.adc` (provided :file:`gnat.adc` is present and you do not
! use switch :switch:`-gnatA`).
! You can specify multiple :switch:`-gnatec=`  switches.
  
! GNAT will add files containing configuration pragmas specified with switches
! :switch:`-gnatec=` to the dependencies, unless they are
  temporary files. A file is considered temporary if its name ends in
  :file:`.tmp` or :file:`.TMP`. Certain tools follow this naming
  convention because they pass information to ``gcc`` via
*************** temporary files that are immediately del
*** 1551,1561 ****
  depend on a file that no longer exists. Such tools include
  ``gprbuild``, ``gnatmake``, and ``gnatcheck``.
  
! By default, configuration pragma files are stored by their absolute paths in
! ALI files. You can use the :switch:`-gnateb` switch in order to store them by
! their basename instead.
  
! If you are using project file, a separate mechanism is provided using
  project attributes.
  
  .. --Comment
--- 1552,1562 ----
  depend on a file that no longer exists. Such tools include
  ``gprbuild``, ``gnatmake``, and ``gnatcheck``.
  
! By default, configuration pragma files are stored by their absolute
! paths in ALI files. You can use the :switch:`-gnateb` switch to
! request they be stored instead by just their basename.
  
! If you are using project file, they provide a separate mechanism using
  project attributes.
  
  .. --Comment
*************** project attributes.
*** 1567,1617 ****
  Generating Object Files
  =======================
  
! An Ada program consists of a set of source files, and the first step in
! compiling the program is to generate the corresponding object files.
! These are generated by compiling a subset of these source files.
  The files you need to compile are the following:
  
  * If a package spec has no body, compile the package spec to produce the
    object file for the package.
  
! * If a package has both a spec and a body, compile the body to produce the
!   object file for the package. The source file for the package spec need
!   not be compiled in this case because there is only one object file, which
!   contains the code for both the spec and body of the package.
  
! * For a subprogram, compile the subprogram body to produce the object file
!   for the subprogram. The spec, if one is present, is as usual in a
!   separate file, and need not be compiled.
  
  .. index:: Subunits
  
! * In the case of subunits, only compile the parent unit. A single object
!   file is generated for the entire subunit tree, which includes all the
!   subunits.
  
! * Compile child units independently of their parent units
!   (though, of course, the spec of all the ancestor unit must be present in order
    to compile a child unit).
  
    .. index:: Generics
  
! * Compile generic units in the same manner as any other units. The object
!   files in this case are small dummy files that contain at most the
!   flag used for elaboration checking. This is because GNAT always handles generic
!   instantiation by means of macro expansion. However, it is still necessary to
!   compile generic units, for dependency checking and elaboration purposes.
  
  The preceding rules describe the set of files that must be compiled to
! generate the object files for a program. Each object file has the same
  name as the corresponding source file, except that the extension is
! :file:`.o` as usual.
  
  You may wish to compile other files for the purpose of checking their
  syntactic and semantic correctness. For example, in the case where a
  package has a separate spec and body, you would not normally compile the
  spec. However, it is convenient in practice to compile the spec to make
! sure it is error-free before compiling clients of this spec, because such
  compilations will fail if there is an error in the spec.
  
  GNAT provides an option for compiling such files purely for the
--- 1568,1621 ----
  Generating Object Files
  =======================
  
! An Ada program consists of a set of source files and the first step in
! compiling the program is generating the corresponding object files.
! You generate these by compiling a subset of these source files.
  The files you need to compile are the following:
  
  * If a package spec has no body, compile the package spec to produce the
    object file for the package.
  
! * If a package has both a spec and a body, compile the body to produce
!   the object file for the package. You need not compile the source
!   file for the package spec in this case because there's only one
!   object file, which contains the code for both the spec and body of
!   the package.
  
! * For a subprogram, compile the subprogram body to produce the object
!   file for the subprogram. You need not compile the spec, if such a file is
!   present.
  
  .. index:: Subunits
  
! * In the case of subunits, only compile the parent unit. GNAT
!   generates a single object file for the entire subunit tree, which
!   includes all the subunits.
  
! * Compile child units independently of their parent units (though, of
!   course, the spec of all the ancestor unit must be present in order
    to compile a child unit).
  
    .. index:: Generics
  
! * Compile generic units in the same manner as any other units. The
!   object files in this case are small dummy files that contain, at
!   most, the flag used for elaboration checking. This is because GNAT
!   always handles generic instantiation by means of macro
!   expansion. However, you still must compile generic units
!   for dependency checking and elaboration purposes.
  
  The preceding rules describe the set of files that must be compiled to
! generate all the object files for a program. See the following section on dependencies for more details on computing that set of files.
! Each object file has the same
  name as the corresponding source file, except that the extension is
! :file:`.o`, as usual.
  
  You may wish to compile other files for the purpose of checking their
  syntactic and semantic correctness. For example, in the case where a
  package has a separate spec and body, you would not normally compile the
  spec. However, it is convenient in practice to compile the spec to make
! sure it is error-free before compiling clients of this spec because such
  compilations will fail if there is an error in the spec.
  
  GNAT provides an option for compiling such files purely for the
*************** checking mode, use the :switch:`-gnatc`
*** 1624,1641 ****
  Source Dependencies
  ===================
  
! A given object file clearly depends on the source file which is compiled
! to produce it. Here we are using "depends" in the sense of a typical
! ``make`` utility; in other words, an object file depends on a source
! file if changes to the source file require the object file to be
! recompiled.
! In addition to this basic dependency, a given object may depend on
! additional source files as follows:
  
  * If a file being compiled |withs| a unit ``X``, the object file
    depends on the file containing the spec of unit ``X``. This includes
    files that are |withed| implicitly either because they are parents
!   of |withed| child units or they are run-time units required by the
    language constructs used in a particular unit.
  
  * If a file being compiled instantiates a library level generic unit, the
--- 1628,1644 ----
  Source Dependencies
  ===================
  
! Each object file obviously depends on at least the source file which
! is compiled to produce it. Here we are using "depends" in the sense of
! a typical ``make`` utility; in other words, an object file depends on
! a source file if changes to the source file require the object file to
! be recompiled.  In addition to this basic dependency, a given object
! may depend on additional source files as follows:
  
  * If a file being compiled |withs| a unit ``X``, the object file
    depends on the file containing the spec of unit ``X``. This includes
    files that are |withed| implicitly either because they are parents
!   of |withed| child units or are run-time units required by the
    language constructs used in a particular unit.
  
  * If a file being compiled instantiates a library level generic unit, the
*************** additional source files as follows:
*** 1650,1660 ****
  .. index:: -gnatn switch
  
  * If a file being compiled contains a call to a subprogram for which
!   pragma ``Inline`` applies and inlining is activated with the
    :switch:`-gnatn` switch, the object file depends on the file containing the
    body of this subprogram as well as on the file containing the spec. Note
    that for inlining to actually occur as a result of the use of this switch,
!   it is necessary to compile in optimizing mode.
  
    .. index:: -gnatN switch
  
--- 1653,1663 ----
  .. index:: -gnatn switch
  
  * If a file being compiled contains a call to a subprogram for which
!   pragma ``Inline`` applies and you have activated inlining with the
    :switch:`-gnatn` switch, the object file depends on the file containing the
    body of this subprogram as well as on the file containing the spec. Note
    that for inlining to actually occur as a result of the use of this switch,
!   you must compile in optimizing mode.
  
    .. index:: -gnatN switch
  
*************** additional source files as follows:
*** 1663,1671 ****
    not require that the code generation be optimized. Like :switch:`-gnatn`,
    the use of this switch generates additional dependencies.
  
!   When using a gcc-based back end, then the use of
!   :switch:`-gnatN` is deprecated, and the use of :switch:`-gnatn` is preferred.
!   Historically front end inlining was more extensive than the gcc back end
    inlining, but that is no longer the case.
  
  * If an object file :file:`O` depends on the proper body of a subunit through
--- 1666,1674 ----
    not require that the code generation be optimized. Like :switch:`-gnatn`,
    the use of this switch generates additional dependencies.
  
!   When using a ``gcc`` or LLVM based back end, the use of
!   :switch:`-gnatN` is deprecated and the use of :switch:`-gnatn` is preferred.
!   Historically front end inlining was more extensive than back end
    inlining, but that is no longer the case.
  
  * If an object file :file:`O` depends on the proper body of a subunit through
*************** additional source files as follows:
*** 1675,1686 ****
  
  * The object file for a parent unit depends on all its subunit body files.
  
! * The previous two rules meant that for purposes of computing dependencies and
!   recompilation, a body and all its subunits are treated as an indivisible whole.
  
    These rules are applied transitively: if unit ``A`` |withs|
    unit ``B``, whose elaboration calls an inlined procedure in package
!   ``C``, the object file for unit ``A`` will depend on the body of
    ``C``, in file :file:`c.adb`.
  
    The set of dependent files described by these rules includes all the
--- 1678,1690 ----
  
  * The object file for a parent unit depends on all its subunit body files.
  
! * The previous two rules means that, for purposes of computing
!   dependencies and recompilation, a body and all its subunits are
!   treated as an indivisible whole.
  
    These rules are applied transitively: if unit ``A`` |withs|
    unit ``B``, whose elaboration calls an inlined procedure in package
!   ``C``, the object file for unit ``A`` depends on the body of
    ``C``, in file :file:`c.adb`.
  
    The set of dependent files described by these rules includes all the
*************** additional source files as follows:
*** 1689,1701 ****
    standard describes, because it includes generic, inline, and subunit
    dependencies.
  
!   An object file must be recreated by recompiling the corresponding source
!   file if any of the source files on which it depends are modified. For
!   example, if the ``make`` utility is used to control compilation,
!   the rule for an Ada object file must mention all the source files on
!   which the object file depends, according to the above definition.
!   The determination of the necessary
!   recompilations is done automatically when one uses ``gnatmake``.
  
  .. _The_Ada_Library_Information_Files:
  
--- 1693,1705 ----
    standard describes, because it includes generic, inline, and subunit
    dependencies.
  
!   An object file must be recreated by recompiling the corresponding
!   source file if any of the source files on which it depends are
!   modified. For example, if the ``make`` utility is used to control
!   compilation, the rule for an Ada object file must mention all the
!   source files on which the object file depends, according to the
!   above definition.  Invoking ``gnatmake`` will cause it to determine
!   the necessary recompilations.
  
  .. _The_Ada_Library_Information_Files:
  
*************** The Ada Library Information Files
*** 1707,1717 ****
  .. index:: ALI files
  
  Each compilation actually generates two output files. The first of these
! is the normal object file that has a :file:`.o` extension. The second is a
  text file containing full dependency information. It has the same
  name as the source file, but an :file:`.ali` extension.
  This file is known as the Ada Library Information (:file:`ALI`) file.
! The following information is contained in the :file:`ALI` file.
  
  * Version information (indicates which version of GNAT was used to compile
    the unit(s) in question)
--- 1711,1721 ----
  .. index:: ALI files
  
  Each compilation actually generates two output files. The first of these
! is the actual object file that has a :file:`.o` extension. The second is a
  text file containing full dependency information. It has the same
  name as the source file, but an :file:`.ali` extension.
  This file is known as the Ada Library Information (:file:`ALI`) file.
! The following information is contained in that file:
  
  * Version information (indicates which version of GNAT was used to compile
    the unit(s) in question)
*************** The following information is contained i
*** 1719,1731 ****
  * Main program information (including priority and time slice settings,
    as well as the wide character encoding used during compilation).
  
! * List of arguments used in the ``gcc`` command for the compilation
  
! * Attributes of the unit, including configuration pragmas used, an indication
!   of whether the compilation was successful, exception model used etc.
  
! * A list of relevant restrictions applying to the unit (used for consistency)
!   checking.
  
  * Categorization information (e.g., use of pragma ``Pure``).
  
--- 1723,1736 ----
  * Main program information (including priority and time slice settings,
    as well as the wide character encoding used during compilation).
  
! * List of arguments used in the compilation command
  
! * Attributes of the unit, including the configuration pragmas used, an
!   indication of whether the compilation was successful, and the exception
!   model used.
  
! * A list of relevant restrictions applying to the unit (used for consistency
!   checking).
  
  * Categorization information (e.g., use of pragma ``Pure``).
  
*************** The following information is contained i
*** 1739,1753 ****
  
  * Dependency information. This is a list of files, together with
    time stamp and checksum information. These are files on which
!   the unit depends in the sense that recompilation is required
!   if any of these units are modified.
  
  * Cross-reference data. Contains information on all entities referenced
    in the unit. Used by some tools to provide cross-reference information.
  
  For a full detailed description of the format of the :file:`ALI` file,
! see the source of the body of unit ``Lib.Writ``, contained in file
! :file:`lib-writ.adb` in the GNAT compiler sources.
  
  
  .. _Binding_an_Ada_Program:
--- 1744,1758 ----
  
  * Dependency information. This is a list of files, together with
    time stamp and checksum information. These are files on which
!   the unit depends in the sense that the modification of any of
!   these units requires the recompilation of the unit in question.
  
  * Cross-reference data. Contains information on all entities referenced
    in the unit. Used by some tools to provide cross-reference information.
  
  For a full detailed description of the format of the :file:`ALI` file,
! see the source of the spec of unit ``Lib.Writ``, contained in file
! :file:`lib-writ.ads` in the GNAT compiler sources.
  
  
  .. _Binding_an_Ada_Program:
*************** Binding an Ada Program
*** 1757,1763 ****
  
  When using languages such as C and C++, once the source files have been
  compiled the only remaining step in building an executable program
! is linking the object modules together. This means that it is possible to
  link an inconsistent version of a program, in which two units have
  included different versions of the same header.
  
--- 1762,1768 ----
  
  When using languages such as C and C++, once the source files have been
  compiled the only remaining step in building an executable program
! is linking the object modules together. This means that you can
  link an inconsistent version of a program, in which two units have
  included different versions of the same header.
  
*************** These rules are enforced by the GNAT bin
*** 1768,1780 ****
  elaboration order consistent with the Ada rules.
  
  The GNAT binder is run after all the object files for a program have
! been created. It is given the name of the main program unit, and from
! this it determines the set of units required by the program, by reading the
  corresponding ALI files. It generates error messages if the program is
  inconsistent or if no valid order of elaboration exists.
  
! If no errors are detected, the binder produces a main program, in Ada by
! default, that contains calls to the elaboration procedures of those
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
--- 1773,1785 ----
  elaboration order consistent with the Ada rules.
  
  The GNAT binder is run after all the object files for a program have
! been created. It is given the name of the main program unit and from
! this determines the set of units required by the program by reading the
  corresponding ALI files. It generates error messages if the program is
  inconsistent or if no valid order of elaboration exists.
  
! If no errors are detected, the binder produces a main program in Ada
! that contains calls to the elaboration procedures of those
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
*************** object files for the Ada units of the pr
*** 1792,1803 ****
  GNAT and Libraries
  ==================
  
! .. index:: Library building and using
  
! This section describes how to build and use libraries with GNAT, and also shows
  how to recompile the GNAT run-time library. You should be familiar with the
  Project Manager facility (see the *GNAT_Project_Manager* chapter of the
! *GPRbuild User's Guide*) before reading this chapter.
  
  .. _Introduction_to_Libraries_in_GNAT:
  
--- 1797,1808 ----
  GNAT and Libraries
  ==================
  
! .. index:: Library building and referencing
  
! This section describes how to build and use libraries with GNAT and
  how to recompile the GNAT run-time library. You should be familiar with the
  Project Manager facility (see the *GNAT_Project_Manager* chapter of the
! :title:`GPRbuild User's Guide`) before reading this chapter.
  
  .. _Introduction_to_Libraries_in_GNAT:
  
*************** Introduction to Libraries in GNAT
*** 1805,1834 ****
  ---------------------------------
  
  A library is, conceptually, a collection of objects which does not have its
! own main thread of execution, but rather provides certain services to the
  applications that use it. A library can be either statically linked with the
  application, in which case its code is directly included in the application,
  or, on platforms that support it, be dynamically linked, in which case
  its code is shared by all applications making use of this library.
  
  GNAT supports both types of libraries.
! In the static case, the compiled code can be provided in different ways. The
! simplest approach is to provide directly the set of objects resulting from
  compilation of the library source files. Alternatively, you can group the
  objects into an archive using whatever commands are provided by the operating
! system. For the latter case, the objects are grouped into a shared library.
  
! In the GNAT environment, a library has three types of components:
  
  *  Source files,
  
  *  :file:`ALI` files (see :ref:`The_Ada_Library_Information_Files`), and
  
! *  Object files, an archive or a shared library.
  
  A GNAT library may expose all its source files, which is useful for
  documentation purposes. Alternatively, it may expose only the units needed by
! an external user to make use of the library. That is to say, the specs
  reflecting the library services along with all the units needed to compile
  those specs, which can include generic bodies or any body implementing an
  inlined routine. In the case of *stand-alone libraries* those exposed
--- 1810,1839 ----
  ---------------------------------
  
  A library is, conceptually, a collection of objects which does not have its
! own main thread of execution but instead provides certain services to the
  applications that use it. A library can be either statically linked with the
  application, in which case its code is directly included in the application,
  or, on platforms that support it, be dynamically linked, in which case
  its code is shared by all applications making use of this library.
  
  GNAT supports both types of libraries.
! In the static case, you can provide the compiled code in different ways. The
! simplest approach is to directly provide the set of objects resulting from
  compilation of the library source files. Alternatively, you can group the
  objects into an archive using whatever commands are provided by the operating
! system.
  
! In the GNAT environment, a library has these components:
  
  *  Source files,
  
  *  :file:`ALI` files (see :ref:`The_Ada_Library_Information_Files`), and
  
! *  Object files, an archive, or a shared library.
  
  A GNAT library may expose all its source files, which is useful for
  documentation purposes. Alternatively, it may expose only the units needed by
! an external user to make use of the library, in other words, the specs
  reflecting the library services along with all the units needed to compile
  those specs, which can include generic bodies or any body implementing an
  inlined routine. In the case of *stand-alone libraries* those exposed
*************** Building a library
*** 1856,1874 ****
  The easiest way to build a library is to use the Project Manager,
  which supports a special type of project called a *Library Project*
  (see the *Library Projects* section in the *GNAT Project Manager*
! chapter of the *GPRbuild User's Guide*).
  
! A project is considered a library project, when two project-level attributes
! are defined in it: ``Library_Name`` and ``Library_Dir``. In order to
! control different aspects of library configuration, additional optional
! project-level attributes can be specified:
  
  * ``Library_Kind``
      This attribute controls whether the library is to be static or dynamic
  
- 
  * ``Library_Version``
!     This attribute specifies the library version; this value is used
      during dynamic linking of shared libraries to determine if the currently
      installed versions of the binaries are compatible.
  
--- 1861,1878 ----
  The easiest way to build a library is to use the Project Manager,
  which supports a special type of project called a *Library Project*
  (see the *Library Projects* section in the *GNAT Project Manager*
! chapter of the :title:`GPRbuild User's Guide`).
  
! A project is considered a library project when two project-level
! attributes are defined in it: ``Library_Name`` and ``Library_Dir``. In
! order to control different aspects of library configuration, you can
! specify additional optional project-level attributes:
  
  * ``Library_Kind``
      This attribute controls whether the library is to be static or dynamic
  
  * ``Library_Version``
!     This attribute specifies the library version. Its value is used
      during dynamic linking of shared libraries to determine if the currently
      installed versions of the binaries are compatible.
  
*************** project-level attributes can be specifie
*** 1876,1891 ****
  
  * ``Library_GCC``
      These attributes specify additional low-level options to be used during
!     library generation, and redefine the actual application used to generate
      library.
  
! The GNAT Project Manager takes full care of the library maintenance task,
  including recompilation of the source files for which objects do not exist
  or are not up to date, assembly of the library archive, and installation of
  the library (i.e., copying associated source, object and :file:`ALI` files
  to the specified location).
  
! Here is a simple library project file:
  
  .. code-block:: gpr
  
--- 1880,1895 ----
  
  * ``Library_GCC``
      These attributes specify additional low-level options to be used during
!     library generation and the commands used to generate the
      library.
  
! The GNAT Project Manager takes complete care of the library maintenance task,
  including recompilation of the source files for which objects do not exist
  or are not up to date, assembly of the library archive, and installation of
  the library (i.e., copying associated source, object and :file:`ALI` files
  to the specified location).
  
! Here's a simple library project file:
  
  .. code-block:: gpr
  
*************** and the compilation command to build and
*** 1903,1924 ****
  
       $ gnatmake -Pmy_lib
  
! It is not entirely trivial to perform manually all the steps required to
! produce a library. We recommend that you use the GNAT Project Manager
! for this task. In special cases where this is not desired, the necessary
! steps are discussed below.
  
! There are various possibilities for compiling the units that make up the
! library: for example with a Makefile (:ref:`Using_the_GNU_make_Utility`) or
! with a conventional script. For simple libraries, it is also possible to create
! a dummy main program which depends upon all the packages that comprise the
! interface of the library. This dummy main program can then be given to
! ``gnatmake``, which will ensure that all necessary objects are built.
  
! After this task is accomplished, you should follow the standard procedure
  of the underlying operating system to produce the static or shared library.
  
! Here is an example of such a dummy program:
  
  .. code-block:: ada
  
--- 1907,1929 ----
  
       $ gnatmake -Pmy_lib
  
! It's complex to manually perform all the steps required to
! produce a library, so we recommend you use the GNAT Project Manager
! for this task. In case this is not desired, we discuss the necessary
! steps below.
  
! There are various possibilities for compiling the units that make up
! the library: for example with a :file:`Makefile`
! (:ref:`Using_the_GNU_make_Utility`) or with a conventional script. For
! simple libraries, you can also create a dummy main program
! that depends upon all the packages that comprise the interface of the
! library. You can then pass this dummy main program to ``gnatmake``,
! which will ensure all necessary objects are built.
  
! After the above has been accomplished, you should follow the standard procedure
  of the underlying operating system to produce the static or shared library.
  
! Here's an example of such a dummy program:
  
  .. code-block:: ada
  
*************** Here are the generic commands that will
*** 1957,1963 ****
  
  Please note that the library must have a name of the form :file:`lib{xxx}.a`
  or :file:`lib{xxx}.so` (or :file:`lib{xxx}.dll` on Windows) in order to
! be accessed by the directive :switch:`-l{xxx}` at link time.
  
  .. _Installing_a_library:
  
--- 1962,1968 ----
  
  Please note that the library must have a name of the form :file:`lib{xxx}.a`
  or :file:`lib{xxx}.so` (or :file:`lib{xxx}.dll` on Windows) in order to
! be accessed by the :switch:`-l{xxx}` switch at link time.
  
  .. _Installing_a_library:
  
*************** Installing a library
*** 1969,1985 ****
  
  If you use project files, library installation is part of the library build
  process (see the *Installing a Library with Project Files* section of the
! *GNAT Project Manager* chapter of the *GPRbuild User's Guide*).
  
! When project files are not an option, it is also possible, but not recommended,
! to install the library so that the sources needed to use the library are on the
! Ada source path and the ALI files & libraries be on the Ada Object path (see
! :ref:`Search_Paths_and_the_Run-Time_Library_RTL`). Alternatively, the system
! administrator can place general-purpose libraries in the default compiler
! paths, by specifying the libraries' location in the configuration files
! :file:`ada_source_path` and :file:`ada_object_path`. These configuration files
! must be located in the GNAT installation tree at the same place as the gcc spec
! file. The location of the gcc spec file can be determined as follows:
  
  .. code-block:: sh
  
--- 1974,1992 ----
  
  If you use project files, library installation is part of the library build
  process (see the *Installing a Library with Project Files* section of the
! *GNAT Project Manager* chapter of the :title:`GPRbuild User's Guide`).
  
! When you're not able to use project files for some reason, you can
! also install the library so that the sources needed to use the library
! are on the Ada source path and the ALI files & libraries be on the Ada
! Object path (see :ref:`Search_Paths_and_the_Run-Time_Library_RTL`),
! but we don't recommend doing this.  Alternatively, the system
! administrator can place general-purpose libraries in the default
! compiler paths, by specifying the libraries' location in the
! configuration files :file:`ada_source_path` and
! :file:`ada_object_path`. These configuration files must be located in
! the GNAT installation tree at the same place as the ``gcc`` spec
! file. The location of the ``gcc`` spec file can be determined as follows:
  
  .. code-block:: sh
  
*************** are located.
*** 1995,2001 ****
  
  The files :file:`ada_source_path` and :file:`ada_object_path` might not be
  present in a
! GNAT installation, in which case, GNAT will look for its run-time library in
  the directories :file:`adainclude` (for the sources) and :file:`adalib` (for the
  objects and :file:`ALI` files). When the files exist, the compiler does not
  look in :file:`adainclude` and :file:`adalib`, and thus the
--- 2002,2008 ----
  
  The files :file:`ada_source_path` and :file:`ada_object_path` might not be
  present in a
! GNAT installation, in which case, GNAT looks for its run-time library in
  the directories :file:`adainclude` (for the sources) and :file:`adalib` (for the
  objects and :file:`ALI` files). When the files exist, the compiler does not
  look in :file:`adainclude` and :file:`adalib`, and thus the
*************** be :file:`adainclude`). In the same way,
*** 2005,2020 ****
  contain the location for the GNAT run-time objects (which can simply
  be :file:`adalib`).
  
! You can also specify a new default path to the run-time library at compilation
! time with the switch :switch:`--RTS=rts-path`. You can thus choose / change
! the run-time library you want your program to be compiled with. This switch is
! recognized by ``gcc``, ``gnatmake``, ``gnatbind``, ``gnatls``, and all
! project aware tools.
  
! It is possible to install a library before or after the standard GNAT
! library, by reordering the lines in the configuration files. In general, a
! library must be installed before the GNAT library if it redefines
! any part of it.
  
  .. _Using_a_library:
  
--- 2012,2027 ----
  contain the location for the GNAT run-time objects (which can simply
  be :file:`adalib`).
  
! You can also specify a new default path to the run-time library at
! compilation time with the :switch:`--RTS=rts-path` switch. You can
! thus choose the run-time library you want your program to be
! compiled with. This switch is recognized by ``gcc``, ``gnatmake``,
! ``gnatbind``, ``gnatls``, and all project aware tools.
  
! You can install a library before or after the standard GNAT library by
! selecting the ordering the lines in the configuration files. In
! general, a library must be installed before the GNAT library if it
! redefines any part of it.
  
  .. _Using_a_library:
  
*************** Using a library
*** 2023,2029 ****
  
  Once again, the project facility greatly simplifies the use of
  libraries. In this context, using a library is just a matter of adding a
! |with| clause in the user project. For instance, to make use of the
  library ``My_Lib`` shown in examples in earlier sections, you can
  write:
  
--- 2030,2036 ----
  
  Once again, the project facility greatly simplifies the use of
  libraries. In this context, using a library is just a matter of adding a
! |with| clause in your project. For example, to make use of the
  library ``My_Lib`` shown in examples in earlier sections, you can
  write:
  
*************** Stand-alone Ada Libraries
*** 2109,2136 ****
  Introduction to Stand-alone Libraries
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! A Stand-alone Library (abbreviated 'SAL') is a library that contains the
! necessary code to
! elaborate the Ada units that are included in the library. In contrast with
! an ordinary library, which consists of all sources, objects and :file:`ALI`
! files of the
! library, a SAL may specify a restricted subset of compilation units
! to serve as a library interface. In this case, the fully
! self-sufficient set of files will normally consist of an objects
! archive, the sources of interface units' specs, and the :file:`ALI`
! files of interface units.
! If an interface spec contains a generic unit or an inlined subprogram,
! the body's
! source must also be provided; if the units that must be provided in the source
! form depend on other units, the source and :file:`ALI` files of those must
! also be provided.
  
  The main purpose of a SAL is to minimize the recompilation overhead of client
  applications when a new version of the library is installed. Specifically,
! if the interface sources have not changed, client applications do not need to
  be recompiled. If, furthermore, a SAL is provided in the shared form and its
  version, controlled by ``Library_Version`` attribute, is not changed,
! then the clients do not need to be relinked.
  
  SALs also allow the library providers to minimize the amount of library source
  text exposed to the clients.  Such 'information hiding' might be useful or
--- 2116,2140 ----
  Introduction to Stand-alone Libraries
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! A Stand-alone Library (abbreviated 'SAL') is a library that contains
! the necessary code to elaborate the Ada units that are included in the
! library. In contrast with an ordinary library, which consists of all
! sources, objects and :file:`ALI` files of the library, a SAL may
! specify a restricted subset of compilation units to serve as a library
! interface. In this case, the fully self-sufficient set of files will
! normally consist of an objects archive, the sources of interface
! units' specs, and the :file:`ALI` files of interface units.  If an
! interface spec contains a generic unit or an inlined subprogram, you
! must also provide the body's source; if the units that must be
! provided in the source form depend on other units, you must also
! provide the source and :file:`ALI` files of those units.
  
  The main purpose of a SAL is to minimize the recompilation overhead of client
  applications when a new version of the library is installed. Specifically,
! if the interface sources have not changed, client applications don't need to
  be recompiled. If, furthermore, a SAL is provided in the shared form and its
  version, controlled by ``Library_Version`` attribute, is not changed,
! the clients also do not need to be relinked.
  
  SALs also allow the library providers to minimize the amount of library source
  text exposed to the clients.  Such 'information hiding' might be useful or
*************** Building a Stand-alone Library
*** 2146,2157 ****
  
  GNAT's Project facility provides a simple way of building and installing
  stand-alone libraries; see the *Stand-alone Library Projects* section
! in the *GNAT Project Manager* chapter of the *GPRbuild User's Guide*.
  To be a Stand-alone Library Project, in addition to the two attributes
  that make a project a Library Project (``Library_Name`` and
  ``Library_Dir``; see the *Library Projects* section in the
  *GNAT Project Manager* chapter of the *GPRbuild User's Guide*),
! the attribute ``Library_Interface`` must be defined.  For example:
  
  .. code-block:: gpr
  
--- 2150,2161 ----
  
  GNAT's Project facility provides a simple way of building and installing
  stand-alone libraries; see the *Stand-alone Library Projects* section
! in the *GNAT Project Manager* chapter of the :title:`GPRbuild User's Guide`.
  To be a Stand-alone Library Project, in addition to the two attributes
  that make a project a Library Project (``Library_Name`` and
  ``Library_Dir``; see the *Library Projects* section in the
  *GNAT Project Manager* chapter of the *GPRbuild User's Guide*),
! you must define the attribute ``Library_Interface``.  For example:
  
  .. code-block:: gpr
  
*************** Attribute ``Library_Interface`` has a no
*** 2163,2169 ****
  each string in the list designating a unit contained in an immediate source
  of the project file.
  
! When a Stand-alone Library is built, first the binder is invoked to build
  a package whose name depends on the library name
  (:file:`b~dummy.ads/b` in the example above).
  This binder-generated package includes initialization and
--- 2167,2173 ----
  each string in the list designating a unit contained in an immediate source
  of the project file.
  
! When a Stand-alone Library is built, the binder is first invoked to build
  a package whose name depends on the library name
  (:file:`b~dummy.ads/b` in the example above).
  This binder-generated package includes initialization and
*************** the Library Directory. As a consequence,
*** 2184,2196 ****
  imported from Ada units outside of the library. If other units are imported,
  the binding phase will fail.
  
! It is also possible to build an encapsulated library where not only
  the code to elaborate and finalize the library is embedded but also
! ensuring that the library is linked only against static
! libraries. So an encapsulated library only depends on system
! libraries, all other code, including the GNAT runtime, is embedded. To
! build an encapsulated library the attribute
! ``Library_Standalone`` must be set to ``encapsulated``:
  
  .. code-block:: gpr
  
--- 2188,2200 ----
  imported from Ada units outside of the library. If other units are imported,
  the binding phase will fail.
  
! You can also build an encapsulated library where not only
  the code to elaborate and finalize the library is embedded but also
! ensure that the library is linked only against static
! libraries. That means that an encapsulated library only depends on system
! libraries: all other code, including the GNAT runtime, is embedded. To
! build an encapsulated library you must set attribute
! ``Library_Standalone`` to ``encapsulated``:
  
  .. code-block:: gpr
  
*************** build an encapsulated library the attrib
*** 2203,2221 ****
  The default value for this attribute is ``standard`` in which case
  a stand-alone library is built.
  
! The attribute ``Library_Src_Dir`` may be specified for a
! Stand-Alone Library. ``Library_Src_Dir`` is a simple attribute that has a
! single string value. Its value must be the path (absolute or relative to the
! project directory) of an existing directory. This directory cannot be the
! object directory or one of the source directories, but it can be the same as
! the library directory. The sources of the Interface
! Units of the library that are needed by an Ada client of the library will be
! copied to the designated directory, called the Interface Copy directory.
! These sources include the specs of the Interface Units, but they may also
! include bodies and subunits, when pragmas ``Inline`` or ``Inline_Always``
! are used, or when there is a generic unit in the spec. Before the sources
! are copied to the Interface Copy directory, an attempt is made to delete all
! files in the Interface Copy directory.
  
  Building stand-alone libraries by hand is somewhat tedious, but for those
  occasions when it is necessary here are the steps that you need to perform:
--- 2207,2226 ----
  The default value for this attribute is ``standard`` in which case
  a stand-alone library is built.
  
! You may specify the attribute ``Library_Src_Dir`` for a Stand-Alone
! Library. ``Library_Src_Dir`` has a single string value. Its value must
! be the path (absolute or relative to the project directory) of an
! existing directory. This directory cannot be the object directory or
! one of the source directories, but it can be the same as the library
! directory. The sources of the Interface Units of the library that are
! needed by an Ada client of the library are copied to the designated
! directory, called the Interface Copy directory, when the library is
! built.  These sources include the specs of the Interface Units, but
! they may also include bodies and subunits when pragmas ``Inline`` or
! ``Inline_Always`` are used or when there is a generic unit in the
! spec. Before the sources are copied to the Interface Copy directory,
! the building process makes an attempt to delete all files in the
! Interface Copy directory.
  
  Building stand-alone libraries by hand is somewhat tedious, but for those
  occasions when it is necessary here are the steps that you need to perform:
*************** occasions when it is necessary here are
*** 2238,2247 ****
        $ gcc -c b~int2.adb
  
  * Link the dynamic library with all the necessary object files,
!   indicating to the linker the names of the ``init`` (and possibly
    ``final``) procedures for automatic initialization (and finalization).
!   The built library should be placed in a directory different from
!   the object directory.
  
  * Copy the ``ALI`` files of the interface to the library directory,
    add in this copy an indication that it is an interface to a SAL
--- 2243,2252 ----
        $ gcc -c b~int2.adb
  
  * Link the dynamic library with all the necessary object files,
!   passing to the linker the names of the ``init`` (and possibly
    ``final``) procedures for automatic initialization (and finalization).
!   You should place the built library in a different directory than
!   the object files.
  
  * Copy the ``ALI`` files of the interface to the library directory,
    add in this copy an indication that it is an interface to a SAL
*************** Using SALs is not different from using o
*** 2257,2270 ****
  Creating a Stand-alone Library to be used in a non-Ada context
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! It is easy to adapt the SAL build procedure discussed above for use of a SAL in
! a non-Ada context.
  
  The only extra step required is to ensure that library interface subprograms
  are compatible with the main program, by means of ``pragma Export``
  or ``pragma Convention``.
  
! Here is an example of simple library interface for use with C main program:
  
  .. code-block:: ada
  
--- 2262,2275 ----
  Creating a Stand-alone Library to be used in a non-Ada context
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! It's easy for you to adapt the SAL build procedure discussed above for
! use of a SAL in a non-Ada context.
  
  The only extra step required is to ensure that library interface subprograms
  are compatible with the main program, by means of ``pragma Export``
  or ``pragma Convention``.
  
! Here's an example of simple library interface for use with C main program:
  
  .. code-block:: ada
  
*************** Here is an example of simple library int
*** 2278,2284 ****
  
         end My_Package;
  
! On the foreign language side, you must provide a 'foreign' view of the
  library interface; remember that it should contain elaboration routines in
  addition to interface subprograms.
  
--- 2283,2289 ----
  
         end My_Package;
  
! On the C side, you must provide a 'foreign' view of the
  library interface; remember that it should contain elaboration routines in
  addition to interface subprograms.
  
*************** that there is no rule for the naming of
*** 2298,2306 ****
         extern void do_something_else (void);
  
  Libraries built as explained above can be used from any program, provided
! that the elaboration procedures (named ``mylibinit`` in the previous
! example) are called before the library services are used. Any number of
! libraries can be used simultaneously, as long as the elaboration
  procedure of each library is called.
  
  Below is an example of a C program that uses the ``mylib`` library.
--- 2303,2311 ----
         extern void do_something_else (void);
  
  Libraries built as explained above can be used from any program, provided
! the elaboration procedures (named ``mylibinit`` in the previous
! example) are called before any library services are used. Any number of
! libraries can be called from a single executable as long as the elaboration
  procedure of each library is called.
  
  Below is an example of a C program that uses the ``mylib`` library.
*************** after the finalization phase.
*** 2334,2352 ****
  Information on limitations of binding Ada code in non-Ada contexts can be
  found under :ref:`Binding_with_Non-Ada_Main_Programs`.
  
! Note also that special care must be taken with multi-tasks
! applications. The initialization and finalization routines are not
! protected against concurrent access. If such requirement is needed it
! must be ensured at the application level using a specific operating
! system services like a mutex or a critical-section.
  
  .. _Restrictions_in_Stand-alone_Libraries:
  
  Restrictions in Stand-alone Libraries
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The pragmas listed below should be used with caution inside libraries,
! as they can create incompatibilities with other Ada libraries:
  
  * pragma ``Locking_Policy``
  * pragma ``Partition_Elaboration_Policy``
--- 2339,2358 ----
  Information on limitations of binding Ada code in non-Ada contexts can be
  found under :ref:`Binding_with_Non-Ada_Main_Programs`.
  
! Note also that you must take special care with multi-tasking
! applications. In that case, the initialization and finalization
! routines are not protected against concurrent access. If you need such
! requirement, you must ensure it at the application level
! using a specific operating system services like a mutex or a
! critical-section.
  
  .. _Restrictions_in_Stand-alone_Libraries:
  
  Restrictions in Stand-alone Libraries
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! You should use the pragmas listed below with caution inside libraries,
! since they can create incompatibilities with other Ada libraries:
  
  * pragma ``Locking_Policy``
  * pragma ``Partition_Elaboration_Policy``
*************** as they can create incompatibilities wit
*** 2354,2375 ****
  * pragma ``Task_Dispatching_Policy``
  * pragma ``Unreserve_All_Interrupts``
  
! When using a library that contains such pragmas, the user must make sure
! that all libraries use the same pragmas with the same values. Otherwise,
! ``Program_Error`` will
! be raised during the elaboration of the conflicting
! libraries. The usage of these pragmas and its consequences for the user
! should therefore be well documented.
  
  Similarly, the traceback in the exception occurrence mechanism should be
  enabled or disabled in a consistent manner across all libraries.
! Otherwise, Program_Error will be raised during the elaboration of the
  conflicting libraries.
  
! If the ``Version`` or ``Body_Version``
! attributes are used inside a library, then you need to
  perform a ``gnatbind`` step that specifies all :file:`ALI` files in all
! libraries, so that version identifiers can be properly computed.
  In practice these attributes are rarely used, so this is unlikely
  to be a consideration.
  
--- 2360,2380 ----
  * pragma ``Task_Dispatching_Policy``
  * pragma ``Unreserve_All_Interrupts``
  
! When using a library that contains such pragmas, the user of the
! library must ensure that all libraries use the same pragmas with the
! same values. Otherwise, ``Program_Error`` will be raised during the
! elaboration of the conflicting libraries. You should document the
! usage of these pragmas and its consequences for the user.
  
  Similarly, the traceback in the exception occurrence mechanism should be
  enabled or disabled in a consistent manner across all libraries.
! Otherwise, ``Program_Error`` will be raised during the elaboration of the
  conflicting libraries.
  
! If you use the ``Version`` or ``Body_Version``
! attributes inside a library, you need to
  perform a ``gnatbind`` step that specifies all :file:`ALI` files in all
! libraries so that version identifiers can be properly computed.
  In practice these attributes are rarely used, so this is unlikely
  to be a consideration.
  
*************** Rebuilding the GNAT Run-Time Library
*** 2383,2407 ****
  .. index:: Rebuilding the GNAT Run-Time Library
  .. index:: Run-Time Library, rebuilding
  
! It may be useful to recompile the GNAT library in various debugging or
! experimentation contexts. A project file called
! :file:`libada.gpr` is provided to that effect and can be found in
! the directory containing the GNAT library. The location of this
! directory depends on the way the GNAT environment has been installed and can
! be determined by means of the command:
  
  .. code-block:: sh
  
        $ gnatls -v
  
  The last entry in the source search path usually contains the
! gnat library (the :file:`adainclude` directory). This project file contains its
! own documentation and in particular the set of instructions needed to rebuild a
! new library and to use it.
  
! Note that rebuilding the GNAT Run-Time is only recommended for temporary
! experiments or debugging, and is not supported.
  
  
  .. index:: ! Conditional compilation
  
--- 2388,2412 ----
  .. index:: Rebuilding the GNAT Run-Time Library
  .. index:: Run-Time Library, rebuilding
  
! You may need to recompile the GNAT library in various debugging or
! experimentation contexts. The GNAT distribution provides a project
! file called :file:`libada.gpr` to do that; it can be found in the
! directory containing the GNAT library. The location of this directory
! depends on the way the GNAT environment has been installed and can be
! determined by means of the command:
  
  .. code-block:: sh
  
        $ gnatls -v
  
  The last entry in the source search path usually contains the
! GNAT library (the :file:`adainclude` directory).
  
! This project file contains its own documentation and, in particular, the
! set of instructions needed to rebuild a new library and to use it.
  
+ Note that rebuilding the GNAT Run-Time is only recommended for temporary
+ experiments or debugging and is not supported for other purposes.
  
  .. index:: ! Conditional compilation
  
*************** gnatprep preprocessor utility.
*** 2420,2426 ****
  Modeling Conditional Compilation in Ada
  ---------------------------------------
  
! It is often necessary to arrange for a single source program
  to serve multiple purposes, where it is compiled in different
  ways to achieve these different goals. Some examples of the
  need for this feature are
--- 2425,2431 ----
  Modeling Conditional Compilation in Ada
  ---------------------------------------
  
! You may want to arrange for a single source program
  to serve multiple purposes, where it is compiled in different
  ways to achieve these different goals. Some examples of the
  need for this feature are
*************** need for this feature are
*** 2430,2450 ****
  * Turning debugging features on and off
  * Arranging for a program to compile with different compilers
  
! In C, or C++, the typical approach would be to use the preprocessor
! that is defined as part of the language. The Ada language does not
  contain such a feature. This is not an oversight, but rather a very
  deliberate design decision, based on the experience that overuse of
  the preprocessing features in C and C++ can result in programs that
  are extremely difficult to maintain. For example, if we have ten
  switches that can be on or off, this means that there are a thousand
  separate programs, any one of which might not even be syntactically
! correct, and even if syntactically correct, the resulting program
  might not work correctly. Testing all combinations can quickly become
  impossible.
  
! Nevertheless, the need to tailor programs certainly exists, and in
  this section we will discuss how this can
! be achieved using Ada in general, and GNAT in particular.
  
  .. _Use_of_Boolean_Constants:
  
--- 2435,2455 ----
  * Turning debugging features on and off
  * Arranging for a program to compile with different compilers
  
! In C, or C++, the typical approach is to use the preprocessor
! defined as part of the language. The Ada language does not
  contain such a feature. This is not an oversight, but rather a very
  deliberate design decision, based on the experience that overuse of
  the preprocessing features in C and C++ can result in programs that
  are extremely difficult to maintain. For example, if we have ten
  switches that can be on or off, this means that there are a thousand
  separate programs, any one of which might not even be syntactically
! correct, and, even if syntactically correct,
  might not work correctly. Testing all combinations can quickly become
  impossible.
  
! Nevertheless, the need to tailor programs certainly exists and in
  this section we will discuss how this can
! be achieved using Ada in general and GNAT in particular.
  
  .. _Use_of_Boolean_Constants:
  
*************** constants to control which code is execu
*** 2466,2472 ****
  Not only will the code inside the ``if`` statement not be executed if
  the constant Boolean is ``False``, but it will also be completely
  deleted from the program.
! However, the code is only deleted after the ``if`` statement
  has been checked for syntactic and semantic correctness.
  (In contrast, with preprocessors the code is deleted before the
  compiler ever gets to see it, so it is not checked until the switch
--- 2471,2477 ----
  Not only will the code inside the ``if`` statement not be executed if
  the constant Boolean is ``False``, but it will also be completely
  deleted from the program.
! However, the code is only deleted after the ``if`` statement block
  has been checked for syntactic and semantic correctness.
  (In contrast, with preprocessors the code is deleted before the
  compiler ever gets to see it, so it is not checked until the switch
*************** something like:
*** 2485,2493 ****
            ...
         end Config;
  
! The ``Config`` package exists in multiple forms for the various targets,
  with an appropriate script selecting the version of ``Config`` needed.
! Then any other unit requiring conditional compilation can do a |with|
  of ``Config`` to make the constants visible.
  
  .. _Debugging_-_A_Special_Case:
--- 2490,2498 ----
            ...
         end Config;
  
! You would write the ``Config`` package multiple forms for various targets,
  with an appropriate script selecting the version of ``Config`` needed.
! Then, any other unit requiring conditional compilation can do a |with|
  of ``Config`` to make the constants visible.
  
  .. _Debugging_-_A_Special_Case:
*************** Debugging - A Special Case
*** 2498,2504 ****
  A common use of conditional code is to execute statements (for example
  dynamic checks, or output of intermediate results) under control of a
  debug switch, so that the debugging behavior can be turned on and off.
! This can be done using a Boolean constant to control whether the code
  is active:
  
  .. code-block:: ada
--- 2503,2509 ----
  A common use of conditional code is to execute statements (for example
  dynamic checks, or output of intermediate results) under control of a
  debug switch, so that the debugging behavior can be turned on and off.
! You can do this by using a Boolean constant to control whether the debug code
  is active:
  
  .. code-block:: ada
*************** or
*** 2517,2530 ****
  
  .. index:: pragma Assert
  
! Since this is a common case, there are special features to deal with
! this in a convenient manner. For the case of tests, Ada 2005 has added
! a pragma ``Assert`` that can be used for such tests. This pragma is modeled
! on the ``Assert`` pragma that has always been available in GNAT, so this
! feature may be used with GNAT even if you are not using Ada 2005 features.
! The use of pragma ``Assert`` is described in the
! :title:`GNAT_Reference_Manual`, but as an
! example, the last test could be written:
  
  .. code-block:: ada
  
--- 2522,2535 ----
  
  .. index:: pragma Assert
  
! Since this is a common case, GNAT provides special features to deal
! with this in a convenient manner. For the case of tests, Ada 2005 has
! added a pragma ``Assert`` that you can use for such tests. This pragma
! is modeled on the ``Assert`` pragma that has always been available in
! GNAT, so you can use this feature with GNAT even if you are not using
! Ada 2005 features.  The use of pragma ``Assert`` is described in the
! :title:`GNAT_Reference_Manual`, but as an example, the last test could
! be written:
  
  .. code-block:: ada
  
*************** or simply
*** 2536,2545 ****
  
         pragma Assert (Temperature <= 999.0);
  
! In both cases, if assertions are active and the temperature is excessive,
! the exception ``Assert_Failure`` will be raised, with the given string in
! the first case or a string indicating the location of the pragma in the second
! case used as the exception message.
  
  .. index:: pragma Assertion_Policy
  
--- 2541,2550 ----
  
         pragma Assert (Temperature <= 999.0);
  
! In both cases, if assertions are active and the temperature is
! excessive, the exception ``Assert_Failure`` is raised with the
! exception message using the specified string in the first case or a
! string indicating the location of the pragma in the second case.
  
  .. index:: pragma Assertion_Policy
  
*************** pragma.
*** 2548,2556 ****
  
  .. index:: -gnata switch
  
! This is an Ada 2005 pragma which is implemented in all modes by
  GNAT. Alternatively, you can use the :switch:`-gnata` switch
! to enable assertions from the command line, which applies to
  all versions of Ada.
  
  .. index:: pragma Debug
--- 2553,2561 ----
  
  .. index:: -gnata switch
  
! This is an Ada 2005 pragma that is implemented in all modes by
  GNAT. Alternatively, you can use the :switch:`-gnata` switch
! to enable assertions from the command line, which also applies to
  all versions of Ada.
  
  .. index:: pragma Debug
*************** For the example above with the ``Put_Lin
*** 2562,2572 ****
  
         pragma Debug (Put_Line ("got to the first stage!"));
  
! If debug pragmas are enabled, the argument, which must be of the form of
! a procedure call, is executed (in this case, ``Put_Line`` will be called).
! Only one call can be present, but of course a special debugging procedure
! containing any code you like can be included in the program and then
! called in a pragma ``Debug`` argument as needed.
  
  One advantage of pragma ``Debug`` over the ``if Debugging then``
  construct is that pragma ``Debug`` can appear in declarative contexts,
--- 2567,2577 ----
  
         pragma Debug (Put_Line ("got to the first stage!"));
  
! If debug pragmas are enabled, the argument, which must be of the form
! of a procedure call, is executed (in this case, ``Put_Line`` is
! called).  You can specify only one call, but you can of course include
! a special debugging procedure containing any code you like in the
! program and call it in a pragma ``Debug`` argument as needed.
  
  One advantage of pragma ``Debug`` over the ``if Debugging then``
  construct is that pragma ``Debug`` can appear in declarative contexts,
*************** been elaborated.
*** 2575,2590 ****
  
  .. index:: pragma Debug_Policy
  
! Debug pragmas are enabled using either the :switch:`-gnata` switch that also
  controls assertions, or with a separate Debug_Policy pragma.
  
  The latter pragma is new in the Ada 2005 versions of GNAT (but it can be used
! in Ada 95 and Ada 83 programs as well), and is analogous to
  pragma ``Assertion_Policy`` to control assertions.
  
  ``Assertion_Policy`` and ``Debug_Policy`` are configuration pragmas,
! and thus they can appear in :file:`gnat.adc` if you are not using a
! project file, or in the file designated to contain configuration pragmas
  in a project file.
  They then apply to all subsequent compilations. In practice the use of
  the :switch:`-gnata` switch is often the most convenient method of controlling
--- 2580,2595 ----
  
  .. index:: pragma Debug_Policy
  
! You can enable debug pragmas using either the :switch:`-gnata` switch that also
  controls assertions, or with a separate Debug_Policy pragma.
  
  The latter pragma is new in the Ada 2005 versions of GNAT (but it can be used
! in Ada 95 and Ada 83 programs as well) and is analogous to
  pragma ``Assertion_Policy`` to control assertions.
  
  ``Assertion_Policy`` and ``Debug_Policy`` are configuration pragmas,
! and thus can appear in :file:`gnat.adc` if you are not using a
! project file or in the file designated to contain configuration pragmas
  in a project file.
  They then apply to all subsequent compilations. In practice the use of
  the :switch:`-gnata` switch is often the most convenient method of controlling
*************** for the little endian case. Since a powe
*** 2665,2671 ****
  notation is usable for creating static constants, clever use of this
  feature can often solve quite difficult problems in conditionalizing
  compilation (note incidentally that in Ada 95, the little endian
! constant was introduced as ``System.Default_Bit_Order``, so you do not
  need to define this one yourself).
  
  .. _Use_of_Alternative_Implementations:
--- 2670,2676 ----
  notation is usable for creating static constants, clever use of this
  feature can often solve quite difficult problems in conditionalizing
  compilation (note incidentally that in Ada 95, the little endian
! constant was introduced as ``System.Default_Bit_Order``, so you don't
  need to define this one yourself).
  
  .. _Use_of_Alternative_Implementations:
*************** Use of Alternative Implementations
*** 2674,2689 ****
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  In some cases, none of the approaches described above are adequate. This
! can occur for example if the set of declarations required is radically
  different for two different configurations.
  
  In this situation, the official Ada way of dealing with conditionalizing
  such code is to write separate units for the different cases. As long as
! this does not result in excessive duplication of code, this can be done
  without creating maintenance problems. The approach is to share common
! code as far as possible, and then isolate the code and declarations
  that are different. Subunits are often a convenient method for breaking
! out a piece of a unit that is to be conditionalized, with separate files
  for different versions of the subunit for different targets, where the
  build script selects the right one to give to the compiler.
  
--- 2679,2694 ----
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  In some cases, none of the approaches described above are adequate. This
! can occur, for example, if the set of declarations required is radically
  different for two different configurations.
  
  In this situation, the official Ada way of dealing with conditionalizing
  such code is to write separate units for the different cases. As long as
! this doesn't result in excessive duplication of code, you can do this
  without creating maintenance problems. The approach is to share common
! code as far as possible and then isolate the code and declarations
  that are different. Subunits are often a convenient method for breaking
! out a piece of a unit that you need to be conditionalized, with separate files
  for different versions of the subunit for different targets, where the
  build script selects the right one to give to the compiler.
  
*************** But this won't work when ``Ada_2005`` is
*** 2707,2715 ****
  since the ``then`` clause will be illegal for an Ada 95 compiler.
  (Recall that although such unreachable code would eventually be deleted
  by the compiler, it still needs to be legal.  If it uses features
! introduced in Ada 2005, it will be illegal in Ada 95.)
  
! So instead we write
  
  .. code-block:: ada
  
--- 2712,2720 ----
  since the ``then`` clause will be illegal for an Ada 95 compiler.
  (Recall that although such unreachable code would eventually be deleted
  by the compiler, it still needs to be legal.  If it uses features
! introduced in Ada 2005, it's still illegal in Ada 95.)
  
! So instead, we write
  
  .. code-block:: ada
  
*************** This can also be done with project files
*** 2731,2739 ****
  
         for body ("File_Queries.Insert") use "file_queries-insert-2005.ada";
  
! Note also that with project files it is desirable to use a different extension
! than :file:`ads` / :file:`adb` for alternative versions. Otherwise a naming
! conflict may arise through another commonly used feature: to declare as part
  of the project a set of directories containing all the sources obeying the
  default naming scheme.
  
--- 2736,2744 ----
  
         for body ("File_Queries.Insert") use "file_queries-insert-2005.ada";
  
! Note also that with project files, you should use a different extension
! than :file:`ads` / :file:`adb` for alternative versions. Otherwise, a naming
! conflict may arise through another commonly used feature: declaring as part
  of the project a set of directories containing all the sources obeying the
  default naming scheme.
  
*************** bodies:
*** 2754,2777 ****
      used for VMS on the ia64
  
  The dummy version :file:`s-asthan.adb` simply raises exceptions noting that
! this operating system feature is not available, and the two remaining
  versions interface with the corresponding versions of VMS to provide
  VMS-compatible AST handling. The GNAT build script knows the architecture
  and operating system, and automatically selects the right version,
  renaming it if necessary to :file:`s-asthan.adb` before the run-time build.
  
! Another style for arranging alternative implementations is through Ada's
! access-to-subprogram facility.
! In case some functionality is to be conditionally included,
! you can declare an access-to-procedure variable ``Ref`` that is initialized
! to designate a 'do nothing' procedure, and then invoke ``Ref.all``
! when appropriate.
! In some library package, set ``Ref`` to ``Proc'Access`` for some
! procedure ``Proc`` that performs the relevant processing.
! The initialization only occurs if the library package is included in the
! program.
! The same idea can also be implemented using tagged types and dispatching
! calls.
  
  .. _Preprocessing:
  
--- 2759,2780 ----
      used for VMS on the ia64
  
  The dummy version :file:`s-asthan.adb` simply raises exceptions noting that
! this operating system feature is not available and the two remaining
  versions interface with the corresponding versions of VMS to provide
  VMS-compatible AST handling. The GNAT build script knows the architecture
  and operating system, and automatically selects the right version,
  renaming it if necessary to :file:`s-asthan.adb` before the run-time build.
  
! Another style for arranging alternative implementations is through
! Ada's access-to-subprogram facility.  In case some functionality is to
! be conditionally included, you can declare an access-to-procedure
! variable ``Ref`` that is initialized to designate a 'do nothing'
! procedure, and then invoke ``Ref.all`` when appropriate.  Then, in,
! some library package, set ``Ref`` to ``Proc'Access`` for some
! procedure ``Proc`` that performs the relevant processing.  The
! initialization only occurs if the library package is included in the
! program.  The same idea can also be implemented using tagged types and
! dispatching calls.
  
  .. _Preprocessing:
  
*************** Preprocessing
*** 2781,2787 ****
  .. index:: Preprocessing
  
  Although it is quite possible to conditionalize code without the use of
! C-style preprocessing, as described earlier in this section, it is
  nevertheless convenient in some cases to use the C approach. Moreover,
  older Ada compilers have often provided some preprocessing capability,
  so legacy code may depend on this approach, even though it is not
--- 2784,2790 ----
  .. index:: Preprocessing
  
  Although it is quite possible to conditionalize code without the use of
! C-style preprocessing, as described in the cases above, it is
  nevertheless convenient in some cases to use the C approach. Moreover,
  older Ada compilers have often provided some preprocessing capability,
  so legacy code may depend on this approach, even though it is not
*************** with legacy code on other compilers, to
*** 2793,2801 ****
  
  .. index:: gnatprep
  
! The preprocessor may be used in two separate modes. It can be used quite
! separately from the compiler, to generate a separate output source file
! that is then fed to the compiler as a separate step. This is the
  ``gnatprep`` utility, whose use is fully described in
  :ref:`Preprocessing_with_gnatprep`.
  
--- 2796,2804 ----
  
  .. index:: gnatprep
  
! You can use the preprocessor used in two different modes. You can use it
! separately from the compiler to generate a separate output source file,
! which you then feed to the compiler as a separate step. This is the
  ``gnatprep`` utility, whose use is fully described in
  :ref:`Preprocessing_with_gnatprep`.
  
*************** The values of the symbols ``DEBUG`` and
*** 2813,2822 ****
  defined either on the command line or in a separate file.
  
  The other way of running the preprocessor is even closer to the C style and
! often more convenient. In this approach the preprocessing is integrated into
! the compilation process. The compiler is given the preprocessor input which
! includes ``#if`` lines etc, and then the compiler carries out the
! preprocessing internally and processes the resulting output.
  For more details on this approach, see :ref:`Integrated_Preprocessing`.
  
  .. _Preprocessing_with_gnatprep:
--- 2816,2825 ----
  defined either on the command line or in a separate file.
  
  The other way of running the preprocessor is even closer to the C style and
! often more convenient. In this approach, the preprocessing is integrated into
! the compilation process. You pass the compiler the preprocessor input, which
! includes ``#if`` lines etc, and the compiler carries out the
! preprocessing internally and compiles the resulting output.
  For more details on this approach, see :ref:`Integrated_Preprocessing`.
  
  .. _Preprocessing_with_gnatprep:
*************** Preprocessing with ``gnatprep``
*** 2827,2837 ****
  .. index:: ! gnatprep
  .. index:: Preprocessing (gnatprep)
  
! This section discusses how to use GNAT's ``gnatprep`` utility for simple
! preprocessing.
! Although designed for use with GNAT, ``gnatprep`` does not depend on any
! special GNAT features.
! For further discussion of conditional compilation in general, see
  :ref:`Conditional_Compilation`.
  
  .. _Preprocessing_Symbols:
--- 2830,2839 ----
  .. index:: ! gnatprep
  .. index:: Preprocessing (gnatprep)
  
! This section discusses how to you can use GNAT's ``gnatprep`` utility
! for simple preprocessing.  Although designed for use with GNAT,
! ``gnatprep`` does not depend on any special GNAT features.  For
! further discussion of conditional compilation in general, see
  :ref:`Conditional_Compilation`.
  
  .. _Preprocessing_Symbols:
*************** where
*** 2871,2878 ****
  
  * ``deffile``
      is the full name of a text file containing definitions of
!     preprocessing symbols to be referenced by the preprocessor. This argument is
!     optional, and can be replaced by the use of the :switch:`-D` switch.
  
  
  .. _Switches_for_gnatprep:
--- 2873,2880 ----
  
  * ``deffile``
      is the full name of a text file containing definitions of
!     preprocessing symbols to be referenced by the preprocessor. You
!     can omit this argument and instead use the :switch:`-D` switch.
  
  
  .. _Switches_for_gnatprep:
*************** Switches for ``gnatprep``
*** 2883,2894 ****
  .. index:: --version (gnatprep)
  
  :switch:`--version`
!   Display Copyright and version, then exit disregarding all other options.
  
  .. index:: --help (gnatprep)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage and then exit disregarding
    all other options.
  
  .. index:: -b (gnatprep)
--- 2885,2896 ----
  .. index:: --version (gnatprep)
  
  :switch:`--version`
!   Display copyright and version, then exit, disregarding all other options.
  
  .. index:: --help (gnatprep)
  
  :switch:`--help`
!   If :switch:`--version` was not used, display usage and then exit, disregarding
    all other options.
  
  .. index:: -b (gnatprep)
*************** Switches for ``gnatprep``
*** 2903,2946 ****
  :switch:`-c`
    Causes both preprocessor lines and the lines deleted
    by preprocessing to be retained in the output source as comments marked
!   with the special string ``"--! "``. This option will result in line numbers
    being preserved in the output file.
  
  .. index:: -C (gnatprep)
  
  :switch:`-C`
!   Causes comments to be scanned. Normally comments are ignored by gnatprep.
!   If this option is specified, then comments are scanned and any $symbol
!   substitutions performed as in program text. This is particularly useful
!   when structured comments are used (e.g., for programs written in a
!   pre-2014 version of the SPARK Ada subset). Note that this switch is not
!   available when  doing integrated preprocessing (it would be useless in
!   this context since comments are ignored by the compiler in any case).
  
  .. index:: -D (gnatprep)
  
  :switch:`-D{symbol}[={value}]`
!   Defines a new preprocessing symbol with the specified value. If no value is given
!   on the command line, then symbol is considered to be ``True``. This switch
!   can be used in place of a definition file.
  
  .. index:: -r (gnatprep)
  
  :switch:`-r`
!   Causes a ``Source_Reference`` pragma to be generated that
    references the original input file, so that error messages will use
    the file name of this original file. The use of this switch implies
!   that preprocessor lines are not to be removed from the file, so its
!   use will force ``-b`` mode if ``-c``
!   has not been specified explicitly.
  
!   Note that if the file to be preprocessed contains multiple units, then
!   it will be necessary to ``gnatchop`` the output file from
    ``gnatprep``. If a ``Source_Reference`` pragma is present
    in the preprocessed file, it will be respected by
    ``gnatchop -r``
    so that the final chopped files will correctly refer to the original
!   input source file for ``gnatprep``.
  
  .. index:: -s (gnatprep)
  
--- 2905,2948 ----
  :switch:`-c`
    Causes both preprocessor lines and the lines deleted
    by preprocessing to be retained in the output source as comments marked
!   with the special string ``"--! "``. This option also results in line numbers
    being preserved in the output file.
  
  .. index:: -C (gnatprep)
  
  :switch:`-C`
!   Causes comments to be scanned. Normally comments are ignored by
!   ``gnatprep``.  If you specify this option, ``gnatprep`` scans
!   comments and any $symbol substitutions performed as in program
!   text. You will find this particularly useful when structured
!   comments are used (e.g., for programs written in a pre-2014 version
!   of the SPARK Ada subset). This switch is not available
!   when doing integrated preprocessing (it would be useless in this
!   context since comments are always ignored by the compiler).
  
  .. index:: -D (gnatprep)
  
  :switch:`-D{symbol}[={value}]`
!   Defines a new preprocessing symbol with the specified value. If you
!   don't specify a value, the symbol is defined to be ``True``. You can
!   use this switch instead of providing a definition file.
  
  .. index:: -r (gnatprep)
  
  :switch:`-r`
!   Causes ``gnatprep`` to generate a ``Source_Reference`` pragma that
    references the original input file, so that error messages will use
    the file name of this original file. The use of this switch implies
!   that preprocessor lines are not to be removed from the file, so
!   the :switch:`-b` and :switch:`-c` are always enabled.
  
!   If the file to be preprocessed contains multiple units, you
!   must call ``gnatchop`` on the the output file from
    ``gnatprep``. If a ``Source_Reference`` pragma is present
    in the preprocessed file, it will be respected by
    ``gnatchop -r``
    so that the final chopped files will correctly refer to the original
!   input source file passed to ``gnatprep``.
  
  .. index:: -s (gnatprep)
  
*************** Switches for ``gnatprep``
*** 2957,2976 ****
  .. index:: -u (gnatprep)
  
  :switch:`-u`
!   Causes undefined symbols to be treated as having the value FALSE in the context
!   of a preprocessor test. In the absence of this option, an undefined symbol in
!   a ``#if`` or ``#elsif`` test will be treated as an error.
  
  .. index:: -v (gnatprep)
  
  :switch:`-v`
!   Verbose mode: generates more output about work done.
! 
  
! Note: if neither :switch:`-b` nor :switch:`-c` is present,
  then preprocessor lines and
! deleted lines are completely removed from the output, unless -r is
! specified, in which case -b is assumed.
  
  
  .. _Form_of_Definitions_File:
--- 2959,2978 ----
  .. index:: -u (gnatprep)
  
  :switch:`-u`
!   Causes undefined symbols to be treated as having the value ``False``
!   in the context of a preprocessor test. If you don't specify this
!   switch, ``gnatprep`` will treat an undefined symbol in a ``#if`` or
!   ``#elsif`` test as an error.
  
  .. index:: -v (gnatprep)
  
  :switch:`-v`
!   Verbose mode: generates more output about what is done.
  
! Note: if you don't specify either :switch:`-b` or :switch:`-c`,
  then preprocessor lines and
! deleted lines are completely removed from the output, unless you specify
! :switch:`-r`, in which case ``gnatprep`` enables the :switch:`-b` switch.
  
  
  .. _Form_of_Definitions_File:
*************** where ``symbol`` is a preprocessing symb
*** 2988,2996 ****
  *  A string literal using normal Ada syntax, or
  *  Any sequence of characters from the set {letters, digits, period, underline}.
  
! Comment lines may also appear in the definitions file, starting with
! the usual ``--``,
! and comments may be added to the definitions lines.
  
  
  .. _Form_of_Input_Text_for_gnatprep:
--- 2990,2998 ----
  *  A string literal using normal Ada syntax, or
  *  Any sequence of characters from the set {letters, digits, period, underline}.
  
! You may also place comment lines in the definitions file, starting with
! the usual ``--``
! and comments may be added to the end of each definition line.
  
  
  .. _Form_of_Input_Text_for_gnatprep:
*************** and comments may be added to the definit
*** 2998,3007 ****
  Form of Input Text for ``gnatprep``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The input text may contain preprocessor conditional inclusion lines,
  as well as general symbol substitution sequences.
  
! The preprocessor conditional inclusion commands have the form:
  
  .. code-block:: c
  
--- 3000,3009 ----
  Form of Input Text for ``gnatprep``
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The input text contains preprocessor conditional inclusion lines
  as well as general symbol substitution sequences.
  
! Preprocessor conditional inclusion commands have the form:
  
  .. code-block:: c
  
*************** In this example, <expression> is defined
*** 3034,3059 ****
         <expression> ::=  <expression> or else <expression>
         <expression> ::=  ( <expression> )
  
! Note the following restriction: it is not allowed to have "and" or "or"
! following "not" in the same expression without parentheses. For example, this
! is not allowed:
! 
! .. code-block:: ada
! 
!        not X or Y
! 
! This can be expressed instead as one of the following forms:
! 
! .. code-block:: ada
! 
!      (not X) or Y
!      not (X or Y)
! 
! For the first test (<expression> ::= <symbol>) the symbol must have
! either the value true or false, that is to say the right-hand of the
  symbol definition must be one of the (case-insensitive) literals
! ``True`` or ``False``. If the value is true, then the
! corresponding lines are included, and if the value is false, they are
  excluded.
  
  When comparing a symbol to an integer, the integer is any non negative
--- 3036,3046 ----
         <expression> ::=  <expression> or else <expression>
         <expression> ::=  ( <expression> )
  
! For the first test, (<expression> ::= <symbol>), the symbol must have
! either the value true or false. The right-hand of the
  symbol definition must be one of the (case-insensitive) literals
! ``True`` or ``False``. If the value is true, the
! corresponding lines are included and if the value is false, they are
  excluded.
  
  When comparing a symbol to an integer, the integer is any non negative
*************** switch on the command line. Otherwise, t
*** 3067,3100 ****
  
  The equality tests are case insensitive, as are all the preprocessor lines.
  
! If the symbol referenced is not defined in the symbol definitions file,
! then the effect depends on whether or not switch :switch:`-u`
! is specified. If so, then the symbol is treated as if it had the value
! false and the test fails. If this switch is not specified, then
! it is an error to reference an undefined symbol. It is also an error to
! reference a symbol that is defined with a value other than ``True``
! or ``False``.
! 
! The use of the ``not`` operator inverts the sense of this logical test.
! The ``not`` operator cannot be combined with the ``or`` or ``and``
! operators, without parentheses. For example, "if not X or Y then" is not
! allowed, but "if (not X) or Y then" and "if not (X or Y) then" are.
  
! The ``then`` keyword is optional as shown
  
! The ``#`` must be the first non-blank character on a line, but
! otherwise the format is free form. Spaces or tabs may appear between
! the ``#`` and the keyword. The keywords and the symbols are case
! insensitive as in normal Ada code. Comments may be used on a
! preprocessor line, but other than that, no other tokens may appear on a
! preprocessor line. Any number of ``elsif`` clauses can be present,
! including none at all. The ``else`` is optional, as in Ada.
  
! The ``#`` marking the start of a preprocessor line must be the first
! non-blank character on the line, i.e., it must be preceded only by
! spaces or horizontal tabs.
  
! Symbol substitution outside of preprocessor lines is obtained by using
  the sequence::
  
        $symbol
--- 3054,3085 ----
  
  The equality tests are case insensitive, as are all the preprocessor lines.
  
! If the symbol referenced is not defined in the symbol definitions
! file, the result depends on whether or not you have specified the
! :switch:`-u` switch. If you have, the symbol is treated as if it had
! the value false and the test fails. If not,
! it's an error to reference an undefined symbol. It's also an
! error to reference a symbol that you have defined with a value other than
! ``True`` or ``False``.
  
! The use of the ``not`` operator inverts the sense of this logical
! test.  You can't combine the ``not`` operator with the ``or`` or
! ``and`` operators without parentheses. For example, you can't write
! "if not X or Y then" allowed, but can write either "if (not X) or Y
! then" or "if not (X or Y) then".
  
! The ``then`` keyword is optional, as shown.
  
! You must place the ``#`` in the first non-blank character on a line,
! i.e., it must be preceded only by spaces or horizontal tabs, but
! otherwise the format is free form. You may place spaces or tabs
! between the ``#`` and the keyword. The keywords and the symbols are
! case insensitive, as in normal Ada code. You can write comments on a
! preprocessor line, but other than that, you can't place any other
! tokens on a preprocessor line. You can have any number of ``elsif``
! clauses, including none at all. The ``else`` is optional, as in Ada.
  
! You obtain symbol substitution outside of preprocessor lines by using
  the sequence::
  
        $symbol
*************** the sequence::
*** 3102,3113 ****
  anywhere within a source line, except in a comment or within a
  string literal. The identifier
  following the ``$`` must match one of the symbols defined in the symbol
! definition file, and the result is to substitute the value of the
  symbol in place of ``$symbol`` in the output file.
  
! Note that although the substitution of strings within a string literal
! is not possible, it is possible to have a symbol whose defined value is
! a string literal. So instead of setting XYZ to ``hello`` and writing:
  
  .. code-block:: ada
  
--- 3087,3098 ----
  anywhere within a source line, except in a comment or within a
  string literal. The identifier
  following the ``$`` must match one of the symbols defined in the symbol
! definition file and the resulting output substitutes the value of the
  symbol in place of ``$symbol`` in the output file.
  
! Note that although you can't substitute strings within a string
! literal, you can have a symbol whose defined value is a string
! literal. So instead of setting XYZ to ``hello`` and writing:
  
  .. code-block:: ada
  
*************** Integrated Preprocessing
*** 3128,3139 ****
  ------------------------
  
  As noted above, a file to be preprocessed consists of Ada source code
! in which preprocessing lines have been inserted. However,
! instead of using ``gnatprep`` to explicitly preprocess a file as a separate
! step before compilation, you can carry out the preprocessing implicitly
! as part of compilation. Such *integrated preprocessing*, which is the common
! style with C, is performed when either or both of the following switches
! are passed to the compiler:
  
     *   :switch:`-gnatep`, which specifies the *preprocessor data file*.
         This file dictates how the source files will be preprocessed (e.g., which
--- 3113,3124 ----
  ------------------------
  
  As noted above, a file to be preprocessed consists of Ada source code
! in which preprocessing lines have been inserted. However, instead of
! using ``gnatprep`` to explicitly preprocess a file as a separate step
! before compilation, you can carry out the preprocessing implicitly as
! part of compilation. Such *integrated preprocessing*, which is the
! common style with C, is performed when you pass either or both of the
! following switches to the compiler:
  
     *   :switch:`-gnatep`, which specifies the *preprocessor data file*.
         This file dictates how the source files will be preprocessed (e.g., which
*************** are passed to the compiler:
*** 3141,3164 ****
  
     *   :switch:`-gnateD`, which defines values for preprocessing symbols.
  
! Integrated preprocessing applies only to Ada source files, it is
  not available for configuration pragma files.
  
! With integrated preprocessing, the output from the preprocessor is not,
! by default, written to any external file. Instead it is passed
! internally to the compiler. To preserve the result of
! preprocessing in a file, either run ``gnatprep``
! in standalone mode or else supply the :switch:`-gnateG` switch
! (described below) to the compiler.
  
  When using project files:
  
!    *    the builder switch :switch:`-x` should be used if any Ada source is
!         compiled with :switch:`gnatep=`, so that the compiler finds the
!         *preprocessor data file*.
  
!    *    the preprocessing data file and the symbol definition files should be
!         located in the source directories of the project.
  
  Note that the ``gnatmake`` switch :switch:`-m` will almost
  always trigger recompilation for sources that are preprocessed,
--- 3126,3148 ----
  
     *   :switch:`-gnateD`, which defines values for preprocessing symbols.
  
! Integrated preprocessing applies only to Ada source files; it's
  not available for configuration pragma files.
  
! With integrated preprocessing, GNAT doesn't write the output from the
! preprocessor, by default, to any external file. Instead it's passed
! internally to the compiler. To preserve the result of preprocessing in
! a file, either run ``gnatprep`` in standalone mode or supply the
! :switch:`-gnateG` switch to the compiler.
  
  When using project files:
  
!    * you should use the builder switch :switch:`-x`  if any Ada source is
!      compiled with :switch:`gnatep=` so that the compiler finds the
!      *preprocessor data file*.
  
!    * you should place the preprocessing data file and the symbol
!      definition files in the source directories of the project.
  
  Note that the ``gnatmake`` switch :switch:`-m` will almost
  always trigger recompilation for sources that are preprocessed,
*************** that relate to integrated preprocessing.
*** 3195,3201 ****
    can optionally identify a *definition file* that assigns values to
    preprocessor symbols, as well as a list of switches that relate to
    preprocessing.
!   Empty lines and comments (using Ada syntax) are also permitted, with no
    semantic effect.
  
    Here's an example of a preprocessor data file:
--- 3179,3185 ----
    can optionally identify a *definition file* that assigns values to
    preprocessor symbols, as well as a list of switches that relate to
    preprocessing.
!   You can also include empty lines and comments (using Ada syntax), with no
    semantic effect.
  
    Here's an example of a preprocessor data file:
*************** that relate to integrated preprocessing.
*** 3230,3237 ****
  
          <switch> := (See below for list)
  
!   Thus  each preprocessor control line starts with either a literal string or
!   the character '*':
  
    *  A literal string is the file name (without directory information) of the source
       file that will be input to the preprocessor.
--- 3214,3221 ----
  
          <switch> := (See below for list)
  
!   Thus, you start each preprocessor control line either a literal
!   string or the character '*':
  
    *  A literal string is the file name (without directory information) of the source
       file that will be input to the preprocessor.
*************** that relate to integrated preprocessing.
*** 3241,3257 ****
       that are not specified explicitly on other lines (the order of the lines is not
       significant).
  
!   It is an error to have two lines with the same file name or two
!   lines starting with the character '*'.
  
!   After the file name or '*', an optional literal string specifies the name of
!   the definition file to be used for preprocessing
!   (:ref:`Form_of_Definitions_File`). The definition files are found by the
!   compiler in one of the source directories. In some cases, when compiling
!   a source in a directory other than the current directory, if the definition
!   file is in the current directory, it may be necessary to add the current
!   directory as a source directory through the :switch:`-I` switch; otherwise
!   the compiler would not find the definition file.
  
    Finally, switches similar to those of ``gnatprep`` may optionally appear:
  
--- 3225,3242 ----
       that are not specified explicitly on other lines (the order of the lines is not
       significant).
  
!   You cannot have two lines with the same file name or two
!   lines starting with the '*' character.
  
!   After the file name or '*', you can place an optional literal string
!   to specify the name of the definition file to be used for
!   preprocessing (:ref:`Form_of_Definitions_File`). The definition
!   files are found by the compiler in one of the source directories. In
!   some cases, when compiling a source in a directory other than the
!   current directory, if the definition file is in the current
!   directory, you may need to add the current directory as a
!   source directory through the :switch:`-I` switch; otherwise the
!   compiler would not find the definition file.
  
    Finally, switches similar to those of ``gnatprep`` may optionally appear:
  
*************** that relate to integrated preprocessing.
*** 3261,3267 ****
      This switch is always implied; however, if specified after :switch:`-c`
      it cancels the effect of :switch:`-c`.
  
- 
    :switch:`-c`
      Causes both preprocessor lines and the lines deleted
      by preprocessing to be retained as comments marked
--- 3246,3251 ----
*************** that relate to integrated preprocessing.
*** 3270,3281 ****
  
    :switch:`-D{symbol}={new_value}`
      Define or redefine ``symbol`` to have ``new_value`` as its value.
!     The permitted form for ``symbol`` is either an Ada identifier, or any Ada reserved word
!     aside from ``if``,
!     ``else``, ``elsif``, ``end``, ``and``, ``or`` and ``then``.
!     The permitted form for ``new_value`` is a literal string, an Ada identifier or any Ada reserved
!     word. A symbol declared with this switch replaces a symbol with the
!     same name defined in a definition file.
  
  
    :switch:`-s`
--- 3254,3265 ----
  
    :switch:`-D{symbol}={new_value}`
      Define or redefine ``symbol`` to have ``new_value`` as its value.
!     You can write ``symbol`` as either an Ada identifier or any Ada
!     reserved word aside from ``if``, ``else``, ``elsif``, ``end``,
!     ``and``, ``or`` and ``then``.  You can write ``new_value`` as a
!     literal string, an Ada identifier or any Ada reserved word. A
!     symbol declared with this switch replaces a symbol with the same
!     name defined in a definition file.
  
  
    :switch:`-s`
*************** that relate to integrated preprocessing.
*** 3284,3306 ****
  
  
    :switch:`-u`
!     Causes undefined symbols to be treated as having the value ``FALSE``
!     in the context
!     of a preprocessor test. In the absence of this option, an undefined symbol in
!     a ``#if`` or ``#elsif`` test will be treated as an error.
  
  
  .. index:: -gnateD (gcc)
  
  :switch:`-gnateD{symbol}[={new_value}]`
!   Define or redefine ``symbol`` to have ``new_value`` as its value. If no value
!   is supplied, then the value of ``symbol`` is ``True``.
!   The form of ``symbol`` is an identifier, following normal Ada (case-insensitive)
!   rules for its syntax, and ``new_value`` is either an arbitrary string between double
!   quotes or any sequence (including an empty sequence) of characters from the
!   set (letters, digits, period, underline).
!   Ada reserved words may be used as symbols, with the exceptions of ``if``,
!   ``else``, ``elsif``, ``end``, ``and``, ``or`` and ``then``.
  
    Examples:
  
--- 3268,3291 ----
  
  
    :switch:`-u`
!     Causes undefined symbols to be treated as having the value
!     ``FALSE`` in the context of a preprocessor test. If you don't
!     specify this switch, an undefined symbol in a ``#if`` or
!     ``#elsif`` test is treated as an error.
  
  
  .. index:: -gnateD (gcc)
  
  :switch:`-gnateD{symbol}[={new_value}]`
!   Define or redefine ``symbol`` to have ``new_value`` as its value. If
!   you don't specify a value, the value of ``symbol`` is ``True``.  You
!   write ``symbol`` as an identifier, following normal Ada
!   (case-insensitive) rules for its syntax, and ``new_value`` as either
!   an arbitrary string between double quotes or any sequence (including
!   an empty sequence) of characters from the set (letters, digits,
!   period, underline).  Ada reserved words may be used as symbols, with
!   the exceptions of ``if``, ``else``, ``elsif``, ``end``, ``and``,
!   ``or`` and ``then``.
  
    Examples:
  
*************** that relate to integrated preprocessing.
*** 3322,3328 ****
    create or overwrite :file:`filename.extension.prep` to contain
    the result of the preprocessing.
    For example if the source file is :file:`foo.adb` then
!   the output file will be :file:`foo.adb.prep`.
  
  
  .. _Mixed_Language_Programming:
--- 3307,3313 ----
    create or overwrite :file:`filename.extension.prep` to contain
    the result of the preprocessing.
    For example if the source file is :file:`foo.adb` then
!   the output file is :file:`foo.adb.prep`.
  
  
  .. _Mixed_Language_Programming:
*************** Interfacing to C
*** 3342,3355 ****
  
  Interfacing Ada with a foreign language such as C involves using
  compiler directives to import and/or export entity definitions in each
! language -- using ``extern`` statements in C, for instance, and the
  ``Import``, ``Export``, and ``Convention`` pragmas in Ada.
  A full treatment of these topics is provided in Appendix B, section 1
  of the Ada Reference Manual.
  
  There are two ways to build a program using GNAT that contains some Ada
  sources and some foreign language sources, depending on whether or not
! the main subprogram is written in Ada.  Here is a source example with
  the main subprogram in Ada:
  
  .. code-block:: c
--- 3327,3340 ----
  
  Interfacing Ada with a foreign language such as C involves using
  compiler directives to import and/or export entity definitions in each
! language -- using ``extern`` statements in C, for example, and the
  ``Import``, ``Export``, and ``Convention`` pragmas in Ada.
  A full treatment of these topics is provided in Appendix B, section 1
  of the Ada Reference Manual.
  
  There are two ways to build a program using GNAT that contains some Ada
  sources and some foreign language sources, depending on whether or not
! the main subprogram is written in Ada.  Here's an example with
  the main subprogram in Ada:
  
  .. code-block:: c
*************** To build this example:
*** 3408,3414 ****
        $ gcc -c file1.c
        $ gcc -c file2.c
  
! * Then, compile the Ada units to produce a set of object files and ALI
    files:
  
    .. code-block:: sh
--- 3393,3399 ----
        $ gcc -c file1.c
        $ gcc -c file2.c
  
! * Then compile the Ada units to produce a set of object files and ALI
    files:
  
    .. code-block:: sh
*************** To build this example:
*** 3421,3434 ****
  
        $ gnatbind my_main.ali
  
! * Link the Ada main program, the Ada objects and the other language
    objects:
  
    .. code-block:: sh
  
        $ gnatlink my_main.ali file1.o file2.o
  
! The last three steps can be grouped in a single command:
  
  .. code-block:: sh
  
--- 3406,3419 ----
  
        $ gnatbind my_main.ali
  
! * Link the Ada main program, the Ada objects, and the other language
    objects:
  
    .. code-block:: sh
  
        $ gnatlink my_main.ali file1.o file2.o
  
! You can merge the last three steps into a single command:
  
  .. code-block:: sh
  
*************** The last three steps can be grouped in a
*** 3437,3454 ****
  
  .. index:: Binder output file
  
! If the main program is in a language other than Ada, then you may have
! more than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
  finalize the Ada units (:ref:`Binding_with_Non-Ada_Main_Programs`).
! Calls to the initialization and finalization routines must be inserted
! in the main program, or some other appropriate point in the code. The
! call to initialize the Ada units must occur before the first Ada
! subprogram is called, and the call to finalize the Ada units must occur
! after the last Ada subprogram returns. The binder will place the
! initialization and finalization subprograms into the
! :file:`b~xxx.adb` file where they can be accessed by your C
! sources.  To illustrate, we have the following example:
  
  .. code-block:: c
  
--- 3422,3440 ----
  
  .. index:: Binder output file
  
! If the main program is in a language other than Ada, you may have more
! than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
  finalize the Ada units (:ref:`Binding_with_Non-Ada_Main_Programs`).
! You must insert calls to the initialization and finalization routines
! in the main program or some other appropriate point in the code. You
! must place the call to initialize the Ada units so that it occurs
! before the first Ada subprogram is called and must place the call to
! finalize the Ada units so it occurs after the last Ada subprogram
! returns. The binder places the initialization and finalization
! subprograms into the :file:`b~xxx.adb` file, where they can be
! accessed by your C sources.  To illustrate, we have the following
! example:
  
  .. code-block:: c
  
*************** Calling Conventions
*** 3557,3563 ****
  
  .. index:: Calling Conventions
  
! GNAT follows standard calling sequence conventions and will thus interface
  to any other language that also follows these conventions. The following
  Convention identifiers are recognized by GNAT:
  
--- 3543,3549 ----
  
  .. index:: Calling Conventions
  
! GNAT follows standard calling sequence conventions and will interface
  to any other language that also follows these conventions. The following
  Convention identifiers are recognized by GNAT:
  
*************** Convention identifiers are recognized by
*** 3569,3601 ****
  .. index:: Convention Ada
  
  ``Ada``
!   This indicates that the standard Ada calling sequence will be
    used and all Ada data items may be passed without any limitations in the
!   case where GNAT is used to generate both the caller and callee. It is also
!   possible to mix GNAT generated code and code generated by another Ada
!   compiler. In this case, the data types should be restricted to simple
    cases, including primitive types. Whether complex data types can be passed
!   depends on the situation. Probably it is safe to pass simple arrays, such
    as arrays of integers or floats. Records may or may not work, depending
    on whether both compilers lay them out identically. Complex structures
    involving variant records, access parameters, tasks, or protected types,
    are unlikely to be able to be passed.
  
!   Note that in the case of GNAT running
!   on a platform that supports HP Ada 83, a higher degree of compatibility
!   can be guaranteed, and in particular records are laid out in an identical
!   manner in the two compilers. Note also that if output from two different
!   compilers is mixed, the program is responsible for dealing with elaboration
!   issues. Probably the safest approach is to write the main program in the
!   version of Ada other than GNAT, so that it takes care of its own elaboration
!   requirements, and then call the GNAT-generated adainit procedure to ensure
!   elaboration of the GNAT components. Consult the documentation of the other
!   Ada compiler for further details on elaboration.
! 
!   However, it is not possible to mix the tasking run time of GNAT and
!   HP Ada 83, all the tasking operations must either be entirely within
!   GNAT compiled sections of the program, or entirely within HP Ada 83
!   compiled sections of the program.
  
  .. index:: Interfacing to Assembly
  
--- 3555,3579 ----
  .. index:: Convention Ada
  
  ``Ada``
!   This indicates that the standard Ada calling sequence is
    used and all Ada data items may be passed without any limitations in the
!   case where GNAT is used to generate both the caller and callee. You can also
!   mix GNAT generated code and code generated by another Ada
!   compiler. In this case, you should restrict the data types to simple
    cases, including primitive types. Whether complex data types can be passed
!   depends on the situation. It is probably safe to pass simple arrays, such
    as arrays of integers or floats. Records may or may not work, depending
    on whether both compilers lay them out identically. Complex structures
    involving variant records, access parameters, tasks, or protected types,
    are unlikely to be able to be passed.
  
!   If output from two different compilers is mixed, you are responsible
!   for dealing with elaboration issues. Probably the safest approach is
!   to write the main program in the version of Ada other than GNAT, so
!   it takes care of its own elaboration requirements, and
!   call the GNAT-generated adainit procedure to ensure elaboration of
!   the GNAT components. Consult the documentation of the other Ada
!   compiler for further details on elaboration.
  
  .. index:: Interfacing to Assembly
  
*************** Convention identifiers are recognized by
*** 3621,3627 ****
  .. index:: COBOL
  
  ``COBOL``
!   Data will be passed according to the conventions described
    in section B.4 of the Ada Reference Manual.
  
  .. index:: C
--- 3599,3605 ----
  .. index:: COBOL
  
  ``COBOL``
!   Data is passed according to the conventions described
    in section B.4 of the Ada Reference Manual.
  
  .. index:: C
*************** Convention identifiers are recognized by
*** 3631,3637 ****
  
  
  ``C``
!   Data will be passed according to the conventions described
    in section B.3 of the Ada Reference Manual.
  
    A note on interfacing to a C 'varargs' function:
--- 3609,3615 ----
  
  
  ``C``
!   Data is passed according to the conventions described
    in section B.3 of the Ada Reference Manual.
  
    A note on interfacing to a C 'varargs' function:
*************** Convention identifiers are recognized by
*** 3642,3648 ****
  
      In C, ``varargs`` allows a function to take a variable number of
      arguments. There is no direct equivalent in this to Ada. One
!     approach that can be used is to create a C wrapper for each
      different profile and then interface to this C wrapper. For
      example, to print an ``int`` value using ``printf``,
      create a C function ``printfi`` that takes two arguments, a
--- 3620,3626 ----
  
      In C, ``varargs`` allows a function to take a variable number of
      arguments. There is no direct equivalent in this to Ada. One
!     approach that you can use is to create a C wrapper for each
      different profile and then interface to this C wrapper. For
      example, to print an ``int`` value using ``printf``,
      create a C function ``printfi`` that takes two arguments, a
*************** Convention identifiers are recognized by
*** 3653,3660 ****
      It may work on some platforms to directly interface to
      a ``varargs`` function by providing a specific Ada profile
      for a particular call. However, this does not work on
!     all platforms, since there is no guarantee that the
!     calling sequence for a two argument normal C function
      is the same as for calling a ``varargs`` C function with
      the same two arguments.
  
--- 3631,3638 ----
      It may work on some platforms to directly interface to
      a ``varargs`` function by providing a specific Ada profile
      for a particular call. However, this does not work on
!     all platforms since there is no guarantee that the
!     calling sequence for a two-argument normal C function
      is the same as for calling a ``varargs`` C function with
      the same two arguments.
  
*************** Convention identifiers are recognized by
*** 3679,3685 ****
  
  
  ``C_Plus_Plus`` (or ``CPP``)
!   This stands for C++. For most purposes this is identical to C.
    See the separate description of the specialized GNAT pragmas relating to
    C++ interfacing for further details.
  
--- 3657,3663 ----
  
  
  ``C_Plus_Plus`` (or ``CPP``)
!   This stands for C++. For most purposes, this is identical to C.
    See the separate description of the specialized GNAT pragmas relating to
    C++ interfacing for further details.
  
*************** Convention identifiers are recognized by
*** 3689,3712 ****
  
  
  ``Fortran``
!   Data will be passed according to the conventions described
    in section B.5 of the Ada Reference Manual.
  
  
  ``Intrinsic``
    This applies to an intrinsic operation, as defined in the Ada
    Reference Manual. If a pragma Import (Intrinsic) applies to a subprogram,
!   this means that the body of the subprogram is provided by the compiler itself,
!   usually by means of an efficient code sequence, and that the user does not
    supply an explicit body for it. In an application program, the pragma may
    be applied to the following sets of names:
  
  
!   * Rotate_Left, Rotate_Right, Shift_Left, Shift_Right, Shift_Right_Arithmetic.
      The corresponding subprogram declaration must have
      two formal parameters. The
!     first one must be a signed integer type or a modular type with a binary
!     modulus, and the second parameter must be of type Natural.
      The return type must be the same as the type of the first argument. The size
      of this type can only be 8, 16, 32, or 64.
  
--- 3667,3690 ----
  
  
  ``Fortran``
!   Data is passed according to the conventions described
    in section B.5 of the Ada Reference Manual.
  
  
  ``Intrinsic``
    This applies to an intrinsic operation, as defined in the Ada
    Reference Manual. If a pragma Import (Intrinsic) applies to a subprogram,
!   it means the body of the subprogram is provided by the compiler itself,
!   usually by means of an efficient code sequence, and that you don't
    supply an explicit body for it. In an application program, the pragma may
    be applied to the following sets of names:
  
  
!   * ``Rotate_Left``, ``Rotate_Right``, ``Shift_Left``, ``Shift_Right``, ``Shift_Right_Arithmetic``.
      The corresponding subprogram declaration must have
      two formal parameters. The
!     first must be a signed integer type or a modular type with a binary
!     modulus and the second parameter must be of type Natural.
      The return type must be the same as the type of the first argument. The size
      of this type can only be 8, 16, 32, or 64.
  
*************** Convention identifiers are recognized by
*** 3727,3743 ****
            return Velocity;
          pragma Import (Intrinsic, "/");
  
!     This common idiom is often programmed with a generic definition and an
      explicit body. The pragma makes it simpler to introduce such declarations.
!     It incurs no overhead in compilation time or code size, because it is
      implemented as a single machine instruction.
  
  
    * General subprogram entities. This is used  to bind an Ada subprogram
      declaration to
!     a compiler builtin by name with back-ends where such interfaces are
      available. A typical example is the set of ``__builtin`` functions
!     exposed by the GCC back-end, as in the following example:
  
  
      .. code-block:: ada
--- 3705,3721 ----
            return Velocity;
          pragma Import (Intrinsic, "/");
  
!     You often program this common idiom with a generic definition and an
      explicit body. The pragma makes it simpler to introduce such declarations.
!     It incurs no overhead in compilation time or code size because it is
      implemented as a single machine instruction.
  
  
    * General subprogram entities. This is used  to bind an Ada subprogram
      declaration to
!     a compiler builtin by name with back ends where such interfaces are
      available. A typical example is the set of ``__builtin`` functions
!     exposed by the ``gcc`` back end, as in the following example:
  
  
      .. code-block:: ada
*************** Convention identifiers are recognized by
*** 3745,3751 ****
           function builtin_sqrt (F : Float) return Float;
           pragma Import (Intrinsic, builtin_sqrt, "__builtin_sqrtf");
  
!     Most of the GCC builtins are accessible this way, and as for other
      import conventions (e.g. C), it is the user's responsibility to ensure
      that the Ada subprogram profile matches the underlying builtin
      expectations.
--- 3723,3729 ----
           function builtin_sqrt (F : Float) return Float;
           pragma Import (Intrinsic, builtin_sqrt, "__builtin_sqrtf");
  
!     Most of the ``gcc`` builtins are accessible this way, and as for other
      import conventions (e.g. C), it is the user's responsibility to ensure
      that the Ada subprogram profile matches the underlying builtin
      expectations.
*************** Convention identifiers are recognized by
*** 3754,3763 ****
  .. index:: Convention Stdcall
  
  ``Stdcall``
!   This is relevant only to Windows implementations of GNAT,
!   and specifies that the ``Stdcall`` calling sequence will be used,
!   as defined by the NT API. Nevertheless, to ease building
!   cross-platform bindings this convention will be handled as a ``C`` calling
    convention on non-Windows platforms.
  
  .. index:: DLL
--- 3732,3741 ----
  .. index:: Convention Stdcall
  
  ``Stdcall``
!   This is relevant only to Windows implementations of GNAT
!   and specifies that the ``Stdcall`` calling sequence is used,
!   as defined by the NT API. To simplify building
!   cross-platform bindings, this convention is handled as a ``C`` calling
    convention on non-Windows platforms.
  
  .. index:: DLL
*************** Convention identifiers are recognized by
*** 3783,3790 ****
    should provide a stub body that raises ``Program_Error``.
  
  GNAT additionally provides a useful pragma ``Convention_Identifier``
! that can be used to parameterize conventions and allow additional synonyms
! to be specified. For example if you have legacy code in which the convention
  identifier Fortran77 was used for Fortran, you can use the configuration
  pragma:
  
--- 3761,3768 ----
    should provide a stub body that raises ``Program_Error``.
  
  GNAT additionally provides a useful pragma ``Convention_Identifier``
! that you can use to parameterize conventions and allow additional synonyms.
! For example, if you have legacy code in which the convention
  identifier Fortran77 was used for Fortran, you can use the configuration
  pragma:
  
*************** pragma:
*** 3792,3800 ****
  
       pragma Convention_Identifier (Fortran77, Fortran);
  
! And from now on the identifier Fortran77 may be used as a convention
  identifier (for example in an ``Import`` pragma) with the same
! meaning as Fortran.
  
  
  .. _Building_Mixed_Ada_and_C++_Programs:
--- 3770,3778 ----
  
       pragma Convention_Identifier (Fortran77, Fortran);
  
! And from now on, you can use  the identifier ``Fortran77`` as a convention
  identifier (for example in an ``Import`` pragma) with the same
! meaning as ``Fortran``.
  
  
  .. _Building_Mixed_Ada_and_C++_Programs:
*************** meaning as Fortran.
*** 3802,3808 ****
  Building Mixed Ada and C++ Programs
  -----------------------------------
  
! A programmer inexperienced with mixed-language development may find that
  building an application containing both Ada and C++ code can be a
  challenge.  This section gives a few hints that should make this task easier.
  
--- 3780,3786 ----
  Building Mixed Ada and C++ Programs
  -----------------------------------
  
! If you are inexperienced with mixed-language development, you may find that
  building an application containing both Ada and C++ code can be a
  challenge.  This section gives a few hints that should make this task easier.
  
*************** GNAT supports interfacing with the G++ c
*** 3815,3834 ****
  generating code that is compatible with the G++ Application Binary
  Interface ---see http://itanium-cxx-abi.github.io/cxx-abi/abi.html).
  
! Interfacing can be done at 3 levels: simple data, subprograms, and
  classes. In the first two cases, GNAT offers a specific ``Convention C_Plus_Plus``
  (or ``CPP``) that behaves exactly like ``Convention C``.
  Usually, C++ mangles the names of subprograms. To generate proper mangled
  names automatically, see :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`).
! This problem can also be addressed manually in two ways:
  
  * by modifying the C++ code in order to force a C convention using
    the ``extern "C"`` syntax.
  
! * by figuring out the mangled name (using e.g. ``nm``) and using it as the
!   Link_Name argument of the pragma import.
  
! Interfacing at the class level can be achieved by using the GNAT specific
  pragmas such as ``CPP_Constructor``.  See the :title:`GNAT_Reference_Manual` for additional information.
  
  .. _Linking_a_Mixed_C++_and_Ada_Program:
--- 3793,3813 ----
  generating code that is compatible with the G++ Application Binary
  Interface ---see http://itanium-cxx-abi.github.io/cxx-abi/abi.html).
  
! You can do interfacing at three levels: simple data, subprograms, and
  classes. In the first two cases, GNAT offers a specific ``Convention C_Plus_Plus``
  (or ``CPP``) that behaves exactly like ``Convention C``.
  Usually, C++ mangles the names of subprograms. To generate proper mangled
  names automatically, see :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`).
! You can also address this problem addressed manually in two ways:
  
  * by modifying the C++ code in order to force a C convention using
    the ``extern "C"`` syntax.
  
! * by figuring out the mangled name (using e.g. ``nm`` or by looking at the
!   assembly code generated by the C++ compiler) and using it as the
!   ``Link_Name`` argument of the pragma ``Import``.
  
! You can achieve interfacing at the class level by using the GNAT specific
  pragmas such as ``CPP_Constructor``.  See the :title:`GNAT_Reference_Manual` for additional information.
  
  .. _Linking_a_Mixed_C++_and_Ada_Program:
*************** pragmas such as ``CPP_Constructor``.  Se
*** 3836,3857 ****
  Linking a Mixed C++ & Ada Program
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Usually the linker of the C++ development system must be used to link
! mixed applications because most C++ systems will resolve elaboration
  issues (such as calling constructors on global class instances)
  transparently during the link phase. GNAT has been adapted to ease the
! use of a foreign linker for the last phase. Three cases can be
! considered:
  
  
  * Using GNAT and G++ (GNU C++ compiler) from the same GCC installation:
!   The C++ linker can simply be called by using the C++ specific driver
    called ``g++``.
  
!   Note that if the C++ code uses inline functions, you will need to
!   compile your C++ code with the :switch:`-fkeep-inline-functions` switch in
!   order to provide an existing function implementation that the Ada code can
!   link with.
  
    .. code-block:: sh
  
--- 3815,3835 ----
  Linking a Mixed C++ & Ada Program
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Usually the linker, of the C++ development system must be used to link
! mixed applications because most C++ systems resolve elaboration
  issues (such as calling constructors on global class instances)
  transparently during the link phase. GNAT has been adapted to ease the
! use of a foreign linker for the last phase. We consider three cases:
  
  
  * Using GNAT and G++ (GNU C++ compiler) from the same GCC installation:
!   You can call the C++ linker by using the C++ specific driver
    called ``g++``.
  
!   If the C++ code uses inline functions that you plan to call from
!   Ada, you need to compile your C++ code with the
!   :switch:`-fkeep-inline-functions` so ``g++`` doesn't delete these
!   functions.
  
    .. code-block:: sh
  
*************** considered:
*** 3861,3888 ****
  
  
  * Using GNAT and G++ from two different GCC installations: If both
!   compilers are on the :envvar:`PATH`, the previous method may be used. It is
!   important to note that environment variables such as
    :envvar:`C_INCLUDE_PATH`, :envvar:`GCC_EXEC_PREFIX`,
!   :envvar:`BINUTILS_ROOT`, and
!   :envvar:`GCC_ROOT` will affect both compilers
!   at the same time and may make one of the two compilers operate
!   improperly if set during invocation of the wrong compiler.  It is also
!   very important that the linker uses the proper :file:`libgcc.a` GCC
!   library -- that is, the one from the C++ compiler installation. The
!   implicit link command as suggested in the ``gnatmake`` command
!   from the former example can be replaced by an explicit link command with
!   the full-verbosity option in order to verify which library is used:
  
    .. code-block:: sh
  
      $ gnatbind ada_unit
      $ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
  
!   If there is a problem due to interfering environment variables, it can
!   be worked around by using an intermediate script. The following example
    shows the proper script to use when GNAT has not been installed at its
!   default location and g++ has been installed at its default location:
  
    .. code-block:: sh
  
--- 3839,3866 ----
  
  
  * Using GNAT and G++ from two different GCC installations: If both
!   compilers are on the :envvar:`PATH`, you may use the previous
!   method.  However, environment variables such as
    :envvar:`C_INCLUDE_PATH`, :envvar:`GCC_EXEC_PREFIX`,
!   :envvar:`BINUTILS_ROOT`, and :envvar:`GCC_ROOT` affect both
!   compilers at the same time and may make one of the two compilers
!   operate improperly if set during invocation of the wrong compiler.
!   It is also very important that the linker uses the proper
!   :file:`libgcc.a` ``gcc`` library -- that is, the one from the C++
!   compiler installation. You can replace the implicit link command as
!   suggested in the ``gnatmake`` command from the former example with
!   an explicit link command with the full-verbosity option
!   in order to verify which library is used:
  
    .. code-block:: sh
  
      $ gnatbind ada_unit
      $ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
  
!   If there's a problem due to interfering environment variables, you can
!   work around it by using an intermediate script. The following example
    shows the proper script to use when GNAT has not been installed at its
!   default location and ``g++`` has been installed at its default location:
  
    .. code-block:: sh
  
*************** considered:
*** 3894,3906 ****
      $ gnatlink -v -v ada_unit file1.o file2.o --LINK=./my_script
  
  
! * Using a non-GNU C++ compiler: The commands previously described can be
    used to insure that the C++ linker is used. Nonetheless, you need to add
    a few more parameters to the link command line, depending on the exception
    mechanism used.
  
!   If the ``setjmp`` / ``longjmp`` exception mechanism is used, only the paths
!   to the ``libgcc`` libraries are required:
  
    .. code-block:: sh
  
--- 3872,3884 ----
      $ gnatlink -v -v ada_unit file1.o file2.o --LINK=./my_script
  
  
! * Using a non-GNU C++ compiler: You can use the commands previously described
    used to insure that the C++ linker is used. Nonetheless, you need to add
    a few more parameters to the link command line, depending on the exception
    mechanism used.
  
!   If you are using the ``setjmp`` / ``longjmp`` exception mechanism, you need only
!   inclue the paths to the ``libgcc`` libraries:
  
    .. code-block:: sh
  
*************** considered:
*** 3912,3920 ****
  
    where CC is the name of the non-GNU C++ compiler.
  
!   If the "zero cost" exception mechanism is used, and the platform
    supports automatic registration of exception tables (e.g., Solaris),
!   paths to more objects are required:
  
    .. code-block:: sh
  
--- 3890,3898 ----
  
    where CC is the name of the non-GNU C++ compiler.
  
!   If you are using the "zero cost" exception mechanism and the platform
    supports automatic registration of exception tables (e.g., Solaris),
!   you need to include paths to more objects:
  
    .. code-block:: sh
  
*************** considered:
*** 3926,3935 ****
      $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
  
  
!   If the "zero cost exception" mechanism is used, and the platform
    doesn't support automatic registration of exception tables (e.g., HP-UX
!   or AIX), the simple approach described above will not work and
!   a pre-linking phase using GNAT will be necessary.
  
  
  Another alternative is to use the :command:`gprbuild` multi-language builder
--- 3904,3913 ----
      $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
  
  
!   If you are using the "zero cost exception" mechanism is used and the platform
    doesn't support automatic registration of exception tables (e.g., HP-UX
!   or AIX), the simple approach described above won't work and
!   a you will need to preform a pre-linking phase using GNAT.
  
  
  Another alternative is to use the :command:`gprbuild` multi-language builder
*************** A Simple Example
*** 3943,3954 ****
  
  The following example, provided as part of the GNAT examples, shows how
  to achieve procedural interfacing between Ada and C++ in both
! directions. The C++ class A has two methods. The first method is exported
  to Ada by the means of an extern C wrapper function. The second method
  calls an Ada subprogram. On the Ada side, the C++ calls are modelled by
  a limited record with a layout comparable to the C++ class. The Ada
  subprogram, in turn, calls the C++ method. So, starting from the C++
! main program, the process passes back and forth between the two
  languages.
  
  Here are the compilation commands:
--- 3921,3932 ----
  
  The following example, provided as part of the GNAT examples, shows how
  to achieve procedural interfacing between Ada and C++ in both
! directions. The C++ class ``A`` has two methods. The first method is exported
  to Ada by the means of an extern C wrapper function. The second method
  calls an Ada subprogram. On the Ada side, the C++ calls are modelled by
  a limited record with a layout comparable to the C++ class. The Ada
  subprogram, in turn, calls the C++ method. So, starting from the C++
! main program, execution passes back and forth between the two
  languages.
  
  Here are the compilation commands:
*************** Here are the corresponding sources:
*** 4071,4083 ****
  Interfacing with C++ constructors
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! In order to interface with C++ constructors GNAT provides the
  ``pragma CPP_Constructor`` (see the :title:`GNAT_Reference_Manual`
  for additional information).
! In this section we present some common uses of C++ constructors
  in mixed-languages programs in GNAT.
  
! Let us assume that we need to interface with the following
  C++ class:
  
  .. code-block:: cpp
--- 4049,4061 ----
  Interfacing with C++ constructors
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! To interface with C++ constructors GNAT provides the
  ``pragma CPP_Constructor`` (see the :title:`GNAT_Reference_Manual`
  for additional information).
! In this section, we present some common uses of C++ constructors
  in mixed-languages programs in GNAT.
  
! Let us assume we need to interface with the following
  C++ class:
  
  .. code-block:: cpp
*************** C++ class:
*** 4092,4098 ****
         Root(int v, int w);  // 2nd non-default constructor
       };
  
! For this purpose we can write the following package spec (further
  information on how to build this spec is available in
  :ref:`Interfacing_with_C++_at_the_Class_Level` and
  :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`).
--- 4070,4076 ----
         Root(int v, int w);  // 2nd non-default constructor
       };
  
! For this purpose, we can write the following package spec (further
  information on how to build this spec is available in
  :ref:`Interfacing_with_C++_at_the_Class_Level` and
  :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`).
*************** information on how to build this spec is
*** 4120,4145 ****
         pragma Cpp_Constructor (Constructor, "_ZN4RootC1Eii");
       end Pkg_Root;
  
! On the Ada side the constructor is represented by a function (whose
  name is arbitrary) that returns the classwide type corresponding to
  the imported C++ class. Although the constructor is described as a
! function, it is typically a procedure with an extra implicit argument
  (the object being initialized) at the implementation level. GNAT
  issues the appropriate call, whatever it is, to get the object
  properly initialized.
  
  Constructors can only appear in the following contexts:
  
! * On the right side of an initialization of an object of type ``T``.
! * On the right side of an initialization of a record component of type ``T``.
  * In an Ada 2005 limited aggregate.
  * In an Ada 2005 nested limited aggregate.
  * In an Ada 2005 limited aggregate that initializes an object built in
    place by an extended return statement.
  
  In a declaration of an object whose type is a class imported from C++,
! either the default C++ constructor is implicitly called by GNAT, or
! else the required C++ constructor must be explicitly called in the
  expression that initializes the object. For example:
  
  .. code-block:: ada
--- 4098,4123 ----
         pragma Cpp_Constructor (Constructor, "_ZN4RootC1Eii");
       end Pkg_Root;
  
! On the Ada side, the constructor is represented by a function (whose
  name is arbitrary) that returns the classwide type corresponding to
  the imported C++ class. Although the constructor is described as a
! function, it's typically a procedure with an extra implicit argument
  (the object being initialized) at the implementation level. GNAT
  issues the appropriate call, whatever it is, to get the object
  properly initialized.
  
  Constructors can only appear in the following contexts:
  
! * On the right side of an initialization of an object of type.
! * On the right side of an initialization of a record component of type.
  * In an Ada 2005 limited aggregate.
  * In an Ada 2005 nested limited aggregate.
  * In an Ada 2005 limited aggregate that initializes an object built in
    place by an extended return statement.
  
  In a declaration of an object whose type is a class imported from C++,
! either the default C++ constructor is implicitly called by GNAT or you must
! explicitly call the required C++ constructor in the
  expression that initializes the object. For example:
  
  .. code-block:: ada
*************** expression that initializes the object.
*** 4151,4162 ****
  
  The first two declarations are equivalent: in both cases the default C++
  constructor is invoked (in the former case the call to the constructor is
! implicit, and in the latter case the call is explicit in the object
  declaration). ``Obj3`` is initialized by the C++ non-default constructor
! that takes an integer argument, and ``Obj4`` is initialized by the
  non-default C++ constructor that takes two integers.
  
! Let us derive the imported C++ class in the Ada side. For example:
  
  .. code-block:: ada
  
--- 4129,4140 ----
  
  The first two declarations are equivalent: in both cases the default C++
  constructor is invoked (in the former case the call to the constructor is
! implicit and in the latter case the call is explicit in the object
  declaration). ``Obj3`` is initialized by the C++ non-default constructor
! that takes an integer argument and ``Obj4`` is initialized by the
  non-default C++ constructor that takes two integers.
  
! Let's derive the imported C++ class in the Ada side. For example:
  
  .. code-block:: ada
  
*************** Let us derive the imported C++ class in
*** 4164,4171 ****
          C_Value : Natural := 2009;
       end record;
  
! In this case the components DT inherited from the C++ side must be
! initialized by a C++ constructor, and the additional Ada components
  of type DT are initialized by GNAT. The initialization of such an
  object is done either by default, or by means of a function returning
  an aggregate of type DT, or by means of an extension aggregate.
--- 4142,4149 ----
          C_Value : Natural := 2009;
       end record;
  
! In this case, you must initialize the components ``DT`` inherited from
! the C++ side by a C++ constructor and the additional Ada components
  of type DT are initialized by GNAT. The initialization of such an
  object is done either by default, or by means of a function returning
  an aggregate of type DT, or by means of an extension aggregate.
*************** an aggregate of type DT, or by means of
*** 4178,4191 ****
  
  The declaration of ``Obj5`` invokes the default constructors: the
  C++ default constructor of the parent type takes care of the initialization
! of the components inherited from Root, and GNAT takes care of the default
  initialization of the additional Ada components of type DT (that is,
  ``C_Value`` is initialized to value 2009). The order of invocation of
  the constructors is consistent with the order of elaboration required by
  Ada and C++. That is, the constructor of the parent type is always called
  before the constructor of the derived type.
  
! Let us now consider a record that has components whose type is imported
  from C++. For example:
  
  .. code-block:: ada
--- 4156,4169 ----
  
  The declaration of ``Obj5`` invokes the default constructors: the
  C++ default constructor of the parent type takes care of the initialization
! of the components inherited from Root and GNAT takes care of the default
  initialization of the additional Ada components of type DT (that is,
  ``C_Value`` is initialized to value 2009). The order of invocation of
  the constructors is consistent with the order of elaboration required by
  Ada and C++. That is, the constructor of the parent type is always called
  before the constructor of the derived type.
  
! Let's now consider a record that has components whose type is imported
  from C++. For example:
  
  .. code-block:: ada
*************** from C++. For example:
*** 4200,4214 ****
          Data2 : Root := Constructor (D, 30);
       end record;
  
! The initialization of an object of type ``Rec2`` will call the
! non-default C++ constructors specified for the imported components.
! For example:
  
  .. code-block:: ada
  
       Obj8 : Rec2 (40);
  
! Using Ada 2005 we can use limited aggregates to initialize an object
  invoking C++ constructors that differ from those specified in the type
  declarations. For example:
  
--- 4178,4191 ----
          Data2 : Root := Constructor (D, 30);
       end record;
  
! The initialization of an object of type ``Rec2`` calls the non-default
! C++ constructors specified for the imported components.  For example:
  
  .. code-block:: ada
  
       Obj8 : Rec2 (40);
  
! Using Ada 2005, we can use limited aggregates to initialize an object
  invoking C++ constructors that differ from those specified in the type
  declarations. For example:
  
*************** declarations. For example:
*** 4219,4235 ****
                       others => <>);
  
  The above declaration uses an Ada 2005 limited aggregate to
! initialize ``Obj9``, and the C++ constructor that has two integer
  arguments is invoked to initialize the ``Data1`` component instead
  of the constructor specified in the declaration of type ``Rec1``. In
! Ada 2005 the box in the aggregate indicates that unspecified components
  are initialized using the expression (if any) available in the component
  declaration. That is, in this case discriminant ``D`` is initialized
  to value ``20``, ``Value`` is initialized to value 1000, and the
  non-default C++ constructor that handles two integers takes care of
  initializing component ``Data2`` with values ``20,30``.
  
! In Ada 2005 we can use the extended return statement to build the Ada
  equivalent to C++ non-default constructors. For example:
  
  .. code-block:: ada
--- 4196,4212 ----
                       others => <>);
  
  The above declaration uses an Ada 2005 limited aggregate to
! initialize ``Obj9`` and the C++ constructor that has two integer
  arguments is invoked to initialize the ``Data1`` component instead
  of the constructor specified in the declaration of type ``Rec1``. In
! Ada 2005, the box in the aggregate indicates that unspecified components
  are initialized using the expression (if any) available in the component
  declaration. That is, in this case discriminant ``D`` is initialized
  to value ``20``, ``Value`` is initialized to value 1000, and the
  non-default C++ constructor that handles two integers takes care of
  initializing component ``Data2`` with values ``20,30``.
  
! In Ada 2005, we can use the extended return statement to build the Ada
  equivalent to C++ non-default constructors. For example:
  
  .. code-block:: ada
*************** equivalent to C++ non-default constructo
*** 4245,4270 ****
          end record;
       end Constructor;
  
! In this example the extended return statement construct is used to
! build in place the returned object whose components are initialized
! by means of a limited aggregate. Any further action associated with
! the constructor can be placed inside the construct.
  
  .. _Interfacing_with_C++_at_the_Class_Level:
  
  Interfacing with C++ at the Class Level
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! In this section we demonstrate the GNAT features for interfacing with
  C++ by means of an example making use of Ada 2005 abstract interface
  types. This example consists of a classification of animals; classes
! have been used to model our main classification of animals, and
  interfaces provide support for the management of secondary
  classifications. We first demonstrate a case in which the types and
  constructors are defined on the C++ side and imported from the Ada
! side, and latter the reverse case.
  
! The root of our derivation will be the ``Animal`` class, with a
  single private attribute (the ``Age`` of the animal), a constructor,
  and two public primitives to set and get the value of this attribute.
  
--- 4222,4247 ----
          end record;
       end Constructor;
  
! In this example, we use the extended return statement construct to
! build in place the returned object whose components are initialized by
! means of a limited aggregate. We could also place any further action
! associated with the constructor inside the construct.
  
  .. _Interfacing_with_C++_at_the_Class_Level:
  
  Interfacing with C++ at the Class Level
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! In this section, we demonstrate the GNAT features for interfacing with
  C++ by means of an example making use of Ada 2005 abstract interface
  types. This example consists of a classification of animals; classes
! have been used to model our main classification of animals and
  interfaces provide support for the management of secondary
  classifications. We first demonstrate a case in which the types and
  constructors are defined on the C++ side and imported from the Ada
! side and then the reverse case.
  
! The root of our derivation is the ``Animal`` class, with a
  single private attribute (the ``Age`` of the animal), a constructor,
  and two public primitives to set and get the value of this attribute.
  
*************** and two public primitives to set and get
*** 4280,4286 ****
       };
  
  Abstract interface types are defined in C++ by means of classes with pure
! virtual functions and no data members. In our example we will use two
  interfaces that provide support for the common management of ``Carnivore``
  and ``Domestic`` animals:
  
--- 4257,4263 ----
       };
  
  Abstract interface types are defined in C++ by means of classes with pure
! virtual functions and no data members. In our example we use two
  interfaces that provide support for the common management of ``Carnivore``
  and ``Domestic`` animals:
  
*************** both Carnivore and Domestic, that is:
*** 4312,4318 ****
          char *Owner;
       };
  
! In the following examples we will assume that the previous declarations are
  located in a file named :file:`animals.h`. The following package demonstrates
  how to import these C++ declarations from the Ada side:
  
--- 4289,4295 ----
          char *Owner;
       };
  
! In the following examples we assume that the previous declarations are
  located in a file named :file:`animals.h`. The following package demonstrates
  how to import these C++ declarations from the Ada side:
  
*************** how to import these C++ declarations fro
*** 4363,4395 ****
         pragma Import (CPP, New_Dog, "_ZN3DogC2Ev");
       end Animals;
  
! Thanks to the compatibility between GNAT run-time structures and the C++ ABI,
! interfacing with these C++ classes is easy. The only requirement is that all
! the primitives and components must be declared exactly in the same order in
! the two languages.
  
! Regarding the abstract interfaces, we must indicate to the GNAT compiler by
! means of a ``pragma Convention (C_Plus_Plus)``, the convention used to pass
! the arguments to the called primitives will be the same as for C++. For the
! imported classes we use ``pragma Import`` with convention ``C_Plus_Plus``
! to indicate that they have been defined on the C++ side; this is required
! because the dispatch table associated with these tagged types will be built
! in the C++ side and therefore will not contain the predefined Ada primitives
! which Ada would otherwise expect.
  
! As the reader can see there is no need to indicate the C++ mangled names
  associated with each subprogram because it is assumed that all the calls to
  these primitives will be dispatching calls. The only exception is the
! constructor, which must be registered with the compiler by means of
! ``pragma CPP_Constructor`` and needs to provide its associated C++
  mangled name because the Ada compiler generates direct calls to it.
  
! With the above packages we can now declare objects of type Dog on the Ada side
! and dispatch calls to the corresponding subprograms on the C++ side. We can
! also extend the tagged type Dog with further fields and primitives, and
! override some of its C++ primitives on the Ada side. For example, here we have
! a type derivation defined on the Ada side that inherits all the dispatching
! primitives of the ancestor from the C++ side.
  
  .. code-block:: ada
  
--- 4340,4374 ----
         pragma Import (CPP, New_Dog, "_ZN3DogC2Ev");
       end Animals;
  
! Thanks to the compatibility between GNAT run-time structures and the
! C++ ABI, interfacing with these C++ classes is easy. The only
! requirement is that you must declare all the primitives and components
! exactly in the same order in the two languages.
  
! Regarding the abstract interfaces, we must indicate to the GNAT
! compiler, by means of a ``pragma Convention (C_Plus_Plus)``, that the
! convention used to pass the arguments to the called primitives will be
! the same as for C++. For the imported classes, we use ``pragma
! Import`` with convention ``C_Plus_Plus`` to indicate they have been
! defined on the C++ side; this is required because the dispatch table
! associated with these tagged types will be built in the C++ side and
! therefore will not contain the predefined Ada primitives which Ada
! would otherwise expect.
  
! As the reader can see, there is no need to indicate the C++ mangled names
  associated with each subprogram because it is assumed that all the calls to
  these primitives will be dispatching calls. The only exception is the
! constructor, which we must register with the compiler by means of
! ``pragma CPP_Constructor`` and we need to provide its associated C++
  mangled name because the Ada compiler generates direct calls to it.
  
! With the above packages, we can now declare objects of type ``Dog`` on
! the Ada side and dispatch calls to the corresponding subprograms on
! the C++ side. We can also extend the tagged type ``Dog`` with further
! fields and primitives and override some of its C++ primitives on the
! Ada side. For example, here we have a type derivation defined on the
! Ada side that inherits all the dispatching primitives of the ancestor
! from the C++ side.
  
  .. code-block:: ada
  
*************** primitives of the ancestor from the C++
*** 4399,4409 ****
         function Vaccination_Expired (A : Vaccinated_Dog) return Boolean;
       end Vaccinated_Animals;
  
! It is important to note that, because of the ABI compatibility, the programmer
! does not need to add any further information to indicate either the object
  layout or the dispatch table entry associated with each dispatching operation.
  
! Now let us define all the types and constructors on the Ada side and export
  them to C++, using the same hierarchy of our previous example:
  
  .. code-block:: ada
--- 4378,4388 ----
         function Vaccination_Expired (A : Vaccinated_Dog) return Boolean;
       end Vaccinated_Animals;
  
! It is important to note that, because of the ABI compatibility, we
! don't need to add any further information to indicate either the object
  layout or the dispatch table entry associated with each dispatching operation.
  
! Now let's define all the types and constructors on the Ada side and export
  them to C++, using the same hierarchy of our previous example:
  
  .. code-block:: ada
*************** them to C++, using the same hierarchy of
*** 4453,4459 ****
       end Animals;
  
  Compared with our previous example the only differences are the use of
! ``pragma Convention`` (instead of ``pragma Import``), and the use of
  ``pragma Export`` to indicate to the GNAT compiler that the primitives will
  be available to C++. Thanks to the ABI compatibility, on the C++ side there is
  nothing else to be done; as explained above, the only requirement is that all
--- 4432,4438 ----
       end Animals;
  
  Compared with our previous example the only differences are the use of
! ``pragma Convention`` (instead of ``pragma Import``) and the use of
  ``pragma Export`` to indicate to the GNAT compiler that the primitives will
  be available to C++. Thanks to the ABI compatibility, on the C++ side there is
  nothing else to be done; as explained above, the only requirement is that all
*************** finalizing the Ada run-time system along
*** 4501,4522 ****
  Partition-Wide Settings
  -----------------------
  
! When building a mixed-language application it is important to be aware that
  Ada enforces some partition-wide settings that may implicitly impact the
  behavior of the other languages.
  
! This is the case of certain signals that are reserved to the
  implementation to implement proper Ada semantics (such as the behavior
  of ``abort`` statements).
- 
  It means that the Ada part of the application may override signal handlers
  that were previously installed by either the system or by other user code.
  
! If your application requires that either system or user signals be preserved
! then you need to instruct the Ada part not to install its own signal handler.
! This is done using ``pragma Interrupt_State`` that provides a general
  mechanism for overriding such uses of interrupts.
  
  The set of interrupts for which the Ada run-time library sets a specific signal
  handler is the following:
  
--- 4480,4503 ----
  Partition-Wide Settings
  -----------------------
  
! When building a mixed-language application, you must be aware that
  Ada enforces some partition-wide settings that may implicitly impact the
  behavior of the other languages.
  
! This is the case for certain signals that are reserved to the
  implementation to implement proper Ada semantics (such as the behavior
  of ``abort`` statements).
  It means that the Ada part of the application may override signal handlers
  that were previously installed by either the system or by other user code.
  
! If your application requires that either system or user signals be preserved,
! you need to instruct the Ada part not to install its own signal handler.
! You do this using ``pragma Interrupt_State`` that provides a general
  mechanism for overriding such uses of interrupts.
  
+ Additionally, you can use pragma ``Interrupts_System_By_Default`` to default
+ all interrupts to System.
+ 
  The set of interrupts for which the Ada run-time library sets a specific signal
  handler is the following:
  
*************** handler is the following:
*** 4526,4534 ****
  * Ada.Interrupts.Names.SIGILL
  * Ada.Interrupts.Names.SIGABRT
  
! The run-time library can be instructed not to install its signal handler for a
! particular signal by using the configuration pragma ``Interrupt_State`` in the
! Ada code. For example:
  
  .. code-block:: ada
  
--- 4507,4515 ----
  * Ada.Interrupts.Names.SIGILL
  * Ada.Interrupts.Names.SIGABRT
  
! You can instruct the run-time library not to install its signal
! handler for a particular signal by using the configuration pragma
! ``Interrupt_State`` in the Ada code. For example:
  
  .. code-block:: ada
  
*************** Generating Ada Bindings for C and C++ he
*** 4552,4564 ****
  .. index:: C headers (binding generation)
  .. index:: C++ headers (binding generation)
  
! GNAT includes a binding generator for C and C++ headers which is
  intended to do 95% of the tedious work of generating Ada specs from C
  or C++ header files.
  
! Note that this capability is not intended to generate 100% correct Ada specs,
! and will is some cases require manual adjustments, although it can often
! be used out of the box in practice.
  
  Some of the known limitations include:
  
--- 4533,4545 ----
  .. index:: C headers (binding generation)
  .. index:: C++ headers (binding generation)
  
! GNAT includes a binding generator for C and C++ headers, which is
  intended to do 95% of the tedious work of generating Ada specs from C
  or C++ header files.
  
! This capability is not intended to generate 100% correct Ada specs and
! it will in some cases require you to make manual adjustments, although
! it can often be used out of the box in practice.
  
  Some of the known limitations include:
  
*************** Some of the known limitations include:
*** 4566,4577 ****
    constants. Function macros (macros with arguments) are partially translated
    as comments, to be completed manually if needed.
  * some extensions (e.g. vector types) are not supported
! * pointers to pointers are mapped to System.Address
! * identifiers with identical name (except casing) may generate compilation
!   errors (e.g. ``shm_get`` vs ``SHM_GET``).
  
  The code is generated using Ada 2012 syntax, which makes it easier to interface
! with other languages. In most cases you can still use the generated binding
  even if your code is compiled using earlier versions of Ada (e.g. ``-gnat95``).
  
  .. _Running_the_binding_generator:
--- 4547,4558 ----
    constants. Function macros (macros with arguments) are partially translated
    as comments, to be completed manually if needed.
  * some extensions (e.g. vector types) are not supported
! * pointers to pointers are mapped to ``System.Address``
! * identifiers with names that are identical except for casing may generate
!   compilation errors (e.g. ``shm_get`` vs ``SHM_GET``).
  
  The code is generated using Ada 2012 syntax, which makes it easier to interface
! with other languages. In most cases, you can still use the generated binding
  even if your code is compiled using earlier versions of Ada (e.g. ``-gnat95``).
  
  .. _Running_the_binding_generator:
*************** even if your code is compiled using earl
*** 4579,4587 ****
  Running the Binding Generator
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The binding generator is part of the ``gcc`` compiler and can be
! invoked via the :switch:`-fdump-ada-spec` switch, which will generate Ada
! spec files for the header files specified on the command line, and all
  header files needed by these files transitively. For example:
  
  .. code-block:: sh
--- 4560,4568 ----
  Running the Binding Generator
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! The binding generator is part of the ``gcc`` compiler and you can
! invoke it via the :switch:`-fdump-ada-spec` switch, which generates Ada
! spec files for the header files specified on the command line and all
  header files needed by these files transitively. For example:
  
  .. code-block:: sh
*************** header files needed by these files trans
*** 4589,4605 ****
        $ gcc -c -fdump-ada-spec -C /usr/include/time.h
        $ gcc -c *.ads
  
! will generate, under GNU/Linux, the following files: :file:`time_h.ads`,
  :file:`bits_time_h.ads`, :file:`stddef_h.ads`, :file:`bits_types_h.ads` which
! correspond to the files :file:`/usr/include/time.h`,
! :file:`/usr/include/bits/time.h`, etc..., and then compile these Ada specs.
! That is to say, the name of the Ada specs is in keeping with the relative path
  under :file:`/usr/include/` of the header files. This behavior is specific to
  paths ending with :file:`/include/`; in all the other cases, the name of the
  Ada specs is derived from the simple name of the header files instead.
  
  The :switch:`-C` switch tells ``gcc`` to extract comments from headers,
! and will attempt to generate corresponding Ada comments.
  
  If you want to generate a single Ada file and not the transitive closure, you
  can use instead the :switch:`-fdump-ada-spec-slim` switch.
--- 4570,4586 ----
        $ gcc -c -fdump-ada-spec -C /usr/include/time.h
        $ gcc -c *.ads
  
! generates, under GNU/Linux, the following files: :file:`time_h.ads`,
  :file:`bits_time_h.ads`, :file:`stddef_h.ads`, :file:`bits_types_h.ads` which
! correspond to the files :file:`/usr/include/time.h`, and
! :file:`/usr/include/bits/time.h` and then compile these Ada specs.
! The name of the Ada specs is consistent with the relative path
  under :file:`/usr/include/` of the header files. This behavior is specific to
  paths ending with :file:`/include/`; in all the other cases, the name of the
  Ada specs is derived from the simple name of the header files instead.
  
  The :switch:`-C` switch tells ``gcc`` to extract comments from headers,
! and attempt to generate corresponding Ada comments.
  
  If you want to generate a single Ada file and not the transitive closure, you
  can use instead the :switch:`-fdump-ada-spec-slim` switch.
*************** is for example the case with :file:`Xlib
*** 4618,4628 ****
  
        $ gcc -c -fdump-ada-spec -DXLIB_ILLEGAL_ACCESS -C /usr/include/X11/Xlib.h
  
! The above will generate more complete bindings than a straight call without
  the :switch:`-DXLIB_ILLEGAL_ACCESS` switch.
  
! In other cases, it is not possible to parse a header file in a stand-alone
! manner, because other include files need to be included first. In this
  case, the solution is to create a small header file including the needed
  ``#include`` and possible ``#define`` directives. For example, to
  generate Ada bindings for :file:`readline/readline.h`, you need to first
--- 4599,4609 ----
  
        $ gcc -c -fdump-ada-spec -DXLIB_ILLEGAL_ACCESS -C /usr/include/X11/Xlib.h
  
! The above generates more complete bindings than a call without
  the :switch:`-DXLIB_ILLEGAL_ACCESS` switch.
  
! In other cases, you can't parse a header file in a stand-alone
! manner because other include files need to be included first. In this
  case, the solution is to create a small header file including the needed
  ``#include`` and possible ``#define`` directives. For example, to
  generate Ada bindings for :file:`readline/readline.h`, you need to first
*************** and then generate Ada bindings from this
*** 4646,4660 ****
  Generating Bindings for C++ Headers
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Generating bindings for C++ headers is done using the same options, always
! with the *g++* compiler. Note that generating Ada spec from C++ headers is a
  much more complex job and support for C++ headers is much more limited that
  support for C headers. As a result, you will need to modify the resulting
  bindings by hand more extensively when using C++ headers.
  
! In this mode, C++ classes will be mapped to Ada tagged types, constructors
! will be mapped using the ``CPP_Constructor`` pragma, and when possible,
! multiple inheritance of abstract classes will be mapped to Ada interfaces
  (see the *Interfacing to C++* section in the :title:`GNAT Reference Manual`
  for additional information on interfacing to C++).
  
--- 4627,4641 ----
  Generating Bindings for C++ Headers
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Generating bindings for C++ headers is done using the same options, but
! with the ``g++`` compiler. Note that generating Ada spec from C++ headers is a
  much more complex job and support for C++ headers is much more limited that
  support for C headers. As a result, you will need to modify the resulting
  bindings by hand more extensively when using C++ headers.
  
! In this mode, C++ classes are mapped to Ada tagged types, constructors
! are mapped using the ``CPP_Constructor`` pragma, and when possible,
! multiple inheritance of abstract classes are mapped to Ada interfaces
  (see the *Interfacing to C++* section in the :title:`GNAT Reference Manual`
  for additional information on interfacing to C++).
  
*************** Switches
*** 4757,4764 ****
  .. index:: -fdump-ada-spec-slim (gcc)
  
  :switch:`-fdump-ada-spec-slim`
!   Generate Ada spec files for the header files specified on the command line
!   only.
  
  .. index:: -fada-spec-parent (gcc)
  
--- 4738,4745 ----
  .. index:: -fdump-ada-spec-slim (gcc)
  
  :switch:`-fdump-ada-spec-slim`
!   Only generate Ada spec files for the header files specified on the
!   command line.
  
  .. index:: -fada-spec-parent (gcc)
  
*************** Generating C Headers for Ada Specificati
*** 4779,4787 ****
  .. index:: Binding generation (for Ada specs)
  .. index:: C headers (binding generation)
  
! GNAT includes a C header generator for Ada specifications which supports
! Ada types that have a direct mapping to C types. This includes in particular
! support for:
  
  * Scalar types
  * Constrained arrays
--- 4760,4768 ----
  .. index:: Binding generation (for Ada specs)
  .. index:: C headers (binding generation)
  
! GNAT includes a C header generator for Ada specifications that
! supports Ada types that have a direct mapping to C types. This
! specifically includes support for:
  
  * Scalar types
  * Constrained arrays
*************** Running the C Header Generator
*** 4795,4812 ****
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  The C header generator is part of the GNAT compiler and can be invoked via
! the :switch:`-gnatceg` combination of switches, which will generate a :file:`.h`
  file corresponding to the given input file (Ada spec or body). Note that
! only spec files are processed in any case, so giving a spec or a body file
  as input is equivalent. For example:
  
  .. code-block:: sh
  
     $ gcc -c -gnatceg pack1.ads
  
! will generate a self-contained file called :file:`pack1.h` including
! common definitions from the Ada Standard package, followed by the
! definitions included in :file:`pack1.ads`, as well as all the other units
  withed by this file.
  
  For instance, given the following Ada files:
--- 4776,4793 ----
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  The C header generator is part of the GNAT compiler and can be invoked via
! the :switch:`-gnatceg` switch, which generates a :file:`.h`
  file corresponding to the given input file (Ada spec or body). Note that
! only spec files are processed, so giving a spec or a body file
  as input is equivalent. For example:
  
  .. code-block:: sh
  
     $ gcc -c -gnatceg pack1.ads
  
! generates a self-contained file called :file:`pack1.h` including
! common definitions from the Ada Standard package followed by the
! definitions included in :file:`pack1.ads` as well as all the other units
  withed by this file.
  
  For instance, given the following Ada files:
*************** For instance, given the following Ada fi
*** 4832,4838 ****
        procedure Proc2 (R : in out Rec);
     end Pack1;
  
! The above ``gcc`` command will generate the following :file:`pack1.h` file:
  
  .. code-block:: c
  
--- 4813,4819 ----
        procedure Proc2 (R : in out Rec);
     end Pack1;
  
! The above ``gcc`` command generates the following :file:`pack1.h` file:
  
  .. code-block:: c
  
*************** GNAT and Other Compilation Models
*** 4863,4869 ****
  =================================
  
  This section compares the GNAT model with the approaches taken in
! other environments, first the C/C++ model and then the mechanism that
  has been used in other Ada systems, in particular those traditionally
  used for Ada 83.
  
--- 4844,4850 ----
  =================================
  
  This section compares the GNAT model with the approaches taken in
! other environments: first the C/C++ model and then the mechanism that
  has been used in other Ada systems, in particular those traditionally
  used for Ada 83.
  
*************** used for Ada 83.
*** 4872,4882 ****
  Comparison between GNAT and C/C++ Compilation Models
  ----------------------------------------------------
  
! The GNAT model of compilation is close to the C and C++ models. You can
  think of Ada specs as corresponding to header files in C. As in C, you
  don't need to compile specs; they are compiled when they are used. The
! Ada |with| is similar in effect to the ``#include`` of a C
! header.
  
  One notable difference is that, in Ada, you may compile specs separately
  to check them for semantic and syntactic accuracy. This is not always
--- 4853,4862 ----
  Comparison between GNAT and C/C++ Compilation Models
  ----------------------------------------------------
  
! The GNAT compilation model is close to the C and C++ models. You can
  think of Ada specs as corresponding to header files in C. As in C, you
  don't need to compile specs; they are compiled when they are used. The
! Ada |with| is similar in effect to the ``#include`` of a C header.
  
  One notable difference is that, in Ada, you may compile specs separately
  to check them for semantic and syntactic accuracy. This is not always
*************** less specific syntactic or semantic rule
*** 4886,4892 ****
  The other major difference is the requirement for running the binder,
  which performs two important functions. First, it checks for
  consistency. In C or C++, the only defense against assembling
! inconsistent programs lies outside the compiler, in a makefile, for
  example. The binder satisfies the Ada requirement that it be impossible
  to construct an inconsistent program when the compiler is used in normal
  mode.
--- 4866,4872 ----
  The other major difference is the requirement for running the binder,
  which performs two important functions. First, it checks for
  consistency. In C or C++, the only defense against assembling
! inconsistent programs lies outside the compiler, in a :file:`makefile`, for
  example. The binder satisfies the Ada requirement that it be impossible
  to construct an inconsistent program when the compiler is used in normal
  mode.
*************** model, as described in the Ada Reference
*** 4915,4923 ****
  In GNAT, there is no 'library' in the normal sense. Instead, the set of
  source files themselves acts as the library. Compiling Ada programs does
  not generate any centralized information, but rather an object file and
! a ALI file, which are of interest only to the binder and linker.
  In a traditional system, the compiler reads information not only from
! the source file being compiled, but also from the centralized library.
  This means that the effect of a compilation depends on what has been
  previously compiled. In particular:
  
--- 4895,4903 ----
  In GNAT, there is no 'library' in the normal sense. Instead, the set of
  source files themselves acts as the library. Compiling Ada programs does
  not generate any centralized information, but rather an object file and
! a :file:`.ali` file, which are of interest only to the binder and linker.
  In a traditional system, the compiler reads information not only from
! the source file being compiled but also from the centralized library.
  This means that the effect of a compilation depends on what has been
  previously compiled. In particular:
  
*************** files can affect the results of a compil
*** 4948,4954 ****
    depended on the source file being modified.
  
  The most important result of these differences is that order of compilation
! is never significant in GNAT. There is no situation in which one is
  required to do one compilation before another. What shows up as order of
  compilation requirements in the traditional Ada library becomes, in
  GNAT, simple source dependencies; in other words, there is only a set
--- 4928,4934 ----
    depended on the source file being modified.
  
  The most important result of these differences is that order of compilation
! is never significant in GNAT. There is no situation in which you are
  required to do one compilation before another. What shows up as order of
  compilation requirements in the traditional Ada library becomes, in
  GNAT, simple source dependencies; in other words, there is only a set
*************** used with tools designed for other langu
*** 4970,4984 ****
  Using Other Utility Programs with GNAT
  --------------------------------------
  
! The object files generated by GNAT are in standard system format and in
! particular the debugging information uses this format. This means
  programs generated by GNAT can be used with existing utilities that
  depend on these formats.
  
  In general, any utility program that works with C will also often work with
  Ada programs generated by GNAT. This includes software utilities such as
! gprof (a profiling program), gdb (the FSF debugger), and utilities such
! as Purify.
  
  
  .. _The_External_Symbol_Naming_Scheme_of_GNAT:
--- 4950,4964 ----
  Using Other Utility Programs with GNAT
  --------------------------------------
  
! The object files generated by GNAT are in standard system format and, in
! particular, the debugging information uses this format. This means
  programs generated by GNAT can be used with existing utilities that
  depend on these formats.
  
  In general, any utility program that works with C will also often work with
  Ada programs generated by GNAT. This includes software utilities such as
! ``gprof`` (a profiling program), ``gdb`` (the FSF debugger), and utilities such
! as ``Purify``.
  
  
  .. _The_External_Symbol_Naming_Scheme_of_GNAT:
*************** as Purify.
*** 4986,4997 ****
  The External Symbol Naming Scheme of GNAT
  -----------------------------------------
  
! In order to interpret the output from GNAT, when using tools that are
! originally intended for use with other languages, it is useful to
  understand the conventions used to generate link names from the Ada
  entity names.
  
! All link names are in all lowercase letters. With the exception of library
  procedure names, the mechanism used is simply to use the full expanded
  Ada name with dots replaced by double underscores. For example, suppose
  we have the following package spec:
--- 4966,4977 ----
  The External Symbol Naming Scheme of GNAT
  -----------------------------------------
  
! To interpret the output from GNAT when using tools that are
! originally intended for use with other languages, you need to
  understand the conventions used to generate link names from the Ada
  entity names.
  
! All link names are in all lowercase. With the exception of library
  procedure names, the mechanism used is simply to use the full expanded
  Ada name with dots replaced by double underscores. For example, suppose
  we have the following package spec:
*************** we have the following package spec:
*** 5006,5012 ****
  
  The variable ``MN`` has a full expanded Ada name of ``QRS.MN``, so
  the corresponding link name is ``qrs__mn``.
! Of course if a ``pragma Export`` is used this may be overridden:
  
  .. code-block:: ada
  
--- 4986,4992 ----
  
  The variable ``MN`` has a full expanded Ada name of ``QRS.MN``, so
  the corresponding link name is ``qrs__mn``.
! Of course if you use a pragma ``Export``, you maye override this:
  
  .. code-block:: ada
  
*************** arises between the required name ``_main
*** 5029,5039 ****
  and the name we would otherwise assign to an Ada library level procedure
  called ``Main`` (which might well not be the main program).
  
! To avoid this ambiguity, we attach the prefix ``_ada_`` to such
  names. So if we have a library level procedure such as:
  
  .. code-block:: ada
  
       procedure Hello (S : String);
  
! the external name of this procedure will be ``_ada_hello``.
--- 5009,5019 ----
  and the name we would otherwise assign to an Ada library level procedure
  called ``Main`` (which might well not be the main program).
  
! To avoid this ambiguity, GNAT adds the prefix ``_ada_`` to such
  names. So if we have a library level procedure such as:
  
  .. code-block:: ada
  
       procedure Hello (S : String);
  
! the external name of this procedure is ``_ada_hello``.
diff -Nrcpad gcc-14.2.0/gcc/ada/einfo-utils.adb gcc-15.1.0/gcc/ada/einfo-utils.adb
*** gcc-14.2.0/gcc/ada/einfo-utils.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/einfo-utils.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Einfo.Utils is
*** 664,675 ****
  
     function Base_Type (Id : E) return E is
     begin
!       if Is_Base_Type (Id) then
!          return Id;
!       else
!          pragma Assert (Is_Type (Id));
!          return Etype (Id);
!       end if;
     end Base_Type;
  
     ----------------------
--- 664,685 ----
  
     function Base_Type (Id : E) return E is
     begin
!       return Result : E do
!          if Is_Base_Type (Id) then
!             Result := Id;
!          else
!             pragma Assert (Is_Type (Id));
!             Result := Etype (Id);
!             if False then
!                pragma Assert (Is_Base_Type (Result));
!                --  ???It seems like Base_Type should return a base type,
!                --  but this assertion is disabled because it is not always
!                --  true. Hence the need to say "Base_Type (Base_Type (...))"
!                --  in some cases; Base_Type is not idempotent as one might
!                --  expect.
!             end if;
!          end if;
!       end return;
     end Base_Type;
  
     ----------------------
*************** package body Einfo.Utils is
*** 944,950 ****
     function Get_Class_Wide_Pragma
       (E  : Entity_Id;
        Id : Pragma_Id) return Node_Id
!     is
        Item  : Node_Id;
        Items : Node_Id;
  
--- 954,960 ----
     function Get_Class_Wide_Pragma
       (E  : Entity_Id;
        Id : Pragma_Id) return Node_Id
!    is
        Item  : Node_Id;
        Items : Node_Id;
  
*************** package body Einfo.Utils is
*** 1026,1031 ****
--- 1036,1042 ----
                    Id = Pragma_Always_Terminates         or else
                    Id = Pragma_Contract_Cases            or else
                    Id = Pragma_Exceptional_Cases         or else
+                   Id = Pragma_Exit_Cases                or else
                    Id = Pragma_Subprogram_Variant        or else
                    Id = Pragma_Test_Case;
  
*************** package body Einfo.Utils is
*** 1557,1571 ****
                      Has_Option (Id, Name_Synchronous));
     end Is_External_State;
  
-    ------------------
-    -- Is_Finalizer --
-    ------------------
- 
-    function Is_Finalizer (Id : E) return B is
-    begin
-       return Ekind (Id) = E_Procedure and then Chars (Id) = Name_uFinalizer;
-    end Is_Finalizer;
- 
     ----------------------
     -- Is_Full_Access --
     ----------------------
--- 1568,1573 ----
*************** package body Einfo.Utils is
*** 1649,1668 ****
            and then Is_Protected_Type (Corresponding_Concurrent_Type (Id));
     end Is_Protected_Record_Type;
  
-    -------------------------------------
-    -- Is_Relaxed_Initialization_State --
-    -------------------------------------
- 
-    function Is_Relaxed_Initialization_State (Id : E) return B is
-    begin
-       --  To qualify, the abstract state must appear with simple option
-       --  "Relaxed_Initialization" (SPARK RM 6.10).
- 
-       return
-         Ekind (Id) = E_Abstract_State
-           and then Has_Option (Id, Name_Relaxed_Initialization);
-    end Is_Relaxed_Initialization_State;
- 
     --------------------------------
     -- Is_Standard_Character_Type --
     --------------------------------
--- 1651,1656 ----
*************** package body Einfo.Utils is
*** 2032,2041 ****
     ----------------
  
     function Next_Index (Id : N) return Node_Id is
-    begin
        pragma Assert (Nkind (Id) in N_Is_Index);
!       pragma Assert (No (Next (Id)) or else Nkind (Next (Id)) in N_Is_Index);
!       return Next (Id);
     end Next_Index;
  
     ------------------
--- 2020,2030 ----
     ----------------
  
     function Next_Index (Id : N) return Node_Id is
        pragma Assert (Nkind (Id) in N_Is_Index);
!       Result : constant Node_Id := Next (Id);
!       pragma Assert (No (Result) or else Nkind (Result) in N_Is_Index);
!    begin
!       return Result;
     end Next_Index;
  
     ------------------
*************** package body Einfo.Utils is
*** 2425,2432 ****
     begin
        if Is_Concurrent_Type (Id) then
           if Present (Corresponding_Record_Type (Id)) then
!             return Direct_Primitive_Operations
!               (Corresponding_Record_Type (Id));
  
           --  When expansion is disabled, the corresponding record type is
           --  absent, but if this is a tagged type with ancestors, or if the
--- 2414,2421 ----
     begin
        if Is_Concurrent_Type (Id) then
           if Present (Corresponding_Record_Type (Id)) then
!             return
!               Direct_Primitive_Operations (Corresponding_Record_Type (Id));
  
           --  When expansion is disabled, the corresponding record type is
           --  absent, but if this is a tagged type with ancestors, or if the
*************** package body Einfo.Utils is
*** 3185,3194 ****
              end;
  
           when Access_Kind =>
!                Write_Attribute
!                  ("   Directly Designated Type ",
!                   Directly_Designated_Type (Id));
!                Write_Eol;
  
           when Overloadable_Kind =>
              if Present (Homonym (Id)) then
--- 3174,3183 ----
              end;
  
           when Access_Kind =>
!             Write_Attribute
!               ("   Directly Designated Type ",
!                Directly_Designated_Type (Id));
!             Write_Eol;
  
           when Overloadable_Kind =>
              if Present (Homonym (Id)) then
diff -Nrcpad gcc-14.2.0/gcc/ada/einfo-utils.ads gcc-15.1.0/gcc/ada/einfo-utils.ads
*** gcc-14.2.0/gcc/ada/einfo-utils.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/einfo-utils.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Einfo.Utils is
*** 183,190 ****
     function Has_Null_Abstract_State (Id : E) return B;
     function Has_Null_Visible_Refinement (Id : E) return B;
     function Implementation_Base_Type (Id : E) return E;
-    function Is_Base_Type (Id : E) return B with Inline;
-    --  Note that Is_Base_Type returns True for nontypes
     function Is_Boolean_Type (Id : E) return B with Inline;
     function Is_Constant_Object (Id : E) return B with Inline;
     function Is_Controlled (Id : E) return B with Inline;
--- 183,188 ----
*************** package Einfo.Utils is
*** 192,198 ****
     function Is_Dynamic_Scope (Id : E) return B;
     function Is_Elaboration_Target (Id : E) return B;
     function Is_External_State (Id : E) return B;
-    function Is_Finalizer (Id : E) return B with Inline;
     function Is_Full_Access (Id : E) return B with Inline;
     function Is_Null_State (Id : E) return B;
     function Is_Package_Or_Generic_Package (Id : E) return B with Inline;
--- 190,195 ----
*************** package Einfo.Utils is
*** 201,207 ****
     function Is_Protected_Component (Id : E) return B with Inline;
     function Is_Protected_Interface (Id : E) return B;
     function Is_Protected_Record_Type (Id : E) return B with Inline;
-    function Is_Relaxed_Initialization_State (Id : E) return B;
     function Is_Standard_Character_Type (Id : E) return B;
     function Is_Standard_String_Type (Id : E) return B;
     function Is_String_Type (Id : E) return B with Inline;
--- 198,203 ----
*************** package Einfo.Utils is
*** 451,456 ****
--- 447,454 ----
     --    Effective_Reads
     --    Effective_Writes
     --    Exceptional_Cases
+    --    Exit_Cases
+    --    Extensions_Visible
     --    Global
     --    Initial_Condition
     --    Initializes
*************** package Einfo.Utils is
*** 505,510 ****
--- 503,514 ----
     --  is the name of a class_wide type whose root is incomplete, return the
     --  corresponding full declaration, else return T itself.
  
+    function Is_Base_Type (Id : E) return B with Inline;
+    --  Return True for a type entity and False for a subtype entity. Note that
+    --  this returns True for nontypes.
+ 
+    --  WARNING: There is a matching C declaration of this subprogram in fe.h
+ 
     function Is_Entity_Name (N : Node_Id) return Boolean with Inline;
     --  Test if the node N is the name of an entity (i.e. is an identifier,
     --  expanded name, or an attribute reference that returns an entity).
diff -Nrcpad gcc-14.2.0/gcc/ada/einfo.adb gcc-15.1.0/gcc/ada/einfo.adb
*** gcc-14.2.0/gcc/ada/einfo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/einfo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/einfo.ads gcc-15.1.0/gcc/ada/einfo.ads
*** gcc-14.2.0/gcc/ada/einfo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/einfo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Einfo is
*** 251,265 ****
  --  kinds of entities. In the latter case the attribute should only be set or
  --  accessed if the Ekind field indicates an appropriate entity.
  
! --  There are two kinds of attributes that apply to entities, stored and
! --  synthesized. Stored attributes correspond to a field or flag in the entity
! --  itself. Such attributes are identified in the table below by giving the
! --  field or flag in the attribute that is used to hold the attribute value.
! --  Synthesized attributes are not stored directly, but are rather computed as
! --  needed from other attributes, or from information in the tree. These are
! --  marked "synthesized" in the table below. The stored attributes have both
! --  access functions and set procedures to set the corresponding values, while
! --  synthesized attributes have only access functions.
  
  --  Note: in the case of Node, Uint, or Elist fields, there are cases where the
  --  same physical field is used for different purposes in different entities,
--- 251,262 ----
  --  kinds of entities. In the latter case the attribute should only be set or
  --  accessed if the Ekind field indicates an appropriate entity.
  
! --  Attributes that apply to entities are either "stored" or "synthesized".
! --  Stored attributes are stored as fields in the entity node, and have
! --  automatically-generated access functions and Set_... procedures.
! --  Synthesized attributes are marked "(synthesized)" in the documentation
! --  below, and are computed as needed; these have only (hand-written) access
! --  functions.
  
  --  Note: in the case of Node, Uint, or Elist fields, there are cases where the
  --  same physical field is used for different purposes in different entities,
*************** package Einfo is
*** 426,440 ****
  --       definition clause with an (obsolescent) mod clause is converted
  --       into an attribute definition clause for this purpose.
  
! --    Anonymous_Designated_Type
! --       Defined in variables which represent anonymous finalization masters.
! --       Contains the designated type which is being serviced by the master.
! 
! --    Anonymous_Masters
  --       Defined in packages, subprograms, and subprogram bodies. Contains a
! --       list of anonymous finalization masters declared within the related
! --       unit. The list acts as a mapping between a master and a designated
! --       type.
  
  --    Anonymous_Object
  --       Present in protected and task type entities. Contains the entity of
--- 423,436 ----
  --       definition clause with an (obsolescent) mod clause is converted
  --       into an attribute definition clause for this purpose.
  
! --    Anonymous_Collections
  --       Defined in packages, subprograms, and subprogram bodies. Contains a
! --       list of anonymous finalization collections declared in this unit.
! --       The list acts as a mapping between collections and designated types.
! 
! --    Anonymous_Designated_Type
! --       Defined in entities that represent anonymous finalization collections.
! --       Contains the designated type that is being serviced by the collection.
  
  --    Anonymous_Object
  --       Present in protected and task type entities. Contains the entity of
*************** package Einfo is
*** 530,541 ****
  --       references on this list are illegal due to the visible refinement.
  
  --    BIP_Initialization_Call
! --       Defined in constants and variables whose corresponding declaration
! --       is wrapped in a transient block and the inital value is provided by
  --       a build-in-place function call. Contains the relocated build-in-place
  --       call after the expansion has decoupled the call from the object. This
! --       attribute is used by the finalization machinery to insert cleanup code
! --       for all additional transient objects found in the transient block.
  
  --    C_Pass_By_Copy [implementation base type only]
  --       Defined in record types. Set if a pragma Convention for the record
--- 526,536 ----
  --       references on this list are illegal due to the visible refinement.
  
  --    BIP_Initialization_Call
! --       Defined in constants and variables whose initial value is provided by
  --       a build-in-place function call. Contains the relocated build-in-place
  --       call after the expansion has decoupled the call from the object. This
! --       attribute is used by the finalization machinery to insert the call to
! --       the routine that attaches the object to the finalization master.
  
  --    C_Pass_By_Copy [implementation base type only]
  --       Defined in record types. Set if a pragma Convention for the record
*************** package Einfo is
*** 634,639 ****
--- 629,638 ----
  --       the corresponding implicitly declared class-wide type. For a
  --       class-wide type, returns itself. Set to Empty for untagged types.
  
+ --    Class_Wide_Equivalent_Type
+ --       Defined in all type entities. Used to store an internally generated
+ --       class-wide equivalent type for an associated mutably tagged type.
+ 
  --    Cloned_Subtype
  --       Defined in E_Record_Subtype and E_Class_Wide_Subtype entities.
  --       Each such entity can either have a Discriminant_Constraint, in
*************** package Einfo is
*** 745,761 ****
  --       other function entities, only in implicit inequality routines,
  --       where Comes_From_Source is always False.
  
- --    Corresponding_Function
- --       Defined on procedures internally built with an extra out parameter
- --       to return a constrained array type, when Modify_Tree_For_C is set.
- --       Denotes the function that returns the constrained array type for
- --       which this procedure was built.
- 
- --    Corresponding_Procedure
- --       Defined on functions that return a constrained array type, when
- --       Modify_Tree_For_C is set. Denotes the internally built procedure
- --       with an extra out parameter created for it.
- 
  --    Corresponding_Record_Component
  --       Defined in components of a derived untagged record type, including
  --       discriminants. For a regular component or a stored discriminant,
--- 744,749 ----
*************** package Einfo is
*** 929,946 ****
  --       subtypes. Contains the Digits value specified in the declaration.
  
  --    Direct_Primitive_Operations
! --       Defined in tagged types and subtypes (including synchronized types),
! --       in tagged private types, and in tagged incomplete types. Moreover, it
! --       is also defined for untagged types, both when Extensions_Allowed is
! --       True (-gnatX) to support the extension feature of prefixed calls for
! --       untagged types, and when Extensions_Allowed is False to get better
! --       error messages. This field is an element list of entities for
! --       primitive operations of the type. For incomplete types the list is
! --       always empty. In order to follow the C++ ABI, entities of primitives
! --       that come from source must be stored in this list in the order of
! --       their occurrence in the sources. When expansion is disabled, the
! --       corresponding record type of a synchronized type is not constructed.
! --       In that case, such types carry this attribute directly.
  
  --    Directly_Designated_Type
  --       Defined in access types. This field points to the type that is
--- 917,933 ----
  --       subtypes. Contains the Digits value specified in the declaration.
  
  --    Direct_Primitive_Operations
! --       Defined in concurrent types, tagged record types and subtypes, tagged
! --       private types, and tagged incomplete types. Moreover, it is also
! --       defined in untagged types, both when GNAT extensions are allowed, to
! --       support prefixed calls for untagged types, and when GNAT extensions
! --       are not allowed, to give better error messages. Set to a list of
! --       entities for primitive operations of the type. For incomplete types
! --       the list is always empty. In order to follow the C++ ABI, entities of
! --       primitives that come from source must be stored in this list in the
! --       order of their occurrence in the sources. When expansion is disabled,
! --       the corresponding record type of concurrent types is not constructed;
! --       in this case, such types carry this attribute directly.
  
  --    Directly_Designated_Type
  --       Defined in access types. This field points to the type that is
*************** package Einfo is
*** 1298,1309 ****
  --       families. Returns first extra formal of the subprogram or entry.
  --       Returns Empty if there are no extra formals.
  
! --    Finalization_Master [root type only]
  --       Defined in access-to-controlled or access-to-class-wide types. The
! --       field contains the entity of the finalization master which handles
! --       dynamically allocated controlled objects referenced by the access
! --       type. Empty for access-to-subprogram types. Empty for access types
! --       whose designated type does not need finalization actions.
  
  --    Finalize_Storage_Only [base type only]
  --       Defined in all types. Set on direct controlled types to which a
--- 1285,1305 ----
  --       families. Returns first extra formal of the subprogram or entry.
  --       Returns Empty if there are no extra formals.
  
! --    Finalization_Collection [root type only]
  --       Defined in access-to-controlled or access-to-class-wide types. The
! --       field contains the entity of the finalization collection of a type,
! --       which is the set of objects created by allocators of the type, or
! --       of types derived from the type. Empty for access-to-object types
! --       whose designated type does not need finalization actions as well
! --       as for access-to-subprogram types.
! 
! --    Finalization_Master_Node
! --       Defined in variables and constants that require finalization actions.
! --       The field contains the entity of an object (called a Master_Node) that
! --       contains the address of the finalizable object, along with an access
! --       value denoting the finalizable object's finalization procedure. The
! --       Master_Node may be attached to a finalization list associated with
! --       either the global scope or some dynamic scope (block or subprogram).
  
  --    Finalize_Storage_Only [base type only]
  --       Defined in all types. Set on direct controlled types to which a
*************** package Einfo is
*** 1322,1328 ****
  --    First_Component (synthesized)
  --       Applies to incomplete, private, protected, record and task types.
  --       Returns the first component by following the chain of declared
! --       entities for the type a component is found (one with an Ekind of
  --       E_Component). The discriminants are skipped. If the record is null,
  --       then Empty is returned.
  
--- 1318,1324 ----
  --    First_Component (synthesized)
  --       Applies to incomplete, private, protected, record and task types.
  --       Returns the first component by following the chain of declared
! --       entities for the type until a component is found (one with an Ekind of
  --       E_Component). The discriminants are skipped. If the record is null,
  --       then Empty is returned.
  
*************** package Einfo is
*** 1330,1335 ****
--- 1326,1335 ----
  --       Similar to First_Component, but discriminants are not skipped, so will
  --       find the first discriminant if discriminants are present.
  
+ --    First_Discriminant (synthesized)
+ --       Defined for types with discriminants or unknown discriminants.
+ --       Returns the first in the Next_Discriminant chain; see Sem_Aux.
+ 
  --    First_Entity
  --       Defined in all entities that act as scopes to which a list of
  --       associated entities is attached, and also in all [sub]types. Some
*************** package Einfo is
*** 1363,1374 ****
  --    First_Index
  --       Defined in array types and subtypes. By introducing implicit subtypes
  --       for the index constraints, we have the same structure for constrained
! --       and unconstrained arrays, subtype marks and discrete ranges are
! --       both represented by a subtype. This function returns the tree node
! --       corresponding to an occurrence of the first index (NOT the entity for
! --       the type). Subsequent indices are obtained using Next_Index. Note that
! --       this field is defined for the case of string literal subtypes, but is
! --       always Empty.
  
  --    First_Literal
  --       Defined in all enumeration types, including character and boolean
--- 1363,1373 ----
  --    First_Index
  --       Defined in array types and subtypes. By introducing implicit subtypes
  --       for the index constraints, we have the same structure for constrained
! --       and unconstrained arrays, subtype marks and discrete ranges are both
! --       represented by a subtype. This function returns the N_Is_Index tree
! --       node corresponding to the first index (not an entity). Subsequent
! --       indices are obtained using Next_Index. Note that this field is defined
! --       for the case of string literal subtypes, but is always Empty.
  
  --    First_Literal
  --       Defined in all enumeration types, including character and boolean
*************** package Einfo is
*** 1648,1653 ****
--- 1647,1657 ----
  --       that this does not imply a representation with holes, since the rep
  --       clause may merely confirm the default 0..N representation.
  
+ --    Has_First_Controlling_Parameter_Aspect
+ --       Defined in tagged types, concurrent types and concurrent record types.
+ --       Set to indicate that the type has a First_Controlling_Parameter of
+ --       True (whether by an aspect_specification, a pragma, or inheritance).
+ 
  --    Has_Exit
  --       Defined in loop entities. Set if the loop contains an exit statement.
  
*************** package Einfo is
*** 2022,2027 ****
--- 2026,2049 ----
  --       is detected while analyzing the body. Used to activate some error
  --       checks for infinite recursion.
  
+ --    Has_Relaxed_Finalization [base type only]
+ --       Defined in all type entities. Set only for controlled types and types
+ --       with controlled components. Indicates that the type is subject to the
+ --       relaxed semantics for the finalization operations. These semantics are
+ --       made up of two independent parts:
+ --
+ --       1. The compiler is permitted to perform no automatic finalization of
+ --          heap-allocated objects: Finalize is only called when the object is
+ --          explicitly deallocated, or when the object is assigned a new value.
+ --          As a consequence, no finalization collection is created for access
+ --          types designating the type, and no header is allocated in front of
+ --          heap-allocated objects of the type.
+ --
+ --       2. If an exception is raised out of the Adjust or Finalize procedures,
+ --          the compiler is permitted to enforce none of the guarantees given
+ --          by the RM 7.6.1(14/1) and following subclauses, and to instead just
+ --          let the exception be propagated upward.
+ 
  --    Has_Shift_Operator [base type only]
  --       Defined in integer types. Set in the base type of an integer type for
  --       which at least one of the shift operators is defined.
*************** package Einfo is
*** 2247,2256 ****
  --       call wrapper if available.
  
  --    Initialization_Statements
! --       Defined in constants and variables. For a composite object initialized
! --       with an aggregate that has been converted to a sequence of
! --       assignments, points to a compound statement containing the
! --       assignments.
  
  --    Inner_Instances
  --       Defined in generic units. Contains element list of units that are
--- 2269,2282 ----
  --       call wrapper if available.
  
  --    Initialization_Statements
! --       Defined in constants and variables. For a composite object coming from
! --       source and initialized with an aggregate or a call expanded in place,
! --       points to a compound statement containing the assignment(s). This is
! --       used for a couple of purposes: 1) to defer the initialization to the
! --       freeze point if an address clause or a delayed aspect is present for
! --       the object, 2) to cancel initialization of imported objects generated
! --       by Initialize_Scalars or Normalize_Scalars before the pragma Import is
! --       encountered for the object.
  
  --    Inner_Instances
  --       Defined in generic units. Contains element list of units that are
*************** package Einfo is
*** 2491,2498 ****
  
  --    Is_Controlled_Active [base type only]
  --       Defined in all type entities. Indicates that the type is controlled,
! --       i.e. is either a descendant of Ada.Finalization.Controlled or of
! --       Ada.Finalization.Limited_Controlled.
  
  --    Is_Controlled (synth) [base type only]
  --       Defined in all type entities. Set if Is_Controlled_Active is set for
--- 2517,2527 ----
  
  --    Is_Controlled_Active [base type only]
  --       Defined in all type entities. Indicates that the type is controlled,
! --       i.e. has been declared with the Finalizable aspect or has inherited
! --       the Finalizable aspect from an ancestor. Can only be set for record
! --       types, tagged or untagged. System.Finalization_Root.Root_Controlled
! --       is an example of the former case while Ada.Finalization.Controlled
! --       and Ada.Finalization.Limited_Controlled are examples of the latter.
  
  --    Is_Controlled (synth) [base type only]
  --       Defined in all type entities. Set if Is_Controlled_Active is set for
*************** package Einfo is
*** 2547,2555 ****
  --       entity is associated with a dispatch table.
  
  --    Is_Dispatch_Table_Wrapper
! --       Applies to all entities. Set on wrappers built when the subprogram has
! --       class-wide preconditions or class-wide postconditions affected by
! --       overriding (AI12-0195).
  
  --    Is_Dispatching_Operation
  --       Defined in all entities. Set for procedures, functions, generic
--- 2576,2587 ----
  --       entity is associated with a dispatch table.
  
  --    Is_Dispatch_Table_Wrapper
! --       Applies to all entities. Set on wrappers built when a subprogram has
! --       class-wide preconditions or postconditions affected by overriding
! --       (AI12-0195). Also set on wrappers built when an inherited subprogram
! --       implements an interface primitive that has class-wide preconditions
! --       or postconditions. In the former case, the entity also has its
! --       LSP_Subprogram attribute set.
  
  --    Is_Dispatching_Operation
  --       Defined in all entities. Set for procedures, functions, generic
*************** package Einfo is
*** 2623,2629 ****
  --       the transient finalization mechanisms. The flag prevents the double
  --       finalization of the object.
  
! --    Is_Finalizer (synthesized)
  --       Applies to all entities, true for procedures containing finalization
  --       code to process local or library level objects.
  
--- 2655,2661 ----
  --       the transient finalization mechanisms. The flag prevents the double
  --       finalization of the object.
  
! --    Is_Finalizer
  --       Applies to all entities, true for procedures containing finalization
  --       code to process local or library level objects.
  
*************** package Einfo is
*** 2720,2726 ****
  --       Defined in all entities. Set for implicitly declared subprograms
  --       that require overriding or are null procedures, and are hidden by
  --       a non-fully conformant homograph with the same characteristics
! --       (Ada RM 8.3 12.3/2).
  
  --    Is_Hidden_Open_Scope
  --       Defined in all entities. Set for a scope that contains the
--- 2752,2758 ----
  --       Defined in all entities. Set for implicitly declared subprograms
  --       that require overriding or are null procedures, and are hidden by
  --       a non-fully conformant homograph with the same characteristics
! --       (RM 8.3(12.3/2)).
  
  --    Is_Hidden_Open_Scope
  --       Defined in all entities. Set for a scope that contains the
*************** package Einfo is
*** 2771,2776 ****
--- 2803,2812 ----
  --       case of private and incomplete types, this flag is set in both the
  --       partial view and the full view.
  
+ --       This flag is also set on the Master_Node objects generated by the
+ --       compiler (see Finalization_Master_Node above) to indicate that the
+ --       associated finalizable object has relaxed finalization semantics.
+ 
  --    Is_Initial_Condition_Procedure
  --       Defined in functions and procedures. Set for a generated procedure
  --       which verifies the assumption of pragma Initial_Condition at run time.
*************** package Einfo is
*** 2972,2977 ****
--- 3008,3017 ----
  --    Is_Modular_Integer_Type (synthesized)
  --       Applies to all entities. True if entity is a modular integer type
  
+ --    Is_Mutably_Tagged_Type
+ --       Defined in all type entities. Used to signify that a given type is a
+ --       "mutably tagged" class-wide type where 'Size'Class has been specified.
+ 
  --    Is_Non_Static_Subtype
  --       Defined in all type and subtype entities. It is set in some (but not
  --       all) cases in which a subtype is known to be non-static. Before this
*************** package Einfo is
*** 3211,3220 ****
  --       Applies to all entities, true for record types and subtypes,
  --       includes class-wide types and subtypes (which are also records).
  
- --    Is_Relaxed_Initialization_State (synthesized)
- --       Applies to all entities, true for abstract states that are subject to
- --       option Relaxed_Initialization.
- 
  --    Is_Remote_Call_Interface
  --       Defined in all entities. Set in E_Package and E_Generic_Package
  --       entities to which a pragma Remote_Call_Interface is applied, and
--- 3251,3256 ----
*************** package Einfo is
*** 3481,3493 ****
  --       except that the effect is permanent and cannot be undone by a
  --       subsequent pragma Unsuppress.
  
- --    Kill_Range_Checks
- --       Defined in all entities. Equivalent in effect to the use of pragma
- --       Suppress (Range_Checks) for that entity except that the result is
- --       permanent and cannot be undone by a subsequent pragma Unsuppress.
- --       This is currently only used in one odd situation in Sem_Ch3 for
- --       record types, and it would be good to get rid of it???
- 
  --    Known_To_Have_Preelab_Init
  --       Defined in all type and subtype entities. If set, then the type is
  --       known to have preelaborable initialization. In the case of a partial
--- 3517,3522 ----
*************** package Einfo is
*** 3580,3589 ****
  --       tasks implementing such interface.
  
  --    Materialize_Entity
! --       Defined in all entities. Set only for renamed obects which should be
  --       materialized for debugging purposes. This means that a memory location
  --       containing the renamed address should be allocated. This is needed so
! --       that the debugger can find the entity.
  
  --    May_Inherit_Delayed_Rep_Aspects
  --       Defined in all entities for types and subtypes. Set if the type is
--- 3609,3619 ----
  --       tasks implementing such interface.
  
  --    Materialize_Entity
! --       Defined in all entities. Set mostly for renamed objects that should be
  --       materialized for debugging purposes. This means that a memory location
  --       containing the renamed address should be allocated. This is needed so
! --       that the debugger can find the entity. Also set on types built in the
! --       case of unanalyzed packages referenced through a limited_with clause.
  
  --    May_Inherit_Delayed_Rep_Aspects
  --       Defined in all entities for types and subtypes. Set if the type is
*************** package Einfo is
*** 3736,3748 ****
  --       all the extra formals (see description of Extra_Formal field)
  
  --    Next_Index (synthesized)
! --       Applies to array types and subtypes and to string types and
! --       subtypes. Yields the next index. The first index is obtained by
! --       using the First_Index attribute, and then subsequent indexes are
! --       obtained by applying Next_Index to the previous index. Empty is
! --       returned to indicate that there are no more indexes. Note that
! --       unlike most attributes in this package, Next_Index applies to
! --       nodes for the indexes, not to entities.
  
  --    Next_Inlined_Subprogram
  --       Defined in subprograms. Used to chain inlined subprograms used in
--- 3766,3776 ----
  --       all the extra formals (see description of Extra_Formal field)
  
  --    Next_Index (synthesized)
! --       Applies to the N_Is_Index node returned by First_Index/Next_Index;
! --       returns the next N_Is_Index node in the chain. Empty is returned to
! --       indicate that there are no more indexes. Note that unlike most
! --       attributes in this package, Next_Index applies to nodes for the
! --       indexes, not to entities.
  
  --    Next_Inlined_Subprogram
  --       Defined in subprograms. Used to chain inlined subprograms used in
*************** package Einfo is
*** 3771,3783 ****
  --       in the spec of a generic package, in constructs that forbid discrete
  --       types with predicates.
  
  --    No_Reordering [implementation base type only]
  --       Defined in record types. Set only for a base type to which a valid
  --       pragma No_Component_Reordering applies.
  
  --    No_Return
! --       Defined in all entities. Set for subprograms and generic subprograms
! --       to which a valid aspect or pragma No_Return applies.
  
  --    No_Strict_Aliasing [base type only]
  --       Defined in access types. Set to direct the backend to avoid any
--- 3799,3815 ----
  --       in the spec of a generic package, in constructs that forbid discrete
  --       types with predicates.
  
+ --    No_Raise
+ --       Defined in subprograms and generic subprograms. Set if a valid aspect
+ --       or pragma No_Raise applies.
+ 
  --    No_Reordering [implementation base type only]
  --       Defined in record types. Set only for a base type to which a valid
  --       pragma No_Component_Reordering applies.
  
  --    No_Return
! --       Defined in subprograms and generic subprograms. Set if a valid aspect
! --       or pragma No_Return applies.
  
  --    No_Strict_Aliasing [base type only]
  --       Defined in access types. Set to direct the backend to avoid any
*************** package Einfo is
*** 4004,4020 ****
  --       has unknown discriminants. A default initialization of an object of
  --       the type does not require an invariant check (AI12-0133).
  
- --    Pending_Access_Types
- --       Defined in all types. Set for incomplete, private, Taft-amendment
- --       types, and their corresponding full views. This list contains all
- --       access types, both named and anonymous, declared between the partial
- --       and the full view. The list is used by the finalization machinery to
- --       ensure that the finalization masters of all pending access types are
- --       fully initialized when the full view is frozen.
- 
- --    Postconditions_Proc
- --       Obsolete field which can be removed once CodePeer is fixed ???
- 
  --    Predicate_Function (synthesized)
  --       Defined in all types. Set for types for which (Has_Predicates is True)
  --       and for which a predicate procedure has been built that tests that the
--- 4036,4041 ----
*************** package Einfo is
*** 4063,4072 ****
  
  --    Primitive_Operations (synthesized)
  --       Defined in concurrent types, tagged record types and subtypes, tagged
! --       private types and tagged incomplete types. For concurrent types whose
! --       Corresponding_Record_Type (CRT) is available, returns the list of
! --       Direct_Primitive_Operations of its CRT; otherwise returns No_Elist.
! --       For all the other types returns the Direct_Primitive_Operations.
  
  --    Prival
  --       Defined in private components of protected types. Refers to the entity
--- 4084,4096 ----
  
  --    Primitive_Operations (synthesized)
  --       Defined in concurrent types, tagged record types and subtypes, tagged
! --       private types, and tagged incomplete types. Moreover, it is also
! --       defined in untagged types, both when GNAT extensions are allowed, to
! --       support prefixed calls for untagged types, and when GNAT extensions
! --       are not allowed, to give better error messages.  For concurrent types
! --       whose Corresponding_Record_Type (CRT) is available, returns the list
! --       of Direct_Primitive_Operations of this CRT. In all the other cases,
! --       returns the list of Direct_Primitive_Operations.
  
  --    Prival
  --       Defined in private components of protected types. Refers to the entity
*************** package Einfo is
*** 4223,4228 ****
--- 4247,4261 ----
  --       within an accept statement. For all remaining cases (discriminants,
  --       loop parameters) the field is Empty.
  
+ --    Renames_Limited_View
+ --       Defined in package entities. True for a package renaming if either
+ --       a) the renamed package is not itself a renaming, and the renaming
+ --          denotes a limited view of the renamed package (as seen at the
+ --          point of the renaming declaration, as opposed to later on when
+ --          the renaming is referenced); or
+ --       b) the renamed package is itself a renaming and the
+ --          Renames_Limited_View flag is True for the renamed package.
+ 
  --    Requires_Overriding
  --       Defined in all subprograms and entries. Set for subprograms that
  --       require overriding as defined by RM-2005-3.9.3(6/2). Note that this
*************** package Einfo is
*** 4254,4261 ****
  
  --    Returns_By_Ref
  --       Defined in subprogram type entities and functions. Set if a function
! --       (or an access-to-function type) returns a result by reference, either
! --       because the result is built in place, or its type is by-reference.
  
  --    Reverse_Bit_Order [base type only]
  --       Defined in all record type entities. Set if entity has a Bit_Order
--- 4287,4294 ----
  
  --    Returns_By_Ref
  --       Defined in subprogram type entities and functions. Set if a function
! --       (or a function type) returns a result by reference, either because the
! --       result is built in place or its type is limited in Ada 95.
  
  --    Reverse_Bit_Order [base type only]
  --       Defined in all record type entities. Set if entity has a Bit_Order
*************** package Einfo is
*** 4273,4284 ****
  --       the Bit_Order aspect must be set to the same value (either explicitly
  --       or as the target default value).
  
- --    Rewritten_For_C
- --       Defined on functions that return a constrained array type, when
- --       Modify_Tree_For_C is set. Indicates that a procedure with an extra
- --       out parameter has been created for it, and calls must be rewritten as
- --       calls to the new procedure.
- 
  --    RM_Size
  --       Defined in all type and subtype entities. Contains the value of
  --       type'Size as defined in the RM. See also the Esize field and
--- 4306,4311 ----
*************** package Einfo is
*** 4513,4527 ****
  --       from another predicate but does not add a predicate of its own, the
  --       expression may consist of the above xxxPredicate call on its own.
  
- --    Status_Flag_Or_Transient_Decl
- --       Defined in constant, loop, and variable entities. Applies to objects
- --       that require special treatment by the finalization machinery, such as
- --       extended return objects, conditional expression results, and objects
- --       inside N_Expression_With_Actions nodes. The attribute contains the
- --       entity of a flag which specifies a particular behavior over a region
- --       of the extended return for the return objects, or the declaration of a
- --       hook object for conditional expressions and N_Expression_With_Actions.
- 
  --    Storage_Size_Variable [implementation base type only]
  --       Defined in access types and task type entities. This flag is set
  --       if a valid and effective pragma Storage_Size applies to the base
--- 4540,4545 ----
*************** package Einfo is
*** 4964,4975 ****
     --    Is_Unimplemented
     --    Is_Visible_Formal
     --    Kill_Elaboration_Checks
-    --    Kill_Range_Checks
     --    Low_Bound_Tested
     --    Materialize_Entity
     --    Needs_Debug_Info
     --    Never_Set_In_Source
-    --    No_Return
     --    Overlays_Constant
     --    Referenced
     --    Referenced_As_LHS
--- 4982,4991 ----
*************** package Einfo is
*** 5003,5009 ****
     --    Esize
     --    RM_Size
     --    Alignment
-    --    Pending_Access_Types
     --    Related_Expression
     --    Current_Use_Clause
     --    Subprograms_For_Type
--- 5019,5024 ----
*************** package Einfo is
*** 5130,5136 ****
     --    Has_Null_Visible_Refinement         (synth)
     --    Is_External_State                   (synth)
     --    Is_Null_State                       (synth)
-    --    Is_Relaxed_Initialization_State     (synth)
     --    Is_Synchronized_State               (synth)
     --    Partial_Refinement_Constituents     (synth)
  
--- 5145,5150 ----
*************** package Einfo is
*** 5157,5164 ****
     --    Direct_Primitive_Operations $$$ type
     --    Master_Id
     --    Directly_Designated_Type
!    --    Associated_Storage_Pool               (base type only)
!    --    Finalization_Master                   (base type only)
     --    Storage_Size_Variable                 (base type only)
     --    Has_Pragma_Controlled                 (base type only)
     --    Has_Storage_Size_Clause               (base type only)
--- 5171,5178 ----
     --    Direct_Primitive_Operations $$$ type
     --    Master_Id
     --    Directly_Designated_Type
!    --    Associated_Storage_Pool               (root type only)
!    --    Finalization_Collection               (root type only)
     --    Storage_Size_Variable                 (base type only)
     --    Has_Pragma_Controlled                 (base type only)
     --    Has_Storage_Size_Clause               (base type only)
*************** package Einfo is
*** 5191,5197 ****
  
     --  E_Anonymous_Access_Type
     --    Directly_Designated_Type
!    --    Finalization_Master
     --    Storage_Size_Variable                 is this needed ???
     --    Associated_Storage_Pool $$$
     --    (plus type attributes)
--- 5205,5211 ----
  
     --  E_Anonymous_Access_Type
     --    Directly_Designated_Type
!    --    Finalization_Collection
     --    Storage_Size_Variable                 is this needed ???
     --    Associated_Storage_Pool $$$
     --    (plus type attributes)
*************** package Einfo is
*** 5294,5300 ****
     --    Esize
     --    Extra_Accessibility                   (constants only)
     --    Alignment
-    --    Status_Flag_Or_Transient_Decl
     --    Actual_Subtype
     --    Renamed_Object
     --    Renamed_Entity $$$
--- 5308,5313 ----
*************** package Einfo is
*** 5304,5309 ****
--- 5317,5323 ----
     --    Related_Type                          (constants only)
     --    Initialization_Statements
     --    BIP_Initialization_Call
+    --    Finalization_Master_Node
     --    Last_Aggregate_Assignment
     --    Activation_Record_Component
     --    Encapsulating_State                   (constants only)
*************** package Einfo is
*** 5518,5527 ****
     --    Overridden_Operation
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
!    --    Anonymous_Masters                    (non-generic case only)
     --    Corresponding_Equality               (implicit /= only)
     --    Thunk_Entity                         (thunk case only)
-    --    Corresponding_Procedure              (generate C code only)
     --    Linker_Section_Pragma
     --    Contract
     --    Import_Pragma                        (non-generic case only)
--- 5532,5540 ----
     --    Overridden_Operation
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
!    --    Anonymous_Collections                (non-generic case only)
     --    Corresponding_Equality               (implicit /= only)
     --    Thunk_Entity                         (thunk case only)
     --    Linker_Section_Pragma
     --    Contract
     --    Import_Pragma                        (non-generic case only)
*************** package Einfo is
*** 5582,5591 ****
     --    Is_Visible_Lib_Unit
     --    Is_Wrapper
     --    Needs_No_Actuals
     --    Requires_Overriding                  (non-generic case only)
     --    Return_Present
     --    Returns_By_Ref
-    --    Rewritten_For_C                      (generate C code only)
     --    Sec_Stack_Needed_For_Return
     --    SPARK_Pragma_Inherited
     --    Uses_Sec_Stack
--- 5595,5605 ----
     --    Is_Visible_Lib_Unit
     --    Is_Wrapper
     --    Needs_No_Actuals
+    --    No_Raise
+    --    No_Return
     --    Requires_Overriding                  (non-generic case only)
     --    Return_Present
     --    Returns_By_Ref
     --    Sec_Stack_Needed_For_Return
     --    SPARK_Pragma_Inherited
     --    Uses_Sec_Stack
*************** package Einfo is
*** 5603,5609 ****
     --    Master_Id
     --    Directly_Designated_Type
     --    Associated_Storage_Pool              (root type only)
!    --    Finalization_Master                  (root type only)
     --    Storage_Size_Variable                (base type only)
     --    (plus type attributes)
  
--- 5617,5623 ----
     --    Master_Id
     --    Directly_Designated_Type
     --    Associated_Storage_Pool              (root type only)
!    --    Finalization_Collection              (root type only)
     --    Storage_Size_Variable                (base type only)
     --    (plus type attributes)
  
*************** package Einfo is
*** 5782,5788 ****
     --    Package_Instantiation
     --    Current_Use_Clause
     --    Finalizer                            (non-generic case only)
!    --    Anonymous_Masters                    (non-generic case only)
     --    Contract
     --    SPARK_Pragma
     --    SPARK_Aux_Pragma
--- 5796,5802 ----
     --    Package_Instantiation
     --    Current_Use_Clause
     --    Finalizer                            (non-generic case only)
!    --    Anonymous_Collections                (non-generic case only)
     --    Contract
     --    SPARK_Pragma
     --    SPARK_Aux_Pragma
*************** package Einfo is
*** 5879,5888 ****
     --    Overridden_Operation                 (never for init proc)
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
!    --    Anonymous_Masters                    (non-generic case only)
     --    Static_Initialization                (init_proc only)
     --    Thunk_Entity                         (thunk case only)
-    --    Corresponding_Function               (generate C code only)
     --    Linker_Section_Pragma
     --    Contract
     --    Import_Pragma                        (non-generic case only)
--- 5893,5901 ----
     --    Overridden_Operation                 (never for init proc)
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
!    --    Anonymous_Collections                (non-generic case only)
     --    Static_Initialization                (init_proc only)
     --    Thunk_Entity                         (thunk case only)
     --    Linker_Section_Pragma
     --    Contract
     --    Import_Pragma                        (non-generic case only)
*************** package Einfo is
*** 5944,5949 ****
--- 5957,5963 ----
     --    Is_Valued_Procedure
     --    Is_Visible_Lib_Unit
     --    Needs_No_Actuals
+    --    No_Raise
     --    No_Return
     --    Requires_Overriding                  (non-generic case only)
     --    Sec_Stack_Needed_For_Return
*************** package Einfo is
*** 5972,5977 ****
--- 5986,5992 ----
     --    First_Entity
     --    Corresponding_Record_Type
     --    Entry_Bodies_Array
+    --    Has_First_Controlling_Parameter_Aspect
     --    Last_Entity
     --    Discriminant_Constraint
     --    Scope_Depth_Value
*************** package Einfo is
*** 6013,6018 ****
--- 6028,6034 ----
     --    Component_Alignment                  (special)  (base type only)
     --    C_Pass_By_Copy                       (base type only)
     --    Has_Dispatch_Table                   (base tagged type only)
+    --    Has_First_Controlling_Parameter_Aspect
     --    Has_Pragma_Pack                      (impl base type only)
     --    Has_Private_Ancestor
     --    Has_Private_Extension
*************** package Einfo is
*** 6048,6053 ****
--- 6064,6070 ----
     --    Underlying_Record_View $$$           (base type only)
     --    Predicated_Parent                    (subtype only)
     --    Has_Completion
+    --    Has_First_Controlling_Parameter_Aspect
     --    Has_Private_Ancestor
     --    Has_Private_Extension
     --    Has_Record_Rep_Clause                (base type only)
*************** package Einfo is
*** 6103,6109 ****
     --    Last_Entity
     --    Scope_Depth_Value
     --    Extra_Formals
!    --    Anonymous_Masters
     --    Contract
     --    SPARK_Pragma
     --    Contains_Ignored_Ghost_Code
--- 6120,6126 ----
     --    Last_Entity
     --    Scope_Depth_Value
     --    Extra_Formals
!    --    Anonymous_Collections
     --    Contract
     --    SPARK_Pragma
     --    Contains_Ignored_Ghost_Code
*************** package Einfo is
*** 6143,6148 ****
--- 6160,6166 ----
     --    Corresponding_Record_Type
     --    Last_Entity
     --    Discriminant_Constraint
+    --    Has_First_Controlling_Parameter_Aspect
     --    Scope_Depth_Value
     --    Stored_Constraint
     --    Task_Body_Procedure
*************** package Einfo is
*** 6174,6180 ****
     --    Esize
     --    Extra_Accessibility
     --    Alignment
-    --    Status_Flag_Or_Transient_Decl        (transient object only)
     --    Unset_Reference
     --    Actual_Subtype
     --    Renamed_Object
--- 6192,6197 ----
*************** package Einfo is
*** 6191,6196 ****
--- 6208,6214 ----
     --    Related_Type
     --    Initialization_Statements
     --    BIP_Initialization_Call
+    --    Finalization_Master_Node
     --    Last_Aggregate_Assignment
     --    Activation_Record_Component
     --    Encapsulating_State
diff -Nrcpad gcc-14.2.0/gcc/ada/elists.adb gcc-15.1.0/gcc/ada/elists.adb
*** gcc-14.2.0/gcc/ada/elists.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/elists.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/elists.ads gcc-15.1.0/gcc/ada/elists.ads
*** gcc-14.2.0/gcc/ada/elists.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/elists.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/elists.h gcc-15.1.0/gcc/ada/elists.h
*** gcc-14.2.0/gcc/ada/elists.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/elists.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/env.c gcc-15.1.0/gcc/ada/env.c
*** gcc-14.2.0/gcc/ada/env.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/env.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/env.h gcc-15.1.0/gcc/ada/env.h
*** gcc-14.2.0/gcc/ada/env.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/env.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2009-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2009-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern void __gnat_getenv (char *name, i
*** 33,37 ****
  extern void __gnat_setenv (char *name, char *value);
  extern char **__gnat_environ (void);
  extern void __gnat_unsetenv (char *name);
! extern void __gnat_clearenv (void);
! 
--- 33,36 ----
  extern void __gnat_setenv (char *name, char *value);
  extern char **__gnat_environ (void);
  extern void __gnat_unsetenv (char *name);
! extern void __gnat_clearenv(void);
diff -Nrcpad gcc-14.2.0/gcc/ada/err_vars.ads gcc-15.1.0/gcc/ada/err_vars.ads
*** gcc-14.2.0/gcc/ada/err_vars.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/err_vars.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Err_Vars is
*** 55,71 ****
     --  not get reset by any Error_Msg call, so the caller is responsible
     --  for resetting it.
  
-    Raise_Exception_On_Error : Nat := 0;
-    --  If this value is non-zero, then any attempt to generate an error
-    --  message raises the exception Error_Msg_Exception, and the error
-    --  message is not output. This is used for defending against junk
-    --  resulting from illegalities, and also for substitution of more
-    --  appropriate error messages from higher semantic levels. It is
-    --  a counter so that the increment/decrement protocol nests neatly.
- 
-    Error_Msg_Exception : exception;
-    --  Exception raised if Raise_Exception_On_Error is true
- 
     Current_Error_Source_File : Source_File_Index := No_Source_File;
     --  Id of current messages. Used to post file name when unit changes. This
     --  is initialized to Main_Source_File at the start of a compilation, which
--- 55,60 ----
*************** package Err_Vars is
*** 107,113 ****
  
     --  WARNING: There is a matching C declaration of these variables in fe.h
  
!    Error_Msg_Sloc : Source_Ptr;
     --  Source location for # insertion character in message
  
     Error_Msg_Name_1 : Name_Id;
--- 96,102 ----
  
     --  WARNING: There is a matching C declaration of these variables in fe.h
  
!    Error_Msg_Sloc : Source_Ptr := No_Location;
     --  Source location for # insertion character in message
  
     Error_Msg_Name_1 : Name_Id;
diff -Nrcpad gcc-14.2.0/gcc/ada/errno.c gcc-15.1.0/gcc/ada/errno.c
*** gcc-14.2.0/gcc/ada/errno.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/errno.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/errout.adb gcc-15.1.0/gcc/ada/errout.adb
*** gcc-14.2.0/gcc/ada/errout.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/errout.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Atree;          use Atree;
*** 33,38 ****
--- 33,39 ----
  with Casing;         use Casing;
  with Csets;          use Csets;
  with Debug;          use Debug;
+ with Diagnostics.Converter; use Diagnostics.Converter;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
*************** with Sinfo.Utils;    use Sinfo.Utils;
*** 51,57 ****
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
- with Stylesw;        use Stylesw;
  with System.OS_Lib;
  with Uname;          use Uname;
  with Warnsw;
--- 52,57 ----
*************** package body Errout is
*** 100,107 ****
       (Msg      : String;
        Span     : Source_Span;
        Opan     : Source_Span;
!       Msg_Cont : Boolean;
!       Node     : Node_Id);
     --  This is the low-level routine used to post messages after dealing with
     --  the issue of messages placed on instantiations (which get broken up
     --  into separate calls in Error_Msg). Span is the location on which the
--- 100,106 ----
       (Msg      : String;
        Span     : Source_Span;
        Opan     : Source_Span;
!       Msg_Cont : Boolean);
     --  This is the low-level routine used to post messages after dealing with
     --  the issue of messages placed on instantiations (which get broken up
     --  into separate calls in Error_Msg). Span is the location on which the
*************** package body Errout is
*** 112,120 ****
     --  copy. So typically we can see Opan pointing to the template location
     --  in an instantiation copy when Span points to the source location of
     --  the actual instantiation (i.e the line with the new). Msg_Cont is
!    --  set true if this is a continuation message. Node is the relevant
!    --  Node_Id for this message, to be used to compute the enclosing entity if
!    --  Opt.Include_Subprogram_In_Messages is set.
  
     function No_Warnings (N : Node_Or_Entity_Id) return Boolean;
     --  Determines if warnings should be suppressed for the given node
--- 111,117 ----
     --  copy. So typically we can see Opan pointing to the template location
     --  in an instantiation copy when Span points to the source location of
     --  the actual instantiation (i.e the line with the new). Msg_Cont is
!    --  set true if this is a continuation message.
  
     function No_Warnings (N : Node_Or_Entity_Id) return Boolean;
     --  Determines if warnings should be suppressed for the given node
*************** package body Errout is
*** 145,153 ****
     --  around node N are required by the Ada syntax, e.g. when N is an
     --  expression of a qualified expression.
  
-    procedure Set_Msg_Insertion_Column;
-    --  Handle column number insertion (@ insertion character)
- 
     procedure Set_Msg_Insertion_Node;
     --  Handle node (name from node) insertion (& insertion character)
  
--- 142,147 ----
*************** package body Errout is
*** 166,178 ****
     --  N_Defining_Program_Unit_Name, and N_Expanded_Name, the Prefix is
     --  included as well.
  
-    procedure Set_Msg_Text (Text : String; Flag : Source_Ptr);
-    --  Add a sequence of characters to the current message. The characters may
-    --  be one of the special insertion characters (see documentation in spec).
-    --  Flag is the location at which the error is to be posted, which is used
-    --  to determine whether or not the # insertion needs a file name. The
-    --  variables Msg_Buffer are set on return Msglen.
- 
     procedure Set_Posted (N : Node_Id);
     --  Sets the Error_Posted flag on the given node, and all its parents that
     --  are subexpressions and then on the parent non-subexpression construct
--- 160,165 ----
*************** package body Errout is
*** 213,218 ****
--- 200,209 ----
     --  should have 'Class appended to its name (see Add_Class procedure), and
     --  is otherwise unchanged.
  
+    procedure Validate_Specific_Warnings;
+    --  Checks that specific warnings are consistent (for non-configuration
+    --  case, properly closed, and used).
+ 
     function Warn_Insertion return String;
     --  This is called for warning messages only (so Warning_Msg_Char is set)
     --  and returns a corresponding string to use at the beginning of generated
*************** package body Errout is
*** 282,291 ****
                 M.Deleted := True;
                 Warnings_Detected := Warnings_Detected - 1;
  
-                if M.Info then
-                   Warning_Info_Messages := Warning_Info_Messages - 1;
-                end if;
- 
                 if M.Warn_Err then
                    Warnings_Treated_As_Errors := Warnings_Treated_As_Errors - 1;
                 end if;
--- 273,278 ----
*************** package body Errout is
*** 310,332 ****
  
     procedure Error_Msg (Msg : String; Flag_Location : Source_Ptr) is
     begin
!       Error_Msg (Msg, To_Span (Flag_Location), Current_Node);
     end Error_Msg;
  
     procedure Error_Msg (Msg : String; Flag_Span : Source_Span) is
     begin
!       Error_Msg (Msg, Flag_Span, Current_Node);
     end Error_Msg;
  
     procedure Error_Msg
!       (Msg : String;
!        Flag_Location : Source_Ptr;
!        Is_Compile_Time_Pragma : Boolean)
     is
        Save_Is_Compile_Time_Msg : constant Boolean := Is_Compile_Time_Msg;
     begin
        Is_Compile_Time_Msg := Is_Compile_Time_Pragma;
!       Error_Msg (Msg, To_Span (Flag_Location), Current_Node);
        Is_Compile_Time_Msg := Save_Is_Compile_Time_Msg;
     end Error_Msg;
  
--- 297,320 ----
  
     procedure Error_Msg (Msg : String; Flag_Location : Source_Ptr) is
     begin
!       Error_Msg (Msg, To_Span (Flag_Location), Empty);
     end Error_Msg;
  
     procedure Error_Msg (Msg : String; Flag_Span : Source_Span) is
     begin
!       Error_Msg (Msg, Flag_Span, Empty);
     end Error_Msg;
  
     procedure Error_Msg
!      (Msg : String;
!       Flag_Location : Source_Ptr;
!       N : Node_Id;
!       Is_Compile_Time_Pragma : Boolean)
     is
        Save_Is_Compile_Time_Msg : constant Boolean := Is_Compile_Time_Msg;
     begin
        Is_Compile_Time_Msg := Is_Compile_Time_Pragma;
!       Error_Msg (Msg, To_Span (Flag_Location), N);
        Is_Compile_Time_Msg := Save_Is_Compile_Time_Msg;
     end Error_Msg;
  
*************** package body Errout is
*** 419,438 ****
  
           --  No duplicate, so error/warning will be posted on instance
  
!          Warn_On_Instance := Is_Warning_Msg;
        end if;
  
        --  Ignore warning message that is suppressed for this location. Note
        --  that style checks are not considered warning messages for this
        --  purpose.
  
!       if Is_Warning_Msg and then Warnings_Suppressed (Orig_Loc) /= No_String
        then
           return;
  
        --  For style messages, check too many messages so far
  
!       elsif Is_Style_Msg
          and then Maximum_Messages /= 0
          and then Warnings_Detected >= Maximum_Messages
        then
--- 407,427 ----
  
           --  No duplicate, so error/warning will be posted on instance
  
!          Warn_On_Instance := Error_Msg_Kind = Warning;
        end if;
  
        --  Ignore warning message that is suppressed for this location. Note
        --  that style checks are not considered warning messages for this
        --  purpose.
  
!       if Error_Msg_Kind = Warning
!         and then Warnings_Suppressed (Orig_Loc) /= No_String
        then
           return;
  
        --  For style messages, check too many messages so far
  
!       elsif Error_Msg_Kind = Style
          and then Maximum_Messages /= 0
          and then Warnings_Detected >= Maximum_Messages
        then
*************** package body Errout is
*** 442,448 ****
        --  probably null (i.e. when loop executes only if invalid values
        --  present). In either case warnings in the loop are likely to be junk.
  
!       elsif Is_Warning_Msg and then Present (N) then
  
           declare
              P : Node_Id;
--- 431,437 ----
        --  probably null (i.e. when loop executes only if invalid values
        --  present). In either case warnings in the loop are likely to be junk.
  
!       elsif Error_Msg_Kind = Warning and then Present (N) then
  
           declare
              P : Node_Id;
*************** package body Errout is
*** 470,476 ****
        --  Error_Msg_Internal to place the message in the requested location.
  
        if Instantiation (Sindex) = No_Location then
!          Error_Msg_Internal (Msg, Flag_Span, Flag_Span, False, N);
           return;
        end if;
  
--- 459,465 ----
        --  Error_Msg_Internal to place the message in the requested location.
  
        if Instantiation (Sindex) = No_Location then
!          Error_Msg_Internal (Msg, Flag_Span, Flag_Span, False);
           return;
        end if;
  
*************** package body Errout is
*** 563,635 ****
                 --  Case of inlined body
  
                 if Inlined_Body (X) then
!                   if Is_Info_Msg then
                       Error_Msg_Internal
                         (Msg      => "info: in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
!                   elsif Is_Warning_Msg then
                       Error_Msg_Internal
                         (Msg      => Warn_Insertion & "in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
!                   elsif Is_Style_Msg then
                       Error_Msg_Internal
                         (Msg      => "style: in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
                    else
                       Error_Msg_Internal
                         (Msg      => "error in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
                    end if;
  
                 --  Case of generic instantiation
  
                 else
!                   if Is_Info_Msg then
                       Error_Msg_Internal
                         (Msg      => "info: in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
!                   elsif Is_Warning_Msg then
                       Error_Msg_Internal
                         (Msg      => Warn_Insertion & "in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
!                   elsif Is_Style_Msg then
                       Error_Msg_Internal
                         (Msg      => "style: in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
  
                    else
                       Error_Msg_Internal
                         (Msg      => "instantiation error #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status,
!                         Node     => N);
                    end if;
                 end if;
              end if;
--- 552,616 ----
                 --  Case of inlined body
  
                 if Inlined_Body (X) then
!                   if Error_Msg_Kind = Info then
                       Error_Msg_Internal
                         (Msg      => "info: in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
!                   elsif Error_Msg_Kind = Warning then
                       Error_Msg_Internal
                         (Msg      => Warn_Insertion & "in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
!                   elsif Error_Msg_Kind = Style then
                       Error_Msg_Internal
                         (Msg      => "style: in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
                    else
                       Error_Msg_Internal
                         (Msg      => "error in inlined body #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
                    end if;
  
                 --  Case of generic instantiation
  
                 else
!                   if Error_Msg_Kind = Info then
                       Error_Msg_Internal
                         (Msg      => "info: in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
!                   elsif Error_Msg_Kind = Warning then
                       Error_Msg_Internal
                         (Msg      => Warn_Insertion & "in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
!                   elsif Error_Msg_Kind = Style then
                       Error_Msg_Internal
                         (Msg      => "style: in instantiation #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
  
                    else
                       Error_Msg_Internal
                         (Msg      => "instantiation error #",
                          Span     => To_Span (Actual_Error_Loc),
                          Opan     => Flag_Span,
!                         Msg_Cont => Msg_Cont_Status);
                    end if;
                 end if;
              end if;
*************** package body Errout is
*** 648,655 ****
             (Msg      => Msg,
              Span     => To_Span (Actual_Error_Loc),
              Opan     => Flag_Span,
!             Msg_Cont => Msg_Cont_Status,
!             Node     => N);
        end;
     end Error_Msg;
  
--- 629,635 ----
             (Msg      => Msg,
              Span     => To_Span (Actual_Error_Loc),
              Opan     => Flag_Span,
!             Msg_Cont => Msg_Cont_Status);
        end;
     end Error_Msg;
  
*************** package body Errout is
*** 912,932 ****
           if Is_Core_Extension then
              Error_Msg
                ("\unit must be compiled with -gnatX '[or -gnatX0'] " &
!                "or use pragma Extensions_Allowed (On) '[or All']", Loc);
           else
              Error_Msg
                ("\unit must be compiled with -gnatX0 " &
!                "or use pragma Extensions_Allowed (All)", Loc);
           end if;
        else
           Error_Msg_Sloc := Sloc (Ada_Version_Pragma);
           Error_Msg ("\incompatible with Ada version set#", Loc);
           if Is_Core_Extension then
              Error_Msg
!               ("\must use pragma Extensions_Allowed (On) '[or All']", Loc);
           else
              Error_Msg
!               ("\must use pragma Extensions_Allowed (All)", Loc);
           end if;
        end if;
     end Error_Msg_GNAT_Extension;
--- 892,914 ----
           if Is_Core_Extension then
              Error_Msg
                ("\unit must be compiled with -gnatX '[or -gnatX0'] " &
!                "or use pragma Extensions_Allowed (On) '[or All_Extensions']",
!                Loc);
           else
              Error_Msg
                ("\unit must be compiled with -gnatX0 " &
!                "or use pragma Extensions_Allowed (All_Extensions)", Loc);
           end if;
        else
           Error_Msg_Sloc := Sloc (Ada_Version_Pragma);
           Error_Msg ("\incompatible with Ada version set#", Loc);
           if Is_Core_Extension then
              Error_Msg
!               ("\must use pragma Extensions_Allowed (On)" &
!                  " '[or All_Extensions']", Loc);
           else
              Error_Msg
!               ("\must use pragma Extensions_Allowed (All_Extensions)", Loc);
           end if;
        end if;
     end Error_Msg_GNAT_Extension;
*************** package body Errout is
*** 939,946 ****
       (Msg      : String;
        Span     : Source_Span;
        Opan     : Source_Span;
!       Msg_Cont : Boolean;
!       Node     : Node_Id)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
--- 921,927 ----
       (Msg      : String;
        Span     : Source_Span;
        Opan     : Source_Span;
!       Msg_Cont : Boolean)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
*************** package body Errout is
*** 1011,1020 ****
  
        pragma Assert (Msg (Msg'First) /= ' ' and then Msg (Msg'Last) /= ' ');
  
-       if Raise_Exception_On_Error /= 0 then
-          raise Error_Msg_Exception;
-       end if;
- 
        Continuation := Msg_Cont;
        Continuation_New_Line := False;
        Suppress_Message := False;
--- 992,997 ----
*************** package body Errout is
*** 1031,1037 ****
  
        if Suppress_Message
          and then not All_Errors_Mode
!         and then not Is_Warning_Msg
          and then not Is_Unconditional_Msg
        then
           if not Continuation then
--- 1008,1014 ----
  
        if Suppress_Message
          and then not All_Errors_Mode
!         and then Error_Msg_Kind /= Warning
          and then not Is_Unconditional_Msg
        then
           if not Continuation then
*************** package body Errout is
*** 1057,1078 ****
           return;
        end if;
  
        --  Special check for warning message to see if it should be output
  
!       if Is_Warning_Msg then
  
           --  Immediate return if warning message and warnings are suppressed
  
           if Warnings_Suppressed (Optr) /= No_String
!               or else
!             Warnings_Suppressed (Sptr) /= No_String
           then
              Cur_Msg := No_Error_Msg;
              return;
           end if;
  
           --  If the flag location is in the main extended source unit then for
!          --  sure we want the warning since it definitely belongs
  
           if In_Extended_Main_Source_Unit (Sptr) then
              null;
--- 1034,1086 ----
           return;
        end if;
  
+       if Error_Msg_Kind = Info then
+ 
+          --  Immediate return if info messages are suppressed
+ 
+          if Info_Suppressed then
+             Cur_Msg := No_Error_Msg;
+             return;
+          end if;
+ 
+          --  If the flag location is in the main extended source unit then for
+          --  sure we want the message since it definitely belongs.
+ 
+          if In_Extended_Main_Source_Unit (Sptr) then
+             null;
+ 
+          --  Keep info message if message text contains !!
+ 
+          elsif Has_Double_Exclam then
+             null;
+ 
+          --  Here is where we delete a message from a with'ed unit
+ 
+          else
+             Cur_Msg := No_Error_Msg;
+ 
+             if not Continuation then
+                Last_Killed := True;
+             end if;
+ 
+             return;
+          end if;
+ 
        --  Special check for warning message to see if it should be output
  
!       elsif Error_Msg_Kind = Warning then
  
           --  Immediate return if warning message and warnings are suppressed
  
           if Warnings_Suppressed (Optr) /= No_String
!            or else Warnings_Suppressed (Sptr) /= No_String
           then
              Cur_Msg := No_Error_Msg;
              return;
           end if;
  
           --  If the flag location is in the main extended source unit then for
!          --  sure we want the warning since it definitely belongs.
  
           if In_Extended_Main_Source_Unit (Sptr) then
              null;
*************** package body Errout is
*** 1118,1124 ****
        --  where we do this special processing, bypassing message output.
  
        if Ignore_Errors_Enable > 0 then
!          if Is_Serious_Error then
              Handle_Serious_Error;
           end if;
  
--- 1126,1132 ----
        --  where we do this special processing, bypassing message output.
  
        if Ignore_Errors_Enable > 0 then
!          if Error_Msg_Kind = Erroutc.Error then
              Handle_Serious_Error;
           end if;
  
*************** package body Errout is
*** 1204,1212 ****
  
              --  Update warning msg flag and message doc char if needed
  
!             if Is_Warning_Msg then
!                if not Errors.Table (Cur_Msg).Warn then
!                   Errors.Table (Cur_Msg).Warn := True;
                    Errors.Table (Cur_Msg).Warn_Chr := Warning_Msg_Char;
  
                 elsif Warning_Msg_Char /= "  " then
--- 1212,1220 ----
  
              --  Update warning msg flag and message doc char if needed
  
!             if Error_Msg_Kind = Warning then
!                if Errors.Table (Cur_Msg).Kind /= Warning then
!                   Errors.Table (Cur_Msg).Kind := Warning;
                    Errors.Table (Cur_Msg).Warn_Chr := Warning_Msg_Char;
  
                 elsif Warning_Msg_Char /= "  " then
*************** package body Errout is
*** 1226,1268 ****
            Prev                => No_Error_Msg,
            Sptr                => Span,
            Optr                => Opan,
!           Insertion_Sloc      => (if Has_Insertion_Line then Error_Msg_Sloc
!                                   else No_Location),
            Sfile               => Get_Source_File_Index (Sptr),
            Line                => Get_Physical_Line_Number (Sptr),
            Col                 => Get_Column_Number (Sptr),
            Compile_Time_Pragma => Is_Compile_Time_Msg,
-           Warn                => Is_Warning_Msg,
-           Info                => Is_Info_Msg,
-           Check               => Is_Check_Msg,
            Warn_Err            => False, -- reset below
            Warn_Chr            => Warning_Msg_Char,
-           Warn_Runtime_Raise  => Is_Runtime_Raise,
-           Style               => Is_Style_Msg,
-           Serious             => Is_Serious_Error,
            Uncond              => Is_Unconditional_Msg,
            Msg_Cont            => Continuation,
            Deleted             => False,
!           Node                => Node));
        Cur_Msg := Errors.Last;
  
        --  Test if warning to be treated as error
  
        Warn_Err :=
!         (Is_Warning_Msg or Is_Style_Msg)
!           and then (Warning_Treated_As_Error (Msg_Buffer (1 .. Msglen))
!                       or else
!                     Warning_Treated_As_Error (Get_Warning_Tag (Cur_Msg)));
  
        --  Propagate Warn_Err to this message and preceding continuations.
-       --  Likewise, propagate Is_Warning_Msg and Is_Runtime_Raise, because the
-       --  current continued message could have been escalated from warning to
-       --  error.
  
        for J in reverse 1 .. Errors.Last loop
!          Errors.Table (J).Warn_Err           := Warn_Err;
!          Errors.Table (J).Warn               := Is_Warning_Msg;
!          Errors.Table (J).Warn_Runtime_Raise := Is_Runtime_Raise;
           exit when not Errors.Table (J).Msg_Cont;
        end loop;
  
--- 1234,1266 ----
            Prev                => No_Error_Msg,
            Sptr                => Span,
            Optr                => Opan,
!           Insertion_Sloc      =>
!             (if Has_Insertion_Line then Error_Msg_Sloc else No_Location),
            Sfile               => Get_Source_File_Index (Sptr),
            Line                => Get_Physical_Line_Number (Sptr),
            Col                 => Get_Column_Number (Sptr),
            Compile_Time_Pragma => Is_Compile_Time_Msg,
            Warn_Err            => False, -- reset below
            Warn_Chr            => Warning_Msg_Char,
            Uncond              => Is_Unconditional_Msg,
            Msg_Cont            => Continuation,
            Deleted             => False,
!           Kind                => Error_Msg_Kind));
        Cur_Msg := Errors.Last;
  
        --  Test if warning to be treated as error
  
        Warn_Err :=
!         Error_Msg_Kind in Warning | Style
!         and then (Warning_Treated_As_Error (Msg_Buffer (1 .. Msglen))
!                   or else Warning_Treated_As_Error (Get_Warning_Tag (Cur_Msg))
!                   or else Is_Runtime_Raise);
  
        --  Propagate Warn_Err to this message and preceding continuations.
  
        for J in reverse 1 .. Errors.Last loop
!          Errors.Table (J).Warn_Err := Warn_Err;
! 
           exit when not Errors.Table (J).Msg_Cont;
        end loop;
  
*************** package body Errout is
*** 1288,1300 ****
           --  there are lots of messages.
  
           if Last_Error_Msg /= No_Error_Msg
!            and then Errors.Table (Cur_Msg).Sfile =
!                     Errors.Table (Last_Error_Msg).Sfile
             and then (Sptr > Errors.Table (Last_Error_Msg).Sptr.Ptr
!                        or else
!                           (Sptr = Errors.Table (Last_Error_Msg).Sptr.Ptr
!                              and then
!                                Optr > Errors.Table (Last_Error_Msg).Optr.Ptr))
           then
              Prev_Msg := Last_Error_Msg;
              Next_Msg := No_Error_Msg;
--- 1286,1299 ----
           --  there are lots of messages.
  
           if Last_Error_Msg /= No_Error_Msg
!            and then Errors.Table (Cur_Msg).Sfile
!                     = Errors.Table (Last_Error_Msg).Sfile
             and then (Sptr > Errors.Table (Last_Error_Msg).Sptr.Ptr
!                      or else (Sptr = Errors.Table (Last_Error_Msg).Sptr.Ptr
!                               and then Optr
!                                        > Errors.Table (Last_Error_Msg)
!                                            .Optr
!                                            .Ptr))
           then
              Prev_Msg := Last_Error_Msg;
              Next_Msg := No_Error_Msg;
*************** package body Errout is
*** 1310,1319 ****
  
                 if Errors.Table (Cur_Msg).Sfile = Errors.Table (Next_Msg).Sfile
                 then
!                   exit when Sptr < Errors.Table (Next_Msg).Sptr.Ptr
                      or else (Sptr = Errors.Table (Next_Msg).Sptr.Ptr
!                               and then
!                              Optr < Errors.Table (Next_Msg).Optr.Ptr);
                 end if;
  
                 Prev_Msg := Next_Msg;
--- 1309,1318 ----
  
                 if Errors.Table (Cur_Msg).Sfile = Errors.Table (Next_Msg).Sfile
                 then
!                   exit when
!                     Sptr < Errors.Table (Next_Msg).Sptr.Ptr
                      or else (Sptr = Errors.Table (Next_Msg).Sptr.Ptr
!                              and then Optr < Errors.Table (Next_Msg).Optr.Ptr);
                 end if;
  
                 Prev_Msg := Next_Msg;
*************** package body Errout is
*** 1330,1374 ****
           --  from the parser recovering. In full errors mode, we don't do this
           --  deletion, but otherwise such messages are discarded at this stage.
  
!          if Prev_Msg /= No_Error_Msg
!            and then Errors.Table (Prev_Msg).Line =
!                                              Errors.Table (Cur_Msg).Line
!            and then Errors.Table (Prev_Msg).Sfile =
!                                              Errors.Table (Cur_Msg).Sfile
!            and then Compiler_State = Parsing
             and then not All_Errors_Mode
           then
!             --  Don't delete unconditional messages and at this stage, don't
!             --  delete continuation lines; we attempted to delete those earlier
!             --  if the parent message was deleted.
! 
!             if not Errors.Table (Cur_Msg).Uncond
!               and then not Continuation
!             then
!                --  Don't delete if prev msg is warning and new msg is an error.
!                --  This is because we don't want a real error masked by a
!                --  warning. In all other cases (that is parse errors for the
!                --  same line that are not unconditional) we do delete the
!                --  message. This helps to avoid junk extra messages from
!                --  cascaded parsing errors
! 
!                if not (Errors.Table (Prev_Msg).Warn
!                          or else
!                        Errors.Table (Prev_Msg).Style)
!                  or else
!                       (Errors.Table (Cur_Msg).Warn
!                          or else
!                        Errors.Table (Cur_Msg).Style)
!                then
!                   --  All tests passed, delete the message by simply returning
!                   --  without any further processing.
! 
!                   pragma Assert (not Continuation);
  
!                   Last_Killed := True;
!                   return;
!                end if;
!             end if;
           end if;
  
           --  Come here if message is to be inserted in the error chain
--- 1329,1342 ----
           --  from the parser recovering. In full errors mode, we don't do this
           --  deletion, but otherwise such messages are discarded at this stage.
  
!          if Compiler_State = Parsing
             and then not All_Errors_Mode
+            and then Is_Redundant_Error_Message (Prev_Msg, Cur_Msg)
           then
!             pragma Assert (not Continuation);
  
!             Last_Killed := True;
!             return;
           end if;
  
           --  Come here if message is to be inserted in the error chain
*************** package body Errout is
*** 1390,1439 ****
           end if;
        end if;
  
!       --  Bump appropriate statistics counts
! 
!       if Errors.Table (Cur_Msg).Info then
! 
!          --  Could be (usually is) both "info" and "warning"
! 
!          if Errors.Table (Cur_Msg).Warn then
!             Warning_Info_Messages := Warning_Info_Messages + 1;
!             Warnings_Detected     := Warnings_Detected + 1;
!          else
!             Report_Info_Messages := Report_Info_Messages + 1;
!          end if;
! 
!       elsif Errors.Table (Cur_Msg).Warn
!         or else Errors.Table (Cur_Msg).Style
!       then
!          Warnings_Detected := Warnings_Detected + 1;
! 
!       elsif Errors.Table (Cur_Msg).Check then
!          Check_Messages := Check_Messages + 1;
! 
!       else
!          Total_Errors_Detected := Total_Errors_Detected + 1;
  
!          if Errors.Table (Cur_Msg).Serious then
!             Serious_Errors_Detected := Serious_Errors_Detected + 1;
!             Handle_Serious_Error;
  
!          --  If not serious error, set Fatal_Error to indicate ignored error
  
!          else
!             declare
!                U : constant Unit_Number_Type := Get_Source_Unit (Sptr);
!             begin
!                if Fatal_Error (U) = None then
!                   Set_Fatal_Error (U, Error_Ignored);
!                end if;
!             end;
!          end if;
        end if;
  
        --  Record warning message issued
  
!       if Errors.Table (Cur_Msg).Warn
          and then not Errors.Table (Cur_Msg).Msg_Cont
        then
           Warning_Msg := Cur_Msg;
--- 1358,1383 ----
           end if;
        end if;
  
!       Increase_Error_Msg_Count (Errors.Table (Cur_Msg));
  
!       if Errors.Table (Cur_Msg).Kind = Erroutc.Error then
!          Handle_Serious_Error;
  
!       --  If not serious error, set Fatal_Error to indicate ignored error
  
!       elsif Errors.Table (Cur_Msg).Kind = Non_Serious_Error then
!          declare
!             U : constant Unit_Number_Type := Get_Source_Unit (Sptr);
!          begin
!             if Fatal_Error (U) = None then
!                Set_Fatal_Error (U, Error_Ignored);
!             end if;
!          end;
        end if;
  
        --  Record warning message issued
  
!       if Errors.Table (Cur_Msg).Kind = Warning
          and then not Errors.Table (Cur_Msg).Msg_Cont
        then
           Warning_Msg := Cur_Msg;
*************** package body Errout is
*** 1463,1473 ****
              Has_Insertion_Line := False;
  
              Error_Msg_Internal
!               (Msg      => Msg,
!                Span     => Span,
!                Opan     => Opan,
!                Msg_Cont => True,
!                Node     => Node);
           end;
        end if;
     end Error_Msg_Internal;
--- 1407,1413 ----
              Has_Insertion_Line := False;
  
              Error_Msg_Internal
!               (Msg => Msg, Span => Span, Opan => Opan, Msg_Cont => True);
           end;
        end if;
     end Error_Msg_Internal;
*************** package body Errout is
*** 1539,1545 ****
  
        --  Special handling for warning messages
  
!       if Is_Warning_Msg then
  
           --  Suppress if no warnings set for either entity or node
  
--- 1479,1485 ----
  
        --  Special handling for warning messages
  
!       if Error_Msg_Kind = Warning then
  
           --  Suppress if no warnings set for either entity or node
  
*************** package body Errout is
*** 1556,1562 ****
  
        if All_Errors_Mode
          or else Is_Unconditional_Msg
!         or else Is_Warning_Msg
          or else OK_Node (N)
          or else (Msg (Msg'First) = '\' and then not Last_Killed)
        then
--- 1496,1502 ----
  
        if All_Errors_Mode
          or else Is_Unconditional_Msg
!         or else Error_Msg_Kind = Warning
          or else OK_Node (N)
          or else (Msg (Msg'First) = '\' and then not Last_Killed)
        then
*************** package body Errout is
*** 1658,1667 ****
           if not Errors.Table (E).Deleted then
              Errors.Table (E).Deleted := True;
              Warnings_Detected := Warnings_Detected - 1;
- 
-             if Errors.Table (E).Info then
-                Warning_Info_Messages := Warning_Info_Messages - 1;
-             end if;
           end if;
        end Delete_Warning;
  
--- 1598,1603 ----
*************** package body Errout is
*** 1705,1711 ****
              Tag : constant String := Get_Warning_Tag (Cur);
  
           begin
!             if (CE.Warn and not CE.Deleted)
                and then
                     (Warning_Specifically_Suppressed (CE.Sptr.Ptr, CE.Text, Tag)
                                                                  /= No_String
--- 1641,1648 ----
              Tag : constant String := Get_Warning_Tag (Cur);
  
           begin
!             if CE.Kind = Warning
!               and then not CE.Deleted
                and then
                     (Warning_Specifically_Suppressed (CE.Sptr.Ptr, CE.Text, Tag)
                                                                  /= No_String
*************** package body Errout is
*** 1745,1751 ****
        --  do this on the last call, after all possible warnings are posted.
  
        if Last_Call then
!          Validate_Specific_Warnings (Error_Msg'Access);
        end if;
     end Finalize;
  
--- 1682,1688 ----
        --  do this on the last call, after all possible warnings are posted.
  
        if Last_Call then
!          Validate_Specific_Warnings;
        end if;
     end Finalize;
  
*************** package body Errout is
*** 1858,1863 ****
--- 1795,1802 ----
                         | N_Declaration
                         | N_Access_To_Subprogram_Definition
                         | N_Generic_Instantiation
+                        | N_Component_Association
+                        | N_Iterated_Component_Association
                         | N_Later_Decl_Item
                         | N_Use_Package_Clause
                         | N_Array_Type_Definition
*************** package body Errout is
*** 1978,1984 ****
  
        Warnings_Treated_As_Errors := 0;
        Warnings_Detected := 0;
-       Warning_Info_Messages := 0;
        Warnings_As_Errors_Count := 0;
  
        --  Initialize warnings tables
--- 1917,1922 ----
*************** package body Errout is
*** 2001,2006 ****
--- 1939,1988 ----
        --  True if S starts with Size_For
     end Is_Size_Too_Small_Message;
  
+    --------------------------------
+    -- Validate_Specific_Warnings --
+    --------------------------------
+ 
+    procedure Validate_Specific_Warnings is
+    begin
+       if not Warnsw.Warn_On_Warnings_Off then
+          return;
+       end if;
+ 
+       for J in Specific_Warnings.First .. Specific_Warnings.Last loop
+          declare
+             SWE : Specific_Warning_Entry renames Specific_Warnings.Table (J);
+ 
+          begin
+             if not SWE.Config then
+ 
+                --  Warn for unmatched Warnings (Off, ...)
+ 
+                if SWE.Open then
+                   Error_Msg
+                     ("?.w?pragma Warnings Off with no matching Warnings On",
+                      SWE.Start);
+ 
+                --  Warn for ineffective Warnings (Off, ..)
+ 
+                elsif not SWE.Used
+ 
+                  --  Do not issue this warning for -Wxxx messages since the
+                  --  back-end doesn't report the information. Note that there
+                  --  is always an asterisk at the start of every message.
+ 
+                  and then not
+                    (SWE.Msg'Length > 3 and then SWE.Msg (2 .. 3) = "-W")
+                then
+                   Error_Msg
+                     ("?.w?no warning suppressed by this pragma",
+                      SWE.Start);
+                end if;
+             end if;
+          end;
+       end loop;
+    end Validate_Specific_Warnings;
+ 
     ---------------
     -- Last_Node --
     ---------------
*************** package body Errout is
*** 2345,2353 ****
        --  whose value is the JSON location of Error.Sptr.Ptr. If Sptr.First and
        --  Sptr.Last are different from Sptr.Ptr, they will be printed as JSON
        --  locations under the names "start" and "finish".
-       --  When Include_Subprogram_In_Messages is true (-gnatdJ) an additional,
-       --  non-standard, attribute named "subprogram" will be added, allowing
-       --  precisely identifying the subprogram surrounding the span.
  
        -----------------------
        --  Is_Continuation  --
--- 2327,2332 ----
*************** package body Errout is
*** 2393,2399 ****
           Write_Str ("{""file"":""");
           if Full_Path_Name_For_Brief_Errors then
              Write_JSON_Escaped_String
!               (System.OS_Lib.Normalize_Pathname (Get_Name_String (Name)));
           else
              Write_Name (Name);
           end if;
--- 2372,2379 ----
           Write_Str ("{""file"":""");
           if Full_Path_Name_For_Brief_Errors then
              Write_JSON_Escaped_String
!               (System.OS_Lib.Normalize_Pathname
!                  (Get_Name_String (Name), Resolve_Links => False));
           else
              Write_Name (Name);
           end if;
*************** package body Errout is
*** 2424,2435 ****
              Write_JSON_Location (Span.Last);
           end if;
  
-          if Include_Subprogram_In_Messages then
-             Write_Str (",""subprogram"":""");
-             Write_JSON_Escaped_String (Subprogram_Name_Ptr (Error.Node));
-             Write_Str ("""");
-          end if;
- 
           Write_Str ("}");
        end Write_JSON_Span;
  
--- 2404,2409 ----
*************** package body Errout is
*** 2447,2460 ****
     --  Start of processing for Output_JSON_Message
  
     begin
- 
        --  Print message kind
  
        Write_Str ("{""kind"":");
  
!       if Errors.Table (E).Warn and then not Errors.Table (E).Warn_Err then
           Write_Str ("""warning""");
!       elsif Errors.Table (E).Info or else Errors.Table (E).Check then
           Write_Str ("""note""");
        else
           Write_Str ("""error""");
--- 2421,2439 ----
     --  Start of processing for Output_JSON_Message
  
     begin
        --  Print message kind
  
        Write_Str ("{""kind"":");
  
!       if Errors.Table (E).Kind = Warning and then not Errors.Table (E).Warn_Err
!       then
           Write_Str ("""warning""");
!       elsif Errors.Table (E).Kind in
!               Info
!               | High_Check
!               | Medium_Check
!               | Low_Check
!       then
           Write_Str ("""note""");
        else
           Write_Str ("""error""");
*************** package body Errout is
*** 2513,2520 ****
  
        --  Local subprograms
  
!       procedure Write_Error_Summary;
!       --  Write error summary
  
        procedure Write_Header (Sfile : Source_File_Index);
        --  Write header line (compiling or checking given file)
--- 2492,2500 ----
  
        --  Local subprograms
  
!       procedure Emit_Error_Msgs;
!       --  Emit all error messages in the table use the pretty printed format if
!       --  -gnatdF is used otherwise use the brief format.
  
        procedure Write_Header (Sfile : Source_File_Index);
        --  Write header line (compiling or checking given file)
*************** package body Errout is
*** 2552,2695 ****
        --  SGR_Span is the SGR string to start the section of code in the span,
        --  that should be closed with SGR_Reset.
  
!       -------------------------
!       -- Write_Error_Summary --
!       -------------------------
  
!       procedure Write_Error_Summary is
        begin
!          --  Extra blank line if error messages or source listing were output
! 
!          if Total_Errors_Detected + Warnings_Detected > 0 or else Full_List
!          then
!             Write_Eol;
!          end if;
! 
!          --  Message giving number of lines read and number of errors detected.
!          --  This normally goes to Standard_Output. The exception is when brief
!          --  mode is not set, verbose mode (or full list mode) is set, and
!          --  there are errors. In this case we send the message to standard
!          --  error to make sure that *something* appears on standard error
!          --  in an error situation.
! 
!          if Total_Errors_Detected + Warnings_Detected /= 0
!            and then not Brief_Output
!            and then (Verbose_Mode or Full_List)
!          then
!             Set_Standard_Error;
!          end if;
! 
!          --  Message giving total number of lines. Don't give this message if
!          --  the Main_Source line is unknown (this happens in error situations,
!          --  e.g. when integrated preprocessing fails).
! 
!          if Main_Source_File > No_Source_File then
!             Write_Str (" ");
!             Write_Int (Num_Source_Lines (Main_Source_File));
! 
!             if Num_Source_Lines (Main_Source_File) = 1 then
!                Write_Str (" line: ");
!             else
!                Write_Str (" lines: ");
!             end if;
!          end if;
! 
!          if Total_Errors_Detected = 0 then
!             Write_Str ("No errors");
! 
!          elsif Total_Errors_Detected = 1 then
!             Write_Str ("1 error");
! 
!          else
!             Write_Int (Total_Errors_Detected);
!             Write_Str (" errors");
!          end if;
! 
!          --  We now need to output warnings. When using -gnatwe, all warnings
!          --  should be treated as errors, except for warnings originating from
!          --  the use of the Compile_Time_Warning pragma. Another situation
!          --  where a warning might be treated as an error is when the source
!          --  code contains a Warning_As_Error pragma.
!          --  When warnings are treated as errors, we still log them as
!          --  warnings, but we add a message denoting how many of these warnings
!          --  are also errors.
! 
!          declare
!             Warnings_Count : constant Int :=
!                Warnings_Detected - Warning_Info_Messages;
! 
!             Compile_Time_Warnings : Int;
!             --  Number of warnings that come from a Compile_Time_Warning
!             --  pragma.
! 
!             Non_Compile_Time_Warnings : Int;
!             --  Number of warnings that do not come from a Compile_Time_Warning
!             --  pragmas.
! 
!          begin
!             if Warnings_Count > 0 then
!                Write_Str (", ");
!                Write_Int (Warnings_Count);
!                Write_Str (" warning");
! 
!                if Warnings_Count > 1 then
!                   Write_Char ('s');
!                end if;
  
!                Compile_Time_Warnings := Count_Compile_Time_Pragma_Warnings;
!                Non_Compile_Time_Warnings :=
!                   Warnings_Count - Compile_Time_Warnings;
  
!                if Warning_Mode = Treat_As_Error
!                  and then Non_Compile_Time_Warnings > 0
!                then
!                   Write_Str (" (");
  
!                   if Compile_Time_Warnings > 0 then
!                      Write_Int (Non_Compile_Time_Warnings);
!                      Write_Str (" ");
!                   end if;
  
!                   Write_Str ("treated as error");
  
!                   if Non_Compile_Time_Warnings > 1 then
!                      Write_Char ('s');
                    end if;
  
!                   Write_Char (')');
  
!                elsif Warnings_Treated_As_Errors > 0 then
!                   Write_Str (" (");
  
!                   if Warnings_Treated_As_Errors /= Warnings_Count then
!                      Write_Int (Warnings_Treated_As_Errors);
!                      Write_Str (" ");
!                   end if;
  
!                   Write_Str ("treated as error");
  
!                   if Warnings_Treated_As_Errors > 1 then
!                      Write_Str ("s");
                    end if;
- 
-                   Write_Str (")");
                 end if;
              end if;
-          end;
- 
-          if Warning_Info_Messages + Report_Info_Messages /= 0 then
-             Write_Str (", ");
-             Write_Int (Warning_Info_Messages + Report_Info_Messages);
-             Write_Str (" info message");
  
!             if Warning_Info_Messages + Report_Info_Messages > 1 then
!                Write_Char ('s');
!             end if;
!          end if;
  
-          Write_Eol;
           Set_Standard_Output;
!       end Write_Error_Summary;
  
        ------------------
        -- Write_Header --
--- 2532,2617 ----
        --  SGR_Span is the SGR string to start the section of code in the span,
        --  that should be closed with SGR_Reset.
  
!       --------------------
!       -- Emit_Error_Msgs --
!       ---------------------
  
!       procedure Emit_Error_Msgs is
!          Use_Prefix : Boolean;
!          E          : Error_Msg_Id;
        begin
!          Set_Standard_Error;
  
!          E := First_Error_Msg;
!          while E /= No_Error_Msg loop
  
!             --  If -gnatdF is used, separate main messages from previous
!             --  messages with a newline (unless it is an info message) and
!             --  make continuation messages follow the main message with only
!             --  an indentation of two space characters, without repeating
!             --  file:line:col: prefix.
  
!             Use_Prefix :=
!               not (Debug_Flag_FF and then Errors.Table (E).Msg_Cont);
  
!             if not Errors.Table (E).Deleted then
  
!                if Debug_Flag_FF then
!                   if Errors.Table (E).Msg_Cont then
!                      Write_Str ("  ");
!                   elsif Errors.Table (E).Kind /= Info then
!                      Write_Eol;
                    end if;
+                end if;
  
!                if Use_Prefix then
!                   Output_Msg_Location (E);
!                end if;
  
!                Output_Msg_Text (E);
!                Write_Eol;
  
!                --  If -gnatdF is used, write the source code line
!                --  corresponding to the location of the main message (unless
!                --  it is an info message). Also write the source code line
!                --  corresponding to an insertion location inside
!                --  continuation messages.
  
!                if Debug_Flag_FF
!                  and then Errors.Table (E).Kind /= Info
!                then
!                   if Errors.Table (E).Msg_Cont then
!                      declare
!                         Loc : constant Source_Ptr :=
!                         Errors.Table (E).Insertion_Sloc;
!                      begin
!                         if Loc /= No_Location then
!                            Write_Source_Code_Lines
!                              (To_Span (Loc), SGR_Span => SGR_Note);
!                         end if;
!                      end;
  
!                   else
!                      declare
!                         SGR_Span : constant String :=
!                         (if Errors.Table (E).Kind = Info then SGR_Note
!                            elsif Errors.Table (E).Kind = Warning
!                              and then not Errors.Table (E).Warn_Err
!                            then SGR_Warning
!                            else SGR_Error);
!                      begin
!                         Write_Source_Code_Lines
!                           (Errors.Table (E).Optr, SGR_Span);
!                      end;
                    end if;
                 end if;
              end if;
  
!             E := Errors.Table (E).Next;
!          end loop;
  
           Set_Standard_Output;
!       end Emit_Error_Msgs;
  
        ------------------
        -- Write_Header --
*************** package body Errout is
*** 3045,3051 ****
  
        E          : Error_Msg_Id;
        Err_Flag   : Boolean;
-       Use_Prefix : Boolean;
  
     --  Start of processing for Output_Messages
  
--- 2967,2972 ----
*************** package body Errout is
*** 3106,3205 ****
  
           Set_Standard_Output;
  
!       --  Brief Error mode
! 
!       elsif Brief_Output or (not Full_List and not Verbose_Mode) then
!          Set_Standard_Error;
! 
!          E := First_Error_Msg;
!          while E /= No_Error_Msg loop
! 
!             --  If -gnatdF is used, separate main messages from previous
!             --  messages with a newline (unless it is an info message) and
!             --  make continuation messages follow the main message with only
!             --  an indentation of two space characters, without repeating
!             --  file:line:col: prefix.
! 
!             Use_Prefix :=
!               not (Debug_Flag_FF and then Errors.Table (E).Msg_Cont);
! 
!             if not Errors.Table (E).Deleted and then not Debug_Flag_KK then
! 
!                if Debug_Flag_FF then
!                   if Errors.Table (E).Msg_Cont then
!                      Write_Str ("  ");
!                   elsif not Errors.Table (E).Info then
!                      Write_Eol;
!                   end if;
!                end if;
! 
!                if Use_Prefix then
!                   Write_Str (SGR_Locus);
! 
!                   if Full_Path_Name_For_Brief_Errors then
!                      Write_Name (Full_Ref_Name (Errors.Table (E).Sfile));
!                   else
!                      Write_Name (Reference_Name (Errors.Table (E).Sfile));
!                   end if;
! 
!                   Write_Char (':');
!                   Write_Int (Int (Physical_To_Logical
!                              (Errors.Table (E).Line,
!                                 Errors.Table (E).Sfile)));
!                   Write_Char (':');
! 
!                   if Errors.Table (E).Col < 10 then
!                      Write_Char ('0');
!                   end if;
! 
!                   Write_Int (Int (Errors.Table (E).Col));
!                   Write_Str (": ");
  
!                   Write_Str (SGR_Reset);
!                end if;
  
!                Output_Msg_Text (E);
!                Write_Eol;
  
!                --  If -gnatdF is used, write the source code line corresponding
!                --  to the location of the main message (unless it is an info
!                --  message). Also write the source code line corresponding to
!                --  an insertion location inside continuation messages.
  
!                if Debug_Flag_FF
!                  and then not Errors.Table (E).Info
!                then
!                   if Errors.Table (E).Msg_Cont then
!                      declare
!                         Loc : constant Source_Ptr :=
!                           Errors.Table (E).Insertion_Sloc;
!                      begin
!                         if Loc /= No_Location then
!                            Write_Source_Code_Lines
!                              (To_Span (Loc), SGR_Span => SGR_Note);
!                         end if;
!                      end;
  
!                   else
!                      declare
!                         SGR_Span : constant String :=
!                           (if Errors.Table (E).Info then SGR_Note
!                            elsif Errors.Table (E).Warn
!                              and then not Errors.Table (E).Warn_Err
!                            then SGR_Warning
!                            else SGR_Error);
!                      begin
!                         Write_Source_Code_Lines
!                           (Errors.Table (E).Optr, SGR_Span);
!                      end;
!                   end if;
!                end if;
!             end if;
  
!             E := Errors.Table (E).Next;
!          end loop;
  
!          Set_Standard_Output;
        end if;
  
        --  Full source listing case
--- 3027,3051 ----
  
           Set_Standard_Output;
  
!       --  Do not print any messages if all messages are killed -gnatdK
  
!       elsif Debug_Flag_KK then
  
!          null;
  
!       --  Brief Error mode
  
!       elsif Brief_Output or (not Full_List and not Verbose_Mode) then
  
!          --  Use updated diagnostic mechanism
  
!          if Debug_Flag_Underscore_DD then
!             Convert_Errors_To_Diagnostics;
  
!             Emit_Diagnostics;
!          else
!             Emit_Error_Msgs;
!          end if;
        end if;
  
        --  Full source listing case
*************** package body Errout is
*** 3394,3411 ****
           Write_Max_Errors;
        end if;
  
-       --  Even though Warning_Info_Messages are a subclass of warnings, they
-       --  must not be treated as errors when -gnatwe is in effect.
- 
        if Warning_Mode = Treat_As_Error then
           declare
!             Compile_Time_Pragma_Warnings : constant Int :=
                 Count_Compile_Time_Pragma_Warnings;
           begin
!             Total_Errors_Detected := Total_Errors_Detected + Warnings_Detected
!                - Warning_Info_Messages - Compile_Time_Pragma_Warnings;
!             Warnings_Detected :=
!                Warning_Info_Messages + Compile_Time_Pragma_Warnings;
           end;
        end if;
     end Output_Messages;
--- 3240,3258 ----
           Write_Max_Errors;
        end if;
  
        if Warning_Mode = Treat_As_Error then
           declare
!             Compile_Time_Pragma_Warnings : constant Nat :=
                 Count_Compile_Time_Pragma_Warnings;
+             Total : constant Int := Total_Errors_Detected + Warnings_Detected
+                - Compile_Time_Pragma_Warnings;
+             --  We need to protect against a negative Total here, because
+             --  if a pragma Compile_Time_Warning occurs in dead code, it
+             --  gets counted in Compile_Time_Pragma_Warnings but not in
+             --  Warnings_Detected.
           begin
!             Total_Errors_Detected := Int'Max (Total, 0);
!             Warnings_Detected := Compile_Time_Pragma_Warnings;
           end;
        end if;
     end Output_Messages;
*************** package body Errout is
*** 3476,3482 ****
           --  Deal with matching entry in List_Pragmas table
  
           if Full_List
!            and then List_Pragmas_Index <= List_Pragmas.Last
             and then S = List_Pragmas.Table (List_Pragmas_Index).Ploc
           then
              case List_Pragmas.Table (List_Pragmas_Index).Ptyp is
--- 3323,3330 ----
           --  Deal with matching entry in List_Pragmas table
  
           if Full_List
!            and then List_Pragmas_Index in
!                     List_Pragmas.First .. List_Pragmas.Last
             and then S = List_Pragmas.Table (List_Pragmas_Index).Ploc
           then
              case List_Pragmas.Table (List_Pragmas_Index).Ptyp is
*************** package body Errout is
*** 3588,3619 ****
                 --  not remove style messages here. They are warning messages
                 --  but not ones we want removed in this context.
  
!                and then (Errors.Table (E).Warn
!                            or else
!                          Errors.Table (E).Warn_Runtime_Raise)
  
                 --  Don't remove unconditional messages
  
                 and then not Errors.Table (E).Uncond
              then
!                if Errors.Table (E).Warn then
!                   Warnings_Detected := Warnings_Detected - 1;
!                end if;
! 
!                if Errors.Table (E).Info then
!                   Warning_Info_Messages := Warning_Info_Messages - 1;
!                end if;
! 
!                --  When warning about a runtime exception has been escalated
!                --  into error, the starting message has increased the total
!                --  errors counter, so here we decrease this counter.
! 
!                if Errors.Table (E).Warn_Runtime_Raise
!                  and then not Errors.Table (E).Msg_Cont
!                  and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors
!                then
!                   Total_Errors_Detected := Total_Errors_Detected - 1;
!                end if;
  
                 return True;
  
--- 3436,3448 ----
                 --  not remove style messages here. They are warning messages
                 --  but not ones we want removed in this context.
  
!                and then Errors.Table (E).Kind = Warning
  
                 --  Don't remove unconditional messages
  
                 and then not Errors.Table (E).Uncond
              then
!                Warnings_Detected := Warnings_Detected - 1;
  
                 return True;
  
*************** package body Errout is
*** 3803,3837 ****
        Errors_Must_Be_Ignored := To;
     end Set_Ignore_Errors;
  
-    ------------------------------
-    -- Set_Msg_Insertion_Column --
-    ------------------------------
- 
-    procedure Set_Msg_Insertion_Column is
-    begin
-       if RM_Column_Check then
-          Set_Msg_Str (" in column ");
-          Set_Msg_Int (Int (Error_Msg_Col) + 1);
-       end if;
-    end Set_Msg_Insertion_Column;
- 
     ----------------------------
     -- Set_Msg_Insertion_Node --
     ----------------------------
  
     procedure Set_Msg_Insertion_Node is
        K : Node_Kind;
  
     begin
!       Suppress_Message :=
!         Error_Msg_Node_1 = Error
!           or else Error_Msg_Node_1 = Any_Type;
! 
!       if Error_Msg_Node_1 = Empty then
!          Set_Msg_Blank_Conditional;
!          Set_Msg_Str ("<empty>");
  
!       elsif Error_Msg_Node_1 = Error then
           Set_Msg_Blank;
           Set_Msg_Str ("<error>");
  
--- 3632,3649 ----
        Errors_Must_Be_Ignored := To;
     end Set_Ignore_Errors;
  
     ----------------------------
     -- Set_Msg_Insertion_Node --
     ----------------------------
  
     procedure Set_Msg_Insertion_Node is
+       pragma Assert (Present (Error_Msg_Node_1));
        K : Node_Kind;
  
     begin
!       Suppress_Message := Error_Msg_Node_1 in Types.Error | Any_Type;
  
!       if Error_Msg_Node_1 = Types.Error then
           Set_Msg_Blank;
           Set_Msg_Str ("<error>");
  
*************** package body Errout is
*** 3852,3866 ****
  
           K := Nkind (Error_Msg_Node_1);
  
!          --  If we have operator case, skip quotes since name of operator
!          --  itself will supply the required quotations. An operator can be an
!          --  applied use in an expression or an explicit operator symbol, or an
!          --  identifier whose name indicates it is an operator.
  
!          if K in N_Op
!            or else K = N_Operator_Symbol
!            or else K = N_Defining_Operator_Symbol
!            or else ((K = N_Identifier or else K = N_Defining_Identifier)
                        and then Is_Operator_Name (Chars (Error_Msg_Node_1)))
           then
              Set_Msg_Node (Error_Msg_Node_1);
--- 3664,3674 ----
  
           K := Nkind (Error_Msg_Node_1);
  
!          --  Skip quotes in the operator case, because the operator will supply
!          --  the required quotes.
  
!          if K in N_Op | N_Operator_Symbol | N_Defining_Operator_Symbol
!            or else (K in N_Identifier | N_Defining_Identifier
                        and then Is_Operator_Name (Chars (Error_Msg_Node_1)))
           then
              Set_Msg_Node (Error_Msg_Node_1);
*************** package body Errout is
*** 4248,4256 ****
        Msglen := 0;
        Flag_Source := Get_Source_File_Index (Flag);
  
!       --  Skip info: at start, we have recorded this in Is_Info_Msg, and this
!       --  will be used (Info field in error message object) to put back the
!       --  string when it is printed. We need to do this, or we get confused
        --  with instantiation continuations.
  
        if Text'Length > 6
--- 4056,4064 ----
        Msglen := 0;
        Flag_Source := Get_Source_File_Index (Flag);
  
!       --  Skip info: at start, we have recorded this in Error_Msg_Kind, and
!       --  this will be used (Info field in error message object) to put back
!       --  the string when it is printed. We need to do this, or we get confused
        --  with instantiation continuations.
  
        if Text'Length > 6
*************** package body Errout is
*** 4370,4385 ****
                 else
                    --  Switch the message from a warning to an error if the flag
                    --  -gnatwE is specified to treat run-time exception warnings
!                   --  as errors.
  
!                   if Is_Warning_Msg
                      and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors
                    then
-                      Is_Warning_Msg   := False;
                       Is_Runtime_Raise := True;
                    end if;
  
!                   if Is_Warning_Msg then
                       Set_Msg_Str ("will be raised at run time");
                    else
                       Set_Msg_Str ("would have been raised at run time");
--- 4178,4192 ----
                 else
                    --  Switch the message from a warning to an error if the flag
                    --  -gnatwE is specified to treat run-time exception warnings
!                   --  as non-serious errors.
  
!                   if Error_Msg_Kind = Warning
                      and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors
                    then
                       Is_Runtime_Raise := True;
                    end if;
  
!                   if Error_Msg_Kind = Warning then
                       Set_Msg_Str ("will be raised at run time");
                    else
                       Set_Msg_Str ("would have been raised at run time");
*************** package body Errout is
*** 4389,4395 ****
              --   ']' (may be/might have been raised at run time)
  
              when ']' =>
!                if Is_Warning_Msg then
                    Set_Msg_Str ("may be raised at run time");
                 else
                    Set_Msg_Str ("might have been raised at run time");
--- 4196,4202 ----
              --   ']' (may be/might have been raised at run time)
  
              when ']' =>
!                if Error_Msg_Kind = Warning then
                    Set_Msg_Str ("may be raised at run time");
                 else
                    Set_Msg_Str ("might have been raised at run time");
*************** package body Errout is
*** 4411,4417 ****
        P : Node_Id;
  
     begin
!       if Is_Serious_Error then
  
           --  We always set Error_Posted on the node itself
  
--- 4218,4224 ----
        P : Node_Id;
  
     begin
!       if Error_Msg_Kind = Erroutc.Error then
  
           --  We always set Error_Posted on the node itself
  
diff -Nrcpad gcc-14.2.0/gcc/ada/errout.ads gcc-15.1.0/gcc/ada/errout.ads
*** gcc-14.2.0/gcc/ada/errout.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/errout.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Errout is
*** 48,68 ****
     --  Source_Reference line, then this is initialized to No_Source_File, to
     --  force an initial reference to the real source file name.
  
-    Raise_Exception_On_Error : Nat renames Err_Vars.Raise_Exception_On_Error;
-    --  If this value is non-zero, then any attempt to generate an error
-    --  message raises the exception Error_Msg_Exception, and the error message
-    --  is not output. This is used for defending against junk resulting from
-    --  illegalities, and also for substitution of more appropriate error
-    --  messages from higher semantic levels. It is a counter so that the
-    --  increment/decrement protocol nests neatly.
- 
-    Error_Msg_Exception : exception renames Err_Vars.Error_Msg_Exception;
-    --  Exception raised if Raise_Exception_On_Error is true
- 
-    Current_Node : Node_Id := Empty;
-    --  Used by Error_Msg as a default Node_Id.
-    --  Relevant only when Opt.Include_Subprogram_In_Messages is set.
- 
     -----------------------------------
     -- Suppression of Error Messages --
     -----------------------------------
--- 48,53 ----
*************** package Errout is
*** 173,184 ****
     --      obtained from the Sloc field of the given node or nodes. If no Sloc
     --      is available (happens e.g. for nodes in package Standard), then the
     --      default case (see Scans spec) is used. The nodes to be used are
!    --      stored in Error_Msg_Node_1, Error_Msg_Node_2. No insertion occurs
!    --      for the Empty node, and the Error node results in the insertion of
!    --      the characters <error>. In addition, if the special global variable
!    --      Error_Msg_Qual_Level is non-zero, then the reference will include
!    --      up to the given number of levels of qualification, using the scope
!    --      chain.
     --
     --      Note: the special names _xxx (xxx = Pre/Post/Invariant) are changed
     --      to insert the string xxx'Class into the message.
--- 158,168 ----
     --      obtained from the Sloc field of the given node or nodes. If no Sloc
     --      is available (happens e.g. for nodes in package Standard), then the
     --      default case (see Scans spec) is used. The nodes to be used are
!    --      stored in Error_Msg_Node_1, Error_Msg_Node_2, which must not be
!    --      Empty. The Error node results in the insertion of "<error>". In
!    --      addition, if the special global variable Error_Msg_Qual_Level is
!    --      non-zero, then the reference will include up to the given number of
!    --      levels of qualification, using the scope chain.
     --
     --      Note: the special names _xxx (xxx = Pre/Post/Invariant) are changed
     --      to insert the string xxx'Class into the message.
*************** package Errout is
*** 293,323 ****
     --      not necessary to go through any computational effort to include it.
     --
     --      Note: this usage is obsolete; use ?? ?*? ?$? ?x? ?.x? ?_x? to
!    --      specify the string to be added when Warn_Doc_Switch is set to True.
!    --      If this switch is True, then for simple ? messages it has no effect.
!    --      This simple form is to ease transition and may be removed later
!    --      except for GNATprove-specific messages (info and warnings) which are
!    --      not subject to the same GNAT warning switches.
  
     --    Insertion character ?? (Two question marks: default warning)
!    --      Like ?, but if the flag Warn_Doc_Switch is True, adds the string
     --      "[enabled by default]" at the end of the warning message. For
     --      continuations, use this in each continuation message.
  
     --    Insertion character ?x? ?.x? ?_x? (warning with switch)
     --      "x" is a (lower-case) warning switch character.
!    --      Like ??, but if the flag Warn_Doc_Switch is True, adds the string
     --      "[-gnatwx]", "[-gnatw.x]", "[-gnatw_x]", or "[-gnatyx]" (for style
     --      messages), at the end of the warning message. For continuations, use
     --      this on each continuation message.
  
     --    Insertion character ?*? (restriction warning)
!    --      Like ?, but if the flag Warn_Doc_Switch is True, adds the string
     --      "[restriction warning]" at the end of the warning message. For
     --      continuations, use this on each continuation message.
  
     --    Insertion character ?$? (elaboration informational messages)
!    --      Like ?, but if the flag Warn_Doc_Switch is True, adds the string
     --      "[-gnatel]" at the end of the info message. This is used for the
     --      messages generated by the switch -gnatel. For continuations, use
     --      this on each continuation message.
--- 277,307 ----
     --      not necessary to go through any computational effort to include it.
     --
     --      Note: this usage is obsolete; use ?? ?*? ?$? ?x? ?.x? ?_x? to
!    --      specify the string to be added when Warning_Doc_Switch is set to
!    --      True. If this switch is True, then for simple ? messages it has no
!    --      effect. This simple form is to ease transition and may be removed
!    --      later except for GNATprove-specific messages (info and warnings)
!    --      which are not subject to the same GNAT warning switches.
  
     --    Insertion character ?? (Two question marks: default warning)
!    --      Like ?, but if the flag Warning_Doc_Switch is True, adds the string
     --      "[enabled by default]" at the end of the warning message. For
     --      continuations, use this in each continuation message.
  
     --    Insertion character ?x? ?.x? ?_x? (warning with switch)
     --      "x" is a (lower-case) warning switch character.
!    --      Like ??, but if the flag Warning_Doc_Switch is True, adds the string
     --      "[-gnatwx]", "[-gnatw.x]", "[-gnatw_x]", or "[-gnatyx]" (for style
     --      messages), at the end of the warning message. For continuations, use
     --      this on each continuation message.
  
     --    Insertion character ?*? (restriction warning)
!    --      Like ?, but if the flag Warning_Doc_Switch is True, adds the string
     --      "[restriction warning]" at the end of the warning message. For
     --      continuations, use this on each continuation message.
  
     --    Insertion character ?$? (elaboration informational messages)
!    --      Like ?, but if the flag Warning_Doc_Switch is True, adds the string
     --      "[-gnatel]" at the end of the info message. This is used for the
     --      messages generated by the switch -gnatel. For continuations, use
     --      this on each continuation message.
*************** package Errout is
*** 738,747 ****
     procedure Error_Msg
       (Msg                    : String;
        Flag_Location          : Source_Ptr;
        Is_Compile_Time_Pragma : Boolean);
!    --  Same as Error_Msg (String, Source_Ptr) except Is_Compile_Time_Pragma
!    --  lets the caller specify whether this is a Compile_Time_Warning or
!    --  Compile_Time_Error pragma.
  
     procedure Error_Msg_S (Msg : String);
     --  Output a message at current scan pointer location. This routine can be
--- 722,732 ----
     procedure Error_Msg
       (Msg                    : String;
        Flag_Location          : Source_Ptr;
+       N                      : Node_Id;
        Is_Compile_Time_Pragma : Boolean);
!    --  Same as Error_Msg (String, Source_Ptr, Node_Id) except
!    --  Is_Compile_Time_Pragma lets the caller specify whether this is a
!    --  Compile_Time_Warning or Compile_Time_Error pragma.
  
     procedure Error_Msg_S (Msg : String);
     --  Output a message at current scan pointer location. This routine can be
*************** package Errout is
*** 884,889 ****
--- 869,881 ----
     --  ignored. A call with To=False restores the default treatment in which
     --  error calls are treated as usual (and as described in this spec).
  
+    procedure Set_Msg_Text (Text : String; Flag : Source_Ptr);
+    --  Add a sequence of characters to the current message. The characters may
+    --  be one of the special insertion characters (see documentation in spec).
+    --  Flag is the location at which the error is to be posted, which is used
+    --  to determine whether or not the # insertion needs a file name. The
+    --  variables Msg_Buffer are set on return Msglen.
+ 
     procedure Set_Warnings_Mode_Off (Loc : Source_Ptr; Reason : String_Id)
       renames Erroutc.Set_Warnings_Mode_Off;
     --  Called in response to a pragma Warnings (Off) to record the source
*************** package Errout is
*** 896,902 ****
     --  location from which warnings are to be turned back on.
  
     procedure Set_Specific_Warning_Off
!      (Loc    : Source_Ptr;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
--- 888,894 ----
     --  location from which warnings are to be turned back on.
  
     procedure Set_Specific_Warning_Off
!      (Node   : Node_Id;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
diff -Nrcpad gcc-14.2.0/gcc/ada/erroutc.adb gcc-15.1.0/gcc/ada/erroutc.adb
*** gcc-14.2.0/gcc/ada/erroutc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/erroutc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Fname;    use Fname;
*** 38,46 ****
--- 38,48 ----
  with Namet;    use Namet;
  with Opt;      use Opt;
  with Output;   use Output;
+ with Sinfo.Nodes;
  with Sinput;   use Sinput;
  with Snames;   use Snames;
  with Stringt;  use Stringt;
+ with Stylesw;  use Stylesw;
  with Targparm;
  with Uintp;    use Uintp;
  with Widechar; use Widechar;
*************** package body Erroutc is
*** 58,63 ****
--- 60,70 ----
     --  from generic instantiations by using pragma Warnings around generic
     --  instances, as needed in GNATprove.
  
+    function Has_Switch_Tag (Id : Error_Msg_Id) return Boolean;
+    function Has_Switch_Tag (E_Msg : Error_Msg_Object) return Boolean;
+    --  Returns True if the E_Msg is Warning, Style or Info and has a non-empty
+    --  Warn_Char.
+ 
     ---------------
     -- Add_Class --
     ---------------
*************** package body Erroutc is
*** 139,172 ****
           loop
              Errors.Table (D).Deleted := True;
  
!             --  Adjust error message count
! 
!             if Errors.Table (D).Info then
! 
!                if Errors.Table (D).Warn then
!                   Warning_Info_Messages := Warning_Info_Messages - 1;
!                   Warnings_Detected := Warnings_Detected - 1;
!                else
!                   Report_Info_Messages := Report_Info_Messages - 1;
!                end if;
! 
!             elsif Errors.Table (D).Warn or else Errors.Table (D).Style then
!                Warnings_Detected := Warnings_Detected - 1;
! 
!                --  Note: we do not need to decrement Warnings_Treated_As_Errors
!                --  because this only gets incremented if we actually output the
!                --  message, which we won't do if we are deleting it here!
! 
!             elsif Errors.Table (D).Check then
!                Check_Messages := Check_Messages - 1;
! 
!             else
!                Total_Errors_Detected := Total_Errors_Detected - 1;
! 
!                if Errors.Table (D).Serious then
!                   Serious_Errors_Detected := Serious_Errors_Detected - 1;
!                end if;
!             end if;
  
              --  Substitute shorter of the two error messages
  
--- 146,152 ----
           loop
              Errors.Table (D).Deleted := True;
  
!             Decrease_Error_Msg_Count (Errors.Table (D));
  
              --  Substitute shorter of the two error messages
  
*************** package body Erroutc is
*** 245,252 ****
     ------------------------
  
     function Compilation_Errors return Boolean is
!       Warnings_Count : constant Int
!          := Warnings_Detected - Warning_Info_Messages;
     begin
        if Total_Errors_Detected /= 0 then
           return True;
--- 225,231 ----
     ------------------------
  
     function Compilation_Errors return Boolean is
!       Warnings_Count : constant Int := Warnings_Detected;
     begin
        if Total_Errors_Detected /= 0 then
           return True;
*************** package body Erroutc is
*** 278,284 ****
     begin
        for J in 1 .. Errors.Last loop
           begin
!             if Errors.Table (J).Warn
                 and then Errors.Table (J).Compile_Time_Pragma
                 and then not Errors.Table (J).Deleted
              then
--- 257,263 ----
     begin
        for J in 1 .. Errors.Last loop
           begin
!             if Errors.Table (J).Kind = Warning
                 and then Errors.Table (J).Compile_Time_Pragma
                 and then not Errors.Table (J).Deleted
              then
*************** package body Erroutc is
*** 289,294 ****
--- 268,299 ----
        return Result;
     end Count_Compile_Time_Pragma_Warnings;
  
+    ------------------------------
+    -- Decrease_Error_Msg_Count --
+    ------------------------------
+ 
+    procedure Decrease_Error_Msg_Count (E : Error_Msg_Object) is
+ 
+    begin
+       case E.Kind is
+          when Info =>
+             Info_Messages := Info_Messages - 1;
+ 
+          when Warning | Style =>
+             Warnings_Detected := Warnings_Detected - 1;
+ 
+          when High_Check | Medium_Check | Low_Check =>
+             Check_Messages := Check_Messages - 1;
+ 
+          when Error =>
+             Total_Errors_Detected := Total_Errors_Detected - 1;
+             Serious_Errors_Detected := Serious_Errors_Detected - 1;
+ 
+          when Non_Serious_Error =>
+             Total_Errors_Detected := Total_Errors_Detected - 1;
+       end case;
+    end Decrease_Error_Msg_Count;
+ 
     ------------------
     -- Debug_Output --
     ------------------
*************** package body Erroutc is
*** 327,344 ****
        Write_Location (E.Optr.Ptr);
        Write_Eol;
  
        w ("  Line               = ", Int (E.Line));
        w ("  Col                = ", Int (E.Col));
!       w ("  Warn               = ", E.Warn);
        w ("  Warn_Err           = ", E.Warn_Err);
-       w ("  Warn_Runtime_Raise = ", E.Warn_Runtime_Raise);
        w ("  Warn_Chr           = '" & E.Warn_Chr & ''');
-       w ("  Style              = ", E.Style);
-       w ("  Serious            = ", E.Serious);
        w ("  Uncond             = ", E.Uncond);
        w ("  Msg_Cont           = ", E.Msg_Cont);
        w ("  Deleted            = ", E.Deleted);
-       w ("  Node               = ", Int (E.Node));
  
        Write_Eol;
     end dmsg;
--- 332,350 ----
        Write_Location (E.Optr.Ptr);
        Write_Eol;
  
+       Write_Str
+         ("  Insertion_Sloc     = ");
+       Write_Location (E.Insertion_Sloc);
+       Write_Eol;
+ 
        w ("  Line               = ", Int (E.Line));
        w ("  Col                = ", Int (E.Col));
!       w ("  Kind               = ", E.Kind'Img);
        w ("  Warn_Err           = ", E.Warn_Err);
        w ("  Warn_Chr           = '" & E.Warn_Chr & ''');
        w ("  Uncond             = ", E.Uncond);
        w ("  Msg_Cont           = ", E.Msg_Cont);
        w ("  Deleted            = ", E.Deleted);
  
        Write_Eol;
     end dmsg;
*************** package body Erroutc is
*** 366,383 ****
     ------------------------
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String is
!       Warn     : constant Boolean         := Errors.Table (Id).Warn;
!       Style    : constant Boolean         := Errors.Table (Id).Style;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
  
     begin
!       if (Warn or Style)
!         and then Warn_Chr /= "  "
          and then Warn_Chr (1) /= '?'
        then
           if Warn_Chr = "$ " then
              return "-gnatel";
!          elsif Style then
              return "-gnaty" & Warn_Chr (1);
           elsif Warn_Chr (2) = ' ' then
              return "-gnatw" & Warn_Chr (1);
--- 372,387 ----
     ------------------------
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String is
!       Is_Style : constant Boolean         := Errors.Table (Id).Kind in Style;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
  
     begin
!       if Has_Switch_Tag (Errors.Table (Id))
          and then Warn_Chr (1) /= '?'
        then
           if Warn_Chr = "$ " then
              return "-gnatel";
!          elsif Is_Style then
              return "-gnaty" & Warn_Chr (1);
           elsif Warn_Chr (2) = ' ' then
              return "-gnatw" & Warn_Chr (1);
*************** package body Erroutc is
*** 394,406 ****
     ---------------------
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String is
-       Warn     : constant Boolean         := Errors.Table (Id).Warn;
-       Style    : constant Boolean         := Errors.Table (Id).Style;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
        Option   : constant String          := Get_Warning_Option (Id);
  
     begin
!       if Warn or Style then
           if Warn_Chr = "? " then
              return "[enabled by default]";
           elsif Warn_Chr = "* " then
--- 398,408 ----
     ---------------------
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String is
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
        Option   : constant String          := Get_Warning_Option (Id);
  
     begin
!       if Has_Switch_Tag (Id) then
           if Warn_Chr = "? " then
              return "[enabled by default]";
           elsif Warn_Chr = "* " then
*************** package body Erroutc is
*** 413,418 ****
--- 415,496 ----
        return "";
     end Get_Warning_Tag;
  
+    ------------------------------
+    -- Increase_Error_Msg_Count --
+    ------------------------------
+ 
+    procedure Increase_Error_Msg_Count (E : Error_Msg_Object) is
+ 
+    begin
+       case E.Kind is
+          when Info =>
+             Info_Messages := Info_Messages + 1;
+ 
+          when Warning | Style =>
+             Warnings_Detected := Warnings_Detected + 1;
+ 
+          when High_Check | Medium_Check | Low_Check =>
+             Check_Messages := Check_Messages + 1;
+ 
+          when Error =>
+             Total_Errors_Detected := Total_Errors_Detected + 1;
+             Serious_Errors_Detected := Serious_Errors_Detected + 1;
+ 
+          when Non_Serious_Error =>
+             Total_Errors_Detected := Total_Errors_Detected + 1;
+       end case;
+    end Increase_Error_Msg_Count;
+ 
+    --------------------------------
+    -- Is_Redundant_Error_Message --
+    --------------------------------
+ 
+    function Is_Redundant_Error_Message
+      (Prev_Msg : Error_Msg_Id; Cur_Msg : Error_Msg_Id) return Boolean is
+ 
+    begin
+       return
+         Prev_Msg /= No_Error_Msg
+ 
+         --  Error messages are posted on the same line
+ 
+         and then Errors.Table (Prev_Msg).Line = Errors.Table (Cur_Msg).Line
+         and then Errors.Table (Prev_Msg).Sfile = Errors.Table (Cur_Msg).Sfile
+ 
+         --  Do not consider unconditional messages to be redundant right now
+         --  They may be removed later.
+ 
+         and then not Errors.Table (Cur_Msg).Uncond
+ 
+         --  Do not consider continuation messages as they are removed with
+         --  their parent later on.
+ 
+         and then not Errors.Table (Cur_Msg).Msg_Cont
+ 
+         --  Don't delete if prev msg is warning and new msg is an error.
+         --  This is because we don't want a real error masked by a
+         --  warning. In all other cases (that is parse errors for the
+         --  same line that are not unconditional) we do delete the
+         --  message. This helps to avoid junk extra messages from
+         --  cascaded parsing errors
+ 
+         and then (Errors.Table (Prev_Msg).Kind not in Warning | Style
+                   or else Errors.Table (Cur_Msg).Kind in Warning | Style);
+    end Is_Redundant_Error_Message;
+ 
+    --------------------
+    -- Has_Switch_Tag --
+    --------------------
+ 
+    function Has_Switch_Tag (Id : Error_Msg_Id) return Boolean
+    is (Has_Switch_Tag (Errors.Table (Id)));
+ 
+    function Has_Switch_Tag (E_Msg : Error_Msg_Object) return Boolean is
+    begin
+       return
+         E_Msg.Kind in Warning | Info | Style and then E_Msg.Warn_Chr /= "  ";
+    end Has_Switch_Tag;
+ 
     -------------
     -- Matches --
     -------------
*************** package body Erroutc is
*** 670,716 ****
        end if;
     end Output_Line_Number;
  
!    ---------------------
!    -- Output_Msg_Text --
!    ---------------------
  
!    procedure Output_Msg_Text (E : Error_Msg_Id) is
        Offs : constant Nat := Column - 1;
        --  Offset to start of message, used for continuations
  
!       Max : Integer;
        --  Maximum characters to output on next line
  
!       Length : Nat;
!       --  Maximum total length of lines
  
        E_Msg : Error_Msg_Object renames Errors.Table (E);
        Text  : constant String_Ptr := E_Msg.Text;
!       Ptr   : Natural;
!       Split : Natural;
!       Start : Natural;
!       Tag : constant String := Get_Warning_Tag (E);
!       Txt : String_Ptr;
!       Len : Natural;
  
     begin
        --  Postfix warning tag to message if needed
  
        if Tag /= "" and then Warning_Doc_Switch then
!          if Include_Subprogram_In_Messages then
!             Txt :=
!               new String'
!                 (Subprogram_Name_Ptr (E_Msg.Node) &
!                  ": " & Text.all & ' ' & Tag);
!          else
!             Txt := new String'(Text.all & ' ' & Tag);
!          end if;
! 
!       elsif Include_Subprogram_In_Messages
!         and then (E_Msg.Warn or else E_Msg.Style)
!       then
!          Txt :=
!            new String'(Subprogram_Name_Ptr (E_Msg.Node) & ": " & Text.all);
        else
           Txt := Text;
        end if;
--- 748,888 ----
        end if;
     end Output_Line_Number;
  
!    ------------------------
!    -- Output_Text_Within --
!    ------------------------
  
!    procedure Output_Text_Within (Txt : String_Ptr; Line_Length : Nat) is
        Offs : constant Nat := Column - 1;
        --  Offset to start of message, used for continuations
  
!       Ptr   : Natural;
! 
!       Split : Natural;
!       --   Position where a new line was inserted in the original message
! 
!       Start : Natural;
!       --   Start of the current line
! 
!       Max   : Integer := Integer (Line_Length - Column + 1);
        --  Maximum characters to output on next line
  
!       Text_Length : constant Natural := Txt'Length;
!       --  Length of the message
! 
!    begin
!       --  Here we have to split the message up into multiple lines
! 
!       Ptr := 1;
!       loop
!          --  Make sure we do not have ludicrously small line
! 
!          Max := Integer'Max (Max, 20);
! 
!          --  If remaining text fits, output it respecting LF and we are done
! 
!          if Text_Length - Ptr < Max then
!             for J in Ptr .. Text_Length loop
!                if Txt (J) = ASCII.LF then
!                   Write_Eol;
!                   Write_Spaces (Offs);
!                else
!                   Write_Char (Txt (J));
!                end if;
!             end loop;
! 
!             return;
! 
!          --  Line does not fit
! 
!          else
!             Start := Ptr;
! 
!             --  First scan forward looking for a hard end of line
! 
!             for Scan in Ptr .. Ptr + Max - 1 loop
!                if Txt (Scan) = ASCII.LF then
!                   Split := Scan - 1;
!                   Ptr := Scan + 1;
!                   goto Continue;
!                end if;
!             end loop;
! 
!             --  Otherwise scan backwards looking for a space
! 
!             for Scan in reverse Ptr .. Ptr + Max - 1 loop
!                if Txt (Scan) = ' ' then
!                   Split := Scan - 1;
!                   Ptr := Scan + 1;
!                   goto Continue;
!                end if;
!             end loop;
! 
!             --  If we fall through, no space, so split line arbitrarily
! 
!             Split := Ptr + Max - 1;
!             Ptr := Split + 1;
!          end if;
! 
!          <<Continue>>
!          if Start <= Split then
!             Write_Line (Txt (Start .. Split));
!             Write_Spaces (Offs);
!          end if;
! 
!          Max := Integer (Line_Length - Column + 1);
!       end loop;
!    end Output_Text_Within;
! 
!    -------------------------
!    -- Output_Msg_Location --
!    -------------------------
! 
!    procedure Output_Msg_Location (E : Error_Msg_Id) is
!       E_Obj : constant Error_Msg_Object := Errors.Table (E);
!    begin
!       Write_Str (SGR_Locus);
! 
!       if Full_Path_Name_For_Brief_Errors then
!          Write_Name (Full_Ref_Name (E_Obj.Sfile));
!       else
!          Write_Name (Reference_Name (E_Obj.Sfile));
!       end if;
! 
!       Write_Char (':');
!       Write_Int (Int (Physical_To_Logical (E_Obj.Line, E_Obj.Sfile)));
!       Write_Char (':');
! 
!       if E_Obj.Col < 10 then
!          Write_Char ('0');
!       end if;
! 
!       Write_Int (Int (E_Obj.Col));
!       Write_Str (": ");
! 
!       Write_Str (SGR_Reset);
!    end Output_Msg_Location;
! 
!    ---------------------
!    -- Output_Msg_Text --
!    ---------------------
! 
!    procedure Output_Msg_Text (E : Error_Msg_Id) is
  
        E_Msg : Error_Msg_Object renames Errors.Table (E);
        Text  : constant String_Ptr := E_Msg.Text;
!       Tag   : constant String := Get_Warning_Tag (E);
!       Txt   : String_Ptr;
! 
!       Line_Length : constant Nat :=
!         (if Error_Msg_Line_Length = 0 then Nat'Last
!          else Error_Msg_Line_Length);
  
     begin
        --  Postfix warning tag to message if needed
  
        if Tag /= "" and then Warning_Doc_Switch then
!          Txt := new String'(Text.all & ' ' & Tag);
        else
           Txt := Text;
        end if;
*************** package body Erroutc is
*** 724,730 ****
  
        --  For info messages, prefix message with "info: "
  
!       elsif E_Msg.Info then
           Txt := new String'(SGR_Note & "info: " & SGR_Reset & Txt.all);
  
        --  Warning treated as error
--- 896,902 ----
  
        --  For info messages, prefix message with "info: "
  
!       elsif E_Msg.Kind = Info then
           Txt := new String'(SGR_Note & "info: " & SGR_Reset & Txt.all);
  
        --  Warning treated as error
*************** package body Erroutc is
*** 740,752 ****
  
        --  Normal warning, prefix with "warning: "
  
!       elsif E_Msg.Warn then
           Txt := new String'(SGR_Warning & "warning: " & SGR_Reset & Txt.all);
  
!       --  No prefix needed for style message, "(style)" is there already,
!       --  although not necessarily in first position if -gnatdJ is used.
  
!       elsif E_Msg.Style then
           if Txt (Txt'First .. Txt'First + 6) = "(style)" then
              Txt := new String'(SGR_Warning & "(style)" & SGR_Reset
                                 & Txt (Txt'First + 7 .. Txt'Last));
--- 912,923 ----
  
        --  Normal warning, prefix with "warning: "
  
!       elsif E_Msg.Kind = Warning then
           Txt := new String'(SGR_Warning & "warning: " & SGR_Reset & Txt.all);
  
!       --  No prefix needed for style message, "(style)" is there already
  
!       elsif E_Msg.Kind = Style then
           if Txt (Txt'First .. Txt'First + 6) = "(style)" then
              Txt := new String'(SGR_Warning & "(style)" & SGR_Reset
                                 & Txt (Txt'First + 7 .. Txt'Last));
*************** package body Erroutc is
*** 754,760 ****
  
        --  No prefix needed for check message, severity is there already
  
!       elsif E_Msg.Check then
  
           --  The message format is "severity: ..."
           --
--- 925,931 ----
  
        --  No prefix needed for check message, severity is there already
  
!       elsif E_Msg.Kind in High_Check | Medium_Check | Low_Check then
  
           --  The message format is "severity: ..."
           --
*************** package body Erroutc is
*** 789,866 ****
           Txt := new String'(SGR_Error & "error: " & SGR_Reset & Txt.all);
        end if;
  
!       --  Set error message line length and length of message
! 
!       if Error_Msg_Line_Length = 0 then
!          Length := Nat'Last;
!       else
!          Length := Error_Msg_Line_Length;
!       end if;
! 
!       Max := Integer (Length - Column + 1);
!       Len := Txt'Length;
! 
!       --  Here we have to split the message up into multiple lines
! 
!       Ptr := 1;
!       loop
!          --  Make sure we do not have ludicrously small line
! 
!          Max := Integer'Max (Max, 20);
! 
!          --  If remaining text fits, output it respecting LF and we are done
! 
!          if Len - Ptr < Max then
!             for J in Ptr .. Len loop
!                if Txt (J) = ASCII.LF then
!                   Write_Eol;
!                   Write_Spaces (Offs);
!                else
!                   Write_Char (Txt (J));
!                end if;
!             end loop;
! 
!             return;
! 
!          --  Line does not fit
! 
!          else
!             Start := Ptr;
! 
!             --  First scan forward looking for a hard end of line
! 
!             for Scan in Ptr .. Ptr + Max - 1 loop
!                if Txt (Scan) = ASCII.LF then
!                   Split := Scan - 1;
!                   Ptr := Scan + 1;
!                   goto Continue;
!                end if;
!             end loop;
! 
!             --  Otherwise scan backwards looking for a space
! 
!             for Scan in reverse Ptr .. Ptr + Max - 1 loop
!                if Txt (Scan) = ' ' then
!                   Split := Scan - 1;
!                   Ptr := Scan + 1;
!                   goto Continue;
!                end if;
!             end loop;
! 
!             --  If we fall through, no space, so split line arbitrarily
! 
!             Split := Ptr + Max - 1;
!             Ptr := Split + 1;
!          end if;
! 
!          <<Continue>>
!          if Start <= Split then
!             Write_Line (Txt (Start .. Split));
!             Write_Spaces (Offs);
!          end if;
! 
!          Max := Integer (Length - Column + 1);
!       end loop;
     end Output_Msg_Text;
  
     ---------------------
--- 960,966 ----
           Txt := new String'(SGR_Error & "error: " & SGR_Reset & Txt.all);
        end if;
  
!       Output_Text_Within (Txt, Line_Length);
     end Output_Msg_Text;
  
     ---------------------
*************** package body Erroutc is
*** 916,961 ****
     --  Start of processing for Prescan_Message
  
     begin
!       --  Nothing to do for continuation line, unless -gnatdF is set
  
-       if not Debug_Flag_FF and then Msg (Msg'First) = '\' then
           return;
  
        --  Some global variables are not set for continuation messages, as they
        --  only make sense for the initial message.
  
!       elsif Msg (Msg'First) /= '\' then
  
           --  Set initial values of globals (may be changed during scan)
  
!          Is_Serious_Error     := True;
           Is_Unconditional_Msg := False;
-          Is_Warning_Msg       := False;
           Is_Runtime_Raise     := False;
  
           --  Check style message
  
!          Is_Style_Msg :=
!            Msg'Length > 7
!              and then Msg (Msg'First .. Msg'First + 6) = "(style)";
  
!          --  Check info message
  
!          Is_Info_Msg :=
!            Msg'Length > 6
!              and then Msg (Msg'First .. Msg'First + 5) = "info: ";
  
!          --  Check check message
  
!          Is_Check_Msg :=
!            (Msg'Length > 8
!              and then Msg (Msg'First .. Msg'First + 7) = "medium: ")
!            or else
!            (Msg'Length > 6
!              and then Msg (Msg'First .. Msg'First + 5) = "high: ")
!            or else
!            (Msg'Length > 5
!              and then Msg (Msg'First .. Msg'First + 4) = "low: ");
        end if;
  
        Has_Double_Exclam  := False;
--- 1016,1094 ----
     --  Start of processing for Prescan_Message
  
     begin
!       --  Continuation lines need to check only for insertion sequences.
!       --  Other attributes should be inherited from the main message.
! 
!       if Msg (Msg'First) = '\' then
!          Has_Insertion_Line := False;
! 
!          J := Msg'First;
! 
!          --  If we have a quote, don't look at following character
! 
!          while J <= Msg'Last loop
!             if Msg (J) = ''' then
!                J := J + 2;
! 
!             --  Insertion line (# insertion)
! 
!             elsif Msg (J) = '#' then
!                Has_Insertion_Line := True;
!                J := J + 1;
!             else
!                J := J + 1;
!             end if;
!          end loop;
  
           return;
  
        --  Some global variables are not set for continuation messages, as they
        --  only make sense for the initial message.
  
!       else
  
           --  Set initial values of globals (may be changed during scan)
  
!          Error_Msg_Kind       := Error;
           Is_Unconditional_Msg := False;
           Is_Runtime_Raise     := False;
+          Warning_Msg_Char     := "  ";
  
           --  Check style message
  
!          if Msg'Length > 7
!            and then Msg (Msg'First .. Msg'First + 6) = "(style)"
!          then
!             Error_Msg_Kind := Style;
  
!             --  Check info message
  
!          elsif Msg'Length > 6
!            and then Msg (Msg'First .. Msg'First + 5) = "info: "
!          then
!             Error_Msg_Kind := Info;
  
!             --  Check high check message
  
!          elsif Msg'Length > 6
!            and then Msg (Msg'First .. Msg'First + 5) = "high: "
!          then
!             Error_Msg_Kind := High_Check;
! 
!             --  Check medium check message
! 
!          elsif Msg'Length > 8
!            and then Msg (Msg'First .. Msg'First + 7) = "medium: "
!          then
!             Error_Msg_Kind := Medium_Check;
! 
!             --  Check low check message
! 
!          elsif Msg'Length > 5
!            and then Msg (Msg'First .. Msg'First + 4) = "low: "
!          then
!             Error_Msg_Kind := Low_Check;
!          end if;
        end if;
  
        Has_Double_Exclam  := False;
*************** package body Erroutc is
*** 976,982 ****
  
           elsif Msg (J) = '?' or else Msg (J) = '<' then
              if Msg (J) = '?' or else Error_Msg_Warn then
!                Is_Warning_Msg := not Is_Style_Msg;
                 J := J + 1;
                 Warning_Msg_Char := Parse_Message_Class;
  
--- 1109,1125 ----
  
           elsif Msg (J) = '?' or else Msg (J) = '<' then
              if Msg (J) = '?' or else Error_Msg_Warn then
! 
!                --  Consider Info and Style messages as unique message types.
!                --  Those messages can have warning insertion characters within
!                --  them. However they should only be switch specific insertion
!                --  characters and not the generic ? or ?? warning insertion
!                --  characters.
! 
!                if Error_Msg_Kind not in Style | Info then
!                   Error_Msg_Kind := Warning;
!                end if;
! 
                 J := J + 1;
                 Warning_Msg_Char := Parse_Message_Class;
  
*************** package body Erroutc is
*** 1010,1016 ****
           --  Non-serious error (| insertion)
  
           elsif Msg (J) = '|' then
!             Is_Serious_Error := False;
              J := J + 1;
  
           --  Error code ([] insertion)
--- 1153,1159 ----
           --  Non-serious error (| insertion)
  
           elsif Msg (J) = '|' then
!             Error_Msg_Kind := Non_Serious_Error;
              J := J + 1;
  
           --  Error code ([] insertion)
*************** package body Erroutc is
*** 1026,1035 ****
              J := J + 1;
           end if;
        end loop;
- 
-       if Is_Info_Msg or Is_Warning_Msg or Is_Style_Msg or Is_Check_Msg then
-          Is_Serious_Error := False;
-       end if;
     end Prescan_Message;
  
     --------------------
--- 1169,1174 ----
*************** package body Erroutc is
*** 1053,1068 ****
             and then Errors.Table (E).Sptr.Ptr > From
             and then Errors.Table (E).Sptr.Ptr < To
           then
!             if Errors.Table (E).Warn or else Errors.Table (E).Style then
!                Warnings_Detected := Warnings_Detected - 1;
! 
!             else
!                Total_Errors_Detected := Total_Errors_Detected - 1;
! 
!                if Errors.Table (E).Serious then
!                   Serious_Errors_Detected := Serious_Errors_Detected - 1;
!                end if;
!             end if;
  
              return True;
  
--- 1192,1198 ----
             and then Errors.Table (E).Sptr.Ptr > From
             and then Errors.Table (E).Sptr.Ptr < To
           then
!             Decrease_Error_Msg_Count (Errors.Table (E));
  
              return True;
  
*************** package body Erroutc is
*** 1155,1161 ****
  
     procedure Set_Msg_Char (C : Character) is
     begin
- 
        --  The check for message buffer overflow is needed to deal with cases
        --  where insertions get too long (in particular a child unit name can
        --  be very long).
--- 1285,1290 ----
*************** package body Erroutc is
*** 1202,1207 ****
--- 1331,1348 ----
        end loop;
     end Set_Msg_Insertion_Code;
  
+    ------------------------------
+    -- Set_Msg_Insertion_Column --
+    ------------------------------
+ 
+    procedure Set_Msg_Insertion_Column is
+    begin
+       if RM_Column_Check then
+          Set_Msg_Str (" in column ");
+          Set_Msg_Int (Int (Error_Msg_Col) + 1);
+       end if;
+    end Set_Msg_Insertion_Column;
+ 
     ---------------------------------
     -- Set_Msg_Insertion_File_Name --
     ---------------------------------
*************** package body Erroutc is
*** 1474,1485 ****
        if Name_Len = 2 and then Name_Buffer (1 .. 2) = "RM" then
           Set_Msg_Name_Buffer;
  
        --  We make a similar exception for SPARK
  
        elsif Name_Len = 5 and then Name_Buffer (1 .. 5) = "SPARK" then
           Set_Msg_Name_Buffer;
  
!       --  Neither RM nor SPARK: case appropriately and add surrounding quotes
  
        else
           Set_Casing (Keyword_Casing (Flag_Source), All_Lower_Case);
--- 1615,1631 ----
        if Name_Len = 2 and then Name_Buffer (1 .. 2) = "RM" then
           Set_Msg_Name_Buffer;
  
+       --  We make a similar exception for CUDA
+ 
+       elsif Name_Len = 4 and then Name_Buffer (1 .. 4) = "CUDA" then
+          Set_Msg_Name_Buffer;
+ 
        --  We make a similar exception for SPARK
  
        elsif Name_Len = 5 and then Name_Buffer (1 .. 5) = "SPARK" then
           Set_Msg_Name_Buffer;
  
!       --  Otherwise, case appropriately and add surrounding quotes
  
        else
           Set_Casing (Keyword_Casing (Flag_Source), All_Lower_Case);
*************** package body Erroutc is
*** 1607,1612 ****
--- 1753,1764 ----
        elsif Text = "Cpp_Vtable" then
           Set_Msg_Str ("CPP_Vtable");
  
+       elsif Text = "Cuda_Device" then
+          Set_Msg_Str ("CUDA_Device");
+ 
+       elsif Text = "Cuda_Global" then
+          Set_Msg_Str ("CUDA_Global");
+ 
        elsif Text = "Persistent_Bss" then
           Set_Msg_Str ("Persistent_BSS");
  
*************** package body Erroutc is
*** 1650,1661 ****
     ------------------------------
  
     procedure Set_Specific_Warning_Off
!      (Loc    : Source_Ptr;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
        Used   : Boolean := False)
     is
     begin
        Specific_Warnings.Append
          ((Start      => Loc,
--- 1802,1814 ----
     ------------------------------
  
     procedure Set_Specific_Warning_Off
!      (Node   : Node_Id;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
        Used   : Boolean := False)
     is
+       Loc : constant Source_Ptr := Sinfo.Nodes.Sloc (Node);
     begin
        Specific_Warnings.Append
          ((Start      => Loc,
*************** package body Erroutc is
*** 1801,1849 ****
        return False;
     end Sloc_In_Range;
  
-    --------------------------------
-    -- Validate_Specific_Warnings --
-    --------------------------------
- 
-    procedure Validate_Specific_Warnings (Eproc : Error_Msg_Proc) is
-    begin
-       if not Warn_On_Warnings_Off then
-          return;
-       end if;
- 
-       for J in Specific_Warnings.First .. Specific_Warnings.Last loop
-          declare
-             SWE : Specific_Warning_Entry renames Specific_Warnings.Table (J);
- 
-          begin
-             if not SWE.Config then
- 
-                --  Warn for unmatched Warnings (Off, ...)
- 
-                if SWE.Open then
-                   Eproc.all
-                     ("?.w?pragma Warnings Off with no matching Warnings On",
-                      SWE.Start);
- 
-                --  Warn for ineffective Warnings (Off, ..)
- 
-                elsif not SWE.Used
- 
-                  --  Do not issue this warning for -Wxxx messages since the
-                  --  back-end doesn't report the information. Note that there
-                  --  is always an asterisk at the start of every message.
- 
-                  and then not
-                    (SWE.Msg'Length > 3 and then SWE.Msg (2 .. 3) = "-W")
-                then
-                   Eproc.all
-                     ("?.w?no warning suppressed by this pragma", SWE.Start);
-                end if;
-             end if;
-          end;
-       end loop;
-    end Validate_Specific_Warnings;
- 
     -------------------------------------
     -- Warning_Specifically_Suppressed --
     -------------------------------------
--- 1954,1959 ----
*************** package body Erroutc is
*** 1859,1865 ****
        for J in Specific_Warnings.First .. Specific_Warnings.Last loop
           declare
              SWE : Specific_Warning_Entry renames Specific_Warnings.Table (J);
- 
           begin
              --  Pragma applies if it is a configuration pragma, or if the
              --  location is in range of a specific non-configuration pragma.
--- 1969,1974 ----
*************** package body Erroutc is
*** 1918,1921 ****
--- 2027,2168 ----
        end if;
     end Warnings_Suppressed;
  
+    -------------------------
+    -- Write_Error_Summary --
+    -------------------------
+ 
+    procedure Write_Error_Summary is
+    begin
+       --  Extra blank line if error messages or source listing were output
+ 
+       if Total_Errors_Detected + Warnings_Detected > 0 or else Full_List
+       then
+          Write_Eol;
+       end if;
+ 
+       --  Message giving number of lines read and number of errors detected.
+       --  This normally goes to Standard_Output. The exception is when brief
+       --  mode is not set, verbose mode (or full list mode) is set, and
+       --  there are errors. In this case we send the message to standard
+       --  error to make sure that *something* appears on standard error
+       --  in an error situation.
+ 
+       if Total_Errors_Detected + Warnings_Detected /= 0
+          and then not Brief_Output
+          and then (Verbose_Mode or Full_List)
+       then
+          Set_Standard_Error;
+       end if;
+ 
+       --  Message giving total number of lines. Don't give this message if
+       --  the Main_Source line is unknown (this happens in error situations,
+       --  e.g. when integrated preprocessing fails).
+ 
+       if Main_Source_File > No_Source_File then
+          Write_Str (" ");
+          Write_Int (Num_Source_Lines (Main_Source_File));
+ 
+          if Num_Source_Lines (Main_Source_File) = 1 then
+             Write_Str (" line: ");
+          else
+             Write_Str (" lines: ");
+          end if;
+       end if;
+ 
+       if Total_Errors_Detected = 0 then
+          Write_Str ("No errors");
+ 
+       elsif Total_Errors_Detected = 1 then
+          Write_Str ("1 error");
+ 
+       else
+          Write_Int (Total_Errors_Detected);
+          Write_Str (" errors");
+       end if;
+ 
+       --  We now need to output warnings. When using -gnatwe, all warnings
+       --  should be treated as errors, except for warnings originating from
+       --  the use of the Compile_Time_Warning pragma. Another situation
+       --  where a warning might be treated as an error is when the source
+       --  code contains a Warning_As_Error pragma.
+       --  When warnings are treated as errors, we still log them as
+       --  warnings, but we add a message denoting how many of these warnings
+       --  are also errors.
+ 
+       declare
+          Warnings_Count : constant Int := Warnings_Detected;
+ 
+          Compile_Time_Warnings : Int;
+          --  Number of warnings that come from a Compile_Time_Warning
+          --  pragma.
+ 
+          Non_Compile_Time_Warnings : Int;
+          --  Number of warnings that do not come from a Compile_Time_Warning
+          --  pragmas.
+ 
+       begin
+          if Warnings_Count > 0 then
+             Write_Str (", ");
+             Write_Int (Warnings_Count);
+             Write_Str (" warning");
+ 
+             if Warnings_Count > 1 then
+                Write_Char ('s');
+             end if;
+ 
+             Compile_Time_Warnings := Count_Compile_Time_Pragma_Warnings;
+             Non_Compile_Time_Warnings :=
+                Warnings_Count - Compile_Time_Warnings;
+ 
+             if Warning_Mode = Treat_As_Error
+                and then Non_Compile_Time_Warnings > 0
+             then
+                Write_Str (" (");
+ 
+                if Compile_Time_Warnings > 0 then
+                   Write_Int (Non_Compile_Time_Warnings);
+                   Write_Str (" ");
+                end if;
+ 
+                Write_Str ("treated as error");
+ 
+                if Non_Compile_Time_Warnings > 1 then
+                   Write_Char ('s');
+                end if;
+ 
+                Write_Char (')');
+ 
+             elsif Warnings_Treated_As_Errors > 0 then
+                Write_Str (" (");
+ 
+                if Warnings_Treated_As_Errors /= Warnings_Count then
+                   Write_Int (Warnings_Treated_As_Errors);
+                   Write_Str (" ");
+                end if;
+ 
+                Write_Str ("treated as error");
+ 
+                if Warnings_Treated_As_Errors > 1 then
+                   Write_Str ("s");
+                end if;
+ 
+                Write_Str (")");
+             end if;
+          end if;
+       end;
+ 
+       if Info_Messages /= 0 then
+          Write_Str (", ");
+          Write_Int (Info_Messages);
+          Write_Str (" info message");
+ 
+          if Info_Messages > 1 then
+             Write_Char ('s');
+          end if;
+       end if;
+ 
+       Write_Eol;
+       Set_Standard_Output;
+    end Write_Error_Summary;
+ 
  end Erroutc;
diff -Nrcpad gcc-14.2.0/gcc/ada/erroutc.ads gcc-15.1.0/gcc/ada/erroutc.ads
*** gcc-14.2.0/gcc/ada/erroutc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/erroutc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Types; use Types;
*** 31,36 ****
--- 31,49 ----
  
  package Erroutc is
  
+    type Error_Msg_Type is
+      (Error,  -- Default value
+       Non_Serious_Error,
+       --  An error message that is not considered fatal an the analys of
+       --  the source file can resume.
+       Warning,
+       Style, --  A special kind of warning only triggered by a style check
+       Info,
+       Low_Check,  --  A type of GNATProve Check messages
+       Medium_Check, --  A type of GNATProve Check messages
+       High_Check --  A type of GNATProve Check messages
+      );
+ 
     Class_Flag : Boolean := False;
     --  This flag is set True when outputting a reference to a class-wide
     --  type, and is used by Add_Class to insert 'Class at the proper point
*************** package Erroutc is
*** 63,96 ****
     --  Set true to indicate that the current message originates from a
     --  Compile_Time_Warning or Compile_Time_Error pragma.
  
-    Is_Serious_Error : Boolean := False;
-    --  Set True for a serious error (i.e. any message that is not a warning
-    --  or style message, and that does not contain a | insertion character).
- 
     Is_Unconditional_Msg : Boolean := False;
     --  Set True to indicate that the current message contains the insertion
     --  character ! and is thus to be treated as an unconditional message.
  
-    Is_Warning_Msg : Boolean := False;
-    --  Set True to indicate if current message is warning message (contains ?
-    --  or contains < and Error_Msg_Warn is True).
- 
     Is_Runtime_Raise : Boolean := False;
     --  Set to True to indicate that the current message is a warning about a
     --  constraint error that will be raised at runtime (contains [ and switch
!    --  -gnatwE was given).
! 
!    Is_Info_Msg : Boolean := False;
!    --  Set True to indicate that the current message starts with the characters
!    --  "info: " and is to be treated as an information message. This string
!    --  will be prepended to the message and all its continuations.
  
!    Is_Check_Msg : Boolean := False;
!    --  Set True to indicate that the current message starts with one of
!    --  "high: ", "medium: ", "low: " and is to be treated as a check message.
  
     Warning_Msg_Char : String (1 .. 2);
!    --  Warning switch, valid only if Is_Warning_Msg is True
     --    "  "      -- ?   or <   appeared on its own in message
     --    "? "      -- ??  or <<  appeared in message
     --    "x "      -- ?x? or <x< appeared in message
--- 76,94 ----
     --  Set true to indicate that the current message originates from a
     --  Compile_Time_Warning or Compile_Time_Error pragma.
  
     Is_Unconditional_Msg : Boolean := False;
     --  Set True to indicate that the current message contains the insertion
     --  character ! and is thus to be treated as an unconditional message.
  
     Is_Runtime_Raise : Boolean := False;
     --  Set to True to indicate that the current message is a warning about a
     --  constraint error that will be raised at runtime (contains [ and switch
!    --  -gnatwE was given)..
  
!    Error_Msg_Kind : Error_Msg_Type := Error;
  
     Warning_Msg_Char : String (1 .. 2);
!    --  Diagnostics switch:
     --    "  "      -- ?   or <   appeared on its own in message
     --    "? "      -- ??  or <<  appeared in message
     --    "x "      -- ?x? or <x< appeared in message
*************** package Erroutc is
*** 100,109 ****
     --  In the case of the < sequences, this is set only if the message is
     --  actually a warning, i.e. if Error_Msg_Warn is True
  
-    Is_Style_Msg : Boolean := False;
-    --  Set True to indicate if the current message is a style message
-    --  (i.e. a message whose text starts with the characters "(style)").
- 
     Kill_Message : Boolean := False;
     --  A flag used to kill weird messages (e.g. those containing uninterpreted
     --  implicit type references) if we have already seen at least one message
--- 98,103 ----
*************** package Erroutc is
*** 149,159 ****
     --  output. This is used for internal processing for the case of an
     --  illegal instantiation. See Error_Msg routine for further details.
  
-    type Subprogram_Name_Type is access function (N : Node_Id) return String;
-    Subprogram_Name_Ptr : Subprogram_Name_Type;
-    --  Indirect call to Sem_Util.Subprogram_Name to break circular
-    --  dependency with the static elaboration model.
- 
     ----------------------------
     -- Message ID Definitions --
     ----------------------------
--- 143,148 ----
*************** package Erroutc is
*** 235,266 ****
        --  True if the message originates from a Compile_Time_Warning or
        --  Compile_Time_Error pragma
  
-       Warn : Boolean;
-       --  True if warning message
- 
-       Info : Boolean;
-       --  True if info message
- 
-       Check : Boolean;
-       --  True if check message
- 
        Warn_Err : Boolean;
        --  True if this is a warning message which is to be treated as an error
        --  as a result of a match with a Warning_As_Error pragma.
  
-       Warn_Runtime_Raise : Boolean;
-       --  True if this a warning about a constraint error that will be raised
-       --  at runtime.
- 
        Warn_Chr : String (1 .. 2);
        --  See Warning_Msg_Char
  
-       Style : Boolean;
-       --  True if style message (starts with "(style)")
- 
-       Serious : Boolean;
-       --  True if serious error message (not a warning and no | character)
- 
        Uncond : Boolean;
        --  True if unconditional message (i.e. insertion character ! appeared)
  
--- 224,236 ----
*************** package Erroutc is
*** 277,286 ****
        --  If this flag is set, the message is not printed. This is used
        --  in the circuit for deleting duplicate/redundant error messages.
  
!       Node : Node_Id;
!       --  If set, points to the node relevant for this message which will be
!       --  used to compute the enclosing subprogram name if
!       --  Opt.Include_Subprogram_In_Messages is set.
     end record;
  
     package Errors is new Table.Table (
--- 247,253 ----
        --  If this flag is set, the message is not printed. This is used
        --  in the circuit for deleting duplicate/redundant error messages.
  
!       Kind : Error_Msg_Type;
     end record;
  
     package Errors is new Table.Table (
*************** package Erroutc is
*** 482,487 ****
--- 449,456 ----
     procedure dmsg (Id : Error_Msg_Id);
     --  Debugging routine to dump an error message
  
+    procedure Decrease_Error_Msg_Count (E : Error_Msg_Object);
+ 
     procedure Debug_Output (N : Node_Id);
     --  Called from Error_Msg_N and Error_Msg_NE to generate line of debug
     --  output giving node number (of node N) if the debug X switch is set.
*************** package Erroutc is
*** 505,510 ****
--- 474,487 ----
     --  Given an error message ID, return tag showing warning message class, or
     --  the null string if this option is not enabled or this is not a warning.
  
+    procedure Increase_Error_Msg_Count (E : Error_Msg_Object);
+    --  Increase the error count for the given kind of error message
+ 
+    function Is_Redundant_Error_Message
+      (Prev_Msg : Error_Msg_Id; Cur_Msg : Error_Msg_Id) return Boolean;
+    --  Check if the Cur_Msg can be removed if it was issued at the same line as
+    --  the Prev_Msg.
+ 
     function Matches (S : String; P : String) return Boolean;
     --  Returns true if the String S matches the pattern P, which can contain
     --  wildcard chars (*). The entire pattern must match the entire string.
*************** package Erroutc is
*** 522,527 ****
--- 499,511 ----
     --  that match or are less than the last Source_Reference pragma are listed
     --  as all blanks, avoiding output of junk line numbers.
  
+    procedure Output_Msg_Location (E : Error_Msg_Id);
+    --  Write the location of the error message in the following format:
+    --
+    --  <File_Name>:<Line>:<Col>:
+    --
+    --  If Full_Path_Name_For_Brief_Errors then full path of the file is used.
+ 
     procedure Output_Msg_Text (E : Error_Msg_Id);
     --  Outputs characters of text in the text of the error message E. Note that
     --  no end of line is output, the caller is responsible for adding the end
*************** package Erroutc is
*** 529,550 ****
     --  splits the line generating multiple lines of output, and in this case
     --  the last line has no terminating end of line character.
  
     procedure Prescan_Message (Msg : String);
     --  Scans message text and sets the following variables:
     --
-    --    Is_Warning_Msg is set True if Msg is a warning message (contains a
-    --    question mark character), and False otherwise.
-    --
-    --    Is_Style_Msg is set True if Msg is a style message (starts with
-    --    "(style)") and False otherwise.
-    --
-    --    Is_Info_Msg is set True if Msg is an information message (starts
-    --    with "info: ". Such messages must contain a ? sequence since they
-    --    are also considered to be warning messages, and get a tag.
-    --
-    --    Is_Serious_Error is set to True unless the message is a warning or
-    --    style message or contains the character | (non-serious error).
-    --
     --    Is_Unconditional_Msg is set True if the message contains the character
     --    ! and is otherwise set False.
     --
--- 513,525 ----
     --  splits the line generating multiple lines of output, and in this case
     --  the last line has no terminating end of line character.
  
+    procedure Output_Text_Within (Txt : String_Ptr; Line_Length : Nat);
+    --  Output the text in Txt, splitting it into lines of at most the size of
+    --  Line_Length.
+ 
     procedure Prescan_Message (Msg : String);
     --  Scans message text and sets the following variables:
     --
     --    Is_Unconditional_Msg is set True if the message contains the character
     --    ! and is otherwise set False.
     --
*************** package Erroutc is
*** 557,568 ****
     --    Has_Insertion_Line is set True if the message contains the character #
     --    and is otherwise set False.
     --
     --  We need to know right away these aspects of a message, since we will
     --  test these values before doing the full error scan.
     --
     --  Note that the call has no effect for continuation messages (those whose
!    --  first character is '\'), and all variables are left unchanged, unless
!    --  -gnatdF is set.
  
     procedure Purge_Messages (From : Source_Ptr; To : Source_Ptr);
     --  All error messages whose location is in the range From .. To (not
--- 532,553 ----
     --    Has_Insertion_Line is set True if the message contains the character #
     --    and is otherwise set False.
     --
+    --    Error_Msg_Kind is set to one of the following values:
+    --      * Style             - if the message starts with "(style)"
+    --      * Info              - if the message starts with "info: "
+    --      * Warning           - if the message contains a "?" and they
+    --                            are neither Info or Style messages.
+    --      * Low_Check         - if the message starts with "low: "
+    --      * Medium_Check      - if the message starts with "medium: "
+    --      * High_Check        - if the message starts with "high: "
+    --      * Non_Serious_Error - if the message contains "|"
+    --      * Error             - otherwise
+    --
     --  We need to know right away these aspects of a message, since we will
     --  test these values before doing the full error scan.
     --
     --  Note that the call has no effect for continuation messages (those whose
!    --  first character is '\') except for the Has_Insertion_Line setting.
  
     procedure Purge_Messages (From : Source_Ptr; To : Source_Ptr);
     --  All error messages whose location is in the range From .. To (not
*************** package Erroutc is
*** 591,596 ****
--- 576,584 ----
     procedure Set_Msg_Insertion_Code;
     --  Handle error code insertion ([] insertion character)
  
+    procedure Set_Msg_Insertion_Column;
+    --  Handle column number insertion (@ insertion character)
+ 
     procedure Set_Msg_Insertion_File_Name;
     --  Handle file name insertion (left brace insertion character)
  
*************** package Erroutc is
*** 651,657 ****
     --  last non-deleted message.
  
     procedure Set_Specific_Warning_Off
!      (Loc    : Source_Ptr;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
--- 639,645 ----
     --  last non-deleted message.
  
     procedure Set_Specific_Warning_Off
!      (Node   : Node_Id;
        Msg    : String;
        Reason : String_Id;
        Config : Boolean;
*************** package Erroutc is
*** 659,671 ****
     --  This is called in response to the two argument form of pragma Warnings
     --  where the first argument is OFF, and the second argument is a string
     --  which identifies a specific warning to be suppressed. The first argument
!    --  is the start of the suppression range, and the second argument is the
!    --  string from the pragma. Loc is the location of the pragma (which is the
!    --  start of the range to suppress). Reason is the reason string from the
!    --  pragma, or the null string if no reason is given. Config is True for the
!    --  configuration pragma case (where there is no requirement for a matching
!    --  OFF pragma). Used is set True to disable the check that the warning
!    --  actually has the effect of suppressing a warning.
  
     procedure Set_Specific_Warning_On
       (Loc : Source_Ptr;
--- 647,659 ----
     --  This is called in response to the two argument form of pragma Warnings
     --  where the first argument is OFF, and the second argument is a string
     --  which identifies a specific warning to be suppressed. The first argument
!    --  is the corresponding N_Pragma node, and the second argument is the
!    --  string from the pragma. Sloc (Node) is the start of the range to
!    --  suppress. Reason is the reason string from the pragma, or the null
!    --  string if no reason is given. Config is True for the configuration
!    --  pragma case (where there is no requirement for a matching OFF pragma).
!    --  Used is set True to disable the check that the warning actually has the
!    --  effect of suppressing a warning.
  
     procedure Set_Specific_Warning_On
       (Loc : Source_Ptr;
*************** package Erroutc is
*** 717,727 ****
     --  given by Warning_As_Error pragmas, as stored in the Warnings_As_Errors
     --  table.
  
!    type Error_Msg_Proc is
!      access procedure (Msg : String; Flag_Location : Source_Ptr);
!    procedure Validate_Specific_Warnings (Eproc : Error_Msg_Proc);
!    --  Checks that specific warnings are consistent (for non-configuration
!    --  case, properly closed, and used). The argument is a pointer to the
!    --  Error_Msg procedure to be called if any inconsistencies are detected.
  
  end Erroutc;
--- 705,711 ----
     --  given by Warning_As_Error pragmas, as stored in the Warnings_As_Errors
     --  table.
  
!    procedure Write_Error_Summary;
!    --  Write error summary
  
  end Erroutc;
diff -Nrcpad gcc-14.2.0/gcc/ada/errutil.adb gcc-15.1.0/gcc/ada/errutil.adb
*** gcc-14.2.0/gcc/ada/errutil.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/errutil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Output;   use Output;
*** 32,38 ****
  with Scans;    use Scans;
  with Sinput;   use Sinput;
  with Stringt;  use Stringt;
- with Stylesw;  use Stylesw;
  
  package body Errutil is
  
--- 32,37 ----
*************** package body Errutil is
*** 58,73 ****
     --  indicates if there are errors attached to the line, which forces
     --  listing on, even in the presence of pragma List (Off).
  
-    procedure Set_Msg_Insertion_Column;
-    --  Handle column number insertion (@ insertion character)
- 
     procedure Set_Msg_Text (Text : String; Flag : Source_Ptr);
     --  Add a sequence of characters to the current message. The characters may
     --  be one of the special insertion characters (see documentation in spec).
     --  Flag is the location at which the error is to be posted, which is used
     --  to determine whether or not the # insertion needs a file name. The
!    --  variables Msg_Buffer, Msglen, Is_Style_Msg, Is_Warning_Msg, and
!    --  Is_Unconditional_Msg are set on return.
  
     ------------------
     -- Error_Msg_AP --
--- 57,68 ----
     --  indicates if there are errors attached to the line, which forces
     --  listing on, even in the presence of pragma List (Off).
  
     procedure Set_Msg_Text (Text : String; Flag : Source_Ptr);
     --  Add a sequence of characters to the current message. The characters may
     --  be one of the special insertion characters (see documentation in spec).
     --  Flag is the location at which the error is to be posted, which is used
     --  to determine whether or not the # insertion needs a file name. The
!    --  variables Msg_Buffer, Msglen and Is_Unconditional_Msg are set on return.
  
     ------------------
     -- Error_Msg_AP --
*************** package body Errutil is
*** 173,182 ****
           return;
        end if;
  
-       if Raise_Exception_On_Error /= 0 then
-          raise Error_Msg_Exception;
-       end if;
- 
        Prescan_Message (Msg);
        Set_Msg_Text (Msg, Sptr);
  
--- 168,173 ----
*************** package body Errutil is
*** 194,200 ****
        --  Immediate return if warning message and warnings are suppressed.
        --  Note that style messages are not warnings for this purpose.
  
!       if Is_Warning_Msg and then Warnings_Suppressed (Sptr) /= No_String then
           Cur_Msg := No_Error_Msg;
           return;
        end if;
--- 185,193 ----
        --  Immediate return if warning message and warnings are suppressed.
        --  Note that style messages are not warnings for this purpose.
  
!       if Error_Msg_Kind = Warning
!         and then Warnings_Suppressed (Sptr) /= No_String
!       then
           Cur_Msg := No_Error_Msg;
           return;
        end if;
*************** package body Errutil is
*** 213,232 ****
              Line                => Get_Physical_Line_Number (Sptr),
              Col                 => Get_Column_Number (Sptr),
              Compile_Time_Pragma => Is_Compile_Time_Msg,
-             Warn                => Is_Warning_Msg,
-             Info                => Is_Info_Msg,
-             Check               => Is_Check_Msg,
              Warn_Err            => Warning_Mode = Treat_As_Error,
-             Warn_Runtime_Raise  => Is_Runtime_Raise,
              Warn_Chr            => Warning_Msg_Char,
-             Style               => Is_Style_Msg,
-             Serious             => Is_Serious_Error,
              Uncond              => Is_Unconditional_Msg,
              Msg_Cont            => Continuation,
              Deleted             => False,
!             Node                => Empty));
  
!       Cur_Msg  := Errors.Last;
        Prev_Msg := No_Error_Msg;
        Next_Msg := First_Error_Msg;
  
--- 206,219 ----
              Line                => Get_Physical_Line_Number (Sptr),
              Col                 => Get_Column_Number (Sptr),
              Compile_Time_Pragma => Is_Compile_Time_Msg,
              Warn_Err            => Warning_Mode = Treat_As_Error,
              Warn_Chr            => Warning_Msg_Char,
              Uncond              => Is_Unconditional_Msg,
              Msg_Cont            => Continuation,
              Deleted             => False,
!             Kind                => Error_Msg_Kind));
  
!       Cur_Msg := Errors.Last;
        Prev_Msg := No_Error_Msg;
        Next_Msg := First_Error_Msg;
  
*************** package body Errutil is
*** 252,295 ****
        --  from the parser recovering. In full errors mode, we don't do this
        --  deletion, but otherwise such messages are discarded at this stage.
  
!       if Prev_Msg /= No_Error_Msg
!         and then Errors.Table (Prev_Msg).Line =
!         Errors.Table (Cur_Msg).Line
!         and then Errors.Table (Prev_Msg).Sfile =
!         Errors.Table (Cur_Msg).Sfile
!       then
!          --  Don't delete unconditional messages and at this stage, don't
!          --  delete continuation lines (we attempted to delete those earlier
!          --  if the parent message was deleted.
! 
!          if not Errors.Table (Cur_Msg).Uncond
!            and then not Continuation
!          then
! 
!             --  Don't delete if prev msg is warning and new msg is an error.
!             --  This is because we don't want a real error masked by a warning.
!             --  In all other cases (that is parse errors for the same line that
!             --  are not unconditional) we do delete the message. This helps to
!             --  avoid junk extra messages from cascaded parsing errors
! 
!             if not (Errors.Table (Prev_Msg).Warn
!                      or else
!                     Errors.Table (Prev_Msg).Style)
!               or else
!                    (Errors.Table (Cur_Msg).Warn
!                      or else
!                     Errors.Table (Cur_Msg).Style)
!             then
!                --  All tests passed, delete the message by simply returning
!                --  without any further processing.
! 
!                if not Continuation then
!                   Last_Killed := True;
!                end if;
  
!                return;
!             end if;
!          end if;
        end if;
  
        --  Come here if message is to be inserted in the error chain
--- 239,249 ----
        --  from the parser recovering. In full errors mode, we don't do this
        --  deletion, but otherwise such messages are discarded at this stage.
  
!       if Is_Redundant_Error_Message (Prev_Msg, Cur_Msg) then
!          pragma Assert (not Continuation);
  
!          Last_Killed := True;
!          return;
        end if;
  
        --  Come here if message is to be inserted in the error chain
*************** package body Errutil is
*** 306,340 ****
  
        Errors.Table (Cur_Msg).Next := Next_Msg;
  
!       --  Bump appropriate statistics counts
! 
!       if Errors.Table (Cur_Msg).Info then
! 
!          --  Could be (usually is) both "info" and "warning"
! 
!          if Errors.Table (Cur_Msg).Warn then
!             Warning_Info_Messages := Warning_Info_Messages + 1;
!             Warnings_Detected := Warnings_Detected + 1;
!          else
!             Report_Info_Messages := Report_Info_Messages + 1;
!          end if;
! 
!       elsif Errors.Table (Cur_Msg).Warn
!         or else Errors.Table (Cur_Msg).Style
!       then
!          Warnings_Detected := Warnings_Detected + 1;
! 
!       elsif Errors.Table (Cur_Msg).Check then
!          Check_Messages := Check_Messages + 1;
! 
!       else
!          Total_Errors_Detected := Total_Errors_Detected + 1;
! 
!          if Errors.Table (Cur_Msg).Serious then
!             Serious_Errors_Detected := Serious_Errors_Detected + 1;
!          end if;
!       end if;
! 
     end Error_Msg;
  
     -----------------
--- 260,266 ----
  
        Errors.Table (Cur_Msg).Next := Next_Msg;
  
!       Increase_Error_Msg_Count (Errors.Table (Cur_Msg));
     end Error_Msg;
  
     -----------------
*************** package body Errutil is
*** 415,438 ****
  
           while E /= No_Error_Msg loop
              if not Errors.Table (E).Deleted then
!                if Full_Path_Name_For_Brief_Errors then
!                   Write_Name (Full_Ref_Name (Errors.Table (E).Sfile));
!                else
!                   Write_Name (Reference_Name (Errors.Table (E).Sfile));
!                end if;
! 
!                Write_Char (':');
!                Write_Int (Int (Physical_To_Logical
!                                 (Errors.Table (E).Line,
!                                  Errors.Table (E).Sfile)));
!                Write_Char (':');
! 
!                if Errors.Table (E).Col < 10 then
!                   Write_Char ('0');
!                end if;
! 
!                Write_Int (Int (Errors.Table (E).Col));
!                Write_Str (": ");
                 Output_Msg_Text (E);
                 Write_Eol;
              end if;
--- 341,347 ----
  
           while E /= No_Error_Msg loop
              if not Errors.Table (E).Deleted then
!                Output_Msg_Location (E);
                 Output_Msg_Text (E);
                 Write_Eol;
              end if;
*************** package body Errutil is
*** 504,587 ****
        --  Output error summary if verbose or full list mode
  
        if Verbose_Mode or else Full_List then
! 
!          --  Extra blank line if error messages or source listing were output
! 
!          if Total_Errors_Detected + Warnings_Detected > 0
!            or else Full_List
!          then
!             Write_Eol;
!          end if;
! 
!          --  Message giving number of lines read and number of errors detected.
!          --  This normally goes to Standard_Output. The exception is when brief
!          --  mode is not set, verbose mode (or full list mode) is set, and
!          --  there are errors. In this case we send the message to standard
!          --  error to make sure that *something* appears on standard error in
!          --  an error situation.
! 
!          --  Historical note: Formerly, only the "# errors" suffix was sent
!          --  to stderr, whereas "# lines:" appeared on stdout. This caused
!          --  some problems on now-obsolete ports, but there seems to be no
!          --  reason to revert this page since it would be incompatible.
! 
!          if Total_Errors_Detected + Warnings_Detected /= 0
!            and then not Brief_Output
!            and then (Verbose_Mode or Full_List)
!          then
!             Set_Standard_Error;
!          end if;
! 
!          --  Message giving total number of lines
! 
!          Write_Str (" ");
!          Write_Int (Num_Source_Lines (Main_Source_File));
! 
!          if Num_Source_Lines (Main_Source_File) = 1 then
!             Write_Str (" line: ");
!          else
!             Write_Str (" lines: ");
!          end if;
! 
!          if Total_Errors_Detected = 0 then
!             Write_Str ("No errors");
! 
!          elsif Total_Errors_Detected = 1 then
!             Write_Str ("1 error");
! 
!          else
!             Write_Int (Total_Errors_Detected);
!             Write_Str (" errors");
!          end if;
! 
!          if Warnings_Detected - Warning_Info_Messages /= 0 then
!             Write_Str (", ");
!             Write_Int (Warnings_Detected - Warning_Info_Messages);
!             Write_Str (" warning");
! 
!             if Warnings_Detected - Warning_Info_Messages /= 1 then
!                Write_Char ('s');
!             end if;
! 
!             if Warning_Mode = Treat_As_Error then
!                Write_Str (" (treated as error");
! 
!                if Warnings_Detected - Warning_Info_Messages /= 1 then
!                   Write_Char ('s');
!                end if;
! 
!                Write_Char (')');
!             end if;
!          end if;
! 
!          Write_Eol;
!          Set_Standard_Output;
        end if;
  
        if Maximum_Messages /= 0 then
           if Warnings_Detected >= Maximum_Messages then
              Set_Standard_Error;
              Write_Line ("maximum number of warnings detected");
              Warning_Mode := Suppress;
           end if;
  
--- 413,426 ----
        --  Output error summary if verbose or full list mode
  
        if Verbose_Mode or else Full_List then
!          Write_Error_Summary;
        end if;
  
        if Maximum_Messages /= 0 then
           if Warnings_Detected >= Maximum_Messages then
              Set_Standard_Error;
              Write_Line ("maximum number of warnings detected");
+ 
              Warning_Mode := Suppress;
           end if;
  
*************** package body Errutil is
*** 596,604 ****
        --  must not be treated as errors when -gnatwe is in effect.
  
        if Warning_Mode = Treat_As_Error then
!          Total_Errors_Detected :=
!            Total_Errors_Detected + Warnings_Detected - Warning_Info_Messages;
!          Warnings_Detected := Warning_Info_Messages;
        end if;
  
        --  Prevent displaying the same messages again in the future
--- 435,442 ----
        --  must not be treated as errors when -gnatwe is in effect.
  
        if Warning_Mode = Treat_As_Error then
!          Total_Errors_Detected := Total_Errors_Detected + Warnings_Detected;
!          Warnings_Detected := 0;
        end if;
  
        --  Prevent displaying the same messages again in the future
*************** package body Errutil is
*** 618,625 ****
        Serious_Errors_Detected := 0;
        Total_Errors_Detected := 0;
        Warnings_Detected := 0;
!       Warning_Info_Messages := 0;
!       Report_Info_Messages := 0;
        Cur_Msg := No_Error_Msg;
  
        --  Initialize warnings table, if all warnings are suppressed, supply
--- 456,462 ----
        Serious_Errors_Detected := 0;
        Total_Errors_Detected := 0;
        Warnings_Detected := 0;
!       Info_Messages := 0;
        Cur_Msg := No_Error_Msg;
  
        --  Initialize warnings table, if all warnings are suppressed, supply
*************** package body Errutil is
*** 694,711 ****
        Errors_Must_Be_Ignored := To;
     end Set_Ignore_Errors;
  
-    ------------------------------
-    -- Set_Msg_Insertion_Column --
-    ------------------------------
- 
-    procedure Set_Msg_Insertion_Column is
-    begin
-       if RM_Column_Check then
-          Set_Msg_Str (" in column ");
-          Set_Msg_Int (Int (Error_Msg_Col) + 1);
-       end if;
-    end Set_Msg_Insertion_Column;
- 
     ------------------
     -- Set_Msg_Text --
     ------------------
--- 531,536 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/errutil.ads gcc-15.1.0/gcc/ada/errutil.ads
*** gcc-14.2.0/gcc/ada/errutil.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/errutil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/eval_fat.adb gcc-15.1.0/gcc/ada/eval_fat.adb
*** gcc-14.2.0/gcc/ada/eval_fat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/eval_fat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/eval_fat.ads gcc-15.1.0/gcc/ada/eval_fat.ads
*** gcc-14.2.0/gcc/ada/eval_fat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/eval_fat.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exit.c gcc-15.1.0/gcc/ada/exit.c
*** gcc-14.2.0/gcc/ada/exit.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exit.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_aggr.adb gcc-15.1.0/gcc/ada/exp_aggr.adb
*** gcc-14.2.0/gcc/ada/exp_aggr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_aggr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Tss;        use Exp_Tss;
*** 43,48 ****
--- 43,49 ----
  with Freeze;         use Freeze;
  with Itypes;         use Itypes;
  with Lib;            use Lib;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nmake;          use Nmake;
  with Nlists;         use Nlists;
*************** with Warnsw;         use Warnsw;
*** 77,101 ****
  
  package body Exp_Aggr is
  
-    function Build_Assignment_With_Temporary
-      (Target : Node_Id;
-       Typ    : Entity_Id;
-       Source : Node_Id) return List_Id;
-    --  Returns a list of actions to assign Source to Target of type Typ using
-    --  an extra temporary, which can potentially be large.
- 
     type Case_Bounds is record
!      Choice_Lo   : Node_Id;
!      Choice_Hi   : Node_Id;
!      Choice_Node : Node_Id;
     end record;
  
     type Case_Table_Type is array (Nat range <>) of Case_Bounds;
!    --  Table type used by Check_Case_Choices procedure
! 
!    procedure Expand_Delta_Array_Aggregate  (N : Node_Id; Deltas : List_Id);
!    procedure Expand_Delta_Record_Aggregate (N : Node_Id; Deltas : List_Id);
!    procedure Expand_Container_Aggregate (N : Node_Id);
  
     function Get_Base_Object (N : Node_Id) return Entity_Id;
     --  Return the base object, i.e. the outermost prefix object, that N refers
--- 78,91 ----
  
  package body Exp_Aggr is
  
     type Case_Bounds is record
!       Choice_Lo   : Node_Id;
!       Choice_Hi   : Node_Id;
!       Choice_Node : Node_Id;
     end record;
  
     type Case_Table_Type is array (Nat range <>) of Case_Bounds;
!    --  Table type used by Sort_Case_Table procedure
  
     function Get_Base_Object (N : Node_Id) return Entity_Id;
     --  Return the base object, i.e. the outermost prefix object, that N refers
*************** package body Exp_Aggr is
*** 112,124 ****
        Comp_Typ  : Node_Id;
        Init_Expr : Node_Id;
        Stmts     : List_Id);
!     --  Perform the initialization of component Comp with expected type
!     --  Comp_Typ of aggregate N. Init_Expr denotes the initialization
!     --  expression of the component. All generated code is added to Stmts.
  
!    function Is_CCG_Supported_Aggregate (N : Node_Id) return Boolean;
!    --  Return True if aggregate N is located in a context supported by the
!    --  CCG backend; False otherwise.
  
     function Is_Static_Dispatch_Table_Aggregate (N : Node_Id) return Boolean;
     --  Returns true if N is an aggregate used to initialize the components
--- 102,121 ----
        Comp_Typ  : Node_Id;
        Init_Expr : Node_Id;
        Stmts     : List_Id);
!    --  Perform the initialization of component Comp with expected type
!    --  Comp_Typ of aggregate N. Init_Expr denotes the initialization
!    --  expression of the component. All generated code is added to Stmts.
  
!    function In_Place_Assign_OK
!      (N             : Node_Id;
!       Target_Object : Entity_Id := Empty) return Boolean;
!    --  Predicate to determine whether an aggregate assignment can be done in
!    --  place, because none of the new values can depend on the components of
!    --  the target of the assignment.
! 
!    function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean;
!    --  Return True if N is a simple return whose expression needs to be built
!    --  in place in the return object, assuming the expression is an aggregate.
  
     function Is_Static_Dispatch_Table_Aggregate (N : Node_Id) return Boolean;
     --  Returns true if N is an aggregate used to initialize the components
*************** package body Exp_Aggr is
*** 154,161 ****
     --  case the aggregate must slide, and we must introduce an intermediate
     --  temporary to hold it.
     --
!    --  The same holds in an assignment to one-dimensional array of arrays,
!    --  when a component may be given with bounds that differ from those of the
     --  component type.
  
     function Number_Of_Choices (N : Node_Id) return Nat;
--- 151,158 ----
     --  case the aggregate must slide, and we must introduce an intermediate
     --  temporary to hold it.
     --
!    --  The same holds in an assignment to multi-dimensional arrays, when
!    --  components may be given with bounds that differ from those of the
     --  component type.
  
     function Number_Of_Choices (N : Node_Id) return Nat;
*************** package body Exp_Aggr is
*** 168,190 ****
     --  statement of variant part will usually be small and probably in near
     --  sorted order.
  
     ------------------------------------------------------
     -- Local subprograms for Record Aggregate Expansion --
     ------------------------------------------------------
  
-    function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean;
-    --  True if N is an aggregate (possibly qualified or a dependent expression
-    --  of a conditional expression, and possibly recursively so) that is being
-    --  returned from a build-in-place function. Such qualified and conditional
-    --  expressions are transparent for this purpose because an enclosing return
-    --  is propagated resp. distributed into these expressions by the expander.
- 
     function Build_Record_Aggr_Code
       (N   : Node_Id;
        Typ : Entity_Id;
        Lhs : Node_Id) return List_Id;
     --  N is an N_Aggregate or an N_Extension_Aggregate. Typ is the type of the
!    --  aggregate. Target is an expression containing the location on which the
     --  component by component assignments will take place. Returns the list of
     --  assignments plus all other adjustments needed for tagged and controlled
     --  types.
--- 165,184 ----
     --  statement of variant part will usually be small and probably in near
     --  sorted order.
  
+    function UI_Are_In_Int_Range (Left, Right : Uint) return Boolean is
+      (UI_Is_In_Int_Range (Left) and then UI_Is_In_Int_Range (Right));
+    --  Return True if both Left and Right are in Int range
+ 
     ------------------------------------------------------
     -- Local subprograms for Record Aggregate Expansion --
     ------------------------------------------------------
  
     function Build_Record_Aggr_Code
       (N   : Node_Id;
        Typ : Entity_Id;
        Lhs : Node_Id) return List_Id;
     --  N is an N_Aggregate or an N_Extension_Aggregate. Typ is the type of the
!    --  aggregate. Lhs is an expression containing the location on which the
     --  component by component assignments will take place. Returns the list of
     --  assignments plus all other adjustments needed for tagged and controlled
     --  types.
*************** package body Exp_Aggr is
*** 194,199 ****
--- 188,196 ----
     --  component by component. N is an N_Aggregate or N_Extension_Aggregate.
     --  Typ is the type of the record aggregate.
  
+    procedure Expand_Delta_Record_Aggregate (N : Node_Id; Deltas : List_Id);
+    --  This is the top level procedure for delta record aggregate expansion
+ 
     procedure Expand_Record_Aggregate
       (N           : Node_Id;
        Orig_Tag    : Node_Id := Empty;
*************** package body Exp_Aggr is
*** 216,228 ****
     --  defaults. An aggregate for a type with mutable components must be
     --  expanded into individual assignments.
  
-    function In_Place_Assign_OK
-      (N             : Node_Id;
-       Target_Object : Entity_Id := Empty) return Boolean;
-    --  Predicate to determine whether an aggregate assignment can be done in
-    --  place, because none of the new values can depend on the components of
-    --  the target of the assignment.
- 
     procedure Initialize_Discriminants (N : Node_Id; Typ : Entity_Id);
     --  If the type of the aggregate is a type extension with renamed discrimi-
     --  nants, we must initialize the hidden discriminants of the parent.
--- 213,218 ----
*************** package body Exp_Aggr is
*** 235,246 ****
     --  functions of the parent type, and when applying a stream attribute to
     --  an object of the derived type.
  
     -----------------------------------------------------
     -- Local Subprograms for Array Aggregate Expansion --
     -----------------------------------------------------
  
!    function Aggr_Assignment_OK_For_Backend (N : Node_Id) return Boolean;
!    --  Returns true if an aggregate assignment can be done by the back end
  
     function Aggr_Size_OK (N : Node_Id) return Boolean;
     --  Very large static aggregates present problems to the back-end, and are
--- 225,257 ----
     --  functions of the parent type, and when applying a stream attribute to
     --  an object of the derived type.
  
+    ---------------------------------------------------------
+    -- Local Subprograms for Container Aggregate Expansion --
+    ---------------------------------------------------------
+ 
+    procedure Expand_Container_Aggregate (N : Node_Id);
+    --  This is the top-level routine for container aggregate expansion
+ 
+    function Build_Container_Aggr_Code
+      (N    : Node_Id;
+       Typ  : Entity_Id;
+       Lhs  : Node_Id;
+       Init : out Node_Id) return List_Id;
+    --  N is an N_Aggregate for a container type Typ. Lhs is an expression
+    --  containing the location of the anonymous object, which may be built
+    --  in place. Returns the function call used to initialize the anonymous
+    --  object in Init and the list of statements needed to build N.
+ 
     -----------------------------------------------------
     -- Local Subprograms for Array Aggregate Expansion --
     -----------------------------------------------------
  
!    function Aggr_Assignment_OK_For_Backend
!      (N      : Node_Id;
!       Target : Node_Id := Empty) return Boolean;
!    --  Returns true if assignment of aggregate N can be done by the back end.
!    --  If Target is present, it is the left-hand side of the assignment; if it
!    --  is not, the assignment is the initialization of an object or allocator.
  
     function Aggr_Size_OK (N : Node_Id) return Boolean;
     --  Very large static aggregates present problems to the back-end, and are
*************** package body Exp_Aggr is
*** 282,297 ****
     --    Indexes is the current list of expressions used to index the object we
     --    are writing into.
  
-    procedure Convert_Array_Aggr_In_Allocator
-      (Decl   : Node_Id;
-       Aggr   : Node_Id;
-       Target : Node_Id);
-    --  If the aggregate appears within an allocator and can be expanded in
-    --  place, this routine generates the individual assignments to components
-    --  of the designated object. This is an optimization over the general
-    --  case, where a temporary is first created on the stack and then used to
-    --  construct the allocated object on the heap.
- 
     procedure Convert_To_Positional
       (N                 : Node_Id;
        Handle_Bit_Packed : Boolean := False);
--- 293,298 ----
*************** package body Exp_Aggr is
*** 305,312 ****
     --  these are cases we handle in there.
  
     procedure Expand_Array_Aggregate (N : Node_Id);
!    --  This is the top-level routine to perform array aggregate expansion.
!    --  N is the N_Aggregate node to be expanded.
  
     function Is_Two_Dim_Packed_Array (Typ : Entity_Id) return Boolean;
     --  For 2D packed array aggregates with constant bounds and constant scalar
--- 306,315 ----
     --  these are cases we handle in there.
  
     procedure Expand_Array_Aggregate (N : Node_Id);
!    --  This is the top-level routine for array aggregate expansion
! 
!    procedure Expand_Delta_Array_Aggregate (N : Node_Id; Deltas : List_Id);
!    --  This is the top-level routine for delta array aggregate expansion
  
     function Is_Two_Dim_Packed_Array (Typ : Entity_Id) return Boolean;
     --  For 2D packed array aggregates with constant bounds and constant scalar
*************** package body Exp_Aggr is
*** 343,350 ****
     -- Aggr_Assignment_OK_For_Backend --
     ------------------------------------
  
!    --  Back-end processing by Gigi/gcc is possible only if all the following
!    --  conditions are met:
  
     --    1. N consists of a single OTHERS choice, possibly recursively, or
     --       of a single choice, possibly recursively, if it is surrounded by
--- 346,353 ----
     -- Aggr_Assignment_OK_For_Backend --
     ------------------------------------
  
!    --  Back-end processing is possible only if all the following conditions
!    --  are met:
  
     --    1. N consists of a single OTHERS choice, possibly recursively, or
     --       of a single choice, possibly recursively, if it is surrounded by
*************** package body Exp_Aggr is
*** 367,374 ****
     --  The ultimate goal is to generate a call to a fast memset routine
     --  specifically optimized for the target.
  
!    function Aggr_Assignment_OK_For_Backend (N : Node_Id) return Boolean is
! 
        function Is_OK_Aggregate (Aggr : Node_Id) return Boolean;
        --  Return true if Aggr is suitable for back-end assignment
  
--- 370,379 ----
     --  The ultimate goal is to generate a call to a fast memset routine
     --  specifically optimized for the target.
  
!    function Aggr_Assignment_OK_For_Backend
!      (N      : Node_Id;
!       Target : Node_Id := Empty) return Boolean
!    is
        function Is_OK_Aggregate (Aggr : Node_Id) return Boolean;
        --  Return true if Aggr is suitable for back-end assignment
  
*************** package body Exp_Aggr is
*** 418,429 ****
--- 423,449 ----
     --  Start of processing for Aggr_Assignment_OK_For_Backend
  
     begin
+       --  CodePeer does not support this
+ 
+       if CodePeer_Mode then
+          return False;
+       end if;
+ 
        --  Back end doesn't know about <>
  
        if Has_Default_Init_Comps (N) then
           return False;
        end if;
  
+       --  Assignments to bit-aligned components or slices are not OK
+ 
+       if Present (Target)
+         and then (Possible_Bit_Aligned_Component (Target)
+                    or else Is_Possibly_Unaligned_Slice (Target))
+       then
+          return False;
+       end if;
+ 
        --  Recurse as far as possible to find the innermost component type
  
        Ctyp := Etype (N);
*************** package body Exp_Aggr is
*** 509,518 ****
        end if;
  
        --  If the expression has side effects (e.g. contains calls with
!       --  potential side effects) reject as well. We only preanalyze the
!       --  expression to prevent the removal of intended side effects.
! 
!       Preanalyze_And_Resolve (Expr, Ctyp);
  
        if not Side_Effect_Free (Expr) then
           return False;
--- 529,535 ----
        end if;
  
        --  If the expression has side effects (e.g. contains calls with
!       --  potential side effects), then reject it as well.
  
        if not Side_Effect_Free (Expr) then
           return False;
*************** package body Exp_Aggr is
*** 711,719 ****
              return True;
           end if;
  
!          --  One-component aggregates are suspicious, and if the context type
!          --  is an object declaration with nonstatic bounds it will trip gcc;
!          --  such an aggregate must be expanded into a single assignment.
  
           if Hiv = Lov and then Nkind (Parent (N)) = N_Object_Declaration then
              declare
--- 728,737 ----
              return True;
           end if;
  
!          --  One-component named aggregates where the index constraint is not
!          --  known at compile time are suspicious as the user might have
!          --  intended to write a subtype name but wrote the name of an object
!          --  instead. We emit a warning if we're in such a case.
  
           if Hiv = Lov and then Nkind (Parent (N)) = N_Object_Declaration then
              declare
*************** package body Exp_Aggr is
*** 741,748 ****
                          Error_Msg_N ("\maybe subtype name was meant??", Indx);
                       end if;
                    end if;
- 
-                   return False;
                 end if;
              end;
           end if;
--- 759,764 ----
*************** package body Exp_Aggr is
*** 771,780 ****
  
           --  Bounds must be in integer range, for later array construction
  
!          if not UI_Is_In_Int_Range (Lov)
!              or else
!             not UI_Is_In_Int_Range (Hiv)
!          then
              return False;
           end if;
  
--- 787,793 ----
  
           --  Bounds must be in integer range, for later array construction
  
!          if not UI_Are_In_Int_Range (Lov, Hiv) then
              return False;
           end if;
  
*************** package body Exp_Aggr is
*** 788,795 ****
     -- Backend_Processing_Possible --
     ---------------------------------
  
!    --  Backend processing by Gigi/gcc is possible only if all the following
!    --  conditions are met:
  
     --    1. N is fully positional
  
--- 801,808 ----
     -- Backend_Processing_Possible --
     ---------------------------------
  
!    --  Back-end processing is possible only if all the following conditions
!    --  are met:
  
     --    1. N is fully positional
  
*************** package body Exp_Aggr is
*** 817,826 ****
  
     --   10. No controlled actions need to be generated for components
  
-    --   11. When generating C code, N must be part of a N_Object_Declaration
- 
-    --   12. When generating C code, N must not include function calls
- 
     function Backend_Processing_Possible (N : Node_Id) return Boolean is
        Typ : constant Entity_Id := Etype (N);
        --  Typ is the correct constrained array subtype of the aggregate
--- 830,835 ----
*************** package body Exp_Aggr is
*** 836,868 ****
        ---------------------
  
        function Component_Check (N : Node_Id; Index : Node_Id) return Boolean is
-          function Ultimate_Original_Expression (N : Node_Id) return Node_Id;
-          --  Given a type conversion or an unchecked type conversion N, return
-          --  its innermost original expression.
- 
-          ----------------------------------
-          -- Ultimate_Original_Expression --
-          ----------------------------------
- 
-          function Ultimate_Original_Expression (N : Node_Id) return Node_Id is
-             Expr : Node_Id := Original_Node (N);
- 
-          begin
-             while Nkind (Expr) in
-                     N_Type_Conversion | N_Unchecked_Type_Conversion
-             loop
-                Expr := Original_Node (Expression (Expr));
-             end loop;
- 
-             return Expr;
-          end Ultimate_Original_Expression;
- 
-          --  Local variables
- 
           Expr : Node_Id;
- 
-       --  Start of processing for Component_Check
- 
        begin
           --  Checks 1: (no component associations)
  
--- 845,851 ----
*************** package body Exp_Aggr is
*** 870,882 ****
              return False;
           end if;
  
-          --  Checks 11: The C code generator cannot handle aggregates that are
-          --  not part of an object declaration.
- 
-          if Modify_Tree_For_C and then not Is_CCG_Supported_Aggregate (N) then
-             return False;
-          end if;
- 
           --  Checks on components
  
           --  Recurse to check subaggregates, which may appear in qualified
--- 853,858 ----
*************** package body Exp_Aggr is
*** 908,922 ****
                 return False;
              end if;
  
-             --  Checks 12: (no function call)
- 
-             if Modify_Tree_For_C
-               and then
-                 Nkind (Ultimate_Original_Expression (Expr)) = N_Function_Call
-             then
-                return False;
-             end if;
- 
              --  Recursion to following indexes for multiple dimension case
  
              if Present (Next_Index (Index))
--- 884,889 ----
*************** package body Exp_Aggr is
*** 1063,1070 ****
        --  Returns a new reference to the index type name
  
        function Gen_Assign
!         (Ind     : Node_Id;
!          Expr    : Node_Id) return List_Id;
        --  Ind must be a side-effect-free expression. If the input aggregate N
        --  to Build_Loop contains no subaggregates, then this function returns
        --  the assignment statement:
--- 1030,1037 ----
        --  Returns a new reference to the index type name
  
        function Gen_Assign
!         (Ind  : Node_Id;
!          Expr : Node_Id) return List_Id;
        --  Ind must be a side-effect-free expression. If the input aggregate N
        --  to Build_Loop contains no subaggregates, then this function returns
        --  the assignment statement:
*************** package body Exp_Aggr is
*** 1107,1115 ****
  
        function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id;
        --  For an association with a box, use value given by aspect
!      --   Default_Component_Value of array type if specified, else use
!      --   value given by aspect Default_Value for component type itself
!      --   if specified, else return Empty.
  
        function Local_Compile_Time_Known_Value (E : Node_Id) return Boolean;
        function Local_Expr_Value               (E : Node_Id) return Uint;
--- 1074,1082 ----
  
        function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id;
        --  For an association with a box, use value given by aspect
!       --  Default_Component_Value of array type if specified, else use
!       --  value given by aspect Default_Value for component type itself
!       --  if specified, else return Empty.
  
        function Local_Compile_Time_Known_Value (E : Node_Id) return Boolean;
        function Local_Expr_Value               (E : Node_Id) return Uint;
*************** package body Exp_Aggr is
*** 1290,1298 ****
        ----------------
  
        function Gen_Assign
!         (Ind     : Node_Id;
!          Expr    : Node_Id) return List_Id
!        is
           function Add_Loop_Actions (Lis : List_Id) return List_Id;
           --  Collect insert_actions generated in the construction of a loop,
           --  and prepend them to the sequence of assignments to complete the
--- 1257,1265 ----
        ----------------
  
        function Gen_Assign
!         (Ind  : Node_Id;
!          Expr : Node_Id) return List_Id
!       is
           function Add_Loop_Actions (Lis : List_Id) return List_Id;
           --  Collect insert_actions generated in the construction of a loop,
           --  and prepend them to the sequence of assignments to complete the
*************** package body Exp_Aggr is
*** 1312,1323 ****
              if No (Expr) then
                 return Lis;
  
!             elsif Nkind (Parent (Expr)) = N_Component_Association
                and then Present (Loop_Actions (Parent (Expr)))
              then
-                Append_List (Lis, Loop_Actions (Parent (Expr)));
                 Res := Loop_Actions (Parent (Expr));
                 Set_Loop_Actions (Parent (Expr), No_List);
                 return Res;
  
              else
--- 1279,1291 ----
              if No (Expr) then
                 return Lis;
  
!             elsif Nkind (Parent (Expr)) in N_Component_Association
!                                          | N_Iterated_Component_Association
                and then Present (Loop_Actions (Parent (Expr)))
              then
                 Res := Loop_Actions (Parent (Expr));
                 Set_Loop_Actions (Parent (Expr), No_List);
+                Append_List (Lis, To => Res);
                 return Res;
  
              else
*************** package body Exp_Aggr is
*** 1361,1372 ****
           --  If we get here then we are at a bottom-level (sub-)aggregate
  
           Indexed_Comp :=
!            Checks_Off
!              (Make_Indexed_Component (Loc,
!                 Prefix      => New_Copy_Tree (Into),
!                 Expressions => New_Indexes));
  
           Set_Assignment_OK (Indexed_Comp);
  
           --  Ada 2005 (AI-287): In case of default initialized component, Expr
           --  is not present (and therefore we also initialize Expr_Q to empty).
--- 1329,1340 ----
           --  If we get here then we are at a bottom-level (sub-)aggregate
  
           Indexed_Comp :=
!            Make_Indexed_Component (Loc,
!              Prefix      => New_Copy_Tree (Into),
!              Expressions => New_Indexes);
  
           Set_Assignment_OK (Indexed_Comp);
+          Set_Kill_Range_Check (Indexed_Comp);
  
           --  Ada 2005 (AI-287): In case of default initialized component, Expr
           --  is not present (and therefore we also initialize Expr_Q to empty).
*************** package body Exp_Aggr is
*** 1374,1381 ****
           Expr_Q := Unqualify (Expr);
  
           if Present (Etype (N)) and then Etype (N) /= Any_Composite then
!             Comp_Typ := Component_Type (Etype (N));
!             pragma Assert (Comp_Typ = Ctype); --  AI-287
  
           elsif Present (Next (First (New_Indexes))) then
  
--- 1342,1349 ----
           Expr_Q := Unqualify (Expr);
  
           if Present (Etype (N)) and then Etype (N) /= Any_Composite then
!             Comp_Typ := Get_Corresponding_Mutably_Tagged_Type_If_Present
!                           (Component_Type (Etype (N)));
  
           elsif Present (Next (First (New_Indexes))) then
  
*************** package body Exp_Aggr is
*** 1489,1502 ****
           --  object creation that will invoke it otherwise.
  
           else
!             if Present (Base_Init_Proc (Base_Type (Ctype)))
!               or else Has_Task (Base_Type (Ctype))
!             then
!                Append_List_To (Stmts,
!                  Build_Initialization_Call (Loc,
!                    Id_Ref            => Indexed_Comp,
!                    Typ               => Ctype,
!                    With_Default_Init => True));
  
                 --  If the component type has invariants, add an invariant
                 --  check after the component is default-initialized. It will
--- 1457,1472 ----
           --  object creation that will invoke it otherwise.
  
           else
!             if Present (Base_Init_Proc (Ctype)) then
!                Check_Restriction (No_Default_Initialization, N);
! 
!                if not Restriction_Active (No_Default_Initialization) then
!                   Append_List_To (Stmts,
!                     Build_Initialization_Call (N,
!                       Id_Ref            => Indexed_Comp,
!                       Typ               => Ctype,
!                       With_Default_Init => True));
!                end if;
  
                 --  If the component type has invariants, add an invariant
                 --  check after the component is default-initialized. It will
*************** package body Exp_Aggr is
*** 1649,1659 ****
             and then Local_Expr_Value (H) - Local_Expr_Value (L) <= 2
             and then not Is_Iterated_Component
           then
!             Append_List_To (S, Gen_Assign (New_Copy_Tree (L), Expr));
!             Append_List_To (S, Gen_Assign (Add (1, To => L), Expr));
  
              if Local_Expr_Value (H) - Local_Expr_Value (L) = 2 then
!                Append_List_To (S, Gen_Assign (Add (2, To => L), Expr));
              end if;
  
              return S;
--- 1619,1632 ----
             and then Local_Expr_Value (H) - Local_Expr_Value (L) <= 2
             and then not Is_Iterated_Component
           then
!             Append_List_To
!               (S, Gen_Assign (New_Copy_Tree (L), New_Copy_Tree (Expr)));
!             Append_List_To
!               (S, Gen_Assign (Add (1, To => L), New_Copy_Tree (Expr)));
  
              if Local_Expr_Value (H) - Local_Expr_Value (L) = 2 then
!                Append_List_To
!                  (S, Gen_Assign (Add (2, To => L), New_Copy_Tree (Expr)));
              end if;
  
              return S;
*************** package body Exp_Aggr is
*** 1664,1671 ****
           if Is_Iterated_Component then
  
              --  Create a new scope for the loop variable so that the
!             --  following Gen_Assign (that ends up calling
!             --  Preanalyze_And_Resolve) can correctly find it.
  
              Ent := New_Internal_Entity (E_Loop,
                   Current_Scope, Loc, 'L');
--- 1637,1643 ----
           if Is_Iterated_Component then
  
              --  Create a new scope for the loop variable so that the
!             --  following Gen_Assign can correctly find it.
  
              Ent := New_Internal_Entity (E_Loop,
                   Current_Scope, Loc, 'L');
*************** package body Exp_Aggr is
*** 1958,1963 ****
--- 1930,1996 ----
     --  Start of processing for Build_Array_Aggr_Code
  
     begin
+       --  If the assignment can be done directly by the back end, then expand
+       --  into an assignment statement.
+ 
+       if Present (Etype (N))
+         and then Aggr_Assignment_OK_For_Backend (N, Into)
+       then
+          declare
+             New_Aggr : constant Node_Id := Relocate_Node (N);
+             Target   : constant Node_Id :=
+                          (if Nkind (Into) = N_Unchecked_Type_Conversion
+                           then Expression (Into)
+                           else Into);
+ 
+             Temp : Node_Id;
+ 
+          begin
+             --  Block any further processing of the aggregate by the front end
+ 
+             Set_Analyzed (New_Aggr);
+             Set_Expansion_Delayed (New_Aggr, False);
+ 
+             --  In the case where the target is the dereference of a prefix
+             --  with Designated_Storage_Model aspect specifying the Copy_To
+             --  procedure, first insert a temporary and have the back end
+             --  handle the assignment to it, then assign the result to the
+             --  original target.
+ 
+             if Nkind (Target) = N_Explicit_Dereference
+               and then
+                 Has_Designated_Storage_Model_Aspect (Etype (Prefix (Target)))
+               and then Present (Storage_Model_Copy_To
+                                  (Storage_Model_Object
+                                    (Etype (Prefix (Target)))))
+             then
+                Temp := Build_Temporary_On_Secondary_Stack (Loc, Typ, New_Code);
+ 
+                Append_To (New_Code,
+                  Make_OK_Assignment_Statement (Loc,
+                    Name       =>
+                      Make_Explicit_Dereference (Loc,
+                        Prefix => New_Occurrence_Of (Temp, Loc)),
+                    Expression => New_Aggr));
+ 
+                Append_To (New_Code,
+                  Make_OK_Assignment_Statement (Loc,
+                    Name       => Target,
+                    Expression =>
+                      Make_Explicit_Dereference (Loc,
+                        Prefix => New_Occurrence_Of (Temp, Loc))));
+ 
+                return New_Code;
+ 
+             else
+                return New_List (
+                  Make_OK_Assignment_Statement (Loc,
+                    Name       => Into,
+                    Expression => New_Aggr));
+             end if;
+          end;
+       end if;
+ 
        --  First before we start, a special case. If we have a bit packed
        --  array represented as a modular type, then clear the value to
        --  zero first, to ensure that unused bits are properly cleared.
*************** package body Exp_Aggr is
*** 1988,1994 ****
        --  STEP 1: Process component associations
  
        --  For those associations that may generate a loop, initialize
!       --  Loop_Actions to collect inserted actions that may be crated.
  
        --  Skip this if no component associations
  
--- 2021,2027 ----
        --  STEP 1: Process component associations
  
        --  For those associations that may generate a loop, initialize
!       --  Loop_Actions to collect inserted actions that may be created.
  
        --  Skip this if no component associations
  
*************** package body Exp_Aggr is
*** 2001,2028 ****
  
           Assoc := First (Component_Associations (N));
           while Present (Assoc) loop
!             Choice := First (Choice_List (Assoc));
!             while Present (Choice) loop
!                if Nkind (Choice) = N_Others_Choice then
!                   Others_Assoc := Assoc;
!                   exit;
!                end if;
  
!                Bounds := Get_Index_Bounds (Choice);
  
!                if Low /= High then
!                   Set_Loop_Actions (Assoc, New_List);
!                end if;
  
!                Nb_Choices := Nb_Choices + 1;
  
!                Table (Nb_Choices) :=
!                   (Choice_Lo   => Low,
!                    Choice_Hi   => High,
!                    Choice_Node => Get_Assoc_Expr (Assoc));
  
!                Next (Choice);
!             end loop;
  
              Next (Assoc);
           end loop;
--- 2034,2068 ----
  
           Assoc := First (Component_Associations (N));
           while Present (Assoc) loop
!             declare
!                First_Range : Boolean := True;
  
!             begin
!                Choice := First (Choice_List (Assoc));
!                while Present (Choice) loop
!                   if Nkind (Choice) = N_Others_Choice then
!                      Others_Assoc := Assoc;
!                      exit;
!                   end if;
  
!                   Bounds := Get_Index_Bounds (Choice);
  
!                   if First_Range and then Low /= High then
!                      pragma Assert (No (Loop_Actions (Assoc)));
!                      Set_Loop_Actions (Assoc, New_List);
!                      First_Range := False;
!                   end if;
  
!                   Nb_Choices := Nb_Choices + 1;
  
!                   Table (Nb_Choices) :=
!                      (Choice_Lo   => Low,
!                       Choice_Hi   => High,
!                       Choice_Node => Get_Assoc_Expr (Assoc));
! 
!                   Next (Choice);
!                end loop;
!             end;
  
              Next (Assoc);
           end loop;
*************** package body Exp_Aggr is
*** 2085,2092 ****
                    end if;
  
                    if First or else not Empty_Range (Low, High) then
!                      First := False;
!                      Set_Loop_Actions (Others_Assoc, New_List);
                       Expr := Get_Assoc_Expr (Others_Assoc);
                       Append_List (Gen_Loop (Low, High, Expr), To => New_Code);
                    end if;
--- 2125,2135 ----
                    end if;
  
                    if First or else not Empty_Range (Low, High) then
!                      if First then
!                         pragma Assert (No (Loop_Actions (Others_Assoc)));
!                         Set_Loop_Actions (Others_Assoc, New_List);
!                         First := False;
!                      end if;
                       Expr := Get_Assoc_Expr (Others_Assoc);
                       Append_List (Gen_Loop (Low, High, Expr), To => New_Code);
                    end if;
*************** package body Exp_Aggr is
*** 2140,2181 ****
        return New_Code;
     end Build_Array_Aggr_Code;
  
-    -------------------------------------
-    -- Build_Assignment_With_Temporary --
-    -------------------------------------
- 
-    function Build_Assignment_With_Temporary
-      (Target : Node_Id;
-       Typ    : Entity_Id;
-       Source : Node_Id) return List_Id
-    is
-       Loc : constant Source_Ptr := Sloc (Source);
- 
-       Aggr_Code : List_Id;
-       Tmp       : Entity_Id;
- 
-    begin
-       Aggr_Code := New_List;
- 
-       Tmp := Build_Temporary_On_Secondary_Stack (Loc, Typ, Aggr_Code);
- 
-       Append_To (Aggr_Code,
-         Make_OK_Assignment_Statement (Loc,
-           Name       =>
-             Make_Explicit_Dereference (Loc,
-               Prefix => New_Occurrence_Of (Tmp, Loc)),
-           Expression => Source));
- 
-       Append_To (Aggr_Code,
-         Make_OK_Assignment_Statement (Loc,
-           Name       => Target,
-           Expression =>
-             Make_Explicit_Dereference (Loc,
-               Prefix => New_Occurrence_Of (Tmp, Loc))));
- 
-       return Aggr_Code;
-    end Build_Assignment_With_Temporary;
- 
     ----------------------------
     -- Build_Record_Aggr_Code --
     ----------------------------
--- 2183,2188 ----
*************** package body Exp_Aggr is
*** 2270,2275 ****
--- 2277,2292 ----
        --  If default expression of a component mentions a discriminant of the
        --  type, it must be rewritten as the discriminant of the target object.
  
+       generic
+          with function Process (N : Node_Id) return Traverse_Result is <>;
+       procedure Traverse_Proc_For_Aggregate (N : Node_Id);
+       pragma Inline (Traverse_Proc_For_Aggregate);
+       --  This extends Traverse_Proc from Atree by looking into the Actions
+       --  list of conditional expressions, which are semantic fields and not
+       --  syntactic ones like the Actions of an N_Expression_With_Actions.
+       --  This makes it possible to delay the expansion of these conditional
+       --  expressions when they appear within the aggregate.
+ 
        ---------------------------------
        -- Ancestor_Discriminant_Value --
        ---------------------------------
*************** package body Exp_Aggr is
*** 2477,2483 ****
                Make_Procedure_Call_Statement (Loc,
                  Name                   =>
                    New_Occurrence_Of
!                     (Find_Prim_Op (Init_Typ, Name_Initialize), Loc),
                  Parameter_Associations => New_List (New_Copy_Tree (Ref))));
           end if;
        end Generate_Finalization_Actions;
--- 2494,2500 ----
                Make_Procedure_Call_Statement (Loc,
                  Name                   =>
                    New_Occurrence_Of
!                     (Find_Controlled_Prim_Op (Init_Typ, Name_Initialize), Loc),
                  Parameter_Associations => New_List (New_Copy_Tree (Ref))));
           end if;
        end Generate_Finalization_Actions;
*************** package body Exp_Aggr is
*** 2827,2837 ****
           return OK;
        end Rewrite_Discriminant;
  
        procedure Replace_Discriminants is
!         new Traverse_Proc (Rewrite_Discriminant);
  
        procedure Replace_Self_Reference is
!         new Traverse_Proc (Replace_Type);
  
     --  Start of processing for Build_Record_Aggr_Code
  
--- 2844,2921 ----
           return OK;
        end Rewrite_Discriminant;
  
+       ---------------------------------
+       -- Traverse_Proc_For_Aggregate --
+       ---------------------------------
+ 
+       procedure Traverse_Proc_For_Aggregate (N : Node_Id) is
+ 
+          function Process_For_Aggregate (N : Node_Id) return Traverse_Result;
+          --  Call Process on N and on the nodes in the Actions list of N if
+          --  it is a conditional expression.
+ 
+          procedure Traverse_Node is new Traverse_Proc (Process_For_Aggregate);
+          --  Call Process_For_Aggregate on the subtree rooted at N
+ 
+          ---------------------------
+          -- Process_For_Aggregate --
+          ---------------------------
+ 
+          function Process_For_Aggregate (N : Node_Id) return Traverse_Result is
+ 
+             procedure Traverse_List (L : List_Id);
+             pragma Inline (Traverse_List);
+             --  Call Traverse_Node on the nodes of list L
+ 
+             --------------------
+             -- Traverse_List --
+             --------------------
+ 
+             procedure Traverse_List (L : List_Id) is
+                N : Node_Id := First (L);
+ 
+             begin
+                while Present (N) loop
+                   Traverse_Node (N);
+                   Next (N);
+                end loop;
+             end Traverse_List;
+ 
+             --  Local variables
+ 
+             Alt     : Node_Id;
+             Discard : Traverse_Final_Result;
+             pragma Unreferenced (Discard);
+ 
+          --  Start of processing for Process_For_Aggregate
+ 
+          begin
+             Discard := Process (N);
+ 
+             if Nkind (N) = N_Case_Expression then
+                Alt := First (Alternatives (N));
+                while Present (Alt) loop
+                   Traverse_List (Actions (Alt));
+                   Next (Alt);
+                end loop;
+ 
+             elsif Nkind (N) = N_If_Expression then
+                Traverse_List (Then_Actions (N));
+                Traverse_List (Else_Actions (N));
+             end if;
+ 
+             return OK;
+          end Process_For_Aggregate;
+ 
+       begin
+          Traverse_Node (N);
+       end Traverse_Proc_For_Aggregate;
+ 
        procedure Replace_Discriminants is
!         new Traverse_Proc_For_Aggregate (Rewrite_Discriminant);
  
        procedure Replace_Self_Reference is
!         new Traverse_Proc_For_Aggregate (Replace_Type);
  
     --  Start of processing for Build_Record_Aggr_Code
  
*************** package body Exp_Aggr is
*** 2936,2942 ****
  
                 if not Is_Interface (Init_Typ) then
                    Append_List_To (L,
!                     Build_Initialization_Call (Loc,
                        Id_Ref            => Ref,
                        Typ               => Init_Typ,
                        In_Init_Proc      => Within_Init_Proc,
--- 3020,3026 ----
  
                 if not Is_Interface (Init_Typ) then
                    Append_List_To (L,
!                     Build_Initialization_Call (N,
                        Id_Ref            => Ref,
                        Typ               => Init_Typ,
                        In_Init_Proc      => Within_Init_Proc,
*************** package body Exp_Aggr is
*** 2971,2977 ****
                 Set_Assignment_OK (Ref);
  
                 Append_List_To (L,
!                  Build_Initialization_Call (Loc,
                     Id_Ref            => Ref,
                     Typ               => Init_Typ,
                     In_Init_Proc      => Within_Init_Proc,
--- 3055,3061 ----
                 Set_Assignment_OK (Ref);
  
                 Append_List_To (L,
!                  Build_Initialization_Call (N,
                     Id_Ref            => Ref,
                     Typ               => Init_Typ,
                     In_Init_Proc      => Within_Init_Proc,
*************** package body Exp_Aggr is
*** 3148,3154 ****
  
           if Is_CPP_Constructor_Call (Expression (Comp)) then
              Append_List_To (L,
!               Build_Initialization_Call (Loc,
                  Id_Ref            =>
                    Make_Selected_Component (Loc,
                      Prefix        => New_Copy_Tree (Target),
--- 3232,3238 ----
  
           if Is_CPP_Constructor_Call (Expression (Comp)) then
              Append_List_To (L,
!               Build_Initialization_Call (N,
                  Id_Ref            =>
                    Make_Selected_Component (Loc,
                      Prefix        => New_Copy_Tree (Target),
*************** package body Exp_Aggr is
*** 3185,3190 ****
--- 3269,3276 ----
           elsif Box_Present (Comp)
             and then Has_Non_Null_Base_Init_Proc (Etype (Selector))
           then
+             Check_Restriction (No_Default_Initialization, N);
+ 
              if Ekind (Selector) /= E_Discriminant then
                 Generate_Finalization_Actions;
              end if;
*************** package body Exp_Aggr is
*** 3192,3198 ****
              --  Ada 2005 (AI-287): If the component type has tasks then
              --  generate the activation chain and master entities (except
              --  in case of an allocator because in that case these entities
!             --  are generated by Build_Task_Allocate_Block_With_Init_Stmts).
  
              declare
                 Ctype            : constant Entity_Id := Etype (Selector);
--- 3278,3284 ----
              --  Ada 2005 (AI-287): If the component type has tasks then
              --  generate the activation chain and master entities (except
              --  in case of an allocator because in that case these entities
!             --  are generated by Build_Task_Allocate_Block).
  
              declare
                 Ctype            : constant Entity_Id := Etype (Selector);
*************** package body Exp_Aggr is
*** 3216,3230 ****
                 end if;
              end;
  
!             Append_List_To (L,
!               Build_Initialization_Call (Loc,
!                 Id_Ref            => Make_Selected_Component (Loc,
!                                        Prefix        => New_Copy_Tree (Target),
!                                        Selector_Name =>
!                                          New_Occurrence_Of (Selector, Loc)),
!                 Typ               => Etype (Selector),
!                 Enclos_Type       => Typ,
!                 With_Default_Init => True));
  
           --  Prepare for component assignment
  
--- 3302,3319 ----
                 end if;
              end;
  
!             if not Restriction_Active (No_Default_Initialization) then
!                Append_List_To (L,
!                  Build_Initialization_Call (N,
!                    Id_Ref            => Make_Selected_Component (Loc,
!                                           Prefix        =>
!                                             New_Copy_Tree (Target),
!                                           Selector_Name =>
!                                             New_Occurrence_Of (Selector, Loc)),
!                    Typ               => Etype (Selector),
!                    Enclos_Type       => Typ,
!                    With_Default_Init => True));
!             end if;
  
           --  Prepare for component assignment
  
*************** package body Exp_Aggr is
*** 3382,3413 ****
                    end if;
                 end if;
  
!                if Modify_Tree_For_C
!                  and then Nkind (Expr_Q) = N_Aggregate
!                  and then Is_Array_Type (Etype (Expr_Q))
!                  and then Present (First_Index (Etype (Expr_Q)))
!                then
!                   declare
!                      Expr_Q_Type : constant Entity_Id := Etype (Expr_Q);
!                   begin
!                      Append_List_To (L,
!                        Build_Array_Aggr_Code
!                          (N           => Expr_Q,
!                           Ctype       => Component_Type (Expr_Q_Type),
!                           Index       => First_Index (Expr_Q_Type),
!                           Into        => Comp_Expr,
!                           Scalar_Comp =>
!                             Is_Scalar_Type (Component_Type (Expr_Q_Type))));
!                   end;
! 
!                else
!                   Initialize_Component
!                     (N         => N,
!                      Comp      => Comp_Expr,
!                      Comp_Typ  => Etype (Selector),
!                      Init_Expr => Expr_Q,
!                      Stmts     => L);
!                end if;
              end if;
  
           --  comment would be good here ???
--- 3471,3482 ----
                    end if;
                 end if;
  
!                Initialize_Component
!                  (N         => N,
!                   Comp      => Comp_Expr,
!                   Comp_Typ  => Etype (Selector),
!                   Init_Expr => Expr_Q,
!                   Stmts     => L);
              end if;
  
           --  comment would be good here ???
*************** package body Exp_Aggr is
*** 3541,3581 ****
     -- Convert_Aggr_In_Allocator --
     -------------------------------
  
!    procedure Convert_Aggr_In_Allocator
!      (Alloc :  Node_Id;
!       Decl  :  Node_Id;
!       Aggr  :  Node_Id)
!    is
        Loc  : constant Source_Ptr := Sloc (Aggr);
        Typ  : constant Entity_Id  := Etype (Aggr);
-       Temp : constant Entity_Id  := Defining_Identifier (Decl);
  
        Occ  : constant Node_Id :=
          Unchecked_Convert_To (Typ,
            Make_Explicit_Dereference (Loc, New_Occurrence_Of (Temp, Loc)));
  
     begin
!       if Is_Array_Type (Typ) then
!          Convert_Array_Aggr_In_Allocator (Decl, Aggr, Occ);
! 
!       elsif Has_Default_Init_Comps (Aggr) then
           declare
!             L          : constant List_Id := New_List;
!             Init_Stmts : List_Id;
  
           begin
-             Init_Stmts := Late_Expansion (Aggr, Typ, Occ);
- 
              if Has_Task (Typ) then
!                Build_Task_Allocate_Block_With_Init_Stmts (L, Aggr, Init_Stmts);
!                Insert_Actions (Alloc, L);
              else
!                Insert_Actions (Alloc, Init_Stmts);
              end if;
           end;
  
        else
!          Insert_Actions (Alloc, Late_Expansion (Aggr, Typ, Occ));
        end if;
     end Convert_Aggr_In_Allocator;
  
--- 3610,3646 ----
     -- Convert_Aggr_In_Allocator --
     -------------------------------
  
!    procedure Convert_Aggr_In_Allocator (N : Node_Id; Temp : Entity_Id) is
!       Aggr : constant Node_Id    := Unqualify (Expression (N));
        Loc  : constant Source_Ptr := Sloc (Aggr);
        Typ  : constant Entity_Id  := Etype (Aggr);
  
        Occ  : constant Node_Id :=
          Unchecked_Convert_To (Typ,
            Make_Explicit_Dereference (Loc, New_Occurrence_Of (Temp, Loc)));
  
     begin
!       if Has_Default_Init_Comps (Aggr) then
           declare
!             Init_Stmts : constant List_Id := Late_Expansion (Aggr, Typ, Occ);
  
           begin
              if Has_Task (Typ) then
!                declare
!                   Actions : constant List_Id := New_List;
! 
!                begin
!                   Build_Task_Allocate_Block (Actions, Aggr, Init_Stmts);
!                   Insert_Actions (N, Actions);
!                end;
! 
              else
!                Insert_Actions (N, Init_Stmts);
              end if;
           end;
  
        else
!          Insert_Actions (N, Late_Expansion (Aggr, Typ, Occ));
        end if;
     end Convert_Aggr_In_Allocator;
  
*************** package body Exp_Aggr is
*** 3597,3612 ****
     ---------------------------------
  
     procedure Convert_Aggr_In_Object_Decl (N : Node_Id) is
!       Obj  : constant Entity_Id  := Defining_Identifier (N);
!       Aggr : constant Node_Id    := Unqualify (Expression (N));
!       Loc  : constant Source_Ptr := Sloc (Aggr);
!       Typ  : constant Entity_Id  := Etype (Aggr);
!       Occ  : constant Node_Id    := New_Occurrence_Of (Obj, Loc);
! 
!       Has_Transient_Scope : Boolean := False;
  
        function Discriminants_Ok return Boolean;
!       --  If the object type is constrained, the discriminants in the
        --  aggregate must be checked against the discriminants of the subtype.
        --  This cannot be done using Apply_Discriminant_Checks because after
        --  expansion there is no aggregate left to check.
--- 3662,3675 ----
     ---------------------------------
  
     procedure Convert_Aggr_In_Object_Decl (N : Node_Id) is
!       Obj    : constant Entity_Id  := Defining_Identifier (N);
!       Aggr   : constant Node_Id    := Unqualify (Expression (N));
!       Loc    : constant Source_Ptr := Sloc (Aggr);
!       Typ    : constant Entity_Id  := Etype (Aggr);
!       Marker : constant Node_Id    := Next (N);
  
        function Discriminants_Ok return Boolean;
!       --  If the object's subtype is constrained, the discriminants in the
        --  aggregate must be checked against the discriminants of the subtype.
        --  This cannot be done using Apply_Discriminant_Checks because after
        --  expansion there is no aggregate left to check.
*************** package body Exp_Aggr is
*** 3673,3682 ****
           return True;
        end Discriminants_Ok;
  
     --  Start of processing for Convert_Aggr_In_Object_Decl
  
     begin
!       Set_Assignment_OK (Occ);
  
        if Has_Discriminants (Typ)
          and then Typ /= Etype (Obj)
--- 3736,3753 ----
           return True;
        end Discriminants_Ok;
  
+       --  Local variables
+ 
+       Occ   : Node_Id;
+       Param : Node_Id;
+       Stmt  : Node_Id;
+       Stmts : List_Id;
+ 
     --  Start of processing for Convert_Aggr_In_Object_Decl
  
     begin
!       --  First generate discriminant checks if need be, and bail out if one
!       --  of them fails statically.
  
        if Has_Discriminants (Typ)
          and then Typ /= Etype (Obj)
*************** package body Exp_Aggr is
*** 3700,3762 ****
          and then Ekind (Current_Scope) /= E_Return_Statement
          and then not Is_Limited_Type (Typ)
        then
!          Establish_Transient_Scope (Aggr, Manage_Sec_Stack => False);
!          Has_Transient_Scope := True;
        end if;
  
!       declare
!          Stmts : constant List_Id := Late_Expansion (Aggr, Typ, Occ);
!          Stmt  : Node_Id;
!          Param : Node_Id;
  
!       begin
!          --  If Obj is already frozen or if N is wrapped in a transient scope,
!          --  Stmts do not need to be saved in Initialization_Statements since
!          --  there is no freezing issue.
  
!          if Is_Frozen (Obj) or else Has_Transient_Scope then
!             Insert_Actions_After (N, Stmts);
!          else
!             Stmt := Make_Compound_Statement (Sloc (N), Actions => Stmts);
!             Insert_Action_After (N, Stmt);
  
!             --  Insert_Action_After may freeze Obj in which case we should
!             --  remove the compound statement just created and simply insert
!             --  Stmts after N.
  
!             if Is_Frozen (Obj) then
!                Remove (Stmt);
!                Insert_Actions_After (N, Stmts);
!             else
!                Set_Initialization_Statements (Obj, Stmt);
              end if;
-          end if;
  
!          --  If Typ has controlled components and a call to a Slice_Assign
!          --  procedure is part of the initialization statements, then we
!          --  need to initialize the array component since Slice_Assign will
!          --  need to adjust it.
  
!          if Has_Controlled_Component (Typ) then
!             Stmt := First (Stmts);
  
!             while Present (Stmt) loop
!                if Nkind (Stmt) = N_Procedure_Call_Statement
!                  and then Is_TSS (Entity (Name (Stmt)), TSS_Slice_Assign)
!                then
!                   Param := First (Parameter_Associations (Stmt));
!                   Insert_Actions
!                     (Stmt,
!                      Build_Initialization_Call
!                        (Sloc (N), New_Copy_Tree (Param), Etype (Param)));
!                end if;
  
!                Next (Stmt);
!             end loop;
!          end if;
!       end;
  
!       Set_No_Initialization (N);
  
        --  After expansion the expression can be removed from the declaration
        --  except if the object is class-wide, in which case the aggregate
--- 3771,3831 ----
          and then Ekind (Current_Scope) /= E_Return_Statement
          and then not Is_Limited_Type (Typ)
        then
!          Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
!       Occ := New_Occurrence_Of (Obj, Loc);
!       Set_Assignment_OK (Occ);
!       Stmts := Late_Expansion (Aggr, Typ, Occ);
  
!       Insert_Actions_After (N, Stmts);
  
!       --  If Typ has controlled components and a call to a Slice_Assign
!       --  procedure is part of the initialization statements, then we
!       --  need to initialize the array component since Slice_Assign will
!       --  need to adjust it.
  
!       if Has_Controlled_Component (Typ) then
!          Stmt := First (Stmts);
  
!          while Present (Stmt) loop
!             if Nkind (Stmt) = N_Procedure_Call_Statement
!               and then Is_TSS (Entity (Name (Stmt)), TSS_Slice_Assign)
!             then
!                Param := First (Parameter_Associations (Stmt));
!                Insert_Actions (Stmt,
!                  Build_Initialization_Call (N,
!                    New_Copy_Tree (Param), Etype (Param)));
              end if;
  
!             Next (Stmt);
!          end loop;
!       end if;
  
!       --  If Typ is a bit-packed array and the first statement generated for
!       --  the aggregate initialization is an assignment of the form:
  
!       --    Obj (j) := (Obj (j) [and Mask]) or Val
  
!       --  then we initialize Obj (j) right before the assignment, in order to
!       --  avoid a spurious warning about Obj being used uninitialized.
  
!       if Is_Bit_Packed_Array (Typ) then
!          Stmt := Next (N);
! 
!          if Stmt /= Marker
!            and then Nkind (Stmt) = N_Assignment_Statement
!            and then Nkind (Expression (Stmt)) in N_Op_And | N_Op_Or
!            and then Nkind (Name (Stmt)) = N_Indexed_Component
!            and then Is_Entity_Name (Prefix (Name (Stmt)))
!            and then Entity (Prefix (Name (Stmt))) = Obj
!          then
!             Insert_Action (Stmt,
!               Make_Assignment_Statement (Loc,
!                 Name       => New_Copy_Tree (Name (Stmt)),
!                 Expression => Make_Integer_Literal (Loc, Uint_0)));
!          end if;
!       end if;
  
        --  After expansion the expression can be removed from the declaration
        --  except if the object is class-wide, in which case the aggregate
*************** package body Exp_Aggr is
*** 3766,3836 ****
           Set_Expression (N, Empty);
        end if;
  
!       Initialize_Discriminants (N, Typ);
!    end Convert_Aggr_In_Object_Decl;
! 
!    -------------------------------------
!    -- Convert_Array_Aggr_In_Allocator --
!    -------------------------------------
! 
!    procedure Convert_Array_Aggr_In_Allocator
!      (Decl   : Node_Id;
!       Aggr   : Node_Id;
!       Target : Node_Id)
!    is
!       Typ       : constant Entity_Id := Etype (Aggr);
!       Ctyp      : constant Entity_Id := Component_Type (Typ);
!       Aggr_Code : List_Id;
!       New_Aggr  : Node_Id;
  
!    begin
!       --  The target is an explicit dereference of the allocated object
  
!       --  If the assignment can be done directly by the back end, then
!       --  reset Set_Expansion_Delayed and do not expand further.
  
!       if not CodePeer_Mode
!         and then not Modify_Tree_For_C
!         and then Aggr_Assignment_OK_For_Backend (Aggr)
        then
!          New_Aggr := New_Copy_Tree (Aggr);
!          Set_Expansion_Delayed (New_Aggr, False);
! 
!          --  In the case of Target's type using the Designated_Storage_Model
!          --  aspect with a Copy_To procedure, insert a temporary and have the
!          --  back end handle the assignment to it. Copy the result to the
!          --  original target.
! 
!          if Has_Designated_Storage_Model_Aspect
!               (Etype (Prefix (Expression (Target))))
!            and then Present (Storage_Model_Copy_To
!                                (Storage_Model_Object
!                                   (Etype (Prefix (Expression (Target))))))
!          then
!             Aggr_Code :=
!               Build_Assignment_With_Temporary (Target, Typ, New_Aggr);
! 
!          else
!             Aggr_Code :=
!               New_List (
!                 Make_OK_Assignment_Statement (Sloc (New_Aggr),
!                   Name       => Target,
!                   Expression => New_Aggr));
!          end if;
! 
!       --  Or else, generate component assignments to it, as for an aggregate
!       --  that appears on the right-hand side of an assignment statement.
!       else
!          Aggr_Code :=
!            Build_Array_Aggr_Code (Aggr,
!              Ctype       => Ctyp,
!              Index       => First_Index (Typ),
!              Into        => Target,
!              Scalar_Comp => Is_Scalar_Type (Ctyp));
        end if;
! 
!       Insert_Actions_After (Decl, Aggr_Code);
!    end Convert_Array_Aggr_In_Allocator;
  
     ------------------------
     -- In_Place_Assign_OK --
--- 3835,3853 ----
           Set_Expression (N, Empty);
        end if;
  
!       Set_No_Initialization (N);
  
!       Initialize_Discriminants (N, Typ);
  
!       --  Park the generated statements if the declaration requires it and is
!       --  not the node that is wrapped in a transient scope.
  
!       if Needs_Initialization_Statements (N)
!         and then not (Scope_Is_Transient and then N = Node_To_Be_Wrapped)
        then
!          Move_To_Initialization_Statements (N, Marker);
        end if;
!    end Convert_Aggr_In_Object_Decl;
  
     ------------------------
     -- In_Place_Assign_OK --
*************** package body Exp_Aggr is
*** 3842,3854 ****
     is
        Is_Array : constant Boolean := Is_Array_Type (Etype (N));
  
-       Aggr_In     : Node_Id;
-       Aggr_Bounds : Range_Nodes;
-       Obj_In      : Node_Id;
-       Obj_Bounds  : Range_Nodes;
-       Parent_Kind : Node_Kind;
-       Parent_Node : Node_Id;
- 
        function Safe_Aggregate (Aggr : Node_Id) return Boolean;
        --  Check recursively that each component of a (sub)aggregate does not
        --  depend on the variable being assigned to.
--- 3859,3864 ----
*************** package body Exp_Aggr is
*** 4102,4107 ****
--- 4112,4121 ----
           end if;
        end Safe_Component;
  
+       --  Local variables
+ 
+       Parent_Node : Node_Id;
+ 
     --  Start of processing for In_Place_Assign_OK
  
     begin
*************** package body Exp_Aggr is
*** 4112,4208 ****
        end if;
  
        Parent_Node := Parent (N);
-       Parent_Kind := Nkind (Parent_Node);
  
!       if Parent_Kind = N_Qualified_Expression then
           Parent_Node := Parent (Parent_Node);
-          Parent_Kind := Nkind (Parent_Node);
        end if;
  
        --  On assignment, sliding can take place, so we cannot do the
        --  assignment in place unless the bounds of the aggregate are
        --  statically equal to those of the target.
  
-       --  If the aggregate is given by an others choice, the bounds are
-       --  derived from the left-hand side, and the assignment is safe if
-       --  the expression is.
- 
        if Is_Array
!         and then Present (Component_Associations (N))
!         and then not Is_Others_Aggregate (N)
        then
!          Aggr_In := First_Index (Etype (N));
! 
!          --  Context is an assignment
! 
!          if Parent_Kind = N_Assignment_Statement then
!             Obj_In := First_Index (Etype (Name (Parent_Node)));
! 
!          --  Context is an allocator. Check the bounds of the aggregate against
!          --  those of the designated type, except in the case where the type is
!          --  unconstrained (and then we can directly return true, see below).
! 
!          else pragma Assert (Parent_Kind = N_Allocator);
!             declare
!                Desig_Typ : constant Entity_Id :=
!                                          Designated_Type (Etype (Parent_Node));
!             begin
!                if not Is_Constrained (Desig_Typ) then
!                   return True;
!                end if;
! 
!                Obj_In := First_Index (Desig_Typ);
!             end;
!          end if;
! 
!          while Present (Aggr_In) loop
!             Aggr_Bounds := Get_Index_Bounds (Aggr_In);
!             Obj_Bounds := Get_Index_Bounds (Obj_In);
! 
!             --  We require static bounds for the target and a static matching
!             --  of low bound for the aggregate.
! 
!             if not Compile_Time_Known_Value (Obj_Bounds.First)
!               or else not Compile_Time_Known_Value (Obj_Bounds.Last)
!               or else not Compile_Time_Known_Value (Aggr_Bounds.First)
!               or else Expr_Value (Aggr_Bounds.First) /=
!                       Expr_Value (Obj_Bounds.First)
!             then
!                return False;
! 
!             --  For an assignment statement we require static matching of
!             --  bounds. Ditto for an allocator whose qualified expression
!             --  is a constrained type. If the expression in the allocator
!             --  is an unconstrained array, we accept an upper bound that
!             --  is not static, to allow for nonstatic expressions of the
!             --  base type. Clearly there are further possibilities (with
!             --  diminishing returns) for safely building arrays in place
!             --  here.
! 
!             elsif Parent_Kind = N_Assignment_Statement
!               or else Is_Constrained (Etype (Parent_Node))
!             then
!                if not Compile_Time_Known_Value (Aggr_Bounds.Last)
!                  or else Expr_Value (Aggr_Bounds.Last) /=
!                          Expr_Value (Obj_Bounds.Last)
!                then
!                   return False;
!                end if;
!             end if;
! 
!             Next_Index (Aggr_In);
!             Next_Index (Obj_In);
!          end loop;
        end if;
  
!       --  Now check the component values themselves, except for an allocator
!       --  for which the target is newly allocated memory.
  
!       if Parent_Kind = N_Allocator then
!          return True;
!       else
!          return Safe_Aggregate (N);
!       end if;
     end In_Place_Assign_OK;
  
     ----------------------------
--- 4126,4149 ----
        end if;
  
        Parent_Node := Parent (N);
  
!       if Nkind (Parent_Node) = N_Qualified_Expression then
           Parent_Node := Parent (Parent_Node);
        end if;
  
        --  On assignment, sliding can take place, so we cannot do the
        --  assignment in place unless the bounds of the aggregate are
        --  statically equal to those of the target.
  
        if Is_Array
!         and then Must_Slide (N, Etype (Name (Parent_Node)), Etype (N))
        then
!          return False;
        end if;
  
!       --  Now check the component values themselves
  
!       return Safe_Aggregate (N);
     end In_Place_Assign_OK;
  
     ----------------------------
*************** package body Exp_Aggr is
*** 4210,4296 ****
     ----------------------------
  
     procedure Convert_To_Assignments (N : Node_Id; Typ : Entity_Id) is
!       Loc  : constant Source_Ptr := Sloc (N);
!       T    : Entity_Id;
!       Temp : Entity_Id;
  
!       Aggr_Code   : List_Id;
!       Instr       : Node_Id;
!       Target_Expr : Node_Id;
!       Parent_Kind : Node_Kind;
!       Unc_Decl    : Boolean := False;
!       Parent_Node : Node_Id;
  
     begin
        pragma Assert (Nkind (N) in N_Aggregate | N_Extension_Aggregate);
        pragma Assert (not Is_Static_Dispatch_Table_Aggregate (N));
        pragma Assert (Is_Record_Type (Typ));
  
!       Parent_Node := Parent (N);
!       Parent_Kind := Nkind (Parent_Node);
! 
!       if Parent_Kind = N_Qualified_Expression then
!          --  Check if we are in an unconstrained declaration because in this
!          --  case the current delayed expansion mechanism doesn't work when
!          --  the declared object size depends on the initializing expr.
! 
!          Parent_Node := Parent (Parent_Node);
!          Parent_Kind := Nkind (Parent_Node);
! 
!          if Parent_Kind = N_Object_Declaration then
!             Unc_Decl :=
!               not Is_Entity_Name (Object_Definition (Parent_Node))
!                 or else (Nkind (N) = N_Aggregate
!                           and then
!                             Has_Discriminants
!                               (Entity (Object_Definition (Parent_Node))))
!                 or else Is_Class_Wide_Type
!                           (Entity (Object_Definition (Parent_Node)));
!          end if;
!       end if;
  
!       --  Just set the Delay flag in the cases where the transformation will be
!       --  done top down from above.
  
        if
           --  Internal aggregates (transformed when expanding the parent),
           --  excluding container aggregates as these are transformed into
           --  subprogram calls later.
  
!          (Parent_Kind = N_Component_Association
             and then not Is_Container_Aggregate (Parent (Parent_Node)))
  
!          or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
                     and then not Is_Container_Aggregate (Parent_Node))
  
           --  Allocator (see Convert_Aggr_In_Allocator)
  
!          or else Parent_Kind = N_Allocator
  
!          --  Object declaration (see Convert_Aggr_In_Object_Decl)
  
!          or else (Parent_Kind = N_Object_Declaration and then not Unc_Decl)
  
!          --  Safe assignment (see Convert_Aggr_Assignments). So far only the
           --  assignments in init procs are taken into account.
  
!          or else (Parent_Kind = N_Assignment_Statement
                     and then Inside_Init_Proc)
  
!          --  (Ada 2005) An inherently limited type in a return statement, which
!          --  will be handled in a build-in-place fashion, and may be rewritten
!          --  as an extended return and have its own finalization machinery.
!          --  In the case of a simple return, the aggregate needs to be delayed
!          --  until the scope for the return statement has been created, so
!          --  that any finalization chain will be associated with that scope.
!          --  For extended returns, we delay expansion to avoid the creation
!          --  of an unwanted transient scope that could result in premature
!          --  finalization of the return object (which is built in place
!          --  within the caller's scope).
  
!          or else Is_Build_In_Place_Aggregate_Return (N)
        then
           Set_Expansion_Delayed (N);
           return;
        end if;
  
--- 4151,4222 ----
     ----------------------------
  
     procedure Convert_To_Assignments (N : Node_Id; Typ : Entity_Id) is
!       Loc : constant Source_Ptr := Sloc (N);
  
!       --  Local variables
! 
!       Aggr_Code    : List_Id;
!       Full_Typ     : Entity_Id;
!       Instr        : Node_Id;
!       Parent_Node  : Node_Id;
!       Target_Expr  : Node_Id;
!       Temp         : Entity_Id;
! 
!    --  Start of processing for Convert_To_Assignments
  
     begin
        pragma Assert (Nkind (N) in N_Aggregate | N_Extension_Aggregate);
        pragma Assert (not Is_Static_Dispatch_Table_Aggregate (N));
        pragma Assert (Is_Record_Type (Typ));
  
!       --  Set the Expansion_Delayed flag in the cases where the transformation
!       --  will be done top down from above.
  
!       Parent_Node := Unconditional_Parent (N);
  
        if
           --  Internal aggregates (transformed when expanding the parent),
           --  excluding container aggregates as these are transformed into
           --  subprogram calls later.
  
!          (Nkind (Parent_Node) = N_Component_Association
             and then not Is_Container_Aggregate (Parent (Parent_Node)))
  
!          or else (Nkind (Parent_Node) in N_Aggregate | N_Extension_Aggregate
                     and then not Is_Container_Aggregate (Parent_Node))
  
           --  Allocator (see Convert_Aggr_In_Allocator)
  
!          or else Nkind (Parent_Node) = N_Allocator
  
!          --  Object declaration (see Convert_Aggr_In_Object_Decl). Class-wide
!          --  declarations are excluded so far.
  
!          or else (Nkind (Parent_Node) = N_Object_Declaration
!                    and then not
!                      (Is_Entity_Name (Object_Definition (Parent_Node))
!                        and then
!                          Is_Class_Wide_Type
!                            (Entity (Object_Definition (Parent_Node)))))
  
!          --  Safe assignment (see Convert_Aggr_In_Assignment). So far only the
           --  assignments in init procs are taken into account.
  
!          or else (Nkind (Parent_Node) = N_Assignment_Statement
                     and then Inside_Init_Proc)
  
!          --  Simple return statement, which will be handled in a build-in-place
!          --  fashion and will ultimately be rewritten as an extended return.
  
!          or else Is_Build_In_Place_Aggregate_Return (Parent_Node)
        then
+          --  Mark the aggregate, as well as all the intermediate conditional
+          --  expressions, as having expansion delayed. This will block the
+          --  usual (bottom-up) expansion of the marked nodes and replace it
+          --  with a top-down expansion from the parent node.
+ 
           Set_Expansion_Delayed (N);
+          Delay_Conditional_Expressions_Between (N, Parent_Node);
           return;
        end if;
  
*************** package body Exp_Aggr is
*** 4300,4313 ****
           Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
!       --  If the aggregate is nonlimited, create a temporary, since aggregates
!       --  have "by copy" semantics. If it is limited and context is an
!       --  assignment, this is a subaggregate for an enclosing aggregate being
!       --  expanded. It must be built in place, so use target of the current
!       --  assignment.
  
!       if Is_Limited_Type (Typ)
!         and then Parent_Kind = N_Assignment_Statement
        then
           Target_Expr := New_Copy_Tree (Name (Parent_Node));
           Insert_Actions (Parent_Node,
--- 4226,4245 ----
           Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
!       --  Now get back to the immediate parent, modulo qualified expression
  
!       Parent_Node := Parent (N);
! 
!       if Nkind (Parent_Node) = N_Qualified_Expression then
!          Parent_Node := Parent (Parent_Node);
!       end if;
! 
!       --  If the context is an assignment and the aggregate is limited, this
!       --  is a subaggregate of an enclosing aggregate being expanded; it must
!       --  be built in place, so use the target of the current assignment.
! 
!       if Nkind (Parent_Node) = N_Assignment_Statement
!         and then Is_Limited_Type (Typ)
        then
           Target_Expr := New_Copy_Tree (Name (Parent_Node));
           Insert_Actions (Parent_Node,
*************** package body Exp_Aggr is
*** 4316,4325 ****
  
        --  Do not declare a temporary to initialize an aggregate assigned to
        --  a target when in-place assignment is possible, i.e. preserving the
!       --  by-copy semantic of aggregates. This avoids large stack usage and
        --  generates more efficient code.
  
!       elsif Parent_Kind = N_Assignment_Statement
          and then In_Place_Assign_OK (N, Get_Base_Object (Name (Parent_Node)))
        then
           declare
--- 4248,4257 ----
  
        --  Do not declare a temporary to initialize an aggregate assigned to
        --  a target when in-place assignment is possible, i.e. preserving the
!       --  by-copy semantics of aggregates. This avoids large stack usage and
        --  generates more efficient code.
  
!       elsif Nkind (Parent_Node) = N_Assignment_Statement
          and then In_Place_Assign_OK (N, Get_Base_Object (Name (Parent_Node)))
        then
           declare
*************** package body Exp_Aggr is
*** 4341,4346 ****
--- 4273,4280 ----
              end if;
           end;
  
+       --  Otherwise, create a temporary since aggregates have by-copy semantics
+ 
        else
           Temp := Make_Temporary (Loc, 'A', N);
  
*************** package body Exp_Aggr is
*** 4350,4384 ****
           if Has_Unknown_Discriminants (Typ)
             and then Present (Underlying_Record_View (Typ))
           then
!             T := Underlying_Record_View (Typ);
           else
!             T := Typ;
           end if;
  
           Instr :=
             Make_Object_Declaration (Loc,
               Defining_Identifier => Temp,
!              Object_Definition   => New_Occurrence_Of (T, Loc));
  
           Set_No_Initialization (Instr);
           Insert_Action (N, Instr);
!          Initialize_Discriminants (Instr, T);
  
           Target_Expr := New_Occurrence_Of (Temp, Loc);
!          Aggr_Code   := Build_Record_Aggr_Code (N, T, Target_Expr);
  
           --  Save the last assignment statement associated with the aggregate
           --  when building a controlled object. This reference is utilized by
           --  the finalization machinery when marking an object as successfully
           --  initialized.
  
!          if Needs_Finalization (T) then
              Set_Last_Aggregate_Assignment (Temp, Last (Aggr_Code));
           end if;
  
           Insert_Actions (N, Aggr_Code);
           Rewrite (N, New_Occurrence_Of (Temp, Loc));
!          Analyze_And_Resolve (N, T);
        end if;
     end Convert_To_Assignments;
  
--- 4284,4318 ----
           if Has_Unknown_Discriminants (Typ)
             and then Present (Underlying_Record_View (Typ))
           then
!             Full_Typ := Underlying_Record_View (Typ);
           else
!             Full_Typ := Typ;
           end if;
  
           Instr :=
             Make_Object_Declaration (Loc,
               Defining_Identifier => Temp,
!              Object_Definition   => New_Occurrence_Of (Full_Typ, Loc));
  
           Set_No_Initialization (Instr);
           Insert_Action (N, Instr);
!          Initialize_Discriminants (Instr, Full_Typ);
  
           Target_Expr := New_Occurrence_Of (Temp, Loc);
!          Aggr_Code   := Build_Record_Aggr_Code (N, Full_Typ, Target_Expr);
  
           --  Save the last assignment statement associated with the aggregate
           --  when building a controlled object. This reference is utilized by
           --  the finalization machinery when marking an object as successfully
           --  initialized.
  
!          if Needs_Finalization (Full_Typ) then
              Set_Last_Aggregate_Assignment (Temp, Last (Aggr_Code));
           end if;
  
           Insert_Actions (N, Aggr_Code);
           Rewrite (N, New_Occurrence_Of (Temp, Loc));
!          Analyze_And_Resolve (N, Full_Typ);
        end if;
     end Convert_To_Assignments;
  
*************** package body Exp_Aggr is
*** 4394,4400 ****
        Dims                 : constant Nat := Number_Dimensions (Typ);
        Max_Others_Replicate : constant Nat := Max_Aggregate_Size (N);
  
!       Static_Components : Boolean := True;
  
        procedure Check_Static_Components;
        --  Check whether all components of the aggregate are compile-time known
--- 4328,4334 ----
        Dims                 : constant Nat := Number_Dimensions (Typ);
        Max_Others_Replicate : constant Nat := Max_Aggregate_Size (N);
  
!       Static_Components : Boolean   := True;
  
        procedure Check_Static_Components;
        --  Check whether all components of the aggregate are compile-time known
*************** package body Exp_Aggr is
*** 4413,4419 ****
        --  Return True if the aggregate N is flat (which is not trivial in the
        --  case of multidimensional aggregates).
  
!       function Is_Static_Element (N : Node_Id; Dims : Nat) return Boolean;
        --  Return True if N, an element of a component association list, i.e.
        --  N_Component_Association or N_Iterated_Component_Association, has a
        --  compile-time known value and can be passed as is to the back-end
--- 4347,4353 ----
        --  Return True if the aggregate N is flat (which is not trivial in the
        --  case of multidimensional aggregates).
  
!       function Is_Static_Element (N : Node_Id) return Boolean;
        --  Return True if N, an element of a component association list, i.e.
        --  N_Component_Association or N_Iterated_Component_Association, has a
        --  compile-time known value and can be passed as is to the back-end
*************** package body Exp_Aggr is
*** 4457,4463 ****
           then
              Assoc := First (Component_Associations (N));
              while Present (Assoc) loop
!                if not Is_Static_Element (Assoc, Dims) then
                    Static_Components := False;
                    exit;
                 end if;
--- 4391,4397 ----
           then
              Assoc := First (Component_Associations (N));
              while Present (Assoc) loop
!                if not Is_Static_Element (Assoc) then
                    Static_Components := False;
                    exit;
                 end if;
*************** package body Exp_Aggr is
*** 4568,4576 ****
           --  present we can proceed since the bounds can be obtained from the
           --  aggregate.
  
!          if Hiv < Lov
!            or else (not Compile_Time_Known_Value (Blo) and then Others_Present)
!          then
              return False;
           end if;
  
--- 4502,4514 ----
           --  present we can proceed since the bounds can be obtained from the
           --  aggregate.
  
!          if not Compile_Time_Known_Value (Blo) and then Others_Present then
!             return False;
!          end if;
! 
!          --  Guard against raising C_E in UI_To_Int
! 
!          if not UI_Are_In_Int_Range (Lov, Hiv) then
              return False;
           end if;
  
*************** package body Exp_Aggr is
*** 4624,4629 ****
--- 4562,4575 ----
              Component_Loop : while Present (Elmt) loop
                 Expr := Expression (Elmt);
  
+                --  If the expression involves a construct that generates a
+                --  loop, we must generate individual assignments and no
+                --  flattening is possible.
+ 
+                if Nkind (Expr) = N_Quantified_Expression then
+                   return False;
+                end if;
+ 
                 --  In the case of a multidimensional array, check that the
                 --  aggregate can be recursively flattened.
  
*************** package body Exp_Aggr is
*** 4640,4653 ****
                    if Nkind (Choice) = N_Others_Choice then
                       Rep_Count := 0;
  
-                      --  If the expression involves a construct that generates
-                      --  a loop, we must generate individual assignments and
-                      --  no flattening is possible.
- 
-                      if Nkind (Expr) = N_Quantified_Expression then
-                         return False;
-                      end if;
- 
                       for J in Vals'Range loop
                          if No (Vals (J)) then
                             Vals (J)  := New_Copy_Tree (Expr);
--- 4586,4591 ----
*************** package body Exp_Aggr is
*** 4678,4684 ****
                                --  only if either the element is static or is
                                --  an aggregate (we already know it is OK).
  
!                               elsif not Is_Static_Element (Elmt, Dims)
                                  and then Nkind (Expr) /= N_Aggregate
                                then
                                   return False;
--- 4616,4622 ----
                                --  only if either the element is static or is
                                --  an aggregate (we already know it is OK).
  
!                               elsif not Is_Static_Element (Elmt)
                                  and then Nkind (Expr) /= N_Aggregate
                                then
                                   return False;
*************** package body Exp_Aggr is
*** 4712,4717 ****
--- 4650,4658 ----
  
                       if Rep_Count = 0
                         and then Warn_On_Redundant_Constructs
+                        -- We don't emit warnings on null arrays initialized
+                        -- with an aggregate of the form "(others => ...)".
+                        and then Vals'Length > 0
                       then
                          Error_Msg_N ("there are no others?r?", Elmt);
                       end if;
*************** package body Exp_Aggr is
*** 4828,4838 ****
           end if;
        end Is_Flat;
  
!       -------------------------
!       --  Is_Static_Element  --
!       -------------------------
  
!       function Is_Static_Element (N : Node_Id; Dims : Nat) return Boolean is
           Expr : constant Node_Id := Expression (N);
  
        begin
--- 4769,4779 ----
           end if;
        end Is_Flat;
  
!       -----------------------
!       -- Is_Static_Element --
!       -----------------------
  
!       function Is_Static_Element (N : Node_Id) return Boolean is
           Expr : constant Node_Id := Expression (N);
  
        begin
*************** package body Exp_Aggr is
*** 4850,4863 ****
           then
              return True;
  
-          --  However, one may write static expressions that are syntactically
-          --  ambiguous, so preanalyze the expression before checking it again,
-          --  but only at the innermost level for a multidimensional array.
- 
-          elsif Dims = 1 then
-             Preanalyze_And_Resolve (Expr, Component_Type (Typ));
-             return Compile_Time_Known_Value (Expr);
- 
           else
              return False;
           end if;
--- 4791,4796 ----
*************** package body Exp_Aggr is
*** 4866,4879 ****
     --  Start of processing for Convert_To_Positional
  
     begin
-       --  Only convert to positional when generating C in case of an
-       --  object declaration, this is the only case where aggregates are
-       --  supported in C.
- 
-       if Modify_Tree_For_C and then not Is_CCG_Supported_Aggregate (N) then
-          return;
-       end if;
- 
        --  Ada 2005 (AI-287): Do not convert in case of default initialized
        --  components because in this case will need to call the corresponding
        --  IP procedure.
--- 4799,4804 ----
*************** package body Exp_Aggr is
*** 4981,5005 ****
     --  2. Check for packed array aggregate which can be converted to a
     --     constant so that the aggregate disappears completely.
  
!    --  3. Check case of nested aggregate. Generally nested aggregates are
!    --     handled during the processing of the parent aggregate.
! 
!    --  4. Check if the aggregate can be statically processed. If this is the
     --     case pass it as is to Gigi. Note that a necessary condition for
     --     static processing is that the aggregate be fully positional.
  
!    --  5. If in-place aggregate expansion is possible (i.e. no need to create
!    --     a temporary) then mark the aggregate as such and return. Otherwise
!    --     create a new temporary and generate the appropriate initialization
!    --     code.
  
     procedure Expand_Array_Aggregate (N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (N);
  
!       Typ  : constant Entity_Id := Etype (N);
!       Ctyp : constant Entity_Id := Component_Type (Typ);
        --  Typ is the correct constrained array subtype of the aggregate
!       --  Ctyp is the corresponding component type.
  
        Aggr_Dimension : constant Pos := Number_Dimensions (Typ);
        --  Number of aggregate index dimensions
--- 4906,4935 ----
     --  2. Check for packed array aggregate which can be converted to a
     --     constant so that the aggregate disappears completely.
  
!    --  3. Check if the aggregate can be statically processed. If this is the
     --     case pass it as is to Gigi. Note that a necessary condition for
     --     static processing is that the aggregate be fully positional.
  
!    --  4. Check if delayed expansion is needed, for example in the cases of
!    --     nested aggregates or aggregates in allocators or declarations.
! 
!    --  5. If in-place aggregate expansion is not possible, create a temporary
!    --     and generate the appropriate initialization code.
! 
!    --  6. Build and insert the aggregate code
  
     procedure Expand_Array_Aggregate (N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (N);
  
!       Typ : constant Entity_Id := Etype (N);
        --  Typ is the correct constrained array subtype of the aggregate
! 
!       Component_Typ : constant Entity_Id := Component_Type (Typ);
!       --  Component_Typ is the corresponding component type
! 
!       Ctyp : constant Entity_Id :=
!         Get_Corresponding_Mutably_Tagged_Type_If_Present (Component_Typ);
!       --  Ctyp is the corresponding component type to be used
  
        Aggr_Dimension : constant Pos := Number_Dimensions (Typ);
        --  Number of aggregate index dimensions
*************** package body Exp_Aggr is
*** 5011,5019 ****
        Aggr_Index_Typ : array (1 .. Aggr_Dimension) of Entity_Id;
        --  The type of each index
  
-       In_Place_Assign_OK_For_Declaration : Boolean := False;
-       --  True if we are to generate an in-place assignment for a declaration
- 
        Maybe_In_Place_OK : Boolean;
        --  If the type is neither controlled nor packed and the aggregate
        --  is the expression in an assignment, assignment in place may be
--- 4941,4946 ----
*************** package body Exp_Aggr is
*** 5053,5060 ****
  
        function Safe_Left_Hand_Side (N : Node_Id) return Boolean;
        --  In addition to Maybe_In_Place_OK, in order for an aggregate to be
!       --  built directly into the target of the assignment it must be free
!       --  of side effects. N is the LHS of an assignment.
  
        procedure Two_Pass_Aggregate_Expansion (N : Node_Id);
        --  If the aggregate consists only of iterated associations then the
--- 4980,4987 ----
  
        function Safe_Left_Hand_Side (N : Node_Id) return Boolean;
        --  In addition to Maybe_In_Place_OK, in order for an aggregate to be
!       --  built directly into the target of an assignment, the target must
!       --  be free of side effects. N is the target of the assignment.
  
        procedure Two_Pass_Aggregate_Expansion (N : Node_Id);
        --  If the aggregate consists only of iterated associations then the
*************** package body Exp_Aggr is
*** 5212,5219 ****
  
                  Right_Opnd => Cond);
  
-             Set_Analyzed (Left_Opnd  (Left_Opnd (Cond)), False);
-             Set_Analyzed (Right_Opnd (Left_Opnd (Cond)), False);
              Insert_Action (N,
                Make_Raise_Constraint_Error (Loc,
                  Condition => Cond,
--- 5139,5144 ----
*************** package body Exp_Aggr is
*** 5337,5357 ****
                and then Nkind (First (Choice_List (Assoc))) = N_Others_Choice
              then
                 Others_Present (Dim) := True;
- 
-                --  An others_clause may be superfluous if previous components
-                --  cover the full given range of a constrained array. In such
-                --  a case an others_clause does not contribute any additional
-                --  components and has not been analyzed. We analyze it now to
-                --  detect type errors in the expression, even though no code
-                --  will be generated for it.
- 
-                if Dim = Aggr_Dimension
-                  and then Nkind (Assoc) /= N_Iterated_Component_Association
-                  and then not Analyzed (Expression (Assoc))
-                  and then not Box_Present (Assoc)
-                then
-                   Preanalyze_And_Resolve (Expression (Assoc), Ctyp);
-                end if;
              end if;
           end if;
  
--- 5262,5267 ----
*************** package body Exp_Aggr is
*** 5374,5381 ****
              if Present (Component_Associations (Sub_Aggr)) then
                 Assoc := First (Component_Associations (Sub_Aggr));
                 while Present (Assoc) loop
!                   Expr := Expression (Assoc);
!                   Compute_Others_Present (Expr, Dim + 1);
                    Next (Assoc);
                 end loop;
              end if;
--- 5284,5290 ----
              if Present (Component_Associations (Sub_Aggr)) then
                 Assoc := First (Component_Associations (Sub_Aggr));
                 while Present (Assoc) loop
!                   Compute_Others_Present (Expression (Assoc), Dim + 1);
                    Next (Assoc);
                 end loop;
              end if;
*************** package body Exp_Aggr is
*** 5438,5454 ****
                 --  Count the number of discrete choices. Start with -1 because
                 --  the others choice does not count.
  
-                --  Is there some reason we do not use List_Length here ???
- 
                 Nb_Choices := -1;
                 Assoc := First (Component_Associations (Sub_Aggr));
                 while Present (Assoc) loop
!                   Choice := First (Choice_List (Assoc));
!                   while Present (Choice) loop
!                      Nb_Choices := Nb_Choices + 1;
!                      Next (Choice);
!                   end loop;
! 
                    Next (Assoc);
                 end loop;
  
--- 5347,5356 ----
                 --  Count the number of discrete choices. Start with -1 because
                 --  the others choice does not count.
  
                 Nb_Choices := -1;
                 Assoc := First (Component_Associations (Sub_Aggr));
                 while Present (Assoc) loop
!                   Nb_Choices := Nb_Choices + List_Length (Choice_List (Assoc));
                    Next (Assoc);
                 end loop;
  
*************** package body Exp_Aggr is
*** 5465,5476 ****
           --  choice then compute the number or positional elements.
  
           if Need_To_Check and then Present (Expressions (Sub_Aggr)) then
!             Expr := First (Expressions (Sub_Aggr));
!             Nb_Elements := Uint_0;
!             while Present (Expr) loop
!                Nb_Elements := Nb_Elements + 1;
!                Next (Expr);
!             end loop;
  
           --  If the aggregate contains discrete choices and an others choice
           --  compute the smallest and largest discrete choice values.
--- 5367,5373 ----
           --  choice then compute the number or positional elements.
  
           if Need_To_Check and then Present (Expressions (Sub_Aggr)) then
!             Nb_Elements := UI_From_Int (List_Length (Expressions (Sub_Aggr)));
  
           --  If the aggregate contains discrete choices and an others choice
           --  compute the smallest and largest discrete choice values.
*************** package body Exp_Aggr is
*** 5481,5487 ****
                 Table : Case_Table_Type (1 .. Nb_Choices);
                 --  Used to sort all the different choice values
  
!                J    : Pos := 1;
  
              begin
                 Assoc := First (Component_Associations (Sub_Aggr));
--- 5378,5384 ----
                 Table : Case_Table_Type (1 .. Nb_Choices);
                 --  Used to sort all the different choice values
  
!                J : Pos := 1;
  
              begin
                 Assoc := First (Component_Associations (Sub_Aggr));
*************** package body Exp_Aggr is
*** 5704,5710 ****
--- 5601,5611 ----
           Comp_Type  : constant Entity_Id := Etype (N);
           Index_Id   : constant Entity_Id := Make_Temporary (Loc, 'I', N);
           Index_Type : constant Entity_Id := Etype (First_Index (Etype (N)));
+          Index_Base : constant Entity_Id := Base_Type (Index_Type);
           Size_Id    : constant Entity_Id := Make_Temporary (Loc, 'I', N);
+          Size_Type  : constant Entity_Id :=
+                         Integer_Type_For
+                           (Esize (Index_Base), Is_Unsigned_Type (Index_Base));
           TmpE       : constant Entity_Id := Make_Temporary (Loc, 'A', N);
  
           Assoc    : Node_Id := First (Component_Associations (N));
*************** package body Exp_Aggr is
*** 5712,5717 ****
--- 5613,5619 ----
           Iter     : Node_Id;
           New_Comp : Node_Id;
           One_Loop : Node_Id;
+          Iter_Id  : Entity_Id;
  
           Size_Expr_Code : List_Id;
           Insertion_Code : List_Id := New_List;
*************** package body Exp_Aggr is
*** 5720,5726 ****
           Size_Expr_Code := New_List (
             Make_Object_Declaration (Loc,
               Defining_Identifier => Size_Id,
!              Object_Definition   => New_Occurrence_Of (Standard_Integer, Loc),
               Expression          => Make_Integer_Literal (Loc, 0)));
  
           --  First pass: execute the iterators to count the number of elements
--- 5622,5628 ----
           Size_Expr_Code := New_List (
             Make_Object_Declaration (Loc,
               Defining_Identifier => Size_Id,
!              Object_Definition   => New_Occurrence_Of (Size_Type, Loc),
               Expression          => Make_Integer_Literal (Loc, 0)));
  
           --  First pass: execute the iterators to count the number of elements
*************** package body Exp_Aggr is
*** 5728,5733 ****
--- 5630,5636 ----
  
           while Present (Assoc) loop
              Iter := Iterator_Specification (Assoc);
+             Iter_Id := Defining_Identifier (Iter);
              Incr := Make_Assignment_Statement (Loc,
                        Name => New_Occurrence_Of (Size_Id, Loc),
                        Expression =>
*************** package body Exp_Aggr is
*** 5735,5744 ****
                           Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
                           Right_Opnd => Make_Integer_Literal (Loc, 1)));
  
              One_Loop := Make_Implicit_Loop_Statement (N,
                Iteration_Scheme =>
                  Make_Iteration_Scheme (Loc,
!                   Iterator_Specification => New_Copy_Tree (Iter)),
                  Statements => New_List (Incr));
  
              Append (One_Loop, Size_Expr_Code);
--- 5638,5653 ----
                           Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
                           Right_Opnd => Make_Integer_Literal (Loc, 1)));
  
+             --  Avoid using the same iterator definition in both loops by
+             --  creating a new iterator for each loop and mapping it over the
+             --  original iterator references.
+ 
              One_Loop := Make_Implicit_Loop_Statement (N,
                Iteration_Scheme =>
                  Make_Iteration_Scheme (Loc,
!                   Iterator_Specification =>
!                      New_Copy_Tree (Iter,
!                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
                  Statements => New_List (Incr));
  
              Append (One_Loop, Size_Expr_Code);
*************** package body Exp_Aggr is
*** 5747,5778 ****
  
           Insert_Actions (N, Size_Expr_Code);
  
!          --  Build a constrained subtype with the calculated length
!          --  and declare the proper bounded aggregate object.
           --  The index type is some discrete type, so the bounds of the
!          --  constructed array are computed as T'Val (T'Pos (ineger bound));
  
           declare
              Pos_Lo : constant Node_Id :=
                Make_Attribute_Reference (Loc,
!                 Prefix => New_Occurrence_Of (Index_Type, Loc),
                  Attribute_Name => Name_Pos,
!                 Expressions => New_List (
                    Make_Attribute_Reference (Loc,
                      Prefix => New_Occurrence_Of (Index_Type, Loc),
                      Attribute_Name => Name_First)));
  
              Aggr_Lo : constant Node_Id :=
                 Make_Attribute_Reference (Loc,
!                  Prefix => New_Occurrence_Of (Index_Type, Loc),
!                  Attribute_Name => Name_Val,
!                  Expressions => New_List (New_Copy_Tree (Pos_Lo)));
  
!             --  Hi = Index_type'Pos (Lo + Size -1).
  
              Pos_Hi : constant Node_Id :=
                 Make_Op_Add (Loc,
!                  Left_Opnd => New_Copy_Tree (Pos_Lo),
                   Right_Opnd =>
                     Make_Op_Subtract (Loc,
                       Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
--- 5656,5690 ----
  
           Insert_Actions (N, Size_Expr_Code);
  
!          --  Build a constrained subtype with the bounds deduced from
!          --  the size computed above and declare the aggregate object.
           --  The index type is some discrete type, so the bounds of the
!          --  constrained subtype are computed as T'Val (integer bounds).
  
           declare
+             --  Pos_Lo := Index_Type'Pos (Index_Type'First)
+ 
              Pos_Lo : constant Node_Id :=
                Make_Attribute_Reference (Loc,
!                 Prefix         => New_Occurrence_Of (Index_Type, Loc),
                  Attribute_Name => Name_Pos,
!                 Expressions    => New_List (
                    Make_Attribute_Reference (Loc,
                      Prefix => New_Occurrence_Of (Index_Type, Loc),
                      Attribute_Name => Name_First)));
  
+             --  Corresponding index value, i.e. Index_Type'First
+ 
              Aggr_Lo : constant Node_Id :=
                 Make_Attribute_Reference (Loc,
!                  Prefix         => New_Occurrence_Of (Index_Type, Loc),
!                  Attribute_Name => Name_First);
  
!             --  Pos_Hi := Pos_Lo + Size - 1
  
              Pos_Hi : constant Node_Id :=
                 Make_Op_Add (Loc,
!                  Left_Opnd  => Pos_Lo,
                   Right_Opnd =>
                     Make_Op_Subtract (Loc,
                       Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
*************** package body Exp_Aggr is
*** 5784,5790 ****
                 Make_Attribute_Reference (Loc,
                   Prefix => New_Occurrence_Of (Index_Type, Loc),
                   Attribute_Name => Name_Val,
!                  Expressions => New_List (New_Copy_Tree (Pos_Hi)));
  
              SubE : constant Entity_Id := Make_Temporary (Loc, 'T');
              SubD : constant Node_Id :=
--- 5696,5702 ----
                 Make_Attribute_Reference (Loc,
                   Prefix => New_Occurrence_Of (Index_Type, Loc),
                   Attribute_Name => Name_Val,
!                  Expressions    => New_List (Pos_Hi));
  
              SubE : constant Entity_Id := Make_Temporary (Loc, 'T');
              SubD : constant Node_Id :=
*************** package body Exp_Aggr is
*** 5800,5812 ****
                           Constraints =>
                             New_List (Make_Range (Loc, Aggr_Lo, Aggr_Hi)))));
  
!                --  Create a temporary array of the above subtype which
!                --  will be used to capture the aggregate assignments.
  
-                TmpD : constant Node_Id :=
-                  Make_Object_Declaration (Loc,
-                    Defining_Identifier => TmpE,
-                    Object_Definition   => New_Occurrence_Of (SubE, Loc));
           begin
              Insert_Actions (N, New_List (SubD, TmpD));
           end;
--- 5712,5725 ----
                           Constraints =>
                             New_List (Make_Range (Loc, Aggr_Lo, Aggr_Hi)))));
  
!             --  Create a temporary array of the above subtype which
!             --  will be used to capture the aggregate assignments.
! 
!             TmpD : constant Node_Id :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => TmpE,
!                 Object_Definition   => New_Occurrence_Of (SubE, Loc));
  
           begin
              Insert_Actions (N, New_List (SubD, TmpD));
           end;
*************** package body Exp_Aggr is
*** 5835,5840 ****
--- 5748,5754 ----
  
           while Present (Assoc) loop
              Iter := Iterator_Specification (Assoc);
+             Iter_Id := Defining_Identifier (Iter);
              New_Comp := Make_Assignment_Statement (Loc,
                 Name =>
                   Make_Indexed_Component (Loc,
*************** package body Exp_Aggr is
*** 5867,5876 ****
                        Attribute_Name => Name_Last)),
                 Then_Statements => New_List (Incr));
  
              One_Loop := Make_Implicit_Loop_Statement (N,
                Iteration_Scheme =>
                  Make_Iteration_Scheme (Loc,
!                   Iterator_Specification => Copy_Separate_Tree (Iter)),
                  Statements => New_List (New_Comp, Incr));
  
              Append (One_Loop, Insertion_Code);
--- 5781,5796 ----
                        Attribute_Name => Name_Last)),
                 Then_Statements => New_List (Incr));
  
+             --  Avoid using the same iterator definition in both loops by
+             --  creating a new iterator for each loop and mapping it over the
+             --  original iterator references.
+ 
              One_Loop := Make_Implicit_Loop_Statement (N,
                Iteration_Scheme =>
                  Make_Iteration_Scheme (Loc,
!                   Iterator_Specification =>
!                      New_Copy_Tree (Iter,
!                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
                  Statements => New_List (New_Comp, Incr));
  
              Append (One_Loop, Insertion_Code);
*************** package body Exp_Aggr is
*** 5894,5902 ****
        Tmp_Decl : Node_Id;
        --  Holds the declaration of Tmp
  
-       Aggr_Code   : List_Id;
        Parent_Node : Node_Id;
-       Parent_Kind : Node_Kind;
  
     --  Start of processing for Expand_Array_Aggregate
  
--- 5814,5820 ----
*************** package body Exp_Aggr is
*** 5908,5919 ****
        then
           return;
  
!       elsif Present (Component_Associations (N))
!         and then Nkind (First (Component_Associations (N))) =
!                  N_Iterated_Component_Association
!         and then
!           Present (Iterator_Specification (First (Component_Associations (N))))
!       then
           Two_Pass_Aggregate_Expansion (N);
           return;
  
--- 5826,5834 ----
        then
           return;
  
!       --  Aggregates that require a two-pass expansion are handled separately
! 
!       elsif Is_Two_Pass_Aggregate (N) then
           Two_Pass_Aggregate_Expansion (N);
           return;
  
*************** package body Exp_Aggr is
*** 6075,6080 ****
--- 5990,5997 ----
           return;
        end if;
  
+       --  STEP 3
+ 
        --  Now see if back end processing is possible
  
        if Backend_Processing_Possible (N) then
*************** package body Exp_Aggr is
*** 6110,6261 ****
           return;
        end if;
  
!       --  STEP 3
  
!       --  Delay expansion for nested aggregates: it will be taken care of when
!       --  the parent aggregate is expanded, excluding container aggregates as
!       --  these are transformed into subprogram calls later.
  
!       Parent_Node := Parent (N);
!       Parent_Kind := Nkind (Parent_Node);
  
!       if Parent_Kind = N_Qualified_Expression then
!          Parent_Node := Parent (Parent_Node);
!          Parent_Kind := Nkind (Parent_Node);
!       end if;
  
!       if (Parent_Kind = N_Component_Association
             and then not Is_Container_Aggregate (Parent (Parent_Node)))
-         or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
-                   and then not Is_Container_Aggregate (Parent_Node))
-         or else (Parent_Kind = N_Object_Declaration
-                   and then (Needs_Finalization (Typ)
-                              or else Is_Special_Return_Object
-                                        (Defining_Identifier (Parent_Node))))
-         or else (Parent_Kind = N_Assignment_Statement
-                   and then Inside_Init_Proc)
-       then
-          Set_Expansion_Delayed (N, not Static_Array_Aggregate (N));
-          return;
-       end if;
- 
-       --  STEP 4
  
!       --  Check whether in-place aggregate expansion is possible
  
!       --  For object declarations we build the aggregate in place, unless
!       --  the array is bit-packed.
  
!       --  For assignments we do the assignment in place if all the component
!       --  associations have compile-time known values, or are default-
!       --  initialized limited components, e.g. tasks. For other cases we
!       --  create a temporary. A full analysis for safety of in-place assignment
!       --  is delicate.
  
!       --  For allocators we assign to the designated object in place if the
!       --  aggregate meets the same conditions as other in-place assignments.
!       --  In this case the aggregate may not come from source but was created
!       --  for default initialization, e.g. with Initialize_Scalars.
  
!       if Requires_Transient_Scope (Typ) then
!          Establish_Transient_Scope (N, Manage_Sec_Stack => False);
!       end if;
  
!       --  An array of limited components is built in place
  
!       if Is_Limited_Type (Typ) then
!          Maybe_In_Place_OK := True;
  
!       elsif Has_Default_Init_Comps (N) then
!          Maybe_In_Place_OK := False;
  
!       elsif Is_Bit_Packed_Array (Typ)
!         or else Has_Controlled_Component (Typ)
        then
!          Maybe_In_Place_OK := False;
! 
!       elsif Parent_Kind = N_Assignment_Statement then
!          Maybe_In_Place_OK :=
!            In_Place_Assign_OK (N, Get_Base_Object (Name (Parent_Node)));
  
!       elsif Parent_Kind = N_Allocator then
!          Maybe_In_Place_OK := In_Place_Assign_OK (N);
  
!       else
!          Maybe_In_Place_OK := False;
        end if;
  
!       --  If this is an array of tasks, it will be expanded into build-in-place
!       --  assignments. Build an activation chain for the tasks now.
  
!       if Has_Task (Typ) then
!          Build_Activation_Chain_Entity (N);
        end if;
  
!       --  Perform in-place expansion of aggregate in an object declaration.
!       --  Note: actions generated for the aggregate will be captured in an
!       --  expression-with-actions statement so that they can be transferred
!       --  to freeze actions later if there is an address clause for the
!       --  object. (Note: we don't use a block statement because this would
!       --  cause generated freeze nodes to be elaborated in the wrong scope).
! 
!       --  Arrays of limited components must be built in place. The code
!       --  previously excluded controlled components but this is an old
!       --  oversight: the rules in 7.6 (17) are clear.
! 
!       if Comes_From_Source (Parent_Node)
!         and then Parent_Kind = N_Object_Declaration
!         and then Present (Expression (Parent_Node))
!         and then not
!           Must_Slide (N, Etype (Defining_Identifier (Parent_Node)), Typ)
!         and then not Is_Bit_Packed_Array (Typ)
!       then
!          In_Place_Assign_OK_For_Declaration := True;
!          Tmp := Defining_Identifier (Parent_Node);
!          Set_No_Initialization (Parent_Node);
!          Set_Expression (Parent_Node, Empty);
  
!          --  Set kind and type of the entity, for use in the analysis
!          --  of the subsequent assignments. If the nominal type is not
!          --  constrained, build a subtype from the known bounds of the
!          --  aggregate. If the declaration has a subtype mark, use it,
!          --  otherwise use the itype of the aggregate.
  
!          Mutate_Ekind (Tmp, E_Variable);
  
!          if not Is_Constrained (Typ) then
!             Build_Constrained_Type (Positional => False);
  
!          elsif Is_Entity_Name (Object_Definition (Parent_Node))
!            and then Is_Constrained (Entity (Object_Definition (Parent_Node)))
!          then
!             Set_Etype (Tmp, Entity (Object_Definition (Parent_Node)));
  
!          else
!             Set_Size_Known_At_Compile_Time (Typ, False);
!             Set_Etype (Tmp, Typ);
!          end if;
  
!       elsif Maybe_In_Place_OK and then Parent_Kind = N_Allocator then
!          Set_Expansion_Delayed (N);
!          return;
  
!       --  Limited arrays in return statements are expanded when
!       --  enclosing construct is expanded.
  
!       elsif Maybe_In_Place_OK
!         and then Parent_Kind = N_Simple_Return_Statement
!       then
!          Set_Expansion_Delayed (N);
!          return;
  
!       --  In the remaining cases the aggregate appears in the RHS of an
!       --  assignment, which may be part of the expansion of an object
!       --  declaration. If the aggregate is an actual in a call, itself
!       --  possibly in a RHS, building it in the target is not possible.
  
!       elsif Maybe_In_Place_OK
!         and then Nkind (Parent_Node) not in N_Subprogram_Call
          and then Safe_Left_Hand_Side (Name (Parent_Node))
        then
           Tmp := Name (Parent_Node);
--- 6027,6148 ----
           return;
        end if;
  
!       --  STEP 4
  
!       --  Set the Expansion_Delayed flag in the cases where the transformation
!       --  will be done top down from above.
  
!       Parent_Node := Unconditional_Parent (N);
  
!       if
!          --  Internal aggregates (transformed when expanding the parent),
!          --  excluding container aggregates as these are transformed into
!          --  subprogram calls later. So far aggregates with self-references
!          --  are not supported if they appear in a conditional expression.
  
!          (Nkind (Parent_Node) = N_Component_Association
             and then not Is_Container_Aggregate (Parent (Parent_Node)))
  
!          or else (Nkind (Parent_Node) in N_Aggregate | N_Extension_Aggregate
!                    and then not Is_Container_Aggregate (Parent_Node))
  
!          --  Allocator (see Convert_Aggr_In_Allocator). Sliding cannot be done
!          --  in place for the time being.
  
!          or else (Nkind (Parent_Node) = N_Allocator
!                    and then
!                      (Aggr_Assignment_OK_For_Backend (N)
!                        or else Is_Limited_Type (Typ)
!                        or else Needs_Finalization (Typ)
!                        or else not Must_Slide
!                                      (N,
!                                       Designated_Type (Etype (Parent_Node)),
!                                       Typ)))
  
!          --  Object declaration (see Convert_Aggr_In_Object_Decl). Sliding
!          --  cannot be done in place for the time being.
  
!          or else (Nkind (Parent_Node) = N_Object_Declaration
!                    and then
!                      (Aggr_Assignment_OK_For_Backend (N)
!                        or else Is_Limited_Type (Typ)
!                        or else Needs_Finalization (Typ)
!                        or else Is_Special_Return_Object
!                                  (Defining_Identifier (Parent_Node))
!                        or else not Must_Slide
!                                      (N,
!                                       Etype
!                                         (Defining_Identifier (Parent_Node)),
!                                       Typ)))
  
!          --  Safe assignment (see Convert_Aggr_In_Assignment). So far only the
!          --  assignments in init procs are taken into account, as well those
!          --  directly performed by the back end.
  
!          or else (Nkind (Parent_Node) = N_Assignment_Statement
!                    and then
!                      (Inside_Init_Proc
!                        or else
!                       Aggr_Assignment_OK_For_Backend (N, Name (Parent_Node))))
  
!          --  Simple return statement, which will be handled in a build-in-place
!          --  fashion and will ultimately be rewritten as an extended return.
  
!          or else Is_Build_In_Place_Aggregate_Return (Parent_Node)
        then
!          if not Static_Array_Aggregate (N) then
!             --  Mark the aggregate, as well as all the intermediate conditional
!             --  expressions, as having expansion delayed. This will block the
!             --  usual (bottom-up) expansion of the marked nodes and replace it
!             --  with a top-down expansion from the parent node.
  
!             Set_Expansion_Delayed (N);
!             Delay_Conditional_Expressions_Between (N, Parent_Node);
!          end if;
  
!          return;
        end if;
  
!       --  Otherwise, if a transient scope is required, create it now
  
!       if Requires_Transient_Scope (Typ) then
!          Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
!       --  Now get back to the immediate parent, modulo qualified expression
  
!       Parent_Node := Parent (N);
  
!       if Nkind (Parent_Node) = N_Qualified_Expression then
!          Parent_Node := Parent (Parent_Node);
!       end if;
  
!       --  STEP 5
  
!       --  Check whether in-place aggregate expansion is possible
  
!       --  We do assignments in place if all the component associations have
!       --  known safe values, or have default-initialized limited values, e.g.
!       --  protected objects or tasks. For other cases we create a temporary.
  
!       Maybe_In_Place_OK :=
!         Nkind (Parent_Node) = N_Assignment_Statement
!           and then (Is_Limited_Type (Typ)
!                      or else (not Has_Default_Init_Comps (N)
!                                and then
!                                  In_Place_Assign_OK
!                                    (N, Get_Base_Object (Name (Parent_Node)))));
  
!       --  If this is an array of tasks, it will be expanded into build-in-place
!       --  assignments. Build an activation chain for the tasks now.
  
!       if Has_Task (Typ) then
!          Build_Activation_Chain_Entity (N);
!       end if;
  
!       --  Check that the target of the assignment is also safe
  
!       if Maybe_In_Place_OK
          and then Safe_Left_Hand_Side (Name (Parent_Node))
        then
           Tmp := Name (Parent_Node);
*************** package body Exp_Aggr is
*** 6286,6293 ****
  
           Set_Etype (N, Etype (Tmp));
  
-       --  Step 5
- 
        --  In-place aggregate expansion is not possible
  
        else
--- 6173,6178 ----
*************** package body Exp_Aggr is
*** 6306,6319 ****
           --  around the aggregate for this purpose.
  
           if Ekind (Current_Scope) = E_Loop
!            and then Parent_Kind = N_Allocator
           then
              Establish_Transient_Scope (N, Manage_Sec_Stack => False);
  
           --  If the parent is an assignment for which no controlled actions
           --  should take place, prevent the temporary from being finalized.
  
!          elsif Parent_Kind = N_Assignment_Statement
             and then No_Ctrl_Actions (Parent_Node)
           then
              Mutate_Ekind (Tmp, E_Variable);
--- 6191,6204 ----
           --  around the aggregate for this purpose.
  
           if Ekind (Current_Scope) = E_Loop
!            and then Nkind (Parent_Node) = N_Allocator
           then
              Establish_Transient_Scope (N, Manage_Sec_Stack => False);
  
           --  If the parent is an assignment for which no controlled actions
           --  should take place, prevent the temporary from being finalized.
  
!          elsif Nkind (Parent_Node) = N_Assignment_Statement
             and then No_Ctrl_Actions (Parent_Node)
           then
              Mutate_Ekind (Tmp, E_Variable);
*************** package body Exp_Aggr is
*** 6323,6334 ****
           Insert_Action (N, Tmp_Decl);
        end if;
  
!       --  Construct and insert the aggregate code. We can safely suppress index
!       --  checks because this code is guaranteed not to raise CE on index
!       --  checks. However we should *not* suppress all checks.
  
        declare
!          Target : Node_Id;
  
        begin
           if Nkind (Tmp) = N_Defining_Identifier then
--- 6208,6220 ----
           Insert_Action (N, Tmp_Decl);
        end if;
  
!       --  STEP 6
! 
!       --  Build and insert the aggregate code
  
        declare
!          Aggr_Code : List_Id;
!          Target    : Node_Id;
  
        begin
           if Nkind (Tmp) = N_Defining_Identifier then
*************** package body Exp_Aggr is
*** 6345,6403 ****
  
              --  Name in assignment is explicit dereference
  
!             Target := New_Copy (Tmp);
           end if;
  
!          --  If we are to generate an in-place assignment for a declaration or
!          --  an assignment statement, and the assignment can be done directly
!          --  by the back end, then do not expand further.
! 
!          --  ??? We can also do that if in-place expansion is not possible but
!          --  then we could go into an infinite recursion.
! 
!          if (In_Place_Assign_OK_For_Declaration or else Maybe_In_Place_OK)
!            and then not CodePeer_Mode
!            and then not Modify_Tree_For_C
!            and then not Possible_Bit_Aligned_Component (Target)
!            and then not Is_Possibly_Unaligned_Slice (Target)
!            and then Aggr_Assignment_OK_For_Backend (N)
!          then
! 
!             --  In the case of an assignment using an access with the
!             --  Designated_Storage_Model aspect with a Copy_To procedure,
!             --  insert a temporary and have the back end handle the assignment
!             --  to it. Copy the result to the original target.
! 
!             if Parent_Kind = N_Assignment_Statement
!               and then Nkind (Name (Parent_Node)) = N_Explicit_Dereference
!               and then Has_Designated_Storage_Model_Aspect
!                          (Etype (Prefix (Name (Parent_Node))))
!               and then Present (Storage_Model_Copy_To
!                                   (Storage_Model_Object
!                                      (Etype (Prefix (Name (Parent_Node))))))
!             then
!                Aggr_Code := Build_Assignment_With_Temporary
!                               (Target, Typ, New_Copy_Tree (N));
! 
!             else
!                if Maybe_In_Place_OK then
!                   return;
!                end if;
! 
!                Aggr_Code := New_List (
!                  Make_Assignment_Statement (Loc,
!                    Name       => Target,
!                    Expression => New_Copy_Tree (N)));
!             end if;
! 
!          else
!             Aggr_Code :=
!               Build_Array_Aggr_Code (N,
!                 Ctype       => Ctyp,
!                 Index       => First_Index (Typ),
!                 Into        => Target,
!                 Scalar_Comp => Is_Scalar_Type (Ctyp));
!          end if;
  
           --  Save the last assignment statement associated with the aggregate
           --  when building a controlled object. This reference is utilized by
--- 6231,6245 ----
  
              --  Name in assignment is explicit dereference
  
!             Target := New_Copy_Tree (Tmp);
           end if;
  
!          Aggr_Code :=
!            Build_Array_Aggr_Code (N,
!              Ctype       => Ctyp,
!              Index       => First_Index (Typ),
!              Into        => Target,
!              Scalar_Comp => Is_Scalar_Type (Ctyp));
  
           --  Save the last assignment statement associated with the aggregate
           --  when building a controlled object. This reference is utilized by
*************** package body Exp_Aggr is
*** 6411,6457 ****
           then
              Set_Last_Aggregate_Assignment (Entity (Target), Last (Aggr_Code));
           end if;
-       end;
- 
-       --  If the aggregate is the expression in a declaration, the expanded
-       --  code must be inserted after it. The defining entity might not come
-       --  from source if this is part of an inlined body, but the declaration
-       --  itself will.
-       --  The test below looks very specialized and kludgy???
  
-       if Comes_From_Source (Tmp)
-         or else
-           (Nkind (Parent (N)) = N_Object_Declaration
-             and then Comes_From_Source (Parent (N))
-             and then Tmp = Defining_Entity (Parent (N)))
-       then
-          if Parent_Kind /= N_Object_Declaration or else Is_Frozen (Tmp) then
-             Insert_Actions_After (Parent_Node, Aggr_Code);
-          else
-             declare
-                Comp_Stmt : constant Node_Id :=
-                  Make_Compound_Statement
-                    (Sloc (Parent_Node), Actions => Aggr_Code);
-             begin
-                Insert_Action_After (Parent_Node, Comp_Stmt);
-                Set_Initialization_Statements (Tmp, Comp_Stmt);
-             end;
-          end if;
-       else
           Insert_Actions (N, Aggr_Code);
!       end if;
  
        --  If the aggregate has been assigned in place, remove the original
!       --  assignment.
  
!       if Parent_Kind = N_Assignment_Statement and then Maybe_In_Place_OK then
           Rewrite (Parent_Node, Make_Null_Statement (Loc));
  
!       --  Or else, if a temporary was created, replace the aggregate with it
! 
!       elsif Parent_Kind /= N_Object_Declaration
!         or else Tmp /= Defining_Identifier (Parent_Node)
!       then
           Rewrite (N, New_Occurrence_Of (Tmp, Loc));
           Analyze_And_Resolve (N, Typ);
        end if;
--- 6253,6269 ----
           then
              Set_Last_Aggregate_Assignment (Entity (Target), Last (Aggr_Code));
           end if;
  
           Insert_Actions (N, Aggr_Code);
!       end;
  
        --  If the aggregate has been assigned in place, remove the original
!       --  assignment. Otherwise replace the aggregate with the temporary.
  
!       if Maybe_In_Place_OK then
           Rewrite (Parent_Node, Make_Null_Statement (Loc));
  
!       else
           Rewrite (N, New_Occurrence_Of (Tmp, Loc));
           Analyze_And_Resolve (N, Typ);
        end if;
*************** package body Exp_Aggr is
*** 6463,6468 ****
--- 6275,6281 ----
  
     procedure Expand_N_Aggregate (N : Node_Id) is
        T : constant Entity_Id := Etype (N);
+ 
     begin
        --  Record aggregate case
  
*************** package body Exp_Aggr is
*** 6472,6477 ****
--- 6285,6292 ----
        then
           Expand_Record_Aggregate (N);
  
+       --  Container aggregate case
+ 
        elsif Has_Aspect (T, Aspect_Aggregate) then
           Expand_Container_Aggregate (N);
  
*************** package body Exp_Aggr is
*** 6576,6621 ****
           return;
     end Expand_N_Aggregate;
  
!    --------------------------------
!    -- Expand_Container_Aggregate --
!    --------------------------------
  
!    procedure Expand_Container_Aggregate (N : Node_Id) is
!       Loc : constant Source_Ptr := Sloc (N);
!       Typ : constant Entity_Id := Etype (N);
!       Asp : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
        Add_Unnamed_Subp    : Node_Id := Empty;
        New_Indexed_Subp    : Node_Id := Empty;
        Assign_Indexed_Subp : Node_Id := Empty;
  
!       Aggr_Code : constant List_Id   := New_List;
!       Temp      : constant Entity_Id := Make_Temporary (Loc, 'C', N);
! 
!       Comp      : Node_Id;
!       Decl      : Node_Id;
!       Default   : Node_Id;
!       Init_Stat : Node_Id;
!       Siz       : Int;
! 
!       --  The following are used when the size of the aggregate is not
!       --  static and requires a dynamic evaluation.
!       Siz_Decl   : Node_Id;
!       Siz_Exp    : Node_Id := Empty;
!       Count_Type : Entity_Id;
! 
!       Is_Indexed_Aggregate : Boolean := False;
  
!       function Aggregate_Size return Int;
        --  Compute number of entries in aggregate, including choices
        --  that cover a range or subtype, as well as iterated constructs.
!       --  Return -1 if the size is not known statically, in which case
!       --  allocate a default size for the aggregate, or build an expression
!       --  to estimate the size dynamically.
  
!       function Build_Siz_Exp (Comp : Node_Id) return Int;
        --  When the aggregate contains a single Iterated_Component_Association
        --  or Element_Association with non-static bounds, build an expression
        --  to be used as the allocated size of the container. This may be an
--- 6391,6436 ----
           return;
     end Expand_N_Aggregate;
  
!    -------------------------------
!    -- Build_Container_Aggr_Code --
!    -------------------------------
  
!    function Build_Container_Aggr_Code
!      (N    : Node_Id;
!       Typ  : Entity_Id;
!       Lhs  : Node_Id;
!       Init : out Node_Id) return List_Id
!    is
!       Loc       : constant Source_Ptr := Sloc (N);
!       Aggr_Code : constant List_Id    := New_List;
!       Asp       : constant Node_Id    :=
!                     Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
        Add_Unnamed_Subp    : Node_Id := Empty;
        New_Indexed_Subp    : Node_Id := Empty;
        Assign_Indexed_Subp : Node_Id := Empty;
+       --  Identifiers for the subprograms referenced in the aggregate
  
!       Choice_Lo : Node_Id := Empty;
!       Choice_Hi : Node_Id := Empty;
!       --  These variables are used to determine the smallest and largest
!       --  choice values. Choice_Lo and Choice_Hi are passed to the New_Indexed
!       --  function, for allocating an indexed aggregate object.
  
!       function Aggregate_Size return Node_Id;
        --  Compute number of entries in aggregate, including choices
        --  that cover a range or subtype, as well as iterated constructs.
!       --  The size of the aggregate can either be a statically known in which
!       --  case it is returned as an integer literal, or it can be a dynamic
!       --  expression in which case an empty node is returned.
!       --
!       --  It is not possible to determine the size for all case. When that
!       --  happens this function returns an empty node. In that case we will
!       --  later just allocate a default size for the aggregate.
  
!       function Build_Size_Expr (Comp : Node_Id) return Node_Id;
        --  When the aggregate contains a single Iterated_Component_Association
        --  or Element_Association with non-static bounds, build an expression
        --  to be used as the allocated size of the container. This may be an
*************** package body Exp_Aggr is
*** 6630,6737 ****
        --  given either by a loop parameter specification or an iterator
        --  specification.
  
        --------------------
        -- Aggregate_Size --
        --------------------
  
!       function Aggregate_Size return Int is
!          Comp   : Node_Id;
!          Choice : Node_Id;
!          Lo, Hi : Node_Id;
!          Siz    : Int;
! 
!          procedure Add_Range_Size;
!          --  Compute number of components specified by a component association
!          --  given by a range or subtype name.
! 
!          --------------------
!          -- Add_Range_Size --
!          --------------------
! 
!          procedure Add_Range_Size is
!          begin
!             --  The bounds of the discrete range are integers or enumeration
!             --  literals
! 
!             if Nkind (Lo) = N_Integer_Literal then
!                Siz := Siz + UI_To_Int (Intval (Hi))
!                           - UI_To_Int (Intval (Lo)) + 1;
!             else
!                Siz := Siz + UI_To_Int (Enumeration_Pos (Hi))
!                           - UI_To_Int (Enumeration_Pos (Lo)) + 1;
!             end if;
!          end Add_Range_Size;
  
        begin
           --  Aggregate is either all positional or all named
  
!          Siz := List_Length (Expressions (N));
  
           if Present (Component_Associations (N)) then
              Comp := First (Component_Associations (N));
-             --  If there is a single component association it can be
-             --  an iterated component with dynamic bounds or an element
-             --  iterator over an iterable object. If it is an array
-             --  we can use the attribute Length to get its size;
-             --  for a predefined container the function Length plays
-             --  the same role. There is no available mechanism for
-             --  user-defined containers. For now we treat all of these
-             --  as dynamic.
- 
-             if List_Length (Component_Associations (N)) = 1
-               and then Nkind (Comp) in N_Iterated_Component_Association |
-                                        N_Iterated_Element_Association
-             then
-                return Build_Siz_Exp (Comp);
-             end if;
- 
-             --  Otherwise all associations must specify static sizes.
  
              while Present (Comp) loop
!                Choice := First (Choice_List (Comp));
  
!                while Present (Choice) loop
!                   Analyze (Choice);
  
!                   if Nkind (Choice) = N_Range then
!                      Lo := Low_Bound (Choice);
!                      Hi := High_Bound (Choice);
!                      Add_Range_Size;
  
!                   elsif Is_Entity_Name (Choice)
!                     and then Is_Type (Entity (Choice))
                    then
!                      Lo := Type_Low_Bound (Entity (Choice));
!                      Hi := Type_High_Bound (Entity (Choice));
!                      Add_Range_Size;
  
!                      Rewrite (Choice,
!                        Make_Range (Loc,
!                          New_Copy_Tree (Lo),
!                          New_Copy_Tree (Hi)));
  
!                   else
!                      --  Single choice (syntax excludes a subtype
!                      --  indication).
  
!                      Siz := Siz + 1;
                    end if;
  
-                   Next (Choice);
-                end loop;
                 Next (Comp);
              end loop;
           end if;
  
!          return Siz;
        end Aggregate_Size;
  
!       -------------------
!       -- Build_Siz_Exp --
!       -------------------
  
-       function Build_Siz_Exp (Comp : Node_Id) return Int is
-          Lo, Hi : Node_Id;
        begin
           if Nkind (Comp) = N_Range then
              Lo := Low_Bound (Comp);
--- 6445,6557 ----
        --  given either by a loop parameter specification or an iterator
        --  specification.
  
+       function Expand_Range_Component
+         (Rng       : Node_Id;
+          Expr      : Node_Id;
+          Insert_Op : Entity_Id) return Node_Id;
+       --  Transform a component association with a range into an explicit loop
+       --  that calls the appropriate operation Insert_Op to add the value of
+       --  Expr to each container element with an index in the range.
+ 
+       function To_Int (Expr : N_Subexpr_Id) return Int;
+       --  Return the Int value corresponding to the bound Expr
+ 
        --------------------
        -- Aggregate_Size --
        --------------------
  
!       function Aggregate_Size return Node_Id is
!          Comp         : Node_Id;
!          Comp_Siz_Exp : Node_Id;
!          Siz_Exp      : Node_Id;
  
        begin
           --  Aggregate is either all positional or all named
  
!          Siz_Exp := Make_Integer_Literal (Loc, List_Length (Expressions (N)));
!          Set_Is_Static_Expression (Siz_Exp);
  
           if Present (Component_Associations (N)) then
              Comp := First (Component_Associations (N));
  
              while Present (Comp) loop
!                Comp_Siz_Exp := Build_Size_Expr (Comp);
  
!                if No (Comp_Siz_Exp) then
  
!                   --  If the size of the component cannot be determined then
!                   --  we cannot continue with the dynamic evalution and we
!                   --  should use the default value instead.
  
!                   return Empty;
! 
!                else
!                   if Is_Static_Expression (Siz_Exp)
!                      and then Is_Static_Expression (Comp_Siz_Exp)
                    then
!                      --  Create a simpler version of the expression
  
!                      Siz_Exp := Make_Integer_Literal (Loc,
!                                   To_Int (Siz_Exp) + To_Int (Comp_Siz_Exp));
  
!                      Set_Is_Static_Expression (Siz_Exp);
  
!                   else
!                      Siz_Exp := Make_Op_Add (Sloc (Comp),
!                                   Left_Opnd  => Siz_Exp,
!                                   Right_Opnd => Comp_Siz_Exp);
                    end if;
+                end if;
  
                 Next (Comp);
              end loop;
           end if;
  
!          return Siz_Exp;
        end Aggregate_Size;
  
!       ---------------------
!       -- Build_Size_Expr --
!       ---------------------
! 
!       function Build_Size_Expr (Comp : Node_Id) return Node_Id is
!          Lo, Hi       : Node_Id;
!          It           : Node_Id;
!          Siz_Exp      : Node_Id := Empty;
!          Choice       : Node_Id;
!          Temp_Siz_Exp : Node_Id;
!          Siz          : Int;
! 
!          procedure Update_Choices (Lo : Node_Id; Hi : Node_Id);
!          --  Update the Choice_Lo and Choice_Hi variables with the smallest
!          --  and largest possible node values.
! 
!          --------------------
!          -- Update_Choices --
!          --------------------
! 
!          procedure Update_Choices (Lo : Node_Id; Hi : Node_Id) is
!             Range_Int_Lo : constant Int := To_Int (Lo);
!             Range_Int_Hi : constant Int := To_Int (Hi);
! 
!          begin
!             if No (Choice_Lo)
!               or else (Is_Static_Expression (Choice_Lo)
!                         and then Range_Int_Lo < To_Int (Choice_Lo))
!             then
!                Choice_Lo := Lo;
!             end if;
! 
!             if No (Choice_Hi)
!               or else (Is_Static_Expression (Choice_Hi)
!                         and then Range_Int_Hi > To_Int (Choice_Hi))
!             then
!                Choice_Hi := Hi;
!             end if;
!          end Update_Choices;
! 
!       --  Start of processing for Build_Size_Expr
  
        begin
           if Nkind (Comp) = N_Range then
              Lo := Low_Bound (Comp);
*************** package body Exp_Aggr is
*** 6744,6790 ****
              if Is_Static_Expression (Lo)
                and then Is_Static_Expression (Hi)
              then
!                if Nkind (Lo) = N_Integer_Literal then
!                   Siz := UI_To_Int (Intval (Hi)) - UI_To_Int (Intval (Lo)) + 1;
!                else
!                   Siz := UI_To_Int (Enumeration_Pos (Hi))
!                        - UI_To_Int (Enumeration_Pos (Lo)) + 1;
!                end if;
!                return Siz;
  
              else
!                Siz_Exp :=
!                  Make_Op_Add (Sloc (Comp),
                     Left_Opnd =>
                       Make_Op_Subtract (Sloc (Comp),
                         Left_Opnd => New_Copy_Tree (Hi),
                         Right_Opnd => New_Copy_Tree (Lo)),
                     Right_Opnd =>
                       Make_Integer_Literal (Loc, 1));
-                return -1;
              end if;
  
           elsif Nkind (Comp) = N_Iterated_Component_Association then
!             return Build_Siz_Exp (First (Discrete_Choices (Comp)));
  
           elsif Nkind (Comp) = N_Iterated_Element_Association then
!             return -1;
  
              --  ??? Need to create code for a loop and add to generated code,
              --  as is done for array aggregates with iterated element
              --  associations, instead of using Append operations.
  
           else
!             return -1;
           end if;
!       end Build_Siz_Exp;
  
        -------------------------------
        -- Expand_Iterated_Component --
        -------------------------------
  
        procedure Expand_Iterated_Component (Comp : Node_Id) is
!          Expr    : constant Node_Id := Expression (Comp);
  
           Key_Expr           : Node_Id := Empty;
           Loop_Id            : Entity_Id;
--- 6564,6735 ----
              if Is_Static_Expression (Lo)
                and then Is_Static_Expression (Hi)
              then
!                Update_Choices (Lo, Hi);
! 
!                Siz := To_Int (Hi) - To_Int (Lo) + 1;
!                Siz_Exp := Make_Integer_Literal (Loc, Siz);
!                Set_Is_Static_Expression (Siz_Exp);
! 
!                return Siz_Exp;
  
              else
!                --  Capture the nonstatic bounds, for later use in passing on
!                --  the call to New_Indexed.
! 
!                Choice_Lo := Lo;
!                Choice_Hi := Hi;
! 
!                return Make_Op_Add (Sloc (Comp),
                     Left_Opnd =>
                       Make_Op_Subtract (Sloc (Comp),
                         Left_Opnd => New_Copy_Tree (Hi),
                         Right_Opnd => New_Copy_Tree (Lo)),
                     Right_Opnd =>
                       Make_Integer_Literal (Loc, 1));
              end if;
  
           elsif Nkind (Comp) = N_Iterated_Component_Association then
!             if Present (Iterator_Specification (Comp)) then
! 
!                --  If the static size of the iterable object is known,
!                --  attempt to return it.
! 
!                It := Name (Iterator_Specification (Comp));
!                Preanalyze (It);
! 
!                --  Handle the simplest cases for now where It denotes an array
!                --  object.
! 
!                if Nkind (It) in N_Identifier
!                  and then Ekind (Etype (It)) = E_Array_Subtype
!                then
!                   declare
!                      Idx_N : Node_Id := First_Index (Etype (It));
!                      Siz_Exp : Node_Id := Empty;
!                   begin
!                      while Present (Idx_N) loop
!                         Temp_Siz_Exp := Build_Size_Expr (Idx_N);
! 
!                         pragma Assert (Present (Temp_Siz_Exp));
! 
!                         if Present (Siz_Exp) then
!                            if Is_Static_Expression (Siz_Exp)
!                              and then Is_Static_Expression (Temp_Siz_Exp)
!                            then
! 
!                               --  Create a simpler version of the expression
! 
!                               Siz_Exp := Make_Integer_Literal (Loc,
!                                            To_Int (Siz_Exp) *
!                                            To_Int (Temp_Siz_Exp));
! 
!                               Set_Is_Static_Expression (Siz_Exp);
!                            else
!                               Siz_Exp := Make_Op_Multiply (Sloc (Comp),
!                                            Left_Opnd  => Siz_Exp,
!                                            Right_Opnd => Temp_Siz_Exp);
!                            end if;
!                         else
!                            Siz_Exp := Temp_Siz_Exp;
!                         end if;
! 
!                         Next_Index (Idx_N);
!                      end loop;
! 
!                      return Siz_Exp;
!                   end;
!                end if;
! 
!                return Empty;
! 
!             else
!                return Build_Size_Expr (First (Discrete_Choices (Comp)));
!             end if;
! 
!          elsif Nkind (Comp) = N_Component_Association then
!             Choice := First (Choices (Comp));
! 
!             while Present (Choice) loop
!                Analyze (Choice);
! 
!                if Nkind (Choice) = N_Range then
! 
!                   Temp_Siz_Exp := Build_Size_Expr (Choice);
! 
!                --  Choice is subtype_mark; add range based on its bounds
! 
!                elsif Is_Entity_Name (Choice)
!                  and then Is_Type (Entity (Choice))
!                then
!                   Lo := Type_Low_Bound (Entity (Choice));
!                   Hi := Type_High_Bound (Entity (Choice));
! 
!                   Rewrite (Choice,
!                     Make_Range (Loc,
!                       New_Copy_Tree (Lo),
!                       New_Copy_Tree (Hi)));
! 
!                   Temp_Siz_Exp := Build_Size_Expr (Choice);
! 
!                --  Choice is a single discrete value
! 
!                elsif Is_Discrete_Type (Etype (Choice)) then
!                   Update_Choices (Choice, Choice);
! 
!                   Temp_Siz_Exp := Make_Integer_Literal (Loc, 1);
!                   Set_Is_Static_Expression (Temp_Siz_Exp);
! 
!                --  Choice is a single value of some nondiscrete type
! 
!                else
!                   Temp_Siz_Exp := Make_Integer_Literal (Loc, 1);
!                   Set_Is_Static_Expression (Temp_Siz_Exp);
!                end if;
! 
!                if Present (Siz_Exp) then
! 
!                   if Is_Static_Expression (Siz_Exp)
!                     and then Is_Static_Expression (Temp_Siz_Exp)
!                   then
!                      --  Create a simpler version of the expression
! 
!                      Siz_Exp := Make_Integer_Literal
!                         (Loc, To_Int (Siz_Exp) + To_Int (Temp_Siz_Exp));
! 
!                      Set_Is_Static_Expression (Siz_Exp);
!                   else
!                      Siz_Exp := Make_Op_Add
!                         (Sloc (Comp),
!                            Left_Opnd  => Siz_Exp,
!                            Right_Opnd => Temp_Siz_Exp);
!                   end if;
!                else
!                   Siz_Exp := Temp_Siz_Exp;
!                end if;
! 
!                Next (Choice);
!             end loop;
! 
!             return Siz_Exp;
  
           elsif Nkind (Comp) = N_Iterated_Element_Association then
!             return Empty;
  
              --  ??? Need to create code for a loop and add to generated code,
              --  as is done for array aggregates with iterated element
              --  associations, instead of using Append operations.
  
           else
!             return Empty;
           end if;
!       end Build_Size_Expr;
  
        -------------------------------
        -- Expand_Iterated_Component --
        -------------------------------
  
        procedure Expand_Iterated_Component (Comp : Node_Id) is
!          Expr : constant Node_Id := Expression (Comp);
  
           Key_Expr           : Node_Id := Empty;
           Loop_Id            : Entity_Id;
*************** package body Exp_Aggr is
*** 6830,6837 ****
                   (Loop_Parameter_Specification
                      (L_Iteration_Scheme), Loop_Id);
              end if;
-          else
  
              --  Iterated_Component_Association.
  
              if Present (Iterator_Specification (Comp)) then
--- 6775,6782 ----
                   (Loop_Parameter_Specification
                      (L_Iteration_Scheme), Loop_Id);
              end if;
  
+          else
              --  Iterated_Component_Association.
  
              if Present (Iterator_Specification (Comp)) then
*************** package body Exp_Aggr is
*** 6842,6847 ****
--- 6787,6794 ----
                 L_Iteration_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Iterator_Specification => Iterator_Specification (Comp));
+                Set_Defining_Identifier
+                   (Iterator_Specification (L_Iteration_Scheme), Loop_Id);
  
              else
                 --  Loop_Parameter_Specification is parsed with a choice list.
*************** package body Exp_Aggr is
*** 6857,6862 ****
--- 6804,6810 ----
                     Loop_Parameter_Specification =>
                       Make_Loop_Parameter_Specification (Loc,
                         Defining_Identifier => Loop_Id,
+                        Reverse_Present => Reverse_Present (Comp),
                         Discrete_Subtype_Definition => L_Range));
              end if;
           end if;
*************** package body Exp_Aggr is
*** 6876,6895 ****
                (Make_Procedure_Call_Statement (Loc,
                   Name => New_Occurrence_Of (Entity (Add_Unnamed_Subp), Loc),
                   Parameter_Associations =>
!                    New_List (New_Occurrence_Of (Temp, Loc),
                       New_Copy_Tree (Expr))));
           else
              --  Named or indexed aggregate, for which a key is present,
              --  possibly with a specified key_expression.
  
              if Present (Key_Expr) then
!                Params := New_List (New_Occurrence_Of (Temp, Loc),
!                             New_Copy_Tree (Key_Expr),
!                             New_Copy_Tree (Expr));
              else
!                Params := New_List (New_Occurrence_Of (Temp, Loc),
!                             New_Occurrence_Of (Loop_Id, Loc),
!                             New_Copy_Tree (Expr));
              end if;
  
              Stats := New_List
--- 6824,6844 ----
                (Make_Procedure_Call_Statement (Loc,
                   Name => New_Occurrence_Of (Entity (Add_Unnamed_Subp), Loc),
                   Parameter_Associations =>
!                    New_List (New_Copy_Tree (Lhs),
                       New_Copy_Tree (Expr))));
+ 
           else
              --  Named or indexed aggregate, for which a key is present,
              --  possibly with a specified key_expression.
  
              if Present (Key_Expr) then
!                Params := New_List (New_Copy_Tree (Lhs),
!                            New_Copy_Tree (Key_Expr),
!                            New_Copy_Tree (Expr));
              else
!                Params := New_List (New_Copy_Tree (Lhs),
!                            New_Occurrence_Of (Loop_Id, Loc),
!                            New_Copy_Tree (Expr));
              end if;
  
              Stats := New_List
*************** package body Exp_Aggr is
*** 6903,7031 ****
                           Identifier       => Empty,
                           Iteration_Scheme => L_Iteration_Scheme,
                           Statements       => Stats);
-          Append (Loop_Stat, Aggr_Code);
  
        end Expand_Iterated_Component;
  
!    --  Start of processing for Expand_Container_Aggregate
  
     begin
        Parse_Aspect_Aggregate (Asp,
          Empty_Subp, Add_Named_Subp, Add_Unnamed_Subp,
          New_Indexed_Subp, Assign_Indexed_Subp);
  
!       --  The constructor for bounded containers is a function with
!       --  a parameter that sets the size of the container. If the
!       --  size cannot be determined statically we use a default value
!       --  or a dynamic expression.
  
!       Siz := Aggregate_Size;
  
!       ---------------------
!       --  Empty function --
!       ---------------------
  
!       if Ekind (Entity (Empty_Subp)) = E_Function
!         and then Present (First_Formal (Entity (Empty_Subp)))
!       then
!          Default := Default_Value (First_Formal (Entity (Empty_Subp)));
  
!          --  If aggregate size is not static, we can use default value
!          --  of formal parameter for allocation. We assume that this
!          --  (implementation-dependent) value is static, even though
!          --   the AI does not require it.
  
!          --  Create declaration for size: a constant literal in the simple
!          --  case, an expression if iterated component associations may be
!          --  involved, the default otherwise.
  
!          Count_Type := Etype (First_Formal (Entity (Empty_Subp)));
!          if Siz = -1 then
!             if No (Siz_Exp) then
!                Siz := UI_To_Int (Intval (Default));
!                Siz_Exp := Make_Integer_Literal (Loc, Siz);
  
!             else
!                Siz_Exp := Make_Type_Conversion (Loc,
!                   Subtype_Mark =>
!                     New_Occurrence_Of (Count_Type, Loc),
!                   Expression => Siz_Exp);
!             end if;
  
           else
!             Siz_Exp := Make_Integer_Literal (Loc, Siz);
           end if;
  
!          Siz_Decl := Make_Object_Declaration (Loc,
!             Defining_Identifier => Make_Temporary (Loc, 'S', N),
!             Object_Definition =>
!                New_Occurrence_Of (Count_Type, Loc),
!                Expression => Siz_Exp);
!          Append (Siz_Decl, Aggr_Code);
  
!          if Nkind (Siz_Exp) = N_Integer_Literal then
!             Init_Stat :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Temp,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc),
!                 Expression => Make_Function_Call (Loc,
!                   Name => New_Occurrence_Of (Entity (Empty_Subp), Loc),
!                   Parameter_Associations =>
!                     New_List
!                       (New_Occurrence_Of
!                         (Defining_Identifier (Siz_Decl), Loc))));
  
           else
!             Init_Stat :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Temp,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc),
!                 Expression => Make_Function_Call (Loc,
!                   Name =>
!                     New_Occurrence_Of (Entity (New_Indexed_Subp), Loc),
!                   Parameter_Associations =>
!                     New_List (
!                       Make_Integer_Literal (Loc, 1),
!                       Make_Type_Conversion (Loc,
!                         Subtype_Mark =>
!                           New_Occurrence_Of
!                             (Etype (First_Formal (Entity (New_Indexed_Subp))),
!                              Loc),
!                         Expression => New_Occurrence_Of
!                                         (Defining_Identifier (Siz_Decl),
!                                          Loc)))));
           end if;
  
!          Append (Init_Stat, Aggr_Code);
  
!          --  Size is dynamic: Create declaration for object, and initialize
!          --  with a call to the null container, or an assignment to it.
  
!       else
!          Decl :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Object_Definition   => New_Occurrence_Of (Typ, Loc));
  
!          Insert_Action (N, Decl);
  
!          --  The Empty entity is either a parameterless function, or
!          --  a constant.
  
!          if Ekind (Entity (Empty_Subp)) = E_Function then
!             Init_Stat := Make_Assignment_Statement (Loc,
!               Name => New_Occurrence_Of (Temp, Loc),
!               Expression => Make_Function_Call (Loc,
!                 Name => New_Occurrence_Of (Entity (Empty_Subp), Loc)));
  
           else
!             Init_Stat := Make_Assignment_Statement (Loc,
!               Name => New_Occurrence_Of (Temp, Loc),
!               Expression => New_Occurrence_Of (Entity (Empty_Subp), Loc));
!          end if;
  
!          Append (Init_Stat, Aggr_Code);
!       end if;
  
        --  Report warning on infinite recursion if an empty container aggregate
        --  appears in the return statement of its Empty function.
--- 6852,7038 ----
                           Identifier       => Empty,
                           Iteration_Scheme => L_Iteration_Scheme,
                           Statements       => Stats);
  
+          Append (Loop_Stat, Aggr_Code);
        end Expand_Iterated_Component;
  
!       ----------------------------
!       -- Expand_Range_Component --
!       ----------------------------
! 
!       function Expand_Range_Component
!         (Rng       : Node_Id;
!          Expr      : Node_Id;
!          Insert_Op : Entity_Id) return Node_Id
!       is
!          Loop_Id : constant Entity_Id := Make_Temporary (Loc, 'T');
! 
!          L_Iteration_Scheme : Node_Id;
!          Stats              : List_Id;
! 
!       begin
!          L_Iteration_Scheme :=
!            Make_Iteration_Scheme (Loc,
!              Loop_Parameter_Specification =>
!                Make_Loop_Parameter_Specification (Loc,
!                  Defining_Identifier => Loop_Id,
!                  Discrete_Subtype_Definition => New_Copy_Tree (Rng)));
! 
!          Stats := New_List
!            (Make_Procedure_Call_Statement (Loc,
!               Name =>
!                 New_Occurrence_Of (Insert_Op, Loc),
!               Parameter_Associations =>
!                 New_List (New_Copy_Tree (Lhs),
!                   New_Occurrence_Of (Loop_Id, Loc),
!                   New_Copy_Tree (Expr))));
! 
!          return Make_Implicit_Loop_Statement
!                    (Node             => N,
!                     Identifier       => Empty,
!                     Iteration_Scheme => L_Iteration_Scheme,
!                     Statements       => Stats);
!       end Expand_Range_Component;
! 
!       ------------
!       -- To_Int --
!       ------------
! 
!       --  The bounds of the discrete range are integers or enumeration literals
! 
!       function To_Int (Expr : N_Subexpr_Id) return Int is
!       begin
!          return UI_To_Int ((if Nkind (Expr) = N_Integer_Literal
!                             then Intval (Expr)
!                             else Enumeration_Pos (Expr)));
!       end To_Int;
! 
!       --  Local variables
! 
!       Is_Indexed_Aggregate : Boolean;
!       --  True if the aggregate is indexed as per RM 4.3.5(25/5)
! 
!    --  Start of processing for Build_Container_Aggr_Code
  
     begin
        Parse_Aspect_Aggregate (Asp,
          Empty_Subp, Add_Named_Subp, Add_Unnamed_Subp,
          New_Indexed_Subp, Assign_Indexed_Subp);
  
!       --  Determine whether this is an indexed aggregate
  
!       Is_Indexed_Aggregate :=
!         Sem_Aggr.Is_Indexed_Aggregate
!           (N, Add_Unnamed_Subp, New_Indexed_Subp);
  
!       --  Build the function call that initializes the anonymous object
  
!       declare
!          Empty_First_Formal : constant Entity_Id :=
!                                 First_Formal (Entity (Empty_Subp));
  
!          Count_Type : Entity_Id;
!          Default    : Node_Id;
!          Param_List : List_Id;
!          Siz_Exp    : Node_Id;
  
!       begin
!          --  The constructor for bounded containers is a function with
!          --  a parameter that sets the size of the container. If the
!          --  size cannot be determined statically we use a default value
!          --  or a dynamic expression.
  
!          Siz_Exp := Aggregate_Size;
  
!          --  If aggregate size is not static, we use the default value of the
!          --  Empty operation's formal parameter for the allocation. We assume
!          --  that this (implementation-dependent) value is static, even though
!          --  the AI does not require it.
! 
!          if Present (Empty_First_Formal) then
!             Default    := Default_Value (Empty_First_Formal);
!             Count_Type := Etype (Empty_First_Formal);
  
           else
!             Default    := Empty;
!             Count_Type := Standard_Natural;
           end if;
  
!          --  Create an object initialized by the aggregate's determined size
!          --  (number of elements): a constant literal in the simple case, an
!          --  expression if iterated component associations may be involved,
!          --  and the default otherwise.
  
!          if Present (Siz_Exp) then
!             Siz_Exp :=
!               Make_Type_Conversion (Loc,
!                 Subtype_Mark => New_Occurrence_Of (Count_Type, Loc),
!                 Expression   => Siz_Exp);
! 
!          elsif Present (Default) then
!             Siz_Exp := New_Copy_Tree (Default);
! 
!          --  If the length isn't known and there's not a default, then use
!          --  zero for the initial container length.
  
           else
!             Siz_Exp := Make_Integer_Literal (Loc, 0);
           end if;
  
!          --  In the case of an indexed aggregate, the aggregate is allocated
!          --  with the New_Indexed operation, passing the bounds.
  
!          if Is_Indexed_Aggregate then
!             declare
!                Insert     : constant Entity_Id :=
!                               Entity (Assign_Indexed_Subp);
!                Index_Type : constant Entity_Id :=
!                               Etype (Next_Formal (First_Formal (Insert)));
  
!             begin
!                if No (Choice_Lo) then
!                   pragma Assert (No (Choice_Hi));
  
!                   Choice_Lo := New_Copy_Tree (Type_Low_Bound (Index_Type));
  
!                   Choice_Hi := Make_Op_Add (Loc,
!                     Left_Opnd => New_Copy_Tree (Type_Low_Bound (Index_Type)),
!                     Right_Opnd =>
!                       Make_Op_Subtract (Loc,
!                         Left_Opnd  => Make_Type_Conversion (Loc,
!                                         Subtype_Mark =>
!                                           New_Occurrence_Of (Index_Type, Loc),
!                                         Expression => Siz_Exp),
!                         Right_Opnd => Make_Integer_Literal (Loc, 1)));
  
!                else
!                   Choice_Lo := New_Copy_Tree (Choice_Lo);
!                   Choice_Hi := New_Copy_Tree (Choice_Hi);
!                end if;
! 
!                Init :=
!                  Make_Function_Call (Loc,
!                    Name => New_Occurrence_Of (Entity (New_Indexed_Subp), Loc),
!                    Parameter_Associations => New_List (Choice_Lo, Choice_Hi));
!             end;
! 
!          --  Otherwise we generate a call to the Empty function, passing the
!          --  determined number of elements Siz_Exp if the function has a formal
!          --  parameter, and otherwise making a parameterless call.
  
           else
!             if Present (Empty_First_Formal) then
!                Param_List := New_List (Siz_Exp);
!             else
!                Param_List := No_List;
!             end if;
  
!             Init :=
!               Make_Function_Call (Loc,
!                 Name => New_Occurrence_Of (Entity (Empty_Subp), Loc),
!                 Parameter_Associations => Param_List);
!          end if;
!       end;
  
        --  Report warning on infinite recursion if an empty container aggregate
        --  appears in the return statement of its Empty function.
*************** package body Exp_Aggr is
*** 7039,7100 ****
           Error_Msg_Warn := SPARK_Mode /= On;
           Error_Msg_N
             ("!empty aggregate returned by the empty function of a container"
!             & " aggregate<<<", Parent (N));
           Error_Msg_N
!            ("\this will result in infinite recursion??", Parent (N));
!       end if;
! 
!       --  Determine whether this is an indexed aggregate (see RM 4.3.5(25/5)).
! 
!       if Present (New_Indexed_Subp) then
!          if No (Add_Unnamed_Subp) then
!             Is_Indexed_Aggregate := True;
! 
!          else
!             declare
!                Comp_Assns : constant List_Id := Component_Associations (N);
!                Comp_Assn  : Node_Id;
! 
!             begin
!                if Present (Comp_Assns)
!                  and then not Is_Empty_List (Comp_Assns)
!                then
!                   Comp_Assn := First (Comp_Assns);
! 
!                   if Nkind (Comp_Assn) = N_Component_Association
!                     or else
!                       (Nkind (Comp_Assn) = N_Iterated_Component_Association
!                         and then Present (Defining_Identifier (Comp_Assn)))
!                   then
!                      Is_Indexed_Aggregate := True;
!                   end if;
!                end if;
!             end;
!          end if;
        end if;
  
        ---------------------------
        --  Positional aggregate --
        ---------------------------
  
!       --  If the aggregate is positional the aspect must include
!       --  an Add_Unnamed subprogram.
  
!       if Present (Add_Unnamed_Subp) then
           if Present (Expressions (N)) then
              declare
!                Insert : constant Entity_Id := Entity (Add_Unnamed_Subp);
                 Comp   : Node_Id;
                 Stat   : Node_Id;
  
              begin
                 Comp := First (Expressions (N));
                 while Present (Comp) loop
                    Stat := Make_Procedure_Call_Statement (Loc,
                      Name => New_Occurrence_Of (Insert, Loc),
!                     Parameter_Associations =>
!                       New_List (New_Occurrence_Of (Temp, Loc),
!                         New_Copy_Tree (Comp)));
                    Append (Stat, Aggr_Code);
                    Next (Comp);
                 end loop;
--- 7046,7142 ----
           Error_Msg_Warn := SPARK_Mode /= On;
           Error_Msg_N
             ("!empty aggregate returned by the empty function of a container"
!             & " aggregate<<", Parent (N));
           Error_Msg_N
!            ("\this will result in infinite recursion<<", Parent (N));
        end if;
  
        ---------------------------
        --  Positional aggregate --
        ---------------------------
  
!       --  If the aggregate is positional, then the aspect must include
!       --  an Add_Unnamed or Assign_Indexed procedure.
  
!       if not Is_Null_Aggregate (N)
!         and then
!           (Present (Add_Unnamed_Subp) or else Present (Assign_Indexed_Subp))
!       then
           if Present (Expressions (N)) then
              declare
!                Insert : constant Entity_Id :=
!                  (if Is_Indexed_Aggregate
!                   then Entity (Assign_Indexed_Subp)
!                   else Entity (Add_Unnamed_Subp));
                 Comp   : Node_Id;
                 Stat   : Node_Id;
+                Param_List : List_Id;
+                Key_Type   : Entity_Id;
+                Key_Index  : Entity_Id;
  
              begin
+                --  For an indexed aggregate, use Etype of the Assign_Indexed
+                --  procedure's second formal as the key type, and declare an
+                --  index object of that type, which will iterate over the key
+                --  type values while traversing the component associations.
+ 
+                if Is_Indexed_Aggregate then
+                   Key_Type :=
+                     Etype (Next_Formal
+                              (First_Formal (Entity (Assign_Indexed_Subp))));
+ 
+                   Key_Index := Make_Temporary (Loc, 'I', N);
+ 
+                   Append_To (Aggr_Code,
+                      Make_Object_Declaration (Loc,
+                        Defining_Identifier => Key_Index,
+                        Object_Definition   =>
+                          New_Occurrence_Of (Key_Type, Loc)));
+                end if;
+ 
                 Comp := First (Expressions (N));
                 while Present (Comp) loop
+                   if Is_Indexed_Aggregate then
+ 
+                      --  Generate an assignment to set the first key value of
+                      --  the key index object from the key type's lower bound.
+ 
+                      if Comp = First (Expressions (N)) then
+                         Append_To (Aggr_Code,
+                           Make_Assignment_Statement (Loc,
+                             Name       => New_Occurrence_Of (Key_Index, Loc),
+                           Expression          =>
+                             New_Copy (Type_Low_Bound (Key_Type))));
+ 
+                      --  Generate an assignment to increment the key value
+                      --  for the subsequent component assignments.
+ 
+                      else
+                         Append_To (Aggr_Code,
+                           Make_Assignment_Statement (Loc,
+                             Name       => New_Occurrence_Of (Key_Index, Loc),
+                             Expression =>
+                               Make_Attribute_Reference (Loc,
+                                 Prefix         =>
+                                   New_Occurrence_Of (Key_Type, Loc),
+                                 Attribute_Name => Name_Succ,
+                                 Expressions    => New_List (
+                                   New_Occurrence_Of (Key_Index, Loc)))));
+                      end if;
+ 
+                      Param_List :=
+                        New_List (New_Copy_Tree (Lhs),
+                                  New_Occurrence_Of (Key_Index, Loc),
+                                  New_Copy_Tree (Comp));
+                   else
+                      Param_List :=
+                        New_List (New_Copy_Tree (Lhs),
+                                  New_Copy_Tree (Comp));
+                   end if;
+ 
                    Stat := Make_Procedure_Call_Statement (Loc,
                      Name => New_Occurrence_Of (Insert, Loc),
!                     Parameter_Associations => Param_List);
                    Append (Stat, Aggr_Code);
                    Next (Comp);
                 end loop;
*************** package body Exp_Aggr is
*** 7104,7116 ****
           --  such as sets may include iterated component associations.
  
           elsif not Is_Indexed_Aggregate then
!             Comp := First (Component_Associations (N));
!             while Present (Comp) loop
!                if Nkind (Comp) = N_Iterated_Component_Association then
!                   Expand_Iterated_Component (Comp);
!                end if;
!                Next (Comp);
!             end loop;
           end if;
  
        ---------------------
--- 7146,7165 ----
           --  such as sets may include iterated component associations.
  
           elsif not Is_Indexed_Aggregate then
!             declare
!                Comp : Node_Id;
! 
!             begin
!                Comp := First (Component_Associations (N));
!                while Present (Comp) loop
!                   if Nkind (Comp) = N_Iterated_Component_Association
!                     or else Nkind (Comp) = N_Iterated_Element_Association
!                   then
!                      Expand_Iterated_Component (Comp);
!                   end if;
!                   Next (Comp);
!                end loop;
!             end;
           end if;
  
        ---------------------
*************** package body Exp_Aggr is
*** 7120,7127 ****
        elsif Present (Add_Named_Subp) then
           declare
              Insert : constant Entity_Id := Entity (Add_Named_Subp);
!             Stat   : Node_Id;
!             Key    : Node_Id;
           begin
              Comp := First (Component_Associations (N));
  
--- 7169,7179 ----
        elsif Present (Add_Named_Subp) then
           declare
              Insert : constant Entity_Id := Entity (Add_Named_Subp);
! 
!             Comp : Node_Id;
!             Key  : Node_Id;
!             Stat : Node_Id;
! 
           begin
              Comp := First (Component_Associations (N));
  
*************** package body Exp_Aggr is
*** 7137,7148 ****
                    Key := First (Choices (Comp));
  
                    while Present (Key) loop
!                      Stat := Make_Procedure_Call_Statement (Loc,
!                        Name => New_Occurrence_Of (Insert, Loc),
!                        Parameter_Associations =>
!                          New_List (New_Occurrence_Of (Temp, Loc),
!                            New_Copy_Tree (Key),
!                            New_Copy_Tree (Expression (Comp))));
                       Append (Stat, Aggr_Code);
  
                       Next (Key);
--- 7189,7211 ----
                    Key := First (Choices (Comp));
  
                    while Present (Key) loop
!                      if Nkind (Key) = N_Range then
! 
!                         --  Create loop for the specified range, with copies of
!                         --  the expression.
! 
!                         Stat := Expand_Range_Component
!                                   (Key, Expression (Comp), Insert);
! 
!                      else
!                         Stat := Make_Procedure_Call_Statement (Loc,
!                           Name => New_Occurrence_Of (Insert, Loc),
!                           Parameter_Associations =>
!                             New_List (New_Copy_Tree (Lhs),
!                               New_Copy_Tree (Key),
!                               New_Copy_Tree (Expression (Comp))));
!                      end if;
! 
                       Append (Stat, Aggr_Code);
  
                       Next (Key);
*************** package body Exp_Aggr is
*** 7171,7253 ****
        then
           declare
              Insert : constant Entity_Id := Entity (Assign_Indexed_Subp);
-             Index_Type : constant Entity_Id :=
-                Etype (Next_Formal (First_Formal (Insert)));
- 
-             function  Expand_Range_Component
-               (Rng  : Node_Id;
-                Expr : Node_Id) return Node_Id;
-             --  Transform a component assoication with a range into an
-             --  explicit loop. If the choice is a subtype name, it is
-             --  rewritten as a range with the corresponding bounds, which
-             --  are known to be static.
- 
              Comp   : Node_Id;
-             Index  : Node_Id;
              Stat   : Node_Id;
              Key    : Node_Id;
  
-             -----------------------------
-             -- Expand_Raange_Component --
-             -----------------------------
- 
-             function Expand_Range_Component
-               (Rng  : Node_Id;
-                Expr : Node_Id) return Node_Id
-             is
-                Loop_Id : constant Entity_Id :=
-                  Make_Temporary (Loc, 'T');
- 
-                L_Iteration_Scheme : Node_Id;
-                Stats              : List_Id;
- 
-             begin
-                L_Iteration_Scheme :=
-                  Make_Iteration_Scheme (Loc,
-                    Loop_Parameter_Specification =>
-                      Make_Loop_Parameter_Specification (Loc,
-                        Defining_Identifier => Loop_Id,
-                        Discrete_Subtype_Definition => New_Copy_Tree (Rng)));
- 
-                Stats := New_List
-                  (Make_Procedure_Call_Statement (Loc,
-                     Name =>
-                       New_Occurrence_Of (Entity (Assign_Indexed_Subp), Loc),
-                     Parameter_Associations =>
-                       New_List (New_Occurrence_Of (Temp, Loc),
-                         New_Occurrence_Of (Loop_Id, Loc),
-                         New_Copy_Tree (Expr))));
- 
-                return  Make_Implicit_Loop_Statement
-                          (Node             => N,
-                           Identifier       => Empty,
-                           Iteration_Scheme => L_Iteration_Scheme,
-                           Statements       => Stats);
-             end Expand_Range_Component;
- 
           begin
              pragma Assert (No (Expressions (N)));
  
-             if Siz > 0 then
- 
-                --  Modify the call to the constructor to allocate the
-                --  required size for the aggregwte : call the provided
-                --  constructor rather than the Empty aggregate.
- 
-                Index := Make_Op_Add (Loc,
-                  Left_Opnd => New_Copy_Tree (Type_Low_Bound (Index_Type)),
-                  Right_Opnd => Make_Integer_Literal (Loc, Siz - 1));
- 
-                Set_Expression (Init_Stat,
-                   Make_Function_Call (Loc,
-                     Name =>
-                       New_Occurrence_Of (Entity (New_Indexed_Subp), Loc),
-                     Parameter_Associations =>
-                       New_List (
-                          New_Copy_Tree (Type_Low_Bound (Index_Type)),
-                          Index)));
-             end if;
- 
              Comp := First (Component_Associations (N));
  
              --  The choice may be a static value, or a range with
--- 7234,7246 ----
*************** package body Exp_Aggr is
*** 7266,7285 ****
  
                       elsif Nkind (Key) = N_Range then
  
!                         --  Create loop for tne specified range,
                          --  with copies of the expression.
  
                          Stat :=
!                           Expand_Range_Component (Key, Expression (Comp));
  
                       else
                          Stat := Make_Procedure_Call_Statement (Loc,
!                           Name => New_Occurrence_Of
!                              (Entity (Assign_Indexed_Subp), Loc),
!                              Parameter_Associations =>
!                                New_List (New_Occurrence_Of (Temp, Loc),
!                                New_Copy_Tree (Key),
!                                New_Copy_Tree (Expression (Comp))));
                       end if;
  
                       Append (Stat, Aggr_Code);
--- 7259,7278 ----
  
                       elsif Nkind (Key) = N_Range then
  
!                         --  Create loop for the specified range,
                          --  with copies of the expression.
  
                          Stat :=
!                           Expand_Range_Component
!                             (Key, Expression (Comp), Insert);
  
                       else
                          Stat := Make_Procedure_Call_Statement (Loc,
!                           Name => New_Occurrence_Of (Insert, Loc),
!                           Parameter_Associations =>
!                             New_List (New_Copy_Tree (Lhs),
!                             New_Copy_Tree (Key),
!                             New_Copy_Tree (Expression (Comp))));
                       end if;
  
                       Append (Stat, Aggr_Code);
*************** package body Exp_Aggr is
*** 7293,7302 ****
                    --  positional insertion procedure.
  
                    if No (Iterator_Specification (Comp)) then
-                      Add_Named_Subp := Assign_Indexed_Subp;
                       Add_Unnamed_Subp := Empty;
                    end if;
  
                    Expand_Iterated_Component (Comp);
                 end if;
  
--- 7286,7296 ----
                    --  positional insertion procedure.
  
                    if No (Iterator_Specification (Comp)) then
                       Add_Unnamed_Subp := Empty;
                    end if;
  
+                   Add_Named_Subp := Assign_Indexed_Subp;
+ 
                    Expand_Iterated_Component (Comp);
                 end if;
  
*************** package body Exp_Aggr is
*** 7305,7313 ****
           end;
        end if;
  
!       Insert_Actions (N, Aggr_Code);
!       Rewrite (N, New_Occurrence_Of (Temp, Loc));
!       Analyze_And_Resolve (N, Typ);
     end Expand_Container_Aggregate;
  
     ------------------------------
--- 7299,7406 ----
           end;
        end if;
  
!       return Aggr_Code;
!    end Build_Container_Aggr_Code;
! 
!    --------------------------------
!    -- Expand_Container_Aggregate --
!    --------------------------------
! 
!    procedure Expand_Container_Aggregate (N : Node_Id) is
!       Loc : constant Source_Ptr := Sloc (N);
!       Typ : constant Entity_Id  := Etype (N);
! 
!       Aggr_Code : List_Id;
!       Init      : Node_Id;
!       Lhs       : Node_Id;
!       Obj_Id    : Entity_Id;
!       Par       : Node_Id;
! 
!    begin
!       Par := Parent (N);
!       while Nkind (Par) = N_Qualified_Expression loop
!          Par := Parent (Par);
!       end loop;
! 
!       --  If the aggregate is the initialization expression of an object
!       --  declaration, we always build the aggregate in place, although
!       --  this is required only for immutably limited types and types
!       --  that need finalization, see RM 7.6(17.2/3-17.3/3).
! 
!       if Nkind (Par) = N_Object_Declaration then
!          Obj_Id := Defining_Identifier (Par);
!          Lhs := New_Occurrence_Of (Obj_Id, Loc);
!          Set_Assignment_OK (Lhs);
!          Aggr_Code := Build_Container_Aggr_Code (N, Typ, Lhs, Init);
! 
!          --  Save the last assignment statement associated with the aggregate
!          --  when building a controlled object. This reference is utilized by
!          --  the finalization machinery when marking an object as successfully
!          --  initialized.
! 
!          if Needs_Finalization (Typ) then
!             Mutate_Ekind (Obj_Id, E_Variable);
!             Set_Last_Aggregate_Assignment (Obj_Id, Last (Aggr_Code));
!          end if;
! 
!          --  If a transient scope has been created around the declaration, we
!          --  need to attach the code to it so that the finalization actions of
!          --  the declaration will be inserted after it; otherwise, we directly
!          --  insert it after the declaration. In both cases, the code will be
!          --  analyzed after the declaration is processed, i.e. once the actual
!          --  subtype of the object is established.
! 
!          if Scope_Is_Transient and then Par = Node_To_Be_Wrapped then
!             Store_After_Actions_In_Scope_Without_Analysis (Aggr_Code);
!          else
!             Insert_List_After (Par, Aggr_Code);
!          end if;
! 
!          Rewrite (N, Init);
!          Analyze_And_Resolve (N, Typ);
! 
!       --  Likewise if the aggregate is the qualified expression of an allocator
!       --  but, in this case, we wait until after Expand_Allocator_Expression
!       --  rewrites the allocator as the initialization expression of an object
!       --  declaration to have the left hand side.
! 
!       elsif Nkind (Par) = N_Allocator then
!          if Nkind (Parent (Par)) = N_Object_Declaration
!            and then not Comes_From_Source (Defining_Identifier (Parent (Par)))
!          then
!             Obj_Id := Defining_Identifier (Parent (Par));
!             Lhs :=
!               Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Obj_Id, Loc));
!             Set_Assignment_OK (Lhs);
!             Aggr_Code := Build_Container_Aggr_Code (N, Typ, Lhs, Init);
! 
!             Insert_Actions_After (Parent (Par), Aggr_Code);
! 
!             Rewrite (N, Init);
!             Analyze_And_Resolve (N, Typ);
!          end if;
! 
!       --  Otherwise we create a temporary for the anonymous object and replace
!       --  the aggregate with the temporary.
! 
!       else
!          Obj_Id := Make_Temporary (Loc, 'A', N);
!          Lhs := New_Occurrence_Of (Obj_Id, Loc);
!          Set_Assignment_OK (Lhs);
! 
!          Aggr_Code := Build_Container_Aggr_Code (N, Typ, Lhs, Init);
!          Prepend_To (Aggr_Code,
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Obj_Id,
!              Object_Definition   => New_Occurrence_Of (Typ, Loc),
!              Expression          => Init));
! 
!          Insert_Actions (N, Aggr_Code);
! 
!          Rewrite (N, Lhs);
!          Analyze_And_Resolve (N, Typ);
!       end if;
     end Expand_Container_Aggregate;
  
     ------------------------------
*************** package body Exp_Aggr is
*** 7420,7427 ****
  
                 declare
                    --  recursively get name for prefix
!                   LHS_Prefix : constant Node_Id
!                     := Make_Delta_Choice_LHS (Prefix (Choice), Deep_Choice);
                 begin
                    if Nkind (Choice) = N_Indexed_Component then
                       return Make_Indexed_Component (Sloc (Choice),
--- 7513,7520 ----
  
                 declare
                    --  recursively get name for prefix
!                   LHS_Prefix : constant Node_Id :=
!                     Make_Delta_Choice_LHS (Prefix (Choice), Deep_Choice);
                 begin
                    if Nkind (Choice) = N_Indexed_Component then
                       return Make_Indexed_Component (Sloc (Choice),
*************** package body Exp_Aggr is
*** 7666,7674 ****
        --  NOTE: This sets the global Static_Components to False in most, but
        --  not all, cases when it returns False.
  
!       function Has_Per_Object_Constraint (L : List_Id) return Boolean;
!       --  Return True if any element of L has Has_Per_Object_Constraint set.
!       --  L should be the Choices component of an N_Component_Association.
  
        function Has_Visible_Private_Ancestor (Id : E) return Boolean;
        --  If any ancestor of the current type is private, the aggregate
--- 7759,7767 ----
        --  NOTE: This sets the global Static_Components to False in most, but
        --  not all, cases when it returns False.
  
!       function Contains_Mutably_Tagged_Component
!         (Typ : Entity_Id) return Boolean;
!       --  Determine if some component of Typ is mutably tagged
  
        function Has_Visible_Private_Ancestor (Id : E) return Boolean;
        --  If any ancestor of the current type is private, the aggregate
*************** package body Exp_Aggr is
*** 8111,8117 ****
                 Static_Components := False;
                 return False;
  
!             elsif Is_Delayed_Aggregate (Expr_Q) then
                 Static_Components := False;
                 return False;
  
--- 8204,8212 ----
                 Static_Components := False;
                 return False;
  
!             elsif Is_Delayed_Aggregate (Expr_Q)
!               or else Is_Delayed_Conditional_Expression (Expr_Q)
!             then
                 Static_Components := False;
                 return False;
  
*************** package body Exp_Aggr is
*** 8122,8148 ****
              elsif Possible_Bit_Aligned_Component (Expr_Q) then
                 Static_Components := False;
                 return False;
- 
-             elsif Modify_Tree_For_C
-               and then Nkind (C) = N_Component_Association
-               and then Has_Per_Object_Constraint (Choices (C))
-             then
-                Static_Components := False;
-                return False;
- 
-             elsif Modify_Tree_For_C
-               and then Nkind (Expr_Q) = N_Identifier
-               and then Is_Array_Type (Etype (Expr_Q))
-             then
-                Static_Components := False;
-                return False;
- 
-             elsif Modify_Tree_For_C
-               and then Nkind (Expr_Q) = N_Type_Conversion
-               and then Is_Array_Type (Etype (Expr_Q))
-             then
-                Static_Components := False;
-                return False;
              end if;
  
              if Is_Elementary_Type (Etype (Expr_Q)) then
--- 8217,8222 ----
*************** package body Exp_Aggr is
*** 8166,8191 ****
           return True;
        end Component_OK_For_Backend;
  
!       -------------------------------
!       -- Has_Per_Object_Constraint --
!       -------------------------------
  
!       function Has_Per_Object_Constraint (L : List_Id) return Boolean is
!          N : Node_Id := First (L);
        begin
!          while Present (N) loop
!             if Is_Entity_Name (N)
!               and then Present (Entity (N))
!               and then Has_Per_Object_Constraint (Entity (N))
!             then
                 return True;
              end if;
  
!             Next (N);
           end loop;
- 
           return False;
!       end Has_Per_Object_Constraint;
  
        -----------------------------------
        --  Has_Visible_Private_Ancestor --
--- 8240,8268 ----
           return True;
        end Component_OK_For_Backend;
  
!       ---------------------------------------
!       -- Contains_Mutably_Tagged_Component --
!       ---------------------------------------
  
!       function Contains_Mutably_Tagged_Component
!         (Typ : Entity_Id) return Boolean
!       is
!          Comp : Entity_Id;
        begin
!          --  Move through Typ's components looking for mutably tagged ones
! 
!          Comp := First_Component (Typ);
!          while Present (Comp) loop
!             --  When we find one, return True
! 
!             if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (Comp)) then
                 return True;
              end if;
  
!             Next_Component (Comp);
           end loop;
           return False;
!       end Contains_Mutably_Tagged_Component;
  
        -----------------------------------
        --  Has_Visible_Private_Ancestor --
*************** package body Exp_Aggr is
*** 8248,8254 ****
        end if;
  
        --  If the pragma Aggregate_Individually_Assign is set, always convert to
!       --  assignments.
  
        if Aggregate_Individually_Assign then
           Convert_To_Assignments (N, Typ);
--- 8325,8332 ----
        end if;
  
        --  If the pragma Aggregate_Individually_Assign is set, always convert to
!       --  assignments so that proper tag assignments and conversions can be
!       --  generated.
  
        if Aggregate_Individually_Assign then
           Convert_To_Assignments (N, Typ);
*************** package body Exp_Aggr is
*** 8287,8292 ****
--- 8365,8376 ----
              Build_Back_End_Aggregate;
           end if;
  
+       --  When we have any components which are mutably tagged types then
+       --  special processing is required.
+ 
+       elsif Contains_Mutably_Tagged_Component (Typ) then
+          Convert_To_Assignments (N, Typ);
+ 
        --  Gigi doesn't properly handle temporaries of variable size so we
        --  generate it in the front-end
  
*************** package body Exp_Aggr is
*** 8352,8363 ****
        elsif Type_May_Have_Bit_Aligned_Components (Typ) then
           Convert_To_Assignments (N, Typ);
  
-       --  When generating C, only generate an aggregate when declaring objects
-       --  since C does not support aggregates in e.g. assignment statements.
- 
-       elsif Modify_Tree_For_C and then not Is_CCG_Supported_Aggregate (N) then
-          Convert_To_Assignments (N, Typ);
- 
        --  In all other cases, build a proper aggregate to be handled by gigi
  
        else
--- 8436,8441 ----
*************** package body Exp_Aggr is
*** 8489,8494 ****
--- 8567,8579 ----
            Name       => New_Copy_Tree (Comp),
            Expression => Relocate_Node (Init_Expr));
  
+       --  If the initialization expression is a conditional expression whose
+       --  expansion has been delayed, analyze it again and expand it.
+ 
+       if Is_Delayed_Conditional_Expression (Expression (Init_Stmt)) then
+          Unanalyze_Delayed_Conditional_Expression (Expression (Init_Stmt));
+       end if;
+ 
        Append_To (Blk_Stmts, Init_Stmt);
  
        --  Arrange for the component to be adjusted if need be (the call will be
*************** package body Exp_Aggr is
*** 8569,8598 ****
     ----------------------------------------
  
     function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean is
!       P : Node_Id := Parent (N);
  
     begin
!       while Nkind (P) in N_Case_Expression
!                        | N_Case_Expression_Alternative
!                        | N_If_Expression
!                        | N_Qualified_Expression
!       loop
!          P := Parent (P);
!       end loop;
! 
!       if Nkind (P) = N_Simple_Return_Statement then
!          null;
! 
!       elsif Nkind (Parent (P)) = N_Extended_Return_Statement then
!          P := Parent (P);
! 
!       else
           return False;
        end if;
  
!       return
!         Is_Build_In_Place_Function
!           (Return_Applies_To (Return_Statement_Entity (P)));
     end Is_Build_In_Place_Aggregate_Return;
  
     --------------------------
--- 8654,8677 ----
     ----------------------------------------
  
     function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean is
!       F : Entity_Id;
  
     begin
!       if Nkind (N) /= N_Simple_Return_Statement then
           return False;
        end if;
  
!       F := Return_Applies_To (Return_Statement_Entity (N));
! 
!       --  For a build-in-place function, all the returns are done in place
!       --  by definition. We also return aggregates in place in other cases
!       --  as an optimization, and they correspond to the cases where the
!       --  return object is built in place (see Is_Special_Return_Object).
! 
!       return Is_Build_In_Place_Function (F)
!         or else Needs_Secondary_Stack (Etype (F))
!         or else (Back_End_Return_Slot
!                   and then Is_By_Reference_Type (Etype (F)));
     end Is_Build_In_Place_Aggregate_Return;
  
     --------------------------
*************** package body Exp_Aggr is
*** 8607,8670 ****
          and then Expansion_Delayed (Unqual_N);
     end Is_Delayed_Aggregate;
  
-    --------------------------------
-    -- Is_CCG_Supported_Aggregate --
-    --------------------------------
- 
-    function Is_CCG_Supported_Aggregate
-      (N : Node_Id) return Boolean
-    is
-       P : Node_Id := Parent (N);
- 
-    begin
-       --  Aggregates are not supported for nonstandard rep clauses, since they
-       --  may lead to extra padding fields in CCG.
- 
-       if Is_Record_Type (Etype (N))
-         and then Has_Non_Standard_Rep (Etype (N))
-       then
-          return False;
-       end if;
- 
-       while Present (P) and then Nkind (P) = N_Aggregate loop
-          P := Parent (P);
-       end loop;
- 
-       --  Check cases where aggregates are supported by the CCG backend
- 
-       if Nkind (P) = N_Object_Declaration then
-          declare
-             P_Typ : constant Entity_Id := Etype (Defining_Identifier (P));
- 
-          begin
-             if Is_Record_Type (P_Typ) then
-                return True;
-             else
-                return Compile_Time_Known_Bounds (P_Typ);
-             end if;
-          end;
- 
-       elsif Nkind (P) = N_Qualified_Expression then
-          if Nkind (Parent (P)) = N_Object_Declaration then
-             declare
-                P_Typ : constant Entity_Id :=
-                          Etype (Defining_Identifier (Parent (P)));
-             begin
-                if Is_Record_Type (P_Typ) then
-                   return True;
-                else
-                   return Compile_Time_Known_Bounds (P_Typ);
-                end if;
-             end;
- 
-          elsif Nkind (Parent (P)) = N_Allocator then
-             return True;
-          end if;
-       end if;
- 
-       return False;
-    end Is_CCG_Supported_Aggregate;
- 
     ----------------------------------------
     -- Is_Static_Dispatch_Table_Aggregate --
     ----------------------------------------
--- 8686,8691 ----
*************** package body Exp_Aggr is
*** 8710,8715 ****
--- 8731,8751 ----
          and then C in Uint_1 | Uint_2 | Uint_4; -- False if No_Uint
     end Is_Two_Dim_Packed_Array;
  
+    ---------------------------
+    -- Is_Two_Pass_Aggregate --
+    ---------------------------
+ 
+    function Is_Two_Pass_Aggregate (N : Node_Id) return Boolean is
+    begin
+       return Nkind (N) = N_Aggregate
+         and then Present (Component_Associations (N))
+         and then Nkind (First (Component_Associations (N))) =
+                    N_Iterated_Component_Association
+         and then
+           Present
+             (Iterator_Specification (First (Component_Associations (N))));
+    end Is_Two_Pass_Aggregate;
+ 
     --------------------
     -- Late_Expansion --
     --------------------
*************** package body Exp_Aggr is
*** 8720,8761 ****
        Target : Node_Id) return List_Id
     is
        Aggr_Code : List_Id;
-       New_Aggr  : Node_Id;
  
     begin
        if Is_Array_Type (Typ) then
!          --  If the assignment can be done directly by the back end, then
!          --  reset Set_Expansion_Delayed and do not expand further.
! 
!          if not CodePeer_Mode
!            and then not Modify_Tree_For_C
!            and then not Possible_Bit_Aligned_Component (Target)
!            and then not Is_Possibly_Unaligned_Slice (Target)
!            and then Aggr_Assignment_OK_For_Backend (N)
!          then
!             New_Aggr := New_Copy_Tree (N);
!             Set_Expansion_Delayed (New_Aggr, False);
! 
!             Aggr_Code :=
!               New_List (
!                 Make_OK_Assignment_Statement (Sloc (New_Aggr),
!                   Name       => Target,
!                   Expression => New_Aggr));
! 
!          --  Or else, generate component assignments to it
! 
!          else
!             Aggr_Code :=
!               Build_Array_Aggr_Code
!                 (N           => N,
!                  Ctype       => Component_Type (Typ),
!                  Index       => First_Index (Typ),
!                  Into        => Target,
!                  Scalar_Comp => Is_Scalar_Type (Component_Type (Typ)),
!                  Indexes     => No_List);
!          end if;
! 
!       --  Directly or indirectly (e.g. access protected procedure) a record
  
        else
           Aggr_Code := Build_Record_Aggr_Code (N, Typ, Target);
--- 8756,8771 ----
        Target : Node_Id) return List_Id
     is
        Aggr_Code : List_Id;
  
     begin
        if Is_Array_Type (Typ) then
!          Aggr_Code :=
!            Build_Array_Aggr_Code
!              (N           => N,
!               Ctype       => Component_Type (Typ),
!               Index       => First_Index (Typ),
!               Into        => Target,
!               Scalar_Comp => Is_Scalar_Type (Component_Type (Typ)));
  
        else
           Aggr_Code := Build_Record_Aggr_Code (N, Typ, Target);
*************** package body Exp_Aggr is
*** 8952,8960 ****
        Typ  : constant Entity_Id  := Etype (N);
        Ctyp : constant Entity_Id  := Component_Type (Typ);
  
-       Not_Handled : exception;
-       --  Exception raised if this aggregate cannot be handled
- 
     begin
        --  Handle one- or two dimensional bit packed array
  
--- 8962,8967 ----
*************** package body Exp_Aggr is
*** 8987,8993 ****
           --  Given a expression value N of the component type Ctyp, returns a
           --  value of Csiz (component size) bits representing this value. If
           --  the value is nonstatic or any other reason exists why the value
!          --  cannot be returned, then Not_Handled is raised.
  
           -----------------------
           -- Get_Component_Val --
--- 8994,9000 ----
           --  Given a expression value N of the component type Ctyp, returns a
           --  value of Csiz (component size) bits representing this value. If
           --  the value is nonstatic or any other reason exists why the value
!          --  cannot be returned, then No_Uint is returned.
  
           -----------------------
           -- Get_Component_Val --
*************** package body Exp_Aggr is
*** 9010,9016 ****
              if not Compile_Time_Known_Value (N)
                or else Nkind (N) = N_String_Literal
              then
!                raise Not_Handled;
              end if;
  
              Val := Expr_Rep_Value (N);
--- 9017,9023 ----
              if not Compile_Time_Known_Value (N)
                or else Nkind (N) = N_String_Literal
              then
!                return No_Uint;
              end if;
  
              Val := Expr_Rep_Value (N);
*************** package body Exp_Aggr is
*** 9039,9055 ****
           end if;
  
           declare
!             Bounds_Vals : Range_Values;
              --  Compile-time known values of bounds
-          begin
-             --  Or are silly out of range of int bounds
  
!             Bounds_Vals.First := Expr_Value (Bounds.First);
!             Bounds_Vals.Last := Expr_Value (Bounds.Last);
  
!             if not UI_Is_In_Int_Range (Bounds_Vals.First)
!                  or else
!                not UI_Is_In_Int_Range (Bounds_Vals.Last)
              then
                 return False;
              end if;
--- 9046,9060 ----
           end if;
  
           declare
!             Bounds_Vals : constant Range_Values :=
!               (First => Expr_Value (Bounds.First),
!                Last  => Expr_Value (Bounds.Last));
              --  Compile-time known values of bounds
  
!          begin
!             --  Guard against raising C_E in UI_To_Int
  
!             if not UI_Are_In_Int_Range (Bounds_Vals.First, Bounds_Vals.Last)
              then
                 return False;
              end if;
*************** package body Exp_Aggr is
*** 9090,9095 ****
--- 9095,9103 ----
                 --  justified modular type processing), so we do not have to
                 --  worry about that here.
  
+                Val : Uint;
+                --  Temporary value
+ 
                 Lit : Node_Id;
                 --  Integer literal for resulting constructed value
  
*************** package body Exp_Aggr is
*** 9138,9153 ****
  
                 if Len = 0 then
                    Aggregate_Val := Uint_0;
                 else
                    Expr := First (Expressions (N));
!                   Aggregate_Val := Get_Component_Val (Expr) * Uint_2 ** Shift;
  
                    for J in 2 .. Len loop
                       Shift := Shift + Incr;
                       Next (Expr);
!                      Aggregate_Val :=
!                        Aggregate_Val +
!                        Get_Component_Val (Expr) * Uint_2 ** Shift;
                    end loop;
                 end if;
  
--- 9146,9168 ----
  
                 if Len = 0 then
                    Aggregate_Val := Uint_0;
+ 
                 else
                    Expr := First (Expressions (N));
!                   Val := Get_Component_Val (Expr);
!                   if No (Val) then
!                      return False;
!                   end if;
!                   Aggregate_Val := Val * Uint_2 ** Shift;
  
                    for J in 2 .. Len loop
                       Shift := Shift + Incr;
                       Next (Expr);
!                      Val := Get_Component_Val (Expr);
!                      if No (Val) then
!                         return False;
!                      end if;
!                      Aggregate_Val := Aggregate_Val + Val * Uint_2 ** Shift;
                    end loop;
                 end if;
  
*************** package body Exp_Aggr is
*** 9174,9183 ****
              end;
           end;
        end;
- 
-    exception
-       when Not_Handled =>
-          return False;
     end Packed_Array_Aggregate_Handled;
  
     ----------------------------
--- 9189,9194 ----
*************** package body Exp_Aggr is
*** 9228,9240 ****
            Present (Variant_Part (Component_List (Type_Definition (Decl))))
          and then Nkind (N) /= N_Extension_Aggregate
        then
- 
           --   Call init proc to set discriminants.
           --   There should eventually be a special procedure for this ???
  
           Ref := New_Occurrence_Of (Defining_Identifier (N), Loc);
!          Insert_Actions_After (N,
!            Build_Initialization_Call (Sloc (N), Ref, Typ));
        end if;
     end Initialize_Discriminants;
  
--- 9239,9249 ----
            Present (Variant_Part (Component_List (Type_Definition (Decl))))
          and then Nkind (N) /= N_Extension_Aggregate
        then
           --   Call init proc to set discriminants.
           --   There should eventually be a special procedure for this ???
  
           Ref := New_Occurrence_Of (Defining_Identifier (N), Loc);
!          Insert_Actions_After (N, Build_Initialization_Call (N, Ref, Typ));
        end if;
     end Initialize_Discriminants;
  
*************** package body Exp_Aggr is
*** 9266,9297 ****
        elsif Is_Others_Aggregate (Aggr) then
           return False;
  
!       else
!          --  Sliding can only occur along the first dimension
!          --  If any the bounds of non-static sliding is required
!          --  to force potential range checks.
  
           declare
!             Bounds1 : constant Range_Nodes :=
!               Get_Index_Bounds (First_Index (Typ));
!             Bounds2 : constant Range_Nodes :=
!               Get_Index_Bounds (First_Index (Obj_Type));
  
           begin
!             if not Is_OK_Static_Expression (Bounds1.First) or else
!                not Is_OK_Static_Expression (Bounds2.First) or else
!                not Is_OK_Static_Expression (Bounds1.Last) or else
!                not Is_OK_Static_Expression (Bounds2.Last)
!             then
!                return True;
  
!             else
!                return Expr_Value (Bounds1.First) /= Expr_Value (Bounds2.First)
!                         or else
!                       Expr_Value (Bounds1.Last) /= Expr_Value (Bounds2.Last);
!             end if;
           end;
        end if;
     end Must_Slide;
  
     ---------------------
--- 9275,9317 ----
        elsif Is_Others_Aggregate (Aggr) then
           return False;
  
!       --  Check if sliding is required
  
+       else
           declare
!             Obj_Index  : Node_Id := First_Index (Obj_Type);
!             Obj_Bounds : Range_Nodes;
!             Typ_Index  : Node_Id := First_Index (Typ);
!             Typ_Bounds : Range_Nodes;
  
           begin
!             while Present (Typ_Index) loop
!                pragma Assert (Present (Obj_Index));
  
!                Typ_Bounds := Get_Index_Bounds (Typ_Index);
!                Obj_Bounds := Get_Index_Bounds (Obj_Index);
! 
!                --  We require static bounds and their static matching
! 
!                if        not Compile_Time_Known_Value (Typ_Bounds.First)
!                  or else not Compile_Time_Known_Value (Obj_Bounds.First)
!                  or else not Compile_Time_Known_Value (Typ_Bounds.Last)
!                  or else not Compile_Time_Known_Value (Obj_Bounds.Last)
!                  or else Expr_Value (Typ_Bounds.First) /=
!                            Expr_Value (Obj_Bounds.First)
!                  or else Expr_Value (Typ_Bounds.Last) /=
!                            Expr_Value (Obj_Bounds.Last)
!                then
!                   return True;
!                end if;
! 
!                Next_Index (Typ_Index);
!                Next_Index (Obj_Index);
!             end loop;
           end;
        end if;
+ 
+       return False;
     end Must_Slide;
  
     ---------------------
*************** package body Exp_Aggr is
*** 9427,9432 ****
--- 9447,9458 ----
                    return False;
                 end if;
  
+                --  Guard against raising C_E in UI_To_Int
+ 
+                if not UI_Are_In_Int_Range (Intval (Lo), Intval (Hi)) then
+                   return False;
+                end if;
+ 
                 --  Create a positional aggregate with the right number of
                 --  copies of the expression.
  
*************** package body Exp_Aggr is
*** 9478,9484 ****
        --  One-dimensional subaggregate
  
     begin
- 
        --  For now, only deal with cases where an integral number of elements
        --  fit in a single byte. This includes the most common boolean case.
  
--- 9504,9509 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_aggr.ads gcc-15.1.0/gcc/ada/exp_aggr.ads
*** gcc-14.2.0/gcc/ada/exp_aggr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_aggr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Aggr is
*** 31,54 ****
     procedure Expand_N_Delta_Aggregate     (N : Node_Id);
     procedure Expand_N_Extension_Aggregate (N : Node_Id);
  
!    function Is_Delayed_Aggregate (N : Node_Id) return Boolean;
!    --  Returns True if N is an aggregate of some kind whose Expansion_Delayed
!    --  flag is set (see sinfo for meaning of flag).
! 
!    procedure Convert_Aggr_In_Object_Decl (N : Node_Id);
!    --  N is a N_Object_Declaration with an expression which must be an
!    --  N_Aggregate or N_Extension_Aggregate with Expansion_Delayed.
!    --  This procedure performs in-place aggregate assignment.
! 
!    procedure Convert_Aggr_In_Allocator
!      (Alloc : Node_Id;
!       Decl  : Node_Id;
!       Aggr  : Node_Id);
!    --  Alloc is the allocator whose expression is the aggregate Aggr.
!    --  Decl is an N_Object_Declaration created during allocator expansion.
!    --  This procedure performs in-place aggregate assignment into the
!    --  temporary declared in Decl, and the allocator becomes an access to
!    --  that temporary.
  
     procedure Convert_Aggr_In_Assignment (N : Node_Id);
     --  If the right-hand side of an assignment is an aggregate, expand the
--- 31,42 ----
     procedure Expand_N_Delta_Aggregate     (N : Node_Id);
     procedure Expand_N_Extension_Aggregate (N : Node_Id);
  
!    procedure Convert_Aggr_In_Allocator (N : Node_Id; Temp : Entity_Id);
!    --  N is an N_Allocator whose (ultimate) expression must be an N_Aggregate
!    --  or N_Extension_Aggregate with Expansion_Delayed.
!    --  This procedure performs an in-place aggregate assignment into an object
!    --  allocated with the subtype of the aggregate and designated by Temp, so
!    --  that N can be rewritten as a mere occurrence of Temp.
  
     procedure Convert_Aggr_In_Assignment (N : Node_Id);
     --  If the right-hand side of an assignment is an aggregate, expand the
*************** package Exp_Aggr is
*** 57,67 ****
     --  the components, and the aggregate cannot be handled as a whole by the
     --  backend.
  
     function Static_Array_Aggregate (N : Node_Id) return Boolean;
     --  N is an array aggregate that may have a component association with
     --  an others clause and a range. If bounds are static and the expressions
     --  are compile-time known constants, rewrite N as a purely positional
!    --  aggregate, to be use to initialize variables and components of the type
     --  without generating elaboration code.
  
  end Exp_Aggr;
--- 45,69 ----
     --  the components, and the aggregate cannot be handled as a whole by the
     --  backend.
  
+    procedure Convert_Aggr_In_Object_Decl (N : Node_Id);
+    --  N is an N_Object_Declaration whose expression must be an N_Aggregate or
+    --  N_Extension_Aggregate with Expansion_Delayed.
+    --  This procedure performs an in-place aggregate assignment.
+ 
+    function Is_Delayed_Aggregate (N : Node_Id) return Boolean;
+    --  Returns True if N is an aggregate of some kind whose Expansion_Delayed
+    --  flag is set (see sinfo for meaning of flag).
+ 
+    function Is_Two_Pass_Aggregate (N : Node_Id) return Boolean;
+    --  Return True if N is an aggregate that is to be expanded in two passes.
+    --  This is the case if it consists only of iterated component associations
+    --  with iterator specifications, see RM 4.3.3(20.2/5).
+ 
     function Static_Array_Aggregate (N : Node_Id) return Boolean;
     --  N is an array aggregate that may have a component association with
     --  an others clause and a range. If bounds are static and the expressions
     --  are compile-time known constants, rewrite N as a purely positional
!    --  aggregate, to be used to initialize variables and components of the type
     --  without generating elaboration code.
  
  end Exp_Aggr;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_atag.adb gcc-15.1.0/gcc/ada/exp_atag.adb
*** gcc-14.2.0/gcc/ada/exp_atag.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_atag.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Opt;            use Opt;
*** 36,41 ****
--- 36,42 ----
  with Rtsfind;        use Rtsfind;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
+ with Sinfo.Utils;    use Sinfo.Utils;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Disp;       use Sem_Disp;
  with Sem_Util;       use Sem_Util;
*************** package body Exp_Atag is
*** 776,794 ****
  
     function Build_Set_Size_Function
       (Loc       : Source_Ptr;
!       Tag_Node  : Node_Id;
!       Size_Func : Entity_Id) return Node_Id is
     begin
        pragma Assert (Chars (Size_Func) = Name_uSize
!         and then RTE_Record_Component_Available (RE_Size_Func));
        return
          Make_Assignment_Statement (Loc,
            Name =>
              Make_Selected_Component (Loc,
!               Prefix =>
!                 Make_Explicit_Dereference (Loc,
!                   Build_TSD (Loc,
!                     Unchecked_Convert_To (RTE (RE_Address), Tag_Node))),
                Selector_Name =>
                  New_Occurrence_Of
                    (RTE_Record_Component (RE_Size_Func), Loc)),
--- 777,821 ----
  
     function Build_Set_Size_Function
       (Loc       : Source_Ptr;
!       Typ       : Entity_Id;
!       Size_Func : Entity_Id) return Node_Id
!    is
!       F_Nod : constant Node_Id := Freeze_Node (Typ);
! 
!       Act : Node_Id;
! 
     begin
        pragma Assert (Chars (Size_Func) = Name_uSize
!         and then RTE_Record_Component_Available (RE_Size_Func)
!         and then Present (F_Nod));
! 
!       --  Find the declaration of the TSD object in the freeze actions
! 
!       Act := First (Actions (F_Nod));
!       while Present (Act) loop
!          if Nkind (Act) = N_Object_Declaration
!            and then Nkind (Object_Definition (Act)) = N_Subtype_Indication
!            and then Is_Entity_Name (Subtype_Mark (Object_Definition (Act)))
!            and then Is_RTE (Entity (Subtype_Mark (Object_Definition (Act))),
!                             RE_Type_Specific_Data)
!          then
!             exit;
!          end if;
! 
!          Next (Act);
!       end loop;
! 
!       pragma Assert (Present (Act));
! 
!       --  Generate:
!       --    TSD.Size_Func := Size_Ptr!(Size_Func'Unrestricted_Access);
! 
        return
          Make_Assignment_Statement (Loc,
            Name =>
              Make_Selected_Component (Loc,
!               Prefix        =>
!                 New_Occurrence_Of (Defining_Identifier (Act), Loc),
                Selector_Name =>
                  New_Occurrence_Of
                    (RTE_Record_Component (RE_Size_Func), Loc)),
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_atag.ads gcc-15.1.0/gcc/ada/exp_atag.ads
*** gcc-14.2.0/gcc/ada/exp_atag.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_atag.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Atag is
*** 162,170 ****
  
     function Build_Set_Size_Function
       (Loc       : Source_Ptr;
!       Tag_Node  : Node_Id;
        Size_Func : Entity_Id) return Node_Id;
!    --  Build code that saves in the TSD the address of the function
     --  calculating _size of the object.
  
     function Build_Set_Static_Offset_To_Top
--- 162,170 ----
  
     function Build_Set_Size_Function
       (Loc       : Source_Ptr;
!       Typ       : Entity_Id;
        Size_Func : Entity_Id) return Node_Id;
!    --  Build code that saves in the TSD of Typ the address of the function
     --  calculating _size of the object.
  
     function Build_Set_Static_Offset_To_Top
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_attr.adb gcc-15.1.0/gcc/ada/exp_attr.adb
*** gcc-14.2.0/gcc/ada/exp_attr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_attr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 24,30 ****
  ------------------------------------------------------------------------------
  
  with Accessibility;  use Accessibility;
- with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
--- 24,29 ----
*************** with GNAT.HTable;
*** 81,92 ****
  
  package body Exp_Attr is
  
!    package Cached_Streaming_Ops is
  
        Map_Size : constant := 63;
        subtype Header_Num is Integer range 0 .. Map_Size - 1;
  
!       function Streaming_Op_Hash (Id : Entity_Id) return Header_Num is
          (Header_Num (Id mod Map_Size));
  
        --  Cache used to avoid building duplicate subprograms for a single
--- 80,91 ----
  
  package body Exp_Attr is
  
!    package Cached_Attribute_Ops is
  
        Map_Size : constant := 63;
        subtype Header_Num is Integer range 0 .. Map_Size - 1;
  
!       function Attribute_Op_Hash (Id : Entity_Id) return Header_Num is
          (Header_Num (Id mod Map_Size));
  
        --  Cache used to avoid building duplicate subprograms for a single
*************** package body Exp_Attr is
*** 97,103 ****
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Streaming_Op_Hash,
           Equal      => "=");
  
        package Write_Map is new GNAT.HTable.Simple_HTable
--- 96,102 ----
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Attribute_Op_Hash,
           Equal      => "=");
  
        package Write_Map is new GNAT.HTable.Simple_HTable
*************** package body Exp_Attr is
*** 105,111 ****
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Streaming_Op_Hash,
           Equal      => "=");
  
        package Input_Map is new GNAT.HTable.Simple_HTable
--- 104,110 ----
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Attribute_Op_Hash,
           Equal      => "=");
  
        package Input_Map is new GNAT.HTable.Simple_HTable
*************** package body Exp_Attr is
*** 113,119 ****
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Streaming_Op_Hash,
           Equal      => "=");
  
        package Output_Map is new GNAT.HTable.Simple_HTable
--- 112,118 ----
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Attribute_Op_Hash,
           Equal      => "=");
  
        package Output_Map is new GNAT.HTable.Simple_HTable
*************** package body Exp_Attr is
*** 121,130 ****
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Streaming_Op_Hash,
           Equal      => "=");
  
!    end Cached_Streaming_Ops;
  
     -----------------------
     -- Local Subprograms --
--- 120,144 ----
           Key        => Entity_Id,
           Element    => Entity_Id,
           No_Element => Empty,
!          Hash       => Attribute_Op_Hash,
           Equal      => "=");
  
!       package Put_Image_Map is new GNAT.HTable.Simple_HTable
!         (Header_Num => Header_Num,
!          Key        => Entity_Id,
!          Element    => Entity_Id,
!          No_Element => Empty,
!          Hash       => Attribute_Op_Hash,
!          Equal      => "=");
! 
!       procedure Validate_Cached_Candidate
!         (Subp     : in out Entity_Id;
!          Attr_Ref : Node_Id);
!       --  If Subp is non-empty but it is not callable from the point of
!       --  Attr_Ref (perhaps because it is not visible from that point),
!       --  then Subp is set to Empty. Otherwise, do nothing.
! 
!    end Cached_Attribute_Ops;
  
     -----------------------
     -- Local Subprograms --
*************** package body Exp_Attr is
*** 164,197 ****
     --
     --    * Rec_Typ - the record type whose internals are to be validated
  
-    procedure Compile_Stream_Body_In_Scope
-      (N     : Node_Id;
-       Decl  : Node_Id;
-       Arr   : Entity_Id);
-    --  The body for a stream subprogram may be generated outside of the scope
-    --  of the type. If the type is fully private, it may depend on the full
-    --  view of other types (e.g. indexes) that are currently private as well.
-    --  We install the declarations of the package in which the type is declared
-    --  before compiling the body in what is its proper environment. The Check
-    --  parameter indicates if checks are to be suppressed for the stream body.
-    --  We suppress checks for array/record reads, since the rule is that these
-    --  are like assignments, out of range values due to uninitialized storage,
-    --  or other invalid values do NOT cause a Constraint_Error to be raised.
-    --  If we are within an instance body all visibility has been established
-    --  already and there is no need to install the package.
- 
-    --  This mechanism is now extended to the component types of the array type,
-    --  when the component type is not in scope and is private, to handle
-    --  properly the case when the full view has defaulted discriminants.
- 
-    --  This special processing is ultimately caused by the fact that the
-    --  compiler lacks a well-defined phase when full views are visible
-    --  everywhere. Having such a separate pass would remove much of the
-    --  special-case code that shuffles partial and full views in the middle
-    --  of semantic analysis and expansion.
- 
     function Default_Streaming_Unavailable (Typ : Entity_Id) return Boolean;
-    --
     --  In most cases, references to unavailable streaming attributes
     --  are rejected at compile time. In some obscure cases involving
     --  generics and formal derived types, the problem is dealt with at runtime.
--- 178,184 ----
*************** package body Exp_Attr is
*** 237,244 ****
     --  loop may be converted into a conditional block. See body for details.
  
     procedure Expand_Min_Max_Attribute (N : Node_Id);
!    --  Handle the expansion of attributes 'Max and 'Min, including expanding
!    --  then out if we are in Modify_Tree_For_C mode.
  
     procedure Expand_Pred_Succ_Attribute (N : Node_Id);
     --  Handles expansion of Pred or Succ attributes for case of non-real
--- 224,230 ----
     --  loop may be converted into a conditional block. See body for details.
  
     procedure Expand_Min_Max_Attribute (N : Node_Id);
!    --  Handle the expansion of attributes 'Max and 'Min
  
     procedure Expand_Pred_Succ_Attribute (N : Node_Id);
     --  Handles expansion of Pred or Succ attributes for case of non-real
*************** package body Exp_Attr is
*** 287,292 ****
--- 273,352 ----
     --  expansion. Typically used for rounding and truncation attributes that
     --  appear directly inside a conversion to integer.
  
+    function Is_User_Defined_Enumeration_Type (Typ : Entity_Id) return Boolean;
+    --  Returns True if Typ is a user-defined enumeration type, in the sense
+    --  that its literals are declared in the source.
+ 
+    function Interunit_Ref_OK
+      (Subp_Unit, Attr_Ref_Unit : Node_Id) return Boolean is
+        (In_Same_Extended_Unit (Subp_Unit, Attr_Ref_Unit)
+          --  If subp declared in unit body, then we don't want to refer
+          --  to it from within unit spec so return False in that case.
+          and then not (Body_Required (Attr_Ref_Unit)
+                        and not Body_Required (Subp_Unit)));
+    --  Returns True if it is ok to refer to a cached subprogram declared in
+    --  Subp_Unit from the point of an attribute reference occurring in
+    --  Attr_Ref_Unit. Both arguments are usually N_Compilation_Nodes,
+    --  although there are cases where Subp_Unit might be a type declared in
+    --  package Standard (in which case the In_Same_Extended_Unit call will
+    --  return False).
+ 
+    package body Cached_Attribute_Ops is
+ 
+       -------------------------------
+       -- Validate_Cached_Candidate --
+       -------------------------------
+ 
+       procedure Validate_Cached_Candidate
+         (Subp     : in out Entity_Id;
+          Attr_Ref : Node_Id) is
+       begin
+          if No (Subp) then
+             return;
+          end if;
+ 
+          declare
+             Subp_Comp_Unit     : constant Node_Id :=
+               Enclosing_Comp_Unit_Node (Subp);
+             Attr_Ref_Comp_Unit : constant Node_Id :=
+               Enclosing_Comp_Unit_Node (Attr_Ref);
+ 
+             --  The preceding Enclosing_Comp_Unit_Node calls are needed
+             --  (as opposed to changing Interunit_Ref_OK so that it could
+             --  be passed Subp and Attr_Ref) because the games we play
+             --  with source position info for these conjured-up routines can
+             --  confuse In_Same_Extended_Unit (which is called from in
+             --  Interunit_Ref_OK) in the case where one of these
+             --  conjured-up routines contains an attribute reference
+             --  denoting another such routine (e.g., if the Put_Image routine
+             --  for a composite type contains a Some_Component_Type'Put_Image
+             --  attribute reference). Calling Enclosing_Comp_Unit_Node first
+             --  avoids the case where In_Same_Extended_Unit gets confused.
+ 
+          begin
+             if Interunit_Ref_OK (Subp_Comp_Unit, Attr_Ref_Comp_Unit)
+               and then (Is_Library_Level_Entity (Subp)
+                         or else Enclosing_Dynamic_Scope (Subp) =
+                                 Enclosing_Lib_Unit_Entity (Subp))
+             then
+                return;
+             end if;
+          end;
+ 
+          --  We have previously tried being more ambitious here in hopes of
+          --  referencing subprograms declared in other units (as opposed
+          --  to generating a new copy for the current unit) if they are
+          --  visible from the point of Attr_Ref. Unfortunately,
+          --  we ran into problems with generating inconsistent linknames
+          --  (e.g., a procedure declared with a name ending in "_304PI" being
+          --  unsuccessfully referenced from another unit via a name ending in
+          --  "_305PI"). So, after a fair amount of unsuccessful debugging,
+          --   it was decided to abandon the effort.
+ 
+          Subp := Empty;
+       end Validate_Cached_Candidate;
+    end Cached_Attribute_Ops;
+ 
     -------------------------
     -- Build_Array_VS_Func --
     -------------------------
*************** package body Exp_Attr is
*** 908,998 ****
        return Func_Id;
     end Build_Record_VS_Func;
  
-    ----------------------------------
-    -- Compile_Stream_Body_In_Scope --
-    ----------------------------------
- 
-    procedure Compile_Stream_Body_In_Scope
-      (N     : Node_Id;
-       Decl  : Node_Id;
-       Arr   : Entity_Id)
-    is
-       C_Type  : constant Entity_Id := Base_Type (Component_Type (Arr));
-       Curr    : constant Entity_Id := Current_Scope;
-       Install : Boolean := False;
-       Scop    : Entity_Id := Scope (Arr);
- 
-    begin
-       if Is_Hidden (Arr)
-         and then not In_Open_Scopes (Scop)
-         and then Ekind (Scop) = E_Package
-       then
-          Install := True;
- 
-       else
-          --  The component type may be private, in which case we install its
-          --  full view to compile the subprogram.
- 
-          --  The component type may be private, in which case we install its
-          --  full view to compile the subprogram. We do not do this if the
-          --  type has a Stream_Convert pragma, which indicates that there are
-          --  special stream-processing operations for that type (for example
-          --  Unbounded_String and its wide varieties).
- 
-          --  We don't install the package either if array type and element
-          --  type come from the same package, and the original array type is
-          --  private, because in this case the underlying type Arr is
-          --  itself a full view, which carries the full view of the component.
- 
-          Scop := Scope (C_Type);
- 
-          if Is_Private_Type (C_Type)
-            and then Present (Full_View (C_Type))
-            and then not In_Open_Scopes (Scop)
-            and then Ekind (Scop) = E_Package
-            and then No (Get_Stream_Convert_Pragma (C_Type))
-          then
-             if Scope (Arr) = Scope (C_Type)
-               and then Is_Private_Type (Etype (Prefix (N)))
-               and then Full_View (Etype (Prefix (N))) = Arr
-             then
-                null;
- 
-             else
-                Install := True;
-             end if;
-          end if;
-       end if;
- 
-       --  If we are within an instance body, then all visibility has been
-       --  established already and there is no need to install the package.
- 
-       if Install and then not In_Instance_Body then
-          Push_Scope (Scop);
-          Install_Visible_Declarations (Scop);
-          Install_Private_Declarations (Scop);
- 
-          --  The entities in the package are now visible, but the generated
-          --  stream entity must appear in the current scope (usually an
-          --  enclosing stream function) so that itypes all have their proper
-          --  scopes.
- 
-          Push_Scope (Curr);
-       else
-          Install := False;
-       end if;
- 
-       Insert_Action (N, Decl);
- 
-       if Install then
- 
-          --  Remove extra copy of current scope, and package itself
- 
-          Pop_Scope;
-          End_Package_Scope (Scop);
-       end if;
-    end Compile_Stream_Body_In_Scope;
- 
     -----------------------------------
     -- Default_Streaming_Unavailable --
     -----------------------------------
--- 968,973 ----
*************** package body Exp_Attr is
*** 1808,1821 ****
           begin
              Aux_Decl := Empty;
  
-             --  Generate a nominal type for the constant when the prefix is of
-             --  a constrained type. This is achieved by setting the Etype of
-             --  the relocated prefix to its base type. Since the prefix is now
-             --  the initialization expression of the constant, its freezing
-             --  will produce a proper nominal type.
- 
              Temp_Expr := Relocate_Node (Pref);
!             Set_Etype (Temp_Expr, Base_Typ);
  
              --  Generate:
              --    Temp : constant Base_Typ := Pref;
--- 1783,1807 ----
           begin
              Aux_Decl := Empty;
  
              Temp_Expr := Relocate_Node (Pref);
! 
!             --  For Etype (Temp_Expr) in some cases we cannot use either
!             --  Etype (Pref) or Base_Typ. So we set Etype (Temp_Expr) to null
!             --  and mark Temp_Expr as requiring analysis. Rather than trying
!             --  to sort out exactly when this is needed, we do it
!             --  unconditionally.
!             --  One case where this is needed is when
!             --     1) Pref is an N_Selected_Component name that
!             --        refers to a component which is subject to a
!             --        discriminant-dependent constraint; and
!             --     2) The prefix of that N_Selected_Component refers to a
!             --        formal parameter with an unconstrained subtype; and
!             --     3) Pref has only been preanalyzed (so that
!             --        Build_Actual_Subtype_Of_Component has not been called
!             --        and Etype (Pref) equals the Etype of the component).
! 
!             Set_Etype (Temp_Expr, Empty);
!             Set_Analyzed (Temp_Expr, False);
  
              --  Generate:
              --    Temp : constant Base_Typ := Pref;
*************** package body Exp_Attr is
*** 1899,1904 ****
--- 1885,1909 ----
        Pref  : constant Node_Id    := Prefix (N);
        Exprs : constant List_Id    := Expressions (N);
  
+       generic
+          with procedure Build_Type_Attr_Subprogram
+                 (Typ  : Entity_Id;
+                  Decl : out Node_Id;
+                  Subp : out Entity_Id);
+       procedure Build_And_Insert_Type_Attr_Subp
+                   (Typ      : Entity_Id;
+                    Decl     : out Node_Id;
+                    Subp     : out Entity_Id;
+                    Attr_Ref : Node_Id);
+ 
+       --  If we have two calls to (for example)
+       --  Some_Untagged_Record_Type'Put_Image, we'd like
+       --  to generate just one procedure and call it twice (as opposed to
+       --  generating two effectively-identical procedures). Hoisting the
+       --  declaration of the procedure ensures that a second such attribute
+       --  reference in the current library unit will not need to generate a
+       --  second procedure.
+ 
        function Get_Integer_Type (Typ : Entity_Id) return Entity_Id;
        --  Return a small integer type appropriate for the enumeration type
  
*************** package body Exp_Attr is
*** 1907,1912 ****
--- 1912,2044 ----
        --  call to the appropriate TSS procedure. Pname is the entity for the
        --  procedure to call.
  
+       -------------------------------------
+       -- Build_And_Insert_Type_Attr_Subp --
+       -------------------------------------
+ 
+       procedure Build_And_Insert_Type_Attr_Subp
+         (Typ      : Entity_Id;
+          Decl     : out Node_Id;
+          Subp     : out Entity_Id;
+          Attr_Ref : Node_Id)
+       is
+          procedure Build;
+          procedure Build is
+          begin
+             Build_Type_Attr_Subprogram
+               (Typ  => Typ,
+                Decl => Decl,
+                Subp => Subp);
+          end Build;
+ 
+          Ancestor        : Node_Id := Attr_Ref;
+          Insertion_Scope : Entity_Id := Empty;
+          Insertion_Point : Node_Id := Empty;
+          Insert_Before   : Boolean := False;
+          Typ_Comp_Unit   : Node_Id := Enclosing_Comp_Unit_Node (Typ);
+       begin
+          --  handle no-enclosing-comp-unit cases
+          if No (Typ_Comp_Unit) then
+             if Is_Itype (Typ) then
+                Typ_Comp_Unit := Enclosing_Comp_Unit_Node
+                                   (Associated_Node_For_Itype (Typ));
+             elsif Sloc (Typ) <= Standard_Location then
+                Typ_Comp_Unit := Typ; -- not a comp unit node, but that's ok
+             end if;
+             pragma Assert (Present (Typ_Comp_Unit));
+          end if;
+ 
+          if Interunit_Ref_OK (Typ_Comp_Unit,
+                               Enclosing_Comp_Unit_Node (Attr_Ref))
+             --  See comment accompanying earlier call to Interunit_Ref_OK
+             --  for discussion of these Enclosing_Comp_Unit_Node calls.
+          then
+             --  Typ is declared in the current unit, so
+             --  we want to hoist to the same scope as Typ.
+ 
+             Insertion_Scope := Scope (Typ);
+             Insertion_Point := Freeze_Node (Typ);
+          else
+             --  Typ is declared in a different unit, so
+             --  hoist to library level.
+ 
+             pragma Assert (Is_Library_Level_Entity (Typ));
+ 
+             while Present (Ancestor) loop
+                if Is_List_Member (Ancestor) then
+                   Insertion_Point := First (List_Containing (Ancestor));
+ 
+                   --  A hazard to avoid here is use-before-definition
+                   --  errors that can result when we have two of these
+                   --  subprograms where one calls the other (e.g., given
+                   --  Put_Image procedures for a composite type and
+                   --  for a component type, the former will often call
+                   --  the latter). At the time a subprogram is inserted,
+                   --  we know that the one and only call to it is
+                   --  somewhere in the subtree rooted at Ancestor.
+                   --  So that placement constraint is easy to satisfy.
+                   --  But if we construct another subprogram later and
+                   --  if that second subprogram calls the first one,
+                   --  then we need to be careful not to place the
+                   --  second one ahead of the first one. That is the goal
+                   --  of this loop. This may need to be revised if it turns
+                   --  out that other stuff is being inserted on the list,
+                   --  so that the loop terminates too early.
+ 
+                   --  On the other hand, it seems like inserting things
+                   --  earlier offers more opportunities for sharing.
+                   --  If Ancestor occurs in the statement list of a
+                   --  subprogram body (ignore the HSS node for now),
+                   --  then perhaps we should look for an insertion site
+                   --  in the decl list of the subprogram body and only
+                   --  look in the statement list if the decl list is empty.
+                   --  Similarly if Ancestor occors in the private decls list
+                   --  for a package spec that has a non-empty visible
+                   --  decls list. No examples where this would result in more
+                   --  sharing and less duplication have been observed, so this
+                   --  is just speculation.
+ 
+                   while Insertion_Point /= Ancestor
+                     and then Nkind (Insertion_Point) = N_Subprogram_Body
+                     and then not Comes_From_Source (Insertion_Point)
+                   loop
+                      Next (Insertion_Point);
+                   end loop;
+ 
+                   pragma Assert (Present (Insertion_Point));
+                end if;
+                Ancestor := Parent (Ancestor);
+             end loop;
+ 
+             if Present (Insertion_Point) then
+                Insert_Before := True;
+                Insertion_Scope :=
+                  Find_Enclosing_Scope (Insertion_Point);
+             end if;
+          end if;
+ 
+          if Present (Insertion_Point)
+            and Present (Insertion_Scope)
+          then
+             Push_Scope (Insertion_Scope);
+             Build;
+             if Insert_Before then
+                Insert_Action
+                  (Insertion_Point, Ins_Action => Decl);
+             else
+                Insert_Action_After
+                  (Insertion_Point, Ins_Action => Decl);
+             end if;
+             Pop_Scope;
+          else
+             --  Hoisting was unsuccessful, so no need to
+             --  Push/Pop a scope.
+ 
+             Build;
+             Insert_Action (Attr_Ref, Ins_Action => Decl);
+          end if;
+       end Build_And_Insert_Type_Attr_Subp;
+ 
        ----------------------
        -- Get_Integer_Type --
        ----------------------
*************** package body Exp_Attr is
*** 1989,1999 ****
             and then not Is_Class_Wide_Type (Etype (Item))
             and then Base_Type (Item_Typ) /= Base_Type (Formal_Typ)
           then
!             --  Perform a view conversion when either the argument or the
!             --  formal parameter are of a private type.
  
!             if Is_Private_Type (Base_Type (Formal_Typ))
!               or else Is_Private_Type (Base_Type (Item_Typ))
              then
                 Rewrite (Item,
                   Unchecked_Convert_To (Formal_Typ, Relocate_Node (Item)));
--- 2121,2133 ----
             and then not Is_Class_Wide_Type (Etype (Item))
             and then Base_Type (Item_Typ) /= Base_Type (Formal_Typ)
           then
!             --  Perform an unchecked conversion when either the argument or
!             --  the formal parameter are of a private type.
  
!             if (Is_Private_Type (Base_Type (Formal_Typ))
!                 or else Is_Private_Type (Base_Type (Item_Typ)))
!               and then (Is_By_Reference_Type (Formal_Typ) or else
!                         not Is_Written)
              then
                 Rewrite (Item,
                   Unchecked_Convert_To (Formal_Typ, Relocate_Node (Item)));
*************** package body Exp_Attr is
*** 2053,2060 ****
        --  for the arguments of a 'Read attribute reference (since the
        --  scalar argument is an OUT scalar) and for the arguments of a
        --  'Has_Same_Storage or 'Overlaps_Storage attribute reference (which not
!       --  considered to be reads of their prefixes and expressions, see Ada RM
!       --  13.3(73.10/3)).
  
        if Validity_Checks_On and then Validity_Check_Operands
          and then Id /= Attribute_Asm_Output
--- 2187,2194 ----
        --  for the arguments of a 'Read attribute reference (since the
        --  scalar argument is an OUT scalar) and for the arguments of a
        --  'Has_Same_Storage or 'Overlaps_Storage attribute reference (which not
!       --  considered to be reads of their prefixes and expressions, see
!       --  RM 13.3(73.10/3)).
  
        if Validity_Checks_On and then Validity_Check_Operands
          and then Id /= Attribute_Asm_Output
*************** package body Exp_Attr is
*** 2132,2149 ****
  
        case Id is
  
-       --  Attributes related to Ada 2012 iterators. They are only allowed in
-       --  attribute definition clauses and should never be expanded.
- 
-       when Attribute_Constant_Indexing
-          | Attribute_Default_Iterator
-          | Attribute_Implicit_Dereference
-          | Attribute_Iterable
-          | Attribute_Iterator_Element
-          | Attribute_Variable_Indexing
-       =>
-          raise Program_Error;
- 
        --  Internal attributes used to deal with Ada 2012 delayed aspects. These
        --  were already rejected by the parser. Thus they shouldn't appear here.
  
--- 2266,2271 ----
*************** package body Exp_Attr is
*** 2701,2713 ****
           --  activation record object where the component corresponds to
           --  prefix of the attribute (for back ends that require "unnesting"
           --  of nested subprograms), since the address needs to be assigned
!          --  as-is to such components.
  
           elsif Tagged_Type_Expansion
             and then Is_Class_Wide_Type (Ptyp)
             and then Is_Interface (Underlying_Type (Ptyp))
!            and then not (Nkind (Pref) in N_Has_Entity
!                           and then Is_Subprogram (Entity (Pref)))
             and then not Is_Unnested_Component_Init (N)
           then
              Rewrite (N,
--- 2823,2836 ----
           --  activation record object where the component corresponds to
           --  prefix of the attribute (for back ends that require "unnesting"
           --  of nested subprograms), since the address needs to be assigned
!          --  as-is to such components. Likewise for a return object.
  
           elsif Tagged_Type_Expansion
             and then Is_Class_Wide_Type (Ptyp)
             and then Is_Interface (Underlying_Type (Ptyp))
!            and then not (Is_Entity_Name (Pref)
!                           and then (Is_Subprogram (Entity (Pref))
!                                      or else Is_Return_Object (Entity (Pref))))
             and then not Is_Unnested_Component_Init (N)
           then
              Rewrite (N,
*************** package body Exp_Attr is
*** 3557,3567 ****
  
           --  Local variables
  
!          Size : Entity_Id;
  
        --  Start of processing for Finalization_Size
  
        begin
           --  An object of a class-wide type first requires a runtime check to
           --  determine whether it is actually controlled or not. Depending on
           --  the outcome of this check, the Finalization_Size of the object
--- 3680,3721 ----
  
           --  Local variables
  
!          P_Loc : constant Source_Ptr := Sloc (Pref);
!          Size  : Entity_Id;
  
        --  Start of processing for Finalization_Size
  
        begin
+          --  If the prefix is an interface type, generate code to obtain its
+          --  address and displace it to reference the base of the object.
+ 
+          if Is_Interface (Ptyp) then
+             --  Generate:
+             --    Ptyp!(tag_ptr!($base_address (ptr.all'address)).all)
+ 
+             Rewrite (Pref,
+               Unchecked_Convert_To (Ptyp,
+                 Make_Explicit_Dereference (P_Loc,
+                   Unchecked_Convert_To (RTE (RE_Tag_Ptr),
+                     Make_Function_Call (P_Loc,
+                       Name => New_Occurrence_Of
+                                 (RTE (RE_Base_Address), P_Loc),
+                       Parameter_Associations =>
+                         New_List (
+                           Make_Attribute_Reference (P_Loc,
+                             Prefix => Duplicate_Subexpr (Pref),
+                             Attribute_Name => Name_Address)))))));
+             Analyze_And_Resolve (Pref, Ptyp);
+          end if;
+ 
+          --  If the prefix is the dereference of an access value subject to
+          --  pragma No_Heap_Finalization, then no header has been added.
+ 
+          if Nkind (Pref) = N_Explicit_Dereference
+            and then No_Heap_Finalization (Etype (Prefix (Pref)))
+          then
+             Rewrite (N, Make_Integer_Literal (Loc, 0));
+ 
           --  An object of a class-wide type first requires a runtime check to
           --  determine whether it is actually controlled or not. Depending on
           --  the outcome of this check, the Finalization_Size of the object
*************** package body Exp_Attr is
*** 3577,3583 ****
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          if Is_Class_Wide_Type (Ptyp) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
--- 3731,3737 ----
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          elsif Is_Class_Wide_Type (Ptyp) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
*************** package body Exp_Attr is
*** 3617,3626 ****
  
              Rewrite (N, New_Occurrence_Of (Size, Loc));
  
!          --  The prefix is known to be controlled at compile time. Calculate
!          --  Finalization_Size by calling function Header_Size_With_Padding.
  
!          elsif Needs_Finalization (Ptyp) then
              Rewrite (N, Calculate_Header_Size);
  
           --  The prefix is not an object with controlled parts, so its
--- 3771,3783 ----
  
              Rewrite (N, New_Occurrence_Of (Size, Loc));
  
!          --  The prefix is known to be controlled at compile time and to
!          --  require strict finalization. Calculate Finalization_Size by
!          --  calling function Header_Size_With_Padding.
  
!          elsif Needs_Finalization (Ptyp)
!            and then not Has_Relaxed_Finalization (Ptyp)
!          then
              Rewrite (N, Calculate_Header_Size);
  
           --  The prefix is not an object with controlled parts, so its
*************** package body Exp_Attr is
*** 3961,3970 ****
        ----------------------
  
        when Attribute_Has_Same_Storage => Has_Same_Storage : declare
!          Loc : constant Source_Ptr := Sloc (N);
! 
!          X   : constant Node_Id := Prefix (N);
!          Y   : constant Node_Id := First (Expressions (N));
           --  The arguments
  
           X_Addr : Node_Id;
--- 4118,4125 ----
        ----------------------
  
        when Attribute_Has_Same_Storage => Has_Same_Storage : declare
!          X : constant Node_Id := Pref;
!          Y : constant Node_Id := First (Exprs);
           --  The arguments
  
           X_Addr : Node_Id;
*************** package body Exp_Attr is
*** 4168,4174 ****
           B_Type  : constant Entity_Id := Base_Type (P_Type);
           U_Type  : constant Entity_Id := Underlying_Type (P_Type);
           Strm    : constant Node_Id   := First (Exprs);
-          Has_TSS : Boolean := False;
           Fname   : Entity_Id;
           Decl    : Node_Id;
           Call    : Node_Id;
--- 4323,4328 ----
*************** package body Exp_Attr is
*** 4234,4240 ****
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Sloc (N),
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, B_Type);
              return;
--- 4388,4394 ----
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Loc,
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, B_Type);
              return;
*************** package body Exp_Attr is
*** 4244,4253 ****
  
           Fname := Find_Stream_Subprogram (P_Type, TSS_Stream_Input, N);
  
!          if Present (Fname) then
!             Has_TSS := True;
  
-          else
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Input (stream)
--- 4398,4405 ----
  
           Fname := Find_Stream_Subprogram (P_Type, TSS_Stream_Input, N);
  
!          if No (Fname) then
  
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Input (stream)
*************** package body Exp_Attr is
*** 4288,4294 ****
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Sloc (N),
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, B_Type);
                 return;
--- 4440,4446 ----
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Loc,
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, B_Type);
                 return;
*************** package body Exp_Attr is
*** 4316,4323 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Input_Function (U_Type, Decl, Fname);
!                Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Dispatching case with class-wide type
  
--- 4468,4484 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                declare
!                   procedure Build_And_Insert_Array_Input_Func is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Array_Input_Function);
!                begin
!                   Build_And_Insert_Array_Input_Func
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Fname,
!                      Attr_Ref => N);
!                end;
  
              --  Dispatching case with class-wide type
  
*************** package body Exp_Attr is
*** 4443,4452 ****
                 --  Build the type's Input function, passing the subtype rather
                 --  than its base type, because checks are needed in the case of
                 --  constrained discriminants (see Ada 2012 AI05-0192).
  
!                Build_Record_Or_Elementary_Input_Function
!                  (U_Type, Decl, Fname);
!                Insert_Action (N, Decl);
  
                 if Nkind (Parent (N)) = N_Object_Declaration
                   and then Is_Record_Type (U_Type)
--- 4604,4626 ----
                 --  Build the type's Input function, passing the subtype rather
                 --  than its base type, because checks are needed in the case of
                 --  constrained discriminants (see Ada 2012 AI05-0192).
+                --
+                --  ??? Is this correct in the case where the prefix of the
+                --  attribute is a constrained subtype of a type whose
+                --  first named subtype is unconstrained? Shouldn't we be
+                --  passing in the first named subtype of the type?
  
!                declare
!                   procedure Build_And_Insert_Record_Input_Func is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Record_Or_Elementary_Input_Function);
!                begin
!                   Build_And_Insert_Record_Input_Func
!                     (Typ      => U_Type,
!                      Decl     => Decl,
!                      Subp     => Fname,
!                      Attr_Ref => N);
!                end;
  
                 if Nkind (Parent (N)) = N_Object_Declaration
                   and then Is_Record_Type (U_Type)
*************** package body Exp_Attr is
*** 4494,4501 ****
              Freeze_Stream_Subprogram (Fname);
           end if;
  
!          if not Has_TSS then
!             Cached_Streaming_Ops.Input_Map.Set (P_Type, Fname);
           end if;
        end Input;
  
--- 4668,4675 ----
              Freeze_Stream_Subprogram (Fname);
           end if;
  
!          if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Input_Map.Set (P_Type, Fname);
           end if;
        end Input;
  
*************** package body Exp_Attr is
*** 4615,4621 ****
              --  then replace this attribute with a reference to 'Range_Length
              --  of the appropriate index subtype (since otherwise the
              --  back end will try to give us the value of 'Length for
!             --  this implementation type).s
  
              elsif Is_Constrained (Ptyp) then
                 Rewrite (N,
--- 4789,4795 ----
              --  then replace this attribute with a reference to 'Range_Length
              --  of the appropriate index subtype (since otherwise the
              --  back end will try to give us the value of 'Length for
!             --  this implementation type).
  
              elsif Is_Constrained (Ptyp) then
                 Rewrite (N,
*************** package body Exp_Attr is
*** 4686,4691 ****
--- 4860,4932 ----
                 end if;
              end;
  
+          --  Overflow-related transformations need Length attribute rewritten
+          --  using non-attribute expressions. So generate
+          --   (if Pref'First > Pref'Last
+          --    then 0
+          --    else ((Pref'Last - Pref'First) + 1)) .
+ 
+          elsif Overflow_Check_Mode in Minimized_Or_Eliminated
+ 
+             --  This Comes_From_Source test fixes a regression test failure
+             --  involving a Length attribute reference generated as part of
+             --  the expansion of a concatentation operator; it is unclear
+             --  whether this is the right solution to that problem.
+ 
+             and then Comes_From_Source (N)
+ 
+             --  This Base_Type equality test is so that we only perform this
+             --  transformation if we can do it without introducing
+             --  a type conversion anywhere in the resulting expansion;
+             --  a type conversion is just as bad as a Length attribute
+             --  reference for those overflow-related transformations.
+ 
+             and then Btyp = Base_Type (Get_Index_Subtype (N))
+ 
+          then
+             declare
+                function Prefix_Bound
+                  (Bound_Attr_Name : Name_Id; Is_First_Copy : Boolean := False)
+                  return Node_Id;
+                --  constructs a Pref'First or Pref'Last attribute reference
+ 
+                ------------------
+                -- Prefix_Bound --
+                ------------------
+ 
+                function Prefix_Bound
+                  (Bound_Attr_Name : Name_Id; Is_First_Copy : Boolean := False)
+                  return Node_Id
+                is
+                   Prefix : constant Node_Id :=
+                     (if Is_First_Copy
+                      then Duplicate_Subexpr (Pref)
+                      else Duplicate_Subexpr_No_Checks (Pref));
+                begin
+                   return Make_Attribute_Reference (Loc,
+                            Prefix         => Prefix,
+                            Attribute_Name => Bound_Attr_Name,
+                            Expressions    => New_Copy_List (Exprs));
+                end Prefix_Bound;
+             begin
+                Rewrite (N,
+                  Make_If_Expression (Loc,
+                    Expressions =>
+                      New_List (
+                        Node1 => Make_Op_Gt (Loc,
+                                   Prefix_Bound (Name_First,
+                                                 Is_First_Copy => True),
+                                   Prefix_Bound (Name_Last)),
+                        Node2 => Make_Integer_Literal (Loc, 0),
+                        Node3 => Make_Op_Add (Loc,
+                                   Make_Op_Subtract (Loc,
+                                     Prefix_Bound (Name_Last),
+                                     Prefix_Bound (Name_First)),
+                                   Make_Integer_Literal (Loc, 1)))));
+ 
+                Analyze_And_Resolve (N, Typ);
+             end;
+ 
           --  Otherwise leave it to the back end
  
           else
*************** package body Exp_Attr is
*** 4979,5024 ****
           CW_Typ  : Entity_Id;
           Decl    : Node_Id;
           Ins_Nod : Node_Id;
-          Subp    : Node_Id;
           Temp    : Entity_Id;
  
           use Old_Attr_Util.Conditional_Evaluation;
           use Old_Attr_Util.Indirect_Temps;
        begin
-          --  Generating C code we don't need to expand this attribute when
-          --  we are analyzing the internally built nested _Wrapped_Statements
-          --  procedure since it will be expanded inline (and later it will
-          --  be removed by Expand_N_Subprogram_Body). It this expansion is
-          --  performed in such case then the compiler generates unreferenced
-          --  extra temporaries.
- 
-          if Modify_Tree_For_C
-            and then Chars (Current_Scope) = Name_uWrapped_Statements
-          then
-             return;
-          end if;
- 
-          --  Climb the parent chain looking for subprogram _Wrapped_Statements
- 
-          Subp := N;
-          while Present (Subp) loop
-             exit when Nkind (Subp) = N_Subprogram_Body
-               and then Chars (Defining_Entity (Subp))
-                          = Name_uWrapped_Statements;
- 
-             --  If assertions are disabled, no need to create the declaration
-             --  that preserves the value. The postcondition pragma in which
-             --  'Old appears will be checked or disabled according to the
-             --  current policy in effect.
- 
-             if Nkind (Subp) = N_Pragma and then not Is_Checked (Subp) then
-                return;
-             end if;
- 
-             Subp := Parent (Subp);
-          end loop;
-          Subp := Empty;
- 
           --  'Old can only appear in the case where local contract-related
           --  wrapper has been generated with the purpose of wrapping the
           --  original declarations and statements.
--- 5220,5230 ----
*************** package body Exp_Attr is
*** 5031,5074 ****
           Mutate_Ekind (Temp, E_Constant);
           Set_Stores_Attribute_Old_Prefix (Temp);
  
-          --  Push the scope of the related subprogram where _Postcondition
-          --  resides as this ensures that the object will be analyzed in the
-          --  proper context.
- 
-          if Present (Subp) then
-             Push_Scope (Scope (Defining_Entity (Subp)));
- 
-          --  No need to push the scope when generating C code since the
-          --  _Postcondition procedure has been inlined.
- 
-          else
-             null;
-          end if;
- 
           --  Locate the insertion place of the internal temporary that saves
           --  the 'Old value.
  
!          if Present (Subp) then
!             Ins_Nod := Subp;
! 
!          --  General case where the postcondition checks occur after the call
!          --  to _Wrapped_Statements.
  
!          else
!             Ins_Nod := N;
!             while Nkind (Ins_Nod) /= N_Subprogram_Body loop
!                Ins_Nod := Parent (Ins_Nod);
!             end loop;
  
!             if Present (Corresponding_Spec (Ins_Nod))
!               and then Present
!                          (Wrapped_Statements (Corresponding_Spec (Ins_Nod)))
!             then
!                Ins_Nod := Last (Declarations (Ins_Nod));
!             else
!                Ins_Nod := First (Declarations (Ins_Nod));
!             end if;
!          end if;
  
           if Eligible_For_Conditional_Evaluation (N) then
              declare
--- 5237,5256 ----
           Mutate_Ekind (Temp, E_Constant);
           Set_Stores_Attribute_Old_Prefix (Temp);
  
           --  Locate the insertion place of the internal temporary that saves
           --  the 'Old value.
  
!          Ins_Nod := N;
!          while Nkind (Ins_Nod) /= N_Subprogram_Body loop
!             Ins_Nod := Parent (Ins_Nod);
!          end loop;
  
!          pragma Assert (Present (Wrapped_Statements
!            (if Acts_As_Spec (Ins_Nod)
!               then Defining_Unit_Name (Specification (Ins_Nod))
!               else Corresponding_Spec (Ins_Nod))));
  
!          Ins_Nod := Last (Declarations (Ins_Nod));
  
           if Eligible_For_Conditional_Evaluation (N) then
              declare
*************** package body Exp_Attr is
*** 5113,5122 ****
                               (Temp => Temp,
                                Typ  => Etype (Pref),
                                Loc  => Loc));
- 
-                if Present (Subp) then
-                   Pop_Scope;
-                end if;
                 return;
              end;
  
--- 5295,5300 ----
*************** package body Exp_Attr is
*** 5170,5179 ****
  
           end if;
  
-          if Present (Subp) then
-             Pop_Scope;
-          end if;
- 
           --  Ensure that the prefix of attribute 'Old is valid. The check must
           --  be inserted after the expansion of the attribute has taken place
           --  to reflect the new placement of the prefix.
--- 5348,5353 ----
*************** package body Exp_Attr is
*** 5200,5209 ****
        ----------------------
  
        when Attribute_Overlaps_Storage => Overlaps_Storage : declare
!          Loc : constant Source_Ptr := Sloc (N);
!          X   : constant Node_Id    := Prefix (N);
!          Y   : constant Node_Id    := First (Expressions (N));
! 
           --  The arguments
  
           X_Addr, Y_Addr : Node_Id;
--- 5374,5381 ----
        ----------------------
  
        when Attribute_Overlaps_Storage => Overlaps_Storage : declare
!          X : constant Node_Id := Pref;
!          Y : constant Node_Id := First (Exprs);
           --  The arguments
  
           X_Addr, Y_Addr : Node_Id;
*************** package body Exp_Attr is
*** 5335,5341 ****
        when Attribute_Output => Output : declare
           P_Type  : constant Entity_Id := Entity (Pref);
           U_Type  : constant Entity_Id := Underlying_Type (P_Type);
-          Has_TSS : Boolean := False;
           Pname   : Entity_Id;
           Decl    : Node_Id;
           Prag    : Node_Id;
--- 5507,5512 ----
*************** package body Exp_Attr is
*** 5357,5363 ****
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Sloc (N),
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, Standard_Void_Type);
              return;
--- 5528,5534 ----
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Loc,
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, Standard_Void_Type);
              return;
*************** package body Exp_Attr is
*** 5367,5376 ****
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Output, N);
  
!          if Present (Pname) then
!             Has_TSS := True;
  
-          else
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Output (stream, Item)
--- 5538,5545 ----
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Output, N);
  
!          if No (Pname) then
  
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Output (stream, Item)
*************** package body Exp_Attr is
*** 5413,5419 ****
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Sloc (N),
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, Standard_Void_Type);
                 return;
--- 5582,5588 ----
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Loc,
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, Standard_Void_Type);
                 return;
*************** package body Exp_Attr is
*** 5443,5450 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Output_Procedure (U_Type, Decl, Pname);
!                Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Class-wide case, first output external tag, then dispatch
              --  to the appropriate primitive Output function (RM 13.13.2(31)).
--- 5612,5628 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                declare
!                   procedure Build_And_Insert_Array_Output_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Array_Output_Procedure);
!                begin
!                   Build_And_Insert_Array_Output_Proc
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
  
              --  Class-wide case, first output external tag, then dispatch
              --  to the appropriate primitive Output function (RM 13.13.2(31)).
*************** package body Exp_Attr is
*** 5553,5561 ****
                    return;
                 end if;
  
!                Build_Record_Or_Elementary_Output_Procedure
!                  (Base_Type (U_Type), Decl, Pname);
!                Insert_Action (N, Decl);
              end if;
           end if;
  
--- 5731,5747 ----
                    return;
                 end if;
  
!                declare
!                   procedure Build_And_Insert_Record_Output_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Record_Or_Elementary_Output_Procedure);
!                begin
!                   Build_And_Insert_Record_Output_Proc
!                     (Typ      => Base_Type (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
              end if;
           end if;
  
*************** package body Exp_Attr is
*** 5563,5570 ****
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Has_TSS then
!             Cached_Streaming_Ops.Output_Map.Set (P_Type, Pname);
           end if;
        end Output;
  
--- 5749,5756 ----
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Output_Map.Set (P_Type, Pname);
           end if;
        end Output;
  
*************** package body Exp_Attr is
*** 5879,5884 ****
--- 6065,6071 ----
        when Attribute_Put_Image => Put_Image : declare
           use Exp_Put_Image;
           U_Type : constant Entity_Id := Underlying_Type (Entity (Pref));
+          C_Type : Entity_Id;
           Pname  : Entity_Id;
           Decl   : Node_Id;
  
*************** package body Exp_Attr is
*** 5904,5909 ****
--- 6091,6111 ----
           end if;
  
           if No (Pname) then
+             if Is_String_Type (U_Type) then
+                declare
+                   R : constant Entity_Id := Root_Type (U_Type);
+ 
+                begin
+                   if Is_Private_Type (R) then
+                      C_Type := Component_Type (Full_View (R));
+                   else
+                      C_Type := Component_Type (R);
+                   end if;
+ 
+                   C_Type := Root_Type (Underlying_Type (C_Type));
+                end;
+             end if;
+ 
              --  If Put_Image is disabled, call the "unknown" version
  
              if not Put_Image_Enabled (U_Type) then
*************** package body Exp_Attr is
*** 5919,5932 ****
                 Analyze (N);
                 return;
  
!             elsif Is_Standard_String_Type (U_Type) then
                 Rewrite (N, Build_String_Put_Image_Call (N));
                 Analyze (N);
                 return;
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Put_Image_Procedure (N, U_Type, Decl, Pname);
!                Insert_Action (N, Decl);
  
              --  Tagged type case, use the primitive Put_Image function. Note
              --  that this will dispatch in the class-wide case which is what we
--- 6121,6161 ----
                 Analyze (N);
                 return;
  
!             --  String type objects, including custom string types, and
!             --  excluding C arrays.
! 
!             elsif Is_String_Type (U_Type)
!               and then C_Type in Standard_Character
!                                | Standard_Wide_Character
!                                | Standard_Wide_Wide_Character
!               and then (not RTU_Loaded (Interfaces_C)
!                           or else Enclosing_Lib_Unit_Entity (U_Type)
!                                     /= RTU_Entity (Interfaces_C))
!             then
                 Rewrite (N, Build_String_Put_Image_Call (N));
                 Analyze (N);
                 return;
  
              elsif Is_Array_Type (U_Type) then
!                Pname := Cached_Attribute_Ops.Put_Image_Map.Get (U_Type);
!                Cached_Attribute_Ops.Validate_Cached_Candidate
!                  (Pname, Attr_Ref => N);
!                if No (Pname) then
!                   declare
!                      procedure Build_And_Insert_Array_Put_Image_Proc is
!                        new Build_And_Insert_Type_Attr_Subp
!                              (Build_Array_Put_Image_Procedure);
! 
!                   begin
!                      Build_And_Insert_Array_Put_Image_Proc
!                        (Typ      => U_Type,
!                         Decl     => Decl,
!                            Subp     => Pname,
!                            Attr_Ref => N);
!                   end;
! 
!                   Cached_Attribute_Ops.Put_Image_Map.Set (U_Type, Pname);
!                end if;
  
              --  Tagged type case, use the primitive Put_Image function. Note
              --  that this will dispatch in the class-wide case which is what we
*************** package body Exp_Attr is
*** 5959,5967 ****
  
              else
                 pragma Assert (Is_Record_Type (U_Type));
!                Build_Record_Put_Image_Procedure
!                  (Loc, Full_Base (U_Type), Decl, Pname);
!                Insert_Action (N, Decl);
              end if;
           end if;
  
--- 6188,6216 ----
  
              else
                 pragma Assert (Is_Record_Type (U_Type));
!                declare
!                   Base_Typ : constant Entity_Id := Full_Base (U_Type);
!                begin
!                   Pname := Cached_Attribute_Ops.Put_Image_Map.Get (Base_Typ);
!                   Cached_Attribute_Ops.Validate_Cached_Candidate
!                     (Pname, Attr_Ref => N);
!                   if No (Pname) then
!                      declare
!                         procedure Build_And_Insert_Record_Put_Image_Proc is
!                           new Build_And_Insert_Type_Attr_Subp
!                                 (Build_Record_Put_Image_Procedure);
! 
!                      begin
!                         Build_And_Insert_Record_Put_Image_Proc
!                           (Typ      => Base_Typ,
!                            Decl     => Decl,
!                            Subp     => Pname,
!                            Attr_Ref => N);
!                      end;
! 
!                      Cached_Attribute_Ops.Put_Image_Map.Set (Base_Typ, Pname);
!                   end if;
!                end;
              end if;
           end if;
  
*************** package body Exp_Attr is
*** 6034,6043 ****
  
        when Attribute_Reduce =>
           declare
!             Loc : constant Source_Ptr := Sloc (N);
!             E1  : constant Node_Id    := First (Expressions (N));
!             E2  : constant Node_Id    := Next (E1);
!             Bnn : constant Entity_Id  := Make_Temporary (Loc, 'B', N);
  
              Accum_Typ : Entity_Id := Empty;
              New_Loop  : Node_Id;
--- 6283,6291 ----
  
        when Attribute_Reduce =>
           declare
!             E1  : constant Node_Id   := First (Exprs);
!             E2  : constant Node_Id   := Next (E1);
!             Bnn : constant Entity_Id := Make_Temporary (Loc, 'B', N);
  
              Accum_Typ : Entity_Id := Empty;
              New_Loop  : Node_Id;
*************** package body Exp_Attr is
*** 6058,6063 ****
--- 6306,6312 ----
  
              begin
                 if Nkind (E1) = N_Attribute_Reference then
+                   Accum_Typ := Base_Type (Entity (Prefix (E1)));
                    Stat := Make_Assignment_Statement (Loc,
                              Name => New_Occurrence_Of (Bnn, Loc),
                              Expression => Make_Attribute_Reference (Loc,
*************** package body Exp_Attr is
*** 6068,6079 ****
--- 6317,6331 ----
                                  Comp)));
  
                 elsif Ekind (Entity (E1)) = E_Procedure then
+                   Accum_Typ := Etype (First_Formal (Entity (E1)));
                    Stat := Make_Procedure_Call_Statement (Loc,
                              Name => New_Occurrence_Of (Entity (E1), Loc),
                                 Parameter_Associations => New_List (
                                   New_Occurrence_Of (Bnn, Loc),
                                   Comp));
+ 
                 else
+                   Accum_Typ := Etype (Entity (E1));
                    Stat := Make_Assignment_Statement (Loc,
                              Name => New_Occurrence_Of (Bnn, Loc),
                              Expression => Make_Function_Call (Loc,
*************** package body Exp_Attr is
*** 6083,6088 ****
--- 6335,6362 ----
                                  Comp)));
                 end if;
  
+                --  Try to cope if E1 is wrong because it is an overloaded
+                --  subprogram that happens to be the first candidate
+                --  on a homonym chain, but that resolution candidate turns
+                --  out to be the wrong one.
+                --  This workaround usually gets the right type, but it can
+                --  yield the wrong subtype of that type.
+ 
+                if Base_Type (Accum_Typ) /= Base_Type (Etype (N)) then
+                   Accum_Typ := Etype (N);
+                end if;
+ 
+                --  Try to cope with wrong E1 when Etype (N) doesn't help
+                if Is_Universal_Numeric_Type (Accum_Typ) then
+                   if Is_Array_Type (Etype (Prefix (N))) then
+                      Accum_Typ := Component_Type (Etype (Prefix (N)));
+                   else
+                      --  Further hackery can be added here when there is a
+                      --  demonstrated need.
+                      null;
+                   end if;
+                end if;
+ 
                 return Stat;
              end Build_Stat;
  
*************** package body Exp_Attr is
*** 6133,6142 ****
                        End_Label => Empty,
                        Statements =>
                          New_List (Build_Stat (Relocate_Node (Expr))));
- 
-                   --  Look at the context to find the type.
- 
-                   Accum_Typ := Etype (N);
                 end;
  
              else
--- 6407,6412 ----
*************** package body Exp_Attr is
*** 6152,6161 ****
                 begin
                    Iter :=
                      Make_Iterator_Specification (Loc,
!                     Defining_Identifier => Elem,
!                     Name => Relocate_Node (Prefix (N)),
!                     Subtype_Indication => Empty);
!                   Set_Of_Present (Iter);
  
                    New_Loop := Make_Loop_Statement (Loc,
                      Iteration_Scheme =>
--- 6422,6431 ----
                 begin
                    Iter :=
                      Make_Iterator_Specification (Loc,
!                       Defining_Identifier => Elem,
!                       Subtype_Indication  => Empty,
!                       Of_Present          => True,
!                       Name                => Relocate_Node (Prefix (N)));
  
                    New_Loop := Make_Loop_Statement (Loc,
                      Iteration_Scheme =>
*************** package body Exp_Attr is
*** 6166,6205 ****
                        Statements => New_List (
                          Build_Stat (New_Occurrence_Of (Elem, Loc))));
  
-                   --  Look at the prefix to find the type. This is
-                   --  modeled on Analyze_Iterator_Specification in Sem_Ch5.
- 
-                   declare
-                      Ptyp : constant Entity_Id :=
-                               Base_Type (Etype (Prefix (N)));
- 
-                   begin
-                      if Is_Array_Type (Ptyp) then
-                         Accum_Typ := Component_Type (Ptyp);
- 
-                      elsif Has_Aspect (Ptyp, Aspect_Iterable) then
-                         declare
-                            Element : constant Entity_Id :=
-                                        Get_Iterable_Type_Primitive
-                                          (Ptyp, Name_Element);
-                         begin
-                            if Present (Element) then
-                               Accum_Typ := Etype (Element);
-                            end if;
-                         end;
- 
-                      else
-                         declare
-                            Element : constant Node_Id :=
-                                        Find_Value_Of_Aspect
-                                          (Ptyp, Aspect_Iterator_Element);
-                         begin
-                            if Present (Element) then
-                               Accum_Typ := Entity (Element);
-                            end if;
-                         end;
-                      end if;
-                   end;
                 end;
              end if;
  
--- 6436,6441 ----
*************** package body Exp_Attr is
*** 6224,6230 ****
           P_Type  : constant Entity_Id := Entity (Pref);
           B_Type  : constant Entity_Id := Base_Type (P_Type);
           U_Type  : constant Entity_Id := Underlying_Type (P_Type);
-          Has_TSS : Boolean := False;
           Pname   : Entity_Id;
           Decl    : Node_Id;
           Prag    : Node_Id;
--- 6460,6465 ----
*************** package body Exp_Attr is
*** 6248,6254 ****
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Sloc (N),
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, B_Type);
              return;
--- 6483,6489 ----
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Loc,
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, B_Type);
              return;
*************** package body Exp_Attr is
*** 6258,6267 ****
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Read, N);
  
!          if Present (Pname) then
!             Has_TSS := True;
  
-          else
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Read (stream, Item)
--- 6493,6500 ----
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Read, N);
  
!          if No (Pname) then
  
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Read (stream, Item)
*************** package body Exp_Attr is
*** 6322,6328 ****
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Sloc (N),
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, B_Type);
                 return;
--- 6555,6561 ----
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Loc,
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, B_Type);
                 return;
*************** package body Exp_Attr is
*** 6359,6366 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Read_Procedure (U_Type, Decl, Pname);
!                Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Read function. Note that
              --  this will dispatch in the class-wide case which is what we want
--- 6592,6608 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                declare
!                   procedure Build_And_Insert_Array_Read_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Array_Read_Procedure);
!                begin
!                   Build_And_Insert_Array_Read_Proc
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
  
              --  Tagged type case, use the primitive Read function. Note that
              --  this will dispatch in the class-wide case which is what we want
*************** package body Exp_Attr is
*** 6391,6412 ****
                    return;
                 end if;
  
!                if Has_Defaulted_Discriminants (U_Type) then
!                   Build_Mutable_Record_Read_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
!                else
!                   Build_Record_Read_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
!                end if;
  
!                Insert_Action (N, Decl);
              end if;
           end if;
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Has_TSS then
!             Cached_Streaming_Ops.Read_Map.Set (P_Type, Pname);
           end if;
        end Read;
  
--- 6633,6675 ----
                    return;
                 end if;
  
!                declare
!                   procedure Build_Record_Read_Proc
!                     (Typ  : Entity_Id;
!                      Decl : out Node_Id;
!                      Subp : out Entity_Id);
  
!                   procedure Build_Record_Read_Proc
!                     (Typ  : Entity_Id;
!                      Decl : out Node_Id;
!                      Subp : out Entity_Id) is
!                   begin
!                      if Has_Defaulted_Discriminants (Typ) then
!                         Build_Mutable_Record_Read_Procedure
!                           (Typ, Decl, Subp);
!                      else
!                         Build_Record_Read_Procedure
!                           (Typ, Decl, Subp);
!                      end if;
!                   end Build_Record_Read_Proc;
! 
!                   procedure Build_And_Insert_Record_Read_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Record_Read_Proc);
!                begin
!                   Build_And_Insert_Record_Read_Proc
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
              end if;
           end if;
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Read_Map.Set (P_Type, Pname);
           end if;
        end Read;
  
*************** package body Exp_Attr is
*** 7352,7358 ****
           --  Floating-point case. This case is handled by the Valid attribute
           --  code in the floating-point attribute run-time library.
  
!          if Is_Floating_Point_Type (Ptyp) then
              Float_Valid : declare
                 Pkg : RE_Id;
                 Ftp : Entity_Id;
--- 7615,7621 ----
           --  Floating-point case. This case is handled by the Valid attribute
           --  code in the floating-point attribute run-time library.
  
!          if Is_Floating_Point_Type (PBtyp) then
              Float_Valid : declare
                 Pkg : RE_Id;
                 Ftp : Entity_Id;
*************** package body Exp_Attr is
*** 7377,7469 ****
              --  Start of processing for Float_Valid
  
              begin
!                --  The C back end handles Valid for floating-point types
! 
!                if Modify_Tree_For_C then
!                   Analyze_And_Resolve (Pref, Ptyp);
!                   Set_Etype (N, Standard_Boolean);
!                   Set_Analyzed (N);
! 
!                else
!                   Find_Fat_Info (Ptyp, Ftp, Pkg);
  
!                   --  If the prefix is a reverse SSO component, or is possibly
!                   --  unaligned, first create a temporary copy that is in
!                   --  native SSO, and properly aligned. Make it Volatile to
!                   --  prevent folding in the back-end. Note that we use an
!                   --  intermediate constrained string type to initialize the
!                   --  temporary, as the value at hand might be invalid, and in
!                   --  that case it cannot be copied using a floating point
!                   --  register.
  
!                   if In_Reverse_Storage_Order_Object (Pref)
!                     or else Is_Possibly_Unaligned_Object (Pref)
!                   then
!                      declare
!                         Temp : constant Entity_Id :=
!                                  Make_Temporary (Loc, 'F');
  
!                         Fat_S : constant Entity_Id :=
!                                   Get_Fat_Entity (Name_S);
!                         --  Constrained string subtype of appropriate size
  
!                         Fat_P : constant Entity_Id :=
!                                   Get_Fat_Entity (Name_P);
!                         --  Access to Fat_S
  
!                         Decl : constant Node_Id :=
!                                  Make_Object_Declaration (Loc,
                                     Defining_Identifier => Temp,
                                     Aliased_Present     => True,
!                                    Object_Definition   =>
!                                      New_Occurrence_Of (Ptyp, Loc));
  
!                      begin
!                         Set_Aspect_Specifications (Decl, New_List (
!                           Make_Aspect_Specification (Loc,
!                             Identifier =>
!                               Make_Identifier (Loc, Name_Volatile))));
  
!                         Insert_Actions (N,
!                           New_List (
!                             Decl,
  
!                             Make_Assignment_Statement (Loc,
!                               Name =>
!                                 Make_Explicit_Dereference (Loc,
!                                   Prefix =>
!                                     Unchecked_Convert_To (Fat_P,
!                                       Make_Attribute_Reference (Loc,
!                                         Prefix =>
!                                           New_Occurrence_Of (Temp, Loc),
!                                         Attribute_Name =>
!                                           Name_Unrestricted_Access))),
!                               Expression =>
!                                 Unchecked_Convert_To (Fat_S,
!                                   Relocate_Node (Pref)))),
  
!                           Suppress => All_Checks);
  
!                         Rewrite (Pref, New_Occurrence_Of (Temp, Loc));
!                      end;
!                   end if;
  
!                   --  We now have an object of the proper endianness and
!                   --  alignment, and can construct a Valid attribute.
  
!                   --  We make sure the prefix of this valid attribute is
!                   --  marked as not coming from source, to avoid losing
!                   --  warnings from 'Valid looking like a possible update.
  
!                   Set_Comes_From_Source (Pref, False);
  
!                   Expand_Fpt_Attribute
!                     (N, Pkg, Name_Valid,
!                      New_List (
!                        Make_Attribute_Reference (Loc,
!                          Prefix         => Unchecked_Convert_To (Ftp, Pref),
!                          Attribute_Name => Name_Unrestricted_Access)));
!                end if;
  
                 --  One more task, we still need a range check. Required
                 --  only if we have a constraint, since the Valid routine
--- 7640,7723 ----
              --  Start of processing for Float_Valid
  
              begin
!                Find_Fat_Info (PBtyp, Ftp, Pkg);
  
!                --  If the prefix is a reverse SSO component, or is possibly
!                --  unaligned, first create a temporary copy that is in
!                --  native SSO, and properly aligned. Make it Volatile to
!                --  prevent folding in the back-end. Note that we use an
!                --  intermediate constrained string type to initialize the
!                --  temporary, as the value at hand might be invalid, and in
!                --  that case it cannot be copied using a floating point
!                --  register.
  
!                if In_Reverse_Storage_Order_Object (Pref)
!                  or else Is_Possibly_Unaligned_Object (Pref)
!                then
!                   declare
!                      Temp : constant Entity_Id :=
!                               Make_Temporary (Loc, 'F');
  
!                      Fat_S : constant Entity_Id :=
!                                Get_Fat_Entity (Name_S);
!                      --  Constrained string subtype of appropriate size
  
!                      Fat_P : constant Entity_Id :=
!                                Get_Fat_Entity (Name_P);
!                      --  Access to Fat_S
  
!                      Decl : constant Node_Id :=
!                               Make_Object_Declaration (Loc,
                                     Defining_Identifier => Temp,
                                     Aliased_Present     => True,
!                                 Object_Definition   =>
!                                   New_Occurrence_Of (Ptyp, Loc));
  
!                   begin
!                      Set_Aspect_Specifications (Decl, New_List (
!                        Make_Aspect_Specification (Loc,
!                          Identifier =>
!                            Make_Identifier (Loc, Name_Volatile))));
  
!                      Insert_Actions (N,
!                        New_List (
!                          Decl,
  
!                          Make_Assignment_Statement (Loc,
!                            Name =>
!                              Make_Explicit_Dereference (Loc,
!                                Prefix =>
!                                  Unchecked_Convert_To (Fat_P,
!                                    Make_Attribute_Reference (Loc,
!                                      Prefix =>
!                                        New_Occurrence_Of (Temp, Loc),
!                                      Attribute_Name =>
!                                        Name_Unrestricted_Access))),
!                            Expression =>
!                              Unchecked_Convert_To (Fat_S,
!                                Relocate_Node (Pref)))),
  
!                        Suppress => All_Checks);
  
!                      Rewrite (Pref, New_Occurrence_Of (Temp, Loc));
!                   end;
!                end if;
  
!                --  We now have an object of the proper endianness and
!                --  alignment, and can construct a Valid attribute.
  
!                --  We make sure the prefix of this valid attribute is
!                --  marked as not coming from source, to avoid losing
!                --  warnings from 'Valid looking like a possible update.
  
!                Set_Comes_From_Source (Pref, False);
  
!                Expand_Fpt_Attribute
!                  (N, Pkg, Name_Valid,
!                   New_List (
!                     Make_Attribute_Reference (Loc,
!                       Prefix         => Unchecked_Convert_To (Ftp, Pref),
!                       Attribute_Name => Name_Unrestricted_Access)));
  
                 --  One more task, we still need a range check. Required
                 --  only if we have a constraint, since the Valid routine
*************** package body Exp_Attr is
*** 7845,7851 ****
               Expressions    => New_List (
                 Make_Function_Call (Loc,
                   Name =>
!                    New_Occurrence_Of (RTE (RE_Wide_String_To_String), Loc),
  
                   Parameter_Associations => New_List (
                     Relocate_Node (First (Exprs)),
--- 8099,8108 ----
               Expressions    => New_List (
                 Make_Function_Call (Loc,
                   Name =>
!                    New_Occurrence_Of
!                      (RTE (if Is_User_Defined_Enumeration_Type (Typ)
!                            then RE_Enum_Wide_String_To_String
!                            else RE_Wide_String_To_String), Loc),
  
                   Parameter_Associations => New_List (
                     Relocate_Node (First (Exprs)),
*************** package body Exp_Attr is
*** 7877,7883 ****
                 Make_Function_Call (Loc,
                   Name                   =>
                     New_Occurrence_Of
!                      (RTE (RE_Wide_Wide_String_To_String), Loc),
  
                   Parameter_Associations => New_List (
                     Relocate_Node (First (Exprs)),
--- 8134,8142 ----
                 Make_Function_Call (Loc,
                   Name                   =>
                     New_Occurrence_Of
!                      (RTE (if Is_User_Defined_Enumeration_Type (Typ)
!                            then RE_Enum_Wide_Wide_String_To_String
!                            else RE_Wide_Wide_String_To_String), Loc),
  
                   Parameter_Associations => New_List (
                     Relocate_Node (First (Exprs)),
*************** package body Exp_Attr is
*** 7914,7920 ****
        when Attribute_Write => Write : declare
           P_Type  : constant Entity_Id := Entity (Pref);
           U_Type  : constant Entity_Id := Underlying_Type (P_Type);
-          Has_TSS : Boolean := False;
           Pname   : Entity_Id;
           Decl    : Node_Id;
           Prag    : Node_Id;
--- 8173,8178 ----
*************** package body Exp_Attr is
*** 7936,7942 ****
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Sloc (N),
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, U_Type);
              return;
--- 8194,8200 ----
  
           if Restriction_Active (No_Streams) then
              Rewrite (N,
!               Make_Raise_Program_Error (Loc,
                  Reason => PE_Stream_Operation_Not_Allowed));
              Set_Etype (N, U_Type);
              return;
*************** package body Exp_Attr is
*** 7946,7955 ****
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Write, N);
  
!          if Present (Pname) then
!             Has_TSS := True;
  
-          else
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Output (stream, Item)
--- 8204,8211 ----
  
           Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Write, N);
  
!          if No (Pname) then
  
              --  If there is a Stream_Convert pragma, use it, we rewrite
  
              --     sourcetyp'Output (stream, Item)
*************** package body Exp_Attr is
*** 7992,7998 ****
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Sloc (N),
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, U_Type);
                 return;
--- 8248,8254 ----
                 --  case where a No_Streams restriction is active.
  
                 Rewrite (N,
!                  Make_Raise_Program_Error (Loc,
                     Reason => PE_Stream_Operation_Not_Allowed));
                 Set_Etype (N, U_Type);
                 return;
*************** package body Exp_Attr is
*** 8007,8014 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Write_Procedure (U_Type, Decl, Pname);
!                Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Write function. Note that
              --  this will dispatch in the class-wide case which is what we want
--- 8263,8279 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                declare
!                   procedure Build_And_Insert_Array_Write_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Array_Write_Procedure);
!                begin
!                   Build_And_Insert_Array_Write_Proc
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
  
              --  Tagged type case, use the primitive Write function. Note that
              --  this will dispatch in the class-wide case which is what we want
*************** package body Exp_Attr is
*** 8046,8060 ****
                    end if;
                 end if;
  
!                if Has_Defaulted_Discriminants (U_Type) then
!                   Build_Mutable_Record_Write_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
!                else
!                   Build_Record_Write_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
!                end if;
  
!                Insert_Action (N, Decl);
              end if;
           end if;
  
--- 8311,8346 ----
                    end if;
                 end if;
  
!                declare
!                   procedure Build_Record_Write_Proc
!                     (Typ  : Entity_Id;
!                      Decl : out Node_Id;
!                      Subp : out Entity_Id);
  
!                   procedure Build_Record_Write_Proc
!                     (Typ  : Entity_Id;
!                      Decl : out Node_Id;
!                      Subp : out Entity_Id) is
!                   begin
!                      if Has_Defaulted_Discriminants (Typ) then
!                         Build_Mutable_Record_Write_Procedure
!                           (Typ, Decl, Subp);
!                      else
!                         Build_Record_Write_Procedure
!                           (Typ, Decl, Subp);
!                      end if;
!                   end Build_Record_Write_Proc;
! 
!                   procedure Build_And_Insert_Record_Write_Proc is
!                     new Build_And_Insert_Type_Attr_Subp
!                           (Build_Record_Write_Proc);
!                begin
!                   Build_And_Insert_Record_Write_Proc
!                     (Typ      => Full_Base (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
!                end;
              end if;
           end if;
  
*************** package body Exp_Attr is
*** 8062,8069 ****
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Has_TSS then
!             Cached_Streaming_Ops.Write_Map.Set (P_Type, Pname);
           end if;
        end Write;
  
--- 8348,8355 ----
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Write_Map.Set (P_Type, Pname);
           end if;
        end Write;
  
*************** package body Exp_Attr is
*** 8138,8143 ****
--- 8424,8430 ----
           | Attribute_Small_Numerator
           | Attribute_Storage_Unit
           | Attribute_Stub_Type
+          | Attribute_Super
           | Attribute_System_Allocator_Alignment
           | Attribute_Target_Name
           | Attribute_Type_Class
*************** package body Exp_Attr is
*** 8640,8679 ****
        Nam      : TSS_Name_Type;
        Attr_Ref : Node_Id) return Entity_Id
     is
- 
-       function In_Available_Context (Ent : Entity_Id) return Boolean;
-       --  Ent is a candidate result for Find_Stream_Subprogram.
-       --  If, for example, a subprogram is declared within a case
-       --  alternative then Gigi does not want to see a call to it from
-       --  outside of the case alternative. Compare placement of Ent and
-       --  Attr_Ref to prevent this situation (by returning False).
- 
-       --------------------------
-       -- In_Available_Context --
-       --------------------------
- 
-       function In_Available_Context (Ent : Entity_Id) return Boolean is
-          Decl : constant Node_Id := Enclosing_Declaration (Ent);
-       begin
-          if Has_Declarations (Parent (Decl)) then
-             return In_Subtree (Attr_Ref, Root => Parent (Decl));
-          elsif Is_List_Member (Decl) then
-             declare
-                List_Elem : Node_Id := Next (Decl);
-             begin
-                while Present (List_Elem) loop
-                   if In_Subtree (Attr_Ref, Root => List_Elem) then
-                      return True;
-                   end if;
-                   Next (List_Elem);
-                end loop;
-                return False;
-             end;
-          else
-             return False; --  Can this occur ???
-          end if;
-       end In_Available_Context;
- 
        --  Local declarations
  
        Base_Typ : constant Entity_Id := Base_Type (Typ);
--- 8927,8932 ----
*************** package body Exp_Attr is
*** 8699,8726 ****
        end if;
  
        if Nam = TSS_Stream_Read then
!          Ent := Cached_Streaming_Ops.Read_Map.Get (Typ);
        elsif Nam = TSS_Stream_Write then
!          Ent := Cached_Streaming_Ops.Write_Map.Get (Typ);
        elsif Nam = TSS_Stream_Input then
!          Ent := Cached_Streaming_Ops.Input_Map.Get (Typ);
        elsif Nam = TSS_Stream_Output then
!          Ent := Cached_Streaming_Ops.Output_Map.Get (Typ);
        end if;
  
!       if Present (Ent) then
!          --  Can't reuse Ent if it is no longer in scope
! 
!          if In_Open_Scopes (Scope (Ent))
  
!            --  The preceding In_Open_Scopes test may not suffice if
!            --  case alternatives are involved.
!            and then In_Available_Context (Ent)
!          then
!             return Ent;
!          else
!             Ent := Empty;
!          end if;
        end if;
  
        --  Stream attributes for strings are expanded into library calls. The
--- 8952,8971 ----
        end if;
  
        if Nam = TSS_Stream_Read then
!          Ent := Cached_Attribute_Ops.Read_Map.Get (Typ);
        elsif Nam = TSS_Stream_Write then
!          Ent := Cached_Attribute_Ops.Write_Map.Get (Typ);
        elsif Nam = TSS_Stream_Input then
!          Ent := Cached_Attribute_Ops.Input_Map.Get (Typ);
        elsif Nam = TSS_Stream_Output then
!          Ent := Cached_Attribute_Ops.Output_Map.Get (Typ);
        end if;
  
!       Cached_Attribute_Ops.Validate_Cached_Candidate
!         (Subp => Ent, Attr_Ref => Attr_Ref);
  
!       if Present (Ent) then
!          return Ent;
        end if;
  
        --  Stream attributes for strings are expanded into library calls. The
*************** package body Exp_Attr is
*** 9181,9188 ****
  
        function Is_GCC_Target return Boolean is
        begin
!          return not CodePeer_Mode
!            and then not Modify_Tree_For_C;
        end Is_GCC_Target;
  
     --  Start of processing for Is_Inline_Floating_Point_Attribute
--- 9426,9432 ----
  
        function Is_GCC_Target return Boolean is
        begin
!          return not CodePeer_Mode;
        end Is_GCC_Target;
  
     --  Start of processing for Is_Inline_Floating_Point_Attribute
*************** package body Exp_Attr is
*** 9211,9214 ****
--- 9455,9474 ----
            or else Id = Attribute_Truncation;
     end Is_Inline_Floating_Point_Attribute;
  
+    --------------------------------------
+    -- Is_User_Defined_Enumeration_Type --
+    --------------------------------------
+ 
+    function Is_User_Defined_Enumeration_Type (Typ : Entity_Id) return Boolean
+    is
+       Rtyp : constant Entity_Id := Root_Type (Base_Type (Typ));
+ 
+    begin
+       return Is_Enumeration_Type (Rtyp)
+         and then Rtyp not in Standard_Boolean
+                            | Standard_Character
+                            | Standard_Wide_Character
+                            | Standard_Wide_Wide_Character;
+    end Is_User_Defined_Enumeration_Type;
+ 
  end Exp_Attr;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_attr.ads gcc-15.1.0/gcc/ada/exp_attr.ads
*** gcc-14.2.0/gcc/ada/exp_attr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_attr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_cg.adb gcc-15.1.0/gcc/ada/exp_cg.adb
*** gcc-14.2.0/gcc/ada/exp_cg.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_cg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_CG is
*** 125,138 ****
        for J in Call_Graph_Nodes.First .. Call_Graph_Nodes.Last loop
           N := Call_Graph_Nodes.Table (J);
  
!          --  No action needed for subprogram calls removed by the expander
!          --  (for example, calls to ignored ghost entities).
! 
!          if Nkind (N) = N_Null_Statement then
!             pragma Assert (Nkind (Original_Node (N)) in N_Subprogram_Call);
!             null;
! 
!          elsif Nkind (N) in N_Subprogram_Call then
              Write_Call_Info (N);
  
           else pragma Assert (Nkind (N) = N_Defining_Identifier);
--- 125,131 ----
        for J in Call_Graph_Nodes.First .. Call_Graph_Nodes.Last loop
           N := Call_Graph_Nodes.Table (J);
  
!          if Nkind (N) in N_Subprogram_Call then
              Write_Call_Info (N);
  
           else pragma Assert (Nkind (N) = N_Defining_Identifier);
*************** package body Exp_CG is
*** 358,364 ****
  
     procedure Register_CG_Node (N : Node_Id) is
     begin
!       if Nkind (N) in N_Subprogram_Call then
           if Current_Scope = Main_Unit_Entity
             or else Entity_Is_In_Main_Unit (Current_Scope)
           then
--- 351,363 ----
  
     procedure Register_CG_Node (N : Node_Id) is
     begin
!       --  Skip ignored ghost calls that will be removed by the expander
! 
!       if Is_Ignored_Ghost_Node (N) then
!          null;
! 
!       elsif Nkind (N) in N_Subprogram_Call then
! 
           if Current_Scope = Main_Unit_Entity
             or else Entity_Is_In_Main_Unit (Current_Scope)
           then
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_cg.ads gcc-15.1.0/gcc/ada/exp_cg.ads
*** gcc-14.2.0/gcc/ada/exp_cg.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_cg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2010-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2010-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch10.ads gcc-15.1.0/gcc/ada/exp_ch10.ads
*** gcc-14.2.0/gcc/ada/exp_ch10.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch10.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch11.adb gcc-15.1.0/gcc/ada/exp_ch11.adb
*** gcc-14.2.0/gcc/ada/exp_ch11.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch11.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch11 is
*** 552,558 ****
  
           --  Nothing to do if no handlers requiring the goto transformation
  
!          if not (Local_Expansion_Required) then
              return;
           end if;
  
--- 552,558 ----
  
           --  Nothing to do if no handlers requiring the goto transformation
  
!          if not Local_Expansion_Required then
              return;
           end if;
  
*************** package body Exp_Ch11 is
*** 1103,1114 ****
     --  Start of processing for Expand_N_Exception_Declaration
  
     begin
-       --  Nothing to do when generating C code
- 
-       if Modify_Tree_For_C then
-          return;
-       end if;
- 
        --  Definition of the external name: nam : constant String := "A.B.NAME";
  
        Ex_Id :=
--- 1103,1108 ----
*************** package body Exp_Ch11 is
*** 1307,1312 ****
--- 1301,1329 ----
           pragma Assert (not Is_Thunk (Current_Scope));
           Expand_Cleanup_Actions (Parent (N));
        end if;
+ 
+       if Present (Finally_Statements (N)) and then Abort_Allowed then
+          if Exceptions_OK then
+             Set_Finally_Statements
+               (N,
+                New_List
+                  (Build_Runtime_Call (Sloc (N), RE_Abort_Defer),
+                   Build_Abort_Undefer_Block
+                     (Sloc (N),
+                      Stmts   => Finally_Statements (N),
+                      Context => N)));
+          else
+             Prepend_To
+               (Finally_Statements (N),
+                Build_Runtime_Call (Sloc (N), RE_Abort_Defer));
+ 
+             Append_To
+               (Finally_Statements (N),
+                Build_Runtime_Call (Sloc (N), RE_Abort_Undefer));
+          end if;
+ 
+          Analyze_List (Finally_Statements (N));
+       end if;
     end Expand_N_Handled_Sequence_Of_Statements;
  
     -------------------------------------
*************** package body Exp_Ch11 is
*** 1989,1994 ****
--- 2006,2013 ----
              Add_Str_To_Name_Buffer ("PE_Overlaid_Controlled_Object");
           when PE_Potentially_Blocking_Operation =>
              Add_Str_To_Name_Buffer ("PE_Potentially_Blocking_Operation");
+          when PE_Raise_Check_Failed =>
+             Add_Str_To_Name_Buffer ("PE_Raise_Check");
           when PE_Stream_Operation_Not_Allowed =>
              Add_Str_To_Name_Buffer ("PE_Stream_Operation_Not_Allowed");
           when PE_Stubbed_Subprogram_Called =>
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch11.ads gcc-15.1.0/gcc/ada/exp_ch11.ads
*** gcc-14.2.0/gcc/ada/exp_ch11.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch11.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch12.adb gcc-15.1.0/gcc/ada/exp_ch12.adb
*** gcc-14.2.0/gcc/ada/exp_ch12.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch12.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch12.ads gcc-15.1.0/gcc/ada/exp_ch12.ads
*** gcc-14.2.0/gcc/ada/exp_ch12.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch12.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch13.adb gcc-15.1.0/gcc/ada/exp_ch13.adb
*** gcc-14.2.0/gcc/ada/exp_ch13.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch13.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch13 is
*** 322,328 ****
           return;
        end if;
  
!       --  Use the base type to perform the check for finalization master
  
        Typ := Etype (Expr);
  
--- 322,328 ----
           return;
        end if;
  
!       --  Use the base type to perform the check for finalization collection
  
        Typ := Etype (Expr);
  
*************** package body Exp_Ch13 is
*** 338,349 ****
           Typ := Full_View (Typ);
        end if;
  
!       --  Do not create a custom Deallocate when freeing an object with
!       --  suppressed finalization. In such cases the object is never attached
!       --  to a master, so it does not need to be detached. Use a regular free
!       --  statement instead.
  
!       if No (Finalization_Master (Typ)) then
           return;
        end if;
  
--- 338,348 ----
           Typ := Full_View (Typ);
        end if;
  
!       --  Do not create a custom Deallocate when the object has not been
!       --  attached to a collection, since it does not need to be detached.
!       --  Use a regular free statement instead.
  
!       if No (Finalization_Collection (Typ)) then
           return;
        end if;
  
*************** package body Exp_Ch13 is
*** 359,379 ****
           declare
              Expr_Typ : constant Entity_Id  := Etype (Expr);
              Loc      : constant Source_Ptr := Sloc (N);
!             New_Expr : Node_Id;
!             Temp_Id  : Entity_Id;
  
           begin
-             Temp_Id := Make_Temporary (Loc, 'T');
              Insert_Action (N,
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Temp_Id,
                  Object_Definition   => New_Occurrence_Of (Expr_Typ, Loc),
                  Expression          => Relocate_Node (Expr)));
  
!             New_Expr := New_Occurrence_Of (Temp_Id, Loc);
!             Set_Etype (New_Expr, Expr_Typ);
! 
!             Set_Expression (N, New_Expr);
           end;
        end if;
  
--- 358,373 ----
           declare
              Expr_Typ : constant Entity_Id  := Etype (Expr);
              Loc      : constant Source_Ptr := Sloc (N);
!             Temp_Id  : constant Entity_Id  := Make_Temporary (Loc, 'T');
  
           begin
              Insert_Action (N,
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Temp_Id,
                  Object_Definition   => New_Occurrence_Of (Expr_Typ, Loc),
                  Expression          => Relocate_Node (Expr)));
  
!             Set_Expression (N, New_Occurrence_Of (Temp_Id, Loc));
           end;
        end if;
  
*************** package body Exp_Ch13 is
*** 381,387 ****
        --  ensures that the hidden list header will be deallocated along with
        --  the actual object.
  
!       Build_Allocate_Deallocate_Proc (N, Is_Allocate => False);
     end Expand_N_Free_Statement;
  
     ----------------------------
--- 375,381 ----
        --  ensures that the hidden list header will be deallocated along with
        --  the actual object.
  
!       Build_Allocate_Deallocate_Proc (N);
     end Expand_N_Free_Statement;
  
     ----------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch13.ads gcc-15.1.0/gcc/ada/exp_ch13.ads
*** gcc-14.2.0/gcc/ada/exp_ch13.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch13.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch2.adb gcc-15.1.0/gcc/ada/exp_ch2.adb
*** gcc-14.2.0/gcc/ada/exp_ch2.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch2.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sinfo.Utils;    use Sinfo.Utils;
*** 51,57 ****
--- 51,59 ----
  with Sinput;         use Sinput;
  with Snames;         use Snames;
  with Stand;
+ with Stringt;        use Stringt;
  with Tbuild;         use Tbuild;
+ with Uintp;           use Uintp;
  
  package body Exp_Ch2 is
  
*************** package body Exp_Ch2 is
*** 721,726 ****
--- 723,734 ----
  
     procedure Expand_N_Interpolated_String_Literal (N : Node_Id) is
  
+       procedure Apply_Static_Length_Check (Typ : Entity_Id);
+       --  Tries to determine statically whether the length of the interpolated
+       --  string N exceeds the length of the target subtype Typ. If it can be
+       --  determined at compile time then an N_Raise_Constraint_Error node
+       --  replaces the interpolated string N, and a warning message is issued.
+ 
        function Build_Interpolated_String_Image (N : Node_Id) return Node_Id;
        --  Build the following Expression_With_Actions node:
        --     do
*************** package body Exp_Ch2 is
*** 733,738 ****
--- 741,787 ----
        --        Destroy (Sink);
        --     in Result end
  
+       -------------------------------
+       -- Apply_Static_Length_Check --
+       -------------------------------
+ 
+       procedure Apply_Static_Length_Check (Typ : Entity_Id) is
+          HB         : constant Node_Id := High_Bound (First_Index (Typ));
+          LB         : constant Node_Id := Low_Bound (First_Index (Typ));
+          Str_Elem   : Node_Id;
+          Str_Length : Nat;
+          Typ_Length : Nat;
+ 
+       begin
+          if Compile_Time_Known_Value (LB)
+            and then Compile_Time_Known_Value (HB)
+          then
+             Typ_Length := UI_To_Int (Expr_Value (HB) - Expr_Value (LB) + 1);
+ 
+             --  Compute the minimum length of the interpolated string: the
+             --  length of the concatenation of the string literals composing
+             --  the interpolated string.
+ 
+             Str_Length := 0;
+             Str_Elem   := First (Expressions (N));
+             while Present (Str_Elem) loop
+                if Nkind (Str_Elem) = N_String_Literal then
+                   Str_Length := Str_Length + String_Length (Strval (Str_Elem));
+                end if;
+ 
+                Next (Str_Elem);
+             end loop;
+ 
+             if Str_Length > Typ_Length then
+                Apply_Compile_Time_Constraint_Error
+                  (N, "wrong length for interpolated string of}??",
+                   CE_Length_Check_Failed,
+                   Ent => Typ,
+                   Typ => Typ);
+             end if;
+          end if;
+       end Apply_Static_Length_Check;
+ 
        -------------------------------------
        -- Build_Interpolated_String_Image --
        -------------------------------------
*************** package body Exp_Ch2 is
*** 747,756 ****
                               Object_Definition =>
                                 New_Occurrence_Of (RTE (RE_Buffer_Type), Loc));
  
           Get_Id        : constant RE_Id :=
!                            (if Etype (N) = Stand.Standard_String then
                                 RE_Get
!                             elsif Etype (N) = Stand.Standard_Wide_String then
                                 RE_Wide_Get
                              else
                                 RE_Wide_Wide_Get);
--- 796,806 ----
                               Object_Definition =>
                                 New_Occurrence_Of (RTE (RE_Buffer_Type), Loc));
  
+          B_Type        : constant Entity_Id := Base_Type (Etype (N));
           Get_Id        : constant RE_Id :=
!                            (if B_Type = Stand.Standard_String then
                                 RE_Get
!                             elsif B_Type = Stand.Standard_Wide_String then
                                 RE_Wide_Get
                              else
                                 RE_Wide_Wide_Get);
*************** package body Exp_Ch2 is
*** 760,766 ****
                             Make_Object_Declaration (Loc,
                               Defining_Identifier => Result_Entity,
                               Object_Definition =>
!                                New_Occurrence_Of (Etype (N), Loc),
                               Expression =>
                                 Make_Function_Call (Loc,
                                   Name => New_Occurrence_Of (RTE (Get_Id), Loc),
--- 810,816 ----
                             Make_Object_Declaration (Loc,
                               Defining_Identifier => Result_Entity,
                               Object_Definition =>
!                                New_Occurrence_Of (B_Type, Loc),
                               Expression =>
                                 Make_Function_Call (Loc,
                                   Name => New_Occurrence_Of (RTE (Get_Id), Loc),
*************** package body Exp_Ch2 is
*** 768,773 ****
--- 818,824 ----
                                     New_Occurrence_Of (Sink_Entity, Loc))));
  
           Actions  : constant List_Id := New_List;
+          U_Type   : constant Entity_Id := Underlying_Type (Etype (N));
           Elem_Typ : Entity_Id;
           Str_Elem : Node_Id;
  
*************** package body Exp_Ch2 is
*** 810,815 ****
--- 861,879 ----
              Next (Str_Elem);
           end loop;
  
+          --  Add a type conversion to the result object declaration of custom
+          --  string types.
+ 
+          if not Is_Standard_String_Type (U_Type)
+            and then (not RTU_Loaded (Interfaces_C)
+                        or else Enclosing_Lib_Unit_Entity (U_Type)
+                                  /= RTU_Entity (Interfaces_C))
+          then
+             Set_Expression (Result_Decl,
+               Convert_To (Etype (N),
+                 Relocate_Node (Expression (Result_Decl))));
+          end if;
+ 
           Append_To (Actions, Result_Decl);
  
           return Make_Expression_With_Actions (Loc,
*************** package body Exp_Ch2 is
*** 824,831 ****
--- 888,911 ----
     --  Start of processing for Expand_N_Interpolated_String_Literal
  
     begin
+       --  If the type imposed by the context is constrained then check that
+       --  the statically known length of the interpolated string does not
+       --  exceed the length of its type.
+ 
+       if Is_Constrained (Typ) then
+          Apply_Static_Length_Check (Typ);
+ 
+          if Nkind (N) = N_Raise_Constraint_Error then
+             return;
+          end if;
+       end if;
+ 
        Rewrite (N, Build_Interpolated_String_Image (N));
        Analyze_And_Resolve (N, Typ);
+ 
+       if Is_Constrained (Typ) then
+          Apply_Length_Check (Expression (N), Typ);
+       end if;
     end Expand_N_Interpolated_String_Literal;
  
  end Exp_Ch2;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch2.ads gcc-15.1.0/gcc/ada/exp_ch2.ads
*** gcc-14.2.0/gcc/ada/exp_ch2.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch2.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch3.adb gcc-15.1.0/gcc/ada/exp_ch3.adb
*** gcc-14.2.0/gcc/ada/exp_ch3.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch3.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo;          use Einfo;
*** 32,45 ****
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
- with Expander;       use Expander;
  with Exp_Aggr;       use Exp_Aggr;
  with Exp_Atag;       use Exp_Atag;
  with Exp_Ch4;        use Exp_Ch4;
  with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Ch9;        use Exp_Ch9;
- with Exp_Dbug;       use Exp_Dbug;
  with Exp_Disp;       use Exp_Disp;
  with Exp_Dist;       use Exp_Dist;
  with Exp_Put_Image;
--- 32,43 ----
*************** with Exp_Util;       use Exp_Util;
*** 49,54 ****
--- 47,53 ----
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
  with Lib;            use Lib;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Exp_Ch3 is
*** 631,638 ****
     ---------------------------
  
     procedure Build_Array_Init_Proc (A_Type : Entity_Id; Nod : Node_Id) is
!       Comp_Type        : constant Entity_Id := Component_Type (A_Type);
!       Comp_Simple_Init : constant Boolean   :=
          Needs_Simple_Initialization
            (Typ         => Comp_Type,
             Consider_IS =>
--- 630,642 ----
     ---------------------------
  
     procedure Build_Array_Init_Proc (A_Type : Entity_Id; Nod : Node_Id) is
!       --  Obtain the corresponding mutably tagged type's parent subtype to
!       --  handle default initialization.
! 
!       Comp_Type : constant Entity_Id :=
!         Get_Corresponding_Tagged_Type_If_Present (Component_Type (A_Type));
! 
!       Comp_Simple_Init : constant Boolean :=
          Needs_Simple_Initialization
            (Typ         => Comp_Type,
             Consider_IS =>
*************** package body Exp_Ch3 is
*** 699,705 ****
              Clean_Task_Names (Comp_Type, Proc_Id);
              return
                Build_Initialization_Call
!                 (Loc          => Loc,
                   Id_Ref       => Comp,
                   Typ          => Comp_Type,
                   In_Init_Proc => True,
--- 703,709 ----
              Clean_Task_Names (Comp_Type, Proc_Id);
              return
                Build_Initialization_Call
!                 (N            => Nod,
                   Id_Ref       => Comp,
                   Typ          => Comp_Type,
                   In_Init_Proc => True,
*************** package body Exp_Ch3 is
*** 962,967 ****
--- 966,1491 ----
        end if;
     end Build_Array_Init_Proc;
  
+    ----------------------------------
+    -- Build_Default_Initialization --
+    ----------------------------------
+ 
+    function Build_Default_Initialization
+      (N          : Node_Id;
+       Typ        : Entity_Id;
+       Obj_Id     : Entity_Id;
+       For_CW     : Boolean := False;
+       Target_Ref : Node_Id := Empty) return List_Id
+    is
+       Exceptions_OK : constant Boolean :=
+                         not Restriction_Active (No_Exception_Propagation);
+       Loc           : constant Source_Ptr := Sloc (N);
+ 
+       function New_Object_Reference return Node_Id;
+       --  Return either a reference to Obj_Id or a dereference of Obj_Id
+ 
+       --------------------------
+       -- New_Object_Reference --
+       --------------------------
+ 
+       function New_Object_Reference return Node_Id is
+          Obj_Ref : Node_Id := New_Occurrence_Of (Obj_Id, Loc);
+ 
+       begin
+          if Nkind (N) = N_Object_Declaration then
+             --  The call to the type init proc or [Deep_]Finalize must not
+             --  freeze the object since the call is internally generated.
+             --  This prevents representation clauses from being rejected.
+             --  Note that the initialization call may be removed if pragma
+             --  Import is encountered or moved to the freeze actions of
+             --  the object if an address clause is encountered.
+ 
+             Set_Assignment_OK   (Obj_Ref);
+             Set_Must_Not_Freeze (Obj_Ref);
+ 
+          else pragma Assert (Nkind (N) = N_Allocator);
+             Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
+ 
+             --  If the designated subtype is unconstrained and the allocator
+             --  specifies a constrained subtype, or such a subtype has been
+             --  created, associate that subtype with the dereference of the
+             --  allocator's access value. This is needed by the expander for
+             --  cases where the access type has a Designated_Storage_Model
+             --  in order to support allocation of a host object of the right
+             --  size for passing to the initialization procedure.
+ 
+             if not Is_Constrained (Designated_Type (Etype (N)))
+               and then Is_Constrained (Typ)
+             then
+                Set_Actual_Designated_Subtype (Obj_Ref, Typ);
+             end if;
+ 
+             --  The initialization procedure expects a specific type so.
+             --  if the context is access to class-wide, indicate that the
+             --  object being initialized has the right specific type.
+ 
+             if For_CW then
+                Obj_Ref := Unchecked_Convert_To (Typ, Obj_Ref);
+             end if;
+          end if;
+ 
+          return Obj_Ref;
+       end New_Object_Reference;
+ 
+       --  Local variables
+ 
+       Comp_Init  : List_Id := No_List;
+       Fin_Block  : Node_Id;
+       Fin_Call   : Node_Id;
+       Init_Stmts : List_Id := No_List;
+       Obj_Init   : Node_Id := Empty;
+       Obj_Ref    : Node_Id;
+ 
+    --  Start of processing for Build_Default_Initialization
+ 
+    begin
+       --  The expansion performed by this routine is as follows:
+ 
+       --    begin
+       --       Abort_Defer;
+       --       Type_Init_Proc (Obj);
+ 
+       --       begin
+       --          [Deep_]Initialize (Obj);
+ 
+       --       exception
+       --          when others =>
+       --             [Deep_]Finalize (Obj, Self => False);
+       --             raise;
+       --       end;
+       --    at end
+       --       Abort_Undefer_Direct;
+       --    end;
+ 
+       --  Initialize the components of the object
+ 
+       if Has_Non_Null_Base_Init_Proc (Typ)
+         and then not Initialization_Suppressed (Typ)
+       then
+          --  Do not initialize the components if No_Default_Initialization
+          --  applies as the actual restriction check will occur later when
+          --  the object is frozen as it is not known yet whether the object
+          --  is imported or not.
+ 
+          if not Restriction_Active (No_Default_Initialization) then
+ 
+             --  Invoke the type init proc, generate:
+             --    Type_Init_Proc (Obj);
+ 
+             Obj_Ref := New_Object_Reference;
+ 
+             if Comes_From_Source (Obj_Id) then
+                Initialization_Warning (Obj_Ref);
+             end if;
+ 
+             Comp_Init :=
+               Build_Initialization_Call (N,
+                 Obj_Ref, Typ, Target_Ref => Target_Ref);
+          end if;
+       end if;
+ 
+       --  Initialize the object, generate:
+       --    [Deep_]Initialize (Obj);
+ 
+       if Needs_Finalization (Typ) then
+          Obj_Init :=
+            Make_Init_Call
+              (Obj_Ref => New_Object_Reference,
+               Typ     => Typ);
+       end if;
+ 
+       --  Build a special finalization block when both the object and its
+       --  controlled components are to be initialized. The block finalizes
+       --  the components if the object initialization fails. Generate:
+ 
+       --    begin
+       --       <Obj_Init>
+ 
+       --    exception
+       --       when others =>
+       --          <Fin_Call>
+       --          raise;
+       --    end;
+ 
+       if Has_Controlled_Component (Typ)
+         and then Present (Comp_Init)
+         and then Present (Obj_Init)
+         and then Exceptions_OK
+       then
+          Init_Stmts := Comp_Init;
+ 
+          Fin_Call :=
+            Make_Final_Call
+              (Obj_Ref   => New_Object_Reference,
+               Typ       => Typ,
+               Skip_Self => True);
+ 
+          if Present (Fin_Call) then
+ 
+             --  Do not emit warnings related to the elaboration order when a
+             --  controlled object is declared before the body of Finalize is
+             --  seen.
+ 
+             if Legacy_Elaboration_Checks then
+                Set_No_Elaboration_Check (Fin_Call);
+             end if;
+ 
+             Fin_Block :=
+               Make_Block_Statement (Loc,
+                 Declarations               => No_List,
+ 
+                 Handled_Statement_Sequence =>
+                   Make_Handled_Sequence_Of_Statements (Loc,
+                     Statements         => New_List (Obj_Init),
+ 
+                     Exception_Handlers => New_List (
+                       Make_Exception_Handler (Loc,
+                         Exception_Choices => New_List (
+                           Make_Others_Choice (Loc)),
+ 
+                         Statements        => New_List (
+                           Fin_Call,
+                           Make_Raise_Statement (Loc))))));
+ 
+             --  Signal the ABE mechanism that the block carries out
+             --  initialization actions.
+ 
+             Set_Is_Initialization_Block (Fin_Block);
+ 
+             Append_To (Init_Stmts, Fin_Block);
+          end if;
+ 
+       --  Otherwise finalization is not required, the initialization calls
+       --  are passed to the abort block building circuitry, generate:
+ 
+       --    Type_Init_Proc (Obj);
+       --    [Deep_]Initialize (Obj);
+ 
+       else
+          if Present (Comp_Init) then
+             Init_Stmts := Comp_Init;
+          end if;
+ 
+          if Present (Obj_Init) then
+             if No (Init_Stmts) then
+                Init_Stmts := New_List;
+             end if;
+ 
+             Append_To (Init_Stmts, Obj_Init);
+          end if;
+       end if;
+ 
+       --  Build an abort block to protect the initialization calls, except for
+       --  a finalization collection, which does not need any protection.
+ 
+       if Abort_Allowed
+         and then Present (Comp_Init)
+         and then Present (Obj_Init)
+         and then not Is_RTE (Typ, RE_Finalization_Collection)
+       then
+          --  Generate:
+          --    Abort_Defer;
+ 
+          Prepend_To (Init_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
+ 
+          --  When exceptions are propagated, abort deferral must take place
+          --  in the presence of initialization or finalization exceptions.
+          --  Generate:
+ 
+          --    begin
+          --       Abort_Defer;
+          --       <Init_Stmts>
+          --    at end
+          --       Abort_Undefer_Direct;
+          --    end;
+ 
+          if Exceptions_OK then
+             Init_Stmts := New_List (
+               Build_Abort_Undefer_Block (Loc,
+                 Stmts   => Init_Stmts,
+                 Context => N));
+ 
+          --  Otherwise exceptions are not propagated. Generate:
+ 
+          --    Abort_Defer;
+          --    <Init_Stmts>
+          --    Abort_Undefer;
+ 
+          else
+             Append_To (Init_Stmts,
+               Build_Runtime_Call (Loc, RE_Abort_Undefer));
+          end if;
+       end if;
+ 
+       return Init_Stmts;
+    end Build_Default_Initialization;
+ 
+    -----------------------------------------
+    -- Build_Default_Simple_Initialization --
+    -----------------------------------------
+ 
+    function Build_Default_Simple_Initialization
+      (N      : Node_Id;
+       Typ    : Entity_Id;
+       Obj_Id : Entity_Id) return Node_Id
+    is
+       Loc : constant Source_Ptr := Sloc (N);
+ 
+       function Build_Equivalent_Aggregate return Node_Id;
+       --  If the object has a constrained discriminated type and no initial
+       --  value, it may be possible to build an equivalent aggregate instead,
+       --  and prevent an actual call to the initialization procedure.
+ 
+       function Simple_Initialization_OK (Typ : Entity_Id) return Boolean;
+       --  Determine whether object declaration N with entity Obj_Id if set, or
+       --  object allocation N if Obj_Id is empty, needs simple initialization,
+       --  assuming that it is of type Typ.
+ 
+       --------------------------------
+       -- Build_Equivalent_Aggregate --
+       --------------------------------
+ 
+       function Build_Equivalent_Aggregate return Node_Id is
+          Aggr     : Node_Id;
+          Comp     : Entity_Id;
+          Discr    : Elmt_Id;
+          Full_Typ : Entity_Id;
+ 
+       begin
+          if Is_Private_Type (Typ) and then Present (Full_View (Typ)) then
+             Full_Typ := Full_View (Typ);
+          else
+             Full_Typ := Typ;
+          end if;
+ 
+          --  Only do this transformation for a package entity of a constrained
+          --  record type and if Elaboration_Code is forbidden or undesirable.
+ 
+          --  If Initialize_Scalars might be active this transformation cannot
+          --  be performed either, because it will lead to different semantics
+          --  or because elaboration code will in fact be created.
+ 
+          if Ekind (Full_Typ) /= E_Record_Subtype
+            or else not Has_Discriminants (Full_Typ)
+            or else not Is_Constrained (Full_Typ)
+            or else Is_Controlled (Full_Typ)
+            or else Is_Limited_Type (Full_Typ)
+            or else Ekind (Current_Scope) /= E_Package
+            or else not (Is_Preelaborated (Current_Scope)
+                          or else Restriction_Active (No_Elaboration_Code))
+            or else not Restriction_Active (No_Initialize_Scalars)
+          then
+             return Empty;
+          end if;
+ 
+          --  Building a static aggregate is possible if the discriminants
+          --  have static values and the other components have static
+          --  defaults or none.
+ 
+          Discr := First_Elmt (Discriminant_Constraint (Full_Typ));
+          while Present (Discr) loop
+             if not Is_OK_Static_Expression (Node (Discr)) then
+                return Empty;
+             end if;
+ 
+             Next_Elmt (Discr);
+          end loop;
+ 
+          --  Check that initialized components are OK, and that non-
+          --  initialized components do not require a call to their own
+          --  initialization procedure.
+ 
+          Comp := First_Component (Full_Typ);
+          while Present (Comp) loop
+             if Present (Expression (Parent (Comp)))
+               and then not Is_OK_Static_Expression (Expression (Parent (Comp)))
+             then
+                return Empty;
+ 
+             elsif Has_Non_Null_Base_Init_Proc (Etype (Comp)) then
+                return Empty;
+ 
+             end if;
+ 
+             Next_Component (Comp);
+          end loop;
+ 
+          --  Everything is static, assemble the aggregate, discriminant
+          --  values first.
+ 
+          Aggr :=
+             Make_Aggregate (Loc,
+              Expressions            => New_List,
+               Component_Associations => New_List);
+          Set_Parent (Aggr, N);
+ 
+          Discr := First_Elmt (Discriminant_Constraint (Full_Typ));
+          while Present (Discr) loop
+             Append_To (Expressions (Aggr), New_Copy (Node (Discr)));
+             Next_Elmt (Discr);
+          end loop;
+ 
+          --  Now collect values of initialized components
+ 
+          Comp := First_Component (Full_Typ);
+          while Present (Comp) loop
+             if Present (Expression (Parent (Comp))) then
+                Append_To (Component_Associations (Aggr),
+                  Make_Component_Association (Loc,
+                    Choices    => New_List (New_Occurrence_Of (Comp, Loc)),
+                    Expression => New_Copy_Tree
+                                    (Expression (Parent (Comp)))));
+             end if;
+ 
+             Next_Component (Comp);
+          end loop;
+ 
+          --  Finally, box-initialize remaining components
+ 
+          Append_To (Component_Associations (Aggr),
+            Make_Component_Association (Loc,
+              Choices     => New_List (Make_Others_Choice (Loc)),
+              Box_Present => True));
+ 
+          if Typ /= Full_Typ then
+             Analyze_And_Resolve (Aggr, Full_View (Base_Type (Full_Typ)));
+             Rewrite (Aggr, Unchecked_Convert_To (Typ, Aggr));
+          end if;
+ 
+          return Aggr;
+       end Build_Equivalent_Aggregate;
+ 
+       ------------------------------
+       -- Simple_Initialization_OK --
+       ------------------------------
+ 
+       function Simple_Initialization_OK (Typ : Entity_Id) return Boolean is
+       begin
+          --  Skip internal entities as specified in Einfo
+ 
+          return
+            not (Present (Obj_Id) and then Is_Internal (Obj_Id))
+              and then not Is_Mutably_Tagged_CW_Equivalent_Type (Typ)
+              and then
+                Needs_Simple_Initialization
+                  (Typ         => Typ,
+                   Consider_IS =>
+                     Initialize_Scalars
+                       and then (No (Obj_Id)
+                                  or else No (Following_Address_Clause (N))));
+       end Simple_Initialization_OK;
+ 
+       --  Local variables
+ 
+       Aggr_Init  : Node_Id;
+ 
+    --  Start of processing for Build_Default_Simple_Initialization
+ 
+    begin
+       if Has_Non_Null_Base_Init_Proc (Typ)
+         and then not Is_Dispatching_Operation (Base_Init_Proc (Typ))
+         and then not Initialization_Suppressed (Typ)
+       then
+          --  Do not initialize the components if No_Default_Initialization
+          --  applies as the actual restriction check will occur later when
+          --  the object is frozen as it is not known yet whether the object
+          --  is imported or not.
+ 
+          if not Restriction_Active (No_Default_Initialization) then
+ 
+             --  If the values of the components are compile-time known, use
+             --  their prebuilt aggregate form directly.
+ 
+             Aggr_Init := Static_Initialization (Base_Init_Proc (Typ));
+             if Present (Aggr_Init) then
+                return New_Copy_Tree (Aggr_Init, New_Scope => Current_Scope);
+             end if;
+ 
+             --  If type has discriminants, try to build an equivalent
+             --  aggregate using discriminant values from the declaration.
+             --  This is a useful optimization, in particular if restriction
+             --  No_Elaboration_Code is active.
+ 
+             Aggr_Init := Build_Equivalent_Aggregate;
+             if Present (Aggr_Init) then
+                return Aggr_Init;
+             end if;
+ 
+             --  Optimize the default initialization of an array object when
+             --  pragma Initialize_Scalars or Normalize_Scalars is in effect.
+             --  Construct an in-place initialization aggregate which may be
+             --  convert into a fast memset by the backend.
+ 
+             if Init_Or_Norm_Scalars
+               and then Is_Array_Type (Typ)
+ 
+               --  The array must lack atomic components because they are
+               --  treated as non-static, and as a result the backend will
+               --  not initialize the memory in one go.
+ 
+               and then not Has_Atomic_Components (Typ)
+ 
+               --  The array must not be packed because the invalid values
+               --  in System.Scalar_Values are multiples of Storage_Unit.
+ 
+               and then not Is_Packed (Typ)
+ 
+               --  The array must have static non-empty ranges, otherwise
+               --  the backend cannot initialize the memory in one go.
+ 
+               and then Has_Static_Non_Empty_Array_Bounds (Typ)
+ 
+               --  The optimization is only relevant for arrays of scalar
+               --  types.
+ 
+               and then Is_Scalar_Type (Component_Type (Typ))
+ 
+               --  Similar to regular array initialization using a type
+               --  init proc, predicate checks are not performed because the
+               --  initialization values are intentionally invalid, and may
+               --  violate the predicate.
+ 
+               and then not Has_Predicates (Component_Type (Typ))
+ 
+               --  Array default component value takes precedence over
+               --  Init_Or_Norm_Scalars.
+ 
+               and then No (Find_Aspect (Typ, Aspect_Default_Component_Value))
+ 
+               --  The component type must have a single initialization value
+ 
+               and then Simple_Initialization_OK (Component_Type (Typ))
+             then
+                return
+                  Get_Simple_Init_Val
+                    (Typ  => Typ,
+                     N    => N,
+                     Size => (if Known_Esize (Typ)
+                              then Esize (Typ)
+                              else Uint_0));
+             end if;
+          end if;
+ 
+       --  Provide a default value if the object needs simple initialization
+ 
+       elsif Simple_Initialization_OK (Typ) then
+          return
+            Get_Simple_Init_Val
+              (Typ  => Typ,
+               N    => N,
+               Size => (if Known_Esize (Typ)
+                        then Esize (Typ)
+                        else Uint_0));
+       end if;
+ 
+       return Empty;
+    end Build_Default_Simple_Initialization;
+ 
     --------------------------------
     -- Build_Discr_Checking_Funcs --
     --------------------------------
*************** package body Exp_Ch3 is
*** 1366,1371 ****
--- 1890,1896 ----
          or else Has_Discriminants (T)
          or else Is_Limited_Type (T)
          or else Has_Non_Standard_Rep (T)
+         or else Needs_Finalization (T)
        then
           Initialization_Warning (T);
           return Empty;
*************** package body Exp_Ch3 is
*** 1430,1435 ****
--- 1955,1961 ----
                or else not Compile_Time_Known_Value (Type_Low_Bound (Comp_Type))
                or else not
                  Compile_Time_Known_Value (Type_High_Bound (Comp_Type))
+               or else Has_Predicates (Etype (Comp))
              then
                 Initialization_Warning (T);
                 return Empty;
*************** package body Exp_Ch3 is
*** 1462,1492 ****
        return Agg;
     end Build_Equivalent_Record_Aggregate;
  
-    ----------------------------
-    -- Init_Proc_Level_Formal --
-    ----------------------------
- 
-    function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id is
-       Form : Entity_Id;
-    begin
-       --  Move through the formals of the initialization procedure Proc to find
-       --  the extra accessibility level parameter associated with the object
-       --  being initialized.
- 
-       Form := First_Formal (Proc);
-       while Present (Form) loop
-          if Chars (Form) = Name_uInit_Level then
-             return Form;
-          end if;
- 
-          Next_Formal (Form);
-       end loop;
- 
-       --  No formal was found, return Empty
- 
-       return Empty;
-    end Init_Proc_Level_Formal;
- 
     -------------------------------
     -- Build_Initialization_Call --
     -------------------------------
--- 1988,1993 ----
*************** package body Exp_Ch3 is
*** 1520,1536 ****
     --  end;
  
     function Build_Initialization_Call
!      (Loc                 : Source_Ptr;
        Id_Ref              : Node_Id;
        Typ                 : Entity_Id;
!       In_Init_Proc        : Boolean := False;
        Enclos_Type         : Entity_Id := Empty;
!       Discr_Map           : Elist_Id := New_Elmt_List;
!       With_Default_Init   : Boolean := False;
!       Constructor_Ref     : Node_Id := Empty;
        Init_Control_Actual : Entity_Id := Empty) return List_Id
     is
!       Res : constant List_Id := New_List;
  
        Full_Type : Entity_Id;
  
--- 2021,2039 ----
     --  end;
  
     function Build_Initialization_Call
!      (N                   : Node_Id;
        Id_Ref              : Node_Id;
        Typ                 : Entity_Id;
!       In_Init_Proc        : Boolean   := False;
        Enclos_Type         : Entity_Id := Empty;
!       Target_Ref          : Node_Id   := Empty;
!       Discr_Map           : Elist_Id  := New_Elmt_List;
!       With_Default_Init   : Boolean   := False;
!       Constructor_Ref     : Node_Id   := Empty;
        Init_Control_Actual : Entity_Id := Empty) return List_Id
     is
!       Loc : constant Source_Ptr := Sloc (N);
!       Res : constant List_Id    := New_List;
  
        Full_Type : Entity_Id;
  
*************** package body Exp_Ch3 is
*** 1643,1648 ****
--- 2146,2152 ----
  
        --  Local variables
  
+       A_Type         : Entity_Id;
        Arg            : Node_Id;
        Args           : List_Id;
        Decls          : List_Id;
*************** package body Exp_Ch3 is
*** 1754,1759 ****
--- 2258,2267 ----
        if Has_Task (Full_Type) then
           if Restriction_Active (No_Task_Hierarchy) then
              Append_To (Args, Make_Integer_Literal (Loc, Library_Task_Level));
+          elsif Present (Target_Ref) then
+             Append_To (Args,
+               New_Occurrence_Of
+                 (Master_Id (Base_Type (Root_Type (Etype (Target_Ref)))), Loc));
           else
              Append_To (Args, Make_Identifier (Loc, Name_uMaster));
           end if;
*************** package body Exp_Ch3 is
*** 1770,1782 ****
           --  This is just a workaround that must be improved later???
  
           if With_Default_Init then
!             Append_To (Args,
!               Make_String_Literal (Loc,
!                 Strval => ""));
  
           else
              Decls :=
!               Build_Task_Image_Decls (Loc, Id_Ref, Enclos_Type, In_Init_Proc);
              Decl  := Last (Decls);
  
              Append_To (Args,
--- 2278,2304 ----
           --  This is just a workaround that must be improved later???
  
           if With_Default_Init then
!             Append_To (Args, Make_String_Literal (Loc, Strval => ""));
  
           else
+             if Present (Enclos_Type) then
+                A_Type := Enclos_Type;
+ 
+             elsif Present (Target_Ref)
+               and then Nkind (Target_Ref) in N_Indexed_Component
+                                            | N_Selected_Component
+             then
+                A_Type := Etype (Prefix (Target_Ref));
+ 
+             else
+                A_Type := Full_Type;
+             end if;
+ 
              Decls :=
!               Build_Task_Image_Decls (Loc,
!                 (if Present (Target_Ref) then Target_Ref else Id_Ref),
!                 A_Type,
!                 In_Init_Proc);
              Decl  := Last (Decls);
  
              Append_To (Args,
*************** package body Exp_Ch3 is
*** 1809,1814 ****
--- 2331,2354 ----
        --  Add discriminant values if discriminants are present
  
        if Has_Discriminants (Full_Init_Type) then
+          --  If an allocated object will be constrained by the default
+          --  values for discriminants, then build a subtype with those
+          --  defaults, and change the allocated subtype to that. Note
+          --  that this happens in fewer cases in Ada 2005 (AI95-0363).
+ 
+          if Nkind (N) = N_Allocator
+            and then not Is_Constrained (Full_Type)
+            and then
+              Present
+                (Discriminant_Default_Value (First_Discriminant (Full_Type)))
+            and then (Ada_Version < Ada_2005
+                       or else not Object_Type_Has_Constrained_Partial_View
+                                     (Full_Type, Current_Scope))
+          then
+             Full_Type := Build_Default_Subtype (Full_Type, N);
+             Set_Expression (N, New_Occurrence_Of (Full_Type, Loc));
+          end if;
+ 
           Discr := First_Discriminant (Full_Init_Type);
           while Present (Discr) loop
  
*************** package body Exp_Ch3 is
*** 2077,2087 ****
           Default_Loc : constant Source_Ptr := Sloc (Default);
           Typ         : constant Entity_Id  := Underlying_Type (Etype (Id));
  
!          Adj_Call : Node_Id;
!          Exp      : Node_Id;
!          Exp_Q    : Node_Id;
!          Lhs      : Node_Id;
!          Res      : List_Id;
  
        begin
           Lhs :=
--- 2617,2626 ----
           Default_Loc : constant Source_Ptr := Sloc (Default);
           Typ         : constant Entity_Id  := Underlying_Type (Etype (Id));
  
!          Exp   : Node_Id;
!          Exp_Q : Node_Id;
!          Lhs   : Node_Id;
!          Res   : List_Id;
  
        begin
           Lhs :=
*************** package body Exp_Ch3 is
*** 2136,2178 ****
               Name       => Lhs,
               Expression => Exp));
  
-          Set_No_Ctrl_Actions (First (Res));
- 
           Exp_Q := Unqualify (Exp);
  
!          --  Adjust the tag if tagged (because of possible view conversions).
!          --  Suppress the tag adjustment when not Tagged_Type_Expansion because
!          --  tags are represented implicitly in objects, and when the record is
!          --  initialized with a raise expression.
! 
!          if Is_Tagged_Type (Typ)
!            and then Tagged_Type_Expansion
!            and then Nkind (Exp_Q) /= N_Raise_Expression
!          then
!             Append_To (Res,
!               Make_Tag_Assignment_From_Type
!                 (Default_Loc,
!                  New_Copy_Tree (Lhs, New_Scope => Proc_Id),
!                  Underlying_Type (Typ)));
!          end if;
! 
!          --  Adjust the component if controlled except if it is an aggregate
!          --  that will be expanded inline.
  
           if Needs_Finalization (Typ)
!            and then Nkind (Exp_Q) not in N_Aggregate | N_Extension_Aggregate
             and then not Is_Build_In_Place_Function_Call (Exp)
           then
!             Adj_Call :=
!               Make_Adjust_Call
!                 (Obj_Ref => New_Copy_Tree (Lhs),
!                  Typ     => Etype (Id));
  
!             --  Guard against a missing [Deep_]Adjust when the component type
!             --  was not properly frozen.
  
!             if Present (Adj_Call) then
!                Append_To (Res, Adj_Call);
              end if;
           end if;
  
--- 2675,2722 ----
               Name       => Lhs,
               Expression => Exp));
  
           Exp_Q := Unqualify (Exp);
  
!          --  Adjust the component if controlled, except if it is an aggregate
!          --  that will be expanded inline (but note that the case of container
!          --  aggregates does require component adjustment), or a function call.
!          --  Note that, when we don't inhibit component adjustment, the tag
!          --  will be automatically inserted by Make_Tag_Ctrl_Assignment in the
!          --  tagged case. Otherwise, we have to generate a tag assignment here.
  
           if Needs_Finalization (Typ)
!            and then (Nkind (Exp_Q) not in N_Aggregate | N_Extension_Aggregate
!                       or else Is_Container_Aggregate (Exp_Q))
             and then not Is_Build_In_Place_Function_Call (Exp)
+            and then Nkind (Exp) /= N_Function_Call
           then
!             Set_No_Finalize_Actions (First (Res));
  
!          else
!             Set_No_Ctrl_Actions (First (Res));
  
!             --  Adjust the tag if tagged because of possible view conversions
! 
!             if Is_Tagged_Type (Typ)
!               and then Tagged_Type_Expansion
!               and then Nkind (Exp_Q) /= N_Raise_Expression
!             then
!                declare
!                   Utyp : Entity_Id := Underlying_Type (Typ);
! 
!                begin
!                   --  Get the relevant type for Make_Tag_Assignment_From_Type,
!                   --  which, for concurrent types is the corresponding record.
! 
!                   if Ekind (Utyp) in E_Protected_Type | E_Task_Type then
!                      Utyp := Corresponding_Record_Type (Utyp);
!                   end if;
! 
!                   Append_To (Res,
!                     Make_Tag_Assignment_From_Type (Default_Loc,
!                       New_Copy_Tree (Lhs, New_Scope => Proc_Id),
!                       Utyp));
!                end;
              end if;
           end if;
  
*************** package body Exp_Ch3 is
*** 2405,2414 ****
                  Defining_Identifier => Acc_Type,
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present            => True,
!                     Null_Exclusion_Present => False,
!                     Constant_Present       => False,
!                     Subtype_Indication     =>
                        New_Occurrence_Of (Rec_Type, Loc)))));
  
              Set_Handled_Statement_Sequence (Body_Node,
--- 2949,2956 ----
                  Defining_Identifier => Acc_Type,
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present        => True,
!                     Subtype_Indication =>
                        New_Occurrence_Of (Rec_Type, Loc)))));
  
              Set_Handled_Statement_Sequence (Body_Node,
*************** package body Exp_Ch3 is
*** 2987,2992 ****
--- 3529,3535 ----
                 DF_Id :=
                   Make_Defining_Identifier (Loc,
                     Chars => New_External_Name (Name_uFinalizer));
+                Set_Is_Finalizer (DF_Id);
  
                 Append_To (Decls, Make_Local_Deep_Finalize (Rec_Type, DF_Id));
  
*************** package body Exp_Ch3 is
*** 3174,3180 ****
                (Subtype_Indication (Component_Definition (Decl)), Checks);
  
              Id  := Defining_Identifier (Decl);
!             Typ := Etype (Id);
  
              --  Leave any processing of component requiring late initialization
              --  for the second pass.
--- 3717,3727 ----
                (Subtype_Indication (Component_Definition (Decl)), Checks);
  
              Id  := Defining_Identifier (Decl);
! 
!             --  Obtain the corresponding mutably tagged type's parent subtype
!             --  to handle default initialization.
! 
!             Typ := Get_Corresponding_Tagged_Type_If_Present (Etype (Id));
  
              --  Leave any processing of component requiring late initialization
              --  for the second pass.
*************** package body Exp_Ch3 is
*** 3202,3208 ****
                    if Is_CPP_Constructor_Call (Expression (Decl)) then
                       Actions :=
                         Build_Initialization_Call
!                          (Comp_Loc,
                            Id_Ref          =>
                              Make_Selected_Component (Comp_Loc,
                                Prefix        =>
--- 3749,3755 ----
                    if Is_CPP_Constructor_Call (Expression (Decl)) then
                       Actions :=
                         Build_Initialization_Call
!                          (Decl,
                            Id_Ref          =>
                              Make_Selected_Component (Comp_Loc,
                                Prefix        =>
*************** package body Exp_Ch3 is
*** 3344,3350 ****
  
                       Init_Call_Stmts :=
                         Build_Initialization_Call
!                          (Comp_Loc,
                            Make_Selected_Component (Comp_Loc,
                              Prefix        =>
                                Make_Identifier (Comp_Loc, Name_uInit),
--- 3891,3897 ----
  
                       Init_Call_Stmts :=
                         Build_Initialization_Call
!                          (Decl,
                            Make_Selected_Component (Comp_Loc,
                              Prefix        =>
                                Make_Identifier (Comp_Loc, Name_uInit),
*************** package body Exp_Ch3 is
*** 3569,3575 ****
  
                 Append_List_To (Late_Stmts,
                   Build_Initialization_Call
!                    (Loc                  => Parent_Loc,
                      Id_Ref               =>
                        Make_Selected_Component (Parent_Loc,
                          Prefix        => Make_Identifier
--- 4116,4122 ----
  
                 Append_List_To (Late_Stmts,
                   Build_Initialization_Call
!                    (N                    => Parent (Parent_Id),
                      Id_Ref               =>
                        Make_Selected_Component (Parent_Loc,
                          Prefix        => Make_Identifier
*************** package body Exp_Ch3 is
*** 3590,3596 ****
              while Present (Decl) loop
                 Comp_Loc := Sloc (Decl);
                 Id := Defining_Identifier (Decl);
!                Typ := Etype (Id);
  
                 if Initialization_Control.Requires_Late_Init (Decl, Rec_Type)
                 then
--- 4137,4147 ----
              while Present (Decl) loop
                 Comp_Loc := Sloc (Decl);
                 Id := Defining_Identifier (Decl);
! 
!                --  Obtain the corresponding mutably tagged type's parent
!                --  subtype to handle default initialization.
! 
!                Typ := Get_Corresponding_Tagged_Type_If_Present (Etype (Id));
  
                 if Initialization_Control.Requires_Late_Init (Decl, Rec_Type)
                 then
*************** package body Exp_Ch3 is
*** 3600,3606 ****
  
                    elsif Has_Non_Null_Base_Init_Proc (Typ) then
                       Append_List_To (Late_Stmts,
!                        Build_Initialization_Call (Comp_Loc,
                           Make_Selected_Component (Comp_Loc,
                             Prefix        =>
                               Make_Identifier (Comp_Loc, Name_uInit),
--- 4151,4157 ----
  
                    elsif Has_Non_Null_Base_Init_Proc (Typ) then
                       Append_List_To (Late_Stmts,
!                        Build_Initialization_Call (Decl,
                           Make_Selected_Component (Comp_Loc,
                             Prefix        =>
                               Make_Identifier (Comp_Loc, Name_uInit),
*************** package body Exp_Ch3 is
*** 3736,3745 ****
             (SI         : Node_Id;
              Check_List : List_Id)
           is
!             C                     : constant Node_Id := Constraint (SI);
!             Number_Of_Constraints : Nat := 0;
!             Index                 : Node_Id;
!             S, T                  : Entity_Id;
  
              procedure Constrain_Index
                (Index      : Node_Id;
--- 4287,4295 ----
             (SI         : Node_Id;
              Check_List : List_Id)
           is
!             C     : constant Node_Id := Constraint (SI);
!             Index : Node_Id;
!             S, T  : Entity_Id;
  
              procedure Constrain_Index
                (Index      : Node_Id;
*************** package body Exp_Ch3 is
*** 3777,3788 ****
                 T := Designated_Type (T);
              end if;
  
-             S := First (Constraints (C));
-             while Present (S) loop
-                Number_Of_Constraints := Number_Of_Constraints + 1;
-                Next (S);
-             end loop;
- 
              --  In either case, the index constraint must provide a discrete
              --  range for each index of the array type and the type of each
              --  discrete range must be the same as that of the corresponding
--- 4327,4332 ----
*************** package body Exp_Ch3 is
*** 3794,3800 ****
  
              --  Apply constraints to each index type
  
!             for J in 1 .. Number_Of_Constraints loop
                 Constrain_Index (Index, S, Check_List);
                 Next (Index);
                 Next (S);
--- 4338,4344 ----
  
              --  Apply constraints to each index type
  
!             while Present (S) loop
                 Constrain_Index (Index, S, Check_List);
                 Next (Index);
                 Next (S);
*************** package body Exp_Ch3 is
*** 4099,4112 ****
  
           Set_Is_Inlined (Proc_Id, Inline_Init_Proc (Rec_Type));
  
-          --  Do not build an aggregate if Modify_Tree_For_C, this isn't
-          --  needed and may generate early references to non frozen types
-          --  since we expand aggregate much more systematically.
- 
-          if Modify_Tree_For_C then
-             return;
-          end if;
- 
           declare
              Agg : constant Node_Id :=
                      Build_Equivalent_Record_Aggregate (Rec_Type);
--- 4643,4648 ----
*************** package body Exp_Ch3 is
*** 4872,4905 ****
     procedure Expand_Freeze_Array_Type (N : Node_Id) is
        Typ      : constant Entity_Id := Entity (N);
        Base     : constant Entity_Id := Base_Type (Typ);
-       Comp_Typ : constant Entity_Id := Component_Type (Typ);
  
!    begin
!       if not Is_Bit_Packed_Array (Typ) then
! 
!          --  If the component contains tasks, so does the array type. This may
!          --  not be indicated in the array type because the component may have
!          --  been a private type at the point of definition. Same if component
!          --  type is controlled or contains protected objects.
  
!          Propagate_Concurrent_Flags (Base, Comp_Typ);
!          Set_Has_Controlled_Component
!            (Base, Has_Controlled_Component (Comp_Typ)
!                     or else Is_Controlled (Comp_Typ));
  
           if No (Init_Proc (Base)) then
  
!             --  If this is an anonymous array created for a declaration with
!             --  an initial value, its init_proc will never be called. The
              --  initial value itself may have been expanded into assignments,
!             --  in which case the object declaration is carries the
!             --  No_Initialization flag.
  
              if Is_Itype (Base)
                and then Nkind (Associated_Node_For_Itype (Base)) =
                                                      N_Object_Declaration
                and then
!                 (Present (Expression (Associated_Node_For_Itype (Base)))
                    or else No_Initialization (Associated_Node_For_Itype (Base)))
              then
                 null;
--- 5408,5440 ----
     procedure Expand_Freeze_Array_Type (N : Node_Id) is
        Typ      : constant Entity_Id := Entity (N);
        Base     : constant Entity_Id := Base_Type (Typ);
  
!       --  Obtain the corresponding mutably tagged type if necessary
  
!       Comp_Typ : constant Entity_Id :=
!         Get_Corresponding_Mutably_Tagged_Type_If_Present
!           (Component_Type (Typ));
  
+    begin
+       if not Is_Bit_Packed_Array (Typ) then
           if No (Init_Proc (Base)) then
  
!             --  If this is an anonymous array built for an object declaration
!             --  with an initial value, its Init_Proc will never be called. The
              --  initial value itself may have been expanded into assignments,
!             --  in which case the declaration has the No_Initialization flag.
!             --  The exception is when the initial value is a 2-pass aggregate,
!             --  because the special expansion used for it creates a temporary
!             --  that needs a fully-fledged initialization.
  
              if Is_Itype (Base)
                and then Nkind (Associated_Node_For_Itype (Base)) =
                                                      N_Object_Declaration
                and then
!                 ((Present (Expression (Associated_Node_For_Itype (Base)))
!                     and then not
!                       Is_Two_Pass_Aggregate
!                         (Expression (Associated_Node_For_Itype (Base))))
                    or else No_Initialization (Associated_Node_For_Itype (Base)))
              then
                 null;
*************** package body Exp_Ch3 is
*** 5021,5027 ****
        --  Create the body of TSS primitive Finalize_Address. This automatically
        --  sets the TSS entry for the class-wide type.
  
!       Make_Finalize_Address_Body (Typ);
     end Expand_Freeze_Class_Wide_Type;
  
     ------------------------------------
--- 5556,5564 ----
        --  Create the body of TSS primitive Finalize_Address. This automatically
        --  sets the TSS entry for the class-wide type.
  
!       if No (Finalize_Address (Typ)) then
!          Make_Finalize_Address_Body (Typ);
!       end if;
     end Expand_Freeze_Class_Wide_Type;
  
     ------------------------------------
*************** package body Exp_Ch3 is
*** 5137,5143 ****
  
                   Component_Definition =>
                     Make_Component_Definition (Loc,
-                      Aliased_Present => False,
                       Subtype_Indication => New_Occurrence_Of (Typ, Loc))),
  
               Expression =>
--- 5674,5679 ----
*************** package body Exp_Ch3 is
*** 5566,5573 ****
        Typ      : constant Node_Id := Entity (N);
        Typ_Decl : constant Node_Id := Parent (Typ);
  
-       Comp        : Entity_Id;
-       Comp_Typ    : Entity_Id;
        Predef_List : List_Id;
  
        Wrapper_Decl_List : List_Id;
--- 6102,6107 ----
*************** package body Exp_Ch3 is
*** 5599,5629 ****
           Check_Stream_Attributes (Typ);
        end if;
  
-       --  Update task, protected, and controlled component flags, because some
-       --  of the component types may have been private at the point of the
-       --  record declaration. Detect anonymous access-to-controlled components.
- 
-       Comp := First_Component (Typ);
-       while Present (Comp) loop
-          Comp_Typ := Etype (Comp);
- 
-          Propagate_Concurrent_Flags (Typ, Comp_Typ);
- 
-          --  Do not set Has_Controlled_Component on a class-wide equivalent
-          --  type. See Make_CW_Equivalent_Type.
- 
-          if not Is_Class_Wide_Equivalent_Type (Typ)
-            and then
-              (Has_Controlled_Component (Comp_Typ)
-                or else (Chars (Comp) /= Name_uParent
-                          and then Is_Controlled (Comp_Typ)))
-          then
-             Set_Has_Controlled_Component (Typ);
-          end if;
- 
-          Next_Component (Comp);
-       end loop;
- 
        --  Handle constructors of untagged CPP_Class types
  
        if not Is_Tagged_Type (Typ) and then Is_CPP_Class (Typ) then
--- 6133,6138 ----
*************** package body Exp_Ch3 is
*** 5809,5827 ****
  
              --  Make sure that the primitives Initialize, Adjust and Finalize
              --  are Frozen before other TSS subprograms. We don't want them
!             --  Frozen inside.
  
              if Is_Controlled (Typ) then
                 if not Is_Limited_Type (Typ) then
                    Append_Freeze_Actions (Typ,
!                     Freeze_Entity (Find_Prim_Op (Typ, Name_Adjust), Typ));
                 end if;
  
                 Append_Freeze_Actions (Typ,
!                  Freeze_Entity (Find_Prim_Op (Typ, Name_Initialize), Typ));
! 
!                Append_Freeze_Actions (Typ,
!                  Freeze_Entity (Find_Prim_Op (Typ, Name_Finalize), Typ));
              end if;
  
              --  Freeze rest of primitive operations. There is no need to handle
--- 6318,6339 ----
  
              --  Make sure that the primitives Initialize, Adjust and Finalize
              --  are Frozen before other TSS subprograms. We don't want them
!             --  frozen inside.
  
              if Is_Controlled (Typ) then
+                Append_Freeze_Actions (Typ,
+                  Freeze_Entity
+                    (Find_Controlled_Prim_Op (Typ, Name_Initialize), Typ));
+ 
                 if not Is_Limited_Type (Typ) then
                    Append_Freeze_Actions (Typ,
!                     Freeze_Entity
!                       (Find_Controlled_Prim_Op (Typ, Name_Adjust), Typ));
                 end if;
  
                 Append_Freeze_Actions (Typ,
!                  Freeze_Entity
!                    (Find_Controlled_Prim_Op (Typ, Name_Finalize), Typ));
              end if;
  
              --  Freeze rest of primitive operations. There is no need to handle
*************** package body Exp_Ch3 is
*** 5899,5908 ****
        --  Do not need init for interfaces on virtual targets since they're
        --  abstract.
  
!       if Tagged_Type_Expansion or else not Is_Interface (Typ) then
           Build_Record_Init_Proc (Typ_Decl, Typ);
        end if;
  
        --  For tagged type that are not interfaces, build bodies of primitive
        --  operations. Note: do this after building the record initialization
        --  procedure, since the primitive operations may need the initialization
--- 6411,6431 ----
        --  Do not need init for interfaces on virtual targets since they're
        --  abstract.
  
!       if not Is_Mutably_Tagged_CW_Equivalent_Type (Typ)
!         and then (Tagged_Type_Expansion or else not Is_Interface (Typ))
!       then
           Build_Record_Init_Proc (Typ_Decl, Typ);
        end if;
  
+       --  Create the body of TSS primitive Finalize_Address. This must be done
+       --  before the bodies of all predefined primitives are created. If Typ
+       --  is limited, Stream_Input and Stream_Read may produce build-in-place
+       --  allocations and for those the expander needs Finalize_Address.
+ 
+       if Is_Controlled (Typ) then
+          Make_Finalize_Address_Body (Typ);
+       end if;
+ 
        --  For tagged type that are not interfaces, build bodies of primitive
        --  operations. Note: do this after building the record initialization
        --  procedure, since the primitive operations may need the initialization
*************** package body Exp_Ch3 is
*** 5920,5937 ****
              null;
  
           --  Do not add the body of the predefined primitives if we are
!          --  compiling under restriction No_Dispatching_Calls or if we are
!          --  compiling a CPP tagged type.
  
           elsif not Restriction_Active (No_Dispatching_Calls) then
  
!             --  Create the body of TSS primitive Finalize_Address. This must
!             --  be done before the bodies of all predefined primitives are
!             --  created. If Typ is limited, Stream_Input and Stream_Read may
!             --  produce build-in-place allocations and for those the expander
!             --  needs Finalize_Address.
  
-             Make_Finalize_Address_Body (Typ);
              Predef_List := Predefined_Primitive_Bodies (Typ, Renamed_Eq);
              Append_Freeze_Actions (Typ, Predef_List);
           end if;
--- 6443,6457 ----
              null;
  
           --  Do not add the body of the predefined primitives if we are
!          --  compiling under restriction No_Dispatching_Calls.
  
           elsif not Restriction_Active (No_Dispatching_Calls) then
+             --  Create the body of the class-wide type's TSS primitive
+             --  Finalize_Address. This must be done before any class-wide
+             --  precondition functions are created.
  
!             Make_Finalize_Address_Body (Class_Wide_Type (Typ));
  
              Predef_List := Predefined_Primitive_Bodies (Typ, Renamed_Eq);
              Append_Freeze_Actions (Typ, Predef_List);
           end if;
*************** package body Exp_Ch3 is
*** 5940,5945 ****
--- 6460,6474 ----
           --  inherited functions, then add their bodies to the freeze actions.
  
           Append_Freeze_Actions (Typ, Wrapper_Body_List);
+ 
+       --  Create body of an interface type's class-wide type's TSS primitive
+       --  Finalize_Address.
+ 
+       elsif Is_Tagged_Type (Typ)
+         and then Is_Interface (Typ)
+         and then not Restriction_Active (No_Dispatching_Calls)
+       then
+          Make_Finalize_Address_Body (Class_Wide_Type (Typ));
        end if;
  
        --  Create extra formals for the primitive operations of the type.
*************** package body Exp_Ch3 is
*** 6142,6147 ****
--- 6671,6699 ----
           end;
        end if;
  
+       --  Handle mutably tagged types by replacing their declarations with
+       --  their class-wide equivalent types.
+ 
+       declare
+          Comp : Entity_Id;
+       begin
+          if Is_Array_Type (Def_Id) then
+             Comp := First_Entity (Component_Type (Def_Id));
+          else
+             Comp := First_Entity (Def_Id);
+          end if;
+ 
+          while Present (Comp) loop
+             if Ekind (Etype (Comp)) /= E_Void
+               and then Is_Mutably_Tagged_Type (Etype (Comp))
+             then
+                Set_Etype
+                  (Comp, Class_Wide_Equivalent_Type (Etype (Comp)));
+             end if;
+             Next_Entity (Comp);
+          end loop;
+       end;
+ 
        Par_Id := Etype (B_Id);
  
        --  The parent type is private then we need to inherit any TSS operations
*************** package body Exp_Ch3 is
*** 6215,6225 ****
         (if Special_Ret_Obj then Return_Applies_To (Scope (Def_Id)) else Empty);
        --  The function if this is a special return object, otherwise Empty
  
-       function Build_Equivalent_Aggregate return Boolean;
-       --  If the object has a constrained discriminated type and no initial
-       --  value, it may be possible to build an equivalent aggregate instead,
-       --  and prevent an actual call to the initialization procedure.
- 
        function Build_Heap_Or_Pool_Allocator
          (Temp_Id    : Entity_Id;
           Temp_Typ   : Entity_Id;
--- 6767,6772 ----
*************** package body Exp_Ch3 is
*** 6231,6243 ****
        --
        --    * Controlled case
        --
!       --       if BIPfinalizationmaster = null then
        --          Temp_Id := <Alloc_Expr>;
        --       else
        --          declare
        --             type Ptr_Typ is access Ret_Typ;
!       --             for Ptr_Typ'Storage_Pool use
!       --                   Base_Pool (BIPfinalizationmaster.all).all;
        --             Local : Ptr_Typ;
        --
        --          begin
--- 6778,6789 ----
        --
        --    * Controlled case
        --
!       --       if BIPcollection = null then
        --          Temp_Id := <Alloc_Expr>;
        --       else
        --          declare
        --             type Ptr_Typ is access Ret_Typ;
!       --             for Ptr_Typ'Storage_Pool use BIPstoragepool.all;
        --             Local : Ptr_Typ;
        --
        --          begin
*************** package body Exp_Ch3 is
*** 6325,6456 ****
        function OK_To_Rename_Ref (N : Node_Id) return Boolean;
        --  Return True if N denotes an entity with OK_To_Rename set
  
-       --------------------------------
-       -- Build_Equivalent_Aggregate --
-       --------------------------------
- 
-       function Build_Equivalent_Aggregate return Boolean is
-          Aggr      : Node_Id;
-          Comp      : Entity_Id;
-          Discr     : Elmt_Id;
-          Full_Type : Entity_Id;
- 
-       begin
-          Full_Type := Typ;
- 
-          if Is_Private_Type (Typ) and then Present (Full_View (Typ)) then
-             Full_Type := Full_View (Typ);
-          end if;
- 
-          --  Only perform this transformation if Elaboration_Code is forbidden
-          --  or undesirable, and if this is a global entity of a constrained
-          --  record type.
- 
-          --  If Initialize_Scalars might be active this  transformation cannot
-          --  be performed either, because it will lead to different semantics
-          --  or because elaboration code will in fact be created.
- 
-          if Ekind (Full_Type) /= E_Record_Subtype
-            or else not Has_Discriminants (Full_Type)
-            or else not Is_Constrained (Full_Type)
-            or else Is_Controlled (Full_Type)
-            or else Is_Limited_Type (Full_Type)
-            or else not Restriction_Active (No_Initialize_Scalars)
-          then
-             return False;
-          end if;
- 
-          if Ekind (Current_Scope) = E_Package
-            and then
-              (Restriction_Active (No_Elaboration_Code)
-                or else Is_Preelaborated (Current_Scope))
-          then
-             --  Building a static aggregate is possible if the discriminants
-             --  have static values and the other components have static
-             --  defaults or none.
- 
-             Discr := First_Elmt (Discriminant_Constraint (Full_Type));
-             while Present (Discr) loop
-                if not Is_OK_Static_Expression (Node (Discr)) then
-                   return False;
-                end if;
- 
-                Next_Elmt (Discr);
-             end loop;
- 
-             --  Check that initialized components are OK, and that non-
-             --  initialized components do not require a call to their own
-             --  initialization procedure.
- 
-             Comp := First_Component (Full_Type);
-             while Present (Comp) loop
-                if Present (Expression (Parent (Comp)))
-                  and then
-                    not Is_OK_Static_Expression (Expression (Parent (Comp)))
-                then
-                   return False;
- 
-                elsif Has_Non_Null_Base_Init_Proc (Etype (Comp)) then
-                   return False;
- 
-                end if;
- 
-                Next_Component (Comp);
-             end loop;
- 
-             --  Everything is static, assemble the aggregate, discriminant
-             --  values first.
- 
-             Aggr :=
-                Make_Aggregate (Loc,
-                 Expressions            => New_List,
-                 Component_Associations => New_List);
- 
-             Discr := First_Elmt (Discriminant_Constraint (Full_Type));
-             while Present (Discr) loop
-                Append_To (Expressions (Aggr), New_Copy (Node (Discr)));
-                Next_Elmt (Discr);
-             end loop;
- 
-             --  Now collect values of initialized components
- 
-             Comp := First_Component (Full_Type);
-             while Present (Comp) loop
-                if Present (Expression (Parent (Comp))) then
-                   Append_To (Component_Associations (Aggr),
-                     Make_Component_Association (Loc,
-                       Choices    => New_List (New_Occurrence_Of (Comp, Loc)),
-                       Expression => New_Copy_Tree
-                                       (Expression (Parent (Comp)))));
-                end if;
- 
-                Next_Component (Comp);
-             end loop;
- 
-             --  Finally, box-initialize remaining components
- 
-             Append_To (Component_Associations (Aggr),
-               Make_Component_Association (Loc,
-                 Choices    => New_List (Make_Others_Choice (Loc)),
-                 Expression => Empty));
-             Set_Box_Present (Last (Component_Associations (Aggr)));
-             Set_Expression (N, Aggr);
- 
-             if Typ /= Full_Type then
-                Analyze_And_Resolve (Aggr, Full_View (Base_Type (Full_Type)));
-                Rewrite (Aggr, Unchecked_Convert_To (Typ, Aggr));
-                Analyze_And_Resolve (Aggr, Typ);
-             else
-                Analyze_And_Resolve (Aggr, Full_Type);
-             end if;
- 
-             return True;
- 
-          else
-             return False;
-          end if;
-       end Build_Equivalent_Aggregate;
- 
        ----------------------------------
        -- Build_Heap_Or_Pool_Allocator --
        ----------------------------------
--- 6871,6876 ----
*************** package body Exp_Ch3 is
*** 6468,6507 ****
  
           if Needs_Finalization (Ret_Typ) then
              declare
!                Decls      : constant List_Id := New_List;
!                Fin_Mas_Id : constant Entity_Id :=
!                  Build_In_Place_Formal (Func_Id, BIP_Finalization_Master);
!                Orig_Expr  : constant Node_Id := New_Copy_Tree (Alloc_Expr);
!                Stmts      : constant List_Id := New_List;
!                Local_Id   : Entity_Id;
!                Pool_Id    : Entity_Id;
!                Ptr_Typ    : Entity_Id;
  
              begin
                 --  Generate:
!                --    Pool_Id renames Base_Pool (BIPfinalizationmaster.all).all;
  
!                Pool_Id := Make_Temporary (Loc, 'P');
  
!                Append_To (Decls,
!                  Make_Object_Renaming_Declaration (Loc,
!                    Defining_Identifier => Pool_Id,
!                    Subtype_Mark        =>
!                      New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
!                    Name                =>
!                      Make_Explicit_Dereference (Loc,
!                        Prefix =>
!                          Make_Function_Call (Loc,
!                            Name                   =>
!                              New_Occurrence_Of (RTE (RE_Base_Pool), Loc),
!                            Parameter_Associations => New_List (
!                              Make_Explicit_Dereference (Loc,
!                                Prefix =>
!                                  New_Occurrence_Of (Fin_Mas_Id, Loc)))))));
  
                 --  Create an access type which uses the storage pool of the
!                --  caller's master. This additional type is necessary because
!                --  the finalization master cannot be associated with the type
                 --  of the temporary. Otherwise the secondary stack allocation
                 --  will fail.
  
--- 6888,6929 ----
  
           if Needs_Finalization (Ret_Typ) then
              declare
!                Decls       : constant List_Id := New_List;
!                Fin_Coll_Id : constant Entity_Id :=
!                  Build_In_Place_Formal (Func_Id, BIP_Collection);
!                Orig_Expr   : constant Node_Id := New_Copy_Tree (Alloc_Expr);
!                Stmts       : constant List_Id := New_List;
!                Local_Id    : Entity_Id;
!                Pool_Id     : Entity_Id;
!                Ptr_Typ     : Entity_Id;
  
              begin
                 --  Generate:
!                --    Pool_Id renames BIPstoragepool.all;
  
!                --  This formal is not added on ZFP as those targets do not
!                --  support pools.
  
!                if RTE_Available (RE_Root_Storage_Pool_Ptr) then
!                   Pool_Id := Make_Temporary (Loc, 'P');
! 
!                   Append_To (Decls,
!                     Make_Object_Renaming_Declaration (Loc,
!                       Defining_Identifier => Pool_Id,
!                       Subtype_Mark        =>
!                         New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
!                       Name                =>
!                         Make_Explicit_Dereference (Loc,
!                           New_Occurrence_Of
!                             (Build_In_Place_Formal
!                                (Func_Id, BIP_Storage_Pool), Loc))));
!                else
!                   Pool_Id := Empty;
!                end if;
  
                 --  Create an access type which uses the storage pool of the
!                --  caller. This additional type is necessary because the
!                --  finalization collection cannot be associated with the type
                 --  of the temporary. Otherwise the secondary stack allocation
                 --  will fail.
  
*************** package body Exp_Ch3 is
*** 6518,6528 ****
                         Subtype_Indication =>
                           New_Occurrence_Of (Ret_Typ, Loc))));
  
!                --  Perform minor decoration in order to set the master and the
!                --  storage pool attributes.
  
                 Mutate_Ekind                (Ptr_Typ, E_Access_Type);
!                Set_Finalization_Master     (Ptr_Typ, Fin_Mas_Id);
                 Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
  
                 --  Create the temporary, generate:
--- 6940,6950 ----
                         Subtype_Indication =>
                           New_Occurrence_Of (Ret_Typ, Loc))));
  
!                --  Perform minor decoration in order to set the collection and
!                --  the storage pool attributes.
  
                 Mutate_Ekind                (Ptr_Typ, E_Access_Type);
!                Set_Finalization_Collection (Ptr_Typ, Fin_Coll_Id);
                 Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
  
                 --  Create the temporary, generate:
*************** package body Exp_Ch3 is
*** 6535,6540 ****
--- 6957,6963 ----
                     Defining_Identifier => Local_Id,
                     Object_Definition   =>
                       New_Occurrence_Of (Ptr_Typ, Loc)));
+                Set_No_Initialization (Last (Decls));
  
                 --  Allocate the object, generate:
                 --    Local_Id := <Alloc_Expr>;
*************** package body Exp_Ch3 is
*** 6554,6566 ****
                       Unchecked_Convert_To (Temp_Typ,
                         New_Occurrence_Of (Local_Id, Loc))));
  
!                --  Wrap the allocation in a block. This is further conditioned
!                --  by checking the caller finalization master at runtime. A
!                --  null value indicates a non-existent master, most likely due
!                --  to a Finalize_Storage_Only allocation.
  
                 --  Generate:
!                --    if BIPfinalizationmaster = null then
                 --       Temp_Id := <Orig_Expr>;
                 --    else
                 --       declare
--- 6977,6987 ----
                       Unchecked_Convert_To (Temp_Typ,
                         New_Occurrence_Of (Local_Id, Loc))));
  
!                --  Wrap the allocation in a block to make it conditioned by the
!                --  presence of the caller's collection at run time.
  
                 --  Generate:
!                --    if BIPcollection = null then
                 --       Temp_Id := <Orig_Expr>;
                 --    else
                 --       declare
*************** package body Exp_Ch3 is
*** 6574,6580 ****
                   Make_If_Statement (Loc,
                     Condition       =>
                       Make_Op_Eq (Loc,
!                        Left_Opnd  => New_Occurrence_Of (Fin_Mas_Id, Loc),
                         Right_Opnd => Make_Null (Loc)),
  
                     Then_Statements => New_List (
--- 6995,7001 ----
                   Make_If_Statement (Loc,
                     Condition       =>
                       Make_Op_Eq (Loc,
!                        Left_Opnd  => New_Occurrence_Of (Fin_Coll_Id, Loc),
                         Right_Opnd => Make_Null (Loc)),
  
                     Then_Statements => New_List (
*************** package body Exp_Ch3 is
*** 6720,6726 ****
                 --  Then multiply the result by the size of the array
  
                 declare
!                   Quantity : constant Int := Number_Of_Elements_In_Array (Typ);
                    --  Number_Of_Elements_In_Array is non-trival, consequently
                    --  its result is captured as an optimization.
  
--- 7141,7147 ----
                 --  Then multiply the result by the size of the array
  
                 declare
!                   Quantity : constant Nat := Number_Of_Elements_In_Array (Typ);
                    --  Number_Of_Elements_In_Array is non-trival, consequently
                    --  its result is captured as an optimization.
  
*************** package body Exp_Ch3 is
*** 6734,6760 ****
                 | E_Record_Subtype
                 | E_Record_Type
              =>
!                Component := First_Component_Or_Discriminant (Typ);
  
                 --  Recursively descend each component of the composite type
!                --  looking for tasks, but only if the component is marked as
!                --  having a task.
  
                 while Present (Component) loop
!                   if Has_Task (Etype (Component)) then
!                      declare
!                         P : Int;
!                         S : Int;
  
!                      begin
!                         Count_Default_Sized_Task_Stacks
!                           (Etype (Component), P, S);
!                         Pri_Stacks := Pri_Stacks + P;
!                         Sec_Stacks := Sec_Stacks + S;
!                      end;
!                   end if;
  
!                   Next_Component_Or_Discriminant (Component);
                 end loop;
  
              when E_Limited_Private_Subtype
--- 7155,7177 ----
                 | E_Record_Subtype
                 | E_Record_Type
              =>
!                Component := First_Component (Typ);
  
                 --  Recursively descend each component of the composite type
!                --  looking for tasks.
  
                 while Present (Component) loop
!                   declare
!                      P : Int;
!                      S : Int;
  
!                   begin
!                      Count_Default_Sized_Task_Stacks (Etype (Component), P, S);
!                      Pri_Stacks := Pri_Stacks + P;
!                      Sec_Stacks := Sec_Stacks + S;
!                   end;
  
!                   Next_Component (Component);
                 end loop;
  
              when E_Limited_Private_Subtype
*************** package body Exp_Ch3 is
*** 6780,6853 ****
        -------------------------------
  
        procedure Default_Initialize_Object (After : Node_Id) is
!          function New_Object_Reference return Node_Id;
!          --  Return a new reference to Def_Id with attributes Assignment_OK and
!          --  Must_Not_Freeze already set.
! 
!          function Simple_Initialization_OK
!            (Init_Typ : Entity_Id) return Boolean;
!          --  Determine whether object declaration N with entity Def_Id needs
!          --  simple initialization, assuming that it is of type Init_Typ.
! 
!          --------------------------
!          -- New_Object_Reference --
!          --------------------------
! 
!          function New_Object_Reference return Node_Id is
!             Obj_Ref : constant Node_Id := New_Occurrence_Of (Def_Id, Loc);
! 
!          begin
!             --  The call to the type init proc or [Deep_]Finalize must not
!             --  freeze the related object as the call is internally generated.
!             --  This way legal rep clauses that apply to the object will not be
!             --  flagged. Note that the initialization call may be removed if
!             --  pragma Import is encountered or moved to the freeze actions of
!             --  the object because of an address clause.
! 
!             Set_Assignment_OK   (Obj_Ref);
!             Set_Must_Not_Freeze (Obj_Ref);
! 
!             return Obj_Ref;
!          end New_Object_Reference;
! 
!          ------------------------------
!          -- Simple_Initialization_OK --
!          ------------------------------
! 
!          function Simple_Initialization_OK
!            (Init_Typ : Entity_Id) return Boolean
!          is
!          begin
!             --  Do not consider the object declaration if it comes with an
!             --  initialization expression, or is internal in which case it
!             --  will be assigned later.
! 
!             return
!               not Is_Internal (Def_Id)
!                 and then not Has_Init_Expression (N)
!                 and then Needs_Simple_Initialization
!                            (Typ         => Init_Typ,
!                             Consider_IS =>
!                               Initialize_Scalars
!                                 and then No (Following_Address_Clause (N)));
!          end Simple_Initialization_OK;
! 
!          --  Local variables
! 
!          Exceptions_OK : constant Boolean :=
!                            not Restriction_Active (No_Exception_Propagation);
  
!          Aggr_Init  : Node_Id;
!          Comp_Init  : List_Id := No_List;
!          Fin_Block  : Node_Id;
!          Fin_Call   : Node_Id;
!          Init_Stmts : List_Id := No_List;
!          Obj_Init   : Node_Id := Empty;
!          Obj_Ref    : Node_Id;
  
!       --  Start of processing for Default_Initialize_Object
  
-       begin
           --  Default initialization is suppressed for objects that are already
           --  known to be imported (i.e. whose declaration specifies the Import
           --  aspect). Note that for objects with a pragma Import, we generate
--- 7197,7212 ----
        -------------------------------
  
        procedure Default_Initialize_Object (After : Node_Id) is
!          Init_Expr  : Node_Id;
!          Init_Stmts : List_Id;
  
!       begin
!          --  Nothing to do if the object has an initialization expression or
!          --  need not be initialized.
  
!          if Has_Init_Expression (N) or else No_Initialization (N) then
!             return;
  
           --  Default initialization is suppressed for objects that are already
           --  known to be imported (i.e. whose declaration specifies the Import
           --  aspect). Note that for objects with a pragma Import, we generate
*************** package body Exp_Ch3 is
*** 6855,6861 ****
           --  the pragma. It is also suppressed for variables for which a pragma
           --  Suppress_Initialization has been explicitly given
  
!          if Is_Imported (Def_Id) or else Suppress_Initialization (Def_Id) then
              return;
  
           --  Nothing to do if the object being initialized is of a task type
--- 7214,7222 ----
           --  the pragma. It is also suppressed for variables for which a pragma
           --  Suppress_Initialization has been explicitly given
  
!          elsif Is_Imported (Def_Id)
!            or else Suppress_Initialization (Def_Id)
!          then
              return;
  
           --  Nothing to do if the object being initialized is of a task type
*************** package body Exp_Ch3 is
*** 6868,7135 ****
              return;
           end if;
  
!          --  The expansion performed by this routine is as follows:
! 
!          --    begin
!          --       Abort_Defer;
!          --       Type_Init_Proc (Obj);
! 
!          --       begin
!          --          [Deep_]Initialize (Obj);
! 
!          --       exception
!          --          when others =>
!          --             [Deep_]Finalize (Obj, Self => False);
!          --             raise;
!          --       end;
!          --    at end
!          --       Abort_Undefer_Direct;
!          --    end;
! 
!          --  Initialize the components of the object
! 
!          if Has_Non_Null_Base_Init_Proc (Typ)
!            and then not No_Initialization (N)
!            and then not Initialization_Suppressed (Typ)
!          then
!             --  Do not initialize the components if No_Default_Initialization
!             --  applies as the actual restriction check will occur later when
!             --  the object is frozen as it is not known yet whether the object
!             --  is imported or not.
! 
!             if not Restriction_Active (No_Default_Initialization) then
! 
!                --  If the values of the components are compile-time known, use
!                --  their prebuilt aggregate form directly.
! 
!                Aggr_Init := Static_Initialization (Base_Init_Proc (Typ));
! 
!                if Present (Aggr_Init) then
!                   Set_Expression (N,
!                     New_Copy_Tree (Aggr_Init, New_Scope => Current_Scope));
! 
!                --  If type has discriminants, try to build an equivalent
!                --  aggregate using discriminant values from the declaration.
!                --  This is a useful optimization, in particular if restriction
!                --  No_Elaboration_Code is active.
! 
!                elsif Build_Equivalent_Aggregate then
!                   null;
! 
!                --  Optimize the default initialization of an array object when
!                --  pragma Initialize_Scalars or Normalize_Scalars is in effect.
!                --  Construct an in-place initialization aggregate which may be
!                --  convert into a fast memset by the backend.
! 
!                elsif Init_Or_Norm_Scalars
!                  and then Is_Array_Type (Typ)
! 
!                  --  The array must lack atomic components because they are
!                  --  treated as non-static, and as a result the backend will
!                  --  not initialize the memory in one go.
! 
!                  and then not Has_Atomic_Components (Typ)
! 
!                  --  The array must not be packed because the invalid values
!                  --  in System.Scalar_Values are multiples of Storage_Unit.
! 
!                  and then not Is_Packed (Typ)
! 
!                  --  The array must have static non-empty ranges, otherwise
!                  --  the backend cannot initialize the memory in one go.
! 
!                  and then Has_Static_Non_Empty_Array_Bounds (Typ)
! 
!                  --  The optimization is only relevant for arrays of scalar
!                  --  types.
! 
!                  and then Is_Scalar_Type (Component_Type (Typ))
! 
!                  --  Similar to regular array initialization using a type
!                  --  init proc, predicate checks are not performed because the
!                  --  initialization values are intentionally invalid, and may
!                  --  violate the predicate.
! 
!                  and then not Has_Predicates (Component_Type (Typ))
! 
!                  --  Array default component value takes precedence over
!                  --  Init_Or_Norm_Scalars.
! 
!                  and then No (Find_Aspect (Typ,
!                                            Aspect_Default_Component_Value))
! 
!                  --  The component type must have a single initialization value
! 
!                  and then Simple_Initialization_OK (Component_Type (Typ))
!                then
!                   Set_No_Initialization (N, False);
!                   Set_Expression (N,
!                     Get_Simple_Init_Val
!                       (Typ  => Typ,
!                        N    => Obj_Def,
!                        Size => (if Known_Esize (Def_Id) then Esize (Def_Id)
!                                 else Uint_0)));
! 
!                   Analyze_And_Resolve
!                     (Expression (N), Typ, Suppress => All_Checks);
! 
!                --  Otherwise invoke the type init proc, generate:
!                --    Type_Init_Proc (Obj);
! 
!                else
!                   Obj_Ref := New_Object_Reference;
! 
!                   if Comes_From_Source (Def_Id) then
!                      Initialization_Warning (Obj_Ref);
!                   end if;
! 
!                   Comp_Init := Build_Initialization_Call (Loc, Obj_Ref, Typ);
!                end if;
!             end if;
! 
!          --  Provide a default value if the object needs simple initialization
! 
!          elsif Simple_Initialization_OK (Typ) then
!             Set_No_Initialization (N, False);
!             Set_Expression (N,
!               Get_Simple_Init_Val
!                 (Typ  => Typ,
!                  N    => Obj_Def,
!                  Size =>
!                    (if Known_Esize (Def_Id) then Esize (Def_Id) else Uint_0)));
! 
!             Analyze_And_Resolve (Expression (N), Typ);
!          end if;
  
!          --  Initialize the object, generate:
!          --    [Deep_]Initialize (Obj);
  
!          if Needs_Finalization (Typ) and then not No_Initialization (N) then
!             Obj_Init :=
!               Make_Init_Call
!                 (Obj_Ref => New_Object_Reference,
!                  Typ     => Typ);
           end if;
  
!          --  Build a special finalization block when both the object and its
!          --  controlled components are to be initialized. The block finalizes
!          --  the components if the object initialization fails. Generate:
! 
!          --    begin
!          --       <Obj_Init>
! 
!          --    exception
!          --       when others =>
!          --          <Fin_Call>
!          --          raise;
!          --    end;
! 
!          if Has_Controlled_Component (Typ)
!            and then Present (Comp_Init)
!            and then Present (Obj_Init)
!            and then Exceptions_OK
!          then
!             Init_Stmts := Comp_Init;
! 
!             Fin_Call :=
!               Make_Final_Call
!                 (Obj_Ref   => New_Object_Reference,
!                  Typ       => Typ,
!                  Skip_Self => True);
! 
!             if Present (Fin_Call) then
! 
!                --  Do not emit warnings related to the elaboration order when a
!                --  controlled object is declared before the body of Finalize is
!                --  seen.
! 
!                if Legacy_Elaboration_Checks then
!                   Set_No_Elaboration_Check (Fin_Call);
!                end if;
! 
!                Fin_Block :=
!                  Make_Block_Statement (Loc,
!                    Declarations               => No_List,
! 
!                    Handled_Statement_Sequence =>
!                      Make_Handled_Sequence_Of_Statements (Loc,
!                        Statements         => New_List (Obj_Init),
! 
!                        Exception_Handlers => New_List (
!                          Make_Exception_Handler (Loc,
!                            Exception_Choices => New_List (
!                              Make_Others_Choice (Loc)),
! 
!                            Statements        => New_List (
!                              Fin_Call,
!                              Make_Raise_Statement (Loc))))));
! 
!                --  Signal the ABE mechanism that the block carries out
!                --  initialization actions.
! 
!                Set_Is_Initialization_Block (Fin_Block);
! 
!                Append_To (Init_Stmts, Fin_Block);
!             end if;
! 
!          --  Otherwise finalization is not required, the initialization calls
!          --  are passed to the abort block building circuitry, generate:
! 
!          --    Type_Init_Proc (Obj);
!          --    [Deep_]Initialize (Obj);
  
           else
!             if Present (Comp_Init) then
!                Init_Stmts := Comp_Init;
!             end if;
! 
!             if Present (Obj_Init) then
!                if No (Init_Stmts) then
!                   Init_Stmts := New_List;
!                end if;
! 
!                Append_To (Init_Stmts, Obj_Init);
!             end if;
!          end if;
! 
!          --  Build an abort block to protect the initialization calls
! 
!          if Abort_Allowed
!            and then Present (Comp_Init)
!            and then Present (Obj_Init)
!          then
!             --  Generate:
!             --    Abort_Defer;
! 
!             Prepend_To (Init_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
! 
!             --  When exceptions are propagated, abort deferral must take place
!             --  in the presence of initialization or finalization exceptions.
!             --  Generate:
! 
!             --    begin
!             --       Abort_Defer;
!             --       <Init_Stmts>
!             --    at end
!             --       Abort_Undefer_Direct;
!             --    end;
! 
!             if Exceptions_OK then
!                Init_Stmts := New_List (
!                  Build_Abort_Undefer_Block (Loc,
!                    Stmts   => Init_Stmts,
!                    Context => N));
! 
!             --  Otherwise exceptions are not propagated. Generate:
! 
!             --    Abort_Defer;
!             --    <Init_Stmts>
!             --    Abort_Undefer;
! 
!             else
!                Append_To (Init_Stmts,
!                  Build_Runtime_Call (Loc, RE_Abort_Undefer));
!             end if;
           end if;
  
           --  Insert the whole initialization sequence into the tree. If the
--- 7229,7253 ----
              return;
           end if;
  
!          --  First try a simple initialization; if it succeeds, then we just
!          --  set the value as the expression of the declaration and let the
!          --  code generator do the rest.
  
!          Init_Expr := Build_Default_Simple_Initialization (N, Typ, Def_Id);
  
!          if Present (Init_Expr) then
!             Set_Expression (N, Init_Expr);
!             Analyze_And_Resolve (Init_Expr, Typ);
!             return;
           end if;
  
!          --  Or else build the fully-fledged initialization if need be
  
+          if Is_Mutably_Tagged_Type (Typ) then
+             Init_Stmts :=
+               Build_Default_Initialization (N, Etype (Typ), Def_Id);
           else
!             Init_Stmts := Build_Default_Initialization (N, Typ, Def_Id);
           end if;
  
           --  Insert the whole initialization sequence into the tree. If the
*************** package body Exp_Ch3 is
*** 7222,7229 ****
  
           --  However, there are exceptions in the latter case for interfaces
           --  (see Analyze_Object_Declaration), as well as class-wide types and
!          --  types with unknown discriminants if they are additionally limited
!          --  (see Expand_Subtype_From_Expr), so we must cope with them.
  
           elsif Is_Interface (Typ) then
              pragma Assert (Is_Class_Wide_Type (Typ));
--- 7340,7348 ----
  
           --  However, there are exceptions in the latter case for interfaces
           --  (see Analyze_Object_Declaration), as well as class-wide types and
!          --  types with unknown discriminants if they have no underlying record
!          --  view or are inherently limited (see Expand_Subtype_From_Expr), so
!          --  we must cope with them.
  
           elsif Is_Interface (Typ) then
              pragma Assert (Is_Class_Wide_Type (Typ));
*************** package body Exp_Ch3 is
*** 7255,7261 ****
  
           else pragma Assert (Is_Definite_Subtype (Typ)
             or else (Has_Unknown_Discriminants (Typ)
!                      and then Is_Inherently_Limited_Type (Typ)));
  
              Alloc_Typ := Typ;
           end if;
--- 7374,7381 ----
  
           else pragma Assert (Is_Definite_Subtype (Typ)
             or else (Has_Unknown_Discriminants (Typ)
!                      and then (No (Underlying_Record_View (Typ))
!                                 or else Is_Inherently_Limited_Type (Typ))));
  
              Alloc_Typ := Typ;
           end if;
*************** package body Exp_Ch3 is
*** 7439,7449 ****
          and then not Restriction_Active (No_Secondary_Stack)
          and then (Restriction_Active (No_Implicit_Heap_Allocations)
            or else Restriction_Active (No_Implicit_Task_Allocations))
!         and then not (Ekind (Typ) in E_Array_Type | E_Array_Subtype
!                       and then Has_Init_Expression (N))
        then
           declare
!             PS_Count, SS_Count : Int := 0;
           begin
              Count_Default_Sized_Task_Stacks (Typ, PS_Count, SS_Count);
              Increment_Primary_Stack_Count (PS_Count);
--- 7559,7568 ----
          and then not Restriction_Active (No_Secondary_Stack)
          and then (Restriction_Active (No_Implicit_Heap_Allocations)
            or else Restriction_Active (No_Implicit_Task_Allocations))
!         and then not (Is_Array_Type (Typ) and then Has_Init_Expression (N))
        then
           declare
!             PS_Count, SS_Count : Int;
           begin
              Count_Default_Sized_Task_Stacks (Typ, PS_Count, SS_Count);
              Increment_Primary_Stack_Count (PS_Count);
*************** package body Exp_Ch3 is
*** 7498,7505 ****
                or else Has_Aspect (Def_Id, Aspect_Address)
              then
                 Ensure_Freeze_Node (Def_Id);
-                Set_Has_Delayed_Freeze (Def_Id);
-                Set_Is_Frozen (Def_Id, False);
  
                 if not Partial_View_Has_Unknown_Discr (Typ) then
                    Append_Freeze_Action (Def_Id,
--- 7617,7622 ----
*************** package body Exp_Ch3 is
*** 7512,7519 ****
--- 7629,7655 ----
              end if;
           end if;
  
+          --  For a special return object, the initialization must wait until
+          --  after the object is turned into an allocator.
+ 
           if not Special_Ret_Obj then
              Default_Initialize_Object (Init_After);
+ 
+             --  Check whether the object has been initialized above
+ 
+             if Present (Expression (N)) then
+                if Is_Access_Type (Typ) then
+                   if Known_Non_Null (Expression (N)) then
+                      Set_Is_Known_Non_Null (Def_Id);
+                   elsif Known_Null (Expression (N)) then
+                      Set_Is_Known_Null (Def_Id);
+                   end if;
+                end if;
+ 
+                if Is_Delayed_Aggregate (Expression (N)) then
+                   Convert_Aggr_In_Object_Decl (N);
+                end if;
+             end if;
           end if;
  
           --  Generate attribute for Persistent_BSS if needed
*************** package body Exp_Ch3 is
*** 7525,7546 ****
             and then Is_Library_Level_Entity (Def_Id)
           then
              declare
!                Prag : Node_Id;
              begin
-                Prag :=
-                  Make_Linker_Section_Pragma
-                    (Def_Id, Sloc (N), ".persistent.bss");
                 Insert_After (N, Prag);
                 Analyze (Prag);
              end;
           end if;
  
-          --  If access type, then we know it is null if not initialized
- 
-          if Is_Access_Type (Typ) then
-             Set_Is_Known_Null (Def_Id);
-          end if;
- 
        --  Explicit initialization present
  
        else
--- 7661,7674 ----
             and then Is_Library_Level_Entity (Def_Id)
           then
              declare
!                Prag : constant Node_Id :=
!                  Make_Linker_Section_Pragma (Def_Id, Loc, ".persistent.bss");
              begin
                 Insert_After (N, Prag);
                 Analyze (Prag);
              end;
           end if;
  
        --  Explicit initialization present
  
        else
*************** package body Exp_Ch3 is
*** 7548,7579 ****
  
           Expr_Q := Unqualify (Expr);
  
!          --  When we have the appropriate type of aggregate in the expression
!          --  (it has been determined during analysis of the aggregate by
!          --  setting the delay flag), let's perform in place assignment and
!          --  thus avoid creating a temporary.
  
           if Is_Delayed_Aggregate (Expr_Q) then
  
!             --  An aggregate that must be built in place is not resolved and
!             --  expanded until the enclosing construct is expanded. This will
!             --  happen when the aggregate is limited and the declared object
!             --  has a following address clause; it happens also when generating
!             --  C code for an aggregate that has an alignment or address clause
!             --  (see Analyze_Object_Declaration). Resolution is done without
!             --  expansion because it will take place when the declaration
!             --  itself is expanded.
  
!             if (Is_Limited_Type (Typ) or else Modify_Tree_For_C)
!               and then not Analyzed (Expr)
!             then
!                Expander_Mode_Save_And_Set (False);
!                Resolve (Expr, Typ);
!                Expander_Mode_Restore;
              end if;
  
              if not Special_Ret_Obj then
!                Convert_Aggr_In_Object_Decl (N);
              end if;
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
--- 7676,7729 ----
  
           Expr_Q := Unqualify (Expr);
  
!          --  When we have the appropriate kind of aggregate in the expression
!          --  (this has been determined during analysis of the aggregate by
!          --  setting the Expansion_Delayed flag), let's perform in place
!          --  assignment and thus avoid creating a temporary.
  
           if Is_Delayed_Aggregate (Expr_Q) then
  
!             --  For a special return object, the transformation must wait until
!             --  after the object is turned into an allocator.
  
!             if not Special_Ret_Obj then
!                Convert_Aggr_In_Object_Decl (N);
              end if;
  
+          --  If the initialization expression is a conditional expression whose
+          --  expansion has been delayed, assign it explicitly to the object but
+          --  only after analyzing it again and expanding it.
+ 
+          elsif Is_Delayed_Conditional_Expression (Expr_Q) then
+             --  For a special return object, the transformation must wait until
+             --  after the object is turned into an allocator, and will be done
+             --  during the expansion of the allocator.
+ 
              if not Special_Ret_Obj then
!                declare
!                   Rhs    : constant Node_Id := Relocate_Node (Expr);
!                   Assign : constant Node_Id :=
!                     Make_Assignment_Statement (Loc,
!                       Name       => New_Occurrence_Of (Def_Id, Loc),
!                       Expression => Rhs);
! 
!                begin
!                   Set_Assignment_OK (Name (Assign));
!                   Unanalyze_Delayed_Conditional_Expression (Rhs);
!                   Set_No_Finalize_Actions (Assign);
!                   Insert_Action_After (Init_After, Assign);
! 
!                   --  Save the assignment statement when declaring a controlled
!                   --  object. This reference is used later by the finalization
!                   --  machinery to mark the object as successfully initialized
! 
!                   if Needs_Finalization (Typ) then
!                      Set_Last_Aggregate_Assignment (Def_Id, Assign);
!                   end if;
! 
!                   Set_Expression (N, Empty);
!                   Set_No_Initialization (N);
!                end;
              end if;
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
*************** package body Exp_Ch3 is
*** 7982,7988 ****
              Tag_Assign := Make_Tag_Assignment (N);
  
              if Present (Tag_Assign) then
!                if Present (Following_Address_Clause (N)) then
                    Ensure_Freeze_Node (Def_Id);
                 elsif not Special_Ret_Obj then
                    Insert_Action_After (Init_After, Tag_Assign);
--- 8132,8140 ----
              Tag_Assign := Make_Tag_Assignment (N);
  
              if Present (Tag_Assign) then
!                if Present (Following_Address_Clause (N))
!                  or else Has_Aspect (Def_Id, Aspect_Address)
!                then
                    Ensure_Freeze_Node (Def_Id);
                 elsif not Special_Ret_Obj then
                    Insert_Action_After (Init_After, Tag_Assign);
*************** package body Exp_Ch3 is
*** 8005,8011 ****
                    Set_Assignment_OK (Id_Ref);
  
                    Insert_Actions_After (Init_After,
!                     Build_Initialization_Call (Loc, Id_Ref, Typ,
                        Constructor_Ref => Expr));
  
                    --  We remove here the original call to the constructor
--- 8157,8163 ----
                    Set_Assignment_OK (Id_Ref);
  
                    Insert_Actions_After (Init_After,
!                     Build_Initialization_Call (N, Id_Ref, Typ,
                        Constructor_Ref => Expr));
  
                    --  We remove here the original call to the constructor
*************** package body Exp_Ch3 is
*** 8186,8195 ****
           --  An Ada 2012 stand-alone object of an anonymous access type
  
           declare
-             Loc : constant Source_Ptr := Sloc (N);
- 
              Level : constant Entity_Id :=
!                       Make_Defining_Identifier (Sloc (N),
                          Chars =>
                            New_External_Name (Chars (Def_Id), Suffix => "L"));
  
--- 8338,8345 ----
           --  An Ada 2012 stand-alone object of an anonymous access type
  
           declare
              Level : constant Entity_Id :=
!                       Make_Defining_Identifier (Loc,
                          Chars =>
                            New_External_Name (Chars (Def_Id), Suffix => "L"));
  
*************** package body Exp_Ch3 is
*** 8638,8660 ****
  
                        Else_Statements => New_List (Guard_Except));
  
!                      --  If a separate initialization assignment was created
!                      --  earlier, append that following the assignment of the
!                      --  implicit access formal to the access object, to ensure
!                      --  that the return object is initialized in that case. In
!                      --  this situation, the target of the assignment must be
!                      --  rewritten to denote a dereference of the access to the
!                      --  return object passed in by the caller.
  
!                      if Present (Init_Stmt) then
!                         Set_Name (Init_Stmt,
!                           Make_Explicit_Dereference (Loc,
!                             Prefix => New_Occurrence_Of (Alloc_Obj_Id, Loc)));
!                         Set_Assignment_OK (Name (Init_Stmt));
  
!                         Append_To (Then_Statements (Alloc_Stmt), Init_Stmt);
!                         Init_Stmt := Empty;
!                      end if;
  
                    Insert_Action (N, Alloc_Stmt, Suppress => All_Checks);
  
--- 8788,8810 ----
  
                        Else_Statements => New_List (Guard_Except));
  
!                   --  If a separate initialization assignment was created
!                   --  earlier, append that following the assignment of the
!                   --  implicit access formal to the access object, to ensure
!                   --  that the return object is initialized in that case. In
!                   --  this situation, the target of the assignment must be
!                   --  rewritten to denote a dereference of the access to the
!                   --  return object passed in by the caller.
  
!                   if Present (Init_Stmt) then
!                      Set_Name (Init_Stmt,
!                        Make_Explicit_Dereference (Loc,
!                          Prefix => New_Occurrence_Of (Alloc_Obj_Id, Loc)));
!                      Set_Assignment_OK (Name (Init_Stmt));
  
!                      Append_To (Then_Statements (Alloc_Stmt), Init_Stmt);
!                      Init_Stmt := Empty;
!                   end if;
  
                    Insert_Action (N, Alloc_Stmt, Suppress => All_Checks);
  
*************** package body Exp_Ch3 is
*** 8733,8738 ****
--- 8883,8896 ----
              Initialize_Return_Object
                (Tag_Assign, Adj_Call, Expr_Q, Init_Stmt, Init_After);
  
+             --  Save the assignment statement when returning a controlled
+             --  object. This reference is used later by the finalization
+             --  machinery to mark the object as successfully initialized.
+ 
+             if Present (Init_Stmt) and then Needs_Finalization (Typ) then
+                Set_Last_Aggregate_Assignment (Def_Id, Init_Stmt);
+             end if;
+ 
              --  Replace the return object declaration with a renaming of a
              --  dereference of the access value designating the return object.
  
*************** package body Exp_Ch3 is
*** 8954,8988 ****
        --  illegal code if written by hand, but that's OK.
  
        if Rewrite_As_Renaming then
!          Rewrite (N,
!            Make_Object_Renaming_Declaration (Loc,
!              Defining_Identifier => Def_Id,
!              Subtype_Mark        => New_Occurrence_Of (Etype (Def_Id), Loc),
!              Name                => Expr_Q));
! 
!          --  Keep original aspects
! 
!          Move_Aspects (Original_Node (N), N);
! 
!          --  We do not analyze this renaming declaration, because all its
!          --  components have already been analyzed, and if we were to go
!          --  ahead and analyze it, we would in effect be trying to generate
!          --  another declaration of X, which won't do.
! 
!          Set_Renamed_Object (Def_Id, Expr_Q);
!          Set_Analyzed (N);
! 
!          --  We do need to deal with debug issues for this renaming
! 
!          --  First, if entity comes from source, then mark it as needing
!          --  debug information, even though it is defined by a generated
!          --  renaming that does not come from source.
! 
!          Set_Debug_Info_Defining_Id (N);
! 
!          --  Now call the routine to generate debug info for the renaming
! 
!          Insert_Action (N, Debug_Renaming_Declaration (N));
        end if;
  
     --  Exception on library entity not available
--- 9112,9118 ----
        --  illegal code if written by hand, but that's OK.
  
        if Rewrite_As_Renaming then
!          Rewrite_Object_Declaration_As_Renaming (N, Expr_Q);
        end if;
  
     --  Exception on library entity not available
*************** package body Exp_Ch3 is
*** 9174,9180 ****
            Defining_Identifier => Parent_N,
            Component_Definition =>
              Make_Component_Definition (Loc,
-               Aliased_Present => False,
                Subtype_Indication => New_Occurrence_Of (Par_Subtype, Loc)));
  
        if Null_Present (Rec_Ext_Part) then
--- 9304,9309 ----
*************** package body Exp_Ch3 is
*** 9232,9238 ****
            Defining_Identifier => First_Tag_Component (T),
            Component_Definition =>
              Make_Component_Definition (Sloc_N,
-               Aliased_Present => False,
                Subtype_Indication => New_Occurrence_Of (RTE (RE_Tag), Sloc_N)));
  
        if Null_Present (Comp_List)
--- 9361,9366 ----
*************** package body Exp_Ch3 is
*** 9309,9318 ****
        --  Validate and generate stubs for all RACW types associated with type
        --  Typ.
  
-       procedure Process_Pending_Access_Types (Typ : Entity_Id);
-       --  Associate type Typ's Finalize_Address primitive with the finalization
-       --  masters of pending access-to-Typ types.
- 
        ------------------------
        -- Process_RACW_Types --
        ------------------------
--- 9437,9442 ----
*************** package body Exp_Ch3 is
*** 9342,9402 ****
           end if;
        end Process_RACW_Types;
  
-       ----------------------------------
-       -- Process_Pending_Access_Types --
-       ----------------------------------
- 
-       procedure Process_Pending_Access_Types (Typ : Entity_Id) is
-          E : Elmt_Id;
- 
-       begin
-          --  Finalize_Address is not generated in CodePeer mode because the
-          --  body contains address arithmetic. This processing is disabled.
- 
-          if CodePeer_Mode then
-             null;
- 
-          --  Certain itypes are generated for contexts that cannot allocate
-          --  objects and should not set primitive Finalize_Address.
- 
-          elsif Is_Itype (Typ)
-            and then Nkind (Associated_Node_For_Itype (Typ)) =
-                       N_Explicit_Dereference
-          then
-             null;
- 
-          --  When an access type is declared after the incomplete view of a
-          --  Taft-amendment type, the access type is considered pending in
-          --  case the full view of the Taft-amendment type is controlled. If
-          --  this is indeed the case, associate the Finalize_Address routine
-          --  of the full view with the finalization masters of all pending
-          --  access types. This scenario applies to anonymous access types as
-          --  well. But the Finalize_Address routine is missing if the type is
-          --  class-wide and we are under restriction No_Dispatching_Calls, see
-          --  Expand_Freeze_Class_Wide_Type above for the rationale.
- 
-          elsif Needs_Finalization (Typ)
-            and then (not Is_Class_Wide_Type (Typ)
-                       or else not Restriction_Active (No_Dispatching_Calls))
-            and then Present (Pending_Access_Types (Typ))
-          then
-             E := First_Elmt (Pending_Access_Types (Typ));
-             while Present (E) loop
- 
-                --  Generate:
-                --    Set_Finalize_Address
-                --      (Ptr_Typ, <Typ>FD'Unrestricted_Access);
- 
-                Append_Freeze_Action (Typ,
-                  Make_Set_Finalize_Address_Call
-                    (Loc     => Sloc (N),
-                     Ptr_Typ => Node (E)));
- 
-                Next_Elmt (E);
-             end loop;
-          end if;
-       end Process_Pending_Access_Types;
- 
        --  Local variables
  
        Def_Id : constant Entity_Id := Entity (N);
--- 9466,9471 ----
*************** package body Exp_Ch3 is
*** 9647,9668 ****
              then
                 null;
  
!             --  Create a finalization master for an access-to-controlled type
!             --  or an access-to-incomplete type. It is assumed that the full
!             --  view will be controlled.
  
              elsif Needs_Finalization (Desig_Type)
                or else (Is_Incomplete_Type (Desig_Type)
                          and then No (Full_View (Desig_Type)))
              then
!                Build_Finalization_Master (Def_Id);
  
!             --  Create a finalization master when the designated type contains
!             --  a private component. It is assumed that the full view will be
!             --  controlled.
  
              elsif Has_Private_Component (Desig_Type) then
!                Build_Finalization_Master
                   (Typ            => Def_Id,
                    For_Private    => True,
                    Context_Scope  => Scope (Def_Id),
--- 9716,9737 ----
              then
                 null;
  
!             --  Create a finalization collection for an access-to-controlled
!             --  type or an access-to-incomplete type. It is assumed that the
!             --  full view will be controlled.
  
              elsif Needs_Finalization (Desig_Type)
                or else (Is_Incomplete_Type (Desig_Type)
                          and then No (Full_View (Desig_Type)))
              then
!                Build_Finalization_Collection (Def_Id);
  
!             --  Also create a finalization collection when the designated type
!             --  contains a private component. It is assumed that the full view
!             --  will be controlled.
  
              elsif Has_Private_Component (Desig_Type) then
!                Build_Finalization_Collection
                   (Typ            => Def_Id,
                    For_Private    => True,
                    Context_Scope  => Scope (Def_Id),
*************** package body Exp_Ch3 is
*** 9705,9715 ****
  
        end if;
  
-       --  Complete the initialization of all pending access types' finalization
-       --  masters now that the designated type has been is frozen and primitive
-       --  Finalize_Address generated.
- 
-       Process_Pending_Access_Types (Def_Id);
        Freeze_Stream_Operations (N, Def_Id);
  
        --  Generate the [spec and] body of the invariant procedure tasked with
--- 9774,9779 ----
*************** package body Exp_Ch3 is
*** 10141,10147 ****
           if Nkind (Expr) = N_Unchecked_Type_Conversion
             and then Is_Scalar_Type (Under_Typ)
           then
!             Set_No_Truncation (Expr);
           end if;
  
           return Expr;
--- 10205,10212 ----
           if Nkind (Expr) = N_Unchecked_Type_Conversion
             and then Is_Scalar_Type (Under_Typ)
           then
!             Set_Kill_Range_Check (Expr);
!             Set_No_Truncation    (Expr);
           end if;
  
           return Expr;
*************** package body Exp_Ch3 is
*** 10318,10380 ****
          (Decl     : Node_Id;
           Rec_Type : Entity_Id) return Boolean
        is
!          References_Current_Instance : Boolean := False;
!          Has_Access_Discriminant     : Boolean := False;
!          Has_Internal_Call           : Boolean := False;
! 
!          function Find_Access_Discriminant
             (N : Node_Id) return Traverse_Result;
           --  Look for a name denoting an access discriminant
  
!          function Find_Current_Instance
             (N : Node_Id) return Traverse_Result;
           --  Look for a reference to the current instance of the type
  
!          function Find_Internal_Call
             (N : Node_Id) return Traverse_Result;
           --  Look for an internal protected function call
  
!          ------------------------------
!          -- Find_Access_Discriminant --
!          ------------------------------
  
!          function Find_Access_Discriminant
             (N : Node_Id) return Traverse_Result is
           begin
              if Is_Entity_Name (N)
                and then Denotes_Discriminant (N)
                and then Is_Access_Type (Etype (N))
              then
-                Has_Access_Discriminant := True;
                 return Abandon;
              else
                 return OK;
              end if;
!          end Find_Access_Discriminant;
  
!          ---------------------------
!          -- Find_Current_Instance --
!          ---------------------------
  
!          function Find_Current_Instance
             (N : Node_Id) return Traverse_Result is
           begin
              if Is_Entity_Name (N)
                and then Present (Entity (N))
                and then Is_Current_Instance (N)
              then
-                References_Current_Instance := True;
                 return Abandon;
              else
                 return OK;
              end if;
!          end Find_Current_Instance;
  
!          ------------------------
!          -- Find_Internal_Call --
!          ------------------------
  
!          function Find_Internal_Call (N : Node_Id) return Traverse_Result is
  
              function Call_Scope (N : Node_Id) return Entity_Id;
              --  Return the scope enclosing a given call node N
--- 10383,10439 ----
          (Decl     : Node_Id;
           Rec_Type : Entity_Id) return Boolean
        is
!          function Is_Access_Discriminant
             (N : Node_Id) return Traverse_Result;
           --  Look for a name denoting an access discriminant
  
!          function Is_Current_Instance
             (N : Node_Id) return Traverse_Result;
           --  Look for a reference to the current instance of the type
  
!          function Is_Internal_Call
             (N : Node_Id) return Traverse_Result;
           --  Look for an internal protected function call
  
!          ----------------------------
!          -- Is_Access_Discriminant --
!          ----------------------------
  
!          function Is_Access_Discriminant
             (N : Node_Id) return Traverse_Result is
           begin
              if Is_Entity_Name (N)
                and then Denotes_Discriminant (N)
                and then Is_Access_Type (Etype (N))
              then
                 return Abandon;
              else
                 return OK;
              end if;
!          end Is_Access_Discriminant;
  
!          -------------------------
!          -- Is_Current_Instance --
!          -------------------------
  
!          function Is_Current_Instance
             (N : Node_Id) return Traverse_Result is
           begin
              if Is_Entity_Name (N)
                and then Present (Entity (N))
                and then Is_Current_Instance (N)
              then
                 return Abandon;
              else
                 return OK;
              end if;
!          end Is_Current_Instance;
  
!          ----------------------
!          -- Is_Internal_Call --
!          ----------------------
  
!          function Is_Internal_Call (N : Node_Id) return Traverse_Result is
  
              function Call_Scope (N : Node_Id) return Entity_Id;
              --  Return the scope enclosing a given call node N
*************** package body Exp_Ch3 is
*** 10398,10418 ****
                and then Call_Scope (N)
                           = Corresponding_Concurrent_Type (Rec_Type)
              then
-                Has_Internal_Call := True;
                 return Abandon;
              else
                 return OK;
              end if;
!          end Find_Internal_Call;
  
!          procedure Search_Access_Discriminant is new
!            Traverse_Proc (Find_Access_Discriminant);
  
!          procedure Search_Current_Instance is new
!            Traverse_Proc (Find_Current_Instance);
  
!          procedure Search_Internal_Call is new
!            Traverse_Proc (Find_Internal_Call);
  
           --  Start of processing for Requires_Late_Init
  
--- 10457,10476 ----
                and then Call_Scope (N)
                           = Corresponding_Concurrent_Type (Rec_Type)
              then
                 return Abandon;
              else
                 return OK;
              end if;
!          end Is_Internal_Call;
  
!          function Search_Access_Discriminant is new
!            Traverse_Func (Is_Access_Discriminant);
  
!          function Search_Current_Instance is new
!            Traverse_Func (Is_Current_Instance);
  
!          function Search_Internal_Call is new
!            Traverse_Func (Is_Internal_Call);
  
           --  Start of processing for Requires_Late_Init
  
*************** package body Exp_Ch3 is
*** 10433,10441 ****
              --  it has an initialization expression that includes a name
              --  denoting an access discriminant;
  
!             Search_Access_Discriminant (Expression (Decl));
! 
!             if Has_Access_Discriminant then
                 return True;
              end if;
  
--- 10491,10497 ----
              --  it has an initialization expression that includes a name
              --  denoting an access discriminant;
  
!             if Search_Access_Discriminant (Expression (Decl)) = Abandon then
                 return True;
              end if;
  
*************** package body Exp_Ch3 is
*** 10443,10460 ****
              --  reference to the current instance of the type either by
              --  name...
  
!             Search_Current_Instance (Expression (Decl));
! 
!             if References_Current_Instance then
                 return True;
              end if;
  
              --  ...or implicitly as the target object of a call.
  
              if Is_Protected_Record_Type (Rec_Type) then
!                Search_Internal_Call (Expression (Decl));
! 
!                if Has_Internal_Call then
                    return True;
                 end if;
              end if;
--- 10499,10512 ----
              --  reference to the current instance of the type either by
              --  name...
  
!             if Search_Current_Instance (Expression (Decl)) = Abandon then
                 return True;
              end if;
  
              --  ...or implicitly as the target object of a call.
  
              if Is_Protected_Record_Type (Rec_Type) then
!                if Search_Internal_Call (Expression (Decl)) = Abandon then
                    return True;
                 end if;
              end if;
*************** package body Exp_Ch3 is
*** 12346,12352 ****
        --  on the body to add the appropriate stuff.
  
        elsif For_Body then
!          return Make_Subprogram_Body (Loc, Spec, Empty_List, Empty);
  
        --  For the case of an Input attribute predefined for an abstract type,
        --  generate an abstract specification. This will never be called, but we
--- 12398,12407 ----
        --  on the body to add the appropriate stuff.
  
        elsif For_Body then
!          return Make_Subprogram_Body (Loc,
!                   Specification              => Spec,
!                   Declarations               => Empty_List,
!                   Handled_Statement_Sequence => Empty);
  
        --  For the case of an Input attribute predefined for an abstract type,
        --  generate an abstract specification. This will never be called, but we
*************** package body Exp_Ch3 is
*** 12525,12531 ****
           and then not No_Run_Time_Mode
           and then RTE_Available (RE_Root_Buffer_Type)
        then
!          Build_Record_Put_Image_Procedure (Loc, Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
--- 12580,12586 ----
           and then not No_Run_Time_Mode
           and then RTE_Available (RE_Root_Buffer_Type)
        then
!          Build_Record_Put_Image_Procedure (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
*************** package body Exp_Ch3 is
*** 12556,12563 ****
          and then Stream_Operation_OK (Tag_Typ, TSS_Stream_Input)
          and then No (TSS (Tag_Typ, TSS_Stream_Input))
        then
!          Build_Record_Or_Elementary_Input_Function
!            (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
--- 12611,12617 ----
          and then Stream_Operation_OK (Tag_Typ, TSS_Stream_Input)
          and then No (TSS (Tag_Typ, TSS_Stream_Input))
        then
!          Build_Record_Or_Elementary_Input_Function (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
*************** package body Exp_Ch3 is
*** 12798,12807 ****
        --  derived from a private view of the abstract type that doesn't have
        --  a visible Input).
  
-       --  Do not generate stream routines for type Finalization_Master because
-       --  a master may never appear in types and therefore cannot be read or
-       --  written.
- 
        return
            (not Is_Limited_Type (Typ)
              or else Is_Interface (Typ)
--- 12852,12857 ----
*************** package body Exp_Ch3 is
*** 12817,12825 ****
          and then No (No_Tagged_Streams_Pragma (Typ))
          and then not No_Run_Time_Mode
          and then RTE_Available (RE_Tag)
!         and then No (Type_Without_Stream_Operation (Typ))
!         and then RTE_Available (RE_Root_Stream_Type)
!         and then not Is_RTE (Typ, RE_Finalization_Master);
     end Stream_Operation_OK;
  
  end Exp_Ch3;
--- 12867,12876 ----
          and then No (No_Tagged_Streams_Pragma (Typ))
          and then not No_Run_Time_Mode
          and then RTE_Available (RE_Tag)
!         and then
!           (not Restriction_Active (No_Default_Stream_Attributes)
!              or else No (Type_Without_Stream_Operation (Typ)))
!         and then RTE_Available (RE_Root_Stream_Type);
     end Stream_Operation_OK;
  
  end Exp_Ch3;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch3.ads gcc-15.1.0/gcc/ada/exp_ch3.ads
*** gcc-14.2.0/gcc/ada/exp_ch3.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch3.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,33 ****
  
  --  Expand routines for chapter 3 constructs
  
- with Types;   use Types;
  with Elists;  use Elists;
  with Exp_Tss; use Exp_Tss;
  with Uintp;   use Uintp;
  
  package Exp_Ch3 is
--- 25,33 ----
  
  --  Expand routines for chapter 3 constructs
  
  with Elists;  use Elists;
  with Exp_Tss; use Exp_Tss;
+ with Types;   use Types;
  with Uintp;   use Uintp;
  
  package Exp_Ch3 is
*************** package Exp_Ch3 is
*** 57,62 ****
--- 57,86 ----
     --  checks on the relevant aspects. The wrapper body could be simplified to
     --  a null body when expansion is disabled ???
  
+    function Build_Default_Initialization
+      (N          : Node_Id;
+       Typ        : Entity_Id;
+       Obj_Id     : Entity_Id;
+       For_CW     : Boolean := False;
+       Target_Ref : Node_Id := Empty) return List_Id;
+    --  Build the code to default-initialize an object of Typ either declared
+    --  or allocated by node N if this is necessary. In the former case Obj_Id
+    --  is the entity for the object whereas, in the second case, Obj_Id is a
+    --  temporary generated to hold the result of the allocator. For_CW is set
+    --  to True in the second case if this result is of a class-wide type.
+ 
+    --  Target_Ref is only passed identically to Build_Initialization_Call, so
+    --  its description given for Build_Initialization_Call is also valid here.
+ 
+    function Build_Default_Simple_Initialization
+      (N      : Node_Id;
+       Typ    : Entity_Id;
+       Obj_Id : Entity_Id) return Node_Id;
+    --  Try to build an expression to default-initialize an object of Typ either
+    --  declared or allocated by node N if this is necessary. In the former case
+    --  Obj_Id is the entity for the object whereas, in the second case, it must
+    --  be set to Empty.
+ 
     procedure Build_Or_Copy_Discr_Checking_Funcs (N : Node_Id);
     --  For each variant component, builds a function that checks whether
     --  the component name is consistent with the current discriminants
*************** package Exp_Ch3 is
*** 68,92 ****
     --  derived type; no new subprograms are constructed in this case.
  
     function Build_Initialization_Call
!      (Loc                 : Source_Ptr;
        Id_Ref              : Node_Id;
        Typ                 : Entity_Id;
!       In_Init_Proc        : Boolean := False;
        Enclos_Type         : Entity_Id := Empty;
!       Discr_Map           : Elist_Id := New_Elmt_List;
!       With_Default_Init   : Boolean := False;
!       Constructor_Ref     : Node_Id := Empty;
        Init_Control_Actual : Entity_Id := Empty) return List_Id;
     --  Builds a call to the initialization procedure for the base type of Typ,
     --  passing it the object denoted by Id_Ref, plus additional parameters as
     --  appropriate for the type (the _Master, for task types, for example).
!    --  Loc is the source location for the constructed tree. In_Init_Proc has
     --  to be set to True when the call is itself in an init proc in order to
!    --  enable the use of discriminals. Enclos_Type is the enclosing type when
!    --  initializing a component in an outer init proc, and it is used for
!    --  various expansion cases including the case where Typ is a task type
!    --  which is an array component, the indexes of the enclosing type are
!    --  used to build the string that identifies each task at runtime.
     --
     --  Discr_Map is used to replace discriminants by their discriminals in
     --  expressions used to constrain record components. In the presence of
--- 92,125 ----
     --  derived type; no new subprograms are constructed in this case.
  
     function Build_Initialization_Call
!      (N                   : Node_Id;
        Id_Ref              : Node_Id;
        Typ                 : Entity_Id;
!       In_Init_Proc        : Boolean   := False;
        Enclos_Type         : Entity_Id := Empty;
!       Target_Ref          : Node_Id   := Empty;
!       Discr_Map           : Elist_Id  := New_Elmt_List;
!       With_Default_Init   : Boolean   := False;
!       Constructor_Ref     : Node_Id   := Empty;
        Init_Control_Actual : Entity_Id := Empty) return List_Id;
     --  Builds a call to the initialization procedure for the base type of Typ,
     --  passing it the object denoted by Id_Ref, plus additional parameters as
     --  appropriate for the type (the _Master, for task types, for example).
!    --  N is the construct for which the call is to be built. In_Init_Proc has
     --  to be set to True when the call is itself in an init proc in order to
!    --  enable the use of discriminals.
!    --
!    --  Enclos_Type is the enclosing type when initializing a component of a
!    --  composite type, and is used for the case where Typ is a task type of
!    --  an array component: the indices of this enclosing type are then used
!    --  to build the image string that identifies each task at run time.
!    --
!    --  Target_Ref is also used when Typ is a task type if the initialization
!    --  call is to be generated for an allocator. It is either the name of a
!    --  simple assignment whose expression is the allocator, or the defining
!    --  identifier of an object declaration whose initializing expression is
!    --  the allocator, or else the allocator's access type. It is used both
!    --  to build the image string and to pass the task master.
     --
     --  Discr_Map is used to replace discriminants by their discriminals in
     --  expressions used to constrain record components. In the presence of
*************** package Exp_Ch3 is
*** 146,156 ****
     --  type is valid only when Normalize_Scalars or Initialize_Scalars is
     --  active, or if N is the node for a 'Invalid_Value attribute node.
  
-    function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id;
-    --  Fetch the extra formal from an initalization procedure "proc"
-    --  corresponding to the level of the object being initialized. When none
-    --  is present Empty is returned.
- 
     procedure Init_Secondary_Tags
       (Typ            : Entity_Id;
        Target         : Node_Id;
--- 179,184 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch4.adb gcc-15.1.0/gcc/ada/exp_ch4.adb
*** gcc-14.2.0/gcc/ada/exp_ch4.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch4.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Util;       use Exp_Util;
*** 47,52 ****
--- 47,53 ----
  with Freeze;         use Freeze;
  with Inline;         use Inline;
  with Lib;            use Lib;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Exp_Ch4 is
*** 139,147 ****
     --  case of array type arguments.
  
     procedure Expand_Nonbinary_Modular_Op (N : Node_Id);
!    --  When generating C code, convert nonbinary modular arithmetic operations
!    --  into code that relies on the front-end expansion of operator Mod. No
!    --  expansion is performed if N is not a nonbinary modular operand.
  
     procedure Expand_Short_Circuit_Operator (N : Node_Id);
     --  Common expansion processing for short-circuit boolean operators
--- 140,149 ----
     --  case of array type arguments.
  
     procedure Expand_Nonbinary_Modular_Op (N : Node_Id);
!    --  When generating C code or if restriction No_Implicit_Conditionals is in
!    --  effect, convert most nonbinary modular arithmetic operations into code
!    --  that relies on the expansion of an explicit Mod operator. No expansion
!    --  is performed if N is not a nonbinary modular operation.
  
     procedure Expand_Short_Circuit_Operator (N : Node_Id);
     --  Common expansion processing for short-circuit boolean operators
*************** package body Exp_Ch4 is
*** 189,194 ****
--- 191,205 ----
     --  Return the size of a small signed integer type covering Lo .. Hi, the
     --  main goal being to return a size lower than that of standard types.
  
+    procedure Insert_Conditional_Object_Declaration
+      (Obj_Id : Entity_Id;
+       Expr   : Node_Id;
+       Decl   : Node_Id);
+    --  Expr is the dependent expression of a conditional expression and Decl
+    --  is the declaration of an object whose initialization expression is the
+    --  conditional expression. Insert in the actions of Expr the declaration
+    --  of Obj_Id modeled on Decl and with Expr as initialization expression.
+ 
     procedure Insert_Dereference_Action (N : Node_Id);
     --  N is an expression whose type is an access. When the type of the
     --  associated storage pool is derived from Checked_Pool, generate a
*************** package body Exp_Ch4 is
*** 426,431 ****
--- 437,473 ----
           return;
     end Build_Boolean_Array_Proc_Call;
  
+    ---------------------------------
+    -- Build_Cleanup_For_Allocator --
+    ---------------------------------
+ 
+    function Build_Cleanup_For_Allocator
+      (Loc     : Source_Ptr;
+       Obj_Id  : Entity_Id;
+       Pool    : Entity_Id;
+       Actions : List_Id) return Node_Id
+    is
+       Free_Stmt : constant Node_Id :=
+         Make_Free_Statement (Loc, New_Occurrence_Of (Obj_Id, Loc));
+ 
+    begin
+       Set_For_Allocator (Free_Stmt);
+       Set_Storage_Pool  (Free_Stmt, Pool);
+ 
+       return
+         Make_Block_Statement (Loc,
+           Handled_Statement_Sequence =>
+             Make_Handled_Sequence_Of_Statements (Loc,
+               Statements         => Actions,
+               Exception_Handlers => New_List (
+                 Make_Exception_Handler (Loc,
+                   Exception_Choices => New_List (
+                     Make_Others_Choice (Loc)),
+                   Statements        => New_List (
+                     Free_Stmt,
+                     Make_Raise_Statement (Loc))))));
+    end Build_Cleanup_For_Allocator;
+ 
     -----------------------
     -- Build_Eq_Call --
     -----------------------
*************** package body Exp_Ch4 is
*** 441,448 ****
     begin
        if Present (Eq) then
           if Is_Abstract_Subprogram (Eq) then
!             return Make_Raise_Program_Error (Loc,
!                Reason =>  PE_Explicit_Raise);
  
           else
              return
--- 483,493 ----
     begin
        if Present (Eq) then
           if Is_Abstract_Subprogram (Eq) then
!             return Result : constant Node_Id :=
!               Make_Raise_Program_Error (Loc, Reason =>  PE_Explicit_Raise)
!             do
!                Set_Etype (Result, Etype (Eq));
!             end return;
  
           else
              return
*************** package body Exp_Ch4 is
*** 555,572 ****
  
     procedure Expand_Allocator_Expression (N : Node_Id) is
        Loc            : constant Source_Ptr := Sloc (N);
!       Exp            : constant Node_Id    := Expression (Expression (N));
        Indic          : constant Node_Id    := Subtype_Mark (Expression (N));
        T              : constant Entity_Id  := Entity (Indic);
        PtrT           : constant Entity_Id  := Etype (N);
        DesigT         : constant Entity_Id  := Designated_Type (PtrT);
        Special_Return : constant Boolean    := For_Special_Return_Object (N);
  
!       Adj_Call      : Node_Id;
!       Aggr_In_Place : Boolean;
!       Node          : Node_Id;
!       Temp          : Entity_Id;
!       Temp_Decl     : Node_Id;
  
        TagT : Entity_Id := Empty;
        --  Type used as source for tag assignment
--- 600,776 ----
  
     procedure Expand_Allocator_Expression (N : Node_Id) is
        Loc            : constant Source_Ptr := Sloc (N);
!       Exp            : constant Node_Id    := Unqualify (Expression (N));
        Indic          : constant Node_Id    := Subtype_Mark (Expression (N));
        T              : constant Entity_Id  := Entity (Indic);
        PtrT           : constant Entity_Id  := Etype (N);
        DesigT         : constant Entity_Id  := Designated_Type (PtrT);
+       Pool           : constant Node_Id    := Storage_Pool (N);
        Special_Return : constant Boolean    := For_Special_Return_Object (N);
+       Special_Pool   : constant Boolean    :=
+         Present (Pool)
+           and then
+             (Is_RTE (Pool, RE_RS_Pool) or else Is_RTE (Pool, RE_SS_Pool));
+       Static_Match   : constant Boolean    :=
+         not Is_Constrained (DesigT)
+           or else Subtypes_Statically_Match (T, DesigT);
  
!       procedure Build_Aggregate_In_Place (Temp : Entity_Id; Typ : Entity_Id);
!       --  If Exp is an aggregate to build in place, build the declaration of
!       --  object Temp with Typ and initialization expression an uninitialized
!       --  allocator for Etype (Exp), then perform in-place aggregate assignment
!       --  of Exp into the newly allocated memory.
! 
!       procedure Build_Explicit_Assignment (Temp : Entity_Id; Typ : Entity_Id);
!       --  Build the declaration of object Temp with Typ and initialization
!       --  expression an uninitialized allocator for Etype (Exp), then perform
!       --  assignment of Exp into the newly allocated memory.
! 
!       procedure Build_Simple_Allocation (Temp : Entity_Id; Typ : Entity_Id);
!       --  Build the declaration of object Temp with Typ and initialization
!       --  expression the allocator N.
! 
!       function Needs_Cleanup return Boolean is
!         (not Special_Pool
!           and then Is_Definite_Subtype (T)
!           and then Nkind (Exp) = N_Function_Call
!           and then not (Is_Entity_Name (Name (Exp))
!                          and then No_Raise (Entity (Name (Exp))))
!           and then not Restriction_Active (No_Exception_Propagation)
!           and then RTE_Available (RE_Free)
!           and then not Debug_Flag_QQ);
!       --  Return True if a cleanup needs to be built to deallocate the memory
!       --  when the evaluation of the expression raises an exception. This can
!       --  be done only if deallocation is available, but not for special pools
!       --  since such pools do not support deallocation. Moreover, this is not
!       --  needed for an indefinite allocation because the expression will be
!       --  evaluated first, in order to size the allocation. For now, we only
!       --  return True for a call to a function that may raise an exception.
! 
!       ------------------------------
!       -- Build_Aggregate_In_Place --
!       ------------------------------
! 
!       procedure Build_Aggregate_In_Place (Temp : Entity_Id; Typ : Entity_Id) is
!          Temp_Decl : constant Node_Id :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Constant_Present    => True,
!              Object_Definition   => New_Occurrence_Of (Typ, Loc),
!              Expression          =>
!                Make_Allocator (Loc,
!                  Expression => New_Occurrence_Of (Etype (Exp), Loc)));
! 
!       begin
!          --  Prevent default initialization of the allocator
! 
!          Set_No_Initialization (Expression (Temp_Decl));
! 
!          --  Copy the Comes_From_Source flag onto the allocator since logically
!          --  this allocator is a replacement of the original allocator. This is
!          --  for proper handling of restriction No_Implicit_Heap_Allocations.
! 
!          Preserve_Comes_From_Source (Expression (Temp_Decl), N);
! 
!          --  Insert the declaration and generate the in-place assignment
! 
!          Insert_Action (N, Temp_Decl);
!          Convert_Aggr_In_Allocator (N, Temp);
!       end Build_Aggregate_In_Place;
! 
!       -------------------------------
!       -- Build_Explicit_Assignment --
!       -------------------------------
! 
!       procedure Build_Explicit_Assignment (Temp : Entity_Id; Typ : Entity_Id)
!       is
!          Assign : constant Node_Id :=
!            Make_Assignment_Statement (Loc,
!              Name       =>
!                Make_Explicit_Dereference (Loc,
!                  New_Occurrence_Of (Temp, Loc)),
!              Expression => Relocate_Node (Exp));
! 
!          Temp_Decl : constant Node_Id :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Constant_Present    => True,
!              Object_Definition   => New_Occurrence_Of (Typ, Loc),
!              Expression          =>
!                Make_Allocator (Loc,
!                  Expression => New_Occurrence_Of (Etype (Exp), Loc)));
! 
!       begin
!          --  Prevent default initialization of the allocator
! 
!          Set_No_Initialization (Expression (Temp_Decl));
! 
!          --  Copy the Comes_From_Source flag onto the allocator since logically
!          --  this allocator is a replacement of the original allocator. This is
!          --  for proper handling of restriction No_Implicit_Heap_Allocations.
! 
!          Preserve_Comes_From_Source (Expression (Temp_Decl), N);
! 
!          --  Insert the declaration
! 
!          Insert_Action (N, Temp_Decl);
! 
!          --  Arrange for the expression to be analyzed again and expanded
! 
!          if Is_Delayed_Conditional_Expression (Expression (Assign)) then
!             Unanalyze_Delayed_Conditional_Expression (Expression (Assign));
!          end if;
! 
!          Set_Assignment_OK (Name (Assign));
! 
!          --  If the initialization expression is a function call, we do not
!          --  adjust after the assignment but, in either case, we do not
!          --  finalize before since the target is newly allocated memory.
! 
!          if Nkind (Exp) = N_Function_Call then
!             Set_No_Ctrl_Actions (Assign);
!          else
!             Set_No_Finalize_Actions (Assign);
!          end if;
! 
!          --  Build a cleanup if the assignment may raise an exception
! 
!          if Needs_Cleanup then
!             Insert_Action (N,
!               Build_Cleanup_For_Allocator (Loc,
!                 Temp, Pool, New_List (Assign)),
!               Suppress => All_Checks);
!          else
!             Insert_Action (N, Assign, Suppress => All_Checks);
!          end if;
!       end Build_Explicit_Assignment;
! 
!       -----------------------------
!       -- Build_Simple_Allocation --
!       -----------------------------
! 
!       procedure Build_Simple_Allocation (Temp : Entity_Id; Typ : Entity_Id) is
!          New_N     : constant Node_Id := Relocate_Node (N);
!          Temp_Decl : constant Node_Id :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Constant_Present    => True,
!              Object_Definition   => New_Occurrence_Of (Typ, Loc),
!              Expression          => New_N);
! 
!       begin
!          --  Avoid recursion in the mechanism
! 
!          Set_Analyzed (New_N);
! 
!          Insert_Action (N, Temp_Decl);
!       end Build_Simple_Allocation;
! 
!       --  Local variables
! 
!       Aggr_In_Place     : Boolean;
!       Container_Aggr    : Boolean;
!       Delayed_Cond_Expr : Boolean;
  
        TagT : Entity_Id := Empty;
        --  Type used as source for tag assignment
*************** package body Exp_Ch4 is
*** 574,579 ****
--- 778,788 ----
        TagR : Node_Id := Empty;
        --  Target reference for tag assignment
  
+       Temp : Entity_Id;
+       --  Temporary used to hold the result of the allocator
+ 
+    --  Start of processing for Expand_Allocator_Expression
+ 
     begin
        --  Handle call to C++ constructor
  
*************** package body Exp_Ch4 is
*** 591,613 ****
        --  both constraints. First check against the type of the qualified
        --  expression.
  
        Apply_Constraint_Check (Exp, T, No_Sliding => True);
  
!       Aggr_In_Place := Is_Delayed_Aggregate (Exp);
  
!       --  If the expression is an aggregate to be built in place, then we need
!       --  to delay applying predicate checks, because this would result in the
!       --  creation of a temporary, which is illegal for limited types,
  
!       if not Aggr_In_Place then
!          Apply_Predicate_Check (Exp, T);
        end if;
  
        --  Check that any anonymous access discriminants are suitable
        --  for use in an allocator.
  
!       --  Note: This check is performed here instead of during analysis so that
!       --  we can check against the fully resolved etype of Exp.
  
        if Is_Entity_Name (Exp)
          and then Has_Anonymous_Access_Discriminant (Etype (Exp))
--- 800,841 ----
        --  both constraints. First check against the type of the qualified
        --  expression.
  
+       --  Note that we delay applying predicate checks, because this may
+       --  cause the creation of a temporary, which is illegal for limited
+       --  types and just inefficient in the other cases.
+ 
        Apply_Constraint_Check (Exp, T, No_Sliding => True);
  
!       if Do_Range_Check (Exp) then
!          Generate_Range_Check (Exp, T, CE_Range_Check_Failed);
!       end if;
  
!       --  A check is also needed in cases where the designated subtype is
!       --  constrained and differs from the subtype given in the qualified
!       --  expression. Note that the check on the qualified expression does
!       --  not allow sliding, but this check does (a relaxation from Ada 83).
  
!       if not Static_Match then
!          Apply_Constraint_Check (Exp, DesigT, No_Sliding => False);
! 
!          if Do_Range_Check (Exp) then
!             Generate_Range_Check (Exp, DesigT, CE_Range_Check_Failed);
!          end if;
!       end if;
! 
!       --  Propagate Constraint_Error and return
! 
!       if Nkind (Exp) = N_Raise_Constraint_Error then
!          Rewrite (N, New_Copy (Exp));
!          Set_Etype (N, PtrT);
!          return;
        end if;
  
        --  Check that any anonymous access discriminants are suitable
        --  for use in an allocator.
  
!       --  Note: This check is performed here instead of during analysis
!       --  so that we can check against the fully resolved Etype of Exp.
  
        if Is_Entity_Name (Exp)
          and then Has_Anonymous_Access_Discriminant (Etype (Exp))
*************** package body Exp_Ch4 is
*** 635,670 ****
           end if;
        end if;
  
!       if Do_Range_Check (Exp) then
!          Generate_Range_Check (Exp, T, CE_Range_Check_Failed);
!       end if;
! 
!       --  A check is also needed in cases where the designated subtype is
!       --  constrained and differs from the subtype given in the qualified
!       --  expression. Note that the check on the qualified expression does
!       --  not allow sliding, but this check does (a relaxation from Ada 83).
! 
!       if Is_Constrained (DesigT)
!         and then not Subtypes_Statically_Match (T, DesigT)
!       then
!          Apply_Constraint_Check (Exp, DesigT, No_Sliding => False);
! 
!          Apply_Predicate_Check (Exp, DesigT);
  
!          if Do_Range_Check (Exp) then
!             Generate_Range_Check (Exp, DesigT, CE_Range_Check_Failed);
!          end if;
!       end if;
  
!       if Nkind (Exp) = N_Raise_Constraint_Error then
!          Rewrite (N, New_Copy (Exp));
!          Set_Etype (N, PtrT);
!          return;
!       end if;
  
        --  Case of tagged type or type requiring finalization
  
!       if Is_Tagged_Type (T) or else Needs_Finalization (T) then
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
           --  to a build-in-place function, then access to the allocated object
--- 863,888 ----
           end if;
        end if;
  
!       Aggr_In_Place     := Is_Delayed_Aggregate (Exp);
!       Delayed_Cond_Expr := Is_Delayed_Conditional_Expression (Exp);
!       Container_Aggr    := Nkind (Exp) = N_Aggregate
!                              and then Has_Aspect (T, Aspect_Aggregate);
  
!       --  An allocator with a container aggregate as qualified expression must
!       --  be rewritten into the form expected by Expand_Container_Aggregate.
  
!       if Container_Aggr then
!          Temp := Make_Temporary (Loc, 'P', N);
!          Set_Analyzed (Exp, False);
!          Insert_Action (N,
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!              Expression          => Relocate_Node (N)));
  
        --  Case of tagged type or type requiring finalization
  
!       elsif Is_Tagged_Type (T) or else Needs_Finalization (T) then
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
           --  to a build-in-place function, then access to the allocated object
*************** package body Exp_Ch4 is
*** 690,722 ****
              return;
           end if;
  
-          --  Actions inserted before:
-          --    Temp : constant ptr_T := new T'(Expression);
-          --    Temp._tag = T'tag;  --  when not class-wide
-          --    [Deep_]Adjust (Temp.all);
- 
-          --  We analyze by hand the new internal allocator to avoid any
-          --  recursion and inappropriate call to Initialize.
- 
-          --  We don't want to remove side effects when the expression must be
-          --  built in place and we don't need it when there is no storage pool
-          --  or this is a return/secondary stack allocation.
- 
-          if not Aggr_In_Place
-            and then Present (Storage_Pool (N))
-            and then not Is_RTE (Storage_Pool (N), RE_RS_Pool)
-            and then not Is_RTE (Storage_Pool (N), RE_SS_Pool)
-          then
-             Remove_Side_Effects (Exp);
-          end if;
- 
-          Temp := Make_Temporary (Loc, 'P', N);
- 
           --  For a class wide allocation generate the following code:
  
           --    type Equiv_Record is record ... end record;
           --    implicit subtype CW is <Class_Wide_Subytpe>;
!          --    temp : PtrT := new CW'(CW!(expr));
  
           if Is_Class_Wide_Type (T) then
              Expand_Subtype_From_Expr (Empty, T, Indic, Exp);
--- 908,918 ----
              return;
           end if;
  
           --  For a class wide allocation generate the following code:
  
           --    type Equiv_Record is record ... end record;
           --    implicit subtype CW is <Class_Wide_Subytpe>;
!          --    Temp : PtrT := new CW'(CW!(expr));
  
           if Is_Class_Wide_Type (T) then
              Expand_Subtype_From_Expr (Empty, T, Indic, Exp);
*************** package body Exp_Ch4 is
*** 749,794 ****
              Analyze_And_Resolve (Expression (N), Entity (Indic));
           end if;
  
!          --  Processing for allocators returning non-interface types
  
!          if not Is_Interface (DesigT) then
!             if Aggr_In_Place then
!                Temp_Decl :=
!                  Make_Object_Declaration (Loc,
!                    Defining_Identifier => Temp,
!                    Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!                    Expression          =>
!                      Make_Allocator (Loc,
!                        Expression =>
!                          New_Occurrence_Of (Etype (Exp), Loc)));
  
!                --  Copy the Comes_From_Source flag for the allocator we just
!                --  built, since logically this allocator is a replacement of
!                --  the original allocator node. This is for proper handling of
!                --  restriction No_Implicit_Heap_Allocations.
  
!                Preserve_Comes_From_Source
!                  (Expression (Temp_Decl), N);
  
!                Set_No_Initialization (Expression (Temp_Decl));
!                Insert_Action (N, Temp_Decl);
  
!                Build_Allocate_Deallocate_Proc (Temp_Decl, True);
!                Convert_Aggr_In_Allocator (N, Temp_Decl, Exp);
  
!             else
!                Node := Relocate_Node (N);
!                Set_Analyzed (Node);
  
!                Temp_Decl :=
!                  Make_Object_Declaration (Loc,
!                    Defining_Identifier => Temp,
!                    Constant_Present    => True,
!                    Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!                    Expression          => Node);
  
!                Insert_Action (N, Temp_Decl);
!                Build_Allocate_Deallocate_Proc (Temp_Decl, True);
              end if;
  
           --  Ada 2005 (AI-251): Handle allocators whose designated type is an
--- 945,985 ----
              Analyze_And_Resolve (Expression (N), Entity (Indic));
           end if;
  
!          --  If the designated type is class-wide, then the alignment and the
!          --  controlled nature of the expression are computed dynamically by
!          --  the code generated by Build_Allocate_Deallocate_Proc, which will
!          --  thus need to remove side effects from Exp first. But the below
!          --  test on Exp needs to have its final form to decide whether or not
!          --  to generate an Adjust call, so we preventively remove them here.
  
!          if Is_Class_Wide_Type (DesigT)
!            and then Nkind (Exp) = N_Function_Call
!            and then not Special_Pool
!          then
!             Remove_Side_Effects (Exp);
!          end if;
  
!          --  Actions inserted before:
!          --    Temp : constant PtrT := new T'(Expression);
!          --    Temp._tag = T'tag;  --  when not class-wide
!          --    [Deep_]Adjust (Temp.all);
  
!          --  We analyze by hand the new internal allocator to avoid any
!          --  recursion and inappropriate call to Initialize.
  
!          Temp := Make_Temporary (Loc, 'P', N);
  
!          --  Processing for allocators returning non-interface types
  
!          if not Is_Interface (DesigT) then
!             if Aggr_In_Place then
!                Build_Aggregate_In_Place (Temp, PtrT);
  
!             elsif Delayed_Cond_Expr or else Needs_Cleanup then
!                Build_Explicit_Assignment (Temp, PtrT);
  
!             else
!                Build_Simple_Allocation (Temp, PtrT);
              end if;
  
           --  Ada 2005 (AI-251): Handle allocators whose designated type is an
*************** package body Exp_Ch4 is
*** 797,825 ****
  
           else
              declare
!                Def_Id   : constant Entity_Id := Make_Temporary (Loc, 'T');
!                New_Decl : Node_Id;
  
              begin
!                New_Decl :=
                   Make_Full_Type_Declaration (Loc,
                     Defining_Identifier => Def_Id,
                     Type_Definition     =>
                       Make_Access_To_Object_Definition (Loc,
!                        All_Present            => True,
!                        Null_Exclusion_Present => False,
!                        Constant_Present       =>
!                          Is_Access_Constant (Etype (N)),
!                        Subtype_Indication     =>
!                          New_Occurrence_Of (Etype (Exp), Loc)));
! 
!                Insert_Action (N, New_Decl);
  
                 --  Inherit the allocation-related attributes from the original
                 --  access type.
  
!                Set_Finalization_Master
!                  (Def_Id, Finalization_Master (PtrT));
  
                 Set_Associated_Storage_Pool
                   (Def_Id, Associated_Storage_Pool (PtrT));
--- 988,1013 ----
  
           else
              declare
!                Def_Id   : constant Entity_Id := Make_Temporary (Loc, 'T', N);
!                New_Temp : constant Entity_Id := Make_Temporary (Loc, 'P', N);
  
              begin
!                Insert_Action (N,
                   Make_Full_Type_Declaration (Loc,
                     Defining_Identifier => Def_Id,
                     Type_Definition     =>
                       Make_Access_To_Object_Definition (Loc,
!                        All_Present        => True,
!                        Constant_Present   =>
!                          Is_Access_Constant (PtrT),
!                        Subtype_Indication =>
!                          New_Occurrence_Of (Etype (Exp), Loc))));
  
                 --  Inherit the allocation-related attributes from the original
                 --  access type.
  
!                Set_Finalization_Collection
!                  (Def_Id, Finalization_Collection (PtrT));
  
                 Set_Associated_Storage_Pool
                   (Def_Id, Associated_Storage_Pool (PtrT));
*************** package body Exp_Ch4 is
*** 827,867 ****
                 --  Declare the object using the previous type declaration
  
                 if Aggr_In_Place then
!                   Temp_Decl :=
!                     Make_Object_Declaration (Loc,
!                       Defining_Identifier => Temp,
!                       Object_Definition   => New_Occurrence_Of (Def_Id, Loc),
!                       Expression          =>
!                         Make_Allocator (Loc,
!                           New_Occurrence_Of (Etype (Exp), Loc)));
! 
!                   --  Copy the Comes_From_Source flag for the allocator we just
!                   --  built, since logically this allocator is a replacement of
!                   --  the original allocator node. This is for proper handling
!                   --  of restriction No_Implicit_Heap_Allocations.
! 
!                   Set_Comes_From_Source
!                     (Expression (Temp_Decl), Comes_From_Source (N));
! 
!                   Set_No_Initialization (Expression (Temp_Decl));
!                   Insert_Action (N, Temp_Decl);
  
!                   Build_Allocate_Deallocate_Proc (Temp_Decl, True);
!                   Convert_Aggr_In_Allocator (N, Temp_Decl, Exp);
  
                 else
!                   Node := Relocate_Node (N);
!                   Set_Analyzed (Node);
! 
!                   Temp_Decl :=
!                     Make_Object_Declaration (Loc,
!                       Defining_Identifier => Temp,
!                       Constant_Present    => True,
!                       Object_Definition   => New_Occurrence_Of (Def_Id, Loc),
!                       Expression          => Node);
! 
!                   Insert_Action (N, Temp_Decl);
!                   Build_Allocate_Deallocate_Proc (Temp_Decl, True);
                 end if;
  
                 --  Generate an additional object containing the address of the
--- 1015,1027 ----
                 --  Declare the object using the previous type declaration
  
                 if Aggr_In_Place then
!                   Build_Aggregate_In_Place (New_Temp, Def_Id);
  
!                elsif Delayed_Cond_Expr or else Needs_Cleanup then
!                   Build_Explicit_Assignment (New_Temp, Def_Id);
  
                 else
!                   Build_Simple_Allocation (New_Temp, Def_Id);
                 end if;
  
                 --  Generate an additional object containing the address of the
*************** package body Exp_Ch4 is
*** 871,888 ****
                 --  this pointer to reference the component associated with the
                 --  interface type will be done at the end of common processing.
  
!                New_Decl :=
                   Make_Object_Declaration (Loc,
!                    Defining_Identifier => Make_Temporary (Loc, 'P'),
                     Object_Definition   => New_Occurrence_Of (PtrT, Loc),
                     Expression          =>
                       Unchecked_Convert_To (PtrT,
!                        New_Occurrence_Of (Temp, Loc)));
! 
!                Insert_Action (N, New_Decl);
! 
!                Temp_Decl := New_Decl;
!                Temp      := Defining_Identifier (New_Decl);
              end;
           end if;
  
--- 1031,1043 ----
                 --  this pointer to reference the component associated with the
                 --  interface type will be done at the end of common processing.
  
!                Insert_Action (N,
                   Make_Object_Declaration (Loc,
!                    Defining_Identifier => Temp,
                     Object_Definition   => New_Occurrence_Of (PtrT, Loc),
                     Expression          =>
                       Unchecked_Convert_To (PtrT,
!                        New_Occurrence_Of (New_Temp, Loc))));
              end;
           end if;
  
*************** package body Exp_Ch4 is
*** 897,905 ****
           --  Ada 2005 (AI-251): Suppress the tag assignment with class-wide
           --  interface objects because in this case the tag does not change.
  
!          elsif Is_Interface (Directly_Designated_Type (Etype (N))) then
!             pragma Assert (Is_Class_Wide_Type
!                             (Directly_Designated_Type (Etype (N))));
              null;
  
           --  Likewise if the allocator is made for a special return object
--- 1052,1059 ----
           --  Ada 2005 (AI-251): Suppress the tag assignment with class-wide
           --  interface objects because in this case the tag does not change.
  
!          elsif Is_Interface (DesigT) then
!             pragma Assert (Is_Class_Wide_Type (DesigT));
              null;
  
           --  Likewise if the allocator is made for a special return object
*************** package body Exp_Ch4 is
*** 945,1055 ****
             and then Needs_Finalization (T)
             and then not Is_Inherently_Limited_Type (T)
             and then not Aggr_In_Place
             and then Nkind (Exp) /= N_Function_Call
             and then not Special_Return
           then
!             --  An unchecked conversion is needed in the classwide case because
!             --  the designated type can be an ancestor of the subtype mark of
!             --  the allocator.
! 
!             Adj_Call :=
!               Make_Adjust_Call
!                 (Obj_Ref =>
!                    Unchecked_Convert_To (T,
!                      Make_Explicit_Dereference (Loc,
!                        Prefix => New_Occurrence_Of (Temp, Loc))),
!                  Typ     => T);
  
!             if Present (Adj_Call) then
!                Insert_Action (N, Adj_Call);
!             end if;
           end if;
  
           --  Note: the accessibility check must be inserted after the call to
           --  [Deep_]Adjust to ensure proper completion of the assignment.
  
           Apply_Accessibility_Check_For_Allocator (N, Exp, Temp);
  
!          Rewrite (N, New_Occurrence_Of (Temp, Loc));
!          Analyze_And_Resolve (N, PtrT);
! 
!          if Aggr_In_Place then
!             Apply_Predicate_Check (N, T, Deref => True);
!          end if;
! 
!          --  Ada 2005 (AI-251): Displace the pointer to reference the record
!          --  component containing the secondary dispatch table of the interface
!          --  type.
! 
!          if Is_Interface (DesigT) then
!             Displace_Allocator_Pointer (N);
!          end if;
! 
!       --  Always force the generation of a temporary for aggregates when
!       --  generating C code, to simplify the work in the code generator.
  
!       elsif Aggr_In_Place
!         or else (Modify_Tree_For_C and then Nkind (Exp) = N_Aggregate)
!       then
           Temp := Make_Temporary (Loc, 'P', N);
!          Temp_Decl :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!              Expression          =>
!                Make_Allocator (Loc,
!                  Expression => New_Occurrence_Of (Etype (Exp), Loc)));
! 
!          --  Copy the Comes_From_Source flag for the allocator we just built,
!          --  since logically this allocator is a replacement of the original
!          --  allocator node. This is for proper handling of restriction
!          --  No_Implicit_Heap_Allocations.
  
!          Set_Comes_From_Source
!            (Expression (Temp_Decl), Comes_From_Source (N));
  
!          Set_No_Initialization (Expression (Temp_Decl));
!          Insert_Action (N, Temp_Decl);
  
!          Build_Allocate_Deallocate_Proc (Temp_Decl, True);
!          Convert_Aggr_In_Allocator (N, Temp_Decl, Exp);
  
!          Rewrite (N, New_Occurrence_Of (Temp, Loc));
!          Analyze_And_Resolve (N, PtrT);
  
!          if Aggr_In_Place then
!             Apply_Predicate_Check (N, T, Deref => True);
           end if;
  
!       elsif Is_Access_Type (T) and then Can_Never_Be_Null (T) then
!          Install_Null_Excluding_Check (Exp);
! 
!       elsif Is_Access_Type (DesigT)
!         and then Nkind (Exp) = N_Allocator
!         and then Nkind (Expression (Exp)) /= N_Qualified_Expression
!       then
!          --  Apply constraint to designated subtype indication
  
!          Apply_Constraint_Check
!            (Expression (Exp), Designated_Type (DesigT), No_Sliding => True);
  
!          if Nkind (Expression (Exp)) = N_Raise_Constraint_Error then
  
!             --  Propagate constraint_error to enclosing allocator
  
!             Rewrite (Exp, New_Copy (Expression (Exp)));
           end if;
  
!       else
!          Build_Allocate_Deallocate_Proc (N, True);
! 
!          --  For an access to unconstrained packed array, GIGI needs to see an
!          --  expression with a constrained subtype in order to compute the
!          --  proper size for the allocator.
  
!          if Is_Packed_Array (T)
!            and then not Is_Constrained (T)
!          then
              declare
                 ConstrT      : constant Entity_Id := Make_Temporary (Loc, 'A');
                 Internal_Exp : constant Node_Id   := Relocate_Node (Exp);
--- 1099,1192 ----
             and then Needs_Finalization (T)
             and then not Is_Inherently_Limited_Type (T)
             and then not Aggr_In_Place
+            and then not Delayed_Cond_Expr
             and then Nkind (Exp) /= N_Function_Call
             and then not Special_Return
           then
!             declare
!                Adj_Call : constant Node_Id :=
!                  Make_Adjust_Call
!                    (Obj_Ref =>
!                       Unchecked_Convert_To (T,
!                         Make_Explicit_Dereference (Loc,
!                           Prefix => New_Occurrence_Of (Temp, Loc))),
!                     Typ     => T);
!                --  An unchecked conversion is needed in the CW case because
!                --  the designated type can be an ancestor of the subtype mark
!                --  of the allocator.
  
!             begin
!                if Present (Adj_Call) then
!                   Insert_Action (N, Adj_Call);
!                end if;
!             end;
           end if;
  
+          --  This needs to done before generating the accessibility check below
+          --  because the check comes with cleanup code that invokes Free on the
+          --  temporary and, therefore, expects the object to be attached to its
+          --  finalization collection if it is controlled.
+ 
+          Build_Allocate_Deallocate_Proc (Declaration_Node (Temp), Mark => N);
+ 
           --  Note: the accessibility check must be inserted after the call to
           --  [Deep_]Adjust to ensure proper completion of the assignment.
  
           Apply_Accessibility_Check_For_Allocator (N, Exp, Temp);
  
!       --  Case of aggregate built in place
  
!       elsif Aggr_In_Place then
           Temp := Make_Temporary (Loc, 'P', N);
!          Build_Aggregate_In_Place (Temp, PtrT);
!          Build_Allocate_Deallocate_Proc (Declaration_Node (Temp), Mark => N);
  
!       --  If the initialization expression is a conditional expression whose
!       --  expansion has been delayed, assign it explicitly to the allocator,
!       --  but only after analyzing it again and expanding it.
  
!       elsif Delayed_Cond_Expr then
!          Temp := Make_Temporary (Loc, 'P', N);
!          Build_Explicit_Assignment (Temp, PtrT);
!          Build_Allocate_Deallocate_Proc (Declaration_Node (Temp), Mark => N);
  
!       --  Default case
  
!       else
!          --  Ada 2005 (AI-318-02): If the initialization expression is a call
!          --  to a build-in-place function, then access to the allocated object
!          --  must be passed to the function.
  
!          if Is_Build_In_Place_Function_Call (Exp) then
!             Make_Build_In_Place_Call_In_Allocator (N, Exp);
!             return;
           end if;
  
!          if Is_Access_Type (T) and then Can_Never_Be_Null (T) then
!             Install_Null_Excluding_Check (Exp);
!          end if;
  
!          if Is_Access_Type (DesigT)
!            and then Nkind (Exp) = N_Allocator
!            and then Nkind (Expression (Exp)) /= N_Qualified_Expression
!          then
!             --  Apply constraint to designated subtype indication
  
!             Apply_Constraint_Check
!               (Expression (Exp), Designated_Type (DesigT), No_Sliding => True);
  
!             --  Propagate Constraint_Error to enclosing allocator
  
!             if Nkind (Expression (Exp)) = N_Raise_Constraint_Error then
!                Rewrite (Exp, New_Copy (Expression (Exp)));
!             end if;
           end if;
  
!          --  For an access-to-unconstrained-packed-array type, build an
!          --  expression with a constrained subtype in order for the code
!          --  generator to compute the proper size for the allocator.
  
!          if Is_Packed_Array (T) and then not Is_Constrained (T) then
              declare
                 ConstrT      : constant Entity_Id := Make_Temporary (Loc, 'A');
                 Internal_Exp : constant Node_Id   := Relocate_Node (Exp);
*************** package body Exp_Ch4 is
*** 1064,1076 ****
              end;
           end if;
  
!          --  Ada 2005 (AI-318-02): If the initialization expression is a call
!          --  to a build-in-place function, then access to the allocated object
!          --  must be passed to the function.
  
!          if Is_Build_In_Place_Function_Call (Exp) then
!             Make_Build_In_Place_Call_In_Allocator (N, Exp);
           end if;
        end if;
  
     exception
--- 1201,1241 ----
              end;
           end if;
  
!          --  ??? If the allocator is present inside a record type, then the
!          --  actions are attached to the current scope, to be inserted and
!          --  analyzed on exit from the scope, so we cannot do any rewriting.
  
!          if Is_Record_Type (Current_Scope)
!            and then not Is_Frozen (Current_Scope)
!          then
!             Build_Allocate_Deallocate_Proc (N);
!             return;
           end if;
+ 
+          Temp := Make_Temporary (Loc, 'P', N);
+          if Needs_Cleanup then
+             Build_Explicit_Assignment (Temp, PtrT);
+          else
+             Build_Simple_Allocation (Temp, PtrT);
+          end if;
+          Build_Allocate_Deallocate_Proc (Declaration_Node (Temp), Mark => N);
+       end if;
+ 
+       Rewrite (N, New_Occurrence_Of (Temp, Loc));
+       Preserve_Comes_From_Source (N, Original_Node (N));
+       Analyze_And_Resolve (N, PtrT);
+ 
+       Apply_Predicate_Check (N, T, Deref => True);
+       if not Static_Match then
+          Apply_Predicate_Check (N, DesigT, Deref => True);
+       end if;
+ 
+       --  Ada 2005 (AI-251): Displace the pointer to reference the record
+       --  component containing the secondary dispatch table of the interface
+       --  type.
+ 
+       if Is_Interface (DesigT) then
+          Displace_Allocator_Pointer (N);
        end if;
  
     exception
*************** package body Exp_Ch4 is
*** 1105,1113 ****
  
        Comp : RE_Id;
  
-       Byte_Addressable : constant Boolean := System_Storage_Unit = Byte'Size;
-       --  True for byte addressable target
- 
        function Length_Less_Than_4 (Opnd : Node_Id) return Boolean;
        --  Returns True if the length of the given operand is known to be less
        --  than 4. Returns False if this length is known to be four or greater
--- 1270,1275 ----
*************** package body Exp_Ch4 is
*** 1141,1151 ****
     --  Start of processing for Expand_Array_Comparison
  
     begin
!       --  Deal first with unpacked case, where we can call a runtime routine
!       --  except that we avoid this for targets for which are not addressable
!       --  by bytes.
  
!       if not Is_Bit_Packed_Array (Typ1) and then Byte_Addressable then
           --  The call we generate is:
  
           --  Compare_Array_xn[_Unaligned]
--- 1303,1314 ----
     --  Start of processing for Expand_Array_Comparison
  
     begin
!       --  Deal first with unpacked case, where we can call a runtime routine,
!       --  except if the component type is a byte (unsigned) where we can use
!       --  a byte-wise comparison if supported on the target (this is disabled
!       --  for now in Unnest_Subprogram_Mode for LLVM).
  
!       if not Is_Bit_Packed_Array (Typ1) then
           --  The call we generate is:
  
           --  Compare_Array_xn[_Unaligned]
*************** package body Exp_Ch4 is
*** 1157,1165 ****
           --  <op> is the standard comparison operator
  
           if Component_Size (Typ1) = 8 then
!             if Length_Less_Than_4 (Op1)
!                  or else
!                Length_Less_Than_4 (Op2)
              then
                 if Is_Unsigned_Type (Ctyp) then
                    Comp := RE_Compare_Array_U8_Unaligned;
--- 1320,1337 ----
           --  <op> is the standard comparison operator
  
           if Component_Size (Typ1) = 8 then
!             if Is_Unsigned_Type (Ctyp)
!               and then not Is_Possibly_Unaligned_Object (Op1)
!               and then not Is_Possibly_Unaligned_Slice (Op1)
!               and then not Is_Possibly_Unaligned_Object (Op2)
!               and then not Is_Possibly_Unaligned_Slice (Op2)
!               and then Support_Composite_Compare_On_Target
!               and then not Unnest_Subprogram_Mode
!             then
!                return;
! 
!             elsif Length_Less_Than_4 (Op1)
!               or else Length_Less_Than_4 (Op2)
              then
                 if Is_Unsigned_Type (Ctyp) then
                    Comp := RE_Compare_Array_U8_Unaligned;
*************** package body Exp_Ch4 is
*** 1204,1214 ****
              end if;
           end if;
  
!          if RTE_Available (Comp) then
! 
!             --  Expand to a call only if the runtime function is available,
!             --  otherwise fall back to inline code.
  
              Remove_Side_Effects (Op1, Name_Req => True);
              Remove_Side_Effects (Op2, Name_Req => True);
  
--- 1376,1385 ----
              end if;
           end if;
  
!          --  Expand to a call only if the runtime function is available,
!          --  otherwise fall back to inline code.
  
+          if RTE_Available (Comp) then
              Remove_Side_Effects (Op1, Name_Req => True);
              Remove_Side_Effects (Op2, Name_Req => True);
  
*************** package body Exp_Ch4 is
*** 1235,1242 ****
                         Attribute_Name => Name_Length)));
  
                 Zero : constant Node_Id :=
!                  Make_Integer_Literal (Loc,
!                    Intval => Uint_0);
  
                 Comp_Op : Node_Id;
  
--- 1406,1412 ----
                         Attribute_Name => Name_Length)));
  
                 Zero : constant Node_Id :=
!                  Make_Integer_Literal (Loc, Intval => Uint_0);
  
                 Comp_Op : Node_Id;
  
*************** package body Exp_Ch4 is
*** 1513,1538 ****
             (Outer_Type => Typ, Nod => Nod, Comp_Type => Component_Type (Typ),
              Lhs => L, Rhs => R);
  
!          --  If some (sub)component is an unchecked_union, the whole operation
!          --  will raise program error.
! 
!          if Nkind (Test) = N_Raise_Program_Error then
! 
!             --  This node is going to be inserted at a location where a
!             --  statement is expected: clear its Etype so analysis will set
!             --  it to the expected Standard_Void_Type.
  
!             Set_Etype (Test, Empty);
!             return Test;
  
!          else
!             return
!               Make_Implicit_If_Statement (Nod,
!                 Condition       => Make_Op_Not (Loc, Right_Opnd => Test),
!                 Then_Statements => New_List (
!                   Make_Simple_Return_Statement (Loc,
!                     Expression => New_Occurrence_Of (Standard_False, Loc))));
!          end if;
        end Component_Equality;
  
        ------------------
--- 1683,1699 ----
             (Outer_Type => Typ, Nod => Nod, Comp_Type => Component_Type (Typ),
              Lhs => L, Rhs => R);
  
!          --  This is necessary to give the warning about Program_Error being
!          --  raised when some (sub)component is an unchecked_union.
  
!          Preserve_Comes_From_Source (Test, Nod);
  
!          return
!            Make_Implicit_If_Statement (Nod,
!              Condition       => Make_Op_Not (Loc, Right_Opnd => Test),
!              Then_Statements => New_List (
!                Make_Simple_Return_Statement (Loc,
!                  Expression => New_Occurrence_Of (Standard_False, Loc))));
        end Component_Equality;
  
        ------------------
*************** package body Exp_Ch4 is
*** 1943,1994 ****
              Func_Body := Make_Boolean_Array_Op (Etype (L), N);
              Func_Name := Defining_Unit_Name (Specification (Func_Body));
              Insert_Action (N, Func_Body);
! 
!             --  Now rewrite the expression with a call
! 
!             if Transform_Function_Array then
!                declare
!                   Temp_Id : constant Entity_Id := Make_Temporary (Loc, 'T');
!                   Call    : Node_Id;
!                   Decl    : Node_Id;
! 
!                begin
!                   --  Generate:
!                   --    Temp : ...;
! 
!                   Decl :=
!                     Make_Object_Declaration (Loc,
!                       Defining_Identifier => Temp_Id,
!                       Object_Definition   =>
!                         New_Occurrence_Of (Etype (L), Loc));
! 
!                   --  Generate:
!                   --    Proc_Call (L, R, Temp);
! 
!                   Call :=
!                     Make_Procedure_Call_Statement (Loc,
!                       Name => New_Occurrence_Of (Func_Name, Loc),
!                       Parameter_Associations =>
!                         New_List (
!                           L,
!                           Make_Type_Conversion
!                             (Loc, New_Occurrence_Of (Etype (L), Loc), R),
!                           New_Occurrence_Of (Temp_Id, Loc)));
! 
!                   Insert_Actions (Parent (N), New_List (Decl, Call));
!                   Rewrite (N, New_Occurrence_Of (Temp_Id, Loc));
!                end;
!             else
!                Rewrite (N,
!                  Make_Function_Call (Loc,
!                    Name => New_Occurrence_Of (Func_Name, Loc),
!                    Parameter_Associations =>
!                      New_List (
!                        L,
!                        Make_Type_Conversion
!                          (Loc, New_Occurrence_Of (Etype (L), Loc), R))));
!             end if;
! 
              Analyze_And_Resolve (N, Typ);
           end if;
        end;
--- 2104,2117 ----
              Func_Body := Make_Boolean_Array_Op (Etype (L), N);
              Func_Name := Defining_Unit_Name (Specification (Func_Body));
              Insert_Action (N, Func_Body);
!             Rewrite (N,
!               Make_Function_Call (Loc,
!                 Name => New_Occurrence_Of (Func_Name, Loc),
!                 Parameter_Associations =>
!                   New_List (
!                     L,
!                     Make_Type_Conversion
!                       (Loc, New_Occurrence_Of (Etype (L), Loc), R))));
              Analyze_And_Resolve (N, Typ);
           end if;
        end;
*************** package body Exp_Ch4 is
*** 2281,2286 ****
--- 2404,2431 ----
        --  Case of untagged record types
  
        elsif Is_Record_Type (Full_Type) then
+          --  Equality composes in Ada 2012 for untagged record types. It also
+          --  composes for bounded strings, because they are part of the
+          --  predefined environment (see 4.5.2(32.1/1)). We could make it
+          --  compose for bounded strings by making them tagged, or by making
+          --  sure all subcomponents are set to the same value, even when not
+          --  used. Instead, we have this special case in the compiler, because
+          --  it's more efficient.
+ 
+          if Ada_Version >= Ada_2012 or else Is_Bounded_String (Comp_Type) then
+             declare
+                Eq_Call : constant Node_Id :=
+                  Build_Eq_Call (Comp_Type, Loc, Lhs, Rhs);
+ 
+             begin
+                if Present (Eq_Call) then
+                   return Eq_Call;
+                end if;
+             end;
+          end if;
+ 
+          --  Check whether a TSS has been created for the type
+ 
           Eq_Op := TSS (Full_Type, TSS_Composite_Equality);
  
           if Present (Eq_Op) then
*************** package body Exp_Ch4 is
*** 2307,2340 ****
                     Parameter_Associations => New_List (L_Exp, R_Exp));
              end;
  
-          --  Equality composes in Ada 2012 for untagged record types. It also
-          --  composes for bounded strings, because they are part of the
-          --  predefined environment (see 4.5.2(32.1/1)). We could make it
-          --  compose for bounded strings by making them tagged, or by making
-          --  sure all subcomponents are set to the same value, even when not
-          --  used. Instead, we have this special case in the compiler, because
-          --  it's more efficient.
- 
-          elsif Ada_Version >= Ada_2012 or else Is_Bounded_String (Comp_Type)
-          then
-             --  If no TSS has been created for the type, check whether there is
-             --  a primitive equality declared for it.
- 
-             declare
-                Op : constant Node_Id :=
-                  Build_Eq_Call (Comp_Type, Loc, Lhs, Rhs);
- 
-             begin
-                --  Use user-defined primitive if it exists, otherwise use
-                --  predefined equality.
- 
-                if Present (Op) then
-                   return Op;
-                else
-                   return Make_Op_Eq (Loc, Lhs, Rhs);
-                end if;
-             end;
- 
           else
              return Expand_Record_Equality (Nod, Full_Type, Lhs, Rhs);
           end if;
--- 2452,2457 ----
*************** package body Exp_Ch4 is
*** 2360,2371 ****
                 pragma Assert
                   (Is_First_Subtype (Outer_Type)
                     or else Is_Generic_Actual_Type (Outer_Type));
-                Error_Msg_Node_1 := Outer_Type;
                 Error_Msg_Node_2 := Comp_Type;
!                Error_Msg
!                  ("?_q?""="" for type & uses predefined ""="" for }", Loc);
                 Error_Msg_Sloc := Sloc (Op);
!                Error_Msg ("\?_q?""="" # is ignored here", Loc);
              end if;
           end;
  
--- 2477,2488 ----
                 pragma Assert
                   (Is_First_Subtype (Outer_Type)
                     or else Is_Generic_Actual_Type (Outer_Type));
                 Error_Msg_Node_2 := Comp_Type;
!                Error_Msg_N
!                  ("?_q?""="" for type & uses predefined ""="" for }",
!                   Outer_Type);
                 Error_Msg_Sloc := Sloc (Op);
!                Error_Msg_N ("\?_q?""="" # is ignored here", Outer_Type);
              end if;
           end;
  
*************** package body Exp_Ch4 is
*** 2591,2597 ****
           end if;
        end To_Ityp;
  
!       --  Local Declarations
  
        Opnd_Typ   : Entity_Id;
        Slice_Rng  : Node_Id;
--- 2708,2714 ----
           end if;
        end To_Ityp;
  
!       --  Local variables
  
        Opnd_Typ   : Entity_Id;
        Slice_Rng  : Node_Id;
*************** package body Exp_Ch4 is
*** 2790,2802 ****
              if not Set then
                 NN := NN + 1;
  
!                --  Capture operand bounds
  
!                Opnd_Low_Bound (NN) :=
!                  Make_Attribute_Reference (Loc,
!                    Prefix         =>
!                      Duplicate_Subexpr (Opnd, Name_Req => True),
!                    Attribute_Name => Name_First);
  
                 --  Capture last operand bounds if result could be null
  
--- 2907,2938 ----
              if not Set then
                 NN := NN + 1;
  
!                --  Set low bound of operand and check first the constrained
!                --  case with known bound
  
!                if Is_Constrained (Opnd_Typ) then
!                   declare
!                      Low_Bound : constant Node_Id :=
!                        Type_Low_Bound
!                          (Underlying_Type (Etype (First_Index (Opnd_Typ))));
! 
!                   begin
!                      if Compile_Time_Known_Value (Low_Bound) then
!                         Opnd_Low_Bound (NN) := New_Copy_Tree (Low_Bound);
!                         Set := True;
!                      end if;
!                   end;
!                end if;
! 
!                --  Otherwise fall back to the general expression
! 
!                if not Set then
!                   Opnd_Low_Bound (NN) :=
!                     Make_Attribute_Reference (Loc,
!                       Prefix         =>
!                         Duplicate_Subexpr (Opnd, Name_Req => True),
!                       Attribute_Name => Name_First);
!                end if;
  
                 --  Capture last operand bounds if result could be null
  
*************** package body Exp_Ch4 is
*** 2971,2976 ****
--- 3107,3114 ----
        --  take unconditionally whether or not it is null. It's easiest to do
        --  this with a recursive procedure:
  
+       --  We fold the common case where all the low bounds are the same
+ 
        else
           declare
              function Get_Known_Bound (J : Nat) return Node_Id;
*************** package body Exp_Ch4 is
*** 2986,3017 ****
                    return New_Copy_Tree (Opnd_Low_Bound (J));
  
                 else
!                   return
!                     Make_If_Expression (Loc,
!                       Expressions => New_List (
  
!                         Make_Op_Ne (Loc,
!                           Left_Opnd  =>
!                             New_Occurrence_Of (Var_Length (J), Loc),
!                           Right_Opnd =>
!                             Make_Integer_Literal (Loc, 0)),
  
!                         New_Copy_Tree (Opnd_Low_Bound (J)),
!                         Get_Known_Bound (J + 1)));
                 end if;
              end Get_Known_Bound;
  
           begin
!             Ent := Make_Temporary (Loc, 'L');
  
!             Append_To (Actions,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Ent,
!                 Constant_Present    => True,
!                 Object_Definition   => New_Occurrence_Of (Ityp, Loc),
!                 Expression          => Get_Known_Bound (1)));
  
!             Low_Bound := New_Occurrence_Of (Ent, Loc);
           end;
        end if;
  
--- 3124,3177 ----
                    return New_Copy_Tree (Opnd_Low_Bound (J));
  
                 else
!                   declare
!                      Known_Bound : constant Node_Id := Get_Known_Bound (J + 1);
!                      Comparison  : constant Compare_Result :=
!                        Compile_Time_Compare
!                          (Opnd_Low_Bound (J),
!                           Known_Bound,
!                           Assume_Valid => True);
  
!                   begin
!                      if Comparison = EQ then
!                         return Known_Bound;
  
!                      else
!                         return
!                           Make_If_Expression (Loc,
!                             Expressions => New_List (
! 
!                               Make_Op_Ne (Loc,
!                                 Left_Opnd  =>
!                                   New_Occurrence_Of (Var_Length (J), Loc),
!                                 Right_Opnd =>
!                                   Make_Integer_Literal (Loc, 0)),
! 
!                               New_Copy_Tree (Opnd_Low_Bound (J)),
!                               Known_Bound));
!                      end if;
!                   end;
                 end if;
              end Get_Known_Bound;
  
+             Known_Bound : constant Node_Id := Get_Known_Bound (1);
+ 
           begin
!             if Nkind (Known_Bound) /= N_If_Expression then
!                Low_Bound := Known_Bound;
  
!             else
!                Ent := Make_Temporary (Loc, 'L');
  
!                Append_To (Actions,
!                  Make_Object_Declaration (Loc,
!                    Defining_Identifier => Ent,
!                    Constant_Present    => True,
!                    Object_Definition   => New_Occurrence_Of (Ityp, Loc),
!                    Expression          => Known_Bound));
! 
!                Low_Bound := New_Occurrence_Of (Ent, Loc);
!             end if;
           end;
        end if;
  
*************** package body Exp_Ch4 is
*** 3844,3853 ****
  
        procedure Expand_Modular_Addition is
        begin
!          --  If this is not the addition of a constant then compute it using
!          --  the general rule: (lhs + rhs) mod Modulus
  
!          if Nkind (Right_Opnd (N)) /= N_Integer_Literal then
              Expand_Modular_Op;
  
           --  If this is an addition of a constant, convert it to a subtraction
--- 4004,4016 ----
  
        procedure Expand_Modular_Addition is
        begin
!          --  If this is not the addition of a constant or else restriction
!          --  No_Implicit_Conditionals is in effect, then compute it using
!          --  the general rule: (lhs + rhs) mod Modulus.
  
!          if Nkind (Right_Opnd (N)) /= N_Integer_Literal
!            or else Restriction_Active (No_Implicit_Conditionals)
!          then
              Expand_Modular_Op;
  
           --  If this is an addition of a constant, convert it to a subtraction
*************** package body Exp_Ch4 is
*** 3866,3871 ****
--- 4029,4035 ----
                 Cond_Expr : Node_Id;
                 Then_Expr : Node_Id;
                 Else_Expr : Node_Id;
+ 
              begin
                 --  To prevent spurious visibility issues, convert all
                 --  operands to Standard.Unsigned.
*************** package body Exp_Ch4 is
*** 3911,3922 ****
           --   We will convert to another type (not a nonbinary-modulus modular
           --   type), evaluate the op in that representation, reduce the result,
           --   and convert back to the original type. This means that the
!          --   backend does not have to deal with nonbinary-modulus ops.
! 
!          Op_Expr  : constant Node_Id := New_Op_Node (Nkind (N), Loc);
!          Mod_Expr : Node_Id;
  
           Target_Type : Entity_Id;
        begin
           --  Select a target type that is large enough to avoid spurious
           --  intermediate overflow on pre-reduction computation (for
--- 4075,4086 ----
           --   We will convert to another type (not a nonbinary-modulus modular
           --   type), evaluate the op in that representation, reduce the result,
           --   and convert back to the original type. This means that the
!          --   back end does not have to deal with nonbinary-modulus ops.
  
+          Mod_Expr    : Node_Id;
+          Op_Expr     : Node_Id;
           Target_Type : Entity_Id;
+ 
        begin
           --  Select a target type that is large enough to avoid spurious
           --  intermediate overflow on pre-reduction computation (for
*************** package body Exp_Ch4 is
*** 3924,3945 ****
  
           declare
              Required_Size : Uint := RM_Size (Etype (N));
!             Use_Unsigned  : Boolean := True;
           begin
              case Nkind (N) is
!                when N_Op_Add =>
                    --  For example, if modulus is 255 then RM_Size will be 8
                    --  and the range of possible values (before reduction) will
                    --  be 0 .. 508; that range requires 9 bits.
                    Required_Size := Required_Size + 1;
  
-                when N_Op_Subtract =>
-                   --  For example, if modulus is 255 then RM_Size will be 8
-                   --  and the range of possible values (before reduction) will
-                   --  be -254 .. 254; that range requires 9 bits, signed.
-                   Use_Unsigned := False;
-                   Required_Size := Required_Size + 1;
- 
                 when N_Op_Multiply =>
                    --  For example, if modulus is 255 then RM_Size will be 8
                    --  and the range of possible values (before reduction) will
--- 4088,4102 ----
  
           declare
              Required_Size : Uint := RM_Size (Etype (N));
! 
           begin
              case Nkind (N) is
!                when N_Op_Add | N_Op_Subtract =>
                    --  For example, if modulus is 255 then RM_Size will be 8
                    --  and the range of possible values (before reduction) will
                    --  be 0 .. 508; that range requires 9 bits.
                    Required_Size := Required_Size + 1;
  
                 when N_Op_Multiply =>
                    --  For example, if modulus is 255 then RM_Size will be 8
                    --  and the range of possible values (before reduction) will
*************** package body Exp_Ch4 is
*** 3950,3986 ****
                    null;
              end case;
  
!             if Use_Unsigned then
!                if Required_Size <= Standard_Short_Short_Integer_Size then
!                   Target_Type := Standard_Short_Short_Unsigned;
!                elsif Required_Size <= Standard_Short_Integer_Size then
!                   Target_Type := Standard_Short_Unsigned;
!                elsif Required_Size <= Standard_Integer_Size then
!                   Target_Type := Standard_Unsigned;
!                else
!                   pragma Assert (Required_Size <= 64);
!                   Target_Type := Standard_Unsigned_64;
!                end if;
!             elsif Required_Size <= 8 then
!                Target_Type := Standard_Integer_8;
!             elsif Required_Size <= 16 then
!                Target_Type := Standard_Integer_16;
!             elsif Required_Size <= 32 then
!                Target_Type := Standard_Integer_32;
!             else
!                pragma Assert (Required_Size <= 64);
!                Target_Type := Standard_Integer_64;
!             end if;
! 
              pragma Assert (Present (Target_Type));
           end;
  
           Set_Left_Opnd (Op_Expr,
!            Unchecked_Convert_To (Target_Type,
!              New_Copy_Tree (Left_Opnd (N))));
           Set_Right_Opnd (Op_Expr,
!            Unchecked_Convert_To (Target_Type,
!              New_Copy_Tree (Right_Opnd (N))));
  
           --  ??? Why do this stuff for some ops and not others?
           if Nkind (N) not in N_Op_And | N_Op_Or | N_Op_Xor then
--- 4107,4121 ----
                    null;
              end case;
  
!             Target_Type := Small_Integer_Type_For (Required_Size, Uns => True);
              pragma Assert (Present (Target_Type));
           end;
  
+          Op_Expr := New_Op_Node (Nkind (N), Loc);
           Set_Left_Opnd (Op_Expr,
!            Unchecked_Convert_To (Target_Type, New_Copy_Tree (Left_Opnd (N))));
           Set_Right_Opnd (Op_Expr,
!            Unchecked_Convert_To (Target_Type, New_Copy_Tree (Right_Opnd (N))));
  
           --  ??? Why do this stuff for some ops and not others?
           if Nkind (N) not in N_Op_And | N_Op_Or | N_Op_Xor then
*************** package body Exp_Ch4 is
*** 4009,4021 ****
              Force_Evaluation (Op_Expr, Mode => Strict);
           end if;
  
           Mod_Expr :=
             Make_Op_Mod (Loc,
               Left_Opnd  => Op_Expr,
               Right_Opnd => Make_Integer_Literal (Loc, Modulus (Typ)));
  
!          Rewrite (N,
!            Unchecked_Convert_To (Typ, Mod_Expr));
        end Expand_Modular_Op;
  
        --------------------------------
--- 4144,4167 ----
              Force_Evaluation (Op_Expr, Mode => Strict);
           end if;
  
+          --  Unconditionally add the modulus to the result for a subtraction,
+          --  this gets rid of all its peculiarities by cancelling out the
+          --  addition of the binary modulus in the case where the subtraction
+          --  wraps around in Target_Type.
+ 
+          if Nkind (N) = N_Op_Subtract then
+             Op_Expr :=
+                Make_Op_Add (Loc,
+                  Left_Opnd  => Op_Expr,
+                  Right_Opnd => Make_Integer_Literal (Loc, Modulus (Typ)));
+          end if;
+ 
           Mod_Expr :=
             Make_Op_Mod (Loc,
               Left_Opnd  => Op_Expr,
               Right_Opnd => Make_Integer_Literal (Loc, Modulus (Typ)));
  
!          Rewrite (N, Unchecked_Convert_To (Typ, Mod_Expr));
        end Expand_Modular_Op;
  
        --------------------------------
*************** package body Exp_Ch4 is
*** 4024,4033 ****
  
        procedure Expand_Modular_Subtraction is
        begin
!          --  If this is not the addition of a constant then compute it using
!          --  the general rule: (lhs + rhs) mod Modulus
  
!          if Nkind (Right_Opnd (N)) /= N_Integer_Literal then
              Expand_Modular_Op;
  
           --  If this is an addition of a constant, convert it to a subtraction
--- 4170,4182 ----
  
        procedure Expand_Modular_Subtraction is
        begin
!          --  If this is not the addition of a constant or else restriction
!          --  No_Implicit_Conditionals is in effect, then compute it using
!          --  the general rule: (lhs - rhs) mod Modulus.
  
!          if Nkind (Right_Opnd (N)) /= N_Integer_Literal
!            or else Restriction_Active (No_Implicit_Conditionals)
!          then
              Expand_Modular_Op;
  
           --  If this is an addition of a constant, convert it to a subtraction
*************** package body Exp_Ch4 is
*** 4046,4051 ****
--- 4195,4201 ----
                 Cond_Expr : Node_Id;
                 Then_Expr : Node_Id;
                 Else_Expr : Node_Id;
+ 
              begin
                 Cond_Expr :=
                   Make_Op_Lt (Loc,
*************** package body Exp_Ch4 is
*** 4084,4106 ****
     --  Start of processing for Expand_Nonbinary_Modular_Op
  
     begin
!       --  No action needed if front-end expansion is not required or if we
!       --  have a binary modular operand.
  
!       if not Expand_Nonbinary_Modular_Ops
!         or else not Non_Binary_Modulus (Typ)
!       then
           return;
        end if;
  
        case Nkind (N) is
           when N_Op_Add =>
              Expand_Modular_Addition;
  
           when N_Op_Subtract =>
              Expand_Modular_Subtraction;
  
           when N_Op_Minus =>
  
              --  Expand -expr into (0 - expr)
  
--- 4234,4279 ----
     --  Start of processing for Expand_Nonbinary_Modular_Op
  
     begin
!       --  No action needed if we have a binary modular operand
  
!       if not Non_Binary_Modulus (Typ) then
           return;
        end if;
  
        case Nkind (N) is
           when N_Op_Add =>
+             --  No action needed if front-end expansion is not required and
+             --  restriction No_Implicit_Conditionals is not in effect.
+ 
+             if not Expand_Nonbinary_Modular_Ops
+               and then not Restriction_Active (No_Implicit_Conditionals)
+             then
+                return;
+             end if;
+ 
              Expand_Modular_Addition;
  
           when N_Op_Subtract =>
+             --  No action needed if front-end expansion is not required and
+             --  restriction No_Implicit_Conditionals is not in effect.
+ 
+             if not Expand_Nonbinary_Modular_Ops
+               and then not Restriction_Active (No_Implicit_Conditionals)
+             then
+                return;
+             end if;
+ 
              Expand_Modular_Subtraction;
  
           when N_Op_Minus =>
+             --  No action needed if front-end expansion is not required and
+             --  restriction No_Implicit_Conditionals is not in effect.
+ 
+             if not Expand_Nonbinary_Modular_Ops
+               and then not Restriction_Active (No_Implicit_Conditionals)
+             then
+                return;
+             end if;
  
              --  Expand -expr into (0 - expr)
  
*************** package body Exp_Ch4 is
*** 4111,4116 ****
--- 4284,4297 ----
              Analyze_And_Resolve (N, Typ);
  
           when others =>
+             --  No action needed only if front-end expansion is not required
+             --  because we assume that logical and multiplicative operations
+             --  do not involve implicit conditionals.
+ 
+             if not Expand_Nonbinary_Modular_Ops then
+                return;
+             end if;
+ 
              Expand_Modular_Op;
        end case;
  
*************** package body Exp_Ch4 is
*** 4122,4130 ****
     ------------------------
  
     procedure Expand_N_Allocator (N : Node_Id) is
-       Etyp : constant Entity_Id  := Etype (Expression (N));
        Loc  : constant Source_Ptr := Sloc (N);
        PtrT : constant Entity_Id  := Etype (N);
  
        procedure Rewrite_Coextension (N : Node_Id);
        --  Static coextensions have the same lifetime as the entity they
--- 4303,4312 ----
     ------------------------
  
     procedure Expand_N_Allocator (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
        PtrT : constant Entity_Id  := Etype (N);
+       Dtyp : constant Entity_Id  := Available_View (Designated_Type (PtrT));
+       Etyp : constant Entity_Id  := Etype (Expression (N));
  
        procedure Rewrite_Coextension (N : Node_Id);
        --  Static coextensions have the same lifetime as the entity they
*************** package body Exp_Ch4 is
*** 4177,4183 ****
  
        function Size_In_Storage_Elements (E : Entity_Id) return Node_Id is
           Idx : Node_Id := First_Index (E);
!          Len : Node_Id;
           Res : Node_Id := Empty;
  
        begin
--- 4359,4365 ----
  
        function Size_In_Storage_Elements (E : Entity_Id) return Node_Id is
           Idx : Node_Id := First_Index (E);
!          Len : Node_Id := Empty;
           Res : Node_Id := Empty;
  
        begin
*************** package body Exp_Ch4 is
*** 4284,4295 ****
  
        --  Local variables
  
!       Dtyp    : constant Entity_Id := Available_View (Designated_Type (PtrT));
!       Desig   : Entity_Id;
!       Nod     : Node_Id;
!       Pool    : Entity_Id;
!       Rel_Typ : Entity_Id;
!       Temp    : Entity_Id;
  
     --  Start of processing for Expand_N_Allocator
  
--- 4466,4479 ----
  
        --  Local variables
  
!       Desig      : Entity_Id;
!       Init_Expr  : Node_Id;
!       Init_Stmts : List_Id;
!       Pool       : Entity_Id;
!       Rel_Typ    : Entity_Id;
!       Target_Ref : Node_Id;
!       Temp       : Entity_Id;
!       Temp_Decl  : Node_Id;
  
     --  Start of processing for Expand_N_Allocator
  
*************** package body Exp_Ch4 is
*** 4315,4327 ****
        Validate_Remote_Access_To_Class_Wide_Type (N);
  
        --  Processing for anonymous access-to-controlled types. These access
!       --  types receive a special finalization master which appears in the
        --  declarations of the enclosing semantic unit. This expansion is done
        --  now to ensure that any additional types generated by this routine or
        --  Expand_Allocator_Expression inherit the proper type attributes.
  
        if (Ekind (PtrT) = E_Anonymous_Access_Type
!            or else (Is_Itype (PtrT) and then No (Finalization_Master (PtrT))))
          and then Needs_Finalization (Dtyp)
        then
           --  Detect the allocation of an anonymous controlled object where the
--- 4499,4512 ----
        Validate_Remote_Access_To_Class_Wide_Type (N);
  
        --  Processing for anonymous access-to-controlled types. These access
!       --  types receive a special finalization collection which appears in the
        --  declarations of the enclosing semantic unit. This expansion is done
        --  now to ensure that any additional types generated by this routine or
        --  Expand_Allocator_Expression inherit the proper type attributes.
  
        if (Ekind (PtrT) = E_Anonymous_Access_Type
!            or else (Is_Itype (PtrT)
!                      and then No (Finalization_Collection (PtrT))))
          and then Needs_Finalization (Dtyp)
        then
           --  Detect the allocation of an anonymous controlled object where the
*************** package body Exp_Ch4 is
*** 4358,4373 ****
              end if;
           end if;
  
!          --  The finalization master must be inserted and analyzed as part of
!          --  the current semantic unit. Note that the master is updated when
!          --  analysis changes current units. Note that this is a "root type
!          --  only" attribute.
  
           if Present (Rel_Typ) then
!             Set_Finalization_Master
!               (Root_Type (PtrT), Finalization_Master (Rel_Typ));
           else
!             Build_Anonymous_Master (Root_Type (PtrT));
           end if;
        end if;
  
--- 4543,4558 ----
              end if;
           end if;
  
!          --  The finalization collection must be inserted and analyzed as part
!          --  of the current semantic unit. Note that the collection is updated
!          --  when analysis changes current units. Note that this is a root type
!          --  attribute.
  
           if Present (Rel_Typ) then
!             Set_Finalization_Collection
!               (Root_Type (PtrT), Finalization_Collection (Rel_Typ));
           else
!             Build_Anonymous_Collection (Root_Type (PtrT));
           end if;
        end if;
  
*************** package body Exp_Ch4 is
*** 4561,4589 ****
                 if Is_Constrained (Siz_Typ)
                   and then Ekind (Siz_Typ) /= E_String_Literal_Subtype
                 then
!                   --  For CCG targets, the largest array may have up to 2**31-1
!                   --  components (i.e. 2 gigabytes if each array component is
!                   --  one byte). This ensures that fat pointer fields do not
!                   --  overflow, since they are 32-bit integer types, and also
!                   --  ensures that 'Length can be computed at run time.
! 
!                   if Modify_Tree_For_C then
!                      Cond :=
!                        Make_Op_Gt (Loc,
!                          Left_Opnd  => Size_In_Storage_Elements (Siz_Typ),
!                          Right_Opnd => Make_Integer_Literal (Loc,
!                                          Uint_2 ** 31 - Uint_1));
! 
!                   --  For native targets the largest object is 3.5 gigabytes
! 
!                   else
!                      Cond :=
!                        Make_Op_Gt (Loc,
!                          Left_Opnd  => Size_In_Storage_Elements (Siz_Typ),
!                          Right_Opnd => Make_Integer_Literal (Loc,
!                                          Uint_7 * (Uint_2 ** 29)));
!                   end if;
  
                    Insert_Action (Ins_Nod,
                      Make_Raise_Storage_Error (Loc,
                        Condition => Cond,
--- 4746,4758 ----
                 if Is_Constrained (Siz_Typ)
                   and then Ekind (Siz_Typ) /= E_String_Literal_Subtype
                 then
!                   --  The largest object is 3.5 gigabytes
  
+                   Cond :=
+                     Make_Op_Gt (Loc,
+                       Left_Opnd  => Size_In_Storage_Elements (Siz_Typ),
+                       Right_Opnd => Make_Integer_Literal (Loc,
+                                       Uint_7 * (Uint_2 ** 29)));
                    Insert_Action (Ins_Nod,
                      Make_Raise_Storage_Error (Loc,
                        Condition => Cond,
*************** package body Exp_Ch4 is
*** 4619,4660 ****
  
        if Nkind (Expression (N)) = N_Qualified_Expression then
           Expand_Allocator_Expression (N);
!          return;
!       end if;
  
        --  If the allocator is for a type which requires initialization, and
        --  there is no initial value (i.e. operand is a subtype indication
        --  rather than a qualified expression), then we must generate a call to
!       --  the initialization routine using an expressions action node:
! 
!       --     [Pnnn : constant ptr_T := new (T); Init (Pnnn.all,...); Pnnn]
  
!       --  Here ptr_T is the pointer type for the allocator, and T is the
!       --  subtype of the allocator. A special case arises if the designated
!       --  type of the access type is a task or contains tasks. In this case
!       --  the call to Init (Temp.all ...) is replaced by code that ensures
!       --  that tasks get activated (see Exp_Ch9.Build_Task_Allocate_Block
!       --  for details). In addition, if the type T is a task type, then the
!       --  first argument to Init must be converted to the task record type.
  
!       declare
!          T         : constant Entity_Id := Etype (Expression (N));
!          Args      : List_Id;
!          Decls     : List_Id;
!          Decl      : Node_Id;
!          Discr     : Elmt_Id;
!          Init      : Entity_Id;
!          Init_Arg1 : Node_Id;
!          Init_Call : Node_Id;
!          Temp_Decl : Node_Id;
!          Temp_Type : Entity_Id;
  
!       begin
!          --  Apply constraint checks against designated subtype (RM 4.8(10/2))
!          --  but ignore the expression if the No_Initialization flag is set.
           --  Discriminant checks will be generated by the expansion below.
  
!          if Is_Array_Type (Dtyp) and then not No_Initialization (N) then
              Apply_Constraint_Check (Expression (N), Dtyp, No_Sliding => True);
  
              if Nkind (Expression (N)) = N_Raise_Constraint_Error then
--- 4788,4823 ----
  
        if Nkind (Expression (N)) = N_Qualified_Expression then
           Expand_Allocator_Expression (N);
! 
!       --  If no initialization is necessary, just create a custom Allocate if
!       --  the context requires it; that is the case only for allocators built
!       --  for the special return objects because, in other cases, the custom
!       --  Allocate will be created later during the expansion of the original
!       --  allocator without the No_Initialization flag.
! 
!       elsif No_Initialization (N) then
!          if For_Special_Return_Object (N) then
!             Build_Allocate_Deallocate_Proc (Parent (N));
!          end if;
  
        --  If the allocator is for a type which requires initialization, and
        --  there is no initial value (i.e. operand is a subtype indication
        --  rather than a qualified expression), then we must generate a call to
!       --  the initialization routine:
  
!       --    Temp : constant PtrT := new T;
!       --    Init (Temp.all,...);
!       --    ... := Temp.all;
  
!       --  A special case arises if T is a task type or contains tasks. In this
!       --  case the call to Init (Temp.all ...) is replaced by code that ensures
!       --  that tasks get activated (see Build_Task_Allocate_Block for details).
  
!       else
!          --  Apply constraint checks against designated subtype (RM 4.8(10/2)).
           --  Discriminant checks will be generated by the expansion below.
  
!          if Is_Array_Type (Dtyp) then
              Apply_Constraint_Check (Expression (N), Dtyp, No_Sliding => True);
  
              if Nkind (Expression (N)) = N_Raise_Constraint_Error then
*************** package body Exp_Ch4 is
*** 4664,5121 ****
              end if;
           end if;
  
!          if No_Initialization (N) then
! 
!             --  Even though this might be a simple allocation, create a custom
!             --  Allocate if the context requires it.
! 
!             if Present (Finalization_Master (PtrT)) then
!                Build_Allocate_Deallocate_Proc
!                  (N           => N,
!                   Is_Allocate => True);
!             end if;
! 
!          --  Optimize the default allocation of an array object when pragma
!          --  Initialize_Scalars or Normalize_Scalars is in effect. Construct an
!          --  in-place initialization aggregate which may be convert into a fast
!          --  memset by the backend.
! 
!          elsif Init_Or_Norm_Scalars
!            and then Is_Array_Type (T)
! 
!            --  The array must lack atomic components because they are treated
!            --  as non-static, and as a result the backend will not initialize
!            --  the memory in one go.
! 
!            and then not Has_Atomic_Components (T)
! 
!            --  The array must not be packed because the invalid values in
!            --  System.Scalar_Values are multiples of Storage_Unit.
! 
!            and then not Is_Packed (T)
! 
!            --  The array must have static non-empty ranges, otherwise the
!            --  backend cannot initialize the memory in one go.
! 
!            and then Has_Static_Non_Empty_Array_Bounds (T)
! 
!            --  The optimization is only relevant for arrays of scalar types
  
!            and then Is_Scalar_Type (Component_Type (T))
  
!            --  Similar to regular array initialization using a type init proc,
!            --  predicate checks are not performed because the initialization
!            --  values are intentionally invalid, and may violate the predicate.
  
!            and then not Has_Predicates (Component_Type (T))
  
!            --  The component type must have a single initialization value
  
!            and then Needs_Simple_Initialization
!                       (Typ         => Component_Type (T),
!                        Consider_IS => True)
!          then
!             Set_Analyzed (N);
!             Temp := Make_Temporary (Loc, 'P');
  
!             --  Generate:
!             --    Temp : Ptr_Typ := new ...;
  
!             Insert_Action
!               (Assoc_Node => N,
!                Ins_Action =>
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Temp,
                     Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!                    Expression          => Relocate_Node (N)),
!                Suppress   => All_Checks);
! 
!             --  Generate:
!             --    Temp.all := (others => ...);
! 
!             Insert_Action
!               (Assoc_Node => N,
!                Ins_Action =>
!                  Make_Assignment_Statement (Loc,
!                    Name       =>
!                      Make_Explicit_Dereference (Loc,
!                        Prefix => New_Occurrence_Of (Temp, Loc)),
!                    Expression =>
!                      Get_Simple_Init_Val
!                        (Typ  => T,
!                         N    => N,
!                         Size => Esize (Component_Type (T)))),
!                Suppress   => All_Checks);
! 
!             Rewrite (N, New_Occurrence_Of (Temp, Loc));
!             Analyze_And_Resolve (N, PtrT);
  
!             Apply_Predicate_Check (N, Dtyp, Deref => True);
  
!          --  Case of no initialization procedure present
  
!          elsif not Has_Non_Null_Base_Init_Proc (T) then
  
!             --  Case of simple initialization required
  
!             if Needs_Simple_Initialization (T) then
!                Check_Restriction (No_Default_Initialization, N);
!                Rewrite (Expression (N),
!                  Make_Qualified_Expression (Loc,
!                    Subtype_Mark => New_Occurrence_Of (T, Loc),
!                    Expression   => Get_Simple_Init_Val (T, N)));
  
!                Analyze_And_Resolve (Expression (Expression (N)), T);
!                Analyze_And_Resolve (Expression (N), T);
!                Set_Paren_Count     (Expression (Expression (N)), 1);
!                Expand_N_Allocator  (N);
  
!             --  No initialization required
  
!             else
!                Build_Allocate_Deallocate_Proc
!                  (N           => N,
!                   Is_Allocate => True);
!             end if;
  
!          --  Case of initialization procedure present, must be called
  
!          --  NOTE: There is a *huge* amount of code duplication here from
!          --  Build_Initialization_Call. We should probably refactor???
  
!          else
!             Check_Restriction (No_Default_Initialization, N);
  
!             if not Restriction_Active (No_Default_Initialization) then
!                Init := Base_Init_Proc (T);
!                Nod  := N;
!                Temp := Make_Temporary (Loc, 'P');
  
!                --  Construct argument list for the initialization routine call
  
!                Init_Arg1 :=
!                  Make_Explicit_Dereference (Loc,
!                    Prefix =>
!                      New_Occurrence_Of (Temp, Loc));
  
!                Set_Assignment_OK (Init_Arg1);
!                Temp_Type := PtrT;
  
!                --  The initialization procedure expects a specific type. if the
!                --  context is access to class wide, indicate that the object
!                --  being allocated has the right specific type.
  
!                if Is_Class_Wide_Type (Dtyp) then
!                   Init_Arg1 := Unchecked_Convert_To (T, Init_Arg1);
                 end if;
  
!                --  If designated type is a concurrent type or if it is private
!                --  type whose definition is a concurrent type, the first
!                --  argument in the Init routine has to be unchecked conversion
!                --  to the corresponding record type. If the designated type is
!                --  a derived type, also convert the argument to its root type.
! 
!                if Is_Concurrent_Type (T) then
!                   Init_Arg1 :=
!                     Unchecked_Convert_To (
!                       Corresponding_Record_Type (T), Init_Arg1);
  
!                elsif Is_Private_Type (T)
!                  and then Present (Full_View (T))
!                  and then Is_Concurrent_Type (Full_View (T))
!                then
!                   Init_Arg1 :=
!                     Unchecked_Convert_To
!                       (Corresponding_Record_Type (Full_View (T)), Init_Arg1);
  
!                elsif Etype (First_Formal (Init)) /= Base_Type (T) then
                    declare
!                      Ftyp : constant Entity_Id := Etype (First_Formal (Init));
  
                    begin
!                      Init_Arg1 := OK_Convert_To (Etype (Ftyp), Init_Arg1);
!                      Set_Etype (Init_Arg1, Ftyp);
!                   end;
!                end if;
! 
!                Args := New_List (Init_Arg1);
! 
!                --  For the task case, pass the Master_Id of the access type as
!                --  the value of the _Master parameter, and _Chain as the value
!                --  of the _Chain parameter (_Chain will be defined as part of
!                --  the generated code for the allocator).
! 
!                --  In Ada 2005, the context may be a function that returns an
!                --  anonymous access type. In that case the Master_Id has been
!                --  created when expanding the function declaration.
! 
!                if Has_Task (T) then
!                   if No (Master_Id (Base_Type (PtrT))) then
! 
!                      --  The designated type was an incomplete type, and the
!                      --  access type did not get expanded. Salvage it now.
! 
!                      if Present (Parent (Base_Type (PtrT))) then
!                         Expand_N_Full_Type_Declaration
!                           (Parent (Base_Type (PtrT)));
! 
!                      --  When the allocator has a subtype indication then a
!                      --  constraint is present and an itype has been added by
!                      --  Analyze_Allocator as the subtype of this allocator.
! 
!                      --  If an allocator with constraints is called in the
!                      --  return statement of a function returning a general
!                      --  access type, then propagate to the itype the master
!                      --  of the general access type (since it is the master
!                      --  associated with the returned object).
  
!                      elsif Is_Itype (PtrT)
!                        and then Ekind (Current_Scope) = E_Function
!                        and then Ekind (Etype (Current_Scope))
!                                   = E_General_Access_Type
!                        and then In_Return_Value (N)
                       then
!                         Set_Master_Id (PtrT,
!                           Master_Id (Etype (Current_Scope)));
! 
!                      --  The only other possibility is an itype. For this
!                      --  case, the master must exist in the context. This is
!                      --  the case when the allocator initializes an access
!                      --  component in an init-proc.
  
                       else
!                         pragma Assert (Is_Itype (PtrT));
!                         Build_Master_Renaming (PtrT, N);
                       end if;
!                   end if;
! 
!                   --  If the context of the allocator is a declaration or an
!                   --  assignment, we can generate a meaningful image for it,
!                   --  even though subsequent assignments might remove the
!                   --  connection between task and entity. We build this image
!                   --  when the left-hand side is a simple variable, a simple
!                   --  indexed assignment or a simple selected component.
! 
!                   if Nkind (Parent (N)) = N_Assignment_Statement then
!                      declare
!                         Nam : constant Node_Id := Name (Parent (N));
! 
!                      begin
!                         if Is_Entity_Name (Nam) then
!                            Decls :=
!                              Build_Task_Image_Decls
!                                (Loc,
!                                 New_Occurrence_Of
!                                   (Entity (Nam), Sloc (Nam)), T);
! 
!                         elsif Nkind (Nam) in N_Indexed_Component
!                                            | N_Selected_Component
!                           and then Is_Entity_Name (Prefix (Nam))
!                         then
!                            Decls :=
!                              Build_Task_Image_Decls
!                                (Loc, Nam, Etype (Prefix (Nam)));
!                         else
!                            Decls := Build_Task_Image_Decls (Loc, T, T);
!                         end if;
!                      end;
! 
!                   elsif Nkind (Parent (N)) = N_Object_Declaration then
!                      Decls :=
!                        Build_Task_Image_Decls
!                          (Loc, Defining_Identifier (Parent (N)), T);
! 
!                   else
!                      Decls := Build_Task_Image_Decls (Loc, T, T);
!                   end if;
! 
!                   if Restriction_Active (No_Task_Hierarchy) then
!                      Append_To
!                        (Args, Make_Integer_Literal (Loc, Library_Task_Level));
!                   else
!                      Append_To (Args,
!                        New_Occurrence_Of
!                          (Master_Id (Base_Type (Root_Type (PtrT))), Loc));
!                   end if;
! 
!                   Append_To (Args, Make_Identifier (Loc, Name_uChain));
! 
!                   Decl := Last (Decls);
!                   Append_To (Args,
!                     New_Occurrence_Of (Defining_Identifier (Decl), Loc));
  
!                --  Has_Task is false, Decls not used
  
                 else
!                   Decls := No_List;
                 end if;
  
!                --  Add discriminants if discriminated type
! 
!                declare
!                   Dis : Boolean   := False;
!                   Typ : Entity_Id := T;
! 
!                begin
!                   if Has_Discriminants (T) then
!                      Dis := True;
! 
!                   --  Type may be a private type with no visible discriminants
!                   --  in which case check full view if in scope, or the
!                   --  underlying_full_view if dealing with a type whose full
!                   --  view may be derived from a private type whose own full
!                   --  view has discriminants.
! 
!                   elsif Is_Private_Type (T) then
!                      if Present (Full_View (T))
!                        and then Has_Discriminants (Full_View (T))
!                      then
!                         Dis := True;
!                         Typ := Full_View (T);
! 
!                      elsif Present (Underlying_Full_View (T))
!                        and then Has_Discriminants (Underlying_Full_View (T))
!                      then
!                         Dis := True;
!                         Typ := Underlying_Full_View (T);
!                      end if;
!                   end if;
! 
!                   if Dis then
! 
!                      --  If the allocated object will be constrained by the
!                      --  default values for discriminants, then build a subtype
!                      --  with those defaults, and change the allocated subtype
!                      --  to that. Note that this happens in fewer cases in Ada
!                      --  2005 (AI-363).
! 
!                      if not Is_Constrained (Typ)
!                        and then Present (Discriminant_Default_Value
!                                           (First_Discriminant (Typ)))
!                        and then (Ada_Version < Ada_2005
!                                   or else not
!                                     Object_Type_Has_Constrained_Partial_View
!                                       (Typ, Current_Scope))
!                      then
!                         Typ := Build_Default_Subtype (Typ, N);
!                         Set_Expression (N, New_Occurrence_Of (Typ, Loc));
!                      end if;
! 
!                      Discr := First_Elmt (Discriminant_Constraint (Typ));
!                      while Present (Discr) loop
!                         Nod := Node (Discr);
!                         Append (New_Copy_Tree (Node (Discr)), Args);
! 
!                         --  AI-416: when the discriminant constraint is an
!                         --  anonymous access type make sure an accessibility
!                         --  check is inserted if necessary (3.10.2(22.q/2))
! 
!                         if Ada_Version >= Ada_2005
!                           and then
!                             Ekind (Etype (Nod)) = E_Anonymous_Access_Type
!                           and then not
!                             No_Dynamic_Accessibility_Checks_Enabled (Nod)
!                         then
!                            Apply_Accessibility_Check
!                              (Nod, Typ, Insert_Node => Nod);
!                         end if;
! 
!                         Next_Elmt (Discr);
!                      end loop;
!                   end if;
! 
!                   --  When the designated subtype is unconstrained and
!                   --  the allocator specifies a constrained subtype (or
!                   --  such a subtype has been created, such as above by
!                   --  Build_Default_Subtype), associate that subtype with
!                   --  the dereference of the allocator's access value.
!                   --  This is needed by the expander for cases where the
!                   --  access type has a Designated_Storage_Model in order
!                   --  to support allocation of a host object of the right
!                   --  size for passing to the initialization procedure.
  
!                   if not Is_Constrained (Dtyp)
!                     and then Is_Constrained (Typ)
!                   then
!                      declare
!                         Deref : constant Node_Id := Unqual_Conv (Init_Arg1);
  
!                      begin
!                         pragma Assert (Nkind (Deref) = N_Explicit_Dereference);
  
!                         Set_Actual_Designated_Subtype (Deref, Typ);
!                      end;
!                   end if;
!                end;
  
                 --  We set the allocator as analyzed so that when we analyze
!                --  the if expression node, we do not get an unwanted recursive
                 --  expansion of the allocator expression.
  
!                Set_Analyzed (N, True);
!                Nod := Relocate_Node (N);
! 
!                --  Here is the transformation:
!                --    input:  new Ctrl_Typ
!                --    output: Temp : constant Ctrl_Typ_Ptr := new Ctrl_Typ;
!                --            Ctrl_TypIP (Temp.all, ...);
!                --            [Deep_]Initialize (Temp.all);
! 
!                --  Here Ctrl_Typ_Ptr is the pointer type for the allocator, and
!                --  is the subtype of the allocator.
  
                 Temp_Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Temp,
                     Constant_Present    => True,
!                    Object_Definition   => New_Occurrence_Of (Temp_Type, Loc),
!                    Expression          => Nod);
  
-                Set_Assignment_OK (Temp_Decl);
                 Insert_Action (N, Temp_Decl, Suppress => All_Checks);
  
-                Build_Allocate_Deallocate_Proc (Temp_Decl, True);
- 
                 --  If the designated type is a task type or contains tasks,
!                --  create block to activate created tasks, and insert
!                --  declaration for Task_Image variable ahead of call.
  
!                if Has_Task (T) then
                    declare
!                      L   : constant List_Id := New_List;
!                      Blk : Node_Id;
                    begin
!                      Build_Task_Allocate_Block (L, Nod, Args);
!                      Blk := Last (L);
!                      Insert_List_Before (First (Declarations (Blk)), Decls);
!                      Insert_Actions (N, L);
                    end;
  
                 else
!                   Insert_Action (N,
!                     Make_Procedure_Call_Statement (Loc,
!                       Name                   => New_Occurrence_Of (Init, Loc),
!                       Parameter_Associations => Args));
!                end if;
! 
!                if Needs_Finalization (T) then
! 
!                   --  Generate:
!                   --    [Deep_]Initialize (Init_Arg1);
! 
!                   Init_Call :=
!                     Make_Init_Call
!                       (Obj_Ref => New_Copy_Tree (Init_Arg1),
!                        Typ     => T);
! 
!                   --  Guard against a missing [Deep_]Initialize when the
!                   --  designated type was not properly frozen.
! 
!                   if Present (Init_Call) then
!                      Insert_Action (N, Init_Call);
!                   end if;
                 end if;
  
                 Rewrite (N, New_Occurrence_Of (Temp, Loc));
                 Analyze_And_Resolve (N, PtrT);
  
--- 4827,5027 ----
              end if;
           end if;
  
!          --  First try a simple initialization; if it succeeds, then we just
!          --  assign the value to the allocated memory.
  
!          Init_Expr := Build_Default_Simple_Initialization (N, Etyp, Empty);
  
!          if Present (Init_Expr) then
!             declare
!                Deref : Node_Id;
!                Stmt  : Node_Id;
  
!             begin
!                --  We set the allocator as analyzed so that when we analyze
!                --  the expression node, we do not get an unwanted recursive
!                --  expansion of the allocator expression.
  
!                Set_Analyzed (N);
  
!                Temp := Make_Temporary (Loc, 'P');
  
!                --  Generate:
!                --    Temp : constant PtrT := new ...;
  
!                Temp_Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Temp,
+                    Constant_Present    => True,
                     Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!                    Expression          => Relocate_Node (N));
  
!                Insert_Action (N, Temp_Decl, Suppress => All_Checks);
  
!                --  Generate:
!                --    Temp.all := ...
  
!                Deref :=
!                  Make_Explicit_Dereference (Loc,
!                    New_Occurrence_Of (Temp, Loc));
  
!                if Is_Incomplete_Or_Private_Type (Designated_Type (PtrT)) then
!                   Deref := Unchecked_Convert_To (Etype (Init_Expr), Deref);
!                end if;
  
!                Stmt :=
!                  Make_Assignment_Statement (Loc,
!                    Name       => Deref,
!                    Expression => Init_Expr);
!                Set_Assignment_OK (Name (Stmt));
  
!                Insert_Action (N, Stmt, Suppress => All_Checks);
!                Build_Allocate_Deallocate_Proc (Temp_Decl);
!                Rewrite (N, New_Occurrence_Of (Temp, Loc));
!                Analyze_And_Resolve (N, PtrT);
  
!                Apply_Predicate_Check (N, Dtyp, Deref => True);
!             end;
  
!          --  Or else build the fully-fledged initialization if need be
  
!          else
!             --  For the task case, pass the Master_Id of the access type as
!             --  the value of the _Master parameter, and _Chain as the value
!             --  of the _Chain parameter (_Chain will be defined as part of
!             --  the generated code for the allocator).
  
!             --  In Ada 2005, the context may be a function that returns an
!             --  anonymous access type. In that case the Master_Id has been
!             --  created when expanding the function declaration.
  
!             if Has_Task (Etyp) then
!                if No (Master_Id (Base_Type (PtrT))) then
!                   --  The designated type was an incomplete type, and the
!                   --  access type did not get expanded. Salvage it now.
  
!                   if Present (Declaration_Node (Base_Type (PtrT))) then
!                      Expand_N_Full_Type_Declaration
!                        (Declaration_Node (Base_Type (PtrT)));
  
!                   --  When the allocator has a subtype indication then a
!                   --  constraint is present and an itype has been added by
!                   --  Analyze_Allocator as the subtype of this allocator.
  
!                   --  If an allocator with constraints is called in the
!                   --  return statement of a function returning a general
!                   --  access type, then propagate to the itype the master
!                   --  of the general access type (since it is the master
!                   --  associated with the returned object).
  
!                   elsif Is_Itype (PtrT)
!                     and then Ekind (Current_Scope) = E_Function
!                     and then
!                       Ekind (Etype (Current_Scope)) = E_General_Access_Type
!                     and then In_Return_Value (N)
!                   then
!                      Set_Master_Id (PtrT, Master_Id (Etype (Current_Scope)));
  
!                   --  The only other possibility is an itype. For this
!                   --  case, the master must exist in the context. This is
!                   --  the case when the allocator initializes an access
!                   --  component in an init-proc.
  
!                   else
!                      pragma Assert (Is_Itype (PtrT));
!                      Build_Master_Renaming (PtrT, N);
!                   end if;
                 end if;
  
!                --  If the context of the allocator is a declaration or an
!                --  assignment, we can generate a meaningful image for the
!                --  task even though subsequent assignments might remove the
!                --  connection between task and entity. We build this image
!                --  when the left-hand side is a simple variable, a simple
!                --  indexed assignment or a simple selected component.
  
!                if Nkind (Parent (N)) = N_Object_Declaration then
!                   Target_Ref := Defining_Identifier (Parent (N));
  
!                elsif Nkind (Parent (N)) = N_Assignment_Statement then
                    declare
!                      Nam : constant Node_Id := Name (Parent (N));
  
                    begin
!                      if Is_Entity_Name (Nam) then
!                         Target_Ref := Nam;
  
!                      elsif Nkind (Nam) in N_Indexed_Component
!                                         | N_Selected_Component
!                        and then Is_Entity_Name (Prefix (Nam))
                       then
!                         Target_Ref := Nam;
  
                       else
!                         Target_Ref := PtrT;
                       end if;
!                   end;
  
!                --  Otherwise we just pass the access type
  
                 else
!                   Target_Ref := PtrT;
                 end if;
  
!             --  Nothing to pass in the non-task case
  
!             else
!                Target_Ref := Empty;
!             end if;
  
!             Temp := Make_Temporary (Loc, 'P');
  
!             if Is_Mutably_Tagged_Type (Dtyp) then
!                Init_Stmts :=
!                  Build_Default_Initialization (N, Etype (Etyp), Temp,
!                    For_CW     => False,
!                    Target_Ref => Target_Ref);
!             else
!                Init_Stmts :=
!                  Build_Default_Initialization (N, Etyp, Temp,
!                    For_CW     => Is_Class_Wide_Type (Dtyp),
!                    Target_Ref => Target_Ref);
!             end if;
  
+             if Present (Init_Stmts) then
                 --  We set the allocator as analyzed so that when we analyze
!                --  the expression node, we do not get an unwanted recursive
                 --  expansion of the allocator expression.
  
!                Set_Analyzed (N);
  
                 Temp_Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Temp,
                     Constant_Present    => True,
!                    Object_Definition   => New_Occurrence_Of (PtrT, Loc),
!                    Expression          => Relocate_Node (N));
  
                 Insert_Action (N, Temp_Decl, Suppress => All_Checks);
  
                 --  If the designated type is a task type or contains tasks,
!                --  create a specific block to activate the created tasks.
  
!                if Has_Task (Etyp) then
                    declare
!                      Actions : constant List_Id := New_List;
! 
                    begin
!                      Build_Task_Allocate_Block
!                        (Actions, Relocate_Node (N), Init_Stmts);
!                      Insert_Actions (N, Actions, Suppress => All_Checks);
                    end;
  
                 else
!                   Insert_Actions (N, Init_Stmts, Suppress => All_Checks);
                 end if;
  
+                Build_Allocate_Deallocate_Proc (Temp_Decl);
                 Rewrite (N, New_Occurrence_Of (Temp, Loc));
                 Analyze_And_Resolve (N, PtrT);
  
*************** package body Exp_Ch4 is
*** 5138,5153 ****
                                       Prefix => New_Occurrence_Of (Temp, Loc)),
                                   Dtyp));
                 end if;
-             end if;
-          end if;
-       end;
  
!       --  Ada 2005 (AI-251): If the allocator is for a class-wide interface
!       --  object that has been rewritten as a reference, we displace "this"
!       --  to reference properly its secondary dispatch table.
  
!       if Nkind (N) = N_Identifier and then Is_Interface (Dtyp) then
!          Displace_Allocator_Pointer (N);
        end if;
  
     exception
--- 5044,5064 ----
                                       Prefix => New_Occurrence_Of (Temp, Loc)),
                                   Dtyp));
                 end if;
  
!                --  Ada 2005 (AI-251): Displace the pointer to reference the
!                --  record component containing the secondary dispatch table
!                --  of the interface type.
  
!                if Is_Interface (Dtyp) then
!                   Displace_Allocator_Pointer (N);
!                end if;
! 
!             --  No initialization required
! 
!             else
!                Build_Allocate_Deallocate_Proc (N);
!             end if;
!          end if;
        end if;
  
     exception
*************** package body Exp_Ch4 is
*** 5167,5216 ****
     ------------------------------
  
     procedure Expand_N_Case_Expression (N : Node_Id) is
        function Is_Copy_Type (Typ : Entity_Id) return Boolean;
        --  Return True if we can copy objects of this type when expanding a case
        --  expression.
  
        ------------------
        -- Is_Copy_Type --
        ------------------
  
        function Is_Copy_Type (Typ : Entity_Id) return Boolean is
        begin
!          --  If Minimize_Expression_With_Actions is True, we can afford to copy
!          --  large objects, as long as they are constrained and not limited.
! 
!          return
!            Is_Elementary_Type (Underlying_Type (Typ))
!              or else
!                (Minimize_Expression_With_Actions
!                  and then Is_Constrained (Underlying_Type (Typ))
!                  and then not Is_Limited_Type (Underlying_Type (Typ)));
        end Is_Copy_Type;
  
!       --  Local variables
  
!       Loc : constant Source_Ptr := Sloc (N);
!       Par : constant Node_Id    := Parent (N);
!       Typ : constant Entity_Id  := Etype (N);
  
        Acts       : List_Id;
        Alt        : Node_Id;
        Case_Stmt  : Node_Id;
        Decl       : Node_Id;
        Target     : Entity_Id := Empty;
        Target_Typ : Entity_Id;
  
!       In_Predicate : Boolean := False;
!       --  Flag set when the case expression appears within a predicate
  
        Optimize_Return_Stmt : Boolean := False;
!       --  Flag set when the case expression can be optimized in the context of
!       --  a simple return statement.
  
     --  Start of processing for Expand_N_Case_Expression
  
     begin
        --  Check for MINIMIZED/ELIMINATED overflow mode
  
        if Minimized_Eliminated_Overflow_Check (N) then
--- 5078,5221 ----
     ------------------------------
  
     procedure Expand_N_Case_Expression (N : Node_Id) is
+       Loc  : constant Source_Ptr := Sloc (N);
+       Par  : constant Node_Id    := Parent (N);
+       Scop : constant Entity_Id  := Current_Scope;
+       Typ  : constant Entity_Id  := Etype (N);
+ 
        function Is_Copy_Type (Typ : Entity_Id) return Boolean;
        --  Return True if we can copy objects of this type when expanding a case
        --  expression.
  
+       function Is_Optimizable_Declaration (N : Node_Id) return Boolean;
+       --  Return True if N is an object declaration that can be optimized
+ 
        ------------------
        -- Is_Copy_Type --
        ------------------
  
        function Is_Copy_Type (Typ : Entity_Id) return Boolean is
        begin
!          return Is_Elementary_Type (Underlying_Type (Typ));
        end Is_Copy_Type;
  
!       --------------------------------
!       -- Is_Optimizable_Declaration --
!       --------------------------------
  
!       function Is_Optimizable_Declaration (N : Node_Id) return Boolean is
!       begin
!          return Nkind (N) = N_Object_Declaration
!            and then not (Is_Entity_Name (Object_Definition (N))
!                           and then Is_Class_Wide_Type
!                                      (Entity (Object_Definition (N))))
!            and then not Is_Return_Object (Defining_Identifier (N))
!            and then not Is_Copy_Type (Typ);
!       end Is_Optimizable_Declaration;
! 
!       --  Local variables
  
        Acts       : List_Id;
        Alt        : Node_Id;
        Case_Stmt  : Node_Id;
        Decl       : Node_Id;
+       New_N      : Node_Id;
+       Par_Obj    : Node_Id;
        Target     : Entity_Id := Empty;
        Target_Typ : Entity_Id;
  
!       Optimize_Assignment_Stmt : Boolean := False;
!       --  Small optimization: when the case expression appears in the context
!       --  of a safe assignment statement, expand into
! 
!       --    case X is
!       --       when A =>
!       --          lhs := AX;
!       --       when B =>
!       --          lhs := BX;
!       --       ...
!       --    end case;
! 
!       --  This makes the expansion much more efficient in the context of an
!       --  aggregate converted into assignments.
  
        Optimize_Return_Stmt : Boolean := False;
!       --  Small optimization: when the case expression appears in the context
!       --  of a simple return statement, expand into
! 
!       --    case X is
!       --       when A =>
!       --          return AX;
!       --       when B =>
!       --          return BX;
!       --       ...
!       --    end case;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  build-in-place functions.
! 
!       Optimize_Object_Decl : Boolean := False;
!       --  Small optimization: when the case expression appears in the context
!       --  of an object declaration of a type not Is_Copy_Type, expand into
! 
!       --    case X is
!       --       when A =>
!       --          then-obj : typ := then_expr;
!       --          target :=  then-obj'Unrestricted_Access;
!       --       when B =>
!       --          else-obj : typ := else-expr;
!       --          target :=  else-obj'Unrestricted_Access;
!       --       ...
!       --    end case
!       --
!       --    obj : typ renames target.all;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  build-in-place functions.
  
     --  Start of processing for Expand_N_Case_Expression
  
     begin
+       --  If the expression is in the context of a simple return statement,
+       --  possibly through intermediate conditional expressions, we delay
+       --  expansion until the (immediate) parent is rewritten as a return
+       --  statement (or is already the return statement). Likewise if it is
+       --  in the context of an object declaration that can be optimized.
+ 
+       if not Expansion_Delayed (N) then
+          declare
+             Uncond_Par : constant Node_Id := Unconditional_Parent (N);
+          begin
+             if Nkind (Uncond_Par) = N_Simple_Return_Statement
+               or else Is_Optimizable_Declaration (Uncond_Par)
+             then
+                Delay_Conditional_Expressions_Between (N, Uncond_Par);
+             end if;
+          end;
+       end if;
+ 
+       --  If the expansion of the expression has been delayed, we wait for the
+       --  rewriting of its parent as an assignment statement, or as as return
+       --  statement or as an object declaration; when that's done, we optimize
+       --  the assignment, return or declaration (the purpose of the delaying).
+ 
+       if Expansion_Delayed (N) then
+          if Nkind (Par) = N_Assignment_Statement then
+             Optimize_Assignment_Stmt := True;
+ 
+          elsif Nkind (Par) = N_Simple_Return_Statement then
+             Optimize_Return_Stmt := True;
+ 
+          elsif Is_Optimizable_Declaration (Par) then
+             Optimize_Object_Decl := True;
+ 
+          else
+             return;
+          end if;
+ 
+          Set_Expansion_Delayed (N, False);
+       end if;
+ 
        --  Check for MINIMIZED/ELIMINATED overflow mode
  
        if Minimized_Eliminated_Overflow_Check (N) then
*************** package body Exp_Ch4 is
*** 5218,5236 ****
           return;
        end if;
  
!       --  If the case expression is a predicate specification, and the type
!       --  to which it applies has a static predicate aspect, do not expand,
!       --  because it will be converted to the proper predicate form later.
  
!       if Ekind (Current_Scope) in E_Function | E_Procedure
!         and then Is_Predicate_Function (Current_Scope)
        then
!          In_Predicate := True;
! 
!          if Has_Static_Predicate_Aspect (Etype (First_Entity (Current_Scope)))
!          then
!             return;
!          end if;
        end if;
  
        --  When the type of the case expression is elementary, expand
--- 5223,5241 ----
           return;
        end if;
  
!       --  If the case expression is a predicate specification, do not expand
!       --  because it will need to be recognized and converted to the canonical
!       --  predicate form later if it it happens to be static.
  
!       if Ekind (Scop) in E_Function | E_Procedure
!         and then Is_Predicate_Function (Scop)
!         and then Is_Entity_Name (Expression (N))
!         and then Entity (Expression (N)) = First_Entity (Scop)
!         and then (Is_Scalar_Type (Etype (Expression (N)))
!                    or else Is_String_Type (Etype (Expression (N))))
!         and then not Has_Dynamic_Predicate_Aspect (Etype (Expression (N)))
        then
!          return;
        end if;
  
        --  When the type of the case expression is elementary, expand
*************** package body Exp_Ch4 is
*** 5243,5250 ****
--- 5248,5257 ----
        --       Target : Typ;
        --       case X is
        --          when A =>
+       --             <<actions>>
        --             Target := AX;
        --          when B =>
+       --             <<actions>>
        --             Target := BX;
        --          ...
        --       end case;
*************** package body Exp_Ch4 is
*** 5252,5263 ****
  
        --  In all other cases expand into
  
!       --       type Ptr_Typ is access all Typ;
        --       Target : Ptr_Typ;
        --       case X is
        --          when A =>
        --             Target := AX'Unrestricted_Access;
        --          when B =>
        --             Target := BX'Unrestricted_Access;
        --          ...
        --       end case;
--- 5259,5272 ----
  
        --  In all other cases expand into
  
!       --       type Ptr_Typ is not null access all Typ;
        --       Target : Ptr_Typ;
        --       case X is
        --          when A =>
+       --             <<actions>>
        --             Target := AX'Unrestricted_Access;
        --          when B =>
+       --             <<actions>>
        --             Target := BX'Unrestricted_Access;
        --          ...
        --       end case;
*************** package body Exp_Ch4 is
*** 5266,5274 ****
  
        --  This approach avoids extra copies of potentially large objects. It
        --  also allows handling of values of limited or unconstrained types.
-       --  Note that we do the copy also for constrained, nonlimited types
-       --  when minimizing expressions with actions (e.g. when generating C
-       --  code) since it allows us to do the optimization below in more cases.
  
        Case_Stmt :=
          Make_Case_Statement (Loc,
--- 5275,5280 ----
*************** package body Exp_Ch4 is
*** 5283,5329 ****
        Set_From_Conditional_Expression (Case_Stmt);
        Acts := New_List;
  
!       --  Small optimization: when the case expression appears in the context
!       --  of a simple return statement, expand into
! 
!       --    case X is
!       --       when A =>
!       --          return AX;
!       --       when B =>
!       --          return BX;
!       --       ...
!       --    end case;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  a BIP function. But do not perform it when the return statement is
!       --  within a predicate function, as this causes spurious errors.
  
!       Optimize_Return_Stmt :=
!         Nkind (Par) = N_Simple_Return_Statement and then not In_Predicate;
  
        --  Scalar/Copy case
  
!       if Is_Copy_Type (Typ) then
           Target_Typ := Typ;
  
        --  Otherwise create an access type to handle the general case using
        --  'Unrestricted_Access.
  
        --  Generate:
!       --    type Ptr_Typ is access all Typ;
  
        else
-          if Generate_C_Code then
- 
-             --  We cannot ensure that correct C code will be generated if any
-             --  temporary is created down the line (to e.g. handle checks or
-             --  capture values) since we might end up with dangling references
-             --  to local variables, so better be safe and reject the construct.
- 
-             Error_Msg_N
-               ("case expression too complex, use case statement instead", N);
-          end if;
- 
           Target_Typ := Make_Temporary (Loc, 'P');
  
           Append_To (Acts,
--- 5289,5311 ----
        Set_From_Conditional_Expression (Case_Stmt);
        Acts := New_List;
  
!       --  No need for Target_Typ in the case of statements
  
!       if Optimize_Assignment_Stmt or else Optimize_Return_Stmt then
!          Target_Typ := Empty;
  
        --  Scalar/Copy case
  
!       elsif Is_Copy_Type (Typ) then
           Target_Typ := Typ;
  
        --  Otherwise create an access type to handle the general case using
        --  'Unrestricted_Access.
  
        --  Generate:
!       --    type Ptr_Typ is not null access all [constant] Typ;
  
        else
           Target_Typ := Make_Temporary (Loc, 'P');
  
           Append_To (Acts,
*************** package body Exp_Ch4 is
*** 5331,5338 ****
               Defining_Identifier => Target_Typ,
               Type_Definition     =>
                 Make_Access_To_Object_Definition (Loc,
!                  All_Present        => True,
!                  Subtype_Indication => New_Occurrence_Of (Typ, Loc))));
        end if;
  
        --  Create the declaration of the target which captures the value of the
--- 5313,5323 ----
               Defining_Identifier => Target_Typ,
               Type_Definition     =>
                 Make_Access_To_Object_Definition (Loc,
!                  All_Present            => True,
!                  Null_Exclusion_Present => True,
!                  Subtype_Indication     => New_Occurrence_Of (Typ, Loc),
!                  Constant_Present       =>
!                    Optimize_Object_Decl and then Constant_Present (Par))));
        end if;
  
        --  Create the declaration of the target which captures the value of the
*************** package body Exp_Ch4 is
*** 5341,5347 ****
        --  Generate:
        --    Target : [Ptr_]Typ;
  
!       if not Optimize_Return_Stmt then
           Target := Make_Temporary (Loc, 'T');
  
           Decl :=
--- 5326,5335 ----
        --  Generate:
        --    Target : [Ptr_]Typ;
  
!       if Optimize_Assignment_Stmt then
!          Remove_Side_Effects (Name (Par), Name_Req => True);
! 
!       elsif not Optimize_Return_Stmt then
           Target := Make_Temporary (Loc, 'T');
  
           Decl :=
*************** package body Exp_Ch4 is
*** 5357,5390 ****
  
        Alt := First (Alternatives (N));
        while Present (Alt) loop
           declare
!             Alt_Expr : Node_Id             := Expression (Alt);
!             Alt_Loc  : constant Source_Ptr := Sloc (Alt_Expr);
              LHS      : Node_Id;
              Stmts    : List_Id;
  
           begin
!             --  Take the unrestricted access of the expression value for non-
!             --  scalar types. This approach avoids big copies and covers the
!             --  limited and unconstrained cases.
  
              --  Generate:
!             --    return AX['Unrestricted_Access];
  
!             if Optimize_Return_Stmt then
                 Stmts := New_List (
                   Make_Simple_Return_Statement (Alt_Loc,
                     Expression => Alt_Expr));
  
              --  Generate:
!             --    Target := AX['Unrestricted_Access];
  
              else
                 if not Is_Copy_Type (Typ) then
!                   Alt_Expr :=
!                     Make_Attribute_Reference (Alt_Loc,
!                       Prefix         => Relocate_Node (Alt_Expr),
!                       Attribute_Name => Name_Unrestricted_Access);
                 end if;
  
                 LHS := New_Occurrence_Of (Target, Loc);
--- 5345,5444 ----
  
        Alt := First (Alternatives (N));
        while Present (Alt) loop
+          --  When the alternative's expression involves controlled function
+          --  calls, generated temporaries are chained on the corresponding
+          --  list of actions. These temporaries need to be finalized after
+          --  the case expression is evaluated.
+ 
+          Process_Transients_In_Expression (N, Actions (Alt));
+ 
           declare
!             Alt_Loc  : constant Source_Ptr := Sloc (Expression (Alt));
! 
!             Alt_Expr : Node_Id := Relocate_Node (Expression (Alt));
              LHS      : Node_Id;
+             Obj      : Node_Id;
              Stmts    : List_Id;
  
           begin
!             --  Generate:
!             --    lhs := AX;
! 
!             if Optimize_Assignment_Stmt then
!                --  We directly copy the parent node to preserve its flags
! 
!                Stmts := New_List (New_Copy (Par));
!                Set_Sloc       (First (Stmts), Alt_Loc);
!                Set_Name       (First (Stmts), New_Copy_Tree (Name (Par)));
!                Set_Expression (First (Stmts), Alt_Expr);
! 
!                --  If the expression is itself a conditional expression whose
!                --  expansion has been delayed, analyze it again and expand it.
! 
!                if Is_Delayed_Conditional_Expression (Alt_Expr) then
!                   Unanalyze_Delayed_Conditional_Expression (Alt_Expr);
!                end if;
  
              --  Generate:
!             --    return AX;
  
!             elsif Optimize_Return_Stmt then
                 Stmts := New_List (
                   Make_Simple_Return_Statement (Alt_Loc,
                     Expression => Alt_Expr));
  
+                --  If the expression is itself a conditional expression whose
+                --  expansion has been delayed, analyze it again and expand it.
+ 
+                if Is_Delayed_Conditional_Expression (Alt_Expr) then
+                   Unanalyze_Delayed_Conditional_Expression (Alt_Expr);
+                end if;
+ 
              --  Generate:
!             --    Obj : [constant] Typ := AX;
!             --    Target := Obj'Unrestricted_Access;
! 
!             elsif Optimize_Object_Decl then
!                Obj := Make_Temporary (Loc, 'C', Alt_Expr);
! 
!                Insert_Conditional_Object_Declaration (Obj, Alt_Expr, Par);
! 
!                Alt_Expr :=
!                  Make_Attribute_Reference (Alt_Loc,
!                    Prefix         => New_Occurrence_Of (Obj, Alt_Loc),
!                    Attribute_Name => Name_Unrestricted_Access);
! 
!                LHS := New_Occurrence_Of (Target, Loc);
!                Set_Assignment_OK (LHS);
! 
!                Stmts := New_List (
!                  Make_Assignment_Statement (Alt_Loc,
!                    Name       => LHS,
!                    Expression => Alt_Expr));
! 
!             --  Take the unrestricted access of the expression value for non-
!             --  scalar types. This approach avoids big copies and covers the
!             --  limited and unconstrained cases.
! 
!             --  Generate:
!             --    Target := AX'Unrestricted_Access;
  
              else
                 if not Is_Copy_Type (Typ) then
!                   --  It's possible that a call to Apply_Length_Check in
!                   --  Resolve_Case_Expression rewrote the dependent expression
!                   --  into a N_Raise_Constraint_Error. If that's the case, we
!                   --  don't create a reference to Unrestricted_Access, but we
!                   --  update the type of the N_Raise_Constraint_Error node.
! 
!                   if Nkind (Alt_Expr) in N_Raise_Constraint_Error then
!                      Set_Etype (Alt_Expr, Target_Typ);
!                   else
!                      Alt_Expr :=
!                        Make_Attribute_Reference (Alt_Loc,
!                          Prefix         => Alt_Expr,
!                          Attribute_Name => Name_Unrestricted_Access);
!                   end if;
                 end if;
  
                 LHS := New_Occurrence_Of (Target, Loc);
*************** package body Exp_Ch4 is
*** 5410,5450 ****
                 Make_Case_Statement_Alternative (Sloc (Alt),
                   Discrete_Choices => Discrete_Choices (Alt),
                   Statements       => Stmts));
- 
-             --  Finalize any transient objects on exit from the alternative.
-             --  Note that this needs to be done only after Stmts is attached
-             --  to the Alternatives list above (for Safe_To_Capture_Value).
- 
-             Process_Transients_In_Expression (N, Stmts);
           end;
  
           Next (Alt);
        end loop;
  
!       --  Rewrite the parent return statement as a case statement
  
!       if Optimize_Return_Stmt then
           Rewrite (Par, Case_Stmt);
           Analyze (Par);
  
        --  Otherwise rewrite the case expression itself
  
        else
           Append_To (Acts, Case_Stmt);
  
           if Is_Copy_Type (Typ) then
!             Rewrite (N,
                Make_Expression_With_Actions (Loc,
                  Expression => New_Occurrence_Of (Target, Loc),
!                 Actions    => Acts));
  
           else
              Insert_Actions (N, Acts);
!             Rewrite (N,
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc)));
           end if;
  
           Analyze_And_Resolve (N, Typ);
        end if;
     end Expand_N_Case_Expression;
--- 5464,5522 ----
                 Make_Case_Statement_Alternative (Sloc (Alt),
                   Discrete_Choices => Discrete_Choices (Alt),
                   Statements       => Stmts));
           end;
  
           Next (Alt);
        end loop;
  
!       --  Rewrite the parent statement as a case statement
  
!       if Optimize_Assignment_Stmt or else Optimize_Return_Stmt then
           Rewrite (Par, Case_Stmt);
           Analyze (Par);
  
+       elsif Optimize_Object_Decl then
+          Append_To (Acts, Case_Stmt);
+          Insert_Actions (Par, Acts);
+ 
+          New_N :=
+            Make_Explicit_Dereference (Loc,
+              Prefix => New_Occurrence_Of (Target, Loc));
+ 
+          --  The renaming is not analyzed so complete the decoration of the
+          --  object and set the type of the name directly.
+ 
+          Par_Obj := Defining_Identifier (Par);
+          if Constant_Present (Par) then
+             Mutate_Ekind         (Par_Obj, E_Constant);
+             Set_Is_True_Constant (Par_Obj);
+          else
+             Mutate_Ekind (Par_Obj, E_Variable);
+          end if;
+ 
+          Set_Etype (New_N, Etype (Par_Obj));
+ 
+          Rewrite_Object_Declaration_As_Renaming (Par, New_N);
+ 
        --  Otherwise rewrite the case expression itself
  
        else
           Append_To (Acts, Case_Stmt);
  
           if Is_Copy_Type (Typ) then
!             New_N :=
                Make_Expression_With_Actions (Loc,
                  Expression => New_Occurrence_Of (Target, Loc),
!                 Actions    => Acts);
  
           else
              Insert_Actions (N, Acts);
!             New_N :=
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc));
           end if;
  
+          Rewrite (N, New_N);
           Analyze_And_Resolve (N, Typ);
        end if;
     end Expand_N_Case_Expression;
*************** package body Exp_Ch4 is
*** 5610,5620 ****
--- 5682,5725 ----
        --  actions in order to create a temporary to capture the level of the
        --  expression in each branch.
  
+       function Is_Copy_Type (Typ : Entity_Id) return Boolean;
+       --  Return True if we can copy objects of this type when expanding an if
+       --  expression.
+ 
+       function Is_Optimizable_Declaration (N : Node_Id) return Boolean;
+       --  Return True if N is an object declaration that can be optimized
+ 
        function OK_For_Single_Subtype (T1, T2 : Entity_Id) return Boolean;
        --  Return true if it is acceptable to use a single subtype for two
        --  dependent expressions of subtype T1 and T2 respectively, which are
        --  unidimensional arrays whose index bounds are known at compile time.
  
+       ------------------
+       -- Is_Copy_Type --
+       ------------------
+ 
+       function Is_Copy_Type (Typ : Entity_Id) return Boolean is
+          Utyp : constant Entity_Id := Underlying_Type (Typ);
+ 
+       begin
+          return Is_Definite_Subtype (Utyp)
+            and then not Is_By_Reference_Type (Utyp);
+       end Is_Copy_Type;
+ 
+       --------------------------------
+       -- Is_Optimizable_Declaration --
+       --------------------------------
+ 
+       function Is_Optimizable_Declaration (N : Node_Id) return Boolean is
+       begin
+          return Nkind (N) = N_Object_Declaration
+            and then not (Is_Entity_Name (Object_Definition (N))
+                           and then Is_Class_Wide_Type
+                                      (Entity (Object_Definition (N))))
+            and then not Is_Return_Object (Defining_Identifier (N))
+            and then not Is_Copy_Type (Typ);
+       end Is_Optimizable_Declaration;
+ 
        ---------------------------
        -- OK_For_Single_Subtype --
        ---------------------------
*************** package body Exp_Ch4 is
*** 5635,5653 ****
  
        --  Local variables
  
!       Actions : List_Id;
!       Decl    : Node_Id;
!       Expr    : Node_Id;
!       New_If  : Node_Id;
!       New_N   : Node_Id;
  
        Optimize_Return_Stmt : Boolean := False;
!       --  Flag set when the if expression can be optimized in the context of
!       --  a simple return statement.
  
     --  Start of processing for Expand_N_If_Expression
  
     begin
        --  Deal with non-standard booleans
  
        Adjust_Condition (Cond);
--- 5740,5841 ----
  
        --  Local variables
  
!       Actions  : List_Id;
!       Decl     : Node_Id;
!       Expr     : Node_Id;
!       If_Stmt  : Node_Id;
!       New_Else : Node_Id;
!       New_N    : Node_Id;
!       New_Then : Node_Id;
! 
!       Optimize_Assignment_Stmt : Boolean := False;
!       --  Small optimization: when the if expression appears in the context of
!       --  a safe assignment statement, expand into
! 
!       --    if cond then
!       --       lhs := then-expr;
!       --    else
!       --       lhs := else-expr;
!       --    end if;
! 
!       --  This makes the expansion much more efficient in the context of an
!       --  aggregate converted into assignments.
  
        Optimize_Return_Stmt : Boolean := False;
!       --  Small optimization: when the if expression appears in the context of
!       --  a simple return statement, expand into
! 
!       --    if cond then
!       --       return then-expr;
!       --    else
!       --       return else-expr;
!       --    end if;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  build-in-place functions.
! 
!       Optimize_Object_Decl : Boolean := False;
!       --  Small optimization: when the if expression appears in the context of
!       --  an object declaration of a type not Is_Copy_Type, expand into
! 
!       --    if cond then
!       --       then-obj : typ := then_expr;
!       --       target :=  then-obj'Unrestricted_Access;
!       --    else
!       --       else-obj : typ := else-expr;
!       --       target :=  else-obj'Unrestricted_Access;
!       --    end if;
!       --
!       --    obj : typ renames target.all;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  build-in-place functions.
  
     --  Start of processing for Expand_N_If_Expression
  
     begin
+       --  If the expression is in the context of a simple return statement,
+       --  possibly through intermediate conditional expressions, we delay
+       --  expansion until the (immediate) parent is rewritten as a return
+       --  statement (or is already the return statement). Likewise if it is
+       --  in the context of an object declaration that can be optimized.
+       --  Note that this deals with the case of the elsif part of the if
+       --  expression, if it exists.
+ 
+       if not Expansion_Delayed (N) then
+          declare
+             Uncond_Par : constant Node_Id := Unconditional_Parent (N);
+          begin
+             if Nkind (Uncond_Par) = N_Simple_Return_Statement
+               or else Is_Optimizable_Declaration (Uncond_Par)
+             then
+                Delay_Conditional_Expressions_Between (N, Uncond_Par);
+             end if;
+          end;
+       end if;
+ 
+       --  If the expansion of the expression has been delayed, we wait for the
+       --  rewriting of its parent as an assignment statement, or as as return
+       --  statement or as an object declaration; when that's done, we optimize
+       --  the assignment, return or declaration (the purpose of the delaying).
+ 
+       if Expansion_Delayed (N) then
+          if Nkind (Par) = N_Assignment_Statement then
+             Optimize_Assignment_Stmt := True;
+ 
+          elsif Nkind (Par) = N_Simple_Return_Statement then
+             Optimize_Return_Stmt := True;
+ 
+          elsif Is_Optimizable_Declaration (Par) then
+             Optimize_Object_Decl := True;
+ 
+          else
+             return;
+          end if;
+ 
+          Set_Expansion_Delayed (N, False);
+       end if;
+ 
        --  Deal with non-standard booleans
  
        Adjust_Condition (Cond);
*************** package body Exp_Ch4 is
*** 5674,5752 ****
        --  expression, and Sem_Elab circuitry removing it repeatedly.
  
        if Compile_Time_Known_Value (Cond) then
!          declare
!             function Fold_Known_Value (Cond : Node_Id) return Boolean;
!             --  Fold at compile time. Assumes condition known. Return True if
!             --  folding occurred, meaning we're done.
  
!             ----------------------
!             -- Fold_Known_Value --
!             ----------------------
  
!             function Fold_Known_Value (Cond : Node_Id) return Boolean is
!             begin
!                if Is_True (Expr_Value (Cond)) then
!                   Expr    := Thenx;
!                   Actions := Then_Actions (N);
!                else
!                   Expr    := Elsex;
!                   Actions := Else_Actions (N);
!                end if;
  
!                Remove (Expr);
  
!                if Present (Actions) then
  
!                   --  To minimize the use of Expression_With_Actions, just skip
!                   --  the optimization as it is not critical for correctness.
  
!                   if Minimize_Expression_With_Actions then
!                      return False;
!                   end if;
  
!                   Rewrite (N,
!                     Make_Expression_With_Actions (Loc,
!                       Expression => Relocate_Node (Expr),
!                       Actions    => Actions));
!                   Analyze_And_Resolve (N, Typ);
  
!                else
!                   Rewrite (N, Relocate_Node (Expr));
!                end if;
  
!                --  Note that the result is never static (legitimate cases of
!                --  static if expressions were folded in Sem_Eval).
  
!                Set_Is_Static_Expression (N, False);
!                return True;
!             end Fold_Known_Value;
  
!          begin
!             if Fold_Known_Value (Cond) then
!                return;
!             end if;
!          end;
!       end if;
  
!       --  Small optimization: when the if expression appears in the context of
!       --  a simple return statement, expand into
  
!       --    if cond then
!       --       return then-expr
!       --    else
!       --       return else-expr;
!       --    end if;
  
!       --  This makes the expansion much easier when expressions are calls to
!       --  a BIP function. But do not perform it when the return statement is
!       --  within a predicate function, as this causes spurious errors.
  
!       Optimize_Return_Stmt :=
!         Nkind (Par) = N_Simple_Return_Statement
!           and then not (Ekind (Current_Scope) in E_Function | E_Procedure
!                          and then Is_Predicate_Function (Current_Scope));
  
!       if Optimize_Return_Stmt then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
--- 5862,5955 ----
        --  expression, and Sem_Elab circuitry removing it repeatedly.
  
        if Compile_Time_Known_Value (Cond) then
!          if Is_True (Expr_Value (Cond)) then
!             Expr    := Relocate_Node (Thenx);
!             Actions := Then_Actions (N);
!          else
!             Expr    := Relocate_Node (Elsex);
!             Actions := Else_Actions (N);
!          end if;
  
!          --  When the "then" or "else" expressions involve controlled function
!          --  calls, generated temporaries are chained on the corresponding list
!          --  of actions. These temporaries need to be finalized after the if
!          --  expression is evaluated.
  
!          Process_Transients_In_Expression (N, Actions);
  
!          --  If the expression is itself a conditional expression whose
!          --  expansion has been delayed, analyze it again and expand it.
  
!          if Is_Delayed_Conditional_Expression (Expr) then
!             Unanalyze_Delayed_Conditional_Expression (Expr);
!          end if;
  
!          Insert_Actions (N, Actions);
!          Rewrite (N, Expr);
!          Analyze_And_Resolve (N, Typ);
  
!          --  Note that the result is never static (legitimate cases of
!          --  static if expressions were folded in Sem_Eval).
  
!          Set_Is_Static_Expression (N, False);
!          return;
  
!       --  Build an if statement assigning each dependent expression to the
!       --  target separately. The (main) use case is aggregate elaboration.
  
!       elsif Optimize_Assignment_Stmt then
!          Remove_Side_Effects (Name (Par), Name_Req => True);
  
!          --  When the "then" or "else" expressions involve controlled function
!          --  calls, generated temporaries are chained on the corresponding list
!          --  of actions. These temporaries need to be finalized after the if
!          --  expression is evaluated.
  
!          Process_Transients_In_Expression (N, Then_Actions (N));
!          Process_Transients_In_Expression (N, Else_Actions (N));
  
!          --  We directly copy the parent node to preserve its flags
  
!          New_Then := New_Copy (Par);
!          Set_Sloc       (New_Then, Sloc (Thenx));
!          Set_Name       (New_Then, New_Copy_Tree (Name (Par)));
!          Set_Expression (New_Then, Relocate_Node (Thenx));
  
!          --  If the expression is itself a conditional expression whose
!          --  expansion has been delayed, analyze it again and expand it.
  
!          if Is_Delayed_Conditional_Expression (Expression (New_Then)) then
!             Unanalyze_Delayed_Conditional_Expression (Expression (New_Then));
!          end if;
  
!          New_Else := New_Copy (Par);
!          Set_Sloc       (New_Else, Sloc (Elsex));
!          Set_Name       (New_Else, New_Copy_Tree (Name (Par)));
!          Set_Expression (New_Else, Relocate_Node (Elsex));
! 
!          if Is_Delayed_Conditional_Expression (Expression (New_Else)) then
!             Unanalyze_Delayed_Conditional_Expression (Expression (New_Else));
!          end if;
! 
!          If_Stmt :=
!            Make_Implicit_If_Statement (N,
!              Condition       => Relocate_Node (Cond),
!              Then_Statements => New_List (New_Then),
!              Else_Statements => New_List (New_Else));
!          Decl  := Empty;
!          New_N := Empty;
! 
!          --  Preserve the original context for which the if statement is
!          --  being generated. This is needed by the finalization machinery
!          --  to prevent the premature finalization of controlled objects
!          --  found within the if statement.
! 
!          Set_From_Conditional_Expression (If_Stmt);
! 
!       --  Build an if statement returning each dependent expression from the
!       --  function separately. The main use case is expression function.
! 
!       elsif Optimize_Return_Stmt then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
*************** package body Exp_Ch4 is
*** 5755,5793 ****
           Process_Transients_In_Expression (N, Then_Actions (N));
           Process_Transients_In_Expression (N, Else_Actions (N));
  
!          New_If :=
             Make_Implicit_If_Statement (N,
               Condition       => Relocate_Node (Cond),
               Then_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (Thenx),
!                  Expression => Relocate_Node (Thenx))),
               Else_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (Elsex),
!                  Expression => Relocate_Node (Elsex))));
  
           --  Preserve the original context for which the if statement is
           --  being generated. This is needed by the finalization machinery
           --  to prevent the premature finalization of controlled objects
           --  found within the if statement.
  
!          Set_From_Conditional_Expression (New_If);
! 
!       --  If the type is by reference, then we expand as follows to avoid the
!       --  possibility of improper copying.
! 
!       --      type Ptr is access all Typ;
!       --      Cnn : Ptr;
!       --      if cond then
!       --         <<then actions>>
!       --         Cnn := then-expr'Unrestricted_Access;
!       --      else
!       --         <<else actions>>
!       --         Cnn := else-expr'Unrestricted_Access;
!       --      end if;
! 
!       --  and replace the if expression by a reference to Cnn.all.
  
!       elsif Is_By_Reference_Type (Typ) then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
--- 5958,6001 ----
           Process_Transients_In_Expression (N, Then_Actions (N));
           Process_Transients_In_Expression (N, Else_Actions (N));
  
!          New_Then := Relocate_Node (Thenx);
! 
!          --  If the expression is itself a conditional expression whose
!          --  expansion has been delayed, analyze it again and expand it.
! 
!          if Is_Delayed_Conditional_Expression (New_Then) then
!             Unanalyze_Delayed_Conditional_Expression (New_Then);
!          end if;
! 
!          New_Else := Relocate_Node (Elsex);
! 
!          --  If the expression is itself a conditional expression whose
!          --  expansion has been delayed, analyze it again and expand it.
! 
!          if Is_Delayed_Conditional_Expression (New_Else) then
!             Unanalyze_Delayed_Conditional_Expression (New_Else);
!          end if;
! 
!          If_Stmt :=
             Make_Implicit_If_Statement (N,
               Condition       => Relocate_Node (Cond),
               Then_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (New_Then),
!                  Expression => New_Then)),
               Else_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (New_Else),
!                  Expression => New_Else)));
!          Decl  := Empty;
!          New_N := Empty;
  
           --  Preserve the original context for which the if statement is
           --  being generated. This is needed by the finalization machinery
           --  to prevent the premature finalization of controlled objects
           --  found within the if statement.
  
!          Set_From_Conditional_Expression (If_Stmt);
  
!       elsif Optimize_Object_Decl then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
*************** package body Exp_Ch4 is
*** 5797,5849 ****
           Process_Transients_In_Expression (N, Else_Actions (N));
  
           declare
!             Cnn     : constant Entity_Id := Make_Temporary (Loc, 'C', N);
!             Ptr_Typ : constant Entity_Id := Make_Temporary (Loc, 'A');
  
           begin
              --  Generate:
!             --    type Ann is access all Typ;
  
!             Insert_Action (N,
                Make_Full_Type_Declaration (Loc,
                  Defining_Identifier => Ptr_Typ,
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present        => True,
!                     Subtype_Indication => New_Occurrence_Of (Typ, Loc))));
  
              --  Generate:
!             --    Cnn : Ann;
  
              Decl :=
                Make_Object_Declaration (Loc,
!                 Defining_Identifier => Cnn,
                  Object_Definition   => New_Occurrence_Of (Ptr_Typ, Loc));
  
              --  Generate:
              --    if Cond then
!             --       Cnn := <Thenx>'Unrestricted_Access;
              --    else
!             --       Cnn := <Elsex>'Unrestricted_Access;
              --    end if;
  
!             New_If :=
                Make_Implicit_If_Statement (N,
                  Condition       => Relocate_Node (Cond),
                  Then_Statements => New_List (
                    Make_Assignment_Statement (Sloc (Thenx),
!                     Name       => New_Occurrence_Of (Cnn, Sloc (Thenx)),
                      Expression =>
                        Make_Attribute_Reference (Loc,
!                         Prefix         => Relocate_Node (Thenx),
                          Attribute_Name => Name_Unrestricted_Access))),
  
                  Else_Statements => New_List (
                    Make_Assignment_Statement (Sloc (Elsex),
!                     Name       => New_Occurrence_Of (Cnn, Sloc (Elsex)),
                      Expression =>
                        Make_Attribute_Reference (Loc,
!                         Prefix         => Relocate_Node (Elsex),
                          Attribute_Name => Name_Unrestricted_Access))));
  
              --  Preserve the original context for which the if statement is
--- 6005,6067 ----
           Process_Transients_In_Expression (N, Else_Actions (N));
  
           declare
!             Par_Obj  : constant Entity_Id := Defining_Identifier (Par);
!             Then_Obj : constant Entity_Id := Make_Temporary (Loc, 'C', Thenx);
!             Else_Obj : constant Entity_Id := Make_Temporary (Loc, 'C', Elsex);
!             Ptr_Typ  : constant Entity_Id := Make_Temporary (Loc, 'A');
!             Target   : constant Entity_Id := Make_Temporary (Loc, 'C', N);
  
           begin
+             Insert_Conditional_Object_Declaration (Then_Obj, Thenx, Par);
+             Insert_Conditional_Object_Declaration (Else_Obj, Elsex, Par);
+ 
              --  Generate:
!             --    type Ptr_Typ is not null access all [constant] Typ;
  
!             Insert_Action (Par,
                Make_Full_Type_Declaration (Loc,
                  Defining_Identifier => Ptr_Typ,
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present            => True,
!                     Null_Exclusion_Present => True,
!                     Subtype_Indication     => New_Occurrence_Of (Typ, Loc),
!                     Constant_Present       => Constant_Present (Par))));
  
              --  Generate:
!             --    Target : Ptr_Typ;
  
              Decl :=
                Make_Object_Declaration (Loc,
!                 Defining_Identifier => Target,
                  Object_Definition   => New_Occurrence_Of (Ptr_Typ, Loc));
+             Set_No_Initialization (Decl);
+             Insert_Action (Par, Decl);
  
              --  Generate:
              --    if Cond then
!             --       Target := <Then_Obj>'Unrestricted_Access;
              --    else
!             --       Target := <Else_Obj>'Unrestricted_Access;
              --    end if;
  
!             If_Stmt :=
                Make_Implicit_If_Statement (N,
                  Condition       => Relocate_Node (Cond),
                  Then_Statements => New_List (
                    Make_Assignment_Statement (Sloc (Thenx),
!                     Name       => New_Occurrence_Of (Target, Sloc (Thenx)),
                      Expression =>
                        Make_Attribute_Reference (Loc,
!                         Prefix         => New_Occurrence_Of (Then_Obj, Loc),
                          Attribute_Name => Name_Unrestricted_Access))),
  
                  Else_Statements => New_List (
                    Make_Assignment_Statement (Sloc (Elsex),
!                     Name       => New_Occurrence_Of (Target, Sloc (Elsex)),
                      Expression =>
                        Make_Attribute_Reference (Loc,
!                         Prefix         => New_Occurrence_Of (Else_Obj, Loc),
                          Attribute_Name => Name_Unrestricted_Access))));
  
              --  Preserve the original context for which the if statement is
*************** package body Exp_Ch4 is
*** 5851,5861 ****
              --  to prevent the premature finalization of controlled objects
              --  found within the if statement.
  
!             Set_From_Conditional_Expression (New_If);
  
              New_N :=
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Cnn, Loc));
           end;
  
        --  If the result is a unidimensional unconstrained array but the two
--- 6069,6091 ----
              --  to prevent the premature finalization of controlled objects
              --  found within the if statement.
  
!             Set_From_Conditional_Expression (If_Stmt);
  
              New_N :=
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc));
! 
!             --  The renaming is not analyzed so complete the decoration of the
!             --  object and set the type of the name directly.
! 
!             if Constant_Present (Par) then
!                Mutate_Ekind         (Par_Obj, E_Constant);
!                Set_Is_True_Constant (Par_Obj);
!             else
!                Mutate_Ekind (Par_Obj, E_Variable);
!             end if;
! 
!             Set_Etype (New_N, Etype (Par_Obj));
           end;
  
        --  If the result is a unidimensional unconstrained array but the two
*************** package body Exp_Ch4 is
*** 5887,5892 ****
--- 6117,6123 ----
        elsif Is_Array_Type (Typ)
          and then Number_Dimensions (Typ) = 1
          and then not Is_Constrained (Typ)
+         and then not Is_By_Reference_Type (Typ)
          and then Is_Constrained (Etype (Thenx))
          and then Compile_Time_Known_Bounds (Etype (Thenx))
          and then
*************** package body Exp_Ch4 is
*** 5899,5905 ****
               and then Compile_Time_Known_Bounds (Etype (Prefix (Elsex)))
               and then
                 OK_For_Single_Subtype (Etype (Thenx), Etype (Prefix (Elsex)))))
-         and then not Generate_C_Code
          and then not Unnest_Subprogram_Mode
        then
           --  When the "then" or "else" expressions involve controlled function
--- 6130,6135 ----
*************** package body Exp_Ch4 is
*** 6088,6094 ****
  
              Set_Suppress_Assignment_Checks (Last (Else_List));
  
!             New_If :=
                Make_Implicit_If_Statement (N,
                  Condition       => Duplicate_Subexpr (Cond),
                  Then_Statements => Then_List,
--- 6318,6324 ----
  
              Set_Suppress_Assignment_Checks (Last (Else_List));
  
!             If_Stmt :=
                Make_Implicit_If_Statement (N,
                  Condition       => Duplicate_Subexpr (Cond),
                  Then_Statements => Then_List,
*************** package body Exp_Ch4 is
*** 6102,6139 ****
                    High_Bound => Build_New_Bound (Then_Hi, Else_Hi, Slice_Hi)));
           end;
  
!       --  If the result is an unconstrained array and the if expression is in a
!       --  context other than the initializing expression of the declaration of
!       --  an object, then we pull out the if expression as follows:
  
!       --     Cnn : constant typ := if-expression
  
!       --  and then replace the if expression with an occurrence of Cnn. This
!       --  avoids the need in the back end to create on-the-fly variable length
!       --  temporaries (which it cannot do!)
  
!       --  Note that the test for being in an object declaration avoids doing an
!       --  unnecessary expansion, and also avoids infinite recursion.
  
-       elsif Is_Array_Type (Typ)
-         and then not Is_Constrained (Typ)
-         and then not (Nkind (Par) = N_Object_Declaration
-                        and then Expression (Par) = N)
-       then
           declare
!             Cnn : constant Node_Id := Make_Temporary (Loc, 'C', N);
  
           begin
              Insert_Action (N,
                Make_Object_Declaration (Loc,
!                 Defining_Identifier => Cnn,
!                 Constant_Present    => True,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc),
!                 Expression          => Relocate_Node (N),
!                 Has_Init_Expression => True));
  
!             Rewrite (N, New_Occurrence_Of (Cnn, Loc));
!             return;
           end;
  
        --  For other types, we only need to expand if there are other actions
--- 6332,6423 ----
                    High_Bound => Build_New_Bound (Then_Hi, Else_Hi, Slice_Hi)));
           end;
  
!       --  If the type cannot be copied, then we expand as follows to avoid the
!       --  possibility of improper copying.
  
!       --      type Ptr_Typ is not null access all Typ;
!       --      Target : Ptr;
!       --      if cond then
!       --         <<then actions>>
!       --         Target := then-expr'Unrestricted_Access;
!       --      else
!       --         <<else actions>>
!       --         Target := else-expr'Unrestricted_Access;
!       --      end if;
  
!       --  and replace the if expression by a reference to Target.all.
  
!       elsif not Is_Copy_Type (Typ) then
!          --  When the "then" or "else" expressions involve controlled function
!          --  calls, generated temporaries are chained on the corresponding list
!          --  of actions. These temporaries need to be finalized after the if
!          --  expression is evaluated.
! 
!          Process_Transients_In_Expression (N, Then_Actions (N));
!          Process_Transients_In_Expression (N, Else_Actions (N));
  
           declare
!             Ptr_Typ : constant Entity_Id := Make_Temporary (Loc, 'A');
!             Target  : constant Entity_Id := Make_Temporary (Loc, 'C', N);
  
           begin
+             --  Generate:
+             --    type Ptr_Typ is not null access all Typ;
+ 
              Insert_Action (N,
+               Make_Full_Type_Declaration (Loc,
+                 Defining_Identifier => Ptr_Typ,
+                 Type_Definition     =>
+                   Make_Access_To_Object_Definition (Loc,
+                     All_Present            => True,
+                     Null_Exclusion_Present => True,
+                     Subtype_Indication     => New_Occurrence_Of (Typ, Loc))));
+ 
+             --  Generate:
+             --    Target : Ptr_Typ;
+ 
+             Decl :=
                Make_Object_Declaration (Loc,
!                 Defining_Identifier => Target,
!                 Object_Definition   => New_Occurrence_Of (Ptr_Typ, Loc));
!             Set_No_Initialization (Decl);
  
!             --  Generate:
!             --    if Cond then
!             --       Target := <Thenx>'Unrestricted_Access;
!             --    else
!             --       Target := <Elsex>'Unrestricted_Access;
!             --    end if;
! 
!             If_Stmt :=
!               Make_Implicit_If_Statement (N,
!                 Condition       => Relocate_Node (Cond),
!                 Then_Statements => New_List (
!                   Make_Assignment_Statement (Sloc (Thenx),
!                     Name       => New_Occurrence_Of (Target, Sloc (Thenx)),
!                     Expression =>
!                       Make_Attribute_Reference (Loc,
!                         Prefix         => Relocate_Node (Thenx),
!                         Attribute_Name => Name_Unrestricted_Access))),
! 
!                 Else_Statements => New_List (
!                   Make_Assignment_Statement (Sloc (Elsex),
!                     Name       => New_Occurrence_Of (Target, Sloc (Elsex)),
!                     Expression =>
!                       Make_Attribute_Reference (Loc,
!                         Prefix         => Relocate_Node (Elsex),
!                         Attribute_Name => Name_Unrestricted_Access))));
! 
!             --  Preserve the original context for which the if statement is
!             --  being generated. This is needed by the finalization machinery
!             --  to prevent the premature finalization of controlled objects
!             --  found within the if statement.
! 
!             Set_From_Conditional_Expression (If_Stmt);
! 
!             New_N :=
!               Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc));
           end;
  
        --  For other types, we only need to expand if there are other actions
*************** package body Exp_Ch4 is
*** 6146,6190 ****
        then
           --  We now wrap the actions into the appropriate expression
  
!          if Minimize_Expression_With_Actions
!            and then (Is_Elementary_Type (Underlying_Type (Typ))
!                       or else Is_Constrained (Underlying_Type (Typ)))
!          then
!             --  When the "then" or "else" expressions involve controlled
!             --  function calls, generated temporaries are chained on the
!             --  corresponding list of actions. These temporaries need to
!             --  be finalized after the if expression is evaluated.
  
!             Process_Transients_In_Expression (N, Then_Actions (N));
!             Process_Transients_In_Expression (N, Else_Actions (N));
  
!             --  If we can't use N_Expression_With_Actions nodes, then we insert
!             --  the following sequence of actions (using Insert_Actions):
  
!             --      Cnn : typ;
!             --      if cond then
!             --         <<then actions>>
!             --         Cnn := then-expr;
!             --      else
!             --         <<else actions>>
!             --         Cnn := else-expr
!             --      end if;
  
!             --  and replace the if expression by a reference to Cnn
  
!             declare
!                Cnn : constant Node_Id := Make_Temporary (Loc, 'C', N);
  
              begin
                 Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Cnn,
                     Object_Definition   => New_Occurrence_Of (Typ, Loc));
  
!                New_If :=
                   Make_Implicit_If_Statement (N,
                     Condition       => Relocate_Node (Cond),
- 
                     Then_Statements => New_List (
                       Make_Assignment_Statement (Sloc (Thenx),
                         Name       => New_Occurrence_Of (Cnn, Sloc (Thenx)),
--- 6430,6491 ----
        then
           --  We now wrap the actions into the appropriate expression
  
!          --  We do not need to call Process_Transients_In_Expression on
!          --  the list of actions in this case, because the expansion of
!          --  Expression_With_Actions will do it.
  
!          if Present (Then_Actions (N)) then
!             Rewrite (Thenx,
!               Make_Expression_With_Actions (Sloc (Thenx),
!                 Actions    => Then_Actions (N),
!                 Expression => Relocate_Node (Thenx)));
  
!             Set_Then_Actions (N, No_List);
!             Analyze_And_Resolve (Thenx, Typ);
!          end if;
  
!          if Present (Else_Actions (N)) then
!             Rewrite (Elsex,
!               Make_Expression_With_Actions (Sloc (Elsex),
!                 Actions    => Else_Actions (N),
!                 Expression => Relocate_Node (Elsex)));
  
!             Set_Else_Actions (N, No_List);
!             Analyze_And_Resolve (Elsex, Typ);
!          end if;
  
!          --  We must force expansion into an expression with actions when
!          --  an if expression gets used directly as an actual for an
!          --  anonymous access type.
  
+          if Force_Expand then
+             declare
+                Cnn  : constant Entity_Id := Make_Temporary (Loc, 'C');
+                Acts : List_Id;
              begin
+                Acts := New_List;
+ 
+                --  Generate:
+                --    Cnn : Ann;
+ 
                 Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Cnn,
                     Object_Definition   => New_Occurrence_Of (Typ, Loc));
+                Append_To (Acts, Decl);
  
!                Set_No_Initialization (Decl);
! 
!                --  Generate:
!                --    if Cond then
!                --       Cnn := <Thenx>;
!                --    else
!                --       Cnn := <Elsex>;
!                --    end if;
! 
!                If_Stmt :=
                   Make_Implicit_If_Statement (N,
                     Condition       => Relocate_Node (Cond),
                     Then_Statements => New_List (
                       Make_Assignment_Statement (Sloc (Thenx),
                         Name       => New_Occurrence_Of (Cnn, Sloc (Thenx)),
*************** package body Exp_Ch4 is
*** 6194,6292 ****
                       Make_Assignment_Statement (Sloc (Elsex),
                         Name       => New_Occurrence_Of (Cnn, Sloc (Elsex)),
                         Expression => Relocate_Node (Elsex))));
  
!                Set_Assignment_OK (Name (First (Then_Statements (New_If))));
!                Set_Assignment_OK (Name (First (Else_Statements (New_If))));
  
!                New_N := New_Occurrence_Of (Cnn, Loc);
              end;
- 
-          --  Regular path using Expression_With_Actions
- 
-          else
-             --  We do not need to call Process_Transients_In_Expression on
-             --  the list of actions in this case, because the expansion of
-             --  Expression_With_Actions will do it.
- 
-             if Present (Then_Actions (N)) then
-                Rewrite (Thenx,
-                  Make_Expression_With_Actions (Sloc (Thenx),
-                    Actions    => Then_Actions (N),
-                    Expression => Relocate_Node (Thenx)));
- 
-                Set_Then_Actions (N, No_List);
-                Analyze_And_Resolve (Thenx, Typ);
-             end if;
- 
-             if Present (Else_Actions (N)) then
-                Rewrite (Elsex,
-                  Make_Expression_With_Actions (Sloc (Elsex),
-                    Actions    => Else_Actions (N),
-                    Expression => Relocate_Node (Elsex)));
- 
-                Set_Else_Actions (N, No_List);
-                Analyze_And_Resolve (Elsex, Typ);
-             end if;
- 
-             --  We must force expansion into an expression with actions when
-             --  an if expression gets used directly as an actual for an
-             --  anonymous access type.
- 
-             if Force_Expand then
-                declare
-                   Cnn  : constant Entity_Id := Make_Temporary (Loc, 'C');
-                   Acts : List_Id;
-                begin
-                   Acts := New_List;
- 
-                   --  Generate:
-                   --    Cnn : Ann;
- 
-                   Decl :=
-                     Make_Object_Declaration (Loc,
-                       Defining_Identifier => Cnn,
-                       Object_Definition   => New_Occurrence_Of (Typ, Loc));
-                   Append_To (Acts, Decl);
- 
-                   Set_No_Initialization (Decl);
- 
-                   --  Generate:
-                   --    if Cond then
-                   --       Cnn := <Thenx>;
-                   --    else
-                   --       Cnn := <Elsex>;
-                   --    end if;
- 
-                   New_If :=
-                     Make_Implicit_If_Statement (N,
-                       Condition       => Relocate_Node (Cond),
-                       Then_Statements => New_List (
-                         Make_Assignment_Statement (Sloc (Thenx),
-                           Name       => New_Occurrence_Of (Cnn, Sloc (Thenx)),
-                           Expression => Relocate_Node (Thenx))),
- 
-                       Else_Statements => New_List (
-                         Make_Assignment_Statement (Sloc (Elsex),
-                           Name       => New_Occurrence_Of (Cnn, Sloc (Elsex)),
-                           Expression => Relocate_Node (Elsex))));
-                   Append_To (Acts, New_If);
- 
-                   --  Generate:
-                   --    do
-                   --       ...
-                   --    in Cnn end;
- 
-                   Rewrite (N,
-                     Make_Expression_With_Actions (Loc,
-                       Expression => New_Occurrence_Of (Cnn, Loc),
-                       Actions    => Acts));
-                   Analyze_And_Resolve (N, Typ);
-                end;
-             end if;
- 
-             return;
           end if;
  
        --  For the sake of GNATcoverage, generate an intermediate temporary in
        --  the case where the if expression is a condition in an outer decision,
        --  in order to make sure that no branch is shared between the decisions.
--- 6495,6517 ----
                       Make_Assignment_Statement (Sloc (Elsex),
                         Name       => New_Occurrence_Of (Cnn, Sloc (Elsex)),
                         Expression => Relocate_Node (Elsex))));
+                Append_To (Acts, If_Stmt);
  
!                --  Generate:
!                --    do
!                --       ...
!                --    in Cnn end;
  
!                Rewrite (N,
!                  Make_Expression_With_Actions (Loc,
!                    Expression => New_Occurrence_Of (Cnn, Loc),
!                    Actions    => Acts));
!                Analyze_And_Resolve (N, Typ);
              end;
           end if;
  
+          return;
+ 
        --  For the sake of GNATcoverage, generate an intermediate temporary in
        --  the case where the if expression is a condition in an outer decision,
        --  in order to make sure that no branch is shared between the decisions.
*************** package body Exp_Ch4 is
*** 6341,6371 ****
        --  correspond to what is being evaluated.
  
        if Present (Par) and then Nkind (Par) = N_If_Statement then
!          Set_Sloc (New_If, Sloc (Par));
           Set_Sloc (Par, Loc);
        end if;
  
        --  Move Then_Actions and Else_Actions, if any, to the new if statement
  
        if Present (Then_Actions (N)) then
!          Prepend_List (Then_Actions (N), Then_Statements (New_If));
        end if;
  
        if Present (Else_Actions (N)) then
!          Prepend_List (Else_Actions (N), Else_Statements (New_If));
        end if;
  
!       --  Rewrite the parent return statement as an if statement
  
!       if Optimize_Return_Stmt then
!          Rewrite (Par, New_If);
           Analyze (Par);
  
        --  Otherwise rewrite the if expression itself
  
        else
           Insert_Action (N, Decl);
!          Insert_Action (N, New_If);
           Rewrite (N, New_N);
           Analyze_And_Resolve (N, Typ);
        end if;
--- 6566,6600 ----
        --  correspond to what is being evaluated.
  
        if Present (Par) and then Nkind (Par) = N_If_Statement then
!          Set_Sloc (If_Stmt, Sloc (Par));
           Set_Sloc (Par, Loc);
        end if;
  
        --  Move Then_Actions and Else_Actions, if any, to the new if statement
  
        if Present (Then_Actions (N)) then
!          Prepend_List (Then_Actions (N), Then_Statements (If_Stmt));
        end if;
  
        if Present (Else_Actions (N)) then
!          Prepend_List (Else_Actions (N), Else_Statements (If_Stmt));
        end if;
  
!       --  Rewrite the parent statement as an if statement
  
!       if Optimize_Assignment_Stmt or else Optimize_Return_Stmt then
!          Rewrite (Par, If_Stmt);
           Analyze (Par);
  
+       elsif Optimize_Object_Decl then
+          Insert_Action (Par, If_Stmt);
+          Rewrite_Object_Declaration_As_Renaming (Par, New_N);
+ 
        --  Otherwise rewrite the if expression itself
  
        else
           Insert_Action (N, Decl);
!          Insert_Action (N, If_Stmt);
           Rewrite (N, New_N);
           Analyze_And_Resolve (N, Typ);
        end if;
*************** package body Exp_Ch4 is
*** 7409,7418 ****
  
        begin
           loop
!             if Nkind (Parnt) = N_Unchecked_Expression then
!                null;
! 
!             elsif Nkind (Parnt) = N_Object_Renaming_Declaration then
                 return;
  
              elsif Nkind (Parnt) in N_Subprogram_Call
--- 7638,7644 ----
  
        begin
           loop
!             if Nkind (Parnt) = N_Object_Renaming_Declaration then
                 return;
  
              elsif Nkind (Parnt) in N_Subprogram_Call
*************** package body Exp_Ch4 is
*** 7501,7512 ****
          Make_Op_Not (Loc,
            Right_Opnd =>
              Make_In (Loc,
!               Left_Opnd  => Left_Opnd (N),
!               Right_Opnd => Right_Opnd (N))));
! 
!       --  If this is a set membership, preserve list of alternatives
! 
!       Set_Alternatives (Right_Opnd (N), Alternatives (Original_Node (N)));
  
        --  We want this to appear as coming from source if original does (see
        --  transformations in Expand_N_In).
--- 7727,7735 ----
          Make_Op_Not (Loc,
            Right_Opnd =>
              Make_In (Loc,
!               Left_Opnd    => Left_Opnd (N),
!               Right_Opnd   => Right_Opnd (N),
!               Alternatives => Alternatives (N))));
  
        --  We want this to appear as coming from source if original does (see
        --  transformations in Expand_N_In).
*************** package body Exp_Ch4 is
*** 8291,8298 ****
           then
              Expand_Packed_Eq (N);
  
!          --  Where the component type is elementary we can use a block bit
!          --  comparison (if supported on the target) exception in the case
           --  of floating-point (negative zero issues require element by
           --  element comparison), and full access types (where we must be sure
           --  to load elements independently) and possibly unaligned arrays.
--- 8514,8521 ----
           then
              Expand_Packed_Eq (N);
  
!          --  When the component type is elementary, we can use a byte-wise
!          --  comparison if supported on the target, except in the cases
           --  of floating-point (negative zero issues require element by
           --  element comparison), and full access types (where we must be sure
           --  to load elements independently) and possibly unaligned arrays.
*************** package body Exp_Ch4 is
*** 8588,8594 ****
  
           --  For small negative exponents, we return the reciprocal of
           --  the folding of the exponentiation for the opposite (positive)
!          --  exponent, as required by Ada RM 4.5.6(11/3).
  
           if abs Expv <= 4 then
  
--- 8811,8817 ----
  
           --  For small negative exponents, we return the reciprocal of
           --  the folding of the exponentiation for the opposite (positive)
!          --  exponent, as required by RM 4.5.6(11/3).
  
           if abs Expv <= 4 then
  
*************** package body Exp_Ch4 is
*** 9267,9274 ****
        --  mod are the same, see (RM 4.5.5(28-30)). We do this since it is quite
        --  likely that this will improve the quality of code, (the operation now
        --  corresponds to the hardware remainder), and it does not seem likely
!       --  that it could be harmful. It also avoids some cases of the elaborate
!       --  expansion in Modify_Tree_For_C mode below (since Ada rem = C %).
  
        if (LOK and ROK)
          and then ((Llo >= 0 and then Rlo >= 0)
--- 9490,9496 ----
        --  mod are the same, see (RM 4.5.5(28-30)). We do this since it is quite
        --  likely that this will improve the quality of code, (the operation now
        --  corresponds to the hardware remainder), and it does not seem likely
!       --  that it could be harmful.
  
        if (LOK and ROK)
          and then ((Llo >= 0 and then Rlo >= 0)
*************** package body Exp_Ch4 is
*** 9332,9435 ****
              return;
           end if;
  
-          --  If we still have a mod operator and we are in Modify_Tree_For_C
-          --  mode, and we have a signed integer type, then here is where we do
-          --  the rewrite in terms of Rem. Note this rewrite bypasses the need
-          --  for the special handling of the annoying case of largest negative
-          --  number mod minus one.
- 
-          if Nkind (N) = N_Op_Mod
-            and then Is_Signed_Integer_Type (Typ)
-            and then Modify_Tree_For_C
-          then
-             --  In the general case, we expand A mod B as
- 
-             --    Tnn : constant typ := A rem B;
-             --    ..
-             --    (if (A >= 0) = (B >= 0) then Tnn
-             --     elsif Tnn = 0 then 0
-             --     else Tnn + B)
- 
-             --  The comparison can be written simply as A >= 0 if we know that
-             --  B >= 0 which is a very common case.
- 
-             --  An important optimization is when B is known at compile time
-             --  to be 2**K for some constant. In this case we can simply AND
-             --  the left operand with the bit string 2**K-1 (i.e. K 1-bits)
-             --  and that works for both the positive and negative cases.
- 
-             declare
-                P2 : constant Nat := Power_Of_Two (Right);
- 
-             begin
-                if P2 /= 0 then
-                   Rewrite (N,
-                     Unchecked_Convert_To (Typ,
-                       Make_Op_And (Loc,
-                         Left_Opnd  =>
-                           Unchecked_Convert_To
-                             (Corresponding_Unsigned_Type (Typ), Left),
-                         Right_Opnd =>
-                           Make_Integer_Literal (Loc, 2 ** P2 - 1))));
-                   Analyze_And_Resolve (N, Typ);
-                   return;
-                end if;
-             end;
- 
-             --  Here for the full rewrite
- 
-             declare
-                Tnn : constant Entity_Id := Make_Temporary (Sloc (N), 'T', N);
-                Cmp : Node_Id;
- 
-             begin
-                Cmp :=
-                  Make_Op_Ge (Loc,
-                    Left_Opnd  => Duplicate_Subexpr_No_Checks (Left),
-                    Right_Opnd => Make_Integer_Literal (Loc, 0));
- 
-                if not LOK or else Rlo < 0 then
-                   Cmp :=
-                      Make_Op_Eq (Loc,
-                        Left_Opnd  => Cmp,
-                        Right_Opnd =>
-                          Make_Op_Ge (Loc,
-                            Left_Opnd  => Duplicate_Subexpr_No_Checks (Right),
-                            Right_Opnd => Make_Integer_Literal (Loc, 0)));
-                end if;
- 
-                Insert_Action (N,
-                  Make_Object_Declaration (Loc,
-                    Defining_Identifier => Tnn,
-                    Constant_Present    => True,
-                    Object_Definition   => New_Occurrence_Of (Typ, Loc),
-                    Expression          =>
-                      Make_Op_Rem (Loc,
-                        Left_Opnd  => Left,
-                        Right_Opnd => Right)));
- 
-                Rewrite (N,
-                  Make_If_Expression (Loc,
-                    Expressions => New_List (
-                      Cmp,
-                      New_Occurrence_Of (Tnn, Loc),
-                      Make_If_Expression (Loc,
-                        Is_Elsif    => True,
-                        Expressions => New_List (
-                          Make_Op_Eq (Loc,
-                            Left_Opnd  => New_Occurrence_Of (Tnn, Loc),
-                            Right_Opnd => Make_Integer_Literal (Loc, 0)),
-                          Make_Integer_Literal (Loc, 0),
-                          Make_Op_Add (Loc,
-                            Left_Opnd  => New_Occurrence_Of (Tnn, Loc),
-                            Right_Opnd =>
-                              Duplicate_Subexpr_No_Checks (Right)))))));
- 
-                Analyze_And_Resolve (N, Typ);
-                return;
-             end;
-          end if;
- 
           --  Deal with annoying case of largest negative number mod minus one.
           --  Gigi may not handle this case correctly, because on some targets,
           --  the mod value is computed using a divide instruction which gives
--- 9554,9559 ----
*************** package body Exp_Ch4 is
*** 9496,9504 ****
        Rp2 : constant Boolean :=
                Nkind (Rop) = N_Op_Expon and then Is_Power_Of_2_For_Shift (Rop);
  
!       Ltyp : constant Entity_Id  := Etype (Lop);
!       Rtyp : constant Entity_Id  := Etype (Rop);
!       Typ  : Entity_Id           := Etype (N);
  
     begin
        Binary_Op_Validity_Checks (N);
--- 9620,9628 ----
        Rp2 : constant Boolean :=
                Nkind (Rop) = N_Op_Expon and then Is_Power_Of_2_For_Shift (Rop);
  
!       Ltyp : constant Entity_Id := Etype (Lop);
!       Rtyp : constant Entity_Id := Etype (Rop);
!       Typ  : Entity_Id          := Etype (N);
  
     begin
        Binary_Op_Validity_Checks (N);
*************** package body Exp_Ch4 is
*** 9838,9852 ****
     --       return B;
     --     end Nnnn;
  
-    --  or in the case of Transform_Function_Array:
- 
-    --     procedure Nnnn (A : arr; RESULT : out arr) is
-    --     begin
-    --       for J in a'range loop
-    --          RESULT (J) := not A (J);
-    --       end loop;
-    --     end Nnnn;
- 
     --  Here arr is the actual subtype of the parameter (and hence always
     --  constrained). Then we replace the not with a call to this subprogram.
  
--- 9962,9967 ----
*************** package body Exp_Ch4 is
*** 9948,9960 ****
        end if;
  
        A := Make_Defining_Identifier (Loc, Name_uA);
! 
!       if Transform_Function_Array then
!          B := Make_Defining_Identifier (Loc, Name_UP_RESULT);
!       else
!          B := Make_Defining_Identifier (Loc, Name_uB);
!       end if;
! 
        J := Make_Defining_Identifier (Loc, Name_uJ);
  
        A_J :=
--- 10063,10069 ----
        end if;
  
        A := Make_Defining_Identifier (Loc, Name_uA);
!       B := Make_Defining_Identifier (Loc, Name_uB);
        J := Make_Defining_Identifier (Loc, Name_uJ);
  
        A_J :=
*************** package body Exp_Ch4 is
*** 9989,10070 ****
        Func_Name := Make_Temporary (Loc, 'N');
        Set_Is_Inlined (Func_Name);
  
!       if Transform_Function_Array then
!          Insert_Action (N,
!            Make_Subprogram_Body (Loc,
!              Specification =>
!                Make_Procedure_Specification (Loc,
!                  Defining_Unit_Name => Func_Name,
!                  Parameter_Specifications => New_List (
!                    Make_Parameter_Specification (Loc,
!                      Defining_Identifier => A,
!                      Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
!                    Make_Parameter_Specification (Loc,
!                      Defining_Identifier => B,
!                      Out_Present         => True,
!                      Parameter_Type      => New_Occurrence_Of (Typ, Loc)))),
! 
!              Declarations => New_List,
! 
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (Loop_Statement))));
! 
!          declare
!             Temp_Id : constant Entity_Id := Make_Temporary (Loc, 'T');
!             Call    : Node_Id;
!             Decl    : Node_Id;
! 
!          begin
!             --  Generate:
!             --    Temp : ...;
! 
!             Decl :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Temp_Id,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc));
! 
!             --  Generate:
!             --    Proc_Call (Opnd, Temp);
! 
!             Call :=
!               Make_Procedure_Call_Statement (Loc,
!                 Name => New_Occurrence_Of (Func_Name, Loc),
!                 Parameter_Associations =>
!                   New_List (Opnd, New_Occurrence_Of (Temp_Id, Loc)));
! 
!             Insert_Actions (Parent (N), New_List (Decl, Call));
!             Rewrite (N, New_Occurrence_Of (Temp_Id, Loc));
!          end;
!       else
!          Insert_Action (N,
!            Make_Subprogram_Body (Loc,
!              Specification =>
!                Make_Function_Specification (Loc,
!                  Defining_Unit_Name => Func_Name,
!                  Parameter_Specifications => New_List (
!                    Make_Parameter_Specification (Loc,
!                      Defining_Identifier => A,
!                      Parameter_Type      => New_Occurrence_Of (Typ, Loc))),
!                  Result_Definition => New_Occurrence_Of (Typ, Loc)),
  
!              Declarations => New_List (
!                Make_Object_Declaration (Loc,
!                  Defining_Identifier => B,
!                  Object_Definition   => New_Occurrence_Of (Arr, Loc))),
  
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (
!                    Loop_Statement,
!                    Make_Simple_Return_Statement (Loc,
!                      Expression => Make_Identifier (Loc, Chars (B)))))));
  
!          Rewrite (N,
!            Make_Function_Call (Loc,
!              Name                   => New_Occurrence_Of (Func_Name, Loc),
!              Parameter_Associations => New_List (Opnd)));
!       end if;
  
        Analyze_And_Resolve (N, Typ);
     end Expand_N_Op_Not;
--- 10098,10130 ----
        Func_Name := Make_Temporary (Loc, 'N');
        Set_Is_Inlined (Func_Name);
  
!       Insert_Action (N,
!         Make_Subprogram_Body (Loc,
!           Specification =>
!             Make_Function_Specification (Loc,
!               Defining_Unit_Name => Func_Name,
!               Parameter_Specifications => New_List (
!                 Make_Parameter_Specification (Loc,
!                   Defining_Identifier => A,
!                   Parameter_Type      => New_Occurrence_Of (Typ, Loc))),
!               Result_Definition => New_Occurrence_Of (Typ, Loc)),
  
!           Declarations => New_List (
!             Make_Object_Declaration (Loc,
!               Defining_Identifier => B,
!               Object_Definition   => New_Occurrence_Of (Arr, Loc))),
  
!           Handled_Statement_Sequence =>
!             Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => New_List (
!                 Loop_Statement,
!                 Make_Simple_Return_Statement (Loc,
!                   Expression => Make_Identifier (Loc, Chars (B)))))));
  
!       Rewrite (N,
!         Make_Function_Call (Loc,
!           Name                   => New_Occurrence_Of (Func_Name, Loc),
!           Parameter_Associations => New_List (Opnd)));
  
        Analyze_And_Resolve (N, Typ);
     end Expand_N_Op_Not;
*************** package body Exp_Ch4 is
*** 10246,10297 ****
     procedure Expand_N_Op_Rotate_Left (N : Node_Id) is
     begin
        Binary_Op_Validity_Checks (N);
- 
-       --  If we are in Modify_Tree_For_C mode, there is no rotate left in C,
-       --  so we rewrite in terms of logical shifts
- 
-       --    Shift_Left (Num, Bits) or Shift_Right (num, Esize - Bits)
- 
-       --  where Bits is the shift count mod Esize (the mod operation here
-       --  deals with ludicrous large shift counts, which are apparently OK).
- 
-       if Modify_Tree_For_C then
-          declare
-             Loc : constant Source_Ptr := Sloc (N);
-             Rtp : constant Entity_Id  := Etype (Right_Opnd (N));
-             Typ : constant Entity_Id  := Etype (N);
- 
-          begin
-             --  Sem_Intr should prevent getting there with a non binary modulus
- 
-             pragma Assert (not Non_Binary_Modulus (Typ));
- 
-             Rewrite (Right_Opnd (N),
-               Make_Op_Rem (Loc,
-                 Left_Opnd  => Relocate_Node (Right_Opnd (N)),
-                 Right_Opnd => Make_Integer_Literal (Loc, Esize (Typ))));
- 
-             Analyze_And_Resolve (Right_Opnd (N), Rtp);
- 
-             Rewrite (N,
-               Make_Op_Or (Loc,
-                 Left_Opnd =>
-                   Make_Op_Shift_Left (Loc,
-                     Left_Opnd  => Left_Opnd (N),
-                     Right_Opnd => Right_Opnd (N)),
- 
-                 Right_Opnd =>
-                   Make_Op_Shift_Right (Loc,
-                     Left_Opnd  => Duplicate_Subexpr_No_Checks (Left_Opnd (N)),
-                     Right_Opnd =>
-                       Make_Op_Subtract (Loc,
-                         Left_Opnd  => Make_Integer_Literal (Loc, Esize (Typ)),
-                         Right_Opnd =>
-                           Duplicate_Subexpr_No_Checks (Right_Opnd (N))))));
- 
-             Analyze_And_Resolve (N, Typ);
-          end;
-       end if;
     end Expand_N_Op_Rotate_Left;
  
     ------------------------------
--- 10306,10311 ----
*************** package body Exp_Ch4 is
*** 10301,10352 ****
     procedure Expand_N_Op_Rotate_Right (N : Node_Id) is
     begin
        Binary_Op_Validity_Checks (N);
- 
-       --  If we are in Modify_Tree_For_C mode, there is no rotate right in C,
-       --  so we rewrite in terms of logical shifts
- 
-       --    Shift_Right (Num, Bits) or Shift_Left (num, Esize - Bits)
- 
-       --  where Bits is the shift count mod Esize (the mod operation here
-       --  deals with ludicrous large shift counts, which are apparently OK).
- 
-       if Modify_Tree_For_C then
-          declare
-             Loc : constant Source_Ptr := Sloc (N);
-             Rtp : constant Entity_Id  := Etype (Right_Opnd (N));
-             Typ : constant Entity_Id  := Etype (N);
- 
-          begin
-             --  Sem_Intr should prevent getting there with a non binary modulus
- 
-             pragma Assert (not Non_Binary_Modulus (Typ));
- 
-             Rewrite (Right_Opnd (N),
-               Make_Op_Rem (Loc,
-                 Left_Opnd  => Relocate_Node (Right_Opnd (N)),
-                 Right_Opnd => Make_Integer_Literal (Loc, Esize (Typ))));
- 
-             Analyze_And_Resolve (Right_Opnd (N), Rtp);
- 
-             Rewrite (N,
-               Make_Op_Or (Loc,
-                 Left_Opnd =>
-                   Make_Op_Shift_Right (Loc,
-                     Left_Opnd  => Left_Opnd (N),
-                     Right_Opnd => Right_Opnd (N)),
- 
-                 Right_Opnd =>
-                   Make_Op_Shift_Left (Loc,
-                     Left_Opnd  => Duplicate_Subexpr_No_Checks (Left_Opnd (N)),
-                     Right_Opnd =>
-                       Make_Op_Subtract (Loc,
-                         Left_Opnd  => Make_Integer_Literal (Loc, Esize (Typ)),
-                         Right_Opnd =>
-                           Duplicate_Subexpr_No_Checks (Right_Opnd (N))))));
- 
-             Analyze_And_Resolve (N, Typ);
-          end;
-       end if;
     end Expand_N_Op_Rotate_Right;
  
     ----------------------------
--- 10315,10320 ----
*************** package body Exp_Ch4 is
*** 10359,10420 ****
     procedure Expand_N_Op_Shift_Left (N : Node_Id) is
     begin
        Binary_Op_Validity_Checks (N);
- 
-       --  If we are in Modify_Tree_For_C mode, then ensure that the right
-       --  operand is not greater than the word size (since that would not
-       --  be defined properly by the corresponding C shift operator).
- 
-       if Modify_Tree_For_C then
-          declare
-             Right : constant Node_Id    := Right_Opnd (N);
-             Loc   : constant Source_Ptr := Sloc (Right);
-             Typ   : constant Entity_Id  := Etype (N);
-             Siz   : constant Uint       := Esize (Typ);
-             Orig  : Node_Id;
-             OK    : Boolean;
-             Lo    : Uint;
-             Hi    : Uint;
- 
-          begin
-             --  Sem_Intr should prevent getting there with a non binary modulus
- 
-             pragma Assert (not Non_Binary_Modulus (Typ));
- 
-             if Compile_Time_Known_Value (Right) then
-                if Expr_Value (Right) >= Siz then
-                   Rewrite (N, Make_Integer_Literal (Loc, 0));
-                   Analyze_And_Resolve (N, Typ);
-                end if;
- 
-             --  Not compile time known, find range
- 
-             else
-                Determine_Range (Right, OK, Lo, Hi, Assume_Valid => True);
- 
-                --  Nothing to do if known to be OK range, otherwise expand
- 
-                if not OK or else Hi >= Siz then
- 
-                   --  Prevent recursion on copy of shift node
- 
-                   Orig := Relocate_Node (N);
-                   Set_Analyzed (Orig);
- 
-                   --  Now do the rewrite
- 
-                   Rewrite (N,
-                      Make_If_Expression (Loc,
-                        Expressions => New_List (
-                          Make_Op_Ge (Loc,
-                            Left_Opnd  => Duplicate_Subexpr_Move_Checks (Right),
-                            Right_Opnd => Make_Integer_Literal (Loc, Siz)),
-                          Make_Integer_Literal (Loc, 0),
-                          Orig)));
-                   Analyze_And_Resolve (N, Typ);
-                end if;
-             end if;
-          end;
-       end if;
     end Expand_N_Op_Shift_Left;
  
     -----------------------------
--- 10327,10332 ----
*************** package body Exp_Ch4 is
*** 10435,10523 ****
     procedure Expand_N_Op_Shift_Right_Arithmetic (N : Node_Id) is
     begin
        Binary_Op_Validity_Checks (N);
- 
-       --  If we are in Modify_Tree_For_C mode, there is no shift right
-       --  arithmetic in C, so we rewrite in terms of logical shifts for
-       --  modular integers, and keep the Shift_Right intrinsic for signed
-       --  integers: even though doing a shift on a signed integer is not
-       --  fully guaranteed by the C standard, this is what C compilers
-       --  implement in practice.
-       --  Consider also taking advantage of this for modular integers by first
-       --  performing an unchecked conversion of the modular integer to a signed
-       --  integer of the same sign, and then convert back.
- 
-       --    Shift_Right (Num, Bits) or
-       --      (if Num >= Sign
-       --       then not (Shift_Right (Mask, bits))
-       --       else 0)
- 
-       --  Here Mask is all 1 bits (2**size - 1), and Sign is 2**(size - 1)
- 
-       --  Note: the above works fine for shift counts greater than or equal
-       --  to the word size, since in this case (not (Shift_Right (Mask, bits)))
-       --  generates all 1'bits.
- 
-       if Modify_Tree_For_C and then Is_Modular_Integer_Type (Etype (N)) then
-          declare
-             Loc   : constant Source_Ptr := Sloc (N);
-             Typ   : constant Entity_Id  := Etype (N);
-             Sign  : constant Uint       := 2 ** (Esize (Typ) - 1);
-             Mask  : constant Uint       := (2 ** Esize (Typ)) - 1;
-             Left  : constant Node_Id    := Left_Opnd (N);
-             Right : constant Node_Id    := Right_Opnd (N);
-             Maskx : Node_Id;
- 
-          begin
-             --  Sem_Intr should prevent getting there with a non binary modulus
- 
-             pragma Assert (not Non_Binary_Modulus (Typ));
- 
-             --  Here if not (Shift_Right (Mask, bits)) can be computed at
-             --  compile time as a single constant.
- 
-             if Compile_Time_Known_Value (Right) then
-                declare
-                   Val : constant Uint := Expr_Value (Right);
- 
-                begin
-                   if Val >= Esize (Typ) then
-                      Maskx := Make_Integer_Literal (Loc, Mask);
- 
-                   else
-                      Maskx :=
-                        Make_Integer_Literal (Loc,
-                          Intval => Mask - (Mask / (2 ** Expr_Value (Right))));
-                   end if;
-                end;
- 
-             else
-                Maskx :=
-                  Make_Op_Not (Loc,
-                    Right_Opnd =>
-                      Make_Op_Shift_Right (Loc,
-                        Left_Opnd  => Make_Integer_Literal (Loc, Mask),
-                        Right_Opnd => Duplicate_Subexpr_No_Checks (Right)));
-             end if;
- 
-             --  Now do the rewrite
- 
-             Rewrite (N,
-               Make_Op_Or (Loc,
-                 Left_Opnd =>
-                   Make_Op_Shift_Right (Loc,
-                     Left_Opnd  => Left,
-                     Right_Opnd => Right),
-                 Right_Opnd =>
-                   Make_If_Expression (Loc,
-                     Expressions => New_List (
-                       Make_Op_Ge (Loc,
-                         Left_Opnd  => Duplicate_Subexpr_No_Checks (Left),
-                         Right_Opnd => Make_Integer_Literal (Loc, Sign)),
-                       Maskx,
-                       Make_Integer_Literal (Loc, 0)))));
-             Analyze_And_Resolve (N, Typ);
-          end;
-       end if;
     end Expand_N_Op_Shift_Right_Arithmetic;
  
     --------------------------
--- 10347,10352 ----
*************** package body Exp_Ch4 is
*** 10551,10557 ****
  
        if Is_Integer_Type (Typ)
          and then Compile_Time_Known_Value (Right_Opnd (N))
!         and then Expr_Value (Right_Opnd (N)) = 0
        then
           Rewrite (N, Left_Opnd (N));
           return;
--- 10380,10386 ----
  
        if Is_Integer_Type (Typ)
          and then Compile_Time_Known_Value (Right_Opnd (N))
!         and then Expr_Value (Right_Opnd (N)) = Uint_0
        then
           Rewrite (N, Left_Opnd (N));
           return;
*************** package body Exp_Ch4 is
*** 10608,10617 ****
     -----------------------------------
  
     procedure Expand_N_Qualified_Expression (N : Node_Id) is
!       Operand     : constant Node_Id   := Expression (N);
!       Target_Type : constant Entity_Id := Entity (Subtype_Mark (N));
  
     begin
        --  Do validity check if validity checking operands
  
        if Validity_Checks_On and Validity_Check_Operands then
--- 10437,10527 ----
     -----------------------------------
  
     procedure Expand_N_Qualified_Expression (N : Node_Id) is
!       Loc         : constant Source_Ptr := Sloc (N);
!       Operand     : constant Node_Id    := Expression (N);
!       Target_Type : constant Entity_Id  := Entity (Subtype_Mark (N));
  
     begin
+       --  Nothing to do if the operand is an identical qualified expression
+ 
+       if Nkind (Operand) = N_Qualified_Expression
+         and then Entity (Subtype_Mark (Operand)) = Target_Type
+       then
+          Rewrite (N, Relocate_Node (Operand));
+          return;
+ 
+       --  An allocator expects a qualified expression in all cases
+ 
+       elsif Nkind (Parent (N)) = N_Allocator then
+          null;
+ 
+       --  Distribute the qualified expression into the dependent expressions
+       --  of a delayed conditional expression. The goal is to enable further
+       --  optimizations, for example within a return statement, by exposing
+       --  the conditional expression.
+ 
+       elsif Nkind (Operand) = N_Case_Expression
+         and then Expansion_Delayed (Operand)
+       then
+          declare
+             New_Alts : constant List_Id := New_List;
+             New_Case : constant Node_Id :=
+               Make_Case_Expression (Loc,
+                 Expression   => Relocate_Node (Expression (Operand)),
+                 Alternatives => New_Alts);
+ 
+             Alt     : Node_Id;
+             New_Alt : Node_Id;
+ 
+          begin
+             Alt := First (Alternatives (Operand));
+             while Present (Alt) loop
+                New_Alt :=
+                  Make_Case_Expression_Alternative (Sloc (Alt),
+                    Discrete_Choices => Discrete_Choices (Alt),
+                    Expression       =>
+                      Make_Qualified_Expression (Loc,
+                        Subtype_Mark => New_Occurrence_Of (Target_Type, Loc),
+                        Expression   => Relocate_Node (Expression (Alt))));
+                Append_To (New_Alts, New_Alt);
+                Set_Actions (New_Alt, Actions (Alt));
+ 
+                Next (Alt);
+             end loop;
+ 
+             Rewrite (N, New_Case);
+             Analyze_And_Resolve (N);
+             return;
+          end;
+ 
+       elsif Nkind (Operand) = N_If_Expression
+         and then Expansion_Delayed (Operand)
+       then
+          declare
+             Cond   : constant Node_Id := First (Expressions (Operand));
+             Thenx  : constant Node_Id := Next (Cond);
+             Elsex  : constant Node_Id := Next (Thenx);
+             New_If : constant Node_Id :=
+               Make_If_Expression (Loc,
+                 Expressions => New_List (
+                   Relocate_Node (Cond),
+                   Make_Qualified_Expression (Loc,
+                     Subtype_Mark => New_Occurrence_Of (Target_Type, Loc),
+                     Expression   => Relocate_Node (Thenx)),
+                   Make_Qualified_Expression (Loc,
+                     Subtype_Mark => New_Occurrence_Of (Target_Type, Loc),
+                     Expression   => Relocate_Node (Elsex))));
+ 
+          begin
+             Set_Then_Actions (New_If, Then_Actions (Operand));
+             Set_Else_Actions (New_If, Else_Actions (Operand));
+ 
+             Rewrite (N, New_If);
+             Analyze_And_Resolve (N);
+             return;
+          end;
+       end if;
+ 
        --  Do validity check if validity checking operands
  
        if Validity_Checks_On and Validity_Check_Operands then
*************** package body Exp_Ch4 is
*** 10624,10632 ****
  
        Apply_Constraint_Check (Operand, Target_Type, No_Sliding => True);
  
!       --  Apply possible predicate check
  
!       Apply_Predicate_Check (Operand, Target_Type);
  
        if Do_Range_Check (Operand) then
           Generate_Range_Check (Operand, Target_Type, CE_Range_Check_Failed);
--- 10534,10549 ----
  
        Apply_Constraint_Check (Operand, Target_Type, No_Sliding => True);
  
!       --  Apply possible predicate check but, for a delayed aggregate, the
!       --  check is effectively delayed until after the aggregate is expanded
!       --  into a series of assignments. Likewise for a conditional expression
!       --  whose expansion has been delayed.
  
!       if not Is_Delayed_Aggregate (Operand)
!         and then not Is_Delayed_Conditional_Expression (Operand)
!       then
!          Apply_Predicate_Check (Operand, Target_Type);
!       end if;
  
        if Do_Range_Check (Operand) then
           Generate_Range_Check (Operand, Target_Type, CE_Range_Check_Failed);
*************** package body Exp_Ch4 is
*** 11332,11380 ****
           Expr : Node_Id;
           Ityp : Entity_Id;
  
-          procedure Generate_Temporary;
-          --  Generate a temporary to facilitate in the C backend the code
-          --  generation of the unchecked conversion since the size of the
-          --  source type may differ from the size of the target type.
- 
-          ------------------------
-          -- Generate_Temporary --
-          ------------------------
- 
-          procedure Generate_Temporary is
-          begin
-             if Esize (Etype (Expr)) < Esize (Etype (Ityp)) then
-                declare
-                   Exp_Type : constant Entity_Id := Ityp;
-                   Def_Id   : constant Entity_Id :=
-                                Make_Temporary (Loc, 'R', Expr);
-                   E        : Node_Id;
-                   Res      : Node_Id;
- 
-                begin
-                   Set_Is_Internal (Def_Id);
-                   Set_Etype (Def_Id, Exp_Type);
-                   Res := New_Occurrence_Of (Def_Id, Loc);
- 
-                   E :=
-                     Make_Object_Declaration (Loc,
-                       Defining_Identifier => Def_Id,
-                       Object_Definition   => New_Occurrence_Of
-                                                (Exp_Type, Loc),
-                       Constant_Present    => True,
-                       Expression          => Relocate_Node (Expr));
- 
-                   Set_Assignment_OK (E);
-                   Insert_Action (Expr, E);
- 
-                   Set_Assignment_OK (Res, Assignment_OK (Expr));
- 
-                   Rewrite (Expr, Res);
-                   Analyze_And_Resolve (Expr, Exp_Type);
-                end;
-             end if;
-          end Generate_Temporary;
- 
        --  Start of processing for Discrete_Range_Check
  
        begin
--- 11249,11254 ----
*************** package body Exp_Ch4 is
*** 11414,11427 ****
           if Is_Fixed_Point_Type (Etype (Expr)) then
              Ityp := Small_Integer_Type_For
                        (Esize (Base_Type (Etype (Expr))), Uns => False);
- 
-             --  Generate a temporary with the integer type to facilitate in the
-             --  C backend the code generation for the unchecked conversion.
- 
-             if Modify_Tree_For_C then
-                Generate_Temporary;
-             end if;
- 
              Rewrite (Expr, Unchecked_Convert_To (Ityp, Expr));
           end if;
  
--- 11288,11293 ----
*************** package body Exp_Ch4 is
*** 12224,12229 ****
--- 12090,12123 ----
           end if;
        end if;
  
+       --  Generate a tag check for view conversions of mutably tagged objects,
+       --  which are special in nature and require selecting the tag component
+       --  from the class-wide equivalent type.
+ 
+       --  Possibly this could be combined with the logic below for better code
+       --  reuse ???
+ 
+       if Is_View_Conversion (N)
+         and then Is_Variable (Operand)
+         and then Is_Class_Wide_Equivalent_Type (Etype (Operand))
+       then
+          --  Generate:
+          --    [Constraint_Error when Operand.Tag /= Root_Type]
+ 
+          Insert_Action (N,
+            Make_Raise_Constraint_Error (Loc,
+              Condition =>
+                Make_Op_Ne (Loc,
+                  Left_Opnd  =>
+                    Make_Selected_Component (Loc,
+                      Prefix        => Duplicate_Subexpr_No_Checks (Operand),
+                      Selector_Name => Make_Identifier (Loc, Name_uTag)),
+                  Right_Opnd =>
+                    Make_Attribute_Reference (Loc,
+                      Prefix         => New_Occurrence_Of (Target_Type, Loc),
+                      Attribute_Name => Name_Tag)),
+              Reason   => CE_Tag_Check_Failed));
+ 
        --  Case of conversions of tagged types and access to tagged types
  
        --  When needed, that is to say when the expression is class-wide, Add
*************** package body Exp_Ch4 is
*** 12239,12246 ****
        --          and then Operand.all not in
        --            Designated_Type (Target_Type)'Class]
  
!       if (Is_Access_Type (Target_Type)
!            and then Is_Tagged_Type (Designated_Type (Target_Type)))
          or else Is_Tagged_Type (Target_Type)
        then
           --  Do not do any expansion in the access type case if the parent is a
--- 12133,12140 ----
        --          and then Operand.all not in
        --            Designated_Type (Target_Type)'Class]
  
!       elsif (Is_Access_Type (Target_Type)
!               and then Is_Tagged_Type (Designated_Type (Target_Type)))
          or else Is_Tagged_Type (Target_Type)
        then
           --  Do not do any expansion in the access type case if the parent is a
*************** package body Exp_Ch4 is
*** 12628,12649 ****
        end if;
     end Expand_N_Type_Conversion;
  
-    -----------------------------------
-    -- Expand_N_Unchecked_Expression --
-    -----------------------------------
- 
-    --  Remove the unchecked expression node from the tree. Its job was simply
-    --  to make sure that its constituent expression was handled with checks
-    --  off, and now that is done, we can remove it from the tree, and indeed
-    --  must, since Gigi does not expect to see these nodes.
- 
-    procedure Expand_N_Unchecked_Expression (N : Node_Id) is
-       Exp : constant Node_Id := Expression (N);
-    begin
-       Set_Assignment_OK (Exp, Assignment_OK (N) or else Assignment_OK (Exp));
-       Rewrite (N, Exp);
-    end Expand_N_Unchecked_Expression;
- 
     ----------------------------------------
     -- Expand_N_Unchecked_Type_Conversion --
     ----------------------------------------
--- 12522,12527 ----
*************** package body Exp_Ch4 is
*** 12662,12690 ****
        --  an Assignment_OK indication which must be propagated to the operand.
  
        if Operand_Type = Target_Type then
!          Expand_N_Unchecked_Expression (N);
!          return;
!       end if;
! 
!       --  Generate an extra temporary for cases unsupported by the C backend
! 
!       if Modify_Tree_For_C then
!          declare
!             Source     : constant Node_Id := Unqual_Conv (Expression (N));
!             Source_Typ : Entity_Id        := Get_Full_View (Etype (Source));
! 
!          begin
!             if Is_Packed_Array (Source_Typ) then
!                Source_Typ := Packed_Array_Impl_Type (Source_Typ);
!             end if;
  
!             if Nkind (Source) = N_Function_Call
!               and then (Is_Composite_Type (Etype (Source))
!                           or else Is_Composite_Type (Target_Type))
!             then
!                Force_Evaluation (Source);
!             end if;
!          end;
        end if;
  
        --  Nothing to do if conversion is safe
--- 12540,12551 ----
        --  an Assignment_OK indication which must be propagated to the operand.
  
        if Operand_Type = Target_Type then
!          if Assignment_OK (N) then
!             Set_Assignment_OK (Operand);
!          end if;
  
!          Rewrite (N, Operand);
!          return;
        end if;
  
        --  Nothing to do if conversion is safe
*************** package body Exp_Ch4 is
*** 12790,12795 ****
--- 12651,12659 ----
              New_Lhs : Node_Id;
              New_Rhs : Node_Id;
              Check   : Node_Id;
+             Lhs_Sel : Node_Id;
+             Rhs_Sel : Node_Id;
+             C_Typ   : Entity_Id := Etype (C);
  
           begin
              if First_Time then
*************** package body Exp_Ch4 is
*** 12800,12816 ****
                 New_Rhs := New_Copy_Tree (Rhs);
              end if;
  
              Check :=
                Expand_Composite_Equality
!                 (Outer_Type => Typ, Nod => Nod, Comp_Type => Etype (C),
!                  Lhs =>
!                    Make_Selected_Component (Loc,
!                      Prefix        => New_Lhs,
!                      Selector_Name => New_Occurrence_Of (C, Loc)),
!                  Rhs =>
!                    Make_Selected_Component (Loc,
!                      Prefix        => New_Rhs,
!                      Selector_Name => New_Occurrence_Of (C, Loc)));
  
              --  If some (sub)component is an unchecked_union, the whole
              --  operation will raise program error.
--- 12664,12694 ----
                 New_Rhs := New_Copy_Tree (Rhs);
              end if;
  
+             Lhs_Sel :=
+               Make_Selected_Component (Loc,
+                 Prefix        => New_Lhs,
+                 Selector_Name => New_Occurrence_Of (C, Loc));
+             Rhs_Sel :=
+                Make_Selected_Component (Loc,
+                  Prefix        => New_Rhs,
+                  Selector_Name => New_Occurrence_Of (C, Loc));
+ 
+             --  Generate mutably tagged conversions in case we encounter a
+             --  special class-wide equivalent type.
+ 
+             if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (C)) then
+                C_Typ := Corresponding_Mutably_Tagged_Type (Etype (C));
+                Make_Mutably_Tagged_Conversion (Lhs_Sel, C_Typ);
+                Make_Mutably_Tagged_Conversion (Rhs_Sel, C_Typ);
+             end if;
+ 
              Check :=
                Expand_Composite_Equality
!                 (Outer_Type => Typ,
!                  Nod        => Nod,
!                  Comp_Type  => C_Typ,
!                  Lhs        => Lhs_Sel,
!                  Rhs        => Rhs_Sel);
  
              --  If some (sub)component is an unchecked_union, the whole
              --  operation will raise program error.
*************** package body Exp_Ch4 is
*** 12925,12982 ****
        Shortcut_Ent   : constant Entity_Id := Boolean_Literals (Shortcut_Value);
        --  If Left = Shortcut_Value then Right need not be evaluated
  
-       function Make_Test_Expr (Opnd : Node_Id) return Node_Id;
-       --  For Opnd a boolean expression, return a Boolean expression equivalent
-       --  to Opnd /= Shortcut_Value.
- 
        function Useful (Actions : List_Id) return Boolean;
!       --  Return True if Actions is not empty and contains useful nodes to
!       --  process.
! 
!       --------------------
!       -- Make_Test_Expr --
!       --------------------
! 
!       function Make_Test_Expr (Opnd : Node_Id) return Node_Id is
!       begin
!          if Shortcut_Value then
!             return Make_Op_Not (Sloc (Opnd), Opnd);
!          else
!             return Opnd;
!          end if;
!       end Make_Test_Expr;
  
        ------------
        -- Useful --
        ------------
  
        function Useful (Actions : List_Id) return Boolean is
!          L : Node_Id;
        begin
!          if Present (Actions) then
!             L := First (Actions);
  
!             --  For now "useful" means not N_Variable_Reference_Marker.
!             --  Consider stripping other nodes in the future.
  
!             while Present (L) loop
!                if Nkind (L) /= N_Variable_Reference_Marker then
!                   return True;
!                end if;
  
!                Next (L);
!             end loop;
!          end if;
  
           return False;
        end Useful;
  
-       --  Local variables
- 
-       Op_Var : Entity_Id;
-       --  Entity for a temporary variable holding the value of the operator,
-       --  used for expansion in the case where actions are present.
- 
     --  Start of processing for Expand_Short_Circuit_Operator
  
     begin
--- 12803,12834 ----
        Shortcut_Ent   : constant Entity_Id := Boolean_Literals (Shortcut_Value);
        --  If Left = Shortcut_Value then Right need not be evaluated
  
        function Useful (Actions : List_Id) return Boolean;
!       --  Return True if Actions contains useful nodes to process
  
        ------------
        -- Useful --
        ------------
  
        function Useful (Actions : List_Id) return Boolean is
!          Action : Node_Id;
        begin
!          Action := First (Actions);
  
!          --  For now "useful" means not N_Variable_Reference_Marker. Consider
!          --  stripping other nodes in the future.
  
!          while Present (Action) loop
!             if Nkind (Action) /= N_Variable_Reference_Marker then
!                return True;
!             end if;
  
!             Next (Action);
!          end loop;
  
           return False;
        end Useful;
  
     --  Start of processing for Expand_Short_Circuit_Operator
  
     begin
*************** package body Exp_Ch4 is
*** 13033,13105 ****
        if Useful (Actions (N)) then
           Actlist := Actions (N);
  
!          --  The old approach is to expand:
! 
!          --     left AND THEN right
! 
!          --  into
! 
!          --     C : Boolean := False;
!          --     IF left THEN
!          --        Actions;
!          --        IF right THEN
!          --           C := True;
!          --        END IF;
!          --     END IF;
! 
!          --  and finally rewrite the operator into a reference to C. Similarly
!          --  for left OR ELSE right, with negated values. Note that this
!          --  rewrite causes some difficulties for coverage analysis because
!          --  of the introduction of the new variable C, which obscures the
!          --  structure of the test.
! 
!          --  We use this "old approach" if Minimize_Expression_With_Actions
!          --  is True.
! 
!          if Minimize_Expression_With_Actions then
!             Op_Var := Make_Temporary (Loc, 'C', Related_Node => N);
! 
!             Insert_Action (N,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Op_Var,
!                 Object_Definition   =>
!                   New_Occurrence_Of (Standard_Boolean, Loc),
!                 Expression          =>
!                   New_Occurrence_Of (Shortcut_Ent, Loc)));
! 
!             Append_To (Actlist,
!               Make_Implicit_If_Statement (Right,
!                 Condition       => Make_Test_Expr (Right),
!                 Then_Statements => New_List (
!                   Make_Assignment_Statement (LocR,
!                     Name       => New_Occurrence_Of (Op_Var, LocR),
!                     Expression =>
!                       New_Occurrence_Of
!                         (Boolean_Literals (not Shortcut_Value), LocR)))));
! 
!             Insert_Action (N,
!               Make_Implicit_If_Statement (Left,
!                 Condition       => Make_Test_Expr (Left),
!                 Then_Statements => Actlist));
! 
!             Rewrite (N, New_Occurrence_Of (Op_Var, Loc));
!             Analyze_And_Resolve (N, Standard_Boolean);
! 
!          --  The new approach (the default) is to use an
!          --  Expression_With_Actions node for the right operand of the
!          --  short-circuit form. Note that this solves the traceability
!          --  problems for coverage analysis.
! 
!          else
!             Rewrite (Right,
!               Make_Expression_With_Actions (LocR,
!                 Expression => Relocate_Node (Right),
!                 Actions    => Actlist));
  
!             Set_Actions (N, No_List);
!             Analyze_And_Resolve (Right, Standard_Boolean);
!          end if;
  
           Adjust_Result_Type (N, Typ);
           return;
        end if;
--- 12885,12901 ----
        if Useful (Actions (N)) then
           Actlist := Actions (N);
  
!          --  Use an Expression_With_Actions node for the right operand of the
!          --  short-circuit form. Note that this solves traceability problems
!          --  for coverage analysis at the object level.
  
!          Rewrite (Right,
!            Make_Expression_With_Actions (LocR,
!              Expression => Relocate_Node (Right),
!              Actions    => Actlist));
  
+          Set_Actions (N, No_List);
+          Analyze_And_Resolve (Right, Standard_Boolean);
           Adjust_Result_Type (N, Typ);
           return;
        end if;
*************** package body Exp_Ch4 is
*** 13482,13487 ****
--- 13278,13345 ----
        end if;
     end Get_Size_For_Range;
  
+    -------------------------------------------
+    -- Insert_Conditional_Object_Declaration --
+    -------------------------------------------
+ 
+    procedure Insert_Conditional_Object_Declaration
+      (Obj_Id : Entity_Id;
+       Expr   : Node_Id;
+       Decl   : Node_Id)
+    is
+       Loc      : constant Source_Ptr := Sloc (Expr);
+       Obj_Decl : constant Node_Id :=
+         Make_Object_Declaration (Loc,
+           Defining_Identifier => Obj_Id,
+           Aliased_Present     => Aliased_Present (Decl),
+           Constant_Present    => Constant_Present (Decl),
+           Object_Definition   => New_Copy_Tree (Object_Definition (Decl)),
+           Expression          => Relocate_Node (Expr));
+ 
+       Master_Node_Decl : Node_Id;
+       Master_Node_Id   : Entity_Id;
+ 
+    begin
+       --  If the expression is itself a conditional expression whose
+       --  expansion has been delayed, analyze it again and expand it.
+ 
+       if Is_Delayed_Conditional_Expression (Expression (Obj_Decl)) then
+          Unanalyze_Delayed_Conditional_Expression (Expression (Obj_Decl));
+       end if;
+ 
+       Insert_Action (Expr, Obj_Decl);
+ 
+       --  If the object needs finalization, we need to insert its Master_Node
+       --  manually because 1) the machinery in Exp_Ch7 will not pick it since
+       --  it will be declared in the arm of a conditional statement and 2) we
+       --  cannot invoke Process_Transients_In_Expression on it since it is not
+       --  a transient object (it has the lifetime of the original object).
+ 
+       if Needs_Finalization (Base_Type (Etype (Obj_Id))) then
+          Master_Node_Id := Make_Temporary (Loc, 'N');
+          Master_Node_Decl :=
+            Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id);
+ 
+          --  The master is the innermost enclosing non-transient construct
+ 
+          Insert_Action (Find_Hook_Context (Expr), Master_Node_Decl);
+ 
+          --  Propagate the relaxed finalization semantics
+ 
+          Set_Is_Independent
+            (Master_Node_Id,
+             Has_Relaxed_Finalization (Base_Type (Etype (Obj_Id))));
+ 
+          --  Generate the attachment of the object to the Master_Node
+ 
+          Attach_Object_To_Master_Node (Obj_Decl, Master_Node_Id);
+ 
+          --  Mark the transient object to avoid double finalization
+ 
+          Set_Is_Finalized_Transient (Obj_Id);
+       end if;
+    end Insert_Conditional_Object_Declaration;
+ 
     -------------------------------
     -- Insert_Dereference_Action --
     -------------------------------
*************** package body Exp_Ch4 is
*** 13638,13650 ****
  
        --  The address manipulation is not performed for access types that are
        --  subject to pragma No_Heap_Finalization because the two pointers do
!       --  not exist in the first place.
  
        if No_Heap_Finalization (Ptr_Typ) then
           null;
  
!       elsif Needs_Finalization (Desig_Typ) then
! 
           --  Adjust the address and size of the dereferenced object. Generate:
           --    Adjust_Controlled_Dereference (Addr, Size, Alig);
  
--- 13496,13510 ----
  
        --  The address manipulation is not performed for access types that are
        --  subject to pragma No_Heap_Finalization because the two pointers do
!       --  not exist in the first place. Likewise for designated types that are
!       --  subject to relaxed finalization.
  
        if No_Heap_Finalization (Ptr_Typ) then
           null;
  
!       elsif Needs_Finalization (Desig_Typ)
!         and then not Has_Relaxed_Finalization (Desig_Typ)
!       then
           --  Adjust the address and size of the dereferenced object. Generate:
           --    Adjust_Controlled_Dereference (Addr, Size, Alig);
  
*************** package body Exp_Ch4 is
*** 14026,14040 ****
     --       return C;
     --    end Annn;
  
-    --    or in the case of Transform_Function_Array:
- 
-    --    procedure Annn (A : typ; B: typ; RESULT: out typ) is
-    --    begin
-    --       for J in A'range loop
-    --          RESULT (J) := A (J) op B (J);
-    --       end loop;
-    --    end Annn;
- 
     --  Here typ is the boolean array type
  
     function Make_Boolean_Array_Op
--- 13886,13891 ----
*************** package body Exp_Ch4 is
*** 14060,14070 ****
        Loop_Statement : Node_Id;
  
     begin
!       if Transform_Function_Array then
!          C := Make_Defining_Identifier (Loc, Name_UP_RESULT);
!       else
!          C := Make_Defining_Identifier (Loc, Name_uC);
!       end if;
  
        A_J :=
          Make_Indexed_Component (Loc,
--- 13911,13917 ----
        Loop_Statement : Node_Id;
  
     begin
!       C   := Make_Defining_Identifier (Loc, Name_uC);
  
        A_J :=
          Make_Indexed_Component (Loc,
*************** package body Exp_Ch4 is
*** 14128,14179 ****
            Defining_Identifier => B,
            Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
  
-       if Transform_Function_Array then
-          Append_To (Formals,
-            Make_Parameter_Specification (Loc,
-              Defining_Identifier => C,
-              Out_Present         => True,
-              Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
-       end if;
- 
        Func_Name := Make_Temporary (Loc, 'A');
        Set_Is_Inlined (Func_Name);
  
!       if Transform_Function_Array then
!          Func_Body :=
!            Make_Subprogram_Body (Loc,
!              Specification =>
!                Make_Procedure_Specification (Loc,
!                  Defining_Unit_Name       => Func_Name,
!                  Parameter_Specifications => Formals),
! 
!              Declarations => New_List,
! 
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (Loop_Statement)));
! 
!       else
!          Func_Body :=
!            Make_Subprogram_Body (Loc,
!              Specification =>
!                Make_Function_Specification (Loc,
!                  Defining_Unit_Name       => Func_Name,
!                  Parameter_Specifications => Formals,
!                  Result_Definition        => New_Occurrence_Of (Typ, Loc)),
  
!              Declarations => New_List (
!                Make_Object_Declaration (Loc,
!                  Defining_Identifier => C,
!                  Object_Definition   => New_Occurrence_Of (Typ, Loc))),
  
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (
!                    Loop_Statement,
!                    Make_Simple_Return_Statement (Loc,
!                      Expression => New_Occurrence_Of (C, Loc)))));
!       end if;
  
        return Func_Body;
     end Make_Boolean_Array_Op;
--- 13975,14002 ----
            Defining_Identifier => B,
            Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
  
        Func_Name := Make_Temporary (Loc, 'A');
        Set_Is_Inlined (Func_Name);
  
!       Func_Body :=
!         Make_Subprogram_Body (Loc,
!           Specification =>
!             Make_Function_Specification (Loc,
!               Defining_Unit_Name       => Func_Name,
!               Parameter_Specifications => Formals,
!               Result_Definition        => New_Occurrence_Of (Typ, Loc)),
  
!           Declarations => New_List (
!             Make_Object_Declaration (Loc,
!               Defining_Identifier => C,
!               Object_Definition   => New_Occurrence_Of (Typ, Loc))),
  
!           Handled_Statement_Sequence =>
!             Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => New_List (
!                 Loop_Statement,
!                 Make_Simple_Return_Statement (Loc,
!                   Expression => New_Occurrence_Of (C, Loc)))));
  
        return Func_Body;
     end Make_Boolean_Array_Op;
*************** package body Exp_Ch4 is
*** 14927,14951 ****
           Obj_Id : constant Entity_Id  := Defining_Identifier (Obj_Decl);
  
           Hook_Context : constant Node_Id := Find_Hook_Context (Expr);
!          --  The node on which to insert the hook as an action. This is usually
!          --  the innermost enclosing non-transient construct.
! 
!          Fin_Call    : Node_Id;
!          Hook_Assign : Node_Id;
!          Hook_Clear  : Node_Id;
!          Hook_Decl   : Node_Id;
!          Hook_Insert : Node_Id;
!          Ptr_Decl    : Node_Id;
  
           Fin_Context : Node_Id;
!          --  The node after which to insert the finalization actions of the
!          --  transient object.
  
!       begin
!          pragma Assert (Nkind (Expr) in N_Case_Expression
!                                       | N_Expression_With_Actions
!                                       | N_If_Expression);
  
           --  When the context is a Boolean evaluation, all three nodes capture
           --  the result of their computation in a local temporary:
  
--- 14750,14766 ----
           Obj_Id : constant Entity_Id  := Defining_Identifier (Obj_Decl);
  
           Hook_Context : constant Node_Id := Find_Hook_Context (Expr);
!          --  The node after which to insert deferred finalization actions. This
!          --  is usually the innermost enclosing non-transient construct.
  
           Fin_Context : Node_Id;
!          --  The node after which to insert the finalization actions
  
!          Master_Node_Decl : Node_Id;
!          Master_Node_Id   : Entity_Id;
!          --  Declaration and entity of the Master_Node respectively
  
+       begin
           --  When the context is a Boolean evaluation, all three nodes capture
           --  the result of their computation in a local temporary:
  
*************** package body Exp_Ch4 is
*** 14979,15056 ****
              Fin_Context := Hook_Context;
           end if;
  
!          --  Mark the transient object as successfully processed to avoid
!          --  double finalization.
! 
!          Set_Is_Finalized_Transient (Obj_Id);
! 
!          --  Construct all the pieces necessary to hook and finalize a
!          --  transient object.
! 
!          Build_Transient_Object_Statements
!            (Obj_Decl     => Obj_Decl,
!             Fin_Call     => Fin_Call,
!             Hook_Assign  => Hook_Assign,
!             Hook_Clear   => Hook_Clear,
!             Hook_Decl    => Hook_Decl,
!             Ptr_Decl     => Ptr_Decl,
!             Finalize_Obj => False);
! 
!          --  Add the access type which provides a reference to the transient
!          --  object. Generate:
! 
!          --    type Ptr_Typ is access all Desig_Typ;
! 
!          Insert_Action (Hook_Context, Ptr_Decl);
! 
!          --  Add the temporary which acts as a hook to the transient object.
!          --  Generate:
  
!          --    Hook : Ptr_Id := null;
  
!          Insert_Action (Hook_Context, Hook_Decl);
  
!          --  When the transient object is initialized by an aggregate, the hook
!          --  must capture the object after the last aggregate assignment takes
!          --  place. Only then is the object considered initialized. Generate:
  
!          --    Hook := Ptr_Typ (Obj_Id);
!          --      <or>
!          --    Hook := Obj_Id'Unrestricted_Access;
  
!          if Ekind (Obj_Id) in E_Constant | E_Variable
!            and then Present (Last_Aggregate_Assignment (Obj_Id))
           then
-             Hook_Insert := Last_Aggregate_Assignment (Obj_Id);
- 
-          --  Otherwise the hook seizes the related object immediately
- 
-          else
-             Hook_Insert := Obj_Decl;
-          end if;
- 
-          Insert_After_And_Analyze (Hook_Insert, Hook_Assign);
- 
-          --  When the node is part of a return statement, there is no need to
-          --  insert a finalization call, as the general finalization mechanism
-          --  (see Build_Finalizer) would take care of the transient object on
-          --  subprogram exit. Note that it would also be impossible to insert
-          --  the finalization code after the return statement as this will
-          --  render it unreachable.
- 
-          if Nkind (Fin_Context) = N_Simple_Return_Statement then
              null;
  
!          --  Finalize the hook after the context has been evaluated. Generate:
! 
!          --    if Hook /= null then
!          --       [Deep_]Finalize (Hook.all);
!          --       Hook := null;
!          --    end if;
  
!          --  But the node returned by Find_Hook_Context may be an operator,
!          --  which is not a list member. We must locate the proper node
!          --  in the tree after which to insert the finalization code.
  
           else
              while not Is_List_Member (Fin_Context) loop
--- 14794,14829 ----
              Fin_Context := Hook_Context;
           end if;
  
!          --  Create the declaration of the Master_Node for the object and
!          --  insert it before the context. It will later be picked up by
!          --  the general finalization mechanism (see Build_Finalizer).
  
!          Master_Node_Id := Make_Temporary (Loc, 'N');
!          Master_Node_Decl :=
!            Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id);
!          Insert_Action (Hook_Context, Master_Node_Decl);
  
!          --  Generate the attachment of the object to the Master_Node
  
!          Attach_Object_To_Master_Node (Obj_Decl, Master_Node_Id);
  
!          --  When the node is part of a return statement, there is no need
!          --  to insert a finalization call, as the general finalization
!          --  mechanism (see Build_Finalizer) would take care of the master
!          --  on subprogram exit. Note that it would also be impossible to
!          --  insert the finalization call after the return statement as
!          --  this will render it unreachable.
  
!          if Nkind (Fin_Context) = N_Simple_Return_Statement
!            or else Nkind (Parent (Expr)) = N_Simple_Return_Statement
           then
              null;
  
!          --  Finalize the object after the context has been evaluated
  
!          --  Note that the node returned by Find_Hook_Context above may be an
!          --  operator, which is not a list member. We must locate the proper
!          --  node in the tree after which to insert the finalization call.
  
           else
              while not Is_List_Member (Fin_Context) loop
*************** package body Exp_Ch4 is
*** 15060,15076 ****
              pragma Assert (Present (Fin_Context));
  
              Insert_Action_After (Fin_Context,
!               Make_Implicit_If_Statement (Obj_Decl,
!                 Condition =>
!                   Make_Op_Ne (Loc,
!                     Left_Opnd  =>
!                       New_Occurrence_Of (Defining_Entity (Hook_Decl), Loc),
!                    Right_Opnd => Make_Null (Loc)),
! 
!                 Then_Statements => New_List (
!                  Fin_Call,
!                   Hook_Clear)));
           end if;
        end Process_Transient_In_Expression;
  
        --  Local variables
--- 14833,14844 ----
              pragma Assert (Present (Fin_Context));
  
              Insert_Action_After (Fin_Context,
!               Make_Finalize_Call_For_Node (Loc, Master_Node_Id));
           end if;
+ 
+          --  Mark the transient object to avoid double finalization
+ 
+          Set_Is_Finalized_Transient (Obj_Id);
        end Process_Transient_In_Expression;
  
        --  Local variables
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch4.ads gcc-15.1.0/gcc/ada/exp_ch4.ads
*** gcc-14.2.0/gcc/ada/exp_ch4.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch4.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch4 is
*** 71,79 ****
     procedure Expand_N_Selected_Component          (N : Node_Id);
     procedure Expand_N_Slice                       (N : Node_Id);
     procedure Expand_N_Type_Conversion             (N : Node_Id);
-    procedure Expand_N_Unchecked_Expression        (N : Node_Id);
     procedure Expand_N_Unchecked_Type_Conversion   (N : Node_Id);
  
     function Build_Eq_Call
       (Typ : Entity_Id;
        Loc : Source_Ptr;
--- 71,87 ----
     procedure Expand_N_Selected_Component          (N : Node_Id);
     procedure Expand_N_Slice                       (N : Node_Id);
     procedure Expand_N_Type_Conversion             (N : Node_Id);
     procedure Expand_N_Unchecked_Type_Conversion   (N : Node_Id);
  
+    function Build_Cleanup_For_Allocator
+      (Loc     : Source_Ptr;
+       Obj_Id  : Entity_Id;
+       Pool    : Entity_Id;
+       Actions : List_Id) return Node_Id;
+    --  Build a cleanup for the list of Actions that will deallocate the memory
+    --  allocated in Pool and designated by Obj_Id if the execution of Actions
+    --  raises an exception.
+ 
     function Build_Eq_Call
       (Typ : Entity_Id;
        Loc : Source_Ptr;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch5.adb gcc-15.1.0/gcc/ada/exp_ch5.adb
*** gcc-14.2.0/gcc/ada/exp_ch5.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch5.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Pakd;       use Exp_Pakd;
*** 41,46 ****
--- 41,47 ----
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
  with Inline;         use Inline;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Exp_Ch5 is
*** 195,203 ****
     function Make_Tag_Ctrl_Assignment (N : Node_Id) return List_Id;
     --  Generate the necessary code for controlled and tagged assignment, that
     --  is to say, finalization of the target before, adjustment of the target
!    --  after and save and restore of the tag and finalization pointers which
!    --  are not 'part of the value' and must not be changed upon assignment. N
!    --  is the original Assignment node.
  
     --------------------------------------
     -- Build_Formal_Container_Iteration --
--- 196,209 ----
     function Make_Tag_Ctrl_Assignment (N : Node_Id) return List_Id;
     --  Generate the necessary code for controlled and tagged assignment, that
     --  is to say, finalization of the target before, adjustment of the target
!    --  after, and save and restore of the tag. N is the original assignment.
! 
!    --  Note that the function relocates N and adds it to the list result, which
!    --  means that the subtrees of N are effectively detached from the main tree
!    --  until after the list result is inserted into it. That's why inserting
!    --  actions in them and, in particular, removing side effects will not work
!    --  properly. Therefore, this must be done before invoking the function, and
!    --  it assumes that side effects have been removed from the Name of N.
  
     --------------------------------------
     -- Build_Formal_Container_Iteration --
*************** package body Exp_Ch5 is
*** 339,345 ****
        Lhs : constant Node_Id := Name (N);
  
        Act_Lhs : constant Node_Id := Get_Referenced_Object (Lhs);
!       Act_Rhs : Node_Id          := Get_Referenced_Object (Rhs);
  
        L_Type : constant Entity_Id :=
                   Underlying_Type (Get_Actual_Subtype (Act_Lhs));
--- 345,351 ----
        Lhs : constant Node_Id := Name (N);
  
        Act_Lhs : constant Node_Id := Get_Referenced_Object (Lhs);
!       Act_Rhs : constant Node_Id := Get_Referenced_Object (Rhs);
  
        L_Type : constant Entity_Id :=
                   Underlying_Type (Get_Actual_Subtype (Act_Lhs));
*************** package body Exp_Ch5 is
*** 514,527 ****
           Set_Backwards_OK (N, False);
        end if;
  
!       --  We certainly must use a loop for change of representation and also
!       --  we use the operand of the conversion on the right-hand side as the
!       --  effective right-hand side (the component types must match in this
!       --  situation).
  
        if Crep then
-          Act_Rhs := Get_Referenced_Object (Rhs);
-          R_Type  := Get_Actual_Subtype (Act_Rhs);
           Loop_Required := True;
  
        --  We require a loop if either side is possibly bit aligned
--- 520,528 ----
           Set_Backwards_OK (N, False);
        end if;
  
!       --  We certainly must use a loop for change of representation
  
        if Crep then
           Loop_Required := True;
  
        --  We require a loop if either side is possibly bit aligned
*************** package body Exp_Ch5 is
*** 533,541 ****
           Loop_Required := True;
  
        --  Arrays with controlled components are expanded into a loop to force
!       --  calls to Adjust at the component level.
  
        elsif Has_Controlled_Component (L_Type) then
           Loop_Required := True;
  
        --  If object is full access, we cannot tolerate a loop
--- 534,547 ----
           Loop_Required := True;
  
        --  Arrays with controlled components are expanded into a loop to force
!       --  calls to Adjust at the component level, except for a function call
!       --  that requires no controlling actions (see Expand_Ctrl_Function_Call).
  
        elsif Has_Controlled_Component (L_Type) then
+          if Nkind (Rhs) = N_Function_Call and then No_Ctrl_Actions (N) then
+             return;
+          end if;
+ 
           Loop_Required := True;
  
        --  If object is full access, we cannot tolerate a loop
*************** package body Exp_Ch5 is
*** 986,993 ****
  
           elsif Restriction_Active (No_Implicit_Conditionals) then
              declare
!                   T : constant Entity_Id :=
!                         Make_Defining_Identifier (Loc, Chars => Name_T);
  
              begin
                 Rewrite (N,
--- 992,999 ----
  
           elsif Restriction_Active (No_Implicit_Conditionals) then
              declare
!                T : constant Entity_Id :=
!                   Make_Defining_Identifier (Loc, Chars => Name_T);
  
              begin
                 Rewrite (N,
*************** package body Exp_Ch5 is
*** 2398,2405 ****
        Lhs  : constant Node_Id    := Name (N);
        Loc  : constant Source_Ptr := Sloc (N);
        Rhs  : constant Node_Id    := Expression (N);
!       Typ  : constant Entity_Id  := Underlying_Type (Etype (Lhs));
!       Exp  : Node_Id;
  
     begin
        --  Special case to check right away, if the Componentwise_Assignment
--- 2404,2417 ----
        Lhs  : constant Node_Id    := Name (N);
        Loc  : constant Source_Ptr := Sloc (N);
        Rhs  : constant Node_Id    := Expression (N);
! 
!       --  Obtain the relevant corresponding mutably tagged type if necessary
! 
!       Typ  : constant Entity_Id :=
!         Get_Corresponding_Mutably_Tagged_Type_If_Present
!           (Underlying_Type (Etype (Lhs)));
! 
!       Exp : Node_Id;
  
     begin
        --  Special case to check right away, if the Componentwise_Assignment
*************** package body Exp_Ch5 is
*** 2776,2782 ****
                 Apply_Discriminant_Check (Rhs, Typ, Lhs);
              end if;
  
!          elsif Is_Array_Type (Typ) and then Is_Constrained (Typ) then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
              if not Suppress_Assignment_Checks (N) then
--- 2788,2796 ----
                 Apply_Discriminant_Check (Rhs, Typ, Lhs);
              end if;
  
!          elsif Is_Array_Type (Typ) and then
!            (Is_Constrained (Typ) or else Is_Mutably_Tagged_Conversion (Lhs))
!          then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
              if not Suppress_Assignment_Checks (N) then
*************** package body Exp_Ch5 is
*** 2959,2977 ****
          or else (Needs_Finalization (Typ) and then not Is_Array_Type (Typ))
        then
           Tagged_Case : declare
!             L                   : List_Id := No_List;
!             Expand_Ctrl_Actions : constant Boolean
!                                     := not No_Ctrl_Actions (N)
!                                          and then not No_Finalize_Actions (N);
! 
!          begin
!             --  In the controlled case, we ensure that function calls are
!             --  evaluated before finalizing the target. In all cases, it makes
!             --  the expansion easier if the side effects are removed first.
  
!             Remove_Side_Effects (Lhs);
!             Remove_Side_Effects (Rhs);
  
              --  Avoid recursion in the mechanism
  
              Set_Analyzed (N);
--- 2973,2985 ----
          or else (Needs_Finalization (Typ) and then not Is_Array_Type (Typ))
        then
           Tagged_Case : declare
!             Expand_Ctrl_Actions : constant Boolean :=
!               not No_Ctrl_Actions (N)
!                 and then not No_Finalize_Actions (N);
  
!             L :  List_Id := No_List;
  
+          begin
              --  Avoid recursion in the mechanism
  
              Set_Analyzed (N);
*************** package body Exp_Ch5 is
*** 3072,3084 ****
                                       Attribute_Name => Name_Address)));
                          end if;
  
!                         Append_To (L,
!                           Make_Raise_Constraint_Error (Loc,
!                             Condition =>
!                               Make_Op_Ne (Loc,
!                                 Left_Opnd  => Lhs_Tag,
!                                 Right_Opnd => Rhs_Tag),
!                             Reason    => CE_Tag_Check_Failed));
                       end;
                    end if;
  
--- 3080,3143 ----
                                       Attribute_Name => Name_Address)));
                          end if;
  
!                         --  Handle assignment to a mutably tagged type
! 
!                         if Is_Mutably_Tagged_Conversion (Lhs)
!                           or else Is_Mutably_Tagged_Type (Typ)
!                           or else Is_Mutably_Tagged_Type (Etype (Lhs))
!                         then
!                            --  Create a tag check when we have the extra
!                            --  constrained formal and it is true (meaning we
!                            --  are not dealing with a mutably tagged object).
! 
!                            if Is_Entity_Name (Name (N))
!                              and then Is_Formal (Entity (Name (N)))
!                              and then Present
!                                         (Extra_Constrained (Entity (Name (N))))
!                            then
!                               Append_To (L,
!                                 Make_If_Statement (Loc,
!                                   Condition       =>
!                                     New_Occurrence_Of
!                                       (Extra_Constrained
!                                         (Entity (Name (N))), Loc),
!                                   Then_Statements => New_List (
!                                     Make_Raise_Constraint_Error (Loc,
!                                       Condition =>
!                                         Make_Op_Ne (Loc,
!                                           Left_Opnd  => Lhs_Tag,
!                                           Right_Opnd => Rhs_Tag),
!                                       Reason    => CE_Tag_Check_Failed))));
!                            end if;
! 
!                            --  Generate a tag assignment before the actual
!                            --  assignment so we dispatch to the proper
!                            --  assign version.
! 
!                            Append_To (L,
!                              Make_Assignment_Statement (Loc,
!                                Name       =>
!                                Make_Selected_Component (Loc,
!                                  Prefix        => Duplicate_Subexpr (Lhs),
!                                  Selector_Name =>
!                                    Make_Identifier (Loc, Name_uTag)),
!                              Expression =>
!                                Make_Selected_Component (Loc,
!                                  Prefix        => Duplicate_Subexpr (Rhs),
!                                  Selector_Name =>
!                                    Make_Identifier (Loc, Name_uTag))));
! 
!                         --  Otherwise generate a normal tag check
! 
!                         else
!                            Append_To (L,
!                              Make_Raise_Constraint_Error (Loc,
!                                Condition =>
!                                  Make_Op_Ne (Loc,
!                                    Left_Opnd  => Lhs_Tag,
!                                    Right_Opnd => Rhs_Tag),
!                                Reason    => CE_Tag_Check_Failed));
!                         end if;
                       end;
                    end if;
  
*************** package body Exp_Ch5 is
*** 3107,3156 ****
                    end;
                 end;
  
              else
!                L := Make_Tag_Ctrl_Assignment (N);
  
!                --  We can't afford to have destructive Finalization Actions in
!                --  the Self assignment case, so if the target and the source
!                --  are not obviously different, code is generated to avoid the
!                --  self assignment case:
  
!                --    if lhs'address /= rhs'address then
!                --       <code for controlled and/or tagged assignment>
!                --    end if;
  
!                --  Skip this if Restriction (No_Finalization) is active
  
!                if not Statically_Different (Lhs, Rhs)
!                  and then Expand_Ctrl_Actions
!                  and then not Restriction_Active (No_Finalization)
!                then
!                   L := New_List (
!                     Make_Implicit_If_Statement (N,
!                       Condition =>
!                         Make_Op_Ne (Loc,
!                           Left_Opnd =>
!                             Make_Attribute_Reference (Loc,
!                               Prefix         => Duplicate_Subexpr (Lhs),
!                               Attribute_Name => Name_Address),
  
!                            Right_Opnd =>
!                             Make_Attribute_Reference (Loc,
!                               Prefix         => Duplicate_Subexpr (Rhs),
!                               Attribute_Name => Name_Address)),
  
!                       Then_Statements => L));
!                end if;
  
!                --  We need to set up an exception handler for implementing
!                --  7.6.1(18). The remaining adjustments are tackled by the
!                --  implementation of adjust for record_controllers (see
!                --  s-finimp.adb).
  
!                --  This is skipped if we have no finalization
  
                 if Expand_Ctrl_Actions
                   and then not Restriction_Active (No_Finalization)
                 then
                    L := New_List (
                      Make_Block_Statement (Loc,
--- 3166,3243 ----
                    end;
                 end;
  
+             --  Untagged case
+ 
              else
!                declare
!                   Needs_Self_Protection : constant Boolean :=
!                     Expand_Ctrl_Actions
!                       and then not Restriction_Active (No_Finalization)
!                       and then not Statically_Different (Lhs, Rhs);
!                   --  We can't afford to have destructive finalization actions
!                   --  in the self-assignment case, so if the target and source
!                   --  are not obviously different, we generate code to avoid
!                   --  the self-assignment case altogether.
  
!                begin
!                   --  See the description of Make_Tag_Ctrl_Assignment
  
!                   Remove_Side_Effects (Lhs);
  
!                   --  Logically we would only need to remove side effects from
!                   --  the RHS when the protection against self-assignment will
!                   --  be generated below. However, in some very specific cases
!                   --  like Present (Unqual_BIP_Iface_Function_Call (Rhs)), the
!                   --  creation of the temporary is necessary to enable further
!                   --  expansion of the RHS. Therefore, we take a conservative
!                   --  stance and always do it for the time being, except when
!                   --  Expand_Ctrl_Function_Call does not do it either.
  
!                   if Nkind (Rhs) = N_Function_Call
!                     and then No_Ctrl_Actions (N)
!                   then
!                      --  We should not need protection against self-assignment
!                      --  in the case of a function call
  
!                      pragma Assert (not Needs_Self_Protection);
  
!                   else
!                      Remove_Side_Effects (Rhs);
!                   end if;
  
!                   L := Make_Tag_Ctrl_Assignment (N);
  
!                   --  Generate:
!                   --    if Lhs'Address /= Rhs'Address then
!                   --       <code for controlled and/or tagged assignment>
!                   --    end if;
! 
!                   if Needs_Self_Protection then
!                      L := New_List (
!                        Make_Implicit_If_Statement (N,
!                          Condition =>
!                            Make_Op_Ne (Loc,
!                              Left_Opnd =>
!                                Make_Attribute_Reference (Loc,
!                                  Prefix         => New_Copy_Tree (Lhs),
!                                  Attribute_Name => Name_Address),
! 
!                              Right_Opnd =>
!                                Make_Attribute_Reference (Loc,
!                                  Prefix         => New_Copy_Tree (Rhs),
!                                  Attribute_Name => Name_Address)),
! 
!                          Then_Statements => L));
!                   end if;
!                end;
! 
!                --  We need to set up an exception handler for implementing
!                --  7.6.1(18), but this is skipped if the type has relaxed
!                --  semantics for finalization.
  
                 if Expand_Ctrl_Actions
                   and then not Restriction_Active (No_Finalization)
+                  and then not Has_Relaxed_Finalization (Typ)
                 then
                    L := New_List (
                      Make_Block_Statement (Loc,
*************** package body Exp_Ch5 is
*** 3162,3172 ****
                 end if;
              end if;
  
              --  We will analyze the block statement with all checks suppressed
              --  below, but we need elaboration checks for the primitives in the
              --  case of an assignment created by the expansion of an aggregate.
  
!             if No_Finalize_Actions (N) then
                 Rewrite (N,
                   Make_Unsuppress_Block (Loc, Name_Elaboration_Check, L));
  
--- 3249,3264 ----
                 end if;
              end if;
  
+             --  No need for a block if there are no controlling actions
+ 
+             if No_Ctrl_Actions (N) and then List_Length (L) = 1 then
+                Rewrite (N, Remove_Head (L));
+ 
              --  We will analyze the block statement with all checks suppressed
              --  below, but we need elaboration checks for the primitives in the
              --  case of an assignment created by the expansion of an aggregate.
  
!             elsif No_Finalize_Actions (N) then
                 Rewrite (N,
                   Make_Unsuppress_Block (Loc, Name_Elaboration_Check, L));
  
*************** package body Exp_Ch5 is
*** 3185,3213 ****
                and then Abort_Allowed
              then
                 declare
-                   Blk : constant Entity_Id :=
-                           New_Internal_Entity
-                             (E_Block, Current_Scope, Sloc (N), 'B');
                    AUD : constant Entity_Id := RTE (RE_Abort_Undefer_Direct);
  
                 begin
                    Set_Is_Abort_Block (N);
! 
!                   Set_Scope (Blk, Current_Scope);
!                   Set_Etype (Blk, Standard_Void_Type);
!                   Set_Identifier (N, New_Occurrence_Of (Blk, Sloc (N)));
  
                    Prepend_To (L, Build_Runtime_Call (Loc, RE_Abort_Defer));
-                   Set_At_End_Proc (Handled_Statement_Sequence (N),
-                     New_Occurrence_Of (AUD, Loc));
  
!                   --  Present the Abort_Undefer_Direct function to the backend
!                   --  so that it can inline the call to the function.
  
!                   Add_Inlined_Body (AUD, N);
  
!                   Expand_At_End_Handler
!                     (Handled_Statement_Sequence (N), Blk);
                 end;
              end if;
  
--- 3277,3308 ----
                and then Abort_Allowed
              then
                 declare
                    AUD : constant Entity_Id := RTE (RE_Abort_Undefer_Direct);
+                   HSS : constant Node_Id   := Handled_Statement_Sequence (N);
+ 
+                   Blk_Id : Entity_Id;
  
                 begin
                    Set_Is_Abort_Block (N);
!                   Add_Block_Identifier (N, Blk_Id);
  
                    Prepend_To (L, Build_Runtime_Call (Loc, RE_Abort_Defer));
  
!                   --  Like above, no need to deal with exception propagation
!                   --  if the type has relaxed semantics for finalization.
  
!                   if Has_Relaxed_Finalization (Typ) then
!                      Append_To (L, Build_Runtime_Call (Loc, RE_Abort_Undefer));
  
!                   else
!                      Set_At_End_Proc (HSS, New_Occurrence_Of (AUD, Loc));
!                      Expand_At_End_Handler (HSS, Blk_Id);
! 
!                      --  Present Abort_Undefer_Direct procedure to the back end
!                      --  so that it can inline the call to the procedure.
! 
!                      Add_Inlined_Body (AUD, N);
!                   end if;
                 end;
              end if;
  
*************** package body Exp_Ch5 is
*** 3222,3227 ****
--- 3317,3326 ----
        --  Array types
  
        elsif Is_Array_Type (Typ) then
+          --  We use the operand of a conversion on the right-hand side as the
+          --  effective right-hand side (the component types must match in this
+          --  situation).
+ 
           declare
              Actual_Rhs : Node_Id := Rhs;
  
*************** package body Exp_Ch5 is
*** 3730,3737 ****
                       pragma Assert (No (Expressions (Pattern)));
  
                       declare
!                         Component_Assoc : Node_Id
!                           := First (Component_Associations (Pattern));
                          Choice : Node_Id;
  
                          function Subobject return Node_Id is
--- 3829,3836 ----
                       pragma Assert (No (Expressions (Pattern)));
  
                       declare
!                         Component_Assoc : Node_Id :=
!                           First (Component_Associations (Pattern));
                          Choice : Node_Id;
  
                          function Subobject return Node_Id is
*************** package body Exp_Ch5 is
*** 4394,4399 ****
--- 4493,4510 ----
        Reinit_Field_To_Zero (Init_Name, F_SPARK_Pragma_Inherited);
        Mutate_Ekind (Init_Name, E_Loop_Parameter);
  
+       --  Wrap the block statements with the condition specified in the
+       --  iterator filter when one is present.
+ 
+       if Present (Iterator_Filter (I_Spec)) then
+          pragma Assert (Ada_Version >= Ada_2022);
+          Set_Statements (Handled_Statement_Sequence (N),
+             New_List (Make_If_Statement (Loc,
+               Condition => Iterator_Filter (I_Spec),
+               Then_Statements =>
+                 Statements (Handled_Statement_Sequence (N)))));
+       end if;
+ 
        --  The cursor was marked as a loop parameter to prevent user assignments
        --  to it, however this renders the advancement step illegal as it is not
        --  possible to change the value of a constant. Flag the advancement step
*************** package body Exp_Ch5 is
*** 4436,4441 ****
--- 4547,4553 ----
        Advance   : Node_Id;
        Init      : Node_Id;
        New_Loop  : Node_Id;
+       Block     : Node_Id;
  
     begin
        --  For an element iterator, the Element aspect must be present,
*************** package body Exp_Ch5 is
*** 4456,4462 ****
  
        Build_Formal_Container_Iteration
          (N, Container, Cursor, Init, Advance, New_Loop);
-       Append_To (Stats, Advance);
  
        Mutate_Ekind (Cursor, E_Variable);
        Insert_Action (N, Init);
--- 4568,4573 ----
*************** package body Exp_Ch5 is
*** 4481,4493 ****
              Convert_To_Iterable_Type (Container, Loc),
              New_Occurrence_Of (Cursor, Loc))));
  
!       Set_Statements (New_Loop,
!         New_List
!           (Make_Block_Statement (Loc,
!              Declarations => New_List (Elmt_Decl),
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => Stats))));
  
        --  The element is only modified in expanded code, so it appears as
        --  unassigned to the warning machinery. We must suppress this spurious
--- 4592,4621 ----
              Convert_To_Iterable_Type (Container, Loc),
              New_Occurrence_Of (Cursor, Loc))));
  
!       Block :=
!         Make_Block_Statement (Loc,
!           Declarations => New_List (Elmt_Decl),
!           Handled_Statement_Sequence =>
!             Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => Stats));
! 
!       --  Wrap the block statements with the condition specified in the
!       --  iterator filter when one is present.
! 
!       if Present (Iterator_Filter (I_Spec)) then
!          pragma Assert (Ada_Version >= Ada_2022);
!          Set_Statements (Handled_Statement_Sequence (Block),
!             New_List (
!               Make_If_Statement (Loc,
!                 Condition       => Iterator_Filter (I_Spec),
!                 Then_Statements =>
!                   Statements (Handled_Statement_Sequence (Block))),
!               Advance));
!       else
!          Append_To (Stats, Advance);
!       end if;
! 
!       Set_Statements (New_Loop, New_List (Block));
  
        --  The element is only modified in expanded code, so it appears as
        --  unassigned to the warning machinery. We must suppress this spurious
*************** package body Exp_Ch5 is
*** 5322,5331 ****
  
              Ent := First_Entity (Cont_Type_Pack);
              while Present (Ent) loop
                 --  Get_Element_Access function with one parameter called
                 --  Position.
  
!                if Chars (Ent) = Name_Get_Element_Access
                   and then Ekind (Ent) = E_Function
                   and then Present (First_Formal (Ent))
                   and then Chars (First_Formal (Ent)) = Name_Position
--- 5450,5465 ----
  
              Ent := First_Entity (Cont_Type_Pack);
              while Present (Ent) loop
+ 
+                --  Ignore subprogram bodies
+ 
+                if Ekind (Ent) = E_Subprogram_Body then
+                   null;
+ 
                 --  Get_Element_Access function with one parameter called
                 --  Position.
  
!                elsif Chars (Ent) = Name_Get_Element_Access
                   and then Ekind (Ent) = E_Function
                   and then Present (First_Formal (Ent))
                   and then Chars (First_Formal (Ent)) = Name_Position
*************** package body Exp_Ch5 is
*** 6237,6243 ****
     ------------------------------
  
     function Make_Tag_Ctrl_Assignment (N : Node_Id) return List_Id is
-       Asn : constant Node_Id    := Relocate_Node (N);
        L   : constant Node_Id    := Name (N);
        Loc : constant Source_Ptr := Sloc (N);
        Res : constant List_Id    := New_List;
--- 6371,6376 ----
*************** package body Exp_Ch5 is
*** 6260,6268 ****
--- 6393,6404 ----
                                         and then Tagged_Type_Expansion;
        Adj_Call : Node_Id;
        Fin_Call : Node_Id;
+       New_N    : Node_Id;
        Tag_Id   : Entity_Id;
  
     begin
+       pragma Assert (Side_Effect_Free (L));
+ 
        --  Finalize the target of the assignment when controlled
  
        --  We have two exceptions here:
*************** package body Exp_Ch5 is
*** 6294,6302 ****
  
        else
           Fin_Call :=
!            Make_Final_Call
!              (Obj_Ref => Duplicate_Subexpr_No_Checks (L),
!               Typ     => Etype (L));
  
           if Present (Fin_Call) then
              Append_To (Res, Fin_Call);
--- 6430,6436 ----
  
        else
           Fin_Call :=
!            Make_Final_Call (Obj_Ref => New_Copy_Tree (L), Typ => Etype (L));
  
           if Present (Fin_Call) then
              Append_To (Res, Fin_Call);
*************** package body Exp_Ch5 is
*** 6314,6320 ****
               Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
               Expression          =>
                 Make_Selected_Component (Loc,
!                  Prefix        => Duplicate_Subexpr_No_Checks (L),
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc))));
  
--- 6448,6454 ----
               Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
               Expression          =>
                 Make_Selected_Component (Loc,
!                  Prefix        => New_Copy_Tree (L),
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc))));
  
*************** package body Exp_Ch5 is
*** 6329,6340 ****
        --  generate the proper code and propagate this scenario by setting a
        --  flag to avoid infinite recursion.
  
        if Comp_Asn then
!          Set_Analyzed (Asn, False);
!          Set_Componentwise_Assignment (Asn, True);
        end if;
  
!       Append_To (Res, Asn);
  
        --  Restore the tag
  
--- 6463,6476 ----
        --  generate the proper code and propagate this scenario by setting a
        --  flag to avoid infinite recursion.
  
+       New_N := Relocate_Node (N);
+ 
        if Comp_Asn then
!          Set_Analyzed (New_N, False);
!          Set_Componentwise_Assignment (New_N, True);
        end if;
  
!       Append_To (Res, New_N);
  
        --  Restore the tag
  
*************** package body Exp_Ch5 is
*** 6343,6349 ****
             Make_Assignment_Statement (Loc,
               Name       =>
                 Make_Selected_Component (Loc,
!                  Prefix        => Duplicate_Subexpr_No_Checks (L),
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc)),
               Expression => New_Occurrence_Of (Tag_Id, Loc)));
--- 6479,6485 ----
             Make_Assignment_Statement (Loc,
               Name       =>
                 Make_Selected_Component (Loc,
!                  Prefix        => New_Copy_Tree (L),
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc)),
               Expression => New_Occurrence_Of (Tag_Id, Loc)));
*************** package body Exp_Ch5 is
*** 6352,6359 ****
  
        elsif Set_Tag then
           Append_To (Res,
!            Make_Tag_Assignment_From_Type
!              (Loc, Duplicate_Subexpr_No_Checks (L), T));
        end if;
  
        --  Adjust the target after the assignment when controlled (not in the
--- 6488,6494 ----
  
        elsif Set_Tag then
           Append_To (Res,
!            Make_Tag_Assignment_From_Type (Loc, New_Copy_Tree (L), T));
        end if;
  
        --  Adjust the target after the assignment when controlled (not in the
*************** package body Exp_Ch5 is
*** 6361,6369 ****
  
        if Ctrl_Act or else Adj_Act then
           Adj_Call :=
!            Make_Adjust_Call
!              (Obj_Ref => Duplicate_Subexpr_Move_Checks (L),
!               Typ     => Etype (L));
  
           if Present (Adj_Call) then
              Append_To (Res, Adj_Call);
--- 6496,6502 ----
  
        if Ctrl_Act or else Adj_Act then
           Adj_Call :=
!            Make_Adjust_Call (Obj_Ref => New_Copy_Tree (L), Typ => Etype (L));
  
           if Present (Adj_Call) then
              Append_To (Res, Adj_Call);
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch5.ads gcc-15.1.0/gcc/ada/exp_ch5.ads
*** gcc-14.2.0/gcc/ada/exp_ch5.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch5.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch6.adb gcc-15.1.0/gcc/ada/exp_ch6.adb
*** gcc-14.2.0/gcc/ada/exp_ch6.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch6.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sinfo.Utils;    use Sinfo.Utils;
*** 78,84 ****
  with Sinput;         use Sinput;
  with Snames;         use Snames;
  with Stand;          use Stand;
- with Stringt;        use Stringt;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
  with Validsw;        use Validsw;
--- 78,83 ----
*************** package body Exp_Ch6 is
*** 128,139 ****
  
     --  Suffixes for Build-In-Place extra formals
  
!    BIP_Alloc_Suffix               : constant String := "BIPalloc";
!    BIP_Storage_Pool_Suffix        : constant String := "BIPstoragepool";
!    BIP_Finalization_Master_Suffix : constant String := "BIPfinalizationmaster";
!    BIP_Task_Master_Suffix         : constant String := "BIPtaskmaster";
!    BIP_Activation_Chain_Suffix    : constant String := "BIPactivationchain";
!    BIP_Object_Access_Suffix       : constant String := "BIPaccess";
  
     -----------------------
     -- Local Subprograms --
--- 127,138 ----
  
     --  Suffixes for Build-In-Place extra formals
  
!    BIP_Alloc_Suffix            : constant String := "BIPalloc";
!    BIP_Storage_Pool_Suffix     : constant String := "BIPstoragepool";
!    BIP_Collection_Suffix       : constant String := "BIPcollection";
!    BIP_Task_Master_Suffix      : constant String := "BIPtaskmaster";
!    BIP_Activation_Chain_Suffix : constant String := "BIPactivationchain";
!    BIP_Object_Access_Suffix    : constant String := "BIPaccess";
  
     -----------------------
     -- Local Subprograms --
*************** package body Exp_Ch6 is
*** 157,180 ****
        Function_Id    : Entity_Id;
        Alloc_Form     : BIP_Allocation_Form := Unspecified;
        Alloc_Form_Exp : Node_Id             := Empty;
!       Pool_Actual    : Node_Id             := Make_Null (No_Location));
!    --  Ada 2005 (AI-318-02): Add the actuals needed for a build-in-place
!    --  function call that returns a caller-unknown-size result (BIP_Alloc_Form
!    --  and BIP_Storage_Pool). If Alloc_Form_Exp is present, then use it,
     --  otherwise pass a literal corresponding to the Alloc_Form parameter
!    --  (which must not be Unspecified in that case). Pool_Actual is the
!    --  parameter to pass to BIP_Storage_Pool.
  
!    procedure Add_Finalization_Master_Actual_To_Build_In_Place_Call
!      (Func_Call  : Node_Id;
!       Func_Id    : Entity_Id;
!       Ptr_Typ    : Entity_Id := Empty;
!       Master_Exp : Node_Id   := Empty);
     --  Ada 2005 (AI-318-02): If the result type of a build-in-place call needs
     --  finalization actions, add an actual parameter which is a pointer to the
!    --  finalization master of the caller. If Master_Exp is not Empty, then that
!    --  will be passed as the actual. Otherwise, if Ptr_Typ is left Empty, this
!    --  will result in an automatic "null" value for the actual.
  
     procedure Add_Task_Actuals_To_Build_In_Place_Call
       (Function_Call : Node_Id;
--- 156,179 ----
        Function_Id    : Entity_Id;
        Alloc_Form     : BIP_Allocation_Form := Unspecified;
        Alloc_Form_Exp : Node_Id             := Empty;
!       Pool_Exp       : Node_Id             := Empty);
!    --  Ada 2005 (AI-318-02): If the result type of a build-in-place call needs
!    --  them, add the actuals parameters BIP_Alloc_Form and BIP_Storage_Pool.
!    --  If Alloc_Form_Exp is present, then pass it for the first parameter,
     --  otherwise pass a literal corresponding to the Alloc_Form parameter
!    --  (which must not be Unspecified in that case). If Pool_Exp is present,
!    --  then use it for BIP_Storage_Pool, otherwise pass "null".
  
!    procedure Add_Collection_Actual_To_Build_In_Place_Call
!      (Function_Call  : Node_Id;
!       Function_Id    : Entity_Id;
!       Ptr_Typ        : Entity_Id := Empty;
!       Collection_Exp : Node_Id   := Empty);
     --  Ada 2005 (AI-318-02): If the result type of a build-in-place call needs
     --  finalization actions, add an actual parameter which is a pointer to the
!    --  collection of the access type used by the caller. If Collection_Exp is
!    --  present, then that will be passed as the actual. Otherwise, if Ptr_Typ
!    --  is Empty, this will result in an automatic "null" value for the actual.
  
     procedure Add_Task_Actuals_To_Build_In_Place_Call
       (Function_Call : Node_Id;
*************** package body Exp_Ch6 is
*** 194,203 ****
     --  the activation Chain. Note: Master_Actual can be Empty, but only if
     --  there are no tasks.
  
-    function Build_Flag_For_Function (Func_Id : Entity_Id) return Entity_Id;
-    --  Generate code to declare a boolean flag initialized to False in the
-    --  function Func_Id and return the entity for the flag.
- 
     function Caller_Known_Size
       (Func_Call   : Node_Id;
        Result_Subt : Entity_Id) return Boolean;
--- 193,198 ----
*************** package body Exp_Ch6 is
*** 286,295 ****
     --  Does the main work of Expand_Call. Post_Call is as for Expand_Actuals.
  
     procedure Expand_Ctrl_Function_Call (N : Node_Id; Use_Sec_Stack : Boolean);
!    --  N is a function call which returns a controlled object. Transform the
     --  call into a temporary which retrieves the returned object from the
     --  primary or secondary stack (Use_Sec_Stack says which) using 'reference.
  
     procedure Expand_Non_Function_Return (N : Node_Id);
     --  Expand a simple return statement found in a procedure body, entry body,
     --  accept statement, or an extended return statement. Note that all non-
--- 281,297 ----
     --  Does the main work of Expand_Call. Post_Call is as for Expand_Actuals.
  
     procedure Expand_Ctrl_Function_Call (N : Node_Id; Use_Sec_Stack : Boolean);
!    --  N is a function call that returns a controlled object. Transform the
     --  call into a temporary which retrieves the returned object from the
     --  primary or secondary stack (Use_Sec_Stack says which) using 'reference.
  
+    --  This expansion is necessary in all the cases where the constant object
+    --  denoted by the call needs finalization in the current subprogram, which
+    --  excludes return statements, and is not identified with another object
+    --  that will be finalized, which excludes (statically) declared objects,
+    --  dynamically allocated objects, and targets of assignments that are done
+    --  directly (without intermediate temporaries).
+ 
     procedure Expand_Non_Function_Return (N : Node_Id);
     --  Expand a simple return statement found in a procedure body, entry body,
     --  accept statement, or an extended return statement. Note that all non-
*************** package body Exp_Ch6 is
*** 339,346 ****
     --    --  formals; therefore Is_Build_In_Place_Function_Call returns False.
  
     procedure Replace_Renaming_Declaration_Id
!       (New_Decl  : Node_Id;
!        Orig_Decl : Node_Id);
     --  Replace the internal identifier of the new renaming declaration New_Decl
     --  with the identifier of its original declaration Orig_Decl exchanging the
     --  entities containing their defining identifiers to ensure the correct
--- 341,348 ----
     --    --  formals; therefore Is_Build_In_Place_Function_Call returns False.
  
     procedure Replace_Renaming_Declaration_Id
!      (New_Decl  : Node_Id;
!       Orig_Decl : Node_Id);
     --  Replace the internal identifier of the new renaming declaration New_Decl
     --  with the identifier of its original declaration Orig_Decl exchanging the
     --  entities containing their defining identifiers to ensure the correct
*************** package body Exp_Ch6 is
*** 351,360 ****
     --  of the return scope's entity list and the list structure would otherwise
     --  be corrupted. The homonym chain is preserved as well.
  
-    procedure Rewrite_Function_Call_For_C (N : Node_Id);
-    --  When generating C code, replace a call to a function that returns an
-    --  array into the generated procedure with an additional out parameter.
- 
     procedure Set_Enclosing_Sec_Stack_Return (N : Node_Id);
     --  N is a return statement for a function that returns its result on the
     --  secondary stack. This sets the Sec_Stack_Needed_For_Return flag on the
--- 353,358 ----
*************** package body Exp_Ch6 is
*** 428,440 ****
        Function_Id    : Entity_Id;
        Alloc_Form     : BIP_Allocation_Form := Unspecified;
        Alloc_Form_Exp : Node_Id             := Empty;
!       Pool_Actual    : Node_Id             := Make_Null (No_Location))
     is
        Loc : constant Source_Ptr := Sloc (Function_Call);
  
        Alloc_Form_Actual : Node_Id;
        Alloc_Form_Formal : Node_Id;
-       Pool_Formal       : Node_Id;
  
     begin
        --  Nothing to do when the size of the object is known, and the caller is
--- 426,437 ----
        Function_Id    : Entity_Id;
        Alloc_Form     : BIP_Allocation_Form := Unspecified;
        Alloc_Form_Exp : Node_Id             := Empty;
!       Pool_Exp       : Node_Id             := Empty)
     is
        Loc : constant Source_Ptr := Sloc (Function_Call);
  
        Alloc_Form_Actual : Node_Id;
        Alloc_Form_Formal : Node_Id;
  
     begin
        --  Nothing to do when the size of the object is known, and the caller is
*************** package body Exp_Ch6 is
*** 476,580 ****
        --  those targets do not support pools.
  
        if RTE_Available (RE_Root_Storage_Pool_Ptr) then
!          Pool_Formal := Build_In_Place_Formal (Function_Id, BIP_Storage_Pool);
!          Analyze_And_Resolve (Pool_Actual, Etype (Pool_Formal));
!          Add_Extra_Actual_To_Call
!            (Function_Call, Pool_Formal, Pool_Actual);
        end if;
     end Add_Unconstrained_Actuals_To_Build_In_Place_Call;
  
!    -----------------------------------------------------------
!    -- Add_Finalization_Master_Actual_To_Build_In_Place_Call --
!    -----------------------------------------------------------
  
!    procedure Add_Finalization_Master_Actual_To_Build_In_Place_Call
!      (Func_Call  : Node_Id;
!       Func_Id    : Entity_Id;
!       Ptr_Typ    : Entity_Id := Empty;
!       Master_Exp : Node_Id   := Empty)
     is
     begin
!       if not Needs_BIP_Finalization_Master (Func_Id) then
           return;
        end if;
  
!       declare
!          Formal : constant Entity_Id :=
!                     Build_In_Place_Formal (Func_Id, BIP_Finalization_Master);
!          Loc    : constant Source_Ptr := Sloc (Func_Call);
! 
!          Actual    : Node_Id;
!          Desig_Typ : Entity_Id;
! 
!       begin
!          pragma Assert (Present (Formal));
! 
!          --  If there is a finalization master actual, such as the implicit
!          --  finalization master of an enclosing build-in-place function,
!          --  then this must be added as an extra actual of the call.
  
!          if Present (Master_Exp) then
!             Actual := Master_Exp;
  
!          --  Case where the context does not require an actual master
  
!          elsif No (Ptr_Typ) then
!             Actual := Make_Null (Loc);
  
!          else
!             Desig_Typ := Directly_Designated_Type (Ptr_Typ);
  
!             --  Check for a library-level access type whose designated type has
!             --  suppressed finalization or the access type is subject to pragma
!             --  No_Heap_Finalization. Such an access type lacks a master. Pass
!             --  a null actual to callee in order to signal a missing master.
  
!             if Is_Library_Level_Entity (Ptr_Typ)
!               and then (Finalize_Storage_Only (Desig_Typ)
!                          or else No_Heap_Finalization (Ptr_Typ))
!             then
!                Actual := Make_Null (Loc);
  
!             --  Types in need of finalization actions
  
!             elsif Needs_Finalization (Desig_Typ) then
  
!                --  The general mechanism of creating finalization masters for
!                --  anonymous access types is disabled by default, otherwise
!                --  finalization masters will pop all over the place. Such types
!                --  use context-specific masters.
  
!                if Ekind (Ptr_Typ) = E_Anonymous_Access_Type
!                  and then No (Finalization_Master (Ptr_Typ))
!                then
!                   Build_Anonymous_Master (Ptr_Typ);
!                end if;
  
!                --  Access-to-controlled types should always have a master
  
!                pragma Assert (Present (Finalization_Master (Ptr_Typ)));
  
                 Actual :=
                   Make_Attribute_Reference (Loc,
                     Prefix =>
!                      New_Occurrence_Of (Finalization_Master (Ptr_Typ), Loc),
                     Attribute_Name => Name_Unrestricted_Access);
  
!             --  Tagged types
! 
!             else
                 Actual := Make_Null (Loc);
              end if;
           end if;
  
!          Analyze_And_Resolve (Actual, Etype (Formal));
  
!          --  Build the parameter association for the new actual and add it to
!          --  the end of the function's actuals.
  
!          Add_Extra_Actual_To_Call (Func_Call, Formal, Actual);
!       end;
!    end Add_Finalization_Master_Actual_To_Build_In_Place_Call;
  
     ------------------------------
     -- Add_Extra_Actual_To_Call --
--- 473,580 ----
        --  those targets do not support pools.
  
        if RTE_Available (RE_Root_Storage_Pool_Ptr) then
!          declare
!             Pool_Actual : constant Node_Id :=
!               (if Present (Pool_Exp) then Pool_Exp else Make_Null (Loc));
!             Pool_Formal : constant Node_Id :=
!               Build_In_Place_Formal (Function_Id, BIP_Storage_Pool);
! 
!          begin
!             Analyze_And_Resolve (Pool_Actual, Etype (Pool_Formal));
!             Add_Extra_Actual_To_Call (Function_Call, Pool_Formal, Pool_Actual);
!          end;
        end if;
     end Add_Unconstrained_Actuals_To_Build_In_Place_Call;
  
!    --------------------------------------------------
!    -- Add_Collection_Actual_To_Build_In_Place_Call --
!    --------------------------------------------------
  
!    procedure Add_Collection_Actual_To_Build_In_Place_Call
!      (Function_Call  : Node_Id;
!       Function_Id    : Entity_Id;
!       Ptr_Typ        : Entity_Id := Empty;
!       Collection_Exp : Node_Id   := Empty)
     is
+       Loc : constant Source_Ptr := Sloc (Function_Call);
+ 
+       Actual    : Node_Id;
+       Formal    : Node_Id;
+       Desig_Typ : Entity_Id;
+ 
     begin
!       if not Needs_BIP_Collection (Function_Id) then
           return;
        end if;
  
!       Formal := Build_In_Place_Formal (Function_Id, BIP_Collection);
  
!       --  If there is a finalization collection actual, such as the implicit
!       --  finalization collection of an enclosing build-in-place function,
!       --  then this must be added as an extra actual of the call.
  
!       if Present (Collection_Exp) then
!          Actual := Collection_Exp;
  
!       --  Case where the context does not require an actual collection
  
!       elsif No (Ptr_Typ) then
!          Actual := Make_Null (Loc);
  
!       else
!          Desig_Typ := Directly_Designated_Type (Ptr_Typ);
  
!          --  Check for a type that is subject to pragma No_Heap_Finalization.
!          --  Such a type lacks a collection. Pass a null actual to callee to
!          --  signal a missing collection.
  
!          if No_Heap_Finalization (Ptr_Typ) then
!             Actual := Make_Null (Loc);
  
!          --  Types in need of finalization actions
  
!          elsif Needs_Finalization (Desig_Typ) then
  
!             --  The general mechanism of creating finalization collections
!             --  for anonymous access types is disabled by default, otherwise
!             --  finalization collections will pop all over the place. Instead
!             --  such types use context-specific collections.
  
!             if Ekind (Ptr_Typ) = E_Anonymous_Access_Type
!               and then No (Finalization_Collection (Ptr_Typ))
!             then
!                Build_Anonymous_Collection (Ptr_Typ);
!             end if;
  
!             --  Named access-to-controlled types must have a collection, but
!             --  anonymous access-to-controlled types need not.
  
+             if Present (Finalization_Collection (Ptr_Typ)) then
                 Actual :=
                   Make_Attribute_Reference (Loc,
                     Prefix =>
!                      New_Occurrence_Of
!                        (Finalization_Collection (Ptr_Typ), Loc),
                     Attribute_Name => Name_Unrestricted_Access);
  
!             else pragma Assert (Ekind (Ptr_Typ) = E_Anonymous_Access_Type);
                 Actual := Make_Null (Loc);
              end if;
+ 
+          --  Tagged types
+ 
+          else
+             Actual := Make_Null (Loc);
           end if;
+       end if;
  
!       Analyze_And_Resolve (Actual, Etype (Formal));
  
!       --  Build the parameter association for the new actual and add it to
!       --  the end of the function's actuals.
  
!       Add_Extra_Actual_To_Call (Function_Call, Formal, Actual);
!    end Add_Collection_Actual_To_Build_In_Place_Call;
  
     ------------------------------
     -- Add_Extra_Actual_To_Call --
*************** package body Exp_Ch6 is
*** 859,866 ****
           when BIP_Storage_Pool =>
              return BIP_Storage_Pool_Suffix;
  
!          when BIP_Finalization_Master =>
!             return BIP_Finalization_Master_Suffix;
  
           when BIP_Task_Master =>
              return BIP_Task_Master_Suffix;
--- 859,866 ----
           when BIP_Storage_Pool =>
              return BIP_Storage_Pool_Suffix;
  
!          when BIP_Collection =>
!             return BIP_Collection_Suffix;
  
           when BIP_Task_Master =>
              return BIP_Task_Master_Suffix;
*************** package body Exp_Ch6 is
*** 899,906 ****
        elsif Has_Suffix (BIP_Storage_Pool_Suffix) then
           return BIP_Storage_Pool;
  
!       elsif Has_Suffix (BIP_Finalization_Master_Suffix) then
!          return BIP_Finalization_Master;
  
        elsif Has_Suffix (BIP_Task_Master_Suffix) then
           return BIP_Task_Master;
--- 899,906 ----
        elsif Has_Suffix (BIP_Storage_Pool_Suffix) then
           return BIP_Storage_Pool;
  
!       elsif Has_Suffix (BIP_Collection_Suffix) then
!          return BIP_Collection;
  
        elsif Has_Suffix (BIP_Task_Master_Suffix) then
           return BIP_Task_Master;
*************** package body Exp_Ch6 is
*** 916,968 ****
        end if;
     end BIP_Suffix_Kind;
  
-    -----------------------------
-    -- Build_Flag_For_Function --
-    -----------------------------
- 
-    function Build_Flag_For_Function (Func_Id : Entity_Id) return Entity_Id is
-       Flag_Decl : Node_Id;
-       Flag_Id   : Entity_Id;
-       Func_Bod  : Node_Id;
-       Loc       : Source_Ptr;
- 
-    begin
-       --  Recover the function body
- 
-       Func_Bod := Unit_Declaration_Node (Func_Id);
- 
-       if Nkind (Func_Bod) = N_Subprogram_Declaration then
-          Func_Bod := Parent (Parent (Corresponding_Body (Func_Bod)));
-       end if;
- 
-       if Nkind (Func_Bod) = N_Function_Specification then
-          Func_Bod := Parent (Func_Bod); -- one more level for child units
-       end if;
- 
-       pragma Assert (Nkind (Func_Bod) = N_Subprogram_Body);
- 
-       Loc := Sloc (Func_Bod);
- 
-       --  Create a flag to track the function state
- 
-       Flag_Id := Make_Temporary (Loc, 'F');
- 
-       --  Insert the flag at the beginning of the function declarations,
-       --  generate:
-       --    Fnn : Boolean := False;
- 
-       Flag_Decl :=
-         Make_Object_Declaration (Loc,
-           Defining_Identifier => Flag_Id,
-             Object_Definition => New_Occurrence_Of (Standard_Boolean, Loc),
-             Expression        => New_Occurrence_Of (Standard_False, Loc));
- 
-       Prepend_To (Declarations (Func_Bod), Flag_Decl);
-       Analyze (Flag_Decl);
- 
-       return Flag_Id;
-    end Build_Flag_For_Function;
- 
     ---------------------------
     -- Build_In_Place_Formal --
     ---------------------------
--- 916,921 ----
*************** package body Exp_Ch6 is
*** 1672,1678 ****
  
        function Requires_Atomic_Or_Volatile_Copy return Boolean;
        --  Returns whether a copy is required as per RM C.6(19) and gives a
!       --  warning in this case.
  
        ---------------------------
        -- Add_Call_By_Copy_Code --
--- 1625,1632 ----
  
        function Requires_Atomic_Or_Volatile_Copy return Boolean;
        --  Returns whether a copy is required as per RM C.6(19) and gives a
!       --  warning in this case. This also handles the special case of a base
!       --  array type with full access semantics.
  
        ---------------------------
        -- Add_Call_By_Copy_Code --
*************** package body Exp_Ch6 is
*** 2328,2342 ****
  
        function Is_Legal_Copy return Boolean is
        begin
!          --  An attempt to copy a value of such a type can only occur if
!          --  representation clauses give the actual a misaligned address.
  
!          if Is_By_Reference_Type (Etype (Formal))
             or else Is_Aliased (Formal)
             or else (Mechanism (Formal) = By_Reference
                       and then not Has_Foreign_Convention (Subp))
           then
! 
              --  The actual may in fact be properly aligned but there is not
              --  enough front-end information to determine this. In that case
              --  gigi will emit an error or a warning if a copy is not legal,
--- 2282,2303 ----
  
        function Is_Legal_Copy return Boolean is
        begin
!          --  Calls to the initialization procedure of full access types may
!          --  require a copy in order to implement the full access semantics.
  
!          if Is_Init_Proc (Subp) and then Is_Full_Access (Etype (Formal)) then
!             return True;
! 
!          --  In the other cases, a copy is not allowed for by-reference types
!          --  or if the parameter is aliased or explicitly passed by reference.
! 
!          elsif Is_By_Reference_Type (Etype (Formal))
             or else Is_Aliased (Formal)
             or else (Mechanism (Formal) = By_Reference
                       and then not Has_Foreign_Convention (Subp))
           then
!             --  An attempt to copy a value of such types can only occur if
!             --  representation clauses give the actual a misaligned address.
              --  The actual may in fact be properly aligned but there is not
              --  enough front-end information to determine this. In that case
              --  gigi will emit an error or a warning if a copy is not legal,
*************** package body Exp_Ch6 is
*** 2445,2450 ****
--- 2406,2420 ----
              return True;
           end if;
  
+          --  Special case for the base type of a full access array type: full
+          --  access semantics cannot be enforced for the base type inside the
+          --  called subprogram so we do it at the call site by means of a copy.
+ 
+          if Ekind (E_Formal) = E_Array_Type and then Is_Full_Access (E_Formal)
+          then
+             return True;
+          end if;
+ 
           return False;
        end Requires_Atomic_Or_Volatile_Copy;
  
*************** package body Exp_Ch6 is
*** 2990,2997 ****
              --  If the aspect is inherited, convert the pointer to the
              --  parent type that specifies the contract.
              --  If the original access_to_subprogram has defaults for
!             --  in_parameters, the call may include named associations, so
!             --  we create one for the pointer as well.
  
              if Is_Derived_Type (Ptr_Type)
                and then Ptr_Type /= Etype (Last_Formal (Wrapper))
--- 2960,2967 ----
              --  If the aspect is inherited, convert the pointer to the
              --  parent type that specifies the contract.
              --  If the original access_to_subprogram has defaults for
!             --  in-mode parameters, the call may include named associations,
!             --  so we create one for the pointer as well.
  
              if Is_Derived_Type (Ptr_Type)
                and then Ptr_Type /= Etype (Last_Formal (Wrapper))
*************** package body Exp_Ch6 is
*** 3416,3422 ****
                 Analyze_And_Resolve (Actual, Standard_Integer);
                 Add_Extra_Actual_To_Call (N, Formal, Actual);
  
!             --  BIPstoragepool, BIPfinalizationmaster, BIPactivationchain,
              --  and BIPaccess.
  
              elsif Is_Access_Type (Etype (Formal)) then
--- 3386,3392 ----
                 Analyze_And_Resolve (Actual, Standard_Integer);
                 Add_Extra_Actual_To_Call (N, Formal, Actual);
  
!             --  BIPstoragepool, BIPcollection, BIPactivationchain,
              --  and BIPaccess.
  
              elsif Is_Access_Type (Etype (Formal)) then
*************** package body Exp_Ch6 is
*** 3934,3940 ****
                 Formal : Entity_Id;
  
              begin
!                Actual := First (Parameter_Associations (Call_Node));
                 Formal := First_Formal (Subp);
                 while Present (Actual)
                   and then Present (Formal)
--- 3904,3910 ----
                 Formal : Entity_Id;
  
              begin
!                Actual := First_Actual (Call_Node);
                 Formal := First_Formal (Subp);
                 while Present (Actual)
                   and then Present (Formal)
*************** package body Exp_Ch6 is
*** 3946,3952 ****
                       return True;
                    end if;
  
!                   Next (Actual);
                    Next_Formal (Formal);
                 end loop;
              end;
--- 3916,3922 ----
                       return True;
                    end if;
  
!                   Next_Actual (Actual);
                    Next_Formal (Formal);
                 end loop;
              end;
*************** package body Exp_Ch6 is
*** 4129,4201 ****
           return;
        end if;
  
-       if Transform_Function_Array
-         and then Nkind (Call_Node) = N_Function_Call
-         and then Is_Entity_Name (Name (Call_Node))
-       then
-          declare
-             Func_Id : constant Entity_Id :=
-                         Ultimate_Alias (Entity (Name (Call_Node)));
-          begin
-             --  When generating C code, transform a function call that returns
-             --  a constrained array type into procedure form.
- 
-             if Rewritten_For_C (Func_Id) then
- 
-                --  For internally generated calls ensure that they reference
-                --  the entity of the spec of the called function (needed since
-                --  the expander may generate calls using the entity of their
-                --  body).
- 
-                if not Comes_From_Source (Call_Node)
-                  and then Nkind (Unit_Declaration_Node (Func_Id)) =
-                             N_Subprogram_Body
-                then
-                   Set_Entity (Name (Call_Node),
-                     Corresponding_Function
-                       (Corresponding_Procedure (Func_Id)));
-                end if;
- 
-                Rewrite_Function_Call_For_C (Call_Node);
-                return;
- 
-             --  Also introduce a temporary for functions that return a record
-             --  called within another procedure or function call, since records
-             --  are passed by pointer in the generated C code, and we cannot
-             --  take a pointer from a subprogram call.
- 
-             elsif Modify_Tree_For_C
-               and then Nkind (Parent (Call_Node)) in N_Subprogram_Call
-               and then Is_Record_Type (Etype (Func_Id))
-             then
-                declare
-                   Temp_Id : constant Entity_Id := Make_Temporary (Loc, 'T');
-                   Decl    : Node_Id;
- 
-                begin
-                   --  Generate:
-                   --    Temp : ... := Func_Call (...);
- 
-                   Decl :=
-                     Make_Object_Declaration (Loc,
-                       Defining_Identifier => Temp_Id,
-                       Object_Definition   =>
-                         New_Occurrence_Of (Etype (Func_Id), Loc),
-                       Expression          =>
-                         Make_Function_Call (Loc,
-                           Name                   =>
-                             New_Occurrence_Of (Func_Id, Loc),
-                           Parameter_Associations =>
-                             Parameter_Associations (Call_Node)));
- 
-                   Insert_Action (Parent (Call_Node), Decl);
-                   Rewrite (Call_Node, New_Occurrence_Of (Temp_Id, Loc));
-                   return;
-                end;
-             end if;
-          end;
-       end if;
- 
        --  First step, compute extra actuals, corresponding to any Extra_Formals
        --  present. Note that we do not access Extra_Formals directly, instead
        --  we simply note the presence of the extra formals as we process the
--- 4099,4104 ----
*************** package body Exp_Ch6 is
*** 4275,4282 ****
           --  because the object has underlying discriminants with defaults.
  
           if Present (Extra_Constrained (Formal)) then
!             if Is_Private_Type (Etype (Prev))
!               and then not Has_Discriminants (Base_Type (Etype (Prev)))
              then
                 Add_Extra_Actual
                   (Expr => New_Occurrence_Of (Standard_False, Loc),
--- 4178,4187 ----
           --  because the object has underlying discriminants with defaults.
  
           if Present (Extra_Constrained (Formal)) then
!             if Is_Mutably_Tagged_Type (Etype (Actual))
!               or else (Is_Private_Type (Etype (Prev))
!                         and then not Has_Discriminants
!                                        (Base_Type (Etype (Prev))))
              then
                 Add_Extra_Actual
                   (Expr => New_Occurrence_Of (Standard_False, Loc),
*************** package body Exp_Ch6 is
*** 4626,4642 ****
              Add_View_Conversion_Invariants (Formal, Actual);
           end if;
  
-          --  Generating C the initialization of an allocator is performed by
-          --  means of individual statements, and hence it must be done before
-          --  the call.
- 
-          if Modify_Tree_For_C
-            and then Nkind (Actual) = N_Allocator
-            and then Nkind (Expression (Actual)) = N_Qualified_Expression
-          then
-             Remove_Side_Effects (Actual);
-          end if;
- 
           --  This label is required when skipping extra actual generation for
           --  Unchecked_Union parameters.
  
--- 4531,4536 ----
*************** package body Exp_Ch6 is
*** 5311,5325 ****
                      and then In_Package_Body
                    then
                       Must_Inline := not In_Extended_Main_Source_Unit (Subp);
- 
-                   --  Inline calls to _Wrapped_Statements when generating C
- 
-                   elsif Modify_Tree_For_C
-                     and then In_Same_Extended_Unit (Sloc (Bod), Loc)
-                     and then Chars (Name (Call_Node))
-                                = Name_uWrapped_Statements
-                   then
-                      Must_Inline := True;
                    end if;
                 end if;
  
--- 5205,5210 ----
*************** package body Exp_Ch6 is
*** 5362,5371 ****
           then
              Expand_Inlined_Call (Call_Node, Subp, Orig_Subp);
  
!          --  Back-end inlining either if optimization is enabled or the call is
!          --  required to be inlined.
  
           elsif Optimization_Level > 0
             or else Has_Pragma_Inline_Always (Subp)
           then
              Add_Inlined_Body (Subp, Call_Node);
--- 5247,5257 ----
           then
              Expand_Inlined_Call (Call_Node, Subp, Orig_Subp);
  
!          --  Back-end inlining either if optimization is enabled, we're
!          --  generating C, or the call is required to be inlined.
  
           elsif Optimization_Level > 0
+            or else CCG_Mode
             or else Has_Pragma_Inline_Always (Subp)
           then
              Add_Inlined_Body (Subp, Call_Node);
*************** package body Exp_Ch6 is
*** 5401,5407 ****
        --  function call is transformed into a reference to the result that has
        --  been built either on the primary or the secondary stack.
  
!       if Needs_Finalization (Etype (Subp)) then
           if not Is_Build_In_Place_Function_Call (Call_Node)
             and then
               (No (First_Formal (Subp))
--- 5287,5295 ----
        --  function call is transformed into a reference to the result that has
        --  been built either on the primary or the secondary stack.
  
!       if Nkind (Call_Node) = N_Function_Call
!         and then Needs_Finalization (Etype (Call_Node))
!       then
           if not Is_Build_In_Place_Function_Call (Call_Node)
             and then
               (No (First_Formal (Subp))
*************** package body Exp_Ch6 is
*** 5409,5415 ****
                   not Is_Concurrent_Record_Type (Etype (First_Formal (Subp))))
           then
              Expand_Ctrl_Function_Call
!               (Call_Node, Needs_Secondary_Stack (Etype (Subp)));
  
           --  Build-in-place function calls which appear in anonymous contexts
           --  need a transient scope to ensure the proper finalization of the
--- 5297,5303 ----
                   not Is_Concurrent_Record_Type (Etype (First_Formal (Subp))))
           then
              Expand_Ctrl_Function_Call
!               (Call_Node, Needs_Secondary_Stack (Etype (Call_Node)));
  
           --  Build-in-place function calls which appear in anonymous contexts
           --  need a transient scope to ensure the proper finalization of the
*************** package body Exp_Ch6 is
*** 5431,5438 ****
                   Is_Build_In_Place_Function_Call (Parent (Call_Node)))
           then
              Establish_Transient_Scope
!               (Call_Node, Needs_Secondary_Stack (Etype (Subp)));
           end if;
        end if;
     end Expand_Call_Helper;
  
--- 5319,5363 ----
                   Is_Build_In_Place_Function_Call (Parent (Call_Node)))
           then
              Establish_Transient_Scope
!               (Call_Node, Needs_Secondary_Stack (Etype (Call_Node)));
           end if;
+ 
+       --  Functions returning noncontrolled objects that may be subject to
+       --  user-defined indexing also need special attention. The problem
+       --  is that, when a call to such a function is directly passed as an
+       --  actual in a call to the Constant_Indexing function, the latter
+       --  call effectively binds the lifetime of the actual to that of its
+       --  return value, thus extending it beyond the call. This cannot be
+       --  directly supported by code generators, for which the lifetime of
+       --  temporaries created for actuals ends immediately after the call.
+       --  Therefore we force the creation of a temporary in this case, as
+       --  the above code would have done in the controlled case; note that,
+       --  in this latter case, the temporary cannot be finalized just after
+       --  the call as would naturally be done, and Is_Finalizable_Transient
+       --  also has a special processing for it (see Is_Indexed_Container).
+ 
+       elsif Nkind (Call_Node) = N_Function_Call
+         and then Nkind (Parent (Call_Node)) = N_Function_Call
+         and then Is_Entity_Name (Name (Parent (Call_Node)))
+       then
+          declare
+             Aspect : constant Node_Id :=
+               Find_Value_Of_Aspect
+                 (Etype (Call_Node), Aspect_Constant_Indexing);
+             Subp   : constant Entity_Id := Entity (Name (Parent (Call_Node)));
+ 
+          begin
+             if Present (Aspect)
+               and then Subp = Ultimate_Alias (Entity (Aspect))
+             then
+                --  Resolution is now finished, make sure we don't start
+                --  analysis again because of the duplication.
+ 
+                Set_Analyzed (Call_Node);
+ 
+                Remove_Side_Effects (Call_Node);
+             end if;
+          end;
        end if;
     end Expand_Call_Helper;
  
*************** package body Exp_Ch6 is
*** 5442,5448 ****
  
     procedure Expand_Ctrl_Function_Call (N : Node_Id; Use_Sec_Stack : Boolean)
     is
!       Par : constant Node_Id := Parent (N);
  
     begin
        --  Optimization: if the returned value is returned again, then no need
--- 5367,5374 ----
  
     procedure Expand_Ctrl_Function_Call (N : Node_Id; Use_Sec_Stack : Boolean)
     is
!       Par        : constant Node_Id := Parent (N);
!       Uncond_Par : constant Node_Id := Unconditional_Parent (N);
  
     begin
        --  Optimization: if the returned value is returned again, then no need
*************** package body Exp_Ch6 is
*** 5451,5463 ****
        --  Note that simple return statements are distributed into conditional
        --  expressions but we may be invoked before this distribution is done.
  
!       if Nkind (Par) = N_Simple_Return_Statement
!         or else (Nkind (Par) = N_If_Expression
!                   and then Nkind (Parent (Par)) = N_Simple_Return_Statement)
!         or else (Nkind (Par) = N_Case_Expression_Alternative
!                   and then
!                     Nkind (Parent (Parent (Par))) = N_Simple_Return_Statement)
!       then
           return;
        end if;
  
--- 5377,5383 ----
        --  Note that simple return statements are distributed into conditional
        --  expressions but we may be invoked before this distribution is done.
  
!       if Nkind (Uncond_Par) = N_Simple_Return_Statement then
           return;
        end if;
  
*************** package body Exp_Ch6 is
*** 5470,5476 ****
  
        if Nkind (Par) in N_Object_Declaration | N_Delta_Aggregate
          and then Expression (Par) = N
!         and then not Use_Sec_Stack
        then
           return;
        end if;
--- 5390,5426 ----
  
        if Nkind (Par) in N_Object_Declaration | N_Delta_Aggregate
          and then Expression (Par) = N
!       then
!          if not Use_Sec_Stack then
!             return;
!          end if;
! 
!       --  Note that object declarations are also distributed into conditional
!       --  expressions but we may be invoked before this distribution is done.
! 
!       elsif Nkind (Uncond_Par) = N_Object_Declaration then
!          return;
!       end if;
! 
!       --  The same optimization: if the returned value is used to initialize a
!       --  dynamically allocated object, then no need to copy/readjust/finalize,
!       --  we can initialize it in place.
! 
!       if Nkind (Par) = N_Qualified_Expression
!         and then Nkind (Parent (Par)) = N_Allocator
!       then
!          return;
!       end if;
! 
!       --  Avoid expansion to catch the error when the function call is on the
!       --  left-hand side of an assignment. Likewise if it is on the right-hand
!       --  side and no controlling actions will be performed for the assignment,
!       --  which means that this is an initialization of the target and it can
!       --  thus be performed directly. Note that the code generator should also
!       --  avoid creating a temporary for the right-hand side in this case.
! 
!       if Nkind (Par) = N_Assignment_Statement
!         and then (N = Name (Par) or else No_Ctrl_Actions (Par))
        then
           return;
        end if;
*************** package body Exp_Ch6 is
*** 5627,5646 ****
  
        HSS := Handled_Statement_Sequence (N);
  
-       --  If the returned object needs finalization actions, the function must
-       --  perform the appropriate cleanup should it fail to return. The state
-       --  of the function itself is tracked through a flag which is coupled
-       --  with the scope finalizer. There is one flag per each return object
-       --  in case of multiple extended returns. Note that the flag has already
-       --  been created if the extended return contains a nested return.
- 
-       if Needs_Finalization (Etype (Ret_Obj_Id))
-         and then No (Status_Flag_Or_Transient_Decl (Ret_Obj_Id))
-       then
-          Set_Status_Flag_Or_Transient_Decl
-            (Ret_Obj_Id, Build_Flag_For_Function (Func_Id));
-       end if;
- 
        --  Build a simple_return_statement that returns the return object when
        --  there is a statement sequence, or no expression, or the analysis of
        --  the return object declaration generated extra actions, or the result
--- 5577,5582 ----
*************** package body Exp_Ch6 is
*** 5694,5718 ****
              end if;
           end if;
  
!          --  Update the state of the function right before the object is
!          --  returned.
  
           if Needs_Finalization (Etype (Ret_Obj_Id)) then
!             declare
!                Flag_Id : constant Entity_Id :=
!                            Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
! 
!             begin
!                pragma Assert (Present (Flag_Id));
! 
!                --  Generate:
!                --    Fnn := True;
! 
!                Append_To (Stmts,
!                  Make_Assignment_Statement (Loc,
!                    Name       => New_Occurrence_Of (Flag_Id, Loc),
!                    Expression => New_Occurrence_Of (Standard_True, Loc)));
!             end;
           end if;
  
           HSS := Make_Handled_Sequence_Of_Statements (Loc, Stmts);
--- 5630,5641 ----
              end if;
           end if;
  
!          --  If the returned object needs finalization actions, the function
!          --  must perform the appropriate cleanup should it fail to return.
  
           if Needs_Finalization (Etype (Ret_Obj_Id)) then
!             Append_To
!               (Stmts, Make_Suppress_Object_Finalize_Call (Loc, Ret_Obj_Id));
           end if;
  
           HSS := Make_Handled_Sequence_Of_Statements (Loc, Stmts);
*************** package body Exp_Ch6 is
*** 5855,5862 ****
     --  (this makes things easier on Gigi which does not want to have to handle
     --  a missing return).
  
-    --  Add call to Activate_Tasks if body is a task activator
- 
     --  Deal with possible detection of infinite recursion
  
     --  Eliminate body completely if convention stubbed
--- 5778,5783 ----
*************** package body Exp_Ch6 is
*** 5870,5876 ****
     --  or has any parameters of limited types, where limited means that the
     --  run-time view is limited (i.e. the full type is limited).
  
!    --  Wrap thread body
  
     procedure Expand_N_Subprogram_Body (N : Node_Id) is
        Body_Id  : constant Entity_Id  := Defining_Entity (N);
--- 5791,5797 ----
     --  or has any parameters of limited types, where limited means that the
     --  run-time view is limited (i.e. the full type is limited).
  
!    --  Apply raise check
  
     procedure Expand_N_Subprogram_Body (N : Node_Id) is
        Body_Id  : constant Entity_Id  := Defining_Entity (N);
*************** package body Exp_Ch6 is
*** 6199,6204 ****
--- 6120,6129 ----
        --  without it being previously elaborated.
  
        Install_Primitive_Elaboration_Check (N);
+ 
+       --  If the subprogram is subject to pragma No_Raise, apply the check
+ 
+       Apply_Raise_Check (N);
     end Expand_N_Subprogram_Body;
  
     -----------------------------------
*************** package body Exp_Ch6 is
*** 6248,6254 ****
        Prot_Bod  : Node_Id;
        Prot_Decl : Node_Id;
        Prot_Id   : Entity_Id;
-       Typ       : Entity_Id;
  
     begin
        --  Deal with case of protected subprogram. Do not generate protected
--- 6173,6178 ----
*************** package body Exp_Ch6 is
*** 6314,6338 ****
              Set_Is_Inlined (Subp, False);
           end;
        end if;
- 
-       --  When generating C code, transform a function that returns a
-       --  constrained array type into a procedure with an out parameter
-       --  that carries the return value.
- 
-       --  We skip this transformation for unchecked conversions, since they
-       --  are not needed by the C generator (and this also produces cleaner
-       --  output).
- 
-       Typ := Get_Fullest_View (Etype (Subp));
- 
-       if Transform_Function_Array
-         and then Nkind (Specification (N)) = N_Function_Specification
-         and then Is_Array_Type (Typ)
-         and then Is_Constrained (Typ)
-         and then not Is_Unchecked_Conversion_Instance (Subp)
-       then
-          Build_Procedure_Form (N);
-       end if;
     end Expand_N_Subprogram_Declaration;
  
     --------------------------------
--- 6238,6243 ----
*************** package body Exp_Ch6 is
*** 6373,6380 ****
           declare
              Ret_Obj_Id : constant Entity_Id := First_Entity (Scope_Id);
  
-             Flag_Id : Entity_Id;
- 
           begin
              --  Apply the same processing as Expand_N_Extended_Return_Statement
              --  if the returned object needs finalization actions. Note that we
--- 6278,6283 ----
*************** package body Exp_Ch6 is
*** 6382,6403 ****
              --  may be multiple nested returns within the extended one.
  
              if Needs_Finalization (Etype (Ret_Obj_Id)) then
!                if Present (Status_Flag_Or_Transient_Decl (Ret_Obj_Id)) then
!                   Flag_Id := Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
!                else
!                   Flag_Id :=
!                     Build_Flag_For_Function (Return_Applies_To (Scope_Id));
!                   Set_Status_Flag_Or_Transient_Decl (Ret_Obj_Id, Flag_Id);
!                end if;
! 
!                --  Generate:
!                --    Fnn := True;
! 
!                Insert_Action (N,
!                  Make_Assignment_Statement (Loc,
!                    Name       =>
!                      New_Occurrence_Of (Flag_Id, Loc),
!                    Expression => New_Occurrence_Of (Standard_True, Loc)));
              end if;
  
              Rewrite (N,
--- 6285,6292 ----
              --  may be multiple nested returns within the extended one.
  
              if Needs_Finalization (Etype (Ret_Obj_Id)) then
!                Insert_Action
!                  (N, Make_Suppress_Object_Finalize_Call (Loc, Ret_Obj_Id));
              end if;
  
              Rewrite (N,
*************** package body Exp_Ch6 is
*** 6806,6816 ****
           end if;
        end if;
  
!       --  For the case of a simple return that does not come from an
!       --  extended return, in the case of build-in-place, we rewrite
!       --  "return <expression>;" to be:
! 
!       --    return _anon_ : <return_subtype> := <expression>
  
        --  The expansion produced by Expand_N_Extended_Return_Statement will
        --  contain simple return statements (for example, a block containing
--- 6695,6710 ----
           end if;
        end if;
  
!       --  For the case of a simple return that does not come from an extended
!       --  return, and if the function returns in place or the expression is an
!       --  aggregate whose expansion has been delayed to be returned in place
!       --  (see Is_Build_In_Place_Aggregate_Return), we rewrite:
!       --
!       --    return <expression>;
!       --
!       --  into
!       --
!       --    return _anonymous_ : <return_subtype> := <expression>
  
        --  The expansion produced by Expand_N_Extended_Return_Statement will
        --  contain simple return statements (for example, a block containing
*************** package body Exp_Ch6 is
*** 6829,6835 ****
            or else Has_BIP_Formals (Scope_Id));
  
        if not Comes_From_Extended_Return_Statement (N)
!         and then Is_Build_In_Place_Function (Scope_Id)
  
           --  The functionality of interface thunks is simple and it is always
           --  handled by means of simple return statements. This leaves their
--- 6723,6730 ----
            or else Has_BIP_Formals (Scope_Id));
  
        if not Comes_From_Extended_Return_Statement (N)
!         and then (Is_Build_In_Place_Function (Scope_Id)
!                    or else Is_Delayed_Aggregate (Exp))
  
           --  The functionality of interface thunks is simple and it is always
           --  handled by means of simple return statements. This leaves their
*************** package body Exp_Ch6 is
*** 6838,6860 ****
          and then not Is_Thunk (Scope_Id)
        then
           declare
-             Return_Object_Entity : constant Entity_Id :=
-                                      Make_Temporary (Loc, 'R', Exp);
- 
              Obj_Decl : constant Node_Id :=
                           Make_Object_Declaration (Loc,
!                            Defining_Identifier => Return_Object_Entity,
                             Object_Definition   => Subtype_Ind,
!                            Expression          => Exp);
  
!             Ext : constant Node_Id :=
!                     Make_Extended_Return_Statement (Loc,
!                       Return_Object_Declarations => New_List (Obj_Decl));
              --  Do not perform this high-level optimization if the result type
              --  is an interface because the "this" pointer must be displaced.
  
           begin
!             Rewrite (N, Ext);
              Analyze (N);
              return;
           end;
--- 6733,6752 ----
          and then not Is_Thunk (Scope_Id)
        then
           declare
              Obj_Decl : constant Node_Id :=
                           Make_Object_Declaration (Loc,
!                            Defining_Identifier => Make_Temporary (Loc, 'R'),
                             Object_Definition   => Subtype_Ind,
!                            Expression          => Relocate_Node (Exp));
  
!             Stmt : constant Node_Id :=
!                      Make_Extended_Return_Statement (Loc,
!                        Return_Object_Declarations => New_List (Obj_Decl));
              --  Do not perform this high-level optimization if the result type
              --  is an interface because the "this" pointer must be displaced.
  
           begin
!             Rewrite (N, Stmt);
              Analyze (N);
              return;
           end;
*************** package body Exp_Ch6 is
*** 7191,7204 ****
        if Present (Utyp)
          and then Is_Tagged_Type (Utyp)
          and then not Is_Class_Wide_Type (Utyp)
!         and then (Nkind (Exp) in
!                       N_Type_Conversion | N_Unchecked_Type_Conversion
!                     or else (Nkind (Exp) = N_Explicit_Dereference
!                                and then Nkind (Prefix (Exp)) in
!                                           N_Type_Conversion |
!                                           N_Unchecked_Type_Conversion)
!                     or else (Is_Entity_Name (Exp)
!                                and then Is_Formal (Entity (Exp))))
        then
           --  When the return type is limited, perform a check that the tag of
           --  the result is the same as the tag of the return type.
--- 7083,7089 ----
        if Present (Utyp)
          and then Is_Tagged_Type (Utyp)
          and then not Is_Class_Wide_Type (Utyp)
!         and then Is_Conversion_Or_Reference_To_Formal (Exp)
        then
           --  When the return type is limited, perform a check that the tag of
           --  the result is the same as the tag of the return type.
*************** package body Exp_Ch6 is
*** 7734,7740 ****
                         Dynamic_Call_Helper (CW_Subp);
           Actuals   : constant List_Id := New_List;
           A         : Node_Id   := First_Actual (Call_Node);
-          F         : Entity_Id := First_Formal (Helper_Id);
  
        begin
           while Present (A) loop
--- 7619,7624 ----
*************** package body Exp_Ch6 is
*** 7745,7751 ****
              Remove_Side_Effects (A);
  
              Append_To (Actuals, New_Copy_Tree (A));
!             Next_Formal (F);
              Next_Actual (A);
           end loop;
  
--- 7629,7635 ----
              Remove_Side_Effects (A);
  
              Append_To (Actuals, New_Copy_Tree (A));
! 
              Next_Actual (A);
           end loop;
  
*************** package body Exp_Ch6 is
*** 7775,7821 ****
             (Id       : Entity_Id;
              Is_First : in out Boolean)
           is
!             Prag   : constant Node_Id := Get_Class_Wide_Pragma (Id,
!                                          Pragma_Precondition);
!             Msg    : Node_Id;
!             Str_Id : String_Id;
  
           begin
              if No (Prag) or else Is_Ignored (Prag) then
                 return;
              end if;
  
-             Msg    := Expression (Last (Pragma_Argument_Associations (Prag)));
-             Str_Id := Strval (Msg);
- 
              if Is_First then
                 Is_First := False;
  
!                Append (Global_Name_Buffer, Strval (Msg));
! 
!                if Id /= Subp_Id
!                  and then Name_Buffer (1 .. 19) = "failed precondition"
!                then
!                   Insert_Str_In_Name_Buffer ("inherited ", 8);
                 end if;
  
              else
!                declare
!                   Str      : constant String := To_String (Str_Id);
!                   From_Idx : Integer;
! 
!                begin
!                   Append (Global_Name_Buffer, ASCII.LF);
!                   Append (Global_Name_Buffer, "  or ");
! 
!                   From_Idx := Name_Len;
!                   Append (Global_Name_Buffer, Str_Id);
  
!                   if Str (1 .. 19) = "failed precondition" then
!                      Insert_Str_In_Name_Buffer ("inherited ", From_Idx + 8);
!                   end if;
!                end;
              end if;
           end Append_Message;
  
           --  Local variables
--- 7659,7695 ----
             (Id       : Entity_Id;
              Is_First : in out Boolean)
           is
!             Prag : constant Node_Id :=
!               Get_Class_Wide_Pragma (Id, Pragma_Precondition);
  
           begin
              if No (Prag) or else Is_Ignored (Prag) then
                 return;
              end if;
  
              if Is_First then
                 Is_First := False;
  
!                if Id /= Subp_Id then
!                   Append
!                     (Global_Name_Buffer, "failed inherited precondition ");
!                else
!                   Append (Global_Name_Buffer, "failed precondition ");
                 end if;
  
              else
!                Append (Global_Name_Buffer, ASCII.LF);
!                Append (Global_Name_Buffer, "  or ");
  
!                Append (Global_Name_Buffer, "failed inherited precondition ");
              end if;
+ 
+             Append (Global_Name_Buffer, "from " &
+               Build_Location_String
+                 (Sloc
+                   (First_Node
+                      (Expression
+                         (First (Pragma_Argument_Associations (Prag)))))));
           end Append_Message;
  
           --  Local variables
*************** package body Exp_Ch6 is
*** 7951,7959 ****
                 --  Wrappers of class-wide pre/postconditions reference the
                 --  parent primitive that has the inherited contract.
  
!                if Is_Wrapper (Subp_Id)
!                  and then Present (LSP_Subprogram (Subp_Id))
!                then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
--- 7825,7831 ----
                 --  Wrappers of class-wide pre/postconditions reference the
                 --  parent primitive that has the inherited contract.
  
!                if Is_LSP_Wrapper (Subp_Id) then
                    Subp_Id := LSP_Subprogram (Subp_Id);
                 end if;
  
*************** package body Exp_Ch6 is
*** 7978,7983 ****
--- 7850,7856 ----
                          Present (Controlling_Argument (Call_Node));
        Class_Subp    : Entity_Id;
        Cond          : Node_Id;
+       Fail          : Node_Id;
        Subp          : Entity_Id;
  
     --  Start of processing for Install_Class_Preconditions_Check
*************** package body Exp_Ch6 is
*** 7998,8003 ****
--- 7871,7905 ----
  
        elsif Is_Thunk (Current_Scope) then
           return;
+ 
+       --  The call to the inherited primitive in a dispatch table wrapper must
+       --  not have the class-wide precondition check since it is installed in
+       --  the caller of the wrapper. This is also required to avoid the wrong
+       --  evaluation of class-wide preconditions in Condition_Wrappers (ie.
+       --  wrappers of inherited primitives that implement additional interface
+       --  primitives that have preconditions).
+ 
+       --  For example:
+       --    type Typ is tagged null record;
+       --    procedure Prim (X : T) with Pre'Class => False;
+ 
+       --    type Iface is interface;
+       --    procedure Prim (X : Iface) is abstract with Pre'Class => True;
+ 
+       --    type DT is new Typ and Iface with null record;
+       --    <internally built dispatch table wrapper of inherited Prim>
+ 
+       --  The class-wide preconditions of the wrapper must not fail due to the
+       --  disjunction of the class-wide preconditions of subprograms Typ.Prim
+       --  and Iface.Prim. If the precondition check were placed in the
+       --  wrapper's call to the inherited parent primitive, its class-wide
+       --  condition would incorrectly be reported as failed at runtime.
+ 
+       elsif Is_Dispatch_Table_Wrapper (Current_Scope)
+         or else (Chars (Current_Scope) = Name_uWrapped_Statements
+                    and then Is_Dispatch_Table_Wrapper (Scope (Current_Scope)))
+       then
+          return;
        end if;
  
        Subp := Entity (Name (Call_Node));
*************** package body Exp_Ch6 is
*** 8023,8052 ****
        end if;
  
        if Exception_Locations_Suppressed then
!          Insert_Action (Call_Node,
!            Make_If_Statement (Loc,
!              Condition       => Make_Op_Not (Loc, Cond),
!              Then_Statements => New_List (
!                Make_Raise_Statement (Loc,
!                  Name =>
!                    New_Occurrence_Of
!                      (RTE (RE_Assert_Failure), Loc)))));
  
        --  Failed check with message indicating the failed precondition and the
        --  call that caused it.
  
        else
!          Insert_Action (Call_Node,
!            Make_If_Statement (Loc,
!              Condition       => Make_Op_Not (Loc, Cond),
!              Then_Statements => New_List (
!                Make_Procedure_Call_Statement (Loc,
!                  Name                   =>
!                    New_Occurrence_Of
!                      (RTE (RE_Raise_Assert_Failure), Loc),
!                  Parameter_Associations =>
!                    New_List (Build_Error_Message (Subp))))));
        end if;
     end Install_Class_Preconditions_Check;
  
     ------------------------------
--- 7925,7953 ----
        end if;
  
        if Exception_Locations_Suppressed then
!          Fail :=
!            Make_Raise_Statement (Loc,
!              Name =>
!                New_Occurrence_Of
!                  (RTE (RE_Assert_Failure), Loc));
  
        --  Failed check with message indicating the failed precondition and the
        --  call that caused it.
  
        else
!          Fail :=
!            Make_Procedure_Call_Statement (Loc,
!              Name                   =>
!                New_Occurrence_Of
!                  (RTE (RE_Raise_Assert_Failure), Loc),
!              Parameter_Associations =>
!                New_List (Build_Error_Message (Subp)));
        end if;
+ 
+       Insert_Action (Call_Node,
+         Make_If_Statement (Loc,
+           Condition       => Make_Op_Not (Loc, Cond),
+           Then_Statements => New_List (Fail)));
     end Install_Class_Preconditions_Check;
  
     ------------------------------
*************** package body Exp_Ch6 is
*** 8071,8077 ****
     begin
        return Has_Suffix (BIP_Alloc_Suffix)
          or else Has_Suffix (BIP_Storage_Pool_Suffix)
!         or else Has_Suffix (BIP_Finalization_Master_Suffix)
          or else Has_Suffix (BIP_Task_Master_Suffix)
          or else Has_Suffix (BIP_Activation_Chain_Suffix)
          or else Has_Suffix (BIP_Object_Access_Suffix);
--- 7972,7978 ----
     begin
        return Has_Suffix (BIP_Alloc_Suffix)
          or else Has_Suffix (BIP_Storage_Pool_Suffix)
!         or else Has_Suffix (BIP_Collection_Suffix)
          or else Has_Suffix (BIP_Task_Master_Suffix)
          or else Has_Suffix (BIP_Activation_Chain_Suffix)
          or else Has_Suffix (BIP_Object_Access_Suffix);
*************** package body Exp_Ch6 is
*** 8382,8388 ****
        Return_Obj_Access : Entity_Id; -- temp for function result
        Temp_Init         : Node_Id; -- initial value of Return_Obj_Access
        Alloc_Form        : BIP_Allocation_Form;
!       Pool              : Node_Id; -- nonnull if Alloc_Form = User_Storage_Pool
        Return_Obj_Actual : Node_Id; -- the temp.all, in caller-allocates case
        Chain             : Entity_Id; -- activation chain, in case of tasks
  
--- 8283,8289 ----
        Return_Obj_Access : Entity_Id; -- temp for function result
        Temp_Init         : Node_Id; -- initial value of Return_Obj_Access
        Alloc_Form        : BIP_Allocation_Form;
!       Pool_Actual       : Node_Id; -- Present if Alloc_Form = User_Storage_Pool
        Return_Obj_Actual : Node_Id; -- the temp.all, in caller-allocates case
        Chain             : Entity_Id; -- activation chain, in case of tasks
  
*************** package body Exp_Ch6 is
*** 8427,8435 ****
        Set_Can_Never_Be_Null (Acc_Type, False);
        --  It gets initialized to null, so we can't have that
  
!       --  When the result subtype is constrained, the return object is created
!       --  on the caller side, and access to it is passed to the function. This
!       --  optimization is disabled when the result subtype needs finalization
        --  actions because the caller side allocation may result in undesirable
        --  finalization. Consider the following example:
        --
--- 8328,8338 ----
        Set_Can_Never_Be_Null (Acc_Type, False);
        --  It gets initialized to null, so we can't have that
  
!       --  When the result subtype is returned on the secondary stack or is
!       --  tagged, the called function itself must perform the allocation of
!       --  the return object, so we pass parameters indicating that.
! 
!       --  But that's also the case when the result subtype needs finalization
        --  actions because the caller side allocation may result in undesirable
        --  finalization. Consider the following example:
        --
*************** package body Exp_Ch6 is
*** 8444,8471 ****
        --
        --  Even though the size of limited controlled type Lim_Ctrl is known,
        --  allocating Obj at the caller side will chain Obj on Lim_Ctrl_Ptr's
!       --  finalization master. The subsequent call to Make_Lim_Ctrl will fail
!       --  during the initialization actions for Result, which implies that
        --  Result (and Obj by extension) should not be finalized. However Obj
        --  will be finalized when access type Lim_Ctrl_Ptr goes out of scope
!       --  since it is already attached on the related finalization master.
! 
!       --  Here and in related routines, we must examine the full view of the
!       --  type, because the view at the point of call may differ from the
!       --  one in the function body, and the expansion mechanism depends on
!       --  the characteristics of the full view.
  
        if Needs_BIP_Alloc_Form (Function_Id) then
           Temp_Init := Empty;
  
           --  Case of a user-defined storage pool. Pass an allocation parameter
           --  indicating that the function should allocate its result in the
!          --  pool, and pass the pool. Use 'Unrestricted_Access because the
!          --  pool may not be aliased.
  
           if Present (Associated_Storage_Pool (Acc_Type)) then
!             Alloc_Form := User_Storage_Pool;
!             Pool :=
                Make_Attribute_Reference (Loc,
                  Prefix         =>
                    New_Occurrence_Of
--- 8347,8369 ----
        --
        --  Even though the size of limited controlled type Lim_Ctrl is known,
        --  allocating Obj at the caller side will chain Obj on Lim_Ctrl_Ptr's
!       --  finalization collection. The subsequent call to Make_Lim_Ctrl will
!       --  fail during the initialization actions for Result, which means that
        --  Result (and Obj by extension) should not be finalized. However Obj
        --  will be finalized when access type Lim_Ctrl_Ptr goes out of scope
!       --  since it is already attached on the its finalization collection.
  
        if Needs_BIP_Alloc_Form (Function_Id) then
           Temp_Init := Empty;
  
           --  Case of a user-defined storage pool. Pass an allocation parameter
           --  indicating that the function should allocate its result in the
!          --  pool, and pass an access to the pool. Use 'Unrestricted_Access
!          --  because the pool may not be aliased.
  
           if Present (Associated_Storage_Pool (Acc_Type)) then
!             Alloc_Form  := User_Storage_Pool;
!             Pool_Actual :=
                Make_Attribute_Reference (Loc,
                  Prefix         =>
                    New_Occurrence_Of
*************** package body Exp_Ch6 is
*** 8473,8483 ****
                  Attribute_Name => Name_Unrestricted_Access);
  
           --  No user-defined pool; pass an allocation parameter indicating that
!          --  the function should allocate its result on the heap.
  
           else
!             Alloc_Form := Global_Heap;
!             Pool := Make_Null (No_Location);
           end if;
  
           --  The caller does not provide the return object in this case, so we
--- 8371,8390 ----
                  Attribute_Name => Name_Unrestricted_Access);
  
           --  No user-defined pool; pass an allocation parameter indicating that
!          --  the function should allocate its result on the heap. When there is
!          --  a finalization collection, a pool reference is required.
! 
!          elsif Needs_BIP_Collection (Function_Id) then
!             Alloc_Form  := Global_Heap;
!             Pool_Actual :=
!               Make_Attribute_Reference (Loc,
!                 Prefix         =>
!                   New_Occurrence_Of (RTE (RE_Global_Pool_Object), Loc),
!                 Attribute_Name => Name_Unrestricted_Access);
  
           else
!             Alloc_Form  := Global_Heap;
!             Pool_Actual := Empty;
           end if;
  
           --  The caller does not provide the return object in this case, so we
*************** package body Exp_Ch6 is
*** 8485,8490 ****
--- 8392,8401 ----
  
           Return_Obj_Actual := Empty;
  
+       --  When the result subtype neither is returned on the secondary stack
+       --  nor is tagged, the return object is created on the caller side, and
+       --  access to it is passed to the function.
+ 
        else
           --  Replace the initialized allocator of form "new T'(Func (...))"
           --  with an uninitialized allocator of form "new T", where T is the
*************** package body Exp_Ch6 is
*** 8521,8537 ****
  
           --  Indicate that caller allocates, and pass in the return object
  
!          Alloc_Form := Caller_Allocation;
!          Pool := Make_Null (No_Location);
           Return_Obj_Actual := Unchecked_Convert_To
             (Result_Subt,
              Make_Explicit_Dereference (Loc,
                Prefix => New_Occurrence_Of (Return_Obj_Access, Loc)));
- 
-       --  When the result subtype is unconstrained, the function itself must
-       --  perform the allocation of the return object, so we pass parameters
-       --  indicating that.
- 
        end if;
  
        --  Declare the temp object
--- 8432,8443 ----
  
           --  Indicate that caller allocates, and pass in the return object
  
!          Alloc_Form  := Caller_Allocation;
!          Pool_Actual := Empty;
           Return_Obj_Actual := Unchecked_Convert_To
             (Result_Subt,
              Make_Explicit_Dereference (Loc,
                Prefix => New_Occurrence_Of (Return_Obj_Access, Loc)));
        end if;
  
        --  Declare the temp object
*************** package body Exp_Ch6 is
*** 8585,8591 ****
        begin
           if Might_Have_Tasks (Result_Subt) then
              Actions := New_List;
!             Build_Task_Allocate_Block_With_Init_Stmts
                (Actions, Allocator, Init_Stmts => New_List (Assign));
              Chain := Activation_Chain_Entity (Last (Actions));
           else
--- 8491,8497 ----
        begin
           if Might_Have_Tasks (Result_Subt) then
              Actions := New_List;
!             Build_Task_Allocate_Block
                (Actions, Allocator, Init_Stmts => New_List (Assign));
              Chain := Activation_Chain_Entity (Last (Actions));
           else
*************** package body Exp_Ch6 is
*** 8593,8599 ****
              Chain   := Empty;
           end if;
  
!          Insert_Actions (Allocator, Actions);
        end;
  
        --  When the function has a controlling result, an allocation-form
--- 8499,8520 ----
              Chain   := Empty;
           end if;
  
!          --  See the Needs_Cleanup predicate in Expand_Allocator_Expression
! 
!          if Alloc_Form = Caller_Allocation
!            and then not For_Special_Return_Object (Allocator)
!            and then not (Is_Entity_Name (Name (Func_Call))
!                           and then No_Raise (Entity (Name (Func_Call))))
!            and then not Restriction_Active (No_Exception_Propagation)
!            and then RTE_Available (RE_Free)
!            and then not Debug_Flag_QQ
!          then
!             Insert_Action (Allocator,
!               Build_Cleanup_For_Allocator (Loc,
!                 Return_Obj_Access, Storage_Pool (Allocator), Actions));
!          else
!             Insert_Actions (Allocator, Actions);
!          end if;
        end;
  
        --  When the function has a controlling result, an allocation-form
*************** package body Exp_Ch6 is
*** 8603,8615 ****
        --  to functions with unconstrained result subtypes.
  
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
!         (Func_Call, Function_Id, Alloc_Form, Pool_Actual => Pool);
  
!       Add_Finalization_Master_Actual_To_Build_In_Place_Call
!         (Func_Call, Function_Id, Acc_Type);
  
        Add_Task_Actuals_To_Build_In_Place_Call
!         (Func_Call, Function_Id, Master_Actual => Master_Id (Acc_Type),
           Chain => Chain);
  
        --  Add an implicit actual to the function call that provides access
--- 8524,8541 ----
        --  to functions with unconstrained result subtypes.
  
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
!         (Func_Call,
!          Function_Id,
!          Alloc_Form => Alloc_Form,
!          Pool_Exp   => Pool_Actual);
  
!       Add_Collection_Actual_To_Build_In_Place_Call
!         (Func_Call, Function_Id, Ptr_Typ => Acc_Type);
  
        Add_Task_Actuals_To_Build_In_Place_Call
!         (Func_Call,
!          Function_Id,
!          Master_Actual => Master_Id (Acc_Type),
           Chain => Chain);
  
        --  Add an implicit actual to the function call that provides access
*************** package body Exp_Ch6 is
*** 8738,8744 ****
           Add_Unconstrained_Actuals_To_Build_In_Place_Call
             (Func_Call, Function_Id, Alloc_Form => Caller_Allocation);
  
!          Add_Finalization_Master_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id);
  
           Add_Task_Actuals_To_Build_In_Place_Call
--- 8664,8670 ----
           Add_Unconstrained_Actuals_To_Build_In_Place_Call
             (Func_Call, Function_Id, Alloc_Form => Caller_Allocation);
  
!          Add_Collection_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id);
  
           Add_Task_Actuals_To_Build_In_Place_Call
*************** package body Exp_Ch6 is
*** 8765,8771 ****
           Add_Unconstrained_Actuals_To_Build_In_Place_Call
             (Func_Call, Function_Id, Alloc_Form => Secondary_Stack);
  
!          Add_Finalization_Master_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id);
  
           Add_Task_Actuals_To_Build_In_Place_Call
--- 8691,8697 ----
           Add_Unconstrained_Actuals_To_Build_In_Place_Call
             (Func_Call, Function_Id, Alloc_Form => Secondary_Stack);
  
!          Add_Collection_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id);
  
           Add_Task_Actuals_To_Build_In_Place_Call
*************** package body Exp_Ch6 is
*** 8830,8836 ****
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
          (Func_Call, Func_Id, Alloc_Form => Caller_Allocation);
  
!       Add_Finalization_Master_Actual_To_Build_In_Place_Call
          (Func_Call, Func_Id);
  
        Add_Task_Actuals_To_Build_In_Place_Call
--- 8756,8762 ----
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
          (Func_Call, Func_Id, Alloc_Form => Caller_Allocation);
  
!       Add_Collection_Actual_To_Build_In_Place_Call
          (Func_Call, Func_Id);
  
        Add_Task_Actuals_To_Build_In_Place_Call
*************** package body Exp_Ch6 is
*** 8915,8936 ****
        Func_Call   : constant Node_Id    := Unqual_Conv (Function_Call);
        Function_Id : constant Entity_Id  := Get_Function_Id (Func_Call);
        Loc         : constant Source_Ptr := Sloc (Function_Call);
        Obj_Loc     : constant Source_Ptr := Sloc (Obj_Decl);
        Obj_Def_Id  : constant Entity_Id  := Defining_Identifier (Obj_Decl);
        Obj_Typ     : constant Entity_Id  := Etype (Obj_Def_Id);
        Encl_Func   : constant Entity_Id  := Enclosing_Subprogram (Obj_Def_Id);
        Result_Subt : constant Entity_Id  := Etype (Function_Id);
  
!       Call_Deref      : Node_Id;
!       Caller_Object   : Node_Id;
!       Def_Id          : Entity_Id;
!       Designated_Type : Entity_Id;
!       Fmaster_Actual  : Node_Id := Empty;
!       Pool_Actual     : Node_Id;
!       Ptr_Typ         : Entity_Id;
!       Ptr_Typ_Decl    : Node_Id;
!       Pass_Caller_Acc : Boolean := False;
!       Res_Decl        : Node_Id;
  
        Definite : constant Boolean :=
                     Caller_Known_Size (Func_Call, Result_Subt)
--- 8841,8863 ----
        Func_Call   : constant Node_Id    := Unqual_Conv (Function_Call);
        Function_Id : constant Entity_Id  := Get_Function_Id (Func_Call);
        Loc         : constant Source_Ptr := Sloc (Function_Call);
+       Marker      : constant Node_Id    := Next (Obj_Decl);
        Obj_Loc     : constant Source_Ptr := Sloc (Obj_Decl);
        Obj_Def_Id  : constant Entity_Id  := Defining_Identifier (Obj_Decl);
        Obj_Typ     : constant Entity_Id  := Etype (Obj_Def_Id);
        Encl_Func   : constant Entity_Id  := Enclosing_Subprogram (Obj_Def_Id);
        Result_Subt : constant Entity_Id  := Etype (Function_Id);
  
!       Call_Deref        : Node_Id;
!       Caller_Object     : Node_Id;
!       Collection_Actual : Node_Id := Empty;
!       Def_Id            : Entity_Id;
!       Designated_Type   : Entity_Id;
!       Pool_Actual       : Node_Id;
!       Ptr_Typ           : Entity_Id;
!       Ptr_Typ_Decl      : Node_Id;
!       Pass_Caller_Acc   : Boolean := False;
!       Res_Decl          : Node_Id;
  
        Definite : constant Boolean :=
                     Caller_Known_Size (Func_Call, Result_Subt)
*************** package body Exp_Ch6 is
*** 8994,9064 ****
        --  if the object declaration is for a return object, the access type and
        --  object must be inserted before the object, since the object
        --  declaration is rewritten to be a renaming of a dereference of the
!       --  access object. Note: we need to freeze Ptr_Typ explicitly, because
!       --  the result object is in a different (transient) scope, so won't cause
!       --  freezing.
  
        if Definite and then not Is_OK_Return_Object then
! 
!          --  The presence of an address clause complicates the build-in-place
!          --  expansion because the indicated address must be processed before
!          --  the indirect call is generated (including the definition of a
!          --  local pointer to the object). The address clause may come from
!          --  an aspect specification or from an explicit attribute
!          --  specification appearing after the object declaration. These two
!          --  cases require different processing.
! 
!          if Has_Aspect (Obj_Def_Id, Aspect_Address) then
! 
!             --  Skip non-delayed pragmas that correspond to other aspects, if
!             --  any, to find proper insertion point for freeze node of object.
! 
!             declare
!                D : Node_Id := Obj_Decl;
!                N : Node_Id := Next (D);
! 
!             begin
!                while Present (N)
!                  and then Nkind (N) in N_Attribute_Reference | N_Pragma
!                loop
!                   Analyze (N);
!                   D := N;
!                   Next (N);
!                end loop;
! 
!                Insert_After (D, Ptr_Typ_Decl);
! 
!                --  Freeze object before pointer declaration, to ensure that
!                --  generated attribute for address is inserted at the proper
!                --  place.
! 
!                Freeze_Before (Ptr_Typ_Decl, Obj_Def_Id);
!             end;
! 
!             Analyze (Ptr_Typ_Decl);
! 
!          elsif Present (Following_Address_Clause (Obj_Decl)) then
! 
!             --  Locate explicit address clause, which may also follow pragmas
!             --  generated by other aspect specifications.
! 
!             declare
!                Addr : constant Node_Id := Following_Address_Clause (Obj_Decl);
!                D    : Node_Id := Next (Obj_Decl);
! 
!             begin
!                while Present (D) loop
!                   Analyze (D);
!                   exit when D = Addr;
!                   Next (D);
!                end loop;
! 
!                Insert_After_And_Analyze (Addr, Ptr_Typ_Decl);
!             end;
! 
!          else
!             Insert_After_And_Analyze (Obj_Decl, Ptr_Typ_Decl);
!          end if;
        else
           Insert_Action (Obj_Decl, Ptr_Typ_Decl);
        end if;
--- 8921,8930 ----
        --  if the object declaration is for a return object, the access type and
        --  object must be inserted before the object, since the object
        --  declaration is rewritten to be a renaming of a dereference of the
!       --  access object.
  
        if Definite and then not Is_OK_Return_Object then
!          Insert_Action_After (Obj_Decl, Ptr_Typ_Decl);
        else
           Insert_Action (Obj_Decl, Ptr_Typ_Decl);
        end if;
*************** package body Exp_Ch6 is
*** 9107,9113 ****
                 Alloc_Form_Exp =>
                   New_Occurrence_Of
                     (Build_In_Place_Formal (Encl_Func, BIP_Alloc_Form), Loc),
!                Pool_Actual    => Pool_Actual);
  
           --  Otherwise, if enclosing function has a definite result subtype,
           --  then caller allocation will be used.
--- 8973,8979 ----
                 Alloc_Form_Exp =>
                   New_Occurrence_Of
                     (Build_In_Place_Formal (Encl_Func, BIP_Alloc_Form), Loc),
!                Pool_Exp       => Pool_Actual);
  
           --  Otherwise, if enclosing function has a definite result subtype,
           --  then caller allocation will be used.
*************** package body Exp_Ch6 is
*** 9117,9127 ****
                (Func_Call, Function_Id, Alloc_Form => Caller_Allocation);
           end if;
  
!          if Needs_BIP_Finalization_Master (Encl_Func) then
!             Fmaster_Actual :=
                New_Occurrence_Of
                  (Build_In_Place_Formal
!                    (Encl_Func, BIP_Finalization_Master), Loc);
           end if;
  
           --  Retrieve the BIPacc formal from the enclosing function and convert
--- 8983,8993 ----
                (Func_Call, Function_Id, Alloc_Form => Caller_Allocation);
           end if;
  
!          if Needs_BIP_Collection (Encl_Func) then
!             Collection_Actual :=
                New_Occurrence_Of
                  (Build_In_Place_Formal
!                    (Encl_Func, BIP_Collection), Loc);
           end if;
  
           --  Retrieve the BIPacc formal from the enclosing function and convert
*************** package body Exp_Ch6 is
*** 9159,9185 ****
        elsif Is_Library_Level_Entity (Obj_Def_Id)
          and then not Restriction_Active (No_Implicit_Heap_Allocations)
        then
!          Add_Unconstrained_Actuals_To_Build_In_Place_Call
!            (Func_Call, Function_Id, Alloc_Form => Global_Heap);
!          Caller_Object := Empty;
! 
!          --  Create a finalization master for the access result type to ensure
!          --  that the heap allocation can properly chain the object and later
!          --  finalize it when the library unit goes out of scope.
  
!          if Needs_Finalization (Etype (Func_Call)) then
!             Build_Finalization_Master
                (Typ            => Ptr_Typ,
                 For_Lib_Level  => True,
                 Insertion_Node => Ptr_Typ_Decl);
  
!             Fmaster_Actual :=
                Make_Attribute_Reference (Loc,
                  Prefix         =>
!                   New_Occurrence_Of (Finalization_Master (Ptr_Typ), Loc),
                  Attribute_Name => Name_Unrestricted_Access);
           end if;
  
        --  In other indefinite cases, pass an indication to do the allocation
        --  on the secondary stack and set Caller_Object to Empty so that a null
        --  value will be passed for the caller's object address. A transient
--- 9025,9063 ----
        elsif Is_Library_Level_Entity (Obj_Def_Id)
          and then not Restriction_Active (No_Implicit_Heap_Allocations)
        then
!          --  Create a finalization collection for the access result type to
!          --  ensure that the heap allocation can properly chain the object
!          --  and later finalize it when the library unit goes out of scope.
  
!          if Needs_BIP_Collection (Func_Call) then
!             Build_Finalization_Collection
                (Typ            => Ptr_Typ,
                 For_Lib_Level  => True,
                 Insertion_Node => Ptr_Typ_Decl);
  
!             Collection_Actual :=
                Make_Attribute_Reference (Loc,
                  Prefix         =>
!                   New_Occurrence_Of (Finalization_Collection (Ptr_Typ), Loc),
                  Attribute_Name => Name_Unrestricted_Access);
+ 
+             Pool_Actual :=
+               Make_Attribute_Reference (Loc,
+                 Prefix         =>
+                   New_Occurrence_Of (RTE (RE_Global_Pool_Object), Loc),
+                 Attribute_Name => Name_Unrestricted_Access);
+ 
+          else
+             Pool_Actual := Empty;
           end if;
  
+          Add_Unconstrained_Actuals_To_Build_In_Place_Call
+            (Func_Call,
+             Function_Id,
+             Alloc_Form => Global_Heap,
+             Pool_Exp   => Pool_Actual);
+          Caller_Object := Empty;
+ 
        --  In other indefinite cases, pass an indication to do the allocation
        --  on the secondary stack and set Caller_Object to Empty so that a null
        --  value will be passed for the caller's object address. A transient
*************** package body Exp_Ch6 is
*** 9193,9206 ****
           Establish_Transient_Scope (Obj_Decl, Manage_Sec_Stack => True);
        end if;
  
!       --  Pass along any finalization master actual, which is needed in the
!       --  case where the called function initializes a return object of an
!       --  enclosing build-in-place function.
  
!       Add_Finalization_Master_Actual_To_Build_In_Place_Call
!         (Func_Call  => Func_Call,
!          Func_Id    => Function_Id,
!          Master_Exp => Fmaster_Actual);
  
        if Nkind (Parent (Obj_Decl)) = N_Extended_Return_Statement
          and then Needs_BIP_Task_Actuals (Function_Id)
--- 9071,9082 ----
           Establish_Transient_Scope (Obj_Decl, Manage_Sec_Stack => True);
        end if;
  
!       --  Pass along any finalization collection actual, which is needed in
!       --  the case where the called function initializes a return object of
!       --  an enclosing build-in-place function.
  
!       Add_Collection_Actual_To_Build_In_Place_Call
!         (Func_Call, Function_Id, Collection_Exp => Collection_Actual);
  
        if Nkind (Parent (Obj_Decl)) = N_Extended_Return_Statement
          and then Needs_BIP_Task_Actuals (Function_Id)
*************** package body Exp_Ch6 is
*** 9268,9291 ****
  
        if Definite and then not Is_OK_Return_Object then
  
!          --  The related object declaration is encased in a transient block
!          --  because the build-in-place function call contains at least one
!          --  nested function call that produces a controlled transient
!          --  temporary:
! 
!          --    Obj : ... := BIP_Func_Call (Ctrl_Func_Call);
  
           --  Since the build-in-place expansion decouples the call from the
!          --  object declaration, the finalization machinery lacks the context
!          --  which prompted the generation of the transient block. To resolve
!          --  this scenario, store the build-in-place call.
  
!          if Scope_Is_Transient then
!             Set_BIP_Initialization_Call (Obj_Def_Id, Res_Decl);
!          end if;
  
!          Set_Expression (Obj_Decl, Empty);
!          Set_No_Initialization (Obj_Decl);
  
        --  In case of an indefinite result subtype, or if the call is the
        --  return expression of an enclosing BIP function, rewrite the object
--- 9144,9167 ----
  
        if Definite and then not Is_OK_Return_Object then
  
!          Set_Expression (Obj_Decl, Empty);
!          Set_No_Initialization (Obj_Decl);
  
           --  Since the build-in-place expansion decouples the call from the
!          --  object declaration, the finalization machinery needs to know
!          --  when the object is initialized. Store the build-in-place call.
  
!          Set_BIP_Initialization_Call (Obj_Def_Id, Res_Decl);
  
!          --  Park the generated statements if the declaration requires it and
!          --  is not the node that is wrapped in a transient scope.
! 
!          if Needs_Initialization_Statements (Obj_Decl)
!            and then not (Scope_Is_Transient
!                           and then Obj_Decl = Node_To_Be_Wrapped)
!          then
!             Move_To_Initialization_Statements (Obj_Decl, Marker);
!          end if;
  
        --  In case of an indefinite result subtype, or if the call is the
        --  return expression of an enclosing BIP function, rewrite the object
*************** package body Exp_Ch6 is
*** 9492,9497 ****
--- 9368,9383 ----
        Insert_Action (Obj_Decl, Tmp_Decl);
        Expander_Mode_Restore;
  
+       --  Inherit Is_Return_Object from the parent object to the temp object,
+       --  so that Make_In_Build_Place_Call_In_Object_Declaration will handle
+       --  the temp properly in cases where there's a BIP_Alloc_Form formal of
+       --  an enclosing function that should be passed along (and which also
+       --  ensures that if the BIP call is used as a function result and it
+       --  requires finalization, then it will not be finalized prematurely
+       --  or redundantly).
+ 
+       Set_Is_Return_Object (Tmp_Id, Is_Return_Object (Obj_Id));
+ 
        Make_Build_In_Place_Call_In_Object_Declaration
          (Obj_Decl      => Tmp_Decl,
           Function_Call => Expression (Tmp_Decl));
*************** package body Exp_Ch6 is
*** 9589,9595 ****
        Insert_Action (Allocator, Tmp_Obj);
  
        Insert_List_After_And_Analyze (Tmp_Obj,
!         Build_Initialization_Call (Loc,
            Id_Ref =>
              Make_Explicit_Dereference (Loc,
                Prefix => New_Occurrence_Of (Return_Obj_Access, Loc)),
--- 9475,9481 ----
        Insert_Action (Allocator, Tmp_Obj);
  
        Insert_List_After_And_Analyze (Tmp_Obj,
!         Build_Initialization_Call (Allocator,
            Id_Ref =>
              Make_Explicit_Dereference (Loc,
                Prefix => New_Occurrence_Of (Return_Obj_Access, Loc)),
*************** package body Exp_Ch6 is
*** 9693,9708 ****
        end if;
     end Needs_BIP_Task_Actuals;
  
!    -----------------------------------
!    -- Needs_BIP_Finalization_Master --
!    -----------------------------------
  
!    function Needs_BIP_Finalization_Master (Func_Id : Entity_Id) return Boolean
!    is
        Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
  
     begin
!       --  A formal giving the finalization master is needed for build-in-place
        --  functions whose result type needs finalization or is a tagged type.
        --  Tagged primitive build-in-place functions need such a formal because
        --  they can be called by a dispatching call, and extensions may require
--- 9579,9593 ----
        end if;
     end Needs_BIP_Task_Actuals;
  
!    --------------------------
!    -- Needs_BIP_Collection --
!    --------------------------
  
!    function Needs_BIP_Collection (Func_Id : Entity_Id) return Boolean is
        Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
  
     begin
!       --  A formal for the finalization collection is needed for build-in-place
        --  functions whose result type needs finalization or is a tagged type.
        --  Tagged primitive build-in-place functions need such a formal because
        --  they can be called by a dispatching call, and extensions may require
*************** package body Exp_Ch6 is
*** 9713,9721 ****
        --  such build-in-place functions, primitive or not.
  
        return not Restriction_Active (No_Finalization)
!         and then (Needs_Finalization (Typ) or else Is_Tagged_Type (Typ))
          and then not Has_Foreign_Convention (Typ);
!    end Needs_BIP_Finalization_Master;
  
     --------------------------
     -- Needs_BIP_Alloc_Form --
--- 9598,9608 ----
        --  such build-in-place functions, primitive or not.
  
        return not Restriction_Active (No_Finalization)
!         and then ((Needs_Finalization (Typ)
!                     and then not Has_Relaxed_Finalization (Typ))
!                   or else Is_Tagged_Type (Typ))
          and then not Has_Foreign_Convention (Typ);
!    end Needs_BIP_Collection;
  
     --------------------------
     -- Needs_BIP_Alloc_Form --
*************** package body Exp_Ch6 is
*** 9725,9730 ****
--- 9612,9623 ----
        Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
  
     begin
+       --  See Make_Build_In_Place_Call_In_Allocator for the rationale
+ 
+       if Needs_BIP_Collection (Func_Id) then
+          return True;
+       end if;
+ 
        --  A formal giving the allocation method is needed for build-in-place
        --  functions whose result type is returned on the secondary stack or
        --  is a tagged type. Tagged primitive build-in-place functions need
*************** package body Exp_Ch6 is
*** 9750,9757 ****
     -------------------------------------
  
     procedure Replace_Renaming_Declaration_Id
!       (New_Decl  : Node_Id;
!        Orig_Decl : Node_Id)
     is
        New_Id  : constant Entity_Id := Defining_Entity (New_Decl);
        Orig_Id : constant Entity_Id := Defining_Entity (Orig_Decl);
--- 9643,9650 ----
     -------------------------------------
  
     procedure Replace_Renaming_Declaration_Id
!      (New_Decl  : Node_Id;
!       Orig_Decl : Node_Id)
     is
        New_Id  : constant Entity_Id := Defining_Entity (New_Decl);
        Orig_Id : constant Entity_Id := Defining_Entity (Orig_Decl);
*************** package body Exp_Ch6 is
*** 9784,9903 ****
        Set_Is_Aliased (Orig_Id, Is_Aliased (New_Id));
     end Replace_Renaming_Declaration_Id;
  
-    ---------------------------------
-    -- Rewrite_Function_Call_For_C --
-    ---------------------------------
- 
-    procedure Rewrite_Function_Call_For_C (N : Node_Id) is
-       Orig_Func   : constant Entity_Id  := Entity (Name (N));
-       Func_Id     : constant Entity_Id  := Ultimate_Alias (Orig_Func);
-       Par         : constant Node_Id    := Parent (N);
-       Proc_Id     : constant Entity_Id  := Corresponding_Procedure (Func_Id);
-       Loc         : constant Source_Ptr := Sloc (Par);
-       Actuals     : List_Id;
-       Last_Actual : Node_Id;
-       Last_Formal : Entity_Id;
- 
-    --  Start of processing for Rewrite_Function_Call_For_C
- 
-    begin
-       --  The actuals may be given by named associations, so the added actual
-       --  that is the target of the return value of the call must be a named
-       --  association as well, so we retrieve the name of the generated
-       --  out_formal.
- 
-       Last_Formal := First_Formal (Proc_Id);
-       while Present (Next_Formal (Last_Formal)) loop
-          Next_Formal (Last_Formal);
-       end loop;
- 
-       Actuals := Parameter_Associations (N);
- 
-       --  The original function may lack parameters
- 
-       if No (Actuals) then
-          Actuals := New_List;
-       end if;
- 
-       --  If the function call is the expression of an assignment statement,
-       --  transform the assignment into a procedure call. Generate:
- 
-       --    LHS := Func_Call (...);
- 
-       --    Proc_Call (..., LHS);
- 
-       --  If function is inherited, a conversion may be necessary.
- 
-       if Nkind (Par) = N_Assignment_Statement then
-          Last_Actual := Name (Par);
- 
-          if not Comes_From_Source (Orig_Func)
-            and then Etype (Orig_Func) /= Etype (Func_Id)
-          then
-             Last_Actual :=
-               Make_Type_Conversion (Loc,
-                 New_Occurrence_Of (Etype (Func_Id), Loc),
-                 Last_Actual);
-          end if;
- 
-          Append_To (Actuals,
-            Make_Parameter_Association (Loc,
-              Selector_Name             =>
-                Make_Identifier (Loc, Chars (Last_Formal)),
-              Explicit_Actual_Parameter => Last_Actual));
- 
-          Rewrite (Par,
-            Make_Procedure_Call_Statement (Loc,
-              Name                   => New_Occurrence_Of (Proc_Id, Loc),
-              Parameter_Associations => Actuals));
-          Analyze (Par);
- 
-       --  Otherwise the context is an expression. Generate a temporary and a
-       --  procedure call to obtain the function result. Generate:
- 
-       --    ... Func_Call (...) ...
- 
-       --    Temp : ...;
-       --    Proc_Call (..., Temp);
-       --    ... Temp ...
- 
-       else
-          declare
-             Temp_Id : constant Entity_Id := Make_Temporary (Loc, 'T');
-             Call    : Node_Id;
-             Decl    : Node_Id;
- 
-          begin
-             --  Generate:
-             --    Temp : ...;
- 
-             Decl :=
-               Make_Object_Declaration (Loc,
-                 Defining_Identifier => Temp_Id,
-                 Object_Definition   =>
-                   New_Occurrence_Of (Etype (Func_Id), Loc));
- 
-             --  Generate:
-             --    Proc_Call (..., Temp);
- 
-             Append_To (Actuals,
-               Make_Parameter_Association (Loc,
-                 Selector_Name             =>
-                   Make_Identifier (Loc, Chars (Last_Formal)),
-                 Explicit_Actual_Parameter =>
-                   New_Occurrence_Of (Temp_Id, Loc)));
- 
-             Call :=
-               Make_Procedure_Call_Statement (Loc,
-                 Name                   => New_Occurrence_Of (Proc_Id, Loc),
-                 Parameter_Associations => Actuals);
- 
-             Insert_Actions (Par, New_List (Decl, Call));
-             Rewrite (N, New_Occurrence_Of (Temp_Id, Loc));
-          end;
-       end if;
-    end Rewrite_Function_Call_For_C;
- 
     ------------------------------------
     -- Set_Enclosing_Sec_Stack_Return --
     ------------------------------------
--- 9677,9682 ----
*************** package body Exp_Ch6 is
*** 10060,10066 ****
              when N_Entry_Call_Statement
                 | N_Procedure_Call_Statement
                 | N_Function_Call
!               =>
                 declare
                    Call_Node : Node_Id renames Nod;
                    Subp      : Entity_Id;
--- 9839,9845 ----
              when N_Entry_Call_Statement
                 | N_Procedure_Call_Statement
                 | N_Function_Call
!             =>
                 declare
                    Call_Node : Node_Id renames Nod;
                    Subp      : Entity_Id;
*************** package body Exp_Ch6 is
*** 10140,10146 ****
  
              when N_Procedure_Specification
                 | N_Function_Specification
!               =>
                 return Skip;
  
              when N_Abstract_Subprogram_Declaration
--- 9919,9925 ----
  
              when N_Procedure_Specification
                 | N_Function_Specification
!             =>
                 return Skip;
  
              when N_Abstract_Subprogram_Declaration
*************** package body Exp_Ch6 is
*** 10170,10176 ****
                 | N_Use_Package_Clause
                 | N_Use_Type_Clause
                 | N_With_Clause
!               =>
                 return Skip;
  
              when others =>
--- 9949,9955 ----
                 | N_Use_Package_Clause
                 | N_Use_Type_Clause
                 | N_With_Clause
!             =>
                 return Skip;
  
              when others =>
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch6.ads gcc-15.1.0/gcc/ada/exp_ch6.ads
*** gcc-14.2.0/gcc/ada/exp_ch6.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch6.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch6 is
*** 47,54 ****
     --  nodes (e.g. the filling of the corresponding Dispatch Table for
     --  Primitive Operations)
  
!    --  The following type defines the various forms of allocation used for the
!    --  results of build-in-place function calls.
  
     type BIP_Allocation_Form is
       (Unspecified,
--- 47,54 ----
     --  nodes (e.g. the filling of the corresponding Dispatch Table for
     --  Primitive Operations)
  
!    --  Ada 2005 (AI-318-02): The following type defines the various forms of
!    --  allocation used for the result of build-in-place function calls.
  
     type BIP_Allocation_Form is
       (Unspecified,
*************** package Exp_Ch6 is
*** 57,82 ****
        Global_Heap,
        User_Storage_Pool);
  
-    type BIP_Formal_Kind is
     --  Ada 2005 (AI-318-02): This type defines the kinds of implicit extra
     --  formals created for build-in-place functions. The order of these
     --  enumeration literals matches the order in which the formals are
     --  declared. See Sem_Ch6.Create_Extra_Formals.
  
       (BIP_Alloc_Form,
!       --  Present if result subtype is unconstrained or tagged. Indicates
!       --  whether the return object is allocated by the caller or callee, and
!       --  if the callee, whether to use the secondary stack or the heap. See
!       --  Create_Extra_Formals.
  
        BIP_Storage_Pool,
!       --  Present if result subtype is unconstrained or tagged. If
!       --  BIP_Alloc_Form = User_Storage_Pool, this is a pointer to the pool
!       --  (of type access to Root_Storage_Pool'Class). Otherwise null.
  
!       BIP_Finalization_Master,
!       --  Present if result type needs finalization. Pointer to caller's
!       --  finalization master.
  
        BIP_Task_Master,
        --  Present if result type contains tasks. Master associated with
--- 57,84 ----
        Global_Heap,
        User_Storage_Pool);
  
     --  Ada 2005 (AI-318-02): This type defines the kinds of implicit extra
     --  formals created for build-in-place functions. The order of these
     --  enumeration literals matches the order in which the formals are
     --  declared. See Sem_Ch6.Create_Extra_Formals.
  
+    type BIP_Formal_Kind is
       (BIP_Alloc_Form,
!       --  Present if result subtype is returned on the secondary stack or is
!       --  tagged: in this case, this indicates whether the return object is
!       --  allocated by the caller or callee, and if the callee, whether to
!       --  use the secondary stack, the global heap or a storage pool. Also
!       --  present if result type needs finalization.
  
        BIP_Storage_Pool,
!       --  Present if result subtype is returned on the secondary stack or is
!       --  tagged: in this case, if BIP_Alloc_Form = User_Storage_Pool, this
!       --  is a pointer to the pool (of type Root_Storage_Pool_Ptr); otherwise
!       --  this is null. Also present if result type needs finalization.
  
!       BIP_Collection,
!       --  Present if result type needs finalization. Pointer to the collection
!       --  of the access type used by the caller.
  
        BIP_Task_Master,
        --  Present if result type contains tasks. Master associated with
*************** package Exp_Ch6 is
*** 285,291 ****
     --  Ada 2005 (AI-318-02): Return True if the function needs an implicit
     --  BIP_Alloc_Form parameter (see type BIP_Formal_Kind).
  
!    function Needs_BIP_Finalization_Master (Func_Id : Entity_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Return True if the result subtype of function
     --  Func_Id might need finalization actions. This includes build-in-place
     --  functions with tagged result types, since they can be invoked via
--- 287,293 ----
     --  Ada 2005 (AI-318-02): Return True if the function needs an implicit
     --  BIP_Alloc_Form parameter (see type BIP_Formal_Kind).
  
!    function Needs_BIP_Collection (Func_Id : Entity_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Return True if the result subtype of function
     --  Func_Id might need finalization actions. This includes build-in-place
     --  functions with tagged result types, since they can be invoked via
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch7.adb gcc-15.1.0/gcc/ada/exp_ch7.adb
*** gcc-14.2.0/gcc/ada/exp_ch7.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch7.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Tss;        use Exp_Tss;
*** 45,50 ****
--- 45,51 ----
  with Exp_Util;       use Exp_Util;
  with Freeze;         use Freeze;
  with GNAT_CUDA;      use GNAT_CUDA;
+ with Inline;         use Inline;
  with Lib;            use Lib;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Exp_Ch7 is
*** 74,201 ****
     -- Finalization Management --
     -----------------------------
  
!    --  This part describes how Initialization/Adjustment/Finalization
     --  procedures are generated and called. Two cases must be considered: types
!    --  that are Controlled (Is_Controlled flag set) and composite types that
     --  contain controlled components (Has_Controlled_Component flag set). In
     --  the first case the procedures to call are the user-defined primitive
!    --  operations Initialize/Adjust/Finalize. In the second case, GNAT
     --  generates Deep_Initialize, Deep_Adjust and Deep_Finalize that are in
     --  charge of calling the former procedures on the controlled components.
  
!    --  For records with Has_Controlled_Component set, a hidden "controller"
!    --  component is inserted. This controller component contains its own
!    --  finalization list on which all controlled components are attached
!    --  creating an indirection on the upper-level Finalization list. This
!    --  technique facilitates the management of objects whose number of
!    --  controlled components changes during execution. This controller
!    --  component is itself controlled and is attached to the upper-level
!    --  finalization chain. Its adjust primitive is in charge of calling adjust
!    --  on the components and adjusting the finalization pointer to match their
!    --  new location (see a-finali.adb).
! 
!    --  It is not possible to use a similar technique for arrays that have
!    --  Has_Controlled_Component set. In this case, deep procedures are
!    --  generated that call initialize/adjust/finalize + attachment or
!    --  detachment on the finalization list for all component.
! 
!    --  Initialize calls: they are generated for declarations or dynamic
!    --  allocations of Controlled objects with no initial value. They are always
!    --  followed by an attachment to the current Finalization Chain. For the
!    --  dynamic allocation case this the chain attached to the scope of the
!    --  access type definition otherwise, this is the chain of the current
!    --  scope.
  
!    --  Adjust Calls: They are generated on 2 occasions: (1) for declarations
!    --  or dynamic allocations of Controlled objects with an initial value.
!    --  (2) after an assignment. In the first case they are followed by an
!    --  attachment to the final chain, in the second case they are not.
  
!    --  Finalization Calls: They are generated on (1) scope exit, (2)
!    --  assignments, (3) unchecked deallocations. In case (3) they have to
!    --  be detached from the final chain, in case (2) they must not and in
!    --  case (1) this is not important since we are exiting the scope anyway.
  
!    --  Other details:
  
!    --    Type extensions will have a new record controller at each derivation
!    --    level containing controlled components. The record controller for
!    --    the parent/ancestor is attached to the finalization list of the
!    --    extension's record controller (i.e. the parent is like a component
!    --    of the extension).
  
!    --    For types that are both Is_Controlled and Has_Controlled_Components,
!    --    the record controller and the object itself are handled separately.
!    --    It could seem simpler to attach the object at the end of its record
!    --    controller but this would not tackle view conversions properly.
  
!    --    A classwide type can always potentially have controlled components
!    --    but the record controller of the corresponding actual type may not
!    --    be known at compile time so the dispatch table contains a special
!    --    field that allows computation of the offset of the record controller
!    --    dynamically. See s-finimp.Deep_Tag_Attach and a-tags.RC_Offset.
  
!    --  Here is a simple example of the expansion of a controlled block :
  
     --    declare
!    --       X : Controlled;
!    --       Y : Controlled := Init;
!    --
!    --       type R is record
!    --          C : Controlled;
     --       end record;
!    --       W : R;
!    --       Z : R := (C => X);
  
     --    begin
     --       X := Y;
     --       W := Z;
     --    end;
     --
!    --  is expanded into
     --
     --    declare
!    --       _L : System.FI.Finalizable_Ptr;
  
!    --       procedure _Clean is
!    --       begin
     --          Abort_Defer;
!    --          System.FI.Finalize_List (_L);
     --          Abort_Undefer;
!    --       end _Clean;
  
!    --       X : Controlled;
!    --       begin
!    --          Abort_Defer;
!    --          Initialize (X);
!    --          Attach_To_Final_List (_L, Finalizable (X), 1);
!    --       at end: Abort_Undefer;
!    --       Y : Controlled := Init;
!    --       Adjust (Y);
!    --       Attach_To_Final_List (_L, Finalizable (Y), 1);
!    --
!    --       type R is record
!    --          C : Controlled;
     --       end record;
!    --       W : R;
     --       begin
     --          Abort_Defer;
!    --          Deep_Initialize (W, _L, 1);
!    --       at end: Abort_Under;
!    --       Z : R := (C => X);
!    --       Deep_Adjust (Z, _L, 1);
  
     --    begin
     --       _Assign (X, Y);
!    --       Deep_Finalize (W, False);
!    --       <save W's final pointers>
     --       W := Z;
!    --       <restore W's final pointers>
!    --       Deep_Adjust (W, _L, 0);
     --    at end
!    --       _Clean;
     --    end;
  
     type Final_Primitives is
       (Initialize_Case, Adjust_Case, Finalize_Case, Address_Case);
     --  This enumeration type is defined in order to ease sharing code for
--- 75,400 ----
     -- Finalization Management --
     -----------------------------
  
!    --  This paragraph describes how Initialization/Adjustment/Finalization
     --  procedures are generated and called. Two cases must be considered: types
!    --  that are controlled (Is_Controlled flag set) and composite types that
     --  contain controlled components (Has_Controlled_Component flag set). In
     --  the first case the procedures to call are the user-defined primitive
!    --  operations Initialize/Adjust/Finalize. In the second case, the compiler
     --  generates Deep_Initialize, Deep_Adjust and Deep_Finalize that are in
     --  charge of calling the former procedures on the controlled components.
  
!    --  Initialize calls: they are generated for either declarations or dynamic
!    --  allocations of controlled objects with no initial value. They are always
!    --  followed by an attachment to some finalization chain. For the dynamic
!    --  dynamic allocation case, this is the collection attached to the access
!    --  type definition; otherwise, this is the master of the current scope.
  
!    --  Adjust calls: they are generated on two occasions: (1) for declarations
!    --  or dynamic allocations of controlled objects with an initial value (with
!    --  the exception of function calls), (2) after an assignment. In the first
!    --  case they are followed by an attachment to the finalization chain, in
!    --  the second case they are not.
  
!    --  Finalization calls: they are generated on three occasions: (1) on scope
!    --  exit, (2) assignments, (3) unchecked deallocations. In case (3) objects
!    --  have to be detached from the finalization chain, in case (2) they must
!    --  not and in case (1) this is optional as we are exiting the scope anyway.
  
!    --  There are two kinds of finalization chain to which objects are attached,
!    --  depending on the way they are created. For objects (statically) declared
!    --  in a scope, the finalization chain is that of the master of the scope,
!    --  which is embodied in a Finalization_Master object. As per RM 7.6.1(11/3)
!    --  the finalization of the master (on scope exit) performs the finalization
!    --  of objects attached to its chain in the reverse order of their creation.
  
!    --  For dynamically allocated objects, the finalization chain is that of the
!    --  finalization collection of the access type through which the objects are
!    --  allocated, which is embodied in a Finalization_Collection object. As per
!    --  RM 7.6.1(11.1/3), the finalization of the collection performs the
!    --  finalization of objects attached to its chain in an arbitrary order.
  
!    --  A Finalization_Collection object is implemented as a controlled object
!    --  and its finalization is therefore driven by the finalization master of
!    --  the scope where it is declared. As per RM 7.6.1(11.2/3), for a named
!    --  access type, the Finalization_Collection object is declared in the list
!    --  of actions of its freeze node.
  
!    --  ??? For an anonymous access type, the implementation deviates from the
!    --  RM 7.6.1 clause as follows: all the anonymous access types with the same
!    --  designated type that are (implicitly) declared in a library unit share a
!    --  single Finalization_Collection object declared in the outermost scope of
!    --  the library unit, except if the designated type is declared in a dynamic
!    --  scope nested in the unit; in this case no Finalization_Collection object
!    --  is created. As a result, in the first case, objects allocated through
!    --  the anonymous access types are finalized when the library unit goes out
!    --  of scope, while in the second case, they are not finalized at all.
  
!    --  Here is a simple example of the expansion of a controlled block:
  
     --    declare
!    --       X : Ctrl;
!    --       Y : Ctrl := Init;
! 
!    --       type Rec is record
!    --          C : Ctrl;
     --       end record;
! 
!    --       W : Rec;
!    --       Z : Rec := Init;
  
     --    begin
     --       X := Y;
     --       W := Z;
     --    end;
     --
!    --  is expanded into:
     --
     --    declare
!    --       Mnn : System.Finalization_Primitives.Finalization_Master;
  
!    --       XMN : aliased System.Finalization_Primitives.Master_Node;
!    --       X : Ctrl;
!    --       Bnn : begin
     --          Abort_Defer;
!    --          Initialize (X);
!    --          System.Finalization_Primitives.Attach_To_Master
!    --            (X'address,
!    --             CtrlFD'unrestricted_access,
!    --             XMN'unrestricted_access,
!    --             Mnn);
!    --       at end
     --          Abort_Undefer;
!    --       end Bnn;
  
!    --       YMN : aliased System.Finalization_Primitives.Master_Node;
!    --       Y : Ctrl := Init;
!    --       System.Finalization_Primitives.Attach_To_Master
!    --         (Y'address,
!    --          CtrlFD'unrestricted_access,
!    --          YMN'unrestricted_access,
!    --          Mnn);
! 
!    --       type Rec is record
!    --          C : Ctrl;
     --       end record;
! 
!    --       WMN : aliased System.Finalization_Primitives.Master_Node;
!    --       W : Rec;
!    --       Bnn : begin
!    --          Abort_Defer;
!    --          Bnn : begin
!    --             Deep_Initialize (W);
!    --             System.Finalization_Primitives.Attach_To_Master
!    --               (W'address,
!    --                Rec_FD'unrestricted_access,
!    --                WMN'unrestricted_access,
!    --                Mnn);
!    --          exception
!    --             when others =>
!    --                Deep_Finalize (W);
!    --          end Bnn;
!    --       at end
!    --          Abort_Undefer;
!    --       end Bnn;
! 
!    --       ZMN : aliaed System.Finalization_Primitives.Master_Node;
!    --       Z : Rec := Init;
!    --       System.Finalization_Primitives.Attach_To_Master
!    --         (Z'address,
!    --          Rec_FD'unrestricted_access,
!    --          ZMN'unrestricted_access,
!    --          Mnn);
! 
!    --       procedure _Finalizer is
!    --          Ann : constant Boolean := Ada.Exceptions.Triggered_By_Abort;
!    --          Rnn : boolean := False;
     --       begin
     --          Abort_Defer;
!    --          Bnn : begin
!    --             System.Finalization_Primitives.Finalize_Master (Mnn);
!    --          exceptions
!    --             when others =>
!    --                Rnn := True;
!    --          end Bnn;
!    --          Abort_Undefer;
!    --          if Rnn and then not Ann then
!    --             [program_error "finalize raised exception"]
!    --          end if;
!    --       end _Finalizer;
  
     --    begin
     --       _Assign (X, Y);
!    --       Deep_Finalize (W);
     --       W := Z;
!    --       Deep_Adjust (W);
!    --    end;
     --    at end
!    --       _Finalizer;
! 
!    --  In the case of a block containing a single controlled object, the master
!    --  degenerates into a single master node:
! 
!    --    declare
!    --       X : Ctrl := Init;
! 
!    --    begin
!    --       null;
     --    end;
  
+    --  is expanded into:
+ 
+    --    declare
+    --       XMN : aliased System.Finalization_Primitives.Master_Node;
+    --       X : Ctrl := Init;
+    --       System.Finalization_Primitives.Attach_To_Node
+    --         (X'address,
+    --          CtrlFD'unrestricted_access,
+    --          XMN'unrestricted_access);
+ 
+    --       procedure _Finalizer is
+    --          Ann : constant Boolean := Ada.Exceptions.Triggered_By_Abort;
+    --          Rnn : boolean := False;
+    --       begin
+    --          Abort_Defer;
+    --          Bnn : begin
+    --              System.Finalization_Primitives.Finalize_Object (XMN);
+    --          exceptions
+    --             when others =>
+    --                Rnn := True;
+    --          end Bnn;
+    --          Abort_Undefer;
+    --          if Rnn and then not Ann then
+    --             [program_error "finalize raised exception"]
+    --          end if;
+    --       end _Finalizer;
+ 
+    --    begin
+    --       null;
+    --    end;
+    --    at end
+    --       _Finalizer;
+ 
+    --  Here is the version with a dynamically allocated object:
+ 
+    --    declare
+    --       X : P_Ctrl := new Ctrl;
+ 
+    --    begin
+    --       null;
+    --    end;
+    --
+    --  is expanded into:
+ 
+    --    declare
+    --       Cnn : System.Finalization_Primitives.Finalization_Collection_Ptr :=
+    --               P_CtrlFC'unrestricted_access;
+    --       [...]
+    --       Pnn : constant P_Ctrl := new Ctrl[...][...];
+    --       Bnn : begin
+    --          Abort_Defer;
+    --          Initialize (Pnn.all);
+    --          System.Finalization_Primitives.Attach_To_Collection
+    --            (Pnn.all'address,
+    --             CtrlFD'unrestricted_access,
+    --             Cnn.all);
+    --       at end
+    --          Abort_Undefer;
+    --       end Bnn;
+    --       X : P_Ctrl := Pnn;
+ 
+    --  The implementation uses two different strategies for the finalization
+    --  of (statically) declared objects and of dynamically allocated objects.
+ 
+    --  For (statically) declared objects, the attachment to the finalization
+    --  chain of the current scope and the call to the finalization procedure
+    --  are generated during a post-processing phase of the expansion. These
+    --  objects are first spotted in declarative parts and statement lists by
+    --  Requires_Cleanup_Actions; then Build_Finalizer is called on the parent
+    --  node to generate both the attachment and the finalization actions.
+ 
+    --  This post processing is fully transparent for the rest of the expansion
+    --  activities, in other words those have nothing to do or to care about.
+    --  However this default processing may not be sufficient in specific cases,
+    --  e.g. for the return object of an extended return statement in a function
+    --  whose result type is controlled: in this case, the return object must be
+    --  finalized only if the function returns abnormally. In order to deal with
+    --  these cases, it is possible to directly generate detachment actions (for
+    --  the return object case) or finalization actions (for transient objects)
+    --  during the rest of expansion activities.
+ 
+    --  These direct actions must be signalled to the post-processing machinery
+    --  and this is achieved through the handling of Master_Node objects, which
+    --  are the items actually chained in the finalization chains of masters.
+    --  With the default processing, they are created by Build_Finalizer for the
+    --  controlled objects spotted by Requires_Cleanup_Actions. But when direct
+    --  actions are carried out, they are generated by these actions and later
+    --  recognized by Requires_Cleanup_Actions and picked up by Build_Finalizer.
+ 
+    --  For dynamically allocated objects, there is no post-processing phase and
+    --  the attachment to the finalization chain of the access type, as well the
+    --  the detachment from this chain for unchecked deallocation, are generated
+    --  directly by the compiler during the expansion of allocators and calls to
+    --  instances of the Unchecked_Deallocation procedure.
+ 
+    --------------------------
+    -- Relaxed Finalization --
+    --------------------------
+ 
+    --  This paragraph describes the differences between the implementation of
+    --  finalization as specified by the Ada RM (called "strict" and documented
+    --  in the previous paragraph) and that of finalization as specified by the
+    --  GNAT RM (called "relaxed") for a second category of controlled objects.
+ 
+    --  For objects (statically) declared in a scope, the default implementation
+    --  documented in the previous paragraph is used for the scope as a whole as
+    --  soon as one controlled object with strict finalization is present in it,
+    --  including one transient controlled object. Otherwise, that is to say, if
+    --  all the controlled objects in the scope have relaxed finalization, then
+    --  no Finalization_Master is built for this scope, and all the objects are
+    --  finalized explicitly in the reverse order of their creation:
+ 
+    --    declare
+    --       X : Ctrl := Init;
+    --       Y : Ctrl := Init;
+ 
+    --    begin
+    --       null;
+    --    end;
+ 
+    --  is expanded into:
+ 
+    --    declare
+    --       XMN : aliased System.Finalization_Primitives.Master_Node;
+    --       X : Ctrl := Init;
+    --       System.Finalization_Primitives.Attach_To_Node
+    --         (X'address,
+    --          CtrlFD'unrestricted_access,
+    --          XMN'unrestricted_access);
+    --       YMN : aliased System.Finalization_Primitives.Master_Node;
+    --       Y : Ctrl := Init;
+    --       System.Finalization_Primitives.Attach_To_Node
+    --         (Y'address,
+    --          CtrlFD'unrestricted_access,
+    --          YMN'unrestricted_access);
+ 
+    --       procedure _Finalizer is
+    --       begin
+    --          Abort_Defer;
+    --          System.Finalization_Primitives.Finalize_Object (YMN);
+    --          System.Finalization_Primitives.Finalize_Object (XMN);
+    --          Abort_Undefer;
+    --       end _Finalizer;
+ 
+    --    begin
+    --       null;
+    --    end;
+    --    at end
+    --       _Finalizer;
+ 
+    --  Dynamically allocated objects with relaxed finalization need not be
+    --  finalized and, therefore, are not attached to any finalization chain.
+ 
     type Final_Primitives is
       (Initialize_Case, Adjust_Case, Finalize_Case, Address_Case);
     --  This enumeration type is defined in order to ease sharing code for
*************** package body Exp_Ch7 is
*** 212,219 ****
                       Finalize_Case   => TSS_Deep_Finalize,
                       Address_Case    => TSS_Finalize_Address);
  
!    function Allows_Finalization_Master (Typ : Entity_Id) return Boolean;
!    --  Determine whether access type Typ may have a finalization master
  
     procedure Build_Array_Deep_Procs (Typ : Entity_Id);
     --  Build the deep Initialize/Adjust/Finalize for a record Typ with
--- 411,418 ----
                       Finalize_Case   => TSS_Deep_Finalize,
                       Address_Case    => TSS_Finalize_Address);
  
!    function Allows_Finalization_Collection (Typ : Entity_Id) return Boolean;
!    --  Determine whether access type Typ may have a finalization collection
  
     procedure Build_Array_Deep_Procs (Typ : Entity_Id);
     --  Build the deep Initialize/Adjust/Finalize for a record Typ with
*************** package body Exp_Ch7 is
*** 315,321 ****
     --  cleanup actions are performed at the end of the block.
  
     procedure Store_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id);
!    --  Shared processing for Store_xxx_Actions_In_Scope
  
     -------------------------------------------
     -- Unnesting procedures for CCG and LLVM --
--- 514,526 ----
     --  cleanup actions are performed at the end of the block.
  
     procedure Store_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id);
!    --  Shared processing for the Store_xxx_Actions_In_Scope routines: attach
!    --  the list L of actions to the list of actions stored in the top of the
!    --  scope stack specified by AK.
! 
!    procedure Store_New_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id);
!    --  Same as above for the case where the list of actions stored in the top
!    --  of the scope stack specified by AK is empty.
  
     -------------------------------------------
     -- Unnesting procedures for CCG and LLVM --
*************** package body Exp_Ch7 is
*** 398,403 ****
--- 603,612 ----
     --  the original loop. Such loops can occur due to aggregate expansions and
     --  other constructs.
  
+    -----------------------
+    -- Local Subprograms --
+    -----------------------
+ 
     procedure Check_Visibly_Controlled
       (Prim : Final_Primitives;
        Typ  : Entity_Id;
*************** package body Exp_Ch7 is
*** 419,430 ****
     --  Check recursively whether a loop or block contains a subprogram that
     --  may need an activation record.
  
!    function Convert_View (Proc : Entity_Id; Arg  : Node_Id) return Node_Id;
!    --  Proc is one of the Initialize/Adjust/Finalize operations, and Arg is the
!    --  argument being passed to it. This function will, if necessary, generate
!    --  a conversion between the partial and full view of Arg to match the type
!    --  of the formal of Proc, or force a conversion to the class-wide type in
!    --  the case where the operation is abstract.
  
     function Make_Call
       (Loc       : Source_Ptr;
--- 628,648 ----
     --  Check recursively whether a loop or block contains a subprogram that
     --  may need an activation record.
  
!    function Convert_View
!      (Proc : Entity_Id;
!       Arg  : Node_Id;
!       Typ  : Entity_Id) return Node_Id;
!    --  Proc is one of the Initialize/Adjust/Finalize operations, Arg is the one
!    --  argument being passed to it, and Typ is its expected type. This function
!    --  will, if necessary, generate a conversion between the partial and full
!    --  views of Arg to match the type of the formal of Proc, or else force a
!    --  conversion to the class-wide type in the case where the operation is
!    --  abstract.
! 
!    function Finalize_Address_For_Node (Node : Entity_Id) return Entity_Id
!      renames Einfo.Entities.Finalization_Master_Node;
!    --  Return the Finalize_Address primitive for the object that has been
!    --  attached to a finalization Master_Node.
  
     function Make_Call
       (Loc       : Source_Ptr;
*************** package body Exp_Ch7 is
*** 473,483 ****
     --       [Deep_]Finalize (Acc_Typ (V).all);
     --    end;
  
!    --------------------------------
!    -- Allows_Finalization_Master --
!    --------------------------------
  
!    function Allows_Finalization_Master (Typ : Entity_Id) return Boolean is
        function In_Deallocation_Instance (E : Entity_Id) return Boolean;
        --  Determine whether entity E is inside a wrapper package created for
        --  an instance of Ada.Unchecked_Deallocation.
--- 691,1011 ----
     --       [Deep_]Finalize (Acc_Typ (V).all);
     --    end;
  
!    procedure Set_Finalize_Address_For_Node (Node, Fin_Id : Entity_Id)
!      renames Einfo.Entities.Set_Finalization_Master_Node;
!    --  Set the Finalize_Address primitive for the object that has been
!    --  attached to a finalization Master_Node.
  
!    ----------------------------------
!    -- Attach_Object_To_Master_Node --
!    ----------------------------------
! 
!    procedure Attach_Object_To_Master_Node
!      (Obj_Decl    : Node_Id;
!       Master_Node : Entity_Id)
!    is
!       Loc     : constant Source_Ptr := Sloc (Obj_Decl);
!       Obj_Id  : constant Entity_Id  := Defining_Entity (Obj_Decl);
!       Func_Id : constant Entity_Id  :=
!                   (if Is_Return_Object (Obj_Id)
!                    then Return_Applies_To (Scope (Obj_Id))
!                    else Empty);
! 
!       function Build_BIP_Cleanup_Stmts
!         (Func_Id  : Entity_Id;
!          Obj_Addr : Node_Id) return Node_Id;
!       --  Func_Id denotes a build-in-place function. Generate the following
!       --  cleanup code:
!       --
!       --    if BIPallocform > Secondary_Stack'Pos
!       --      and then BIPcollection /= null
!       --    then
!       --       declare
!       --          type Ptr_Typ is access Fun_Typ;
!       --          for Ptr_Typ'Storage_Pool use BIPstoragepool.all;
!       --
!       --       begin
!       --          Free (Ptr_Typ (Obj_Addr));
!       --       end;
!       --    end if;
!       --
!       --  Fun_Typ is the return type of the Func_Id.
! 
!       -----------------------------
!       -- Build_BIP_Cleanup_Stmts --
!       -----------------------------
! 
!       function Build_BIP_Cleanup_Stmts
!         (Func_Id  : Entity_Id;
!          Obj_Addr : Node_Id) return Node_Id
!       is
!          Alloc_Id    : constant Entity_Id :=
!            Build_In_Place_Formal (Func_Id, BIP_Alloc_Form);
!          Decls       : constant List_Id := New_List;
!          Fin_Coll_Id : constant Entity_Id :=
!            Build_In_Place_Formal (Func_Id, BIP_Collection);
!          Func_Typ    : constant Entity_Id := Etype (Func_Id);
! 
!          Cond      : Node_Id;
!          Free_Blk  : Node_Id;
!          Free_Stmt : Node_Id;
!          Pool_Id   : Entity_Id;
!          Ptr_Typ   : Entity_Id;
! 
!       begin
!          --  Generate:
!          --    Pool_Id renames BIPstoragepool.all;
! 
!          --  This formal is not added on ZFP as those targets do not
!          --  support pools.
! 
!          if RTE_Available (RE_Root_Storage_Pool_Ptr) then
!             Pool_Id := Make_Temporary (Loc, 'P');
! 
!             Append_To (Decls,
!               Make_Object_Renaming_Declaration (Loc,
!                 Defining_Identifier => Pool_Id,
!                 Subtype_Mark        =>
!                   New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
!                 Name                =>
!                   Make_Explicit_Dereference (Loc,
!                     New_Occurrence_Of
!                       (Build_In_Place_Formal
!                          (Func_Id, BIP_Storage_Pool), Loc))));
! 
!             if Debug_Generated_Code then
!                Set_Debug_Info_Needed (Pool_Id);
!             end if;
! 
!          else
!             Pool_Id := Empty;
!          end if;
! 
!          --  Create an access type which uses the storage pool of the caller
! 
!          --  Generate:
!          --    type Ptr_Typ is access Func_Typ;
! 
!          Ptr_Typ := Make_Temporary (Loc, 'P');
! 
!          Append_To (Decls,
!            Make_Full_Type_Declaration (Loc,
!              Defining_Identifier => Ptr_Typ,
!              Type_Definition     =>
!                Make_Access_To_Object_Definition (Loc,
!                  Subtype_Indication => New_Occurrence_Of (Func_Typ, Loc))));
! 
!          --  Perform minor decoration in order to set the collection and the
!          --  storage pool attributes.
! 
!          Mutate_Ekind (Ptr_Typ, E_Access_Type);
!          Set_Finalization_Collection (Ptr_Typ, Fin_Coll_Id);
!          Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
! 
!          --  Create an explicit free statement. Note that the free uses the
!          --  caller's pool expressed as a renaming.
! 
!          Free_Stmt :=
!            Make_Free_Statement (Loc,
!              Expression =>
!                Unchecked_Convert_To (Ptr_Typ, Obj_Addr));
! 
!          Set_Storage_Pool (Free_Stmt, Pool_Id);
! 
!          --  Create a block to house the dummy type and the instantiation as
!          --  well as to perform the cleanup the temporary.
! 
!          --  Generate:
!          --    declare
!          --       <Decls>
!          --    begin
!          --       Free (Ptr_Typ (Obj_Addr));
!          --    end;
! 
!          Free_Blk :=
!            Make_Block_Statement (Loc,
!              Declarations               => Decls,
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (Free_Stmt)));
! 
!          --  Generate:
!          --    if BIPallocform > Secondary_Stack'Pos
!          --      and then BIPcollection /= null
!          --    then
! 
!          Cond :=
!            Make_And_Then (Loc,
!              Left_Opnd  =>
!                Make_Op_Gt (Loc,
!                  Left_Opnd  => New_Occurrence_Of (Alloc_Id, Loc),
!                  Right_Opnd =>
!                    Make_Integer_Literal (Loc,
!                      UI_From_Int (BIP_Allocation_Form'Pos (Secondary_Stack)))),
!              Right_Opnd =>
!                Make_Op_Ne (Loc,
!                  Left_Opnd  => New_Occurrence_Of (Fin_Coll_Id, Loc),
!                  Right_Opnd => Make_Null (Loc)));
! 
!          --  Generate:
!          --    if <Cond> then
!          --       <Free_Blk>
!          --    end if;
! 
!          return
!            Make_If_Statement (Loc,
!              Condition       => Cond,
!              Then_Statements => New_List (Free_Blk));
!       end Build_BIP_Cleanup_Stmts;
! 
!       --  Local variables
! 
!       Fin_Id             : Entity_Id;
!       Master_Node_Attach : Node_Id;
!       Master_Node_Ins    : Node_Id;
!       Obj_Ref            : Node_Id;
!       Obj_Typ            : Entity_Id;
! 
!       --  Start of processing for Attach_Object_To_Master_Node
! 
!    begin
!       --  Finalize_Address is not generated in CodePeer mode because the
!       --  body contains address arithmetic. So we don't want to generate
!       --  the attach in this case.
! 
!       if CodePeer_Mode then
!          return;
!       end if;
! 
!       --  When the object is initialized by an aggregate, the attachment must
!       --  occur after the last aggregate assignment takes place; only then is
!       --  the object considered initialized. Likewise if it is initialized by
!       --  a build-in-place call: we must attach only after the call.
! 
!       if Ekind (Obj_Id) in E_Constant | E_Variable then
!          if Present (Last_Aggregate_Assignment (Obj_Id)) then
!             Master_Node_Ins := Last_Aggregate_Assignment (Obj_Id);
!          elsif Present (BIP_Initialization_Call (Obj_Id)) then
!             Master_Node_Ins := BIP_Initialization_Call (Obj_Id);
!          else
!             Master_Node_Ins := Obj_Decl;
!          end if;
! 
!       else
!          Master_Node_Ins := Obj_Decl;
!       end if;
! 
!       --  Handle the object type and the reference to the object
! 
!       Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
!       Obj_Typ := Etype (Obj_Id);
!       if not Is_Class_Wide_Type (Obj_Typ) then
!          Obj_Typ := Base_Type (Obj_Typ);
!       end if;
! 
!       if Is_Access_Type (Obj_Typ) then
!          Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
!          Obj_Typ := Available_View (Designated_Type (Obj_Typ));
!       end if;
! 
!       --  If we are dealing with a return object of a build-in-place function
!       --  and its allocation has been done in the function, we additionally
!       --  need to detach it from the caller's finalization collection in order
!       --  to prevent double finalization.
! 
!       if Present (Func_Id)
!         and then Is_Build_In_Place_Function (Func_Id)
!         and then Needs_BIP_Collection (Func_Id)
!       then
!          declare
!             Ptr_Typ   : constant Node_Id   := Make_Temporary (Loc, 'P');
!             Param     : constant Entity_Id :=
!                           Make_Defining_Identifier (Loc, Name_V);
! 
!             Fin_Body  : Node_Id;
!             Fin_Stmts : List_Id;
! 
!          begin
!             Fin_Stmts := Make_Finalize_Address_Stmts (Obj_Typ);
! 
!             Append_To (Fin_Stmts,
!               Build_BIP_Cleanup_Stmts
!                 (Func_Id, New_Occurrence_Of (Param, Loc)));
! 
!             Fin_Id :=
!               Make_Defining_Identifier (Loc,
!                 Make_TSS_Name_Local
!                   (Obj_Typ, TSS_Finalize_Address));
! 
!             Fin_Body :=
!               Make_Subprogram_Body (Loc,
!                 Specification =>
!                   Make_Procedure_Specification (Loc,
!                     Defining_Unit_Name       => Fin_Id,
!                     Parameter_Specifications => New_List (
!                       Make_Parameter_Specification (Loc,
!                         Defining_Identifier => Param,
!                         Parameter_Type      =>
!                           New_Occurrence_Of (RTE (RE_Address), Loc)))),
! 
!                 Declarations => New_List (
!                   Make_Full_Type_Declaration (Loc,
!                     Defining_Identifier => Ptr_Typ,
!                     Type_Definition     =>
!                       Make_Access_To_Object_Definition (Loc,
!                         All_Present        => True,
!                         Subtype_Indication =>
!                           New_Occurrence_Of (Obj_Typ, Loc)))),
! 
!                 Handled_Statement_Sequence =>
!                   Make_Handled_Sequence_Of_Statements (Loc,
!                     Statements => Fin_Stmts));
! 
!             Insert_After_And_Analyze
!               (Master_Node_Ins, Fin_Body, Suppress => All_Checks);
! 
!             Master_Node_Ins := Fin_Body;
!          end;
! 
!       else
!          Fin_Id := Finalize_Address (Obj_Typ);
! 
!          if No (Fin_Id) and then Ekind (Obj_Typ) = E_Class_Wide_Subtype then
!             Fin_Id := TSS (Obj_Typ, TSS_Finalize_Address);
!          end if;
!       end if;
! 
!       --  Now build the attachment call that will initialize the object's
!       --  Master_Node using the object's address and finalization procedure.
! 
!       Master_Node_Attach :=
!         Make_Procedure_Call_Statement (Loc,
!           Name                   =>
!             New_Occurrence_Of (RTE (RE_Attach_Object_To_Node), Loc),
!           Parameter_Associations => New_List (
!             Make_Address_For_Finalize (Loc, Obj_Ref, Obj_Typ),
!             Make_Attribute_Reference (Loc,
!               Prefix         =>
!                 New_Occurrence_Of (Fin_Id, Loc),
!               Attribute_Name => Name_Unrestricted_Access),
!             New_Occurrence_Of (Master_Node, Loc)));
! 
!       Set_Finalize_Address_For_Node (Master_Node, Fin_Id);
! 
!       --  Propagate the Ghost policy from the procedure to the node
! 
!       Set_Is_Ignored_Ghost_Entity
!         (Master_Node, Is_Ignored_Ghost_Entity (Fin_Id));
! 
!       Insert_After_And_Analyze
!         (Master_Node_Ins, Master_Node_Attach, Suppress => All_Checks);
!    end Attach_Object_To_Master_Node;
! 
!    ------------------------------------
!    -- Allows_Finalization_Collection --
!    ------------------------------------
! 
!    function Allows_Finalization_Collection (Typ : Entity_Id) return Boolean is
        function In_Deallocation_Instance (E : Entity_Id) return Boolean;
        --  Determine whether entity E is inside a wrapper package created for
        --  an instance of Ada.Unchecked_Deallocation.
*************** package body Exp_Ch7 is
*** 513,523 ****
        Ptr_Typ   : constant Entity_Id :=
                      Root_Type_Of_Full_View (Base_Type (Typ));
  
!    --  Start of processing for Allows_Finalization_Master
  
     begin
        --  Certain run-time configurations and targets do not provide support
!       --  for controlled types and therefore do not need masters.
  
        if Restriction_Active (No_Finalization) then
           return False;
--- 1041,1051 ----
        Ptr_Typ   : constant Entity_Id :=
                      Root_Type_Of_Full_View (Base_Type (Typ));
  
!    --  Start of processing for Allows_Finalization_Collection
  
     begin
        --  Certain run-time configurations and targets do not provide support
!       --  for controlled types and therefore do not need collections.
  
        if Restriction_Active (No_Finalization) then
           return False;
*************** package body Exp_Ch7 is
*** 530,535 ****
--- 1058,1068 ----
        then
           return False;
  
+       --  Do not consider controlled types with relaxed finalization
+ 
+       elsif Has_Relaxed_Finalization (Desig_Typ) then
+          return False;
+ 
        --  Do not consider an access type that returns on the secondary stack
  
        elsif Present (Associated_Storage_Pool (Ptr_Typ))
*************** package body Exp_Ch7 is
*** 550,557 ****
           return False;
  
        --  Do not consider a non-library access type when No_Nested_Finalization
!       --  is in effect since finalization masters are controlled objects and if
!       --  created will violate the restriction.
  
        elsif Restriction_Active (No_Nested_Finalization)
          and then not Is_Library_Level_Entity (Ptr_Typ)
--- 1083,1090 ----
           return False;
  
        --  Do not consider a non-library access type when No_Nested_Finalization
!       --  is in effect, because finalization collections are controlled objects
!       --  and, if created, will violate the restriction.
  
        elsif Restriction_Active (No_Nested_Finalization)
          and then not Is_Library_Level_Entity (Ptr_Typ)
*************** package body Exp_Ch7 is
*** 565,648 ****
        elsif No_Heap_Finalization (Ptr_Typ) then
           return False;
  
!       --  Do not create finalization masters in GNATprove mode because this
!       --  causes unwanted extra expansion. A compilation in this mode must
        --  keep the tree as close as possible to the original sources.
  
        elsif GNATprove_Mode then
           return False;
  
!       --  Otherwise the access type may use a finalization master
  
        else
           return True;
        end if;
!    end Allows_Finalization_Master;
  
!    ----------------------------
!    -- Build_Anonymous_Master --
!    ----------------------------
  
!    procedure Build_Anonymous_Master (Ptr_Typ : Entity_Id) is
!       function Create_Anonymous_Master
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id;
           Unit_Decl : Node_Id) return Entity_Id;
!       --  Create a new anonymous master for access type Ptr_Typ with designated
!       --  type Desig_Typ. The declaration of the master and its initialization
!       --  are inserted in the declarative part of unit Unit_Decl. Unit_Id is
!       --  the entity of Unit_Decl.
  
!       function Current_Anonymous_Master
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id) return Entity_Id;
!       --  Find an anonymous master declared within unit Unit_Id which services
!       --  designated type Desig_Typ. If there is no such master, return Empty.
  
!       -----------------------------
!       -- Create_Anonymous_Master --
!       -----------------------------
  
!       function Create_Anonymous_Master
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id;
           Unit_Decl : Node_Id) return Entity_Id
        is
           Loc : constant Source_Ptr := Sloc (Unit_Id);
  
!          All_FMs   : Elist_Id;
           Decls     : List_Id;
!          FM_Decl   : Node_Id;
!          FM_Id     : Entity_Id;
!          FM_Init   : Node_Id;
           Unit_Spec : Node_Id;
  
        begin
           --  Generate:
!          --    <FM_Id> : Finalization_Master;
  
!          FM_Id := Make_Temporary (Loc, 'A');
  
!          FM_Decl :=
             Make_Object_Declaration (Loc,
!              Defining_Identifier => FM_Id,
               Object_Definition   =>
!                New_Occurrence_Of (RTE (RE_Finalization_Master), Loc));
! 
!          --  Generate:
!          --    Set_Base_Pool
!          --      (<FM_Id>, Global_Pool_Object'Unrestricted_Access);
! 
!          FM_Init :=
!            Make_Procedure_Call_Statement (Loc,
!              Name                   =>
!                New_Occurrence_Of (RTE (RE_Set_Base_Pool), Loc),
!              Parameter_Associations => New_List (
!                New_Occurrence_Of (FM_Id, Loc),
!                Make_Attribute_Reference (Loc,
!                  Prefix         =>
!                    New_Occurrence_Of (RTE (RE_Global_Pool_Object), Loc),
!                  Attribute_Name => Name_Unrestricted_Access)));
  
           --  Find the declarative list of the unit
  
--- 1098,1165 ----
        elsif No_Heap_Finalization (Ptr_Typ) then
           return False;
  
!       --  Do not create finalization collections in GNATprove mode because this
!       --  causes unwanted extra expansion. Compilation in this mode must always
        --  keep the tree as close as possible to the original sources.
  
        elsif GNATprove_Mode then
           return False;
  
!       --  Otherwise the access type may use a finalization collection
  
        else
           return True;
        end if;
!    end Allows_Finalization_Collection;
  
!    --------------------------------
!    -- Build_Anonymous_Collection --
!    --------------------------------
  
!    procedure Build_Anonymous_Collection (Ptr_Typ : Entity_Id) is
!       function Create_Anonymous_Collection
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id;
           Unit_Decl : Node_Id) return Entity_Id;
!       --  Create a new anonymous collection for access type Ptr_Typ with
!       --  designated type Desig_Typ. The declaration of the collection and
!       --  its initialization are inserted in the declarative part of unit
!       --  Unit_Decl. Unit_Id is the entity of Unit_Decl.
  
!       function Current_Anonymous_Collection
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id) return Entity_Id;
!       --  Find an anonymous collection declared in unit Unit_Id which services
!       --  designated type Desig_Typ. If there is none, return Empty.
  
!       ---------------------------------
!       -- Create_Anonymous_Collection --
!       ---------------------------------
  
!       function Create_Anonymous_Collection
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id;
           Unit_Decl : Node_Id) return Entity_Id
        is
           Loc : constant Source_Ptr := Sloc (Unit_Id);
  
!          All_FCs   : Elist_Id;
           Decls     : List_Id;
!          FC_Decl   : Node_Id;
!          FC_Id     : Entity_Id;
           Unit_Spec : Node_Id;
  
        begin
           --  Generate:
!          --    <FC_Id> : Finalization_Collection;
  
!          FC_Id := Make_Temporary (Loc, 'A');
  
!          FC_Decl :=
             Make_Object_Declaration (Loc,
!              Defining_Identifier => FC_Id,
               Object_Definition   =>
!                New_Occurrence_Of (RTE (RE_Finalization_Collection), Loc));
  
           --  Find the declarative list of the unit
  
*************** package body Exp_Ch7 is
*** 663,670 ****
  
           --    procedure Comp_Unit_Proc (Param : access Ctrl := new Ctrl);
  
!          --  There is no suitable place to create the master as the subprogram
!          --  is not in a declarative list.
  
           else
              Decls := Declarations (Unit_Decl);
--- 1180,1187 ----
  
           --    procedure Comp_Unit_Proc (Param : access Ctrl := new Ctrl);
  
!          --  There is no suitable place to create the collection because the
!          --  subprogram is not in a declarative list.
  
           else
              Decls := Declarations (Unit_Decl);
*************** package body Exp_Ch7 is
*** 675,765 ****
              end if;
           end if;
  
!          Prepend_To (Decls, FM_Init);
!          Prepend_To (Decls, FM_Decl);
  
           --  Use the scope of the unit when analyzing the declaration of the
!          --  master and its initialization actions.
  
           Push_Scope (Unit_Id);
!          Analyze (FM_Decl);
!          Analyze (FM_Init);
           Pop_Scope;
  
!          --  Mark the master as servicing this specific designated type
  
!          Set_Anonymous_Designated_Type (FM_Id, Desig_Typ);
  
!          --  Include the anonymous master in the list of existing masters which
!          --  appear in this unit. This effectively creates a mapping between a
!          --  master and a designated type which in turn allows for the reuse of
!          --  masters on a per-unit basis.
  
!          All_FMs := Anonymous_Masters (Unit_Id);
  
!          if No (All_FMs) then
!             All_FMs := New_Elmt_List;
!             Set_Anonymous_Masters (Unit_Id, All_FMs);
           end if;
  
!          Prepend_Elmt (FM_Id, All_FMs);
  
!          return FM_Id;
!       end Create_Anonymous_Master;
  
!       ------------------------------
!       -- Current_Anonymous_Master --
!       ------------------------------
  
!       function Current_Anonymous_Master
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id) return Entity_Id
        is
!          All_FMs : constant Elist_Id := Anonymous_Masters (Unit_Id);
!          FM_Elmt : Elmt_Id;
!          FM_Id   : Entity_Id;
  
        begin
!          --  Inspect the list of anonymous masters declared within the unit
!          --  looking for an existing master which services the same designated
           --  type.
  
!          if Present (All_FMs) then
!             FM_Elmt := First_Elmt (All_FMs);
!             while Present (FM_Elmt) loop
!                FM_Id := Node (FM_Elmt);
  
!                --  The currect master services the same designated type. As a
!                --  result the master can be reused and associated with another
!                --  anonymous access-to-controlled type.
  
!                if Anonymous_Designated_Type (FM_Id) = Desig_Typ then
!                   return FM_Id;
                 end if;
  
!                Next_Elmt (FM_Elmt);
              end loop;
           end if;
  
           return Empty;
!       end Current_Anonymous_Master;
  
        --  Local variables
  
        Desig_Typ : Entity_Id;
!       FM_Id     : Entity_Id;
        Priv_View : Entity_Id;
        Scop      : Entity_Id;
        Unit_Decl : Node_Id;
        Unit_Id   : Entity_Id;
  
!    --  Start of processing for Build_Anonymous_Master
  
     begin
        --  Nothing to do if the circumstances do not allow for a finalization
!       --  master.
  
!       if not Allows_Finalization_Master (Ptr_Typ) then
           return;
        end if;
  
--- 1192,1280 ----
              end if;
           end if;
  
!          Prepend_To (Decls, FC_Decl);
  
           --  Use the scope of the unit when analyzing the declaration of the
!          --  collection and its initialization actions.
  
           Push_Scope (Unit_Id);
!          Analyze (FC_Decl);
           Pop_Scope;
  
!          --  Mark the collection as servicing this specific designated type
  
!          Set_Anonymous_Designated_Type (FC_Id, Desig_Typ);
  
!          --  Include it in the list of existing anonymous collections which
!          --  appear in this unit. This effectively creates a mapping between
!          --  collections and designated types, which in turn allows for the
!          --  reuse of collections on a per-unit basis.
  
!          All_FCs := Anonymous_Collections (Unit_Id);
  
!          if No (All_FCs) then
!             All_FCs := New_Elmt_List;
!             Set_Anonymous_Collections (Unit_Id, All_FCs);
           end if;
  
!          Prepend_Elmt (FC_Id, All_FCs);
  
!          return FC_Id;
!       end Create_Anonymous_Collection;
  
!       ----------------------------------
!       -- Current_Anonymous_Collection --
!       ----------------------------------
  
!       function Current_Anonymous_Collection
          (Desig_Typ : Entity_Id;
           Unit_Id   : Entity_Id) return Entity_Id
        is
!          All_FCs : constant Elist_Id := Anonymous_Collections (Unit_Id);
!          FC_Elmt : Elmt_Id;
!          FC_Id   : Entity_Id;
  
        begin
!          --  Inspect the list of anonymous collections declared within the unit
!          --  looking for an existing collection which services the designated
           --  type.
  
!          if Present (All_FCs) then
!             FC_Elmt := First_Elmt (All_FCs);
!             while Present (FC_Elmt) loop
!                FC_Id := Node (FC_Elmt);
  
!                --  The current collection services the same designated type.
!                --  As a result, the collection can be reused and associated
!                --  with another anonymous access-to-controlled type.
  
!                if Anonymous_Designated_Type (FC_Id) = Desig_Typ then
!                   return FC_Id;
                 end if;
  
!                Next_Elmt (FC_Elmt);
              end loop;
           end if;
  
           return Empty;
!       end Current_Anonymous_Collection;
  
        --  Local variables
  
        Desig_Typ : Entity_Id;
!       FC_Id     : Entity_Id;
        Priv_View : Entity_Id;
        Scop      : Entity_Id;
        Unit_Decl : Node_Id;
        Unit_Id   : Entity_Id;
  
!    --  Start of processing for Build_Anonymous_Collection
  
     begin
        --  Nothing to do if the circumstances do not allow for a finalization
!       --  collection.
  
!       if not Allows_Finalization_Collection (Ptr_Typ) then
           return;
        end if;
  
*************** package body Exp_Ch7 is
*** 767,774 ****
        Unit_Id   := Unique_Defining_Entity (Unit_Decl);
  
        --  The compilation unit is a package instantiation. In this case the
!       --  anonymous master is associated with the package spec as both the
!       --  spec and body appear at the same level.
  
        if Nkind (Unit_Decl) = N_Package_Body
          and then Nkind (Original_Node (Unit_Decl)) = N_Package_Instantiation
--- 1282,1289 ----
        Unit_Id   := Unique_Defining_Entity (Unit_Decl);
  
        --  The compilation unit is a package instantiation. In this case the
!       --  anonymous collection is associated with the package spec, as both
!       --  the spec and body appear at the same level.
  
        if Nkind (Unit_Decl) = N_Package_Body
          and then Nkind (Original_Node (Unit_Decl)) = N_Package_Instantiation
*************** package body Exp_Ch7 is
*** 800,818 ****
           return;
        end if;
  
        --  Determine whether the current semantic unit already has an anonymous
!       --  master which services the designated type.
  
!       FM_Id := Current_Anonymous_Master (Desig_Typ, Unit_Id);
  
!       --  If this is not the case, create a new master
  
!       if No (FM_Id) then
!          FM_Id := Create_Anonymous_Master (Desig_Typ, Unit_Id, Unit_Decl);
        end if;
  
!       Set_Finalization_Master (Ptr_Typ, FM_Id);
!    end Build_Anonymous_Master;
  
     ----------------------------
     -- Build_Array_Deep_Procs --
--- 1315,1346 ----
           return;
        end if;
  
+       --  For the access result type of a function that is a library unit,
+       --  we cannot create a finalization collection attached to the unit as
+       --  this would cause premature finalization of objects created through
+       --  the access result type, which may be returned from the function.
+ 
+       if Is_Local_Anonymous_Access (Ptr_Typ)
+         and then Ekind (Unit_Id) = E_Function
+         and then Parent (Ptr_Typ) =
+                    Result_Definition (Subprogram_Specification (Unit_Id))
+       then
+          return;
+       end if;
+ 
        --  Determine whether the current semantic unit already has an anonymous
!       --  collection which services the designated type.
  
!       FC_Id := Current_Anonymous_Collection (Desig_Typ, Unit_Id);
  
!       --  If this is not the case, create a new collection
  
!       if No (FC_Id) then
!          FC_Id := Create_Anonymous_Collection (Desig_Typ, Unit_Id, Unit_Decl);
        end if;
  
!       Set_Finalization_Collection (Ptr_Typ, FC_Id);
!    end Build_Anonymous_Collection;
  
     ----------------------------
     -- Build_Array_Deep_Procs --
*************** package body Exp_Ch7 is
*** 893,933 ****
              Append_To (Stmts, Build_Runtime_Call (Loc, RE_Complete_Master));
           end if;
  
!       --  Add statements to unlock the protected object parameter and to
!       --  undefer abort. If the context is a protected procedure and the object
!       --  has entries, call the entry service routine.
! 
!       --  NOTE: The generated code references _object, a parameter to the
!       --  procedure.
  
        elsif Is_Protected_Subp_Body then
!          declare
!             Spec      : constant Node_Id := Parent (Corresponding_Spec (N));
!             Conc_Typ  : Entity_Id := Empty;
!             Param     : Node_Id;
!             Param_Typ : Entity_Id;
! 
!          begin
!             --  Find the _object parameter representing the protected object
! 
!             Param := First (Parameter_Specifications (Spec));
!             loop
!                Param_Typ := Etype (Parameter_Type (Param));
! 
!                if Ekind (Param_Typ) = E_Record_Type then
!                   Conc_Typ := Corresponding_Concurrent_Type (Param_Typ);
!                end if;
! 
!                exit when No (Param) or else Present (Conc_Typ);
!                Next (Param);
!             end loop;
! 
!             pragma Assert (Present (Param));
!             pragma Assert (Present (Conc_Typ));
! 
!             Build_Protected_Subprogram_Call_Cleanup
!               (Specification (N), Conc_Typ, Loc, Stmts);
!          end;
  
        --  Add a call to Expunge_Unactivated_Tasks for dynamically allocated
        --  tasks. Other unactivated tasks are completed by Complete_Task or
--- 1421,1432 ----
              Append_To (Stmts, Build_Runtime_Call (Loc, RE_Complete_Master));
           end if;
  
!       --  Add statements to undefer abort.
  
        elsif Is_Protected_Subp_Body then
!          if Abort_Allowed then
!             Append_To (Stmts, Build_Runtime_Call (Loc, RE_Abort_Undefer));
!          end if;
  
        --  Add a call to Expunge_Unactivated_Tasks for dynamically allocated
        --  tasks. Other unactivated tasks are completed by Complete_Task or
*************** package body Exp_Ch7 is
*** 1139,1249 ****
            Statements        => Stmts);
     end Build_Exception_Handler;
  
!    -------------------------------
!    -- Build_Finalization_Master --
!    -------------------------------
  
!    procedure Build_Finalization_Master
       (Typ            : Entity_Id;
        For_Lib_Level  : Boolean   := False;
        For_Private    : Boolean   := False;
        Context_Scope  : Entity_Id := Empty;
        Insertion_Node : Node_Id   := Empty)
     is
-       procedure Add_Pending_Access_Type
-         (Typ     : Entity_Id;
-          Ptr_Typ : Entity_Id);
-       --  Add access type Ptr_Typ to the pending access type list for type Typ
- 
-       -----------------------------
-       -- Add_Pending_Access_Type --
-       -----------------------------
- 
-       procedure Add_Pending_Access_Type
-         (Typ     : Entity_Id;
-          Ptr_Typ : Entity_Id)
-       is
-          List : Elist_Id;
- 
-       begin
-          if Present (Pending_Access_Types (Typ)) then
-             List := Pending_Access_Types (Typ);
-          else
-             List := New_Elmt_List;
-             Set_Pending_Access_Types (Typ, List);
-          end if;
- 
-          Prepend_Elmt (Ptr_Typ, List);
-       end Add_Pending_Access_Type;
- 
-       --  Local variables
- 
-       Desig_Typ : constant Entity_Id := Designated_Type (Typ);
- 
        Ptr_Typ : constant Entity_Id := Root_Type_Of_Full_View (Base_Type (Typ));
!       --  A finalization master created for a named access type is associated
        --  with the full view (if applicable) as a consequence of freezing. The
        --  full view criteria does not apply to anonymous access types because
        --  those cannot have a private and a full view.
  
!    --  Start of processing for Build_Finalization_Master
  
     begin
        --  Nothing to do if the circumstances do not allow for a finalization
!       --  master.
  
!       if not Allows_Finalization_Master (Typ) then
           return;
  
        --  Various machinery such as freezing may have already created a
!       --  finalization master.
  
!       elsif Present (Finalization_Master (Ptr_Typ)) then
           return;
        end if;
  
        declare
!          Actions    : constant List_Id    := New_List;
!          Loc        : constant Source_Ptr := Sloc (Ptr_Typ);
!          Fin_Mas_Id : Entity_Id;
!          Pool_Id    : Entity_Id;
  
        begin
!          --  Source access types use fixed master names since the master is
           --  inserted in the same source unit only once. The only exception to
           --  this are instances using the same access type as generic actual.
  
           if Comes_From_Source (Ptr_Typ) and then not Inside_A_Generic then
!             Fin_Mas_Id :=
                Make_Defining_Identifier (Loc,
!                 Chars => New_External_Name (Chars (Ptr_Typ), "FM"));
  
           --  Internally generated access types use temporaries as their names
           --  due to possible collision with identical names coming from other
           --  packages.
  
           else
!             Fin_Mas_Id := Make_Temporary (Loc, 'F');
           end if;
  
!          Set_Finalization_Master (Ptr_Typ, Fin_Mas_Id);
  
           --  Generate:
!          --    <Ptr_Typ>FM : aliased Finalization_Master;
  
           Append_To (Actions,
             Make_Object_Declaration (Loc,
!              Defining_Identifier => Fin_Mas_Id,
               Aliased_Present     => True,
               Object_Definition   =>
!                New_Occurrence_Of (RTE (RE_Finalization_Master), Loc)));
  
           if Debug_Generated_Code then
!             Set_Debug_Info_Needed (Fin_Mas_Id);
           end if;
  
           --  Set the associated pool and primitive Finalize_Address of the new
!          --  finalization master.
  
           --  The access type has a user-defined storage pool, use it
  
--- 1638,1719 ----
            Statements        => Stmts);
     end Build_Exception_Handler;
  
!    -----------------------------------
!    -- Build_Finalization_Collection --
!    -----------------------------------
  
!    procedure Build_Finalization_Collection
       (Typ            : Entity_Id;
        For_Lib_Level  : Boolean   := False;
        For_Private    : Boolean   := False;
        Context_Scope  : Entity_Id := Empty;
        Insertion_Node : Node_Id   := Empty)
     is
        Ptr_Typ : constant Entity_Id := Root_Type_Of_Full_View (Base_Type (Typ));
!       --  Finalization collections built for named access types are associated
        --  with the full view (if applicable) as a consequence of freezing. The
        --  full view criteria does not apply to anonymous access types because
        --  those cannot have a private and a full view.
  
!    --  Start of processing for Build_Finalization_Collection
  
     begin
        --  Nothing to do if the circumstances do not allow for a finalization
!       --  collection.
  
!       if not Allows_Finalization_Collection (Typ) then
           return;
  
        --  Various machinery such as freezing may have already created a
!       --  finalization collection.
  
!       elsif Present (Finalization_Collection (Ptr_Typ)) then
           return;
        end if;
  
        declare
!          Actions : constant List_Id    := New_List;
!          Loc     : constant Source_Ptr := Sloc (Ptr_Typ);
! 
!          Fin_Coll_Id : Entity_Id;
!          Pool_Id     : Entity_Id;
  
        begin
!          --  Source access types use fixed names since the collection will be
           --  inserted in the same source unit only once. The only exception to
           --  this are instances using the same access type as generic actual.
  
           if Comes_From_Source (Ptr_Typ) and then not Inside_A_Generic then
!             Fin_Coll_Id :=
                Make_Defining_Identifier (Loc,
!                 Chars => New_External_Name (Chars (Ptr_Typ), "FC"));
  
           --  Internally generated access types use temporaries as their names
           --  due to possible collision with identical names coming from other
           --  packages.
  
           else
!             Fin_Coll_Id := Make_Temporary (Loc, 'F');
           end if;
  
!          Set_Finalization_Collection (Ptr_Typ, Fin_Coll_Id);
  
           --  Generate:
!          --    <Ptr_Typ>FC : aliased Finalization_Collection;
  
           Append_To (Actions,
             Make_Object_Declaration (Loc,
!              Defining_Identifier => Fin_Coll_Id,
               Aliased_Present     => True,
               Object_Definition   =>
!                New_Occurrence_Of (RTE (RE_Finalization_Collection), Loc)));
  
           if Debug_Generated_Code then
!             Set_Debug_Info_Needed (Fin_Coll_Id);
           end if;
  
           --  Set the associated pool and primitive Finalize_Address of the new
!          --  finalization collection.
  
           --  The access type has a user-defined storage pool, use it
  
*************** package body Exp_Ch7 is
*** 1257,1326 ****
              Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
           end if;
  
!          --  Generate:
!          --    Set_Base_Pool (<Ptr_Typ>FM, Pool_Id'Unchecked_Access);
! 
!          Append_To (Actions,
!            Make_Procedure_Call_Statement (Loc,
!              Name                   =>
!                New_Occurrence_Of (RTE (RE_Set_Base_Pool), Loc),
!              Parameter_Associations => New_List (
!                New_Occurrence_Of (Fin_Mas_Id, Loc),
!                Make_Attribute_Reference (Loc,
!                  Prefix         => New_Occurrence_Of (Pool_Id, Loc),
!                  Attribute_Name => Name_Unrestricted_Access))));
! 
!          --  Finalize_Address is not generated in CodePeer mode because the
!          --  body contains address arithmetic. Skip this step.
! 
!          if CodePeer_Mode then
!             null;
! 
!          --  Associate the Finalize_Address primitive of the designated type
!          --  with the finalization master of the access type. The designated
!          --  type must be frozen, as Finalize_Address is generated when the
!          --  freeze node is expanded.
! 
!          elsif Is_Frozen (Desig_Typ)
!            and then Present (Finalize_Address (Desig_Typ))
! 
!            --  The finalization master of an anonymous access type may need
!            --  to be inserted in a specific place in the tree. For instance:
! 
!            --    type Comp_Typ;
! 
!            --    <finalization master of "access Comp_Typ">
! 
!            --    type Rec_Typ is record
!            --       Comp : access Comp_Typ;
!            --    end record;
! 
!            --    <freeze node for Comp_Typ>
!            --    <freeze node for Rec_Typ>
! 
!            --  Due to this oddity, the anonymous access type is stored for
!            --  later processing (see below).
! 
!            and then Ekind (Ptr_Typ) /= E_Anonymous_Access_Type
!          then
!             --  Generate:
!             --    Set_Finalize_Address
!             --      (<Ptr_Typ>FM, <Desig_Typ>FD'Unrestricted_Access);
! 
!             Append_To (Actions,
!               Make_Set_Finalize_Address_Call
!                 (Loc     => Loc,
!                  Ptr_Typ => Ptr_Typ));
! 
!          --  Otherwise the designated type is either anonymous access or a
!          --  Taft-amendment type and has not been frozen. Store the access
!          --  type for later processing (see Freeze_Type).
! 
!          else
!             Add_Pending_Access_Type (Desig_Typ, Ptr_Typ);
!          end if;
! 
!          --  A finalization master created for an access designating a type
           --  with private components is inserted before a context-dependent
           --  node.
  
--- 1727,1733 ----
              Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
           end if;
  
!          --  A finalization collection created for an access designating a type
           --  with private components is inserted before a context-dependent
           --  node.
  
*************** package body Exp_Ch7 is
*** 1347,1363 ****
  
              Pop_Scope;
  
!          --  The finalization master belongs to an access result type related
           --  to a build-in-place function call used to initialize a library
!          --  level object. The master must be inserted in front of the access
!          --  result type declaration denoted by Insertion_Node.
  
           elsif For_Lib_Level then
              pragma Assert (Present (Insertion_Node));
              Insert_Actions (Insertion_Node, Actions);
  
!          --  Otherwise the finalization master and its initialization become a
!          --  part of the freeze node.
  
           else
              Append_Freeze_Actions (Ptr_Typ, Actions);
--- 1754,1770 ----
  
              Pop_Scope;
  
!          --  The finalization collection belongs to an access type related
           --  to a build-in-place function call used to initialize a library
!          --  level object. The collection must be inserted in front of the
!          --  access type declaration denoted by Insertion_Node.
  
           elsif For_Lib_Level then
              pragma Assert (Present (Insertion_Node));
              Insert_Actions (Insertion_Node, Actions);
  
!          --  Otherwise the finalization collection and its initialization
!          --  become a part of the freeze node.
  
           else
              Append_Freeze_Actions (Ptr_Typ, Actions);
*************** package body Exp_Ch7 is
*** 1365,1380 ****
  
           Analyze_List (Actions);
  
!          --  When the type the finalization master is being generated for was
!          --  created to store a 'Old object, then mark it as such so its
           --  finalization can be delayed until after postconditions have been
           --  checked.
  
           if Stores_Attribute_Old_Prefix (Ptr_Typ) then
!             Set_Stores_Attribute_Old_Prefix (Fin_Mas_Id);
           end if;
        end;
!    end Build_Finalization_Master;
  
     ---------------------
     -- Build_Finalizer --
--- 1772,1787 ----
  
           Analyze_List (Actions);
  
!          --  When the type the finalization collection is being generated for
!          --  was created to store a 'Old object, then mark it as such so its
           --  finalization can be delayed until after postconditions have been
           --  checked.
  
           if Stores_Attribute_Old_Prefix (Ptr_Typ) then
!             Set_Stores_Attribute_Old_Prefix (Fin_Coll_Id);
           end if;
        end;
!    end Build_Finalization_Collection;
  
     ---------------------
     -- Build_Finalizer --
*************** package body Exp_Ch7 is
*** 1384,1390 ****
       (N                 : Node_Id;
        Clean_Stmts       : List_Id;
        Mark_Id           : Entity_Id;
-       Top_Decls         : List_Id;
        Defer_Abort       : Boolean;
        Fin_Id            : out Entity_Id)
     is
--- 1791,1796 ----
*************** package body Exp_Ch7 is
*** 1404,1420 ****
        --  structures right from the start. Entities and lists are created once
        --  it has been established that N has at least one controlled object.
  
!       Components_Built : Boolean := False;
!       --  A flag used to avoid double initialization of entities and lists. If
!       --  the flag is set then the following variables have been initialized:
!       --    Counter_Id
!       --    Finalizer_Decls
!       --    Finalizer_Stmts
!       --    Jump_Alts
! 
!       Counter_Id  : Entity_Id := Empty;
!       Counter_Val : Nat       := 0;
!       --  Name and value of the state counter
  
        Decls : List_Id := No_List;
        --  Declarative region of N (if available). If N is a package declaration
--- 1810,1817 ----
        --  structures right from the start. Entities and lists are created once
        --  it has been established that N has at least one controlled object.
  
!       Count : Nat := 0;
!       --  Holds the number of controlled objects encountered so far
  
        Decls : List_Id := No_List;
        --  Declarative region of N (if available). If N is a package declaration
*************** package body Exp_Ch7 is
*** 1424,1456 ****
        --  Data for the exception
  
        Finalizer_Decls : List_Id := No_List;
!       --  Local variable declarations. This list holds the label declarations
!       --  of all jump block alternatives as well as the declaration of the
!       --  local exception occurrence and the raised flag:
!       --     E : Exception_Occurrence;
!       --     Raised : Boolean := False;
!       --     L<counter value> : label;
  
!       Finalizer_Insert_Nod : Node_Id := Empty;
!       --  Insertion point for the finalizer body. Depending on the context
!       --  (Nkind of N) and the individual grouping of controlled objects, this
!       --  node may denote a package declaration or body, package instantiation,
!       --  block statement or a counter update statement.
  
        Finalizer_Stmts : List_Id := No_List;
!       --  The statement list of the finalizer body. It contains the following:
!       --
!       --    Abort_Defer;               --  Added if abort is allowed
!       --    <call to Prev_At_End>      --  Added if exists
!       --    <cleanup statements>       --  Added if Acts_As_Clean
!       --    <jump block>               --  Added if Has_Ctrl_Objs
!       --    <finalization statements>  --  Added if Has_Ctrl_Objs
!       --    <stack release>            --  Added if Mark_Id exists
!       --    Abort_Undefer;             --  Added if abort is allowed
  
!       Has_Ctrl_Objs : Boolean := False;
!       --  A general flag which denotes whether N has at least one controlled
!       --  object.
  
        Has_Tagged_Types : Boolean := False;
        --  A general flag which indicates whether N has at least one library-
--- 1821,1837 ----
        --  Data for the exception
  
        Finalizer_Decls : List_Id := No_List;
!       --  Local variable declarations
  
!       Finalization_Master : Entity_Id;
!       --  The Finalization Master object
  
        Finalizer_Stmts : List_Id := No_List;
!       --  The statement list of the finalizer body
  
!       Has_Strict_Ctrl_Objs : Boolean := False;
!       --  A general flag which indicates whether N has at least one controlled
!       --  object with strict semantics for finalization.
  
        Has_Tagged_Types : Boolean := False;
        --  A general flag which indicates whether N has at least one library-
*************** package body Exp_Ch7 is
*** 1459,1481 ****
        HSS : Node_Id := Empty;
        --  The sequence of statements of N (if available)
  
-       Jump_Alts : List_Id := No_List;
-       --  Jump block alternatives. Depending on the value of the state counter,
-       --  the control flow jumps to a sequence of finalization statements. This
-       --  list contains the following:
-       --
-       --     when <counter value> =>
-       --        goto L<counter value>;
- 
-       Jump_Block_Insert_Nod : Node_Id := Empty;
-       --  Specific point in the finalizer statements where the jump block is
-       --  inserted.
- 
-       Last_Top_Level_Ctrl_Construct : Node_Id := Empty;
-       --  The last controlled construct encountered when processing the top
-       --  level lists of N. This can be a nested package, an instantiation or
-       --  an object declaration.
- 
        Prev_At_End : Entity_Id := Empty;
        --  The previous at end procedure of the handled statements block of N
  
--- 1840,1845 ----
*************** package body Exp_Ch7 is
*** 1483,1489 ****
        --  The private declarations of N if N is a package declaration
  
        Spec_Id    : Entity_Id := Empty;
-       Spec_Decls : List_Id   := Top_Decls;
        Stmts      : List_Id   := No_List;
  
        Tagged_Type_Stmts : List_Id := No_List;
--- 1847,1852 ----
*************** package body Exp_Ch7 is
*** 1502,1507 ****
--- 1865,1873 ----
        --  Create the spec and body of the finalizer and insert them in the
        --  proper place in the tree depending on the context.
  
+       function Has_Ctrl_Objs return Boolean is (Count > 0);
+       --  Return true if N contains a least one controlled object
+ 
        function New_Finalizer_Name
          (Spec_Id : Node_Id; For_Spec : Boolean) return Name_Id;
        --  Create a fully qualified name of a package spec or body finalizer.
*************** package body Exp_Ch7 is
*** 1509,1531 ****
  
        procedure Process_Declarations
          (Decls      : List_Id;
!          Preprocess : Boolean := False;
!          Top_Level  : Boolean := False);
        --  Inspect a list of declarations or statements which may contain
        --  objects that need finalization. When flag Preprocess is set, the
        --  routine will simply count the total number of controlled objects in
!       --  Decls and set Counter_Val accordingly. Top_Level is only relevant
!       --  when Preprocess is set and if True, the processing is performed for
!       --  objects in nested package declarations or instances.
  
        procedure Process_Object_Declaration
          (Decl         : Node_Id;
-          Has_No_Init  : Boolean := False;
           Is_Protected : Boolean := False);
        --  Generate all the machinery associated with the finalization of a
!       --  single object. Flag Has_No_Init is used to denote certain contexts
!       --  where Decl does not have initialization call(s). Flag Is_Protected
!       --  is set when Decl denotes a simple protected object.
  
        procedure Process_Tagged_Type_Declaration (Decl : Node_Id);
        --  Generate all the code necessary to unregister the external tag of a
--- 1875,1892 ----
  
        procedure Process_Declarations
          (Decls      : List_Id;
!          Preprocess : Boolean := False);
        --  Inspect a list of declarations or statements which may contain
        --  objects that need finalization. When flag Preprocess is set, the
        --  routine will simply count the total number of controlled objects in
!       --  Decls and set Count accordingly.
  
        procedure Process_Object_Declaration
          (Decl         : Node_Id;
           Is_Protected : Boolean := False);
        --  Generate all the machinery associated with the finalization of a
!       --  single object. Flag Is_Protected is set when Decl denotes a simple
!       --  protected object.
  
        procedure Process_Tagged_Type_Declaration (Decl : Node_Id);
        --  Generate all the code necessary to unregister the external tag of a
*************** package body Exp_Ch7 is
*** 1536,1632 ****
        ----------------------
  
        procedure Build_Components is
!          Counter_Decl     : Node_Id;
!          Counter_Typ      : Entity_Id;
!          Counter_Typ_Decl : Node_Id;
  
        begin
           pragma Assert (Present (Decls));
  
!          --  This routine might be invoked several times when dealing with
!          --  constructs that have two lists (either two declarative regions
!          --  or declarations and statements). Avoid double initialization.
! 
!          if Components_Built then
!             return;
!          end if;
! 
!          Components_Built := True;
! 
!          if Has_Ctrl_Objs then
! 
!             --  Create entities for the counter, its type, the local exception
!             --  and the raised flag.
! 
!             Counter_Id  := Make_Temporary (Loc, 'C');
!             Counter_Typ := Make_Temporary (Loc, 'T');
! 
!             Finalizer_Decls := New_List;
! 
!             Build_Object_Declarations
!               (Finalizer_Data, Finalizer_Decls, Loc, For_Package);
! 
!             --  Since the total number of controlled objects is always known,
!             --  build a subtype of Natural with precise bounds. This allows
!             --  the backend to optimize the case statement. Generate:
!             --
!             --    subtype Tnn is Natural range 0 .. Counter_Val;
  
!             Counter_Typ_Decl :=
!               Make_Subtype_Declaration (Loc,
!                 Defining_Identifier => Counter_Typ,
!                 Subtype_Indication  =>
!                   Make_Subtype_Indication (Loc,
!                     Subtype_Mark => New_Occurrence_Of (Standard_Natural, Loc),
!                     Constraint   =>
!                       Make_Range_Constraint (Loc,
!                         Range_Expression =>
!                           Make_Range (Loc,
!                             Low_Bound  =>
!                               Make_Integer_Literal (Loc, Uint_0),
!                             High_Bound =>
!                               Make_Integer_Literal (Loc, Counter_Val)))));
  
!             --  Generate the declaration of the counter itself:
!             --
!             --    Counter : Integer := 0;
  
!             Counter_Decl :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Counter_Id,
!                 Object_Definition   => New_Occurrence_Of (Counter_Typ, Loc),
!                 Expression          => Make_Integer_Literal (Loc, 0));
  
!             --  Set the type of the counter explicitly to prevent errors when
!             --  examining object declarations later on.
  
!             Set_Etype (Counter_Id, Counter_Typ);
  
!             if Debug_Generated_Code then
!                Set_Debug_Info_Needed (Counter_Id);
              end if;
  
!             --  The counter and its type are inserted before the source
!             --  declarations of N.
! 
!             Prepend_To (Decls, Counter_Decl);
!             Prepend_To (Decls, Counter_Typ_Decl);
! 
!             --  The counter and its associated type must be manually analyzed
!             --  since N has already been analyzed.
! 
!             Analyze (Counter_Typ_Decl);
!             Analyze (Counter_Decl);
! 
!             Jump_Alts := New_List;
           end if;
  
           --  If the context requires additional cleanup, the finalization
           --  machinery is added after the cleanup code.
  
           if Acts_As_Clean then
!             Finalizer_Stmts       := Clean_Stmts;
!             Jump_Block_Insert_Nod := Last (Finalizer_Stmts);
           else
              Finalizer_Stmts := New_List;
           end if;
--- 1897,1968 ----
        ----------------------
  
        procedure Build_Components is
!          Constraints : List_Id;
!          Master_Decl : Node_Id;
!          Master_Name : Name_Id;
  
        begin
           pragma Assert (Present (Decls));
  
!          --  If the context contains controlled objects with strict semantics
!          --  for finalization, then we create the finalization master, unless
!          --  there is a single such object: in this common case, we'll directly
!          --  finalize the object.
  
!          if Has_Strict_Ctrl_Objs then
!             if Count > 1 then
!                if For_Package_Spec then
!                   Master_Name :=
!                     New_External_Name (Name_uMaster, Suffix => "_spec");
!                elsif For_Package_Body then
!                   Master_Name :=
!                     New_External_Name (Name_uMaster, Suffix => "_body");
!                else
!                   Master_Name := New_Internal_Name ('M');
!                end if;
  
!                Finalization_Master :=
!                  Make_Defining_Identifier (Loc, Master_Name);
  
!                --  The master is statically parameterized by the context
  
!                Constraints := New_List;
!                Append_To (Constraints,
!                  New_Occurrence_Of (Boolean_Literals (Exceptions_OK), Loc));
!                Append_To (Constraints,
!                  New_Occurrence_Of
!                   (Boolean_Literals (Exception_Extra_Info), Loc));
!                Append_To (Constraints,
!                  New_Occurrence_Of (Boolean_Literals (For_Package), Loc));
  
!                Master_Decl :=
!                  Make_Object_Declaration (Loc,
!                    Defining_Identifier => Finalization_Master,
!                    Object_Definition   =>
!                      Make_Subtype_Indication (Loc,
!                        Subtype_Mark =>
!                          New_Occurrence_Of
!                            (RTE (RE_Finalization_Master), Loc),
!                        Constraint  =>
!                          Make_Index_Or_Discriminant_Constraint (Loc,
!                            Constraints => Constraints)));
  
!                Prepend_To (Decls, Master_Decl);
!                Analyze (Master_Decl, Suppress => All_Checks);
              end if;
  
!             if Exceptions_OK then
!                Finalizer_Decls := New_List;
!                Build_Object_Declarations
!                  (Finalizer_Data, Finalizer_Decls, Loc, For_Package);
!             end if;
           end if;
  
           --  If the context requires additional cleanup, the finalization
           --  machinery is added after the cleanup code.
  
           if Acts_As_Clean then
!             Finalizer_Stmts := Clean_Stmts;
           else
              Finalizer_Stmts := New_List;
           end if;
*************** package body Exp_Ch7 is
*** 1643,1652 ****
        procedure Create_Finalizer is
           Body_Id    : Entity_Id;
           Fin_Body   : Node_Id;
           Fin_Spec   : Node_Id;
-          Jump_Block : Node_Id;
-          Label      : Node_Id;
-          Label_Id   : Entity_Id;
  
        begin
           --  Step 1: Creation of the finalizer name
--- 1979,1986 ----
        procedure Create_Finalizer is
           Body_Id    : Entity_Id;
           Fin_Body   : Node_Id;
+          Fin_Call   : Node_Id;
           Fin_Spec   : Node_Id;
  
        begin
           --  Step 1: Creation of the finalizer name
*************** package body Exp_Ch7 is
*** 1666,1681 ****
           --  The default name is _finalizer
  
           else
-             --  Generation of a finalization procedure exclusively for 'Old
-             --  interally generated constants requires different name since
-             --  there will need to be multiple finalization routines in the
-             --  same scope. See Build_Finalizer for details.
- 
              Fin_Id :=
                Make_Defining_Identifier (Loc,
                  Chars => New_External_Name (Name_uFinalizer));
  
!             --  The visibility semantics of AT_END handlers force a strange
              --  separation of spec and body for stack-related finalizers:
  
              --     declare : Enclosing_Scope
--- 2000,2011 ----
           --  The default name is _finalizer
  
           else
              Fin_Id :=
                Make_Defining_Identifier (Loc,
                  Chars => New_External_Name (Name_uFinalizer));
+             Set_Is_Finalizer (Fin_Id);
  
!             --  The visibility semantics of At_End handlers force a strange
              --  separation of spec and body for stack-related finalizers:
  
              --     declare : Enclosing_Scope
*************** package body Exp_Ch7 is
*** 1691,1697 ****
              --  Both spec and body are within the same construct and scope, but
              --  the body is part of the handled sequence of statements. This
              --  placement confuses the elaboration mechanism on targets where
!             --  AT_END handlers are expanded into "when all others" handlers:
  
              --     exception
              --        when all others =>
--- 2021,2027 ----
              --  Both spec and body are within the same construct and scope, but
              --  the body is part of the handled sequence of statements. This
              --  placement confuses the elaboration mechanism on targets where
!             --  At_End handlers are expanded into "when all others" handlers:
  
              --     exception
              --        when all others =>
*************** package body Exp_Ch7 is
*** 1701,1707 ****
              --     end;
  
              --  Since the compiler guarantees that the body of a _finalizer is
!             --  always inserted in the same construct where the AT_END handler
              --  resides, there is no need for elaboration checks.
  
              Set_Kill_Elaboration_Checks (Fin_Id);
--- 2031,2037 ----
              --     end;
  
              --  Since the compiler guarantees that the body of a _finalizer is
!             --  always inserted in the same construct where the At_End handler
              --  resides, there is no need for elaboration checks.
  
              Set_Kill_Elaboration_Checks (Fin_Id);
*************** package body Exp_Ch7 is
*** 1738,1815 ****
  
           --  Step 3: Creation of the finalizer body
  
!         --  Has_Ctrl_Objs might be set because of a generic package body having
!         --  controlled objects. In this case, Jump_Alts may be empty and no
!         --  case nor goto statements are needed.
  
!          if Has_Ctrl_Objs
!            and then not Is_Empty_List (Jump_Alts)
!          then
!             --  Add L0, the default destination to the jump block
  
!             Label_Id := Make_Identifier (Loc, New_External_Name ('L', 0));
!             Set_Entity (Label_Id,
!               Make_Defining_Identifier (Loc, Chars (Label_Id)));
!             Label := Make_Label (Loc, Label_Id);
  
!             --  Generate:
!             --    L0 : label;
  
!             Prepend_To (Finalizer_Decls,
!               Make_Implicit_Label_Declaration (Loc,
!                 Defining_Identifier => Entity (Label_Id),
!                 Label_Construct     => Label));
  
!             --  Generate:
!             --    when others =>
!             --       goto L0;
  
!             Append_To (Jump_Alts,
!               Make_Case_Statement_Alternative (Loc,
!                 Discrete_Choices => New_List (Make_Others_Choice (Loc)),
!                 Statements       => New_List (
!                   Make_Goto_Statement (Loc,
!                     Name => New_Occurrence_Of (Entity (Label_Id), Loc)))));
  
!             --  Generate:
!             --    <<L0>>
  
!             Append_To (Finalizer_Stmts, Label);
  
!             --  Create the jump block which controls the finalization flow
!             --  depending on the value of the state counter.
  
!             Jump_Block :=
!               Make_Case_Statement (Loc,
!                 Expression   => Make_Identifier (Loc, Chars (Counter_Id)),
!                 Alternatives => Jump_Alts);
  
!             if Acts_As_Clean and then Present (Jump_Block_Insert_Nod) then
!                Insert_After (Jump_Block_Insert_Nod, Jump_Block);
!             else
!                Prepend_To (Finalizer_Stmts, Jump_Block);
!             end if;
!          end if;
  
!          --  Add the library-level tagged type unregistration machinery before
!          --  the jump block circuitry. This ensures that external tags will be
!          --  removed even if a finalization exception occurs at some point.
  
!          if Has_Tagged_Types then
!             Prepend_List_To (Finalizer_Stmts, Tagged_Type_Stmts);
!          end if;
  
!          --  Add a call to the previous At_End handler if it exists. The call
!          --  must always precede the jump block.
  
!          if Present (Prev_At_End) then
!             Prepend_To (Finalizer_Stmts,
!               Make_Procedure_Call_Statement (Loc, Prev_At_End));
  
!             --  Clear the At_End handler since we have already generated the
!             --  proper replacement call for it.
  
!             Set_At_End_Proc (HSS, Empty);
           end if;
  
           --  Release the secondary stack
--- 2068,2158 ----
  
           --  Step 3: Creation of the finalizer body
  
!          --  Add the library-level tagged type unregistration machinery before
!          --  the finalization circuitry. This ensures that external tags will
!          --  be removed even if a finalization exception occurs at some point.
  
!          if Has_Tagged_Types then
!             Prepend_List_To (Finalizer_Stmts, Tagged_Type_Stmts);
!          end if;
  
!          --  Add a call to the previous At_End handler if it exists. The call
!          --  must always precede the finalization circuitry.
  
!          if Present (Prev_At_End) then
!             Prepend_To (Finalizer_Stmts,
!               Make_Procedure_Call_Statement (Loc, Prev_At_End));
  
!             --  Clear the At_End handler since we have already generated the
!             --  proper replacement call for it.
  
!             Set_At_End_Proc (HSS, Empty);
!          end if;
  
!          --   If there are no controlled objects to be finalized, generate;
  
!          --    procedure Fin_Id is
!          --    begin
!          --       Abort_Defer;               --  Added if abort is allowed
!          --       <call to Prev_At_End>      --  Added if exists
!          --       <tag unregistration>       --  Added if Has_Tagged_Types
!          --       <cleanup statements>       --  Added if Acts_As_Clean
!          --       <stack release>            --  Added if Mark_Id exists
!          --       Abort_Undefer;             --  Added if abort is allowed
!          --    end Fin_Id;
  
!          --  If there are strict controlled objects to be finalized, generate:
  
!          --    procedure Fin_Id is
!          --       Abort  : constant Boolean := Triggered_By_Abort;
!          --       E      : Exception_Occurrence;
!          --       Raised : Boolean := False;
!          --    begin
!          --       Abort_Defer;               --  Added if abort is allowed
!          --       <call to Prev_At_End>      --  Added if exists
!          --       <tag unregistration>       --  Added if Has_Tagged_Types
!          --       <cleanup statements>       --  Added if Acts_As_Clean
!          --       <finalization statements>
!          --       <stack release>            --  Added if Mark_Id exists
!          --       Abort_Undefer;             --  Added if abort is allowed
!          --       <exception propagation>
!          --    end Fin_Id;
  
!          --  If there are only controlled objects with relaxed semantics for
!          --  finalization, only the <finalization statements> are generated.
  
!          if Has_Strict_Ctrl_Objs and then Count > 1 then
!             Fin_Call :=
!               Make_Procedure_Call_Statement (Loc,
!                Name                   =>
!                  New_Occurrence_Of (RTE (RE_Finalize_Master), Loc),
!                  Parameter_Associations =>
!                    New_List (New_Occurrence_Of (Finalization_Master, Loc)));
  
!             --  For CodePeer, the exception handlers normally generated here
!             --  generate complex flowgraphs which result in capacity problems.
!             --  Omitting these handlers for CodePeer is justified as follows:
  
!             --    If a handler is dead, then omitting it is surely ok
  
!             --    If a handler is live, then CodePeer should flag the
!             --      potentially-exception-raising construct that causes it
!             --      to be live. That is what we are interested in, not what
!             --      happens after the exception is raised.
  
!             if Exceptions_OK and not CodePeer_Mode then
!                Fin_Call :=
!                  Make_Block_Statement (Loc,
!                    Handled_Statement_Sequence =>
!                      Make_Handled_Sequence_Of_Statements (Loc,
!                        Statements => New_List (Fin_Call),
  
!                     Exception_Handlers => New_List (
!                       Build_Exception_Handler
!                         (Finalizer_Data, For_Package))));
!             end if;
  
!             Append_To (Finalizer_Stmts, Fin_Call);
           end if;
  
           --  Release the secondary stack
*************** package body Exp_Ch7 is
*** 1866,1872 ****
           --  Protect the statements with abort defer/undefer. This is only when
           --  aborts are allowed and the cleanup statements require deferral or
           --  there are controlled objects to be finalized. Note that the abort
!          --  defer/undefer pair does not require an extra block because each
           --  finalization exception is caught in its corresponding finalization
           --  block. As a result, the call to Abort_Defer always takes place.
  
--- 2209,2215 ----
           --  Protect the statements with abort defer/undefer. This is only when
           --  aborts are allowed and the cleanup statements require deferral or
           --  there are controlled objects to be finalized. Note that the abort
!          --  defer/undefer pair does not require an extra block because the
           --  finalization exception is caught in its corresponding finalization
           --  block. As a result, the call to Abort_Defer always takes place.
  
*************** package body Exp_Ch7 is
*** 1886,1919 ****
           --       Raise_From_Controlled_Operation (E);
           --    end if;
  
!          if Has_Ctrl_Objs and Exceptions_OK and not For_Package then
              Append_To (Finalizer_Stmts,
                Build_Raise_Statement (Finalizer_Data));
           end if;
  
-          --  Generate:
-          --    procedure Fin_Id is
-          --       Abort  : constant Boolean := Triggered_By_Abort;
-          --         <or>
-          --       Abort  : constant Boolean := False;  --  no abort
- 
-          --       E      : Exception_Occurrence;  --  All added if flag
-          --       Raised : Boolean := False;      --  Has_Ctrl_Objs is set
-          --       L0     : label;
-          --       ...
-          --       Lnn    : label;
- 
-          --    begin
-          --       Abort_Defer;               --  Added if abort is allowed
-          --       <call to Prev_At_End>      --  Added if exists
-          --       <cleanup statements>       --  Added if Acts_As_Clean
-          --       <jump block>               --  Added if Has_Ctrl_Objs
-          --       <finalization statements>  --  Added if Has_Ctrl_Objs
-          --       <stack release>            --  Added if Mark_Id exists
-          --       Abort_Undefer;             --  Added if abort is allowed
-          --       <exception propagation>    --  Added if Has_Ctrl_Objs
-          --    end Fin_Id;
- 
           --  Create the body of the finalizer
  
           Body_Id := Make_Defining_Identifier (Loc, Chars (Fin_Id));
--- 2229,2239 ----
           --       Raise_From_Controlled_Operation (E);
           --    end if;
  
!          if Has_Strict_Ctrl_Objs and Exceptions_OK and not For_Package then
              Append_To (Finalizer_Stmts,
                Build_Raise_Statement (Finalizer_Data));
           end if;
  
           --  Create the body of the finalizer
  
           Body_Id := Make_Defining_Identifier (Loc, Chars (Fin_Id));
*************** package body Exp_Ch7 is
*** 1941,1977 ****
  
           if For_Package then
  
!             --  If the package spec has private declarations, the finalizer
!             --  body must be added to the end of the list in order to have
!             --  visibility of all private controlled objects.
  
!             if For_Package_Spec then
!                if Present (Priv_Decls) then
!                   Append_To (Priv_Decls, Fin_Spec);
!                   Append_To (Priv_Decls, Fin_Body);
!                else
!                   Append_To (Decls, Fin_Spec);
!                   Append_To (Decls, Fin_Body);
!                end if;
  
!             --  For package bodies, both the finalizer spec and body are
!             --  inserted at the end of the package declarations.
  
              else
                 Append_To (Decls, Fin_Spec);
                 Append_To (Decls, Fin_Body);
              end if;
  
-             Analyze (Fin_Spec);
-             Analyze (Fin_Body);
- 
           --  Non-package case
  
           else
!             --  Create the spec for the finalizer. The At_End handler must be
              --  able to call the body which resides in a nested structure.
  
-             --  Generate:
              --    declare
              --       procedure Fin_Id;                  --  Spec
              --    begin
--- 2261,2287 ----
  
           if For_Package then
  
!             --  If a package spec has private declarations, both the finalizer
!             --  spec and body are inserted at the end of this list.
  
!             if For_Package_Spec and then Present (Priv_Decls) then
!                Append_To (Priv_Decls, Fin_Spec);
!                Append_To (Priv_Decls, Fin_Body);
  
!             --  Otherwise, and for a package body, both the finalizer spec and
!             --  body are inserted at the end of the package declarations.
  
              else
                 Append_To (Decls, Fin_Spec);
                 Append_To (Decls, Fin_Body);
              end if;
  
           --  Non-package case
  
           else
!             --  Insert the spec for the finalizer. The At_End handler must be
              --  able to call the body which resides in a nested structure.
  
              --    declare
              --       procedure Fin_Id;                  --  Spec
              --    begin
*************** package body Exp_Ch7 is
*** 1982,2009 ****
              --       Fin_Id;                            --  At_End handler
              --    end;
  
!             pragma Assert (Present (Spec_Decls));
! 
!             --  It maybe possible that we are finalizing 'Old objects which
!             --  exist in the spec declarations. When this is the case the
!             --  Finalizer_Insert_Node will come before the end of the
!             --  Spec_Decls. So, to mitigate this, we insert the finalizer spec
!             --  earlier at the Finalizer_Insert_Nod instead of appending to the
!             --  end of Spec_Decls to prevent its body appearing before its
!             --  corresponding spec.
! 
!             if Present (Finalizer_Insert_Nod)
!               and then List_Containing (Finalizer_Insert_Nod) = Spec_Decls
!             then
!                Insert_After_And_Analyze (Finalizer_Insert_Nod, Fin_Spec);
!                Finalizer_Insert_Nod := Fin_Spec;
! 
!             --  Otherwise, Finalizer_Insert_Nod is not in Spec_Decls
  
!             else
!                Append_To (Spec_Decls, Fin_Spec);
!                Analyze (Fin_Spec);
!             end if;
  
              --  When the finalizer acts solely as a cleanup routine, the body
              --  is inserted right after the spec.
--- 2292,2300 ----
              --       Fin_Id;                            --  At_End handler
              --    end;
  
!             pragma Assert (Present (Decls));
  
!             Append_To (Decls, Fin_Spec);
  
              --  When the finalizer acts solely as a cleanup routine, the body
              --  is inserted right after the spec.
*************** package body Exp_Ch7 is
*** 2011,2021 ****
              if Acts_As_Clean and not Has_Ctrl_Objs then
                 Insert_After (Fin_Spec, Fin_Body);
  
!             --  In all other cases the body is inserted after either:
!             --
!             --    1) The counter update statement of the last controlled object
!             --    2) The last top level nested controlled package
!             --    3) The last top level controlled instantiation
  
              else
                 --  Manually freeze the spec. This is somewhat of a hack because
--- 2302,2308 ----
              if Acts_As_Clean and not Has_Ctrl_Objs then
                 Insert_After (Fin_Spec, Fin_Body);
  
!             --  In other cases the body is inserted after the last statement
  
              else
                 --  Manually freeze the spec. This is somewhat of a hack because
*************** package body Exp_Ch7 is
*** 2037,2064 ****
                 Insert_After (Fin_Spec, Freeze_Node (Fin_Id));
                 Set_Is_Frozen (Fin_Id);
  
!                --  In the case where the last construct to contain a controlled
!                --  object is either a nested package, an instantiation or a
!                --  freeze node, the body must be inserted directly after the
!                --  construct, except if the insertion point is already placed
!                --  after the construct, typically in the statement list.
! 
!                if Nkind (Last_Top_Level_Ctrl_Construct) in
!                     N_Freeze_Entity | N_Package_Declaration | N_Package_Body
!                  and then not
!                   (List_Containing (Last_Top_Level_Ctrl_Construct) = Spec_Decls
!                     and then Present (Stmts)
!                     and then List_Containing (Finalizer_Insert_Nod) = Stmts)
!                then
!                   Finalizer_Insert_Nod := Last_Top_Level_Ctrl_Construct;
!                end if;
! 
!                Insert_After (Finalizer_Insert_Nod, Fin_Body);
              end if;
- 
-             Analyze (Fin_Body, Suppress => All_Checks);
           end if;
  
           --  Never consider that the finalizer procedure is enabled Ghost, even
           --  when the corresponding unit is Ghost, as this would lead to an
           --  an external name with a ___ghost_ prefix that the binder cannot
--- 2324,2336 ----
                 Insert_After (Fin_Spec, Freeze_Node (Fin_Id));
                 Set_Is_Frozen (Fin_Id);
  
!                Append_To (Stmts, Fin_Body);
              end if;
           end if;
  
+          Analyze (Fin_Spec, Suppress => All_Checks);
+          Analyze (Fin_Body, Suppress => All_Checks);
+ 
           --  Never consider that the finalizer procedure is enabled Ghost, even
           --  when the corresponding unit is Ghost, as this would lead to an
           --  an external name with a ___ghost_ prefix that the binder cannot
*************** package body Exp_Ch7 is
*** 2121,2154 ****
  
        procedure Process_Declarations
          (Decls      : List_Id;
!          Preprocess : Boolean := False;
!          Top_Level  : Boolean := False)
        is
-          Decl    : Node_Id;
-          Expr    : Node_Id;
-          Obj_Id  : Entity_Id;
-          Obj_Typ : Entity_Id;
-          Pack_Id : Entity_Id;
-          Spec    : Node_Id;
-          Typ     : Entity_Id;
- 
-          Old_Counter_Val : Nat;
-          --  This variable is used to determine whether a nested package or
-          --  instance contains at least one controlled object.
- 
           procedure Process_Package_Body (Decl : Node_Id);
           --  Process an N_Package_Body node
  
           procedure Processing_Actions
!            (Has_No_Init  : Boolean := False;
!             Is_Protected : Boolean := False);
           --  Depending on the mode of operation of Process_Declarations, either
!          --  increment the controlled object counter, set the controlled object
!          --  flag and store the last top level construct or process the current
!          --  declaration. Flag Has_No_Init is used to propagate scenarios where
!          --  the current declaration may not have initialization proc(s). Flag
!          --  Is_Protected should be set when the current declaration denotes a
!          --  simple protected object.
  
           --------------------------
           -- Process_Package_Body --
--- 2393,2412 ----
  
        procedure Process_Declarations
          (Decls      : List_Id;
!          Preprocess : Boolean := False)
        is
           procedure Process_Package_Body (Decl : Node_Id);
           --  Process an N_Package_Body node
  
           procedure Processing_Actions
!            (Decl         : Node_Id;
!             Is_Protected : Boolean := False;
!             Strict       : Boolean := False);
           --  Depending on the mode of operation of Process_Declarations, either
!          --  increment the controlled object count or process the declaration.
!          --  The Flag Is_Protected is set when the declaration denotes a simple
!          --  protected object. The flag Strict is true when the declaration is
!          --  for a controlled object with strict semantics for finalization.
  
           --------------------------
           -- Process_Package_Body --
*************** package body Exp_Ch7 is
*** 2163,2181 ****
                 null;
  
              elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package then
-                Old_Counter_Val := Counter_Val;
                 Process_Declarations (Declarations (Decl), Preprocess);
- 
-                --  The nested package body is the last construct to contain
-                --  a controlled object.
- 
-                if Preprocess
-                  and then Top_Level
-                  and then No (Last_Top_Level_Ctrl_Construct)
-                  and then Counter_Val > Old_Counter_Val
-                then
-                   Last_Top_Level_Ctrl_Construct := Decl;
-                end if;
              end if;
           end Process_Package_Body;
  
--- 2421,2427 ----
*************** package body Exp_Ch7 is
*** 2184,2191 ****
           ------------------------
  
           procedure Processing_Actions
!            (Has_No_Init  : Boolean := False;
!             Is_Protected : Boolean := False)
           is
           begin
              --  Library-level tagged type
--- 2430,2438 ----
           ------------------------
  
           procedure Processing_Actions
!            (Decl         : Node_Id;
!             Is_Protected : Boolean := False;
!             Strict       : Boolean := False)
           is
           begin
              --  Library-level tagged type
*************** package body Exp_Ch7 is
*** 2194,2203 ****
                 if Preprocess then
                    Has_Tagged_Types := True;
  
-                   if Top_Level and then No (Last_Top_Level_Ctrl_Construct) then
-                      Last_Top_Level_Ctrl_Construct := Decl;
-                   end if;
- 
                 --  Unregister tagged type, unless No_Tagged_Type_Registration
                 --  is active.
  
--- 2441,2446 ----
*************** package body Exp_Ch7 is
*** 2209,2227 ****
  
              else
                 if Preprocess then
!                   Counter_Val   := Counter_Val + 1;
!                   Has_Ctrl_Objs := True;
! 
!                   if Top_Level and then No (Last_Top_Level_Ctrl_Construct) then
!                      Last_Top_Level_Ctrl_Construct := Decl;
                    end if;
  
                 else
!                   Process_Object_Declaration (Decl, Has_No_Init, Is_Protected);
                 end if;
              end if;
           end Processing_Actions;
  
        --  Start of processing for Process_Declarations
  
        begin
--- 2452,2479 ----
  
              else
                 if Preprocess then
!                   Count := Count + 1;
!                   if Strict then
!                      Has_Strict_Ctrl_Objs := True;
                    end if;
  
                 else
!                   Process_Object_Declaration (Decl, Is_Protected);
                 end if;
              end if;
           end Processing_Actions;
  
+          --  Local variables
+ 
+          Decl    : Node_Id;
+          Expr    : Node_Id;
+          Obj_Id  : Entity_Id;
+          Obj_Typ : Entity_Id;
+          Pack_Id : Entity_Id;
+          Prev    : Node_Id;
+          Spec    : Node_Id;
+          Typ     : Entity_Id;
+ 
        --  Start of processing for Process_Declarations
  
        begin
*************** package body Exp_Ch7 is
*** 2229,2238 ****
              return;
           end if;
  
!          --  Process all declarations in reverse order
  
           Decl := Last_Non_Pragma (Decls);
           while Present (Decl) loop
              --  Library-level tagged types
  
              if Nkind (Decl) = N_Full_Type_Declaration then
--- 2481,2493 ----
              return;
           end if;
  
!          --  Process all declarations in reverse order and be prepared for them
!          --  to be moved during the processing.
  
           Decl := Last_Non_Pragma (Decls);
           while Present (Decl) loop
+             Prev := Prev_Non_Pragma (Decl);
+ 
              --  Library-level tagged types
  
              if Nkind (Decl) = N_Full_Type_Declaration then
*************** package body Exp_Ch7 is
*** 2253,2259 ****
                   and then not Restriction_Active (No_Tagged_Type_Registration)
                   and then RTE_Available (RE_Register_Tag)
                 then
!                   Processing_Actions;
                 end if;
  
              --  Regular object declarations
--- 2508,2514 ----
                   and then not Restriction_Active (No_Tagged_Type_Registration)
                   and then RTE_Available (RE_Register_Tag)
                 then
!                   Processing_Actions (Decl);
                 end if;
  
              --  Regular object declarations
*************** package body Exp_Ch7 is
*** 2291,2296 ****
--- 2546,2560 ----
                 elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                    null;
  
+                --  Conversely, if one of the above cases created a Master_Node,
+                --  finalization actions are required for the associated object.
+ 
+                elsif Ekind (Obj_Id) = E_Variable
+                  and then Is_RTE (Obj_Typ, RE_Master_Node)
+                then
+                   Processing_Actions
+                     (Decl, Strict => not Is_Independent (Obj_Id));
+ 
                 --  The object is of the form:
                 --    Obj : [constant] Typ [:= Expr];
  
*************** package body Exp_Ch7 is
*** 2305,2311 ****
                                  and then not Has_Completion (Obj_Id)
                                  and then No (BIP_Initialization_Call (Obj_Id)))
                 then
!                   Processing_Actions;
  
                 --  The object is of the form:
                 --    Obj : Access_Typ := Non_BIP_Function_Call'reference;
--- 2569,2576 ----
                                  and then not Has_Completion (Obj_Id)
                                  and then No (BIP_Initialization_Call (Obj_Id)))
                 then
!                   Processing_Actions
!                     (Decl, Strict => not Has_Relaxed_Finalization (Obj_Typ));
  
                 --  The object is of the form:
                 --    Obj : Access_Typ := Non_BIP_Function_Call'reference;
*************** package body Exp_Ch7 is
*** 2323,2355 ****
                         (Is_Non_BIP_Func_Call (Expr)
                           and then not Is_Related_To_Func_Return (Obj_Id)))
                 then
!                   Processing_Actions (Has_No_Init => True);
! 
!                --  Processing for "hook" objects generated for transient
!                --  objects declared inside an Expression_With_Actions.
! 
!                elsif Is_Access_Type (Obj_Typ)
!                  and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!                  and then Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
!                                                        N_Object_Declaration
!                then
!                   Processing_Actions (Has_No_Init => True);
! 
!                --  Process intermediate results of an if expression with one
!                --  of the alternatives using a controlled function call.
! 
!                elsif Is_Access_Type (Obj_Typ)
!                  and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!                  and then Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
!                                                        N_Defining_Identifier
!                  and then Present (Expr)
!                  and then Nkind (Expr) = N_Null
!                then
!                   Processing_Actions (Has_No_Init => True);
  
!                --  Simple protected objects which use type System.Tasking.
                 --  Protected_Objects.Protection to manage their locks should
                 --  be treated as controlled since they require manual cleanup.
                 --  The only exception is illustrated in the following example:
  
                 --     package Pkg is
--- 2588,2604 ----
                         (Is_Non_BIP_Func_Call (Expr)
                           and then not Is_Related_To_Func_Return (Obj_Id)))
                 then
!                   Processing_Actions
!                     (Decl,
!                      Strict => not Has_Relaxed_Finalization
!                                  (Available_View (Designated_Type (Obj_Typ))));
  
!                --  Simple protected objects which use the type System.Tasking.
                 --  Protected_Objects.Protection to manage their locks should
                 --  be treated as controlled since they require manual cleanup.
+                --  but not for restricted run-time libraries (Ravenscar), see
+                --  also Cleanup_Protected_Object.
+ 
                 --  The only exception is illustrated in the following example:
  
                 --     package Pkg is
*************** package body Exp_Ch7 is
*** 2382,2431 ****
                 elsif Ekind (Obj_Id) = E_Variable
                   and then not In_Library_Level_Package_Body (Obj_Id)
                   and then Has_Simple_Protected_Object (Obj_Typ)
                 then
!                   Processing_Actions (Is_Protected => True);
!                end if;
! 
!             --  Specific cases of object renamings
! 
!             elsif Nkind (Decl) = N_Object_Renaming_Declaration then
!                Obj_Id  := Defining_Identifier (Decl);
!                Obj_Typ := Base_Type (Etype (Obj_Id));
! 
!                --  Bypass any form of processing for objects which have their
!                --  finalization disabled. This applies only to objects at the
!                --  library level.
! 
!                if For_Package and then Finalize_Storage_Only (Obj_Typ) then
!                   null;
! 
!                --  Ignored Ghost object renamings do not need any cleanup
!                --  actions because they will not appear in the final tree.
! 
!                elsif Is_Ignored_Ghost_Entity (Obj_Id) then
!                   null;
! 
!                --  Return object of extended return statements. This case is
!                --  recognized and marked by the expansion of extended return
!                --  statements (see Expand_N_Extended_Return_Statement).
! 
!                elsif Needs_Finalization (Obj_Typ)
!                  and then Is_Return_Object (Obj_Id)
!                  and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!                then
!                   Processing_Actions (Has_No_Init => True);
                 end if;
  
              --  Inspect the freeze node of an access-to-controlled type and
!             --  look for a delayed finalization master. This case arises when
!             --  the freeze actions are inserted at a later time than the
              --  expansion of the context. Since Build_Finalizer is never called
!             --  on a single construct twice, the master will be ultimately
              --  left out and never finalized. This is also needed for freeze
              --  actions of designated types themselves, since in some cases the
!             --  finalization master is associated with a designated type's
              --  freeze node rather than that of the access type (see handling
!             --  for freeze actions in Build_Finalization_Master).
  
              elsif Nkind (Decl) = N_Freeze_Entity
                and then Present (Actions (Decl))
--- 2631,2652 ----
                 elsif Ekind (Obj_Id) = E_Variable
                   and then not In_Library_Level_Package_Body (Obj_Id)
                   and then Has_Simple_Protected_Object (Obj_Typ)
+                  and then not Restricted_Profile
                 then
!                   Processing_Actions
!                     (Decl, Is_Protected => True, Strict => True);
                 end if;
  
              --  Inspect the freeze node of an access-to-controlled type and
!             --  look for a delayed finalization collection. This case arises
!             --  when the freeze actions are inserted at a later time than the
              --  expansion of the context. Since Build_Finalizer is never called
!             --  on a single construct twice, the collection would be ultimately
              --  left out and never finalized. This is also needed for freeze
              --  actions of designated types themselves, since in some cases the
!             --  finalization collection is associated with a designated type's
              --  freeze node rather than that of the access type (see handling
!             --  for freeze actions in Build_Finalization_Collection).
  
              elsif Nkind (Decl) = N_Freeze_Entity
                and then Present (Actions (Decl))
*************** package body Exp_Ch7 is
*** 2443,2466 ****
                                     (Available_View (Designated_Type (Typ))))
                        or else (Is_Type (Typ) and then Needs_Finalization (Typ))
                 then
-                   Old_Counter_Val := Counter_Val;
- 
                    --  Freeze nodes are considered to be identical to packages
                    --  and blocks in terms of nesting. The difference is that
!                   --  a finalization master created inside the freeze node is
!                   --  at the same nesting level as the node itself.
  
                    Process_Declarations (Actions (Decl), Preprocess);
- 
-                   --  The freeze node contains a finalization master
- 
-                   if Preprocess
-                     and then Top_Level
-                     and then No (Last_Top_Level_Ctrl_Construct)
-                     and then Counter_Val > Old_Counter_Val
-                   then
-                      Last_Top_Level_Ctrl_Construct := Decl;
-                   end if;
                 end if;
  
              --  Nested package declarations, avoid generics
--- 2664,2675 ----
                                     (Available_View (Designated_Type (Typ))))
                        or else (Is_Type (Typ) and then Needs_Finalization (Typ))
                 then
                    --  Freeze nodes are considered to be identical to packages
                    --  and blocks in terms of nesting. The difference is that
!                   --  a finalization collection created inside the freeze node
!                   --  is at the same nesting level as the node itself.
  
                    Process_Declarations (Actions (Decl), Preprocess);
                 end if;
  
              --  Nested package declarations, avoid generics
*************** package body Exp_Ch7 is
*** 2476,2498 ****
                    null;
  
                 elsif Ekind (Pack_Id) /= E_Generic_Package then
-                   Old_Counter_Val := Counter_Val;
                    Process_Declarations
                      (Private_Declarations (Spec), Preprocess);
                    Process_Declarations
                      (Visible_Declarations (Spec), Preprocess);
- 
-                   --  Either the visible or the private declarations contain a
-                   --  controlled object. The nested package declaration is the
-                   --  last such construct.
- 
-                   if Preprocess
-                     and then Top_Level
-                     and then No (Last_Top_Level_Ctrl_Construct)
-                     and then Counter_Val > Old_Counter_Val
-                   then
-                      Last_Top_Level_Ctrl_Construct := Decl;
-                   end if;
                 end if;
  
              --  Nested package bodies, avoid generics
--- 2685,2694 ----
*************** package body Exp_Ch7 is
*** 2501,2512 ****
                 Process_Package_Body (Decl);
  
              elsif Nkind (Decl) = N_Package_Body_Stub
!               and then Present (Library_Unit (Decl))
              then
!                Process_Package_Body (Proper_Body (Unit (Library_Unit (Decl))));
              end if;
  
!             Prev_Non_Pragma (Decl);
           end loop;
        end Process_Declarations;
  
--- 2697,2709 ----
                 Process_Package_Body (Decl);
  
              elsif Nkind (Decl) = N_Package_Body_Stub
!               and then Present (Stub_Subunit (Decl))
              then
!                Process_Package_Body
!                  (Proper_Body (Unit (Stub_Subunit (Decl))));
              end if;
  
!             Decl := Prev;
           end loop;
        end Process_Declarations;
  
*************** package body Exp_Ch7 is
*** 2516,3226 ****
  
        procedure Process_Object_Declaration
          (Decl         : Node_Id;
-          Has_No_Init  : Boolean := False;
           Is_Protected : Boolean := False)
        is
-          Loc    : constant Source_Ptr := Sloc (Decl);
           Obj_Id : constant Entity_Id := Defining_Identifier (Decl);
  
!          Init_Typ : Entity_Id;
!          --  The initialization type of the related object declaration. Note
!          --  that this is not necessarily the same type as Obj_Typ because of
!          --  possible type derivations.
! 
!          Obj_Typ : Entity_Id;
!          --  The type of the related object declaration
! 
!          function Build_BIP_Cleanup_Stmts (Func_Id : Entity_Id) return Node_Id;
!          --  Func_Id denotes a build-in-place function. Generate the following
!          --  cleanup code:
!          --
!          --    if BIPallocfrom > Secondary_Stack'Pos
!          --      and then BIPfinalizationmaster /= null
!          --    then
!          --       declare
!          --          type Ptr_Typ is access Obj_Typ;
!          --          for Ptr_Typ'Storage_Pool
!          --            use Base_Pool (BIPfinalizationmaster);
!          --       begin
!          --          Free (Ptr_Typ (Temp));
!          --       end;
!          --    end if;
!          --
!          --  Obj_Typ is the type of the current object, Temp is the original
!          --  allocation which Obj_Id renames.
! 
!          procedure Find_Last_Init
!            (Last_Init   : out Node_Id;
!             Body_Insert : out Node_Id);
!          --  Find the last initialization call related to object declaration
!          --  Decl. Last_Init denotes the last initialization call which follows
!          --  Decl. Body_Insert denotes a node where the finalizer body could be
!          --  potentially inserted after (if blocks are involved).
! 
!          -----------------------------
!          -- Build_BIP_Cleanup_Stmts --
!          -----------------------------
  
!          function Build_BIP_Cleanup_Stmts
!            (Func_Id : Entity_Id) return Node_Id
!          is
!             Decls      : constant List_Id := New_List;
!             Fin_Mas_Id : constant Entity_Id :=
!                            Build_In_Place_Formal
!                              (Func_Id, BIP_Finalization_Master);
!             Func_Typ   : constant Entity_Id := Etype (Func_Id);
!             Temp_Id    : constant Entity_Id :=
!                            Entity (Prefix (Name (Parent (Obj_Id))));
  
!             Cond      : Node_Id;
!             Free_Blk  : Node_Id;
!             Free_Stmt : Node_Id;
!             Pool_Id   : Entity_Id;
!             Ptr_Typ   : Entity_Id;
  
!          begin
!             --  Generate:
!             --    Pool_Id renames Base_Pool (BIPfinalizationmaster.all).all;
  
!             Pool_Id := Make_Temporary (Loc, 'P');
  
!             Append_To (Decls,
!               Make_Object_Renaming_Declaration (Loc,
!                 Defining_Identifier => Pool_Id,
!                 Subtype_Mark        =>
!                   New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
!                 Name                =>
!                   Make_Explicit_Dereference (Loc,
!                     Prefix =>
!                       Make_Function_Call (Loc,
!                         Name                   =>
!                           New_Occurrence_Of (RTE (RE_Base_Pool), Loc),
!                         Parameter_Associations => New_List (
!                           Make_Explicit_Dereference (Loc,
!                             Prefix =>
!                               New_Occurrence_Of (Fin_Mas_Id, Loc)))))));
  
!             --  Create an access type which uses the storage pool of the
!             --  caller's finalization master.
  
!             --  Generate:
!             --    type Ptr_Typ is access Func_Typ;
  
!             Ptr_Typ := Make_Temporary (Loc, 'P');
  
!             Append_To (Decls,
!               Make_Full_Type_Declaration (Loc,
!                 Defining_Identifier => Ptr_Typ,
!                 Type_Definition     =>
!                   Make_Access_To_Object_Definition (Loc,
!                     Subtype_Indication => New_Occurrence_Of (Func_Typ, Loc))));
  
!             --  Perform minor decoration in order to set the master and the
!             --  storage pool attributes.
  
!             Mutate_Ekind (Ptr_Typ, E_Access_Type);
!             Set_Finalization_Master     (Ptr_Typ, Fin_Mas_Id);
!             Set_Associated_Storage_Pool (Ptr_Typ, Pool_Id);
  
!             if Debug_Generated_Code then
!                Set_Debug_Info_Needed (Pool_Id);
              end if;
  
!             --  Create an explicit free statement. Note that the free uses the
!             --  caller's pool expressed as a renaming.
  
!             Free_Stmt :=
!               Make_Free_Statement (Loc,
!                 Expression =>
!                   Unchecked_Convert_To (Ptr_Typ,
!                     New_Occurrence_Of (Temp_Id, Loc)));
  
!             Set_Storage_Pool (Free_Stmt, Pool_Id);
  
!             --  Create a block to house the dummy type and the instantiation as
!             --  well as to perform the cleanup the temporary.
  
!             --  Generate:
!             --    declare
!             --       <Decls>
!             --    begin
!             --       Free (Ptr_Typ (Temp_Id));
!             --    end;
  
!             Free_Blk :=
!               Make_Block_Statement (Loc,
!                 Declarations               => Decls,
!                 Handled_Statement_Sequence =>
!                   Make_Handled_Sequence_Of_Statements (Loc,
!                     Statements => New_List (Free_Stmt)));
  
!             --  Generate:
!             --    if BIPfinalizationmaster /= null then
  
!             Cond :=
!               Make_Op_Ne (Loc,
!                 Left_Opnd  => New_Occurrence_Of (Fin_Mas_Id, Loc),
!                 Right_Opnd => Make_Null (Loc));
  
!             --  For unconstrained or tagged results, escalate the condition to
!             --  include the allocation format. Generate:
  
!             --    if BIPallocform > Secondary_Stack'Pos
!             --      and then BIPfinalizationmaster /= null
!             --    then
  
!             if Needs_BIP_Alloc_Form (Func_Id) then
!                declare
!                   Alloc : constant Entity_Id :=
!                             Build_In_Place_Formal (Func_Id, BIP_Alloc_Form);
!                begin
!                   Cond :=
!                     Make_And_Then (Loc,
!                       Left_Opnd  =>
!                         Make_Op_Gt (Loc,
!                           Left_Opnd  => New_Occurrence_Of (Alloc, Loc),
!                           Right_Opnd =>
!                             Make_Integer_Literal (Loc,
!                               UI_From_Int
!                                 (BIP_Allocation_Form'Pos (Secondary_Stack)))),
  
!                       Right_Opnd => Cond);
!                end;
              end if;
  
!             --  Generate:
!             --    if <Cond> then
!             --       <Free_Blk>
!             --    end if;
  
!             return
!               Make_If_Statement (Loc,
!                 Condition       => Cond,
!                 Then_Statements => New_List (Free_Blk));
!          end Build_BIP_Cleanup_Stmts;
  
!          --------------------
!          -- Find_Last_Init --
!          --------------------
  
!          procedure Find_Last_Init
!            (Last_Init   : out Node_Id;
!             Body_Insert : out Node_Id)
!          is
!             function Find_Last_Init_In_Block (Blk : Node_Id) return Node_Id;
!             --  Find the last initialization call within the statements of
!             --  block Blk.
  
!             function Is_Init_Call (N : Node_Id) return Boolean;
!             --  Determine whether node N denotes one of the initialization
!             --  procedures of types Init_Typ or Obj_Typ.
  
!             function Next_Suitable_Statement (Stmt : Node_Id) return Node_Id;
!             --  Obtain the next statement which follows list member Stmt while
!             --  ignoring artifacts related to access-before-elaboration checks.
  
!             -----------------------------
!             -- Find_Last_Init_In_Block --
!             -----------------------------
  
!             function Find_Last_Init_In_Block (Blk : Node_Id) return Node_Id is
!                HSS  : constant Node_Id := Handled_Statement_Sequence (Blk);
!                Stmt : Node_Id;
  
              begin
!                --  Examine the individual statements of the block in reverse to
!                --  locate the last initialization call.
! 
!                if Present (HSS) and then Present (Statements (HSS)) then
!                   Stmt := Last (Statements (HSS));
!                   while Present (Stmt) loop
! 
!                      --  Peek inside nested blocks in case aborts are allowed
! 
!                      if Nkind (Stmt) = N_Block_Statement then
!                         return Find_Last_Init_In_Block (Stmt);
! 
!                      elsif Is_Init_Call (Stmt) then
!                         return Stmt;
!                      end if;
! 
!                      Prev (Stmt);
!                   end loop;
!                end if;
! 
!                return Empty;
!             end Find_Last_Init_In_Block;
! 
!             ------------------
!             -- Is_Init_Call --
!             ------------------
! 
!             function Is_Init_Call (N : Node_Id) return Boolean is
!                function Is_Init_Proc_Of
!                  (Subp_Id : Entity_Id;
!                   Typ     : Entity_Id) return Boolean;
!                --  Determine whether subprogram Subp_Id is a valid init proc of
!                --  type Typ.
! 
!                ---------------------
!                -- Is_Init_Proc_Of --
!                ---------------------
! 
!                function Is_Init_Proc_Of
!                  (Subp_Id : Entity_Id;
!                   Typ     : Entity_Id) return Boolean
!                is
!                   Deep_Init : Entity_Id := Empty;
!                   Prim_Init : Entity_Id := Empty;
!                   Type_Init : Entity_Id := Empty;
! 
!                begin
!                   --  Obtain all possible initialization routines of the
!                   --  related type and try to match the subprogram entity
!                   --  against one of them.
! 
!                   --  Deep_Initialize
! 
!                   Deep_Init := TSS (Typ, TSS_Deep_Initialize);
! 
!                   --  Primitive Initialize
! 
!                   if Is_Controlled (Typ) then
!                      Prim_Init := Find_Optional_Prim_Op (Typ, Name_Initialize);
! 
!                      if Present (Prim_Init) then
!                         Prim_Init := Ultimate_Alias (Prim_Init);
!                      end if;
!                   end if;
  
!                   --  Type initialization routine
  
!                   if Has_Non_Null_Base_Init_Proc (Typ) then
!                      Type_Init := Base_Init_Proc (Typ);
                    end if;
  
!                   return
!                     (Present (Deep_Init) and then Subp_Id = Deep_Init)
!                       or else
!                     (Present (Prim_Init) and then Subp_Id = Prim_Init)
!                       or else
!                     (Present (Type_Init) and then Subp_Id = Type_Init);
!                end Is_Init_Proc_Of;
! 
!                --  Local variables
! 
!                Call_Id : Entity_Id;
! 
!             --  Start of processing for Is_Init_Call
! 
!             begin
!                if Nkind (N) = N_Procedure_Call_Statement
!                  and then Nkind (Name (N)) = N_Identifier
!                then
!                   Call_Id := Entity (Name (N));
! 
!                   --  Consider both the type of the object declaration and its
!                   --  related initialization type.
! 
!                   return
!                     Is_Init_Proc_Of (Call_Id, Init_Typ)
!                       or else
!                     Is_Init_Proc_Of (Call_Id, Obj_Typ);
!                end if;
! 
!                return False;
!             end Is_Init_Call;
! 
!             -----------------------------
!             -- Next_Suitable_Statement --
!             -----------------------------
! 
!             function Next_Suitable_Statement (Stmt : Node_Id) return Node_Id is
!                Result : Node_Id;
! 
!             begin
!                --  Skip call markers and Program_Error raises installed by the
!                --  ABE mechanism.
! 
!                Result := Next (Stmt);
!                while Present (Result) loop
!                   exit when Nkind (Result) not in
!                               N_Call_Marker | N_Raise_Program_Error;
! 
!                   Next (Result);
!                end loop;
! 
!                return Result;
!             end Next_Suitable_Statement;
! 
!             --  Local variables
! 
!             Call   : Node_Id;
!             Stmt   : Node_Id;
!             Stmt_2 : Node_Id;
! 
!             Deep_Init_Found : Boolean := False;
!             --  A flag set when a call to [Deep_]Initialize has been found
! 
!          --  Start of processing for Find_Last_Init
! 
!          begin
!             Last_Init   := Decl;
!             Body_Insert := Empty;
! 
!             --  Object renamings and objects associated with controlled
!             --  function results do not require initialization.
! 
!             if Has_No_Init then
!                return;
!             end if;
! 
!             Stmt := Next_Suitable_Statement (Decl);
! 
!             --  For an object with suppressed initialization, we check whether
!             --  there is in fact no initialization expression. If there is not,
!             --  then this is an object declaration that has been turned into a
!             --  different object declaration that calls the build-in-place
!             --  function in a 'Reference attribute, as in "F(...)'Reference".
!             --  We search for that later object declaration, so that the
!             --  Inc_Decl will be inserted after the call. Otherwise, if the
!             --  call raises an exception, we will finalize the (uninitialized)
!             --  object, which is wrong.
  
!             if No_Initialization (Decl) then
!                if No (Expression (Last_Init)) then
!                   loop
!                      Next (Last_Init);
!                      exit when No (Last_Init);
!                      exit when Nkind (Last_Init) = N_Object_Declaration
!                        and then Nkind (Expression (Last_Init)) = N_Reference
!                        and then Nkind (Prefix (Expression (Last_Init))) =
!                                   N_Function_Call
!                        and then Is_Expanded_Build_In_Place_Call
!                                   (Prefix (Expression (Last_Init)));
!                   end loop;
                 end if;
  
!                return;
! 
!             --  If the initialization is in the declaration, we're done, so
!             --  early return if we have no more statements or they have been
!             --  rewritten, which means that they were in the source code.
! 
!             elsif No (Stmt) or else Original_Node (Stmt) /= Stmt then
!                return;
! 
!             --  In all other cases the initialization calls follow the related
!             --  object. The general structure of object initialization built by
!             --  routine Default_Initialize_Object is as follows:
! 
!             --   [begin                                --  aborts allowed
!             --       Abort_Defer;]
!             --       Type_Init_Proc (Obj);
!             --      [begin]                            --  exceptions allowed
!             --          Deep_Initialize (Obj);
!             --      [exception                         --  exceptions allowed
!             --          when others =>
!             --             Deep_Finalize (Obj, Self => False);
!             --             raise;
!             --       end;]
!             --   [at end                               --  aborts allowed
!             --       Abort_Undefer;
!             --    end;]
! 
!             --  When aborts are allowed, the initialization calls are housed
!             --  within a block.
! 
!             elsif Nkind (Stmt) = N_Block_Statement then
!                Last_Init   := Find_Last_Init_In_Block (Stmt);
!                Body_Insert := Stmt;
! 
!             --  Otherwise the initialization calls follow the related object
! 
!             else
!                Stmt_2 := Next_Suitable_Statement (Stmt);
! 
!                --  Check for an optional call to Deep_Initialize which may
!                --  appear within a block depending on whether the object has
!                --  controlled components.
! 
!                if Present (Stmt_2) then
!                   if Nkind (Stmt_2) = N_Block_Statement then
!                      Call := Find_Last_Init_In_Block (Stmt_2);
! 
!                      if Present (Call) then
!                         Deep_Init_Found := True;
!                         Last_Init       := Call;
!                         Body_Insert     := Stmt_2;
!                      end if;
! 
!                   elsif Is_Init_Call (Stmt_2) then
!                      Deep_Init_Found := True;
!                      Last_Init       := Stmt_2;
!                      Body_Insert     := Last_Init;
!                   end if;
                 end if;
  
!                --  If the object lacks a call to Deep_Initialize, then it must
!                --  have a call to its related type init proc.
  
!                if not Deep_Init_Found and then Is_Init_Call (Stmt) then
!                   Last_Init   := Stmt;
!                   Body_Insert := Last_Init;
                 end if;
-             end if;
-          end Find_Last_Init;
- 
-          --  Local variables
- 
-          Body_Ins  : Node_Id;
-          Count_Ins : Node_Id;
-          Fin_Call  : Node_Id;
-          Fin_Stmts : List_Id := No_List;
-          Inc_Decl  : Node_Id;
-          Label     : Node_Id;
-          Label_Id  : Entity_Id;
-          Obj_Ref   : Node_Id;
- 
-       --  Start of processing for Process_Object_Declaration
- 
-       begin
-          --  Handle the object type and the reference to the object. Note
-          --  that objects having simple protected components must retain
-          --  their original form for the processing below to work.
- 
-          Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
-          Obj_Typ := Base_Type (Etype (Obj_Id));
  
!          loop
!             if Is_Access_Type (Obj_Typ) then
!                Obj_Typ := Directly_Designated_Type (Obj_Typ);
!                Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
! 
!             elsif Is_Concurrent_Type (Obj_Typ)
!               and then Present (Corresponding_Record_Type (Obj_Typ))
!               and then not Is_Protected
!             then
!                Obj_Typ := Corresponding_Record_Type (Obj_Typ);
!                Obj_Ref := Unchecked_Convert_To (Obj_Typ, Obj_Ref);
! 
!             elsif Is_Private_Type (Obj_Typ)
!               and then Present (Full_View (Obj_Typ))
!             then
!                Obj_Typ := Full_View (Obj_Typ);
!                Obj_Ref := Unchecked_Convert_To (Obj_Typ, Obj_Ref);
! 
!             elsif Obj_Typ /= Base_Type (Obj_Typ) then
!                Obj_Typ := Base_Type (Obj_Typ);
!                Obj_Ref := Unchecked_Convert_To (Obj_Typ, Obj_Ref);
  
!             else
!                exit;
!             end if;
!          end loop;
  
!          Set_Etype (Obj_Ref, Obj_Typ);
  
!          --  Handle the initialization type of the object declaration
  
!          Init_Typ := Obj_Typ;
!          loop
!             if Is_Private_Type (Init_Typ)
!               and then Present (Full_View (Init_Typ))
!             then
!                Init_Typ := Full_View (Init_Typ);
  
!             elsif Is_Untagged_Derivation (Init_Typ) then
!                Init_Typ := Root_Type (Init_Typ);
  
!             else
!                exit;
!             end if;
!          end loop;
  
!          --  Set a new value for the state counter and insert the statement
!          --  after the object declaration. Generate:
  
!          --    Counter := <value>;
  
!          Inc_Decl :=
!            Make_Assignment_Statement (Loc,
!              Name       => New_Occurrence_Of (Counter_Id, Loc),
!              Expression => Make_Integer_Literal (Loc, Counter_Val));
  
!          --  Insert the counter after all initialization has been done. The
!          --  place of insertion depends on the context.
  
!          if Ekind (Obj_Id) in E_Constant | E_Variable then
  
!             --  The object is initialized by a build-in-place function call.
!             --  The counter insertion point is after the function call.
  
!             if Present (BIP_Initialization_Call (Obj_Id)) then
!                Count_Ins := BIP_Initialization_Call (Obj_Id);
!                Body_Ins  := Empty;
  
!             --  The object is initialized by an aggregate. Insert the counter
!             --  after the last aggregate assignment.
  
!             elsif Present (Last_Aggregate_Assignment (Obj_Id)) then
!                Count_Ins := Last_Aggregate_Assignment (Obj_Id);
!                Body_Ins  := Empty;
  
!             --  In all other cases the counter is inserted after the last call
!             --  to either [Deep_]Initialize or the type-specific init proc.
  
!             else
!                Find_Last_Init (Count_Ins, Body_Ins);
!             end if;
  
!          --  In all other cases the counter is inserted after the last call to
!          --  either [Deep_]Initialize or the type-specific init proc.
  
           else
!             Find_Last_Init (Count_Ins, Body_Ins);
!          end if;
! 
!          --  If the Initialize function is null or trivial, the call will have
!          --  been replaced with a null statement, in which case place counter
!          --  declaration after object declaration itself.
! 
!          if No (Count_Ins) then
!             Count_Ins := Decl;
!          end if;
! 
!          Insert_After (Count_Ins, Inc_Decl);
!          Analyze (Inc_Decl);
! 
!          --  If the current declaration is the last in the list, the finalizer
!          --  body needs to be inserted after the set counter statement for the
!          --  current object declaration. This is complicated by the fact that
!          --  the set counter statement may appear in abort deferred block. In
!          --  that case, the proper insertion place is after the block.
! 
!          if No (Finalizer_Insert_Nod) then
! 
!             --  Insertion after an abort deferred block
  
!             if Present (Body_Ins) then
!                Finalizer_Insert_Nod := Body_Ins;
!             else
!                Finalizer_Insert_Nod := Inc_Decl;
              end if;
           end if;
  
!          --  Create the associated label with this object, generate:
! 
!          --    L<counter> : label;
! 
!          Label_Id :=
!            Make_Identifier (Loc, New_External_Name ('L', Counter_Val));
!          Set_Entity
!            (Label_Id, Make_Defining_Identifier (Loc, Chars (Label_Id)));
!          Label := Make_Label (Loc, Label_Id);
! 
!          Prepend_To (Finalizer_Decls,
!            Make_Implicit_Label_Declaration (Loc,
!              Defining_Identifier => Entity (Label_Id),
!              Label_Construct     => Label));
! 
!          --  Create the associated jump with this object, generate:
! 
!          --    when <counter> =>
!          --       goto L<counter>;
! 
!          Prepend_To (Jump_Alts,
!            Make_Case_Statement_Alternative (Loc,
!              Discrete_Choices => New_List (
!                Make_Integer_Literal (Loc, Counter_Val)),
!              Statements       => New_List (
!                Make_Goto_Statement (Loc,
!                  Name => New_Occurrence_Of (Entity (Label_Id), Loc)))));
! 
!          --  Insert the jump destination, generate:
! 
!          --     <<L<counter>>>
! 
!          Append_To (Finalizer_Stmts, Label);
! 
!          --  Disable warnings on Obj_Id. This works around an issue where GCC
!          --  is not able to detect that Obj_Id is protected by a counter and
!          --  emits spurious warnings.
! 
!          if not Comes_From_Source (Obj_Id) then
!             Set_Warnings_Off (Obj_Id);
!          end if;
! 
!          --  Processing for simple protected objects. Such objects require
!          --  manual finalization of their lock managers.
! 
!          if Is_Protected then
!             if Is_Simple_Protected_Type (Obj_Typ) then
!                Fin_Call := Cleanup_Protected_Object (Decl, Obj_Ref);
  
!                if Present (Fin_Call) then
!                   Fin_Stmts := New_List (Fin_Call);
!                end if;
  
!             elsif Is_Array_Type (Obj_Typ) then
!                Fin_Stmts := Cleanup_Array (Decl, Obj_Ref, Obj_Typ);
  
              else
!                Fin_Stmts := Cleanup_Record (Decl, Obj_Ref, Obj_Typ);
!             end if;
! 
!             --  Generate:
!             --    begin
!             --       System.Tasking.Protected_Objects.Finalize_Protection
!             --         (Obj._object);
! 
!             --    exception
!             --       when others =>
!             --          null;
!             --    end;
! 
!             if Present (Fin_Stmts) and then Exceptions_OK then
!                Fin_Stmts := New_List (
!                  Make_Block_Statement (Loc,
!                    Handled_Statement_Sequence =>
!                      Make_Handled_Sequence_Of_Statements (Loc,
!                        Statements         => Fin_Stmts,
! 
!                        Exception_Handlers => New_List (
!                          Make_Exception_Handler (Loc,
!                            Exception_Choices => New_List (
!                              Make_Others_Choice (Loc)),
  
!                            Statements     => New_List (
!                              Make_Null_Statement (Loc)))))));
              end if;
  
!          --  Processing for regular controlled objects
! 
!          else
!             --  Generate:
!             --    begin
!             --       [Deep_]Finalize (Obj);
! 
!             --    exception
!             --       when Id : others =>
!             --          if not Raised then
!             --             Raised := True;
!             --             Save_Occurrence (E, Id);
!             --          end if;
!             --    end;
! 
!             Fin_Call :=
!               Make_Final_Call (
!                 Obj_Ref => Obj_Ref,
!                 Typ     => Obj_Typ);
! 
!             --  Guard against a missing [Deep_]Finalize when the object type
!             --  was not properly frozen.
  
!             if No (Fin_Call) then
!                Fin_Call := Make_Null_Statement (Loc);
!             end if;
  
              --  For CodePeer, the exception handlers normally generated here
              --  generate complex flowgraphs which result in capacity problems.
--- 2713,3069 ----
  
        procedure Process_Object_Declaration
          (Decl         : Node_Id;
           Is_Protected : Boolean := False)
        is
           Obj_Id : constant Entity_Id := Defining_Identifier (Decl);
+          Loc    : constant Source_Ptr := Sloc (Decl);
  
!          Fin_Call           : Node_Id;
!          Fin_Id             : Entity_Id;
!          Master_Node_Attach : Node_Id;
!          Master_Node_Decl   : Node_Id;
!          Master_Node_Id     : Entity_Id;
!          Master_Node_Ins    : Node_Id;
!          Master_Node_Loc    : Source_Ptr;
!          Obj_Ref            : Node_Id;
!          Obj_Typ            : Entity_Id;
  
!       --  Start of processing for Process_Object_Declaration
  
!       begin
!          --  Handle the object type and the reference to the object. Note
!          --  that objects having simple protected components or of a CW type
!          --  must retain their original type for the processing below to work.
  
!          Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
!          Obj_Typ := Etype (Obj_Id);
!          if not Is_Protected and then not Is_Class_Wide_Type (Obj_Typ) then
!             Obj_Typ := Base_Type (Obj_Typ);
!          end if;
  
!          if Is_Access_Type (Obj_Typ) then
!             Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
!             Obj_Typ := Available_View (Designated_Type (Obj_Typ));
!          end if;
  
!          --  If the object is a Master_Node, then nothing to do, unless there
!          --  is no or a single controlled object with strict semantics, in
!          --  which case we move its declaration, call marker (if any) and
!          --  initialization call, and also mark it to avoid double processing.
  
!          if Is_RTE (Obj_Typ, RE_Master_Node) then
!             Master_Node_Id := Obj_Id;
  
!             if not Has_Strict_Ctrl_Objs or else Count = 1 then
!                if Nkind (Next (Decl)) = N_Call_Marker then
!                   Prepend_To (Decls, Remove_Next (Next (Decl)));
!                end if;
!                Prepend_To (Decls, Remove_Next (Decl));
!                Remove (Decl);
!                Prepend_To (Decls, Decl);
!                Set_Is_Ignored_For_Finalization (Obj_Id);
!             end if;
  
!          --  Create the declaration of the Master_Node for the object and
!          --  insert it before the declaration of the object itself, unless
!          --  there is no or a single controlled object with strict semantics,
!          --  because it will effectively play the role of a degenerated master
!          --  and therefore needs to be inserted at the same place the master
!          --  would have been.
  
!          else pragma Assert (No (Finalization_Master_Node (Obj_Id)));
!             --  In the latter case, use the Sloc the master would have had
  
!             if not Has_Strict_Ctrl_Objs or else Count = 1 then
!                Master_Node_Loc := Sloc (N);
!             else
!                Master_Node_Loc := Loc;
!             end if;
  
!             Master_Node_Id :=
!               Make_Defining_Identifier (Master_Node_Loc,
!                 Chars => New_External_Name (Chars (Obj_Id), Suffix => "MN"));
!             Master_Node_Decl :=
!               Make_Master_Node_Declaration (Master_Node_Loc,
!                 Master_Node_Id, Obj_Id);
  
!             Push_Scope (Scope (Obj_Id));
!             if not Has_Strict_Ctrl_Objs or else Count = 1 then
!                Prepend_To (Decls, Master_Node_Decl);
!             else
!                Insert_Before (Decl, Master_Node_Decl);
              end if;
+             Analyze (Master_Node_Decl);
+             Pop_Scope;
  
!             --  Mark the Master_Node to avoid double processing
  
!             Set_Is_Ignored_For_Finalization (Master_Node_Id);
!          end if;
  
!          --  Attach the Master_Node after all initialization has been done. The
!          --  place of insertion depends on the context.
  
!          if Ekind (Obj_Id) in E_Constant | E_Variable then
  
!             --  The object has delayed freezing. The Master_Node insertion
!             --  point is after the freeze node.
  
!             if Has_Delayed_Freeze (Obj_Id) then
!                Master_Node_Ins := Freeze_Node (Obj_Id);
  
!             --  The object is initialized by an aggregate. The Master_Node
!             --  insertion point is after the last aggregate assignment.
  
!             elsif Present (Last_Aggregate_Assignment (Obj_Id)) then
!                Master_Node_Ins := Last_Aggregate_Assignment (Obj_Id);
  
!             --  The object is initialized by a build-in-place function call.
!             --  The Master_Node insertion point is after the function call.
  
!             elsif Present (BIP_Initialization_Call (Obj_Id)) then
!                Master_Node_Ins := BIP_Initialization_Call (Obj_Id);
  
!             --  In other cases the Master_Node is inserted after the last call
!             --  to either [Deep_]Initialize or the type-specific init proc.
  
!             else
!                Master_Node_Ins := Find_Last_Init (Decl);
              end if;
  
!          --  In all other cases the Master_Node is inserted after the last call
!          --  to either [Deep_]Initialize or the type-specific init proc.
  
!          else
!             Master_Node_Ins := Find_Last_Init (Decl);
!          end if;
  
!          --  If the Initialize function is null or trivial, the call will have
!          --  been replaced with a null statement and we place the attachment
!          --  of the Master_Node after the declaration of the object itself.
  
!          if No (Master_Node_Ins) then
!             Master_Node_Ins := Decl;
!          end if;
  
!          --  Processing for simple protected objects. Such objects require
!          --  manual finalization of their lock managers. Generate:
  
!          --    procedure obj_typ_nnFD (v : system__address) is
!          --       type Ptr_Typ is access all Obj_Typ;
!          --       Rnn : Obj_Typ renames Ptr_Typ!(v).all;
!          --    begin
!          --       $system__tasking__protected_objects__finalize_protection
!          --          (Obj_TypV!(Rnn)._object);
!          --    exception
!          --       when others =>
!          --          null;
!          --    end obj_typ_nnFD;
  
!          if Is_Protected
!            or else (Has_Simple_Protected_Object (Obj_Typ)
!                      and then No (Finalize_Address (Obj_Typ)))
!          then
!             declare
!                Param   : constant Entity_Id :=
!                            Make_Defining_Identifier (Loc, Name_V);
!                Ptr_Typ : constant Entity_Id := Make_Temporary (Loc, 'P');
!                Ren_Id  : constant Entity_Id := Make_Temporary (Loc, 'R');
!                Ren_Ref : constant Node_Id   := New_Occurrence_Of (Ren_Id, Loc);
  
!                Fin_Body  : Node_Id;
!                Fin_Call  : Node_Id;
!                Fin_Stmts : List_Id := No_List;
!                HSS       : Node_Id;
  
              begin
!                Set_Etype (Ren_Ref, Obj_Typ);
  
!                if Is_Simple_Protected_Type (Obj_Typ) then
!                   Fin_Call := Cleanup_Protected_Object (Decl, Ren_Ref);
  
!                   if Present (Fin_Call) then
!                      Fin_Stmts := New_List (Fin_Call);
                    end if;
  
!                elsif Is_Array_Type (Obj_Typ) then
!                   Fin_Stmts := Cleanup_Array (Decl, Ren_Ref, Obj_Typ);
  
!                else
!                   Fin_Stmts := Cleanup_Record (Decl, Ren_Ref, Obj_Typ);
                 end if;
  
!                if No (Fin_Stmts) then
!                   return;
                 end if;
  
!                HSS :=
!                  Make_Handled_Sequence_Of_Statements (Loc,
!                    Statements => Fin_Stmts);
  
!                if Exceptions_OK then
!                   Set_Exception_Handlers (HSS, New_List (
!                     Make_Exception_Handler (Loc,
!                       Exception_Choices => New_List (
!                         Make_Others_Choice (Loc)),
!                       Statements        => New_List (
!                         Make_Null_Statement (Loc)))));
                 end if;
  
!                Fin_Id :=
!                  Make_Defining_Identifier (Loc,
!                    Make_TSS_Name_Local (Obj_Typ, TSS_Finalize_Address));
  
!                Fin_Body :=
!                  Make_Subprogram_Body (Loc,
!                    Specification =>
!                      Make_Procedure_Specification (Loc,
!                        Defining_Unit_Name => Fin_Id,
  
!                        Parameter_Specifications => New_List (
!                          Make_Parameter_Specification (Loc,
!                            Defining_Identifier => Param,
!                            Parameter_Type =>
!                              New_Occurrence_Of (RTE (RE_Address), Loc)))),
  
!                    Declarations => New_List (
!                      Make_Full_Type_Declaration (Loc,
!                        Defining_Identifier => Ptr_Typ,
!                        Type_Definition     =>
!                          Make_Access_To_Object_Definition (Loc,
!                            All_Present        => True,
!                            Subtype_Indication =>
!                              New_Occurrence_Of (Obj_Typ, Loc))),
  
!                      Make_Object_Renaming_Declaration (Loc,
!                        Defining_Identifier => Ren_Id,
!                        Subtype_Mark        =>
!                          New_Occurrence_Of (Obj_Typ, Loc),
!                          Name              =>
!                          Make_Explicit_Dereference (Loc,
!                            Prefix =>
!                              Unchecked_Convert_To
!                                (Ptr_Typ, New_Occurrence_Of (Param, Loc))))),
  
!                    Handled_Statement_Sequence => HSS);
  
!                Push_Scope (Scope (Obj_Id));
!                Insert_After_And_Analyze
!                  (Master_Node_Ins, Fin_Body, Suppress => All_Checks);
!                Pop_Scope;
  
!                Master_Node_Ins := Fin_Body;
!             end;
  
!          --  If the object's subtype is an array that has a constrained first
!          --  subtype and is not this first subtype, we need to build a special
!          --  Finalize_Address primitive for the object's subtype because the
!          --  Finalize_Address primitive of the base type has been tailored to
!          --  the first subtype (see Make_Finalize_Address_Stmts). Generate:
  
!          --    procedure obj_typ_nnFD (v : system__address) is
!          --       type Ptr_Typ is access all Obj_Typ;
!          --    begin
!          --       obj_typBDF (Ptr_Typ!(v).all, f => true);
!          --    end obj_typ_nnFD;
  
!          elsif Is_Array_Type (Etype (Obj_Id))
!            and then Is_Constrained (First_Subtype (Etype (Obj_Id)))
!            and then Etype (Obj_Id) /= First_Subtype (Etype (Obj_Id))
!          then
!             declare
!                Ptr_Typ   : constant Node_Id   := Make_Temporary (Loc, 'P');
!                Param     : constant Entity_Id :=
!                              Make_Defining_Identifier (Loc, Name_V);
  
!                Fin_Body  : Node_Id;
  
!             begin
!                Obj_Typ := Etype (Obj_Id);
  
!                Fin_Id :=
!                  Make_Defining_Identifier (Loc,
!                    Make_TSS_Name_Local
!                      (Obj_Typ, TSS_Finalize_Address));
  
!                Fin_Body :=
!                  Make_Subprogram_Body (Loc,
!                    Specification =>
!                      Make_Procedure_Specification (Loc,
!                        Defining_Unit_Name       => Fin_Id,
!                        Parameter_Specifications => New_List (
!                          Make_Parameter_Specification (Loc,
!                            Defining_Identifier => Param,
!                            Parameter_Type      =>
!                              New_Occurrence_Of (RTE (RE_Address), Loc)))),
  
!                    Declarations => New_List (
!                      Make_Full_Type_Declaration (Loc,
!                        Defining_Identifier => Ptr_Typ,
!                        Type_Definition     =>
!                          Make_Access_To_Object_Definition (Loc,
!                            All_Present        => True,
!                            Subtype_Indication =>
!                              New_Occurrence_Of (Obj_Typ, Loc)))),
  
!                    Handled_Statement_Sequence =>
!                      Make_Handled_Sequence_Of_Statements (Loc,
!                        Statements => New_List (
!                          Make_Final_Call (
!                            Obj_Ref =>
!                              Make_Explicit_Dereference (Loc,
!                                Prefix =>
!                                  Unchecked_Convert_To (Ptr_Typ,
!                                    Make_Identifier (Loc, Name_V))),
!                            Typ     => Obj_Typ))));
  
!                Push_Scope (Scope (Obj_Id));
!                Insert_After_And_Analyze
!                  (Master_Node_Ins, Fin_Body, Suppress => All_Checks);
!                Pop_Scope;
  
!                Master_Node_Ins := Fin_Body;
!             end;
  
           else
!             Fin_Id := Finalize_Address (Obj_Typ);
  
!             if No (Fin_Id) and then Ekind (Obj_Typ) = E_Class_Wide_Subtype then
!                Fin_Id := TSS (Obj_Typ, TSS_Finalize_Address);
              end if;
           end if;
  
!          --  Now build the attachment call that will initialize the object's
!          --  Master_Node using the object's address and type's finalization
!          --  procedure and then attach the Master_Node to the master, unless
!          --  there is no or a single controlled object with strict semantics.
  
!          if not Has_Strict_Ctrl_Objs or else Count = 1 then
!             --  Finalize_Address is not generated in CodePeer mode because the
!             --  body contains address arithmetic. So we don't want to generate
!             --  the attach in this case. Ditto if the object is a Master_Node.
  
!             if CodePeer_Mode or else Obj_Id = Master_Node_Id then
!                Master_Node_Attach := Make_Null_Statement (Loc);
  
              else
!                Master_Node_Attach :=
!                  Make_Procedure_Call_Statement (Loc,
!                    Name                   =>
!                      New_Occurrence_Of (RTE (RE_Attach_Object_To_Node), Loc),
!                    Parameter_Associations => New_List (
!                      Make_Address_For_Finalize (Loc, Obj_Ref, Obj_Typ),
!                      Make_Attribute_Reference (Loc,
!                        Prefix         => New_Occurrence_Of (Fin_Id, Loc),
!                        Attribute_Name => Name_Unrestricted_Access),
!                      New_Occurrence_Of (Master_Node_Id, Loc)));
  
!                Set_Finalize_Address_For_Node (Master_Node_Id, Fin_Id);
              end if;
  
!             --  We also generate the direct finalization call here
  
!             Fin_Call := Make_Finalize_Call_For_Node (Loc, Master_Node_Id);
  
              --  For CodePeer, the exception handlers normally generated here
              --  generate complex flowgraphs which result in capacity problems.
*************** package body Exp_Ch7 is
*** 3233,3240 ****
              --      to be live. That is what we are interested in, not what
              --      happens after the exception is raised.
  
!             if Exceptions_OK and not CodePeer_Mode then
!                Fin_Stmts := New_List (
                   Make_Block_Statement (Loc,
                     Handled_Statement_Sequence =>
                       Make_Handled_Sequence_Of_Statements (Loc,
--- 3076,3086 ----
              --      to be live. That is what we are interested in, not what
              --      happens after the exception is raised.
  
!             if Has_Strict_Ctrl_Objs
!               and then Exceptions_OK
!               and then not CodePeer_Mode
!             then
!                Fin_Call :=
                   Make_Block_Statement (Loc,
                     Handled_Statement_Sequence =>
                       Make_Handled_Sequence_Of_Statements (Loc,
*************** package body Exp_Ch7 is
*** 3242,3360 ****
  
                      Exception_Handlers => New_List (
                        Build_Exception_Handler
!                         (Finalizer_Data, For_Package)))));
! 
!             --  When exception handlers are prohibited, the finalization call
!             --  appears unprotected. Any exception raised during finalization
!             --  will bypass the circuitry which ensures the cleanup of all
!             --  remaining objects.
! 
!             else
!                Fin_Stmts := New_List (Fin_Call);
!             end if;
! 
!             --  If we are dealing with a return object of a build-in-place
!             --  function, generate the following cleanup statements:
! 
!             --    if BIPallocfrom > Secondary_Stack'Pos
!             --      and then BIPfinalizationmaster /= null
!             --    then
!             --       declare
!             --          type Ptr_Typ is access Obj_Typ;
!             --          for Ptr_Typ'Storage_Pool use
!             --                Base_Pool (BIPfinalizationmaster.all).all;
!             --       begin
!             --          Free (Ptr_Typ (Temp));
!             --       end;
!             --    end if;
! 
!             --  The generated code effectively detaches the temporary from the
!             --  caller finalization master and deallocates the object.
! 
!             if Is_Return_Object (Obj_Id) then
!                declare
!                   Func_Id : constant Entity_Id :=
!                               Return_Applies_To (Scope (Obj_Id));
! 
!                begin
!                   if Is_Build_In_Place_Function (Func_Id)
!                     and then Needs_BIP_Finalization_Master (Func_Id)
!                   then
!                      Append_To (Fin_Stmts, Build_BIP_Cleanup_Stmts (Func_Id));
!                   end if;
!                end;
              end if;
  
!             if Ekind (Obj_Id) in E_Constant | E_Variable
!               and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!             then
!                --  Temporaries created for the purpose of "exporting" a
!                --  transient object out of an Expression_With_Actions (EWA)
!                --  need guards. The following illustrates the usage of such
!                --  temporaries.
! 
!                --    Access_Typ : access [all] Obj_Typ;
!                --    Temp       : Access_Typ := null;
!                --    <Counter>  := ...;
! 
!                --    do
!                --       Ctrl_Trans : [access [all]] Obj_Typ := ...;
!                --       Temp := Access_Typ (Ctrl_Trans);  --  when a pointer
!                --         <or>
!                --       Temp := Ctrl_Trans'Unchecked_Access;
!                --    in ... end;
! 
!                --  The finalization machinery does not process EWA nodes as
!                --  this may lead to premature finalization of expressions. Note
!                --  that Temp is marked as being properly initialized regardless
!                --  of whether the initialization of Ctrl_Trans succeeded. Since
!                --  a failed initialization may leave Temp with a value of null,
!                --  add a guard to handle this case:
! 
!                --    if Obj /= null then
!                --       <object finalization statements>
!                --    end if;
  
!                if Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
!                                                       N_Object_Declaration
!                then
!                   Fin_Stmts := New_List (
!                     Make_If_Statement (Loc,
!                       Condition       =>
!                         Make_Op_Ne (Loc,
!                           Left_Opnd  => New_Occurrence_Of (Obj_Id, Loc),
!                           Right_Opnd => Make_Null (Loc)),
!                       Then_Statements => Fin_Stmts));
  
!                --  Return objects use a flag to aid in processing their
!                --  potential finalization when the enclosing function fails
!                --  to return properly. Generate:
  
!                --    if not Flag then
!                --       <object finalization statements>
!                --    end if;
  
!                else
!                   Fin_Stmts := New_List (
!                     Make_If_Statement (Loc,
!                       Condition     =>
!                         Make_Op_Not (Loc,
!                           Right_Opnd =>
!                             New_Occurrence_Of
!                               (Status_Flag_Or_Transient_Decl (Obj_Id), Loc)),
  
!                     Then_Statements => Fin_Stmts));
!                end if;
              end if;
           end if;
  
!          Append_List_To (Finalizer_Stmts, Fin_Stmts);
! 
!          --  Since the declarations are examined in reverse, the state counter
!          --  must be decremented in order to keep with the true position of
!          --  objects.
! 
!          Counter_Val := Counter_Val - 1;
        end Process_Object_Declaration;
  
        -------------------------------------
--- 3088,3139 ----
  
                      Exception_Handlers => New_List (
                        Build_Exception_Handler
!                         (Finalizer_Data, For_Package))));
              end if;
  
!             Append_To (Finalizer_Stmts, Fin_Call);
  
!          else
!             --  If the object is a Master_Node, we just need to chain it
  
!             if Obj_Id = Master_Node_Id then
!                Master_Node_Attach :=
!                  Make_Procedure_Call_Statement (Loc,
!                    Name                   =>
!                      New_Occurrence_Of (RTE (RE_Chain_Node_To_Master), Loc),
!                      Parameter_Associations => New_List (
!                      Make_Attribute_Reference (Loc,
!                        Prefix         => New_Occurrence_Of (Obj_Id, Loc),
!                        Attribute_Name => Name_Unrestricted_Access),
!                      New_Occurrence_Of (Finalization_Master, Loc)));
  
!             --  Finalize_Address is not generated in CodePeer mode because the
!             --  body contains address arithmetic. So we don't want to generate
!             --  the attach in this case.
  
!             elsif CodePeer_Mode then
!                Master_Node_Attach := Make_Null_Statement (Loc);
  
!             else
!                Master_Node_Attach :=
!                  Make_Procedure_Call_Statement (Loc,
!                    Name                   =>
!                      New_Occurrence_Of (RTE (RE_Attach_Object_To_Master), Loc),
!                    Parameter_Associations => New_List (
!                      Make_Address_For_Finalize (Loc, Obj_Ref, Obj_Typ),
!                      Make_Attribute_Reference (Loc,
!                        Prefix         => New_Occurrence_Of (Fin_Id, Loc),
!                        Attribute_Name => Name_Unrestricted_Access),
!                      Make_Attribute_Reference (Loc,
!                        Prefix         =>
!                          New_Occurrence_Of (Master_Node_Id, Loc),
!                        Attribute_Name => Name_Unrestricted_Access),
!                      New_Occurrence_Of (Finalization_Master, Loc)));
              end if;
           end if;
  
!          Insert_After_And_Analyze
!            (Master_Node_Ins, Master_Node_Attach, Suppress => All_Checks);
        end Process_Object_Declaration;
  
        -------------------------------------
*************** package body Exp_Ch7 is
*** 3453,3466 ****
           --  correct number of controlled object by the time the private
           --  declarations are processed.
  
!          Process_Declarations (Decls, Preprocess => True, Top_Level => True);
  
           --  From all the possible contexts, only package specifications may
           --  have private declarations.
  
           if For_Package_Spec then
!             Process_Declarations
!               (Priv_Decls, Preprocess => True, Top_Level => True);
           end if;
  
           --  The current context may lack controlled objects, but require some
--- 3232,3244 ----
           --  correct number of controlled object by the time the private
           --  declarations are processed.
  
!          Process_Declarations (Decls, Preprocess => True);
  
           --  From all the possible contexts, only package specifications may
           --  have private declarations.
  
           if For_Package_Spec then
!             Process_Declarations (Priv_Decls, Preprocess => True);
           end if;
  
           --  The current context may lack controlled objects, but require some
*************** package body Exp_Ch7 is
*** 3468,3481 ****
           --  cases, the finalizer must be created and carry the additional
           --  statements.
  
!          if Acts_As_Clean or Has_Ctrl_Objs or Has_Tagged_Types then
              Build_Components;
           end if;
  
           --  The preprocessing has determined that the context has controlled
           --  objects or library-level tagged types.
  
!          if Has_Ctrl_Objs or Has_Tagged_Types then
  
              --  Private declarations are processed first in order to preserve
              --  possible dependencies between public and private objects.
--- 3246,3259 ----
           --  cases, the finalizer must be created and carry the additional
           --  statements.
  
!          if Acts_As_Clean or else Has_Ctrl_Objs or else Has_Tagged_Types then
              Build_Components;
           end if;
  
           --  The preprocessing has determined that the context has controlled
           --  objects or library-level tagged types.
  
!          if Has_Ctrl_Objs or else Has_Tagged_Types then
  
              --  Private declarations are processed first in order to preserve
              --  possible dependencies between public and private objects.
*************** package body Exp_Ch7 is
*** 3492,3499 ****
        else
           --  Preprocess both declarations and statements
  
!          Process_Declarations (Decls, Preprocess => True, Top_Level => True);
!          Process_Declarations (Stmts, Preprocess => True, Top_Level => True);
  
           --  At this point it is known that N has controlled objects. Ensure
           --  that N has a declarative list since the finalizer spec will be
--- 3270,3277 ----
        else
           --  Preprocess both declarations and statements
  
!          Process_Declarations (Decls, Preprocess => True);
!          Process_Declarations (Stmts, Preprocess => True);
  
           --  At this point it is known that N has controlled objects. Ensure
           --  that N has a declarative list since the finalizer spec will be
*************** package body Exp_Ch7 is
*** 3501,3508 ****
  
           if Has_Ctrl_Objs and then No (Decls) then
              Set_Declarations (N, New_List);
!             Decls      := Declarations (N);
!             Spec_Decls := Decls;
           end if;
  
           --  The current context may lack controlled objects, but require some
--- 3279,3285 ----
  
           if Has_Ctrl_Objs and then No (Decls) then
              Set_Declarations (N, New_List);
!             Decls := Declarations (N);
           end if;
  
           --  The current context may lack controlled objects, but require some
*************** package body Exp_Ch7 is
*** 3510,3520 ****
           --  cases, the finalizer must be created and carry the additional
           --  statements.
  
!          if Acts_As_Clean or Has_Ctrl_Objs or Has_Tagged_Types then
              Build_Components;
           end if;
  
!          if Has_Ctrl_Objs or Has_Tagged_Types then
              Process_Declarations (Stmts);
              Process_Declarations (Decls);
           end if;
--- 3287,3297 ----
           --  cases, the finalizer must be created and carry the additional
           --  statements.
  
!          if Acts_As_Clean or else Has_Ctrl_Objs or else Has_Tagged_Types then
              Build_Components;
           end if;
  
!          if Has_Ctrl_Objs or else Has_Tagged_Types then
              Process_Declarations (Stmts);
              Process_Declarations (Decls);
           end if;
*************** package body Exp_Ch7 is
*** 3522,3528 ****
  
        --  Step 3: Finalizer creation
  
!       if Acts_As_Clean or Has_Ctrl_Objs or Has_Tagged_Types then
           Create_Finalizer;
        end if;
  
--- 3299,3305 ----
  
        --  Step 3: Finalizer creation
  
!       if Acts_As_Clean or else Has_Ctrl_Objs or else Has_Tagged_Types then
           Create_Finalizer;
        end if;
  
*************** package body Exp_Ch7 is
*** 4086,4094 ****
        --  unnesting actions, which depend on proper setting of the Scope links
        --  to determine the nesting level of each subprogram.
  
!       -----------------------
!       --  Find_Local_Scope --
!       -----------------------
  
        procedure Reset_Scopes_To_Block_Elab_Proc (L : List_Id) is
           Id   : Entity_Id;
--- 3863,3872 ----
        --  unnesting actions, which depend on proper setting of the Scope links
        --  to determine the nesting level of each subprogram.
  
!       --------------------------------------
!       --  Reset_Scopes_To_Block_Elab_Proc --
!       --------------------------------------
!       Maybe_Reset_Scopes_For_Decl : constant Elist_Id := New_Elmt_List;
  
        procedure Reset_Scopes_To_Block_Elab_Proc (L : List_Id) is
           Id   : Entity_Id;
*************** package body Exp_Ch7 is
*** 4147,4153 ****
                       Next (Node);
                    end loop;
  
!                --  Reset the Scope of a subprogram occurring at the top level
  
                 when N_Subprogram_Body =>
                    Id := Defining_Entity (Stat);
--- 3925,3932 ----
                       Next (Node);
                    end loop;
  
!                --  Reset the Scope of a subprogram and object declaration
!                --  occurring at the top level
  
                 when N_Subprogram_Body =>
                    Id := Defining_Entity (Stat);
*************** package body Exp_Ch7 is
*** 4155,4166 ****
--- 3934,3967 ----
                    Set_Block_Elab_Proc;
                    Set_Scope (Id, Block_Elab_Proc);
  
+                when N_Object_Declaration
+                   | N_Object_Renaming_Declaration
+                =>
+                   Id := Defining_Entity (Stat);
+                   if No (Block_Elab_Proc) then
+                      Append_Elmt (Id, Maybe_Reset_Scopes_For_Decl);
+                   else
+                      Set_Scope (Id, Block_Elab_Proc);
+                   end if;
+ 
                 when others =>
                    null;
              end case;
  
              Next (Stat);
           end loop;
+ 
+          --  If we are creating an Elab procedure, move all the gathered
+          --  declarations in its scope.
+ 
+          if Present (Block_Elab_Proc) then
+             while not Is_Empty_Elmt_List (Maybe_Reset_Scopes_For_Decl) loop
+                Set_Scope
+                  (Elists.Node
+                    (Last_Elmt (Maybe_Reset_Scopes_For_Decl)), Block_Elab_Proc);
+                Remove_Last_Elmt (Maybe_Reset_Scopes_For_Decl);
+             end loop;
+          end if;
        end Reset_Scopes_To_Block_Elab_Proc;
  
        --  Local variables
*************** package body Exp_Ch7 is
*** 4267,4283 ****
                    end if;
                 end;
  
!             elsif Nkind (Decl_Or_Stmt) = N_Package_Declaration
!               and then not Modify_Tree_For_C
!             then
                 Check_Unnesting_In_Decls_Or_Stmts
                   (Visible_Declarations (Specification (Decl_Or_Stmt)));
                 Check_Unnesting_In_Decls_Or_Stmts
                   (Private_Declarations (Specification (Decl_Or_Stmt)));
  
!             elsif Nkind (Decl_Or_Stmt) = N_Package_Body
!               and then not Modify_Tree_For_C
!             then
                 Check_Unnesting_In_Decls_Or_Stmts (Declarations (Decl_Or_Stmt));
                 if Present (Statements
                      (Handled_Statement_Sequence (Decl_Or_Stmt)))
--- 4068,4080 ----
                    end if;
                 end;
  
!             elsif Nkind (Decl_Or_Stmt) = N_Package_Declaration then
                 Check_Unnesting_In_Decls_Or_Stmts
                   (Visible_Declarations (Specification (Decl_Or_Stmt)));
                 Check_Unnesting_In_Decls_Or_Stmts
                   (Private_Declarations (Specification (Decl_Or_Stmt)));
  
!             elsif Nkind (Decl_Or_Stmt) = N_Package_Body then
                 Check_Unnesting_In_Decls_Or_Stmts (Declarations (Decl_Or_Stmt));
                 if Present (Statements
                      (Handled_Statement_Sequence (Decl_Or_Stmt)))
*************** package body Exp_Ch7 is
*** 4341,4347 ****
           --  is from a private type that is not visibly controlled.
  
           Parent_Type := Etype (Typ);
!          Op := Find_Optional_Prim_Op (Parent_Type, Name_Of (Prim));
  
           if Present (Op) then
              E := Op;
--- 4138,4144 ----
           --  is from a private type that is not visibly controlled.
  
           Parent_Type := Etype (Typ);
!          Op := Find_Controlled_Prim_Op (Parent_Type, Name_Of (Prim));
  
           if Present (Op) then
              E := Op;
*************** package body Exp_Ch7 is
*** 4415,4421 ****
     -- Convert_View --
     ------------------
  
!    function Convert_View (Proc : Entity_Id; Arg  : Node_Id) return Node_Id is
        Ftyp : constant Entity_Id := Etype (First_Formal (Proc));
  
        Atyp : Entity_Id;
--- 4212,4222 ----
     -- Convert_View --
     ------------------
  
!    function Convert_View
!      (Proc : Entity_Id;
!       Arg  : Node_Id;
!       Typ  : Entity_Id) return Node_Id
!    is
        Ftyp : constant Entity_Id := Etype (First_Formal (Proc));
  
        Atyp : Entity_Id;
*************** package body Exp_Ch7 is
*** 4423,4430 ****
     begin
        if Nkind (Arg) in N_Type_Conversion | N_Unchecked_Type_Conversion then
           Atyp := Entity (Subtype_Mark (Arg));
!       else
           Atyp := Etype (Arg);
        end if;
  
        if Is_Abstract_Subprogram (Proc) and then Is_Tagged_Type (Ftyp) then
--- 4224,4233 ----
     begin
        if Nkind (Arg) in N_Type_Conversion | N_Unchecked_Type_Conversion then
           Atyp := Entity (Subtype_Mark (Arg));
!       elsif Present (Etype (Arg)) then
           Atyp := Etype (Arg);
+       else
+          Atyp := Typ;
        end if;
  
        if Is_Abstract_Subprogram (Proc) and then Is_Tagged_Type (Ftyp) then
*************** package body Exp_Ch7 is
*** 5032,5040 ****
        end if;
  
        declare
-          Decls  : constant List_Id := Declarations (N);
           Fin_Id : Entity_Id;
           Mark   : Entity_Id := Empty;
        begin
           --  If we are generating expanded code for debugging purposes, use the
           --  Sloc of the point of insertion for the cleanup code. The Sloc will
--- 4835,4843 ----
        end if;
  
        declare
           Fin_Id : Entity_Id;
           Mark   : Entity_Id := Empty;
+ 
        begin
           --  If we are generating expanded code for debugging purposes, use the
           --  Sloc of the point of insertion for the cleanup code. The Sloc will
*************** package body Exp_Ch7 is
*** 5072,5078 ****
              declare
                 Mark_Call : constant Node_Id := Build_SS_Mark_Call (Loc, Mark);
              begin
!                Prepend_To (Decls, Mark_Call);
                 Analyze (Mark_Call);
              end;
           end if;
--- 4875,4881 ----
              declare
                 Mark_Call : constant Node_Id := Build_SS_Mark_Call (Loc, Mark);
              begin
!                Prepend_To (Declarations (N), Mark_Call);
                 Analyze (Mark_Call);
              end;
           end if;
*************** package body Exp_Ch7 is
*** 5085,5091 ****
             (N           => N,
              Clean_Stmts => Build_Cleanup_Statements (N, Cln),
              Mark_Id     => Mark,
-             Top_Decls   => Decls,
              Defer_Abort => Nkind (Original_Node (N)) = N_Task_Body
                               or else Is_Master,
              Fin_Id      => Fin_Id);
--- 4888,4893 ----
*************** package body Exp_Ch7 is
*** 5171,5177 ****
             (N           => N,
              Clean_Stmts => No_List,
              Mark_Id     => Empty,
-             Top_Decls   => No_List,
              Defer_Abort => False,
              Fin_Id      => Fin_Id);
  
--- 4973,4978 ----
*************** package body Exp_Ch7 is
*** 5300,5306 ****
             (N           => N,
              Clean_Stmts => No_List,
              Mark_Id     => Empty,
-             Top_Decls   => No_List,
              Defer_Abort => False,
              Fin_Id      => Fin_Id);
  
--- 5101,5106 ----
*************** package body Exp_Ch7 is
*** 5395,5404 ****
           Last_Object  : Node_Id;
           Related_Node : Node_Id)
        is
-          Must_Hook : Boolean;
-          --  Flag denoting whether the context requires transient object
-          --  export to the outer finalizer.
- 
           function Is_Subprogram_Call (N : Node_Id) return Traverse_Result;
           --  Return Abandon if arbitrary node denotes a subprogram call
  
--- 5195,5200 ----
*************** package body Exp_Ch7 is
*** 5406,5418 ****
             new Traverse_Func (Is_Subprogram_Call);
  
           procedure Process_Transient_In_Scope
!            (Obj_Decl  : Node_Id;
!             Blk_Data  : Finalization_Exception_Data;
!             Blk_Stmts : List_Id);
           --  Generate finalization actions for a single transient object
!          --  denoted by object declaration Obj_Decl. Blk_Data is the
!          --  exception data of the enclosing block. Blk_Stmts denotes the
!          --  statements of the enclosing block.
  
           ------------------------
           -- Is_Subprogram_Call --
--- 5202,5212 ----
             new Traverse_Func (Is_Subprogram_Call);
  
           procedure Process_Transient_In_Scope
!            (Obj_Decl    : Node_Id;
!             Insert_Nod  : Node_Id;
!             Must_Export : Boolean);
           --  Generate finalization actions for a single transient object
!          --  denoted by object declaration Obj_Decl.
  
           ------------------------
           -- Is_Subprogram_Call --
*************** package body Exp_Ch7 is
*** 5453,5654 ****
           --------------------------------
  
           procedure Process_Transient_In_Scope
!            (Obj_Decl  : Node_Id;
!             Blk_Data  : Finalization_Exception_Data;
!             Blk_Stmts : List_Id)
           is
!             Loc         : constant Source_Ptr := Sloc (Obj_Decl);
!             Obj_Id      : constant Entity_Id  := Defining_Entity (Obj_Decl);
!             Fin_Call    : Node_Id;
!             Fin_Stmts   : List_Id;
!             Hook_Assign : Node_Id;
!             Hook_Clear  : Node_Id;
!             Hook_Decl   : Node_Id;
!             Hook_Insert : Node_Id;
!             Ptr_Decl    : Node_Id;
! 
!          begin
!             --  Mark the transient object as successfully processed to avoid
!             --  double finalization.
! 
!             Set_Is_Finalized_Transient (Obj_Id);
! 
!             --  Construct all the pieces necessary to hook and finalize the
!             --  transient object.
! 
!             Build_Transient_Object_Statements
!               (Obj_Decl    => Obj_Decl,
!                Fin_Call    => Fin_Call,
!                Hook_Assign => Hook_Assign,
!                Hook_Clear  => Hook_Clear,
!                Hook_Decl   => Hook_Decl,
!                Ptr_Decl    => Ptr_Decl);
! 
!             --  The context contains at least one subprogram call which may
!             --  raise an exception. This scenario employs "hooking" to pass
!             --  transient objects to the enclosing finalizer in case of an
!             --  exception.
! 
!             if Must_Hook then
! 
!                --  Add the access type which provides a reference to the
!                --  transient object. Generate:
  
!                --    type Ptr_Typ is access all Desig_Typ;
  
!                Insert_Action (Obj_Decl, Ptr_Decl);
  
!                --  Add the temporary which acts as a hook to the transient
!                --  object. Generate:
  
!                --    Hook : Ptr_Typ := null;
  
!                Insert_Action (Obj_Decl, Hook_Decl);
  
!                --  When the transient object is initialized by an aggregate,
!                --  the hook must capture the object after the last aggregate
!                --  assignment takes place. Only then is the object considered
!                --  fully initialized. Generate:
  
!                --    Hook := Ptr_Typ (Obj_Id);
!                --      <or>
!                --    Hook := Obj_Id'Unrestricted_Access;
  
!                --  Similarly if we have a build in place call: we must
!                --  initialize Hook only after the call has happened, otherwise
!                --  Obj_Id will not be initialized yet.
  
!                if Ekind (Obj_Id) in E_Constant | E_Variable then
!                   if Present (Last_Aggregate_Assignment (Obj_Id)) then
!                      Hook_Insert := Last_Aggregate_Assignment (Obj_Id);
!                   elsif Present (BIP_Initialization_Call (Obj_Id)) then
!                      Hook_Insert := BIP_Initialization_Call (Obj_Id);
!                   else
!                      Hook_Insert := Obj_Decl;
!                   end if;
  
!                --  Otherwise the hook seizes the related object immediately
  
!                else
!                   Hook_Insert := Obj_Decl;
                 end if;
  
!                Insert_After_And_Analyze (Hook_Insert, Hook_Assign);
              end if;
  
!             --  When exception propagation is enabled wrap the hook clear
!             --  statement and the finalization call into a block to catch
!             --  potential exceptions raised during finalization. Generate:
! 
!             --    begin
!             --       [Hook := null;]
!             --       [Deep_]Finalize (Obj_Ref);
! 
!             --    exception
!             --       when others =>
!             --          if not Raised then
!             --             Raised := True;
!             --             Save_Occurrence
!             --               (Enn, Get_Current_Excep.all.all);
!             --          end if;
!             --    end;
! 
!             if Exceptions_OK then
!                Fin_Stmts := New_List;
! 
!                if Must_Hook then
!                   Append_To (Fin_Stmts, Hook_Clear);
!                end if;
! 
!                Append_To (Fin_Stmts, Fin_Call);
! 
!                Prepend_To (Blk_Stmts,
!                  Make_Block_Statement (Loc,
!                    Handled_Statement_Sequence =>
!                      Make_Handled_Sequence_Of_Statements (Loc,
!                        Statements         => Fin_Stmts,
!                        Exception_Handlers => New_List (
!                          Build_Exception_Handler (Blk_Data)))));
! 
!             --  Otherwise generate:
! 
!             --    [Hook := null;]
!             --    [Deep_]Finalize (Obj_Ref);
! 
!             --  Note that the statements are inserted in reverse order to
!             --  achieve the desired final order outlined above.
! 
!             else
!                Prepend_To (Blk_Stmts, Fin_Call);
  
!                if Must_Hook then
!                   Prepend_To (Blk_Stmts, Hook_Clear);
!                end if;
!             end if;
           end Process_Transient_In_Scope;
  
           --  Local variables
  
!          Built     : Boolean := False;
!          Blk_Data  : Finalization_Exception_Data;
!          Blk_Decl  : Node_Id := Empty;
!          Blk_Decls : List_Id := No_List;
!          Blk_Ins   : Node_Id;
!          Blk_Stmts : List_Id := No_List;
!          Loc       : Source_Ptr := No_Location;
!          Obj_Decl  : Node_Id;
  
        --  Start of processing for Process_Transients_In_Scope
  
        begin
           --  The expansion performed by this routine is as follows:
  
!          --    type Ptr_Typ_1 is access all Ctrl_Trans_Obj_1_Typ;
!          --    Hook_1 : Ptr_Typ_1 := null;
           --    Ctrl_Trans_Obj_1 : ...;
-          --    Hook_1 := Ctrl_Trans_Obj_1'Unrestricted_Access;
           --    . . .
!          --    type Ptr_Typ_N is access all Ctrl_Trans_Obj_N_Typ;
!          --    Hook_N : Ptr_Typ_N := null;
           --    Ctrl_Trans_Obj_N : ...;
-          --    Hook_N := Ctrl_Trans_Obj_N'Unrestricted_Access;
- 
-          --    declare
-          --       Abrt   : constant Boolean := ...;
-          --       Ex     : Exception_Occurrence;
-          --       Raised : Boolean := False;
- 
-          --    begin
-          --       Abort_Defer;
  
!          --       begin
!          --          Hook_N := null;
!          --          [Deep_]Finalize (Ctrl_Trans_Obj_N);
! 
!          --       exception
!          --          when others =>
!          --             if not Raised then
!          --                Raised := True;
!          --                Save_Occurrence (Ex, Get_Current_Excep.all.all);
!          --       end;
!          --       . . .
!          --       begin
!          --          Hook_1 := null;
!          --          [Deep_]Finalize (Ctrl_Trans_Obj_1);
! 
!          --       exception
!          --          when others =>
!          --             if not Raised then
!          --                Raised := True;
!          --                Save_Occurrence (Ex, Get_Current_Excep.all.all);
!          --       end;
! 
!          --       Abort_Undefer;
! 
!          --       if Raised and not Abrt then
!          --          Raise_From_Controlled_Operation (Ex);
!          --       end if;
!          --    end;
  
           --  Recognize a scenario where the transient context is an object
           --  declaration initialized by a build-in-place function call:
--- 5247,5331 ----
           --------------------------------
  
           procedure Process_Transient_In_Scope
!            (Obj_Decl    : Node_Id;
!             Insert_Nod  : Node_Id;
!             Must_Export : Boolean)
           is
!             Loc    : constant Source_Ptr := Sloc (Obj_Decl);
!             Obj_Id : constant Entity_Id  := Defining_Entity (Obj_Decl);
  
!             Master_Node_Id   : Entity_Id;
!             Master_Node_Decl : Node_Id;
!             Obj_Ref          : Node_Id;
!             Obj_Typ          : Entity_Id;
  
!          begin
!             --  If the object needs to be exported to the outer finalizer,
!             --  create the declaration of the Master_Node for the object,
!             --  which will later be picked up by Build_Finalizer.
  
!             if Must_Export then
!                Master_Node_Id := Make_Temporary (Loc, 'N');
!                Master_Node_Decl :=
!                  Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id);
!                Insert_Before_And_Analyze (Obj_Decl, Master_Node_Decl);
  
!                --  Generate the attachment of the object to the Master_Node
  
!                Attach_Object_To_Master_Node (Obj_Decl, Master_Node_Id);
  
!                --  Then add the finalization call for the object
  
!                Insert_After_And_Analyze (Insert_Nod,
!                  Make_Finalize_Call_For_Node (Loc, Master_Node_Id));
  
!             --  Otherwise generate a direct finalization call for the object
  
!             else
!                --  Handle the object type and the reference to the object
  
!                Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
!                Obj_Typ := Base_Type (Etype (Obj_Id));
  
!                if Is_Access_Type (Obj_Typ) then
!                   Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
!                   Obj_Typ := Available_View (Designated_Type (Obj_Typ));
                 end if;
  
!                Insert_After_And_Analyze (Insert_Nod,
!                  Make_Final_Call (Obj_Ref => Obj_Ref, Typ => Obj_Typ));
              end if;
  
!             --  Mark the transient object to avoid double finalization
  
!             Set_Is_Finalized_Transient (Obj_Id);
           end Process_Transient_In_Scope;
  
           --  Local variables
  
!          Insert_Nod : Node_Id;
!          --  Insertion node for the finalization actions
! 
!          Must_Export : Boolean;
!          --  Flag denoting whether the context requires transient object
!          --  export to the outer finalizer.
! 
!          Obj_Decl : Node_Id;
  
        --  Start of processing for Process_Transients_In_Scope
  
        begin
           --  The expansion performed by this routine is as follows:
  
!          --    Ctrl_Trans_Obj_1MN : Master_Node;
           --    Ctrl_Trans_Obj_1 : ...;
           --    . . .
!          --    Ctrl_Trans_Obj_NMN : Master_Node;
           --    Ctrl_Trans_Obj_N : ...;
  
!          --    Finalize_Object (Ctrl_Trans_Obj_NMN);
!          --    . . .
!          --    Finalize_Object (Ctrl_Trans_Obj_1MN);
  
           --  Recognize a scenario where the transient context is an object
           --  declaration initialized by a build-in-place function call:
*************** package body Exp_Ch7 is
*** 5667,5780 ****
           if Nkind (N) = N_Object_Declaration
             and then Present (BIP_Initialization_Call (Defining_Identifier (N)))
           then
!             Must_Hook := True;
!             Blk_Ins   := BIP_Initialization_Call (Defining_Identifier (N));
  
           --  Search the context for at least one subprogram call. If found, the
           --  machinery exports all transient objects to the enclosing finalizer
           --  due to the possibility of abnormal call termination.
  
           else
!             Must_Hook := Has_Subprogram_Call (N) = Abandon;
!             Blk_Ins   := Last_Object;
           end if;
  
!          Insert_List_After_And_Analyze (Blk_Ins, Act_Cleanup);
  
!          --  Examine all objects in the list First_Object .. Last_Object
  
           Obj_Decl := First_Object;
           while Present (Obj_Decl) loop
!             if Nkind (Obj_Decl) = N_Object_Declaration
                and then Analyzed (Obj_Decl)
                and then Is_Finalizable_Transient (Obj_Decl, N)
- 
-               --  Do not process the node to be wrapped since it will be
-               --  handled by the enclosing finalizer.
- 
-               and then Obj_Decl /= Related_Node
              then
!                Loc := Sloc (Obj_Decl);
! 
!                --  Before generating the cleanup code for the first transient
!                --  object, create a wrapper block which houses all hook clear
!                --  statements and finalization calls. This wrapper is needed by
!                --  the back end.
! 
!                if not Built then
!                   Built     := True;
!                   Blk_Stmts := New_List;
! 
!                   --  Generate:
!                   --    Abrt   : constant Boolean := ...;
!                   --    Ex     : Exception_Occurrence;
!                   --    Raised : Boolean := False;
! 
!                   if Exceptions_OK then
!                      Blk_Decls := New_List;
!                      Build_Object_Declarations (Blk_Data, Blk_Decls, Loc);
!                   end if;
! 
!                   Blk_Decl :=
!                     Make_Block_Statement (Loc,
!                       Declarations               => Blk_Decls,
!                       Handled_Statement_Sequence =>
!                         Make_Handled_Sequence_Of_Statements (Loc,
!                           Statements => Blk_Stmts));
!                end if;
! 
!                --  Construct all necessary circuitry to hook and finalize a
!                --  single transient object.
! 
!                pragma Assert (Present (Blk_Stmts));
!                Process_Transient_In_Scope
!                  (Obj_Decl  => Obj_Decl,
!                   Blk_Data  => Blk_Data,
!                   Blk_Stmts => Blk_Stmts);
              end if;
  
!             --  Terminate the scan after the last object has been processed to
!             --  avoid touching unrelated code.
! 
!             if Obj_Decl = Last_Object then
!                exit;
!             end if;
  
              Next (Obj_Decl);
           end loop;
- 
-          --  Complete the decoration of the enclosing finalization block and
-          --  insert it into the tree.
- 
-          if Present (Blk_Decl) then
- 
-             pragma Assert (Present (Blk_Stmts));
-             pragma Assert (Loc /= No_Location);
- 
-             --  Note that this Abort_Undefer does not require a extra block or
-             --  an AT_END handler because each finalization exception is caught
-             --  in its own corresponding finalization block. As a result, the
-             --  call to Abort_Defer always takes place.
- 
-             if Abort_Allowed then
-                Prepend_To (Blk_Stmts,
-                  Build_Runtime_Call (Loc, RE_Abort_Defer));
- 
-                Append_To (Blk_Stmts,
-                  Build_Runtime_Call (Loc, RE_Abort_Undefer));
-             end if;
- 
-             --  Generate:
-             --    if Raised and then not Abrt then
-             --       Raise_From_Controlled_Operation (Ex);
-             --    end if;
- 
-             if Exceptions_OK then
-                Append_To (Blk_Stmts, Build_Raise_Statement (Blk_Data));
-             end if;
- 
-             Insert_After_And_Analyze (Blk_Ins, Blk_Decl);
-          end if;
        end Process_Transients_In_Scope;
  
        --  Local variables
--- 5344,5381 ----
           if Nkind (N) = N_Object_Declaration
             and then Present (BIP_Initialization_Call (Defining_Identifier (N)))
           then
!             Must_Export := True;
!             Insert_Nod  := BIP_Initialization_Call (Defining_Identifier (N));
  
           --  Search the context for at least one subprogram call. If found, the
           --  machinery exports all transient objects to the enclosing finalizer
           --  due to the possibility of abnormal call termination.
  
           else
!             Must_Export := Has_Subprogram_Call (N) = Abandon;
!             Insert_Nod  := Last_Object;
           end if;
  
!          Insert_List_After_And_Analyze (Insert_Nod, Act_Cleanup);
  
!          --  Examine all the objects in the list First_Object .. Last_Object
!          --  but skip the node to be wrapped because it is not transient as
!          --  far as this scope is concerned.
  
           Obj_Decl := First_Object;
           while Present (Obj_Decl) loop
!             if Obj_Decl /= Related_Node
!               and then Nkind (Obj_Decl) = N_Object_Declaration
                and then Analyzed (Obj_Decl)
                and then Is_Finalizable_Transient (Obj_Decl, N)
              then
!                Process_Transient_In_Scope (Obj_Decl, Insert_Nod, Must_Export);
              end if;
  
!             exit when Obj_Decl = Last_Object;
  
              Next (Obj_Decl);
           end loop;
        end Process_Transients_In_Scope;
  
        --  Local variables
*************** package body Exp_Ch7 is
*** 5784,5789 ****
--- 5385,5391 ----
        First_Obj    : Node_Id;
        Last_Obj     : Node_Id;
        Mark_Id      : Entity_Id;
+       Marker       : Node_Id;
        Target       : Node_Id;
  
     --  Start of processing for Insert_Actions_In_Scope_Around
*************** package body Exp_Ch7 is
*** 5815,5823 ****
           Target := N;
        end if;
  
-       First_Obj := Target;
-       Last_Obj  := Target;
- 
        --  Add all actions associated with a transient scope into the main tree.
        --  There are several scenarios here:
  
--- 5417,5422 ----
*************** package body Exp_Ch7 is
*** 5828,5845 ****
  
        --    3)                   Target ........ Last_Obj
  
!       --  Flag declarations are inserted before the first object
  
        if Present (Act_Before) then
           First_Obj := First (Act_Before);
           Insert_List_Before (Target, Act_Before);
        end if;
  
!       --  Finalization calls are inserted after the last object
  
        if Present (Act_After) then
           Last_Obj := Last (Act_After);
           Insert_List_After (Target, Act_After);
        end if;
  
        --  Mark and release the secondary stack when the context warrants it
--- 5427,5452 ----
  
        --    3)                   Target ........ Last_Obj
  
!       --  Declarations are inserted before the target
  
        if Present (Act_Before) then
           First_Obj := First (Act_Before);
           Insert_List_Before (Target, Act_Before);
+       else
+          First_Obj := Target;
        end if;
  
!       --  Set a marker on the next statement
! 
!       Marker := Next (Target);
! 
!       --  Finalization calls are inserted after the target
  
        if Present (Act_After) then
           Last_Obj := Last (Act_After);
           Insert_List_After (Target, Act_After);
+       else
+          Last_Obj := Target;
        end if;
  
        --  Mark and release the secondary stack when the context warrants it
*************** package body Exp_Ch7 is
*** 5870,5875 ****
--- 5477,5492 ----
              Related_Node => Target);
        end if;
  
+       --  If the target is the declaration of an object, park the generated
+       --  statements if need be.
+ 
+       if Nkind (Target) = N_Object_Declaration
+         and then Next (Target) /= Marker
+         and then Needs_Initialization_Statements (Target)
+       then
+          Move_To_Initialization_Statements (Target, Marker);
+       end if;
+ 
        --  Reset the action lists
  
        Scope_Stack.Table
*************** package body Exp_Ch7 is
*** 5896,5901 ****
--- 5513,5576 ----
            and then Is_RTE (Find_Protection_Type (T), RE_Protection);
     end Is_Simple_Protected_Type;
  
+    -------------------------------
+    -- Make_Address_For_Finalize --
+    -------------------------------
+ 
+    function Make_Address_For_Finalize
+      (Loc     : Source_Ptr;
+       Obj_Ref : Node_Id;
+       Obj_Typ : Entity_Id) return Node_Id
+    is
+       Utyp : constant Entity_Id := Underlying_Type (Obj_Typ);
+ 
+       Obj_Addr : Node_Id;
+ 
+    begin
+       Obj_Addr :=
+         Make_Attribute_Reference (Loc,
+           Prefix => Obj_Ref,
+           Attribute_Name => Name_Address);
+ 
+       --  If the type of a constrained array has an unconstrained first
+       --  subtype, its Finalize_Address primitive expects the address of
+       --  an object with a dope vector (see Make_Finalize_Address_Stmts).
+       --  This is achieved by setting Is_Constr_Array_Subt_With_Bounds,
+       --  but the address of the object is still that of its elements,
+       --  so we need to shift it.
+ 
+       if Is_Array_Type (Utyp)
+         and then not Is_Constrained (First_Subtype (Utyp))
+       then
+          --  Shift the address from the start of the elements to the
+          --  start of the dope vector:
+ 
+          --    V - (Utyp'Descriptor_Size / Storage_Unit)
+ 
+          Obj_Addr :=
+            Make_Function_Call (Loc,
+              Name                   =>
+                Make_Expanded_Name (Loc,
+                  Chars => Name_Op_Subtract,
+                  Prefix =>
+                    New_Occurrence_Of
+                      (RTU_Entity (System_Storage_Elements), Loc),
+                  Selector_Name =>
+                    Make_Identifier (Loc, Name_Op_Subtract)),
+              Parameter_Associations => New_List (
+                Obj_Addr,
+                Make_Op_Divide (Loc,
+                  Left_Opnd  =>
+                    Make_Attribute_Reference (Loc,
+                      Prefix         => New_Occurrence_Of (Utyp, Loc),
+                      Attribute_Name => Name_Descriptor_Size),
+                  Right_Opnd =>
+                    Make_Integer_Literal (Loc, System_Storage_Unit))));
+       end if;
+ 
+       return Obj_Addr;
+    end Make_Address_For_Finalize;
+ 
     -----------------------
     -- Make_Adjust_Call --
     -----------------------
*************** package body Exp_Ch7 is
*** 5973,5979 ****
        --  Derivations from [Limited_]Controlled
  
        elsif Is_Controlled (Utyp) then
!          Adj_Id := Find_Optional_Prim_Op (Utyp, Name_Of (Adjust_Case));
  
        --  Tagged types
  
--- 5648,5654 ----
        --  Derivations from [Limited_]Controlled
  
        elsif Is_Controlled (Utyp) then
!          Adj_Id := Find_Controlled_Prim_Op (Utyp, Name_Adjust);
  
        --  Tagged types
  
*************** package body Exp_Ch7 is
*** 5985,6005 ****
        end if;
  
        if Present (Adj_Id) then
- 
-          --  If the object is unanalyzed, set its expected type for use in
-          --  Convert_View in case an additional conversion is needed.
- 
-          if No (Etype (Ref))
-            and then Nkind (Ref) /= N_Unchecked_Type_Conversion
-          then
-             Set_Etype (Ref, Typ);
-          end if;
- 
           --  The object reference may need another conversion depending on the
           --  type of the formal and that of the actual.
  
           if not Is_Class_Wide_Type (Typ) then
!             Ref := Convert_View (Adj_Id, Ref);
           end if;
  
           return
--- 5660,5670 ----
        end if;
  
        if Present (Adj_Id) then
           --  The object reference may need another conversion depending on the
           --  type of the formal and that of the actual.
  
           if not Is_Class_Wide_Type (Typ) then
!             Ref := Convert_View (Adj_Id, Ref, Typ);
           end if;
  
           return
*************** package body Exp_Ch7 is
*** 6907,6912 ****
--- 6572,6579 ----
        Typ      : Entity_Id;
        Is_Local : Boolean := False) return List_Id
     is
+       Loc : constant Source_Ptr := Sloc (Typ);
+ 
        function Build_Adjust_Statements (Typ : Entity_Id) return List_Id;
        --  Build the statements necessary to adjust a record type. The type may
        --  have discriminants and contain variant parts. Generate:
*************** package body Exp_Ch7 is
*** 7056,7062 ****
        -----------------------------
  
        function Build_Adjust_Statements (Typ : Entity_Id) return List_Id is
-          Loc     : constant Source_Ptr := Sloc (Typ);
           Typ_Def : constant Node_Id    := Type_Definition (Parent (Typ));
  
           Finalizer_Data : Finalization_Exception_Data;
--- 6723,6728 ----
*************** package body Exp_Ch7 is
*** 7384,7390 ****
                 Proc     : Entity_Id;
  
              begin
!                Proc := Find_Optional_Prim_Op (Typ, Name_Adjust);
  
                 --  Generate:
                 --    if F then
--- 7050,7056 ----
                 Proc     : Entity_Id;
  
              begin
!                Proc := Find_Controlled_Prim_Op (Typ, Name_Adjust);
  
                 --  Generate:
                 --    if F then
*************** package body Exp_Ch7 is
*** 7472,7479 ****
        -------------------------------
  
        function Build_Finalize_Statements (Typ : Entity_Id) return List_Id is
!          Loc     : constant Source_Ptr := Sloc (Typ);
!          Typ_Def : constant Node_Id    := Type_Definition (Parent (Typ));
  
           Counter        : Nat := 0;
           Finalizer_Data : Finalization_Exception_Data;
--- 7138,7144 ----
        -------------------------------
  
        function Build_Finalize_Statements (Typ : Entity_Id) return List_Id is
!          Typ_Def : constant Node_Id := Type_Definition (Parent (Typ));
  
           Counter        : Nat := 0;
           Finalizer_Data : Finalization_Exception_Data;
*************** package body Exp_Ch7 is
*** 7977,7983 ****
                       --  non-POC components are finalized before the
                       --  non-POC extension components. This violates the
                       --  usual "finalize in reverse declaration order"
!                      --  principle, but that's ok (see Ada RM 7.6.1(9)).
                       --
                       --  Last_POC_Call should be non-empty if the extension
                       --  has at least one POC. Interactions with variant
--- 7642,7648 ----
                       --  non-POC components are finalized before the
                       --  non-POC extension components. This violates the
                       --  usual "finalize in reverse declaration order"
!                      --  principle, but that's ok (see RM 7.6.1(9)).
                       --
                       --  Last_POC_Call should be non-empty if the extension
                       --  has at least one POC. Interactions with variant
*************** package body Exp_Ch7 is
*** 8010,8016 ****
                 Proc     : Entity_Id;
  
              begin
!                Proc := Find_Optional_Prim_Op (Typ, Name_Finalize);
  
                 --  Generate:
                 --    if F then
--- 7675,7681 ----
                 Proc     : Entity_Id;
  
              begin
!                Proc := Find_Controlled_Prim_Op (Typ, Name_Finalize);
  
                 --  Generate:
                 --    if F then
*************** package body Exp_Ch7 is
*** 8167,8188 ****
              return Build_Finalize_Statements (Typ);
  
           when Initialize_Case =>
!             declare
!                Loc : constant Source_Ptr := Sloc (Typ);
! 
!             begin
!                if Is_Controlled (Typ) then
!                   return New_List (
!                     Make_Procedure_Call_Statement (Loc,
!                       Name                   =>
!                         New_Occurrence_Of
!                           (Find_Prim_Op (Typ, Name_Of (Prim)), Loc),
!                       Parameter_Associations => New_List (
!                         Make_Identifier (Loc, Name_V))));
!                else
!                   return Empty_List;
!                end if;
!             end;
        end case;
     end Make_Deep_Record_Body;
  
--- 7832,7848 ----
              return Build_Finalize_Statements (Typ);
  
           when Initialize_Case =>
!             if Is_Controlled (Typ) then
!                return New_List (
!                  Make_Procedure_Call_Statement (Loc,
!                    Name                   =>
!                      New_Occurrence_Of
!                        (Find_Controlled_Prim_Op (Typ, Name_Initialize), Loc),
!                    Parameter_Associations => New_List (
!                      Make_Identifier (Loc, Name_V))));
!             else
!                return Empty_List;
!             end if;
        end case;
     end Make_Deep_Record_Body;
  
*************** package body Exp_Ch7 is
*** 8322,8328 ****
        --  Derivations from [Limited_]Controlled
  
        elsif Is_Controlled (Utyp) then
!          Fin_Id := Find_Optional_Prim_Op (Utyp, Name_Of (Finalize_Case));
  
        --  Tagged types
  
--- 7982,7988 ----
        --  Derivations from [Limited_]Controlled
  
        elsif Is_Controlled (Utyp) then
!          Fin_Id := Find_Controlled_Prim_Op (Utyp, Name_Finalize);
  
        --  Tagged types
  
*************** package body Exp_Ch7 is
*** 8347,8352 ****
--- 8007,8013 ----
           else
              raise Program_Error;
           end if;
+ 
        else
           raise Program_Error;
        end if;
*************** package body Exp_Ch7 is
*** 8386,8401 ****
                 end if;
              end;
  
!             --  If the object is unanalyzed, set its expected type for use in
!             --  Convert_View in case an additional conversion is needed.
! 
!             if No (Etype (Ref))
!               and then Nkind (Ref) /= N_Unchecked_Type_Conversion
!             then
!                Set_Etype (Ref, Typ);
!             end if;
! 
!             Ref := Convert_View (Fin_Id, Ref);
           end if;
  
           return
--- 8047,8053 ----
                 end if;
              end;
  
!             Ref := Convert_View (Fin_Id, Ref, Typ);
           end if;
  
           return
*************** package body Exp_Ch7 is
*** 8432,8441 ****
        if Is_Task then
           null;
  
!       --  Nothing to do if the type is not controlled or it already has a
!       --  TSS entry for Finalize_Address. Skip class-wide subtypes which do not
!       --  come from source. These are usually generated for completeness and
!       --  do not need the Finalize_Address primitive.
  
        elsif not Needs_Finalization (Typ)
          or else Present (TSS (Typ, TSS_Finalize_Address))
--- 8084,8093 ----
        if Is_Task then
           null;
  
!       --  Nothing to do if the type does not need finalization or already has
!       --  a TSS entry for Finalize_Address. Skip class-wide subtypes that do
!       --  not come from source, as they are usually generated for completeness
!       --  and need no Finalize_Address.
  
        elsif not Needs_Finalization (Typ)
          or else Present (TSS (Typ, TSS_Finalize_Address))
*************** package body Exp_Ch7 is
*** 8496,8501 ****
--- 8148,8161 ----
              Make_Handled_Sequence_Of_Statements (Loc,
                Statements => Stmts)));
  
+       --  If the type has relaxed semantics for finalization, the indirect
+       --  calls to Finalize_Address may be turned into direct ones and, in
+       --  this case, inlining them is generally profitable.
+ 
+       if Has_Relaxed_Finalization (Typ) then
+          Set_Is_Inlined (Proc_Id);
+       end if;
+ 
        Set_TSS (Typ, Proc_Id);
     end Make_Finalize_Address_Body;
  
*************** package body Exp_Ch7 is
*** 8651,8664 ****
              --  start of the elements:
              --
              --    V + Dnn
-             --
-             --  Note that this is done through a wrapper routine since RTSfind
-             --  cannot retrieve operations with string names of the form "+".
  
              Obj_Expr :=
                Make_Function_Call (Loc,
                  Name                   =>
!                   New_Occurrence_Of (RTE (RE_Add_Offset_To_Address), Loc),
                  Parameter_Associations => New_List (
                    Obj_Expr,
                    New_Occurrence_Of (Dope_Id, Loc)));
--- 8311,8327 ----
              --  start of the elements:
              --
              --    V + Dnn
  
              Obj_Expr :=
                Make_Function_Call (Loc,
                  Name                   =>
!                   Make_Expanded_Name (Loc,
!                     Chars => Name_Op_Add,
!                     Prefix =>
!                       New_Occurrence_Of
!                         (RTU_Entity (System_Storage_Elements), Loc),
!                     Selector_Name =>
!                       Make_Identifier (Loc, Name_Op_Add)),
                  Parameter_Associations => New_List (
                    Obj_Expr,
                    New_Occurrence_Of (Dope_Id, Loc)));
*************** package body Exp_Ch7 is
*** 8691,8696 ****
--- 8354,8415 ----
        return New_List (Fin_Block);
     end Make_Finalize_Address_Stmts;
  
+    ---------------------------------
+    -- Make_Finalize_Call_For_Node --
+    ---------------------------------
+ 
+    function Make_Finalize_Call_For_Node
+      (Loc  : Source_Ptr;
+       Node : Entity_Id) return Node_Id
+    is
+       Fin_Id : constant Entity_Id := Finalize_Address_For_Node (Node);
+ 
+       Fin_Call : Node_Id;
+       Fin_Ref  : Node_Id;
+ 
+    begin
+       --  Finalize_Address is not generated in CodePeer mode because the
+       --  body contains address arithmetic. So we don't want to generate
+       --  the call in this case.
+ 
+       if CodePeer_Mode then
+          return Make_Null_Statement (Loc);
+       end if;
+ 
+       --  The Finalize_Address primitive may be missing when the Master_Node
+       --  is written down in the source code for testing purposes.
+ 
+       if Present (Fin_Id) then
+          Fin_Ref :=
+            Make_Attribute_Reference (Loc,
+              Prefix         => New_Occurrence_Of (Fin_Id, Loc),
+              Attribute_Name => Name_Unrestricted_Access);
+ 
+       else
+          Fin_Ref :=
+            Make_Selected_Component (Loc,
+              Prefix        => New_Occurrence_Of (Node, Loc),
+              Selector_Name => Make_Identifier (Loc, Name_Finalize_Address));
+       end if;
+ 
+       Fin_Call :=
+         Make_Procedure_Call_Statement (Loc,
+            Name                   =>
+              New_Occurrence_Of (RTE (RE_Finalize_Object), Loc),
+            Parameter_Associations => New_List (
+              New_Occurrence_Of (Node, Loc),
+              Fin_Ref));
+ 
+       --  Present Finalize_Address procedure to the back end so that it can
+       --  inline the call to the procedure made by Finalize_Object.
+ 
+       if Present (Fin_Id) and then Is_Inlined (Fin_Id) then
+          Add_Inlined_Body (Fin_Id, Fin_Call);
+       end if;
+ 
+       return Fin_Call;
+    end Make_Finalize_Call_For_Node;
+ 
     -------------------------------------
     -- Make_Handler_For_Ctrl_Operation --
     -------------------------------------
*************** package body Exp_Ch7 is
*** 8824,8832 ****
        --  Select the appropriate version of initialize
  
        if Has_Controlled_Component (Utyp) then
!          Proc := TSS (Utyp, Deep_Name_Of (Initialize_Case));
        else
!          Proc := Find_Prim_Op (Utyp, Name_Of (Initialize_Case));
           Check_Visibly_Controlled (Initialize_Case, Typ, Proc, Ref);
        end if;
  
--- 8543,8554 ----
        --  Select the appropriate version of initialize
  
        if Has_Controlled_Component (Utyp) then
!          Proc := TSS (Utyp, TSS_Deep_Initialize);
!       elsif Is_Mutably_Tagged_Type (Utyp) then
!          Proc := Find_Controlled_Prim_Op (Etype (Utyp), Name_Initialize);
!          Check_Visibly_Controlled (Initialize_Case, Etype (Typ), Proc, Ref);
        else
!          Proc := Find_Controlled_Prim_Op (Utyp, Name_Initialize);
           Check_Visibly_Controlled (Initialize_Case, Typ, Proc, Ref);
        end if;
  
*************** package body Exp_Ch7 is
*** 8848,8854 ****
        --  The object reference may need another conversion depending on the
        --  type of the formal and that of the actual.
  
!       Ref := Convert_View (Proc, Ref);
  
        --  Generate:
        --    [Deep_]Initialize (Ref);
--- 8570,8576 ----
        --  The object reference may need another conversion depending on the
        --  type of the formal and that of the actual.
  
!       Ref := Convert_View (Proc, Ref, Typ);
  
        --  Generate:
        --    [Deep_]Initialize (Ref);
*************** package body Exp_Ch7 is
*** 8905,8951 ****
                Statements => Make_Deep_Record_Body (Finalize_Case, Typ, True)));
     end Make_Local_Deep_Finalize;
  
!    ------------------------------------
!    -- Make_Set_Finalize_Address_Call --
!    ------------------------------------
  
!    function Make_Set_Finalize_Address_Call
!      (Loc     : Source_Ptr;
!       Ptr_Typ : Entity_Id) return Node_Id
     is
!       --  It is possible for Ptr_Typ to be a partial view, if the access type
!       --  is a full view declared in the private part of a nested package, and
!       --  the finalization actions take place when completing analysis of the
!       --  enclosing unit. For this reason use Underlying_Type twice below.
  
!       Desig_Typ : constant Entity_Id :=
!                     Available_View
!                       (Designated_Type (Underlying_Type (Ptr_Typ)));
!       Fin_Addr  : constant Entity_Id := Finalize_Address (Desig_Typ);
!       Fin_Mas   : constant Entity_Id :=
!                     Finalization_Master (Underlying_Type (Ptr_Typ));
  
     begin
!       --  Both the finalization master and primitive Finalize_Address must be
!       --  available.
  
!       pragma Assert (Present (Fin_Addr) and Present (Fin_Mas));
  
!       --  Generate:
!       --    Set_Finalize_Address
!       --      (<Ptr_Typ>FM, <Desig_Typ>FD'Unrestricted_Access);
  
        return
          Make_Procedure_Call_Statement (Loc,
            Name                   =>
!             New_Occurrence_Of (RTE (RE_Set_Finalize_Address), Loc),
            Parameter_Associations => New_List (
!             New_Occurrence_Of (Fin_Mas, Loc),
! 
!             Make_Attribute_Reference (Loc,
!               Prefix         => New_Occurrence_Of (Fin_Addr, Loc),
!               Attribute_Name => Name_Unrestricted_Access)));
!    end Make_Set_Finalize_Address_Call;
  
     --------------------------
     -- Make_Transient_Block --
--- 8627,8694 ----
                Statements => Make_Deep_Record_Body (Finalize_Case, Typ, True)));
     end Make_Local_Deep_Finalize;
  
!    ----------------------------------
!    -- Make_Master_Node_Declaration --
!    ----------------------------------
  
!    function Make_Master_Node_Declaration
!      (Loc         : Source_Ptr;
!       Master_Node : Entity_Id;
!       Obj         : Entity_Id) return Node_Id
     is
!    begin
!       Set_Finalization_Master_Node (Obj, Master_Node);
  
!       return
!         Make_Object_Declaration (Loc,
!           Defining_Identifier => Master_Node,
!           Aliased_Present     => True,
!           Object_Definition   =>
!             New_Occurrence_Of (RTE (RE_Master_Node), Loc));
!    end Make_Master_Node_Declaration;
! 
!    ----------------------------------------
!    -- Make_Suppress_Object_Finalize_Call --
!    ----------------------------------------
! 
!    function Make_Suppress_Object_Finalize_Call
!      (Loc : Source_Ptr;
!       Obj : Entity_Id) return Node_Id
!    is
!       Obj_Decl : constant Node_Id := Declaration_Node (Obj);
! 
!       Master_Node_Decl : Node_Id;
!       Master_Node_Id   : Entity_Id;
  
     begin
!       --  Create the declaration of the Master_Node for the object and
!       --  insert it before the declaration of the object itself.
  
!       if Present (Finalization_Master_Node (Obj)) then
!          Master_Node_Id := Finalization_Master_Node (Obj);
  
!       else
!          Master_Node_Id := Make_Temporary (Loc, 'N');
!          Master_Node_Decl :=
!            Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj);
!          Insert_Before_And_Analyze (Obj_Decl, Master_Node_Decl);
! 
!          --  Generate the attachment of the object to the Master_Node
! 
!          Attach_Object_To_Master_Node (Obj_Decl, Master_Node_Id);
! 
!          --  Mark the object to avoid double finalization
! 
!          Set_Is_Ignored_For_Finalization (Obj);
!       end if;
  
        return
          Make_Procedure_Call_Statement (Loc,
            Name                   =>
!             New_Occurrence_Of (RTE (RE_Suppress_Object_Finalize_At_End), Loc),
            Parameter_Associations => New_List (
!             New_Occurrence_Of (Master_Node_Id, Loc)));
!    end Make_Suppress_Object_Finalize_Call;
  
     --------------------------
     -- Make_Transient_Block --
*************** package body Exp_Ch7 is
*** 9170,9183 ****
  
     begin
        if Is_Empty_List (Actions) then
!          Actions := L;
! 
!          if Is_List_Member (SE.Node_To_Be_Wrapped) then
!             Set_Parent (L, Parent (SE.Node_To_Be_Wrapped));
!          else
!             Set_Parent (L, SE.Node_To_Be_Wrapped);
!          end if;
! 
           Analyze_List (L);
  
        elsif AK = Before then
--- 8913,8919 ----
  
     begin
        if Is_Empty_List (Actions) then
!          Store_New_Actions_In_Scope (AK, L);
           Analyze_List (L);
  
        elsif AK = Before then
*************** package body Exp_Ch7 is
*** 9197,9202 ****
--- 8933,8954 ----
        Store_Actions_In_Scope (After, L);
     end Store_After_Actions_In_Scope;
  
+    ---------------------------------------------------
+    -- Store_After_Actions_In_Scope_Without_Analysis --
+    ---------------------------------------------------
+ 
+    procedure Store_After_Actions_In_Scope_Without_Analysis (L : List_Id) is
+       SE      : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last);
+       Actions : List_Id renames SE.Actions_To_Be_Wrapped (After);
+ 
+    begin
+       if Is_Empty_List (Actions) then
+          Store_New_Actions_In_Scope (After, L);
+       else
+          Insert_List_Before (First (Actions), L);
+       end if;
+    end Store_After_Actions_In_Scope_Without_Analysis;
+ 
     -----------------------------------
     -- Store_Before_Actions_In_Scope --
     -----------------------------------
*************** package body Exp_Ch7 is
*** 9215,9220 ****
--- 8967,8995 ----
        Store_Actions_In_Scope (Cleanup, L);
     end Store_Cleanup_Actions_In_Scope;
  
+    --------------------------------
+    -- Store_New_Actions_In_Scope --
+    --------------------------------
+ 
+    procedure Store_New_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id)
+    is
+       SE      : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last);
+       Actions : List_Id renames SE.Actions_To_Be_Wrapped (AK);
+ 
+    begin
+       pragma Assert (Is_Empty_List (Actions));
+ 
+       Actions := L;
+ 
+       --  Set the Parent link to provide the context for the actions
+ 
+       if Is_List_Member (SE.Node_To_Be_Wrapped) then
+          Set_Parent (L, Parent (SE.Node_To_Be_Wrapped));
+       else
+          Set_Parent (L, SE.Node_To_Be_Wrapped);
+       end if;
+    end Store_New_Actions_In_Scope;
+ 
     ------------------
     -- Unnest_Block --
     ------------------
*************** package body Exp_Ch7 is
*** 9240,9246 ****
                Defining_Unit_Name => Local_Proc),
                Declarations       => Declarations (Decl),
            Handled_Statement_Sequence =>
!             Handled_Statement_Sequence (Decl));
  
        --  Handlers in the block may contain nested subprograms that require
        --  unnesting.
--- 9015,9022 ----
                Defining_Unit_Name => Local_Proc),
                Declarations       => Declarations (Decl),
            Handled_Statement_Sequence =>
!             Handled_Statement_Sequence (Decl),
!           At_End_Proc                => New_Copy_Tree (At_End_Proc (Decl)));
  
        --  Handlers in the block may contain nested subprograms that require
        --  unnesting.
*************** package body Exp_Ch7 is
*** 9368,9375 ****
  
     procedure Unnest_Loop (Loop_Stmt : Node_Id) is
  
!       procedure Fixup_Inner_Scopes (Loop_Stmt : Node_Id);
!       --  The loops created by the compiler for array aggregates can have
        --  nested finalization procedure when the type of the array components
        --  needs finalization. It has the following form:
  
--- 9144,9154 ----
  
     procedure Unnest_Loop (Loop_Stmt : Node_Id) is
  
!       procedure Fixup_Inner_Scopes (Loop_Or_Block : Node_Id);
!       --  This procedure fixes the scope for 2 identified cases of incorrect
!       --  scope information.
!       --
!       --  1) The loops created by the compiler for array aggregates can have
        --  nested finalization procedure when the type of the array components
        --  needs finalization. It has the following form:
  
*************** package body Exp_Ch7 is
*** 9384,9390 ****
        --        obj (J4b) := ...;
  
        --  When the compiler creates the N_Block_Statement, it sets its scope to
!       --  the upper scope (the one containing the loop).
  
        --  The Unnest_Loop procedure moves the N_Loop_Statement inside a new
        --  procedure and correctly sets the scopes for both the new procedure
--- 9163,9169 ----
        --        obj (J4b) := ...;
  
        --  When the compiler creates the N_Block_Statement, it sets its scope to
!       --  the outer scope (the one containing the loop).
  
        --  The Unnest_Loop procedure moves the N_Loop_Statement inside a new
        --  procedure and correctly sets the scopes for both the new procedure
*************** package body Exp_Ch7 is
*** 9392,9416 ****
        --  leaves the Tree in an incoherent state (i.e. the inner procedure must
        --  have its enclosing procedure in its scope ancestries).
  
!       --  This procedure fixes the scope links.
  
        --  Another (better) fix would be to have the block scope set to be the
        --  loop entity earlier (when the block is created or when the loop gets
        --  an actual entity set). But unfortunately this proved harder to
        --  implement ???
  
!       procedure Fixup_Inner_Scopes (Loop_Stmt : Node_Id) is
!          Stmt          : Node_Id            := First (Statements (Loop_Stmt));
!          Loop_Stmt_Ent : constant Entity_Id := Entity (Identifier (Loop_Stmt));
!          Ent_To_Fix    : Entity_Id;
        begin
           while Present (Stmt) loop
              if Nkind (Stmt) = N_Block_Statement
                and then Is_Abort_Block (Stmt)
              then
                 Ent_To_Fix := Entity (Identifier (Stmt));
!                Set_Scope (Ent_To_Fix, Loop_Stmt_Ent);
!             elsif Nkind (Stmt) = N_Loop_Statement then
                 Fixup_Inner_Scopes (Stmt);
              end if;
              Next (Stmt);
--- 9171,9238 ----
        --  leaves the Tree in an incoherent state (i.e. the inner procedure must
        --  have its enclosing procedure in its scope ancestries).
  
!       --  2) The second case happens when an object declaration is created
!       --  within a loop used to initialize the 'others' components of an
!       --  aggregate that is nested within a transient scope. When the transient
!       --  scope is removed, the object scope is set to the outer scope. For
!       --  example:
! 
!       --  package pack
!       --   ...
!       --     L98s : for J90s in 2 .. 19 loop
!       --        B101s : declare
!       --           R92s : aliased some_type;
!       --           ...
! 
!       --  The loop L98s was initially wrapped in a transient scope B72s and
!       --  R92s was nested within it. Then the transient scope is removed and
!       --  the scope of R92s is set to 'pack'. And finally, when the unnester
!       --  moves the loop body in a new procedure, R92s's scope is still left
!       --  unchanged.
! 
!       --  This procedure finds the two previous patterns and fixes the scope
!       --  information.
  
        --  Another (better) fix would be to have the block scope set to be the
        --  loop entity earlier (when the block is created or when the loop gets
        --  an actual entity set). But unfortunately this proved harder to
        --  implement ???
  
!       procedure Fixup_Inner_Scopes (Loop_Or_Block : Node_Id) is
!          Stmt              : Node_Id;
!          Loop_Or_Block_Ent : Entity_Id;
!          Ent_To_Fix        : Entity_Id;
!          Decl              : Node_Id := Empty;
        begin
+          pragma Assert (Nkind (Loop_Or_Block) in
+            N_Loop_Statement | N_Block_Statement);
+ 
+          Loop_Or_Block_Ent := Entity (Identifier (Loop_Or_Block));
+          if Nkind (Loop_Or_Block) = N_Loop_Statement then
+             Stmt := First (Statements (Loop_Or_Block));
+          else -- N_Block_Statement
+             Stmt := First
+               (Statements (Handled_Statement_Sequence (Loop_Or_Block)));
+             Decl := First (Declarations (Loop_Or_Block));
+          end if;
+ 
+          --  Fix scopes for any object declaration found in the block
+          while Present (Decl) loop
+             if Nkind (Decl) = N_Object_Declaration then
+                Ent_To_Fix := Defining_Identifier (Decl);
+                Set_Scope (Ent_To_Fix, Loop_Or_Block_Ent);
+             end if;
+             Next (Decl);
+          end loop;
+ 
           while Present (Stmt) loop
              if Nkind (Stmt) = N_Block_Statement
                and then Is_Abort_Block (Stmt)
              then
                 Ent_To_Fix := Entity (Identifier (Stmt));
!                Set_Scope (Ent_To_Fix, Loop_Or_Block_Ent);
!             elsif Nkind (Stmt) in N_Block_Statement | N_Loop_Statement
!             then
                 Fixup_Inner_Scopes (Stmt);
              end if;
              Next (Stmt);
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch7.ads gcc-15.1.0/gcc/ada/exp_ch7.ads
*** gcc-14.2.0/gcc/ada/exp_ch7.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch7.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch7 is
*** 35,44 ****
     -- Finalization Management --
     -----------------------------
  
!    procedure Build_Anonymous_Master (Ptr_Typ : Entity_Id);
!    --  Build a finalization master for an anonymous access-to-controlled type
!    --  denoted by Ptr_Typ. The master is inserted in the declarations of the
!    --  current unit.
  
     procedure Build_Controlling_Procs (Typ : Entity_Id);
     --  Typ is a record, and array type having controlled components.
--- 35,51 ----
     -- Finalization Management --
     -----------------------------
  
!    procedure Attach_Object_To_Master_Node
!      (Obj_Decl    : Node_Id;
!       Master_Node : Entity_Id);
!    --  Generate code to attach an object denoted by its declaration Obj_Decl
!    --  to a master node denoted by Master_Node. The code is inserted after
!    --  the object is initialized.
! 
!    procedure Build_Anonymous_Collection (Ptr_Typ : Entity_Id);
!    --  Build a finalization collection for an anonymous access-to-controlled
!    --  type denoted by Ptr_Typ. The collection is inserted in the declarations
!    --  of the current unit.
  
     procedure Build_Controlling_Procs (Typ : Entity_Id);
     --  Typ is a record, and array type having controlled components.
*************** package Exp_Ch7 is
*** 102,128 ****
     --  used when operating at the library level, when enabled the current
     --  exception will be saved to a global location.
  
!    procedure Build_Finalization_Master
       (Typ            : Entity_Id;
        For_Lib_Level  : Boolean   := False;
        For_Private    : Boolean   := False;
        Context_Scope  : Entity_Id := Empty;
        Insertion_Node : Node_Id   := Empty);
!    --  Build a finalization master for an access type. The designated type may
!    --  not necessarily be controlled or need finalization actions depending on
!    --  the context. Flag For_Lib_Level must be set when creating a master for a
!    --  build-in-place function call access result type. Flag For_Private must
     --  be set when the designated type contains a private component. Parameters
     --  Context_Scope and Insertion_Node must be used in conjunction with flag
!    --  For_Private. Context_Scope is the scope of the context where the
!    --  finalization master must be analyzed. Insertion_Node is the insertion
!    --  point before which the master is to be inserted.
  
     procedure Build_Finalizer
       (N           : Node_Id;
        Clean_Stmts : List_Id;
        Mark_Id     : Entity_Id;
-       Top_Decls   : List_Id;
        Defer_Abort : Boolean;
        Fin_Id      : out Entity_Id);
     --  N may denote an accept statement, block, entry body, package body,
--- 109,134 ----
     --  used when operating at the library level, when enabled the current
     --  exception will be saved to a global location.
  
!    procedure Build_Finalization_Collection
       (Typ            : Entity_Id;
        For_Lib_Level  : Boolean   := False;
        For_Private    : Boolean   := False;
        Context_Scope  : Entity_Id := Empty;
        Insertion_Node : Node_Id   := Empty);
!    --  Build a finalization collection for an access type. The designated type
!    --  may not necessarily be controlled or need finalization actions depending
!    --  on the context. For_Lib_Level must be set when creating a collection for
!    --  a build-in-place function call access result type. Flag For_Private must
     --  be set when the designated type contains a private component. Parameters
     --  Context_Scope and Insertion_Node must be used in conjunction with flag
!    --  For_Private. Context_Scope is the scope of the context where the newly
!    --  built collection must be analyzed. Insertion_Node is the insertion point
!    --  before which the collection is to be inserted.
  
     procedure Build_Finalizer
       (N           : Node_Id;
        Clean_Stmts : List_Id;
        Mark_Id     : Entity_Id;
        Defer_Abort : Boolean;
        Fin_Id      : out Entity_Id);
     --  N may denote an accept statement, block, entry body, package body,
*************** package Exp_Ch7 is
*** 135,145 ****
     --  Clean_Stmts may contain additional context-dependent code used to abort
     --  asynchronous calls or complete tasks (see Build_Cleanup_Statements).
     --  Mark_Id is the secondary stack used in the current context or Empty if
!    --  missing. Top_Decls is the list on which the declaration of the finalizer
!    --  is attached in the non-package case. Defer_Abort indicates that the
!    --  statements passed in perform actions that require abort to be deferred,
!    --  such as for task termination. Fin_Id is the finalizer declaration
!    --  entity.
  
     procedure Build_Late_Proc (Typ : Entity_Id; Nam : Name_Id);
     --  Build one controlling procedure when a late body overrides one of the
--- 141,149 ----
     --  Clean_Stmts may contain additional context-dependent code used to abort
     --  asynchronous calls or complete tasks (see Build_Cleanup_Statements).
     --  Mark_Id is the secondary stack used in the current context or Empty if
!    --  missing. Defer_Abort indicates that the statements passed in perform
!    --  actions that require abort to be deferred, such as for task termination.
!    --  Fin_Id is the finalizer declaration entity.
  
     procedure Build_Late_Proc (Typ : Entity_Id; Nam : Name_Id);
     --  Build one controlling procedure when a late body overrides one of the
*************** package Exp_Ch7 is
*** 182,187 ****
--- 186,198 ----
     --  one of N_Block_Statement, N_Subprogram_Body, N_Task_Body, N_Entry_Body,
     --  or N_Extended_Return_Statement.
  
+    function Make_Address_For_Finalize
+      (Loc     : Source_Ptr;
+       Obj_Ref : Node_Id;
+       Obj_Typ : Entity_Id) return Node_Id;
+    --  Build the address of an object denoted by Obj_Ref and Obj_Typ for use as
+    --  the actual parameter in a call to a Finalize_Address procedure.
+ 
     function Make_Adjust_Call
       (Obj_Ref   : Node_Id;
        Typ       : Entity_Id;
*************** package Exp_Ch7 is
*** 211,216 ****
--- 222,232 ----
     --  an address into a pointer and subsequently calls Deep_Finalize on the
     --  dereference.
  
+    function Make_Finalize_Call_For_Node
+      (Loc  : Source_Ptr;
+       Node : Entity_Id) return Node_Id;
+    --  Create a call to finalize the object attached to the given Master_Node
+ 
     function Make_Init_Call
       (Obj_Ref : Node_Id;
        Typ     : Entity_Id) return Node_Id;
*************** package Exp_Ch7 is
*** 231,244 ****
     --  Create a special version of Deep_Finalize with identifier Nam. The
     --  routine has state information and can perform partial finalization.
  
!    function Make_Set_Finalize_Address_Call
!      (Loc     : Source_Ptr;
!       Ptr_Typ : Entity_Id) return Node_Id;
!    --  Associate the Finalize_Address primitive of the designated type with the
!    --  finalization master of access type Ptr_Typ. The returned call is:
!    --
!    --    Set_Finalize_Address
!    --      (<Ptr_Typ>FM, <Desig_Typ>FD'Unrestricted_Access);
  
     --------------------------------------------
     -- Task and Protected Object finalization --
--- 247,263 ----
     --  Create a special version of Deep_Finalize with identifier Nam. The
     --  routine has state information and can perform partial finalization.
  
!    function Make_Master_Node_Declaration
!      (Loc         : Source_Ptr;
!       Master_Node : Entity_Id;
!       Obj         : Entity_Id) return Node_Id;
!    --  Build the declaration of the Master_Node for the object Obj
! 
!    function Make_Suppress_Object_Finalize_Call
!      (Loc : Source_Ptr;
!       Obj : Entity_Id) return Node_Id;
!    --  Build a call to suppress the finalization of the object Obj, only after
!    --  creating the Master_Node of Obj if it does not already exist.
  
     --------------------------------------------
     -- Task and Protected Object finalization --
*************** package Exp_Ch7 is
*** 292,298 ****
     --  Return the node to be wrapped if the current scope is transient
  
     procedure Store_Before_Actions_In_Scope (L : List_Id);
!    --  Append the list L of actions to the end of the before-actions store in
     --  the top of the scope stack (also analyzes these actions).
  
     procedure Store_After_Actions_In_Scope (L : List_Id);
--- 311,317 ----
     --  Return the node to be wrapped if the current scope is transient
  
     procedure Store_Before_Actions_In_Scope (L : List_Id);
!    --  Append the list L of actions to the end of the before-actions stored in
     --  the top of the scope stack (also analyzes these actions).
  
     procedure Store_After_Actions_In_Scope (L : List_Id);
*************** package Exp_Ch7 is
*** 305,313 ****
     --  last call executed first). Within the list L for a single call, the
     --  actions are executed in the order in which they appear in this list.
  
     procedure Store_Cleanup_Actions_In_Scope (L : List_Id);
     --  Prepend the list L of actions to the beginning of the cleanup-actions
!    --  store in the top of the scope stack.
  
     procedure Wrap_Transient_Declaration (N : Node_Id);
     --  N is an object declaration. Expand the finalization calls after the
--- 324,335 ----
     --  last call executed first). Within the list L for a single call, the
     --  actions are executed in the order in which they appear in this list.
  
+    procedure Store_After_Actions_In_Scope_Without_Analysis (L : List_Id);
+    --  Same as above, but without analyzing the actions
+ 
     procedure Store_Cleanup_Actions_In_Scope (L : List_Id);
     --  Prepend the list L of actions to the beginning of the cleanup-actions
!    --  stored in the top of the scope stack.
  
     procedure Wrap_Transient_Declaration (N : Node_Id);
     --  N is an object declaration. Expand the finalization calls after the
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch8.adb gcc-15.1.0/gcc/ada/exp_ch8.adb
*** gcc-14.2.0/gcc/ada/exp_ch8.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch8 is
*** 113,120 ****
        --  atomic object. Note that we are only interested in these operations
        --  if they occur as part of the name itself, subscripts are just values
        --  that are computed as part of the evaluation, so they are unimportant.
-       --  In addition, always return True for Modify_Tree_For_C since the
-       --  code generator doesn't know how to handle renamings.
  
        -------------------------
        -- Evaluation_Required --
--- 113,118 ----
*************** package body Exp_Ch8 is
*** 122,131 ****
  
        function Evaluation_Required (Nam : Node_Id) return Boolean is
        begin
!          if Modify_Tree_For_C then
!             return True;
! 
!          elsif Nkind (Nam) in N_Indexed_Component | N_Slice then
              if Is_Packed (Etype (Prefix (Nam))) then
                 return True;
  
--- 120,126 ----
  
        function Evaluation_Required (Nam : Node_Id) return Boolean is
        begin
!          if Nkind (Nam) in N_Indexed_Component | N_Slice then
              if Is_Packed (Etype (Prefix (Nam))) then
                 return True;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch8.ads gcc-15.1.0/gcc/ada/exp_ch8.ads
*** gcc-14.2.0/gcc/ada/exp_ch8.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch9.adb gcc-15.1.0/gcc/ada/exp_ch9.adb
*** gcc-14.2.0/gcc/ada/exp_ch9.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch9.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Ch11;       use Exp_Ch11;
*** 39,45 ****
  with Exp_Dbug;       use Exp_Dbug;
  with Exp_Sel;        use Exp_Sel;
  with Exp_Smem;       use Exp_Smem;
- with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
  with Freeze;         use Freeze;
  with Hostparm;
--- 39,44 ----
*************** package body Exp_Ch9 is
*** 443,448 ****
--- 442,456 ----
     --  Determine whether Id is a function or a procedure and is marked as a
     --  private primitive.
  
+    function Make_Unlock_Statement
+      (Prot_Type : E_Protected_Type_Id;
+       Op_Spec   : N_Subprogram_Specification_Id;
+       Loc       : Source_Ptr) return N_Procedure_Call_Statement_Id;
+    --  Build a statement that is suitable to unlock an object of type Prot_Type
+    --  after having performed a protected operation on it. Prot_Type and
+    --  Op_Spec are used to determine which unlocking subprogram to call, and
+    --  whether to serve entries before unlocking.
+ 
     function Null_Statements (Stats : List_Id) return Boolean;
     --  Used to check DO-END sequence. Checks for equivalent of DO NULL; END.
     --  Allows labels, and pragma Warnings/Unreferenced in the sequence as well
*************** package body Exp_Ch9 is
*** 481,487 ****
     --    <actualN> := P.<formalN>;
  
     procedure Reset_Scopes_To (Bod : Node_Id; E : Entity_Id);
!    --  Reset the scope of declarations and blocks at the top level of Bod to
     --  be E. Bod is either a block or a subprogram body. Used after expanding
     --  various kinds of entry bodies into their corresponding constructs. This
     --  is needed during unnesting to determine whether a body generated for an
--- 489,496 ----
     --    <actualN> := P.<formalN>;
  
     procedure Reset_Scopes_To (Bod : Node_Id; E : Entity_Id);
!    --  Reset the scope of declarations and blocks at the top level of Bod and
!    --  of nested object declarations with scope pointing to the entry entity to
     --  be E. Bod is either a block or a subprogram body. Used after expanding
     --  various kinds of entry bodies into their corresponding constructs. This
     --  is needed during unnesting to determine whether a body generated for an
*************** package body Exp_Ch9 is
*** 497,502 ****
--- 506,523 ----
     --  a rescheduling is required, so this optimization is not allowed. This
     --  function returns True if the optimization is permitted.
  
+    function Wrap_Unprotected_Call
+      (Call      : Node_Id;
+       Prot_Type : E_Protected_Type_Id;
+       Op_Spec   : N_Subprogram_Specification_Id;
+       Loc       : Source_Ptr) return N_Block_Statement_Id;
+    --  Wrap Call into a block statement with a cleanup procedure set up to
+    --  release the lock on a protected object of type Prot_Type. Call must be
+    --  a statement that represents the inner and unprotected execution of the
+    --  body of a protected operation. Op_Spec must be the spec of that
+    --  protected operation. This is a subsidiary subprogram of
+    --  Build_Protected_Subprogram_Body.
+ 
     -----------------------------
     -- Actual_Index_Expression --
     -----------------------------
*************** package body Exp_Ch9 is
*** 1324,1329 ****
--- 1345,1353 ----
        Rec_Ent  : constant Entity_Id :=
                     Make_Defining_Identifier
                       (Loc, New_External_Name (Chars (Ctyp), 'V'));
+       Alist    : List_Id;
+       Asp_Copy : Node_Id;
+       Aspect   : Node_Id;
        Disc     : Entity_Id;
        Dlist    : List_Id;
        New_Disc : Entity_Id;
*************** package body Exp_Ch9 is
*** 1374,1379 ****
--- 1398,1434 ----
           Dlist := No_List;
        end if;
  
+       --  Propagate the aspect First_Controlling_Parameter to the corresponding
+       --  record to reuse the tagged types machinery. This is not needed if
+       --  the concurrent type does not implement interface types, as the
+       --  corresponding record will not be a tagged type in such case.
+ 
+       Alist := No_List;
+ 
+       if Present (Parent (Ctyp))
+         and then Present (Interface_List (Parent (Ctyp)))
+         and then Present (Aspect_Specifications (N))
+       then
+          Aspect := First (Aspect_Specifications (N));
+          while Present (Aspect) loop
+             if Chars (Identifier (Aspect))
+               = Name_First_Controlling_Parameter
+             then
+                Alist    := New_List;
+                Asp_Copy := New_Copy_Tree (Aspect);
+ 
+                --  Force its analysis in the corresponding record to add
+                --  the pragma.
+ 
+                Set_Analyzed (Asp_Copy, False);
+                Append_To (Alist, Asp_Copy);
+                exit;
+             end if;
+ 
+             Next (Aspect);
+          end loop;
+       end if;
+ 
        --  Now we can construct the record type declaration. Note that this
        --  record is "limited tagged". It is "limited" to reflect the underlying
        --  limitedness of the task or protected object that it represents, and
*************** package body Exp_Ch9 is
*** 1385,1390 ****
--- 1440,1446 ----
        return
          Make_Full_Type_Declaration (Loc,
            Defining_Identifier => Rec_Ent,
+           Aspect_Specifications => Alist,
            Discriminant_Specifications => Dlist,
            Type_Definition =>
              Make_Record_Definition (Loc,
*************** package body Exp_Ch9 is
*** 1572,1579 ****
                    Make_Defining_Identifier (Loc, Chars (Formal)),
                  Component_Definition =>
                    Make_Component_Definition (Loc,
-                     Aliased_Present =>
-                       False,
                      Subtype_Indication =>
                        New_Occurrence_Of (Comp_Nam, Loc))));
  
--- 1628,1633 ----
*************** package body Exp_Ch9 is
*** 3835,3847 ****
                  Expression => New_Occurrence_Of (R, Loc));
           end if;
  
!          if Has_Aspect (Pid, Aspect_Exclusive_Functions)
!            and then
!              (No (Find_Value_Of_Aspect (Pid, Aspect_Exclusive_Functions))
!                or else
!                  Is_True (Static_Boolean (Find_Value_Of_Aspect
!                    (Pid, Aspect_Exclusive_Functions))))
!          then
              Lock_Kind := RE_Lock;
           else
              Lock_Kind := RE_Lock_Read_Only;
--- 3889,3895 ----
                  Expression => New_Occurrence_Of (R, Loc));
           end if;
  
!          if Has_Enabled_Aspect (Pid, Aspect_Exclusive_Functions) then
              Lock_Kind := RE_Lock;
           else
              Lock_Kind := RE_Lock_Read_Only;
*************** package body Exp_Ch9 is
*** 3856,3871 ****
           Lock_Kind := RE_Lock;
        end if;
  
-       --  Wrap call in block that will be covered by an at_end handler
- 
-       if Might_Raise then
-          Unprot_Call :=
-            Make_Block_Statement (Loc,
-              Handled_Statement_Sequence =>
-                Make_Handled_Sequence_Of_Statements (Loc,
-                  Statements => New_List (Unprot_Call)));
-       end if;
- 
        --  Make the protected subprogram body. This locks the protected
        --  object and calls the unprotected version of the subprogram.
  
--- 3904,3909 ----
*************** package body Exp_Ch9 is
*** 3896,3913 ****
            Name                   => Lock_Name,
            Parameter_Associations => New_List (Object_Parm));
  
!       if Abort_Allowed then
!          Stmts := New_List (
!            Build_Runtime_Call (Loc, RE_Abort_Defer),
!            Lock_Stmt);
! 
!       else
!          Stmts := New_List (Lock_Stmt);
!       end if;
  
        if Might_Raise then
           Append (Unprot_Call, Stmts);
        else
           if Nkind (Op_Spec) = N_Function_Specification then
              Pre_Stmts := Stmts;
              Stmts     := Empty_List;
--- 3934,3957 ----
            Name                   => Lock_Name,
            Parameter_Associations => New_List (Object_Parm));
  
!       Stmts := (if Abort_Allowed then
!                   New_List (Build_Runtime_Call (Loc, RE_Abort_Defer))
!                 else
!                   New_List);
  
        if Might_Raise then
+          Unprot_Call := Wrap_Unprotected_Call
+            (Unprot_Call, Pid, Op_Spec, Loc);
+ 
+          Unprot_Call :=
+            Make_Block_Statement (Loc,
+              Handled_Statement_Sequence =>
+                Make_Handled_Sequence_Of_Statements (Loc,
+                  Statements => New_List (Lock_Stmt, Unprot_Call)));
+ 
           Append (Unprot_Call, Stmts);
        else
+          Append (Lock_Stmt, Stmts);
           if Nkind (Op_Spec) = N_Function_Specification then
              Pre_Stmts := Stmts;
              Stmts     := Empty_List;
*************** package body Exp_Ch9 is
*** 4029,4096 ****
        Loc      : Source_Ptr;
        Stmts    : List_Id)
     is
!       Nam : Node_Id;
! 
     begin
!       --  If the associated protected object has entries, a protected
!       --  procedure has to service entry queues. In this case generate:
! 
!       --    Service_Entries (_object._object'Access);
! 
!       if Nkind (Op_Spec) = N_Procedure_Specification
!         and then Has_Entries (Conc_Typ)
!       then
!          case Corresponding_Runtime_Package (Conc_Typ) is
!             when System_Tasking_Protected_Objects_Entries =>
!                Nam := New_Occurrence_Of (RTE (RE_Service_Entries), Loc);
! 
!             when System_Tasking_Protected_Objects_Single_Entry =>
!                Nam := New_Occurrence_Of (RTE (RE_Service_Entry), Loc);
! 
!             when others =>
!                raise Program_Error;
!          end case;
! 
!          Append_To (Stmts,
!            Make_Procedure_Call_Statement (Loc,
!              Name                   => Nam,
!              Parameter_Associations => New_List (
!                Make_Attribute_Reference (Loc,
!                  Prefix         =>
!                    Make_Selected_Component (Loc,
!                      Prefix        => Make_Identifier (Loc, Name_uObject),
!                      Selector_Name => Make_Identifier (Loc, Name_uObject)),
!                  Attribute_Name => Name_Unchecked_Access))));
! 
!       else
!          --  Generate:
!          --    Unlock (_object._object'Access);
! 
!          case Corresponding_Runtime_Package (Conc_Typ) is
!             when System_Tasking_Protected_Objects_Entries =>
!                Nam := New_Occurrence_Of (RTE (RE_Unlock_Entries), Loc);
! 
!             when System_Tasking_Protected_Objects_Single_Entry =>
!                Nam := New_Occurrence_Of (RTE (RE_Unlock_Entry), Loc);
! 
!             when System_Tasking_Protected_Objects =>
!                Nam := New_Occurrence_Of (RTE (RE_Unlock), Loc);
! 
!             when others =>
!                raise Program_Error;
!          end case;
! 
!          Append_To (Stmts,
!            Make_Procedure_Call_Statement (Loc,
!              Name                   => Nam,
!              Parameter_Associations => New_List (
!                Make_Attribute_Reference (Loc,
!                  Prefix         =>
!                    Make_Selected_Component (Loc,
!                      Prefix        => Make_Identifier (Loc, Name_uObject),
!                      Selector_Name => Make_Identifier (Loc, Name_uObject)),
!                  Attribute_Name => Name_Unchecked_Access))));
!       end if;
  
        --  Generate:
        --    Abort_Undefer;
--- 4073,4082 ----
        Loc      : Source_Ptr;
        Stmts    : List_Id)
     is
!       Unlock_Stmt : constant N_Procedure_Call_Statement_Id :=
!         Make_Unlock_Statement (Conc_Typ, Op_Spec, Loc);
     begin
!       Append_To (Stmts, Unlock_Stmt);
  
        --  Generate:
        --    Abort_Undefer;
*************** package body Exp_Ch9 is
*** 4796,4865 ****
     -------------------------------
  
     procedure Build_Task_Allocate_Block
-      (Actions : List_Id;
-       N       : Node_Id;
-       Args    : List_Id)
-    is
-       T      : constant Entity_Id  := Entity (Expression (N));
-       Init   : constant Entity_Id  := Base_Init_Proc (T);
-       Loc    : constant Source_Ptr := Sloc (N);
-       Chain  : constant Entity_Id  :=
-                  Make_Defining_Identifier (Loc, Name_uChain);
-       Blkent : constant Entity_Id  := Make_Temporary (Loc, 'A');
-       Block  : Node_Id;
- 
-    begin
-       Block :=
-         Make_Block_Statement (Loc,
-           Identifier   => New_Occurrence_Of (Blkent, Loc),
-           Declarations => New_List (
- 
-             --  _Chain : Activation_Chain;
- 
-             Make_Object_Declaration (Loc,
-               Defining_Identifier => Chain,
-               Aliased_Present     => True,
-               Object_Definition   =>
-                 New_Occurrence_Of (RTE (RE_Activation_Chain), Loc))),
- 
-           Handled_Statement_Sequence =>
-             Make_Handled_Sequence_Of_Statements (Loc,
- 
-               Statements => New_List (
- 
-                 --  Init (Args);
- 
-                 Make_Procedure_Call_Statement (Loc,
-                   Name                   => New_Occurrence_Of (Init, Loc),
-                   Parameter_Associations => Args),
- 
-                 --  Activate_Tasks (_Chain);
- 
-                 Make_Procedure_Call_Statement (Loc,
-                   Name => New_Occurrence_Of (RTE (RE_Activate_Tasks), Loc),
-                   Parameter_Associations => New_List (
-                     Make_Attribute_Reference (Loc,
-                       Prefix         => New_Occurrence_Of (Chain, Loc),
-                       Attribute_Name => Name_Unchecked_Access))))),
- 
-           Has_Created_Identifier => True,
-           Is_Task_Allocation_Block => True);
- 
-       Append_To (Actions,
-         Make_Implicit_Label_Declaration (Loc,
-           Defining_Identifier => Blkent,
-           Label_Construct     => Block));
- 
-       Append_To (Actions, Block);
- 
-       Set_Activation_Chain_Entity (Block, Chain);
-    end Build_Task_Allocate_Block;
- 
-    -----------------------------------------------
-    -- Build_Task_Allocate_Block_With_Init_Stmts --
-    -----------------------------------------------
- 
-    procedure Build_Task_Allocate_Block_With_Init_Stmts
       (Actions    : List_Id;
        N          : Node_Id;
        Init_Stmts : List_Id)
--- 4782,4787 ----
*************** package body Exp_Ch9 is
*** 4884,4890 ****
            Identifier => New_Occurrence_Of (Blkent, Loc),
            Declarations => New_List (
  
!             --  _Chain : Activation_Chain;
  
              Make_Object_Declaration (Loc,
                Defining_Identifier => Chain,
--- 4806,4812 ----
            Identifier => New_Occurrence_Of (Blkent, Loc),
            Declarations => New_List (
  
!             --  _Chain : aliased Activation_Chain;
  
              Make_Object_Declaration (Loc,
                Defining_Identifier => Chain,
*************** package body Exp_Ch9 is
*** 4906,4912 ****
        Append_To (Actions, Block);
  
        Set_Activation_Chain_Entity (Block, Chain);
!    end Build_Task_Allocate_Block_With_Init_Stmts;
  
     -----------------------------------
     -- Build_Task_Proc_Specification --
--- 4828,4834 ----
        Append_To (Actions, Block);
  
        Set_Activation_Chain_Entity (Block, Chain);
!    end Build_Task_Allocate_Block;
  
     -----------------------------------
     -- Build_Task_Proc_Specification --
*************** package body Exp_Ch9 is
*** 5044,5050 ****
  
                      Component_Definition =>
                        Make_Component_Definition (Loc,
-                         Aliased_Present    => False,
                          Subtype_Indication =>
                            New_Occurrence_Of (Standard_Character, Loc))));
              end;
--- 4966,4971 ----
*************** package body Exp_Ch9 is
*** 5060,5066 ****
  
                  Component_Definition =>
                    Make_Component_Definition (Loc,
-                     Aliased_Present    => False,
                      Subtype_Indication =>
                        Make_Subtype_Indication (Loc,
                          Subtype_Mark =>
--- 4981,4986 ----
*************** package body Exp_Ch9 is
*** 5840,5846 ****
            Defining_Identifier  => Make_Temporary (Loc, 'P'),
            Component_Definition =>
              Make_Component_Definition (Loc,
-               Aliased_Present    => False,
                Subtype_Indication =>
                  New_Occurrence_Of (RTE (RE_Address), Loc))),
  
--- 5760,5765 ----
*************** package body Exp_Ch9 is
*** 5848,5854 ****
            Defining_Identifier  => Make_Temporary (Loc, 'S'),
            Component_Definition =>
              Make_Component_Definition (Loc,
-               Aliased_Present    => False,
                Subtype_Indication => New_Occurrence_Of (D_T2, Loc))));
  
        Decl2 :=
--- 5767,5772 ----
*************** package body Exp_Ch9 is
*** 6558,6564 ****
     --             _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --          end;
     --       exception
!    --          when Abort_Signal => Abort_Undefer;
     --       end;
  
     --       parm := P.param;
--- 6476,6482 ----
     --             _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --          end;
     --       exception
!    --          when Abort_Signal => null;
     --       end;
  
     --       parm := P.param;
*************** package body Exp_Ch9 is
*** 6621,6627 ****
     --           _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --        end;
     --     exception
!    --        when Abort_Signal => Abort_Undefer;
     --     end;
  
     --     if not Cancelled (Bnn) then
--- 6539,6545 ----
     --           _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --        end;
     --     exception
!    --        when Abort_Signal => null;
     --     end;
  
     --     if not Cancelled (Bnn) then
*************** package body Exp_Ch9 is
*** 6702,6708 ****
     --                   _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --                end;
     --             exception
!    --                when Abort_Signal => Abort_Undefer;
     --             end;
  
     --             if not Cancelled (Bnn) then
--- 6620,6626 ----
     --                   _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --                end;
     --             exception
!    --                when Abort_Signal => null;
     --             end;
  
     --             if not Cancelled (Bnn) then
*************** package body Exp_Ch9 is
*** 6735,6741 ****
     --                      _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --                   end;
     --                exception
!    --                   when Abort_Signal => Abort_Undefer;
     --                end;
  
     --                if not U then
--- 6653,6659 ----
     --                      _clean;  --  Added by Exp_Ch7.Expand_Cleanup_Actions
     --                   end;
     --                exception
!    --                   when Abort_Signal => null;
     --                end;
  
     --                if not U then
*************** package body Exp_Ch9 is
*** 6769,6775 ****
        Abrt : constant Node_Id    := Abortable_Part (N);
        Trig : constant Node_Id    := Triggering_Alternative (N);
  
-       Abort_Block_Ent   : Entity_Id;
        Abortable_Block   : Node_Id;
        Actuals           : List_Id;
        Astats            : List_Id;
--- 6687,6692 ----
*************** package body Exp_Ch9 is
*** 6790,6796 ****
        Ename             : Node_Id;
        Enqueue_Call      : Node_Id;
        Formals           : List_Id;
-       Hdle              : List_Id;
        Index             : Node_Id;
        Lim_Typ_Stmts     : List_Id;
        N_Orig            : Node_Id;
--- 6707,6712 ----
*************** package body Exp_Ch9 is
*** 7044,7060 ****
              --    begin
              --       Cleanup_Block
              --    exception
!             --       when Abort_Signal => Abort_Undefer;
              --    end;
  
!             Abort_Block_Ent := Make_Temporary (Loc, 'A');
!             ProtE_Stmts :=
!               New_List (
!                 Make_Implicit_Label_Declaration (Loc,
!                   Defining_Identifier => Abort_Block_Ent),
! 
!                 Build_Abort_Block
!                   (Loc, Abort_Block_Ent, Cleanup_Block_Ent, Cleanup_Block));
  
              --  Generate:
              --    if not Cancelled (Bnn) then
--- 6960,6970 ----
              --    begin
              --       Cleanup_Block
              --    exception
!             --       when Abort_Signal => null;
              --    end;
  
!             ProtE_Stmts := New_List (
!               Build_Abort_Block (Loc, Cleanup_Block_Ent, Cleanup_Block));
  
              --  Generate:
              --    if not Cancelled (Bnn) then
*************** package body Exp_Ch9 is
*** 7157,7174 ****
              --    begin
              --       Cleanup_Block
              --    exception
!             --       when Abort_Signal => Abort_Undefer;
              --    end;
  
-             Abort_Block_Ent := Make_Temporary (Loc, 'A');
- 
              Append_To (TaskE_Stmts,
!               Make_Implicit_Label_Declaration (Loc,
!                 Defining_Identifier => Abort_Block_Ent));
! 
!             Append_To (TaskE_Stmts,
!               Build_Abort_Block
!                 (Loc, Abort_Block_Ent, Cleanup_Block_Ent, Cleanup_Block));
  
              --  Generate:
              --    if not T then
--- 7067,7077 ----
              --    begin
              --       Cleanup_Block
              --    exception
!             --       when Abort_Signal => null;
              --    end;
  
              Append_To (TaskE_Stmts,
!               Build_Abort_Block (Loc, Cleanup_Block_Ent, Cleanup_Block));
  
              --  Generate:
              --    if not T then
*************** package body Exp_Ch9 is
*** 7313,7322 ****
                  Prefix         => New_Occurrence_Of (Dblock_Ent, Loc),
                  Attribute_Name => Name_Unchecked_Access));
  
-             --  Create the inner block to protect the abortable part
- 
-             Hdle := New_List (Build_Abort_Block_Handler (Loc));
- 
              Prepend_To (Astats, Build_Runtime_Call (Loc, RE_Abort_Undefer));
  
              Abortable_Block :=
--- 7216,7221 ----
*************** package body Exp_Ch9 is
*** 7328,7333 ****
--- 7227,7244 ----
                  Has_Created_Identifier     => True,
                  Is_Asynchronous_Call_Block => True);
  
+             --  Wrap the abortable block in an exception handling block
+ 
+             --  Generate:
+             --    begin
+             --       Abortable_Block
+             --    exception
+             --       when Abort_Signal => null;
+             --    end;
+ 
+             Stmts := New_List (
+               Build_Abort_Block (Loc, Blk_Ent, Abortable_Block));
+ 
              --  Append call to if Enqueue (When, DB'Unchecked_Access) then
  
              Rewrite (Ecall,
*************** package body Exp_Ch9 is
*** 7336,7351 ****
                    Make_Function_Call (Loc,
                      Name => Enqueue_Call,
                      Parameter_Associations => Parameter_Associations (Ecall)),
!                 Then_Statements =>
!                   New_List (Make_Block_Statement (Loc,
!                     Handled_Statement_Sequence =>
!                       Make_Handled_Sequence_Of_Statements (Loc,
!                         Statements => New_List (
!                           Make_Implicit_Label_Declaration (Loc,
!                             Defining_Identifier => Blk_Ent,
!                             Label_Construct     => Abortable_Block),
!                           Abortable_Block),
!                         Exception_Handlers => Hdle)))));
  
              Stmts := New_List (Ecall);
  
--- 7247,7253 ----
                    Make_Function_Call (Loc,
                      Name => Enqueue_Call,
                      Parameter_Associations => Parameter_Associations (Ecall)),
!                 Then_Statements => Stmts));
  
              Stmts := New_List (Ecall);
  
*************** package body Exp_Ch9 is
*** 7463,7493 ****
               Has_Created_Identifier => True,
               Is_Asynchronous_Call_Block => True);
  
!          Stmts := New_List (
!            Make_Block_Statement (Loc,
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (
!                    Make_Implicit_Label_Declaration (Loc,
!                      Defining_Identifier => Blk_Ent,
!                      Label_Construct     => Abortable_Block),
!                    Abortable_Block),
! 
!                --  exception
! 
!                  Exception_Handlers => New_List (
!                    Make_Implicit_Exception_Handler (Loc,
  
!                --  when Abort_Signal =>
!                --     null;
  
!                      Exception_Choices =>
!                        New_List (New_Occurrence_Of (Stand.Abort_Signal, Loc)),
!                      Statements => New_List (Make_Null_Statement (Loc)))))),
  
!          --  if not Cancelled (Bnn) then
!          --     triggered statements
!          --  end if;
  
             Make_Implicit_If_Statement (N,
               Condition => Make_Op_Not (Loc,
--- 7365,7385 ----
               Has_Created_Identifier => True,
               Is_Asynchronous_Call_Block => True);
  
!          --  Wrap the abortable block in an exception handling block
  
!          --  Generate:
!          --    begin
!          --       Abortable_Block
!          --    exception
!          --       when Abort_Signal => null;
!          --    end;
  
!          Stmts := New_List (
!            Build_Abort_Block (Loc, Blk_Ent, Abortable_Block),
  
!            --  if not Cancelled (Bnn) then
!            --     triggered statements
!            --  end if;
  
             Make_Implicit_If_Statement (N,
               Condition => Make_Op_Not (Loc,
*************** package body Exp_Ch9 is
*** 7543,7552 ****
  
           Call := Stmt;
  
-          --  Create the inner block to protect the abortable part
- 
-          Hdle := New_List (Build_Abort_Block_Handler (Loc));
- 
           if Abort_Allowed then
              Prepend_To (Astats, Build_Runtime_Call (Loc, RE_Abort_Undefer));
           end if;
--- 7435,7440 ----
*************** package body Exp_Ch9 is
*** 7559,7574 ****
               Has_Created_Identifier     => True,
               Is_Asynchronous_Call_Block => True);
  
           Insert_After (Call,
!            Make_Block_Statement (Loc,
!              Handled_Statement_Sequence =>
!                Make_Handled_Sequence_Of_Statements (Loc,
!                  Statements => New_List (
!                    Make_Implicit_Label_Declaration (Loc,
!                      Defining_Identifier => Blk_Ent,
!                      Label_Construct     => Abortable_Block),
!                    Abortable_Block),
!                  Exception_Handlers => Hdle)));
  
           --  Create new call statement
  
--- 7447,7463 ----
               Has_Created_Identifier     => True,
               Is_Asynchronous_Call_Block => True);
  
+          --  Wrap the abortable block in an exception handling block
+ 
+          --  Generate:
+          --    begin
+          --       Abortable_Block
+          --    exception
+          --       when Abort_Signal => null;
+          --    end;
+ 
           Insert_After (Call,
!            Build_Abort_Block (Loc, Blk_Ent, Abortable_Block));
  
           --  Create new call statement
  
*************** package body Exp_Ch9 is
*** 8258,8264 ****
                  Defining_Identifier => Component,
                  Component_Definition =>
                    Make_Component_Definition (Loc,
-                     Aliased_Present    => False,
                      Subtype_Indication => New_Occurrence_Of (Ctype, Loc))));
  
              Next_Formal_With_Extras (Formal);
--- 8147,8152 ----
*************** package body Exp_Ch9 is
*** 8428,8433 ****
--- 8316,8326 ----
        --     <protected-procedure-name>P (Param1 .. ParamN);
        --  end <protected-procedure-name>
  
+       procedure Unanalyze_Use_Clauses (Op_Body : Node_Id);
+       --  Use and Use_Type clauses in the tree rooted at Op_Body
+       --  that have already been analyzed need to be marked as unanalyzed
+       --  because otherwise they will be ineffective in their new context.
+ 
        ---------------------------------------
        -- Build_Dispatching_Subprogram_Body --
        ---------------------------------------
*************** package body Exp_Ch9 is
*** 8489,8494 ****
--- 8382,8412 ----
                 Make_Handled_Sequence_Of_Statements (Loc, Stmts));
        end Build_Dispatching_Subprogram_Body;
  
+       ---------------------------
+       -- Unanalyze_Use_Clauses --
+       ---------------------------
+ 
+       procedure Unanalyze_Use_Clauses (Op_Body : Node_Id) is
+ 
+          function Process_One_Node (N : Node_Id) return Traverse_Result;
+          --  If N is a use or use type node then unanalyze it.
+ 
+          procedure Process_Tree is new Traverse_Proc (Process_One_Node);
+ 
+          function Process_One_Node (N : Node_Id) return Traverse_Result is
+          begin
+             if Nkind (N) in N_Use_Package_Clause | N_Use_Type_Clause then
+                Set_Analyzed (N, False);
+             end if;
+             return OK; --  return Skip if Is_Analyzed (N) ?
+          end Process_One_Node;
+ 
+       --  Start of processing for Analyze_Use_Clauses
+ 
+       begin
+          Process_Tree (Op_Body);
+       end Unanalyze_Use_Clauses;
+ 
     --  Start of processing for Expand_N_Protected_Body
  
     begin
*************** package body Exp_Ch9 is
*** 8538,8543 ****
--- 8456,8472 ----
                         Build_Unprotected_Subprogram_Body (Op_Body, Pid);
                    end if;
  
+                   --  Ugly.
+                   --  We are going to perform name resolution in analysis of
+                   --  this new body, but any already-analyzed use clauses
+                   --  will be ineffective in this new context unless we take
+                   --  action to "reactivate" them. So that's what we do here.
+                   --  We arguably shouldn't be performing name resolution
+                   --  here (just like we shouldn't perform name resolution in
+                   --  an expanded instance body), but that's a larger issue.
+ 
+                   Unanalyze_Use_Clauses (New_Op_Body);
+ 
                    Insert_After (Current_Node, New_Op_Body);
                    Current_Node := New_Op_Body;
                    Analyze (New_Op_Body);
*************** package body Exp_Ch9 is
*** 9142,9155 ****
                 if Present (Subtype_Indication (Old_Comp)) then
                    New_Comp :=
                      Make_Component_Definition (Sloc (Oent),
-                       Aliased_Present    => False,
                        Subtype_Indication =>
                          New_Copy_Tree
                            (Subtype_Indication (Old_Comp), Discr_Map));
                 else
                    New_Comp :=
                      Make_Component_Definition (Sloc (Oent),
-                       Aliased_Present   => False,
                        Access_Definition =>
                          New_Copy_Tree
                            (Access_Definition (Old_Comp), Discr_Map));
--- 9071,9082 ----
*************** package body Exp_Ch9 is
*** 9316,9322 ****
           end;
  
           --  Put the _Object component after the private component so that it
!          --  be finalized early as required by 9.4 (20)
  
           Append_To (Cdecls, Object_Comp);
        end if;
--- 9243,9249 ----
           end;
  
           --  Put the _Object component after the private component so that it
!          --  be finalized early as required by 9.4(20).
  
           Append_To (Cdecls, Object_Comp);
        end if;
*************** package body Exp_Ch9 is
*** 9328,9333 ****
--- 9255,9279 ----
  
        Analyze (Rec_Decl, Suppress => All_Checks);
  
+       --  Analyze aspects of the corresponding record type. They may have been
+       --  propagated to it and its analysis is required to add the pragma (see
+       --  propagation of aspect First_Controlling_Parameter in the subprogram
+       --  Build_Corresponding_Record).
+ 
+       if Has_Aspects (Rec_Decl) then
+          Analyze_Aspect_Specifications (Rec_Decl, Rec_Id);
+ 
+       --  Handle aspects that may have been implicitly inherited and must be
+       --  explicitly propagated to the corresponding record type. This applies
+       --  specifically when the First_Controlling_Parameter aspect has been
+       --  implicitly inherited from an implemented interface.
+ 
+       elsif Present (Interface_List (Parent (Prot_Typ)))
+         and then Has_First_Controlling_Parameter_Aspect (Prot_Typ)
+       then
+          Set_Has_First_Controlling_Parameter_Aspect (Rec_Id);
+       end if;
+ 
        --  Ada 2005 (AI-345): Construct the primitive entry wrappers before
        --  the corresponding record is frozen. If any wrappers are generated,
        --  Current_Node is updated accordingly.
*************** package body Exp_Ch9 is
*** 9470,9476 ****
        end loop;
  
        --  Create the declaration of an array object which contains the values
!       --  of aspect/pragma Max_Queue_Length for all entries of the protected
        --  type. This object is later passed to the appropriate protected object
        --  initialization routine.
  
--- 9416,9423 ----
        end loop;
  
        --  Create the declaration of an array object which contains the values
!       --  of any aspect/pragma Max_Queue_Length, Max_Entry_Queue_Length or
!       --  Max_EntryQueue_Depth for all entries of the protected
        --  type. This object is later passed to the appropriate protected object
        --  initialization routine.
  
*************** package body Exp_Ch9 is
*** 9487,9493 ****
              Need_Array : Boolean := False;
  
           begin
!             --  First check if there is any Max_Queue_Length pragma
  
              Item := First_Entity (Prot_Typ);
              while Present (Item) loop
--- 9434,9440 ----
              Need_Array : Boolean := False;
  
           begin
!             --  First check if there is any Max_[Entry_]Queue_Length pragma
  
              Item := First_Entity (Prot_Typ);
              while Present (Item) loop
*************** package body Exp_Ch9 is
*** 11868,11876 ****
            Defining_Identifier =>
              Make_Defining_Identifier (Sloc (Tasktyp),
                Chars => New_External_Name (Tasknm, 'E')),
!           Aliased_Present      => True,
!           Object_Definition    => New_Occurrence_Of (Standard_Boolean, Loc),
!           Expression           => New_Occurrence_Of (Standard_False, Loc));
  
        Insert_After (N, Elab_Decl);
  
--- 11815,11823 ----
            Defining_Identifier =>
              Make_Defining_Identifier (Sloc (Tasktyp),
                Chars => New_External_Name (Tasknm, 'E')),
!           Aliased_Present     => True,
!           Object_Definition   => New_Occurrence_Of (Standard_Boolean, Loc),
!           Expression          => New_Occurrence_Of (Standard_False, Loc));
  
        Insert_After (N, Elab_Decl);
  
*************** package body Exp_Ch9 is
*** 11924,11930 ****
              Make_Defining_Identifier (Loc, Name_uTask_Id),
            Component_Definition =>
              Make_Component_Definition (Loc,
-               Aliased_Present    => False,
                Subtype_Indication => New_Occurrence_Of (RTE (RO_ST_Task_Id),
                                      Loc))));
  
--- 11871,11876 ----
*************** package body Exp_Ch9 is
*** 11989,11994 ****
--- 11935,11969 ----
                 else
                    Task_Size := New_Copy_Tree (Expr_N);
                 end if;
+ 
+                --  On targets with a preallocated task stack the minimum stack
+                --  size is defined in System.Parameters. Since we do not have
+                --  access to the value of that definition here we replace the
+                --  static task size with the static expression
+                --  Size_Type'Max (Task_Size, Minimum_Stack_Size).
+                --  The compiler will evaluate this expression and replace the
+                --  task size with the Minimum_Stack_Size if needed. It is
+                --  important for this expression to be static to avoid
+                --  introducing implicit heap allocations that would break code
+                --  with the No_Implicit_Heap_Allocations restriction.
+                --  On some runtimes the allocation of the minimum stack size is
+                --  ensured by a call to Adjust_Storage_Size. We cannot use this
+                --  function here as it is not static and evaluated at runtime.
+                --  Note: This expression may not appear in the expanded code
+                --  as the compiler evaluates this expression before code
+                --  generation.
+ 
+                Task_Size :=
+                  Convert_To
+                    (RTE (RE_Storage_Offset),
+                     Make_Attribute_Reference (Loc,
+                       Attribute_Name => Name_Max,
+                       Prefix         =>
+                         New_Occurrence_Of
+                           (RTE (RE_Size_Type), Loc), Expressions => New_List (
+                              Convert_To (RTE (RE_Size_Type), Task_Size),
+                              New_Occurrence_Of (RTE (RE_Minimum_Stack_Size),
+                                Loc))));
              end;
  
           else
*************** package body Exp_Ch9 is
*** 12091,12097 ****
                 Make_Defining_Identifier (Loc, Name_uPriority),
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (Standard_Integer, Loc))));
        end if;
--- 12066,12071 ----
*************** package body Exp_Ch9 is
*** 12101,12112 ****
        if Present (Taskdef) and then Has_Storage_Size_Pragma (Taskdef) then
           Append_To (Cdecls,
             Make_Component_Declaration (Loc,
!              Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_uSize),
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Size_Type), Loc)),
  
--- 12075,12085 ----
        if Present (Taskdef) and then Has_Storage_Size_Pragma (Taskdef) then
           Append_To (Cdecls,
             Make_Component_Declaration (Loc,
!              Defining_Identifier  =>
                 Make_Defining_Identifier (Loc, Name_uSize),
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Size_Type), Loc)),
  
*************** package body Exp_Ch9 is
*** 12131,12137 ****
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Size_Type), Loc))));
        end if;
--- 12104,12109 ----
*************** package body Exp_Ch9 is
*** 12146,12152 ****
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Task_Info_Type), Loc)),
  
--- 12118,12123 ----
*************** package body Exp_Ch9 is
*** 12167,12173 ****
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_CPU_Range), Loc))));
        end if;
--- 12138,12143 ----
*************** package body Exp_Ch9 is
*** 12189,12195 ****
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Time_Span), Loc)),
  
--- 12159,12164 ----
*************** package body Exp_Ch9 is
*** 12218,12224 ****
  
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of
                       (RTE (RE_Dispatching_Domain_Access), Loc))));
--- 12187,12192 ----
*************** package body Exp_Ch9 is
*** 12232,12237 ****
--- 12200,12224 ----
  
        Analyze (Rec_Decl);
  
+       --  Analyze aspects of the corresponding record type. They may have been
+       --  propagated to it and its analysis is required to add the pragma (see
+       --  propagation of aspect First_Controlling_Parameter in the subprogram
+       --  Build_Corresponding_Record).
+ 
+       if Has_Aspects (Rec_Decl) then
+          Analyze_Aspect_Specifications (Rec_Decl, Rec_Ent);
+ 
+       --  Handle aspects that may have been implicitly inherited and must be
+       --  explicitly propagated to the corresponding record type. This applies
+       --  specifically when the First_Controlling_Parameter aspect has been
+       --  implicitly inherited from an implemented interface.
+ 
+       elsif Present (Interface_List (Parent (Tasktyp)))
+         and then Has_First_Controlling_Parameter_Aspect (Tasktyp)
+       then
+          Set_Has_First_Controlling_Parameter_Aspect (Rec_Ent);
+       end if;
+ 
        --  Create the declaration of the task body procedure
  
        Proc_Spec := Build_Task_Proc_Specification (Tasktyp);
*************** package body Exp_Ch9 is
*** 14558,14563 ****
--- 14545,14610 ----
            Parameter_Associations => Args);
     end Make_Task_Create_Call;
  
+    ---------------------------
+    -- Make_Unlock_Statement --
+    ---------------------------
+ 
+    function Make_Unlock_Statement
+      (Prot_Type : E_Protected_Type_Id;
+       Op_Spec   : N_Subprogram_Specification_Id;
+       Loc       : Source_Ptr) return N_Procedure_Call_Statement_Id
+    is
+       Nam : constant N_Identifier_Id :=
+         --  If the associated protected object has entries, the expanded
+         --  exclusive protected operation has to service entry queues.
+ 
+         (if (Nkind (Op_Spec) = N_Procedure_Specification
+               or else
+                 (Nkind (Op_Spec) = N_Function_Specification
+                   and then
+                  Has_Enabled_Aspect
+                    (Prot_Type, Aspect_Exclusive_Functions)))
+            and then Has_Entries (Prot_Type)
+          then
+            (case Corresponding_Runtime_Package (Prot_Type) is
+                when System_Tasking_Protected_Objects_Entries =>
+                  New_Occurrence_Of (RTE (RE_Service_Entries), Loc),
+ 
+                when System_Tasking_Protected_Objects_Single_Entry =>
+                  New_Occurrence_Of (RTE (RE_Service_Entry), Loc),
+ 
+                when others =>
+                  raise Program_Error)
+ 
+          --  Otherwise, unlocking the protected object is sufficient.
+ 
+          else
+            (case Corresponding_Runtime_Package (Prot_Type) is
+                when System_Tasking_Protected_Objects_Entries =>
+                  New_Occurrence_Of (RTE (RE_Unlock_Entries), Loc),
+ 
+                when System_Tasking_Protected_Objects_Single_Entry =>
+                  New_Occurrence_Of (RTE (RE_Unlock_Entry), Loc),
+ 
+                when System_Tasking_Protected_Objects =>
+                  New_Occurrence_Of (RTE (RE_Unlock), Loc),
+ 
+                when others =>
+                  raise Program_Error));
+    begin
+       return Make_Procedure_Call_Statement
+         (Loc,
+          Name                   => Nam,
+          Parameter_Associations =>
+            New_List (
+              Make_Attribute_Reference (Loc,
+                Prefix         =>
+                  Make_Selected_Component (Loc,
+                    Prefix        => Make_Identifier (Loc, Name_uObject),
+                    Selector_Name => Make_Identifier (Loc, Name_uObject)),
+                Attribute_Name => Name_Unchecked_Access)));
+    end Make_Unlock_Statement;
+ 
     ------------------------------
     -- Next_Protected_Operation --
     ------------------------------
*************** package body Exp_Ch9 is
*** 14805,14816 ****
--- 14852,14885 ----
              Set_Scope (Entity (Identifier (N)), E);
              return Skip;
  
+          --  Reset scope for object declaration which scope is the task entry.
+          --
+          --  Also look inside the declaration (in particular in the expression
+          --  if present) because we may have expanded to something like:
+ 
+          --  O1 : Typ := do
+          --    TMP1 : OTyp := ...;
+          --    ...
+          --    in TMP1;
+ 
+          --  And the scope for TMP1 is Scope (O1). We need to look inside the
+          --  declaration to also reset such scope.
+ 
+          elsif Nkind (N) = N_Object_Declaration then
+             if Present (Scope (Defining_Entity (N)))
+               and then Ekind (Scope (Defining_Entity (N)))
+                 in E_Entry | E_Entry_Family
+             then
+                Set_Scope (Defining_Entity (N), E);
+             end if;
+ 
           --  Ditto for a package declaration or a full type declaration, etc.
  
           elsif (Nkind (N) = N_Package_Declaration
                   and then N /= Specification (N))
             or else Nkind (N) in N_Declaration
             or else Nkind (N) in N_Renaming_Declaration
+            or else Nkind (N) in N_Implicit_Label_Declaration
           then
              Set_Scope (Defining_Entity (N), E);
              return Skip;
*************** package body Exp_Ch9 is
*** 14924,14927 ****
--- 14993,15041 ----
        end case;
     end Trivial_Accept_OK;
  
+    ---------------------------
+    -- Wrap_Unprotected_Call --
+    ---------------------------
+ 
+    function Wrap_Unprotected_Call
+      (Call      : Node_Id;
+       Prot_Type : E_Protected_Type_Id;
+       Op_Spec   : N_Subprogram_Specification_Id;
+       Loc       : Source_Ptr) return N_Block_Statement_Id
+    is
+       Body_Id : constant N_Defining_Identifier_Id :=
+         Make_Defining_Identifier (Loc, Name_Find ("_unlock"));
+ 
+       Unlock_Body : constant N_Subprogram_Body_Id :=
+         Make_Subprogram_Body
+           (Loc,
+            Specification =>
+              Make_Procedure_Specification (Loc, Defining_Unit_Name => Body_Id),
+            Handled_Statement_Sequence =>
+              Make_Handled_Sequence_Of_Statements
+                (Loc, Statements => New_List
+                   (Make_Unlock_Statement (Prot_Type, Op_Spec, Loc))));
+ 
+       Decls : constant List_Id := New_List (Unlock_Body);
+ 
+       HSS : constant N_Handled_Sequence_Of_Statements_Id :=
+         Make_Handled_Sequence_Of_Statements
+           (Loc, Statements => New_List (Call),
+            At_End_Proc => New_Occurrence_Of (Body_Id, Loc));
+ 
+       Block_Statement : constant N_Block_Statement_Id :=
+         Make_Block_Statement
+           (Loc, Declarations => Decls,
+            Handled_Statement_Sequence =>
+              HSS);
+ 
+    begin
+       if Debug_Generated_Code then
+          Set_Debug_Info_Needed (Body_Id);
+       end if;
+ 
+       Set_Acts_As_Spec (Unlock_Body);
+ 
+       return Block_Statement;
+    end Wrap_Unprotected_Call;
  end Exp_Ch9;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_ch9.ads gcc-15.1.0/gcc/ada/exp_ch9.ads
*** gcc-14.2.0/gcc/ada/exp_ch9.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_ch9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch9 is
*** 119,127 ****
     --  the start of the statements of the activator.
  
     procedure Build_Task_Allocate_Block
!      (Actions : List_Id;
!       N       : Node_Id;
!       Args    : List_Id);
     --  This routine is used in the case of allocators where the designated type
     --  is a task or contains tasks. In this case, the normal initialize call
     --  is replaced by:
--- 119,127 ----
     --  the start of the statements of the activator.
  
     procedure Build_Task_Allocate_Block
!      (Actions    : List_Id;
!       N          : Node_Id;
!       Init_Stmts : List_Id);
     --  This routine is used in the case of allocators where the designated type
     --  is a task or contains tasks. In this case, the normal initialize call
     --  is replaced by:
*************** package Exp_Ch9 is
*** 136,142 ****
     --       end;
     --
     --    begin
!    --       Init (Args);
     --       Activate_Tasks (_Chain);
     --    at end
     --       _Expunge;
--- 136,142 ----
     --       end;
     --
     --    begin
!    --       Init_Stmts;
     --       Activate_Tasks (_Chain);
     --    at end
     --       _Expunge;
*************** package Exp_Ch9 is
*** 150,166 ****
     --  Master_Id of the access type as the _Master parameter, and _Chain
     --  (defined above) as the _Chain parameter.
  
-    procedure Build_Task_Allocate_Block_With_Init_Stmts
-      (Actions    : List_Id;
-       N          : Node_Id;
-       Init_Stmts : List_Id);
-    --  Ada 2005 (AI-287): Similar to previous routine, but used to expand
-    --  allocated aggregates with default initialized components. Init_Stmts
-    --  contains the list of statements required to initialize the allocated
-    --  aggregate. It replaces the call to Init (Args) done by
-    --  Build_Task_Allocate_Block. Also used to expand allocators containing
-    --  build-in-place function calls.
- 
     function Build_Wrapper_Spec
       (Subp_Id : Entity_Id;
        Obj_Typ : Entity_Id;
--- 150,155 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_code.adb gcc-15.1.0/gcc/ada/exp_code.adb
*** gcc-14.2.0/gcc/ada/exp_code.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_code.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_code.ads gcc-15.1.0/gcc/ada/exp_code.ads
*** gcc-14.2.0/gcc/ada/exp_code.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_code.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_dbug.adb gcc-15.1.0/gcc/ada/exp_dbug.adb
*** gcc-14.2.0/gcc/ada/exp_dbug.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_dbug.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Dbug is
*** 1061,1068 ****
        if Ancestor_Typ /= Typ then
           declare
              Len      : constant Natural := Name_Len;
!             Save_Str : constant String (1 .. Name_Len)
!                          := Name_Buffer (1 .. Name_Len);
           begin
              Get_External_Name (Ancestor_Typ);
  
--- 1061,1068 ----
        if Ancestor_Typ /= Typ then
           declare
              Len      : constant Natural := Name_Len;
!             Save_Str : constant String (1 .. Name_Len) :=
!               Name_Buffer (1 .. Name_Len);
           begin
              Get_External_Name (Ancestor_Typ);
  
*************** package body Exp_Dbug is
*** 1504,1555 ****
           Name_Len := Full_Qualify_Len;
           Name_Buffer (1 .. Name_Len) := Full_Qualify_Name (1 .. Name_Len);
  
-       --  Qualification needed for enumeration literals when generating C code
-       --  (to simplify their management in the backend).
- 
-       elsif Modify_Tree_For_C
-         and then Ekind (Ent) = E_Enumeration_Literal
-         and then Scope (Ultimate_Alias (Ent)) /= Standard_Standard
-       then
-          Fully_Qualify_Name (Ent);
-          Name_Len := Full_Qualify_Len;
-          Name_Buffer (1 .. Name_Len) := Full_Qualify_Name (1 .. Name_Len);
- 
        elsif Qualify_Needed (Scope (Ent)) then
           Name_Len := 0;
           Set_Entity_Name (Ent);
  
        else
           Set_Has_Qualified_Name (Ent);
- 
-          --  If a variable is hidden by a subsequent loop variable, qualify
-          --  the name of that loop variable to prevent visibility issues when
-          --  translating to C. Note that gdb probably never handled properly
-          --  this accidental hiding, given that loops are not scopes at
-          --  runtime. We also qualify a name if it hides an outer homonym,
-          --  and both are declared in blocks.
- 
-          if Modify_Tree_For_C and then Ekind (Ent) =  E_Variable then
-             if Present (Hiding_Loop_Variable (Ent)) then
-                declare
-                   Var : constant Entity_Id := Hiding_Loop_Variable (Ent);
- 
-                begin
-                   Set_Entity_Name (Var);
-                   Add_Char_To_Name_Buffer ('L');
-                   Set_Chars (Var, Name_Enter);
-                end;
- 
-             elsif Present (Homonym (Ent))
-               and then Ekind (Scope (Ent)) = E_Block
-               and then Ekind (Scope (Homonym (Ent))) = E_Block
-             then
-                Set_Entity_Name (Ent);
-                Add_Char_To_Name_Buffer ('B');
-                Set_Chars (Ent, Name_Enter);
-             end if;
-          end if;
- 
           return;
        end if;
  
--- 1504,1515 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_dbug.ads gcc-15.1.0/gcc/ada/exp_dbug.ads
*** gcc-14.2.0/gcc/ada/exp_dbug.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_dbug.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Dbug is
*** 445,465 ****
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
-    -------------------------------------
-    -- Encoding for translation into C --
-    -------------------------------------
- 
-    --  In Modify_Tree_For_C mode we must add encodings to dismabiguate cases
-    --  where Ada block structure cannot be directly translated. These cases
-    --  are as follows:
- 
-    --    a)  A loop variable may hide a homonym in an enclosing block
-    --    b)  A block-local variable may hide a homonym in an enclosing block
- 
-    --  In C these constructs are not scopes and we must distinguish the names
-    --  explicitly. In the first case we create a qualified name with the suffix
-    --  'L', in the second case with a suffix 'B'.
- 
     --------------------------------------------
     -- Subprograms for Handling Qualification --
     --------------------------------------------
--- 445,450 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_disp.adb gcc-15.1.0/gcc/ada/exp_disp.adb
*** gcc-14.2.0/gcc/ada/exp_disp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_disp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Stringt;        use Stringt;
*** 70,75 ****
--- 70,76 ----
  with Strub;          use Strub;
  with SCIL_LL;        use SCIL_LL;
  with Tbuild;         use Tbuild;
+ with Ttypes;         use Ttypes;
  
  package body Exp_Disp is
  
*************** package body Exp_Disp is
*** 416,425 ****
                 Build_Dispatch_Tables (Declarations (D));
  
              elsif Nkind (D) = N_Package_Body_Stub
!               and then Present (Library_Unit (D))
              then
                 Build_Dispatch_Tables
!                  (Declarations (Proper_Body (Unit (Library_Unit (D)))));
  
              --  Handle full type declarations and derivations of library level
              --  tagged types
--- 417,426 ----
                 Build_Dispatch_Tables (Declarations (D));
  
              elsif Nkind (D) = N_Package_Body_Stub
!               and then Present (Stub_Subunit (D))
              then
                 Build_Dispatch_Tables
!                  (Declarations (Proper_Body (Unit (Stub_Subunit (D)))));
  
              --  Handle full type declarations and derivations of library level
              --  tagged types
*************** package body Exp_Disp is
*** 1524,1533 ****
                  Defining_Identifier => Make_Temporary (Loc, 'T'),
                  Type_Definition =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present            => True,
!                     Null_Exclusion_Present => False,
!                     Constant_Present       => False,
!                     Subtype_Indication     =>
                        New_Occurrence_Of (Desig_Typ, Loc)));
  
              Stats := New_List (
--- 1525,1532 ----
                  Defining_Identifier => Make_Temporary (Loc, 'T'),
                  Type_Definition =>
                    Make_Access_To_Object_Definition (Loc,
!                     All_Present        => True,
!                     Subtype_Indication =>
                        New_Occurrence_Of (Desig_Typ, Loc)));
  
              Stats := New_List (
*************** package body Exp_Disp is
*** 1973,1979 ****
                    Make_Access_To_Object_Definition (Loc,
                      All_Present            => True,
                      Null_Exclusion_Present => False,
-                     Constant_Present       => False,
                      Subtype_Indication     =>
                        New_Occurrence_Of (Ftyp, Loc)));
  
--- 1972,1977 ----
*************** package body Exp_Disp is
*** 4598,4607 ****
        --    (2) External_Tag (combined with Internal_Tag) is used for object
        --        streaming and No_Tagged_Streams inhibits the generation of
        --        streams.
  
        Discard_Names : constant Boolean :=
!                         Present (No_Tagged_Streams_Pragma (Typ))
!                           and then
          (Global_Discard_Names or else Einfo.Entities.Discard_Names (Typ));
  
        --  The following name entries are used by Make_DT to generate a number
--- 4596,4610 ----
        --    (2) External_Tag (combined with Internal_Tag) is used for object
        --        streaming and No_Tagged_Streams inhibits the generation of
        --        streams.
+       --  Instead of No_Tagged_Streams, which applies either to a single
+       --  type or to a declarative region, it is possible to use restriction
+       --  No_Streams, which prevents stream objects from being created in the
+       --  entire partition.
  
        Discard_Names : constant Boolean :=
!         (Present (No_Tagged_Streams_Pragma (Typ))
!            or else Restriction_Active (No_Streams))
!           and then
          (Global_Discard_Names or else Einfo.Entities.Discard_Names (Typ));
  
        --  The following name entries are used by Make_DT to generate a number
*************** package body Exp_Disp is
*** 4644,4650 ****
        Name_ITable        : Name_Id;
        Nb_Prim            : Nat := 0;
        New_Node           : Node_Id;
-       Num_Ifaces         : Nat := 0;
        Parent_Typ         : Entity_Id;
        Predef_Prims       : Entity_Id;
        Prim               : Entity_Id;
--- 4647,4652 ----
*************** package body Exp_Disp is
*** 4917,4923 ****
        if not Building_Static_DT (Typ) then
  
           --  Generate:
!          --    DT     : No_Dispatch_Table_Wrapper;
           --    DT_Ptr : Tag := !Tag (DT.NDT_Prims_Ptr'Address);
  
           if not Has_DT (Typ) then
--- 4919,4925 ----
        if not Building_Static_DT (Typ) then
  
           --  Generate:
!          --    DT     : aliased No_Dispatch_Table_Wrapper;
           --    DT_Ptr : Tag := !Tag (DT.NDT_Prims_Ptr'Address);
  
           if not Has_DT (Typ) then
*************** package body Exp_Disp is
*** 4925,4931 ****
                Make_Object_Declaration (Loc,
                  Defining_Identifier => DT,
                  Aliased_Present     => True,
-                 Constant_Present    => False,
                  Object_Definition   =>
                    New_Occurrence_Of
                      (RTE (RE_No_Dispatch_Table_Wrapper), Loc)));
--- 4927,4932 ----
*************** package body Exp_Disp is
*** 4968,4974 ****
              end if;
  
           --  Generate:
!          --    DT : Dispatch_Table_Wrapper (Nb_Prim);
           --    DT_Ptr : Tag := !Tag (DT.Prims_Ptr'Address);
  
           else
--- 4969,4975 ----
              end if;
  
           --  Generate:
!          --    DT : aliased Dispatch_Table_Wrapper (Nb_Prim);
           --    DT_Ptr : Tag := !Tag (DT.Prims_Ptr'Address);
  
           else
*************** package body Exp_Disp is
*** 4987,4993 ****
                Make_Object_Declaration (Loc,
                  Defining_Identifier => DT,
                  Aliased_Present     => True,
-                 Constant_Present    => False,
                  Object_Definition   =>
                    Make_Subtype_Indication (Loc,
                      Subtype_Mark =>
--- 4988,4993 ----
*************** package body Exp_Disp is
*** 5212,5219 ****
                              Chars => New_External_Name (Tname, 'A'));
              Full_Name : constant String_Id :=
                              Fully_Qualified_Name_String (First_Subtype (Typ));
!             Str1_Id   : String_Id;
!             Str2_Id   : String_Id;
  
           begin
              --  Generate:
--- 5212,5221 ----
                              Chars => New_External_Name (Tname, 'A'));
              Full_Name : constant String_Id :=
                              Fully_Qualified_Name_String (First_Subtype (Typ));
! 
!             Address_Image : RE_Id;
!             Str1_Id       : String_Id;
!             Str2_Id       : String_Id;
  
           begin
              --  Generate:
*************** package body Exp_Disp is
*** 5235,5241 ****
              --    Exname : constant String :=
              --               Str1 & Address_Image (Tag) & Str2;
  
!             if RTE_Available (RE_Address_Image) then
                 Append_To (Result,
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Exname,
--- 5237,5253 ----
              --    Exname : constant String :=
              --               Str1 & Address_Image (Tag) & Str2;
  
!             --  We use Address_Image64 for Morello because Integer_Address
!             --  is 64-bit large even though Address is 128-bit large.
! 
!             case System_Address_Size is
!                when 32     => Address_Image := RE_Address_Image32;
!                when 64     => Address_Image := RE_Address_Image64;
!                when 128    => Address_Image := RE_Address_Image64;
!                when others => raise Program_Error;
!             end case;
! 
!             if RTE_Available (Address_Image) then
                 Append_To (Result,
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Exname,
*************** package body Exp_Disp is
*** 5251,5257 ****
                               Make_Function_Call (Loc,
                                 Name =>
                                   New_Occurrence_Of
!                                    (RTE (RE_Address_Image), Loc),
                                 Parameter_Associations => New_List (
                                   Unchecked_Convert_To (RTE (RE_Address),
                                     New_Occurrence_Of (DT_Ptr, Loc)))),
--- 5263,5269 ----
                               Make_Function_Call (Loc,
                                 Name =>
                                   New_Occurrence_Of
!                                    (RTE (Address_Image), Loc),
                                 Parameter_Associations => New_List (
                                   Unchecked_Convert_To (RTE (RE_Address),
                                     New_Occurrence_Of (DT_Ptr, Loc)))),
*************** package body Exp_Disp is
*** 5476,5498 ****
  
           Collect_Interfaces (Typ, Typ_Ifaces);
  
!          AI := First_Elmt (Typ_Ifaces);
!          while Present (AI) loop
!             Num_Ifaces := Num_Ifaces + 1;
!             Next_Elmt (AI);
!          end loop;
! 
!          if Num_Ifaces = 0 then
              Iface_Table_Node := Make_Null (Loc);
  
           --  Generate the Interface_Table object
  
           else
              declare
!                TSD_Ifaces_List  : constant List_Id := New_List;
!                Elmt             : Elmt_Id;
!                Offset_To_Top    : Node_Id;
!                Sec_DT_Tag       : Node_Id;
  
                 Dummy_Object_Ifaces_List      : Elist_Id := No_Elist;
                 Dummy_Object_Ifaces_Comp_List : Elist_Id := No_Elist;
--- 5488,5505 ----
  
           Collect_Interfaces (Typ, Typ_Ifaces);
  
!          if Is_Empty_Elmt_List (Typ_Ifaces) then
              Iface_Table_Node := Make_Null (Loc);
  
           --  Generate the Interface_Table object
  
           else
              declare
!                Num_Ifaces      : constant Pos := List_Length (Typ_Ifaces);
!                TSD_Ifaces_List : constant List_Id := New_List;
!                Elmt            : Elmt_Id;
!                Offset_To_Top   : Node_Id;
!                Sec_DT_Tag      : Node_Id;
  
                 Dummy_Object_Ifaces_List      : Elist_Id := No_Elist;
                 Dummy_Object_Ifaces_Comp_List : Elist_Id := No_Elist;
*************** package body Exp_Disp is
*** 7560,7570 ****
              if Chars (Prim) = Name_uSize
                and then RTE_Record_Component_Available (RE_Size_Func)
              then
!                DT_Ptr := Node (First_Elmt (Access_Disp_Table (Tag_Typ)));
!                Append_To (L,
!                  Build_Set_Size_Function (Loc,
!                    Tag_Node  => New_Occurrence_Of (DT_Ptr, Loc),
!                    Size_Func => Prim));
              end if;
  
           else
--- 7567,7573 ----
              if Chars (Prim) = Name_uSize
                and then RTE_Record_Component_Available (RE_Size_Func)
              then
!                Append_To (L, Build_Set_Size_Function (Loc, Tag_Typ, Prim));
              end if;
  
           else
*************** package body Exp_Disp is
*** 7864,7872 ****
        First_Prim : constant Elmt_Id := First_Elmt (Primitive_Operations (Typ));
        The_Tag    : constant Entity_Id := First_Tag_Component (Typ);
  
-       Adjusted  : Boolean := False;
-       Finalized : Boolean := False;
- 
        Count_Prim : Nat;
        DT_Length  : Nat;
        Nb_Prim    : Nat;
--- 7867,7872 ----
*************** package body Exp_Disp is
*** 8194,8207 ****
              Validate_Position (Prim);
           end if;
  
-          if Chars (Prim) = Name_Finalize then
-             Finalized := True;
-          end if;
- 
-          if Chars (Prim) = Name_Adjust then
-             Adjusted := True;
-          end if;
- 
           --  An abstract operation cannot be declared in the private part for a
           --  visible abstract type, because it can't be overridden outside this
           --  package hierarchy. For explicit declarations this is checked at
--- 8194,8199 ----
*************** package body Exp_Disp is
*** 8248,8266 ****
           Next_Elmt (Prim_Elmt);
        end loop;
  
-       --  Additional check
- 
-       if Is_Controlled (Typ) then
-          if not Finalized then
-             Error_Msg_N
-               ("controlled type has no explicit Finalize method??", Typ);
- 
-          elsif not Adjusted then
-             Error_Msg_N
-               ("controlled type has no explicit Adjust method??", Typ);
-          end if;
-       end if;
- 
        --  Set the final size of the Dispatch Table
  
        Set_DT_Entry_Count (The_Tag, UI_From_Int (DT_Length));
--- 8240,8245 ----
*************** package body Exp_Disp is
*** 8695,8703 ****
  
     begin
        --  Protect this procedure against wrong usage. Required because it will
!       --  be used directly from GDB
  
!       if not (Typ <= Last_Node_Id)
          or else not Is_Tagged_Type (Typ)
        then
           Write_Str ("wrong usage: Write_DT must be used with tagged types");
--- 8674,8683 ----
  
     begin
        --  Protect this procedure against wrong usage. Required because it will
!       --  be used directly from GDB.
  
!       if Typ not in First_Node_Id .. Last_Node_Id
!         or else Nkind (Typ) not in N_Entity
          or else not Is_Tagged_Type (Typ)
        then
           Write_Str ("wrong usage: Write_DT must be used with tagged types");
*************** package body Exp_Disp is
*** 8741,8746 ****
--- 8721,8730 ----
              Write_Str ("(predefined) ");
           end if;
  
+          if Is_Wrapper (Prim) then
+             Write_Str ("(wrapper) ");
+          end if;
+ 
           --  Prefix the name of the primitive with its corresponding tagged
           --  type to facilitate seeing inherited primitives.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_disp.ads gcc-15.1.0/gcc/ada/exp_disp.ads
*** gcc-14.2.0/gcc/ada/exp_disp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_disp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_dist.adb gcc-15.1.0/gcc/ada/exp_dist.adb
*** gcc-14.2.0/gcc/ada/exp_dist.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_dist.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Dist is
*** 2089,2096 ****
        --  disambiguated within their own scope.
  
        if Overload_Order > 1 then
!          Name_Buffer (Name_Len + 1 .. Name_Len + 2) := "__";
!          Name_Len := Name_Len + 2;
           Add_Nat_To_Name_Buffer (Overload_Order);
        end if;
  
--- 2089,2095 ----
        --  disambiguated within their own scope.
  
        if Overload_Order > 1 then
!          Add_Str_To_Name_Buffer ("__");
           Add_Nat_To_Name_Buffer (Overload_Order);
        end if;
  
*************** package body Exp_Dist is
*** 2826,2832 ****
        Append_To (Decls,
          Make_Object_Declaration (Loc,
            Defining_Identifier => NVList,
-           Aliased_Present     => False,
            Object_Definition   =>
                New_Occurrence_Of (RTE (RE_NVList_Ref), Loc)));
  
--- 2825,2830 ----
*************** package body Exp_Dist is
*** 7252,7258 ****
           Append_To (Decls,
             Make_Object_Declaration (Loc,
               Defining_Identifier => Result,
-              Aliased_Present     => False,
               Object_Definition   =>
                 New_Occurrence_Of (RTE (RE_NamedValue), Loc),
               Expression =>
--- 7250,7255 ----
*************** package body Exp_Dist is
*** 7379,7385 ****
                    Append_To (Decls,
                      Make_Object_Declaration (Loc,
                        Defining_Identifier => Any,
-                       Aliased_Present     => False,
                        Object_Definition   =>
                          New_Occurrence_Of (RTE (RE_Any), Loc),
                        Expression          => Expr));
--- 7376,7381 ----
*************** package body Exp_Dist is
*** 7450,7456 ****
                    Append_To (Decls,
                      Make_Object_Declaration (Loc,
                        Defining_Identifier => Extra_Any_Parameter,
-                       Aliased_Present     => False,
                        Object_Definition   =>
                          New_Occurrence_Of (RTE (RE_Any), Loc),
                        Expression          =>
--- 7446,7451 ----
*************** package body Exp_Dist is
*** 8631,8637 ****
              --  The RACW case is taken care of by Exp_Dist.Add_RACW_From_Any
  
              pragma Assert
!               (not (Is_Remote_Access_To_Class_Wide_Type (Typ)));
  
              Use_Opaque_Representation := False;
  
--- 8626,8632 ----
              --  The RACW case is taken care of by Exp_Dist.Add_RACW_From_Any
  
              pragma Assert
!               (not Is_Remote_Access_To_Class_Wide_Type (Typ));
  
              Use_Opaque_Representation := False;
  
*************** package body Exp_Dist is
*** 11188,11198 ****
        -----------------------------------
  
        procedure Reserve_NamingContext_Methods is
-          Str_Resolve : constant String := "resolve";
        begin
!          Name_Buffer (1 .. Str_Resolve'Length) := Str_Resolve;
!          Name_Len := Str_Resolve'Length;
!          Overload_Counter_Table.Set (Name_Find, 1);
        end Reserve_NamingContext_Methods;
  
        -----------------------
--- 11183,11190 ----
        -----------------------------------
  
        procedure Reserve_NamingContext_Methods is
        begin
!          Overload_Counter_Table.Set (Name_Find ("resolve"), 1);
        end Reserve_NamingContext_Methods;
  
        -----------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_dist.ads gcc-15.1.0/gcc/ada/exp_dist.ads
*** gcc-14.2.0/gcc/ada/exp_dist.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_dist.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_fixd.adb gcc-15.1.0/gcc/ada/exp_fixd.adb
*** gcc-14.2.0/gcc/ada/exp_fixd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_fixd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_fixd.ads gcc-15.1.0/gcc/ada/exp_fixd.ads
*** gcc-14.2.0/gcc/ada/exp_fixd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_fixd.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_imgv.adb gcc-15.1.0/gcc/ada/exp_imgv.adb
*** gcc-14.2.0/gcc/ada/exp_imgv.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_imgv.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Imgv is
*** 157,166 ****
                       High_Bound => Make_Integer_Literal (Loc, UB))),
                   Component_Definition =>
                     Make_Component_Definition (Loc,
-                      Aliased_Present    => False,
                       Subtype_Indication => New_Occurrence_Of (Ctyp, Loc))),
!              Expression          => Make_Aggregate (Loc, Expressions => V,
!                                       Is_Enum_Array_Aggregate => True)));
        end Append_Table_To;
  
     --  Start of Build_Enumeration_Image_Tables
--- 157,164 ----
                       High_Bound => Make_Integer_Literal (Loc, UB))),
                   Component_Definition =>
                     Make_Component_Definition (Loc,
                       Subtype_Indication => New_Occurrence_Of (Ctyp, Loc))),
!              Expression          => Make_Aggregate (Loc, Expressions => V)));
        end Append_Table_To;
  
     --  Start of Build_Enumeration_Image_Tables
*************** package body Exp_Imgv is
*** 572,578 ****
                                  Right_Opnd => New_Occurrence_Of (J, Loc))),
                         Right_Opnd => Make_Integer_Literal (Loc, Int (L1)))));
  
!             --  Generate loop
  
                 Body_Stmts := New_List (
                   Make_Implicit_Loop_Statement (N,
--- 570,576 ----
                                  Right_Opnd => New_Occurrence_Of (J, Loc))),
                         Right_Opnd => Make_Integer_Literal (Loc, Int (L1)))));
  
!                --  Generate loop
  
                 Body_Stmts := New_List (
                   Make_Implicit_Loop_Statement (N,
*************** package body Exp_Imgv is
*** 897,905 ****
           --  Apply a validity check, since it is a bit drastic to get a
           --  completely junk image value for an invalid value.
  
!          if not Expr_Known_Valid (Expr) then
!             Insert_Valid_Check (Expr);
!          end if;
  
           --  Generate:
           --    P1 : constant Natural := Typ'Pos (Typ?(Expr));
--- 895,901 ----
           --  Apply a validity check, since it is a bit drastic to get a
           --  completely junk image value for an invalid value.
  
!          Insert_Valid_Check (Expr);
  
           --  Generate:
           --    P1 : constant Natural := Typ'Pos (Typ?(Expr));
*************** package body Exp_Imgv is
*** 1250,1258 ****
              --  Apply a validity check, since it is a bit drastic to get a
              --  completely junk image value for an invalid value.
  
!             if not Expr_Known_Valid (Expr) then
!                Insert_Valid_Check (Expr);
!             end if;
  
              Enum_Case := True;
           end if;
--- 1246,1252 ----
              --  Apply a validity check, since it is a bit drastic to get a
              --  completely junk image value for an invalid value.
  
!             Insert_Valid_Check (Expr);
  
              Enum_Case := True;
           end if;
*************** package body Exp_Imgv is
*** 1436,1446 ****
  
     procedure Expand_Valid_Value_Attribute (N : Node_Id) is
        Loc   : constant Source_Ptr := Sloc (N);
        Btyp  : constant Entity_Id  := Base_Type (Entity (Prefix (N)));
        Rtyp  : constant Entity_Id  := Root_Type (Btyp);
        pragma Assert (Is_Enumeration_Type (Rtyp));
  
-       Args  : constant List_Id := Expressions (N);
        Func  : RE_Id;
        Ttyp  : Entity_Id;
  
--- 1430,1440 ----
  
     procedure Expand_Valid_Value_Attribute (N : Node_Id) is
        Loc   : constant Source_Ptr := Sloc (N);
+       Args  : constant List_Id    := Expressions (N);
        Btyp  : constant Entity_Id  := Base_Type (Entity (Prefix (N)));
        Rtyp  : constant Entity_Id  := Root_Type (Btyp);
        pragma Assert (Is_Enumeration_Type (Rtyp));
  
        Func  : RE_Id;
        Ttyp  : Entity_Id;
  
*************** package body Exp_Imgv is
*** 1448,1454 ****
        --  Generate:
  
        --     Valid_Value_Enumeration_NN
!       --       (typS, typN'Address, typH'Unrestricted_Access, Num, X)
  
        Ttyp := Component_Type (Etype (Lit_Indexes (Rtyp)));
  
--- 1442,1448 ----
        --  Generate:
  
        --     Valid_Value_Enumeration_NN
!       --       (typS, typN'Address, typH'Unrestricted_Access, Num, Is_Wide, X)
  
        Ttyp := Component_Type (Etype (Lit_Indexes (Rtyp)));
  
*************** package body Exp_Imgv is
*** 1460,1465 ****
--- 1454,1463 ----
           Func := RE_Valid_Value_Enumeration_32;
        end if;
  
+       --  The Valid_[Wide_]Wide_Value attribute does not exist
+ 
+       Prepend_To (Args, New_Occurrence_Of (Standard_False, Loc));
+ 
        Prepend_To (Args,
          Make_Attribute_Reference (Loc,
            Prefix => New_Occurrence_Of (Rtyp, Loc),
*************** package body Exp_Imgv is
*** 1551,1557 ****
  
     --    Enum'Val
     --      (Value_Enumeration_NN
!    --        (typS, typN'Address, typH'Unrestricted_Access, Num, X))
  
     --  where typS, typN and typH are the Lit_Strings, Lit_Indexes and Lit_Hash
     --  entities from T's root type entity, and Num is Enum'Pos (Enum'Last).
--- 1549,1555 ----
  
     --    Enum'Val
     --      (Value_Enumeration_NN
!    --        (typS, typN'Address, typH'Unrestricted_Access, Num, Is_Wide, X))
  
     --  where typS, typN and typH are the Lit_Strings, Lit_Indexes and Lit_Hash
     --  entities from T's root type entity, and Num is Enum'Pos (Enum'Last).
*************** package body Exp_Imgv is
*** 1563,1576 ****
  
     procedure Expand_Value_Attribute (N : Node_Id) is
        Loc   : constant Source_Ptr := Sloc (N);
        Btyp  : constant Entity_Id  := Etype (N);
        pragma Assert (Is_Base_Type (Btyp));
        pragma Assert (Btyp = Base_Type (Entity (Prefix (N))));
        Rtyp  : constant Entity_Id  := Root_Type (Btyp);
  
!       Args  : constant List_Id := Expressions (N);
!       Ttyp  : Entity_Id;
!       Vid   : RE_Id;
  
     begin
        --  Fall through for all cases except user-defined enumeration type
--- 1561,1575 ----
  
     procedure Expand_Value_Attribute (N : Node_Id) is
        Loc   : constant Source_Ptr := Sloc (N);
+       Args  : constant List_Id    := Expressions (N);
        Btyp  : constant Entity_Id  := Etype (N);
        pragma Assert (Is_Base_Type (Btyp));
        pragma Assert (Btyp = Base_Type (Entity (Prefix (N))));
        Rtyp  : constant Entity_Id  := Root_Type (Btyp);
  
!       Is_Wide : Boolean;
!       Ttyp    : Entity_Id;
!       Vid     : RE_Id;
  
     begin
        --  Fall through for all cases except user-defined enumeration type
*************** package body Exp_Imgv is
*** 1616,1624 ****
           end if;
  
        elsif Is_Decimal_Fixed_Point_Type (Rtyp) then
!          if Esize (Rtyp) <= 32 and then abs (Scale_Value (Rtyp)) <= 9 then
              Vid := RE_Value_Decimal32;
!          elsif Esize (Rtyp) <= 64 and then abs (Scale_Value (Rtyp)) <= 18 then
              Vid := RE_Value_Decimal64;
           else
              Vid := RE_Value_Decimal128;
--- 1615,1623 ----
           end if;
  
        elsif Is_Decimal_Fixed_Point_Type (Rtyp) then
!          if Esize (Rtyp) <= 32 and then abs Scale_Value (Rtyp) <= 9 then
              Vid := RE_Value_Decimal32;
!          elsif Esize (Rtyp) <= 64 and then abs Scale_Value (Rtyp) <= 18 then
              Vid := RE_Value_Decimal64;
           else
              Vid := RE_Value_Decimal128;
*************** package body Exp_Imgv is
*** 1722,1730 ****
  
           --  Normal case where we have enumeration tables, build
  
!          --   T'Val
!          --     (Value_Enumeration_NN
!          --       (typS, typN'Address, typH'Unrestricted_Access, Num, X))
  
           else
              Ttyp := Component_Type (Etype (Lit_Indexes (Rtyp)));
--- 1721,1729 ----
  
           --  Normal case where we have enumeration tables, build
  
!          --  T'Val
!          --   (Value_Enumeration_NN
!          --    (typS, typN'Address, typH'Unrestricted_Access, Num, Is_Wide, X))
  
           else
              Ttyp := Component_Type (Etype (Lit_Indexes (Rtyp)));
*************** package body Exp_Imgv is
*** 1737,1742 ****
--- 1736,1760 ----
                 Vid := RE_Value_Enumeration_32;
              end if;
  
+             if Nkind (First (Args)) = N_Function_Call
+               and then Is_Entity_Name (Name (First (Args)))
+             then
+                declare
+                   E : constant Entity_Id := Entity (Name (First (Args)));
+ 
+                begin
+                   Is_Wide := Is_RTE (E, RE_Enum_Wide_String_To_String)
+                                or else
+                              Is_RTE (E, RE_Enum_Wide_Wide_String_To_String);
+                end;
+ 
+             else
+                Is_Wide := False;
+             end if;
+ 
+             Prepend_To (Args,
+               New_Occurrence_Of (Boolean_Literals (Is_Wide), Loc));
+ 
              Prepend_To (Args,
                Make_Attribute_Reference (Loc,
                  Prefix => New_Occurrence_Of (Rtyp, Loc),
*************** package body Exp_Imgv is
*** 2295,2301 ****
           --  in the range of the subtype + 1 for the space at the start. We
           --  build:
  
!          --     Tnn : constant Integer := Rtyp'Pos (Ptyp'Last)
  
           --  and replace the expression by
  
--- 2313,2319 ----
           --  in the range of the subtype + 1 for the space at the start. We
           --  build:
  
!          --     Tnn : constant Integer := Rtyp'Pos (Ptyp'Last);
  
           --  and replace the expression by
  
*************** package body Exp_Imgv is
*** 2321,2329 ****
              declare
                 Tnn   : constant Entity_Id := Make_Temporary (Loc, 'T');
                 Cexpr : Node_Id;
!                P     : Int;
!                M     : Int;
!                K     : Int;
  
              begin
                 Insert_Action (N,
--- 2339,2353 ----
              declare
                 Tnn   : constant Entity_Id := Make_Temporary (Loc, 'T');
                 Cexpr : Node_Id;
! 
!                P : constant Nat :=
!                  UI_To_Int (Enumeration_Pos (Entity (Type_High_Bound (Rtyp))));
!                --  The largest value that might need to be represented
! 
!                K : Pos;
!                M : Pos;
!                --  K is the number of chars that will fit the image of 0..M-1;
!                --  M is the smallest number that won't fit in K chars.
  
              begin
                 Insert_Action (N,
*************** package body Exp_Imgv is
*** 2343,2356 ****
                               Attribute_Name => Name_Last))))));
  
                 --  OK, now we need to build the if expression. First get the
!                --  value of M, the largest possible value needed.
  
!                P := UI_To_Int
!                       (Enumeration_Pos (Entity (Type_High_Bound (Rtyp))));
  
!                K := 1;
!                M := 1;
!                while M < P loop
                    M := M * 10;
                    K := K + 1;
                 end loop;
--- 2367,2379 ----
                               Attribute_Name => Name_Last))))));
  
                 --  OK, now we need to build the if expression. First get the
!                --  values of K and M for the largest possible value P.
  
!                K := 2;
!                M := 10;
!                --  With 2 characters we can represent values in 0..9
  
!                while P >= M loop
                    M := M * 10;
                    K := K + 1;
                 end loop;
*************** package body Exp_Imgv is
*** 2497,2514 ****
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id)
     is
        Ptyp : Entity_Id;
  
     begin
!       Ptyp := Etype (Pref);
  
        --  If the prefix is a component that depends on a discriminant, then
        --  create an actual subtype for it.
  
!       if Nkind (Pref) = N_Selected_Component then
           declare
              Decl : constant Node_Id :=
!                      Build_Actual_Subtype_Of_Component (Ptyp, Pref);
           begin
              if Present (Decl) then
                 Insert_Action (N, Decl);
--- 2520,2561 ----
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id)
     is
+       P    : Node_Id;
        Ptyp : Entity_Id;
  
     begin
!       P    := Pref;
!       Ptyp := Etype (P);
! 
!       --  If the type of the prefix is universal integer, which is a very large
!       --  type, try to compute a narrower type. This may happen when the prefix
!       --  itself is an attribute returning universal integer or a named number.
! 
!       if Ptyp = Universal_Integer then
!          if Nkind (P) in N_Type_Conversion | N_Unchecked_Type_Conversion then
!             P    := Expression (P);
!             Ptyp := Etype (P);
! 
!          elsif Nkind (P) = N_Integer_Literal then
!             declare
!                Val  : constant Uint := Intval (P);
!                Siz  : constant Nat  := Type_Size_For (Val);
! 
!             begin
!                if Siz <= System_Max_Integer_Size then
!                   Ptyp := Integer_Type_For (UI_From_Int (Siz), Val >= Uint_0);
!                end if;
!             end;
!          end if;
!       end if;
  
        --  If the prefix is a component that depends on a discriminant, then
        --  create an actual subtype for it.
  
!       if Nkind (P) = N_Selected_Component then
           declare
              Decl : constant Node_Id :=
!                      Build_Actual_Subtype_Of_Component (Ptyp, P);
           begin
              if Present (Decl) then
                 Insert_Action (N, Decl);
*************** package body Exp_Imgv is
*** 2521,2527 ****
          Make_Attribute_Reference (Sloc (N),
            Prefix         => New_Occurrence_Of (Ptyp, Sloc (N)),
            Attribute_Name => Attr_Name,
!           Expressions    => New_List (Unchecked_Convert_To (Ptyp, Pref))));
  
        Analyze_And_Resolve (N, Str_Typ);
     end Rewrite_Object_Image;
--- 2568,2574 ----
          Make_Attribute_Reference (Sloc (N),
            Prefix         => New_Occurrence_Of (Ptyp, Sloc (N)),
            Attribute_Name => Attr_Name,
!           Expressions    => New_List (Unchecked_Convert_To (Ptyp, P))));
  
        Analyze_And_Resolve (N, Str_Typ);
     end Rewrite_Object_Image;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_imgv.ads gcc-15.1.0/gcc/ada/exp_imgv.ads
*** gcc-14.2.0/gcc/ada/exp_imgv.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_imgv.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_intr.adb gcc-15.1.0/gcc/ada/exp_intr.adb
*** gcc-14.2.0/gcc/ada/exp_intr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_intr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Intr is
*** 109,120 ****
     --  Expand a call to corresponding function, declared in an instance of
     --  System.Address_To_Access_Conversions.
  
-    procedure Expand_Source_Info (N : Node_Id; Nam : Name_Id);
-    --  Rewrite the node as the appropriate string literal or positive
-    --  constant. Nam is the name of one of the intrinsics declared in
-    --  GNAT.Source_Info; see g-souinf.ads for documentation of these
-    --  intrinsics.
- 
     ---------------------
     -- Add_Source_Info --
     ---------------------
--- 109,114 ----
*************** package body Exp_Intr is
*** 754,767 ****
           Rewrite (N, Snode);
           Set_Analyzed (N);
  
-          --  However, we do call the expander, so that the expansion for
-          --  rotates and shift_right_arithmetic happens if Modify_Tree_For_C
-          --  is set.
- 
           if Expander_Active then
              Expand (N);
           end if;
- 
        else
           --  If the context type is not the type of the operator, it is an
           --  inherited operator for a derived type. Wrap the node in a
--- 748,756 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_intr.ads gcc-15.1.0/gcc/ada/exp_intr.ads
*** gcc-14.2.0/gcc/ada/exp_intr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_intr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Intr is
*** 39,44 ****
--- 39,49 ----
     --  documentation of these intrinsics. Loc is passed to provide location
     --  information where it is needed.
  
+    procedure Expand_Source_Info (N : Node_Id; Nam : Name_Id);
+    --  Rewrite the node as the appropriate string literal or positive constant.
+    --  Nam is the name of one of the intrinsics declared in GNAT.Source_Info;
+    --  see g-souinf.ads for documentation of these intrinsics.
+ 
     procedure Expand_Intrinsic_Call (N : Node_Id; E : Entity_Id);
     --  N is either a function call node, a procedure call statement node, or
     --  an operator where the corresponding subprogram is intrinsic (i.e. was
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_pakd.adb gcc-15.1.0/gcc/ada/exp_pakd.adb
*** gcc-14.2.0/gcc/ada/exp_pakd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_pakd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Pakd is
*** 95,102 ****
     --  This expression includes any required range checks.
  
     function Compute_Number_Components
!       (N   : Node_Id;
!        Typ : Entity_Id) return Node_Id;
     --  Build an expression that multiplies the length of the dimensions of the
     --  array, used to control array equality checks.
  
--- 95,102 ----
     --  This expression includes any required range checks.
  
     function Compute_Number_Components
!      (N   : Node_Id;
!       Typ : Entity_Id) return Node_Id;
     --  Build an expression that multiplies the length of the dimensions of the
     --  array, used to control array equality checks.
  
*************** package body Exp_Pakd is
*** 414,421 ****
     -------------------------------
  
     function Compute_Number_Components
!       (N   : Node_Id;
!        Typ : Entity_Id) return Node_Id
     is
        Loc      : constant Source_Ptr := Sloc (N);
        Len_Expr : Node_Id;
--- 414,421 ----
     -------------------------------
  
     function Compute_Number_Components
!      (N   : Node_Id;
!       Typ : Entity_Id) return Node_Id
     is
        Loc      : constant Source_Ptr := Sloc (N);
        Len_Expr : Node_Id;
*************** package body Exp_Pakd is
*** 541,548 ****
--- 541,552 ----
  
           if Is_Itype (Typ) then
              Set_Parent (Decl, Associated_Node_For_Itype (Typ));
+             Set_Associated_Node_For_Itype
+               (PAT, Associated_Node_For_Itype (Typ));
           else
              Set_Parent (Decl, Declaration_Node (Typ));
+             Set_Associated_Node_For_Itype
+               (PAT, Declaration_Node (Typ));
           end if;
  
           if Scope (Typ) /= Current_Scope then
*************** package body Exp_Pakd is
*** 594,599 ****
--- 598,611 ----
           Set_Associated_Node_For_Itype (PAT, Typ);
           Set_Original_Array_Type       (PAT, Typ);
  
+          --  In the case of a constrained array type, also set fields on the
+          --  implicit base type built during the analysis of its declaration.
+ 
+          if Ekind (PAT) = E_Array_Subtype then
+             Set_Is_Packed_Array_Impl_Type (Etype (PAT), True);
+             Set_Original_Array_Type       (Etype (PAT), Base_Type (Typ));
+          end if;
+ 
           --  Propagate representation aspects
  
           Set_Is_Atomic               (PAT, Is_Atomic                (Typ));
*************** package body Exp_Pakd is
*** 814,820 ****
                     Subtype_Marks => Indexes,
                     Component_Definition =>
                       Make_Component_Definition (Loc,
!                        Aliased_Present    => False,
                         Subtype_Indication =>
                            New_Occurrence_Of (Ctyp, Loc)));
  
--- 826,832 ----
                     Subtype_Marks => Indexes,
                     Component_Definition =>
                       Make_Component_Definition (Loc,
!                        Aliased_Present    => Has_Aliased_Components (Typ),
                         Subtype_Indication =>
                            New_Occurrence_Of (Ctyp, Loc)));
  
*************** package body Exp_Pakd is
*** 824,830 ****
                      Discrete_Subtype_Definitions => Indexes,
                      Component_Definition =>
                        Make_Component_Definition (Loc,
!                         Aliased_Present    => False,
                          Subtype_Indication =>
                            New_Occurrence_Of (Ctyp, Loc)));
              end if;
--- 836,842 ----
                      Discrete_Subtype_Definitions => Indexes,
                      Component_Definition =>
                        Make_Component_Definition (Loc,
!                         Aliased_Present    => Has_Aliased_Components (Typ),
                          Subtype_Indication =>
                            New_Occurrence_Of (Ctyp, Loc)));
              end if;
*************** package body Exp_Pakd is
*** 1109,1114 ****
--- 1121,1130 ----
     begin
        pragma Assert (Is_Bit_Packed_Array (Etype (Prefix (Lhs))));
  
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        Obj := Relocate_Node (Prefix (Lhs));
        Convert_To_Actual_Subtype (Obj);
        Atyp := Etype (Obj);
*************** package body Exp_Pakd is
*** 1495,1500 ****
--- 1511,1520 ----
        Offset : Node_Id;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        --  We build an expression that has the form
  
        --    outer_object'Address
*************** package body Exp_Pakd is
*** 1534,1539 ****
--- 1554,1563 ----
        Offset : Node_Id;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        --  We build an expression that has the form
  
        --    (linear-subscript * component_size      for each array reference
*************** package body Exp_Pakd is
*** 1569,1574 ****
--- 1593,1602 ----
        PAT  : Entity_Id;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        Convert_To_Actual_Subtype (L);
        Convert_To_Actual_Subtype (R);
  
*************** package body Exp_Pakd is
*** 1732,1737 ****
--- 1760,1769 ----
        Arg   : Node_Id;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        --  If the node is an actual in a call, the prefix has not been fully
        --  expanded, to account for the additional expansion for in-out actuals
        --  (see expand_actuals for details). If the prefix itself is a packed
*************** package body Exp_Pakd is
*** 1895,1900 ****
--- 1927,1936 ----
        PAT  : Entity_Id;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        Convert_To_Actual_Subtype (L);
        Convert_To_Actual_Subtype (R);
        Ltyp := Underlying_Type (Etype (L));
*************** package body Exp_Pakd is
*** 1992,1997 ****
--- 2028,2037 ----
        Size : Unat;
  
     begin
+       if CodePeer_Mode then
+          return;
+       end if;
+ 
        Convert_To_Actual_Subtype (Opnd);
        Rtyp := Etype (Opnd);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_pakd.ads gcc-15.1.0/gcc/ada/exp_pakd.ads
*** gcc-14.2.0/gcc/ada/exp_pakd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_pakd.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_prag.adb gcc-15.1.0/gcc/ada/exp_prag.adb
*** gcc-14.2.0/gcc/ada/exp_prag.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_prag.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Uintp;          use Uintp;
*** 60,65 ****
--- 60,67 ----
  with Validsw;        use Validsw;
  with Warnsw;         use Warnsw;
  
+ with System.Case_Util; use System.Case_Util;
+ 
  package body Exp_Prag is
  
     -----------------------
*************** package body Exp_Prag is
*** 284,307 ****
     --------------------------
  
     procedure Expand_Pragma_Check (N : Node_Id) is
-       Cond : constant Node_Id := Arg_N (N, 2);
-       Nam  : constant Name_Id := Chars (Arg_N (N, 1));
-       Msg  : Node_Id;
- 
-       Loc : constant Source_Ptr := Sloc (First_Node (Cond));
-       --  Source location used in the case of a failed assertion: point to the
-       --  failing condition, not Loc. Note that the source location of the
-       --  expression is not usually the best choice here, because it points to
-       --  the location of the topmost tree node, which may be an operator in
-       --  the middle of the source text of the expression. For example, it gets
-       --  located on the last AND keyword in a chain of boolean expressions
-       --  AND'ed together. It is best to put the message on the first character
-       --  of the condition, which is the effect of the First_Node call here.
-       --  This source location is used to build the default exception message,
-       --  and also as the sloc of the call to the runtime subprogram raising
-       --  Assert_Failure, so that coverage analysis tools can relate the
-       --  call to the failed check.
- 
        procedure Replace_Discriminals_Of_Protected_Op (Expr : Node_Id);
        --  Discriminants of the enclosing protected object may be referenced
        --  in the expression of a precondition of a protected operation.
--- 286,291 ----
*************** package body Exp_Prag is
*** 315,320 ****
--- 299,392 ----
        --  analyzed earlier, before the creation of the discriminal renaming
        --  declarations that are added to the subprogram body.
  
+       function Make_Failure_Message
+         (Nam  : Name_Id;
+          Cond : Node_Id)
+          return Node_Id;
+       --  Build node with a string literal of a message for check Nam with
+       --  condition Cond failing at runtime.
+ 
+       --------------------------
+       -- Make_Failure_Message --
+       --------------------------
+ 
+       function Make_Failure_Message
+         (Nam  : Name_Id;
+          Cond : Node_Id)
+          return Node_Id
+       is
+          Loc     : constant Source_Ptr := Sloc (First_Node (Cond));
+          Loc_Str : constant String := Build_Location_String (Loc);
+ 
+       begin
+          Name_Len := 0;
+ 
+          --  For Assert, we just use the location
+ 
+          if Nam = Name_Assert then
+             null;
+ 
+          --  For predicate, we generate the string "predicate failed at yyy".
+          --  We prefer all lower case for predicate.
+ 
+          elsif Nam = Name_Predicate then
+             Add_Str_To_Name_Buffer ("predicate failed at ");
+ 
+          --  For special case of Precondition/Postcondition the string is
+          --  "failed xx from yy" where xx is precondition/postcondition in all
+          --  lower case. The reason for this different wording is that the
+          --  failure is not at the point of occurrence of the pragma, unlike
+          --  the other Check cases.
+ 
+          elsif Nam in Name_Pre
+                     | Name_Precondition
+                     | Name_Post
+                     | Name_Postcondition
+          then
+             Add_Str_To_Name_Buffer ("failed ");
+ 
+             --  Enhance information for inherited pragmas
+ 
+             if Comes_From_Inherited_Pragma (Loc) then
+                Add_Str_To_Name_Buffer ("inherited ");
+             end if;
+ 
+             if Nam = Name_Pre then
+                Get_Name_String_And_Append (Name_Precondition);
+             elsif Nam = Name_Post then
+                Get_Name_String_And_Append (Name_Postcondition);
+             else
+                Get_Name_String_And_Append (Nam);
+             end if;
+ 
+             Add_Str_To_Name_Buffer (" from ");
+ 
+          --  For special case of Invariant, the string is "failed invariant
+          --  from yy", to be consistent with the string that is generated for
+          --  the aspect case (the code later on checks for this specific string
+          --  to modify it in some cases, so this is functionally important).
+ 
+          elsif Nam = Name_Invariant then
+             Add_Str_To_Name_Buffer ("failed invariant from ");
+ 
+          --  For all other checks, the string is "xxx failed at yyy"
+          --  where xxx is the check name with appropriate casing.
+ 
+          else
+             Get_Name_String (Nam);
+             Set_Casing (Identifier_Casing (Source_Index (Current_Sem_Unit)));
+             Add_Str_To_Name_Buffer (" failed at ");
+          end if;
+ 
+          --  In all cases, add location string
+ 
+          Add_Str_To_Name_Buffer (Loc_Str);
+ 
+          --  Build the message
+ 
+          return Make_String_Literal (Loc, Name_Buffer (1 .. Name_Len));
+       end Make_Failure_Message;
+ 
        ------------------------------------------
        -- Replace_Discriminals_Of_Protected_Op --
        ------------------------------------------
*************** package body Exp_Prag is
*** 383,388 ****
--- 455,480 ----
           Replace_Discriminant_References (Expr);
        end Replace_Discriminals_Of_Protected_Op;
  
+       --  Local variables
+ 
+       Cond : constant Node_Id := Arg_N (N, 2);
+       Nam  : constant Name_Id := Chars (Arg_N (N, 1));
+       Msg  : Node_Id;
+ 
+       Loc : constant Source_Ptr := Sloc (First_Node (Cond));
+       --  Source location used in the case of a failed assertion: point to the
+       --  failing condition, not Loc. Note that the source location of the
+       --  expression is not usually the best choice here, because it points to
+       --  the location of the topmost tree node, which may be an operator in
+       --  the middle of the source text of the expression. For example, it gets
+       --  located on the last AND keyword in a chain of boolean expressions
+       --  AND'ed together. It is best to put the message on the first character
+       --  of the condition, which is the effect of the First_Node call here.
+       --  This source location is used to build the default exception message,
+       --  and also as the sloc of the call to the runtime subprogram raising
+       --  Assert_Failure, so that coverage analysis tools can relate the
+       --  call to the failed check.
+ 
     --  Start of processing for Expand_Pragma_Check
  
     begin
*************** package body Exp_Prag is
*** 469,561 ****
        --  Case where we call the procedure
  
        else
!          --  If we have a message given, use it
! 
!          if Present (Arg_N (N, 3)) then
!             Msg := Get_Pragma_Arg (Arg_N (N, 3));
! 
!          --  Here we have no string, so prepare one
! 
!          else
!             declare
!                Loc_Str : constant String := Build_Location_String (Loc);
! 
!             begin
!                Name_Len := 0;
  
!                --  For Assert, we just use the location
  
!                if Nam = Name_Assert then
!                   null;
  
!                --  For predicate, we generate the string "predicate failed at
!                --  yyy". We prefer all lower case for predicate.
  
!                elsif Nam = Name_Predicate then
!                   Add_Str_To_Name_Buffer ("predicate failed at ");
  
!                --  For special case of Precondition/Postcondition the string is
!                --  "failed xx from yy" where xx is precondition/postcondition
!                --  in all lower case. The reason for this different wording is
!                --  that the failure is not at the point of occurrence of the
!                --  pragma, unlike the other Check cases.
  
!                elsif Nam in Name_Precondition | Name_Postcondition then
!                   Get_Name_String (Nam);
!                   Insert_Str_In_Name_Buffer ("failed ", 1);
!                   Add_Str_To_Name_Buffer (" from ");
  
!                --  For special case of Invariant, the string is "failed
!                --  invariant from yy", to be consistent with the string that is
!                --  generated for the aspect case (the code later on checks for
!                --  this specific string to modify it in some cases, so this is
!                --  functionally important).
  
!                elsif Nam = Name_Invariant then
!                   Add_Str_To_Name_Buffer ("failed invariant from ");
  
!                --  For all other checks, the string is "xxx failed at yyy"
!                --  where xxx is the check name with appropriate casing.
  
!                else
!                   Get_Name_String (Nam);
!                   Set_Casing
!                     (Identifier_Casing (Source_Index (Current_Sem_Unit)));
!                   Add_Str_To_Name_Buffer (" failed at ");
                 end if;
  
!                --  In all cases, add location string
! 
!                Add_Str_To_Name_Buffer (Loc_Str);
! 
!                --  Build the message
! 
!                Msg := Make_String_Literal (Loc, Name_Buffer (1 .. Name_Len));
!             end;
!          end if;
! 
!          --  For a precondition, replace references to discriminants of a
!          --  protected type with the local discriminals.
! 
!          if Is_Protected_Type (Scope (Current_Scope))
!            and then Has_Discriminants (Scope (Current_Scope))
!            and then From_Aspect_Specification (N)
!          then
!             Replace_Discriminals_Of_Protected_Op (Cond);
!          end if;
! 
!          --  Now rewrite as an if statement
  
!          Rewrite (N,
!            Make_If_Statement (Loc,
!              Condition       => Make_Op_Not (Loc, Right_Opnd => Cond),
!              Then_Statements => New_List (
!                Make_Procedure_Call_Statement (Loc,
!                  Name                   =>
!                    New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
!                  Parameter_Associations => New_List (Relocate_Node (Msg))))));
  
!          Set_Comes_From_Check_Or_Contract (N);
        end if;
  
        Analyze (N);
--- 561,658 ----
        --  Case where we call the procedure
  
        else
!          --  For a precondition, replace references to discriminants of a
!          --  protected type with the local discriminals.
  
!          if Is_Protected_Type (Scope (Current_Scope))
!            and then Has_Discriminants (Scope (Current_Scope))
!            and then From_Aspect_Specification (N)
!          then
!             Replace_Discriminals_Of_Protected_Op (Cond);
!          end if;
  
!          --  Now rewrite as an if statement
  
!          declare
!             function Make_Elsif_Check (Conj : Node_Id) return Node_Id;
!             --  Create an elsif part that checks a conjunct expression Conj and
!             --  emits a message with the exact location when the check fails.
  
!             ----------------------
!             -- Make_Elsif_Check --
!             ----------------------
  
!             function Make_Elsif_Check (Conj : Node_Id) return Node_Id is
!             begin
!                return
!                  Make_Elsif_Part (Loc,
!                    Condition       =>
!                      Make_Op_Not (Loc,
!                        Relocate_Node (Conj)),
!                    Then_Statements =>
!                      New_List (
!                        Make_Procedure_Call_Statement (Loc,
!                          Name                   =>
!                            New_Occurrence_Of
!                              (RTE (RE_Raise_Assert_Failure), Loc),
!                        Parameter_Associations =>
!                          New_List (
!                            Make_Failure_Message (Nam, Conj)))));
!             end Make_Elsif_Check;
  
!             Conjunct : Node_Id := Cond;
!             Elsifs   : List_Id := No_List;
  
!          begin
!             --  If we have a message given, use it
  
!             if Present (Arg_N (N, 3)) then
!                Msg := Get_Pragma_Arg (Arg_N (N, 3));
  
!             --  If check is for a Pre/Post expression of the form "A and then
!             --  B", then we split condition into separate conjuncts with
!             --  messages pointing to their exact locations, i.e.:
!             --
!             --    if not A then
!             --       Raise_Assert_Failure ("failed pre/post from [sloc of A]");
!             --    elsif not B then then
!             --       Raise_Assert_Failure ("failed pre/post from [sloc of B]");
!             --    end if;
!             --
!             --  This makes it easier to debug a failed complex contract.
  
!             else
!                if Nam in Name_Pre
!                        | Name_Precondition
!                        | Name_Post
!                        | Name_Postcondition
!                then
!                   while Nkind (Conjunct) = N_And_Then loop
!                      Prepend_New_To (Elsifs,
!                        Make_Elsif_Check (Right_Opnd (Conjunct)));
!                      Conjunct := Left_Opnd (Conjunct);
!                   end loop;
                 end if;
  
!                Msg := Make_Failure_Message (Nam, Conjunct);
!             end if;
  
!             Rewrite (N,
!               Make_If_Statement (Loc,
!                 Condition       =>
!                   Make_Op_Not (Loc, Relocate_Node (Conjunct)),
!                 Then_Statements =>
!                   New_List (
!                     Make_Procedure_Call_Statement (Loc,
!                       Name                   =>
!                         New_Occurrence_Of
!                           (RTE (RE_Raise_Assert_Failure), Loc),
!                     Parameter_Associations =>
!                       New_List (Msg))),
!                 Elsif_Parts     => Elsifs));
  
!             Set_Comes_From_Check_Or_Contract (N);
!          end;
        end if;
  
        Analyze (N);
*************** package body Exp_Prag is
*** 792,799 ****
        --  type.
  
        function Get_Nth_Arg_Type
!          (Subprogram : Entity_Id;
!           N          : Positive) return Entity_Id;
        --  Returns the type of the Nth argument of Subprogram
  
        function To_Addresses (Elmts : Elist_Id) return List_Id;
--- 889,896 ----
        --  type.
  
        function Get_Nth_Arg_Type
!         (Subprogram : Entity_Id;
!          N          : Positive) return Entity_Id;
        --  Returns the type of the Nth argument of Subprogram
  
        function To_Addresses (Elmts : Elist_Id) return List_Id;
*************** package body Exp_Prag is
*** 860,866 ****
           Third_Component  : Entity_Id := Next_Entity (Second_Component);
  
        begin
- 
           --  Sem_prag.adb ensured that Init_Val is either a Dim3, an aggregate
           --  of three Any_Integers or Any_Integer.
  
--- 957,962 ----
*************** package body Exp_Prag is
*** 1053,1060 ****
        ----------------------
  
        function Get_Nth_Arg_Type
!          (Subprogram : Entity_Id;
!           N          : Positive) return Entity_Id
        is
           Argument : Entity_Id := First_Entity (Subprogram);
        begin
--- 1149,1156 ----
        ----------------------
  
        function Get_Nth_Arg_Type
!         (Subprogram : Entity_Id;
!          N          : Positive) return Entity_Id
        is
           Argument : Entity_Id := First_Entity (Subprogram);
        begin
*************** package body Exp_Prag is
*** 2029,2034 ****
--- 2125,2221 ----
        Rewrite (Prag, Make_Null_Statement (Sloc (Prag)));
     end Expand_Pragma_Exceptional_Cases;
  
+    ------------------------------
+    -- Expand_Pragma_Exit_Cases --
+    ------------------------------
+ 
+    --  Aspect Exit_Cases shoule be expanded in the following manner:
+ 
+    --    subprogram S is
+    --       Count      : Natural := 0;
+    --       Flag_1     : Boolean := False;
+    --       . . .
+    --       Flag_N     : Boolean := False;
+    --       Flag_N[+1] : Boolean := False; --  if others present
+ 
+    --       <preconditions (if any)>
+ 
+    --       --  Evaluate all case guards
+ 
+    --       if Case_Guard_1 then
+    --          Flag_1 := True;
+    --          Count  := Count + 1;
+    --       end if;
+    --       . . .
+    --       if Case_Guard_N then
+    --          Flag_N := True;
+    --          Count  := Count + 1;
+    --       end if;
+ 
+    --       --  Emit errors depending on the number of case guards that
+    --       --  evaluated to True.
+ 
+    --       if Count = 0 then
+    --         Flag_N+1 := True;  --  if others present
+    --       elsif Count > 1 then
+    --          declare
+    --             Str_Base : constant String :=
+    --                      "exit cases overlap for subprogram S";
+    --             Str_Normal_Return : constant String :=
+    --                      (if Flag_... then
+    --                         Str_Base & "case guard at xxx evaluates to True"
+    --                       else Str_Base);
+    --             StrN : constant String :=
+    --                      (if Flag_... then
+    --                         StrN-1 & "case guard at xxx evaluates to True"
+    --                       else StrN-1);
+    --          begin
+    --             raise Assertion_Error with StrN;
+    --          end;
+    --       end if;
+ 
+    --       procedure _Postconditions is
+    --       begin
+    --          <postconditions (if any)>
+ 
+    --          if Flag_1 and then Exit_Kind_1 /= Normal_Return then
+    --             raise Assertion_Error with
+    --                 "subprogram returned normally, failed exit case at xxx";
+    --          end if;
+    --          . . .
+    --          if Flag_N[+1] and then Exit_Kind_N[+1] /= Normal_Return then
+    --             raise Assertion_Error with
+    --                 "subprogram returned normally, failed exit case at xxx";
+    --          end if;
+    --       end _Postconditions;
+    --    begin
+    --
+    --        --  normal body of of P
+    --        declare
+    --        ...
+    --        end;
+    --
+    --     exception
+    --        when E : Exp2 =>
+    --           if Flag_1
+    --             and then Exit_Kind_1 /= Exception_Raised
+    --             and then (Nkind (Exit_Kind_1) /= N_Associated_Component
+    --                 or else Expression (Exit_Kind_1) /= E)
+    --           then
+    --             raise Assertion_Error with
+    --                 "subprogram raised " & E & ", failed exit case at xxx";
+    --           end if;
+    --           . . .
+    --           raise;
+    --    end S;
+ 
+    procedure Expand_Pragma_Exit_Cases (Prag : Node_Id) is
+    begin
+       --  Currently we don't expand this pragma
+ 
+       Rewrite (Prag, Make_Null_Statement (Sloc (Prag)));
+    end Expand_Pragma_Exit_Cases;
+ 
     ---------------------------------------
     -- Expand_Pragma_Import_Or_Interface --
     ---------------------------------------
*************** package body Exp_Prag is
*** 2063,2086 ****
           --  Import a C++ convention
  
           declare
              Loc          : constant Source_Ptr := Sloc (N);
-             Rtti_Name    : constant Node_Id    := Arg_N (N, 3);
              Dum          : constant Entity_Id  := Make_Temporary (Loc, 'D');
              Exdata       : List_Id;
              Lang_Char    : Node_Id;
              Foreign_Data : Node_Id;
  
           begin
              Exdata := Component_Associations (Expression (Parent (Def_Id)));
  
              Lang_Char := Next (First (Exdata));
  
!             --  Change the one-character language designator to 'C'
  
              Rewrite (Expression (Lang_Char),
                Make_Character_Literal (Loc,
                  Chars              => Name_uC,
!                 Char_Literal_Value => UI_From_CC (Get_Char_Code ('C'))));
              Analyze (Expression (Lang_Char));
  
              --  Change the value of Foreign_Data
--- 2250,2322 ----
           --  Import a C++ convention
  
           declare
+             procedure Check_Class_Suffix;
+             --  Check whether the External Name string designated by
+             --  Name, declared below, ends with "'class" and, if so,
+             --  set Lang_Id accordingly, and drop the suffix from Name
+             --  and from Rtti_Name.
+ 
              Loc          : constant Source_Ptr := Sloc (N);
              Dum          : constant Entity_Id  := Make_Temporary (Loc, 'D');
+             Lang_Id      : Character  := 'C';
+             Rtti_Name    : Node_Id    := Arg_N (N, 3);
+             Name         : String_Id  := Strval (Get_Pragma_Arg (Rtti_Name));
              Exdata       : List_Id;
              Lang_Char    : Node_Id;
              Foreign_Data : Node_Id;
  
+             ------------------------
+             -- Check_Class_Suffix --
+             ------------------------
+ 
+             procedure Check_Class_Suffix is
+                Attr : constant String := "'class";
+                J : Nat := String_Length (Name);
+             begin
+                --  We can't end with "'class" if there's no room for it
+ 
+                if J < Attr'Length then
+                   return;
+                end if;
+ 
+                --  Check that we end with "'class", ignoring case.
+                --  Return if we don't.
+ 
+                for K in reverse 1 .. Attr'Length loop
+                   if To_Lower (Get_Character (Get_String_Char (Name, J)))
+                     /= Attr (K)
+                   then
+                      return;
+                   end if;
+                   J := J - 1;
+                end loop;
+ 
+                --  Build a new string without the pseudo attribute.
+                --  Change Lang_Id to use base-type matching.
+ 
+                Start_String;
+                for I in 1 .. J loop
+                   Store_String_Char (Get_String_Char (Name, I));
+                end loop;
+                Name := End_String;
+                Rtti_Name := Make_String_Literal (Sloc (Rtti_Name),
+                                                  Strval => Name);
+                Lang_Id := 'B';
+             end Check_Class_Suffix;
+ 
           begin
+             Check_Class_Suffix;
+ 
              Exdata := Component_Associations (Expression (Parent (Def_Id)));
  
              Lang_Char := Next (First (Exdata));
  
!             --  Change the one-character language designator to Lang_Id
  
              Rewrite (Expression (Lang_Char),
                Make_Character_Literal (Loc,
                  Chars              => Name_uC,
!                 Char_Literal_Value => UI_From_CC (Get_Char_Code (Lang_Id))));
              Analyze (Expression (Lang_Char));
  
              --  Change the value of Foreign_Data
*************** package body Exp_Prag is
*** 2425,2435 ****
     procedure Expand_Pragma_Inspection_Point (N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (N);
  
!       A     : List_Id;
!       Assoc : Node_Id;
!       E     : Entity_Id;
!       Rip   : Boolean;
!       S     : Entity_Id;
  
     begin
        if No (Pragma_Argument_Associations (N)) then
--- 2661,2671 ----
     procedure Expand_Pragma_Inspection_Point (N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (N);
  
!       A          : List_Id;
!       Assoc      : Node_Id;
!       Faulty_Arg : Node_Id := Empty;
!       E          : Entity_Id;
!       S          : Entity_Id;
  
     begin
        if No (Pragma_Argument_Associations (N)) then
*************** package body Exp_Prag is
*** 2462,2468 ****
  
        --  Process the arguments of the pragma
  
-       Rip := False;
        Assoc := First (Pragma_Argument_Associations (N));
        while Present (Assoc) loop
           --  The back end may need to take the address of the object
--- 2698,2703 ----
*************** package body Exp_Prag is
*** 2480,2486 ****
                ("??inspection point references unfrozen object &",
                 Assoc,
                 Entity (Expression (Assoc)));
!             Rip := True;
           end if;
  
           Next (Assoc);
--- 2715,2721 ----
                ("??inspection point references unfrozen object &",
                 Assoc,
                 Entity (Expression (Assoc)));
!             Faulty_Arg := Assoc;
           end if;
  
           Next (Assoc);
*************** package body Exp_Prag is
*** 2488,2495 ****
  
        --  When the above requirement isn't met, turn the pragma into a no-op
  
!       if Rip then
!          Error_Msg_N ("\pragma will be ignored", N);
  
           --  We can't just remove the pragma from the tree as it might be
           --  iterated over by the caller. Turn it into a null statement
--- 2723,2732 ----
  
        --  When the above requirement isn't met, turn the pragma into a no-op
  
!       if Present (Faulty_Arg) then
!          Error_Msg_Sloc := Sloc (Faulty_Arg);
!          Error_Msg_N ("\pragma Inspection_Point # will be ignored",
!            Faulty_Arg);
  
           --  We can't just remove the pragma from the tree as it might be
           --  iterated over by the caller. Turn it into a null statement
*************** package body Exp_Prag is
*** 3274,3300 ****
        if No (Init_Call) and then Present (Expression (Parent (Def_Id))) then
           Set_Expression (Parent (Def_Id), Empty);
        end if;
- 
-       --  The object may not have any initialization, but in the presence of
-       --  Initialize_Scalars code is inserted after then declaration, which
-       --  must now be removed as well. The code carries the same source
-       --  location as the declaration itself.
- 
-       if Initialize_Scalars and then Is_Array_Type (Etype (Def_Id)) then
-          declare
-             Init : Node_Id;
-             Nxt  : Node_Id;
-          begin
-             Init := Next (Parent (Def_Id));
-             while not Comes_From_Source (Init)
-               and then Sloc (Init) = Sloc (Def_Id)
-             loop
-                Nxt := Next (Init);
-                Remove (Init);
-                Init := Nxt;
-             end loop;
-          end;
-       end if;
     end Undo_Initialization;
  
  end Exp_Prag;
--- 3511,3516 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_prag.ads gcc-15.1.0/gcc/ada/exp_prag.ads
*** gcc-14.2.0/gcc/ada/exp_prag.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_prag.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Prag is
*** 50,55 ****
--- 50,59 ----
     --  Given pragma Exceptional_Cases Prag, create the circuitry needed to
     --  catch exceptions and evaluate consequence expressions.
  
+    procedure Expand_Pragma_Exit_Cases (Prag : Node_Id);
+    --  Given pragma Exit_Cases Prag, create the circuitry needed to evaluate
+    --  case guards and check the exit kind (exception raised or normal return).
+ 
     procedure Expand_Pragma_Initial_Condition
       (Pack_Id : Entity_Id;
        N       : Node_Id);
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_put_image.adb gcc-15.1.0/gcc/ada/exp_put_image.adb
*** gcc-14.2.0/gcc/ada/exp_put_image.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_put_image.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,41 ****
--- 26,44 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Csets;          use Csets;
+ with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
  with Lib;            use Lib;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Opt;            use Opt;
+ with Output;         use Output;
  with Rtsfind;        use Rtsfind;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
*************** package body Exp_Put_Image is
*** 82,93 ****
     -------------------------------------
  
     procedure Build_Array_Put_Image_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc  : constant Source_Ptr := Sloc (Nod);
  
        function Wrap_In_Loop
          (Stms : List_Id;
--- 85,95 ----
     -------------------------------------
  
     procedure Build_Array_Put_Image_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc  : constant Source_Ptr := Sloc (Typ);
  
        function Wrap_In_Loop
          (Stms : List_Id;
*************** package body Exp_Put_Image is
*** 132,138 ****
                   Expressions => New_List (
                     Make_Integer_Literal (Loc, Dim))));
           Loop_Stm : constant Node_Id :=
!            Make_Implicit_Loop_Statement (Nod, Statements => Stms);
           Exit_Stm : constant Node_Id :=
             Make_Exit_Statement (Loc,
               Condition =>
--- 134,140 ----
                   Expressions => New_List (
                     Make_Integer_Literal (Loc, Dim))));
           Loop_Stm : constant Node_Id :=
!            Make_Implicit_Loop_Statement (Typ, Statements => Stms);
           Exit_Stm : constant Node_Id :=
             Make_Exit_Statement (Loc,
               Condition =>
*************** package body Exp_Put_Image is
*** 293,302 ****
        Loc     : constant Source_Ptr := Sloc (N);
        P_Type  : constant Entity_Id  := Entity (Prefix (N));
        U_Type  : constant Entity_Id  := Underlying_Type (P_Type);
-       FST     : constant Entity_Id  := First_Subtype (U_Type);
        Sink    : constant Node_Id    := First (Expressions (N));
        Item    : constant Node_Id    := Next (Sink);
!       P_Size  : constant Uint       := Esize (FST);
        Lib_RE  : RE_Id;
  
     begin
--- 295,303 ----
        Loc     : constant Source_Ptr := Sloc (N);
        P_Type  : constant Entity_Id  := Entity (Prefix (N));
        U_Type  : constant Entity_Id  := Underlying_Type (P_Type);
        Sink    : constant Node_Id    := First (Expressions (N));
        Item    : constant Node_Id    := Next (Sink);
!       P_Size  : constant Uint       := Esize (U_Type);
        Lib_RE  : RE_Id;
  
     begin
*************** package body Exp_Put_Image is
*** 403,411 ****
        end;
     end Build_Elementary_Put_Image_Call;
  
!    -------------------------------------
     -- Build_String_Put_Image_Call --
!    -------------------------------------
  
     function Build_String_Put_Image_Call (N : Node_Id) return Node_Id is
        Loc     : constant Source_Ptr := Sloc (N);
--- 404,412 ----
        end;
     end Build_Elementary_Put_Image_Call;
  
!    ---------------------------------
     -- Build_String_Put_Image_Call --
!    ---------------------------------
  
     function Build_String_Put_Image_Call (N : Node_Id) return Node_Id is
        Loc     : constant Source_Ptr := Sloc (N);
*************** package body Exp_Put_Image is
*** 417,430 ****
        Lib_RE  : RE_Id;
        use Stand;
     begin
        if R = Standard_String then
           Lib_RE := RE_Put_Image_String;
        elsif R = Standard_Wide_String then
           Lib_RE := RE_Put_Image_Wide_String;
        elsif R = Standard_Wide_Wide_String then
           Lib_RE := RE_Put_Image_Wide_Wide_String;
        else
!          raise Program_Error;
        end if;
  
        --  Convert parameter to the required type (i.e. the type of the
--- 418,465 ----
        Lib_RE  : RE_Id;
        use Stand;
     begin
+       pragma Assert (Is_String_Type (U_Type));
+       pragma Assert (not RTU_Loaded (Interfaces_C)
+         or else Enclosing_Lib_Unit_Entity (U_Type)
+                   /= RTU_Entity (Interfaces_C));
+ 
        if R = Standard_String then
           Lib_RE := RE_Put_Image_String;
        elsif R = Standard_Wide_String then
           Lib_RE := RE_Put_Image_Wide_String;
        elsif R = Standard_Wide_Wide_String then
           Lib_RE := RE_Put_Image_Wide_Wide_String;
+ 
        else
!          --  Handle custom string types. For example:
! 
!          --     type T is array (1 .. 10) of Character;
!          --     Obj : T := (others => 'A');
!          --     ...
!          --     Put (Obj'Image);
! 
!          declare
!             C_Type : Entity_Id;
! 
!          begin
!             if Is_Private_Type (R) then
!                C_Type := Component_Type (Full_View (R));
!             else
!                C_Type := Component_Type (R);
!             end if;
! 
!             C_Type := Root_Type (Underlying_Type (C_Type));
! 
!             if C_Type = Standard_Character then
!                Lib_RE := RE_Put_Image_String;
!             elsif C_Type = Standard_Wide_Character then
!                Lib_RE := RE_Put_Image_Wide_String;
!             elsif C_Type = Standard_Wide_Wide_Character then
!                Lib_RE := RE_Put_Image_Wide_Wide_String;
!             else
!                raise Program_Error;
!             end if;
!          end;
        end if;
  
        --  Convert parameter to the required type (i.e. the type of the
*************** package body Exp_Put_Image is
*** 486,494 ****
              Relocate_Node (Sink)));
     end Build_Protected_Put_Image_Call;
  
!    ------------------------------------
     -- Build_Task_Put_Image_Call --
!    ------------------------------------
  
     --  For "Task_Type'Put_Image (S, Task_Object)", build:
     --
--- 521,529 ----
              Relocate_Node (Sink)));
     end Build_Protected_Put_Image_Call;
  
!    -------------------------------
     -- Build_Task_Put_Image_Call --
!    -------------------------------
  
     --  For "Task_Type'Put_Image (S, Task_Object)", build:
     --
*************** package body Exp_Put_Image is
*** 549,559 ****
     --    end Put_Image;
  
     procedure Build_Record_Put_Image_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
        Btyp : constant Entity_Id := Base_Type (Typ);
        pragma Assert (not Is_Class_Wide_Type (Btyp));
        pragma Assert (not Is_Unchecked_Union (Btyp));
--- 584,594 ----
     --    end Put_Image;
  
     procedure Build_Record_Put_Image_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
        Btyp : constant Entity_Id := Base_Type (Typ);
        pragma Assert (not Is_Class_Wide_Type (Btyp));
        pragma Assert (not Is_Unchecked_Union (Btyp));
*************** package body Exp_Put_Image is
*** 581,586 ****
--- 616,633 ----
        function Make_Component_Name (C : Entity_Id) return Node_Id;
        --  Create a call that prints "Comp_Name => "
  
+       function Null_Record_Default_Implementation_OK
+         (Null_Record_Type : Entity_Id) return Boolean
+       is
+         (if Has_Aspect (Null_Record_Type, Aspect_Put_Image)
+            then False
+          elsif not Is_Derived_Type
+                      (Implementation_Base_Type (Null_Record_Type))
+            then True
+          else Null_Record_Default_Implementation_OK
+                 (Implementation_Base_Type (Etype (Null_Record_Type))));
+       --  return True iff ok to emit "(NULL RECORD)" for given null record type
+ 
        ------------------------------------
        -- Make_Component_List_Attributes --
        ------------------------------------
*************** package body Exp_Put_Image is
*** 639,650 ****
           return Result;
        end Make_Component_List_Attributes;
  
!       --------------------------------
        -- Append_Component_Attr --
!       --------------------------------
  
        procedure Append_Component_Attr (Clist : List_Id; C : Entity_Id) is
!          Component_Typ : constant Entity_Id := Put_Image_Base_Type (Etype (C));
        begin
           if Ekind (C) /= E_Void then
              Append_To (Clist,
--- 686,699 ----
           return Result;
        end Make_Component_List_Attributes;
  
!       ---------------------------
        -- Append_Component_Attr --
!       ---------------------------
  
        procedure Append_Component_Attr (Clist : List_Id; C : Entity_Id) is
!          Component_Typ : constant Entity_Id :=
!            Put_Image_Base_Type
!              (Get_Corresponding_Mutably_Tagged_Type_If_Present (Etype (C)));
        begin
           if Ekind (C) /= E_Void then
              Append_To (Clist,
*************** package body Exp_Put_Image is
*** 827,841 ****
                Make_Raise_Program_Error (Loc,
                Reason => PE_Explicit_Raise));
           else
!             Append_To (Stms,
!               Make_Procedure_Call_Statement (Loc,
!                 Name => New_Occurrence_Of (RTE (RE_Put_Image_Unknown), Loc),
!                 Parameter_Associations => New_List
!                   (Make_Identifier (Loc, Name_S),
!                    Make_String_Literal (Loc,
!                      To_String (Fully_Qualified_Name_String (Btyp))))));
           end if;
!       elsif Is_Null_Record_Type (Btyp, Ignore_Privacy => True) then
  
           --  Interface types take this path.
  
--- 876,911 ----
                Make_Raise_Program_Error (Loc,
                Reason => PE_Explicit_Raise));
           else
!             declare
!                Type_Name : String_Id;
!             begin
!                --  If aspect Discard_Names is enabled the intention is to
!                --  prevent type names from leaking into object file. Instead,
!                --  we emit string that is different from the ones from the
!                --  default implementations of the Put_Image attribute.
! 
!                if Global_Discard_Names or else Discard_Names (Typ) then
!                   Start_String;
!                   Store_String_Chars ("(DISCARDED TYPE NAME)");
!                   Type_Name := End_String;
!                else
!                   Type_Name :=
!                     Fully_Qualified_Name_String (Btyp, Append_NUL => False);
!                end if;
! 
!                Append_To (Stms,
!                  Make_Procedure_Call_Statement (Loc,
!                    Name => New_Occurrence_Of (RTE (RE_Put_Image_Unknown), Loc),
!                    Parameter_Associations => New_List
!                      (Make_Identifier (Loc, Name_S),
!                         Make_String_Literal (Loc,
!                           Type_Name))));
!             end;
           end if;
! 
!       elsif Is_Null_Record_Type (Btyp, Ignore_Privacy => True)
!         and then Null_Record_Default_Implementation_OK (Btyp)
!       then
  
           --  Interface types take this path.
  
*************** package body Exp_Put_Image is
*** 904,912 ****
        Build_Put_Image_Proc (Loc, Btyp, Decl, Pnam, Stms);
     end Build_Record_Put_Image_Procedure;
  
!    -------------------------------
     -- Build_Put_Image_Profile --
!    -------------------------------
  
     function Build_Put_Image_Profile
       (Loc : Source_Ptr; Typ : Entity_Id) return List_Id
--- 974,982 ----
        Build_Put_Image_Proc (Loc, Btyp, Decl, Pnam, Stms);
     end Build_Record_Put_Image_Procedure;
  
!    -----------------------------
     -- Build_Put_Image_Profile --
!    -----------------------------
  
     function Build_Put_Image_Profile
       (Loc : Source_Ptr; Typ : Entity_Id) return List_Id
*************** package body Exp_Put_Image is
*** 951,959 ****
                Statements => Stms));
     end Build_Put_Image_Proc;
  
!    ------------------------------------
     -- Build_Unknown_Put_Image_Call --
!    ------------------------------------
  
     function Build_Unknown_Put_Image_Call (N : Node_Id) return Node_Id is
        Loc    : constant Source_Ptr := Sloc (N);
--- 1021,1029 ----
                Statements => Stms));
     end Build_Put_Image_Proc;
  
!    ----------------------------------
     -- Build_Unknown_Put_Image_Call --
!    ----------------------------------
  
     function Build_Unknown_Put_Image_Call (N : Node_Id) return Node_Id is
        Loc    : constant Source_Ptr := Sloc (N);
*************** package body Exp_Put_Image is
*** 1106,1116 ****
        declare
           U_Type : constant Entity_Id := Underlying_Type (Entity (Prefix (N)));
        begin
!          if Has_Aspect (U_Type, Aspect_Put_Image) then
              return True;
           end if;
  
!          return not Is_Scalar_Type (U_Type);
        end;
     end Image_Should_Call_Put_Image;
  
--- 1176,1205 ----
        declare
           U_Type : constant Entity_Id := Underlying_Type (Entity (Prefix (N)));
        begin
!          if Has_Aspect (U_Type, Aspect_Put_Image)
!            or else not Is_Scalar_Type (U_Type)
!          then
              return True;
           end if;
  
!          --  Deal with Itypes. One case where this is needed is for a
!          --  fixed-point type with a Put_Image aspect specification.
! 
!          --  ??? Should we be checking for Itype case here, or in Has_Aspect?
!          --  In other words, do we want to do what we are doing here for all
!          --  aspects, not just for Put_Image?
! 
!          if Is_Itype (U_Type)
!            and then Nkind (Associated_Node_For_Itype (U_Type)) in
!                       N_Full_Type_Declaration | N_Subtype_Declaration
!            and then Has_Aspect (Defining_Identifier
!                                   (Associated_Node_For_Itype (U_Type)),
!                                 Aspect_Put_Image)
!          then
!             return True;
!          end if;
! 
!          return False;
        end;
     end Image_Should_Call_Put_Image;
  
*************** package body Exp_Put_Image is
*** 1290,1295 ****
--- 1379,1392 ----
           Actions := New_List (Sink_Decl, Put_Im, Result_Decl);
        end if;
  
+       --  To avoid leaks, we need to manage the secondary stack, because Get is
+       --  returning a String allocated thereon. It might be cleaner to let the
+       --  normal mechanisms for functions returning on the secondary stack call
+       --  Set_Uses_Sec_Stack, but this expansion of 'Image is happening too
+       --  late for that.
+ 
+       Set_Uses_Sec_Stack (Current_Scope);
+ 
        return Make_Expression_With_Actions (Loc,
          Actions    => Actions,
          Expression => New_Occurrence_Of (Result_Entity, Loc));
*************** package body Exp_Put_Image is
*** 1299,1306 ****
--- 1396,1414 ----
     -- Preload_Root_Buffer_Type --
     ------------------------------
  
+    Preload_Root_Buffer_Type_Done : Boolean := False;
+    --  True if Preload_Root_Buffer_Type has already done its work;
+    --  no need to do it again in that case.
+ 
+    Debug_Unit_Walk : Boolean renames Debug_Flag_Dot_WW;
+ 
     procedure Preload_Root_Buffer_Type (Compilation_Unit : Node_Id) is
+       Ignore : Entity_Id;
     begin
+       if Preload_Root_Buffer_Type_Done then
+          return;
+       end if;
+ 
        --  We can't call RTE (RE_Root_Buffer_Type) for at least some
        --  predefined units, because it would introduce cyclic dependences.
        --  The package where Root_Buffer_Type is declared, for example, and
*************** package body Exp_Put_Image is
*** 1317,1335 ****
        --  RTE (RE_Root_Buffer_Type) when compiling the compiler itself.
        --  Packages Ada.Strings.Buffer_Types and friends are not included
        --  in the compiler.
-       --
-       --  Don't do it if type Root_Buffer_Type is unavailable in the runtime.
  
        if not In_Predefined_Unit (Compilation_Unit)
          and then Tagged_Seen
          and then not No_Run_Time_Mode
-         and then RTE_Available (RE_Root_Buffer_Type)
        then
!          declare
!             Ignore : constant Entity_Id := RTE (RE_Root_Buffer_Type);
!          begin
!             null;
!          end;
        end if;
     end Preload_Root_Buffer_Type;
  
--- 1425,1450 ----
        --  RTE (RE_Root_Buffer_Type) when compiling the compiler itself.
        --  Packages Ada.Strings.Buffer_Types and friends are not included
        --  in the compiler.
  
        if not In_Predefined_Unit (Compilation_Unit)
          and then Tagged_Seen
          and then not No_Run_Time_Mode
        then
!          Preload_Root_Buffer_Type_Done := True;
! 
!          --  Don't do it if type Root_Buffer_Type is unavailable in the
!          --  runtime.
! 
!          if RTE_Available (RE_Root_Buffer_Type) then
!             if Debug_Unit_Walk then
!                Write_Line ("Preload_Root_Buffer_Type: ");
!                Write_Unit_Info
!                  (Get_Cunit_Unit_Number (Compilation_Unit),
!                   Unit (Compilation_Unit));
!             end if;
! 
!             Ignore := RTE (RE_Root_Buffer_Type);
!          end if;
        end if;
     end Preload_Root_Buffer_Type;
  
*************** package body Exp_Put_Image is
*** 1341,1346 ****
--- 1456,1463 ----
     begin
        if Is_Array_Type (E) and then Is_First_Subtype (E) then
           return E;
+       elsif Is_Private_Type (Base_Type (E)) and not Is_Private_Type (E) then
+          return Implementation_Base_Type (E);
        else
           return Base_Type (E);
        end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_put_image.ads gcc-15.1.0/gcc/ada/exp_put_image.ads
*** gcc-14.2.0/gcc/ada/exp_put_image.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_put_image.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Put_Image is
*** 70,87 ****
     --  the declaration and name (entity) of the procedure.
  
     procedure Build_Array_Put_Image_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
-    --  Nod provides the Sloc value for the generated code
  
     procedure Build_Record_Put_Image_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
-    --  Loc is the location of the subprogram declaration
  
     function Build_Unknown_Put_Image_Call (N : Node_Id) return Node_Id;
     --  Build a call to Put_Image_Unknown
--- 70,83 ----
     --  the declaration and name (entity) of the procedure.
  
     procedure Build_Array_Put_Image_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
  
     procedure Build_Record_Put_Image_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
  
     function Build_Unknown_Put_Image_Call (N : Node_Id) return Node_Id;
     --  Build a call to Put_Image_Unknown
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_sel.adb gcc-15.1.0/gcc/ada/exp_sel.adb
*** gcc-14.2.0/gcc/ada/exp_sel.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_sel.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Sel is
*** 40,63 ****
     -----------------------
  
     function Build_Abort_Block
!      (Loc         : Source_Ptr;
!       Abr_Blk_Ent : Entity_Id;
!       Cln_Blk_Ent : Entity_Id;
!       Blk         : Node_Id) return Node_Id
     is
     begin
        return
          Make_Block_Statement (Loc,
-           Identifier   => New_Occurrence_Of (Abr_Blk_Ent, Loc),
- 
-           Declarations => No_List,
- 
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
                Statements =>
                  New_List (
                    Make_Implicit_Label_Declaration (Loc,
!                     Defining_Identifier => Cln_Blk_Ent,
                      Label_Construct     => Blk),
                    Blk),
  
--- 40,58 ----
     -----------------------
  
     function Build_Abort_Block
!      (Loc     : Source_Ptr;
!       Blk_Ent : Entity_Id;
!       Blk     : Node_Id) return Node_Id
     is
     begin
        return
          Make_Block_Statement (Loc,
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
                Statements =>
                  New_List (
                    Make_Implicit_Label_Declaration (Loc,
!                     Defining_Identifier => Blk_Ent,
                      Label_Construct     => Blk),
                    Blk),
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_sel.ads gcc-15.1.0/gcc/ada/exp_sel.ads
*** gcc-14.2.0/gcc/ada/exp_sel.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_sel.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Types; use Types;
*** 31,54 ****
  package Exp_Sel is
  
     function Build_Abort_Block
!      (Loc         : Source_Ptr;
!       Abr_Blk_Ent : Entity_Id;
!       Cln_Blk_Ent : Entity_Id;
!       Blk         : Node_Id) return Node_Id;
     --  Generate:
     --    begin
     --       Blk
     --    exception
     --       when Abort_Signal => null;
     --    end;
!    --  Abr_Blk_Ent is the name of the generated block, Cln_Blk_Ent is the name
!    --  of the encapsulated cleanup block, Blk is the actual block name.
     --  The exception handler code is built by Build_Abort_Block_Handler.
  
     function Build_Abort_Block_Handler (Loc : Source_Ptr) return Node_Id;
     --  Generate:
!    --    when others =>
!    --      null;
     --  This is an exception handler to stop propagation of aborts, without
     --  modifying the deferral level.
  
--- 31,51 ----
  package Exp_Sel is
  
     function Build_Abort_Block
!      (Loc     : Source_Ptr;
!       Blk_Ent : Entity_Id;
!       Blk     : Node_Id) return Node_Id;
     --  Generate:
     --    begin
     --       Blk
     --    exception
     --       when Abort_Signal => null;
     --    end;
!    --  Blk_Ent is the identifier of Blk.
     --  The exception handler code is built by Build_Abort_Block_Handler.
  
     function Build_Abort_Block_Handler (Loc : Source_Ptr) return Node_Id;
     --  Generate:
!    --    when Abort_Signal => null;
     --  This is an exception handler to stop propagation of aborts, without
     --  modifying the deferral level.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_smem.adb gcc-15.1.0/gcc/ada/exp_smem.adb
*** gcc-14.2.0/gcc/ada/exp_smem.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_smem.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_smem.ads gcc-15.1.0/gcc/ada/exp_smem.ads
*** gcc-14.2.0/gcc/ada/exp_smem.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_smem.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_spark.adb gcc-15.1.0/gcc/ada/exp_spark.adb
*** gcc-14.2.0/gcc/ada/exp_spark.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_spark.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_spark.ads gcc-15.1.0/gcc/ada/exp_spark.ads
*** gcc-14.2.0/gcc/ada/exp_spark.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_spark.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_strm.adb gcc-15.1.0/gcc/ada/exp_strm.adb
*** gcc-14.2.0/gcc/ada/exp_strm.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_strm.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Strm is
*** 455,461 ****
        Lib_RE  : RE_Id;
  
     begin
- 
        --  Check first for Boolean and Character. These are enumeration types,
        --  but we treat them specially, since they may require special handling
        --  in the transfer protocol. However, this special handling only applies
--- 455,460 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_strm.ads gcc-15.1.0/gcc/ada/exp_strm.ads
*** gcc-14.2.0/gcc/ada/exp_strm.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_strm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_tss.adb gcc-15.1.0/gcc/ada/exp_tss.adb
*** gcc-14.2.0/gcc/ada/exp_tss.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_tss.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Tss is
*** 355,360 ****
--- 355,372 ----
        return C1 = TSS_Init_Proc (1) and then C2 = TSS_Init_Proc (2);
     end Is_Init_Proc;
  
+    -------------------
+    -- Is_Rep_To_Pos --
+    -------------------
+ 
+    function Is_Rep_To_Pos (E : Entity_Id) return Boolean is
+       C1 : Character;
+       C2 : Character;
+    begin
+       Get_Last_Two_Chars (Chars (E), C1, C2);
+       return C1 = TSS_Rep_To_Pos (1) and then C2 = TSS_Rep_To_Pos (2);
+    end Is_Rep_To_Pos;
+ 
     ------------
     -- Is_TSS --
     ------------
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_tss.ads gcc-15.1.0/gcc/ada/exp_tss.ads
*** gcc-14.2.0/gcc/ada/exp_tss.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_tss.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Tss is
*** 154,159 ****
--- 154,164 ----
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
+    function Is_Rep_To_Pos (E : Entity_Id) return Boolean;
+    --  Version for Rep to Pos conversions, same as Is_TSS (E, TSS_Rep_To_Pos);
+ 
+    --  WARNING: There is a matching C declaration of this subprogram in fe.h
+ 
     function Is_TSS (E : Entity_Id; Nam : TSS_Name_Type) return Boolean;
     --  Determines if given entity (E) is the name of a TSS identified by Nam
  
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_unst.adb gcc-15.1.0/gcc/ada/exp_unst.adb
*** gcc-14.2.0/gcc/ada/exp_unst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_unst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo;          use Einfo;
*** 29,35 ****
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
- with Exp_Util;       use Exp_Util;
  with Lib;            use Lib;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
--- 29,34 ----
*************** package body Exp_Unst is
*** 282,294 ****
           if E = Sub and then Present (Protected_Body_Subprogram (E)) then
              E := Protected_Body_Subprogram (E);
           end if;
- 
-          if Ekind (E) = E_Function
-            and then Rewritten_For_C (E)
-            and then Present (Corresponding_Procedure (E))
-          then
-             E := Corresponding_Procedure (E);
-          end if;
        end if;
  
        pragma Assert (Subps_Index (E) /= Uint_0);
--- 281,286 ----
*************** package body Exp_Unst is
*** 515,592 ****
              is
                 T : constant Entity_Id := Get_Fullest_View (In_T);
  
!                procedure Note_Uplevel_Bound (N : Node_Id; Ref : Node_Id);
                 --  N is the bound of a dynamic type. This procedure notes that
                 --  this bound is uplevel referenced, it can handle references
                 --  to entities (typically _FIRST and _LAST entities), and also
                 --  attribute references of the form T'name (name is typically
                 --  FIRST or LAST) where T is the uplevel referenced bound.
-                --  Ref, if Present, is the location of the reference to
-                --  replace.
  
                 ------------------------
                 -- Note_Uplevel_Bound --
                 ------------------------
  
!                procedure Note_Uplevel_Bound (N : Node_Id; Ref : Node_Id) is
!                begin
!                   --  Entity name case. Make sure that the entity is declared
!                   --  in a subprogram. This may not be the case for a type in a
!                   --  loop appearing in a precondition.
!                   --  Exclude explicitly discriminants (that can appear
!                   --  in bounds of discriminated components) and enumeration
!                   --  literals.
  
!                   if Is_Entity_Name (N) then
!                      if Present (Entity (N))
!                        and then not Is_Type (Entity (N))
!                        and then Present (Enclosing_Subprogram (Entity (N)))
!                        and then
!                          Ekind (Entity (N))
!                            not in E_Discriminant | E_Enumeration_Literal
!                      then
!                         Note_Uplevel_Ref
!                           (E      => Entity (N),
!                            N      => Empty,
!                            Caller => Current_Subprogram,
!                            Callee => Enclosing_Subprogram (Entity (N)));
!                      end if;
  
!                   --  Attribute or indexed component case
  
!                   elsif Nkind (N) in
!                           N_Attribute_Reference | N_Indexed_Component
!                   then
!                      Note_Uplevel_Bound (Prefix (N), Ref);
  
!                      --  The indices of the indexed components, or the
!                      --  associated expressions of an attribute reference,
!                      --  may also involve uplevel references.
  
!                      declare
!                         Expr : Node_Id;
  
!                      begin
!                         Expr := First (Expressions (N));
!                         while Present (Expr) loop
!                            Note_Uplevel_Bound (Expr, Ref);
!                            Next (Expr);
!                         end loop;
!                      end;
  
                       --  The type of the prefix may be have an uplevel
                       --  reference if this needs bounds.
  
!                      if Nkind (N) = N_Attribute_Reference then
                          declare
                             Attr : constant Attribute_Id :=
                                      Get_Attribute_Id (Attribute_Name (N));
                             DT   : Boolean := False;
  
                          begin
!                            if (Attr = Attribute_First
!                                  or else Attr = Attribute_Last
!                                  or else Attr = Attribute_Length)
                               and then Is_Constrained (Etype (Prefix (N)))
                             then
                                Check_Static_Type
--- 507,596 ----
              is
                 T : constant Entity_Id := Get_Fullest_View (In_T);
  
!                procedure Note_Uplevel_Bound (N : Node_Id);
                 --  N is the bound of a dynamic type. This procedure notes that
                 --  this bound is uplevel referenced, it can handle references
                 --  to entities (typically _FIRST and _LAST entities), and also
                 --  attribute references of the form T'name (name is typically
                 --  FIRST or LAST) where T is the uplevel referenced bound.
  
                 ------------------------
                 -- Note_Uplevel_Bound --
                 ------------------------
  
!                procedure Note_Uplevel_Bound (N : Node_Id) is
  
!                   function Note_Uplevel_Bound_Trav
!                     (N : Node_Id) return Traverse_Result;
!                   --  Tree visitor that marks entities that are uplevel
!                   --  referenced.
  
!                   procedure Do_Note_Uplevel_Bound
!                     is new Traverse_Proc (Note_Uplevel_Bound_Trav);
!                   --  Subtree visitor instantiation
  
!                   -----------------------------
!                   -- Note_Uplevel_Bound_Trav --
!                   -----------------------------
  
!                   function Note_Uplevel_Bound_Trav
!                     (N : Node_Id) return Traverse_Result
!                   is
!                   begin
!                      --  Entity name case. Make sure that the entity is
!                      --  declared in a subprogram. This may not be the case for
!                      --  a type in a loop appearing in a precondition. Exclude
!                      --  explicitly discriminants (that can appear in bounds of
!                      --  discriminated components), enumeration literals and
!                      --  block.
  
!                      if Is_Entity_Name (N) then
!                         if Present (Entity (N))
!                           and then not Is_Type (Entity (N))
!                           and then Present
!                             (Enclosing_Subprogram (Entity (N)))
!                           and then
!                             Ekind (Entity (N))
!                               not in E_Discriminant | E_Enumeration_Literal
!                                 | E_Block
!                         then
!                            Note_Uplevel_Ref
!                              (E      => Entity (N),
!                               N      => Empty,
!                               Caller => Current_Subprogram,
!                               Callee => Enclosing_Subprogram (Entity (N)));
!                         end if;
!                      end if;
  
!                      --  N_Function_Call are handled later, don't touch them
!                      --  yet.
!                      if Nkind (N) in N_Function_Call
!                      then
!                         return Skip;
! 
!                      --  In N_Selected_Component and N_Expanded_Name, only the
!                      --  prefix may be referencing a uplevel entity.
! 
!                      elsif Nkind (N) in N_Selected_Component
!                          | N_Expanded_Name
!                      then
!                         Do_Note_Uplevel_Bound (Prefix (N));
!                         return Skip;
  
                       --  The type of the prefix may be have an uplevel
                       --  reference if this needs bounds.
  
!                      elsif Nkind (N) = N_Attribute_Reference then
                          declare
                             Attr : constant Attribute_Id :=
                                      Get_Attribute_Id (Attribute_Name (N));
                             DT   : Boolean := False;
  
                          begin
!                            if Attr in
!                                 Attribute_First
!                                 | Attribute_Last
!                                 | Attribute_Length
                               and then Is_Constrained (Etype (Prefix (N)))
                             then
                                Check_Static_Type
*************** package body Exp_Unst is
*** 595,653 ****
                          end;
                       end if;
  
!                   --  Binary operator cases. These can apply to arrays for
!                   --  which we may need bounds.
! 
!                   elsif Nkind (N) in N_Binary_Op then
!                      Note_Uplevel_Bound (Left_Opnd (N),  Ref);
!                      Note_Uplevel_Bound (Right_Opnd (N), Ref);
! 
!                   --  Unary operator case
! 
!                   elsif Nkind (N) in N_Unary_Op then
!                      Note_Uplevel_Bound (Right_Opnd (N), Ref);
! 
!                   --  Explicit dereference and selected component case
! 
!                   elsif Nkind (N) in
!                           N_Explicit_Dereference | N_Selected_Component
!                   then
!                      Note_Uplevel_Bound (Prefix (N), Ref);
! 
!                   --  Conditional expressions
! 
!                   elsif Nkind (N) = N_If_Expression then
!                      declare
!                         Expr : Node_Id;
! 
!                      begin
!                         Expr := First (Expressions (N));
!                         while Present (Expr) loop
!                            Note_Uplevel_Bound (Expr, Ref);
!                            Next (Expr);
!                         end loop;
!                      end;
! 
!                   elsif Nkind (N) = N_Case_Expression then
!                      declare
!                         Alternative : Node_Id;
! 
!                      begin
!                         Note_Uplevel_Bound (Expression (N), Ref);
! 
!                         Alternative := First (Alternatives (N));
!                         while Present (Alternative) loop
!                            Note_Uplevel_Bound (Expression (Alternative), Ref);
!                         end loop;
!                      end;
! 
!                   --  Conversion case
! 
!                   elsif Nkind (N) in
!                           N_Type_Conversion | N_Unchecked_Type_Conversion
!                   then
!                      Note_Uplevel_Bound (Expression (N), Ref);
!                   end if;
                 end Note_Uplevel_Bound;
  
              --  Start of processing for Check_Static_Type
--- 599,608 ----
                          end;
                       end if;
  
!                      return OK;
!                   end Note_Uplevel_Bound_Trav;
!                begin
!                   Do_Note_Uplevel_Bound (N);
                 end Note_Uplevel_Bound;
  
              --  Start of processing for Check_Static_Type
*************** package body Exp_Unst is
*** 681,692 ****
  
                    begin
                       if not Is_Static_Expression (LB) then
!                         Note_Uplevel_Bound (LB, N);
                          DT := True;
                       end if;
  
                       if not Is_Static_Expression (UB) then
!                         Note_Uplevel_Bound (UB, N);
                          DT := True;
                       end if;
                    end;
--- 636,647 ----
  
                    begin
                       if not Is_Static_Expression (LB) then
!                         Note_Uplevel_Bound (LB);
                          DT := True;
                       end if;
  
                       if not Is_Static_Expression (UB) then
!                         Note_Uplevel_Bound (UB);
                          DT := True;
                       end if;
                    end;
*************** package body Exp_Unst is
*** 712,718 ****
                          D := First_Elmt (Discriminant_Constraint (T));
                          while Present (D) loop
                             if not Is_Static_Expression (Node (D)) then
!                               Note_Uplevel_Bound (Node (D), N);
                                DT := True;
                             end if;
  
--- 667,673 ----
                          D := First_Elmt (Discriminant_Constraint (T));
                          while Present (D) loop
                             if not Is_Static_Expression (Node (D)) then
!                               Note_Uplevel_Bound (Node (D));
                                DT := True;
                             end if;
  
*************** package body Exp_Unst is
*** 786,801 ****
                 if Caller = Callee then
                    return;
  
-                --  Callee may be a function that returns an array, and that has
-                --  been rewritten as a procedure. If caller is that procedure,
-                --  nothing to do either.
- 
-                elsif Ekind (Callee) = E_Function
-                  and then Rewritten_For_C (Callee)
-                  and then Corresponding_Procedure (Callee) = Caller
-                then
-                   return;
- 
                 elsif Ekind (Callee) in E_Entry | E_Entry_Family then
                    return;
                 end if;
--- 741,746 ----
*************** package body Exp_Unst is
*** 1124,1137 ****
                       end;
                    end if;
  
!                   --  A selected component can have an implicit up-level
!                   --  reference due to the bounds of previous fields in the
!                   --  record. We simplify the processing here by examining
!                   --  all components of the record.
  
!                   --  Selected components appear as unit names and end labels
!                   --  for child units. Prefixes of these nodes denote parent
!                   --  units and carry no type information so they are skipped.
  
                 when N_Selected_Component =>
                    if Present (Etype (Prefix (N))) then
--- 1069,1082 ----
                       end;
                    end if;
  
!                --  A selected component can have an implicit up-level
!                --  reference due to the bounds of previous fields in the
!                --  record. We simplify the processing here by examining
!                --  all components of the record.
  
!                --  Selected components appear as unit names and end labels
!                --  for child units. Prefixes of these nodes denote parent
!                --  units and carry no type information so they are skipped.
  
                 when N_Selected_Component =>
                    if Present (Etype (Prefix (N))) then
*************** package body Exp_Unst is
*** 1231,1237 ****
                 --  is a semantic descendant of the stub.
  
                 when N_Body_Stub =>
!                   Visit (Library_Unit (N));
  
                 --  A declaration of a wrapper package indicates a subprogram
                 --  instance for which there is no explicit body. Enter the
--- 1176,1182 ----
                 --  is a semantic descendant of the stub.
  
                 when N_Body_Stub =>
!                   Visit (Stub_Subunit (N));
  
                 --  A declaration of a wrapper package indicates a subprogram
                 --  instance for which there is no explicit body. Enter the
*************** package body Exp_Unst is
*** 2208,2413 ****
           end loop;
        end Subp_Loop;
  
!       --  Next step, process uplevel references. This has to be done in a
!       --  separate pass, after completing the processing in Sub_Loop because we
!       --  need all the AREC declarations generated, inserted, and analyzed so
!       --  that the uplevel references can be successfully analyzed.
! 
!       Uplev_Refs : for J in Urefs.First .. Urefs.Last loop
!          declare
!             UPJ : Uref_Entry renames Urefs.Table (J);
! 
!          begin
!             --  Ignore type references, these are implicit references that do
!             --  not need rewriting (e.g. the appearance in a conversion).
!             --  Also ignore if no reference was specified or if the rewriting
!             --  has already been done (this can happen if the N_Identifier
!             --  occurs more than one time in the tree). Also ignore references
!             --  when not generating C code (in particular for the case of LLVM,
!             --  since GNAT-LLVM will handle the processing for up-level refs).
! 
!             if No (UPJ.Ref)
!               or else not Is_Entity_Name (UPJ.Ref)
!               or else No (Entity (UPJ.Ref))
!               or else not Opt.Generate_C_Code
!             then
!                goto Continue;
!             end if;
! 
!             --  Rewrite one reference
! 
!             Rewrite_One_Ref : declare
!                Loc : constant Source_Ptr := Sloc (UPJ.Ref);
!                --  Source location for the reference
! 
!                Typ : constant Entity_Id := Etype (UPJ.Ent);
!                --  The type of the referenced entity
! 
!                Atyp : Entity_Id;
!                --  The actual subtype of the reference
! 
!                RS_Caller : constant SI_Type := Subp_Index (UPJ.Caller);
!                --  Subp_Index for caller containing reference
! 
!                STJR : Subp_Entry renames Subps.Table (RS_Caller);
!                --  Subp_Entry for subprogram containing reference
! 
!                RS_Callee : constant SI_Type := Subp_Index (UPJ.Callee);
!                --  Subp_Index for subprogram containing referenced entity
! 
!                STJE : Subp_Entry renames Subps.Table (RS_Callee);
!                --  Subp_Entry for subprogram containing referenced entity
! 
!                Pfx  : Node_Id;
!                Comp : Entity_Id;
!                SI   : SI_Type;
! 
!             begin
!                Atyp := Etype (UPJ.Ref);
! 
!                if Ekind (Atyp) /= E_Record_Subtype then
!                   Atyp := Get_Actual_Subtype (UPJ.Ref);
!                end if;
! 
!                --  Ignore if no ARECnF entity for enclosing subprogram which
!                --  probably happens as a result of not properly treating
!                --  instance bodies. To be examined ???
! 
!                --  If this test is omitted, then the compilation of freeze.adb
!                --  and inline.adb fail in unnesting mode.
! 
!                if No (STJR.ARECnF) then
!                   goto Continue;
!                end if;
! 
!                --  If this is a reference to a global constant, use its value
!                --  rather than create a reference. It is more efficient and
!                --  furthermore indispensable if the context requires a
!                --  constant, such as a branch of a case statement.
! 
!                if Ekind (UPJ.Ent) = E_Constant
!                  and then Is_True_Constant (UPJ.Ent)
!                  and then Present (Constant_Value (UPJ.Ent))
!                  and then Is_Static_Expression (Constant_Value (UPJ.Ent))
!                then
!                   Rewrite (UPJ.Ref, New_Copy_Tree (Constant_Value (UPJ.Ent)));
!                   goto Continue;
!                end if;
! 
!                --  Push the current scope, so that the pointer type Tnn, and
!                --  any subsidiary entities resulting from the analysis of the
!                --  rewritten reference, go in the right entity chain.
! 
!                Push_Scope (STJR.Ent);
! 
!                --  Now we need to rewrite the reference. We have a reference
!                --  from level STJR.Lev to level STJE.Lev. The general form of
!                --  the rewritten reference for entity X is:
! 
!                --    Typ'Deref (ARECaF.ARECbU.ARECcU.ARECdU....ARECmU.X)
! 
!                --  where a,b,c,d .. m =
!                --    STJR.Lev - 1,  STJR.Lev - 2, .. STJE.Lev
! 
!                pragma Assert (STJR.Lev > STJE.Lev);
! 
!                --  Compute the prefix of X. Here are examples to make things
!                --  clear (with parens to show groupings, the prefix is
!                --  everything except the .X at the end).
! 
!                --   level 2 to level 1
! 
!                --     AREC1F.X
! 
!                --   level 3 to level 1
! 
!                --     (AREC2F.AREC1U).X
! 
!                --   level 4 to level 1
! 
!                --     ((AREC3F.AREC2U).AREC1U).X
! 
!                --   level 6 to level 2
! 
!                --     (((AREC5F.AREC4U).AREC3U).AREC2U).X
! 
!                --  In the above, ARECnF and ARECnU are pointers, so there are
!                --  explicit dereferences required for these occurrences.
! 
!                Pfx :=
!                  Make_Explicit_Dereference (Loc,
!                    Prefix => New_Occurrence_Of (STJR.ARECnF, Loc));
!                SI := RS_Caller;
!                for L in STJE.Lev .. STJR.Lev - 2 loop
!                   SI := Enclosing_Subp (SI);
!                   Pfx :=
!                     Make_Explicit_Dereference (Loc,
!                       Prefix =>
!                         Make_Selected_Component (Loc,
!                           Prefix        => Pfx,
!                           Selector_Name =>
!                             New_Occurrence_Of (Subps.Table (SI).ARECnU, Loc)));
!                end loop;
! 
!                --  Get activation record component (must exist)
! 
!                Comp := Activation_Record_Component (UPJ.Ent);
!                pragma Assert (Present (Comp));
! 
!                --  Do the replacement. If the component type is an access type,
!                --  this is an uplevel reference for an entity that requires a
!                --  fat pointer, so dereference the component.
! 
!                if Is_Access_Type (Etype (Comp)) then
!                   Rewrite (UPJ.Ref,
!                     Make_Explicit_Dereference (Loc,
!                       Prefix =>
!                         Make_Selected_Component (Loc,
!                           Prefix        => Pfx,
!                           Selector_Name =>
!                             New_Occurrence_Of (Comp, Loc))));
! 
!                else
!                   Rewrite (UPJ.Ref,
!                     Make_Attribute_Reference (Loc,
!                       Prefix         => New_Occurrence_Of (Atyp, Loc),
!                       Attribute_Name => Name_Deref,
!                       Expressions    => New_List (
!                         Make_Selected_Component (Loc,
!                           Prefix        => Pfx,
!                           Selector_Name =>
!                             New_Occurrence_Of (Comp, Loc)))));
!                end if;
! 
!                --  Analyze and resolve the new expression. We do not need to
!                --  establish the relevant scope stack entries here, because we
!                --  have already set all the correct entity references, so no
!                --  name resolution is needed. We have already set the current
!                --  scope, so that any new entities created will be in the right
!                --  scope.
! 
!                --  We analyze with all checks suppressed (since we do not
!                --  expect any exceptions)
! 
!                Analyze_And_Resolve (UPJ.Ref, Typ, Suppress => All_Checks);
! 
!                --  Generate an extra temporary to facilitate the C backend
!                --  processing this dereference
! 
!                if Opt.Modify_Tree_For_C
!                  and then Nkind (Parent (UPJ.Ref)) in
!                             N_Type_Conversion | N_Unchecked_Type_Conversion
!                then
!                   Force_Evaluation (UPJ.Ref, Mode => Strict);
!                end if;
! 
!                Pop_Scope;
!             end Rewrite_One_Ref;
!          end;
! 
!       <<Continue>>
!          null;
!       end loop Uplev_Refs;
  
        --  Finally, loop through all calls adding extra actual for the
        --  activation record where it is required.
--- 2153,2162 ----
           end loop;
        end Subp_Loop;
  
!       --  Note: we used to process uplevel references, in particular for the
!       --  old CCG (cprint.adb). With GNAT LLVM, processing of uplevel
!       --  references needs to be done directly there which is more reliable, so
!       --  we no longer need to do it here.
  
        --  Finally, loop through all calls adding extra actual for the
        --  activation record where it is required.
*************** package body Exp_Unst is
*** 2605,2611 ****
           --  recursively in Visit_Node.
  
           elsif Nkind (N) in N_Body_Stub then
!             Do_Search (Library_Unit (N));
  
           --  Skip generic packages
  
--- 2354,2360 ----
           --  recursively in Visit_Node.
  
           elsif Nkind (N) in N_Body_Stub then
!             Do_Search (Stub_Subunit (N));
  
           --  Skip generic packages
  
*************** package body Exp_Unst is
*** 2636,2642 ****
          or else (Nkind (Unit (N)) = N_Subprogram_Body
                    and then not Acts_As_Spec (N))
        then
!          Do_Search (Library_Unit (N));
        end if;
  
        Do_Search (N);
--- 2385,2391 ----
          or else (Nkind (Unit (N)) = N_Subprogram_Body
                    and then not Acts_As_Spec (N))
        then
!          Do_Search (Spec_Lib_Unit (N));
        end if;
  
        Do_Search (N);
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_unst.ads gcc-15.1.0/gcc/ada/exp_unst.ads
*** gcc-14.2.0/gcc/ada/exp_unst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_unst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_util.adb gcc-15.1.0/gcc/ada/exp_util.adb
*** gcc-14.2.0/gcc/ada/exp_util.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Aggr;       use Exp_Aggr;
*** 36,41 ****
--- 36,42 ----
  with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Ch11;       use Exp_Ch11;
+ with Exp_Dbug;       use Exp_Dbug;
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
  with Inline;         use Inline;
*************** with Sem_Res;        use Sem_Res;
*** 60,66 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Utils;    use Sinfo.Utils;
- with Snames;         use Snames;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
  with Tbuild;         use Tbuild;
--- 61,66 ----
*************** package body Exp_Util is
*** 142,155 ****
     --  function body that computes image.
  
     procedure Build_Task_Image_Prefix
!       (Loc    : Source_Ptr;
!        Len    : out Entity_Id;
!        Res    : out Entity_Id;
!        Pos    : out Entity_Id;
!        Prefix : Entity_Id;
!        Sum    : Node_Id;
!        Decls  : List_Id;
!        Stats  : List_Id);
     --  Common processing for Task_Array_Image and Task_Record_Image. Create
     --  local variables and assign prefix of name to result string.
  
--- 142,155 ----
     --  function body that computes image.
  
     procedure Build_Task_Image_Prefix
!      (Loc    : Source_Ptr;
!       Len    : out Entity_Id;
!       Res    : out Entity_Id;
!       Pos    : out Entity_Id;
!       Prefix : Entity_Id;
!       Sum    : Node_Id;
!       Decls  : List_Id;
!       Stats  : List_Id);
     --  Common processing for Task_Array_Image and Task_Record_Image. Create
     --  local variables and assign prefix of name to result string.
  
*************** package body Exp_Util is
*** 181,202 ****
     --  Determine whether pragma Default_Initial_Condition denoted by Prag has
     --  an assertion expression that should be verified at run time.
  
-    function Make_CW_Equivalent_Type
-      (T : Entity_Id;
-       E : Node_Id) return Entity_Id;
-    --  T is a class-wide type entity, E is the initial expression node that
-    --  constrains T in case such as: " X: T := E" or "new T'(E)". This function
-    --  returns the entity of the Equivalent type and inserts on the fly the
-    --  necessary declaration such as:
-    --
-    --    type anon is record
-    --       _parent : Root_Type (T); constrained with E discriminants (if any)
-    --       Extension : String (1 .. expr to match size of E);
-    --    end record;
-    --
-    --  This record is compatible with any object of the class of T thanks to
-    --  the first field and has the same size as E thanks to the second.
- 
     function Make_Literal_Range
       (Loc         : Source_Ptr;
        Literal_Typ : Entity_Id) return Node_Id;
--- 181,186 ----
*************** package body Exp_Util is
*** 315,324 ****
  
           if Present (Msg_Node) then
              Error_Msg_N
!               ("info: atomic synchronization set for &?.n?", Msg_Node);
           else
              Error_Msg_N
!               ("info: atomic synchronization set?.n?", N);
           end if;
        end if;
     end Activate_Atomic_Synchronization;
--- 299,308 ----
  
           if Present (Msg_Node) then
              Error_Msg_N
!               ("atomic synchronization set for &?.n?", Msg_Node);
           else
              Error_Msg_N
!               ("atomic synchronization set?.n?", N);
           end if;
        end if;
     end Activate_Atomic_Synchronization;
*************** package body Exp_Util is
*** 416,421 ****
--- 400,410 ----
           if Validity_Checks_On
             and then
               (Validity_Check_Tests or else Is_Hardbool_Type (T))
+ 
+            --  no check needed here if validity has already been checked
+            and then not
+              (Validity_Check_Operands and then
+                (Nkind (N) in N_Op or else Nkind (Parent (N)) in N_Op))
           then
              Ensure_Valid (N);
           end if;
*************** package body Exp_Util is
*** 722,730 ****
     ------------------------------------
  
     procedure Build_Allocate_Deallocate_Proc
!      (N           : Node_Id;
!       Is_Allocate : Boolean)
     is
        function Find_Object (E : Node_Id) return Node_Id;
        --  Given an arbitrary expression of an allocator, try to find an object
        --  reference in it, otherwise return the original expression.
--- 711,721 ----
     ------------------------------------
  
     procedure Build_Allocate_Deallocate_Proc
!      (N    : Node_Id;
!       Mark : Node_Id := Empty)
     is
+       Is_Allocate : constant Boolean := Nkind (N) /= N_Free_Statement;
+ 
        function Find_Object (E : Node_Id) return Node_Id;
        --  Given an arbitrary expression of an allocator, try to find an object
        --  reference in it, otherwise return the original expression.
*************** package body Exp_Util is
*** 820,879 ****
        Expr                     : Node_Id;
        Needs_Fin                : Boolean;
        Pool_Id                  : Entity_Id;
!       Proc_To_Call             : Node_Id := Empty;
        Ptr_Typ                  : Entity_Id;
        Use_Secondary_Stack_Pool : Boolean;
  
     --  Start of processing for Build_Allocate_Deallocate_Proc
  
     begin
!       --  Obtain the attributes of the allocation / deallocation
! 
!       if Nkind (N) = N_Free_Statement then
!          Expr := Expression (N);
!          Ptr_Typ := Base_Type (Etype (Expr));
!          Proc_To_Call := Procedure_To_Call (N);
  
!       else
!          if Nkind (N) = N_Object_Declaration then
              Expr := Expression (N);
           else
              Expr := N;
           end if;
  
!          --  In certain cases an allocator with a qualified expression may
!          --  be relocated and used as the initialization expression of a
!          --  temporary:
  
           --    before:
           --       Obj : Ptr_Typ := new Desig_Typ'(...);
  
           --    after:
!          --       Tmp : Ptr_Typ := new Desig_Typ'(...);
!          --       Obj : Ptr_Typ := Tmp;
  
!          --  Since the allocator is always marked as analyzed to avoid infinite
!          --  expansion, it will never be processed by this routine given that
!          --  the designated type needs finalization actions. Detect this case
!          --  and complete the expansion of the allocator.
  
           if Nkind (Expr) = N_Identifier
             and then Nkind (Parent (Entity (Expr))) = N_Object_Declaration
             and then Nkind (Expression (Parent (Entity (Expr)))) = N_Allocator
           then
!             Build_Allocate_Deallocate_Proc (Parent (Entity (Expr)), True);
              return;
           end if;
  
!          --  The allocator may have been rewritten into something else in which
!          --  case the expansion performed by this routine does not apply.
! 
!          if Nkind (Expr) /= N_Allocator then
!             return;
!          end if;
  
           Ptr_Typ := Base_Type (Etype (Expr));
           Proc_To_Call := Procedure_To_Call (Expr);
        end if;
  
        Pool_Id := Associated_Storage_Pool (Ptr_Typ);
--- 811,874 ----
        Expr                     : Node_Id;
        Needs_Fin                : Boolean;
        Pool_Id                  : Entity_Id;
!       Proc_To_Call             : Node_Id;
        Ptr_Typ                  : Entity_Id;
        Use_Secondary_Stack_Pool : Boolean;
  
     --  Start of processing for Build_Allocate_Deallocate_Proc
  
     begin
!       --  Obtain the attributes of the allocation
  
!       if Is_Allocate then
!          if Nkind (N) in N_Assignment_Statement | N_Object_Declaration then
              Expr := Expression (N);
           else
              Expr := N;
           end if;
  
!          --  Deal with type conversions created for interface types
! 
!          if Nkind (Expr) = N_Unchecked_Type_Conversion then
!             Expr := Expression (Expr);
!          end if;
! 
!          --  In certain cases, an allocator with a qualified expression may be
!          --  relocated and used as the initialization expression of a temporary
!          --  and the analysis of the declaration of this temporary may in turn
!          --  create another temporary:
  
           --    before:
           --       Obj : Ptr_Typ := new Desig_Typ'(...);
  
           --    after:
!          --       Tmp2 : Ptr_Typ := new Desig_Typ'(...);
!          --       [constraint_error when Tmp2...]
!          --       Tmp1 : Ptr_Typ := Tmp2
!          --       Obj  : Ptr_Typ := Tmp1;
  
!          --  Detect this case where we are invoked on Tmp1's declaration by
!          --  recognizing Tmp2 and then proceed to its declaration instead.
  
           if Nkind (Expr) = N_Identifier
             and then Nkind (Parent (Entity (Expr))) = N_Object_Declaration
             and then Nkind (Expression (Parent (Entity (Expr)))) = N_Allocator
           then
!             Build_Allocate_Deallocate_Proc (Parent (Entity (Expr)), Mark);
              return;
           end if;
  
!          pragma Assert (Nkind (Expr) = N_Allocator);
  
           Ptr_Typ := Base_Type (Etype (Expr));
           Proc_To_Call := Procedure_To_Call (Expr);
+ 
+       --  Obtain the attributes of the deallocation
+ 
+       else
+          Expr := Expression (N);
+          Ptr_Typ := Base_Type (Etype (Expr));
+          Proc_To_Call := Procedure_To_Call (N);
        end if;
  
        Pool_Id := Associated_Storage_Pool (Ptr_Typ);
*************** package body Exp_Util is
*** 934,947 ****
  
        Needs_Fin :=
          Needs_Finalization (Desig_Typ)
            and then not No_Heap_Finalization (Ptr_Typ);
  
        --  The allocation/deallocation of a controlled object must be associated
!       --  with an attachment to/detachment from a finalization master, but the
!       --  implementation cannot guarantee this property for every anonymous
!       --  access tyoe, see Build_Anonymous_Collection.
  
!       if Needs_Fin and then No (Finalization_Master (Ptr_Typ)) then
           pragma Assert (Ekind (Ptr_Typ) = E_Anonymous_Access_Type);
           Needs_Fin := False;
        end if;
--- 929,943 ----
  
        Needs_Fin :=
          Needs_Finalization (Desig_Typ)
+           and then not Has_Relaxed_Finalization (Desig_Typ)
            and then not No_Heap_Finalization (Ptr_Typ);
  
        --  The allocation/deallocation of a controlled object must be associated
!       --  with an attachment to/detachment from a finalization collection, but
!       --  the implementation cannot guarantee this property for every anonymous
!       --  access type, see Build_Anonymous_Collection.
  
!       if Needs_Fin and then No (Finalization_Collection (Ptr_Typ)) then
           pragma Assert (Ekind (Ptr_Typ) = E_Anonymous_Access_Type);
           Needs_Fin := False;
        end if;
*************** package body Exp_Util is
*** 972,983 ****
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
-          Alloc_Nod    : Node_Id := Empty;
           Alloc_Expr   : Node_Id := Empty;
!          Fin_Addr_Id  : Entity_Id;
!          Fin_Mas_Act  : Node_Id;
!          Fin_Mas_Id   : Entity_Id;
           Proc_To_Call : Entity_Id;
           Subpool      : Node_Id := Empty;
  
        begin
--- 968,977 ----
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
           Alloc_Expr   : Node_Id := Empty;
!          Fin_Coll_Id  : Entity_Id;
           Proc_To_Call : Entity_Id;
+          Ptr_Coll_Id  : Entity_Id;
           Subpool      : Node_Id := Empty;
  
        begin
*************** package body Exp_Util is
*** 985,1013 ****
           --  node for later processing and calculation of alignment.
  
           if Is_Allocate then
- 
-             if Nkind (Expr) = N_Allocator then
-                Alloc_Nod := Expr;
- 
-             --  When Expr is an object declaration we have to examine its
-             --  expression.
- 
-             elsif Nkind (Expr) = N_Object_Declaration
-               and then Nkind (Expression (Expr)) = N_Allocator
-             then
-                Alloc_Nod := Expression (Expr);
- 
-             --  Otherwise, we raise an error because we should have found one
- 
-             else
-                raise Program_Error;
-             end if;
- 
              --  Extract the qualified expression if there is one from the
              --  allocator.
  
!             if Nkind (Expression (Alloc_Nod)) = N_Qualified_Expression then
!                Alloc_Expr := Expression (Alloc_Nod);
              end if;
           end if;
  
--- 979,989 ----
           --  node for later processing and calculation of alignment.
  
           if Is_Allocate then
              --  Extract the qualified expression if there is one from the
              --  allocator.
  
!             if Nkind (Expression (Expr)) = N_Qualified_Expression then
!                Alloc_Expr := Expression (Expr);
              end if;
           end if;
  
*************** package body Exp_Util is
*** 1035,1082 ****
                 Append_To (Actuals, Make_Null (Loc));
              end if;
  
!             --  c) Finalization master
! 
!             if Needs_Fin then
!                Fin_Mas_Id  := Finalization_Master (Ptr_Typ);
!                Fin_Mas_Act := New_Occurrence_Of (Fin_Mas_Id, Loc);
! 
!                --  Handle the case where the master is actually a pointer to a
!                --  master. This case arises in build-in-place functions.
! 
!                if Is_Access_Type (Etype (Fin_Mas_Id)) then
!                   Append_To (Actuals, Fin_Mas_Act);
!                else
!                   Append_To (Actuals,
!                     Make_Attribute_Reference (Loc,
!                       Prefix         => Fin_Mas_Act,
!                       Attribute_Name => Name_Unrestricted_Access));
!                end if;
!             else
!                Append_To (Actuals, Make_Null (Loc));
!             end if;
  
!             --  d) Finalize_Address
  
!             --  Primitive Finalize_Address is never generated in CodePeer mode
!             --  since it contains an Unchecked_Conversion.
  
!             if Needs_Fin and then not CodePeer_Mode then
!                Fin_Addr_Id := Finalize_Address (Desig_Typ);
!                pragma Assert (Present (Fin_Addr_Id));
  
!                Append_To (Actuals,
!                  Make_Attribute_Reference (Loc,
!                    Prefix         => New_Occurrence_Of (Fin_Addr_Id, Loc),
!                    Attribute_Name => Name_Unrestricted_Access));
!             else
!                Append_To (Actuals, Make_Null (Loc));
!             end if;
           end if;
  
!          --  e) Address
!          --  f) Storage_Size
!          --  g) Alignment
  
           Append_To (Actuals, New_Occurrence_Of (Addr_Id, Loc));
           Append_To (Actuals, New_Occurrence_Of (Size_Id, Loc));
--- 1011,1053 ----
                 Append_To (Actuals, Make_Null (Loc));
              end if;
  
!             --  c) Finalization collection
  
!             Fin_Coll_Id := Make_Temporary (Loc, 'C');
!             Ptr_Coll_Id := Finalization_Collection (Ptr_Typ);
  
!             --  Create the temporary which represents the collection of
!             --  the expression. Generate:
!             --
!             --    C : Finalization_Collection_Ptr :=
!             --          Finalization_Collection (Ptr_Typ)'Access
!             --
!             --  Handle the case where a collection is actually a pointer
!             --  to a collection. This arises in build-in-place functions.
  
!             Insert_Action (N,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Fin_Coll_Id,
!                 Object_Definition   =>
!                   New_Occurrence_Of
!                     (RTE (RE_Finalization_Collection_Ptr), Loc),
!                   Expression        =>
!                     (if not Needs_Fin
!                       then Make_Null (Loc)
!                       elsif Is_Access_Type (Etype (Ptr_Coll_Id))
!                       then New_Occurrence_Of (Ptr_Coll_Id, Loc)
!                       else
!                         Make_Attribute_Reference (Loc,
!                           Prefix         =>
!                             New_Occurrence_Of (Ptr_Coll_Id, Loc),
!                           Attribute_Name => Name_Unrestricted_Access))));
  
!             Append_To (Actuals, New_Occurrence_Of (Fin_Coll_Id, Loc));
           end if;
  
!          --  d) Address
!          --  e) Storage_Size
!          --  f) Alignment
  
           Append_To (Actuals, New_Occurrence_Of (Addr_Id, Loc));
           Append_To (Actuals, New_Occurrence_Of (Size_Id, Loc));
*************** package body Exp_Util is
*** 1085,1094 ****
           --  allocations can be performed without getting the alignment from
           --  the type's Type Specific Record.
  
!          if ((Is_Allocate and then No (Alloc_Expr))
!                or else
!              not Is_Class_Wide_Type (Desig_Typ))
!            and then not Use_Secondary_Stack_Pool
           then
              Append_To (Actuals, New_Occurrence_Of (Alig_Id, Loc));
  
--- 1056,1063 ----
           --  allocations can be performed without getting the alignment from
           --  the type's Type Specific Record.
  
!          if (Is_Allocate and then No (Alloc_Expr))
!            or else not Is_Class_Wide_Type (Desig_Typ)
           then
              Append_To (Actuals, New_Occurrence_Of (Alig_Id, Loc));
  
*************** package body Exp_Util is
*** 1107,1134 ****
              --  into the code that reads the value of alignment from the TSD
              --  (see Expand_N_Attribute_Reference)
  
-             --  In the Use_Secondary_Stack_Pool case, Alig_Id is not
-             --  passed in and therefore must not be referenced.
- 
              Append_To (Actuals,
                Unchecked_Convert_To (RTE (RE_Storage_Offset),
                  Make_Attribute_Reference (Loc,
                    Prefix         =>
!                     (if No (Alloc_Expr) then
!                        Make_Explicit_Dereference (Loc, Relocate_Node (Expr))
                       else
!                        Relocate_Node (Expression (Alloc_Expr))),
                    Attribute_Name => Name_Alignment)));
           end if;
  
!          --  h) Is_Controlled
  
           if Needs_Fin then
              Is_Controlled : declare
                 Flag_Id   : constant Entity_Id := Make_Temporary (Loc, 'F');
                 Flag_Expr : Node_Id;
                 Param     : Node_Id;
-                Pref      : Node_Id;
                 Temp      : Node_Id;
  
              begin
--- 1076,1101 ----
              --  into the code that reads the value of alignment from the TSD
              --  (see Expand_N_Attribute_Reference)
  
              Append_To (Actuals,
                Unchecked_Convert_To (RTE (RE_Storage_Offset),
                  Make_Attribute_Reference (Loc,
                    Prefix         =>
!                     (if Is_Allocate then
!                        Duplicate_Subexpr_No_Checks (Expression (Alloc_Expr))
                       else
!                        Make_Explicit_Dereference (Loc,
!                          Duplicate_Subexpr_No_Checks (Expr))),
                    Attribute_Name => Name_Alignment)));
           end if;
  
!          --  g) Is_Controlled
  
           if Needs_Fin then
              Is_Controlled : declare
                 Flag_Id   : constant Entity_Id := Make_Temporary (Loc, 'F');
+ 
                 Flag_Expr : Node_Id;
                 Param     : Node_Id;
                 Temp      : Node_Id;
  
              begin
*************** package body Exp_Util is
*** 1170,1176 ****
                    if Is_RTE (Etype (Temp), RE_Tag_Ptr) then
                       Param :=
                         Make_Explicit_Dereference (Loc,
!                          Prefix => Relocate_Node (Temp));
  
                    --  In the default case, obtain the tag of the object about
                    --  to be allocated / deallocated. Generate:
--- 1137,1143 ----
                    if Is_RTE (Etype (Temp), RE_Tag_Ptr) then
                       Param :=
                         Make_Explicit_Dereference (Loc,
!                          Prefix => Duplicate_Subexpr_No_Checks (Temp));
  
                    --  In the default case, obtain the tag of the object about
                    --  to be allocated / deallocated. Generate:
*************** package body Exp_Util is
*** 1183,1198 ****
                    --  in the code that follows.
  
                    else
!                      Pref := Temp;
! 
!                      if Nkind (Parent (Pref)) = N_Unchecked_Type_Conversion
                       then
!                         Pref := Parent (Pref);
                       end if;
  
                       Param :=
                         Make_Attribute_Reference (Loc,
!                          Prefix         => Relocate_Node (Pref),
                           Attribute_Name => Name_Tag);
                    end if;
  
--- 1150,1163 ----
                    --  in the code that follows.
  
                    else
!                      if Nkind (Parent (Temp)) = N_Unchecked_Type_Conversion
                       then
!                         Temp := Parent (Temp);
                       end if;
  
                       Param :=
                         Make_Attribute_Reference (Loc,
!                          Prefix         => Duplicate_Subexpr_No_Checks (Temp),
                           Attribute_Name => Name_Tag);
                    end if;
  
*************** package body Exp_Util is
*** 1233,1238 ****
--- 1198,1314 ----
                      Expression          => Flag_Expr));
  
                 Append_To (Actuals, New_Occurrence_Of (Flag_Id, Loc));
+ 
+                --  Finalize_Address is not generated in CodePeer mode because
+                --  the body contains address arithmetic. So we don't want to
+                --  generate the attach or detach in this case.
+ 
+                if CodePeer_Mode then
+                   null;
+ 
+                --  Nothing to generate if the flag is statically false
+ 
+                elsif Is_Entity_Name (Flag_Expr)
+                  and then Entity (Flag_Expr) = Standard_False
+                then
+                   null;
+ 
+                --  Generate:
+                --    if F then
+                --       Attach_Object_To_Collection
+                --         (Temp.all'Address,
+                --          Desig_Typ_FD'Access,
+                --          Fin_Coll_Id.all);
+                --    end if;
+ 
+                elsif Is_Allocate then
+                   declare
+                      Stmt : Node_Id;
+                      Temp : Entity_Id;
+ 
+                   begin
+                      --  The original allocator must have been rewritten by
+                      --  the caller at this point and a temporary introduced.
+ 
+                      case Nkind (N) is
+                         when N_Assignment_Statement =>
+                            Temp := New_Copy_Tree (Name (N));
+ 
+                         when N_Object_Declaration =>
+                            Temp :=
+                              New_Occurrence_Of (Defining_Identifier (N), Loc);
+ 
+                         when others =>
+                            raise Program_Error;
+                      end case;
+ 
+                      Stmt :=
+                        Make_If_Statement (Loc,
+                          Condition       =>
+                            New_Occurrence_Of (Flag_Id, Loc),
+                          Then_Statements => New_List (
+                            Make_Procedure_Call_Statement (Loc,
+                              Name =>
+                                New_Occurrence_Of
+                                  (RTE (RE_Attach_Object_To_Collection), Loc),
+                              Parameter_Associations => New_List (
+                                Make_Address_For_Finalize (Loc,
+                                  Make_Explicit_Dereference (Loc, Temp),
+                                  Desig_Typ),
+                                Make_Attribute_Reference (Loc,
+                                  Prefix =>
+                                    New_Occurrence_Of
+                                     (Finalize_Address (Desig_Typ), Loc),
+                                  Attribute_Name => Name_Unrestricted_Access),
+                                Make_Explicit_Dereference (Loc,
+                                  New_Occurrence_Of (Fin_Coll_Id, Loc))))));
+ 
+                      --  If we have a mark past the initialization, then insert
+                      --  the statement there, otherwise insert after either the
+                      --  assignment or the last initialization statement of the
+                      --  declaration of the temporary.
+ 
+                      if Present (Mark) then
+                         Insert_Action (Mark, Stmt, Suppress => All_Checks);
+ 
+                      elsif Nkind (N) = N_Assignment_Statement then
+                         Insert_After_And_Analyze
+                           (N, Stmt, Suppress => All_Checks);
+ 
+                      else
+                         Insert_After_And_Analyze
+                           (Find_Last_Init (N), Stmt, Suppress => All_Checks);
+                      end if;
+                   end;
+ 
+                --  Nothing to generate for the cleanup of an allocator
+ 
+                elsif For_Allocator (N) then
+                   null;
+ 
+                --  Generate:
+                --    if F then
+                --       Detach_Object_From_Collection (Temp.all'Address);
+                --    end if;
+ 
+                else
+                   Insert_Action (N,
+                     Make_If_Statement (Loc,
+                       Condition       => New_Occurrence_Of (Flag_Id, Loc),
+                       Then_Statements => New_List (
+                         Make_Procedure_Call_Statement (Loc,
+                           Name =>
+                             New_Occurrence_Of
+                               (RTE (RE_Detach_Object_From_Collection), Loc),
+                           Parameter_Associations => New_List (
+                             Make_Address_For_Finalize (Loc,
+                               Make_Explicit_Dereference (Loc,
+                                 New_Occurrence_Of
+                                   (Entity (Expression (N)), Loc)),
+                                 Desig_Typ))))),
+                     Suppress => All_Checks);
+                end if;
+ 
              end Is_Controlled;
  
           --  The object is not controlled
*************** package body Exp_Util is
*** 1241,1247 ****
              Append_To (Actuals, New_Occurrence_Of (Standard_False, Loc));
           end if;
  
!          --  i) On_Subpool
  
           if Is_Allocate then
              Append_To (Actuals,
--- 1317,1323 ----
              Append_To (Actuals, New_Occurrence_Of (Standard_False, Loc));
           end if;
  
!          --  h) On_Subpool
  
           if Is_Allocate then
              Append_To (Actuals,
*************** package body Exp_Util is
*** 1259,1310 ****
              Proc_To_Call := RTE (RE_Deallocate_Any_Controlled);
           end if;
  
!          --  Create a custom Allocate / Deallocate routine which has identical
!          --  profile to that of System.Storage_Pools.
  
           declare
-             --  P : Root_Storage_Pool
              function Pool_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Make_Temporary (Loc, 'P'),
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc)));
  
-             --  A : [out] Address
              function Address_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Addr_Id,
                  Out_Present         => Is_Allocate,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Address), Loc)));
  
-             --  S : Storage_Count
              function Size_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Size_Id,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Storage_Count), Loc)));
  
-             --  L : Storage_Count
              function Alignment_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Alig_Id,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Storage_Count), Loc)));
  
!             Formal_Params : List_Id;
!          begin
!             if Use_Secondary_Stack_Pool then
!                --  Gigi expects a different profile in the Secondary_Stack_Pool
!                --  case. There must be no uses of the two missing formals
!                --  (i.e., Pool_Param and Alignment_Param) in this case.
!                Formal_Params := New_List
!                  (Address_Param, Size_Param, Alignment_Param);
!             else
!                Formal_Params := New_List (
!                  Pool_Param, Address_Param, Size_Param, Alignment_Param);
!             end if;
  
              Insert_Action (N,
                Make_Subprogram_Body (Loc,
                  Specification              =>
--- 1335,1385 ----
              Proc_To_Call := RTE (RE_Deallocate_Any_Controlled);
           end if;
  
!          --  Create a custom Allocate/Deallocate routine which has identical
!          --  profile to that of System.Storage_Pools, except for a secondary
!          --  stack allocation where the profile must be identical to that of
!          --  the System.Secondary_Stack.SS_Allocate procedure (deallocation
!          --  is not supported for the secondary stack).
  
           declare
              function Pool_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Make_Temporary (Loc, 'P'),
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc)));
+             --  P : Root_Storage_Pool
  
              function Address_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Addr_Id,
                  Out_Present         => Is_Allocate,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Address), Loc)));
+             --  A : [out] Address
  
              function Size_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Size_Id,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Storage_Count), Loc)));
+             --  S : Storage_Count
  
              function Alignment_Param return Node_Id is (
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Alig_Id,
                  Parameter_Type      =>
                    New_Occurrence_Of (RTE (RE_Storage_Count), Loc)));
+             --  L : Storage_Count
  
!             Formal_Params : constant List_Id :=
!               (if Use_Secondary_Stack_Pool
!                 then New_List (Address_Param, Size_Param, Alignment_Param)
!                 else
!                   New_List
!                     (Pool_Param, Address_Param, Size_Param, Alignment_Param));
!             --  The list of formal parameters of the routine
  
+          begin
              Insert_Action (N,
                Make_Subprogram_Body (Loc,
                  Specification              =>
*************** package body Exp_Util is
*** 3990,4080 ****
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Build_Invariant_Procedure_Declaration;
  
-    --------------------------
-    -- Build_Procedure_Form --
-    --------------------------
- 
-    procedure Build_Procedure_Form (N : Node_Id) is
-       Loc  : constant Source_Ptr := Sloc (N);
-       Subp : constant Entity_Id := Defining_Entity (N);
- 
-       Func_Formal  : Entity_Id;
-       Proc_Formals : List_Id;
-       Proc_Decl    : Node_Id;
- 
-    begin
-       --  No action needed if this transformation was already done, or in case
-       --  of subprogram renaming declarations.
- 
-       if Nkind (Specification (N)) = N_Procedure_Specification
-         or else Nkind (N) = N_Subprogram_Renaming_Declaration
-       then
-          return;
-       end if;
- 
-       --  Ditto when dealing with an expression function, where both the
-       --  original expression and the generated declaration end up being
-       --  expanded here.
- 
-       if Rewritten_For_C (Subp) then
-          return;
-       end if;
- 
-       Proc_Formals := New_List;
- 
-       --  Create a list of formal parameters with the same types as the
-       --  function.
- 
-       Func_Formal := First_Formal (Subp);
-       while Present (Func_Formal) loop
-          Append_To (Proc_Formals,
-            Make_Parameter_Specification (Loc,
-              Defining_Identifier =>
-                Make_Defining_Identifier (Loc, Chars (Func_Formal)),
-              Parameter_Type      =>
-                New_Occurrence_Of (Etype (Func_Formal), Loc)));
- 
-          Next_Formal (Func_Formal);
-       end loop;
- 
-       --  Add an extra out parameter to carry the function result
- 
-       Append_To (Proc_Formals,
-         Make_Parameter_Specification (Loc,
-           Defining_Identifier =>
-             Make_Defining_Identifier (Loc, Name_UP_RESULT),
-           Out_Present         => True,
-           Parameter_Type      => New_Occurrence_Of (Etype (Subp), Loc)));
- 
-       --  The new procedure declaration is inserted before the function
-       --  declaration. The processing in Build_Procedure_Body_Form relies on
-       --  this order. Note that we insert before because in the case of a
-       --  function body with no separate spec, we do not want to insert the
-       --  new spec after the body which will later get rewritten.
- 
-       Proc_Decl :=
-         Make_Subprogram_Declaration (Loc,
-           Specification =>
-             Make_Procedure_Specification (Loc,
-               Defining_Unit_Name       =>
-                 Make_Defining_Identifier (Loc, Chars (Subp)),
-               Parameter_Specifications => Proc_Formals));
- 
-       Insert_Before_And_Analyze (Unit_Declaration_Node (Subp), Proc_Decl);
- 
-       --  Entity of procedure must remain invisible so that it does not
-       --  overload subsequent references to the original function.
- 
-       Set_Is_Immediately_Visible (Defining_Entity (Proc_Decl), False);
- 
-       --  Mark the function as having a procedure form and link the function
-       --  and its internally built procedure.
- 
-       Set_Rewritten_For_C (Subp);
-       Set_Corresponding_Procedure (Subp, Defining_Entity (Proc_Decl));
-       Set_Corresponding_Function (Defining_Entity (Proc_Decl), Subp);
-    end Build_Procedure_Form;
- 
     ------------------------
     -- Build_Runtime_Call --
     ------------------------
--- 4065,4070 ----
*************** package body Exp_Util is
*** 4410,4415 ****
--- 4400,4409 ----
                   Nkind (Parent (Id_Ref)) = N_Assignment_Statement
                     and then
                   Nkind (Expression (Parent (Id_Ref))) = N_Allocator;
+       Id     : constant Node_Id :=
+         (if Nkind (Id_Ref) = N_Expanded_Name then Selector_Name (Id_Ref)
+          else Id_Ref);
+       --  Replace expanded_name X.Y with Y
  
        Component_Suffix_Index : constant Int :=
          (if In_Init_Proc then -1 else 0);
*************** package body Exp_Util is
*** 4435,4445 ****
                 Expression =>
                   Make_String_Literal (Loc,
                     Strval => String_From_Name_Buffer)));
  
!       else
!          if Nkind (Id_Ref) = N_Identifier
!            or else Nkind (Id_Ref) = N_Defining_Identifier
!          then
              --  For a simple variable, the image of the task is built from
              --  the name of the variable. To avoid possible conflict with the
              --  anonymous type created for a single protected object, add a
--- 4429,4438 ----
                 Expression =>
                   Make_String_Literal (Loc,
                     Strval => String_From_Name_Buffer)));
+       end if;
  
!       case Nkind (Id) is
!          when N_Identifier | N_Defining_Identifier =>
              --  For a simple variable, the image of the task is built from
              --  the name of the variable. To avoid possible conflict with the
              --  anonymous type created for a single protected object, add a
*************** package body Exp_Util is
*** 4447,4475 ****
  
              T_Id :=
                Make_Defining_Identifier (Loc,
!                 New_External_Name (Chars (Id_Ref), 'T', 1));
  
!             Get_Name_String (Chars (Id_Ref));
  
              Expr :=
                Make_String_Literal (Loc,
                  Strval => String_From_Name_Buffer);
  
!          elsif Nkind (Id_Ref) = N_Selected_Component then
              T_Id :=
                Make_Defining_Identifier (Loc,
!                 New_External_Name (Chars (Selector_Name (Id_Ref)), 'T',
                    Suffix_Index => Component_Suffix_Index));
!             Fun := Build_Task_Record_Image (Loc, Id_Ref, Is_Dyn);
  
!          elsif Nkind (Id_Ref) = N_Indexed_Component then
              T_Id :=
                Make_Defining_Identifier (Loc,
                  New_External_Name (Chars (A_Type), 'N'));
  
!             Fun := Build_Task_Array_Image (Loc, Id_Ref, A_Type, Is_Dyn);
!          end if;
!       end if;
  
        if Present (Fun) then
           Append (Fun, Decls);
--- 4440,4470 ----
  
              T_Id :=
                Make_Defining_Identifier (Loc,
!                 New_External_Name (Chars (Id), 'T', 1));
  
!             Get_Name_String (Chars (Id));
  
              Expr :=
                Make_String_Literal (Loc,
                  Strval => String_From_Name_Buffer);
  
!          when N_Selected_Component =>
              T_Id :=
                Make_Defining_Identifier (Loc,
!                 New_External_Name (Chars (Selector_Name (Id)), 'T',
                    Suffix_Index => Component_Suffix_Index));
!             Fun := Build_Task_Record_Image (Loc, Id, Is_Dyn);
  
!          when N_Indexed_Component =>
              T_Id :=
                Make_Defining_Identifier (Loc,
                  New_External_Name (Chars (A_Type), 'N'));
  
!             Fun := Build_Task_Array_Image (Loc, Id, A_Type, Is_Dyn);
! 
!          when others =>
!             raise Program_Error;
!       end case;
  
        if Present (Fun) then
           Append (Fun, Decls);
*************** package body Exp_Util is
*** 4527,4540 ****
     -----------------------------
  
     procedure Build_Task_Image_Prefix
!       (Loc    : Source_Ptr;
!        Len    : out Entity_Id;
!        Res    : out Entity_Id;
!        Pos    : out Entity_Id;
!        Prefix : Entity_Id;
!        Sum    : Node_Id;
!        Decls  : List_Id;
!        Stats  : List_Id)
     is
     begin
        Len := Make_Temporary (Loc, 'L', Sum);
--- 4522,4535 ----
     -----------------------------
  
     procedure Build_Task_Image_Prefix
!      (Loc    : Source_Ptr;
!       Len    : out Entity_Id;
!       Res    : out Entity_Id;
!       Pos    : out Entity_Id;
!       Prefix : Entity_Id;
!       Sum    : Node_Id;
!       Decls  : List_Id;
!       Stats  : List_Id)
     is
     begin
        Len := Make_Temporary (Loc, 'L', Sum);
*************** package body Exp_Util is
*** 4775,4910 ****
        return Alloc_Obj;
     end Build_Temporary_On_Secondary_Stack;
  
-    ---------------------------------------
-    -- Build_Transient_Object_Statements --
-    ---------------------------------------
- 
-    procedure Build_Transient_Object_Statements
-      (Obj_Decl     : Node_Id;
-       Fin_Call     : out Node_Id;
-       Hook_Assign  : out Node_Id;
-       Hook_Clear   : out Node_Id;
-       Hook_Decl    : out Node_Id;
-       Ptr_Decl     : out Node_Id;
-       Finalize_Obj : Boolean := True)
-    is
-       Loc     : constant Source_Ptr := Sloc (Obj_Decl);
-       Obj_Id  : constant Entity_Id  := Defining_Entity (Obj_Decl);
-       Obj_Typ : constant Entity_Id  := Base_Type (Etype (Obj_Id));
- 
-       Desig_Typ : Entity_Id;
-       Hook_Expr : Node_Id;
-       Hook_Id   : Entity_Id;
-       Obj_Ref   : Node_Id;
-       Ptr_Typ   : Entity_Id;
- 
-    begin
-       --  Recover the type of the object
- 
-       Desig_Typ := Obj_Typ;
- 
-       if Is_Access_Type (Desig_Typ) then
-          Desig_Typ := Available_View (Designated_Type (Desig_Typ));
-       end if;
- 
-       --  Create an access type which provides a reference to the transient
-       --  object. Generate:
- 
-       --    type Ptr_Typ is access all Desig_Typ;
- 
-       Ptr_Typ := Make_Temporary (Loc, 'A');
-       Mutate_Ekind (Ptr_Typ, E_General_Access_Type);
-       Set_Directly_Designated_Type (Ptr_Typ, Desig_Typ);
- 
-       Ptr_Decl :=
-         Make_Full_Type_Declaration (Loc,
-           Defining_Identifier => Ptr_Typ,
-           Type_Definition     =>
-             Make_Access_To_Object_Definition (Loc,
-               All_Present        => True,
-               Subtype_Indication => New_Occurrence_Of (Desig_Typ, Loc)));
- 
-       --  Create a temporary check which acts as a hook to the transient
-       --  object. Generate:
- 
-       --    Hook : Ptr_Typ := null;
- 
-       Hook_Id := Make_Temporary (Loc, 'T');
-       Mutate_Ekind (Hook_Id, E_Variable);
-       Set_Etype (Hook_Id, Ptr_Typ);
- 
-       Hook_Decl :=
-         Make_Object_Declaration (Loc,
-           Defining_Identifier => Hook_Id,
-           Object_Definition   => New_Occurrence_Of (Ptr_Typ, Loc),
-           Expression          => Make_Null (Loc));
- 
-       --  Mark the temporary as a hook. This signals the machinery in
-       --  Build_Finalizer to recognize this special case.
- 
-       Set_Status_Flag_Or_Transient_Decl (Hook_Id, Obj_Decl);
- 
-       --  Hook the transient object to the temporary. Generate:
- 
-       --    Hook := Ptr_Typ (Obj_Id);
-       --      <or>
-       --    Hool := Obj_Id'Unrestricted_Access;
- 
-       if Is_Access_Type (Obj_Typ) then
-          Hook_Expr :=
-            Unchecked_Convert_To (Ptr_Typ, New_Occurrence_Of (Obj_Id, Loc));
-       else
-          Hook_Expr :=
-            Make_Attribute_Reference (Loc,
-              Prefix         => New_Occurrence_Of (Obj_Id, Loc),
-              Attribute_Name => Name_Unrestricted_Access);
-       end if;
- 
-       Hook_Assign :=
-         Make_Assignment_Statement (Loc,
-           Name       => New_Occurrence_Of (Hook_Id, Loc),
-           Expression => Hook_Expr);
- 
-       --  Crear the hook prior to finalizing the object. Generate:
- 
-       --    Hook := null;
- 
-       Hook_Clear :=
-         Make_Assignment_Statement (Loc,
-           Name       => New_Occurrence_Of (Hook_Id, Loc),
-           Expression => Make_Null (Loc));
- 
-       --  Finalize the object. Generate:
- 
-       --    [Deep_]Finalize (Obj_Ref[.all]);
- 
-       if Finalize_Obj then
-          Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
- 
-          if Is_Access_Type (Obj_Typ) then
-             Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
-             Set_Etype (Obj_Ref, Desig_Typ);
-          end if;
- 
-          Fin_Call :=
-            Make_Final_Call
-              (Obj_Ref => Obj_Ref,
-               Typ     => Desig_Typ);
- 
-       --  Otherwise finalize the hook. Generate:
- 
-       --    [Deep_]Finalize (Hook.all);
- 
-       else
-          Fin_Call :=
-            Make_Final_Call (
-              Obj_Ref =>
-                Make_Explicit_Dereference (Loc,
-                  Prefix => New_Occurrence_Of (Hook_Id, Loc)),
-              Typ     => Desig_Typ);
-       end if;
-    end Build_Transient_Object_Statements;
- 
     -----------------------------
     -- Check_Float_Op_Overflow --
     -----------------------------
--- 4770,4775 ----
*************** package body Exp_Util is
*** 5150,5156 ****
        --  declarations of the package spec.
  
        if Nkind (U) = N_Package_Body then
!          U := Unit (Library_Unit (Cunit (Current_Sem_Unit)));
        end if;
  
        if Nkind (U) = N_Package_Declaration then
--- 5015,5021 ----
        --  declarations of the package spec.
  
        if Nkind (U) = N_Package_Body then
!          U := Unit (Spec_Lib_Unit (Cunit (Current_Sem_Unit)));
        end if;
  
        if Nkind (U) = N_Package_Declaration then
*************** package body Exp_Util is
*** 5174,5179 ****
--- 5039,5061 ----
        return Decls;
     end Current_Sem_Unit_Declarations;
  
+    -------------------------------------------
+    -- Delay_Conditional_Expressions_Between --
+    -------------------------------------------
+ 
+    procedure Delay_Conditional_Expressions_Between (From, To : Node_Id) is
+       N : Node_Id := From;
+ 
+    begin
+       while N /= To loop
+          if Nkind (N) in N_Case_Expression | N_If_Expression then
+             Set_Expansion_Delayed (N);
+          end if;
+ 
+          N := Parent (N);
+       end loop;
+    end Delay_Conditional_Expressions_Between;
+ 
     -----------------------
     -- Duplicate_Subexpr --
     -----------------------
*************** package body Exp_Util is
*** 5193,5215 ****
     ---------------------------------
  
     function Duplicate_Subexpr_No_Checks
!      (Exp           : Node_Id;
!       Name_Req      : Boolean   := False;
!       Renaming_Req  : Boolean   := False;
!       Related_Id    : Entity_Id := Empty;
!       Is_Low_Bound  : Boolean   := False;
!       Is_High_Bound : Boolean   := False) return Node_Id
     is
        New_Exp : Node_Id;
  
     begin
        Remove_Side_Effects
!         (Exp           => Exp,
!          Name_Req      => Name_Req,
!          Renaming_Req  => Renaming_Req,
!          Related_Id    => Related_Id,
!          Is_Low_Bound  => Is_Low_Bound,
!          Is_High_Bound => Is_High_Bound);
  
        New_Exp := New_Copy_Tree (Exp);
        Remove_Checks (New_Exp);
--- 5075,5091 ----
     ---------------------------------
  
     function Duplicate_Subexpr_No_Checks
!      (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id
     is
        New_Exp : Node_Id;
  
     begin
        Remove_Side_Effects
!         (Exp          => Exp,
!          Name_Req     => Name_Req,
!          Renaming_Req => Renaming_Req);
  
        New_Exp := New_Copy_Tree (Exp);
        Remove_Checks (New_Exp);
*************** package body Exp_Util is
*** 5977,5986 ****
     is
        U_Typ : constant Entity_Id := Unique_Entity (Typ);
  
-       Calls_OK : Boolean := False;
-       --  This flag is set to True when expression Expr contains at least one
-       --  call to a nondispatching primitive function of Typ.
- 
        function Search_Primitive_Calls (N : Node_Id) return Traverse_Result;
        --  Search for nondispatching calls to primitive functions of type Typ
  
--- 5853,5858 ----
*************** package body Exp_Util is
*** 6015,6022 ****
                 if Present (Disp_Typ)
                   and then Unique_Entity (Disp_Typ) = U_Typ
                 then
-                   Calls_OK := True;
- 
                    --  There is no need to continue the traversal, as one such
                    --  call suffices.
  
--- 5887,5892 ----
*************** package body Exp_Util is
*** 6028,6040 ****
           return OK;
        end Search_Primitive_Calls;
  
!       procedure Search_Calls is new Traverse_Proc (Search_Primitive_Calls);
  
     --  Start of processing for Expression_Contains_Primitives_Calls_Of_Type
  
     begin
!       Search_Calls (Expr);
!       return Calls_OK;
     end Expression_Contains_Primitives_Calls_Of;
  
     ----------------------
--- 5898,5909 ----
           return OK;
        end Search_Primitive_Calls;
  
!       function Search_Calls is new Traverse_Func (Search_Primitive_Calls);
  
     --  Start of processing for Expression_Contains_Primitives_Calls_Of_Type
  
     begin
!       return Search_Calls (Expr) = Abandon;
     end Expression_Contains_Primitives_Calls_Of;
  
     ----------------------
*************** package body Exp_Util is
*** 6076,6087 ****
  
        Utyp := Underlying_Type (Base_Type (Utyp));
  
-       --  Handle incomplete types
- 
-       if No (Utyp) then
-          return Empty;
-       end if;
- 
        --  Deal with untagged derivation of private views. If the parent is
        --  now known to be protected, the finalization routine is the one
        --  defined on the corresponding record of the ancestor (corresponding
--- 5945,5950 ----
*************** package body Exp_Util is
*** 6121,6126 ****
--- 5984,6006 ----
        return TSS (Utyp, TSS_Finalize_Address);
     end Finalize_Address;
  
+    -----------------------------
+    -- Find_Controlled_Prim_Op --
+    -----------------------------
+ 
+    function Find_Controlled_Prim_Op
+      (T : Entity_Id; Name : Name_Id) return Entity_Id
+    is
+       Op_Name : constant Name_Id := Name_Of_Controlled_Prim_Op (T, Name);
+ 
+    begin
+       if Op_Name = No_Name then
+          return Empty;
+       end if;
+ 
+       return Find_Optional_Prim_Op (T, Op_Name);
+    end Find_Controlled_Prim_Op;
+ 
     ------------------------
     -- Find_Interface_ADT --
     ------------------------
*************** package body Exp_Util is
*** 6220,6226 ****
  
           if not Found
             and then Present (Interfaces (Typ))
!            and then not (Is_Empty_Elmt_List (Interfaces (Typ)))
           then
              --  Skip the tag associated with the primary table
  
--- 6100,6106 ----
  
           if not Found
             and then Present (Interfaces (Typ))
!            and then not Is_Empty_Elmt_List (Interfaces (Typ))
           then
              --  Skip the tag associated with the primary table
  
*************** package body Exp_Util is
*** 6294,6299 ****
--- 6174,6505 ----
        end if;
     end Find_Interface_Tag;
  
+    --------------------
+    -- Find_Last_Init --
+    --------------------
+ 
+    function Find_Last_Init (Decl : Node_Id) return Node_Id is
+       Obj_Id : constant Entity_Id := Defining_Identifier (Decl);
+ 
+       Init_Typ : Entity_Id;
+       --  The initialization type of the related object declaration. Note
+       --  that this is not necessarily the same type as Obj_Typ because of
+       --  possible type derivations.
+ 
+       Obj_Typ : Entity_Id;
+       --  The (designated) type of the object declaration
+ 
+       function Find_Last_Init_In_Block (Blk : Node_Id) return Node_Id;
+       --  Find the last initialization call within the statements of block Blk
+ 
+       function Is_Init_Call (N : Node_Id) return Boolean;
+       --  Determine whether node N denotes one of the initialization procedures
+       --  of types Init_Typ or Typ.
+ 
+       function Next_Suitable_Statement (Stmt : Node_Id) return Node_Id;
+       --  Obtain the next statement which follows list member Stmt while
+       --  ignoring artifacts related to access-before-elaboration checks.
+ 
+       -----------------------------
+       -- Find_Last_Init_In_Block --
+       -----------------------------
+ 
+       function Find_Last_Init_In_Block (Blk : Node_Id) return Node_Id is
+          HSS  : constant Node_Id := Handled_Statement_Sequence (Blk);
+ 
+          Stmt : Node_Id;
+ 
+       begin
+          --  Examine the individual statements of the block in reverse to
+          --  locate the last initialization call.
+ 
+          if Present (HSS) and then Present (Statements (HSS)) then
+             Stmt := Last (Statements (HSS));
+ 
+             while Present (Stmt) loop
+                --  Peek inside nested blocks in case aborts are allowed
+ 
+                if Nkind (Stmt) = N_Block_Statement then
+                   return Find_Last_Init_In_Block (Stmt);
+ 
+                elsif Is_Init_Call (Stmt) then
+                   return Stmt;
+                end if;
+ 
+                Prev (Stmt);
+             end loop;
+          end if;
+ 
+          return Empty;
+       end Find_Last_Init_In_Block;
+ 
+       ------------------
+       -- Is_Init_Call --
+       ------------------
+ 
+       function Is_Init_Call (N : Node_Id) return Boolean is
+          function Is_Init_Proc_Of
+            (Subp : Entity_Id;
+             Typ  : Entity_Id) return Boolean;
+          --  Determine whether subprogram Subp_Id is a valid init proc of
+          --  type Typ.
+ 
+          ---------------------
+          -- Is_Init_Proc_Of --
+          ---------------------
+ 
+          function Is_Init_Proc_Of
+            (Subp : Entity_Id;
+             Typ  : Entity_Id) return Boolean
+          is
+             Deep_Init : Entity_Id := Empty;
+             Prim_Init : Entity_Id := Empty;
+             Type_Init : Entity_Id := Empty;
+ 
+          begin
+             --  Obtain all possible initialization routines of the
+             --  related type and try to match the subprogram entity
+             --  against one of them.
+ 
+             --  Deep_Initialize
+ 
+             Deep_Init := TSS (Typ, TSS_Deep_Initialize);
+ 
+             --  Primitive Initialize
+ 
+             if Is_Controlled (Typ) then
+                Prim_Init := Find_Controlled_Prim_Op (Typ, Name_Initialize);
+ 
+                if Present (Prim_Init) then
+                   Prim_Init := Ultimate_Alias (Prim_Init);
+                end if;
+             end if;
+ 
+             --  Type initialization routine
+ 
+             if Has_Non_Null_Base_Init_Proc (Typ) then
+                Type_Init := Base_Init_Proc (Typ);
+             end if;
+ 
+             return
+               (Present (Deep_Init) and then Subp = Deep_Init)
+                 or else
+               (Present (Prim_Init) and then Subp = Prim_Init)
+                 or else
+               (Present (Type_Init) and then Subp = Type_Init);
+          end Is_Init_Proc_Of;
+ 
+          --  Local variables
+ 
+          Call_Id : Entity_Id;
+ 
+       --  Start of processing for Is_Init_Call
+ 
+       begin
+          if Nkind (N) = N_Procedure_Call_Statement
+            and then Is_Entity_Name (Name (N))
+          then
+             Call_Id := Entity (Name (N));
+ 
+             --  Consider both the type of the object declaration and its
+             --  related initialization type.
+ 
+             return
+               Is_Init_Proc_Of (Call_Id, Init_Typ)
+                 or else
+               Is_Init_Proc_Of (Call_Id, Obj_Typ);
+          end if;
+ 
+          return False;
+       end Is_Init_Call;
+ 
+       -----------------------------
+       -- Next_Suitable_Statement --
+       -----------------------------
+ 
+       function Next_Suitable_Statement (Stmt : Node_Id) return Node_Id is
+          Result : Node_Id;
+ 
+       begin
+          --  Skip call markers and Program_Error raises installed by the
+          --  ABE mechanism.
+ 
+          Result := Next (Stmt);
+          while Present (Result) loop
+             exit when Nkind (Result) not in
+                         N_Call_Marker | N_Raise_Program_Error;
+ 
+             Next (Result);
+          end loop;
+ 
+          return Result;
+       end Next_Suitable_Statement;
+ 
+       --  Local variables
+ 
+       Call      : Node_Id;
+       Last_Init : Node_Id;
+       Stmt      : Node_Id;
+       Stmt_2    : Node_Id;
+ 
+       Deep_Init_Found : Boolean := False;
+       --  A flag set when a call to [Deep_]Initialize has been found
+ 
+    --  Start of processing for Find_Last_Init
+ 
+    begin
+       Last_Init := Decl;
+ 
+       --  Objects that capture controlled function results do not require
+       --  initialization.
+ 
+       if Nkind (Decl) = N_Object_Declaration
+         and then Nkind (Expression (Decl)) = N_Reference
+       then
+          return Last_Init;
+       end if;
+ 
+       Obj_Typ := Base_Type (Etype (Obj_Id));
+ 
+       if Is_Access_Type (Obj_Typ) then
+          Obj_Typ := Base_Type (Available_View (Designated_Type (Obj_Typ)));
+       end if;
+ 
+       --  Handle the initialization type of the object declaration
+ 
+       if Is_Class_Wide_Type (Obj_Typ)
+         and then Nkind (Decl) = N_Object_Declaration
+         and then Nkind (Expression (Decl)) = N_Allocator
+       then
+          Init_Typ := Base_Type (Etype (Expression (Expression (Decl))));
+       else
+          Init_Typ := Obj_Typ;
+       end if;
+ 
+       loop
+          if Is_Private_Type (Init_Typ)
+            and then Present (Full_View (Init_Typ))
+          then
+             Init_Typ := Base_Type (Full_View (Init_Typ));
+ 
+          elsif Is_Concurrent_Type (Init_Typ)
+            and then Present (Corresponding_Record_Type (Init_Typ))
+          then
+             Init_Typ := Corresponding_Record_Type (Init_Typ);
+ 
+          elsif Is_Untagged_Derivation (Init_Typ) then
+             Init_Typ := Root_Type (Init_Typ);
+ 
+          else
+             exit;
+          end if;
+       end loop;
+ 
+       if Present (Freeze_Node (Obj_Id)) then
+          Stmt := First (Actions (Freeze_Node (Obj_Id)));
+       else
+          Stmt := Next_Suitable_Statement (Decl);
+       end if;
+ 
+       --  For an object with suppressed initialization, we check whether
+       --  there is in fact no initialization expression. If there is not,
+       --  then this is an object declaration that has been turned into a
+       --  different object declaration that calls the build-in-place
+       --  function in a 'Reference attribute, as in "F(...)'Reference".
+       --  We search for that later object declaration, so that the
+       --  attachment will be inserted after the call. Otherwise, if the
+       --  call raises an exception, we will finalize the (uninitialized)
+       --  object, which is wrong.
+ 
+       if Nkind (Decl) = N_Object_Declaration
+         and then No_Initialization (Decl)
+       then
+          if No (Expression (Last_Init)) then
+             loop
+                Next (Last_Init);
+ 
+                exit when No (Last_Init);
+                exit when Nkind (Last_Init) = N_Object_Declaration
+                  and then Nkind (Expression (Last_Init)) = N_Reference
+                  and then Nkind (Prefix (Expression (Last_Init))) =
+                             N_Function_Call
+                  and then Is_Expanded_Build_In_Place_Call
+                             (Prefix (Expression (Last_Init)));
+             end loop;
+          end if;
+ 
+          return Last_Init;
+ 
+       --  If the initialization is in the declaration, we're done, so
+       --  early return if we have no more statements or they have been
+       --  rewritten, which means that they were in the source code.
+ 
+       elsif No (Stmt) or else Original_Node (Stmt) /= Stmt then
+          return Last_Init;
+ 
+       --  In all other cases the initialization calls follow the related
+       --  object. The general structure of object initialization built by
+       --  routine Default_Initialize_Object is as follows:
+ 
+       --   [begin                                --  aborts allowed
+       --       Abort_Defer;]
+       --       Type_Init_Proc (Obj);
+       --      [begin]                            --  exceptions allowed
+       --          Deep_Initialize (Obj);
+       --      [exception                         --  exceptions allowed
+       --          when others =>
+       --             Deep_Finalize (Obj, Self => False);
+       --             raise;
+       --       end;]
+       --   [at end                               --  aborts allowed
+       --       Abort_Undefer;
+       --    end;]
+ 
+       --  When aborts are allowed, the initialization calls are housed
+       --  within a block.
+ 
+       elsif Nkind (Stmt) = N_Block_Statement then
+          Call := Find_Last_Init_In_Block (Stmt);
+ 
+          if Present (Call) then
+             Last_Init := Call;
+          end if;
+ 
+       --  Otherwise the initialization calls follow the related object
+ 
+       else
+          Stmt_2 := Next_Suitable_Statement (Stmt);
+ 
+          --  Check for an optional call to Deep_Initialize which may
+          --  appear within a block depending on whether the object has
+          --  controlled components.
+ 
+          if Present (Stmt_2) then
+             if Nkind (Stmt_2) = N_Block_Statement then
+                Call := Find_Last_Init_In_Block (Stmt_2);
+ 
+                if Present (Call) then
+                   Deep_Init_Found := True;
+                   Last_Init       := Call;
+                end if;
+ 
+             elsif Is_Init_Call (Stmt_2) then
+                Deep_Init_Found := True;
+                Last_Init       := Stmt_2;
+             end if;
+          end if;
+ 
+          --  If the object lacks a call to Deep_Initialize, then it must
+          --  have a call to its related type init proc.
+ 
+          if not Deep_Init_Found and then Is_Init_Call (Stmt) then
+             Last_Init := Stmt;
+          end if;
+       end if;
+ 
+       return Last_Init;
+    end Find_Last_Init;
+ 
     ---------------------------
     -- Find_Optional_Prim_Op --
     ---------------------------
*************** package body Exp_Util is
*** 6515,6521 ****
        --  then we need to insert at the appropriate (inner) location in
        --  the not as an action on Node_To_Be_Wrapped.
  
!       In_Cond_Expr : constant Boolean := Within_Case_Or_If_Expression (N);
  
     begin
        --  When the node is inside a case/if expression, the lifetime of any
--- 6721,6727 ----
        --  then we need to insert at the appropriate (inner) location in
        --  the not as an action on Node_To_Be_Wrapped.
  
!       In_Cond_Expr : constant Boolean := Within_Conditional_Expression (N);
  
     begin
        --  When the node is inside a case/if expression, the lifetime of any
*************** package body Exp_Util is
*** 6526,6533 ****
           Par := N;
           Top := N;
           while Present (Par) loop
!             if Nkind (Original_Node (Par)) in
!                  N_Case_Expression | N_If_Expression
              then
                 Top := Par;
  
--- 6732,6745 ----
           Par := N;
           Top := N;
           while Present (Par) loop
!             if Nkind (Original_Node (Par)) in N_Case_Expression
!                                             | N_If_Expression
!             then
!                Top := Par;
! 
!             elsif Nkind (Par) in N_Case_Statement
!                                | N_If_Statement
!               and then From_Conditional_Expression (Par)
              then
                 Top := Par;
  
*************** package body Exp_Util is
*** 6555,6564 ****
                                          | N_Aggregate
                                          | N_Delta_Aggregate
                                          | N_Extension_Aggregate
                and then Nkind (Parent (Par)) not in N_Function_Call
                                                   | N_Procedure_Call_Statement
                                                   | N_Entry_Call_Statement
! 
              then
                 return Par;
  
--- 6767,6779 ----
                                          | N_Aggregate
                                          | N_Delta_Aggregate
                                          | N_Extension_Aggregate
+                                         | N_Elsif_Part
                and then Nkind (Parent (Par)) not in N_Function_Call
                                                   | N_Procedure_Call_Statement
                                                   | N_Entry_Call_Statement
!                                                  | N_Aggregate
!                                                  | N_Delta_Aggregate
!                                                  | N_Extension_Aggregate
              then
                 return Par;
  
*************** package body Exp_Util is
*** 7312,7320 ****
              --  type T identifies T.
  
              when N_Indexed_Component
!               |  N_Selected_Component
!               |  N_Aggregate
!               |  N_Extension_Aggregate
              =>
                 return True;
  
--- 7527,7535 ----
              --  type T identifies T.
  
              when N_Indexed_Component
!                | N_Selected_Component
!                | N_Aggregate
!                | N_Extension_Aggregate
              =>
                 return True;
  
*************** package body Exp_Util is
*** 7402,7407 ****
--- 7617,7648 ----
        return False;
     end In_Unconditional_Context;
  
+    ----------------------------
+    -- Init_Proc_Level_Formal --
+    ----------------------------
+ 
+    function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id is
+       Form : Entity_Id;
+ 
+    begin
+       --  Go through the formals of the initialization procedure Proc to find
+       --  the extra accessibility level parameter associated with the object
+       --  being initialized.
+ 
+       Form := First_Formal (Proc);
+       while Present (Form) loop
+          if Chars (Form) = Name_uInit_Level then
+             return Form;
+          end if;
+ 
+          Next_Formal (Form);
+       end loop;
+ 
+       --  No formal was found, return Empty
+ 
+       return Empty;
+    end Init_Proc_Level_Formal;
+ 
     -------------------
     -- Insert_Action --
     -------------------
*************** package body Exp_Util is
*** 7467,7486 ****
           return;
        end if;
  
-       --  Insert the action when the context is "Handling of Default and Per-
-       --  Object Expressions" only when requested by the caller.
- 
-       if Spec_Expr_OK then
-          null;
- 
        --  Ignore insert of actions from inside default expression (or other
        --  similar "spec expression") in the special spec-expression analyze
        --  mode. Any insertions at this point have no relevance, since we are
        --  only doing the analyze to freeze the types of any static expressions.
        --  See section "Handling of Default and Per-Object Expressions" in the
!       --  spec of package Sem for further details.
  
!       elsif In_Spec_Expression then
           return;
        end if;
  
--- 7708,7727 ----
           return;
        end if;
  
        --  Ignore insert of actions from inside default expression (or other
        --  similar "spec expression") in the special spec-expression analyze
        --  mode. Any insertions at this point have no relevance, since we are
        --  only doing the analyze to freeze the types of any static expressions.
        --  See section "Handling of Default and Per-Object Expressions" in the
!       --  spec of package Sem for further details. However, if the user does
!       --  nevertheless request the insert, then obey it.
  
!       --  Under strict preanalysis we cannot ignore insert of actions because
!       --  we may be adding to the tree a subtype declaration that is required
!       --  for proper preanalysis (see Sem_Ch3.Find_Type_Of_Object).
! 
!       if In_Spec_Expression and then not Spec_Expr_OK then
!          pragma Assert (not In_Strict_Preanalysis);
           return;
        end if;
  
*************** package body Exp_Util is
*** 7796,7801 ****
--- 8037,8046 ----
                 | N_Task_Body
                 | N_Task_Body_Stub
  
+                --  Other things that can occur in stmt or decl lists
+ 
+                | N_Itype_Reference
+ 
                 --  Use clauses can appear in lists of declarations
  
                 | N_Use_Package_Clause
*************** package body Exp_Util is
*** 7896,7904 ****
              --  If a component association appears within a loop created for
              --  an array aggregate, attach the actions to the association so
              --  they can be subsequently inserted within the loop. For other
!             --  component associations insert outside of the aggregate. For
              --  an association that will generate a loop, its Loop_Actions
!             --  attribute is already initialized (see exp_aggr.adb).
  
              --  The list of Loop_Actions can in turn generate additional ones,
              --  that are inserted before the associated node. If the associated
--- 8141,8149 ----
              --  If a component association appears within a loop created for
              --  an array aggregate, attach the actions to the association so
              --  they can be subsequently inserted within the loop. For other
!             --  component associations, insert outside of the aggregate. For
              --  an association that will generate a loop, its Loop_Actions
!             --  field is already initialized (see exp_aggr.adb).
  
              --  The list of Loop_Actions can in turn generate additional ones,
              --  that are inserted before the associated node. If the associated
*************** package body Exp_Util is
*** 7911,7936 ****
                 | N_Iterated_Element_Association
              =>
                 if Nkind (Parent (P)) in N_Aggregate | N_Delta_Aggregate
! 
!                  --  We must not climb up out of an N_Iterated_xxx_Association
!                  --  because the actions might contain references to the loop
!                  --  parameter, except if we come from the Discrete_Choices of
!                  --  N_Iterated_Component_Association which cannot contain any.
!                  --  But it turns out that setting the Loop_Actions field in
!                  --  the case of an N_Component_Association when the field was
!                  --  not already set can lead to gigi assertion failures that
!                  --  are presumably due to malformed trees, so don't do that.
! 
!                  and then (Nkind (P) /= N_Iterated_Component_Association
!                             or else not Is_List_Member (N)
!                             or else
!                               List_Containing (N) /= Discrete_Choices (P))
!                  and then (Nkind (P) /= N_Component_Association
!                             or else Present (Loop_Actions (P)))
                 then
                    if Is_Empty_List (Loop_Actions (P)) then
                       Set_Loop_Actions (P, Ins_Actions);
                       Analyze_List (Ins_Actions);
                    else
                       declare
                          Decl : Node_Id;
--- 8156,8167 ----
                 | N_Iterated_Element_Association
              =>
                 if Nkind (Parent (P)) in N_Aggregate | N_Delta_Aggregate
!                  and then Present (Loop_Actions (P))
                 then
                    if Is_Empty_List (Loop_Actions (P)) then
                       Set_Loop_Actions (P, Ins_Actions);
                       Analyze_List (Ins_Actions);
+ 
                    else
                       declare
                          Decl : Node_Id;
*************** package body Exp_Util is
*** 7960,7968 ****
                    end if;
  
                    return;
- 
-                else
-                   null;
                 end if;
  
              --  Special case: an attribute denoting a procedure call
--- 8191,8196 ----
*************** package body Exp_Util is
*** 8043,8048 ****
--- 8271,8277 ----
                 | N_Expanded_Name
                 | N_Explicit_Dereference
                 | N_Extension_Aggregate
+                | N_External_Initializer
                 | N_Floating_Point_Definition
                 | N_Formal_Decimal_Fixed_Point_Definition
                 | N_Formal_Derived_Type_Definition
*************** package body Exp_Util is
*** 8065,8071 ****
                 | N_Integer_Literal
                 | N_Iterator_Specification
                 | N_Interpolated_String_Literal
-                | N_Itype_Reference
                 | N_Label
                 | N_Loop_Parameter_Specification
                 | N_Mod_Clause
--- 8294,8299 ----
*************** package body Exp_Util is
*** 8137,8143 ****
                 | N_Terminate_Alternative
                 | N_Triggering_Alternative
                 | N_Type_Conversion
-                | N_Unchecked_Expression
                 | N_Unchecked_Type_Conversion
                 | N_Unconstrained_Array_Definition
                 | N_Unused_At_End
--- 8365,8370 ----
*************** package body Exp_Util is
*** 8336,8357 ****
        end if;
     end Is_Captured_Function_Call;
  
     ------------------------------
     -- Is_Finalizable_Transient --
     ------------------------------
  
     function Is_Finalizable_Transient
!      (Decl     : Node_Id;
!       Rel_Node : Node_Id) return Boolean
     is
        Obj_Id  : constant Entity_Id := Defining_Identifier (Decl);
        Obj_Typ : constant Entity_Id := Base_Type (Etype (Obj_Id));
  
-       function Initialized_By_Access (Trans_Id : Entity_Id) return Boolean;
-       --  Determine whether transient object Trans_Id is initialized either
-       --  by a function call which returns an access type or simply renames
-       --  another pointer.
- 
        function Initialized_By_Aliased_BIP_Func_Call
          (Trans_Id : Entity_Id) return Boolean;
        --  Determine whether transient object Trans_Id is initialized by a
--- 8563,8622 ----
        end if;
     end Is_Captured_Function_Call;
  
+    ------------------------------------------
+    -- Is_Conversion_Or_Reference_To_Formal --
+    ------------------------------------------
+ 
+    function Is_Conversion_Or_Reference_To_Formal (N : Node_Id) return Boolean
+    is
+    begin
+       return Nkind (N) in N_Type_Conversion | N_Unchecked_Type_Conversion
+         or else (Nkind (N) = N_Explicit_Dereference
+                   and then Nkind (Prefix (N)) in N_Type_Conversion
+                                                | N_Unchecked_Type_Conversion)
+         or else (Is_Entity_Name (N)
+                   and then Present (Entity (N))
+                   and then Is_Formal (Entity (N)));
+    end Is_Conversion_Or_Reference_To_Formal;
+ 
+    ---------------------------------------
+    -- Is_Delayed_Conditional_Expression --
+    ---------------------------------------
+ 
+    function Is_Delayed_Conditional_Expression (N : Node_Id) return Boolean is
+       Unqual_N : constant Node_Id := Unqualify (N);
+ 
+    begin
+       return Nkind (Unqual_N) in N_Case_Expression | N_If_Expression
+         and then Expansion_Delayed (Unqual_N);
+    end Is_Delayed_Conditional_Expression;
+ 
+    --------------------------------------------------
+    -- Is_Expanded_Class_Wide_Interface_Object_Decl --
+    --------------------------------------------------
+ 
+    function Is_Expanded_Class_Wide_Interface_Object_Decl
+      (N : Node_Id) return Boolean is
+    begin
+       return not Comes_From_Source (N)
+         and then Nkind (Original_Node (N)) = N_Object_Declaration
+         and then Nkind (N) = N_Object_Renaming_Declaration
+         and then Is_Class_Wide_Type (Etype (Defining_Identifier (N)))
+         and then Is_Interface (Etype (Defining_Identifier (N)))
+         and then Nkind (Name (N)) = N_Explicit_Dereference;
+    end Is_Expanded_Class_Wide_Interface_Object_Decl;
+ 
     ------------------------------
     -- Is_Finalizable_Transient --
     ------------------------------
  
     function Is_Finalizable_Transient
!      (Decl : Node_Id;
!       N    : Node_Id) return Boolean
     is
        Obj_Id  : constant Entity_Id := Defining_Identifier (Decl);
        Obj_Typ : constant Entity_Id := Base_Type (Etype (Obj_Id));
  
        function Initialized_By_Aliased_BIP_Func_Call
          (Trans_Id : Entity_Id) return Boolean;
        --  Determine whether transient object Trans_Id is initialized by a
*************** package body Exp_Util is
*** 8360,8365 ****
--- 8625,8635 ----
        --  This case creates an aliasing between the returned value and the
        --  value denoted by BIPaccess.
  
+       function Initialized_By_Reference (Trans_Id : Entity_Id) return Boolean;
+       --  Determine whether transient object Trans_Id is initialized by a
+       --  reference to another object. This is the only case where we can
+       --  possibly finalize a transient object through an access value.
+ 
        function Is_Aliased
          (Trans_Id   : Entity_Id;
           First_Stmt : Node_Id) return Boolean;
*************** package body Exp_Util is
*** 8367,8375 ****
        --  aliased through 'reference in the statement list starting from
        --  First_Stmt.
  
-       function Is_Allocated (Trans_Id : Entity_Id) return Boolean;
-       --  Determine whether transient object Trans_Id is allocated on the heap
- 
        function Is_Indexed_Container
          (Trans_Id   : Entity_Id;
           First_Stmt : Node_Id) return Boolean;
--- 8637,8642 ----
*************** package body Exp_Util is
*** 8388,8407 ****
        --  Return True if N is directly part of a build-in-place return
        --  statement.
  
-       ---------------------------
-       -- Initialized_By_Access --
-       ---------------------------
- 
-       function Initialized_By_Access (Trans_Id : Entity_Id) return Boolean is
-          Expr : constant Node_Id := Expression (Parent (Trans_Id));
- 
-       begin
-          return
-            Present (Expr)
-              and then Nkind (Expr) /= N_Reference
-              and then Is_Access_Type (Etype (Expr));
-       end Initialized_By_Access;
- 
        ------------------------------------------
        -- Initialized_By_Aliased_BIP_Func_Call --
        ------------------------------------------
--- 8655,8660 ----
*************** package body Exp_Util is
*** 8464,8475 ****
                      and then Nkind (Selector_Name (Param)) = N_Identifier
                    then
                       declare
!                         Actual : constant Node_Id
!                           := Explicit_Actual_Parameter (Param);
!                         Formal : constant Node_Id
!                           := Selector_Name (Param);
!                         Name   : constant String
!                           := Get_Name_String (Chars (Formal));
  
                       begin
                          --  A nonnull BIPaccess has been found
--- 8717,8728 ----
                      and then Nkind (Selector_Name (Param)) = N_Identifier
                    then
                       declare
!                         Actual : constant Node_Id :=
!                           Explicit_Actual_Parameter (Param);
!                         Formal : constant Node_Id :=
!                           Selector_Name (Param);
!                         Name   : constant String :=
!                           Get_Name_String (Chars (Formal));
  
                       begin
                          --  A nonnull BIPaccess has been found
*************** package body Exp_Util is
*** 8499,8504 ****
--- 8752,8769 ----
           return False;
        end Initialized_By_Aliased_BIP_Func_Call;
  
+       ------------------------------
+       -- Initialized_By_Reference --
+       ------------------------------
+ 
+       function Initialized_By_Reference (Trans_Id : Entity_Id) return Boolean
+       is
+          Expr : constant Node_Id := Expression (Parent (Trans_Id));
+ 
+       begin
+          return Present (Expr) and then Nkind (Expr) = N_Reference;
+       end Initialized_By_Reference;
+ 
        ----------------
        -- Is_Aliased --
        ----------------
*************** package body Exp_Util is
*** 8508,8516 ****
           First_Stmt : Node_Id) return Boolean
        is
           function Find_Renamed_Object (Ren_Decl : Node_Id) return Entity_Id;
!          --  Given an object renaming declaration, retrieve the entity of the
!          --  renamed name. Return Empty if the renamed name is anything other
!          --  than a variable or a constant.
  
           -------------------------
           -- Find_Renamed_Object --
--- 8773,8782 ----
           First_Stmt : Node_Id) return Boolean
        is
           function Find_Renamed_Object (Ren_Decl : Node_Id) return Entity_Id;
!          --  Given an object renaming declaration, retrieve the entity within
!          --  the renamed name, recursively if this entity is itself a renaming.
!          --  Return Empty if the renamed name contains anything other than a
!          --  variable or a constant.
  
           -------------------------
           -- Find_Renamed_Object --
*************** package body Exp_Util is
*** 8577,8583 ****
                 Search (Constant_Value (Ren_Obj));
              end if;
  
!             return Ren_Obj;
           end Find_Renamed_Object;
  
           --  Local variables
--- 8843,8858 ----
                 Search (Constant_Value (Ren_Obj));
              end if;
  
!             --  Recurse if Ren_Obj is itself a renaming
! 
!             if Present (Ren_Obj)
!               and then Ekind (Ren_Obj) in E_Constant | E_Variable
!               and then Present (Renamed_Object (Ren_Obj))
!             then
!                return Find_Renamed_Object (Declaration_Node (Ren_Obj));
!             else
!                return Ren_Obj;
!             end if;
           end Find_Renamed_Object;
  
           --  Local variables
*************** package body Exp_Util is
*** 8589,8664 ****
        --  Start of processing for Is_Aliased
  
        begin
!          --  A controlled transient object is not considered aliased when it
!          --  appears inside an expression_with_actions node even when there are
!          --  explicit aliases of it:
! 
!          --    do
!          --       Trans_Id : Ctrl_Typ ...;  --  transient object
!          --       Alias : ... := Trans_Id;  --  object is aliased
!          --       Val : constant Boolean :=
!          --               ... Alias ...;    --  aliasing ends
!          --       <finalize Trans_Id>       --  object safe to finalize
!          --    in Val end;
! 
!          --  Expansion ensures that all aliases are encapsulated in the actions
!          --  list and do not leak to the expression by forcing the evaluation
!          --  of the expression.
  
!          if Nkind (Rel_Node) = N_Expression_With_Actions then
!             return False;
  
!          --  Otherwise examine the statements after the controlled transient
!          --  object and look for various forms of aliasing.
  
!          else
!             Stmt := First_Stmt;
!             while Present (Stmt) loop
!                if Nkind (Stmt) = N_Object_Declaration then
!                   Expr := Expression (Stmt);
  
!                   --  Aliasing of the form:
!                   --    Obj : ... := Trans_Id'reference;
  
!                   if Present (Expr)
!                     and then Nkind (Expr) = N_Reference
!                     and then Nkind (Prefix (Expr)) = N_Identifier
!                     and then Entity (Prefix (Expr)) = Trans_Id
!                   then
!                      return True;
!                   end if;
  
!                elsif Nkind (Stmt) = N_Object_Renaming_Declaration then
!                   Ren_Obj := Find_Renamed_Object (Stmt);
  
!                   --  Aliasing of the form:
!                   --    Obj : ... renames ... Trans_Id ...;
  
!                   if Present (Ren_Obj) and then Ren_Obj = Trans_Id then
!                      return True;
!                   end if;
                 end if;
  
!                Next (Stmt);
!             end loop;
  
!             return False;
!          end if;
        end Is_Aliased;
  
-       ------------------
-       -- Is_Allocated --
-       ------------------
- 
-       function Is_Allocated (Trans_Id : Entity_Id) return Boolean is
-          Expr : constant Node_Id := Expression (Parent (Trans_Id));
-       begin
-          return
-            Is_Access_Type (Etype (Trans_Id))
-              and then Present (Expr)
-              and then Nkind (Expr) = N_Allocator;
-       end Is_Allocated;
- 
        --------------------------
        -- Is_Indexed_Container --
        --------------------------
--- 8864,8918 ----
        --  Start of processing for Is_Aliased
  
        begin
!          --  Examine the statements following the controlled object and look
!          --  for various forms of aliasing.
  
!          Stmt := First_Stmt;
!          while Present (Stmt) loop
!             --  Transient objects initialized by a reference are finalized
!             --  (see Initialized_By_Reference above), so we must make sure
!             --  not to finalize the referenced object twice. And we cannot
!             --  finalize it at all if it is referenced by the nontransient
!             --  object serviced by the transient scope.
  
!             if Nkind (Stmt) = N_Object_Declaration then
!                Expr := Expression (Stmt);
  
!                --  Aliasing of the form:
!                --    Obj : ... := Trans_Id'reference;
  
!                if Present (Expr)
!                  and then Nkind (Expr) = N_Reference
!                  and then Is_Entity_Name (Prefix (Expr))
!                  and then Entity (Prefix (Expr)) = Trans_Id
!                then
!                   return True;
!                end if;
  
!             --  (Transient) renamings are never finalized so we need not bother
!             --  about finalizing transient renamed objects twice. Therefore, we
!             --  we only need to look at the nontransient object serviced by the
!             --  transient scope, if it exists and is declared as a renaming.
  
!             elsif Nkind (Stmt) = N_Object_Renaming_Declaration
!               and then Stmt = N
!             then
!                Ren_Obj := Find_Renamed_Object (Stmt);
  
!                --  Aliasing of the form:
!                --    Obj : ... renames ... Trans_Id ...;
  
!                if Present (Ren_Obj) and then Ren_Obj = Trans_Id then
!                   return True;
                 end if;
+             end if;
  
!             Next (Stmt);
!          end loop;
  
!          return False;
        end Is_Aliased;
  
        --------------------------
        -- Is_Indexed_Container --
        --------------------------
*************** package body Exp_Util is
*** 8696,8702 ****
           Aspect := Find_Value_Of_Aspect (Typ, Aspect_Constant_Indexing);
  
           if Present (Aspect) then
!             Index := Entity (Aspect);
  
              --  Examine the statements following the container object and
              --  look for a call to the default indexing routine where the
--- 8950,8956 ----
           Aspect := Find_Value_Of_Aspect (Typ, Aspect_Constant_Indexing);
  
           if Present (Aspect) then
!             Index := Ultimate_Alias (Entity (Aspect));
  
              --  Examine the statements following the container object and
              --  look for a call to the default indexing routine where the
*************** package body Exp_Util is
*** 8781,8787 ****
           Aspect := Find_Value_Of_Aspect (Typ, Aspect_Default_Iterator);
  
           if Present (Aspect) then
!             Iter := Entity (Aspect);
  
              --  Examine the statements following the container object and
              --  look for a call to the default iterate routine where the
--- 9035,9041 ----
           Aspect := Find_Value_Of_Aspect (Typ, Aspect_Default_Iterator);
  
           if Present (Aspect) then
!             Iter := Ultimate_Alias (Entity (Aspect));
  
              --  Examine the statements following the container object and
              --  look for a call to the default iterate routine where the
*************** package body Exp_Util is
*** 8874,8881 ****
        return
          Ekind (Obj_Id) in E_Constant | E_Variable
            and then Needs_Finalization (Desig)
!           and then Nkind (Rel_Node) /= N_Simple_Return_Statement
!           and then not Is_Part_Of_BIP_Return_Statement (Rel_Node)
  
            --  Do not consider a transient object that was already processed
  
--- 9128,9135 ----
        return
          Ekind (Obj_Id) in E_Constant | E_Variable
            and then Needs_Finalization (Desig)
!           and then Nkind (N) /= N_Simple_Return_Statement
!           and then not Is_Part_Of_BIP_Return_Statement (N)
  
            --  Do not consider a transient object that was already processed
  
*************** package body Exp_Util is
*** 8886,8902 ****
  
            and then not Is_Aliased (Obj_Id, Decl)
  
!           --  Do not consider transient objects allocated on the heap since
!           --  they are attached to a finalization master.
! 
!           and then not Is_Allocated (Obj_Id)
! 
!           --  If the transient object is a pointer, check that it is not
!           --  initialized by a function that returns a pointer or acts as a
!           --  renaming of another pointer.
  
!           and then not
!             (Is_Access_Type (Obj_Typ) and then Initialized_By_Access (Obj_Id))
  
            --  Do not consider transient objects which act as indirect aliases
            --  of build-in-place function results.
--- 9140,9150 ----
  
            and then not Is_Aliased (Obj_Id, Decl)
  
!           --  If the transient object is of an access type, check that it is
!           --  initialized by a reference to another object.
  
!           and then (not Is_Access_Type (Obj_Typ)
!                      or else Initialized_By_Reference (Obj_Id))
  
            --  Do not consider transient objects which act as indirect aliases
            --  of build-in-place function results.
*************** package body Exp_Util is
*** 8966,8971 ****
--- 9214,9229 ----
        return Is_Tagged_Type (Typ) and then Is_Library_Level_Entity (Typ);
     end Is_Library_Level_Tagged_Type;
  
+    --------------------
+    -- Is_LSP_Wrapper --
+    --------------------
+ 
+    function Is_LSP_Wrapper (E : Entity_Id) return Boolean is
+    begin
+       return Is_Dispatch_Table_Wrapper (E)
+         and then Present (LSP_Subprogram (E));
+    end Is_LSP_Wrapper;
+ 
     --------------------------
     -- Is_Non_BIP_Func_Call --
     --------------------------
*************** package body Exp_Util is
*** 9874,9886 ****
     --  representation of the extension part.)
  
     function Make_CW_Equivalent_Type
!      (T : Entity_Id;
!       E : Node_Id) return Entity_Id
     is
        Loc         : constant Source_Ptr := Sloc (E);
        Root_Typ    : constant Entity_Id  := Root_Type (T);
        Root_Utyp   : constant Entity_Id  := Underlying_Type (Root_Typ);
-       List_Def    : constant List_Id    := Empty_List;
        Comp_List   : constant List_Id    := New_List;
  
        Equiv_Type  : Entity_Id;
--- 10132,10144 ----
     --  representation of the extension part.)
  
     function Make_CW_Equivalent_Type
!      (T        : Entity_Id;
!       E        : Node_Id;
!       List_Def : out List_Id) return Entity_Id
     is
        Loc         : constant Source_Ptr := Sloc (E);
        Root_Typ    : constant Entity_Id  := Root_Type (T);
        Root_Utyp   : constant Entity_Id  := Underlying_Type (Root_Typ);
        Comp_List   : constant List_Id    := New_List;
  
        Equiv_Type  : Entity_Id;
*************** package body Exp_Util is
*** 9891,9896 ****
--- 10149,10156 ----
        Size_Expr   : Node_Id;
  
     begin
+       List_Def := New_List;
+ 
        --  If the root type is already constrained, there are no discriminants
        --  in the expression.
  
*************** package body Exp_Util is
*** 9928,9934 ****
        --  need to convert it first to the class-wide type to force a call to
        --  the _Size primitive operation.
  
!       if Has_Tag_Of_Type (E) then
           if not Has_Discriminants (Etype (E))
             or else Is_Constrained (Etype (E))
           then
--- 10188,10197 ----
        --  need to convert it first to the class-wide type to force a call to
        --  the _Size primitive operation.
  
!       if No (E) then
!          Size_Attr := Make_Integer_Literal (Loc, RM_Size (T));
! 
!       elsif Has_Tag_Of_Type (E) then
           if not Has_Discriminants (Etype (E))
             or else Is_Constrained (Etype (E))
           then
*************** package body Exp_Util is
*** 9951,9957 ****
               Attribute_Name => Name_Size);
        end if;
  
!       if not Is_Interface (Root_Typ) then
  
           --  subtype rg__xx is
           --    Storage_Offset range 1 .. (Exp'size - Typ'object_size)
--- 10214,10220 ----
               Attribute_Name => Name_Size);
        end if;
  
!       if not Is_Interface (Root_Typ) and then Present (E) then
  
           --  subtype rg__xx is
           --    Storage_Offset range 1 .. (Exp'size - Typ'object_size)
*************** package body Exp_Util is
*** 10031,10048 ****
  
        Set_Is_Class_Wide_Equivalent_Type (Equiv_Type);
  
!       --  A class-wide equivalent type does not require initialization
  
!       Set_Suppress_Initialization (Equiv_Type);
  
!       if not Is_Interface (Root_Typ) then
           Append_To (Comp_List,
             Make_Component_Declaration (Loc,
               Defining_Identifier  =>
                 Make_Defining_Identifier (Loc, Name_uParent),
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication => New_Occurrence_Of (Constr_Root, Loc))));
  
           Set_Reverse_Storage_Order
--- 10294,10314 ----
  
        Set_Is_Class_Wide_Equivalent_Type (Equiv_Type);
  
!       --  A class-wide equivalent type does not require initialization unless
!       --  no expression is present - in which case initialization gets
!       --  generated as part of the mutably tagged type machinery.
  
!       if Present (E) then
!          Set_Suppress_Initialization (Equiv_Type);
!       end if;
  
!       if not Is_Interface (Root_Typ) and Present (E) then
           Append_To (Comp_List,
             Make_Component_Declaration (Loc,
               Defining_Identifier  =>
                 Make_Defining_Identifier (Loc, Name_uParent),
               Component_Definition =>
                 Make_Component_Definition (Loc,
                   Subtype_Indication => New_Occurrence_Of (Constr_Root, Loc))));
  
           Set_Reverse_Storage_Order
*************** package body Exp_Util is
*** 10057,10065 ****
                 Make_Defining_Identifier (Loc, Name_uTag),
               Component_Definition =>
                 Make_Component_Definition (Loc,
-                  Aliased_Present    => False,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Tag), Loc))));
        end if;
  
        Append_To (Comp_List,
--- 10323,10332 ----
                 Make_Defining_Identifier (Loc, Name_uTag),
               Component_Definition =>
                 Make_Component_Definition (Loc,
                   Subtype_Indication =>
                     New_Occurrence_Of (RTE (RE_Tag), Loc))));
+ 
+          Set_Is_Tag (Defining_Identifier (Last (Comp_List)));
        end if;
  
        Append_To (Comp_List,
*************** package body Exp_Util is
*** 10067,10073 ****
            Defining_Identifier  => Make_Temporary (Loc, 'C'),
            Component_Definition =>
              Make_Component_Definition (Loc,
-               Aliased_Present    => False,
                Subtype_Indication => New_Occurrence_Of (Str_Type, Loc))));
  
        Append_To (List_Def,
--- 10334,10339 ----
*************** package body Exp_Util is
*** 10080,10096 ****
                    Component_Items => Comp_List,
                    Variant_Part    => Empty))));
  
-       --  Suppress all checks during the analysis of the expanded code to avoid
-       --  the generation of spurious warnings under ZFP run-time.
- 
-       Insert_Actions (E, List_Def, Suppress => All_Checks);
- 
-       --  In the case of an interface type mark the tag for First_Tag_Component
- 
-       if Is_Interface (Root_Typ) then
-          Set_Is_Tag (First_Entity (Equiv_Type));
-       end if;
- 
        return Equiv_Type;
     end Make_CW_Equivalent_Type;
  
--- 10346,10351 ----
*************** package body Exp_Util is
*** 10104,10111 ****
        pragma Assert (Has_Invariants (Typ));
        Proc_Id  : constant Entity_Id := Invariant_Procedure (Typ);
        pragma Assert (Present (Proc_Id));
!       Inv_Typ  : constant Entity_Id
!                    := Base_Type (Etype (First_Formal (Proc_Id)));
  
        Arg : Node_Id;
  
--- 10359,10366 ----
        pragma Assert (Has_Invariants (Typ));
        Proc_Id  : constant Entity_Id := Invariant_Procedure (Typ);
        pragma Assert (Present (Proc_Id));
!       Inv_Typ  : constant Entity_Id :=
!         Base_Type (Etype (First_Formal (Proc_Id)));
  
        Arg : Node_Id;
  
*************** package body Exp_Util is
*** 10401,10412 ****
           Set_Is_Itype       (Priv_Subtyp);
           Set_Associated_Node_For_Itype (Priv_Subtyp, E);
  
!          if Is_Tagged_Type  (Priv_Subtyp) then
!             Set_Class_Wide_Type
!               (Base_Type (Priv_Subtyp), Class_Wide_Type (Unc_Typ));
!             Set_Direct_Primitive_Operations (Priv_Subtyp,
!               Direct_Primitive_Operations (Unc_Typ));
!          end if;
  
           Set_Full_View (Priv_Subtyp, Full_Subtyp);
  
--- 10656,10663 ----
           Set_Is_Itype       (Priv_Subtyp);
           Set_Associated_Node_For_Itype (Priv_Subtyp, E);
  
!          Set_Direct_Primitive_Operations
!            (Priv_Subtyp, Direct_Primitive_Operations (Unc_Typ));
  
           Set_Full_View (Priv_Subtyp, Full_Subtyp);
  
*************** package body Exp_Util is
*** 10479,10484 ****
--- 10730,10736 ----
           declare
              CW_Subtype : constant Entity_Id :=
                             New_Class_Wide_Subtype (Unc_Typ, E);
+             Equiv_Def : List_Id;
  
           begin
              --  A class-wide equivalent type is not needed on VM targets
*************** package body Exp_Util is
*** 10502,10508 ****
                 end if;
  
                 Set_Equivalent_Type
!                  (CW_Subtype, Make_CW_Equivalent_Type (Unc_Typ, E));
              end if;
  
              Set_Cloned_Subtype (CW_Subtype, Base_Type (Unc_Typ));
--- 10754,10767 ----
                 end if;
  
                 Set_Equivalent_Type
!                  (CW_Subtype, Make_CW_Equivalent_Type (Unc_Typ, E, Equiv_Def));
! 
!                 --  Suppress all checks during the analysis of the expanded
!                 --  code to avoid the generation of spurious warnings under
!                 --  ZFP run-time.
! 
!                Insert_Actions
!                  (E, Equiv_Def, Suppress => All_Checks);
              end if;
  
              Set_Cloned_Subtype (CW_Subtype, Base_Type (Unc_Typ));
*************** package body Exp_Util is
*** 10612,10618 ****
           --  operator on private type might not be visible and won't be
           --  resolved.
  
!          else pragma Assert (Is_RTE (Base_Type (Typ), RE_Big_Integer));
              return
                Make_Function_Call (Loc,
                  Name                   =>
--- 10871,10881 ----
           --  operator on private type might not be visible and won't be
           --  resolved.
  
!          else pragma Assert (Is_RTE (Base_Type (Typ), RE_Big_Integer)
!                                or else
!                              Is_RTE (Base_Type (Typ), RO_GH_Big_Integer)
!                                or else
!                              Is_RTE (Base_Type (Typ), RO_SP_Big_Integer));
              return
                Make_Function_Call (Loc,
                  Name                   =>
*************** package body Exp_Util is
*** 11329,11334 ****
--- 11592,11658 ----
        return True;
     end May_Generate_Large_Temp;
  
+    ---------------------------------------
+    -- Move_To_Initialization_Statements --
+    ---------------------------------------
+ 
+    procedure Move_To_Initialization_Statements (Decl, Stop : Node_Id) is
+       Obj_Id : constant Entity_Id := Defining_Identifier (Decl);
+       Stmts  : constant List_Id   := New_List;
+       Stmt   : constant Node_Id   :=
+                  Make_Compound_Statement (Sloc (Decl), Actions => Stmts);
+ 
+    begin
+       while Next (Decl) /= Stop loop
+          Append_To (Stmts, Remove_Next (Decl));
+       end loop;
+ 
+       pragma Assert (No (Initialization_Statements (Obj_Id)));
+ 
+       Insert_After (Decl, Stmt);
+       Set_Initialization_Statements (Obj_Id, Stmt);
+    end Move_To_Initialization_Statements;
+ 
+    --------------------------------
+    -- Name_Of_Controlled_Prim_Op --
+    --------------------------------
+ 
+    function Name_Of_Controlled_Prim_Op
+      (Typ : Entity_Id;
+       Nam : Name_Id) return Name_Id
+    is
+    begin
+       pragma Assert (Is_Controlled (Typ));
+ 
+       --  The aspect Finalizable may change the name of the primitives when
+       --  present, but it's a GNAT extension.
+ 
+       if Core_Extensions_Allowed then
+          declare
+             Rep : constant Node_Id :=
+               Get_Rep_Item (Typ, Name_Finalizable, Check_Parents => True);
+ 
+             Assoc : Node_Id;
+ 
+          begin
+             if Present (Rep) then
+                Assoc := First (Component_Associations (Expression (Rep)));
+                while Present (Assoc) loop
+                   if Chars (First (Choices (Assoc))) = Nam then
+                      return Chars (Expression (Assoc));
+                   end if;
+ 
+                   Next (Assoc);
+                end loop;
+ 
+                return No_Name;
+             end if;
+          end;
+       end if;
+ 
+       return Nam;
+    end Name_Of_Controlled_Prim_Op;
+ 
     --------------------------------------------
     -- Needs_Conditional_Null_Excluding_Check --
     --------------------------------------------
*************** package body Exp_Util is
*** 11394,11399 ****
--- 11718,11739 ----
        end if;
     end Needs_Constant_Address;
  
+    -------------------------------------
+    -- Needs_Initialization_Statements --
+    -------------------------------------
+ 
+    function Needs_Initialization_Statements (Decl : Node_Id) return Boolean is
+       Obj_Id : constant Entity_Id := Defining_Identifier (Decl);
+ 
+    begin
+       --  See the documentation of Initialization_Statements in Einfo
+ 
+       return Comes_From_Source (Decl)
+         and then (Has_Delayed_Aspects (Obj_Id)
+                    or else Present (Following_Address_Clause (Decl))
+                    or else Init_Or_Norm_Scalars);
+    end Needs_Initialization_Statements;
+ 
     ----------------------------
     -- New_Class_Wide_Subtype --
     ----------------------------
*************** package body Exp_Util is
*** 11855,11860 ****
--- 12195,12216 ----
           Init_Call := Initialization_Statements (Var);
           Set_Initialization_Statements (Var, Empty);
  
+          --  Note that we rewrite Init_Call into a null statement, rather than
+          --  just removing it, because Freeze_All may rely on this particular
+          --  node still being present in the enclosing list to know where to
+          --  stop freezing (see Explode_Initialization_Compound_Statement).
+ 
+          if Nkind (Init_Call) = N_Compound_Statement then
+             declare
+                Init_Actions : constant List_Id    := Actions (Init_Call);
+                Loc          : constant Source_Ptr := Sloc (Init_Call);
+ 
+             begin
+                Rewrite (Init_Call, Make_Null_Statement (Loc));
+                return Make_Compound_Statement (Loc, Init_Actions);
+             end;
+          end if;
+ 
        elsif not Has_Non_Null_Base_Init_Proc (Typ) then
  
           --  No init proc for the type, so obviously no call to be found
*************** package body Exp_Util is
*** 12053,12059 ****
  
                          --  When this routine is called while the itype
                          --  is being created, the entity might not yet be
!                         --  decorated with the associated node, but should
                          --  have the related expression.
  
                          if Present (Associated_Node_For_Itype (Subt)) then
--- 12409,12415 ----
  
                          --  When this routine is called while the itype
                          --  is being created, the entity might not yet be
!                         --  decorated with the associated node, but will
                          --  have the related expression.
  
                          if Present (Associated_Node_For_Itype (Subt)) then
*************** package body Exp_Util is
*** 12061,12081 ****
                               Possible_Side_Effect_In_SPARK
                                 (Associated_Node_For_Itype (Subt));
  
!                         elsif Present (Related_Expression (Subt)) then
                             return
                               Possible_Side_Effect_In_SPARK
                                 (Related_Expression (Subt));
- 
-                         --  When the itype doesn't have any indication of its
-                         --  origin (which currently only happens for packed
-                         --  array types created by freezing that shouldn't
-                         --  be picked by GNATprove anyway), then we can
-                         --  conservatively assume that the expression can
-                         --  be kept as it appears in the source code.
- 
-                         else
-                            pragma Assert (Is_Packed_Array_Impl_Type (Subt));
-                            return False;
                          end if;
                       else
                          return True;
--- 12417,12426 ----
                               Possible_Side_Effect_In_SPARK
                                 (Associated_Node_For_Itype (Subt));
  
!                         else
                             return
                               Possible_Side_Effect_In_SPARK
                                 (Related_Expression (Subt));
                          end if;
                       else
                          return True;
*************** package body Exp_Util is
*** 12131,12146 ****
          and then Side_Effect_Free (Exp, Name_Req, Variable_Ref)
        then
           return;
- 
-       --  Generating C code we cannot remove side effect of function returning
-       --  class-wide types since there is no secondary stack (required to use
-       --  'reference).
- 
-       elsif Modify_Tree_For_C
-         and then Nkind (Exp) = N_Function_Call
-         and then Is_Class_Wide_Type (Etype (Exp))
-       then
-          return;
        end if;
  
        --  The remaining processing is done with all checks suppressed
--- 12476,12481 ----
*************** package body Exp_Util is
*** 12283,12312 ****
          and then Etype (Expression (Exp)) /= Universal_Integer
        then
           Remove_Side_Effects (Expression (Exp), Name_Req, Variable_Ref);
! 
!          --  Generating C code the type conversion of an access to constrained
!          --  array type into an access to unconstrained array type involves
!          --  initializing a fat pointer and the expression must be free of
!          --  side effects to safely compute its bounds.
! 
!          if Modify_Tree_For_C
!            and then Is_Access_Type (Etype (Exp))
!            and then Is_Array_Type (Designated_Type (Etype (Exp)))
!            and then not Is_Constrained (Designated_Type (Etype (Exp)))
!          then
!             Def_Id := Build_Temporary (Loc, 'R', Exp);
!             Set_Etype (Def_Id, Exp_Type);
!             Res := New_Occurrence_Of (Def_Id, Loc);
! 
!             Insert_Action (Exp,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Occurrence_Of (Exp_Type, Loc),
!                 Constant_Present    => True,
!                 Expression          => Relocate_Node (Exp)));
!          else
!             goto Leave;
!          end if;
  
        --  If this is an unchecked conversion that Gigi can't handle, make
        --  a copy or a use a renaming to capture the value.
--- 12618,12624 ----
          and then Etype (Expression (Exp)) /= Universal_Integer
        then
           Remove_Side_Effects (Expression (Exp), Name_Req, Variable_Ref);
!          goto Leave;
  
        --  If this is an unchecked conversion that Gigi can't handle, make
        --  a copy or a use a renaming to capture the value.
*************** package body Exp_Util is
*** 12392,12421 ****
        --  Otherwise we generate a reference to the expression
  
        else
-          --  When generating C code we cannot consider side-effect-free object
-          --  declarations that have discriminants and are initialized by means
-          --  of a function call since on this target there is no secondary
-          --  stack to store the return value and the expander may generate an
-          --  extra call to the function to compute the discriminant value. In
-          --  addition, for targets that have secondary stack, the expansion of
-          --  functions with side effects involves the generation of an access
-          --  type to capture the return value stored in the secondary stack;
-          --  by contrast when generating C code such expansion generates an
-          --  internal object declaration (no access type involved) which must
-          --  be identified here to avoid entering into a never-ending loop
-          --  generating internal object declarations.
- 
-          if Modify_Tree_For_C
-            and then Nkind (Parent (Exp)) = N_Object_Declaration
-            and then
-              (Nkind (Exp) /= N_Function_Call
-                 or else not Has_Discriminants (Exp_Type)
-                 or else Is_Internal_Name
-                           (Chars (Defining_Identifier (Parent (Exp)))))
-          then
-             goto Leave;
-          end if;
- 
           --  Special processing for function calls that return a limited type.
           --  We need to build a declaration that will enable build-in-place
           --  expansion of the call. This is not done if the context is already
--- 12704,12709 ----
*************** package body Exp_Util is
*** 12454,12463 ****
           --  the secondary stack. Since SPARK (and why) cannot process access
           --  types, use a different approach which ignores the secondary stack
           --  and "copies" the returned object.
-          --  When generating C code, no need for a 'reference since the
-          --  secondary stack is not supported.
  
!          if GNATprove_Mode or Modify_Tree_For_C then
              Res := New_Occurrence_Of (Def_Id, Loc);
              Ref_Type := Exp_Type;
  
--- 12742,12749 ----
           --  the secondary stack. Since SPARK (and why) cannot process access
           --  types, use a different approach which ignores the secondary stack
           --  and "copies" the returned object.
  
!          if GNATprove_Mode then
              Res := New_Occurrence_Of (Def_Id, Loc);
              Ref_Type := Exp_Type;
  
*************** package body Exp_Util is
*** 12492,12507 ****
           else
              E := Relocate_Node (E);
  
!             --  Do not generate a 'reference in SPARK mode or C generation
!             --  since the access type is not created in the first place.
  
!             if GNATprove_Mode or Modify_Tree_For_C then
                 New_Exp := E;
  
              --  Otherwise generate reference, marking the value as non-null
              --  since we know it cannot be null and we don't want a check.
  
              else
                 New_Exp := Make_Reference (Loc, E);
                 Set_Is_Known_Non_Null (Def_Id);
              end if;
--- 12778,12822 ----
           else
              E := Relocate_Node (E);
  
!             --  Do not generate a 'reference in SPARK mode since the access
!             --  type is not created in the first place.
  
!             if GNATprove_Mode then
                 New_Exp := E;
  
              --  Otherwise generate reference, marking the value as non-null
              --  since we know it cannot be null and we don't want a check.
  
              else
+                --  Make_Reference assumes that the referenced
+                --  object satisfies the constraints of the designated
+                --  subtype of the access type. Ensure that this assumption
+                --  holds by introducing a qualified expression if needed.
+ 
+                if not Analyzed (Exp)
+                  and then Nkind (Exp) = N_Aggregate
+                  and then (Is_Array_Type (Exp_Type)
+                            or else Has_Discriminants (Exp_Type))
+                  and then Is_Constrained (Exp_Type)
+                then
+                   --  Do not suppress checks associated with the qualified
+                   --  expression we are about to introduce (unless those
+                   --  checks were already suppressed when Remove_Side_Effects
+                   --  was called).
+ 
+                   if Is_Array_Type (Exp_Type) then
+                      Scope_Suppress.Suppress (Length_Check) :=
+                        Svg_Suppress.Suppress (Length_Check);
+                   else
+                      Scope_Suppress.Suppress (Discriminant_Check) :=
+                        Svg_Suppress.Suppress (Discriminant_Check);
+                   end if;
+ 
+                   E := Make_Qualified_Expression (Loc,
+                          Subtype_Mark => New_Occurrence_Of (Exp_Type, Loc),
+                          Expression => E);
+                end if;
+ 
                 New_Exp := Make_Reference (Loc, E);
                 Set_Is_Known_Non_Null (Def_Id);
              end if;
*************** package body Exp_Util is
*** 12526,12564 ****
              Set_Analyzed (E, False);
           end if;
  
!          --  Generating C code of object declarations that have discriminants
!          --  and are initialized by means of a function call we propagate the
!          --  discriminants of the parent type to the internally built object.
!          --  This is needed to avoid generating an extra call to the called
!          --  function.
! 
!          --  For example, if we generate here the following declaration, it
!          --  will be expanded later adding an extra call to evaluate the value
!          --  of the discriminant (needed to compute the size of the object).
!          --
!          --     type Rec (D : Integer) is ...
!          --     Obj : constant Rec := SomeFunc;
! 
!          if Modify_Tree_For_C
!            and then Nkind (Parent (Exp)) = N_Object_Declaration
!            and then Has_Discriminants (Exp_Type)
!            and then Nkind (Exp) = N_Function_Call
!          then
!             Insert_Action (Exp,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Copy_Tree
!                                          (Object_Definition (Parent (Exp))),
!                 Constant_Present    => True,
!                 Expression          => New_Exp));
!          else
!             Insert_Action (Exp,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Occurrence_Of (Ref_Type, Loc),
!                 Constant_Present    => True,
!                 Expression          => New_Exp));
!          end if;
        end if;
  
        --  Preserve the Assignment_OK flag in all copies, since at least one
--- 12841,12852 ----
              Set_Analyzed (E, False);
           end if;
  
!          Insert_Action (Exp,
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Def_Id,
!              Object_Definition   => New_Occurrence_Of (Ref_Type, Loc),
!              Constant_Present    => True,
!              Expression          => New_Exp));
        end if;
  
        --  Preserve the Assignment_OK flag in all copies, since at least one
*************** package body Exp_Util is
*** 12863,12876 ****
        begin
           --  Examine the list of actual and formal parameters in parallel
  
!          A := First (Parameter_Associations (Call));
           F := First_Formal (Entity (Name (Call)));
           while Present (A) and then Present (F) loop
              if A = Actual then
                 return Etype (F);
              end if;
  
!             Next (A);
              Next_Formal (F);
           end loop;
  
--- 13151,13164 ----
        begin
           --  Examine the list of actual and formal parameters in parallel
  
!          A := First_Actual (Call);
           F := First_Formal (Entity (Name (Call)));
           while Present (A) and then Present (F) loop
              if A = Actual then
                 return Etype (F);
              end if;
  
!             Next_Actual (A);
              Next_Formal (F);
           end loop;
  
*************** package body Exp_Util is
*** 13104,13109 ****
--- 13392,13405 ----
              elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                 null;
  
+             --  Conversely, if one of the above cases created a Master_Node,
+             --  finalization actions are required for the associated object.
+ 
+             elsif Ekind (Obj_Id) = E_Variable
+               and then Is_RTE (Obj_Typ, RE_Master_Node)
+             then
+                return True;
+ 
              --  The object is of the form:
              --    Obj : [constant] Typ [:= Expr];
              --
*************** package body Exp_Util is
*** 13138,13168 ****
              then
                 return True;
  
!             --  Processing for "hook" objects generated for transient objects
!             --  declared inside an Expression_With_Actions.
! 
!             elsif Is_Access_Type (Obj_Typ)
!               and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!               and then Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
!                                                         N_Object_Declaration
!             then
!                return True;
! 
!             --  Processing for intermediate results of if expressions where
!             --  one of the alternatives uses a controlled function call.
! 
!             elsif Is_Access_Type (Obj_Typ)
!               and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
!               and then Nkind (Status_Flag_Or_Transient_Decl (Obj_Id)) =
!                                                         N_Defining_Identifier
!               and then Present (Expr)
!               and then Nkind (Expr) = N_Null
!             then
!                return True;
! 
!             --  Simple protected objects which use type System.Tasking.
              --  Protected_Objects.Protection to manage their locks should be
!             --  treated as controlled since they require manual cleanup.
              --  The only exception is illustrated in the following example:
  
              --     package Pkg is
--- 13434,13445 ----
              then
                 return True;
  
!             --  Simple protected objects which use the type System.Tasking.
              --  Protected_Objects.Protection to manage their locks should be
!             --  treated as controlled since they require manual cleanup, but
!             --  not for restricted run-time libraries (Ravenscar), see also
!             --  Cleanup_Protected_Object in Exp_Ch7.
! 
              --  The only exception is illustrated in the following example:
  
              --     package Pkg is
*************** package body Exp_Util is
*** 13195,13244 ****
              elsif Ekind (Obj_Id) = E_Variable
                and then not In_Library_Level_Package_Body (Obj_Id)
                and then Has_Simple_Protected_Object (Obj_Typ)
!             then
!                return True;
!             end if;
! 
!          --  Specific cases of object renamings
! 
!          elsif Nkind (Decl) = N_Object_Renaming_Declaration then
!             Obj_Id  := Defining_Identifier (Decl);
!             Obj_Typ := Base_Type (Etype (Obj_Id));
! 
!             --  Bypass any form of processing for objects which have their
!             --  finalization disabled. This applies only to objects at the
!             --  library level.
! 
!             if Lib_Level and then Finalize_Storage_Only (Obj_Typ) then
!                null;
! 
!             --  Ignored Ghost object renamings do not need any cleanup actions
!             --  because they will not appear in the final tree.
! 
!             elsif Is_Ignored_Ghost_Entity (Obj_Id) then
!                null;
! 
!             --  Return object of extended return statements. This case is
!             --  recognized and marked by the expansion of extended return
!             --  statements (see Expand_N_Extended_Return_Statement).
! 
!             elsif Needs_Finalization (Obj_Typ)
!               and then Is_Return_Object (Obj_Id)
!               and then Present (Status_Flag_Or_Transient_Decl (Obj_Id))
              then
                 return True;
              end if;
  
           --  Inspect the freeze node of an access-to-controlled type and look
!          --  for a delayed finalization master. This case arises when the
           --  freeze actions are inserted at a later time than the expansion of
           --  the context. Since Build_Finalizer is never called on a single
!          --  construct twice, the master will be ultimately left out and never
!          --  finalized. This is also needed for freeze actions of designated
!          --  types themselves, since in some cases the finalization master is
!          --  associated with a designated type's freeze node rather than that
!          --  of the access type (see handling for freeze actions in
!          --  Build_Finalization_Master).
  
           elsif Nkind (Decl) = N_Freeze_Entity
             and then Present (Actions (Decl))
--- 13472,13492 ----
              elsif Ekind (Obj_Id) = E_Variable
                and then not In_Library_Level_Package_Body (Obj_Id)
                and then Has_Simple_Protected_Object (Obj_Typ)
!               and then not Restricted_Profile
              then
                 return True;
              end if;
  
           --  Inspect the freeze node of an access-to-controlled type and look
!          --  for a delayed finalization collection. This case arises when the
           --  freeze actions are inserted at a later time than the expansion of
           --  the context. Since Build_Finalizer is never called on a single
!          --  construct twice, the collection would be ultimately left out and
!          --  never finalized. This is also needed for the freeze actions of
!          --  designated types themselves, since in some cases the finalization
!          --  collection is associated with a designated type's freeze node
!          --  rather than that of the access type (see handling for freeze
!          --  actions in Build_Finalization_Collection).
  
           elsif Nkind (Decl) = N_Freeze_Entity
             and then Present (Actions (Decl))
*************** package body Exp_Util is
*** 13304,13309 ****
--- 13552,13597 ----
        return False;
     end Requires_Cleanup_Actions;
  
+    --------------------------------------------
+    -- Rewrite_Object_Declaration_As_Renaming --
+    --------------------------------------------
+ 
+    procedure Rewrite_Object_Declaration_As_Renaming (N, Nam : Node_Id) is
+       Def_Id : constant Entity_Id  := Defining_Identifier (N);
+       Loc    : constant Source_Ptr := Sloc (N);
+ 
+    begin
+       Rewrite (N,
+         Make_Object_Renaming_Declaration (Loc,
+           Defining_Identifier => Def_Id,
+           Subtype_Mark        => New_Occurrence_Of (Etype (Def_Id), Loc),
+           Name                => Nam));
+ 
+       --  Keep original aspects
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
+       --  We do not analyze this renaming declaration, because all its
+       --  components have already been analyzed, and if we were to go
+       --  ahead and analyze it, we would in effect be trying to generate
+       --  another declaration of X, which won't do.
+ 
+       Set_Renamed_Object (Def_Id, Nam);
+       Set_Analyzed (N);
+ 
+       --  We do need to deal with debug issues for this renaming
+ 
+       --  First, if entity comes from source, then mark it as needing
+       --  debug information, even though it is defined by a generated
+       --  renaming that does not come from source.
+ 
+       Set_Debug_Info_Defining_Id (N);
+ 
+       --  Now call the routine to generate debug info for the renaming
+ 
+       Insert_Action (N, Debug_Renaming_Declaration (N));
+    end Rewrite_Object_Declaration_As_Renaming;
+ 
     ------------------------------------
     -- Safe_Unchecked_Type_Conversion --
     ------------------------------------
*************** package body Exp_Util is
*** 13997,14015 ****
          and then Is_Class_Wide_Type (Typ)
        then
           return True;
- 
-       --  Generating C the type conversion of an access to constrained array
-       --  type into an access to unconstrained array type involves initializing
-       --  a fat pointer and the expression cannot be assumed to be free of side
-       --  effects since it must referenced several times to compute its bounds.
- 
-       elsif Modify_Tree_For_C
-         and then Nkind (N) = N_Type_Conversion
-         and then Is_Access_Type (Typ)
-         and then Is_Array_Type (Designated_Type (Typ))
-         and then not Is_Constrained (Designated_Type (Typ))
-       then
-          return False;
        end if;
  
        --  For other than entity names and compile time known values,
--- 14285,14290 ----
*************** package body Exp_Util is
*** 14110,14116 ****
  
           when N_Qualified_Expression
              | N_Type_Conversion
-             | N_Unchecked_Expression
           =>
              return Side_Effect_Free (Expression (N), Name_Req, Variable_Ref);
  
--- 14385,14390 ----
*************** package body Exp_Util is
*** 14384,14389 ****
--- 14658,14673 ----
        return Target;
     end Thunk_Target;
  
+    -----------------------
+    -- Try_Inline_Always --
+    -----------------------
+ 
+    function Try_Inline_Always (Subp : Entity_Id) return Boolean is
+      ((Is_Expression_Function (Subp) or else Is_Finalizer (Subp))
+        and then not Debug_Flag_Dot_8);
+    --  We want to inline expression functions and finalizers as much as
+    --  practical unless -gnatd.8.
+ 
     -------------------
     -- Type_Map_Hash --
     -------------------
*************** package body Exp_Util is
*** 14443,14448 ****
--- 14727,14788 ----
        end if;
     end Type_May_Have_Bit_Aligned_Components;
  
+    ----------------------------------------------
+    -- Unanalyze_Delayed_Conditional_Expression --
+    ----------------------------------------------
+ 
+    procedure Unanalyze_Delayed_Conditional_Expression (N : Node_Id) is
+       Expr : Node_Id := N;
+ 
+    begin
+       --  Is_Delayed_Conditional_Expression looks through qualified expressions
+       --  surrounding conditional expressions, so we need to reset the Analyzed
+       --  flag on them as well.
+ 
+       loop
+          Set_Analyzed (Expr, False);
+ 
+          exit when Nkind (Expr) in N_Case_Expression | N_If_Expression;
+ 
+          pragma Assert (Nkind (Expr) = N_Qualified_Expression);
+          Expr := Expression (Expr);
+       end loop;
+    end Unanalyze_Delayed_Conditional_Expression;
+ 
+    --------------------------
+    -- Unconditional_Parent --
+    --------------------------
+ 
+    function Unconditional_Parent (N : Node_Id) return Node_Id is
+       Node        : Node_Id := N;
+       Parent_Node : Node_Id := Parent (Node);
+ 
+    begin
+       loop
+          case Nkind (Parent_Node) is
+             when N_Case_Expression_Alternative =>
+                null;
+ 
+             when N_Case_Expression =>
+                exit when Node = Expression (Parent_Node);
+ 
+             when N_If_Expression =>
+                exit when Node = First (Expressions (Parent_Node));
+ 
+             when N_Qualified_Expression =>
+                null;
+ 
+             when others =>
+                exit;
+          end case;
+ 
+          Node        := Parent_Node;
+          Parent_Node := Parent (Node);
+       end loop;
+ 
+       return Parent_Node;
+    end Unconditional_Parent;
+ 
     -------------------------------
     -- Update_Primitives_Mapping --
     -------------------------------
*************** package body Exp_Util is
*** 14459,14476 ****
        Map_Types (Parent_Type, Derived_Type);
     end Update_Primitives_Mapping;
  
!    ----------------------------------
!    -- Within_Case_Or_If_Expression --
!    ----------------------------------
  
!    function Within_Case_Or_If_Expression (N : Node_Id) return Boolean is
        Nod : Node_Id;
        Par : Node_Id;
  
     begin
        --  Locate an enclosing case or if expression. Note that these constructs
!       --  can be expanded into Expression_With_Actions, hence the test of the
!       --  original node.
  
        Nod := N;
        Par := Parent (Nod);
--- 14799,14817 ----
        Map_Types (Parent_Type, Derived_Type);
     end Update_Primitives_Mapping;
  
!    -----------------------------------
!    -- Within_Conditional_Expression --
!    -----------------------------------
  
!    function Within_Conditional_Expression (N : Node_Id) return Boolean is
        Nod : Node_Id;
        Par : Node_Id;
  
     begin
        --  Locate an enclosing case or if expression. Note that these constructs
!       --  can be rewritten as Expression_With_Actions nodes, hence the test of
!       --  the original node. Moreover, we need to take into account conditional
!       --  statements synthesized out of these expressions.
  
        Nod := N;
        Par := Parent (Nod);
*************** package body Exp_Util is
*** 14486,14491 ****
--- 14827,14844 ----
           then
              return True;
  
+          elsif Nkind (Par) = N_Case_Statement
+            and then From_Conditional_Expression (Par)
+            and then Nod /= Expression (Par)
+          then
+             return True;
+ 
+          elsif Nkind (Par) = N_If_Statement
+            and then From_Conditional_Expression (Par)
+            and then Nod /= Condition (Par)
+          then
+             return True;
+ 
           --  Stop at contexts where temporaries may be contained
  
           elsif Nkind (Par) in N_Aggregate
*************** package body Exp_Util is
*** 14507,14513 ****
        end loop;
  
        return False;
!    end Within_Case_Or_If_Expression;
  
     ------------------------------
     -- Predicate_Check_In_Scope --
--- 14860,14866 ----
        end loop;
  
        return False;
!    end Within_Conditional_Expression;
  
     ------------------------------
     -- Predicate_Check_In_Scope --
diff -Nrcpad gcc-14.2.0/gcc/ada/exp_util.ads gcc-15.1.0/gcc/ada/exp_util.ads
*** gcc-14.2.0/gcc/ada/exp_util.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/exp_util.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Namet;          use Namet;
*** 31,36 ****
--- 31,37 ----
  with Rtsfind;        use Rtsfind;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
+ with Snames;         use Snames;
  with Types;          use Types;
  with Uintp;          use Uintp;
  
*************** package Exp_Util is
*** 173,178 ****
--- 174,230 ----
     procedure Insert_Library_Level_Actions (L : List_Id);
     --  Similar, but inserts a list of actions
  
+    ------------------------
+    -- Delayed Expansion --
+    ------------------------
+ 
+    --  The default, bottom-up expansion of expressions is not appropriate for
+    --  some specific situations, either because it would generate problematic
+    --  constructs in the expanded code, for example temporaries of a limited
+    --  type, or because it would generate superfluous copy operations. These
+    --  situations involve either aggregates or conditional expressions (or a
+    --  combination of them) of composite types:
+ 
+    --    1. For aggregates, the default expansion model is to instantiate the
+    --       anonymous object where elaboration is performed, in other words to
+    --       create a temporary. This can be directly avoided if the aggregate
+    --       is the initialization expression of an object, but cannot be if the
+    --       aggregate is nested in another aggregate, or else is the dependent
+    --       expression of a conditional expression.
+ 
+    --    2. For (most) conditional expressions of composite types, the default
+    --       expansion model is to take 'Unrestricted_Access of their dependent
+    --       expressions and to replace them with the dereference of the access
+    --       value designating the dependent expression chosen by the condition.
+    --       Now taking 'Unrestricted_Access of an expression, for example again
+    --       an aggregate or a function call, forces the creation of a temporary
+    --       to hold the value of the expression.
+ 
+    --  In these specific situations, it is desirable, if not required, to delay
+    --  the expansion of the expression until after that of the parent construct
+    --  has started or has completed, so that it can drive this expansion in the
+    --  first case or completely rewrite the expression in the second case.
+ 
+    --  This is achieved by means of the Expansion_Delayed flag that may be set
+    --  on aggregates and conditional expressions: when the above situations are
+    --  recognized, expansion is blocked, the flag is set, and Expand returns
+    --  after setting the Analyzed flag on the expression as usual, which means
+    --  that it is up to the parent construct either to perform the expansion of
+    --  the expression directly (case of nested aggregates), or to reset the
+    --  Analyzed flag on the expression so that Expand can give it another try
+    --  in a modified context (case of conditional expressions).
+ 
+    procedure Delay_Conditional_Expressions_Between (From, To : Node_Id);
+    --  Mark all the conditional expressions in the tree between From and To
+    --  as having their expansion delayed (From included, To excluded).
+ 
+    function Is_Delayed_Conditional_Expression (N : Node_Id) return Boolean;
+    --  Returns True if N is a conditional expression whose Expansion_Delayed
+    --  flag is set.
+ 
+    procedure Unanalyze_Delayed_Conditional_Expression (N : Node_Id);
+    --  Schedule the reanalysis of the delayed conditional expression N
+ 
     -----------------------
     -- Other Subprograms --
     -----------------------
*************** package Exp_Util is
*** 181,189 ****
     --  N is a node for which atomic synchronization may be required (it is
     --  either an identifier, expanded name, or selected/indexed component or
     --  an explicit dereference). The caller has checked the basic conditions
!    --  (atomic variable appearing and Atomic_Sync not disabled). This function
!    --  checks if atomic synchronization is required and if so sets the flag
!    --  and if appropriate generates a warning (in -gnatw.n mode).
  
     procedure Adjust_Condition (N : Node_Id);
     --  The node N is an expression whose root-type is Boolean, and which
--- 233,241 ----
     --  N is a node for which atomic synchronization may be required (it is
     --  either an identifier, expanded name, or selected/indexed component or
     --  an explicit dereference). The caller has checked the basic conditions
!    --  (atomic variable appearing and Atomic_Synchronization enabled). This
!    --  function checks if atomic synchronization is required and if so sets
!    --  the flag and (in -gnatw.n mode) generates a warning.
  
     procedure Adjust_Condition (N : Node_Id);
     --  The node N is an expression whose root-type is Boolean, and which
*************** package Exp_Util is
*** 235,253 ****
     --  Pref'Constrained.
  
     procedure Build_Allocate_Deallocate_Proc
!      (N           : Node_Id;
!       Is_Allocate : Boolean);
     --  Create a custom Allocate/Deallocate to be associated with an allocation
!    --  or deallocation:
     --
     --    1) controlled objects
     --    2) class-wide objects
!    --    3) any kind of object on a subpool
     --
!    --  N must be an allocator or the declaration of a temporary variable which
!    --  represents the expression of the original allocator node, otherwise N
!    --  must be a free statement. If flag Is_Allocate is set, the generated
!    --  routine is allocate, deallocate otherwise.
  
     function Build_Abort_Undefer_Block
       (Loc     : Source_Ptr;
--- 287,312 ----
     --  Pref'Constrained.
  
     procedure Build_Allocate_Deallocate_Proc
!      (N    : Node_Id;
!       Mark : Node_Id := Empty);
     --  Create a custom Allocate/Deallocate to be associated with an allocation
!    --  or deallocation for:
     --
     --    1) controlled objects
     --    2) class-wide objects
!    --    3) any kind of objects on a subpool
     --
!    --  Moreover, for objects that need finalization, generate the attachment
!    --  actions to resp. detachment actions from the appropriate collection.
!    --
!    --  N must be an allocator or the declaration of a temporary initialized by
!    --  an allocator or an assignment of an allocator to a temporary, otherwise
!    --  N must be a free statement of a temporary.
!    --
!    --  Mark must be set to a mark past the initialization of the allocator if
!    --  it is initialized (the allocator itself is OK) or left empty otherwise.
!    --  It is used to determine the place where objects that need finalization
!    --  can be attached to the appropriate collection.
  
     function Build_Abort_Undefer_Block
       (Loc     : Source_Ptr;
*************** package Exp_Util is
*** 310,319 ****
     --  type Typ at runtime. Flag Partial_Invariant should be set when building
     --  the invariant procedure for a private type.
  
-    procedure Build_Procedure_Form (N : Node_Id);
-    --  Create a procedure declaration which emulates the behavior of a function
-    --  that returns an array type, for C-compatible generation.
- 
     function Build_Runtime_Call (Loc : Source_Ptr; RE : RE_Id) return Node_Id;
     --  Build an N_Procedure_Call_Statement calling the given runtime entity.
     --  The call has no parameters. The first argument provides the location
--- 369,374 ----
*************** package Exp_Util is
*** 364,398 ****
     --  This should be used when Typ can potentially be large, to avoid putting
     --  too much pressure on the primary stack, for example with storage models.
  
-    procedure Build_Transient_Object_Statements
-      (Obj_Decl     : Node_Id;
-       Fin_Call     : out Node_Id;
-       Hook_Assign  : out Node_Id;
-       Hook_Clear   : out Node_Id;
-       Hook_Decl    : out Node_Id;
-       Ptr_Decl     : out Node_Id;
-       Finalize_Obj : Boolean := True);
-    --  Subsidiary to the processing of transient objects in transient scopes,
-    --  if expressions, case expressions, and expression_with_action nodes.
-    --  Obj_Decl denotes the declaration of the transient object. Generate the
-    --  following nodes:
-    --
-    --    * Fin_Call - the call to [Deep_]Finalize which cleans up the transient
-    --    object if flag Finalize_Obj is set to True, or finalizes the hook when
-    --    the flag is False.
-    --
-    --    * Hook_Assign - the assignment statement which captures a reference to
-    --    the transient object in the hook.
-    --
-    --    * Hook_Clear - the assignment statement which resets the hook to null
-    --
-    --    * Hook_Decl - the declaration of the hook object
-    --
-    --    * Ptr_Decl - the full type declaration of the hook type
-    --
-    --  These nodes are inserted in specific places depending on the context by
-    --  the various Process_Transient_xxx routines.
- 
     procedure Check_Float_Op_Overflow (N : Node_Id);
     --  Called where we could have a floating-point binary operator where we
     --  must check for infinities if we are operating in Check_Float_Overflow
--- 419,424 ----
*************** package Exp_Util is
*** 482,505 ****
     --  following functions allow this behavior to be modified.
  
     function Duplicate_Subexpr_No_Checks
!      (Exp           : Node_Id;
!       Name_Req      : Boolean   := False;
!       Renaming_Req  : Boolean   := False;
!       Related_Id    : Entity_Id := Empty;
!       Is_Low_Bound  : Boolean   := False;
!       Is_High_Bound : Boolean   := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on the result, so that the duplicated expression does not include
     --  checks. This is appropriate for use when Exp, the original expression is
     --  unconditionally elaborated before the duplicated expression, so that
     --  there is no need to repeat any checks.
-    --
-    --  Related_Id denotes the entity of the context where Expr appears. Flags
-    --  Is_Low_Bound and Is_High_Bound specify whether the expression to check
-    --  is the low or the high bound of a range. These three optional arguments
-    --  signal Remove_Side_Effects to create an external symbol of the form
-    --  Chars (Related_Id)_FIRST/_LAST. For suggested use of these parameters
-    --  see the warning in the body of Sem_Ch3.Process_Range_Expr_In_Decl.
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
--- 508,521 ----
     --  following functions allow this behavior to be modified.
  
     function Duplicate_Subexpr_No_Checks
!      (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on the result, so that the duplicated expression does not include
     --  checks. This is appropriate for use when Exp, the original expression is
     --  unconditionally elaborated before the duplicated expression, so that
     --  there is no need to repeat any checks.
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
*************** package Exp_Util is
*** 596,607 ****
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
!    function Find_Prim_Op (T : Entity_Id; Name : Name_Id) return Entity_Id;
!    --  Find the first primitive operation of a tagged type T with name Name.
!    --  This function allows the use of a primitive operation which is not
!    --  directly visible. If T is a class-wide type, then the reference is to an
!    --  operation of the corresponding root type. It is an error if no primitive
!    --  operation with the given name is found.
  
     function Find_Prim_Op
       (T    : Entity_Id;
--- 612,629 ----
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
!    function Find_Last_Init (Decl : Node_Id) return Node_Id;
!    --  Find the last initialization call related to object declaration Decl
! 
!    function Find_Prim_Op (T : Entity_Id; Name : Name_Id) return Entity_Id
!      with Pre => Name not in Name_Adjust | Name_Finalize | Name_Initialize;
!    --  Find the first primitive operation of type T with the specified Name,
!    --  disregarding any visibility considerations. If T is a class-wide type,
!    --  then examine the primitive operations of its corresponding root type.
!    --  This function should not be called for the three controlled primitive
!    --  operations, and, instead, Find_Controlled_Prim_Op must be called for
!    --  those. Raise Program_Error if no primitive operation with the given
!    --  Name is found.
  
     function Find_Prim_Op
       (T    : Entity_Id;
*************** package Exp_Util is
*** 610,615 ****
--- 632,643 ----
     --  the form indicated by Name (i.e. is a type support subprogram with the
     --  indicated suffix).
  
+    function Find_Controlled_Prim_Op
+      (T : Entity_Id; Name : Name_Id) return Entity_Id
+      with Pre => Name in Name_Adjust | Name_Finalize | Name_Initialize;
+    --  Same as Find_Prim_Op but for the three controlled primitive operations,
+    --  and returns Empty if not found.
+ 
     function Find_Optional_Prim_Op
       (T : Entity_Id; Name : Name_Id) return Entity_Id;
     function Find_Optional_Prim_Op
*************** package Exp_Util is
*** 753,761 ****
     --  chain, counting only entries in the current scope. If an entity is not
     --  overloaded, the returned number will be one.
  
-    function Inside_Init_Proc return Boolean;
-    --  Returns True if current scope is within an init proc
- 
     function In_Library_Level_Package_Body (Id : Entity_Id) return Boolean;
     --  Given an arbitrary entity, determine whether it appears at the library
     --  level of a package body.
--- 781,786 ----
*************** package Exp_Util is
*** 766,771 ****
--- 791,803 ----
     --  unconditionally executed, i.e. it is not within a loop or a conditional
     --  or a case statement etc.
  
+    function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id;
+    --  Return the extra formal of an initialization procedure corresponding to
+    --  the level of the object being initialized, or Empty if none is present.
+ 
+    function Inside_Init_Proc return Boolean;
+    --  Return True if current scope is within an init proc
+ 
     function Integer_Type_For (S : Uint; Uns : Boolean) return Entity_Id;
     --  Return a suitable standard integer type containing at least S bits and
     --  of the signedness given by Uns. See also Small_Integer_Type_For.
*************** package Exp_Util is
*** 778,790 ****
     --    Rnn : constant Ann := Func (...)'reference;
     --    Rnn.all
  
     function Is_Finalizable_Transient
!      (Decl     : Node_Id;
!       Rel_Node : Node_Id) return Boolean;
!    --  Determine whether declaration Decl denotes a controlled transient which
!    --  should be finalized. Rel_Node is the related context. Even though some
!    --  transients are controlled, they may act as renamings of other objects or
!    --  function calls.
  
     function Is_Fully_Repped_Tagged_Type (T : Entity_Id) return Boolean;
     --  Tests given type T, and returns True if T is a non-discriminated tagged
--- 810,829 ----
     --    Rnn : constant Ann := Func (...)'reference;
     --    Rnn.all
  
+    function Is_Conversion_Or_Reference_To_Formal (N : Node_Id) return Boolean;
+    --  Return True if N is a type conversion, or a dereference thereof, or a
+    --  reference to a formal parameter.
+ 
+    function Is_Expanded_Class_Wide_Interface_Object_Decl
+       (N : Node_Id) return Boolean;
+    --  Determine if N is the expanded code for a class-wide interface type
+    --  object declaration.
+ 
     function Is_Finalizable_Transient
!      (Decl : Node_Id;
!       N    : Node_Id) return Boolean;
!    --  Determine whether declaration Decl denotes a controlled transient object
!    --  that must be finalized. N is the node serviced by the transient context.
  
     function Is_Fully_Repped_Tagged_Type (T : Entity_Id) return Boolean;
     --  Tests given type T, and returns True if T is a non-discriminated tagged
*************** package Exp_Util is
*** 801,806 ****
--- 840,850 ----
     --  Return True if Typ is a library level tagged type. Currently we use
     --  this information to build statically allocated dispatch tables.
  
+    function Is_LSP_Wrapper (E : Entity_Id) return Boolean;
+    --  Return True if E is a wrapper built when a subprogram has class-wide
+    --  preconditions or postconditions affected by overriding (AI12-0195).
+    --  LSP stands for Liskov Substitution Principle.
+ 
     function Is_Non_BIP_Func_Call (Expr : Node_Id) return Boolean;
     --  Determine whether node Expr denotes a non build-in-place function call
  
*************** package Exp_Util is
*** 902,907 ****
--- 946,971 ----
     --  list. If Warn is True, a warning will be output at the start of N
     --  indicating the deletion of the code.
  
+    function Make_CW_Equivalent_Type
+      (T        : Entity_Id;
+       E        : Node_Id;
+       List_Def : out List_Id) return Entity_Id;
+    --  T is a class-wide type entity, and E is the initial expression node that
+    --  constrains T in cases such as: " X: T := E" or "new T'(E)". When there
+    --  is no E present then it is assumed that T is an unconstrained mutably
+    --  tagged class-wide type.
+    --
+    --  This function returns the entity of the Equivalent type and inserts
+    --  on the fly the necessary declaration into List_Def such as:
+    --
+    --    type anon is record
+    --       _parent : Root_Type (T); constrained with E discriminants (if any)
+    --       Extension : String (1 .. expr to match size of E);
+    --    end record;
+    --
+    --  This record is compatible with any object of the class of T thanks to
+    --  the first field and has the same size as E thanks to the second.
+ 
     function Make_Invariant_Call (Expr : Node_Id) return Node_Id;
     --  Generate a call to the Invariant_Procedure associated with the type of
     --  expression Expr. Expr is passed as an actual parameter in the call.
*************** package Exp_Util is
*** 998,1003 ****
--- 1062,1086 ----
     --  caller has to check whether stack checking is actually enabled in order
     --  to guide the expansion (typically of a function call).
  
+    procedure Move_To_Initialization_Statements (Decl, Stop : Node_Id);
+    --  Decl is an N_Object_Declaration node and Stop is a node past Decl in
+    --  the same list. Move all the nodes on the list between Decl and Stop
+    --  (excluded) into a compound statement inserted between Decl and Stop
+    --  and attached to the object by means of Initialization_Statements.
+ 
+    function Needs_Initialization_Statements (Decl : Node_Id) return Boolean;
+    --  Decl is the N_Object_Declaration node of an object initialized with an
+    --  aggregate or a call expanded in place. Return True if the statements
+    --  created by expansion need to be moved to the Initialization_Statements
+    --  of the object.
+ 
+    function Name_Of_Controlled_Prim_Op
+      (Typ : Entity_Id;
+       Nam : Name_Id) return Name_Id
+      with Pre => Nam in Name_Adjust | Name_Finalize | Name_Initialize;
+    --  Return the name of the Adjust, Finalize, or Initialize primitive of
+    --  controlled type Typ, if it exists, and No_Name if it does not.
+ 
     function Needs_Conditional_Null_Excluding_Check
       (Typ : Entity_Id) return Boolean;
     --  Check if a type meets certain properties that require it to have a
*************** package Exp_Util is
*** 1160,1165 ****
--- 1243,1251 ----
     --  These cases require special actions on scope exit. Lib_Level is True if
     --  the construct is at library level, and False otherwise.
  
+    procedure Rewrite_Object_Declaration_As_Renaming (N, Nam : Node_Id);
+    --  Rewrite object declaration N as an object renaming declaration of Nam
+ 
     function Safe_Unchecked_Type_Conversion (Exp : Node_Id) return Boolean;
     --  Given the node for an N_Unchecked_Type_Conversion, return True if this
     --  is an unchecked conversion that Gigi can handle directly. Otherwise
*************** package Exp_Util is
*** 1240,1245 ****
--- 1326,1336 ----
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
+    function Try_Inline_Always (Subp : Entity_Id) return Boolean;
+    --  Determines if the backend should try hard to inline Subp. This is
+    --  similar to Subp having a pragma Inline_Always, but doesn't cause an
+    --  error if Subp can't actually be inlined.
+ 
     function Type_May_Have_Bit_Aligned_Components
       (Typ : Entity_Id) return Boolean;
     --  Determines if Typ is a composite type that has within it (looking down
*************** package Exp_Util is
*** 1249,1254 ****
--- 1340,1350 ----
     --  is conservative, in that a result of False is decisive. A result of True
     --  means that such a component may or may not be present.
  
+    function Unconditional_Parent (N : Node_Id) return Node_Id;
+    --  Return the first parent of arbitrary node N that is not a conditional
+    --  expression, one of whose dependent expressions is N, and that is not
+    --  a qualified expression, whose expression is N, recursively.
+ 
     procedure Update_Primitives_Mapping
       (Inher_Id : Entity_Id;
        Subp_Id  : Entity_Id);
*************** package Exp_Util is
*** 1258,1271 ****
     --  when elaborating a contract for a subprogram, and when freezing a type
     --  extension to verify legality rules on inherited conditions.
  
!    function Within_Case_Or_If_Expression (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N is immediately within a dependent
!    --  expression of a case or an if expression. The criterion is whether
     --  temporaries created by the actions attached to N need to outlive an
!    --  enclosing case or if expression.
  
  private
     pragma Inline (Duplicate_Subexpr);
     pragma Inline (Force_Evaluation);
     pragma Inline (Get_Mapped_Entity);
     pragma Inline (Is_Library_Level_Tagged_Type);
--- 1354,1369 ----
     --  when elaborating a contract for a subprogram, and when freezing a type
     --  extension to verify legality rules on inherited conditions.
  
!    function Within_Conditional_Expression (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N is immediately within a dependent
!    --  expression of a conditional expression. The criterion is whether
     --  temporaries created by the actions attached to N need to outlive an
!    --  enclosing conditional expression.
  
  private
     pragma Inline (Duplicate_Subexpr);
+    pragma Inline (Find_Controlled_Prim_Op);
+    pragma Inline (Find_Prim_Op);
     pragma Inline (Force_Evaluation);
     pragma Inline (Get_Mapped_Entity);
     pragma Inline (Is_Library_Level_Tagged_Type);
diff -Nrcpad gcc-14.2.0/gcc/ada/expander.adb gcc-15.1.0/gcc/ada/expander.adb
*** gcc-14.2.0/gcc/ada/expander.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/expander.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Expander is
*** 506,514 ****
                 when N_Type_Conversion =>
                    Expand_N_Type_Conversion (N);
  
-                when N_Unchecked_Expression =>
-                   Expand_N_Unchecked_Expression (N);
- 
                 when N_Unchecked_Type_Conversion =>
                    Expand_N_Unchecked_Type_Conversion (N);
  
--- 506,511 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/expander.ads gcc-15.1.0/gcc/ada/expander.ads
*** gcc-14.2.0/gcc/ada/expander.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/expander.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Expander is
*** 132,142 ****
     --  exceptions where it makes sense to temporarily change its value are:
     --
     --    (a) when starting/completing the processing of a generic definition
!    --        or declaration (see routines Start_Generic_Processing and
!    --        End_Generic_Processing in Sem_Ch12)
     --
     --    (b) when starting/completing the preanalysis of an expression
!    --        (see the spec of package Sem for more info on preanalysis.)
     --
     --  Note that when processing a spec expression (In_Spec_Expression
     --  is True) or performing semantic analysis of a generic spec or body
--- 132,142 ----
     --  exceptions where it makes sense to temporarily change its value are:
     --
     --    (a) when starting/completing the processing of a generic definition
!    --        or declaration (see routines Start_Generic and End_Generic in
!    --        Sem_Ch12).
     --
     --    (b) when starting/completing the preanalysis of an expression
!    --        (see the spec of package Sem for more info on preanalysis).
     --
     --  Note that when processing a spec expression (In_Spec_Expression
     --  is True) or performing semantic analysis of a generic spec or body
diff -Nrcpad gcc-14.2.0/gcc/ada/expect.c gcc-15.1.0/gcc/ada/expect.c
*** gcc-14.2.0/gcc/ada/expect.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/expect.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2001-2024, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2001-2025, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/fe.h gcc-15.1.0/gcc/ada/fe.h
*** gcc-14.2.0/gcc/ada/fe.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fe.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern void Set_Normalized_First_Bit	(En
*** 98,106 ****
  extern void Set_Normalized_Position	(Entity_Id, Uint);
  extern void Set_RM_Size			(Entity_Id, Uint);
  
  #define Is_Entity_Name		einfo__utils__is_entity_name
  
! extern Boolean Is_Entity_Name		(Node_Id);
  
  #define Get_Attribute_Definition_Clause	einfo__utils__get_attribute_definition_clause
  
--- 98,108 ----
  extern void Set_Normalized_Position	(Entity_Id, Uint);
  extern void Set_RM_Size			(Entity_Id, Uint);
  
+ #define Is_Base_Type		einfo__utils__is_base_type
  #define Is_Entity_Name		einfo__utils__is_entity_name
  
! extern Boolean Is_Base_Type	(Entity_Id);
! extern Boolean Is_Entity_Name	(Node_Id);
  
  #define Get_Attribute_Definition_Clause	einfo__utils__get_attribute_definition_clause
  
*************** extern void Get_Variant_Encoding	(Entity
*** 177,184 ****
--- 179,188 ----
  /* exp_tss: */
  
  #define Is_Init_Proc	exp_tss__is_init_proc
+ #define Is_Rep_To_Pos	exp_tss__is_rep_to_pos
  
  extern Boolean Is_Init_Proc		(Entity_Id);
+ extern Boolean Is_Rep_To_Pos		(Entity_Id);
  
  /* exp_util: */
  
*************** extern Entity_Id Storage_Model_Copy_To
*** 333,353 ****
--- 337,374 ----
  
  /* sinfo: */
  
+ #define Spec_Lib_Unit                   sinfo__utils__spec_lib_unit
+ #define Body_Lib_Unit                   sinfo__utils__body_lib_unit
+ #define Subunit_Parent                  sinfo__utils__subunit_parent
+ #define Stub_Subunit                    sinfo__utils__stub_subunit
+ #define Withed_Lib_Unit                 sinfo__utils__withed_lib_unit
  #define End_Location			sinfo__utils__end_location
  #define Set_Has_No_Elaboration_Code	sinfo__nodes__set_has_no_elaboration_code
  #define Set_Present_Expr		sinfo__nodes__set_present_expr
  
+ extern Node_Id Spec_Lib_Unit            (Node_Id);
+ extern Node_Id Body_Lib_Unit            (Node_Id);
+ extern Node_Id Subunit_Parent           (Node_Id);
+ extern Node_Id Stub_Subunit             (Node_Id);
+ extern Node_Id Withed_Lib_Unit          (Node_Id);
  extern Source_Ptr End_Location 		(Node_Id);
  extern void Set_Has_No_Elaboration_Code	(Node_Id, Boolean);
  extern void Set_Present_Expr		(Node_Id, Uint);
  
  /* sinput: */
  
+ struct c_array {
+   const char *pointer;
+   int length;
+ };
+ 
+ #define C_Source_Buffer 	sinput__c_source_buffer
  #define Debug_Source_Name	sinput__debug_source_name
  #define Get_Column_Number	sinput__get_column_number
  #define Get_Logical_Line_Number	sinput__get_logical_line_number
  #define Get_Source_File_Index	sinput__get_source_file_index
  
+ extern struct c_array C_Source_Buffer 		(Source_File_Index);
  extern File_Name_Type Debug_Source_Name		(Source_File_Index);
  extern Column_Number_Type Get_Column_Number	(Source_Ptr);
  extern Line_Number_Type Get_Logical_Line_Number	(Source_Ptr);
*************** extern Boolean Get_Warn_On_Questionable_
*** 377,684 ****
  
  // The following corresponds to Ada code in Einfo.Utils.
  
! typedef Boolean B;
! typedef Component_Alignment_Kind C;
  typedef Entity_Id E;
! typedef Mechanism_Type M;
! typedef Node_Id N;
! typedef Uint U;
! typedef Ureal R;
! typedef Elist_Id L;
! typedef List_Id S;
! 
! #define Is_Access_Object_Type einfo__utils__is_access_object_type
! B Is_Access_Object_Type               (E Id);
! 
! #define Is_Named_Access_Type einfo__utils__is_named_access_type
! B Is_Named_Access_Type                (E Id);
  
  #define Address_Clause einfo__utils__address_clause
! N Address_Clause                      (E Id);
! 
! #define Aft_Value einfo__utils__aft_value
! U Aft_Value                           (E Id);
  
  #define Alignment_Clause einfo__utils__alignment_clause
! N Alignment_Clause                    (E Id);
  
  #define Base_Type einfo__utils__base_type
! E Base_Type                           (E Id);
  
  #define Declaration_Node einfo__utils__declaration_node
! N Declaration_Node                    (E Id);
  
  #define Designated_Type einfo__utils__designated_type
! E Designated_Type                     (E Id);
! 
! #define First_Component einfo__utils__first_component
! E First_Component                     (E Id);
! 
! #define First_Component_Or_Discriminant einfo__utils__first_component_or_discriminant
! E First_Component_Or_Discriminant     (E Id);
  
  #define First_Formal einfo__utils__first_formal
! E First_Formal                        (E Id);
  
  #define First_Formal_With_Extras einfo__utils__first_formal_with_extras
! E First_Formal_With_Extras            (E Id);
! 
! #define Has_Attach_Handler einfo__utils__has_attach_handler
! B Has_Attach_Handler                  (E Id);
! 
! #define Has_Entries einfo__utils__has_entries
! B Has_Entries                         (E Id);
  
  #define Has_Foreign_Convention einfo__utils__has_foreign_convention
! B Has_Foreign_Convention              (E Id);
! 
! #define Has_Interrupt_Handler einfo__utils__has_interrupt_handler
! B Has_Interrupt_Handler               (E Id);
! 
! #define Has_Non_Limited_View einfo__utils__has_non_limited_view
! B Has_Non_Limited_View                (E Id);
! 
! #define Has_Non_Null_Abstract_State einfo__utils__has_non_null_abstract_state
! B Has_Non_Null_Abstract_State         (E Id);
! 
! #define Has_Non_Null_Visible_Refinement einfo__utils__has_non_null_visible_refinement
! B Has_Non_Null_Visible_Refinement     (E Id);
! 
! #define Has_Null_Abstract_State einfo__utils__has_null_abstract_state
! B Has_Null_Abstract_State             (E Id);
! 
! #define Has_Null_Visible_Refinement einfo__utils__has_null_visible_refinement
! B Has_Null_Visible_Refinement         (E Id);
  
  #define Implementation_Base_Type einfo__utils__implementation_base_type
! E Implementation_Base_Type            (E Id);
! 
! #define Is_Base_Type einfo__utils__is_base_type
! B Is_Base_Type                        (E Id);
  
  #define Is_Boolean_Type einfo__utils__is_boolean_type
! B Is_Boolean_Type                     (E Id);
! 
! #define Is_Constant_Object einfo__utils__is_constant_object
! B Is_Constant_Object                  (E Id);
! 
! #define Is_Controlled einfo__utils__is_controlled
! B Is_Controlled                       (E Id);
! 
! #define Is_Discriminal einfo__utils__is_discriminal
! B Is_Discriminal                      (E Id);
! 
! #define Is_Dynamic_Scope einfo__utils__is_dynamic_scope
! B Is_Dynamic_Scope                    (E Id);
! 
! #define Is_Elaboration_Target einfo__utils__is_elaboration_target
! B Is_Elaboration_Target               (E Id);
! 
! #define Is_External_State einfo__utils__is_external_state
! B Is_External_State                   (E Id);
! 
! #define Is_Finalizer einfo__utils__is_finalizer
! B Is_Finalizer                        (E Id);
! 
! #define Is_Null_State einfo__utils__is_null_state
! B Is_Null_State                       (E Id);
! 
! #define Is_Package_Or_Generic_Package einfo__utils__is_package_or_generic_package
! B Is_Package_Or_Generic_Package       (E Id);
! 
! #define Is_Packed_Array einfo__utils__is_packed_array
! B Is_Packed_Array                     (E Id);
! 
! #define Is_Prival einfo__utils__is_prival
! B Is_Prival                           (E Id);
! 
! #define Is_Protected_Component einfo__utils__is_protected_component
! B Is_Protected_Component              (E Id);
! 
! #define Is_Protected_Interface einfo__utils__is_protected_interface
! B Is_Protected_Interface              (E Id);
! 
! #define Is_Protected_Record_Type einfo__utils__is_protected_record_type
! B Is_Protected_Record_Type            (E Id);
! 
! #define Is_Relaxed_Initialization_State einfo__utils__is_relaxed_initialization_state
! B Is_Relaxed_Initialization_State     (E Id);
! 
! #define Is_Standard_Character_Type einfo__utils__is_standard_character_type
! B Is_Standard_Character_Type          (E Id);
! 
! #define Is_Standard_String_Type einfo__utils__is_standard_string_type
! B Is_Standard_String_Type             (E Id);
! 
! #define Is_String_Type einfo__utils__is_string_type
! B Is_String_Type                      (E Id);
! 
! #define Is_Synchronized_Interface einfo__utils__is_synchronized_interface
! B Is_Synchronized_Interface           (E Id);
! 
! #define Is_Synchronized_State einfo__utils__is_synchronized_state
! B Is_Synchronized_State               (E Id);
! 
! #define Is_Task_Interface einfo__utils__is_task_interface
! B Is_Task_Interface                   (E Id);
! 
! #define Is_Task_Record_Type einfo__utils__is_task_record_type
! B Is_Task_Record_Type                 (E Id);
! 
! #define Is_Wrapper_Package einfo__utils__is_wrapper_package
! B Is_Wrapper_Package                  (E Id);
! 
! #define Last_Formal einfo__utils__last_formal
! E Last_Formal                         (E Id);
! 
! #define Machine_Emax_Value einfo__utils__machine_emax_value
! U Machine_Emax_Value                  (E Id);
! 
! #define Machine_Emin_Value einfo__utils__machine_emin_value
! U Machine_Emin_Value                  (E Id);
! 
! #define Machine_Mantissa_Value einfo__utils__machine_mantissa_value
! U Machine_Mantissa_Value              (E Id);
! 
! #define Machine_Radix_Value einfo__utils__machine_radix_value
! U Machine_Radix_Value                 (E Id);
! 
! #define Model_Emin_Value einfo__utils__model_emin_value
! U Model_Emin_Value                    (E Id);
! 
! #define Model_Epsilon_Value einfo__utils__model_epsilon_value
! R Model_Epsilon_Value                 (E Id);
! 
! #define Model_Mantissa_Value einfo__utils__model_mantissa_value
! U Model_Mantissa_Value                (E Id);
! 
! #define Model_Small_Value einfo__utils__model_small_value
! R Model_Small_Value                   (E Id);
! 
! #define Next_Component einfo__utils__next_component
! E Next_Component                      (E Id);
! 
! #define Next_Component_Or_Discriminant einfo__utils__next_component_or_discriminant
! E Next_Component_Or_Discriminant      (E Id);
  
  #define Next_Discriminant einfo__utils__next_discriminant
! E Next_Discriminant                   (E Id);
  
  #define Next_Formal einfo__utils__next_formal
! E Next_Formal                         (E Id);
  
  #define Next_Formal_With_Extras einfo__utils__next_formal_with_extras
! E Next_Formal_With_Extras             (E Id);
  
  #define Number_Dimensions einfo__utils__number_dimensions
! Pos Number_Dimensions                   (E Id);
! 
! #define Number_Entries einfo__utils__number_entries
! Nat Number_Entries                      (E Id);
! 
! #define Number_Formals einfo__utils__number_formals
! Pos Number_Formals                      (E Id);
  
  #define Object_Size_Clause einfo__utils__object_size_clause
! N Object_Size_Clause                  (E Id);
! 
! #define Partial_Refinement_Constituents einfo__utils__partial_refinement_constituents
! L Partial_Refinement_Constituents     (E Id);
! 
! #define Primitive_Operations einfo__utils__primitive_operations
! L Primitive_Operations                (E Id);
  
  #define Root_Type einfo__utils__root_type
! E Root_Type                           (E Id);
! 
! #define Safe_Emax_Value einfo__utils__safe_emax_value
! U Safe_Emax_Value                     (E Id);
! 
! #define Safe_First_Value einfo__utils__safe_first_value
! R Safe_First_Value                    (E Id);
! 
! #define Safe_Last_Value einfo__utils__safe_last_value
! R Safe_Last_Value                     (E Id);
! 
! #define Scope_Depth einfo__utils__scope_depth
! U Scope_Depth                         (E Id);
! 
! #define Scope_Depth_Set einfo__utils__scope_depth_set
! B Scope_Depth_Set                     (E Id);
  
  #define Size_Clause einfo__utils__size_clause
! N Size_Clause                         (E Id);
! 
! #define Stream_Size_Clause einfo__utils__stream_size_clause
! N Stream_Size_Clause                  (E Id);
  
  #define Type_High_Bound einfo__utils__type_high_bound
! N Type_High_Bound                     (E Id);
  
  #define Type_Low_Bound einfo__utils__type_low_bound
! N Type_Low_Bound                      (E Id);
  
  #define Underlying_Type einfo__utils__underlying_type
! E Underlying_Type                     (E Id);
  
  #define Known_Alignment einfo__utils__known_alignment
! B Known_Alignment                       (Entity_Id E);
! 
! #define Known_Component_Bit_Offset einfo__utils__known_component_bit_offset
! B Known_Component_Bit_Offset            (Entity_Id E);
  
  #define Known_Component_Size einfo__utils__known_component_size
! B Known_Component_Size                  (Entity_Id E);
  
  #define Known_Esize einfo__utils__known_esize
! B Known_Esize                           (Entity_Id E);
! 
! #define Known_Normalized_First_Bit einfo__utils__known_normalized_first_bit
! B Known_Normalized_First_Bit            (Entity_Id E);
  
  #define Known_Normalized_Position einfo__utils__known_normalized_position
! B Known_Normalized_Position             (Entity_Id E);
! 
! #define Known_Normalized_Position_Max einfo__utils__known_normalized_position_max
! B Known_Normalized_Position_Max         (Entity_Id E);
  
  #define Known_RM_Size einfo__utils__known_rm_size
! B Known_RM_Size                         (Entity_Id E);
  
  #define Copy_Alignment einfo__utils__copy_alignment
! B Copy_Alignment(Entity_Id To, Entity_Id From);
  
  #define Copy_Esize einfo__utils__copy_esize
! B Copy_Esize(Entity_Id To, Entity_Id From);
  
  #define Copy_RM_Size einfo__utils__copy_rm_size
! B Copy_RM_Size(Entity_Id To, Entity_Id From);
  
  #define Is_Discrete_Or_Fixed_Point_Type einfo__utils__is_discrete_or_fixed_point_type
! B Is_Discrete_Or_Fixed_Point_Type     (E Id);
  
  #define Is_Floating_Point_Type einfo__utils__is_floating_point_type
! B Is_Floating_Point_Type                      (E Id);
  
  #define Is_Record_Type einfo__utils__is_record_type
! B Is_Record_Type                      (E Id);
  
  #define Is_Full_Access einfo__utils__is_full_access
! B Is_Full_Access (E Id);
  
  #define Next_Index einfo__utils__next_index
! Node_Id Next_Index (Node_Id Id);
  
  #define Next_Literal einfo__utils__next_literal
! E Next_Literal (E Id);
  
  #define Next_Stored_Discriminant einfo__utils__next_stored_discriminant
! E Next_Stored_Discriminant (E Id);
! 
! #define Parameter_Mode einfo__utils__parameter_mode
! // Parameter_Mode really returns Formal_Kind, but that is not visible, because
! // fe.h is included before einfo.h.
! Entity_Kind Parameter_Mode (E Id);
  
  // The following is needed because Convention in Sem_Util is a renaming
  // of Basic_Convention.
--- 398,511 ----
  
  // The following corresponds to Ada code in Einfo.Utils.
  
! typedef Boolean   B;
  typedef Entity_Id E;
! typedef Node_Id   N;
  
  #define Address_Clause einfo__utils__address_clause
! extern N Address_Clause (E Id);
  
  #define Alignment_Clause einfo__utils__alignment_clause
! extern N Alignment_Clause (E Id);
  
  #define Base_Type einfo__utils__base_type
! extern E Base_Type (E Id);
  
  #define Declaration_Node einfo__utils__declaration_node
! extern N Declaration_Node (E Id);
  
  #define Designated_Type einfo__utils__designated_type
! extern E Designated_Type (E Id);
  
  #define First_Formal einfo__utils__first_formal
! extern E First_Formal (E Id);
  
  #define First_Formal_With_Extras einfo__utils__first_formal_with_extras
! extern E First_Formal_With_Extras (E Id);
  
  #define Has_Foreign_Convention einfo__utils__has_foreign_convention
! extern B Has_Foreign_Convention (E Id);
  
  #define Implementation_Base_Type einfo__utils__implementation_base_type
! extern E Implementation_Base_Type (E Id);
  
  #define Is_Boolean_Type einfo__utils__is_boolean_type
! extern B Is_Boolean_Type (E Id);
  
  #define Next_Discriminant einfo__utils__next_discriminant
! extern E Next_Discriminant (E Id);
  
  #define Next_Formal einfo__utils__next_formal
! extern E Next_Formal (E Id);
  
  #define Next_Formal_With_Extras einfo__utils__next_formal_with_extras
! extern E Next_Formal_With_Extras (E Id);
  
  #define Number_Dimensions einfo__utils__number_dimensions
! extern Pos Number_Dimensions (E Id);
  
  #define Object_Size_Clause einfo__utils__object_size_clause
! extern N Object_Size_Clause (E Id);
  
  #define Root_Type einfo__utils__root_type
! extern E Root_Type (E Id);
  
  #define Size_Clause einfo__utils__size_clause
! extern N Size_Clause (E Id);
  
  #define Type_High_Bound einfo__utils__type_high_bound
! extern N Type_High_Bound (E Id);
  
  #define Type_Low_Bound einfo__utils__type_low_bound
! extern N Type_Low_Bound (E Id);
  
  #define Underlying_Type einfo__utils__underlying_type
! extern E Underlying_Type (E Id);
  
  #define Known_Alignment einfo__utils__known_alignment
! extern B Known_Alignment (Entity_Id E);
  
  #define Known_Component_Size einfo__utils__known_component_size
! extern B Known_Component_Size (Entity_Id E);
  
  #define Known_Esize einfo__utils__known_esize
! extern B Known_Esize (Entity_Id E);
  
  #define Known_Normalized_Position einfo__utils__known_normalized_position
! extern B Known_Normalized_Position (Entity_Id E);
  
  #define Known_RM_Size einfo__utils__known_rm_size
! extern B Known_RM_Size (Entity_Id E);
  
  #define Copy_Alignment einfo__utils__copy_alignment
! extern B Copy_Alignment(Entity_Id To, Entity_Id From);
  
  #define Copy_Esize einfo__utils__copy_esize
! extern B Copy_Esize(Entity_Id To, Entity_Id From);
  
  #define Copy_RM_Size einfo__utils__copy_rm_size
! extern B Copy_RM_Size(Entity_Id To, Entity_Id From);
  
  #define Is_Discrete_Or_Fixed_Point_Type einfo__utils__is_discrete_or_fixed_point_type
! extern B Is_Discrete_Or_Fixed_Point_Type (E Id);
  
  #define Is_Floating_Point_Type einfo__utils__is_floating_point_type
! extern B Is_Floating_Point_Type (E Id);
  
  #define Is_Record_Type einfo__utils__is_record_type
! extern B Is_Record_Type (E Id);
  
  #define Is_Full_Access einfo__utils__is_full_access
! extern B Is_Full_Access (E Id);
  
  #define Next_Index einfo__utils__next_index
! extern Node_Id Next_Index (Node_Id Id);
  
  #define Next_Literal einfo__utils__next_literal
! extern E Next_Literal (E Id);
  
  #define Next_Stored_Discriminant einfo__utils__next_stored_discriminant
! extern E Next_Stored_Discriminant (E Id);
  
  // The following is needed because Convention in Sem_Util is a renaming
  // of Basic_Convention.
*************** Convention (N Node)
*** 693,709 ****
  // See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
  
  #define Entity sinfo__nodes__entity_or_associated_node
! Entity_Id Entity (N Node);
  
  // See comments regarding Renamed_Or_Alias in Einfo.Utils
  
  #define Alias einfo__entities__renamed_or_alias
  
  #define Renamed_Entity einfo__entities__renamed_or_alias
! Node_Id Renamed_Entity (N Node);
  
  #define Renamed_Object einfo__entities__renamed_or_alias
! Node_Id Renamed_Object (N Node);
  
  #ifdef __cplusplus
  }
--- 520,537 ----
  // See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
  
  #define Entity sinfo__nodes__entity_or_associated_node
! extern Entity_Id Entity (N Node);
  
  // See comments regarding Renamed_Or_Alias in Einfo.Utils
  
  #define Alias einfo__entities__renamed_or_alias
+ extern Node_Id Alias (N Node);
  
  #define Renamed_Entity einfo__entities__renamed_or_alias
! extern Node_Id Renamed_Entity (N Node);
  
  #define Renamed_Object einfo__entities__renamed_or_alias
! extern Node_Id Renamed_Object (N Node);
  
  #ifdef __cplusplus
  }
diff -Nrcpad gcc-14.2.0/gcc/ada/final.c gcc-15.1.0/gcc/ada/final.c
*** gcc-14.2.0/gcc/ada/final.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/final.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/fmap.adb gcc-15.1.0/gcc/ada/fmap.adb
*** gcc-14.2.0/gcc/ada/fmap.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fmap.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/fmap.ads gcc-15.1.0/gcc/ada/fmap.ads
*** gcc-14.2.0/gcc/ada/fmap.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fmap.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/fname-sf.adb gcc-15.1.0/gcc/ada/fname-sf.adb
*** gcc-14.2.0/gcc/ada/fname-sf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname-sf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/fname-sf.ads gcc-15.1.0/gcc/ada/fname-sf.ads
*** gcc-14.2.0/gcc/ada/fname-sf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname-sf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/fname-uf.adb gcc-15.1.0/gcc/ada/fname-uf.adb
*** gcc-14.2.0/gcc/ada/fname-uf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname-uf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Fname.UF is
*** 93,98 ****
--- 93,107 ----
     --  Table recording calls to Set_File_Name_Pattern. Note that the first two
     --  entries are set to represent the standard GNAT rules for file naming.
  
+    procedure Instantiate_SFN_Pattern
+      (Pattern   : SFN_Pattern_Entry;
+       Buf       : in out Bounded_String;
+       Is_Predef : Boolean := False);
+    --  On entry, Buf must contain a unit name. After returning, Buf contains
+    --  the file name corresponding to the unit following the naming pattern
+    --  described by Pattern. Is_Predef must be whether the unit name in Buf
+    --  is a predefined unit name as defined by Is_Predefined_Unit_Name.
+ 
     -----------------------
     -- File_Name_Of_Body --
     -----------------------
*************** package body Fname.UF is
*** 164,169 ****
--- 173,201 ----
        return Unknown;
     end Get_Expected_Unit_Type;
  
+    ---------------------------
+    -- Get_Default_File_Name --
+    ---------------------------
+ 
+    function Get_Default_File_Name (Uname : Unit_Name_Type) return String is
+       Buf : Bounded_String;
+ 
+       Pattern : SFN_Pattern_Entry;
+    begin
+       Get_Unit_Name_String (Buf, Uname, False);
+ 
+       if Is_Spec_Name (Uname) then
+          Pattern := SFN_Patterns.Table (1);
+       else
+          pragma Assert (Is_Body_Name (Uname));
+          Pattern := SFN_Patterns.Table (2);
+       end if;
+ 
+       Instantiate_SFN_Pattern (Pattern, Buf);
+ 
+       return To_String (Buf);
+    end Get_Default_File_Name;
+ 
     -------------------
     -- Get_File_Name --
     -------------------
*************** package body Fname.UF is
*** 186,191 ****
--- 218,225 ----
        Fname : File_Name_Type := No_File;
        --  Path name and File name for mapping
  
+       Unit_Buf : Bounded_String;
+ 
     begin
        --  Null or error name means that some previous error occurred. This is
        --  an unrecoverable error, so signal it.
*************** package body Fname.UF is
*** 215,221 ****
  
        --  Here for the case where the name was not found in the table
  
!       Get_Decoded_Name_String (Uname);
  
        --  A special fudge, normally we don't have operator symbols present,
        --  since it is always an error to do so. However, if we do, at this
--- 249,255 ----
  
        --  Here for the case where the name was not found in the table
  
!       Append_Decoded (Unit_Buf, Uname);
  
        --  A special fudge, normally we don't have operator symbols present,
        --  since it is always an error to do so. However, if we do, at this
*************** package body Fname.UF is
*** 234,254 ****
        --  avoid bombs due to writing a bad file name, and we get expected error
        --  processing downstream, e.g. a compilation following gnatchop.
  
!       if Name_Buffer (1) = '"' then
!          Get_Name_String (Uname);
!          Name_Len := Name_Len + 1;
!          Name_Buffer (Name_Len)     := Name_Buffer (Name_Len - 1);
!          Name_Buffer (Name_Len - 1) := Name_Buffer (Name_Len - 2);
!          Name_Buffer (Name_Len - 2) := '_';
!          Name_Buffer (1)            := '_';
        end if;
  
        --  Deal with spec or body suffix
  
!       Unit_Char := Name_Buffer (Name_Len);
        pragma Assert (Unit_Char = 'b' or else Unit_Char = 's');
!       pragma Assert (Name_Len >= 3 and then Name_Buffer (Name_Len - 1) = '%');
!       Name_Len := Name_Len - 2;
  
        if Subunit then
           Unit_Char := 'u';
--- 268,294 ----
        --  avoid bombs due to writing a bad file name, and we get expected error
        --  processing downstream, e.g. a compilation following gnatchop.
  
!       if Unit_Buf.Chars (1) = '"' then
!          Unit_Buf.Length := 0;
!          Append (Unit_Buf, Uname);
!          Unit_Buf.Length := Unit_Buf.Length + 1;
!          Unit_Buf.Chars (Unit_Buf.Length) :=
!            Unit_Buf.Chars (Unit_Buf.Length - 1);
!          Unit_Buf.Chars (Unit_Buf.Length - 1) :=
!            Unit_Buf.Chars (Unit_Buf.Length - 2);
!          Unit_Buf.Chars (Unit_Buf.Length - 2) := '_';
!          Unit_Buf.Chars (1) := '_';
        end if;
  
        --  Deal with spec or body suffix
  
!       Unit_Char := Unit_Buf.Chars (Unit_Buf.Length);
        pragma Assert (Unit_Char = 'b' or else Unit_Char = 's');
!       pragma
!         Assert
!           (Unit_Buf.Length >= 3
!              and then Unit_Buf.Chars (Unit_Buf.Length - 1) = '%');
!       Unit_Buf.Length := Unit_Buf.Length - 2;
  
        if Subunit then
           Unit_Char := 'u';
*************** package body Fname.UF is
*** 257,282 ****
        --  Now we need to find the proper translation of the name
  
        declare
-          Uname : constant String (1 .. Name_Len) :=
-                    Name_Buffer (1 .. Name_Len);
- 
           Pent : Nat;
-          Plen : Natural;
           Fnam : File_Name_Type := No_File;
-          J    : Natural;
-          Dot  : String_Ptr;
-          Dotl : Natural;
- 
-          Is_Predef : Boolean;
-          --  Set True for predefined file
- 
-          function C (N : Natural) return Character;
-          --  Return N'th character of pattern
- 
-          function C (N : Natural) return Character is
-          begin
-             return SFN_Patterns.Table (Pent).Pat (N);
-          end C;
  
        --  Start of search through pattern table
  
--- 297,304 ----
*************** package body Fname.UF is
*** 298,432 ****
              Pent := SFN_Patterns.First;
              while Pent <= SFN_Patterns.Last loop
                 if SFN_Patterns.Table (Pent).Typ = Unit_Char_Search then
-                   --  Determine if we have a predefined file name
- 
-                   Is_Predef :=
-                     Is_Predefined_Unit_Name
-                       (Uname, Renamings_Included => True);
- 
                    --  Found a match, execute the pattern
  
!                   Name_Len := Uname'Length;
!                   Name_Buffer (1 .. Name_Len) := Uname;
! 
!                   --  Apply casing, except that we do not do this for the case
!                   --  of a predefined library file. For the latter, we always
!                   --  use the all lower case name, regardless of the setting.
! 
!                   if not Is_Predef then
!                      Set_Casing (SFN_Patterns.Table (Pent).Cas);
!                   end if;
! 
!                   --  If dot translation required do it
! 
!                   Dot  := SFN_Patterns.Table (Pent).Dot;
!                   Dotl := Dot.all'Length;
! 
!                   if Dot.all /= "." then
!                      J := 1;
! 
!                      while J <= Name_Len loop
!                         if Name_Buffer (J) = '.' then
! 
!                            if Dotl = 1 then
!                               Name_Buffer (J) := Dot (Dot'First);
! 
!                            else
!                               Name_Buffer (J + Dotl .. Name_Len + Dotl - 1) :=
!                                 Name_Buffer (J + 1 .. Name_Len);
!                               Name_Buffer (J .. J + Dotl - 1) := Dot.all;
!                               Name_Len := Name_Len + Dotl - 1;
!                            end if;
! 
!                            J := J + Dotl;
! 
!                         --  Skip past wide char sequences to avoid messing with
!                         --  dot characters that are part of a sequence.
! 
!                         elsif Name_Buffer (J) = ASCII.ESC
!                           or else (Upper_Half_Encoding
!                                     and then
!                                       Name_Buffer (J) in Upper_Half_Character)
!                         then
!                            Skip_Wide (Name_Buffer, J);
!                         else
!                            J := J + 1;
!                         end if;
!                      end loop;
!                   end if;
! 
!                   --  Here move result to right if preinsertion before *
! 
!                   Plen := SFN_Patterns.Table (Pent).Pat'Length;
!                   for K in 1 .. Plen loop
!                      if C (K) = '*' then
!                         if K /= 1 then
!                            Name_Buffer (1 + K - 1 .. Name_Len + K - 1) :=
!                              Name_Buffer (1 .. Name_Len);
! 
!                            for L in 1 .. K - 1 loop
!                               Name_Buffer (L) := C (L);
!                            end loop;
! 
!                            Name_Len := Name_Len + K - 1;
!                         end if;
! 
!                         for L in K + 1 .. Plen loop
!                            Name_Len := Name_Len + 1;
!                            Name_Buffer (Name_Len) := C (L);
!                         end loop;
! 
!                         exit;
!                      end if;
!                   end loop;
! 
!                   --  Execute possible crunch on constructed name. The krunch
!                   --  operation excludes any extension that may be present.
! 
!                   J := Name_Len;
!                   while J > 1 loop
!                      exit when Name_Buffer (J) = '.';
!                      J := J - 1;
!                   end loop;
! 
!                   --  Case of extension present
! 
!                   if J > 1 then
!                      declare
!                         Ext : constant String := Name_Buffer (J .. Name_Len);
! 
!                      begin
!                         --  Remove extension
! 
!                         Name_Len := J - 1;
! 
!                         --  Krunch what's left
! 
!                         Krunch
!                           (Name_Buffer,
!                            Name_Len,
!                            Integer (Maximum_File_Name_Length),
!                            Debug_Flag_4);
! 
!                         --  Replace extension
! 
!                         Name_Buffer
!                           (Name_Len + 1 .. Name_Len + Ext'Length) := Ext;
!                         Name_Len := Name_Len + Ext'Length;
!                      end;
! 
!                   --  Case of no extension present, straight krunch on the
!                   --  entire file name.
  
!                   else
!                      Krunch
!                        (Name_Buffer,
!                         Name_Len,
!                         Integer (Maximum_File_Name_Length),
!                         Debug_Flag_4);
!                   end if;
  
!                   Fnam := Name_Find;
  
                    --  If we are in the second search of the table, we accept
                    --  the file name without checking, because we know that the
--- 320,340 ----
              Pent := SFN_Patterns.First;
              while Pent <= SFN_Patterns.Last loop
                 if SFN_Patterns.Table (Pent).Typ = Unit_Char_Search then
                    --  Found a match, execute the pattern
+                   declare
+                      Is_Predef : constant Boolean :=
+                        Is_Predefined_Unit_Name
+                          (Uname, Renamings_Included => True);
  
!                      Buf : Bounded_String;
!                   begin
!                      Append (Buf, Unit_Buf);
  
!                      Instantiate_SFN_Pattern
!                        (SFN_Patterns.Table (Pent), Buf, Is_Predef);
  
!                      Fnam := Name_Find (Buf);
!                   end;
  
                    --  If we are in the second search of the table, we accept
                    --  the file name without checking, because we know that the
*************** package body Fname.UF is
*** 543,548 ****
--- 451,595 ----
           Cas => All_Lower_Case));
     end Initialize;
  
+    -----------------------------
+    -- Instantiate_SFN_Pattern --
+    -----------------------------
+ 
+    procedure Instantiate_SFN_Pattern
+      (Pattern   : SFN_Pattern_Entry;
+       Buf       : in out Bounded_String;
+       Is_Predef : Boolean := False)
+    is
+       function C (N : Natural) return Character;
+       --  Return N'th character of pattern
+ 
+       function C (N : Natural) return Character is
+       begin
+          return Pattern.Pat (N);
+       end C;
+ 
+       Dot : constant String_Ptr := Pattern.Dot;
+ 
+       Dotl : constant Natural := Dot.all'Length;
+ 
+       Plen : constant Natural := Pattern.Pat'Length;
+ 
+       J : Natural;
+    begin
+       --  Apply casing, except that we do not do this for the case
+       --  of a predefined library file. For the latter, we always
+       --  use the all lower case name, regardless of the setting.
+ 
+       if not Is_Predef then
+          Set_Casing (Buf, Pattern.Cas);
+       end if;
+ 
+       --  If dot translation required do it
+ 
+       if Dot.all /= "." then
+          J := 1;
+ 
+          while J <= Buf.Length loop
+             if Buf.Chars (J) = '.' then
+ 
+                if Dotl = 1 then
+                   Buf.Chars (J) := Dot (Dot'First);
+ 
+                else
+                   Buf.Chars (J + Dotl .. Buf.Length + Dotl - 1) :=
+                     Buf.Chars (J + 1 .. Buf.Length);
+                   Buf.Chars (J .. J + Dotl - 1) := Dot.all;
+                   Buf.Length := Buf.Length + Dotl - 1;
+                end if;
+ 
+                J := J + Dotl;
+ 
+             --  Skip past wide char sequences to avoid messing with
+             --  dot characters that are part of a sequence.
+ 
+             elsif Buf.Chars (J) = ASCII.ESC
+               or else (Upper_Half_Encoding
+                         and then
+                           Buf.Chars (J) in Upper_Half_Character)
+             then
+                Skip_Wide (Buf.Chars, J);
+             else
+                J := J + 1;
+             end if;
+          end loop;
+       end if;
+ 
+       --  Here move result to right if preinsertion before *
+ 
+       for K in 1 .. Plen loop
+          if C (K) = '*' then
+             if K /= 1 then
+                Buf.Chars (1 + K - 1 .. Buf.Length + K - 1) :=
+                  Buf.Chars (1 .. Buf.Length);
+ 
+                for L in 1 .. K - 1 loop
+                   Buf.Chars (L) := C (L);
+                end loop;
+ 
+                Buf.Length := Buf.Length + K - 1;
+             end if;
+ 
+             for L in K + 1 .. Plen loop
+                Buf.Length := Buf.Length + 1;
+                Buf.Chars (Buf.Length) := C (L);
+             end loop;
+ 
+             exit;
+          end if;
+       end loop;
+ 
+       --  Execute possible crunch on constructed name. The krunch
+       --  operation excludes any extension that may be present.
+ 
+       J := Buf.Length;
+       while J > 1 loop
+          exit when Buf.Chars (J) = '.';
+          J := J - 1;
+       end loop;
+ 
+       --  Case of extension present
+ 
+       if J > 1 then
+          declare
+             Ext : constant String := Buf.Chars (J .. Buf.Length);
+ 
+          begin
+             --  Remove extension
+ 
+             Buf.Length := J - 1;
+ 
+             --  Krunch what's left
+ 
+             Krunch
+               (Buf.Chars,
+                Buf.Length,
+                Integer (Maximum_File_Name_Length),
+                Debug_Flag_4);
+ 
+             --  Replace extension
+ 
+             Buf.Chars
+               (Buf.Length + 1 .. Buf.Length + Ext'Length) := Ext;
+             Buf.Length := Buf.Length + Ext'Length;
+          end;
+ 
+       --  Case of no extension present, straight krunch on the
+       --  entire file name.
+ 
+       else
+          Krunch
+            (Buf.Chars,
+             Buf.Length,
+             Integer (Maximum_File_Name_Length),
+             Debug_Flag_4);
+       end if;
+    end Instantiate_SFN_Pattern;
+ 
     ----------
     -- Lock --
     ----------
diff -Nrcpad gcc-14.2.0/gcc/ada/fname-uf.ads gcc-15.1.0/gcc/ada/fname-uf.ads
*** gcc-14.2.0/gcc/ada/fname-uf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname-uf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Fname.UF is
*** 53,58 ****
--- 53,61 ----
     --  be determined with the file naming conventions in use, then the returned
     --  value is set to Unknown.
  
+    function Get_Default_File_Name (Uname : Unit_Name_Type) return String;
+    --  Returns the file name of Uname under the default GNAT naming scheme.
+ 
     function Get_File_Name
       (Uname    : Unit_Name_Type;
        Subunit  : Boolean;
diff -Nrcpad gcc-14.2.0/gcc/ada/fname.adb gcc-15.1.0/gcc/ada/fname.adb
*** gcc-14.2.0/gcc/ada/fname.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Fname is
*** 141,146 ****
--- 141,148 ----
        if Fname'Length > 12
          and then Fname (Fname'First .. Fname'First + 1) /= "i-"
          and then Fname (Fname'First .. Fname'First + 1) /= "s-"
+         and then not Has_Prefix (Fname, "system-")
+         and then not Has_Prefix (Fname, "interfac__")
        then
           return False;
        end if;
*************** package body Fname is
*** 151,173 ****
  
        --  Definitely predefined if prefix is a- i- or s-
  
!       if Fname'Length >= 2 then
!          declare
!             S : String renames Fname (Fname'First .. Fname'First + 1);
!          begin
!             if S = "a-" or else S = "i-" or else S = "s-" then
!                return True;
!             end if;
!          end;
!       end if;
  
        --  We include the "." in the prefixes below, so we don't match (e.g.)
        --  adamant.ads. So the first line matches "ada.ads", "ada.adb", and
        --  "ada.ali". But that's not necessary if they have 8 characters.
  
        if Has_Prefix (Fname, "ada.")             --  Ada
!         or else Has_Prefix (Fname, "interfac")  --  Interfaces
          or else Has_Prefix (Fname, "system.a")  --  System
        then
           return True;
        end if;
--- 153,176 ----
  
        --  Definitely predefined if prefix is a- i- or s-
  
!       pragma Assert (Fname'Length >= 2);
!       declare
!          S : String renames Fname (Fname'First .. Fname'First + 1);
!       begin
!          if S = "a-" or else S = "i-" or else S = "s-" then
!             return True;
!          end if;
!       end;
  
        --  We include the "." in the prefixes below, so we don't match (e.g.)
        --  adamant.ads. So the first line matches "ada.ads", "ada.adb", and
        --  "ada.ali". But that's not necessary if they have 8 characters.
  
        if Has_Prefix (Fname, "ada.")             --  Ada
!         or else Fname = "interfac.ads"
!         or else Has_Prefix (Fname, "interfac__")
          or else Has_Prefix (Fname, "system.a")  --  System
+         or else Has_Prefix (Fname, "system-")   --  System with platform suffix
        then
           return True;
        end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/fname.ads gcc-15.1.0/gcc/ada/fname.ads
*** gcc-14.2.0/gcc/ada/fname.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/fname.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/freeze.adb gcc-15.1.0/gcc/ada/freeze.adb
*** gcc-14.2.0/gcc/ada/freeze.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/freeze.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo.Entities; use Einfo.Entities;
*** 33,39 ****
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
- with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Disp;       use Exp_Disp;
  with Exp_Pakd;       use Exp_Pakd;
--- 33,38 ----
*************** package body Freeze is
*** 99,106 ****
  
     procedure Check_Address_Clause (E : Entity_Id);
     --  Apply legality checks to address clauses for object declarations,
!    --  at the point the object is frozen. Also ensure any initialization is
!    --  performed only after the object has been frozen.
  
     procedure Check_Component_Storage_Order
       (Encl_Type        : Entity_Id;
--- 98,104 ----
  
     procedure Check_Address_Clause (E : Entity_Id);
     --  Apply legality checks to address clauses for object declarations,
!    --  at the point the object is frozen.
  
     procedure Check_Component_Storage_Order
       (Encl_Type        : Entity_Id;
*************** package body Freeze is
*** 185,259 ****
     --  the designated type. Otherwise freezing the access type does not freeze
     --  the designated type.
  
-    function Should_Freeze_Type
-      (Typ : Entity_Id; E : Entity_Id; N : Node_Id) return Boolean;
-    --  If Typ is in the current scope, then return True.
-    --  N is a node whose source location corresponds to the freeze point.
-    --  ??? Expression functions (represented by E) shouldn't freeze types in
-    --  general, but our current expansion and freezing model requires an early
-    --  freezing when the dispatch table is needed or when building an aggregate
-    --  with a subtype of Typ, so return True also in this case.
-    --  Note that expression function completions do freeze and are
-    --  handled in Sem_Ch6.Analyze_Expression_Function.
- 
-    ------------------------
-    -- Should_Freeze_Type --
-    ------------------------
- 
-    function Should_Freeze_Type
-      (Typ : Entity_Id; E : Entity_Id; N : Node_Id) return Boolean
-    is
-       function Is_Dispatching_Call_Or_Aggregate
-         (N : Node_Id) return Traverse_Result;
-       --  Return Abandon if N is a dispatching call to a subprogram
-       --  declared in the same scope as Typ or an aggregate whose type
-       --  is Typ.
- 
-       --------------------------------------
-       -- Is_Dispatching_Call_Or_Aggregate --
-       --------------------------------------
- 
-       function Is_Dispatching_Call_Or_Aggregate
-         (N : Node_Id) return Traverse_Result is
-       begin
-          if Nkind (N) = N_Function_Call
-            and then Present (Controlling_Argument (N))
-            and then Scope (Entity (Original_Node (Name (N))))
-                       = Scope (Typ)
-          then
-             return Abandon;
-          elsif Nkind (N) = N_Aggregate
-            and then Base_Type (Etype (N)) = Base_Type (Typ)
-          then
-             return Abandon;
-          else
-             return OK;
-          end if;
-       end Is_Dispatching_Call_Or_Aggregate;
- 
-       -------------------------
-       -- Need_Dispatch_Table --
-       -------------------------
- 
-       function Need_Dispatch_Table is new
-         Traverse_Func (Is_Dispatching_Call_Or_Aggregate);
-       --  Return Abandon if the input expression requires access to
-       --  Typ's dispatch table.
- 
-       Decl : constant Node_Id :=
-         (if No (E) then E else Original_Node (Unit_Declaration_Node (E)));
- 
-    --  Start of processing for Should_Freeze_Type
- 
-    begin
-       return Within_Scope (Typ, Current_Scope)
-         or else (Nkind (N) = N_Subprogram_Renaming_Declaration
-                  and then Present (Corresponding_Formal_Spec (N)))
-         or else (Present (Decl)
-                  and then Nkind (Decl) = N_Expression_Function
-                  and then Need_Dispatch_Table (Expression (Decl)) = Abandon);
-    end Should_Freeze_Type;
- 
     procedure Process_Default_Expressions
       (E     : Entity_Id;
        After : in out Node_Id);
--- 183,188 ----
*************** package body Freeze is
*** 280,285 ****
--- 209,225 ----
     --  attribute definition clause occurs, then these two flags are reset in
     --  any case, so call will have no effect.
  
+    function Should_Freeze_Type
+      (Typ : Entity_Id;
+       E   : Entity_Id;
+       N   : Node_Id) return Boolean;
+    --  True if Typ should be frozen when the profile of E is being frozen at N.
+ 
+    --  ??? Expression functions that are not completions shouldn't freeze types
+    --  but our current expansion and freezing model requires an early freezing
+    --  when the tag of Typ is needed or for an aggregate with a subtype of Typ,
+    --  so we return True in these cases.
+ 
     procedure Undelay_Type (T : Entity_Id);
     --  T is a type of a component that we know to be an Itype. We don't want
     --  this to have a Freeze_Node, so ensure it doesn't. Do the same for any
*************** package body Freeze is
*** 303,310 ****
        if Known_Esize (Typ) and then Known_Alignment (Typ) then
           Align := Alignment_In_Bits (Typ);
  
!          if Align > Esize (Typ) and then Align <= System_Max_Integer_Size then
!             Set_Esize (Typ, Align);
           end if;
        end if;
     end Adjust_Esize_For_Alignment;
--- 243,254 ----
        if Known_Esize (Typ) and then Known_Alignment (Typ) then
           Align := Alignment_In_Bits (Typ);
  
!          if Align > Esize (Typ) then
!             if Align > System_Max_Integer_Size then
!                pragma Assert (Serious_Errors_Detected > 0);
!             else
!                Set_Esize (Typ, Align);
!             end if;
           end if;
        end if;
     end Adjust_Esize_For_Alignment;
*************** package body Freeze is
*** 640,645 ****
--- 584,596 ----
           Next (Param_Spec);
        end loop;
  
+       --  Copy SPARK pragma from renaming declaration
+ 
+       Set_SPARK_Pragma
+         (Defining_Unit_Name (Spec), SPARK_Pragma (New_S));
+       Set_SPARK_Pragma_Inherited
+         (Defining_Unit_Name (Spec), SPARK_Pragma_Inherited (New_S));
+ 
        --  In GNATprove, prefer to generate an expression function whenever
        --  possible, to benefit from the more precise analysis in that case
        --  (as if an implicit postcondition had been generated).
*************** package body Freeze is
*** 683,693 ****
     procedure Check_Address_Clause (E : Entity_Id) is
        Addr       : constant Node_Id   := Address_Clause (E);
        Typ        : constant Entity_Id := Etype (E);
!       Decl       : Node_Id;
!       Expr       : Node_Id;
!       Init       : Node_Id;
!       Lhs        : Node_Id;
!       Tag_Assign : Node_Id;
  
     begin
        if Present (Addr) then
--- 634,643 ----
     procedure Check_Address_Clause (E : Entity_Id) is
        Addr       : constant Node_Id   := Address_Clause (E);
        Typ        : constant Entity_Id := Etype (E);
! 
!       Decl : Node_Id;
!       Expr : Node_Id;
!       Init : Node_Id;
  
     begin
        if Present (Addr) then
*************** package body Freeze is
*** 791,831 ****
                 end if;
              end;
           end if;
- 
-          --  Remove side effects from initial expression, except in the case of
-          --  limited build-in-place calls and aggregates, which have their own
-          --  expansion elsewhere. This exception is necessary to avoid copying
-          --  limited objects.
- 
-          if Present (Init)
-            and then not Is_Inherently_Limited_Type (Typ)
-          then
-             --  Capture initialization value at point of declaration, and make
-             --  explicit assignment legal, because object may be a constant.
- 
-             Remove_Side_Effects (Init);
-             Lhs := New_Occurrence_Of (E, Sloc (Decl));
-             Set_Assignment_OK (Lhs);
- 
-             --  Move initialization to freeze actions, once the object has
-             --  been frozen and the address clause alignment check has been
-             --  performed.
- 
-             Append_Freeze_Action (E,
-               Make_Assignment_Statement (Sloc (Decl),
-                 Name       => Lhs,
-                 Expression => Expression (Decl)));
- 
-             Set_No_Initialization (Decl);
- 
-             --  If the object is tagged, check whether the tag must be
-             --  reassigned explicitly.
- 
-             Tag_Assign := Make_Tag_Assignment (Decl);
-             if Present (Tag_Assign) then
-                Append_Freeze_Action (E, Tag_Assign);
-             end if;
-          end if;
        end if;
     end Check_Address_Clause;
  
--- 741,746 ----
*************** package body Freeze is
*** 1006,1020 ****
  
           elsif Is_Record_Type (T) then
  
-             --  A class-wide type is never considered to have a known size
- 
-             if Is_Class_Wide_Type (T) then
-                return False;
- 
              --  A subtype of a variant record must not have non-static
              --  discriminated components.
  
!             elsif T /= Base_Type (T)
                and then not Static_Discriminated_Components (T)
              then
                 return False;
--- 921,930 ----
  
           elsif Is_Record_Type (T) then
  
              --  A subtype of a variant record must not have non-static
              --  discriminated components.
  
!             if T /= Base_Type (T)
                and then not Static_Discriminated_Components (T)
              then
                 return False;
*************** package body Freeze is
*** 1073,1078 ****
--- 983,989 ----
                      and then
                        No (Discriminant_Default_Value (First_Discriminant (T)))
                      and then not Known_RM_Size (T)
+                     and then not Known_Esize (T)
                    then
                       return False;
                    end if;
*************** package body Freeze is
*** 1513,1519 ****
        Op_Node        : Elmt_Id;
        Par_Prim       : Entity_Id;
        Prim           : Entity_Id;
!       Wrapper_Needed : Boolean;
  
        function Build_DTW_Body
          (Loc          : Source_Ptr;
--- 1424,1441 ----
        Op_Node        : Elmt_Id;
        Par_Prim       : Entity_Id;
        Prim           : Entity_Id;
! 
!       type Wrapper_Kind is (No_Wrapper, LSP_Wrapper, Condition_Wrapper);
! 
!       Wrapper_Needed : Wrapper_Kind;
!       --  Kind of wrapper needed by a given inherited primitive of tagged
!       --  type R:
!       --  * No_Wrapper: No wrapper is needed.
!       --  * LSP_Wrapper: Wrapper that handles inherited class-wide pre/post
!       --    conditions that call overridden primitives.
!       --  * Condition_Wrapper: Wrapper of inherited subprogram that implements
!       --    additional interface primitives of the derived type that have
!       --    class-wide pre-/postconditions.
  
        function Build_DTW_Body
          (Loc          : Source_Ptr;
*************** package body Freeze is
*** 1529,1536 ****
        --  Build the spec of the dispatch table wrapper
  
        procedure Build_Inherited_Condition_Pragmas
!         (Subp           : Entity_Id;
!          Wrapper_Needed : out Boolean);
        --  Build corresponding pragmas for an operation whose ancestor has
        --  class-wide pre/postconditions. If the operation is inherited then
        --  Wrapper_Needed is returned True to force the creation of a wrapper
--- 1451,1458 ----
        --  Build the spec of the dispatch table wrapper
  
        procedure Build_Inherited_Condition_Pragmas
!         (Subp               : Entity_Id;
!          LSP_Wrapper_Needed : out Boolean);
        --  Build corresponding pragmas for an operation whose ancestor has
        --  class-wide pre/postconditions. If the operation is inherited then
        --  Wrapper_Needed is returned True to force the creation of a wrapper
*************** package body Freeze is
*** 1538,1543 ****
--- 1460,1469 ----
        --  the pragmas are constructed only to verify their legality, in case
        --  they contain calls to other primitives that may have been overridden.
  
+       procedure Check_Interface_Primitives_Strub_Mode;
+       --  Called when R is an interface type to check strub mode compatibility
+       --  all its primitives.
+ 
        function Needs_Wrapper
          (Class_Cond : Node_Id;
           Subp       : Entity_Id;
*************** package body Freeze is
*** 1631,1637 ****
           --  Add minimal decoration of fields
  
           Mutate_Ekind (DTW_Id, Ekind (Par_Prim));
-          Set_LSP_Subprogram (DTW_Id, Par_Prim);
           Set_Is_Dispatch_Table_Wrapper (DTW_Id);
           Set_Is_Wrapper (DTW_Id);
  
--- 1557,1562 ----
*************** package body Freeze is
*** 1649,1656 ****
        ---------------------------------------
  
        procedure Build_Inherited_Condition_Pragmas
!         (Subp           : Entity_Id;
!          Wrapper_Needed : out Boolean)
        is
           Class_Pre  : constant Node_Id :=
                          Class_Preconditions (Ultimate_Alias (Subp));
--- 1574,1581 ----
        ---------------------------------------
  
        procedure Build_Inherited_Condition_Pragmas
!         (Subp               : Entity_Id;
!          LSP_Wrapper_Needed : out Boolean)
        is
           Class_Pre  : constant Node_Id :=
                          Class_Preconditions (Ultimate_Alias (Subp));
*************** package body Freeze is
*** 1659,1665 ****
           New_Prag   : Node_Id;
  
        begin
!          Wrapper_Needed := False;
  
           if No (Class_Pre) and then No (Class_Post) then
              return;
--- 1584,1590 ----
           New_Prag   : Node_Id;
  
        begin
!          LSP_Wrapper_Needed := False;
  
           if No (Class_Pre) and then No (Class_Post) then
              return;
*************** package body Freeze is
*** 1672,1678 ****
           if Present (Class_Pre)
             and then Needs_Wrapper (Class_Pre, Subp, Par_Prim)
           then
!             Wrapper_Needed := True;
           end if;
  
           --  For class-wide postconditions we evaluate whether the wrapper is
--- 1597,1603 ----
           if Present (Class_Pre)
             and then Needs_Wrapper (Class_Pre, Subp, Par_Prim)
           then
!             LSP_Wrapper_Needed := True;
           end if;
  
           --  For class-wide postconditions we evaluate whether the wrapper is
*************** package body Freeze is
*** 1682,1688 ****
           if Present (Class_Post)
             and then Needs_Wrapper (Class_Post, Subp, Par_Prim)
           then
!             Wrapper_Needed := True;
  
              --  Update the class-wide postcondition
  
--- 1607,1613 ----
           if Present (Class_Post)
             and then Needs_Wrapper (Class_Post, Subp, Par_Prim)
           then
!             LSP_Wrapper_Needed := True;
  
              --  Update the class-wide postcondition
  
*************** package body Freeze is
*** 1725,1730 ****
--- 1650,1750 ----
           end if;
        end Build_Inherited_Condition_Pragmas;
  
+       -------------------------------------------
+       -- Check_Interface_Primitives_Strub_Mode --
+       -------------------------------------------
+ 
+       procedure Check_Interface_Primitives_Strub_Mode is
+          Elmt        : Elmt_Id;
+          Iface_Elmt  : Elmt_Id;
+          Iface       : Entity_Id;
+          Iface_Prim  : Entity_Id;
+          Ifaces_List : Elist_Id;
+          Op_Node     : Elmt_Id;
+          Prim        : Entity_Id;
+          Prim_Iface  : Entity_Id;
+ 
+       begin
+          pragma Assert (Is_Interface (R));
+ 
+          --  Collect interfaces extended by interface type R
+ 
+          Collect_Interfaces (R, Ifaces_List);
+ 
+          Op_Node := First_Elmt (Prim_Ops);
+          while Present (Op_Node) loop
+             Prim       := Node (Op_Node);
+             Prim_Iface := R;
+             Par_Prim   := Overridden_Operation (Prim);
+ 
+             --  We only need to check entities defined in the sources
+ 
+             --  Check that overrider and overridden primitives have the same
+             --  strub mode.
+ 
+             if Present (Par_Prim) then
+                Check_Same_Strub_Mode (Prim, Par_Prim);
+ 
+             --  No need to check internally added predefined primitives since
+             --  they all have the same strub mode.
+ 
+             elsif Is_Predefined_Dispatching_Operation (Prim)
+               and then not Comes_From_Source (Prim)
+             then
+                null;
+ 
+             --  Check strub mode of matching primitives of all the interface
+             --  types, since several interface types may define primitives with
+             --  the same profile that will be implemented by a single primitive
+             --  of tagged types implementing R, and therefore must have the
+             --  same strub mode.
+ 
+             else
+                --  If this interface primitive has been inherited this is an
+                --  internal entity we rely on its renamed entity (which is the
+                --  entity defined in the sources).
+ 
+                if Present (Alias (Prim)) then
+                   Prim       := Ultimate_Alias (Prim);
+                   Prim_Iface := Find_Dispatching_Type (Prim);
+                end if;
+ 
+                --  Search for primitives conformant with this one in the other
+                --  interface types.
+ 
+                Iface_Elmt := First_Elmt (Ifaces_List);
+                while Present (Iface_Elmt) loop
+                   Iface := Node (Iface_Elmt);
+ 
+                   if Iface /= Prim_Iface then
+                      Elmt := First_Elmt (Primitive_Operations (Iface));
+                      while Present (Elmt) loop
+                         Iface_Prim := Node (Elmt);
+ 
+                         if Chars (Iface_Prim) = Chars (Prim)
+                           and then Comes_From_Source (Iface_Prim)
+                           and then Is_Interface_Conformant
+                                      (Prim_Iface, Iface_Prim, Prim)
+                         then
+                            --  Check the strub mode passing the original
+                            --  primitive (instead of its alias); required
+                            --  to report the error at the right location.
+ 
+                            Check_Same_Strub_Mode (Node (Op_Node), Iface_Prim);
+                         end if;
+ 
+                         Next_Elmt (Elmt);
+                      end loop;
+                   end if;
+ 
+                   Next_Elmt (Iface_Elmt);
+                end loop;
+             end if;
+ 
+             Next_Elmt (Op_Node);
+          end loop;
+       end Check_Interface_Primitives_Strub_Mode;
+ 
        -------------------
        -- Needs_Wrapper --
        -------------------
*************** package body Freeze is
*** 1794,1807 ****
           return Result;
        end Needs_Wrapper;
  
!       Ifaces_List    : Elist_Id := No_Elist;
!       Ifaces_Listed  : Boolean := False;
!       --  Cache the list of interface operations inherited by R
! 
!       Wrappers_List  : Elist_Id := No_Elist;
        --  List containing identifiers of built wrappers. Used to defer building
        --  and analyzing their class-wide precondition subprograms.
  
     --  Start of processing for Check_Inherited_Conditions
  
     begin
--- 1814,1827 ----
           return Result;
        end Needs_Wrapper;
  
!       Wrappers_List : Elist_Id := No_Elist;
        --  List containing identifiers of built wrappers. Used to defer building
        --  and analyzing their class-wide precondition subprograms.
  
+       Condition_Candidates_List : Elist_Id := No_Elist;
+       --  List containing inherited primitives of tagged type R that implement
+       --  interface primitives that have pre-/postconditions.
+ 
     --  Start of processing for Check_Inherited_Conditions
  
     begin
*************** package body Freeze is
*** 1827,1850 ****
           end loop;
        end if;
  
        --  Perform validity checks on the inherited conditions of overriding
        --  operations, for conformance with LSP, and apply SPARK-specific
        --  restrictions on inherited conditions.
  
        Op_Node := First_Elmt (Prim_Ops);
        while Present (Op_Node) loop
!          Prim := Node (Op_Node);
! 
           Par_Prim := Overridden_Operation (Prim);
           if Present (Par_Prim)
             and then Comes_From_Source (Prim)
           then
              --  When the primitive is an LSP wrapper we climb to the parent
              --  primitive that has the inherited contract.
  
!             if Is_Wrapper (Par_Prim)
!               and then Present (LSP_Subprogram (Par_Prim))
!             then
                 Par_Prim := LSP_Subprogram (Par_Prim);
              end if;
  
--- 1847,1876 ----
           end loop;
        end if;
  
+       --  For interface types we only need to check strub mode compatibility
+       --  of their primitives (since they don't have wrappers).
+ 
+       if Is_Interface (R) then
+          Check_Interface_Primitives_Strub_Mode;
+          return;
+       end if;
+ 
        --  Perform validity checks on the inherited conditions of overriding
        --  operations, for conformance with LSP, and apply SPARK-specific
        --  restrictions on inherited conditions.
  
        Op_Node := First_Elmt (Prim_Ops);
        while Present (Op_Node) loop
!          Prim     := Node (Op_Node);
           Par_Prim := Overridden_Operation (Prim);
+ 
           if Present (Par_Prim)
             and then Comes_From_Source (Prim)
           then
              --  When the primitive is an LSP wrapper we climb to the parent
              --  primitive that has the inherited contract.
  
!             if Is_LSP_Wrapper (Par_Prim) then
                 Par_Prim := LSP_Subprogram (Par_Prim);
              end if;
  
*************** package body Freeze is
*** 1866,1919 ****
              if GNATprove_Mode then
                 Collect_Inherited_Class_Wide_Conditions (Prim);
              end if;
-          end if;
- 
-          --  Go over operations inherited from interfaces and check
-          --  them for strub mode compatibility as well.
  
!          if Has_Interfaces (R)
!            and then Is_Dispatching_Operation (Prim)
!            and then Find_Dispatching_Type (Prim) = R
!          then
!             declare
!                Elmt        : Elmt_Id;
!                Iface_Elmt  : Elmt_Id;
!                Iface       : Entity_Id;
!                Iface_Prim  : Entity_Id;
! 
!             begin
!                --  Collect the interfaces only once. We haven't
!                --  finished freezing yet, so we can't use the faster
!                --  search from Sem_Disp.Covered_Interface_Primitives.
  
!                if not Ifaces_Listed then
!                   Collect_Interfaces (R, Ifaces_List);
!                   Ifaces_Listed := True;
!                end if;
  
!                Iface_Elmt := First_Elmt (Ifaces_List);
!                while Present (Iface_Elmt) loop
!                   Iface := Node (Iface_Elmt);
  
!                   Elmt := First_Elmt (Primitive_Operations (Iface));
!                   while Present (Elmt) loop
!                      Iface_Prim := Node (Elmt);
  
!                      if Iface_Prim /= Par_Prim
!                        and then Chars (Iface_Prim) = Chars (Prim)
!                        and then Comes_From_Source (Iface_Prim)
!                        and then Is_Interface_Conformant
!                                   (R, Iface_Prim, Prim)
!                      then
!                         Check_Same_Strub_Mode (Prim, Iface_Prim);
!                      end if;
  
!                      Next_Elmt (Elmt);
!                   end loop;
  
!                   Next_Elmt (Iface_Elmt);
!                end loop;
!             end;
           end if;
  
           Next_Elmt (Op_Node);
--- 1892,1928 ----
              if GNATprove_Mode then
                 Collect_Inherited_Class_Wide_Conditions (Prim);
              end if;
  
!          --  Check strub mode compatibility of primitives that implement
!          --  interface primitives.
  
!          elsif Present (Interface_Alias (Prim)) then
!             Check_Same_Strub_Mode (Alias (Prim), Interface_Alias (Prim));
!          end if;
  
!          Next_Elmt (Op_Node);
!       end loop;
  
!       --  Collect inherited primitives that may need a wrapper to handle
!       --  pre-/postconditions of interface primitives; done to improve the
!       --  performance when checking if postcondition wrappers are needed.
  
!       Op_Node := First_Elmt (Prim_Ops);
!       while Present (Op_Node) loop
!          Prim := Node (Op_Node);
  
!          if Present (Interface_Alias (Prim))
!            and then not Comes_From_Source (Alias (Prim))
!            and then
!              (Present (Class_Preconditions (Interface_Alias (Prim)))
!                 or else
!               Present (Class_Postconditions (Interface_Alias (Prim))))
!          then
!             if No (Condition_Candidates_List) then
!                Condition_Candidates_List := New_Elmt_List;
!             end if;
  
!             Append_Unique_Elmt (Alias (Prim), Condition_Candidates_List);
           end if;
  
           Next_Elmt (Op_Node);
*************** package body Freeze is
*** 1928,1934 ****
        while Present (Op_Node) loop
           Decls          := Empty_List;
           Prim           := Node (Op_Node);
!          Wrapper_Needed := False;
  
           --  Skip internal entities built for mapping interface primitives
  
--- 1937,1943 ----
        while Present (Op_Node) loop
           Decls          := Empty_List;
           Prim           := Node (Op_Node);
!          Wrapper_Needed := No_Wrapper;
  
           --  Skip internal entities built for mapping interface primitives
  
*************** package body Freeze is
*** 1941,1963 ****
              --  When the primitive is an LSP wrapper we climb to the parent
              --  primitive that has the inherited contract.
  
!             if Is_Wrapper (Par_Prim)
!               and then Present (LSP_Subprogram (Par_Prim))
!             then
                 Par_Prim := LSP_Subprogram (Par_Prim);
              end if;
  
              --  Analyze the contract items of the parent operation, and
!             --  determine whether a wrapper is needed. This is determined
!             --  when the condition is rewritten in sem_prag, using the
!             --  mapping between overridden and overriding operations built
!             --  in the loop above.
  
!             Analyze_Entry_Or_Subprogram_Contract (Par_Prim);
!             Build_Inherited_Condition_Pragmas (Prim, Wrapper_Needed);
           end if;
  
!          if Wrapper_Needed
             and then not Is_Abstract_Subprogram (Par_Prim)
             and then Expander_Active
           then
--- 1950,2037 ----
              --  When the primitive is an LSP wrapper we climb to the parent
              --  primitive that has the inherited contract.
  
!             if Is_LSP_Wrapper (Par_Prim) then
                 Par_Prim := LSP_Subprogram (Par_Prim);
              end if;
  
              --  Analyze the contract items of the parent operation, and
!             --  determine whether this inherited primitive needs a LSP
!             --  wrapper. This is determined when the condition is rewritten
!             --  in sem_prag, using the mapping between overridden and
!             --  overriding operations built in the loop above.
  
!             declare
!                LSP_Wrapper_Needed : Boolean;
! 
!             begin
!                Analyze_Entry_Or_Subprogram_Contract (Par_Prim);
!                Build_Inherited_Condition_Pragmas (Prim, LSP_Wrapper_Needed);
! 
!                if LSP_Wrapper_Needed then
!                   Wrapper_Needed := LSP_Wrapper;
!                end if;
!             end;
! 
!             --  If the LSP wrapper is not needed but the tagged type R
!             --  implements additional interface types, and this inherited
!             --  primitive covers an interface primitive of these additional
!             --  interface types that has class-wide postconditions, then it
!             --  requires a pre-/postconditions wrapper.
! 
!             if Wrapper_Needed = No_Wrapper
!               and then Present (Interfaces (R))
!               and then Present (Condition_Candidates_List)
!               and then Contains (Condition_Candidates_List, Prim)
!             then
!                declare
!                   Elmt       : Elmt_Id;
!                   Ent        : Entity_Id;
!                   Iface      : Entity_Id;
!                   Iface_Elmt : Elmt_Id;
! 
!                begin
!                   Elmt := First_Elmt (Prim_Ops);
! 
!                   Search : while Present (Elmt) loop
!                      Ent := Node (Elmt);
! 
!                      --  Perform the search relying on the internal entities
!                      --  that link tagged type primitives with interface
!                      --  primitives.
! 
!                      if Present (Interface_Alias (Ent))
!                        and then (Alias (Ent)) = Prim
!                        and then
!                          (Present (Class_Preconditions (Interface_Alias (Ent)))
!                             or else Present (Class_Postconditions
!                                                (Interface_Alias (Ent))))
!                      then
!                         Iface := Find_Dispatching_Type (Interface_Alias (Ent));
! 
!                         --  We only need to locate primitives of additional
!                         --  interfaces implemented by tagged type R (since
!                         --  inherited primitives of parent types that cover
!                         --  primitives of inherited interface types don't
!                         --  need a wrapper).
! 
!                         Iface_Elmt := First_Elmt (Interfaces (R));
!                         while Present (Iface_Elmt) loop
!                            if Node (Iface_Elmt) = Iface then
!                               Wrapper_Needed := Condition_Wrapper;
!                               exit Search;
!                            end if;
! 
!                            Next_Elmt (Iface_Elmt);
!                         end loop;
!                      end if;
! 
!                      Next_Elmt (Elmt);
!                   end loop Search;
!                end;
!             end if;
           end if;
  
!          if Wrapper_Needed /= No_Wrapper
             and then not Is_Abstract_Subprogram (Par_Prim)
             and then Expander_Active
           then
*************** package body Freeze is
*** 1997,2002 ****
--- 2071,2085 ----
                 DTW_Decl := Make_Subprogram_Declaration (Loc,
                               Specification => DTW_Spec);
  
+                --  LSP wrappers reference the parent primitive that has the
+                --  the class-wide pre/post condition that calls overridden
+                --  primitives. Condition wrappers do not have this attribute
+                --  (see predicate Is_LSP_Wrapper).
+ 
+                if Wrapper_Needed = LSP_Wrapper then
+                   Set_LSP_Subprogram (DTW_Id, Par_Prim);
+                end if;
+ 
                 --  The spec of the wrapper has been built using the source
                 --  location of its parent primitive; we must update it now
                 --  (with the source location of the internal primitive built
*************** package body Freeze is
*** 2007,2017 ****
  
                 Set_Sloc (DTW_Id, Sloc (Prim));
  
!                --  For inherited class-wide preconditions the DTW wrapper
!                --  reuses the ICW of the parent (which checks the parent
!                --  interpretation of the class-wide preconditions); the
!                --  interpretation of the class-wide preconditions for the
!                --  inherited subprogram is checked at the caller side.
  
                 --  When the subprogram inherits class-wide postconditions
                 --  the DTW also checks the interpretation of the class-wide
--- 2090,2101 ----
  
                 Set_Sloc (DTW_Id, Sloc (Prim));
  
!                --  For LSP_Wrappers of subprograms that inherit class-wide
!                --  preconditions the DTW wrapper reuses the ICW of the parent
!                --  (which checks the parent interpretation of the class-wide
!                --  preconditions); the interpretation of the class-wide
!                --  preconditions for the inherited subprogram is checked
!                --  at the caller side.
  
                 --  When the subprogram inherits class-wide postconditions
                 --  the DTW also checks the interpretation of the class-wide
*************** package body Freeze is
*** 2020,2031 ****
                 --  the class-wide postconditions.
  
                 --      procedure Prim (F1 : T1; ...) is
!                --         [ pragma Check (Postcondition, Expr); ]
                 --      begin
                 --         Par_Prim_ICW (Par_Type (F1), ...);
                 --      end;
  
!                if Present (Indirect_Call_Wrapper (Par_Prim)) then
                    DTW_Body :=
                      Build_DTW_Body (Loc,
                        DTW_Spec     => DTW_Spec,
--- 2104,2117 ----
                 --  the class-wide postconditions.
  
                 --      procedure Prim (F1 : T1; ...) is
!                --         [ pragma Postcondition (check => Expr); ]
                 --      begin
                 --         Par_Prim_ICW (Par_Type (F1), ...);
                 --      end;
  
!                if Wrapper_Needed = LSP_Wrapper
!                  and then Present (Indirect_Call_Wrapper (Par_Prim))
!                then
                    DTW_Body :=
                      Build_DTW_Body (Loc,
                        DTW_Spec     => DTW_Spec,
*************** package body Freeze is
*** 2033,2051 ****
                        Par_Prim     => Par_Prim,
                        Wrapped_Subp => Indirect_Call_Wrapper (Par_Prim));
  
!                --  For subprograms that only inherit class-wide postconditions
!                --  the DTW wrapper calls the parent primitive (which on its
!                --  body checks the interpretation of the class-wide post-
!                --  conditions for the parent subprogram), and the DTW checks
!                --  the interpretation of the class-wide postconditions for the
                 --  inherited subprogram.
  
                 --      procedure Prim (F1 : T1; ...) is
!                --         pragma Check (Postcondition, Expr);
                 --      begin
                 --         Par_Prim (Par_Type (F1), ...);
                 --      end;
  
                 else
                    DTW_Body :=
                      Build_DTW_Body (Loc,
--- 2119,2145 ----
                        Par_Prim     => Par_Prim,
                        Wrapped_Subp => Indirect_Call_Wrapper (Par_Prim));
  
!                --  For LSP_Wrappers of subprograms that only inherit class-wide
!                --  postconditions, and also for Condition_Wrappers (wrappers of
!                --  inherited subprograms that implement additional interface
!                --  primitives that have class-wide pre-/postconditions), the
!                --  DTW wrapper calls the parent primitive (which on its body
!                --  checks the interpretation of the class-wide post-conditions
!                --  for the parent subprogram), and the DTW checks the
!                --  interpretation of the class-wide postconditions for the
                 --  inherited subprogram.
  
                 --      procedure Prim (F1 : T1; ...) is
!                --         pragma Postcondition (check => Expr);
                 --      begin
                 --         Par_Prim (Par_Type (F1), ...);
                 --      end;
  
+                --  No class-wide preconditions runtime check is generated for
+                --  this wrapper call to the parent primitive, since the check
+                --  is performed by the caller of the DTW wrapper (see routine
+                --  Install_Class_Preconditions_Check).
+ 
                 else
                    DTW_Body :=
                      Build_DTW_Body (Loc,
*************** package body Freeze is
*** 2204,2221 ****
        elsif Is_Array_Type (E) then
           Set_Strict_Alignment (E, Strict_Alignment (Component_Type (E)));
  
!          --  ??? AI12-001: Any component of a packed type that contains an
!          --  aliased part must be aligned according to the alignment of its
!          --  subtype (RM 13.2(7)). This means that the following test:
  
!          --    if Has_Aliased_Components (E) then
!          --      Set_Strict_Alignment (E);
!          --    end if;
  
!          --  should be implemented here. Unfortunately it would break Florist,
!          --  which has the bad habit of overaligning all the types it declares
!          --  on 32-bit platforms. Other legacy codebases could also be affected
!          --  because this check has historically been missing in GNAT.
  
        elsif Is_Record_Type (E) then
           Comp := First_Component (E);
--- 2298,2321 ----
        elsif Is_Array_Type (E) then
           Set_Strict_Alignment (E, Strict_Alignment (Component_Type (E)));
  
!          --  RM 13.2(7.1/4): Any component of a packed type that contains an
!          --  aliased part shall be aligned according to the alignment of its
!          --  subtype.
  
!          --  Unfortunately this breaks Florist, which has had the bad habit
!          --  of overaligning all the types it declares on 32-bit platforms,
!          --  so make an exception if the component size is the storage unit.
  
!          --  Other legacy codebases could also be affected because this was
!          --  historically not enforced, so -gnatd_l can be used to disable it.
! 
!          if Has_Aliased_Components (E)
!            and then not (Known_Component_Size (E)
!                           and then Component_Size (E) = System_Storage_Unit)
!            and then not Debug_Flag_Underscore_L
!          then
!             Set_Strict_Alignment (E);
!          end if;
  
        elsif Is_Record_Type (E) then
           Comp := First_Component (E);
*************** package body Freeze is
*** 2323,2333 ****
        if Present (Init_Stmts)
          and then Nkind (Init_Stmts) = N_Compound_Statement
        then
!          Insert_List_Before (Init_Stmts, Actions (Init_Stmts));
  
!          --  Note that we rewrite Init_Stmts into a NULL statement, rather than
           --  just removing it, because Freeze_All may rely on this particular
!          --  Node_Id still being present in the enclosing list to know where to
           --  stop freezing.
  
           Rewrite (Init_Stmts, Make_Null_Statement (Sloc (Init_Stmts)));
--- 2423,2441 ----
        if Present (Init_Stmts)
          and then Nkind (Init_Stmts) = N_Compound_Statement
        then
!          --  If the entity has its freezing delayed, append the initialization
!          --  actions to its freeze actions. Otherwise insert them back at the
!          --  point where they have been generated.
  
!          if Has_Delayed_Freeze (E) then
!             Append_Freeze_Actions (E, Actions (Init_Stmts));
!          else
!             Insert_List_Before (Init_Stmts, Actions (Init_Stmts));
!          end if;
! 
!          --  Note that we rewrite Init_Stmts into a null statement, rather than
           --  just removing it, because Freeze_All may rely on this particular
!          --  node still being present in the enclosing list to know where to
           --  stop freezing.
  
           Rewrite (Init_Stmts, Make_Null_Statement (Sloc (Init_Stmts)));
*************** package body Freeze is
*** 2470,2491 ****
              --  for a description of how we handle aspect visibility).
  
              elsif Has_Delayed_Aspects (E) then
!                declare
!                   Ritem : Node_Id;
! 
!                begin
!                   Ritem := First_Rep_Item (E);
!                   while Present (Ritem) loop
!                      if Nkind (Ritem) = N_Aspect_Specification
!                        and then Entity (Ritem) = E
!                        and then Is_Delayed_Aspect (Ritem)
!                      then
!                         Check_Aspect_At_End_Of_Declarations (Ritem);
!                      end if;
! 
!                      Next_Rep_Item (Ritem);
!                   end loop;
!                end;
              end if;
  
              --  If an incomplete type is still not frozen, this may be a
--- 2578,2584 ----
              --  for a description of how we handle aspect visibility).
  
              elsif Has_Delayed_Aspects (E) then
!                Check_Aspects_At_End_Of_Declarations (E);
              end if;
  
              --  If an incomplete type is still not frozen, this may be a
*************** package body Freeze is
*** 2616,2626 ****
              end loop;
           end if;
  
!          --  Historical note: We used to create a finalization master for an
!          --  access type whose designated type is not controlled, but contains
           --  private controlled compoments. This form of postprocessing is no
!          --  longer needed because the finalization master is now created when
!          --  the access type is frozen (see Exp_Ch3.Freeze_Type).
  
           Next_Entity (E);
        end loop;
--- 2709,2719 ----
              end loop;
           end if;
  
!          --  Historical note: We used to create a finalization collection for
!          --  access types whose designated type is not controlled, but contains
           --  private controlled compoments. This form of postprocessing is no
!          --  longer needed because the finalization collection is now created
!          --  when the access type is frozen (see Exp_Ch3.Freeze_Type).
  
           Next_Entity (E);
        end loop;
*************** package body Freeze is
*** 2931,2937 ****
                 when N_Attribute_Reference =>
                    if Attribute_Name (N) in Name_Access | Name_Unchecked_Access
                      and then Is_Entity_Name (Prefix (N))
-                     and then Is_Type (Entity (Prefix (N)))
                      and then Entity (Prefix (N)) = E
                    then
                       if Ada_Version < Ada_2012 then
--- 3024,3029 ----
*************** package body Freeze is
*** 3008,3014 ****
                Find_Aspect (Typ, Aspect_No_Parts);
              Curr_Aspect_Spec : Entity_Id;
           begin
- 
              --  Examine Typ's associated node, when present, since aspect
              --  specifications do not get transferred when nodes get rewritten.
  
--- 3100,3105 ----
*************** package body Freeze is
*** 3046,3054 ****
                 --  Search through aspects present on the private type
  
                 while Present (Curr_Aspect_Spec) loop
!                   if Get_Aspect_Id (Curr_Aspect_Spec)
!                        = Aspect_No_Parts
!                   then
                       Aspect_Spec := Curr_Aspect_Spec;
                       exit;
                    end if;
--- 3137,3143 ----
                 --  Search through aspects present on the private type
  
                 while Present (Curr_Aspect_Spec) loop
!                   if Get_Aspect_Id (Curr_Aspect_Spec) = Aspect_No_Parts then
                       Aspect_Spec := Curr_Aspect_Spec;
                       exit;
                    end if;
*************** package body Freeze is
*** 3077,3083 ****
              Aspect_Spec : constant Entity_Id :=
                Find_Aspect_No_Parts (Typ);
           begin
- 
              --  Return the value of the aspect when present
  
              if Present (Aspect_Spec) then
--- 3166,3171 ----
*************** package body Freeze is
*** 3184,3190 ****
                      ("aspect % applied to task type &", Typ);
                    Error_Msg_N
                      ("\replace task components with access-to-task-type "
!                      & "components??", Typ);
                 end if;
  
              else
--- 3272,3278 ----
                      ("aspect % applied to task type &", Typ);
                    Error_Msg_N
                      ("\replace task components with access-to-task-type "
!                      & "components", Typ);
                 end if;
  
              else
*************** package body Freeze is
*** 3476,3482 ****
        procedure Freeze_Array_Type (Arr : Entity_Id) is
           FS     : constant Entity_Id := First_Subtype (Arr);
           Ctyp   : constant Entity_Id := Component_Type (Arr);
!          Clause : Entity_Id;
  
           Non_Standard_Enum : Boolean := False;
           --  Set true if any of the index types is an enumeration type with a
--- 3564,3572 ----
        procedure Freeze_Array_Type (Arr : Entity_Id) is
           FS     : constant Entity_Id := First_Subtype (Arr);
           Ctyp   : constant Entity_Id := Component_Type (Arr);
! 
!          Clause : Node_Id;
!          --  Set to Component_Size clause or Atomic pragma, if any
  
           Non_Standard_Enum : Boolean := False;
           --  Set true if any of the index types is an enumeration type with a
*************** package body Freeze is
*** 3506,3518 ****
  
              Set_SSO_From_Default (Arr);
  
!             --  Propagate flags for component type
  
!             if Is_Controlled (Ctyp)
!               or else Has_Controlled_Component (Ctyp)
!             then
!                Set_Has_Controlled_Component (Arr);
!             end if;
  
              if Has_Unchecked_Union (Ctyp) then
                 Set_Has_Unchecked_Union (Arr);
--- 3596,3605 ----
  
              Set_SSO_From_Default (Arr);
  
!             --  Propagate flags from component type
  
!             Propagate_Concurrent_Flags (Arr, Ctyp);
!             Propagate_Controlled_Flags (Arr, Ctyp, Comp => True);
  
              if Has_Unchecked_Union (Ctyp) then
                 Set_Has_Unchecked_Union (Arr);
*************** package body Freeze is
*** 3555,3630 ****
                 end;
              end if;
  
!             --  Check for Aliased or Atomic_Components or Full Access with
!             --  unsuitable packing or explicit component size clause given.
! 
!             if (Has_Aliased_Components (Arr)
!                  or else Has_Atomic_Components (Arr)
!                  or else Is_Full_Access (Ctyp))
!               and then
!                 (Has_Component_Size_Clause (Arr) or else Is_Packed (Arr))
!             then
!                Alias_Atomic_Check : declare
  
!                   procedure Complain_CS (T : String);
!                   --  Outputs error messages for incorrect CS clause or pragma
!                   --  Pack for aliased or full access components (T is either
!                   --  "aliased" or "atomic" or "volatile full access");
  
                    -----------------
                    -- Complain_CS --
                    -----------------
  
!                   procedure Complain_CS (T : String) is
                    begin
!                      if Has_Component_Size_Clause (Arr) then
!                         Clause :=
!                           Get_Attribute_Definition_Clause
!                             (FS, Attribute_Component_Size);
  
!                         Error_Msg_N
!                           ("incorrect component size for "
!                            & T & " components", Clause);
!                         Error_Msg_Uint_1 := Esize (Ctyp);
!                         Error_Msg_N
!                           ("\only allowed value is^", Clause);
  
                       else
                          Error_Msg_N
!                           ("?cannot pack " & T & " components (RM 13.2(7))",
!                            Get_Rep_Pragma (FS, Name_Pack));
!                         Set_Is_Packed (Arr, False);
                       end if;
                    end Complain_CS;
  
!                --  Start of processing for Alias_Atomic_Check
  
                 begin
!                   --  If object size of component type isn't known, we cannot
!                   --  be sure so we defer to the back end.
! 
!                   if not Known_Static_Esize (Ctyp) then
!                      null;
! 
!                   --  Case where component size has no effect. First check for
!                   --  object size of component type multiple of the storage
!                   --  unit size.
! 
!                   elsif Esize (Ctyp) mod System_Storage_Unit = 0
! 
!                     --  OK in both packing case and component size case if RM
!                     --  size is known and static and same as the object size.
! 
!                     and then
!                       ((Known_Static_RM_Size (Ctyp)
!                          and then Esize (Ctyp) = RM_Size (Ctyp))
! 
!                         --  Or if we have an explicit component size clause and
!                         --  the component size and object size are equal.
  
!                         or else
!                           (Has_Component_Size_Clause (Arr)
!                             and then Component_Size (Arr) = Esize (Ctyp)))
                    then
                       null;
  
--- 3642,3698 ----
                 end;
              end if;
  
!             --  Check for Aliased or Atomic or Full Access or Independent
!             --  components with an unsuitable component size clause given.
!             --  The main purpose is to give an error when bit packing would
!             --  be required to honor the component size, because bit packing
!             --  is incompatible with these aspects; when bit packing is not
!             --  required, the final validation of the component size may be
!             --  left to the back end.
  
!             if Has_Component_Size_Clause (Arr) then
!                CS_Check : declare
!                   procedure Complain_CS (T : String; Min : Boolean := False);
!                   --  Output an error message for an unsuitable component size
!                   --  clause for independent components (T is either "aliased"
!                   --  or "atomic" or "volatile full access" or "independent").
  
                    -----------------
                    -- Complain_CS --
                    -----------------
  
!                   procedure Complain_CS (T : String; Min : Boolean := False) is
                    begin
!                      Clause :=
!                        Get_Attribute_Definition_Clause
!                          (FS, Attribute_Component_Size);
  
!                      Error_Msg_N
!                        ("incorrect component size for " & T & " components",
!                         Clause);
  
+                      if Known_Static_Esize (Ctyp) then
+                         Error_Msg_Uint_1 := Esize (Ctyp);
+                         if Min then
+                            Error_Msg_N ("\minimum allowed value is^", Clause);
+                         else
+                            Error_Msg_N ("\only allowed value is^", Clause);
+                         end if;
                       else
                          Error_Msg_N
!                           ("\must be multiple of storage unit", Clause);
                       end if;
                    end Complain_CS;
  
!                --  Start of processing for CS_Check
  
                 begin
!                   --  OK if the component size and object size are equal, or
!                   --  if the component size is a multiple of the storage unit.
  
!                   if (if Known_Static_Esize (Ctyp)
!                        then Component_Size (Arr) = Esize (Ctyp)
!                        else Component_Size (Arr) mod System_Storage_Unit = 0)
                    then
                       null;
  
*************** package body Freeze is
*** 3638,3704 ****
  
                    elsif Is_Volatile_Full_Access (Ctyp) then
                       Complain_CS ("volatile full access");
                    end if;
!                end Alias_Atomic_Check;
!             end if;
  
!             --  Check for Independent_Components/Independent with unsuitable
!             --  packing or explicit component size clause given.
  
!             if (Has_Independent_Components (Arr) or else Is_Independent (Ctyp))
!                   and then
!                (Has_Component_Size_Clause  (Arr) or else Is_Packed (Arr))
!             then
!                begin
!                   --  If object size of component type isn't known, we cannot
!                   --  be sure so we defer to the back end.
  
!                   if not Known_Static_Esize (Ctyp) then
!                      null;
  
!                   --  Case where component size has no effect. First check for
!                   --  object size of component type multiple of the storage
!                   --  unit size.
  
!                   elsif Esize (Ctyp) mod System_Storage_Unit = 0
  
!                     --  OK in both packing case and component size case if RM
!                     --  size is known and multiple of the storage unit size.
  
!                     and then
!                       ((Known_Static_RM_Size (Ctyp)
!                          and then RM_Size (Ctyp) mod System_Storage_Unit = 0)
  
!                         --  Or if we have an explicit component size clause and
!                         --  the component size is larger than the object size.
  
!                         or else
!                           (Has_Component_Size_Clause (Arr)
!                             and then Component_Size (Arr) >= Esize (Ctyp)))
                    then
                       null;
  
!                   else
!                      if Has_Component_Size_Clause (Arr) then
!                         Clause :=
!                           Get_Attribute_Definition_Clause
!                             (FS, Attribute_Component_Size);
  
!                         Error_Msg_N
!                           ("incorrect component size for "
!                            & "independent components", Clause);
!                         Error_Msg_Uint_1 := Esize (Ctyp);
!                         Error_Msg_N
!                           ("\minimum allowed is^", Clause);
  
!                      else
!                         Error_Msg_N
!                           ("?cannot pack independent components (RM 13.2(7))",
!                            Get_Rep_Pragma (FS, Name_Pack));
!                         Set_Is_Packed (Arr, False);
!                      end if;
                    end if;
!                end;
              end if;
  
              --  If packing was requested or if the component size was
--- 3706,3781 ----
  
                    elsif Is_Volatile_Full_Access (Ctyp) then
                       Complain_CS ("volatile full access");
+ 
+                   --  For Independent a larger size is permitted
+ 
+                   elsif (Has_Independent_Components (Arr)
+                           or else Is_Independent (Ctyp))
+                     and then (not Known_Static_Esize (Ctyp)
+                                or else Component_Size (Arr) < Esize (Ctyp))
+                   then
+                      Complain_CS ("independent", Min => True);
                    end if;
!                end CS_Check;
  
!             --  Check for Aliased or Atomic or Full Access or Independent
!             --  components with an unsuitable aspect/pragma Pack given.
!             --  The main purpose is to prevent bit packing from occurring,
!             --  because bit packing is incompatible with these aspects; when
!             --  bit packing cannot occur, the final handling of the packing
!             --  may be left to the back end.
  
!             elsif Is_Packed (Arr) and then Known_Static_RM_Size (Ctyp) then
!                Pack_Check : declare
  
!                   procedure Complain_Pack (T : String);
!                   --  Output a warning message for an unsuitable aspect/pragma
!                   --  Pack for independent components (T is either "aliased" or
!                   --  "atomic" or "volatile full access" or "independent") and
!                   --  reset the Is_Packed flag on the array type.
  
!                   -------------------
!                   -- Complain_Pack --
!                   -------------------
  
!                   procedure Complain_Pack (T : String) is
!                   begin
!                      Error_Msg_N
!                        ("?cannot pack " & T & " components (RM 13.2(7))",
!                         Get_Rep_Pragma (FS, Name_Pack));
  
!                      Set_Is_Packed (Arr, False);
!                   end Complain_Pack;
  
!                --  Start of processing for Pack_Check
  
!                begin
!                   --  OK if the component size and object size are equal, or
!                   --  if the component size is a multiple of the storage unit.
  
!                   if (if Known_Static_Esize (Ctyp)
!                        then RM_Size (Ctyp) = Esize (Ctyp)
!                        else RM_Size (Ctyp) mod System_Storage_Unit = 0)
                    then
                       null;
  
!                   elsif Has_Aliased_Components (Arr) then
!                      Complain_Pack ("aliased");
  
!                   elsif Has_Atomic_Components (Arr)
!                     or else Is_Atomic (Ctyp)
!                   then
!                      Complain_Pack ("atomic");
  
!                   elsif Is_Volatile_Full_Access (Ctyp) then
!                      Complain_Pack ("volatile full access");
! 
!                   elsif Has_Independent_Components (Arr)
!                     or else Is_Independent (Ctyp)
!                   then
!                      Complain_Pack ("independent");
                    end if;
!                end Pack_Check;
              end if;
  
              --  If packing was requested or if the component size was
*************** package body Freeze is
*** 4094,4100 ****
           <<Skip_Packed>>
  
           --  A Ghost type cannot have a component of protected or task type
!          --  (SPARK RM 6.9(19)).
  
           if Is_Ghost_Entity (Arr) and then Is_Concurrent_Type (Ctyp) then
              Error_Msg_N
--- 4171,4177 ----
           <<Skip_Packed>>
  
           --  A Ghost type cannot have a component of protected or task type
!          --  (SPARK RM 6.9(21)).
  
           if Is_Ghost_Entity (Arr) and then Is_Concurrent_Type (Ctyp) then
              Error_Msg_N
*************** package body Freeze is
*** 4108,4113 ****
--- 4185,4192 ----
        -------------------------------
  
        procedure Freeze_Object_Declaration (E : Entity_Id) is
+          Decl : constant Node_Id := Declaration_Node (E);
+ 
           procedure Check_Large_Modular_Array (Typ : Entity_Id);
           --  Check that the size of array type Typ can be computed without
           --  overflow, and generates a Storage_Error otherwise. This is only
*************** package body Freeze is
*** 4186,4196 ****
                                    Make_Itype_Reference (Obj_Loc);
                    begin
                       Set_Itype (Ref_Node, Etype (E));
!                      Insert_Action (Declaration_Node (E), Ref_Node);
                    end;
                 end if;
  
!                Insert_Action (Declaration_Node (E),
                   Make_Raise_Storage_Error (Obj_Loc,
                     Condition =>
                       Make_Op_Ge (Obj_Loc,
--- 4265,4275 ----
                                    Make_Itype_Reference (Obj_Loc);
                    begin
                       Set_Itype (Ref_Node, Etype (E));
!                      Insert_Action (Decl, Ref_Node);
                    end;
                 end if;
  
!                Insert_Action (Decl,
                   Make_Raise_Storage_Error (Obj_Loc,
                     Condition =>
                       Make_Op_Ge (Obj_Loc,
*************** package body Freeze is
*** 4373,4418 ****
           --  checks to freeze time since pragma Import inhibits default
           --  initialization and thus pragma Import affects these checks.
  
!          Validate_Object_Declaration (Declaration_Node (E));
  
!          --  If there is an address clause, check that it is valid and if need
!          --  be move initialization to the freeze node.
  
           Check_Address_Clause (E);
  
!          --  Similar processing is needed for aspects that may affect object
!          --  layout, like Address, if there is an initialization expression.
!          --  We don't do this if there is a pragma Linker_Section, because it
!          --  would prevent the back end from statically initializing the
!          --  object; we don't want elaboration code in that case.
  
!          if Has_Delayed_Aspects (E)
!            and then Expander_Active
!            and then Is_Array_Type (Typ)
!            and then Present (Expression (Declaration_Node (E)))
!            and then No (Linker_Section_Pragma (E))
           then
              declare
!                Decl : constant Node_Id := Declaration_Node (E);
                 Lhs  : constant Node_Id := New_Occurrence_Of (E, Loc);
  
              begin
                 --  Capture initialization value at point of declaration, and
                 --  make explicit assignment legal, because object may be a
                 --  constant.
  
!                Remove_Side_Effects (Expression (Decl));
                 Set_Assignment_OK (Lhs);
  
!                --  Move initialization to freeze actions
! 
!                Append_Freeze_Action (E,
!                  Make_Assignment_Statement (Loc,
                     Name       => Lhs,
!                    Expression => Expression (Decl)));
  
                 Set_No_Initialization (Decl);
!                --  Set_Is_Frozen (E, False);
              end;
           end if;
  
--- 4452,4514 ----
           --  checks to freeze time since pragma Import inhibits default
           --  initialization and thus pragma Import affects these checks.
  
!          Validate_Object_Declaration (Decl);
  
!          --  If there is an address clause, check that it is valid
  
           Check_Address_Clause (E);
  
!          --  If the object has an address clause or a delayed aspect, remove
!          --  the side effects from initial expression, except in the case of
!          --  limited build-in-place calls and aggregates, which have their own
!          --  expansion elsewhere. This exception is necessary to avoid copying
!          --  limited objects.
  
!          if Expander_Active
!            and then
!              (Present (Address_Clause (E)) or else Has_Delayed_Aspects (E))
!            and then Present (Expression (Decl))
!            and then not No_Initialization (Decl)
!            and then not Is_Inherently_Limited_Type (Typ)
           then
              declare
!                Init : constant Node_Id := Expression (Decl);
                 Lhs  : constant Node_Id := New_Occurrence_Of (E, Loc);
  
+                Assign : Node_Id;
+ 
              begin
                 --  Capture initialization value at point of declaration, and
                 --  make explicit assignment legal, because object may be a
                 --  constant.
  
!                Remove_Side_Effects (Init);
                 Set_Assignment_OK (Lhs);
  
!                Assign :=
!                  Make_Assignment_Statement (Sloc (Decl),
                     Name       => Lhs,
!                    Expression => Init);
  
                 Set_No_Initialization (Decl);
! 
!                --  If the initialization expression is an aggregate, we do not
!                --  adjust after the assignment but, in either case, we do not
!                --  finalize before since the object is now uninitialized. Note
!                --  that Make_Tag_Ctrl_Assignment will also automatically insert
!                --  the tag assignment in the tagged case.
! 
!                if Nkind (Unqualify (Init)) = N_Aggregate then
!                   Set_No_Ctrl_Actions (Assign);
!                else
!                   Set_No_Finalize_Actions (Assign);
!                end if;
! 
!                --  Move initialization to freeze actions, once the object has
!                --  been frozen and the address clause alignment check has been
!                --  performed.
! 
!                Append_Freeze_Action (E, Assign);
              end;
           end if;
  
*************** package body Freeze is
*** 4454,4461 ****
              null;
  
           elsif Has_Default_Initialization (E) then
!             Check_Restriction
!               (No_Default_Initialization, Declaration_Node (E));
           end if;
  
           --  Ensure that a variable subject to pragma Thread_Local_Storage
--- 4550,4556 ----
              null;
  
           elsif Has_Default_Initialization (E) then
!             Check_Restriction (No_Default_Initialization, Decl);
           end if;
  
           --  Ensure that a variable subject to pragma Thread_Local_Storage
*************** package body Freeze is
*** 4929,4939 ****
--- 5024,5040 ----
           --  Accumulates total Esize values of all elementary components. Used
           --  for processing of Implicit_Packing.
  
+          Final_Storage_Only : Boolean := True;
+          --  Used to compute the Finalize_Storage_Only flag
+ 
           Placed_Component : Boolean := False;
           --  Set True if we find at least one component with a component
           --  clause (used to warn about useless Bit_Order pragmas, and also
           --  to detect cases where Implicit_Packing may have an effect).
  
+          Relaxed_Finalization : Boolean := True;
+          --  Used to compute the Has_Relaxed_Finalization flag
+ 
           Sized_Component_Total_RM_Size : Uint := Uint_0;
           --  Accumulates total RM_Size values of all sized components. Used
           --  for processing of Implicit_Packing.
*************** package body Freeze is
*** 4968,4973 ****
--- 5069,5079 ----
           --  variants referenceed by the Variant_Part VP are frozen. This is
           --  a recursive routine to deal with nested variants.
  
+          procedure Warn_If_Implicitly_Inherited_Aspects (Tag_Typ : Entity_Id);
+          --  Report a warning for Tag_Typ when it implicitly inherits the
+          --  First_Controlling_Parameter aspect but does not explicitly
+          --  specify it.
+ 
           -----------------
           -- Check_Itype --
           -----------------
*************** package body Freeze is
*** 5046,5051 ****
--- 5152,5344 ----
              end loop;
           end Freeze_Choices_In_Variant_Part;
  
+          ------------------------------------------
+          -- Warn_If_Implicitly_Inherited_Aspects --
+          ------------------------------------------
+ 
+          procedure Warn_If_Implicitly_Inherited_Aspects (Tag_Typ : Entity_Id)
+          is
+             function Has_First_Ctrl_Param_Aspect return Boolean;
+             --  Determines if Tag_Typ explicitly has the aspect/pragma
+             --  First_Controlling_Parameter.
+ 
+             ---------------------------------
+             -- Has_First_Ctrl_Param_Aspect --
+             ---------------------------------
+ 
+             function Has_First_Ctrl_Param_Aspect return Boolean is
+                Decl_Nod   : constant Node_Id := Parent (Tag_Typ);
+                Asp_Nod    : Node_Id;
+                Nod        : Node_Id;
+                Pragma_Arg : Node_Id;
+                Pragma_Ent : Entity_Id;
+ 
+             begin
+                pragma Assert (Nkind (Decl_Nod) = N_Full_Type_Declaration);
+ 
+                if Present (Aspect_Specifications (Decl_Nod)) then
+                   Asp_Nod := First (Aspect_Specifications (Decl_Nod));
+                   while Present (Asp_Nod) loop
+                      if Chars (Identifier (Asp_Nod))
+                        = Name_First_Controlling_Parameter
+                      then
+                         return True;
+                      end if;
+ 
+                      Next (Asp_Nod);
+                   end loop;
+                end if;
+ 
+                --  Search for the occurrence of the pragma
+ 
+                Nod := Next (Decl_Nod);
+                while Present (Nod) loop
+                   if Nkind (Nod) = N_Pragma
+                     and then Chars (Pragma_Identifier (Nod))
+                                = Name_First_Controlling_Parameter
+                     and then Present (Pragma_Argument_Associations (Nod))
+                   then
+                      Pragma_Arg :=
+                        Expression (First (Pragma_Argument_Associations (Nod)));
+ 
+                      if Nkind (Pragma_Arg) = N_Identifier
+                        and then Present (Entity (Pragma_Arg))
+                      then
+                         Pragma_Ent := Entity (Pragma_Arg);
+ 
+                         if Pragma_Ent = Tag_Typ
+                           or else
+                             (Is_Concurrent_Type (Pragma_Ent)
+                                and then
+                                  Corresponding_Record_Type (Pragma_Ent)
+                                    = Tag_Typ)
+                         then
+                            return True;
+                         end if;
+                      end if;
+                   end if;
+ 
+                   Next (Nod);
+                end loop;
+ 
+                return False;
+             end Has_First_Ctrl_Param_Aspect;
+ 
+             --  Local Variables
+ 
+             Has_Aspect_First_Ctrl_Param : constant Boolean :=
+                                             Has_First_Ctrl_Param_Aspect;
+ 
+          --  Start of processing for Warn_Implicitly_Inherited_Aspects
+ 
+          begin
+             --  Handle cases where reporting the warning is not needed
+ 
+             if not Warn_On_Non_Dispatching_Primitives then
+                return;
+ 
+             --  No check needed when this is the full view of a private type
+             --  declaration since the pragma/aspect must be placed and checked
+             --  in the partial view, and it is implicitly propagated to the
+             --  full view.
+ 
+             elsif Has_Private_Declaration (Tag_Typ)
+               and then Is_Tagged_Type (Incomplete_Or_Partial_View (Tag_Typ))
+             then
+                return;
+ 
+             --  Similar case but applied to concurrent types
+ 
+             elsif Is_Concurrent_Record_Type (Tag_Typ)
+               and then Has_Private_Declaration
+                          (Corresponding_Concurrent_Type (Tag_Typ))
+               and then Is_Tagged_Type
+                          (Incomplete_Or_Partial_View
+                            (Corresponding_Concurrent_Type (Tag_Typ)))
+             then
+                return;
+             end if;
+ 
+             if Etype (Tag_Typ) /= Tag_Typ
+               and then Has_First_Controlling_Parameter_Aspect (Etype (Tag_Typ))
+             then
+                --  The attribute was implicitly inherited
+                pragma Assert
+                  (Has_First_Controlling_Parameter_Aspect (Tag_Typ));
+ 
+                --  No warning needed when the current tagged type is not
+                --  an interface type since by definition the aspect is
+                --  implicitly propagated from its parent type; the warning
+                --  is reported on interface types since it may not be so
+                --  clear when some implemented interface types have the
+                --  aspect and other interface types don't have it. For
+                --  interface types, we don't report the warning when the
+                --  interface type is an extension of a single interface
+                --  type (for similarity with the behavior with regular
+                --  tagged types).
+ 
+                if not Has_Aspect_First_Ctrl_Param
+                  and then Is_Interface (Tag_Typ)
+                  and then not Is_Empty_Elmt_List (Interfaces (Tag_Typ))
+                then
+                   Error_Msg_N
+                     ("?_j?implicitly inherits aspect 'First_'Controlling_'"
+                      & "Parameter!", Tag_Typ);
+                   Error_Msg_NE
+                     ("\?_j?from & and must be confirmed explicitly!",
+                      Tag_Typ, Etype (Tag_Typ));
+                end if;
+ 
+             elsif Present (Interfaces (Tag_Typ))
+               and then not Is_Empty_Elmt_List (Interfaces (Tag_Typ))
+             then
+                --  To maintain consistency with the behavior when the aspect
+                --  is implicitly inherited from its parent type, we do not
+                --  report a warning for concurrent record types that implement
+                --  a single interface type. By definition, the aspect is
+                --  propagated from that interface type as if it were the parent
+                --  type. For example:
+ 
+                --     type Iface is interface with First_Controlling_Parameter;
+                --     task type T is new Iface with ...
+ 
+                if Is_Concurrent_Record_Type (Tag_Typ)
+                  and then No (Next_Elmt (First_Elmt (Interfaces (Tag_Typ))))
+                then
+                   null;
+ 
+                else
+                   declare
+                      Elmt  : Elmt_Id := First_Elmt (Interfaces (Tag_Typ));
+                      Iface : Entity_Id;
+ 
+                   begin
+                      while Present (Elmt) loop
+                         Iface := Node (Elmt);
+                         pragma Assert (Present (Iface));
+ 
+                         if Has_First_Controlling_Parameter_Aspect (Iface)
+                           and then not Has_Aspect_First_Ctrl_Param
+                         then
+                            pragma Assert
+                              (Has_First_Controlling_Parameter_Aspect
+                                (Tag_Typ));
+                            Error_Msg_N
+                              ("?_j?implicitly inherits aspect 'First_'"
+                               & "Controlling_'Parameter", Tag_Typ);
+                            Error_Msg_NE
+                              ("\?_j?from & and must be confirmed explicitly!",
+                               Tag_Typ, Iface);
+                            exit;
+                         end if;
+ 
+                         Next_Elmt (Elmt);
+                      end loop;
+                   end;
+                end if;
+             end if;
+          end Warn_If_Implicitly_Inherited_Aspects;
+ 
        --  Start of processing for Freeze_Record_Type
  
        begin
*************** package body Freeze is
*** 5529,5539 ****
                 Freeze_And_Append (Corresponding_Remote_Type (Rec), N, Result);
              end if;
  
!             --  Check for controlled components, unchecked unions, and type
!             --  invariants.
  
              Comp := First_Component (Rec);
              while Present (Comp) loop
  
                 --  Do not set Has_Controlled_Component on a class-wide
                 --  equivalent type. See Make_CW_Equivalent_Type.
--- 5822,5833 ----
                 Freeze_And_Append (Corresponding_Remote_Type (Rec), N, Result);
              end if;
  
!             --  Check for tasks, protected and controlled components, unchecked
!             --  unions, and type invariants.
  
              Comp := First_Component (Rec);
              while Present (Comp) loop
+                Propagate_Concurrent_Flags (Rec, Etype (Comp));
  
                 --  Do not set Has_Controlled_Component on a class-wide
                 --  equivalent type. See Make_CW_Equivalent_Type.
*************** package body Freeze is
*** 5553,5558 ****
--- 5847,5858 ----
                               (Corresponding_Record_Type (Etype (Comp)))))
                 then
                    Set_Has_Controlled_Component (Rec);
+                   Final_Storage_Only :=
+                     Final_Storage_Only
+                       and then Finalize_Storage_Only (Etype (Comp));
+                   Relaxed_Finalization :=
+                     Relaxed_Finalization
+                       and then Has_Relaxed_Finalization (Etype (Comp));
                 end if;
  
                 if Has_Unchecked_Union (Etype (Comp)) then
*************** package body Freeze is
*** 5584,5589 ****
--- 5884,5900 ----
  
                 Next_Component (Comp);
              end loop;
+ 
+             --  For a type that is not directly controlled but has controlled
+             --  components, Finalize_Storage_Only is set if all the controlled
+             --  components are Finalize_Storage_Only. The same processing is
+             --  appled to Has_Relaxed_Finalization.
+ 
+             if not Is_Controlled (Rec) and then Has_Controlled_Component (Rec)
+             then
+                Set_Finalize_Storage_Only    (Rec, Final_Storage_Only);
+                Set_Has_Relaxed_Finalization (Rec, Relaxed_Finalization);
+             end if;
           end if;
  
           --  Enforce the restriction that access attributes with a current
*************** package body Freeze is
*** 5709,5717 ****
                 then
                    null;
                 else
!                   Error_Msg_N
!                     ("Iterator_Element requires indexing aspect",
!                      Iterator_Aspect);
                 end if;
              end if;
           end;
--- 6020,6034 ----
                 then
                    null;
                 else
!                   if Get_Aspect_Id (Iterator_Aspect) = Aspect_Iterator_Element
!                   then
!                      Error_Msg_N ("Iterator_Element requires indexing aspect",
!                        Iterator_Aspect);
! 
!                   else
!                      Error_Msg_N ("Default_Iterator requires indexing aspect",
!                        Iterator_Aspect);
!                   end if;
                 end if;
              end if;
           end;
*************** package body Freeze is
*** 5804,5814 ****
              end;
           end if;
  
!          --  For a derived tagged type, check whether inherited primitives
!          --  might require a wrapper to handle class-wide conditions.
  
!          if Is_Tagged_Type (Rec) and then Is_Derived_Type (Rec) then
!             Check_Inherited_Conditions (Rec);
           end if;
        end Freeze_Record_Type;
  
--- 6121,6131 ----
              end;
           end if;
  
!          --  For tagged types, warn on an implicitly inherited aspect/pragma
!          --  First_Controlling_Parameter that is not explicitly set.
  
!          if Is_Tagged_Type (Rec) then
!             Warn_If_Implicitly_Inherited_Aspects (Rec);
           end if;
        end Freeze_Record_Type;
  
*************** package body Freeze is
*** 6134,6142 ****
  
           goto Leave;
  
!       --  Do not freeze if we are preanalyzing without freezing
  
!       elsif Inside_Preanalysis_Without_Freezing > 0 then
           Result := No_List;
           goto Leave;
  
--- 6451,6461 ----
  
           goto Leave;
  
!       --  Do not freeze under strict preanalysis
  
!       elsif Preanalysis_Active
!         and then not Within_Spec_Static_Expression (N)
!       then
           Result := No_List;
           goto Leave;
  
*************** package body Freeze is
*** 6352,6357 ****
--- 6671,6706 ----
           end;
        end if;
  
+       if Is_Derived_Type (E) and then Is_First_Subtype (E) then
+ 
+          --  If a derived type's parent type is not already frozen and has
+          --  delayed aspects, analyze the parent type's aspects at this point,
+          --  so that the following call to update the type's inherited aspects
+          --  will be effective.
+ 
+          if not Is_Frozen (Etype (E))
+            and then Has_Delayed_Aspects (Etype (E))
+          then
+             Analyze_Aspects_At_Freeze_Point (Etype (E));
+             Set_Has_Delayed_Aspects (Etype (E), False);
+          end if;
+ 
+          --  Identify the various subprograms associated with any inherited
+          --  nonoverridable aspects at this point rather than allowing them
+          --  to be resolved during analysis.
+ 
+          Inherit_Nonoverridable_Aspects (E, Etype (E));
+ 
+          declare
+             Iface : Node_Id := First (Abstract_Interface_List (E));
+          begin
+             while Present (Iface) loop
+                Inherit_Nonoverridable_Aspects (E, Entity (Iface));
+                Next (Iface);
+             end loop;
+          end;
+       end if;
+ 
        if Has_Delayed_Aspects (E) then
           Analyze_Aspects_At_Freeze_Point (E);
        end if;
*************** package body Freeze is
*** 6476,6498 ****
                and then Within_Scope (Etype (E), Current_Scope)
              then
                 Freeze_And_Append (Etype (E), N, Result);
- 
-                --  For an object of an anonymous array type, aspects on the
-                --  object declaration apply to the type itself. This is the
-                --  case for Atomic_Components, Volatile_Components, and
-                --  Independent_Components. In these cases analysis of the
-                --  generated pragma will mark the anonymous types accordingly,
-                --  and the object itself does not require a freeze node.
- 
-                if Ekind (E) = E_Variable
-                  and then Is_Itype (Etype (E))
-                  and then Is_Array_Type (Etype (E))
-                  and then Has_Delayed_Aspects (E)
-                then
-                   Set_Has_Delayed_Aspects (E, False);
-                   Set_Has_Delayed_Freeze  (E, False);
-                   Set_Freeze_Node (E, Empty);
-                end if;
              end if;
  
              --  Special processing for objects created by object declaration;
--- 6825,6830 ----
*************** package body Freeze is
*** 6630,6635 ****
--- 6962,6982 ----
              end if;
           end;
  
+          --  If the entity is a declaration of an access-to-subprogram type
+          --  with pre/postcondition contracts, build the wrapper (if it hasn't
+          --  already been done during aspect processing), and propagate the
+          --  pre/postcondition pragmas to the wrapper.
+ 
+          if Ada_Version >= Ada_2022
+            and then Expander_Active
+            and then Ekind (E) = E_Access_Subprogram_Type
+            and then Nkind (Parent (E)) = N_Full_Type_Declaration
+            and then Present (Contract (Designated_Type (E)))
+            and then not Is_Derived_Type (E)
+          then
+             Build_Access_Subprogram_Wrapper (Parent (E));
+          end if;
+ 
           --  Deal with special cases of freezing for subtype
  
           if E /= Base_Type (E) then
*************** package body Freeze is
*** 6958,6964 ****
                 if Is_Type (Comp) then
                    Freeze_And_Append (Comp, N, Result);
  
!                elsif (Ekind (Comp)) /= E_Function then
  
                    --  The guard on the presence of the Etype seems to be needed
                    --  for some CodePeer (-gnatcC) cases, but not clear why???
--- 7305,7311 ----
                 if Is_Type (Comp) then
                    Freeze_And_Append (Comp, N, Result);
  
!                elsif Ekind (Comp) /= E_Function then
  
                    --  The guard on the presence of the Etype seems to be needed
                    --  for some CodePeer (-gnatcC) cases, but not clear why???
*************** package body Freeze is
*** 7309,7324 ****
  
                 if Ada_Version >= Ada_2005 then
                    Error_Msg_N
!                     ("\would be legal if Storage_Size of 0 given??", E);
  
                 elsif No_Pool_Assigned (E) then
                    Error_Msg_N
!                     ("\would be legal in Ada 2005??", E);
  
                 else
                    Error_Msg_N
                      ("\would be legal in Ada 2005 if "
!                      & "Storage_Size of 0 given??", E);
                 end if;
              end if;
           end if;
--- 7656,7671 ----
  
                 if Ada_Version >= Ada_2005 then
                    Error_Msg_N
!                     ("\would be legal if Storage_Size of 0 given", E);
  
                 elsif No_Pool_Assigned (E) then
                    Error_Msg_N
!                     ("\would be legal in Ada 2005", E);
  
                 else
                    Error_Msg_N
                      ("\would be legal in Ada 2005 if "
!                      & "Storage_Size of 0 given", E);
                 end if;
              end if;
           end if;
*************** package body Freeze is
*** 7327,7343 ****
  
           if Is_Composite_Type (E) then
  
!             --  AI95-117 requires that all new primitives of a tagged type must
!             --  inherit the convention of the full view of the type. Inherited
!             --  and overriding operations are defined to inherit the convention
!             --  of their parent or overridden subprogram (also specified in
!             --  AI-117), which will have occurred earlier (in Derive_Subprogram
!             --  and New_Overloaded_Entity). Here we set the convention of
              --  primitives that are still convention Ada, which will ensure
!             --  that any new primitives inherit the type's convention. Class-
!             --  wide types can have a foreign convention inherited from their
!             --  specific type, but are excluded from this since they don't have
!             --  any associated primitives.
  
              if Is_Tagged_Type (E)
                and then not Is_Class_Wide_Type (E)
--- 7674,7694 ----
  
           if Is_Composite_Type (E) then
  
!             --  AI95-117 requires that all new primitives of a tagged type
!             --  must inherit the convention of the full view of the
!             --  type. Inherited and overriding operations are defined to
!             --  inherit the convention of their parent or overridden
!             --  subprogram (also specified in AI-117), which will have
!             --  occurred earlier (in Derive_Subprogram and
!             --  New_Overloaded_Entity). Here we set the convention of
              --  primitives that are still convention Ada, which will ensure
!             --  that any new primitives inherit the type's convention. We
!             --  don't do this for primitives that are internal to avoid
!             --  potential problems in the case of nested subprograms and
!             --  convention C. In addition, class-wide types can have a
!             --  foreign convention inherited from their specific type, but
!             --  are excluded from this since they don't have any associated
!             --  primitives.
  
              if Is_Tagged_Type (E)
                and then not Is_Class_Wide_Type (E)
*************** package body Freeze is
*** 7350,7356 ****
                 begin
                    Prim := First_Elmt (Prim_List);
                    while Present (Prim) loop
!                      if Convention (Node (Prim)) = Convention_Ada then
                          Set_Convention (Node (Prim), Convention (E));
                       end if;
  
--- 7701,7709 ----
                 begin
                    Prim := First_Elmt (Prim_List);
                    while Present (Prim) loop
!                      if Convention (Node (Prim)) = Convention_Ada
!                        and then Comes_From_Source (Node (Prim))
!                      then
                          Set_Convention (Node (Prim), Convention (E));
                       end if;
  
*************** package body Freeze is
*** 7660,7665 ****
--- 8013,8019 ----
  
           if (Has_Size_Clause (E) or else Has_Object_Size_Clause (E))
             and then not Size_Known_At_Compile_Time (E)
+            and then not Is_Mutably_Tagged_Type (E)
           then
              --  Suppress this message if errors posted on E, even if we are
              --  in all errors mode, since this is often a junk message
*************** package body Freeze is
*** 7677,7685 ****
           --  generation, and so the size and alignment values for such types
           --  are irrelevant. Ditto for types declared within a generic unit,
           --  which may have components that depend on generic parameters, and
!          --  that will be recreated in an instance.
  
!          if Inside_A_Generic then
              null;
  
           --  Otherwise we call the layout procedure
--- 8031,8041 ----
           --  generation, and so the size and alignment values for such types
           --  are irrelevant. Ditto for types declared within a generic unit,
           --  which may have components that depend on generic parameters, and
!          --  that will be recreated in an instance, except for static subtypes
!          --  because they may be referenced in the static expressions of the
!          --  generic unit, which need to be evaluated during its processing.
  
!          if Inside_A_Generic and then not Is_Static_Subtype (E) then
              null;
  
           --  Otherwise we call the layout procedure
*************** package body Freeze is
*** 7704,7710 ****
           --  type itself, and we treat Default_Component_Value similarly for
           --  the sake of uniformity).
  
!          if Is_First_Subtype (E) and then Has_Default_Aspect (E) then
              declare
                 Nam : Name_Id;
                 Exp : Node_Id;
--- 8060,8083 ----
           --  type itself, and we treat Default_Component_Value similarly for
           --  the sake of uniformity).
  
!          --  But for an inherited Default_Value aspect specification, the type
!          --  of the aspect remains the parent type. RM 3.3.1(11.1), a dynamic
!          --  semantics rule, says "The implicit initial value for a scalar
!          --  subtype that has the Default_Value aspect specified is the value
!          --  of that aspect converted to the nominal subtype". For an inherited
!          --  Default_Value aspect specification, no conversion is evaluated at
!          --  the point of the derived type declaration.
! 
!          if Is_First_Subtype (E)
!            and then Has_Default_Aspect (E)
!            and then
!              (not Is_Scalar_Type (E)
!                 or else
!               not Is_Derived_Type (E)
!                 or else
!               Default_Aspect_Value (E)
!                 /= Default_Aspect_Value (Etype (Base_Type (E))))
!          then
              declare
                 Nam : Name_Id;
                 Exp : Node_Id;
*************** package body Freeze is
*** 7994,8003 ****
  
        function In_Expanded_Body (N : Node_Id) return Boolean;
        --  Given an N_Handled_Sequence_Of_Statements node, determines whether it
!       --  is the statement sequence of an expander-generated subprogram: body
!       --  created for an expression function, for a predicate function, an init
!       --  proc, a stream subprogram, or a renaming as body. If so, this is not
!       --  a freezing context and the entity will be frozen at a later point.
  
        function Has_Decl_In_List
          (E : Entity_Id;
--- 8367,8375 ----
  
        function In_Expanded_Body (N : Node_Id) return Boolean;
        --  Given an N_Handled_Sequence_Of_Statements node, determines whether it
!       --  is the statement sequence of an expander-generated subprogram body or
!       --  of a renaming_as_body. If so, this is not a freezing context and the
!       --  entity will be frozen at a later point.
  
        function Has_Decl_In_List
          (E : Entity_Id;
*************** package body Freeze is
*** 8106,8116 ****
           then
              return True;
  
           else
              Id := Defining_Unit_Name (Specification (P));
  
!             --  The following are expander-created bodies, or bodies that
!             --  are not freeze points.
  
              if Nkind (Id) = N_Defining_Identifier
                and then (Is_Init_Proc (Id)
--- 8478,8496 ----
           then
              return True;
  
+          --  This is the body of a helper/wrapper built for CW preconditions
+ 
+          elsif Present (Corresponding_Spec (P))
+            and then
+              Present (Class_Preconditions_Subprogram (Corresponding_Spec (P)))
+          then
+             return True;
+ 
           else
              Id := Defining_Unit_Name (Specification (P));
  
!             --  This is the body of a Type-Specific Support routine or the one
!             --  generated for a renaming_as_body.
  
              if Nkind (Id) = N_Defining_Identifier
                and then (Is_Init_Proc (Id)
*************** package body Freeze is
*** 8190,8218 ****
  
        if Must_Not_Freeze (N) then
           return;
-       end if;
  
!       --  If expression is non-static, then it does not freeze in a default
!       --  expression, see section "Handling of Default Expressions" in the
!       --  spec of package Sem for further details. Note that we have to make
!       --  sure that we actually have a real expression (if we have a subtype
!       --  indication, we can't test Is_OK_Static_Expression). However, we
!       --  exclude the case of the prefix of an attribute of a static scalar
!       --  subtype from this early return, because static subtype attributes
!       --  should always cause freezing, even in default expressions, but
!       --  the attribute may not have been marked as static yet (because in
!       --  Resolve_Attribute, the call to Eval_Attribute follows the call of
!       --  Freeze_Expression on the prefix).
  
!       if In_Spec_Exp
!         and then Nkind (N) in N_Subexpr
!         and then not Is_OK_Static_Expression (N)
!         and then (Nkind (Parent (N)) /= N_Attribute_Reference
!                    or else not (Is_Entity_Name (N)
!                                  and then Is_Type (Entity (N))
!                                  and then Is_OK_Static_Subtype (Entity (N))))
!       then
!          return;
        end if;
  
        --  Freeze type of expression if not frozen already
--- 8570,8590 ----
  
        if Must_Not_Freeze (N) then
           return;
  
!       elsif Preanalysis_Active then
  
!          --  Do not freeze under strict preanalysis
! 
!          if not In_Spec_Exp then
!             return;
! 
!          --  If expression is non-static, then it does not freeze in a default
!          --  expression, see section "Handling of Default Expressions" in the
!          --  spec of package Sem for further details.
! 
!          elsif not Within_Spec_Static_Expression (N) then
!             return;
!          end if;
        end if;
  
        --  Freeze type of expression if not frozen already
*************** package body Freeze is
*** 8684,8691 ****
          or else Ekind (Current_Scope) = E_Void
        then
           declare
!             Freeze_Nodes : List_Id := No_List;
!             Pos          : Int     := Scope_Stack.Last;
  
           begin
              if Present (Desig_Typ) then
--- 9056,9064 ----
          or else Ekind (Current_Scope) = E_Void
        then
           declare
!             Freeze_Nodes : List_Id   := No_List;
!             Pos          : Int       := Scope_Stack.Last;
!             Scop         : Entity_Id := Current_Scope;
  
           begin
              if Present (Desig_Typ) then
*************** package body Freeze is
*** 8701,8707 ****
              end if;
  
              --  The current scope may be that of a constrained component of
!             --  an enclosing record declaration, or of a loop of an enclosing
              --  quantified expression or aggregate with an iterated component
              --  in Ada 2022, which is above the current scope in the scope
              --  stack. Indeed in the context of a quantified expression or
--- 9074,9081 ----
              end if;
  
              --  The current scope may be that of a constrained component of
!             --  an enclosing record declaration, or a block of an enclosing
!             --  declare expression in Ada 2022, or of a loop of an enclosing
              --  quantified expression or aggregate with an iterated component
              --  in Ada 2022, which is above the current scope in the scope
              --  stack. Indeed in the context of a quantified expression or
*************** package body Freeze is
*** 8711,8722 ****
              --  If the expression is within a top-level pragma, as for a pre-
              --  condition on a library-level subprogram, nothing to do.
  
!             if not Is_Compilation_Unit (Current_Scope)
!               and then (Is_Record_Type (Scope (Current_Scope))
!                          or else (Ekind (Current_Scope) = E_Loop
!                                    and then Is_Internal (Current_Scope)))
!             then
!                Pos := Pos - 1;
              end if;
  
              if Is_Non_Empty_List (Freeze_Nodes) then
--- 9085,9102 ----
              --  If the expression is within a top-level pragma, as for a pre-
              --  condition on a library-level subprogram, nothing to do.
  
!             if not Is_Compilation_Unit (Scop) then
!                if Is_Record_Type (Scope (Scop)) then
!                   Pos := Pos - 1;
! 
!                else
!                   while Ekind (Scop) in E_Block | E_Loop
!                     and then Is_Internal (Scop)
!                   loop
!                      Pos  := Pos - 1;
!                      Scop := Scope (Scop);
!                   end loop;
!                end if;
              end if;
  
              if Is_Non_Empty_List (Freeze_Nodes) then
*************** package body Freeze is
*** 8748,8755 ****
        --  Now we have the right place to do the freezing. First, a special
        --  adjustment, if we are in spec-expression analysis mode, these freeze
        --  actions must not be thrown away (normally all inserted actions are
!       --  thrown away in this mode. However, the freeze actions are from static
!       --  expressions and one of the important reasons we are doing this
        --  special analysis is to get these freeze actions. Therefore we turn
        --  off the In_Spec_Expression mode to propagate these freeze actions.
        --  This also means they get properly analyzed and expanded.
--- 9128,9135 ----
        --  Now we have the right place to do the freezing. First, a special
        --  adjustment, if we are in spec-expression analysis mode, these freeze
        --  actions must not be thrown away (normally all inserted actions are
!       --  thrown away in this mode). However, the freeze actions are from
!       --  static expressions and one of the important reasons we are doing this
        --  special analysis is to get these freeze actions. Therefore we turn
        --  off the In_Spec_Expression mode to propagate these freeze actions.
        --  This also means they get properly analyzed and expanded.
*************** package body Freeze is
*** 8965,8970 ****
--- 9345,9351 ----
           --  that type is not attached to an entity in the construct.
  
           elsif Nkind (Node) in N_Has_Etype
+            and then Present (Etype (Node))
             and then Nkind (Parent (Node)) = N_Iterator_Specification
             and then Node = Name (Parent (Node))
           then
*************** package body Freeze is
*** 9008,9017 ****
        --  pre/postconditions during expansion of the subprogram body, the
        --  subprogram is already installed.
  
        if Def_Id /= Current_Scope then
           Push_Scope (Def_Id);
           Install_Formals (Def_Id);
- 
           Preanalyze_Spec_Expression (Dup_Expr, Typ);
           End_Scope;
        else
--- 9389,9400 ----
        --  pre/postconditions during expansion of the subprogram body, the
        --  subprogram is already installed.
  
+       --  Call Preanalyze_Spec_Expression instead of Preanalyze_And_Resolve
+       --  for the sake of consistency with Analyze_Expression_Function.
+ 
        if Def_Id /= Current_Scope then
           Push_Scope (Def_Id);
           Install_Formals (Def_Id);
           Preanalyze_Spec_Expression (Dup_Expr, Typ);
           End_Scope;
        else
*************** package body Freeze is
*** 10142,10157 ****
           Check_Overriding_Indicator (E, Empty, Is_Primitive (E));
        end if;
  
!       Retype := Get_Fullest_View (Etype (E));
  
!       if Transform_Function_Array
!         and then Nkind (Parent (E)) = N_Function_Specification
!         and then Is_Array_Type (Retype)
!         and then Is_Constrained (Retype)
!         and then not Is_Unchecked_Conversion_Instance (E)
!         and then not Rewritten_For_C (E)
        then
!          Build_Procedure_Form (Unit_Declaration_Node (E));
        end if;
     end Freeze_Subprogram;
  
--- 10525,10608 ----
           Check_Overriding_Indicator (E, Empty, Is_Primitive (E));
        end if;
  
!       --  Check illegal subprograms of tagged types and interface types that
!       --  have aspect/pragma First_Controlling_Parameter.
  
!       if Comes_From_Source (E)
!         and then Is_Abstract_Subprogram (E)
        then
!          if Is_Dispatching_Operation (E) then
!             if Ekind (E) = E_Function
!               and then Is_Interface (Etype (E))
!               and then not Is_Class_Wide_Type (Etype (E))
!               and then Has_First_Controlling_Parameter_Aspect
!                          (Find_Dispatching_Type (E))
!             then
!                Error_Msg_NE
!                  ("'First_'Controlling_'Parameter disallows returning a "
!                   & "non-class-wide interface type",
!                   E, Etype (E));
!             end if;
! 
!          else
!             --  The type of the formals cannot be an interface type
! 
!             if Present (First_Formal (E)) then
!                declare
!                   Formal     : Entity_Id := First_Formal (E);
!                   Has_Aspect : Boolean := False;
! 
!                begin
!                   --  Check if some formal has the aspect
! 
!                   while Present (Formal) loop
!                      if Is_Tagged_Type (Etype (Formal))
!                        and then
!                          Has_First_Controlling_Parameter_Aspect
!                            (Etype (Formal))
!                      then
!                         Has_Aspect := True;
!                      end if;
! 
!                      Next_Formal (Formal);
!                   end loop;
! 
!                   --  If the aspect is present then report the error
! 
!                   if Has_Aspect then
!                      Formal := First_Formal (E);
! 
!                      while Present (Formal) loop
!                         if Is_Interface (Etype (Formal))
!                           and then not Is_Class_Wide_Type (Etype (Formal))
!                         then
!                            Error_Msg_NE
!                              ("not a dispatching primitive of interface type&",
!                               E, Etype (Formal));
!                            Error_Msg_N
!                              ("\disallowed by 'First_'Controlling_'Parameter "
!                               & "aspect", E);
!                         end if;
! 
!                         Next_Formal (Formal);
!                      end loop;
!                   end if;
!                end;
!             end if;
! 
!             if Ekind (E) = E_Function
!               and then Is_Interface (Etype (E))
!               and then not Is_Class_Wide_Type (Etype (E))
!               and then Has_First_Controlling_Parameter_Aspect (Etype (E))
!             then
!                Error_Msg_NE
!                  ("not a dispatching primitive of interface type&",
!                   E, Etype (E));
!                Error_Msg_N
!                  ("\disallowed by 'First_'Controlling_'Parameter "
!                   & "aspect", E);
!             end if;
!          end if;
        end if;
     end Freeze_Subprogram;
  
*************** package body Freeze is
*** 10433,10438 ****
--- 10884,10987 ----
        end if;
     end Set_SSO_From_Default;
  
+    ------------------------
+    -- Should_Freeze_Type --
+    ------------------------
+ 
+    function Should_Freeze_Type
+      (Typ : Entity_Id;
+       E   : Entity_Id;
+       N   : Node_Id) return Boolean
+    is
+       Decl : constant Node_Id := Original_Node (Unit_Declaration_Node (E));
+ 
+       function Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate
+         (N : Node_Id) return Traverse_Result;
+       --  Return Abandon if N is a dispatching call to a subprogram
+       --  declared in the same scope as Typ, or a tagged result that
+       --  needs specific expansion, or an aggregate whose type is Typ.
+ 
+       function Check_Freezing is new
+         Traverse_Func (Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate);
+       --  Return Abandon if the input expression requires freezing Typ
+ 
+       function Within_Simple_Return_Statement (N : Node_Id) return Boolean;
+       --  Determine whether N is the expression of a simple return statement,
+       --  or the dependent expression of a conditional expression which is
+       --  the expression of a simple return statement, including recursively.
+ 
+       -------------------------------------------------------
+       -- Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate --
+       -------------------------------------------------------
+ 
+       function Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate
+         (N : Node_Id) return Traverse_Result
+       is
+       begin
+          if Nkind (N) = N_Function_Call
+            and then Present (Controlling_Argument (N))
+            and then Scope (Entity (Original_Node (Name (N)))) = Scope (Typ)
+          then
+             return Abandon;
+ 
+          --  The expansion done in Expand_Simple_Function_Return will assign
+          --  the tag to the result in this case.
+ 
+          elsif Is_Conversion_Or_Reference_To_Formal (N)
+            and then Within_Simple_Return_Statement (N)
+            and then Etype (N) = Typ
+            and then Is_Tagged_Type (Typ)
+            and then not Is_Class_Wide_Type (Typ)
+          then
+             return Abandon;
+ 
+          elsif Nkind (N) in N_Aggregate
+                           | N_Delta_Aggregate
+                           | N_Extension_Aggregate
+            and then Base_Type (Etype (N)) = Base_Type (Typ)
+          then
+             return Abandon;
+ 
+          else
+             return OK;
+          end if;
+       end Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate;
+ 
+       ------------------------------------
+       -- Within_Simple_Return_Statement --
+       ------------------------------------
+ 
+       function Within_Simple_Return_Statement (N : Node_Id) return Boolean is
+          Par : constant Node_Id := Parent (N);
+ 
+       begin
+          if Nkind (Par) = N_Simple_Return_Statement then
+             return True;
+ 
+          elsif Nkind (Par) = N_Case_Expression_Alternative then
+             return Within_Simple_Return_Statement (Parent (Par));
+ 
+          elsif Nkind (Par) = N_If_Expression
+            and then N /= First (Expressions (Par))
+          then
+             return Within_Simple_Return_Statement (Par);
+ 
+          else
+             return False;
+          end if;
+       end Within_Simple_Return_Statement;
+ 
+    --  Start of processing for Should_Freeze_Type
+ 
+    begin
+       return Within_Scope (Typ, Current_Scope)
+         or else (Nkind (N) = N_Subprogram_Renaming_Declaration
+                   and then Present (Corresponding_Formal_Spec (N)))
+         or else (Present (Decl)
+                   and then Nkind (Decl) = N_Expression_Function
+                   and then Check_Freezing (Expression (Decl)) = Abandon);
+    end Should_Freeze_Type;
+ 
     ------------------
     -- Undelay_Type --
     ------------------
*************** package body Freeze is
*** 10498,10503 ****
--- 11047,11058 ----
           return;
        end if;
  
+       --  No warning if there is no default initialization
+ 
+       if No_Initialization (Declaration_Node (Ent)) then
+          return;
+       end if;
+ 
        --  We only give the warning for non-imported entities of a type for
        --  which a non-null base init proc is defined, or for objects of access
        --  types with implicit null initialization, or when Normalize_Scalars
*************** package body Freeze is
*** 10600,10606 ****
                    then
                       Error_Msg_NE
                         ("\packed array component& " &
!                         "will be initialized to zero??",
                          Nam, Comp);
                       exit;
                    else
--- 11155,11161 ----
                    then
                       Error_Msg_NE
                         ("\packed array component& " &
!                         "will be initialized to zero?o?",
                          Nam, Comp);
                       exit;
                    else
*************** package body Freeze is
*** 10612,10618 ****
  
           Error_Msg_N
             ("\use pragma Import for & to " &
!             "suppress initialization (RM B.1(24))??",
              Nam);
        end if;
     end Warn_Overlay;
--- 11167,11173 ----
  
           Error_Msg_N
             ("\use pragma Import for & to " &
!             "suppress initialization (RM B.1(24))?o?",
              Nam);
        end if;
     end Warn_Overlay;
diff -Nrcpad gcc-14.2.0/gcc/ada/freeze.ads gcc-15.1.0/gcc/ada/freeze.ads
*** gcc-14.2.0/gcc/ada/freeze.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/freeze.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Freeze is
*** 156,185 ****
     --    RM_Size field is set to the required size, allowing for possible front
     --    end packing of an array using this type as a component type.
     --
!    --  Note: the flag Size_Known_At_Compile_Time is used to determine if the
!    --  secondary stack must be used to return a value of the type, and also
!    --  to determine whether a component clause is allowed for a component
!    --  of the given type.
!    --
!    --  Note: this is public because of one dubious use in Sem_Res???
     --
     --  Note: Check_Compile_Time_Size does not test the case of the size being
     --  known because a size clause is specifically given. That is because we
     --  do not allow a size clause if the size would not otherwise be known at
     --  compile time in any case.
  
     procedure Check_Inherited_Conditions
      (R               : Entity_Id;
       Late_Overriding : Boolean := False);
!    --  For a tagged derived type R, create wrappers for inherited operations
!    --  that have class-wide conditions, so it can be properly rewritten if
!    --  it involves calls to other overriding primitives. Late_Overriding is
!    --  True when we are processing the body of a primitive with no previous
!    --  spec defined after R is frozen (see Check_Dispatching_Operation).
  
     procedure Explode_Initialization_Compound_Statement (E : Entity_Id);
     --  If Initialization_Statements (E) is an N_Compound_Statement, insert its
!    --  actions in the enclosing list and reset the attribute.
  
     function Freeze_Entity
       (E                 : Entity_Id;
--- 156,187 ----
     --    RM_Size field is set to the required size, allowing for possible front
     --    end packing of an array using this type as a component type.
     --
!    --  Note: the flag Size_Known_At_Compile_Time is used to determine whether a
!    --  size clause is allowed for the type, and also whether a component clause
!    --  is allowed for a component of the type.
     --
     --  Note: Check_Compile_Time_Size does not test the case of the size being
     --  known because a size clause is specifically given. That is because we
     --  do not allow a size clause if the size would not otherwise be known at
     --  compile time in any case.
+    --
+    --  ??? This is public because of dubious uses in Sem_Ch3 and Sem_Res
  
     procedure Check_Inherited_Conditions
      (R               : Entity_Id;
       Late_Overriding : Boolean := False);
!    --  R is a derived tagged type or a derived interface type. For a derived
!    --  interface type R, check strub mode compatibility of its primitives; for
!    --  a tagged derived type R, in addition to check strub mode compatibility,
!    --  create wrappers for inherited operations that have class-wide conditions
!    --  so it can be properly rewritten if it involves calls to other overriding
!    --  primitives. Late_Overriding is True when we are processing the body of a
!    --  primitive with no previous spec defined after R is frozen (see procedure
!    --  Check_Dispatching_Operation).
  
     procedure Explode_Initialization_Compound_Statement (E : Entity_Id);
     --  If Initialization_Statements (E) is an N_Compound_Statement, insert its
!    --  actions at the appropriate point and clear the attribute.
  
     function Freeze_Entity
       (E                 : Entity_Id;
diff -Nrcpad gcc-14.2.0/gcc/ada/frontend.adb gcc-15.1.0/gcc/ada/frontend.adb
*** gcc-14.2.0/gcc/ada/frontend.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/frontend.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 158,164 ****
        --  intended -gnatg or -gnaty compilations. We also disconnect checking
        --  for maximum line length.
  
-       Opt.Style_Check := False;
        Style_Check := False;
  
        --  Capture current suppress options, which may get modified
--- 158,163 ----
*************** begin
*** 287,299 ****
  
        Save_Config_Cunit_Boolean_Restrictions;
  
-       --  If there was a -gnatem switch, initialize the mappings of unit names
-       --  to file names and of file names to path names from the mapping file.
- 
-       if Mapping_File_Name /= null then
-          Fmap.Initialize (Mapping_File_Name.all);
-       end if;
- 
        --  Adjust Optimize_Alignment mode from debug switches if necessary
  
        if Debug_Flag_Dot_SS then
--- 286,291 ----
*************** begin
*** 388,396 ****
        --  Disable Initialize_Scalars for runtime files to avoid circular
        --  dependencies.
  
!       if Initialize_Scalars
!         and then Fname.Is_Predefined_File_Name (File_Name (Main_Source_File))
!       then
           Initialize_Scalars   := False;
           Init_Or_Norm_Scalars := Normalize_Scalars;
        end if;
--- 380,386 ----
        --  Disable Initialize_Scalars for runtime files to avoid circular
        --  dependencies.
  
!       if Initialize_Scalars and then Is_Predefined_Unit (Main_Unit) then
           Initialize_Scalars   := False;
           Init_Or_Norm_Scalars := Normalize_Scalars;
        end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/frontend.ads gcc-15.1.0/gcc/ada/frontend.ads
*** gcc-14.2.0/gcc/ada/frontend.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/frontend.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/Make-lang.in gcc-15.1.0/gcc/ada/gcc-interface/Make-lang.in
*** gcc-14.2.0/gcc/ada/gcc-interface/Make-lang.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/Make-lang.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** GCC_LINKERFLAGS = $(filter-out -Werror,
*** 271,278 ****
  GCC_LDFLAGS = $(LDFLAGS)
  endif
  
! GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
  GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
  
  # Lists of files for various purposes.
  
--- 271,284 ----
  GCC_LDFLAGS = $(LDFLAGS)
  endif
  
! # Do not link with -pie during stage #1 because the base libgnat.a is not PIC
! ifeq ($(STAGE1),True)
! GCC_LINK= $(filter-out -pie, $(LINKER)  $(GCC_LINKERFLAGS) $(GCC_LDFLAGS))
! GCC_LLINK=$(filter-out -pie, $(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS))
! else
! GCC_LINK= $(LINKER)  $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
  GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
+ endif
  
  # Lists of files for various purposes.
  
*************** GNAT_ADA_OBJS =	\
*** 309,314 ****
--- 315,330 ----
   ada/cstand.o	\
   ada/debug.o	\
   ada/debug_a.o	\
+  ada/diagnostics-brief_emitter.o      \
+  ada/diagnostics-constructors.o      \
+  ada/diagnostics-converter.o      \
+  ada/diagnostics-json_utils.o      \
+  ada/diagnostics-pretty_emitter.o      \
+  ada/diagnostics-repository.o      \
+  ada/diagnostics-sarif_emitter.o      \
+  ada/diagnostics-switch_repository.o      \
+  ada/diagnostics-utils.o      \
+  ada/diagnostics.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o	\
*************** GNAT_ADA_OBJS =	\
*** 355,360 ****
--- 371,377 ----
   ada/fname.o	\
   ada/freeze.o	\
   ada/frontend.o	\
+  ada/generate_minimal_reproducer.o	\
   ada/get_targ.o	\
   ada/ghost.o	\
   ada/gnat_cuda.o \
*************** GNAT_ADA_OBJS =	\
*** 376,381 ****
--- 393,399 ----
   ada/namet.o	\
   ada/nlists.o	\
   ada/nmake.o	\
+  ada/mutably_tagged.o	\
   ada/opt.o	\
   ada/osint-c.o	\
   ada/osint.o	\
*************** GNAT1_C_OBJS+=    \
*** 481,486 ****
--- 499,505 ----
   ada/errno.o      \
   ada/init.o       \
   ada/initialize.o \
+  ada/mkdir.o      \
   ada/raise.o      \
   ada/raise-gcc.o  \
   ada/rtfinal.o    \
*************** GNAT_ADA_OBJS+= \
*** 500,511 ****
--- 519,533 ----
   ada/libgnat/a-numeri.o	\
   ada/libgnat/ada.o	\
   ada/libgnat/g-byorma.o	\
+  ada/libgnat/g-cstyin.o	\
   ada/libgnat/g-heasor.o	\
   ada/libgnat/g-htable.o	\
   ada/libgnat/g-spchge.o	\
   ada/libgnat/g-speche.o	\
   ada/libgnat/g-table.o	\
   ada/libgnat/g-u3spch.o	\
+  ada/libgnat/i-c.o	\
+  ada/libgnat/i-cstrin.o	\
   ada/libgnat/interfac.o	\
   ada/libgnat/s-addope.o	\
   ada/libgnat/s-addima.o \
*************** GNAT_ADA_OBJS+= \
*** 528,533 ****
--- 550,557 ----
   ada/libgnat/s-excmac.o	\
   ada/libgnat/s-exctab.o	\
   ada/libgnat/s-htable.o	\
+  ada/libgnat/s-imad32.o	\
+  ada/libgnat/s-imad64.o	\
   ada/libgnat/s-imgint.o	\
   ada/libgnat/s-mastop.o	\
   ada/libgnat/s-memory.o	\
*************** GNATBIND_OBJS = \
*** 572,578 ****
   ada/ali-util.o   \
   ada/ali.o        \
   ada/alloc.o      \
-  ada/aspects.o    \
   ada/atree.o      \
   ada/bcheck.o     \
   ada/binde.o      \
--- 596,601 ----
*************** GNATBIND_OBJS = \
*** 592,597 ****
--- 615,630 ----
   ada/casing.o     \
   ada/csets.o      \
   ada/debug.o      \
+  ada/diagnostics-brief_emitter.o      \
+  ada/diagnostics-constructors.o      \
+  ada/diagnostics-converter.o      \
+  ada/diagnostics-json_utils.o      \
+  ada/diagnostics-pretty_emitter.o      \
+  ada/diagnostics-repository.o      \
+  ada/diagnostics-sarif_emitter.o      \
+  ada/diagnostics-switch_repository.o      \
+  ada/diagnostics-utils.o      \
+  ada/diagnostics.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o      \
*************** GNATBIND_OBJS = \
*** 602,613 ****
   ada/exit.o       \
   ada/final.o      \
   ada/fmap.o       \
-  ada/fname-uf.o   \
   ada/fname.o      \
   ada/gnatbind.o   \
   ada/gnatvsn.o    \
   ada/hostparm.o   \
-  ada/krunch.o     \
   ada/lib.o        \
   ada/link.o       \
   ada/namet.o      \
--- 635,644 ----
*************** GNATBIND_OBJS = \
*** 618,624 ****
   ada/output.o     \
   ada/rident.o     \
   ada/scans.o      \
-  ada/scil_ll.o    \
   ada/scng.o       \
   ada/sdefault.o   \
   ada/seinfo.o	  \
--- 649,654 ----
*************** GNATBIND_OBJS = \
*** 631,637 ****
   ada/snames.o     \
   ada/stand.o      \
   ada/stringt.o    \
-  ada/style.o      \
   ada/styleg.o     \
   ada/stylesw.o    \
   ada/switch-b.o   \
--- 661,666 ----
*************** GNATBIND_OBJS +=  \
*** 671,678 ****
--- 700,710 ----
   ada/libgnat/a-numeri.o   \
   ada/libgnat/ada.o        \
   ada/libgnat/g-byorma.o   \
+  ada/libgnat/g-cstyin.o   \
   ada/libgnat/g-hesora.o   \
   ada/libgnat/g-htable.o   \
+  ada/libgnat/i-c.o	      \
+  ada/libgnat/i-cstrin.o   \
   ada/libgnat/interfac.o   \
   ada/libgnat/s-addope.o   \
   ada/libgnat/s-assert.o   \
*************** gnatbind$(exeext): ada/b_gnatb.o $(CONFI
*** 771,777 ****
  	+$(GCC_LINK) -o $@ $(CFLAGS) ada/b_gnatb.o $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(GNATLIB)
  
  # use target-gcc target-gnatmake target-gnatbind target-gnatlink
! gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
  
--- 803,809 ----
  	+$(GCC_LINK) -o $@ $(CFLAGS) ada/b_gnatb.o $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(GNATLIB)
  
  # use target-gcc target-gnatmake target-gnatbind target-gnatlink
! gnattools: $(CONFIG_H) prefix.o force
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
  
*************** regnattools:
*** 782,787 ****
--- 814,820 ----
  cross-gnattools: force
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
+ 	$(GNATTOOLS_CROSS_MV)
  
  canadian-gnattools: force
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re
*************** gnatlib gnatlib-sjlj gnatlib-zcx gnatlib
*** 797,815 ****
  	   FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
  	   $@
  
  # use only for native compiler
  gnatlib_and_tools: gnatlib gnattools
  
  # Build hooks:
  
  ada.all.cross:
- 	for tool in $(ADA_TOOLS) ; do \
- 	  if [ -f $$tool$(exeext) ] ; \
- 	  then \
- 	    $(MV) $$tool$(exeext) $$tool-cross$(exeext); \
- 	  fi; \
- 	done
- 
  ada.start.encap:
  ada.rest.encap:
  ada.man:
--- 830,856 ----
  	   FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
  	   $@
  
+ gnattools-cross-mv:
+ 	$(GNATTOOLS_CROSS_MV)
+ 
+ # gnatbind$(exeext) is a prerequisite of the ada target and
+ # thus needs to be copied instead of moved.
+ GNATTOOLS_CROSS_MV=\
+   if [ -f gnatbind$(exeext) ] ; then \
+     $(CP) gnatbind$(exeext) gnatbind-cross$(exeext); \
+   fi; \
+   for tool in $(filter-out gnatbind, $(ADA_TOOLS)) ; do \
+     if [ -f $$tool$(exeext) ] ; then \
+       $(MV) $$tool$(exeext) $$tool-cross$(exeext); \
+     fi; \
+   done
+ 
  # use only for native compiler
  gnatlib_and_tools: gnatlib gnattools
  
  # Build hooks:
  
  ada.all.cross:
  ada.start.encap:
  ada.rest.encap:
  ada.man:
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/Makefile.in gcc-15.1.0/gcc/ada/gcc-interface/Makefile.in
*** gcc-14.2.0/gcc/ada/gcc-interface/Makefile.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/Makefile.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** LS = ls
*** 91,100 ****
  RANLIB = @RANLIB@
  RANLIB_FLAGS = @ranlib_flags@
  AWK = @AWK@
- PICFLAG = @PICFLAG@
  
! COMPILER = $(CC)
! COMPILER_FLAGS = $(CFLAGS)
  
  SHELL = @SHELL@
  PWD_COMMAND = $${PWDCMD-pwd}
--- 91,101 ----
  RANLIB = @RANLIB@
  RANLIB_FLAGS = @ranlib_flags@
  AWK = @AWK@
  
! # Should we build position-independent host code?
! enable_host_pie = @enable_host_pie@
! PICFLAG = @PICFLAG@
! LD_PICFLAG = @LD_PICFLAG@
  
  SHELL = @SHELL@
  PWD_COMMAND = $${PWDCMD-pwd}
*************** GNATLIBCFLAGS = -g -O2
*** 119,125 ****
  GNATLIBCFLAGS_FOR_C = \
    -W -Wall $(GNATLIBCFLAGS) -fexceptions -DIN_RTS -DHAVE_GETIPINFO
  PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
- ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  THREAD_KIND = native
  THREADSLIB =
  GMEM_LIB =
--- 120,125 ----
*************** host_vendor=@host_vendor@
*** 148,154 ****
  host_os=@host_os@
  target_cpu_default = @target_cpu_default@
  xmake_file = @xmake_file@
- tmake_file = @tmake_file@
  #version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
  #mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
  
--- 148,153 ----
*************** all: all.indirect
*** 209,219 ****
  # This tells GNU Make version 3 not to put all variables in the environment.
  .NOEXPORT:
  
- # target overrides
- ifneq ($(tmake_file),)
- include $(tmake_file)
- endif
- 
  # host overrides
  ifneq ($(xmake_file),)
  include $(xmake_file)
--- 208,213 ----
*************** ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLA
*** 236,246 ****
  # Likewise.
  ALL_CPPFLAGS = $(CPPFLAGS)
  
! # Used with $(COMPILER).
! ALL_COMPILERFLAGS = $(ALL_CFLAGS)
  
! # This is where we get libiberty.a from.
! ifneq ($(findstring $(PICFLAG),-fPIC -fPIE),)
  LIBIBERTY = ../../libiberty/pic/libiberty.a
  else
  LIBIBERTY = ../../libiberty/libiberty.a
--- 230,238 ----
  # Likewise.
  ALL_CPPFLAGS = $(CPPFLAGS)
  
! ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  
! ifneq ($(enable_host_pie),)
  LIBIBERTY = ../../libiberty/pic/libiberty.a
  else
  LIBIBERTY = ../../libiberty/libiberty.a
*************** TOOLS_LIBS = ../version.o ../link.o ../t
*** 261,269 ****
    $(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \
    $(SYSLIBS) $(TGT_LIB)
  
- # Add -no-pie to TOOLS_LIBS since some of them are compiled with -fno-PIE.
- TOOLS_LIBS += @LD_PICFLAG@
- 
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
  # so that tm.h and config.h will be found in the compilation
--- 253,258 ----
*************** ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdi
*** 299,306 ****
  	$(CC) -c -x assembler $< $(OUTPUT_OPTION)
  
  .c.o:
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
! 	  $(INCLUDES) $< $(OUTPUT_OPTION)
  
  .adb.o:
  	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
--- 288,294 ----
  	$(CC) -c -x assembler $< $(OUTPUT_OPTION)
  
  .c.o:
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  .adb.o:
  	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
*************** GNATMAKE_OBJS = a-except.o ali.o ali-uti
*** 340,345 ****
--- 328,343 ----
   switch.o switch-m.o table.o targparm.o tempdir.o types.o uintp.o \
   uname.o urealp.o usage.o widechar.o warnsw.o \
   seinfo.o einfo-entities.o einfo-utils.o sinfo-nodes.o sinfo-utils.o \
+  diagnostics-brief_emitter.o  \
+  diagnostics-constructors.o  \
+  diagnostics-converter.o  \
+  diagnostics-json_utils.o  \
+  diagnostics-pretty_emitter.o  \
+  diagnostics-repository.o  \
+  diagnostics-sarif_emitter.o  \
+  diagnostics-switch_repository.o  \
+  diagnostics-utils.o  \
+  diagnostics.o  \
   $(EXTRA_GNATMAKE_OBJS)
  
  # Make arch match the current multilib so that the RTS selection code
*************** endif
*** 378,390 ****
  
  include $(fsrcdir)/ada/Makefile.rtl
  
  LIBGNAT=../$(RTSDIR)/libgnat.a
  
  TOOLS_FLAGS_TO_PASS=		\
  	"CC=$(CC)" 		\
! 	"CFLAGS=$(CFLAGS)"	\
! 	"LDFLAGS=$(LDFLAGS)"	\
  	"ADAFLAGS=$(ADAFLAGS)"	\
  	"INCLUDES=$(INCLUDES_FOR_SUBDIR)"\
  	"ADA_INCLUDES=$(ADA_INCLUDES) $(ADA_INCLUDES_FOR_SUBDIR)"\
  	"libsubdir=$(libsubdir)"	\
--- 376,393 ----
  
  include $(fsrcdir)/ada/Makefile.rtl
  
+ ifneq ($(enable_host_pie),)
+ LIBGNAT=../$(RTSDIR)/libgnat_pic.a
+ else
  LIBGNAT=../$(RTSDIR)/libgnat.a
+ endif
  
  TOOLS_FLAGS_TO_PASS=		\
  	"CC=$(CC)" 		\
! 	"CFLAGS=$(CFLAGS) $(PICFLAG)"	\
! 	"LDFLAGS=$(LDFLAGS) $(LD_PICFLAG)"	\
  	"ADAFLAGS=$(ADAFLAGS)"	\
+ 	"ADA_CFLAGS=$(ADA_CFLAGS)"	\
  	"INCLUDES=$(INCLUDES_FOR_SUBDIR)"\
  	"ADA_INCLUDES=$(ADA_INCLUDES) $(ADA_INCLUDES_FOR_SUBDIR)"\
  	"libsubdir=$(libsubdir)"	\
*************** common-tools: ../stamp-tools
*** 465,498 ****
  	  gnatchop gnatcmd gnatkr gnatls gnatprep gnatname \
  	  gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)
  	$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
  ../../gnatdll$(exeext): ../stamp-tools
  	$(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll
  	$(GNATLINK) -v gnatdll -o $@ \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
  gnatmake-re: ../stamp-tools
! 	$(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)"
  	$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake
  	$(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
! # Note the use of the "mv" command in order to allow gnatlink to be linked with
  # with the former version of gnatlink itself which cannot override itself.
  # gnatlink-re cannot be run at the same time as gnatmake-re, hence the
  # dependency
--- 468,510 ----
  	  gnatchop gnatcmd gnatkr gnatls gnatprep gnatname \
  	  gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS)
  	$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatchop -o ../../gnatchop$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatkr -o ../../gnatkr$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatls -o ../../gnatls$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatprep -o ../../gnatprep$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatname -o ../../gnatname$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	   --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(GNATLINK) -v gnatclean -o ../../gnatclean$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
  ../../gnatdll$(exeext): ../stamp-tools
  	$(GNATMAKE) -c $(ADA_INCLUDES) gnatdll --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatdll
  	$(GNATLINK) -v gnatdll -o $@ \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
  gnatmake-re: ../stamp-tools
! 	$(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake
  	$(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  
! # Note the use of the "mv" command in order to allow gnatlink to be linked
  # with the former version of gnatlink itself which cannot override itself.
  # gnatlink-re cannot be run at the same time as gnatmake-re, hence the
  # dependency
*************** gnatlink-re: ../stamp-tools gnatmake-re
*** 500,506 ****
  	$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink
  	$(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \
! 	  --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(MV)  ../../gnatlinknew$(exeext)  ../../gnatlink$(exeext)
  
  # Needs to be built with CC=gcc
--- 512,519 ----
  	$(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)"
  	$(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink
  	$(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \
! 	  --GCC="$(CC) $(ALL_CFLAGS) $(ADA_CFLAGS) $(ADA_INCLUDES)" \
! 	  --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
  	$(MV)  ../../gnatlinknew$(exeext)  ../../gnatlink$(exeext)
  
  # Needs to be built with CC=gcc
*************** gnatlib-shared-dual:
*** 727,732 ****
--- 740,753 ----
  	$(MV) libgnat_pic$(arext) $(RTSDIR)
  	$(MV) libgnarl_pic$(arext) $(RTSDIR)
  
+ 	# Remove all the object files. They cannot be reused because they have
+ 	# been generated for the static library and the shared library will be
+ 	# the first to be rebuilt. Moreover, this will prevent gnatmake to pick
+ 	# them instead of the prescribed version of the library when the tools
+ 	# are built for a native compiler.
+ 	$(RM) $(addprefix $(RTSDIR)/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
+ 	$(RM) $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS))
+ 
  gnatlib-shared-dual-win32:
  	$(MAKE) $(FLAGS_TO_PASS) \
               GNATLIBFLAGS="$(GNATLIBFLAGS)" \
*************** b_gnatl.adb : $(GNATLINK_OBJS)
*** 886,900 ****
  	$(GNATBIND) $(ADA_INCLUDES) -o b_gnatl.adb gnatlink.ali
  
  b_gnatl.o : b_gnatl.adb
! 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
! 	    $< $(OUTPUT_OPTION)
  
  b_gnatm.adb : $(GNATMAKE_OBJS)
  	$(GNATBIND) $(ADA_INCLUDES) -o b_gnatm.adb gnatmake.ali
  
  b_gnatm.o : b_gnatm.adb
! 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN \
! 	    $< $(OUTPUT_OPTION)
  
  # Provide a `toolexeclibdir' definition for when `gnat-install-lib' is
  # wired through gcc/ in a configuration with top-level libada disabled.
--- 907,919 ----
  	$(GNATBIND) $(ADA_INCLUDES) -o b_gnatl.adb gnatlink.ali
  
  b_gnatl.o : b_gnatl.adb
! 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN $< $(OUTPUT_OPTION)
  
  b_gnatm.adb : $(GNATMAKE_OBJS)
  	$(GNATBIND) $(ADA_INCLUDES) -o b_gnatm.adb gnatmake.ali
  
  b_gnatm.o : b_gnatm.adb
! 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) -gnatws -gnatyN $< $(OUTPUT_OPTION)
  
  # Provide a `toolexeclibdir' definition for when `gnat-install-lib' is
  # wired through gcc/ in a configuration with top-level libada disabled.
*************** ADA_RTL_DSO_DIR = $(toolexeclibdir)
*** 912,918 ****
  # some targets.
  
  tracebak.o  : tracebak.c
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
  	      $(INCLUDES) $(NO_OMIT_ADAFLAGS) $< $(OUTPUT_OPTION)
  
  adadecode.o : adadecode.c adadecode.h
--- 931,937 ----
  # some targets.
  
  tracebak.o  : tracebak.c
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) $(ALL_CPPFLAGS) \
  	      $(INCLUDES) $(NO_OMIT_ADAFLAGS) $< $(OUTPUT_OPTION)
  
  adadecode.o : adadecode.c adadecode.h
*************** terminals.o : terminals.c
*** 940,972 ****
  vx_stack_info.o : vx_stack_info.c
  
  raise-gcc.o : raise-gcc.c raise.h
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  		-iquote $(srcdir) -iquote $(ftop_srcdir)/libgcc \
  		$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  cio.o     : cio.c
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  init.o    : init.c adaint.h raise.h
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  init-vxsim.o : init-vxsim.c
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  initialize.o : initialize.c raise.h
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  link.o : link.c
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  		$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
  		$< $(OUTPUT_OPTION)
  
  targext.o : targext.c
! 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
  		-iquote $(srcdir) \
  		$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
  		$< $(OUTPUT_OPTION)
--- 959,991 ----
  vx_stack_info.o : vx_stack_info.c
  
  raise-gcc.o : raise-gcc.c raise.h
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  		-iquote $(srcdir) -iquote $(ftop_srcdir)/libgcc \
  		$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  cio.o     : cio.c
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  init.o    : init.c adaint.h raise.h
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  init-vxsim.o : init-vxsim.c
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  initialize.o : initialize.c raise.h
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
  link.o : link.c
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  		$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
  		$< $(OUTPUT_OPTION)
  
  targext.o : targext.c
! 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  		-iquote $(srcdir) \
  		$(ALL_CPPFLAGS) $(INCLUDES_FOR_SUBDIR) \
  		$< $(OUTPUT_OPTION)
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/ada-builtin-types.def gcc-15.1.0/gcc/ada/gcc-interface/ada-builtin-types.def
*** gcc-14.2.0/gcc/ada/gcc-interface/ada-builtin-types.def	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/ada-builtin-types.def	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* This file contains the type definitions for the builtins exclusively
     used in the GNU Ada compiler.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* This file contains the type definitions for the builtins exclusively
     used in the GNU Ada compiler.
  
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/ada-builtins.def gcc-15.1.0/gcc/ada/gcc-interface/ada-builtins.def
*** gcc-14.2.0/gcc/ada/gcc-interface/ada-builtins.def	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/ada-builtins.def	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* This file contains the definitions for the builtins exclusively used
     in the GNU Ada compiler.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* This file contains the definitions for the builtins exclusively used
     in the GNU Ada compiler.
  
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/ada-tree.def gcc-15.1.0/gcc/ada/gcc-interface/ada-tree.def
*** gcc-14.2.0/gcc/ada/gcc-interface/ada-tree.def	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/ada-tree.def	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              Specification                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              Specification                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/ada-tree.h gcc-15.1.0/gcc/ada/gcc-interface/ada-tree.h
*** gcc-14.2.0/gcc/ada/gcc-interface/ada-tree.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/ada-tree.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/ada.h gcc-15.1.0/gcc/ada/gcc-interface/ada.h
*** gcc-14.2.0/gcc/ada/gcc-interface/ada.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/ada.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/config-lang.in gcc-15.1.0/gcc/ada/gcc-interface/config-lang.in
*** gcc-14.2.0/gcc/ada/gcc-interface/config-lang.in	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/config-lang.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/cuintp.cc gcc-15.1.0/gcc/ada/gcc-interface/cuintp.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/cuintp.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/cuintp.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 35,40 ****
--- 35,41 ----
  #include "tree.h"
  #include "inchash.h"
  #include "fold-const.h"
+ #include "stor-layout.h"
  
  #include "ada.h"
  #include "types.h"
*************** build_cst_from_int (tree type, HOST_WIDE
*** 67,73 ****
  /* Similar to UI_To_Int, but return a GCC INTEGER_CST or REAL_CST node,
     depending on whether TYPE is an integral or real type.  Overflow is tested
     by the constant-folding used to build the node.  TYPE is the GCC type of
!    the resulting node.  */
  
  tree
  UI_To_gnu (Uint Input, tree type)
--- 68,76 ----
  /* Similar to UI_To_Int, but return a GCC INTEGER_CST or REAL_CST node,
     depending on whether TYPE is an integral or real type.  Overflow is tested
     by the constant-folding used to build the node.  TYPE is the GCC type of
!    the resulting node.  If TYPE is NULL, an unsigned integer type wide enough
!    to hold the entire constant is selected, and if no such type exists,
!    return NULL_TREE.  */
  
  tree
  UI_To_gnu (Uint Input, tree type)
*************** UI_To_gnu (Uint Input, tree type)
*** 77,84 ****
       any such possible value for intermediate computations and then rely on a
       conversion back to TYPE to perform the bias adjustment when need be.  */
    tree comp_type
!     = TREE_CODE (type) == INTEGER_TYPE && TYPE_BIASED_REPRESENTATION_P (type)
!       ? get_base_type (type) : type;
    tree gnu_ret;
  
    if (Input <= Uint_Direct_Last)
--- 80,89 ----
       any such possible value for intermediate computations and then rely on a
       conversion back to TYPE to perform the bias adjustment when need be.  */
    tree comp_type
!     = (!type ? gnat_type_for_size (32, 1)
!        : (TREE_CODE (type) == INTEGER_TYPE
! 	  && TYPE_BIASED_REPRESENTATION_P (type))
!        ? get_base_type (type) : type);
    tree gnu_ret;
  
    if (Input <= Uint_Direct_Last)
*************** UI_To_gnu (Uint Input, tree type)
*** 88,96 ****
--- 93,106 ----
        Int Idx = (*Uints_Ptr)[Input - Uint_Table_Start].Loc;
        Pos Length = (*Uints_Ptr)[Input - Uint_Table_Start].Length;
        Int First = (*Udigits_Ptr)[Idx];
+       tree_code code = First < 0 ? MINUS_EXPR : PLUS_EXPR;
        tree gnu_base;
  
        gcc_assert (Length > 0);
+       /* The extension of unsigned types we use to try to fit the
+ 	 constant only works if we're dealing with nonnegative
+ 	 constants, but that's what we expect when !TYPE.  */
+       gcc_assert (type || First >= 0);
  
        /* The computations we perform below always require a type at least as
  	 large as an integer not to overflow.  FP types are always fine, but
*************** UI_To_gnu (Uint Input, tree type)
*** 103,124 ****
        gnu_base = build_cst_from_int (comp_type, Base);
  
        gnu_ret = build_cst_from_int (comp_type, First);
!       if (First < 0)
! 	for (Idx++, Length--; Length; Idx++, Length--)
! 	  gnu_ret = fold_build2 (MINUS_EXPR, comp_type,
! 				 fold_build2 (MULT_EXPR, comp_type,
! 					      gnu_ret, gnu_base),
! 				 build_cst_from_int (comp_type,
! 						     (*Udigits_Ptr)[Idx]));
!       else
! 	for (Idx++, Length--; Length; Idx++, Length--)
! 	  gnu_ret = fold_build2 (PLUS_EXPR, comp_type,
! 				 fold_build2 (MULT_EXPR, comp_type,
! 					      gnu_ret, gnu_base),
! 				 build_cst_from_int (comp_type,
! 						     (*Udigits_Ptr)[Idx]));
      }
  
    gnu_ret = convert (type, gnu_ret);
  
    /* We don't need any NOP_EXPR or NON_LVALUE_EXPR on GNU_RET.  */
--- 113,156 ----
        gnu_base = build_cst_from_int (comp_type, Base);
  
        gnu_ret = build_cst_from_int (comp_type, First);
!       for (Idx++, Length--; Length; Idx++, Length--)
! 	for (;;)
! 	  {
! 	    tree elt, scaled, next_ret;
! 	    elt = build_cst_from_int (comp_type, (*Udigits_Ptr)[Idx]);
! 	    /* We want to detect overflows with an unsigned type when
! 	       TYPE is not given, but int_const_binop doesn't work for
! 	       e.g. floating-point TYPEs.  */
! 	    if (!type)
! 	      {
! 		scaled = int_const_binop (MULT_EXPR, gnu_ret, gnu_base, -1);
! 		next_ret = int_const_binop (code, scaled, elt, -1);
! 	      }
! 	    else
! 	      {
! 		scaled = fold_build2 (MULT_EXPR, comp_type, gnu_ret, gnu_base);
! 		next_ret = fold_build2 (code, comp_type, scaled, elt);
! 	      }
! 	    if (!TREE_OVERFLOW (next_ret) || type)
! 	      {
! 		gnu_ret = next_ret;
! 		break;
! 	      }
! 	    opt_scalar_int_mode wider_mode
! 	      = GET_MODE_WIDER_MODE (SCALAR_INT_TYPE_MODE
! 				     (comp_type)).require ();
! 	    if (!wider_mode.exists ())
! 	      /* Signal that we couldn't represent the value.  */
! 	      return NULL_TREE;
! 	    comp_type = make_unsigned_type (GET_MODE_BITSIZE
! 					    (wider_mode.require ()));
! 	    gnu_base = convert (comp_type, gnu_base);
! 	    gnu_ret = convert (comp_type, gnu_ret);
! 	  }
      }
  
+   if (!type)
+     type = comp_type;
    gnu_ret = convert (type, gnu_ret);
  
    /* We don't need any NOP_EXPR or NON_LVALUE_EXPR on GNU_RET.  */
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/decl.cc gcc-15.1.0/gcc/ada/gcc-interface/decl.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/decl.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/decl.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 27,32 ****
--- 27,33 ----
  #include "system.h"
  #include "coretypes.h"
  #include "target.h"
+ #include "function.h"
  #include "tree.h"
  #include "gimple-expr.h"
  #include "stringpool.h"
*************** static Entity_Id Gigi_Cloned_Subtype (En
*** 205,210 ****
--- 206,213 ----
  static tree gnu_ext_name_for_subprog (Entity_Id, tree);
  static void set_nonaliased_component_on_array_type (tree);
  static void set_reverse_storage_order_on_array_type (tree);
+ static void set_typeless_storage_on_aggregate_type (tree);
+ static void set_universal_aliasing_on_type (tree);
  static bool same_discriminant_p (Entity_Id, Entity_Id);
  static bool array_type_has_nonaliased_component (tree, Entity_Id);
  static bool compile_time_known_address_p (Node_Id);
*************** typedef struct {
*** 256,261 ****
--- 259,276 ----
  
  static bool intrin_profiles_compatible_p (const intrin_binding_t *);
  
+ /* Return true if GNAT_ENTITY is artificial, false otherwise.  */
+ 
+ static bool
+ is_artificial (Entity_Id gnat_entity)
+ {
+   if (Comes_From_Source (gnat_entity))
+     return false;
+   if (Sloc (gnat_entity) == Standard_Location)
+     return false;
+   return true;
+ }
+ 
  /* Given GNAT_ENTITY, a GNAT defining identifier node, which denotes some Ada
     entity, return the equivalent GCC tree for that entity (a ..._DECL node)
     and associate the ..._DECL node with the input GNAT defining identifier.
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 281,287 ****
    /* True if this is a type.  */
    const bool is_type = IN (kind, Type_Kind);
    /* True if this is an artificial entity.  */
!   const bool artificial_p = !Comes_From_Source (gnat_entity);
    /* True if debug info is requested for this entity.  */
    const bool debug_info_p = Needs_Debug_Info (gnat_entity);
    /* True if this entity is to be considered as imported.  */
--- 296,302 ----
    /* True if this is a type.  */
    const bool is_type = IN (kind, Type_Kind);
    /* True if this is an artificial entity.  */
!   const bool artificial_p = is_artificial (gnat_entity);
    /* True if debug info is requested for this entity.  */
    const bool debug_info_p = Needs_Debug_Info (gnat_entity);
    /* True if this entity is to be considered as imported.  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 504,514 ****
        /* Machine_Attributes on types are expected to be propagated to
  	 subtypes.  The corresponding Gigi_Rep_Items are only attached
  	 to the first subtype though, so we handle the propagation here.  */
!       if (Base_Type (gnat_entity) != gnat_entity
  	  && !Is_First_Subtype (gnat_entity)
! 	  && Has_Gigi_Rep_Item (First_Subtype (Base_Type (gnat_entity))))
! 	prepend_attributes (&attr_list,
! 			    First_Subtype (Base_Type (gnat_entity)));
  
        /* Compute a default value for the size of an elementary type.  */
        if (Known_Esize (gnat_entity) && Is_Elementary_Type (gnat_entity))
--- 519,528 ----
        /* Machine_Attributes on types are expected to be propagated to
  	 subtypes.  The corresponding Gigi_Rep_Items are only attached
  	 to the first subtype though, so we handle the propagation here.  */
!       if (!Is_Base_Type (gnat_entity)
  	  && !Is_First_Subtype (gnat_entity)
! 	  && Has_Gigi_Rep_Item (First_Subtype (gnat_entity)))
! 	prepend_attributes (&attr_list, First_Subtype (gnat_entity));
  
        /* Compute a default value for the size of an elementary type.  */
        if (Known_Esize (gnat_entity) && Is_Elementary_Type (gnat_entity))
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 519,525 ****
  	  esize = UI_To_Int (Esize (gnat_entity));
  
  	  if (IN (kind, Float_Kind))
! 	    max_esize = fp_prec_to_size (LONG_DOUBLE_TYPE_SIZE);
  	  else if (IN (kind, Access_Kind))
  	    max_esize = POINTER_SIZE * 2;
  	  else
--- 533,544 ----
  	  esize = UI_To_Int (Esize (gnat_entity));
  
  	  if (IN (kind, Float_Kind))
! #ifdef WIDEST_HARDWARE_FP_SIZE
! 	    max_esize = fp_prec_to_size (WIDEST_HARDWARE_FP_SIZE);
! #else
! 	    max_esize
! 	      = fp_prec_to_size (TYPE_PRECISION (long_double_type_node));
! #endif
  	  else if (IN (kind, Access_Kind))
  	    max_esize = POINTER_SIZE * 2;
  	  else
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 939,944 ****
--- 958,966 ----
  	    && !type_annotate_only)
  	  {
  	    tree gnu_array = gnat_to_gnu_type (Base_Type (gnat_type));
+ 	    /* Make sure to have an array type for the template.  */
+ 	    if (TYPE_IS_PADDING_P (gnu_type))
+ 	      gnu_type = TREE_TYPE (TYPE_FIELDS (gnu_type));
  	    gnu_type
  	      = build_unc_object_type_from_ptr (TREE_TYPE (gnu_array),
  						gnu_type,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1379,1385 ****
  	    volatile_flag = false;
  	    gnu_size = NULL_TREE;
  
! 	    /* In case this was a aliased object whose nominal subtype is
  	       unconstrained, the pointer above will be a thin pointer and
  	       build_allocator will automatically make the template.
  
--- 1401,1407 ----
  	    volatile_flag = false;
  	    gnu_size = NULL_TREE;
  
! 	    /* In case this was an aliased object whose nominal subtype is
  	       unconstrained, the pointer above will be a thin pointer and
  	       build_allocator will automatically make the template.
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1412,1421 ****
  			     false);
  		  }
  
! 		if (TREE_CODE (TYPE_SIZE_UNIT (gnu_alloc_type)) == INTEGER_CST
! 		    && !valid_constant_size_p (TYPE_SIZE_UNIT (gnu_alloc_type)))
! 		  post_error ("??Storage_Error will be raised at run time!",
! 			      gnat_entity);
  
  		gnu_expr
  		  = build_allocator (gnu_alloc_type, gnu_expr, gnu_type,
--- 1434,1455 ----
  			     false);
  		  }
  
! 		/* Give a warning if the size is constant but too large.  */
! 		if (TREE_CODE (TYPE_SIZE_UNIT (gnu_alloc_type)) == INTEGER_CST)
! 		  {
! 		    if (valid_constant_size_p (TYPE_SIZE_UNIT (gnu_alloc_type)))
! 		      {
! 			post_error
! 			  ("??too large object cannot be allocated statically",
! 			   gnat_entity);
! 			post_error ("\\??dynamic allocation will be used instead",
! 				    gnat_entity);
! 		      }
! 
! 		    else
! 		      post_error ("??Storage_Error will be raised at run time!",
! 				  gnat_entity);
! 		  }
  
  		gnu_expr
  		  = build_allocator (gnu_alloc_type, gnu_expr, gnu_type,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1541,1546 ****
--- 1575,1587 ----
  	  prepend_one_attribute_pragma (&attr_list,
  					Linker_Section_Pragma (gnat_entity));
  
+ 	/* Do not initialize Out parameters with -ftrivial-auto-var-init.  */
+ 	if (kind == E_Out_Parameter)
+ 	  prepend_one_attribute
+ 	    (&attr_list, ATTR_MACHINE_ATTRIBUTE,
+ 	     get_identifier ("uninitialized"), NULL_TREE,
+ 	     gnat_entity);
+ 
  	/* Now create the variable or the constant and set various flags.  */
  	gnu_decl
  	  = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1749,1762 ****
  
  	/* Use the arbitrary scale factor description.  Note that we support
  	   a Small_Value whose magnitude is larger than 64-bit even on 32-bit
! 	   platforms, so we unconditionally use a (dummy) 128-bit type.  */
  	else
  	  {
  	    const Uint gnat_num = Norm_Num (gnat_small_value);
  	    const Uint gnat_den = Norm_Den (gnat_small_value);
! 	    tree gnu_small_type = make_unsigned_type (128);
! 	    tree gnu_num = UI_To_gnu (gnat_num, gnu_small_type);
! 	    tree gnu_den = UI_To_gnu (gnat_den, gnu_small_type);
  
  	    scale_factor
  	      = build2 (RDIV_EXPR, gnu_small_type, gnu_num, gnu_den);
--- 1790,1814 ----
  
  	/* Use the arbitrary scale factor description.  Note that we support
  	   a Small_Value whose magnitude is larger than 64-bit even on 32-bit
! 	   platforms.  UI_To_gnu chooses a wide-enough integral type.  */
  	else
  	  {
  	    const Uint gnat_num = Norm_Num (gnat_small_value);
  	    const Uint gnat_den = Norm_Den (gnat_small_value);
! 	    tree gnu_num = UI_To_gnu (gnat_num, NULL_TREE);
! 	    tree gnu_den = UI_To_gnu (gnat_den, NULL_TREE);
! 
! 	    if (!gnu_num || !gnu_den)
! 	      gnu_num = gnu_den = integer_zero_node;
! 
! 	    tree gnu_num_type = TREE_TYPE (gnu_num);
! 	    tree gnu_den_type = TREE_TYPE (gnu_den);
! 	    tree gnu_small_type = (TYPE_PRECISION (gnu_num_type)
! 				   >= TYPE_PRECISION (gnu_den_type)
! 				   ? gnu_num_type : gnu_den_type);
! 
! 	    gnu_num = convert (gnu_small_type, gnu_num);
! 	    gnu_den = convert (gnu_small_type, gnu_den);
  
  	    scale_factor
  	      = build2 (RDIV_EXPR, gnu_small_type, gnu_num, gnu_den);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1951,1963 ****
  
  	  /* Create a stripped-down declaration, mainly for debugging.  */
  	  t = create_type_decl (gnu_entity_name, gnu_type, true, debug_info_p,
! 				gnat_entity);
  
  	  /* Now save it and build the enclosing record type.  */
  	  gnu_field_type = gnu_type;
  
  	  gnu_type = make_node (RECORD_TYPE);
  	  TYPE_NAME (gnu_type) = create_concat_name (gnat_entity, "JM");
  	  TYPE_PACKED (gnu_type) = 1;
  	  TYPE_SIZE (gnu_type) = TYPE_SIZE (gnu_field_type);
  	  TYPE_SIZE_UNIT (gnu_type) = TYPE_SIZE_UNIT (gnu_field_type);
--- 2003,2016 ----
  
  	  /* Create a stripped-down declaration, mainly for debugging.  */
  	  t = create_type_decl (gnu_entity_name, gnu_type, true, debug_info_p,
! 				gnat_entity, false);
  
  	  /* Now save it and build the enclosing record type.  */
  	  gnu_field_type = gnu_type;
  
  	  gnu_type = make_node (RECORD_TYPE);
  	  TYPE_NAME (gnu_type) = create_concat_name (gnat_entity, "JM");
+ 	  TYPE_JUSTIFIED_MODULAR_P (gnu_type) = 1;
  	  TYPE_PACKED (gnu_type) = 1;
  	  TYPE_SIZE (gnu_type) = TYPE_SIZE (gnu_field_type);
  	  TYPE_SIZE_UNIT (gnu_type) = TYPE_SIZE_UNIT (gnu_field_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1988,1994 ****
  
  	  /* We will output additional debug info manually below.  */
  	  finish_record_type (gnu_type, gnu_field, 2, false);
- 	  TYPE_JUSTIFIED_MODULAR_P (gnu_type) = 1;
  
  	  /* Make the original array type a parallel/debug type.  Note that
  	     gnat_get_array_descr_info needs a TYPE_IMPL_PACKED_ARRAY_P type
--- 2041,2046 ----
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2086,2092 ****
  
  	   1. the array type (suffix XUA) containing the actual data,
  
! 	   2. the template type (suffix XUB) containng the bounds,
  
  	   3. the fat pointer type (suffix XUP) representing a pointer or a
  	      reference to the unconstrained array type:
--- 2138,2144 ----
  
  	   1. the array type (suffix XUA) containing the actual data,
  
! 	   2. the template type (suffix XUB) containing the bounds,
  
  	   3. the fat pointer type (suffix XUP) representing a pointer or a
  	      reference to the unconstrained array type:
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2102,2107 ****
--- 2154,2160 ----
  
      case E_Array_Type:
        {
+ 	const Entity_Id OAT = Original_Array_Type (gnat_entity);
  	const Entity_Id PAT = Packed_Array_Impl_Type (gnat_entity);
  	const bool convention_fortran_p
  	  = (Convention (gnat_entity) == Convention_Fortran);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2223,2229 ****
  	    ? create_concat_name (gnat_name, "XUP")
  	    : gnu_entity_name;
  	create_type_decl (xup_name, gnu_fat_type, true, debug_info_p,
! 			  gnat_entity);
  
  	/* Build a reference to the template from a PLACEHOLDER_EXPR that
  	   is the fat pointer.  This will be used to access the individual
--- 2276,2282 ----
  	    ? create_concat_name (gnat_name, "XUP")
  	    : gnu_entity_name;
  	create_type_decl (xup_name, gnu_fat_type, true, debug_info_p,
! 			  gnat_entity, false);
  
  	/* Build a reference to the template from a PLACEHOLDER_EXPR that
  	   is the fat pointer.  This will be used to access the individual
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2340,2352 ****
  	/* Install all the fields into the template.  */
  	TYPE_NAME (gnu_template_type)
  	  = create_concat_name (gnat_entity, "XUB");
  	gnu_template_fields = NULL_TREE;
  	for (index = 0; index < ndim; index++)
  	  gnu_template_fields
  	    = chainon (gnu_template_fields, gnu_temp_fields[index]);
  	finish_record_type (gnu_template_type, gnu_template_fields, 0,
  			    debug_info_p);
! 	TYPE_CONTEXT (gnu_template_type) = current_function_decl;
  
  	/* If Component_Size is not already specified, annotate it with the
  	   size of the component.  */
--- 2393,2407 ----
  	/* Install all the fields into the template.  */
  	TYPE_NAME (gnu_template_type)
  	  = create_concat_name (gnat_entity, "XUB");
+ 	TYPE_NAMELESS (gnu_template_type)
+ 	  = gnat_encodings != DWARF_GNAT_ENCODINGS_ALL;
  	gnu_template_fields = NULL_TREE;
  	for (index = 0; index < ndim; index++)
  	  gnu_template_fields
  	    = chainon (gnu_template_fields, gnu_temp_fields[index]);
  	finish_record_type (gnu_template_type, gnu_template_fields, 0,
  			    debug_info_p);
! 	TYPE_CONTEXT (gnu_template_type) = gnu_fat_type;
  
  	/* If Component_Size is not already specified, annotate it with the
  	   size of the component.  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2370,2385 ****
  	      set_reverse_storage_order_on_array_type (tem);
  	    if (array_type_has_nonaliased_component (tem, gnat_entity))
  	      set_nonaliased_component_on_array_type (tem);
  	  }
  
! 	/* If this is a packed type implemented specially, then process the
! 	   implementation type so it is elaborated in the proper scope.  */
! 	if (Present (PAT))
! 	  gnat_to_gnu_entity (PAT, NULL_TREE, false);
! 
! 	/* Otherwise, if an alignment is specified, use it if valid and, if
! 	   the alignment was requested with an explicit clause, state so.  */
! 	else if (Known_Alignment (gnat_entity))
  	  {
  	    SET_TYPE_ALIGN (tem,
  			    validate_alignment (Alignment (gnat_entity),
--- 2425,2439 ----
  	      set_reverse_storage_order_on_array_type (tem);
  	    if (array_type_has_nonaliased_component (tem, gnat_entity))
  	      set_nonaliased_component_on_array_type (tem);
+ 	    if (Universal_Aliasing (gnat_entity)
+ 	        || Universal_Aliasing (Component_Type (gnat_entity)))
+ 	      set_typeless_storage_on_aggregate_type (tem);
  	  }
  
! 	/* If an alignment is specified for an array that is not a packed type
! 	   implemented specially, use the alignment if it is valid and, if it
! 	   was requested with an explicit clause, preserve the information.  */
! 	if (Known_Alignment (gnat_entity) && No (PAT))
  	  {
  	    SET_TYPE_ALIGN (tem,
  			    validate_alignment (Alignment (gnat_entity),
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2398,2404 ****
  
  	TYPE_BIT_PACKED_ARRAY_TYPE_P (tem)
  	  = (Is_Packed_Array_Impl_Type (gnat_entity)
! 	     ? Is_Bit_Packed_Array (Original_Array_Type (gnat_entity))
  	     : Is_Bit_Packed_Array (gnat_entity));
  
  	if (Treat_As_Volatile (gnat_entity))
--- 2452,2458 ----
  
  	TYPE_BIT_PACKED_ARRAY_TYPE_P (tem)
  	  = (Is_Packed_Array_Impl_Type (gnat_entity)
! 	     ? Is_Bit_Packed_Array (OAT)
  	     : Is_Bit_Packed_Array (gnat_entity));
  
  	if (Treat_As_Volatile (gnat_entity))
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2427,2434 ****
  	  TYPE_ARRAY_MAX_SIZE (tem) = gnu_max_size;
  
  	/* See the above description for the rationale.  */
! 	create_type_decl (create_concat_name (gnat_entity, "XUA"), tem,
! 			  artificial_p, debug_info_p, gnat_entity);
  	TYPE_CONTEXT (tem) = gnu_fat_type;
  	TYPE_CONTEXT (TYPE_POINTER_TO (tem)) = gnu_fat_type;
  
--- 2481,2489 ----
  	  TYPE_ARRAY_MAX_SIZE (tem) = gnu_max_size;
  
  	/* See the above description for the rationale.  */
! 	tree gnu_tmp_decl
! 	  = create_type_decl (create_concat_name (gnat_entity, "XUA"), tem,
! 			      true, debug_info_p, gnat_entity);
  	TYPE_CONTEXT (tem) = gnu_fat_type;
  	TYPE_CONTEXT (TYPE_POINTER_TO (tem)) = gnu_fat_type;
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2443,2449 ****
  	    ? create_concat_name (gnat_name, "XUT")
  	    : gnu_entity_name;
  	obj = build_unc_object_type (gnu_template_type, tem, xut_name,
! 				     debug_info_p);
  
  	SET_TYPE_UNCONSTRAINED_ARRAY (obj, gnu_type);
  	TYPE_OBJECT_RECORD_TYPE (gnu_type) = obj;
--- 2498,2504 ----
  	    ? create_concat_name (gnat_name, "XUT")
  	    : gnu_entity_name;
  	obj = build_unc_object_type (gnu_template_type, tem, xut_name,
! 				     artificial_p, debug_info_p);
  
  	SET_TYPE_UNCONSTRAINED_ARRAY (obj, gnu_type);
  	TYPE_OBJECT_RECORD_TYPE (gnu_type) = obj;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2455,2460 ****
--- 2510,2534 ----
  	TYPE_REFERENCE_TO (gnu_type) = gnu_fat_type;
  	SET_TYPE_MODE (gnu_type, BLKmode);
  	SET_TYPE_ALIGN (gnu_type, TYPE_ALIGN (tem));
+ 
+ 	/* If this is a packed type implemented specially, then process the
+ 	   implementation type so it is elaborated in the proper scope.  */
+ 	if (Present (PAT))
+ 	  {
+ 	    /* Save the XUA type as our equivalent temporarily for the call
+ 	       to gnat_to_gnu_type on the OAT below.  */
+ 	    save_gnu_tree (gnat_entity, gnu_tmp_decl, false);
+ 	    gnat_to_gnu_entity (PAT, NULL_TREE, false);
+ 	    save_gnu_tree (gnat_entity, NULL_TREE, false);
+ 	  }
+ 
+ 	/* If this is precisely the implementation type and it has the same
+ 	   component as the original type (which happens for peculiar index
+ 	   types), copy the alias set from the latter; this ensures that all
+ 	   implementation types built on the fly have the same alias set.  */
+         if (Is_Packed_Array_Impl_Type (gnat_entity)
+ 	    && Component_Type (gnat_entity) == Component_Type (OAT))
+ 	  relate_alias_sets (gnu_type, gnat_to_gnu_type (OAT), ALIAS_SET_COPY);
        }
        break;
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2775,2780 ****
--- 2849,2857 ----
  		set_reverse_storage_order_on_array_type (gnu_type);
  	      if (array_type_has_nonaliased_component (gnu_type, gnat_entity))
  		set_nonaliased_component_on_array_type (gnu_type);
+ 	      if (Universal_Aliasing (gnat_entity)
+ 		  || Universal_Aliasing (Component_Type (gnat_entity)))
+ 		set_typeless_storage_on_aggregate_type (gnu_type);
  
  	      /* Clear the TREE_OVERFLOW flag, if any, for null arrays.  */
  	      if (gnu_null_ranges[index])
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2943,2951 ****
  		 in order to decode the packed array type.  */
  	      tree gnu_tmp_decl
  		= create_type_decl (gnu_entity_name, gnu_type,
! 				    !Comes_From_Source (Etype (gnat_entity))
  				    && artificial_p, debug_info_p,
! 				    gnat_entity);
  	      /* Save it as our equivalent in case the call below elaborates
  		 this type again.  */
  	      save_gnu_tree (gnat_entity, gnu_tmp_decl, false);
--- 3020,3028 ----
  		 in order to decode the packed array type.  */
  	      tree gnu_tmp_decl
  		= create_type_decl (gnu_entity_name, gnu_type,
! 				    is_artificial (Etype (gnat_entity))
  				    && artificial_p, debug_info_p,
! 				    gnat_entity, false);
  	      /* Save it as our equivalent in case the call below elaborates
  		 this type again.  */
  	      save_gnu_tree (gnat_entity, gnu_tmp_decl, false);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3033,3046 ****
  	tree gnu_string_index_type
  	  = get_base_type (TREE_TYPE (TYPE_INDEX_TYPE
  				      (TYPE_DOMAIN (gnu_string_array_type))));
  	tree gnu_lower_bound
! 	  = convert (gnu_string_index_type,
  		     gnat_to_gnu (String_Literal_Low_Bound (gnat_entity)));
  	tree gnu_length
  	  = UI_To_gnu (String_Literal_Length (gnat_entity),
  		       gnu_string_index_type);
  	tree gnu_upper_bound
! 	  = build_binary_op (PLUS_EXPR, gnu_string_index_type,
  			     gnu_lower_bound,
  			     int_const_binop (MINUS_EXPR, gnu_length,
  					      convert (gnu_string_index_type,
--- 3110,3133 ----
  	tree gnu_string_index_type
  	  = get_base_type (TREE_TYPE (TYPE_INDEX_TYPE
  				      (TYPE_DOMAIN (gnu_string_array_type))));
+ 
+         /* For a null string literal we set the bounds to 1 .. 0, to
+            avoid a possible overflow when calculating the upper bound
+            as LOWER_BOUND + LENGTH - 1.  */
+         const bool is_null_string
+           = String_Literal_Length (gnat_entity) == Uint_0;
  	tree gnu_lower_bound
! 	  = is_null_string ?
! 	    build_int_cst (gnu_string_index_type, 1) :
! 	    convert (gnu_string_index_type,
  		     gnat_to_gnu (String_Literal_Low_Bound (gnat_entity)));
  	tree gnu_length
  	  = UI_To_gnu (String_Literal_Length (gnat_entity),
  		       gnu_string_index_type);
  	tree gnu_upper_bound
! 	  = is_null_string ?
! 	    build_int_cst (gnu_string_index_type, 0) :
! 	    build_binary_op (PLUS_EXPR, gnu_string_index_type,
  			     gnu_lower_bound,
  			     int_const_binop (MINUS_EXPR, gnu_length,
  					      convert (gnu_string_index_type,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3564,3569 ****
--- 3651,3664 ----
  	      TYPE_PACKED (gnu_type) = TYPE_PACKED (gnu_base_type);
  	      TYPE_REVERSE_STORAGE_ORDER (gnu_type)
  		= Reverse_Storage_Order (gnat_entity);
+ 
+ 	      /* Do the same for subtypes as for the base type, since pointers
+ 		 to them may symmetrically also point to the latter.  */
+ 	      prepend_one_attribute
+ 		(&attr_list, ATTR_MACHINE_ATTRIBUTE,
+ 		 get_identifier ("may_alias"), NULL_TREE,
+ 		 gnat_entity);
+ 
  	      process_attributes (&gnu_type, &attr_list, true, gnat_entity);
  
  	      /* Set the size, alignment and alias set of the type to match
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4380,4391 ****
        process_attributes (&gnu_type, &attr_list, false, gnat_entity);
  
        /* See if a size was specified, by means of either an Object_Size or
!          a regular Size clause, and validate it if so.
! 
! 	 ??? Don't set the size for a String_Literal since it is either
! 	 confirming or we don't handle it properly (if the low bound is
! 	 non-constant).  */
!       if (!gnu_size && kind != E_String_Literal_Subtype)
  	{
  	  const char *size_s = "size for %s too small{, minimum allowed is ^}";
  	  const char *type_s = is_by_ref ? "by-reference type &" : "&";
--- 4475,4482 ----
        process_attributes (&gnu_type, &attr_list, false, gnat_entity);
  
        /* See if a size was specified, by means of either an Object_Size or
!          a regular Size clause, and validate it if so.  */
!       if (!gnu_size)
  	{
  	  const char *size_s = "size for %s too small{, minimum allowed is ^}";
  	  const char *type_s = is_by_ref ? "by-reference type &" : "&";
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4475,4482 ****
  				     false, definition, false);
  
  	  if (gnu_type != orig_type && !gnu_decl)
! 	    create_type_decl (gnu_entity_name, orig_type, true, debug_info_p,
! 			      gnat_entity);
  	}
  
        /* Now set the RM size of the type.  We cannot do it before padding
--- 4566,4573 ----
  				     false, definition, false);
  
  	  if (gnu_type != orig_type && !gnu_decl)
! 	    create_type_decl (gnu_entity_name, orig_type, artificial_p,
! 			      debug_info_p, gnat_entity);
  	}
  
        /* Now set the RM size of the type.  We cannot do it before padding
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4740,4748 ****
  		  && align_clause))
  	    TYPE_USER_ALIGN (gnu_type) = 1;
  
! 	  /* Record whether a pragma Universal_Aliasing was specified.  */
! 	  if (Universal_Aliasing (gnat_entity) && !TYPE_IS_DUMMY_P (gnu_type))
! 	    TYPE_UNIVERSAL_ALIASING_P (gnu_type) = 1;
  
  	  /* If it is passed by reference, force BLKmode to ensure that
  	     objects of this type will always be put in memory.  */
--- 4831,4854 ----
  		  && align_clause))
  	    TYPE_USER_ALIGN (gnu_type) = 1;
  
! 	  /* Record whether a pragma Universal_Aliasing was specified.  Also
! 	     consider that it is always present on interface types because,
! 	     while they are abstract tagged types and thus no object of these
! 	     types exists anywhere, they are used to access objects of types
! 	     that implement them.  */
! 	  if ((Universal_Aliasing (gnat_entity) || Is_Interface (gnat_entity))
! 	      && !TYPE_IS_DUMMY_P (gnu_type))
! 	    {
! 	      /* Set TYPE_TYPELESS_STORAGE if this is an aggregate type and
! 		 TYPE_UNIVERSAL_ALIASING_P otherwise, since the former is not
! 		 available in the latter case  Both will effectively put alias
! 		 set 0 on the type, but the former is more robust because it
! 		 will be streamed in LTO mode.  */
! 	      if (AGGREGATE_TYPE_P (gnu_type))
! 		set_typeless_storage_on_aggregate_type (gnu_type);
! 	      else
! 		set_universal_aliasing_on_type (gnu_type);
! 	    }
  
  	  /* If it is passed by reference, force BLKmode to ensure that
  	     objects of this type will always be put in memory.  */
*************** gnat_to_gnu_component_type (Entity_Id gn
*** 5390,5397 ****
  	  if (gnu_comp_align > TYPE_ALIGN (gnu_type))
  	    gnu_comp_align = 0;
  	}
!        else
! 	 gnu_comp_align = 0;
  
        gnu_type = maybe_pad_type (gnu_type, gnu_comp_size, gnu_comp_align,
  				 gnat_array, true, definition, true);
--- 5496,5503 ----
  	  if (gnu_comp_align > TYPE_ALIGN (gnu_type))
  	    gnu_comp_align = 0;
  	}
!       else
! 	gnu_comp_align = 0;
  
        gnu_type = maybe_pad_type (gnu_type, gnu_comp_size, gnu_comp_align,
  				 gnat_array, true, definition, true);
*************** gnat_to_gnu_param (Entity_Id gnat_param,
*** 5614,5620 ****
        by_ref = true;
      }
  
!   /* If we were requested or muss pass by reference, do so.
       If we were requested to pass by copy, do so.
       Otherwise, for foreign conventions, pass In Out or Out parameters
       or aggregates by reference.  For COBOL and Fortran, pass all
--- 5720,5726 ----
        by_ref = true;
      }
  
!   /* If we were requested or must pass by reference, do so.
       If we were requested to pass by copy, do so.
       Otherwise, for foreign conventions, pass In Out or Out parameters
       or aggregates by reference.  For COBOL and Fortran, pass all
*************** gnat_to_gnu_param (Entity_Id gnat_param,
*** 5648,5653 ****
--- 5754,5760 ----
  
    input_location = saved_location;
  
+   /* Warn if we are asked to pass by copy but cannot.  */
    if (mech == By_Copy && (by_ref || by_component_ptr))
      post_error ("??cannot pass & by copy", gnat_param);
  
*************** gnat_to_gnu_param (Entity_Id gnat_param,
*** 5680,5691 ****
    DECL_RESTRICTED_ALIASING_P (gnu_param) = restricted_aliasing_p;
    Sloc_to_locus (Sloc (gnat_param), &DECL_SOURCE_LOCATION (gnu_param));
  
!   /* If no Mechanism was specified, indicate what we're using, then
!      back-annotate it.  */
    if (mech == Default)
      mech = (by_ref || by_component_ptr) ? By_Reference : By_Copy;
  
    Set_Mechanism (gnat_param, mech);
    return gnu_param;
  }
  
--- 5787,5799 ----
    DECL_RESTRICTED_ALIASING_P (gnu_param) = restricted_aliasing_p;
    Sloc_to_locus (Sloc (gnat_param), &DECL_SOURCE_LOCATION (gnu_param));
  
!   /* If no Mechanism was specified, indicate what we will use.  */
    if (mech == Default)
      mech = (by_ref || by_component_ptr) ? By_Reference : By_Copy;
  
+   /* Back-annotate the mechanism in all cases.  */
    Set_Mechanism (gnat_param, mech);
+ 
    return gnu_param;
  }
  
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6074,6084 ****
  	  associate_subprog_with_dummy_type (gnat_subprog, gnu_return_type);
  	  incomplete_profile_p = true;
  	}
- 
-       if (kind == E_Function)
- 	Set_Mechanism (gnat_subprog, return_by_direct_ref_p
- 				     || return_by_invisi_ref_p
- 				     ? By_Reference : By_Copy);
      }
  
    /* A procedure (something that doesn't return anything) shouldn't be
--- 6182,6187 ----
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6497,6503 ****
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\?use a supported result type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
--- 6600,6606 ----
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\??use a supported result type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6519,6525 ****
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\?use a supported second parameter type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
--- 6622,6628 ----
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\??use a supported second parameter type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6540,6546 ****
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\?use a supported third parameter type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
--- 6643,6649 ----
  			    ("??cannot import type-generic 'G'C'C builtin!",
  			     gnat_subprog);
  			  post_error
! 			    ("\\??use a supported third parameter type",
  			     gnat_subprog);
  			  gnu_builtin_decl = NULL_TREE;
  			}
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6581,6586 ****
--- 6684,6711 ----
  	  if (warn_shadow)
  	    post_error ("'G'C'C builtin not found for&!??", gnat_subprog);
  	}
+ 
+       /* Finally deal with the return mechanism for a function.  */
+       if (kind == E_Function)
+ 	{
+ 	  /* We return by reference either if this is required by the semantics
+ 	     of the language or if this is the default for the function.  */
+ 	  const bool by_ref = return_by_direct_ref_p
+ 			      || return_by_invisi_ref_p
+ 			      || aggregate_value_p (gnu_return_type, gnu_type);
+ 	  Mechanism_Type mech = Mechanism (gnat_subprog);
+ 
+ 	  /* Warn if we are asked to return by copy but cannot.  */
+ 	  if (mech == By_Copy && by_ref)
+ 	    post_error ("??cannot return from & by copy", gnat_subprog);
+ 
+ 	  /* If no mechanism was specified, indicate what we will use.  */
+ 	  if (mech == Default)
+ 	    mech = by_ref ? By_Reference : By_Copy;
+ 
+ 	  /* Back-annotate the mechanism in all cases.  */
+ 	  Set_Mechanism (gnat_subprog, mech);
+ 	}
      }
  
    *param_list = gnu_param_list;
*************** set_reverse_storage_order_on_array_type
*** 6626,6631 ****
--- 6751,6776 ----
      TYPE_REVERSE_STORAGE_ORDER (TYPE_CANONICAL (type)) = 1;
  }
  
+ /* Set TYPE_TYPELESS_STORAGE on an aggregate type.  */
+ 
+ static void
+ set_typeless_storage_on_aggregate_type (tree type)
+ {
+   TYPE_TYPELESS_STORAGE (type) = 1;
+   if (TYPE_CANONICAL (type))
+     TYPE_TYPELESS_STORAGE (TYPE_CANONICAL (type)) = 1;
+ }
+ 
+ /* Set TYPE_UNIVERSAL_ALIASING_P on a type.  */
+ 
+ static void
+ set_universal_aliasing_on_type (tree type)
+ {
+   TYPE_UNIVERSAL_ALIASING_P (type) = 1;
+   if (TYPE_CANONICAL (type))
+     TYPE_UNIVERSAL_ALIASING_P (TYPE_CANONICAL (type)) = 1;
+ }
+ 
  /* Return true if DISCR1 and DISCR2 represent the same discriminant.  */
  
  static bool
*************** constructor_address_p (tree gnu_expr)
*** 6819,6827 ****
  static bool
  allocatable_size_p (tree gnu_size, bool static_p)
  {
!   /* We can allocate a fixed size if it is a valid for the middle-end.  */
    if (TREE_CODE (gnu_size) == INTEGER_CST)
!     return valid_constant_size_p (gnu_size);
  
    /* We can allocate a variable size if this isn't a static allocation.  */
    else
--- 6964,6975 ----
  static bool
  allocatable_size_p (tree gnu_size, bool static_p)
  {
!   /* We can allocate a fixed size if it is a valid for the middle-end but, for
!      a static allocation, we do not allocate more than 2 GB because this would
!      very likely be unintended and problematic for usual code models.  */
    if (TREE_CODE (gnu_size) == INTEGER_CST)
!     return valid_constant_size_p (gnu_size)
! 	   && (!static_p || tree_to_uhwi (gnu_size) <= INT_MAX);
  
    /* We can allocate a variable size if this isn't a static allocation.  */
    else
*************** static tree
*** 7215,7229 ****
  elaborate_expression_2 (tree gnu_expr, Entity_Id gnat_entity, const char *s,
  			bool definition, bool need_for_debug, unsigned int align)
  {
!   tree unit_align = size_int (align / BITS_PER_UNIT);
!   return
!     size_binop (MULT_EXPR,
! 		elaborate_expression_1 (size_binop (EXACT_DIV_EXPR,
! 						    gnu_expr,
! 						    unit_align),
! 					gnat_entity, s, definition,
! 					need_for_debug),
! 		unit_align);
  }
  
  /* Structure to hold internal data for elaborate_reference.  */
--- 7363,7392 ----
  elaborate_expression_2 (tree gnu_expr, Entity_Id gnat_entity, const char *s,
  			bool definition, bool need_for_debug, unsigned int align)
  {
!   /* Nothing more to do if the factor is already explicit in the tree.  */
!   if (TREE_CODE (gnu_expr) == MULT_EXPR
!       && TREE_CONSTANT (TREE_OPERAND (gnu_expr, 1))
!       && value_factor_p (TREE_OPERAND (gnu_expr, 1), align / BITS_PER_UNIT))
!     return
!       size_binop (MULT_EXPR,
! 		  elaborate_expression_1 (TREE_OPERAND (gnu_expr, 0),
! 					  gnat_entity, s, definition,
! 					  need_for_debug),
! 		  TREE_OPERAND (gnu_expr, 1));
! 
!   /* Otherwise divide by the factor, elaborate the result and multiply back.  */
!   else
!     {
!       tree unit_align = size_int (align / BITS_PER_UNIT);
!       return
! 	size_binop (MULT_EXPR,
! 		    elaborate_expression_1 (size_binop (EXACT_DIV_EXPR,
! 							gnu_expr,
! 							unit_align),
! 					    gnat_entity, s, definition,
! 					    need_for_debug),
! 		    unit_align);
!     }
  }
  
  /* Structure to hold internal data for elaborate_reference.  */
*************** gnat_to_gnu_field (Entity_Id gnat_field,
*** 7573,7578 ****
--- 7736,7743 ----
  	  gnu_field_type = gnu_packable_type;
  	  if (!gnu_size)
  	    gnu_size = rm_size (gnu_field_type);
+ 	  if (TREE_CODE (gnu_size) != INTEGER_CST)
+ 	    gnu_size = NULL_TREE;
  	}
      }
  
*************** validate_size (Uint uint_size, tree gnu_
*** 9480,9493 ****
      old_size = max_size (old_size, true);
  
    /* If this is an access type or a fat pointer, the minimum size is that given
!      by the smallest integral mode that's valid for pointers.  */
    if (TREE_CODE (gnu_type) == POINTER_TYPE || TYPE_IS_FAT_POINTER_P (gnu_type))
!     {
!       scalar_int_mode p_mode = NARROWEST_INT_MODE;
!       while (!targetm.valid_pointer_mode (p_mode))
! 	p_mode = GET_MODE_WIDER_MODE (p_mode).require ();
!       old_size = bitsize_int (GET_MODE_BITSIZE (p_mode));
!     }
  
    /* Issue an error either if the default size of the object isn't a constant
       or if the new size is smaller than it.  */
--- 9645,9653 ----
      old_size = max_size (old_size, true);
  
    /* If this is an access type or a fat pointer, the minimum size is that given
!      by the default pointer mode.  */
    if (TREE_CODE (gnu_type) == POINTER_TYPE || TYPE_IS_FAT_POINTER_P (gnu_type))
!     old_size = bitsize_int (GET_MODE_BITSIZE (ptr_mode));
  
    /* Issue an error either if the default size of the object isn't a constant
       or if the new size is smaller than it.  */
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/gadaint.h gcc-15.1.0/gcc/ada/gcc-interface/gadaint.h
*** gcc-14.2.0/gcc/ada/gcc-interface/gadaint.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/gadaint.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2010-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2010-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/gigi.h gcc-15.1.0/gcc/ada/gcc-interface/gigi.h
*** gcc-14.2.0/gcc/ada/gcc-interface/gigi.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/gigi.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern tree create_type_stub_decl (tree
*** 625,633 ****
     used in the declaration.  ARTIFICIAL_P is true if the declaration was
     generated by the compiler.  DEBUG_INFO_P is true if we need to write
     debug information about this type.  GNAT_NODE is used for the position
!    of the decl.  */
  extern tree create_type_decl (tree name, tree type, bool artificial_p,
! 			      bool debug_info_p, Node_Id gnat_node);
  
  /* Return a VAR_DECL or CONST_DECL node.
  
--- 625,636 ----
     used in the declaration.  ARTIFICIAL_P is true if the declaration was
     generated by the compiler.  DEBUG_INFO_P is true if we need to write
     debug information about this type.  GNAT_NODE is used for the position
!    of the decl.  Normally, an artificial type might be marked as
!    nameless.  However, if CAN_BE_NAMELESS is false, this marking is
!    disabled and the name will always be attached for the type.  */
  extern tree create_type_decl (tree name, tree type, bool artificial_p,
! 			      bool debug_info_p, Node_Id gnat_node,
! 			      bool can_be_nameless = true);
  
  /* Return a VAR_DECL or CONST_DECL node.
  
*************** extern tree build_template (tree templat
*** 742,751 ****
     is an unconstrained array.  This consists of a RECORD_TYPE containing a
     field of TEMPLATE_TYPE and a field of OBJECT_TYPE, which is an ARRAY_TYPE.
     If ARRAY_TYPE is that of an unconstrained array, this is used to represent
!    an arbitrary unconstrained object.  Use NAME as the name of the record.
!    DEBUG_INFO_P is true if we need to write debug information for the type.  */
  extern tree build_unc_object_type (tree template_type, tree object_type,
! 				   tree name, bool debug_info_p);
  
  /* Same as build_unc_object_type, but taking a thin or fat pointer type
     instead of the template type.  */
--- 745,757 ----
     is an unconstrained array.  This consists of a RECORD_TYPE containing a
     field of TEMPLATE_TYPE and a field of OBJECT_TYPE, which is an ARRAY_TYPE.
     If ARRAY_TYPE is that of an unconstrained array, this is used to represent
!    an arbitrary unconstrained object.  Use NAME as the name of the
!    record.  ARTIFICIAL_P is true if the type was generated by the
!    compiler, or false if the type came from source.  DEBUG_INFO_P is
!    true if we need to write debug information for the type.  */
  extern tree build_unc_object_type (tree template_type, tree object_type,
! 				   tree name, bool artificial_p,
! 				   bool debug_info_p);
  
  /* Same as build_unc_object_type, but taking a thin or fat pointer type
     instead of the template type.  */
*************** extern tree build_call_alloc_dealloc (tr
*** 906,912 ****
  				      Entity_Id gnat_pool, Node_Id gnat_node);
  
  /* Build a GCC tree to correspond to allocating an object of TYPE whose
!    initial value if INIT, if INIT is nonzero.  Convert the expression to
     RESULT_TYPE, which must be some type of pointer.  Return the tree.
  
     GNAT_PROC and GNAT_POOL optionally give the procedure to call and
--- 912,918 ----
  				      Entity_Id gnat_pool, Node_Id gnat_node);
  
  /* Build a GCC tree to correspond to allocating an object of TYPE whose
!    initial value is INIT, if INIT is nonzero.  Convert the expression to
     RESULT_TYPE, which must be some type of pointer.  Return the tree.
  
     GNAT_PROC and GNAT_POOL optionally give the procedure to call and
*************** extern bool must_pass_by_ref (tree gnu_t
*** 1008,1013 ****
--- 1014,1023 ----
  /* Return the size of the FP mode with precision PREC.  */
  extern int fp_prec_to_size (int prec);
  
+ /* Return the default alignment of a FIELD of TYPE declared in a record or
+    union type as specified by the ABI of the target architecture.  */
+ extern unsigned int default_field_alignment (tree field, tree type);
+ 
  /* Return the precision of the FP mode with size SIZE.  */
  extern int fp_size_to_prec (int size);
  
*************** extern bool simple_constant_p (Entity_Id
*** 1040,1045 ****
--- 1050,1060 ----
  /* Return the size of TYPE, which must be a positive power of 2.  */
  extern unsigned int resolve_atomic_size (tree type);
  
+ /* Try to compute the reduction of OP modulo MODULUS in PRECISION bits with a
+    division-free algorithm.  Return NULL_TREE if this is not easily doable.  */
+ extern tree fast_modulo_reduction (tree op, tree modulus,
+ 				   unsigned int precision);
+ 
  #ifdef __cplusplus
  extern "C" {
  #endif
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/lang-specs.h gcc-15.1.0/gcc/ada/gcc-interface/lang-specs.h
*** gcc-14.2.0/gcc/ada/gcc-interface/lang-specs.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/lang-specs.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 1992-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 37,43 ****
   %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
   %{!S:%{!c:%e-c or -S required for Ada}}\
   gnat1 %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc*} %{nostdlib*}\
      %{fcompare-debug-second:-gnatd_A} \
      %{O*} %{W*} %{w} %{p} %{pg:-p} " ADA_DUMPS_OPTIONS " \
      %{coverage:-fprofile-arcs -ftest-coverage} "
--- 37,43 ----
   %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
   %{!S:%{!c:%e-c or -S required for Ada}}\
   gnat1 %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc} %{nostdlib}\
      %{fcompare-debug-second:-gnatd_A} \
      %{O*} %{W*} %{w} %{p} %{pg:-p} " ADA_DUMPS_OPTIONS " \
      %{coverage:-fprofile-arcs -ftest-coverage} "
***************
*** 55,61 ****
     "\
   %{!c:%e-c required for gnat2why}\
   gnat1why %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc*} %{nostdlib*}\
      %{a} " ADA_DUMPS_OPTIONS " \
      %{gnatea:-gnatez} %{g*&m*&f*} \
      %1 %{o*:%w%*-gnatO} \
--- 55,61 ----
     "\
   %{!c:%e-c required for gnat2why}\
   gnat1why %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc} %{nostdlib}\
      %{a} " ADA_DUMPS_OPTIONS " \
      %{gnatea:-gnatez} %{g*&m*&f*} \
      %1 %{o*:%w%*-gnatO} \
***************
*** 66,72 ****
     "\
   %{!c:%e-c required for gnat2scil}\
   gnat1scil %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc*} %{nostdlib*}\
      %{a} " ADA_DUMPS_OPTIONS " \
      %{gnatea:-gnatez} %{g*&m*&f*} \
      %1 %{o*:%w%*-gnatO} \
--- 66,72 ----
     "\
   %{!c:%e-c required for gnat2scil}\
   gnat1scil %{I*} %{k8:-gnatk8} %{!Q:-quiet}\
!     %{nostdinc} %{nostdlib}\
      %{a} " ADA_DUMPS_OPTIONS " \
      %{gnatea:-gnatez} %{g*&m*&f*} \
      %1 %{o*:%w%*-gnatO} \
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/lang.opt.urls gcc-15.1.0/gcc/ada/gcc-interface/lang.opt.urls
*** gcc-14.2.0/gcc/ada/gcc-interface/lang.opt.urls	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/lang.opt.urls	Fri Apr 25 08:18:00 2025
*************** UrlSuffix(gcc/Directory-Options.html#ind
*** 7,16 ****
  ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
  ;   duplicate: 'gcc/Warning-Options.html#index-Wall'
  Wall
! LangUrlSuffix_D(gdc/Warnings.html#index-Wall)
  
  nostdinc
! UrlSuffix(gcc/Directory-Options.html#index-nostdinc) LangUrlSuffix_D(gdc/Directory-Options.html#index-nostdinc)
  
  nostdlib
  UrlSuffix(gcc/Link-Options.html#index-nostdlib)
--- 7,16 ----
  ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
  ;   duplicate: 'gcc/Warning-Options.html#index-Wall'
  Wall
! LangUrlSuffix_D(gdc/Warnings.html#index-Wall) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wall)
  
  nostdinc
! UrlSuffix(gcc/Directory-Options.html#index-nostdinc) LangUrlSuffix_D(gdc/Directory-Options.html#index-nostdinc) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-nostdinc)
  
  nostdlib
  UrlSuffix(gcc/Link-Options.html#index-nostdlib)
*************** UrlSuffix(gcc/Link-Options.html#index-no
*** 19,24 ****
--- 19,26 ----
  ;   duplicate: 'gcc/Code-Gen-Options.html#index-fshort-enums'
  ;   duplicate: 'gcc/Non-bugs.html#index-fshort-enums-3'
  ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-fshort-enums-1'
+ fshort-enums
+ LangUrlSuffix_Fortran(gfortran/Code-Gen-Options.html#index-fshort-enums)
  
  ; skipping UrlSuffix for 'fsigned-char' due to multiple URLs:
  ;   duplicate: 'gcc/C-Dialect-Options.html#index-fsigned-char'
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/misc.cc gcc-15.1.0/gcc/ada/gcc-interface/misc.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/misc.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/misc.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                           C Implementation File                          *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                           C Implementation File                          *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 28,33 ****
--- 28,35 ----
  #include "coretypes.h"
  #include "target.h"
  #include "tree.h"
+ #include "memmodel.h"
+ #include "tm_p.h"
  #include "diagnostic.h"
  #include "opts.h"
  #include "alias.h"
*************** gnat_post_options (const char **pfilenam
*** 281,287 ****
    /* Unfortunately the post_options hook is called before the value of
       flag_short_enums is autodetected, if need be.  Mimic the process
       for our private flag_short_enums.  */
!   if (flag_short_enums == 2)
      flag_short_enums = targetm.default_short_enums ();
  
    return false;
--- 283,289 ----
    /* Unfortunately the post_options hook is called before the value of
       flag_short_enums is autodetected, if need be.  Mimic the process
       for our private flag_short_enums.  */
!   if (!OPTION_SET_P (flag_short_enums))
      flag_short_enums = targetm.default_short_enums ();
  
    return false;
*************** internal_error_function (diagnostic_cont
*** 305,318 ****
    emergency_dump_function ();
  
    /* Reset the pretty-printer.  */
!   pp_clear_output_area (context->printer);
  
    /* Format the message into the pretty-printer.  */
    text_info tinfo (msgid, ap, errno);
!   pp_format_verbatim (context->printer, &tinfo);
  
    /* Extract a (writable) pointer to the formatted text.  */
!   buffer = xstrdup (pp_formatted_text (context->printer));
  
    /* Go up to the first newline.  */
    for (p = buffer; *p; p++)
--- 307,320 ----
    emergency_dump_function ();
  
    /* Reset the pretty-printer.  */
!   pp_clear_output_area (context->get_reference_printer ());
  
    /* Format the message into the pretty-printer.  */
    text_info tinfo (msgid, ap, errno);
!   pp_format_verbatim (context->get_reference_printer (), &tinfo);
  
    /* Extract a (writable) pointer to the formatted text.  */
!   buffer = xstrdup (pp_formatted_text (context->get_reference_printer ()));
  
    /* Go up to the first newline.  */
    for (p = buffer; *p; p++)
*************** gnat_type_max_size (const_tree gnu_type)
*** 760,765 ****
--- 762,780 ----
    return max_size_unit;
  }
  
+ /* Return the unit size of TYPE without reusable tail padding.  */
+ 
+ static tree
+ gnat_unit_size_without_reusable_padding (tree type)
+ {
+   /* The padding of justified modular types can always be reused.  */
+   if (TYPE_JUSTIFIED_MODULAR_P (type))
+     return fold_convert (sizetype,
+ 			 size_binop (CEIL_DIV_EXPR,
+ 				     TYPE_ADA_SIZE (type), bitsize_unit_node));
+   return TYPE_SIZE_UNIT (type);
+ }
+ 
  static tree get_array_bit_stride (tree);
  
  /* Provide information in INFO for debug output about the TYPE array type.
*************** gnat_get_array_descr_info (const_tree co
*** 771,777 ****
  {
    tree type = const_cast<tree> (const_type);
    tree first_dimen, dimen;
!   bool is_bit_packed_array, is_array;
    int i;
  
    /* Temporaries created in the first pass and used in the second one for thin
--- 786,792 ----
  {
    tree type = const_cast<tree> (const_type);
    tree first_dimen, dimen;
!   bool is_array;
    int i;
  
    /* Temporaries created in the first pass and used in the second one for thin
*************** gnat_get_array_descr_info (const_tree co
*** 784,795 ****
    /* If we have an implementation type for a packed array, get the original
       array type.  */
    if (TYPE_IMPL_PACKED_ARRAY_P (type) && TYPE_ORIGINAL_PACKED_ARRAY (type))
!     {
!       is_bit_packed_array = BIT_PACKED_ARRAY_TYPE_P (type);
!       type = TYPE_ORIGINAL_PACKED_ARRAY (type);
!     }
!   else
!     is_bit_packed_array = false;
  
    /* First pass: gather all information about this array except everything
       related to dimensions.  */
--- 799,805 ----
    /* If we have an implementation type for a packed array, get the original
       array type.  */
    if (TYPE_IMPL_PACKED_ARRAY_P (type) && TYPE_ORIGINAL_PACKED_ARRAY (type))
!     type = TYPE_ORIGINAL_PACKED_ARRAY (type);
  
    /* First pass: gather all information about this array except everything
       related to dimensions.  */
*************** gnat_get_array_descr_info (const_tree co
*** 820,825 ****
--- 830,843 ----
        tree array_field = DECL_CHAIN (bounds_field);
        tree array_type = TREE_TYPE (array_field);
  
+       /* Replay the entire processing for array types.  */
+       if (TYPE_CAN_HAVE_DEBUG_TYPE_P (array_type)
+           && TYPE_DEBUG_TYPE (array_type))
+         array_type = TYPE_DEBUG_TYPE (array_type);
+       if (TYPE_IMPL_PACKED_ARRAY_P (array_type)
+           && TYPE_ORIGINAL_PACKED_ARRAY (array_type))
+         array_type = TYPE_ORIGINAL_PACKED_ARRAY (array_type);
+ 
        /* Shift back the address to get the address of the template.  */
        tree shift_amount
  	= fold_build1 (NEGATE_EXPR, sizetype, byte_position (array_field));
*************** gnat_get_array_descr_info (const_tree co
*** 846,854 ****
    /* If this array has fortran convention, it's arranged in column-major
       order, so our view here has reversed dimensions.  */
    const bool convention_fortran_p = TYPE_CONVENTION_FORTRAN_P (first_dimen);
! 
!   if (BIT_PACKED_ARRAY_TYPE_P (first_dimen))
!     is_bit_packed_array = true;
  
    /* ??? For row major ordering, we probably want to emit nothing and
       instead specify it as the default in Dw_TAG_compile_unit.  */
--- 864,870 ----
    /* If this array has fortran convention, it's arranged in column-major
       order, so our view here has reversed dimensions.  */
    const bool convention_fortran_p = TYPE_CONVENTION_FORTRAN_P (first_dimen);
!   const bool is_bit_packed_array = BIT_PACKED_ARRAY_TYPE_P (first_dimen);
  
    /* ??? For row major ordering, we probably want to emit nothing and
       instead specify it as the default in Dw_TAG_compile_unit.  */
*************** gnat_get_array_descr_info (const_tree co
*** 954,960 ****
  
        while (true)
  	{
! 	  if (TYPE_DEBUG_TYPE (source_element_type))
  	    source_element_type = TYPE_DEBUG_TYPE (source_element_type);
  	  else if (TYPE_IS_PADDING_P (source_element_type))
  	    source_element_type
--- 970,977 ----
  
        while (true)
  	{
! 	  if (TYPE_CAN_HAVE_DEBUG_TYPE_P (source_element_type)
! 	      && TYPE_DEBUG_TYPE (source_element_type))
  	    source_element_type = TYPE_DEBUG_TYPE (source_element_type);
  	  else if (TYPE_IS_PADDING_P (source_element_type))
  	    source_element_type
*************** must_pass_by_ref (tree gnu_type)
*** 1114,1119 ****
--- 1131,1156 ----
  	      && TREE_CODE (TYPE_SIZE_UNIT (gnu_type)) != INTEGER_CST));
  }
  
+ /* Return the default alignment of a FIELD of TYPE declared in a record or
+    union type as specified by the ABI of the target architecture.  */
+ 
+ unsigned int
+ default_field_alignment (tree ARG_UNUSED (field), tree type)
+ {
+   /* This is modeled on layout_decl.  */
+   unsigned int align = TYPE_ALIGN (type);
+ 
+ #ifdef BIGGEST_FIELD_ALIGNMENT
+   align = MIN (align, (unsigned int) BIGGEST_FIELD_ALIGNMENT);
+ #endif
+ 
+ #ifdef ADJUST_FIELD_ALIGN
+   align = ADJUST_FIELD_ALIGN (field, type, align);
+ #endif
+ 
+   return align;
+ }
+ 
  /* This function is called by the front-end to enumerate all the supported
     modes for the machine, as well as some predefined C types.  F is a function
     which is called back with the parameters as listed below, first a string,
*************** const struct scoped_attribute_specs *con
*** 1407,1412 ****
--- 1444,1451 ----
  #define LANG_HOOKS_TYPE_FOR_SIZE	gnat_type_for_size
  #undef  LANG_HOOKS_TYPES_COMPATIBLE_P
  #define LANG_HOOKS_TYPES_COMPATIBLE_P	gnat_types_compatible_p
+ #undef  LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING
+ #define LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING gnat_unit_size_without_reusable_padding
  #undef  LANG_HOOKS_GET_ARRAY_DESCR_INFO
  #define LANG_HOOKS_GET_ARRAY_DESCR_INFO	gnat_get_array_descr_info
  #undef  LANG_HOOKS_GET_SUBRANGE_BOUNDS
*************** const struct scoped_attribute_specs *con
*** 1433,1439 ****
  #define LANG_HOOKS_DEEP_UNSHARING	true
  #undef  LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS
  #define LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS true
! #undef LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE
  #define LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE gnat_get_sarif_source_language
  
  struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
--- 1472,1478 ----
  #define LANG_HOOKS_DEEP_UNSHARING	true
  #undef  LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS
  #define LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS true
! #undef  LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE
  #define LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE gnat_get_sarif_source_language
  
  struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/system.ads gcc-15.1.0/gcc/ada/gcc-interface/system.ads
*** gcc-14.2.0/gcc/ada/gcc-interface/system.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/system.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/targtyps.cc gcc-15.1.0/gcc/ada/gcc-interface/targtyps.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/targtyps.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/targtyps.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/trans.cc gcc-15.1.0/gcc/ada/gcc-interface/trans.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/trans.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/trans.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** static vec<Entity_Id> gnu_program_error_
*** 236,241 ****
--- 236,244 ----
  /* Map GNAT tree codes to GCC tree codes for simple expressions.  */
  static enum tree_code gnu_codes[Number_Node_Kinds];
  
+ /* Map from identifier nodes to namespace decls.  */
+ static GTY(()) hash_map<tree, tree> *namespace_map;
+ 
  static void init_code_table (void);
  static tree get_elaboration_procedure (void);
  static void Compilation_Unit_to_gnu (Node_Id);
*************** static tree build_unary_op_trapv (enum t
*** 255,260 ****
--- 258,264 ----
  static tree build_binary_op_trapv (enum tree_code, tree, tree, tree, Node_Id);
  static tree convert_with_check (Entity_Id, tree, bool, bool, Node_Id);
  static bool addressable_p (tree, tree);
+ static bool aliasable_p (tree, tree);
  static tree assoc_to_constructor (Entity_Id, Node_Id, tree);
  static tree pos_to_constructor (Node_Id, tree);
  static void validate_unchecked_conversion (Node_Id);
*************** build_raise_check (int check, enum excep
*** 745,750 ****
--- 749,774 ----
    return result;
  }
  
+ /* Return true if GNAT_NODE, which is an N_Attribute_Reference, is one of the
+    access attributes.  */
+ 
+ static bool
+ access_attribute_p (Node_Id gnat_node)
+ {
+   switch (Get_Attribute_Id (Attribute_Name (gnat_node)))
+     {
+     case Attr_Access:
+     case Attr_Unchecked_Access:
+     case Attr_Unrestricted_Access:
+       return true;
+ 
+     default:
+       return false;
+     }
+ 
+   gcc_unreachable ();
+ }
+ 
  /* Return a positive value if an lvalue is required for GNAT_NODE, which is
     an N_Attribute_Reference.  */
  
*************** lvalue_required_for_attribute_p (Node_Id
*** 760,766 ****
      case Attr_Range_Length:
      case Attr_Length:
      case Attr_Object_Size:
-     case Attr_Size:
      case Attr_Value_Size:
      case Attr_Component_Size:
      case Attr_Descriptor_Size:
--- 784,789 ----
*************** lvalue_required_for_attribute_p (Node_Id
*** 786,796 ****
--- 809,822 ----
      case Attr_First_Bit:
      case Attr_Last_Bit:
      case Attr_Bit:
+     case Attr_Size:
      case Attr_Asm_Input:
      case Attr_Asm_Output:
      default:
        return 1;
      }
+ 
+   gcc_unreachable ();
  }
  
  /* Return a positive value if an lvalue is required for GNAT_NODE.  GNU_TYPE
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1814,1823 ****
        gcc_assert (TREE_CODE (gnu_prefix) != TYPE_DECL);
  
        gnu_result_type = get_unpadded_type (Etype (gnat_node));
        gnu_result
! 	= build_unary_op (((attribute == Attr_Address
! 			    || attribute == Attr_Unrestricted_Access)
! 			   && !Must_Be_Byte_Aligned (gnat_node))
  			  ? ATTR_ADDR_EXPR : ADDR_EXPR,
  			  gnu_result_type, gnu_prefix);
  
--- 1840,1854 ----
        gcc_assert (TREE_CODE (gnu_prefix) != TYPE_DECL);
  
        gnu_result_type = get_unpadded_type (Etype (gnat_node));
+ 
+       /* We used to pass ATTR_ADDR_EXPR for Attr_Unrestricted_Access too, but
+ 	 the processing done in build_unary_op for it flattens the reference,
+ 	 in particular removes all intermediate (view) conversions, which may
+ 	 cause SUBSTITUTE_PLACEHOLDER_IN_EXPR to fail to substitute in the
+ 	 bounds of a fat pointer returned for Attr_Unrestricted_Access.  */
        gnu_result
! 	= build_unary_op (attribute == Attr_Address
! 			  && !Must_Be_Byte_Aligned (gnat_node)
  			  ? ATTR_ADDR_EXPR : ADDR_EXPR,
  			  gnu_result_type, gnu_prefix);
  
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 3911,3916 ****
--- 3942,3953 ----
    if (Is_Generic_Subprogram (gnat_subprog) || Is_Eliminated (gnat_subprog))
      return;
  
+   /* Likewise if this is a protected subprogram and we are only annotating
+      types, as the required expansion of references did not take place.  */
+   if (Convention (gnat_subprog) == Convention_Protected
+       && type_annotate_only)
+     return;
+ 
    /* If this subprogram acts as its own spec, define it.  Otherwise, just get
       the already-elaborated tree node.  However, if this subprogram had its
       elaboration deferred, we will already have made a tree node for it.  So
*************** node_is_atomic (Node_Id gnat_node)
*** 4230,4236 ****
--- 4267,4276 ----
        if (!Is_Object (gnat_entity))
  	break;
        return Is_Atomic (gnat_entity)
+ 	     /* Disregard the flag on unconstrained arrays or simple constants
+ 		since we cannot or need not generate an atomic access.  */
  	     || (Is_Atomic (Etype (gnat_entity))
+ 		 && Ekind (Etype (gnat_entity)) != E_Array_Type
  		 && !simple_constant_p (gnat_entity));
  
      case N_Selected_Component:
*************** node_is_volatile_full_access (Node_Id gn
*** 4270,4276 ****
--- 4310,4319 ----
        if (!Is_Object (gnat_entity))
  	break;
        return Is_Volatile_Full_Access (gnat_entity)
+ 	     /* Disregard the flag on unconstrained arrays or simple constants
+ 		since we cannot or need not generate a full access.  */
  	     || (Is_Volatile_Full_Access (Etype (gnat_entity))
+ 		 && Ekind (Etype (gnat_entity)) != E_Array_Type
  		 && !simple_constant_p (gnat_entity));
  
      case N_Selected_Component:
*************** get_atomic_access (Node_Id gnat_node, at
*** 4358,4366 ****
      gnat_node = Expression (gnat_node);
  
    /* Up to Ada 2012, for Atomic itself, only reads and updates of the object as
!      a whole require atomic access (RM C.6(15)).  But, starting with Ada 2022,
!      reads of or writes to a nonatomic subcomponent of the object also require
!      atomic access (RM C.6(19)).  */
    if (node_is_atomic (gnat_node))
      {
        bool as_a_whole = true;
--- 4401,4409 ----
      gnat_node = Expression (gnat_node);
  
    /* Up to Ada 2012, for Atomic itself, only reads and updates of the object as
!      a whole require atomic access (RM C.6(15)), unless the object is also VFA.
!      But, starting with Ada 2022, reads of or writes to nonatomic subcomponents
!      of the object also require atomic access (RM C.6(19)).  */
    if (node_is_atomic (gnat_node))
      {
        bool as_a_whole = true;
*************** get_atomic_access (Node_Id gnat_node, at
*** 4369,4375 ****
        for (gnat_temp = gnat_node, gnat_parent = Parent (gnat_temp);
  	   node_is_component (gnat_parent) && Prefix (gnat_parent) == gnat_temp;
  	   gnat_temp = gnat_parent, gnat_parent = Parent (gnat_temp))
! 	if (Ada_Version < Ada_2022 || node_is_atomic (gnat_parent))
  	  goto not_atomic;
  	else
  	  as_a_whole = false;
--- 4412,4420 ----
        for (gnat_temp = gnat_node, gnat_parent = Parent (gnat_temp);
  	   node_is_component (gnat_parent) && Prefix (gnat_parent) == gnat_temp;
  	   gnat_temp = gnat_parent, gnat_parent = Parent (gnat_temp))
! 	if (Ada_Version < Ada_2022
! 	    ? !node_is_volatile_full_access (gnat_node)
! 	    : node_is_atomic (gnat_parent))
  	  goto not_atomic;
  	else
  	  as_a_whole = false;
*************** storage_model_access_required_p (Node_Id
*** 4496,4501 ****
--- 4541,4549 ----
  static tree
  create_temporary (const char *prefix, tree type)
  {
+   if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (type)))
+     type = maybe_pad_type (type, max_size (TYPE_SIZE (type), true), 0,
+ 			   Empty, false, false, true);
    tree gnu_temp
      = create_var_decl (create_tmp_var_name (prefix), NULL_TREE,
  		      type, NULL_TREE,
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4823,4832 ****
         gnat_formal = Next_Formal_With_Extras (gnat_formal),
         gnat_actual = Next_Actual (gnat_actual))
      {
!       Entity_Id gnat_formal_type = Etype (gnat_formal);
        tree gnu_formal_type = gnat_to_gnu_type (gnat_formal_type);
        tree gnu_formal = present_gnu_tree (gnat_formal)
  			? get_gnu_tree (gnat_formal) : NULL_TREE;
        const bool in_param = (Ekind (gnat_formal) == E_In_Parameter);
        const bool is_true_formal_parm
  	= gnu_formal && TREE_CODE (gnu_formal) == PARM_DECL;
--- 4871,4881 ----
         gnat_formal = Next_Formal_With_Extras (gnat_formal),
         gnat_actual = Next_Actual (gnat_actual))
      {
!       const Entity_Id gnat_formal_type = Etype (gnat_formal);
        tree gnu_formal_type = gnat_to_gnu_type (gnat_formal_type);
        tree gnu_formal = present_gnu_tree (gnat_formal)
  			? get_gnu_tree (gnat_formal) : NULL_TREE;
+       tree gnu_actual_type = gnat_to_gnu_type (Etype (gnat_actual));
        const bool in_param = (Ekind (gnat_formal) == E_In_Parameter);
        const bool is_true_formal_parm
  	= gnu_formal && TREE_CODE (gnu_formal) == PARM_DECL;
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4839,4848 ****
  	 because we need the real object in this case, either to pass its
  	 address if it's passed by reference or as target of the back copy
  	 done after the call if it uses the copy-in/copy-out mechanism.
! 	 We do it in the In case too, except for an unchecked conversion
! 	 to an elementary type or a constrained composite type because it
! 	 alone can cause the actual to be misaligned and the addressability
! 	 test is applied to the real object.  */
        const bool suppress_type_conversion
  	= ((Nkind (gnat_actual) == N_Unchecked_Type_Conversion
  	    && (!in_param
--- 4888,4898 ----
  	 because we need the real object in this case, either to pass its
  	 address if it's passed by reference or as target of the back copy
  	 done after the call if it uses the copy-in/copy-out mechanism.
! 	 We do it in the In case too, except for a formal passed by reference
! 	 and an actual which is an unchecked conversion to an elementary type
! 	 or constrained composite type because it itself can cause the actual
! 	 to be misaligned and the addressability test needs to be applied to
! 	 the real object.  */
        const bool suppress_type_conversion
  	= ((Nkind (gnat_actual) == N_Unchecked_Type_Conversion
  	    && (!in_param
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4854,4859 ****
--- 4904,4910 ----
        Node_Id gnat_name = suppress_type_conversion
  			  ? Expression (gnat_actual) : gnat_actual;
        tree gnu_name = gnat_to_gnu (gnat_name), gnu_name_type;
+       bool aliasing = false;
  
        /* If it's possible we may need to use this expression twice, make sure
  	 that any side-effects are handled via SAVE_EXPRs; likewise if we need
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4869,4878 ****
  
        /* If we are passing a non-addressable parameter by reference, pass the
  	 address of a copy.  In the In Out or Out case, set up to copy back
! 	 out after the call.  */
        if (is_by_ref_formal_parm
  	  && (gnu_name_type = gnat_to_gnu_type (Etype (gnat_name)))
! 	  && !addressable_p (gnu_name, gnu_name_type))
  	{
  	  tree gnu_orig = gnu_name, gnu_temp, gnu_stmt;
  
--- 4920,4933 ----
  
        /* If we are passing a non-addressable parameter by reference, pass the
  	 address of a copy.  In the In Out or Out case, set up to copy back
! 	 out after the call.  Moreover, in the case of a conversion, if we
! 	 are passing a non-aliasable parameter, also pass the address of a
! 	 copy to avoid breaking strict aliasing rules.  */
        if (is_by_ref_formal_parm
  	  && (gnu_name_type = gnat_to_gnu_type (Etype (gnat_name)))
! 	  && (!addressable_p (gnu_name, gnu_name_type)
! 	      || (node_is_type_conversion (gnat_actual)
! 		  && (aliasing = !aliasable_p (gnu_name, gnu_actual_type)))))
  	{
  	  tree gnu_orig = gnu_name, gnu_temp, gnu_stmt;
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4881,4886 ****
--- 4936,4946 ----
  	  if (TREE_CODE (remove_conversions (gnu_name, true)) == CONSTRUCTOR)
  	    ;
  
+ 	  /* Likewise for an atomic type, which is defined to be by-reference
+ 	     if it is not by-copy but actually behaves more like a scalar.  */
+ 	  else if (TYPE_ATOMIC (gnu_formal_type))
+ 	    ;
+ 
  	  /* If the formal is passed by reference, a copy is not allowed.  */
  	  else if (TYPE_IS_BY_REFERENCE_P (gnu_formal_type)
  		   || Is_Aliased (gnat_formal))
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4893,4898 ****
--- 4953,4989 ----
  	    post_error ("misaligned actual cannot be passed by reference??",
  			gnat_actual);
  
+ 	  /* If the copy needs to be made because of aliasing considerations,
+ 	     issue a warning because this was historically not necessary.  */
+ 	  else if (aliasing)
+ 	    {
+ 	      if (Nkind (gnat_actual) == N_Unchecked_Type_Conversion)
+ 		{
+ 		  post_error
+ 		    ("unchecked conversion implemented by copy??",
+ 		     gnat_actual);
+ 		  post_error
+ 		    ("\\??use pragma Universal_Aliasing on either type",
+ 		     gnat_actual);
+ 		  post_error
+ 		    ("\\??to enable RM 13.9(12) implementation permission",
+ 		     gnat_actual);
+ 		}
+ 
+ 	      else
+ 		{
+ 		  post_error
+ 		    ("value conversion implemented by copy??",
+ 		     gnat_actual);
+ 		  post_error
+ 		    ("\\??use pair of types with same root type",
+ 		     gnat_actual);
+ 		  post_error
+ 		    ("\\??to avoid new object in RM 4.6(58.5/5)",
+ 		     gnat_actual);
+ 		}
+ 	    }
+ 
  	  /* If the actual type of the object is already the nominal type,
  	     we have nothing to do, except if the size is self-referential
  	     in which case we'll remove the unpadding below.  */
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4923,4928 ****
--- 5014,5033 ----
  					       TREE_TYPE (gnu_name))))
  	    gnu_name = convert (gnu_name_type, gnu_name);
  
+ 	  /* If the temporary is created because of aliasing considerations,
+ 	     or would have been so created if the actual was addressable,
+ 	     it must be in the target type of the (unchecked) conversion.  */
+ 	  if (aliasing
+ 	      || (node_is_type_conversion (gnat_actual)
+ 		  && !aliasable_p (gnu_name, gnu_actual_type)))
+ 	    {
+ 	      if (Nkind (gnat_actual) == N_Unchecked_Type_Conversion)
+ 		gnu_name = unchecked_convert (gnu_actual_type, gnu_name,
+ 					      No_Truncation (gnat_actual));
+ 	      else
+ 		gnu_name = convert (gnu_actual_type, gnu_name);
+ 	    }
+ 
  	  /* If this is an In Out or Out parameter and we're returning a value,
  	     we need to create a temporary for the return value because we must
  	     preserve it before copying back at the very end.  */
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4982,4987 ****
--- 5087,5093 ----
  	}
  
        /* Start from the real object and build the actual.  */
+       tree gnu_unpadded_actual_type = get_unpadded_type (Etype (gnat_actual));
        tree gnu_actual = gnu_name;
  
        /* If atomic access is required for an In or In Out actual parameter,
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4996,5003 ****
  	 So do it here for the part we will use as an input, if any.  */
        if (Ekind (gnat_formal) != E_Out_Parameter
  	  && TYPE_IS_PADDING_P (TREE_TYPE (gnu_actual)))
! 	gnu_actual
! 	  = convert (get_unpadded_type (Etype (gnat_actual)), gnu_actual);
  
        /* Put back the conversion we suppressed above in the computation of the
  	 real object.  And even if we didn't suppress any conversion there, we
--- 5102,5108 ----
  	 So do it here for the part we will use as an input, if any.  */
        if (Ekind (gnat_formal) != E_Out_Parameter
  	  && TYPE_IS_PADDING_P (TREE_TYPE (gnu_actual)))
! 	gnu_actual = convert (gnu_unpadded_actual_type, gnu_actual);
  
        /* Put back the conversion we suppressed above in the computation of the
  	 real object.  And even if we didn't suppress any conversion there, we
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5007,5018 ****
  	 pointer to it, but that's OK when the formal is passed by reference.
  	 We also do not put back a conversion between an actual and a formal
  	 that are unconstrained array types to avoid creating local bounds.  */
!       tree gnu_actual_type = get_unpadded_type (Etype (gnat_actual));
!       if (TYPE_IS_DUMMY_P (gnu_actual_type))
  	gcc_assert (is_true_formal_parm && DECL_BY_REF_P (gnu_formal));
        else if (suppress_type_conversion
  	       && Nkind (gnat_actual) == N_Unchecked_Type_Conversion)
! 	gnu_actual = unchecked_convert (gnu_actual_type, gnu_actual,
  				        No_Truncation (gnat_actual));
        else if ((TREE_CODE (TREE_TYPE (gnu_actual)) == UNCONSTRAINED_ARRAY_TYPE
  		|| (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
--- 5112,5122 ----
  	 pointer to it, but that's OK when the formal is passed by reference.
  	 We also do not put back a conversion between an actual and a formal
  	 that are unconstrained array types to avoid creating local bounds.  */
!       if (TYPE_IS_DUMMY_P (gnu_unpadded_actual_type))
  	gcc_assert (is_true_formal_parm && DECL_BY_REF_P (gnu_formal));
        else if (suppress_type_conversion
  	       && Nkind (gnat_actual) == N_Unchecked_Type_Conversion)
! 	gnu_actual = unchecked_convert (gnu_unpadded_actual_type, gnu_actual,
  				        No_Truncation (gnat_actual));
        else if ((TREE_CODE (TREE_TYPE (gnu_actual)) == UNCONSTRAINED_ARRAY_TYPE
  		|| (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5020,5026 ****
  	       && TREE_CODE (gnu_formal_type) == UNCONSTRAINED_ARRAY_TYPE)
  	;
        else
! 	gnu_actual = convert (gnu_actual_type, gnu_actual);
  
        gigi_checking_assert (!Do_Range_Check (gnat_actual));
  
--- 5124,5139 ----
  	       && TREE_CODE (gnu_formal_type) == UNCONSTRAINED_ARRAY_TYPE)
  	;
        else
! 	gnu_actual = convert (gnu_unpadded_actual_type, gnu_actual);
! 
!       /* If the formal parameter is passed by reference, check that building
! 	 the address of the actual parameter below will not end up violating
! 	 strict aliasing rules; that's the case for a VIEW_CONVERT_EXPR when
! 	 the source and target types may not alias each other.  */
!       if (is_by_ref_formal_parm
! 	  && TREE_CODE (gnu_actual) == VIEW_CONVERT_EXPR
! 	  && (flag_checking || flag_strict_aliasing))
! 	gcc_assert (aliasable_p (gnu_actual, gnu_actual_type));
  
        gigi_checking_assert (!Do_Range_Check (gnat_actual));
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5036,5043 ****
  
  	      /* If we have a padded type, be sure we've removed padding.  */
  	      if (TYPE_IS_PADDING_P (TREE_TYPE (gnu_actual)))
! 		gnu_actual = convert (get_unpadded_type (Etype (gnat_actual)),
! 				      gnu_actual);
  
  	      /* If it is the constructed subtype of an array allocated with
  		 its bounds, the type of the actual includes the template,
--- 5149,5155 ----
  
  	      /* If we have a padded type, be sure we've removed padding.  */
  	      if (TYPE_IS_PADDING_P (TREE_TYPE (gnu_actual)))
! 		gnu_actual = convert (gnu_unpadded_actual_type, gnu_actual);
  
  	      /* If it is the constructed subtype of an array allocated with
  		 its bounds, the type of the actual includes the template,
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5047,5053 ****
  	      if (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
  		  && TYPE_CONTAINS_TEMPLATE_P (TREE_TYPE (gnu_actual))
  		  && Is_Constr_Array_Subt_With_Bounds (Etype (gnat_actual)))
! 		gnu_actual = convert (gnu_actual_type, gnu_actual);
  	    }
  
  	  /* There is no need to convert the actual to the formal's type before
--- 5159,5165 ----
  	      if (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
  		  && TYPE_CONTAINS_TEMPLATE_P (TREE_TYPE (gnu_actual))
  		  && Is_Constr_Array_Subt_With_Bounds (Etype (gnat_actual)))
! 		gnu_actual = convert (gnu_unpadded_actual_type, gnu_actual);
  	    }
  
  	  /* There is no need to convert the actual to the formal's type before
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5058,5064 ****
  	      /* Put back the conversion we suppressed above for In Out or Out
  		 parameters, since it may set the bounds of the actual.  */
  	      if (!in_param && suppress_type_conversion)
! 		gnu_actual = convert (gnu_actual_type, gnu_actual);
  	      gnu_actual = convert (gnu_formal_type, gnu_actual);
  	    }
  
--- 5170,5176 ----
  	      /* Put back the conversion we suppressed above for In Out or Out
  		 parameters, since it may set the bounds of the actual.  */
  	      if (!in_param && suppress_type_conversion)
! 		gnu_actual = convert (gnu_unpadded_actual_type, gnu_actual);
  	      gnu_actual = convert (gnu_formal_type, gnu_actual);
  	    }
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5405,5414 ****
  
  	  gigi_checking_assert (!Do_Range_Check (gnat_node));
  
  	  /* ??? If the return type has variable size, then force the return
  	     slot optimization as we would not be able to create a temporary.
  	     That's what has been done historically.  */
! 	  if (return_type_with_variable_size_p (gnu_result_type))
  	    op_code = INIT_EXPR;
  
  	  /* If this is a call to a pure function returning an array of scalar
--- 5517,5533 ----
  
  	  gigi_checking_assert (!Do_Range_Check (gnat_node));
  
+ 	  /* If the parent is an initialization statement, we can use the
+ 	     return slot optimization.  */
+ 	  if (Nkind (gnat_parent) == N_Assignment_Statement
+ 	      && (No_Ctrl_Actions (gnat_parent)
+ 		  || No_Finalize_Actions (gnat_parent)))
+ 	    op_code = INIT_EXPR;
+ 
  	  /* ??? If the return type has variable size, then force the return
  	     slot optimization as we would not be able to create a temporary.
  	     That's what has been done historically.  */
! 	  else if (return_type_with_variable_size_p (gnu_result_type))
  	    op_code = INIT_EXPR;
  
  	  /* If this is a call to a pure function returning an array of scalar
*************** Handled_Sequence_Of_Statements_to_gnu (N
*** 5562,5567 ****
--- 5681,5709 ----
  	set_expr_location_from_node (gnu_result, gnat_node, true);
      }
  
+   if (Present (Finally_Statements (gnat_node)))
+     {
+       tree finally_stmts;
+       location_t locus;
+ 
+       start_stmt_group ();
+       for (gnat_temp = First_Non_Pragma (Finally_Statements (gnat_node));
+            Present (gnat_temp);
+            gnat_temp = Next_Non_Pragma (gnat_temp))
+         add_stmt (gnat_to_gnu (gnat_temp));
+       finally_stmts = end_stmt_group ();
+ 
+       gnu_result
+         = build2 (TRY_FINALLY_EXPR, void_type_node, gnu_result, finally_stmts);
+ 
+       /* Do as above for the TRY_CATCH_EXPR case.  */
+       if (Present (End_Label (gnat_node))
+           && Sloc_to_locus (Sloc (End_Label (gnat_node)), &locus))
+         SET_EXPR_LOCATION (gnu_result, locus);
+       else
+         set_expr_location_from_node (gnu_result, gnat_node, true);
+     }
+ 
    /* Process the At_End_Proc, if any.  */
    if (at_end)
      {
*************** Compilation_Unit_to_gnu (Node_Id gnat_no
*** 5833,5839 ****
    for (gnat_pragma = First (Context_Items (gnat_node));
         Present (gnat_pragma);
         gnat_pragma = Next (gnat_pragma))
!     if (Nkind (gnat_pragma) == N_Pragma)
        add_stmt (gnat_to_gnu (gnat_pragma));
    process_decls (Declarations (Aux_Decls_Node (gnat_node)), Empty,
  		 true, true);
--- 5975,5983 ----
    for (gnat_pragma = First (Context_Items (gnat_node));
         Present (gnat_pragma);
         gnat_pragma = Next (gnat_pragma))
!     if (Nkind (gnat_pragma) == N_Pragma
! 	|| Nkind (gnat_pragma) == N_With_Clause
! 	|| Nkind (gnat_pragma) == N_Use_Package_Clause)
        add_stmt (gnat_to_gnu (gnat_pragma));
    process_decls (Declarations (Aux_Decls_Node (gnat_node)), Empty,
  		 true, true);
*************** Raise_Error_to_gnu (Node_Id gnat_node, t
*** 6029,6035 ****
--- 6173,6184 ----
  	      gnu_index = convert (gnu_type, gnu_index);
  	    }
  
+ 	  /* Do not print the range information for an enumeration type with
+ 	     holes since it is meaningless.  */
  	  if (with_extra_info
+ 	      && !(Nkind (gnat_index) == N_Function_Call
+ 		   && Is_Entity_Name (Name (gnat_index))
+ 		   && Is_Rep_To_Pos (Entity (Name (gnat_index))))
  	      && Known_Esize (gnat_type)
  	      && UI_To_Int (Esize (gnat_type)) <= 32)
  	    gnu_result
*************** statement_node_p (Node_Id gnat_node)
*** 6223,6228 ****
--- 6372,6475 ----
    return false;
  }
  
+ /* Get or create the namespace NAME.  FULL_NAME is the full name of
+    the namespace, for instance "outer__inner" -- this is needed
+    because there's only a single level hash table storing all
+    namespaces.  GNAT_NODE is used for context and passed to
+    gnat_pushdecl.  GNU_CONTEXT is the outer namespace, or NULL_TREE if
+    there is not one.  */
+ 
+ static tree
+ get_or_create_namespace (const char *name, const char *full_name,
+ 			 Node_Id gnat_node, tree gnu_context)
+ {
+   if (namespace_map == nullptr)
+     namespace_map = hash_map<tree, tree>::create_ggc ();
+   tree full_id = get_identifier (full_name);
+   tree *value = namespace_map->get (full_id);
+   if (value != nullptr)
+     return *value;
+ 
+   tree id = get_identifier (name);
+   tree result = build_decl (input_location, NAMESPACE_DECL, id,
+ 			    void_type_node);
+   namespace_map->put (full_id, result);
+   gnat_pushdecl (result, gnat_node);
+   DECL_CONTEXT (result) = gnu_context;
+   return result;
+ }
+ 
+ /* Create namespace decls from GNAT_NAME.  GNAT_NODE is used for
+    context and passed to gnat_pushdecl, if a new namespace decl is
+    created.  GNAT_NAME can be a fully-qualified series of namespaces
+    (e.g., "outer__inner"); the innermost decl is returned.
+ 
+    If GNU_ORIG is non-NULL, then the new namespace will be a renaming
+    of GNU_ORIG.  That is, the final "namespace" created will actually
+    be an IMPORTED_DECL rather than a NAMESPACE_DECL.  */
+ 
+ static tree
+ get_namespace (Node_Id gnat_name, Node_Id gnat_node, tree gnu_orig = NULL_TREE)
+ {
+   if (Is_Entity_Name (gnat_name))
+     gnat_name = Entity (gnat_name);
+ 
+   gcc_assert (Nkind (gnat_name) == N_Defining_Identifier);
+ 
+   if (Ekind (gnat_name) == E_Void)
+     return NULL_TREE;
+ 
+   /* This loop takes an encoded name and then successively handles
+      prefixes, making a namespace decl for each one.  E.g., for
+      "outer__middle__inner", it will first handle "outer", then
+      "outer__middle" (creating the namespace "middle" with a
+      DECL_CONTEXT of "outer"), and then finally
+      "outer__middle__inner".  FULL_STR always points to the start of
+      the name, while STR points to just the final component.  */
+   char *str = Get_Name_String (Chars (gnat_name));
+   const char *full_str = str;
+   tree outer = NULL_TREE;
+   tree result = NULL_TREE;
+   while (str != nullptr)
+     {
+       char *delim = strstr (str, "__");
+       if (delim != nullptr)
+ 	*delim = '\0';
+ 
+       size_t len = strlen (str);
+       char *e_ptr = nullptr;
+       if (len > 2 && strcmp (str + len - 2, "_E") == 0)
+ 	{
+ 	  e_ptr = str + len - 2;
+ 	  *e_ptr = '\0';
+ 	}
+ 
+       outer = result;
+       if (delim == nullptr && gnu_orig != NULL_TREE)
+ 	{
+ 	  result = build_decl (input_location, IMPORTED_DECL,
+ 			       get_identifier (str), void_type_node);
+ 	  IMPORTED_DECL_ASSOCIATED_DECL (result) = gnu_orig;
+ 	}
+       else
+ 	result = get_or_create_namespace (str, full_str, gnat_node, outer);
+ 
+       /* Restore the text.  */
+       if (e_ptr != nullptr)
+ 	*e_ptr = '_';
+       if (delim == nullptr)
+ 	str = nullptr;
+       else
+ 	{
+ 	  *delim = '_';
+ 	  str = delim + 2;
+ 	}
+     }
+ 
+   return result;
+ }
+ 
+ 
  /* This function is the driver of the GNAT to GCC tree transformation process.
     It is the entry point of the tree transformer.  GNAT_NODE is the root of
     some GNAT tree.  Return the root of the corresponding GCC tree.  If this
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6306,6311 ****
--- 6553,6569 ----
  	gnu_result = build_atomic_load (gnu_result, aa_sync);
        break;
  
+     case N_External_Initializer:
+       {
+ 	gnu_result_type = get_unpadded_type (Etype (gnat_node));
+ 	struct c_array a = C_Source_Buffer (File_Index (gnat_node));
+ 
+ 	gnu_result = build_string ((unsigned) a.length, a.pointer);
+ 
+ 	TREE_TYPE (gnu_result) = gnu_result_type;
+       }
+       break;
+ 
      case N_Integer_Literal:
        {
  	tree gnu_type;
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6646,6655 ****
        break;
  
      case N_Package_Renaming_Declaration:
!       /* These are fully handled in the front end.  */
!       /* ??? For package renamings, find a way to use GENERIC namespaces so
! 	 that we get proper debug information for them.  */
!       gnu_result = alloc_stmt_list ();
        break;
  
      /*************************************/
--- 6904,6920 ----
        break;
  
      case N_Package_Renaming_Declaration:
!       if (gnat_encodings == DWARF_GNAT_ENCODINGS_ALL)
! 	gnu_result = alloc_stmt_list ();
!       else
! 	{
! 	  tree orig_ns = get_namespace (Entity (Name (gnat_node)),
! 					Name (gnat_node));
! 	  Node_Id name = Defining_Unit_Name (gnat_node);
! 	  if (Nkind (name) == N_Defining_Program_Unit_Name)
! 	    name = Defining_Identifier (name);
! 	  gnu_result = get_namespace (name, gnat_node, orig_ns);
! 	}
        break;
  
      /*************************************/
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7233,7238 ****
--- 7498,7520 ----
  	  gnu_result
  	    = build_binary_op_trapv (code, gnu_type, gnu_lhs, gnu_rhs,
  				     gnat_node);
+ 
+ 	  /* For an unsigned modulo operation with nonbinary constant modulus,
+ 	     we first try to do a reduction by means of a (multiplier, shifter)
+ 	     pair in the needed precision up to the word size.  But not when
+ 	     optimizing for size, because it will be longer than a div+mul+sub
+ 	     sequence.  */
+ 	else if (!optimize_size
+ 		 && (code == FLOOR_MOD_EXPR || code == TRUNC_MOD_EXPR)
+ 		 && TYPE_UNSIGNED (gnu_type)
+ 		 && TYPE_PRECISION (gnu_type) <= BITS_PER_WORD
+ 		 && TREE_CODE (gnu_rhs) == INTEGER_CST
+ 		 && !integer_pow2p (gnu_rhs)
+ 		 && (gnu_expr
+ 		     = fast_modulo_reduction (gnu_lhs, gnu_rhs,
+ 					      TYPE_PRECISION (gnu_type))))
+ 	  gnu_result = gnu_expr;
+ 
  	else
  	  {
  	    /* Some operations, e.g. comparisons of arrays, generate complex
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7536,7541 ****
--- 7818,7829 ----
  		    = build_unary_op (ADDR_EXPR, TREE_TYPE (arg), gnu_lhs);
  		}
  
+ 	      /* If the statement is an initialization, build one too.  */
+               else if (No_Ctrl_Actions (gnat_node)
+ 		       || No_Finalize_Actions (gnat_node))
+ 		gnu_result
+ 		  = build_binary_op (INIT_EXPR, NULL_TREE, gnu_lhs, gnu_rhs);
+ 
  	      /* Otherwise build a regular assignment.  */
  	      else
  		gnu_result
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7738,7748 ****
  		gnu_result = build2 (INIT_EXPR, void_type_node,
  				     gnu_ret_deref, gnu_ret_val);
  		/* Avoid a useless copy with __builtin_return_slot.  */
! 		if (INDIRECT_REF_P (gnu_ret_val))
  		  gnu_result
  		    = build3 (COND_EXPR, void_type_node,
  			      fold_build2 (NE_EXPR, boolean_type_node,
! 					   TREE_OPERAND (gnu_ret_val, 0),
  					   gnu_ret_obj),
  			      gnu_result, NULL_TREE);
  		add_stmt_with_node (gnu_result, gnat_node);
--- 8026,8037 ----
  		gnu_result = build2 (INIT_EXPR, void_type_node,
  				     gnu_ret_deref, gnu_ret_val);
  		/* Avoid a useless copy with __builtin_return_slot.  */
! 		tree gnu_inner_val = remove_conversions (gnu_ret_val, false);
! 		if (INDIRECT_REF_P (gnu_inner_val))
  		  gnu_result
  		    = build3 (COND_EXPR, void_type_node,
  			      fold_build2 (NE_EXPR, boolean_type_node,
! 					   TREE_OPERAND (gnu_inner_val, 0),
  					   gnu_ret_obj),
  			      gnu_result, NULL_TREE);
  		add_stmt_with_node (gnu_result, gnat_node);
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7895,7900 ****
--- 8184,8201 ----
      /********************************/
  
      case N_Use_Package_Clause:
+       if (gnat_encodings == DWARF_GNAT_ENCODINGS_ALL)
+ 	gnu_result = alloc_stmt_list ();
+       else
+ 	{
+ 	  tree ns = get_namespace (Name (gnat_node), gnat_node);
+ 	  gnu_result = build_decl (input_location, IMPORTED_DECL,
+ 				   nullptr, void_type_node);
+ 	  IMPORTED_DECL_ASSOCIATED_DECL (gnu_result) = ns;
+ 	  gnat_pushdecl (gnu_result, gnat_node);
+ 	}
+       break;
+ 
      case N_Use_Type_Clause:
        /* Nothing to do here - but these may appear in list of declarations.  */
        gnu_result = alloc_stmt_list ();
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7950,7955 ****
--- 8251,8265 ----
  	}
        break;
  
+     case N_With_Clause:
+       if (gnat_encodings == DWARF_GNAT_ENCODINGS_ALL
+ 	  || Is_Implicit_With (gnat_node)
+ 	  || Limited_Present (gnat_node))
+ 	gnu_result = alloc_stmt_list ();
+       else
+ 	gnu_result = get_namespace (Name (gnat_node), gnat_node);
+       break;
+ 
      /***************************/
      /* Chapter 11: Exceptions  */
      /***************************/
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8472,8478 ****
  	  return slot optimization in this case.
  
         5. If this is a reference to an unconstrained array which is used either
! 	  as the prefix of an attribute reference that requires an lvalue or in
  	  a return statement without storage pool, return the result unmodified
  	  because we want to return the original bounds.
  
--- 8782,8788 ----
  	  return slot optimization in this case.
  
         5. If this is a reference to an unconstrained array which is used either
! 	  as the prefix of an attribute reference for an access attribute or in
  	  a return statement without storage pool, return the result unmodified
  	  because we want to return the original bounds.
  
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8539,8545 ****
    else if (TREE_CODE (TREE_TYPE (gnu_result)) == UNCONSTRAINED_ARRAY_TYPE
  	   && Present (Parent (gnat_node))
  	   && ((Nkind (Parent (gnat_node)) == N_Attribute_Reference
! 	        && lvalue_required_for_attribute_p (Parent (gnat_node)))
  	       || (Nkind (Parent (gnat_node)) == N_Simple_Return_Statement
  		   && No (Storage_Pool (Parent (gnat_node))))))
      ;
--- 8849,8855 ----
    else if (TREE_CODE (TREE_TYPE (gnu_result)) == UNCONSTRAINED_ARRAY_TYPE
  	   && Present (Parent (gnat_node))
  	   && ((Nkind (Parent (gnat_node)) == N_Attribute_Reference
! 	        && access_attribute_p (Parent (gnat_node)))
  	       || (Nkind (Parent (gnat_node)) == N_Simple_Return_Statement
  		   && No (Storage_Pool (Parent (gnat_node))))))
      ;
*************** elaborate_all_entities_for_package (Enti
*** 9236,9241 ****
--- 9546,9555 ----
        if (kind == E_Package_Body)
  	continue;
  
+       /* Skip subprogram bodies.  */
+       if (kind == E_Subprogram_Body)
+ 	continue;
+ 
        /* Skip limited views that point back to the main unit.  */
        if (IN (kind, Incomplete_Kind)
  	  && From_Limited_With (gnat_entity)
*************** elaborate_all_entities (Node_Id gnat_nod
*** 9276,9282 ****
    if (!present_gnu_tree (gnat_node))
       save_gnu_tree (gnat_node, integer_zero_node, true);
  
!   /* Save entities in all context units.  A body may have an implicit_with
       on its own spec, if the context includes a child unit, so don't save
       the spec twice.  */
    for (gnat_with_clause = First (Context_Items (gnat_node));
--- 9590,9596 ----
    if (!present_gnu_tree (gnat_node))
       save_gnu_tree (gnat_node, integer_zero_node, true);
  
!   /* Save entities in all context units.  A body may have an implicit with
       on its own spec, if the context includes a child unit, so don't save
       the spec twice.  */
    for (gnat_with_clause = First (Context_Items (gnat_node));
*************** process_freeze_entity (Node_Id gnat_node
*** 9342,9347 ****
--- 9656,9665 ----
    if (Is_Subprogram (gnat_entity) && Present (Interface_Alias (gnat_entity)))
      return;
  
+   /* Skip subprogram bodies.  */
+   if (kind == E_Subprogram_Body)
+     return;
+ 
    /* Check for an old definition if this isn't an object with address clause,
       since the saved GCC tree is the address expression in that case.  */
    gnu_old
*************** process_decls (List_Id gnat_decls, List_
*** 9487,9495 ****
  	  {
  	    /* For package specs, we recurse inside the declarations,
  	       thus taking the two pass approach inside the boundary.  */
! 	    if (Nkind (gnat_decl) == N_Package_Declaration
! 		&& (Nkind (Specification (gnat_decl)
! 			   == N_Package_Specification)))
  	      process_decls (Visible_Declarations (Specification (gnat_decl)),
  			     Private_Declarations (Specification (gnat_decl)),
  			     true, false);
--- 9805,9811 ----
  	  {
  	    /* For package specs, we recurse inside the declarations,
  	       thus taking the two pass approach inside the boundary.  */
! 	    if (Nkind (gnat_decl) == N_Package_Declaration)
  	      process_decls (Visible_Declarations (Specification (gnat_decl)),
  			     Private_Declarations (Specification (gnat_decl)),
  			     true, false);
*************** process_decls (List_Id gnat_decls, List_
*** 9575,9583 ****
  		|| Nkind (gnat_decl) == N_Protected_Body_Stub)
  	      add_stmt (gnat_to_gnu (gnat_decl));
  
! 	    else if (Nkind (gnat_decl) == N_Package_Declaration
! 		     && (Nkind (Specification (gnat_decl)
! 				== N_Package_Specification)))
  	      process_decls (Visible_Declarations (Specification (gnat_decl)),
  			     Private_Declarations (Specification (gnat_decl)),
  			     false, true);
--- 9891,9897 ----
  		|| Nkind (gnat_decl) == N_Protected_Body_Stub)
  	      add_stmt (gnat_to_gnu (gnat_decl));
  
! 	    else if (Nkind (gnat_decl) == N_Package_Declaration)
  	      process_decls (Visible_Declarations (Specification (gnat_decl)),
  			     Private_Declarations (Specification (gnat_decl)),
  			     false, true);
*************** convert_with_check (Entity_Id gnat_type,
*** 10035,10041 ****
    return convert (gnu_type, gnu_result);
  }
  
! /* Return true if GNU_EXPR can be directly addressed.  This is the case
     unless it is an expression involving computation or if it involves a
     reference to a bitfield or to an object not sufficiently aligned for
     its type.  If GNU_TYPE is non-null, return true only if GNU_EXPR can
--- 10349,10355 ----
    return convert (gnu_type, gnu_result);
  }
  
! /* Return true if GNU_EXPR may be directly addressed.  This is the case
     unless it is an expression involving computation or if it involves a
     reference to a bitfield or to an object not sufficiently aligned for
     its type.  If GNU_TYPE is non-null, return true only if GNU_EXPR can
*************** addressable_p (tree gnu_expr, tree gnu_t
*** 10170,10181 ****
  		/* Even with DECL_BIT_FIELD cleared, we have to ensure that
  		   the field is sufficiently aligned, in case it is subject
  		   to a pragma Component_Alignment.  But we don't need to
! 		   check the alignment of the containing record, as it is
! 		   guaranteed to be not smaller than that of its most
! 		   aligned field that is not a bit-field.  */
! 		&& (!STRICT_ALIGNMENT
! 		    || DECL_ALIGN (TREE_OPERAND (gnu_expr, 1))
! 		       >= TYPE_ALIGN (TREE_TYPE (gnu_expr))))
  	       /* The field of a padding record is always addressable.  */
  	       || TYPE_IS_PADDING_P (TREE_TYPE (TREE_OPERAND (gnu_expr, 0))))
  	      && addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE));
--- 10484,10501 ----
  		/* Even with DECL_BIT_FIELD cleared, we have to ensure that
  		   the field is sufficiently aligned, in case it is subject
  		   to a pragma Component_Alignment.  But we don't need to
! 		   check the alignment of the containing record, since it
! 		   is guaranteed to be not smaller than that of its most
! 		   aligned field that is not a bit-field.  However, we need
! 		   to cope with quirks of ABIs that may misalign fields.  */
! 		&& (DECL_ALIGN (TREE_OPERAND (gnu_expr, 1))
! 		    >= default_field_alignment (TREE_OPERAND (gnu_expr, 1),
! 						TREE_TYPE (gnu_expr))
! 		    /* We do not enforce this on strict-alignment platforms for
! 		       internal fields in order to keep supporting misalignment
! 		       of tagged types in legacy code.  */
! 		    || (!STRICT_ALIGNMENT
! 			&& DECL_INTERNAL_P (TREE_OPERAND (gnu_expr, 1)))))
  	       /* The field of a padding record is always addressable.  */
  	       || TYPE_IS_PADDING_P (TREE_TYPE (TREE_OPERAND (gnu_expr, 0))))
  	      && addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE));
*************** addressable_p (tree gnu_expr, tree gnu_t
*** 10191,10197 ****
  
      case VIEW_CONVERT_EXPR:
        {
! 	/* This is addressable if we can avoid a copy.  */
  	tree type = TREE_TYPE (gnu_expr);
  	tree inner_type = TREE_TYPE (TREE_OPERAND (gnu_expr, 0));
  	return (((TYPE_MODE (type) == TYPE_MODE (inner_type)
--- 10511,10517 ----
  
      case VIEW_CONVERT_EXPR:
        {
! 	/* This is addressable only if a copy need not be made downstream.  */
  	tree type = TREE_TYPE (gnu_expr);
  	tree inner_type = TREE_TYPE (TREE_OPERAND (gnu_expr, 0));
  	return (((TYPE_MODE (type) == TYPE_MODE (inner_type)
*************** addressable_p (tree gnu_expr, tree gnu_t
*** 10213,10218 ****
--- 10533,10577 ----
      }
  }
  
+ /* Return true if GNU_EXPR may be aliased by an object of GNU_TYPE in the
+    context of by-reference parameter passing.  This is the case when the
+    object (ultimately) referenced through GNU_EXPR has a type whose alias
+    set is either effectively 0, or equal to, or a subset of the alias set
+    of GNU_TYPE.
+ 
+    When the predicate returns true, it is possible to take the address of
+    GNU_EXPR without violating strict aliasing rules.  When it does not, no
+    such guarantee holds, so a temporary with GNU_TYPE needs to be created
+    and its address passed instead (provided that this be legal of course).  */
+ 
+ static bool
+ aliasable_p (tree gnu_expr, tree gnu_type)
+ {
+   /* This is the source of the possible violation: taking the address of an
+      object in a type that does not correspond to its declared type.  */
+   if (TREE_CODE (gnu_expr) == VIEW_CONVERT_EXPR)
+     gnu_expr = TREE_OPERAND (gnu_expr, 0);
+ 
+   /* Work around get_deref_alias_set and alias_set_subset_of being disabled
+      when flag_strict_aliasing is 0.  */
+   const bool saved_flag_strict_aliasing = flag_strict_aliasing;
+ 
+   flag_strict_aliasing = 1;
+ 
+   /* Call get_deref_alias_set to catch ref-all and void* pointers.  */
+   const alias_set_type set1
+     = TREE_CODE (gnu_expr) == INDIRECT_REF
+       ? get_deref_alias_set (TREE_OPERAND (gnu_expr, 0))
+       : get_alias_set (TREE_TYPE (gnu_expr));
+   const alias_set_type set2 = get_alias_set (gnu_type);
+ 
+   bool ret = set1 == 0 || set1 == set2 || alias_set_subset_of (set1, set2);
+ 
+   flag_strict_aliasing = saved_flag_strict_aliasing;
+ 
+   return ret;
+ }
+ 
  /* Do the processing for the declaration of a GNAT_ENTITY, a type or subtype.
     If a Freeze node exists for the entity, delay the bulk of the processing.
     Otherwise make a GCC type for GNAT_ENTITY and set up the correspondence.  */
*************** validate_unchecked_conversion (Node_Id g
*** 10478,10486 ****
  	{
  	  post_error_ne ("??possible aliasing problem for type&",
  			 gnat_node, Target_Type (gnat_node));
! 	  post_error ("\\?use -fno-strict-aliasing switch for references",
  		      gnat_node);
! 	  post_error_ne ("\\?or use `pragma No_Strict_Aliasing (&);`",
  			 gnat_node, Target_Type (gnat_node));
  	}
      }
--- 10837,10845 ----
  	{
  	  post_error_ne ("??possible aliasing problem for type&",
  			 gnat_node, Target_Type (gnat_node));
! 	  post_error ("\\??use -fno-strict-aliasing switch for references",
  		      gnat_node);
! 	  post_error_ne ("\\??or use `pragma No_Strict_Aliasing (&);`",
  			 gnat_node, Target_Type (gnat_node));
  	}
      }
*************** validate_unchecked_conversion (Node_Id g
*** 10504,10510 ****
  	{
  	  post_error_ne ("??possible aliasing problem for type&",
  			 gnat_node, Target_Type (gnat_node));
! 	  post_error ("\\?use -fno-strict-aliasing switch for references",
  		      gnat_node);
  	}
      }
--- 10863,10869 ----
  	{
  	  post_error_ne ("??possible aliasing problem for type&",
  			 gnat_node, Target_Type (gnat_node));
! 	  post_error ("\\??use -fno-strict-aliasing switch for references",
  		      gnat_node);
  	}
      }
*************** maybe_make_gnu_thunk (Entity_Id gnat_thu
*** 10969,10974 ****
--- 11328,11343 ----
    tree gnu_interface_offset
      = gnu_interface_tag ? byte_position (gnu_interface_tag) : NULL_TREE;
  
+   /* But we generate a call to the Thunk_Entity in the thunk.  */
+   tree gnu_target
+     = gnat_to_gnu_entity (Thunk_Entity (gnat_thunk), NULL_TREE, false);
+ 
+   /* If the target is local, then thunk and target must have the same context
+      because cgraph_node::expand_thunk can only forward the static chain.  */
+   if (DECL_STATIC_CHAIN (gnu_target)
+       && DECL_CONTEXT (gnu_thunk) != DECL_CONTEXT (gnu_target))
+     return false;
+ 
    /* There are three ways to retrieve the offset between the interface view
       and the base object.  Either the controlling type covers the interface
       type and the offset of the corresponding tag is fixed, in which case it
*************** maybe_make_gnu_thunk (Entity_Id gnat_thu
*** 10987,10992 ****
--- 11356,11370 ----
        virtual_value = 0;
        virtual_offset = NULL_TREE;
        indirect_offset = 0;
+ 
+       /* Do not create a null thunk, instead make it an alias.  */
+       if (fixed_offset == 0)
+ 	{
+ 	  SET_DECL_ASSEMBLER_NAME (gnu_thunk, DECL_ASSEMBLER_NAME (gnu_target));
+ 	  (void) cgraph_node::get_create (gnu_target);
+ 	  (void) cgraph_node::create_alias (gnu_thunk, gnu_target);
+ 	  return true;
+ 	}
      }
    else if (!gnu_interface_offset
  	   && !Is_Variable_Size_Record (gnat_controlling_type))
*************** maybe_make_gnu_thunk (Entity_Id gnat_thu
*** 11008,11023 ****
        indirect_offset = (HOST_WIDE_INT) (POINTER_SIZE / BITS_PER_UNIT);
      }
  
-   /* But we generate a call to the Thunk_Entity in the thunk.  */
-   tree gnu_target
-     = gnat_to_gnu_entity (Thunk_Entity (gnat_thunk), NULL_TREE, false);
- 
-   /* If the target is local, then thunk and target must have the same context
-      because cgraph_node::expand_thunk can only forward the static chain.  */
-   if (DECL_STATIC_CHAIN (gnu_target)
-       && DECL_CONTEXT (gnu_thunk) != DECL_CONTEXT (gnu_target))
-     return false;
- 
    /* If the target returns by invisible reference and is external, apply the
       same transformation as Subprogram_Body_to_gnu here.  */
    if (TREE_ADDRESSABLE (TREE_TYPE (gnu_target))
--- 11386,11391 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/utils.cc gcc-15.1.0/gcc/ada/gcc-interface/utils.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/utils.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/utils.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** static tree handle_malloc_attribute (tre
*** 107,112 ****
--- 107,113 ----
  static tree handle_type_generic_attribute (tree *, tree, tree, int, bool *);
  static tree handle_flatten_attribute (tree *, tree, tree, int, bool *);
  static tree handle_used_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_uninitialized_attribute (tree *, tree, tree, int, bool *);
  static tree handle_cold_attribute (tree *, tree, tree, int, bool *);
  static tree handle_hot_attribute (tree *, tree, tree, int, bool *);
  static tree handle_simd_attribute (tree *, tree, tree, int, bool *);
*************** static const attribute_spec gnat_interna
*** 214,219 ****
--- 215,222 ----
      handle_flatten_attribute, NULL },
    { "used",         0, 0,  true,  false, false, false,
      handle_used_attribute, NULL },
+   { "uninitialized",0, 0,  true,  false, false, false,
+     handle_uninitialized_attribute, NULL },
    { "cold",         0, 0,  true,  false, false, false,
      handle_cold_attribute, attr_cold_hot_exclusions },
    { "hot",          0, 0,  true,  false, false, false,
*************** struct pad_type_hasher : ggc_cache_ptr_h
*** 364,369 ****
--- 367,392 ----
  
  static GTY ((cache)) hash_table<pad_type_hasher> *pad_type_hash_table;
  
+ struct GTY((for_user)) sized_type_hash
+ {
+   hashval_t hash;
+   tree type;
+ };
+ 
+ struct sized_type_hasher : ggc_cache_ptr_hash<sized_type_hash>
+ {
+   static inline hashval_t hash (sized_type_hash *t) { return t->hash; }
+   static bool equal (sized_type_hash *a, sized_type_hash *b);
+ 
+   static int
+   keep_cache_entry (sized_type_hash *&t)
+   {
+     return ggc_marked_p (t->type);
+   }
+ };
+ 
+ static GTY ((cache)) hash_table<sized_type_hasher> *sized_type_hash_table;
+ 
  static tree merge_sizes (tree, tree, tree, bool, bool);
  static tree fold_bit_position (const_tree);
  static tree compute_related_constant (tree, tree);
*************** init_gnat_utils (void)
*** 421,426 ****
--- 444,452 ----
  
    /* Initialize the hash table of padded types.  */
    pad_type_hash_table = hash_table<pad_type_hasher>::create_ggc (512);
+ 
+   /* Initialize the hash table of sized types.  */
+   sized_type_hash_table = hash_table<sized_type_hasher>::create_ggc (512);
  }
  
  /* Destroy data structures of the utils.cc module.  */
*************** destroy_gnat_utils (void)
*** 443,448 ****
--- 469,478 ----
    /* Destroy the hash table of padded types.  */
    pad_type_hash_table->empty ();
    pad_type_hash_table = NULL;
+ 
+   /* Destroy the hash table of sized types.  */
+   sized_type_hash_table->empty ();
+   sized_type_hash_table = NULL;
  }
  
  /* GNAT_ENTITY is a GNAT tree node for an entity.  Associate GNU_DECL, a GCC
*************** make_dummy_type (Entity_Id gnat_type)
*** 499,505 ****
    if (No (gnat_equiv))
      gnat_equiv = gnat_type;
  
!   /* If it there already a dummy type, use that one.  Else make one.  */
    if (PRESENT_DUMMY_NODE (gnat_equiv))
      return GET_DUMMY_NODE (gnat_equiv);
  
--- 529,535 ----
    if (No (gnat_equiv))
      gnat_equiv = gnat_type;
  
!   /* If there is already a dummy type, use that one.  Else make one.  */
    if (PRESENT_DUMMY_NODE (gnat_equiv))
      return GET_DUMMY_NODE (gnat_equiv);
  
*************** gnat_pushdecl (tree decl, Node_Id gnat_n
*** 852,867 ****
    if (!deferred_decl_context && !context)
      context = get_global_context ();
  
!   /* Functions imported in another function are not really nested.
!      For really nested functions mark them initially as needing
!      a static chain for uses of that flag before unnesting;
!      lower_nested_functions will then recompute it.  */
    if (TREE_CODE (decl) == FUNCTION_DECL
!       && !TREE_PUBLIC (decl)
        && context
        && (TREE_CODE (context) == FUNCTION_DECL
  	  || decl_function_context (context)))
!     DECL_STATIC_CHAIN (decl) = 1;
  
    if (!deferred_decl_context)
      DECL_CONTEXT (decl) = context;
--- 882,901 ----
    if (!deferred_decl_context && !context)
      context = get_global_context ();
  
!   /* Mark functions really nested in another function, that is to say defined
!      there as opposed to imported from elsewhere, as initially needing a static
!      chain for the sake of uniformity (lower_nested_functions will recompute it
!      exacly later) and as private to the translation unit (the static chain may
!      be clobbered by calling conventions used across translation units).  */
    if (TREE_CODE (decl) == FUNCTION_DECL
!       && !DECL_EXTERNAL (decl)
        && context
        && (TREE_CODE (context) == FUNCTION_DECL
  	  || decl_function_context (context)))
!     {
!       DECL_STATIC_CHAIN (decl) = 1;
!       TREE_PUBLIC (decl) = 0;
!     }
  
    if (!deferred_decl_context)
      DECL_CONTEXT (decl) = context;
*************** type_unsigned_for_rm (tree type)
*** 1350,1355 ****
--- 1384,1462 ----
    return false;
  }
  
+ /* Return true iff the sized types are equivalent.  */
+ 
+ bool
+ sized_type_hasher::equal (sized_type_hash *t1, sized_type_hash *t2)
+ {
+   tree type1, type2;
+ 
+   if (t1->hash != t2->hash)
+     return false;
+ 
+   type1 = t1->type;
+   type2 = t2->type;
+ 
+   /* We consider sized types equivalent if they have the same name,
+      size, alignment, RM size, and biasing.  The range is not expected
+      to vary across different-sized versions of the same base
+      type.  */
+   bool res
+     = (TYPE_NAME (type1) == TYPE_NAME (type2)
+        && TYPE_SIZE (type1) == TYPE_SIZE (type2)
+        && TYPE_ALIGN (type1) == TYPE_ALIGN (type2)
+        && TYPE_RM_SIZE (type1) == TYPE_RM_SIZE (type2)
+        && (TYPE_BIASED_REPRESENTATION_P (type1)
+ 	   == TYPE_BIASED_REPRESENTATION_P (type2)));
+ 
+   gcc_assert (!res
+ 	      || (TYPE_RM_MIN_VALUE (type1) == TYPE_RM_MIN_VALUE (type2)
+ 		  && TYPE_RM_MAX_VALUE (type1) == TYPE_RM_MAX_VALUE (type2)));
+ 
+   return res;
+ }
+ 
+ /* Compute the hash value for the sized TYPE.  */
+ 
+ static hashval_t
+ hash_sized_type (tree type)
+ {
+   hashval_t hashcode;
+ 
+   hashcode = iterative_hash_expr (TYPE_NAME (type), 0);
+   hashcode = iterative_hash_expr (TYPE_SIZE (type), hashcode);
+   hashcode = iterative_hash_hashval_t (TYPE_ALIGN (type), hashcode);
+   hashcode = iterative_hash_expr (TYPE_RM_SIZE (type), hashcode);
+   hashcode
+     = iterative_hash_hashval_t (TYPE_BIASED_REPRESENTATION_P (type), hashcode);
+ 
+   return hashcode;
+ }
+ 
+ /* Look up the sized TYPE in the hash table and return its canonical version
+    if it exists; otherwise, insert it into the hash table.  */
+ 
+ static tree
+ canonicalize_sized_type (tree type)
+ {
+   const hashval_t hashcode = hash_sized_type (type);
+   struct sized_type_hash in, *h, **slot;
+ 
+   in.hash = hashcode;
+   in.type = type;
+   slot = sized_type_hash_table->find_slot_with_hash (&in, hashcode, INSERT);
+   h = *slot;
+   if (!h)
+     {
+       h = ggc_alloc<sized_type_hash> ();
+       h->hash = hashcode;
+       h->type = type;
+       *slot = h;
+     }
+ 
+   return h->type;
+ }
+ 
  /* Given a type TYPE, return a new type whose size is appropriate for SIZE.
     If TYPE is the best type, return it.  Otherwise, make a new type.  We
     only support new integral and pointer types.  FOR_BIASED is true if
*************** make_type_from_size (tree type, tree siz
*** 1383,1388 ****
--- 1490,1500 ----
        biased_p = (TREE_CODE (type) == INTEGER_TYPE
  		  && TYPE_BIASED_REPRESENTATION_P (type));
  
+       /* FOR_BIASED initially refers to the entity's representation,
+ 	 not to its type's.  The type we're to return must take both
+ 	 into account.  */
+       for_biased |= biased_p;
+ 
        /* Integer types with precision 0 are forbidden.  */
        if (size == 0)
  	size = 1;
*************** make_type_from_size (tree type, tree siz
*** 1394,1405 ****
  	  || size > (Enable_128bit_Types ? 128 : LONG_LONG_TYPE_SIZE))
  	break;
  
-       biased_p |= for_biased;
- 
        /* The type should be an unsigned type if the original type is unsigned
  	 or if the lower bound is constant and non-negative or if the type is
  	 biased, see E_Signed_Integer_Subtype case of gnat_to_gnu_entity.  */
!       if (type_unsigned_for_rm (type) || biased_p)
  	new_type = make_unsigned_type (size);
        else
  	new_type = make_signed_type (size);
--- 1506,1515 ----
  	  || size > (Enable_128bit_Types ? 128 : LONG_LONG_TYPE_SIZE))
  	break;
  
        /* The type should be an unsigned type if the original type is unsigned
  	 or if the lower bound is constant and non-negative or if the type is
  	 biased, see E_Signed_Integer_Subtype case of gnat_to_gnu_entity.  */
!       if (type_unsigned_for_rm (type) || for_biased)
  	new_type = make_unsigned_type (size);
        else
  	new_type = make_signed_type (size);
*************** make_type_from_size (tree type, tree siz
*** 1409,1417 ****
        /* Copy the name to show that it's essentially the same type and
  	 not a subrange type.  */
        TYPE_NAME (new_type) = TYPE_NAME (type);
!       TYPE_BIASED_REPRESENTATION_P (new_type) = biased_p;
        SET_TYPE_RM_SIZE (new_type, bitsize_int (size));
!       return new_type;
  
      case RECORD_TYPE:
        /* Do something if this is a fat pointer, in which case we
--- 1519,1530 ----
        /* Copy the name to show that it's essentially the same type and
  	 not a subrange type.  */
        TYPE_NAME (new_type) = TYPE_NAME (type);
!       TYPE_BIASED_REPRESENTATION_P (new_type) = for_biased;
        SET_TYPE_RM_SIZE (new_type, bitsize_int (size));
! 
!       return (TYPE_NAME (new_type)
! 	      ? canonicalize_sized_type (new_type)
! 	      : new_type);
  
      case RECORD_TYPE:
        /* Do something if this is a fat pointer, in which case we
*************** relate_alias_sets (tree new_type, tree o
*** 1867,1874 ****
  		      && TYPE_NONALIASED_COMPONENT (new_type)
  			 != TYPE_NONALIASED_COMPONENT (old_type)));
  
!       /* The alias set always lives on the TYPE_CANONICAL.  */
!       TYPE_ALIAS_SET (TYPE_CANONICAL (new_type)) = get_alias_set (old_type);
        break;
  
      case ALIAS_SET_SUBSET:
--- 1980,1990 ----
  		      && TYPE_NONALIASED_COMPONENT (new_type)
  			 != TYPE_NONALIASED_COMPONENT (old_type)));
  
!       /* The alias set is a property of the TYPE_CANONICAL if it exists.  */
!       if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
! 	TYPE_ALIAS_SET (new_type) = get_alias_set (old_type);
!       else
! 	TYPE_ALIAS_SET (TYPE_CANONICAL (new_type)) = get_alias_set (old_type);
        break;
  
      case ALIAS_SET_SUBSET:
*************** record_builtin_type (const char *name, t
*** 1906,1911 ****
--- 2022,2029 ----
    tree type_decl = build_decl (input_location,
  			       TYPE_DECL, get_identifier (name), type);
    DECL_ARTIFICIAL (type_decl) = artificial_p;
+   DECL_NAMELESS (type_decl) = (artificial_p
+ 			       && gnat_encodings != DWARF_GNAT_ENCODINGS_ALL);
    TYPE_ARTIFICIAL (type) = artificial_p;
    gnat_pushdecl (type_decl, Empty);
  
*************** finish_fat_pointer_type (tree record_typ
*** 1999,2004 ****
--- 2117,2137 ----
    TYPE_CONTAINS_PLACEHOLDER_INTERNAL (record_type) = 2;
  }
  
+ /* Clear DECL_BIT_FIELD flag and associated markers on FIELD, which is a field
+    of aggregate type TYPE.  */
+ 
+ static void
+ clear_decl_bit_field (tree field, tree type)
+ {
+   DECL_BIT_FIELD (field) = 0;
+   DECL_BIT_FIELD_TYPE (field) = NULL_TREE;
+ 
+   /* DECL_BIT_FIELD_REPRESENTATIVE is not defined for QUAL_UNION_TYPE since
+      it uses the same slot as DECL_QUALIFIER.  */
+   if (TREE_CODE (type) != QUAL_UNION_TYPE)
+     DECL_BIT_FIELD_REPRESENTATIVE (field) = NULL_TREE;
+ }
+ 
  /* Given a record type RECORD_TYPE and a list of FIELD_DECL nodes FIELD_LIST,
     finish constructing the record or union type.  If REP_LEVEL is zero, this
     record has no representation clause and so will be entirely laid out here.
*************** finish_record_type (tree record_type, tr
*** 2096,2102 ****
        if (DECL_BIT_FIELD (field)
  	  && operand_equal_p (this_size, TYPE_SIZE (type), 0))
  	{
! 	  const unsigned int align = TYPE_ALIGN (type);
  
  	  /* In the general case, type alignment is required.  */
  	  if (value_factor_p (pos, align))
--- 2229,2235 ----
        if (DECL_BIT_FIELD (field)
  	  && operand_equal_p (this_size, TYPE_SIZE (type), 0))
  	{
! 	  const unsigned int align = default_field_alignment (field, type);
  
  	  /* In the general case, type alignment is required.  */
  	  if (value_factor_p (pos, align))
*************** finish_record_type (tree record_type, tr
*** 2109,2115 ****
  	      if (TYPE_ALIGN (record_type) >= align)
  		{
  		  SET_DECL_ALIGN (field, MAX (DECL_ALIGN (field), align));
! 		  DECL_BIT_FIELD (field) = 0;
  		}
  	      else if (!had_align
  		       && rep_level == 0
--- 2242,2248 ----
  	      if (TYPE_ALIGN (record_type) >= align)
  		{
  		  SET_DECL_ALIGN (field, MAX (DECL_ALIGN (field), align));
! 		  clear_decl_bit_field (field, record_type);
  		}
  	      else if (!had_align
  		       && rep_level == 0
*************** finish_record_type (tree record_type, tr
*** 2119,2125 ****
  		{
  		  SET_TYPE_ALIGN (record_type, align);
  		  SET_DECL_ALIGN (field, MAX (DECL_ALIGN (field), align));
! 		  DECL_BIT_FIELD (field) = 0;
  		}
  	    }
  
--- 2252,2258 ----
  		{
  		  SET_TYPE_ALIGN (record_type, align);
  		  SET_DECL_ALIGN (field, MAX (DECL_ALIGN (field), align));
! 		  clear_decl_bit_field (field, record_type);
  		}
  	    }
  
*************** finish_record_type (tree record_type, tr
*** 2127,2133 ****
  	  if (!STRICT_ALIGNMENT
  	      && DECL_BIT_FIELD (field)
  	      && value_factor_p (pos, BITS_PER_UNIT))
! 	    DECL_BIT_FIELD (field) = 0;
  	}
  
        /* Clear DECL_BIT_FIELD_TYPE for a variant part at offset 0, it's simply
--- 2260,2266 ----
  	  if (!STRICT_ALIGNMENT
  	      && DECL_BIT_FIELD (field)
  	      && value_factor_p (pos, BITS_PER_UNIT))
! 	    clear_decl_bit_field (field, record_type);
  	}
  
        /* Clear DECL_BIT_FIELD_TYPE for a variant part at offset 0, it's simply
*************** rest_of_record_type_compilation (tree re
*** 2450,2459 ****
  	     avoid generating useless attributes for the field in DWARF.  */
  	  if (DECL_SIZE (old_field) == TYPE_SIZE (field_type)
  	      && value_factor_p (pos, BITS_PER_UNIT))
! 	    {
! 	      DECL_BIT_FIELD (new_field) = 0;
! 	      DECL_BIT_FIELD_TYPE (new_field) = NULL_TREE;
! 	    }
  	  DECL_CHAIN (new_field) = TYPE_FIELDS (new_record_type);
  	  TYPE_FIELDS (new_record_type) = new_field;
  
--- 2583,2589 ----
  	     avoid generating useless attributes for the field in DWARF.  */
  	  if (DECL_SIZE (old_field) == TYPE_SIZE (field_type)
  	      && value_factor_p (pos, BITS_PER_UNIT))
! 	    clear_decl_bit_field (new_field, new_record_type);
  	  DECL_CHAIN (new_field) = TYPE_FIELDS (new_record_type);
  	  TYPE_FIELDS (new_record_type) = new_field;
  
*************** create_type_stub_decl (tree name, tree t
*** 2710,2715 ****
--- 2840,2846 ----
  {
    tree type_decl = build_decl (input_location, TYPE_DECL, name, type);
    DECL_ARTIFICIAL (type_decl) = 1;
+   DECL_NAMELESS (type_decl) = gnat_encodings != DWARF_GNAT_ENCODINGS_ALL;
    TYPE_ARTIFICIAL (type) = 1;
    return type_decl;
  }
*************** create_type_stub_decl (tree name, tree t
*** 2718,2728 ****
     used in the declaration.  ARTIFICIAL_P is true if the declaration was
     generated by the compiler.  DEBUG_INFO_P is true if we need to write
     debug information about this type.  GNAT_NODE is used for the position
!    of the decl.  */
  
  tree
  create_type_decl (tree name, tree type, bool artificial_p, bool debug_info_p,
! 		  Node_Id gnat_node)
  {
    enum tree_code code = TREE_CODE (type);
    bool is_named
--- 2849,2861 ----
     used in the declaration.  ARTIFICIAL_P is true if the declaration was
     generated by the compiler.  DEBUG_INFO_P is true if we need to write
     debug information about this type.  GNAT_NODE is used for the position
!    of the decl.  Normally, an artificial type might be marked as
!    nameless.  However, if CAN_BE_NAMELESS is false, this marking is
!    disabled and the name will always be attached for the type.  */
  
  tree
  create_type_decl (tree name, tree type, bool artificial_p, bool debug_info_p,
! 		  Node_Id gnat_node, bool can_be_nameless)
  {
    enum tree_code code = TREE_CODE (type);
    bool is_named
*************** create_type_decl (tree name, tree type,
*** 2744,2749 ****
--- 2877,2885 ----
  
    DECL_ARTIFICIAL (type_decl) = artificial_p;
    TYPE_ARTIFICIAL (type) = artificial_p;
+   DECL_NAMELESS (type_decl) = (artificial_p
+ 			       && can_be_nameless
+ 			       && gnat_encodings != DWARF_GNAT_ENCODINGS_ALL);
  
    /* Add this decl to the current binding level.  */
    gnat_pushdecl (type_decl, gnat_node);
*************** build_vector_type_for_array (tree array_
*** 4340,4351 ****
     is an unconstrained array.  This consists of a RECORD_TYPE containing a
     field of TEMPLATE_TYPE and a field of OBJECT_TYPE, which is an ARRAY_TYPE.
     If ARRAY_TYPE is that of an unconstrained array, this is used to represent
!    an arbitrary unconstrained object.  Use NAME as the name of the record.
!    DEBUG_INFO_P is true if we need to write debug information for the type.  */
  
  tree
  build_unc_object_type (tree template_type, tree object_type, tree name,
! 		       bool debug_info_p)
  {
    tree type = make_node (RECORD_TYPE);
    tree template_field
--- 4476,4489 ----
     is an unconstrained array.  This consists of a RECORD_TYPE containing a
     field of TEMPLATE_TYPE and a field of OBJECT_TYPE, which is an ARRAY_TYPE.
     If ARRAY_TYPE is that of an unconstrained array, this is used to represent
!    an arbitrary unconstrained object.  Use NAME as the name of the
!    record.  ARTIFICIAL_P is true if the type was generated by the
!    compiler, or false if the type came from source.  DEBUG_INFO_P is
!    true if we need to write debug information for the type.  */
  
  tree
  build_unc_object_type (tree template_type, tree object_type, tree name,
! 		       bool artificial_p, bool debug_info_p)
  {
    tree type = make_node (RECORD_TYPE);
    tree template_field
*************** build_unc_object_type (tree template_typ
*** 4362,4368 ****
  
    /* Declare it now since it will never be declared otherwise.  This is
       necessary to ensure that its subtrees are properly marked.  */
!   create_type_decl (name, type, true, debug_info_p, Empty);
  
    return type;
  }
--- 4500,4506 ----
  
    /* Declare it now since it will never be declared otherwise.  This is
       necessary to ensure that its subtrees are properly marked.  */
!   create_type_decl (name, type, artificial_p, debug_info_p, Empty);
  
    return type;
  }
*************** build_unc_object_type_from_ptr (tree thi
*** 4383,4389 ****
         : TREE_TYPE (TYPE_FIELDS (TREE_TYPE (thin_fat_ptr_type))));
  
    return
!     build_unc_object_type (template_type, object_type, name, debug_info_p);
  }
  
  /* Update anything previously pointing to OLD_TYPE to point to NEW_TYPE.
--- 4521,4528 ----
         : TREE_TYPE (TYPE_FIELDS (TREE_TYPE (thin_fat_ptr_type))));
  
    return
!     build_unc_object_type (template_type, object_type, name, true,
! 			   debug_info_p);
  }
  
  /* Update anything previously pointing to OLD_TYPE to point to NEW_TYPE.
*************** convert (tree type, tree expr)
*** 5120,5126 ****
  	      : size_zero_node;
  	  tree byte_diff = size_diffop (type_pos, etype_pos);
  
! 	  expr = build1 (NOP_EXPR, type, expr);
  	  if (integer_zerop (byte_diff))
  	    return expr;
  
--- 5259,5265 ----
  	      : size_zero_node;
  	  tree byte_diff = size_diffop (type_pos, etype_pos);
  
! 	  expr = fold_convert (type, expr);
  	  if (integer_zerop (byte_diff))
  	    return expr;
  
*************** convert (tree type, tree expr)
*** 5128,5133 ****
--- 5267,5287 ----
  				  fold_convert (sizetype, byte_diff));
  	}
  
+       /* If converting from a thin pointer with zero offset from the base to
+ 	 a pointer to the array, add the offset of the array field.  */
+       if (TYPE_IS_THIN_POINTER_P (etype)
+ 	  && !TYPE_UNCONSTRAINED_ARRAY (TREE_TYPE (etype)))
+ 	{
+ 	  tree arr_field = DECL_CHAIN (TYPE_FIELDS (TREE_TYPE (etype)));
+ 
+ 	  if (TREE_TYPE (type) == TREE_TYPE (arr_field))
+ 	    {
+ 	      expr = fold_convert (type, expr);
+ 	      return build_binary_op (POINTER_PLUS_EXPR, type, expr,
+ 				      byte_position (arr_field));
+ 	    }
+ 	}
+ 
        /* If converting fat pointer to normal or thin pointer, get the pointer
  	 to the array and then convert it.  */
        if (TYPE_IS_FAT_POINTER_P (etype))
*************** handle_used_attribute (tree *pnode, tree
*** 7050,7055 ****
--- 7204,7233 ----
    return NULL_TREE;
  }
  
+ /* Handle an "uninitialized" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ handle_uninitialized_attribute (tree *node, tree name, tree ARG_UNUSED (args),
+ 				int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   tree decl = *node;
+   if (!VAR_P (decl))
+     {
+       warning (OPT_Wattributes, "%qE attribute ignored because %qD "
+ 	       "is not a variable", name, decl);
+       *no_add_attrs = true;
+     }
+   else if (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
+     {
+       warning (OPT_Wattributes, "%qE attribute ignored because %qD "
+ 	       "is not a local variable", name, decl);
+       *no_add_attrs = true;
+     }
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "cold" and attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** static int flag_isoc94 = 0;
*** 7353,7358 ****
--- 7531,7537 ----
  static int flag_isoc99 = 0;
  static int flag_isoc11 = 0;
  static int flag_isoc23 = 0;
+ static int flag_isoc2y = 0;
  
  /* Install what the common builtins.def offers plus our local additions.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gcc-interface/utils2.cc gcc-15.1.0/gcc/ada/gcc-interface/utils2.cc
*** gcc-14.2.0/gcc/ada/gcc-interface/utils2.cc	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gcc-interface/utils2.cc	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 33,39 ****
--- 33,41 ----
  #include "tree.h"
  #include "inchash.h"
  #include "builtins.h"
+ #include "expmed.h"
  #include "fold-const.h"
+ #include "optabs-query.h"
  #include "stor-layout.h"
  #include "stringpool.h"
  #include "varasm.h"
*************** find_common_type (tree t1, tree t2)
*** 281,287 ****
     tests in as efficient a manner as possible.  */
  
  static tree
! compare_arrays (location_t loc, tree result_type, tree a1, tree a2)
  {
    tree result = convert (result_type, boolean_true_node);
    tree a1_is_null = convert (result_type, boolean_false_node);
--- 283,289 ----
     tests in as efficient a manner as possible.  */
  
  static tree
! compare_arrays_for_equality (location_t loc, tree result_type, tree a1, tree a2)
  {
    tree result = convert (result_type, boolean_true_node);
    tree a1_is_null = convert (result_type, boolean_false_node);
*************** compare_arrays (location_t loc, tree res
*** 355,362 ****
  	  ub1 = SUBSTITUTE_PLACEHOLDER_IN_EXPR (ub1, a1);
  
  	  comparison = fold_build2_loc (loc, LT_EXPR, result_type, ub1, lb1);
- 	  if (EXPR_P (comparison))
- 	    SET_EXPR_LOCATION (comparison, loc);
  
  	  this_a1_is_null = comparison;
  	  this_a2_is_null = convert (result_type, boolean_true_node);
--- 357,362 ----
*************** compare_arrays (location_t loc, tree res
*** 378,386 ****
  						ub1, lb1),
  			       build_binary_op (MINUS_EXPR, base_type,
  						ub2, lb2));
- 	  if (EXPR_P (comparison))
- 	    SET_EXPR_LOCATION (comparison, loc);
- 
  	  this_a1_is_null
  	    = fold_build2_loc (loc, LT_EXPR, result_type, ub1, lb1);
  
--- 378,383 ----
*************** compare_arrays (location_t loc, tree res
*** 395,402 ****
  
  	  comparison
  	    = fold_build2_loc (loc, EQ_EXPR, result_type, length1, length2);
- 	  if (EXPR_P (comparison))
- 	    SET_EXPR_LOCATION (comparison, loc);
  
  	  lb1 = SUBSTITUTE_PLACEHOLDER_IN_EXPR (lb1, a1);
  	  ub1 = SUBSTITUTE_PLACEHOLDER_IN_EXPR (ub1, a1);
--- 392,397 ----
*************** compare_arrays (location_t loc, tree res
*** 462,467 ****
--- 457,545 ----
    return result;
  }
  
+ /* Return an expression tree representing an ordering comparison of A1 and A2,
+    two objects of type ARRAY_TYPE.  The result should be of type RESULT_TYPE.
+ 
+    A1 is less than A2 according to the following alternative:
+      - when A1's length is less than A2'length: if every element of A1 is equal
+        to its counterpart in A2 or the first differing is lesser in A1 than A2,
+      - otherwise: if not every element of A2 is equal to its counterpart in A1
+        and the first differing is lesser in A1 than A2.
+ 
+    The other 3 ordering comparisons can be easily deduced from this one.  */
+ 
+ static tree
+ compare_arrays_for_ordering (location_t loc, tree result_type, tree a1, tree a2)
+ {
+   const bool a1_side_effects_p = TREE_SIDE_EFFECTS (a1);
+   const bool a2_side_effects_p = TREE_SIDE_EFFECTS (a2);
+   tree t1 = TREE_TYPE (a1);
+   tree t2 = TREE_TYPE (a2);
+   tree dom1 = TYPE_DOMAIN (t1);
+   tree dom2 = TYPE_DOMAIN (t2);
+   tree length1 = size_binop (PLUS_EXPR,
+ 			     size_binop (MINUS_EXPR,
+ 					 TYPE_MAX_VALUE (dom1),
+ 					 TYPE_MIN_VALUE (dom1)),
+ 			     size_one_node);
+   tree length2 = size_binop (PLUS_EXPR,
+ 			     size_binop (MINUS_EXPR,
+ 					 TYPE_MAX_VALUE (dom2),
+ 					 TYPE_MIN_VALUE (dom2)),
+ 			     size_one_node);
+   tree addr1, addr2, fndecl, result;
+ 
+   /* If the lengths are known at compile time, fold the alternative and let the
+      gimplifier optimize the case of power-of-two lengths.  */
+   if (TREE_CODE (length1) == INTEGER_CST && TREE_CODE (length2) == INTEGER_CST)
+     return tree_int_cst_compare (length1, length2) < 0
+ 	   ? fold_build2_loc (loc, LE_EXPR, result_type, a1, convert (t1, a2))
+ 	   : fold_build2_loc (loc, LT_EXPR, result_type, convert (t2, a1), a2);
+ 
+   /* If the operands have side-effects, they need to be evaluated only once
+      in spite of the multiple references in the comparison.  */
+   if (a1_side_effects_p)
+     a1 = gnat_protect_expr (a1);
+ 
+   if (a2_side_effects_p)
+     a2 = gnat_protect_expr (a2);
+ 
+   length1 = SUBSTITUTE_PLACEHOLDER_IN_EXPR (length1, a1);
+   length2 = SUBSTITUTE_PLACEHOLDER_IN_EXPR (length2, a2);
+ 
+   /* If the lengths are not known at compile time, call memcmp directly with
+      the actual lengths since a1 and a2 may have the same nominal subtype.  */
+   addr1 = build_fold_addr_expr_loc (loc, a1);
+   addr2 = build_fold_addr_expr_loc (loc, a2);
+   fndecl = builtin_decl_implicit (BUILT_IN_MEMCMP);
+ 
+   result
+     = fold_build3_loc (loc, COND_EXPR, result_type,
+ 		       fold_build2_loc (loc, LT_EXPR, boolean_type_node,
+ 				        length1, length2),
+ 		       fold_build2_loc (loc, LE_EXPR, result_type,
+ 				        build_call_expr_loc (loc, fndecl, 3,
+ 							     addr1, addr2,
+ 							     length1),
+ 					integer_zero_node),
+ 		       fold_build2_loc (loc, LT_EXPR, result_type,
+ 					build_call_expr_loc (loc, fndecl, 3,
+ 							     addr1, addr2,
+ 							     length2),
+ 					integer_zero_node));
+ 
+   /* If the operands have side-effects, they need to be evaluated before
+      doing the tests above since the place they otherwise would end up
+      being evaluated at run time could be wrong.  */
+   if (a1_side_effects_p)
+     result = build2 (COMPOUND_EXPR, result_type, a1, result);
+ 
+   if (a2_side_effects_p)
+     result = build2 (COMPOUND_EXPR, result_type, a2, result);
+ 
+   return result;
+ }
+ 
  /* Return an expression tree representing an equality comparison of P1 and P2,
     two objects of fat pointer type.  The result should be of type RESULT_TYPE.
  
*************** compare_fat_pointers (location_t loc, tr
*** 534,618 ****
  					   p1_array_is_null, same_bounds));
  }
  
  /* Compute the result of applying OP_CODE to LHS and RHS, where both are of
!    type TYPE.  We know that TYPE is a modular type with a nonbinary
!    modulus.  */
  
  static tree
  nonbinary_modular_operation (enum tree_code op_code, tree type, tree lhs,
                               tree rhs)
  {
    tree modulus = TYPE_MODULUS (type);
!   unsigned int needed_precision = tree_floor_log2 (modulus) + 1;
!   unsigned int precision;
!   bool unsignedp = true;
!   tree op_type = type;
!   tree result;
! 
!   /* If this is an addition of a constant, convert it to a subtraction
!      of a constant since we can do that faster.  */
!   if (op_code == PLUS_EXPR && TREE_CODE (rhs) == INTEGER_CST)
!     {
!       rhs = fold_build2 (MINUS_EXPR, type, modulus, rhs);
!       op_code = MINUS_EXPR;
!     }
  
!   /* For the logical operations, we only need PRECISION bits.  For
!      addition and subtraction, we need one more and for multiplication we
!      need twice as many.  But we never want to make a size smaller than
!      our size. */
    if (op_code == PLUS_EXPR || op_code == MINUS_EXPR)
!     needed_precision += 1;
    else if (op_code == MULT_EXPR)
!     needed_precision *= 2;
! 
!   precision = MAX (needed_precision, TYPE_PRECISION (op_type));
! 
!   /* Unsigned will do for everything but subtraction.  */
!   if (op_code == MINUS_EXPR)
!     unsignedp = false;
  
!   /* If our type is the wrong signedness or isn't wide enough, make a new
!      type and convert both our operands to it.  */
!   if (TYPE_PRECISION (op_type) < precision
!       || TYPE_UNSIGNED (op_type) != unsignedp)
      {
!       /* Copy the type so we ensure it can be modified to make it modular.  */
!       op_type = copy_type (gnat_type_for_size (precision, unsignedp));
!       modulus = convert (op_type, modulus);
!       SET_TYPE_MODULUS (op_type, modulus);
!       TYPE_MODULAR_P (op_type) = 1;
!       lhs = convert (op_type, lhs);
!       rhs = convert (op_type, rhs);
      }
  
    /* Do the operation, then we'll fix it up.  */
    result = fold_build2 (op_code, op_type, lhs, rhs);
  
!   /* For multiplication, we have no choice but to do a full modulus
!      operation.  However, we want to do this in the narrowest
!      possible size.  */
!   if (op_code == MULT_EXPR)
!     {
!       /* Copy the type so we ensure it can be modified to make it modular.  */
!       tree div_type = copy_type (gnat_type_for_size (needed_precision, 1));
!       modulus = convert (div_type, modulus);
!       SET_TYPE_MODULUS (div_type, modulus);
!       TYPE_MODULAR_P (div_type) = 1;
!       result = convert (op_type,
! 			fold_build2 (TRUNC_MOD_EXPR, div_type,
! 				     convert (div_type, result), modulus));
!     }
  
!   /* For subtraction, add the modulus back if we are negative.  */
!   else if (op_code == MINUS_EXPR)
      {
!       result = gnat_protect_expr (result);
!       result = fold_build3 (COND_EXPR, op_type,
! 			    fold_build2 (LT_EXPR, boolean_type_node, result,
! 					 build_int_cst (op_type, 0)),
! 			    fold_build2 (PLUS_EXPR, op_type, result, modulus),
! 			    result);
      }
  
    /* For the other operations, subtract the modulus if we are >= it.  */
--- 612,758 ----
  					   p1_array_is_null, same_bounds));
  }
  
+ /* Try to compute the reduction of OP modulo MODULUS in PRECISION bits with a
+    division-free algorithm.  Return NULL_TREE if this is not easily doable.  */
+ 
+ tree
+ fast_modulo_reduction (tree op, tree modulus, unsigned int precision)
+ {
+   const tree type = TREE_TYPE (op);
+   const unsigned int type_precision = TYPE_PRECISION (type);
+ 
+   /* The implementation is host-dependent for the time being.  */
+   if (type_precision <= HOST_BITS_PER_WIDE_INT)
+     {
+       const unsigned HOST_WIDE_INT d = tree_to_uhwi (modulus);
+       unsigned HOST_WIDE_INT ml, mh;
+       int pre_shift, post_shift;
+       tree t;
+ 
+       /* The trick is to replace the division by d with a multiply-and-shift
+ 	 sequence parameterized by a (multiplier, shifter) pair computed from
+ 	 d, the precision of the type and the needed precision:
+ 
+ 	   op / d = (op * multiplier) >> shifter
+ 
+ 	 But choose_multiplier provides a slightly different interface:
+ 
+ 	  op / d = (op h* multiplier) >> reduced_shifter
+ 
+ 	 that makes things easier by using a high-part multiplication.  */
+       mh = choose_multiplier (d, type_precision, precision, &ml, &post_shift);
+ 
+       /* If the suggested multiplier is more than TYPE_PRECISION bits, we can
+ 	 do better for even divisors, using an initial right shift.  */
+       if (mh != 0 && (d & 1) == 0)
+ 	{
+ 	  pre_shift = ctz_or_zero (d);
+ 	  mh = choose_multiplier (d >> pre_shift, type_precision,
+ 				  precision - pre_shift, &ml, &post_shift);
+ 	}
+       else
+ 	pre_shift = 0;
+ 
+       /* If the suggested multiplier is still more than TYPE_PRECISION bits,
+ 	 or the TYPE_MODE does not have a high-part multiply, try again with
+ 	 a larger type up to the word size.  */
+       if (mh != 0 || !can_mult_highpart_p (TYPE_MODE (type), true))
+ 	{
+ 	  if (type_precision < BITS_PER_WORD)
+ 	    {
+ 	      const scalar_int_mode m
+ 		= smallest_int_mode_for_size (type_precision + 1).require ();
+ 	      tree new_type = gnat_type_for_mode (m, 1);
+ 	      op = fold_convert (new_type, op);
+ 	      modulus = fold_convert (new_type, modulus);
+ 	      t = fast_modulo_reduction (op, modulus, precision);
+ 	      if (t)
+ 		return fold_convert (type, t);
+ 	    }
+ 
+ 	  return NULL_TREE;
+ 	}
+ 
+       /* This computes op - (op / modulus) * modulus with PRECISION bits.  */
+       op = gnat_protect_expr (op);
+ 
+       /* t = op >> pre_shift
+ 	 t = t h* ml
+ 	 t = t >> post_shift
+ 	 t = t * modulus  */
+       if (pre_shift)
+ 	t = fold_build2 (RSHIFT_EXPR, type, op,
+ 			 build_int_cst (type, pre_shift));
+       else
+ 	t = op;
+       t = fold_build2 (MULT_HIGHPART_EXPR, type, t, build_int_cst (type, ml));
+       if (post_shift)
+ 	t = fold_build2 (RSHIFT_EXPR, type, t,
+ 			 build_int_cst (type, post_shift));
+       t = fold_build2 (MULT_EXPR, type, t, modulus);
+ 
+       return fold_build2 (MINUS_EXPR, type, op, t);
+     }
+ 
+   else
+     return NULL_TREE;
+ }
+ 
  /* Compute the result of applying OP_CODE to LHS and RHS, where both are of
!    TYPE.  We know that TYPE is a modular type with a nonbinary modulus.  */
  
  static tree
  nonbinary_modular_operation (enum tree_code op_code, tree type, tree lhs,
                               tree rhs)
  {
    tree modulus = TYPE_MODULUS (type);
!   unsigned precision = tree_floor_log2 (modulus) + 1;
!   tree op_type, result, fmr;
  
!   /* For the logical operations, we only need PRECISION bits.  For addition and
!      subtraction, we need one more, and for multiplication twice as many.  */
    if (op_code == PLUS_EXPR || op_code == MINUS_EXPR)
!     precision += 1;
    else if (op_code == MULT_EXPR)
!     precision *= 2;
  
!   /* If the type is not wide enough, make a new type of the needed precision
!      and convert modulus and operands to it.  Use a type with full precision
!      for its mode since operations are ultimately performed in the mode.  */
!   if (TYPE_PRECISION (type) < precision)
      {
!       const scalar_int_mode m
! 	= smallest_int_mode_for_size (precision).require ();
!       op_type = gnat_type_for_mode (m, 1);
!       modulus = fold_convert (op_type, modulus);
!       lhs = fold_convert (op_type, lhs);
!       rhs = fold_convert (op_type, rhs);
      }
+   else
+     op_type = type;
  
    /* Do the operation, then we'll fix it up.  */
    result = fold_build2 (op_code, op_type, lhs, rhs);
  
!   /* Unconditionally add the modulus to the result for a subtraction, this gets
!      rid of all its peculiarities by cancelling out the addition of the binary
!      modulus in the case where the subtraction wraps around in OP_TYPE, and may
!      even generate better code on architectures with conditional moves.  */
!   if (op_code == MINUS_EXPR)
!     result = fold_build2 (PLUS_EXPR, op_type, result, modulus);
  
!   /* For a multiplication, we first try to do a modulo reduction by means of a
!      (multiplier, shifter) pair in the needed precision up to the word size, or
!      else we fall back to a standard modulo operation.  But not when optimizing
!      for size, because it will be longer than a div+mul+sub sequence.  */
!   if (op_code == MULT_EXPR)
      {
!       if (!optimize_size
! 	  && precision <= BITS_PER_WORD
! 	  && (fmr = fast_modulo_reduction (result, modulus, precision)))
! 	result = fmr;
!       else
! 	result = fold_build2 (TRUNC_MOD_EXPR, op_type, result, modulus);
      }
  
    /* For the other operations, subtract the modulus if we are >= it.  */
*************** nonbinary_modular_operation (enum tree_c
*** 627,633 ****
  			    result);
      }
  
!   return convert (type, result);
  }
  
  /* This page contains routines that implement the Ada semantics with regard
--- 767,773 ----
  			    result);
      }
  
!   return fold_convert (type, result);
  }
  
  /* This page contains routines that implement the Ada semantics with regard
*************** build_binary_op (enum tree_code op_code,
*** 1036,1044 ****
        if (op_code == ARRAY_RANGE_REF
  	  && TREE_TYPE (operation_type) != TREE_TYPE (left_type))
  	{
! 	  operation_type
! 	    = build_nonshared_array_type (TREE_TYPE (left_type),
! 					  TYPE_DOMAIN (operation_type));
  	  /* Declare it now since it will never be declared otherwise.  This
  	     is necessary to ensure that its subtrees are properly marked.  */
  	  create_type_decl (TYPE_NAME (operation_type), operation_type, true,
--- 1176,1184 ----
        if (op_code == ARRAY_RANGE_REF
  	  && TREE_TYPE (operation_type) != TREE_TYPE (left_type))
  	{
!           operation_type = copy_type (operation_type);
!           TREE_TYPE (operation_type) = TREE_TYPE (left_type);
! 
  	  /* Declare it now since it will never be declared otherwise.  This
  	     is necessary to ensure that its subtrees are properly marked.  */
  	  create_type_decl (TYPE_NAME (operation_type), operation_type, true,
*************** build_binary_op (enum tree_code op_code,
*** 1113,1124 ****
  	      || (TREE_CODE (right_type) == INTEGER_TYPE
  		  && TYPE_HAS_ACTUAL_BOUNDS_P (right_type))))
  	{
! 	  result = compare_arrays (input_location,
! 				   result_type, left_operand, right_operand);
! 	  if (op_code == NE_EXPR)
! 	    result = invert_truthvalue_loc (EXPR_LOCATION (result), result);
  	  else
! 	    gcc_assert (op_code == EQ_EXPR);
  
  	  return result;
  	}
--- 1253,1284 ----
  	      || (TREE_CODE (right_type) == INTEGER_TYPE
  		  && TYPE_HAS_ACTUAL_BOUNDS_P (right_type))))
  	{
!           if (op_code == EQ_EXPR || op_code == NE_EXPR)
! 	    {
! 	      result
! 		= compare_arrays_for_equality (input_location, result_type,
! 					       left_operand, right_operand);
! 	      if (op_code == NE_EXPR)
! 		result = invert_truthvalue_loc (input_location, result);
! 	    }
! 
  	  else
! 	    {
! 	      /* Swap the operands to canonicalize to LT_EXPR or GE_EXPR.  */
! 	      if (op_code == GT_EXPR || op_code == LE_EXPR)
! 		result
! 		  = compare_arrays_for_ordering (input_location, result_type,
! 						 right_operand, left_operand);
! 
! 	      else
! 		result
! 		  = compare_arrays_for_ordering (input_location, result_type,
! 						 left_operand, right_operand);
! 
! 	      /* GE_EXPR is (not LT_EXPR) for discrete array types.  */
! 	      if (op_code == GE_EXPR || op_code == LE_EXPR)
! 		result = invert_truthvalue_loc (input_location, result);
! 	    }
  
  	  return result;
  	}
*************** build_unary_op (enum tree_code op_code,
*** 1468,1478 ****
  		= size_binop (PLUS_EXPR, offset,
  			      size_int (bits_to_bytes_round_down (bitpos)));
  
! 	      /* Take the address of INNER, convert it to a pointer to our type
! 		 and add the offset.  */
! 	      inner = build_unary_op (ADDR_EXPR,
! 				      build_pointer_type (TREE_TYPE (operand)),
! 				      inner);
  	      result = build_binary_op (POINTER_PLUS_EXPR, TREE_TYPE (inner),
  					inner, offset);
  	      break;
--- 1628,1639 ----
  		= size_binop (PLUS_EXPR, offset,
  			      size_int (bits_to_bytes_round_down (bitpos)));
  
! 	      /* Take the address of INNER, formally convert it to a pointer
! 		 to the operand type, and finally add the offset.  */
! 	      inner = build_unary_op (ADDR_EXPR, NULL_TREE, inner);
! 	      inner
! 		= fold_convert (build_pointer_type (TREE_TYPE (operand)),
! 				inner);
  	      result = build_binary_op (POINTER_PLUS_EXPR, TREE_TYPE (inner),
  					inner, offset);
  	      break;
*************** build_cond_expr (tree result_type, tree
*** 1711,1722 ****
    true_operand = convert (result_type, true_operand);
    false_operand = convert (result_type, false_operand);
  
!   /* If the result type is unconstrained, take the address of the operands and
!      then dereference the result.  Likewise if the result type is passed by
!      reference, because creating a temporary of this type is not allowed.  */
    if (TREE_CODE (result_type) == UNCONSTRAINED_ARRAY_TYPE
!       || TYPE_IS_BY_REFERENCE_P (result_type)
!       || CONTAINS_PLACEHOLDER_P (TYPE_SIZE (result_type)))
      {
        result_type = build_pointer_type (result_type);
        true_operand = build_unary_op (ADDR_EXPR, result_type, true_operand);
--- 1872,1885 ----
    true_operand = convert (result_type, true_operand);
    false_operand = convert (result_type, false_operand);
  
!   /* If the result type is unconstrained or variable-sized, take the address
!      of the operands and then dereference the result.  Likewise if the result
!      type is passed by reference, because creating a temporary of this type is
!      not allowed.  */
    if (TREE_CODE (result_type) == UNCONSTRAINED_ARRAY_TYPE
!       || type_contains_placeholder_p (result_type)
!       || !TREE_CONSTANT (TYPE_SIZE (result_type))
!       || TYPE_IS_BY_REFERENCE_P (result_type))
      {
        result_type = build_pointer_type (result_type);
        true_operand = build_unary_op (ADDR_EXPR, result_type, true_operand);
*************** compare_elmt_bitpos (const void *rt1, co
*** 1951,1957 ****
    const int ret
      = tree_int_cst_compare (bit_position (field1), bit_position (field2));
  
!   return ret ? ret : (int) (DECL_UID (field1) - DECL_UID (field2));
  }
  
  /* Return a CONSTRUCTOR of TYPE whose elements are V.  */
--- 2114,2136 ----
    const int ret
      = tree_int_cst_compare (bit_position (field1), bit_position (field2));
  
!   if (ret)
!     return ret;
! 
!   /* The bit position can be the same if one of the fields has zero size.
!      In this case, if the other has nonzero size, put the former first to
!      match the layout done by components_to_record.  Otherwise, preserve
!      the order of the source code.  */
! 
!   const bool field1_zero_size = integer_zerop (DECL_SIZE (field1));
!   const bool field2_zero_size = integer_zerop (DECL_SIZE (field2));
! 
!   if (field1_zero_size && !field2_zero_size)
!     return -1;
!   else if (!field1_zero_size && field2_zero_size)
!     return 1;
!   else
!     return (int) (DECL_UID (field1) - DECL_UID (field2));
  }
  
  /* Return a CONSTRUCTOR of TYPE whose elements are V.  */
*************** build_call_alloc_dealloc_proc (tree gnu_
*** 2187,2201 ****
  	= Etype (Next_Formal (First_Formal (gnat_proc)));
        tree gnu_size_type = gnat_to_gnu_type (gnat_size_type);
  
        gnu_size = convert (gnu_size_type, gnu_size);
        gnu_align = convert (gnu_size_type, gnu_align);
  
        if (DECL_BUILT_IN_CLASS (gnu_proc) == BUILT_IN_FRONTEND
  	  && DECL_FE_FUNCTION_CODE (gnu_proc) == BUILT_IN_RETURN_SLOT)
  	{
! 	  /* This must be an allocation of the return stack in a function that
! 	     returns by invisible reference.  */
! 	  gcc_assert (!gnu_obj);
  	  gcc_assert (current_function_decl
  		      && TREE_ADDRESSABLE (TREE_TYPE (current_function_decl)));
  	  tree gnu_ret_size;
--- 2366,2381 ----
  	= Etype (Next_Formal (First_Formal (gnat_proc)));
        tree gnu_size_type = gnat_to_gnu_type (gnat_size_type);
  
+       /* Deallocation is not supported for return and secondary stacks.  */
+       gcc_assert (!gnu_obj);
+ 
        gnu_size = convert (gnu_size_type, gnu_size);
        gnu_align = convert (gnu_size_type, gnu_align);
  
        if (DECL_BUILT_IN_CLASS (gnu_proc) == BUILT_IN_FRONTEND
  	  && DECL_FE_FUNCTION_CODE (gnu_proc) == BUILT_IN_RETURN_SLOT)
  	{
! 	  /* This must be a function that returns by invisible reference.  */
  	  gcc_assert (current_function_decl
  		      && TREE_ADDRESSABLE (TREE_TYPE (current_function_decl)));
  	  tree gnu_ret_size;
*************** build_call_alloc_dealloc_proc (tree gnu_
*** 2221,2231 ****
  					     N_Raise_Program_Error));
  	}
  
-       /* The first arg is the address of the object, for a deallocator,
- 	 then the size.  */
-       else if (gnu_obj)
- 	gnu_call = build_call_n_expr (gnu_proc, 2, gnu_obj, gnu_size);
- 
        else
  	gnu_call = build_call_n_expr (gnu_proc, 2, gnu_size, gnu_align);
      }
--- 2401,2406 ----
*************** gnat_save_expr (tree exp)
*** 2889,2895 ****
  
  /* Protect EXP for immediate reuse.  This is a variant of gnat_save_expr that
     is optimized under the assumption that EXP's value doesn't change before
!    its subsequent reuse(s) except through its potential reevaluation.  */
  
  tree
  gnat_protect_expr (tree exp)
--- 3064,3074 ----
  
  /* Protect EXP for immediate reuse.  This is a variant of gnat_save_expr that
     is optimized under the assumption that EXP's value doesn't change before
!    its subsequent reuse(s) except potentially through its reevaluation.
! 
!    gnat_protect_expr guarantees that multiple evaluations of the expression
!    will not generate multiple side effects, whereas gnat_save_expr further
!    guarantees that all evaluations will yield the same result.  */
  
  tree
  gnat_protect_expr (tree exp)
*************** gnat_protect_expr (tree exp)
*** 2917,2923 ****
    if (code == NON_LVALUE_EXPR
        || CONVERT_EXPR_CODE_P (code)
        || code == VIEW_CONVERT_EXPR)
!   return build1 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)));
  
    /* If we're indirectly referencing something, we only need to protect the
       address since the data itself can't change in these situations.  */
--- 3096,3102 ----
    if (code == NON_LVALUE_EXPR
        || CONVERT_EXPR_CODE_P (code)
        || code == VIEW_CONVERT_EXPR)
!     return build1 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)));
  
    /* If we're indirectly referencing something, we only need to protect the
       address since the data itself can't change in these situations.  */
*************** gnat_protect_expr (tree exp)
*** 2934,2939 ****
--- 3113,3125 ----
      return build3 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
+   /* An atomic load is an INDIRECT_REF of its first argument, so apply the
+      same transformation as in the INDIRECT_REF case above.  */
+   if (code == CALL_EXPR && call_is_atomic_load (exp))
+     return build_call_expr (TREE_OPERAND (CALL_EXPR_FN (exp), 0), 2,
+ 			    gnat_protect_expr (CALL_EXPR_ARG (exp, 0)),
+ 			    CALL_EXPR_ARG (exp, 1));
+ 
    /* If this is a COMPONENT_REF of a fat pointer, save the entire fat pointer.
       This may be more efficient, but will also allow us to more easily find
       the match for the PLACEHOLDER_EXPR.  */
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-fields.ads gcc-15.1.0/gcc/ada/gen_il-fields.ads
*** gcc-14.2.0/gcc/ada/gen_il-fields.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-fields.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gen_IL.Fields is
*** 65,71 ****
        Activation_Chain_Entity,
        Acts_As_Spec,
        Actual_Designated_Subtype,
-       Address_Warning_Posted,
        Aggregate_Bounds_Or_Ancestor_Type,
        Aliased_Present,
        All_Others,
--- 65,70 ----
*************** package Gen_IL.Fields is
*** 77,82 ****
--- 76,82 ----
        Aspect_On_Partial_View,
        Aspect_Rep_Item,
        Aspect_Specifications,
+       Aspect_Subprograms,
        Assignment_OK,
        Attribute_Name,
        At_End_Proc,
*************** package Gen_IL.Fields is
*** 182,187 ****
--- 182,189 ----
        Expression,
        Expression_Copy,
        Expressions,
+       File_Index,
+       Finally_Statements,
        First_Bit,
        First_Inlined_Subprogram,
        First_Name,
*************** package Gen_IL.Fields is
*** 190,195 ****
--- 192,198 ----
        Float_Truncate,
        Formal_Type_Definition,
        Forwards_OK,
+       For_Allocator,
        For_Special_Return_Object,
        From_Aspect_Specification,
        From_At_Mod,
*************** package Gen_IL.Fields is
*** 224,230 ****
        Identifier,
        Interface_List,
        Interface_Present,
-       Implicit_With,
        Import_Interface_Present,
        In_Present,
        Includes_Infinities,
--- 227,232 ----
*************** package Gen_IL.Fields is
*** 254,270 ****
        Is_Elsif,
        Is_Entry_Barrier_Function,
        Is_Expanded_Build_In_Place_Call,
!       Is_Expanded_Contract,
        Is_Folded_In_Parser,
        Is_Generic_Contract_Pragma,
        Is_Homogeneous_Aggregate,
        Is_Parenthesis_Aggregate,
-       Is_Enum_Array_Aggregate,
        Is_Ignored,
        Is_Ignored_Ghost_Pragma,
        Is_In_Discriminant_Check,
-       Is_Inherited_Pragma,
        Is_Initialization_Block,
        Is_Known_Guaranteed_ABE,
        Is_Machine_Number,
        Is_Null_Loop,
--- 256,272 ----
        Is_Elsif,
        Is_Entry_Barrier_Function,
        Is_Expanded_Build_In_Place_Call,
!       Is_Expanded_Prefixed_Call,
        Is_Folded_In_Parser,
        Is_Generic_Contract_Pragma,
        Is_Homogeneous_Aggregate,
        Is_Parenthesis_Aggregate,
        Is_Ignored,
        Is_Ignored_Ghost_Pragma,
+       Is_Implicit_With,
        Is_In_Discriminant_Check,
        Is_Initialization_Block,
+       Is_Interpolated_String_Literal,
        Is_Known_Guaranteed_ABE,
        Is_Machine_Number,
        Is_Null_Loop,
*************** package Gen_IL.Fields is
*** 388,394 ****
        Shift_Count_OK,
        Source_Type,
        Specification,
-       Split_PPC,
        Statements,
        Storage_Pool,
        Subpool_Handle_Name,
--- 390,395 ----
*************** package Gen_IL.Fields is
*** 442,449 ****
        Actual_Subtype,
        Address_Taken,
        Alignment,
        Anonymous_Designated_Type,
-       Anonymous_Masters,
        Anonymous_Object,
        Associated_Entity,
        Associated_Formal_Package,
--- 443,450 ----
        Actual_Subtype,
        Address_Taken,
        Alignment,
+       Anonymous_Collections,
        Anonymous_Designated_Type,
        Anonymous_Object,
        Associated_Entity,
        Associated_Formal_Package,
*************** package Gen_IL.Fields is
*** 463,468 ****
--- 464,470 ----
        Class_Postconditions,
        Class_Preconditions,
        Class_Preconditions_Subprogram,
+       Class_Wide_Equivalent_Type,
        Class_Wide_Type,
        Cloned_Subtype,
        Component_Alignment,
*************** package Gen_IL.Fields is
*** 475,482 ****
        Corresponding_Concurrent_Type,
        Corresponding_Discriminant,
        Corresponding_Equality,
-       Corresponding_Function,
-       Corresponding_Procedure,
        Corresponding_Record_Component,
        Corresponding_Record_Type,
        Corresponding_Remote_Type,
--- 477,482 ----
*************** package Gen_IL.Fields is
*** 538,544 ****
        Extra_Constrained,
        Extra_Formal,
        Extra_Formals,
!       Finalization_Master,
        Finalize_Storage_Only,
        Finalizer,
        First_Entity,
--- 538,545 ----
        Extra_Constrained,
        Extra_Formal,
        Extra_Formals,
!       Finalization_Collection,
!       Finalization_Master_Node,
        Finalize_Storage_Only,
        Finalizer,
        First_Entity,
*************** package Gen_IL.Fields is
*** 577,582 ****
--- 578,584 ----
        Has_Enumeration_Rep_Clause,
        Has_Exit,
        Has_Expanded_Contract,
+       Has_First_Controlling_Parameter_Aspect,
        Has_Forward_Instantiation,
        Has_Fully_Qualified_Name,
        Has_Ghost_Predicate_Aspect,
*************** package Gen_IL.Fields is
*** 626,631 ****
--- 628,634 ----
        Has_RACW,
        Has_Record_Rep_Clause,
        Has_Recursive_Call,
+       Has_Relaxed_Finalization,
        Has_Shift_Operator,
        Has_Size_Clause,
        Has_Small_Clause,
*************** package Gen_IL.Fields is
*** 709,714 ****
--- 712,718 ----
        Is_Exception_Handler,
        Is_Exported,
        Is_Finalized_Transient,
+       Is_Finalizer,
        Is_First_Subtype,
        Is_Fixed_Lower_Bound_Array_Subtype,
        Is_Fixed_Lower_Bound_Index_Subtype,
*************** package Gen_IL.Fields is
*** 746,751 ****
--- 750,756 ----
        Is_Local_Anonymous_Access,
        Is_Loop_Parameter,
        Is_Machine_Code_Subprogram,
+       Is_Mutably_Tagged_Type,
        Is_Non_Static_Subtype,
        Is_Null_Init_Proc,
        Is_Obsolescent,
*************** package Gen_IL.Fields is
*** 797,803 ****
        Is_Wrapper,
        Itype_Printed,
        Kill_Elaboration_Checks,
-       Kill_Range_Checks,
        Known_To_Have_Preelab_Init,
        Last_Aggregate_Assignment,
        Last_Assignment,
--- 802,807 ----
*************** package Gen_IL.Fields is
*** 826,831 ****
--- 830,836 ----
        No_Dynamic_Predicate_On_Actual,
        No_Pool_Assigned,
        No_Predicate_On_Actual,
+       No_Raise,
        No_Reordering,
        No_Return,
        No_Strict_Aliasing,
*************** package Gen_IL.Fields is
*** 850,857 ****
        Part_Of_Constituents,
        Part_Of_References,
        Partial_View_Has_Unknown_Discr,
-       Pending_Access_Types,
-       Postconditions_Proc,
        Predicate_Expression,
        Prev_Entity,
        Prival,
--- 855,860 ----
*************** package Gen_IL.Fields is
*** 875,880 ****
--- 878,884 ----
        Relative_Deadline_Variable,
        Renamed_In_Spec,
        Renamed_Or_Alias, -- Shared among Alias, Renamed_Entity, Renamed_Object
+       Renames_Limited_View,
        Requires_Overriding,
        Return_Applies_To,
        Return_Present,
*************** package Gen_IL.Fields is
*** 882,888 ****
        Returns_By_Ref,
        Reverse_Bit_Order,
        Reverse_Storage_Order,
-       Rewritten_For_C,
        RM_Size,
        Scalar_Range,
        Scale_Value,
--- 886,891 ----
*************** package Gen_IL.Fields is
*** 905,911 ****
        Static_Elaboration_Desired,
        Static_Initialization,
        Static_Real_Or_String_Predicate,
-       Status_Flag_Or_Transient_Decl,
        Storage_Size_Variable,
        Stored_Constraint,
        Stores_Attribute_Old_Prefix,
--- 908,913 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-gen-gen_entities.adb gcc-15.1.0/gcc/ada/gen_il-gen-gen_entities.adb
*** gcc-14.2.0/gcc/ada/gen_il-gen-gen_entities.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-gen-gen_entities.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 103,108 ****
--- 103,109 ----
          Sm (Has_Private_Declaration, Flag),
          Sm (Has_Protected, Flag, Base_Type_Only),
          Sm (Has_Qualified_Name, Flag),
+         Sm (Has_Relaxed_Finalization, Flag, Base_Type_Only),
          Sm (Has_Size_Clause, Flag),
          Sm (Has_Stream_Size_Clause, Flag),
          Sm (Has_Task, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 145,150 ****
--- 146,152 ----
          Sm (Is_Entry_Formal, Flag),
          Sm (Is_Entry_Wrapper, Flag),
          Sm (Is_Exported, Flag),
+         Sm (Is_Finalizer, Flag),
          Sm (Is_First_Subtype, Flag),
          Sm (Is_Formal_Subprogram, Flag),
          Sm (Is_Frozen, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 207,220 ****
          Sm (Is_Volatile_Full_Access, Flag),
          Sm (Is_Wrapper, Flag),
          Sm (Kill_Elaboration_Checks, Flag),
-         Sm (Kill_Range_Checks, Flag),
          Sm (Low_Bound_Tested, Flag),
          Sm (Materialize_Entity, Flag),
          Sm (May_Inherit_Delayed_Rep_Aspects, Flag),
          Sm (Needs_Activation_Record, Flag),
          Sm (Needs_Debug_Info, Flag),
          Sm (Never_Set_In_Source, Flag),
-         Sm (No_Return, Flag),
          Sm (Overlays_Constant, Flag),
          Sm (Prev_Entity, Node_Id),
          Sm (Referenced, Flag),
--- 209,220 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 302,308 ****
     --  but not getters; the Ekind is modified before any such getters are
     --  called.
  
!    Ab (Exception_Or_Object_Kind, Entity_Kind);
  
     Ab (Object_Kind, Exception_Or_Object_Kind,
         (Sm (Current_Value, Node_Id),
--- 302,309 ----
     --  but not getters; the Ekind is modified before any such getters are
     --  called.
  
!    Ab (Exception_Or_Object_Kind, Entity_Kind,
!        (Sm (Esize, Uint)));
  
     Ab (Object_Kind, Exception_Or_Object_Kind,
         (Sm (Current_Value, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 313,319 ****
          Sm (Component_Clause, Node_Id),
          Sm (Corresponding_Record_Component, Node_Id),
          Sm (Entry_Formal, Node_Id),
-         Sm (Esize, Uint),
          Sm (Interface_Name, Node_Id),
          Sm (Normalized_First_Bit, Uint),
          Sm (Normalized_Position, Uint),
--- 314,319 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 334,346 ****
     Ab (Allocatable_Kind, Object_Kind,
         (Sm (Activation_Record_Component, Node_Id),
          Sm (Alignment, Unat),
!         Sm (Esize, Uint),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Finalized_Transient, Flag),
          Sm (Is_Ignored_For_Finalization, Flag),
          Sm (Linker_Section_Pragma, Node_Id),
!         Sm (Related_Expression, Node_Id),
!         Sm (Status_Flag_Or_Transient_Decl, Node_Id)));
  
     Ab (Constant_Or_Variable_Kind, Allocatable_Kind,
         (Sm (Actual_Subtype, Node_Id),
--- 334,345 ----
     Ab (Allocatable_Kind, Object_Kind,
         (Sm (Activation_Record_Component, Node_Id),
          Sm (Alignment, Unat),
!         Sm (Finalization_Master_Node, Node_Id),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Finalized_Transient, Flag),
          Sm (Is_Ignored_For_Finalization, Flag),
          Sm (Linker_Section_Pragma, Node_Id),
!         Sm (Related_Expression, Node_Id)));
  
     Ab (Constant_Or_Variable_Kind, Allocatable_Kind,
         (Sm (Actual_Subtype, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 403,409 ****
          Sm (Default_Expr_Function, Node_Id),
          Sm (Default_Value, Node_Id),
          Sm (Entry_Component, Node_Id),
-         Sm (Esize, Uint),
          Sm (Extra_Accessibility, Node_Id),
          Sm (Extra_Constrained, Node_Id),
          Sm (Extra_Formal, Node_Id),
--- 402,407 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 433,440 ****
  
     Ab (Formal_Object_Kind, Object_Kind,
         --  Generic formal objects are also objects
!        (Sm (Entry_Component, Node_Id),
!         Sm (Esize, Uint)));
  
     Cc (E_Generic_In_Out_Parameter, Formal_Object_Kind,
         --  A generic in out parameter, created by the use of a generic in out
--- 431,437 ----
  
     Ab (Formal_Object_Kind, Object_Kind,
         --  Generic formal objects are also objects
!        (Sm (Entry_Component, Node_Id)));
  
     Cc (E_Generic_In_Out_Parameter, Formal_Object_Kind,
         --  A generic in out parameter, created by the use of a generic in out
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 459,464 ****
--- 456,462 ----
          Sm (Associated_Node_For_Itype, Node_Id),
          Sm (Can_Use_Internal_Rep, Flag, Base_Type_Only,
              Pre => "Ekind (Base_Type (N)) in Access_Subprogram_Kind"),
+         Sm (Class_Wide_Equivalent_Type, Node_Id),
          Sm (Class_Wide_Type, Node_Id),
          Sm (Contract, Node_Id),
          Sm (Current_Use_Clause, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 476,481 ****
--- 474,482 ----
          Sm (Has_Dispatch_Table, Flag,
              Pre => "Is_Tagged_Type (N)"),
          Sm (Has_Dynamic_Predicate_Aspect, Flag),
+         Sm (Has_First_Controlling_Parameter_Aspect, Flag,
+             Pre => "Is_Tagged_Type (N) or else Is_Concurrent_Type (N)"
+                    & " or else Is_Concurrent_Record_Type (N)"),
          Sm (Has_Ghost_Predicate_Aspect, Flag),
          Sm (Has_Inheritable_Invariants, Flag, Base_Type_Only),
          Sm (Has_Inherited_DIC, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 504,509 ****
--- 505,511 ----
          Sm (Is_Fixed_Lower_Bound_Array_Subtype, Flag),
          Sm (Is_Fixed_Lower_Bound_Index_Subtype, Flag),
          Sm (Is_Generic_Actual_Type, Flag),
+         Sm (Is_Mutably_Tagged_Type, Flag),
          Sm (Is_Non_Static_Subtype, Flag),
          Sm (Is_Private_Composite, Flag),
          Sm (Is_RACW_Stub_Type, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 520,526 ****
          Sm (Optimize_Alignment_Space, Flag),
          Sm (Optimize_Alignment_Time, Flag),
          Sm (Partial_View_Has_Unknown_Discr, Flag),
-         Sm (Pending_Access_Types, Elist_Id),
          Sm (Related_Expression, Node_Id),
          Sm (RM_Size, Uint),
          Sm (SPARK_Pragma, Node_Id),
--- 522,527 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 639,645 ****
     Ab (Access_Kind, Elementary_Kind,
         (Sm (Associated_Storage_Pool, Node_Id, Root_Type_Only),
          Sm (Directly_Designated_Type, Node_Id),
!         Sm (Finalization_Master, Node_Id, Root_Type_Only),
          Sm (Has_Pragma_Controlled, Flag, Impl_Base_Type_Only),
          Sm (Has_Storage_Size_Clause, Flag, Impl_Base_Type_Only),
          Sm (Is_Access_Constant, Flag),
--- 640,646 ----
     Ab (Access_Kind, Elementary_Kind,
         (Sm (Associated_Storage_Pool, Node_Id, Root_Type_Only),
          Sm (Directly_Designated_Type, Node_Id),
!         Sm (Finalization_Collection, Node_Id, Root_Type_Only),
          Sm (Has_Pragma_Controlled, Flag, Impl_Base_Type_Only),
          Sm (Has_Storage_Size_Clause, Flag, Impl_Base_Type_Only),
          Sm (Is_Access_Constant, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 983,1001 ****
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Overridden_Operation, Node_Id),
          Sm (Protected_Body_Subprogram, Node_Id),
          Sm (Scope_Depth_Value, Unat),
          Sm (Static_Call_Helper, Node_Id),
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag),
!         Sm (Subps_Index, Unat)));
  
     Cc (E_Function, Subprogram_Kind,
         --  A function, created by a function declaration or a function body
         --  that acts as its own declaration.
!        (Sm (Anonymous_Masters, Elist_Id),
          Sm (Corresponding_Equality, Node_Id,
              Pre => "not Comes_From_Source (N) and then Chars (N) = Name_Op_Ne"),
-         Sm (Corresponding_Procedure, Node_Id),
          Sm (DT_Position, Uint,
              Pre_Get => "Present (DTC_Entity (N))"),
          Sm (DTC_Entity, Node_Id),
--- 984,1004 ----
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Overridden_Operation, Node_Id),
          Sm (Protected_Body_Subprogram, Node_Id),
+         Sm (No_Raise, Flag),
+         Sm (No_Return, Flag),
          Sm (Scope_Depth_Value, Unat),
          Sm (Static_Call_Helper, Node_Id),
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag),
!         Sm (Subps_Index, Unat),
!         Sm (LSP_Subprogram, Node_Id)));
  
     Cc (E_Function, Subprogram_Kind,
         --  A function, created by a function declaration or a function body
         --  that acts as its own declaration.
!        (Sm (Anonymous_Collections, Elist_Id),
          Sm (Corresponding_Equality, Node_Id,
              Pre => "not Comes_From_Source (N) and then Chars (N) = Name_Op_Ne"),
          Sm (DT_Position, Uint,
              Pre_Get => "Present (DTC_Entity (N))"),
          Sm (DTC_Entity, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1015,1030 ****
          Sm (Is_Predicate_Function, Flag),
          Sm (Is_Primitive_Wrapper, Flag),
          Sm (Is_Private_Primitive, Flag),
-         Sm (LSP_Subprogram, Node_Id),
          Sm (Mechanism, Mechanism_Type),
          Sm (Next_Inlined_Subprogram, Node_Id),
          Sm (Original_Protected_Subprogram, Node_Id),
-         Sm (Postconditions_Proc, Node_Id),
          Sm (Predicate_Expression, Node_Id),
          Sm (Protected_Subprogram, Node_Id),
          Sm (Protection_Object, Node_Id),
          Sm (Related_Expression, Node_Id),
-         Sm (Rewritten_For_C, Flag),
          Sm (Thunk_Entity, Node_Id,
              Pre => "Is_Thunk (N)"),
          Sm (Wrapped_Entity, Node_Id,
--- 1018,1030 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1036,1050 ****
         --  defined concatenation operator created whenever an array is declared.
         --  We do not make normal derived operators explicit in the tree, but the
         --  concatenation operators are made explicit.
!        (Sm (Extra_Accessibility_Of_Result, Node_Id),
!         Sm (LSP_Subprogram, Node_Id)));
  
     Cc (E_Procedure, Subprogram_Kind,
         --  A procedure, created by a procedure declaration or a procedure
         --  body that acts as its own declaration.
!        (Sm (Anonymous_Masters, Elist_Id),
          Sm (Associated_Node_For_Itype, Node_Id),
-         Sm (Corresponding_Function, Node_Id),
          Sm (DT_Position, Uint,
              Pre_Get => "Present (DTC_Entity (N))"),
          Sm (DTC_Entity, Node_Id),
--- 1036,1048 ----
         --  defined concatenation operator created whenever an array is declared.
         --  We do not make normal derived operators explicit in the tree, but the
         --  concatenation operators are made explicit.
!        (Sm (Extra_Accessibility_Of_Result, Node_Id)));
  
     Cc (E_Procedure, Subprogram_Kind,
         --  A procedure, created by a procedure declaration or a procedure
         --  body that acts as its own declaration.
!        (Sm (Anonymous_Collections, Elist_Id),
          Sm (Associated_Node_For_Itype, Node_Id),
          Sm (DT_Position, Uint,
              Pre_Get => "Present (DTC_Entity (N))"),
          Sm (DTC_Entity, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1066,1075 ****
          Sm (Is_Primitive_Wrapper, Flag),
          Sm (Is_Private_Primitive, Flag),
          Sm (Is_Valued_Procedure, Flag),
-         Sm (LSP_Subprogram, Node_Id),
          Sm (Next_Inlined_Subprogram, Node_Id),
          Sm (Original_Protected_Subprogram, Node_Id),
-         Sm (Postconditions_Proc, Node_Id),
          Sm (Protected_Subprogram, Node_Id),
          Sm (Protection_Object, Node_Id),
          Sm (Receiving_Entry, Node_Id),
--- 1064,1071 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1113,1119 ****
          Sm (Is_Elaboration_Checks_OK_Id, Flag),
          Sm (Is_Elaboration_Warnings_OK_Id, Flag),
          Sm (Last_Entity, Node_Id),
-         Sm (Postconditions_Proc, Node_Id),
          Sm (Protected_Body_Subprogram, Node_Id),
          Sm (Protection_Object, Node_Id),
          Sm (Scope_Depth_Value, Unat),
--- 1109,1114 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1140,1146 ****
          Sm (Is_Elaboration_Warnings_OK_Id, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Needs_No_Actuals, Flag),
-         Sm (Postconditions_Proc, Node_Id),
          Sm (Protected_Body_Subprogram, Node_Id),
          Sm (Protection_Object, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id),
--- 1135,1140 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1171,1177 ****
         --  itself uses E_Exception for the Ekind, the implicit type that is
         --  created to represent its type uses the Ekind E_Exception_Type.
         (Sm (Alignment, Unat),
-         Sm (Esize, Uint),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Raised, Flag),
          Sm (Register_Exception_Call, Node_Id),
--- 1165,1170 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1198,1203 ****
--- 1191,1198 ----
         (Sm (Has_Out_Or_In_Out_Parameter, Flag),
          Sm (Is_Primitive, Flag),
          Sm (Next_Inlined_Subprogram, Node_Id),
+         Sm (No_Raise, Flag),
+         Sm (No_Return, Flag),
          Sm (Overridden_Operation, Node_Id)));
  
     Cc (E_Generic_Function, Generic_Subprogram_Kind,
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1254,1260 ****
     Cc (E_Package, Entity_Kind,
         --  A package, created by a package declaration
         (Sm (Abstract_States, Elist_Id),
!         Sm (Anonymous_Masters, Elist_Id),
          Sm (Associated_Formal_Package, Node_Id),
          Sm (Body_Entity, Node_Id),
          Sm (Body_Needed_For_Inlining, Flag),
--- 1249,1255 ----
     Cc (E_Package, Entity_Kind,
         --  A package, created by a package declaration
         (Sm (Abstract_States, Elist_Id),
!         Sm (Anonymous_Collections, Elist_Id),
          Sm (Associated_Formal_Package, Node_Id),
          Sm (Body_Entity, Node_Id),
          Sm (Body_Needed_For_Inlining, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1286,1291 ****
--- 1281,1287 ----
          Sm (Related_Instance, Node_Id),
          Sm (Renamed_In_Spec, Flag),
          Sm (Renamed_Or_Alias, Node_Id),
+         Sm (Renames_Limited_View, Flag),
          Sm (Scope_Depth_Value, Unat),
          Sm (SPARK_Aux_Pragma, Node_Id),
          Sm (SPARK_Aux_Pragma_Inherited, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1333,1339 ****
         --  to represent the entity for the body. This entity serves almost no
         --  function, since all semantic analysis uses the subprogram entity
         --  for the declaration (E_Function or E_Procedure).
!        (Sm (Anonymous_Masters, Elist_Id),
          Sm (Contract, Node_Id),
          Sm (Extra_Formals, Node_Id),
          Sm (First_Entity, Node_Id),
--- 1329,1335 ----
         --  to represent the entity for the body. This entity serves almost no
         --  function, since all semantic analysis uses the subprogram entity
         --  for the declaration (E_Function or E_Procedure).
!        (Sm (Anonymous_Collections, Elist_Id),
          Sm (Contract, Node_Id),
          Sm (Extra_Formals, Node_Id),
          Sm (First_Entity, Node_Id),
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-gen-gen_nodes.adb gcc-15.1.0/gcc/ada/gen_il-gen-gen_nodes.adb
*** gcc-14.2.0/gcc/ada/gen_il-gen-gen_nodes.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-gen-gen_nodes.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 98,104 ****
         (Sy (Name, Node_Id, Default_Empty),
          Sy (Chars, Name_Id, Default_No_Name),
          Sy (Expression, Node_Id, Default_Empty),
-         Sm (Address_Warning_Posted, Flag),
          Sm (Check_Address_Alignment, Flag),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
          Sm (From_Aspect_Specification, Flag),
--- 98,103 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 134,150 ****
         (Sy (Chars, Name_Id, Default_No_Name)));
  
     Ab (N_Entity, N_Has_Etype,
!        (Sm (Next_Entity, Node_Id),
          Sm (Scope, Node_Id)));
  
!    Cc (N_Defining_Character_Literal, N_Entity,
!        (Sy (Chars, Name_Id, Default_No_Name)));
! 
!    Cc (N_Defining_Identifier, N_Entity,
!        (Sy (Chars, Name_Id, Default_No_Name)));
! 
!    Cc (N_Defining_Operator_Symbol, N_Entity,
!        (Sy (Chars, Name_Id, Default_No_Name)));
  
     Ab (N_Subexpr, N_Has_Etype,
     --  Nodes with expression fields
--- 133,145 ----
         (Sy (Chars, Name_Id, Default_No_Name)));
  
     Ab (N_Entity, N_Has_Etype,
!        (Sy (Chars, Name_Id, Default_No_Name),
!         Sm (Next_Entity, Node_Id),
          Sm (Scope, Node_Id)));
  
!    Cc (N_Defining_Character_Literal, N_Entity);
!    Cc (N_Defining_Identifier, N_Entity);
!    Cc (N_Defining_Operator_Symbol, N_Entity);
  
     Ab (N_Subexpr, N_Has_Etype,
     --  Nodes with expression fields
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 176,187 ****
          Sm (Redundant_Use, Flag)));
  
     Ab (N_Direct_Name, N_Has_Entity,
!        (Sm (Has_Private_View, Flag),
          Sm (Has_Secondary_Private_View, Flag)));
  
     Cc (N_Identifier, N_Direct_Name,
!        (Sy (Chars, Name_Id, Default_No_Name),
!         Sm (Atomic_Sync_Required, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
--- 171,182 ----
          Sm (Redundant_Use, Flag)));
  
     Ab (N_Direct_Name, N_Has_Entity,
!        (Sy (Chars, Name_Id, Default_No_Name),
!         Sm (Has_Private_View, Flag),
          Sm (Has_Secondary_Private_View, Flag)));
  
     Cc (N_Identifier, N_Direct_Name,
!        (Sm (Atomic_Sync_Required, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 189,362 ****
          Sm (Redundant_Use, Flag)));
  
     Cc (N_Operator_Symbol, N_Direct_Name,
!        (Sy (Chars, Name_Id, Default_No_Name),
!         Sy (Strval, String_Id)));
  
     Cc (N_Character_Literal, N_Direct_Name,
!        (Sy (Chars, Name_Id, Default_No_Name),
!         Sy (Char_Literal_Value, Unat)));
  
     Ab (N_Op, N_Has_Entity,
!        (Sm (Do_Overflow_Check, Flag),
          Sm (Has_Private_View, Flag),
          Sm (Has_Secondary_Private_View, Flag)));
  
!    Ab (N_Binary_Op, N_Op);
! 
!    Cc (N_Op_Add, N_Binary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Concat, N_Binary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Is_Component_Left_Opnd, Flag),
          Sm (Is_Component_Right_Opnd, Flag)));
  
     Cc (N_Op_Expon, N_Binary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Is_Power_Of_2_For_Shift, Flag)));
  
!    Cc (N_Op_Subtract, N_Binary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Ab (N_Multiplying_Operator, N_Binary_Op);
  
     Cc (N_Op_Divide, N_Multiplying_Operator,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Division_Check, Flag),
          Sm (Rounded_Result, Flag)));
  
     Cc (N_Op_Mod, N_Multiplying_Operator,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Division_Check, Flag)));
  
     Cc (N_Op_Multiply, N_Multiplying_Operator,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Rounded_Result, Flag)));
  
     Cc (N_Op_Rem, N_Multiplying_Operator,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Division_Check, Flag)));
  
     Ab (N_Op_Boolean, N_Binary_Op);
     --  Binary operators that yield a result of a boolean type
  
     Cc (N_Op_And, N_Op_Boolean,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Length_Check, Flag)));
! 
!    Ab (N_Op_Compare, N_Op_Boolean);
! 
!    Cc (N_Op_Eq, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
! 
!    Cc (N_Op_Ge, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
! 
!    Cc (N_Op_Gt, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
! 
!    Cc (N_Op_Le, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
!    Cc (N_Op_Lt, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
!    Cc (N_Op_Ne, N_Op_Compare,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Or, N_Op_Boolean,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Length_Check, Flag)));
  
     Cc (N_Op_Xor, N_Op_Boolean,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Do_Length_Check, Flag)));
  
     Ab (N_Op_Shift, N_Binary_Op,
         (Sm (Shift_Count_OK, Flag)));
  
!    Cc (N_Op_Rotate_Left, N_Op_Shift,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Cc (N_Op_Rotate_Right, N_Op_Shift,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Cc (N_Op_Shift_Left, N_Op_Shift,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Cc (N_Op_Shift_Right, N_Op_Shift,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Cc (N_Op_Shift_Right_Arithmetic, N_Op_Shift,
!        (Sm (Chars, Name_Id),
!         Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Ab (N_Unary_Op, N_Op);
! 
!    Cc (N_Op_Abs, N_Unary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Right_Opnd, Node_Id)));
! 
!    Cc (N_Op_Minus, N_Unary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Right_Opnd, Node_Id)));
  
!    Cc (N_Op_Not, N_Unary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Right_Opnd, Node_Id)));
  
!    Cc (N_Op_Plus, N_Unary_Op,
!        (Sm (Chars, Name_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Attribute_Reference, N_Has_Entity,
         (Sy (Prefix, Node_Id),
--- 184,268 ----
          Sm (Redundant_Use, Flag)));
  
     Cc (N_Operator_Symbol, N_Direct_Name,
!        (Sy (Strval, String_Id)));
  
     Cc (N_Character_Literal, N_Direct_Name,
!        (Sy (Char_Literal_Value, Unat)));
  
     Ab (N_Op, N_Has_Entity,
!        (Sm (Chars, Name_Id),
!         Sm (Do_Overflow_Check, Flag),
          Sm (Has_Private_View, Flag),
          Sm (Has_Secondary_Private_View, Flag)));
  
!    Ab (N_Binary_Op, N_Op,
!        (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id)));
  
+    Cc (N_Op_Add, N_Binary_Op);
+ 
     Cc (N_Op_Concat, N_Binary_Op,
!        (Sm (Is_Component_Left_Opnd, Flag),
          Sm (Is_Component_Right_Opnd, Flag)));
  
     Cc (N_Op_Expon, N_Binary_Op,
!        (Sm (Is_Power_Of_2_For_Shift, Flag)));
  
!    Cc (N_Op_Subtract, N_Binary_Op);
  
     Ab (N_Multiplying_Operator, N_Binary_Op);
  
     Cc (N_Op_Divide, N_Multiplying_Operator,
!        (Sm (Do_Division_Check, Flag),
          Sm (Rounded_Result, Flag)));
  
     Cc (N_Op_Mod, N_Multiplying_Operator,
!        (Sm (Do_Division_Check, Flag)));
  
     Cc (N_Op_Multiply, N_Multiplying_Operator,
!        (Sm (Rounded_Result, Flag)));
  
     Cc (N_Op_Rem, N_Multiplying_Operator,
!        (Sm (Do_Division_Check, Flag)));
  
     Ab (N_Op_Boolean, N_Binary_Op);
     --  Binary operators that yield a result of a boolean type
  
     Cc (N_Op_And, N_Op_Boolean,
!        (Sm (Do_Length_Check, Flag)));
  
!    Ab (N_Op_Compare, N_Op_Boolean,
!        (Sm (Compare_Type, Node_Id)));
  
!    Cc (N_Op_Eq, N_Op_Compare);
!    Cc (N_Op_Ge, N_Op_Compare);
!    Cc (N_Op_Gt, N_Op_Compare);
!    Cc (N_Op_Le, N_Op_Compare);
!    Cc (N_Op_Lt, N_Op_Compare);
!    Cc (N_Op_Ne, N_Op_Compare);
  
     Cc (N_Op_Or, N_Op_Boolean,
!        (Sm (Do_Length_Check, Flag)));
  
     Cc (N_Op_Xor, N_Op_Boolean,
!        (Sm (Do_Length_Check, Flag)));
  
     Ab (N_Op_Shift, N_Binary_Op,
         (Sm (Shift_Count_OK, Flag)));
  
!    Cc (N_Op_Rotate_Left, N_Op_Shift);
!    Cc (N_Op_Rotate_Right, N_Op_Shift);
!    Cc (N_Op_Shift_Left, N_Op_Shift);
!    Cc (N_Op_Shift_Right, N_Op_Shift);
!    Cc (N_Op_Shift_Right_Arithmetic, N_Op_Shift);
  
!    Ab (N_Unary_Op, N_Op,
!        (Sy (Right_Opnd, Node_Id)));
  
!    Cc (N_Op_Abs, N_Unary_Op);
!    Cc (N_Op_Minus, N_Unary_Op);
!    Cc (N_Op_Not, N_Unary_Op);
!    Cc (N_Op_Plus, N_Unary_Op);
  
     Cc (N_Attribute_Reference, N_Has_Entity,
         (Sy (Prefix, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 370,432 ****
          Sm (Must_Be_Byte_Aligned, Flag),
          Sm (Redundant_Use, Flag)));
  
!    Ab (N_Membership_Test, N_Subexpr);
! 
!    Cc (N_In, N_Membership_Test,
!        (Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sy (Alternatives, List_Id, Default_No_List),
!         Sy (No_Minimize_Eliminate, Flag)));
! 
!    Cc (N_Not_In, N_Membership_Test,
         (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id),
          Sy (Alternatives, List_Id, Default_No_List),
          Sy (No_Minimize_Eliminate, Flag)));
  
!    Ab (N_Short_Circuit, N_Subexpr);
  
!    Cc (N_And_Then, N_Short_Circuit,
         (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id),
          Sm (Actions, List_Id)));
  
!    Cc (N_Or_Else, N_Short_Circuit,
!        (Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Actions, List_Id)));
  
     Ab (N_Subprogram_Call, N_Subexpr,
!        (Sm (Controlling_Argument, Node_Id),
          Sm (First_Named_Actual, Node_Id),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
!         Sm (No_Elaboration_Check, Flag)));
  
     Cc (N_Function_Call, N_Subprogram_Call,
!        (Sy (Name, Node_Id, Default_Empty),
!         Sy (Parameter_Associations, List_Id, Default_No_List),
!         Sm (Is_Expanded_Build_In_Place_Call, Flag)));
! 
!    Cc (N_Procedure_Call_Statement, N_Subprogram_Call,
!        (Sy (Name, Node_Id, Default_Empty),
!         Sy (Parameter_Associations, List_Id, Default_No_List)));
! 
!    Ab (N_Raise_xxx_Error, N_Subexpr);
  
!    Cc (N_Raise_Constraint_Error, N_Raise_xxx_Error,
!        (Sy (Condition, Node_Id, Default_Empty),
!         Sy (Reason, Unat)));
  
!    Cc (N_Raise_Program_Error, N_Raise_xxx_Error,
         (Sy (Condition, Node_Id, Default_Empty),
          Sy (Reason, Unat)));
  
!    Cc (N_Raise_Storage_Error, N_Raise_xxx_Error,
!        (Sy (Condition, Node_Id, Default_Empty),
!         Sy (Reason, Unat)));
  
     Ab (N_Numeric_Or_String_Literal, N_Subexpr);
  
--- 276,322 ----
          Sm (Must_Be_Byte_Aligned, Flag),
          Sm (Redundant_Use, Flag)));
  
!    Ab (N_Membership_Test, N_Subexpr,
         (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id),
          Sy (Alternatives, List_Id, Default_No_List),
          Sy (No_Minimize_Eliminate, Flag)));
  
!    Cc (N_In, N_Membership_Test);
!    Cc (N_Not_In, N_Membership_Test);
  
!    Ab (N_Short_Circuit, N_Subexpr,
         (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id),
          Sm (Actions, List_Id)));
  
!    Cc (N_And_Then, N_Short_Circuit);
!    Cc (N_Or_Else, N_Short_Circuit);
  
     Ab (N_Subprogram_Call, N_Subexpr,
!        (Sy (Name, Node_Id, Default_Empty),
!         Sy (Parameter_Associations, List_Id, Default_No_List),
!         Sm (Controlling_Argument, Node_Id),
          Sm (First_Named_Actual, Node_Id),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
!         Sm (No_Elaboration_Check, Flag),
!         Sm (Is_Expanded_Prefixed_Call, Flag)));
  
     Cc (N_Function_Call, N_Subprogram_Call,
!        (Sm (Is_Expanded_Build_In_Place_Call, Flag)));
  
!    Cc (N_Procedure_Call_Statement, N_Subprogram_Call);
  
!    Ab (N_Raise_xxx_Error, N_Subexpr,
         (Sy (Condition, Node_Id, Default_Empty),
          Sy (Reason, Unat)));
  
!    Cc (N_Raise_Constraint_Error, N_Raise_xxx_Error);
!    Cc (N_Raise_Program_Error, N_Raise_xxx_Error);
!    Cc (N_Raise_Storage_Error, N_Raise_xxx_Error);
  
     Ab (N_Numeric_Or_String_Literal, N_Subexpr);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 444,449 ****
--- 334,340 ----
     Cc (N_String_Literal, N_Numeric_Or_String_Literal,
         (Sy (Strval, String_Id),
          Sy (Is_Folded_In_Parser, Flag),
+         Sy (Is_Interpolated_String_Literal, Flag),
          Sm (Has_Wide_Character, Flag),
          Sm (Has_Wide_Wide_Character, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 460,469 ****
--- 351,364 ----
         (Sy (Actions, List_Id, Default_No_List),
          Sy (Expression, Node_Id, Default_Empty)));
  
+    Cc (N_External_Initializer, N_Subexpr,
+        (Sy (File_Index, Source_File_Index)));
+ 
     Cc (N_If_Expression, N_Subexpr,
         (Sy (Expressions, List_Id, Default_No_List),
          Sy (Is_Elsif, Flag),
          Sm (Do_Overflow_Check, Flag),
+         Sm (Expansion_Delayed, Flag),
          Sm (Else_Actions, List_Id),
          Sm (Then_Actions, List_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 471,477 ****
         (Sy (Prefix, Node_Id),
          Sy (Expressions, List_Id, Default_No_List),
          Sm (Atomic_Sync_Required, Flag),
!         Sm (Generalized_Indexing, Node_Id)));
  
     Cc (N_Null, N_Subexpr);
  
--- 366,373 ----
         (Sy (Prefix, Node_Id),
          Sy (Expressions, List_Id, Default_No_List),
          Sm (Atomic_Sync_Required, Flag),
!         Sm (Generalized_Indexing, Node_Id),
!         Sm (Kill_Range_Check, Flag)));
  
     Cc (N_Null, N_Subexpr);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 481,490 ****
          Sm (Is_Qualified_Universal_Literal, Flag)));
  
     Cc (N_Quantified_Expression, N_Subexpr,
!        (Sy (Iterator_Specification, Node_Id, Default_Empty),
          Sy (Loop_Parameter_Specification, Node_Id, Default_Empty),
!         Sy (Condition, Node_Id, Default_Empty),
!         Sy (All_Present, Flag)));
  
     Cc (N_Aggregate, N_Subexpr,
         (Sy (Expressions, List_Id, Default_No_List),
--- 377,386 ----
          Sm (Is_Qualified_Universal_Literal, Flag)));
  
     Cc (N_Quantified_Expression, N_Subexpr,
!        (Sy (All_Present, Flag),
!         Sy (Iterator_Specification, Node_Id, Default_Empty),
          Sy (Loop_Parameter_Specification, Node_Id, Default_Empty),
!         Sy (Condition, Node_Id, Default_Empty)));
  
     Cc (N_Aggregate, N_Subexpr,
         (Sy (Expressions, List_Id, Default_No_List),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 492,498 ****
          Sy (Null_Record_Present, Flag),
          Sy (Is_Parenthesis_Aggregate, Flag),
          Sy (Is_Homogeneous_Aggregate, Flag),
-         Sy (Is_Enum_Array_Aggregate, Flag),
          Sm (Aggregate_Bounds_Or_Ancestor_Type, Node_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
          Sm (Compile_Time_Known_Aggregate, Flag),
--- 388,393 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 500,508 ****
          Sm (Has_Self_Reference, Flag)));
  
     Cc (N_Allocator, N_Subexpr,
!        (Sy (Expression, Node_Id, Default_Empty),
!         Sy (Subpool_Handle_Name, Node_Id, Default_Empty),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sm (For_Special_Return_Object, Flag),
          Sm (Do_Storage_Check, Flag),
          Sm (Is_Dynamic_Coextension, Flag),
--- 395,403 ----
          Sm (Has_Self_Reference, Flag)));
  
     Cc (N_Allocator, N_Subexpr,
!        (Sy (Subpool_Handle_Name, Node_Id, Default_Empty),
          Sy (Null_Exclusion_Present, Flag, Default_False),
+         Sy (Expression, Node_Id, Default_Empty),
          Sm (For_Special_Return_Object, Flag),
          Sm (Do_Storage_Check, Flag),
          Sm (Is_Dynamic_Coextension, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 514,520 ****
     Cc (N_Case_Expression, N_Subexpr,
         (Sy (Expression, Node_Id, Default_Empty),
          Sy (Alternatives, List_Id, Default_No_List),
!         Sm (Do_Overflow_Check, Flag)));
  
     Cc (N_Delta_Aggregate, N_Subexpr,
         (Sy (Expression, Node_Id, Default_Empty),
--- 409,416 ----
     Cc (N_Case_Expression, N_Subexpr,
         (Sy (Expression, Node_Id, Default_Empty),
          Sy (Alternatives, List_Id, Default_No_List),
!         Sm (Do_Overflow_Check, Flag),
!         Sm (Expansion_Delayed, Flag)));
  
     Cc (N_Delta_Aggregate, N_Subexpr,
         (Sy (Expression, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 568,576 ****
          Sm (Float_Truncate, Flag),
          Sm (Rounded_Result, Flag)));
  
-    Cc (N_Unchecked_Expression, N_Subexpr,
-        (Sy (Expression, Node_Id, Default_Empty)));
- 
     Cc (N_Unchecked_Type_Conversion, N_Subexpr,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
--- 464,469 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 601,611 ****
          Sm (Prev_Ids, Flag)));
  
     Cc (N_Entry_Declaration, N_Declaration,
!        (Sy (Defining_Identifier, Node_Id),
          Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
-         Sy (Must_Override, Flag),
-         Sy (Must_Not_Override, Flag),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
--- 494,504 ----
          Sm (Prev_Ids, Flag)));
  
     Cc (N_Entry_Declaration, N_Declaration,
!        (Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Defining_Identifier, Node_Id),
          Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 620,627 ****
          Sy (In_Present, Flag),
          Sy (Out_Present, Flag),
          Sy (Null_Exclusion_Present, Flag, Default_False),
-         Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Access_Definition, Node_Id, Default_Empty),
          Sy (Default_Expression, Node_Id, Default_Empty),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (More_Ids, Flag),
--- 513,520 ----
          Sy (In_Present, Flag),
          Sy (Out_Present, Flag),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Access_Definition, Node_Id, Default_Empty),
+         Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Default_Expression, Node_Id, Default_Empty),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (More_Ids, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 652,668 ****
  
     Cc (N_Iterator_Specification, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Reverse_Present, Flag),
          Sy (Of_Present, Flag),
!         Sy (Iterator_Filter, Node_Id, Default_Empty),
!         Sy (Subtype_Indication, Node_Id, Default_Empty)));
  
     Cc (N_Loop_Parameter_Specification, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Reverse_Present, Flag),
!         Sy (Iterator_Filter, Node_Id, Default_Empty),
!         Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty)));
  
     Cc (N_Object_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
--- 545,561 ----
  
     Cc (N_Iterator_Specification, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
!         Sy (Subtype_Indication, Node_Id, Default_Empty),
          Sy (Of_Present, Flag),
!         Sy (Reverse_Present, Flag),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Iterator_Filter, Node_Id, Default_Empty)));
  
     Cc (N_Loop_Parameter_Specification, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Reverse_Present, Flag),
!         Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty),
!         Sy (Iterator_Filter, Node_Id, Default_Empty)));
  
     Cc (N_Object_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 686,694 ****
     Cc (N_Protected_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Protected_Definition, Node_Id),
-         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
     Cc (N_Private_Extension_Declaration, N_Declaration,
--- 579,587 ----
     Cc (N_Protected_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Protected_Definition, Node_Id),
          Sm (Corresponding_Body, Node_Id)));
  
     Cc (N_Private_Extension_Declaration, N_Declaration,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 724,752 ****
         (Sm (Generic_Parent, Node_Id)));
  
     Cc (N_Function_Specification, N_Subprogram_Specification,
!        (Sy (Defining_Unit_Name, Node_Id),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Null_Exclusion_Present, Flag, Default_False),
!         Sy (Result_Definition, Node_Id),
!         Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag)));
  
     Cc (N_Procedure_Specification, N_Subprogram_Specification,
!        (Sy (Defining_Unit_Name, Node_Id),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Null_Present, Flag),
-         Sy (Must_Override, Flag),
-         Sy (Must_Not_Override, Flag),
-         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Null_Statement, Node_Id)));
  
     Ab (N_Access_To_Subprogram_Definition, Node_Kind);
  
     Cc (N_Access_Function_Definition, N_Access_To_Subprogram_Definition,
         (Sy (Null_Exclusion_Present, Flag, Default_False),
-         Sy (Null_Exclusion_In_Return_Present, Flag),
          Sy (Protected_Present, Flag),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Result_Definition, Node_Id)));
  
     Cc (N_Access_Procedure_Definition, N_Access_To_Subprogram_Definition,
--- 617,644 ----
         (Sm (Generic_Parent, Node_Id)));
  
     Cc (N_Function_Specification, N_Subprogram_Specification,
!        (Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Defining_Unit_Name, Node_Id),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Null_Exclusion_Present, Flag, Default_False),
!         Sy (Result_Definition, Node_Id)));
  
     Cc (N_Procedure_Specification, N_Subprogram_Specification,
!        (Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Defining_Unit_Name, Node_Id),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Null_Present, Flag),
          Sm (Null_Statement, Node_Id)));
  
     Ab (N_Access_To_Subprogram_Definition, Node_Kind);
  
     Cc (N_Access_Function_Definition, N_Access_To_Subprogram_Definition,
         (Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Protected_Present, Flag),
          Sy (Parameter_Specifications, List_Id, Default_No_List),
+         Sy (Null_Exclusion_In_Return_Present, Flag),
          Sy (Result_Definition, Node_Id)));
  
     Cc (N_Access_Procedure_Definition, N_Access_To_Subprogram_Definition,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 766,774 ****
     Cc (N_Task_Type_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Task_Definition, Node_Id, Default_Empty),
-         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
     Ab (N_Body_Stub, N_Later_Decl_Item,
--- 658,666 ----
     Cc (N_Task_Type_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Task_Definition, Node_Id, Default_Empty),
          Sm (Corresponding_Body, Node_Id)));
  
     Ab (N_Body_Stub, N_Later_Decl_Item,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 793,799 ****
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Generic_Instantiation, N_Later_Decl_Item,
!        (Sm (Instance_Spec, Node_Id),
          Sm (Is_Declaration_Level_Node, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
--- 685,694 ----
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Generic_Instantiation, N_Later_Decl_Item,
!        (Sy (Defining_Unit_Name, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List),
!         Sm (Instance_Spec, Node_Id),
          Sm (Is_Declaration_Level_Node, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 801,850 ****
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Parent_Spec, Node_Id)));
  
!    Ab (N_Subprogram_Instantiation, N_Generic_Instantiation);
! 
!    Cc (N_Function_Instantiation, N_Subprogram_Instantiation,
!        (Sy (Defining_Unit_Name, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List),
!         Sy (Must_Override, Flag),
          Sy (Must_Not_Override, Flag),
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
!    Cc (N_Procedure_Instantiation, N_Subprogram_Instantiation,
!        (Sy (Defining_Unit_Name, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List),
!         Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Package_Instantiation, N_Generic_Instantiation,
!        (Sy (Defining_Unit_Name, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Proper_Body, N_Later_Decl_Item,
         (Sm (Corresponding_Spec, Node_Id),
          Sm (Was_Originally_Stub, Flag)));
  
!    Ab (N_Unit_Body, N_Proper_Body);
  
!    Cc (N_Package_Body, N_Unit_Body,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
!         Sy (At_End_Proc, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
!    Cc (N_Subprogram_Body, N_Unit_Body,
         (Sy (Specification, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (Bad_Is_Detected, Flag),
          Sy (At_End_Proc, Node_Id, Default_Empty),
-         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Acts_As_Spec, Flag),
          Sm (Corresponding_Entry_Body, Node_Id),
--- 696,732 ----
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Parent_Spec, Node_Id)));
  
!    Ab (N_Subprogram_Instantiation, N_Generic_Instantiation,
!        (Sy (Must_Override, Flag),
          Sy (Must_Not_Override, Flag),
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
!    Cc (N_Function_Instantiation, N_Subprogram_Instantiation);
!    Cc (N_Procedure_Instantiation, N_Subprogram_Instantiation);
  
     Cc (N_Package_Instantiation, N_Generic_Instantiation,
!        (Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Proper_Body, N_Later_Decl_Item,
         (Sm (Corresponding_Spec, Node_Id),
          Sm (Was_Originally_Stub, Flag)));
  
!    Ab (N_Lib_Unit_Body, N_Proper_Body);
  
!    Cc (N_Package_Body, N_Lib_Unit_Body,
         (Sy (Defining_Unit_Name, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
!         Sy (At_End_Proc, Node_Id, Default_Empty)));
  
!    Cc (N_Subprogram_Body, N_Lib_Unit_Body,
         (Sy (Specification, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (Bad_Is_Detected, Flag),
          Sy (At_End_Proc, Node_Id, Default_Empty),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Acts_As_Spec, Flag),
          Sm (Corresponding_Entry_Body, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 859,874 ****
  
     Cc (N_Protected_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
!         Sy (End_Label, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Task_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
-         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Is_Task_Master, Flag)));
  
--- 741,756 ----
  
     Cc (N_Protected_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Declarations, List_Id, Default_No_List),
!         Sy (End_Label, Node_Id, Default_Empty)));
  
     Cc (N_Task_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Is_Task_Master, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 885,893 ****
  
     Cc (N_Single_Task_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Task_Definition, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subprogram_Declaration, N_Later_Decl_Item,
         (Sy (Specification, Node_Id),
--- 767,775 ----
  
     Cc (N_Single_Task_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Task_Definition, Node_Id, Default_Empty)));
  
     Cc (N_Subprogram_Declaration, N_Later_Decl_Item,
         (Sy (Specification, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 900,906 ****
  
     Cc (N_Use_Package_Clause, N_Later_Decl_Item,
         (Sy (Name, Node_Id, Default_Empty),
!         Sy (Is_Effective_Use_Clause, Flag),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
          Sm (Hidden_By_Use_Clause, Elist_Id),
          Sm (More_Ids, Flag),
--- 782,788 ----
  
     Cc (N_Use_Package_Clause, N_Later_Decl_Item,
         (Sy (Name, Node_Id, Default_Empty),
!         Sm (Is_Effective_Use_Clause, Flag),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
          Sm (Hidden_By_Use_Clause, Elist_Id),
          Sm (More_Ids, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 915,922 ****
     Cc (N_Generic_Package_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Generic_Formal_Declarations, List_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Activation_Chain_Entity, Node_Id)));
  
     Cc (N_Generic_Subprogram_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
--- 797,803 ----
     Cc (N_Generic_Package_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Generic_Formal_Declarations, List_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Generic_Subprogram_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1048,1060 ****
         (Sy (Entry_Call_Alternative, Node_Id),
          Sy (Else_Statements, List_Id, Default_No_List)));
  
!    Ab (N_Delay_Statement, N_Statement_Other_Than_Procedure_Call);
! 
!    Cc (N_Delay_Relative_Statement, N_Delay_Statement,
         (Sy (Expression, Node_Id, Default_Empty)));
  
!    Cc (N_Delay_Until_Statement, N_Delay_Statement,
!        (Sy (Expression, Node_Id, Default_Empty)));
  
     Cc (N_Entry_Call_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Name, Node_Id, Default_Empty),
--- 929,939 ----
         (Sy (Entry_Call_Alternative, Node_Id),
          Sy (Else_Statements, List_Id, Default_No_List)));
  
!    Ab (N_Delay_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Expression, Node_Id, Default_Empty)));
  
!    Cc (N_Delay_Relative_Statement, N_Delay_Statement);
!    Cc (N_Delay_Until_Statement, N_Delay_Statement);
  
     Cc (N_Entry_Call_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Name, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1068,1074 ****
         (Sy (Expression, Node_Id, Default_Empty),
          Sm (Actual_Designated_Subtype, Node_Id),
          Sm (Procedure_To_Call, Node_Id),
!         Sm (Storage_Pool, Node_Id)));
  
     Cc (N_Goto_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Name, Node_Id, Default_Empty),
--- 947,954 ----
         (Sy (Expression, Node_Id, Default_Empty),
          Sm (Actual_Designated_Subtype, Node_Id),
          Sm (Procedure_To_Call, Node_Id),
!         Sm (Storage_Pool, Node_Id),
!         Sm (For_Allocator, Flag)));
  
     Cc (N_Goto_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Name, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1180,1200 ****
          Sy (Pragmas_Before, List_Id, Default_No_List),
          Sy (Pragmas_After, List_Id, Default_No_List)));
  
!    Ab (N_Formal_Subprogram_Declaration, Node_Kind);
! 
!    Cc (N_Formal_Abstract_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Box_Present, Flag),
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
!    Cc (N_Formal_Concrete_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
!        (Sy (Specification, Node_Id),
!         Sy (Default_Name, Node_Id, Default_Empty),
!         Sy (Expression, Node_Id, Default_Empty),
!         Sy (Box_Present, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Push_Pop_xxx_Label, Node_Kind);
  
--- 1060,1075 ----
          Sy (Pragmas_Before, List_Id, Default_No_List),
          Sy (Pragmas_After, List_Id, Default_No_List)));
  
!    Ab (N_Formal_Subprogram_Declaration, Node_Kind,
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Box_Present, Flag),
          Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
!    Cc (N_Formal_Abstract_Subprogram_Declaration, N_Formal_Subprogram_Declaration);
! 
!    Cc (N_Formal_Concrete_Subprogram_Declaration, N_Formal_Subprogram_Declaration);
  
     Ab (N_Push_Pop_xxx_Label, Node_Kind);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1202,1218 ****
         (Sm (Exception_Label, Node_Id)));
  
     Cc (N_Push_Constraint_Error_Label, N_Push_xxx_Label);
- 
     Cc (N_Push_Program_Error_Label, N_Push_xxx_Label);
- 
     Cc (N_Push_Storage_Error_Label, N_Push_xxx_Label);
  
     Ab (N_Pop_xxx_Label, N_Push_Pop_xxx_Label);
  
     Cc (N_Pop_Constraint_Error_Label, N_Pop_xxx_Label);
- 
     Cc (N_Pop_Program_Error_Label, N_Pop_xxx_Label);
- 
     Cc (N_Pop_Storage_Error_Label, N_Pop_xxx_Label);
  
     Ab (N_SCIL_Node, Node_Kind,
--- 1077,1089 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1242,1260 ****
          Sy (Access_To_Subprogram_Definition, Node_Id, Default_Empty)));
  
     Cc (N_Access_To_Object_Definition, Node_Kind,
!        (Sy (All_Present, Flag),
!         Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Null_Excluding_Subtype, Flag),
!         Sy (Subtype_Indication, Node_Id, Default_Empty),
!         Sy (Constant_Present, Flag)));
  
     Cc (N_Aspect_Specification, Node_Kind,
         (Sy (Identifier, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Class_Present, Flag),
-         Sy (Split_PPC, Flag),
          Sm (Aspect_On_Partial_View, Flag),
          Sm (Aspect_Rep_Item, Node_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
          Sm (Expression_Copy, Node_Id),
          Sm (Is_Boolean_Aspect, Flag),
--- 1113,1131 ----
          Sy (Access_To_Subprogram_Definition, Node_Id, Default_Empty)));
  
     Cc (N_Access_To_Object_Definition, Node_Kind,
!        (Sy (Null_Exclusion_Present, Flag, Default_False),
!         Sy (All_Present, Flag),
!         Sy (Constant_Present, Flag),
          Sy (Null_Excluding_Subtype, Flag),
!         Sy (Subtype_Indication, Node_Id, Default_Empty)));
  
     Cc (N_Aspect_Specification, Node_Kind,
         (Sy (Identifier, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Class_Present, Flag),
          Sm (Aspect_On_Partial_View, Flag),
          Sm (Aspect_Rep_Item, Node_Id),
+         Sm (Aspect_Subprograms, Elist_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
          Sm (Expression_Copy, Node_Id),
          Sm (Is_Boolean_Aspect, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1331,1345 ****
     Cc (N_Contract, Node_Kind,
         (Sm (Classifications, Node_Id),
          Sm (Contract_Test_Cases, Node_Id),
-         Sm (Is_Expanded_Contract, Flag),
          Sm (Pre_Post_Conditions, Node_Id)));
  
     Cc (N_Derived_Type_Definition, Node_Kind,
         (Sy (Abstract_Present, Flag),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Subtype_Indication, Node_Id, Default_Empty),
          Sy (Record_Extension_Part, Node_Id, Default_Empty),
-         Sy (Limited_Present, Flag),
          Sy (Task_Present, Flag),
          Sy (Protected_Present, Flag),
          Sy (Synchronized_Present, Flag),
--- 1202,1215 ----
     Cc (N_Contract, Node_Kind,
         (Sm (Classifications, Node_Id),
          Sm (Contract_Test_Cases, Node_Id),
          Sm (Pre_Post_Conditions, Node_Id)));
  
     Cc (N_Derived_Type_Definition, Node_Kind,
         (Sy (Abstract_Present, Flag),
+         Sy (Limited_Present, Flag),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Subtype_Indication, Node_Id, Default_Empty),
          Sy (Record_Extension_Part, Node_Id, Default_Empty),
          Sy (Task_Present, Flag),
          Sy (Protected_Present, Flag),
          Sy (Synchronized_Present, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1376,1381 ****
--- 1246,1252 ----
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Discriminant_Type, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1434,1447 ****
          Sy (Interface_List, List_Id, Default_No_List)));
  
     Cc (N_Formal_Discrete_Type_Definition, Node_Kind);
- 
     Cc (N_Formal_Floating_Point_Definition, Node_Kind);
- 
     Cc (N_Formal_Modular_Type_Definition, Node_Kind);
- 
     Cc (N_Formal_Ordinary_Fixed_Point_Definition, Node_Kind);
  
!    Cc (N_Formal_Package_Declaration, Node_Kind,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
--- 1305,1315 ----
          Sy (Interface_List, List_Id, Default_No_List)));
  
     Cc (N_Formal_Discrete_Type_Definition, Node_Kind);
     Cc (N_Formal_Floating_Point_Definition, Node_Kind);
     Cc (N_Formal_Modular_Type_Definition, Node_Kind);
     Cc (N_Formal_Ordinary_Fixed_Point_Definition, Node_Kind);
  
!    Cc (N_Formal_Package_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1480,1485 ****
--- 1348,1354 ----
         (Sy (Statements, List_Id, Default_Empty_List),
          Sy (End_Label, Node_Id, Default_Empty),
          Sy (Exception_Handlers, List_Id, Default_No_List),
+         Sy (Finally_Statements, List_Id, Default_No_List),
          Sy (At_End_Proc, Node_Id, Default_Empty)));
  
     Cc (N_Index_Or_Discriminant_Constraint, Node_Kind,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1490,1495 ****
--- 1359,1365 ----
          Sy (Iterator_Specification, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Discrete_Choices, List_Id),
+         Sy (Reverse_Present, Flag),
          Sy (Box_Present, Flag),
          Sm (Loop_Actions, List_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1557,1563 ****
         (Sy (Pragma_Argument_Associations, List_Id, Default_No_List),
          Sy (Pragma_Identifier, Node_Id),
          Sy (Class_Present, Flag),
-         Sy (Split_PPC, Flag),
          Sm (Corresponding_Aspect, Node_Id),
          Sm (From_Aspect_Specification, Flag),
          Sm (Import_Interface_Present, Flag),
--- 1427,1432 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1569,1575 ****
          Sm (Is_Generic_Contract_Pragma, Flag),
          Sm (Is_Ignored, Flag),
          Sm (Is_Ignored_Ghost_Pragma, Flag),
-         Sm (Is_Inherited_Pragma, Flag),
          Sm (Next_Pragma, Node_Id),
          Sm (Next_Rep_Item, Node_Id),
          Sm (Uneval_Old_Accept, Flag),
--- 1438,1443 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1629,1636 ****
  
     Cc (N_Use_Type_Clause, Node_Kind,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
-         Sy (Is_Effective_Use_Clause, Flag),
          Sy (All_Present, Flag),
          Sm (Hidden_By_Use_Clause, Elist_Id),
          Sm (More_Ids, Flag),
          Sm (Next_Use_Clause, Node_Id),
--- 1497,1504 ----
  
     Cc (N_Use_Type_Clause, Node_Kind,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (All_Present, Flag),
+         Sm (Is_Effective_Use_Clause, Flag),
          Sm (Hidden_By_Use_Clause, Elist_Id),
          Sm (More_Ids, Flag),
          Sm (Next_Use_Clause, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1664,1671 ****
  
     Cc (N_With_Clause, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
-         Sy (Private_Present, Flag),
          Sy (Limited_Present, Flag),
          Sy (First_Name, Flag, Default_True),
          Sy (Last_Name, Flag, Default_True),
          Sm (Context_Installed, Flag),
--- 1532,1539 ----
  
     Cc (N_With_Clause, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
          Sy (Limited_Present, Flag),
+         Sy (Private_Present, Flag),
          Sy (First_Name, Flag, Default_True),
          Sy (Last_Name, Flag, Default_True),
          Sm (Context_Installed, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1674,1680 ****
          Sm (Elaborate_All_Present, Flag),
          Sm (Elaborate_Desirable, Flag),
          Sm (Elaborate_Present, Flag),
!         Sm (Implicit_With, Flag),
          Sm (Library_Unit, Node_Id),
          Sm (Limited_View_Installed, Flag),
          Sm (Next_Implicit_With, Node_Id),
--- 1542,1548 ----
          Sm (Elaborate_All_Present, Flag),
          Sm (Elaborate_Desirable, Flag),
          Sm (Elaborate_Present, Flag),
!         Sm (Is_Implicit_With, Flag),
          Sm (Library_Unit, Node_Id),
          Sm (Limited_View_Installed, Flag),
          Sm (Next_Implicit_With, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1788,1791 ****
--- 1656,1675 ----
               N_Variant));
     --  Nodes that can be alternatives in case contructs
  
+    Union (N_Lib_Unit_Declaration,
+           Children =>
+             (N_Package_Declaration,
+              N_Subprogram_Declaration,
+              N_Generic_Declaration,
+              N_Generic_Instantiation));
+    --  Nodes corresponding to the library_unit_declaration syntactic category
+ 
+    Union (N_Lib_Unit_Renaming_Declaration,
+           Children =>
+             (N_Package_Renaming_Declaration,
+              N_Subprogram_Renaming_Declaration,
+              N_Generic_Renaming_Declaration));
+    --  Nodes corresponding to the library_unit_renaming_declaration syntactic
+    --  category.
+ 
  end Gen_IL.Gen.Gen_Nodes;
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-gen.adb gcc-15.1.0/gcc/ada/gen_il-gen.adb
*** gcc-14.2.0/gcc/ada/gen_il-gen.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-gen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Gen_IL.Gen is
*** 158,164 ****
          new Type_Info'
            (Is_Union => False, Parent => Parent,
             Children | Concrete_Descendants => Type_Vectors.Empty_Vector,
!            First | Last | Fields => <>, -- filled in later
             Nmake_Assert => new String'(Nmake_Assert));
  
        if Parent /= No_Type then
--- 158,164 ----
          new Type_Info'
            (Is_Union => False, Parent => Parent,
             Children | Concrete_Descendants => Type_Vectors.Empty_Vector,
!            First | Last | Imm_Fields | Fields => <>, -- filled in later
             Nmake_Assert => new String'(Nmake_Assert));
  
        if Parent /= No_Type then
*************** package body Gen_IL.Gen is
*** 223,229 ****
  
           begin
              Append (Field_Table (Field).Have_This_Field, T);
!             Append (Type_Table (T).Fields, Field);
  
              pragma Assert (not Syntactic (T) (Field));
              Syntactic (T) (Field) := Is_Syntactic;
--- 223,229 ----
  
           begin
              Append (Field_Table (Field).Have_This_Field, T);
!             Append (Type_Table (T).Imm_Fields, Field);
  
              pragma Assert (not Syntactic (T) (Field));
              Syntactic (T) (Field) := Is_Syntactic;
*************** package body Gen_IL.Gen is
*** 491,496 ****
--- 491,499 ----
  
     procedure Compile is
        Fields_Per_Node : Fields_Per_Node_Type := (others => (others => False));
+       --  Mapping from node types to sets of fields that exist in that node
+       --  type. For abstract types, it's the set of fields that exist in
+       --  all descendants. For union types, currently not used.
  
        Type_Bit_Size : array (Concrete_Type) of Bit_Offset := (others => 0);
        Min_Node_Bit_Size : Bit_Offset := Bit_Offset'Last;
*************** package body Gen_IL.Gen is
*** 514,534 ****
        --  is needed. Default_Expression is also both, but the Parent is not
        --  needed. Then_Actions and Else_Actions are not syntactic, but the
        --  Parent is needed.
  
        procedure Check_Completeness;
        --  Check that every type and field has been declared
  
!       procedure Compute_Ranges (Root : Root_Type);
!       --  Compute the range of Node_Kind/Entity_Kind values for all the types
!       --  rooted at Root. The result is stored in the First and Last components
!       --  in the Type_Table.
  
!       procedure Compute_Fields_Per_Node;
        --  Compute which fields are in which nodes. Implements inheritance of
        --  fields. Set the Fields component of each Type_Info to include
!       --  inherited ones. Set the Is_Syntactic component in the Type_Table to
!       --  the set of fields that are syntactic in that node kind. Set the
!       --  Fields_Per_Node table.
  
        procedure Compute_Field_Offsets;
        --  Compute the offsets of each field. The results are stored in the
--- 517,541 ----
        --  is needed. Default_Expression is also both, but the Parent is not
        --  needed. Then_Actions and Else_Actions are not syntactic, but the
        --  Parent is needed.
+       --
+       --  Computed in Check_For_Syntactic_Field_Mismatch.
  
        procedure Check_Completeness;
        --  Check that every type and field has been declared
  
!       procedure Compute_Ranges;
!       --  Compute the range of Node_Kind/Entity_Kind values. The result is
!       --  stored in the First and Last components in the Type_Table.
  
!       procedure Inherit_Fields;
        --  Compute which fields are in which nodes. Implements inheritance of
        --  fields. Set the Fields component of each Type_Info to include
!       --  inherited ones. Check for misc errors.
! 
!       procedure Compute_Fields_Per_Node;
!       --  Set the Is_Syntactic component in the Type_Table to the set of fields
!       --  that are syntactic in that node kind. Set the Fields_Per_Node
!       --  table. Check for misc errors.
  
        procedure Compute_Field_Offsets;
        --  Compute the offsets of each field. The results are stored in the
*************** package body Gen_IL.Gen is
*** 679,685 ****
        -- Compute_Ranges --
        --------------------
  
!       procedure Compute_Ranges (Root : Root_Type) is
  
           procedure Do_One_Type (T : Node_Or_Entity_Type);
           --  Compute the range for one type. Passed to Iterate_Types to process
--- 686,692 ----
        -- Compute_Ranges --
        --------------------
  
!       procedure Compute_Ranges is
  
           procedure Do_One_Type (T : Node_Or_Entity_Type);
           --  Compute the range for one type. Passed to Iterate_Types to process
*************** package body Gen_IL.Gen is
*** 734,739 ****
--- 741,755 ----
                       Type_Table (T).First := Type_Table (Children (1)).First;
                       Type_Table (T).Last  :=
                         Type_Table (Children (Last_Index (Children))).Last;
+ 
+                      --  We know that each abstract type has at least two
+                      --  children. The concrete types must be ordered so
+                      --  that each abstract type is a contiguous subrange.
+ 
+                      if Type_Table (T).First >= Type_Table (T).Last then
+                         raise Illegal with
+                           Image (T) & " children out of order";
+                      end if;
                    end;
  
                 when Between_Abstract_Entity_And_Concrete_Node_Types =>
*************** package body Gen_IL.Gen is
*** 741,760 ****
              end case;
           end Do_One_Type;
        begin
!          Iterate_Types (Root, Post => Do_One_Type'Access);
        end Compute_Ranges;
  
!       -----------------------------
!       -- Compute_Fields_Per_Node --
!       -----------------------------
! 
!       procedure Compute_Fields_Per_Node is
! 
!          Duplicate_Fields_Found : Boolean := False;
  
!          function Get_Fields (T : Node_Or_Entity_Type) return Field_Vector;
!          --  Compute the fields of a given type. This is the fields inherited
!          --  from ancestors, plus the fields declared for the type itself.
  
           function Get_Syntactic_Fields
             (T : Node_Or_Entity_Type) return Field_Set;
--- 757,773 ----
              end case;
           end Do_One_Type;
        begin
!          Iterate_Types (Node_Kind, Post => Do_One_Type'Access);
!          Iterate_Types (Entity_Kind, Post => Do_One_Type'Access);
        end Compute_Ranges;
  
!       --------------------
!       -- Inherit_Fields --
!       --------------------
  
!       procedure Inherit_Fields is
!          procedure Inherit_Fields_For_One_Type (T : Node_Or_Entity_Type);
!          --  Compute Fields for one node type
  
           function Get_Syntactic_Fields
             (T : Node_Or_Entity_Type) return Field_Set;
*************** package body Gen_IL.Gen is
*** 762,778 ****
           --  Note that a field can be syntactic in some node types, but
           --  semantic in others.
  
-          procedure Do_Concrete_Type (CT : Concrete_Type);
-          --  Do the Compute_Fields_Per_Node work for a concrete type
- 
-          function Get_Fields (T : Node_Or_Entity_Type) return Field_Vector is
-             Parent_Fields : constant Field_Vector :=
-               (if T in Root_Type then Field_Vectors.Empty_Vector
-                else Get_Fields (Type_Table (T).Parent));
-          begin
-             return Parent_Fields & Type_Table (T).Fields;
-          end Get_Fields;
- 
           function Get_Syntactic_Fields
             (T : Node_Or_Entity_Type) return Field_Set
           is
--- 775,780 ----
*************** package body Gen_IL.Gen is
*** 783,808 ****
              return Parent_Is_Syntactic or Syntactic (T);
           end Get_Syntactic_Fields;
  
!          procedure Do_Concrete_Type (CT : Concrete_Type) is
           begin
!             Type_Table (CT).Fields := Get_Fields (CT);
!             Syntactic (CT) := Get_Syntactic_Fields (CT);
  
!             for F of Type_Table (CT).Fields loop
!                if Fields_Per_Node (CT) (F) then
!                   Ada.Text_IO.Put_Line
!                     ("duplicate field" & Image (CT) & Image (F));
!                   Duplicate_Fields_Found := True;
!                end if;
  
!                Fields_Per_Node (CT) (F) := True;
!             end loop;
!          end Do_Concrete_Type;
  
!       begin -- Compute_Fields_Per_Node
!          for CT in Concrete_Node loop
!             Do_Concrete_Type (CT);
!          end loop;
  
           --  The node fields defined for all three N_Entity kinds should be the
           --  same:
--- 785,807 ----
              return Parent_Is_Syntactic or Syntactic (T);
           end Get_Syntactic_Fields;
  
!          procedure Inherit_Fields_For_One_Type (T : Node_Or_Entity_Type) is
           begin
!             pragma Assert (Is_Empty (Type_Table (T).Fields));
  
!             if T not in Root_Type then
!                Append
!                  (Type_Table (T).Fields,
!                   Type_Table (Type_Table (T).Parent).Fields);
!             end if;
  
!             Append (Type_Table (T).Fields, Type_Table (T).Imm_Fields);
!             Syntactic (T) := Get_Syntactic_Fields (T);
!          end Inherit_Fields_For_One_Type;
  
!       begin -- Inherit_Fields
! 
!          Iterate_Types (Node_Kind, Pre => Inherit_Fields_For_One_Type'Access);
  
           --  The node fields defined for all three N_Entity kinds should be the
           --  same:
*************** package body Gen_IL.Gen is
*** 823,828 ****
--- 822,947 ----
                "N_Defining_Operator_Symbol must match";
           end if;
  
+          --  Copy node fields from N_Entity nodes to entities, so they have
+          --  slots allocated (but the getters and setters are only in
+          --  Sinfo.Nodes).
+ 
+          Type_Table (Entity_Kind).Imm_Fields :=
+            Type_Table (N_Defining_Identifier).Fields &
+            Type_Table (Entity_Kind).Imm_Fields;
+ 
+          Iterate_Types
+            (Entity_Kind, Pre => Inherit_Fields_For_One_Type'Access);
+       end Inherit_Fields;
+ 
+       -----------------------------
+       -- Compute_Fields_Per_Node --
+       -----------------------------
+ 
+       procedure Compute_Fields_Per_Node is
+          Duplicate_Fields_Error, Could_Be_Inherited_Error : Boolean := False;
+ 
+          procedure Compute_Fields_For_One_Type (T : Node_Or_Entity_Type);
+          --  Do the computations for one type
+ 
+          procedure Check_Potential_Inheritance (T : Node_Or_Entity_Type);
+          --  Check whether fields could be inherited from T, instead of
+          --  defining them separately for descendants.
+ 
+          procedure Compute_Fields_For_One_Type (T : Node_Or_Entity_Type) is
+          begin
+             case T is
+                when Concrete_Type =>
+                   for F of Type_Table (T).Fields loop
+                      if Fields_Per_Node (T) (F) then
+                         Ada.Text_IO.Put_Line
+                           ("duplicate field " & Image (T) & " " & Image (F));
+                         Duplicate_Fields_Error := True;
+                      end if;
+ 
+                      Fields_Per_Node (T) (F) := True;
+                   end loop;
+ 
+                when Abstract_Type =>
+                   --  Fields_Per_Node for an abstract type is the set of fields
+                   --  that exist in ALL children; that is, the intersection of
+                   --  the Fields_Per_Node for the children; hence "and" below.
+ 
+                   pragma Assert (not Is_Empty (Type_Table (T).Children));
+                   --  Otherwise, the following loop won't work
+ 
+                   pragma Assert (Fields_Per_Node (T) = (Field_Enum => False));
+                   Fields_Per_Node (T) := (Field_Enum => True);
+ 
+                   for Child of Type_Table (T).Children loop
+                      pragma Assert
+                        (Fields_Per_Node (Child) /= (Field_Enum => False));
+                      Fields_Per_Node (T) :=
+                        Fields_Per_Node (T) and Fields_Per_Node (Child);
+                   end loop;
+ 
+                when Between_Abstract_Entity_And_Concrete_Node_Types =>
+                   raise Program_Error;
+             end case;
+          end Compute_Fields_For_One_Type;
+ 
+          procedure Check_Potential_Inheritance (T : Node_Or_Entity_Type) is
+ 
+             function Exception_To_Inheritance_Rule
+               (T : Node_Or_Entity_Type; F : Field_Enum) return Boolean is
+             --  True if we should allow this case as an exception to
+             --  the Could_Be_Inherited_Error rule; if this is False,
+             --  we complain. This is somewhat ad hoc. The most common
+             --  reason is to keep syntactic fields in order.
+             --  For example, Left_Opnd comes before Right_Opnd,
+             --  which wouldn't be the case if Right_Opnd were
+             --  inherited from N_Op.
+               ((T = N_Op and then F = Right_Opnd)
+                or else (T = N_Renaming_Declaration and then F = Name)
+                or else (T = N_Generic_Renaming_Declaration and then F = Name)
+                or else F in Defining_Unit_Name
+                           | Aspect_Specifications
+                           | At_End_Proc
+                           | Handled_Statement_Sequence
+                           | Declarations
+                           | Generic_Formal_Declarations
+                           | Specification
+                           | Component_Definition
+                           | Renamed_Or_Alias
+                or else T in N_Subprogram_Specification
+                           | N_Access_Function_Definition
+                           | N_Access_To_Subprogram_Definition
+                           | Void_Or_Type_Kind);
+ 
+          begin
+             if T in Abstract_Type then
+                for F in Field_Enum loop
+                   if Fields_Per_Node (T) (F)
+                     and then not
+                       (for some FF of Type_Table (T).Fields => F = FF)
+                     and then not Exception_To_Inheritance_Rule (T, F)
+                   then
+                      Ada.Text_IO.Put_Line
+                        (Image (F) & " could be inherited from " & Image (T) &
+                         "; this field is present in all descendants");
+                      Could_Be_Inherited_Error := True;
+                   end if;
+                end loop;
+             end if;
+          end Check_Potential_Inheritance;
+ 
+       begin -- Compute_Fields_Per_Node
+ 
+          --  First walk the types bottom-up, and for each type, call
+          --  Compute_Fields_For_One_Type. Then walk top-down, calling
+          --  Check_Potential_Inheritance to check for cases where
+          --  inheritance could be used.
+ 
+          Iterate_Types (Node_Kind, Post => Compute_Fields_For_One_Type'Access);
+ 
+          --  The node fields defined for all three N_Entity kinds should be the
+          --  same:
+ 
           if Fields_Per_Node (N_Defining_Character_Literal) /=
             Fields_Per_Node (N_Defining_Identifier)
           then
*************** package body Gen_IL.Gen is
*** 839,858 ****
                "N_Defining_Identifier";
           end if;
  
!          --  Copy node fields from N_Entity nodes to entities, so they have
!          --  slots allocated (but the getters and setters are only in
!          --  Sinfo.Nodes).
  
!          Type_Table (Entity_Kind).Fields :=
!            Type_Table (N_Defining_Identifier).Fields &
!            Type_Table (Entity_Kind).Fields;
  
           for CT in Concrete_Entity loop
!             Do_Concrete_Type (CT);
           end loop;
  
!          if Duplicate_Fields_Found then
!             raise Illegal with "duplicate fields found";
           end if;
        end Compute_Fields_Per_Node;
  
--- 958,998 ----
                "N_Defining_Identifier";
           end if;
  
!          Iterate_Types
!            (Entity_Kind, Post => Compute_Fields_For_One_Type'Access);
  
!          if Duplicate_Fields_Error then
!             raise Illegal with "duplicate fields found";
!          end if;
  
+          for CT in Concrete_Node loop
+             pragma Assert (Fields_Per_Node (CT) /= (Field_Enum => False));
+          end loop;
           for CT in Concrete_Entity loop
!             pragma Assert (Fields_Per_Node (CT) /= (Field_Enum => False));
!          end loop;
!          for AbT in Abstract_Node loop
!             pragma Assert
!               (Type_Table (AbT).Is_Union = -- if and only if
!                (Fields_Per_Node (AbT) = (Field_Enum => False)));
!          end loop;
!          for AbT in Abstract_Entity loop
!             pragma Assert
!               (Type_Table (AbT).Is_Union = -- if and only if
!                (Fields_Per_Node (AbT) = (Field_Enum => False)));
           end loop;
  
!          Iterate_Types (Node_Kind, Pre => Check_Potential_Inheritance'Access);
!          Iterate_Types
!            (Entity_Kind, Pre => Check_Potential_Inheritance'Access);
! 
!          if Could_Be_Inherited_Error then
!             raise Illegal with "some fields could be inherited";
!             --  If you get this error, then either move the relevant fields
!             --  upward in the type hierarchy, or add a case to the
!             --  Exception_To_Inheritance_Rule function above.
!             --  We don't always want to use inheritance when it's possible;
!             --  for example, we might want to control the order of fields.
           end if;
        end Compute_Fields_Per_Node;
  
*************** package body Gen_IL.Gen is
*** 872,877 ****
--- 1012,1018 ----
               | Uint
               | Uint_Subtype
               | Ureal
+              | Source_File_Index
               | Source_Ptr
               | Union_Id
               | Node_Id
*************** package body Gen_IL.Gen is
*** 1017,1030 ****
           package Sorting is new Field_Vectors.Generic_Sorting
             ("<" => Sort_Less);
  
!          All_Fields : Field_Vector;
  
        --  Start of processing for Compute_Field_Offsets
  
        begin
! 
!          --  Compute the number of types that have each field, weighted by the
!          --  frequency of such nodes.
  
           for T in Concrete_Type loop
              for F in Field_Enum loop
--- 1158,1170 ----
           package Sorting is new Field_Vectors.Generic_Sorting
             ("<" => Sort_Less);
  
!          Fields : Field_Vector;
  
        --  Start of processing for Compute_Field_Offsets
  
        begin
!          --  Compute the number of concrete types that have each field,
!          --  weighted by the frequency of such nodes.
  
           for T in Concrete_Type loop
              for F in Field_Enum loop
*************** package body Gen_IL.Gen is
*** 1035,1055 ****
              end loop;
           end loop;
  
!          --  Collect all the fields in All_Fields
  
           for F in Node_Field loop
!             Append (All_Fields, F);
           end loop;
  
           for F in Entity_Field loop
!             Append (All_Fields, F);
           end loop;
  
!          --  Sort All_Fields based on how many concrete types have the field.
           --  This is for efficiency; we want to choose the offsets of the most
           --  common fields first, so they get low numbers.
  
!          Sorting.Sort (All_Fields);
  
           --  Go through all the fields, and choose the lowest offset that is
           --  free in all types that have the field. This is basically a
--- 1175,1195 ----
              end loop;
           end loop;
  
!          --  Collect all the fields in Fields
  
           for F in Node_Field loop
!             Append (Fields, F);
           end loop;
  
           for F in Entity_Field loop
!             Append (Fields, F);
           end loop;
  
!          --  Sort Fields based on how many concrete types have the field.
           --  This is for efficiency; we want to choose the offsets of the most
           --  common fields first, so they get low numbers.
  
!          Sorting.Sort (Fields);
  
           --  Go through all the fields, and choose the lowest offset that is
           --  free in all types that have the field. This is basically a
*************** package body Gen_IL.Gen is
*** 1084,1090 ****
  
           --  Then loop through them all, skipping the ones we did above
  
!          for F of All_Fields loop
              if Field_Table (F).Offset = Unknown_Offset then
                 Choose_Offset (F);
              end if;
--- 1224,1230 ----
  
           --  Then loop through them all, skipping the ones we did above
  
!          for F of Fields loop
              if Field_Table (F).Offset = Unknown_Offset then
                 Choose_Offset (F);
              end if;
*************** package body Gen_IL.Gen is
*** 2074,2080 ****
                Field_Enum_Type_Name & "_Index range <>) of " &
                Field_Enum_Type_Name & ";" & LF);
           Put (S, "type " & Field_Enum_Type_Name &
!               "_Array_Ref is access constant " & Field_Enum_Type_Name &
                "_Array;" & LF);
           Put (S, "subtype A is " & Field_Enum_Type_Name & "_Array;" & LF);
           --  Short name to make allocators below more readable
--- 2214,2220 ----
                Field_Enum_Type_Name & "_Index range <>) of " &
                Field_Enum_Type_Name & ";" & LF);
           Put (S, "type " & Field_Enum_Type_Name &
!               "_Array_Ref is not null access constant " & Field_Enum_Type_Name &
                "_Array;" & LF);
           Put (S, "subtype A is " & Field_Enum_Type_Name & "_Array;" & LF);
           --  Short name to make allocators below more readable
*************** package body Gen_IL.Gen is
*** 3250,3257 ****
  
        Check_Completeness;
  
!       Compute_Ranges (Node_Kind);
!       Compute_Ranges (Entity_Kind);
        Compute_Fields_Per_Node;
        Compute_Field_Offsets;
        Compute_Type_Sizes;
--- 3390,3397 ----
  
        Check_Completeness;
  
!       Compute_Ranges;
!       Inherit_Fields;
        Compute_Fields_Per_Node;
        Compute_Field_Offsets;
        Compute_Type_Sizes;
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-gen.ads gcc-15.1.0/gcc/ada/gen_il-gen.ads
*** gcc-14.2.0/gcc/ada/gen_il-gen.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-gen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-internals.adb gcc-15.1.0/gcc/ada/gen_il-internals.adb
*** gcc-14.2.0/gcc/ada/gen_il-internals.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-internals.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Gen_IL.Internals is
*** 279,284 ****
--- 279,286 ----
              return "DT_Position";
           when Forwards_OK =>
              return "Forwards_OK";
+          when Has_First_Controlling_Parameter_Aspect =>
+             return "Has_First_Controlling_Parameter_Aspect";
           when Has_Inherited_DIC =>
              return "Has_Inherited_DIC";
           when Has_Own_DIC =>
*************** package body Gen_IL.Internals is
*** 339,346 ****
              return "SPARK_Pragma";
           when SPARK_Pragma_Inherited =>
              return "SPARK_Pragma_Inherited";
-          when Split_PPC =>
-             return "Split_PPC";
           when SSO_Set_High_By_Default =>
              return "SSO_Set_High_By_Default";
           when SSO_Set_Low_By_Default =>
--- 341,346 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-internals.ads gcc-15.1.0/gcc/ada/gen_il-internals.ads
*** gcc-14.2.0/gcc/ada/gen_il-internals.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-internals.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gen_IL.Internals is
*** 103,109 ****
              --  a concrete type, First=Last. For an abstract type, First..Last
              --  includes two or more types.
  
!             Fields : Field_Vector;
  
              Nmake_Assert : String_Access; -- only for concrete node types
        end case;
--- 103,113 ----
              --  a concrete type, First=Last. For an abstract type, First..Last
              --  includes two or more types.
  
!             Imm_Fields,
!             --  Fields declared immediately within a given node type
!             Fields :
!             --  Includes inherited fields and Imm_Fields
!               Field_Vector;
  
              Nmake_Assert : String_Access; -- only for concrete node types
        end case;
*************** package Gen_IL.Internals is
*** 458,464 ****
        E_Generic_Function => 1292, -- (0.000) 41 slots
        E_Enumeration_Type => 1186, -- (0.000) 47 slots
        N_Enumeration_Type_Definition => 1169, -- (0.000) 6 slots
-       N_Unchecked_Expression => 1112, -- (0.000) 7 slots
        N_Op_Or => 1107, -- (0.000) 8 slots
        N_Designator => 1100, -- (0.000) 9 slots
        N_Formal_Discrete_Type_Definition => 1086, -- (0.000) 4 slots
--- 462,467 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-main.adb gcc-15.1.0/gcc/ada/gen_il-main.adb
*** gcc-14.2.0/gcc/ada/gen_il-main.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-main.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il-types.ads gcc-15.1.0/gcc/ada/gen_il-types.ads
*** gcc-14.2.0/gcc/ada/gen_il-types.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il-types.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gen_IL.Types is
*** 60,65 ****
--- 60,66 ----
        Upos,
        Nonzero_Uint,
        Ureal,
+       Source_File_Index,
  
        Node_Kind_Type, -- Type of result of Nkind function, i.e. Node_Kind
        Entity_Kind_Type, -- Type of result of Ekind function, i.e. Entity_Kind
*************** package Gen_IL.Types is
*** 123,129 ****
        N_Subexpr,
        N_Subprogram_Specification,
        N_Unary_Op,
!       N_Unit_Body,
  
        --  End of abstract node types.
  
--- 124,132 ----
        N_Subexpr,
        N_Subprogram_Specification,
        N_Unary_Op,
!       N_Lib_Unit_Declaration,
!       N_Lib_Unit_Renaming_Declaration,
!       N_Lib_Unit_Body,
  
        --  End of abstract node types.
  
*************** package Gen_IL.Types is
*** 249,254 ****
--- 252,258 ----
        N_String_Literal,
        N_Explicit_Dereference,
        N_Expression_With_Actions,
+       N_External_Initializer,
        N_If_Expression,
        N_Indexed_Component,
        N_Interpolated_String_Literal,
*************** package Gen_IL.Types is
*** 267,273 ****
        N_Slice,
        N_Target_Name,
        N_Type_Conversion,
-       N_Unchecked_Expression,
        N_Unchecked_Type_Conversion,
        N_Subtype_Indication,
        N_Component_Declaration,
--- 271,276 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il.adb gcc-15.1.0/gcc/ada/gen_il.adb
*** gcc-14.2.0/gcc/ada/gen_il.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gen_il.ads gcc-15.1.0/gcc/ada/gen_il.ads
*** gcc-14.2.0/gcc/ada/gen_il.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gen_il.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/generate_minimal_reproducer.adb gcc-15.1.0/gcc/ada/generate_minimal_reproducer.adb
*** gcc-14.2.0/gcc/ada/generate_minimal_reproducer.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/generate_minimal_reproducer.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,464 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --           G E N E R A T E _ M I N I M A L _ R E P R O D U C E R          --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by AdaCore.                        --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Fmap;
+ with Fname.UF;
+ with Lib;
+ with Namet; use Namet;
+ with Osint; use Osint;
+ with Output; use Output;
+ with Sinfo.Nodes;
+ with System.CRTL;
+ with System.OS_Lib; use System.OS_Lib;
+ with Types; use Types;
+ 
+ procedure Generate_Minimal_Reproducer is
+    Reproducer_Generation_Failed : exception;
+ 
+    function Create_Reproducer_Directory return String;
+    --  Create a directory that will be used to run adareducer, and will
+    --  eventually contain the reduced set of sources to be collected by the
+    --  user. The name of the directory makes its purpose clear, and it has a
+    --  numeric suffix to avoid clashes with other compiler invocations that
+    --  might have generated reproducers already.
+ 
+    ---------------------------------
+    -- Create_Reproducer_Directory --
+    ---------------------------------
+ 
+    function Create_Reproducer_Directory return String is
+       Max_Id : constant Positive := 1000;
+ 
+       Prefix : constant String := "reduce-crash-reproducer";
+ 
+       Result : System.CRTL.int;
+    begin
+       for Id in 1 .. Max_Id loop
+          declare
+             Candidate_Path : String := Prefix & Positive'Image (Id);
+          begin
+             Candidate_Path (Prefix'Length + 1) := '-';
+ 
+             Result := System.CRTL.mkdir (Candidate_Path & ASCII.NUL);
+ 
+             --  If mkdir fails, we assume that it's because the directory
+             --  already exists. We should check for EEXIST instead???
+             if Result = 0 then
+                return Candidate_Path;
+             end if;
+          end;
+       end loop;
+ 
+       Write_Line ("failed to create reproducer directory");
+       raise Reproducer_Generation_Failed;
+    end Create_Reproducer_Directory;
+ 
+    Dirname : constant String := Create_Reproducer_Directory;
+ 
+    Gpr_File_Path : constant String :=
+      Dirname & Directory_Separator & "reduce_crash_reproducer.gpr";
+ 
+    Src_Dir_Path : constant String := Dirname & Directory_Separator & "src";
+ 
+    Oracle_Path : constant String :=
+      Dirname & Directory_Separator & Executable_Name ("oracle");
+ 
+    Result : Integer;
+ begin
+    Create_Semantic_Closure_Project :
+    declare
+       Gpr_File : File_Descriptor;
+ 
+       B : constant Saved_Output_Buffer := Save_Output_Buffer;
+    begin
+       Gpr_File := Create_File (Gpr_File_Path, Text);
+       if Gpr_File = Invalid_FD then
+          Write_Line ("failed to create GPR file");
+          raise Reproducer_Generation_Failed;
+       end if;
+ 
+       Push_Output;
+       Set_Output (Gpr_File);
+ 
+       Write_Line ("project Reduce_Crash_Reproducer is");
+       Write_Line ("   for Source_Dirs use (""src"");");
+       Write_Line ("end Reduce_Crash_Reproducer;");
+ 
+       Close (Gpr_File);
+       Pop_Output;
+       Restore_Output_Buffer (B);
+ 
+       Result := System.CRTL.mkdir (Src_Dir_Path & ASCII.NUL);
+ 
+       if Result /= 0 then
+          Write_Line ("failed to create reproducer directory");
+          raise Reproducer_Generation_Failed;
+       end if;
+ 
+       for J in Main_Unit .. Lib.Last_Unit loop
+          declare
+             Path : File_Name_Type :=
+               Fmap.Mapped_Path_Name (Lib.Unit_File_Name (J));
+ 
+             Default_File_Name : constant String :=
+               Fname.UF.Get_Default_File_Name (Lib.Unit_Name (J));
+ 
+             File_Copy_Path : constant String :=
+               Src_Dir_Path & Directory_Separator & Default_File_Name;
+ 
+             --  We may have synthesized units for child subprograms without
+             --  spec files. We need to filter out those units because we would
+             --  create bogus spec files that break compilation if we didn't.
+             Is_Synthetic_Subprogram_Spec : constant Boolean :=
+               not Sinfo.Nodes.Comes_From_Source (Lib.Cunit (J));
+          begin
+             if not Lib.Is_Internal_Unit (J)
+               and then not Is_Synthetic_Subprogram_Spec
+             then
+                --  Mapped_Path_Name might have returned No_File. This has been
+                --  observed for files with a Source_File_Name pragma.
+                if Path = No_File then
+                   Path := Find_File (Lib.Unit_File_Name (J), Osint.Source);
+                   pragma Assert (Path /= No_File);
+                end if;
+ 
+                declare
+                   File_Path : constant String := Get_Name_String (Path);
+                   Success   : Boolean;
+                begin
+                   System.OS_Lib.Copy_File
+                     (File_Path, File_Copy_Path, Success, Overwrite);
+ 
+                   pragma Assert (Success);
+                end;
+             end if;
+          end;
+       end loop;
+    end Create_Semantic_Closure_Project;
+ 
+    Create_Oracle :
+    declare
+       Gnatmake_Path : String_Access := Locate_Exec_On_Path ("gnatmake");
+ 
+       Oracle_Dir_Path : constant String :=
+         Dirname & Directory_Separator & "oracle-src";
+ 
+       Source_File_Path : constant String :=
+         Oracle_Dir_Path & Directory_Separator & "oracle.adb";
+ 
+       Source_File : File_Descriptor;
+ 
+       Result : System.CRTL.int;
+    begin
+       if Gnatmake_Path = null then
+          Write_Line ("-gnatd_m was specified but gnatmake is not available");
+          raise Reproducer_Generation_Failed;
+       end if;
+ 
+       Result := System.CRTL.mkdir (Oracle_Dir_Path & ASCII.NUL);
+ 
+       if Result /= 0 then
+          Write_Line ("failed to create directory");
+          raise Reproducer_Generation_Failed;
+       end if;
+ 
+       Source_File := Create_File (Source_File_Path, Text);
+       if Source_File = Invalid_FD then
+          Write_Line ("failed to create oracle source file");
+          raise Reproducer_Generation_Failed;
+       end if;
+ 
+       Write_Oracle_Code :
+       declare
+          Old_Main_Path : constant String :=
+            Get_Name_String
+              (Fmap.Mapped_Path_Name (Lib.Unit_File_Name (Main_Unit)));
+ 
+          Default_Main_Name : constant String :=
+            Fname.UF.Get_Default_File_Name (Lib.Unit_Name (Main_Unit));
+ 
+          New_Main_Path : constant String :=
+            Src_Dir_Path & Directory_Separator & Default_Main_Name;
+ 
+          Gnat1_Path : String (1 .. Len_Arg (0));
+ 
+          B : constant Saved_Output_Buffer := Save_Output_Buffer;
+       begin
+          Fill_Arg (Gnat1_Path'Address, 0);
+ 
+          Push_Output;
+          Set_Output (Source_File);
+ 
+          Write_Line ("with Ada.Command_Line;");
+          Write_Line ("use Ada.Command_Line;");
+          Write_Line ("with GNAT.Expect;");
+          Write_Line ("with GNAT.OS_Lib;");
+          Write_Eol;
+          Write_Line ("procedure Oracle is");
+          Write_Line ("   Child_Code : aliased Integer;");
+          Write_Eol;
+          Write_Line ("   Gnat1_Path : constant String := ");
+ 
+          Write_Str ("     """);
+          Write_Str (Gnat1_Path);
+          Write_Line (""";");
+ 
+          Write_Eol;
+          Write_Line ("   Args : constant GNAT.OS_Lib.Argument_List :=");
+ 
+          Write_Str ("     (new String'(""-gnatd_M"")");
+ 
+          --  The following way of iterating through the command line arguments
+          --  was copied from Set_Targ. TODO factorize???
+          declare
+             type Arg_Array is array (Nat) of Big_String_Ptr;
+             type Arg_Array_Ptr is access Arg_Array;
+             --  Types to access compiler arguments
+ 
+             save_argc : Nat;
+             pragma Import (C, save_argc);
+             --  Saved value of argc (number of arguments), imported from
+             --  misc.cc
+ 
+             save_argv : Arg_Array_Ptr;
+             pragma Import (C, save_argv);
+             --  Saved value of argv (argument pointers), imported from misc.cc
+ 
+             gnat_argc : Nat;
+             gnat_argv : Arg_Array_Ptr;
+             pragma Import (C, gnat_argc);
+             pragma Import (C, gnat_argv);
+             --  If save_argv is not set, default to gnat_argc/argv
+ 
+             argc : Nat;
+             argv : Arg_Array_Ptr;
+ 
+             function Len_Arg (Arg : Big_String_Ptr) return Nat;
+             --  Determine length of argument Arg (a nul terminated C string).
+ 
+             -------------
+             -- Len_Arg --
+             -------------
+ 
+             function Len_Arg (Arg : Big_String_Ptr) return Nat is
+             begin
+                for J in 1 .. Nat'Last loop
+                   if Arg (Natural (J)) = ASCII.NUL then
+                      return J - 1;
+                   end if;
+                end loop;
+ 
+                raise Program_Error;
+             end Len_Arg;
+ 
+          begin
+             if save_argv /= null then
+                argv := save_argv;
+                argc := save_argc;
+             else
+                --  Case of a non-GCC compiler, e.g. gnat2why or gnat2scil
+                argv := gnat_argv;
+                argc := gnat_argc;
+             end if;
+ 
+             for Arg in 1 .. argc - 1 loop
+                declare
+                   Argv_Ptr : constant Big_String_Ptr := argv (Arg);
+                   Argv_Len : constant Nat := Len_Arg (Argv_Ptr);
+ 
+                   Arg : constant String := Argv_Ptr (1 .. Natural (Argv_Len));
+                begin
+                   --  We filter out mapping file arguments because we want to
+                   --  use the copies of source files we made.
+                   if Argv_Len > 8 and then Arg (1 .. 8) = "-gnatem=" then
+                      null;
+ 
+                   --  We must not have the oracle run the compiler in
+                   --  reduce-on-crash mode, that would result in recursive
+                   --  invocations.
+                   elsif Arg = "-gnatd_m" then
+                      null;
+                   else
+                      Write_Line (",");
+                      Write_Str ("      new String'(""");
+ 
+                      --  We replace references to the main source file with
+                      --  references to the copy we made.
+                      if Old_Main_Path = Arg then
+                         Write_Str (New_Main_Path);
+ 
+                      --  We copy the other command line arguments unmodified
+                      else
+                         Write_Str (Arg);
+                      end if;
+ 
+                      Write_Str (""")");
+                   end if;
+                end;
+             end loop;
+          end;
+ 
+          Write_Line (");");
+ 
+          Write_Eol;
+ 
+          Write_Line ("   Output : constant String :=");
+          Write_Line ("     GNAT.Expect.Get_Command_Output");
+          Write_Str ("       (Gnat1_Path, Args, """", Child_Code'Access, ");
+          Write_Line ("Err_To_Out => True);");
+ 
+          Write_Eol;
+ 
+          Write_Line ("   Crash_Marker : constant String :=");
+          Write_Line ("     ""+===========================GNAT BUG DETECTE"";");
+ 
+          Write_Eol;
+ 
+          Write_Line ("   Crashed : constant Boolean :=");
+          Write_Line ("     Crash_Marker'Length <= Output'Length");
+          Write_Str ("     and then Output (Output'First .. Output'First ");
+          Write_Line ("+ Crash_Marker'Length - 1)");
+          Write_Line ("              = Crash_Marker;");
+ 
+          Write_Eol;
+ 
+          Write_Str ("   Status_Code : Exit_Status := ");
+          Write_Line ("(if Crashed then 0 else 1);");
+          Write_Line ("begin");
+          Write_Line ("   Set_Exit_Status (Status_Code);");
+          Write_Line ("end Oracle;");
+ 
+          Pop_Output;
+          Restore_Output_Buffer (B);
+       end Write_Oracle_Code;
+ 
+       Close (Source_File);
+ 
+       declare
+          Args : constant Argument_List :=
+            (new String'(Source_File_Path),
+             new String'("-o"),
+             new String'(Oracle_Path),
+             new String'("-D"),
+             new String'(Oracle_Dir_Path));
+ 
+          Success : Boolean;
+       begin
+          Spawn (Gnatmake_Path.all, Args, Success);
+ 
+          pragma Assert (Success);
+       end;
+ 
+       Free (Gnatmake_Path);
+    end Create_Oracle;
+ 
+    Run_Adareducer :
+    declare
+       --  See section 12.8.3 of the GNAT Studio user's guide for documentation
+       --  about how to invoke adareducer.
+       Gnatstudio_Cli_Path : String_Access :=
+         Locate_Exec_On_Path ("gnatstudio_cli");
+ 
+    begin
+       if Gnatstudio_Cli_Path = null then
+          Write_Line ("-gnatd_m was specified but adareducer is not available");
+          return;
+       end if;
+ 
+       declare
+          Args : constant Argument_List :=
+            (new String'("adareducer"),
+             new String'("-P"),
+             new String'(Gpr_File_Path),
+             new String'("-s"),
+             new String'(Oracle_Path));
+ 
+          Success : Boolean;
+       begin
+          Spawn (Gnatstudio_Cli_Path.all, Args, Success);
+          pragma Assert (Success);
+       end;
+ 
+       Free (Gnatstudio_Cli_Path);
+    end Run_Adareducer;
+ 
+    Clean_Up_Reproducer_Source :
+    declare
+ 
+       use type System.Address;
+ 
+       Directory_Stream : System.CRTL.DIRs;
+ 
+       function opendir (file_name : String) return System.CRTL.DIRs with
+         Import, Convention => C, External_Name => "__gnat_opendir";
+ 
+       Conservative_Name_Max : constant Positive := 4096;
+ 
+       Buffer : String (1 .. Conservative_Name_Max);
+       Length : aliased Integer;
+ 
+       Addr : System.Address;
+ 
+       Dummy : Integer;
+ 
+       Dummy_Success : Boolean;
+ 
+       function readdir
+         (Directory : System.CRTL.DIRs;
+          Buffer    : System.Address;
+          Length    : access Integer) return System.Address
+       with Import, Convention => C, External_Name => "__gnat_readdir";
+ 
+       function closedir (directory : System.CRTL.DIRs) return Integer with
+         Import, Convention => C, External_Name => "__gnat_closedir";
+ 
+    begin
+       Directory_Stream := opendir (Src_Dir_Path & ASCII.NUL);
+ 
+       if Directory_Stream = System.Null_Address then
+          return;
+       end if;
+ 
+       loop
+          Addr := readdir (Directory_Stream, Buffer'Address, Length'Access);
+          if Addr = System.Null_Address then
+             exit;
+          end if;
+ 
+          declare
+             S : constant String := Buffer (1 .. Length);
+          begin
+             if (5 <= S'Length and then S (S'Last - 4 .. S'Last) = ".orig")
+               or else (2 <= S'Length and then S (S'Last - 1 .. S'Last) = ".s")
+             then
+                System.OS_Lib.Delete_File
+                  (Src_Dir_Path & Directory_Separator & S, Dummy_Success);
+             end if;
+          end;
+       end loop;
+ 
+       Dummy := closedir (Directory_Stream);
+    end Clean_Up_Reproducer_Source;
+ end Generate_Minimal_Reproducer;
diff -Nrcpad gcc-14.2.0/gcc/ada/get_scos.adb gcc-15.1.0/gcc/ada/get_scos.adb
*** gcc-14.2.0/gcc/ada/get_scos.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/get_scos.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/get_scos.ads gcc-15.1.0/gcc/ada/get_scos.ads
*** gcc-14.2.0/gcc/ada/get_scos.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/get_scos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/get_targ.adb gcc-15.1.0/gcc/ada/get_targ.adb
*** gcc-14.2.0/gcc/ada/get_targ.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/get_targ.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/get_targ.ads gcc-15.1.0/gcc/ada/get_targ.ads
*** gcc-14.2.0/gcc/ada/get_targ.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/get_targ.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/ghost.adb gcc-15.1.0/gcc/ada/ghost.adb
*** gcc-14.2.0/gcc/ada/ghost.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ghost.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ghost is
*** 121,127 ****
           null;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(14)).
  
        elsif Is_Checked_Ghost_Entity (Prev_Id)
          and then Policy = Name_Ignore
--- 121,127 ----
           null;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(16)).
  
        elsif Is_Checked_Ghost_Entity (Prev_Id)
          and then Policy = Name_Ignore
*************** package body Ghost is
*** 173,181 ****
           --
           --    * Be subject to pragma Ghost
  
!          function Is_OK_Pragma (Prag : Node_Id) return Boolean;
           --  Determine whether node Prag is a suitable context for a reference
!          --  to a Ghost entity. To qualify as such, Prag must either
           --
           --    * Be an assertion expression pragma
           --
--- 173,181 ----
           --
           --    * Be subject to pragma Ghost
  
!          function Is_OK_Pragma (Prag : Node_Id; Id : Entity_Id) return Boolean;
           --  Determine whether node Prag is a suitable context for a reference
!          --  to a Ghost entity Id. To qualify as such, Prag must either
           --
           --    * Be an assertion expression pragma
           --
*************** package body Ghost is
*** 318,326 ****
           -- Is_OK_Pragma --
           ------------------
  
!          function Is_OK_Pragma (Prag : Node_Id) return Boolean is
              procedure Check_Policies (Prag_Nam : Name_Id);
!             --  Verify that the Ghost policy in effect is the same as the
              --  assertion policy for pragma name Prag_Nam. Emit an error if
              --  this is not the case.
  
--- 318,328 ----
           -- Is_OK_Pragma --
           ------------------
  
!          function Is_OK_Pragma (Prag : Node_Id; Id : Entity_Id) return Boolean
!          is
              procedure Check_Policies (Prag_Nam : Name_Id);
!             --  Verify that the Ghost policy in effect at the point of the
!             --  declaration of Ghost entity Id (if present) is the same as the
              --  assertion policy for pragma name Prag_Nam. Emit an error if
              --  this is not the case.
  
*************** package body Ghost is
*** 330,343 ****
  
              procedure Check_Policies (Prag_Nam : Name_Id) is
                 AP : constant Name_Id := Check_Kind (Prag_Nam);
-                GP : constant Name_Id := Policy_In_Effect (Name_Ghost);
  
              begin
!                --  If the Ghost policy in effect at the point of a Ghost entity
!                --  reference is Ignore, then the assertion policy of the pragma
!                --  must be Ignore (SPARK RM 6.9(18)).
  
!                if GP = Name_Ignore and then AP /= Name_Ignore then
                    Error_Msg_N
                      ("incompatible ghost policies in effect",
                       Ghost_Ref);
--- 332,347 ----
  
              procedure Check_Policies (Prag_Nam : Name_Id) is
                 AP : constant Name_Id := Check_Kind (Prag_Nam);
  
              begin
!                --  If the Ghost policy in effect at the point of the
!                --  declaration of Ghost entity Id is Ignore, then the assertion
!                --  policy of the pragma must be Ignore (SPARK RM 6.9(20)).
  
!                if Present (Id)
!                  and then not Is_Checked_Ghost_Entity (Id)
!                  and then AP /= Name_Ignore
!                then
                    Error_Msg_N
                      ("incompatible ghost policies in effect",
                       Ghost_Ref);
*************** package body Ghost is
*** 388,394 ****
                   and then Prag_Id /= Pragma_Predicate
                 then
                    --  Ensure that the assertion policy and the Ghost policy are
!                   --  compatible (SPARK RM 6.9(18)).
  
                    Check_Policies (Prag_Nam);
                    return True;
--- 392,398 ----
                   and then Prag_Id /= Pragma_Predicate
                 then
                    --  Ensure that the assertion policy and the Ghost policy are
!                   --  compatible (SPARK RM 6.9(20)).
  
                    Check_Policies (Prag_Nam);
                    return True;
*************** package body Ghost is
*** 535,541 ****
                 elsif Is_OK_Declaration (Par) then
                    return True;
  
!                elsif Is_OK_Pragma (Par) then
                    return True;
  
                 elsif Is_OK_Statement (Par) then
--- 539,545 ----
                 elsif Is_OK_Declaration (Par) then
                    return True;
  
!                elsif Is_OK_Pragma (Par, Ghost_Id) then
                    return True;
  
                 elsif Is_OK_Statement (Par) then
*************** package body Ghost is
*** 576,582 ****
  
        begin
           --  The Ghost policy in effect a the point of declaration and at the
!          --  point of use must match (SPARK RM 6.9(13)).
  
           if Is_Checked_Ghost_Entity (Id)
             and then Policy = Name_Ignore
--- 580,586 ----
  
        begin
           --  The Ghost policy in effect a the point of declaration and at the
!          --  point of use must match (SPARK RM 6.9(15)).
  
           if Is_Checked_Ghost_Entity (Id)
             and then Policy = Name_Ignore
*************** package body Ghost is
*** 859,865 ****
              --  When a tagged type is either non-Ghost or checked Ghost and
              --  one of its primitives overrides an inherited operation, the
              --  overridden operation of the ancestor type must be ignored Ghost
!             --  if the primitive is ignored Ghost (SPARK RM 6.9(17)).
  
              if Is_Ignored_Ghost_Entity (Subp) then
  
--- 863,869 ----
              --  When a tagged type is either non-Ghost or checked Ghost and
              --  one of its primitives overrides an inherited operation, the
              --  overridden operation of the ancestor type must be ignored Ghost
!             --  if the primitive is ignored Ghost (SPARK RM 6.9(19)).
  
              if Is_Ignored_Ghost_Entity (Subp) then
  
*************** package body Ghost is
*** 900,906 ****
              --  When a tagged type is either non-Ghost or checked Ghost and
              --  one of its primitives overrides an inherited operation, the
              --  the primitive of the tagged type must be ignored Ghost if the
!             --  overridden operation is ignored Ghost (SPARK RM 6.9(17)).
  
              elsif Is_Ignored_Ghost_Entity (Over_Subp) then
  
--- 904,910 ----
              --  When a tagged type is either non-Ghost or checked Ghost and
              --  one of its primitives overrides an inherited operation, the
              --  the primitive of the tagged type must be ignored Ghost if the
!             --  overridden operation is ignored Ghost (SPARK RM 6.9(19)).
  
              elsif Is_Ignored_Ghost_Entity (Over_Subp) then
  
*************** package body Ghost is
*** 950,956 ****
     procedure Check_Ghost_Primitive (Prim : Entity_Id; Typ : Entity_Id) is
     begin
        --  The Ghost policy in effect at the point of declaration of a primitive
!       --  operation and a tagged type must match (SPARK RM 6.9(16)).
  
        if Is_Tagged_Type (Typ) then
           if Is_Checked_Ghost_Entity (Prim)
--- 954,960 ----
     procedure Check_Ghost_Primitive (Prim : Entity_Id; Typ : Entity_Id) is
     begin
        --  The Ghost policy in effect at the point of declaration of a primitive
!       --  operation and a tagged type must match (SPARK RM 6.9(18)).
  
        if Is_Tagged_Type (Typ) then
           if Is_Checked_Ghost_Entity (Prim)
*************** package body Ghost is
*** 1001,1007 ****
           if Is_Ghost_Entity (Constit_Id) then
  
              --  The Ghost policy in effect at the point of abstract state
!             --  declaration and constituent must match (SPARK RM 6.9(15)).
  
              if Is_Checked_Ghost_Entity (State_Id)
                and then Is_Ignored_Ghost_Entity (Constit_Id)
--- 1005,1011 ----
           if Is_Ghost_Entity (Constit_Id) then
  
              --  The Ghost policy in effect at the point of abstract state
!             --  declaration and constituent must match (SPARK RM 6.9(17)).
  
              if Is_Checked_Ghost_Entity (State_Id)
                and then Is_Ignored_Ghost_Entity (Constit_Id)
*************** package body Ghost is
*** 1050,1056 ****
        Full_Typ : Entity_Id;
  
     begin
!       if Is_Ghost_Entity (Typ) then
           Conc_Typ := Empty;
           Full_Typ := Typ;
  
--- 1054,1062 ----
        Full_Typ : Entity_Id;
  
     begin
!       if Is_Ghost_Entity (Typ)
!         and then Comes_From_Source (Typ)
!       then
           Conc_Typ := Empty;
           Full_Typ := Typ;
  
*************** package body Ghost is
*** 1058,1068 ****
              Conc_Typ := Anonymous_Object (Typ);
              Full_Typ := Conc_Typ;
  
!          elsif Is_Concurrent_Type (Typ) then
              Conc_Typ := Typ;
           end if;
  
!          --  A Ghost type cannot be concurrent (SPARK RM 6.9(19)). Verify this
           --  legality rule first to give a finer-grained diagnostic.
  
           if Present (Conc_Typ) then
--- 1064,1076 ----
              Conc_Typ := Anonymous_Object (Typ);
              Full_Typ := Conc_Typ;
  
!          elsif Has_Protected (Typ)
!            or else Has_Task (Typ)
!          then
              Conc_Typ := Typ;
           end if;
  
!          --  A Ghost type cannot be concurrent (SPARK RM 6.9(21)). Verify this
           --  legality rule first to give a finer-grained diagnostic.
  
           if Present (Conc_Typ) then
*************** package body Ghost is
*** 1553,1559 ****
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(14)).
  
        Check_Ghost_Completion
          (Prev_Id  => Spec_Id,
--- 1561,1567 ----
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(16)).
  
        Check_Ghost_Completion
          (Prev_Id  => Spec_Id,
*************** package body Ghost is
*** 1600,1606 ****
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(14)).
  
        Check_Ghost_Completion
          (Prev_Id  => Prev_Id,
--- 1608,1614 ----
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(16)).
  
        Check_Ghost_Completion
          (Prev_Id  => Prev_Id,
*************** package body Ghost is
*** 1734,1746 ****
        elsif Ghost_Mode = Ignore then
           Policy := Name_Ignore;
  
!       --  Inherit the "ghostness" of the generic unit
  
!       elsif Is_Checked_Ghost_Entity (Gen_Id) then
!          Policy := Name_Check;
  
!       elsif Is_Ignored_Ghost_Entity (Gen_Id) then
!          Policy := Name_Ignore;
        end if;
  
        --  Mark the instantiation as Ghost
--- 1742,1758 ----
        elsif Ghost_Mode = Ignore then
           Policy := Name_Ignore;
  
!       --  Inherit the "ghostness" of the generic unit, but the current Ghost
!       --  policy is the relevant one for the instantiation.
  
!       elsif Is_Checked_Ghost_Entity (Gen_Id)
!         or else Is_Ignored_Ghost_Entity (Gen_Id)
!       then
!          Policy := Policy_In_Effect (Name_Ghost);
  
!          if Policy = No_Name then
!             Policy := Name_Ignore;
!          end if;
        end if;
  
        --  Mark the instantiation as Ghost
diff -Nrcpad gcc-14.2.0/gcc/ada/ghost.ads gcc-15.1.0/gcc/ada/ghost.ads
*** gcc-14.2.0/gcc/ada/ghost.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/ghost.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat-style.texi gcc-15.1.0/gcc/ada/gnat-style.texi
*** gcc-14.2.0/gcc/ada/gnat-style.texi	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat-style.texi	Fri Apr 25 08:18:00 2025
***************
*** 3,9 ****
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
--- 3,9 ----
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Dec 21, 2023
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Jan 03, 2025
  
  AdaCore
  
! Copyright @copyright{} 2008-2025, Free Software Foundation
  @end quotation
  
  @end copying
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat1drv.adb gcc-15.1.0/gcc/ada/gnat1drv.adb
*** gcc-14.2.0/gcc/ada/gnat1drv.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat1drv.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnat1drv is
*** 145,151 ****
     --  Start of processing for Adjust_Global_Switches
  
     begin
- 
        --  -gnatd_U disables prepending error messages with "error:"
  
        if Debug_Flag_Underscore_UU then
--- 145,150 ----
*************** procedure Gnat1drv is
*** 164,174 ****
           Unnest_Subprogram_Mode := True;
        end if;
  
!       --  -gnatd.u enables special C expansion mode
  
!       if Debug_Flag_Dot_U then
!          Modify_Tree_For_C := True;
!          Transform_Function_Array := True;
        end if;
  
        --  -gnatd_A disables generation of ALI files
--- 163,172 ----
           Unnest_Subprogram_Mode := True;
        end if;
  
!       --  Force pseudo code generation with -gnatceg
  
!       if Generate_C_Header then
!          Operating_Mode := Generate_Code;
        end if;
  
        --  -gnatd_A disables generation of ALI files
*************** procedure Gnat1drv is
*** 177,205 ****
           Disable_ALI_File := True;
        end if;
  
-       --  Set all flags required when generating C code
- 
-       if Generate_C_Code then
-          CCG_Mode := True;
-          Modify_Tree_For_C := True;
-          Transform_Function_Array := True;
-          Unnest_Subprogram_Mode := True;
-          Building_Static_Dispatch_Tables := False;
-          Minimize_Expression_With_Actions := True;
-          Expand_Nonbinary_Modular_Ops := True;
-          Back_End_Return_Slot := False;
- 
-          --  Set operating mode to Generate_Code to benefit from full front-end
-          --  expansion (e.g. generics).
- 
-          Operating_Mode := Generate_Code;
- 
-          --  Suppress alignment checks since we do not have access to alignment
-          --  info on the target.
- 
-          Suppress_Options.Suppress (Alignment_Check) := False;
-       end if;
- 
        --  -gnatd.E sets Error_To_Warning mode, causing selected error messages
        --  to be treated as warnings instead of errors.
  
--- 175,180 ----
*************** procedure Gnat1drv is
*** 207,219 ****
           Error_To_Warning := True;
        end if;
  
-       --  -gnatdJ sets Include_Subprogram_In_Messages, adding the related
-       --  subprogram as part of the error and warning messages.
- 
-       if Debug_Flag_JJ then
-          Include_Subprogram_In_Messages := True;
-       end if;
- 
        --  Disable CodePeer_Mode in Check_Syntax, since we need front-end
        --  expansion.
  
--- 182,187 ----
*************** procedure Gnat1drv is
*** 245,260 ****
  
           Debug_Flag_Dot_PP := True;
  
!          --  Turn off C tree generation, not compatible with CodePeer mode. We
!          --  do not expect this to happen in normal use, since both modes are
!          --  enabled by special tools, but it is useful to turn off these flags
!          --  this way when we are doing CodePeer tests on existing test suites
!          --  that may have -gnateg set, to avoid the need for special casing.
  
!          Modify_Tree_For_C        := False;
!          Transform_Function_Array := False;
!          Generate_C_Code          := False;
!          Unnest_Subprogram_Mode   := False;
  
           --  Turn off inlining, confuses CodePeer output and gains nothing
  
--- 213,221 ----
  
           Debug_Flag_Dot_PP := True;
  
!          --  Turn off front-end unnesting to be safe
  
!          Unnest_Subprogram_Mode := False;
  
           --  Turn off inlining, confuses CodePeer output and gains nothing
  
*************** procedure Gnat1drv is
*** 357,365 ****
  
           Generate_SCIL := True;
  
!          --  Enable assertions, since they give CodePeer valuable extra info
  
!          Assertions_Enabled := True;
  
           --  Set normal RM validity checking and checking of copies (to catch
           --  e.g. wrong values used in unchecked conversions).
--- 318,330 ----
  
           Generate_SCIL := True;
  
!          --  Enable assertions, since they give CodePeer valuable extra info;
!          --  however, when switch -gnatd_k is active, then keep assertions
!          --  disabled by default and only enable them when explicitly
!          --  requested by pragma Assertion_Policy, just like in ordinary
!          --  compilation.
  
!          Assertions_Enabled := not Debug_Flag_Underscore_K;
  
           --  Set normal RM validity checking and checking of copies (to catch
           --  e.g. wrong values used in unchecked conversions).
*************** procedure Gnat1drv is
*** 460,475 ****
           CodePeer_Mode := False;
           Generate_SCIL := False;
  
!          --  Turn off C tree generation, not compatible with GNATprove mode. We
!          --  do not expect this to happen in normal use, since both modes are
!          --  enabled by special tools, but it is useful to turn off these flags
!          --  this way when we are doing GNATprove tests on existing test suites
!          --  that may have -gnateg set, to avoid the need for special casing.
  
!          Modify_Tree_For_C        := False;
!          Transform_Function_Array := False;
!          Generate_C_Code          := False;
!          Unnest_Subprogram_Mode   := False;
  
           --  Turn off inlining, which would confuse formal verification output
           --  and gain nothing.
--- 425,433 ----
           CodePeer_Mode := False;
           Generate_SCIL := False;
  
!          --  Turn off front-end unnesting to be safe
  
!          Unnest_Subprogram_Mode := False;
  
           --  Turn off inlining, which would confuse formal verification output
           --  and gain nothing.
*************** procedure Gnat1drv is
*** 565,570 ****
--- 523,530 ----
           Restore_Warnings
             ((Warnings_Package.Elab_Warnings => True,
               Warnings_Package.Warn_On_Suspicious_Contract => True,
+              Warnings_Package.Warning_Doc_Switch =>
+                Warnsw.Warning_Doc_Switch,
               others => False));
  
           --  Suppress the generation of name tables for enumerations, which are
*************** procedure Gnat1drv is
*** 696,705 ****
           end if;
        end if;
  
!       --  Set default for atomic synchronization. As this synchronization
!       --  between atomic accesses can be expensive, and not typically needed
!       --  on some targets, an optional target parameter can turn the option
!       --  off. Note Atomic Synchronization is implemented as check.
  
        Suppress_Options.Suppress (Atomic_Synchronization) :=
          not Atomic_Sync_Default_On_Target;
--- 656,662 ----
           end if;
        end if;
  
!       --  Set default for atomic synchronization
  
        Suppress_Options.Suppress (Atomic_Synchronization) :=
          not Atomic_Sync_Default_On_Target;
*************** procedure Gnat1drv is
*** 729,757 ****
           end if;
        end if;
  
-       --  Treat -gnatn as equivalent to -gnatN for non-GCC targets
- 
-       if Inline_Active and not Front_End_Inlining then
- 
-          --  We really should have a tag for this, what if we added a new
-          --  back end some day, it would not be true for this test, but it
-          --  would be non-GCC, so this is a bit troublesome ???
- 
-          Front_End_Inlining := Generate_C_Code;
-       end if;
- 
        --  Set back-end inlining indication
  
        Back_End_Inlining :=
  
-         --  No back-end inlining available on C generation
- 
-         not Generate_C_Code
- 
          --  No back-end inlining in GNATprove mode, since it just confuses
          --  the formal verification process.
  
!         and then not GNATprove_Mode
  
          --  No back-end inlining if front-end inlining explicitly enabled.
          --  Done to minimize the output differences to customers still using
--- 686,699 ----
           end if;
        end if;
  
        --  Set back-end inlining indication
  
        Back_End_Inlining :=
  
          --  No back-end inlining in GNATprove mode, since it just confuses
          --  the formal verification process.
  
!         not GNATprove_Mode
  
          --  No back-end inlining if front-end inlining explicitly enabled.
          --  Done to minimize the output differences to customers still using
*************** begin
*** 1091,1096 ****
--- 1033,1045 ----
        Sem_Eval.Initialize;
        Sem_Type.Init_Interp_Tables;
  
+       --  If there was a -gnatem switch, initialize the mappings of unit names
+       --  to file names and of file names to path names from the mapping file.
+ 
+       if Mapping_File_Name /= null then
+          Fmap.Initialize (Mapping_File_Name.all);
+       end if;
+ 
        --  Capture compilation date and time
  
        Opt.Compilation_Time := System.OS_Lib.Current_Time_String;
*************** begin
*** 1108,1116 ****
              N : File_Name_Type;
  
           begin
!             Name_Buffer (1 .. 10) := "system.ads";
!             Name_Len := 10;
!             N := Name_Find;
              S := Load_Source_File (N);
  
              --  Failed to read system.ads, fatal error
--- 1057,1068 ----
              N : File_Name_Type;
  
           begin
!             N := Fmap.Mapped_File_Name (Name_To_Unit_Name (Name_System));
! 
!             if N = No_File then
!                N := Name_Find ("system.ads");
!             end if;
! 
              S := Load_Source_File (N);
  
              --  Failed to read system.ads, fatal error
*************** begin
*** 1237,1244 ****
  
        --  Ditto for old C files before regenerating new ones
  
!       if Generate_C_Code then
!          Delete_C_File;
           Delete_H_File;
        end if;
  
--- 1189,1195 ----
  
        --  Ditto for old C files before regenerating new ones
  
!       if Generate_C_Header then
           Delete_H_File;
        end if;
  
*************** begin
*** 1343,1362 ****
        elsif CodePeer_Mode then
           Back_End_Mode := Generate_Object;
  
!       --  Differentiate use of -gnatceg to generate a C header from an Ada spec
!       --  to the CCG case (standard.h found) where C code generation should
!       --  only be performed on full units.
! 
!       elsif Generate_C_Code then
!          Name_Len := 10;
!          Name_Buffer (1 .. Name_Len) := "standard.h";
  
!          if Find_File (Name_Find, Osint.Source, Full_Name => True) = No_File
!          then
!             Back_End_Mode := Generate_Object;
!          else
!             Back_End_Mode := Skip;
!          end if;
  
        --  It is not an error to analyze in GNATprove mode a spec which requires
        --  a body, when the body is not available. During frame condition
--- 1294,1303 ----
        elsif CodePeer_Mode then
           Back_End_Mode := Generate_Object;
  
!       --  Force pseudo code generation with -gnatceg
  
!       elsif Generate_C_Header then
!          Back_End_Mode := Generate_Object;
  
        --  It is not an error to analyze in GNATprove mode a spec which requires
        --  a body, when the body is not available. During frame condition
*************** begin
*** 1529,1534 ****
--- 1470,1477 ----
              Check_Rep_Info;
           end if;
  
+          pragma Annotate (Xcov, Dump_Buffers);
+ 
           return;
        end if;
  
*************** begin
*** 1682,1687 ****
--- 1625,1632 ----
        Atree.Print_Statistics;
     end if;
  
+    pragma Annotate (Xcov, Dump_Buffers);
+ 
  --  The outer exception handler handles an unrecoverable error
  
  exception
*************** exception
*** 1696,1701 ****
--- 1641,1649 ----
        Set_Standard_Output;
        Source_Dump;
        Tree_Dump;
+ 
+       pragma Annotate (Xcov, Dump_Buffers);
+ 
        Exit_Program (E_Errors);
  
  end Gnat1drv;
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat1drv.ads gcc-15.1.0/gcc/ada/gnat1drv.ads
*** gcc-14.2.0/gcc/ada/gnat1drv.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat1drv.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat2.gpr gcc-15.1.0/gcc/ada/gnat2.gpr
*** gcc-14.2.0/gcc/ada/gnat2.gpr	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/gnat2.gpr	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,71 ----
+ --  The "2" in Gnat2 is arbitrary and is there because "gnat.gpr" already
+ --  exists in the repository.
+ project Gnat2 is
+ 
+    --  We need C++ as a language to force the use of g++ for linking. That
+    --  causes GPRbuild to emit a warning because we don't have C++ source
+    --  files, but it should be fine.
+    for Languages use ("Ada", "C++");
+ 
+    for Main use ("gnat1drv.adb",
+                  "gnatbind.adb",
+                  "gnatmake.adb",
+                  "gnatlink.adb",
+                  "gnatcmd.adb",
+                  "gnatchop.adb",
+                  "gnatkr.adb",
+                  "gnatls.adb",
+                  "gnatprep.adb",
+                  "gnatname.adb",
+                  "gnatclean.adb");
+ 
+    Build_Dir := external ("Build_Dir");
+ 
+    Generated_Dir := Build_Dir & "/generated";
+ 
+    for Source_Dirs use (".", Build_Dir, Generated_Dir);
+ 
+    for Excluded_Source_Files use
+      ("indepsw-aix.adb",
+       "indepsw-darwin.adb",
+       "ada_get_targ.adb",
+       "indepsw-gnu.adb",
+       "seinfo_tables.ads",
+       "seinfo_tables.adb");
+ 
+    for Object_Dir use Build_Dir;
+ 
+    for Exec_Dir use Build_dir & "/..";
+ 
+    package Builder is
+       for Executable ("gnat1drv.adb") use "gnat1";
+ 
+       for Executable ("gnatcmd.adb") use "gnat";
+ 
+    end Builder;
+ 
+    package Coverage is
+       --  To make building from the oldest supported compiler work, we copy a handful
+       --  of fresh source files from the run-time library. We need gnatcov to not instrument
+       --  those files, so we add the clause below. It's unknown why only putting "GNAT" is sufficient???
+       --  We also pull in GNAT.Lists for example, but specifying it here triggers a warning.
+       Overridden_Runtime_Units := ("GNAT");
+ 
+       --  We don't want to instrument code generation tools
+       Codegen_Units :=
+         ("Gen_IL",
+          "Gen_IL.Gen",
+          "Gen_IL.Fields",
+          "Gen_IL.Gen.Gen_Entities",
+          "Gen_IL.Gen.Gen_Nodes",
+          "Gen_IL.Internals",
+          "Gen_IL.Main",
+          "Gen_IL.Types",
+          "XSnamesT",
+          "XUtil",
+          "XOSCons",
+          "XLeaps");
+ 
+       for Excluded_Units use Overridden_Runtime_Units & Codegen_Units;
+    end Coverage;
+ end Gnat2;
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat_cuda.adb gcc-15.1.0/gcc/ada/gnat_cuda.adb
*** gcc-14.2.0/gcc/ada/gnat_cuda.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat_cuda.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT_CUDA is
*** 191,197 ****
  
     procedure Expand_CUDA_Package (N : Node_Id) is
     begin
- 
        --  If not compiling for the host, do not do anything.
  
        if not Debug_Flag_Underscore_C then
--- 191,196 ----
*************** package body GNAT_CUDA is
*** 270,276 ****
                   and then Present (Corresponding_Stub (Parent (Bod)))
                 then
                    Error_Msg_N
!                     ("Cuda_Device not suported on separate subprograms",
                       Corresponding_Stub (Parent (Bod)));
                 else
                    Remove (Bod);
--- 269,275 ----
                   and then Present (Corresponding_Stub (Parent (Bod)))
                 then
                    Error_Msg_N
!                     ("CUDA_Device not supported on separate subprograms",
                       Corresponding_Stub (Parent (Bod)));
                 else
                    Remove (Bod);
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat_cuda.ads gcc-15.1.0/gcc/ada/gnat_cuda.ads
*** gcc-14.2.0/gcc/ada/gnat_cuda.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat_cuda.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat_rm.texi gcc-15.1.0/gcc/ada/gnat_rm.texi
*** gcc-14.2.0/gcc/ada/gnat_rm.texi	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat_rm.texi	Fri Apr 25 08:18:00 2025
***************
*** 3,9 ****
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
--- 3,9 ----
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT Reference Manual , Apr 15, 2024
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Reference Manual , Jan 03, 2025
  
  AdaCore
  
! Copyright @copyright{} 2008-2025, Free Software Foundation
  @end quotation
  
  @end copying
*************** Implementation Defined Pragmas
*** 152,157 ****
--- 152,158 ----
  * Pragma Eliminate:: 
  * Pragma Enable_Atomic_Synchronization:: 
  * Pragma Exceptional_Cases:: 
+ * Pragma Exit_Cases:: 
  * Pragma Export_Function:: 
  * Pragma Export_Object:: 
  * Pragma Export_Procedure:: 
*************** Implementation Defined Pragmas
*** 187,192 ****
--- 188,194 ----
  * Pragma Interface_Name:: 
  * Pragma Interrupt_Handler:: 
  * Pragma Interrupt_State:: 
+ * Pragma Interrupts_System_By_Default:: 
  * Pragma Invariant:: 
  * Pragma Keep_Names:: 
  * Pragma License:: 
*************** Implementation Defined Pragmas
*** 209,214 ****
--- 211,217 ----
  * Pragma No_Elaboration_Code_All:: 
  * Pragma No_Heap_Finalization:: 
  * Pragma No_Inline:: 
+ * Pragma No_Raise:: 
  * Pragma No_Return:: 
  * Pragma No_Strict_Aliasing:: 
  * Pragma No_Tagged_Streams:: 
*************** Implementation Defined Pragmas
*** 265,270 ****
--- 268,274 ----
  * Pragma Static_Elaboration_Desired:: 
  * Pragma Stream_Convert:: 
  * Pragma Style_Checks:: 
+ * Pragma Subprogram_Variant:: 
  * Pragma Subtitle:: 
  * Pragma Suppress:: 
  * Pragma Suppress_All:: 
*************** Implementation Defined Aspects
*** 317,322 ****
--- 321,327 ----
  * Aspect Effective_Reads:: 
  * Aspect Effective_Writes:: 
  * Aspect Exceptional_Cases:: 
+ * Aspect Exit_Cases:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
*************** Implementation Defined Aspects
*** 335,340 ****
--- 340,346 ----
  * Aspect No_Caching:: 
  * Aspect No_Elaboration_Code_All:: 
  * Aspect No_Inline:: 
+ * Aspect No_Raise:: 
  * Aspect No_Tagged_Streams:: 
  * Aspect No_Task_Parts:: 
  * Aspect Object_Size:: 
*************** Implementation Defined Aspects
*** 349,361 ****
  * Aspect Refined_State:: 
  * Aspect Relaxed_Initialization:: 
  * Aspect Remote_Access_Type:: 
- * Aspect Secondary_Stack_Size:: 
  * Aspect Scalar_Storage_Order:: 
  * Aspect Shared:: 
  * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
  * Aspect Suppress_Debug_Info:: 
  * Aspect Suppress_Initialization:: 
  * Aspect Test_Case:: 
--- 355,368 ----
  * Aspect Refined_State:: 
  * Aspect Relaxed_Initialization:: 
  * Aspect Remote_Access_Type:: 
  * Aspect Scalar_Storage_Order:: 
+ * Aspect Secondary_Stack_Size:: 
  * Aspect Shared:: 
  * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
+ * Aspect Subprogram_Variant:: 
  * Aspect Suppress_Debug_Info:: 
  * Aspect Suppress_Initialization:: 
  * Aspect Test_Case:: 
*************** Implementation Defined Attributes
*** 406,412 ****
  * Attribute Initialized:: 
  * Attribute Integer_Value:: 
  * Attribute Invalid_Value:: 
- * Attribute Iterable:: 
  * Attribute Large:: 
  * Attribute Library_Level:: 
  * Attribute Loop_Entry:: 
--- 413,418 ----
*************** Implementation Defined Attributes
*** 423,428 ****
--- 429,435 ----
  * Attribute Range_Length:: 
  * Attribute Restriction_Set:: 
  * Attribute Result:: 
+ * Attribute Round:: 
  * Attribute Safe_Emax:: 
  * Attribute Safe_Large:: 
  * Attribute Safe_Small:: 
*************** The GNAT Library
*** 832,838 ****
  * Interfaces.C.Streams (i-cstrea.ads): Interfaces C Streams i-cstrea ads. 
  * Interfaces.Packed_Decimal (i-pacdec.ads): Interfaces Packed_Decimal i-pacdec ads. 
  * Interfaces.VxWorks (i-vxwork.ads): Interfaces VxWorks i-vxwork ads. 
- * Interfaces.VxWorks.Int_Connection (i-vxinco.ads): Interfaces VxWorks Int_Connection i-vxinco ads. 
  * Interfaces.VxWorks.IO (i-vxwoio.ads): Interfaces VxWorks IO i-vxwoio ads. 
  * System.Address_Image (s-addima.ads): System Address_Image s-addima ads. 
  * System.Assertions (s-assert.ads): System Assertions s-assert ads. 
--- 839,844 ----
*************** GNAT language extensions
*** 891,909 ****
  Curated Extensions
  
  * Local Declarations Without Block:: 
! * Conditional when constructs:: 
! * Case pattern matching:: 
  * Fixed lower bounds for array types and subtypes:: 
  * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
  * Expression defaults for generic formal functions:: 
  * String interpolation:: 
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  
  Experimental Language Extensions
  
! * Pragma Storage_Model:: 
! * Simpler accessibility model:: 
  
  Security Hardening Features
  
--- 897,956 ----
  Curated Extensions
  
  * Local Declarations Without Block:: 
! * Deep delta Aggregates:: 
  * Fixed lower bounds for array types and subtypes:: 
  * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
  * Expression defaults for generic formal functions:: 
  * String interpolation:: 
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
+ * First Controlling Parameter:: 
+ 
+ Deep delta Aggregates
+ 
+ * Syntax:: 
+ * Legality Rules:: 
+ * Dynamic Semantics:: 
+ * Examples:: 
  
  Experimental Language Extensions
  
! * Conditional when constructs:: 
! * Storage Model:: 
! * Attribute Super:: 
! * Simpler Accessibility Model:: 
! * Case pattern matching:: 
! * Mutably Tagged Types with Size’Class Aspect:: 
! * Generalized Finalization:: 
! * No_Raise aspect:: 
! * Inference of Dependent Types in Generic Instantiations:: 
! * External_Initialization Aspect:: 
! * Finally construct:: 
! 
! Storage Model
! 
! * Aspect Storage_Model_Type:: 
! * Aspect Designated_Storage_Model:: 
! * Legacy Storage Pools:: 
! 
! Simpler Accessibility Model
! 
! * Stand-alone objects:: 
! * Subprogram parameters:: 
! * Function results:: 
! 
! No_Raise aspect
! 
! * New specification for Ada.Finalization.Controlled: New specification for Ada Finalization Controlled. 
! * Finalized tagged types:: 
! * Composite types:: 
! * Interoperability with controlled types:: 
! 
! Finally construct
! 
! * Syntax: Syntax<2>. 
! * Legality Rules: Legality Rules<2>. 
! * Dynamic Semantics: Dynamic Semantics<2>. 
  
  Security Hardening Features
  
*************** consideration, the use of these pragmas
*** 1272,1277 ****
--- 1319,1325 ----
  * Pragma Eliminate:: 
  * Pragma Enable_Atomic_Synchronization:: 
  * Pragma Exceptional_Cases:: 
+ * Pragma Exit_Cases:: 
  * Pragma Export_Function:: 
  * Pragma Export_Object:: 
  * Pragma Export_Procedure:: 
*************** consideration, the use of these pragmas
*** 1307,1312 ****
--- 1355,1361 ----
  * Pragma Interface_Name:: 
  * Pragma Interrupt_Handler:: 
  * Pragma Interrupt_State:: 
+ * Pragma Interrupts_System_By_Default:: 
  * Pragma Invariant:: 
  * Pragma Keep_Names:: 
  * Pragma License:: 
*************** consideration, the use of these pragmas
*** 1329,1334 ****
--- 1378,1384 ----
  * Pragma No_Elaboration_Code_All:: 
  * Pragma No_Heap_Finalization:: 
  * Pragma No_Inline:: 
+ * Pragma No_Raise:: 
  * Pragma No_Return:: 
  * Pragma No_Strict_Aliasing:: 
  * Pragma No_Tagged_Streams:: 
*************** consideration, the use of these pragmas
*** 1385,1390 ****
--- 1435,1441 ----
  * Pragma Static_Elaboration_Desired:: 
  * Pragma Stream_Convert:: 
  * Pragma Style_Checks:: 
+ * Pragma Subprogram_Variant:: 
  * Pragma Subtitle:: 
  * Pragma Suppress:: 
  * Pragma Suppress_All:: 
*************** pragma Always_Terminates [ (boolean_EXPR
*** 1750,1756 ****
  @end example
  
  For the semantics of this pragma, see the entry for aspect @code{Always_Terminates}
! in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Annotate,Pragma Assert,Pragma Always_Terminates,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{2a}@anchor{gnat_rm/implementation_defined_pragmas pragma-annotate}@anchor{2b}
--- 1801,1807 ----
  @end example
  
  For the semantics of this pragma, see the entry for aspect @code{Always_Terminates}
! in the SPARK 2014 Reference Manual, section 6.1.11.
  
  @node Pragma Annotate,Pragma Assert,Pragma Always_Terminates,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{2a}@anchor{gnat_rm/implementation_defined_pragmas pragma-annotate}@anchor{2b}
*************** Syntax:
*** 3101,3119 ****
  
  @example
  pragma Disable_Atomic_Synchronization [(Entity)];
  @end example
  
  Ada requires that accesses (reads or writes) of an atomic variable be
  regarded as synchronization points in the case of multiple tasks.
  Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This capability may
! be turned off using this pragma in cases where it is known not to be
! required.
  
! The placement and scope rules for this pragma are the same as those
! for @code{pragma Suppress}. In particular it can be used as a
! configuration  pragma, or in a declaration sequence where it applies
! till the end of the scope. If an @code{Entity} argument is present,
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
--- 3152,3173 ----
  
  @example
  pragma Disable_Atomic_Synchronization [(Entity)];
+ 
+ pragma Enable_Atomic_Synchronization [(Entity)];
  @end example
  
  Ada requires that accesses (reads or writes) of an atomic variable be
  regarded as synchronization points in the case of multiple tasks.
  Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This synchronization
! is performed by default, but can be turned off using pragma
! @code{Disable_Atomic_Synchronization}.
! The @code{Enable_Atomic_Synchronization} pragma turns it back on.
  
! The placement and scope rules for these pragmas are the same as those
! for @code{pragma Suppress}. In particular they can be used as
! configuration pragmas, or in a declaration sequence where they apply
! until the end of the scope. If an @code{Entity} argument is present,
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
*************** Syntax:
*** 3376,3397 ****
  pragma Enable_Atomic_Synchronization [(Entity)];
  @end example
  
! Ada requires that accesses (reads or writes) of an atomic variable be
! regarded as synchronization points in the case of multiple tasks.
! Particularly in the case of multi-processors this may require special
! handling, e.g. the generation of memory barriers. This synchronization
! is performed by default, but can be turned off using
! @code{pragma Disable_Atomic_Synchronization}. The
! @code{Enable_Atomic_Synchronization} pragma can be used to turn
! it back on.
! 
! The placement and scope rules for this pragma are the same as those
! for @code{pragma Unsuppress}. In particular it can be used as a
! configuration  pragma, or in a declaration sequence where it applies
! till the end of the scope. If an @code{Entity} argument is present,
! the action applies only to that entity.
  
! @node Pragma Exceptional_Cases,Pragma Export_Function,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-exceptional-cases}@anchor{61}
  @section Pragma Exceptional_Cases
  
--- 3430,3439 ----
  pragma Enable_Atomic_Synchronization [(Entity)];
  @end example
  
! Reenables atomic synchronization; see @code{pragma Disable_Atomic_Synchronization}
! 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
  
*************** CONSEQUENCE           ::= Boolean_expres
*** 3411,3418 ****
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
  6.1.9.
  
! @node Pragma Export_Function,Pragma Export_Object,Pragma Exceptional_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{62}
  @section Pragma Export_Function
  
  
--- 3453,3483 ----
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
  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
! 
! 
! @geindex Exit_Cases
! 
! Syntax:
! 
! @example
! pragma Exit_Cases (EXIT_CASE_LIST);
! 
! EXIT_CASE_LIST ::= EXIT_CASE @{, EXIT_CASE@}
! EXIT_CASE      ::= GUARD => EXIT_KIND
! EXIT_KIND      ::= Normal_Return
!                  | Exception_Raised
!                  | (Exception_Raised => exception_name)
! GUARD          ::= Boolean_expression
! @end example
! 
! For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
! 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
  
  
*************** string. In this case, no external name i
*** 3484,3490 ****
  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{63}
  @section Pragma Export_Object
  
  
--- 3549,3555 ----
  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
  
  
*************** of portability), but it is not required.
*** 3509,3515 ****
  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{64}
  @section Pragma Export_Procedure
  
  
--- 3574,3580 ----
  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
  
  
*************** string. In this case, no external name i
*** 3562,3568 ****
  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{65}
  @section Pragma Export_Valued_Procedure
  
  
--- 3627,3633 ----
  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
  
  
*************** string. In this case, no external name i
*** 3620,3626 ****
  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{66}
  @section Pragma Extend_System
  
  
--- 3685,3691 ----
  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
  
  
*************** for compiling System units, as explained
*** 3671,3677 ****
  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{67}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{68}
  @section Pragma Extensions_Allowed
  
  
--- 3736,3742 ----
  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
  
  
*************** GNAT User’s Guide.
*** 3682,3705 ****
  Syntax:
  
  @example
! pragma Extensions_Allowed (On | Off | All);
  @end example
  
! This configuration pragma enables (via the “On” or “All” argument) or disables
! (via the “Off” argument) the implementation extension mode; the pragma takes
! precedence over the @code{-gnatX} and @code{-gnatX0} command switches.
  
  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{69,,here})
  
! An argument of @code{"All"} has the same effect except that some extra
  experimental extensions are enabled (See the list here
! @ref{6a,,here})
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6b}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{6c}
  @section Pragma Extensions_Visible
  
  
--- 3747,3770 ----
  Syntax:
  
  @example
! pragma Extensions_Allowed (On | Off | All_Extensions);
  @end example
  
! This configuration pragma enables (via the “On” or “All_Extensions” argument)
! or disables (via the “Off” argument) the implementation extension mode; the
! pragma takes precedence over the @code{-gnatX} and @code{-gnatX0} command switches.
  
  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
  
  
*************** For the semantics of this pragma, see th
*** 3713,3719 ****
  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{6d}
  @section Pragma External
  
  
--- 3778,3784 ----
  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
  
  
*************** used this pragma for exactly the same pu
*** 3734,3740 ****
  @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{6e}
  @section Pragma External_Name_Casing
  
  
--- 3799,3805 ----
  @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
  
  
*************** pragma External_Name_Casing (Uppercase,
*** 3823,3829 ****
  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{6f}
  @section Pragma Fast_Math
  
  
--- 3888,3894 ----
  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
  
  
*************** under control of the pragma, rather than
*** 3852,3865 ****
  @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{70}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{71}
  @section Pragma Favor_Top_Level
  
  
  Syntax:
  
  @example
! pragma Favor_Top_Level (type_NAME);
  @end example
  
  The argument of pragma @code{Favor_Top_Level} must be a named access-to-subprogram
--- 3917,3930 ----
  @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
  
  
  Syntax:
  
  @example
! pragma Favor_Top_Level (type_LOCAL_NAME);
  @end example
  
  The argument of pragma @code{Favor_Top_Level} must be a named access-to-subprogram
*************** When this pragma is used, dynamically ge
*** 3871,3877 ****
  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{72}
  @section Pragma Finalize_Storage_Only
  
  
--- 3936,3942 ----
  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
  
  
*************** name. Note that this pragma does not sup
*** 3891,3897 ****
  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{73}
  @section Pragma Float_Representation
  
  
--- 3956,3962 ----
  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
  
  
*************** No other value of digits is permitted.
*** 3926,3932 ****
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{74}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{75}
  @section Pragma Ghost
  
  
--- 3991,3997 ----
  @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
  
  
*************** For the semantics of this pragma, see th
*** 3940,3946 ****
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{76}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{77}
  @section Pragma Global
  
  
--- 4005,4011 ----
  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
  
  
*************** For the semantics of this pragma, see th
*** 3965,3971 ****
  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{78}
  @section Pragma Ident
  
  
--- 4030,4036 ----
  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
  
  
*************** This pragma is identical in effect to pr
*** 3979,3985 ****
  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{79}
  @section Pragma Ignore_Pragma
  
  
--- 4044,4050 ----
  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
  
  
*************** pragma allows such pragmas to be ignored
*** 4001,4007 ****
  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{7a}
  @section Pragma Implementation_Defined
  
  
--- 4066,4072 ----
  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
  
  
*************** for the purpose of implementing the No_I
*** 4028,4034 ****
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{7b}
  @section Pragma Implemented
  
  
--- 4093,4099 ----
  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
  
  
*************** By_Any shares the behavior of By_Entry a
*** 4074,4080 ****
  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{7c}
  @section Pragma Implicit_Packing
  
  
--- 4139,4145 ----
  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
  
  
*************** sufficient. The use of pragma Implicit_P
*** 4128,4134 ****
  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{7d}
  @section Pragma Import_Function
  
  
--- 4193,4199 ----
  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
  
  
*************** notation.  If the mechanism is not speci
*** 4193,4199 ****
  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{7e}
  @section Pragma Import_Object
  
  
--- 4258,4264 ----
  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
  
  
*************** point of view).  @code{size} is syntax c
*** 4219,4225 ****
  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{7f}
  @section Pragma Import_Procedure
  
  
--- 4284,4290 ----
  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
  
  
*************** applies to a procedure rather than a fun
*** 4259,4265 ****
  @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{80}
  @section Pragma Import_Valued_Procedure
  
  
--- 4324,4330 ----
  @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
  
  
*************** pragma Import that specifies the desired
*** 4312,4325 ****
  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{81}
  @section Pragma Independent
  
  
  Syntax:
  
  @example
! pragma Independent (Local_NAME);
  @end example
  
  This pragma is standard in Ada 2012 mode (which also provides an aspect
--- 4377,4390 ----
  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
  
  
  Syntax:
  
  @example
! pragma Independent (component_LOCAL_NAME);
  @end example
  
  This pragma is standard in Ada 2012 mode (which also provides an aspect
*************** constraints on the representation of the
*** 4334,4340 ****
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{82}
  @section Pragma Independent_Components
  
  
--- 4399,4405 ----
  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
  
  
*************** constraints on the representation of the
*** 4355,4361 ****
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{83}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{84}
  @section Pragma Initial_Condition
  
  
--- 4420,4426 ----
  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
  
  
*************** For the semantics of this pragma, see th
*** 4369,4375 ****
  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{85}
  @section Pragma Initialize_Scalars
  
  
--- 4434,4440 ----
  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
  
  
*************** good idea to turn on stack checking (see
*** 4478,4484 ****
  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{86}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{87}
  @section Pragma Initializes
  
  
--- 4543,4549 ----
  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
  
  
*************** For the semantics of this pragma, see th
*** 4505,4511 ****
  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{88}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{89}
  @section Pragma Inline_Always
  
  
--- 4570,4576 ----
  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
  
  
*************** apply this pragma to a primitive operati
*** 4524,4530 ****
  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{8a}
  @section Pragma Inline_Generic
  
  
--- 4589,4595 ----
  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
  
  
*************** than to check that the given names are a
*** 4542,4548 ****
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{8b}
  @section Pragma Interface
  
  
--- 4607,4613 ----
  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
  
  
*************** maintaining Ada 83/Ada 95 compatibility
*** 4569,4575 ****
  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{8c}
  @section Pragma Interface_Name
  
  
--- 4634,4640 ----
  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
  
  
*************** for an interfaced subprogram, and is pro
*** 4588,4594 ****
  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{8d}
  @section Pragma Interrupt_Handler
  
  
--- 4653,4659 ----
  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
  
  
*************** pragma Interrupt_Handler (procedure_LOCA
*** 4601,4608 ****
  This program unit pragma is supported for parameterless protected procedures
  as described in Annex C of the Ada Reference Manual.
  
! @node Pragma Interrupt_State,Pragma Invariant,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{8e}
  @section Pragma Interrupt_State
  
  
--- 4666,4673 ----
  This program unit pragma is supported for parameterless protected procedures
  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
  
  
*************** Overriding the default state of signals
*** 4687,4694 ****
  with an application’s runtime behavior in the cases of the synchronous signals,
  and in the case of the signal used to implement the @code{abort} statement.
  
! @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{8f}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{90}
  @section Pragma Invariant
  
  
--- 4752,4773 ----
  with an application’s runtime behavior in the cases of the synchronous signals,
  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
! 
! 
! Syntax:
! 
! @example
! pragma Interrupts_System_By_Default;
! @end example
! 
! Default all interrupts to the System state as defined above in pragma
! @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
  
  
*************** For further details on the use of this p
*** 4727,4733 ****
  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{91}
  @section Pragma Keep_Names
  
  
--- 4806,4812 ----
  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
  
  
*************** use a @code{Discard_Names} pragma in the
*** 4747,4753 ****
  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{92}
  @section Pragma License
  
  
--- 4826,4832 ----
  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
  
  
*************** GPL, but no warning for @code{GNAT.Socke
*** 4842,4848 ****
  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{93}
  @section Pragma Link_With
  
  
--- 4921,4927 ----
  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
  
  
*************** separate arguments to the linker. In add
*** 4866,4872 ****
  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{94}
  @section Pragma Linker_Alias
  
  
--- 4945,4951 ----
  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
  
  
*************** end p;
*** 4907,4913 ****
  @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{95}
  @section Pragma Linker_Constructor
  
  
--- 4986,4992 ----
  @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
  
  
*************** listed above. Where possible, the use of
*** 4937,4943 ****
  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{96}
  @section Pragma Linker_Destructor
  
  
--- 5016,5022 ----
  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
  
  
*************** See @code{pragma Linker_Constructor} for
*** 4960,4966 ****
  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{97}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{98}
  @section Pragma Linker_Section
  
  
--- 5039,5045 ----
  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
  
  
*************** end IO_Card;
*** 5034,5044 ****
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{99}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{9a}
  @section Pragma Lock_Free
  
  
  Syntax:
  This pragma may be specified for protected types or objects. It specifies that
  the implementation of protected operations must be implemented without locks.
  Compilation fails if the compiler cannot generate lock-free code for the
--- 5113,5128 ----
  @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
  
  
  Syntax:
+ 
+ @example
+ pragma Lock_Free [ (static_boolean_EXPRESSION) ];
+ @end example
+ 
  This pragma may be specified for protected types or objects. It specifies that
  the implementation of protected operations must be implemented without locks.
  Compilation fails if the compiler cannot generate lock-free code for the
*************** Ada RM D.3) are not performed when a pro
*** 5092,5098 ****
  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{9b}
  @section Pragma Loop_Invariant
  
  
--- 5176,5182 ----
  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
  
  
*************** attribute can only be used within the ex
*** 5125,5131 ****
  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{9c}
  @section Pragma Loop_Optimize
  
  
--- 5209,5215 ----
  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
  
  
*************** compiler in order to enable the relevant
*** 5187,5193 ****
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{9d}
  @section Pragma Loop_Variant
  
  
--- 5271,5277 ----
  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
  
  
*************** The @code{Loop_Entry} attribute may be u
*** 5234,5240 ****
  @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{9e}
  @section Pragma Machine_Attribute
  
  
--- 5318,5324 ----
  @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
  
  
*************** which may make this pragma unusable for
*** 5260,5266 ****
  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{9f}
  @section Pragma Main
  
  
--- 5344,5350 ----
  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
  
  
*************** This pragma is provided for compatibilit
*** 5280,5286 ****
  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{a0}
  @section Pragma Main_Storage
  
  
--- 5364,5370 ----
  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
  
  
*************** This pragma is provided for compatibilit
*** 5299,5312 ****
  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{a1}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{a2}
  @section Pragma Max_Queue_Length
  
  
  Syntax:
  
  @example
! pragma Max_Entry_Queue (static_integer_EXPRESSION);
  @end example
  
  This pragma is used to specify the maximum callers per entry queue for
--- 5383,5396 ----
  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
  
  
  Syntax:
  
  @example
! pragma Max_Queue_Length (static_integer_EXPRESSION);
  @end example
  
  This pragma is used to specify the maximum callers per entry queue for
*************** entry.
*** 5317,5323 ****
  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{a3}
  @section Pragma No_Body
  
  
--- 5401,5407 ----
  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
  
  
*************** dummy body with a No_Body pragma ensures
*** 5340,5346 ****
  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{a4}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{a5}
  @section Pragma No_Caching
  
  
--- 5424,5430 ----
  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
  
  
*************** For the semantics of this pragma, see th
*** 5354,5360 ****
  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{a6}
  @section Pragma No_Component_Reordering
  
  
--- 5438,5444 ----
  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
  
  
*************** declared in units to which the pragma ap
*** 5373,5379 ****
  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{a7}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{a8}
  @section Pragma No_Elaboration_Code_All
  
  
--- 5457,5463 ----
  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
  
  
*************** same name) that establishes the restrict
*** 5388,5398 ****
  the current unit and any extended main source units (body and subunits).
  It also has the effect of enforcing a transitive application of this
  aspect, so that if any unit is implicitly or explicitly with’ed by the
! current unit, it must also have the No_Elaboration_Code_All aspect set.
  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{a9}
  @section Pragma No_Heap_Finalization
  
  
--- 5472,5482 ----
  the current unit and any extended main source units (body and subunits).
  It also has the effect of enforcing a transitive application of this
  aspect, so that if any unit is implicitly or explicitly with’ed by the
! current unit, it must also have the @cite{No_Elaboration_Code_All} aspect set.
  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
  
  
*************** A library-level named access-to-object t
*** 5423,5430 ****
  lose its @code{No_Heap_Finalization} pragma when the corresponding instance does not
  appear at the library level.
  
! @node Pragma No_Inline,Pragma No_Return,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{aa}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{ab}
  @section Pragma No_Inline
  
  
--- 5507,5514 ----
  lose its @code{No_Heap_Finalization} pragma when the corresponding instance does not
  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
  
  
*************** in particular it is not subject to the u
*** 5441,5448 ****
  `-gnatN'.  It is illegal to specify both pragma @code{No_Inline} and
  pragma @code{Inline_Always} for the same @code{NAME}.
  
! @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{ac}
  @section Pragma No_Return
  
  
--- 5525,5549 ----
  `-gnatN'.  It is illegal to specify both pragma @code{No_Inline} and
  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
! 
! 
! Syntax:
! 
! @example
! pragma No_Raise (subprogram_LOCAL_NAME @{, subprogram_LOCAL_NAME@});
! @end example
! 
! Each @code{subprogram_LOCAL_NAME} argument must refer to one or more subprogram
! declarations in the current declarative part.  A subprogram to which this
! pragma is applied may not raise an exception that is not caught within it.
! An implementation-defined check named @cite{Raise_Check} is associated with the
! 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
  
  
*************** available in all earlier versions of Ada
*** 5469,5475 ****
  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{ad}
  @section Pragma No_Strict_Aliasing
  
  
--- 5570,5576 ----
  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
  
  
*************** in the @cite{GNAT User’s Guide}.
*** 5491,5497 ****
  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 id28}@anchor{ae}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{af}
  @section Pragma No_Tagged_Streams
  
  
--- 5592,5598 ----
  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
  
  
*************** with empty strings. This is useful to av
*** 5530,5536 ****
  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{b0}
  @section Pragma Normalize_Scalars
  
  
--- 5631,5637 ----
  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
  
  
*************** will always generate an invalid value if
*** 5612,5618 ****
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b1}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{b2}
  @section Pragma Obsolescent
  
  
--- 5713,5719 ----
  @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
  
  
*************** So if you specify @code{Entity =>} for t
*** 5708,5714 ****
  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{b3}
  @section Pragma Optimize_Alignment
  
  
--- 5809,5815 ----
  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
  
  
*************** latter are compiled by default in pragma
*** 5794,5800 ****
  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{b4}
  @section Pragma Ordered
  
  
--- 5895,5901 ----
  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
  
  
*************** For additional information please refer
*** 5886,5892 ****
  `-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{b5}
  @section Pragma Overflow_Mode
  
  
--- 5987,5993 ----
  `-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
  
  
*************** The pragma @code{Unsuppress (Overflow_Ch
*** 5925,5931 ****
  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{b6}
  @section Pragma Overriding_Renamings
  
  
--- 6026,6032 ----
  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
  
  
*************** RM 8.3 (15) stipulates that an overridde
*** 5960,5966 ****
  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 id30}@anchor{b7}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{b8}
  @section Pragma Part_Of
  
  
--- 6061,6067 ----
  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
  
  
*************** For the semantics of this pragma, see th
*** 5976,5982 ****
  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{b9}
  @section Pragma Partition_Elaboration_Policy
  
  
--- 6077,6083 ----
  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
  
  
*************** versions of Ada as an implementation-def
*** 5993,5999 ****
  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{ba}
  @section Pragma Passive
  
  
--- 6094,6100 ----
  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
  
  
*************** For more information on the subject of p
*** 6017,6030 ****
  ‘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 id31}@anchor{bb}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{bc}
  @section Pragma Persistent_BSS
  
  
  Syntax:
  
  @example
! pragma Persistent_BSS [(LOCAL_NAME)]
  @end example
  
  This pragma allows selected objects to be placed in the @code{.persistent_bss}
--- 6118,6131 ----
  ‘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
  
  
  Syntax:
  
  @example
! pragma Persistent_BSS [(object_LOCAL_NAME)]
  @end example
  
  This pragma allows selected objects to be placed in the @code{.persistent_bss}
*************** If this pragma is used on a target where
*** 6048,6054 ****
  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{bd}
  @section Pragma Post
  
  
--- 6149,6155 ----
  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
  
  
*************** appear at the start of the declarations
*** 6073,6079 ****
  (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{be}
  @section Pragma Postcondition
  
  
--- 6174,6180 ----
  (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
  
  
*************** Ada 2012, and has been retained in its o
*** 6238,6244 ****
  compatibility purposes.
  
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{bf}
  @section Pragma Post_Class
  
  
--- 6339,6345 ----
  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
  
  
*************** policy that controls this pragma is @cod
*** 6273,6279 ****
  @code{Post_Class}.
  
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c0}
  @section Pragma Pre
  
  
--- 6374,6380 ----
  @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
  
  
*************** appear at the start of the declarations
*** 6298,6304 ****
  (preceded only by other pragmas).
  
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c1}
  @section Pragma Precondition
  
  
--- 6399,6405 ----
  (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
  
  
*************** Ada 2012, and has been retained in its o
*** 6357,6363 ****
  compatibility purposes.
  
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{c2}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c3}
  @section Pragma Predicate
  
  
--- 6458,6464 ----
  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
  
  
*************** defined for subtype B). When following t
*** 6411,6417 ****
  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{c4}
  @section Pragma Predicate_Failure
  
  
--- 6512,6518 ----
  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
  
  
*************** the language-defined
*** 6428,6434 ****
  @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{c5}
  @section Pragma Preelaborable_Initialization
  
  
--- 6529,6535 ----
  @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
  
  
*************** versions of Ada as an implementation-def
*** 6443,6449 ****
  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{c6}
  @section Pragma Prefix_Exception_Messages
  
  
--- 6544,6550 ----
  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
  
  
*************** prefixing in this case, you can always c
*** 6474,6480 ****
  @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{c7}
  @section Pragma Pre_Class
  
  
--- 6575,6581 ----
  @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
  
  
*************** policy that controls this pragma is @cod
*** 6509,6515 ****
  @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{c8}
  @section Pragma Priority_Specific_Dispatching
  
  
--- 6610,6616 ----
  @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
  
  
*************** versions of Ada as an implementation-def
*** 6533,6539 ****
  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{c9}
  @section Pragma Profile
  
  
--- 6634,6640 ----
  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
  
  
*************** conforming Ada constructs.  The profile
*** 6812,6818 ****
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ca}
  @section Pragma Profile_Warnings
  
  
--- 6913,6919 ----
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ce}
  @section Pragma Profile_Warnings
  
  
*************** violations of the profile generate warni
*** 6830,6836 ****
  of error messages.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{cb}
  @section Pragma Propagate_Exceptions
  
  
--- 6931,6937 ----
  of error messages.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{cf}
  @section Pragma Propagate_Exceptions
  
  
*************** purposes. It used to be used in connecti
*** 6849,6855 ****
  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{cc}
  @section Pragma Provide_Shift_Operators
  
  
--- 6950,6956 ----
  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{d0}
  @section Pragma Provide_Shift_Operators
  
  
*************** including the function declarations for
*** 6869,6875 ****
  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{cd}
  @section Pragma Psect_Object
  
  
--- 6970,6976 ----
  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{d1}
  @section Pragma Psect_Object
  
  
*************** EXTERNAL_SYMBOL ::=
*** 6889,6895 ****
  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 id33}@anchor{ce}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{cf}
  @section Pragma Pure_Function
  
  
--- 6990,6996 ----
  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 id34}@anchor{d2}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d3}
  @section Pragma Pure_Function
  
  
*************** unit is not a Pure unit in the categoriz
*** 6951,6957 ****
  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{d0}
  @section Pragma Rational
  
  
--- 7052,7058 ----
  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{d4}
  @section Pragma Rational
  
  
*************** pragma Profile (Rational);
*** 6969,6975 ****
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d1}
  @section Pragma Ravenscar
  
  
--- 7070,7076 ----
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d5}
  @section Pragma Ravenscar
  
  
*************** pragma Profile (Ravenscar);
*** 6989,6995 ****
  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 id34}@anchor{d2}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d3}
  @section Pragma Refined_Depends
  
  
--- 7090,7096 ----
  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 id35}@anchor{d6}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d7}
  @section Pragma Refined_Depends
  
  
*************** For the semantics of this pragma, see th
*** 7022,7028 ****
  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 id35}@anchor{d4}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{d5}
  @section Pragma Refined_Global
  
  
--- 7123,7129 ----
  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 id36}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{d9}
  @section Pragma Refined_Global
  
  
*************** For the semantics of this pragma, see th
*** 7047,7053 ****
  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 id36}@anchor{d6}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{d7}
  @section Pragma Refined_Post
  
  
--- 7148,7154 ----
  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 id37}@anchor{da}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{db}
  @section Pragma Refined_Post
  
  
*************** For the semantics of this pragma, see th
*** 7061,7067 ****
  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 id37}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{d9}
  @section Pragma Refined_State
  
  
--- 7162,7168 ----
  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 id38}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{dd}
  @section Pragma Refined_State
  
  
*************** For the semantics of this pragma, see th
*** 7087,7093 ****
  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{da}
  @section Pragma Relative_Deadline
  
  
--- 7188,7194 ----
  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{de}
  @section Pragma Relative_Deadline
  
  
*************** versions of Ada as an implementation-def
*** 7102,7108 ****
  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 id38}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{dc}
  @section Pragma Remote_Access_Type
  
  
--- 7203,7209 ----
  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 id39}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e0}
  @section Pragma Remote_Access_Type
  
  
*************** pertaining to remote access to class-wid
*** 7128,7134 ****
  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{dd}
  @section Pragma Rename_Pragma
  
  
--- 7229,7235 ----
  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{e1}
  @section Pragma Rename_Pragma
  
  
*************** Pragma Inline_Only will not necessarily
*** 7167,7173 ****
  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{de}
  @section Pragma Restricted_Run_Time
  
  
--- 7268,7274 ----
  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{e2}
  @section Pragma Restricted_Run_Time
  
  
*************** which is the preferred method of setting
*** 7188,7194 ****
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{df}
  @section Pragma Restriction_Warnings
  
  
--- 7289,7295 ----
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e3}
  @section Pragma Restriction_Warnings
  
  
*************** generating a warning, but any other use
*** 7226,7232 ****
  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{e0}
  @section Pragma Reviewable
  
  
--- 7327,7333 ----
  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{e4}
  @section Pragma Reviewable
  
  
*************** comprehensive messages identifying possi
*** 7330,7336 ****
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{e1}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e2}
  @section Pragma Secondary_Stack_Size
  
  
--- 7431,7437 ----
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e5}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e6}
  @section Pragma Secondary_Stack_Size
  
  
*************** Note the pragma cannot appear when the r
*** 7366,7372 ****
  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{e3}
  @section Pragma Share_Generic
  
  
--- 7467,7473 ----
  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{e7}
  @section Pragma Share_Generic
  
  
*************** than to check that the given names are a
*** 7384,7390 ****
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e4}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{e5}
  @section Pragma Shared
  
  
--- 7485,7491 ----
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{e9}
  @section Pragma Shared
  
  
*************** This pragma is provided for compatibilit
*** 7392,7398 ****
  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{e6}
  @section Pragma Short_Circuit_And_Or
  
  
--- 7493,7499 ----
  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{ea}
  @section Pragma Short_Circuit_And_Or
  
  
*************** within the file being compiled, it appli
*** 7411,7417 ****
  There is no requirement that all units in a partition use this option.
  
  @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{e7}
  @section Pragma Short_Descriptors
  
  
--- 7512,7518 ----
  There is no requirement that all units in a partition use this option.
  
  @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{eb}
  @section Pragma Short_Descriptors
  
  
*************** This pragma is provided for compatibilit
*** 7425,7431 ****
  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 id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{e9}
  @section Pragma Side_Effects
  
  
--- 7526,7532 ----
  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 id42}@anchor{ec}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{ed}
  @section Pragma Side_Effects
  
  
*************** pragma Side_Effects [ (static_boolean_EX
*** 7436,7445 ****
  @end example
  
  For the semantics of this pragma, see the entry for aspect
! @code{Side_Effects} in the SPARK Reference Manual, section 6.1.11.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ea}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{eb}
  @section Pragma Simple_Storage_Pool_Type
  
  
--- 7537,7546 ----
  @end example
  
  For the semantics of this pragma, see the entry for aspect
! @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 id43}@anchor{ee}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{ef}
  @section Pragma Simple_Storage_Pool_Type
  
  
*************** storage-management discipline).
*** 7493,7499 ****
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{ec,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
--- 7594,7600 ----
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f0,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
*************** type Acc is access My_Data_Type;
*** 7503,7513 ****
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{ec,,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 id43}@anchor{ed}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{ee}
  @section Pragma Source_File_Name
  
  
--- 7604,7614 ----
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f0,,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 id44}@anchor{f1}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f2}
  @section Pragma Source_File_Name
  
  
*************** aware of these pragmas, and so other too
*** 7599,7618 ****
  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{ef,,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 id44}@anchor{f0}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{ef}
  @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{ee,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
--- 7700,7719 ----
  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{f3,,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 id45}@anchor{f4}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f3}
  @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{f2,,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
*** 7624,7630 ****
  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{f1}
  @section Pragma Source_Reference
  
  
--- 7725,7731 ----
  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{f5}
  @section Pragma Source_Reference
  
  
*************** string expression other than a string li
*** 7648,7654 ****
  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 id45}@anchor{f2}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f3}
  @section Pragma SPARK_Mode
  
  
--- 7749,7755 ----
  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 id46}@anchor{f6}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f7}
  @section Pragma SPARK_Mode
  
  
*************** SPARK_Mode (@code{Off}), then that pragm
*** 7730,7736 ****
  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{f4}
  @section Pragma Static_Elaboration_Desired
  
  
--- 7831,7837 ----
  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{f8}
  @section Pragma Static_Elaboration_Desired
  
  
*************** construction of larger aggregates with s
*** 7754,7760 ****
  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{f5}
  @section Pragma Stream_Convert
  
  
--- 7855,7861 ----
  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{f9}
  @section Pragma Stream_Convert
  
  
*************** a derived type of a non-limited tagged t
*** 7830,7837 ****
  the pragma is silently ignored, and the default implementation of the stream
  attributes is used instead.
  
! @node Pragma Style_Checks,Pragma Subtitle,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{f6}
  @section Pragma Style_Checks
  
  
--- 7931,7938 ----
  the pragma is silently ignored, and the default implementation of the stream
  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{fa}
  @section Pragma Style_Checks
  
  
*************** activated.  These are additive, so they
*** 7855,7876 ****
  set style check options.  The codes for the options are the same as those
  used in the `-gnaty' switch to `gcc' or `gnatmake'.
  For example the following two methods can be used to enable
! layout checking:
  
  
  @itemize *
  
  @item 
  @example
  pragma Style_Checks ("l");
  @end example
  
  @item 
  @example
! gcc -c -gnatyl ...
  @end example
  @end itemize
  
  The form @code{ALL_CHECKS} activates all standard checks (its use is equivalent
  to the use of the @code{gnaty} switch with no options.
  See the @cite{GNAT User’s Guide} for details.)
--- 7956,8050 ----
  set style check options.  The codes for the options are the same as those
  used in the `-gnaty' switch to `gcc' or `gnatmake'.
  For example the following two methods can be used to enable
! layout checking and to change the maximum nesting level value:
  
  
  @itemize *
  
  @item 
  @example
+ --  switch on layout checks
  pragma Style_Checks ("l");
+ --  set the number of maximum allowed nesting levels to 15
+ pragma Style_Checks ("L15");
  @end example
  
  @item 
  @example
! gcc -c -gnatyl -gnatyL15 ...
  @end example
  @end itemize
  
+ The string literal values can be cumulatively switched on and off by prefixing
+ the value with @code{+} or @code{-}, where:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ @code{+} is equivalent to no prefix. It applies the check referenced by the
+ literal value;
+ 
+ @item 
+ @code{-} switches the referenced check off.
+ @end itemize
+ 
+ @example
+ --  allow misaligned block by disabling layout check
+ pragma Style_Checks ("-l");
+ declare
+     msg : constant String := "Hello";
+ begin
+     Put_Line (msg);
+     end;
+ 
+ --  enable the layout check again
+ pragma Style_Checks ("l");
+ declare
+     msg : constant String := "Hello";
+ begin
+     Put_Line (msg);
+     end;
+ @end example
+ 
+ The code above contains two layout errors, however, only
+ the last line is picked up by the compiler.
+ 
+ Similarly, the switches containing a numeric value can be applied in sequence.
+ In the example below, the permitted nesting level is reduced in in the middle
+ block and the compiler raises a warning on the highlighted line.
+ 
+ @example
+ -- Permit 3 levels of nesting
+ pragma Style_Checks ("L3");
+ 
+ procedure Main is
+ begin
+     if True then
+       if True then
+           null;
+       end if;
+     end if;
+     --  Reduce permitted nesting levels to 2.
+     --  Note that "+L2" and "L2" are equivalent.
+     pragma Style_Checks ("+L2");
+     if True then
+       if True then
+           null;
+       end if;
+     end if;
+     --  Disable checking permitted nesting levels.
+     --  Note that the number after "-L" is insignificant,
+     --  "-L", "-L3" and "-Lx" are all equivalent.
+     pragma Style_Checks ("-L3");
+     if True then
+       if True then
+           null;
+       end if;
+     end if;
+ end Main;
+ @end example
+ 
  The form @code{ALL_CHECKS} activates all standard checks (its use is equivalent
  to the use of the @code{gnaty} switch with no options.
  See the @cite{GNAT User’s Guide} for details.)
*************** pragma Style_Checks (Off, Arg);
*** 7903,7910 ****
  Rf2 : Integer := ARG;      -- OK, no error
  @end example
  
! @node Pragma Subtitle,Pragma Suppress,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{f7}
  @section Pragma Subtitle
  
  
--- 8077,8116 ----
  Rf2 : Integer := ARG;      -- OK, no error
  @end example
  
! @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fb}
! @section Pragma Subprogram_Variant
! 
! 
! @geindex Subprogram_Variant
! 
! Syntax:
! 
! @example
! pragma Subprogram_Variant (SUBPROGRAM_VARIANT_LIST);
! 
! SUBPROGRAM_VARIANT_LIST ::=
!   STRUCTURAL_SUBPROGRAM_VARIANT_ITEM
! | NUMERIC_SUBPROGRAM_VARIANT_ITEMS
! 
! NUMERIC_SUBPROGRAM_VARIANT_ITEMS ::=
!   NUMERIC_SUBPROGRAM_VARIANT_ITEM @{, NUMERIC_SUBPROGRAM_VARIANT_ITEM@}
! 
! NUMERIC_SUBPROGRAM_VARIANT_ITEM ::=
!   CHANGE_DIRECTION => EXPRESSION
! 
! STRUCTURAL_SUBPROGRAM_VARIANT_ITEM ::=
!   STRUCTURAL => EXPRESSION
! 
! CHANGE_DIRECTION ::= Increases | Decreases
! @end example
! 
! The @code{Subprogram_Variant} pragma is intended to be an exact replacement for
! 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{fc}
  @section Pragma Subtitle
  
  
*************** This pragma is recognized for compatibil
*** 7918,7924 ****
  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{f8}
  @section Pragma Suppress
  
  
--- 8124,8130 ----
  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{fd}
  @section Pragma Suppress
  
  
*************** Of course, run-time checks are omitted w
*** 7991,7997 ****
  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{f9}
  @section Pragma Suppress_All
  
  
--- 8197,8203 ----
  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{fe}
  @section Pragma Suppress_All
  
  
*************** The use of the standard Ada pragma @code
*** 8010,8016 ****
  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 id46}@anchor{fa}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{fb}
  @section Pragma Suppress_Debug_Info
  
  
--- 8216,8222 ----
  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 id47}@anchor{ff}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{100}
  @section Pragma Suppress_Debug_Info
  
  
*************** for the specified entity. It is intended
*** 8025,8031 ****
  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{fc}
  @section Pragma Suppress_Exception_Locations
  
  
--- 8231,8237 ----
  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{101}
  @section Pragma Suppress_Exception_Locations
  
  
*************** a partition, so it is fine to have some
*** 8048,8054 ****
  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 id47}@anchor{fd}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{fe}
  @section Pragma Suppress_Initialization
  
  
--- 8254,8260 ----
  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 id48}@anchor{102}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{103}
  @section Pragma Suppress_Initialization
  
  
*************** with this pragma and others compiled in
*** 8060,8071 ****
  Syntax:
  
  @example
! pragma Suppress_Initialization ([Entity =>] variable_or_subtype_Name);
  @end example
  
! Here variable_or_subtype_Name is the name introduced by a type declaration
! or subtype declaration or the name of a variable introduced by an
! object declaration.
  
  In the case of a type or subtype
  this pragma suppresses any implicit or explicit initialization
--- 8266,8277 ----
  Syntax:
  
  @example
! pragma Suppress_Initialization ([Entity =>] variable_or_subtype_LOCAL_NAME);
  @end example
  
! Here variable_or_subtype_LOCAL_NAME is the name introduced by a type
! declaration or subtype declaration or the name of a variable introduced by
! an object declaration.
  
  In the case of a type or subtype
  this pragma suppresses any implicit or explicit initialization
*************** is suppressed, just as though its subtyp
*** 8093,8099 ****
  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{ff}
  @section Pragma Task_Name
  
  
--- 8299,8305 ----
  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{104}
  @section Pragma Task_Name
  
  
*************** end;
*** 8149,8155 ****
  @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{100}
  @section Pragma Task_Storage
  
  
--- 8355,8361 ----
  @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{105}
  @section Pragma Task_Storage
  
  
*************** created, depending on the target.  This
*** 8169,8175 ****
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{102}
  @section Pragma Test_Case
  
  
--- 8375,8381 ----
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{106}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{107}
  @section Pragma Test_Case
  
  
*************** postcondition. Mode @code{Robustness} in
*** 8225,8231 ****
  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 id49}@anchor{103}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{104}
  @section Pragma Thread_Local_Storage
  
  
--- 8431,8437 ----
  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 id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{109}
  @section Pragma Thread_Local_Storage
  
  
*************** If this pragma is used on a system where
*** 8263,8269 ****
  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{105}
  @section Pragma Time_Slice
  
  
--- 8469,8475 ----
  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{10a}
  @section Pragma Time_Slice
  
  
*************** It is ignored if it is used in a system
*** 8279,8285 ****
  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{106}
  @section Pragma Title
  
  
--- 8485,8491 ----
  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{10b}
  @section Pragma Title
  
  
*************** notation is used, and named and position
*** 8304,8310 ****
  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{107}
  @section Pragma Type_Invariant
  
  
--- 8510,8516 ----
  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{10c}
  @section Pragma Type_Invariant
  
  
*************** controlled by the assertion identifier @
*** 8325,8331 ****
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{109}
  @section Pragma Type_Invariant_Class
  
  
--- 8531,8537 ----
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10d}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{10e}
  @section Pragma Type_Invariant_Class
  
  
*************** policy that controls this pragma is @cod
*** 8352,8358 ****
  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{10a}
  @section Pragma Unchecked_Union
  
  
--- 8558,8564 ----
  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{10f}
  @section Pragma Unchecked_Union
  
  
*************** version in all language modes (Ada 83, A
*** 8372,8378 ****
  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{10b}
  @section Pragma Unevaluated_Use_Of_Old
  
  
--- 8578,8584 ----
  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{110}
  @section Pragma Unevaluated_Use_Of_Old
  
  
*************** uses up to the end of the corresponding
*** 8427,8433 ****
  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{10c}
  @section Pragma User_Aspect_Definition
  
  
--- 8633,8639 ----
  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{111}
  @section Pragma User_Aspect_Definition
  
  
*************** pragma User_Aspect_Definition
*** 8439,8463 ****
  @end example
  
  This configuration pragma defines a new aspect, making it available for
! subsequent use in a User_Aspect aspect specification. The first
! identifier is the name of the new aspect. Any subsequent arguments
! specify the names of other aspects. A subsequent name for which no parenthesized
! arguments are given shall denote either a Boolean-valued
! non-representation aspect or an aspect that has been defined by another
! User_Aspect_Definition pragma. A name for which one or more arguments are
! given shall be either Annotate or Local_Restrictions (and the arguments shall
! be appropriate for the named aspect). This pragma, together with the
! User_Aspect aspect, provides a mechanism for
! avoiding textual duplication if some set of aspect specifications is needed
! in multiple places. This is somewhat analogous to how profiles allow avoiding
! duplication of Restrictions pragmas. The visibility rules for an aspect
! defined by a User_Aspect_Definition pragma are the same as for a check name
! introduced by a Check_Name pragma. If multiple
! definitions are visible for some aspect at some point, 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{10d}
  @section Pragma Unimplemented_Unit
  
  
--- 8645,8671 ----
  @end example
  
  This configuration pragma defines a new aspect, making it available for
! subsequent use in a @cite{User_Aspect} aspect specification. The first identifier
! is the name of the new aspect. Any subsequent arguments specify the names
! of other aspects. A subsequent name for which no parenthesized arguments
! are given shall denote either a Boolean-valued non-representation aspect
! or an aspect that has been defined by another @cite{User_Aspect_Definition}
! pragma. A name for which one or more arguments are given shall be either
! @cite{Annotate} or @cite{Local_Restrictions} (and the arguments shall be appropriate
! for the named aspect).
! 
! This pragma, together with the @cite{User_Aspect} aspect, provides a mechanism
! for avoiding textual duplication if some set of aspect specifications
! is needed in multiple places. This is somewhat analogous to how profiles
! allow avoiding duplication of @cite{Restrictions} pragmas.
! 
! The visibility rules for an aspect defined by a @cite{User_Aspect_Definition}
! pragma are the same as for a check name introduced by a @cite{Check_Name}
! pragma. If multiple definitions are visible for some aspect at some point,
! 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{112}
  @section Pragma Unimplemented_Unit
  
  
*************** pragma Unimplemented_Unit;
*** 8468,8483 ****
  @end example
  
  If this pragma occurs in a unit that is processed by the compiler, GNAT
! aborts with the message @code{xxx not implemented}, where
! @code{xxx} is the name of the current compilation unit.  This pragma is
! intended to allow the compiler to handle unimplemented library units in
  a clean manner.
  
  The abort only happens if code is being generated.  Thus you can use
  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 id51}@anchor{10e}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{10f}
  @section Pragma Universal_Aliasing
  
  
--- 8676,8691 ----
  @end example
  
  If this pragma occurs in a unit that is processed by the compiler, GNAT
! aborts with the message @code{xxx is not supported in this configuration},
! where @code{xxx} is the name of the current compilation unit.  This pragma
! is intended to allow the compiler to handle unimplemented library units in
  a clean manner.
  
  The abort only happens if code is being generated.  Thus you can use
  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 id52}@anchor{113}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{114}
  @section Pragma Universal_Aliasing
  
  
*************** pragma Universal_Aliasing [([Entity =>]
*** 8489,8502 ****
  
  @code{type_LOCAL_NAME} must refer to a type declaration in the current
  declarative part.  The effect is to inhibit strict type-based aliasing
! optimization for the given type.  In other words, the effect is as though
! access types designating this type were subject to pragma No_Strict_Aliasing.
! For a detailed description of the strict aliasing optimization, and the
! situations in which it must be suppressed, see the section on
  @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 id52}@anchor{110}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{111}
  @section Pragma Unmodified
  
  
--- 8697,8709 ----
  
  @code{type_LOCAL_NAME} must refer to a type declaration in the current
  declarative part.  The effect is to inhibit strict type-based aliasing
! optimizations for the given type.  For a detailed description of the
! strict type-based aliasing optimizations and the situations in which
! they need to be suppressed, see the section on
  @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 id53}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{116}
  @section Pragma Unmodified
  
  
*************** Thus it is never necessary to use @code{
*** 8530,8536 ****
  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 id53}@anchor{112}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{113}
  @section Pragma Unreferenced
  
  
--- 8737,8743 ----
  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 id54}@anchor{117}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{118}
  @section Pragma Unreferenced
  
  
*************** Note that if a warning is desired for al
*** 8576,8582 ****
  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{b2,,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
--- 8783,8789 ----
  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
*************** Thus it is never necessary to use @code{
*** 8592,8598 ****
  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 id54}@anchor{114}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{115}
  @section Pragma Unreferenced_Objects
  
  
--- 8799,8805 ----
  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 id55}@anchor{119}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11a}
  @section Pragma Unreferenced_Objects
  
  
*************** compiler will automatically suppress unw
*** 8617,8623 ****
  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{116}
  @section Pragma Unreserve_All_Interrupts
  
  
--- 8824,8830 ----
  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{11b}
  @section Pragma Unreserve_All_Interrupts
  
  
*************** handled, see pragma @code{Interrupt_Stat
*** 8653,8659 ****
  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{117}
  @section Pragma Unsuppress
  
  
--- 8860,8866 ----
  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{11c}
  @section Pragma Unsuppress
  
  
*************** number of implementation-defined check n
*** 8689,8695 ****
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{118}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{119}
  @section Pragma Unused
  
  
--- 8896,8902 ----
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11d}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{11e}
  @section Pragma Unused
  
  
*************** Thus it is never necessary to use @code{
*** 8723,8729 ****
  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{11a}
  @section Pragma Use_VADS_Size
  
  
--- 8930,8936 ----
  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{11f}
  @section Pragma Use_VADS_Size
  
  
*************** as implemented in the VADS compiler.  Se
*** 8747,8753 ****
  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{11b}
  @section Pragma Validity_Checks
  
  
--- 8954,8960 ----
  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{120}
  @section Pragma Validity_Checks
  
  
*************** A := C;                       -- C will
*** 8803,8809 ****
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11c}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{11d}
  @section Pragma Volatile
  
  
--- 9010,9016 ----
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{121}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{122}
  @section Pragma Volatile
  
  
*************** implementation of pragma Volatile is upw
*** 8821,8827 ****
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{11e}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{11f}
  @section Pragma Volatile_Full_Access
  
  
--- 9028,9034 ----
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{123}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{124}
  @section Pragma Volatile_Full_Access
  
  
*************** is not to the whole object; the compiler
*** 8847,8853 ****
  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 id58}@anchor{120}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{121}
  @section Pragma Volatile_Function
  
  
--- 9054,9060 ----
  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 id59}@anchor{125}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{126}
  @section Pragma Volatile_Function
  
  
*************** For the semantics of this pragma, see th
*** 8861,8867 ****
  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{122}
  @section Pragma Warning_As_Error
  
  
--- 9068,9074 ----
  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{127}
  @section Pragma Warning_As_Error
  
  
*************** you can use multiple pragma Warning_As_E
*** 8901,8907 ****
  
  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{123,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
--- 9108,9114 ----
  
  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{128,,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
*** 8951,8957 ****
  “[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 id59}@anchor{124}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{123}
  @section Pragma Warnings
  
  
--- 9158,9164 ----
  “[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 id60}@anchor{129}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{128}
  @section Pragma Warnings
  
  
*************** also be used as a configuration pragma.
*** 9039,9045 ****
  The fourth form, with an @code{On|Off} parameter and a string, is used to
  control individual messages, based on their text. The string argument
  is a pattern that is used to match against the text of individual
! warning messages (not including the initial “warning: ” tag).
  
  The pattern may contain asterisks, which match zero or more characters in
  the message. For example, you can use
--- 9246,9252 ----
  The fourth form, with an @code{On|Off} parameter and a string, is used to
  control individual messages, based on their text. The string argument
  is a pattern that is used to match against the text of individual
! warning messages (not including the initial “warning: “ tag).
  
  The pattern may contain asterisks, which match zero or more characters in
  the message. For example, you can use
*************** selectively for each tool, and as a cons
*** 9107,9113 ****
  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{125}
  @section Pragma Weak_External
  
  
--- 9314,9320 ----
  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{12a}
  @section Pragma Weak_External
  
  
*************** end External_Module;
*** 9158,9164 ****
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{126}
  @section Pragma Wide_Character_Encoding
  
  
--- 9365,9371 ----
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12b}
  @section Pragma Wide_Character_Encoding
  
  
*************** encoding within that file, and does not
*** 9189,9195 ****
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{127}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{128}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{129}
  @chapter Implementation Defined Aspects
  
  
--- 9396,9402 ----
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12c}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{12d}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{12e}
  @chapter Implementation Defined Aspects
  
  
*************** or attribute definition clause.
*** 9259,9264 ****
--- 9466,9472 ----
  * Aspect Effective_Reads:: 
  * Aspect Effective_Writes:: 
  * Aspect Exceptional_Cases:: 
+ * Aspect Exit_Cases:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
*************** or attribute definition clause.
*** 9277,9282 ****
--- 9485,9491 ----
  * Aspect No_Caching:: 
  * Aspect No_Elaboration_Code_All:: 
  * Aspect No_Inline:: 
+ * Aspect No_Raise:: 
  * Aspect No_Tagged_Streams:: 
  * Aspect No_Task_Parts:: 
  * Aspect Object_Size:: 
*************** or attribute definition clause.
*** 9291,9303 ****
  * Aspect Refined_State:: 
  * Aspect Relaxed_Initialization:: 
  * Aspect Remote_Access_Type:: 
- * Aspect Secondary_Stack_Size:: 
  * Aspect Scalar_Storage_Order:: 
  * Aspect Shared:: 
  * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
  * Aspect Suppress_Debug_Info:: 
  * Aspect Suppress_Initialization:: 
  * Aspect Test_Case:: 
--- 9500,9513 ----
  * Aspect Refined_State:: 
  * Aspect Relaxed_Initialization:: 
  * Aspect Remote_Access_Type:: 
  * Aspect Scalar_Storage_Order:: 
+ * Aspect Secondary_Stack_Size:: 
  * Aspect Shared:: 
  * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
+ * Aspect Subprogram_Variant:: 
  * Aspect Suppress_Debug_Info:: 
  * Aspect Suppress_Initialization:: 
  * Aspect Test_Case:: 
*************** or attribute definition clause.
*** 9315,9321 ****
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{12a}
  @section Aspect Abstract_State
  
  
--- 9525,9531 ----
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{12f}
  @section Aspect Abstract_State
  
  
*************** or attribute definition clause.
*** 9324,9330 ****
  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{12b}
  @section Aspect Always_Terminates
  
  
--- 9534,9540 ----
  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{130}
  @section Aspect Always_Terminates
  
  
*************** This aspect is equivalent to @ref{1e,,pr
*** 9333,9339 ****
  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{12c}
  @section Aspect Annotate
  
  
--- 9543,9549 ----
  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{131}
  @section Aspect Annotate
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9360,9366 ****
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{12d}
  @section Aspect Async_Readers
  
  
--- 9570,9576 ----
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{132}
  @section Aspect Async_Readers
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9369,9375 ****
  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{12e}
  @section Aspect Async_Writers
  
  
--- 9579,9585 ----
  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{133}
  @section Aspect Async_Writers
  
  
*************** This boolean aspect is equivalent to @re
*** 9378,9384 ****
  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{12f}
  @section Aspect Constant_After_Elaboration
  
  
--- 9588,9594 ----
  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{134}
  @section Aspect Constant_After_Elaboration
  
  
*************** This boolean aspect is equivalent to @re
*** 9387,9393 ****
  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{130}
  @section Aspect Contract_Cases
  
  
--- 9597,9603 ----
  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{135}
  @section Aspect Contract_Cases
  
  
*************** of clauses being enclosed in parentheses
*** 9398,9404 ****
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{131}
  @section Aspect Depends
  
  
--- 9608,9614 ----
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{136}
  @section Aspect Depends
  
  
*************** aggregate.
*** 9407,9413 ****
  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{132}
  @section Aspect Default_Initial_Condition
  
  
--- 9617,9623 ----
  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{137}
  @section Aspect Default_Initial_Condition
  
  
*************** This aspect is equivalent to @ref{56,,pr
*** 9416,9422 ****
  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{133}
  @section Aspect Dimension
  
  
--- 9626,9632 ----
  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{138}
  @section Aspect Dimension
  
  
*************** Note that when the dimensioned type is a
*** 9452,9458 ****
  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{134}
  @section Aspect Dimension_System
  
  
--- 9662,9668 ----
  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{139}
  @section Aspect Dimension_System
  
  
*************** See section ‘Performing Dimensionality
*** 9512,9518 ****
  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{135}
  @section Aspect Disable_Controlled
  
  
--- 9722,9728 ----
  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{13a}
  @section Aspect Disable_Controlled
  
  
*************** where for example you might want a recor
*** 9525,9531 ****
  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{136}
  @section Aspect Effective_Reads
  
  
--- 9735,9741 ----
  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{13b}
  @section Aspect Effective_Reads
  
  
*************** whether some run-time check is enabled o
*** 9534,9540 ****
  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{137}
  @section Aspect Effective_Writes
  
  
--- 9744,9750 ----
  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{13c}
  @section Aspect Effective_Writes
  
  
*************** This aspect is equivalent to @ref{5b,,pr
*** 9542,9549 ****
  
  This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
! @node Aspect Exceptional_Cases,Aspect Extensions_Visible,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{138}
  @section Aspect Exceptional_Cases
  
  
--- 9752,9759 ----
  
  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{13d}
  @section Aspect Exceptional_Cases
  
  
*************** with a specific postcondition.
*** 9557,9591 ****
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.9.
  
! @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{139}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{6c,,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{13a}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{71,,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{13b}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{75,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{13c}
  @section Aspect Ghost_Predicate
  
  
--- 9767,9816 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.9.
  
! @node Aspect Exit_Cases,Aspect Extensions_Visible,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{13e}
! @section Aspect Exit_Cases
! 
! 
! @geindex Exit_Cases
! 
! This aspect may be specified for procedures and functions with side effects;
! it can be used to partition the input state into a list of cases and specify,
! for each case, how the subprogram is allowed to terminate (i.e. return normally
! or propagate an exception).
! 
! For the syntax and semantics of this aspect, see the SPARK 2014 Reference
! Manual, section 6.1.10.
! 
! @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{13f}
  @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{140}
  @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{141}
  @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{142}
  @section Aspect Ghost_Predicate
  
  
*************** For the detailed semantics of this aspec
*** 9598,9662 ****
  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{13d}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{77,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{13e}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{84,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{13f}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{87,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{140}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{89,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{141}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{90,,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{142}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{109,,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{143}
  @section Aspect Iterable
  
  
--- 9823,9887 ----
  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{143}
  @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{144}
  @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{145}
  @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{146}
  @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{147}
  @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{148}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{10e,,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{149}
  @section Aspect Iterable
  
  
*************** function Get_Element (Cont : Container;
*** 9740,9755 ****
  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{144}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{98,,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{145}
  @section Aspect Local_Restrictions
  
  
--- 9965,9980 ----
  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{14a}
  @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{14b}
  @section Aspect Local_Restrictions
  
  
*************** case of a declaration that occurs within
*** 9803,9866 ****
  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{146}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{9a,,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{147}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{a2,,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{148}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{a5,,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{149}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{a8,,pragma No_Elaboration_Code_All}
  for a program unit.
  
! @node Aspect No_Inline,Aspect No_Tagged_Streams,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{14a}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{ab,,pragma No_Inline}.
  
! @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{14b}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{af,,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{14c}
  @section Aspect No_Task_Parts
  
  
--- 10028,10100 ----
  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{14c}
  @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{14d}
  @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{14e}
  @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{14f}
  @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{150}
  @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{151}
! @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{152}
  @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{153}
  @section Aspect No_Task_Parts
  
  
*************** away certain tasking-related code that w
*** 9876,9926 ****
  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{14d}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{14e,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{14f}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{b2,,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{150}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{b8,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{151}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{bc,,pragma Persistent_BSS}.
  
  @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{152}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{c3,,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
--- 10110,10160 ----
  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{154}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{155,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{156}
  @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{157}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{bc,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{158}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{c0,,pragma Persistent_BSS}.
  
  @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{159}
  @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
*************** expression. It is also separately contro
*** 9928,9979 ****
  @code{Assertion_Policy}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{153}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{cf,,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{154}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d3,,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{155}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{d5,,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{156}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{d7,,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{157}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{d9,,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{158}
  @section Aspect Relaxed_Initialization
  
  
--- 10162,10213 ----
  @code{Assertion_Policy}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{15a}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d3,,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{15b}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d7,,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{15c}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{d9,,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{15d}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{db,,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{15e}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{dd,,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{15f}
  @section Aspect Relaxed_Initialization
  
  
*************** This aspect is equivalent to @ref{d9,,pr
*** 9982,10140 ****
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.10.
  
! @node Aspect Remote_Access_Type,Aspect Secondary_Stack_Size,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{159}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{dc,,pragma Remote_Access_Type}.
  
! @node Aspect Secondary_Stack_Size,Aspect Scalar_Storage_Order,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{15a}
! @section Aspect Secondary_Stack_Size
  
  
! @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e2,,pragma Secondary_Stack_Size}.
  
! @node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{15b}
! @section Aspect Scalar_Storage_Order
  
  
! @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{15c,,attribute Scalar_Storage_Order}.
  
! @node Aspect Shared,Aspect Side_Effects,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{15d}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{e5,,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{15e}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{e9,,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{15f}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{ec,,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{160}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{eb,,pragma Simple_Storage_Pool_Type}.
  
! @node Aspect SPARK_Mode,Aspect Suppress_Debug_Info,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{161}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f3,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
! @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{162}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{fb,,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{163}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{fe,,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{164}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{102,,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{165}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{104,,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{166}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{10f,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{167}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{111,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{168}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{113,,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{169}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{115,,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{16a}
  @section Aspect User_Aspect
  
  
--- 10216,10384 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  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{160}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e0,,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{161}
! @section Aspect Scalar_Storage_Order
  
  
! @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{162,,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{163}
! @section Aspect Secondary_Stack_Size
  
  
! @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e6,,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{164}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{e9,,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{165}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{ed,,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{166}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f0,,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{167}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{ef,,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{168}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f7,,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{169}
! @section Aspect Subprogram_Variant
! 
! 
! @geindex Subprogram_Variant
! 
! For the syntax and semantics of this aspect, see the SPARK 2014 Reference
! 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{16a}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{100,,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{16b}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{103,,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{16c}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{107,,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{16d}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{109,,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{16e}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{114,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{16f}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{116,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{170}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{118,,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{171}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11a,,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{172}
  @section Aspect User_Aspect
  
  
*************** replicating the set of aspect specificat
*** 10147,10191 ****
  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{16b}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{16c,,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{16d}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{11f,,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{16e}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{121,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{16f}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{123,,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{170}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{171}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
--- 10391,10435 ----
  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{173}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{174,,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{175}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{124,,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{176}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{126,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{177}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{128,,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{178}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{179}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
*************** consideration, you should minimize the u
*** 10243,10249 ****
  * Attribute Initialized:: 
  * Attribute Integer_Value:: 
  * Attribute Invalid_Value:: 
- * Attribute Iterable:: 
  * Attribute Large:: 
  * Attribute Library_Level:: 
  * Attribute Loop_Entry:: 
--- 10487,10492 ----
*************** consideration, you should minimize the u
*** 10260,10265 ****
--- 10503,10509 ----
  * Attribute Range_Length:: 
  * Attribute Restriction_Set:: 
  * Attribute Result:: 
+ * Attribute Round:: 
  * Attribute Safe_Emax:: 
  * Attribute Safe_Large:: 
  * Attribute Safe_Small:: 
*************** consideration, you should minimize the u
*** 10291,10297 ****
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{172}
  @section Attribute Abort_Signal
  
  
--- 10535,10541 ----
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{17a}
  @section Attribute Abort_Signal
  
  
*************** completely outside the normal semantics
*** 10305,10311 ****
  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{173}
  @section Attribute Address_Size
  
  
--- 10549,10555 ----
  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{17b}
  @section Attribute Address_Size
  
  
*************** reference to System.Address’Size is no
*** 10321,10327 ****
  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{174}
  @section Attribute Asm_Input
  
  
--- 10565,10571 ----
  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{17c}
  @section Attribute Asm_Input
  
  
*************** to be a static expression, and is the co
*** 10335,10344 ****
  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{175,,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{176}
  @section Attribute Asm_Output
  
  
--- 10579,10588 ----
  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{17d,,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{17e}
  @section Attribute Asm_Output
  
  
*************** result.  The possible values for constra
*** 10354,10375 ****
  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{175,,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{177}
  @section Attribute Atomic_Always_Lock_Free
  
  
  @geindex Atomic_Always_Lock_Free
  
! The prefix of the @code{Atomic_Always_Lock_Free} attribute is a type.
! The result is a Boolean value which is True if the type has discriminants,
! and False otherwise.  The result indicate whether atomic operations are
! supported by the target 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{178}
  @section Attribute Bit
  
  
--- 10598,10618 ----
  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{17d,,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{17f}
  @section Attribute Atomic_Always_Lock_Free
  
  
  @geindex Atomic_Always_Lock_Free
  
! The prefix of the @code{Atomic_Always_Lock_Free} attribute is a type. The
! result indicates whether atomic operations are supported by the target
! 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{180}
  @section Attribute Bit
  
  
*************** This attribute is designed to be compati
*** 10400,10406 ****
  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{179}
  @section Attribute Bit_Position
  
  
--- 10643,10649 ----
  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{181}
  @section Attribute Bit_Position
  
  
*************** type `universal_integer'.  The value dep
*** 10415,10421 ****
  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{17a}
  @section Attribute Code_Address
  
  
--- 10658,10664 ----
  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{182}
  @section Attribute Code_Address
  
  
*************** the same value as is returned by the cor
*** 10458,10464 ****
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{17b}
  @section Attribute Compiler_Version
  
  
--- 10701,10707 ----
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{183}
  @section Attribute Compiler_Version
  
  
*************** prefix) yields a static string identifyi
*** 10469,10475 ****
  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{17c}
  @section Attribute Constrained
  
  
--- 10712,10718 ----
  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{184}
  @section Attribute Constrained
  
  
*************** record type without discriminants is alw
*** 10484,10490 ****
  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{17d}
  @section Attribute Default_Bit_Order
  
  
--- 10727,10733 ----
  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{185}
  @section Attribute Default_Bit_Order
  
  
*************** as a @code{Pos} value (0 for @code{High_
*** 10501,10507 ****
  @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{17e}
  @section Attribute Default_Scalar_Storage_Order
  
  
--- 10744,10750 ----
  @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{186}
  @section Attribute Default_Scalar_Storage_Order
  
  
*************** equal to @code{Default_Bit_Order} if uns
*** 10518,10524 ****
  @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{17f}
  @section Attribute Deref
  
  
--- 10761,10767 ----
  @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{187}
  @section Attribute Deref
  
  
*************** a named access-to-@cite{typ} type, excep
*** 10531,10537 ****
  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{180}
  @section Attribute Descriptor_Size
  
  
--- 10774,10780 ----
  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{188}
  @section Attribute Descriptor_Size
  
  
*************** since @code{Positive} has an alignment o
*** 10560,10566 ****
  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{181}
  @section Attribute Elaborated
  
  
--- 10803,10809 ----
  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{189}
  @section Attribute Elaborated
  
  
*************** units has been completed.  An exception
*** 10575,10581 ****
  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{182}
  @section Attribute Elab_Body
  
  
--- 10818,10824 ----
  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{18a}
  @section Attribute Elab_Body
  
  
*************** e.g., if it is necessary to do selective
*** 10591,10597 ****
  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{183}
  @section Attribute Elab_Spec
  
  
--- 10834,10840 ----
  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{18b}
  @section Attribute Elab_Spec
  
  
*************** Ada code, e.g., if it is necessary to do
*** 10607,10613 ****
  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{184}
  @section Attribute Elab_Subp_Body
  
  
--- 10850,10856 ----
  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{18c}
  @section Attribute Elab_Subp_Body
  
  
*************** elaboration procedure by the binder in C
*** 10621,10627 ****
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{185}
  @section Attribute Emax
  
  
--- 10864,10870 ----
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{18d}
  @section Attribute Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 10634,10640 ****
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{186}
  @section Attribute Enabled
  
  
--- 10877,10883 ----
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{18e}
  @section Attribute Enabled
  
  
*************** a @code{pragma Suppress} or @code{pragma
*** 10658,10664 ****
  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{187}
  @section Attribute Enum_Rep
  
  
--- 10901,10907 ----
  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{18f}
  @section Attribute Enum_Rep
  
  
*************** integer calculation is done at run time,
*** 10698,10704 ****
  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{188}
  @section Attribute Enum_Val
  
  
--- 10941,10947 ----
  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{190}
  @section Attribute Enum_Val
  
  
*************** absence of an enumeration representation
*** 10724,10730 ****
  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{189}
  @section Attribute Epsilon
  
  
--- 10967,10973 ----
  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{191}
  @section Attribute Epsilon
  
  
*************** the Ada 83 reference manual for an exact
*** 10737,10743 ****
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{18a}
  @section Attribute Fast_Math
  
  
--- 10980,10986 ----
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{192}
  @section Attribute Fast_Math
  
  
*************** prefix) yields a static Boolean value th
*** 10748,10754 ****
  @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{18b}
  @section Attribute Finalization_Size
  
  
--- 10991,10997 ----
  @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{193}
  @section Attribute Finalization_Size
  
  
*************** class-wide type whose tag denotes a type
*** 10766,10772 ****
  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{18c}
  @section Attribute Fixed_Value
  
  
--- 11009,11015 ----
  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{194}
  @section Attribute Fixed_Value
  
  
*************** This attribute is primarily intended for
*** 10793,10799 ****
  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{18d}
  @section Attribute From_Any
  
  
--- 11036,11042 ----
  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{195}
  @section Attribute From_Any
  
  
*************** This internal attribute is used for the
*** 10803,10809 ****
  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{18e}
  @section Attribute Has_Access_Values
  
  
--- 11046,11052 ----
  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{196}
  @section Attribute Has_Access_Values
  
  
*************** definitions.  If the attribute is applie
*** 10821,10827 ****
  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{18f}
  @section Attribute Has_Discriminants
  
  
--- 11064,11070 ----
  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{197}
  @section Attribute Has_Discriminants
  
  
*************** definitions.  If the attribute is applie
*** 10837,10843 ****
  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{190}
  @section Attribute Has_Tagged_Values
  
  
--- 11080,11086 ----
  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{198}
  @section Attribute Has_Tagged_Values
  
  
*************** definitions. If the attribute is applied
*** 10854,10860 ****
  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{191}
  @section Attribute Img
  
  
--- 11097,11103 ----
  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{199}
  @section Attribute Img
  
  
*************** that returns the appropriate string when
*** 10884,10890 ****
  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{192}
  @section Attribute Initialized
  
  
--- 11127,11133 ----
  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{19a}
  @section Attribute Initialized
  
  
*************** For the syntax and semantics of this att
*** 10894,10900 ****
  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{193}
  @section Attribute Integer_Value
  
  
--- 11137,11143 ----
  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{19b}
  @section Attribute Integer_Value
  
  
*************** that there are full range checks, to ens
*** 10921,10928 ****
  This attribute is primarily intended for use in implementation of the
  standard input-output functions for fixed-point values.
  
! @node Attribute Invalid_Value,Attribute Iterable,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{194}
  @section Attribute Invalid_Value
  
  
--- 11164,11171 ----
  This attribute is primarily intended for use in implementation of the
  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{19c}
  @section Attribute Invalid_Value
  
  
*************** uninitialized value of the type if pragm
*** 10935,10951 ****
  including the ability to modify the value with the binder -Sxx flag and
  relevant environment variables at run time.
  
! @node Attribute Iterable,Attribute Large,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{195}
! @section Attribute Iterable
! 
! 
! @geindex Iterable
! 
! Equivalent to Aspect Iterable.
! 
! @node Attribute Large,Attribute Library_Level,Attribute Iterable,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{196}
  @section Attribute Large
  
  
--- 11178,11185 ----
  including the ability to modify the value with the binder -Sxx flag and
  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{19d}
  @section Attribute Large
  
  
*************** the Ada 83 reference manual for an exact
*** 10958,10964 ****
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{197}
  @section Attribute Library_Level
  
  
--- 11192,11198 ----
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{19e}
  @section Attribute Library_Level
  
  
*************** end Gen;
*** 10984,10990 ****
  @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{198}
  @section Attribute Loop_Entry
  
  
--- 11218,11224 ----
  @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{19f}
  @section Attribute Loop_Entry
  
  
*************** entry. This copy is not performed if the
*** 11017,11023 ****
  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{199}
  @section Attribute Machine_Size
  
  
--- 11251,11257 ----
  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{1a0}
  @section Attribute Machine_Size
  
  
*************** This attribute is identical to the @code
*** 11027,11033 ****
  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{19a}
  @section Attribute Mantissa
  
  
--- 11261,11267 ----
  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{1a1}
  @section Attribute Mantissa
  
  
*************** the Ada 83 reference manual for an exact
*** 11040,11046 ****
  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{19b}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{19c}
  @section Attribute Maximum_Alignment
  
  
--- 11274,11280 ----
  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{1a2}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1a3}
  @section Attribute Maximum_Alignment
  
  
*************** for an object, guaranteeing that it is p
*** 11056,11062 ****
  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{19d}
  @section Attribute Max_Integer_Size
  
  
--- 11290,11296 ----
  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{1a4}
  @section Attribute Max_Integer_Size
  
  
*************** prefix) provides the size of the largest
*** 11067,11073 ****
  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{19e}
  @section Attribute Mechanism_Code
  
  
--- 11301,11307 ----
  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{1a5}
  @section Attribute Mechanism_Code
  
  
*************** by reference
*** 11098,11104 ****
  @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{19f}
  @section Attribute Null_Parameter
  
  
--- 11332,11338 ----
  @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{1a6}
  @section Attribute Null_Parameter
  
  
*************** There is no way of indicating this witho
*** 11123,11129 ****
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{14e}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1a0}
  @section Attribute Object_Size
  
  
--- 11357,11363 ----
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{155}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1a7}
  @section Attribute Object_Size
  
  
*************** Similar additional checks are performed
*** 11193,11199 ****
  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{1a1}
  @section Attribute Old
  
  
--- 11427,11433 ----
  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{1a8}
  @section Attribute Old
  
  
*************** definition are allowed under control of
*** 11208,11214 ****
  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{1a2}
  @section Attribute Passed_By_Reference
  
  
--- 11442,11448 ----
  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{1a9}
  @section Attribute Passed_By_Reference
  
  
*************** passed by copy in calls.  For scalar typ
*** 11224,11230 ****
  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{1a3}
  @section Attribute Pool_Address
  
  
--- 11458,11464 ----
  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{1aa}
  @section Attribute Pool_Address
  
  
*************** For an object created by @code{new}, @co
*** 11246,11252 ****
  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{1a4}
  @section Attribute Range_Length
  
  
--- 11480,11486 ----
  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{1ab}
  @section Attribute Range_Length
  
  
*************** applied to the index subtype of a one di
*** 11259,11265 ****
  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{1a5}
  @section Attribute Restriction_Set
  
  
--- 11493,11499 ----
  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{1ac}
  @section Attribute Restriction_Set
  
  
*************** intepreted entirely syntactically, as in
*** 11328,11335 ****
  Restrictions pragma, they are not analyzed semantically,
  so they do not have a type.
  
! @node Attribute Result,Attribute Safe_Emax,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1a6}
  @section Attribute Result
  
  
--- 11562,11569 ----
  Restrictions pragma, they are not analyzed semantically,
  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{1ad}
  @section Attribute Result
  
  
*************** is used to refer to the result of the fu
*** 11341,11348 ****
  For a further discussion of the use of this attribute and examples of its use,
  see the description of pragma Postcondition.
  
! @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1a7}
  @section Attribute Safe_Emax
  
  
--- 11575,11593 ----
  For a further discussion of the use of this attribute and examples of its use,
  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{1ae}
! @section Attribute Round
! 
! 
! @geindex Round
! 
! In addition to the usage of this attribute in the Ada RM, GNAT
! also permits the use of the @code{'Round} attribute for ordinary
! 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{1af}
  @section Attribute Safe_Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11355,11361 ****
  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{1a8}
  @section Attribute Safe_Large
  
  
--- 11600,11606 ----
  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{1b0}
  @section Attribute Safe_Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11368,11374 ****
  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{1a9}
  @section Attribute Safe_Small
  
  
--- 11613,11619 ----
  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{1b1}
  @section Attribute Safe_Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11381,11387 ****
  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{15c}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1aa}
  @section Attribute Scalar_Storage_Order
  
  
--- 11626,11632 ----
  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{162}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b2}
  @section Attribute Scalar_Storage_Order
  
  
*************** Note that debuggers may be unable to dis
*** 11544,11550 ****
  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{ec}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1ab}
  @section Attribute Simple_Storage_Pool
  
  
--- 11789,11795 ----
  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{f0}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1b3}
  @section Attribute Simple_Storage_Pool
  
  
*************** as defined in section 13.11.2 of the Ada
*** 11607,11613 ****
  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{1ac}
  @section Attribute Small
  
  
--- 11852,11858 ----
  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{1b4}
  @section Attribute Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11623,11629 ****
  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{1ad}
  @section Attribute Small_Denominator
  
  
--- 11868,11874 ----
  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{1b5}
  @section Attribute Small_Denominator
  
  
*************** denominator in the representation of @co
*** 11636,11642 ****
  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{1ae}
  @section Attribute Small_Numerator
  
  
--- 11881,11887 ----
  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{1b6}
  @section Attribute Small_Numerator
  
  
*************** numerator in the representation of @code
*** 11649,11655 ****
  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{1af}
  @section Attribute Storage_Unit
  
  
--- 11894,11900 ----
  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{1b7}
  @section Attribute Storage_Unit
  
  
*************** with coprime factors (i.e. as an irreduc
*** 11659,11665 ****
  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{1b0}
  @section Attribute Stub_Type
  
  
--- 11904,11910 ----
  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{1b8}
  @section Attribute Stub_Type
  
  
*************** unit @code{System.Partition_Interface}.
*** 11683,11689 ****
  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{1b1}
  @section Attribute System_Allocator_Alignment
  
  
--- 11928,11934 ----
  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{1b9}
  @section Attribute System_Allocator_Alignment
  
  
*************** with alignment too large or to enable a
*** 11700,11706 ****
  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{1b2}
  @section Attribute Target_Name
  
  
--- 11945,11951 ----
  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{1ba}
  @section Attribute Target_Name
  
  
*************** standard gcc target name without the ter
*** 11713,11719 ****
  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{1b3}
  @section Attribute To_Address
  
  
--- 11958,11964 ----
  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{1bb}
  @section Attribute To_Address
  
  
*************** modular manner (e.g., -1 means the same
*** 11736,11742 ****
  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{1b4}
  @section Attribute To_Any
  
  
--- 11981,11987 ----
  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{1bc}
  @section Attribute To_Any
  
  
*************** This internal attribute is used for the
*** 11746,11752 ****
  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{1b5}
  @section Attribute Type_Class
  
  
--- 11991,11997 ----
  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{1bd}
  @section Attribute Type_Class
  
  
*************** applies to all concurrent types.  This a
*** 11776,11782 ****
  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{1b6}
  @section Attribute Type_Key
  
  
--- 12021,12027 ----
  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{1be}
  @section Attribute Type_Key
  
  
*************** about the type or subtype. This provides
*** 11788,11794 ****
  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{1b7}
  @section Attribute TypeCode
  
  
--- 12033,12039 ----
  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{1bf}
  @section Attribute TypeCode
  
  
*************** This internal attribute is used for the
*** 11798,11804 ****
  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{1b8}
  @section Attribute Unconstrained_Array
  
  
--- 12043,12049 ----
  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{1c0}
  @section Attribute Unconstrained_Array
  
  
*************** still static, and yields the result of a
*** 11812,11818 ****
  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{1b9}
  @section Attribute Universal_Literal_String
  
  
--- 12057,12063 ----
  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{1c1}
  @section Attribute Universal_Literal_String
  
  
*************** end;
*** 11840,11846 ****
  @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{1ba}
  @section Attribute Unrestricted_Access
  
  
--- 12085,12091 ----
  @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{1c2}
  @section Attribute Unrestricted_Access
  
  
*************** has returned, such calls are erroneous.
*** 11869,11875 ****
  @example
  package body P is
  
!    type Less_Nested is not null access procedure;
     Global : Less_Nested;
  
     procedure P1 is
--- 12114,12120 ----
  @example
  package body P is
  
!    type Less_Nested is access procedure;
     Global : Less_Nested;
  
     procedure P1 is
*************** In general this is a risky approach. It
*** 12027,12033 ****
  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{1bb}
  @section Attribute Update
  
  
--- 12272,12278 ----
  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{1c3}
  @section Attribute Update
  
  
*************** A := A'Update ((1, 2) => 20, (3, 4) => 3
*** 12108,12114 ****
  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{1bc}
  @section Attribute Valid_Value
  
  
--- 12353,12359 ----
  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{1c4}
  @section Attribute Valid_Value
  
  
*************** a String, and returns Boolean. @code{T'V
*** 12120,12126 ****
  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{1bd}
  @section Attribute Valid_Scalars
  
  
--- 12365,12371 ----
  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{1c5}
  @section Attribute Valid_Scalars
  
  
*************** write a function with a single use of th
*** 12154,12160 ****
  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{1be}
  @section Attribute VADS_Size
  
  
--- 12399,12405 ----
  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{1c6}
  @section Attribute VADS_Size
  
  
*************** gives the result that would be obtained
*** 12174,12180 ****
  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{16c}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1bf}
  @section Attribute Value_Size
  
  
--- 12419,12425 ----
  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{174}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1c7}
  @section Attribute Value_Size
  
  
*************** a value of the given subtype.  It is the
*** 12188,12194 ****
  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{1c0}
  @section Attribute Wchar_T_Size
  
  
--- 12433,12439 ----
  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{1c8}
  @section Attribute Wchar_T_Size
  
  
*************** primarily for constructing the definitio
*** 12200,12206 ****
  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{1c1}
  @section Attribute Word_Size
  
  
--- 12445,12451 ----
  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{1c9}
  @section Attribute Word_Size
  
  
*************** prefix) provides the value @code{System.
*** 12211,12217 ****
  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{1c2}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1c3}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
--- 12456,12462 ----
  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{1ca}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1cb}@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
*** 12240,12246 ****
  @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{1c4}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1c5}
  @section Partition-Wide Restrictions
  
  
--- 12485,12491 ----
  @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{1cc}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1cd}
  @section Partition-Wide Restrictions
  
  
*************** then all compilation units in the partit
*** 12333,12339 ****
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1c6}
  @subsection Immediate_Reclamation
  
  
--- 12578,12584 ----
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1ce}
  @subsection Immediate_Reclamation
  
  
*************** deallocation, any storage reserved at ru
*** 12345,12351 ****
  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{1c7}
  @subsection Max_Asynchronous_Select_Nesting
  
  
--- 12590,12596 ----
  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{1cf}
  @subsection Max_Asynchronous_Select_Nesting
  
  
*************** detected at compile time. Violations of
*** 12357,12363 ****
  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{1c8}
  @subsection Max_Entry_Queue_Length
  
  
--- 12602,12608 ----
  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{1d0}
  @subsection Max_Entry_Queue_Length
  
  
*************** compatibility purposes (and a warning wi
*** 12378,12384 ****
  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{1c9}
  @subsection Max_Protected_Entries
  
  
--- 12623,12629 ----
  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{1d1}
  @subsection Max_Protected_Entries
  
  
*************** bounds of every entry family of a protec
*** 12389,12395 ****
  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{1ca}
  @subsection Max_Select_Alternatives
  
  
--- 12634,12640 ----
  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{1d2}
  @subsection Max_Select_Alternatives
  
  
*************** defined by a discriminant of a subtype w
*** 12398,12404 ****
  [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{1cb}
  @subsection Max_Storage_At_Blocking
  
  
--- 12643,12649 ----
  [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{1d3}
  @subsection Max_Storage_At_Blocking
  
  
*************** Storage_Size that can be retained by a b
*** 12409,12415 ****
  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{1cc}
  @subsection Max_Task_Entries
  
  
--- 12654,12660 ----
  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{1d4}
  @subsection Max_Task_Entries
  
  
*************** defined by a discriminant of a subtype w
*** 12422,12428 ****
  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{1cd}
  @subsection Max_Tasks
  
  
--- 12667,12673 ----
  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{1d5}
  @subsection Max_Tasks
  
  
*************** time. Violations of this restriction wit
*** 12435,12441 ****
  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{1ce}
  @subsection No_Abort_Statements
  
  
--- 12680,12686 ----
  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{1d6}
  @subsection No_Abort_Statements
  
  
*************** Storage_Error to be raised.
*** 12445,12451 ****
  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{1cf}
  @subsection No_Access_Parameter_Allocators
  
  
--- 12690,12696 ----
  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{1d7}
  @subsection No_Access_Parameter_Allocators
  
  
*************** occurrences of an allocator as the actua
*** 12456,12462 ****
  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{1d0}
  @subsection No_Access_Subprograms
  
  
--- 12701,12707 ----
  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{1d8}
  @subsection No_Access_Subprograms
  
  
*************** parameter.
*** 12466,12472 ****
  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{1d1}
  @subsection No_Allocators
  
  
--- 12711,12717 ----
  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{1d9}
  @subsection No_Allocators
  
  
*************** declarations of access-to-subprogram typ
*** 12476,12482 ****
  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{1d2}
  @subsection No_Anonymous_Allocators
  
  
--- 12721,12727 ----
  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{1da}
  @subsection No_Anonymous_Allocators
  
  
*************** occurrences of an allocator.
*** 12486,12492 ****
  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{1d3}
  @subsection No_Asynchronous_Control
  
  
--- 12731,12737 ----
  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{1db}
  @subsection No_Asynchronous_Control
  
  
*************** occurrences of an allocator of anonymous
*** 12496,12502 ****
  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{1d4}
  @subsection No_Calendar
  
  
--- 12741,12747 ----
  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{1dc}
  @subsection No_Calendar
  
  
*************** dependences on the predefined package As
*** 12506,12512 ****
  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{1d5}
  @subsection No_Coextensions
  
  
--- 12751,12757 ----
  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{1dd}
  @subsection No_Coextensions
  
  
*************** dependences on package Calendar.
*** 12516,12530 ****
  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{1d6}
  @subsection No_Default_Initialization
  
  
  @geindex No_Default_Initialization
  
  [GNAT] This restriction prohibits any instance of default initialization
! of variables.  The binder implements a consistency rule which prevents
! any unit compiled without the restriction from with’ing a unit with the
  restriction (this allows the generation of initialization procedures to
  be skipped, since you can be sure that no call is ever generated to an
  initialization procedure in a unit with the restriction active). If used
--- 12761,12775 ----
  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{1de}
  @subsection No_Default_Initialization
  
  
  @geindex No_Default_Initialization
  
  [GNAT] This restriction prohibits any instance of default initialization
! of variables or components. The binder implements a consistency check that
! prevents any unit without the restriction from with’ing a unit with the
  restriction (this allows the generation of initialization procedures to
  be skipped, since you can be sure that no call is ever generated to an
  initialization procedure in a unit with the restriction active). If used
*************** is to prohibit all cases of variables de
*** 12533,12539 ****
  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{1d7}
  @subsection No_Delay
  
  
--- 12778,12784 ----
  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{1df}
  @subsection No_Delay
  
  
*************** initializer (including the case of OUT s
*** 12543,12549 ****
  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{1d8}
  @subsection No_Dependence
  
  
--- 12788,12794 ----
  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{1e0}
  @subsection No_Dependence
  
  
*************** to support specific constructs of the la
*** 12586,12592 ****
  @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{1d9}
  @subsection No_Direct_Boolean_Operators
  
  
--- 12831,12837 ----
  @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{1e1}
  @subsection No_Direct_Boolean_Operators
  
  
*************** protocol requires the use of short-circu
*** 12599,12605 ****
  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{1da}
  @subsection No_Dispatch
  
  
--- 12844,12850 ----
  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{1e2}
  @subsection No_Dispatch
  
  
*************** composite boolean operations.
*** 12609,12615 ****
  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{1db}
  @subsection No_Dispatching_Calls
  
  
--- 12854,12860 ----
  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{1e3}
  @subsection No_Dispatching_Calls
  
  
*************** end Example;
*** 12670,12676 ****
  @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{1dc}
  @subsection No_Dynamic_Attachment
  
  
--- 12915,12921 ----
  @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{1e4}
  @subsection No_Dynamic_Attachment
  
  
*************** compatibility purposes (and a warning wi
*** 12689,12695 ****
  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{1dd}
  @subsection No_Dynamic_Priorities
  
  
--- 12934,12940 ----
  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{1e5}
  @subsection No_Dynamic_Priorities
  
  
*************** warnings on obsolescent features are act
*** 12698,12704 ****
  [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{1de}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
--- 12943,12949 ----
  [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{1e6}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
*************** restriction, the compiler can assume tha
*** 12710,12716 ****
  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{1df}
  @subsection No_Enumeration_Maps
  
  
--- 12955,12961 ----
  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{1e7}
  @subsection No_Enumeration_Maps
  
  
*************** enumeration maps are used (that is Image
*** 12721,12727 ****
  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{1e0}
  @subsection No_Exception_Handlers
  
  
--- 12966,12972 ----
  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{1e8}
  @subsection No_Exception_Handlers
  
  
*************** statement generated by the compiler). Th
*** 12746,12752 ****
  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{1e1}
  @subsection No_Exception_Propagation
  
  
--- 12991,12997 ----
  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{1e9}
  @subsection No_Exception_Propagation
  
  
*************** the package GNAT.Current_Exception is no
*** 12763,12769 ****
  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{1e2}
  @subsection No_Exception_Registration
  
  
--- 13008,13014 ----
  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{1ea}
  @subsection No_Exception_Registration
  
  
*************** code is simplified by omitting the other
*** 12777,12783 ****
  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{1e3}
  @subsection No_Exceptions
  
  
--- 13022,13028 ----
  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{1eb}
  @subsection No_Exceptions
  
  
*************** raise statements and no exception handle
*** 12788,12794 ****
  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{1e4}
  @subsection No_Finalization
  
  
--- 13033,13039 ----
  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{1ec}
  @subsection No_Finalization
  
  
*************** object or a nested component, either dec
*** 12829,12835 ****
  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{1e5}
  @subsection No_Fixed_Point
  
  
--- 13074,13080 ----
  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{1ed}
  @subsection No_Fixed_Point
  
  
*************** deallocation of a controlled object no l
*** 12839,12845 ****
  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{1e6}
  @subsection No_Floating_Point
  
  
--- 13084,13090 ----
  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{1ee}
  @subsection No_Floating_Point
  
  
*************** occurrences of fixed point types and ope
*** 12849,12855 ****
  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{1e7}
  @subsection No_Implicit_Conditionals
  
  
--- 13094,13100 ----
  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{1ef}
  @subsection No_Implicit_Conditionals
  
  
*************** normal manner. Constructs generating imp
*** 12865,12871 ****
  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{1e8}
  @subsection No_Implicit_Dynamic_Code
  
  
--- 13110,13116 ----
  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{1f0}
  @subsection No_Implicit_Dynamic_Code
  
  
*************** foreign-language convention; primitive o
*** 12895,12901 ****
  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{1e9}
  @subsection No_Implicit_Heap_Allocations
  
  
--- 13140,13146 ----
  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{1f1}
  @subsection No_Implicit_Heap_Allocations
  
  
*************** types.
*** 12904,12910 ****
  [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{1ea}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
--- 13149,13155 ----
  [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{1f2}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
*************** types.
*** 12914,12920 ****
  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{1eb}
  @subsection No_Implicit_Task_Allocations
  
  
--- 13159,13165 ----
  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{1f3}
  @subsection No_Implicit_Task_Allocations
  
  
*************** protected object.
*** 12923,12929 ****
  [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{1ec}
  @subsection No_Initialize_Scalars
  
  
--- 13168,13174 ----
  [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{1f4}
  @subsection No_Initialize_Scalars
  
  
*************** code, and in particular eliminates dummy
*** 12935,12941 ****
  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{1ed}
  @subsection No_IO
  
  
--- 13180,13186 ----
  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{1f5}
  @subsection No_IO
  
  
*************** dependences on any of the library units
*** 12946,12952 ****
  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{1ee}
  @subsection No_Local_Allocators
  
  
--- 13191,13197 ----
  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{1f6}
  @subsection No_Local_Allocators
  
  
*************** occurrences of an allocator in subprogra
*** 12957,12963 ****
  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{1ef}
  @subsection No_Local_Protected_Objects
  
  
--- 13202,13208 ----
  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{1f7}
  @subsection No_Local_Protected_Objects
  
  
*************** and entry bodies.
*** 12967,12973 ****
  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{1f0}
  @subsection No_Local_Tagged_Types
  
  
--- 13212,13218 ----
  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{1f8}
  @subsection No_Local_Tagged_Types
  
  
*************** only declared at the library level.
*** 12977,12983 ****
  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{1f1}
  @subsection No_Local_Timing_Events
  
  
--- 13222,13228 ----
  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{1f9}
  @subsection No_Local_Timing_Events
  
  
*************** declared at the library level.
*** 12987,12993 ****
  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{1f2}
  @subsection No_Long_Long_Integers
  
  
--- 13232,13238 ----
  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{1fa}
  @subsection No_Long_Long_Integers
  
  
*************** implicit base type is Long_Long_Integer,
*** 12999,13005 ****
  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{1f3}
  @subsection No_Multiple_Elaboration
  
  
--- 13244,13250 ----
  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{1fb}
  @subsection No_Multiple_Elaboration
  
  
*************** possible, including non-Ada main program
*** 13015,13021 ****
  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{1f4}
  @subsection No_Nested_Finalization
  
  
--- 13260,13266 ----
  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{1fc}
  @subsection No_Nested_Finalization
  
  
*************** permitted and will be diagnosed by the b
*** 13024,13030 ****
  [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{1f5}
  @subsection No_Protected_Type_Allocators
  
  
--- 13269,13275 ----
  [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{1fd}
  @subsection No_Protected_Type_Allocators
  
  
*************** permitted and will be diagnosed by the b
*** 13034,13040 ****
  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{1f6}
  @subsection No_Protected_Types
  
  
--- 13279,13285 ----
  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{1fe}
  @subsection No_Protected_Types
  
  
*************** expressions that attempt to allocate pro
*** 13044,13050 ****
  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{1f7}
  @subsection No_Recursion
  
  
--- 13289,13295 ----
  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{1ff}
  @subsection No_Recursion
  
  
*************** declarations of protected types or prote
*** 13054,13060 ****
  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{1f8}
  @subsection No_Reentrancy
  
  
--- 13299,13305 ----
  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{200}
  @subsection No_Reentrancy
  
  
*************** part of its execution.
*** 13064,13070 ****
  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{1f9}
  @subsection No_Relative_Delay
  
  
--- 13309,13315 ----
  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{201}
  @subsection No_Relative_Delay
  
  
*************** relative statements and prevents express
*** 13075,13081 ****
  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{1fa}
  @subsection No_Requeue_Statements
  
  
--- 13320,13326 ----
  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{202}
  @subsection No_Requeue_Statements
  
  
*************** compatibility purposes (and a warning wi
*** 13093,13099 ****
  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{1fb}
  @subsection No_Secondary_Stack
  
  
--- 13338,13344 ----
  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{203}
  @subsection No_Secondary_Stack
  
  
*************** stack is used to implement functions ret
*** 13106,13112 ****
  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{1fc}
  @subsection No_Select_Statements
  
  
--- 13351,13357 ----
  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{204}
  @subsection No_Select_Statements
  
  
*************** secondary stacks for tasks (excluding th
*** 13116,13122 ****
  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{1fd}
  @subsection No_Specific_Termination_Handlers
  
  
--- 13361,13367 ----
  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{205}
  @subsection No_Specific_Termination_Handlers
  
  
*************** kind are permitted, that is the keyword
*** 13126,13132 ****
  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{1fe}
  @subsection No_Specification_of_Aspect
  
  
--- 13371,13377 ----
  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{206}
  @subsection No_Specification_of_Aspect
  
  
*************** specification, attribute definition clau
*** 13137,13143 ****
  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{1ff}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
--- 13382,13388 ----
  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{207}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
*************** library items of the partition has compl
*** 13149,13155 ****
  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{200}
  @subsection No_Standard_Storage_Pools
  
  
--- 13394,13400 ----
  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{208}
  @subsection No_Standard_Storage_Pools
  
  
*************** have an explicit Storage_Pool attribute
*** 13161,13167 ****
  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{201}
  @subsection No_Stream_Optimizations
  
  
--- 13406,13412 ----
  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{209}
  @subsection No_Stream_Optimizations
  
  
*************** due to their superior performance. When
*** 13174,13180 ****
  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{202}
  @subsection No_Streams
  
  
--- 13419,13425 ----
  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{20a}
  @subsection No_Streams
  
  
*************** To take maximum advantage of this space-
*** 13194,13201 ****
  unit declaring a tagged type should be compiled with the restriction,
  though this is not required.
  
  @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{203}
  @subsection No_Tagged_Type_Registration
  
  
--- 13439,13452 ----
  unit declaring a tagged type should be compiled with the restriction,
  though this is not required.
  
+ When pragmas @code{Discard_Names} and @code{Restrictions (No_Streams)} simultaneously
+ apply to a tagged type, its Expanded_Name and External_Tag are also initialized
+ with empty strings. In particular, both these pragmas can be applied as
+ configuration pragmas to avoid exposing entity names at binary level for the
+ 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{20b}
  @subsection No_Tagged_Type_Registration
  
  
*************** are declared. This restriction may be ne
*** 13210,13216 ****
  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{204}
  @subsection No_Task_Allocators
  
  
--- 13461,13467 ----
  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{20c}
  @subsection No_Task_Allocators
  
  
*************** the No_Elaboration_Code restriction.
*** 13220,13226 ****
  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{205}
  @subsection No_Task_At_Interrupt_Priority
  
  
--- 13471,13477 ----
  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{20d}
  @subsection No_Task_At_Interrupt_Priority
  
  
*************** a consequence, the tasks are always crea
*** 13232,13238 ****
  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{206}
  @subsection No_Task_Attributes_Package
  
  
--- 13483,13489 ----
  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{20e}
  @subsection No_Task_Attributes_Package
  
  
*************** compatibility purposes (and a warning wi
*** 13249,13255 ****
  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{207}
  @subsection No_Task_Hierarchy
  
  
--- 13500,13506 ----
  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{20f}
  @subsection No_Task_Hierarchy
  
  
*************** warnings on obsolescent features are act
*** 13259,13265 ****
  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{208}
  @subsection No_Task_Termination
  
  
--- 13510,13516 ----
  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{210}
  @subsection No_Task_Termination
  
  
*************** directly on the environment task of the
*** 13268,13274 ****
  [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{209}
  @subsection No_Tasking
  
  
--- 13519,13525 ----
  [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{211}
  @subsection No_Tasking
  
  
*************** and cause an error message to be output
*** 13281,13287 ****
  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{20a}
  @subsection No_Terminate_Alternatives
  
  
--- 13532,13538 ----
  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{212}
  @subsection No_Terminate_Alternatives
  
  
*************** binder.
*** 13290,13296 ****
  [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{20b}
  @subsection No_Unchecked_Access
  
  
--- 13541,13547 ----
  [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{213}
  @subsection No_Unchecked_Access
  
  
*************** binder.
*** 13300,13306 ****
  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{20c}
  @subsection No_Unchecked_Conversion
  
  
--- 13551,13557 ----
  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{214}
  @subsection No_Unchecked_Conversion
  
  
*************** occurrences of the Unchecked_Access attr
*** 13310,13316 ****
  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{20d}
  @subsection No_Unchecked_Deallocation
  
  
--- 13561,13567 ----
  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{215}
  @subsection No_Unchecked_Deallocation
  
  
*************** dependences on the predefined generic fu
*** 13320,13326 ****
  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{20e}
  @subsection No_Use_Of_Attribute
  
  
--- 13571,13577 ----
  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{216}
  @subsection No_Use_Of_Attribute
  
  
*************** dependences on the predefined generic pr
*** 13330,13336 ****
  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{20f}
  @subsection No_Use_Of_Entity
  
  
--- 13581,13587 ----
  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{217}
  @subsection No_Use_Of_Entity
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13350,13356 ****
  @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{210}
  @subsection No_Use_Of_Pragma
  
  
--- 13601,13607 ----
  @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{218}
  @subsection No_Use_Of_Pragma
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13360,13366 ****
  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{211}
  @subsection Pure_Barriers
  
  
--- 13611,13617 ----
  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{219}
  @subsection Pure_Barriers
  
  
*************** but still ensures absence of side effect
*** 13411,13417 ****
  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{212}
  @subsection Simple_Barriers
  
  
--- 13662,13668 ----
  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{21a}
  @subsection Simple_Barriers
  
  
*************** compatibility purposes (and a warning wi
*** 13430,13436 ****
  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{213}
  @subsection Static_Priorities
  
  
--- 13681,13687 ----
  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{21b}
  @subsection Static_Priorities
  
  
*************** are static, and that there are no depend
*** 13441,13447 ****
  @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{214}
  @subsection Static_Storage_Size
  
  
--- 13692,13698 ----
  @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{21c}
  @subsection Static_Storage_Size
  
  
*************** are static, and that there are no depend
*** 13451,13457 ****
  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{215}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{216}
  @section Program Unit Level Restrictions
  
  
--- 13702,13708 ----
  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{21d}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{21e}
  @section Program Unit Level Restrictions
  
  
*************** other compilation units in the partition
*** 13482,13488 ****
  @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{217}
  @subsection No_Elaboration_Code
  
  
--- 13733,13739 ----
  @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{21f}
  @subsection No_Elaboration_Code
  
  
*************** associated with the unit. This counter i
*** 13538,13544 ****
  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{218}
  @subsection No_Dynamic_Accessibility_Checks
  
  
--- 13789,13795 ----
  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{220}
  @subsection No_Dynamic_Accessibility_Checks
  
  
*************** In all other cases, the level of T is as
*** 13587,13593 ****
  @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{219}
  @subsection No_Dynamic_Sized_Objects
  
  
--- 13838,13844 ----
  @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{221}
  @subsection No_Dynamic_Sized_Objects
  
  
*************** access discriminants. It is often a good
*** 13605,13611 ****
  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{21a}
  @subsection No_Entry_Queue
  
  
--- 13856,13862 ----
  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{222}
  @subsection No_Entry_Queue
  
  
*************** checked at compile time.  A program exec
*** 13618,13624 ****
  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{21b}
  @subsection No_Implementation_Aspect_Specifications
  
  
--- 13869,13875 ----
  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{223}
  @subsection No_Implementation_Aspect_Specifications
  
  
*************** GNAT-defined aspects are present.  With
*** 13629,13635 ****
  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{21c}
  @subsection No_Implementation_Attributes
  
  
--- 13880,13886 ----
  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{224}
  @subsection No_Implementation_Attributes
  
  
*************** attributes that can be used are those de
*** 13641,13647 ****
  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{21d}
  @subsection No_Implementation_Identifiers
  
  
--- 13892,13898 ----
  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{225}
  @subsection No_Implementation_Identifiers
  
  
*************** implementation-defined identifiers (mark
*** 13652,13658 ****
  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{21e}
  @subsection No_Implementation_Pragmas
  
  
--- 13903,13909 ----
  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{226}
  @subsection No_Implementation_Pragmas
  
  
*************** GNAT-defined pragmas are present.  With
*** 13663,13669 ****
  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{21f}
  @subsection No_Implementation_Restrictions
  
  
--- 13914,13920 ----
  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{227}
  @subsection No_Implementation_Restrictions
  
  
*************** are present.  With this restriction, the
*** 13675,13681 ****
  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{220}
  @subsection No_Implementation_Units
  
  
--- 13926,13932 ----
  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{228}
  @subsection No_Implementation_Units
  
  
*************** mention in the context clause of any imp
*** 13686,13692 ****
  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{221}
  @subsection No_Implicit_Aliasing
  
  
--- 13937,13943 ----
  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{229}
  @subsection No_Implicit_Aliasing
  
  
*************** to be aliased, and in such cases, it can
*** 13701,13707 ****
  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{222}
  @subsection No_Implicit_Loops
  
  
--- 13952,13958 ----
  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{22a}
  @subsection No_Implicit_Loops
  
  
*************** arrays larger than about 5000 scalar com
*** 13718,13724 ****
  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{223}
  @subsection No_Obsolescent_Features
  
  
--- 13969,13975 ----
  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{22b}
  @subsection No_Obsolescent_Features
  
  
*************** is set in the spec of a package, it will
*** 13728,13734 ****
  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{224}
  @subsection No_Wide_Characters
  
  
--- 13979,13985 ----
  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{22c}
  @subsection No_Wide_Characters
  
  
*************** appear in the program (that is literals
*** 13742,13748 ****
  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{225}
  @subsection Static_Dispatch_Tables
  
  
--- 13993,13999 ----
  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{22d}
  @subsection Static_Dispatch_Tables
  
  
*************** type @code{Character}).
*** 13752,13758 ****
  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{226}
  @subsection SPARK_05
  
  
--- 14003,14009 ----
  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{22e}
  @subsection SPARK_05
  
  
*************** gnatprove -P project.gpr --mode=check_al
*** 13775,13781 ****
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{227}@anchor{gnat_rm/implementation_advice id1}@anchor{228}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
--- 14026,14032 ----
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{22f}@anchor{gnat_rm/implementation_advice id1}@anchor{230}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
*************** case the text describes what GNAT does a
*** 13873,13879 ****
  @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{229}
  @section RM 1.1.3(20): Error Detection
  
  
--- 14124,14130 ----
  @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{231}
  @section RM 1.1.3(20): Error Detection
  
  
*************** or diagnosed at compile time.
*** 13890,13896 ****
  @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{22a}
  @section RM 1.1.3(31): Child Units
  
  
--- 14141,14147 ----
  @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{232}
  @section RM 1.1.3(31): Child Units
  
  
*************** Followed.
*** 13906,13912 ****
  @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{22b}
  @section RM 1.1.5(12): Bounded Errors
  
  
--- 14157,14163 ----
  @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{233}
  @section RM 1.1.5(12): Bounded Errors
  
  
*************** runtime.
*** 13923,13929 ****
  @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{22c}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{22d}
  @section RM 2.8(16): Pragmas
  
  
--- 14174,14180 ----
  @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{234}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{235}
  @section RM 2.8(16): Pragmas
  
  
*************** that this advice not be followed.  For d
*** 14036,14042 ****
  @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{22e}
  @section RM 2.8(17-19): Pragmas
  
  
--- 14287,14293 ----
  @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{236}
  @section RM 2.8(17-19): Pragmas
  
  
*************** replacing @code{library_items}.”
*** 14057,14070 ****
  @end itemize
  @end quotation
  
! See @ref{22d,,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{22f}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
--- 14308,14321 ----
  @end itemize
  @end quotation
  
! See @ref{235,,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{237}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
*************** there is no such restriction.
*** 14092,14098 ****
  @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{230}
  @section RM 3.5.4(28): Integer Types
  
  
--- 14343,14349 ----
  @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{238}
  @section RM 3.5.4(28): Integer Types
  
  
*************** are supported for convenient interface t
*** 14111,14117 ****
  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{231}
  @section RM 3.5.4(29): Integer Types
  
  
--- 14362,14368 ----
  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{239}
  @section RM 3.5.4(29): Integer Types
  
  
*************** Followed.
*** 14127,14133 ****
  @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{232}
  @section RM 3.5.5(8): Enumeration Values
  
  
--- 14378,14384 ----
  @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{23a}
  @section RM 3.5.5(8): Enumeration Values
  
  
*************** Followed.
*** 14147,14153 ****
  @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{233}
  @section RM 3.5.7(17): Float Types
  
  
--- 14398,14404 ----
  @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{23b}
  @section RM 3.5.7(17): Float Types
  
  
*************** is a software rather than a hardware for
*** 14177,14183 ****
  @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{234}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
--- 14428,14434 ----
  @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{23c}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
*************** Followed.
*** 14195,14201 ****
  @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{235}
  @section RM 9.6(30-31): Duration’Small
  
  
--- 14446,14452 ----
  @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{23d}
  @section RM 9.6(30-31): Duration’Small
  
  
*************** it need not be the same time base as use
*** 14216,14222 ****
  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{236}
  @section RM 10.2.1(12): Consistent Representation
  
  
--- 14467,14473 ----
  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{23e}
  @section RM 10.2.1(12): Consistent Representation
  
  
*************** advice without severely impacting effici
*** 14238,14244 ****
  @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{237}
  @section RM 11.4.1(19): Exception Information
  
  
--- 14489,14495 ----
  @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{23f}
  @section RM 11.4.1(19): Exception Information
  
  
*************** Pragma @code{Discard_Names}.
*** 14269,14275 ****
  @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{238}
  @section RM 11.5(28): Suppression of Checks
  
  
--- 14520,14526 ----
  @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{240}
  @section RM 11.5(28): Suppression of Checks
  
  
*************** Followed.
*** 14284,14290 ****
  @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{239}
  @section RM 13.1 (21-24): Representation Clauses
  
  
--- 14535,14541 ----
  @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{241}
  @section RM 13.1 (21-24): Representation Clauses
  
  
*************** declared before the entity.”
*** 14303,14323 ****
  Followed.  In fact, GNAT goes beyond the recommended level of support
  by allowing nonstatic expressions in some representation clauses even
  without the need to declare constants initialized with the values of
! such expressions.
! For example:
  
  @example
!   X : Integer;
!   Y : Float;
!   for Y'Address use X'Address;>>
  
  
! "An implementation need not support a specification for the `@w{`}Size`@w{`}
  for a given composite subtype, nor the size or storage place for an
  object (including a component) of a given composite subtype, unless the
  constraints on the subtype and its composite subcomponents (if any) are
! all static constraints."
! @end example
  
  Followed.  Size Clauses are not permitted on nonstatic components, as
  described above.
--- 14554,14577 ----
  Followed.  In fact, GNAT goes beyond the recommended level of support
  by allowing nonstatic expressions in some representation clauses even
  without the need to declare constants initialized with the values of
! such expressions. For example:
  
  @example
! X : Integer;
! Y : Float;
! for Y'Address use X'Address;
! @end example
  
+ is accepted directly by GNAT.
  
! @quotation
! 
! “An implementation need not support a specification for the @code{Size}
  for a given composite subtype, nor the size or storage place for an
  object (including a component) of a given composite subtype, unless the
  constraints on the subtype and its composite subcomponents (if any) are
! all static constraints.”
! @end quotation
  
  Followed.  Size Clauses are not permitted on nonstatic components, as
  described above.
*************** Followed.
*** 14333,14339 ****
  @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{23a}
  @section RM 13.2(6-8): Packed Types
  
  
--- 14587,14593 ----
  @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{242}
  @section RM 13.2(6-8): Packed Types
  
  
*************** subcomponent of the packed type.
*** 14364,14370 ****
  @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{23b}
  @section RM 13.3(14-19): Address Clauses
  
  
--- 14618,14624 ----
  @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{243}
  @section RM 13.3(14-19): Address Clauses
  
  
*************** Followed.
*** 14417,14423 ****
  @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{23c}
  @section RM 13.3(29-35): Alignment Clauses
  
  
--- 14671,14677 ----
  @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{244}
  @section RM 13.3(29-35): Alignment Clauses
  
  
*************** Followed.
*** 14474,14480 ****
  @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{23d}
  @section RM 13.3(42-43): Size Clauses
  
  
--- 14728,14734 ----
  @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{245}
  @section RM 13.3(42-43): Size Clauses
  
  
*************** object’s @code{Alignment} (if the @cod
*** 14492,14498 ****
  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{23e}
  @section RM 13.3(50-56): Size Clauses
  
  
--- 14746,14752 ----
  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{246}
  @section RM 13.3(50-56): Size Clauses
  
  
*************** Followed.
*** 14543,14549 ****
  @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{23f}
  @section RM 13.3(71-73): Component Size Clauses
  
  
--- 14797,14803 ----
  @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{247}
  @section RM 13.3(71-73): Component Size Clauses
  
  
*************** Followed.
*** 14577,14583 ****
  @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{240}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
--- 14831,14837 ----
  @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{248}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
*************** Followed.
*** 14599,14605 ****
  @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{241}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
--- 14853,14859 ----
  @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{249}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
*************** and all mentioned features are implement
*** 14659,14665 ****
  @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{242}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
--- 14913,14919 ----
  @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{24a}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
*************** Followed.  There are no such components
*** 14679,14685 ****
  @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{243}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
--- 14933,14939 ----
  @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{24b}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
*************** Followed.  There are no such components
*** 14687,14705 ****
  
  “The recommended level of support for the non-default bit ordering is:
  
! If @code{Word_Size} = @code{Storage_Unit}, then the implementation
! should support the non-default bit ordering in addition to the default
! bit ordering.”
  @end quotation
  
! Followed.  Word size does not equal storage size in this implementation.
! Thus non-default bit ordering is not supported.
  
  @geindex Address
  @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{244}
  @section RM 13.7(37): Address as Private
  
  
--- 14941,14957 ----
  
  “The recommended level of support for the non-default bit ordering is:
  
! The implementation should support the nondefault bit ordering in addition
! to the default bit ordering.”
  @end quotation
  
! Followed.
  
  @geindex Address
  @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{24c}
  @section RM 13.7(37): Address as Private
  
  
*************** Followed.
*** 14717,14723 ****
  @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{245}
  @section RM 13.7.1(16): Address Operations
  
  
--- 14969,14975 ----
  @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{24d}
  @section RM 13.7.1(16): Address Operations
  
  
*************** operation raises @code{Program_Error}, s
*** 14735,14741 ****
  @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{246}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
--- 14987,14993 ----
  @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{24e}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
*************** Followed.
*** 14779,14785 ****
  @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{247}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
--- 15031,15037 ----
  @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{24f}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
*************** Followed.
*** 14830,14836 ****
  @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{248}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
--- 15082,15088 ----
  @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{250}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
*************** Followed.
*** 14845,14851 ****
  @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{249}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
--- 15097,15103 ----
  @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{251}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
*************** scalar types. This XDR alternative can b
*** 14876,14882 ****
  @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{24a}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
--- 15128,15134 ----
  @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{252}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
*************** Followed.
*** 14894,14900 ****
  @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{24b}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
--- 15146,15152 ----
  @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{253}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
*************** Followed.  GNAT provides no such localiz
*** 14911,14917 ****
  @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{24c}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
--- 15163,15169 ----
  @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{254}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
*************** Followed.  No implicit pointers or dynam
*** 14926,14932 ****
  @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{24d}
  @section RM A.5.2(46-47): Random Number Generation
  
  
--- 15178,15184 ----
  @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{255}
  @section RM A.5.2(46-47): Random Number Generation
  
  
*************** condition here to hold true.
*** 14955,14961 ****
  @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{24e}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
--- 15207,15213 ----
  @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{256}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
*************** this functionality.
*** 14979,14985 ****
  @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{24f}
  @section RM A.18: @code{Containers}
  
  
--- 15231,15237 ----
  @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{257}
  @section RM A.18: @code{Containers}
  
  
*************** follow the implementation advice.
*** 15000,15006 ****
  @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{250}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
--- 15252,15258 ----
  @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{258}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
*************** Followed.
*** 15048,15054 ****
  @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{251}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
--- 15300,15306 ----
  @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{259}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
*************** Followed.  GNAT provides all the package
*** 15078,15084 ****
  @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{252}
  @section RM B.3(63-71): Interfacing with C
  
  
--- 15330,15336 ----
  @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{25a}
  @section RM B.3(63-71): Interfacing with C
  
  
*************** Followed.
*** 15166,15172 ****
  @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{253}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
--- 15418,15424 ----
  @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{25b}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
*************** Followed.
*** 15207,15213 ****
  @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{254}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
--- 15459,15465 ----
  @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{25c}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
*************** Followed.
*** 15258,15264 ****
  @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{255}
  @section RM C.1(3-5): Access to Machine Operations
  
  
--- 15510,15516 ----
  @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{25d}
  @section RM C.1(3-5): Access to Machine Operations
  
  
*************** object that is specified as exported.”
*** 15293,15299 ****
  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{256}
  @section RM C.1(10-16): Access to Machine Operations
  
  
--- 15545,15551 ----
  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{25e}
  @section RM C.1(10-16): Access to Machine Operations
  
  
*************** Followed on any target supporting such o
*** 15354,15360 ****
  @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{257}
  @section RM C.3(28): Interrupt Support
  
  
--- 15606,15612 ----
  @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{25f}
  @section RM C.3(28): Interrupt Support
  
  
*************** of interrupt blocking.
*** 15372,15378 ****
  @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{258}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
--- 15624,15630 ----
  @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{260}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
*************** Followed.  Compile time warnings are giv
*** 15398,15404 ****
  @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{259}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
--- 15650,15656 ----
  @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{261}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
*************** Followed.
*** 15416,15422 ****
  @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{25a}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
--- 15668,15674 ----
  @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{262}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
*************** Followed.  Executable code is generated
*** 15432,15438 ****
  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{25b}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
--- 15684,15690 ----
  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{263}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
*************** Followed.
*** 15450,15456 ****
  @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{25c}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
--- 15702,15708 ----
  @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{264}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
*************** Not followed.  This implementation is no
*** 15471,15477 ****
  @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{25d}
  @section RM D.3(17): Locking Policies
  
  
--- 15723,15729 ----
  @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{265}
  @section RM D.3(17): Locking Policies
  
  
*************** whose names (@code{Inheritance_Locking}
*** 15488,15494 ****
  @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{25e}
  @section RM D.4(16): Entry Queuing Policies
  
  
--- 15740,15746 ----
  @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{266}
  @section RM D.4(16): Entry Queuing Policies
  
  
*************** Followed.  No such implementation-define
*** 15503,15509 ****
  @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{25f}
  @section RM D.6(9-10): Preemptive Abort
  
  
--- 15755,15761 ----
  @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{267}
  @section RM D.6(9-10): Preemptive Abort
  
  
*************** Followed.
*** 15529,15535 ****
  @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{260}
  @section RM D.7(21): Tasking Restrictions
  
  
--- 15781,15787 ----
  @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{268}
  @section RM D.7(21): Tasking Restrictions
  
  
*************** pragma @code{Profile (Restricted)} for m
*** 15548,15554 ****
  @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{261}
  @section RM D.8(47-49): Monotonic Time
  
  
--- 15800,15806 ----
  @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{269}
  @section RM D.8(47-49): Monotonic Time
  
  
*************** Followed.
*** 15583,15589 ****
  @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{262}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
--- 15835,15841 ----
  @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{26a}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
*************** GNAT.
*** 15611,15617 ****
  @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{263}
  @section RM F(7): COBOL Support
  
  
--- 15863,15869 ----
  @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{26b}
  @section RM F(7): COBOL Support
  
  
*************** Followed.
*** 15631,15637 ****
  @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{264}
  @section RM F.1(2): Decimal Radix Support
  
  
--- 15883,15889 ----
  @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{26c}
  @section RM F.1(2): Decimal Radix Support
  
  
*************** representations.
*** 15647,15653 ****
  @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{265}
  @section RM G: Numerics
  
  
--- 15899,15905 ----
  @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{26d}
  @section RM G: Numerics
  
  
*************** Followed.
*** 15667,15673 ****
  @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{266}
  @section RM G.1.1(56-58): Complex Types
  
  
--- 15919,15925 ----
  @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{26e}
  @section RM G.1.1(56-58): Complex Types
  
  
*************** Followed.
*** 15729,15735 ****
  @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{267}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
--- 15981,15987 ----
  @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{26f}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
*************** Followed.
*** 15751,15757 ****
  @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{268}
  @section RM G.2.4(19): Accuracy Requirements
  
  
--- 16003,16009 ----
  @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{270}
  @section RM G.2.4(19): Accuracy Requirements
  
  
*************** Followed.
*** 15775,15781 ****
  @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{269}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
--- 16027,16033 ----
  @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{271}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
*************** Followed.
*** 15793,15799 ****
  @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{26a}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
--- 16045,16051 ----
  @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{272}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
*************** immediately terminated.”
*** 15808,15814 ****
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{26b}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{26c}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
--- 16060,16066 ----
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{273}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{274}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
*************** via compiler switches such as “-gnata�
*** 16603,16613 ****
  “Implementation-defined check names.  See 11.5(27).”
  @end itemize
  
! The implementation defined check names include Alignment_Check,
! Atomic_Synchronization, Duplicated_Tag_Check, Container_Checks,
! Tampering_Check, Predicate_Check, and Validity_Check. In addition, a user
! program can add implementation-defined check names by means of the pragma
! Check_Name. See the description of pragma @code{Suppress} for full details.
  
  
  @itemize *
--- 16855,16866 ----
  “Implementation-defined check names.  See 11.5(27).”
  @end itemize
  
! The implementation-defined check names include Alignment_Check,
! Container_Checks, Duplicated_Tag_Check, Predicate_Check,
! Raise_Check, Tampering_Check, and Validity_Check. In addition, a
! user program can add implementation-defined check names by means
! of the pragma Check_Name. See the description of pragma
! @code{Suppress} for details.
  
  
  @itemize *
*************** See separate section on data representat
*** 16657,16663 ****
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{129,,Implementation Defined Aspects}.
  
  
  @itemize *
--- 16910,16916 ----
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{12e,,Implementation Defined Aspects}.
  
  
  @itemize *
*************** which contains a pointer to the dispatch
*** 16727,16735 ****
  ordering.  See 13.5.3(5).”
  @end itemize
  
! @code{Word_Size} (32) is not the same as @code{Storage_Unit} (8) for this
! implementation, so no non-default bit ordering is supported.  The default
! bit ordering corresponds to the natural endianness of the target architecture.
  
  
  @itemize *
--- 16980,16986 ----
  ordering.  See 13.5.3(5).”
  @end itemize
  
! @code{Word_Size} does not equal @code{Storage_Unit} in this implementation.
  
  
  @itemize *
*************** When the @code{Pattern} parameter is not
*** 17103,17109 ****
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{26d,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
--- 17354,17360 ----
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{275,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
*************** Information on those subjects is not yet
*** 18201,18207 ****
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{26e}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{26f}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
--- 18452,18458 ----
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{276}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{277}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
*************** Ada standard does not require Ada compil
*** 18239,18245 ****
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{270}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{271}
  @section Intrinsic Operators
  
  
--- 18490,18496 ----
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{278}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{279}
  @section Intrinsic Operators
  
  
*************** It is also possible to specify such oper
*** 18270,18276 ****
  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{272}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{273}
  @section Compilation_ISO_Date
  
  
--- 18521,18527 ----
  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{27a}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{27b}
  @section Compilation_ISO_Date
  
  
*************** application program should simply call t
*** 18284,18290 ****
  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{274}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{275}
  @section Compilation_Date
  
  
--- 18535,18541 ----
  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{27c}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{27d}
  @section Compilation_Date
  
  
*************** Same as Compilation_ISO_Date, except the
*** 18294,18300 ****
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{276}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{277}
  @section Compilation_Time
  
  
--- 18545,18551 ----
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{27f}
  @section Compilation_Time
  
  
*************** application program should simply call t
*** 18308,18314 ****
  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{278}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{279}
  @section Enclosing_Entity
  
  
--- 18559,18565 ----
  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{280}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{281}
  @section Enclosing_Entity
  
  
*************** application program should simply call t
*** 18322,18328 ****
  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{27a}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{27b}
  @section Exception_Information
  
  
--- 18573,18579 ----
  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{282}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{283}
  @section Exception_Information
  
  
*************** so an application program should simply
*** 18336,18342 ****
  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{27c}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{27d}
  @section Exception_Message
  
  
--- 18587,18593 ----
  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{284}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{285}
  @section Exception_Message
  
  
*************** so an application program should simply
*** 18350,18356 ****
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{27f}
  @section Exception_Name
  
  
--- 18601,18607 ----
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{286}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{287}
  @section Exception_Name
  
  
*************** so an application program should simply
*** 18364,18370 ****
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{280}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{281}
  @section File
  
  
--- 18615,18621 ----
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{288}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{289}
  @section File
  
  
*************** application program should simply call t
*** 18378,18384 ****
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{282}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{283}
  @section Line
  
  
--- 18629,18635 ----
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{28a}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{28b}
  @section Line
  
  
*************** application program should simply call t
*** 18392,18398 ****
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{284}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{285}
  @section Shifts and Rotates
  
  
--- 18643,18649 ----
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{28c}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{28d}
  @section Shifts and Rotates
  
  
*************** corresponding operator for modular type.
*** 18435,18441 ****
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{286}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{287}
  @section Source_Location
  
  
--- 18686,18692 ----
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{28e}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{28f}
  @section Source_Location
  
  
*************** application program should simply call t
*** 18449,18455 ****
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{288}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{289}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
--- 18700,18706 ----
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{290}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{291}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
*************** and this section describes the additiona
*** 18495,18501 ****
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{28a}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{28b}
  @section Alignment Clauses
  
  
--- 18746,18752 ----
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{292}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{293}
  @section Alignment Clauses
  
  
*************** For elementary types, the alignment is t
*** 18517,18523 ****
  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{19b,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
--- 18768,18774 ----
  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{1a2,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
*************** assumption is non-portable, and other co
*** 18626,18632 ****
  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{28c}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{28d}
  @section Size Clauses
  
  
--- 18877,18883 ----
  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{294}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{295}
  @section Size Clauses
  
  
*************** if it is known that a Size value can be
*** 18703,18709 ****
  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{28e}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{28f}
  @section Storage_Size Clauses
  
  
--- 18954,18960 ----
  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{296}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{297}
  @section Storage_Size Clauses
  
  
*************** Of course in practice, there will not be
*** 18776,18782 ****
  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{290}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{291}
  @section Size of Variant Record Objects
  
  
--- 19027,19033 ----
  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{298}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{299}
  @section Size of Variant Record Objects
  
  
*************** the maximum size, regardless of the curr
*** 18886,18892 ****
  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{292}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{293}
  @section Biased Representation
  
  
--- 19137,19143 ----
  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{29a}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{29b}
  @section Biased Representation
  
  
*************** biased representation can be used for al
*** 18924,18930 ****
  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{294}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{295}
  @section Value_Size and Object_Size Clauses
  
  
--- 19175,19181 ----
  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{29c}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{29d}
  @section Value_Size and Object_Size Clauses
  
  
*************** definition clause forces biased represen
*** 19240,19246 ****
  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{296}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{297}
  @section Component_Size Clauses
  
  
--- 19491,19497 ----
  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{29e}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{29f}
  @section Component_Size Clauses
  
  
*************** and a pragma Pack for the same array typ
*** 19288,19294 ****
  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{298}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{299}
  @section Bit_Order Clauses
  
  
--- 19539,19545 ----
  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{2a0}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a1}
  @section Bit_Order Clauses
  
  
*************** if desired.  The following section conta
*** 19394,19400 ****
  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{29a}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{29b}
  @section Effect of Bit_Order on Byte Ordering
  
  
--- 19645,19651 ----
  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{2a2}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2a3}
  @section Effect of Bit_Order on Byte Ordering
  
  
*************** to set the boolean constant @code{Master
*** 19651,19657 ****
  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{29c}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{29d}
  @section Pragma Pack for Arrays
  
  
--- 19902,19908 ----
  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{2a4}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2a5}
  @section Pragma Pack for Arrays
  
  
*************** Here 31-bit packing is achieved as requi
*** 19771,19777 ****
  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{29e}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{29f}
  @section Pragma Pack for Records
  
  
--- 20022,20028 ----
  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{2a6}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2a7}
  @section Pragma Pack for Records
  
  
*************** array that is longer than 64 bits, so it
*** 19855,19861 ****
  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{2a0}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2a1}
  @section Record Representation Clauses
  
  
--- 20106,20112 ----
  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{2a8}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2a9}
  @section Record Representation Clauses
  
  
*************** end record;
*** 19934,19940 ****
  @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{2a2}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2a3}
  @section Handling of Records with Holes
  
  
--- 20185,20191 ----
  @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{2aa}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2ab}
  @section Handling of Records with Holes
  
  
*************** for Hrec'Size use 64;
*** 20010,20016 ****
  @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{2a4}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2a5}
  @section Enumeration Clauses
  
  
--- 20261,20267 ----
  @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{2ac}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2ad}
  @section Enumeration Clauses
  
  
*************** the overhead of converting representatio
*** 20053,20059 ****
  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{2a6}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2a7}
  @section Address Clauses
  
  
--- 20304,20310 ----
  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{2ae}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2af}
  @section Address Clauses
  
  
*************** then the program compiles without the wa
*** 20393,20399 ****
  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{2a8}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2a9}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
--- 20644,20650 ----
  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{2b0}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b1}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
*************** provides the pragma @code{Volatile_Full_
*** 20451,20457 ****
  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{2aa}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2ab}
  @section Effect of Convention on Representation
  
  
--- 20702,20708 ----
  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{2b2}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2b3}
  @section Effect of Convention on Representation
  
  
*************** when one of these values is read, any no
*** 20529,20535 ****
  @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{2ac}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2ad}
  @section Conventions and Anonymous Access Types
  
  
--- 20780,20786 ----
  @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{2b4}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2b5}
  @section Conventions and Anonymous Access Types
  
  
*************** package ConvComp is
*** 20605,20611 ****
  @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{2ae}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2af}
  @section Determining the Representations chosen by GNAT
  
  
--- 20856,20862 ----
  @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{2b6}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2b7}
  @section Determining the Representations chosen by GNAT
  
  
*************** generated by the compiler into the origi
*** 20757,20763 ****
  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{2b0}@anchor{gnat_rm/standard_library_routines id1}@anchor{2b1}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
--- 21008,21014 ----
  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{2b8}@anchor{gnat_rm/standard_library_routines id1}@anchor{2b9}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
*************** build the type @code{Complex} and @code{
*** 21066,21077 ****
  @item @code{Ada.Numerics.Discrete_Random}
  
  This generic package provides a random number generator suitable for generating
! uniformly distributed values of a specified discrete subtype.
  
  @item @code{Ada.Numerics.Float_Random}
  
  This package provides a random number generator suitable for generating
! uniformly distributed floating point values in the unit interval.
  
  @item @code{Ada.Numerics.Generic_Complex_Elementary_Functions}
  
--- 21317,21330 ----
  @item @code{Ada.Numerics.Discrete_Random}
  
  This generic package provides a random number generator suitable for generating
! uniformly distributed values of a specified discrete subtype. It should not be
! used as a cryptographic pseudo-random source.
  
  @item @code{Ada.Numerics.Float_Random}
  
  This package provides a random number generator suitable for generating
! uniformly distributed floating point values in the unit interval. It should not
! be used as a cryptographic pseudo-random source.
  
  @item @code{Ada.Numerics.Generic_Complex_Elementary_Functions}
  
*************** then such a backward jump may occur.
*** 21172,21178 ****
  
  @item @code{Ada.Real_Time.Timing_Events} `(D.15)'
  
! Not implemented in GNAT.
  
  @item @code{Ada.Sequential_IO} `(A.8.1)'
  
--- 21425,21432 ----
  
  @item @code{Ada.Real_Time.Timing_Events} `(D.15)'
  
! This package allows procedures to be executed at a specified time without
! the use of a task or a delay statement.
  
  @item @code{Ada.Sequential_IO} `(A.8.1)'
  
*************** For packages in Interfaces and System, a
*** 21581,21587 ****
  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{2b2}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2b3}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
--- 21835,21841 ----
  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{2ba}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2bb}@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
*** 21633,21639 ****
  @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{2b4}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2b5}
  @section Standard I/O Packages
  
  
--- 21887,21893 ----
  @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{2bc}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2bd}
  @section Standard I/O Packages
  
  
*************** flush the common I/O streams and in part
*** 21704,21710 ****
  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{2b6}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2b7}
  @section FORM Strings
  
  
--- 21958,21964 ----
  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{2be}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2bf}
  @section FORM Strings
  
  
*************** unrecognized keyword appears in a form s
*** 21730,21736 ****
  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{2b8}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2b9}
  @section Direct_IO
  
  
--- 21984,21990 ----
  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{2c0}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c1}
  @section Direct_IO
  
  
*************** There is no limit on the size of Direct_
*** 21749,21755 ****
  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{2ba}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2bb}
  @section Sequential_IO
  
  
--- 22003,22009 ----
  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{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2c3}
  @section Sequential_IO
  
  
*************** using Stream_IO, and this is the preferr
*** 21796,21802 ****
  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{2bc}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2bd}
  @section Text_IO
  
  
--- 22050,22056 ----
  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{2c4}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2c5}
  @section Text_IO
  
  
*************** the file.
*** 21879,21885 ****
  @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{2be}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2bf}
  @subsection Stream Pointer Positioning
  
  
--- 22133,22139 ----
  @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{2c6}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2c7}
  @subsection Stream Pointer Positioning
  
  
*************** between two Ada files, then the differen
*** 21915,21921 ****
  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{2c0}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2c1}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22169,22175 ----
  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{2c8}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2c9}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** to read data past that end of
*** 21966,21972 ****
  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{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2c3}
  @subsection Get_Immediate
  
  
--- 22220,22226 ----
  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{2ca}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2cb}
  @subsection Get_Immediate
  
  
*************** possible), it is undefined whether the F
*** 21984,21990 ****
  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{2c4}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2c5}
  @subsection Treating Text_IO Files as Streams
  
  
--- 22238,22244 ----
  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{2cc}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2cd}
  @subsection Treating Text_IO Files as Streams
  
  
*************** skipped and the effect is similar to tha
*** 22000,22006 ****
  @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{2c6}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2c7}
  @subsection Text_IO Extensions
  
  
--- 22254,22260 ----
  @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{2ce}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2cf}
  @subsection Text_IO Extensions
  
  
*************** the string is to be read.
*** 22028,22034 ****
  @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{2c8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2c9}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
--- 22282,22288 ----
  @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{2d0}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d1}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
*************** files @code{a-szuzti.ads} and @code{a-sz
*** 22076,22082 ****
  @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{2ca}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2cb}
  @section Wide_Text_IO
  
  
--- 22330,22336 ----
  @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{2d2}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2d3}
  @section Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22323,22334 ****
  @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{2cc}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2cd}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2bd,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22577,22588 ----
  @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{2d4}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2d5}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2c5,,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
*** 22347,22353 ****
  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{2ce}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2cf}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22601,22607 ----
  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{2d6}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2d7}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22358,22364 ****
  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{2d0}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2d1}
  @section Wide_Wide_Text_IO
  
  
--- 22612,22618 ----
  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{2d8}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2d9}
  @section Wide_Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22527,22538 ****
  @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{2d2}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2d3}
  @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{2bd,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22781,22792 ----
  @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{2da}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2db}
  @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{2c5,,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
*** 22551,22557 ****
  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{2d4}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2d5}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22805,22811 ----
  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{2dc}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2dd}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22562,22568 ****
  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{2d6}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2d7}
  @section Stream_IO
  
  
--- 22816,22822 ----
  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{2de}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2df}
  @section Stream_IO
  
  
*************** manner described for stream attributes.
*** 22584,22590 ****
  @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{2d8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2d9}
  @section Text Translation
  
  
--- 22838,22844 ----
  @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{2e0}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e1}
  @section Text Translation
  
  
*************** mode. (corresponds to_O_U16TEXT).
*** 22618,22624 ****
  @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{2da}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2db}
  @section Shared Files
  
  
--- 22872,22878 ----
  @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{2e2}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2e3}
  @section Shared Files
  
  
*************** One common use of file sharing in Ada 83
*** 22678,22687 ****
  Sequential_IO on the same file with different types, to achieve
  heterogeneous input-output.  Although this approach will work in GNAT if
  @code{shared=yes} is specified, it is preferable in Ada to use Stream_IO
! 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{2dc}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2dd}
  @section Filenames encoding
  
  
--- 22932,22941 ----
  Sequential_IO on the same file with different types, to achieve
  heterogeneous input-output.  Although this approach will work in GNAT if
  @code{shared=yes} is specified, it is preferable in Ada to use Stream_IO
! 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{2e4}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2e5}
  @section Filenames encoding
  
  
*************** platform. On the other Operating Systems
*** 22721,22727 ****
  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{2de}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2df}
  @section File content encoding
  
  
--- 22975,22981 ----
  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{2e6}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2e7}
  @section File content encoding
  
  
*************** Unicode 8-bit encoding
*** 22754,22760 ****
  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{2e0}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2e1}
  @section Open Modes
  
  
--- 23008,23014 ----
  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{2e8}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2e9}
  @section Open Modes
  
  
*************** subsequently requires switching from rea
*** 22857,22863 ****
  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{2e2}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2e3}
  @section Operations on C Streams
  
  
--- 23111,23117 ----
  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{2ea}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2eb}
  @section Operations on C Streams
  
  
*************** end Interfaces.C_Streams;
*** 23017,23023 ****
  @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{2e4}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2e5}
  @section Interfacing to C Streams
  
  
--- 23271,23277 ----
  @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{2ec}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2ed}
  @section Interfacing to C Streams
  
  
*************** imported from a C program, allowing an A
*** 23110,23116 ****
  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{2e6}@anchor{gnat_rm/the_gnat_library id1}@anchor{2e7}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
--- 23364,23370 ----
  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{2ee}@anchor{gnat_rm/the_gnat_library id1}@anchor{2ef}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
*************** of GNAT, and will generate a warning mes
*** 23275,23281 ****
  * Interfaces.C.Streams (i-cstrea.ads): Interfaces C Streams i-cstrea ads. 
  * Interfaces.Packed_Decimal (i-pacdec.ads): Interfaces Packed_Decimal i-pacdec ads. 
  * Interfaces.VxWorks (i-vxwork.ads): Interfaces VxWorks i-vxwork ads. 
- * Interfaces.VxWorks.Int_Connection (i-vxinco.ads): Interfaces VxWorks Int_Connection i-vxinco ads. 
  * Interfaces.VxWorks.IO (i-vxwoio.ads): Interfaces VxWorks IO i-vxwoio ads. 
  * System.Address_Image (s-addima.ads): System Address_Image s-addima ads. 
  * System.Assertions (s-assert.ads): System Assertions s-assert ads. 
--- 23529,23534 ----
*************** of GNAT, and will generate a warning mes
*** 23296,23302 ****
  @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{2e8}@anchor{gnat_rm/the_gnat_library id2}@anchor{2e9}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
--- 23549,23555 ----
  @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{2f0}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f1}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23313,23319 ****
  (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{2ea}@anchor{gnat_rm/the_gnat_library id3}@anchor{2eb}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
--- 23566,23572 ----
  (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{2f2}@anchor{gnat_rm/the_gnat_library id3}@anchor{2f3}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23330,23336 ****
  (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{2ec}@anchor{gnat_rm/the_gnat_library id4}@anchor{2ed}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
--- 23583,23589 ----
  (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{2f4}@anchor{gnat_rm/the_gnat_library id4}@anchor{2f5}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23347,23353 ****
  (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{2ee}@anchor{gnat_rm/the_gnat_library id5}@anchor{2ef}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
--- 23600,23606 ----
  (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{2f6}@anchor{gnat_rm/the_gnat_library id5}@anchor{2f7}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23364,23370 ****
  (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{2f0}@anchor{gnat_rm/the_gnat_library id6}@anchor{2f1}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
--- 23617,23623 ----
  (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{2f8}@anchor{gnat_rm/the_gnat_library id6}@anchor{2f9}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23381,23387 ****
  (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{2f2}@anchor{gnat_rm/the_gnat_library id7}@anchor{2f3}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
--- 23634,23640 ----
  (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{2fa}@anchor{gnat_rm/the_gnat_library id7}@anchor{2fb}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
*************** This child of @code{Ada.Containers} defi
*** 23393,23399 ****
  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{2f4}@anchor{gnat_rm/the_gnat_library id8}@anchor{2f5}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
--- 23646,23652 ----
  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{2fc}@anchor{gnat_rm/the_gnat_library id8}@anchor{2fd}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
*************** provides a mechanism for obtaining envir
*** 23406,23412 ****
  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{2f6}@anchor{gnat_rm/the_gnat_library id9}@anchor{2f7}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
--- 23659,23665 ----
  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{2fe}@anchor{gnat_rm/the_gnat_library id9}@anchor{2ff}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
*************** to further calls to the subprograms in @
*** 23424,23430 ****
  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{2f8}@anchor{gnat_rm/the_gnat_library id10}@anchor{2f9}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
--- 23677,23683 ----
  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{300}@anchor{gnat_rm/the_gnat_library id10}@anchor{301}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
*************** Using a response file allow passing a se
*** 23444,23450 ****
  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{2fa}@anchor{gnat_rm/the_gnat_library id11}@anchor{2fb}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
--- 23697,23703 ----
  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{302}@anchor{gnat_rm/the_gnat_library id11}@anchor{303}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23459,23465 ****
  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{2fc}@anchor{gnat_rm/the_gnat_library id12}@anchor{2fd}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
--- 23712,23718 ----
  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{304}@anchor{gnat_rm/the_gnat_library id12}@anchor{305}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
*************** exception occurrence (@code{Null_Occurre
*** 23473,23479 ****
  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{2fe}@anchor{gnat_rm/the_gnat_library id13}@anchor{2ff}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
--- 23726,23732 ----
  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{306}@anchor{gnat_rm/the_gnat_library id13}@anchor{307}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
*************** exceptions (hence the name last chance),
*** 23487,23493 ****
  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{300}@anchor{gnat_rm/the_gnat_library id14}@anchor{301}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
--- 23740,23746 ----
  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{308}@anchor{gnat_rm/the_gnat_library id14}@anchor{309}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
*************** give a traceback array of addresses base
*** 23500,23506 ****
  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{302}@anchor{gnat_rm/the_gnat_library id15}@anchor{303}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
--- 23753,23759 ----
  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{30a}@anchor{gnat_rm/the_gnat_library id15}@anchor{30b}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23515,23521 ****
  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{304}@anchor{gnat_rm/the_gnat_library id16}@anchor{305}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
--- 23768,23774 ----
  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{30c}@anchor{gnat_rm/the_gnat_library id16}@anchor{30d}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23530,23536 ****
  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{306}@anchor{gnat_rm/the_gnat_library id17}@anchor{307}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
--- 23783,23789 ----
  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{30e}@anchor{gnat_rm/the_gnat_library id17}@anchor{30f}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
*************** strings, avoiding the necessity for an i
*** 23547,23553 ****
  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{308}@anchor{gnat_rm/the_gnat_library id18}@anchor{309}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
--- 23800,23806 ----
  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{310}@anchor{gnat_rm/the_gnat_library id18}@anchor{311}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
*************** wide strings, avoiding the necessity for
*** 23564,23570 ****
  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{30a}@anchor{gnat_rm/the_gnat_library id19}@anchor{30b}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
--- 23817,23823 ----
  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{312}@anchor{gnat_rm/the_gnat_library id19}@anchor{313}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
*************** wide wide strings, avoiding the necessit
*** 23581,23587 ****
  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{30c}@anchor{gnat_rm/the_gnat_library id20}@anchor{30d}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
--- 23834,23840 ----
  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{314}@anchor{gnat_rm/the_gnat_library id20}@anchor{315}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
*************** parameterless procedures. Note that such
*** 23593,23599 ****
  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{30e}@anchor{gnat_rm/the_gnat_library id21}@anchor{30f}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
--- 23846,23852 ----
  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{316}@anchor{gnat_rm/the_gnat_library id21}@anchor{317}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23608,23614 ****
  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{310}@anchor{gnat_rm/the_gnat_library id22}@anchor{311}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
--- 23861,23867 ----
  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{318}@anchor{gnat_rm/the_gnat_library id22}@anchor{319}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
*************** execution (for example a standard input
*** 23623,23629 ****
  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{312}@anchor{gnat_rm/the_gnat_library id23}@anchor{313}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
--- 23876,23882 ----
  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{31a}@anchor{gnat_rm/the_gnat_library id23}@anchor{31b}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
*************** This package provides subprograms that a
*** 23636,23642 ****
  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{314}@anchor{gnat_rm/the_gnat_library id24}@anchor{315}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
--- 23889,23895 ----
  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{31c}@anchor{gnat_rm/the_gnat_library id24}@anchor{31d}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23651,23657 ****
  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{316}@anchor{gnat_rm/the_gnat_library id25}@anchor{317}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
--- 23904,23910 ----
  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{31e}@anchor{gnat_rm/the_gnat_library id25}@anchor{31f}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
*************** execution (for example a standard input
*** 23666,23672 ****
  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{318}@anchor{gnat_rm/the_gnat_library id26}@anchor{319}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
--- 23919,23925 ----
  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{320}@anchor{gnat_rm/the_gnat_library id26}@anchor{321}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
*************** This package provides subprograms that a
*** 23679,23685 ****
  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{31a}@anchor{gnat_rm/the_gnat_library id27}@anchor{31b}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
--- 23932,23938 ----
  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{322}@anchor{gnat_rm/the_gnat_library id27}@anchor{323}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23694,23700 ****
  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{31c}@anchor{gnat_rm/the_gnat_library id28}@anchor{31d}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
--- 23947,23953 ----
  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{324}@anchor{gnat_rm/the_gnat_library id28}@anchor{325}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
*************** change during execution (for example a s
*** 23709,23715 ****
  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{31e}@anchor{gnat_rm/the_gnat_library id29}@anchor{31f}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
--- 23962,23968 ----
  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{326}@anchor{gnat_rm/the_gnat_library id29}@anchor{327}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
*************** definitions of constants and types commo
*** 23722,23728 ****
  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{320}@anchor{gnat_rm/the_gnat_library id30}@anchor{321}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
--- 23975,23981 ----
  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{328}@anchor{gnat_rm/the_gnat_library id30}@anchor{329}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
*************** binding.
*** 23733,23739 ****
  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{322}@anchor{gnat_rm/the_gnat_library id31}@anchor{323}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
--- 23986,23992 ----
  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{32a}@anchor{gnat_rm/the_gnat_library id31}@anchor{32b}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
*************** library. The hard binding is provided as
*** 23747,23753 ****
  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{324}@anchor{gnat_rm/the_gnat_library id32}@anchor{325}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
--- 24000,24006 ----
  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{32c}@anchor{gnat_rm/the_gnat_library id32}@anchor{32d}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
*************** This package exposes the various vector
*** 23759,23765 ****
  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{326}@anchor{gnat_rm/the_gnat_library id33}@anchor{327}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
--- 24012,24018 ----
  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{32e}@anchor{gnat_rm/the_gnat_library id33}@anchor{32f}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
*************** vector elements and provides a simple wa
*** 23774,23780 ****
  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{328}@anchor{gnat_rm/the_gnat_library id34}@anchor{329}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
--- 24027,24033 ----
  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{330}@anchor{gnat_rm/the_gnat_library id34}@anchor{331}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
*************** an array wherever the separators appear,
*** 23787,23793 ****
  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{32a}@anchor{gnat_rm/the_gnat_library id35}@anchor{32b}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
--- 24040,24046 ----
  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{332}@anchor{gnat_rm/the_gnat_library id35}@anchor{333}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
*************** or more files containing formatted data.
*** 23802,23808 ****
  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{32c}@anchor{gnat_rm/the_gnat_library id36}@anchor{32d}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
--- 24055,24061 ----
  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{334}@anchor{gnat_rm/the_gnat_library id36}@anchor{335}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
*************** Allow binary search of a sorted array (o
*** 23814,23820 ****
  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{32e}@anchor{gnat_rm/the_gnat_library id37}@anchor{32f}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
--- 24067,24073 ----
  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{336}@anchor{gnat_rm/the_gnat_library id37}@anchor{337}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
*************** These associations can be specified usin
*** 23827,23833 ****
  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{330}@anchor{gnat_rm/the_gnat_library id38}@anchor{331}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
--- 24080,24086 ----
  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{338}@anchor{gnat_rm/the_gnat_library id38}@anchor{339}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
*************** line switch.
*** 23838,23844 ****
  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{332}@anchor{gnat_rm/the_gnat_library id39}@anchor{333}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
--- 24091,24097 ----
  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{33a}@anchor{gnat_rm/the_gnat_library id39}@anchor{33b}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
*************** useful directly or as parts of the imple
*** 23853,23859 ****
  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{334}@anchor{gnat_rm/the_gnat_library id40}@anchor{335}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
--- 24106,24112 ----
  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{33c}@anchor{gnat_rm/the_gnat_library id40}@anchor{33d}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
*************** such as mailboxes.
*** 23866,23872 ****
  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{336}@anchor{gnat_rm/the_gnat_library id41}@anchor{337}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
--- 24119,24125 ----
  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{33e}@anchor{gnat_rm/the_gnat_library id41}@anchor{33f}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
*************** data items.  Exchange and comparison pro
*** 23881,23887 ****
  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{338}@anchor{gnat_rm/the_gnat_library id42}@anchor{339}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
--- 24134,24140 ----
  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{340}@anchor{gnat_rm/the_gnat_library id42}@anchor{341}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
*************** access-to-procedure values. This is an o
*** 23897,23903 ****
  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{33a}@anchor{gnat_rm/the_gnat_library id43}@anchor{33b}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
--- 24150,24156 ----
  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{342}@anchor{gnat_rm/the_gnat_library id43}@anchor{343}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 23913,23919 ****
  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{33c}@anchor{gnat_rm/the_gnat_library id44}@anchor{33d}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
--- 24166,24172 ----
  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{344}@anchor{gnat_rm/the_gnat_library id44}@anchor{345}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
*************** the encoding of the string. The routine
*** 23929,23935 ****
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{33e}@anchor{gnat_rm/the_gnat_library id45}@anchor{33f}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
--- 24182,24188 ----
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{346}@anchor{gnat_rm/the_gnat_library id45}@anchor{347}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
*************** General routines for swapping the bytes
*** 23943,23949 ****
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{340}@anchor{gnat_rm/the_gnat_library id46}@anchor{341}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
--- 24196,24202 ----
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{348}@anchor{gnat_rm/the_gnat_library id46}@anchor{349}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
*************** Also provides conversion of @code{Ada.Ca
*** 23957,23963 ****
  C @code{timeval} format.
  
  @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{342}@anchor{gnat_rm/the_gnat_library id47}@anchor{343}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
--- 24210,24216 ----
  C @code{timeval} format.
  
  @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{34a}@anchor{gnat_rm/the_gnat_library id47}@anchor{34b}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
*************** C @code{timeval} format.
*** 23968,23974 ****
  @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{344}@anchor{gnat_rm/the_gnat_library id48}@anchor{345}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
--- 24221,24227 ----
  @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{34c}@anchor{gnat_rm/the_gnat_library id48}@anchor{34d}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
*************** of this algorithm see
*** 23985,23991 ****
  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{346}@anchor{gnat_rm/the_gnat_library id49}@anchor{347}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
--- 24238,24244 ----
  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{34e}@anchor{gnat_rm/the_gnat_library id49}@anchor{34f}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
*************** without the overhead of the full casing
*** 24000,24006 ****
  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{348}@anchor{gnat_rm/the_gnat_library id50}@anchor{349}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
--- 24253,24259 ----
  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{350}@anchor{gnat_rm/the_gnat_library id50}@anchor{351}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
*************** builds a table whose index is the key an
*** 24015,24021 ****
  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{34a}@anchor{gnat_rm/the_gnat_library id51}@anchor{34b}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
--- 24268,24274 ----
  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{352}@anchor{gnat_rm/the_gnat_library id51}@anchor{353}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
*************** Common Gateway Interface (CGI).  It expo
*** 24030,24036 ****
  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{34c}@anchor{gnat_rm/the_gnat_library id52}@anchor{34d}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
--- 24283,24289 ----
  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{354}@anchor{gnat_rm/the_gnat_library id52}@anchor{355}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
*************** This is a package to help debugging CGI
*** 24042,24048 ****
  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{34e}@anchor{gnat_rm/the_gnat_library id53}@anchor{34f}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
--- 24295,24301 ----
  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{356}@anchor{gnat_rm/the_gnat_library id53}@anchor{357}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
*************** including the ability to scan for named
*** 24055,24061 ****
  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{350}@anchor{gnat_rm/the_gnat_library id54}@anchor{351}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
--- 24308,24314 ----
  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{358}@anchor{gnat_rm/the_gnat_library id54}@anchor{359}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
*************** of the compiler if a consistent tool set
*** 24073,24079 ****
  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{352}@anchor{gnat_rm/the_gnat_library id55}@anchor{353}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
--- 24326,24332 ----
  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{35a}@anchor{gnat_rm/the_gnat_library id55}@anchor{35b}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
*************** of a partition).
*** 24084,24090 ****
  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{354}@anchor{gnat_rm/the_gnat_library id56}@anchor{355}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
--- 24337,24343 ----
  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{35c}@anchor{gnat_rm/the_gnat_library id56}@anchor{35d}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
*************** This is particularly useful in simulatin
*** 24101,24107 ****
  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{356}@anchor{gnat_rm/the_gnat_library id57}@anchor{357}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
--- 24354,24360 ----
  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{35e}@anchor{gnat_rm/the_gnat_library id57}@anchor{35f}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
*************** problems.
*** 24118,24124 ****
  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{358}@anchor{gnat_rm/the_gnat_library id58}@anchor{359}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
--- 24371,24377 ----
  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{360}@anchor{gnat_rm/the_gnat_library id58}@anchor{361}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
*************** to and from string images of address val
*** 24131,24137 ****
  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{35a}@anchor{gnat_rm/the_gnat_library id59}@anchor{35b}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
--- 24384,24390 ----
  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{362}@anchor{gnat_rm/the_gnat_library id59}@anchor{363}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
*************** Useful in conjunction with Unicode chara
*** 24155,24161 ****
  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{35c}@anchor{gnat_rm/the_gnat_library id60}@anchor{35d}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
--- 24408,24414 ----
  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{364}@anchor{gnat_rm/the_gnat_library id60}@anchor{365}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
*************** preinstantiation for UTF-8. See next ent
*** 24176,24182 ****
  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{35e}@anchor{gnat_rm/the_gnat_library id61}@anchor{35f}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
--- 24429,24435 ----
  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{366}@anchor{gnat_rm/the_gnat_library id61}@anchor{367}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
*************** the current directory, making new direct
*** 24189,24195 ****
  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{360}@anchor{gnat_rm/the_gnat_library id62}@anchor{361}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
--- 24442,24448 ----
  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{368}@anchor{gnat_rm/the_gnat_library id62}@anchor{369}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
*************** A child unit of GNAT.Directory_Operation
*** 24201,24207 ****
  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{362}@anchor{gnat_rm/the_gnat_library id63}@anchor{363}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
--- 24454,24460 ----
  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{36a}@anchor{gnat_rm/the_gnat_library id63}@anchor{36b}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
*************** dynamic instances of the hash table, whi
*** 24219,24225 ****
  @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{364}@anchor{gnat_rm/the_gnat_library id64}@anchor{365}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
--- 24472,24478 ----
  @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{36c}@anchor{gnat_rm/the_gnat_library id64}@anchor{36d}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
*************** dynamic instances of the table, while an
*** 24239,24245 ****
  @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{366}@anchor{gnat_rm/the_gnat_library id65}@anchor{367}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
--- 24492,24498 ----
  @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{36e}@anchor{gnat_rm/the_gnat_library id65}@anchor{36f}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
*************** encoding method. Useful in conjunction w
*** 24261,24267 ****
  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{368}@anchor{gnat_rm/the_gnat_library id66}@anchor{369}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
--- 24514,24520 ----
  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{370}@anchor{gnat_rm/the_gnat_library id66}@anchor{371}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
*************** Note there is a preinstantiation for UTF
*** 24282,24288 ****
  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{36a}@anchor{gnat_rm/the_gnat_library id67}@anchor{36b}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
--- 24535,24541 ----
  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{372}@anchor{gnat_rm/the_gnat_library id67}@anchor{373}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
*************** for specific exceptions, or when any exc
*** 24295,24301 ****
  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{36c}@anchor{gnat_rm/the_gnat_library id68}@anchor{36d}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
--- 24548,24554 ----
  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{374}@anchor{gnat_rm/the_gnat_library id68}@anchor{375}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
*************** Provides an interface allowing to contro
*** 24309,24315 ****
  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{36e}@anchor{gnat_rm/the_gnat_library id69}@anchor{36f}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
--- 24562,24568 ----
  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{376}@anchor{gnat_rm/the_gnat_library id69}@anchor{377}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
*************** predefined exceptions, and for example a
*** 24330,24336 ****
  @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{370}@anchor{gnat_rm/the_gnat_library id70}@anchor{371}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
--- 24583,24589 ----
  @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{378}@anchor{gnat_rm/the_gnat_library id70}@anchor{379}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
*************** It is not implemented for cross ports, a
*** 24346,24352 ****
  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{372}@anchor{gnat_rm/the_gnat_library id71}@anchor{373}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
--- 24599,24605 ----
  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{37a}@anchor{gnat_rm/the_gnat_library id71}@anchor{37b}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
*************** ports. It is not implemented for cross p
*** 24358,24364 ****
  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{374}@anchor{gnat_rm/the_gnat_library id72}@anchor{375}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
--- 24611,24617 ----
  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{37c}@anchor{gnat_rm/the_gnat_library id72}@anchor{37d}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
*************** library calls may cause this mode to be
*** 24372,24378 ****
  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{376}@anchor{gnat_rm/the_gnat_library id73}@anchor{377}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
--- 24625,24631 ----
  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{37e}@anchor{gnat_rm/the_gnat_library id73}@anchor{37f}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
*************** derived from Integer, Float or enumerati
*** 24387,24393 ****
  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{378}@anchor{gnat_rm/the_gnat_library id74}@anchor{379}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
--- 24640,24646 ----
  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{380}@anchor{gnat_rm/the_gnat_library id74}@anchor{381}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
*************** have a vector implementation that can be
*** 24405,24411 ****
  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{37a}@anchor{gnat_rm/the_gnat_library id75}@anchor{37b}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
--- 24658,24664 ----
  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{382}@anchor{gnat_rm/the_gnat_library id75}@anchor{383}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
*************** access-to-procedure values.  The algorit
*** 24419,24425 ****
  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{37c}@anchor{gnat_rm/the_gnat_library id76}@anchor{37d}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
--- 24672,24678 ----
  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{384}@anchor{gnat_rm/the_gnat_library id76}@anchor{385}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
*************** This differs from @code{GNAT.Heap_Sort}
*** 24435,24441 ****
  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{37e}@anchor{gnat_rm/the_gnat_library id77}@anchor{37f}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
--- 24688,24694 ----
  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{386}@anchor{gnat_rm/the_gnat_library id77}@anchor{387}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24449,24455 ****
  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{380}@anchor{gnat_rm/the_gnat_library id78}@anchor{381}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
--- 24702,24708 ----
  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{388}@anchor{gnat_rm/the_gnat_library id78}@anchor{389}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
*************** data.  Provides two approaches, one a si
*** 24462,24468 ****
  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{382}@anchor{gnat_rm/the_gnat_library id79}@anchor{383}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
--- 24715,24721 ----
  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{38a}@anchor{gnat_rm/the_gnat_library id79}@anchor{38b}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
*************** Standard_Input, and writing characters,
*** 24478,24484 ****
  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{384}@anchor{gnat_rm/the_gnat_library id80}@anchor{385}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
--- 24731,24737 ----
  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{38c}@anchor{gnat_rm/the_gnat_library id80}@anchor{38d}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
*************** Provides some auxiliary functions for us
*** 24492,24498 ****
  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{386}@anchor{gnat_rm/the_gnat_library id81}@anchor{387}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
--- 24745,24751 ----
  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{38e}@anchor{gnat_rm/the_gnat_library id81}@anchor{38f}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
*************** Provides a general interface for using f
*** 24506,24512 ****
  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{388}@anchor{gnat_rm/the_gnat_library id82}@anchor{389}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
--- 24759,24765 ----
  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{390}@anchor{gnat_rm/the_gnat_library id82}@anchor{391}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
*************** The original implementation of @code{Ada
*** 24518,24524 ****
  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{38a}@anchor{gnat_rm/the_gnat_library id83}@anchor{38b}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
--- 24771,24777 ----
  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{392}@anchor{gnat_rm/the_gnat_library id83}@anchor{393}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
*************** The original implementation of @code{Ada
*** 24530,24536 ****
  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{38c}@anchor{gnat_rm/the_gnat_library id84}@anchor{38d}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
--- 24783,24789 ----
  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{394}@anchor{gnat_rm/the_gnat_library id84}@anchor{395}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
*************** the HMAC-MD5 message authentication func
*** 24543,24549 ****
  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{38e}@anchor{gnat_rm/the_gnat_library id85}@anchor{38f}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
--- 24796,24802 ----
  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{396}@anchor{gnat_rm/the_gnat_library id85}@anchor{397}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
*************** standard output or standard error files.
*** 24556,24562 ****
  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{390}@anchor{gnat_rm/the_gnat_library id86}@anchor{391}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
--- 24809,24815 ----
  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{398}@anchor{gnat_rm/the_gnat_library id86}@anchor{399}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
*************** various logging purposes, including dupl
*** 24570,24576 ****
  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{392}@anchor{gnat_rm/the_gnat_library id87}@anchor{393}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
--- 24823,24829 ----
  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{39a}@anchor{gnat_rm/the_gnat_library id87}@anchor{39b}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
*************** including a portable spawn procedure, an
*** 24586,24592 ****
  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{394}@anchor{gnat_rm/the_gnat_library id88}@anchor{395}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
--- 24839,24845 ----
  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{39c}@anchor{gnat_rm/the_gnat_library id88}@anchor{39d}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
*************** hashcode are in the same order. These ha
*** 24604,24610 ****
  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{396}@anchor{gnat_rm/the_gnat_library id89}@anchor{397}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
--- 24857,24863 ----
  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{39e}@anchor{gnat_rm/the_gnat_library id89}@anchor{39f}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
*************** convenient for use with realtime applica
*** 24613,24622 ****
  @geindex Random number generation
  
  Provides random number capabilities which extend those available in the
! standard Ada library and are more convenient to use.
  
  @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{26d}@anchor{gnat_rm/the_gnat_library id90}@anchor{398}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
--- 24866,24877 ----
  @geindex Random number generation
  
  Provides random number capabilities which extend those available in the
! standard Ada library and are more convenient to use. This package is
! however NOT suitable for situations requiring cryptographically secure
! 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{275}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a0}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
*************** simplest of the three pattern matching p
*** 24632,24638 ****
  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{399}@anchor{gnat_rm/the_gnat_library id91}@anchor{39a}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
--- 24887,24893 ----
  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{3a1}@anchor{gnat_rm/the_gnat_library id91}@anchor{3a2}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
*************** registry API, but at a lower level of ab
*** 24646,24652 ****
  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{39b}@anchor{gnat_rm/the_gnat_library id92}@anchor{39c}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
--- 24901,24907 ----
  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{3a3}@anchor{gnat_rm/the_gnat_library id92}@anchor{3a4}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
*************** from the original V7 style regular expre
*** 24661,24667 ****
  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{39d}@anchor{gnat_rm/the_gnat_library id93}@anchor{39e}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
--- 24916,24922 ----
  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{3a5}@anchor{gnat_rm/the_gnat_library id93}@anchor{3a6}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
*************** full content to be processed is not load
*** 24675,24681 ****
  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{39f}@anchor{gnat_rm/the_gnat_library id94}@anchor{3a0}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
--- 24930,24936 ----
  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{3a7}@anchor{gnat_rm/the_gnat_library id94}@anchor{3a8}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
*************** Provides the capability to query the hig
*** 24687,24693 ****
  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{3a1}@anchor{gnat_rm/the_gnat_library id95}@anchor{3a2}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
--- 24942,24948 ----
  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{3a9}@anchor{gnat_rm/the_gnat_library id95}@anchor{3aa}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
*************** secondary stack.
*** 24698,24704 ****
  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{3a3}@anchor{gnat_rm/the_gnat_library id96}@anchor{3a4}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
--- 24953,24959 ----
  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{3ab}@anchor{gnat_rm/the_gnat_library id96}@anchor{3ac}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
*************** Provides a simple interface to send and
*** 24710,24716 ****
  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{3a5}@anchor{gnat_rm/the_gnat_library id97}@anchor{3a6}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
--- 24965,24971 ----
  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{3ad}@anchor{gnat_rm/the_gnat_library id97}@anchor{3ae}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
*************** and RFC 3174, and the HMAC-SHA1 message
*** 24723,24729 ****
  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{3a7}@anchor{gnat_rm/the_gnat_library id98}@anchor{3a8}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
--- 24978,24984 ----
  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{3af}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b0}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
*************** and the HMAC-SHA224 message authenticati
*** 24736,24742 ****
  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{3a9}@anchor{gnat_rm/the_gnat_library id99}@anchor{3aa}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
--- 24991,24997 ----
  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{3b1}@anchor{gnat_rm/the_gnat_library id99}@anchor{3b2}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
*************** and the HMAC-SHA256 message authenticati
*** 24749,24755 ****
  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{3ab}@anchor{gnat_rm/the_gnat_library id100}@anchor{3ac}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
--- 25004,25010 ----
  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{3b3}@anchor{gnat_rm/the_gnat_library id100}@anchor{3b4}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
*************** and the HMAC-SHA384 message authenticati
*** 24762,24768 ****
  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{3ad}@anchor{gnat_rm/the_gnat_library id101}@anchor{3ae}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
--- 25017,25023 ----
  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{3b5}@anchor{gnat_rm/the_gnat_library id101}@anchor{3b6}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
*************** and the HMAC-SHA512 message authenticati
*** 24775,24781 ****
  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{3af}@anchor{gnat_rm/the_gnat_library id102}@anchor{3b0}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
--- 25030,25036 ----
  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{3b7}@anchor{gnat_rm/the_gnat_library id102}@anchor{3b8}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
*************** Provides the ability to manipulate the b
*** 24787,24793 ****
  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{3b1}@anchor{gnat_rm/the_gnat_library id103}@anchor{3b2}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
--- 25042,25048 ----
  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{3b9}@anchor{gnat_rm/the_gnat_library id103}@anchor{3ba}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
*************** on all native GNAT ports and on VxWorks
*** 24802,24808 ****
  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{3b3}@anchor{gnat_rm/the_gnat_library id104}@anchor{3b4}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
--- 25057,25063 ----
  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{3bb}@anchor{gnat_rm/the_gnat_library id104}@anchor{3bc}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
*************** subprograms yielding the date and time o
*** 24816,24822 ****
  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{3b5}@anchor{gnat_rm/the_gnat_library id105}@anchor{3b6}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
--- 25071,25077 ----
  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{3bd}@anchor{gnat_rm/the_gnat_library id105}@anchor{3be}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
*************** Provides a function for determining whet
*** 24828,24834 ****
  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{3b7}@anchor{gnat_rm/the_gnat_library id106}@anchor{3b8}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
--- 25083,25089 ----
  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{3bf}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c0}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
*************** determining whether one string is a plau
*** 24841,24847 ****
  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{3b9}@anchor{gnat_rm/the_gnat_library id107}@anchor{3ba}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
--- 25096,25102 ----
  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{3c1}@anchor{gnat_rm/the_gnat_library id107}@anchor{3c2}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
*************** the SNOBOL4 dynamic pattern construction
*** 24857,24863 ****
  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{3bb}@anchor{gnat_rm/the_gnat_library id108}@anchor{3bc}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
--- 25112,25118 ----
  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{3c3}@anchor{gnat_rm/the_gnat_library id108}@anchor{3c4}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
*************** useful for constructing arbitrary mappin
*** 24872,24878 ****
  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{3bd}@anchor{gnat_rm/the_gnat_library id109}@anchor{3be}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
--- 25127,25133 ----
  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{3c5}@anchor{gnat_rm/the_gnat_library id109}@anchor{3c6}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
*************** for type @code{Standard.Boolean}, giving
*** 24887,24893 ****
  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{3bf}@anchor{gnat_rm/the_gnat_library id110}@anchor{3c0}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
--- 25142,25148 ----
  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{3c7}@anchor{gnat_rm/the_gnat_library id110}@anchor{3c8}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
*************** for type @code{Standard.Integer}, giving
*** 24904,24910 ****
  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{3c1}@anchor{gnat_rm/the_gnat_library id111}@anchor{3c2}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
--- 25159,25165 ----
  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{3c9}@anchor{gnat_rm/the_gnat_library id111}@anchor{3ca}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
*************** a variable length string type, giving an
*** 24921,24927 ****
  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{3c3}@anchor{gnat_rm/the_gnat_library id112}@anchor{3c4}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
--- 25176,25182 ----
  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{3cb}@anchor{gnat_rm/the_gnat_library id112}@anchor{3cc}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
*************** targets.  It exposes vector component ty
*** 24933,24939 ****
  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{3c5}@anchor{gnat_rm/the_gnat_library id113}@anchor{3c6}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
--- 25188,25194 ----
  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{3cd}@anchor{gnat_rm/the_gnat_library id113}@anchor{3ce}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
*************** introduction to the binding contents and
*** 24942,24948 ****
  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{3c7}@anchor{gnat_rm/the_gnat_library id114}@anchor{3c8}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
--- 25197,25203 ----
  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{3cf}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d0}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
*************** Provides a generic hash function working
*** 24954,24960 ****
  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{3c9}@anchor{gnat_rm/the_gnat_library id115}@anchor{3ca}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
--- 25209,25215 ----
  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{3d1}@anchor{gnat_rm/the_gnat_library id115}@anchor{3d2}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
*************** Common String access types and related s
*** 24964,24970 ****
  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{3cb}@anchor{gnat_rm/the_gnat_library id116}@anchor{3cc}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
--- 25219,25225 ----
  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{3d3}@anchor{gnat_rm/the_gnat_library id116}@anchor{3d4}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
*************** to the resulting slices. This package is
*** 24978,24984 ****
  @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{3cd}@anchor{gnat_rm/the_gnat_library id117}@anchor{3ce}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
--- 25233,25239 ----
  @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{3d5}@anchor{gnat_rm/the_gnat_library id117}@anchor{3d6}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
*************** while an instantiation of @code{GNAT.Dyn
*** 24998,25004 ****
  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{3cf}@anchor{gnat_rm/the_gnat_library id118}@anchor{3d0}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
--- 25253,25259 ----
  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{3d7}@anchor{gnat_rm/the_gnat_library id118}@anchor{3d8}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
*************** single global task lock.  Appropriate fo
*** 25015,25021 ****
  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{3d1}@anchor{gnat_rm/the_gnat_library id119}@anchor{3d2}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
--- 25270,25276 ----
  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{3d9}@anchor{gnat_rm/the_gnat_library id119}@anchor{3da}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
*************** represents the current date and time in
*** 25030,25036 ****
  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{3d3}@anchor{gnat_rm/the_gnat_library id120}@anchor{3d4}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
--- 25285,25291 ----
  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{3db}@anchor{gnat_rm/the_gnat_library id120}@anchor{3dc}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
*************** further details if your program has thre
*** 25047,25053 ****
  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{3d5}@anchor{gnat_rm/the_gnat_library id121}@anchor{3d6}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
--- 25302,25308 ----
  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{3dd}@anchor{gnat_rm/the_gnat_library id121}@anchor{3de}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
*************** Provides a facility for obtaining non-sy
*** 25059,25065 ****
  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{3d7}@anchor{gnat_rm/the_gnat_library id122}@anchor{3d8}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
--- 25314,25320 ----
  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{3df}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e0}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
*************** in various debugging situations.
*** 25068,25074 ****
  @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{3d9}@anchor{gnat_rm/the_gnat_library id123}@anchor{3da}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
--- 25323,25329 ----
  @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{3e1}@anchor{gnat_rm/the_gnat_library id123}@anchor{3e2}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
*************** lower case to upper case fold routine co
*** 25087,25093 ****
  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{3db}@anchor{gnat_rm/the_gnat_library id124}@anchor{3dc}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
--- 25342,25348 ----
  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{3e3}@anchor{gnat_rm/the_gnat_library id124}@anchor{3e4}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
*************** near misspelling of another wide wide st
*** 25100,25106 ****
  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{3dd}@anchor{gnat_rm/the_gnat_library id125}@anchor{3de}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
--- 25355,25361 ----
  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{3e5}@anchor{gnat_rm/the_gnat_library id125}@anchor{3e6}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
*************** Provides a function for determining whet
*** 25112,25118 ****
  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{3df}@anchor{gnat_rm/the_gnat_library id126}@anchor{3e0}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
--- 25367,25373 ----
  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{3e7}@anchor{gnat_rm/the_gnat_library id126}@anchor{3e8}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25126,25132 ****
  @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{3e1}@anchor{gnat_rm/the_gnat_library id127}@anchor{3e2}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
--- 25381,25387 ----
  @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{3e9}@anchor{gnat_rm/the_gnat_library id127}@anchor{3ea}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
*************** Provides a function for determining whet
*** 25138,25144 ****
  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{3e3}@anchor{gnat_rm/the_gnat_library id128}@anchor{3e4}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
--- 25393,25399 ----
  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{3eb}@anchor{gnat_rm/the_gnat_library id128}@anchor{3ec}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25152,25158 ****
  @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 id129}@anchor{3e5}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3e6}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
--- 25407,25413 ----
  @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 id129}@anchor{3ed}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3ee}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
*************** for use with either manually or automati
*** 25163,25169 ****
  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 id130}@anchor{3e7}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3e8}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
--- 25418,25424 ----
  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 id130}@anchor{3ef}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3f0}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
*************** This package is a binding for the most c
*** 25176,25182 ****
  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 id131}@anchor{3e9}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3ea}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
--- 25431,25437 ----
  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 id131}@anchor{3f1}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3f2}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
*************** This package provides a set of routines
*** 25190,25197 ****
  from a packed decimal format compatible with that used on IBM
  mainframes.
  
! @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3eb}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3ec}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
--- 25445,25452 ----
  from a packed decimal format compatible with that used on IBM
  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 id132}@anchor{3f3}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3f4}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
*************** mainframes.
*** 25203,25229 ****
  @geindex interfacing
  
  This package provides a limited binding to the VxWorks API.
- In particular, it interfaces with the
- VxWorks hardware interrupt facilities.
- 
- @node Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
- @anchor{gnat_rm/the_gnat_library id133}@anchor{3ed}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-int-connection-i-vxinco-ads}@anchor{3ee}
- @section @code{Interfaces.VxWorks.Int_Connection} (@code{i-vxinco.ads})
- 
- 
- @geindex Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
- 
- @geindex Interfacing to VxWorks
  
! @geindex VxWorks
! @geindex interfacing
! 
! This package provides a way for users to replace the use of
! intConnect() with a custom routine for installing interrupt
! handlers.
! 
! @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks Int_Connection i-vxinco ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3ef}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3f0}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
--- 25458,25466 ----
  @geindex interfacing
  
  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 id133}@anchor{3f5}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3f6}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
*************** function codes. A particular use of this
*** 25246,25252 ****
  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{3f1}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3f2}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
--- 25483,25489 ----
  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 id134}@anchor{3f7}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3f8}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
*************** function that gives an (implementation d
*** 25262,25268 ****
  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{3f3}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3f4}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
--- 25499,25505 ----
  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 id135}@anchor{3f9}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3fa}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
*************** by an run-time assertion failure, as wel
*** 25278,25284 ****
  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{3f5}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3f6}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
--- 25515,25521 ----
  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 id136}@anchor{3fb}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3fc}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
*************** on most targets, including all Alpha, AA
*** 25292,25298 ****
  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{3f7}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3f8}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
--- 25529,25535 ----
  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 id137}@anchor{3fd}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3fe}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
*************** calls to this unit may be made for low l
*** 25310,25316 ****
  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{3f9}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{3fa}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
--- 25547,25553 ----
  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 id138}@anchor{3ff}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{400}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25323,25329 ****
  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{3fb}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{3fc}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
--- 25560,25566 ----
  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 id139}@anchor{401}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{402}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25336,25342 ****
  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{3fd}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{3fe}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
--- 25573,25579 ----
  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 id140}@anchor{403}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{404}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
*************** is used primarily in a distribution cont
*** 25349,25355 ****
  with @code{GLADE}.
  
  @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{3ff}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{400}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
--- 25586,25592 ----
  with @code{GLADE}.
  
  @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 id141}@anchor{405}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{406}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
*************** declared. It uses malloc/free to allocat
*** 25366,25372 ****
  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{401}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{402}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
--- 25603,25609 ----
  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 id142}@anchor{407}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{408}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
*************** a list of allocated blocks, so that all
*** 25383,25389 ****
  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{403}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{404}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
--- 25620,25626 ----
  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 id143}@anchor{409}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{40a}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
*************** compiler determined information on which
*** 25399,25405 ****
  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{405}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{406}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
--- 25636,25642 ----
  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 id144}@anchor{40b}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{40c}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
*************** since the necessary instantiation is inc
*** 25415,25421 ****
  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{407}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{408}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
--- 25652,25658 ----
  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 id145}@anchor{40d}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{40e}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
*************** stream attributes are applied to string
*** 25431,25437 ****
  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{409}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{40a}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
--- 25668,25674 ----
  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 id146}@anchor{40f}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{410}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
*************** also contains some related definitions f
*** 25444,25450 ****
  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{40b}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{40c}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
--- 25681,25687 ----
  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 id147}@anchor{411}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{412}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
*************** encoding method.  It uses definitions in
*** 25465,25471 ****
  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{40d}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{40e}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
--- 25702,25708 ----
  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 id148}@anchor{413}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{414}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
*************** in ordinary strings.  These definitions
*** 25477,25483 ****
  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{40f}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{410}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
--- 25714,25720 ----
  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{415}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{416}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
*************** provided.
*** 25495,25501 ****
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{411}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{412}
  @section Interfacing to C
  
  
--- 25732,25738 ----
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{417}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{418}
  @section Interfacing to C
  
  
*************** of the length corresponding to the @code
*** 25635,25641 ****
  @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{413}
  @section Interfacing to C++
  
  
--- 25872,25878 ----
  @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{419}
  @section Interfacing to C++
  
  
*************** pragma Import (Cpp,
*** 25689,25698 ****
  @end example
  
  The @code{External_Name} is the name of the C++ RTTI symbol. You can then
! cover a specific C++ exception in an exception handler.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{414}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{415}
  @section Interfacing to COBOL
  
  
--- 25926,26095 ----
  @end example
  
  The @code{External_Name} is the name of the C++ RTTI symbol. You can then
! cover a specific C++ exception in an exception handler. If the string
! ends with “‘Class”, as if referencing the Class attribute of the C++
! type, that enables “class-wide” type matching, i.e., instances of C++
! classes derived from the one denoted by the RTTI symbol, that would be
! caught by C++ handlers for that type, will also be caught by Ada
! handlers for @code{Entity}. For non-class-wide RTTI symbols imported from
! C++, only exact type matches will be handled. C++ rethrown (dependent)
! exceptions are not distinguishable from the corresponding primary
! exceptions: they are handled exactly as if the primary exception had
! been raised.
! 
! With imported exceptions, especially with base-type matching, a single
! handled_sequence_of_statements may have exception handlers with
! choices that cover the same C++ types in ways that GNAT cannot detect.
! For example, C++ classes @code{base} and @code{derived} may be imported as
! exceptions with base-type matching, but GNAT does not know that they
! are related by inheritance, only the runtime will know it. Given:
! 
! @example
! exception
!   when Derived_Exception => null;
!   when Base_Exception => null;
!   when others => null;
! @end example
! 
! the earliest handler that matches the type of the raised object will
! be selected. If an instance of @code{derived} or a further derived type
! is raised, the first handler will be used; if an instance of @code{base}
! that is not an instance of @code{derived} is raised, the second handler
! will be used; raised objects that are not instances of @code{base} will
! be handled by the @code{others} handler. However, if the handlers were
! reordered (@code{others} must remain last), the @code{Derived_Exception}
! handler would never be used, because @code{Base_Exception} would match
! any instances of @code{derived} before @code{Derived_Exception} or
! @code{others} handlers were considered. Mixing exact-type and base-type
! matching exceptions may also involve overlapping handlers that GNAT
! will not reject: an exact-type @code{Base_Only_Exception} handler placed
! before @code{Base_Exception} will handle instances of @code{base}, whereas
! instances of derived types will be handled by
! @code{Base_Exception}. Swapping them will cause @code{Base_Exception} to
! handle all instances of @code{base} and derived types, so that a
! subsequent handler for @code{Base_Only_Exception} will never be selected.
! 
! The C++ object associated with a C++ @code{Exception_Occurrence} may be
! obtained by calling the @code{GNAT.CPP_Exceptions.Get_Object_Address}
! function. There are convenience generic wrappers named @code{Get_Object},
! @code{Get_Access_To_Object}, and @code{Get_Access_To_Tagged_Object},
! parameterized on the expected Ada type. Note that, for exceptions
! imported from C++, the address of the object is that of the subobject
! of the type associated with the exception, which may have a different
! address from that of the full object; for C++ exceptions handled by
! @code{others} handlers, however, the address of the full object is
! returned.
! 
! E.g., if the imported exception uses the RTTI symbol for the base
! class, followed by “‘Class”, and the C++ code raises (throws) an
! instance of a derived class, a handler for that imported exception
! will catch this @code{Exception_Occurrence}, and @code{Get_Object_Address}
! will return the address of the base subobject of the raised derived
! object; @code{Get_Object}, @code{Get_Access_To_Object} and
! @code{Get_Access_To_Tagged_Object} only convert that address to the
! parameterized type, so the specified type ought to be a type that
! imports the C++ type whose RTTI symbol was named in the declared
! exception, i.e., base, not derived or any other type. GNAT cannot
! detect or report if a type is named that does not match the handler’s
! RTTI-specified type.
! 
! For @code{others} handlers, and for exact type matches, the full object
! is obtained. The @code{Get_Type_Info} function that takes an
! @code{Exception_Occurrence} argument can be used to verify the type of
! the C++ object raised as an exception. The other @code{Get_Type_Info}
! function, that takes an @code{Exception_Id}, obtains the type expected by
! the handler, and no such type exists for @code{others} handlers.
! @code{GNAT.CPP.Std.Name} can then convert the opaque
! @code{GNAT.CPP.Std.Type_Info_Ptr} access to @code{std::type_info} objects,
! returned by either @code{Get_Type_Info} function, to a C++ mangled type
! name.
! 
! If an @code{Exception_Occurrence} was raised from C++, or following C++
! conventions, @code{GNAT.Exception_Actions.Exception_Language} will return
! @code{EL_Cpp}, whether the exception handler is an imported C++ exception
! or @code{others}. @code{GNAT.Exception_Actions.Is_Foreign_Exception} returns
! True for all of these, as well as for any case in which
! @code{Exception_Language} is not @code{EL_Ada}.
! 
! @example
! --  Given the following partial package specification:
! 
!   Base_Exception : exception;
!   pragma Import (Cpp, Base_Exception, "_ZTI4base'Class");
!   --  Handle instances of base, and of subclasses.
! 
!   type Base is limited tagged record
!     [...]
!   end record;
!   pragma Import (Cpp, Base);
! 
!   type Derived is limited tagged record
!     [...]
!   end record;
!   pragma Import (Cpp, Derived);
! 
!   type Unrelated is access procedure (B : Boolean);
! 
!   function Get_Base_Obj_Acc is
!     new Get_Access_To_Tagged_Object (Base);
!   function Get_Derived_Obj_Acc is
!     new Get_Access_To_Tagged_Object (Derived);
!   function Get_Unrelated_Obj_Acc is
!     new Get_Access_To_Object (Unrelated);
! 
!   procedure Raise_Derived;
!   --  Raises an instance of derived (with a base subobject).
! 
! 
! --  The comments next to each statement indicate the behavior of
! --  the following pseudocode blocks:
! 
! begin
!   Raise_Derived;
! exception
!   when BEx : Base_Exception =>
!     ?? := Is_Foreign_Exception (BEx);  --  True
!     ?? := Exception_Language (BEx);    --  EL_Cpp
!     ?? := Name (Get_Type_Info (BEx));  --  "7derived"
!     ?? := Name (Get_Type_Info (Exception_Identity (BEx)));  --  "4base"
!     ?? := Get_Object_Address (BEx);    --  base subobject in derived object
!     ?? := Get_Base_Obj_Acc (BEx):      --  ditto, as access to Base
!     ?? := Get_Derived_Obj_Acc (BEx):   --  ditto, NO ERROR DETECTED!
!     ?? := Get_Unrelated_Obj_Acc (BEx): --  ditto, NO ERROR DETECTED!
! end;
! 
! 
! begin
!   Raise_Derived;
! exception
!   when BEx : others =>
!     ?? := Is_Foreign_Exception (BEx);  --  True
!     ?? := Exception_Language (BEx);    --  EL_Cpp
!     ?? := Name (Get_Type_Info (BEx));  --  "7derived"
!     ?? := Get_Type_Info (Exception_Identity (BEx));  --  null
!     ?? := Get_Object_Address (BEx);    --  full derived object
!     ?? := Get_Derived_Obj_Acc (BEx):   --  ditto, as access to Derived
!     ?? := Get_Base_Obj_Acc (BEx):      --  ditto, NO ERROR DETECTED!
!     ?? := Get_Unrelated_Obj_Acc (BEx): --  ditto, NO ERROR DETECTED!
! end;
! @end example
! 
! The calls marked with @code{NO ERROR DETECTED!} will compile sucessfully,
! even though the types specified in the specializations of the generic
! function do not match the type of the exception object that the
! function is expected to return. Mismatches between derived and base
! types are particularly relevant because they will appear to work as
! long as there isn’t any offset between pointers to these types. This
! may hold in many cases, but is subject to change with various possible
! changes to the derived class.
! 
! The @code{GNAT.CPP.Std} package offers interfaces corresponding to the
! C++ standard type @code{std::type_info}. Function @code{To_Type_Info_Ptr}
! builds an opaque @code{Type_Info_Ptr} to reference a @code{std::type_info}
! 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{41a}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{41b}
  @section Interfacing to COBOL
  
  
*************** Interfacing to COBOL is achieved as desc
*** 25700,25706 ****
  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{416}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{417}
  @section Interfacing to Fortran
  
  
--- 26097,26103 ----
  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{41c}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{41d}
  @section Interfacing to Fortran
  
  
*************** multi-dimensional array causes the array
*** 25710,25716 ****
  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{418}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{419}
  @section Interfacing to non-GNAT Ada code
  
  
--- 26107,26113 ----
  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{41e}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{41f}
  @section Interfacing to non-GNAT Ada code
  
  
*************** values or simple record types without va
*** 25734,25740 ****
  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{41a}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{41b}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
--- 26131,26137 ----
  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{420}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{421}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
*************** in Ada 2005) is fully implemented.
*** 25775,25781 ****
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{41c}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{41d}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
--- 26172,26178 ----
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{422}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{423}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
*************** facilities.
*** 25794,25800 ****
  @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{41e}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{175}
  @section Machine Code Insertions
  
  
--- 26191,26197 ----
  @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{424}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{17d}
  @section Machine Code Insertions
  
  
*************** according to normal visibility rules. In
*** 25962,25968 ****
  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{41f}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{420}
  @section GNAT Implementation of Tasking
  
  
--- 26359,26365 ----
  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{425}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{426}
  @section GNAT Implementation of Tasking
  
  
*************** to compliance with the Real-Time Systems
*** 25978,25984 ****
  @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{421}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{422}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
--- 26375,26381 ----
  @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{427}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{428}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
*************** support this functionality when the pare
*** 26047,26053 ****
  @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{423}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{424}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
--- 26444,26450 ----
  @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{429}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{42a}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
*************** placed at the end.
*** 26098,26104 ****
  @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{425}
  @subsection Support for Locking Policies
  
  
--- 26495,26501 ----
  @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{42b}
  @subsection Support for Locking Policies
  
  
*************** then ceiling locking is used.
*** 26132,26138 ****
  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{426}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{427}
  @section GNAT Implementation of Shared Passive Packages
  
  
--- 26529,26535 ----
  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{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{42d}
  @section GNAT Implementation of Shared Passive Packages
  
  
*************** This is used to provide the required loc
*** 26230,26236 ****
  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{428}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{429}
  @section Code Generation for Array Aggregates
  
  
--- 26627,26633 ----
  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{42e}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{42f}
  @section Code Generation for Array Aggregates
  
  
*************** component values and static subtypes als
*** 26261,26267 ****
  @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{42a}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{42b}
  @subsection Static constant aggregates with static bounds
  
  
--- 26658,26664 ----
  @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{430}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{431}
  @subsection Static constant aggregates with static bounds
  
  
*************** Zero2: constant two_dim := (others => (o
*** 26308,26314 ****
  @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{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{42d}
  @subsection Constant aggregates with unconstrained nominal types
  
  
--- 26705,26711 ----
  @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{432}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{433}
  @subsection Constant aggregates with unconstrained nominal types
  
  
*************** Cr_Unc : constant One_Unc := (12,24,36);
*** 26323,26329 ****
  @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{42e}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{42f}
  @subsection Aggregates with static bounds
  
  
--- 26720,26726 ----
  @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{434}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{435}
  @subsection Aggregates with static bounds
  
  
*************** end loop;
*** 26351,26357 ****
  @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{430}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{431}
  @subsection Aggregates with nonstatic bounds
  
  
--- 26748,26754 ----
  @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{436}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{437}
  @subsection Aggregates with nonstatic bounds
  
  
*************** have to be applied to sub-arrays individ
*** 26362,26368 ****
  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{432}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{433}
  @subsection Aggregates in assignment statements
  
  
--- 26759,26765 ----
  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{438}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{439}
  @subsection Aggregates in assignment statements
  
  
*************** a temporary (created either by the front
*** 26404,26410 ****
  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{434}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{435}
  @section The Size of Discriminated Records with Default Discriminants
  
  
--- 26801,26807 ----
  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{43a}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{43b}
  @section The Size of Discriminated Records with Default Discriminants
  
  
*************** say) must be consistent, so it is impera
*** 26484,26490 ****
  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{436}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{437}
  @section Image Values For Nonscalar Types
  
  
--- 26881,26887 ----
  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{43c}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{43d}
  @section Image Values For Nonscalar Types
  
  
*************** control of image text is required for so
*** 26504,26510 ****
  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{438}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{439}
  @section Strict Conformance to the Ada Reference Manual
  
  
--- 26901,26907 ----
  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{43e}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{43f}
  @section Strict Conformance to the Ada Reference Manual
  
  
*************** behavior (although at the cost of a sign
*** 26531,26537 ****
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2012 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{43a}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{43b}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
--- 26928,26934 ----
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2012 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{440}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{441}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
*************** in the RM, the earliest is used.
*** 26574,27438 ****
  A complete description of the AIs may be found in
  @indicateurl{http://www.ada-auth.org/ai05-summary.html}.
  
! @geindex AI-0176 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0176 Quantified expressions (2010-09-29)'
  
! Both universally and existentially quantified expressions are implemented.
! They use the new syntax for iterators proposed in AI05-139-2, as well as
! the standard Ada loop syntax.
  
! RM References:  1.01.04 (12)   2.09 (2/2)   4.04 (7)   4.05.09 (0)
  @end itemize
  
! @geindex AI-0079 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0079 Allow other_format characters in source (2010-07-10)'
  
! Wide characters in the unicode category `other_format' are now allowed in
! source programs between tokens, but not within a token such as an identifier.
  
! RM References:  2.01 (4/2)   2.02 (7)
  @end itemize
  
! @geindex AI-0091 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0091 Do not allow other_format in identifiers (0000-00-00)'
  
! Wide characters in the unicode category `other_format' are not permitted
! within  an identifier, since this can be a security problem. The error
! message for this case has been improved to be more specific, but GNAT has
! never allowed such characters to appear in identifiers.
  
! RM References:  2.03 (3.1/2)   2.03 (4/2)   2.03 (5/2)   2.03 (5.1/2)   2.03 (5.2/2)   2.03 (5.3/2)   2.09 (2/2)
  @end itemize
  
! @geindex AI-0100 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0100 Placement of pragmas  (2010-07-01)'
  
! This AI is an earlier version of AI-163. It simplifies the rules
! for legal placement of pragmas. In the case of lists that allow pragmas, if
! the list may have no elements, then the list may consist solely of pragmas.
  
! RM References:  2.08 (7)
  @end itemize
  
! @geindex AI-0163 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0163 Pragmas in place of null (2010-07-01)'
  
! A statement sequence may be composed entirely of pragmas. It is no longer
! necessary to add a dummy @code{null} statement to make the sequence legal.
  
! RM References:  2.08 (7)   2.08 (16)
  @end itemize
  
! @geindex AI-0080 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0080 ‘View of’ not needed if clear from context (0000-00-00)'
  
! This is an editorial change only, described as non-testable in the AI.
  
! RM References:  3.01 (7)
  @end itemize
  
! @geindex AI-0183 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0183 Aspect specifications (2010-08-16)'
  
! Aspect specifications have been fully implemented except for pre and post-
! conditions, and type invariants, which have their own separate AI’s. All
! forms of declarations listed in the AI are supported. The following is a
! list of the aspects supported (with GNAT implementation aspects marked)
  @end itemize
  
  
- @multitable {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxx} 
- @headitem
  
! Supported Aspect
  
! @tab
  
! Source
  
! @item
  
! @code{Ada_2005}
  
- @tab
  
! – GNAT
  
! @item
  
! @code{Ada_2012}
  
! @tab
  
! – GNAT
  
- @item
  
! @code{Address}
  
! @tab
  
! @item
  
! @code{Alignment}
  
! @tab
  
- @item
  
! @code{Atomic}
  
! @tab
  
! @item
  
! @code{Atomic_Components}
  
! @tab
  
- @item
  
! @code{Bit_Order}
  
! @tab
  
! @item
  
! @code{Component_Size}
  
! @tab
  
- @item
  
! @code{Contract_Cases}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Discard_Names}
  
- @tab
  
! @item
  
! @code{External_Tag}
  
! @tab
  
! @item
  
! @code{Favor_Top_Level}
  
- @tab
  
! – GNAT
  
! @item
  
! @code{Inline}
  
! @tab
  
! @item
  
- @code{Inline_Always}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Invariant}
  
! @tab
  
- – GNAT
  
! @item
  
! @code{Machine_Radix}
  
! @tab
  
! @item
  
! @code{No_Return}
  
- @tab
  
! @item
  
! @code{Object_Size}
  
! @tab
  
! – GNAT
  
! @item
  
- @code{Pack}
  
! @tab
  
! @item
  
! @code{Persistent_BSS}
  
! @tab
  
! – GNAT
  
- @item
  
! @code{Post}
  
! @tab
  
! @item
  
! @code{Pre}
  
! @tab
  
- @item
  
! @code{Predicate}
  
! @tab
  
! @item
  
! @code{Preelaborable_Initialization}
  
! @tab
  
- @item
  
! @code{Pure_Function}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Remote_Access_Type}
  
- @tab
  
! – GNAT
  
! @item
  
! @code{Shared}
  
! @tab
  
! – GNAT
  
- @item
  
! @code{Size}
  
! @tab
  
! @item
  
! @code{Storage_Pool}
  
! @tab
  
- @item
  
! @code{Storage_Size}
  
! @tab
  
! @item
  
! @code{Stream_Size}
  
! @tab
  
- @item
  
! @code{Suppress}
  
! @tab
  
! @item
  
! @code{Suppress_Debug_Info}
  
! @tab
  
- – GNAT
  
! @item
  
! @code{Test_Case}
  
! @tab
  
! – GNAT
  
! @item
  
- @code{Thread_Local_Storage}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Type_Invariant}
  
! @tab
  
- @item
  
! @code{Unchecked_Union}
  
! @tab
  
! @item
  
! @code{Universal_Aliasing}
  
! @tab
  
- – GNAT
  
! @item
  
! @code{Unmodified}
  
! @tab
  
! – GNAT
  
! @item
  
- @code{Unreferenced}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Unreferenced_Objects}
  
! @tab
  
- – GNAT
  
! @item
  
! @code{Unsuppress}
  
! @tab
  
! @item
  
! @code{Value_Size}
  
- @tab
  
! – GNAT
  
! @item
  
! @code{Volatile}
  
! @tab
  
! @item
  
- @code{Volatile_Components}
  
! @tab
  
! @item
  
! @code{Warnings}
  
! @tab
  
! – GNAT
  
- @end multitable
  
  
! @quotation
  
! Note that for aspects with an expression, e.g. @code{Size}, the expression is
! treated like a default expression (visibility is analyzed at the point of
! occurrence of the aspect, but evaluation of the expression occurs at the
! freeze point of the entity involved).
  
! RM References:  3.02.01 (3)   3.02.02 (2)   3.03.01 (2/2)   3.08 (6)
! 3.09.03 (1.1/2)   6.01 (2/2)   6.07 (2/2)   9.05.02 (2/2)   7.01 (3)   7.03
! (2)   7.03 (3)   9.01 (2/2)   9.01 (3/2)   9.04 (2/2)   9.04 (3/2)
! 9.05.02 (2/2)   11.01 (2)   12.01 (3)   12.03 (2/2)   12.04 (2/2)   12.05 (2)
! 12.06 (2.1/2)   12.06 (2.2/2)   12.07 (2)   13.01 (0.1/2)   13.03 (5/1)
! 13.03.01 (0)
! @end quotation
  
! @geindex AI-0128 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0128 Inequality is a primitive operation (0000-00-00)'
  
! If an equality operator (“=”) is declared for a type, then the implicitly
! declared inequality operator (“/=”) is a primitive operation of the type.
! This is the only reasonable interpretation, and is the one always implemented
! by GNAT, but the RM was not entirely clear in making this point.
  
! RM References:  3.02.03 (6)   6.06 (6)
  @end itemize
  
! @geindex AI-0003 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0003 Qualified expressions as names (2010-07-11)'
  
! In Ada 2012, a qualified expression is considered to be syntactically a name,
! meaning that constructs such as @code{A'(F(X)).B} are now legal. This is
! useful in disambiguating some cases of overloading.
  
! RM References:  3.03 (11)   3.03 (21)   4.01 (2)   4.04 (7)   4.07 (3)
! 5.04 (7)
  @end itemize
  
! @geindex AI-0120 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0120 Constant instance of protected object (0000-00-00)'
  
! This is an RM editorial change only. The section that lists objects that are
! constant failed to include the current instance of a protected object
! within a protected function. This has always been treated as a constant
! in GNAT.
  
! RM References:  3.03 (21)
  @end itemize
  
! @geindex AI-0008 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0008 General access to constrained objects (0000-00-00)'
  
! The wording in the RM implied that if you have a general access to a
! constrained object, it could be used to modify the discriminants. This was
! obviously not intended. @code{Constraint_Error} should be raised, and GNAT
! has always done so in this situation.
  
! RM References:  3.03 (23)   3.10.02 (26/2)   4.01 (9)   6.04.01 (17)   8.05.01 (5/2)
  @end itemize
  
! @geindex AI-0093 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0093 Additional rules use immutably limited (0000-00-00)'
  
! This is an editorial change only, to make more widespread use of the Ada 2012
! ‘immutably limited’.
  
! RM References:  3.03 (23.4/3)
  @end itemize
  
! @geindex AI-0096 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0096 Deriving from formal private types (2010-07-20)'
  
! In general it is illegal for a type derived from a formal limited type to be
! nonlimited.  This AI makes an exception to this rule: derivation is legal
! if it appears in the private part of the generic, and the formal type is not
! tagged. If the type is tagged, the legality check must be applied to the
! private part of the package.
  
! RM References:  3.04 (5.1/2)   6.02 (7)
  @end itemize
  
! @geindex AI-0181 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0181 Soft hyphen is a non-graphic character (2010-07-23)'
  
! From Ada 2005 on, soft hyphen is considered a non-graphic character, which
! means that it has a special name (@code{SOFT_HYPHEN}) in conjunction with the
! @code{Image} and @code{Value} attributes for the character types. Strictly
! speaking this is an inconsistency with Ada 95, but in practice the use of
! these attributes is so obscure that it will not cause problems.
  
! RM References:  3.05.02 (2/2)   A.01 (35/2)   A.03.03 (21)
  @end itemize
  
! @geindex AI-0182 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0182 Additional forms for' @code{Character'Value} `(0000-00-00)'
  
! This AI allows @code{Character'Value} to accept the string @code{'?'} where
! @code{?} is any character including non-graphic control characters. GNAT has
! always accepted such strings. It also allows strings such as
! @code{HEX_00000041} to be accepted, but GNAT does not take advantage of this
! permission and raises @code{Constraint_Error}, as is certainly still
! permitted.
  
! RM References:  3.05 (56/2)
  @end itemize
  
! @geindex AI-0214 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0214 Defaulted discriminants for limited tagged (2010-10-01)'
  
! Ada 2012 relaxes the restriction that forbids discriminants of tagged types
! to have default expressions by allowing them when the type is limited. It
! is often useful to define a default value for a discriminant even though
! it can’t be changed by assignment.
  
! RM References:  3.07 (9.1/2)   3.07.02 (3)
  @end itemize
  
! @geindex AI-0102 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0102 Some implicit conversions are illegal (0000-00-00)'
  
! It is illegal to assign an anonymous access constant to an anonymous access
! variable. The RM did not have a clear rule to prevent this, but GNAT has
! always generated an error for this usage.
  
! RM References:  3.07 (16)   3.07.01 (9)   6.04.01 (6)   8.06 (27/2)
  @end itemize
  
! @geindex AI-0158 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0158 Generalizing membership tests (2010-09-16)'
  
! This AI extends the syntax of membership tests to simplify complex conditions
! that can be expressed as membership in a subset of values of any type. It
! introduces syntax for a list of expressions that may be used in loop contexts
! as well.
  
! RM References:  3.08.01 (5)   4.04 (3)   4.05.02 (3)   4.05.02 (5)   4.05.02 (27)
  @end itemize
  
! @geindex AI-0173 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0173 Testing if tags represent abstract types (2010-07-03)'
  
! The function @code{Ada.Tags.Type_Is_Abstract} returns @code{True} if invoked
! with the tag of an abstract type, and @code{False} otherwise.
  
! RM References:  3.09 (7.4/2)   3.09 (12.4/2)
  @end itemize
  
! @geindex AI-0076 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0076 function with controlling result (0000-00-00)'
  
! This is an editorial change only. The RM defines calls with controlling
! results, but uses the term ‘function with controlling result’ without an
! explicit definition.
  
! RM References:  3.09.02 (2/2)
  @end itemize
  
! @geindex AI-0126 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0126 Dispatching with no declared operation (0000-00-00)'
  
! This AI clarifies dispatching rules, and simply confirms that dispatching
! executes the operation of the parent type when there is no explicitly or
! implicitly declared operation for the descendant type. This has always been
! the case in all versions of GNAT.
  
! RM References:  3.09.02 (20/2)   3.09.02 (20.1/2)   3.09.02 (20.2/2)
  @end itemize
  
! @geindex AI-0097 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0097 Treatment of abstract null extension (2010-07-19)'
  
! The RM as written implied that in some cases it was possible to create an
! object of an abstract type, by having an abstract extension inherit a non-
! abstract constructor from its parent type. This mistake has been corrected
! in GNAT and in the RM, and this construct is now illegal.
  
! RM References:  3.09.03 (4/2)
  @end itemize
  
! @geindex AI-0203 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0203 Extended return cannot be abstract (0000-00-00)'
  
! A return_subtype_indication cannot denote an abstract subtype. GNAT has never
! permitted such usage.
  
! RM References:  3.09.03 (8/3)
  @end itemize
  
! @geindex AI-0198 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0198 Inheriting abstract operators  (0000-00-00)'
  
! This AI resolves a conflict between two rules involving inherited abstract
! operations and predefined operators. If a derived numeric type inherits
! an abstract operator, it overrides the predefined one. This interpretation
! was always the one implemented in GNAT.
  
! RM References:  3.09.03 (4/3)
  @end itemize
  
! @geindex AI-0073 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0073 Functions returning abstract types (2010-07-10)'
  
! This AI covers a number of issues regarding returning abstract types. In
! particular generic functions cannot have abstract result types or access
! result types designated an abstract type. There are some other cases which
! are detailed in the AI. Note that this binding interpretation has not been
! retrofitted to operate before Ada 2012 mode, since it caused a significant
! number of regressions.
  
! RM References:  3.09.03 (8)   3.09.03 (10)   6.05 (8/2)
  @end itemize
  
! @geindex AI-0070 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0070 Elaboration of interface types (0000-00-00)'
  
! This is an editorial change only, there are no testable consequences short of
! checking for the absence of generated code for an interface declaration.
  
! RM References:  3.09.04 (18/2)
  @end itemize
  
! @geindex AI-0208 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0208 Characteristics of incomplete views (0000-00-00)'
  
! The wording in the Ada 2005 RM concerning characteristics of incomplete views
! was incorrect and implied that some programs intended to be legal were now
! illegal. GNAT had never considered such programs illegal, so it has always
! implemented the intent of this AI.
  
! RM References:  3.10.01 (2.4/2)   3.10.01 (2.6/2)
  @end itemize
  
! @geindex AI-0162 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0162 Incomplete type completed by partial view (2010-09-15)'
  
! Incomplete types are made more useful by allowing them to be completed by
! private types and private extensions.
  
! RM References:  3.10.01 (2.5/2)   3.10.01 (2.6/2)   3.10.01 (3)   3.10.01 (4/2)
  @end itemize
  
! @geindex AI-0098 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0098 Anonymous subprogram access restrictions (0000-00-00)'
  
! An unintentional omission in the RM implied some inconsistent restrictions on
! the use of anonymous access to subprogram values. These restrictions were not
! intentional, and have never been enforced by GNAT.
  
! RM References:  3.10.01 (6)   3.10.01 (9.2/2)
  @end itemize
  
! @geindex AI-0199 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0199 Aggregate with anonymous access components (2010-07-14)'
  
! A choice list in a record aggregate can include several components of
! (distinct) anonymous access types as long as they have matching designated
! subtypes.
  
! RM References:  4.03.01 (16)
  @end itemize
  
! @geindex AI-0220 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0220 Needed components for aggregates (0000-00-00)'
  
! This AI addresses a wording problem in the RM that appears to permit some
! complex cases of aggregates with nonstatic discriminants. GNAT has always
! implemented the intended semantics.
  
! RM References:  4.03.01 (17)
  @end itemize
  
! @geindex AI-0147 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0147 Conditional expressions (2009-03-29)'
! 
! Conditional expressions are permitted. The form of such an expression is:
! 
! @example
! (if expr then expr @{elsif expr then expr@} [else expr])
! @end example
  
! The parentheses can be omitted in contexts where parentheses are present
! anyway, such as subprogram arguments and pragma arguments. If the `else'
! clause is omitted, `else' `True' is assumed;
! thus @code{(if A then B)} is a way to conveniently represent
! `(A implies B)' in standard logic.
  
! RM References:  4.03.03 (15)   4.04 (1)   4.04 (7)   4.05.07 (0)   4.07 (2)
! 4.07 (3)   4.09 (12)   4.09 (33)   5.03 (3)   5.03 (4)   7.05 (2.1/2)
  @end itemize
  
! @geindex AI-0037 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0037 Out-of-range box associations in aggregate (0000-00-00)'
  
! This AI confirms that an association of the form @code{Indx => <>} in an
! array aggregate must raise @code{Constraint_Error} if @code{Indx}
! is out of range. The RM specified a range check on other associations, but
! not when the value of the association was defaulted. GNAT has always inserted
! a constraint check on the index value.
  
! RM References:  4.03.03 (29)
  @end itemize
  
  @geindex AI-0123 (Ada 2012 feature)
--- 26971,27928 ----
  A complete description of the AIs may be found in
  @indicateurl{http://www.ada-auth.org/ai05-summary.html}.
  
! @geindex AI-0002 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0002 Export C with unconstrained arrays (0000-00-00)'
  
! The compiler is not required to support exporting an Ada subprogram with
! convention C if there are parameters or a return type of an unconstrained
! array type (such as @code{String}). GNAT allows such declarations but
! generates warnings. It is possible, but complicated, to write the
! corresponding C code and certainly such code would be specific to GNAT and
! non-portable.
  
! RM References:  B.01 (17)   B.03 (62)   B.03 (71.1/2)
  @end itemize
  
! @geindex AI-0003 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0003 Qualified expressions as names (2010-07-11)'
  
! In Ada 2012, a qualified expression is considered to be syntactically a name,
! meaning that constructs such as @code{A'(F(X)).B} are now legal. This is
! useful in disambiguating some cases of overloading.
  
! RM References:  3.03 (11)   3.03 (21)   4.01 (2)   4.04 (7)   4.07 (3)
! 5.04 (7)
  @end itemize
  
! @geindex AI-0007 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0007 Stream read and private scalar types (0000-00-00)'
  
! The RM as written appeared to limit the possibilities of declaring read
! attribute procedures for private scalar types. This limitation was not
! intended, and has never been enforced by GNAT.
  
! RM References:  13.13.02 (50/2)   13.13.02 (51/2)
  @end itemize
  
! @geindex AI-0008 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0008 General access to constrained objects (0000-00-00)'
  
! The wording in the RM implied that if you have a general access to a
! constrained object, it could be used to modify the discriminants. This was
! obviously not intended. @code{Constraint_Error} should be raised, and GNAT
! has always done so in this situation.
  
! RM References:  3.03 (23)   3.10.02 (26/2)   4.01 (9)   6.04.01 (17)   8.05.01 (5/2)
  @end itemize
  
! @geindex AI-0009 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0009 Pragma Independent[_Components] (2010-07-23)'
  
! This AI introduces the new pragmas @code{Independent} and
! @code{Independent_Components},
! which control guaranteeing independence of access to objects and components.
! The AI also requires independence not unaffected by confirming rep clauses.
  
! RM References:  9.10 (1)   13.01 (15/1)   13.02 (9)   13.03 (13)   C.06 (2)
! C.06 (4)   C.06 (6)   C.06 (9)   C.06 (13)   C.06 (14)
  @end itemize
  
! @geindex AI-0012 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0012 Pack/Component_Size for aliased/atomic (2010-07-15)'
  
! It is now illegal to give an inappropriate component size or a pragma
! @code{Pack} that attempts to change the component size in the case of atomic
! or aliased components. Previously GNAT ignored such an attempt with a
! warning.
  
! RM References:  13.02 (6.1/2)   13.02 (7)   C.06 (10)   C.06 (11)   C.06 (21)
  @end itemize
  
! @geindex AI-0015 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0015 Constant return objects (0000-00-00)'
  
! The return object declared in an `extended_return_statement' may be
! declared constant. This was always intended, and GNAT has always allowed it.
! 
! RM References:  6.05 (2.1/2)   3.03 (10/2)   3.03 (21)   6.05 (5/2)
! 6.05 (5.7/2)
  @end itemize
  
+ @geindex AI-0017 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0017 Freezing and incomplete types (0000-00-00)'
  
! So-called ‘Taft-amendment types’ (i.e., types that are completed in package
! bodies) are not frozen by the occurrence of bodies in the
! enclosing declarative part. GNAT always implemented this properly.
  
! RM References:  13.14 (3/1)
! @end itemize
  
! @geindex AI-0019 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0019 Freezing of primitives for tagged types (0000-00-00)'
  
! The RM suggests that primitive subprograms of a specific tagged type are
! frozen when the tagged type is frozen. This would be an incompatible change
! and is not intended. GNAT has never attempted this kind of freezing and its
! behavior is consistent with the recommendation of this AI.
  
! RM References:  13.14 (2)   13.14 (3/1)   13.14 (8.1/1)   13.14 (10)   13.14 (14)   13.14 (15.1/2)
! @end itemize
  
! @geindex AI-0026 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0026 Missing rules for Unchecked_Union (2010-07-07)'
  
! Record representation clauses concerning Unchecked_Union types cannot mention
! the discriminant of the type. The type of a component declared in the variant
! part of an Unchecked_Union cannot be controlled, have controlled components,
! nor have protected or task parts. If an Unchecked_Union type is declared
! within the body of a generic unit or its descendants, then the type of a
! component declared in the variant part cannot be a formal private type or a
! formal private extension declared within the same generic unit.
  
! RM References:  7.06 (9.4/2)   B.03.03 (9/2)   B.03.03 (10/2)
! @end itemize
  
! @geindex AI-0030 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0030 Requeue on synchronized interfaces (2010-07-19)'
  
! Requeue is permitted to a protected, synchronized or task interface primitive
! providing it is known that the overriding operation is an entry. Otherwise
! the requeue statement has the same effect as a procedure call. Use of pragma
! @code{Implemented} provides a way to impose a static requirement on the
! overriding operation by adhering to one of the implementation kinds: entry,
! protected procedure or any of the above.
  
! RM References:  9.05 (9)   9.05.04 (2)   9.05.04 (3)   9.05.04 (5)
! 9.05.04 (6)   9.05.04 (7)   9.05.04 (12)
! @end itemize
  
! @geindex AI-0031 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0031 Add From parameter to Find_Token (2010-07-25)'
  
! A new version of @code{Find_Token} is added to all relevant string packages,
! with an extra parameter @code{From}. Instead of starting at the first
! character of the string, the search for a matching Token starts at the
! character indexed by the value of @code{From}.
! These procedures are available in all versions of Ada
! but if used in versions earlier than Ada 2012 they will generate a warning
! that an Ada 2012 subprogram is being used.
  
! RM References:  A.04.03 (16)   A.04.03 (67)   A.04.03 (68/1)   A.04.04 (51)
! A.04.05 (46)
! @end itemize
  
! @geindex AI-0032 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0032 Extended return for class-wide functions (0000-00-00)'
  
! If a function returns a class-wide type, the object of an extended return
! statement can be declared with a specific type that is covered by the class-
! wide type. This has been implemented in GNAT since the introduction of
! extended returns. Note AI-0103 complements this AI by imposing matching
! rules for constrained return types.
  
! RM References:  6.05 (5.2/2)   6.05 (5.3/2)   6.05 (5.6/2)   6.05 (5.8/2)
! 6.05 (8/2)
! @end itemize
  
! @geindex AI-0033 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0033 Attach/Interrupt_Handler in generic (2010-07-24)'
  
! Neither of these two pragmas may appear within a generic template, because
! the generic might be instantiated at other than the library level.
  
! RM References:  13.11.02 (16)   C.03.01 (7/2)   C.03.01 (8/2)
! @end itemize
  
! @geindex AI-0034 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0034 Categorization of limited views (0000-00-00)'
  
! The RM makes certain limited with clauses illegal because of categorization
! considerations, when the corresponding normal with would be legal. This is
! not intended, and GNAT has always implemented the recommended behavior.
  
! RM References:  10.02.01 (11/1)   10.02.01 (17/2)
! @end itemize
  
! @geindex AI-0035 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0035 Inconsistencies with Pure units (0000-00-00)'
  
! This AI remedies some inconsistencies in the legality rules for Pure units.
! Derived access types are legal in a pure unit (on the assumption that the
! rule for a zero storage pool size has been enforced on the ancestor type).
! The rules are enforced in generic instances and in subunits. GNAT has always
! implemented the recommended behavior.
  
! RM References:  10.02.01 (15.1/2)   10.02.01 (15.4/2)   10.02.01 (15.5/2)   10.02.01 (17/2)
! @end itemize
  
! @geindex AI-0037 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0037 Out-of-range box associations in aggregate (0000-00-00)'
  
! This AI confirms that an association of the form @code{Indx => <>} in an
! array aggregate must raise @code{Constraint_Error} if @code{Indx}
! is out of range. The RM specified a range check on other associations, but
! not when the value of the association was defaulted. GNAT has always inserted
! a constraint check on the index value.
  
! RM References:  4.03.03 (29)
! @end itemize
  
! @geindex AI-0038 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0038 Minor errors in Text_IO (0000-00-00)'
  
! These are minor errors in the description on three points. The intent on
! all these points has always been clear, and GNAT has always implemented the
! correct intended semantics.
  
! RM References:  A.10.05 (37)   A.10.07 (8/1)   A.10.07 (10)   A.10.07 (12)   A.10.08 (10)   A.10.08 (24)
! @end itemize
  
! @geindex AI-0039 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0039 Stream attributes cannot be dynamic (0000-00-00)'
  
! The RM permitted the use of dynamic expressions (such as @code{ptr.all})
! for stream attributes, but these were never useful and are now illegal. GNAT
! has always regarded such expressions as illegal.
  
! RM References:  13.03 (4)   13.03 (6)   13.13.02 (38/2)
! @end itemize
  
! @geindex AI-0040 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0040 Limited with clauses on descendant (0000-00-00)'
  
! This AI confirms that a limited with clause in a child unit cannot name
! an ancestor of the unit. This has always been checked in GNAT.
  
! RM References:  10.01.02 (20/2)
! @end itemize
  
! @geindex AI-0042 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0042 Overriding versus implemented-by (0000-00-00)'
  
! This AI fixes a wording gap in the RM. An operation of a synchronized
! interface can be implemented by a protected or task entry, but the abstract
! operation is not being overridden in the usual sense, and it must be stated
! separately that this implementation is legal. This has always been the case
! in GNAT.
  
! RM References:  9.01 (9.2/2)   9.04 (11.1/2)
! @end itemize
  
! @geindex AI-0043 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0043 Rules about raising exceptions (0000-00-00)'
  
! This AI covers various omissions in the RM regarding the raising of
! exceptions. GNAT has always implemented the intended semantics.
  
! RM References:  11.04.01 (10.1/2)   11 (2)
! @end itemize
  
! @geindex AI-0044 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0044 Restrictions on container instantiations (0000-00-00)'
  
! This AI places restrictions on allowed instantiations of generic containers.
! These restrictions are not checked by the compiler, so there is nothing to
! change in the implementation. This affects only the RM documentation.
  
! RM References:  A.18 (4/2)   A.18.02 (231/2)   A.18.03 (145/2)   A.18.06 (56/2)   A.18.08 (66/2)   A.18.09 (79/2)   A.18.26 (5/2)   A.18.26 (9/2)
! @end itemize
  
! @geindex AI-0046 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0046 Null exclusion match for full conformance (2010-07-17)'
  
! For full conformance, in the case of access parameters, the null exclusion
! must match (either both or neither must have @code{not null}).
  
! RM References:  6.03.02 (18)
! @end itemize
  
! @geindex AI-0050 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0050 Raising Constraint_Error early for function call (0000-00-00)'
  
! The implementation permissions for raising @code{Constraint_Error} early on a function call
! when it was clear an exception would be raised were over-permissive and allowed
! mishandling of discriminants in some cases. GNAT did
! not take advantage of these incorrect permissions in any case.
  
! RM References:  6.05 (24/2)
! @end itemize
  
! @geindex AI-0056 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0056 Index on null string returns zero (0000-00-00)'
  
! The wording in the Ada 2005 RM implied an incompatible handling of the
! @code{Index} functions, resulting in raising an exception instead of
! returning zero in some situations.
! This was not intended and has been corrected.
! GNAT always returned zero, and is thus consistent with this AI.
  
! RM References:  A.04.03 (56.2/2)   A.04.03 (58.5/2)
! @end itemize
  
! @geindex AI-0058 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0058 Abnormal completion of an extended return (0000-00-00)'
  
! The RM had some incorrect wording implying wrong treatment of abnormal
! completion in an extended return. GNAT has always implemented the intended
! correct semantics as described by this AI.
  
! RM References:  6.05 (22/2)
! @end itemize
  
! @geindex AI-0060 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0060 Extended definition of remote access types (0000-00-00)'
  
! This AI extends the definition of remote access types to include access
! to limited, synchronized, protected or task class-wide interface types.
! GNAT already implemented this extension.
  
! RM References:  A (4)   E.02.02 (9/1)   E.02.02 (9.2/1)   E.02.02 (14/2)   E.02.02 (18)
! @end itemize
  
! @geindex AI-0062 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0062 Null exclusions and deferred constants (0000-00-00)'
  
! A full constant may have a null exclusion even if its associated deferred
! constant does not. GNAT has always allowed this.
  
! RM References:  7.04 (6/2)   7.04 (7.1/2)
! @end itemize
  
! @geindex AI-0064 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0064 Redundant finalization rule (0000-00-00)'
  
! This is an editorial change only. The intended behavior is already checked
! by an existing ACATS test, which GNAT has always executed correctly.
  
! RM References:  7.06.01 (17.1/1)
! @end itemize
  
! @geindex AI-0065 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0065 Remote access types and external streaming (0000-00-00)'
  
! This AI clarifies the fact that all remote access types support external
! streaming. This fixes an obvious oversight in the definition of the
! language, and GNAT always implemented the intended correct rules.
  
! RM References:  13.13.02 (52/2)
! @end itemize
  
! @geindex AI-0070 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0070 Elaboration of interface types (0000-00-00)'
  
! This is an editorial change only, there are no testable consequences short of
! checking for the absence of generated code for an interface declaration.
  
! RM References:  3.09.04 (18/2)
! @end itemize
  
! @geindex AI-0072 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0072 Task signalling using ‘Terminated (0000-00-00)'
  
! This AI clarifies that task signalling for reading @code{'Terminated} only
! occurs if the result is True. GNAT semantics has always been consistent with
! this notion of task signalling.
  
! RM References:  9.10 (6.1/1)
! @end itemize
  
! @geindex AI-0073 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0073 Functions returning abstract types (2010-07-10)'
  
! This AI covers a number of issues regarding returning abstract types. In
! particular generic functions cannot have abstract result types or access
! result types designated an abstract type. There are some other cases which
! are detailed in the AI. Note that this binding interpretation has not been
! retrofitted to operate before Ada 2012 mode, since it caused a significant
! number of regressions.
  
! RM References:  3.09.03 (8)   3.09.03 (10)   6.05 (8/2)
! @end itemize
  
! @geindex AI-0076 (Ada 2012 feature)
  
  
+ @itemize *
  
! @item 
! `AI-0076 function with controlling result (0000-00-00)'
  
! This is an editorial change only. The RM defines calls with controlling
! results, but uses the term ‘function with controlling result’ without an
! explicit definition.
  
! RM References:  3.09.02 (2/2)
! @end itemize
  
! @geindex AI-0077 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0077 Limited withs and scope of declarations (0000-00-00)'
  
! This AI clarifies that a declaration does not include a context clause,
! and confirms that it is illegal to have a context in which both a limited
! and a nonlimited view of a package are accessible. Such double visibility
! was always rejected by GNAT.
  
! RM References:  10.01.02 (12/2)   10.01.02 (21/2)   10.01.02 (22/2)
  @end itemize
  
! @geindex AI-0078 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0078 Relax Unchecked_Conversion alignment rules (0000-00-00)'
  
! In Ada 2012, compilers are required to support unchecked conversion where the
! target alignment is a multiple of the source alignment. GNAT always supported
! this case (and indeed all cases of differing alignments, doing copies where
! required if the alignment was reduced).
  
! RM References:  13.09 (7)
  @end itemize
  
! @geindex AI-0079 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0079 Allow other_format characters in source (2010-07-10)'
  
! Wide characters in the unicode category `other_format' are now allowed in
! source programs between tokens, but not within a token such as an identifier.
  
! RM References:  2.01 (4/2)   2.02 (7)
  @end itemize
  
! @geindex AI-0080 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0080 ‘View of’ not needed if clear from context (0000-00-00)'
  
! This is an editorial change only, described as non-testable in the AI.
  
! RM References:  3.01 (7)
  @end itemize
  
! @geindex AI-0087 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0087 Actual for formal nonlimited derived type (2010-07-15)'
  
! The actual for a formal nonlimited derived type cannot be limited. In
! particular, a formal derived type that extends a limited interface but which
! is not explicitly limited cannot be instantiated with a limited type.
  
! RM References:  7.05 (5/2)   12.05.01 (5.1/2)
  @end itemize
  
! @geindex AI-0088 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0088 The value of exponentiation (0000-00-00)'
  
! This AI clarifies the equivalence rule given for the dynamic semantics of
! exponentiation: the value of the operation can be obtained by repeated
! multiplication, but the operation can be implemented otherwise (for example
! using the familiar divide-by-two-and-square algorithm, even if this is less
! accurate), and does not imply repeated reads of a volatile base.
  
! RM References:  4.05.06 (11)
  @end itemize
  
! @geindex AI-0091 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0091 Do not allow other_format in identifiers (0000-00-00)'
  
! Wide characters in the unicode category `other_format' are not permitted
! within  an identifier, since this can be a security problem. The error
! message for this case has been improved to be more specific, but GNAT has
! never allowed such characters to appear in identifiers.
  
! RM References:  2.03 (3.1/2)   2.03 (4/2)   2.03 (5/2)   2.03 (5.1/2)   2.03 (5.2/2)   2.03 (5.3/2)   2.09 (2/2)
  @end itemize
  
! @geindex AI-0093 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0093 Additional rules use immutably limited (0000-00-00)'
  
! This is an editorial change only, to make more widespread use of the Ada 2012
! ‘immutably limited’.
  
! RM References:  3.03 (23.4/3)
  @end itemize
  
! @geindex AI-0095 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0095 Address of intrinsic subprograms (0000-00-00)'
  
! The prefix of @code{'Address} cannot statically denote a subprogram with
! convention @code{Intrinsic}. The use of the @code{Address} attribute raises
! @code{Program_Error} if the prefix denotes a subprogram with convention
! @code{Intrinsic}.
  
! RM References:  13.03 (11/1)
  @end itemize
  
! @geindex AI-0096 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0096 Deriving from formal private types (2010-07-20)'
  
! In general it is illegal for a type derived from a formal limited type to be
! nonlimited.  This AI makes an exception to this rule: derivation is legal
! if it appears in the private part of the generic, and the formal type is not
! tagged. If the type is tagged, the legality check must be applied to the
! private part of the package.
  
! RM References:  3.04 (5.1/2)   6.02 (7)
  @end itemize
  
! @geindex AI-0097 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0097 Treatment of abstract null extension (2010-07-19)'
  
! The RM as written implied that in some cases it was possible to create an
! object of an abstract type, by having an abstract extension inherit a non-
! abstract constructor from its parent type. This mistake has been corrected
! in GNAT and in the RM, and this construct is now illegal.
  
! RM References:  3.09.03 (4/2)
  @end itemize
  
! @geindex AI-0098 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0098 Anonymous subprogram access restrictions (0000-00-00)'
  
! An unintentional omission in the RM implied some inconsistent restrictions on
! the use of anonymous access to subprogram values. These restrictions were not
! intentional, and have never been enforced by GNAT.
  
! RM References:  3.10.01 (6)   3.10.01 (9.2/2)
  @end itemize
  
! @geindex AI-0099 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0099 Tag determines whether finalization needed (0000-00-00)'
  
! This AI clarifies that ‘needs finalization’ is part of dynamic semantics,
! and therefore depends on the run-time characteristics of an object (i.e. its
! tag) and not on its nominal type. As the AI indicates: “we do not expect
! this to affect any implementation”.
  
! RM References:  7.06.01 (6)   7.06.01 (7)   7.06.01 (8)   7.06.01 (9/2)
  @end itemize
  
! @geindex AI-0100 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0100 Placement of pragmas  (2010-07-01)'
  
! This AI is an earlier version of AI-163. It simplifies the rules
! for legal placement of pragmas. In the case of lists that allow pragmas, if
! the list may have no elements, then the list may consist solely of pragmas.
  
! RM References:  2.08 (7)
  @end itemize
  
! @geindex AI-0102 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0102 Some implicit conversions are illegal (0000-00-00)'
  
! It is illegal to assign an anonymous access constant to an anonymous access
! variable. The RM did not have a clear rule to prevent this, but GNAT has
! always generated an error for this usage.
  
! RM References:  3.07 (16)   3.07.01 (9)   6.04.01 (6)   8.06 (27/2)
  @end itemize
  
! @geindex AI-0103 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0103 Static matching for extended return (2010-07-23)'
  
! If the return subtype of a function is an elementary type or a constrained
! type, the subtype indication in an extended return statement must match
! statically this return subtype.
  
! RM References:  6.05 (5.2/2)
  @end itemize
  
! @geindex AI-0104 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0104 Null exclusion and uninitialized allocator (2010-07-15)'
  
! The assignment @code{Ptr := new not null Some_Ptr;} will raise
! @code{Constraint_Error} because the default value of the allocated object is
! `null'. This useless construct is illegal in Ada 2012.
  
! RM References:  4.08 (2)
  @end itemize
  
! @geindex AI-0106 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0106 No representation pragmas on generic formals (0000-00-00)'
  
! The RM appeared to allow representation pragmas on generic formal parameters,
! but this was not intended, and GNAT has never permitted this usage.
  
! RM References:  13.01 (9.1/1)
  @end itemize
  
! @geindex AI-0108 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0108 Limited incomplete view and discriminants (0000-00-00)'
  
! This AI confirms that an incomplete type from a limited view does not have
! discriminants. This has always been the case in GNAT.
  
! RM References:  10.01.01 (12.3/2)
  @end itemize
  
! @geindex AI-0109 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0109 Redundant check in S’Class’Input (0000-00-00)'
  
! This AI is an editorial change only. It removes the need for a tag check
! that can never fail.
  
! RM References:  13.13.02 (34/2)
  @end itemize
  
! @geindex AI-0112 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0112 Detection of duplicate pragmas (2010-07-24)'
  
! This AI concerns giving names to various representation aspects, but the
! practical effect is simply to make the use of duplicate
! @code{Atomic[_Components]},
! @code{Volatile[_Components]}, and
! @code{Independent[_Components]} pragmas illegal, and GNAT
! now performs this required check.
  
! RM References:  13.01 (8)
  @end itemize
  
! @geindex AI-0114 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0114 Classification of letters (0000-00-00)'
  
! The code points 170 (@code{FEMININE ORDINAL INDICATOR}),
! 181 (@code{MICRO SIGN}), and
! 186 (@code{MASCULINE ORDINAL INDICATOR}) are technically considered
! lower case letters by Unicode.
! However, they are not allowed in identifiers, and they
! return @code{False} to @code{Ada.Characters.Handling.Is_Letter/Is_Lower}.
! This behavior is consistent with that defined in Ada 95.
  
! RM References:  A.03.02 (59)   A.04.06 (7)
  @end itemize
  
! @geindex AI-0116 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0116 Alignment of class-wide objects (0000-00-00)'
  
! This AI requires that the alignment of a class-wide object be no greater
! than the alignment of any type in the class. GNAT has always followed this
! recommendation.
  
! RM References:  13.03 (29)   13.11 (16)
  @end itemize
  
! @geindex AI-0118 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0118 The association of parameter associations (0000-00-00)'
  
! This AI clarifies the rules for named associations in subprogram calls and
! generic instantiations. The rules have been in place since Ada 83.
  
! RM References:  6.04.01 (2)   12.03 (9)
  @end itemize
  
! @geindex AI-0120 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0120 Constant instance of protected object (0000-00-00)'
  
! This is an RM editorial change only. The section that lists objects that are
! constant failed to include the current instance of a protected object
! within a protected function. This has always been treated as a constant
! in GNAT.
  
! RM References:  3.03 (21)
  @end itemize
  
! @geindex AI-0122 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0122 Private with and children of generics (0000-00-00)'
  
! This AI clarifies the visibility of private children of generic units within
! instantiations of a parent. GNAT has always handled this correctly.
  
! RM References:  10.01.02 (12/2)
  @end itemize
  
  @geindex AI-0123 (Ada 2012 feature)
*************** RM References:  4.05.02 (9.7/2)   4.05.0
*** 27461,27560 ****
  8.05.04 (8)
  @end itemize
  
! @geindex AI-0088 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0088 The value of exponentiation (0000-00-00)'
  
! This AI clarifies the equivalence rule given for the dynamic semantics of
! exponentiation: the value of the operation can be obtained by repeated
! multiplication, but the operation can be implemented otherwise (for example
! using the familiar divide-by-two-and-square algorithm, even if this is less
! accurate), and does not imply repeated reads of a volatile base.
  
! RM References:  4.05.06 (11)
  @end itemize
  
! @geindex AI-0188 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0188 Case expressions (2010-01-09)'
! 
! Case expressions are permitted. This allows use of constructs such as:
  
! @example
! X := (case Y is when 1 => 2, when 2 => 3, when others => 31)
! @end example
  
! RM References:  4.05.07 (0)   4.05.08 (0)   4.09 (12)   4.09 (33)
  @end itemize
  
! @geindex AI-0104 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0104 Null exclusion and uninitialized allocator (2010-07-15)'
  
! The assignment @code{Ptr := new not null Some_Ptr;} will raise
! @code{Constraint_Error} because the default value of the allocated object is
! `null'. This useless construct is illegal in Ada 2012.
  
! RM References:  4.08 (2)
  @end itemize
  
! @geindex AI-0157 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0157 Allocation/Deallocation from empty pool (2010-07-11)'
  
! Allocation and Deallocation from an empty storage pool (i.e. allocation or
! deallocation of a pointer for which a static storage size clause of zero
! has been given) is now illegal and is detected as such. GNAT
! previously gave a warning but not an error.
  
! RM References:  4.08 (5.3/2)   13.11.02 (4)   13.11.02 (17)
  @end itemize
  
! @geindex AI-0179 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0179 Statement not required after label (2010-04-10)'
  
! It is not necessary to have a statement following a label, so a label
! can appear at the end of a statement sequence without the need for putting a
! null statement afterwards, but it is not allowable to have only labels and
! no real statements in a statement sequence.
  
! RM References:  5.01 (2)
  @end itemize
  
! @geindex AI-0139-2 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0139-2 Syntactic sugar for iterators (2010-09-29)'
  
! The new syntax for iterating over arrays and containers is now implemented.
! Iteration over containers is for now limited to read-only iterators. Only
! default iterators are supported, with the syntax:  @code{for Elem of C}.
  
! RM References:  5.05
  @end itemize
  
  @geindex AI-0134 (Ada 2012 feature)
--- 27951,28047 ----
  8.05.04 (8)
  @end itemize
  
! @geindex AI-0125 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0125 Nonoverridable operations of an ancestor (2010-09-28)'
  
! In Ada 2012, the declaration of a primitive operation of a type extension
! or private extension can also override an inherited primitive that is not
! visible at the point of this declaration.
  
! RM References:  7.03.01 (6)   8.03 (23)   8.03.01 (5/2)   8.03.01 (6/2)
  @end itemize
  
! @geindex AI-0126 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0126 Dispatching with no declared operation (0000-00-00)'
  
! This AI clarifies dispatching rules, and simply confirms that dispatching
! executes the operation of the parent type when there is no explicitly or
! implicitly declared operation for the descendant type. This has always been
! the case in all versions of GNAT.
  
! RM References:  3.09.02 (20/2)   3.09.02 (20.1/2)   3.09.02 (20.2/2)
  @end itemize
  
! @geindex AI-0127 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0127 Adding Locale Capabilities (2010-09-29)'
  
! This package provides an interface for identifying the current locale.
  
! RM References:  A.19    A.19.01    A.19.02    A.19.03    A.19.05    A.19.06
! A.19.07    A.19.08    A.19.09    A.19.10    A.19.11    A.19.12    A.19.13
  @end itemize
  
! @geindex AI-0128 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0128 Inequality is a primitive operation (0000-00-00)'
  
! If an equality operator (“=”) is declared for a type, then the implicitly
! declared inequality operator (“/=”) is a primitive operation of the type.
! This is the only reasonable interpretation, and is the one always implemented
! by GNAT, but the RM was not entirely clear in making this point.
  
! RM References:  3.02.03 (6)   6.06 (6)
  @end itemize
  
! @geindex AI-0129 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0129 Limited views and incomplete types (0000-00-00)'
  
! This AI clarifies the description of limited views: a limited view of a
! package includes only one view of a type that has an incomplete declaration
! and a full declaration (there is no possible ambiguity in a client package).
! This AI also fixes an omission: a nested package in the private part has no
! limited view. GNAT always implemented this correctly.
  
! RM References:  10.01.01 (12.2/2)   10.01.01 (12.3/2)
  @end itemize
  
! @geindex AI-0132 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0132 Placement of library unit pragmas (0000-00-00)'
  
! This AI fills a gap in the description of library unit pragmas. The pragma
! clearly must apply to a library unit, even if it does not carry the name
! of the enclosing unit. GNAT has always enforced the required check.
  
! RM References:  10.01.05 (7)
  @end itemize
  
  @geindex AI-0134 (Ada 2012 feature)
*************** parameters must match. GNAT has always e
*** 27571,28703 ****
  RM References:  6.03.01 (18)
  @end itemize
  
! @geindex AI-0207 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0207 Mode conformance and access constant (0000-00-00)'
  
! This AI confirms that access_to_constant indication must match for mode
! conformance. This was implemented in GNAT when the qualifier was originally
! introduced in Ada 2005.
  
! RM References:  6.03.01 (16/2)
  @end itemize
  
! @geindex AI-0046 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0046 Null exclusion match for full conformance (2010-07-17)'
  
! For full conformance, in the case of access parameters, the null exclusion
! must match (either both or neither must have @code{not null}).
  
! RM References:  6.03.02 (18)
  @end itemize
  
! @geindex AI-0118 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0118 The association of parameter associations (0000-00-00)'
  
! This AI clarifies the rules for named associations in subprogram calls and
! generic instantiations. The rules have been in place since Ada 83.
  
! RM References:  6.04.01 (2)   12.03 (9)
  @end itemize
  
! @geindex AI-0196 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0196 Null exclusion tests for out parameters (0000-00-00)'
  
! Null exclusion checks are not made for @code{out} parameters when
! evaluating the actual parameters. GNAT has never generated these checks.
  
! RM References:  6.04.01 (13)
  @end itemize
  
! @geindex AI-0015 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0015 Constant return objects (0000-00-00)'
  
! The return object declared in an `extended_return_statement' may be
! declared constant. This was always intended, and GNAT has always allowed it.
  
! RM References:  6.05 (2.1/2)   3.03 (10/2)   3.03 (21)   6.05 (5/2)
! 6.05 (5.7/2)
  @end itemize
  
! @geindex AI-0032 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0032 Extended return for class-wide functions (0000-00-00)'
  
! If a function returns a class-wide type, the object of an extended return
! statement can be declared with a specific type that is covered by the class-
! wide type. This has been implemented in GNAT since the introduction of
! extended returns. Note AI-0103 complements this AI by imposing matching
! rules for constrained return types.
  
! RM References:  6.05 (5.2/2)   6.05 (5.3/2)   6.05 (5.6/2)   6.05 (5.8/2)
! 6.05 (8/2)
  @end itemize
  
! @geindex AI-0103 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0103 Static matching for extended return (2010-07-23)'
  
! If the return subtype of a function is an elementary type or a constrained
! type, the subtype indication in an extended return statement must match
! statically this return subtype.
  
! RM References:  6.05 (5.2/2)
  @end itemize
  
! @geindex AI-0058 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0058 Abnormal completion of an extended return (0000-00-00)'
  
! The RM had some incorrect wording implying wrong treatment of abnormal
! completion in an extended return. GNAT has always implemented the intended
! correct semantics as described by this AI.
  
! RM References:  6.05 (22/2)
  @end itemize
  
! @geindex AI-0050 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0050 Raising Constraint_Error early for function call (0000-00-00)'
  
! The implementation permissions for raising @code{Constraint_Error} early on a function call
! when it was clear an exception would be raised were over-permissive and allowed
! mishandling of discriminants in some cases. GNAT did
! not take advantage of these incorrect permissions in any case.
  
! RM References:  6.05 (24/2)
  @end itemize
  
! @geindex AI-0125 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0125 Nonoverridable operations of an ancestor (2010-09-28)'
  
! In Ada 2012, the declaration of a primitive operation of a type extension
! or private extension can also override an inherited primitive that is not
! visible at the point of this declaration.
  
! RM References:  7.03.01 (6)   8.03 (23)   8.03.01 (5/2)   8.03.01 (6/2)
  @end itemize
  
! @geindex AI-0062 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0062 Null exclusions and deferred constants (0000-00-00)'
  
! A full constant may have a null exclusion even if its associated deferred
! constant does not. GNAT has always allowed this.
  
! RM References:  7.04 (6/2)   7.04 (7.1/2)
  @end itemize
  
! @geindex AI-0178 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0178 Incomplete views are limited (0000-00-00)'
  
! This AI clarifies the role of incomplete views and plugs an omission in the
! RM. GNAT always correctly restricted the use of incomplete views and types.
  
! RM References:  7.05 (3/2)   7.05 (6/2)
  @end itemize
  
! @geindex AI-0087 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0087 Actual for formal nonlimited derived type (2010-07-15)'
  
! The actual for a formal nonlimited derived type cannot be limited. In
! particular, a formal derived type that extends a limited interface but which
! is not explicitly limited cannot be instantiated with a limited type.
  
! RM References:  7.05 (5/2)   12.05.01 (5.1/2)
  @end itemize
  
! @geindex AI-0099 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0099 Tag determines whether finalization needed (0000-00-00)'
  
! This AI clarifies that ‘needs finalization’ is part of dynamic semantics,
! and therefore depends on the run-time characteristics of an object (i.e. its
! tag) and not on its nominal type. As the AI indicates: “we do not expect
! this to affect any implementation’’.
  
! RM References:  7.06.01 (6)   7.06.01 (7)   7.06.01 (8)   7.06.01 (9/2)
  @end itemize
  
! @geindex AI-0064 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0064 Redundant finalization rule (0000-00-00)'
  
! This is an editorial change only. The intended behavior is already checked
! by an existing ACATS test, which GNAT has always executed correctly.
  
! RM References:  7.06.01 (17.1/1)
  @end itemize
  
! @geindex AI-0026 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0026 Missing rules for Unchecked_Union (2010-07-07)'
  
! Record representation clauses concerning Unchecked_Union types cannot mention
! the discriminant of the type. The type of a component declared in the variant
! part of an Unchecked_Union cannot be controlled, have controlled components,
! nor have protected or task parts. If an Unchecked_Union type is declared
! within the body of a generic unit or its descendants, then the type of a
! component declared in the variant part cannot be a formal private type or a
! formal private extension declared within the same generic unit.
  
! RM References:  7.06 (9.4/2)   B.03.03 (9/2)   B.03.03 (10/2)
  @end itemize
  
! @geindex AI-0205 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0205 Extended return declares visible name (0000-00-00)'
  
! This AI corrects a simple omission in the RM. Return objects have always
! been visible within an extended return statement.
  
! RM References:  8.03 (17)
  @end itemize
  
! @geindex AI-0042 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0042 Overriding versus implemented-by (0000-00-00)'
  
! This AI fixes a wording gap in the RM. An operation of a synchronized
! interface can be implemented by a protected or task entry, but the abstract
! operation is not being overridden in the usual sense, and it must be stated
! separately that this implementation is legal. This has always been the case
! in GNAT.
  
! RM References:  9.01 (9.2/2)   9.04 (11.1/2)
  @end itemize
  
! @geindex AI-0030 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0030 Requeue on synchronized interfaces (2010-07-19)'
! 
! Requeue is permitted to a protected, synchronized or task interface primitive
! providing it is known that the overriding operation is an entry. Otherwise
! the requeue statement has the same effect as a procedure call. Use of pragma
! @code{Implemented} provides a way to impose a static requirement on the
! overriding operation by adhering to one of the implementation kinds: entry,
! protected procedure or any of the above.
  
! RM References:  9.05 (9)   9.05.04 (2)   9.05.04 (3)   9.05.04 (5)
! 9.05.04 (6)   9.05.04 (7)   9.05.04 (12)
  @end itemize
  
- @geindex AI-0201 (Ada 2012 feature)
- 
- 
- @itemize *
  
! @item 
! `AI-0201 Independence of atomic object components (2010-07-22)'
  
! If an Atomic object has a pragma @code{Pack} or a @code{Component_Size}
! attribute, then individual components may not be addressable by independent
! tasks. However, if the representation clause has no effect (is confirming),
! then independence is not compromised. Furthermore, in GNAT, specification of
! other appropriately addressable component sizes (e.g. 16 for 8-bit
! characters) also preserves independence. GNAT now gives very clear warnings
! both for the declaration of such a type, and for any assignment to its components.
  
! RM References:  9.10 (1/3)   C.06 (22/2)   C.06 (23/2)
! @end itemize
  
! @geindex AI-0009 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0009 Pragma Independent[_Components] (2010-07-23)'
  
! This AI introduces the new pragmas @code{Independent} and
! @code{Independent_Components},
! which control guaranteeing independence of access to objects and components.
! The AI also requires independence not unaffected by confirming rep clauses.
  
! RM References:  9.10 (1)   13.01 (15/1)   13.02 (9)   13.03 (13)   C.06 (2)
! C.06 (4)   C.06 (6)   C.06 (9)   C.06 (13)   C.06 (14)
! @end itemize
  
! @geindex AI-0072 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0072 Task signalling using ‘Terminated (0000-00-00)'
  
! This AI clarifies that task signalling for reading @code{'Terminated} only
! occurs if the result is True. GNAT semantics has always been consistent with
! this notion of task signalling.
  
! RM References:  9.10 (6.1/1)
! @end itemize
  
! @geindex AI-0108 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0108 Limited incomplete view and discriminants (0000-00-00)'
  
! This AI confirms that an incomplete type from a limited view does not have
! discriminants. This has always been the case in GNAT.
  
! RM References:  10.01.01 (12.3/2)
! @end itemize
  
! @geindex AI-0129 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0129 Limited views and incomplete types (0000-00-00)'
  
! This AI clarifies the description of limited views: a limited view of a
! package includes only one view of a type that has an incomplete declaration
! and a full declaration (there is no possible ambiguity in a client package).
! This AI also fixes an omission: a nested package in the private part has no
! limited view. GNAT always implemented this correctly.
  
! RM References:  10.01.01 (12.2/2)   10.01.01 (12.3/2)
! @end itemize
  
! @geindex AI-0077 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0077 Limited withs and scope of declarations (0000-00-00)'
  
! This AI clarifies that a declaration does not include a context clause,
! and confirms that it is illegal to have a context in which both a limited
! and a nonlimited view of a package are accessible. Such double visibility
! was always rejected by GNAT.
  
! RM References:  10.01.02 (12/2)   10.01.02 (21/2)   10.01.02 (22/2)
! @end itemize
  
! @geindex AI-0122 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0122 Private with and children of generics (0000-00-00)'
  
! This AI clarifies the visibility of private children of generic units within
! instantiations of a parent. GNAT has always handled this correctly.
  
! RM References:  10.01.02 (12/2)
! @end itemize
  
! @geindex AI-0040 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0040 Limited with clauses on descendant (0000-00-00)'
  
! This AI confirms that a limited with clause in a child unit cannot name
! an ancestor of the unit. This has always been checked in GNAT.
  
! RM References:  10.01.02 (20/2)
! @end itemize
  
! @geindex AI-0132 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0132 Placement of library unit pragmas (0000-00-00)'
  
! This AI fills a gap in the description of library unit pragmas. The pragma
! clearly must apply to a library unit, even if it does not carry the name
! of the enclosing unit. GNAT has always enforced the required check.
  
! RM References:  10.01.05 (7)
! @end itemize
  
! @geindex AI-0034 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0034 Categorization of limited views (0000-00-00)'
  
! The RM makes certain limited with clauses illegal because of categorization
! considerations, when the corresponding normal with would be legal. This is
! not intended, and GNAT has always implemented the recommended behavior.
  
! RM References:  10.02.01 (11/1)   10.02.01 (17/2)
! @end itemize
  
! @geindex AI-0035 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0035 Inconsistencies with Pure units (0000-00-00)'
  
! This AI remedies some inconsistencies in the legality rules for Pure units.
! Derived access types are legal in a pure unit (on the assumption that the
! rule for a zero storage pool size has been enforced on the ancestor type).
! The rules are enforced in generic instances and in subunits. GNAT has always
! implemented the recommended behavior.
  
! RM References:  10.02.01 (15.1/2)   10.02.01 (15.4/2)   10.02.01 (15.5/2)   10.02.01 (17/2)
! @end itemize
  
! @geindex AI-0219 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0219 Pure permissions and limited parameters (2010-05-25)'
  
! This AI refines the rules for the cases with limited parameters which do not
! allow the implementations to omit ‘redundant’. GNAT now properly conforms
! to the requirements of this binding interpretation.
  
! RM References:  10.02.01 (18/2)
! @end itemize
  
! @geindex AI-0043 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0043 Rules about raising exceptions (0000-00-00)'
  
! This AI covers various omissions in the RM regarding the raising of
! exceptions. GNAT has always implemented the intended semantics.
  
! RM References:  11.04.01 (10.1/2)   11 (2)
! @end itemize
  
! @geindex AI-0200 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0200 Mismatches in formal package declarations (0000-00-00)'
  
! This AI plugs a gap in the RM which appeared to allow some obviously intended
! illegal instantiations. GNAT has never allowed these instantiations.
  
! RM References:  12.07 (16)
! @end itemize
  
! @geindex AI-0112 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0112 Detection of duplicate pragmas (2010-07-24)'
  
! This AI concerns giving names to various representation aspects, but the
! practical effect is simply to make the use of duplicate
! @code{Atomic[_Components]},
! @code{Volatile[_Components]}, and
! @code{Independent[_Components]} pragmas illegal, and GNAT
! now performs this required check.
  
! RM References:  13.01 (8)
! @end itemize
  
! @geindex AI-0106 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0106 No representation pragmas on generic formals (0000-00-00)'
  
! The RM appeared to allow representation pragmas on generic formal parameters,
! but this was not intended, and GNAT has never permitted this usage.
  
! RM References:  13.01 (9.1/1)
! @end itemize
  
! @geindex AI-0012 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0012 Pack/Component_Size for aliased/atomic (2010-07-15)'
  
! It is now illegal to give an inappropriate component size or a pragma
! @code{Pack} that attempts to change the component size in the case of atomic
! or aliased components. Previously GNAT ignored such an attempt with a
! warning.
  
! RM References:  13.02 (6.1/2)   13.02 (7)   C.06 (10)   C.06 (11)   C.06 (21)
! @end itemize
  
! @geindex AI-0039 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0039 Stream attributes cannot be dynamic (0000-00-00)'
  
! The RM permitted the use of dynamic expressions (such as @code{ptr.all})`
! for stream attributes, but these were never useful and are now illegal. GNAT
! has always regarded such expressions as illegal.
  
! RM References:  13.03 (4)   13.03 (6)   13.13.02 (38/2)
! @end itemize
  
! @geindex AI-0095 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0095 Address of intrinsic subprograms (0000-00-00)'
  
! The prefix of @code{'Address} cannot statically denote a subprogram with
! convention @code{Intrinsic}. The use of the @code{Address} attribute raises
! @code{Program_Error} if the prefix denotes a subprogram with convention
! @code{Intrinsic}.
  
! RM References:  13.03 (11/1)
! @end itemize
  
! @geindex AI-0116 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0116 Alignment of class-wide objects (0000-00-00)'
  
! This AI requires that the alignment of a class-wide object be no greater
! than the alignment of any type in the class. GNAT has always followed this
! recommendation.
  
! RM References:  13.03 (29)   13.11 (16)
! @end itemize
  
! @geindex AI-0146 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0146 Type invariants (2009-09-21)'
  
! Type invariants may be specified for private types using the aspect notation.
! Aspect @code{Type_Invariant} may be specified for any private type,
! @code{Type_Invariant'Class} can
! only be specified for tagged types, and is inherited by any descendent of the
! tagged types. The invariant is a boolean expression that is tested for being
! true in the following situations: conversions to the private type, object
! declarations for the private type that are default initialized, and
! [`in'] `out'
! parameters and returned result on return from any primitive operation for
! the type that is visible to a client.
! GNAT defines the synonyms @code{Invariant} for @code{Type_Invariant} and
! @code{Invariant'Class} for @code{Type_Invariant'Class}.
  
! RM References:  13.03.03 (00)
! @end itemize
  
! @geindex AI-0078 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0078 Relax Unchecked_Conversion alignment rules (0000-00-00)'
  
! In Ada 2012, compilers are required to support unchecked conversion where the
! target alignment is a multiple of the source alignment. GNAT always supported
! this case (and indeed all cases of differing alignments, doing copies where
! required if the alignment was reduced).
  
! RM References:  13.09 (7)
! @end itemize
  
! @geindex AI-0195 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0195 Invalid value handling is implementation defined (2010-07-03)'
  
! The handling of invalid values is now designated to be implementation
! defined. This is a documentation change only, requiring Annex M in the GNAT
! Reference Manual to document this handling.
! In GNAT, checks for invalid values are made
! only when necessary to avoid erroneous behavior. Operations like assignments
! which cannot cause erroneous behavior ignore the possibility of invalid
! values and do not do a check. The date given above applies only to the
! documentation change, this behavior has always been implemented by GNAT.
  
! RM References:  13.09.01 (10)
! @end itemize
  
! @geindex AI-0193 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0193 Alignment of allocators (2010-09-16)'
  
! This AI introduces a new attribute @code{Max_Alignment_For_Allocation},
! analogous to @code{Max_Size_In_Storage_Elements}, but for alignment instead
! of size.
  
! RM References:  13.11 (16)   13.11 (21)   13.11.01 (0)   13.11.01 (1)
! 13.11.01 (2)   13.11.01 (3)
! @end itemize
  
! @geindex AI-0177 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0177 Parameterized expressions (2010-07-10)'
  
! The new Ada 2012 notion of parameterized expressions is implemented. The form
! is:
  
! @example
! function-specification is (expression)
! @end example
  
! This is exactly equivalent to the
! corresponding function body that returns the expression, but it can appear
! in a package spec. Note that the expression must be parenthesized.
  
! RM References:  13.11.01 (3/2)
! @end itemize
  
! @geindex AI-0033 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0033 Attach/Interrupt_Handler in generic (2010-07-24)'
  
! Neither of these two pragmas may appear within a generic template, because
! the generic might be instantiated at other than the library level.
  
! RM References:  13.11.02 (16)   C.03.01 (7/2)   C.03.01 (8/2)
! @end itemize
  
! @geindex AI-0161 (Ada 2012 feature)
  
  
! @itemize *
  
! @item 
! `AI-0161 Restriction No_Default_Stream_Attributes (2010-09-11)'
  
! A new restriction @code{No_Default_Stream_Attributes} prevents the use of any
! of the default stream attributes for elementary types. If this restriction is
! in force, then it is necessary to provide explicit subprograms for any
! stream attributes used.
  
! RM References:  13.12.01 (4/2)   13.13.02 (40/2)   13.13.02 (52/2)
! @end itemize
  
! @geindex AI-0194 (Ada 2012 feature)
  
  
- @itemize *
  
! @item 
! `AI-0194 Value of Stream_Size attribute (0000-00-00)'
  
! The @code{Stream_Size} attribute returns the default number of bits in the
! stream representation of the given type.
! This value is not affected by the presence
! of stream subprogram attributes for the type. GNAT has always implemented
! this interpretation.
  
! RM References:  13.13.02 (1.2/2)
! @end itemize
  
! @geindex AI-0109 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0109 Redundant check in S’Class’Input (0000-00-00)'
  
! This AI is an editorial change only. It removes the need for a tag check
! that can never fail.
  
! RM References:  13.13.02 (34/2)
  @end itemize
  
! @geindex AI-0007 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0007 Stream read and private scalar types (0000-00-00)'
  
! The RM as written appeared to limit the possibilities of declaring read
! attribute procedures for private scalar types. This limitation was not
! intended, and has never been enforced by GNAT.
  
! RM References:  13.13.02 (50/2)   13.13.02 (51/2)
  @end itemize
  
! @geindex AI-0065 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0065 Remote access types and external streaming (0000-00-00)'
  
! This AI clarifies the fact that all remote access types support external
! streaming. This fixes an obvious oversight in the definition of the
! language, and GNAT always implemented the intended correct rules.
  
! RM References:  13.13.02 (52/2)
  @end itemize
  
! @geindex AI-0019 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0019 Freezing of primitives for tagged types (0000-00-00)'
  
! The RM suggests that primitive subprograms of a specific tagged type are
! frozen when the tagged type is frozen. This would be an incompatible change
! and is not intended. GNAT has never attempted this kind of freezing and its
! behavior is consistent with the recommendation of this AI.
  
! RM References:  13.14 (2)   13.14 (3/1)   13.14 (8.1/1)   13.14 (10)   13.14 (14)   13.14 (15.1/2)
  @end itemize
  
! @geindex AI-0017 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0017 Freezing and incomplete types (0000-00-00)'
  
! So-called ‘Taft-amendment types’ (i.e., types that are completed in package
! bodies) are not frozen by the occurrence of bodies in the
! enclosing declarative part. GNAT always implemented this properly.
  
! RM References:  13.14 (3/1)
  @end itemize
  
! @geindex AI-0060 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0060 Extended definition of remote access types (0000-00-00)'
  
! This AI extends the definition of remote access types to include access
! to limited, synchronized, protected or task class-wide interface types.
! GNAT already implemented this extension.
  
! RM References:  A (4)   E.02.02 (9/1)   E.02.02 (9.2/1)   E.02.02 (14/2)   E.02.02 (18)
  @end itemize
  
! @geindex AI-0114 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0114 Classification of letters (0000-00-00)'
  
! The code points 170 (@code{FEMININE ORDINAL INDICATOR}),
! 181 (@code{MICRO SIGN}), and
! 186 (@code{MASCULINE ORDINAL INDICATOR}) are technically considered
! lower case letters by Unicode.
! However, they are not allowed in identifiers, and they
! return @code{False} to @code{Ada.Characters.Handling.Is_Letter/Is_Lower}.
! This behavior is consistent with that defined in Ada 95.
  
! RM References:  A.03.02 (59)   A.04.06 (7)
  @end itemize
  
! @geindex AI-0185 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0185 Ada.Wide_[Wide_]Characters.Handling (2010-07-06)'
  
! Two new packages @code{Ada.Wide_[Wide_]Characters.Handling} provide
! classification functions for @code{Wide_Character} and
! @code{Wide_Wide_Character}, as well as providing
! case folding routines for @code{Wide_[Wide_]Character} and
! @code{Wide_[Wide_]String}.
  
! RM References:  A.03.05 (0)   A.03.06 (0)
  @end itemize
  
! @geindex AI-0031 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0031 Add From parameter to Find_Token (2010-07-25)'
  
! A new version of @code{Find_Token} is added to all relevant string packages,
! with an extra parameter @code{From}. Instead of starting at the first
! character of the string, the search for a matching Token starts at the
! character indexed by the value of @code{From}.
! These procedures are available in all versions of Ada
! but if used in versions earlier than Ada 2012 they will generate a warning
! that an Ada 2012 subprogram is being used.
  
! RM References:  A.04.03 (16)   A.04.03 (67)   A.04.03 (68/1)   A.04.04 (51)
! A.04.05 (46)
  @end itemize
  
! @geindex AI-0056 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0056 Index on null string returns zero (0000-00-00)'
  
! The wording in the Ada 2005 RM implied an incompatible handling of the
! @code{Index} functions, resulting in raising an exception instead of
! returning zero in some situations.
! This was not intended and has been corrected.
! GNAT always returned zero, and is thus consistent with this AI.
  
! RM References:  A.04.03 (56.2/2)   A.04.03 (58.5/2)
  @end itemize
  
! @geindex AI-0137 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0137 String encoding package (2010-03-25)'
  
! The packages @code{Ada.Strings.UTF_Encoding}, together with its child
! packages, @code{Conversions}, @code{Strings}, @code{Wide_Strings},
! and @code{Wide_Wide_Strings} have been
! implemented. These packages (whose documentation can be found in the spec
! files @code{a-stuten.ads}, @code{a-suenco.ads}, @code{a-suenst.ads},
! @code{a-suewst.ads}, @code{a-suezst.ads}) allow encoding and decoding of
! @code{String}, @code{Wide_String}, and @code{Wide_Wide_String}
! values using UTF coding schemes (including UTF-8, UTF-16LE, UTF-16BE, and
! UTF-16), as well as conversions between the different UTF encodings. With
! the exception of @code{Wide_Wide_Strings}, these packages are available in
! Ada 95 and Ada 2005 mode as well as Ada 2012 mode.
! The @code{Wide_Wide_Strings} package
! is available in Ada 2005 mode as well as Ada 2012 mode (but not in Ada 95
! mode since it uses @code{Wide_Wide_Character}).
  
! RM References:  A.04.11
  @end itemize
  
! @geindex AI-0038 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0038 Minor errors in Text_IO (0000-00-00)'
  
! These are minor errors in the description on three points. The intent on
! all these points has always been clear, and GNAT has always implemented the
! correct intended semantics.
  
! RM References:  A.10.05 (37)   A.10.07 (8/1)   A.10.07 (10)   A.10.07 (12)   A.10.08 (10)   A.10.08 (24)
  @end itemize
  
! @geindex AI-0044 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0044 Restrictions on container instantiations (0000-00-00)'
  
! This AI places restrictions on allowed instantiations of generic containers.
! These restrictions are not checked by the compiler, so there is nothing to
! change in the implementation. This affects only the RM documentation.
  
! RM References:  A.18 (4/2)   A.18.02 (231/2)   A.18.03 (145/2)   A.18.06 (56/2)   A.18.08 (66/2)   A.18.09 (79/2)   A.18.26 (5/2)   A.18.26 (9/2)
  @end itemize
  
! @geindex AI-0127 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0127 Adding Locale Capabilities (2010-09-29)'
  
! This package provides an interface for identifying the current locale.
  
! RM References:  A.19    A.19.01    A.19.02    A.19.03    A.19.05    A.19.06
! A.19.07    A.19.08    A.19.09    A.19.10    A.19.11    A.19.12    A.19.13
  @end itemize
  
! @geindex AI-0002 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0002 Export C with unconstrained arrays (0000-00-00)'
  
! The compiler is not required to support exporting an Ada subprogram with
! convention C if there are parameters or a return type of an unconstrained
! array type (such as @code{String}). GNAT allows such declarations but
! generates warnings. It is possible, but complicated, to write the
! corresponding C code and certainly such code would be specific to GNAT and
! non-portable.
  
! RM References:  B.01 (17)   B.03 (62)   B.03 (71.1/2)
  @end itemize
  
! @geindex AI05-0216 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0216 No_Task_Hierarchy forbids local tasks (0000-00-00)'
  
! It is clearly the intention that @code{No_Task_Hierarchy} is intended to
! forbid tasks declared locally within subprograms, or functions returning task
! objects, and that is the implementation that GNAT has always provided.
! However the language in the RM was not sufficiently clear on this point.
! Thus this is a documentation change in the RM only.
  
! RM References:  D.07 (3/3)
  @end itemize
  
! @geindex AI-0211 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0211 No_Relative_Delays forbids Set_Handler use (2010-07-09)'
  
! The restriction @code{No_Relative_Delays} forbids any calls to the subprogram
! @code{Ada.Real_Time.Timing_Events.Set_Handler}.
  
! RM References:  D.07 (5)   D.07 (10/2)   D.07 (10.4/2)   D.07 (10.7/2)
  @end itemize
  
! @geindex AI-0190 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0190 pragma Default_Storage_Pool (2010-09-15)'
  
! This AI introduces a new pragma @code{Default_Storage_Pool}, which can be
! used to control storage pools globally.
! In particular, you can force every access
! type that is used for allocation (`new') to have an explicit storage pool,
! or you can declare a pool globally to be used for all access types that lack
! an explicit one.
  
! RM References:  D.07 (8)
  @end itemize
  
! @geindex AI-0189 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0189 No_Allocators_After_Elaboration (2010-01-23)'
  
! This AI introduces a new restriction @code{No_Allocators_After_Elaboration},
! which says that no dynamic allocation will occur once elaboration is
! completed.
! In general this requires a run-time check, which is not required, and which
! GNAT does not attempt. But the static cases of allocators in a task body or
! in the body of the main program are detected and flagged at compile or bind
! time.
  
! RM References:  D.07 (19.1/2)   H.04 (23.3/2)
  @end itemize
  
! @geindex AI-0171 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0171 Pragma CPU and Ravenscar Profile (2010-09-24)'
  
! A new package @code{System.Multiprocessors} is added, together with the
! definition of pragma @code{CPU} for controlling task affinity. A new no
! dependence restriction, on @code{System.Multiprocessors.Dispatching_Domains},
! is added to the Ravenscar profile.
  
! RM References:  D.13.01 (4/2)   D.16
  @end itemize
  
! @geindex AI-0210 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0210 Correct Timing_Events metric (0000-00-00)'
  
! This is a documentation only issue regarding wording of metric requirements,
! that does not affect the implementation of the compiler.
  
! RM References:  D.15 (24/2)
  @end itemize
  
! @geindex AI-0206 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0206 Remote types packages and preelaborate (2010-07-24)'
  
! Remote types packages are now allowed to depend on preelaborated packages.
! This was formerly considered illegal.
  
! RM References:  E.02.02 (6)
  @end itemize
  
! @geindex AI-0152 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0152 Restriction No_Anonymous_Allocators (2010-09-08)'
  
! Restriction @code{No_Anonymous_Allocators} prevents the use of allocators
! where the type of the returned value is an anonymous access type.
  
! RM References:  H.04 (8/1)
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{43c}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{43d}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{43e}
  @chapter GNAT language extensions
  
  
--- 28058,29100 ----
  RM References:  6.03.01 (18)
  @end itemize
  
! @geindex AI-0137 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0137 String encoding package (2010-03-25)'
  
! The packages @code{Ada.Strings.UTF_Encoding}, together with its child
! packages, @code{Conversions}, @code{Strings}, @code{Wide_Strings},
! and @code{Wide_Wide_Strings} have been
! implemented. These packages (whose documentation can be found in the spec
! files @code{a-stuten.ads}, @code{a-suenco.ads}, @code{a-suenst.ads},
! @code{a-suewst.ads}, @code{a-suezst.ads}) allow encoding and decoding of
! @code{String}, @code{Wide_String}, and @code{Wide_Wide_String}
! values using UTF coding schemes (including UTF-8, UTF-16LE, UTF-16BE, and
! UTF-16), as well as conversions between the different UTF encodings. With
! the exception of @code{Wide_Wide_Strings}, these packages are available in
! Ada 95 and Ada 2005 mode as well as Ada 2012 mode.
! The @code{Wide_Wide_Strings} package
! is available in Ada 2005 mode as well as Ada 2012 mode (but not in Ada 95
! mode since it uses @code{Wide_Wide_Character}).
  
! RM References:  A.04.11
  @end itemize
  
! @geindex AI-0139-2 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0139-2 Syntactic sugar for iterators (2010-09-29)'
  
! The new syntax for iterating over arrays and containers is now implemented.
! Iteration over containers is for now limited to read-only iterators. Only
! default iterators are supported, with the syntax: @code{for Elem of C}.
  
! RM References:  5.05
  @end itemize
  
! @geindex AI-0146 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0146 Type invariants (2009-09-21)'
  
! Type invariants may be specified for private types using the aspect notation.
! Aspect @code{Type_Invariant} may be specified for any private type,
! @code{Type_Invariant'Class} can
! only be specified for tagged types, and is inherited by any descendent of the
! tagged types. The invariant is a boolean expression that is tested for being
! true in the following situations: conversions to the private type, object
! declarations for the private type that are default initialized, and
! [`in'] `out'
! parameters and returned result on return from any primitive operation for
! the type that is visible to a client.
! GNAT defines the synonyms @code{Invariant} for @code{Type_Invariant} and
! @code{Invariant'Class} for @code{Type_Invariant'Class}.
  
! RM References:  13.03.03 (00)
  @end itemize
  
! @geindex AI-0147 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0147 Conditional expressions (2009-03-29)'
  
! Conditional expressions are permitted. The form of such an expression is:
  
! @example
! (if expr then expr @{elsif expr then expr@} [else expr])
! @end example
! 
! The parentheses can be omitted in contexts where parentheses are present
! anyway, such as subprogram arguments and pragma arguments. If the `else'
! clause is omitted, `else' `True' is assumed;
! thus @code{(if A then B)} is a way to conveniently represent
! `(A implies B)' in standard logic.
! 
! RM References:  4.03.03 (15)   4.04 (1)   4.04 (7)   4.05.07 (0)   4.07 (2)
! 4.07 (3)   4.09 (12)   4.09 (33)   5.03 (3)   5.03 (4)   7.05 (2.1/2)
  @end itemize
  
! @geindex AI-0152 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0152 Restriction No_Anonymous_Allocators (2010-09-08)'
  
! Restriction @code{No_Anonymous_Allocators} prevents the use of allocators
! where the type of the returned value is an anonymous access type.
  
! RM References:  H.04 (8/1)
  @end itemize
  
! @geindex AI-0157 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0157 Allocation/Deallocation from empty pool (2010-07-11)'
  
! Allocation and Deallocation from an empty storage pool (i.e. allocation or
! deallocation of a pointer for which a static storage size clause of zero
! has been given) is now illegal and is detected as such. GNAT
! previously gave a warning but not an error.
  
! RM References:  4.08 (5.3/2)   13.11.02 (4)   13.11.02 (17)
  @end itemize
  
! @geindex AI-0158 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0158 Generalizing membership tests (2010-09-16)'
  
! This AI extends the syntax of membership tests to simplify complex conditions
! that can be expressed as membership in a subset of values of any type. It
! introduces syntax for a list of expressions that may be used in loop contexts
! as well.
  
! RM References:  3.08.01 (5)   4.04 (3)   4.05.02 (3)   4.05.02 (5)   4.05.02 (27)
  @end itemize
  
! @geindex AI-0161 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0161 Restriction No_Default_Stream_Attributes (2010-09-11)'
  
! A new restriction @code{No_Default_Stream_Attributes} prevents the use of any
! of the default stream attributes for elementary types. If this restriction is
! in force, then it is necessary to provide explicit subprograms for any
! stream attributes used.
  
! RM References:  13.12.01 (4/2)   13.13.02 (40/2)   13.13.02 (52/2)
  @end itemize
  
! @geindex AI-0162 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0162 Incomplete type completed by partial view (2010-09-15)'
  
! Incomplete types are made more useful by allowing them to be completed by
! private types and private extensions.
  
! RM References:  3.10.01 (2.5/2)   3.10.01 (2.6/2)   3.10.01 (3)   3.10.01 (4/2)
  @end itemize
  
! @geindex AI-0163 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0163 Pragmas in place of null (2010-07-01)'
  
! A statement sequence may be composed entirely of pragmas. It is no longer
! necessary to add a dummy @code{null} statement to make the sequence legal.
  
! RM References:  2.08 (7)   2.08 (16)
  @end itemize
  
! @geindex AI-0171 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0171 Pragma CPU and Ravenscar Profile (2010-09-24)'
  
! A new package @code{System.Multiprocessors} is added, together with the
! definition of pragma @code{CPU} for controlling task affinity. A new no
! dependence restriction, on @code{System.Multiprocessors.Dispatching_Domains},
! is added to the Ravenscar profile.
  
! RM References:  D.13.01 (4/2)   D.16
  @end itemize
  
! @geindex AI-0173 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0173 Testing if tags represent abstract types (2010-07-03)'
  
! The function @code{Ada.Tags.Type_Is_Abstract} returns @code{True} if invoked
! with the tag of an abstract type, and @code{False} otherwise.
  
! RM References:  3.09 (7.4/2)   3.09 (12.4/2)
  @end itemize
  
! @geindex AI-0176 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0176 Quantified expressions (2010-09-29)'
  
! Both universally and existentially quantified expressions are implemented.
! They use the new syntax for iterators proposed in AI05-139-2, as well as
! the standard Ada loop syntax.
  
! RM References:  1.01.04 (12)   2.09 (2/2)   4.04 (7)   4.05.09 (0)
  @end itemize
  
! @geindex AI-0177 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0177 Parameterized expressions (2010-07-10)'
  
! The new Ada 2012 notion of parameterized expressions is implemented. The form
! is:
  
! @example
! function-specification is (expression)
! @end example
! 
! This is exactly equivalent to the
! corresponding function body that returns the expression, but it can appear
! in a package spec. Note that the expression must be parenthesized.
! 
! RM References:  13.11.01 (3/2)
  @end itemize
  
! @geindex AI-0178 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0178 Incomplete views are limited (0000-00-00)'
  
! This AI clarifies the role of incomplete views and plugs an omission in the
! RM. GNAT always correctly restricted the use of incomplete views and types.
  
! RM References:  7.05 (3/2)   7.05 (6/2)
  @end itemize
  
! @geindex AI-0179 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0179 Statement not required after label (2010-04-10)'
  
! It is not necessary to have a statement following a label, so a label
! can appear at the end of a statement sequence without the need for putting a
! null statement afterwards, but it is not allowable to have only labels and
! no real statements in a statement sequence.
  
! RM References:  5.01 (2)
  @end itemize
  
! @geindex AI-0181 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0181 Soft hyphen is a non-graphic character (2010-07-23)'
  
! From Ada 2005 on, soft hyphen is considered a non-graphic character, which
! means that it has a special name (@code{SOFT_HYPHEN}) in conjunction with the
! @code{Image} and @code{Value} attributes for the character types. Strictly
! speaking this is an inconsistency with Ada 95, but in practice the use of
! these attributes is so obscure that it will not cause problems.
  
! RM References:  3.05.02 (2/2)   A.01 (35/2)   A.03.03 (21)
  @end itemize
  
! @geindex AI-0182 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0182 Additional forms for' @code{Character'Value} `(0000-00-00)'
  
! This AI allows @code{Character'Value} to accept the string @code{'?'} where
! @code{?} is any character including non-graphic control characters. GNAT has
! always accepted such strings. It also allows strings such as
! @code{HEX_00000041} to be accepted, but GNAT does not take advantage of this
! permission and raises @code{Constraint_Error}, as is certainly still
! permitted.
  
! RM References:  3.05 (56/2)
  @end itemize
  
! @geindex AI-0183 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0183 Aspect specifications (2010-08-16)'
  
! Aspect specifications have been fully implemented except for pre and post-
! conditions, and type invariants, which have their own separate AI’s. All
! forms of declarations listed in the AI are supported. The following is a
! list of the aspects supported (with GNAT implementation aspects marked)
  @end itemize
  
  
! @multitable {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxx} 
! @headitem
  
! Supported Aspect
  
! @tab
  
! Source
  
+ @item
  
! @code{Ada_2005}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Ada_2012}
  
+ @tab
  
! – GNAT
  
! @item
  
! @code{Address}
  
! @tab
  
! @item
  
+ @code{Alignment}
  
! @tab
  
! @item
  
! @code{Atomic}
  
! @tab
  
! @item
  
+ @code{Atomic_Components}
  
! @tab
  
! @item
  
! @code{Bit_Order}
  
! @tab
  
! @item
  
+ @code{Component_Size}
  
! @tab
  
! @item
  
! @code{Contract_Cases}
  
! @tab
  
! – GNAT
  
+ @item
  
! @code{Discard_Names}
  
! @tab
  
! @item
  
! @code{External_Tag}
  
! @tab
  
+ @item
  
! @code{Favor_Top_Level}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Inline}
  
+ @tab
  
! @item
  
! @code{Inline_Always}
  
! @tab
  
! – GNAT
  
! @item
  
+ @code{Invariant}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Machine_Radix}
  
! @tab
  
+ @item
  
! @code{No_Return}
  
! @tab
  
! @item
  
! @code{Object_Size}
  
! @tab
  
+ – GNAT
  
! @item
  
! @code{Pack}
  
! @tab
  
! @item
  
! @code{Persistent_BSS}
  
+ @tab
  
! – GNAT
  
! @item
  
! @code{Post}
  
! @tab
  
! @item
  
+ @code{Pre}
  
! @tab
  
! @item
  
! @code{Predicate}
  
! @tab
  
! @item
  
+ @code{Preelaborable_Initialization}
  
! @tab
  
! @item
  
! @code{Pure_Function}
  
! @tab
  
! – GNAT
  
+ @item
  
! @code{Remote_Access_Type}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Shared}
  
+ @tab
  
! – GNAT
  
! @item
  
! @code{Size}
  
! @tab
  
! @item
  
+ @code{Storage_Pool}
  
! @tab
  
! @item
  
! @code{Storage_Size}
  
! @tab
  
! @item
  
+ @code{Stream_Size}
  
! @tab
  
! @item
  
! @code{Suppress}
  
! @tab
  
! @item
  
+ @code{Suppress_Debug_Info}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Test_Case}
  
! @tab
  
+ – GNAT
  
! @item
  
! @code{Thread_Local_Storage}
  
! @tab
  
! – GNAT
  
! @item
  
+ @code{Type_Invariant}
  
! @tab
  
! @item
  
! @code{Unchecked_Union}
  
! @tab
  
! @item
  
+ @code{Universal_Aliasing}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Unmodified}
  
! @tab
  
+ – GNAT
  
! @item
  
! @code{Unreferenced}
  
! @tab
  
! – GNAT
  
! @item
  
+ @code{Unreferenced_Objects}
  
! @tab
  
! – GNAT
  
! @item
  
! @code{Unsuppress}
  
! @tab
  
! @item
  
! @code{Value_Size}
  
+ @tab
  
! – GNAT
  
! @item
  
! @code{Volatile}
  
! @tab
  
! @item
  
+ @code{Volatile_Components}
  
! @tab
  
! @item
  
! @code{Warnings}
  
! @tab
  
! – GNAT
  
+ @end multitable
  
  
! @quotation
  
! Note that for aspects with an expression, e.g. @code{Size}, the expression is
! treated like a default expression (visibility is analyzed at the point of
! occurrence of the aspect, but evaluation of the expression occurs at the
! freeze point of the entity involved).
  
! RM References:  3.02.01 (3)   3.02.02 (2)   3.03.01 (2/2)   3.08 (6)
! 3.09.03 (1.1/2)   6.01 (2/2)   6.07 (2/2)   9.05.02 (2/2)   7.01 (3)   7.03
! (2)   7.03 (3)   9.01 (2/2)   9.01 (3/2)   9.04 (2/2)   9.04 (3/2)
! 9.05.02 (2/2)   11.01 (2)   12.01 (3)   12.03 (2/2)   12.04 (2/2)   12.05 (2)
! 12.06 (2.1/2)   12.06 (2.2/2)   12.07 (2)   13.01 (0.1/2)   13.03 (5/1)
! 13.03.01 (0)
! @end quotation
  
! @geindex AI-0185 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0185 Ada.Wide_[Wide_]Characters.Handling (2010-07-06)'
  
! Two new packages @code{Ada.Wide_[Wide_]Characters.Handling} provide
! classification functions for @code{Wide_Character} and
! @code{Wide_Wide_Character}, as well as providing
! case folding routines for @code{Wide_[Wide_]Character} and
! @code{Wide_[Wide_]String}.
  
! RM References:  A.03.05 (0)   A.03.06 (0)
  @end itemize
  
! @geindex AI-0188 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0188 Case expressions (2010-01-09)'
  
! Case expressions are permitted. This allows use of constructs such as:
  
! @example
! X := (case Y is when 1 => 2, when 2 => 3, when others => 31)
! @end example
! 
! RM References:  4.05.07 (0)   4.05.08 (0)   4.09 (12)   4.09 (33)
  @end itemize
  
! @geindex AI-0189 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0189 No_Allocators_After_Elaboration (2010-01-23)'
  
! This AI introduces a new restriction @code{No_Allocators_After_Elaboration},
! which says that no dynamic allocation will occur once elaboration is
! completed.
! In general this requires a run-time check, which is not required, and which
! GNAT does not attempt. But the static cases of allocators in a task body or
! in the body of the main program are detected and flagged at compile or bind
! time.
  
! RM References:  D.07 (19.1/2)   H.04 (23.3/2)
  @end itemize
  
! @geindex AI-0190 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0190 pragma Default_Storage_Pool (2010-09-15)'
  
! This AI introduces a new pragma @code{Default_Storage_Pool}, which can be
! used to control storage pools globally.
! In particular, you can force every access
! type that is used for allocation (`new') to have an explicit storage pool,
! or you can declare a pool globally to be used for all access types that lack
! an explicit one.
  
! RM References:  D.07 (8)
  @end itemize
  
! @geindex AI-0193 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0193 Alignment of allocators (2010-09-16)'
  
! This AI introduces a new attribute @code{Max_Alignment_For_Allocation},
! analogous to @code{Max_Size_In_Storage_Elements}, but for alignment instead
! of size.
  
! RM References:  13.11 (16)   13.11 (21)   13.11.01 (0)   13.11.01 (1)
! 13.11.01 (2)   13.11.01 (3)
  @end itemize
  
! @geindex AI-0194 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0194 Value of Stream_Size attribute (0000-00-00)'
  
! The @code{Stream_Size} attribute returns the default number of bits in the
! stream representation of the given type.
! This value is not affected by the presence
! of stream subprogram attributes for the type. GNAT has always implemented
! this interpretation.
  
! RM References:  13.13.02 (1.2/2)
  @end itemize
  
! @geindex AI-0195 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0195 Invalid value handling is implementation defined (2010-07-03)'
  
! The handling of invalid values is now designated to be implementation
! defined. This is a documentation change only, requiring Annex M in the GNAT
! Reference Manual to document this handling.
! In GNAT, checks for invalid values are made
! only when necessary to avoid erroneous behavior. Operations like assignments
! which cannot cause erroneous behavior ignore the possibility of invalid
! values and do not do a check. The date given above applies only to the
! documentation change, this behavior has always been implemented by GNAT.
  
! RM References:  13.09.01 (10)
  @end itemize
  
! @geindex AI-0196 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0196 Null exclusion tests for out parameters (0000-00-00)'
  
! Null exclusion checks are not made for @code{out} parameters when
! evaluating the actual parameters. GNAT has never generated these checks.
  
! RM References:  6.04.01 (13)
  @end itemize
  
! @geindex AI-0198 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0198 Inheriting abstract operators  (0000-00-00)'
  
! This AI resolves a conflict between two rules involving inherited abstract
! operations and predefined operators. If a derived numeric type inherits
! an abstract operator, it overrides the predefined one. This interpretation
! was always the one implemented in GNAT.
  
! RM References:  3.09.03 (4/3)
  @end itemize
  
! @geindex AI-0199 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0199 Aggregate with anonymous access components (2010-07-14)'
  
! A choice list in a record aggregate can include several components of
! (distinct) anonymous access types as long as they have matching designated
! subtypes.
  
! RM References:  4.03.01 (16)
  @end itemize
  
! @geindex AI-0200 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0200 Mismatches in formal package declarations (0000-00-00)'
  
! This AI plugs a gap in the RM which appeared to allow some obviously intended
! illegal instantiations. GNAT has never allowed these instantiations.
  
! RM References:  12.07 (16)
  @end itemize
  
! @geindex AI-0201 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0201 Independence of atomic object components (2010-07-22)'
  
! If an Atomic object has a pragma @code{Pack} or a @code{Component_Size}
! attribute, then individual components may not be addressable by independent
! tasks. However, if the representation clause has no effect (is confirming),
! then independence is not compromised. Furthermore, in GNAT, specification of
! other appropriately addressable component sizes (e.g. 16 for 8-bit
! characters) also preserves independence. GNAT now gives very clear warnings
! both for the declaration of such a type, and for any assignment to its components.
  
! RM References:  9.10 (1/3)   C.06 (22/2)   C.06 (23/2)
  @end itemize
  
! @geindex AI-0203 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0203 Extended return cannot be abstract (0000-00-00)'
  
! A return_subtype_indication cannot denote an abstract subtype. GNAT has never
! permitted such usage.
  
! RM References:  3.09.03 (8/3)
  @end itemize
  
! @geindex AI-0205 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0205 Extended return declares visible name (0000-00-00)'
  
! This AI corrects a simple omission in the RM. Return objects have always
! been visible within an extended return statement.
  
! RM References:  8.03 (17)
  @end itemize
  
! @geindex AI-0206 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0206 Remote types packages and preelaborate (2010-07-24)'
  
! Remote types packages are now allowed to depend on preelaborated packages.
! This was formerly considered illegal.
  
! RM References:  E.02.02 (6)
  @end itemize
  
! @geindex AI-0207 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0207 Mode conformance and access constant (0000-00-00)'
  
! This AI confirms that access_to_constant indication must match for mode
! conformance. This was implemented in GNAT when the qualifier was originally
! introduced in Ada 2005.
  
! RM References:  6.03.01 (16/2)
  @end itemize
  
! @geindex AI-0208 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0208 Characteristics of incomplete views (0000-00-00)'
  
! The wording in the Ada 2005 RM concerning characteristics of incomplete views
! was incorrect and implied that some programs intended to be legal were now
! illegal. GNAT had never considered such programs illegal, so it has always
! implemented the intent of this AI.
  
! RM References:  3.10.01 (2.4/2)   3.10.01 (2.6/2)
  @end itemize
  
! @geindex AI-0210 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0210 Correct Timing_Events metric (0000-00-00)'
  
! This is a documentation only issue regarding wording of metric requirements,
! that does not affect the implementation of the compiler.
  
! RM References:  D.15 (24/2)
  @end itemize
  
! @geindex AI-0211 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0211 No_Relative_Delays forbids Set_Handler use (2010-07-09)'
  
! The restriction @code{No_Relative_Delays} forbids any calls to the subprogram
! @code{Ada.Real_Time.Timing_Events.Set_Handler}.
  
! RM References:  D.07 (5)   D.07 (10/2)   D.07 (10.4/2)   D.07 (10.7/2)
  @end itemize
  
! @geindex AI-0214 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0214 Defaulted discriminants for limited tagged (2010-10-01)'
  
! Ada 2012 relaxes the restriction that forbids discriminants of tagged types
! to have default expressions by allowing them when the type is limited. It
! is often useful to define a default value for a discriminant even though
! it can’t be changed by assignment.
  
! RM References:  3.07 (9.1/2)   3.07.02 (3)
  @end itemize
  
! @geindex AI-0216 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0216 No_Task_Hierarchy forbids local tasks (0000-00-00)'
  
! It is clearly the intention that @code{No_Task_Hierarchy} is intended to
! forbid tasks declared locally within subprograms, or functions returning task
! objects, and that is the implementation that GNAT has always provided.
! However the language in the RM was not sufficiently clear on this point.
! Thus this is a documentation change in the RM only.
  
! RM References:  D.07 (3/3)
  @end itemize
  
! @geindex AI-0219 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0219 Pure permissions and limited parameters (2010-05-25)'
  
! This AI refines the rules for the cases with limited parameters which do not
! allow the implementations to omit ‘redundant’. GNAT now properly conforms
! to the requirements of this binding interpretation.
  
! RM References:  10.02.01 (18/2)
  @end itemize
  
! @geindex AI-0220 (Ada 2012 feature)
  
  
  @itemize *
  
  @item 
! `AI-0220 Needed components for aggregates (0000-00-00)'
  
! This AI addresses a wording problem in the RM that appears to permit some
! complex cases of aggregates with nonstatic discriminants. GNAT has always
! implemented the intended semantics.
  
! RM References:  4.03.01 (17)
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{442}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{443}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{444}
  @chapter GNAT language extensions
  
  
*************** available to users early on.
*** 28716,28723 ****
  
  @item 
  The second is the experimental set. It includes the first, but also
! experimental features, that are here because they’re still in an early
! prototyping phase.
  @end itemize
  
  @menu
--- 29113,29121 ----
  
  @item 
  The second is the experimental set. It includes the first, but also
! experimental features, which are considered experimental because
! they’re still in an early prototyping phase.
! These features might be removed or heavily modified at any time.
  @end itemize
  
  @menu
*************** prototyping phase.
*** 28728,28734 ****
  @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{43f}
  @section How to activate the extended GNAT Ada superset
  
  
--- 29126,29132 ----
  @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{445}
  @section How to activate the extended GNAT Ada superset
  
  
*************** There are two ways to activate the exten
*** 28738,28744 ****
  @itemize *
  
  @item 
! The @ref{68,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
--- 29136,29142 ----
  @itemize *
  
  @item 
! The @ref{69,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
*************** file, or in a @code{.adc} file correspon
*** 28753,28800 ****
  @itemize *
  
  @item 
! The @code{-gnatX} option, that you can pass to the compiler directly, will
  activate the curated subset of extensions.
  @end itemize
  
  @cartouche
  @quotation Attention 
! You can activate the extended set of extensions by using either
! the @code{-gnatX0} command line flag, or the pragma @code{Extensions_Allowed} with
! @code{All} as an argument. However, it is not recommended you use this subset
! for serious projects, and is only means as a playground/technology preview.
  @end quotation
  @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{440}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{69}
  @section Curated Extensions
  
  
  @menu
  * Local Declarations Without Block:: 
! * Conditional when constructs:: 
! * Case pattern matching:: 
  * Fixed lower bounds for array types and subtypes:: 
  * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
  * Expression defaults for generic formal functions:: 
  * String interpolation:: 
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  
  @end menu
  
! @node Local Declarations Without Block,Conditional when constructs,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{441}
  @subsection Local Declarations Without Block
  
  
! A basic_declarative_item may appear at the place of any statement.
! This avoids the heavy syntax of block_statements just to declare
! something locally.
  
- Link to the original RFC:
- @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-local-vars-without-block.md}
  For example:
  
  @example
--- 29151,29204 ----
  @itemize *
  
  @item 
! The @code{-gnatX} command-line option will
  activate the curated subset of extensions.
  @end itemize
  
  @cartouche
  @quotation Attention 
! You can activate the experimental set of extensions
! in addition by using either
! the @code{-gnatX0} command-line option, or the pragma @code{Extensions_Allowed} with
! @code{All_Extensions} as an argument. However, it is not recommended you use
! this subset for serious projects; it is only meant as a technology preview
! for use in playground experiments.
  @end quotation
  @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{446}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6a}
  @section Curated Extensions
  
  
+ Features activated via @code{-gnatX} or
+ @code{pragma Extensions_Allowed (On)}.
+ 
  @menu
  * Local Declarations Without Block:: 
! * Deep delta Aggregates:: 
  * Fixed lower bounds for array types and subtypes:: 
  * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
  * Expression defaults for generic formal functions:: 
  * String interpolation:: 
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
+ * First Controlling Parameter:: 
  
  @end menu
  
! @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{447}
  @subsection Local Declarations Without Block
  
  
! A @code{basic_declarative_item} may appear at the place of any statement. This
! avoids the heavy syntax of block_statements just to declare something locally.
! 
! The only valid kinds of declarations for now are @code{object_declaration},
! @code{object_renaming_declaration}, @code{use_package_clause}, and
! @code{use_type_clause}.
  
  For example:
  
  @example
*************** if X > 5 then
*** 28807,29018 ****
  end if;
  @end example
  
! @node Conditional when constructs,Case pattern matching,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{442}
! @subsection Conditional when constructs
  
  
! This feature extends the use of @code{when} as a way to condition a control-flow
! related statement, to all control-flow related statements.
  
! To do a conditional return in a procedure the following syntax should be used:
  
  @example
- procedure P (Condition : Boolean) is
  begin
!    return when Condition;
  end;
  @end example
  
! This will return from the procedure if @code{Condition} is true.
! 
! When being used in a function the conditional part comes after the return value:
  
  @example
! function Is_Null (I : Integer) return Boolean is
  begin
!    return True when I = 0;
!    return False;
  end;
  @end example
  
! In a similar way to the @code{exit when} a @code{goto ... when} can be employed:
  
  @example
! procedure Low_Level_Optimized is
!    Flags : Bitmapping;
! begin
!    Do_1 (Flags);
!    goto Cleanup when Flags (1);
  
!    Do_2 (Flags);
!    goto Cleanup when Flags (32);
  
!    --  ...
  
- <<Cleanup>>
-    --  ...
- end;
- @end example
  
! @c code-block
  
! To use a conditional raise construct:
  
! @example
! procedure Foo is
! begin
!    raise Error when Imported_C_Func /= 0;
! end;
! @end example
  
- An exception message can also be added:
  
  @example
! procedure Foo is
! begin
!    raise Error with "Unix Error"
!      when Imported_C_Func /= 0;
! end;
! @end example
  
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-conditional-when-constructs.rst}
  
! @node Case pattern matching,Fixed lower bounds for array types and subtypes,Conditional when constructs,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{443}
! @subsection Case pattern matching
  
  
! The selector for a case statement (but not yet for a case expression) may be of a composite type, subject to
! some restrictions (described below). Aggregate syntax is used for choices
! of such a case statement; however, in cases where a “normal” aggregate would
! require a discrete value, a discrete subtype may be used instead; box
! notation can also be used to match all values.
  
! Consider this example:
  
! @example
! type Rec is record
!    F1, F2 : Integer;
! end record;
  
! procedure Caser_1 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive, F2 => Positive) =>
!          Do_This;
!       when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!          Do_That;
!       when others =>
!           Do_The_Other_Thing;
!    end case;
! end Caser_1;
  @end example
  
! If @code{Caser_1} is called and both components of X are positive, then
! @code{Do_This} will be called; otherwise, if either component is nonnegative
! then @code{Do_That} will be called; otherwise, @code{Do_The_Other_Thing} will be
! called.
  
- In addition, pattern bindings are supported. This is a mechanism
- for binding a name to a component of a matching value for use within
- an alternative of a case statement. For a component association
- that occurs within a case choice, the expression may be followed by
- @code{is <identifier>}. In the special case of a “box” component association,
- the identifier may instead be provided within the box. Either of these
- indicates that the given identifier denotes (a constant view of) the matching
- subcomponent of the case selector.
  
- @cartouche
- @quotation Attention 
- Binding is not yet supported for arrays or subcomponents
- thereof.
- @end quotation
- @end cartouche
  
! Consider this example (which uses type @code{Rec} from the previous example):
  
! @example
! procedure Caser_2 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive is Abc, F2 => Positive) =>
!          Do_This (Abc)
!       when (F1 => Natural is N1, F2 => <N2>) |
!            (F1 => <N2>, F2 => Natural is N1) =>
!          Do_That (Param_1 => N1, Param_2 => N2);
!       when others =>
!          Do_The_Other_Thing;
!    end case;
! end Caser_2;
! @end example
  
! This example is the same as the previous one with respect to determining
! whether @code{Do_This}, @code{Do_That}, or @code{Do_The_Other_Thing} will be called. But
! for this version, @code{Do_This} takes a parameter and @code{Do_That} takes two
! parameters. If @code{Do_This} is called, the actual parameter in the call will be
! @code{X.F1}.
  
! If @code{Do_That} is called, the situation is more complex because there are two
! choices for that alternative. If @code{Do_That} is called because the first choice
! matched (i.e., because @code{X.F1} is nonnegative and either @code{X.F1} or @code{X.F2}
! is zero or negative), then the actual parameters of the call will be (in order)
! @code{X.F1} and @code{X.F2}. If @code{Do_That} is called because the second choice
! matched (and the first one did not), then the actual parameters will be
! reversed.
  
! Within the choice list for single alternative, each choice must define the same
! set of bindings and the component subtypes for for a given identifer must all
! statically match. Currently, the case of a binding for a nondiscrete component
! is not implemented.
  
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first set shall
! be a proper subset of the second (and the later alternative will not be
! executed if the earlier alternative “matches”). All possible values of the
! composite type shall be covered. The composite type of the selector shall be an
! array or record type that is neither limited nor class-wide. Currently, a “when
! others =>” case choice is required; it is intended that this requirement will
! be relaxed at some point.
  
! If a subcomponent’s subtype does not meet certain restrictions, then the only
! value that can be specified for that subcomponent in a case choice expression
! is a “box” component association (which matches all possible values for the
! subcomponent). This restriction applies if:
  
  
  @itemize -
  
  @item 
! the component subtype is not a record, array, or discrete type; or
  
  @item 
! the component subtype is subject to a non-static constraint or has a
! predicate; or:
  
  @item 
! the component type is an enumeration type that is subject to an enumeration
! representation clause; or
  
  @item 
! the component type is a multidimensional array type or an array type with a
! nonstatic index subtype.
  @end itemize
  
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually “Capacity exceeded in compiling
! case statement with composite selector type”.
  
- Link to the original RFC:
- @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-pattern-matching.rst}
  
! @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Case pattern matching,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{444}
  @subsection Fixed lower bounds for array types and subtypes
  
  
--- 29211,29477 ----
  end if;
  @end example
  
! It is generally a good practice to declare local variables (or constants) with as
! short a lifetime as possible. However, introducing a declare block to accomplish
! this is a relatively heavy syntactic load along with a traditional extra level
! of indentation. The alternative syntax supported here allows declarations
! in any statement sequence.
! The lifetime of such local declarations is until the end of
! the enclosing construct. The same enclosing construct cannot contain several
! declarations of the same defining name; however, overriding symbols from higher-level
! scopes works similarly to the explicit @code{declare} block.
  
+ If the enclosing construct allows an exception handler (such as an accept
+ statement, begin-except-end block or a subprogram body), declarations that
+ appear at the place of a statement are `not' visible within the handler. Only
+ declarations that precede the beginning of the construct with an exception
+ handler would be visible in this handler.
  
! @cartouche
! @quotation Attention 
! Here are a couple of examples illustrating the scoping rules described above.
  
! @quotation
! 
! 
! @enumerate 
! 
! @item 
! Those declarations are not visible from the potential exception handler:
  
  @example
  begin
!    A : Integer
!    ...
! exception
!    when others =>
!        Put_Line (A'Image) --  ILLEGAL
  end;
  @end example
  
! @item 
! The following is legal
  
  @example
! declare
!    A : Integer := 10;
  begin
!    A : Integer := 12;
  end;
  @end example
  
! because it is roughly expanded into
  
  @example
!   declare
!      A : Integer := 10;
!   begin
!      declare
!         A : Integer := 12;
!      begin
!         ...
!      end;
!   end;
  
! And as such the second `@w{`}A`@w{`} declaration is hiding the first one.
! @end example
! @end enumerate
! @end quotation
! @end quotation
! @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{448}
! @subsection Deep delta Aggregates
  
  
! Ada 2022’s delta aggregates are extended to allow deep updates.
  
! A delta aggregate may be used to specify new values for subcomponents of the
! copied base value, instead of only new values for direct components of the
! copied base value. This allows a more compact expression of updated values with
! a single delta aggregate, instead of multiple nested delta aggregates.
  
! The syntax of delta aggregates in the extended version is the following:
! 
! @menu
! * Syntax:: 
! * Legality Rules:: 
! * Dynamic Semantics:: 
! * Examples:: 
! 
! @end menu
! 
! @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{449}
! @subsubsection Syntax
  
  
  @example
! delta_aggregate ::= record_delta_aggregate | array_delta_aggregate
  
! record_delta_aggregate ::=
!   ( base_expression with delta record_subcomponent_association_list )
  
! record_subcomponent_association_list ::=
!   record_subcomponent_association @{, record_subcomponent_association@}
  
+ record_subcomponent_association ::=
+   record_subcomponent_choice_list => expression
  
! record_subcomponent_choice_list ::=
!   record_subcomponent_choice @{'|' record_subcomponent_choice@}
  
! record_subcomponent_choice ::=
!     component_selector_name
!   | record_subcomponent_choice (expression)
!   | record_subcomponent_choice . component_selector_name
  
! array_delta_aggregate ::=
!     ( base_expression with delta array_component_association_list )
!   | '[' base_expression with delta array_component_association_list ']'
!   | ( base_expression with delta array_subcomponent_association_list )
!   | '[' base_expression with delta array_subcomponent_association_list ']'
  
! array_subcomponent_association_list ::=
!   array_subcomponent_association @{, array_subcomponent_association@}
! 
! array_subcomponent_association ::=
!   array_subcomponent_choice_list => expression
! 
! array_subcomponent_choice_list ::=
!   array_subcomponent_choice @{'|' array_subcomponent_choice@}
! 
! array_subcomponent_choice ::=
!     ( expression )
!   | array_subcomponent_choice (expression)
!   | array_subcomponent_choice . component_selector_name
  @end example
  
! @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{44a}
! @subsubsection Legality Rules
  
  
  
! @enumerate 
  
! @item 
! For an @code{array_delta_aggregate}, the discrete_choice shall not be `others'.
  
! @item 
! For an @code{array_delta_aggregate}, the dimensionality of the type of the
! @code{delta_aggregate} shall be 1.
  
! @item 
! For an @code{array_delta_aggregate}, the @code{base_expression} and each
! expression in every @code{array_component_association} or
! @code{array_subcomponent_association} shall be of a nonlimited type.
  
! @item 
! For a @code{record_delta_aggregate}, no @code{record_subcomponent_choices} that
! consists of only @code{component_selector_names} shall be the same or a prefix
! of another record_subcomponent_choice.
  
! @item 
! For an @code{array_subcomponent_choice} or a @code{record_subcomponent_choice} the
! @code{component_selector_name} shall not be a subcomponent that depends on
! discriminants of an unconstrained record subtype with defaulted
! discriminants unless its prefix consists of only
! @code{component_selector_names}.
  
! [Rationale: As a result of this rule, accessing the subcomponent can only
! lead to a discriminant check failure if the subcomponent was not present in
! the object denoted by the base_expression, prior to any update.]
! @end enumerate
! 
! @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{44b}
! @subsubsection Dynamic Semantics
! 
! 
! The evaluation of a @code{delta_aggregate} begins with the evaluation of the
! @code{base_expression} of the delta_aggregate; then that value is used to create
! and initialize the anonymous object of the aggregate. The bounds of the
! anonymous object of an @code{array_delta_aggregate} and the discriminants (if any)
! of the anonymous object of a @code{record_delta_aggregate} are those of the
! @code{base_expression}.
! 
! If a @code{record_delta_aggregate} is of a specific tagged type, its tag is that
! of the specific type; if it is of a class-wide type, its tag is that of the
! base_expression.
! 
! For a @code{delta_aggregate}, for each @code{discrete_choice} or each subcomponent
! associated with a @code{record_subcomponent_associated},
! @code{array_component_association} or @code{array_subcomponent_association} (in the
! order given in the enclosing @code{discrete_choice_list} or
! @code{subcomponent_association_list}, respectively):
  
  
  @itemize -
  
  @item 
! if the associated subcomponent belongs to a variant, a check is made that the
! values of the governing discriminants are such that the anonymous object has
! this component. The exception @code{Constraint_Error} is raised if this check fails.
  
  @item 
! if the associated subcomponent is a subcomponent of an array, then for each
! represented index value (in ascending order, if the @code{discrete_choice}
! represents a range):
! 
! @quotation
! 
! 
! @itemize *
  
  @item 
! the index value is converted to the index type of the array type.
  
  @item 
! a check is made that the index value belongs to the index range of the
! corresponding array part of the anonymous object; @code{Constraint_Error} is
! raised if this check fails.
! 
! @item 
! the expression of the @code{record_subcomponent_association},
! @code{array_component_association} or @code{array_subcomponent_association} is
! evaluated, converted to the nominal subtype of the associated subcomponent,
! and assigned to the corresponding subcomponent of the anonymous object.
! @end itemize
! @end quotation
  @end itemize
  
! @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{44c}
! @subsubsection Examples
  
  
! @example
! declare
!    type Point is record
!       X, Y : Integer;
!    end record;
! 
!    type Segment is array (1 .. 2) of Point;
!    type Triangle is array (1 .. 3) of Segment;
! 
!    S : Segment := (1 .. 2 => (0, 0));
!    T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
! begin
!    S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);
! 
!    pragma Assert (S (1).X = 12);
!    pragma Assert (S (2).Y = 12);
!    pragma Assert (S (1).Y = 15);
! 
!    T := (T with delta (2)(1).Y => 18);
!    pragma Assert (T (2)(1).Y = 18);
! end;
! @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{44d}
  @subsection Fixed lower bounds for array types and subtypes
  
  
*************** the efficiency of indexing operations, s
*** 29062,29072 ****
  lower bound of unconstrained array formals when the formal’s subtype has index
  ranges with static fixed lower bounds.
  
- Link to the original RFC:
- @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-fixed-lower-bound.rst}
- 
  @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{445}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
--- 29521,29528 ----
  lower bound of unconstrained array formals when the formal’s subtype has index
  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{44e}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
*************** appear within parentheses after the name
*** 29079,29087 ****
  
  This same notation is already available for tagged types. This extension allows
  for untagged types. It is allowed for all primitive operations of the type
! independent of whether they were originally declared in a package spec or its
! private part, or were inherited and/or overridden as part of a derived type
! declaration occuring anywhere, so long as the first parameter is of the type,
  or an access parameter designating the type.
  
  For example:
--- 29535,29543 ----
  
  This same notation is already available for tagged types. This extension allows
  for untagged types. It is allowed for all primitive operations of the type
! independent of whether they were originally declared in a package spec,
! or were inherited and/or overridden as part of a derived type
! declaration occurring anywhere, so long as the first parameter is of the type,
  or an access parameter designating the type.
  
  For example:
*************** pragma Assert (V.Length = 2);
*** 29115,29125 ****
  pragma Assert (V.Nth_Element(1) = 42);
  @end example
  
- Link to the original RFC:
- @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-prefixed-untagged.rst}
- 
  @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{446}
  @subsection Expression defaults for generic formal functions
  
  
--- 29571,29578 ----
  pragma Assert (V.Nth_Element(1) = 42);
  @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{44f}
  @subsection Expression defaults for generic formal functions
  
  
*************** private
*** 29144,29158 ****
  end Stacks;
  @end example
  
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-expression-functions-as-default-for-generic-formal-function-parameters.rst}
  
  @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{447}
  @subsection String interpolation
  
  
  The syntax for string literals is extended to support string interpolation.
  
  Within an interpolated string literal, an arbitrary expression, when
  enclosed in @code{@{ ... @}}, is expanded at run time into the result of calling
--- 29597,29615 ----
  end Stacks;
  @end example
  
! If Stacks is instantiated with an explicit actual for Copy,
! then that will be called when Copy is called in the generic body.
! If the default is used (i.e. there is no actual corresponding to Copy),
! 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{450}
  @subsection String interpolation
  
  
  The syntax for string literals is extended to support string interpolation.
+ An interpolated string literal starts with @code{f}, immediately before
+ the first double-quote character.
  
  Within an interpolated string literal, an arbitrary expression, when
  enclosed in @code{@{ ... @}}, is expanded at run time into the result of calling
*************** begin
*** 29172,29177 ****
--- 29629,29640 ----
  end Test_Interpolation;
  @end example
  
+ This will print:
+ 
+ @example
+ The name is Leo and the sum is 27.
+ @end example
+ 
  In addition, an escape character (@code{\}) is provided for inserting certain
  standard control characters (such as @code{\t} for tabulation or @code{\n} for
  newline) or to escape characters with special significance to the
*************** NUL
*** 29286,29294 ****
  @end multitable
  
  
! Note that, unlike normal string literals, doubled characters have no
  special significance. So to include a double-quote or a brace character
  in an interpolated string, they must be preceded by a @code{\}.
  For example:
  
  @example
--- 29749,29758 ----
  @end multitable
  
  
! Note that, unlike normal string literals, doubled double-quote characters have no
  special significance. So to include a double-quote or a brace character
  in an interpolated string, they must be preceded by a @code{\}.
+ Multiple interpolated strings are concatenated.
  For example:
  
  @example
*************** Put_Line
*** 29298,29328 ****
     f" an open brace is \@{");
  @end example
  
! Finally, a syntax is provided for creating multi-line string literals,
! without having to explicitly use an escape sequence such as @code{\n}. For
! example:
  
  @example
! Put_Line
!   (f"This is a multi-line"
!     "string literal"
!     "There is no ambiguity about how many"
!     "spaces are included in each line");
  @end example
  
- Here is a link to the original RFC   :
- @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-string-interpolation.rst}
- 
  @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{448}
  @subsection Constrained attribute for generic objects
  
  
  The @code{Constrained} attribute is permitted for objects of generic types. The
  result indicates whether the corresponding actual is constrained.
  
! @node Static aspect on intrinsic functions,,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{449}
  @subsection @code{Static} aspect on intrinsic functions
  
  
--- 29762,29784 ----
     f" an open brace is \@{");
  @end example
  
! This will print:
  
  @example
! X = 12 and Y = 15 and X+Y = 27
! a double quote is " and an open brace is @{
  @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{451}
  @subsection Constrained attribute for generic objects
  
  
  The @code{Constrained} attribute is permitted for objects of generic types. The
  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{452}
  @subsection @code{Static} aspect on intrinsic functions
  
  
*************** The Ada 202x @code{Static} aspect can be
*** 29330,29376 ****
  and the compiler will evaluate some of these intrinsics statically, in
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6a}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{44a}
  @section Experimental Language Extensions
  
  
  @menu
! * Pragma Storage_Model:: 
! * Simpler accessibility model:: 
  
  @end menu
  
! @node Pragma Storage_Model,Simpler accessibility model,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions pragma-storage-model}@anchor{44b}
! @subsection Pragma Storage_Model
  
  
! This feature proposes to redesign the concepts of Storage Pools into a more
! efficient model allowing higher performances and easier integration with low
! footprint embedded run-times.
  
! It also extends it to support distributed memory models, in particular to
! support interactions with GPU.
  
! Here is a link to the full RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-storage-model.rst}
  
! @node Simpler accessibility model,,Pragma Storage_Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{44c}
! @subsection Simpler accessibility model
  
  
! The goal of this feature is to restore a common understanding of accessibility
! rules for implementers and users alike. The new rules should both be effective
! at preventing errors and feel natural and compatible in an Ada environment
! while removing dynamic accessibility checking.
  
! Here is a link to the full RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-simpler-accessibility.md}
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{44d}@anchor{gnat_rm/security_hardening_features id1}@anchor{44e}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
--- 29786,31262 ----
  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,,Static aspect on intrinsic functions,Curated Extensions
+ @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{453}
+ @subsection First Controlling Parameter
+ 
+ 
+ A new pragma/aspect, @code{First_Controlling_Parameter}, is introduced for tagged
+ types, altering the semantics of primitive/controlling parameters. When a
+ tagged type is marked with this aspect, only subprograms where the first
+ parameter is of that type will be considered dispatching primitives. This
+ pragma/aspect applies to the entire hierarchy, starting from the specified
+ type, without affecting inherited primitives.
+ 
+ Here is an example of this feature:
+ 
+ @example
+ package Example is
+    type Root is tagged private;
+ 
+    procedure P (V : Integer; V2 : Root);
+    -- Primitive
+ 
+    type Child is tagged private
+      with First_Controlling_Parameter;
+ 
+ private
+    type Root is tagged null record;
+    type Child is new Root with null record;
+ 
+    overriding
+    procedure P (V : Integer; V2 : Child);
+    -- Primitive
+ 
+    procedure P2 (V : Integer; V2 : Child);
+    -- NOT Primitive
+ 
+    function F return Child; -- NOT Primitive
+ 
+    function F2 (V : Child) return Child;
+    -- Primitive, but only controlling on the first parameter
+ end Example;
+ @end example
+ 
+ Note that @code{function F2 (V : Child) return Child;} differs from @code{F2 (V : Child)
+ return Child'Class;} in that the return type is a specific, definite type. This
+ is also distinct from the legacy semantics, where further derivations with
+ added fields would require overriding the function.
+ 
+ The option @code{-gnatw_j}, that you can pass to the compiler directly, enables
+ warnings related to this new language feature. For instance, compiling the
+ example above without this switch produces no warnings, but compiling it with
+ @code{-gnatw_j} generates the following warning on the declaration of procedure P2:
+ 
+ @example
+ warning: not a dispatching primitive of tagged type "Child"
+ warning: disallowed by First_Controlling_Parameter on "Child"
+ @end example
+ 
+ For generic formal tagged types, you can specify whether the type has the
+ First_Controlling_Parameter aspect enabled:
+ 
+ @example
+ generic
+    type T is tagged private with First_Controlling_Parameter;
+ package T is
+     type U is new T with null record;
+     function Foo return U; -- Not a primitive
+ end T;
+ @end example
+ 
+ For tagged partial views, the value of the aspect must be consistent between
+ the partial and full views:
+ 
+ @example
+ package R is
+    type T is tagged private;
+ ...
+ private
+    type T is tagged null record with First_Controlling_Parameter; -- ILLEGAL
+ end R;
+ @end example
+ 
+ Restricting the position of controlling parameter offers several advantages:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ Simplification of the dispatching rules improves readability of Ada programs.
+ One doesn’t need to analyze all subprogram parameters to understand if the given
+ subprogram is a primitive of a certain tagged type.
+ 
+ @item 
+ A programmer is free to use any type, including class-wide types, on other
+ parameters of a subprogram, without the need to consider possible effects of
+ overriding a primitive or creating new one.
+ 
+ @item 
+ The result of a function is never a controlling result.
+ @end itemize
+ 
  @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{454}
  @section Experimental Language Extensions
  
  
+ Features activated via @code{-gnatX0} or
+ @code{pragma Extensions_Allowed (All_Extensions)}.
+ 
  @menu
! * Conditional when constructs:: 
! * Storage Model:: 
! * Attribute Super:: 
! * Simpler Accessibility Model:: 
! * Case pattern matching:: 
! * Mutably Tagged Types with Size’Class Aspect:: 
! * Generalized Finalization:: 
! * No_Raise aspect:: 
! * Inference of Dependent Types in Generic Instantiations:: 
! * External_Initialization Aspect:: 
! * Finally construct:: 
  
  @end menu
  
! @node Conditional when constructs,Storage Model,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{455}
! @subsection Conditional when constructs
  
  
! This feature extends the use of @code{when} as a way to condition a control-flow
! related statement, to all control-flow related statements.
  
! To do a conditional return in a procedure the following syntax should be used:
  
! @example
! procedure P (Condition : Boolean) is
! begin
!    return when Condition;
! end P;
! @end example
  
! This will return from the procedure if @code{Condition} is true.
  
+ When being used in a function the conditional part comes after the return value:
  
! @example
! function Is_Null (I : Integer) return Boolean is
! begin
!    return True when I = 0;
!    return False;
! end;
! @end example
  
! In a similar way to the @code{exit when} a @code{goto ... when} can be employed:
! 
! @example
! procedure Low_Level_Optimized is
!    Flags : Bitmapping;
! begin
!    Do_1 (Flags);
!    goto Cleanup when Flags (1);
! 
!    Do_2 (Flags);
!    goto Cleanup when Flags (32);
! 
!    --  ...
! 
! <<Cleanup>>
!    --  ...
! end;
! @end example
! 
! @c code-block
! 
! To use a conditional raise construct:
! 
! @example
! procedure Foo is
! begin
!    raise Error when Imported_C_Func /= 0;
! end;
! @end example
! 
! An exception message can also be added:
! 
! @example
! procedure Foo is
! begin
!    raise Error with "Unix Error"
!      when Imported_C_Func /= 0;
! end;
! @end example
! 
! @node Storage Model,Attribute Super,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{456}
! @subsection Storage Model
! 
! 
! This extends Storage Pools into a more efficient model allowing higher performance,
! easier integration with low footprint embedded run-times and copying data between
! different pools of memory. The latter is especially useful when working with distributed
! memory models, in particular to support interactions with GPU.
! 
! @menu
! * Aspect Storage_Model_Type:: 
! * Aspect Designated_Storage_Model:: 
! * Legacy Storage Pools:: 
! 
! @end menu
! 
! @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{457}
! @subsubsection Aspect Storage_Model_Type
! 
! 
! A Storage model is a type with a specified @code{Storage_Model_Type}
! aspect, e.g.:
! 
! @example
! type A_Model is null record
!    with Storage_Model_Type (...);
! @end example
! 
! Storage_Model_Type itself accepts six parameters:
! 
! 
! @itemize -
! 
! @item 
! Address_Type, the type of the address managed by this model. This has to be
! a scalar type or derived from System.Address.
! 
! @item 
! Allocate, a procedure used for allocating memory in this model
! 
! @item 
! Deallocate, a procedure used for deallocating memory in this model
! 
! @item 
! Copy_To, a procedure used to copy memory from native memory to this model
! 
! @item 
! Copy_From, a procedure used to copy memory from this model to native memory
! 
! @item 
! Storage_Size, a function returning the amount of memory left
! 
! @item 
! Null_Address, a value for the null address value
! @end itemize
! 
! By default, Address_Type is System.Address, and the five subprograms
! perform native operations (e.g. the allocator is the native @code{new} allocator).
! Users can decide to specify one or more of these. When an Address_Type is
! specified to be other than System.Address, all of the subprograms have
! to be specified.
! 
! The prototypes of these procedures are as follows:
! 
! @example
! procedure Allocate
!   (Model           : in out A_Model;
!    Storage_Address : out Address_Type;
!    Size            : Storage_Count;
!    Alignment       : Storage_Count);
! 
! procedure Deallocate
!   (Model           : in out A_Model;
!    Storage_Address : out Address_Type;
!    Size            : Storage_Count;
!    Alignment       : Storage_Count);
! 
! procedure Copy_To
!   (Model   : in out A_Model;
!    Target  : Address_Type;
!    Source  : System.Address;
!    Size    : Storage_Count);
! 
! procedure Copy_From
!   (Model  : in out A_Model;
!    Target : System.Address;
!    Source : Address_Type;
!    Size   : Storage_Count);
! 
! function Storage_Size
!   (Pool : A_Model)
!    return Storage_Count;
! @end example
! 
! Here’s an example of how this could be instantiated in the context of CUDA:
! 
! @example
! package CUDA_Memory is
! 
!    type CUDA_Storage_Model is null record
!       with Storage_Model_Type => (
!          Address_Type => CUDA_Address,
!          Allocate     => CUDA_Allocate,
!          Deallocate   => CUDA_Deallocate,
!          Copy_To      => CUDA_Copy_To,
!          Copy_From    => CUDA_Copy_From,
!          Storage_Size => CUDA_Storage_Size,
!          Null_Address => CUDA_Null_Address
!       );
! 
!    type CUDA_Address is new System.Address;
!    --  We're assuming for now same address size on host and device
! 
!    procedure CUDA_Allocate
!      (Model           : in out CUDA_Storage_Model;
!       Storage_Address : out CUDA_Address;
!       Size            : Storage_Count;
!       Alignment       : Storage_Count);
! 
!    procedure CUDA_Deallocate
!      (Model           : in out CUDA_Storage_Model;
!       Storage_Address : out CUDA_Address;
!       Size            : Storage_Count;
!       Alignment       : Storage_Count);
! 
!    procedure CUDA_Copy_To
!      (Model  : in out CUDA_Storage_Model;
!       Target : CUDA_Address;
!       Source : System.Address;
!       Size   : Storage_Count);
! 
!    procedure CUDA_Copy_From
!      (Model   : in out CUDA_Storage_Model;
!       Target  : System.Address;
!       Source  : CUDA_Address;
!       Size    : Storage_Count);
! 
!    function CUDA_Storage_Size
!      (Pool : CUDA_Storage_Model)
!       return Storage_Count return Storage_Count'Last;
! 
!    CUDA_Null_Address : constant CUDA_Address :=
!       CUDA_Address (System.Null_Address);
! 
!    CUDA_Memory : CUDA_Storage_Model;
! 
! end CUDA_Memory;
! @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{458}
! @subsubsection Aspect Designated_Storage_Model
! 
! 
! A new aspect, Designated_Storage_Model, allows to specify the memory model
! for the objects pointed by an access type. Under this aspect, allocations
! and deallocations will come from the specified memory model instead
! of the standard ones. In addition, if write operations are needed for
! initialization, or if there is a copy of the target object from and to a
! standard memory area, the Copy_To and Copy_From functions will be called.
! It allows to encompass the capabilities of storage pools, e.g.:
! 
! @example
! procedure Main is
!    type Integer_Array is array (Integer range <>) of Integer;
! 
!    type Host_Array_Access is access all Integer_Array;
!    type Device_Array_Access is access Integer_Array
!       with Designated_Storage_Model => CUDA_Memory;
! 
!    procedure Free is new Unchecked_Deallocation
!       (Host_Array_Type, Host_Array_Access);
!    procedure Free is new Unchecked_Deallocation
!       (Device_Array_Type, Device_Array_Access);
! 
!    Host_Array : Host_Array_Access := new Integer_Array (1 .. 10);
! 
!    Device_Array : Device_Array_Access := new Host_Array (1 .. 10);
!    --  Calls CUDA_Storage_Model.Allocate to allocate the fat pointers and
!    --  the bounds, then CUDA_Storage_Model.Copy_In to copy the values of the
!    --  boundaries.
! begin
!    Host_Array.all := (others => 0);
! 
!    Device_Array.all := Host_Array.all;
!    --  Calls CUDA_Storage_Model.Copy_To to write to the device array from the
!    --  native memory.
! 
!    Host_Array.all := Device_Array.all;
!    --  Calls CUDA_Storage_Model.Copy_From to read from the device array and
!    --  write to native memory.
! 
!    Free (Host_Array);
! 
!    Free (Device_Array);
!    --  Calls CUDA_Storage_Model.Deallocate;
! end;
! @end example
! 
! Taking @code{'Address} of an object with a specific memory model returns an object of
! the type of the address for that memory category, which may be different from
! System.Address.
! 
! When copying is performed between two specific memory models, the native memory
! is used as a temporary between the two. E.g.:
! 
! @example
! type Foo_I is access Integer with Designated_Storage_Model => Foo;
! type Bar_I is access Integer with Designated_Storage_Model => Bar;
! 
!   X : Foo_I := new Integer;
!   Y : Bar_I := new Integer;
! begin
!   X.all := Y.all;
! @end example
! 
! conceptually becomes:
! 
! @example
!   X : Foo_I := new Integer;
!   T : Integer;
!   Y : Bar_I := new Integer;
! begin
!   T := Y.all;
!   X.all := T;
! @end example
! 
! @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{459}
! @subsubsection Legacy Storage Pools
! 
! 
! Legacy Storage Pools are now replaced by a Storage_Model_Type.
! They are implemented as follows:
! 
! @example
! type Root_Storage_Pool is abstract
!   new Ada.Finalization.Limited_Controlled with private
! with Storage_Model_Type => (
!    Allocate     => Allocate,
!    Deallocate   => Deallocate,
!    Storage_Size => Storage_Size
! );
! pragma Preelaborable_Initialization (Root_Storage_Pool);
! 
! procedure Allocate
!   (Pool                     : in out Root_Storage_Pool;
!    Storage_Address          : out System.Address;
!    Size_In_Storage_Elements : System.Storage_Elements.Storage_Count;
!    Alignment                : System.Storage_Elements.Storage_Count)
! is abstract;
! 
! procedure Deallocate
!   (Pool                     : in out Root_Storage_Pool;
!    Storage_Address          : System.Address;
!    Size_In_Storage_Elements : System.Storage_Elements.Storage_Count;
!    Alignment                : System.Storage_Elements.Storage_Count)
! is abstract;
! 
! function Storage_Size
!   (Pool : Root_Storage_Pool)
!    return System.Storage_Elements.Storage_Count
! is abstract;
! @end example
! 
! The legacy notation:
! 
! @example
! type My_Pools is new Root_Storage_Pool with record [...]
! 
! My_Pool_Instance : Storage_Model_Pool.Storage_Model :=
!    My_Pools'(others => <>);
! 
! type Acc is access Integer_Array with Storage_Pool => My_Pool;
! @end example
! 
! 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{45a}
! @subsection Attribute Super
! 
! 
! @geindex Super
! 
! The @code{Super} attribute can be applied to objects of tagged types in order
! to obtain a view conversion to the most immediate specific parent type.
! 
! It cannot be applied to objects of types without any ancestors.
! 
! @example
! type T1 is tagged null record;
! procedure P (V : T1);
! 
! type T2 is new T1 with null record;
! 
! type T3 is new T2 with null record;
! procedure P (V : T3);
! 
! procedure Call (
!   V1 : T1'Class;
!   V2 : T2'Class;
!   V3 : T3'Class) is
! begin
!   V1'Super.P; --  Illegal call as T1 doesn't have any ancestors
!   V2'Super.P; --  Equivalent to "T1 (V).P;", a non-dispatching call
!               --  to T1's primitive procedure P.
!   V3'Super.P; --  Equivalent to "T2 (V).P;"; Since T2 doesn't
!               --  override P, a non-dispatching call to T1.P is
!               --  executed.
! end;
! @end example
! 
! @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{45b}
! @subsection Simpler Accessibility Model
! 
! 
! The goal of this feature is to simplify the accessibility rules by removing
! dynamic accessibility checks that are often difficult to understand and debug.
! The new rules eliminate the need for runtime accessibility checks by imposing
! more conservative legality rules when enabled via a new restriction (see RM 13.12),
! No_Dynamic_Accessibility_Checks, which prevents dangling reference problems
! at compile time.
! 
! This restriction has no effect on the user-visible behavior of a program when executed;
! the only effect of this restriction is to enable additional compile-time checks
! (described below) which ensure statically that Ada’s dynamic accessibility checks
! will not fail.
! 
! The feature can be activated with @code{pragma Restrictions (No_Dynamic_Accessibility_Checks);}.
! As a result, additional compile-time checks are performed; these checks pertain to
! stand-alone objects, subprogram parameters, and function results as described below.
! 
! All of the refined rules are compatible with the [use of anonymous access types in SPARK]
! (@indicateurl{http://docs.adacore.com/spark2014-docs/html/lrm/declarations-and-types.html#access-types}).
! 
! @menu
! * Stand-alone objects:: 
! * Subprogram parameters:: 
! * Function results:: 
! 
! @end menu
! 
! @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{45c}
! @subsubsection Stand-alone objects
! 
! 
! @example
! Var        : access T := ...
! Var_To_Cst : access constant T := ...
! Cst        : constant access T := ...
! Cst_To_Cst : constant access constant T := ...
! @end example
! 
! In this section, we will refer to a stand-alone object of an anonymous access
! type as an SO.
! 
! When the restriction is in effect, the “statically deeper” relationship
! (see RM 3.10.2(4)) does apply to the type of a SO (contrary to RM 3.10.2(19.2))
! and, for the purposes of compile-time checks, the accessibility level of the
! type of a SO is the accessibility level of that SO.
! This supports many common use-cases without the employment of @code{Unchecked_Access}
! while still removing the need for dynamic checks.
! 
! This statically disallows cases that would otherwise require a dynamic accessibility
! check, such as
! 
! @example
! type Ref is access all Integer;
! Ptr : Ref;
! Good : aliased Integer;
! 
! procedure Proc is
!    Bad : aliased Integer;
!    Stand_Alone : access Integer;
! begin
!    if <some condition> then
!       Stand_Alone := Good'Access;
!    else
!       Stand_Alone := Bad'Access;
!    end if;
!    Ptr := Ref (Stand_Alone);
! end Proc;
! @end example
! 
! If a No_Dynamic_Accessibility_Checks restriction is in effect, then the otherwise-legal
! type conversion (the right-hand side of the assignment to Ptr) becomes a violation
! of the RM 4.6 rule “The accessibility level of the operand type shall not be
! 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{45d}
! @subsubsection Subprogram parameters
! 
! 
! @example
! procedure P (V : access T; X : access constant T);
! @end example
! 
! In most cases (the exceptions are described below), a No_Dynamic_Accessibility_Checks
! restriction means that the “statically deeper” relationship does apply to the anonymous
! type of an access parameter specifying an access-to-object type (contrary to RM 3.10.2(19.1))
! and, for purposes of compile-time “statically deeper” checks, the accessibility level
! of the type of such a parameter is the accessibility level of the parameter.
! 
! This change (at least as described so far) doesn’t affect the caller’s side, but on the
! callee’s side it means that object designated by a non-null parameter of an anonymous
! access type is treated as having the same accessibility level as a local object declared
! immediately within the called subprogram.
! 
! With the restriction in effect, the otherwise-legal type conversion in the following example
! becomes illegal:
! 
! @example
! type Ref is access all Integer;
! Ptr : Ref;
! 
! procedure Proc (Param : access Integer) is
! begin
!    Ptr := Ref (Param);
! end Proc;
! @end example
! 
! The aforementioned exceptions have to do with return statements from functions that either
! return the given parameter (in the case of a function whose result type is an anonymous
! access type) or return the given parameter value as an access discriminant of the function
! result (or of some discriminated part thereof). More specifically, the “statically deeper”
! changes described above do not apply for purposes of checking the “shall not be statically
! deeper” rule for access discriminant parts of function results (RM 6.5(5.9)) or in determining
! the legality of an (implicit) type conversion from the anonymous access type of a parameter
! of a function to an anonymous access result type of that function. In order to prevent these
! rule relaxations from introducing the possibility of dynamic accessibility check failures,
! compensating compile-time checks are performed at the call site to prevent cases where
! including the value of an access parameter as part of a function result could make such
! check failures possible (specifically, the discriminant checks of RM 6.5(21) or, in the
! case of an anonymous access result type, the RM 4.6(48) check performed when converting
! to that result type). These compile-time checks are described in the next section.
! 
! From the callee’s perspective, the level of anonymous access formal parameters would be
! between the level of the subprogram and the level of the subprogram’s locals. This has the effect
! of formal parameters being treated as local to the callee except in:
! 
! 
! @itemize *
! 
! @item 
! Use as a function result
! 
! @item 
! Use as a value for an access discriminant in result object
! 
! @item 
! Use as an assignments between formal parameters
! @end itemize
! 
! Note that with these more restricted rules we lose track of accessibility levels when assigned to
! local objects thus making (in the example below) the assignment to Node2.Link from Temp below
! compile-time illegal.
! 
! @example
! type Node is record
!    Data : Integer;
!    Link : access Node;
! end record;
! 
! procedure Swap_Links (Node1, Node2 : in out Node) is
!    Temp : constant access Node := Node1.Link; -- We lose the "association" to Node1
! begin
!    Node1.Link := Node2.Link; -- Allowed
!    Node2.Link := Temp;       -- Not allowed
! end;
! 
! function Identity (N : access Node) return access Node is
!    Local : constant access Node := N;
! begin
!    if True then
!       return N;              -- Allowed
!    else
!       return Local;          -- Not allowed
!    end if;
! end;
! @end example
! 
! @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{45e}
! @subsubsection Function results
! 
! 
! @example
! function Get (X : Rec) return access T;
! @end example
! 
! If the result subtype of a function is either an anonymous access (sub)type, a
! class-wide (sub)type, an unconstrained subtype with an access discriminant, or
! a type with an unconstrained subcomponent subtype that has at least one access
! discriminant (this last case is only possible if the access discriminant has a
! default value), then we say that the function result type “might require an
! anonymous-access-part accessibility check”. If a function has an access parameter,
! or a parameter whose subtype “might require an anonymous-access-part accessibility
! check”, then we say that the each such parameter “might be used to pass in an
! anonymous-access value”. If the first of these conditions holds for the result
! subtype of a function and the second condition holds for at least one parameter
! that function, then it is possible that a call to that function could return a
! result that contains anonymous-access values that were passed in via the parameter.
! 
! Given a function call where the result type “might require an anonymous-access-part
! accessibility check” and a formal parameter of that function that “might be used to
! pass in an anonymous-access value”, either the type of that formal parameter is an
! anonymous access type or it is not. If it is, and if a No_Dynamic_Access_Checks
! restriction is in effect, then the accessibility level of the type of the actual
! parameter shall be statically known to not be deeper than that of the master of
! the call. If it isn’t, then the accessibility level of the actual parameter shall
! be statically known to not be deeper than that of the master of the call.
! 
! Function result example:
! 
! @example
! declare
!    type T is record
!       Comp : aliased Integer;
!    end record;
! 
!    function Identity (Param : access Integer) return access Integer is
!    begin
!       return Param;        -- Legal
!    end;
! 
!    function Identity_2 (Param : aliased Integer) return access Integer is
!    begin
!       return Param'Access; -- Legal
!    end;
! 
!    X : access Integer;
! begin
!    X := Identity (X);      -- Legal
!    declare
!       Y : access Integer;
!       Z : aliased Integer;
!    begin
!       X := Identity (Y);   -- Illegal since Y is too deep
!       X := Identity_2 (Z); -- Illegal since Z is too deep
!    end;
! end;
! @end example
! 
! In order to avoid having to expand the definition of “might be used to pass in an
! anonymous-access value” to include any parameter of a tagged type, the
! No_Dynamic_Access_Checks restriction also imposes a requirement that a type extension
! cannot include the explicit definition of an access discriminant.
! 
! Here is an example of one such case of an upward conversion which would lead to a memory leak:
! 
! @example
! declare
!    type T is tagged null record;
!    type T2 (Disc : access Integer) is new T with null record; -- Must be illegal
! 
!    function Identity (Param : aliased T'Class) return access Integer is
!    begin
!       return T2 (T'Class (Param)).Disc; -- Here P gets effectively returned and set to X
!    end;
! 
!    X : access Integer;
! begin
!    declare
!       P : aliased Integer;
!       Y : T2 (P'Access);
!    begin
!       X := Identity (T'Class (Y)); -- Pass local variable P (via Y's discriminant),
!                                  -- leading to a memory leak.
!    end;
! end;
! `@w{`}`
! 
! Thus we need to make the following illegal to avoid such situations:
! 
! `@w{`}`ada
! package Pkg1 is
!    type T1 is tagged null record;
!    function Func (X1 : T1) return access Integer is (null);
! end;
! 
! package Pkg2 is
!    type T2 (Ptr1, Ptr2 : access Integer) is new Pkg1.T1 with null record; -- Illegal
!    ...
! end;
! @end example
! 
! In order to prevent upward conversions of anonymous function results (like below), we
! also would need to assure that the level of such a result (from the callee’s perspective)
! is statically deeper:
! 
! @example
! declare
!    type Ref is access all Integer;
!    Ptr : Ref;
!    function Foo (Param : access Integer) return access Integer is
!    begin
!       return Result : access Integer := Param; do
!          Ptr := Ref (Result); -- Not allowed
!       end return;
!    end;
! begin
!    declare
!       Local : aliased Integer;
!    begin
!       Foo (Local'Access).all := 123;
!    end;
! end;
! @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{45f}
! @subsection Case pattern matching
! 
! 
! The selector for a case statement (but not for a case expression) may
! be of a composite type, subject to some restrictions (described below).
! Aggregate syntax is used for choices of such a case statement; however,
! in cases where a “normal” aggregate would require a discrete value, a
! discrete subtype may be used instead; box notation can also be used to
! match all values.
! 
! Consider this example:
! 
! @example
! type Rec is record
!    F1, F2 : Integer;
! end record;
! 
! procedure Caser_1 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive, F2 => Positive) =>
!          Do_This;
!       when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!          Do_That;
!       when others =>
!           Do_The_Other_Thing;
!    end case;
! end Caser_1;
! @end example
! 
! If @code{Caser_1} is called and both components of X are positive, then
! @code{Do_This} will be called; otherwise, if either component is nonnegative
! then @code{Do_That} will be called; otherwise, @code{Do_The_Other_Thing} will be
! called.
! 
! In addition, pattern bindings are supported. This is a mechanism
! for binding a name to a component of a matching value for use within
! an alternative of a case statement. For a component association
! that occurs within a case choice, the expression may be followed by
! @code{is <identifier>}. In the special case of a “box” component association,
! the identifier may instead be provided within the box. Either of these
! indicates that the given identifier denotes (a constant view of) the matching
! subcomponent of the case selector.
! 
! @cartouche
! @quotation Attention 
! Binding is not yet supported for arrays or subcomponents
! thereof.
! @end quotation
! @end cartouche
! 
! Consider this example (which uses type @code{Rec} from the previous example):
! 
! @example
! procedure Caser_2 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive is Abc, F2 => Positive) =>
!          Do_This (Abc)
!       when (F1 => Natural is N1, F2 => <N2>) |
!            (F1 => <N2>, F2 => Natural is N1) =>
!          Do_That (Param_1 => N1, Param_2 => N2);
!       when others =>
!          Do_The_Other_Thing;
!    end case;
! end Caser_2;
! @end example
! 
! This example is the same as the previous one with respect to determining
! whether @code{Do_This}, @code{Do_That}, or @code{Do_The_Other_Thing} will be called. But
! for this version, @code{Do_This} takes a parameter and @code{Do_That} takes two
! parameters. If @code{Do_This} is called, the actual parameter in the call will be
! @code{X.F1}.
! 
! If @code{Do_That} is called, the situation is more complex because there are two
! choices for that alternative. If @code{Do_That} is called because the first choice
! matched (i.e., because @code{X.F1} is nonnegative and either @code{X.F1} or @code{X.F2}
! is zero or negative), then the actual parameters of the call will be (in order)
! @code{X.F1} and @code{X.F2}. If @code{Do_That} is called because the second choice
! matched (and the first one did not), then the actual parameters will be
! reversed.
! 
! Within the choice list for single alternative, each choice must define the same
! set of bindings and the component subtypes for for a given identifier must all
! statically match. Currently, the case of a binding for a nondiscrete component
! is not implemented.
! 
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first set shall
! be a proper subset of the second (and the later alternative will not be
! executed if the earlier alternative “matches”). All possible values of the
! composite type shall be covered. The composite type of the selector shall be an
! array or record type that is neither limited nor class-wide. Currently, a “when
! others =>” case choice is required; it is intended that this requirement will
! be relaxed at some point.
! 
! If a subcomponent’s subtype does not meet certain restrictions, then the only
! value that can be specified for that subcomponent in a case choice expression
! is a “box” component association (which matches all possible values for the
! subcomponent). This restriction applies if:
! 
! 
! @itemize -
! 
! @item 
! the component subtype is not a record, array, or discrete type; or
! 
! @item 
! the component subtype is subject to a non-static constraint or has a
! predicate; or:
! 
! @item 
! the component type is an enumeration type that is subject to an enumeration
! representation clause; or
! 
! @item 
! the component type is a multidimensional array type or an array type with a
! nonstatic index subtype.
! @end itemize
! 
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually “Capacity exceeded in compiling
! case statement with composite selector type”.
! 
! @node Mutably Tagged Types with Size’Class Aspect,Generalized Finalization,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{460}
! @subsection Mutably Tagged Types with Size’Class Aspect
! 
! 
! The @code{Size'Class} aspect can be applied to a tagged type to specify a size
! constraint for the type and its descendants. When this aspect is specified
! on a tagged type, the class-wide type of that type is considered to be a
! “mutably tagged” type - meaning that objects of the class-wide type can have
! their tag changed by assignment from objects with a different tag.
! 
! Example:
! 
! @example
! type Base is tagged null record
!     with Size'Class => 16 * 8;  -- Size in bits (128 bits, or 16 bytes)
! 
! type Derived_Type is new Base with record
!    Data_Field : Integer;
! end record;  -- ERROR if Derived_Type exceeds 16 bytes
! @end example
! 
! Class-wide types with a specified @code{Size'Class} can be used as the type of
! array components, record components, and stand-alone objects.
! 
! @example
! Inst : Base'Class;
! type Array_of_Base is array (Positive range <>) of Base'Class;
! @end example
! 
! If the @code{Size'Class} aspect is specified for a type @code{T}, then every
! specific descendant of @code{T} [redundant: (including @code{T})]
! 
! 
! @itemize -
! 
! @item 
! shall have a Size that does not exceed the specified value; and
! 
! @item 
! shall be undiscriminated; and
! 
! @item 
! shall have no composite subcomponent whose subtype is subject to a
! dynamic constraint; and
! 
! @item 
! shall have no interface progenitors; and
! 
! @item 
! shall not have a tagged partial view other than a private extension; and
! 
! @item 
! shall not have a statically deeper accessibility level than that of @code{T}.
! @end itemize
! 
! In addition to the places where Legality Rules normally apply (see 12.3),
! these legality rules apply also in the private part and in the body of an
! instance of a generic unit.
! 
! For any subtype @code{S} that is a subtype of a descendant of @code{T}, @code{S'Class'Size} is
! defined to yield the specified value [redundant:,  although @code{S'Class'Size} is
! not a static expression].
! 
! A class-wide descendant of a type with a specified @code{Size'Class} aspect is
! defined to be a “mutably tagged” type. Any subtype of a mutably tagged type is,
! by definition, a definite subtype (RM 3.3 notwithstanding). Default
! initialization of an object of such a definite subtype proceeds as for the
! corresponding specific type, except that @code{Program_Error} is raised if the
! specific type is abstract. [In particular, the initial tag of the object is
! that of the corresponding specific type.]
! 
! An object of a tagged type is defined to be “tag-constrained” if it is
! 
! 
! @itemize -
! 
! @item 
! an object whose type is not mutably tagged; or
! 
! @item 
! a constant object; or
! 
! @item 
! a view conversion of a tag-constrained object; or
! 
! @item 
! a formal @code{in out} or @code{out} parameter whose corresponding
! actual parameter is tag-constrained.
! @end itemize
! 
! In the case of an assignment to a tagged variable that
! is not tag-constrained, no check is performed that the tag of the value of
! the expression is the same as that of the target (RM 5.2 notwithstanding).
! Instead, the tag of the target object becomes that of the source object of
! the assignment.
! An assignment to a composite object similarly copies the tags of any
! subcomponents of the source object that have a mutably-tagged type.
! 
! The @code{Constrained} attribute is defined for any name denoting an object of a
! mutably tagged type (RM 3.7.2 notwithstanding). In this case, the Constrained
! attribute yields the value True if the object is tag-constrained and False
! otherwise.
! 
! Renaming is not allowed (see 8.5.1) for a type conversion having an operand of
! a mutably tagged type @code{MT} and a target type @code{TT} such that @code{TT'Class}
! does not cover @code{MT}, nor for any part of such an object, nor for any slice
! of such an object. This rule also applies in any context where a name is
! required to be one for which “renaming is allowed” (for example, see RM 12.4).
! 
! A name denoting a view of a variable of a mutably tagged type shall not
! occur as an operative constituent of the prefix of a name denoting a
! prefixed view of a callable entity, except as the callee name in a call to
! the callable entity.
! 
! For a type conversion between two general access types, either both or neither
! of the designated types shall be mutably tagged. For an @code{Access} (or
! @code{Unchecked_Access}) attribute reference, the designated type of the type of the
! attribute reference and the type of the prefix of the attribute shall either
! both or neither be mutably tagged.
! 
! The execution of a construct is erroneous if the construct has a constituent
! that is a name denoting a subcomponent of a tagged object and the object’s
! tag is changed by this execution between evaluating the name and the last use
! (within this execution) of the subcomponent denoted by the name.
! 
! If the type of a formal parameter is a specific tagged type then the execution
! of the call is erroneous if the tag of the actual is changed while the formal
! parameter exists (that is, before leaving the corresponding callable
! construct).
! 
! @node Generalized Finalization,No_Raise aspect,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{461}
! @subsection Generalized Finalization
! 
! 
! The @code{Finalizable} aspect can be applied to any record type, tagged or not,
! to specify that it provides the same level of control on the operations of
! initialization, finalization, and assignment of objects as the controlled
! types (see RM 7.6(2) for a high-level overview). The only restriction is
! that the record type must be a root type, in other words not a derived type.
! 
! The aspect additionally makes it possible to specify relaxed semantics for
! the finalization operations by means of the @code{Relaxed_Finalization} setting.
! 
! Example:
! 
! @example
! type Ctrl is record
!   Id : Natural := 0;
! end record
!   with Finalizable => (Initialize           => Initialize,
!                        Adjust               => Adjust,
!                        Finalize             => Finalize,
!                        Relaxed_Finalization => True);
! 
! procedure Adjust     (Obj : in out Ctrl);
! procedure Finalize   (Obj : in out Ctrl);
! procedure Initialize (Obj : in out Ctrl);
! @end example
! 
! The three procedures have the same profile, taking a single @code{in out T}
! parameter.
! 
! We follow the same dynamic semantics as controlled objects:
! 
! @quotation
! 
! 
! @itemize -
! 
! @item 
! @code{Initialize} is called when an object of type @code{T} is declared without
! default expression.
! 
! @item 
! @code{Adjust} is called after an object of type @code{T} is assigned a new value.
! 
! @item 
! @code{Finalize} is called when an object of type @code{T} goes out of scope (for
! stack-allocated objects) or is explicitly deallocated (for heap-allocated
! objects). It is also called when on the value being replaced in an
! assignment.
! @end itemize
! @end quotation
! 
! However the following differences are enforced by default when compared to the
! current Ada controlled-objects finalization model:
! 
! 
! @itemize *
! 
! @item 
! No automatic finalization of heap allocated objects: @code{Finalize} is only
! called when an object is implicitly deallocated. As a consequence, no-runtime
! support is needed for the implicit case, and no header will be maintained for
! this in heap-allocated controlled objects.
! 
! Heap-allocated objects allocated through a nested access type definition will
! hence `not' be deallocated either. The result is simply that memory will be
! leaked in those cases.
! 
! @item 
! The @code{Finalize} procedure should have have the @ref{462,,No_Raise aspect} specified.
! If that’s not the case, a compilation error will be raised.
! @end itemize
! 
! Additionally, two other configuration aspects are added,
! @code{Legacy_Heap_Finalization} and @code{Exceptions_In_Finalize}:
! 
! 
! @itemize *
! 
! @item 
! @code{Legacy_Heap_Finalization}: Uses the legacy automatic finalization of
! heap-allocated objects
! 
! @item 
! @code{Exceptions_In_Finalize}: Allow users to have a finalizer that raises exceptions
! `NB!' note that using this aspect introduces execution time penalities.
! @end itemize
! 
! @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Generalized Finalization,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{463}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{462}
! @subsection No_Raise aspect
! 
! 
! The @code{No_Raise} aspect can be applied to a subprogram to declare that this subprogram is not
! expected to raise any exceptions. Should an exception still occur during the execution of
! this subprogram, @code{Program_Error} is raised.
! 
! @menu
! * New specification for Ada.Finalization.Controlled: New specification for Ada Finalization Controlled. 
! * Finalized tagged types:: 
! * Composite types:: 
! * Interoperability with controlled types:: 
! 
! @end menu
! 
! @node New specification for Ada Finalization Controlled,Finalized tagged types,,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions new-specification-for-ada-finalization-controlled}@anchor{464}
! @subsubsection New specification for @code{Ada.Finalization.Controlled}
! 
! 
! @code{Ada.Finalization.Controlled} is now specified as:
! 
! @example
! type Controlled is abstract tagged null record
!    with Initialize => Initialize,
!       Adjust => Adjust,
!       Finalize => Finalize,
!       Legacy_Heap_Finalization, Exceptions_In_Finalize;
! 
!       procedure Initialize (Self : in out Controlled) is abstract;
!       procedure Adjust (Self : in out Controlled) is abstract;
!       procedure Finalize (Self : in out Controlled) is abstract;
! @end example
! 
! ### Examples
! 
! A simple example of a ref-counted type:
! 
! @example
! type T is record
!    Value : Integer;
!    Ref_Count : Natural := 0;
! end record;
! 
! procedure Inc_Ref (X : in out T);
! procedure Dec_Ref (X : in out T);
! 
! type T_Access is access all T;
! 
! type T_Ref is record
!    Value : T_Access;
! end record
!    with Adjust   => Adjust,
!       Finalize => Finalize;
! 
! procedure Adjust (Ref : in out T_Ref) is
! begin
!    Inc_Ref (Ref.Value);
! end Adjust;
! 
! procedure Finalize (Ref : in out T_Ref) is
! begin
!    Def_Ref (Ref.Value);
! end Finalize;
! @end example
! 
! A simple file handle that ensures resources are properly released:
! 
! @example
! package P is
!    type File (<>) is limited private;
! 
!    function Open (Path : String) return File;
! 
!    procedure Close (F : in out File);
! private
!    type File is limited record
!       Handle : ...;
!    end record
!       with Finalize => Close;
! @end example
! 
! @node Finalized tagged types,Composite types,New specification for Ada Finalization Controlled,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions finalized-tagged-types}@anchor{465}
! @subsubsection Finalized tagged types
! 
! 
! Aspects are inherited by derived types and optionally overriden by those. The
! compiler-generated calls to the user-defined operations are then
! dispatching whenever it makes sense, i.e. the object in question is of
! class-wide type and the class includes at least one finalized tagged type.
! 
! However note that for simplicity, it is forbidden to change the value of any of
! those new aspects in derived types.
! 
! @node Composite types,Interoperability with controlled types,Finalized tagged types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{466}
! @subsubsection Composite types
! 
! 
! When a finalized type is used as a component of a composite type, the latter
! becomes finalized as well. The three primitives are derived automatically
! in order to call the primitives of their components.
! 
! If that composite type was already user-finalized, then the compiler
! calls the primitives of the components so as to stay consistent with today’s
! controlled types’s behavior.
! 
! So, @code{Initialize} and @code{Adjust} are called on components before they
! are called on the composite object, but @code{Finalize} is  called on the composite
! object first.
! 
! @node Interoperability with controlled types,,Composite types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{467}
! @subsubsection Interoperability with controlled types
! 
! 
! As a consequence of the redefinition of the @code{Controlled} type as a base type
! with the new aspects defined, interoperability with controlled type naturally
! follows the definition of the above rules. In particular:
! 
! 
! @itemize *
! 
! @item 
! It is possible to have a new finalized type have a controlled type
! component
! 
! @item 
! It is possible to have a controlled type have a finalized type
! component
! @end itemize
! 
! @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{468}
! @subsection Inference of Dependent Types in Generic Instantiations
! 
! 
! If a generic formal type T2 depends on another formal type T1,
! the actual for T1 can be inferred from the actual for T2.
! That is, you can give the actual for T2, and leave out the one
! for T1.
! 
! For example, @code{Ada.Unchecked_Deallocation} has two generic formals:
! 
! @example
! generic
!    type Object (<>) is limited private;
!    type Name is access Object;
! procedure Ada.Unchecked_Deallocation (X : in out Name);
! @end example
! 
! where @code{Name} depends on @code{Object}. With this language extension,
! you can leave out the actual for @code{Object}, as in:
! 
! @example
! type Integer_Access is access all Integer;
! 
! procedure Free is new Unchecked_Deallocation (Name => Integer_Access);
! @end example
! 
! The compiler will infer that the actual type for @code{Object} is @code{Integer}.
! Note that named notation is always required when using inference.
! 
! The following inferences are allowed:
! 
! 
! @itemize -
! 
! @item 
! For a formal access type, the designated type can be inferred.
! 
! @item 
! For a formal array type, the index type(s) and the component
! type can be inferred.
! 
! @item 
! For a formal type with discriminants, the type(s) of the discriminants
! can be inferred.
! @end itemize
! 
! Example for arrays:
! 
! @example
! generic
!    type Element_Type is private;
!    type Index_Type is (<>);
!    type Array_Type is array (Index_Type range <>) of Element_Type;
! package Array_Operations is
!    ...
! end Array_Operations;
! 
! ...
! 
! type Int_Array is array (Positive range <>) of Integer;
! 
! package Int_Array_Operations is new Array_Operations (Array_Type => Int_Array);
! @end example
! 
! The index and component types of @code{Array_Type} are inferred from
! @code{Int_Array}, so that the above instantiation is equivalent to
! the following standard-Ada instantiation:
! 
! @example
! package Int_Array_Operations is new Array_Operations
!    (Element_Type => Integer,
!       Index_Type   => Positive,
!       Array_Type   => Int_Array);
! @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{469}
! @subsection External_Initialization Aspect
! 
! 
! The @code{External_Initialization} aspect provides a feature similar to Rust’s @code{include_bytes!}
! and to C23’s @code{#embed}. It has the effect of initializing an object with the contents of
! a file specified by a file path.
! 
! Only string objects and objects of type @code{Ada.Streams.Stream_Element_Array} can be subject
! to the @code{External_Initialization} aspect.
! 
! Example:
! 
! @example
! with Ada.Streams;
! 
! package P is
!    S : constant String with External_Initialization => "foo.txt";
! 
!    X : constant Ada.Streams.Stream_Element_Array with External_Initialization => "bar.bin";
! end P;
! @end example
! 
! @code{External_Initialization} aspect accepts the following parameters:
! 
! 
! @itemize -
! 
! @item 
! mandatory @code{Path}: the path the compiler uses to access the binary resource.
! @end itemize
! 
! If @code{Path} is a relative path, it is interpreted relatively to the directory of the file that contains the aspect specification.
! 
! @cartouche
! @quotation Attention 
! The maximum size of loaded files is limited to 2@w{^31} bytes.
! @end quotation
! @end cartouche
! 
! @node Finally construct,,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{46a}
! @subsection Finally construct
! 
! 
! The @code{finally} keyword makes it possible to have a sequence of statements be executed when
! another sequence of statements is completed, whether normally or abnormally.
! 
! This feature is similar to the one with the same name in other languages such as Java.
! 
! @menu
! * Syntax: Syntax<2>. 
! * Legality Rules: Legality Rules<2>. 
! * Dynamic Semantics: Dynamic Semantics<2>. 
! 
! @end menu
! 
! @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{46b}
! @subsubsection Syntax
! 
! 
! @example
! handled_sequence_of_statements ::=
!      sequence_of_statements
!   [exception
!      exception_handler
!     @{exception_handler@}]
!   [finally
!     sequence_of_statements]
! @end example
! 
! @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{46c}
! @subsubsection Legality Rules
! 
! 
! Return statements in the @code{sequence_of_statements} attached to the finally that would cause control
! to be transferred outside the finally part are forbidden.
! 
! 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{46d}
! @subsubsection Dynamic Semantics
! 
! 
! Statements in the optional @code{sequence_of_statements} contained in the @code{finally} branch will be
! executed unconditionally, after the main @code{sequence_of_statements} is executed, and after any
! potential @code{exception_handler} is executed.
! 
! If an exception is raised in the finally part, it cannot be caught by the @code{exception_handler}.
! 
! Abort/ATC (asynchronous transfer of control) cannot interrupt a finally block, nor prevent its
! execution, that is the finally block must be executed in full even if the containing task is
! aborted, or if the control is transferred out of the block.
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{46e}@anchor{gnat_rm/security_hardening_features id1}@anchor{46f}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
*************** change.
*** 29392,29398 ****
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{44f}
  @section Register Scrubbing
  
  
--- 31278,31284 ----
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{470}
  @section Register Scrubbing
  
  
*************** programming languages, see @cite{Using t
*** 29428,29434 ****
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{450}
  @section Stack Scrubbing
  
  
--- 31314,31320 ----
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{471}
  @section Stack Scrubbing
  
  
*************** Bar_Callable_Ptr.
*** 29572,29578 ****
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{451}
  @section Hardened Conditionals
  
  
--- 31458,31464 ----
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{472}
  @section Hardened Conditionals
  
  
*************** be used with other programming languages
*** 29662,29668 ****
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{452}
  @section Hardened Booleans
  
  
--- 31548,31554 ----
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{473}
  @section Hardened Booleans
  
  
*************** and more details on that attribute, see
*** 29723,29729 ****
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{453}
  @section Control Flow Redundancy
  
  
--- 31609,31615 ----
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{474}
  @section Control Flow Redundancy
  
  
*************** see @cite{Using the GNU Compiler Collect
*** 29891,29897 ****
  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{454}@anchor{gnat_rm/obsolescent_features id1}@anchor{455}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
--- 31777,31783 ----
  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{475}@anchor{gnat_rm/obsolescent_features id1}@anchor{476}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
*************** compatibility purposes.
*** 29910,29916 ****
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{456}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{457}
  @section pragma No_Run_Time
  
  
--- 31796,31802 ----
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{477}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{478}
  @section pragma No_Run_Time
  
  
*************** preferred usage is to use an appropriate
*** 29923,29929 ****
  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{458}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{459}
  @section pragma Ravenscar
  
  
--- 31809,31815 ----
  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{479}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{47a}
  @section pragma Ravenscar
  
  
*************** The pragma @code{Ravenscar} has exactly
*** 29932,29938 ****
  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{45a}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{45b}
  @section pragma Restricted_Run_Time
  
  
--- 31818,31824 ----
  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{47b}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{47c}
  @section pragma Restricted_Run_Time
  
  
*************** preferred since the Ada 2005 pragma @cod
*** 29942,29948 ****
  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{45c}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{45d}
  @section pragma Task_Info
  
  
--- 31828,31834 ----
  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{47d}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{47e}
  @section pragma Task_Info
  
  
*************** in the spec of package System.Task_Info
*** 29968,29974 ****
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{45e}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{45f}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
--- 31854,31860 ----
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{47f}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{480}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
*************** to support the @code{Task_Info} pragma.
*** 29978,29984 ****
  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{460}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{461}
  @chapter Compatibility and Porting Guide
  
  
--- 31864,31870 ----
  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{481}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{482}
  @chapter Compatibility and Porting Guide
  
  
*************** applications developed in other Ada envi
*** 30000,30006 ****
  @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{462}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{463}
  @section Writing Portable Fixed-Point Declarations
  
  
--- 31886,31892 ----
  @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{483}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{484}
  @section Writing Portable Fixed-Point Declarations
  
  
*************** If you follow this scheme you will be gu
*** 30122,30128 ****
  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{464}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{465}
  @section Compatibility with Ada 83
  
  
--- 32008,32014 ----
  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{485}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{486}
  @section Compatibility with Ada 83
  
  
*************** following subsections treat the most lik
*** 30150,30156 ****
  @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{466}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{467}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
--- 32036,32042 ----
  @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{487}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{488}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
*************** the fix is usually simply to add the @co
*** 30250,30256 ****
  @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{468}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{469}
  @subsection More deterministic semantics
  
  
--- 32136,32142 ----
  @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{489}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{48a}
  @subsection More deterministic semantics
  
  
*************** which open select branches are executed.
*** 30278,30284 ****
  @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{46a}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{46b}
  @subsection Changed semantics
  
  
--- 32164,32170 ----
  @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{48b}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{48c}
  @subsection Changed semantics
  
  
*************** covers only the restricted range.
*** 30320,30326 ****
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{46c}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{46d}
  @subsection Other language compatibility issues
  
  
--- 32206,32212 ----
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{48d}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{48e}
  @subsection Other language compatibility issues
  
  
*************** include @code{pragma Interface} and the
*** 30353,30359 ****
  @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{46e}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{46f}
  @section Compatibility between Ada 95 and Ada 2005
  
  
--- 32239,32245 ----
  @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{48f}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{490}
  @section Compatibility between Ada 95 and Ada 2005
  
  
*************** can declare a function returning a value
*** 30425,30431 ****
  @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{470}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{471}
  @section Implementation-dependent characteristics
  
  
--- 32311,32317 ----
  @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{491}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{492}
  @section Implementation-dependent characteristics
  
  
*************** transition from certain Ada 83 compilers
*** 30448,30454 ****
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{472}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{473}
  @subsection Implementation-defined pragmas
  
  
--- 32334,32340 ----
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{494}
  @subsection Implementation-defined pragmas
  
  
*************** avoiding compiler rejection of units tha
*** 30470,30476 ****
  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{474}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{475}
  @subsection Implementation-defined attributes
  
  
--- 32356,32362 ----
  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{495}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{496}
  @subsection Implementation-defined attributes
  
  
*************** Ada 83, GNAT supplies the attributes @co
*** 30484,30490 ****
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{476}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{477}
  @subsection Libraries
  
  
--- 32370,32376 ----
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{498}
  @subsection Libraries
  
  
*************** be preferable to retrofit the applicatio
*** 30513,30519 ****
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{478}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{479}
  @subsection Elaboration order
  
  
--- 32399,32405 ----
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{49a}
  @subsection Elaboration order
  
  
*************** pragmas either globally (as an effect of
*** 30549,30555 ****
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{47a}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{47b}
  @subsection Target-specific aspects
  
  
--- 32435,32441 ----
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{49c}
  @subsection Target-specific aspects
  
  
*************** on the robustness of the original design
*** 30562,30571 ****
  Ada 2005 and Ada 2012) 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{47c,,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{47d}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{47e}
  @section Compatibility with Other Ada Systems
  
  
--- 32448,32457 ----
  Ada 2005 and Ada 2012) 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{49d,,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{49e}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{49f}
  @section Compatibility with Other Ada Systems
  
  
*************** far beyond this minimal set, as describe
*** 30608,30614 ****
  @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{47f}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{47c}
  @section Representation Clauses
  
  
--- 32494,32500 ----
  @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{4a0}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{49d}
  @section Representation Clauses
  
  
*************** with thin pointers.
*** 30701,30707 ****
  @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{480}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{481}
  @section Compatibility with HP Ada 83
  
  
--- 32587,32593 ----
  @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{4a1}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4a2}
  @section Compatibility with HP Ada 83
  
  
*************** extension of package System.
*** 30731,30737 ****
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{482}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{483}
  @chapter GNU Free Documentation License
  
  
--- 32617,32623 ----
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4a3}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4a4}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gnat_ugn.texi gcc-15.1.0/gcc/ada/gnat_ugn.texi
*** gcc-14.2.0/gcc/ada/gnat_ugn.texi	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnat_ugn.texi	Fri Apr 25 08:18:00 2025
***************
*** 3,9 ****
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
--- 3,9 ----
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Apr 15, 2024
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Jan 13, 2025
  
  AdaCore
  
! Copyright @copyright{} 2008-2025, Free Software Foundation
  @end quotation
  
  @end copying
*************** Building Executable Programs with GNAT
*** 239,244 ****
--- 239,245 ----
  * Binding with gnatbind:: 
  * Linking with gnatlink:: 
  * Using the GNU make Utility:: 
+ * GNAT with the LLVM Back End:: 
  
  Building with gnatmake
  
*************** Compiler Switches
*** 261,266 ****
--- 262,268 ----
  * Alphabetical List of All Switches:: 
  * Output and Error Message Control:: 
  * Warning Message Control:: 
+ * Info message Control:: 
  * Debugging and Assertion Control:: 
  * Validity Checking:: 
  * Style Checking:: 
*************** Run-Time Libraries
*** 425,438 ****
  
  * Summary of Run-Time Configurations:: 
  
- Specifying a Run-Time Library
- 
- * Choosing the Scheduling Policy:: 
- 
  GNU/Linux Topics
  
  * Required Packages on GNU/Linux:: 
  * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
  * A GNU/Linux Debug Quirk:: 
  
  Microsoft Windows Topics
--- 427,437 ----
  
  * Summary of Run-Time Configurations:: 
  
  GNU/Linux Topics
  
  * Required Packages on GNU/Linux:: 
  * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
+ * Choosing the Scheduling Policy with GNU/Linux:: 
  * A GNU/Linux Debug Quirk:: 
  
  Microsoft Windows Topics
*************** Microsoft Windows Topics
*** 442,447 ****
--- 441,447 ----
  * CONSOLE and WINDOWS subsystems:: 
  * Temporary Files:: 
  * Disabling Command Line Argument Expansion:: 
+ * Choosing the Scheduling Policy with Windows:: 
  * Windows Socket Timeouts:: 
  * Mixed-Language Programming on Windows:: 
  * Windows Specific Add-Ons:: 
*************** toolset for the full Ada programming lan
*** 550,562 ****
  It documents the features of the compiler and tools, and explains
  how to use them to build Ada applications.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 202x, and it may also be
! invoked in Ada 83 compatibility mode.
! By default, GNAT assumes Ada 2012, but you can override with a
! compiler switch (@ref{6,,Compiling Different Versions of Ada})
! to explicitly specify the language version.
! Throughout this manual, references to ‘Ada’ without a year suffix
! apply to all Ada versions of the language, starting with Ada 95.
  
  @menu
  * What This Guide Contains:: 
--- 550,569 ----
  It documents the features of the compiler and tools, and explains
  how to use them to build Ada applications.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 2022.  You may
! also invoke it in Ada 83 compatibility mode.  By default, GNAT assumes
! Ada 2012, but you can use a compiler switch
! (@ref{6,,Compiling Different Versions of Ada}) to explicitly specify the
! language version.  Throughout this manual, references to ‘Ada’ without
! a year suffix apply to all versions of the Ada language starting with
! Ada 95.
! 
! GNAT supports both the GCC and LLVM back end compilation families.
! Most GNAT versions use the GCC back end, but some are now available using
! the LLVM back end. In some places in this manual, we distinguish between
! the two back ends, but in most cases, everything in this manual applies
! to both back ends. We refer to GNAT with the LLVM back end as ‘GNAT LLVM’.
! See @ref{7,,GNAT with the LLVM Back End} for limitations of GNAT LLVM.
  
  @menu
  * What This Guide Contains:: 
*************** apply to all Ada versions of the languag
*** 567,573 ****
  @end menu
  
  @node What This Guide Contains,What You Should Know before Reading This Guide,,About This Guide
! @anchor{gnat_ugn/about_this_guide what-this-guide-contains}@anchor{7}
  @section What This Guide Contains
  
  
--- 574,580 ----
  @end menu
  
  @node What This Guide Contains,What You Should Know before Reading This Guide,,About This Guide
! @anchor{gnat_ugn/about_this_guide what-this-guide-contains}@anchor{8}
  @section What This Guide Contains
  
  
*************** This guide contains the following chapte
*** 577,600 ****
  @itemize *
  
  @item 
! @ref{8,,Getting Started with GNAT} describes how to get started compiling
  and running Ada programs with the GNAT Ada programming environment.
  
  @item 
! @ref{9,,The GNAT Compilation Model} describes the compilation model used
  by GNAT.
  
  @item 
! @ref{a,,Building Executable Programs with GNAT} describes how to use the
  main GNAT tools to build executable programs, and it also gives examples of
  using the GNU make utility with GNAT.
  
  @item 
! @ref{b,,GNAT Utility Programs} explains the various utility programs that
  are included in the GNAT environment.
  
  @item 
! @ref{c,,GNAT and Program Execution} covers a number of topics related to
  running, debugging, and tuning the performance of programs developed
  with GNAT.
  @end itemize
--- 584,607 ----
  @itemize *
  
  @item 
! @ref{9,,Getting Started with GNAT} describes how to get started compiling
  and running Ada programs with the GNAT Ada programming environment.
  
  @item 
! @ref{a,,The GNAT Compilation Model} describes the compilation model used
  by GNAT.
  
  @item 
! @ref{b,,Building Executable Programs with GNAT} describes how to use the
  main GNAT tools to build executable programs, and it also gives examples of
  using the GNU make utility with GNAT.
  
  @item 
! @ref{c,,GNAT Utility Programs} explains the various utility programs that
  are included in the GNAT environment.
  
  @item 
! @ref{d,,GNAT and Program Execution} covers a number of topics related to
  running, debugging, and tuning the performance of programs developed
  with GNAT.
  @end itemize
*************** Appendices cover several additional topi
*** 605,629 ****
  @itemize *
  
  @item 
! @ref{d,,Platform-Specific Information} describes the different run-time
  library implementations and also presents information on how to use
  GNAT on several specific platforms.
  
  @item 
! @ref{e,,Example of Binder Output File} shows the source code for the binder
  output file for a sample program.
  
  @item 
! @ref{f,,Elaboration Order Handling in GNAT} describes how GNAT helps
  you deal with elaboration order issues.
  
  @item 
! @ref{10,,Inline Assembler} shows how to use the inline assembly facility
  in an Ada program.
  @end itemize
  
  @node What You Should Know before Reading This Guide,Related Information,What This Guide Contains,About This Guide
! @anchor{gnat_ugn/about_this_guide what-you-should-know-before-reading-this-guide}@anchor{11}
  @section What You Should Know before Reading This Guide
  
  
--- 612,636 ----
  @itemize *
  
  @item 
! @ref{e,,Platform-Specific Information} describes the different run-time
  library implementations and also presents information on how to use
  GNAT on several specific platforms.
  
  @item 
! @ref{f,,Example of Binder Output File} shows the source code for the binder
  output file for a sample program.
  
  @item 
! @ref{10,,Elaboration Order Handling in GNAT} describes how GNAT helps
  you deal with elaboration order issues.
  
  @item 
! @ref{11,,Inline Assembler} shows how to use the inline assembly facility
  in an Ada program.
  @end itemize
  
  @node What You Should Know before Reading This Guide,Related Information,What This Guide Contains,About This Guide
! @anchor{gnat_ugn/about_this_guide what-you-should-know-before-reading-this-guide}@anchor{12}
  @section What You Should Know before Reading This Guide
  
  
*************** Reference manuals for Ada 95, Ada 2005,
*** 638,644 ****
  the GNAT documentation package.
  
  @node Related Information,Conventions,What You Should Know before Reading This Guide,About This Guide
! @anchor{gnat_ugn/about_this_guide related-information}@anchor{12}
  @section Related Information
  
  
--- 645,651 ----
  the GNAT documentation package.
  
  @node Related Information,Conventions,What You Should Know before Reading This Guide,About This Guide
! @anchor{gnat_ugn/about_this_guide related-information}@anchor{13}
  @section Related Information
  
  
*************** environment Emacs.
*** 676,682 ****
  @end itemize
  
  @node Conventions,,Related Information,About This Guide
! @anchor{gnat_ugn/about_this_guide conventions}@anchor{13}
  @section Conventions
  
  
--- 683,689 ----
  @end itemize
  
  @node Conventions,,Related Information,About This Guide
! @anchor{gnat_ugn/about_this_guide conventions}@anchor{14}
  @section Conventions
  
  
*************** and then shown this way.
*** 718,735 ****
  @end example
  
  @item 
! Commands that are entered by the user are shown as preceded by a prompt string
  comprising the @code{$} character followed by a space.
  
  @item 
  Full file names are shown with the ‘/’ character
  as the directory separator; e.g., @code{parent-dir/subdir/myfile.adb}.
  If you are using GNAT on a Windows platform, please note that
! the ‘\’ character should be used instead.
  @end itemize
  
  @node Getting Started with GNAT,The GNAT Compilation Model,About This Guide,Top
! @anchor{gnat_ugn/getting_started_with_gnat doc}@anchor{14}@anchor{gnat_ugn/getting_started_with_gnat getting-started-with-gnat}@anchor{8}@anchor{gnat_ugn/getting_started_with_gnat id1}@anchor{15}
  @chapter Getting Started with GNAT
  
  
--- 725,742 ----
  @end example
  
  @item 
! Commands that you enter are shown as preceded by a prompt string
  comprising the @code{$} character followed by a space.
  
  @item 
  Full file names are shown with the ‘/’ character
  as the directory separator; e.g., @code{parent-dir/subdir/myfile.adb}.
  If you are using GNAT on a Windows platform, please note that
! you should use the ‘\’ character instead.
  @end itemize
  
  @node Getting Started with GNAT,The GNAT Compilation Model,About This Guide,Top
! @anchor{gnat_ugn/getting_started_with_gnat doc}@anchor{15}@anchor{gnat_ugn/getting_started_with_gnat getting-started-with-gnat}@anchor{9}@anchor{gnat_ugn/getting_started_with_gnat id1}@anchor{16}
  @chapter Getting Started with GNAT
  
  
*************** For information on GNAT Studio please re
*** 752,821 ****
  @end menu
  
  @node System Requirements,Running GNAT,,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id2}@anchor{16}@anchor{gnat_ugn/getting_started_with_gnat system-requirements}@anchor{17}
  @section System Requirements
  
  
! Even though any machine can run the GNAT toolset and GNAT Studio IDE, in order
! to get the best experience, we recommend using a machine with as many cores
! as possible since all individual compilations can run in parallel.
  A comfortable setup for a compiler server is a machine with 24 physical cores
  or more, with at least 48 GB of memory (2 GB per core).
  
! For a desktop machine, a minimum of 4 cores is recommended (8 preferred),
  with at least 2GB per core (so 8 to 16GB).
  
! In addition, for running and navigating sources in GNAT Studio smoothly, we
! recommend at least 1.5 GB plus 3 GB of RAM per 1 million source line of code.
! In other words, we recommend at least 3 GB for for 500K lines of code and
  7.5 GB for 2 million lines of code.
  
! Note that using local and fast drives will also make a difference in terms of
! build and link time. Network drives such as NFS, SMB, or worse, configuration
! management filesystems (such as ClearCase dynamic views) should be avoided as
! much as possible and will produce very degraded performance (typically 2 to 3
! times slower than on local fast drives). If such slow drives cannot be avoided
! for accessing the source code, then you should at least configure your project
! file so that the result of the compilation is stored on a drive local to the
! machine performing the run. This can be achieved by setting the @code{Object_Dir}
! project file attribute.
  
  @node Running GNAT,Running a Simple Ada Program,System Requirements,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id3}@anchor{18}@anchor{gnat_ugn/getting_started_with_gnat running-gnat}@anchor{19}
  @section Running GNAT
  
  
! Three steps are needed to create an executable file from an Ada source
! file:
  
  
  @itemize *
  
  @item 
! The source file(s) must be compiled.
  
  @item 
! The file(s) must be bound using the GNAT binder.
  
  @item 
! All appropriate object files must be linked to produce an executable.
  @end itemize
  
! All three steps are most commonly handled by using the @code{gnatmake}
! utility program that, given the name of the main program, automatically
! performs the necessary compilation, binding and linking steps.
  
  @node Running a Simple Ada Program,Running a Program with Multiple Units,Running GNAT,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id4}@anchor{1a}@anchor{gnat_ugn/getting_started_with_gnat running-a-simple-ada-program}@anchor{1b}
  @section Running a Simple Ada Program
  
  
! Any text editor may be used to prepare an Ada program.
! (If Emacs is used, the optional Ada mode may be helpful in laying out the
  program.)
  The program text is a normal text file. We will assume in our initial
  example that you have used your editor to prepare the following
! standard format text file:
  
  @example
  with Ada.Text_IO; use Ada.Text_IO;
--- 759,829 ----
  @end menu
  
  @node System Requirements,Running GNAT,,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id2}@anchor{17}@anchor{gnat_ugn/getting_started_with_gnat system-requirements}@anchor{18}
  @section System Requirements
  
  
! Even though any machine can run the GNAT toolset and GNAT Studio IDE,
! to get the best experience we recommend using a machine with as many cores
! as possible, allowing individual compilations to run in parallel.
  A comfortable setup for a compiler server is a machine with 24 physical cores
  or more, with at least 48 GB of memory (2 GB per core).
  
! For a desktop machine, we recommend a minimum of 4 cores (8 is preferred),
  with at least 2GB per core (so 8 to 16GB).
  
! In addition, for running and smoothly navigating sources in GNAT Studio, we
! recommend at least 1.5 GB, plus 3 GB of RAM per million source lines of code.
! So we recommend at least 3 GB for 500K lines of code and
  7.5 GB for 2 million lines of code.
  
! Using fast, local drives can make a significant difference in build
! and link times. You should avoid network drives such as NFS, SMB, or
! worse, configuration management filesystems (such as ClearCase dynamic
! views) as much as possible since these will produce very degraded
! performance (typically 2 to 3 times slower than on fast, local
! drives). If you cannot avoid using such slow drives for accessing
! source code, you should at least configure your project file so
! the result of the compilation is stored on a drive local to the
! machine performing the compilation. You can do this by setting the
! @code{Object_Dir} project file attribute.
  
  @node Running GNAT,Running a Simple Ada Program,System Requirements,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id3}@anchor{19}@anchor{gnat_ugn/getting_started_with_gnat running-gnat}@anchor{1a}
  @section Running GNAT
  
  
! You need to take three steps to create an executable file from an Ada
! source file:
  
  
  @itemize *
  
  @item 
! You must compile the source file(s).
  
  @item 
! You must bind the file(s) using the GNAT binder.
  
  @item 
! You must link all appropriate object files to produce an executable.
  @end itemize
  
! You most commonly perform all three steps by using the @code{gnatmake}
! utility program.  You pass it the name of the main program and it automatically
! performs the necessary compilation, binding, and linking steps.
  
  @node Running a Simple Ada Program,Running a Program with Multiple Units,Running GNAT,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id4}@anchor{1b}@anchor{gnat_ugn/getting_started_with_gnat running-a-simple-ada-program}@anchor{1c}
  @section Running a Simple Ada Program
  
  
! You may use any text editor to prepare an Ada program.
! (If you use Emacs, an optional Ada mode may be helpful in laying out the
  program.)
  The program text is a normal text file. We will assume in our initial
  example that you have used your editor to prepare the following
! standard format text file named @code{hello.adb}:
  
  @example
  with Ada.Text_IO; use Ada.Text_IO;
*************** begin
*** 825,846 ****
  end Hello;
  @end example
  
- This file should be named @code{hello.adb}.
  With the normal default file naming conventions, GNAT requires
  that each file
  contain a single compilation unit whose file name is the
! unit name,
! with periods replaced by hyphens; the
  extension is @code{ads} for a
  spec and @code{adb} for a body.
  You can override this default file naming convention by use of the
! special pragma @code{Source_File_Name} (for further information please
! see @ref{1c,,Using Other File Names}).
  Alternatively, if you want to rename your files according to this default
  convention, which is probably more convenient if you will be using GNAT
! for all your compilations, then the @code{gnatchop} utility
! can be used to generate correctly-named source files
! (see @ref{1d,,Renaming Files with gnatchop}).
  
  You can compile the program using the following command (@code{$} is used
  as the command prompt in the examples in this document):
--- 833,851 ----
  end Hello;
  @end example
  
  With the normal default file naming conventions, GNAT requires
  that each file
  contain a single compilation unit whose file name is the
! unit name with periods replaced by hyphens; the
  extension is @code{ads} for a
  spec and @code{adb} for a body.
  You can override this default file naming convention by use of the
! special pragma @code{Source_File_Name} (see @ref{1d,,Using Other File Names}).
  Alternatively, if you want to rename your files according to this default
  convention, which is probably more convenient if you will be using GNAT
! for all your compilations, then you use can use the @code{gnatchop} utility
! to generate correctly-named source files
! (see @ref{1e,,Renaming Files with gnatchop}).
  
  You can compile the program using the following command (@code{$} is used
  as the command prompt in the examples in this document):
*************** as the command prompt in the examples in
*** 849,864 ****
  $ gcc -c hello.adb
  @end example
  
! @code{gcc} is the command used to run the compiler. This compiler is
  capable of compiling programs in several languages, including Ada and
! C. It assumes that you have given it an Ada program if the file extension is
! either @code{.ads} or @code{.adb}, and it will then call
  the GNAT compiler to compile the specified file.
  
  The @code{-c} switch is required. It tells @code{gcc} to only do a
  compilation. (For C programs, @code{gcc} can also do linking, but this
! capability is not used directly for Ada programs, so the @code{-c}
! switch must always be present.)
  
  This compile command generates a file
  @code{hello.o}, which is the object
--- 854,869 ----
  $ gcc -c hello.adb
  @end example
  
! @code{gcc} is the command used to run the compiler. It is
  capable of compiling programs in several languages, including Ada and
! C. It assumes you have given it an Ada program if the file extension is
! either @code{.ads} or @code{.adb}, in which case it will call
  the GNAT compiler to compile the specified file.
  
  The @code{-c} switch is required. It tells @code{gcc} to only do a
  compilation. (For C programs, @code{gcc} can also do linking, but this
! capability is not used directly for Ada programs, so you must always
! specify the @code{-c}.)
  
  This compile command generates a file
  @code{hello.o}, which is the object
*************** an ‘Ada Library Information’ file @c
*** 867,877 ****
  which contains additional information used to check
  that an Ada program is consistent.
  
! To build an executable file, use either @code{gnatmake} or gprbuild with
! the name of the main file: these tools are builders that will take care of
  all the necessary build steps in the correct order.
  In particular, these builders automatically recompile any sources that have
! been modified since they were last compiled, or sources that depend
  on such modified sources, so that ‘version skew’ is avoided.
  
  @geindex Version skew (avoided by `@w{`}gnatmake`@w{`})
--- 872,882 ----
  which contains additional information used to check
  that an Ada program is consistent.
  
! To build an executable file, use either @code{gnatmake} or @code{gprbuild} with
! the name of the main file: these tools are builders that perform
  all the necessary build steps in the correct order.
  In particular, these builders automatically recompile any sources that have
! been modified since they were last compiled, as well as sources that depend
  on such modified sources, so that ‘version skew’ is avoided.
  
  @geindex Version skew (avoided by `@w{`}gnatmake`@w{`})
*************** on such modified sources, so that ‘ver
*** 880,886 ****
  $ gnatmake hello.adb
  @end example
  
! The result is an executable program called @code{hello}, which can be
  run by entering:
  
  @example
--- 885,891 ----
  $ gnatmake hello.adb
  @end example
  
! The result is an executable program called @code{hello}, which you can
  run by entering:
  
  @example
*************** Hello WORLD!
*** 899,910 ****
  appear in response to this command.
  
  @node Running a Program with Multiple Units,,Running a Simple Ada Program,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id5}@anchor{1e}@anchor{gnat_ugn/getting_started_with_gnat running-a-program-with-multiple-units}@anchor{1f}
  @section Running a Program with Multiple Units
  
  
! Consider a slightly more complicated example that has three files: a
! main program, and the spec and body of a package:
  
  @example
  package Greetings is
--- 904,915 ----
  appear in response to this command.
  
  @node Running a Program with Multiple Units,,Running a Simple Ada Program,Getting Started with GNAT
! @anchor{gnat_ugn/getting_started_with_gnat id5}@anchor{1f}@anchor{gnat_ugn/getting_started_with_gnat running-a-program-with-multiple-units}@anchor{20}
  @section Running a Program with Multiple Units
  
  
! Consider a slightly more complicated example with three files: a
! main program and the spec and body of a package:
  
  @example
  package Greetings is
*************** body of main program
*** 955,969 ****
  Note that there is no required order of compilation when using GNAT.
  In particular it is perfectly fine to compile the main program first.
  Also, it is not necessary to compile package specs in the case where
! there is an accompanying body; you only need to compile the body. If you want
  to submit these files to the compiler for semantic checking and not code
! generation, then use the @code{-gnatc} switch:
  
  @example
  $ gcc -c greetings.ads -gnatc
  @end example
  
! Although the compilation can be done in separate steps, in practice it is
  almost always more convenient to use the @code{gnatmake} or @code{gprbuild} tools:
  
  @example
--- 960,974 ----
  Note that there is no required order of compilation when using GNAT.
  In particular it is perfectly fine to compile the main program first.
  Also, it is not necessary to compile package specs in the case where
! there is an accompanying body; you only need compile the body. If you want
  to submit these files to the compiler for semantic checking and not code
! generation, use the @code{-gnatc} switch:
  
  @example
  $ gcc -c greetings.ads -gnatc
  @end example
  
! Although you can do the compilation in separate steps, in practice it’s
  almost always more convenient to use the @code{gnatmake} or @code{gprbuild} tools:
  
  @example
*************** $ gnatmake gmain.adb
*** 973,979 ****
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node The GNAT Compilation Model,Building Executable Programs with GNAT,Getting Started with GNAT,Top
! @anchor{gnat_ugn/the_gnat_compilation_model doc}@anchor{20}@anchor{gnat_ugn/the_gnat_compilation_model id1}@anchor{21}@anchor{gnat_ugn/the_gnat_compilation_model the-gnat-compilation-model}@anchor{9}
  @chapter The GNAT Compilation Model
  
  
--- 978,984 ----
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node The GNAT Compilation Model,Building Executable Programs with GNAT,Getting Started with GNAT,Top
! @anchor{gnat_ugn/the_gnat_compilation_model doc}@anchor{21}@anchor{gnat_ugn/the_gnat_compilation_model id1}@anchor{22}@anchor{gnat_ugn/the_gnat_compilation_model the-gnat-compilation-model}@anchor{a}
  @chapter The GNAT Compilation Model
  
  
*************** Topics related to source file makeup and
*** 997,1040 ****
  @itemize *
  
  @item 
! @ref{22,,Source Representation}
  
  @item 
! @ref{23,,Foreign Language Representation}
  
  @item 
! @ref{24,,File Naming Topics and Utilities}
  @end itemize
  
  @item 
! @ref{25,,Configuration Pragmas}
  
  @item 
! @ref{26,,Generating Object Files}
  
  @item 
! @ref{27,,Source Dependencies}
  
  @item 
! @ref{28,,The Ada Library Information Files}
  
  @item 
! @ref{29,,Binding an Ada Program}
  
  @item 
! @ref{2a,,GNAT and Libraries}
  
  @item 
! @ref{2b,,Conditional Compilation}
  
  @item 
! @ref{2c,,Mixed Language Programming}
  
  @item 
! @ref{2d,,GNAT and Other Compilation Models}
  
  @item 
! @ref{2e,,Using GNAT Files with External Tools}
  @end itemize
  
  @menu
--- 1002,1045 ----
  @itemize *
  
  @item 
! @ref{23,,Source Representation}
  
  @item 
! @ref{24,,Foreign Language Representation}
  
  @item 
! @ref{25,,File Naming Topics and Utilities}
  @end itemize
  
  @item 
! @ref{26,,Configuration Pragmas}
  
  @item 
! @ref{27,,Generating Object Files}
  
  @item 
! @ref{28,,Source Dependencies}
  
  @item 
! @ref{29,,The Ada Library Information Files}
  
  @item 
! @ref{2a,,Binding an Ada Program}
  
  @item 
! @ref{2b,,GNAT and Libraries}
  
  @item 
! @ref{2c,,Conditional Compilation}
  
  @item 
! @ref{2d,,Mixed Language Programming}
  
  @item 
! @ref{2e,,GNAT and Other Compilation Models}
  
  @item 
! @ref{2f,,Using GNAT Files with External Tools}
  @end itemize
  
  @menu
*************** Topics related to source file makeup and
*** 1055,1061 ****
  @end menu
  
  @node Source Representation,Foreign Language Representation,,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id2}@anchor{2f}@anchor{gnat_ugn/the_gnat_compilation_model source-representation}@anchor{22}
  @section Source Representation
  
  
--- 1060,1066 ----
  @end menu
  
  @node Source Representation,Foreign Language Representation,,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id2}@anchor{30}@anchor{gnat_ugn/the_gnat_compilation_model source-representation}@anchor{23}
  @section Source Representation
  
  
*************** Topics related to source file makeup and
*** 1069,1076 ****
  
  Ada source programs are represented in standard text files, using
  Latin-1 coding. Latin-1 is an 8-bit code that includes the familiar
! 7-bit ASCII set, plus additional characters used for
! representing foreign languages (see @ref{23,,Foreign Language Representation}
  for support of non-USA character sets). The format effector characters
  are represented using their standard ASCII encodings, as follows:
  
--- 1074,1081 ----
  
  Ada source programs are represented in standard text files, using
  Latin-1 coding. Latin-1 is an 8-bit code that includes the familiar
! 7-bit ASCII set plus additional characters used for
! representing foreign languages (see @ref{24,,Foreign Language Representation}
  for support of non-USA character sets). The format effector characters
  are represented using their standard ASCII encodings, as follows:
  
*************** Form feed
*** 1154,1164 ****
  
  @end quotation
  
! Source files are in standard text file format. In addition, GNAT will
! recognize a wide variety of stream formats, in which the end of
  physical lines is marked by any of the following sequences:
  @code{LF}, @code{CR}, @code{CR-LF}, or @code{LF-CR}. This is useful
! in accommodating files that are imported from other operating systems.
  
  @geindex End of source file; Source file@comma{} end
  
--- 1159,1169 ----
  
  @end quotation
  
! Source files are in standard text file format. In addition, GNAT
! recognizes a wide variety of stream formats, in which the end of
  physical lines is marked by any of the following sequences:
  @code{LF}, @code{CR}, @code{CR-LF}, or @code{LF-CR}. This is useful
! in accommodating files imported from other operating systems.
  
  @geindex End of source file; Source file@comma{} end
  
*************** in accommodating files that are imported
*** 1167,1173 ****
  The end of a source file is normally represented by the physical end of
  file. However, the control character @code{16#1A#} (@code{SUB}) is also
  recognized as signalling the end of the source file. Again, this is
! provided for compatibility with other operating systems where this
  code is used to represent the end of file.
  
  @geindex spec (definition)
--- 1172,1178 ----
  The end of a source file is normally represented by the physical end of
  file. However, the control character @code{16#1A#} (@code{SUB}) is also
  recognized as signalling the end of the source file. Again, this is
! provided for compatibility with other, legacy, operating systems where this
  code is used to represent the end of file.
  
  @geindex spec (definition)
*************** associated with the unit. For example, t
*** 1178,1193 ****
  package declaration (a package `spec') and the corresponding body in
  separate files. An Ada `compilation' (which is a sequence of
  compilation units) is represented using a sequence of files. Similarly,
! you will place each subunit or child unit in a separate file.
  
  @node Foreign Language Representation,File Naming Topics and Utilities,Source Representation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model foreign-language-representation}@anchor{23}@anchor{gnat_ugn/the_gnat_compilation_model id3}@anchor{30}
  @section Foreign Language Representation
  
  
  GNAT supports the standard character sets defined in Ada as well as
  several other non-standard character sets for use in localized versions
! of the compiler (@ref{31,,Character Set Control}).
  
  @menu
  * Latin-1:: 
--- 1183,1198 ----
  package declaration (a package `spec') and the corresponding body in
  separate files. An Ada `compilation' (which is a sequence of
  compilation units) is represented using a sequence of files. Similarly,
! you place each subunit or child unit in a separate file.
  
  @node Foreign Language Representation,File Naming Topics and Utilities,Source Representation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model foreign-language-representation}@anchor{24}@anchor{gnat_ugn/the_gnat_compilation_model id3}@anchor{31}
  @section Foreign Language Representation
  
  
  GNAT supports the standard character sets defined in Ada as well as
  several other non-standard character sets for use in localized versions
! of the compiler (@ref{32,,Character Set Control}).
  
  @menu
  * Latin-1:: 
*************** of the compiler (@ref{31,,Character Set
*** 1198,1204 ****
  @end menu
  
  @node Latin-1,Other 8-Bit Codes,,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id4}@anchor{32}@anchor{gnat_ugn/the_gnat_compilation_model latin-1}@anchor{33}
  @subsection Latin-1
  
  
--- 1203,1209 ----
  @end menu
  
  @node Latin-1,Other 8-Bit Codes,,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id4}@anchor{33}@anchor{gnat_ugn/the_gnat_compilation_model latin-1}@anchor{34}
  @subsection Latin-1
  
  
*************** of the compiler (@ref{31,,Character Set
*** 1206,1212 ****
  
  The basic character set is Latin-1. This character set is defined by ISO
  standard 8859, part 1. The lower half (character codes @code{16#00#}
! … @code{16#7F#)} is identical to standard ASCII coding, but the upper
  half is used to represent additional characters. These include extended letters
  used by European languages, such as French accents, the vowels with umlauts
  used in German, and the extra letter A-ring used in Swedish.
--- 1211,1217 ----
  
  The basic character set is Latin-1. This character set is defined by ISO
  standard 8859, part 1. The lower half (character codes @code{16#00#}
! … @code{16#7F#)} is identical to standard ASCII coding but the upper
  half is used to represent additional characters. These include extended letters
  used by European languages, such as French accents, the vowels with umlauts
  used in German, and the extra letter A-ring used in Swedish.
*************** string literals. In addition, the extend
*** 1221,1227 ****
  letters can be used in identifiers.
  
  @node Other 8-Bit Codes,Wide_Character Encodings,Latin-1,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id5}@anchor{34}@anchor{gnat_ugn/the_gnat_compilation_model other-8-bit-codes}@anchor{35}
  @subsection Other 8-Bit Codes
  
  
--- 1226,1232 ----
  letters can be used in identifiers.
  
  @node Other 8-Bit Codes,Wide_Character Encodings,Latin-1,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id5}@anchor{35}@anchor{gnat_ugn/the_gnat_compilation_model other-8-bit-codes}@anchor{36}
  @subsection Other 8-Bit Codes
  
  
*************** lowercase equivalence.
*** 1299,1305 ****
  
  @item `IBM PC (code page 437)'
  
! This code page is the normal default for PCs in the U.S. It corresponds
  to the original IBM PC character set. This set has some, but not all, of
  the extended Latin-1 letters, but these letters do not have the same
  encoding as Latin-1. In this mode, these letters are allowed in
--- 1304,1310 ----
  
  @item `IBM PC (code page 437)'
  
! This code page is the normal default for PCs in the US. It corresponds
  to the original IBM PC character set. This set has some, but not all, of
  the extended Latin-1 letters, but these letters do not have the same
  encoding as Latin-1. In this mode, these letters are allowed in
*************** lowercase equivalence.
*** 1320,1326 ****
  
  @item `Full Upper 8-bit'
  
! Any character in the range 80-FF allowed in identifiers, and all are
  considered distinct. In other words, there are no uppercase and lowercase
  equivalences in this range. This is useful in conjunction with
  certain encoding schemes used for some foreign character sets (e.g.,
--- 1325,1331 ----
  
  @item `Full Upper 8-bit'
  
! Any character in the range 80-FF is allowed in identifiers and all are
  considered distinct. In other words, there are no uppercase and lowercase
  equivalences in this range. This is useful in conjunction with
  certain encoding schemes used for some foreign character sets (e.g.,
*************** the GNAT compiler sources. You will need
*** 1338,1344 ****
  of GNAT to obtain this file.
  
  @node Wide_Character Encodings,Wide_Wide_Character Encodings,Other 8-Bit Codes,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id6}@anchor{36}@anchor{gnat_ugn/the_gnat_compilation_model wide-character-encodings}@anchor{37}
  @subsection Wide_Character Encodings
  
  
--- 1343,1349 ----
  of GNAT to obtain this file.
  
  @node Wide_Character Encodings,Wide_Wide_Character Encodings,Other 8-Bit Codes,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id6}@anchor{37}@anchor{gnat_ugn/the_gnat_compilation_model wide-character-encodings}@anchor{38}
  @subsection Wide_Character Encodings
  
  
*************** A wide character is represented by a two
*** 1392,1399 ****
  @code{16#cd#}, with the restrictions described for upper-half encoding as
  described above. The internal character code is the corresponding JIS
  character according to the standard algorithm for Shift-JIS
! conversion. Only characters defined in the JIS code set table can be
! used with this encoding method.
  @end table
  
  @geindex EUC Coding
--- 1397,1404 ----
  @code{16#cd#}, with the restrictions described for upper-half encoding as
  described above. The internal character code is the corresponding JIS
  character according to the standard algorithm for Shift-JIS
! conversion. You can only use characters defined in the JIS code set table
! with this encoding method.
  @end table
  
  @geindex EUC Coding
*************** used with this encoding method.
*** 1404,1414 ****
  @item `EUC Coding'
  
  A wide character is represented by a two-character sequence
! @code{16#ab#} and
! @code{16#cd#}, with both characters being in the upper half. The internal
! character code is the corresponding JIS character according to the EUC
! encoding algorithm. Only characters defined in the JIS code set table
! can be used with this encoding method.
  
  @item `UTF-8 Coding'
  
--- 1409,1418 ----
  @item `EUC Coding'
  
  A wide character is represented by a two-character sequence
! @code{16#ab#} and @code{16#cd#}, with both characters being in the upper
! half. The internal character code is the corresponding JIS character
! according to the EUC encoding algorithm. You can only use characters
! defined in the JIS code set table with this encoding method.
  
  @item `UTF-8 Coding'
  
*************** where the @code{xxx} bits correspond to
*** 1428,1435 ****
  are represented as ASCII bytes and all upper half characters and
  other wide characters are represented as sequences of upper-half
  (The full UTF-8 scheme allows for encoding 31-bit characters as
! 6-byte sequences, and in the following section on wide wide
! characters, the use of these sequences is documented).
  
  @item `Brackets Coding'
  
--- 1432,1439 ----
  are represented as ASCII bytes and all upper half characters and
  other wide characters are represented as sequences of upper-half
  (The full UTF-8 scheme allows for encoding 31-bit characters as
! 6-byte sequences the use of these sequences is documented in the
! following section on wide wide characters.)
  
  @item `Brackets Coding'
  
*************** character sequence:
*** 1440,1453 ****
  [ " a b c d " ]
  @end example
  
! where @code{a}, @code{b}, @code{c}, @code{d} are the four hexadecimal
! characters (using uppercase letters) of the wide character code. For
! example, [‘A345’] is used to represent the wide character with code
! @code{16#A345#}. It is also possible (though not required) to use the
! Brackets coding for upper half characters. For example, the code
! @code{16#A3#} can be represented as @code{['A3']}.
  
! This scheme is compatible with use of the full Wide_Character set,
  and is also the method used for wide character encoding in some standard
  ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  @end table
--- 1444,1457 ----
  [ " a b c d " ]
  @end example
  
! where @code{a}, @code{b}, @code{c}, @code{d} are the four hexadecimal characters
! (using uppercase letters) of the wide character code. For example,
! [‘A345’] is used to represent the wide character with code
! @code{16#A345#}. You can also (though you are not required to) use the
! Brackets coding for upper half characters. For example, you can
! represent the code @code{16#A3#} as @code{['A3']}.
  
! This scheme is compatible with use of the full @code{Wide_Character} set,
  and is also the method used for wide character encoding in some standard
  ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  @end table
*************** use of the upper half of the Latin-1 set
*** 1461,1467 ****
  @end cartouche
  
  @node Wide_Wide_Character Encodings,,Wide_Character Encodings,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id7}@anchor{38}@anchor{gnat_ugn/the_gnat_compilation_model wide-wide-character-encodings}@anchor{39}
  @subsection Wide_Wide_Character Encodings
  
  
--- 1465,1471 ----
  @end cartouche
  
  @node Wide_Wide_Character Encodings,,Wide_Character Encodings,Foreign Language Representation
! @anchor{gnat_ugn/the_gnat_compilation_model id7}@anchor{39}@anchor{gnat_ugn/the_gnat_compilation_model wide-wide-character-encodings}@anchor{3a}
  @subsection Wide_Wide_Character Encodings
  
  
*************** characters (using uppercase letters) of
*** 1507,1525 ****
  example, [“1F4567”] is used to represent the wide wide character with code
  @code{16#001F_4567#}.
  
! This scheme is compatible with use of the full Wide_Wide_Character set,
  and is also the method used for wide wide character encoding in some standard
  ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  @end table
  
  @node File Naming Topics and Utilities,Configuration Pragmas,Foreign Language Representation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model file-naming-topics-and-utilities}@anchor{24}@anchor{gnat_ugn/the_gnat_compilation_model id8}@anchor{3a}
  @section File Naming Topics and Utilities
  
  
! GNAT has a default file naming scheme and also provides the user with
! a high degree of control over how the names and extensions of the
! source files correspond to the Ada compilation units that they contain.
  
  @menu
  * File Naming Rules:: 
--- 1511,1530 ----
  example, [“1F4567”] is used to represent the wide wide character with code
  @code{16#001F_4567#}.
  
! This scheme is compatible with use of the full @code{Wide_Wide_Character} set,
  and is also the method used for wide wide character encoding in some standard
  ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
  @end table
  
  @node File Naming Topics and Utilities,Configuration Pragmas,Foreign Language Representation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model file-naming-topics-and-utilities}@anchor{25}@anchor{gnat_ugn/the_gnat_compilation_model id8}@anchor{3b}
  @section File Naming Topics and Utilities
  
  
! GNAT has a default file naming scheme, but and also provides you
! with a high degree of control over how the names and extensions of your
! source files correspond to the Ada compilation units that they
! contain.
  
  @menu
  * File Naming Rules:: 
*************** source files correspond to the Ada compi
*** 1532,1553 ****
  @end menu
  
  @node File Naming Rules,Using Other File Names,,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model file-naming-rules}@anchor{3b}@anchor{gnat_ugn/the_gnat_compilation_model id9}@anchor{3c}
  @subsection File Naming Rules
  
  
! The default file name is determined by the name of the unit that the
  file contains. The name is formed by taking the full expanded name of
! the unit and replacing the separating dots with hyphens and using
  lowercase for all letters.
  
! An exception arises if the file name generated by the above rules starts
  with one of the characters
! @code{a}, @code{g}, @code{i}, or @code{s}, and the second character is a
! minus. In this case, the character tilde is used in place
! of the minus. The reason for this special rule is to avoid clashes with
! the standard names for child units of the packages System, Ada,
! Interfaces, and GNAT, which use the prefixes
  @code{s-}, @code{a-}, @code{i-}, and @code{g-},
  respectively.
  
--- 1537,1558 ----
  @end menu
  
  @node File Naming Rules,Using Other File Names,,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model file-naming-rules}@anchor{3c}@anchor{gnat_ugn/the_gnat_compilation_model id9}@anchor{3d}
  @subsection File Naming Rules
  
  
! GNAT determines the default file name by the name of the unit that the
  file contains. The name is formed by taking the full expanded name of
! the unit, replacing the separating dots with hyphens, and using
  lowercase for all letters.
  
! An exception occurs if the file name generated by the above rules starts
  with one of the characters
! @code{a}, @code{g}, @code{i}, or @code{s} and the second character is a
! hyphen. In this case, the character tilde is used in place
! of the hypen. This special rule avoids clashes with
! the standard names for child units of the packages @code{System}, @code{Ada},
! @code{Interfaces}, and @code{GNAT}, which use the prefixes
  @code{s-}, @code{a-}, @code{i-}, and @code{g-},
  respectively.
  
*************** Following these rules can result in exce
*** 1639,1683 ****
  file names if corresponding
  unit names are long (for example, if child units or subunits are
  heavily nested). An option is available to shorten such long file names
! (called file name ‘krunching’). This may be particularly useful when
  programs being developed with GNAT are to be used on operating systems
! with limited file name lengths. @ref{3d,,Using gnatkr}.
  
  Of course, no file shortening algorithm can guarantee uniqueness over
  all possible unit names; if file name krunching is used, it is your
! responsibility to ensure no name clashes occur. Alternatively you
  can specify the exact file names that you want used, as described
  in the next section. Finally, if your Ada programs are migrating from a
! compiler with a different naming convention, you can use the gnatchop
  utility to produce source files that follow the GNAT naming conventions.
! (For details see @ref{1d,,Renaming Files with gnatchop}.)
  
  Note: in the case of Windows or Mac OS operating systems, case is not
! significant. So for example on Windows if the canonical name is
  @code{main-sub.adb}, you can use the file name @code{Main-Sub.adb} instead.
! However, case is significant for other operating systems, so for example,
  if you want to use other than canonically cased file names on a Unix system,
  you need to follow the procedures described in the next section.
  
  @node Using Other File Names,Alternative File Naming Schemes,File Naming Rules,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model id10}@anchor{3e}@anchor{gnat_ugn/the_gnat_compilation_model using-other-file-names}@anchor{1c}
  @subsection Using Other File Names
  
  
  @geindex File names
  
! In the previous section, we have described the default rules used by
  GNAT to determine the file name in which a given unit resides. It is
! often convenient to follow these default rules, and if you follow them,
  the compiler knows without being explicitly told where to find all
  the files it needs.
  
  @geindex Source_File_Name pragma
  
  However, in some cases, particularly when a program is imported from
! another Ada compiler environment, it may be more convenient for the
! programmer to specify which file names contain which units. GNAT allows
! arbitrary file names to be used by means of the Source_File_Name pragma.
  The form of this pragma is as shown in the following examples:
  
  @example
--- 1644,1688 ----
  file names if corresponding
  unit names are long (for example, if child units or subunits are
  heavily nested). An option is available to shorten such long file names
! (called file name ‘krunching’). You may find this particularly useful when
  programs being developed with GNAT are to be used on operating systems
! with limited file name lengths. @ref{3e,,Using gnatkr}.
  
  Of course, no file shortening algorithm can guarantee uniqueness over
  all possible unit names; if file name krunching is used, it is your
! responsibility to ensure no name clashes occur. Alternatively, you
  can specify the exact file names that you want used, as described
  in the next section. Finally, if your Ada programs are migrating from a
! compiler with a different naming convention, you can use the @code{gnatchop}
  utility to produce source files that follow the GNAT naming conventions.
! (For details see @ref{1e,,Renaming Files with gnatchop}.)
  
  Note: in the case of Windows or Mac OS operating systems, case is not
! significant. So, for example, on Windows if the canonical name is
  @code{main-sub.adb}, you can use the file name @code{Main-Sub.adb} instead.
! However, case is significant for other operating systems, so, for example,
  if you want to use other than canonically cased file names on a Unix system,
  you need to follow the procedures described in the next section.
  
  @node Using Other File Names,Alternative File Naming Schemes,File Naming Rules,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model id10}@anchor{3f}@anchor{gnat_ugn/the_gnat_compilation_model using-other-file-names}@anchor{1d}
  @subsection Using Other File Names
  
  
  @geindex File names
  
! The previous section described the default rules used by
  GNAT to determine the file name in which a given unit resides. It is
! usually convenient to follow these default rules, and if you follow them,
  the compiler knows without being explicitly told where to find all
  the files it needs.
  
  @geindex Source_File_Name pragma
  
  However, in some cases, particularly when a program is imported from
! another Ada compiler environment, it may be more convenient for you
! to specify which file names contain which units. GNAT allows
! arbitrary file names to be used by means of the @code{Source_File_Name} pragma.
  The form of this pragma is as shown in the following examples:
  
  @example
*************** indicates whether the file name is for a
*** 1694,1713 ****
  the file name itself is given by a string literal.
  
  The source file name pragma is a configuration pragma, which means that
! normally it will be placed in the @code{gnat.adc}
  file used to hold configuration
  pragmas that apply to a complete compilation environment.
  For more details on how the @code{gnat.adc} file is created and used
! see @ref{3f,,Handling of Configuration Pragmas}.
  
  @geindex gnat.adc
  
! GNAT allows completely arbitrary file names to be specified using the
  source file name pragma. However, if the file name specified has an
! extension other than @code{.ads} or @code{.adb} it is necessary to use
! a special syntax when compiling the file. The name in this case must be
! preceded by the special sequence @code{-x} followed by a space and the name
! of the language, here @code{ada}, as in:
  
  @example
  $ gcc -c -x ada peculiar_file_name.sim
--- 1699,1718 ----
  the file name itself is given by a string literal.
  
  The source file name pragma is a configuration pragma, which means that
! normally you will place it in the @code{gnat.adc}
  file used to hold configuration
  pragmas that apply to a complete compilation environment.
  For more details on how the @code{gnat.adc} file is created and used
! see @ref{40,,Handling of Configuration Pragmas}.
  
  @geindex gnat.adc
  
! GNAT allows you to specify completely arbitrary file names using the
  source file name pragma. However, if the file name specified has an
! extension other than @code{.ads} or @code{.adb} you must use a
! special syntax when compiling the file. The name on the command line
! in this case must be preceded by the special sequence @code{-x} followed
! by a space and the name of the language, here @code{ada}, as in:
  
  @example
  $ gcc -c -x ada peculiar_file_name.sim
*************** $ gcc -c -x ada peculiar_file_name.sim
*** 1715,1726 ****
  
  @code{gnatmake} handles non-standard file names in the usual manner (the
  non-standard file name for the main program is simply used as the
! argument to gnatmake). Note that if the extension is also non-standard,
! then it must be included in the @code{gnatmake} command, it may not
  be omitted.
  
  @node Alternative File Naming Schemes,Handling Arbitrary File Naming Conventions with gnatname,Using Other File Names,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model alternative-file-naming-schemes}@anchor{40}@anchor{gnat_ugn/the_gnat_compilation_model id11}@anchor{41}
  @subsection Alternative File Naming Schemes
  
  
--- 1720,1731 ----
  
  @code{gnatmake} handles non-standard file names in the usual manner (the
  non-standard file name for the main program is simply used as the
! argument to @code{gnatmake}). Note that if the extension is also non-standard,
! you must include it in the @code{gnatmake} command; it may not
  be omitted.
  
  @node Alternative File Naming Schemes,Handling Arbitrary File Naming Conventions with gnatname,Using Other File Names,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model alternative-file-naming-schemes}@anchor{41}@anchor{gnat_ugn/the_gnat_compilation_model id11}@anchor{42}
  @subsection Alternative File Naming Schemes
  
  
*************** be omitted.
*** 1731,1738 ****
  
  The previous section described the use of the @code{Source_File_Name}
  pragma to allow arbitrary names to be assigned to individual source files.
! However, this approach requires one pragma for each file, and especially in
! large systems can result in very long @code{gnat.adc} files, and also create
  a maintenance problem.
  
  @geindex Source_File_Name pragma
--- 1736,1743 ----
  
  The previous section described the use of the @code{Source_File_Name}
  pragma to allow arbitrary names to be assigned to individual source files.
! However, this approach requires one pragma for each file and, especially in
! large systems, can result in very long @code{gnat.adc} files, which can create
  a maintenance problem.
  
  @geindex Source_File_Name pragma
*************** systematically for this asterisk. The op
*** 1768,1822 ****
  @code{Casing} indicates
  whether the unit name is to be all upper-case letters, all lower-case letters,
  or mixed-case. If no
! @code{Casing} parameter is used, then the default is all
  lower-case.
  
! The optional @code{Dot_Replacement} string is used to replace any periods
! that occur in subunit or child unit names. If no @code{Dot_Replacement}
! argument is used then separating dots appear unchanged in the resulting
! file name.
! Although the above syntax indicates that the
! @code{Casing} argument must appear
! before the @code{Dot_Replacement} argument, but it
! is also permissible to write these arguments in the opposite order.
  
! As indicated, it is possible to specify different naming schemes for
! bodies, specs, and subunits. Quite often the rule for subunits is the
! same as the rule for bodies, in which case, there is no need to give
! a separate @code{Subunit_File_Name} rule, and in this case the
  @code{Body_File_name} rule is used for subunits as well.
  
! The separate rule for subunits can also be used to implement the rather
  unusual case of a compilation environment (e.g., a single directory) which
  contains a subunit and a child unit with the same unit name. Although
  both units cannot appear in the same partition, the Ada Reference Manual
  allows (but does not require) the possibility of the two units coexisting
  in the same environment.
  
! The file name translation works in the following steps:
  
  
  @itemize *
  
  @item 
  If there is a specific @code{Source_File_Name} pragma for the given unit,
! then this is always used, and any general pattern rules are ignored.
  
  @item 
  If there is a pattern type @code{Source_File_Name} pragma that applies to
! the unit, then the resulting file name will be used if the file exists. If
! more than one pattern matches, the latest one will be tried first, and the
! first attempt resulting in a reference to a file that exists will be used.
  
  @item 
  If no pattern type @code{Source_File_Name} pragma that applies to the unit
! for which the corresponding file exists, then the standard GNAT default
  naming rules are used.
  @end itemize
  
  As an example of the use of this mechanism, consider a commonly used scheme
  in which file names are all lower case, with separating periods copied
! unchanged to the resulting file name, and specs end with @code{.1.ada}, and
  bodies end with @code{.2.ada}. GNAT will follow this scheme if the following
  two pragmas appear:
  
--- 1773,1825 ----
  @code{Casing} indicates
  whether the unit name is to be all upper-case letters, all lower-case letters,
  or mixed-case. If no
! @code{Casing} parameter is used, the default is all
  lower-case.
  
! You use the optional @code{Dot_Replacement} string to replace any periods
! that occur in subunit or child unit names. If you don’t specify a
! @code{Dot_Replacement} argument, separating dots appear unchanged in the
! resulting file name.  The above syntax indicates that the @code{Casing}
! argument must appear before the @code{Dot_Replacement} argument, but you
! can write these arguments in any order.
  
! As indicated, you can specify different naming schemes for
! bodies, specs, and subunits. Quite often, the rule for subunits is the
! same as the rule for bodies, in which case, you need not provide
! a separate @code{Subunit_File_Name} rule; in this case the
  @code{Body_File_name} rule is used for subunits as well.
  
! You can also use the separate rule for subunits to implement the rather
  unusual case of a compilation environment (e.g., a single directory) which
  contains a subunit and a child unit with the same unit name. Although
  both units cannot appear in the same partition, the Ada Reference Manual
  allows (but does not require) the possibility of the two units coexisting
  in the same environment.
  
! File name translation consists of the following steps:
  
  
  @itemize *
  
  @item 
  If there is a specific @code{Source_File_Name} pragma for the given unit,
! this is always used and any general pattern rules are ignored.
  
  @item 
  If there is a pattern type @code{Source_File_Name} pragma that applies to
! the unit, the resulting file name is used if the file exists. If
! more than one pattern matches, the latest one is tried first and the
! first attempt that results in a reference to a file that exists is used.
  
  @item 
  If no pattern type @code{Source_File_Name} pragma that applies to the unit
! for which the corresponding file exists, the standard GNAT default
  naming rules are used.
  @end itemize
  
  As an example of the use of this mechanism, consider a commonly used scheme
  in which file names are all lower case, with separating periods copied
! unchanged to the resulting file name, specs end with @code{.1.ada}, and
  bodies end with @code{.2.ada}. GNAT will follow this scheme if the following
  two pragmas appear:
  
*************** pragma Source_File_Name
*** 1827,1834 ****
    (Body_File_Name => ".2.ada");
  @end example
  
! The default GNAT scheme is actually implemented by providing the following
! default pragmas internally:
  
  @example
  pragma Source_File_Name
--- 1830,1837 ----
    (Body_File_Name => ".2.ada");
  @end example
  
! The default GNAT scheme is equivalent to providing the following
! default pragmas:
  
  @example
  pragma Source_File_Name
*************** pragma Source_File_Name
*** 1838,1848 ****
  @end example
  
  Our final example implements a scheme typically used with one of the
! Ada 83 compilers, where the separator character for subunits was ‘__’
  (two underscores), specs were identified by adding @code{_.ADA}, bodies
  by adding @code{.ADA}, and subunits by
  adding @code{.SEP}. All file names were
! upper case. Child units were not present of course since this was an
  Ada 83 compiler, but it seems reasonable to extend this scheme to use
  the same double underscore separator for child units.
  
--- 1841,1851 ----
  @end example
  
  Our final example implements a scheme typically used with one of the
! legacy Ada 83 compilers, where the separator character for subunits was ‘__’
  (two underscores), specs were identified by adding @code{_.ADA}, bodies
  by adding @code{.ADA}, and subunits by
  adding @code{.SEP}. All file names were
! upper case. Child units were not present, of course, since this was an
  Ada 83 compiler, but it seems reasonable to extend this scheme to use
  the same double underscore separator for child units.
  
*************** pragma Source_File_Name
*** 1864,1870 ****
  @geindex gnatname
  
  @node Handling Arbitrary File Naming Conventions with gnatname,File Name Krunching with gnatkr,Alternative File Naming Schemes,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model handling-arbitrary-file-naming-conventions-with-gnatname}@anchor{42}@anchor{gnat_ugn/the_gnat_compilation_model id12}@anchor{43}
  @subsection Handling Arbitrary File Naming Conventions with @code{gnatname}
  
  
--- 1867,1873 ----
  @geindex gnatname
  
  @node Handling Arbitrary File Naming Conventions with gnatname,File Name Krunching with gnatkr,Alternative File Naming Schemes,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model handling-arbitrary-file-naming-conventions-with-gnatname}@anchor{43}@anchor{gnat_ugn/the_gnat_compilation_model id12}@anchor{44}
  @subsection Handling Arbitrary File Naming Conventions with @code{gnatname}
  
  
*************** pragma Source_File_Name
*** 1879,1910 ****
  @end menu
  
  @node Arbitrary File Naming Conventions,Running gnatname,,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model arbitrary-file-naming-conventions}@anchor{44}@anchor{gnat_ugn/the_gnat_compilation_model id13}@anchor{45}
  @subsubsection Arbitrary File Naming Conventions
  
  
! The GNAT compiler must be able to know the source file name of a compilation
! unit.  When using the standard GNAT default file naming conventions
! (@code{.ads} for specs, @code{.adb} for bodies), the GNAT compiler
  does not need additional information.
  
! When the source file names do not follow the standard GNAT default file naming
! conventions, the GNAT compiler must be given additional information through
! a configuration pragmas file (@ref{25,,Configuration Pragmas})
! or a project file.
! When the non-standard file naming conventions are well-defined,
! a small number of pragmas @code{Source_File_Name} specifying a naming pattern
! (@ref{40,,Alternative File Naming Schemes}) may be sufficient. However,
! if the file naming conventions are irregular or arbitrary, a number
! of pragma @code{Source_File_Name} for individual compilation units
! must be defined.
! To help maintain the correspondence between compilation unit names and
! source file names within the compiler,
! GNAT provides a tool @code{gnatname} to generate the required pragmas for a
  set of files.
  
  @node Running gnatname,Switches for gnatname,Arbitrary File Naming Conventions,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model id14}@anchor{46}@anchor{gnat_ugn/the_gnat_compilation_model running-gnatname}@anchor{47}
  @subsubsection Running @code{gnatname}
  
  
--- 1882,1912 ----
  @end menu
  
  @node Arbitrary File Naming Conventions,Running gnatname,,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model arbitrary-file-naming-conventions}@anchor{45}@anchor{gnat_ugn/the_gnat_compilation_model id13}@anchor{46}
  @subsubsection Arbitrary File Naming Conventions
  
  
! The GNAT compiler must know the source file name of a compilation unit
! in order to compile it.  When using the standard GNAT default file
! naming conventions (@code{.ads} for specs, @code{.adb} for bodies), it
  does not need additional information.
  
! When the source file names do not follow the standard GNAT default
! file naming conventions, you must give the GNAT compiler additional
! information through a configuration pragmas file
! (@ref{26,,Configuration Pragmas}) or a project file.  When the
! non-standard file naming conventions are well-defined, a small number
! of pragmas @code{Source_File_Name} specifying a naming pattern
! (@ref{41,,Alternative File Naming Schemes}) may be sufficient. However,
! if the file naming conventions are irregular or arbitrary, you must
! define a number of pragma @code{Source_File_Name} for individual
! compilation units.  To help maintain the correspondence between
! compilation unit names and source file names within the compiler, GNAT
! provides a tool @code{gnatname} to generate the required pragmas for a
  set of files.
  
  @node Running gnatname,Switches for gnatname,Arbitrary File Naming Conventions,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model id14}@anchor{47}@anchor{gnat_ugn/the_gnat_compilation_model running-gnatname}@anchor{48}
  @subsubsection Running @code{gnatname}
  
  
*************** $ gnatname [ switches ]  naming_pattern
*** 1915,1941 ****
      [--and [ switches ]  naming_pattern  [ naming_patterns ]]
  @end example
  
! All of the arguments are optional. If invoked without any argument,
  @code{gnatname} will display its usage.
  
! When used with at least one naming pattern, @code{gnatname} will attempt to
  find all the compilation units in files that follow at least one of the
  naming patterns. To find these compilation units,
! @code{gnatname} will use the GNAT compiler in syntax-check-only mode on all
  regular files.
  
! One or several Naming Patterns may be given as arguments to @code{gnatname}.
  Each Naming Pattern is enclosed between double quotes (or single
  quotes on Windows).
  A Naming Pattern is a regular expression similar to the wildcard patterns
  used in file names by the Unix shells or the DOS prompt.
  
! @code{gnatname} may be called with several sections of directories/patterns.
! Sections are separated by the switch @code{--and}. In each section, there must be
! at least one pattern. If no directory is specified in a section, the current
! directory (or the project directory if @code{-P} is used) is implied.
! The options other that the directory switches and the patterns apply globally
! even if they are in different sections.
  
  Examples of Naming Patterns are:
  
--- 1917,1944 ----
      [--and [ switches ]  naming_pattern  [ naming_patterns ]]
  @end example
  
! All of the arguments are optional. If invoked without any arguments,
  @code{gnatname} will display its usage.
  
! When used with at least one naming pattern, @code{gnatname} attempts to
  find all the compilation units in files that follow at least one of the
  naming patterns. To find these compilation units,
! @code{gnatname} uses the GNAT compiler in syntax-check-only mode on all
  regular files.
  
! One or several `Naming Patterns' may be given as arguments to @code{gnatname}.
  Each Naming Pattern is enclosed between double quotes (or single
  quotes on Windows).
  A Naming Pattern is a regular expression similar to the wildcard patterns
  used in file names by the Unix shells or the DOS prompt.
  
! You may call @code{gnatname} with several sections of
! directories/patterns.  Sections are separated by the switch
! @code{--and}. In each section, you must include at least one
! pattern. If you don’t specify a directory a section, the current
! directory (or the project directory if @code{-P} is used) is
! used.  The options other that the directory switches and the
! patterns apply globally even if they are in different sections.
  
  Examples of Naming Patterns are:
  
*************** with pragmas @code{Source_File_Name} for
*** 1955,1961 ****
  unit.
  
  @node Switches for gnatname,Examples of gnatname Usage,Running gnatname,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model id15}@anchor{48}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatname}@anchor{49}
  @subsubsection Switches for @code{gnatname}
  
  
--- 1958,1964 ----
  unit.
  
  @node Switches for gnatname,Examples of gnatname Usage,Running gnatname,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model id15}@anchor{49}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatname}@anchor{4a}
  @subsubsection Switches for @code{gnatname}
  
  
*************** You may specify any of the following swi
*** 1970,1976 ****
  
  @item @code{--version}
  
! Display Copyright and version, then exit disregarding all other options.
  @end table
  
  @geindex --help (gnatname)
--- 1973,1979 ----
  
  @item @code{--version}
  
! Display Copyright and version, then exit disregarding, all other options.
  @end table
  
  @geindex --help (gnatname)
*************** Display Copyright and version, then exit
*** 1980,1991 ****
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage, then exit disregarding
  all other options.
  
  @item @code{--subdirs=`dir'}
  
! Real object, library or exec directories are subdirectories <dir> of the
  specified ones.
  
  @item @code{--no-backup}
--- 1983,1994 ----
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage, then exit, disregarding
  all other options.
  
  @item @code{--subdirs=`dir'}
  
! Actual object, library or exec directories are subdirectories <dir> of the
  specified ones.
  
  @item @code{--no-backup}
*************** Start another section of directories/pat
*** 2006,2017 ****
  
  Create a configuration pragmas file @code{filename} (instead of the default
  @code{gnat.adc}).
! There may be zero, one or more space between @code{-c} and
  @code{filename}.
  @code{filename} may include directory information. @code{filename} must be
! writable. There may be only one switch @code{-c}.
  When a switch @code{-c} is
! specified, no switch @code{-P} may be specified (see below).
  @end table
  
  @geindex -d (gnatname)
--- 2009,2020 ----
  
  Create a configuration pragmas file @code{filename} (instead of the default
  @code{gnat.adc}).
! There may be zero, one, or more space between @code{-c} and
  @code{filename}.
  @code{filename} may include directory information. @code{filename} must be
! writable. You can specify only one switch @code{-c}.
  When a switch @code{-c} is
! specified, you may not specify switch @code{-P} (see below).
  @end table
  
  @geindex -d (gnatname)
*************** specified, no switch @code{-P} may be sp
*** 2021,2045 ****
  
  @item @code{-d`dir'}
  
! Look for source files in directory @code{dir}. There may be zero, one or more
  spaces between @code{-d} and @code{dir}.
! @code{dir} may end with @code{/**}, that is it may be of the form
  @code{root_dir/**}. In this case, the directory @code{root_dir} and all of its
  subdirectories, recursively, have to be searched for sources.
! When a switch @code{-d}
! is specified, the current working directory will not be searched for source
! files, unless it is explicitly specified with a @code{-d}
  or @code{-D} switch.
! Several switches @code{-d} may be specified.
  If @code{dir} is a relative path, it is relative to the directory of
  the configuration pragmas file specified with switch
  @code{-c},
  or to the directory of the project file specified with switch
  @code{-P} or,
! if neither switch @code{-c}
! nor switch @code{-P} are specified, it is relative to the
  current working directory. The directory
! specified with switch @code{-d} must exist and be readable.
  @end table
  
  @geindex -D (gnatname)
--- 2024,2048 ----
  
  @item @code{-d`dir'}
  
! Look for source files in directory @code{dir}. You may put zero, one or more
  spaces between @code{-d} and @code{dir}.
! @code{dir} may end with @code{/**}, i.e., you may write it the form
  @code{root_dir/**}. In this case, the directory @code{root_dir} and all of its
  subdirectories, recursively, have to be searched for sources.
! When you specify a @code{-d} switch,
! the current working directory will is not searched for source
! files unless you explicitly specify it with a @code{-d}
  or @code{-D} switch.
! You may specify several switches @code{-d}.
  If @code{dir} is a relative path, it is relative to the directory of
  the configuration pragmas file specified with switch
  @code{-c},
  or to the directory of the project file specified with switch
  @code{-P} or,
! if you don’t specify either switch @code{-c}
! or switch @code{-P}, it’s relative to the
  current working directory. The directory
! you specified with switch @code{-d} must exist and be readable.
  @end table
  
  @geindex -D (gnatname)
*************** specified with switch @code{-d} must exi
*** 2050,2056 ****
  @item @code{-D`filename'}
  
  Look for source files in all directories listed in text file @code{filename}.
! There may be zero, one or more spaces between @code{-D}
  and @code{filename}.
  @code{filename} must be an existing, readable text file.
  Each nonempty line in @code{filename} must be a directory.
--- 2053,2059 ----
  @item @code{-D`filename'}
  
  Look for source files in all directories listed in text file @code{filename}.
! You may place zero, one or more spaces between @code{-D}
  and @code{filename}.
  @code{filename} must be an existing, readable text file.
  Each nonempty line in @code{filename} must be a directory.
*************** Follow symbolic links when processing pr
*** 2066,2083 ****
  
  @item @code{-f`pattern'}
  
! Foreign patterns. Using this switch, it is possible to add sources of languages
! other than Ada to the list of sources of a project file.
! It is only useful if a -P switch is used.
  For example,
  
  @example
  gnatname -Pprj -f"*.c" "*.ada"
  @end example
  
! will look for Ada units in all files with the @code{.ada} extension,
! and will add to the list of file for project @code{prj.gpr} the C files
! with extension @code{.c}.
  
  @geindex -h (gnatname)
  
--- 2069,2086 ----
  
  @item @code{-f`pattern'}
  
! Foreign patterns. Using this switch, you can add sources of languages
! other than Ada to the list of sources of a project file, but
! it’s only useful if you also specify a @code{-P} switch.
  For example,
  
  @example
  gnatname -Pprj -f"*.c" "*.ada"
  @end example
  
! looks for Ada units in all files with the @code{.ada} extension,
! and adds the C files with extension @code{.c} to the list of file
! for project @code{prj.gpr} .
  
  @geindex -h (gnatname)
  
*************** with extension @code{.c}.
*** 2086,2114 ****
  Output usage (help) information. The output is written to @code{stdout}.
  
  @geindex -P (gnatname)
  
! @item @code{-P`proj'}
  
! Create or update project file @code{proj}. There may be zero, one or more space
! between @code{-P} and @code{proj}. @code{proj} may include directory
! information. @code{proj} must be writable.
! There may be only one switch @code{-P}.
! When a switch @code{-P} is specified,
! no switch @code{-c} may be specified.
! On all platforms, except on VMS, when @code{gnatname} is invoked for an
! existing project file <proj>.gpr, a backup copy of the project file is created
! in the project directory with file name <proj>.gpr.saved_x. ‘x’ is the first
! non negative number that makes this backup copy a new file.
  
  @geindex -v (gnatname)
  
  @item @code{-v}
  
! Verbose mode. Output detailed explanation of behavior to @code{stdout}.
! This includes name of the file written, the name of the directories to search
  and, for each file in those directories whose name matches at least one of
  the Naming Patterns, an indication of whether the file contains a unit,
! and if so the name of the unit.
  @end table
  
  @geindex -v -v (gnatname)
--- 2089,2124 ----
  Output usage (help) information. The output is written to @code{stdout}.
  
  @geindex -P (gnatname)
+ @end table
  
! @code{-P`proj'}
  
! @quotation
! 
! Create or update project file @code{proj}. You may place zero, one
! or more space between @code{-P} and @code{proj}. @code{proj}
! may include directory information. @code{proj} must be writable.
! There may be only one switch @code{-P}.  When you specify switch
! @code{-P}, you may not also include switch @code{-c}.  On all
! platforms except VMS when @code{gnatname} is invoked for an existing
! project file @code{<proj>.gpr`}, @code{gnatname} creates a backup copy
! of the project file in the project directory with file name
! @code{<proj>.gpr.saved_x} where @code{x} is the first non negative
! number that creates a unique filename.
  
  @geindex -v (gnatname)
+ @end quotation
+ 
+ 
+ @table @asis
  
  @item @code{-v}
  
! Verbose mode. Output detailed explanation of what it’s doing to @code{stdout}.
! This includes name of the file written, the name of the directories searched,
  and, for each file in those directories whose name matches at least one of
  the Naming Patterns, an indication of whether the file contains a unit,
! and, if so, the name of the unit.
  @end table
  
  @geindex -v -v (gnatname)
*************** and if so the name of the unit.
*** 2118,2144 ****
  
  @item @code{-v -v}
  
! Very Verbose mode. In addition to the output produced in verbose mode,
  for each file in the searched directories whose name matches none of
! the Naming Patterns, an indication is given that there is no match.
  
  @geindex -x (gnatname)
  
  @item @code{-x`pattern'}
  
! Excluded patterns. Using this switch, it is possible to exclude some files
! that would match the name patterns. For example,
  
  @example
  gnatname -x "*_nt.ada" "*.ada"
  @end example
  
! will look for Ada units in all files with the @code{.ada} extension,
  except those whose names end with @code{_nt.ada}.
  @end table
  
  @node Examples of gnatname Usage,,Switches for gnatname,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatname-usage}@anchor{4a}@anchor{gnat_ugn/the_gnat_compilation_model id16}@anchor{4b}
  @subsubsection Examples of @code{gnatname} Usage
  
  
--- 2128,2155 ----
  
  @item @code{-v -v}
  
! Very verbose mode. In addition to the output produced in verbose mode
! (a single @code{-v} switch),
  for each file in the searched directories whose name matches none of
! the Naming Patterns, @code{gnatname} indicates that there is no match.
  
  @geindex -x (gnatname)
  
  @item @code{-x`pattern'}
  
! Excluded patterns. Using this switch, you can exclude some files
! that otherwise would match the name patterns. For example,
  
  @example
  gnatname -x "*_nt.ada" "*.ada"
  @end example
  
! looks for Ada units in all files with the @code{.ada} extension,
  except those whose names end with @code{_nt.ada}.
  @end table
  
  @node Examples of gnatname Usage,,Switches for gnatname,Handling Arbitrary File Naming Conventions with gnatname
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatname-usage}@anchor{4b}@anchor{gnat_ugn/the_gnat_compilation_model id16}@anchor{4c}
  @subsubsection Examples of @code{gnatname} Usage
  
  
*************** $ gnatname -P/home/me/proj -x "*_nt_body
*** 2158,2179 ****
  -dsources -dsources/plus -Dcommon_dirs.txt "body_*" "spec_*"
  @end example
  
! Note that several switches @code{-d} may be used,
! even in conjunction with one or several switches
! @code{-D}. Several Naming Patterns and one excluded pattern
! are used in this example.
  
  @node File Name Krunching with gnatkr,Renaming Files with gnatchop,Handling Arbitrary File Naming Conventions with gnatname,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model file-name-krunching-with-gnatkr}@anchor{4c}@anchor{gnat_ugn/the_gnat_compilation_model id17}@anchor{4d}
  @subsection File Name Krunching with @code{gnatkr}
  
  
  @geindex gnatkr
  
! This section discusses the method used by the compiler to shorten
  the default file names chosen for Ada units so that they do not
! exceed the maximum length permitted. It also describes the
! @code{gnatkr} utility that can be used to determine the result of
  applying this shortening.
  
  @menu
--- 2169,2189 ----
  -dsources -dsources/plus -Dcommon_dirs.txt "body_*" "spec_*"
  @end example
  
! Note that you may use several @code{-d} switches, even in
! conjunction with one or several @code{-D} switches. This example
! illustrates multiple Naming Patterns and one excluded pattern.
  
  @node File Name Krunching with gnatkr,Renaming Files with gnatchop,Handling Arbitrary File Naming Conventions with gnatname,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model file-name-krunching-with-gnatkr}@anchor{4d}@anchor{gnat_ugn/the_gnat_compilation_model id17}@anchor{4e}
  @subsection File Name Krunching with @code{gnatkr}
  
  
  @geindex gnatkr
  
! Here we discuss the method used by the compiler to shorten
  the default file names chosen for Ada units so that they do not
! exceed the maximum length permitted. We also describe the
! @code{gnatkr} utility, which you can use to determine the result of
  applying this shortening.
  
  @menu
*************** applying this shortening.
*** 2185,2197 ****
  @end menu
  
  @node About gnatkr,Using gnatkr,,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model about-gnatkr}@anchor{4e}@anchor{gnat_ugn/the_gnat_compilation_model id18}@anchor{4f}
  @subsubsection About @code{gnatkr}
  
  
! The default file naming rule in GNAT
! is that the file name must be derived from
! the unit name. The exact default rule is as follows:
  
  
  @itemize *
--- 2195,2206 ----
  @end menu
  
  @node About gnatkr,Using gnatkr,,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model about-gnatkr}@anchor{4f}@anchor{gnat_ugn/the_gnat_compilation_model id18}@anchor{50}
  @subsubsection About @code{gnatkr}
  
  
! GNAT requires that the file name must be derived from the unit
! name. The default rule is as follows:
  
  
  @itemize *
*************** second character position of a name, and
*** 2205,2213 ****
  @code{a}, @code{g}, @code{s}, or @code{i},
  then replace the dot by the character
  @code{~} (tilde)
! instead of a minus.
  
! The reason for this exception is to avoid clashes
  with the standard names for children of System, Ada, Interfaces,
  and GNAT, which use the prefixes
  @code{s-}, @code{a-}, @code{i-}, and @code{g-},
--- 2214,2222 ----
  @code{a}, @code{g}, @code{s}, or @code{i},
  then replace the dot by the character
  @code{~} (tilde)
! instead of a hyphen.
  
! This exception avoids clashes
  with the standard names for children of System, Ada, Interfaces,
  and GNAT, which use the prefixes
  @code{s-}, @code{a-}, @code{i-}, and @code{g-},
*************** respectively.
*** 2216,2266 ****
  
  The @code{-gnatk`nn'}
  switch of the compiler activates a ‘krunching’
! circuit that limits file names to nn characters (where nn is a decimal
  integer).
  
! The @code{gnatkr} utility can be used to determine the krunched name for
! a given file, when krunched to a specified maximum length.
  
  @node Using gnatkr,Krunching Method,About gnatkr,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model id19}@anchor{50}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatkr}@anchor{3d}
  @subsubsection Using @code{gnatkr}
  
  
! The @code{gnatkr} command has the form:
  
  @example
  $ gnatkr name [ length ]
  @end example
  
  @code{name} is the uncrunched file name, derived from the name of the unit
! in the standard manner described in the previous section (i.e., in particular
! all dots are replaced by hyphens). The file name may or may not have an
  extension (defined as a suffix of the form period followed by arbitrary
! characters other than period). If an extension is present then it will
! be preserved in the output. For example, when krunching @code{hellofile.ads}
! to eight characters, the result will be hellofil.ads.
  
! Note: for compatibility with previous versions of @code{gnatkr} dots may
! appear in the name instead of hyphens, but the last dot will always be
! taken as the start of an extension. So if @code{gnatkr} is given an argument
! such as @code{Hello.World.adb} it will be treated exactly as if the first
! period had been a hyphen, and for example krunching to eight characters
! gives the result @code{hellworl.adb}.
  
! Note that the result is always all lower case.
! Characters of the other case are folded as required.
  
  @code{length} represents the length of the krunched name. The default
! when no argument is given is 8 characters. A length of zero stands for
! unlimited, in other words do not chop except for system files where the
  implied crunching length is always eight characters.
  
  The output is the krunched name. The output has an extension only if the
  original argument was a file name with an extension.
  
  @node Krunching Method,Examples of gnatkr Usage,Using gnatkr,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model id20}@anchor{51}@anchor{gnat_ugn/the_gnat_compilation_model krunching-method}@anchor{52}
  @subsubsection Krunching Method
  
  
--- 2225,2276 ----
  
  The @code{-gnatk`nn'}
  switch of the compiler activates a ‘krunching’
! circuit that limits file names to @code{nn} characters (where @code{nn} is a decimal
  integer).
  
! You can use the @code{gnatkr} utility to determine the krunched name for
! a given file when krunched to a specified maximum length.
  
  @node Using gnatkr,Krunching Method,About gnatkr,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model id19}@anchor{51}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatkr}@anchor{3e}
  @subsubsection Using @code{gnatkr}
  
  
! You invoke the @code{gnatkr} command as follows:
  
  @example
  $ gnatkr name [ length ]
  @end example
  
  @code{name} is the uncrunched file name, derived from the name of the unit
! in the default manner described in the previous section (i.e., in particular
! all dots are replaced by hyphens). You may or may not include an
  extension (defined as a suffix of the form period followed by arbitrary
! characters other than period) in the filename. If you do, @code{gnatkr} will
! preserve it in the output. For example, when krunching @code{hellofile.ads}
! to eight characters, the result will be @code{hellofil.ads}.
  
! Note: for compatibility with previous versions of @code{gnatkr}, you can
! use dots in the name instead of hyphens, but @code{gnatkr} always
! interprets the last dot as the start of an extension. So if you pass @code{gnatkr}
! an argument such as @code{Hello.World.adb}, it treats it
! exactly as if the first period had been a hyphen, so, for
! example, krunching to eight characters gives the result
! @code{hellworl.adb}.
  
! Note that the result is always all lower case.  Other characters are
! folded as required.
  
  @code{length} represents the length of the krunched name. The default
! if you don’t specify it, is 8 characters. A length of zero means
! unlimited, in other words don’t chop except for system files where the
  implied crunching length is always eight characters.
  
  The output is the krunched name. The output has an extension only if the
  original argument was a file name with an extension.
  
  @node Krunching Method,Examples of gnatkr Usage,Using gnatkr,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model id20}@anchor{52}@anchor{gnat_ugn/the_gnat_compilation_model krunching-method}@anchor{53}
  @subsubsection Krunching Method
  
  
*************** the specified length by following these
*** 2280,2296 ****
  @itemize *
  
  @item 
! The name is divided into segments separated by hyphens, tildes or
  underscores and all hyphens, tildes, and underscores are
  eliminated. If this leaves the name short enough, we are done.
  
  @item 
  If the name is too long, the longest segment is located (left-most
! if there are two of equal length), and shortened by dropping
  its last character. This is repeated until the name is short enough.
  
  As an example, consider the krunching of @code{our-strings-wide_fixed.adb}
! to fit the name into 8 characters as required by some operating systems:
  
  @example
  our-strings-wide_fixed 22
--- 2290,2306 ----
  @itemize *
  
  @item 
! The name is divided into segments separated by hyphens, tildes, or
  underscores and all hyphens, tildes, and underscores are
  eliminated. If this leaves the name short enough, we are done.
  
  @item 
  If the name is too long, the longest segment is located (left-most
! if there are two of equal length) and shortened by dropping
  its last character. This is repeated until the name is short enough.
  
  As an example, consider the krunching of @code{our-strings-wide_fixed.adb}
! to fit the name into 8 characters, as required by some operating systems:
  
  @example
  our-strings-wide_fixed 22
*************** Replacement
*** 2359,2367 ****
  @end multitable
  
  
! These system files have a hyphen in the second character position. That
! is why normal user files replace such a character with a
! tilde, to avoid confusion with system file names.
  
  As an example of this special rule, consider
  @code{ada-strings-wide_fixed.adb}, which gets krunched as follows:
--- 2369,2377 ----
  @end multitable
  
  
! These system files have a hyphen in the second character
! position. That’s is why normal user files replace such a character
! with a tilde.
  
  As an example of this special rule, consider
  @code{ada-strings-wide_fixed.adb}, which gets krunched as follows:
*************** Final file name: a-stwifi.adb
*** 2383,2396 ****
  @end example
  @end itemize
  
! Of course no file shortening algorithm can guarantee uniqueness over all
! possible unit names, and if file name krunching is used then it is your
  responsibility to ensure that no name clashes occur. The utility
! program @code{gnatkr} is supplied for conveniently determining the
  krunched name of a file.
  
  @node Examples of gnatkr Usage,,Krunching Method,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatkr-usage}@anchor{53}@anchor{gnat_ugn/the_gnat_compilation_model id21}@anchor{54}
  @subsubsection Examples of @code{gnatkr} Usage
  
  
--- 2393,2406 ----
  @end example
  @end itemize
  
! Of course, no file shortening algorithm can guarantee uniqueness over all
! possible unit names. If file name krunching is used, it’is your
  responsibility to ensure that no name clashes occur. The utility
! program @code{gnatkr} is supplied so that you can conveniently determine the
  krunched name of a file.
  
  @node Examples of gnatkr Usage,,Krunching Method,File Name Krunching with gnatkr
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatkr-usage}@anchor{54}@anchor{gnat_ugn/the_gnat_compilation_model id21}@anchor{55}
  @subsubsection Examples of @code{gnatkr} Usage
  
  
*************** $ gnatkr very_long_unit_name.ads/count=0
*** 2404,2417 ****
  @end example
  
  @node Renaming Files with gnatchop,,File Name Krunching with gnatkr,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model id22}@anchor{55}@anchor{gnat_ugn/the_gnat_compilation_model renaming-files-with-gnatchop}@anchor{1d}
  @subsection Renaming Files with @code{gnatchop}
  
  
  @geindex gnatchop
  
  This section discusses how to handle files with multiple units by using
! the @code{gnatchop} utility. This utility is also useful in renaming
  files to meet the standard GNAT default file naming conventions.
  
  @menu
--- 2414,2427 ----
  @end example
  
  @node Renaming Files with gnatchop,,File Name Krunching with gnatkr,File Naming Topics and Utilities
! @anchor{gnat_ugn/the_gnat_compilation_model id22}@anchor{56}@anchor{gnat_ugn/the_gnat_compilation_model renaming-files-with-gnatchop}@anchor{1e}
  @subsection Renaming Files with @code{gnatchop}
  
  
  @geindex gnatchop
  
  This section discusses how to handle files with multiple units by using
! the @code{gnatchop} utility. You will also find this utility useful in renaming
  files to meet the standard GNAT default file naming conventions.
  
  @menu
*************** files to meet the standard GNAT default
*** 2424,2482 ****
  @end menu
  
  @node Handling Files with Multiple Units,Operating gnatchop in Compilation Mode,,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model handling-files-with-multiple-units}@anchor{56}@anchor{gnat_ugn/the_gnat_compilation_model id23}@anchor{57}
  @subsubsection Handling Files with Multiple Units
  
  
! The basic compilation model of GNAT requires that a file submitted to the
! compiler have only one unit and there be a strict correspondence
  between the file name and the unit name.
  
! If you want to keep your files with multiple units,
  perhaps to maintain compatibility with some other Ada compilation system,
! you can use @code{gnatname} to generate or update your project files.
! Generated or modified project files can be processed by GNAT.
  
! See @ref{42,,Handling Arbitrary File Naming Conventions with gnatname}
  for more details on how to use @cite{gnatname}.
  
! Alternatively, if you want to permanently restructure a set of ‘foreign’
! files so that they match the GNAT rules, and do the remaining development
! using the GNAT structure, you can simply use @code{gnatchop} once, generate the
! new set of files and work with them from that point on.
  
  Note that if your file containing multiple units starts with a byte order
! mark (BOM) specifying UTF-8 encoding, then the files generated by gnatchop
! will each start with a copy of this BOM, meaning that they can be compiled
! automatically in UTF-8 mode without needing to specify an explicit encoding.
  
  @node Operating gnatchop in Compilation Mode,Command Line for gnatchop,Handling Files with Multiple Units,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model id24}@anchor{58}@anchor{gnat_ugn/the_gnat_compilation_model operating-gnatchop-in-compilation-mode}@anchor{59}
  @subsubsection Operating gnatchop in Compilation Mode
  
  
  The basic function of @code{gnatchop} is to take a file with multiple units
! and split it into separate files. The boundary between files is reasonably
  clear, except for the issue of comments and pragmas. In default mode, the
  rule is that any pragmas between units belong to the previous unit, except
  that configuration pragmas always belong to the following unit. Any comments
  belong to the following unit. These rules
  almost always result in the right choice of
! the split point without needing to mark it explicitly and most users will
! find this default to be what they want. In this default mode it is incorrect to
  submit a file containing only configuration pragmas, or one that ends in
  configuration pragmas, to @code{gnatchop}.
  
! However, using a special option to activate ‘compilation mode’,
  @code{gnatchop}
  can perform another function, which is to provide exactly the semantics
! required by the RM for handling of configuration pragmas in a compilation.
! In the absence of configuration pragmas (at the main file level), this
! option has no effect, but it causes such configuration pragmas to be handled
! in a quite different manner.
  
! First, in compilation mode, if @code{gnatchop} is given a file that consists of
! only configuration pragmas, then this file is appended to the
  @code{gnat.adc} file in the current directory. This behavior provides
  the required behavior described in the RM for the actions to be taken
  on submitting such a file to the compiler, namely that these pragmas
--- 2434,2493 ----
  @end menu
  
  @node Handling Files with Multiple Units,Operating gnatchop in Compilation Mode,,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model handling-files-with-multiple-units}@anchor{57}@anchor{gnat_ugn/the_gnat_compilation_model id23}@anchor{58}
  @subsubsection Handling Files with Multiple Units
  
  
! GNAT’s fundamental compilation model requires that a file submitted to the
! compiler contain only one unit and there be a strict correspondence
  between the file name and the unit name.
  
! If you want to have your files contain multiple units,
  perhaps to maintain compatibility with some other Ada compilation system,
! you can use @code{gnatname} to generate or update your project files, which
! can be processed by GNAT.
  
! See @ref{43,,Handling Arbitrary File Naming Conventions with gnatname}
  for more details on how to use @cite{gnatname}.
  
! Alternatively, if you want to permanently restructure a set of
! ‘foreign’ files so that they match the GNAT rules, and do the
! remaining development using the GNAT structure, you can simply use
! @code{gnatchop} once, generate the new set of files containing only one
! unit per file, and work with them from that point on.
  
  Note that if your file containing multiple units starts with a byte order
! mark (BOM) specifying UTF-8 encoding, each file generated by gnatchop
! will start with a copy of this BOM, meaning that they can be compiled
! automatically in UTF-8 mode without you needing to specify an explicit encoding.
  
  @node Operating gnatchop in Compilation Mode,Command Line for gnatchop,Handling Files with Multiple Units,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model id24}@anchor{59}@anchor{gnat_ugn/the_gnat_compilation_model operating-gnatchop-in-compilation-mode}@anchor{5a}
  @subsubsection Operating gnatchop in Compilation Mode
  
  
  The basic function of @code{gnatchop} is to take a file with multiple units
! and split it into separate files. The boundary between units is reasonably
  clear, except for the issue of comments and pragmas. In default mode, the
  rule is that any pragmas between units belong to the previous unit, except
  that configuration pragmas always belong to the following unit. Any comments
  belong to the following unit. These rules
  almost always result in the right choice of
! the split point without you needing to mark it explicitly and you’ll likely
! find this default to be what you want. In this default mode, you may not
  submit a file containing only configuration pragmas, or one that ends in
  configuration pragmas, to @code{gnatchop}.
  
! However, using a special switch to activate ‘compilation mode’,
  @code{gnatchop}
  can perform another function, which is to provide exactly the semantics
! required by the RM for the handling of configuration pragmas in a compilation.
! In the absence of configuration pragmas at the main file level, this
! switch has no effect, but it causes such configuration pragmas to be handled
! in a very different manner.
  
! First, in compilation mode, if you give @code{gnatchop} a file that consists of
! only configuration pragmas, it appends this file to the
  @code{gnat.adc} file in the current directory. This behavior provides
  the required behavior described in the RM for the actions to be taken
  on submitting such a file to the compiler, namely that these pragmas
*************** should apply to all subsequent compilati
*** 2484,2499 ****
  environment. Using GNAT, the current directory, possibly containing a
  @code{gnat.adc} file is the representation
  of a compilation environment. For more information on the
! @code{gnat.adc} file, see @ref{3f,,Handling of Configuration Pragmas}.
  
! Second, in compilation mode, if @code{gnatchop}
! is given a file that starts with
! configuration pragmas, and contains one or more units, then these
! configuration pragmas are prepended to each of the chopped files. This
! behavior provides the required behavior described in the RM for the
! actions to be taken on compiling such a file, namely that the pragmas
! apply to all units in the compilation, but not to subsequently compiled
! units.
  
  Finally, if configuration pragmas appear between units, they are appended
  to the previous unit. This results in the previous unit being illegal,
--- 2495,2509 ----
  environment. Using GNAT, the current directory, possibly containing a
  @code{gnat.adc} file is the representation
  of a compilation environment. For more information on the
! @code{gnat.adc} file, see @ref{40,,Handling of Configuration Pragmas}.
  
! Second, in compilation mode, if you give @code{gnatchop} a file that
! starts with configuration pragmas and contains one or more units, then
! configuration pragmas are prepended to each of the chopped
! files. This behavior provides the required behavior described in the
! RM for the actions to be taken on compiling such a file, namely that
! the pragmas apply to all units in the compilation, but not to
! subsequently compiled units.
  
  Finally, if configuration pragmas appear between units, they are appended
  to the previous unit. This results in the previous unit being illegal,
*************** a unit. This provides the required RM be
*** 2502,2521 ****
  pragmas other than those preceding the first compilation unit of a
  compilation.
  
! For most purposes, @code{gnatchop} will be used in default mode. The
! compilation mode described above is used only if you need exactly
! accurate behavior with respect to compilations, and you have files
  that contain multiple units and configuration pragmas. In this
! circumstance the use of @code{gnatchop} with the compilation mode
! switch provides the required behavior, and is for example the mode
  in which GNAT processes the ACVC tests.
  
  @node Command Line for gnatchop,Switches for gnatchop,Operating gnatchop in Compilation Mode,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model command-line-for-gnatchop}@anchor{5a}@anchor{gnat_ugn/the_gnat_compilation_model id25}@anchor{5b}
  @subsubsection Command Line for @code{gnatchop}
  
  
! The @code{gnatchop} command has the form:
  
  @example
  $ gnatchop switches file_name [file_name ...]
--- 2512,2531 ----
  pragmas other than those preceding the first compilation unit of a
  compilation.
  
! For most purposes, you will use @code{gnatchop}  in default mode. You only
! use the compilation mode described above if you need precisely
! accurate behavior with respect to compilations and you have files
  that contain multiple units and configuration pragmas. In this
! circumstance, the use of @code{gnatchop} with the compilation mode
! switch provides the required behavior. This is the mode
  in which GNAT processes the ACVC tests.
  
  @node Command Line for gnatchop,Switches for gnatchop,Operating gnatchop in Compilation Mode,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model command-line-for-gnatchop}@anchor{5b}@anchor{gnat_ugn/the_gnat_compilation_model id25}@anchor{5c}
  @subsubsection Command Line for @code{gnatchop}
  
  
! You call @code{gnatchop} as follows:
  
  @example
  $ gnatchop switches file_name [file_name ...]
*************** When run in default mode, @code{gnatchop
*** 2531,2537 ****
  the current directory for each unit in each of the files.
  
  @code{directory}, if specified, gives the name of the directory to which
! the output files will be written. If it is not specified, all files are
  written to the current directory.
  
  For example, given a
--- 2541,2547 ----
  the current directory for each unit in each of the files.
  
  @code{directory}, if specified, gives the name of the directory to which
! the output files will be written. If you don’t specify it, all files are
  written to the current directory.
  
  For example, given a
*************** $ gnatchop hellofiles
*** 2556,2567 ****
  generates two files in the current directory, one called
  @code{hello.ads} containing the single line that is the procedure spec,
  and the other called @code{hello.adb} containing the remaining text. The
! original file is not affected. The generated files can be compiled in
  the normal manner.
  
! When gnatchop is invoked on a file that is empty or that contains only empty
! lines and/or comments, gnatchop will not fail, but will not produce any
! new sources.
  
  For example, given a
  file called @code{toto.txt} containing
--- 2566,2577 ----
  generates two files in the current directory, one called
  @code{hello.ads} containing the single line that is the procedure spec,
  and the other called @code{hello.adb} containing the remaining text. The
! original file is not affected. You can compile these generated files in
  the normal manner.
  
! When you invoke @code{gnatchop} on a file that is empty or contains only
! empty lines and/or comments, @code{gnatchop} will complete normally, but
! won’t produce any new file.
  
  For example, given a
  file called @code{toto.txt} containing
*************** no source files written
*** 2585,2591 ****
  @end example
  
  @node Switches for gnatchop,Examples of gnatchop Usage,Command Line for gnatchop,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model id26}@anchor{5c}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatchop}@anchor{5d}
  @subsubsection Switches for @code{gnatchop}
  
  
--- 2595,2601 ----
  @end example
  
  @node Switches for gnatchop,Examples of gnatchop Usage,Command Line for gnatchop,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model id26}@anchor{5d}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatchop}@anchor{5e}
  @subsubsection Switches for @code{gnatchop}
  
  
*************** no source files written
*** 2598,2604 ****
  
  @item @code{--version}
  
! Display Copyright and version, then exit disregarding all other options.
  @end table
  
  @geindex --help (gnatchop)
--- 2608,2614 ----
  
  @item @code{--version}
  
! Display copyright and version, then exit, disregarding all other options.
  @end table
  
  @geindex --help (gnatchop)
*************** Display Copyright and version, then exit
*** 2608,2614 ****
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage, then exit disregarding
  all other options.
  @end table
  
--- 2618,2624 ----
  
  @item @code{--help}
  
! If @code{--version} is not present, display usage, then exit, disregarding
  all other options.
  @end table
  
*************** all other options.
*** 2620,2633 ****
  @item @code{-c}
  
  Causes @code{gnatchop} to operate in compilation mode, in which
! configuration pragmas are handled according to strict RM rules. See
  previous section for a full description of this mode.
  
  @item @code{-gnat`xxx'}
  
! This passes the given @code{-gnat`xxx'} switch to @code{gnat} which is
  used to parse the given file. Not all `xxx' options make sense,
! but for example, the use of @code{-gnati2} allows @code{gnatchop} to
  process a source file that uses Latin-2 coding for identifiers.
  
  @item @code{-h}
--- 2630,2643 ----
  @item @code{-c}
  
  Causes @code{gnatchop} to operate in compilation mode, in which
! configuration pragmas are handled according to strict RM rules. See the
  previous section for a full description of this mode.
  
  @item @code{-gnat`xxx'}
  
! This passes the given @code{-gnat`xxx'} switch to @code{gcc} which is
  used to parse the given file. Not all `xxx' options make sense,
! but, for example, the use of @code{-gnati2} allows @code{gnatchop} to
  process a source file that uses Latin-2 coding for identifiers.
  
  @item @code{-h}
*************** output file showing usage information.
*** 2638,2660 ****
  
  @geindex -k (gnatchop)
  
  
! @table @asis
! 
! @item @code{-k`mm'}
  
! Limit generated file names to the specified number @code{mm}
! of characters.
! This is useful if the
! resulting set of files is required to be interoperable with systems
! which limit the length of file names.
! No space is allowed between the @code{-k} and the numeric value. The numeric
! value may be omitted in which case a default of @code{-k8},
! suitable for use
! with DOS-like file systems, is used. If no @code{-k} switch
! is present then
  there is no limit on the length of file names.
! @end table
  
  @geindex -p (gnatchop)
  
--- 2648,2666 ----
  
  @geindex -k (gnatchop)
  
+ @code{-k`mm'}
  
! @quotation
  
! Limit generated file names to the specified number @code{mm} of
! characters.  This is useful if the resulting set of files is
! required to be interoperable with systems which limit the length of
! file names.  You may not place any space between the @code{-k}
! and the numeric value. You can omit the numeric value, in which case
! @code{gnatchop} will use a default of @code{-k8}, suitable for use
! with DOS-like file systems. If you don’t specify a @code{-k} switch,
  there is no limit on the length of file names.
! @end quotation
  
  @geindex -p (gnatchop)
  
*************** there is no limit on the length of file
*** 2664,2670 ****
  @item @code{-p}
  
  Causes the file modification time stamp of the input file to be
! preserved and used for the time stamp of the output file(s). This may be
  useful for preserving coherency of time stamps in an environment where
  @code{gnatchop} is used as part of a standard build process.
  @end table
--- 2670,2676 ----
  @item @code{-p}
  
  Causes the file modification time stamp of the input file to be
! preserved and used for the time stamp of the output file(s). You may find this
  useful for preserving coherency of time stamps in an environment where
  @code{gnatchop} is used as part of a standard build process.
  @end table
*************** files to be suppressed. Warnings and err
*** 2690,2699 ****
  @item @code{-r}
  
  Generate @code{Source_Reference} pragmas. Use this switch if the output
! files are regarded as temporary and development is to be done in terms
  of the original unchopped file. This switch causes
  @code{Source_Reference} pragmas to be inserted into each of the
! generated files to refers back to the original file name and line number.
  The result is that all error messages refer back to the original
  unchopped file.
  In addition, the debugging information placed into the object file (when
--- 2696,2705 ----
  @item @code{-r}
  
  Generate @code{Source_Reference} pragmas. Use this switch if the output
! files are regarded as temporary and development is to be done from
  of the original unchopped file. This switch causes
  @code{Source_Reference} pragmas to be inserted into each of the
! generated files to refer back to the original file name and line number.
  The result is that all error messages refer back to the original
  unchopped file.
  In addition, the debugging information placed into the object file (when
*************** debuggers will give information in terms
*** 2704,2711 ****
  
  If the original file to be chopped itself contains
  a @code{Source_Reference}
! pragma referencing a third file, then gnatchop respects
! this pragma, and the generated @code{Source_Reference} pragmas
  in the chopped file refer to the original file, with appropriate
  line numbers. This is particularly useful when @code{gnatchop}
  is used in conjunction with @code{gnatprep} to compile files that
--- 2710,2717 ----
  
  If the original file to be chopped itself contains
  a @code{Source_Reference}
! pragma referencing a third file, @code{gnatchop} respects these
! pragmas and the generated @code{Source_Reference} pragmas
  in the chopped file refer to the original file, with appropriate
  line numbers. This is particularly useful when @code{gnatchop}
  is used in conjunction with @code{gnatprep} to compile files that
*************** contain preprocessing statements and mul
*** 2719,2727 ****
  
  @item @code{-v}
  
! Causes @code{gnatchop} to operate in verbose mode. The version
! number and copyright notice are output, as well as exact copies of
! the gnat1 commands spawned to obtain the chop control information.
  @end table
  
  @geindex -w (gnatchop)
--- 2725,2733 ----
  
  @item @code{-v}
  
! Causes @code{gnatchop} to operate in verbose mode. It outputs the
! version number and copyright notice as well as exact copies of the
! commands spawned to obtain the information needed to control chopping.
  @end table
  
  @geindex -w (gnatchop)
*************** the gnat1 commands spawned to obtain the
*** 2731,2741 ****
  
  @item @code{-w}
  
! Overwrite existing file names. Normally @code{gnatchop} regards it as a
! fatal error if there is already a file with the same name as a
! file it would otherwise output, in other words if the files to be
  chopped contain duplicated units. This switch bypasses this
! check, and causes all but the last instance of such duplicated
  units to be skipped.
  @end table
  
--- 2737,2748 ----
  
  @item @code{-w}
  
! Overwrite existing file names. Normally, @code{gnatchop} treats it as a
! fatal error if there’s already a file with the same name as a
! file it would otherwise output. This can happen either if you’ve previously
! chopped that file or if the files to be
  chopped contain duplicated units. This switch bypasses this
! check and causes all but the last instance of such duplicated
  units to be skipped.
  @end table
  
*************** units to be skipped.
*** 2747,2757 ****
  @item @code{--GCC=`xxxx'}
  
  Specify the path of the GNAT parser to be used. When this switch is used,
! no attempt is made to add the prefix to the GNAT parser executable.
  @end table
  
  @node Examples of gnatchop Usage,,Switches for gnatchop,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatchop-usage}@anchor{5e}@anchor{gnat_ugn/the_gnat_compilation_model id27}@anchor{5f}
  @subsubsection Examples of @code{gnatchop} Usage
  
  
--- 2754,2765 ----
  @item @code{--GCC=`xxxx'}
  
  Specify the path of the GNAT parser to be used. When this switch is used,
! @code{gnatchop} makes no attempt to add a prefix to the GNAT parser executable,
! so it must include the full pathname.
  @end table
  
  @node Examples of gnatchop Usage,,Switches for gnatchop,Renaming Files with gnatchop
! @anchor{gnat_ugn/the_gnat_compilation_model examples-of-gnatchop-usage}@anchor{5f}@anchor{gnat_ugn/the_gnat_compilation_model id27}@anchor{60}
  @subsubsection Examples of @code{gnatchop} Usage
  
  
*************** no attempt is made to add the prefix to
*** 2759,2765 ****
  $ gnatchop -w hello_s.ada prerelease/files
  @end example
  
! Chops the source file @code{hello_s.ada}. The output files will be
  placed in the directory @code{prerelease/files},
  overwriting any
  files with matching names in that directory (no files in the current
--- 2767,2773 ----
  $ gnatchop -w hello_s.ada prerelease/files
  @end example
  
! Chops the source file @code{hello_s.ada}. The output files are
  placed in the directory @code{prerelease/files},
  overwriting any
  files with matching names in that directory (no files in the current
*************** into the current directory. One
*** 2774,2798 ****
  useful application of @code{gnatchop} is in sending sets of sources
  around, for example in email messages. The required sources are simply
  concatenated (for example, using a Unix @code{cat}
! command), and then
  @code{gnatchop} is used at the other end to reconstitute the original
! file names.
  
  @example
  $ gnatchop file1 file2 file3 direc
  @end example
  
! Chops all units in files @code{file1}, @code{file2}, @code{file3}, placing
! the resulting files in the directory @code{direc}. Note that if any units
! occur more than once anywhere within this set of files, an error message
! is generated, and no files are written. To override this check, use the
! @code{-w} switch,
! in which case the last occurrence in the last file will
! be the one that is output, and earlier duplicate occurrences for a given
! unit will be skipped.
  
  @node Configuration Pragmas,Generating Object Files,File Naming Topics and Utilities,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model configuration-pragmas}@anchor{25}@anchor{gnat_ugn/the_gnat_compilation_model id28}@anchor{60}
  @section Configuration Pragmas
  
  
--- 2782,2806 ----
  useful application of @code{gnatchop} is in sending sets of sources
  around, for example in email messages. The required sources are simply
  concatenated (for example, using a Unix @code{cat}
! command) and
  @code{gnatchop} is used at the other end to reconstitute the original
! files.
  
  @example
  $ gnatchop file1 file2 file3 direc
  @end example
  
! Chops all units in files @code{file1}, @code{file2}, @code{file3},
! placing the resulting files in the directory @code{direc}. Note that
! if any units occur more than once anywhere within this set of files,
! @code{gnatchop} generates an error message, and doesn’t write any
! files. To override this check, use the @code{-w} switch, in which
! case the last occurrence in the last file will be the one that is
! output and @code{gnatchop} will skip earlier duplicate occurrences for
! the same unit.
  
  @node Configuration Pragmas,Generating Object Files,File Naming Topics and Utilities,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model configuration-pragmas}@anchor{26}@anchor{gnat_ugn/the_gnat_compilation_model id28}@anchor{61}
  @section Configuration Pragmas
  
  
*************** unit will be skipped.
*** 2801,2808 ****
  @geindex Pragmas
  @geindex configuration
  
! Configuration pragmas include those pragmas described as
! such in the Ada Reference Manual, as well as
  implementation-dependent pragmas that are configuration pragmas.
  See the @code{Implementation_Defined_Pragmas} chapter in the
  @cite{GNAT_Reference_Manual} for details on these
--- 2809,2816 ----
  @geindex Pragmas
  @geindex configuration
  
! Configuration pragmas supported by GNAT consist of those pragmas described as
! such in the Ada Reference Manual and the
  implementation-dependent pragmas that are configuration pragmas.
  See the @code{Implementation_Defined_Pragmas} chapter in the
  @cite{GNAT_Reference_Manual} for details on these
*************** Ignore_Pragma
*** 2849,2854 ****
--- 2857,2863 ----
  Implicit_Packing
  Initialize_Scalars
  Interrupt_State
+ Interrupts_System_By_Default
  License
  Locking_Policy
  No_Component_Reordering
*************** Wide_Character_Encoding
*** 2894,2912 ****
  @end menu
  
  @node Handling of Configuration Pragmas,The Configuration Pragmas Files,,Configuration Pragmas
! @anchor{gnat_ugn/the_gnat_compilation_model handling-of-configuration-pragmas}@anchor{3f}@anchor{gnat_ugn/the_gnat_compilation_model id29}@anchor{61}
  @subsection Handling of Configuration Pragmas
  
  
! Configuration pragmas may either appear at the start of a compilation
! unit, or they can appear in a configuration pragma file to apply to
  all compilations performed in a given compilation environment.
  
! GNAT also provides the @code{gnatchop} utility to provide an automatic
! way to handle configuration pragmas following the semantics for
! compilations (that is, files with multiple units), described in the RM.
! See @ref{59,,Operating gnatchop in Compilation Mode} for details.
! However, for most purposes, it will be more convenient to edit the
  @code{gnat.adc} file that contains configuration pragmas directly,
  as described in the following section.
  
--- 2903,2921 ----
  @end menu
  
  @node Handling of Configuration Pragmas,The Configuration Pragmas Files,,Configuration Pragmas
! @anchor{gnat_ugn/the_gnat_compilation_model handling-of-configuration-pragmas}@anchor{40}@anchor{gnat_ugn/the_gnat_compilation_model id29}@anchor{62}
  @subsection Handling of Configuration Pragmas
  
  
! You can place configuration pragmas either appear at the start of a compilation
! unit or in a configuration pragma file that applies to
  all compilations performed in a given compilation environment.
  
! GNAT includes the @code{gnatchop} utility to provide an automatic
! way to handle configuration pragmas that follows the semantics for
! compilations (that is, files with multiple units) described in the RM.
! See @ref{5a,,Operating gnatchop in Compilation Mode} for details.
! However, for most purposes, you will find it more convenient to edit the
  @code{gnat.adc} file that contains configuration pragmas directly,
  as described in the following section.
  
*************** Restrictions that require partition-wide
*** 2918,2973 ****
  @code{No_Tasking}) are
  recognized wherever they appear
  and can be freely inherited, e.g. from a `with'ed unit to the `with'ing
! unit. This makes sense since the binder will in any case insist on seeing
! consistent use, so any unit not conforming to any restrictions that are
! anywhere in the partition will be rejected, and you might as well find
! that out at compile time rather than at bind time.
  
  For restrictions that do not require partition-wide consistency, e.g.
! SPARK or No_Implementation_Attributes, in general the restriction applies
! only to the unit in which the pragma appears, and not to any other units.
  
! The exception is No_Elaboration_Code which always applies to the entire
! object file from a compilation, i.e. to the body, spec, and all subunits.
! This restriction can be specified in a configuration pragma file, or it
! can be on the body and/or the spec (in either case it applies to all the
! relevant units). It can appear on a subunit only if it has previously
! appeared in the body of spec.
  
  @node The Configuration Pragmas Files,,Handling of Configuration Pragmas,Configuration Pragmas
! @anchor{gnat_ugn/the_gnat_compilation_model id30}@anchor{62}@anchor{gnat_ugn/the_gnat_compilation_model the-configuration-pragmas-files}@anchor{63}
  @subsection The Configuration Pragmas Files
  
  
  @geindex gnat.adc
  
! In GNAT a compilation environment is defined by the current
! directory at the time that a compile command is given. This current
! directory is searched for a file whose name is @code{gnat.adc}. If
! this file is present, it is expected to contain one or more
! configuration pragmas that will be applied to the current compilation.
! However, if the switch @code{-gnatA} is used, @code{gnat.adc} is not
! considered. When taken into account, @code{gnat.adc} is added to the
! dependencies, so that if @code{gnat.adc} is modified later, an invocation of
! @code{gnatmake} will recompile the source.
  
! Configuration pragmas may be entered into the @code{gnat.adc} file
! either by running @code{gnatchop} on a source file that consists only of
! configuration pragmas, or more conveniently by direct editing of the
  @code{gnat.adc} file, which is a standard format source file.
  
! Besides @code{gnat.adc}, additional files containing configuration
! pragmas may be applied to the current compilation using the switch
! @code{-gnatec=`path'} where @code{path} must designate an existing file that
! contains only configuration pragmas. These configuration pragmas are
! in addition to those found in @code{gnat.adc} (provided @code{gnat.adc}
! is present and switch @code{-gnatA} is not used).
! 
! It is allowable to specify several switches @code{-gnatec=}, all of which
! will be taken into account.
  
! Files containing configuration pragmas specified with switches
! @code{-gnatec=} are added to the dependencies, unless they are
  temporary files. A file is considered temporary if its name ends in
  @code{.tmp} or @code{.TMP}. Certain tools follow this naming
  convention because they pass information to @code{gcc} via
--- 2927,2983 ----
  @code{No_Tasking}) are
  recognized wherever they appear
  and can be freely inherited, e.g. from a `with'ed unit to the `with'ing
! unit. This makes sense since the binder will always insist on seeing
! consistent us, so any unit not conforming to any restrictions
! anywhere in the partition will be rejected and it’s better for you to find
! that out at compile time rather than bind time.
  
  For restrictions that do not require partition-wide consistency, e.g.
! @code{SPARK} or @code{No_Implementation_Attributes}, the restriction
! normally applies only to the unit in which the pragma appears, and not
! to any other units.
  
! The exception is @code{No_Elaboration_Code}, which always applies to the
! entire object file from a compilation, i.e. to the body, spec, and all
! subunits.  You can apply this restriction in a configuration pragma
! file or you can ace it in the body and/or the spec (in either case it
! applies to all the relevant units). You can place it on a subunit only if
! you have previously placed it in the body of spec.
  
  @node The Configuration Pragmas Files,,Handling of Configuration Pragmas,Configuration Pragmas
! @anchor{gnat_ugn/the_gnat_compilation_model id30}@anchor{63}@anchor{gnat_ugn/the_gnat_compilation_model the-configuration-pragmas-files}@anchor{64}
  @subsection The Configuration Pragmas Files
  
  
  @geindex gnat.adc
  
! In GNAT, a compilation environment is defined by the current directory
! at the time that a compile command is given. This current directory is
! searched for a file whose name is @code{gnat.adc}. If this file is
! present, it is expected to contain one or more configuration pragmas
! that will be applied to the current compilation.  However, if you
! specify the switch @code{-gnatA}, GNAT ignores
! @code{gnat.adc}. When used, GNAT adds @code{gnat.adc} to the
! dependencies so that if @code{gnat.adc} is modified later, the source
! will be recompiled on a future invocation of @code{gnatmake}.
  
! You can add
! configuration pragmas into the @code{gnat.adc} file
! either by running @code{gnatchop} on a source file consisting only of
! configuration pragmas or, more conveniently, by directly editing the
  @code{gnat.adc} file, which is a standard format source file.
  
! Besides @code{gnat.adc}, you may apply additional files containing
! configuration pragmas to the current compilation using the
! @code{-gnatec=`path'} switch, where @code{path} must designate an
! existing file that contains only configuration pragmas. These
! configuration pragmas are in addition to those found in
! @code{gnat.adc} (provided @code{gnat.adc} is present and you do not
! use switch @code{-gnatA}).
! You can specify multiple @code{-gnatec=}  switches.
  
! GNAT will add files containing configuration pragmas specified with switches
! @code{-gnatec=} to the dependencies, unless they are
  temporary files. A file is considered temporary if its name ends in
  @code{.tmp} or @code{.TMP}. Certain tools follow this naming
  convention because they pass information to @code{gcc} via
*************** temporary files that are immediately del
*** 2975,2998 ****
  depend on a file that no longer exists. Such tools include
  @code{gprbuild}, @code{gnatmake}, and @code{gnatcheck}.
  
! By default, configuration pragma files are stored by their absolute paths in
! ALI files. You can use the @code{-gnateb} switch in order to store them by
! their basename instead.
  
! If you are using project file, a separate mechanism is provided using
  project attributes.
  
  @c --Comment
  @c See :ref:`Specifying_Configuration_Pragmas` for more details.
  
  @node Generating Object Files,Source Dependencies,Configuration Pragmas,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model generating-object-files}@anchor{26}@anchor{gnat_ugn/the_gnat_compilation_model id31}@anchor{64}
  @section Generating Object Files
  
  
! An Ada program consists of a set of source files, and the first step in
! compiling the program is to generate the corresponding object files.
! These are generated by compiling a subset of these source files.
  The files you need to compile are the following:
  
  
--- 2985,3008 ----
  depend on a file that no longer exists. Such tools include
  @code{gprbuild}, @code{gnatmake}, and @code{gnatcheck}.
  
! By default, configuration pragma files are stored by their absolute
! paths in ALI files. You can use the @code{-gnateb} switch to
! request they be stored instead by just their basename.
  
! If you are using project file, they provide a separate mechanism using
  project attributes.
  
  @c --Comment
  @c See :ref:`Specifying_Configuration_Pragmas` for more details.
  
  @node Generating Object Files,Source Dependencies,Configuration Pragmas,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model generating-object-files}@anchor{27}@anchor{gnat_ugn/the_gnat_compilation_model id31}@anchor{65}
  @section Generating Object Files
  
  
! An Ada program consists of a set of source files and the first step in
! compiling the program is generating the corresponding object files.
! You generate these by compiling a subset of these source files.
  The files you need to compile are the following:
  
  
*************** If a package spec has no body, compile t
*** 3003,3017 ****
  object file for the package.
  
  @item 
! If a package has both a spec and a body, compile the body to produce the
! object file for the package. The source file for the package spec need
! not be compiled in this case because there is only one object file, which
! contains the code for both the spec and body of the package.
  
  @item 
! For a subprogram, compile the subprogram body to produce the object file
! for the subprogram. The spec, if one is present, is as usual in a
! separate file, and need not be compiled.
  @end itemize
  
  @geindex Subunits
--- 3013,3028 ----
  object file for the package.
  
  @item 
! If a package has both a spec and a body, compile the body to produce
! the object file for the package. You need not compile the source
! file for the package spec in this case because there’s only one
! object file, which contains the code for both the spec and body of
! the package.
  
  @item 
! For a subprogram, compile the subprogram body to produce the object
! file for the subprogram. You need not compile the spec, if such a file is
! present.
  @end itemize
  
  @geindex Subunits
*************** separate file, and need not be compiled.
*** 3020,3054 ****
  @itemize *
  
  @item 
! In the case of subunits, only compile the parent unit. A single object
! file is generated for the entire subunit tree, which includes all the
! subunits.
  
  @item 
! Compile child units independently of their parent units
! (though, of course, the spec of all the ancestor unit must be present in order
  to compile a child unit).
  
  @geindex Generics
  
  @item 
! Compile generic units in the same manner as any other units. The object
! files in this case are small dummy files that contain at most the
! flag used for elaboration checking. This is because GNAT always handles generic
! instantiation by means of macro expansion. However, it is still necessary to
! compile generic units, for dependency checking and elaboration purposes.
  @end itemize
  
  The preceding rules describe the set of files that must be compiled to
! generate the object files for a program. Each object file has the same
  name as the corresponding source file, except that the extension is
! @code{.o} as usual.
  
  You may wish to compile other files for the purpose of checking their
  syntactic and semantic correctness. For example, in the case where a
  package has a separate spec and body, you would not normally compile the
  spec. However, it is convenient in practice to compile the spec to make
! sure it is error-free before compiling clients of this spec, because such
  compilations will fail if there is an error in the spec.
  
  GNAT provides an option for compiling such files purely for the
--- 3031,3067 ----
  @itemize *
  
  @item 
! In the case of subunits, only compile the parent unit. GNAT
! generates a single object file for the entire subunit tree, which
! includes all the subunits.
  
  @item 
! Compile child units independently of their parent units (though, of
! course, the spec of all the ancestor unit must be present in order
  to compile a child unit).
  
  @geindex Generics
  
  @item 
! Compile generic units in the same manner as any other units. The
! object files in this case are small dummy files that contain, at
! most, the flag used for elaboration checking. This is because GNAT
! always handles generic instantiation by means of macro
! expansion. However, you still must compile generic units
! for dependency checking and elaboration purposes.
  @end itemize
  
  The preceding rules describe the set of files that must be compiled to
! generate all the object files for a program. See the following section on dependencies for more details on computing that set of files.
! Each object file has the same
  name as the corresponding source file, except that the extension is
! @code{.o}, as usual.
  
  You may wish to compile other files for the purpose of checking their
  syntactic and semantic correctness. For example, in the case where a
  package has a separate spec and body, you would not normally compile the
  spec. However, it is convenient in practice to compile the spec to make
! sure it is error-free before compiling clients of this spec because such
  compilations will fail if there is an error in the spec.
  
  GNAT provides an option for compiling such files purely for the
*************** part of the process of building a progra
*** 3057,3073 ****
  checking mode, use the @code{-gnatc} switch.
  
  @node Source Dependencies,The Ada Library Information Files,Generating Object Files,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id32}@anchor{65}@anchor{gnat_ugn/the_gnat_compilation_model source-dependencies}@anchor{27}
  @section Source Dependencies
  
  
! A given object file clearly depends on the source file which is compiled
! to produce it. Here we are using “depends” in the sense of a typical
! @code{make} utility; in other words, an object file depends on a source
! file if changes to the source file require the object file to be
! recompiled.
! In addition to this basic dependency, a given object may depend on
! additional source files as follows:
  
  
  @itemize *
--- 3070,3085 ----
  checking mode, use the @code{-gnatc} switch.
  
  @node Source Dependencies,The Ada Library Information Files,Generating Object Files,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id32}@anchor{66}@anchor{gnat_ugn/the_gnat_compilation_model source-dependencies}@anchor{28}
  @section Source Dependencies
  
  
! Each object file obviously depends on at least the source file which
! is compiled to produce it. Here we are using “depends” in the sense of
! a typical @code{make} utility; in other words, an object file depends on
! a source file if changes to the source file require the object file to
! be recompiled.  In addition to this basic dependency, a given object
! may depend on additional source files as follows:
  
  
  @itemize *
*************** additional source files as follows:
*** 3076,3082 ****
  If a file being compiled `with's a unit @code{X}, the object file
  depends on the file containing the spec of unit @code{X}. This includes
  files that are `with'ed implicitly either because they are parents
! of `with'ed child units or they are run-time units required by the
  language constructs used in a particular unit.
  
  @item 
--- 3088,3094 ----
  If a file being compiled `with's a unit @code{X}, the object file
  depends on the file containing the spec of unit @code{X}. This includes
  files that are `with'ed implicitly either because they are parents
! of `with'ed child units or are run-time units required by the
  language constructs used in a particular unit.
  
  @item 
*************** well as the spec file.
*** 3099,3109 ****
  
  @item 
  If a file being compiled contains a call to a subprogram for which
! pragma @code{Inline} applies and inlining is activated with the
  @code{-gnatn} switch, the object file depends on the file containing the
  body of this subprogram as well as on the file containing the spec. Note
  that for inlining to actually occur as a result of the use of this switch,
! it is necessary to compile in optimizing mode.
  
  @geindex -gnatN switch
  
--- 3111,3121 ----
  
  @item 
  If a file being compiled contains a call to a subprogram for which
! pragma @code{Inline} applies and you have activated inlining with the
  @code{-gnatn} switch, the object file depends on the file containing the
  body of this subprogram as well as on the file containing the spec. Note
  that for inlining to actually occur as a result of the use of this switch,
! you must compile in optimizing mode.
  
  @geindex -gnatN switch
  
*************** that is performed by the front end of th
*** 3112,3120 ****
  not require that the code generation be optimized. Like @code{-gnatn},
  the use of this switch generates additional dependencies.
  
! When using a gcc-based back end, then the use of
! @code{-gnatN} is deprecated, and the use of @code{-gnatn} is preferred.
! Historically front end inlining was more extensive than the gcc back end
  inlining, but that is no longer the case.
  
  @item 
--- 3124,3132 ----
  not require that the code generation be optimized. Like @code{-gnatn},
  the use of this switch generates additional dependencies.
  
! When using a @code{gcc} or LLVM based back end, the use of
! @code{-gnatN} is deprecated and the use of @code{-gnatn} is preferred.
! Historically front end inlining was more extensive than back end
  inlining, but that is no longer the case.
  
  @item 
*************** affects the compilation of @code{O}.
*** 3127,3138 ****
  The object file for a parent unit depends on all its subunit body files.
  
  @item 
! The previous two rules meant that for purposes of computing dependencies and
! recompilation, a body and all its subunits are treated as an indivisible whole.
  
  These rules are applied transitively: if unit @code{A} `with's
  unit @code{B}, whose elaboration calls an inlined procedure in package
! @code{C}, the object file for unit @code{A} will depend on the body of
  @code{C}, in file @code{c.adb}.
  
  The set of dependent files described by these rules includes all the
--- 3139,3151 ----
  The object file for a parent unit depends on all its subunit body files.
  
  @item 
! The previous two rules means that, for purposes of computing
! dependencies and recompilation, a body and all its subunits are
! treated as an indivisible whole.
  
  These rules are applied transitively: if unit @code{A} `with's
  unit @code{B}, whose elaboration calls an inlined procedure in package
! @code{C}, the object file for unit @code{A} depends on the body of
  @code{C}, in file @code{c.adb}.
  
  The set of dependent files described by these rules includes all the
*************** Ada language standard. However, it is a
*** 3141,3157 ****
  standard describes, because it includes generic, inline, and subunit
  dependencies.
  
! An object file must be recreated by recompiling the corresponding source
! file if any of the source files on which it depends are modified. For
! example, if the @code{make} utility is used to control compilation,
! the rule for an Ada object file must mention all the source files on
! which the object file depends, according to the above definition.
! The determination of the necessary
! recompilations is done automatically when one uses @code{gnatmake}.
  @end itemize
  
  @node The Ada Library Information Files,Binding an Ada Program,Source Dependencies,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id33}@anchor{66}@anchor{gnat_ugn/the_gnat_compilation_model the-ada-library-information-files}@anchor{28}
  @section The Ada Library Information Files
  
  
--- 3154,3170 ----
  standard describes, because it includes generic, inline, and subunit
  dependencies.
  
! An object file must be recreated by recompiling the corresponding
! source file if any of the source files on which it depends are
! modified. For example, if the @code{make} utility is used to control
! compilation, the rule for an Ada object file must mention all the
! source files on which the object file depends, according to the
! above definition.  Invoking @code{gnatmake} will cause it to determine
! the necessary recompilations.
  @end itemize
  
  @node The Ada Library Information Files,Binding an Ada Program,Source Dependencies,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id33}@anchor{67}@anchor{gnat_ugn/the_gnat_compilation_model the-ada-library-information-files}@anchor{29}
  @section The Ada Library Information Files
  
  
*************** recompilations is done automatically whe
*** 3160,3170 ****
  @geindex ALI files
  
  Each compilation actually generates two output files. The first of these
! is the normal object file that has a @code{.o} extension. The second is a
  text file containing full dependency information. It has the same
  name as the source file, but an @code{.ali} extension.
  This file is known as the Ada Library Information (@code{ALI}) file.
! The following information is contained in the @code{ALI} file.
  
  
  @itemize *
--- 3173,3183 ----
  @geindex ALI files
  
  Each compilation actually generates two output files. The first of these
! is the actual object file that has a @code{.o} extension. The second is a
  text file containing full dependency information. It has the same
  name as the source file, but an @code{.ali} extension.
  This file is known as the Ada Library Information (@code{ALI}) file.
! The following information is contained in that file:
  
  
  @itemize *
*************** Main program information (including prio
*** 3178,3192 ****
  as well as the wide character encoding used during compilation).
  
  @item 
! List of arguments used in the @code{gcc} command for the compilation
  
  @item 
! Attributes of the unit, including configuration pragmas used, an indication
! of whether the compilation was successful, exception model used etc.
  
  @item 
! A list of relevant restrictions applying to the unit (used for consistency)
! checking.
  
  @item 
  Categorization information (e.g., use of pragma @code{Pure}).
--- 3191,3206 ----
  as well as the wide character encoding used during compilation).
  
  @item 
! List of arguments used in the compilation command
  
  @item 
! Attributes of the unit, including the configuration pragmas used, an
! indication of whether the compilation was successful, and the exception
! model used.
  
  @item 
! A list of relevant restrictions applying to the unit (used for consistency
! checking).
  
  @item 
  Categorization information (e.g., use of pragma @code{Pure}).
*************** attributes in the unit.
*** 3205,3212 ****
  @item 
  Dependency information. This is a list of files, together with
  time stamp and checksum information. These are files on which
! the unit depends in the sense that recompilation is required
! if any of these units are modified.
  
  @item 
  Cross-reference data. Contains information on all entities referenced
--- 3219,3226 ----
  @item 
  Dependency information. This is a list of files, together with
  time stamp and checksum information. These are files on which
! the unit depends in the sense that the modification of any of
! these units requires the recompilation of the unit in question.
  
  @item 
  Cross-reference data. Contains information on all entities referenced
*************** in the unit. Used by some tools to provi
*** 3214,3230 ****
  @end itemize
  
  For a full detailed description of the format of the @code{ALI} file,
! see the source of the body of unit @code{Lib.Writ}, contained in file
! @code{lib-writ.adb} in the GNAT compiler sources.
  
  @node Binding an Ada Program,GNAT and Libraries,The Ada Library Information Files,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model binding-an-ada-program}@anchor{29}@anchor{gnat_ugn/the_gnat_compilation_model id34}@anchor{67}
  @section Binding an Ada Program
  
  
  When using languages such as C and C++, once the source files have been
  compiled the only remaining step in building an executable program
! is linking the object modules together. This means that it is possible to
  link an inconsistent version of a program, in which two units have
  included different versions of the same header.
  
--- 3228,3244 ----
  @end itemize
  
  For a full detailed description of the format of the @code{ALI} file,
! see the source of the spec of unit @code{Lib.Writ}, contained in file
! @code{lib-writ.ads} in the GNAT compiler sources.
  
  @node Binding an Ada Program,GNAT and Libraries,The Ada Library Information Files,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model binding-an-ada-program}@anchor{2a}@anchor{gnat_ugn/the_gnat_compilation_model id34}@anchor{68}
  @section Binding an Ada Program
  
  
  When using languages such as C and C++, once the source files have been
  compiled the only remaining step in building an executable program
! is linking the object modules together. This means that you can
  link an inconsistent version of a program, in which two units have
  included different versions of the same header.
  
*************** These rules are enforced by the GNAT bin
*** 3235,3247 ****
  elaboration order consistent with the Ada rules.
  
  The GNAT binder is run after all the object files for a program have
! been created. It is given the name of the main program unit, and from
! this it determines the set of units required by the program, by reading the
  corresponding ALI files. It generates error messages if the program is
  inconsistent or if no valid order of elaboration exists.
  
! If no errors are detected, the binder produces a main program, in Ada by
! default, that contains calls to the elaboration procedures of those
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
--- 3249,3261 ----
  elaboration order consistent with the Ada rules.
  
  The GNAT binder is run after all the object files for a program have
! been created. It is given the name of the main program unit and from
! this determines the set of units required by the program by reading the
  corresponding ALI files. It generates error messages if the program is
  inconsistent or if no valid order of elaboration exists.
  
! If no errors are detected, the binder produces a main program in Ada
! that contains calls to the elaboration procedures of those
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
*************** using the object from the main program f
*** 3254,3269 ****
  object files for the Ada units of the program.
  
  @node GNAT and Libraries,Conditional Compilation,Binding an Ada Program,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-libraries}@anchor{2a}@anchor{gnat_ugn/the_gnat_compilation_model id35}@anchor{68}
  @section GNAT and Libraries
  
  
! @geindex Library building and using
  
! This section describes how to build and use libraries with GNAT, and also shows
  how to recompile the GNAT run-time library. You should be familiar with the
  Project Manager facility (see the `GNAT_Project_Manager' chapter of the
! `GPRbuild User’s Guide') before reading this chapter.
  
  @menu
  * Introduction to Libraries in GNAT:: 
--- 3268,3283 ----
  object files for the Ada units of the program.
  
  @node GNAT and Libraries,Conditional Compilation,Binding an Ada Program,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-libraries}@anchor{2b}@anchor{gnat_ugn/the_gnat_compilation_model id35}@anchor{69}
  @section GNAT and Libraries
  
  
! @geindex Library building and referencing
  
! This section describes how to build and use libraries with GNAT and
  how to recompile the GNAT run-time library. You should be familiar with the
  Project Manager facility (see the `GNAT_Project_Manager' chapter of the
! @cite{GPRbuild User’s Guide}) before reading this chapter.
  
  @menu
  * Introduction to Libraries in GNAT:: 
*************** Project Manager facility (see the `GNAT_
*** 3274,3298 ****
  @end menu
  
  @node Introduction to Libraries in GNAT,General Ada Libraries,,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id36}@anchor{69}@anchor{gnat_ugn/the_gnat_compilation_model introduction-to-libraries-in-gnat}@anchor{6a}
  @subsection Introduction to Libraries in GNAT
  
  
  A library is, conceptually, a collection of objects which does not have its
! own main thread of execution, but rather provides certain services to the
  applications that use it. A library can be either statically linked with the
  application, in which case its code is directly included in the application,
  or, on platforms that support it, be dynamically linked, in which case
  its code is shared by all applications making use of this library.
  
  GNAT supports both types of libraries.
! In the static case, the compiled code can be provided in different ways. The
! simplest approach is to provide directly the set of objects resulting from
  compilation of the library source files. Alternatively, you can group the
  objects into an archive using whatever commands are provided by the operating
! system. For the latter case, the objects are grouped into a shared library.
  
! In the GNAT environment, a library has three types of components:
  
  
  @itemize *
--- 3288,3312 ----
  @end menu
  
  @node Introduction to Libraries in GNAT,General Ada Libraries,,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id36}@anchor{6a}@anchor{gnat_ugn/the_gnat_compilation_model introduction-to-libraries-in-gnat}@anchor{6b}
  @subsection Introduction to Libraries in GNAT
  
  
  A library is, conceptually, a collection of objects which does not have its
! own main thread of execution but instead provides certain services to the
  applications that use it. A library can be either statically linked with the
  application, in which case its code is directly included in the application,
  or, on platforms that support it, be dynamically linked, in which case
  its code is shared by all applications making use of this library.
  
  GNAT supports both types of libraries.
! In the static case, you can provide the compiled code in different ways. The
! simplest approach is to directly provide the set of objects resulting from
  compilation of the library source files. Alternatively, you can group the
  objects into an archive using whatever commands are provided by the operating
! system.
  
! In the GNAT environment, a library has these components:
  
  
  @itemize *
*************** In the GNAT environment, a library has t
*** 3301,3319 ****
  Source files,
  
  @item 
! @code{ALI} files (see @ref{28,,The Ada Library Information Files}), and
  
  @item 
! Object files, an archive or a shared library.
  @end itemize
  
  A GNAT library may expose all its source files, which is useful for
  documentation purposes. Alternatively, it may expose only the units needed by
! an external user to make use of the library. That is to say, the specs
  reflecting the library services along with all the units needed to compile
  those specs, which can include generic bodies or any body implementing an
  inlined routine. In the case of `stand-alone libraries' those exposed
! units are called `interface units' (@ref{6b,,Stand-alone Ada Libraries}).
  
  All compilation units comprising an application, including those in a library,
  need to be elaborated in an order partially defined by Ada’s semantics. GNAT
--- 3315,3333 ----
  Source files,
  
  @item 
! @code{ALI} files (see @ref{29,,The Ada Library Information Files}), and
  
  @item 
! Object files, an archive, or a shared library.
  @end itemize
  
  A GNAT library may expose all its source files, which is useful for
  documentation purposes. Alternatively, it may expose only the units needed by
! an external user to make use of the library, in other words, the specs
  reflecting the library services along with all the units needed to compile
  those specs, which can include generic bodies or any body implementing an
  inlined routine. In the case of `stand-alone libraries' those exposed
! units are called `interface units' (@ref{6c,,Stand-alone Ada Libraries}).
  
  All compilation units comprising an application, including those in a library,
  need to be elaborated in an order partially defined by Ada’s semantics. GNAT
*************** library elaboration routine is produced
*** 3324,3330 ****
  using the library.
  
  @node General Ada Libraries,Stand-alone Ada Libraries,Introduction to Libraries in GNAT,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model general-ada-libraries}@anchor{6c}@anchor{gnat_ugn/the_gnat_compilation_model id37}@anchor{6d}
  @subsection General Ada Libraries
  
  
--- 3338,3344 ----
  using the library.
  
  @node General Ada Libraries,Stand-alone Ada Libraries,Introduction to Libraries in GNAT,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model general-ada-libraries}@anchor{6d}@anchor{gnat_ugn/the_gnat_compilation_model id37}@anchor{6e}
  @subsection General Ada Libraries
  
  
*************** using the library.
*** 3336,3354 ****
  @end menu
  
  @node Building a library,Installing a library,,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model building-a-library}@anchor{6e}@anchor{gnat_ugn/the_gnat_compilation_model id38}@anchor{6f}
  @subsubsection Building a library
  
  
  The easiest way to build a library is to use the Project Manager,
  which supports a special type of project called a `Library Project'
  (see the `Library Projects' section in the `GNAT Project Manager'
! chapter of the `GPRbuild User’s Guide').
  
! A project is considered a library project, when two project-level attributes
! are defined in it: @code{Library_Name} and @code{Library_Dir}. In order to
! control different aspects of library configuration, additional optional
! project-level attributes can be specified:
  
  
  @itemize *
--- 3350,3368 ----
  @end menu
  
  @node Building a library,Installing a library,,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model building-a-library}@anchor{6f}@anchor{gnat_ugn/the_gnat_compilation_model id38}@anchor{70}
  @subsubsection Building a library
  
  
  The easiest way to build a library is to use the Project Manager,
  which supports a special type of project called a `Library Project'
  (see the `Library Projects' section in the `GNAT Project Manager'
! chapter of the @cite{GPRbuild User’s Guide}).
  
! A project is considered a library project when two project-level
! attributes are defined in it: @code{Library_Name} and @code{Library_Dir}. In
! order to control different aspects of library configuration, you can
! specify additional optional project-level attributes:
  
  
  @itemize *
*************** This attribute controls whether the libr
*** 3368,3374 ****
  
  @item @code{Library_Version}
  
! This attribute specifies the library version; this value is used
  during dynamic linking of shared libraries to determine if the currently
  installed versions of the binaries are compatible.
  @end table
--- 3382,3388 ----
  
  @item @code{Library_Version}
  
! This attribute specifies the library version. Its value is used
  during dynamic linking of shared libraries to determine if the currently
  installed versions of the binaries are compatible.
  @end table
*************** installed versions of the binaries are c
*** 3383,3400 ****
  @item @code{Library_GCC}
  
  These attributes specify additional low-level options to be used during
! library generation, and redefine the actual application used to generate
  library.
  @end table
  @end itemize
  
! The GNAT Project Manager takes full care of the library maintenance task,
  including recompilation of the source files for which objects do not exist
  or are not up to date, assembly of the library archive, and installation of
  the library (i.e., copying associated source, object and @code{ALI} files
  to the specified location).
  
! Here is a simple library project file:
  
  @example
  project My_Lib is
--- 3397,3414 ----
  @item @code{Library_GCC}
  
  These attributes specify additional low-level options to be used during
! library generation and the commands used to generate the
  library.
  @end table
  @end itemize
  
! The GNAT Project Manager takes complete care of the library maintenance task,
  including recompilation of the source files for which objects do not exist
  or are not up to date, assembly of the library archive, and installation of
  the library (i.e., copying associated source, object and @code{ALI} files
  to the specified location).
  
! Here’s a simple library project file:
  
  @example
  project My_Lib is
*************** and the compilation command to build and
*** 3412,3433 ****
  $ gnatmake -Pmy_lib
  @end example
  
! It is not entirely trivial to perform manually all the steps required to
! produce a library. We recommend that you use the GNAT Project Manager
! for this task. In special cases where this is not desired, the necessary
! steps are discussed below.
  
! There are various possibilities for compiling the units that make up the
! library: for example with a Makefile (@ref{70,,Using the GNU make Utility}) or
! with a conventional script. For simple libraries, it is also possible to create
! a dummy main program which depends upon all the packages that comprise the
! interface of the library. This dummy main program can then be given to
! @code{gnatmake}, which will ensure that all necessary objects are built.
  
! After this task is accomplished, you should follow the standard procedure
  of the underlying operating system to produce the static or shared library.
  
! Here is an example of such a dummy program:
  
  @example
  with My_Lib.Service1;
--- 3426,3448 ----
  $ gnatmake -Pmy_lib
  @end example
  
! It’s complex to manually perform all the steps required to
! produce a library, so we recommend you use the GNAT Project Manager
! for this task. In case this is not desired, we discuss the necessary
! steps below.
  
! There are various possibilities for compiling the units that make up
! the library: for example with a @code{Makefile}
! (@ref{71,,Using the GNU make Utility}) or with a conventional script. For
! simple libraries, you can also create a dummy main program
! that depends upon all the packages that comprise the interface of the
! library. You can then pass this dummy main program to @code{gnatmake},
! which will ensure all necessary objects are built.
  
! After the above has been accomplished, you should follow the standard procedure
  of the underlying operating system to produce the static or shared library.
  
! Here’s an example of such a dummy program:
  
  @example
  with My_Lib.Service1;
*************** $ chmod -w *.ali
*** 3466,3475 ****
  
  Please note that the library must have a name of the form @code{lib`xxx'.a}
  or @code{lib`xxx'.so} (or @code{lib`xxx'.dll} on Windows) in order to
! be accessed by the directive @code{-l`xxx'} at link time.
  
  @node Installing a library,Using a library,Building a library,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id39}@anchor{71}@anchor{gnat_ugn/the_gnat_compilation_model installing-a-library}@anchor{72}
  @subsubsection Installing a library
  
  
--- 3481,3490 ----
  
  Please note that the library must have a name of the form @code{lib`xxx'.a}
  or @code{lib`xxx'.so} (or @code{lib`xxx'.dll} on Windows) in order to
! be accessed by the @code{-l`xxx'} switch at link time.
  
  @node Installing a library,Using a library,Building a library,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id39}@anchor{72}@anchor{gnat_ugn/the_gnat_compilation_model installing-a-library}@anchor{73}
  @subsubsection Installing a library
  
  
*************** be accessed by the directive @code{-l`xx
*** 3479,3495 ****
  
  If you use project files, library installation is part of the library build
  process (see the `Installing a Library with Project Files' section of the
! `GNAT Project Manager' chapter of the `GPRbuild User’s Guide').
  
! When project files are not an option, it is also possible, but not recommended,
! to install the library so that the sources needed to use the library are on the
! Ada source path and the ALI files & libraries be on the Ada Object path (see
! @ref{73,,Search Paths and the Run-Time Library (RTL)}). Alternatively, the system
! administrator can place general-purpose libraries in the default compiler
! paths, by specifying the libraries’ location in the configuration files
! @code{ada_source_path} and @code{ada_object_path}. These configuration files
! must be located in the GNAT installation tree at the same place as the gcc spec
! file. The location of the gcc spec file can be determined as follows:
  
  @example
  $ gcc -v
--- 3494,3512 ----
  
  If you use project files, library installation is part of the library build
  process (see the `Installing a Library with Project Files' section of the
! `GNAT Project Manager' chapter of the @cite{GPRbuild User’s Guide}).
  
! When you’re not able to use project files for some reason, you can
! also install the library so that the sources needed to use the library
! are on the Ada source path and the ALI files & libraries be on the Ada
! Object path (see @ref{74,,Search Paths and the Run-Time Library (RTL)}),
! but we don’t recommend doing this.  Alternatively, the system
! administrator can place general-purpose libraries in the default
! compiler paths, by specifying the libraries’ location in the
! configuration files @code{ada_source_path} and
! @code{ada_object_path}. These configuration files must be located in
! the GNAT installation tree at the same place as the @code{gcc} spec
! file. The location of the @code{gcc} spec file can be determined as follows:
  
  @example
  $ gcc -v
*************** are located.
*** 3504,3510 ****
  
  The files @code{ada_source_path} and @code{ada_object_path} might not be
  present in a
! GNAT installation, in which case, GNAT will look for its run-time library in
  the directories @code{adainclude} (for the sources) and @code{adalib} (for the
  objects and @code{ALI} files). When the files exist, the compiler does not
  look in @code{adainclude} and @code{adalib}, and thus the
--- 3521,3527 ----
  
  The files @code{ada_source_path} and @code{ada_object_path} might not be
  present in a
! GNAT installation, in which case, GNAT looks for its run-time library in
  the directories @code{adainclude} (for the sources) and @code{adalib} (for the
  objects and @code{ALI} files). When the files exist, the compiler does not
  look in @code{adainclude} and @code{adalib}, and thus the
*************** be @code{adainclude}). In the same way,
*** 3514,3538 ****
  contain the location for the GNAT run-time objects (which can simply
  be @code{adalib}).
  
! You can also specify a new default path to the run-time library at compilation
! time with the switch @code{--RTS=rts-path}. You can thus choose / change
! the run-time library you want your program to be compiled with. This switch is
! recognized by @code{gcc}, @code{gnatmake}, @code{gnatbind}, @code{gnatls}, and all
! project aware tools.
  
! It is possible to install a library before or after the standard GNAT
! library, by reordering the lines in the configuration files. In general, a
! library must be installed before the GNAT library if it redefines
! any part of it.
  
  @node Using a library,,Installing a library,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id40}@anchor{74}@anchor{gnat_ugn/the_gnat_compilation_model using-a-library}@anchor{75}
  @subsubsection Using a library
  
  
  Once again, the project facility greatly simplifies the use of
  libraries. In this context, using a library is just a matter of adding a
! `with' clause in the user project. For instance, to make use of the
  library @code{My_Lib} shown in examples in earlier sections, you can
  write:
  
--- 3531,3555 ----
  contain the location for the GNAT run-time objects (which can simply
  be @code{adalib}).
  
! You can also specify a new default path to the run-time library at
! compilation time with the @code{--RTS=rts-path} switch. You can
! thus choose the run-time library you want your program to be
! compiled with. This switch is recognized by @code{gcc}, @code{gnatmake},
! @code{gnatbind}, @code{gnatls}, and all project aware tools.
  
! You can install a library before or after the standard GNAT library by
! selecting the ordering the lines in the configuration files. In
! general, a library must be installed before the GNAT library if it
! redefines any part of it.
  
  @node Using a library,,Installing a library,General Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id40}@anchor{75}@anchor{gnat_ugn/the_gnat_compilation_model using-a-library}@anchor{76}
  @subsubsection Using a library
  
  
  Once again, the project facility greatly simplifies the use of
  libraries. In this context, using a library is just a matter of adding a
! `with' clause in your project. For example, to make use of the
  library @code{My_Lib} shown in examples in earlier sections, you can
  write:
  
*************** left to the tools having visibility over
*** 3565,3572 ****
  
  In order to use an Ada library manually, you need to make sure that this
  library is on both your source and object path
! (see @ref{73,,Search Paths and the Run-Time Library (RTL)}
! and @ref{76,,Search Paths for gnatbind}). Furthermore, when the objects are grouped
  in an archive or a shared library, you need to specify the desired
  library at link time.
  
--- 3582,3589 ----
  
  In order to use an Ada library manually, you need to make sure that this
  library is on both your source and object path
! (see @ref{74,,Search Paths and the Run-Time Library (RTL)}
! and @ref{77,,Search Paths for gnatbind}). Furthermore, when the objects are grouped
  in an archive or a shared library, you need to specify the desired
  library at link time.
  
*************** in the directory @code{share/examples/gn
*** 3620,3626 ****
  install area.
  
  @node Stand-alone Ada Libraries,Rebuilding the GNAT Run-Time Library,General Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id41}@anchor{77}@anchor{gnat_ugn/the_gnat_compilation_model stand-alone-ada-libraries}@anchor{6b}
  @subsection Stand-alone Ada Libraries
  
  
--- 3637,3643 ----
  install area.
  
  @node Stand-alone Ada Libraries,Rebuilding the GNAT Run-Time Library,General Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id41}@anchor{78}@anchor{gnat_ugn/the_gnat_compilation_model stand-alone-ada-libraries}@anchor{6c}
  @subsection Stand-alone Ada Libraries
  
  
*************** install area.
*** 3635,3666 ****
  @end menu
  
  @node Introduction to Stand-alone Libraries,Building a Stand-alone Library,,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id42}@anchor{78}@anchor{gnat_ugn/the_gnat_compilation_model introduction-to-stand-alone-libraries}@anchor{79}
  @subsubsection Introduction to Stand-alone Libraries
  
  
! A Stand-alone Library (abbreviated ‘SAL’) is a library that contains the
! necessary code to
! elaborate the Ada units that are included in the library. In contrast with
! an ordinary library, which consists of all sources, objects and @code{ALI}
! files of the
! library, a SAL may specify a restricted subset of compilation units
! to serve as a library interface. In this case, the fully
! self-sufficient set of files will normally consist of an objects
! archive, the sources of interface units’ specs, and the @code{ALI}
! files of interface units.
! If an interface spec contains a generic unit or an inlined subprogram,
! the body’s
! source must also be provided; if the units that must be provided in the source
! form depend on other units, the source and @code{ALI} files of those must
! also be provided.
  
  The main purpose of a SAL is to minimize the recompilation overhead of client
  applications when a new version of the library is installed. Specifically,
! if the interface sources have not changed, client applications do not need to
  be recompiled. If, furthermore, a SAL is provided in the shared form and its
  version, controlled by @code{Library_Version} attribute, is not changed,
! then the clients do not need to be relinked.
  
  SALs also allow the library providers to minimize the amount of library source
  text exposed to the clients.  Such ‘information hiding’ might be useful or
--- 3652,3680 ----
  @end menu
  
  @node Introduction to Stand-alone Libraries,Building a Stand-alone Library,,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id42}@anchor{79}@anchor{gnat_ugn/the_gnat_compilation_model introduction-to-stand-alone-libraries}@anchor{7a}
  @subsubsection Introduction to Stand-alone Libraries
  
  
! A Stand-alone Library (abbreviated ‘SAL’) is a library that contains
! the necessary code to elaborate the Ada units that are included in the
! library. In contrast with an ordinary library, which consists of all
! sources, objects and @code{ALI} files of the library, a SAL may
! specify a restricted subset of compilation units to serve as a library
! interface. In this case, the fully self-sufficient set of files will
! normally consist of an objects archive, the sources of interface
! units’ specs, and the @code{ALI} files of interface units.  If an
! interface spec contains a generic unit or an inlined subprogram, you
! must also provide the body’s source; if the units that must be
! provided in the source form depend on other units, you must also
! provide the source and @code{ALI} files of those units.
  
  The main purpose of a SAL is to minimize the recompilation overhead of client
  applications when a new version of the library is installed. Specifically,
! if the interface sources have not changed, client applications don’t need to
  be recompiled. If, furthermore, a SAL is provided in the shared form and its
  version, controlled by @code{Library_Version} attribute, is not changed,
! the clients also do not need to be relinked.
  
  SALs also allow the library providers to minimize the amount of library source
  text exposed to the clients.  Such ‘information hiding’ might be useful or
*************** Stand-alone libraries are also well suit
*** 3670,3687 ****
  main routine is not written in Ada.
  
  @node Building a Stand-alone Library,Creating a Stand-alone Library to be used in a non-Ada context,Introduction to Stand-alone Libraries,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model building-a-stand-alone-library}@anchor{7a}@anchor{gnat_ugn/the_gnat_compilation_model id43}@anchor{7b}
  @subsubsection Building a Stand-alone Library
  
  
  GNAT’s Project facility provides a simple way of building and installing
  stand-alone libraries; see the `Stand-alone Library Projects' section
! in the `GNAT Project Manager' chapter of the `GPRbuild User’s Guide'.
  To be a Stand-alone Library Project, in addition to the two attributes
  that make a project a Library Project (@code{Library_Name} and
  @code{Library_Dir}; see the `Library Projects' section in the
  `GNAT Project Manager' chapter of the `GPRbuild User’s Guide'),
! the attribute @code{Library_Interface} must be defined.  For example:
  
  @example
  for Library_Dir use "lib_dir";
--- 3684,3701 ----
  main routine is not written in Ada.
  
  @node Building a Stand-alone Library,Creating a Stand-alone Library to be used in a non-Ada context,Introduction to Stand-alone Libraries,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model building-a-stand-alone-library}@anchor{7b}@anchor{gnat_ugn/the_gnat_compilation_model id43}@anchor{7c}
  @subsubsection Building a Stand-alone Library
  
  
  GNAT’s Project facility provides a simple way of building and installing
  stand-alone libraries; see the `Stand-alone Library Projects' section
! in the `GNAT Project Manager' chapter of the @cite{GPRbuild User’s Guide}.
  To be a Stand-alone Library Project, in addition to the two attributes
  that make a project a Library Project (@code{Library_Name} and
  @code{Library_Dir}; see the `Library Projects' section in the
  `GNAT Project Manager' chapter of the `GPRbuild User’s Guide'),
! you must define the attribute @code{Library_Interface}.  For example:
  
  @example
  for Library_Dir use "lib_dir";
*************** Attribute @code{Library_Interface} has a
*** 3693,3699 ****
  each string in the list designating a unit contained in an immediate source
  of the project file.
  
! When a Stand-alone Library is built, first the binder is invoked to build
  a package whose name depends on the library name
  (@code{b~dummy.ads/b} in the example above).
  This binder-generated package includes initialization and
--- 3707,3713 ----
  each string in the list designating a unit contained in an immediate source
  of the project file.
  
! When a Stand-alone Library is built, the binder is first invoked to build
  a package whose name depends on the library name
  (@code{b~dummy.ads/b} in the example above).
  This binder-generated package includes initialization and
*************** the Library Directory. As a consequence,
*** 3714,3726 ****
  imported from Ada units outside of the library. If other units are imported,
  the binding phase will fail.
  
! It is also possible to build an encapsulated library where not only
  the code to elaborate and finalize the library is embedded but also
! ensuring that the library is linked only against static
! libraries. So an encapsulated library only depends on system
! libraries, all other code, including the GNAT runtime, is embedded. To
! build an encapsulated library the attribute
! @code{Library_Standalone} must be set to @code{encapsulated}:
  
  @example
  for Library_Dir use "lib_dir";
--- 3728,3740 ----
  imported from Ada units outside of the library. If other units are imported,
  the binding phase will fail.
  
! You can also build an encapsulated library where not only
  the code to elaborate and finalize the library is embedded but also
! ensure that the library is linked only against static
! libraries. That means that an encapsulated library only depends on system
! libraries: all other code, including the GNAT runtime, is embedded. To
! build an encapsulated library you must set attribute
! @code{Library_Standalone} to @code{encapsulated}:
  
  @example
  for Library_Dir use "lib_dir";
*************** for Library_Standalone use "encapsulated
*** 3733,3751 ****
  The default value for this attribute is @code{standard} in which case
  a stand-alone library is built.
  
! The attribute @code{Library_Src_Dir} may be specified for a
! Stand-Alone Library. @code{Library_Src_Dir} is a simple attribute that has a
! single string value. Its value must be the path (absolute or relative to the
! project directory) of an existing directory. This directory cannot be the
! object directory or one of the source directories, but it can be the same as
! the library directory. The sources of the Interface
! Units of the library that are needed by an Ada client of the library will be
! copied to the designated directory, called the Interface Copy directory.
! These sources include the specs of the Interface Units, but they may also
! include bodies and subunits, when pragmas @code{Inline} or @code{Inline_Always}
! are used, or when there is a generic unit in the spec. Before the sources
! are copied to the Interface Copy directory, an attempt is made to delete all
! files in the Interface Copy directory.
  
  Building stand-alone libraries by hand is somewhat tedious, but for those
  occasions when it is necessary here are the steps that you need to perform:
--- 3747,3766 ----
  The default value for this attribute is @code{standard} in which case
  a stand-alone library is built.
  
! You may specify the attribute @code{Library_Src_Dir} for a Stand-Alone
! Library. @code{Library_Src_Dir} has a single string value. Its value must
! be the path (absolute or relative to the project directory) of an
! existing directory. This directory cannot be the object directory or
! one of the source directories, but it can be the same as the library
! directory. The sources of the Interface Units of the library that are
! needed by an Ada client of the library are copied to the designated
! directory, called the Interface Copy directory, when the library is
! built.  These sources include the specs of the Interface Units, but
! they may also include bodies and subunits when pragmas @code{Inline} or
! @code{Inline_Always} are used or when there is a generic unit in the
! spec. Before the sources are copied to the Interface Copy directory,
! the building process makes an attempt to delete all files in the
! Interface Copy directory.
  
  Building stand-alone libraries by hand is somewhat tedious, but for those
  occasions when it is necessary here are the steps that you need to perform:
*************** $ gcc -c b~int2.adb
*** 3775,3784 ****
  
  @item 
  Link the dynamic library with all the necessary object files,
! indicating to the linker the names of the @code{init} (and possibly
  @code{final}) procedures for automatic initialization (and finalization).
! The built library should be placed in a directory different from
! the object directory.
  
  @item 
  Copy the @code{ALI} files of the interface to the library directory,
--- 3790,3799 ----
  
  @item 
  Link the dynamic library with all the necessary object files,
! passing to the linker the names of the @code{init} (and possibly
  @code{final}) procedures for automatic initialization (and finalization).
! You should place the built library in a different directory than
! the object files.
  
  @item 
  Copy the @code{ALI} files of the interface to the library directory,
*************** read-only.
*** 3789,3809 ****
  @end itemize
  
  Using SALs is not different from using other libraries
! (see @ref{75,,Using a library}).
  
  @node Creating a Stand-alone Library to be used in a non-Ada context,Restrictions in Stand-alone Libraries,Building a Stand-alone Library,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model creating-a-stand-alone-library-to-be-used-in-a-non-ada-context}@anchor{7c}@anchor{gnat_ugn/the_gnat_compilation_model id44}@anchor{7d}
  @subsubsection Creating a Stand-alone Library to be used in a non-Ada context
  
  
! It is easy to adapt the SAL build procedure discussed above for use of a SAL in
! a non-Ada context.
  
  The only extra step required is to ensure that library interface subprograms
  are compatible with the main program, by means of @code{pragma Export}
  or @code{pragma Convention}.
  
! Here is an example of simple library interface for use with C main program:
  
  @example
  package My_Package is
--- 3804,3824 ----
  @end itemize
  
  Using SALs is not different from using other libraries
! (see @ref{76,,Using a library}).
  
  @node Creating a Stand-alone Library to be used in a non-Ada context,Restrictions in Stand-alone Libraries,Building a Stand-alone Library,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model creating-a-stand-alone-library-to-be-used-in-a-non-ada-context}@anchor{7d}@anchor{gnat_ugn/the_gnat_compilation_model id44}@anchor{7e}
  @subsubsection Creating a Stand-alone Library to be used in a non-Ada context
  
  
! It’s easy for you to adapt the SAL build procedure discussed above for
! use of a SAL in a non-Ada context.
  
  The only extra step required is to ensure that library interface subprograms
  are compatible with the main program, by means of @code{pragma Export}
  or @code{pragma Convention}.
  
! Here’s an example of simple library interface for use with C main program:
  
  @example
  package My_Package is
*************** package My_Package is
*** 3817,3823 ****
  end My_Package;
  @end example
  
! On the foreign language side, you must provide a ‘foreign’ view of the
  library interface; remember that it should contain elaboration routines in
  addition to interface subprograms.
  
--- 3832,3838 ----
  end My_Package;
  @end example
  
! On the C side, you must provide a ‘foreign’ view of the
  library interface; remember that it should contain elaboration routines in
  addition to interface subprograms.
  
*************** extern void do_something_else (void);
*** 3837,3845 ****
  @end example
  
  Libraries built as explained above can be used from any program, provided
! that the elaboration procedures (named @code{mylibinit} in the previous
! example) are called before the library services are used. Any number of
! libraries can be used simultaneously, as long as the elaboration
  procedure of each library is called.
  
  Below is an example of a C program that uses the @code{mylib} library.
--- 3852,3860 ----
  @end example
  
  Libraries built as explained above can be used from any program, provided
! the elaboration procedures (named @code{mylibinit} in the previous
! example) are called before any library services are used. Any number of
! libraries can be called from a single executable as long as the elaboration
  procedure of each library is called.
  
  Below is an example of a C program that uses the @code{mylib} library.
*************** No call to these libraries or to the Ada
*** 3871,3891 ****
  after the finalization phase.
  
  Information on limitations of binding Ada code in non-Ada contexts can be
! found under @ref{7e,,Binding with Non-Ada Main Programs}.
  
! Note also that special care must be taken with multi-tasks
! applications. The initialization and finalization routines are not
! protected against concurrent access. If such requirement is needed it
! must be ensured at the application level using a specific operating
! system services like a mutex or a critical-section.
  
  @node Restrictions in Stand-alone Libraries,,Creating a Stand-alone Library to be used in a non-Ada context,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id45}@anchor{7f}@anchor{gnat_ugn/the_gnat_compilation_model restrictions-in-stand-alone-libraries}@anchor{80}
  @subsubsection Restrictions in Stand-alone Libraries
  
  
! The pragmas listed below should be used with caution inside libraries,
! as they can create incompatibilities with other Ada libraries:
  
  
  @itemize *
--- 3886,3907 ----
  after the finalization phase.
  
  Information on limitations of binding Ada code in non-Ada contexts can be
! found under @ref{7f,,Binding with Non-Ada Main Programs}.
  
! Note also that you must take special care with multi-tasking
! applications. In that case, the initialization and finalization
! routines are not protected against concurrent access. If you need such
! requirement, you must ensure it at the application level
! using a specific operating system services like a mutex or a
! critical-section.
  
  @node Restrictions in Stand-alone Libraries,,Creating a Stand-alone Library to be used in a non-Ada context,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id45}@anchor{80}@anchor{gnat_ugn/the_gnat_compilation_model restrictions-in-stand-alone-libraries}@anchor{81}
  @subsubsection Restrictions in Stand-alone Libraries
  
  
! You should use the pragmas listed below with caution inside libraries,
! since they can create incompatibilities with other Ada libraries:
  
  
  @itemize *
*************** pragma @code{Task_Dispatching_Policy}
*** 3906,3932 ****
  pragma @code{Unreserve_All_Interrupts}
  @end itemize
  
! When using a library that contains such pragmas, the user must make sure
! that all libraries use the same pragmas with the same values. Otherwise,
! @code{Program_Error} will
! be raised during the elaboration of the conflicting
! libraries. The usage of these pragmas and its consequences for the user
! should therefore be well documented.
  
  Similarly, the traceback in the exception occurrence mechanism should be
  enabled or disabled in a consistent manner across all libraries.
! Otherwise, Program_Error will be raised during the elaboration of the
  conflicting libraries.
  
! If the @code{Version} or @code{Body_Version}
! attributes are used inside a library, then you need to
  perform a @code{gnatbind} step that specifies all @code{ALI} files in all
! libraries, so that version identifiers can be properly computed.
  In practice these attributes are rarely used, so this is unlikely
  to be a consideration.
  
  @node Rebuilding the GNAT Run-Time Library,,Stand-alone Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id46}@anchor{81}@anchor{gnat_ugn/the_gnat_compilation_model rebuilding-the-gnat-run-time-library}@anchor{82}
  @subsection Rebuilding the GNAT Run-Time Library
  
  
--- 3922,3947 ----
  pragma @code{Unreserve_All_Interrupts}
  @end itemize
  
! When using a library that contains such pragmas, the user of the
! library must ensure that all libraries use the same pragmas with the
! same values. Otherwise, @code{Program_Error} will be raised during the
! elaboration of the conflicting libraries. You should document the
! usage of these pragmas and its consequences for the user.
  
  Similarly, the traceback in the exception occurrence mechanism should be
  enabled or disabled in a consistent manner across all libraries.
! Otherwise, @code{Program_Error} will be raised during the elaboration of the
  conflicting libraries.
  
! If you use the @code{Version} or @code{Body_Version}
! attributes inside a library, you need to
  perform a @code{gnatbind} step that specifies all @code{ALI} files in all
! libraries so that version identifiers can be properly computed.
  In practice these attributes are rarely used, so this is unlikely
  to be a consideration.
  
  @node Rebuilding the GNAT Run-Time Library,,Stand-alone Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id46}@anchor{82}@anchor{gnat_ugn/the_gnat_compilation_model rebuilding-the-gnat-run-time-library}@anchor{83}
  @subsection Rebuilding the GNAT Run-Time Library
  
  
*************** to be a consideration.
*** 3940,3968 ****
  @geindex Run-Time Library
  @geindex rebuilding
  
! It may be useful to recompile the GNAT library in various debugging or
! experimentation contexts. A project file called
! @code{libada.gpr} is provided to that effect and can be found in
! the directory containing the GNAT library. The location of this
! directory depends on the way the GNAT environment has been installed and can
! be determined by means of the command:
  
  @example
  $ gnatls -v
  @end example
  
  The last entry in the source search path usually contains the
! gnat library (the @code{adainclude} directory). This project file contains its
! own documentation and in particular the set of instructions needed to rebuild a
! new library and to use it.
  
  Note that rebuilding the GNAT Run-Time is only recommended for temporary
! experiments or debugging, and is not supported.
  
  @geindex Conditional compilation
  
  @node Conditional Compilation,Mixed Language Programming,GNAT and Libraries,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model conditional-compilation}@anchor{2b}@anchor{gnat_ugn/the_gnat_compilation_model id47}@anchor{83}
  @section Conditional Compilation
  
  
--- 3955,3984 ----
  @geindex Run-Time Library
  @geindex rebuilding
  
! You may need to recompile the GNAT library in various debugging or
! experimentation contexts. The GNAT distribution provides a project
! file called @code{libada.gpr} to do that; it can be found in the
! directory containing the GNAT library. The location of this directory
! depends on the way the GNAT environment has been installed and can be
! determined by means of the command:
  
  @example
  $ gnatls -v
  @end example
  
  The last entry in the source search path usually contains the
! GNAT library (the @code{adainclude} directory).
! 
! This project file contains its own documentation and, in particular, the
! set of instructions needed to rebuild a new library and to use it.
  
  Note that rebuilding the GNAT Run-Time is only recommended for temporary
! experiments or debugging and is not supported for other purposes.
  
  @geindex Conditional compilation
  
  @node Conditional Compilation,Mixed Language Programming,GNAT and Libraries,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model conditional-compilation}@anchor{2c}@anchor{gnat_ugn/the_gnat_compilation_model id47}@anchor{84}
  @section Conditional Compilation
  
  
*************** gnatprep preprocessor utility.
*** 3979,3989 ****
  @end menu
  
  @node Modeling Conditional Compilation in Ada,Preprocessing with gnatprep,,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id48}@anchor{84}@anchor{gnat_ugn/the_gnat_compilation_model modeling-conditional-compilation-in-ada}@anchor{85}
  @subsection Modeling Conditional Compilation in Ada
  
  
! It is often necessary to arrange for a single source program
  to serve multiple purposes, where it is compiled in different
  ways to achieve these different goals. Some examples of the
  need for this feature are
--- 3995,4005 ----
  @end menu
  
  @node Modeling Conditional Compilation in Ada,Preprocessing with gnatprep,,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id48}@anchor{85}@anchor{gnat_ugn/the_gnat_compilation_model modeling-conditional-compilation-in-ada}@anchor{86}
  @subsection Modeling Conditional Compilation in Ada
  
  
! You may want to arrange for a single source program
  to serve multiple purposes, where it is compiled in different
  ways to achieve these different goals. Some examples of the
  need for this feature are
*************** Turning debugging features on and off
*** 4004,4024 ****
  Arranging for a program to compile with different compilers
  @end itemize
  
! In C, or C++, the typical approach would be to use the preprocessor
! that is defined as part of the language. The Ada language does not
  contain such a feature. This is not an oversight, but rather a very
  deliberate design decision, based on the experience that overuse of
  the preprocessing features in C and C++ can result in programs that
  are extremely difficult to maintain. For example, if we have ten
  switches that can be on or off, this means that there are a thousand
  separate programs, any one of which might not even be syntactically
! correct, and even if syntactically correct, the resulting program
  might not work correctly. Testing all combinations can quickly become
  impossible.
  
! Nevertheless, the need to tailor programs certainly exists, and in
  this section we will discuss how this can
! be achieved using Ada in general, and GNAT in particular.
  
  @menu
  * Use of Boolean Constants:: 
--- 4020,4040 ----
  Arranging for a program to compile with different compilers
  @end itemize
  
! In C, or C++, the typical approach is to use the preprocessor
! defined as part of the language. The Ada language does not
  contain such a feature. This is not an oversight, but rather a very
  deliberate design decision, based on the experience that overuse of
  the preprocessing features in C and C++ can result in programs that
  are extremely difficult to maintain. For example, if we have ten
  switches that can be on or off, this means that there are a thousand
  separate programs, any one of which might not even be syntactically
! correct, and, even if syntactically correct,
  might not work correctly. Testing all combinations can quickly become
  impossible.
  
! Nevertheless, the need to tailor programs certainly exists and in
  this section we will discuss how this can
! be achieved using Ada in general and GNAT in particular.
  
  @menu
  * Use of Boolean Constants:: 
*************** be achieved using Ada in general, and GN
*** 4030,4036 ****
  @end menu
  
  @node Use of Boolean Constants,Debugging - A Special Case,,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id49}@anchor{86}@anchor{gnat_ugn/the_gnat_compilation_model use-of-boolean-constants}@anchor{87}
  @subsubsection Use of Boolean Constants
  
  
--- 4046,4052 ----
  @end menu
  
  @node Use of Boolean Constants,Debugging - A Special Case,,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id49}@anchor{87}@anchor{gnat_ugn/the_gnat_compilation_model use-of-boolean-constants}@anchor{88}
  @subsubsection Use of Boolean Constants
  
  
*************** end if;
*** 4049,4055 ****
  Not only will the code inside the @code{if} statement not be executed if
  the constant Boolean is @code{False}, but it will also be completely
  deleted from the program.
! However, the code is only deleted after the @code{if} statement
  has been checked for syntactic and semantic correctness.
  (In contrast, with preprocessors the code is deleted before the
  compiler ever gets to see it, so it is not checked until the switch
--- 4065,4071 ----
  Not only will the code inside the @code{if} statement not be executed if
  the constant Boolean is @code{False}, but it will also be completely
  deleted from the program.
! However, the code is only deleted after the @code{if} statement block
  has been checked for syntactic and semantic correctness.
  (In contrast, with preprocessors the code is deleted before the
  compiler ever gets to see it, so it is not checked until the switch
*************** package Config is
*** 4068,4087 ****
  end Config;
  @end example
  
! The @code{Config} package exists in multiple forms for the various targets,
  with an appropriate script selecting the version of @code{Config} needed.
! Then any other unit requiring conditional compilation can do a `with'
  of @code{Config} to make the constants visible.
  
  @node Debugging - A Special Case,Conditionalizing Declarations,Use of Boolean Constants,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model debugging-a-special-case}@anchor{88}@anchor{gnat_ugn/the_gnat_compilation_model id50}@anchor{89}
  @subsubsection Debugging - A Special Case
  
  
  A common use of conditional code is to execute statements (for example
  dynamic checks, or output of intermediate results) under control of a
  debug switch, so that the debugging behavior can be turned on and off.
! This can be done using a Boolean constant to control whether the code
  is active:
  
  @example
--- 4084,4103 ----
  end Config;
  @end example
  
! You would write the @code{Config} package multiple forms for various targets,
  with an appropriate script selecting the version of @code{Config} needed.
! Then, any other unit requiring conditional compilation can do a `with'
  of @code{Config} to make the constants visible.
  
  @node Debugging - A Special Case,Conditionalizing Declarations,Use of Boolean Constants,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model debugging-a-special-case}@anchor{89}@anchor{gnat_ugn/the_gnat_compilation_model id50}@anchor{8a}
  @subsubsection Debugging - A Special Case
  
  
  A common use of conditional code is to execute statements (for example
  dynamic checks, or output of intermediate results) under control of a
  debug switch, so that the debugging behavior can be turned on and off.
! You can do this by using a Boolean constant to control whether the debug code
  is active:
  
  @example
*************** end if;
*** 4100,4113 ****
  
  @geindex pragma Assert
  
! Since this is a common case, there are special features to deal with
! this in a convenient manner. For the case of tests, Ada 2005 has added
! a pragma @code{Assert} that can be used for such tests. This pragma is modeled
! on the @code{Assert} pragma that has always been available in GNAT, so this
! feature may be used with GNAT even if you are not using Ada 2005 features.
! The use of pragma @code{Assert} is described in the
! @cite{GNAT_Reference_Manual}, but as an
! example, the last test could be written:
  
  @example
  pragma Assert (Temperature <= 999.0, "Temperature Crazy");
--- 4116,4129 ----
  
  @geindex pragma Assert
  
! Since this is a common case, GNAT provides special features to deal
! with this in a convenient manner. For the case of tests, Ada 2005 has
! added a pragma @code{Assert} that you can use for such tests. This pragma
! is modeled on the @code{Assert} pragma that has always been available in
! GNAT, so you can use this feature with GNAT even if you are not using
! Ada 2005 features.  The use of pragma @code{Assert} is described in the
! @cite{GNAT_Reference_Manual}, but as an example, the last test could
! be written:
  
  @example
  pragma Assert (Temperature <= 999.0, "Temperature Crazy");
*************** or simply
*** 4119,4128 ****
  pragma Assert (Temperature <= 999.0);
  @end example
  
! In both cases, if assertions are active and the temperature is excessive,
! the exception @code{Assert_Failure} will be raised, with the given string in
! the first case or a string indicating the location of the pragma in the second
! case used as the exception message.
  
  @geindex pragma Assertion_Policy
  
--- 4135,4144 ----
  pragma Assert (Temperature <= 999.0);
  @end example
  
! In both cases, if assertions are active and the temperature is
! excessive, the exception @code{Assert_Failure} is raised with the
! exception message using the specified string in the first case or a
! string indicating the location of the pragma in the second case.
  
  @geindex pragma Assertion_Policy
  
*************** pragma.
*** 4131,4139 ****
  
  @geindex -gnata switch
  
! This is an Ada 2005 pragma which is implemented in all modes by
  GNAT. Alternatively, you can use the @code{-gnata} switch
! to enable assertions from the command line, which applies to
  all versions of Ada.
  
  @geindex pragma Debug
--- 4147,4155 ----
  
  @geindex -gnata switch
  
! This is an Ada 2005 pragma that is implemented in all modes by
  GNAT. Alternatively, you can use the @code{-gnata} switch
! to enable assertions from the command line, which also applies to
  all versions of Ada.
  
  @geindex pragma Debug
*************** For the example above with the @code{Put
*** 4145,4155 ****
  pragma Debug (Put_Line ("got to the first stage!"));
  @end example
  
! If debug pragmas are enabled, the argument, which must be of the form of
! a procedure call, is executed (in this case, @code{Put_Line} will be called).
! Only one call can be present, but of course a special debugging procedure
! containing any code you like can be included in the program and then
! called in a pragma @code{Debug} argument as needed.
  
  One advantage of pragma @code{Debug} over the @code{if Debugging then}
  construct is that pragma @code{Debug} can appear in declarative contexts,
--- 4161,4171 ----
  pragma Debug (Put_Line ("got to the first stage!"));
  @end example
  
! If debug pragmas are enabled, the argument, which must be of the form
! of a procedure call, is executed (in this case, @code{Put_Line} is
! called).  You can specify only one call, but you can of course include
! a special debugging procedure containing any code you like in the
! program and call it in a pragma @code{Debug} argument as needed.
  
  One advantage of pragma @code{Debug} over the @code{if Debugging then}
  construct is that pragma @code{Debug} can appear in declarative contexts,
*************** been elaborated.
*** 4158,4173 ****
  
  @geindex pragma Debug_Policy
  
! Debug pragmas are enabled using either the @code{-gnata} switch that also
  controls assertions, or with a separate Debug_Policy pragma.
  
  The latter pragma is new in the Ada 2005 versions of GNAT (but it can be used
! in Ada 95 and Ada 83 programs as well), and is analogous to
  pragma @code{Assertion_Policy} to control assertions.
  
  @code{Assertion_Policy} and @code{Debug_Policy} are configuration pragmas,
! and thus they can appear in @code{gnat.adc} if you are not using a
! project file, or in the file designated to contain configuration pragmas
  in a project file.
  They then apply to all subsequent compilations. In practice the use of
  the @code{-gnata} switch is often the most convenient method of controlling
--- 4174,4189 ----
  
  @geindex pragma Debug_Policy
  
! You can enable debug pragmas using either the @code{-gnata} switch that also
  controls assertions, or with a separate Debug_Policy pragma.
  
  The latter pragma is new in the Ada 2005 versions of GNAT (but it can be used
! in Ada 95 and Ada 83 programs as well) and is analogous to
  pragma @code{Assertion_Policy} to control assertions.
  
  @code{Assertion_Policy} and @code{Debug_Policy} are configuration pragmas,
! and thus can appear in @code{gnat.adc} if you are not using a
! project file or in the file designated to contain configuration pragmas
  in a project file.
  They then apply to all subsequent compilations. In practice the use of
  the @code{-gnata} switch is often the most convenient method of controlling
*************** end if;
*** 4187,4193 ****
  @end example
  
  @node Conditionalizing Declarations,Use of Alternative Implementations,Debugging - A Special Case,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model conditionalizing-declarations}@anchor{8a}@anchor{gnat_ugn/the_gnat_compilation_model id51}@anchor{8b}
  @subsubsection Conditionalizing Declarations
  
  
--- 4203,4209 ----
  @end example
  
  @node Conditionalizing Declarations,Use of Alternative Implementations,Debugging - A Special Case,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model conditionalizing-declarations}@anchor{8b}@anchor{gnat_ugn/the_gnat_compilation_model id51}@anchor{8c}
  @subsubsection Conditionalizing Declarations
  
  
*************** for the little endian case. Since a powe
*** 4248,4272 ****
  notation is usable for creating static constants, clever use of this
  feature can often solve quite difficult problems in conditionalizing
  compilation (note incidentally that in Ada 95, the little endian
! constant was introduced as @code{System.Default_Bit_Order}, so you do not
  need to define this one yourself).
  
  @node Use of Alternative Implementations,Preprocessing,Conditionalizing Declarations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id52}@anchor{8c}@anchor{gnat_ugn/the_gnat_compilation_model use-of-alternative-implementations}@anchor{8d}
  @subsubsection Use of Alternative Implementations
  
  
  In some cases, none of the approaches described above are adequate. This
! can occur for example if the set of declarations required is radically
  different for two different configurations.
  
  In this situation, the official Ada way of dealing with conditionalizing
  such code is to write separate units for the different cases. As long as
! this does not result in excessive duplication of code, this can be done
  without creating maintenance problems. The approach is to share common
! code as far as possible, and then isolate the code and declarations
  that are different. Subunits are often a convenient method for breaking
! out a piece of a unit that is to be conditionalized, with separate files
  for different versions of the subunit for different targets, where the
  build script selects the right one to give to the compiler.
  
--- 4264,4288 ----
  notation is usable for creating static constants, clever use of this
  feature can often solve quite difficult problems in conditionalizing
  compilation (note incidentally that in Ada 95, the little endian
! constant was introduced as @code{System.Default_Bit_Order}, so you don’t
  need to define this one yourself).
  
  @node Use of Alternative Implementations,Preprocessing,Conditionalizing Declarations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id52}@anchor{8d}@anchor{gnat_ugn/the_gnat_compilation_model use-of-alternative-implementations}@anchor{8e}
  @subsubsection Use of Alternative Implementations
  
  
  In some cases, none of the approaches described above are adequate. This
! can occur, for example, if the set of declarations required is radically
  different for two different configurations.
  
  In this situation, the official Ada way of dealing with conditionalizing
  such code is to write separate units for the different cases. As long as
! this doesn’t result in excessive duplication of code, you can do this
  without creating maintenance problems. The approach is to share common
! code as far as possible and then isolate the code and declarations
  that are different. Subunits are often a convenient method for breaking
! out a piece of a unit that you need to be conditionalized, with separate files
  for different versions of the subunit for different targets, where the
  build script selects the right one to give to the compiler.
  
*************** But this won’t work when @code{Ada_200
*** 4290,4298 ****
  since the @code{then} clause will be illegal for an Ada 95 compiler.
  (Recall that although such unreachable code would eventually be deleted
  by the compiler, it still needs to be legal.  If it uses features
! introduced in Ada 2005, it will be illegal in Ada 95.)
  
! So instead we write
  
  @example
  procedure Insert is separate;
--- 4306,4314 ----
  since the @code{then} clause will be illegal for an Ada 95 compiler.
  (Recall that although such unreachable code would eventually be deleted
  by the compiler, it still needs to be legal.  If it uses features
! introduced in Ada 2005, it’s still illegal in Ada 95.)
  
! So instead, we write
  
  @example
  procedure Insert is separate;
*************** This can also be done with project files
*** 4321,4329 ****
  for body ("File_Queries.Insert") use "file_queries-insert-2005.ada";
  @end example
  
! Note also that with project files it is desirable to use a different extension
! than @code{ads} / @code{adb} for alternative versions. Otherwise a naming
! conflict may arise through another commonly used feature: to declare as part
  of the project a set of directories containing all the sources obeying the
  default naming scheme.
  
--- 4337,4345 ----
  for body ("File_Queries.Insert") use "file_queries-insert-2005.ada";
  @end example
  
! Note also that with project files, you should use a different extension
! than @code{ads} / @code{adb} for alternative versions. Otherwise, a naming
! conflict may arise through another commonly used feature: declaring as part
  of the project a set of directories containing all the sources obeying the
  default naming scheme.
  
*************** used for VMS on the ia64
*** 4366,4399 ****
  @end itemize
  
  The dummy version @code{s-asthan.adb} simply raises exceptions noting that
! this operating system feature is not available, and the two remaining
  versions interface with the corresponding versions of VMS to provide
  VMS-compatible AST handling. The GNAT build script knows the architecture
  and operating system, and automatically selects the right version,
  renaming it if necessary to @code{s-asthan.adb} before the run-time build.
  
! Another style for arranging alternative implementations is through Ada’s
! access-to-subprogram facility.
! In case some functionality is to be conditionally included,
! you can declare an access-to-procedure variable @code{Ref} that is initialized
! to designate a ‘do nothing’ procedure, and then invoke @code{Ref.all}
! when appropriate.
! In some library package, set @code{Ref} to @code{Proc'Access} for some
! procedure @code{Proc} that performs the relevant processing.
! The initialization only occurs if the library package is included in the
! program.
! The same idea can also be implemented using tagged types and dispatching
! calls.
  
  @node Preprocessing,,Use of Alternative Implementations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id53}@anchor{8e}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing}@anchor{8f}
  @subsubsection Preprocessing
  
  
  @geindex Preprocessing
  
  Although it is quite possible to conditionalize code without the use of
! C-style preprocessing, as described earlier in this section, it is
  nevertheless convenient in some cases to use the C approach. Moreover,
  older Ada compilers have often provided some preprocessing capability,
  so legacy code may depend on this approach, even though it is not
--- 4382,4413 ----
  @end itemize
  
  The dummy version @code{s-asthan.adb} simply raises exceptions noting that
! this operating system feature is not available and the two remaining
  versions interface with the corresponding versions of VMS to provide
  VMS-compatible AST handling. The GNAT build script knows the architecture
  and operating system, and automatically selects the right version,
  renaming it if necessary to @code{s-asthan.adb} before the run-time build.
  
! Another style for arranging alternative implementations is through
! Ada’s access-to-subprogram facility.  In case some functionality is to
! be conditionally included, you can declare an access-to-procedure
! variable @code{Ref} that is initialized to designate a ‘do nothing’
! procedure, and then invoke @code{Ref.all} when appropriate.  Then, in,
! some library package, set @code{Ref} to @code{Proc'Access} for some
! procedure @code{Proc} that performs the relevant processing.  The
! initialization only occurs if the library package is included in the
! program.  The same idea can also be implemented using tagged types and
! dispatching calls.
  
  @node Preprocessing,,Use of Alternative Implementations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id53}@anchor{8f}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing}@anchor{90}
  @subsubsection Preprocessing
  
  
  @geindex Preprocessing
  
  Although it is quite possible to conditionalize code without the use of
! C-style preprocessing, as described in the cases above, it is
  nevertheless convenient in some cases to use the C approach. Moreover,
  older Ada compilers have often provided some preprocessing capability,
  so legacy code may depend on this approach, even though it is not
*************** with legacy code on other compilers, to
*** 4405,4415 ****
  
  @geindex gnatprep
  
! The preprocessor may be used in two separate modes. It can be used quite
! separately from the compiler, to generate a separate output source file
! that is then fed to the compiler as a separate step. This is the
  @code{gnatprep} utility, whose use is fully described in
! @ref{90,,Preprocessing with gnatprep}.
  
  The preprocessing language allows such constructs as
  
--- 4419,4429 ----
  
  @geindex gnatprep
  
! You can use the preprocessor used in two different modes. You can use it
! separately from the compiler to generate a separate output source file,
! which you then feed to the compiler as a separate step. This is the
  @code{gnatprep} utility, whose use is fully described in
! @ref{91,,Preprocessing with gnatprep}.
  
  The preprocessing language allows such constructs as
  
*************** The values of the symbols @code{DEBUG} a
*** 4425,4438 ****
  defined either on the command line or in a separate file.
  
  The other way of running the preprocessor is even closer to the C style and
! often more convenient. In this approach the preprocessing is integrated into
! the compilation process. The compiler is given the preprocessor input which
! includes @code{#if} lines etc, and then the compiler carries out the
! preprocessing internally and processes the resulting output.
! For more details on this approach, see @ref{91,,Integrated Preprocessing}.
  
  @node Preprocessing with gnatprep,Integrated Preprocessing,Modeling Conditional Compilation in Ada,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id54}@anchor{92}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-with-gnatprep}@anchor{90}
  @subsection Preprocessing with @code{gnatprep}
  
  
--- 4439,4452 ----
  defined either on the command line or in a separate file.
  
  The other way of running the preprocessor is even closer to the C style and
! often more convenient. In this approach, the preprocessing is integrated into
! the compilation process. You pass the compiler the preprocessor input, which
! includes @code{#if} lines etc, and the compiler carries out the
! preprocessing internally and compiles the resulting output.
! For more details on this approach, see @ref{92,,Integrated Preprocessing}.
  
  @node Preprocessing with gnatprep,Integrated Preprocessing,Modeling Conditional Compilation in Ada,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id54}@anchor{93}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-with-gnatprep}@anchor{91}
  @subsection Preprocessing with @code{gnatprep}
  
  
*************** For more details on this approach, see @
*** 4440,4451 ****
  
  @geindex Preprocessing (gnatprep)
  
! This section discusses how to use GNAT’s @code{gnatprep} utility for simple
! preprocessing.
! Although designed for use with GNAT, @code{gnatprep} does not depend on any
! special GNAT features.
! For further discussion of conditional compilation in general, see
! @ref{2b,,Conditional Compilation}.
  
  @menu
  * Preprocessing Symbols:: 
--- 4454,4464 ----
  
  @geindex Preprocessing (gnatprep)
  
! This section discusses how to you can use GNAT’s @code{gnatprep} utility
! for simple preprocessing.  Although designed for use with GNAT,
! @code{gnatprep} does not depend on any special GNAT features.  For
! further discussion of conditional compilation in general, see
! @ref{2c,,Conditional Compilation}.
  
  @menu
  * Preprocessing Symbols:: 
*************** For further discussion of conditional co
*** 4457,4463 ****
  @end menu
  
  @node Preprocessing Symbols,Using gnatprep,,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id55}@anchor{93}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-symbols}@anchor{94}
  @subsubsection Preprocessing Symbols
  
  
--- 4470,4476 ----
  @end menu
  
  @node Preprocessing Symbols,Using gnatprep,,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id55}@anchor{94}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-symbols}@anchor{95}
  @subsubsection Preprocessing Symbols
  
  
*************** normal Ada (case-insensitive) rules for
*** 4467,4473 ****
  all characters need to be in the ASCII set (no accented letters).
  
  @node Using gnatprep,Switches for gnatprep,Preprocessing Symbols,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id56}@anchor{95}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatprep}@anchor{96}
  @subsubsection Using @code{gnatprep}
  
  
--- 4480,4486 ----
  all characters need to be in the ASCII set (no accented letters).
  
  @node Using gnatprep,Switches for gnatprep,Preprocessing Symbols,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id56}@anchor{96}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatprep}@anchor{97}
  @subsubsection Using @code{gnatprep}
  
  
*************** normally have an @code{ads} or @code{adb
*** 4519,4531 ****
  @item @code{deffile}
  
  is the full name of a text file containing definitions of
! preprocessing symbols to be referenced by the preprocessor. This argument is
! optional, and can be replaced by the use of the @code{-D} switch.
  @end table
  @end itemize
  
  @node Switches for gnatprep,Form of Definitions File,Using gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id57}@anchor{97}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatprep}@anchor{98}
  @subsubsection Switches for @code{gnatprep}
  
  
--- 4532,4544 ----
  @item @code{deffile}
  
  is the full name of a text file containing definitions of
! preprocessing symbols to be referenced by the preprocessor. You
! can omit this argument and instead use the @code{-D} switch.
  @end table
  @end itemize
  
  @node Switches for gnatprep,Form of Definitions File,Using gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id57}@anchor{98}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatprep}@anchor{99}
  @subsubsection Switches for @code{gnatprep}
  
  
*************** optional, and can be replaced by the use
*** 4536,4542 ****
  
  @item @code{--version}
  
! Display Copyright and version, then exit disregarding all other options.
  @end table
  
  @geindex --help (gnatprep)
--- 4549,4555 ----
  
  @item @code{--version}
  
! Display copyright and version, then exit, disregarding all other options.
  @end table
  
  @geindex --help (gnatprep)
*************** Display Copyright and version, then exit
*** 4546,4552 ****
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage and then exit disregarding
  all other options.
  @end table
  
--- 4559,4565 ----
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage and then exit, disregarding
  all other options.
  @end table
  
*************** preserving line numbers in the output fi
*** 4571,4577 ****
  
  Causes both preprocessor lines and the lines deleted
  by preprocessing to be retained in the output source as comments marked
! with the special string @code{"--! "}. This option will result in line numbers
  being preserved in the output file.
  @end table
  
--- 4584,4590 ----
  
  Causes both preprocessor lines and the lines deleted
  by preprocessing to be retained in the output source as comments marked
! with the special string @code{"--! "}. This option also results in line numbers
  being preserved in the output file.
  @end table
  
*************** being preserved in the output file.
*** 4582,4594 ****
  
  @item @code{-C}
  
! Causes comments to be scanned. Normally comments are ignored by gnatprep.
! If this option is specified, then comments are scanned and any $symbol
! substitutions performed as in program text. This is particularly useful
! when structured comments are used (e.g., for programs written in a
! pre-2014 version of the SPARK Ada subset). Note that this switch is not
! available when  doing integrated preprocessing (it would be useless in
! this context since comments are ignored by the compiler in any case).
  @end table
  
  @geindex -D (gnatprep)
--- 4595,4608 ----
  
  @item @code{-C}
  
! Causes comments to be scanned. Normally comments are ignored by
! @code{gnatprep}.  If you specify this option, @code{gnatprep} scans
! comments and any $symbol substitutions performed as in program
! text. You will find this particularly useful when structured
! comments are used (e.g., for programs written in a pre-2014 version
! of the SPARK Ada subset). This switch is not available
! when doing integrated preprocessing (it would be useless in this
! context since comments are always ignored by the compiler).
  @end table
  
  @geindex -D (gnatprep)
*************** this context since comments are ignored
*** 4598,4606 ****
  
  @item @code{-D`symbol'[=`value']}
  
! Defines a new preprocessing symbol with the specified value. If no value is given
! on the command line, then symbol is considered to be @code{True}. This switch
! can be used in place of a definition file.
  @end table
  
  @geindex -r (gnatprep)
--- 4612,4620 ----
  
  @item @code{-D`symbol'[=`value']}
  
! Defines a new preprocessing symbol with the specified value. If you
! don’t specify a value, the symbol is defined to be @code{True}. You can
! use this switch instead of providing a definition file.
  @end table
  
  @geindex -r (gnatprep)
*************** can be used in place of a definition fil
*** 4610,4629 ****
  
  @item @code{-r}
  
! Causes a @code{Source_Reference} pragma to be generated that
  references the original input file, so that error messages will use
  the file name of this original file. The use of this switch implies
! that preprocessor lines are not to be removed from the file, so its
! use will force @code{-b} mode if @code{-c}
! has not been specified explicitly.
  
! Note that if the file to be preprocessed contains multiple units, then
! it will be necessary to @code{gnatchop} the output file from
  @code{gnatprep}. If a @code{Source_Reference} pragma is present
  in the preprocessed file, it will be respected by
  @code{gnatchop -r}
  so that the final chopped files will correctly refer to the original
! input source file for @code{gnatprep}.
  @end table
  
  @geindex -s (gnatprep)
--- 4624,4642 ----
  
  @item @code{-r}
  
! Causes @code{gnatprep} to generate a @code{Source_Reference} pragma that
  references the original input file, so that error messages will use
  the file name of this original file. The use of this switch implies
! that preprocessor lines are not to be removed from the file, so
! the @code{-b} and @code{-c} are always enabled.
  
! If the file to be preprocessed contains multiple units, you
! must call @code{gnatchop} on the the output file from
  @code{gnatprep}. If a @code{Source_Reference} pragma is present
  in the preprocessed file, it will be respected by
  @code{gnatchop -r}
  so that the final chopped files will correctly refer to the original
! input source file passed to @code{gnatprep}.
  @end table
  
  @geindex -s (gnatprep)
*************** of the host (LF under unix, CR/LF under
*** 4655,4663 ****
  
  @item @code{-u}
  
! Causes undefined symbols to be treated as having the value FALSE in the context
! of a preprocessor test. In the absence of this option, an undefined symbol in
! a @code{#if} or @code{#elsif} test will be treated as an error.
  @end table
  
  @geindex -v (gnatprep)
--- 4668,4677 ----
  
  @item @code{-u}
  
! Causes undefined symbols to be treated as having the value @code{False}
! in the context of a preprocessor test. If you don’t specify this
! switch, @code{gnatprep} will treat an undefined symbol in a @code{#if} or
! @code{#elsif} test as an error.
  @end table
  
  @geindex -v (gnatprep)
*************** a @code{#if} or @code{#elsif} test will
*** 4667,4682 ****
  
  @item @code{-v}
  
! Verbose mode: generates more output about work done.
  @end table
  
! Note: if neither @code{-b} nor @code{-c} is present,
  then preprocessor lines and
! deleted lines are completely removed from the output, unless -r is
! specified, in which case -b is assumed.
  
  @node Form of Definitions File,Form of Input Text for gnatprep,Switches for gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-definitions-file}@anchor{99}@anchor{gnat_ugn/the_gnat_compilation_model id58}@anchor{9a}
  @subsubsection Form of Definitions File
  
  
--- 4681,4696 ----
  
  @item @code{-v}
  
! Verbose mode: generates more output about what is done.
  @end table
  
! Note: if you don’t specify either @code{-b} or @code{-c},
  then preprocessor lines and
! deleted lines are completely removed from the output, unless you specify
! @code{-r}, in which case @code{gnatprep} enables the @code{-b} switch.
  
  @node Form of Definitions File,Form of Input Text for gnatprep,Switches for gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-definitions-file}@anchor{9a}@anchor{gnat_ugn/the_gnat_compilation_model id58}@anchor{9b}
  @subsubsection Form of Definitions File
  
  
*************** A string literal using normal Ada syntax
*** 4701,4719 ****
  Any sequence of characters from the set @{letters, digits, period, underline@}.
  @end itemize
  
! Comment lines may also appear in the definitions file, starting with
! the usual @code{--},
! and comments may be added to the definitions lines.
  
  @node Form of Input Text for gnatprep,,Form of Definitions File,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-input-text-for-gnatprep}@anchor{9b}@anchor{gnat_ugn/the_gnat_compilation_model id59}@anchor{9c}
  @subsubsection Form of Input Text for @code{gnatprep}
  
  
! The input text may contain preprocessor conditional inclusion lines,
  as well as general symbol substitution sequences.
  
! The preprocessor conditional inclusion commands have the form:
  
  @example
  #if <expression> [then]
--- 4715,4733 ----
  Any sequence of characters from the set @{letters, digits, period, underline@}.
  @end itemize
  
! You may also place comment lines in the definitions file, starting with
! the usual @code{--}
! and comments may be added to the end of each definition line.
  
  @node Form of Input Text for gnatprep,,Form of Definitions File,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-input-text-for-gnatprep}@anchor{9c}@anchor{gnat_ugn/the_gnat_compilation_model id59}@anchor{9d}
  @subsubsection Form of Input Text for @code{gnatprep}
  
  
! The input text contains preprocessor conditional inclusion lines
  as well as general symbol substitution sequences.
  
! Preprocessor conditional inclusion commands have the form:
  
  @example
  #if <expression> [then]
*************** In this example, <expression> is defined
*** 4748,4773 ****
  <expression> ::=  ( <expression> )
  @end example
  
! Note the following restriction: it is not allowed to have “and” or “or”
! following “not” in the same expression without parentheses. For example, this
! is not allowed:
! 
! @example
! not X or Y
! @end example
! 
! This can be expressed instead as one of the following forms:
! 
! @example
! (not X) or Y
! not (X or Y)
! @end example
! 
! For the first test (<expression> ::= <symbol>) the symbol must have
! either the value true or false, that is to say the right-hand of the
  symbol definition must be one of the (case-insensitive) literals
! @code{True} or @code{False}. If the value is true, then the
! corresponding lines are included, and if the value is false, they are
  excluded.
  
  When comparing a symbol to an integer, the integer is any non negative
--- 4762,4772 ----
  <expression> ::=  ( <expression> )
  @end example
  
! For the first test, (<expression> ::= <symbol>), the symbol must have
! either the value true or false. The right-hand of the
  symbol definition must be one of the (case-insensitive) literals
! @code{True} or @code{False}. If the value is true, the
! corresponding lines are included and if the value is false, they are
  excluded.
  
  When comparing a symbol to an integer, the integer is any non negative
*************** switch on the command line. Otherwise, t
*** 4781,4814 ****
  
  The equality tests are case insensitive, as are all the preprocessor lines.
  
! If the symbol referenced is not defined in the symbol definitions file,
! then the effect depends on whether or not switch @code{-u}
! is specified. If so, then the symbol is treated as if it had the value
! false and the test fails. If this switch is not specified, then
! it is an error to reference an undefined symbol. It is also an error to
! reference a symbol that is defined with a value other than @code{True}
! or @code{False}.
! 
! The use of the @code{not} operator inverts the sense of this logical test.
! The @code{not} operator cannot be combined with the @code{or} or @code{and}
! operators, without parentheses. For example, “if not X or Y then” is not
! allowed, but “if (not X) or Y then” and “if not (X or Y) then” are.
  
! The @code{then} keyword is optional as shown
  
! The @code{#} must be the first non-blank character on a line, but
! otherwise the format is free form. Spaces or tabs may appear between
! the @code{#} and the keyword. The keywords and the symbols are case
! insensitive as in normal Ada code. Comments may be used on a
! preprocessor line, but other than that, no other tokens may appear on a
! preprocessor line. Any number of @code{elsif} clauses can be present,
! including none at all. The @code{else} is optional, as in Ada.
  
! The @code{#} marking the start of a preprocessor line must be the first
! non-blank character on the line, i.e., it must be preceded only by
! spaces or horizontal tabs.
  
! Symbol substitution outside of preprocessor lines is obtained by using
  the sequence:
  
  @example
--- 4780,4811 ----
  
  The equality tests are case insensitive, as are all the preprocessor lines.
  
! If the symbol referenced is not defined in the symbol definitions
! file, the result depends on whether or not you have specified the
! @code{-u} switch. If you have, the symbol is treated as if it had
! the value false and the test fails. If not,
! it’s an error to reference an undefined symbol. It’s also an
! error to reference a symbol that you have defined with a value other than
! @code{True} or @code{False}.
  
! The use of the @code{not} operator inverts the sense of this logical
! test.  You can’t combine the @code{not} operator with the @code{or} or
! @code{and} operators without parentheses. For example, you can’t write
! “if not X or Y then” allowed, but can write either “if (not X) or Y
! then” or “if not (X or Y) then”.
  
! The @code{then} keyword is optional, as shown.
  
! You must place the @code{#} in the first non-blank character on a line,
! i.e., it must be preceded only by spaces or horizontal tabs, but
! otherwise the format is free form. You may place spaces or tabs
! between the @code{#} and the keyword. The keywords and the symbols are
! case insensitive, as in normal Ada code. You can write comments on a
! preprocessor line, but other than that, you can’t place any other
! tokens on a preprocessor line. You can have any number of @code{elsif}
! clauses, including none at all. The @code{else} is optional, as in Ada.
  
! You obtain symbol substitution outside of preprocessor lines by using
  the sequence:
  
  @example
*************** $symbol
*** 4818,4829 ****
  anywhere within a source line, except in a comment or within a
  string literal. The identifier
  following the @code{$} must match one of the symbols defined in the symbol
! definition file, and the result is to substitute the value of the
  symbol in place of @code{$symbol} in the output file.
  
! Note that although the substitution of strings within a string literal
! is not possible, it is possible to have a symbol whose defined value is
! a string literal. So instead of setting XYZ to @code{hello} and writing:
  
  @example
  Header : String := "$XYZ";
--- 4815,4826 ----
  anywhere within a source line, except in a comment or within a
  string literal. The identifier
  following the @code{$} must match one of the symbols defined in the symbol
! definition file and the resulting output substitutes the value of the
  symbol in place of @code{$symbol} in the output file.
  
! Note that although you can’t substitute strings within a string
! literal, you can have a symbol whose defined value is a string
! literal. So instead of setting XYZ to @code{hello} and writing:
  
  @example
  Header : String := "$XYZ";
*************** Header : String := $XYZ;
*** 4838,4854 ****
  and then the substitution will occur as desired.
  
  @node Integrated Preprocessing,,Preprocessing with gnatprep,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id60}@anchor{9d}@anchor{gnat_ugn/the_gnat_compilation_model integrated-preprocessing}@anchor{91}
  @subsection Integrated Preprocessing
  
  
  As noted above, a file to be preprocessed consists of Ada source code
! in which preprocessing lines have been inserted. However,
! instead of using @code{gnatprep} to explicitly preprocess a file as a separate
! step before compilation, you can carry out the preprocessing implicitly
! as part of compilation. Such `integrated preprocessing', which is the common
! style with C, is performed when either or both of the following switches
! are passed to the compiler:
  
  @quotation
  
--- 4835,4851 ----
  and then the substitution will occur as desired.
  
  @node Integrated Preprocessing,,Preprocessing with gnatprep,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id60}@anchor{9e}@anchor{gnat_ugn/the_gnat_compilation_model integrated-preprocessing}@anchor{92}
  @subsection Integrated Preprocessing
  
  
  As noted above, a file to be preprocessed consists of Ada source code
! in which preprocessing lines have been inserted. However, instead of
! using @code{gnatprep} to explicitly preprocess a file as a separate step
! before compilation, you can carry out the preprocessing implicitly as
! part of compilation. Such `integrated preprocessing', which is the
! common style with C, is performed when you pass either or both of the
! following switches to the compiler:
  
  @quotation
  
*************** symbol definition files apply to which s
*** 4865,4879 ****
  @end itemize
  @end quotation
  
! Integrated preprocessing applies only to Ada source files, it is
  not available for configuration pragma files.
  
! With integrated preprocessing, the output from the preprocessor is not,
! by default, written to any external file. Instead it is passed
! internally to the compiler. To preserve the result of
! preprocessing in a file, either run @code{gnatprep}
! in standalone mode or else supply the @code{-gnateG} switch
! (described below) to the compiler.
  
  When using project files:
  
--- 4862,4875 ----
  @end itemize
  @end quotation
  
! Integrated preprocessing applies only to Ada source files; it’s
  not available for configuration pragma files.
  
! With integrated preprocessing, GNAT doesn’t write the output from the
! preprocessor, by default, to any external file. Instead it’s passed
! internally to the compiler. To preserve the result of preprocessing in
! a file, either run @code{gnatprep} in standalone mode or supply the
! @code{-gnateG} switch to the compiler.
  
  When using project files:
  
*************** When using project files:
*** 4883,4895 ****
  @itemize *
  
  @item 
! the builder switch @code{-x} should be used if any Ada source is
! compiled with @code{gnatep=}, so that the compiler finds the
  `preprocessor data file'.
  
  @item 
! the preprocessing data file and the symbol definition files should be
! located in the source directories of the project.
  @end itemize
  @end quotation
  
--- 4879,4891 ----
  @itemize *
  
  @item 
! you should use the builder switch @code{-x}  if any Ada source is
! compiled with @code{gnatep=} so that the compiler finds the
  `preprocessor data file'.
  
  @item 
! you should place the preprocessing data file and the symbol
! definition files in the source directories of the project.
  @end itemize
  @end quotation
  
*************** because @code{gnatmake} cannot compute t
*** 4899,4905 ****
  preprocessing.
  
  The actual preprocessing function is described in detail in
! @ref{90,,Preprocessing with gnatprep}. This section explains the switches
  that relate to integrated preprocessing.
  
  @geindex -gnatep (gcc)
--- 4895,4901 ----
  preprocessing.
  
  The actual preprocessing function is described in detail in
! @ref{91,,Preprocessing with gnatprep}. This section explains the switches
  that relate to integrated preprocessing.
  
  @geindex -gnatep (gcc)
*************** A preprocessor control line
*** 4935,4941 ****
  can optionally identify a `definition file' that assigns values to
  preprocessor symbols, as well as a list of switches that relate to
  preprocessing.
! Empty lines and comments (using Ada syntax) are also permitted, with no
  semantic effect.
  
  Here’s an example of a preprocessor data file:
--- 4931,4937 ----
  can optionally identify a `definition file' that assigns values to
  preprocessor symbols, as well as a list of switches that relate to
  preprocessing.
! You can also include empty lines and comments (using Ada syntax), with no
  semantic effect.
  
  Here’s an example of a preprocessor data file:
*************** A preprocessor control line has the foll
*** 4976,4983 ****
  @end example
  @end quotation
  
! Thus  each preprocessor control line starts with either a literal string or
! the character ‘*’:
  
  
  @itemize *
--- 4972,4979 ----
  @end example
  @end quotation
  
! Thus, you start each preprocessor control line either a literal
! string or the character ‘*’:
  
  
  @itemize *
*************** that are not specified explicitly on oth
*** 4993,5009 ****
  significant).
  @end itemize
  
! It is an error to have two lines with the same file name or two
! lines starting with the character ‘*’.
  
! After the file name or ‘*’, an optional literal string specifies the name of
! the definition file to be used for preprocessing
! (@ref{99,,Form of Definitions File}). The definition files are found by the
! compiler in one of the source directories. In some cases, when compiling
! a source in a directory other than the current directory, if the definition
! file is in the current directory, it may be necessary to add the current
! directory as a source directory through the @code{-I} switch; otherwise
! the compiler would not find the definition file.
  
  Finally, switches similar to those of @code{gnatprep} may optionally appear:
  
--- 4989,5006 ----
  significant).
  @end itemize
  
! You cannot have two lines with the same file name or two
! lines starting with the ‘*’ character.
  
! After the file name or ‘*’, you can place an optional literal string
! to specify the name of the definition file to be used for
! preprocessing (@ref{9a,,Form of Definitions File}). The definition
! files are found by the compiler in one of the source directories. In
! some cases, when compiling a source in a directory other than the
! current directory, if the definition file is in the current
! directory, you may need to add the current directory as a
! source directory through the @code{-I} switch; otherwise the
! compiler would not find the definition file.
  
  Finally, switches similar to those of @code{gnatprep} may optionally appear:
  
*************** with the special string ‘@cite{–!}�
*** 5026,5037 ****
  @item @code{-D`symbol'=`new_value'}
  
  Define or redefine @code{symbol} to have @code{new_value} as its value.
! The permitted form for @code{symbol} is either an Ada identifier, or any Ada reserved word
! aside from @code{if},
! @code{else}, @code{elsif}, @code{end}, @code{and}, @code{or} and @code{then}.
! The permitted form for @code{new_value} is a literal string, an Ada identifier or any Ada reserved
! word. A symbol declared with this switch replaces a symbol with the
! same name defined in a definition file.
  
  @item @code{-s}
  
--- 5023,5034 ----
  @item @code{-D`symbol'=`new_value'}
  
  Define or redefine @code{symbol} to have @code{new_value} as its value.
! You can write @code{symbol} as either an Ada identifier or any Ada
! reserved word aside from @code{if}, @code{else}, @code{elsif}, @code{end},
! @code{and}, @code{or} and @code{then}.  You can write @code{new_value} as a
! literal string, an Ada identifier or any Ada reserved word. A
! symbol declared with this switch replaces a symbol with the same
! name defined in a definition file.
  
  @item @code{-s}
  
*************** listed on the standard output file.
*** 5040,5049 ****
  
  @item @code{-u}
  
! Causes undefined symbols to be treated as having the value @code{FALSE}
! in the context
! of a preprocessor test. In the absence of this option, an undefined symbol in
! a @code{#if} or @code{#elsif} test will be treated as an error.
  @end table
  @end table
  
--- 5037,5046 ----
  
  @item @code{-u}
  
! Causes undefined symbols to be treated as having the value
! @code{FALSE} in the context of a preprocessor test. If you don’t
! specify this switch, an undefined symbol in a @code{#if} or
! @code{#elsif} test is treated as an error.
  @end table
  @end table
  
*************** a @code{#if} or @code{#elsif} test will
*** 5054,5067 ****
  
  @item @code{-gnateD`symbol'[=`new_value']}
  
! Define or redefine @code{symbol} to have @code{new_value} as its value. If no value
! is supplied, then the value of @code{symbol} is @code{True}.
! The form of @code{symbol} is an identifier, following normal Ada (case-insensitive)
! rules for its syntax, and @code{new_value} is either an arbitrary string between double
! quotes or any sequence (including an empty sequence) of characters from the
! set (letters, digits, period, underline).
! Ada reserved words may be used as symbols, with the exceptions of @code{if},
! @code{else}, @code{elsif}, @code{end}, @code{and}, @code{or} and @code{then}.
  
  Examples:
  
--- 5051,5065 ----
  
  @item @code{-gnateD`symbol'[=`new_value']}
  
! Define or redefine @code{symbol} to have @code{new_value} as its value. If
! you don’t specify a value, the value of @code{symbol} is @code{True}.  You
! write @code{symbol} as an identifier, following normal Ada
! (case-insensitive) rules for its syntax, and @code{new_value} as either
! an arbitrary string between double quotes or any sequence (including
! an empty sequence) of characters from the set (letters, digits,
! period, underline).  Ada reserved words may be used as symbols, with
! the exceptions of @code{if}, @code{else}, @code{elsif}, @code{end}, @code{and},
! @code{or} and @code{then}.
  
  Examples:
  
*************** When integrated preprocessing is perform
*** 5086,5096 ****
  create or overwrite @code{filename.extension.prep} to contain
  the result of the preprocessing.
  For example if the source file is @code{foo.adb} then
! the output file will be @code{foo.adb.prep}.
  @end table
  
  @node Mixed Language Programming,GNAT and Other Compilation Models,Conditional Compilation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id61}@anchor{9e}@anchor{gnat_ugn/the_gnat_compilation_model mixed-language-programming}@anchor{2c}
  @section Mixed Language Programming
  
  
--- 5084,5094 ----
  create or overwrite @code{filename.extension.prep} to contain
  the result of the preprocessing.
  For example if the source file is @code{foo.adb} then
! the output file is @code{foo.adb.prep}.
  @end table
  
  @node Mixed Language Programming,GNAT and Other Compilation Models,Conditional Compilation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id61}@anchor{9f}@anchor{gnat_ugn/the_gnat_compilation_model mixed-language-programming}@anchor{2d}
  @section Mixed Language Programming
  
  
*************** with a focus on combining Ada with C or
*** 5110,5129 ****
  @end menu
  
  @node Interfacing to C,Calling Conventions,,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id62}@anchor{9f}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-to-c}@anchor{a0}
  @subsection Interfacing to C
  
  
  Interfacing Ada with a foreign language such as C involves using
  compiler directives to import and/or export entity definitions in each
! language – using @code{extern} statements in C, for instance, and the
  @code{Import}, @code{Export}, and @code{Convention} pragmas in Ada.
  A full treatment of these topics is provided in Appendix B, section 1
  of the Ada Reference Manual.
  
  There are two ways to build a program using GNAT that contains some Ada
  sources and some foreign language sources, depending on whether or not
! the main subprogram is written in Ada.  Here is a source example with
  the main subprogram in Ada:
  
  @example
--- 5108,5127 ----
  @end menu
  
  @node Interfacing to C,Calling Conventions,,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id62}@anchor{a0}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-to-c}@anchor{a1}
  @subsection Interfacing to C
  
  
  Interfacing Ada with a foreign language such as C involves using
  compiler directives to import and/or export entity definitions in each
! language – using @code{extern} statements in C, for example, and the
  @code{Import}, @code{Export}, and @code{Convention} pragmas in Ada.
  A full treatment of these topics is provided in Appendix B, section 1
  of the Ada Reference Manual.
  
  There are two ways to build a program using GNAT that contains some Ada
  sources and some foreign language sources, depending on whether or not
! the main subprogram is written in Ada.  Here’s an example with
  the main subprogram in Ada:
  
  @example
*************** $ gcc -c file2.c
*** 5187,5193 ****
  @end example
  
  @item 
! Then, compile the Ada units to produce a set of object files and ALI
  files:
  
  @example
--- 5185,5191 ----
  @end example
  
  @item 
! Then compile the Ada units to produce a set of object files and ALI
  files:
  
  @example
*************** $ gnatbind my_main.ali
*** 5202,5208 ****
  @end example
  
  @item 
! Link the Ada main program, the Ada objects and the other language
  objects:
  
  @example
--- 5200,5206 ----
  @end example
  
  @item 
! Link the Ada main program, the Ada objects, and the other language
  objects:
  
  @example
*************** $ gnatlink my_main.ali file1.o file2.o
*** 5210,5216 ****
  @end example
  @end itemize
  
! The last three steps can be grouped in a single command:
  
  @example
  $ gnatmake my_main.adb -largs file1.o file2.o
--- 5208,5214 ----
  @end example
  @end itemize
  
! You can merge the last three steps into a single command:
  
  @example
  $ gnatmake my_main.adb -largs file1.o file2.o
*************** $ gnatmake my_main.adb -largs file1.o fi
*** 5218,5235 ****
  
  @geindex Binder output file
  
! If the main program is in a language other than Ada, then you may have
! more than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
! finalize the Ada units (@ref{7e,,Binding with Non-Ada Main Programs}).
! Calls to the initialization and finalization routines must be inserted
! in the main program, or some other appropriate point in the code. The
! call to initialize the Ada units must occur before the first Ada
! subprogram is called, and the call to finalize the Ada units must occur
! after the last Ada subprogram returns. The binder will place the
! initialization and finalization subprograms into the
! @code{b~xxx.adb} file where they can be accessed by your C
! sources.  To illustrate, we have the following example:
  
  @example
  /* main.c */
--- 5216,5234 ----
  
  @geindex Binder output file
  
! If the main program is in a language other than Ada, you may have more
! than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
! finalize the Ada units (@ref{7f,,Binding with Non-Ada Main Programs}).
! You must insert calls to the initialization and finalization routines
! in the main program or some other appropriate point in the code. You
! must place the call to initialize the Ada units so that it occurs
! before the first Ada subprogram is called and must place the call to
! finalize the Ada units so it occurs after the last Ada subprogram
! returns. The binder places the initialization and finalization
! subprograms into the @code{b~xxx.adb} file, where they can be
! accessed by your C sources.  To illustrate, we have the following
! example:
  
  @example
  /* main.c */
*************** GNAT linker not to include the standard
*** 5337,5343 ****
  @code{-nostartfiles} switch to @code{gnatlink}.
  
  @node Calling Conventions,Building Mixed Ada and C++ Programs,Interfacing to C,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model calling-conventions}@anchor{a1}@anchor{gnat_ugn/the_gnat_compilation_model id63}@anchor{a2}
  @subsection Calling Conventions
  
  
--- 5336,5342 ----
  @code{-nostartfiles} switch to @code{gnatlink}.
  
  @node Calling Conventions,Building Mixed Ada and C++ Programs,Interfacing to C,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model calling-conventions}@anchor{a2}@anchor{gnat_ugn/the_gnat_compilation_model id63}@anchor{a3}
  @subsection Calling Conventions
  
  
*************** GNAT linker not to include the standard
*** 5345,5351 ****
  
  @geindex Calling Conventions
  
! GNAT follows standard calling sequence conventions and will thus interface
  to any other language that also follows these conventions. The following
  Convention identifiers are recognized by GNAT:
  
--- 5344,5350 ----
  
  @geindex Calling Conventions
  
! GNAT follows standard calling sequence conventions and will interface
  to any other language that also follows these conventions. The following
  Convention identifiers are recognized by GNAT:
  
*************** Convention identifiers are recognized by
*** 5360,5392 ****
  
  @item @code{Ada}
  
! This indicates that the standard Ada calling sequence will be
  used and all Ada data items may be passed without any limitations in the
! case where GNAT is used to generate both the caller and callee. It is also
! possible to mix GNAT generated code and code generated by another Ada
! compiler. In this case, the data types should be restricted to simple
  cases, including primitive types. Whether complex data types can be passed
! depends on the situation. Probably it is safe to pass simple arrays, such
  as arrays of integers or floats. Records may or may not work, depending
  on whether both compilers lay them out identically. Complex structures
  involving variant records, access parameters, tasks, or protected types,
  are unlikely to be able to be passed.
  
! Note that in the case of GNAT running
! on a platform that supports HP Ada 83, a higher degree of compatibility
! can be guaranteed, and in particular records are laid out in an identical
! manner in the two compilers. Note also that if output from two different
! compilers is mixed, the program is responsible for dealing with elaboration
! issues. Probably the safest approach is to write the main program in the
! version of Ada other than GNAT, so that it takes care of its own elaboration
! requirements, and then call the GNAT-generated adainit procedure to ensure
! elaboration of the GNAT components. Consult the documentation of the other
! Ada compiler for further details on elaboration.
! 
! However, it is not possible to mix the tasking run time of GNAT and
! HP Ada 83, all the tasking operations must either be entirely within
! GNAT compiled sections of the program, or entirely within HP Ada 83
! compiled sections of the program.
  @end table
  
  @geindex Interfacing to Assembly
--- 5359,5383 ----
  
  @item @code{Ada}
  
! This indicates that the standard Ada calling sequence is
  used and all Ada data items may be passed without any limitations in the
! case where GNAT is used to generate both the caller and callee. You can also
! mix GNAT generated code and code generated by another Ada
! compiler. In this case, you should restrict the data types to simple
  cases, including primitive types. Whether complex data types can be passed
! depends on the situation. It is probably safe to pass simple arrays, such
  as arrays of integers or floats. Records may or may not work, depending
  on whether both compilers lay them out identically. Complex structures
  involving variant records, access parameters, tasks, or protected types,
  are unlikely to be able to be passed.
  
! If output from two different compilers is mixed, you are responsible
! for dealing with elaboration issues. Probably the safest approach is
! to write the main program in the version of Ada other than GNAT, so
! it takes care of its own elaboration requirements, and
! call the GNAT-generated adainit procedure to ensure elaboration of
! the GNAT components. Consult the documentation of the other Ada
! compiler for further details on elaboration.
  @end table
  
  @geindex Interfacing to Assembly
*************** Equivalent to Assembler.
*** 5426,5432 ****
  
  @item @code{COBOL}
  
! Data will be passed according to the conventions described
  in section B.4 of the Ada Reference Manual.
  @end table
  
--- 5417,5423 ----
  
  @item @code{COBOL}
  
! Data is passed according to the conventions described
  in section B.4 of the Ada Reference Manual.
  @end table
  
*************** in section B.4 of the Ada Reference Manu
*** 5441,5447 ****
  
  @item @code{C}
  
! Data will be passed according to the conventions described
  in section B.3 of the Ada Reference Manual.
  
  A note on interfacing to a C ‘varargs’ function:
--- 5432,5438 ----
  
  @item @code{C}
  
! Data is passed according to the conventions described
  in section B.3 of the Ada Reference Manual.
  
  A note on interfacing to a C ‘varargs’ function:
*************** A note on interfacing to a C ‘varargs�
*** 5456,5462 ****
  
  In C, @code{varargs} allows a function to take a variable number of
  arguments. There is no direct equivalent in this to Ada. One
! approach that can be used is to create a C wrapper for each
  different profile and then interface to this C wrapper. For
  example, to print an @code{int} value using @code{printf},
  create a C function @code{printfi} that takes two arguments, a
--- 5447,5453 ----
  
  In C, @code{varargs} allows a function to take a variable number of
  arguments. There is no direct equivalent in this to Ada. One
! approach that you can use is to create a C wrapper for each
  different profile and then interface to this C wrapper. For
  example, to print an @code{int} value using @code{printf},
  create a C function @code{printfi} that takes two arguments, a
*************** interface to @code{printfi}.
*** 5467,5474 ****
  It may work on some platforms to directly interface to
  a @code{varargs} function by providing a specific Ada profile
  for a particular call. However, this does not work on
! all platforms, since there is no guarantee that the
! calling sequence for a two argument normal C function
  is the same as for calling a @code{varargs} C function with
  the same two arguments.
  @end quotation
--- 5458,5465 ----
  It may work on some platforms to directly interface to
  a @code{varargs} function by providing a specific Ada profile
  for a particular call. However, this does not work on
! all platforms since there is no guarantee that the
! calling sequence for a two-argument normal C function
  is the same as for calling a @code{varargs} C function with
  the same two arguments.
  @end quotation
*************** Equivalent to C.
*** 5509,5515 ****
  
  @item @code{C_Plus_Plus} (or @code{CPP})
  
! This stands for C++. For most purposes this is identical to C.
  See the separate description of the specialized GNAT pragmas relating to
  C++ interfacing for further details.
  @end table
--- 5500,5506 ----
  
  @item @code{C_Plus_Plus} (or @code{CPP})
  
! This stands for C++. For most purposes, this is identical to C.
  See the separate description of the specialized GNAT pragmas relating to
  C++ interfacing for further details.
  @end table
*************** C++ interfacing for further details.
*** 5525,5539 ****
  
  @item @code{Fortran}
  
! Data will be passed according to the conventions described
  in section B.5 of the Ada Reference Manual.
  
  @item @code{Intrinsic}
  
  This applies to an intrinsic operation, as defined in the Ada
  Reference Manual. If a pragma Import (Intrinsic) applies to a subprogram,
! this means that the body of the subprogram is provided by the compiler itself,
! usually by means of an efficient code sequence, and that the user does not
  supply an explicit body for it. In an application program, the pragma may
  be applied to the following sets of names:
  
--- 5516,5530 ----
  
  @item @code{Fortran}
  
! Data is passed according to the conventions described
  in section B.5 of the Ada Reference Manual.
  
  @item @code{Intrinsic}
  
  This applies to an intrinsic operation, as defined in the Ada
  Reference Manual. If a pragma Import (Intrinsic) applies to a subprogram,
! it means the body of the subprogram is provided by the compiler itself,
! usually by means of an efficient code sequence, and that you don’t
  supply an explicit body for it. In an application program, the pragma may
  be applied to the following sets of names:
  
*************** be applied to the following sets of name
*** 5541,5551 ****
  @itemize *
  
  @item 
! Rotate_Left, Rotate_Right, Shift_Left, Shift_Right, Shift_Right_Arithmetic.
  The corresponding subprogram declaration must have
  two formal parameters. The
! first one must be a signed integer type or a modular type with a binary
! modulus, and the second parameter must be of type Natural.
  The return type must be the same as the type of the first argument. The size
  of this type can only be 8, 16, 32, or 64.
  
--- 5532,5542 ----
  @itemize *
  
  @item 
! @code{Rotate_Left}, @code{Rotate_Right}, @code{Shift_Left}, @code{Shift_Right}, @code{Shift_Right_Arithmetic}.
  The corresponding subprogram declaration must have
  two formal parameters. The
! first must be a signed integer type or a modular type with a binary
! modulus and the second parameter must be of type Natural.
  The return type must be the same as the type of the first argument. The size
  of this type can only be 8, 16, 32, or 64.
  
*************** function "/" (D : Distance; T : Time)
*** 5565,5588 ****
  pragma Import (Intrinsic, "/");
  @end example
  
! This common idiom is often programmed with a generic definition and an
  explicit body. The pragma makes it simpler to introduce such declarations.
! It incurs no overhead in compilation time or code size, because it is
  implemented as a single machine instruction.
  
  @item 
  General subprogram entities. This is used  to bind an Ada subprogram
  declaration to
! a compiler builtin by name with back-ends where such interfaces are
  available. A typical example is the set of @code{__builtin} functions
! exposed by the GCC back-end, as in the following example:
  
  @example
  function builtin_sqrt (F : Float) return Float;
  pragma Import (Intrinsic, builtin_sqrt, "__builtin_sqrtf");
  @end example
  
! Most of the GCC builtins are accessible this way, and as for other
  import conventions (e.g. C), it is the user’s responsibility to ensure
  that the Ada subprogram profile matches the underlying builtin
  expectations.
--- 5556,5579 ----
  pragma Import (Intrinsic, "/");
  @end example
  
! You often program this common idiom with a generic definition and an
  explicit body. The pragma makes it simpler to introduce such declarations.
! It incurs no overhead in compilation time or code size because it is
  implemented as a single machine instruction.
  
  @item 
  General subprogram entities. This is used  to bind an Ada subprogram
  declaration to
! a compiler builtin by name with back ends where such interfaces are
  available. A typical example is the set of @code{__builtin} functions
! exposed by the @code{gcc} back end, as in the following example:
  
  @example
  function builtin_sqrt (F : Float) return Float;
  pragma Import (Intrinsic, builtin_sqrt, "__builtin_sqrtf");
  @end example
  
! Most of the @code{gcc} builtins are accessible this way, and as for other
  import conventions (e.g. C), it is the user’s responsibility to ensure
  that the Ada subprogram profile matches the underlying builtin
  expectations.
*************** expectations.
*** 5598,5607 ****
  
  @item @code{Stdcall}
  
! This is relevant only to Windows implementations of GNAT,
! and specifies that the @code{Stdcall} calling sequence will be used,
! as defined by the NT API. Nevertheless, to ease building
! cross-platform bindings this convention will be handled as a @code{C} calling
  convention on non-Windows platforms.
  @end table
  
--- 5589,5598 ----
  
  @item @code{Stdcall}
  
! This is relevant only to Windows implementations of GNAT
! and specifies that the @code{Stdcall} calling sequence is used,
! as defined by the NT API. To simplify building
! cross-platform bindings, this convention is handled as a @code{C} calling
  convention on non-Windows platforms.
  @end table
  
*************** should provide a stub body that raises @
*** 5643,5650 ****
  @end table
  
  GNAT additionally provides a useful pragma @code{Convention_Identifier}
! that can be used to parameterize conventions and allow additional synonyms
! to be specified. For example if you have legacy code in which the convention
  identifier Fortran77 was used for Fortran, you can use the configuration
  pragma:
  
--- 5634,5641 ----
  @end table
  
  GNAT additionally provides a useful pragma @code{Convention_Identifier}
! that you can use to parameterize conventions and allow additional synonyms.
! For example, if you have legacy code in which the convention
  identifier Fortran77 was used for Fortran, you can use the configuration
  pragma:
  
*************** pragma:
*** 5652,5667 ****
  pragma Convention_Identifier (Fortran77, Fortran);
  @end example
  
! And from now on the identifier Fortran77 may be used as a convention
  identifier (for example in an @code{Import} pragma) with the same
! meaning as Fortran.
  
  @node Building Mixed Ada and C++ Programs,Partition-Wide Settings,Calling Conventions,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model building-mixed-ada-and-c-programs}@anchor{a3}@anchor{gnat_ugn/the_gnat_compilation_model id64}@anchor{a4}
  @subsection Building Mixed Ada and C++ Programs
  
  
! A programmer inexperienced with mixed-language development may find that
  building an application containing both Ada and C++ code can be a
  challenge.  This section gives a few hints that should make this task easier.
  
--- 5643,5658 ----
  pragma Convention_Identifier (Fortran77, Fortran);
  @end example
  
! And from now on, you can use  the identifier @code{Fortran77} as a convention
  identifier (for example in an @code{Import} pragma) with the same
! meaning as @code{Fortran}.
  
  @node Building Mixed Ada and C++ Programs,Partition-Wide Settings,Calling Conventions,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model building-mixed-ada-and-c-programs}@anchor{a4}@anchor{gnat_ugn/the_gnat_compilation_model id64}@anchor{a5}
  @subsection Building Mixed Ada and C++ Programs
  
  
! If you are inexperienced with mixed-language development, you may find that
  building an application containing both Ada and C++ code can be a
  challenge.  This section gives a few hints that should make this task easier.
  
*************** challenge.  This section gives a few hin
*** 5675,5681 ****
  @end menu
  
  @node Interfacing to C++,Linking a Mixed C++ & Ada Program,,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id65}@anchor{a5}@anchor{gnat_ugn/the_gnat_compilation_model id66}@anchor{a6}
  @subsubsection Interfacing to C++
  
  
--- 5666,5672 ----
  @end menu
  
  @node Interfacing to C++,Linking a Mixed C++ & Ada Program,,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id65}@anchor{a6}@anchor{gnat_ugn/the_gnat_compilation_model id66}@anchor{a7}
  @subsubsection Interfacing to C++
  
  
*************** GNAT supports interfacing with the G++ c
*** 5683,5694 ****
  generating code that is compatible with the G++ Application Binary
  Interface —see @indicateurl{http://itanium-cxx-abi.github.io/cxx-abi/abi.html}).
  
! Interfacing can be done at 3 levels: simple data, subprograms, and
  classes. In the first two cases, GNAT offers a specific @code{Convention C_Plus_Plus}
  (or @code{CPP}) that behaves exactly like @code{Convention C}.
  Usually, C++ mangles the names of subprograms. To generate proper mangled
! names automatically, see @ref{a7,,Generating Ada Bindings for C and C++ headers}).
! This problem can also be addressed manually in two ways:
  
  
  @itemize *
--- 5674,5685 ----
  generating code that is compatible with the G++ Application Binary
  Interface —see @indicateurl{http://itanium-cxx-abi.github.io/cxx-abi/abi.html}).
  
! You can do interfacing at three levels: simple data, subprograms, and
  classes. In the first two cases, GNAT offers a specific @code{Convention C_Plus_Plus}
  (or @code{CPP}) that behaves exactly like @code{Convention C}.
  Usually, C++ mangles the names of subprograms. To generate proper mangled
! names automatically, see @ref{a8,,Generating Ada Bindings for C and C++ headers}).
! You can also address this problem addressed manually in two ways:
  
  
  @itemize *
*************** by modifying the C++ code in order to fo
*** 5698,5734 ****
  the @code{extern "C"} syntax.
  
  @item 
! by figuring out the mangled name (using e.g. @code{nm}) and using it as the
! Link_Name argument of the pragma import.
  @end itemize
  
! Interfacing at the class level can be achieved by using the GNAT specific
  pragmas such as @code{CPP_Constructor}.  See the @cite{GNAT_Reference_Manual} for additional information.
  
  @node Linking a Mixed C++ & Ada Program,A Simple Example,Interfacing to C++,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model linking-a-mixed-c-ada-program}@anchor{a8}@anchor{gnat_ugn/the_gnat_compilation_model linking-a-mixed-c-and-ada-program}@anchor{a9}
  @subsubsection Linking a Mixed C++ & Ada Program
  
  
! Usually the linker of the C++ development system must be used to link
! mixed applications because most C++ systems will resolve elaboration
  issues (such as calling constructors on global class instances)
  transparently during the link phase. GNAT has been adapted to ease the
! use of a foreign linker for the last phase. Three cases can be
! considered:
  
  
  @itemize *
  
  @item 
  Using GNAT and G++ (GNU C++ compiler) from the same GCC installation:
! The C++ linker can simply be called by using the C++ specific driver
  called @code{g++}.
  
! Note that if the C++ code uses inline functions, you will need to
! compile your C++ code with the @code{-fkeep-inline-functions} switch in
! order to provide an existing function implementation that the Ada code can
! link with.
  
  @example
  $ g++ -c -fkeep-inline-functions file1.C
--- 5689,5725 ----
  the @code{extern "C"} syntax.
  
  @item 
! by figuring out the mangled name (using e.g. @code{nm} or by looking at the
! assembly code generated by the C++ compiler) and using it as the
! @code{Link_Name} argument of the pragma @code{Import}.
  @end itemize
  
! You can achieve interfacing at the class level by using the GNAT specific
  pragmas such as @code{CPP_Constructor}.  See the @cite{GNAT_Reference_Manual} for additional information.
  
  @node Linking a Mixed C++ & Ada Program,A Simple Example,Interfacing to C++,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model linking-a-mixed-c-ada-program}@anchor{a9}@anchor{gnat_ugn/the_gnat_compilation_model linking-a-mixed-c-and-ada-program}@anchor{aa}
  @subsubsection Linking a Mixed C++ & Ada Program
  
  
! Usually the linker, of the C++ development system must be used to link
! mixed applications because most C++ systems resolve elaboration
  issues (such as calling constructors on global class instances)
  transparently during the link phase. GNAT has been adapted to ease the
! use of a foreign linker for the last phase. We consider three cases:
  
  
  @itemize *
  
  @item 
  Using GNAT and G++ (GNU C++ compiler) from the same GCC installation:
! You can call the C++ linker by using the C++ specific driver
  called @code{g++}.
  
! If the C++ code uses inline functions that you plan to call from
! Ada, you need to compile your C++ code with the
! @code{-fkeep-inline-functions} so @code{g++} doesn’t delete these
! functions.
  
  @example
  $ g++ -c -fkeep-inline-functions file1.C
*************** Using GNAT and G++ from two different GC
*** 5741,5748 ****
  compilers are on the 
  @geindex PATH
  @geindex environment variable; PATH
! @code{PATH}, the previous method may be used. It is
! important to note that environment variables such as
  @geindex C_INCLUDE_PATH
  @geindex environment variable; C_INCLUDE_PATH
  @code{C_INCLUDE_PATH}, 
--- 5732,5739 ----
  compilers are on the 
  @geindex PATH
  @geindex environment variable; PATH
! @code{PATH}, you may use the previous
! method.  However, environment variables such as
  @geindex C_INCLUDE_PATH
  @geindex environment variable; C_INCLUDE_PATH
  @code{C_INCLUDE_PATH}, 
*************** important to note that environment varia
*** 5751,5777 ****
  @code{GCC_EXEC_PREFIX},
  @geindex BINUTILS_ROOT
  @geindex environment variable; BINUTILS_ROOT
! @code{BINUTILS_ROOT}, and
  @geindex GCC_ROOT
  @geindex environment variable; GCC_ROOT
! @code{GCC_ROOT} will affect both compilers
! at the same time and may make one of the two compilers operate
! improperly if set during invocation of the wrong compiler.  It is also
! very important that the linker uses the proper @code{libgcc.a} GCC
! library – that is, the one from the C++ compiler installation. The
! implicit link command as suggested in the @code{gnatmake} command
! from the former example can be replaced by an explicit link command with
! the full-verbosity option in order to verify which library is used:
  
  @example
  $ gnatbind ada_unit
  $ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
  @end example
  
! If there is a problem due to interfering environment variables, it can
! be worked around by using an intermediate script. The following example
  shows the proper script to use when GNAT has not been installed at its
! default location and g++ has been installed at its default location:
  
  @example
  $ cat ./my_script
--- 5742,5769 ----
  @code{GCC_EXEC_PREFIX},
  @geindex BINUTILS_ROOT
  @geindex environment variable; BINUTILS_ROOT
! @code{BINUTILS_ROOT}, and 
  @geindex GCC_ROOT
  @geindex environment variable; GCC_ROOT
! @code{GCC_ROOT} affect both
! compilers at the same time and may make one of the two compilers
! operate improperly if set during invocation of the wrong compiler.
! It is also very important that the linker uses the proper
! @code{libgcc.a} @code{gcc} library – that is, the one from the C++
! compiler installation. You can replace the implicit link command as
! suggested in the @code{gnatmake} command from the former example with
! an explicit link command with the full-verbosity option
! in order to verify which library is used:
  
  @example
  $ gnatbind ada_unit
  $ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
  @end example
  
! If there’s a problem due to interfering environment variables, you can
! work around it by using an intermediate script. The following example
  shows the proper script to use when GNAT has not been installed at its
! default location and @code{g++} has been installed at its default location:
  
  @example
  $ cat ./my_script
*************** $ gnatlink -v -v ada_unit file1.o file2.
*** 5783,5795 ****
  @end example
  
  @item 
! Using a non-GNU C++ compiler: The commands previously described can be
  used to insure that the C++ linker is used. Nonetheless, you need to add
  a few more parameters to the link command line, depending on the exception
  mechanism used.
  
! If the @code{setjmp} / @code{longjmp} exception mechanism is used, only the paths
! to the @code{libgcc} libraries are required:
  
  @example
  $ cat ./my_script
--- 5775,5787 ----
  @end example
  
  @item 
! Using a non-GNU C++ compiler: You can use the commands previously described
  used to insure that the C++ linker is used. Nonetheless, you need to add
  a few more parameters to the link command line, depending on the exception
  mechanism used.
  
! If you are using the @code{setjmp} / @code{longjmp} exception mechanism, you need only
! inclue the paths to the @code{libgcc} libraries:
  
  @example
  $ cat ./my_script
*************** $ gnatlink ada_unit file1.o file2.o --LI
*** 5800,5808 ****
  
  where CC is the name of the non-GNU C++ compiler.
  
! If the “zero cost” exception mechanism is used, and the platform
  supports automatic registration of exception tables (e.g., Solaris),
! paths to more objects are required:
  
  @example
  $ cat ./my_script
--- 5792,5800 ----
  
  where CC is the name of the non-GNU C++ compiler.
  
! If you are using the “zero cost” exception mechanism and the platform
  supports automatic registration of exception tables (e.g., Solaris),
! you need to include paths to more objects:
  
  @example
  $ cat ./my_script
*************** gcc -print-file-name=crtend.o
*** 5813,5822 ****
  $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
  @end example
  
! If the “zero cost exception” mechanism is used, and the platform
  doesn’t support automatic registration of exception tables (e.g., HP-UX
! or AIX), the simple approach described above will not work and
! a pre-linking phase using GNAT will be necessary.
  @end itemize
  
  Another alternative is to use the @code{gprbuild} multi-language builder
--- 5805,5814 ----
  $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
  @end example
  
! If you are using the “zero cost exception” mechanism is used and the platform
  doesn’t support automatic registration of exception tables (e.g., HP-UX
! or AIX), the simple approach described above won’t work and
! a you will need to preform a pre-linking phase using GNAT.
  @end itemize
  
  Another alternative is to use the @code{gprbuild} multi-language builder
*************** which has a large knowledge base and kno
*** 5824,5841 ****
  together automatically in most cases.
  
  @node A Simple Example,Interfacing with C++ constructors,Linking a Mixed C++ & Ada Program,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model a-simple-example}@anchor{aa}@anchor{gnat_ugn/the_gnat_compilation_model id67}@anchor{ab}
  @subsubsection A Simple Example
  
  
  The following example, provided as part of the GNAT examples, shows how
  to achieve procedural interfacing between Ada and C++ in both
! directions. The C++ class A has two methods. The first method is exported
  to Ada by the means of an extern C wrapper function. The second method
  calls an Ada subprogram. On the Ada side, the C++ calls are modelled by
  a limited record with a layout comparable to the C++ class. The Ada
  subprogram, in turn, calls the C++ method. So, starting from the C++
! main program, the process passes back and forth between the two
  languages.
  
  Here are the compilation commands:
--- 5816,5833 ----
  together automatically in most cases.
  
  @node A Simple Example,Interfacing with C++ constructors,Linking a Mixed C++ & Ada Program,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model a-simple-example}@anchor{ab}@anchor{gnat_ugn/the_gnat_compilation_model id67}@anchor{ac}
  @subsubsection A Simple Example
  
  
  The following example, provided as part of the GNAT examples, shows how
  to achieve procedural interfacing between Ada and C++ in both
! directions. The C++ class @code{A} has two methods. The first method is exported
  to Ada by the means of an extern C wrapper function. The second method
  calls an Ada subprogram. On the Ada side, the C++ calls are modelled by
  a limited record with a layout comparable to the C++ class. The Ada
  subprogram, in turn, calls the C++ method. So, starting from the C++
! main program, execution passes back and forth between the two
  languages.
  
  Here are the compilation commands:
*************** end Simple_Cpp_Interface;
*** 5953,5969 ****
  @end example
  
  @node Interfacing with C++ constructors,Interfacing with C++ at the Class Level,A Simple Example,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id68}@anchor{ac}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-with-c-constructors}@anchor{ad}
  @subsubsection Interfacing with C++ constructors
  
  
! In order to interface with C++ constructors GNAT provides the
  @code{pragma CPP_Constructor} (see the @cite{GNAT_Reference_Manual}
  for additional information).
! In this section we present some common uses of C++ constructors
  in mixed-languages programs in GNAT.
  
! Let us assume that we need to interface with the following
  C++ class:
  
  @example
--- 5945,5961 ----
  @end example
  
  @node Interfacing with C++ constructors,Interfacing with C++ at the Class Level,A Simple Example,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id68}@anchor{ad}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-with-c-constructors}@anchor{ae}
  @subsubsection Interfacing with C++ constructors
  
  
! To interface with C++ constructors GNAT provides the
  @code{pragma CPP_Constructor} (see the @cite{GNAT_Reference_Manual}
  for additional information).
! In this section, we present some common uses of C++ constructors
  in mixed-languages programs in GNAT.
  
! Let us assume we need to interface with the following
  C++ class:
  
  @example
*************** public:
*** 5978,5987 ****
  @};
  @end example
  
! For this purpose we can write the following package spec (further
  information on how to build this spec is available in
! @ref{ae,,Interfacing with C++ at the Class Level} and
! @ref{a7,,Generating Ada Bindings for C and C++ headers}).
  
  @example
  with Interfaces.C; use Interfaces.C;
--- 5970,5979 ----
  @};
  @end example
  
! For this purpose, we can write the following package spec (further
  information on how to build this spec is available in
! @ref{af,,Interfacing with C++ at the Class Level} and
! @ref{a8,,Generating Ada Bindings for C and C++ headers}).
  
  @example
  with Interfaces.C; use Interfaces.C;
*************** package Pkg_Root is
*** 6006,6015 ****
  end Pkg_Root;
  @end example
  
! On the Ada side the constructor is represented by a function (whose
  name is arbitrary) that returns the classwide type corresponding to
  the imported C++ class. Although the constructor is described as a
! function, it is typically a procedure with an extra implicit argument
  (the object being initialized) at the implementation level. GNAT
  issues the appropriate call, whatever it is, to get the object
  properly initialized.
--- 5998,6007 ----
  end Pkg_Root;
  @end example
  
! On the Ada side, the constructor is represented by a function (whose
  name is arbitrary) that returns the classwide type corresponding to
  the imported C++ class. Although the constructor is described as a
! function, it’s typically a procedure with an extra implicit argument
  (the object being initialized) at the implementation level. GNAT
  issues the appropriate call, whatever it is, to get the object
  properly initialized.
*************** Constructors can only appear in the foll
*** 6020,6029 ****
  @itemize *
  
  @item 
! On the right side of an initialization of an object of type @code{T}.
  
  @item 
! On the right side of an initialization of a record component of type @code{T}.
  
  @item 
  In an Ada 2005 limited aggregate.
--- 6012,6021 ----
  @itemize *
  
  @item 
! On the right side of an initialization of an object of type.
  
  @item 
! On the right side of an initialization of a record component of type.
  
  @item 
  In an Ada 2005 limited aggregate.
*************** place by an extended return statement.
*** 6037,6044 ****
  @end itemize
  
  In a declaration of an object whose type is a class imported from C++,
! either the default C++ constructor is implicitly called by GNAT, or
! else the required C++ constructor must be explicitly called in the
  expression that initializes the object. For example:
  
  @example
--- 6029,6036 ----
  @end itemize
  
  In a declaration of an object whose type is a class imported from C++,
! either the default C++ constructor is implicitly called by GNAT or you must
! explicitly call the required C++ constructor in the
  expression that initializes the object. For example:
  
  @example
*************** Obj4 : Root := Constructor (30, 40);
*** 6050,6061 ****
  
  The first two declarations are equivalent: in both cases the default C++
  constructor is invoked (in the former case the call to the constructor is
! implicit, and in the latter case the call is explicit in the object
  declaration). @code{Obj3} is initialized by the C++ non-default constructor
! that takes an integer argument, and @code{Obj4} is initialized by the
  non-default C++ constructor that takes two integers.
  
! Let us derive the imported C++ class in the Ada side. For example:
  
  @example
  type DT is new Root with record
--- 6042,6053 ----
  
  The first two declarations are equivalent: in both cases the default C++
  constructor is invoked (in the former case the call to the constructor is
! implicit and in the latter case the call is explicit in the object
  declaration). @code{Obj3} is initialized by the C++ non-default constructor
! that takes an integer argument and @code{Obj4} is initialized by the
  non-default C++ constructor that takes two integers.
  
! Let’s derive the imported C++ class in the Ada side. For example:
  
  @example
  type DT is new Root with record
*************** type DT is new Root with record
*** 6063,6070 ****
  end record;
  @end example
  
! In this case the components DT inherited from the C++ side must be
! initialized by a C++ constructor, and the additional Ada components
  of type DT are initialized by GNAT. The initialization of such an
  object is done either by default, or by means of a function returning
  an aggregate of type DT, or by means of an extension aggregate.
--- 6055,6062 ----
  end record;
  @end example
  
! In this case, you must initialize the components @code{DT} inherited from
! the C++ side by a C++ constructor and the additional Ada components
  of type DT are initialized by GNAT. The initialization of such an
  object is done either by default, or by means of a function returning
  an aggregate of type DT, or by means of an extension aggregate.
*************** Obj7 : DT := (Constructor (30,40) with C
*** 6077,6090 ****
  
  The declaration of @code{Obj5} invokes the default constructors: the
  C++ default constructor of the parent type takes care of the initialization
! of the components inherited from Root, and GNAT takes care of the default
  initialization of the additional Ada components of type DT (that is,
  @code{C_Value} is initialized to value 2009). The order of invocation of
  the constructors is consistent with the order of elaboration required by
  Ada and C++. That is, the constructor of the parent type is always called
  before the constructor of the derived type.
  
! Let us now consider a record that has components whose type is imported
  from C++. For example:
  
  @example
--- 6069,6082 ----
  
  The declaration of @code{Obj5} invokes the default constructors: the
  C++ default constructor of the parent type takes care of the initialization
! of the components inherited from Root and GNAT takes care of the default
  initialization of the additional Ada components of type DT (that is,
  @code{C_Value} is initialized to value 2009). The order of invocation of
  the constructors is consistent with the order of elaboration required by
  Ada and C++. That is, the constructor of the parent type is always called
  before the constructor of the derived type.
  
! Let’s now consider a record that has components whose type is imported
  from C++. For example:
  
  @example
*************** type Rec2 (D : Integer := 20) is limited
*** 6099,6113 ****
  end record;
  @end example
  
! The initialization of an object of type @code{Rec2} will call the
! non-default C++ constructors specified for the imported components.
! For example:
  
  @example
  Obj8 : Rec2 (40);
  @end example
  
! Using Ada 2005 we can use limited aggregates to initialize an object
  invoking C++ constructors that differ from those specified in the type
  declarations. For example:
  
--- 6091,6104 ----
  end record;
  @end example
  
! The initialization of an object of type @code{Rec2} calls the non-default
! C++ constructors specified for the imported components.  For example:
  
  @example
  Obj8 : Rec2 (40);
  @end example
  
! Using Ada 2005, we can use limited aggregates to initialize an object
  invoking C++ constructors that differ from those specified in the type
  declarations. For example:
  
*************** Obj9 : Rec2 := (Rec => (Data1 => Constru
*** 6118,6134 ****
  @end example
  
  The above declaration uses an Ada 2005 limited aggregate to
! initialize @code{Obj9}, and the C++ constructor that has two integer
  arguments is invoked to initialize the @code{Data1} component instead
  of the constructor specified in the declaration of type @code{Rec1}. In
! Ada 2005 the box in the aggregate indicates that unspecified components
  are initialized using the expression (if any) available in the component
  declaration. That is, in this case discriminant @code{D} is initialized
  to value @code{20}, @code{Value} is initialized to value 1000, and the
  non-default C++ constructor that handles two integers takes care of
  initializing component @code{Data2} with values @code{20,30}.
  
! In Ada 2005 we can use the extended return statement to build the Ada
  equivalent to C++ non-default constructors. For example:
  
  @example
--- 6109,6125 ----
  @end example
  
  The above declaration uses an Ada 2005 limited aggregate to
! initialize @code{Obj9} and the C++ constructor that has two integer
  arguments is invoked to initialize the @code{Data1} component instead
  of the constructor specified in the declaration of type @code{Rec1}. In
! Ada 2005, the box in the aggregate indicates that unspecified components
  are initialized using the expression (if any) available in the component
  declaration. That is, in this case discriminant @code{D} is initialized
  to value @code{20}, @code{Value} is initialized to value 1000, and the
  non-default C++ constructor that handles two integers takes care of
  initializing component @code{Data2} with values @code{20,30}.
  
! In Ada 2005, we can use the extended return statement to build the Ada
  equivalent to C++ non-default constructors. For example:
  
  @example
*************** begin
*** 6144,6169 ****
  end Constructor;
  @end example
  
! In this example the extended return statement construct is used to
! build in place the returned object whose components are initialized
! by means of a limited aggregate. Any further action associated with
! the constructor can be placed inside the construct.
  
  @node Interfacing with C++ at the Class Level,,Interfacing with C++ constructors,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id69}@anchor{af}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-with-c-at-the-class-level}@anchor{ae}
  @subsubsection Interfacing with C++ at the Class Level
  
  
! In this section we demonstrate the GNAT features for interfacing with
  C++ by means of an example making use of Ada 2005 abstract interface
  types. This example consists of a classification of animals; classes
! have been used to model our main classification of animals, and
  interfaces provide support for the management of secondary
  classifications. We first demonstrate a case in which the types and
  constructors are defined on the C++ side and imported from the Ada
! side, and latter the reverse case.
  
! The root of our derivation will be the @code{Animal} class, with a
  single private attribute (the @code{Age} of the animal), a constructor,
  and two public primitives to set and get the value of this attribute.
  
--- 6135,6160 ----
  end Constructor;
  @end example
  
! In this example, we use the extended return statement construct to
! build in place the returned object whose components are initialized by
! means of a limited aggregate. We could also place any further action
! associated with the constructor inside the construct.
  
  @node Interfacing with C++ at the Class Level,,Interfacing with C++ constructors,Building Mixed Ada and C++ Programs
! @anchor{gnat_ugn/the_gnat_compilation_model id69}@anchor{b0}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-with-c-at-the-class-level}@anchor{af}
  @subsubsection Interfacing with C++ at the Class Level
  
  
! In this section, we demonstrate the GNAT features for interfacing with
  C++ by means of an example making use of Ada 2005 abstract interface
  types. This example consists of a classification of animals; classes
! have been used to model our main classification of animals and
  interfaces provide support for the management of secondary
  classifications. We first demonstrate a case in which the types and
  constructors are defined on the C++ side and imported from the Ada
! side and then the reverse case.
  
! The root of our derivation is the @code{Animal} class, with a
  single private attribute (the @code{Age} of the animal), a constructor,
  and two public primitives to set and get the value of this attribute.
  
*************** class Animal @{
*** 6179,6185 ****
  @end example
  
  Abstract interface types are defined in C++ by means of classes with pure
! virtual functions and no data members. In our example we will use two
  interfaces that provide support for the common management of @code{Carnivore}
  and @code{Domestic} animals:
  
--- 6170,6176 ----
  @end example
  
  Abstract interface types are defined in C++ by means of classes with pure
! virtual functions and no data members. In our example we use two
  interfaces that provide support for the common management of @code{Carnivore}
  and @code{Domestic} animals:
  
*************** class Dog : Animal, Carnivore, Domestic
*** 6211,6217 ****
  @};
  @end example
  
! In the following examples we will assume that the previous declarations are
  located in a file named @code{animals.h}. The following package demonstrates
  how to import these C++ declarations from the Ada side:
  
--- 6202,6208 ----
  @};
  @end example
  
! In the following examples we assume that the previous declarations are
  located in a file named @code{animals.h}. The following package demonstrates
  how to import these C++ declarations from the Ada side:
  
*************** package Animals is
*** 6262,6294 ****
  end Animals;
  @end example
  
! Thanks to the compatibility between GNAT run-time structures and the C++ ABI,
! interfacing with these C++ classes is easy. The only requirement is that all
! the primitives and components must be declared exactly in the same order in
! the two languages.
  
! Regarding the abstract interfaces, we must indicate to the GNAT compiler by
! means of a @code{pragma Convention (C_Plus_Plus)}, the convention used to pass
! the arguments to the called primitives will be the same as for C++. For the
! imported classes we use @code{pragma Import} with convention @code{C_Plus_Plus}
! to indicate that they have been defined on the C++ side; this is required
! because the dispatch table associated with these tagged types will be built
! in the C++ side and therefore will not contain the predefined Ada primitives
! which Ada would otherwise expect.
  
! As the reader can see there is no need to indicate the C++ mangled names
  associated with each subprogram because it is assumed that all the calls to
  these primitives will be dispatching calls. The only exception is the
! constructor, which must be registered with the compiler by means of
! @code{pragma CPP_Constructor} and needs to provide its associated C++
  mangled name because the Ada compiler generates direct calls to it.
  
! With the above packages we can now declare objects of type Dog on the Ada side
! and dispatch calls to the corresponding subprograms on the C++ side. We can
! also extend the tagged type Dog with further fields and primitives, and
! override some of its C++ primitives on the Ada side. For example, here we have
! a type derivation defined on the Ada side that inherits all the dispatching
! primitives of the ancestor from the C++ side.
  
  @example
  with Animals; use Animals;
--- 6253,6287 ----
  end Animals;
  @end example
  
! Thanks to the compatibility between GNAT run-time structures and the
! C++ ABI, interfacing with these C++ classes is easy. The only
! requirement is that you must declare all the primitives and components
! exactly in the same order in the two languages.
  
! Regarding the abstract interfaces, we must indicate to the GNAT
! compiler, by means of a @code{pragma Convention (C_Plus_Plus)}, that the
! convention used to pass the arguments to the called primitives will be
! the same as for C++. For the imported classes, we use @code{pragma
! Import} with convention @code{C_Plus_Plus} to indicate they have been
! defined on the C++ side; this is required because the dispatch table
! associated with these tagged types will be built in the C++ side and
! therefore will not contain the predefined Ada primitives which Ada
! would otherwise expect.
  
! As the reader can see, there is no need to indicate the C++ mangled names
  associated with each subprogram because it is assumed that all the calls to
  these primitives will be dispatching calls. The only exception is the
! constructor, which we must register with the compiler by means of
! @code{pragma CPP_Constructor} and we need to provide its associated C++
  mangled name because the Ada compiler generates direct calls to it.
  
! With the above packages, we can now declare objects of type @code{Dog} on
! the Ada side and dispatch calls to the corresponding subprograms on
! the C++ side. We can also extend the tagged type @code{Dog} with further
! fields and primitives and override some of its C++ primitives on the
! Ada side. For example, here we have a type derivation defined on the
! Ada side that inherits all the dispatching primitives of the ancestor
! from the C++ side.
  
  @example
  with Animals; use Animals;
*************** package Vaccinated_Animals is
*** 6298,6308 ****
  end Vaccinated_Animals;
  @end example
  
! It is important to note that, because of the ABI compatibility, the programmer
! does not need to add any further information to indicate either the object
  layout or the dispatch table entry associated with each dispatching operation.
  
! Now let us define all the types and constructors on the Ada side and export
  them to C++, using the same hierarchy of our previous example:
  
  @example
--- 6291,6301 ----
  end Vaccinated_Animals;
  @end example
  
! It is important to note that, because of the ABI compatibility, we
! don’t need to add any further information to indicate either the object
  layout or the dispatch table entry associated with each dispatching operation.
  
! Now let’s define all the types and constructors on the Ada side and export
  them to C++, using the same hierarchy of our previous example:
  
  @example
*************** end Animals;
*** 6352,6358 ****
  @end example
  
  Compared with our previous example the only differences are the use of
! @code{pragma Convention} (instead of @code{pragma Import}), and the use of
  @code{pragma Export} to indicate to the GNAT compiler that the primitives will
  be available to C++. Thanks to the ABI compatibility, on the C++ side there is
  nothing else to be done; as explained above, the only requirement is that all
--- 6345,6351 ----
  @end example
  
  Compared with our previous example the only differences are the use of
! @code{pragma Convention} (instead of @code{pragma Import}) and the use of
  @code{pragma Export} to indicate to the GNAT compiler that the primitives will
  be available to C++. Thanks to the ABI compatibility, on the C++ side there is
  nothing else to be done; as explained above, the only requirement is that all
*************** int main ()
*** 6396,6421 ****
  @end example
  
  @node Partition-Wide Settings,Generating Ada Bindings for C and C++ headers,Building Mixed Ada and C++ Programs,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id70}@anchor{b0}@anchor{gnat_ugn/the_gnat_compilation_model partition-wide-settings}@anchor{b1}
  @subsection Partition-Wide Settings
  
  
! When building a mixed-language application it is important to be aware that
  Ada enforces some partition-wide settings that may implicitly impact the
  behavior of the other languages.
  
! This is the case of certain signals that are reserved to the
  implementation to implement proper Ada semantics (such as the behavior
  of @code{abort} statements).
- 
  It means that the Ada part of the application may override signal handlers
  that were previously installed by either the system or by other user code.
  
! If your application requires that either system or user signals be preserved
! then you need to instruct the Ada part not to install its own signal handler.
! This is done using @code{pragma Interrupt_State} that provides a general
  mechanism for overriding such uses of interrupts.
  
  The set of interrupts for which the Ada run-time library sets a specific signal
  handler is the following:
  
--- 6389,6416 ----
  @end example
  
  @node Partition-Wide Settings,Generating Ada Bindings for C and C++ headers,Building Mixed Ada and C++ Programs,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id70}@anchor{b1}@anchor{gnat_ugn/the_gnat_compilation_model partition-wide-settings}@anchor{b2}
  @subsection Partition-Wide Settings
  
  
! When building a mixed-language application, you must be aware that
  Ada enforces some partition-wide settings that may implicitly impact the
  behavior of the other languages.
  
! This is the case for certain signals that are reserved to the
  implementation to implement proper Ada semantics (such as the behavior
  of @code{abort} statements).
  It means that the Ada part of the application may override signal handlers
  that were previously installed by either the system or by other user code.
  
! If your application requires that either system or user signals be preserved,
! you need to instruct the Ada part not to install its own signal handler.
! You do this using @code{pragma Interrupt_State} that provides a general
  mechanism for overriding such uses of interrupts.
  
+ Additionally, you can use pragma @code{Interrupts_System_By_Default} to default
+ all interrupts to System.
+ 
  The set of interrupts for which the Ada run-time library sets a specific signal
  handler is the following:
  
*************** Ada.Interrupts.Names.SIGILL
*** 6438,6446 ****
  Ada.Interrupts.Names.SIGABRT
  @end itemize
  
! The run-time library can be instructed not to install its signal handler for a
! particular signal by using the configuration pragma @code{Interrupt_State} in the
! Ada code. For example:
  
  @example
  pragma Interrupt_State (Ada.Interrupts.Names.SIGSEGV, System);
--- 6433,6441 ----
  Ada.Interrupts.Names.SIGABRT
  @end itemize
  
! You can instruct the run-time library not to install its signal
! handler for a particular signal by using the configuration pragma
! @code{Interrupt_State} in the Ada code. For example:
  
  @example
  pragma Interrupt_State (Ada.Interrupts.Names.SIGSEGV, System);
*************** and @code{SIGILL} are used to raise corr
*** 6456,6462 ****
  while @code{SIGABRT} is used to asynchronously abort an action or a task.
  
  @node Generating Ada Bindings for C and C++ headers,Generating C Headers for Ada Specifications,Partition-Wide Settings,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-ada-bindings-for-c-and-c-headers}@anchor{a7}@anchor{gnat_ugn/the_gnat_compilation_model id71}@anchor{b2}
  @subsection Generating Ada Bindings for C and C++ headers
  
  
--- 6451,6457 ----
  while @code{SIGABRT} is used to asynchronously abort an action or a task.
  
  @node Generating Ada Bindings for C and C++ headers,Generating C Headers for Ada Specifications,Partition-Wide Settings,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-ada-bindings-for-c-and-c-headers}@anchor{a8}@anchor{gnat_ugn/the_gnat_compilation_model id71}@anchor{b3}
  @subsection Generating Ada Bindings for C and C++ headers
  
  
*************** while @code{SIGABRT} is used to asynchro
*** 6466,6478 ****
  
  @geindex C++ headers (binding generation)
  
! GNAT includes a binding generator for C and C++ headers which is
  intended to do 95% of the tedious work of generating Ada specs from C
  or C++ header files.
  
! Note that this capability is not intended to generate 100% correct Ada specs,
! and will is some cases require manual adjustments, although it can often
! be used out of the box in practice.
  
  Some of the known limitations include:
  
--- 6461,6473 ----
  
  @geindex C++ headers (binding generation)
  
! GNAT includes a binding generator for C and C++ headers, which is
  intended to do 95% of the tedious work of generating Ada specs from C
  or C++ header files.
  
! This capability is not intended to generate 100% correct Ada specs and
! it will in some cases require you to make manual adjustments, although
! it can often be used out of the box in practice.
  
  Some of the known limitations include:
  
*************** as comments, to be completed manually if
*** 6488,6502 ****
  some extensions (e.g. vector types) are not supported
  
  @item 
! pointers to pointers are mapped to System.Address
  
  @item 
! identifiers with identical name (except casing) may generate compilation
! errors (e.g. @code{shm_get} vs @code{SHM_GET}).
  @end itemize
  
  The code is generated using Ada 2012 syntax, which makes it easier to interface
! with other languages. In most cases you can still use the generated binding
  even if your code is compiled using earlier versions of Ada (e.g. @code{-gnat95}).
  
  @menu
--- 6483,6497 ----
  some extensions (e.g. vector types) are not supported
  
  @item 
! pointers to pointers are mapped to @code{System.Address}
  
  @item 
! identifiers with names that are identical except for casing may generate
! compilation errors (e.g. @code{shm_get} vs @code{SHM_GET}).
  @end itemize
  
  The code is generated using Ada 2012 syntax, which makes it easier to interface
! with other languages. In most cases, you can still use the generated binding
  even if your code is compiled using earlier versions of Ada (e.g. @code{-gnat95}).
  
  @menu
*************** even if your code is compiled using earl
*** 6507,6519 ****
  @end menu
  
  @node Running the Binding Generator,Generating Bindings for C++ Headers,,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model id72}@anchor{b3}@anchor{gnat_ugn/the_gnat_compilation_model running-the-binding-generator}@anchor{b4}
  @subsubsection Running the Binding Generator
  
  
! The binding generator is part of the @code{gcc} compiler and can be
! invoked via the @code{-fdump-ada-spec} switch, which will generate Ada
! spec files for the header files specified on the command line, and all
  header files needed by these files transitively. For example:
  
  @example
--- 6502,6514 ----
  @end menu
  
  @node Running the Binding Generator,Generating Bindings for C++ Headers,,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model id72}@anchor{b4}@anchor{gnat_ugn/the_gnat_compilation_model running-the-binding-generator}@anchor{b5}
  @subsubsection Running the Binding Generator
  
  
! The binding generator is part of the @code{gcc} compiler and you can
! invoke it via the @code{-fdump-ada-spec} switch, which generates Ada
! spec files for the header files specified on the command line and all
  header files needed by these files transitively. For example:
  
  @example
*************** $ gcc -c -fdump-ada-spec -C /usr/include
*** 6521,6537 ****
  $ gcc -c *.ads
  @end example
  
! will generate, under GNU/Linux, the following files: @code{time_h.ads},
  @code{bits_time_h.ads}, @code{stddef_h.ads}, @code{bits_types_h.ads} which
! correspond to the files @code{/usr/include/time.h},
! @code{/usr/include/bits/time.h}, etc…, and then compile these Ada specs.
! That is to say, the name of the Ada specs is in keeping with the relative path
  under @code{/usr/include/} of the header files. This behavior is specific to
  paths ending with @code{/include/}; in all the other cases, the name of the
  Ada specs is derived from the simple name of the header files instead.
  
  The @code{-C} switch tells @code{gcc} to extract comments from headers,
! and will attempt to generate corresponding Ada comments.
  
  If you want to generate a single Ada file and not the transitive closure, you
  can use instead the @code{-fdump-ada-spec-slim} switch.
--- 6516,6532 ----
  $ gcc -c *.ads
  @end example
  
! generates, under GNU/Linux, the following files: @code{time_h.ads},
  @code{bits_time_h.ads}, @code{stddef_h.ads}, @code{bits_types_h.ads} which
! correspond to the files @code{/usr/include/time.h}, and
! @code{/usr/include/bits/time.h} and then compile these Ada specs.
! The name of the Ada specs is consistent with the relative path
  under @code{/usr/include/} of the header files. This behavior is specific to
  paths ending with @code{/include/}; in all the other cases, the name of the
  Ada specs is derived from the simple name of the header files instead.
  
  The @code{-C} switch tells @code{gcc} to extract comments from headers,
! and attempt to generate corresponding Ada comments.
  
  If you want to generate a single Ada file and not the transitive closure, you
  can use instead the @code{-fdump-ada-spec-slim} switch.
*************** is for example the case with @code{Xlib.
*** 6550,6560 ****
  $ gcc -c -fdump-ada-spec -DXLIB_ILLEGAL_ACCESS -C /usr/include/X11/Xlib.h
  @end example
  
! The above will generate more complete bindings than a straight call without
  the @code{-DXLIB_ILLEGAL_ACCESS} switch.
  
! In other cases, it is not possible to parse a header file in a stand-alone
! manner, because other include files need to be included first. In this
  case, the solution is to create a small header file including the needed
  @code{#include} and possible @code{#define} directives. For example, to
  generate Ada bindings for @code{readline/readline.h}, you need to first
--- 6545,6555 ----
  $ gcc -c -fdump-ada-spec -DXLIB_ILLEGAL_ACCESS -C /usr/include/X11/Xlib.h
  @end example
  
! The above generates more complete bindings than a call without
  the @code{-DXLIB_ILLEGAL_ACCESS} switch.
  
! In other cases, you can’t parse a header file in a stand-alone
! manner because other include files need to be included first. In this
  case, the solution is to create a small header file including the needed
  @code{#include} and possible @code{#define} directives. For example, to
  generate Ada bindings for @code{readline/readline.h}, you need to first
*************** $ gcc -c -fdump-ada-spec readline1.h
*** 6573,6591 ****
  @end example
  
  @node Generating Bindings for C++ Headers,Switches,Running the Binding Generator,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model generating-bindings-for-c-headers}@anchor{b5}@anchor{gnat_ugn/the_gnat_compilation_model id73}@anchor{b6}
  @subsubsection Generating Bindings for C++ Headers
  
  
! Generating bindings for C++ headers is done using the same options, always
! with the `g++' compiler. Note that generating Ada spec from C++ headers is a
  much more complex job and support for C++ headers is much more limited that
  support for C headers. As a result, you will need to modify the resulting
  bindings by hand more extensively when using C++ headers.
  
! In this mode, C++ classes will be mapped to Ada tagged types, constructors
! will be mapped using the @code{CPP_Constructor} pragma, and when possible,
! multiple inheritance of abstract classes will be mapped to Ada interfaces
  (see the `Interfacing to C++' section in the @cite{GNAT Reference Manual}
  for additional information on interfacing to C++).
  
--- 6568,6586 ----
  @end example
  
  @node Generating Bindings for C++ Headers,Switches,Running the Binding Generator,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model generating-bindings-for-c-headers}@anchor{b6}@anchor{gnat_ugn/the_gnat_compilation_model id73}@anchor{b7}
  @subsubsection Generating Bindings for C++ Headers
  
  
! Generating bindings for C++ headers is done using the same options, but
! with the @code{g++} compiler. Note that generating Ada spec from C++ headers is a
  much more complex job and support for C++ headers is much more limited that
  support for C headers. As a result, you will need to modify the resulting
  bindings by hand more extensively when using C++ headers.
  
! In this mode, C++ classes are mapped to Ada tagged types, constructors
! are mapped using the @code{CPP_Constructor} pragma, and when possible,
! multiple inheritance of abstract classes are mapped to Ada interfaces
  (see the `Interfacing to C++' section in the @cite{GNAT Reference Manual}
  for additional information on interfacing to C++).
  
*************** use Class_Dog;
*** 6674,6680 ****
  @end example
  
  @node Switches,,Generating Bindings for C++ Headers,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model switches}@anchor{b7}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-ada-binding-generation}@anchor{b8}
  @subsubsection Switches
  
  
--- 6669,6675 ----
  @end example
  
  @node Switches,,Generating Bindings for C++ Headers,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model switches}@anchor{b8}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-ada-binding-generation}@anchor{b9}
  @subsubsection Switches
  
  
*************** all header files that these headers depe
*** 6696,6703 ****
  
  @item @code{-fdump-ada-spec-slim}
  
! Generate Ada spec files for the header files specified on the command line
! only.
  @end table
  
  @geindex -fada-spec-parent (gcc)
--- 6691,6698 ----
  
  @item @code{-fdump-ada-spec-slim}
  
! Only generate Ada spec files for the header files specified on the
! command line.
  @end table
  
  @geindex -fada-spec-parent (gcc)
*************** Extract comments from headers and genera
*** 6722,6728 ****
  @end table
  
  @node Generating C Headers for Ada Specifications,,Generating Ada Bindings for C and C++ headers,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-c-headers-for-ada-specifications}@anchor{b9}@anchor{gnat_ugn/the_gnat_compilation_model id74}@anchor{ba}
  @subsection Generating C Headers for Ada Specifications
  
  
--- 6717,6723 ----
  @end table
  
  @node Generating C Headers for Ada Specifications,,Generating Ada Bindings for C and C++ headers,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-c-headers-for-ada-specifications}@anchor{ba}@anchor{gnat_ugn/the_gnat_compilation_model id74}@anchor{bb}
  @subsection Generating C Headers for Ada Specifications
  
  
*************** Extract comments from headers and genera
*** 6730,6738 ****
  
  @geindex C headers (binding generation)
  
! GNAT includes a C header generator for Ada specifications which supports
! Ada types that have a direct mapping to C types. This includes in particular
! support for:
  
  
  @itemize *
--- 6725,6733 ----
  
  @geindex C headers (binding generation)
  
! GNAT includes a C header generator for Ada specifications that
! supports Ada types that have a direct mapping to C types. This
! specifically includes support for:
  
  
  @itemize *
*************** Subprogram declarations
*** 6765,6787 ****
  @end menu
  
  @node Running the C Header Generator,,,Generating C Headers for Ada Specifications
! @anchor{gnat_ugn/the_gnat_compilation_model running-the-c-header-generator}@anchor{bb}
  @subsubsection Running the C Header Generator
  
  
  The C header generator is part of the GNAT compiler and can be invoked via
! the @code{-gnatceg} combination of switches, which will generate a @code{.h}
  file corresponding to the given input file (Ada spec or body). Note that
! only spec files are processed in any case, so giving a spec or a body file
  as input is equivalent. For example:
  
  @example
  $ gcc -c -gnatceg pack1.ads
  @end example
  
! will generate a self-contained file called @code{pack1.h} including
! common definitions from the Ada Standard package, followed by the
! definitions included in @code{pack1.ads}, as well as all the other units
  withed by this file.
  
  For instance, given the following Ada files:
--- 6760,6782 ----
  @end menu
  
  @node Running the C Header Generator,,,Generating C Headers for Ada Specifications
! @anchor{gnat_ugn/the_gnat_compilation_model running-the-c-header-generator}@anchor{bc}
  @subsubsection Running the C Header Generator
  
  
  The C header generator is part of the GNAT compiler and can be invoked via
! the @code{-gnatceg} switch, which generates a @code{.h}
  file corresponding to the given input file (Ada spec or body). Note that
! only spec files are processed, so giving a spec or a body file
  as input is equivalent. For example:
  
  @example
  $ gcc -c -gnatceg pack1.ads
  @end example
  
! generates a self-contained file called @code{pack1.h} including
! common definitions from the Ada Standard package followed by the
! definitions included in @code{pack1.ads} as well as all the other units
  withed by this file.
  
  For instance, given the following Ada files:
*************** package Pack1 is
*** 6807,6813 ****
  end Pack1;
  @end example
  
! The above @code{gcc} command will generate the following @code{pack1.h} file:
  
  @example
  /* Standard definitions skipped */
--- 6802,6808 ----
  end Pack1;
  @end example
  
! The above @code{gcc} command generates the following @code{pack1.h} file:
  
  @example
  /* Standard definitions skipped */
*************** You can then @code{include} @code{pack1.
*** 6833,6844 ****
  call subprograms, reference objects, and constants.
  
  @node GNAT and Other Compilation Models,Using GNAT Files with External Tools,Mixed Language Programming,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-other-compilation-models}@anchor{2d}@anchor{gnat_ugn/the_gnat_compilation_model id75}@anchor{bc}
  @section GNAT and Other Compilation Models
  
  
  This section compares the GNAT model with the approaches taken in
! other environments, first the C/C++ model and then the mechanism that
  has been used in other Ada systems, in particular those traditionally
  used for Ada 83.
  
--- 6828,6839 ----
  call subprograms, reference objects, and constants.
  
  @node GNAT and Other Compilation Models,Using GNAT Files with External Tools,Mixed Language Programming,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-other-compilation-models}@anchor{2e}@anchor{gnat_ugn/the_gnat_compilation_model id75}@anchor{bd}
  @section GNAT and Other Compilation Models
  
  
  This section compares the GNAT model with the approaches taken in
! other environments: first the C/C++ model and then the mechanism that
  has been used in other Ada systems, in particular those traditionally
  used for Ada 83.
  
*************** used for Ada 83.
*** 6849,6863 ****
  @end menu
  
  @node Comparison between GNAT and C/C++ Compilation Models,Comparison between GNAT and Conventional Ada Library Models,,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-c-c-compilation-models}@anchor{bd}@anchor{gnat_ugn/the_gnat_compilation_model id76}@anchor{be}
  @subsection Comparison between GNAT and C/C++ Compilation Models
  
  
! The GNAT model of compilation is close to the C and C++ models. You can
  think of Ada specs as corresponding to header files in C. As in C, you
  don’t need to compile specs; they are compiled when they are used. The
! Ada `with' is similar in effect to the @code{#include} of a C
! header.
  
  One notable difference is that, in Ada, you may compile specs separately
  to check them for semantic and syntactic accuracy. This is not always
--- 6844,6857 ----
  @end menu
  
  @node Comparison between GNAT and C/C++ Compilation Models,Comparison between GNAT and Conventional Ada Library Models,,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-c-c-compilation-models}@anchor{be}@anchor{gnat_ugn/the_gnat_compilation_model id76}@anchor{bf}
  @subsection Comparison between GNAT and C/C++ Compilation Models
  
  
! The GNAT compilation model is close to the C and C++ models. You can
  think of Ada specs as corresponding to header files in C. As in C, you
  don’t need to compile specs; they are compiled when they are used. The
! Ada `with' is similar in effect to the @code{#include} of a C header.
  
  One notable difference is that, in Ada, you may compile specs separately
  to check them for semantic and syntactic accuracy. This is not always
*************** less specific syntactic or semantic rule
*** 6867,6873 ****
  The other major difference is the requirement for running the binder,
  which performs two important functions. First, it checks for
  consistency. In C or C++, the only defense against assembling
! inconsistent programs lies outside the compiler, in a makefile, for
  example. The binder satisfies the Ada requirement that it be impossible
  to construct an inconsistent program when the compiler is used in normal
  mode.
--- 6861,6867 ----
  The other major difference is the requirement for running the binder,
  which performs two important functions. First, it checks for
  consistency. In C or C++, the only defense against assembling
! inconsistent programs lies outside the compiler, in a @code{makefile}, for
  example. The binder satisfies the Ada requirement that it be impossible
  to construct an inconsistent program when the compiler is used in normal
  mode.
*************** elaboration, a C++ compiler would simply
*** 6883,6889 ****
  malfunctioned at run time.
  
  @node Comparison between GNAT and Conventional Ada Library Models,,Comparison between GNAT and C/C++ Compilation Models,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-conventional-ada-library-models}@anchor{bf}@anchor{gnat_ugn/the_gnat_compilation_model id77}@anchor{c0}
  @subsection Comparison between GNAT and Conventional Ada Library Models
  
  
--- 6877,6883 ----
  malfunctioned at run time.
  
  @node Comparison between GNAT and Conventional Ada Library Models,,Comparison between GNAT and C/C++ Compilation Models,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-conventional-ada-library-models}@anchor{c0}@anchor{gnat_ugn/the_gnat_compilation_model id77}@anchor{c1}
  @subsection Comparison between GNAT and Conventional Ada Library Models
  
  
*************** model, as described in the Ada Reference
*** 6896,6904 ****
  In GNAT, there is no ‘library’ in the normal sense. Instead, the set of
  source files themselves acts as the library. Compiling Ada programs does
  not generate any centralized information, but rather an object file and
! a ALI file, which are of interest only to the binder and linker.
  In a traditional system, the compiler reads information not only from
! the source file being compiled, but also from the centralized library.
  This means that the effect of a compilation depends on what has been
  previously compiled. In particular:
  
--- 6890,6898 ----
  In GNAT, there is no ‘library’ in the normal sense. Instead, the set of
  source files themselves acts as the library. Compiling Ada programs does
  not generate any centralized information, but rather an object file and
! a @code{.ali} file, which are of interest only to the binder and linker.
  In a traditional system, the compiler reads information not only from
! the source file being compiled but also from the centralized library.
  This means that the effect of a compilation depends on what has been
  previously compiled. In particular:
  
*************** depended on the source file being modifi
*** 6943,6949 ****
  @end itemize
  
  The most important result of these differences is that order of compilation
! is never significant in GNAT. There is no situation in which one is
  required to do one compilation before another. What shows up as order of
  compilation requirements in the traditional Ada library becomes, in
  GNAT, simple source dependencies; in other words, there is only a set
--- 6937,6943 ----
  @end itemize
  
  The most important result of these differences is that order of compilation
! is never significant in GNAT. There is no situation in which you are
  required to do one compilation before another. What shows up as order of
  compilation requirements in the traditional Ada library becomes, in
  GNAT, simple source dependencies; in other words, there is only a set
*************** of rules saying what source files must b
*** 6951,6957 ****
  compiled.
  
  @node Using GNAT Files with External Tools,,GNAT and Other Compilation Models,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id78}@anchor{c1}@anchor{gnat_ugn/the_gnat_compilation_model using-gnat-files-with-external-tools}@anchor{2e}
  @section Using GNAT Files with External Tools
  
  
--- 6945,6951 ----
  compiled.
  
  @node Using GNAT Files with External Tools,,GNAT and Other Compilation Models,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id78}@anchor{c2}@anchor{gnat_ugn/the_gnat_compilation_model using-gnat-files-with-external-tools}@anchor{2f}
  @section Using GNAT Files with External Tools
  
  
*************** used with tools designed for other langu
*** 6965,6995 ****
  @end menu
  
  @node Using Other Utility Programs with GNAT,The External Symbol Naming Scheme of GNAT,,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id79}@anchor{c2}@anchor{gnat_ugn/the_gnat_compilation_model using-other-utility-programs-with-gnat}@anchor{c3}
  @subsection Using Other Utility Programs with GNAT
  
  
! The object files generated by GNAT are in standard system format and in
! particular the debugging information uses this format. This means
  programs generated by GNAT can be used with existing utilities that
  depend on these formats.
  
  In general, any utility program that works with C will also often work with
  Ada programs generated by GNAT. This includes software utilities such as
! gprof (a profiling program), gdb (the FSF debugger), and utilities such
! as Purify.
  
  @node The External Symbol Naming Scheme of GNAT,,Using Other Utility Programs with GNAT,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id80}@anchor{c4}@anchor{gnat_ugn/the_gnat_compilation_model the-external-symbol-naming-scheme-of-gnat}@anchor{c5}
  @subsection The External Symbol Naming Scheme of GNAT
  
  
! In order to interpret the output from GNAT, when using tools that are
! originally intended for use with other languages, it is useful to
  understand the conventions used to generate link names from the Ada
  entity names.
  
! All link names are in all lowercase letters. With the exception of library
  procedure names, the mechanism used is simply to use the full expanded
  Ada name with dots replaced by double underscores. For example, suppose
  we have the following package spec:
--- 6959,6989 ----
  @end menu
  
  @node Using Other Utility Programs with GNAT,The External Symbol Naming Scheme of GNAT,,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id79}@anchor{c3}@anchor{gnat_ugn/the_gnat_compilation_model using-other-utility-programs-with-gnat}@anchor{c4}
  @subsection Using Other Utility Programs with GNAT
  
  
! The object files generated by GNAT are in standard system format and, in
! particular, the debugging information uses this format. This means
  programs generated by GNAT can be used with existing utilities that
  depend on these formats.
  
  In general, any utility program that works with C will also often work with
  Ada programs generated by GNAT. This includes software utilities such as
! @code{gprof} (a profiling program), @code{gdb} (the FSF debugger), and utilities such
! as @code{Purify}.
  
  @node The External Symbol Naming Scheme of GNAT,,Using Other Utility Programs with GNAT,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id80}@anchor{c5}@anchor{gnat_ugn/the_gnat_compilation_model the-external-symbol-naming-scheme-of-gnat}@anchor{c6}
  @subsection The External Symbol Naming Scheme of GNAT
  
  
! To interpret the output from GNAT when using tools that are
! originally intended for use with other languages, you need to
  understand the conventions used to generate link names from the Ada
  entity names.
  
! All link names are in all lowercase. With the exception of library
  procedure names, the mechanism used is simply to use the full expanded
  Ada name with dots replaced by double underscores. For example, suppose
  we have the following package spec:
*************** end QRS;
*** 7004,7010 ****
  
  The variable @code{MN} has a full expanded Ada name of @code{QRS.MN}, so
  the corresponding link name is @code{qrs__mn}.
! Of course if a @code{pragma Export} is used this may be overridden:
  
  @example
  package Exports is
--- 6998,7004 ----
  
  The variable @code{MN} has a full expanded Ada name of @code{QRS.MN}, so
  the corresponding link name is @code{qrs__mn}.
! Of course if you use a pragma @code{Export}, you maye override this:
  
  @example
  package Exports is
*************** arises between the required name @code{_
*** 7027,7061 ****
  and the name we would otherwise assign to an Ada library level procedure
  called @code{Main} (which might well not be the main program).
  
! To avoid this ambiguity, we attach the prefix @code{_ada_} to such
  names. So if we have a library level procedure such as:
  
  @example
  procedure Hello (S : String);
  @end example
  
! the external name of this procedure will be @code{_ada_hello}.
  
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Building Executable Programs with GNAT,GNAT Utility Programs,The GNAT Compilation Model,Top
! @anchor{gnat_ugn/building_executable_programs_with_gnat doc}@anchor{c6}@anchor{gnat_ugn/building_executable_programs_with_gnat building-executable-programs-with-gnat}@anchor{a}@anchor{gnat_ugn/building_executable_programs_with_gnat id1}@anchor{c7}
  @chapter Building Executable Programs with GNAT
  
  
  This chapter describes first the gnatmake tool
! (@ref{c8,,Building with gnatmake}),
  which automatically determines the set of sources
  needed by an Ada compilation unit and executes the necessary
  (re)compilations, binding and linking.
  It also explains how to use each tool individually: the
! compiler (gcc, see @ref{c9,,Compiling with gcc}),
! binder (gnatbind, see @ref{ca,,Binding with gnatbind}),
! and linker (gnatlink, see @ref{cb,,Linking with gnatlink})
  to build executable programs.
  Finally, this chapter provides examples of
  how to make use of the general GNU make mechanism
! in a GNAT context (see @ref{70,,Using the GNU make Utility}).
  
  
  @menu
--- 7021,7055 ----
  and the name we would otherwise assign to an Ada library level procedure
  called @code{Main} (which might well not be the main program).
  
! To avoid this ambiguity, GNAT adds the prefix @code{_ada_} to such
  names. So if we have a library level procedure such as:
  
  @example
  procedure Hello (S : String);
  @end example
  
! the external name of this procedure is @code{_ada_hello}.
  
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Building Executable Programs with GNAT,GNAT Utility Programs,The GNAT Compilation Model,Top
! @anchor{gnat_ugn/building_executable_programs_with_gnat doc}@anchor{c7}@anchor{gnat_ugn/building_executable_programs_with_gnat building-executable-programs-with-gnat}@anchor{b}@anchor{gnat_ugn/building_executable_programs_with_gnat id1}@anchor{c8}
  @chapter Building Executable Programs with GNAT
  
  
  This chapter describes first the gnatmake tool
! (@ref{c9,,Building with gnatmake}),
  which automatically determines the set of sources
  needed by an Ada compilation unit and executes the necessary
  (re)compilations, binding and linking.
  It also explains how to use each tool individually: the
! compiler (gcc, see @ref{ca,,Compiling with gcc}),
! binder (gnatbind, see @ref{cb,,Binding with gnatbind}),
! and linker (gnatlink, see @ref{cc,,Linking with gnatlink})
  to build executable programs.
  Finally, this chapter provides examples of
  how to make use of the general GNU make mechanism
! in a GNAT context (see @ref{71,,Using the GNU make Utility}).
  
  
  @menu
*************** in a GNAT context (see @ref{70,,Using th
*** 7066,7076 ****
  * Binding with gnatbind:: 
  * Linking with gnatlink:: 
  * Using the GNU make Utility:: 
  
  @end menu
  
  @node Building with gnatmake,Compiling with gcc,,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat building-with-gnatmake}@anchor{cc}@anchor{gnat_ugn/building_executable_programs_with_gnat the-gnat-make-program-gnatmake}@anchor{c8}
  @section Building with @code{gnatmake}
  
  
--- 7060,7071 ----
  * Binding with gnatbind:: 
  * Linking with gnatlink:: 
  * Using the GNU make Utility:: 
+ * GNAT with the LLVM Back End:: 
  
  @end menu
  
  @node Building with gnatmake,Compiling with gcc,,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat building-with-gnatmake}@anchor{cd}@anchor{gnat_ugn/building_executable_programs_with_gnat the-gnat-make-program-gnatmake}@anchor{c9}
  @section Building with @code{gnatmake}
  
  
*************** to @code{gnatmake}.
*** 7134,7140 ****
  @end menu
  
  @node Running gnatmake,Switches for gnatmake,,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id2}@anchor{cd}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatmake}@anchor{ce}
  @subsection Running @code{gnatmake}
  
  
--- 7129,7135 ----
  @end menu
  
  @node Running gnatmake,Switches for gnatmake,,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id2}@anchor{ce}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatmake}@anchor{cf}
  @subsection Running @code{gnatmake}
  
  
*************** be searched for in the specified directo
*** 7162,7175 ****
  source file will first be searched in the directory where
  @code{gnatmake} was invoked and if it is not found, it will be search on
  the source path of the compiler as described in
! @ref{73,,Search Paths and the Run-Time Library (RTL)}.
  
  All @code{gnatmake} output (except when you specify @code{-M}) is sent to
  @code{stderr}. The output produced by the
  @code{-M} switch is sent to @code{stdout}.
  
  @node Switches for gnatmake,Mode Switches for gnatmake,Running gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id3}@anchor{cf}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatmake}@anchor{d0}
  @subsection Switches for @code{gnatmake}
  
  
--- 7157,7170 ----
  source file will first be searched in the directory where
  @code{gnatmake} was invoked and if it is not found, it will be search on
  the source path of the compiler as described in
! @ref{74,,Search Paths and the Run-Time Library (RTL)}.
  
  All @code{gnatmake} output (except when you specify @code{-M}) is sent to
  @code{stderr}. The output produced by the
  @code{-M} switch is sent to @code{stdout}.
  
  @node Switches for gnatmake,Mode Switches for gnatmake,Running gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id3}@anchor{d0}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatmake}@anchor{d1}
  @subsection Switches for @code{gnatmake}
  
  
*************** then instead object files and ALI files
*** 7558,7564 ****
  in place. This means that once a large project is organized into separate
  directories in the desired manner, then @code{gnatmake} will automatically
  maintain and update this organization. If no ALI files are found on the
! Ada object path (see @ref{73,,Search Paths and the Run-Time Library (RTL)}),
  the new object and ALI files are created in the
  directory containing the source being compiled. If another organization
  is desired, where objects and sources are kept in different directories,
--- 7553,7559 ----
  in place. This means that once a large project is organized into separate
  directories in the desired manner, then @code{gnatmake} will automatically
  maintain and update this organization. If no ALI files are found on the
! Ada object path (see @ref{74,,Search Paths and the Run-Time Library (RTL)}),
  the new object and ALI files are created in the
  directory containing the source being compiled. If another organization
  is desired, where objects and sources are kept in different directories,
*************** Verbosity level High. Equivalent to -v.
*** 7811,7817 ****
  @item @code{-vP`x'}
  
  Indicate the verbosity of the parsing of GNAT project files.
! See @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -x (gnatmake)
--- 7806,7812 ----
  @item @code{-vP`x'}
  
  Indicate the verbosity of the parsing of GNAT project files.
! See @ref{d2,,Switches Related to Project Files}.
  @end table
  
  @geindex -x (gnatmake)
*************** command line need to be sources of a pro
*** 7835,7841 ****
  Indicate that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -z (gnatmake)
--- 7830,7836 ----
  Indicate that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! @ref{d2,,Switches Related to Project Files}.
  @end table
  
  @geindex -z (gnatmake)
*************** is passed to @code{gcc} (e.g., @code{-O}
*** 7869,7875 ****
  
  When looking for source files also look in directory @code{dir}.
  The order in which source files search is undertaken is
! described in @ref{73,,Search Paths and the Run-Time Library (RTL)}.
  @end table
  
  @geindex -aL (gnatmake)
--- 7864,7870 ----
  
  When looking for source files also look in directory @code{dir}.
  The order in which source files search is undertaken is
! described in @ref{74,,Search Paths and the Run-Time Library (RTL)}.
  @end table
  
  @geindex -aL (gnatmake)
*************** ALI files.
*** 7901,7907 ****
  
  When searching for library and object files, look in directory
  @code{dir}. The order in which library files are searched is described in
! @ref{76,,Search Paths for gnatbind}.
  @end table
  
  @geindex Search paths
--- 7896,7902 ----
  
  When searching for library and object files, look in directory
  @code{dir}. The order in which library files are searched is described in
! @ref{77,,Search Paths for gnatbind}.
  @end table
  
  @geindex Search paths
*************** The selected path is handled like a norm
*** 8006,8012 ****
  @end table
  
  @node Mode Switches for gnatmake,Notes on the Command Line,Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id4}@anchor{d2}@anchor{gnat_ugn/building_executable_programs_with_gnat mode-switches-for-gnatmake}@anchor{d3}
  @subsection Mode Switches for @code{gnatmake}
  
  
--- 8001,8007 ----
  @end table
  
  @node Mode Switches for gnatmake,Notes on the Command Line,Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id4}@anchor{d3}@anchor{gnat_ugn/building_executable_programs_with_gnat mode-switches-for-gnatmake}@anchor{d4}
  @subsection Mode Switches for @code{gnatmake}
  
  
*************** or @code{-largs}.
*** 8066,8072 ****
  @end table
  
  @node Notes on the Command Line,How gnatmake Works,Mode Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id5}@anchor{d4}@anchor{gnat_ugn/building_executable_programs_with_gnat notes-on-the-command-line}@anchor{d5}
  @subsection Notes on the Command Line
  
  
--- 8061,8067 ----
  @end table
  
  @node Notes on the Command Line,How gnatmake Works,Mode Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id5}@anchor{d5}@anchor{gnat_ugn/building_executable_programs_with_gnat notes-on-the-command-line}@anchor{d6}
  @subsection Notes on the Command Line
  
  
*************** that the debugging information may be ou
*** 8136,8142 ****
  @end itemize
  
  @node How gnatmake Works,Examples of gnatmake Usage,Notes on the Command Line,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat how-gnatmake-works}@anchor{d6}@anchor{gnat_ugn/building_executable_programs_with_gnat id6}@anchor{d7}
  @subsection How @code{gnatmake} Works
  
  
--- 8131,8137 ----
  @end itemize
  
  @node How gnatmake Works,Examples of gnatmake Usage,Notes on the Command Line,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat how-gnatmake-works}@anchor{d7}@anchor{gnat_ugn/building_executable_programs_with_gnat id6}@anchor{d8}
  @subsection How @code{gnatmake} Works
  
  
*************** When invoking @code{gnatmake} with sever
*** 8176,8189 ****
  imported by several of the executables, it will be recompiled at most once.
  
  Note: when using non-standard naming conventions
! (@ref{1c,,Using Other File Names}), changing through a configuration pragmas
  file the version of a source and invoking @code{gnatmake} to recompile may
  have no effect, if the previous version of the source is still accessible
  by @code{gnatmake}. It may be necessary to use the switch
  -f.
  
  @node Examples of gnatmake Usage,,How gnatmake Works,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatmake-usage}@anchor{d8}@anchor{gnat_ugn/building_executable_programs_with_gnat id7}@anchor{d9}
  @subsection Examples of @code{gnatmake} Usage
  
  
--- 8171,8184 ----
  imported by several of the executables, it will be recompiled at most once.
  
  Note: when using non-standard naming conventions
! (@ref{1d,,Using Other File Names}), changing through a configuration pragmas
  file the version of a source and invoking @code{gnatmake} to recompile may
  have no effect, if the previous version of the source is still accessible
  by @code{gnatmake}. It may be necessary to use the switch
  -f.
  
  @node Examples of gnatmake Usage,,How gnatmake Works,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatmake-usage}@anchor{d9}@anchor{gnat_ugn/building_executable_programs_with_gnat id7}@anchor{da}
  @subsection Examples of @code{gnatmake} Usage
  
  
*************** displaying commands it is executing.
*** 8215,8221 ****
  @end table
  
  @node Compiling with gcc,Compiler Switches,Building with gnatmake,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-with-gcc}@anchor{c9}@anchor{gnat_ugn/building_executable_programs_with_gnat id8}@anchor{da}
  @section Compiling with @code{gcc}
  
  
--- 8210,8216 ----
  @end table
  
  @node Compiling with gcc,Compiler Switches,Building with gnatmake,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-with-gcc}@anchor{ca}@anchor{gnat_ugn/building_executable_programs_with_gnat id8}@anchor{db}
  @section Compiling with @code{gcc}
  
  
*************** that can be used to control the behavior
*** 8232,8238 ****
  @end menu
  
  @node Compiling Programs,Search Paths and the Run-Time Library RTL,,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-programs}@anchor{db}@anchor{gnat_ugn/building_executable_programs_with_gnat id9}@anchor{dc}
  @subsection Compiling Programs
  
  
--- 8227,8233 ----
  @end menu
  
  @node Compiling Programs,Search Paths and the Run-Time Library RTL,,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-programs}@anchor{dc}@anchor{gnat_ugn/building_executable_programs_with_gnat id9}@anchor{dd}
  @subsection Compiling Programs
  
  
*************** calls @code{gnat1} (the Ada compiler) tw
*** 8343,8353 ****
  The compiler generates two object files @code{x.o} and @code{y.o}
  and the two ALI files @code{x.ali} and @code{y.ali}.
  
! Any switches apply to all the files listed, see @ref{dd,,Compiler Switches} for a
  list of available @code{gcc} switches.
  
  @node Search Paths and the Run-Time Library RTL,Order of Compilation Issues,Compiling Programs,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id10}@anchor{de}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-and-the-run-time-library-rtl}@anchor{73}
  @subsection Search Paths and the Run-Time Library (RTL)
  
  
--- 8338,8348 ----
  The compiler generates two object files @code{x.o} and @code{y.o}
  and the two ALI files @code{x.ali} and @code{y.ali}.
  
! Any switches apply to all the files listed, see @ref{de,,Compiler Switches} for a
  list of available @code{gcc} switches.
  
  @node Search Paths and the Run-Time Library RTL,Order of Compilation Issues,Compiling Programs,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id10}@anchor{df}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-and-the-run-time-library-rtl}@anchor{74}
  @subsection Search Paths and the Run-Time Library (RTL)
  
  
*************** names separated by colons (semicolons wh
*** 8404,8410 ****
  The content of the @code{ada_source_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run Time Library (RTL) source files.
! See also @ref{72,,Installing a library}.
  @end itemize
  
  Specifying the switch @code{-I-}
--- 8399,8405 ----
  The content of the @code{ada_source_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run Time Library (RTL) source files.
! See also @ref{73,,Installing a library}.
  @end itemize
  
  Specifying the switch @code{-I-}
*************** in compiling sources from multiple direc
*** 8446,8452 ****
  development environments much more flexible.
  
  @node Order of Compilation Issues,Examples,Search Paths and the Run-Time Library RTL,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id11}@anchor{df}@anchor{gnat_ugn/building_executable_programs_with_gnat order-of-compilation-issues}@anchor{e0}
  @subsection Order of Compilation Issues
  
  
--- 8441,8447 ----
  development environments much more flexible.
  
  @node Order of Compilation Issues,Examples,Search Paths and the Run-Time Library RTL,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id11}@anchor{e0}@anchor{gnat_ugn/building_executable_programs_with_gnat order-of-compilation-issues}@anchor{e1}
  @subsection Order of Compilation Issues
  
  
*************** source files on which it depends.
*** 8474,8480 ****
  
  @item 
  There is no library as such, apart from the ALI files
! (@ref{28,,The Ada Library Information Files}, for information on the format
  of these files). For now we find it convenient to create separate ALI files,
  but eventually the information therein may be incorporated into the object
  file directly.
--- 8469,8475 ----
  
  @item 
  There is no library as such, apart from the ALI files
! (@ref{29,,The Ada Library Information Files}, for information on the format
  of these files). For now we find it convenient to create separate ALI files,
  but eventually the information therein may be incorporated into the object
  file directly.
*************** described above), or you will receive a
*** 8487,8493 ****
  @end itemize
  
  @node Examples,,Order of Compilation Issues,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples}@anchor{e1}@anchor{gnat_ugn/building_executable_programs_with_gnat id12}@anchor{e2}
  @subsection Examples
  
  
--- 8482,8488 ----
  @end itemize
  
  @node Examples,,Order of Compilation Issues,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples}@anchor{e2}@anchor{gnat_ugn/building_executable_programs_with_gnat id12}@anchor{e3}
  @subsection Examples
  
  
*************** Compile the subunit in file @code{abc-de
*** 8515,8521 ****
  mode.
  
  @node Compiler Switches,Linker Switches,Compiling with gcc,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiler-switches}@anchor{e3}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gcc}@anchor{dd}
  @section Compiler Switches
  
  
--- 8510,8516 ----
  mode.
  
  @node Compiler Switches,Linker Switches,Compiling with gcc,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiler-switches}@anchor{e4}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gcc}@anchor{de}
  @section Compiler Switches
  
  
*************** compilation units.
*** 8535,8540 ****
--- 8530,8536 ----
  * Alphabetical List of All Switches:: 
  * Output and Error Message Control:: 
  * Warning Message Control:: 
+ * Info message Control:: 
  * Debugging and Assertion Control:: 
  * Validity Checking:: 
  * Style Checking:: 
*************** compilation units.
*** 8554,8560 ****
  @end menu
  
  @node Alphabetical List of All Switches,Output and Error Message Control,,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat alphabetical-list-of-all-switches}@anchor{e4}@anchor{gnat_ugn/building_executable_programs_with_gnat id13}@anchor{e5}
  @subsection Alphabetical List of All Switches
  
  
--- 8550,8556 ----
  @end menu
  
  @node Alphabetical List of All Switches,Output and Error Message Control,,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat alphabetical-list-of-all-switches}@anchor{e5}@anchor{gnat_ugn/building_executable_programs_with_gnat id13}@anchor{e6}
  @subsection Alphabetical List of All Switches
  
  
*************** and thus producing inferior code.
*** 8752,8758 ****
  
  Causes the compiler to avoid assumptions regarding non-aliasing
  of objects of different types. See
! @ref{e6,,Optimization and Strict Aliasing} for details.
  @end table
  
  @geindex -fno-strict-overflow (gcc)
--- 8748,8754 ----
  
  Causes the compiler to avoid assumptions regarding non-aliasing
  of objects of different types. See
! @ref{e7,,Optimization and Strict Aliasing} for details.
  @end table
  
  @geindex -fno-strict-overflow (gcc)
*************** for very peculiar cases of low-level pro
*** 8778,8784 ****
  @item @code{-fstack-check}
  
  Activates stack checking.
! See @ref{e7,,Stack Overflow Checking} for details.
  @end table
  
  @geindex -fstack-usage (gcc)
--- 8774,8780 ----
  @item @code{-fstack-check}
  
  Activates stack checking.
! See @ref{e8,,Stack Overflow Checking} for details.
  @end table
  
  @geindex -fstack-usage (gcc)
*************** See @ref{e7,,Stack Overflow Checking} fo
*** 8789,8795 ****
  @item @code{-fstack-usage}
  
  Makes the compiler output stack usage information for the program, on a
! per-subprogram basis. See @ref{e8,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -g (gcc)
--- 8785,8791 ----
  @item @code{-fstack-usage}
  
  Makes the compiler output stack usage information for the program, on a
! per-subprogram basis. See @ref{e9,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -g (gcc)
*************** Generate brief messages to @code{stderr}
*** 8929,8935 ****
  @item @code{-gnatB}
  
  Assume no invalid (bad) values except for ‘Valid attribute use
! (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnatc (gcc)
--- 8925,8931 ----
  @item @code{-gnatB}
  
  Assume no invalid (bad) values except for ‘Valid attribute use
! (@ref{ea,,Validity Checking}).
  @end table
  
  @geindex -gnatc (gcc)
*************** ALI files.
*** 9056,9062 ****
  
  Specify a configuration pragma file
  (the equal sign is optional)
! (@ref{63,,The Configuration Pragmas Files}).
  @end table
  
  @geindex -gnateC (gcc)
--- 9052,9058 ----
  
  Specify a configuration pragma file
  (the equal sign is optional)
! (@ref{64,,The Configuration Pragmas Files}).
  @end table
  
  @geindex -gnateC (gcc)
*************** Disable atomic synchronization
*** 9089,9095 ****
  @item @code{-gnateDsymbol[=`value']}
  
  Defines a symbol, associated with @code{value}, for preprocessing.
! (@ref{91,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateE (gcc)
--- 9085,9091 ----
  @item @code{-gnateDsymbol[=`value']}
  
  Defines a symbol, associated with @code{value}, for preprocessing.
! (@ref{92,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateE (gcc)
*************** for unconstrained predefined types. See
*** 9139,9145 ****
  
  The @code{-gnatc} switch must always be specified before this switch, e.g.
  @code{-gnatceg}. Generate a C header from the Ada input file. See
! @ref{b9,,Generating C Headers for Ada Specifications} for more
  information.
  @end quotation
  
--- 9135,9141 ----
  
  The @code{-gnatc} switch must always be specified before this switch, e.g.
  @code{-gnatceg}. Generate a C header from the Ada input file. See
! @ref{ba,,Generating C Headers for Ada Specifications} for more
  information.
  @end quotation
  
*************** This switch turns off the info messages
*** 9225,9231 ****
  
  Specify a mapping file
  (the equal sign is optional)
! (@ref{ea,,Units to Sources Mapping Files}).
  @end table
  
  @geindex -gnatep (gcc)
--- 9221,9227 ----
  
  Specify a mapping file
  (the equal sign is optional)
! (@ref{eb,,Units to Sources Mapping Files}).
  @end table
  
  @geindex -gnatep (gcc)
*************** Specify a mapping file
*** 9237,9243 ****
  
  Specify a preprocessing data file
  (the equal sign is optional)
! (@ref{91,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateP (gcc)
--- 9233,9239 ----
  
  Specify a preprocessing data file
  (the equal sign is optional)
! (@ref{92,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateP (gcc)
*************** compiler can choose by default for a 64-
*** 9336,9342 ****
  
  @code{Maximum_Alignment} is the maximum alignment that the compiler can choose
  by default for a type or object, which is also the maximum alignment that can
! be specified in GNAT. It is computed for GCC backends as @code{BIGGEST_ALIGNMENT
  / BITS_PER_UNIT} where GCC macro @code{BIGGEST_ALIGNMENT} is documented as
  follows: @cite{Biggest alignment that any data type can require on this machine@comma{} in bits.}
  
--- 9332,9338 ----
  
  @code{Maximum_Alignment} is the maximum alignment that the compiler can choose
  by default for a type or object, which is also the maximum alignment that can
! be specified in GNAT. It is computed for GCC back ends as @code{BIGGEST_ALIGNMENT
  / BITS_PER_UNIT} where GCC macro @code{BIGGEST_ALIGNMENT} is documented as
  follows: @cite{Biggest alignment that any data type can require on this machine@comma{} in bits.}
  
*************** support this switch.
*** 9437,9443 ****
  @item @code{-gnateV}
  
  Check that all actual parameters of a subprogram call are valid according to
! the rules of validity checking (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnateY (gcc)
--- 9433,9439 ----
  @item @code{-gnateV}
  
  Check that all actual parameters of a subprogram call are valid according to
! the rules of validity checking (@ref{ea,,Validity Checking}).
  @end table
  
  @geindex -gnateY (gcc)
*************** checking options to be controlled from t
*** 9461,9467 ****
  @item @code{-gnatE}
  
  Dynamic elaboration checking mode enabled. For further details see
! @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnatf (gcc)
--- 9457,9463 ----
  @item @code{-gnatE}
  
  Dynamic elaboration checking mode enabled. For further details see
! @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnatf (gcc)
*************** Output usage information. The output is
*** 9529,9535 ****
  
  Legacy elaboration-checking mode enabled. When this switch is in effect,
  the pre-18.x access-before-elaboration model becomes the de facto model.
! For further details see @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnati (gcc)
--- 9525,9531 ----
  
  Legacy elaboration-checking mode enabled. When this switch is in effect,
  the pre-18.x access-before-elaboration model becomes the de facto model.
! For further details see @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnati (gcc)
*************** For further details see @ref{f,,Elaborat
*** 9541,9547 ****
  
  Identifier character set (@code{c} = 1/2/3/4/5/9/p/8/f/n/w).
  For details of the possible selections for @code{c},
! see @ref{31,,Character Set Control}.
  @end table
  
  @geindex -gnatI (gcc)
--- 9537,9543 ----
  
  Identifier character set (@code{c} = 1/2/3/4/5/9/p/8/f/n/w).
  For details of the possible selections for @code{c},
! see @ref{32,,Character Set Control}.
  @end table
  
  @geindex -gnatI (gcc)
*************** Synchronous task suspension
*** 9623,9629 ****
  @end itemize
  
  and does not emit compile-time diagnostics or run-time checks. For further
! details see @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnatk (gcc)
--- 9619,9625 ----
  @end itemize
  
  and does not emit compile-time diagnostics or run-time checks. For further
! details see @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -gnatk (gcc)
*************** means that no limit applies.
*** 9683,9689 ****
  @item @code{-gnatn[12]}
  
  Activate inlining across units for subprograms for which pragma @code{Inline}
! is specified. This inlining is performed by the GCC back-end. An optional
  digit sets the inlining level: 1 for moderate inlining across units
  or 2 for full inlining across units. If no inlining level is specified,
  the compiler will pick it based on the optimization level.
--- 9679,9685 ----
  @item @code{-gnatn[12]}
  
  Activate inlining across units for subprograms for which pragma @code{Inline}
! is specified. This inlining is performed by the GCC back end. An optional
  digit sets the inlining level: 1 for moderate inlining across units
  or 2 for full inlining across units. If no inlining level is specified,
  the compiler will pick it based on the optimization level.
*************** overflow checking is enabled.
*** 9789,9795 ****
  Note that division by zero is a separate check that is not
  controlled by this switch (divide-by-zero checking is on by default).
  
! See also @ref{eb,,Specifying the Desired Mode}.
  @end table
  
  @geindex -gnatp (gcc)
--- 9785,9791 ----
  Note that division by zero is a separate check that is not
  controlled by this switch (divide-by-zero checking is on by default).
  
! See also @ref{ec,,Specifying the Desired Mode}.
  @end table
  
  @geindex -gnatp (gcc)
*************** See also @ref{eb,,Specifying the Desired
*** 9799,9805 ****
  
  @item @code{-gnatp}
  
! Suppress all checks. See @ref{ec,,Run-Time Checks} for details. This switch
  has no effect if cancelled by a subsequent @code{-gnat-p} switch.
  @end table
  
--- 9795,9801 ----
  
  @item @code{-gnatp}
  
! Suppress all checks. See @ref{ed,,Run-Time Checks} for details. This switch
  has no effect if cancelled by a subsequent @code{-gnat-p} switch.
  @end table
  
*************** Verbose mode. Full error output with sou
*** 9925,9931 ****
  
  @item @code{-gnatV}
  
! Control level of validity checking (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnatw (gcc)
--- 9921,9927 ----
  
  @item @code{-gnatV}
  
! Control level of validity checking (@ref{ea,,Validity Checking}).
  @end table
  
  @geindex -gnatw (gcc)
*************** Control level of validity checking (@ref
*** 9938,9944 ****
  Warning mode where
  @code{xxx} is a string of option letters that denotes
  the exact warnings that
! are enabled or disabled (@ref{ed,,Warning Message Control}).
  @end table
  
  @geindex -gnatW (gcc)
--- 9934,9940 ----
  Warning mode where
  @code{xxx} is a string of option letters that denotes
  the exact warnings that
! are enabled or disabled (@ref{ee,,Warning Message Control}).
  @end table
  
  @geindex -gnatW (gcc)
*************** Enable all GNAT implementation extension
*** 9989,9995 ****
  
  @item @code{-gnaty}
  
! Enable built-in style checks (@ref{ee,,Style Checking}).
  @end table
  
  @geindex -gnatz (gcc)
--- 9985,9991 ----
  
  @item @code{-gnaty}
  
! Enable built-in style checks (@ref{ef,,Style Checking}).
  @end table
  
  @geindex -gnatz (gcc)
*************** Distribution stub generation and compila
*** 10014,10020 ****
  
  Direct GNAT to search the @code{dir} directory for source files needed by
  the current compilation
! (see @ref{73,,Search Paths and the Run-Time Library (RTL)}).
  @end table
  
  @geindex -I- (gcc)
--- 10010,10016 ----
  
  Direct GNAT to search the @code{dir} directory for source files needed by
  the current compilation
! (see @ref{74,,Search Paths and the Run-Time Library (RTL)}).
  @end table
  
  @geindex -I- (gcc)
*************** the current compilation
*** 10028,10034 ****
  
  Except for the source file named in the command line, do not look for source
  files in the directory containing the source file named in the command line
! (see @ref{73,,Search Paths and the Run-Time Library (RTL)}).
  @end table
  
  @geindex -o (gcc)
--- 10024,10030 ----
  
  Except for the source file named in the command line, do not look for source
  files in the directory containing the source file named in the command line
! (see @ref{74,,Search Paths and the Run-Time Library (RTL)}).
  @end table
  
  @geindex -o (gcc)
*************** Optimize space usage
*** 10132,10138 ****
  @end multitable
  
  
! See also @ref{ef,,Optimization Levels}.
  @end table
  
  @geindex -pass-exit-codes (gcc)
--- 10128,10134 ----
  @end multitable
  
  
! See also @ref{f0,,Optimization Levels}.
  @end table
  
  @geindex -pass-exit-codes (gcc)
*************** exit status.
*** 10154,10160 ****
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -S (gcc)
--- 10150,10156 ----
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d1,,Switches for gnatmake}).
  @end table
  
  @geindex -S (gcc)
*************** as warning mode modifiers (see descripti
*** 10280,10286 ****
  @item 
  Once a ‘V’ appears in the string (that is a use of the @code{-gnatV}
  switch), then all further characters in the switch are interpreted
! as validity checking options (@ref{e9,,Validity Checking}).
  
  @item 
  Option ‘em’, ‘ec’, ‘ep’, ‘l=’ and ‘R’ must be the last options in
--- 10276,10282 ----
  @item 
  Once a ‘V’ appears in the string (that is a use of the @code{-gnatV}
  switch), then all further characters in the switch are interpreted
! as validity checking options (@ref{ea,,Validity Checking}).
  
  @item 
  Option ‘em’, ‘ec’, ‘ep’, ‘l=’ and ‘R’ must be the last options in
*************** a combined list of options.
*** 10288,10294 ****
  @end itemize
  
  @node Output and Error Message Control,Warning Message Control,Alphabetical List of All Switches,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id14}@anchor{f0}@anchor{gnat_ugn/building_executable_programs_with_gnat output-and-error-message-control}@anchor{f1}
  @subsection Output and Error Message Control
  
  
--- 10284,10290 ----
  @end itemize
  
  @node Output and Error Message Control,Warning Message Control,Alphabetical List of All Switches,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id14}@anchor{f1}@anchor{gnat_ugn/building_executable_programs_with_gnat output-and-error-message-control}@anchor{f2}
  @subsection Output and Error Message Control
  
  
*************** Note that @code{-gnatQ} has no effect if
*** 10582,10589 ****
  since ALI files are never generated if @code{-gnats} is set.
  @end table
  
! @node Warning Message Control,Debugging and Assertion Control,Output and Error Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id15}@anchor{f2}@anchor{gnat_ugn/building_executable_programs_with_gnat warning-message-control}@anchor{ed}
  @subsection Warning Message Control
  
  
--- 10578,10585 ----
  since ALI files are never generated if @code{-gnats} is set.
  @end table
  
! @node Warning Message Control,Info message Control,Output and Error Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id15}@anchor{f3}@anchor{gnat_ugn/building_executable_programs_with_gnat warning-message-control}@anchor{ee}
  @subsection Warning Message Control
  
  
*************** of the pragma @code{Restriction_Warnings
*** 11191,11197 ****
  `[warning-as-error]'
  Used to tag warning messages that have been converted to error messages by
  use of the pragma Warning_As_Error. Note that such warnings are prefixed by
! the string “error: ” rather than “warning: “.
  
  @item 
  `[enabled by default]'
--- 11187,11193 ----
  `[warning-as-error]'
  Used to tag warning messages that have been converted to error messages by
  use of the pragma Warning_As_Error. Note that such warnings are prefixed by
! the string “error: “ rather than “warning: “.
  
  @item 
  `[enabled by default]'
*************** This switch suppresses warnings for poss
*** 11648,11654 ****
  
  @item @code{-gnatw.l}
  
! `List inherited aspects.'
  
  This switch causes the compiler to list inherited invariants,
  preconditions, and postconditions from Type_Invariant’Class, Invariant’Class,
--- 11644,11650 ----
  
  @item @code{-gnatw.l}
  
! `List inherited aspects as info messages.'
  
  This switch causes the compiler to list inherited invariants,
  preconditions, and postconditions from Type_Invariant’Class, Invariant’Class,
*************** Pre’Class, and Post’Class aspects. A
*** 11662,11672 ****
  
  @item @code{-gnatw.L}
  
! `Suppress listing of inherited aspects.'
  
  This switch suppresses listing of inherited aspects.
  @end table
  
  @geindex -gnatwm (gcc)
  
  
--- 11658,11693 ----
  
  @item @code{-gnatw.L}
  
! `Suppress listing of inherited aspects as info messages.'
  
  This switch suppresses listing of inherited aspects.
  @end table
  
+ @geindex -gnatw_l (gcc)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnatw_l}
+ 
+ `Activate warnings on implicitly limited types.'
+ 
+ This switch causes the compiler trigger warnings on record types that do not
+ have a limited keyword but contain a component that is a limited type.
+ @end table
+ 
+ @geindex -gnatw_L (gcc)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnatw_L}
+ 
+ `Suppress warnings on implicitly limited types.'
+ 
+ This switch suppresses warnings on implicitly limited types.
+ @end table
+ 
  @geindex -gnatwm (gcc)
  
  
*************** use of @code{-gnatg}.
*** 11759,11765 ****
  
  `Activate warnings on atomic synchronization.'
  
! This switch actives warnings when an access to an atomic variable
  requires the generation of atomic synchronization code. These
  warnings are off by default.
  @end table
--- 11780,11786 ----
  
  `Activate warnings on atomic synchronization.'
  
! This switch activates warnings when an access to an atomic variable
  requires the generation of atomic synchronization code. These
  warnings are off by default.
  @end table
*************** This switch activates warnings for failu
*** 11862,11868 ****
  many reasons for not being able to inline a call, including most
  commonly that the call is too complex to inline. The default is
  that such warnings are not given.
! Warnings on ineffective inlining by the gcc back-end can be activated
  separately, using the gcc switch -Winline.
  @end table
  
--- 11883,11889 ----
  many reasons for not being able to inline a call, including most
  commonly that the call is too complex to inline. The default is
  that such warnings are not given.
! Warnings on ineffective inlining by the gcc back end can be activated
  separately, using the gcc switch -Winline.
  @end table
  
*************** may not be properly initialized.
*** 12462,12475 ****
  
  @item @code{-gnatw.v}
  
! `Activate info messages for non-default bit order.'
  
! This switch activates messages (labeled “info”, they are not warnings,
! just informational messages) about the effects of non-default bit-order
! on records to which a component clause is applied. The effect of specifying
! non-default bit ordering is a bit subtle (and changed with Ada 2005), so
! these messages, which are given by default, are useful in understanding the
! exact consequences of using this feature.
  @end table
  
  @geindex -gnatw.V (gcc)
--- 12483,12495 ----
  
  @item @code{-gnatw.v}
  
! `Activate warnings for non-default bit order.'
  
! This switch activates warning messages about the effects of non-default
! bit-order on records to which a component clause is applied. The effect of
! specifying non-default bit ordering is a bit subtle
! (and changed with Ada 2005), so these messages, which are given by default,
! are useful in understanding the exact consequences of using this feature.
  @end table
  
  @geindex -gnatw.V (gcc)
*************** exact consequences of using this feature
*** 12479,12487 ****
  
  @item @code{-gnatw.V}
  
! `Suppress info messages for non-default bit order.'
  
! This switch suppresses information messages for the effects of specifying
  non-default bit order on record components with component clauses.
  @end table
  
--- 12499,12507 ----
  
  @item @code{-gnatw.V}
  
! `Suppress warnings for non-default bit order.'
  
! This switch suppresses warnings for the effects of specifying
  non-default bit order on record components with component clauses.
  @end table
  
*************** used in conjunction with an optimization
*** 12787,12793 ****
  @item @code{-Wstack-usage=`len'}
  
  Warn if the stack usage of a subprogram might be larger than @code{len} bytes.
! See @ref{e8,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -Wall (gcc)
--- 12807,12813 ----
  @item @code{-Wstack-usage=`len'}
  
  Warn if the stack usage of a subprogram might be larger than @code{len} bytes.
! See @ref{e9,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -Wall (gcc)
*************** When no switch @code{-gnatw} is used, th
*** 12987,12994 ****
  @end itemize
  @end quotation
  
! @node Debugging and Assertion Control,Validity Checking,Warning Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-and-assertion-control}@anchor{f3}@anchor{gnat_ugn/building_executable_programs_with_gnat id16}@anchor{f4}
  @subsection Debugging and Assertion Control
  
  
--- 13007,13034 ----
  @end itemize
  @end quotation
  
! @node Info message Control,Debugging and Assertion Control,Warning Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-and-assertion-control}@anchor{f4}@anchor{gnat_ugn/building_executable_programs_with_gnat info-message-control}@anchor{f5}
! @subsection Info message Control
! 
! 
! In addition to the warning messages, the compiler can also generate info
! messages. In order to control the generation of these messages, the following
! switch is provided:
! 
! 
! @table @asis
! 
! @item @code{-gnatis}
! 
! `Suppress all info messages.'
! 
! This switch completely suppresses the output of all info messages from the
! GNAT front end.
! @end table
! 
! @node Debugging and Assertion Control,Validity Checking,Info message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id16}@anchor{f6}
  @subsection Debugging and Assertion Control
  
  
*************** is @code{False}, the exception @code{Ass
*** 13093,13099 ****
  @end table
  
  @node Validity Checking,Style Checking,Debugging and Assertion Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id17}@anchor{f5}@anchor{gnat_ugn/building_executable_programs_with_gnat validity-checking}@anchor{e9}
  @subsection Validity Checking
  
  
--- 13133,13139 ----
  @end table
  
  @node Validity Checking,Style Checking,Debugging and Assertion Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id17}@anchor{f7}@anchor{gnat_ugn/building_executable_programs_with_gnat validity-checking}@anchor{ea}
  @subsection Validity Checking
  
  
*************** the validity checking mode at the progra
*** 13391,13397 ****
  temporary disabling of validity checks.
  
  @node Style Checking,Run-Time Checks,Validity Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id18}@anchor{f6}@anchor{gnat_ugn/building_executable_programs_with_gnat style-checking}@anchor{ee}
  @subsection Style Checking
  
  
--- 13431,13437 ----
  temporary disabling of validity checks.
  
  @node Style Checking,Run-Time Checks,Validity Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id18}@anchor{f8}@anchor{gnat_ugn/building_executable_programs_with_gnat style-checking}@anchor{ef}
  @subsection Style Checking
  
  
*************** in the string after @code{-gnaty}
*** 13433,13439 ****
  then proper indentation is checked, with the digit indicating the
  indentation level required. A value of zero turns off this style check.
  The rule checks that the following constructs start on a column that is
! a multiple of the alignment level:
  
  
  @itemize *
--- 13473,13479 ----
  then proper indentation is checked, with the digit indicating the
  indentation level required. A value of zero turns off this style check.
  The rule checks that the following constructs start on a column that is
! one plus a multiple of the alignment level:
  
  
  @itemize *
*************** or body or that completes a compound sta
*** 13451,13460 ****
  @end itemize
  
  Full line comments must be
! aligned with the @code{--} starting on a column that is a multiple of
  the alignment level, or they may be aligned the same way as the following
  non-blank line (this is useful when full line comments appear in the middle
! of a statement, or they may be aligned with the source line on the previous
  non-blank line.
  @end table
  
--- 13491,13500 ----
  @end itemize
  
  Full line comments must be
! aligned with the @code{--} starting on a column that is one plus a multiple of
  the alignment level, or they may be aligned the same way as the following
  non-blank line (this is useful when full line comments appear in the middle
! of a statement), or they may be aligned with the source line on the previous
  non-blank line.
  @end table
  
*************** built-in standard style check options ar
*** 14144,14150 ****
  The switch @code{-gnatyN} clears any previously set style checks.
  
  @node Run-Time Checks,Using gcc for Syntax Checking,Style Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id19}@anchor{f7}@anchor{gnat_ugn/building_executable_programs_with_gnat run-time-checks}@anchor{ec}
  @subsection Run-Time Checks
  
  
--- 14184,14190 ----
  The switch @code{-gnatyN} clears any previously set style checks.
  
  @node Run-Time Checks,Using gcc for Syntax Checking,Style Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id19}@anchor{f9}@anchor{gnat_ugn/building_executable_programs_with_gnat run-time-checks}@anchor{ed}
  @subsection Run-Time Checks
  
  
*************** the condition being checked is true, whi
*** 14210,14219 ****
  execution if that assumption is wrong.
  
  The checks subject to suppression include all the checks defined by the Ada
! standard, the additional implementation defined checks @code{Alignment_Check},
! @code{Duplicated_Tag_Check}, @code{Predicate_Check}, @code{Container_Checks}, @code{Tampering_Check},
! and @code{Validity_Check}, as well as any checks introduced using @code{pragma Check_Name}.
! Note that @code{Atomic_Synchronization} is not automatically suppressed by use of this option.
  
  If the code depends on certain checks being active, you can use
  pragma @code{Unsuppress} either as a configuration pragma or as
--- 14250,14257 ----
  execution if that assumption is wrong.
  
  The checks subject to suppression include all the checks defined by the Ada
! standard, as well as all implementation-defined checks,
! including any checks introduced using @code{pragma Check_Name}.
  
  If the code depends on certain checks being active, you can use
  pragma @code{Unsuppress} either as a configuration pragma or as
*************** on subprogram calls and generic instanti
*** 14338,14344 ****
  Note that @code{-gnatE} is not necessary for safety, because in the
  default mode, GNAT ensures statically that the checks would not fail.
  For full details of the effect and use of this switch,
! @ref{c9,,Compiling with gcc}.
  @end table
  
  @geindex -fstack-check (gcc)
--- 14376,14382 ----
  Note that @code{-gnatE} is not necessary for safety, because in the
  default mode, GNAT ensures statically that the checks would not fail.
  For full details of the effect and use of this switch,
! @ref{ca,,Compiling with gcc}.
  @end table
  
  @geindex -fstack-check (gcc)
*************** For full details of the effect and use o
*** 14354,14360 ****
  @item @code{-fstack-check}
  
  Activates stack overflow checking. For full details of the effect and use of
! this switch see @ref{e7,,Stack Overflow Checking}.
  @end table
  
  @geindex Unsuppress
--- 14392,14398 ----
  @item @code{-fstack-check}
  
  Activates stack overflow checking. For full details of the effect and use of
! this switch see @ref{e8,,Stack Overflow Checking}.
  @end table
  
  @geindex Unsuppress
*************** checks) or @code{Unsuppress} (to add bac
*** 14365,14371 ****
  the program source.
  
  @node Using gcc for Syntax Checking,Using gcc for Semantic Checking,Run-Time Checks,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id20}@anchor{f8}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-syntax-checking}@anchor{f9}
  @subsection Using @code{gcc} for Syntax Checking
  
  
--- 14403,14409 ----
  the program source.
  
  @node Using gcc for Syntax Checking,Using gcc for Semantic Checking,Run-Time Checks,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id20}@anchor{fa}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-syntax-checking}@anchor{fb}
  @subsection Using @code{gcc} for Syntax Checking
  
  
*************** Normally, GNAT allows only a single unit
*** 14418,14428 ****
  restriction does not apply in syntax-check-only mode, and it is possible
  to check a file containing multiple compilation units concatenated
  together. This is primarily used by the @code{gnatchop} utility
! (@ref{1d,,Renaming Files with gnatchop}).
  @end table
  
  @node Using gcc for Semantic Checking,Compiling Different Versions of Ada,Using gcc for Syntax Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id21}@anchor{fa}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-semantic-checking}@anchor{fb}
  @subsection Using @code{gcc} for Semantic Checking
  
  
--- 14456,14466 ----
  restriction does not apply in syntax-check-only mode, and it is possible
  to check a file containing multiple compilation units concatenated
  together. This is primarily used by the @code{gnatchop} utility
! (@ref{1e,,Renaming Files with gnatchop}).
  @end table
  
  @node Using gcc for Semantic Checking,Compiling Different Versions of Ada,Using gcc for Syntax Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id21}@anchor{fc}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-semantic-checking}@anchor{fd}
  @subsection Using @code{gcc} for Semantic Checking
  
  
*************** semantic restrictions on file structurin
*** 14447,14459 ****
  
  @item 
  The needed source files must be accessible
! (see @ref{73,,Search Paths and the Run-Time Library (RTL)}).
  
  @item 
  Each file must contain only one compilation unit.
  
  @item 
! The file name and unit name must match (@ref{3b,,File Naming Rules}).
  @end itemize
  
  The output consists of error messages as appropriate. No object file is
--- 14485,14497 ----
  
  @item 
  The needed source files must be accessible
! (see @ref{74,,Search Paths and the Run-Time Library (RTL)}).
  
  @item 
  Each file must contain only one compilation unit.
  
  @item 
! The file name and unit name must match (@ref{3c,,File Naming Rules}).
  @end itemize
  
  The output consists of error messages as appropriate. No object file is
*************** and specifications where a separate body
*** 14469,14475 ****
  @end table
  
  @node Compiling Different Versions of Ada,Character Set Control,Using gcc for Semantic Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-different-versions-of-ada}@anchor{6}@anchor{gnat_ugn/building_executable_programs_with_gnat id22}@anchor{fc}
  @subsection Compiling Different Versions of Ada
  
  
--- 14507,14513 ----
  @end table
  
  @node Compiling Different Versions of Ada,Character Set Control,Using gcc for Semantic Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-different-versions-of-ada}@anchor{6}@anchor{gnat_ugn/building_executable_programs_with_gnat id22}@anchor{fe}
  @subsection Compiling Different Versions of Ada
  
  
*************** extensions enabled by this switch, see t
*** 14634,14640 ****
  @end table
  
  @node Character Set Control,File Naming Control,Compiling Different Versions of Ada,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat character-set-control}@anchor{31}@anchor{gnat_ugn/building_executable_programs_with_gnat id23}@anchor{fd}
  @subsection Character Set Control
  
  
--- 14672,14678 ----
  @end table
  
  @node Character Set Control,File Naming Control,Compiling Different Versions of Ada,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat character-set-control}@anchor{32}@anchor{gnat_ugn/building_executable_programs_with_gnat id23}@anchor{ff}
  @subsection Character Set Control
  
  
*************** allowed in identifiers
*** 14745,14751 ****
  @end multitable
  
  
! See @ref{23,,Foreign Language Representation} for full details on the
  implementation of these character sets.
  @end table
  
--- 14783,14789 ----
  @end multitable
  
  
! See @ref{24,,Foreign Language Representation} for full details on the
  implementation of these character sets.
  @end table
  
*************** Brackets encoding only (default value)
*** 14813,14819 ****
  
  
  For full details on these encoding
! methods see @ref{37,,Wide_Character Encodings}.
  Note that brackets coding is always accepted, even if one of the other
  options is specified, so for example @code{-gnatW8} specifies that both
  brackets and UTF-8 encodings will be recognized. The units that are
--- 14851,14857 ----
  
  
  For full details on these encoding
! methods see @ref{38,,Wide_Character Encodings}.
  Note that brackets coding is always accepted, even if one of the other
  options is specified, so for example @code{-gnatW8} specifies that both
  brackets and UTF-8 encodings will be recognized. The units that are
*************** comments are ended by an appropriate (CR
*** 14861,14867 ****
  This is a common mode for many programs with foreign language comments.
  
  @node File Naming Control,Subprogram Inlining Control,Character Set Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat file-naming-control}@anchor{fe}@anchor{gnat_ugn/building_executable_programs_with_gnat id24}@anchor{ff}
  @subsection File Naming Control
  
  
--- 14899,14905 ----
  This is a common mode for many programs with foreign language comments.
  
  @node File Naming Control,Subprogram Inlining Control,Character Set Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat file-naming-control}@anchor{100}@anchor{gnat_ugn/building_executable_programs_with_gnat id24}@anchor{101}
  @subsection File Naming Control
  
  
*************** Activates file name ‘krunching’. @co
*** 14877,14887 ****
  including the @code{.ads} or @code{.adb} extension). The default is not
  to enable file name krunching.
  
! For the source file naming rules, @ref{3b,,File Naming Rules}.
  @end table
  
  @node Subprogram Inlining Control,Auxiliary Output Control,File Naming Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id25}@anchor{100}@anchor{gnat_ugn/building_executable_programs_with_gnat subprogram-inlining-control}@anchor{101}
  @subsection Subprogram Inlining Control
  
  
--- 14915,14925 ----
  including the @code{.ads} or @code{.adb} extension). The default is not
  to enable file name krunching.
  
! For the source file naming rules, @ref{3c,,File Naming Rules}.
  @end table
  
  @node Subprogram Inlining Control,Auxiliary Output Control,File Naming Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id25}@anchor{102}@anchor{gnat_ugn/building_executable_programs_with_gnat subprogram-inlining-control}@anchor{103}
  @subsection Subprogram Inlining Control
  
  
*************** If you specify this switch the compiler
*** 14914,14920 ****
  creating an extra source dependency for the resulting object file, and
  where possible, the call will be inlined.
  For further details on when inlining is possible
! see @ref{102,,Inlining of Subprograms}.
  @end table
  
  @geindex -gnatN (gcc)
--- 14952,14958 ----
  creating an extra source dependency for the resulting object file, and
  where possible, the call will be inlined.
  For further details on when inlining is possible
! see @ref{104,,Inlining of Subprograms}.
  @end table
  
  @geindex -gnatN (gcc)
*************** inlining, but that is no longer the case
*** 14934,14940 ****
  @end table
  
  @node Auxiliary Output Control,Debugging Control,Subprogram Inlining Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat auxiliary-output-control}@anchor{103}@anchor{gnat_ugn/building_executable_programs_with_gnat id26}@anchor{104}
  @subsection Auxiliary Output Control
  
  
--- 14972,14978 ----
  @end table
  
  @node Auxiliary Output Control,Debugging Control,Subprogram Inlining Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat auxiliary-output-control}@anchor{105}@anchor{gnat_ugn/building_executable_programs_with_gnat id26}@anchor{106}
  @subsection Auxiliary Output Control
  
  
*************** An object file has been generated for ev
*** 15004,15010 ****
  @end table
  
  @node Debugging Control,Exception Handling Control,Auxiliary Output Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-control}@anchor{105}@anchor{gnat_ugn/building_executable_programs_with_gnat id27}@anchor{106}
  @subsection Debugging Control
  
  
--- 15042,15048 ----
  @end table
  
  @node Debugging Control,Exception Handling Control,Auxiliary Output Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-control}@anchor{107}@anchor{gnat_ugn/building_executable_programs_with_gnat id27}@anchor{108}
  @subsection Debugging Control
  
  
*************** encodings for the rest.
*** 15353,15359 ****
  @end table
  
  @node Exception Handling Control,Units to Sources Mapping Files,Debugging Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat exception-handling-control}@anchor{107}@anchor{gnat_ugn/building_executable_programs_with_gnat id28}@anchor{108}
  @subsection Exception Handling Control
  
  
--- 15391,15397 ----
  @end table
  
  @node Exception Handling Control,Units to Sources Mapping Files,Debugging Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat exception-handling-control}@anchor{109}@anchor{gnat_ugn/building_executable_programs_with_gnat id28}@anchor{10a}
  @subsection Exception Handling Control
  
  
*************** is available for the target in use, othe
*** 15421,15431 ****
  
  The same option @code{--RTS} must be used both for @code{gcc}
  and @code{gnatbind}. Passing this option to @code{gnatmake}
! (@ref{d0,,Switches for gnatmake}) will ensure the required consistency
  through the compilation and binding steps.
  
  @node Units to Sources Mapping Files,Code Generation Control,Exception Handling Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id29}@anchor{109}@anchor{gnat_ugn/building_executable_programs_with_gnat units-to-sources-mapping-files}@anchor{ea}
  @subsection Units to Sources Mapping Files
  
  
--- 15459,15469 ----
  
  The same option @code{--RTS} must be used both for @code{gcc}
  and @code{gnatbind}. Passing this option to @code{gnatmake}
! (@ref{d1,,Switches for gnatmake}) will ensure the required consistency
  through the compilation and binding steps.
  
  @node Units to Sources Mapping Files,Code Generation Control,Exception Handling Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id29}@anchor{10b}@anchor{gnat_ugn/building_executable_programs_with_gnat units-to-sources-mapping-files}@anchor{eb}
  @subsection Units to Sources Mapping Files
  
  
*************** mapping file and communicates it to the
*** 15477,15483 ****
  @end table
  
  @node Code Generation Control,,Units to Sources Mapping Files,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat code-generation-control}@anchor{10a}@anchor{gnat_ugn/building_executable_programs_with_gnat id30}@anchor{10b}
  @subsection Code Generation Control
  
  
--- 15515,15521 ----
  @end table
  
  @node Code Generation Control,,Units to Sources Mapping Files,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat code-generation-control}@anchor{10c}@anchor{gnat_ugn/building_executable_programs_with_gnat id30}@anchor{10d}
  @subsection Code Generation Control
  
  
*************** there is no point in using @code{-m} swi
*** 15506,15512 ****
  unless you actually see a performance improvement.
  
  @node Linker Switches,Binding with gnatbind,Compiler Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{10c}@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{10d}
  @section Linker Switches
  
  
--- 15544,15550 ----
  unless you actually see a performance improvement.
  
  @node Linker Switches,Binding with gnatbind,Compiler Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{10e}@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{10f}
  @section Linker Switches
  
  
*************** platforms.
*** 15526,15532 ****
  @end table
  
  @node Binding with gnatbind,Linking with gnatlink,Linker Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{ca}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{10e}
  @section Binding with @code{gnatbind}
  
  
--- 15564,15570 ----
  @end table
  
  @node Binding with gnatbind,Linking with gnatlink,Linker Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{cb}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{110}
  @section Binding with @code{gnatbind}
  
  
*************** to be read by the @code{gnatlink} utilit
*** 15577,15583 ****
  @end menu
  
  @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{10f}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{110}
  @subsection Running @code{gnatbind}
  
  
--- 15615,15621 ----
  @end menu
  
  @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{111}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{112}
  @subsection Running @code{gnatbind}
  
  
*************** error: "p.ads" has been modified and mus
*** 15652,15658 ****
  Now both files must be recompiled as indicated, and then the bind can
  succeed, generating a main program. You need not normally be concerned
  with the contents of this file, but for reference purposes a sample
! binder output file is given in @ref{e,,Example of Binder Output File}.
  
  In most normal usage, the default mode of @code{gnatbind} which is to
  generate the main package in Ada, as described in the previous section.
--- 15690,15696 ----
  Now both files must be recompiled as indicated, and then the bind can
  succeed, generating a main program. You need not normally be concerned
  with the contents of this file, but for reference purposes a sample
! binder output file is given in @ref{f,,Example of Binder Output File}.
  
  In most normal usage, the default mode of @code{gnatbind} which is to
  generate the main package in Ada, as described in the previous section.
*************** Ada code provided the @code{-g} switch i
*** 15662,15668 ****
  @code{gnatbind} and @code{gnatlink}.
  
  @node Switches for gnatbind,Command-Line Access,Running gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{111}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{112}
  @subsection Switches for @code{gnatbind}
  
  
--- 15700,15706 ----
  @code{gnatbind} and @code{gnatlink}.
  
  @node Switches for gnatbind,Command-Line Access,Running gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{113}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{114}
  @subsection Switches for @code{gnatbind}
  
  
*************** Currently the same as @code{-Ea}.
*** 15857,15864 ****
  
  @item @code{-f`elab-order'}
  
! Force elaboration order. For further details see @ref{113,,Elaboration Control}
! and @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -F (gnatbind)
--- 15895,15902 ----
  
  @item @code{-f`elab-order'}
  
! Force elaboration order. For further details see @ref{115,,Elaboration Control}
! and @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -F (gnatbind)
*************** Output usage (help) information.
*** 15895,15901 ****
  @item @code{-H}
  
  Legacy elaboration order model enabled. For further details see
! @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -H32 (gnatbind)
--- 15933,15939 ----
  @item @code{-H}
  
  Legacy elaboration order model enabled. For further details see
! @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
  @geindex -H32 (gnatbind)
*************** Legacy elaboration order model enabled.
*** 15906,15912 ****
  @item @code{-H32}
  
  Use 32-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{114,,Dynamic Allocation Control}.
  @end table
  
  @geindex -H64 (gnatbind)
--- 15944,15950 ----
  @item @code{-H32}
  
  Use 32-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{116,,Dynamic Allocation Control}.
  @end table
  
  @geindex -H64 (gnatbind)
*************** For further details see @ref{114,,Dynami
*** 15919,15925 ****
  @item @code{-H64}
  
  Use 64-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{114,,Dynamic Allocation Control}.
  
  @geindex -I (gnatbind)
  
--- 15957,15963 ----
  @item @code{-H64}
  
  Use 64-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{116,,Dynamic Allocation Control}.
  
  @geindex -I (gnatbind)
  
*************** Output chosen elaboration order.
*** 15962,15972 ****
  @item @code{-L`xxx'}
  
  Bind the units for library building. In this case the @code{adainit} and
! @code{adafinal} procedures (@ref{7e,,Binding with Non-Ada Main Programs})
  are renamed to @code{@var{xxx}init} and
  @code{@var{xxx}final}.
  Implies -n.
! (@ref{2a,,GNAT and Libraries}, for more details.)
  
  @geindex -M (gnatbind)
  
--- 16000,16010 ----
  @item @code{-L`xxx'}
  
  Bind the units for library building. In this case the @code{adainit} and
! @code{adafinal} procedures (@ref{7f,,Binding with Non-Ada Main Programs})
  are renamed to @code{@var{xxx}init} and
  @code{@var{xxx}final}.
  Implies -n.
! (@ref{2b,,GNAT and Libraries}, for more details.)
  
  @geindex -M (gnatbind)
  
*************** Do not look for library files in the sys
*** 16033,16045 ****
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  
  @geindex -o (gnatbind)
  
  @item @code{-o `file'}
  
! Name the output file @code{file} (default is @code{b~`xxx}.adb`).
  Note that if this option is used, then linking must be done manually,
  gnatlink cannot be used.
  
--- 16071,16083 ----
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d1,,Switches for gnatmake}).
  
  @geindex -o (gnatbind)
  
  @item @code{-o `file'}
  
! Name the output file @code{file} (default is @code{b~`xxx'.adb}).
  Note that if this option is used, then linking must be done manually,
  gnatlink cannot be used.
  
*************** Enable dynamic stack usage, with @code{n
*** 16208,16214 ****
  at program termination. A result is generated when a task
  terminates. Results that can’t be stored are displayed on the fly, at
  task termination. This option is currently not supported on Itanium
! platforms. (See @ref{115,,Dynamic Stack Usage Analysis} for details.)
  
  @geindex -v (gnatbind)
  
--- 16246,16252 ----
  at program termination. A result is generated when a task
  terminates. Results that can’t be stored are displayed on the fly, at
  task termination. This option is currently not supported on Itanium
! platforms. (See @ref{117,,Dynamic Stack Usage Analysis} for details.)
  
  @geindex -v (gnatbind)
  
*************** no arguments.
*** 16288,16294 ****
  @end menu
  
  @node Consistency-Checking Modes,Binder Error Message Control,,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{116}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{117}
  @subsubsection Consistency-Checking Modes
  
  
--- 16326,16332 ----
  @end menu
  
  @node Consistency-Checking Modes,Binder Error Message Control,,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{118}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{119}
  @subsubsection Consistency-Checking Modes
  
  
*************** case the checking against sources has al
*** 16342,16348 ****
  @end table
  
  @node Binder Error Message Control,Elaboration Control,Consistency-Checking Modes,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{118}@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{119}
  @subsubsection Binder Error Message Control
  
  
--- 16380,16386 ----
  @end table
  
  @node Binder Error Message Control,Elaboration Control,Consistency-Checking Modes,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{11a}@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{11b}
  @subsubsection Binder Error Message Control
  
  
*************** with extreme care.
*** 16452,16463 ****
  @end table
  
  @node Elaboration Control,Output Control,Binder Error Message Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{113}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{11a}
  @subsubsection Elaboration Control
  
  
  The following switches provide additional control over the elaboration
! order. For further details see @ref{f,,Elaboration Order Handling in GNAT}.
  
  @geindex -f (gnatbind)
  
--- 16490,16501 ----
  @end table
  
  @node Elaboration Control,Output Control,Binder Error Message Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{115}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{11c}
  @subsubsection Elaboration Control
  
  
  The following switches provide additional control over the elaboration
! order. For further details see @ref{10,,Elaboration Order Handling in GNAT}.
  
  @geindex -f (gnatbind)
  
*************** debugging/experimental use.
*** 16537,16543 ****
  @end table
  
  @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{11b}@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{11c}
  @subsubsection Output Control
  
  
--- 16575,16581 ----
  @end table
  
  @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{11d}@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{11e}
  @subsubsection Output Control
  
  
*************** be used to improve code generation in so
*** 16618,16624 ****
  @end table
  
  @node Dynamic Allocation Control,Binding with Non-Ada Main Programs,Output Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{114}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{11d}
  @subsubsection Dynamic Allocation Control
  
  
--- 16656,16662 ----
  @end table
  
  @node Dynamic Allocation Control,Binding with Non-Ada Main Programs,Output Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{116}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{11f}
  @subsubsection Dynamic Allocation Control
  
  
*************** unless explicitly overridden by a @code{
*** 16644,16650 ****
  These switches are only effective on VMS platforms.
  
  @node Binding with Non-Ada Main Programs,Binding Programs with No Main Subprogram,Dynamic Allocation Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{7e}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{11e}
  @subsubsection Binding with Non-Ada Main Programs
  
  
--- 16682,16688 ----
  These switches are only effective on VMS platforms.
  
  @node Binding with Non-Ada Main Programs,Binding Programs with No Main Subprogram,Dynamic Allocation Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{7f}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{120}
  @subsubsection Binding with Non-Ada Main Programs
  
  
*************** program is in Ada, and that the task of
*** 16653,16659 ****
  corresponding function @code{main} that invokes this Ada main
  program. GNAT also supports the building of executable programs where
  the main program is not in Ada, but some of the called routines are
! written in Ada and compiled using GNAT (@ref{2c,,Mixed Language Programming}).
  The following switch is used in this situation:
  
  @quotation
--- 16691,16697 ----
  corresponding function @code{main} that invokes this Ada main
  program. GNAT also supports the building of executable programs where
  the main program is not in Ada, but some of the called routines are
! written in Ada and compiled using GNAT (@ref{2d,,Mixed Language Programming}).
  The following switch is used in this situation:
  
  @quotation
*************** side effect is that this could be the wr
*** 16740,16746 ****
  where floating point computation could be broken after this call.
  
  @node Binding Programs with No Main Subprogram,,Binding with Non-Ada Main Programs,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{11f}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{120}
  @subsubsection Binding Programs with No Main Subprogram
  
  
--- 16778,16784 ----
  where floating point computation could be broken after this call.
  
  @node Binding Programs with No Main Subprogram,,Binding with Non-Ada Main Programs,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{121}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{122}
  @subsubsection Binding Programs with No Main Subprogram
  
  
*************** the binder switch
*** 16771,16777 ****
  @end table
  
  @node Command-Line Access,Search Paths for gnatbind,Switches for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{121}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{122}
  @subsection Command-Line Access
  
  
--- 16809,16815 ----
  @end table
  
  @node Command-Line Access,Search Paths for gnatbind,Switches for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{123}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{124}
  @subsection Command-Line Access
  
  
*************** required, your main program must set @co
*** 16801,16807 ****
  it.
  
  @node Search Paths for gnatbind,Examples of gnatbind Usage,Command-Line Access,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{123}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{76}
  @subsection Search Paths for @code{gnatbind}
  
  
--- 16839,16845 ----
  it.
  
  @node Search Paths for gnatbind,Examples of gnatbind Usage,Command-Line Access,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{125}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{77}
  @subsection Search Paths for @code{gnatbind}
  
  
*************** The binder takes the name of an ALI file
*** 16809,16815 ****
  locate source files as well as other ALI files to verify object consistency.
  
  For source files, it follows exactly the same search rules as @code{gcc}
! (see @ref{73,,Search Paths and the Run-Time Library (RTL)}). For ALI files the
  directories searched are:
  
  
--- 16847,16853 ----
  locate source files as well as other ALI files to verify object consistency.
  
  For source files, it follows exactly the same search rules as @code{gcc}
! (see @ref{74,,Search Paths and the Run-Time Library (RTL)}). For ALI files the
  directories searched are:
  
  
*************** of GNAT).
*** 16858,16864 ****
  The content of the @code{ada_object_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run-Time Library (RTL) unless the switch @code{-nostdlib} is
! specified. See @ref{72,,Installing a library}
  @end itemize
  
  @geindex -I (gnatbind)
--- 16896,16902 ----
  The content of the @code{ada_object_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run-Time Library (RTL) unless the switch @code{-nostdlib} is
! specified. See @ref{73,,Installing a library}
  @end itemize
  
  @geindex -I (gnatbind)
*************** in compiling sources from multiple direc
*** 16905,16911 ****
  development environments much more flexible.
  
  @node Examples of gnatbind Usage,,Search Paths for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{124}@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{125}
  @subsection Examples of @code{gnatbind} Usage
  
  
--- 16943,16949 ----
  development environments much more flexible.
  
  @node Examples of gnatbind Usage,,Search Paths for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{126}@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{127}
  @subsection Examples of @code{gnatbind} Usage
  
  
*************** since gnatlink will not be able to find
*** 16934,16940 ****
  @end quotation
  
  @node Linking with gnatlink,Using the GNU make Utility,Binding with gnatbind,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{126}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{cb}
  @section Linking with @code{gnatlink}
  
  
--- 16972,16978 ----
  @end quotation
  
  @node Linking with gnatlink,Using the GNU make Utility,Binding with gnatbind,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{128}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{cc}
  @section Linking with @code{gnatlink}
  
  
*************** generated by the @code{gnatbind} to dete
*** 16955,16961 ****
  @end menu
  
  @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{127}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{128}
  @subsection Running @code{gnatlink}
  
  
--- 16993,16999 ----
  @end menu
  
  @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{129}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{12a}
  @subsection Running @code{gnatlink}
  
  
*************** $ gnatlink my_prog -Wl,-Map,MAPFILE
*** 17014,17021 ****
  
  Using @code{linker options} it is possible to set the program stack and
  heap size.
! See @ref{129,,Setting Stack Size from gnatlink} and
! @ref{12a,,Setting Heap Size from gnatlink}.
  
  @code{gnatlink} determines the list of objects required by the Ada
  program and prepends them to the list of objects passed to the linker.
--- 17052,17059 ----
  
  Using @code{linker options} it is possible to set the program stack and
  heap size.
! See @ref{12b,,Setting Stack Size from gnatlink} and
! @ref{12c,,Setting Heap Size from gnatlink}.
  
  @code{gnatlink} determines the list of objects required by the Ada
  program and prepends them to the list of objects passed to the linker.
*************** program and prepends them to the list of
*** 17024,17030 ****
  presented to the linker.
  
  @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{12b}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{12c}
  @subsection Switches for @code{gnatlink}
  
  
--- 17062,17068 ----
  presented to the linker.
  
  @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{12d}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{12e}
  @subsection Switches for @code{gnatlink}
  
  
*************** inserted after your command name. Thus i
*** 17188,17194 ****
  command that will be used by @code{gnatlink} will be @code{foo -c -x -y}.
  A limitation of this syntax is that the name and path name of the executable
  itself must not include any embedded spaces. If the compiler executable is
! different from the default one (gcc or <prefix>-gcc), then the back-end
  switches in the ALI file are not used to compile the binder generated source.
  For example, this is the case with @code{--GCC="foo -x -y"}. But the back end
  switches will be used for @code{--GCC="gcc -gnatv"}. If several
--- 17226,17232 ----
  command that will be used by @code{gnatlink} will be @code{foo -c -x -y}.
  A limitation of this syntax is that the name and path name of the executable
  itself must not include any embedded spaces. If the compiler executable is
! different from the default one (gcc or <prefix>-gcc), then the back end
  switches in the ALI file are not used to compile the binder generated source.
  For example, this is the case with @code{--GCC="foo -x -y"}. But the back end
  switches will be used for @code{--GCC="gcc -gnatv"}. If several
*************** may be useful to control the exact invoc
*** 17218,17225 ****
  switch.
  @end table
  
! @node Using the GNU make Utility,,Linking with gnatlink,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{12d}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{70}
  @section Using the GNU @code{make} Utility
  
  
--- 17256,17263 ----
  switch.
  @end table
  
! @node Using the GNU make Utility,GNAT with the LLVM Back End,Linking with gnatlink,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{12f}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{71}
  @section Using the GNU @code{make} Utility
  
  
*************** switch.
*** 17228,17234 ****
  
  This chapter offers some examples of makefiles that solve specific
  problems. It does not explain how to write a makefile, nor does it try to replace the
! @code{gnatmake} utility (@ref{c8,,Building with gnatmake}).
  
  All the examples in this section are specific to the GNU version of
  make. Although @code{make} is a standard utility, and the basic language
--- 17266,17272 ----
  
  This chapter offers some examples of makefiles that solve specific
  problems. It does not explain how to write a makefile, nor does it try to replace the
! @code{gnatmake} utility (@ref{c9,,Building with gnatmake}).
  
  All the examples in this section are specific to the GNU version of
  make. Although @code{make} is a standard utility, and the basic language
*************** is the same, these examples use some adv
*** 17244,17250 ****
  @end menu
  
  @node Using gnatmake in a Makefile,Automatically Creating a List of Directories,,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{12e}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{12f}
  @subsection Using gnatmake in a Makefile
  
  
--- 17282,17288 ----
  @end menu
  
  @node Using gnatmake in a Makefile,Automatically Creating a List of Directories,,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{130}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{131}
  @subsection Using gnatmake in a Makefile
  
  
*************** the appropriate directories.
*** 17263,17269 ****
  
  Note that you should also read the example on how to automatically
  create the list of directories
! (@ref{130,,Automatically Creating a List of Directories})
  which might help you in case your project has a lot of subdirectories.
  
  @example
--- 17301,17307 ----
  
  Note that you should also read the example on how to automatically
  create the list of directories
! (@ref{132,,Automatically Creating a List of Directories})
  which might help you in case your project has a lot of subdirectories.
  
  @example
*************** clean::
*** 17343,17349 ****
  @end example
  
  @node Automatically Creating a List of Directories,Generating the Command Line Switches,Using gnatmake in a Makefile,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{130}@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{131}
  @subsection Automatically Creating a List of Directories
  
  
--- 17381,17387 ----
  @end example
  
  @node Automatically Creating a List of Directories,Generating the Command Line Switches,Using gnatmake in a Makefile,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{132}@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{133}
  @subsection Automatically Creating a List of Directories
  
  
*************** DIRS := $@{shell find $@{ROOT_DIRECTORY@
*** 17416,17427 ****
  @end example
  
  @node Generating the Command Line Switches,Overcoming Command Line Length Limits,Automatically Creating a List of Directories,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{132}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{133}
  @subsection Generating the Command Line Switches
  
  
  Once you have created the list of directories as explained in the
! previous section (@ref{130,,Automatically Creating a List of Directories}),
  you can easily generate the command line arguments to pass to gnatmake.
  
  For the sake of completeness, this example assumes that the source path
--- 17454,17465 ----
  @end example
  
  @node Generating the Command Line Switches,Overcoming Command Line Length Limits,Automatically Creating a List of Directories,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{134}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{135}
  @subsection Generating the Command Line Switches
  
  
  Once you have created the list of directories as explained in the
! previous section (@ref{132,,Automatically Creating a List of Directories}),
  you can easily generate the command line arguments to pass to gnatmake.
  
  For the sake of completeness, this example assumes that the source path
*************** all:
*** 17442,17448 ****
  @end example
  
  @node Overcoming Command Line Length Limits,,Generating the Command Line Switches,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id52}@anchor{134}@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{135}
  @subsection Overcoming Command Line Length Limits
  
  
--- 17480,17486 ----
  @end example
  
  @node Overcoming Command Line Length Limits,,Generating the Command Line Switches,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id52}@anchor{136}@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{137}
  @subsection Overcoming Command Line Length Limits
  
  
*************** even none on most systems).
*** 17457,17463 ****
  
  It assumes that you have created a list of directories in your Makefile,
  using one of the methods presented in
! @ref{130,,Automatically Creating a List of Directories}.
  For the sake of completeness, we assume that the object
  path (where the ALI files are found) is different from the sources patch.
  
--- 17495,17501 ----
  
  It assumes that you have created a list of directories in your Makefile,
  using one of the methods presented in
! @ref{132,,Automatically Creating a List of Directories}.
  For the sake of completeness, we assume that the object
  path (where the ALI files are found) is different from the sources patch.
  
*************** all:
*** 17499,17506 ****
          gnatmake main_unit
  @end example
  
  @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
! @anchor{gnat_ugn/gnat_utility_programs doc}@anchor{136}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{b}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{137}
  @chapter GNAT Utility Programs
  
  
--- 17537,17648 ----
          gnatmake main_unit
  @end example
  
+ @node GNAT with the LLVM Back End,,Using the GNU make Utility,Building Executable Programs with GNAT
+ @anchor{gnat_ugn/building_executable_programs_with_gnat gnat-with-the-llvm-back-end}@anchor{138}@anchor{gnat_ugn/building_executable_programs_with_gnat gnatllvm}@anchor{7}
+ @section GNAT with the LLVM Back End
+ 
+ 
+ This section outlines the usage of the GNAT compiler with the LLVM
+ back end and highlights its key limitations. Certain GNAT versions,
+ referred to as GNAT LLVM, include an alternative LLVM back end
+ alongside the GCC back end, providing access to utilities that operate
+ at the LLVM Intermediate Representation (IR) level. This also enhances
+ safety by facilitating dissimilar redundancy through diverse code
+ generation techniques, allowing for the creation of two distinct
+ binaries from the same source code.
+ 
+ Although both GNAT LLVM and the GCC-based GNAT follow most ABI rules,
+ there are some cases where there you may encounter an incompatibility
+ between the two compilers.  One such case for the 64-bit Intel X86 is
+ a difference in parameter passing when a structure that consists of 64
+ bits is passed. The native LLVM handling (and hence that of GNAT LLVM)
+ and @code{clang} disagree in this case. GCC follows @code{clang}. The formal
+ ABI agrees with LLVM.
+ 
+ In any case, we don’t recommend you link code compiled with GNAT LLVM
+ to code compiled by the GCC version of GNAT. This is a specific case
+ of the general rule that you should compile all your Ada code with the
+ same version of GNAT. Both @code{gnatmake} and @code{gprbuild} ensure this
+ is done.
+ 
+ You may, however, run into this incompatibility if you pass such a
+ record between C and Ada. In general, we recommend keeping the data
+ passed between C and Ada as simple as practical.
+ 
+ GNAT LLVM currently provides limited support for debugging data. It
+ provides full line number information for declarations and statements,
+ but not sufficient debugging data to display all Ada data
+ structures. GNAT LLVM outputs complete debugging data only for types
+ with a direct equivalent in C, namely records without discriminants
+ and constrained arrays whose dimensions are known at compile time. You
+ will not be able to use @code{gdb} print commands to look at objects not
+ of those types or to display components of those types. You can use
+ low-level @code{gdb} commands that display memory to view such data
+ provided you know how they’re laid out.  Debugging information may
+ also be limited for bitfields (fields whose size and position
+ aren’t on byte boundaries)
+ 
+ In addition, debugging information may be confusing if you have
+ @code{out} parameters to subprograms. If you have a procedure with only
+ one @code{out} parameter, GNAT LLVM converts that to a function returning
+ an object of that type. If you have multiple @code{out} parameters or
+ have a function that also has an @code{out} parameter, GNAT LLVM converts
+ that subprogram into a function that returns a record where each field
+ is either an @code{out} parameter or the function return value, if any.
+ The debug information reflects these transformations and not the original
+ Ada source code.
+ 
+ GNAT LLVM doesn’t fully implement the @code{-fcheck-stack} switch.
+ When you specify it, the code generated by GNAT LLVM tests for allocating
+ overly-large items on the stack, but not all cases of stack overflow.  For
+ example, if you have a very deep recursion where each call only uses a
+ small amount of stack and the total stack depth exceeds the amount of
+ available stack, the program will be terminated by a signal instead of
+ raising an Ada exception.
+ 
+ GNAT LLVM doesn’t support the @code{Scalar_Storage_Order} pragma except when
+ it’s used to confirm the chosen storage order. This is because this facility
+ is provided by GCC but not by LLVM.
+ 
+ GNAT LLVM doesn’t support Convention C++, which provides so-called
+ ‘name mangling’ by encoding parameter and return datatypes into a
+ function name.
+ 
+ 
+ We provide two options that you can use to build code with GNAT LLVM:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ GNAT LLVM includes a version of @code{gnatmake} called
+ @code{llvm-gnatmake}, which is equivalent to @code{gnatmake} and has the
+ same switches, except that it uses GNAT LLVM instead of the GCC
+ version of GNAT.
+ 
+ @item 
+ @code{gprbuild} can detect and use GNAT LLVM when it is installed.
+ 
+ @code{gprbuild} uses the first applicable compiler on the executable
+ search path, including GNAT LLVM.  An easy way to build with GNAT
+ LLVM is to make it available on the operating system’s search path
+ before any other Ada compiler (such as the GCC version of GNAT). To
+ avoid accidentally using a different compiler than the one you want
+ to use, we recommend generating an explicit toolchain configuration
+ file with @code{gprconfig} and using it with @code{gprbuild}; see the
+ `GPRbuild and GPR Companion Tools User’s Guide' for details. You
+ can determine from the first line of the @code{.ali} file
+ which version of GNAT built that file because it contains either
+ @code{GNAT} or @code{GNAT-LLVM}.
+ @end itemize
+ 
+ 
+ GNAT LLVM understands the same target triplets as the GCC version of
+ GNAT.
+ 
+ 
  @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
! @anchor{gnat_ugn/gnat_utility_programs doc}@anchor{139}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{c}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{13a}
  @chapter GNAT Utility Programs
  
  
*************** This chapter describes a number of utili
*** 17511,17520 ****
  @itemize *
  
  @item 
! @ref{138,,The File Cleanup Utility gnatclean}
  
  @item 
! @ref{139,,The GNAT Library Browser gnatls}
  @end itemize
  
  Other GNAT utilities are described elsewhere in this manual:
--- 17653,17662 ----
  @itemize *
  
  @item 
! @ref{13b,,The File Cleanup Utility gnatclean}
  
  @item 
! @ref{13c,,The GNAT Library Browser gnatls}
  @end itemize
  
  Other GNAT utilities are described elsewhere in this manual:
*************** Other GNAT utilities are described elsew
*** 17523,17538 ****
  @itemize *
  
  @item 
! @ref{42,,Handling Arbitrary File Naming Conventions with gnatname}
  
  @item 
! @ref{4c,,File Name Krunching with gnatkr}
  
  @item 
! @ref{1d,,Renaming Files with gnatchop}
  
  @item 
! @ref{90,,Preprocessing with gnatprep}
  @end itemize
  
  @menu
--- 17665,17680 ----
  @itemize *
  
  @item 
! @ref{43,,Handling Arbitrary File Naming Conventions with gnatname}
  
  @item 
! @ref{4d,,File Name Krunching with gnatkr}
  
  @item 
! @ref{1e,,Renaming Files with gnatchop}
  
  @item 
! @ref{91,,Preprocessing with gnatprep}
  @end itemize
  
  @menu
*************** Other GNAT utilities are described elsew
*** 17542,17548 ****
  @end menu
  
  @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id2}@anchor{13a}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{138}
  @section The File Cleanup Utility @code{gnatclean}
  
  
--- 17684,17690 ----
  @end menu
  
  @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id2}@anchor{13d}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{13b}
  @section The File Cleanup Utility @code{gnatclean}
  
  
*************** Other GNAT utilities are described elsew
*** 17550,17556 ****
  
  @geindex gnatclean
  
! @code{gnatclean} is a tool that allows the deletion of files produced by the
  compiler, binder and linker, including ALI files, object files, tree files,
  expanded source files, library files, interface copy source files, binder
  generated files and executable files.
--- 17692,17698 ----
  
  @geindex gnatclean
  
! @code{gnatclean} is a tool that deletes some files produced by the
  compiler, binder and linker, including ALI files, object files, tree files,
  expanded source files, library files, interface copy source files, binder
  generated files and executable files.
*************** generated files and executable files.
*** 17562,17572 ****
  @end menu
  
  @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id3}@anchor{13b}@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{13c}
  @subsection Running @code{gnatclean}
  
  
! The @code{gnatclean} command has the form:
  
  @quotation
  
--- 17704,17714 ----
  @end menu
  
  @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id3}@anchor{13e}@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{13f}
  @subsection Running @code{gnatclean}
  
  
! You run the @code{gnatclean} command as follow:
  
  @quotation
  
*************** $ gnatclean switches names
*** 17575,17592 ****
  @end example
  @end quotation
  
! where @code{names} is a list of source file names. Suffixes @code{.ads} and
! @code{adb} may be omitted. If a project file is specified using switch
! @code{-P}, then @code{names} may be completely omitted.
  
! In normal mode, @code{gnatclean} delete the files produced by the compiler and,
! if switch @code{-c} is not specified, by the binder and
! the linker. In informative-only mode, specified by switch
! @code{-n}, the list of files that would have been deleted in
! normal mode is listed, but no file is actually deleted.
  
  @node Switches for gnatclean,,Running gnatclean,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id4}@anchor{13d}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{13e}
  @subsection Switches for @code{gnatclean}
  
  
--- 17717,17734 ----
  @end example
  @end quotation
  
! where @code{names} is a list of source file names. You may omit suffixes @code{.ads} and
! @code{adb}. If a project file is specified using switch
! @code{-P}, then you may completely omit @code{names}.
  
! In normal mode, @code{gnatclean} deletes the files produced by the compiler and,
! if switch @code{-c} is not specified, produced by the binder and
! linker. In information-only mode, specified by switch
! @code{-n}, @code{gnatclean} lists the files that would have been deleted in
! normal mode, but doesn’t actually delete any files.
  
  @node Switches for gnatclean,,Running gnatclean,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id4}@anchor{140}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{141}
  @subsection Switches for @code{gnatclean}
  
  
*************** normal mode is listed, but no file is ac
*** 17599,17605 ****
  
  @item @code{--version}
  
! Display copyright and version, then exit disregarding all other options.
  @end table
  
  @geindex --help (gnatclean)
--- 17741,17747 ----
  
  @item @code{--version}
  
! Display copyright and version, then exit, disregarding all other options.
  @end table
  
  @geindex --help (gnatclean)
*************** Display copyright and version, then exit
*** 17609,17627 ****
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage, then exit disregarding
! all other options.
  
  @item @code{--subdirs=`subdir'}
  
! Actual object directory of each project file is the subdirectory subdir of the
! object directory specified or defaulted in the project file.
  
  @item @code{--unchecked-shared-lib-imports}
  
  By default, shared library projects are not allowed to import static library
! projects. When this switch is used on the command line, this restriction is
! relaxed.
  @end table
  
  @geindex -c (gnatclean)
--- 17751,17769 ----
  
  @item @code{--help}
  
! If @code{--version} was not specified, display usage, then exit
! disregarding all other options.
  
  @item @code{--subdirs=`subdir'}
  
! Actual object directory of each project file, which is the
! subdirectory @code{subdir} of the object directory specified or defaulted
! in the project file.
  
  @item @code{--unchecked-shared-lib-imports}
  
  By default, shared library projects are not allowed to import static library
! projects. When this switch is specified, this restriction is lifted.
  @end table
  
  @geindex -c (gnatclean)
*************** files, interface copy files, binder gene
*** 17643,17649 ****
  
  @item @code{-D `dir'}
  
! Indicate that ALI and object files should normally be found in directory @code{dir}.
  @end table
  
  @geindex -F (gnatclean)
--- 17785,17792 ----
  
  @item @code{-D `dir'}
  
! Indicate that ALI and object files should normally be found in
! directory @code{dir}.
  @end table
  
  @geindex -F (gnatclean)
*************** Indicate that ALI and object files shoul
*** 17653,17662 ****
  
  @item @code{-F}
  
! When using project files, if some errors or warnings are detected during
! parsing and verbose mode is not in effect (no use of switch
! -v), then error lines start with the full path name of the project
! file, rather than its simple file name.
  @end table
  
  @geindex -h (gnatclean)
--- 17796,17805 ----
  
  @item @code{-F}
  
! When using project files, if some errors or warnings are detected
! during parsing and verbose mode is not in effect (the switch
! @code{-v} is not specified), error lines start with the full path
! name of the project file, rather than its simple file name.
  @end table
  
  @geindex -h (gnatclean)
*************** that would have been deleted if this swi
*** 17687,17697 ****
  
  @item @code{-P`project'}
  
! Use project file @code{project}. Only one such switch can be used.
! When cleaning a project file, the files produced by the compilation of the
! immediate sources or inherited sources of the project files are to be
! deleted. This is not depending on the presence or not of executable names
! on the command line.
  @end table
  
  @geindex -q (gnatclean)
--- 17830,17840 ----
  
  @item @code{-P`project'}
  
! Use project file @code{project}. You can specify only one such switch.
! When cleaning a project file, @code{gnatclean} deletes the files
! produced by the compilation of the immediate sources or inherited
! sources of the project files. This does not depend on whether or not
! you include executable names on the command line.
  @end table
  
  @geindex -q (gnatclean)
*************** on the command line.
*** 17702,17709 ****
  @item @code{-q}
  
  Quiet output. If there are no errors, do not output anything, except in
! verbose mode (switch -v) or in informative-only mode
! (switch -n).
  @end table
  
  @geindex -r (gnatclean)
--- 17845,17852 ----
  @item @code{-q}
  
  Quiet output. If there are no errors, do not output anything, except in
! verbose mode (@code{-v}) or in information-only mode
! (@code{-n}).
  @end table
  
  @geindex -r (gnatclean)
*************** verbose mode (switch -v) or in informati
*** 17713,17722 ****
  
  @item @code{-r}
  
! When a project file is specified (using switch -P),
! clean all imported and extended project files, recursively. If this switch
! is not specified, only the files related to the main project file are to be
! deleted. This switch has no effect if no project file is specified.
  @end table
  
  @geindex -v (gnatclean)
--- 17856,17866 ----
  
  @item @code{-r}
  
! When a project file is specified (using @code{-P}), clean all
! imported and extended project files, recursively. If you don’t
! specify this switch, @code{gnatclean} only deletes the files related to
! the main project file. This switch has no effect if you don’t
! specify a project file.
  @end table
  
  @geindex -v (gnatclean)
*************** Verbose mode.
*** 17737,17743 ****
  @item @code{-vP`x'}
  
  Indicates the verbosity of the parsing of GNAT project files.
! @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -X (gnatclean)
--- 17881,17887 ----
  @item @code{-vP`x'}
  
  Indicates the verbosity of the parsing of GNAT project files.
! @ref{d2,,Switches Related to Project Files}.
  @end table
  
  @geindex -X (gnatclean)
*************** Indicates the verbosity of the parsing o
*** 17750,17756 ****
  Indicates that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! See @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -aO (gnatclean)
--- 17894,17900 ----
  Indicates that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! See @ref{d2,,Switches Related to Project Files}.
  @end table
  
  @geindex -aO (gnatclean)
*************** where @code{gnatclean} was invoked.
*** 17788,17794 ****
  @end table
  
  @node The GNAT Library Browser gnatls,,The File Cleanup Utility gnatclean,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id5}@anchor{13f}@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{139}
  @section The GNAT Library Browser @code{gnatls}
  
  
--- 17932,17938 ----
  @end table
  
  @node The GNAT Library Browser gnatls,,The File Cleanup Utility gnatclean,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id5}@anchor{142}@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{13c}
  @section The GNAT Library Browser @code{gnatls}
  
  
*************** where @code{gnatclean} was invoked.
*** 17798,17804 ****
  
  @code{gnatls} is a tool that outputs information about compiled
  units. It gives the relationship between objects, unit names and source
! files. It can also be used to check the source dependencies of a unit
  as well as various characteristics.
  
  @menu
--- 17942,17948 ----
  
  @code{gnatls} is a tool that outputs information about compiled
  units. It gives the relationship between objects, unit names and source
! files. You can also use it to check the source dependencies of a unit
  as well as various characteristics.
  
  @menu
*************** as well as various characteristics.
*** 17809,17819 ****
  @end menu
  
  @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id6}@anchor{140}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{141}
  @subsection Running @code{gnatls}
  
  
! The @code{gnatls} command has the form
  
  @quotation
  
--- 17953,17963 ----
  @end menu
  
  @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id6}@anchor{143}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{144}
  @subsection Running @code{gnatls}
  
  
! You run the @code{gnatls} command as follows:
  
  @quotation
  
*************** $ gnatls switches object_or_ali_file
*** 17823,17838 ****
  @end quotation
  
  The main argument is the list of object or @code{ali} files
! (see @ref{28,,The Ada Library Information Files})
! for which information is requested.
  
! In normal mode, without additional option, @code{gnatls} produces a
! four-column listing. Each line represents information for a specific
  object. The first column gives the full path of the object, the second
! column gives the name of the principal unit in this object, the third
  column gives the status of the source and the fourth column gives the
  full path of the source representing this unit.
! Here is a simple example of use:
  
  @quotation
  
--- 17967,17982 ----
  @end quotation
  
  The main argument is the list of object or @code{ali} files
! (see @ref{29,,The Ada Library Information Files})
! for which you are requesting information.
  
! In the default mode, without additional options, @code{gnatls} produces a
! four-column listing. Each line contains information for a specific
  object. The first column gives the full path of the object, the second
! column gives the name of the principal unit in the object, the third
  column gives the status of the source and the fourth column gives the
  full path of the source representing this unit.
! Here’s a simple example:
  
  @quotation
  
*************** $ gnatls *.o
*** 17849,17857 ****
  @end example
  @end quotation
  
! The first line can be interpreted as follows: the main unit which is
  contained in
! object file @code{demo1.o} is demo1, whose main source is in
  @code{demo1.adb}. Furthermore, the version of the source used for the
  compilation of demo1 has been modified (DIF). Each source file has a status
  qualifier which can be:
--- 17993,18001 ----
  @end example
  @end quotation
  
! You should interpret the first line as follows: the main unit, which is
  contained in
! object file @code{demo1.o}, is demo1, whose main source is in
  @code{demo1.adb}. Furthermore, the version of the source used for the
  compilation of demo1 has been modified (DIF). Each source file has a status
  qualifier which can be:
*************** specified unit corresponds exactly to th
*** 17868,17876 ****
  
  The version of the source file used for the compilation of the
  specified unit differs from the actual source file but not enough to
! require recompilation. If you use gnatmake with the option
! @code{-m} (minimal recompilation), a file marked
! MOK will not be recompiled.
  
  @item `DIF (modified)'
  
--- 18012,18020 ----
  
  The version of the source file used for the compilation of the
  specified unit differs from the actual source file but not enough to
! require recompilation (e.g., only comments have been changed). If
! you run @code{gnatmake} with the option @code{-m} (minimal
! recompilation), it will not recompile a file marked MOK.
  
  @item `DIF (modified)'
  
*************** version of the same source that has been
*** 17889,17899 ****
  @end table
  
  @node Switches for gnatls,Example of gnatls Usage,Running gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id7}@anchor{142}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{143}
  @subsection Switches for @code{gnatls}
  
  
! @code{gnatls} recognizes the following switches:
  
  @geindex --version (gnatls)
  
--- 18033,18043 ----
  @end table
  
  @node Switches for gnatls,Example of gnatls Usage,Running gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id7}@anchor{145}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{146}
  @subsection Switches for @code{gnatls}
  
  
! You can specify the following switches to @code{gnatls}:
  
  @geindex --version (gnatls)
  
*************** version of the same source that has been
*** 17902,17908 ****
  
  @item @code{--version}
  
! Display copyright and version, then exit disregarding all other options.
  @end table
  
  @geindex --help (gnatls)
--- 18046,18052 ----
  
  @item @code{--version}
  
! Display copyright and version, then exit, disregarding all other options.
  @end table
  
  @geindex --help (gnatls)
*************** Display copyright and version, then exit
*** 17912,17919 ****
  
  @item @code{--help}
  
! If @code{--version} was not used, display usage, then exit disregarding
! all other options.
  @end table
  
  @geindex -a (gnatls)
--- 18056,18063 ----
  
  @item @code{--help}
  
! If @code{--version} was not specified, display usage, then exit,
! disregarding all other options.
  @end table
  
  @geindex -a (gnatls)
*************** Especially useful with @code{-d}.
*** 17934,17940 ****
  
  @item @code{-d}
  
! List sources from which specified units depend on.
  @end table
  
  @geindex -h (gnatls)
--- 18078,18084 ----
  
  @item @code{-d}
  
! List sources that specified units depend on.
  @end table
  
  @geindex -h (gnatls)
*************** Only output information about compilatio
*** 17984,17993 ****
  
  @item @code{-files=`file'}
  
! Take as arguments the files listed in text file @code{file}.
! Text file @code{file} may contain empty lines that are ignored.
! Each nonempty line should contain the name of an existing file.
! Several such switches may be specified simultaneously.
  @end table
  
  @geindex -aO (gnatls)
--- 18128,18137 ----
  
  @item @code{-files=`file'}
  
! Take as arguments the files listed in text file @code{file}, which may
! contain empty lines that are ignored.  Each nonempty line should
! contain the name of an existing file.  Several such switches may be
! specified on the same command.
  @end table
  
  @geindex -aO (gnatls)
*************** Several such switches may be specified s
*** 18003,18010 ****
  
  @item @code{-aO`dir'}, @code{-aI`dir'}, @code{-I`dir'}, @code{-I-}, @code{-nostdinc}
  
! Source path manipulation. Same meaning as the equivalent @code{gnatmake}
! flags (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -aP (gnatls)
--- 18147,18154 ----
  
  @item @code{-aO`dir'}, @code{-aI`dir'}, @code{-I`dir'}, @code{-I-}, @code{-nostdinc}
  
! Source path manipulation. It has the same meaning as the equivalent
! @code{gnatmake} switches (@ref{d1,,Switches for gnatmake}).
  @end table
  
  @geindex -aP (gnatls)
*************** Add @code{dir} at the beginning of the p
*** 18024,18031 ****
  
  @item @code{--RTS=`rts-path'}
  
! Specifies the default location of the runtime library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -v (gnatls)
--- 18168,18176 ----
  
  @item @code{--RTS=`rts-path'}
  
! Specifies the default location of the runtime library. It has the
! same meaning as the equivalent @code{gnatmake} switch
! (@ref{d1,,Switches for gnatmake}).
  @end table
  
  @geindex -v (gnatls)
*************** equivalent @code{gnatmake} flag (@ref{d0
*** 18035,18041 ****
  
  @item @code{-v}
  
! Verbose mode. Output the complete source, object and project paths. Do not use
  the default column layout but instead use long format giving as much as
  information possible on each requested units, including special
  characteristics such as:
--- 18180,18186 ----
  
  @item @code{-v}
  
! Verbose mode. Output the complete source, object and project paths. Don’t use
  the default column layout but instead use long format giving as much as
  information possible on each requested units, including special
  characteristics such as:
*************** by the user.
*** 18071,18082 ****
  @end table
  
  @node Example of gnatls Usage,,Switches for gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{144}@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{145}
  @subsection Example of @code{gnatls} Usage
  
  
! Example of using the verbose switch. Note how the source and
! object paths are affected by the -I switch.
  
  @quotation
  
--- 18216,18227 ----
  @end table
  
  @node Example of gnatls Usage,,Switches for gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{147}@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{148}
  @subsection Example of @code{gnatls} Usage
  
  
! Here’s an example of using the verbose switch. Note how the source and
! object paths are affected by the @code{-I} switch.
  
  @quotation
  
*************** Project Search Path:
*** 18109,18117 ****
  @end example
  @end quotation
  
! The following is an example of use of the dependency list.
! Note the use of the -s switch
! which gives a straight list of source files. This can be useful for
  building specialized scripts.
  
  @quotation
--- 18254,18262 ----
  @end example
  @end quotation
  
! Here’s an example of use of the dependency list.
! Note the use of the @code{-s} switch,
! which gives a simple list of source files. You may find this useful for
  building specialized scripts.
  
  @quotation
*************** instr.ads
*** 18157,18163 ****
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node GNAT and Program Execution,Platform-Specific Information,GNAT Utility Programs,Top
! @anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{146}@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{c}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{147}
  @chapter GNAT and Program Execution
  
  
--- 18302,18308 ----
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node GNAT and Program Execution,Platform-Specific Information,GNAT Utility Programs,Top
! @anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{149}@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{d}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{14a}
  @chapter GNAT and Program Execution
  
  
*************** This chapter covers several topics:
*** 18167,18191 ****
  @itemize *
  
  @item 
! @ref{148,,Running and Debugging Ada Programs}
  
  @item 
! @ref{149,,Profiling}
  
  @item 
! @ref{14a,,Improving Performance}
  
  @item 
! @ref{14b,,Overflow Check Handling in GNAT}
  
  @item 
! @ref{14c,,Performing Dimensionality Analysis in GNAT}
  
  @item 
! @ref{14d,,Stack Related Facilities}
  
  @item 
! @ref{14e,,Memory Management Issues}
  @end itemize
  
  @menu
--- 18312,18336 ----
  @itemize *
  
  @item 
! @ref{14b,,Running and Debugging Ada Programs}
  
  @item 
! @ref{14c,,Profiling}
  
  @item 
! @ref{14d,,Improving Performance}
  
  @item 
! @ref{14e,,Overflow Check Handling in GNAT}
  
  @item 
! @ref{14f,,Performing Dimensionality Analysis in GNAT}
  
  @item 
! @ref{150,,Stack Related Facilities}
  
  @item 
! @ref{151,,Memory Management Issues}
  @end itemize
  
  @menu
*************** This chapter covers several topics:
*** 18200,18206 ****
  @end menu
  
  @node Running and Debugging Ada Programs,Profiling,,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{148}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{14f}
  @section Running and Debugging Ada Programs
  
  
--- 18345,18351 ----
  @end menu
  
  @node Running and Debugging Ada Programs,Profiling,,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{14b}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{152}
  @section Running and Debugging Ada Programs
  
  
*************** This chapter covers several topics:
*** 18208,18228 ****
  
  This section discusses how to debug Ada programs.
  
! An incorrect Ada program may be handled in three ways by the GNAT compiler:
  
  
  @itemize *
  
  @item 
  The illegality may be a violation of the static semantics of Ada. In
! that case GNAT diagnoses the constructs in the program that are illegal.
! It is then a straightforward matter for the user to modify those parts of
  the program.
  
  @item 
  The illegality may be a violation of the dynamic semantics of Ada. In
  that case the program compiles and executes, but may generate incorrect
! results, or may terminate abnormally with some exception.
  
  @item 
  When presented with a program that contains convoluted errors, GNAT
--- 18353,18373 ----
  
  This section discusses how to debug Ada programs.
  
! The GNAT compiler handles an incorrect Ada program in three ways:
  
  
  @itemize *
  
  @item 
  The illegality may be a violation of the static semantics of Ada. In
! that case, GNAT diagnoses the constructs in the program that are illegal.
! It’s then a straightforward matter for you to modify those parts of
  the program.
  
  @item 
  The illegality may be a violation of the dynamic semantics of Ada. In
  that case the program compiles and executes, but may generate incorrect
! results or may terminate abnormally with some exception.
  
  @item 
  When presented with a program that contains convoluted errors, GNAT
*************** the incorrect user program.
*** 18254,18325 ****
  @end menu
  
  @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{150}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{151}
  @subsection The GNAT Debugger GDB
  
  
  @code{GDB} is a general purpose, platform-independent debugger that
! can be used to debug mixed-language programs compiled with @code{gcc},
  and in particular is capable of debugging Ada programs compiled with
  GNAT. The latest versions of @code{GDB} are Ada-aware and can handle
  complex Ada data structures.
  
  See @cite{Debugging with GDB},
  for full details on the usage of @code{GDB}, including a section on
! its usage on programs. This manual should be consulted for full
  details. The section that follows is a brief introduction to the
  philosophy and use of @code{GDB}.
  
! When GNAT programs are compiled, the compiler optionally writes debugging
  information into the generated object file, including information on
! line numbers, and on declared types and variables. This information is
  separate from the generated code. It makes the object files considerably
  larger, but it does not add to the size of the actual executable that
! will be loaded into memory, and has no impact on run-time performance. The
  generation of debug information is triggered by the use of the
  @code{-g} switch in the @code{gcc} or @code{gnatmake} command
! used to carry out the compilations. It is important to emphasize that
! the use of these options does not change the generated code.
  
! The debugging information is written in standard system formats that
  are used by many tools, including debuggers and profilers. The format
  of the information is typically designed to describe C types and
  semantics, but GNAT implements a translation scheme which allows full
  details about Ada types and variables to be encoded into these
  standard C formats. Details of this encoding scheme may be found in
! the file exp_dbug.ads in the GNAT source distribution. However, the
! details of this encoding are, in general, of no interest to a user,
  since @code{GDB} automatically performs the necessary decoding.
  
  When a program is bound and linked, the debugging information is
! collected from the object files, and stored in the executable image of
  the program. Again, this process significantly increases the size of
! the generated executable file, but it does not increase the size of
! the executable program itself. Furthermore, if this program is run in
  the normal manner, it runs exactly as if the debug information were
! not present, and takes no more actual memory.
  
  However, if the program is run under control of @code{GDB}, the
  debugger is activated.  The image of the program is loaded, at which
! point it is ready to run.  If a run command is given, then the program
! will run exactly as it would have if @code{GDB} were not present. This
! is a crucial part of the @code{GDB} design philosophy.  @code{GDB} is
  entirely non-intrusive until a breakpoint is encountered.  If no
! breakpoint is ever hit, the program will run exactly as it would if no
  debugger were present. When a breakpoint is hit, @code{GDB} accesses
  the debugging information and can respond to user commands to inspect
! variables, and more generally to report on the state of execution.
  
  @node Running GDB,Introduction to GDB Commands,The GNAT Debugger GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{152}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{153}
  @subsection Running GDB
  
  
  This section describes how to initiate the debugger.
  
! The debugger can be launched from a @code{GNAT Studio} menu or
  directly from the command line. The description below covers the latter use.
! All the commands shown can be used in the @code{GNAT Studio} debug console window,
  but there are usually more GUI-based ways to achieve the same effect.
  
  The command to run @code{GDB} is
--- 18399,18471 ----
  @end menu
  
  @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{153}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{154}
  @subsection The GNAT Debugger GDB
  
  
  @code{GDB} is a general purpose, platform-independent debugger that
! you can use to debug mixed-language programs, including compiled with @code{gcc},
  and in particular is capable of debugging Ada programs compiled with
  GNAT. The latest versions of @code{GDB} are Ada-aware and can handle
  complex Ada data structures.
  
  See @cite{Debugging with GDB},
  for full details on the usage of @code{GDB}, including a section on
! its usage on programs. That manual should be consulted for full
  details. The section that follows is a brief introduction to the
  philosophy and use of @code{GDB}.
  
! When programs are compiled, the compiler optionally writes debugging
  information into the generated object file, including information on
! line numbers and on declared types and variables. This information is
  separate from the generated code. It makes the object files considerably
  larger, but it does not add to the size of the actual executable that
! is loaded into memory and has no impact on run-time performance. The
  generation of debug information is triggered by the use of the
  @code{-g} switch in the @code{gcc} or @code{gnatmake} command
! you used to perform the compilations. It is important to emphasize that
! it’s a goal of GCC, and hence GNAT, that the use of this switch does
! not change the generated code.
  
! The compiler writes the debugging information in standard system formats that
  are used by many tools, including debuggers and profilers. The format
  of the information is typically designed to describe C types and
  semantics, but GNAT implements a translation scheme which allows full
  details about Ada types and variables to be encoded into these
  standard C formats. Details of this encoding scheme may be found in
! the file @code{exp_dbug.ads} in the GNAT source distribution. However, the
! details of this encoding are, in most cases, of no interest to a user,
  since @code{GDB} automatically performs the necessary decoding.
  
  When a program is bound and linked, the debugging information is
! collected from the object files and stored in the executable image of
  the program. Again, this process significantly increases the size of
! the generated executable file, but does not increase the size of
! the executable program in memory. Furthermore, if this program is run in
  the normal manner, it runs exactly as if the debug information were
! not present and takes no more actual memory.
  
  However, if the program is run under control of @code{GDB}, the
  debugger is activated.  The image of the program is loaded, at which
! point it is ready to run.  If you give a run command, the program
! runs exactly as it would have if @code{GDB} were not present. This
! is a crucial part of the @code{GDB} design philosophy: @code{GDB} is
  entirely non-intrusive until a breakpoint is encountered.  If no
! breakpoint is ever hit, the program runs exactly as it would if no
  debugger were present. When a breakpoint is hit, @code{GDB} accesses
  the debugging information and can respond to user commands to inspect
! variables and more generally to report on the state of execution.
  
  @node Running GDB,Introduction to GDB Commands,The GNAT Debugger GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{155}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{156}
  @subsection Running GDB
  
  
  This section describes how to initiate the debugger.
  
! You can launch the debugger from a @code{GNAT Studio} menu or
  directly from the command line. The description below covers the latter use.
! You can use all the commands shown in the @code{GNAT Studio} debug console window,
  but there are usually more GUI-based ways to achieve the same effect.
  
  The command to run @code{GDB} is
*************** where @code{program} is the name of the
*** 18335,18344 ****
  activates the debugger and results in a prompt for debugger commands.
  The simplest command is simply @code{run}, which causes the program to run
  exactly as if the debugger were not present. The following section
! describes some of the additional commands that can be given to @code{GDB}.
  
  @node Introduction to GDB Commands,Using Ada Expressions,Running GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{154}@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{155}
  @subsection Introduction to GDB Commands
  
  
--- 18481,18490 ----
  activates the debugger and results in a prompt for debugger commands.
  The simplest command is simply @code{run}, which causes the program to run
  exactly as if the debugger were not present. The following section
! describes some of the additional commands that you can give to @code{GDB}.
  
  @node Introduction to GDB Commands,Using Ada Expressions,Running GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{157}@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{158}
  @subsection Introduction to GDB Commands
  
  
*************** See @cite{Debugging with GDB} for extens
*** 18347,18356 ****
  of these commands, together with examples of their use. Furthermore,
  the command `help' invoked from within GDB activates a simple help
  facility which summarizes the available commands and their options.
! In this section we summarize a few of the most commonly
  used commands to give an idea of what @code{GDB} is about. You should create
  a simple program with debugging information and experiment with the use of
! these @code{GDB} commands on the program as you read through the
  following section.
  
  
--- 18493,18502 ----
  of these commands, together with examples of their use. Furthermore,
  the command `help' invoked from within GDB activates a simple help
  facility which summarizes the available commands and their options.
! In this section, we summarize a few of the most commonly
  used commands to give an idea of what @code{GDB} is about. You should create
  a simple program with debugging information and experiment with the use of
! these @code{GDB} commands on that program as you read through the
  following section.
  
  
*************** following section.
*** 18362,18371 ****
  
  @item @code{set args @var{arguments}}
  
! The `arguments' list above is a list of arguments to be passed to
! the program on a subsequent run command, just as though the arguments
! had been entered on a normal invocation of the program. The @code{set args}
! command is not needed if the program does not require arguments.
  @end table
  
  @item 
--- 18508,18517 ----
  
  @item @code{set args @var{arguments}}
  
! `arguments' is a list of arguments to be passed to the program on
! a subsequent run command, just as though the arguments had been
! entered on a normal invocation of the program. You do not need the
! @code{set args} command if the program does not require arguments.
  @end table
  
  @item 
*************** The @code{run} command causes execution
*** 18378,18384 ****
  the beginning. If the program is already running, that is to say if
  you are currently positioned at a breakpoint, then a prompt will ask
  for confirmation that you want to abandon the current execution and
! restart.
  @end table
  
  @item 
--- 18524,18532 ----
  the beginning. If the program is already running, that is to say if
  you are currently positioned at a breakpoint, then a prompt will ask
  for confirmation that you want to abandon the current execution and
! restart. You can also specify program arguments on this command and
! if you specify @code{run} with no arguments, the arguments used on
! the previous command will be used again.
  @end table
  
  @item 
*************** restart.
*** 18387,18403 ****
  
  @item @code{breakpoint @var{location}}
  
! The breakpoint command sets a breakpoint, that is to say a point at which
  execution will halt and @code{GDB} will await further
! commands. `location' is
! either a line number within a file, given in the format @code{file:linenumber},
! or it is the name of a subprogram. If you request that a breakpoint be set on
! a subprogram that is overloaded, a prompt will ask you to specify on which of
! those subprograms you want to breakpoint. You can also
! specify that all of them should be breakpointed. If the program is run
! and execution encounters the breakpoint, then the program
! stops and @code{GDB} signals that the breakpoint was encountered by
! printing the line of code before which the program is halted.
  @end table
  
  @item 
--- 18535,18551 ----
  
  @item @code{breakpoint @var{location}}
  
! This command sets a breakpoint, that is to say a point at which
  execution will halt and @code{GDB} will await further
! commands. `location' is either a line number within a file, which
! you specify in the format @code{file:linenumber}, or the name of a
! subprogram. If you request a breakpoint be set on a subprogram
! that is overloaded, either a prompt will ask you to specify on
! which of those subprograms you want to breakpoint or a breakpoint
! will be set on all of them. If the program is run and execution
! encounters the breakpoint, the program stops and @code{GDB}
! signals that the breakpoint was encountered by printing the line
! of code before which the program is halted.
  @end table
  
  @item 
*************** printing the line of code before which t
*** 18407,18413 ****
  @item @code{catch exception @var{name}}
  
  This command causes the program execution to stop whenever exception
! @code{name} is raised.  If @code{name} is omitted, then the execution is
  suspended when any exception is raised.
  @end table
  
--- 18555,18561 ----
  @item @code{catch exception @var{name}}
  
  This command causes the program execution to stop whenever exception
! @code{name} is raised.  If you omit @code{name}, execution is
  suspended when any exception is raised.
  @end table
  
*************** suspended when any exception is raised.
*** 18417,18423 ****
  
  @item @code{print @var{expression}}
  
! This will print the value of the given expression. Most simple
  Ada expression formats are properly handled by @code{GDB}, so the expression
  can contain function calls, variables, operators, and attribute references.
  @end table
--- 18565,18571 ----
  
  @item @code{print @var{expression}}
  
! This prints the value of the given expression. Most
  Ada expression formats are properly handled by @code{GDB}, so the expression
  can contain function calls, variables, operators, and attribute references.
  @end table
*************** can contain function calls, variables, o
*** 18428,18434 ****
  
  @item @code{continue}
  
! Continues execution following a breakpoint, until the next breakpoint or the
  termination of the program.
  @end table
  
--- 18576,18582 ----
  
  @item @code{continue}
  
! Continues execution following a breakpoint until the next breakpoint or the
  termination of the program.
  @end table
  
*************** the called subprogram.
*** 18449,18470 ****
  
  @item @code{next}
  
! Executes a single line. If this line is a subprogram call, executes and
! returns from the call.
  @end table
  
  @item 
  
! @table @asis
! 
! @item @code{list}
  
! Lists a few lines around the current source location. In practice, it
! is usually more convenient to have a separate edit window open with the
! relevant source file displayed. Successive applications of this command
! print subsequent lines. The command can be given an argument which is a
! line number, in which case it displays a few lines around the specified one.
! @end table
  
  @item 
  
--- 18597,18620 ----
  
  @item @code{next}
  
! Executes a single line. If this line is a subprogram call, the
! program executes that call and returns.
  @end table
  
  @item 
+ @code{list}
  
! @quotation
  
! Lists a few lines around the current source location. In practice,
! it is usually more convenient to have a separate edit window open
! with the relevant source file displayed. @code{emacs} has debugging
! modes that display both the relevant source and @code{GDB} commands
! and output.  Successive applications of this command print
! subsequent lines. You can give this command an argument which is a
! line number, in which case it displays a few lines around the
! specified line.
! @end quotation
  
  @item 
  
*************** line number, in which case it displays a
*** 18473,18479 ****
  @item @code{backtrace}
  
  Displays a backtrace of the call chain. This command is typically
! used after a breakpoint has occurred, to examine the sequence of calls that
  leads to the current breakpoint. The display includes one line for each
  activation record (frame) corresponding to an active subprogram.
  @end table
--- 18623,18629 ----
  @item @code{backtrace}
  
  Displays a backtrace of the call chain. This command is typically
! used after a breakpoint has occurred to examine the sequence of calls that
  leads to the current breakpoint. The display includes one line for each
  activation record (frame) corresponding to an active subprogram.
  @end table
*************** activation record (frame) corresponding
*** 18485,18492 ****
  @item @code{up}
  
  At a breakpoint, @code{GDB} can display the values of variables local
! to the current frame. The command @code{up} can be used to
! examine the contents of other active frames, by moving the focus up
  the stack, that is to say from callee to caller, one frame at a time.
  @end table
  
--- 18635,18642 ----
  @item @code{up}
  
  At a breakpoint, @code{GDB} can display the values of variables local
! to the current frame. You can use the command @code{up} to
! examine the contents of other active frames by moving the focus up
  the stack, that is to say from callee to caller, one frame at a time.
  @end table
  
*************** of the current breakpoint, that is to sa
*** 18517,18523 ****
  @item @code{kill}
  
  Kills the child process in which the program is running under GDB.
! This may be useful for several purposes:
  
  
  @itemize *
--- 18667,18673 ----
  @item @code{kill}
  
  Kills the child process in which the program is running under GDB.
! You may find this useful for several purposes:
  
  
  @itemize *
*************** It allows you to recompile and relink yo
*** 18527,18533 ****
  you cannot regenerate an executable file while it is running in a process.
  
  @item 
! You can run your program outside the debugger, on systems that do not
  permit executing a program outside GDB while breakpoints are set
  within GDB.
  
--- 18677,18683 ----
  you cannot regenerate an executable file while it is running in a process.
  
  @item 
! You can run your program outside the debugger on systems that do not
  permit executing a program outside GDB while breakpoints are set
  within GDB.
  
*************** It allows you to debug a core dump rathe
*** 18537,18558 ****
  @end table
  @end itemize
  
! The above list is a very short introduction to the commands that
  @code{GDB} provides. Important additional capabilities, including conditional
  breakpoints, the ability to execute command sequences on a breakpoint,
  the ability to debug at the machine instruction level and many other
  features are described in detail in @cite{Debugging with GDB}.
  Note that most commands can be abbreviated
! (for example, c for continue, bt for backtrace).
  
  @node Using Ada Expressions,Calling User-Defined Subprograms,Introduction to GDB Commands,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{156}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{157}
  @subsection Using Ada Expressions
  
  
  @geindex Ada expressions (in gdb)
  
! @code{GDB} supports a fairly large subset of Ada expression syntax, with some
  extensions. The philosophy behind the design of this subset is
  
  @quotation
--- 18687,18710 ----
  @end table
  @end itemize
  
! The above is a very short introduction to the commands that
  @code{GDB} provides. Important additional capabilities, including conditional
  breakpoints, the ability to execute command sequences on a breakpoint,
  the ability to debug at the machine instruction level and many other
  features are described in detail in @cite{Debugging with GDB}.
  Note that most commands can be abbreviated
! (for example, “c” for @code{continue} and “bt” for @code{backtrace}) and only enough
! characters need be typed to disambiguate the command (e.g., “br” for
! @code{breakpoint}).
  
  @node Using Ada Expressions,Calling User-Defined Subprograms,Introduction to GDB Commands,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{159}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{15a}
  @subsection Using Ada Expressions
  
  
  @geindex Ada expressions (in gdb)
  
! @code{GDB} supports a very large subset of Ada expression syntax, with some
  extensions. The philosophy behind the design of this subset is
  
  @quotation
*************** extensions. The philosophy behind the de
*** 18561,18577 ****
  @itemize *
  
  @item 
! That @code{GDB} should provide basic literals and access to operations for
  arithmetic, dereferencing, field selection, indexing, and subprogram calls,
  leaving more sophisticated computations to subprograms written into the
  program (which therefore may be called from @code{GDB}).
  
  @item 
! That type safety and strict adherence to Ada language restrictions
  are not particularly relevant in a debugging context.
  
  @item 
! That brevity is important to the @code{GDB} user.
  @end itemize
  @end quotation
  
--- 18713,18729 ----
  @itemize *
  
  @item 
! @code{GDB} should provide basic literals and access to operations for
  arithmetic, dereferencing, field selection, indexing, and subprogram calls,
  leaving more sophisticated computations to subprograms written into the
  program (which therefore may be called from @code{GDB}).
  
  @item 
! Type safety and strict adherence to Ada language restrictions
  are not particularly relevant in a debugging context.
  
  @item 
! Brevity is important to the @code{GDB} user.
  @end itemize
  @end quotation
  
*************** their packages, regardless of context. W
*** 18584,18595 ****
  For details on the supported Ada syntax, see @cite{Debugging with GDB}.
  
  @node Calling User-Defined Subprograms,Using the next Command in a Function,Using Ada Expressions,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{158}@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{159}
  @subsection Calling User-Defined Subprograms
  
  
  An important capability of @code{GDB} is the ability to call user-defined
! subprograms while debugging. This is achieved simply by entering
  a subprogram call statement in the form:
  
  @quotation
--- 18736,18747 ----
  For details on the supported Ada syntax, see @cite{Debugging with GDB}.
  
  @node Calling User-Defined Subprograms,Using the next Command in a Function,Using Ada Expressions,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{15b}@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{15c}
  @subsection Calling User-Defined Subprograms
  
  
  An important capability of @code{GDB} is the ability to call user-defined
! subprograms while debugging. You do this by simply entering
  a subprogram call statement in the form:
  
  @quotation
*************** call subprogram-name (parameters)
*** 18599,18620 ****
  @end example
  @end quotation
  
! The keyword @code{call} can be omitted in the normal case where the
  @code{subprogram-name} does not coincide with any of the predefined
  @code{GDB} commands.
  
  The effect is to invoke the given subprogram, passing it the
! list of parameters that is supplied. The parameters can be expressions and
  can include variables from the program being debugged. The
  subprogram must be defined
! at the library level within your program, and @code{GDB} will call the
  subprogram within the environment of your program execution (which
  means that the subprogram is free to access or even modify variables
  within your program).
  
! The most important use of this facility is in allowing the inclusion of
  debugging routines that are tailored to particular data structures
! in your program. Such debugging routines can be written to provide a suitably
  high-level description of an abstract type, rather than a low-level dump
  of its physical layout. After all, the standard
  @code{GDB print} command only knows the physical layout of your
--- 18751,18772 ----
  @end example
  @end quotation
  
! You can omit the keyword @code{call} in the normal case where the
  @code{subprogram-name} does not coincide with any of the predefined
  @code{GDB} commands.
  
  The effect is to invoke the given subprogram, passing it the
! list of parameters that is supplied. The parameters you specify can be expressions and
  can include variables from the program being debugged. The
  subprogram must be defined
! at the library level within your program and @code{GDB} will call the
  subprogram within the environment of your program execution (which
  means that the subprogram is free to access or even modify variables
  within your program).
  
! The most important use of this facility that you can include
  debugging routines that are tailored to particular data structures
! in your program. You can write such debugging routines to provide a suitably
  high-level description of an abstract type, rather than a low-level dump
  of its physical layout. After all, the standard
  @code{GDB print} command only knows the physical layout of your
*************** the contents of the tree nodes used to r
*** 18626,18649 ****
  But tree nodes are represented simply by an integer value (which in turn
  is an index into a table of nodes).
  Using the @code{print} command on a tree node would simply print this integer
! value, which is not very useful. But the PN routine (defined in file
! treepr.adb in the GNAT sources) takes a tree node as input, and displays
  a useful high level representation of the tree node, which includes the
! syntactic category of the node, its position in the source, the integers
! that denote descendant nodes and parent node, as well as varied
  semantic information. To study this example in more detail, you might want to
! look at the body of the PN procedure in the stated file.
  
! Another useful application of this capability is to deal with situations of
  complex data which are not handled suitably by GDB. For example, if you specify
  Convention Fortran for a multi-dimensional array, GDB does not know that
  the ordering of array elements has been switched and will not properly
  address the array elements. In such a case, instead of trying to print the
  elements directly from GDB, you can write a callable procedure that prints
! the elements in the desired format.
  
  @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{15a}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{15b}
  @subsection Using the `next' Command in a Function
  
  
--- 18778,18801 ----
  But tree nodes are represented simply by an integer value (which in turn
  is an index into a table of nodes).
  Using the @code{print} command on a tree node would simply print this integer
! value, which is not very useful. But the @code{PN} routine (defined in file
! @code{treepr.adb} in the GNAT sources) takes a tree node as input and displays
  a useful high level representation of the tree node, which includes the
! syntactic category of the node, its position in the source,
! the descendant nodes and parent node, as well as lots of
  semantic information. To study this example in more detail, you might want to
! look at the body of the @code{PN} procedure in the above file.
  
! Another useful application of this capability is to deal with situations where
  complex data which are not handled suitably by GDB. For example, if you specify
  Convention Fortran for a multi-dimensional array, GDB does not know that
  the ordering of array elements has been switched and will not properly
  address the array elements. In such a case, instead of trying to print the
  elements directly from GDB, you can write a callable procedure that prints
! the elements in the format you desire.
  
  @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{15d}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{15e}
  @subsection Using the `next' Command in a Function
  
  
*************** arises in the case of a @code{return} st
*** 18653,18659 ****
  
  Part of the code for a return statement is the ‘epilogue’ of the function.
  This is the code that returns to the caller. There is only one copy of
! this epilogue code, and it is typically associated with the last return
  statement in the function if there is more than one return. In some
  implementations, this epilogue is associated with the first statement
  of the function.
--- 18805,18811 ----
  
  Part of the code for a return statement is the ‘epilogue’ of the function.
  This is the code that returns to the caller. There is only one copy of
! this epilogue code and it is typically associated with the last return
  statement in the function if there is more than one return. In some
  implementations, this epilogue is associated with the first statement
  of the function.
*************** The value returned is always that from t
*** 18666,18672 ****
  that was stepped through.
  
  @node Stopping When Ada Exceptions Are Raised,Ada Tasks,Using the next Command in a Function,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{15c}@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{15d}
  @subsection Stopping When Ada Exceptions Are Raised
  
  
--- 18818,18824 ----
  that was stepped through.
  
  @node Stopping When Ada Exceptions Are Raised,Ada Tasks,Using the next Command in a Function,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{15f}@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{160}
  @subsection Stopping When Ada Exceptions Are Raised
  
  
*************** argument, prints out only those exceptio
*** 18723,18729 ****
  @geindex Tasks (in gdb)
  
  @node Ada Tasks,Debugging Generic Units,Stopping When Ada Exceptions Are Raised,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{15e}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{15f}
  @subsection Ada Tasks
  
  
--- 18875,18881 ----
  @geindex Tasks (in gdb)
  
  @node Ada Tasks,Debugging Generic Units,Stopping When Ada Exceptions Are Raised,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{161}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{162}
  @subsection Ada Tasks
  
  
*************** This command shows a list of current Ada
*** 18749,18756 ****
  *  4   80ae800   3   80b8000  15 Running               c
  @end example
  
! In this listing, the asterisk before the first task indicates it to be the
! currently running task. The first column lists the task ID that is used
  to refer to tasks in the following commands.
  @end table
  @end itemize
--- 18901,18908 ----
  *  4   80ae800   3   80b8000  15 Running               c
  @end example
  
! In this listing, the asterisk before the first task indicates it’s
! currently running task. The first column lists the task ID used
  to refer to tasks in the following commands.
  @end table
  @end itemize
*************** These commands are like the @code{break
*** 18769,18780 ****
  `linespec' specifies source lines.
  
  Use the qualifier @code{task @var{taskid}} with a breakpoint command
! to specify that you only want @code{GDB} to stop the program when a
  particular Ada task reaches this breakpoint. `taskid' is one of the
  numeric task identifiers assigned by @code{GDB}, shown in the first
  column of the @code{info tasks} display.
  
! If you do not specify @code{task @var{taskid}} when you set a
  breakpoint, the breakpoint applies to `all' tasks of your
  program.
  
--- 18921,18932 ----
  `linespec' specifies source lines.
  
  Use the qualifier @code{task @var{taskid}} with a breakpoint command
! to specify that you only want @code{GDB} to stop the program when that
  particular Ada task reaches this breakpoint. `taskid' is one of the
  numeric task identifiers assigned by @code{GDB}, shown in the first
  column of the @code{info tasks} display.
  
! If you don’t specify @code{task @var{taskid}} when you set a
  breakpoint, the breakpoint applies to `all' tasks of your
  program.
  
*************** breakpoint condition (before the @code{i
*** 18795,18808 ****
  @quotation
  
  This command allows switching to the task referred by `taskno'. In
! particular, this allows browsing of the backtrace of the specified
! task. It is advisable to switch back to the original task before
! continuing execution otherwise the scheduling of the program may be
! perturbed.
  @end quotation
  @end itemize
  
! For more detailed information on the tasking support,
  see @cite{Debugging with GDB}.
  
  @geindex Debugging Generic Units
--- 18947,18960 ----
  @quotation
  
  This command allows switching to the task referred by `taskno'. In
! particular, it allows browsing the backtrace of the specified
! task. You should switch back to the original task before
! continuing execution; otherwise the scheduling of the program may be
! disturbed.
  @end quotation
  @end itemize
  
! For more detailed information on tasking support,
  see @cite{Debugging with GDB}.
  
  @geindex Debugging Generic Units
*************** see @cite{Debugging with GDB}.
*** 18810,18826 ****
  @geindex Generics
  
  @node Debugging Generic Units,Remote Debugging with gdbserver,Ada Tasks,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{160}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{161}
  @subsection Debugging Generic Units
  
  
! GNAT always uses code expansion for generic instantiation. This means that
! each time an instantiation occurs, a complete copy of the original code is
! made, with appropriate substitutions of formals by actuals.
  
! It is not possible to refer to the original generic entities in
! @code{GDB}, but it is always possible to debug a particular instance of
! a generic, by using the appropriate expanded names. For example, if we have
  
  @quotation
  
--- 18962,18979 ----
  @geindex Generics
  
  @node Debugging Generic Units,Remote Debugging with gdbserver,Ada Tasks,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{163}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{164}
  @subsection Debugging Generic Units
  
  
! GNAT always uses the code expansion mechanism for generic
! instantiation. This means that each time an instantiation occurs, the
! compiler makes a complete copy of the original code, with
! appropriate substitutions of formals by actuals.
  
! You can’t refer to the original generic entities in @code{GDB}, but you
! can debug a particular instance of a generic by using the appropriate
! expanded names. For example, if we have
  
  @quotation
  
*************** use the command:
*** 18863,18889 ****
  @end quotation
  
  When the breakpoint occurs, you can step through the code of the
! instance in the normal manner and examine the values of local variables, as for
! other units.
  
  @geindex Remote Debugging with gdbserver
  
  @node Remote Debugging with gdbserver,GNAT Abnormal Termination or Failure to Terminate,Debugging Generic Units,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{162}@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{163}
  @subsection Remote Debugging with gdbserver
  
  
! On platforms where gdbserver is supported, it is possible to use this tool
  to debug your application remotely.  This can be useful in situations
  where the program needs to be run on a target host that is different
  from the host used for development, particularly when the target has
  a limited amount of resources (either CPU and/or memory).
  
! To do so, start your program using gdbserver on the target machine.
! gdbserver then automatically suspends the execution of your program
! at its entry point, waiting for a debugger to connect to it.  The
! following commands starts an application and tells gdbserver to
! wait for a connection with the debugger on localhost port 4444.
  
  @quotation
  
--- 19016,19042 ----
  @end quotation
  
  When the breakpoint occurs, you can step through the code of the
! instance in the normal manner and examine the values of local
! variables, as you do for other units.
  
  @geindex Remote Debugging with gdbserver
  
  @node Remote Debugging with gdbserver,GNAT Abnormal Termination or Failure to Terminate,Debugging Generic Units,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{165}@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{166}
  @subsection Remote Debugging with gdbserver
  
  
! On platforms that support @code{gdbserver}, you can use this tool
  to debug your application remotely.  This can be useful in situations
  where the program needs to be run on a target host that is different
  from the host used for development, particularly when the target has
  a limited amount of resources (either CPU and/or memory).
  
! To do so, start your program using @code{gdbserver} on the target machine.
! @code{gdbserver} automatically suspends the execution of your program
! at its entry point, waiting for a debugger to connect to it.  You use the
! following commands to start an application and tell @code{gdbserver} to
! wait for a connection with the debugger on @code{localhost} port 4444.
  
  @quotation
  
*************** Listening on port 4444
*** 18894,18903 ****
  @end example
  @end quotation
  
! Once gdbserver has started listening, we can tell the debugger to establish
! a connection with this gdbserver, and then start the same debugging session
! as if the program was being debugged on the same host, directly under
! the control of GDB.
  
  @quotation
  
--- 19047,19056 ----
  @end example
  @end quotation
  
! Once @code{gdbserver} has started listening, you can tell the debugger to
! establish a connection with this @code{gdbserver}, and then start a
! debugging session as if the program was being debugged on the
! same host, directly under the control of @code{GDB}.
  
  @quotation
  
*************** Breakpoint 1, foo () at foo.adb:4
*** 18916,18939 ****
  @end example
  @end quotation
  
! It is also possible to use gdbserver to attach to an already running
! program, in which case the execution of that program is simply suspended
! until the connection between the debugger and gdbserver is established.
  
! For more information on how to use gdbserver, see the `Using the gdbserver Program'
! section in @cite{Debugging with GDB}.
! GNAT provides support for gdbserver on x86-linux, x86-windows and x86_64-linux.
  
  @geindex Abnormal Termination or Failure to Terminate
  
  @node GNAT Abnormal Termination or Failure to Terminate,Naming Conventions for GNAT Source Files,Remote Debugging with gdbserver,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{164}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{165}
  @subsection GNAT Abnormal Termination or Failure to Terminate
  
  
  When presented with programs that contain serious errors in syntax
  or semantics,
! GNAT may on rare occasions  experience problems in operation, such
  as aborting with a
  segmentation fault or illegal memory access, raising an internal
  exception, terminating abnormally, or failing to terminate at all.
--- 19069,19093 ----
  @end example
  @end quotation
  
! You can also use @code{gdbserver} to attach to an already running
! program, in which case the execution of that program is suspended
! until you have established the connection between the debugger and @code{gdbserver}.
  
! For more information on how to use @code{gdbserver}, see the `Using the
! gdbserver Program' section in @cite{Debugging with GDB}.  GNAT
! provides support for @code{gdbserver} on x86-linux, x86-windows and
! x86_64-linux.
  
  @geindex Abnormal Termination or Failure to Terminate
  
  @node GNAT Abnormal Termination or Failure to Terminate,Naming Conventions for GNAT Source Files,Remote Debugging with gdbserver,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{167}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{168}
  @subsection GNAT Abnormal Termination or Failure to Terminate
  
  
  When presented with programs that contain serious errors in syntax
  or semantics,
! GNAT may, on rare occasions, experience problems such
  as aborting with a
  segmentation fault or illegal memory access, raising an internal
  exception, terminating abnormally, or failing to terminate at all.
*************** In such cases, you can activate
*** 18941,18957 ****
  various features of GNAT that can help you pinpoint the construct in your
  program that is the likely source of the problem.
  
! The following strategies are presented in increasing order of
! difficulty, corresponding to your experience in using GNAT and your
! familiarity with compiler internals.
  
  
  @itemize *
  
  @item 
! Run @code{gcc} with the @code{-gnatf}. This first
! switch causes all errors on a given line to be reported. In its absence,
! only the first error on a line is displayed.
  
  The @code{-gnatdO} switch causes errors to be displayed as soon as they
  are encountered, rather than after compilation is terminated. If GNAT
--- 19095,19111 ----
  various features of GNAT that can help you pinpoint the construct in your
  program that is the likely source of the problem.
  
! The following strategies for you to use in such cases are presented in
! increasing order of difficulty, corresponding to your experience in
! using GNAT and your familiarity with compiler internals.
  
  
  @itemize *
  
  @item 
! Run @code{gcc} with the @code{-gnatf}. This switch causes all errors
! on a given line to be reported. In its absence, GNAT only displays
! the first error on a line.
  
  The @code{-gnatdO} switch causes errors to be displayed as soon as they
  are encountered, rather than after compilation is terminated. If GNAT
*************** Run @code{gcc} with the @code{-v} (verbo
*** 18963,18969 ****
  mode, @code{gcc} produces ongoing information about the progress of the
  compilation and provides the name of each procedure as code is
  generated. This switch allows you to find which Ada procedure was being
! compiled when it encountered a code generation problem.
  @end itemize
  
  @geindex -gnatdc switch
--- 19117,19123 ----
  mode, @code{gcc} produces ongoing information about the progress of the
  compilation and provides the name of each procedure as code is
  generated. This switch allows you to find which Ada procedure was being
! compiled when it encountered a problem.
  @end itemize
  
  @geindex -gnatdc switch
*************** either a compilation unit or nested unit
*** 18980,19001 ****
  @item 
  Finally, you can start
  @code{gdb} directly on the @code{gnat1} executable. @code{gnat1} is the
! front-end of GNAT, and can be run independently (normally it is just
  called from @code{gcc}). You can use @code{gdb} on @code{gnat1} as you
! would on a C program (but @ref{151,,The GNAT Debugger GDB} for caveats). The
  @code{where} command is the first line of attack; the variable
  @code{lineno} (seen by @code{print lineno}), used by the second phase of
! @code{gnat1} and by the @code{gcc} backend, indicates the source line at
  which the execution stopped, and @code{input_file name} indicates the name of
  the source file.
  @end itemize
  
  @node Naming Conventions for GNAT Source Files,Getting Internal Debugging Information,GNAT Abnormal Termination or Failure to Terminate,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{166}@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{167}
  @subsection Naming Conventions for GNAT Source Files
  
  
! In order to examine the workings of the GNAT system, the following
  brief description of its organization may be helpful:
  
  
--- 19134,19155 ----
  @item 
  Finally, you can start
  @code{gdb} directly on the @code{gnat1} executable. @code{gnat1} is the
! front-end of GNAT and can be run independently (normally it is just
  called from @code{gcc}). You can use @code{gdb} on @code{gnat1} as you
! would on a C program (but @ref{154,,The GNAT Debugger GDB} for caveats). The
  @code{where} command is the first line of attack; the variable
  @code{lineno} (seen by @code{print lineno}), used by the second phase of
! @code{gnat1} and by the @code{gcc} back end, indicates the source line at
  which the execution stopped, and @code{input_file name} indicates the name of
  the source file.
  @end itemize
  
  @node Naming Conventions for GNAT Source Files,Getting Internal Debugging Information,GNAT Abnormal Termination or Failure to Terminate,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{169}@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{16a}
  @subsection Naming Conventions for GNAT Source Files
  
  
! In order to bettter understand the workings of the GNAT system, the following
  brief description of its organization may be helpful:
  
  
*************** parsing of select statements can be foun
*** 19012,19026 ****
  @item 
  All files prefixed with @code{sem} perform semantic analysis. The
  numbers correspond to chapters of the Ada standard. For example, all
! issues involving context clauses can be found in @code{sem_ch10.adb}. In
! addition, some features of the language require sufficient special processing
! to justify their own semantic files: sem_aggr for aggregates, sem_disp for
! dynamic dispatching, etc.
  
  @item 
  All files prefixed with @code{exp} perform normalization and
  expansion of the intermediate representation (abstract syntax tree, or AST).
! these files use the same numbering scheme as the parser and semantics files.
  For example, the construction of record initialization procedures is done in
  @code{exp_ch3.adb}.
  
--- 19166,19184 ----
  @item 
  All files prefixed with @code{sem} perform semantic analysis. The
  numbers correspond to chapters of the Ada standard. For example, all
! issues involving context clauses can be found in
! @code{sem_ch10.adb}. In addition, some features of the language
! require sufficient special processing to justify their own semantic
! files, such as @code{sem_aggr.adb} for aggregates and
! @code{sem_disp.adb} for dynamic dispatching.
  
  @item 
  All files prefixed with @code{exp} perform normalization and
  expansion of the intermediate representation (abstract syntax tree, or AST).
! The expansion has the effect of lowering the semantic level of the AST to
! a level closer to what the back end can handle. For example, it converts
! tasking operations into calls to the appropriate runtime routines.
! These files use the same numbering scheme as the parser and semantics files.
  For example, the construction of record initialization procedures is done in
  @code{exp_ch3.adb}.
  
*************** The files @code{einfo.ads} and @code{ein
*** 19042,19047 ****
--- 19200,19210 ----
  all entities, computed during semantic analysis.
  
  @item 
+ The files prefixed with @code{gen_il} generate most of the functions
+ defined in @code{sinfo.ads} and @code{einfo.ads}, which set and get
+ various fields and flags of the AST.
+ 
+ @item 
  Library management issues are dealt with in files with prefix
  @code{lib}.
  
*************** the other @code{.c} files are modificati
*** 19072,19083 ****
  @end itemize
  
  @node Getting Internal Debugging Information,Stack Traceback,Naming Conventions for GNAT Source Files,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{168}@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{169}
  @subsection Getting Internal Debugging Information
  
  
  Most compilers have internal debugging switches and modes. GNAT
! does also, except GNAT internal debugging switches and modes are not
  secret. A summary and full description of all the compiler and binder
  debug flags are in the file @code{debug.adb}. You must obtain the
  sources of the compiler to see the full detailed effects of these flags.
--- 19235,19246 ----
  @end itemize
  
  @node Getting Internal Debugging Information,Stack Traceback,Naming Conventions for GNAT Source Files,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{16b}@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{16c}
  @subsection Getting Internal Debugging Information
  
  
  Most compilers have internal debugging switches and modes. GNAT
! does too, except GNAT internal debugging switches and modes are not
  secret. A summary and full description of all the compiler and binder
  debug flags are in the file @code{debug.adb}. You must obtain the
  sources of the compiler to see the full detailed effects of these flags.
*************** sources of the compiler to see the full
*** 19085,19095 ****
  The switches that print the source of the program (reconstructed from
  the internal tree) are of general interest for user programs, as are the
  options to print
! the full internal tree, and the entity table (the symbol table
  information). The reconstructed source provides a readable version of the
! program after the front-end has completed analysis and  expansion,
  and is useful when studying the performance of specific constructs.
! For example, constraint checks are indicated, complex aggregates
  are replaced with loops and assignments, and tasking primitives
  are replaced with run-time calls.
  
--- 19248,19258 ----
  The switches that print the source of the program (reconstructed from
  the internal tree) are of general interest for user programs, as are the
  options to print
! the full internal tree and the entity table (the symbol table
  information). The reconstructed source provides a readable version of the
! program after the front-end has completed analysis and  expansion
  and is useful when studying the performance of specific constructs.
! For example, constraint checks are shown explicitly, complex aggregates
  are replaced with loops and assignments, and tasking primitives
  are replaced with run-time calls.
  
*************** are replaced with run-time calls.
*** 19100,19106 ****
  @geindex stack unwinding
  
  @node Stack Traceback,Pretty-Printers for the GNAT runtime,Getting Internal Debugging Information,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{16a}@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{16b}
  @subsection Stack Traceback
  
  
--- 19263,19269 ----
  @geindex stack unwinding
  
  @node Stack Traceback,Pretty-Printers for the GNAT runtime,Getting Internal Debugging Information,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{16d}@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{16e}
  @subsection Stack Traceback
  
  
*************** that is to say the subprogram currently
*** 19117,19123 ****
  from which we want to obtain the traceback.
  
  Note that there is no runtime performance penalty when stack traceback
! is enabled, and no exception is raised during program execution.
  
  @geindex traceback
  @geindex non-symbolic
--- 19280,19286 ----
  from which we want to obtain the traceback.
  
  Note that there is no runtime performance penalty when stack traceback
! is enabled and no exception is raised during program execution.
  
  @geindex traceback
  @geindex non-symbolic
*************** is enabled, and no exception is raised d
*** 19129,19135 ****
  @end menu
  
  @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{16c}@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{16d}
  @subsubsection Non-Symbolic Traceback
  
  
--- 19292,19298 ----
  @end menu
  
  @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{16f}@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{170}
  @subsubsection Non-Symbolic Traceback
  
  
*************** for a complete list of supported platfor
*** 19140,19154 ****
  @subsubheading Tracebacks From an Unhandled Exception
  
  
! A runtime non-symbolic traceback is a list of addresses of call instructions.
! To enable this feature you must use the @code{-E} @code{gnatbind} option. With
! this option a stack traceback is stored as part of exception information.
  
  You can translate this information using the @code{addr2line} tool, provided that
! the program is compiled with debugging options (see @ref{dd,,Compiler Switches})
  and linked at a fixed position with @code{-no-pie}.
  
! Here is a simple example with @code{gnatmake}:
  
  @quotation
  
--- 19303,19318 ----
  @subsubheading Tracebacks From an Unhandled Exception
  
  
! A runtime non-symbolic traceback is a list of addresses of call
! instructions.  To enable this feature you must use the @code{-E}
! @code{gnatbind} switch. With this switch, a stack traceback is stored at
! runtime as part of exception information.
  
  You can translate this information using the @code{addr2line} tool, provided that
! the program is compiled with debugging options (see @ref{de,,Compiler Switches})
  and linked at a fixed position with @code{-no-pie}.
  
! Here’s a simple example with @code{gnatmake}:
  
  @quotation
  
*************** Call stack traceback locations:
*** 19182,19192 ****
  @end example
  @end quotation
  
! As we see the traceback lists a sequence of addresses for the unhandled
! exception @code{CONSTRAINT_ERROR} raised in procedure P1. It is easy to
! guess that this exception come from procedure P1. To translate these
! addresses into the source lines where the calls appear, the @code{addr2line}
! tool needs to be invoked like this:
  
  @quotation
  
--- 19346,19356 ----
  @end example
  @end quotation
  
! As we can see, the traceback lists a sequence of addresses for the unhandled
! exception @code{CONSTRAINT_ERROR} raised in procedure P1. It’s easy to
! see that this exception come from procedure P1. To translate these
! addresses into the source lines where the calls appear, you need to
! invoke the @code{addr2line} tool like this:
  
  @quotation
  
*************** $ addr2line -e stb -a -f -p --demangle=g
*** 19259,19271 ****
  @end example
  @end quotation
  
! From this traceback we can see that the exception was raised in @code{stb.adb}
  at line 5, which was reached from a procedure call in @code{stb.adb} at line
! 10, and so on. The @code{b~std.adb} is the binder file, which contains the
! call to the main program. @ref{110,,Running gnatbind}. The remaining entries are
! assorted runtime routines and the output will vary from platform to platform.
  
! It is also possible to use @code{GDB} with these traceback addresses to debug
  the program. For example, we can break at a given code location, as reported
  in the stack traceback:
  
--- 19423,19435 ----
  @end example
  @end quotation
  
! From this traceback, we can see that the exception was raised in @code{stb.adb}
  at line 5, which was reached from a procedure call in @code{stb.adb} at line
! 10, and so on. @code{b~std.adb} is the binder file, which contains the
! call to the main program; @ref{112,,Running gnatbind}. The remaining entries are
! assorted runtime routines. The output will vary from platform to platform.
  
! You can also use @code{GDB} with these traceback addresses to debug
  the program. For example, we can break at a given code location, as reported
  in the stack traceback:
  
*************** Executables on recent Linux and Windows
*** 19293,19301 ****
  using the switch @code{-no-pie} during linking, you need to use the
  @code{gnatsymbolize} tool with @code{--load} instead of the @code{addr2line}
  tool. The main difference is that you need to copy the Load Address output
! in the traceback ahead of the sequence of addresses. And the default mode
  of @code{gnatsymbolize} is equivalent to that of @code{addr2line} with the above
! switches, so none of them is needed:
  
  @example
  $ gnatmake stb -g -bargs -E
--- 19457,19465 ----
  using the switch @code{-no-pie} during linking, you need to use the
  @code{gnatsymbolize} tool with @code{--load} instead of the @code{addr2line}
  tool. The main difference is that you need to copy the Load Address output
! in the traceback ahead of the sequence of addresses. The default mode
  of @code{gnatsymbolize} is equivalent to that of @code{addr2line} with the above
! switches, so none of them are needed:
  
  @example
  $ gnatmake stb -g -bargs -E
*************** $ gnatsymbolize --load stb 0x400000 0x40
*** 19322,19331 ****
  @subsubheading Tracebacks From Exception Occurrences
  
  
! Non-symbolic tracebacks are obtained by using the @code{-E} binder argument.
! The stack traceback is attached to the exception information string, and can
! be retrieved in an exception handler within the Ada program, by means of the
! Ada facilities defined in @code{Ada.Exceptions}. Here is a simple example:
  
  @quotation
  
--- 19486,19495 ----
  @subsubheading Tracebacks From Exception Occurrences
  
  
! Non-symbolic tracebacks are obtained by using the @code{-E} binder switch.
! The stack traceback is attached to the exception information string and you can
! retrieve it in an exception handler within the Ada program by means of the
! Ada facilities defined in @code{Ada.Exceptions}. Here’s a simple example:
  
  @quotation
  
*************** Call stack traceback locations:
*** 19371,19385 ****
  @subsubheading Tracebacks From Anywhere in a Program
  
  
! It is also possible to retrieve a stack traceback from anywhere in a program.
! For this you need to use the @code{GNAT.Traceback} API. This package includes a
! procedure called @code{Call_Chain} that computes a complete stack traceback, as
! well as useful display procedures described below. It is not necessary to use
! the @code{-E} @code{gnatbind} option in this case, because the stack traceback
  mechanism is invoked explicitly.
  
! In the following example we compute a traceback at a specific location in the
! program, and we display it using @code{GNAT.Debug_Utilities.Image} to convert
  addresses to strings:
  
  @quotation
--- 19535,19549 ----
  @subsubheading Tracebacks From Anywhere in a Program
  
  
! You can also retrieve a stack traceback from anywhere in a program.
! For this, you need to use the @code{GNAT.Traceback} API. This package includes a
! procedure called @code{Call_Chain} that computes a complete stack traceback as
! well as useful display procedures described below. You don’t have to use
! the @code{-E} @code{gnatbind} switch in this case because the stack traceback
  mechanism is invoked explicitly.
  
! In the following example, we compute a traceback at a specific location in the
! program and display it using @code{GNAT.Debug_Utilities.Image} to convert
  addresses to strings:
  
  @quotation
*************** In STB.P1 : 0x40F1E4 0x4014F2 0x40170B 0
*** 19442,19448 ****
  @end example
  @end quotation
  
! You can then get further information by invoking the @code{addr2line} tool or
  the @code{gnatsymbolize} tool as described earlier (note that the hexadecimal
  addresses need to be specified in C format, with a leading ‘0x’).
  
--- 19606,19612 ----
  @end example
  @end quotation
  
! You can get even more information by invoking the @code{addr2line} tool or
  the @code{gnatsymbolize} tool as described earlier (note that the hexadecimal
  addresses need to be specified in C format, with a leading ‘0x’).
  
*************** addresses need to be specified in C form
*** 19450,19456 ****
  @geindex symbolic
  
  @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{16e}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{16f}
  @subsubsection Symbolic Traceback
  
  
--- 19614,19620 ----
  @geindex symbolic
  
  @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{171}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{172}
  @subsubsection Symbolic Traceback
  
  
*************** Note that this feature is not supported
*** 19462,19468 ****
  list of currently supported platforms.
  
  Note that the symbolic traceback requires that the program be compiled
! with debug information. If it is not compiled with debug information
  only the non-symbolic information will be valid.
  
  @subsubheading Tracebacks From Exception Occurrences
--- 19626,19632 ----
  list of currently supported platforms.
  
  Note that the symbolic traceback requires that the program be compiled
! with debug information. If you do not compile it with debug information,
  only the non-symbolic information will be valid.
  
  @subsubheading Tracebacks From Exception Occurrences
*************** $ stb
*** 19519,19528 ****
  @subsubheading Tracebacks From Anywhere in a Program
  
  
! It is possible to get a symbolic stack traceback
! from anywhere in a program, just as for non-symbolic tracebacks.
  The first step is to obtain a non-symbolic
! traceback, and then call @code{Symbolic_Traceback} to compute the symbolic
  information. Here is an example:
  
  @quotation
--- 19683,19692 ----
  @subsubheading Tracebacks From Anywhere in a Program
  
  
! You can get a symbolic stack traceback
! from anywhere in a program, just as you can for non-symbolic tracebacks.
  The first step is to obtain a non-symbolic
! traceback. Then call @code{Symbolic_Traceback} to compute the symbolic
  information. Here is an example:
  
  @quotation
*************** end STB;
*** 19562,19575 ****
  @subsubheading Automatic Symbolic Tracebacks
  
  
! Symbolic tracebacks may also be enabled by using the -Es switch to gnatbind (as
! in @code{gprbuild -g ... -bargs -Es}).
! This will cause the Exception_Information to contain a symbolic traceback,
! which will also be printed if an unhandled exception terminates the
! program.
  
  @node Pretty-Printers for the GNAT runtime,,Stack Traceback,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{170}@anchor{gnat_ugn/gnat_and_program_execution pretty-printers-for-the-gnat-runtime}@anchor{171}
  @subsection Pretty-Printers for the GNAT runtime
  
  
--- 19726,19739 ----
  @subsubheading Automatic Symbolic Tracebacks
  
  
! You may also enable symbolic tracebacks by using
! the @code{-Es} switch to gnatbind (as in @code{gprbuild -g ... -bargs -Es}).
! This causes the Exception_Information to contain a symbolic
! traceback, which will also be printed if an unhandled exception
! terminates the program.
  
  @node Pretty-Printers for the GNAT runtime,,Stack Traceback,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{173}@anchor{gnat_ugn/gnat_and_program_execution pretty-printers-for-the-gnat-runtime}@anchor{174}
  @subsection Pretty-Printers for the GNAT runtime
  
  
*************** end PP;
*** 19602,19609 ****
  @end quotation
  
  When this program is built with debugging information and run under
! GDB up to the @code{Map.Clear} statement, trying to print @code{Map} will
! yield information that is only relevant to the developers of our standard
  containers:
  
  @quotation
--- 19766,19773 ----
  @end quotation
  
  When this program is built with debugging information and run under
! @code{GDB} up to the @code{Map.Clear} statement, trying to print @code{Map} will
! yield information that is only relevant to the developers of the standard
  containers:
  
  @quotation
*************** $1 = (
*** 19625,19635 ****
  @end example
  @end quotation
  
! Fortunately, GDB has a feature called pretty-printers@footnote{http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Introduction},
! which allows customizing how GDB displays data structures. The GDB
! shipped with GNAT embeds such pretty-printers for the most common
! containers in the standard library.  To enable them, either run the
! following command manually under GDB or add it to your @code{.gdbinit} file:
  
  @quotation
  
--- 19789,19801 ----
  @end example
  @end quotation
  
! Fortunately, @code{GDB `@w{`}has a feature called `pretty-printers
! <http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Introduction>`_,
! which allows customizing how `@w{`}GDB} displays data structures. The
! @code{GDB} shipped with GNAT embeds such pretty-printers for the most
! common containers in the standard library.  To enable them, either run
! the following command manually under @code{GDB} or add it to your
! @code{.gdbinit} file:
  
  @quotation
  
*************** python import gnatdbg; gnatdbg.setup()
*** 19638,19644 ****
  @end example
  @end quotation
  
! Once this is done, GDB’s @code{print} command will automatically use
  these pretty-printers when appropriate. Using the previous example:
  
  @quotation
--- 19804,19810 ----
  @end example
  @end quotation
  
! Once you’ve done this, @code{GDB}’s @code{print} command will automatically use
  these pretty-printers when appropriate. Using the previous example:
  
  @quotation
*************** including when displaying the arguments
*** 19658,19665 ****
  GDB’s @code{backtrace} command) or when printing the value returned by a
  function (in GDB’s @code{finish} command).
  
! To display a value without involving pretty-printers, @code{print} can be
! invoked with its @code{/r} option:
  
  @quotation
  
--- 19824,19831 ----
  GDB’s @code{backtrace} command) or when printing the value returned by a
  function (in GDB’s @code{finish} command).
  
! To display a value without involving pretty-printers, you can invoke
! @code{print} with its @code{/r} option:
  
  @quotation
  
*************** $1 = (
*** 19670,19682 ****
  @end example
  @end quotation
  
! Finer control of pretty-printers is also possible: see GDB's online documentation@footnote{http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Commands}
  for more information.
  
  @geindex Profiling
  
  @node Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{172}@anchor{gnat_ugn/gnat_and_program_execution profiling}@anchor{149}
  @section Profiling
  
  
--- 19836,19848 ----
  @end example
  @end quotation
  
! You can also obtain finer control of pretty-printers: see GDB's online documentation@footnote{http://docs.adacore.com/gdb-docs/html/gdb.html#Pretty_002dPrinter-Commands}
  for more information.
  
  @geindex Profiling
  
  @node Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{175}@anchor{gnat_ugn/gnat_and_program_execution profiling}@anchor{14c}
  @section Profiling
  
  
*************** This section describes how to use the @c
*** 19692,19711 ****
  @end menu
  
  @node Profiling an Ada Program with gprof,,,Profiling
! @anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{173}@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{174}
  @subsection Profiling an Ada Program with gprof
  
  
  This section is not meant to be an exhaustive documentation of @code{gprof}.
! Full documentation for it can be found in the @cite{GNU Profiler User’s Guide}
  documentation that is part of this GNAT distribution.
  
  Profiling a program helps determine the parts of a program that are executed
! most often, and are therefore the most time-consuming.
  
  @code{gprof} is the standard GNU profiling tool; it has been enhanced to
  better handle Ada programs and multitasking.
! It is currently supported on the following platforms
  
  
  @itemize *
--- 19858,19877 ----
  @end menu
  
  @node Profiling an Ada Program with gprof,,,Profiling
! @anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{176}@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{177}
  @subsection Profiling an Ada Program with gprof
  
  
  This section is not meant to be an exhaustive documentation of @code{gprof}.
! You can find full documentation for it in the @cite{GNU Profiler User’s Guide}
  documentation that is part of this GNAT distribution.
  
  Profiling a program helps determine the parts of a program that are executed
! most often and are therefore the most time-consuming.
  
  @code{gprof} is the standard GNU profiling tool; it has been enhanced to
  better handle Ada programs and multitasking.
! It’s currently supported on the following platforms
  
  
  @itemize *
*************** Linux x86/x86_64
*** 19717,19723 ****
  Windows x86/x86_64 (without PIE support)
  @end itemize
  
! In order to profile a program using @code{gprof}, several steps are needed:
  
  
  @enumerate 
--- 19883,19890 ----
  Windows x86/x86_64 (without PIE support)
  @end itemize
  
! In order to profile a program using @code{gprof}, you need to perform the
! following steps:
  
  
  @enumerate 
*************** input.
*** 19734,19740 ****
  Analyze the results using the @code{gprof} tool.
  @end enumerate
  
! The following sections detail the different steps, and indicate how
  to interpret the results.
  
  @menu
--- 19901,19907 ----
  Analyze the results using the @code{gprof} tool.
  @end enumerate
  
! The following sections detail the different steps and indicate how
  to interpret the results.
  
  @menu
*************** to interpret the results.
*** 19746,19752 ****
  @end menu
  
  @node Compilation for profiling,Program execution,,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{175}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{176}
  @subsubsection Compilation for profiling
  
  
--- 19913,19919 ----
  @end menu
  
  @node Compilation for profiling,Program execution,,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{178}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{179}
  @subsubsection Compilation for profiling
  
  
*************** to interpret the results.
*** 19756,19766 ****
  @geindex -pg (gnatlink)
  @geindex for profiling
  
! In order to profile a program the first step is to tell the compiler
! to generate the necessary profiling information. The compiler switch to be used
! is @code{-pg}, which must be added to other compilation switches. This
! switch needs to be specified both during compilation and link stages, and can
! be specified once when using gnatmake:
  
  @quotation
  
--- 19923,19933 ----
  @geindex -pg (gnatlink)
  @geindex for profiling
  
! In order to profile a program, you must first to tell the compiler
! to generate the necessary profiling information. You do this using the compiler switch @code{-pg}, which you must add to other compilation switches. You need
! to specify this
! switch during compilation and link stages, and you can
! specified it only once when using @code{gnatmake}:
  
  @quotation
  
*************** $ gnatmake -f -pg -P my_project
*** 19771,19783 ****
  
  Note that only the objects that were compiled with the @code{-pg} switch will
  be profiled; if you need to profile your whole project, use the @code{-f}
! gnatmake switch to force full recompilation.
  
! Note that on Windows, gprof does not support PIE. The @code{-no-pie} switch
! should be added to the linker flags to disable this feature.
  
  @node Program execution,Running gprof,Compilation for profiling,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{177}@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{178}
  @subsubsection Program execution
  
  
--- 19938,19950 ----
  
  Note that only the objects that were compiled with the @code{-pg} switch will
  be profiled; if you need to profile your whole project, use the @code{-f}
! @code{gnatmake} switch to force full recompilation.
  
! Note that on Windows, @code{gprof} does not support PIE. You should add
! the @code{-no-pie} switch to the linker flags to disable PIE.
  
  @node Program execution,Running gprof,Compilation for profiling,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{17a}@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{17b}
  @subsubsection Program execution
  
  
*************** properly analyzed.
*** 19789,19802 ****
  
  Once the program completes execution, a data file called @code{gmon.out} is
  generated in the directory where the program was launched from. If this file
! already exists, it will be overwritten.
  
  @node Running gprof,Interpretation of profiling results,Program execution,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{179}@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{17a}
  @subsubsection Running gprof
  
  
! The @code{gprof} tool is called as follow:
  
  @quotation
  
--- 19956,19969 ----
  
  Once the program completes execution, a data file called @code{gmon.out} is
  generated in the directory where the program was launched from. If this file
! already exists, it will be overwritten by running the program.
  
  @node Running gprof,Interpretation of profiling results,Program execution,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{17c}@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{17d}
  @subsubsection Running gprof
  
  
! You can call the @code{gprof} tool as follows:
  
  @quotation
  
*************** $ gprof my_prog
*** 19814,19820 ****
  @end example
  @end quotation
  
! The complete form of the gprof command line is the following:
  
  @quotation
  
--- 19981,19987 ----
  @end example
  @end quotation
  
! The complete form of the @code{gprof} command line is the following:
  
  @quotation
  
*************** $ gprof [switches] [executable [data-fil
*** 19823,19844 ****
  @end example
  @end quotation
  
! @code{gprof} supports numerous switches. The order of these
! switch does not matter. The full list of options can be found in
! the GNU Profiler User’s Guide documentation that comes with this documentation.
  
! The following is the subset of those switches that is most relevant:
  
  @geindex --demangle (gprof)
  
  
  @table @asis
  
! @item @code{--demangle[=@var{style}]}, @code{--no-demangle}
  
! These options control whether symbol names should be demangled when
! printing output.  The default is to demangle C++ symbols.  The
! @code{--no-demangle} option may be used to turn off demangling. Different
  compilers have different mangling styles.  The optional demangling style
  argument can be used to choose an appropriate demangling style for your
  compiler, in particular Ada symbols generated by GNAT can be demangled using
--- 19990,20010 ----
  @end example
  @end quotation
  
! @code{gprof} supports numerous switches, whose order does not matter. You
! can find the full list of switches in the @cite{GNU Profiler User’s Guide}.
  
! The following are the most relevant of those switches:
  
  @geindex --demangle (gprof)
  
  
  @table @asis
  
! @item @code{--demangle[=`style']}, @code{--no-demangle}
  
! These switches control whether symbol names should be demangled when
! printing output.  The default is to demangle C++ symbols.  You can use
! @code{--no-demangle} to turn off demangling. Different
  compilers have different mangling styles.  The optional demangling style
  argument can be used to choose an appropriate demangling style for your
  compiler, in particular Ada symbols generated by GNAT can be demangled using
*************** compiler, in particular Ada symbols gene
*** 19850,19864 ****
  
  @table @asis
  
! @item @code{-e @var{function_name}}
  
! The @code{-e @var{function}} option tells @code{gprof} not to print
! information about the function @code{function_name} (and its
! children…) in the call graph.  The function will still be listed
  as a child of any functions that call it, but its index number will be
! shown as @code{[not printed]}.  More than one @code{-e} option may be
! given; only one @code{function_name} may be indicated with each @code{-e}
! option.
  @end table
  
  @geindex -E (gprof)
--- 20016,20030 ----
  
  @table @asis
  
! @item @code{-e `function_name'}
  
! The @code{-e `function'} option tells @code{gprof} not to print
! information about the function @code{function_name} and its
! children in the call graph.  The function will still be listed
  as a child of any functions that call it, but its index number will be
! shown as @code{[not printed]}.  You may specify more than one @code{-e} switch,
! but you may only include one @code{function_name}  with each @code{-e}
! switch.
  @end table
  
  @geindex -E (gprof)
*************** option.
*** 19866,19878 ****
  
  @table @asis
  
! @item @code{-E @var{function_name}}
  
! The @code{-E @var{function}} option works like the @code{-e} option, but
  execution time spent in the function (and children who were not called from
! anywhere else), will not be used to compute the percentages-of-time for
! the call graph.  More than one @code{-E} option may be given; only one
! @code{function_name} may be indicated with each @code{-E`} option.
  @end table
  
  @geindex -f (gprof)
--- 20032,20044 ----
  
  @table @asis
  
! @item @code{-E `function_name'}
  
! The @code{-E `function'} switch works like the @code{-e} switch, but
  execution time spent in the function (and children who were not called from
! anywhere else) will not be used to compute the percentages-of-time for
! the call graph.  You may specify more than one @code{-E} switch, but
! you may only include one  @code{function_name} with each @code{-E} switch.
  @end table
  
  @geindex -f (gprof)
*************** the call graph.  More than one @code{-E}
*** 19880,19892 ****
  
  @table @asis
  
! @item @code{-f @var{function_name}}
  
! The @code{-f @var{function}} option causes @code{gprof} to limit the
! call graph to the function @code{function_name} and its children (and
! their children…).  More than one @code{-f} option may be given;
! only one @code{function_name} may be indicated with each @code{-f}
! option.
  @end table
  
  @geindex -F (gprof)
--- 20046,20057 ----
  
  @table @asis
  
! @item @code{-f `function_name'}
  
! The @code{-f `function'} switch causes @code{gprof} to limit the
! call graph to the function @code{function_name} and its children and
! their children.  You may specify more than one @code{-f} switch,
! but you may only include one @code{function_name} with each @code{-f} switch.
  @end table
  
  @geindex -F (gprof)
*************** option.
*** 19894,19935 ****
  
  @table @asis
  
! @item @code{-F @var{function_name}}
  
! The @code{-F @var{function}} option works like the @code{-f} option, but
! only time spent in the function and its children (and their
! children…) will be used to determine total-time and
! percentages-of-time for the call graph.  More than one @code{-F} option
! may be given; only one @code{function_name} may be indicated with each
! @code{-F} option.  The @code{-F} option overrides the @code{-E} option.
  @end table
  
  @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{17b}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{17c}
  @subsubsection Interpretation of profiling results
  
  
! The results of the profiling analysis are represented by two arrays: the
! ‘flat profile’ and the ‘call graph’. Full documentation of those outputs
! can be found in the GNU Profiler User’s Guide.
  
! The flat profile shows the time spent in each function of the program, and how
! many time it has been called. This allows you to locate easily the most
  time-consuming functions.
  
  The call graph shows, for each subprogram, the subprograms that call it,
  and the subprograms that it calls. It also provides an estimate of the time
! spent in each of those callers/called subprograms.
  
  @node Improving Performance,Overflow Check Handling in GNAT,Profiling,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{14a}@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{17d}
  @section Improving Performance
  
  
  @geindex Improving performance
  
  This section presents several topics related to program performance.
! It first describes some of the tradeoffs that need to be considered
  and some of the techniques for making your program run faster.
  
  It then documents the unused subprogram/data elimination feature,
--- 20059,20101 ----
  
  @table @asis
  
! @item @code{-F `function_name'}
  
! The @code{-F `function'} switch works like the @code{-f} switch, but
! only time spent in the function and its children and their
! children will be used to determine total-time and
! percentages-of-time for the call graph.  You may specify more than one
! @code{-F} switch, but you may include only one @code{function_name}  with each
! @code{-F} switch.  The @code{-F} switch overrides the @code{-E}
! switch.
  @end table
  
  @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{17f}
  @subsubsection Interpretation of profiling results
  
  
! The results of the profiling analysis are represented by two arrays:
! the ‘flat profile’ and the ‘call graph’. You can find full
! documentation of those outputs in the @cite{GNU Profiler User’s Guide}.
  
! The flat profile shows the time spent in each function of the program and how
! many time it has been called. This allows you to easily locate the most
  time-consuming functions.
  
  The call graph shows, for each subprogram, the subprograms that call it,
  and the subprograms that it calls. It also provides an estimate of the time
! spent in each of those callers and called subprograms.
  
  @node Improving Performance,Overflow Check Handling in GNAT,Profiling,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{14d}@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{180}
  @section Improving Performance
  
  
  @geindex Improving performance
  
  This section presents several topics related to program performance.
! It first describes some of the tradeoffs that you need to consider
  and some of the techniques for making your program run faster.
  
  It then documents the unused subprogram/data elimination feature,
*************** which can reduce the size of program exe
*** 19943,19954 ****
  @end menu
  
  @node Performance Considerations,Text_IO Suggestions,,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{17f}
  @subsection Performance Considerations
  
  
  The GNAT system provides a number of options that allow a trade-off
! between
  
  
  @itemize *
--- 20109,20120 ----
  @end menu
  
  @node Performance Considerations,Text_IO Suggestions,,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{181}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{182}
  @subsection Performance Considerations
  
  
  The GNAT system provides a number of options that allow a trade-off
! between:
  
  
  @itemize *
*************** minimization of dependences and recompil
*** 19966,19974 ****
  the degree of run-time checking.
  @end itemize
  
! The defaults (if no options are selected) aim at improving the speed
  of compilation and minimizing dependences, at the expense of performance
! of the generated code:
  
  
  @itemize *
--- 20132,20140 ----
  the degree of run-time checking.
  @end itemize
  
! The default (if you don’t select any switches) aims at improving the speed
  of compilation and minimizing dependences, at the expense of performance
! of the generated code and consists of:
  
  
  @itemize *
*************** all run-time checks enabled except overf
*** 19984,19990 ****
  @end itemize
  
  These options are suitable for most program development purposes. This
! section describes how you can modify these choices, and also provides
  some guidelines on debugging optimized code.
  
  @menu
--- 20150,20156 ----
  @end itemize
  
  These options are suitable for most program development purposes. This
! section describes how you can modify these choices and also provides
  some guidelines on debugging optimized code.
  
  @menu
*************** some guidelines on debugging optimized c
*** 20004,20041 ****
  @end menu
  
  @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{181}
  @subsubsection Controlling Run-Time Checks
  
  
  By default, GNAT generates all run-time checks, except stack overflow
! checks, and checks for access before elaboration on subprogram
! calls. The latter are not required in default mode, because all
  necessary checking is done at compile time.
  
  @geindex -gnatp (gcc)
  
  @geindex -gnato (gcc)
  
! The gnat switch, @code{-gnatp} allows this default to be modified. See
! @ref{ec,,Run-Time Checks}.
  
  Our experience is that the default is suitable for most development
  purposes.
  
! Elaboration checks are off by default, and also not needed by default, since
! GNAT uses a static elaboration analysis approach that avoids the need for
! run-time checking. This manual contains a full chapter discussing the issue
! of elaboration checks, and if the default is not satisfactory for your use,
! you should read this chapter.
  
  For validity checks, the minimal checks required by the Ada Reference
! Manual (for case statements and assignments to array elements) are on
! by default. These can be suppressed by use of the @code{-gnatVn} switch.
  Note that in Ada 83, there were no validity checks, so if the Ada 83 mode
  is acceptable (or when comparing GNAT performance with an Ada 83 compiler),
  it may be reasonable to routinely use @code{-gnatVn}. Validity checks
! are also suppressed entirely if @code{-gnatp} is used.
  
  @geindex Overflow checks
  
--- 20170,20207 ----
  @end menu
  
  @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{183}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{184}
  @subsubsection Controlling Run-Time Checks
  
  
  By default, GNAT generates all run-time checks, except stack overflow
! checks and checks for access before elaboration on subprogram
! calls. The latter are not required in default mode because all
  necessary checking is done at compile time.
  
  @geindex -gnatp (gcc)
  
  @geindex -gnato (gcc)
  
! The GNAT switch, @code{-gnatp} allows you to modify this default; see
! @ref{ed,,Run-Time Checks}.
  
  Our experience is that the default is suitable for most development
  purposes.
  
! Elaboration checks are off by default and also not needed by default
! since GNAT uses a static elaboration analysis approach that avoids the
! need for run-time checking. This manual contains a full chapter
! discussing the issue of elaboration checks and you should read this
! chapter if the default is not satisfactory for your use,
  
  For validity checks, the minimal checks required by the Ada Reference
! Manual (for case statements and assignments to array elements) are enabled
! by default. You can suppress these by using the @code{-gnatVn} switch.
  Note that in Ada 83, there were no validity checks, so if the Ada 83 mode
  is acceptable (or when comparing GNAT performance with an Ada 83 compiler),
  it may be reasonable to routinely use @code{-gnatVn}. Validity checks
! are also suppressed entirely if you use @code{-gnatp}.
  
  @geindex Overflow checks
  
*************** are also suppressed entirely if @code{-g
*** 20051,20082 ****
  @geindex pragma Unsuppress
  
  Note that the setting of the switches controls the default setting of
! the checks. They may be modified using either @code{pragma Suppress} (to
  remove checks) or @code{pragma Unsuppress} (to add back suppressed
! checks) in the program source.
  
  @node Use of Restrictions,Optimization Levels,Controlling Run-Time Checks,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{182}@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{183}
  @subsubsection Use of Restrictions
  
  
! The use of pragma Restrictions allows you to control which features are
! permitted in your program. Apart from the obvious point that if you avoid
! relatively expensive features like finalization (enforceable by the use
! of pragma Restrictions (No_Finalization)), the use of this pragma does not
! affect the generated code in most cases.
  
  One notable exception to this rule is that the possibility of task abort
  results in some distributed overhead, particularly if finalization or
! exception handlers are used. The reason is that certain sections of code
! have to be marked as non-abortable.
  
! If you use neither the @code{abort} statement, nor asynchronous transfer
! of control (@code{select ... then abort}), then this distributed overhead
! is removed, which may have a general positive effect in improving
! overall performance.  Especially code involving frequent use of tasking
! constructs and controlled types will show much improved performance.
! The relevant restrictions pragmas are
  
  @quotation
  
--- 20217,20249 ----
  @geindex pragma Unsuppress
  
  Note that the setting of the switches controls the default setting of
! the checks. You may modify them using either @code{pragma Suppress} (to
  remove checks) or @code{pragma Unsuppress} (to add back suppressed
! checks) in your program source.
  
  @node Use of Restrictions,Optimization Levels,Controlling Run-Time Checks,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{185}@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{186}
  @subsubsection Use of Restrictions
  
  
! You can use pragma Restrictions to control which features are
! permitted in your program. In most cases, the use of this pragma
! itself does not affect the generated code (but, of course, if you
! avoid relatively expensive features like finalization, you’ll have
! more efficient programs and that’s enforceable by the use of pragma
! Restrictions (No_Finalization).
  
  One notable exception to this rule is that the possibility of task abort
  results in some distributed overhead, particularly if finalization or
! exception handlers are used. This is because certain sections of code
! must be marked as non-abortable.
  
! If you use neither the @code{abort} statement nor asynchronous transfer
! of control (@code{select ... then abort}), this distributed overhead can
! be removed, which may have a general positive effect in improving
! overall performance, especially in code involving frequent use of
! tasking constructs and controlled types, which will show much improved
! performance.  The relevant restrictions pragmas are
  
  @quotation
  
*************** pragma Restrictions (Max_Asynchronous_Se
*** 20086,20122 ****
  @end example
  @end quotation
  
! It is recommended that these restriction pragmas be used if possible. Note
! that this also means that you can write code without worrying about the
  possibility of an immediate abort at any point.
  
  @node Optimization Levels,Debugging Optimized Code,Use of Restrictions,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{184}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{ef}
  @subsubsection Optimization Levels
  
  
  @geindex -O (gcc)
  
! Without any optimization option,
! the compiler’s goal is to reduce the cost of
! compilation and to make debugging produce the expected results.
! Statements are independent: if you stop the program with a breakpoint between
! statements, you can then assign a new value to any variable or change
! the program counter to any other statement in the subprogram and get exactly
! the results you would expect from the source code.
  
  Turning on optimization makes the compiler attempt to improve the
  performance and/or code size at the expense of compilation time and
  possibly the ability to debug the program.
  
! If you use multiple
! -O options, with or without level numbers,
! the last such option is the one that is effective.
  
! The default is optimization off. This results in the fastest compile
! times, but GNAT makes absolutely no attempt to optimize, and the
! generated programs are considerably larger and slower than when
! optimization is enabled. You can use the
  @code{-O} switch (the permitted forms are @code{-O0}, @code{-O1}
  @code{-O2}, @code{-O3}, and @code{-Os})
  to @code{gcc} to control the optimization level:
--- 20253,20286 ----
  @end example
  @end quotation
  
! We recommend that you use these restriction pragmas if possible. If you do
! this, it also means you can write code without worrying about the
  possibility of an immediate abort at any point.
  
  @node Optimization Levels,Debugging Optimized Code,Use of Restrictions,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{187}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{f0}
  @subsubsection Optimization Levels
  
  
  @geindex -O (gcc)
  
! Without any optimization switch, the compiler’s goal is to reduce the
! cost of compilation and to make debugging produce the expected
! results.  This means that statements are independent: if you stop the
! program with a breakpoint between statements, you can then assign a
! new value to any variable or change the program counter to any other
! statement in the subprogram and get exactly the results you would
! expect from the source code. However, the generated programs are
! considerably larger and slower than when optimization is enabled.
  
  Turning on optimization makes the compiler attempt to improve the
  performance and/or code size at the expense of compilation time and
  possibly the ability to debug the program.
  
! If you use multiple @code{-O} switches, with or without level
! numbers, the last such switch is the one that’s used.
  
! You can use the
  @code{-O} switch (the permitted forms are @code{-O0}, @code{-O1}
  @code{-O2}, @code{-O3}, and @code{-Os})
  to @code{gcc} to control the optimization level:
*************** to @code{gcc} to control the optimizatio
*** 20132,20145 ****
  
  No optimization (the default);
  generates unoptimized code but has
! the fastest compilation time.
  
! Note that many other compilers do substantial optimization even
! if ‘no optimization’ is specified. With gcc, it is very unusual
! to use @code{-O0} for production if execution time is of any concern,
! since @code{-O0} means (almost) no optimization. This difference
! between gcc and other compilers should be kept in mind when
! doing performance comparisons.
  @end table
  
  @item 
--- 20296,20309 ----
  
  No optimization (the default);
  generates unoptimized code but has
! the fastest compilation time. Debugging is easiest with this switch.
  
! Note that many other compilers do substantial optimization even if
! ‘no optimization’ is specified. With GCC, it is very unusual to
! use @code{-O0} for production if execution time is of any
! concern, since @code{-O0} means (almost) no optimization. You
! should keep this difference between GCC and other compilers in
! mind when doing performance comparisons.
  @end table
  
  @item 
*************** doing performance comparisons.
*** 20148,20156 ****
  
  @item @code{-O1}
  
! Moderate optimization;
! optimizes reasonably well but does not
! degrade compilation time significantly.
  @end table
  
  @item 
--- 20312,20321 ----
  
  @item @code{-O1}
  
! Moderate optimization; optimizes reasonably well but does not
! degrade compilation time significantly. You may not be able to see
! some variables in the debugger and changing the value of some
! variables in the debugger may not have the effect you desire.
  @end table
  
  @item 
*************** degrade compilation time significantly.
*** 20161,20167 ****
  
  Full optimization;
  generates highly optimized code and has
! the slowest compilation time.
  @end table
  
  @item 
--- 20326,20333 ----
  
  Full optimization;
  generates highly optimized code and has
! the slowest compilation time. You may see significant impacts on
! your ability to display and modify variables in the debugger.
  @end table
  
  @item 
*************** the slowest compilation time.
*** 20172,20178 ****
  
  Full optimization as in @code{-O2};
  also uses more aggressive automatic inlining of subprograms within a unit
! (@ref{102,,Inlining of Subprograms}) and attempts to vectorize loops.
  @end table
  
  @item 
--- 20338,20344 ----
  
  Full optimization as in @code{-O2};
  also uses more aggressive automatic inlining of subprograms within a unit
! (@ref{104,,Inlining of Subprograms}) and attempts to vectorize loops.
  @end table
  
  @item 
*************** of the optimization settings in general
*** 20198,20207 ****
  See the `Options That Control Optimization' section in
  @cite{Using the GNU Compiler Collection (GCC)}
  for details about
! the @code{-O} settings and a number of @code{-f} options that
  individually enable or disable specific optimizations.
  
! Unlike some other compilation systems, @code{gcc} has
  been tested extensively at all optimization levels. There are some bugs
  which appear only with optimization turned on, but there have also been
  bugs which show up only in `unoptimized' code. Selecting a lower
--- 20364,20373 ----
  See the `Options That Control Optimization' section in
  @cite{Using the GNU Compiler Collection (GCC)}
  for details about
! the @code{-O} settings and a number of @code{-f} switches that
  individually enable or disable specific optimizations.
  
! Unlike some other compilation systems, GCC has
  been tested extensively at all optimization levels. There are some bugs
  which appear only with optimization turned on, but there have also been
  bugs which show up only in `unoptimized' code. Selecting a lower
*************** level of optimization does not improve t
*** 20209,20221 ****
  generator, which in practice is highly reliable at all optimization
  levels.
  
! Note regarding the use of @code{-O3}: The use of this optimization level
  ought not to be automatically preferred over that of level @code{-O2},
  since it often results in larger executables which may run more slowly.
! See further discussion of this point in @ref{102,,Inlining of Subprograms}.
  
  @node Debugging Optimized Code,Inlining of Subprograms,Optimization Levels,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{185}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{186}
  @subsubsection Debugging Optimized Code
  
  
--- 20375,20387 ----
  generator, which in practice is highly reliable at all optimization
  levels.
  
! A note regarding the use of @code{-O3}: The use of this optimization level
  ought not to be automatically preferred over that of level @code{-O2},
  since it often results in larger executables which may run more slowly.
! See further discussion of this point in @ref{104,,Inlining of Subprograms}.
  
  @node Debugging Optimized Code,Inlining of Subprograms,Optimization Levels,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{189}
  @subsubsection Debugging Optimized Code
  
  
*************** may not be able to stop on what looks li
*** 20268,20278 ****
  
  @item 
  `Invariant code motion:' moving an expression that does not change within a
! loop, to the beginning of the loop.
  
  @item 
  `Instruction scheduling:' moving instructions so as to
! overlap loads and stores (typically) with other code, or in
  general to move computations of values closer to their uses. Often
  this causes you to pass an assignment statement without the assignment
  happening and then later bounce back to the statement when the
--- 20434,20444 ----
  
  @item 
  `Invariant code motion:' moving an expression that does not change within a
! loop to the beginning of the loop.
  
  @item 
  `Instruction scheduling:' moving instructions so as to
! overlap loads and stores (typically) with other code or in
  general to move computations of values closer to their uses. Often
  this causes you to pass an assignment statement without the assignment
  happening and then later bounce back to the statement when the
*************** In a subprogram prologue, a parameter ma
*** 20302,20308 ****
  ‘home’.
  
  @item 
! A variable may be dead, and its register re-used.  This is
  probably the most common cause.
  
  @item 
--- 20468,20474 ----
  ‘home’.
  
  @item 
! A variable may be dead and its register re-used.  This is
  probably the most common cause.
  
  @item 
*************** information for the variable
*** 20317,20330 ****
  
  In general, when an unexpected value appears for a local variable or parameter
  you should first ascertain if that value was actually computed by
! your program, as opposed to being incorrectly reported by the debugger.
  Record fields or
  array elements in an object designated by an access value
! are generally less of a problem, once you have ascertained that the access
  value is sensible.
  Typically, this means checking variables in the preceding code and in the
  calling subprogram to verify that the value observed is explainable from other
! values (one must apply the procedure recursively to those
  other values); or re-running the code and stopping a little earlier
  (perhaps before the call) and stepping to better see how the variable obtained
  the value in question; or continuing to step `from' the point of the
--- 20483,20496 ----
  
  In general, when an unexpected value appears for a local variable or parameter
  you should first ascertain if that value was actually computed by
! your program as opposed to being incorrectly reported by the debugger.
  Record fields or
  array elements in an object designated by an access value
! are generally less of a problem once you have verified that the access
  value is sensible.
  Typically, this means checking variables in the preceding code and in the
  calling subprogram to verify that the value observed is explainable from other
! values (you must apply the procedure recursively to those
  other values); or re-running the code and stopping a little earlier
  (perhaps before the call) and stepping to better see how the variable obtained
  the value in question; or continuing to step `from' the point of the
*************** on the resulting executable,
*** 20343,20349 ****
  which removes both debugging information and global symbols.
  
  @node Inlining of Subprograms,Floating Point Operations,Debugging Optimized Code,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{187}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{102}
  @subsubsection Inlining of Subprograms
  
  
--- 20509,20515 ----
  which removes both debugging information and global symbols.
  
  @node Inlining of Subprograms,Floating Point Operations,Debugging Optimized Code,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{104}
  @subsubsection Inlining of Subprograms
  
  
*************** following conditions are met:
*** 20357,20364 ****
  The optimization level is at least @code{-O1}.
  
  @item 
! The called subprogram is suitable for inlining: It must be small enough
! and not contain something that @code{gcc} cannot support in inlined
  subprograms.
  
  @geindex pragma Inline
--- 20523,20530 ----
  The optimization level is at least @code{-O1}.
  
  @item 
! The called subprogram is suitable for inlining: it must be small enough
! and not contain something that the back end cannot support in inlined
  subprograms.
  
  @geindex pragma Inline
*************** subprograms.
*** 20369,20379 ****
  Any one of the following applies: @code{pragma Inline} is applied to the
  subprogram; the subprogram is local to the unit and called once from
  within it; the subprogram is small and optimization level @code{-O2} is
! specified; optimization level @code{-O3} is specified.
  @end itemize
  
  Calls to subprograms in `with'ed units are normally not inlined.
! To achieve actual inlining (that is, replacement of the call by the code
  in the body of the subprogram), the following conditions must all be true:
  
  
--- 20535,20546 ----
  Any one of the following applies: @code{pragma Inline} is applied to the
  subprogram; the subprogram is local to the unit and called once from
  within it; the subprogram is small and optimization level @code{-O2} is
! specified; optimization level @code{-O3} is specified; or the subprogram
! is an expression function.
  @end itemize
  
  Calls to subprograms in `with'ed units are normally not inlined.
! To achieve inlining in those case (that is, replacement of the call by the code
  in the body of the subprogram), the following conditions must all be true:
  
  
*************** The optimization level is at least @code
*** 20384,20390 ****
  
  @item 
  The called subprogram is suitable for inlining: It must be small enough
! and not contain something that @code{gcc} cannot support in inlined
  subprograms.
  
  @item 
--- 20551,20557 ----
  
  @item 
  The called subprogram is suitable for inlining: It must be small enough
! and not contain something that the back end cannot support in inlined
  subprograms.
  
  @item 
*************** The @code{-gnatn} switch is used on the
*** 20395,20401 ****
  @end itemize
  
  Even if all these conditions are met, it may not be possible for
! the compiler to inline the call, due to the length of the body,
  or features in the body that make it impossible for the compiler
  to do the inlining.
  
--- 20562,20568 ----
  @end itemize
  
  Even if all these conditions are met, it may not be possible for
! the compiler to inline the call due to the length of the body,
  or features in the body that make it impossible for the compiler
  to do the inlining.
  
*************** is compiled, the call will be inlined if
*** 20434,20520 ****
  enough, but now @code{Main} depends on the body of @code{R} in
  @code{r.adb} as well as on the spec. This means that if this body is edited,
  the main program must be recompiled. Note that this extra dependency
! occurs whether or not the call is in fact inlined by @code{gcc}.
  
  The use of front end inlining with @code{-gnatN} generates similar
  additional dependencies.
  
  @geindex -fno-inline (gcc)
  
! Note: The @code{-fno-inline} switch overrides all other conditions and ensures that
! no inlining occurs, unless requested with pragma Inline_Always for @code{gcc}
! back-ends. The extra dependences resulting from @code{-gnatn} will still be active,
! even if this switch is used to suppress the resulting inlining actions.
  
  @geindex -fno-inline-functions (gcc)
  
! Note: The @code{-fno-inline-functions} switch can be used to prevent
! automatic inlining of subprograms if @code{-O3} is used.
  
  @geindex -fno-inline-small-functions (gcc)
  
! Note: The @code{-fno-inline-small-functions} switch can be used to prevent
! automatic inlining of small subprograms if @code{-O2} is used.
  
  @geindex -fno-inline-functions-called-once (gcc)
  
! Note: The @code{-fno-inline-functions-called-once} switch
! can be used to prevent inlining of subprograms local to the unit
! and called once from within it if @code{-O1} is used.
  
! Note regarding the use of @code{-O3}: @code{-gnatn} is made up of two
! sub-switches @code{-gnatn1} and @code{-gnatn2} that can be directly
! specified in lieu of it, @code{-gnatn} being translated into one of them
  based on the optimization level. With @code{-O2} or below, @code{-gnatn}
  is equivalent to @code{-gnatn1} which activates pragma @code{Inline} with
  moderate inlining across modules. With @code{-O3}, @code{-gnatn} is
  equivalent to @code{-gnatn2} which activates pragma @code{Inline} with
  full inlining across modules. If you have used pragma @code{Inline} in
! appropriate cases, then it is usually much better to use @code{-O2}
  and @code{-gnatn} and avoid the use of @code{-O3} which has the additional
  effect of inlining subprograms you did not think should be inlined. We have
  found that the use of @code{-O3} may slow down the compilation and increase
  the code size by performing excessive inlining, leading to increased
  instruction cache pressure from the increased code size and thus minor
! performance improvements. So the bottom line here is that you should not
! automatically assume that @code{-O3} is better than @code{-O2}, and
  indeed you should use @code{-O3} only if tests show that it actually
  improves performance for your program.
  
  @node Floating Point Operations,Vectorization of loops,Inlining of Subprograms,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{189}
  @subsubsection Floating Point Operations
  
  
  @geindex Floating-Point Operations
  
! On almost all targets, GNAT maps Float and Long_Float to the 32-bit and
! 64-bit standard IEEE floating-point representations, and operations will
  use standard IEEE arithmetic as provided by the processor. On most, but
! not all, architectures, the attribute Machine_Overflows is False for these
  types, meaning that the semantics of overflow is implementation-defined.
  In the case of GNAT, these semantics correspond to the normal IEEE
  treatment of infinities and NaN (not a number) values. For example,
  1.0 / 0.0 yields plus infinitiy and 0.0 / 0.0 yields a NaN. By
  avoiding explicit overflow checks, the performance is greatly improved
! on many targets. However, if required, floating-point overflow can be
! enabled by the use of the pragma Check_Float_Overflow.
  
  Another consideration that applies specifically to x86 32-bit
  architectures is which form of floating-point arithmetic is used.
! By default the operations use the old style x86 floating-point,
  which implements an 80-bit extended precision form (on these
! architectures the type Long_Long_Float corresponds to that form).
  In addition, generation of efficient code in this mode means that
! the extended precision form will be used for intermediate results.
  This may be helpful in improving the final precision of a complex
! expression. However it means that the results obtained on the x86
! will be different from those on other architectures, and for some
  algorithms, the extra intermediate precision can be detrimental.
  
  In addition to this old-style floating-point, all modern x86 chips
  implement an alternative floating-point operation model referred
! to as SSE2. In this model there is no extended form, and furthermore
  execution performance is significantly enhanced. To force GNAT to use
  this more modern form, use both of the switches:
  
--- 20601,20691 ----
  enough, but now @code{Main} depends on the body of @code{R} in
  @code{r.adb} as well as on the spec. This means that if this body is edited,
  the main program must be recompiled. Note that this extra dependency
! occurs whether or not the call is in fact inlined by the back end.
  
  The use of front end inlining with @code{-gnatN} generates similar
  additional dependencies.
  
  @geindex -fno-inline (gcc)
  
! Note: The @code{-fno-inline} switch overrides all other conditions
! and ensures that no inlining occurs, unless requested with pragma
! Inline_Always for most back ends. The extra dependences resulting from
! @code{-gnatn} will still be active, even if this switch is used to
! suppress the resulting inlining actions.
  
  @geindex -fno-inline-functions (gcc)
  
! For the GCC back end, you can use the
! @code{-fno-inline-functions} switch to prevent automatic inlining
! of subprograms if you use @code{-O3}.
  
  @geindex -fno-inline-small-functions (gcc)
  
! For the GCC back end, you can use the
! @code{-fno-inline-small-functions} switch to prevent automatic
! inlining of small subprograms if you use @code{-O2}.
  
  @geindex -fno-inline-functions-called-once (gcc)
  
! For the GC back end, you can use the
! @code{-fno-inline-functions-called-once} switch to prevent inlining
! of subprograms local to the unit and called once from within it if you
! use @code{-O1}.
  
! A note regarding the use of @code{-O3}: @code{-gnatn} is made up of two
! sub-switches @code{-gnatn1} and @code{-gnatn2} that you can directly
! specify. @code{-gnatn} is translated into one of them
  based on the optimization level. With @code{-O2} or below, @code{-gnatn}
  is equivalent to @code{-gnatn1} which activates pragma @code{Inline} with
  moderate inlining across modules. With @code{-O3}, @code{-gnatn} is
  equivalent to @code{-gnatn2} which activates pragma @code{Inline} with
  full inlining across modules. If you have used pragma @code{Inline} in
! appropriate cases, it’s usually much better to use @code{-O2}
  and @code{-gnatn} and avoid the use of @code{-O3} which has the additional
  effect of inlining subprograms you did not think should be inlined. We have
  found that the use of @code{-O3} may slow down the compilation and increase
  the code size by performing excessive inlining, leading to increased
  instruction cache pressure from the increased code size and thus minor
! performance degradations. So the bottom line here is that you should not
! automatically assume that @code{-O3} is better than @code{-O2} and
  indeed you should use @code{-O3} only if tests show that it actually
  improves performance for your program.
  
  @node Floating Point Operations,Vectorization of loops,Inlining of Subprograms,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{18b}@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{18c}
  @subsubsection Floating Point Operations
  
  
  @geindex Floating-Point Operations
  
! On almost all targets, GNAT maps @code{Float} and @code{Long_Float} to the 32-bit and
! 64-bit standard IEEE floating-point representations and operations will
  use standard IEEE arithmetic as provided by the processor. On most, but
! not all, architectures, the attribute @code{Machine_Overflows} is @code{False} for these
  types, meaning that the semantics of overflow is implementation-defined.
  In the case of GNAT, these semantics correspond to the normal IEEE
  treatment of infinities and NaN (not a number) values. For example,
  1.0 / 0.0 yields plus infinitiy and 0.0 / 0.0 yields a NaN. By
  avoiding explicit overflow checks, the performance is greatly improved
! on many targets. However, if required, you can enable floating-point overflow
! by using the pragma @code{Check_Float_Overflow}.
  
  Another consideration that applies specifically to x86 32-bit
  architectures is which form of floating-point arithmetic is used.
! By default, the operations use the old style x86 floating-point,
  which implements an 80-bit extended precision form (on these
! architectures the type @code{Long_Long_Float} corresponds to that form).
  In addition, generation of efficient code in this mode means that
! the extended precision form is used for intermediate results.
  This may be helpful in improving the final precision of a complex
! expression, but it means that the results obtained on the x86
! may be different from those on other architectures and, for some
  algorithms, the extra intermediate precision can be detrimental.
  
  In addition to this old-style floating-point, all modern x86 chips
  implement an alternative floating-point operation model referred
! to as SSE2. In this model, there is no extended form and
  execution performance is significantly enhanced. To force GNAT to use
  this more modern form, use both of the switches:
  
*************** this more modern form, use both of the s
*** 20524,20552 ****
  @end quotation
  
  A unit compiled with these switches will automatically use the more
! efficient SSE2 instruction set for Float and Long_Float operations.
  Note that the ABI has the same form for both floating-point models,
! so it is permissible to mix units compiled with and without these
! switches.
  
  @node Vectorization of loops,Other Optimization Switches,Floating Point Operations,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{18b}
  @subsubsection Vectorization of loops
  
  
  @geindex Optimization Switches
  
! You can take advantage of the auto-vectorizer present in the @code{gcc}
! back end to vectorize loops with GNAT.  The corresponding command line switch
! is @code{-ftree-vectorize} but, as it is enabled by default at @code{-O3}
! and other aggressive optimizations helpful for vectorization also are enabled
! by default at this level, using @code{-O3} directly is recommended.
  
! You also need to make sure that the target architecture features a supported
! SIMD instruction set.  For example, for the x86 architecture, you should at
! least specify @code{-msse2} to get significant vectorization (but you don’t
! need to specify it for x86-64 as it is part of the base 64-bit architecture).
! Similarly, for the PowerPC architecture, you should specify @code{-maltivec}.
  
  The preferred loop form for vectorization is the @code{for} iteration scheme.
  Loops with a @code{while} iteration scheme can also be vectorized if they are
--- 20695,20725 ----
  @end quotation
  
  A unit compiled with these switches will automatically use the more
! efficient SSE2 instruction set for @code{Float} and @code{Long_Float} operations.
  Note that the ABI has the same form for both floating-point models,
! so you can mix units compiled with and without these switches.
  
  @node Vectorization of loops,Other Optimization Switches,Floating Point Operations,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{18d}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{18e}
  @subsubsection Vectorization of loops
  
  
  @geindex Optimization Switches
  
! The GCC and LLVM back ends have an auto-vectorizer that’s enabled by
! default at some optimization levels.  For the GCC back end, it’s
! enabled by default at @code{-O3} and you can request it at other
! levels with @code{-ftree-vectorize}. For the LLVM back end, it’s
! enabled by default at lower levels, but you can explicitly enable or
! disable it with the @code{-fno-vectorize}, @code{-fvectorize},
! @code{-fno-slp-vectorize}, and @code{-fslp-vectorize} switches.
  
! To get auto-vectorization, you also need to make sure that the target
! architecture features a supported SIMD instruction set.  For example,
! for the x86 architecture, you should at least specify @code{-msse2}
! to get significant vectorization (but you don’t need to specify it for
! x86-64 as it is part of the base 64-bit architecture).  Similarly, for
! the PowerPC architecture, you should specify @code{-maltivec}.
  
  The preferred loop form for vectorization is the @code{for} iteration scheme.
  Loops with a @code{while} iteration scheme can also be vectorized if they are
*************** end Sum;
*** 20573,20579 ****
  @end quotation
  
  The vectorizable operations depend on the targeted SIMD instruction set, but
! the adding and some of the multiplying operators are generally supported, as
  well as the logical operators for modular types. Note that compiling
  with @code{-gnatp} might well reveal cases where some checks do thwart
  vectorization.
--- 20746,20752 ----
  @end quotation
  
  The vectorizable operations depend on the targeted SIMD instruction set, but
! addition and some multiplication operators are generally supported, as
  well as the logical operators for modular types. Note that compiling
  with @code{-gnatp} might well reveal cases where some checks do thwart
  vectorization.
*************** type Array_Type is array (Positive range
*** 20627,20637 ****
  
  The quality of the generated code decreases when the dynamic aspect of the
  array type increases, the worst code being generated for unconstrained array
! types.  This is so because, the less information the compiler has about the
  bounds of the array, the more fallback code it needs to generate in order to
  fix things up at run time.
  
! It is possible to specify that a given loop should be subject to vectorization
  preferably to other optimizations by means of pragma @code{Loop_Optimize}:
  
  @quotation
--- 20800,20810 ----
  
  The quality of the generated code decreases when the dynamic aspect of the
  array type increases, the worst code being generated for unconstrained array
! types.  This is because the less information the compiler has about the
  bounds of the array, the more fallback code it needs to generate in order to
  fix things up at run time.
  
! You can specify that a given loop should be subject to vectorization
  preferably to other optimizations by means of pragma @code{Loop_Optimize}:
  
  @quotation
*************** pragma Loop_Optimize (Vector);
*** 20642,20650 ****
  @end quotation
  
  placed immediately within the loop will convey the appropriate hint to the
! compiler for this loop.
  
! It is also possible to help the compiler generate better vectorized code
  for a given loop by asserting that there are no loop-carried dependencies
  in the loop.  Consider for example the procedure:
  
--- 20815,20824 ----
  @end quotation
  
  placed immediately within the loop will convey the appropriate hint to the
! compiler for this loop. This is currently only supported for the GCC
! back end.
  
! You can also help the compiler generate better vectorized code
  for a given loop by asserting that there are no loop-carried dependencies
  in the loop.  Consider for example the procedure:
  
*************** pragma Loop_Optimize (Ivdep);
*** 20679,20704 ****
  
  placed immediately within the loop will tell the compiler that it can safely
  omit the non-vectorized version of the loop as well as the run-time test.
  
  @node Other Optimization Switches,Optimization and Strict Aliasing,Vectorization of loops,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{18c}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{18d}
  @subsubsection Other Optimization Switches
  
  
  @geindex Optimization Switches
  
! Since GNAT uses the @code{gcc} back end, all the specialized
! @code{gcc} optimization switches are potentially usable. These switches
! have not been extensively tested with GNAT but can generally be expected
! to work. Examples of switches in this category are @code{-funroll-loops}
! and the various target-specific @code{-m} options (in particular, it has
! been observed that @code{-march=xxx} can significantly improve performance
! on appropriate machines). For full details of these switches, see
! the `Submodel Options' section in the `Hardware Models and Configurations'
! chapter of @cite{Using the GNU Compiler Collection (GCC)}.
  
  @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{18e}@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{e6}
  @subsubsection Optimization and Strict Aliasing
  
  
--- 20853,20879 ----
  
  placed immediately within the loop will tell the compiler that it can safely
  omit the non-vectorized version of the loop as well as the run-time test.
+ This is also currently only supported by the GCC back end.
  
  @node Other Optimization Switches,Optimization and Strict Aliasing,Vectorization of loops,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{18f}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{190}
  @subsubsection Other Optimization Switches
  
  
  @geindex Optimization Switches
  
! You can also use any specialized optimization switches supported by
! the back end being used.  These switches have not been extensively
! tested with GNAT but can generally be expected to work. Examples of
! switches in this category for the GCC back end are
! @code{-funroll-loops} and the various target-specific @code{-m}
! options (in particular, it has been observed that @code{-march=xxx}
! can significantly improve performance on appropriate machines). For
! full details of these switches, see the `Submodel Options' section in
! the `Hardware Models and Configurations' chapter of @cite{Using the GNU Compiler Collection (GCC)}.
  
  @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{191}@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{e7}
  @subsubsection Optimization and Strict Aliasing
  
  
*************** the following example:
*** 20716,20955 ****
  @quotation
  
  @example
! procedure R is
     type Int1 is new Integer;
     type Int2 is new Integer;
!    type Int1A is access Int1;
!    type Int2A is access Int2;
!    Int1V : Int1A;
!    Int2V : Int2A;
     ...
  
  begin
     ...
     for J in Data'Range loop
!       if Data (J) = Int1V.all then
!          Int2V.all := Int2V.all + 1;
        end if;
     end loop;
     ...
! end R;
  @end example
  @end quotation
  
! In this example, since the variable @code{Int1V} can only access objects
! of type @code{Int1}, and @code{Int2V} can only access objects of type
! @code{Int2}, there is no possibility that the assignment to
! @code{Int2V.all} affects the value of @code{Int1V.all}. This means that
! the compiler optimizer can “know” that the value @code{Int1V.all} is constant
! for all iterations of the loop and avoid the extra memory reference
! required to dereference it each time through the loop.
  
! This kind of optimization, called strict aliasing analysis, is
  triggered by specifying an optimization level of @code{-O2} or
! higher or @code{-Os} and allows GNAT to generate more efficient code
! when access values are involved.
  
! However, although this optimization is always correct in terms of
! the formal semantics of the Ada Reference Manual, difficulties can
! arise if features like @code{Unchecked_Conversion} are used to break
! the typing system. Consider the following complete program example:
  
  @quotation
  
  @example
! package p1 is
!    type int1 is new integer;
!    type int2 is new integer;
!    type a1 is access int1;
!    type a2 is access int2;
! end p1;
  
! with p1; use p1;
! package p2 is
!    function to_a2 (Input : a1) return a2;
  end p2;
  
  with Ada.Unchecked_Conversion;
! package body p2 is
!    function to_a2 (Input : a1) return a2 is
!       function to_a2u is
!         new Ada.Unchecked_Conversion (a1, a2);
     begin
!       return to_a2u (Input);
!    end to_a2;
! end p2;
  
! with p2; use p2;
! with p1; use p1;
  with Text_IO; use Text_IO;
! procedure m is
!    v1 : a1 := new int1;
!    v2 : a2 := to_a2 (v1);
  begin
!    v1.all := 1;
!    v2.all := 0;
!    put_line (int1'image (v1.all));
  end;
  @end example
  @end quotation
  
! This program prints out 0 in @code{-O0} or @code{-O1}
! mode, but it prints out 1 in @code{-O2} mode. That’s
! because in strict aliasing mode, the compiler can and
! does assume that the assignment to @code{v2.all} could not
! affect the value of @code{v1.all}, since different types
! are involved.
  
  This behavior is not a case of non-conformance with the standard, since
  the Ada RM specifies that an unchecked conversion where the resulting
  bit pattern is not a correct value of the target type can result in an
  abnormal value and attempting to reference an abnormal value makes the
  execution of a program erroneous.  That’s the case here since the result
! does not point to an object of type @code{int2}.  This means that the
! effect is entirely unpredictable.
  
! However, although that explanation may satisfy a language
! lawyer, in practice an applications programmer expects an
! unchecked conversion involving pointers to create true
! aliases and the behavior of printing 1 seems plain wrong.
! In this case, the strict aliasing optimization is unwelcome.
  
! Indeed the compiler recognizes this possibility, and the
! unchecked conversion generates a warning:
  
  @quotation
  
  @example
! p2.adb:5:07: warning: possible aliasing problem with type "a2"
  p2.adb:5:07: warning: use -fno-strict-aliasing switch for references
! p2.adb:5:07: warning:  or use "pragma No_Strict_Aliasing (a2);"
  @end example
  @end quotation
  
! Unfortunately the problem is recognized when compiling the body of
! package @code{p2}, but the actual “bad” code is generated while
! compiling the body of @code{m} and this latter compilation does not see
! the suspicious @code{Unchecked_Conversion}.
  
  As implied by the warning message, there are approaches you can use to
! avoid the unwanted strict aliasing optimization in a case like this.
  
! One possibility is to simply avoid the use of @code{-O2}, but
! that is a bit drastic, since it throws away a number of useful
! optimizations that do not involve strict aliasing assumptions.
  
! A less drastic approach is to compile the program using the
! option @code{-fno-strict-aliasing}. Actually it is only the
  unit containing the dereferencing of the suspicious pointer
! that needs to be compiled. So in this case, if we compile
! unit @code{m} with this switch, then we get the expected
! value of zero printed. Analyzing which units might need
! the switch can be painful, so a more reasonable approach
  is to compile the entire program with options @code{-O2}
! and @code{-fno-strict-aliasing}. If the performance is
! satisfactory with this combination of options, then the
! advantage is that the entire issue of possible “wrong”
! optimization due to strict aliasing is avoided.
  
! To avoid the use of compiler switches, the configuration
! pragma @code{No_Strict_Aliasing} with no parameters may be
! used to specify that for all access types, the strict
! aliasing optimization should be suppressed.
  
! However, these approaches are still overkill, in that they causes
  all manipulations of all access values to be deoptimized. A more
  refined approach is to concentrate attention on the specific
  access type identified as problematic.
  
! First, if a careful analysis of uses of the pointer shows
! that there are no possible problematic references, then
! the warning can be suppressed by bracketing the
! instantiation of @code{Unchecked_Conversion} to turn
! the warning off:
  
  @quotation
  
  @example
! pragma Warnings (Off);
! function to_a2u is
!   new Ada.Unchecked_Conversion (a1, a2);
! pragma Warnings (On);
  @end example
  @end quotation
  
! Of course that approach is not appropriate for this particular
! example, since indeed there is a problematic reference. In this
! case we can take one of two other approaches.
  
! The first possibility is to move the instantiation of unchecked
! conversion to the unit in which the type is declared. In
! this example, we would move the instantiation of
! @code{Unchecked_Conversion} from the body of package
! @code{p2} to the spec of package @code{p1}. Now the
! warning disappears. That’s because any use of the
! access type knows there is a suspicious unchecked
! conversion, and the strict aliasing optimization
! is automatically suppressed for the type.
  
! If it is not practical to move the unchecked conversion to the same unit
! in which the destination access type is declared (perhaps because the
! source type is not visible in that unit), you may use pragma
! @code{No_Strict_Aliasing} for the type. This pragma must occur in the
! same declarative sequence as the declaration of the access type:
  
  @quotation
  
  @example
! type a2 is access int2;
! pragma No_Strict_Aliasing (a2);
  @end example
  @end quotation
  
! Here again, the compiler now knows that the strict aliasing optimization
! should be suppressed for any reference to type @code{a2} and the
! expected behavior is obtained.
  
! Finally, note that although the compiler can generate warnings for
! simple cases of unchecked conversions, there are tricker and more
! indirect ways of creating type incorrect aliases which the compiler
! cannot detect. Examples are the use of address overlays and unchecked
! conversions involving composite types containing access types as
! components. In such cases, no warnings are generated, but there can
! still be aliasing problems. One safe coding practice is to forbid the
! use of address clauses for type overlaying, and to allow unchecked
! conversion only for primitive types. This is not really a significant
! restriction since any possible desired effect can be achieved by
! unchecked conversion of access values.
  
! The aliasing analysis done in strict aliasing mode can certainly
! have significant benefits. We have seen cases of large scale
! application code where the time is increased by up to 5% by turning
! this optimization off. If you have code that includes significant
! usage of unchecked conversion, you might want to just stick with
! @code{-O1} and avoid the entire issue. If you get adequate
! performance at this level of optimization level, that’s probably
! the safest approach. If tests show that you really need higher
! levels of optimization, then you can experiment with @code{-O2}
! and @code{-O2 -fno-strict-aliasing} to see how much effect this
! has on size and speed of the code. If you really need to use
! @code{-O2} with strict aliasing in effect, then you should
! review any uses of unchecked conversion of access types,
! particularly if you are getting the warnings described above.
  
  @node Aliased Variables and Optimization,Atomic Variables and Optimization,Optimization and Strict Aliasing,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{18f}@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{190}
  @subsubsection Aliased Variables and Optimization
  
  
  @geindex Aliasing
  
! There are scenarios in which programs may
  use low level techniques to modify variables
  that otherwise might be considered to be unassigned. For example,
! a variable can be passed to a procedure by reference, which takes
! the address of the parameter and uses the address to modify the
! variable’s value, even though it is passed as an IN parameter.
  Consider the following example:
  
  @quotation
--- 20891,21184 ----
  @quotation
  
  @example
! procedure M is
     type Int1 is new Integer;
+    I1 : Int1;
+ 
     type Int2 is new Integer;
!    type A2 is access Int2;
!    V2 : A2;
     ...
  
  begin
     ...
     for J in Data'Range loop
!       if Data (J) = I1 then
!          V2.all := V2.all + 1;
        end if;
     end loop;
     ...
! end;
  @end example
  @end quotation
  
! Here, since @code{V2} can only access objects of type @code{Int2}
! and @code{I1} is not one of them, there is no possibility that the assignment
! to @code{V2.all} affects the value of @code{I1}. This means that the compiler
! optimizer can infer that the value @code{I1} is constant for all iterations
! of the loop and load it from memory only once, before entering the loop,
! instead of in every iteration (this is called load hoisting).
  
! This kind of optimizations, based on strict type-based aliasing, is
  triggered by specifying an optimization level of @code{-O2} or
! higher (or @code{-Os}) for the GCC back end and @code{-O1} or
! higher for the LLVM back end and allows the compiler to generate more
! efficient code.
  
! However, although this optimization is always correct in terms of the
! formal semantics of the Ada Reference Manual, you can run into
! difficulties arise if you use features like @code{Unchecked_Conversion}
! to break the typing system. Consider the following complete program
! example:
  
  @quotation
  
  @example
! package P1 is
!    type Int1 is new Integer;
!    type A1 is access Int1;
  
!    type Int2 is new Integer;
!    type A2 is access Int2;
! end P1;
! 
! with P1; use P1;
! package P2 is
!    function To_A2 (Input : A1) return A2;
  end p2;
  
  with Ada.Unchecked_Conversion;
! package body P2 is
!    function To_A2 (Input : A1) return A2 is
!       function Conv is
!         new Ada.Unchecked_Conversion (A1, A2);
     begin
!       return Conv (Input);
!    end To_A2;
! end P2;
  
! with P1; use P1;
! with P2; use P2;
  with Text_IO; use Text_IO;
! procedure M is
!    V1 : A1 := new Int1;
!    V2 : A2 := To_A2 (V1);
  begin
!    V1.all := 1;
!    V2.all := 0;
!    Put_Line (Int1'Image (V1.all));
  end;
  @end example
  @end quotation
  
! This program prints out @code{0} in @code{-O0} mode,
! but it prints out @code{1} in @code{-O2} mode. That’s because in strict
! aliasing mode, the compiler may and does assume that the assignment to
! @code{V2.all} could not affect the value of @code{V1.all}, since different
! types are involved.
  
  This behavior is not a case of non-conformance with the standard, since
  the Ada RM specifies that an unchecked conversion where the resulting
  bit pattern is not a correct value of the target type can result in an
  abnormal value and attempting to reference an abnormal value makes the
  execution of a program erroneous.  That’s the case here since the result
! does not point to an object of type @code{Int2}.  This means that the effect
! is entirely unpredictable.
  
! However, although that explanation may satisfy a language lawyer, in
! practice, you probably expect an unchecked conversion
! involving pointers to create true aliases and the behavior of printing
! @code{1} is questionable. In this case, the strict type-based aliasing
! optimizations are clearly unwelcome.
  
! Indeed, the compiler recognizes this possibility and the instantiation of
! Unchecked_Conversion generates a warning:
  
  @quotation
  
  @example
! p2.adb:5:07: warning: possible aliasing problem with type "A2"
  p2.adb:5:07: warning: use -fno-strict-aliasing switch for references
! p2.adb:5:07: warning:  or use "pragma No_Strict_Aliasing (A2);"
  @end example
  @end quotation
  
! Unfortunately the problem is only recognized when compiling the body of
! package @code{P2}, but the actual problematic code is generated while
! compiling the body of @code{M} and this latter compilation does not see
! the suspicious instance of @code{Unchecked_Conversion}.
  
  As implied by the warning message, there are approaches you can use to
! avoid the unwanted strict aliasing optimizations in a case like this.
  
! One possibility is to simply avoid the use of higher levels of optimization,
! but that is quite drastic, since it throws away a number of useful
! optimizations that don’t involve strict aliasing assumptions.
  
! A less drastic approach is for you to compile the program using the
! @code{-fno-strict-aliasing} switch. Actually, it is only the
  unit containing the dereferencing of the suspicious pointer
! that you need to compile with that switch. So, in this case, if you compile
! unit @code{M} with this switch, you get the expected
! value of @code{0} printed. Analyzing which units might need
! the switch can be painful, so you may find it a more reasonable approach
  is to compile the entire program with options @code{-O2}
! and @code{-fno-strict-aliasing}. If you obtain satisfactory performance
! with this combination of options, then the
! advantage is that you have avoided the entire issue of possible problematic
! optimizations due to strict aliasing.
  
! To avoid the use of compiler switches, you may use the configuration
! pragma @code{No_Strict_Aliasing} with no parameters
! to specify that for all access types, the strict
! aliasing optimizations should be suppressed.
  
! However, these approaches are still overkill, in that they cause
  all manipulations of all access values to be deoptimized. A more
  refined approach is to concentrate attention on the specific
  access type identified as problematic.
  
! The first possibility is to move the instantiation of unchecked
! conversion to the unit in which the type is declared. In this
! example, you would move the instantiation of @code{Unchecked_Conversion}
! from the body of package @code{P2} to the spec of package @code{P1}.
! Now, the warning disappears because any use of the access type
! knows there is a suspicious unchecked conversion and the strict
! aliasing optimizations are automatically suppressed for it.
! 
! If it’s not practical to move the unchecked conversion to the same unit
! in which the destination access type is declared (perhaps because the
! source type is not visible in that unit), the second possibiliy is for you to
! use pragma @code{No_Strict_Aliasing} for the type. You must place this pragma
! in the same declarative part as the declaration of the access type:
  
  @quotation
  
  @example
! type A2 is access Int2;
! pragma No_Strict_Aliasing (A2);
  @end example
  @end quotation
  
! Here again, the compiler now knows that strict aliasing optimizations
! should be suppressed for any dereference made through type @code{A2} and
! the expected behavior is obtained.
  
! The third possibility is to declare that one of the designated types
! involved, namely @code{Int1} or @code{Int2}, is allowed to alias any other
! type in the universe, by using pragma @code{Universal_Aliasing}:
  
! @quotation
! 
! @example
! type Int2 is new Integer;
! pragma Universal_Aliasing (Int2);
! @end example
! @end quotation
! 
! The effect is equivalent to applying pragma @code{No_Strict_Aliasing} to
! every access type designating @code{Int2}, in particular @code{A2}, and, more
! generally, to every reference made to an object of declared type @code{Int2},
! so it’s very powerful and effectively takes @code{Int2} out of the alias
! analysis performed by the compiler in all circumstances.
! 
! You can also use this pragma used to deal with aliasing issues that arise
! from the use of @code{Unchecked_Conversion} in the source code but
! without the presence of access types. The typical example is code
! that streams data by means of arrays of storage units (bytes):
  
  @quotation
  
  @example
! type Byte is mod 2**System.Storage_Unit;
! for Byte'Size use System.Storage_Unit;
! 
! type Chunk_Of_Bytes is array (1 .. 64) of Byte;
! 
! procedure Send (S : Chunk_Of_Bytes);
! 
! type Rec is record
!    ...
! end record;
! 
! procedure Dump (R : Rec) is
!    function To_Stream is
!       new Ada.Unchecked_Conversion (Rec, Chunk_Of_Bytes);
! begin
!    Send (To_Stream (R));
! end;
  @end example
  @end quotation
  
! This generates the following warning for the call to @code{Send}:
  
! @quotation
  
! @example
! dump.adb:8:25: warning: unchecked conversion implemented by copy
! dump.adb:8:25: warning: use pragma Universal_Aliasing on either type
! dump.adb:8:25: warning: to enable RM 13.9(12) implementation permission
! @end example
! @end quotation
! 
! This occurs because the formal parameter @code{S} of @code{Send} is passed by
! reference by the compiler and it’s not possible to pass a reference to
! @code{R} directly in the call without violating strict type-based aliasing.
! That’s why the compiler generates a temporary of type @code{Chunk_Of_Bytes}
! just before the call and passes a reference to this temporary instead.
! 
! As implied by the warning message, you can avoid the temporary
! (and the warning) by means of pragma @code{Universal_Aliasing}:
! 
! @quotation
! 
! @example
! type Chunk_Of_Bytes is array (1 .. 64) of Byte;
! pragma Universal_Aliasing (Chunk_Of_Bytes);
! @end example
! @end quotation
! 
! You can also apply this pragma to the component type instead:
! 
! @quotation
! 
! @example
! type Byte is mod 2**System.Storage_Unit;
! for Byte'Size use System.Storage_Unit;
! pragma Universal_Aliasing (Byte);
! @end example
! @end quotation
! 
! and every array type whose component is @code{Byte} will inherit the pragma.
! 
! To summarize, the alias analysis performed in strict aliasing mode by
! the compiler can have significant benefits. We’ve seen cases of large
! scale application code where the execution time is increased by up to
! 5% when these optimizations are turned off. However, if you have code
! that make significant use of unchecked conversion, you might want to
! just stick with @code{-O1} (with the GCC back end) and avoid the
! entire issue. If you get adequate performance at this level of
! optimization, that’s probably the safest approach. If tests show that
! you really need higher levels of optimization, then you can experiment
! with @code{-O2} and @code{-O2 -fno-strict-aliasing} to see how
! much effect this has on size and speed of the code. If you really need
! to use @code{-O2} with strict aliasing in effect, then you should
! review any uses of unchecked conversion, particularly if you are
! getting the warnings described above.
  
  @node Aliased Variables and Optimization,Atomic Variables and Optimization,Optimization and Strict Aliasing,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{192}@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{193}
  @subsubsection Aliased Variables and Optimization
  
  
  @geindex Aliasing
  
! There are scenarios in which your programs may
  use low level techniques to modify variables
  that otherwise might be considered to be unassigned. For example,
! you can pass a variable to a procedure by reference by taking
! the address of the parameter and using that address to modify the
! variable’s value, even though the address is passed as an @code{in} parameter.
  Consider the following example:
  
  @quotation
*************** end;
*** 20979,21020 ****
  @end example
  @end quotation
  
! where Get_String is a C function that uses the address in Temp to
  modify the variable @code{Name}. This code is dubious, and arguably
! erroneous, and the compiler would be entitled to assume that
  @code{Name} is never modified, and generate code accordingly.
  
! However, in practice, this would cause some existing code that
! seems to work with no optimization to start failing at high
  levels of optimization.
  
! What the compiler does for such cases is to assume that marking
! a variable as aliased indicates that some “funny business” may
! be going on. The optimizer recognizes the aliased keyword and
! inhibits optimizations that assume the value cannot be assigned.
! This means that the above example will in fact “work” reliably,
! that is, it will produce the expected results.
  
  @node Atomic Variables and Optimization,Passive Task Optimization,Aliased Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{191}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{192}
  @subsubsection Atomic Variables and Optimization
  
  
  @geindex Atomic
  
! There are two considerations with regard to performance when
! atomic variables are used.
  
  First, the RM only guarantees that access to atomic variables
! be atomic, it has nothing to say about how this is achieved,
  though there is a strong implication that this should not be
! achieved by explicit locking code. Indeed GNAT will never
! generate any locking code for atomic variable access (it will
  simply reject any attempt to make a variable or type atomic
! if the atomic access cannot be achieved without such locking code).
  
! That being said, it is important to understand that you cannot
! assume that the entire variable will always be accessed. Consider
  this example:
  
  @quotation
--- 21208,21251 ----
  @end example
  @end quotation
  
! where Get_String is a C function that uses the address in @code{Temp} to
  modify the variable @code{Name}. This code is dubious, and arguably
! erroneous, and the compiler is entitled to assume that
  @code{Name} is never modified, and generate code accordingly.
  
! However, in practice, this could cause some existing code that
! seems to work with no optimization to start failing at higher
  levels of optimization.
  
! What the compiler does for such cases, is to assume that marking a
! variable as aliased indicates that some “funny business” may be going
! on. The optimizer recognizes the @code{aliased} keyword and inhibits any
! optimizations that assume the variable cannot be assigned to.  This
! means that the above example will in fact “work” reliably, that is, it
! will produce the expected results. However, you should nevertheless
! avoid code such as this if possible because it’s not portable and may not
! functin as you expect with all compilers.
  
  @node Atomic Variables and Optimization,Passive Task Optimization,Aliased Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{194}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{195}
  @subsubsection Atomic Variables and Optimization
  
  
  @geindex Atomic
  
! You need to take two things into consideration with regard to performance when
! you use atomic variables.
  
  First, the RM only guarantees that access to atomic variables
! be atomic, but has nothing to say about how this is achieved,
  though there is a strong implication that this should not be
! achieved by explicit locking code. Indeed, GNAT never
! generates any locking code for atomic variable access; it will
  simply reject any attempt to make a variable or type atomic
! if the atomic access cannot be achieved without such locking code.
  
! That being said, it’s important to understand that you cannot
! assume the the program will always access the entire variable. Consider
  this example:
  
  @quotation
*************** X := RV.B;
*** 21036,21043 ****
  
  You cannot assume that the reference to @code{RV.B}
  will read the entire 32-bit
! variable with a single load instruction. It is perfectly legitimate if
! the hardware allows it to do a byte read of just the B field. This read
  is still atomic, which is all the RM requires. GNAT can and does take
  advantage of this, depending on the architecture and optimization level.
  Any assumption to the contrary is non-portable and risky. Even if you
--- 21267,21274 ----
  
  You cannot assume that the reference to @code{RV.B}
  will read the entire 32-bit
! variable with a single load instruction. It is perfectly legitimate, if
! the hardware allows it, to do a byte read of just the @code{B} field. This read
  is still atomic, which is all the RM requires. GNAT can and does take
  advantage of this, depending on the architecture and optimization level.
  Any assumption to the contrary is non-portable and risky. Even if you
*************** end;
*** 21059,21068 ****
  @end example
  @end quotation
  
! Now the reference to RV must read the whole variable.
! Actually one can imagine some compiler which figures
  out that the whole copy is not required (because only
! the B field is actually accessed), but GNAT
  certainly won’t do that, and we don’t know of any
  compiler that would not handle this right, and the
  above code will in practice work portably across
--- 21290,21299 ----
  @end example
  @end quotation
  
! Now the reference to @code{RV} must read the whole variable.
! Actually, one can imagine some compiler which figures
  out that the whole copy is not required (because only
! the @code{B} field is actually accessed), but GNAT
  certainly won’t do that, and we don’t know of any
  compiler that would not handle this right, and the
  above code will in practice work portably across
*************** The second issue with atomic variables h
*** 21072,21151 ****
  the possible requirement of generating synchronization
  code. For more details on this, consult the sections on
  the pragmas Enable/Disable_Atomic_Synchronization in the
! GNAT Reference Manual. If performance is critical, and
! such synchronization code is not required, it may be
  useful to disable it.
  
  @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{193}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{194}
  @subsubsection Passive Task Optimization
  
  
  @geindex Passive Task
  
! A passive task is one which is sufficiently simple that
! in theory a compiler could recognize it an implement it
  efficiently without creating a new thread. The original design
  of Ada 83 had in mind this kind of passive task optimization, but
! only a few Ada 83 compilers attempted it. The problem was that
  it was difficult to determine the exact conditions under which
  the optimization was possible. The result is a very fragile
  optimization where a very minor change in the program can
  suddenly silently make a task non-optimizable.
  
  With the revisiting of this issue in Ada 95, there was general
! agreement that this approach was fundamentally flawed, and the
  notion of protected types was introduced. When using protected
! types, the restrictions are well defined, and you KNOW that the
  operations will be optimized, and furthermore this optimized
  performance is fully portable.
  
  Although it would theoretically be possible for GNAT to attempt to
! do this optimization, but it really doesn’t make sense in the
! context of Ada 95, and none of the Ada 95 compilers implement
! this optimization as far as we know. In particular GNAT never
  attempts to perform this optimization.
  
! In any new Ada 95 code that is written, you should always
  use protected types in place of tasks that might be able to
  be optimized in this manner.
! Of course this does not help if you have legacy Ada 83 code
  that depends on this optimization, but it is unusual to encounter
  a case where the performance gains from this optimization
  are significant.
  
  Your program should work correctly without this optimization. If
! you have performance problems, then the most practical
  approach is to figure out exactly where these performance problems
! arise, and update those particular tasks to be protected types. Note
! that typically clients of the tasks who call entries, will not have
! to be modified, only the task definition itself.
  
  @node Text_IO Suggestions,Reducing Size of Executables with Unused Subprogram/Data Elimination,Performance Considerations,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{195}@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{196}
  @subsection @code{Text_IO} Suggestions
  
  
  @geindex Text_IO and performance
  
! The @code{Ada.Text_IO} package has fairly high overheads due in part to
  the requirement of maintaining page and line counts. If performance
! is critical, a recommendation is to use @code{Stream_IO} instead of
! @code{Text_IO} for volume output, since this package has less overhead.
  
! If @code{Text_IO} must be used, note that by default output to the standard
! output and standard error files is unbuffered (this provides better
! behavior when output statements are used for debugging, or if the
! progress of a program is observed by tracking the output, e.g. by
  using the Unix `tail -f' command to watch redirected output).
  
! If you are generating large volumes of output with @code{Text_IO} and
  performance is an important factor, use a designated file instead
! of the standard output file, or change the standard output file to
  be buffered using @code{Interfaces.C_Streams.setvbuf}.
  
  @node Reducing Size of Executables with Unused Subprogram/Data Elimination,,Text_IO Suggestions,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{197}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{198}
  @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
  
  
--- 21303,21382 ----
  the possible requirement of generating synchronization
  code. For more details on this, consult the sections on
  the pragmas Enable/Disable_Atomic_Synchronization in the
! :title:@code{GNAT Reference Manual}. If performance is critical, and
! such synchronization code is not required, you may find it
  useful to disable it.
  
  @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{196}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{197}
  @subsubsection Passive Task Optimization
  
  
  @geindex Passive Task
  
! A passive task is one which is sufficiently simple that,
! in theory, a compiler could recognize it and implement it
  efficiently without creating a new thread. The original design
  of Ada 83 had in mind this kind of passive task optimization, but
! only a few Ada 83 compilers attempted it. The reason was that
  it was difficult to determine the exact conditions under which
  the optimization was possible. The result is a very fragile
  optimization where a very minor change in the program can
  suddenly silently make a task non-optimizable.
  
  With the revisiting of this issue in Ada 95, there was general
! agreement that this approach was fundamentally flawed and the
  notion of protected types was introduced. When using protected
! types, the restrictions are well defined, you KNOW that the
  operations will be optimized, and furthermore this optimized
  performance is fully portable.
  
  Although it would theoretically be possible for GNAT to attempt to
! do this optimization, it really doesn’t make sense in the
! context of Ada 95 and none of the Ada 95 compilers implement
! this optimization as far as we know. GNAT never
  attempts to perform this optimization.
  
! In any new Ada 95 code that you write, you should always
  use protected types in place of tasks that might be able to
  be optimized in this manner.
! Of course, this does not help if you have legacy Ada 83 code
  that depends on this optimization, but it is unusual to encounter
  a case where the performance gains from this optimization
  are significant.
  
  Your program should work correctly without this optimization. If
! you have performance problems, the most practical
  approach is to figure out exactly where these performance problems
! arise and update those particular tasks to be protected types. Note
! that typically clients of the tasks who call entries will not have
! to be modified, only the task definitions themselves.
  
  @node Text_IO Suggestions,Reducing Size of Executables with Unused Subprogram/Data Elimination,Performance Considerations,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{198}@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{199}
  @subsection @code{Text_IO} Suggestions
  
  
  @geindex Text_IO and performance
  
! The @code{Ada.Text_IO} package has fairly high overhead due in part to
  the requirement of maintaining page and line counts. If performance
! is critical, one recommendation is to use @code{Stream_IO} instead of
! @code{Text_IO} for large-volume output, since it has less overhead.
  
! If you must use @code{Text_IO}, note that output to the standard output and
! standard error files is unbuffered by default (this provides
! better behavior when output statements are used for debugging or if
! the progress of a program is observed by tracking the output, e.g. by
  using the Unix `tail -f' command to watch redirected output).
  
! If you’re generating large volumes of output with @code{Text_IO} and
  performance is an important factor, use a designated file instead
! of the standard output file or change the standard output file to
  be buffered using @code{Interfaces.C_Streams.setvbuf}.
  
  @node Reducing Size of Executables with Unused Subprogram/Data Elimination,,Text_IO Suggestions,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{19a}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{19b}
  @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
  
  
*************** your executable just by setting options
*** 21162,21184 ****
  @end menu
  
  @node About unused subprogram/data elimination,Compilation options,,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{199}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{19a}
  @subsubsection About unused subprogram/data elimination
  
  
! By default, an executable contains all code and data of its composing objects
  (directly linked or coming from statically linked libraries), even data or code
! never used by this executable.
! 
! This feature will allow you to eliminate such unused code from your
! executable, making it smaller (in disk and in memory).
  
! This functionality is available on all Linux platforms except for the IA-64
  architecture and on all cross platforms using the ELF binary file format.
! In both cases GNU binutils version 2.16 or later are required to enable it.
  
  @node Compilation options,Example of unused subprogram/data elimination,About unused subprogram/data elimination,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{19b}@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{19c}
  @subsubsection Compilation options
  
  
--- 21393,21413 ----
  @end menu
  
  @node About unused subprogram/data elimination,Compilation options,,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{19c}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{19d}
  @subsubsection About unused subprogram/data elimination
  
  
! By default, an executable contains all code and data of its objects
  (directly linked or coming from statically linked libraries), even data or code
! never used by this executable. This feature eliminates such unused code from your
! executable, thus making it smaller (in disk and in memory).
  
! You can use this functionality on all Linux platforms except for the IA-64
  architecture and on all cross platforms using the ELF binary file format.
! In both cases, GNU binutils version 2.16 or later are required to enable it.
  
  @node Compilation options,Example of unused subprogram/data elimination,About unused subprogram/data elimination,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{19e}@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{19f}
  @subsubsection Compilation options
  
  
*************** is directly performed by the linker.
*** 21190,21227 ****
  @geindex -fdata-sections (gcc)
  
  In order to do this, it has to work with objects compiled with the
! following options:
  @code{-ffunction-sections} @code{-fdata-sections}.
  
  These options are usable with C and Ada files.
! They will place respectively each
  function or data in a separate section in the resulting object file.
  
! Once the objects and static libraries are created with these options, the
! linker can perform the dead code elimination. You can do this by setting
! the @code{-Wl,--gc-sections} option to gcc command or in the
! @code{-largs} section of @code{gnatmake}. This will perform a
! garbage collection of code and data never referenced.
  
! If the linker performs a partial link (@code{-r} linker option), then you
! will need to provide the entry point using the @code{-e} / @code{--entry}
! linker option.
  
  Note that objects compiled without the @code{-ffunction-sections} and
  @code{-fdata-sections} options can still be linked with the executable.
! However, no dead code elimination will be performed on those objects (they will
  be linked as is).
  
! The GNAT static library is now compiled with -ffunction-sections and
! -fdata-sections on some platforms. This allows you to eliminate the unused code
! and data of the GNAT library from your executable.
  
  @node Example of unused subprogram/data elimination,,Compilation options,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{19d}@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{19e}
  @subsubsection Example of unused subprogram/data elimination
  
  
! Here is a simple example:
  
  @quotation
  
--- 21419,21458 ----
  @geindex -fdata-sections (gcc)
  
  In order to do this, it has to work with objects compiled with the
! following switches passed to the GCC back end:
  @code{-ffunction-sections} @code{-fdata-sections}.
  
  These options are usable with C and Ada files.
! They cause the compiler to place each
  function or data in a separate section in the resulting object file.
  
! Once you’ve created the objects and static libraries with these switches, the
! linker can perform the dead code elimination. You can do this by specifying
! the @code{-Wl,--gc-sections} switch to your @code{gcc} command or in the
! @code{-largs} section of your invocation of @code{gnatmake}. This causes
! the linker to perform a
! garbage collection and remove code and data that are never referenced.
  
! If the linker performs a partial link (@code{-r} linker switch), then you
! need to provide the entry point using the @code{-e} / @code{--entry}
! linker switch.
  
  Note that objects compiled without the @code{-ffunction-sections} and
  @code{-fdata-sections} options can still be linked with the executable.
! However, no dead code elimination can be performed on those objects (they will
  be linked as is).
  
! The GNAT static library is compiled with @code{-ffunction-sections}
! and @code{-fdata-sections} on some platforms. This allows you to
! eliminate the unused code and data of the GNAT library from your
! executable.
  
  @node Example of unused subprogram/data elimination,,Compilation options,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{1a1}
  @subsubsection Example of unused subprogram/data elimination
  
  
! Here’s a simple example:
  
  @quotation
  
*************** end Aux;
*** 21256,21262 ****
  @end quotation
  
  @code{Unused} and @code{Unused_Data} are never referenced in this code
! excerpt, and hence they may be safely removed from the final executable.
  
  @quotation
  
--- 21487,21493 ----
  @end quotation
  
  @code{Unused} and @code{Unused_Data} are never referenced in this code
! excerpt and hence may be safely removed from the final executable.
  
  @quotation
  
*************** $ nm test | grep used
*** 21278,21293 ****
  @end example
  @end quotation
  
! It can be observed that the procedure @code{Unused} and the object
! @code{Unused_Data} are removed by the linker when using the
! appropriate options.
  
  @geindex Overflow checks
  
  @geindex Checks (overflow)
  
  @node Overflow Check Handling in GNAT,Performing Dimensionality Analysis in GNAT,Improving Performance,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{14b}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{19f}
  @section Overflow Check Handling in GNAT
  
  
--- 21509,21524 ----
  @end example
  @end quotation
  
! You can see that the procedure @code{Unused} and the object
! @code{Unused_Data} are removed by the linker when you’ve used the
! appropriate switches.
  
  @geindex Overflow checks
  
  @geindex Checks (overflow)
  
  @node Overflow Check Handling in GNAT,Performing Dimensionality Analysis in GNAT,Improving Performance,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{14e}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{1a2}
  @section Overflow Check Handling in GNAT
  
  
*************** This section explains how to control the
*** 21303,21309 ****
  @end menu
  
  @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1a1}
  @subsection Background
  
  
--- 21534,21540 ----
  @end menu
  
  @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1a3}@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1a4}
  @subsection Background
  
  
*************** A := A + 1;
*** 21319,21330 ****
  @end example
  @end quotation
  
! If @code{A} has the value @code{Integer'Last}, then the addition may cause
  overflow since the result is out of range of the type @code{Integer}.
! In this case @code{Constraint_Error} will be raised if checks are
  enabled.
  
! A trickier situation arises in examples like the following:
  
  @quotation
  
--- 21550,21561 ----
  @end example
  @end quotation
  
! If @code{A} has the value @code{Integer'Last}, the addition will cause
  overflow since the result is out of range of the type @code{Integer}.
! In this case, execution will raise @code{Constraint_Error} if checks are
  enabled.
  
! A trickier situation arises in cases like the following:
  
  @quotation
  
*************** A := (A + 1) + C;
*** 21336,21347 ****
  @end quotation
  
  where @code{A} is @code{Integer'Last} and @code{C} is @code{-1}.
! Now the final result of the expression on the right hand side is
  @code{Integer'Last} which is in range, but the question arises whether the
  intermediate addition of @code{(A + 1)} raises an overflow error.
  
  The (perhaps surprising) answer is that the Ada language
! definition does not answer this question. Instead it leaves
  it up to the implementation to do one of two things if overflow
  checks are enabled.
  
--- 21567,21578 ----
  @end quotation
  
  where @code{A} is @code{Integer'Last} and @code{C} is @code{-1}.
! Here, the final result of the expression on the right hand side is
  @code{Integer'Last} which is in range, but the question arises whether the
  intermediate addition of @code{(A + 1)} raises an overflow error.
  
  The (perhaps surprising) answer is that the Ada language
! definition does not answer this question. Instead, it leaves
  it up to the implementation to do one of two things if overflow
  checks are enabled.
  
*************** yield the correct mathematical result wh
*** 21356,21382 ****
  subsequent operations.
  @end itemize
  
! If the compiler chooses the first approach, then the assignment of this
  example will indeed raise @code{Constraint_Error} if overflow checking is
! enabled, or result in erroneous execution if overflow checks are suppressed.
  
  But if the compiler
! chooses the second approach, then it can perform both additions yielding
  the correct mathematical result, which is in range, so no exception
! will be raised, and the right result is obtained, regardless of whether
  overflow checks are suppressed.
  
! Note that in the first example an
  exception will be raised in either case, since if the compiler
  gives the correct mathematical result for the addition, it will
! be out of range of the target type of the assignment, and thus
  fails the range check.
  
  This lack of specified behavior in the handling of overflow for
! intermediate results is a source of non-portability, and can thus
! be problematic when programs are ported. Most typically this arises
! in a situation where the original compiler did not raise an exception,
! and then the application is moved to a compiler where the check is
  performed on the intermediate result and an unexpected exception is
  raised.
  
--- 21587,21613 ----
  subsequent operations.
  @end itemize
  
! If the compiler chooses the first approach, the execution of this
  example will indeed raise @code{Constraint_Error} if overflow checking is
! enabled or result in erroneous execution if overflow checks are suppressed.
  
  But if the compiler
! chooses the second approach, it can perform both additions yielding
  the correct mathematical result, which is in range, so no exception
! is raised and the right result is obtained, regardless of whether
  overflow checks are suppressed.
  
! Note that in the first example, an
  exception will be raised in either case, since if the compiler
  gives the correct mathematical result for the addition, it will
! be out of range of the target type of the assignment and thus
  fails the range check.
  
  This lack of specified behavior in the handling of overflow for
! intermediate results is a source of non-portability and can thus
! be problematic when you port programs. Most typically, this arises
! in a situation where the original compiler did not raise an exception
! and you move the application to a compiler where the check is
  performed on the intermediate result and an unexpected exception is
  raised.
  
*************** procedure P (A, B : Integer) with
*** 21391,21401 ****
  @end example
  @end quotation
  
! One often wants to regard arithmetic in a context like this from
! a mathematical point of view. So for example, if the two actual parameters
! for a call to @code{P} are both @code{Integer'Last}, then
! the precondition should be regarded as False. If we are executing
! in a mode with run-time checks enabled for preconditions, then we would
  like this precondition to fail, rather than raising an exception
  because of the intermediate overflow.
  
--- 21622,21632 ----
  @end example
  @end quotation
  
! We often want to regard arithmetic in a context such as this from a
! purely mathematical point of view. So, for example, if the two actual
! parameters for a call to @code{P} are both @code{Integer'Last} then the
! precondition should be evaluated as @code{False}. If we’re executing in a
! mode with run-time checks enabled for preconditions, then we would
  like this precondition to fail, rather than raising an exception
  because of the intermediate overflow.
  
*************** Q (A => Integer'Last, B => 1, C => -1);
*** 21424,21443 ****
  @end quotation
  
  From a mathematical point of view the precondition
! is True, but at run time we may (but are not guaranteed to) get an
  exception raised because of the intermediate overflow (and we really
! would prefer this precondition to be considered True at run time).
  
  @node Management of Overflows in GNAT,Specifying the Desired Mode,Background,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id47}@anchor{1a2}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1a3}
  @subsection Management of Overflows in GNAT
  
  
! To deal with the portability issue, and with the problem of
  mathematical versus run-time interpretation of the expressions in
  assertions, GNAT provides comprehensive control over the handling
! of intermediate overflow. GNAT can operate in three modes, and
! furthermore, permits separate selection of operating modes for
  the expressions within assertions (here the term ‘assertions’
  is used in the technical sense, which includes preconditions and so forth)
  and for expressions appearing outside assertions.
--- 21655,21674 ----
  @end quotation
  
  From a mathematical point of view the precondition
! is @code{True}, but at run time we may (but are not guaranteed to) get an
  exception raised because of the intermediate overflow (and we really
! would prefer this precondition to be considered @code{True} at run time).
  
  @node Management of Overflows in GNAT,Specifying the Desired Mode,Background,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id47}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1a6}
  @subsection Management of Overflows in GNAT
  
  
! To deal with the portability issue and with the problem of
  mathematical versus run-time interpretation of the expressions in
  assertions, GNAT provides comprehensive control over the handling
! of intermediate overflows. It can operate in three modes, and
! in addition, permits separate selection of operating modes for
  the expressions within assertions (here the term ‘assertions’
  is used in the technical sense, which includes preconditions and so forth)
  and for expressions appearing outside assertions.
*************** The three modes are:
*** 21453,21459 ****
  In this mode, all intermediate results for predefined arithmetic
  operators are computed using the base type, and the result must
  be in range of the base type. If this is not the
! case then either an exception is raised (if overflow checks are
  enabled) or the execution is erroneous (if overflow checks are suppressed).
  This is the normal default mode.
  
--- 21684,21690 ----
  In this mode, all intermediate results for predefined arithmetic
  operators are computed using the base type, and the result must
  be in range of the base type. If this is not the
! case, then either an exception is raised (if overflow checks are
  enabled) or the execution is erroneous (if overflow checks are suppressed).
  This is the normal default mode.
  
*************** checks that must be made, so this choice
*** 21475,21481 ****
  improvement in space and time behavior.
  
  However, there are cases where @code{Long_Long_Integer} is not large
! enough, consider the following example:
  
  @quotation
  
--- 21706,21712 ----
  improvement in space and time behavior.
  
  However, there are cases where @code{Long_Long_Integer} is not large
! enough. Consider the following example:
  
  @quotation
  
*************** procedure R (A, B, C, D : Integer) with
*** 21488,21495 ****
  where @code{A} = @code{B} = @code{C} = @code{D} = @code{Integer'Last}.
  Now the intermediate results are
  out of the range of @code{Long_Long_Integer} even though the final result
! is in range and the precondition is True (from a mathematical point
! of view). In such a case, operating in this mode, an overflow occurs
  for the intermediate computation (which is why this mode
  says `most' intermediate overflows are avoided). In this case,
  an exception is raised if overflow checks are enabled, and the
--- 21719,21726 ----
  where @code{A} = @code{B} = @code{C} = @code{D} = @code{Integer'Last}.
  Now the intermediate results are
  out of the range of @code{Long_Long_Integer} even though the final result
! is in range and the precondition is @code{True} from a mathematical point
! of view. In such a case, operating in this mode, an overflow occurs
  for the intermediate computation (which is why this mode
  says `most' intermediate overflows are avoided). In this case,
  an exception is raised if overflow checks are enabled, and the
*************** by using arbitrary precision arithmetic
*** 21503,21509 ****
  mode, the above example with @code{A**2 * B**2} would
  not cause intermediate overflow, because the intermediate result
  would be evaluated using sufficient precision, and the result
! of evaluating the precondition would be True.
  
  This mode has the advantage of avoiding any intermediate
  overflows, but at the expense of significant run-time overhead,
--- 21734,21740 ----
  mode, the above example with @code{A**2 * B**2} would
  not cause intermediate overflow, because the intermediate result
  would be evaluated using sufficient precision, and the result
! of evaluating the precondition would be @code{True}.
  
  This mode has the advantage of avoiding any intermediate
  overflows, but at the expense of significant run-time overhead,
*************** mode) for multiple-precision arithmetic.
*** 21513,21524 ****
  This mode provides cleaner semantics for assertions, since now
  the run-time behavior emulates true arithmetic behavior for the
  predefined arithmetic operators, meaning that there is never a
! conflict between the mathematical view of the assertion, and its
  run-time behavior.
  
  Note that in this mode, the behavior is unaffected by whether or
  not overflow checks are suppressed, since overflow does not occur.
! It is possible for gigantic intermediate expressions to raise
  @code{Storage_Error} as a result of attempting to compute the
  results of such expressions (e.g. @code{Integer'Last ** Integer'Last})
  but overflow is impossible.
--- 21744,21755 ----
  This mode provides cleaner semantics for assertions, since now
  the run-time behavior emulates true arithmetic behavior for the
  predefined arithmetic operators, meaning that there is never a
! conflict between the mathematical view of the assertion and its
  run-time behavior.
  
  Note that in this mode, the behavior is unaffected by whether or
  not overflow checks are suppressed, since overflow does not occur.
! Gigantic intermediate expressions can still raise
  @code{Storage_Error} as a result of attempting to compute the
  results of such expressions (e.g. @code{Integer'Last ** Integer'Last})
  but overflow is impossible.
*************** Note that these modes apply only to the
*** 21528,21557 ****
  arithmetic, membership, and comparison operators for signed integer
  arithmetic.
  
! For fixed-point arithmetic, checks can be suppressed. But if checks
! are enabled
! then fixed-point values are always checked for overflow against the
! base type for intermediate expressions (that is such checks always
  operate in the equivalent of @code{STRICT} mode).
  
  For floating-point, on nearly all architectures, @code{Machine_Overflows}
! is False, and IEEE infinities are generated, so overflow exceptions
! are never raised. If you want to avoid infinities, and check that
! final results of expressions are in range, then you can declare a
! constrained floating-point type, and range checks will be carried
  out in the normal manner (with infinite values always failing all
  range checks).
  
  @node Specifying the Desired Mode,Default Settings,Management of Overflows in GNAT,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id48}@anchor{1a4}@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{eb}
  @subsection Specifying the Desired Mode
  
  
  @geindex pragma Overflow_Mode
  
! The desired mode of for handling intermediate overflow can be specified using
  either the @code{Overflow_Mode} pragma or an equivalent compiler switch.
! The pragma has the form
  
  @quotation
  
--- 21759,21789 ----
  arithmetic, membership, and comparison operators for signed integer
  arithmetic.
  
! For fixed-point arithmetic, you suppress checks. But if checks
! are enabled,
! fixed-point values are always checked for overflow against the
! base type for intermediate expressions (i.e., such checks always
  operate in the equivalent of @code{STRICT} mode).
  
  For floating-point, on nearly all architectures, @code{Machine_Overflows}
! is @code{False}, and IEEE infinities are generated, so overflow exceptions
! are never raised. If you want to avoid infinities and check that
! final results of expressions are in range, you can declare a
! constrained floating-point type and range checks are carried
  out in the normal manner (with infinite values always failing all
  range checks).
  
  @node Specifying the Desired Mode,Default Settings,Management of Overflows in GNAT,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id48}@anchor{1a7}@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{ec}
  @subsection Specifying the Desired Mode
  
  
  @geindex pragma Overflow_Mode
  
! You can specify
! the desired mode of for handling intermediate overflow using
  either the @code{Overflow_Mode} pragma or an equivalent compiler switch.
! The pragma has the form:
  
  @quotation
  
*************** where @code{MODE} is one of
*** 21578,21586 ****
  The case is ignored, so @code{MINIMIZED}, @code{Minimized} and
  @code{minimized} all have the same effect.
  
! If only the @code{General} parameter is present, then the given @code{MODE} applies
! to expressions both within and outside assertions. If both arguments
! are present, then @code{General} applies to expressions outside assertions,
  and @code{Assertions} applies to expressions within assertions. For example:
  
  @quotation
--- 21810,21818 ----
  The case is ignored, so @code{MINIMIZED}, @code{Minimized} and
  @code{minimized} all have the same effect.
  
! If you only specify the @code{General} parameter, the given @code{MODE} applies
! to expressions both within and outside assertions. If you specify both arguments,
! the value of @code{General} applies to expressions outside assertions,
  and @code{Assertions} applies to expressions within assertions. For example:
  
  @quotation
*************** pragma Overflow_Mode
*** 21591,21608 ****
  @end example
  @end quotation
  
! specifies that general expressions outside assertions be evaluated
! in ‘minimize intermediate overflows’ mode, and expressions within
  assertions be evaluated in ‘eliminate intermediate overflows’ mode.
  This is often a reasonable choice, avoiding excessive overhead
  outside assertions, but assuring a high degree of portability
! when importing code from another compiler, while incurring
  the extra overhead for assertion expressions to ensure that
  the behavior at run time matches the expected mathematical
  behavior.
  
  The @code{Overflow_Mode} pragma has the same scoping and placement
! rules as pragma @code{Suppress}, so it can occur either as a
  configuration pragma, specifying a default for the whole
  program, or in a declarative scope, where it applies to the
  remaining declarations and statements in that scope.
--- 21823,21840 ----
  @end example
  @end quotation
  
! specifies that expressions outside assertions be evaluated
! in ‘minimize intermediate overflows’ mode and expressions within
  assertions be evaluated in ‘eliminate intermediate overflows’ mode.
  This is often a reasonable choice, avoiding excessive overhead
  outside assertions, but assuring a high degree of portability
! when importing code from another compiler while incurring
  the extra overhead for assertion expressions to ensure that
  the behavior at run time matches the expected mathematical
  behavior.
  
  The @code{Overflow_Mode} pragma has the same scoping and placement
! rules as pragma @code{Suppress}, so you can use it either as a
  configuration pragma, specifying a default for the whole
  program, or in a declarative scope, where it applies to the
  remaining declarations and statements in that scope.
*************** or @code{Unsuppress} in the usual manner
*** 21617,21625 ****
  
  @geindex -gnato?? (gcc)
  
! Additionally, a compiler switch @code{-gnato?} or @code{-gnato??}
! can be used to control the checking mode default (which can be subsequently
! overridden using pragmas).
  
  Here @code{?} is one of the digits @code{1} through @code{3}:
  
--- 21849,21857 ----
  
  @geindex -gnato?? (gcc)
  
! Additionally, you can use the compiler switch @code{-gnato?} or
! @code{-gnato??} to control the checking mode default (which you can
! subsequently override using the above pragmas).
  
  Here @code{?} is one of the digits @code{1} through @code{3}:
  
*************** eliminate intermediate overflows (@code{
*** 21655,21673 ****
  
  @end quotation
  
! As with the pragma, if only one digit appears then it applies to all
! cases; if two digits are given, then the first applies outside
! assertions, and the second within assertions. Thus the equivalent
  of the example pragma above would be
  @code{-gnato23}.
  
! If no digits follow the @code{-gnato}, then it is equivalent to
! @code{-gnato11},
! causing all intermediate operations to be computed using the base
! type (@code{STRICT} mode).
  
  @node Default Settings,Implementation Notes,Specifying the Desired Mode,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution id49}@anchor{1a6}
  @subsection Default Settings
  
  
--- 21887,21904 ----
  
  @end quotation
  
! As with the pragma, if only one digit appears, it applies to all
! cases; if two digits are given, the first applies to expressions outside
! assertions and the second within assertions. Thus the equivalent
  of the example pragma above would be
  @code{-gnato23}.
  
! If you don’t provide any digits following the @code{-gnato}, it’s
! equivalent to @code{-gnato11}, causing all intermediate operations
! to be computed using the base type (@code{STRICT} mode).
  
  @node Default Settings,Implementation Notes,Specifying the Desired Mode,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1a8}@anchor{gnat_ugn/gnat_and_program_execution id49}@anchor{1a9}
  @subsection Default Settings
  
  
*************** which causes all computations both insid
*** 21684,21710 ****
  base type, and is equivalent to @code{-gnato} (with no digits following).
  
  The pragma @code{Suppress (Overflow_Check)} disables overflow
! checking, but it has no effect on the method used for computing
  intermediate results.
- 
  The pragma @code{Unsuppress (Overflow_Check)} enables overflow
! checking, but it has no effect on the method used for computing
  intermediate results.
  
  @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id50}@anchor{1a7}@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1a8}
  @subsection Implementation Notes
  
  
! In practice on typical 64-bit machines, the @code{MINIMIZED} mode is
! reasonably efficient, and can be generally used. It also helps
! to ensure compatibility with code imported from some other
! compiler to GNAT.
  
  Setting all intermediate overflows checking (@code{STRICT} mode)
  makes sense if you want to
! make sure that your code is compatible with any other possible
! Ada implementation. This may be useful in ensuring portability
  for code that is to be exported to some other compiler than GNAT.
  
  The Ada standard allows the reassociation of expressions at
--- 21915,21940 ----
  base type, and is equivalent to @code{-gnato} (with no digits following).
  
  The pragma @code{Suppress (Overflow_Check)} disables overflow
! checking but has no effect on the method used for computing
  intermediate results.
  The pragma @code{Unsuppress (Overflow_Check)} enables overflow
! checking but has no effect on the method used for computing
  intermediate results.
  
  @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id50}@anchor{1aa}@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1ab}
  @subsection Implementation Notes
  
  
! In practice, on typical 64-bit machines, the @code{MINIMIZED} mode is
! reasonably efficient and you can generally use it. It also helps
! to ensure compatibility with code imported from other
! compilers to GNAT.
  
  Setting all intermediate overflows checking (@code{STRICT} mode)
  makes sense if you want to
! make sure your code is compatible with any other
! Ada implementations. You may find this useful in ensuring portability
  for code that is to be exported to some other compiler than GNAT.
  
  The Ada standard allows the reassociation of expressions at
*************** still has the same bounds as its associa
*** 21736,21754 ****
  type at run-time.
  
  Currently, the @code{ELIMINATED} mode is only available on target
! platforms for which @code{Long_Long_Integer} is 64-bits (nearly all GNAT
  platforms).
  
  @node Performing Dimensionality Analysis in GNAT,Stack Related Facilities,Overflow Check Handling in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id51}@anchor{14c}@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{1a9}
  @section Performing Dimensionality Analysis in GNAT
  
  
  @geindex Dimensionality analysis
  
! The GNAT compiler supports dimensionality checking. The user can
! specify physical units for objects, and the compiler will verify that uses
! of these objects are compatible with their dimensions, in a fashion that is
  familiar to engineering practice. The dimensions of algebraic expressions
  (including powers with static exponents) are computed from their constituents.
  
--- 21966,21984 ----
  type at run-time.
  
  Currently, the @code{ELIMINATED} mode is only available on target
! platforms for which @code{Long_Long_Integer} is at least 64-bits (nearly all GNAT
  platforms).
  
  @node Performing Dimensionality Analysis in GNAT,Stack Related Facilities,Overflow Check Handling in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id51}@anchor{14f}@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{1ac}
  @section Performing Dimensionality Analysis in GNAT
  
  
  @geindex Dimensionality analysis
  
! The GNAT compiler supports dimensionality checking. You can
! specify physical units for objects and the compiler verifies that uses
! of these objects are compatible with their dimension, in a fashion that is
  familiar to engineering practice. The dimensions of algebraic expressions
  (including powers with static exponents) are computed from their constituents.
  
*************** familiar to engineering practice. The di
*** 21756,21771 ****
  
  @geindex Dimension aspect
  
! This feature depends on Ada 2012 aspect specifications, and is available from
! version 7.0.1 of GNAT onwards.
  The GNAT-specific aspect @code{Dimension_System}
  allows you to define a system of units; the aspect @code{Dimension}
! then allows the user to declare dimensioned quantities within a given system.
  (These aspects are described in the `Implementation Defined Aspects'
! chapter of the `GNAT Reference Manual').
  
  The major advantage of this model is that it does not require the declaration of
! multiple operators for all possible combinations of types: it is only necessary
  to use the proper subtypes in object declarations.
  
  @geindex System.Dim.Mks package (GNAT library)
--- 21986,22001 ----
  
  @geindex Dimension aspect
  
! This feature depends on Ada 2012 aspect specifications and is available for
! versions 7.0.1 and later of GNAT.
  The GNAT-specific aspect @code{Dimension_System}
  allows you to define a system of units; the aspect @code{Dimension}
! allows you to declare dimensioned quantities within a given system.
  (These aspects are described in the `Implementation Defined Aspects'
! chapter of the @cite{GNAT Reference Manual}).
  
  The major advantage of this model is that it does not require the declaration of
! multiple operators for all possible combinations of types: you is only need
  to use the proper subtypes in object declarations.
  
  @geindex System.Dim.Mks package (GNAT library)
*************** to use the proper subtypes in object dec
*** 21774,21782 ****
  
  The simplest way to impose dimensionality checking on a computation is to make
  use of one of the instantiations of the package @code{System.Dim.Generic_Mks}, which
! are part of the GNAT library. This generic package defines a floating-point
  type @code{MKS_Type}, for which a sequence of dimension names are specified,
! together with their conventional abbreviations.  The following should be read
  together with the full specification of the package, in file
  @code{s-digemk.ads}.
  
--- 22004,22012 ----
  
  The simplest way to impose dimensionality checking on a computation is to make
  use of one of the instantiations of the package @code{System.Dim.Generic_Mks}, which
! is part of the GNAT library. This generic package defines a floating-point
  type @code{MKS_Type}, for which a sequence of dimension names are specified,
! together with their conventional abbreviations.  You should read the following
  together with the full specification of the package, in file
  @code{s-digemk.ads}.
  
*************** GNAT library:
*** 21857,21863 ****
  @end itemize
  
  Using one of these packages, you can then define a derived unit by providing
! the aspect that specifies its dimensions within the MKS system, as well as the
  string to be used for output of a value of that unit:
  
  @quotation
--- 22087,22093 ----
  @end itemize
  
  Using one of these packages, you can then define a derived unit by providing
! the aspect that specifies its dimensions within the MKS system as well as the
  string to be used for output of a value of that unit:
  
  @quotation
*************** subtype Acceleration is Mks_Type
*** 21871,21877 ****
  @end example
  @end quotation
  
! Here is a complete example of use:
  
  @quotation
  
--- 22101,22107 ----
  @end example
  @end quotation
  
! Here’s a complete example:
  
  @quotation
  
*************** Distance := 5.0 * kg:
*** 21934,21940 ****
  @end example
  @end quotation
  
! The dimensions of an expression are properly displayed, even if there is
  no explicit subtype for it. If we add to the program:
  
  @quotation
--- 22164,22170 ----
  @end example
  @end quotation
  
! The dimensions of an expression are properly displayed even if there is
  no explicit subtype for it. If we add to the program:
  
  @quotation
*************** Put_Line ("");
*** 21946,21952 ****
  @end example
  @end quotation
  
! then the output includes:
  
  @quotation
  
--- 22176,22182 ----
  @end example
  @end quotation
  
! the output includes:
  
  @quotation
  
*************** then `expr' is dimensionless; @code{DV(@
*** 22017,22023 ****
  @code{DV(@var{op expr})}, where `op' is a unary operator, is @code{DV(@var{expr})}
  
  @item 
! @code{DV(@var{expr1 op expr2})} where `op' is “+” or “-” is @code{DV(@var{expr1})}
  provided that @code{DV(@var{expr1})} = @code{DV(@var{expr2})}.
  If this condition is not met then the construct is illegal.
  
--- 22247,22253 ----
  @code{DV(@var{op expr})}, where `op' is a unary operator, is @code{DV(@var{expr})}
  
  @item 
! @code{DV(@var{expr1 op expr2})}, where `op' is “+” or “-”, is @code{DV(@var{expr1})}
  provided that @code{DV(@var{expr1})} = @code{DV(@var{expr2})}.
  If this condition is not met then the construct is illegal.
  
*************** combine a dimensioned and dimensionless
*** 22039,22045 ****
  @code{Acceleration}.
  
  The dimensionality checks for relationals use the same rules as
! for “+” and “-”, except when comparing to a literal; thus
  
  @quotation
  
--- 22269,22275 ----
  @code{Acceleration}.
  
  The dimensionality checks for relationals use the same rules as
! for “+” and “-” except when comparing to a literal; thus
  
  @quotation
  
*************** acc > 10.0
*** 22066,22072 ****
  @end example
  @end quotation
  
! is accepted with a warning. Analogously a conditional expression requires the
  same dimension vector for each branch (with no exception for literals).
  
  The dimension vector of a type conversion @code{T(@var{expr})} is defined
--- 22296,22302 ----
  @end example
  @end quotation
  
! is accepted with a warning. Analogously, a conditional expression requires the
  same dimension vector for each branch (with no exception for literals).
  
  The dimension vector of a type conversion @code{T(@var{expr})} is defined
*************** as follows, based on the nature of @code
*** 22076,22094 ****
  @itemize *
  
  @item 
! If @code{T} is a dimensioned subtype then @code{DV(T(@var{expr}))} is @code{DV(T)}
  provided that either `expr' is dimensionless or
  @code{DV(T)} = @code{DV(@var{expr})}. The conversion is illegal
  if `expr' is dimensioned and @code{DV(@var{expr})} /= @code{DV(T)}.
  Note that vector equality does not require that the corresponding
  Unit_Names be the same.
  
! As a consequence of the above rule, it is possible to convert between
! different dimension systems that follow the same international system
! of units, with the seven physical components given in the standard order
! (length, mass, time, etc.). Thus a length in meters can be converted to
! a length in inches (with a suitable conversion factor) but cannot be
! converted, for example, to a mass in pounds.
  
  @item 
  If @code{T} is the base type for `expr' (and the dimensionless root type of
--- 22306,22324 ----
  @itemize *
  
  @item 
! If @code{T} is a dimensioned subtype, then @code{DV(T(@var{expr}))} is @code{DV(T)}
  provided that either `expr' is dimensionless or
  @code{DV(T)} = @code{DV(@var{expr})}. The conversion is illegal
  if `expr' is dimensioned and @code{DV(@var{expr})} /= @code{DV(T)}.
  Note that vector equality does not require that the corresponding
  Unit_Names be the same.
  
! As a consequence of the above rule, you can convert between
! different dimension systems that follow the same international
! system of units, with the seven physical components given in the
! standard order (length, mass, time, etc.). Thus, you can convert a
! length in meters to a length in inches (with a suitable conversion
! factor) but not, for example, to a mass in pounds.
  
  @item 
  If @code{T} is the base type for `expr' (and the dimensionless root type of
*************** the dimension system), then @code{DV(T(@
*** 22096,22103 ****
  Thus, if `expr' is of a dimensioned subtype of @code{T}, the conversion may
  be regarded as a “view conversion” that preserves dimensionality.
  
! This rule makes it possible to write generic code that can be instantiated
! with compatible dimensioned subtypes.  The generic unit will contain
  conversions that will consequently be present in instantiations, but
  conversions to the base type will preserve dimensionality and make it
  possible to write generic code that is correct with respect to
--- 22326,22333 ----
  Thus, if `expr' is of a dimensioned subtype of @code{T}, the conversion may
  be regarded as a “view conversion” that preserves dimensionality.
  
! This rule means you can write generic code that can be instantiated
! with compatible dimensioned subtypes.  You include in the generic unit
  conversions that will consequently be present in instantiations, but
  conversions to the base type will preserve dimensionality and make it
  possible to write generic code that is correct with respect to
*************** dimensionality.
*** 22105,22111 ****
  
  @item 
  Otherwise (i.e., @code{T} is neither a dimensioned subtype nor a dimensionable
! base type), @code{DV(T(@var{expr}))} is the empty vector. Thus a dimensioned
  value can be explicitly converted to a non-dimensioned subtype, which
  of course then escapes dimensionality analysis.
  @end itemize
--- 22335,22341 ----
  
  @item 
  Otherwise (i.e., @code{T} is neither a dimensioned subtype nor a dimensionable
! base type), @code{DV(T(@var{expr}))} is the empty vector. Thus, a dimensioned
  value can be explicitly converted to a non-dimensioned subtype, which
  of course then escapes dimensionality analysis.
  @end itemize
*************** Source := Target;
*** 22122,22135 ****
  @end example
  @end quotation
  
! requires @code{DV(Source)} = @code{DV(Target)}, and analogously for parameter
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
! When using dimensioned types with elementary functions it is necessary to
  instantiate the @code{Ada.Numerics.Generic_Elementary_Functions} package using
! the @code{Mks_Type} and not any of the derived subtypes such as @code{Distance}.
! For functions such as @code{Sqrt} the dimensional analysis will fail when using
  the subtypes because both the parameter and return are of the same type.
  
  An example instantiation
--- 22352,22365 ----
  @end example
  @end quotation
  
! requires @code{DV(Source)} = @code{DV(Target)} and analogously for parameter
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
! When using dimensioned types with elementary functions, you need not
  instantiate the @code{Ada.Numerics.Generic_Elementary_Functions} package using
! the @code{Mks_Type} nor for any of the derived subtypes such as @code{Distance}.
! For functions such as @code{Sqrt}, the dimensional analysis will fail when using
  the subtypes because both the parameter and return are of the same type.
  
  An example instantiation
*************** package Mks_Numerics is new
*** 22143,22149 ****
  @end quotation
  
  @node Stack Related Facilities,Memory Management Issues,Performing Dimensionality Analysis in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id52}@anchor{14d}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{1aa}
  @section Stack Related Facilities
  
  
--- 22373,22379 ----
  @end quotation
  
  @node Stack Related Facilities,Memory Management Issues,Performing Dimensionality Analysis in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id52}@anchor{150}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{1ad}
  @section Stack Related Facilities
  
  
*************** particular, it deals with dynamic and st
*** 22159,22165 ****
  @end menu
  
  @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id53}@anchor{1ab}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{e7}
  @subsection Stack Overflow Checking
  
  
--- 22389,22395 ----
  @end menu
  
  @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id53}@anchor{1ae}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{e8}
  @subsection Stack Overflow Checking
  
  
*************** particular, it deals with dynamic and st
*** 22169,22175 ****
  
  For most operating systems, @code{gcc} does not perform stack overflow
  checking by default. This means that if the main environment task or
! some other task exceeds the available stack space, then unpredictable
  behavior will occur. Most native systems offer some level of protection by
  adding a guard page at the end of each task stack. This mechanism is usually
  not enough for dealing properly with stack overflow situations because
--- 22399,22405 ----
  
  For most operating systems, @code{gcc} does not perform stack overflow
  checking by default. This means that if the main environment task or
! some other task exceeds the available stack space, unpredictable
  behavior will occur. Most native systems offer some level of protection by
  adding a guard page at the end of each task stack. This mechanism is usually
  not enough for dealing properly with stack overflow situations because
*************** guard page is hit, there may not be any
*** 22179,22185 ****
  the exception propagation code. Enabling stack checking avoids
  such situations.
  
! To activate stack checking, compile all units with the @code{gcc} option
  @code{-fstack-check}. For example:
  
  @quotation
--- 22409,22415 ----
  the exception propagation code. Enabling stack checking avoids
  such situations.
  
! To activate stack checking, compile all units with the @code{gcc} switch
  @code{-fstack-check}. For example:
  
  @quotation
*************** $ gcc -c -fstack-check package1.adb
*** 22192,22210 ****
  Units compiled with this option will generate extra instructions to check
  that any use of the stack (for procedure calls or for declaring local
  variables in declare blocks) does not exceed the available stack space.
! If the space is exceeded, then a @code{Storage_Error} exception is raised.
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the @code{-d} bind switch
! (@ref{112,,Switches for gnatbind}). Task specific stack sizes may be set using the
  @code{Storage_Size} pragma.
  
  For the environment task, the stack size is determined by the operating system.
  Consequently, to modify the size of the environment task please refer to your
  operating system documentation.
  
  @node Static Stack Usage Analysis,Dynamic Stack Usage Analysis,Stack Overflow Checking,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{1ac}@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{e8}
  @subsection Static Stack Usage Analysis
  
  
--- 22422,22443 ----
  Units compiled with this option will generate extra instructions to check
  that any use of the stack (for procedure calls or for declaring local
  variables in declare blocks) does not exceed the available stack space.
! If the space is exceeded, a @code{Storage_Error} exception is raised.
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the @code{-d} bind switch
! (@ref{114,,Switches for gnatbind}). You can set task specific stack sizes using the
  @code{Storage_Size} pragma.
  
  For the environment task, the stack size is determined by the operating system.
  Consequently, to modify the size of the environment task please refer to your
  operating system documentation.
  
+ When using the LLVM back end, this switch doesn’t perform full stack overflow
+ checking, but just checks for very large local dynamic allocations.
+ 
  @node Static Stack Usage Analysis,Dynamic Stack Usage Analysis,Stack Overflow Checking,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{e9}
  @subsection Static Stack Usage Analysis
  
  
*************** operating system documentation.
*** 22212,22220 ****
  
  @geindex -fstack-usage
  
! A unit compiled with @code{-fstack-usage} will generate an extra file
  that specifies
! the maximum amount of stack used, on a per-function basis.
  The file has the same
  basename as the target object file with a @code{.su} extension.
  Each line of this file is made up of three fields:
--- 22445,22453 ----
  
  @geindex -fstack-usage
  
! A unit compiled with the @code{-fstack-usage} switch generate an extra file
  that specifies
! the maximum amount of stack used on a per-function basis.
  The file has the same
  basename as the target object file with a @code{.su} extension.
  Each line of this file is made up of three fields:
*************** of the function stack analysis. When it
*** 22248,22263 ****
  means that the second field is a reliable maximum of the function stack
  utilization.
  
! A unit compiled with @code{-Wstack-usage} will issue a warning for each
! subprogram whose stack usage might be larger than the specified amount of
! bytes.  The wording is in keeping with the qualifier documented above.
  
  @node Dynamic Stack Usage Analysis,,Static Stack Usage Analysis,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{115}@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1ad}
  @subsection Dynamic Stack Usage Analysis
  
  
! It is possible to measure the maximum amount of stack used by a task, by
  adding a switch to @code{gnatbind}, as:
  
  @quotation
--- 22481,22499 ----
  means that the second field is a reliable maximum of the function stack
  utilization.
  
! Compilation of a unit with the @code{-Wstack-usage} switch will
! issue a warning for each subprogram whose stack usage might be larger
! than the specified amount of bytes.  The wording of that warning is
! consistent with that in the file documented above.
! 
! This is not supported by the LLVM back end.
  
  @node Dynamic Stack Usage Analysis,,Static Stack Usage Analysis,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{117}@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1b0}
  @subsection Dynamic Stack Usage Analysis
  
  
! You can measure the maximum amount of stack used by a task by
  adding a switch to @code{gnatbind}, as:
  
  @quotation
*************** Note that this switch is not compatible
*** 22273,22281 ****
  Valgrind and DrMemory; they will report errors.
  
  It is not always convenient to output the stack usage when the program
! is still running. Hence, it is possible to delay this output until program
! termination. for a given number of tasks specified as the argument of the
! @code{-u} option. For instance:
  
  @quotation
  
--- 22509,22517 ----
  Valgrind and DrMemory; they will report errors.
  
  It is not always convenient to output the stack usage when the program
! is still running. Hence, you can delay this output until the
! termination of the number of tasks specified as the argument of the
! @code{-u} switch. For example:
  
  @quotation
  
*************** $ gnatbind -u100 file
*** 22284,22291 ****
  @end example
  @end quotation
  
! will buffer the stack usage information of the first 100 tasks to terminate and
! output this info at program termination. Results are displayed in four
  columns:
  
  @quotation
--- 22520,22527 ----
  @end example
  @end quotation
  
! buffers the stack usage information of the first 100 tasks to terminate and
! outputs it when the program terminates. Results are displayed in four
  columns:
  
  @quotation
*************** is not entirely analyzed, and it’s not
*** 22316,22325 ****
  much has actually been used.
  @end itemize
  
! By default the environment task stack, the stack that contains the main unit,
! is not processed. To enable processing of the environment task stack, the
! environment variable GNAT_STACK_LIMIT needs to be set to the maximum size of
! the environment task stack. This amount is given in kilobytes. For example:
  
  @quotation
  
--- 22552,22562 ----
  much has actually been used.
  @end itemize
  
! By default, @code{gnatbind} does not process the environment task stack,
! the stack that contains the main unit. To enable processing of the
! environment task stack, set the environment variable GNAT_STACK_LIMIT
! to the maximum size of the environment task stack. This amount is
! given in kilobytes. For example:
  
  @quotation
  
*************** $ set GNAT_STACK_LIMIT 1600
*** 22331,22345 ****
  would specify to the analyzer that the environment task stack has a limit
  of 1.6 megabytes. Any stack usage beyond this will be ignored by the analysis.
  
  The package @code{GNAT.Task_Stack_Usage} provides facilities to get
  stack-usage reports at run time. See its body for the details.
  
  @node Memory Management Issues,,Stack Related Facilities,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{14e}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{1ae}
  @section Memory Management Issues
  
  
! This section describes some useful memory pools provided in the GNAT library
  and in particular the GNAT Debug Pool facility, which can be used to detect
  incorrect uses of access values (including ‘dangling references’).
  
--- 22568,22584 ----
  would specify to the analyzer that the environment task stack has a limit
  of 1.6 megabytes. Any stack usage beyond this will be ignored by the analysis.
  
+ This is not suppored by the LLVM back end.
+ 
  The package @code{GNAT.Task_Stack_Usage} provides facilities to get
  stack-usage reports at run time. See its body for the details.
  
  @node Memory Management Issues,,Stack Related Facilities,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{151}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{1b1}
  @section Memory Management Issues
  
  
! This section describes some useful memory pools provided in the GNAT library,
  and in particular the GNAT Debug Pool facility, which can be used to detect
  incorrect uses of access values (including ‘dangling references’).
  
*************** incorrect uses of access values (includi
*** 22351,22357 ****
  @end menu
  
  @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1b0}
  @subsection Some Useful Memory Pools
  
  
--- 22590,22596 ----
  @end menu
  
  @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1b2}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1b3}
  @subsection Some Useful Memory Pools
  
  
*************** incorrect uses of access values (includi
*** 22360,22373 ****
  @geindex storage
  @geindex pool
  
! The @code{System.Pool_Global} package offers the Unbounded_No_Reclaim_Pool
  storage pool. Allocations use the standard system call @code{malloc} while
  deallocations use the standard system call @code{free}. No reclamation is
  performed when the pool goes out of scope. For performance reasons, the
  standard default Ada allocators/deallocators do not use any explicit storage
  pools but if they did, they could use this storage pool without any change in
  behavior. That is why this storage pool is used  when the user
! manages to make the default implicit allocator explicit as in this example:
  
  @quotation
  
--- 22599,22612 ----
  @geindex storage
  @geindex pool
  
! The @code{System.Pool_Global} package provides the @code{Unbounded_No_Reclaim_Pool}
  storage pool. Allocations use the standard system call @code{malloc} while
  deallocations use the standard system call @code{free}. No reclamation is
  performed when the pool goes out of scope. For performance reasons, the
  standard default Ada allocators/deallocators do not use any explicit storage
  pools but if they did, they could use this storage pool without any change in
  behavior. That is why this storage pool is used  when the user
! makes the default implicit allocator explicit as in this example:
  
  @quotation
  
*************** for T2'Storage_Pool use System.Pool_Glob
*** 22382,22389 ****
  @end example
  @end quotation
  
! The @code{System.Pool_Local} package offers the @code{Unbounded_Reclaim_Pool} storage
! pool. The allocation strategy is similar to @code{Pool_Local}
  except that the all
  storage allocated with this pool is reclaimed when the pool object goes out of
  scope. This pool provides a explicit mechanism similar to the implicit one
--- 22621,22628 ----
  @end example
  @end quotation
  
! The @code{System.Pool_Local} package provides the @code{Unbounded_Reclaim_Pool} storage
! pool. Its allocation strategy is similar to @code{Pool_Local}
  except that the all
  storage allocated with this pool is reclaimed when the pool object goes out of
  scope. This pool provides a explicit mechanism similar to the implicit one
*************** The whole storage for the pool is
*** 22421,22427 ****
  allocated at once, usually on the stack at the point where the access type is
  elaborated. It is automatically reclaimed when exiting the scope where the
  access type is defined. This package is not intended to be used directly by the
! user and it is implicitly used for each such declaration:
  
  @quotation
  
--- 22660,22667 ----
  allocated at once, usually on the stack at the point where the access type is
  elaborated. It is automatically reclaimed when exiting the scope where the
  access type is defined. This package is not intended to be used directly by the
! user; it is implicitly used for each declaration with a specified
! @code{Storage_Size}:
  
  @quotation
  
*************** for T1'Storage_Size use 10_000;
*** 22432,22438 ****
  @end quotation
  
  @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1b1}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1b2}
  @subsection The GNAT Debug Pool Facility
  
  
--- 22672,22678 ----
  @end quotation
  
  @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1b4}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1b5}
  @subsection The GNAT Debug Pool Facility
  
  
*************** for T1'Storage_Size use 10_000;
*** 22442,22455 ****
  @geindex pool
  @geindex memory corruption
  
! The use of unchecked deallocation and unchecked conversion can easily
  lead to incorrect memory references. The problems generated by such
! references are usually difficult to tackle because the symptoms can be
  very remote from the origin of the problem. In such cases, it is
  very helpful to detect the problem as early as possible. This is the
  purpose of the Storage Pool provided by @code{GNAT.Debug_Pools}.
  
! In order to use the GNAT specific debugging pool, the user must
  associate a debug pool object with each of the access types that may be
  related to suspected memory problems. See Ada Reference Manual 13.11.
  
--- 22682,22695 ----
  @geindex pool
  @geindex memory corruption
  
! Using unchecked deallocation and unchecked conversion can easily
  lead to incorrect memory references. The problems generated by such
! references are usually difficult to find because the symptoms can be
  very remote from the origin of the problem. In such cases, it is
  very helpful to detect the problem as early as possible. This is the
  purpose of the Storage Pool provided by @code{GNAT.Debug_Pools}.
  
! In order to use the GNAT specific debugging pool, you must
  associate a debug pool object with each of the access types that may be
  related to suspected memory problems. See Ada Reference Manual 13.11.
  
*************** for Ptr'Storage_Pool use Pool;
*** 22464,22475 ****
  
  @code{GNAT.Debug_Pools} is derived from a GNAT-specific kind of
  pool: the @code{Checked_Pool}. Such pools, like standard Ada storage pools,
! allow the user to redefine allocation and deallocation strategies. They
! also provide a checkpoint for each dereference, through the use of
  the primitive operation @code{Dereference} which is implicitly called at
  each dereference of an access value.
  
! Once an access type has been associated with a debug pool, operations on
  values of the type may raise four distinct exceptions,
  which correspond to four potential kinds of memory corruption:
  
--- 22704,22715 ----
  
  @code{GNAT.Debug_Pools} is derived from a GNAT-specific kind of
  pool: the @code{Checked_Pool}. Such pools, like standard Ada storage pools,
! allow you to redefine allocation and deallocation strategies. They
! also provide a checkpoint for each dereference through the use of
  the primitive operation @code{Dereference} which is implicitly called at
  each dereference of an access value.
  
! Once you have associated an access type with a debug pool, operations on
  values of the type may raise four distinct exceptions,
  which correspond to four potential kinds of memory corruption:
  
*************** which correspond to four potential kinds
*** 22492,22508 ****
  For types associated with a Debug_Pool, dynamic allocation is performed using
  the standard GNAT allocation routine. References to all allocated chunks of
  memory are kept in an internal dictionary. Several deallocation strategies are
! provided, whereupon the user can choose to release the memory to the system,
  keep it allocated for further invalid access checks, or fill it with an easily
  recognizable pattern for debug sessions. The memory pattern is the old IBM
  hexadecimal convention: @code{16#DEADBEEF#}.
  
! See the documentation in the file g-debpoo.ads for more information on the
! various strategies.
  
  Upon each dereference, a check is made that the access value denotes a
! properly allocated memory location. Here is a complete example of use of
! @code{Debug_Pools}, that includes typical instances of  memory corruption:
  
  @quotation
  
--- 22732,22748 ----
  For types associated with a Debug_Pool, dynamic allocation is performed using
  the standard GNAT allocation routine. References to all allocated chunks of
  memory are kept in an internal dictionary. Several deallocation strategies are
! provided, allowing you to choose to release the memory to the system,
  keep it allocated for further invalid access checks, or fill it with an easily
  recognizable pattern for debug sessions. The memory pattern is the old IBM
  hexadecimal convention: @code{16#DEADBEEF#}.
  
! See the documentation in the file @code{g-debpoo.ads} for more
! information on the various strategies.
  
  Upon each dereference, a check is made that the access value denotes a
! properly allocated memory location. Here’s a complete example of use of
! @code{Debug_Pools}, which includes typical instances of  memory corruption:
  
  @quotation
  
*************** Debug Pool info:
*** 22595,22606 ****
  @c -- E.g. Ada |nbsp| 95
  
  @node Platform-Specific Information,Example of Binder Output File,GNAT and Program Execution,Top
! @anchor{gnat_ugn/platform_specific_information doc}@anchor{1b3}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1b4}@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{d}
  @chapter Platform-Specific Information
  
  
  This appendix contains information relating to the implementation
! of run-time libraries on various platforms and also covers topics
  related to the GNAT implementation on specific Operating Systems.
  
  @menu
--- 22835,22846 ----
  @c -- E.g. Ada |nbsp| 95
  
  @node Platform-Specific Information,Example of Binder Output File,GNAT and Program Execution,Top
! @anchor{gnat_ugn/platform_specific_information doc}@anchor{1b6}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1b7}@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{e}
  @chapter Platform-Specific Information
  
  
  This appendix contains information relating to the implementation
! of run-time libraries on various platforms. It also covers topics
  related to the GNAT implementation on specific Operating Systems.
  
  @menu
*************** related to the GNAT implementation on sp
*** 22613,22619 ****
  @end menu
  
  @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id2}@anchor{1b5}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{1b6}
  @section Run-Time Libraries
  
  
--- 22853,22859 ----
  @end menu
  
  @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id2}@anchor{1b8}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{1b9}
  @section Run-Time Libraries
  
  
*************** are supplied on various GNAT platforms.
*** 22674,22680 ****
  @end menu
  
  @node Summary of Run-Time Configurations,,,Run-Time Libraries
! @anchor{gnat_ugn/platform_specific_information id3}@anchor{1b7}@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1b8}
  @subsection Summary of Run-Time Configurations
  
  
--- 22914,22920 ----
  @end menu
  
  @node Summary of Run-Time Configurations,,,Run-Time Libraries
! @anchor{gnat_ugn/platform_specific_information id3}@anchor{1ba}@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1bb}
  @subsection Summary of Run-Time Configurations
  
  
*************** ZCX
*** 22774,22786 ****
  
  
  @node Specifying a Run-Time Library,GNU/Linux Topics,Run-Time Libraries,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id4}@anchor{1b9}@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1ba}
  @section Specifying a Run-Time Library
  
  
  The @code{adainclude} subdirectory containing the sources of the GNAT
! run-time library, and the @code{adalib} subdirectory containing the
! @code{ALI} files and the static and/or shared GNAT library, are located
  in the gcc target-dependent area:
  
  @quotation
--- 23014,23026 ----
  
  
  @node Specifying a Run-Time Library,GNU/Linux Topics,Run-Time Libraries,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id4}@anchor{1bc}@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1bd}
  @section Specifying a Run-Time Library
  
  
  The @code{adainclude} subdirectory containing the sources of the GNAT
! run-time library and the @code{adalib} subdirectory containing the
! @code{ALI} files and the static and/or shared GNAT library are located
  in the gcc target-dependent area:
  
  @quotation
*************** target=$prefix/lib/gcc/gcc-*dumpmachine*
*** 22790,22796 ****
  @end example
  @end quotation
  
! As indicated above, on some platforms several run-time libraries are supplied.
  These libraries are installed in the target dependent area and
  contain a complete source and binary subdirectory. The detailed description
  below explains the differences between the different libraries in terms of
--- 23030,23036 ----
  @end example
  @end quotation
  
! As indicated above, on some platforms, several run-time libraries are supplied.
  These libraries are installed in the target dependent area and
  contain a complete source and binary subdirectory. The detailed description
  below explains the differences between the different libraries in terms of
*************** ADAINCLUDE  ADALIB      rts-native
*** 22840,22847 ****
     (Upper-case names and dotted/dashed arrows represent soft links)
  @end example
  
! If the `rts-sjlj' library is to be selected on a permanent basis,
! these soft links can be modified with the following commands:
  
  @quotation
  
--- 23080,23087 ----
     (Upper-case names and dotted/dashed arrows represent soft links)
  @end example
  
! If you want to select the `rts-sjlj' library on a permanent basis,
! you can modify these soft links with the following commands:
  
  @quotation
  
*************** Alternatively, you can specify @code{rts
*** 22857,22942 ****
  @code{$target/ada_source_path} and @code{rts-sjlj/adalib} in
  @code{$target/ada_object_path}.
  
! @geindex --RTS option
! 
! Selecting another run-time library temporarily can be
! achieved by using the @code{--RTS} switch, e.g., @code{--RTS=sjlj}
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy}@anchor{1bb}
! @geindex SCHED_FIFO scheduling policy
! 
! @geindex SCHED_RR scheduling policy
! 
! @geindex SCHED_OTHER scheduling policy
! 
! @menu
! * Choosing the Scheduling Policy:: 
! 
! @end menu
! 
! @node Choosing the Scheduling Policy,,,Specifying a Run-Time Library
! @anchor{gnat_ugn/platform_specific_information id5}@anchor{1bc}
! @subsection Choosing the Scheduling Policy
! 
! 
! When using a POSIX threads implementation, you have a choice of several
! scheduling policies: @code{SCHED_FIFO}, @code{SCHED_RR} and @code{SCHED_OTHER}.
! 
! Typically, the default is @code{SCHED_OTHER}, while using @code{SCHED_FIFO}
! or @code{SCHED_RR} requires special (e.g., root) privileges.
! 
! @geindex pragma Time_Slice
! 
! @geindex -T0 option
! 
! @geindex pragma Task_Dispatching_Policy
! 
! By default, GNAT uses the @code{SCHED_OTHER} policy. To specify
! @code{SCHED_FIFO},
! you can use one of the following:
! 
! 
! @itemize *
! 
! @item 
! @code{pragma Time_Slice (0.0)}
! 
! @item 
! the corresponding binder option @code{-T0}
! 
! @item 
! @code{pragma Task_Dispatching_Policy (FIFO_Within_Priorities)}
! @end itemize
! 
! To specify @code{SCHED_RR},
! you should use @code{pragma Time_Slice} with a
! value greater than 0.0, or else use the corresponding @code{-T}
! binder option.
! 
! To make sure a program is running as root, you can put something like
! this in a library package body in your application:
! 
! @quotation
! 
! @example
! function geteuid return Integer;
! pragma Import (C, geteuid, "geteuid");
! Ignore : constant Boolean :=
!   (if geteuid = 0 then True else raise Program_Error with "must be root");
! @end example
! @end quotation
  
! It gets the effective user id, and if it’s not 0 (i.e. root), it raises
! Program_Error. Note that if you re running the code in a container, this may
! not be sufficient, as you may have sufficient priviledge on the container,
! but not on the host machine running the container, so check that you also
! have sufficient priviledge for running the container image.
  
  @geindex Linux
  
  @geindex GNU/Linux
  
  @node GNU/Linux Topics,Microsoft Windows Topics,Specifying a Run-Time Library,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information gnu-linux-topics}@anchor{1bd}@anchor{gnat_ugn/platform_specific_information id6}@anchor{1be}
  @section GNU/Linux Topics
  
  
--- 23097,23113 ----
  @code{$target/ada_source_path} and @code{rts-sjlj/adalib} in
  @code{$target/ada_object_path}.
  
! @geindex --RTS switch
  
! You can select another run-time library temporarily
! by using the @code{--RTS} switch, e.g., @code{--RTS=sjlj}
  
  @geindex Linux
  
  @geindex GNU/Linux
  
  @node GNU/Linux Topics,Microsoft Windows Topics,Specifying a Run-Time Library,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information gnu-linux-topics}@anchor{1be}@anchor{gnat_ugn/platform_specific_information id5}@anchor{1bf}
  @section GNU/Linux Topics
  
  
*************** This section describes topics that are s
*** 22945,22956 ****
  @menu
  * Required Packages on GNU/Linux:: 
  * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
  * A GNU/Linux Debug Quirk:: 
  
  @end menu
  
  @node Required Packages on GNU/Linux,Position Independent Executable PIE Enabled by Default on Linux,,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information id7}@anchor{1bf}@anchor{gnat_ugn/platform_specific_information required-packages-on-gnu-linux}@anchor{1c0}
  @subsection Required Packages on GNU/Linux
  
  
--- 23116,23128 ----
  @menu
  * Required Packages on GNU/Linux:: 
  * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
+ * Choosing the Scheduling Policy with GNU/Linux:: 
  * A GNU/Linux Debug Quirk:: 
  
  @end menu
  
  @node Required Packages on GNU/Linux,Position Independent Executable PIE Enabled by Default on Linux,,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information id6}@anchor{1c0}@anchor{gnat_ugn/platform_specific_information required-packages-on-gnu-linux}@anchor{1c1}
  @subsection Required Packages on GNU/Linux
  
  
*************** RedHat, SUSE: @code{glibc-devel};
*** 22967,22973 ****
  Debian, Ubuntu: @code{libc6-dev} (normally installed by default).
  @end itemize
  
! If using the 32-bit version of GNAT on a 64-bit version of GNU/Linux,
  you’ll need the 32-bit version of the following packages:
  
  
--- 23139,23145 ----
  Debian, Ubuntu: @code{libc6-dev} (normally installed by default).
  @end itemize
  
! If you’re using the 32-bit version of GNAT on a 64-bit version of GNU/Linux,
  you’ll need the 32-bit version of the following packages:
  
  
*************** SUSE: @code{glibc-locale-base-32bit}
*** 22983,22993 ****
  Debian, Ubuntu: @code{libc6:i386}, @code{libc6-dev:i386}, @code{lib32ncursesw5}
  @end itemize
  
! Other GNU/Linux distributions might be choosing a different name
  for those packages.
  
! @node Position Independent Executable PIE Enabled by Default on Linux,A GNU/Linux Debug Quirk,Required Packages on GNU/Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information pie-enabled-by-default-on-linux}@anchor{1c1}@anchor{gnat_ugn/platform_specific_information position-independent-executable-pie-enabled-by-default-on-linux}@anchor{1c2}
  @subsection Position Independent Executable (PIE) Enabled by Default on Linux
  
  
--- 23155,23165 ----
  Debian, Ubuntu: @code{libc6:i386}, @code{libc6-dev:i386}, @code{lib32ncursesw5}
  @end itemize
  
! Other GNU/Linux distributions might choose different name
  for those packages.
  
! @node Position Independent Executable PIE Enabled by Default on Linux,Choosing the Scheduling Policy with GNU/Linux,Required Packages on GNU/Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information pie-enabled-by-default-on-linux}@anchor{1c2}@anchor{gnat_ugn/platform_specific_information position-independent-executable-pie-enabled-by-default-on-linux}@anchor{1c3}
  @subsection Position Independent Executable (PIE) Enabled by Default on Linux
  
  
*************** Independent.
*** 23011,23019 ****
  If you are not interested in building PIE binaries, you can simply
  turn this feature off by first compiling your code with @code{-fno-pie}
  and then by linking with @code{-no-pie} (note the subtle but important
! difference in the names of the options – the linker option does `not'
! have an @cite{f} after the dash!). When using gprbuild, this is
! achieved by updating the `Required_Switches' attribute in package @cite{Compiler}
  and, depending on your type of project, either attribute `Switches'
  or attribute `Library_Options' in package @cite{Linker}.
  
--- 23183,23191 ----
  If you are not interested in building PIE binaries, you can simply
  turn this feature off by first compiling your code with @code{-fno-pie}
  and then by linking with @code{-no-pie} (note the subtle but important
! difference in the names of the switches – the linker switch does `not'
! have an @cite{f} after the dash!). When using gprbuild, you do this
! by updating the `Required_Switches' attribute in package @cite{Compiler}
  and, depending on your type of project, either attribute `Switches'
  or attribute `Library_Options' in package @cite{Linker}.
  
*************** drop the @code{-no-pie} workaround, you�
*** 23030,23045 ****
  dependencies rebuilt with PIE enabled (compiled with @code{-fPIE}
  and linked with @code{-pie}).
  
! @node A GNU/Linux Debug Quirk,,Position Independent Executable PIE Enabled by Default on Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information a-gnu-linux-debug-quirk}@anchor{1c3}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1c4}
  @subsection A GNU/Linux Debug Quirk
  
  
  On SuSE 15, some kernels have a defect causing issues when debugging
  programs using threads or Ada tasks. Due to the lack of documentation
  found regarding this kernel issue, we can only provide limited
! information about which kernels are impacted: kernel version 5.3.18 is
! known to be impacted, and kernels in the 5.14 range or newer are
  believed to fix this problem.
  
  The bug affects the debugging of 32-bit processes on a 64-bit system.
--- 23202,23281 ----
  dependencies rebuilt with PIE enabled (compiled with @code{-fPIE}
  and linked with @code{-pie}).
  
! @geindex SCHED_FIFO scheduling policy
! 
! @geindex SCHED_RR scheduling policy
! 
! @geindex SCHED_OTHER scheduling policy
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy-with-gnu-linux}@anchor{1c4}
! @node Choosing the Scheduling Policy with GNU/Linux,A GNU/Linux Debug Quirk,Position Independent Executable PIE Enabled by Default on Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information id7}@anchor{1c5}
! @subsection Choosing the Scheduling Policy with GNU/Linux
! 
! 
! When using a POSIX threads implementation, you have a choice of several
! scheduling policies: @code{SCHED_FIFO}, @code{SCHED_RR} and @code{SCHED_OTHER}.
! 
! Typically, the default is @code{SCHED_OTHER}, while using @code{SCHED_FIFO}
! or @code{SCHED_RR} requires special (e.g., root) privileges.
! 
! @geindex pragma Time_Slice
! 
! @geindex -T0 switch
! 
! @geindex pragma Task_Dispatching_Policy
! 
! By default, GNAT uses the @code{SCHED_OTHER} policy. To specify
! @code{SCHED_FIFO},
! you can use one of the following:
! 
! 
! @itemize *
! 
! @item 
! @code{pragma Time_Slice (0.0)}
! 
! @item 
! the corresponding binder switch @code{-T0}
! 
! @item 
! @code{pragma Task_Dispatching_Policy (FIFO_Within_Priorities)}
! @end itemize
! 
! To specify @code{SCHED_RR},
! you should use @code{pragma Time_Slice} with a
! value greater than 0.0, or else use the corresponding @code{-T}
! binder switch.
! 
! To make sure a program is running as root, you can put something like
! this in a library package body in your application:
! 
! @quotation
! 
! @example
! function geteuid return Integer;
! pragma Import (C, geteuid, "geteuid");
! Ignore : constant Boolean :=
!   (if geteuid = 0 then True else raise Program_Error with "must be root");
! @end example
! @end quotation
! 
! This gets the effective user id and if it’s not 0 (i.e. root), it raises
! Program_Error. Note that if you’re running the code in a container, this may
! not be sufficient as you may have sufficient privilege on the container,
! but not on the host machine running the container, so check that you also
! have sufficient priviledge for running the container image.
! 
! @node A GNU/Linux Debug Quirk,,Choosing the Scheduling Policy with GNU/Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information a-gnu-linux-debug-quirk}@anchor{1c6}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1c7}
  @subsection A GNU/Linux Debug Quirk
  
  
  On SuSE 15, some kernels have a defect causing issues when debugging
  programs using threads or Ada tasks. Due to the lack of documentation
  found regarding this kernel issue, we can only provide limited
! information about which kernels are impacted. Kernel version 5.3.18 is
! known to be impacted and kernels in the 5.14 range or newer are
  believed to fix this problem.
  
  The bug affects the debugging of 32-bit processes on a 64-bit system.
*************** the symptoms most commonly observed.
*** 23051,23057 ****
  @geindex Windows
  
  @node Microsoft Windows Topics,Mac OS Topics,GNU/Linux Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id9}@anchor{1c5}@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{1c6}
  @section Microsoft Windows Topics
  
  
--- 23287,23293 ----
  @geindex Windows
  
  @node Microsoft Windows Topics,Mac OS Topics,GNU/Linux Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id9}@anchor{1c8}@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{1c9}
  @section Microsoft Windows Topics
  
  
*************** platforms.
*** 23065,23070 ****
--- 23301,23307 ----
  * CONSOLE and WINDOWS subsystems:: 
  * Temporary Files:: 
  * Disabling Command Line Argument Expansion:: 
+ * Choosing the Scheduling Policy with Windows:: 
  * Windows Socket Timeouts:: 
  * Mixed-Language Programming on Windows:: 
  * Windows Specific Add-Ons:: 
*************** platforms.
*** 23072,23078 ****
  @end menu
  
  @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id10}@anchor{1c7}@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1c8}
  @subsection Using GNAT on Windows
  
  
--- 23309,23315 ----
  @end menu
  
  @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id10}@anchor{1ca}@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1cb}
  @subsection Using GNAT on Windows
  
  
*************** One of the strengths of the GNAT technol
*** 23081,23087 ****
  @code{gdb} debugger, etc.) is used in the same way regardless of the
  platform.
  
! On Windows this tool set is complemented by a number of Microsoft-specific
  tools that have been provided to facilitate interoperability with Windows
  when this is required. With these tools:
  
--- 23318,23324 ----
  @code{gdb} debugger, etc.) is used in the same way regardless of the
  platform.
  
! On Windows, this tool set is complemented by a number of Microsoft-specific
  tools that have been provided to facilitate interoperability with Windows
  when this is required. With these tools:
  
*************** You can use any Dynamically Linked Libra
*** 23097,23105 ****
  relocatable and non-relocatable DLLs are supported).
  
  @item 
! You can build Ada DLLs for use in other applications. These applications
! can be written in a language other than Ada (e.g., C, C++, etc). Again both
! relocatable and non-relocatable Ada DLLs are supported.
  
  @item 
  You can include Windows resources in your Ada application.
--- 23334,23343 ----
  relocatable and non-relocatable DLLs are supported).
  
  @item 
! You can build Ada DLLs for use in other applications. You can write
! these applications in a language other than Ada (e.g., C, C++,
! etc). Again, both relocatable and non-relocatable Ada DLLs are
! supported.
  
  @item 
  You can include Windows resources in your Ada application.
*************** You can include Windows resources in you
*** 23108,23155 ****
  You can use or create COM/DCOM objects.
  @end itemize
  
! Immediately below are listed all known general GNAT-for-Windows restrictions.
! Other restrictions about specific features like Windows Resources and DLLs
! are listed in separate sections below.
  
  
  @itemize *
  
  @item 
! It is not possible to use @code{GetLastError} and @code{SetLastError}
  when tasking, protected records, or exceptions are used. In these
  cases, in order to implement Ada semantics, the GNAT run-time system
  calls certain Win32 routines that set the last error variable to 0 upon
! success. It should be possible to use @code{GetLastError} and
  @code{SetLastError} when tasking, protected record, and exception
  features are not used, but it is not guaranteed to work.
  
  @item 
! It is not possible to link against Microsoft C++ libraries except for
! import libraries. Interfacing must be done by the mean of DLLs.
  
  @item 
! It is possible to link against Microsoft C libraries. Yet the preferred
  solution is to use C/C++ compiler that comes with GNAT, since it
  doesn’t require having two different development environments and makes the
  inter-language debugging experience smoother.
  
  @item 
! When the compilation environment is located on FAT32 drives, users may
! experience recompilations of the source files that have not changed if
  Daylight Saving Time (DST) state has changed since the last time files
  were compiled. NTFS drives do not have this problem.
  
  @item 
  No components of the GNAT toolset use any entries in the Windows
! registry. The only entries that can be created are file associations and
! PATH settings, provided the user has chosen to create them at installation
! time, as well as some minimal book-keeping information needed to correctly
! uninstall or integrate different GNAT products.
  @end itemize
  
  @node Using a network installation of GNAT,CONSOLE and WINDOWS subsystems,Using GNAT on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id11}@anchor{1c9}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1ca}
  @subsection Using a network installation of GNAT
  
  
--- 23346,23394 ----
  You can use or create COM/DCOM objects.
  @end itemize
  
! Listed immediately below are all known general GNAT-for-Windows
! restrictions.  We list other restrictions about specific features such
! as Windows Resources and DLLs in separate sections below.
  
  
  @itemize *
  
  @item 
! You cannot use @code{GetLastError} and @code{SetLastError}
  when tasking, protected records, or exceptions are used. In these
  cases, in order to implement Ada semantics, the GNAT run-time system
  calls certain Win32 routines that set the last error variable to 0 upon
! success. You may be able to use @code{GetLastError} and
  @code{SetLastError} when tasking, protected record, and exception
  features are not used, but it is not guaranteed to work.
  
  @item 
! You cannot link against Microsoft C++ libraries except for
! import libraries. You must do interfacing by means of DLLs.
  
  @item 
! You can link against Microsoft C libraries. However, the preferred
  solution is to use C/C++ compiler that comes with GNAT, since it
  doesn’t require having two different development environments and makes the
  inter-language debugging experience smoother.
  
  @item 
! When the compilation environment is located on FAT32 drives, you may
! experience recompilations of source files that have not changed if
  Daylight Saving Time (DST) state has changed since the last time files
  were compiled. NTFS drives do not have this problem.
  
  @item 
  No components of the GNAT toolset use any entries in the Windows
! registry. The only entries installation of GNAT may create are file
! associations and PATH settings, provided you chose to
! create them at installation time, as well as some minimal
! bookkeeping information needed to correctly uninstall or integrate
! different GNAT products.
  @end itemize
  
  @node Using a network installation of GNAT,CONSOLE and WINDOWS subsystems,Using GNAT on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id11}@anchor{1cc}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1cd}
  @subsection Using a network installation of GNAT
  
  
*************** $ path \\loki\c-drive\gnat\bin;%path%`
*** 23173,23182 ****
  
  Be aware that every compilation using the network installation results in the
  transfer of large amounts of data across the network and will likely cause
! serious performance penalty.
  
  @node CONSOLE and WINDOWS subsystems,Temporary Files,Using a network installation of GNAT,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1cb}@anchor{gnat_ugn/platform_specific_information id12}@anchor{1cc}
  @subsection CONSOLE and WINDOWS subsystems
  
  
--- 23412,23421 ----
  
  Be aware that every compilation using the network installation results in the
  transfer of large amounts of data across the network and will likely cause
! a serious performance penalty.
  
  @node CONSOLE and WINDOWS subsystems,Temporary Files,Using a network installation of GNAT,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1ce}@anchor{gnat_ugn/platform_specific_information id12}@anchor{1cf}
  @subsection CONSOLE and WINDOWS subsystems
  
  
*************** serious performance penalty.
*** 23187,23197 ****
  @geindex -mwindows
  
  There are two main subsystems under Windows. The @code{CONSOLE} subsystem
! (which is the default subsystem) will always create a console when
  launching the application. This is not something desirable when the
! application has a Windows GUI. To get rid of this console the
! application must be using the @code{WINDOWS} subsystem. To do so
! the @code{-mwindows} linker option must be specified.
  
  @quotation
  
--- 23426,23436 ----
  @geindex -mwindows
  
  There are two main subsystems under Windows. The @code{CONSOLE} subsystem
! (which is the default subsystem) always creates a console when
  launching the application. This is not something desirable when the
! application has a Windows GUI. To remove this console, your
! application must use the @code{WINDOWS} subsystem. To do so, you must
! specify the @code{-mwindows} linker switch.
  
  @quotation
  
*************** $ gnatmake winprog -largs -mwindows
*** 23201,23214 ****
  @end quotation
  
  @node Temporary Files,Disabling Command Line Argument Expansion,CONSOLE and WINDOWS subsystems,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id13}@anchor{1cd}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1ce}
  @subsection Temporary Files
  
  
  @geindex Temporary files
  
! It is possible to control where temporary files gets created by setting
! the 
  @geindex TMP
  @geindex environment variable; TMP
  @code{TMP} environment variable. The file will be created:
--- 23440,23452 ----
  @end quotation
  
  @node Temporary Files,Disabling Command Line Argument Expansion,CONSOLE and WINDOWS subsystems,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id13}@anchor{1d0}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1d1}
  @subsection Temporary Files
  
  
  @geindex Temporary files
  
! You can control where temporary files get created by setting the
  @geindex TMP
  @geindex environment variable; TMP
  @code{TMP} environment variable. The file will be created:
*************** file will be created. This is particular
*** 23239,23246 ****
  environments where you may not have write access to some
  directories.
  
! @node Disabling Command Line Argument Expansion,Windows Socket Timeouts,Temporary Files,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1cf}
  @subsection Disabling Command Line Argument Expansion
  
  
--- 23477,23484 ----
  environments where you may not have write access to some
  directories.
  
! @node Disabling Command Line Argument Expansion,Choosing the Scheduling Policy with Windows,Temporary Files,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1d2}
  @subsection Disabling Command Line Argument Expansion
  
  
*************** line:
*** 23254,23260 ****
  @itemize *
  
  @item 
! If the argument contains the characters @code{*} and/or @code{?}, then
  file expansion will be attempted. For example, if the current directory
  contains @code{a.txt} and @code{b.txt}, then when calling:
  
--- 23492,23498 ----
  @itemize *
  
  @item 
! If the argument contains the characters @code{*} and/or @code{?},
  file expansion will be attempted. For example, if the current directory
  contains @code{a.txt} and @code{b.txt}, then when calling:
  
*************** Ada.Command_Line.Argument (2) -> "b.txt"
*** 23271,23277 ****
  @end example
  
  @item 
! Filename expansion can be disabled for a given argument by using single
  quotes. Thus, calling:
  
  @example
--- 23509,23515 ----
  @end example
  
  @item 
! You can disable filename expansion for a given argument by using single
  quotes. Thus, calling:
  
  @example
*************** Ada.Command_Line.Argument (1) -> "*.txt"
*** 23285,23294 ****
  @end example
  @end itemize
  
! Note that if the program is launched from a shell such as Cygwin Bash
! then quote removal might be performed by the shell.
  
! In some contexts it might be useful to disable this feature (for example if
  the program performs its own argument expansion). In order to do this, a C
  symbol needs to be defined and set to @code{0}. You can do this by
  adding the following code fragment in one of your Ada units:
--- 23523,23532 ----
  @end example
  @end itemize
  
! Note that if the program is launched from a shell such as Cygwin Bash,
! quote removal might be performed by that shell.
  
! In some contexts, it might be useful to disable this feature (for example if
  the program performs its own argument expansion). In order to do this, a C
  symbol needs to be defined and set to @code{0}. You can do this by
  adding the following code fragment in one of your Ada units:
*************** and:
*** 23310,23317 ****
  Ada.Command_Line.Argument (1) -> "'*.txt'"
  @end example
  
! @node Windows Socket Timeouts,Mixed-Language Programming on Windows,Disabling Command Line Argument Expansion,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information windows-socket-timeouts}@anchor{1d0}
  @subsection Windows Socket Timeouts
  
  
--- 23548,23573 ----
  Ada.Command_Line.Argument (1) -> "'*.txt'"
  @end example
  
! @node Choosing the Scheduling Policy with Windows,Windows Socket Timeouts,Disabling Command Line Argument Expansion,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy-with-windows}@anchor{1d3}@anchor{gnat_ugn/platform_specific_information id14}@anchor{1d4}
! @subsection Choosing the Scheduling Policy with Windows
! 
! 
! Under Windows, the standard 31 priorities of the Ada model are mapped onto
! Window’s seven standard priority levels by default: Idle, Lowest, Below Normal,
! Normal, Above Normal,
! 
! When using the @code{FIFO_Within_Priorities} task dispatching policy, GNAT
! assigns the @code{REALTIME_PRIORITY_CLASS} priority class to the application
! and maps the Ada priority range to the sixteen priorities made available under
! @code{REALTIME_PRIORITY_CLASS}.
! 
! For details on the values of the different priority mappings, see declarations
! in @code{system.ads}. For more information about Windows priorities, please
! refer to Microsoft documentation.
! 
! @node Windows Socket Timeouts,Mixed-Language Programming on Windows,Choosing the Scheduling Policy with Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information windows-socket-timeouts}@anchor{1d5}
  @subsection Windows Socket Timeouts
  
  
*************** Microsoft Windows desktops older than @c
*** 23319,23331 ****
  older than @code{2019} set a socket timeout 500 milliseconds longer than the value
  set by setsockopt with @code{SO_RCVTIMEO} and @code{SO_SNDTIMEO} options. The GNAT
  runtime makes a correction for the difference in the corresponding Windows
! versions. For Windows Server starting with version @code{2019}, the user must
  provide a manifest file for the GNAT runtime to be able to recognize that
  the Windows version does not need the timeout correction. The manifest file
! should be located in the same directory as the executable file, and its file
  name must match the executable name suffixed by @code{.manifest}. For example,
! if the executable name is @code{sock_wto.exe}, then the manifest file name
! has to be @code{sock_wto.exe.manifest}. The manifest file must contain at
  least the following data:
  
  @example
--- 23575,23587 ----
  older than @code{2019} set a socket timeout 500 milliseconds longer than the value
  set by setsockopt with @code{SO_RCVTIMEO} and @code{SO_SNDTIMEO} options. The GNAT
  runtime makes a correction for the difference in the corresponding Windows
! versions. For Windows Server starting with version @code{2019}, you must
  provide a manifest file for the GNAT runtime to be able to recognize that
  the Windows version does not need the timeout correction. The manifest file
! should be located in the same directory as the executable file and its file
  name must match the executable name suffixed by @code{.manifest}. For example,
! if the executable name is @code{sock_wto.exe}, the manifest file name
! must be @code{sock_wto.exe.manifest}. The manifest file must contain at
  least the following data:
  
  @example
*************** least the following data:
*** 23348,23363 ****
  </assembly>
  @end example
  
! Without the manifest file, the socket timeout is going to be overcorrected on
! these Windows Server versions and the actual time is going to be 500
! milliseconds shorter than what was set with GNAT.Sockets.Set_Socket_Option.
! Note that on Microsoft Windows versions where correction is necessary, there
! is no way to set a socket timeout shorter than 500 ms. If a socket timeout
! shorter than 500 ms is needed on these Windows versions, a call to
! Check_Selector should be added before any socket read or write operations.
  
  @node Mixed-Language Programming on Windows,Windows Specific Add-Ons,Windows Socket Timeouts,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id14}@anchor{1d1}@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1d2}
  @subsection Mixed-Language Programming on Windows
  
  
--- 23604,23621 ----
  </assembly>
  @end example
  
! Without the manifest file, the socket timeout will be overcorrected on
! these Windows Server versions and the actual time wil be 500
! milliseconds shorter than what was set with
! @code{GNAT.Sockets.Set_Socket_Option}.  Note that on Microsoft Windows
! versions where correction is necessary, there is no way to set a
! socket timeout shorter than 500 ms. If a socket timeout shorter than
! 500 ms is needed on these Windows versions, you should add a call to
! @code{Check_Selector} before any socket read or write
! operations.
  
  @node Mixed-Language Programming on Windows,Windows Specific Add-Ons,Windows Socket Timeouts,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id15}@anchor{1d6}@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1d7}
  @subsection Mixed-Language Programming on Windows
  
  
*************** to use the Microsoft tools for your C++
*** 23376,23397 ****
  @itemize *
  
  @item 
! Encapsulate your C++ code in a DLL to be linked with your Ada
! application. In this case, use the Microsoft or whatever environment to
  build the DLL and use GNAT to build your executable
! (@ref{1d3,,Using DLLs with GNAT}).
  
  @item 
! Or you can encapsulate your Ada code in a DLL to be linked with the
  other part of your application. In this case, use GNAT to build the DLL
! (@ref{1d4,,Building DLLs with GNAT Project files}) and use the Microsoft
! or whatever environment to build your executable.
  @end itemize
  
! In addition to the description about C main in
! @ref{2c,,Mixed Language Programming} section, if the C main uses a
! stand-alone library it is required on x86-windows to
! setup the SEH context. For this the C main must looks like this:
  
  @quotation
  
--- 23634,23655 ----
  @itemize *
  
  @item 
! You can encapsulate your C++ code in a DLL to be linked with your Ada
! application. In this case, use the Microsoft or other environment to
  build the DLL and use GNAT to build your executable
! (@ref{1d8,,Using DLLs with GNAT}).
  
  @item 
! You can encapsulate your Ada code in a DLL to be linked with the
  other part of your application. In this case, use GNAT to build the DLL
! (@ref{1d9,,Building DLLs with GNAT Project files}) and use the Microsoft
! or other environment to build your executable.
  @end itemize
  
! In addition to the description about C @code{main} in
! @ref{2d,,Mixed Language Programming} section, if the C @code{main} uses a
! stand-alone library, it is required on x86-windows to
! setup the SEH context. For this, the C @code{main} must looks like this:
  
  @quotation
  
*************** int main (int argc, char *argv[])
*** 23420,23426 ****
  @end example
  @end quotation
  
! Note that this is not needed on x86_64-windows where the Windows
  native SEH support is used.
  
  @menu
--- 23678,23684 ----
  @end example
  @end quotation
  
! Note that you need not do this on x86_64-windows where the Windows
  native SEH support is used.
  
  @menu
*************** native SEH support is used.
*** 23441,23447 ****
  @end menu
  
  @node Windows Calling Conventions,Introduction to Dynamic Link Libraries DLLs,,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id15}@anchor{1d5}@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1d6}
  @subsubsection Windows Calling Conventions
  
  
--- 23699,23705 ----
  @end menu
  
  @node Windows Calling Conventions,Introduction to Dynamic Link Libraries DLLs,,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id16}@anchor{1da}@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1db}
  @subsubsection Windows Calling Conventions
  
  
*************** native SEH support is used.
*** 23449,23455 ****
  
  @geindex APIENTRY
  
! This section pertain only to Win32. On Win64 there is a single native
  calling convention. All convention specifiers are ignored on this
  platform.
  
--- 23707,23713 ----
  
  @geindex APIENTRY
  
! This section pertain only to Win32. On Win64, there is a single native
  calling convention. All convention specifiers are ignored on this
  platform.
  
*************** are available for Windows:
*** 23486,23506 ****
  @end menu
  
  @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1d7}@anchor{gnat_ugn/platform_specific_information id16}@anchor{1d8}
  @subsubsection @code{C} Calling Convention
  
  
  This is the default calling convention used when interfacing to C/C++
  routines compiled with either @code{gcc} or Microsoft Visual C++.
  
! In the @code{C} calling convention subprogram parameters are pushed on the
  stack by the caller from right to left. The caller itself is in charge of
  cleaning up the stack after the call. In addition, the name of a routine
  with @code{C} calling convention is mangled by adding a leading underscore.
  
  The name to use on the Ada side when importing (or exporting) a routine
  with @code{C} calling convention is the name of the routine. For
! instance the C function:
  
  @quotation
  
--- 23744,23764 ----
  @end menu
  
  @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1dc}@anchor{gnat_ugn/platform_specific_information id17}@anchor{1dd}
  @subsubsection @code{C} Calling Convention
  
  
  This is the default calling convention used when interfacing to C/C++
  routines compiled with either @code{gcc} or Microsoft Visual C++.
  
! In the @code{C} calling convention, subprogram parameters are pushed on the
  stack by the caller from right to left. The caller itself is in charge of
  cleaning up the stack after the call. In addition, the name of a routine
  with @code{C} calling convention is mangled by adding a leading underscore.
  
  The name to use on the Ada side when importing (or exporting) a routine
  with @code{C} calling convention is the name of the routine. For
! example you should import the C function:
  
  @quotation
  
*************** int get_val (long);
*** 23509,23515 ****
  @end example
  @end quotation
  
! should be imported from Ada as follows:
  
  @quotation
  
--- 23767,23773 ----
  @end example
  @end quotation
  
! from Ada as follows:
  
  @quotation
  
*************** pragma Import (C, Get_Val, External_Name
*** 23519,23548 ****
  @end example
  @end quotation
  
! Note that in this particular case the @code{External_Name} parameter could
! have been omitted since, when missing, this parameter is taken to be the
! name of the Ada entity in lower case. When the @code{Link_Name} parameter
! is missing, as in the above example, this parameter is set to be the
! @code{External_Name} with a leading underscore.
  
  When importing a variable defined in C, you should always use the @code{C}
  calling convention unless the object containing the variable is part of a
  DLL (in which case you should use the @code{Stdcall} calling
! convention, @ref{1d9,,Stdcall Calling Convention}).
  
  @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id17}@anchor{1da}@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1d9}
  @subsubsection @code{Stdcall} Calling Convention
  
  
  This convention, which was the calling convention used for Pascal
  programs, is used by Microsoft for all the routines in the Win32 API for
! efficiency reasons. It must be used to import any routine for which this
  convention was specified.
  
! In the @code{Stdcall} calling convention subprogram parameters are pushed
! on the stack by the caller from right to left. The callee (and not the
! caller) is in charge of cleaning the stack on routine exit. In addition,
  the name of a routine with @code{Stdcall} calling convention is mangled by
  adding a leading underscore (as for the @code{C} calling convention) and a
  trailing @code{@@@var{nn}}, where @code{nn} is the overall size (in
--- 23777,23806 ----
  @end example
  @end quotation
  
! Note that in this particular case, you could have omitted the
! @code{External_Name} parameter since, when missing, this parameter is set
! to the name of the Ada entity in lower case. When the @code{Link_Name}
! parameter is missing, as in the above example, this parameter is set
! the @code{External_Name} with a leading underscore.
  
  When importing a variable defined in C, you should always use the @code{C}
  calling convention unless the object containing the variable is part of a
  DLL (in which case you should use the @code{Stdcall} calling
! convention, @ref{1de,,Stdcall Calling Convention}).
  
  @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id18}@anchor{1df}@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1de}
  @subsubsection @code{Stdcall} Calling Convention
  
  
  This convention, which was the calling convention used for Pascal
  programs, is used by Microsoft for all the routines in the Win32 API for
! efficiency reasons. You must use it to import any routine for which this
  convention was specified.
  
! In the @code{Stdcall} calling convention, subprogram parameters are also pushed
! on the stack by the caller from right to left. However, the callee, not the
! caller, is in charge of cleaning up the stack on routine exit. In addition,
  the name of a routine with @code{Stdcall} calling convention is mangled by
  adding a leading underscore (as for the @code{C} calling convention) and a
  trailing @code{@@@var{nn}}, where @code{nn} is the overall size (in
*************** bytes) of the parameters passed to the r
*** 23551,23557 ****
  The name to use on the Ada side when importing a C routine with a
  @code{Stdcall} calling convention is the name of the C routine. The leading
  underscore and trailing @code{@@@var{nn}} are added automatically by
! the compiler. For instance the Win32 function:
  
  @quotation
  
--- 23809,23815 ----
  The name to use on the Ada side when importing a C routine with a
  @code{Stdcall} calling convention is the name of the C routine. The leading
  underscore and trailing @code{@@@var{nn}} are added automatically by
! the compiler. For example, you could import the Win32 function:
  
  @quotation
  
*************** APIENTRY int get_val (long);
*** 23560,23566 ****
  @end example
  @end quotation
  
! should be imported from Ada as follows:
  
  @quotation
  
--- 23818,23824 ----
  @end example
  @end quotation
  
! from Ada as follows:
  
  @quotation
  
*************** pragma Import (Stdcall, Get_Val);
*** 23571,23579 ****
  @end example
  @end quotation
  
! As for the @code{C} calling convention, when the @code{External_Name}
! parameter is missing, it is taken to be the name of the Ada entity in lower
! case. If instead of writing the above import pragma you write:
  
  @quotation
  
--- 23829,23838 ----
  @end example
  @end quotation
  
! Like the case for the @code{C} calling convention, when the
! @code{External_Name} parameter is missing, it is the name of the Ada
! entity in lower case. If instead of writing the above import pragma
! you write:
  
  @quotation
  
*************** pragma Import (Stdcall, Get_Val, Externa
*** 23583,23590 ****
  @end example
  @end quotation
  
! then the imported routine is @code{_retrieve_val@@4}. However, if instead
! of specifying the @code{External_Name} parameter you specify the
  @code{Link_Name} as in the following example:
  
  @quotation
--- 23842,23849 ----
  @end example
  @end quotation
  
! the imported routine is @code{_retrieve_val@@4}. However, if instead
! of specifying the @code{External_Name} parameter, you specify the
  @code{Link_Name} as in the following example:
  
  @quotation
*************** pragma Import (Stdcall, Get_Val, Link_Na
*** 23595,23609 ****
  @end example
  @end quotation
  
! then the imported routine is @code{retrieve_val}, that is, there is no
! decoration at all. No leading underscore and no Stdcall suffix
  @code{@@@var{nn}}.
  
  This is especially important as in some special cases a DLL’s entry
  point name lacks a trailing @code{@@@var{nn}} while the exported
  name generated for a call has it.
  
! It is also possible to import variables defined in a DLL by using an
  import pragma for a variable. As an example, if a DLL contains a
  variable defined as:
  
--- 23854,23868 ----
  @end example
  @end quotation
  
! the imported routine is @code{retrieve_val}. There is no
! decoration at all; no leading underscore and no Stdcall suffix
  @code{@@@var{nn}}.
  
  This is especially important as in some special cases a DLL’s entry
  point name lacks a trailing @code{@@@var{nn}} while the exported
  name generated for a call has it.
  
! You can also import variables defined in a DLL by using an
  import pragma for a variable. As an example, if a DLL contains a
  variable defined as:
  
*************** pragma Import (Stdcall, My_Var);
*** 23624,23650 ****
  @end example
  @end quotation
  
! Note that to ease building cross-platform bindings this convention
  will be handled as a @code{C} calling convention on non-Windows platforms.
  
  @node Win32 Calling Convention,DLL Calling Convention,Stdcall Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id18}@anchor{1db}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1dc}
  @subsubsection @code{Win32} Calling Convention
  
  
! This convention, which is GNAT-specific is fully equivalent to the
  @code{Stdcall} calling convention described above.
  
  @node DLL Calling Convention,,Win32 Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1dd}@anchor{gnat_ugn/platform_specific_information id19}@anchor{1de}
  @subsubsection @code{DLL} Calling Convention
  
  
! This convention, which is GNAT-specific is fully equivalent to the
  @code{Stdcall} calling convention described above.
  
  @node Introduction to Dynamic Link Libraries DLLs,Using DLLs with GNAT,Windows Calling Conventions,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id20}@anchor{1df}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1e0}
  @subsubsection Introduction to Dynamic Link Libraries (DLLs)
  
  
--- 23883,23909 ----
  @end example
  @end quotation
  
! Note that to ease building cross-platform bindings, this convention
  will be handled as a @code{C} calling convention on non-Windows platforms.
  
  @node Win32 Calling Convention,DLL Calling Convention,Stdcall Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id19}@anchor{1e0}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1e1}
  @subsubsection @code{Win32} Calling Convention
  
  
! This convention, which is GNAT-specific, is fully equivalent to the
  @code{Stdcall} calling convention described above.
  
  @node DLL Calling Convention,,Win32 Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1e2}@anchor{gnat_ugn/platform_specific_information id20}@anchor{1e3}
  @subsubsection @code{DLL} Calling Convention
  
  
! This convention, which is GNAT-specific, is fully equivalent to the
  @code{Stdcall} calling convention described above.
  
  @node Introduction to Dynamic Link Libraries DLLs,Using DLLs with GNAT,Windows Calling Conventions,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id21}@anchor{1e4}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1e5}
  @subsubsection Introduction to Dynamic Link Libraries (DLLs)
  
  
*************** slower since, as you will understand bel
*** 23661,23670 ****
  
  To illustrate the remainder of this section, suppose that an application
  wants to use the services of a DLL @code{API.dll}. To use the services
! provided by @code{API.dll} you must statically link against the DLL or
  an import library which contains a jump table with an entry for each
! routine and variable exported by the DLL. In the Microsoft world this
! import library is called @code{API.lib}. When using GNAT this import
  library is called either @code{libAPI.dll.a}, @code{libapi.dll.a},
  @code{libAPI.a} or @code{libapi.a} (names are case insensitive).
  
--- 23920,23929 ----
  
  To illustrate the remainder of this section, suppose that an application
  wants to use the services of a DLL @code{API.dll}. To use the services
! provided by @code{API.dll}, you must statically link against the DLL or
  an import library which contains a jump table with an entry for each
! routine and variable exported by the DLL. In the Microsoft world, this
! import library is called @code{API.lib}. When using GNAT, this import
  library is called either @code{libAPI.dll.a}, @code{libapi.dll.a},
  @code{libAPI.a} or @code{libapi.a} (names are case insensitive).
  
*************** application. This means that:
*** 23685,23697 ****
  @itemize -
  
  @item 
! The DLL will use the stack of the calling thread.
  
  @item 
! The DLL will use the virtual address space of the calling process.
  
  @item 
! The DLL will allocate memory from the virtual address space of the calling
  process.
  
  @item 
--- 23944,23956 ----
  @itemize -
  
  @item 
! The DLL uses the stack of the calling thread.
  
  @item 
! The DLL uses the virtual address space of the calling process.
  
  @item 
! The DLL allocates memory from the virtual address space of the calling
  process.
  
  @item 
*************** variables exported by the DLL.
*** 23713,23737 ****
  @end itemize
  
  There is an additional point which is worth mentioning. In the Windows
! world there are two kind of DLLs: relocatable and non-relocatable
! DLLs. Non-relocatable DLLs can only be loaded at a very specific address
  in the target application address space. If the addresses of two
  non-relocatable DLLs overlap and these happen to be used by the same
! application, a conflict will occur and the application will run
! incorrectly. Hence, when possible, it is always preferable to use and
  build relocatable DLLs. Both relocatable and non-relocatable DLLs are
! supported by GNAT. Note that the @code{-s} linker option (see GNU Linker
! User’s Guide) removes the debugging symbols from the DLL but the DLL can
  still be relocated.
  
  As a side note, an interesting difference between Microsoft DLLs and
! Unix shared libraries, is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
! a definition file (see @ref{1e1,,The Definition File}).
  
  @node Using DLLs with GNAT,Building DLLs with GNAT Project files,Introduction to Dynamic Link Libraries DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id21}@anchor{1e2}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1d3}
  @subsubsection Using DLLs with GNAT
  
  
--- 23972,23996 ----
  @end itemize
  
  There is an additional point which is worth mentioning. In the Windows
! world, there are two kind of DLLs: relocatable and non-relocatable
! DLLs. Non-relocatable DLLs can only be loaded at a specific address
  in the target application address space. If the addresses of two
  non-relocatable DLLs overlap and these happen to be used by the same
! application, a conflict occurs and the application will run
! incorrectly. Hence, when possible, you should always use and
  build relocatable DLLs. Both relocatable and non-relocatable DLLs are
! supported by GNAT. Note that the @code{-s} linker switch (see GNU Linker
! User’s Guide) removes the debugging symbols from the DLL, but the DLL can
  still be relocated.
  
  As a side note, an interesting difference between Microsoft DLLs and
! Unix shared libraries is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
! a definition file (see @ref{1e6,,The Definition File}).
  
  @node Using DLLs with GNAT,Building DLLs with GNAT Project files,Introduction to Dynamic Link Libraries DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id22}@anchor{1e7}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1d8}
  @subsubsection Using DLLs with GNAT
  
  
*************** you must have:
*** 23743,23755 ****
  
  @item 
  The Ada spec for the routines and/or variables you want to access in
! @code{API.dll}. If not available this Ada spec must be built from the C/C++
! header files provided with the DLL.
  
  @item 
  The import library (@code{libAPI.dll.a} or @code{API.lib}). As previously
! mentioned an import library is a statically linked library containing the
! import table which will be filled at load time to point to the actual
  @code{API.dll} routines. Sometimes you don’t have an import library for the
  DLL you want to use. The following sections will explain how to build
  one. Note that this is optional.
--- 24002,24014 ----
  
  @item 
  The Ada spec for the routines and/or variables you want to access in
! @code{API.dll}. If not available, you must build this Ada spec from the
! C/C++ header files provided with the DLL.
  
  @item 
  The import library (@code{libAPI.dll.a} or @code{API.lib}). As previously
! mentioned, an import library is a statically linked library containing the
! import table, which is filled at load time to point to the actual
  @code{API.dll} routines. Sometimes you don’t have an import library for the
  DLL you want to use. The following sections will explain how to build
  one. Note that this is optional.
*************** look for a library name in this specific
*** 23795,23802 ****
  @code{API.dll}
  @end itemize
  
! The first three are the GNU style import libraries. The third is the
! Microsoft style import libraries. The last two are the actual DLL names.
  
  Note that if the Ada package spec for @code{API.dll} contains the
  following pragma
--- 24054,24061 ----
  @code{API.dll}
  @end itemize
  
! The first three are the GNU-style import libraries. The third is the
! Microsoft-style import libraries. The last two are the actual DLL names.
  
  Note that if the Ada package spec for @code{API.dll} contains the
  following pragma
*************** pragma Linker_Options ("-lAPI");
*** 23811,23817 ****
  you do not have to add @code{-largs -lAPI} at the end of the
  @code{gnatmake} command.
  
! If any one of the items above is missing you will have to create it
  yourself. The following sections explain how to do so using as an
  example a fictitious DLL called @code{API.dll}.
  
--- 24070,24076 ----
  you do not have to add @code{-largs -lAPI} at the end of the
  @code{gnatmake} command.
  
! If any one of the items above is missing, you will have to create it
  yourself. The following sections explain how to do so using as an
  example a fictitious DLL called @code{API.dll}.
  
*************** example a fictitious DLL called @code{AP
*** 23822,23828 ****
  @end menu
  
  @node Creating an Ada Spec for the DLL Services,Creating an Import Library,,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1e3}@anchor{gnat_ugn/platform_specific_information id22}@anchor{1e4}
  @subsubsection Creating an Ada Spec for the DLL Services
  
  
--- 24081,24087 ----
  @end menu
  
  @node Creating an Ada Spec for the DLL Services,Creating an Import Library,,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1e8}@anchor{gnat_ugn/platform_specific_information id23}@anchor{1e9}
  @subsubsection Creating an Ada Spec for the DLL Services
  
  
*************** A DLL typically comes with a C/C++ heade
*** 23830,23836 ****
  definitions of the routines and variables exported by the DLL. The Ada
  equivalent of this header file is a package spec that contains definitions
  for the imported entities. If the DLL you intend to use does not come with
! an Ada spec you have to generate one such spec yourself. For example if
  the header file of @code{API.dll} is a file @code{api.h} containing the
  following two definitions:
  
--- 24089,24095 ----
  definitions of the routines and variables exported by the DLL. The Ada
  equivalent of this header file is a package spec that contains definitions
  for the imported entities. If the DLL you intend to use does not come with
! an Ada spec, you have to generate such a spec yourself. For example, if
  the header file of @code{API.dll} is a file @code{api.h} containing the
  following two definitions:
  
*************** end API;
*** 23862,23868 ****
  @end quotation
  
  @node Creating an Import Library,,Creating an Ada Spec for the DLL Services,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1e5}@anchor{gnat_ugn/platform_specific_information id23}@anchor{1e6}
  @subsubsection Creating an Import Library
  
  
--- 24121,24127 ----
  @end quotation
  
  @node Creating an Import Library,,Creating an Ada Spec for the DLL Services,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1ea}@anchor{gnat_ugn/platform_specific_information id24}@anchor{1eb}
  @subsubsection Creating an Import Library
  
  
*************** as in this case it is possible to link d
*** 23876,23882 ****
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1e1}
  @subsubheading The Definition File
  
  
--- 24135,24141 ----
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1e6}
  @subsubheading The Definition File
  
  
*************** embedded in the import library.
*** 23913,23919 ****
  @item `EXPORTS'
  
  This section gives the list of exported symbols (procedures, functions or
! variables). For instance in the case of @code{API.dll} the @code{EXPORTS}
  section of @code{API.def} looks like:
  
  @example
--- 24172,24178 ----
  @item `EXPORTS'
  
  This section gives the list of exported symbols (procedures, functions or
! variables). For example, in the case of @code{API.dll} the @code{EXPORTS}
  section of @code{API.def} looks like:
  
  @example
*************** EXPORTS
*** 23924,23941 ****
  @end table
  
  Note that you must specify the correct suffix (@code{@@@var{nn}})
! (see @ref{1d6,,Windows Calling Conventions}) for a Stdcall
  calling convention function in the exported symbols list.
  
  There can actually be other sections in a definition file, but these
  sections are not relevant to the discussion at hand.
! @anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1e7}
  @subsubheading Creating a Definition File Automatically
  
  
  You can automatically create the definition file @code{API.def}
! (see @ref{1e1,,The Definition File}) from a DLL.
! For that use the @code{dlltool} program as follows:
  
  @quotation
  
--- 24183,24200 ----
  @end table
  
  Note that you must specify the correct suffix (@code{@@@var{nn}})
! (see @ref{1db,,Windows Calling Conventions}) for a Stdcall
  calling convention function in the exported symbols list.
  
  There can actually be other sections in a definition file, but these
  sections are not relevant to the discussion at hand.
! @anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1ec}
  @subsubheading Creating a Definition File Automatically
  
  
  You can automatically create the definition file @code{API.def}
! (see @ref{1e6,,The Definition File}) from a DLL.
! To do that, use the @code{dlltool} program as follows:
  
  @quotation
  
*************** $ dlltool API.dll -z API.def --export-al
*** 23944,23951 ****
  @end example
  
  Note that if some routines in the DLL have the @code{Stdcall} convention
! (@ref{1d6,,Windows Calling Conventions}) with stripped @code{@@@var{nn}}
! suffix then you’ll have to edit @code{api.def} to add it, and specify
  @code{-k} to @code{gnatdll} when creating the import library.
  
  Here are some hints to find the right @code{@@@var{nn}} suffix.
--- 24203,24210 ----
  @end example
  
  Note that if some routines in the DLL have the @code{Stdcall} convention
! (@ref{1db,,Windows Calling Conventions}) with stripped @code{@@@var{nn}}
! suffix then you’ll have to edit @code{api.def} to add it and specify
  @code{-k} to @code{gnatdll} when creating the import library.
  
  Here are some hints to find the right @code{@@@var{nn}} suffix.
*************** Here are some hints to find the right @c
*** 23954,23980 ****
  @itemize -
  
  @item 
! If you have the Microsoft import library (.lib), it is possible to get
! the right symbols by using Microsoft @code{dumpbin} tool (see the
! corresponding Microsoft documentation for further details).
  
  @example
  $ dumpbin /exports api.lib
  @end example
  
  @item 
! If you have a message about a missing symbol at link time the compiler
! tells you what symbol is expected. You just have to go back to the
  definition file and add the right suffix.
  @end itemize
  @end quotation
! @anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1e8}
  @subsubheading GNAT-Style Import Library
  
  
! To create a static import library from @code{API.dll} with the GNAT tools
! you should create the .def file, then use @code{gnatdll} tool
! (see @ref{1e9,,Using gnatdll}) as follows:
  
  @quotation
  
--- 24213,24240 ----
  @itemize -
  
  @item 
! If you have the Microsoft import library (.lib), you may be able
! to find the right symbols by using the Microsoft @code{dumpbin} tool
! (see the corresponding Microsoft documentation for further
! details).
  
  @example
  $ dumpbin /exports api.lib
  @end example
  
  @item 
! If you get a message about a missing symbol at link time, the compiler
! tells you what symbol is expected. You then can go back to the
  definition file and add the right suffix.
  @end itemize
  @end quotation
! @anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1ed}
  @subsubheading GNAT-Style Import Library
  
  
! To create a static import library from @code{API.dll} with the GNAT tools,
! you should create the @code{.def} file and use the @code{gnatdll} tool
! (see @ref{1ee,,Using gnatdll}) as follows:
  
  @quotation
  
*************** name of the DLL containing the services
*** 23987,24007 ****
  @code{API.dll}. The name of the static import library generated is
  computed from the name of the definition file as follows: if the
  definition file name is @code{xyz.def}, the import library name will
! be @code{libxyz.a}. Note that in the previous example option
  @code{-e} could have been removed because the name of the definition
  file (before the @code{.def} suffix) is the same as the name of the
! DLL (@ref{1e9,,Using gnatdll} for more information about @code{gnatdll}).
  @end quotation
! @anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1ea}
  @subsubheading Microsoft-Style Import Library
  
  
  A Microsoft import library is needed only if you plan to make an
  Ada DLL available to applications developed with Microsoft
! tools (@ref{1d2,,Mixed-Language Programming on Windows}).
  
  To create a Microsoft-style import library for @code{API.dll} you
! should create the .def file, then build the actual import library using
  Microsoft’s @code{lib} utility:
  
  @quotation
--- 24247,24267 ----
  @code{API.dll}. The name of the static import library generated is
  computed from the name of the definition file as follows: if the
  definition file name is @code{xyz.def}, the import library name will
! be @code{libxyz.a}. Note that in the previous example, the switch
  @code{-e} could have been removed because the name of the definition
  file (before the @code{.def} suffix) is the same as the name of the
! DLL (@ref{1ee,,Using gnatdll} for more information about @code{gnatdll}).
  @end quotation
! @anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1ef}
  @subsubheading Microsoft-Style Import Library
  
  
  A Microsoft import library is needed only if you plan to make an
  Ada DLL available to applications developed with Microsoft
! tools (@ref{1d7,,Mixed-Language Programming on Windows}).
  
  To create a Microsoft-style import library for @code{API.dll} you
! should create the @code{.def} file, then build the actual import library using
  Microsoft’s @code{lib} utility:
  
  @quotation
*************** Microsoft’s @code{lib} utility:
*** 24010,24016 ****
  $ lib -machine:IX86 -def:API.def -out:API.lib
  @end example
  
! If you use the above command the definition file @code{API.def} must
  contain a line giving the name of the DLL:
  
  @example
--- 24270,24276 ----
  $ lib -machine:IX86 -def:API.def -out:API.lib
  @end example
  
! If you use the above command, the definition file @code{API.def} must
  contain a line giving the name of the DLL:
  
  @example
*************** See the Microsoft documentation for furt
*** 24022,24028 ****
  @end quotation
  
  @node Building DLLs with GNAT Project files,Building DLLs with GNAT,Using DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1d4}@anchor{gnat_ugn/platform_specific_information id24}@anchor{1eb}
  @subsubsection Building DLLs with GNAT Project files
  
  
--- 24282,24288 ----
  @end quotation
  
  @node Building DLLs with GNAT Project files,Building DLLs with GNAT,Using DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1d9}@anchor{gnat_ugn/platform_specific_information id25}@anchor{1f0}
  @subsubsection Building DLLs with GNAT Project files
  
  
*************** There is nothing specific to Windows in
*** 24033,24052 ****
  See the `Library Projects' section in the `GNAT Project Manager'
  chapter of the `GPRbuild User’s Guide'.
  
! Due to a system limitation, it is not possible under Windows to create threads
  when inside the @code{DllMain} routine which is used for auto-initialization
! of shared libraries, so it is not possible to have library level tasks in SALs.
  
  @node Building DLLs with GNAT,Building DLLs with gnatdll,Building DLLs with GNAT Project files,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{1ec}@anchor{gnat_ugn/platform_specific_information id25}@anchor{1ed}
  @subsubsection Building DLLs with GNAT
  
  
  @geindex DLLs
  @geindex building
  
! This section explain how to build DLLs using the GNAT built-in DLL
! support. With the following procedure it is straight forward to build
  and use DLLs with GNAT.
  
  
--- 24293,24312 ----
  See the `Library Projects' section in the `GNAT Project Manager'
  chapter of the `GPRbuild User’s Guide'.
  
! Due to a system limitation, you cannot create threads under Windows
  when inside the @code{DllMain} routine which is used for auto-initialization
! of shared libraries, so you can’t have library level tasks in SALs.
  
  @node Building DLLs with GNAT,Building DLLs with gnatdll,Building DLLs with GNAT Project files,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{1f1}@anchor{gnat_ugn/platform_specific_information id26}@anchor{1f2}
  @subsubsection Building DLLs with GNAT
  
  
  @geindex DLLs
  @geindex building
  
! This section explains how to build DLLs using the GNAT built-in DLL
! support. With the following procedure, it is straightforward to build
  and use DLLs with GNAT.
  
  
*************** and use DLLs with GNAT.
*** 24055,24091 ****
  @item 
  Building object files.
  The first step is to build all objects files that are to be included
! into the DLL. This is done by using the standard @code{gnatmake} tool.
  
  @item 
  Building the DLL.
! To build the DLL you must use the @code{gcc} @code{-shared} and
! @code{-shared-libgcc} options. It is quite simple to use this method:
  
  @example
  $ gcc -shared -shared-libgcc -o api.dll obj1.o obj2.o ...
  @end example
  
! It is important to note that in this case all symbols found in the
! object files are automatically exported. It is possible to restrict
  the set of symbols to export by passing to @code{gcc} a definition
! file (see @ref{1e1,,The Definition File}).
  For example:
  
  @example
  $ gcc -shared -shared-libgcc -o api.dll api.def obj1.o obj2.o ...
  @end example
  
! If you use a definition file you must export the elaboration procedures
! for every package that required one. Elaboration procedures are named
  using the package name followed by “_E”.
  
  @item 
  Preparing DLL to be used.
! For the DLL to be used by client programs the bodies must be hidden
! from it and the .ali set with read-only attribute. This is very important
! otherwise GNAT will recompile all packages and will not actually use
! the code in the DLL. For example:
  
  @example
  $ mkdir apilib
--- 24315,24351 ----
  @item 
  Building object files.
  The first step is to build all objects files that are to be included
! into the DLL. This is done using the standard @code{gnatmake} tool.
  
  @item 
  Building the DLL.
! To build the DLL, you must use the @code{gcc} @code{-shared} and
! @code{-shared-libgcc} switches. It’s quite simple to use this method:
  
  @example
  $ gcc -shared -shared-libgcc -o api.dll obj1.o obj2.o ...
  @end example
  
! It’s important to note that in this case all symbols found in the
! object files are automatically exported. You can restrict
  the set of symbols to export by passing to @code{gcc} a definition
! file (see @ref{1e6,,The Definition File}).
  For example:
  
  @example
  $ gcc -shared -shared-libgcc -o api.dll api.def obj1.o obj2.o ...
  @end example
  
! If you use a definition file, you must export the elaboration procedures
! for every package that requires one. Elaboration procedures are named
  using the package name followed by “_E”.
  
  @item 
  Preparing DLL to be used.
! For the DLL to be used by client programs, the bodies must be hidden
! from it and the @code{.ali} set with read-only attribute. This is very
! important because otherwise GNAT will recompile all packages and will not
! actually use the code in the DLL. For example:
  
  @example
  $ mkdir apilib
*************** $ attrib +R apilib\\*.ali
*** 24094,24103 ****
  @end example
  @end itemize
  
! At this point it is possible to use the DLL by directly linking
  against it. Note that you must use the GNAT shared runtime when using
! GNAT shared libraries. This is achieved by using the @code{-shared} binder
! option.
  
  @quotation
  
--- 24354,24363 ----
  @end example
  @end itemize
  
! At this point, you can use the DLL by directly linking
  against it. Note that you must use the GNAT shared runtime when using
! GNAT shared libraries. You do this with the @code{-shared} binder
! switch.
  
  @quotation
  
*************** $ gnatmake main -Iapilib -bargs -shared
*** 24107,24113 ****
  @end quotation
  
  @node Building DLLs with gnatdll,Ada DLLs and Finalization,Building DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{1ee}@anchor{gnat_ugn/platform_specific_information id26}@anchor{1ef}
  @subsubsection Building DLLs with gnatdll
  
  
--- 24367,24373 ----
  @end quotation
  
  @node Building DLLs with gnatdll,Ada DLLs and Finalization,Building DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{1f3}@anchor{gnat_ugn/platform_specific_information id27}@anchor{1f4}
  @subsubsection Building DLLs with gnatdll
  
  
*************** $ gnatmake main -Iapilib -bargs -shared
*** 24115,24122 ****
  @geindex building
  
  Note that it is preferred to use GNAT Project files
! (@ref{1d4,,Building DLLs with GNAT Project files}) or the built-in GNAT
! DLL support (@ref{1ec,,Building DLLs with GNAT}) or to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  @code{gnatdll}. These DLLs will be referred to as Ada DLLs in the
--- 24375,24382 ----
  @geindex building
  
  Note that it is preferred to use GNAT Project files
! (@ref{1d9,,Building DLLs with GNAT Project files}) or the built-in GNAT
! DLL support (@ref{1f1,,Building DLLs with GNAT}) to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  @code{gnatdll}. These DLLs will be referred to as Ada DLLs in the
*************** non-Ada applications are as follows:
*** 24132,24151 ****
  You need to mark each Ada entity exported by the DLL with a @code{C} or
  @code{Stdcall} calling convention to avoid any Ada name mangling for the
  entities exported by the DLL
! (see @ref{1f0,,Exporting Ada Entities}). You can
  skip this step if you plan to use the Ada DLL only from Ada applications.
  
  @item 
  Your Ada code must export an initialization routine which calls the routine
! @code{adainit} generated by @code{gnatbind} to perform the elaboration of
! the Ada code in the DLL (@ref{1f1,,Ada DLLs and Elaboration}). The initialization
  routine exported by the Ada DLL must be invoked by the clients of the DLL
  to initialize the DLL.
  
  @item 
  When useful, the DLL should also export a finalization routine which calls
! routine @code{adafinal} generated by @code{gnatbind} to perform the
! finalization of the Ada code in the DLL (@ref{1f2,,Ada DLLs and Finalization}).
  The finalization routine exported by the Ada DLL must be invoked by the
  clients of the DLL when the DLL services are no further needed.
  
--- 24392,24411 ----
  You need to mark each Ada entity exported by the DLL with a @code{C} or
  @code{Stdcall} calling convention to avoid any Ada name mangling for the
  entities exported by the DLL
! (see @ref{1f5,,Exporting Ada Entities}). You can
  skip this step if you plan to use the Ada DLL only from Ada applications.
  
  @item 
  Your Ada code must export an initialization routine which calls the routine
! @code{adainit} (generated by @code{gnatbind}) to perform the elaboration of
! the Ada code in the DLL (@ref{1f6,,Ada DLLs and Elaboration}). The initialization
  routine exported by the Ada DLL must be invoked by the clients of the DLL
  to initialize the DLL.
  
  @item 
  When useful, the DLL should also export a finalization routine which calls
! routine @code{adafinal} (also generated by @code{gnatbind}) to perform the
! finalization of the Ada code in the DLL (@ref{1f7,,Ada DLLs and Finalization}).
  The finalization routine exported by the Ada DLL must be invoked by the
  clients of the DLL when the DLL services are no further needed.
  
*************** of the programming languages to which yo
*** 24155,24170 ****
  
  @item 
  You must provide a definition file listing the exported entities
! (@ref{1e1,,The Definition File}).
  
  @item 
! Finally you must use @code{gnatdll} to produce the DLL and the import
! library (@ref{1e9,,Using gnatdll}).
  @end itemize
  
  Note that a relocatable DLL stripped using the @code{strip}
! binutils tool will not be relocatable anymore. To build a DLL without
! debug information pass @code{-largs -s} to @code{gnatdll}. This
  restriction does not apply to a DLL built using a Library Project.
  See the `Library Projects' section in the `GNAT Project Manager'
  chapter of the `GPRbuild User’s Guide'.
--- 24415,24430 ----
  
  @item 
  You must provide a definition file listing the exported entities
! (@ref{1e6,,The Definition File}).
  
  @item 
! Finally, you must use @code{gnatdll} to produce the DLL and the import
! library (@ref{1ee,,Using gnatdll}).
  @end itemize
  
  Note that a relocatable DLL stripped using the @code{strip}
! binutils tool is no longer relocatable. To build a DLL without
! debug information, pass @code{-largs -s} to @code{gnatdll}. This
  restriction does not apply to a DLL built using a Library Project.
  See the `Library Projects' section in the `GNAT Project Manager'
  chapter of the `GPRbuild User’s Guide'.
*************** chapter of the `GPRbuild User’s Guide'
*** 24179,24193 ****
  @end menu
  
  @node Limitations When Using Ada DLLs from Ada,Exporting Ada Entities,,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{1f3}
  @subsubsection Limitations When Using Ada DLLs from Ada
  
  
! When using Ada DLLs from Ada applications there is a limitation users
! should be aware of. Because on Windows the GNAT run-time is not in a DLL of
! its own, each Ada DLL includes a part of the GNAT run-time. Specifically,
  each Ada DLL includes the services of the GNAT run-time that are necessary
! to the Ada code inside the DLL. As a result, when an Ada program uses an
  Ada DLL there are two independent GNAT run-times: one in the Ada DLL and
  one in the main program.
  
--- 24439,24453 ----
  @end menu
  
  @node Limitations When Using Ada DLLs from Ada,Exporting Ada Entities,,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{1f8}
  @subsubsection Limitations When Using Ada DLLs from Ada
  
  
! When using Ada DLLs from Ada applications there is a limitation you
! should be aware of. On Windows, the GNAT run-time is not in a DLL of
! its own, so each Ada DLL includes a part of the GNAT run-time. Specifically,
  each Ada DLL includes the services of the GNAT run-time that are necessary
! for the Ada code inside the DLL. As a result, when an Ada program uses an
  Ada DLL there are two independent GNAT run-times: one in the Ada DLL and
  one in the main program.
  
*************** It is completely safe to exchange plain
*** 24200,24206 ****
  Windows object handles, etc.
  
  @node Exporting Ada Entities,Ada DLLs and Elaboration,Limitations When Using Ada DLLs from Ada,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{1f0}@anchor{gnat_ugn/platform_specific_information id27}@anchor{1f4}
  @subsubsection Exporting Ada Entities
  
  
--- 24460,24466 ----
  Windows object handles, etc.
  
  @node Exporting Ada Entities,Ada DLLs and Elaboration,Limitations When Using Ada DLLs from Ada,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{1f5}@anchor{gnat_ugn/platform_specific_information id28}@anchor{1f9}
  @subsubsection Exporting Ada Entities
  
  
*************** end API;
*** 24261,24267 ****
  @end example
  @end quotation
  
! If the Ada DLL you are building will only be used by Ada applications
  you do not have to export Ada entities with a @code{C} or @code{Stdcall}
  convention. As an example, the previous package could be written as
  follows:
--- 24521,24527 ----
  @end example
  @end quotation
  
! If the Ada DLL you are building will only be used by Ada applications,
  you do not have to export Ada entities with a @code{C} or @code{Stdcall}
  convention. As an example, the previous package could be written as
  follows:
*************** end API;
*** 24298,24309 ****
  @end quotation
  
  Note that if you do not export the Ada entities with a @code{C} or
! @code{Stdcall} convention you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
! (@ref{1f5,,Creating the Definition File}).
  
  @node Ada DLLs and Elaboration,,Exporting Ada Entities,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{1f1}@anchor{gnat_ugn/platform_specific_information id28}@anchor{1f6}
  @subsubsection Ada DLLs and Elaboration
  
  
--- 24558,24569 ----
  @end quotation
  
  Note that if you do not export the Ada entities with a @code{C} or
! @code{Stdcall} convention, you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
! (@ref{1fa,,Creating the Definition File}).
  
  @node Ada DLLs and Elaboration,,Exporting Ada Entities,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{1f6}@anchor{gnat_ugn/platform_specific_information id29}@anchor{1fb}
  @subsubsection Ada DLLs and Elaboration
  
  
*************** in the definition file of the Ada DLL
*** 24312,24340 ****
  The DLL that you are building contains your Ada code as well as all the
  routines in the Ada library that are needed by it. The first thing a
  user of your DLL must do is elaborate the Ada code
! (@ref{f,,Elaboration Order Handling in GNAT}).
  
! To achieve this you must export an initialization routine
  (@code{Initialize_API} in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine @code{adainit} generated by the GNAT binder
! (@ref{7e,,Binding with Non-Ada Main Programs}). See the body of
  @code{Initialize_Api} for an example. Note that the GNAT binder is
  automatically invoked during the DLL build process by the @code{gnatdll}
! tool (@ref{1e9,,Using gnatdll}).
  
  When a DLL is loaded, Windows systematically invokes a routine called
! @code{DllMain}. It would therefore be possible to call @code{adainit}
  directly from @code{DllMain} without having to provide an explicit
! initialization routine. Unfortunately, it is not possible to call
  @code{adainit} from the @code{DllMain} if your program has library level
  tasks because access to the @code{DllMain} entry point is serialized by
  the system (that is, only a single thread can execute ‘through’ it at a
! time), which means that the GNAT run-time will deadlock waiting for the
  newly created task to complete its initialization.
  
  @node Ada DLLs and Finalization,Creating a Spec for Ada DLLs,Building DLLs with gnatdll,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{1f2}@anchor{gnat_ugn/platform_specific_information id29}@anchor{1f7}
  @subsubsection Ada DLLs and Finalization
  
  
--- 24572,24600 ----
  The DLL that you are building contains your Ada code as well as all the
  routines in the Ada library that are needed by it. The first thing a
  user of your DLL must do is elaborate the Ada code
! (@ref{10,,Elaboration Order Handling in GNAT}).
  
! To allow this, you must export an initialization routine
  (@code{Initialize_API} in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine @code{adainit} generated by the GNAT binder
! (@ref{7f,,Binding with Non-Ada Main Programs}). See the body of
  @code{Initialize_Api} for an example. Note that the GNAT binder is
  automatically invoked during the DLL build process by the @code{gnatdll}
! tool (@ref{1ee,,Using gnatdll}).
  
  When a DLL is loaded, Windows systematically invokes a routine called
! @code{DllMain}. It should therefore be possible to call @code{adainit}
  directly from @code{DllMain} without having to provide an explicit
! initialization routine. Unfortunately, you can’t call
  @code{adainit} from the @code{DllMain} if your program has library level
  tasks because access to the @code{DllMain} entry point is serialized by
  the system (that is, only a single thread can execute ‘through’ it at a
! time), which means that the GNAT run-time will deadlock waiting for a
  newly created task to complete its initialization.
  
  @node Ada DLLs and Finalization,Creating a Spec for Ada DLLs,Building DLLs with gnatdll,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{1f7}@anchor{gnat_ugn/platform_specific_information id30}@anchor{1fc}
  @subsubsection Ada DLLs and Finalization
  
  
*************** invoke the DLL finalization routine, if
*** 24345,24358 ****
  routine is in charge of releasing all resources acquired by the DLL. In the
  case of the Ada code contained in the DLL, this is achieved by calling
  routine @code{adafinal} generated by the GNAT binder
! (@ref{7e,,Binding with Non-Ada Main Programs}).
  See the body of @code{Finalize_Api} for an
  example. As already pointed out the GNAT binder is automatically invoked
  during the DLL build process by the @code{gnatdll} tool
! (@ref{1e9,,Using gnatdll}).
  
  @node Creating a Spec for Ada DLLs,GNAT and Windows Resources,Ada DLLs and Finalization,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{1f8}@anchor{gnat_ugn/platform_specific_information id30}@anchor{1f9}
  @subsubsection Creating a Spec for Ada DLLs
  
  
--- 24605,24618 ----
  routine is in charge of releasing all resources acquired by the DLL. In the
  case of the Ada code contained in the DLL, this is achieved by calling
  routine @code{adafinal} generated by the GNAT binder
! (@ref{7f,,Binding with Non-Ada Main Programs}).
  See the body of @code{Finalize_Api} for an
  example. As already pointed out the GNAT binder is automatically invoked
  during the DLL build process by the @code{gnatdll} tool
! (@ref{1ee,,Using gnatdll}).
  
  @node Creating a Spec for Ada DLLs,GNAT and Windows Resources,Ada DLLs and Finalization,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{1fd}@anchor{gnat_ugn/platform_specific_information id31}@anchor{1fe}
  @subsubsection Creating a Spec for Ada DLLs
  
  
*************** contained in the DLL: one for building t
*** 24376,24382 ****
  the DLL. This is because the @code{DLL} calling convention is needed to
  use a variable defined in a DLL, but when building the DLL, the variable
  must have either the @code{Ada} or @code{C} calling convention. As an
! example consider a DLL comprising the following package @code{API}:
  
  @quotation
  
--- 24636,24642 ----
  the DLL. This is because the @code{DLL} calling convention is needed to
  use a variable defined in a DLL, but when building the DLL, the variable
  must have either the @code{Ada} or @code{C} calling convention. As an
! example consider a DLL consisting of the following package @code{API}:
  
  @quotation
  
*************** end API;
*** 24410,24422 ****
  @end menu
  
  @node Creating the Definition File,Using gnatdll,,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{1f5}@anchor{gnat_ugn/platform_specific_information id31}@anchor{1fa}
  @subsubsection Creating the Definition File
  
  
! The definition file is the last file needed to build the DLL. It lists
  the exported symbols. As an example, the definition file for a DLL
! containing only package @code{API} (where all the entities are exported
  with a @code{C} calling convention) is:
  
  @quotation
--- 24670,24682 ----
  @end menu
  
  @node Creating the Definition File,Using gnatdll,,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{1fa}@anchor{gnat_ugn/platform_specific_information id32}@anchor{1ff}
  @subsubsection Creating the Definition File
  
  
! The definition file is the last file you need to build the DLL. It lists
  the exported symbols. As an example, the definition file for a DLL
! containing only package @code{API} above (where all the entities are exported
  with a @code{C} calling convention) is:
  
  @quotation
*************** EXPORTS
*** 24431,24437 ****
  @end quotation
  
  If the @code{C} calling convention is missing from package @code{API},
! then the definition file contains the mangled Ada names of the above
  entities, which in this case are:
  
  @quotation
--- 24691,24697 ----
  @end quotation
  
  If the @code{C} calling convention is missing from package @code{API},
! the definition file contains the mangled Ada names of the above
  entities, which in this case are:
  
  @quotation
*************** EXPORTS
*** 24446,24452 ****
  @end quotation
  
  @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information id32}@anchor{1fb}@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1e9}
  @subsubsection Using @code{gnatdll}
  
  
--- 24706,24712 ----
  @end quotation
  
  @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information id33}@anchor{200}@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1ee}
  @subsubsection Using @code{gnatdll}
  
  
*************** EXPORTS
*** 24454,24462 ****
  
  @code{gnatdll} is a tool to automate the DLL build process once all the Ada
  and non-Ada sources that make up your DLL have been compiled.
! @code{gnatdll} is actually in charge of two distinct tasks: build the
! static import library for the DLL and the actual DLL. The form of the
! @code{gnatdll} command is
  
  @quotation
  
--- 24714,24722 ----
  
  @code{gnatdll} is a tool to automate the DLL build process once all the Ada
  and non-Ada sources that make up your DLL have been compiled.
! @code{gnatdll} is actually in charge of two distinct tasks: building both the
! static import library for the DLL and the actual DLL. You invoke the
! @code{gnatdll} command as
  
  @quotation
  
*************** You may specify any of the following swi
*** 24484,24517 ****
  
  @item @code{-a[`address']}
  
! Build a non-relocatable DLL at @code{address}. If @code{address} is not
! specified the default address @code{0x11000000} will be used. By default,
! when this switch is missing, @code{gnatdll} builds relocatable DLL. We
! advise the reader to build relocatable DLL.
! 
! @geindex -b (gnatdll)
! 
! @item @code{-b `address'}
! 
! Set the relocatable DLL base address. By default the address is
! @code{0x11000000}.
  
  @geindex -bargs (gnatdll)
  
  @item @code{-bargs `opts'}
  
! Binder options. Pass @code{opts} to the binder.
  
  @geindex -d (gnatdll)
  
  @item @code{-d `dllfile'}
  
! @code{dllfile} is the name of the DLL. This switch must be present for
! @code{gnatdll} to do anything. The name of the generated import library is
! obtained algorithmically from @code{dllfile} as shown in the following
  example: if @code{dllfile} is @code{xyz.dll}, the import library name is
! @code{libxyz.dll.a}. The name of the definition file to use (if not specified
! by option @code{-e}) is obtained algorithmically from @code{dllfile}
  as shown in the following example:
  if @code{dllfile} is @code{xyz.dll}, the definition
  file used is @code{xyz.def}.
--- 24744,24770 ----
  
  @item @code{-a[`address']}
  
! Build a non-relocatable DLL at @code{address}. If you don’t specify
! @code{address}, @code{gnatdll} uses the default address of @code{0x11000000}. By
! default, when this switch is missing, @code{gnatdll} builds a
! relocatable DLL. We advise you to build relocatable DLL.
  
  @geindex -bargs (gnatdll)
  
  @item @code{-bargs `opts'}
  
! Binder switches. Pass @code{opts} to the binder.
  
  @geindex -d (gnatdll)
  
  @item @code{-d `dllfile'}
  
! @code{dllfile} is the name of the DLL. You must specify this switch for
! @code{gnatdll} to do anything. @code{gnatdll} names the generated import library
! algorithmically from @code{dllfile} as shown in the following
  example: if @code{dllfile} is @code{xyz.dll}, the import library name is
! @code{libxyz.dll.a}. @code{gnatdll} obtains the name of the definition file (if not specified
! by switch @code{-e}) algorithmically from @code{dllfile}
  as shown in the following example:
  if @code{dllfile} is @code{xyz.dll}, the definition
  file used is @code{xyz.def}.
*************** Help mode. Displays @code{gnatdll} switc
*** 24544,24550 ****
  
  Direct @code{gnatdll} to search the @code{dir} directory for source and
  object files needed to build the DLL.
! (@ref{73,,Search Paths and the Run-Time Library (RTL)}).
  
  @geindex -k (gnatdll)
  
--- 24797,24803 ----
  
  Direct @code{gnatdll} to search the @code{dir} directory for source and
  object files needed to build the DLL.
! (@ref{74,,Search Paths and the Run-Time Library (RTL)}).
  
  @geindex -k (gnatdll)
  
*************** object files needed to build the DLL.
*** 24552,24561 ****
  
  Removes the @code{@@@var{nn}} suffix from the import library’s exported
  names, but keeps them for the link names. You must specify this
! option if you want to use a @code{Stdcall} function in a DLL for which
  the @code{@@@var{nn}} suffix has been removed. This is the case for most
! of the Windows NT DLL for example. This option has no effect when
! @code{-n} option is specified.
  
  @geindex -l (gnatdll)
  
--- 24805,24814 ----
  
  Removes the @code{@@@var{nn}} suffix from the import library’s exported
  names, but keeps them for the link names. You must specify this
! switch if you want to use a @code{Stdcall} function in a DLL for which
  the @code{@@@var{nn}} suffix has been removed. This is the case for most
! of the Windows NT DLL for example. This switch has no effect if you
! specify the @code{-n} switch.
  
  @geindex -l (gnatdll)
  
*************** Verbose mode. Display extra information.
*** 24587,24599 ****
  
  @item @code{-largs `opts'}
  
! Linker options. Pass @code{opts} to the linker.
  @end table
  
  @subsubheading @code{gnatdll} Example
  
  
! As an example the command to build a relocatable DLL from @code{api.adb}
  once @code{api.adb} has been compiled and @code{api.def} created is
  
  @quotation
--- 24840,24852 ----
  
  @item @code{-largs `opts'}
  
! Linker switches. Pass @code{opts} to the linker.
  @end table
  
  @subsubheading @code{gnatdll} Example
  
  
! As an example, the command to build a relocatable DLL from @code{api.adb}
  once @code{api.adb} has been compiled and @code{api.def} created is
  
  @quotation
*************** $ gnatdll -d api.dll -n api.ali
*** 24614,24620 ****
  @end example
  @end quotation
  
! Alternatively if you want to create just the import library, type:
  
  @quotation
  
--- 24867,24873 ----
  @end example
  @end quotation
  
! Alternatively, if you want to create just the import library, type:
  
  @quotation
  
*************** goes on behind the scenes, you should sk
*** 24632,24647 ****
  
  We use the previous example of a DLL containing the Ada package @code{API},
  to illustrate the steps necessary to build a DLL. The starting point is a
! set of objects that will make up the DLL and the corresponding ALI
! files. In the case of this example this means that @code{api.o} and
! @code{api.ali} are available. To build a relocatable DLL, @code{gnatdll} does
  the following:
  
  
  @itemize *
  
  @item 
! @code{gnatdll} builds the base file (@code{api.base}). A base file gives
  the information necessary to generate relocation information for the
  DLL.
  
--- 24885,24900 ----
  
  We use the previous example of a DLL containing the Ada package @code{API},
  to illustrate the steps necessary to build a DLL. The starting point is a
! set of objects that make up the DLL and the corresponding ALI
! files. In the case of this example, this means @code{api.o} and
! @code{api.ali}. To build a relocatable DLL, @code{gnatdll} does
  the following:
  
  
  @itemize *
  
  @item 
! builds the base file (@code{api.base}). A base file gives
  the information necessary to generate relocation information for the
  DLL.
  
*************** $ gnatlink api -o api.jnk -mdll -Wl,--ba
*** 24651,24663 ****
  @end example
  
  In addition to the base file, the @code{gnatlink} command generates an
! output file @code{api.jnk} which can be discarded. The @code{-mdll} switch
  asks @code{gnatlink} to generate the routines @code{DllMain} and
  @code{DllMainCRTStartup} that are called by the Windows loader when the DLL
  is loaded into memory.
  
  @item 
! @code{gnatdll} uses @code{dlltool} (see @ref{1fc,,Using dlltool}) to build the
  export table (@code{api.exp}). The export table contains the relocation
  information in a form which can be used during the final link to ensure
  that the Windows loader is able to place the DLL anywhere in memory.
--- 24904,24916 ----
  @end example
  
  In addition to the base file, the @code{gnatlink} command generates an
! output file @code{api.jnk}, which can be discarded. The @code{-mdll} switch
  asks @code{gnatlink} to generate the routines @code{DllMain} and
  @code{DllMainCRTStartup} that are called by the Windows loader when the DLL
  is loaded into memory.
  
  @item 
! uses @code{dlltool} (see @ref{201,,Using dlltool}) to build the
  export table (@code{api.exp}). The export table contains the relocation
  information in a form which can be used during the final link to ensure
  that the Windows loader is able to place the DLL anywhere in memory.
*************** $ dlltool --dllname api.dll --def api.de
*** 24668,24674 ****
  @end example
  
  @item 
! @code{gnatdll} builds the base file using the new export table. Note that
  @code{gnatbind} must be called once again since the binder generated file
  has been deleted during the previous call to @code{gnatlink}.
  
--- 24921,24927 ----
  @end example
  
  @item 
! builds the base file using the new export table. Note that
  @code{gnatbind} must be called once again since the binder generated file
  has been deleted during the previous call to @code{gnatlink}.
  
*************** $ gnatlink api -o api.jnk api.exp -mdll
*** 24679,24685 ****
  @end example
  
  @item 
! @code{gnatdll} builds the new export table using the new base file and
  generates the DLL import library @code{libAPI.dll.a}.
  
  @example
--- 24932,24938 ----
  @end example
  
  @item 
! builds the new export table using the new base file and
  generates the DLL import library @code{libAPI.dll.a}.
  
  @example
*************** $ dlltool --dllname api.dll --def api.de
*** 24688,24709 ****
  @end example
  
  @item 
! Finally @code{gnatdll} builds the relocatable DLL using the final export
! table.
  
  @example
  $ gnatbind -n api
  $ gnatlink api api.exp -o api.dll -mdll
  @end example
  @end itemize
! @anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{1fc}
  @subsubheading Using @code{dlltool}
  
  
  @code{dlltool} is the low-level tool used by @code{gnatdll} to build
  DLLs and static import libraries. This section summarizes the most
! common @code{dlltool} switches. The form of the @code{dlltool} command
! is
  
  @quotation
  
--- 24941,24960 ----
  @end example
  
  @item 
! Finally, builds the relocatable DLL using the final export table.
  
  @example
  $ gnatbind -n api
  $ gnatlink api api.exp -o api.dll -mdll
  @end example
  @end itemize
! @anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{201}
  @subsubheading Using @code{dlltool}
  
  
  @code{dlltool} is the low-level tool used by @code{gnatdll} to build
  DLLs and static import libraries. This section summarizes the most
! common @code{dlltool} switches. You run @code{dlltool} as follows:
  
  @quotation
  
*************** $ dlltool [`switches`]
*** 24721,24728 ****
  
  @item @code{--base-file `basefile'}
  
! Read the base file @code{basefile} generated by the linker. This switch
! is used to create a relocatable DLL.
  @end table
  
  @geindex --def (dlltool)
--- 24972,24979 ----
  
  @item @code{--base-file `basefile'}
  
! Read the base file @code{basefile} generated by the linker. You use this switch
! to create a relocatable DLL.
  @end table
  
  @geindex --def (dlltool)
*************** Read the definition file.
*** 24742,24748 ****
  
  @item @code{--dllname `name'}
  
! Gives the name of the DLL. This switch is used to embed the name of the
  DLL in the static import library generated by @code{dlltool} with switch
  @code{--output-lib}.
  @end table
--- 24993,24999 ----
  
  @item @code{--dllname `name'}
  
! Gives the name of the DLL. You use this switch to embed the name of the
  DLL in the static import library generated by @code{dlltool} with switch
  @code{--output-lib}.
  @end table
*************** DLL in the static import library generat
*** 24755,24761 ****
  @item @code{-k}
  
  Kill @code{@@@var{nn}} from exported names
! (@ref{1d6,,Windows Calling Conventions}
  for a discussion about @code{Stdcall}-style symbols).
  @end table
  
--- 25006,25012 ----
  @item @code{-k}
  
  Kill @code{@@@var{nn}} from exported names
! (@ref{1db,,Windows Calling Conventions}
  for a discussion about @code{Stdcall}-style symbols).
  @end table
  
*************** Use @code{assembler-name} as the assembl
*** 24811,24825 ****
  @end table
  
  @node GNAT and Windows Resources,Using GNAT DLLs from Microsoft Visual Studio Applications,Creating a Spec for Ada DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{1fd}@anchor{gnat_ugn/platform_specific_information id33}@anchor{1fe}
  @subsubsection GNAT and Windows Resources
  
  
  @geindex Resources
  @geindex windows
  
! Resources are an easy way to add Windows specific objects to your
! application. The objects that can be added as resources include:
  
  
  @itemize *
--- 25062,25076 ----
  @end table
  
  @node GNAT and Windows Resources,Using GNAT DLLs from Microsoft Visual Studio Applications,Creating a Spec for Ada DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{202}@anchor{gnat_ugn/platform_specific_information id34}@anchor{203}
  @subsubsection GNAT and Windows Resources
  
  
  @geindex Resources
  @geindex windows
  
! Resources are an easy way to add Windows-specific objects to your
! application. The objects that you can add as resources include:
  
  
  @itemize *
*************** fonts
*** 24852,24864 ****
  version information
  @end itemize
  
! For example, a version information resource can be defined as follow and
! embedded into an executable or DLL:
! 
! A version information resource can be used to embed information into an
! executable or a DLL. These information can be viewed using the file properties
! from the Windows Explorer. Here is an example of a version information
! resource:
  
  @quotation
  
--- 25103,25112 ----
  version information
  @end itemize
  
! You can use a version information resource to embed information into
! an executable or a DLL. This information can be viewed using the file
! properties from the Windows Explorer. Here’s an example of a version
! information resource:
  
  @quotation
  
*************** The value @code{0809} (langID) is for th
*** 24895,24901 ****
  multilingual.
  
  This section explains how to build, compile and use resources. Note that this
! section does not cover all resource objects, for a complete description see
  the corresponding Microsoft documentation.
  
  @menu
--- 25143,25149 ----
  multilingual.
  
  This section explains how to build, compile and use resources. Note that this
! section does not cover all resource objects; for a complete description see
  the corresponding Microsoft documentation.
  
  @menu
*************** the corresponding Microsoft documentatio
*** 24906,24932 ****
  @end menu
  
  @node Building Resources,Compiling Resources,,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information building-resources}@anchor{1ff}@anchor{gnat_ugn/platform_specific_information id34}@anchor{200}
  @subsubsection Building Resources
  
  
  @geindex Resources
  @geindex building
  
! A resource file is an ASCII file. By convention resource files have an
  @code{.rc} extension.
  The easiest way to build a resource file is to use Microsoft tools
  such as @code{imagedit.exe} to build bitmaps, icons and cursors and
  @code{dlgedit.exe} to build dialogs.
! It is always possible to build an @code{.rc} file yourself by writing a
  resource script.
  
! It is not our objective to explain how to write a resource file. A
! complete description of the resource script language can be found in the
! Microsoft documentation.
  
  @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{201}@anchor{gnat_ugn/platform_specific_information id35}@anchor{202}
  @subsubsection Compiling Resources
  
  
--- 25154,25180 ----
  @end menu
  
  @node Building Resources,Compiling Resources,,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information building-resources}@anchor{204}@anchor{gnat_ugn/platform_specific_information id35}@anchor{205}
  @subsubsection Building Resources
  
  
  @geindex Resources
  @geindex building
  
! A resource file is an ASCII file. By convention, resource files have an
  @code{.rc} extension.
  The easiest way to build a resource file is to use Microsoft tools
  such as @code{imagedit.exe} to build bitmaps, icons and cursors and
  @code{dlgedit.exe} to build dialogs.
! You can always build an @code{.rc} file yourself by writing a
  resource script.
  
! It’s not our objective to explain how to write a resource file. A
! complete description of the resource script language can be found in
! the Microsoft documentation.
  
  @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{206}@anchor{gnat_ugn/platform_specific_information id36}@anchor{207}
  @subsubsection Compiling Resources
  
  
*************** Microsoft documentation.
*** 24937,24944 ****
  @geindex Resources
  @geindex compiling
  
! This section describes how to build a GNAT-compatible (COFF) object file
! containing the resources. This is done using the Resource Compiler
  @code{windres} as follows:
  
  @quotation
--- 25185,25192 ----
  @geindex Resources
  @geindex compiling
  
! This section describes how you can build a GNAT-compatible (COFF) object file
! containing the resources. You do this using the Resource Compiler
  @code{windres} as follows:
  
  @quotation
*************** $ windres -i myres.rc -o myres.o
*** 24948,24962 ****
  @end example
  @end quotation
  
! By default @code{windres} will run @code{gcc} to preprocess the @code{.rc}
  file. You can specify an alternate preprocessor (usually named
  @code{cpp.exe}) using the @code{windres} @code{--preprocessor}
! parameter. A list of all possible options may be obtained by entering
  the command @code{windres} @code{--help}.
  
! It is also possible to use the Microsoft resource compiler @code{rc.exe}
  to produce a @code{.res} file (binary resource file). See the
! corresponding Microsoft documentation for further details. In this case
  you need to use @code{windres} to translate the @code{.res} file to a
  GNAT-compatible object file as follows:
  
--- 25196,25210 ----
  @end example
  @end quotation
  
! By default @code{windres} runs @code{gcc} to preprocess the @code{.rc}
  file. You can specify an alternate preprocessor (usually named
  @code{cpp.exe}) using the @code{windres} @code{--preprocessor}
! parameter. You can obtain a list of all possible switches by entering
  the command @code{windres} @code{--help}.
  
! You can also use the Microsoft resource compiler @code{rc.exe}
  to produce a @code{.res} file (binary resource file). See the
! corresponding Microsoft documentation for further details. In this case,
  you need to use @code{windres} to translate the @code{.res} file to a
  GNAT-compatible object file as follows:
  
*************** $ windres -i myres.res -o myres.o
*** 24968,24974 ****
  @end quotation
  
  @node Using Resources,,Compiling Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information id36}@anchor{203}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{204}
  @subsubsection Using Resources
  
  
--- 25216,25222 ----
  @end quotation
  
  @node Using Resources,,Compiling Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information id37}@anchor{208}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{209}
  @subsubsection Using Resources
  
  
*************** $ windres -i myres.res -o myres.o
*** 24977,24984 ****
  
  To include the resource file in your program just add the
  GNAT-compatible object file for the resource(s) to the linker
! arguments. With @code{gnatmake} this is done by using the @code{-largs}
! option:
  
  @quotation
  
--- 25225,25232 ----
  
  To include the resource file in your program just add the
  GNAT-compatible object file for the resource(s) to the linker
! arguments. With @code{gnatmake} you do this using the @code{-largs}
! switch:
  
  @quotation
  
*************** $ gnatmake myprog -largs myres.o
*** 24988,25005 ****
  @end quotation
  
  @node Using GNAT DLLs from Microsoft Visual Studio Applications,Debugging a DLL,GNAT and Windows Resources,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{205}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{206}
  @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
  
  
  @geindex Microsoft Visual Studio
  @geindex use with GNAT DLLs
  
! This section describes a common case of mixed GNAT/Microsoft Visual Studio
! application development, where the main program is developed using MSVS, and
! is linked with a DLL developed using GNAT. Such a mixed application should
! be developed following the general guidelines outlined above; below is the
! cookbook-style sequence of steps to follow:
  
  
  @enumerate 
--- 25236,25254 ----
  @end quotation
  
  @node Using GNAT DLLs from Microsoft Visual Studio Applications,Debugging a DLL,GNAT and Windows Resources,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{20a}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{20b}
  @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
  
  
  @geindex Microsoft Visual Studio
  @geindex use with GNAT DLLs
  
! This section describes a common case of mixed GNAT/Microsoft Visual
! Studio application development, where the main program is developed
! using MSVS and is linked with a DLL developed using GNAT. You should
! develop such a mixed application following the general guidelines
! outlined above; below is the cookbook-style sequence of steps to
! follow:
  
  
  @enumerate 
*************** $ gprbuild -p mylib.gpr
*** 25020,25028 ****
  @enumerate 2
  
  @item 
! Produce a .def file for the symbols you need to interface with, either by
! hand or automatically with possibly some manual adjustments
! (see @ref{1e7,,Creating Definition File Automatically}):
  @end enumerate
  
  @quotation
--- 25269,25277 ----
  @enumerate 2
  
  @item 
! Produce a @code{.def} file for the symbols you need to interface
! with, either by hand or automatically with possibly some manual
! adjustments (see @ref{1ec,,Creating Definition File Automatically}):
  @end enumerate
  
  @quotation
*************** $ dlltool libmylib.dll -z libmylib.def -
*** 25039,25045 ****
  Make sure that MSVS command-line tools are accessible on the path.
  
  @item 
! Create the Microsoft-style import library (see @ref{1ea,,MSVS-Style Import Library}):
  @end enumerate
  
  @quotation
--- 25288,25294 ----
  Make sure that MSVS command-line tools are accessible on the path.
  
  @item 
! Create the Microsoft-style import library (see @ref{1ef,,MSVS-Style Import Library}):
  @end enumerate
  
  @quotation
*************** $ lib -machine:X64 -def:libmylib.def -ou
*** 25062,25068 ****
  @enumerate 5
  
  @item 
! Build the C main
  @end enumerate
  
  @quotation
--- 25311,25317 ----
  @enumerate 5
  
  @item 
! Build the C @code{main}:
  @end enumerate
  
  @quotation
*************** $ cl /O2 /MD main.c libmylib.lib
*** 25076,25101 ****
  @enumerate 6
  
  @item 
! Before running the executable, make sure you have set the PATH to the DLL,
! or copy the DLL into into the directory containing the .exe.
  @end enumerate
  
  @node Debugging a DLL,Setting Stack Size from gnatlink,Using GNAT DLLs from Microsoft Visual Studio Applications,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{207}@anchor{gnat_ugn/platform_specific_information id37}@anchor{208}
  @subsubsection Debugging a DLL
  
  
  @geindex DLL debugging
  
! Debugging a DLL is similar to debugging a standard program. But
! we have to deal with two different executable parts: the DLL and the
! program that uses it. We have the following four possibilities:
  
  
  @itemize *
  
  @item 
! The program and the DLL are built with GCC/GNAT.
  
  @item 
  The program is built with foreign tools and the DLL is built with
--- 25325,25351 ----
  @enumerate 6
  
  @item 
! Before running the executable, make sure you have set the PATH to
! include the DLL or copy the DLL into into the directory containing
! the @code{.exe}.
  @end enumerate
  
  @node Debugging a DLL,Setting Stack Size from gnatlink,Using GNAT DLLs from Microsoft Visual Studio Applications,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{20c}@anchor{gnat_ugn/platform_specific_information id38}@anchor{20d}
  @subsubsection Debugging a DLL
  
  
  @geindex DLL debugging
  
! Debugging a DLL is similar to debugging a standard program, but
! you have to deal with two different executable parts: the DLL and the
! program that uses it. There are the following four possibilities:
  
  
  @itemize *
  
  @item 
! The program and DLL are built with GCC/GNAT.
  
  @item 
  The program is built with foreign tools and the DLL is built with
*************** The program is built with GCC/GNAT and t
*** 25106,25116 ****
  foreign tools.
  @end itemize
  
! In this section we address only cases one and two above.
! There is no point in trying to debug
! a DLL with GNU/GDB, if there is no GDB-compatible debugging
! information in it. To do so you must use a debugger compatible with the
! tools suite used to build the DLL.
  
  @menu
  * Program and DLL Both Built with GCC/GNAT:: 
--- 25356,25365 ----
  foreign tools.
  @end itemize
  
! In this section we address only cases one and two above.  Note that
! there is no point in trying to debug a DLL with GNU/GDB if there is no
! GDB-compatible debugging information in it. To do so, you must use a
! debugger compatible with the tools suite used to build the DLL.
  
  @menu
  * Program and DLL Both Built with GCC/GNAT:: 
*************** tools suite used to build the DLL.
*** 25119,25137 ****
  @end menu
  
  @node Program and DLL Both Built with GCC/GNAT,Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id38}@anchor{209}@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{20a}
  @subsubsection Program and DLL Both Built with GCC/GNAT
  
  
  This is the simplest case. Both the DLL and the program have @code{GDB}
! compatible debugging information. It is then possible to break anywhere in
! the process. Let’s suppose here that the main procedure is named
! @code{ada_main} and that in the DLL there is an entry point named
  @code{ada_dll}.
  
! The DLL (@ref{1e0,,Introduction to Dynamic Link Libraries (DLLs)}) and
! program must have been built with the debugging information (see GNAT -g
! switch). Here are the step-by-step instructions for debugging it:
  
  
  @itemize *
--- 25368,25386 ----
  @end menu
  
  @node Program and DLL Both Built with GCC/GNAT,Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id39}@anchor{20e}@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{20f}
  @subsubsection Program and DLL Both Built with GCC/GNAT
  
  
  This is the simplest case. Both the DLL and the program have @code{GDB}
! compatible debugging information. You can then break anywhere in
! the process. Let’s suppose the main procedure is named
! @code{ada_main} and in the DLL there’s an entry point named
  @code{ada_dll}.
  
! The DLL (@ref{1e5,,Introduction to Dynamic Link Libraries (DLLs)}) and
! program must have been built with the debugging information (see the GNAT
! @code{-g} switch). Here are the step-by-step instructions for debugging it:
  
  
  @itemize *
*************** Start the program and stop at the beginn
*** 25150,25159 ****
  (gdb) start
  @end example
  
! This step is required to be able to set a breakpoint inside the DLL. As long
! as the program is not run, the DLL is not loaded. This has the
! consequence that the DLL debugging information is also not loaded, so it is not
! possible to set a breakpoint in the DLL.
  
  @item 
  Set a breakpoint inside the DLL
--- 25399,25408 ----
  (gdb) start
  @end example
  
! This step is required to be able to set a breakpoint inside
! the DLL. Until the program is run, the DLL is not loaded. This has
! the consequence that the DLL debugging information is also not
! loaded, so it is not possible to set a breakpoint in the DLL.
  
  @item 
  Set a breakpoint inside the DLL
*************** Set a breakpoint inside the DLL
*** 25164,25193 ****
  @end example
  @end itemize
  
! At this stage a breakpoint is set inside the DLL. From there on
! you can use the standard approach to debug the whole program
! (@ref{14f,,Running and Debugging Ada Programs}).
  
  @node Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Program and DLL Both Built with GCC/GNAT,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id39}@anchor{20b}@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{20c}
  @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
  
  
! In this case things are slightly more complex because it is not possible to
  start the main program and then break at the beginning to load the DLL and the
! associated DLL debugging information. It is not possible to break at the
! beginning of the program because there is no @code{GDB} debugging information,
! and therefore there is no direct way of getting initial control. This
! section addresses this issue by describing some methods that can be used
  to break somewhere in the DLL to debug it.
  
! First suppose that the main procedure is named @code{main} (this is for
! example some C code built with Microsoft Visual C) and that there is a
! DLL named @code{test.dll} containing an Ada entry point named
  @code{ada_dll}.
  
! The DLL (see @ref{1e0,,Introduction to Dynamic Link Libraries (DLLs)}) must have
! been built with debugging information (see the GNAT @code{-g} option).
  
  @subsubheading Debugging the DLL Directly
  
--- 25413,25442 ----
  @end example
  @end itemize
  
! At this stage, a breakpoint is set inside the DLL. From there on
! you can use standard @code{GDB} commands to debug the whole program
! (@ref{152,,Running and Debugging Ada Programs}).
  
  @node Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Program and DLL Both Built with GCC/GNAT,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id40}@anchor{210}@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{211}
  @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
  
  
! In this case, things are slightly more complex because you can’t
  start the main program and then break at the beginning to load the DLL and the
! associated DLL debugging information. It’s not possible to break at the
! beginning of the program because there’s no @code{GDB} debugging information,
! and therefore there’s no direct way of getting initial control. This
! section addresses this issue by describing some methods that you can use
  to break somewhere in the DLL to debug it.
  
! First, suppose that the main procedure is named @code{main} (this is the
! case, for example, for some C code built with Microsoft Visual C) and that
! there’s a DLL named @code{test.dll} containing an Ada entry point named
  @code{ada_dll}.
  
! The DLL (see @ref{1e5,,Introduction to Dynamic Link Libraries (DLLs)}) must have
! been built with debugging information (see the GNAT @code{-g} switch).
  
  @subsubheading Debugging the DLL Directly
  
*************** been built with debugging information (s
*** 25196,25202 ****
  @itemize *
  
  @item 
! Find out the executable starting address
  
  @example
  $ objdump --file-header main.exe
--- 25445,25451 ----
  @itemize *
  
  @item 
! Determine the executable’s starting address
  
  @example
  $ objdump --file-header main.exe
*************** $ gdb main.exe
*** 25219,25232 ****
  @end example
  
  @item 
! Set a breakpoint at the starting address, and launch the program.
  
  @example
  $ (gdb) break *0x00401010
  $ (gdb) run
  @end example
  
! The program will stop at the given address.
  
  @item 
  Set a breakpoint on a DLL subroutine.
--- 25468,25481 ----
  @end example
  
  @item 
! Set a breakpoint at the starting address and launch the program.
  
  @example
  $ (gdb) break *0x00401010
  $ (gdb) run
  @end example
  
! The program will stop at the specified address.
  
  @item 
  Set a breakpoint on a DLL subroutine.
*************** Continue the program.
*** 25250,25261 ****
  (gdb) cont
  @end example
  
! This will run the program until it reaches the breakpoint that has been
! set. From that point you can use the standard way to debug a program
! as described in (@ref{14f,,Running and Debugging Ada Programs}).
  @end itemize
  
! It is also possible to debug the DLL by attaching to a running process.
  
  @subsubheading Attaching to a Running Process
  
--- 25499,25511 ----
  (gdb) cont
  @end example
  
! This runs the program until it reaches the breakpoint that you’ve
! set. From that point, you can use standard @code{GDB} commands to debug
! a program as described in
! (@ref{152,,Running and Debugging Ada Programs}).
  @end itemize
  
! You can also debug the DLL by attaching @code{GDB} to a running process.
  
  @subsubheading Attaching to a Running Process
  
*************** It is also possible to debug the DLL by
*** 25263,25273 ****
  @geindex DLL debugging
  @geindex attach to process
  
! With @code{GDB} it is always possible to debug a running process by
! attaching to it. It is possible to debug a DLL this way. The limitation
! of this approach is that the DLL must run long enough to perform the
! attach operation. It may be useful for instance to insert a time wasting
! loop in the code of the DLL to meet this criterion.
  
  
  @itemize *
--- 25513,25523 ----
  @geindex DLL debugging
  @geindex attach to process
  
! With @code{GDB}, you can always debug a running process by attaching to
! it. It’s possible to debug a DLL this way. The limitation of this
! approach is that the DLL must run long enough to perform the attach
! operation. To ensure this, you may want, for example, to insert a
! time-wasting loop in the code of the DLL to allow this to happen.
  
  
  @itemize *
*************** Continue process execution.
*** 25319,25352 ****
  @end example
  @end itemize
  
! This last step will resume the process execution, and stop at
! the breakpoint we have set. From there you can use the standard
! approach to debug a program as described in
! @ref{14f,,Running and Debugging Ada Programs}.
  
  @node Setting Stack Size from gnatlink,Setting Heap Size from gnatlink,Debugging a DLL,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id40}@anchor{20d}@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{129}
  @subsubsection Setting Stack Size from @code{gnatlink}
  
  
! It is possible to specify the program stack size at link time. On modern
! versions of Windows, starting with XP, this is mostly useful to set the size of
! the main stack (environment task). The other task stacks are set with pragma
! Storage_Size or with the `gnatbind -d' command.
  
! Since older versions of Windows (2000, NT4, etc.) do not allow setting the
  reserve size of individual tasks, the link-time stack size applies to all
  tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
! This setting can be done with @code{gnatlink} using either of the following:
  
  
  @itemize *
  
  @item 
! @code{-Xlinker} linker option
  
  @example
  $ gnatlink hello -Xlinker --stack=0x10000,0x1000
--- 25569,25602 ----
  @end example
  @end itemize
  
! This last step will resume the process execution and stop at
! the breakpoint we have set. From there you can use standard
! @code{GDB} commands to debug a program, as described in
! @ref{152,,Running and Debugging Ada Programs}.
  
  @node Setting Stack Size from gnatlink,Setting Heap Size from gnatlink,Debugging a DLL,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id41}@anchor{212}@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{12b}
  @subsubsection Setting Stack Size from @code{gnatlink}
  
  
! You can specify the program stack size at link time. On most versions
! of Windows, starting with XP, this is mostly useful to set the size of
! the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the `gnatbind -d' command.
  
! Since very old versions of Windows (2000, NT4, etc.) don’t allow setting the
  reserve size of individual tasks, the link-time stack size applies to all
  tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
! You can set this with @code{gnatlink} using either of the following:
  
  
  @itemize *
  
  @item 
! @code{-Xlinker} linker switch
  
  @example
  $ gnatlink hello -Xlinker --stack=0x10000,0x1000
*************** This sets the stack reserve size to 0x10
*** 25356,25374 ****
  size to 0x1000 bytes.
  
  @item 
! @code{-Wl} linker option
  
  @example
  $ gnatlink hello -Wl,--stack=0x1000000
  @end example
  
  This sets the stack reserve size to 0x1000000 bytes. Note that with
! @code{-Wl} option it is not possible to set the stack commit size
! because the comma is a separator for this option.
  @end itemize
  
  @node Setting Heap Size from gnatlink,,Setting Stack Size from gnatlink,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id41}@anchor{20e}@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{12a}
  @subsubsection Setting Heap Size from @code{gnatlink}
  
  
--- 25606,25624 ----
  size to 0x1000 bytes.
  
  @item 
! @code{-Wl} linker switch
  
  @example
  $ gnatlink hello -Wl,--stack=0x1000000
  @end example
  
  This sets the stack reserve size to 0x1000000 bytes. Note that with
! @code{-Wl} switch, you can’t also set the stack commit size
! because the comma is a separator for this switch.
  @end itemize
  
  @node Setting Heap Size from gnatlink,,Setting Stack Size from gnatlink,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id42}@anchor{213}@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{12c}
  @subsubsection Setting Heap Size from @code{gnatlink}
  
  
*************** Under Windows systems, it is possible to
*** 25379,25385 ****
  @itemize *
  
  @item 
! @code{-Xlinker} linker option
  
  @example
  $ gnatlink hello -Xlinker --heap=0x10000,0x1000
--- 25629,25635 ----
  @itemize *
  
  @item 
! @code{-Xlinker} linker switch
  
  @example
  $ gnatlink hello -Xlinker --heap=0x10000,0x1000
*************** This sets the heap reserve size to 0x100
*** 25389,25407 ****
  size to 0x1000 bytes.
  
  @item 
! @code{-Wl} linker option
  
  @example
  $ gnatlink hello -Wl,--heap=0x1000000
  @end example
  
  This sets the heap reserve size to 0x1000000 bytes. Note that with
! @code{-Wl} option it is not possible to set the heap commit size
! because the comma is a separator for this option.
  @end itemize
  
  @node Windows Specific Add-Ons,,Mixed-Language Programming on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{20f}@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{210}
  @subsection Windows Specific Add-Ons
  
  
--- 25639,25657 ----
  size to 0x1000 bytes.
  
  @item 
! @code{-Wl} linker switch
  
  @example
  $ gnatlink hello -Wl,--heap=0x1000000
  @end example
  
  This sets the heap reserve size to 0x1000000 bytes. Note that with
! @code{-Wl} switch, you can’t also set the heap commit size
! because the comma is a separator for this switch.
  @end itemize
  
  @node Windows Specific Add-Ons,,Mixed-Language Programming on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{214}@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{215}
  @subsection Windows Specific Add-Ons
  
  
*************** This section describes the Windows speci
*** 25414,25427 ****
  @end menu
  
  @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id42}@anchor{211}@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{212}
  @subsubsection Win32Ada
  
  
! Win32Ada is a binding for the Microsoft Win32 API. This binding can be
! easily installed from the provided installer. To use the Win32Ada
! binding you need to use a project file, and adding a single with_clause
! will give you full access to the Win32Ada binding sources and ensure
  that the proper libraries are passed to the linker.
  
  @quotation
--- 25664,25677 ----
  @end menu
  
  @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id43}@anchor{216}@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{217}
  @subsubsection Win32Ada
  
  
! @code{Win32Ada} is a binding for the Microsoft Win32 API, which you can
! easily install using the provided installer. To use it,
! you need to use a project file and add a single with_clause
! to give you full access to the @code{Win32Ada} binding sources and ensure
  that the proper libraries are passed to the linker.
  
  @quotation
*************** end P;
*** 25434,25441 ****
  @end example
  @end quotation
  
! To build the application you just need to call gprbuild for the
! application’s project, here p.gpr:
  
  @quotation
  
--- 25684,25691 ----
  @end example
  @end quotation
  
! To build the application, you just need to call @code{gprbuild} for the
! application’s project, here @code{p.gpr}:
  
  @quotation
  
*************** gprbuild p.gpr
*** 25445,25460 ****
  @end quotation
  
  @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id43}@anchor{213}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{214}
  @subsubsection wPOSIX
  
  
! wPOSIX is a minimal POSIX binding whose goal is to help with building
  cross-platforms applications. This binding is not complete though, as
  the Win32 API does not provide the necessary support for all POSIX APIs.
  
! To use the wPOSIX binding you need to use a project file, and adding
! a single with_clause will give you full access to the wPOSIX binding
  sources and ensure that the proper libraries are passed to the linker.
  
  @quotation
--- 25695,25710 ----
  @end quotation
  
  @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id44}@anchor{218}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{219}
  @subsubsection wPOSIX
  
  
! @code{wPOSIX} is a minimal POSIX binding whose goal is to help with building
  cross-platforms applications. This binding is not complete though, as
  the Win32 API does not provide the necessary support for all POSIX APIs.
  
! To use the @code{wPOSIX} binding, you need to use a project file and add
! a single `with' clause to give you full access to the @code{wPOSIX} binding
  sources and ensure that the proper libraries are passed to the linker.
  
  @quotation
*************** end P;
*** 25467,25474 ****
  @end example
  @end quotation
  
! To build the application you just need to call gprbuild for the
! application’s project, here p.gpr:
  
  @quotation
  
--- 25717,25724 ----
  @end example
  @end quotation
  
! To build the application, you just need to call @code{gprbuild} for the
! application’s project, here @code{p.gpr}:
  
  @quotation
  
*************** gprbuild p.gpr
*** 25478,25484 ****
  @end quotation
  
  @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id44}@anchor{215}@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{216}
  @section Mac OS Topics
  
  
--- 25728,25734 ----
  @end quotation
  
  @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id45}@anchor{21a}@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{21b}
  @section Mac OS Topics
  
  
*************** platform.
*** 25493,25506 ****
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{217}
  @subsection Codesigning the Debugger
  
  
! The Darwin Kernel requires the debugger to have special permissions
! before it is allowed to control other processes. These permissions
! are granted by codesigning the GDB executable. Without these
! permissions, the debugger will report error messages such as:
  
  @example
  Starting program: /x/y/foo
--- 25743,25757 ----
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{21c}
  @subsection Codesigning the Debugger
  
  
! The Darwin Kernel, used by Apple’s OS X, requires the debugger to have
! special permissions before it’s allowed to control other
! processes. These permissions are granted by codesigning the GDB
! executable. Without these permissions, the debugger will report error
! messages such as:
  
  @example
  Starting program: /x/y/foo
*************** Exit the Keychain Access application and
*** 25558,25565 ****
  (this is unfortunately required)
  @end itemize
  
! Once a certificate has been created, the debugger can be codesigned
! as follow. In a Terminal, run the following command:
  
  @quotation
  
--- 25809,25816 ----
  (this is unfortunately required)
  @end itemize
  
! Once you’ve created a certificate as above, you can codesign the debugger
! by running the following command in a Terminal:
  
  @quotation
  
*************** $ codesign -f -s  "gdb-cert"  <gnat_inst
*** 25568,25587 ****
  @end example
  @end quotation
  
! where “gdb-cert” should be replaced by the actual certificate
! name chosen above, and <gnat_install_prefix> should be replaced by
! the location where you installed GNAT.  Also, be sure that users are
! in the Unix group @code{_developer}.
  
  @node Example of Binder Output File,Elaboration Order Handling in GNAT,Platform-Specific Information,Top
! @anchor{gnat_ugn/example_of_binder_output doc}@anchor{218}@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{e}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{219}
  @chapter Example of Binder Output File
  
  
  @geindex Binder output (example)
  
  This Appendix displays the source code for the output file
! generated by `gnatbind' for a simple ‘Hello World’ program.
  Comments have been added for clarification purposes.
  
  @example
--- 25819,25838 ----
  @end example
  @end quotation
  
! with @code{gdb-cert} replaced by the actual certificate name chosen
! above, and @code{gnat_install_prefix} replaced by the location where you
! installed GNAT.  Also, be sure that users of @code{GDB} are in the Unix
! group @code{_developer}.
  
  @node Example of Binder Output File,Elaboration Order Handling in GNAT,Platform-Specific Information,Top
! @anchor{gnat_ugn/example_of_binder_output doc}@anchor{21d}@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{f}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{21e}
  @chapter Example of Binder Output File
  
  
  @geindex Binder output (example)
  
  This Appendix displays the source code for the output file
! generated by @code{gnatbind} for a simple ‘Hello World’ program.
  Comments have been added for clarification purposes.
  
  @example
*************** package ada_main is
*** 25596,25603 ****
  
     --  The main program saves the parameters (argument count,
     --  argument values, environment pointer) in global variables
!    --  for later access by other units including
!    --  Ada.Command_Line.
  
     gnat_argc : Integer;
     gnat_argv : System.Address;
--- 25847,25853 ----
  
     --  The main program saves the parameters (argument count,
     --  argument values, environment pointer) in global variables
!    --  for later access by other units including Ada.Command_Line.
  
     gnat_argc : Integer;
     gnat_argv : System.Address;
*************** with Ada.Exceptions;
*** 25972,25979 ****
  package body ada_main is
     pragma Warnings (Off);
  
!    --  These values are reference counter associated to units which have
!    --  been elaborated. It is also used to avoid elaborating the
     --  same unit twice.
  
     E72 : Short_Integer; pragma Import (Ada, E72, "system__os_lib_E");
--- 26222,26229 ----
  package body ada_main is
     pragma Warnings (Off);
  
!    --  These values are reference counters associated with units that have
!    --  been elaborated. They are used to avoid elaborating the
     --  same unit twice.
  
     E72 : Short_Integer; pragma Import (Ada, E72, "system__os_lib_E");
*************** package body ada_main is
*** 26131,26138 ****
        --  Now we have the elaboration calls for all units in the partition.
        --  The Elab_Spec and Elab_Body attributes generate references to the
        --  implicit elaboration procedures generated by the compiler for
!       --  each unit that requires elaboration. Increment a counter of
!       --  reference for each unit.
  
        System.Soft_Links'Elab_Spec;
        System.Exception_Table'Elab_Body;
--- 26381,26388 ----
        --  Now we have the elaboration calls for all units in the partition.
        --  The Elab_Spec and Elab_Body attributes generate references to the
        --  implicit elaboration procedures generated by the compiler for
!       --  each unit that requires elaboration. Also increment a reference
!       --  counter for each unit.
  
        System.Soft_Links'Elab_Spec;
        System.Exception_Table'Elab_Body;
*************** package body ada_main is
*** 26197,26207 ****
     end adafinal;
  
     --  We get to the main program of the partition by using
!    --  pragma Import because if we try to with the unit and
!    --  call it Ada style, then not only do we waste time
!    --  recompiling it, but also, we don't really know the right
!    --  switches (e.g.@@: identifier character set) to be used
!    --  to compile it.
  
     procedure Ada_Main_Program;
     pragma Import (Ada, Ada_Main_Program, "_ada_hello");
--- 26447,26456 ----
     end adafinal;
  
     --  We get to the main program of the partition by using
!    --  pragma Import because if we try to 'with' the unit and
!    --  call it in Ada style, not only do we waste time recompiling it,
!    --  but we don't know the right switches (e.g.@@: identifier
!    --  character set) to be used to compile it.
  
     procedure Ada_Main_Program;
     pragma Import (Ada, Ada_Main_Program, "_ada_hello");
*************** binder. We have added comments to more c
*** 26306,26314 ****
  of each part of the generated @code{Ada_Main} package.
  
  The code is standard Ada in all respects, and can be processed by any
! tools that handle Ada. In particular, it is possible to use the debugger
  in Ada mode to debug the generated @code{Ada_Main} package. For example,
! suppose that for reasons that you do not understand, your program is crashing
  during elaboration of the body of @code{Ada.Text_IO}. To locate this bug,
  you can place a breakpoint on the call:
  
--- 26555,26563 ----
  of each part of the generated @code{Ada_Main} package.
  
  The code is standard Ada in all respects, and can be processed by any
! tools that handle Ada. In particular, you can use the debugger
  in Ada mode to debug the generated @code{Ada_Main} package. For example,
! suppose that for reasons you don’t understand, your program is crashing
  during elaboration of the body of @code{Ada.Text_IO}. To locate this bug,
  you can place a breakpoint on the call:
  
*************** Ada.Text_Io'Elab_Body;
*** 26320,26332 ****
  @end quotation
  
  and trace the elaboration routine for this package to find out where
! the problem might be (more usually of course you would be debugging
  elaboration code in your own application).
  
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Elaboration Order Handling in GNAT,Inline Assembler,Example of Binder Output File,Top
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{21a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{21b}
  @chapter Elaboration Order Handling in GNAT
  
  
--- 26569,26581 ----
  @end quotation
  
  and trace the elaboration routine for this package to find out where
! the problem might be (more usually, of course, you would be debugging
  elaboration code in your own application).
  
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Elaboration Order Handling in GNAT,Inline Assembler,Example of Binder Output File,Top
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{21f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{10}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{220}
  @chapter Elaboration Order Handling in GNAT
  
  
*************** elaboration code in your own application
*** 26334,26341 ****
  
  @geindex Elaboration control
  
! This appendix describes the handling of elaboration code in Ada and GNAT, and
! discusses how the order of elaboration of program units can be controlled in
  GNAT, either automatically or with explicit programming features.
  
  @menu
--- 26583,26590 ----
  
  @geindex Elaboration control
  
! This appendix describes the handling of elaboration code in Ada and GNAT and
! discusses how you can control the order of elaboration of program units in
  GNAT, either automatically or with explicit programming features.
  
  @menu
*************** GNAT, either automatically or with expli
*** 26356,26362 ****
  @end menu
  
  @node Elaboration Code,Elaboration Order,,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{21c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{21d}
  @section Elaboration Code
  
  
--- 26605,26611 ----
  @end menu
  
  @node Elaboration Code,Elaboration Order,,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{221}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{222}
  @section Elaboration Code
  
  
*************** Elaboration code is executed as follows:
*** 26374,26380 ****
  
  @item 
  All partitions of an Ada program are executed in parallel with one another,
! possibly in a separate address space, and possibly on a separate computer.
  
  @item 
  The execution of a partition involves running the environment task for that
--- 26623,26629 ----
  
  @item 
  All partitions of an Ada program are executed in parallel with one another,
! possibly in a separate address space and possibly on a separate computer.
  
  @item 
  The execution of a partition involves running the environment task for that
*************** Instantiations of generic templates
*** 26427,26434 ****
  @item 
  `Target'
  
! A construct elaborated by a scenario is referred to as `elaboration target'
! or simply `target'. GNAT recognizes the following targets:
  
  
  @itemize -
--- 26676,26684 ----
  @item 
  `Target'
  
! A construct elaborated by a scenario is referred to as an
! `elaboration target' or simply a `target'. GNAT recognizes the
! following targets:
  
  
  @itemize -
*************** elaborated.
*** 26504,26510 ****
  @end itemize
  
  @node Elaboration Order,Checking the Elaboration Order,Elaboration Code,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order}@anchor{21e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{21f}
  @section Elaboration Order
  
  
--- 26754,26760 ----
  @end itemize
  
  @node Elaboration Order,Checking the Elaboration Order,Elaboration Code,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order}@anchor{223}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{224}
  @section Elaboration Order
  
  
*************** presence of elaboration-control pragmas
*** 26591,26597 ****
  invocations performed in elaboration code
  @end itemize
  
! A program may have several elaboration orders depending on its structure.
  
  @quotation
  
--- 26841,26848 ----
  invocations performed in elaboration code
  @end itemize
  
! A program may have several possible elaboration orders depending on
! its structure:
  
  @quotation
  
*************** Ada states that a total elaboration orde
*** 26668,26679 ****
  what this order is. A compiler is thus tasked with choosing a suitable
  elaboration order which satisfies the dependencies imposed by `with' clauses,
  unit categorization, elaboration-control pragmas, and invocations performed in
! elaboration code. Ideally an order that avoids ABE problems should be chosen,
  however a compiler may not always find such an order due to complications with
  respect to control and data flow.
  
  @node Checking the Elaboration Order,Controlling the Elaboration Order in Ada,Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{220}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{221}
  @section Checking the Elaboration Order
  
  
--- 26919,26930 ----
  what this order is. A compiler is thus tasked with choosing a suitable
  elaboration order which satisfies the dependencies imposed by `with' clauses,
  unit categorization, elaboration-control pragmas, and invocations performed in
! elaboration code. Ideally, an order that avoids ABE problems should be chosen,
  however a compiler may not always find such an order due to complications with
  respect to control and data flow.
  
  @node Checking the Elaboration Order,Controlling the Elaboration Order in Ada,Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{225}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{226}
  @section Checking the Elaboration Order
  
  
*************** always elaborated prior to Client. The s
*** 26694,26700 ****
  @item 
  `Dynamic semantics'
  
! Dynamic checks are performed at run time, to ensure that a target is
  elaborated prior to a scenario that invokes it, thus avoiding ABE problems.
  A failed run-time check raises exception @code{Program_Error}. The following
  restrictions apply:
--- 26945,26951 ----
  @item 
  `Dynamic semantics'
  
! Dynamic checks are performed at run time to ensure that a target is
  elaborated prior to a scenario that invokes it, thus avoiding ABE problems.
  A failed run-time check raises exception @code{Program_Error}. The following
  restrictions apply:
*************** scenario that invokes the target.'
*** 26729,26745 ****
  @item 
  `Elaboration control'
  
! Pragmas are provided for the programmer to specify the desired elaboration
  order.
  @end itemize
  
  @node Controlling the Elaboration Order in Ada,Controlling the Elaboration Order in GNAT,Checking the Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-ada}@anchor{222}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{223}
  @section Controlling the Elaboration Order in Ada
  
  
! Ada provides several idioms and pragmas to aid the programmer with specifying
! the desired elaboration order and avoiding ABE problems altogether.
  
  
  @itemize *
--- 26980,26996 ----
  @item 
  `Elaboration control'
  
! Ada provides pragmas for you to specify the desired elaboration
  order.
  @end itemize
  
  @node Controlling the Elaboration Order in Ada,Controlling the Elaboration Order in GNAT,Checking the Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-ada}@anchor{227}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{228}
  @section Controlling the Elaboration Order in Ada
  
  
! Ada provides several idioms and pragmas to aid you in specifying your
! desired elaboration order and avoiding ABE problems.
  
  
  @itemize *
*************** the desired elaboration order and avoidi
*** 26747,26753 ****
  @item 
  `Packages without a body'
  
! A library package which does not require a completing body does not suffer
  from ABE problems.
  
  @example
--- 26998,27004 ----
  @item 
  `Packages without a body'
  
! A library package that does not require a completing body does not suffer
  from ABE problems.
  
  @example
*************** body of Server
*** 26836,26844 ****
  spec of Client
  @end example
  
! because the spec of @code{Server} must be elaborated prior to @code{Client} by
! virtue of the `with' clause, and in addition the body of @code{Server} must be
! elaborated immediately after the spec of @code{Server}.
  
  Removing pragma @code{Elaborate_Body} could result in the following incorrect
  elaboration order:
--- 27087,27095 ----
  spec of Client
  @end example
  
! because the spec of @code{Server} must be elaborated prior to
! @code{Client} by virtue of the `with' clause and the body of @code{Server}
! must be elaborated immediately after the spec of @code{Server}.
  
  Removing pragma @code{Elaborate_Body} could result in the following incorrect
  elaboration order:
*************** depend on.
*** 26870,26876 ****
  @item 
  `pragma Elaborate (Unit)'
  
! Pragma @code{Elaborate} can be placed in the context clauses of a unit, after a
  `with' clause. It guarantees that both the spec and body of its argument will
  be elaborated prior to the unit with the pragma. Note that other unrelated
  units may be elaborated in between the spec and the body.
--- 27121,27127 ----
  @item 
  `pragma Elaborate (Unit)'
  
! You can place pragma @code{Elaborate}  in the context clauses of a unit, after a
  `with' clause. It guarantees that both the spec and body of its argument will
  be elaborated prior to the unit with the pragma. Note that other unrelated
  units may be elaborated in between the spec and the body.
*************** has not been elaborated yet.
*** 26928,26938 ****
  @item 
  `pragma Elaborate_All (Unit)'
  
! Pragma @code{Elaborate_All} is placed in the context clauses of a unit, after
! a `with' clause. It guarantees that both the spec and body of its argument
! will be elaborated prior to the unit with the pragma, as well as all units
! `with'ed by the spec and body of the argument, recursively. Note that other
! unrelated units may be elaborated in between the spec and the body.
  
  @example
  package Math is
--- 27179,27190 ----
  @item 
  `pragma Elaborate_All (Unit)'
  
! You can place pragma @code{Elaborate_All} in the context clauses of a
! unit, after a `with' clause. It guarantees that both the spec and
! body of its argument will be elaborated prior to the unit with the
! pragma as well as all units `with'ed by the spec and body of the
! argument, recursively. Note that other unrelated units may be
! elaborated in between the spec and the body.
  
  @example
  package Math is
*************** the server unit requires a body and does
*** 27022,27029 ****
  or Elaborate_Body, then the client unit should have pragma Elaborate or
  Elaborate_All for the server unit.'
  
! If the rule outlined above is not followed, then a program may fall in one of
! the following states:
  
  
  @itemize *
--- 27274,27281 ----
  or Elaborate_Body, then the client unit should have pragma Elaborate or
  Elaborate_All for the server unit.'
  
! If you do not follow the rule outlined above, a program may fall in one of
! the following ways:
  
  
  @itemize *
*************** the following states:
*** 27031,27037 ****
  @item 
  `No elaboration order exists'
  
! In this case a compiler must diagnose the situation, and refuse to build an
  executable program.
  
  @item 
--- 27283,27289 ----
  @item 
  `No elaboration order exists'
  
! In this case a compiler must diagnose the situation and refuse to build an
  executable program.
  
  @item 
*************** In this case a compiler can build an exe
*** 27043,27060 ****
  @item 
  `Several elaboration orders exist, some correct, some incorrect'
  
! In this case the programmer has not controlled the elaboration order. As a
! result, a compiler may or may not pick one of the correct orders, and the
  program may or may not raise @code{Program_Error} when it is run. This is the
! worst possible state because the program may fail on another compiler, or
! even another version of the same compiler.
  
  @item 
  `One or more correct orders exist'
  
! In this case a compiler can build an executable program, and the program is
  run successfully. This state may be guaranteed by following the outlined
! rules, or may be the result of good program architecture.
  @end itemize
  
  Note that one additional advantage of using @code{Elaborate} and @code{Elaborate_All}
--- 27295,27312 ----
  @item 
  `Several elaboration orders exist, some correct, some incorrect'
  
! In this case, you have not controlled the elaboration order. As a
! result, a compiler may or may not pick one of the correct orders and the
  program may or may not raise @code{Program_Error} when it is run. This is the
! worst possible state because the program may fail on another compiler or
! even a different version of the same compiler.
  
  @item 
  `One or more correct orders exist'
  
! In this case a compiler can build an executable program and the program is
  run successfully. This state may be guaranteed by following the outlined
! rules or may be the result of good program architecture.
  @end itemize
  
  Note that one additional advantage of using @code{Elaborate} and @code{Elaborate_All}
*************** is that the program continues to stay in
*** 27062,27074 ****
  orders exist) even if maintenance changes the bodies of targets.
  
  @node Controlling the Elaboration Order in GNAT,Mixing Elaboration Models,Controlling the Elaboration Order in Ada,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-gnat}@anchor{224}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{225}
  @section Controlling the Elaboration Order in GNAT
  
  
! In addition to Ada semantics and rules synthesized from them, GNAT offers
! three elaboration models to aid the programmer with specifying the correct
! elaboration order and to diagnose elaboration problems.
  
  @geindex Dynamic elaboration model
  
--- 27314,27326 ----
  orders exist) even if maintenance changes the bodies of targets.
  
  @node Controlling the Elaboration Order in GNAT,Mixing Elaboration Models,Controlling the Elaboration Order in Ada,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-gnat}@anchor{229}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{22a}
  @section Controlling the Elaboration Order in GNAT
  
  
! In addition to Ada semantics and rules synthesized from them, GNAT
! offers three elaboration models to aid you in specifying the correct
! elaboration order and in diagnosing elaboration problems.
  
  @geindex Dynamic elaboration model
  
*************** invocation leads to a circularity, GNAT
*** 27105,27111 ****
  assumptions stated above. An order obtained using the dynamic model may fail
  an ABE check at run time when GNAT ignored an invocation.
  
! The dynamic model is enabled with compiler switch @code{-gnatE}.
  @end itemize
  
  @geindex Static elaboration model
--- 27357,27363 ----
  assumptions stated above. An order obtained using the dynamic model may fail
  an ABE check at run time when GNAT ignored an invocation.
  
! You enable the dynamic model with the compiler switch @code{-gnatE}.
  @end itemize
  
  @geindex Static elaboration model
*************** following legacy models:
*** 27177,27203 ****
  
  @item 
  @cite{Legacy elaboration-checking model} available in pre-18.x versions of GNAT.
! This model is enabled with compiler switch @code{-gnatH}.
  
  @item 
  @cite{Legacy elaboration-order model} available in pre-20.x versions of GNAT.
! This model is enabled with binder switch @code{-H}.
  @end itemize
  @end itemize
  
  @geindex Relaxed elaboration mode
  
! The dynamic, legacy, and static models can be relaxed using compiler switch
! @code{-gnatJ}, making them more permissive. Note that in this mode, GNAT
! may not diagnose certain elaboration issues or install run-time checks.
  
  @node Mixing Elaboration Models,ABE Diagnostics,Controlling the Elaboration Order in GNAT,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{226}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{227}
  @section Mixing Elaboration Models
  
  
! It is possible to mix units compiled with a different elaboration model,
! however the following rules must be observed:
  
  
  @itemize *
--- 27429,27456 ----
  
  @item 
  @cite{Legacy elaboration-checking model} available in pre-18.x versions of GNAT.
! You can enable this model with compiler switch @code{-gnatH}.
  
  @item 
  @cite{Legacy elaboration-order model} available in pre-20.x versions of GNAT.
! You can enable this model with binder switch @code{-H}.
  @end itemize
  @end itemize
  
  @geindex Relaxed elaboration mode
  
! You can relax the dynamic, legacy, and static models by specifying
! compiler switch @code{-gnatJ}, which makes them more permissive. Note
! that in this mode, GNAT may not diagnose certain elaboration issues or
! install run-time checks.
  
  @node Mixing Elaboration Models,ABE Diagnostics,Controlling the Elaboration Order in GNAT,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{22b}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{22c}
  @section Mixing Elaboration Models
  
  
! You can mix units compiled with different elaboration models. However
! you must observe the following rules:
  
  
  @itemize *
*************** warning:   "y.ads" which has static elab
*** 27236,27245 ****
  @end example
  @end quotation
  
! The warnings can be suppressed by binder switch @code{-ws}.
  
  @node ABE Diagnostics,SPARK Diagnostics,Mixing Elaboration Models,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat abe-diagnostics}@anchor{228}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{229}
  @section ABE Diagnostics
  
  
--- 27489,27498 ----
  @end example
  @end quotation
  
! You can suppress these warnings by specifying binder switch @code{-ws}.
  
  @node ABE Diagnostics,SPARK Diagnostics,Mixing Elaboration Models,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat abe-diagnostics}@anchor{22d}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{22e}
  @section ABE Diagnostics
  
  
*************** GNAT performs extensive diagnostics on a
*** 27247,27260 ****
  that invoke internal targets, regardless of whether the dynamic, SPARK, or
  static model is in effect.
  
! Note that GNAT emits warnings rather than hard errors whenever it encounters an
  elaboration problem. This is because the elaboration model in effect may be too
! conservative, or a particular scenario may not be invoked due conditional
! execution. The warnings can be suppressed selectively with @code{pragma Warnings
  (Off)} or globally with compiler switch @code{-gnatwL}.
  
  A `guaranteed ABE' arises when the body of a target is not elaborated early
! enough, and causes `all' scenarios that directly invoke the target to fail.
  
  @quotation
  
--- 27500,27513 ----
  that invoke internal targets, regardless of whether the dynamic, SPARK, or
  static model is in effect.
  
! Note that GNAT emits warnings rather than errors whenever it encounters an
  elaboration problem. This is because the elaboration model in effect may be too
! conservative or a particular scenario may not be invoked due to conditional
! execution. You can selectively suppress the warnings with @code{pragma Warnings
  (Off)} or globally with compiler switch @code{-gnatwL}.
  
  A `guaranteed ABE' arises when the body of a target is not elaborated early
! enough and causes `all' scenarios that directly invoke the target to fail.
  
  @quotation
  
*************** the declaration of @code{Val}. This invo
*** 27287,27293 ****
  @end quotation
  
  A `conditional ABE' arises when the body of a target is not elaborated early
! enough, and causes `some' scenarios that directly invoke the target to fail.
  
  @quotation
  
--- 27540,27546 ----
  @end quotation
  
  A `conditional ABE' arises when the body of a target is not elaborated early
! enough and causes `some' scenarios that directly invoke the target to fail.
  
  @quotation
  
*************** declaration @code{Safe} because the body
*** 27346,27358 ****
  elaborated at that point.
  
  @node SPARK Diagnostics,Elaboration Circularities,ABE Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{22a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat spark-diagnostics}@anchor{22b}
  @section SPARK Diagnostics
  
  
  GNAT enforces the SPARK rules of elaboration as defined in the SPARK Reference
! Manual section 7.7 when compiler switch @code{-gnatd.v} is in effect. Note
! that GNAT emits hard errors whenever it encounters a violation of the SPARK
  rules.
  
  @quotation
--- 27599,27611 ----
  elaborated at that point.
  
  @node SPARK Diagnostics,Elaboration Circularities,ABE Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{22f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat spark-diagnostics}@anchor{230}
  @section SPARK Diagnostics
  
  
  GNAT enforces the SPARK rules of elaboration as defined in the SPARK Reference
! Manual section 7.7 when you specify compiler switch @code{-gnatd.v}. Note
! that GNAT emits errors whenever it encounters a violation of the SPARK
  rules.
  
  @quotation
*************** rules.
*** 27372,27378 ****
  @end quotation
  
  @node Elaboration Circularities,Resolving Elaboration Circularities,SPARK Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-circularities}@anchor{22c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{22d}
  @section Elaboration Circularities
  
  
--- 27625,27631 ----
  @end quotation
  
  @node Elaboration Circularities,Resolving Elaboration Circularities,SPARK Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-circularities}@anchor{231}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{232}
  @section Elaboration Circularities
  
  
*************** This section enumerates various tactics
*** 27472,27478 ****
  @end itemize
  
  @node Resolving Elaboration Circularities,Elaboration-related Compiler Switches,Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{22e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat resolving-elaboration-circularities}@anchor{22f}
  @section Resolving Elaboration Circularities
  
  
--- 27725,27731 ----
  @end itemize
  
  @node Resolving Elaboration Circularities,Elaboration-related Compiler Switches,Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{233}@anchor{gnat_ugn/elaboration_order_handling_in_gnat resolving-elaboration-circularities}@anchor{234}
  @section Resolving Elaboration Circularities
  
  
*************** subprograms, where the program controls
*** 27484,27490 ****
  Although this is the most desirable option, it may be impractical and involve
  too much modification, especially in the case of complex legacy code.
  
! When faced with an elaboration circularity, the programmer should also consider
  the tactics given in the suggestions section of the circularity diagnostic.
  Depending on the units involved in the circularity, their `with' clauses,
  purity, preelaborability, presence of elaboration-control pragmas and
--- 27737,27743 ----
  Although this is the most desirable option, it may be impractical and involve
  too much modification, especially in the case of complex legacy code.
  
! When faced with an elaboration circularity, you should also consider
  the tactics given in the suggestions section of the circularity diagnostic.
  Depending on the units involved in the circularity, their `with' clauses,
  purity, preelaborability, presence of elaboration-control pragmas and
*************** Pragma Elaborate elimination
*** 27501,27514 ****
  remove pragma Elaborate for unit "..." in unit "..."
  @end example
  
! This tactic is suggested when the binder has determined that pragma
! @code{Elaborate}:
  
  
  @itemize -
  
  @item 
! Prevents a set of units from being elaborated.
  
  @item 
  The removal of the pragma will not eliminate the semantic effects of the
--- 27754,27766 ----
  remove pragma Elaborate for unit "..." in unit "..."
  @end example
  
! The binder suggests this tactic when it has determined that:
  
  
  @itemize -
  
  @item 
! pragma @code{Elaborate} prevents a set of units from being elaborated.
  
  @item 
  The removal of the pragma will not eliminate the semantic effects of the
*************** prior to the unit containing the pragma.
*** 27519,27525 ****
  The removal of the pragma will enable the successful ordering of the units.
  @end itemize
  
! The programmer should remove the pragma as advised, and rebuild the program.
  
  @item 
  Pragma Elaborate_All elimination
--- 27771,27777 ----
  The removal of the pragma will enable the successful ordering of the units.
  @end itemize
  
! You should remove the pragma as advised and rebuild the program.
  
  @item 
  Pragma Elaborate_All elimination
*************** Pragma Elaborate_All elimination
*** 27528,27541 ****
  remove pragma Elaborate_All for unit "..." in unit "..."
  @end example
  
! This tactic is suggested when the binder has determined that pragma
! @code{Elaborate_All}:
  
  
  @itemize -
  
  @item 
! Prevents a set of units from being elaborated.
  
  @item 
  The removal of the pragma will not eliminate the semantic effects of the
--- 27780,27793 ----
  remove pragma Elaborate_All for unit "..." in unit "..."
  @end example
  
! The binder suggests this tactic when it has determined that:
  
  
  @itemize -
  
  @item 
! pragma @code{Elaborate_All} prevents a set of units from being
! elaborated.
  
  @item 
  The removal of the pragma will not eliminate the semantic effects of the
*************** closure will still be elaborated prior t
*** 27546,27552 ****
  The removal of the pragma will enable the successful ordering of the units.
  @end itemize
  
! The programmer should remove the pragma as advised, and rebuild the program.
  
  @item 
  Pragma Elaborate_All downgrade
--- 27798,27804 ----
  The removal of the pragma will enable the successful ordering of the units.
  @end itemize
  
! You should remove the pragma as advised and rebuild the program.
  
  @item 
  Pragma Elaborate_All downgrade
*************** Pragma Elaborate_All downgrade
*** 27555,27566 ****
  change pragma Elaborate_All for unit "..." to Elaborate in unit "..."
  @end example
  
! This tactic is always suggested with the pragma @code{Elaborate_All} elimination
! tactic. It offers a different alternative of guaranteeing that the argument
! of the pragma will still be elaborated prior to the unit containing the
! pragma.
  
! The programmer should update the pragma as advised, and rebuild the program.
  
  @item 
  Pragma Elaborate_Body elimination
--- 27807,27818 ----
  change pragma Elaborate_All for unit "..." to Elaborate in unit "..."
  @end example
  
! The binder always suggests this tactic when it suggests the pragma
! @code{Elaborate_All} elimination tactic. It offers a different
! alternative of guaranteeing that the argument of the pragma will
! still be elaborated prior to the unit containing the pragma.
  
! You should update the pragma as advised and rebuild the program.
  
  @item 
  Pragma Elaborate_Body elimination
*************** Pragma Elaborate_Body elimination
*** 27569,27582 ****
  remove pragma Elaborate_Body in unit "..."
  @end example
  
! This tactic is suggested when the binder has determined that pragma
! @code{Elaborate_Body}:
  
  
  @itemize -
  
  @item 
! Prevents a set of units from being elaborated.
  
  @item 
  The removal of the pragma will enable the successful ordering of the units.
--- 27821,27833 ----
  remove pragma Elaborate_Body in unit "..."
  @end example
  
! The binder suggests this tactic when it has determined that:
  
  
  @itemize -
  
  @item 
! pragma @code{Elaborate_Body} prevents a set of units from being elaborated.
  
  @item 
  The removal of the pragma will enable the successful ordering of the units.
*************** Note that the binder cannot determine wh
*** 27586,27592 ****
  other purposes, such as guaranteeing the initialization of a variable
  declared in the spec by elaboration code in the body.
  
! The programmer should remove the pragma as advised, and rebuild the program.
  
  @item 
  Use of pragma Restrictions
--- 27837,27844 ----
  other purposes, such as guaranteeing the initialization of a variable
  declared in the spec by elaboration code in the body.
  
! If the pragma is not required for another purpose, you should remove
! the pragma as advised and rebuild the program.
  
  @item 
  Use of pragma Restrictions
*************** Use of pragma Restrictions
*** 27595,27601 ****
  use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
  @end example
  
! This tactic is suggested when the binder has determined that a task
  activation at elaboration time:
  
  
--- 27847,27853 ----
  use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
  @end example
  
! The binder suggests this tactic when it has determined that a task
  activation at elaboration time:
  
  
*************** The use of the dynamic model will enable
*** 27632,27652 ****
  units.
  @end itemize
  
! The programmer has two options:
  
  
  @itemize -
  
  @item 
  Determine the units involved in the invocation using the detailed
! invocation information, and add compiler switch @code{-gnatE} to the
! compilation arguments of selected files only. This approach will yield
  safer elaboration orders compared to the other option because it will
  minimize the opportunities presented to the dynamic model for ignoring
  invocations.
  
  @item 
! Add compiler switch @code{-gnatE} to the general compilation arguments.
  @end itemize
  
  @item 
--- 27884,27904 ----
  units.
  @end itemize
  
! You have two options:
  
  
  @itemize -
  
  @item 
  Determine the units involved in the invocation using the detailed
! invocation information and add compiler switch @code{-gnatE} to the
! compilation arguments of those units only. This approach will yield
  safer elaboration orders compared to the other option because it will
  minimize the opportunities presented to the dynamic model for ignoring
  invocations.
  
  @item 
! Add compiler switch @code{-gnatE} to the global compilation arguments.
  @end itemize
  
  @item 
*************** Use of detailed invocation information
*** 27656,27668 ****
  use detailed invocation information (compiler switch -gnatd_F)
  @end example
  
! This tactic is always suggested with the use of the dynamic model tactic. It
! causes the circularity section of the circularity diagnostic to describe the
! flow of elaboration code from a unit to a unit, enumerating all such paths in
! the process.
  
! The programmer should analyze this information to determine which units
! should be compiled with the dynamic model.
  
  @item 
  Forced-dependency elimination
--- 27908,27920 ----
  use detailed invocation information (compiler switch -gnatd_F)
  @end example
  
! The binder always suggests this tactic when it suggests use of the
! dynamic model tactic. It causes the circularity section of the
! circularity diagnostic to describe the flow of elaboration code from
! a unit to a unit, enumerating all such paths in the process.
  
! You should analyze this information to determine which units should
! be compiled with the dynamic model.
  
  @item 
  Forced-dependency elimination
*************** Forced-dependency elimination
*** 27671,27679 ****
  remove the dependency of unit "..." on unit "..." from the argument of switch -f
  @end example
  
! This tactic is suggested when the binder has determined that a dependency
! present in the forced-elaboration-order file indicated by binder switch
! @code{-f}:
  
  
  @itemize -
--- 27923,27931 ----
  remove the dependency of unit "..." on unit "..." from the argument of switch -f
  @end example
  
! The binder suggests this tactic when it has determined that a
! dependency present in the forced-elaboration-order file indicated by
! binder switch @code{-f}:
  
  
  @itemize -
*************** The removal of the dependency will enabl
*** 27686,27692 ****
  units.
  @end itemize
  
! The programmer should edit the forced-elaboration-order file, remove the
  dependency, and rebind the program.
  
  @item 
--- 27938,27944 ----
  units.
  @end itemize
  
! You should edit the forced-elaboration-order file, remove the
  dependency, and rebind the program.
  
  @item 
*************** All forced-dependency elimination
*** 27696,27706 ****
  remove switch -f
  @end example
  
! This tactic is suggested in case editing the forced-elaboration-order file is
! not an option.
  
! The programmer should remove binder switch @code{-f} from the binder
! arguments, and rebind.
  
  @item 
  Multiple-circularities diagnostic
--- 27948,27958 ----
  remove switch -f
  @end example
  
! The binder suggests this tactic when editing the
! forced-elaboration-order file is not an option.
  
! You should remove binder switch @code{-f} from the binder
! arguments and rebind.
  
  @item 
  Multiple-circularities diagnostic
*************** Multiple-circularities diagnostic
*** 27709,27725 ****
  diagnose all circularities (binder switch -d_C)
  @end example
  
! By default, the binder will diagnose only the highest-precedence circularity.
! If the program contains multiple circularities, the binder will suggest the
! use of binder switch @code{-d_C} in order to obtain the diagnostics of all
! circularities.
  
! The programmer should add binder switch @code{-d_C} to the binder
! arguments, and rebind.
  @end itemize
  
  If none of the tactics suggested by the binder eliminate the elaboration
! circularity, the programmer should consider using one of the legacy elaboration
  models, in the following order:
  
  
--- 27961,27977 ----
  diagnose all circularities (binder switch -d_C)
  @end example
  
! By default, the binder only diagnoses the highest-precedence
! circularity.  If the program contains multiple circularities, the
! binder will suggest the use of binder switch @code{-d_C} in order
! to obtain the diagnostics for each circularity.
  
! You should add binder switch @code{-d_C} to the binder arguments
! and rebind.
  @end itemize
  
  If none of the tactics suggested by the binder eliminate the elaboration
! circularity, you should consider using one of the legacy elaboration
  models, in the following order:
  
  
*************** Use the relaxed dynamic-elaboration mode
*** 27744,27750 ****
  @end itemize
  
  @node Elaboration-related Compiler Switches,Summary of Procedures for Elaboration Control,Resolving Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-related-compiler-switches}@anchor{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{231}
  @section Elaboration-related Compiler Switches
  
  
--- 27996,28002 ----
  @end itemize
  
  @node Elaboration-related Compiler Switches,Summary of Procedures for Elaboration Control,Resolving Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-related-compiler-switches}@anchor{235}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{236}
  @section Elaboration-related Compiler Switches
  
  
*************** When this switch is in effect, GNAT acti
*** 27770,27776 ****
  
  @item @code{-gnatel}
  
! Turn on info messages on generated Elaborate[_All] pragmas
  
  This switch is only applicable to the pre-20.x legacy elaboration models.
  The post-20.x elaboration model no longer relies on implicitly generated
--- 28022,28028 ----
  
  @item @code{-gnatel}
  
! Turn on informational messages on generated Elaborate[_All] pragmas
  
  This switch is only applicable to the pre-20.x legacy elaboration models.
  The post-20.x elaboration model no longer relies on implicitly generated
*************** checks. The example above will still fai
*** 27925,27955 ****
  @end table
  
  @node Summary of Procedures for Elaboration Control,Inspecting the Chosen Elaboration Order,Elaboration-related Compiler Switches,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{232}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{233}
  @section Summary of Procedures for Elaboration Control
  
  
! A programmer should first compile the program with the default options, using
  none of the binder or compiler switches. If the binder succeeds in finding an
  elaboration order, then apart from possible cases involving dispatching calls
  and access-to-subprogram types, the program is free of elaboration errors.
  
! If it is important for the program to be portable to compilers other than GNAT,
! then the programmer should use compiler switch @code{-gnatel} and consider
! the messages about missing or implicitly created @code{Elaborate} and
! @code{Elaborate_All} pragmas.
  
! If the binder reports an elaboration circularity, the programmer has several
  options:
  
  
  @itemize *
  
  @item 
! Ensure that elaboration warnings are enabled. This will allow the static
  model to output trace information of elaboration issues. The trace
! information could shed light on previously unforeseen dependencies, as well
! as their origins. Elaboration warnings are enabled with compiler switch
  @code{-gnatwl}.
  
  @item 
--- 28177,28207 ----
  @end table
  
  @node Summary of Procedures for Elaboration Control,Inspecting the Chosen Elaboration Order,Elaboration-related Compiler Switches,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{237}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{238}
  @section Summary of Procedures for Elaboration Control
  
  
! You should first compile the program with the default options, using
  none of the binder or compiler switches. If the binder succeeds in finding an
  elaboration order, then apart from possible cases involving dispatching calls
  and access-to-subprogram types, the program is free of elaboration errors.
  
! If it is important for the program to be portable to compilers other
! than GNAT, you should use compiler switch @code{-gnatel} and
! consider the messages about missing or implicitly created
! @code{Elaborate} and @code{Elaborate_All} pragmas.
  
! If the binder reports an elaboration circularity, you have several
  options:
  
  
  @itemize *
  
  @item 
! Ensure that elaboration warnings are enabled. This allows the static
  model to output trace information of elaboration issues. The trace
! information could shed light on previously unforeseen dependencies as well
! as their origins. You enable elaboration warnings with compiler switch
  @code{-gnatwl}.
  
  @item 
*************** Use the relaxed dynamic elaboration mode
*** 27983,27989 ****
  @end itemize
  
  @node Inspecting the Chosen Elaboration Order,,Summary of Procedures for Elaboration Control,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{234}@anchor{gnat_ugn/elaboration_order_handling_in_gnat inspecting-the-chosen-elaboration-order}@anchor{235}
  @section Inspecting the Chosen Elaboration Order
  
  
--- 28235,28241 ----
  @end itemize
  
  @node Inspecting the Chosen Elaboration Order,,Summary of Procedures for Elaboration Control,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{239}@anchor{gnat_ugn/elaboration_order_handling_in_gnat inspecting-the-chosen-elaboration-order}@anchor{23a}
  @section Inspecting the Chosen Elaboration Order
  
  
*************** gdbstr (body)
*** 28126,28142 ****
  @end quotation
  
  @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
! @anchor{gnat_ugn/inline_assembler doc}@anchor{236}@anchor{gnat_ugn/inline_assembler id1}@anchor{237}@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{10}
  @chapter Inline Assembler
  
  
  @geindex Inline Assembler
  
  If you need to write low-level software that interacts directly
! with the hardware, Ada provides two ways to incorporate assembly
  language code into your program.  First, you can import and invoke
  external routines written in assembly language, an Ada feature fully
! supported by GNAT.  However, for small sections of code it may be simpler
  or more efficient to include assembly language statements directly
  in your Ada source program, using the facilities of the implementation-defined
  package @code{System.Machine_Code}, which incorporates the gcc
--- 28378,28394 ----
  @end quotation
  
  @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
! @anchor{gnat_ugn/inline_assembler doc}@anchor{23b}@anchor{gnat_ugn/inline_assembler id1}@anchor{23c}@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{11}
  @chapter Inline Assembler
  
  
  @geindex Inline Assembler
  
  If you need to write low-level software that interacts directly
! with the hardware, Ada provides two ways for you to incorporate assembly
  language code into your program.  First, you can import and invoke
  external routines written in assembly language, an Ada feature fully
! supported by GNAT.  However, for small sections of code, it may be simpler
  or more efficient to include assembly language statements directly
  in your Ada source program, using the facilities of the implementation-defined
  package @code{System.Machine_Code}, which incorporates the gcc
*************** Access to Ada constants and variables
*** 28162,28168 ****
  Definition of intrinsic routines
  
  @item 
! Possibility of inlining a subprogram comprising assembler code
  
  @item 
  Code optimizer can take Inline Assembler code into account
--- 28414,28420 ----
  Definition of intrinsic routines
  
  @item 
! Possibility of inlining a subprogram consisting of assembler code
  
  @item 
  Code optimizer can take Inline Assembler code into account
*************** Code optimizer can take Inline Assembler
*** 28171,28178 ****
  This appendix presents a series of examples to show you how to use
  the Inline Assembler.  Although it focuses on the Intel x86,
  the general approach applies also to other processors.
! It is assumed that you are familiar with Ada
! and with assembly language programming.
  
  @menu
  * Basic Assembler Syntax:: 
--- 28423,28430 ----
  This appendix presents a series of examples to show you how to use
  the Inline Assembler.  Although it focuses on the Intel x86,
  the general approach applies also to other processors.
! It is assumed you are familiar with both Ada
! and assembly language programming.
  
  @menu
  * Basic Assembler Syntax:: 
*************** and with assembly language programming.
*** 28185,28191 ****
  @end menu
  
  @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
! @anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{238}@anchor{gnat_ugn/inline_assembler id2}@anchor{239}
  @section Basic Assembler Syntax
  
  
--- 28437,28443 ----
  @end menu
  
  @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
! @anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{23d}@anchor{gnat_ugn/inline_assembler id2}@anchor{23e}
  @section Basic Assembler Syntax
  
  
*************** Intel: Destination first; for example @c
*** 28301,28313 ****
  
  
  @node A Simple Example of Inline Assembler,Output Variables in Inline Assembler,Basic Assembler Syntax,Inline Assembler
! @anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{23a}@anchor{gnat_ugn/inline_assembler id3}@anchor{23b}
  @section A Simple Example of Inline Assembler
  
  
! The following example will generate a single assembly language statement,
  @code{nop}, which does nothing.  Despite its lack of run-time effect,
! the example will be useful in illustrating the basics of
  the Inline Assembler facility.
  
  @quotation
--- 28553,28565 ----
  
  
  @node A Simple Example of Inline Assembler,Output Variables in Inline Assembler,Basic Assembler Syntax,Inline Assembler
! @anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{23f}@anchor{gnat_ugn/inline_assembler id3}@anchor{240}
  @section A Simple Example of Inline Assembler
  
  
! The following example generate a single assembly language statement,
  @code{nop}, which does nothing.  Despite its lack of run-time effect,
! the example is useful in illustrating the basics of
  the Inline Assembler facility.
  
  @quotation
*************** end Nothing;
*** 28323,28340 ****
  
  @code{Asm} is a procedure declared in package @code{System.Machine_Code};
  here it takes one parameter, a `template string' that must be a static
! expression and that will form the generated instruction.
  @code{Asm} may be regarded as a compile-time procedure that parses
! the template string and additional parameters (none here),
! from which it generates a sequence of assembly language instructions.
  
  The examples in this chapter will illustrate several of the forms
  for invoking @code{Asm}; a complete specification of the syntax
  is found in the @code{Machine_Code_Insertions} section of the
  @cite{GNAT Reference Manual}.
  
! Under the standard GNAT conventions, the @code{Nothing} procedure
! should be in a file named @code{nothing.adb}.
  You can build the executable in the usual way:
  
  @quotation
--- 28575,28592 ----
  
  @code{Asm} is a procedure declared in package @code{System.Machine_Code};
  here it takes one parameter, a `template string' that must be a static
! expression that produces the generated instruction.
  @code{Asm} may be regarded as a compile-time procedure that parses
! the template string and any additional parameters (none, in this case)
! and generates one or more assembly language instructions.
  
  The examples in this chapter will illustrate several of the forms
  for invoking @code{Asm}; a complete specification of the syntax
  is found in the @code{Machine_Code_Insertions} section of the
  @cite{GNAT Reference Manual}.
  
! Under the standard GNAT conventions, you should put the @code{Nothing} procedure
! in a file named @code{nothing.adb}.
  You can build the executable in the usual way:
  
  @quotation
*************** do not add runtime checks
*** 28398,28404 ****
  @end itemize
  
  This gives a human-readable assembler version of the code. The resulting
! file will have the same name as the Ada source file, but with a @code{.s}
  extension. In our example, the file @code{nothing.s} has the following
  contents:
  
--- 28650,28656 ----
  @end itemize
  
  This gives a human-readable assembler version of the code. The resulting
! file has the same name as the Ada source file but with a @code{.s}
  extension. In our example, the file @code{nothing.s} has the following
  contents:
  
*************** can differ on different targets. For exa
*** 28429,28436 ****
  on NT you will see ‘/APP’.
  
  If you make a mistake in your assembler code (such as using the
! wrong size modifier, or using a wrong operand for the instruction) GNAT
! will report this error in a temporary file, which will be deleted when
  the compilation is finished.  Generating an assembler file will help
  in such cases, since you can assemble this file separately using the
  @code{as} assembler that comes with gcc.
--- 28681,28688 ----
  on NT you will see ‘/APP’.
  
  If you make a mistake in your assembler code (such as using the
! wrong size modifier or using a wrong operand for the instruction) GNAT
! will report this error in a temporary file, which is deleted when
  the compilation is finished.  Generating an assembler file will help
  in such cases, since you can assemble this file separately using the
  @code{as} assembler that comes with gcc.
*************** $ as nothing.s
*** 28446,28456 ****
  
  will give you error messages whose lines correspond to the assembler
  input file, so you can easily find and correct any mistakes you made.
! If there are no errors, @code{as} will generate an object file
  @code{nothing.out}.
  
  @node Output Variables in Inline Assembler,Input Variables in Inline Assembler,A Simple Example of Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id4}@anchor{23c}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{23d}
  @section Output Variables in Inline Assembler
  
  
--- 28698,28708 ----
  
  will give you error messages whose lines correspond to the assembler
  input file, so you can easily find and correct any mistakes you made.
! If there are no errors, @code{as} generates an object file called
  @code{nothing.out}.
  
  @node Output Variables in Inline Assembler,Input Variables in Inline Assembler,A Simple Example of Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id4}@anchor{241}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{242}
  @section Output Variables in Inline Assembler
  
  
*************** end Get_Flags;
*** 28477,28486 ****
  @end example
  @end quotation
  
! In order to have a nicely aligned assembly listing, we have separated
! multiple assembler statements in the Asm template string with linefeed
! (ASCII.LF) and horizontal tab (ASCII.HT) characters.
! The resulting section of the assembly output file is:
  
  @quotation
  
--- 28729,28738 ----
  @end example
  @end quotation
  
! We have separated multiple assembler statements in the Asm template
! string with linefeed (ASCII.LF) and horizontal tab (ASCII.HT)
! characters in order to have a nicely aligned assembly listing.  The
! resulting section of the assembly output file is:
  
  @quotation
  
*************** In the generated assembly code, one of t
*** 28528,28535 ****
  Names such as @code{%0}, @code{%1}, @code{%2}, etc., denote input or output
  variables: operands you later define using @code{Input} or @code{Output}
  parameters to @code{Asm}.
! An output variable is illustrated in
! the third statement in the Asm template string:
  
  @quotation
  
--- 28780,28787 ----
  Names such as @code{%0}, @code{%1}, @code{%2}, etc., denote input or output
  variables: operands you later define using @code{Input} or @code{Output}
  parameters to @code{Asm}.
! An output variable is shown in
! the third section of the Asm template string:
  
  @quotation
  
*************** movl %%eax, %0
*** 28538,28550 ****
  @end example
  @end quotation
  
! The intent is to store the contents of the eax register in a variable that can
! be accessed in Ada.  Simply writing @code{movl %%eax, Flags} would not
! necessarily work, since the compiler might optimize by using a register
! to hold Flags, and the expansion of the @code{movl} instruction would not be
! aware of this optimization.  The solution is not to store the result directly
! but rather to advise the compiler to choose the correct operand form;
! that is the purpose of the @code{%0} output variable.
  
  Information about the output variable is supplied in the @code{Outputs}
  parameter to @code{Asm}:
--- 28790,28803 ----
  @end example
  @end quotation
  
! The intent of this section is to store the contents of the @code{eax}
! register in a variable that can be accessed in Ada.  Simply writing
! @code{movl %%eax, Flags} would not necessarily work, since the compiler
! might optimize by using a register to hold @code{Flags}, and the expansion of
! the @code{movl} instruction would not be aware of this optimization.  The
! solution is not to store the result directly but rather to advise the
! compiler to choose the correct operand form; that is the purpose of
! the @code{%0} output variable.
  
  Information about the output variable is supplied in the @code{Outputs}
  parameter to @code{Asm}:
*************** Outputs => Unsigned_32'Asm_Output ("=g",
*** 28557,28563 ****
  @end quotation
  
  The output is defined by the @code{Asm_Output} attribute of the target type;
! the general format is
  
  @quotation
  
--- 28810,28816 ----
  @end quotation
  
  The output is defined by the @code{Asm_Output} attribute of the target type;
! the general format is:
  
  @quotation
  
*************** Type'Asm_Output (constraint_string, vari
*** 28567,28573 ****
  @end quotation
  
  The constraint string directs the compiler how
! to store/access the associated variable.  In the example
  
  @quotation
  
--- 28820,28826 ----
  @end quotation
  
  The constraint string directs the compiler how
! to store/access the associated variable.  In the example:
  
  @quotation
  
*************** Unsigned_32'Asm_Output ("=r", Flags);
*** 28590,28603 ****
  uses the @code{"r"} (register) constraint, telling the compiler to
  store the variable in a register.
  
! If the constraint is preceded by the equal character ‘=’, it tells
! the compiler that the variable will be used to store data into it.
  
  In the @code{Get_Flags} example, we used the @code{"g"} (global) constraint,
! allowing the optimizer to choose whatever it deems best.
  
  There are a fairly large number of constraints, but the ones that are
! most useful (for the Intel x86 processor) are the following:
  
  @quotation
  
--- 28843,28856 ----
  uses the @code{"r"} (register) constraint, telling the compiler to
  store the variable in a register.
  
! If you precede the constraint with the equal character (‘=’), it tells
! the compiler that the variable will have data stored into it.
  
  In the @code{Get_Flags} example, we used the @code{"g"} (global) constraint,
! allowing the optimizer to choose whatever operand it deems best.
  
  There are a fairly large number of constraints, but the ones that are
! most useful for the Intel x86 processor are the following:
  
  @quotation
  
*************** use one of eax, ebx, ecx, edx, esi or ed
*** 28703,28711 ****
  
  @end quotation
  
! The full set of constraints is described in the gcc and @code{as}
! documentation; note that it is possible to combine certain constraints
! in one constraint string.
  
  You specify the association of an output variable with an assembler operand
  through the @code{%@var{n}} notation, where `n' is a non-negative
--- 28956,28964 ----
  
  @end quotation
  
! The full set of constraints is described in the @code{gcc} and @code{as}
! documentation; note that you can combine certain constraints
! into one constraint string.
  
  You specify the association of an output variable with an assembler operand
  through the @code{%@var{n}} notation, where `n' is a non-negative
*************** Asm ("pushfl"          & LF & HT & -- pu
*** 28721,28729 ****
  @end example
  @end quotation
  
! @code{%0} will be replaced in the expanded code by the appropriate operand,
! whatever
! the compiler decided for the @code{Flags} variable.
  
  In general, you may have any number of output variables:
  
--- 28974,28981 ----
  @end example
  @end quotation
  
! @code{%0} is replaced in the expanded code by the appropriate operand,
! whatever the compiler chose for the @code{Flags} variable.
  
  In general, you may have any number of output variables:
  
*************** Asm ("movl %%eax, %0" & LF & HT &
*** 28755,28762 ****
  where @code{Var_A}, @code{Var_B}, and @code{Var_C} are variables
  in the Ada program.
  
! As a variation on the @code{Get_Flags} example, we can use the constraints
! string to direct the compiler to store the eax register into the @code{Flags}
  variable, instead of including the store instruction explicitly in the
  @code{Asm} template string:
  
--- 29007,29014 ----
  where @code{Var_A}, @code{Var_B}, and @code{Var_C} are variables
  in the Ada program.
  
! As a variation on the @code{Get_Flags} example, we can use the constraint
! string to direct the compiler to store the @code{eax} register into the @code{Flags}
  variable, instead of including the store instruction explicitly in the
  @code{Asm} template string:
  
*************** end Get_Flags_2;
*** 28779,28785 ****
  @end quotation
  
  The @code{"a"} constraint tells the compiler that the @code{Flags}
! variable will come from the eax register. Here is the resulting code:
  
  @quotation
  
--- 29031,29037 ----
  @end quotation
  
  The @code{"a"} constraint tells the compiler that the @code{Flags}
! variable will come from the @code{eax} register. Here is the resulting code:
  
  @quotation
  
*************** variable will come from the eax register
*** 28795,28801 ****
  The compiler generated the store of eax into Flags after
  expanding the assembler code.
  
! Actually, there was no need to pop the flags into the eax register;
  more simply, we could just pop the flags directly into the program variable:
  
  @quotation
--- 29047,29053 ----
  The compiler generated the store of eax into Flags after
  expanding the assembler code.
  
! In fact, there was no need to pop the flags into the @code{eax} register;
  more simply, we could just pop the flags directly into the program variable:
  
  @quotation
*************** end Get_Flags_3;
*** 28817,28829 ****
  @end quotation
  
  @node Input Variables in Inline Assembler,Inlining Inline Assembler Code,Output Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id5}@anchor{23e}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{23f}
  @section Input Variables in Inline Assembler
  
  
  The example in this section illustrates how to specify the source operands
  for assembly language statements.
! The program simply increments its input value by 1:
  
  @quotation
  
--- 29069,29081 ----
  @end quotation
  
  @node Input Variables in Inline Assembler,Inlining Inline Assembler Code,Output Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id5}@anchor{243}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{244}
  @section Input Variables in Inline Assembler
  
  
  The example in this section illustrates how to specify the source operands
  for assembly language statements.
! The procedure simply increments its input value by 1:
  
  @quotation
  
*************** end Increment;
*** 28854,28875 ****
  @end quotation
  
  The @code{Outputs} parameter to @code{Asm} specifies
! that the result will be in the eax register and that it is to be stored
  in the @code{Result} variable.
  
  The @code{Inputs} parameter looks much like the @code{Outputs} parameter,
  but with an @code{Asm_Input} attribute.
  The @code{"="} constraint, indicating an output value, is not present.
  
! You can have multiple input variables, in the same way that you can have more
  than one output variable.
  
  The parameter count (%0, %1) etc, still starts at the first output statement,
  and continues with the input statements.
  
  Just as the @code{Outputs} parameter causes the register to be stored into the
! target variable after execution of the assembler statements, so does the
! @code{Inputs} parameter cause its variable to be loaded into the register
  before execution of the assembler statements.
  
  Thus the effect of the @code{Asm} invocation is:
--- 29106,29127 ----
  @end quotation
  
  The @code{Outputs} parameter to @code{Asm} specifies
! that the result is in the @code{eax} register and that it is to be stored
  in the @code{Result} variable.
  
  The @code{Inputs} parameter looks much like the @code{Outputs} parameter,
  but with an @code{Asm_Input} attribute.
  The @code{"="} constraint, indicating an output value, is not present.
  
! You can have multiple input variables in the same way you can have more
  than one output variable.
  
  The parameter count (%0, %1) etc, still starts at the first output statement,
  and continues with the input statements.
  
  Just as the @code{Outputs} parameter causes the register to be stored into the
! target variable after execution of the assembler statements, the
! @code{Inputs} parameter causes its variable to be loaded into the register
  before execution of the assembler statements.
  
  Thus the effect of the @code{Asm} invocation is:
*************** Thus the effect of the @code{Asm} invoca
*** 28878,28884 ****
  @itemize *
  
  @item 
! load the 32-bit value of @code{Value} into eax
  
  @item 
  execute the @code{incl %eax} instruction
--- 29130,29136 ----
  @itemize *
  
  @item 
! load the 32-bit value of @code{Value} into @code{eax}
  
  @item 
  execute the @code{incl %eax} instruction
*************** _increment__incr.1:
*** 28906,28912 ****
  @end quotation
  
  @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id6}@anchor{240}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{241}
  @section Inlining Inline Assembler Code
  
  
--- 29158,29164 ----
  @end quotation
  
  @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id6}@anchor{245}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{246}
  @section Inlining Inline Assembler Code
  
  
*************** frame) can be significant, compared to t
*** 28916,28922 ****
  body.  A solution is to apply Ada’s @code{Inline} pragma to the subprogram,
  which directs the compiler to expand invocations of the subprogram at the
  point(s) of call, instead of setting up a stack frame for out-of-line calls.
! Here is the resulting program:
  
  @quotation
  
--- 29168,29174 ----
  body.  A solution is to apply Ada’s @code{Inline} pragma to the subprogram,
  which directs the compiler to expand invocations of the subprogram at the
  point(s) of call, instead of setting up a stack frame for out-of-line calls.
! Here’s the resulting program:
  
  @quotation
  
*************** movl %esi,%eax
*** 28977,28983 ****
  thus saving the overhead of stack frame setup and an out-of-line call.
  
  @node Other Asm Functionality,,Inlining Inline Assembler Code,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id7}@anchor{242}@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{243}
  @section Other @code{Asm} Functionality
  
  
--- 29229,29235 ----
  thus saving the overhead of stack frame setup and an out-of-line call.
  
  @node Other Asm Functionality,,Inlining Inline Assembler Code,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id7}@anchor{247}@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{248}
  @section Other @code{Asm} Functionality
  
  
*************** and @code{Volatile}, which inhibits unwa
*** 28992,28998 ****
  @end menu
  
  @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id8}@anchor{244}@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{245}
  @subsection The @code{Clobber} Parameter
  
  
--- 29244,29250 ----
  @end menu
  
  @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id8}@anchor{249}@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{24a}
  @subsection The @code{Clobber} Parameter
  
  
*************** such as Ada is that the compiler needs t
*** 29001,29014 ****
  being used by the assembly code.  In some cases, such as the earlier examples,
  the constraint string is sufficient to indicate register usage (e.g.,
  @code{"a"} for
! the eax register).  But more generally, the compiler needs an explicit
  identification of the registers that are used by the Inline Assembly
  statements.
  
  Using a register that the compiler doesn’t know about
! could be a side effect of an instruction (like @code{mull}
! storing its result in both eax and edx).
! It can also arise from explicit register usage in your
  assembly code; for example:
  
  @quotation
--- 29253,29266 ----
  being used by the assembly code.  In some cases, such as the earlier examples,
  the constraint string is sufficient to indicate register usage (e.g.,
  @code{"a"} for
! the @code{eax} register).  But, more generally, the compiler needs an explicit
  identification of the registers that are used by the Inline Assembly
  statements.
  
  Using a register that the compiler doesn’t know about
! could be a side effect of an instruction (like @code{mull}, which
! stores its result into both @code{eax} and @code{edx}).
! It can also arise from explicit register usage within your
  assembly code; for example:
  
  @quotation
*************** Asm ("movl %0, %%ebx" & LF & HT &
*** 29022,29031 ****
  @end quotation
  
  where the compiler (since it does not analyze the @code{Asm} template string)
! does not know you are using the ebx register.
  
  In such cases you need to supply the @code{Clobber} parameter to @code{Asm},
! to identify the registers that will be used by your assembly code:
  
  @quotation
  
--- 29274,29283 ----
  @end quotation
  
  where the compiler (since it does not analyze the @code{Asm} template string)
! does not know you are using the @code{ebx} register.
  
  In such cases you need to supply the @code{Clobber} parameter to @code{Asm},
! to identify the registers used by your assembly code:
  
  @quotation
  
*************** Asm ("movl %0, %%ebx" & LF & HT &
*** 29039,29047 ****
  @end quotation
  
  The Clobber parameter is a static string expression specifying the
! register(s) you are using.  Note that register names are `not' prefixed
! by a percent sign. Also, if more than one register is used then their names
! are separated by commas; e.g., @code{"eax, ebx"}
  
  The @code{Clobber} parameter has several additional uses:
  
--- 29291,29299 ----
  @end quotation
  
  The Clobber parameter is a static string expression specifying the
! register(s) you are using.  Note that register names are `not'
! prefixed by a percent sign. Also, if more than one register is used,
! you separate their names by commas; e.g., @code{"eax, ebx"}
  
  The @code{Clobber} parameter has several additional uses:
  
*************** Use ‘register’ name @code{memory} if
*** 29056,29062 ****
  @end itemize
  
  @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id9}@anchor{246}@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{247}
  @subsection The @code{Volatile} Parameter
  
  
--- 29308,29314 ----
  @end itemize
  
  @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id9}@anchor{24b}@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{24c}
  @subsection The @code{Volatile} Parameter
  
  
*************** unwanted effects.  For example, when an
*** 29067,29073 ****
  variable is inside a loop, the compiler might move the loading of the input
  variable outside the loop, regarding it as a one-time initialization.
  
! If this effect is not desired, you can disable such optimizations by setting
  the @code{Volatile} parameter to @code{True}; for example:
  
  @quotation
--- 29319,29325 ----
  variable is inside a loop, the compiler might move the loading of the input
  variable outside the loop, regarding it as a one-time initialization.
  
! If you don’t want this to happen, you can disable such optimizations by setting
  the @code{Volatile} parameter to @code{True}; for example:
  
  @quotation
*************** By default, @code{Volatile} is set to @c
*** 29086,29098 ****
  @code{Outputs} parameter.
  
  Although setting @code{Volatile} to @code{True} prevents unwanted
! optimizations, it will also disable other optimizations that might be
  important for efficiency. In general, you should set @code{Volatile}
  to @code{True} only if the compiler’s optimizations have created
  problems.
  
  @node GNU Free Documentation License,Index,Inline Assembler,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{248}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{249}
  @chapter GNU Free Documentation License
  
  
--- 29338,29350 ----
  @code{Outputs} parameter.
  
  Although setting @code{Volatile} to @code{True} prevents unwanted
! optimizations, it also disables other optimizations that might be
  important for efficiency. In general, you should set @code{Volatile}
  to @code{True} only if the compiler’s optimizations have created
  problems.
  
  @node GNU Free Documentation License,Index,Inline Assembler,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{24d}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{24e}
  @chapter GNU Free Documentation License
  
  
*************** to permit their use in free software.
*** 29580,29587 ****
  
  @printindex ge
  
  @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
- @anchor{d1}@w{                              }
  
  @c %**end of body
  @bye
--- 29832,29839 ----
  
  @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-14.2.0/gcc/ada/gnatbind.adb gcc-15.1.0/gcc/ada/gnatbind.adb
*** gcc-14.2.0/gcc/ada/gnatbind.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatbind.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatbind.ads gcc-15.1.0/gcc/ada/gnatbind.ads
*** gcc-14.2.0/gcc/ada/gnatbind.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatbind.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatchop.adb gcc-15.1.0/gcc/ada/gnatchop.adb
*** gcc-14.2.0/gcc/ada/gnatchop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatchop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnatchop is
*** 984,990 ****
        Read_Ptr    : File_Offset := 1;
  
     begin
- 
        loop
           This_Read := Read (FD,
             A => Buffer (Read_Ptr)'Address,
--- 984,989 ----
*************** procedure Gnatchop is
*** 1724,1730 ****
        end;
     end Write_Unit;
  
!       procedure Check_Version_And_Help is new Check_Version_And_Help_G (Usage);
  
  --  Start of processing for gnatchop
  
--- 1723,1729 ----
        end;
     end Write_Unit;
  
!    procedure Check_Version_And_Help is new Check_Version_And_Help_G (Usage);
  
  --  Start of processing for gnatchop
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatclean.adb gcc-15.1.0/gcc/ada/gnatclean.adb
*** gcc-14.2.0/gcc/ada/gnatclean.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatclean.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatcmd.adb gcc-15.1.0/gcc/ada/gnatcmd.adb
*** gcc-14.2.0/gcc/ada/gnatcmd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatcmd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure GNATCmd is
*** 278,284 ****
  --  Start of processing for GNATCmd
  
  begin
!    --  All output from GNATCmd is debugging or error output: send to stderr
  
     Set_Standard_Error;
  
--- 278,285 ----
  --  Start of processing for GNATCmd
  
  begin
!    --  Almost all output from GNATCmd is debugging or error output: send to
!    --  stderr.
  
     Set_Standard_Error;
  
*************** begin
*** 349,354 ****
--- 350,356 ----
           elsif Command_Arg <= Argument_Count
             and then Argument (Command_Arg) = Ada_Help_Switch
           then
+             Set_Standard_Output;
              Usage;
              Exit_Program (E_Success);
  
*************** begin
*** 364,369 ****
--- 366,372 ----
  
           --  Add the following so that output is consistent with or without the
           --  --help flag.
+          Set_Standard_Output;
           Write_Eol;
           Write_Line ("Report bugs to report@adacore.com");
           return;
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatcmd.ads gcc-15.1.0/gcc/ada/gnatcmd.ads
*** gcc-14.2.0/gcc/ada/gnatcmd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatcmd.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatdll.adb gcc-15.1.0/gcc/ada/gnatdll.adb
*** gcc-14.2.0/gcc/ada/gnatdll.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatdll.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnatdll is
*** 134,143 ****
        P ("   -l file       File contains a list-of-files to be added to "
           & "the library");
        P ("   -e file       Definition file containing exports");
!       P ("   -d file       Put objects in the relocatable dynamic "
           & "library <file>");
-       P ("   -b addr       Set base address for the relocatable DLL");
-       P ("                 default address is " & Default_DLL_Address);
        P ("   -a[addr]      Build non-relocatable DLL at address <addr>");
        P ("                 if <addr> is not specified use "
           & Default_DLL_Address);
--- 134,141 ----
        P ("   -l file       File contains a list-of-files to be added to "
           & "the library");
        P ("   -e file       Definition file containing exports");
!       P ("   -d file       Put objects in the dynamic "
           & "library <file>");
        P ("   -a[addr]      Build non-relocatable DLL at address <addr>");
        P ("                 if <addr> is not specified use "
           & Default_DLL_Address);
*************** procedure Gnatdll is
*** 315,324 ****
  
                 Must_Build_Relocatable := False;
  
-             when 'b' =>
-                DLL_Address := To_Unbounded_String (Parameter);
-                Must_Build_Relocatable := True;
- 
              when 'e' =>
                 Def_Filename := To_Unbounded_String (Parameter);
  
--- 313,318 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatkr.adb gcc-15.1.0/gcc/ada/gnatkr.adb
*** gcc-14.2.0/gcc/ada/gnatkr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatkr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatkr.ads gcc-15.1.0/gcc/ada/gnatkr.ads
*** gcc-14.2.0/gcc/ada/gnatkr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatkr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatlink.adb gcc-15.1.0/gcc/ada/gnatlink.adb
*** gcc-14.2.0/gcc/ada/gnatlink.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatlink.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Types;
*** 42,47 ****
--- 42,48 ----
  
  with Ada.Command_Line; use Ada.Command_Line;
  with Ada.Exceptions;   use Ada.Exceptions;
+ with Ada.Strings.Fixed;
  
  with System.OS_Lib; use System.OS_Lib;
  with System.CRTL;
*************** procedure Gnatlink is
*** 1223,1233 ****
                    begin
                       Path (1 .. File_Path'Length) := File_Path.all;
  
!                   --  To find the location of the shared version of libgcc, we
!                   --  look for "gcc-lib" in the path of the library. However,
!                   --  this subdirectory is no longer present in recent versions
!                   --  of GCC. So, we look for the last subdirectory "lib" in
!                   --  the path.
  
                       GCC_Index := Index (Path (1 .. Path_Last), "gcc-lib");
  
--- 1224,1234 ----
                    begin
                       Path (1 .. File_Path'Length) := File_Path.all;
  
!                      --  To find the location of the shared version of libgcc,
!                      --  we look for "gcc-lib" in the path of the
!                      --  library. However, this subdirectory is no longer
!                      --  present in recent versions of GCC. So, we look for the
!                      --  last subdirectory "lib" in the path.
  
                       GCC_Index := Index (Path (1 .. Path_Last), "gcc-lib");
  
*************** procedure Gnatlink is
*** 1258,1272 ****
                                  Value (Libgcc_Subdir_Ptr);
  
                             begin
!                               Path (GCC_Index + 1 .. GCC_Index + Subdir'Length)
!                                 := Subdir;
                                GCC_Index := GCC_Index + Subdir'Length;
                             end;
                          end if;
                       end if;
  
!                   --  Look for an eventual run_path_option in
!                   --  the linker switches.
  
                       if Separate_Run_Path_Options then
                          Linker_Options.Increment_Last;
--- 1259,1275 ----
                                  Value (Libgcc_Subdir_Ptr);
  
                             begin
!                               Path
!                                 (GCC_Index + 1
!                                  ..
!                                  GCC_Index + Subdir'Length) := Subdir;
                                GCC_Index := GCC_Index + Subdir'Length;
                             end;
                          end if;
                       end if;
  
!                      --  Look for an eventual run_path_option in
!                      --  the linker switches.
  
                       if Separate_Run_Path_Options then
                          Linker_Options.Increment_Last;
*************** begin
*** 1697,1718 ****
  
        procedure Check_File_Name (S : String) is
        begin
!          for J in 1 .. FN'Length - (S'Length - 1) loop
!             if FN (J .. J + (S'Length - 1)) = S then
!                Error_Msg
!                  ("warning: executable file name """ & Output_File_Name.all
!                   & """ contains substring """ & S & '"');
!                Error_Msg
!                  ("admin privileges may be required to run this file");
!             end if;
!          end loop;
        end Check_File_Name;
  
     --  Start of processing for Bad_File_Names_On_Windows
  
     begin
        for J in FN'Range loop
!             FN (J) := Csets.Fold_Lower (FN (J));
        end loop;
  
        --  For now we detect Windows by its executable suffix of .exe
--- 1700,1719 ----
  
        procedure Check_File_Name (S : String) is
        begin
!          if Ada.Strings.Fixed.Index (FN, S) /= 0 then
!             Error_Msg
!               ("warning: executable file name """ & Output_File_Name.all
!                & """ contains substring """ & S & '"');
!             Error_Msg
!               ("admin privileges may be required to run this file");
!          end if;
        end Check_File_Name;
  
     --  Start of processing for Bad_File_Names_On_Windows
  
     begin
        for J in FN'Range loop
!          FN (J) := Csets.Fold_Lower (FN (J));
        end loop;
  
        --  For now we detect Windows by its executable suffix of .exe
*************** begin
*** 1886,1891 ****
--- 1887,1910 ----
           Shared_Libgcc_Seen : Boolean := False;
           Static_Libgcc_Seen : Boolean := False;
  
+          function Is_Prefix
+            (Complete_String : String; Prefix : String) return Boolean;
+          --  Returns whether Prefix is a prefix of Complete_String
+ 
+          ---------------
+          -- Is_Prefix --
+          ---------------
+ 
+          function Is_Prefix
+            (Complete_String : String; Prefix : String) return Boolean
+          is
+             S : String renames Complete_String;
+             P : String renames Prefix;
+          begin
+             return P'Length <= S'Length
+               and then S (S'First .. S'First + P'Length - 1) = P;
+          end Is_Prefix;
+ 
        begin
           J := Linker_Options.First;
           while J <= Linker_Options.Last loop
*************** begin
*** 1937,1949 ****
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if (Linker_Options.Table (J)'Length > 17
!                 and then Linker_Options.Table (J) (1 .. 17) =
!                   "-Xlinker --stack=")
!               or else
!                 (Linker_Options.Table (J)'Length > 12
!                  and then Linker_Options.Table (J) (1 .. 12) =
!                        "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
--- 1956,1967 ----
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if Is_Prefix
!                  (Complete_String => Linker_Options.Table (J).all,
!                   Prefix => "-Xlinker --stack=")
!               or else Is_Prefix
!                         (Complete_String => Linker_Options.Table (J).all,
!                          Prefix => "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatlink.ads gcc-15.1.0/gcc/ada/gnatlink.ads
*** gcc-14.2.0/gcc/ada/gnatlink.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatlink.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatls.adb gcc-15.1.0/gcc/ada/gnatls.adb
*** gcc-14.2.0/gcc/ada/gnatls.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatls.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnatls is
*** 1573,1579 ****
           Last  : Natural;
  
        begin
- 
           if Is_Absolute_Path (Path) then
              if Is_Directory (Path) then
                 return new String'(Path);
--- 1573,1578 ----
*************** procedure Gnatls is
*** 1673,1681 ****
        end if;
  
        if Lib_Path /= null then
!          Osint.Fail ("RTS path not valid: missing adainclude directory");
        elsif Src_Path /= null then
!          Osint.Fail ("RTS path not valid: missing adalib directory");
        end if;
  
        --  Try to find the RTS on the project path. First setup the project path
--- 1672,1684 ----
        end if;
  
        if Lib_Path /= null then
!          Osint.Fail
!            ("RTS path """ & Name
!             & """ not valid: missing adainclude directory");
        elsif Src_Path /= null then
!          Osint.Fail
!            ("RTS path """ & Name
!             & """ not valid: missing adalib directory");
        end if;
  
        --  Try to find the RTS on the project path. First setup the project path
*************** procedure Gnatls is
*** 1710,1716 ****
        end if;
  
        Osint.Fail
!         ("RTS path not valid: missing adainclude and adalib directories");
     end Search_RTS;
  
     -------------------
--- 1713,1720 ----
        end if;
  
        Osint.Fail
!         ("RTS path """ & Name
!           & """ not valid: missing adainclude and adalib directories");
     end Search_RTS;
  
     -------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatls.ads gcc-15.1.0/gcc/ada/gnatls.ads
*** gcc-14.2.0/gcc/ada/gnatls.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatls.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatmake.adb gcc-15.1.0/gcc/ada/gnatmake.adb
*** gcc-14.2.0/gcc/ada/gnatmake.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatmake.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatmake.ads gcc-15.1.0/gcc/ada/gnatmake.ads
*** gcc-14.2.0/gcc/ada/gnatmake.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatmake.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatname.adb gcc-15.1.0/gcc/ada/gnatname.adb
*** gcc-14.2.0/gcc/ada/gnatname.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatname.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatname.ads gcc-15.1.0/gcc/ada/gnatname.ads
*** gcc-14.2.0/gcc/ada/gnatname.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatname.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatprep.adb gcc-15.1.0/gcc/ada/gnatprep.adb
*** gcc-14.2.0/gcc/ada/gnatprep.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatprep.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatprep.ads gcc-15.1.0/gcc/ada/gnatprep.ads
*** gcc-14.2.0/gcc/ada/gnatprep.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatprep.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatvsn.adb gcc-15.1.0/gcc/ada/gnatvsn.adb
*** gcc-14.2.0/gcc/ada/gnatvsn.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatvsn.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Gnatvsn is
*** 41,50 ****
     function Gnat_Free_Software return String is
     begin
        return
!         "This is free software; see the source for copying conditions." &
          ASCII.LF &
!         "There is NO warranty; not even for MERCHANTABILITY or FITNESS" &
!         " FOR A PARTICULAR PURPOSE.";
     end Gnat_Free_Software;
  
     type char_array is array (Natural range <>) of aliased Character;
--- 41,51 ----
     function Gnat_Free_Software return String is
     begin
        return
!         "This is free software; see the source for copying conditions.  " &
!         "There is NO" &
          ASCII.LF &
!         "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " &
!         "PURPOSE.";
     end Gnat_Free_Software;
  
     type char_array is array (Natural range <>) of aliased Character;
diff -Nrcpad gcc-14.2.0/gcc/ada/gnatvsn.ads gcc-15.1.0/gcc/ada/gnatvsn.ads
*** gcc-14.2.0/gcc/ada/gnatvsn.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gnatvsn.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gnatvsn is
*** 32,45 ****
     --  Static string identifying this version, that can be used as an argument
     --  to e.g. pragma Ident.
  
!    Library_Version : constant String := "14";
     --  Library version. It needs to be updated whenever the major version
     --  number is changed.
     --
     --  Note: Makefile.in uses the library version string to construct the
     --  soname value.
  
!    Current_Year : constant String := "2024";
     --  Used in printing copyright messages
  
     Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;
--- 32,45 ----
     --  Static string identifying this version, that can be used as an argument
     --  to e.g. pragma Ident.
  
!    Library_Version : constant String := "15";
     --  Library version. It needs to be updated whenever the major version
     --  number is changed.
     --
     --  Note: Makefile.in uses the library version string to construct the
     --  soname value.
  
!    Current_Year : constant String := "2025";
     --  Used in printing copyright messages
  
     Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;
*************** package Gnatvsn is
*** 83,89 ****
     --  space to store any possible version string value for checks. This
     --  value should never be decreased in the future, but it would be
     --  OK to increase it if absolutely necessary. If it is increased,
!    --  be sure to increase GNAT.Compiler.Version.Ver_Len_Max as well.
  
     Ver_Prefix : constant String := "GNAT Version: ";
     --  Prefix generated by binder. If it is changed, be sure to change
--- 83,90 ----
     --  space to store any possible version string value for checks. This
     --  value should never be decreased in the future, but it would be
     --  OK to increase it if absolutely necessary. If it is increased,
!    --  be sure to increase GNAT.Compiler.Version.Ver_Len_Max, and to update
!    --  the VER_LEN_MAX define in version.c as well.
  
     Ver_Prefix : constant String := "GNAT Version: ";
     --  Prefix generated by binder. If it is changed, be sure to change
diff -Nrcpad gcc-14.2.0/gcc/ada/gprep.adb gcc-15.1.0/gcc/ada/gprep.adb
*** gcc-14.2.0/gcc/ada/gprep.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gprep.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GPrep is
*** 552,558 ****
  
              Errutil.Finalize (Source_Type => "input");
  
!             OS_Exit (0);
  
           --  Otherwise, close the output file, and we are done
  
--- 552,558 ----
  
              Errutil.Finalize (Source_Type => "input");
  
!             OS_Exit (1);
  
           --  Otherwise, close the output file, and we are done
  
diff -Nrcpad gcc-14.2.0/gcc/ada/gprep.ads gcc-15.1.0/gcc/ada/gprep.ads
*** gcc-14.2.0/gcc/ada/gprep.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gprep.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/gsocket.h gcc-15.1.0/gcc/ada/gsocket.h
*** gcc-14.2.0/gcc/ada/gsocket.h	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/gsocket.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *         Copyright (C) 2004-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *         Copyright (C) 2004-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/hostparm.ads gcc-15.1.0/gcc/ada/hostparm.ads
*** gcc-14.2.0/gcc/ada/hostparm.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/hostparm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Hostparm is
*** 48,54 ****
     --  have a valid Column_Number equal to Max_Line_Length to represent
     --  the location of a "line too long" error.
     --
!    --  200 is the minimum value required (RM 2.2(15)). The value set here
     --  can be reduced by the explicit use of the -gnatyM style switch.
  
     Max_Name_Length : constant := 1024;
--- 48,54 ----
     --  have a valid Column_Number equal to Max_Line_Length to represent
     --  the location of a "line too long" error.
     --
!    --  200 is the minimum value required (RM 2.2(14)). The value set here
     --  can be reduced by the explicit use of the -gnatyM style switch.
  
     Max_Name_Length : constant := 1024;
diff -Nrcpad gcc-14.2.0/gcc/ada/impunit.adb gcc-15.1.0/gcc/ada/impunit.adb
*** gcc-14.2.0/gcc/ada/impunit.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/impunit.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2000-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2000-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Impunit is
*** 360,366 ****
      ("i-java  ", F),  -- Interfaces.Java
      ("i-javjni", F),  -- Interfaces.Java.JNI
      ("i-pacdec", F),  -- Interfaces.Packed_Decimal
-     ("i-vxinco", F),  -- Interfaces.VxWorks.Int_Connection
      ("i-vxwoio", F),  -- Interfaces.VxWorks.IO
      ("i-vxwork", F),  -- Interfaces.VxWorks
  
--- 360,365 ----
*************** package body Impunit is
*** 650,656 ****
  
     type Aunit_Record is record
        Fname : String (1 .. 6);
!       Aname : String_Ptr_Const;
     end record;
  
     --  Array of alternative unit names
--- 649,655 ----
  
     type Aunit_Record is record
        Fname : String (1 .. 6);
!       Aname : not null String_Ptr_Const;
     end record;
  
     --  Array of alternative unit names
diff -Nrcpad gcc-14.2.0/gcc/ada/impunit.ads gcc-15.1.0/gcc/ada/impunit.ads
*** gcc-14.2.0/gcc/ada/impunit.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/impunit.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/indepsw-aix.adb gcc-15.1.0/gcc/ada/indepsw-aix.adb
*** gcc-14.2.0/gcc/ada/indepsw-aix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/indepsw-aix.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                              (AIX version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (AIX version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/indepsw-darwin.adb gcc-15.1.0/gcc/ada/indepsw-darwin.adb
*** gcc-14.2.0/gcc/ada/indepsw-darwin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/indepsw-darwin.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                            (Darwin version)                              --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Darwin version)                              --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/indepsw-gnu.adb gcc-15.1.0/gcc/ada/indepsw-gnu.adb
*** gcc-14.2.0/gcc/ada/indepsw-gnu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/indepsw-gnu.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                              (GNU version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (GNU version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/indepsw.adb gcc-15.1.0/gcc/ada/indepsw.adb
*** gcc-14.2.0/gcc/ada/indepsw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/indepsw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/indepsw.ads gcc-15.1.0/gcc/ada/indepsw.ads
*** gcc-14.2.0/gcc/ada/indepsw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/indepsw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/init.c gcc-15.1.0/gcc/ada/init.c
*** gcc-14.2.0/gcc/ada/init.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/init.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern struct Exception_Data numeric_err
*** 88,93 ****
--- 88,101 ----
  extern struct Exception_Data program_error;
  extern struct Exception_Data storage_error;
  
+ /* Exception IDs for CHERI Ada exceptions (see Interfaces.CHERI.Exceptions) */
+ #ifdef __CHERI__
+ extern Exception_Id capability_bound_error_id;
+ extern Exception_Id capability_permission_error_id;
+ extern Exception_Id capability_sealed_error_id;
+ extern Exception_Id capability_tag_error_id;
+ #endif
+ 
  /* For the Cert run time we use the regular raise exception routine because
     __gnat_raise_from_signal_handler is not available.  */
  #ifdef CERT
*************** int   __gl_leap_seconds_support
*** 122,127 ****
--- 130,136 ----
  int   __gl_canonical_streams             = 0;
  char *__gl_bind_env_addr                 = NULL;
  int   __gl_xdr_stream                    = 0;
+ int   __gl_interrupts_default_to_system  = 0;
  
  /* This value is not used anymore, but kept for bootstrapping purpose.  */
  int   __gl_zero_cost_exceptions          = 0;
*************** int __gnat_inside_elab_final_code = 0;
*** 148,167 ****
  char __gnat_get_interrupt_state (int);
  
  /* This routine is called from the runtime as needed to determine the state
!    of an interrupt, as set by an Interrupt_State pragma appearing anywhere
!    in the current partition.  The input argument is the interrupt number,
!    and the result is one of the following:
  
!        'n'   this interrupt not set by any Interrupt_State pragma
!        'u'   Interrupt_State pragma set state to User
!        'r'   Interrupt_State pragma set state to Runtime
!        's'   Interrupt_State pragma set state to System  */
  
  char
  __gnat_get_interrupt_state (int intrup)
  {
    if (intrup >= __gl_num_interrupt_states)
!     return 'n';
    else
      return __gl_interrupt_states [intrup];
  }
--- 157,181 ----
  char __gnat_get_interrupt_state (int);
  
  /* This routine is called from the runtime as needed to determine the state
!    of an interrupt, as set by an Interrupt_State pragma or an
!    Interrupts_System_By_Default pragma appearing anywhere in the current
!    partition.  The input argument is the interrupt number, and the result
!    is one of the following:
  
!        'u'   if Interrupt_State pragma set to User;
!        'r'   if Interrupt_State pragma set to Runtime;
!        's'   if Interrupt_State pragma set to System or
!              Interrupts_System_By_Default in effect; otherwise
!        'n'   (there is no Interrupt_State pragma and no request for a default).
! 
!    See pragma Interrupt_State documentation for a description
!    of the effect and meaning of states User, Runtime, and System.  */
  
  char
  __gnat_get_interrupt_state (int intrup)
  {
    if (intrup >= __gl_num_interrupt_states)
!     return (__gl_interrupts_default_to_system ? 's' : 'n');
    else
      return __gl_interrupt_states [intrup];
  }
*************** __gnat_is_vms_v7 (void)
*** 1672,1681 ****
--- 1686,1701 ----
  #include <sys/ucontext.h>
  #include <unistd.h>
  
+ #ifdef __CHERI__
  static void
  __gnat_error_handler (int sig,
+ 		      siginfo_t *si,
+ 		      void *ucontext ATTRIBUTE_UNUSED)
+ #else
+ __gnat_error_handler (int sig,
  		      siginfo_t *si ATTRIBUTE_UNUSED,
  		      void *ucontext ATTRIBUTE_UNUSED)
+ #endif /* __CHERI__ */
  {
    struct Exception_Data *exception;
    const char *msg;
*************** __gnat_error_handler (int sig,
*** 1702,1707 ****
--- 1722,1788 ----
        msg = "SIGBUS: possible stack overflow";
        break;
  
+ #ifdef __CHERI__
+     case SIGPROT:
+       switch (si->si_code)
+         {
+         case PROT_CHERI_TAG:
+           exception = capability_tag_error_id;
+           msg = "Capability tag fault";
+           break;
+ 
+         case PROT_CHERI_SEALED:
+           exception = capability_sealed_error_id;
+           msg = "Capability sealed fault";
+           break;
+ 
+         case PROT_CHERI_UNALIGNED_BASE:
+           exception = &storage_error;
+           msg = "SIGPROT: unaligned base address";
+           break;
+ 
+         case PROT_CHERI_BOUNDS:
+           exception = capability_bound_error_id;
+           msg = "Capability bounds fault";
+           break;
+ 
+         case PROT_CHERI_IMPRECISE:
+           exception = capability_bound_error_id;
+           msg = "Imprecise capability bounds fault";
+           break;
+ 
+         case PROT_CHERI_TYPE:
+           exception = capability_permission_error_id;
+           msg = "Capability type mismatch fault";
+           break;
+ 
+         case PROT_CHERI_PERM:
+           exception = capability_permission_error_id;
+           msg = "Capability permission fault";
+           break;
+ 
+         case PROT_CHERI_STORELOCAL:
+           exception = capability_permission_error_id;
+           msg = "Capability store-local fault";
+           break;
+ 
+         case PROT_CHERI_CINVOKE:
+           exception = capability_permission_error_id;
+           msg = "CInvoke fault";
+           break;
+ 
+         case PROT_CHERI_SYSREG:
+           exception = capability_permission_error_id;
+           msg = "Capability system register fault";
+           break;
+ 
+         default:
+           exception = &program_error;
+           msg = "SIGPROT: unhandled signal code";
+         }
+       break;
+ #endif /* __CHERI__ */
+ 
      default:
        exception = &program_error;
        msg = "unhandled signal";
*************** __gnat_install_handler (void)
*** 1729,1734 ****
--- 1810,1819 ----
    (void) sigaction (SIGSEGV, &act, NULL);
    (void) sigaction (SIGBUS,  &act, NULL);
  
+ #ifdef __CHERI__
+   (void) sigaction (SIGPROT, &act, NULL);
+ #endif
+ 
    __gnat_handler_installed = 1;
  }
  
*************** __gnat_install_handler ()
*** 2776,2785 ****
--- 2861,2876 ----
  void
  __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext)
  {
+ #if defined(__arm__)
    mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
  
    /* ARM Bump has to be an even number because of odd/even architecture.  */
    ((mcontext_t *) mcontext)->arm_pc += 2;
+ #endif
+ 
+   /* Other ports, based on dwarf2 unwinding, typically leverage
+      kernel CFI coordinated with libgcc's explicit support for signal
+      frames.  */
  }
  
  static void
*************** static void
*** 2819,2825 ****
  __gnat_error_handler (int sig, siginfo_t *si, void *ucontext)
  {
    __gnat_adjust_context_for_raise (sig, ucontext);
- 
    __gnat_sigtramp (sig, (void *) si, (void *) ucontext,
  		   (__sigtramphandler_t *)&__gnat_map_signal);
  }
--- 2910,2915 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/initialize.c gcc-15.1.0/gcc/ada/initialize.c
*** gcc-14.2.0/gcc/ada/initialize.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/initialize.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/inline.adb gcc-15.1.0/gcc/ada/inline.adb
*** gcc-14.2.0/gcc/ada/inline.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/inline.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Inline is
*** 317,322 ****
--- 317,323 ----
     --    Global
     --    Depends
     --    Exceptional_Cases
+    --    Exit_Cases
     --    Postcondition
     --    Precondition
     --    Refined_Global
*************** package body Inline is
*** 498,504 ****
           --  package of the subprogram to find more calls to be inlined.
  
           if Comp = Cunit (Main_Unit)
!            or else Comp = Library_Unit (Cunit (Main_Unit))
           then
              Add_Call (E);
              return Inline_Package;
--- 499,505 ----
           --  package of the subprogram to find more calls to be inlined.
  
           if Comp = Cunit (Main_Unit)
!            or else Comp = Other_Comp_Unit (Cunit (Main_Unit))
           then
              Add_Call (E);
              return Inline_Package;
*************** package body Inline is
*** 845,863 ****
     ------------------------
  
     procedure Add_Scope_To_Clean (Scop : Entity_Id) is
-       Elmt : Elmt_Id;
- 
     begin
!       Elmt := First_Elmt (To_Clean);
!       while Present (Elmt) loop
!          if Node (Elmt) = Scop then
!             return;
!          end if;
! 
!          Next_Elmt (Elmt);
!       end loop;
! 
!       Append_Elmt (Scop, To_Clean);
     end Add_Scope_To_Clean;
  
     --------------
--- 846,853 ----
     ------------------------
  
     procedure Add_Scope_To_Clean (Scop : Entity_Id) is
     begin
!       Append_Unique_Elmt (Scop, To_Clean);
     end Add_Scope_To_Clean;
  
     --------------
*************** package body Inline is
*** 915,921 ****
  
     procedure Analyze_Inlined_Bodies is
        Comp_Unit : Node_Id;
!       J         : Int;
        Pack      : Entity_Id;
        Subp      : Subp_Index;
        S         : Succ_Index;
--- 905,911 ----
  
     procedure Analyze_Inlined_Bodies is
        Comp_Unit : Node_Id;
!       J         : Nat;
        Pack      : Entity_Id;
        Subp      : Subp_Index;
        S         : Succ_Index;
*************** package body Inline is
*** 1101,1119 ****
        --  conflict with subsequent inlinings, so that it is unsafe to try to
        --  inline in such a case.
  
-       function Has_Single_Return_In_GNATprove_Mode return Boolean;
-       --  This function is called only in GNATprove mode, and it returns
-       --  True if the subprogram has no return statement or a single return
-       --  statement as last statement. It returns False for subprogram with
-       --  a single return as last statement inside one or more blocks, as
-       --  inlining would generate gotos in that case as well (although the
-       --  goto is useless in that case).
- 
        function Uses_Secondary_Stack (Bod : Node_Id) return Boolean;
        --  If the body of the subprogram includes a call that returns an
        --  unconstrained type, the secondary stack is involved, and it is
        --  not worth inlining.
- 
        -------------------------
        -- Has_Extended_Return --
        -------------------------
--- 1091,1100 ----
*************** package body Inline is
*** 1184,1247 ****
           return False;
        end Has_Pending_Instantiation;
  
-       -----------------------------------------
-       -- Has_Single_Return_In_GNATprove_Mode --
-       -----------------------------------------
- 
-       function Has_Single_Return_In_GNATprove_Mode return Boolean is
-          Body_To_Inline : constant Node_Id := N;
-          Last_Statement : Node_Id := Empty;
- 
-          function Check_Return (N : Node_Id) return Traverse_Result;
-          --  Returns OK on node N if this is not a return statement different
-          --  from the last statement in the subprogram.
- 
-          ------------------
-          -- Check_Return --
-          ------------------
- 
-          function Check_Return (N : Node_Id) return Traverse_Result is
-          begin
-             case Nkind (N) is
-                when N_Extended_Return_Statement
-                   | N_Simple_Return_Statement
-                =>
-                   if N = Last_Statement then
-                      return OK;
-                   else
-                      return Abandon;
-                   end if;
- 
-                --  Skip locally declared subprogram bodies inside the body to
-                --  inline, as the return statements inside those do not count.
- 
-                when N_Subprogram_Body =>
-                   if N = Body_To_Inline then
-                      return OK;
-                   else
-                      return Skip;
-                   end if;
- 
-                when others =>
-                   return OK;
-             end case;
-          end Check_Return;
- 
-          function Check_All_Returns is new Traverse_Func (Check_Return);
- 
-       --  Start of processing for Has_Single_Return_In_GNATprove_Mode
- 
-       begin
-          --  Retrieve the last statement
- 
-          Last_Statement := Last (Statements (Handled_Statement_Sequence (N)));
- 
-          --  Check that the last statement is the only possible return
-          --  statement in the subprogram.
- 
-          return Check_All_Returns (N) = OK;
-       end Has_Single_Return_In_GNATprove_Mode;
- 
        --------------------------
        -- Uses_Secondary_Stack --
        --------------------------
--- 1165,1170 ----
*************** package body Inline is
*** 1286,1301 ****
        then
           return;
  
-       --  Subprograms that have return statements in the middle of the body are
-       --  inlined with gotos. GNATprove does not currently support gotos, so
-       --  we prevent such inlining.
- 
-       elsif GNATprove_Mode
-         and then not Has_Single_Return_In_GNATprove_Mode
-       then
-          Cannot_Inline ("cannot inline & (multiple returns)?", N, Spec_Id);
-          return;
- 
        --  Functions that return controlled types cannot currently be inlined
        --  because they require secondary stack handling; controlled actions
        --  may also interfere in complex ways with inlining.
--- 1209,1214 ----
*************** package body Inline is
*** 1457,1469 ****
     -------------------------------------------
  
     function Call_Can_Be_Inlined_In_GNATprove_Mode
!     (N    : Node_Id;
!      Subp : Entity_Id) return Boolean
     is
        F : Entity_Id;
        A : Node_Id;
  
     begin
        F := First_Formal (Subp);
        A := First_Actual (N);
        while Present (F) loop
--- 1370,1419 ----
     -------------------------------------------
  
     function Call_Can_Be_Inlined_In_GNATprove_Mode
!      (N    : Node_Id;
!       Subp : Entity_Id) return Boolean
     is
+       function Has_Dereference (N : Node_Id) return Boolean;
+       --  Return whether N contains an explicit dereference
+ 
+       ---------------------
+       -- Has_Dereference --
+       ---------------------
+ 
+       function Has_Dereference (N : Node_Id) return Boolean is
+ 
+          function Process (N : Node_Id) return Traverse_Result;
+          --  Process one node in search for dereference
+ 
+          -------------
+          -- Process --
+          -------------
+ 
+          function Process (N : Node_Id) return Traverse_Result is
+          begin
+             if Nkind (N) = N_Explicit_Dereference then
+                return Abandon;
+             else
+                return OK;
+             end if;
+          end Process;
+ 
+          function Traverse is new Traverse_Func (Process);
+          --  Traverse tree to look for dereference
+ 
+       begin
+          return Traverse (N) = Abandon;
+       end Has_Dereference;
+ 
+       --  Local variables
+ 
        F : Entity_Id;
        A : Node_Id;
  
     begin
+       --  Check if inlining may lead to missing a check on type conversion of
+       --  input parameters otherwise.
+ 
        F := First_Formal (Subp);
        A := First_Actual (N);
        while Present (F) loop
*************** package body Inline is
*** 1480,1485 ****
--- 1430,1456 ----
           Next_Actual (A);
        end loop;
  
+       --  Check if inlining may lead to introducing temporaries of access type,
+       --  which can lead to missing checks for memory leaks. This can only
+       --  come from an (IN-)OUT parameter transformed into a renaming by SPARK
+       --  expansion, whose side-effects are removed, and a dereference in the
+       --  corresponding actual. If the formal itself is of a deep type (it has
+       --  access subcomponents), the subprogram already cannot be inlined in
+       --  GNATprove mode.
+ 
+       F := First_Formal (Subp);
+       A := First_Actual (N);
+       while Present (F) loop
+          if Ekind (F) /= E_In_Parameter
+            and then Has_Dereference (A)
+          then
+             return False;
+          end if;
+ 
+          Next_Formal (F);
+          Next_Actual (A);
+       end loop;
+ 
        return True;
     end Call_Can_Be_Inlined_In_GNATprove_Mode;
  
*************** package body Inline is
*** 1491,1508 ****
       (Spec_Id : Entity_Id;
        Body_Id : Entity_Id) return Boolean
     is
        function Has_Formal_Or_Result_Of_Deep_Type
          (Id : Entity_Id) return Boolean;
        --  Returns true if the subprogram has at least one formal parameter or
        --  a return type of a deep type: either an access type or a composite
        --  type containing an access type.
  
!       function Has_Formal_With_Discriminant_Dependent_Fields
          (Id : Entity_Id) return Boolean;
        --  Returns true if the subprogram has at least one formal parameter of
        --  an unconstrained record type with per-object constraints on component
        --  types.
  
        function Has_Skip_Proof_Annotation (Id : Entity_Id) return Boolean;
        --  Returns True if subprogram Id has an annotation Skip_Proof or
        --  Skip_Flow_And_Proof.
--- 1462,1493 ----
       (Spec_Id : Entity_Id;
        Body_Id : Entity_Id) return Boolean
     is
+       function Has_Constant_With_Address_Clause
+         (Body_Node : Node_Id)
+          return Boolean;
+       --  Returns true if the subprogram contains a declaration of a constant
+       --  with an address clause, which could become illegal in SPARK after
+       --  inlining, if the address clause mentions a constant view of a mutable
+       --  object at call site.
+ 
        function Has_Formal_Or_Result_Of_Deep_Type
          (Id : Entity_Id) return Boolean;
        --  Returns true if the subprogram has at least one formal parameter or
        --  a return type of a deep type: either an access type or a composite
        --  type containing an access type.
  
!       function Has_Formal_With_Per_Object_Constrained_Component
          (Id : Entity_Id) return Boolean;
        --  Returns true if the subprogram has at least one formal parameter of
        --  an unconstrained record type with per-object constraints on component
        --  types.
  
+       function Has_Hide_Unhide_Annotation
+         (Spec_Id, Body_Id : Entity_Id)
+          return Boolean;
+       --  Returns whether the subprogram has an annotation Hide_Info or
+       --  Unhide_Info on its spec or body.
+ 
        function Has_Skip_Proof_Annotation (Id : Entity_Id) return Boolean;
        --  Returns True if subprogram Id has an annotation Skip_Proof or
        --  Skip_Flow_And_Proof.
*************** package body Inline is
*** 1525,1530 ****
--- 1510,1579 ----
        --  knowledge of the SPARK boundary is needed to determine exactly
        --  traversal functions.
  
+       --------------------------------------
+       -- Has_Constant_With_Address_Clause --
+       --------------------------------------
+ 
+       function Has_Constant_With_Address_Clause
+         (Body_Node : Node_Id)
+          return Boolean
+       is
+          function Check_Constant_With_Addresss_Clause
+            (N : Node_Id)
+             return Traverse_Result;
+          --  Returns Abandon on node N if this is a declaration of a constant
+          --  object with an address clause.
+ 
+          -----------------------------------------
+          -- Check_Constant_With_Addresss_Clause --
+          -----------------------------------------
+ 
+          function Check_Constant_With_Addresss_Clause
+            (N : Node_Id)
+             return Traverse_Result
+          is
+          begin
+             case Nkind (N) is
+                when N_Object_Declaration =>
+                   declare
+                      Obj : constant Entity_Id := Defining_Entity (N);
+                   begin
+                      if Constant_Present (N)
+                        and then
+                          (Present (Address_Clause (Obj))
+                             or else Has_Aspect (Obj, Aspect_Address))
+                      then
+                         return Abandon;
+                      else
+                         return OK;
+                      end if;
+                   end;
+ 
+                --  Skip locally declared subprogram bodies inside the body to
+                --  inline, as the declarations inside those do not count.
+ 
+                when N_Subprogram_Body =>
+                   if N = Body_Node then
+                      return OK;
+                   else
+                      return Skip;
+                   end if;
+ 
+                when others =>
+                   return OK;
+             end case;
+          end Check_Constant_With_Addresss_Clause;
+ 
+          function Check_All_Constants_With_Address_Clause is new
+            Traverse_Func (Check_Constant_With_Addresss_Clause);
+ 
+       --  Start of processing for Has_Constant_With_Address_Clause
+ 
+       begin
+          return Check_All_Constants_With_Address_Clause
+            (Body_Node) = Abandon;
+       end Has_Constant_With_Address_Clause;
+ 
        ---------------------------------------
        -- Has_Formal_Or_Result_Of_Deep_Type --
        ---------------------------------------
*************** package body Inline is
*** 1637,1659 ****
           return False;
        end Has_Formal_Or_Result_Of_Deep_Type;
  
!       ---------------------------------------------------
!       -- Has_Formal_With_Discriminant_Dependent_Fields --
!       ---------------------------------------------------
  
!       function Has_Formal_With_Discriminant_Dependent_Fields
          (Id : Entity_Id) return Boolean
        is
!          function Has_Discriminant_Dependent_Component
             (Typ : Entity_Id) return Boolean;
           --  Determine whether unconstrained record type Typ has at least one
           --  component that depends on a discriminant.
  
           ------------------------------------------
!          -- Has_Discriminant_Dependent_Component --
           ------------------------------------------
  
!          function Has_Discriminant_Dependent_Component
             (Typ : Entity_Id) return Boolean
           is
              Comp : Entity_Id;
--- 1686,1708 ----
           return False;
        end Has_Formal_Or_Result_Of_Deep_Type;
  
!       ------------------------------------------------------
!       -- Has_Formal_With_Per_Object_Constrained_Component --
!       ------------------------------------------------------
  
!       function Has_Formal_With_Per_Object_Constrained_Component
          (Id : Entity_Id) return Boolean
        is
!          function Has_Per_Object_Constrained_Component
             (Typ : Entity_Id) return Boolean;
           --  Determine whether unconstrained record type Typ has at least one
           --  component that depends on a discriminant.
  
           ------------------------------------------
!          -- Has_Per_Object_Constrained_Component --
           ------------------------------------------
  
!          function Has_Per_Object_Constrained_Component
             (Typ : Entity_Id) return Boolean
           is
              Comp : Entity_Id;
*************** package body Inline is
*** 1664,1670 ****
  
              Comp := First_Component (Typ);
              while Present (Comp) loop
!                if Has_Discriminant_Dependent_Constraint (Comp) then
                    return True;
                 end if;
  
--- 1713,1719 ----
  
              Comp := First_Component (Typ);
              while Present (Comp) loop
!                if Has_Per_Object_Constraint (Comp) then
                    return True;
                 end if;
  
*************** package body Inline is
*** 1672,1678 ****
              end loop;
  
              return False;
!          end Has_Discriminant_Dependent_Component;
  
           --  Local variables
  
--- 1721,1727 ----
              end loop;
  
              return False;
!          end Has_Per_Object_Constrained_Component;
  
           --  Local variables
  
*************** package body Inline is
*** 1681,1687 ****
           Formal_Typ : Entity_Id;
  
        --  Start of processing for
!       --  Has_Formal_With_Discriminant_Dependent_Fields
  
        begin
           --  Inspect all parameters of the subprogram looking for a formal
--- 1730,1736 ----
           Formal_Typ : Entity_Id;
  
        --  Start of processing for
!       --  Has_Formal_With_Per_Object_Constrained_Component
  
        begin
           --  Inspect all parameters of the subprogram looking for a formal
*************** package body Inline is
*** 1694,1700 ****
  
              if Is_Record_Type (Formal_Typ)
                and then not Is_Constrained (Formal_Typ)
!               and then Has_Discriminant_Dependent_Component (Formal_Typ)
              then
                 return True;
              end if;
--- 1743,1749 ----
  
              if Is_Record_Type (Formal_Typ)
                and then not Is_Constrained (Formal_Typ)
!               and then Has_Per_Object_Constrained_Component (Formal_Typ)
              then
                 return True;
              end if;
*************** package body Inline is
*** 1703,1709 ****
           end loop;
  
           return False;
!       end Has_Formal_With_Discriminant_Dependent_Fields;
  
        -------------------------------
        -- Has_Skip_Proof_Annotation --
--- 1752,1831 ----
           end loop;
  
           return False;
!       end Has_Formal_With_Per_Object_Constrained_Component;
! 
!       --------------------------------
!       -- Has_Hide_Unhide_Annotation --
!       --------------------------------
! 
!       function Has_Hide_Unhide_Annotation
!         (Spec_Id, Body_Id : Entity_Id)
!          return Boolean
!       is
!          function Has_Hide_Unhide_Pragma (Prag : Node_Id) return Boolean;
!          --  Return whether a pragma Hide/Unhide is present in the list of
!          --  pragmas starting with Prag.
! 
!          ----------------------------
!          -- Has_Hide_Unhide_Pragma --
!          ----------------------------
! 
!          function Has_Hide_Unhide_Pragma (Prag : Node_Id) return Boolean is
!             Decl : Node_Id := Prag;
!          begin
!             while Present (Decl)
!               and then Nkind (Decl) = N_Pragma
!             loop
!                if Get_Pragma_Id (Decl) = Pragma_Annotate
!                  and then List_Length (Pragma_Argument_Associations (Decl)) = 4
!                then
!                   declare
!                      Arg1      : constant Node_Id :=
!                        First (Pragma_Argument_Associations (Decl));
!                      Arg2      : constant Node_Id := Next (Arg1);
!                      Arg1_Name : constant Name_Id :=
!                        Chars (Get_Pragma_Arg (Arg1));
!                      Arg2_Name : constant String :=
!                        Get_Name_String (Chars (Get_Pragma_Arg (Arg2)));
!                   begin
!                      if Arg1_Name = Name_Gnatprove
!                        and then Arg2_Name in "hide_info" | "unhide_info"
!                      then
!                         return True;
!                      end if;
!                   end;
!                end if;
! 
!                Next (Decl);
!             end loop;
! 
!             return False;
!          end Has_Hide_Unhide_Pragma;
! 
!       begin
!          if Present (Spec_Id)
!            and then Is_List_Member (Unit_Declaration_Node (Spec_Id))
!            and then Has_Hide_Unhide_Pragma
!              (Next (Unit_Declaration_Node (Spec_Id)))
!          then
!             return True;
! 
!          elsif Present (Body_Id) then
!             declare
!                Subp_Body : constant N_Subprogram_Body_Id :=
!                  Unit_Declaration_Node (Body_Id);
!             begin
!                return
!                  (Is_List_Member (Subp_Body)
!                    and then Has_Hide_Unhide_Pragma (Next (Subp_Body)))
!                  or else
!                    Has_Hide_Unhide_Pragma (First (Declarations (Subp_Body)));
!             end;
! 
!          else
!             return False;
!          end if;
!       end Has_Hide_Unhide_Annotation;
  
        -------------------------------
        -- Has_Skip_Proof_Annotation --
*************** package body Inline is
*** 1725,1736 ****
                    Arg1      : constant Node_Id :=
                      First (Pragma_Argument_Associations (Decl));
                    Arg2      : constant Node_Id := Next (Arg1);
!                   Arg1_Name : constant String :=
!                     Get_Name_String (Chars (Get_Pragma_Arg (Arg1)));
                    Arg2_Name : constant String :=
                      Get_Name_String (Chars (Get_Pragma_Arg (Arg2)));
                 begin
!                   if Arg1_Name = "gnatprove"
                      and then Arg2_Name in "skip_proof" | "skip_flow_and_proof"
                    then
                       return True;
--- 1847,1858 ----
                    Arg1      : constant Node_Id :=
                      First (Pragma_Argument_Associations (Decl));
                    Arg2      : constant Node_Id := Next (Arg1);
!                   Arg1_Name : constant Name_Id :=
!                     Chars (Get_Pragma_Arg (Arg1));
                    Arg2_Name : constant String :=
                      Get_Name_String (Chars (Get_Pragma_Arg (Arg2)));
                 begin
!                   if Arg1_Name = Name_Gnatprove
                      and then Arg2_Name in "skip_proof" | "skip_flow_and_proof"
                    then
                       return True;
*************** package body Inline is
*** 1926,1932 ****
        --  in record component accesses (in particular with records containing
        --  packed arrays).
  
!       elsif Has_Formal_With_Discriminant_Dependent_Fields (Id) then
           return False;
  
        --  Do not inline subprograms with a formal parameter or return type of
--- 2048,2054 ----
        --  in record component accesses (in particular with records containing
        --  packed arrays).
  
!       elsif Has_Formal_With_Per_Object_Constrained_Component (Id) then
           return False;
  
        --  Do not inline subprograms with a formal parameter or return type of
*************** package body Inline is
*** 1952,1957 ****
--- 2074,2096 ----
        elsif Has_Skip_Proof_Annotation (Id) then
           return False;
  
+       --  Do not inline subprograms with the Hide_Info or Unhide_Info
+       --  annotation, since their scope has special visibility on the
+       --  precise definition of some entities.
+ 
+       elsif Has_Hide_Unhide_Annotation (Spec_Id, Body_Id) then
+          return False;
+ 
+       --  Do not inline subprograms containing constant declarations with an
+       --  address clause, as inlining could lead to a spurious violation of
+       --  SPARK rules.
+ 
+       elsif Present (Body_Id)
+         and then
+           Has_Constant_With_Address_Clause (Unit_Declaration_Node (Body_Id))
+       then
+          return False;
+ 
        --  Otherwise, this is a subprogram declared inside the private part of a
        --  package, or inside a package body, or locally in a subprogram, and it
        --  does not have any contract. Inline it.
*************** package body Inline is
*** 1972,1977 ****
--- 2111,2121 ----
        Is_Serious    : Boolean := False;
        Suppress_Info : Boolean := False)
     is
+       Inline_Prefix : constant String := "cannot inline";
+ 
+       function Starts_With (S, Prefix : String) return Boolean is
+         (S (S'First .. S'First + Prefix'Length - 1) = Prefix);
+ 
     begin
        --  In GNATprove mode, inlining is the technical means by which the
        --  higher-level goal of contextual analysis is reached, so issue
*************** package body Inline is
*** 1979,2005 ****
        --  subprogram, rather than failure to inline it.
  
        if GNATprove_Mode
!         and then Msg (Msg'First .. Msg'First + 12) = "cannot inline"
        then
           declare
!             Len1 : constant Positive :=
!               String'("cannot inline")'Length;
!             Len2 : constant Positive :=
!               String'("info: no contextual analysis of")'Length;
! 
!             New_Msg : String (1 .. Msg'Length + Len2 - Len1);
  
           begin
-             New_Msg (1 .. Len2) := "info: no contextual analysis of";
-             New_Msg (Len2 + 1 .. Msg'Length + Len2 - Len1) :=
-               Msg (Msg'First + Len1 .. Msg'Last);
              Cannot_Inline (New_Msg, N, Subp, Is_Serious, Suppress_Info);
              return;
           end;
        end if;
  
-       pragma Assert (Msg (Msg'Last) = '?');
- 
        --  Legacy front-end inlining model
  
        if not Back_End_Inlining then
--- 2123,2142 ----
        --  subprogram, rather than failure to inline it.
  
        if GNATprove_Mode
!         and then Starts_With (Msg, Inline_Prefix)
        then
           declare
!             Msg_Txt : constant String :=
!               Msg (Msg'First + Inline_Prefix'Length .. Msg'Last);
  
+             New_Msg : constant String :=
+               "info: no contextual analysis of" & Msg_Txt;
           begin
              Cannot_Inline (New_Msg, N, Subp, Is_Serious, Suppress_Info);
              return;
           end;
        end if;
  
        --  Legacy front-end inlining model
  
        if not Back_End_Inlining then
*************** package body Inline is
*** 2295,2306 ****
  
           Append_To (Formals,
             Make_Parameter_Specification (Loc,
!              Defining_Identifier    =>
                 Make_Defining_Identifier (Loc, Chars (Obj_Id)),
!              In_Present             => False,
!              Out_Present            => not Constant_Present (Obj_Decl),
!              Null_Exclusion_Present => False,
!              Parameter_Type         => Typ_Def));
        end Build_Return_Object_Formal;
  
        --------------------------------------
--- 2432,2442 ----
  
           Append_To (Formals,
             Make_Parameter_Specification (Loc,
!              Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Chars (Obj_Id)),
!              In_Present          => False,
!              Out_Present         => not Constant_Present (Obj_Decl),
!              Parameter_Type      => Typ_Def));
        end Build_Return_Object_Formal;
  
        --------------------------------------
*************** package body Inline is
*** 2425,2432 ****
             (Proc_Id   : out Entity_Id;
              Decl_List : out List_Id)
           is
!             Formals   : constant List_Id   := New_List;
!             Subp_Name : constant Name_Id   := New_Internal_Name ('F');
  
              Body_Decls : List_Id := No_List;
              Decl       : Node_Id;
--- 2561,2568 ----
             (Proc_Id   : out Entity_Id;
              Decl_List : out List_Id)
           is
!             Formals   : constant List_Id := New_List;
!             Subp_Name : constant Name_Id := New_Internal_Name ('F');
  
              Body_Decls : List_Id := No_List;
              Decl       : Node_Id;
*************** package body Inline is
*** 2761,2767 ****
                          then
                             Child_Spec :=
                               Defining_Entity
!                                ((Unit (Library_Unit (Cunit (Main_Unit)))));
  
                             Comp :=
                               Parent (Unit_Declaration_Node (Body_Entity (P)));
--- 2897,2903 ----
                          then
                             Child_Spec :=
                               Defining_Entity
!                                ((Unit (Spec_Lib_Unit (Cunit (Main_Unit)))));
  
                             Comp :=
                               Parent (Unit_Declaration_Node (Body_Entity (P)));
*************** package body Inline is
*** 2884,2890 ****
                      (N           => Decl,
                       Clean_Stmts => No_List,
                       Mark_Id     => Empty,
-                      Top_Decls   => No_List,
                       Defer_Abort => False,
                       Fin_Id      => Fin);
  
--- 3020,3025 ----
*************** package body Inline is
*** 3027,3033 ****
  
           elsif Base_Type (Etype (F)) = Base_Type (Etype (A))
             and then Etype (F) /= Base_Type (Etype (F))
!            and then Is_Constrained (Etype (F))
           then
              Temp_Typ := Etype (F);
  
--- 3162,3170 ----
  
           elsif Base_Type (Etype (F)) = Base_Type (Etype (A))
             and then Etype (F) /= Base_Type (Etype (F))
!            and then (Is_Constrained (Etype (F))
!                       or else
!                      Is_Fixed_Lower_Bound_Array_Subtype (Etype (F)))
           then
              Temp_Typ := Etype (F);
  
*************** package body Inline is
*** 3096,3102 ****
              --  GNATprove.
  
              elsif Etype (F) /= Etype (A)
!               and then (not GNATprove_Mode or else Is_Constrained (Etype (F)))
              then
                 New_A    := Unchecked_Convert_To (Etype (F), Relocate_Node (A));
                 Temp_Typ := Etype (F);
--- 3233,3243 ----
              --  GNATprove.
  
              elsif Etype (F) /= Etype (A)
!               and then
!                 (not GNATprove_Mode
!                    or else (Is_Constrained (Etype (F))
!                               or else
!                             Is_Fixed_Lower_Bound_Array_Subtype (Etype (F))))
              then
                 New_A    := Unchecked_Convert_To (Etype (F), Relocate_Node (A));
                 Temp_Typ := Etype (F);
*************** package body Inline is
*** 3178,3186 ****
     -------------------------
  
     procedure Expand_Inlined_Call
!     (N         : Node_Id;
!      Subp      : Entity_Id;
!      Orig_Subp : Entity_Id)
     is
        Decls     : constant List_Id    := New_List;
        Is_Predef : constant Boolean    :=
--- 3319,3327 ----
     -------------------------
  
     procedure Expand_Inlined_Call
!      (N         : Node_Id;
!       Subp      : Entity_Id;
!       Orig_Subp : Entity_Id)
     is
        Decls     : constant List_Id    := New_List;
        Is_Predef : constant Boolean    :=
*************** package body Inline is
*** 3220,3239 ****
        Targ1 : Node_Id := Empty;
        --  A separate target used when the return type is unconstrained
  
-       procedure Declare_Postconditions_Result;
-       --  When generating C code, declare _Result, which may be used in the
-       --  inlined _Postconditions procedure to verify the return value.
- 
        procedure Make_Exit_Label;
        --  Build declaration for exit label to be used in Return statements,
        --  sets Exit_Lab (the label node) and Lab_Decl (corresponding implicit
        --  declaration). Does nothing if Exit_Lab already set.
  
-       procedure Make_Loop_Labels_Unique (HSS : Node_Id);
-       --  When compiling for CCG and performing front-end inlining, replace
-       --  loop names and references to them so that they do not conflict with
-       --  homographs in the current subprogram.
- 
        function Process_Formals (N : Node_Id) return Traverse_Result;
        --  Replace occurrence of a formal with the corresponding actual, or the
        --  thunk generated for it. Replace a return statement with an assignment
--- 3361,3371 ----
*************** package body Inline is
*** 3268,3312 ****
        --  If procedure body has no local variables, inline body without
        --  creating block, otherwise rewrite call with block.
  
-       -----------------------------------
-       -- Declare_Postconditions_Result --
-       -----------------------------------
- 
-       procedure Declare_Postconditions_Result is
-          Enclosing_Subp : constant Entity_Id := Scope (Subp);
- 
-       begin
-          pragma Assert
-            (Modify_Tree_For_C
-              and then Is_Subprogram (Enclosing_Subp)
-              and then Present (Wrapped_Statements (Enclosing_Subp)));
- 
-          if Ekind (Enclosing_Subp) = E_Function then
-             if Nkind (First (Parameter_Associations (N))) in
-                  N_Numeric_Or_String_Literal
-             then
-                Append_To (Declarations (Blk),
-                  Make_Object_Declaration (Loc,
-                    Defining_Identifier =>
-                      Make_Defining_Identifier (Loc, Name_uResult),
-                    Constant_Present    => True,
-                    Object_Definition   =>
-                      New_Occurrence_Of (Etype (Enclosing_Subp), Loc),
-                    Expression          =>
-                      New_Copy_Tree (First (Parameter_Associations (N)))));
-             else
-                Append_To (Declarations (Blk),
-                  Make_Object_Renaming_Declaration (Loc,
-                    Defining_Identifier =>
-                      Make_Defining_Identifier (Loc, Name_uResult),
-                    Subtype_Mark        =>
-                      New_Occurrence_Of (Etype (Enclosing_Subp), Loc),
-                    Name                =>
-                      New_Copy_Tree (First (Parameter_Associations (N)))));
-             end if;
-          end if;
-       end Declare_Postconditions_Result;
- 
        ---------------------
        -- Make_Exit_Label --
        ---------------------
--- 3400,3405 ----
*************** package body Inline is
*** 3325,3390 ****
           end if;
        end Make_Exit_Label;
  
-       -----------------------------
-       -- Make_Loop_Labels_Unique --
-       -----------------------------
- 
-       procedure Make_Loop_Labels_Unique (HSS : Node_Id) is
-          function Process_Loop (N : Node_Id) return Traverse_Result;
- 
-          ------------------
-          -- Process_Loop --
-          ------------------
- 
-          function Process_Loop (N : Node_Id) return Traverse_Result is
-             Id : Entity_Id;
- 
-          begin
-             if Nkind (N) = N_Loop_Statement
-               and then Present (Identifier (N))
-             then
-                --  Create new external name for loop and update the
-                --  corresponding entity.
- 
-                Id := Entity (Identifier (N));
-                Set_Chars (Id, New_External_Name (Chars (Id), 'L', -1));
-                Set_Chars (Identifier (N), Chars (Id));
- 
-             elsif Nkind (N) = N_Exit_Statement
-               and then Present (Name (N))
-             then
-                --  The exit statement must name an enclosing loop, whose name
-                --  has already been updated.
- 
-                Set_Chars (Name (N), Chars (Entity (Name (N))));
-             end if;
- 
-             return OK;
-          end Process_Loop;
- 
-          procedure Update_Loop_Names is new Traverse_Proc (Process_Loop);
- 
-          --  Local variables
- 
-          Stmt : Node_Id;
- 
-       --  Start of processing for Make_Loop_Labels_Unique
- 
-       begin
-          if Modify_Tree_For_C then
-             Stmt := First (Statements (HSS));
-             while Present (Stmt) loop
-                Update_Loop_Names (Stmt);
-                Next (Stmt);
-             end loop;
-          end if;
-       end Make_Loop_Labels_Unique;
- 
        ---------------------
        -- Process_Formals --
        ---------------------
  
        function Process_Formals (N : Node_Id) return Traverse_Result is
           A   : Entity_Id;
           E   : Entity_Id;
           Ret : Node_Id;
--- 3418,3429 ----
           end if;
        end Make_Exit_Label;
  
        ---------------------
        -- Process_Formals --
        ---------------------
  
        function Process_Formals (N : Node_Id) return Traverse_Result is
+          Loc : constant Source_Ptr := Sloc (N);
           A   : Entity_Id;
           E   : Entity_Id;
           Ret : Node_Id;
*************** package body Inline is
*** 3411,3423 ****
  
                 if Is_Entity_Name (A) then
                    Had_Private_View := Has_Private_View (N);
!                   Rewrite (N, New_Occurrence_Of (Entity (A), Sloc (N)));
                    Set_Has_Private_View (N, Had_Private_View);
                    Check_Private_View (N);
  
                 elsif Nkind (A) = N_Defining_Identifier then
                    Had_Private_View := Has_Private_View (N);
!                   Rewrite (N, New_Occurrence_Of (A, Sloc (N)));
                    Set_Has_Private_View (N, Had_Private_View);
                    Check_Private_View (N);
  
--- 3450,3462 ----
  
                 if Is_Entity_Name (A) then
                    Had_Private_View := Has_Private_View (N);
!                   Rewrite (N, New_Occurrence_Of (Entity (A), Loc));
                    Set_Has_Private_View (N, Had_Private_View);
                    Check_Private_View (N);
  
                 elsif Nkind (A) = N_Defining_Identifier then
                    Had_Private_View := Has_Private_View (N);
!                   Rewrite (N, New_Occurrence_Of (A, Loc));
                    Set_Has_Private_View (N, Had_Private_View);
                    Check_Private_View (N);
  
*************** package body Inline is
*** 3485,3492 ****
                   or else Yields_Universal_Type (Expression (N))
                 then
                    Ret :=
!                     Make_Qualified_Expression (Sloc (N),
!                       Subtype_Mark => New_Occurrence_Of (Ret_Type, Sloc (N)),
                        Expression   => Relocate_Node (Expression (N)));
  
                 --  Use an unchecked type conversion between access types, for
--- 3524,3531 ----
                   or else Yields_Universal_Type (Expression (N))
                 then
                    Ret :=
!                     Make_Qualified_Expression (Loc,
!                       Subtype_Mark => New_Occurrence_Of (Ret_Type, Loc),
                        Expression   => Relocate_Node (Expression (N)));
  
                 --  Use an unchecked type conversion between access types, for
*************** package body Inline is
*** 3502,3509 ****
  
                 else
                    Ret :=
!                     Make_Type_Conversion (Sloc (N),
!                       Subtype_Mark => New_Occurrence_Of (Ret_Type, Sloc (N)),
                        Expression   => Relocate_Node (Expression (N)));
                 end if;
  
--- 3541,3548 ----
  
                 else
                    Ret :=
!                     Make_Type_Conversion (Loc,
!                       Subtype_Mark => New_Occurrence_Of (Ret_Type, Loc),
                        Expression   => Relocate_Node (Expression (N)));
                 end if;
  
*************** package body Inline is
*** 3582,3588 ****
           elsif Nkind (N) = N_Pragma
             and then Pragma_Name (N) = Name_Unreferenced
           then
!             Rewrite (N, Make_Null_Statement (Sloc (N)));
              return OK;
  
           else
--- 3621,3627 ----
           elsif Nkind (N) = N_Pragma
             and then Pragma_Name (N) = Name_Unreferenced
           then
!             Rewrite (N, Make_Null_Statement (Loc));
              return OK;
  
           else
*************** package body Inline is
*** 3667,3674 ****
           Fst : constant Node_Id := First (Statements (HSS));
  
        begin
-          Make_Loop_Labels_Unique (HSS);
- 
           --  Optimize simple case: function body is a single return statement,
           --  which has been expanded into an assignment.
  
--- 3706,3711 ----
*************** package body Inline is
*** 3755,3762 ****
           HSS : constant Node_Id := Handled_Statement_Sequence (Blk);
  
        begin
-          Make_Loop_Labels_Unique (HSS);
- 
           --  If there is a transient scope for N, this will be the scope of the
           --  actions for N, and the statements in Blk need to be within this
           --  scope. For example, they need to have visibility on the constant
--- 3792,3797 ----
*************** package body Inline is
*** 3861,3876 ****
                 Set_Declarations (Blk, New_List);
              end if;
  
-             --  When generating C code, declare _Result, which may be used to
-             --  verify the return value.
- 
-             if Modify_Tree_For_C
-               and then Nkind (N) = N_Procedure_Call_Statement
-               and then Chars (Name (N)) = Name_uWrapped_Statements
-             then
-                Declare_Postconditions_Result;
-             end if;
- 
              --  For the unconstrained case, capture the name of the local
              --  variable that holds the result. This must be the first
              --  declaration in the block, because its bounds cannot depend
--- 3896,3901 ----
*************** package body Inline is
*** 4665,4672 ****
  
        else
           return
!            Present (Declarations (N))
!              and then Present (First (Declarations (N)))
               and then Nkind (First (Declarations (N))) = N_Object_Declaration
               and then Entity (Expression (Return_Statement)) =
                          Defining_Identifier (First (Declarations (N)));
--- 4690,4696 ----
  
        else
           return
!            Present (First (Declarations (N)))
               and then Nkind (First (Declarations (N))) = N_Object_Declaration
               and then Entity (Expression (Return_Statement)) =
                          Defining_Identifier (First (Declarations (N)));
*************** package body Inline is
*** 4688,4698 ****
        --  done in Analyze_Inlined_Bodies.
  
        while Nkind (Unit (Comp)) = N_Subunit loop
!          Comp := Library_Unit (Comp);
        end loop;
  
        return Comp = Cunit (Main_Unit)
!         or else Comp = Library_Unit (Cunit (Main_Unit));
     end In_Main_Unit_Or_Subunit;
  
     ----------------
--- 4712,4722 ----
        --  done in Analyze_Inlined_Bodies.
  
        while Nkind (Unit (Comp)) = N_Subunit loop
!          Comp := Subunit_Parent (Comp);
        end loop;
  
        return Comp = Cunit (Main_Unit)
!         or else Comp = Other_Comp_Unit (Cunit (Main_Unit));
     end In_Main_Unit_Or_Subunit;
  
     ----------------
*************** package body Inline is
*** 5244,5249 ****
--- 5268,5274 ----
                                          | Name_Global
                                          | Name_Depends
                                          | Name_Exceptional_Cases
+                                         | Name_Exit_Cases
                                          | Name_Postcondition
                                          | Name_Precondition
                                          | Name_Refined_Global
diff -Nrcpad gcc-14.2.0/gcc/ada/inline.ads gcc-15.1.0/gcc/ada/inline.ads
*** gcc-14.2.0/gcc/ada/inline.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/inline.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Inline is
*** 146,153 ****
      (N    : Node_Id;
       Subp : Entity_Id) return Boolean;
     --  Returns False if the call in node N to subprogram Subp cannot be inlined
!    --  in GNATprove mode, because it may lead to missing a check on type
!    --  conversion of input parameters otherwise. Returns True otherwise.
  
     function Can_Be_Inlined_In_GNATprove_Mode
       (Spec_Id : Entity_Id;
--- 146,154 ----
      (N    : Node_Id;
       Subp : Entity_Id) return Boolean;
     --  Returns False if the call in node N to subprogram Subp cannot be inlined
!    --  in GNATprove mode, because it may otherwise lead to missing a check
!    --  on type conversion of input parameters, or a missing memory leak on
!    --  an output parameter. Returns True otherwise.
  
     function Can_Be_Inlined_In_GNATprove_Mode
       (Spec_Id : Entity_Id;
*************** package Inline is
*** 164,170 ****
        N             : Node_Id;
        Subp          : Entity_Id;
        Is_Serious    : Boolean := False;
!       Suppress_Info : Boolean := False);
     --  This procedure is called if the node N, an instance of a call to
     --  subprogram Subp, cannot be inlined. Msg is the message to be issued,
     --  which ends with ? (it does not end with ?p?, this routine takes care of
--- 165,174 ----
        N             : Node_Id;
        Subp          : Entity_Id;
        Is_Serious    : Boolean := False;
!       Suppress_Info : Boolean := False)
!      with
!        Pre => Msg'First <= Msg'Last
!        and then Msg (Msg'Last) = '?';
     --  This procedure is called if the node N, an instance of a call to
     --  subprogram Subp, cannot be inlined. Msg is the message to be issued,
     --  which ends with ? (it does not end with ?p?, this routine takes care of
diff -Nrcpad gcc-14.2.0/gcc/ada/itypes.adb gcc-15.1.0/gcc/ada/itypes.adb
*** gcc-14.2.0/gcc/ada/itypes.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/itypes.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Itypes is
*** 85,93 ****
     ---------------------------------
  
     function Create_Null_Excluding_Itype
!       (T           : Entity_Id;
!        Related_Nod : Node_Id;
!        Scope_Id    : Entity_Id := Current_Scope) return Entity_Id
     is
        I_Typ : Entity_Id;
  
--- 85,93 ----
     ---------------------------------
  
     function Create_Null_Excluding_Itype
!      (T           : Entity_Id;
!       Related_Nod : Node_Id;
!       Scope_Id    : Entity_Id := Current_Scope) return Entity_Id
     is
        I_Typ : Entity_Id;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/itypes.ads gcc-15.1.0/gcc/ada/itypes.ads
*** gcc-14.2.0/gcc/ada/itypes.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/itypes.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/krunch.adb gcc-15.1.0/gcc/ada/krunch.adb
*** gcc-14.2.0/gcc/ada/krunch.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/krunch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/krunch.ads gcc-15.1.0/gcc/ada/krunch.ads
*** gcc-14.2.0/gcc/ada/krunch.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/krunch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/layout.adb gcc-15.1.0/gcc/ada/layout.adb
*** gcc-14.2.0/gcc/ada/layout.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/layout.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Layout is
*** 607,614 ****
                 Error_Msg_Uint_1 := RM_Size (E);
                 Error_Msg_F
                   ("object size is too small, minimum allowed is ^",
!                   Expression (Get_Attribute_Definition_Clause
!                                              (E, Attribute_Object_Size)));
              end if;
  
              --  Adjust Esize up to RM_Size value
--- 607,614 ----
                 Error_Msg_Uint_1 := RM_Size (E);
                 Error_Msg_F
                   ("object size is too small, minimum allowed is ^",
!                   Expression (Object_Size_Clause (E)));
! 
              end if;
  
              --  Adjust Esize up to RM_Size value
diff -Nrcpad gcc-14.2.0/gcc/ada/layout.ads gcc-15.1.0/gcc/ada/layout.ads
*** gcc-14.2.0/gcc/ada/layout.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/layout.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-list.adb gcc-15.1.0/gcc/ada/lib-list.adb
*** gcc-14.2.0/gcc/ada/lib-list.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-list.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 80,86 ****
        else
           Write_Unit_Name (Unit_Name (Sorted_Units (R)));
  
!          if Name_Len > (Unit_Length - 1) then
              Write_Eol;
              Write_Str (Unit_Bln);
           else
--- 80,86 ----
        else
           Write_Unit_Name (Unit_Name (Sorted_Units (R)));
  
!          if Name_Len > Unit_Length - 1 then
              Write_Eol;
              Write_Str (Unit_Bln);
           else
*************** begin
*** 91,97 ****
  
           Write_Name (Full_File_Name (Source_Index (Sorted_Units (R))));
  
!          if Name_Len > (File_Length - 1) then
              Write_Eol;
              Write_Str (Unit_Bln);
              Write_Str (File_Bln);
--- 91,97 ----
  
           Write_Name (Full_File_Name (Source_Index (Sorted_Units (R))));
  
!          if Name_Len > File_Length - 1 then
              Write_Eol;
              Write_Str (Unit_Bln);
              Write_Str (File_Bln);
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-load.adb gcc-15.1.0/gcc/ada/lib-load.adb
*** gcc-14.2.0/gcc/ada/lib-load.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-load.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Lib.Load is
*** 313,318 ****
--- 313,319 ----
          Is_Predefined_Renaming_File_Name (Fname);
        GNAT_Name : constant Boolean :=
          Is_GNAT_File_Name (Fname);
+       Saved_Error_Count : constant Nat := Total_Errors_Detected;
        Version : Word := 0;
  
     begin
*************** package body Lib.Load is
*** 336,342 ****
           if Main_Source_File > No_Source_File then
              Version := Source_Checksum (Main_Source_File);
  
!          else
              --  To avoid emitting a source location (since there is no file),
              --  we write a custom error message instead of using the machinery
              --  in errout.adb.
--- 337,350 ----
           if Main_Source_File > No_Source_File then
              Version := Source_Checksum (Main_Source_File);
  
!          --  If we get here and Saved_Error_Count /= Total_Errors_Detected,
!          --  then an error occurred during preprocessing. In this case
!          --  we have already generated an error message during preprocessing
!          --  and we do not want to emit an incorrect "file foo.adb not found"
!          --  message here.
! 
!          elsif Saved_Error_Count = Total_Errors_Detected then
! 
              --  To avoid emitting a source location (since there is no file),
              --  we write a custom error message instead of using the machinery
              --  in errout.adb.
*************** package body Lib.Load is
*** 684,690 ****
           --  of being loaded. We do *not* care about a circular chain that
           --  leads back to a body, because this kind of circular dependence
           --  legitimately occurs (e.g. two package bodies that contain
!          --  inlined subprogram referenced by the other).
  
           --  Ada 2005 (AI-50217): We also ignore limited_with clauses, because
           --  their purpose is precisely to create legal circular structures.
--- 692,698 ----
           --  of being loaded. We do *not* care about a circular chain that
           --  leads back to a body, because this kind of circular dependence
           --  legitimately occurs (e.g. two package bodies that contain
!          --  inlined subprograms referenced by each other).
  
           --  Ada 2005 (AI-50217): We also ignore limited_with clauses, because
           --  their purpose is precisely to create legal circular structures.
*************** package body Lib.Load is
*** 940,946 ****
     --------------------------
  
     procedure Make_Child_Decl_Unit (N : Node_Id) is
!       Unit_Decl : constant Node_Id          := Library_Unit (N);
        Unit_Num  : constant Unit_Number_Type := Get_Cunit_Unit_Number (N);
  
     begin
--- 948,954 ----
     --------------------------
  
     procedure Make_Child_Decl_Unit (N : Node_Id) is
!       Unit_Decl : constant Node_Id          := Spec_Lib_Unit (N);
        Unit_Num  : constant Unit_Number_Type := Get_Cunit_Unit_Number (N);
  
     begin
*************** package body Lib.Load is
*** 980,993 ****
  
        if In_Main then
           Units.Table (Units.Last)        := Units.Table (Main_Unit);
!          Units.Table (Units.Last).Cunit  := Library_Unit (N);
           Init_Unit_Name (Units.Last, Unit_Name (Main_Unit));
  
           Units.Table (Main_Unit).Cunit   := N;
           Units.Table (Main_Unit).Version := Source_Checksum (Sind);
           Init_Unit_Name (Main_Unit,
             Get_Body_Name
!              (Unit_Name (Get_Cunit_Unit_Number (Library_Unit (N)))));
  
        else
           --  Duplicate information from instance unit, for the body. The unit
--- 988,1001 ----
  
        if In_Main then
           Units.Table (Units.Last)        := Units.Table (Main_Unit);
!          Units.Table (Units.Last).Cunit  := Spec_Lib_Unit (N);
           Init_Unit_Name (Units.Last, Unit_Name (Main_Unit));
  
           Units.Table (Main_Unit).Cunit   := N;
           Units.Table (Main_Unit).Version := Source_Checksum (Sind);
           Init_Unit_Name (Main_Unit,
             Get_Body_Name
!              (Unit_Name (Get_Cunit_Unit_Number (Spec_Lib_Unit (N)))));
  
        else
           --  Duplicate information from instance unit, for the body. The unit
*************** package body Lib.Load is
*** 995,1001 ****
           --  units table when first loaded as a declaration.
  
           Units.Table (Units.Last) := Units.Table (Get_Cunit_Unit_Number (N));
!          Units.Table (Units.Last).Cunit := Library_Unit (N);
        end if;
     end Make_Instance_Unit;
  
--- 1003,1009 ----
           --  units table when first loaded as a declaration.
  
           Units.Table (Units.Last) := Units.Table (Get_Cunit_Unit_Number (N));
!          Units.Table (Units.Last).Cunit := Spec_Lib_Unit (N);
        end if;
     end Make_Instance_Unit;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-load.ads gcc-15.1.0/gcc/ada/lib-load.ads
*** gcc-14.2.0/gcc/ada/lib-load.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-load.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-sort.adb gcc-15.1.0/gcc/ada/lib-sort.adb
*** gcc-14.2.0/gcc/ada/lib-sort.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-sort.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-util.adb gcc-15.1.0/gcc/ada/lib-util.adb
*** gcc-14.2.0/gcc/ada/lib-util.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Lib.Util is
*** 271,278 ****
  
     procedure Write_Info_Str (Val : String) is
     begin
!       Info_Buffer (Info_Buffer_Len + 1 .. Info_Buffer_Len + Val'Length)
!                                                                   := Val;
        Info_Buffer_Len := Info_Buffer_Len + Val'Length;
        Info_Buffer_Col := Info_Buffer_Col + Val'Length;
     end Write_Info_Str;
--- 271,277 ----
  
     procedure Write_Info_Str (Val : String) is
     begin
!       Info_Buffer (Info_Buffer_Len + 1 .. Info_Buffer_Len + Val'Length) := Val;
        Info_Buffer_Len := Info_Buffer_Len + Val'Length;
        Info_Buffer_Col := Info_Buffer_Col + Val'Length;
     end Write_Info_Str;
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-util.ads gcc-15.1.0/gcc/ada/lib-util.ads
*** gcc-14.2.0/gcc/ada/lib-util.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-util.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-writ.adb gcc-15.1.0/gcc/ada/lib-writ.adb
*** gcc-14.2.0/gcc/ada/lib-writ.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-writ.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Lib.Writ is
*** 298,305 ****
           function Is_Implicit_With_Clause (Clause : Node_Id) return Boolean is
           begin
              --  With clauses created for ancestor units are marked as internal,
!             --  however, they emulate the semantics in Ada RM 10.1.2 (6/2),
!             --  where
              --
              --    with A.B;
              --
--- 298,304 ----
           function Is_Implicit_With_Clause (Clause : Node_Id) return Boolean is
           begin
              --  With clauses created for ancestor units are marked as internal,
!             --  however, they emulate the semantics in RM 10.1.2 (6/2), where
              --
              --    with A.B;
              --
*************** package body Lib.Writ is
*** 317,323 ****
                 return False;
  
              else
!                return Implicit_With (Clause);
              end if;
           end Is_Implicit_With_Clause;
  
--- 316,322 ----
                 return False;
  
              else
!                return Is_Implicit_With (Clause);
              end if;
           end Is_Implicit_With_Clause;
  
*************** package body Lib.Writ is
*** 340,346 ****
              --  the unit anywhere else.
  
              if Nkind (Item) = N_With_Clause then
!                Unum := Get_Cunit_Unit_Number (Library_Unit (Item));
                 With_Flags (Unum) := True;
  
                 if not Limited_Present (Item) then
--- 339,345 ----
              --  the unit anywhere else.
  
              if Nkind (Item) = N_With_Clause then
!                Unum := Get_Cunit_Unit_Number (Withed_Lib_Unit (Item));
                 With_Flags (Unum) := True;
  
                 if not Limited_Present (Item) then
*************** package body Lib.Writ is
*** 595,603 ****
  
           if Ukind in N_Generic_Declaration
             or else
!              (Present (Library_Unit (Unode))
!                 and then
!                   Nkind (Unit (Library_Unit (Unode))) in N_Generic_Declaration)
           then
              Write_Info_Str (" GE");
           end if;
--- 594,603 ----
  
           if Ukind in N_Generic_Declaration
             or else
!              (Ukind in N_Lib_Unit_Body
!                 and then Present (Spec_Lib_Unit (Unode))
!                 and then Nkind (Unit (Spec_Lib_Unit (Unode)))
!                   in N_Generic_Declaration)
           then
              Write_Info_Str (" GE");
           end if;
*************** package body Lib.Writ is
*** 639,645 ****
           --  it and which have context clauses of their own, since these
           --  with'ed units are part of its own elaboration dependencies.
  
!          if Nkind (Unit (Unode)) in N_Unit_Body then
              for S in Units.First .. Last_Unit loop
  
                 --  We are only interested in subunits. For preproc. data and
--- 639,645 ----
           --  it and which have context clauses of their own, since these
           --  with'ed units are part of its own elaboration dependencies.
  
!          if Nkind (Unit (Unode)) in N_Lib_Unit_Body then
              for S in Units.First .. Last_Unit loop
  
                 --  We are only interested in subunits. For preproc. data and
*************** package body Lib.Writ is
*** 648,654 ****
                 if Cunit (S) /= Empty
                   and then Nkind (Unit (Cunit (S))) = N_Subunit
                 then
!                   Pnode := Library_Unit (Cunit (S));
  
                    --  In gnatc mode, the errors in the subunits will not have
                    --  been recorded, but the analysis of the subunit may have
--- 648,654 ----
                 if Cunit (S) /= Empty
                   and then Nkind (Unit (Cunit (S))) = N_Subunit
                 then
!                   Pnode := Subunit_Parent (Cunit (S));
  
                    --  In gnatc mode, the errors in the subunits will not have
                    --  been recorded, but the analysis of the subunit may have
*************** package body Lib.Writ is
*** 662,668 ****
                    --  Find ultimate parent of the subunit
  
                    while Nkind (Unit (Pnode)) = N_Subunit loop
!                      Pnode := Library_Unit (Pnode);
                    end loop;
  
                    --  See if it belongs to current unit, and if so, include
--- 662,668 ----
                    --  Find ultimate parent of the subunit
  
                    while Nkind (Unit (Pnode)) = N_Subunit loop
!                      Pnode := Subunit_Parent (Pnode);
                    end loop;
  
                    --  See if it belongs to current unit, and if so, include
*************** package body Lib.Writ is
*** 1170,1176 ****
              if Nkind (U) = N_Package_Body then
                 U := Parent (Parent (
                     Alias (Related_Instance (Defining_Unit_Name
!                      (Specification (Unit (Library_Unit (Parent (U)))))))));
              end if;
  
              S := Specification (U);
--- 1170,1176 ----
              if Nkind (U) = N_Package_Body then
                 U := Parent (Parent (
                     Alias (Related_Instance (Defining_Unit_Name
!                      (Specification (Unit (Spec_Lib_Unit (Parent (U)))))))));
              end if;
  
              S := Specification (U);
*************** package body Lib.Writ is
*** 1240,1261 ****
           Write_Info_Str (" DB");
        end if;
  
!       if Tasking_Used and then not Is_Predefined_Unit (Main_Unit) then
!          if Locking_Policy /= ' ' then
!             Write_Info_Str  (" L");
!             Write_Info_Char (Locking_Policy);
!          end if;
  
!          if Queuing_Policy /= ' ' then
!             Write_Info_Str  (" Q");
!             Write_Info_Char (Queuing_Policy);
!          end if;
  
!          if Task_Dispatching_Policy /= ' ' then
!             Write_Info_Str  (" T");
!             Write_Info_Char (Task_Dispatching_Policy);
!             Write_Info_Char (' ');
!          end if;
        end if;
  
        if GNATprove_Mode then
--- 1240,1258 ----
           Write_Info_Str (" DB");
        end if;
  
!       if Locking_Policy /= ' ' then
!          Write_Info_Str  (" L");
!          Write_Info_Char (Locking_Policy);
!       end if;
  
!       if Queuing_Policy /= ' ' then
!          Write_Info_Str  (" Q");
!          Write_Info_Char (Queuing_Policy);
!       end if;
  
!       if Task_Dispatching_Policy /= ' ' then
!          Write_Info_Str  (" T");
!          Write_Info_Char (Task_Dispatching_Policy);
        end if;
  
        if GNATprove_Mode then
*************** package body Lib.Writ is
*** 1267,1272 ****
--- 1264,1273 ----
           Write_Info_Char (Partition_Elaboration_Policy);
        end if;
  
+       if Opt.Interrupts_System_By_Default then
+          Write_Info_Str (" ID");
+       end if;
+ 
        if No_Component_Reordering_Config then
           Write_Info_Str (" NC");
        end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-writ.ads gcc-15.1.0/gcc/ada/lib-writ.ads
*** gcc-14.2.0/gcc/ada/lib-writ.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-writ.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Lib.Writ is
*** 199,204 ****
--- 199,209 ----
     --         GP   Set if this compilation was done in GNATprove mode, either
     --              from direct use of GNATprove, or from use of -gnatdF.
  
+    --         ID   Interrupts_System_By_Default pragma applies to this
+    --              partition. No handlers will be installed by default,
+    --              including signal handlers. This is a configuration
+    --              pragma.
+ 
     --         Lx   A valid Locking_Policy pragma applies to all the units in
     --              this file, where x is the first character (upper case) of
     --              the policy name (e.g. 'C' for Ceiling_Locking).
*************** package Lib.Writ is
*** 223,231 ****
     --         OL   Pragma Default_Scalar_Storage_Order (Low_Order_First) is
     --              present in a configuration pragma file that applies.
  
!    --         Qx   A valid Queueing_Policy pragma applies to all the units
!    --              in this file, where x is the first character (upper case)
!    --              of the policy name (e.g. 'P' for Priority_Queueing).
  
     --         SL   Indicates that the unit is an Interface to a Standalone
     --              Library. Note that this indication is never given by the
--- 228,236 ----
     --         OL   Pragma Default_Scalar_Storage_Order (Low_Order_First) is
     --              present in a configuration pragma file that applies.
  
!    --         Qx   A valid Queuing_Policy pragma applies to all the units in
!    --              this file, where x is the first character (upper case) of
!    --              the policy name (e.g. 'P' for Priority_Queuing).
  
     --         SL   Indicates that the unit is an Interface to a Standalone
     --              Library. Note that this indication is never given by the
*************** package Lib.Writ is
*** 248,257 ****
     --              generated exception tables. If ZX is not present, the
     --              longjmp/setjmp exception scheme is in use.
  
!    --      Note that language defined units never output policy (Lx, Tx, Qx)
!    --      parameters. Language defined units must correctly handle all
!    --      possible cases. These values are checked for consistency by the
!    --      binder and then copied to the generated binder output file.
  
     --    Note: The P line must be present. Even in Ignore_Errors mode, Scan_ALI
     --    insists on finding a P line. So if changes are made to the ALI format,
--- 253,263 ----
     --              generated exception tables. If ZX is not present, the
     --              longjmp/setjmp exception scheme is in use.
  
!    --      Note that library units from the GNAT runtime library should never
!    --      output policy (Lx, Tx, Qx) parameters. They must correctly handle
!    --      all possible cases to be usable in all contexts. These values are
!    --      checked for consistency by the binder and then copied to the
!    --      generated binder output file.
  
     --    Note: The P line must be present. Even in Ignore_Errors mode, Scan_ALI
     --    insists on finding a P line. So if changes are made to the ALI format,
*************** package Lib.Writ is
*** 1059,1064 ****
  
     procedure Add_Preprocessing_Dependency (S : Source_File_Index);
     --  Indicate that there is a dependency to be added on a preprocessing data
!    --  file or on a preprocessing definition file.
  
  end Lib.Writ;
--- 1065,1071 ----
  
     procedure Add_Preprocessing_Dependency (S : Source_File_Index);
     --  Indicate that there is a dependency to be added on a preprocessing data
!    --  file, on a preprocessing definition file or on a file included through
!    --  External_Initialization.
  
  end Lib.Writ;
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-xref-spark_specific.adb gcc-15.1.0/gcc/ada/lib-xref-spark_specific.adb
*** gcc-14.2.0/gcc/ada/lib-xref-spark_specific.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-xref-spark_specific.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-xref.adb gcc-15.1.0/gcc/ada/lib-xref.adb
*** gcc-14.2.0/gcc/ada/lib-xref.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-xref.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib-xref.ads gcc-15.1.0/gcc/ada/lib-xref.ads
*** gcc-14.2.0/gcc/ada/lib-xref.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib-xref.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/lib.adb gcc-15.1.0/gcc/ada/lib.adb
*** gcc-14.2.0/gcc/ada/lib.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Opt;            use Opt;
*** 36,41 ****
--- 36,42 ----
  with Output;         use Output;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
+ with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
*************** package body Lib is
*** 173,184 ****
        return Units.Table (U).OA_Setting;
     end OA_Setting;
  
!    function Primary_Stack_Count (U : Unit_Number_Type) return Int is
     begin
        return Units.Table (U).Primary_Stack_Count;
     end Primary_Stack_Count;
  
!    function Sec_Stack_Count  (U : Unit_Number_Type) return Int is
     begin
        return Units.Table (U).Sec_Stack_Count;
     end Sec_Stack_Count;
--- 174,185 ----
        return Units.Table (U).OA_Setting;
     end OA_Setting;
  
!    function Primary_Stack_Count (U : Unit_Number_Type) return Nat is
     begin
        return Units.Table (U).Primary_Stack_Count;
     end Primary_Stack_Count;
  
!    function Sec_Stack_Count  (U : Unit_Number_Type) return Nat is
     begin
        return Units.Table (U).Sec_Stack_Count;
     end Sec_Stack_Count;
*************** package body Lib is
*** 481,492 ****
           --  earlier.
  
           if Nkind (Unit1) in N_Subprogram_Body | N_Package_Body then
!             if Library_Unit (Cunit (Unum1)) = Cunit (Unum2) then
                 return Yes_After;
              end if;
  
           elsif Nkind (Unit2) in N_Subprogram_Body | N_Package_Body then
!             if Library_Unit (Cunit (Unum2)) = Cunit (Unum1) then
                 return Yes_Before;
              end if;
           end if;
--- 482,493 ----
           --  earlier.
  
           if Nkind (Unit1) in N_Subprogram_Body | N_Package_Body then
!             if Spec_Lib_Unit (Cunit (Unum1)) = Cunit (Unum2) then
                 return Yes_After;
              end if;
  
           elsif Nkind (Unit2) in N_Subprogram_Body | N_Package_Body then
!             if Spec_Lib_Unit (Cunit (Unum2)) = Cunit (Unum1) then
                 return Yes_Before;
              end if;
           end if;
*************** package body Lib is
*** 779,788 ****
           end if;
        end loop;
  
!       --  If not in the table, must be a spec created for a main unit that is a
!       --  child subprogram body which we have not inserted into the table yet.
  
!       if N = Library_Unit (Cunit (Main_Unit)) then
           return Main_Unit;
  
        --  If it is anything else, something is seriously wrong, and we really
--- 780,795 ----
           end if;
        end loop;
  
!       --  Not in the table. Empty N is some already-detected error; otherwise,
!       --  it must be a spec created for a main unit that is a child subprogram
!       --  body which we have not inserted into the table yet.
  
!       if No (N) then
!          pragma Assert (Serious_Errors_Detected > 0);
!          return Main_Unit;
!       end if;
! 
!       if N = Spec_Lib_Unit (Cunit (Main_Unit)) then
           return Main_Unit;
  
        --  If it is anything else, something is seriously wrong, and we really
*************** package body Lib is
*** 1034,1041 ****
     -- Increment_Primary_Stack_Count --
     -----------------------------------
  
!    procedure Increment_Primary_Stack_Count (Increment : Int) is
!       PSC : Int renames Units.Table (Current_Sem_Unit).Primary_Stack_Count;
     begin
        PSC := PSC + Increment;
     end Increment_Primary_Stack_Count;
--- 1041,1048 ----
     -- Increment_Primary_Stack_Count --
     -----------------------------------
  
!    procedure Increment_Primary_Stack_Count (Increment : Nat) is
!       PSC : Nat renames Units.Table (Current_Sem_Unit).Primary_Stack_Count;
     begin
        PSC := PSC + Increment;
     end Increment_Primary_Stack_Count;
*************** package body Lib is
*** 1044,1051 ****
     -- Increment_Sec_Stack_Count --
     -------------------------------
  
!    procedure Increment_Sec_Stack_Count (Increment : Int) is
!       SSC : Int renames Units.Table (Current_Sem_Unit).Sec_Stack_Count;
     begin
        SSC := SSC + Increment;
     end Increment_Sec_Stack_Count;
--- 1051,1058 ----
     -- Increment_Sec_Stack_Count --
     -------------------------------
  
!    procedure Increment_Sec_Stack_Count (Increment : Nat) is
!       SSC : Nat renames Units.Table (Current_Sem_Unit).Sec_Stack_Count;
     begin
        SSC := SSC + Increment;
     end Increment_Sec_Stack_Count;
*************** package body Lib is
*** 1330,1341 ****
                 if Nkind (Context_Item) = N_With_Clause
                   and then not Limited_Present (Context_Item)
                 then
!                   pragma Assert (Present (Library_Unit (Context_Item)));
                    Write_Unit_Name
                      (Unit_Name
!                        (Get_Cunit_Unit_Number (Library_Unit (Context_Item))));
  
!                   if Implicit_With (Context_Item) then
                       Write_Str (" -- implicit");
                    end if;
  
--- 1337,1349 ----
                 if Nkind (Context_Item) = N_With_Clause
                   and then not Limited_Present (Context_Item)
                 then
!                   pragma Assert (Present (Withed_Lib_Unit (Context_Item)));
                    Write_Unit_Name
                      (Unit_Name
!                       (Get_Cunit_Unit_Number
!                         (Withed_Lib_Unit (Context_Item))));
  
!                   if Is_Implicit_With (Context_Item) then
                       Write_Str (" -- implicit");
                    end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/lib.ads gcc-15.1.0/gcc/ada/lib.ads
*** gcc-14.2.0/gcc/ada/lib.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/lib.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Lib is
*** 463,470 ****
     function No_Elab_Code_All (U : Unit_Number_Type) return Boolean;
     function OA_Setting       (U : Unit_Number_Type) return Character;
     function Primary_Stack_Count
!                              (U : Unit_Number_Type) return Int;
!    function Sec_Stack_Count  (U : Unit_Number_Type) return Int;
     function Source_Index     (U : Unit_Number_Type) return Source_File_Index;
     function Unit_File_Name   (U : Unit_Number_Type) return File_Name_Type;
     function Unit_Name        (U : Unit_Number_Type) return Unit_Name_Type;
--- 463,470 ----
     function No_Elab_Code_All (U : Unit_Number_Type) return Boolean;
     function OA_Setting       (U : Unit_Number_Type) return Character;
     function Primary_Stack_Count
!                              (U : Unit_Number_Type) return Nat;
!    function Sec_Stack_Count  (U : Unit_Number_Type) return Nat;
     function Source_Index     (U : Unit_Number_Type) return Source_File_Index;
     function Unit_File_Name   (U : Unit_Number_Type) return File_Name_Type;
     function Unit_Name        (U : Unit_Number_Type) return Unit_Name_Type;
*************** package Lib is
*** 686,696 ****
     --  source unit, the criterion being that Get_Source_Unit yields the
     --  same value for each argument.
  
!    procedure Increment_Primary_Stack_Count (Increment : Int);
     --  Increment the Primary_Stack_Count field for the current unit by
     --  Increment.
  
!    procedure Increment_Sec_Stack_Count (Increment : Int);
     --  Increment the Sec_Stack_Count field for the current unit by Increment
  
     function Increment_Serial_Number return Nat;
--- 686,696 ----
     --  source unit, the criterion being that Get_Source_Unit yields the
     --  same value for each argument.
  
!    procedure Increment_Primary_Stack_Count (Increment : Nat);
     --  Increment the Primary_Stack_Count field for the current unit by
     --  Increment.
  
!    procedure Increment_Sec_Stack_Count (Increment : Nat);
     --  Increment the Sec_Stack_Count field for the current unit by Increment
  
     function Increment_Serial_Number return Nat;
*************** private
*** 861,868 ****
        Ident_String           : Node_Id;
        Main_Priority          : Int;
        Main_CPU               : Int;
!       Primary_Stack_Count    : Int;
!       Sec_Stack_Count        : Int;
        Serial_Number          : Nat;
        Version                : Word;
        Error_Location         : Source_Ptr;
--- 861,868 ----
        Ident_String           : Node_Id;
        Main_Priority          : Int;
        Main_CPU               : Int;
!       Primary_Stack_Count    : Nat;
!       Sec_Stack_Count        : Nat;
        Serial_Number          : Nat;
        Version                : Word;
        Error_Location         : Source_Ptr;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-astaco.adb gcc-15.1.0/gcc/ada/libgnarl/a-astaco.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-astaco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-astaco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-dispat.adb gcc-15.1.0/gcc/ada/libgnarl/a-dispat.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-dispat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-dispat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-dynpri.adb gcc-15.1.0/gcc/ada/libgnarl/a-dynpri.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-dynpri.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-dynpri.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-dynpri.ads gcc-15.1.0/gcc/ada/libgnarl/a-dynpri.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-dynpri.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-dynpri.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,22 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This unit implements dynamic priority support for Ada tasking as defined
+ --  in ARM D.5.1. It allows a tasks priority to be changed after the task has
+ --  been created.
+ 
  with System;
  with Ada.Task_Identification;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-etgrbu.ads gcc-15.1.0/gcc/ada/libgnarl/a-etgrbu.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-etgrbu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-etgrbu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb gcc-15.1.0/gcc/ada/libgnarl/a-exetim__darwin.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-exetim__darwin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-exetim__default.ads gcc-15.1.0/gcc/ada/libgnarl/a-exetim__default.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-exetim__default.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-exetim__default.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb gcc-15.1.0/gcc/ada/libgnarl/a-exetim__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-exetim__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads gcc-15.1.0/gcc/ada/libgnarl/a-exetim__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-exetim__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-exetim__posix.adb gcc-15.1.0/gcc/ada/libgnarl/a-exetim__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-exetim__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-exetim__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Execution_Time is
*** 113,126 ****
        function clock_gettime
          (clock_id : Interfaces.C.int;
           tp       : access timespec)
!          return int;
        pragma Import (C, clock_gettime, "clock_gettime");
        --  Function from the POSIX.1b Realtime Extensions library
  
        function pthread_getcpuclockid
          (tid       : Thread_Id;
           clock_id  : access Interfaces.C.int)
!          return int;
        pragma Import (C, pthread_getcpuclockid, "pthread_getcpuclockid");
        --  Function from the Thread CPU-Time Clocks option
  
--- 113,126 ----
        function clock_gettime
          (clock_id : Interfaces.C.int;
           tp       : access timespec)
!          return Interfaces.C.int;
        pragma Import (C, clock_gettime, "clock_gettime");
        --  Function from the POSIX.1b Realtime Extensions library
  
        function pthread_getcpuclockid
          (tid       : Thread_Id;
           clock_id  : access Interfaces.C.int)
!          return Interfaces.C.int;
        pragma Import (C, pthread_getcpuclockid, "pthread_getcpuclockid");
        --  Function from the Thread CPU-Time Clocks option
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-interr.adb gcc-15.1.0/gcc/ada/libgnarl/a-interr.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-interr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-interr.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-interr.ads gcc-15.1.0/gcc/ada/libgnarl/a-interr.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-interr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-interr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__aix.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__aix.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__aix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__aix.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__bsd.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__bsd.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__bsd.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__bsd.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,136 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                   A D A . I N T E R R U P T S . N A M E S                --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the BSD THREADS version of this package
+ 
+ with System.OS_Interface;
+ 
+ package Ada.Interrupts.Names is
+ 
+    --  All identifiers in this unit are implementation defined
+ 
+    pragma Implementation_Defined;
+ 
+    --  Beware that the mapping of names to signals may be many-to-one. There
+    --  may be aliases. Also, for all signal names that are not supported on
+    --  the current system the value of the corresponding constant will be zero.
+ 
+    SIGHUP : constant Interrupt_ID :=
+      System.OS_Interface.SIGHUP;      --  hangup
+ 
+    SIGINT : constant Interrupt_ID :=
+      System.OS_Interface.SIGINT;      --  interrupt (rubout)
+ 
+    SIGQUIT : constant Interrupt_ID :=
+      System.OS_Interface.SIGQUIT;     --  quit (ASCD FS)
+ 
+    SIGILL : constant Interrupt_ID :=
+      System.OS_Interface.SIGILL;      --  illegal instruction (not reset)
+ 
+    SIGTRAP : constant Interrupt_ID :=
+      System.OS_Interface.SIGTRAP;     --  trace trap (not reset)
+ 
+    SIGIOT : constant Interrupt_ID :=
+      System.OS_Interface.SIGIOT;      --  IOT instruction
+ 
+    SIGABRT : constant Interrupt_ID := --  used by abort,
+      System.OS_Interface.SIGABRT;     --  replace SIGIOT in the  future
+ 
+    SIGFPE : constant Interrupt_ID :=
+      System.OS_Interface.SIGFPE;      --  floating point exception
+ 
+    SIGKILL : constant Interrupt_ID :=
+      System.OS_Interface.SIGKILL;     --  kill (cannot be caught or ignored)
+ 
+    SIGBUS : constant Interrupt_ID :=
+      System.OS_Interface.SIGBUS;      --  bus error
+ 
+    SIGSEGV : constant Interrupt_ID :=
+      System.OS_Interface.SIGSEGV;     --  segmentation violation
+ 
+    SIGPIPE : constant Interrupt_ID := --  write on a pipe with
+      System.OS_Interface.SIGPIPE;     --  no one to read it
+ 
+    SIGALRM : constant Interrupt_ID :=
+      System.OS_Interface.SIGALRM;     --  alarm clock
+ 
+    SIGTERM : constant Interrupt_ID :=
+      System.OS_Interface.SIGTERM;     --  software termination signal from kill
+ 
+    SIGURG : constant Interrupt_ID :=
+      System.OS_Interface.SIGURG;      --  urgent condition on IO channel
+ 
+    SIGSTOP : constant Interrupt_ID :=
+      System.OS_Interface.SIGSTOP;     --  stop (cannot be caught or ignored)
+ 
+    SIGTSTP : constant Interrupt_ID :=
+      System.OS_Interface.SIGTSTP;     --  user stop requested from tty
+ 
+    SIGCONT : constant Interrupt_ID :=
+      System.OS_Interface.SIGCONT;     --  stopped process has been continued
+ 
+    SIGCHLD : constant Interrupt_ID :=
+      System.OS_Interface.SIGCHLD;     --  4.3BSD's/POSIX name for SIGCLD
+ 
+    SIGCLD : constant Interrupt_ID :=
+      System.OS_Interface.SIGCLD;      --  child status change
+ 
+    SIGTTIN : constant Interrupt_ID :=
+      System.OS_Interface.SIGTTIN;     --  background tty read attempted
+ 
+    SIGTTOU : constant Interrupt_ID :=
+      System.OS_Interface.SIGTTOU;     --  background tty write attempted
+ 
+    SIGIO : constant Interrupt_ID :=   --  input/output possible,
+      System.OS_Interface.SIGIO;       --  SIGPOLL alias (Solaris)
+ 
+    SIGXCPU : constant Interrupt_ID :=
+      System.OS_Interface.SIGXCPU;     --  CPU time limit exceeded
+ 
+    SIGXFSZ : constant Interrupt_ID :=
+      System.OS_Interface.SIGXFSZ;     --  filesize limit exceeded
+ 
+    SIGVTALRM : constant Interrupt_ID :=
+      System.OS_Interface.SIGVTALRM;   --  virtual timer expired
+ 
+    SIGPROF : constant Interrupt_ID :=
+      System.OS_Interface.SIGPROF;     --  profiling timer expired
+ 
+    SIGWINCH : constant Interrupt_ID :=
+      System.OS_Interface.SIGWINCH;    --  window size change
+ 
+    SIGUSR1 : constant Interrupt_ID :=
+      System.OS_Interface.SIGUSR1;     --  user defined signal 1
+ 
+    SIGUSR2 : constant Interrupt_ID :=
+      System.OS_Interface.SIGUSR2;     --  user defined signal 2
+ 
+ end Ada.Interrupts.Names;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__darwin.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__darwin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,136 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                   A D A . I N T E R R U P T S . N A M E S                --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is the DragonFly BSD THREADS version of this package
- 
- with System.OS_Interface;
- 
- package Ada.Interrupts.Names is
- 
-    --  All identifiers in this unit are implementation defined
- 
-    pragma Implementation_Defined;
- 
-    --  Beware that the mapping of names to signals may be many-to-one. There
-    --  may be aliases. Also, for all signal names that are not supported on
-    --  the current system the value of the corresponding constant will be zero.
- 
-    SIGHUP : constant Interrupt_ID :=
-      System.OS_Interface.SIGHUP;      --  hangup
- 
-    SIGINT : constant Interrupt_ID :=
-      System.OS_Interface.SIGINT;      --  interrupt (rubout)
- 
-    SIGQUIT : constant Interrupt_ID :=
-      System.OS_Interface.SIGQUIT;     --  quit (ASCD FS)
- 
-    SIGILL : constant Interrupt_ID :=
-      System.OS_Interface.SIGILL;      --  illegal instruction (not reset)
- 
-    SIGTRAP : constant Interrupt_ID :=
-      System.OS_Interface.SIGTRAP;     --  trace trap (not reset)
- 
-    SIGIOT : constant Interrupt_ID :=
-      System.OS_Interface.SIGIOT;      --  IOT instruction
- 
-    SIGABRT : constant Interrupt_ID := --  used by abort,
-      System.OS_Interface.SIGABRT;     --  replace SIGIOT in the  future
- 
-    SIGFPE : constant Interrupt_ID :=
-      System.OS_Interface.SIGFPE;      --  floating point exception
- 
-    SIGKILL : constant Interrupt_ID :=
-      System.OS_Interface.SIGKILL;     --  kill (cannot be caught or ignored)
- 
-    SIGBUS : constant Interrupt_ID :=
-      System.OS_Interface.SIGBUS;      --  bus error
- 
-    SIGSEGV : constant Interrupt_ID :=
-      System.OS_Interface.SIGSEGV;     --  segmentation violation
- 
-    SIGPIPE : constant Interrupt_ID := --  write on a pipe with
-      System.OS_Interface.SIGPIPE;     --  no one to read it
- 
-    SIGALRM : constant Interrupt_ID :=
-      System.OS_Interface.SIGALRM;     --  alarm clock
- 
-    SIGTERM : constant Interrupt_ID :=
-      System.OS_Interface.SIGTERM;     --  software termination signal from kill
- 
-    SIGURG : constant Interrupt_ID :=
-      System.OS_Interface.SIGURG;      --  urgent condition on IO channel
- 
-    SIGSTOP : constant Interrupt_ID :=
-      System.OS_Interface.SIGSTOP;     --  stop (cannot be caught or ignored)
- 
-    SIGTSTP : constant Interrupt_ID :=
-      System.OS_Interface.SIGTSTP;     --  user stop requested from tty
- 
-    SIGCONT : constant Interrupt_ID :=
-      System.OS_Interface.SIGCONT;     --  stopped process has been continued
- 
-    SIGCHLD : constant Interrupt_ID :=
-      System.OS_Interface.SIGCHLD;     --  4.3BSD's/POSIX name for SIGCLD
- 
-    SIGCLD : constant Interrupt_ID :=
-      System.OS_Interface.SIGCLD;      --  child status change
- 
-    SIGTTIN : constant Interrupt_ID :=
-      System.OS_Interface.SIGTTIN;     --  background tty read attempted
- 
-    SIGTTOU : constant Interrupt_ID :=
-      System.OS_Interface.SIGTTOU;     --  background tty write attempted
- 
-    SIGIO : constant Interrupt_ID :=   --  input/output possible,
-      System.OS_Interface.SIGIO;       --  SIGPOLL alias (Solaris)
- 
-    SIGXCPU : constant Interrupt_ID :=
-      System.OS_Interface.SIGXCPU;     --  CPU time limit exceeded
- 
-    SIGXFSZ : constant Interrupt_ID :=
-      System.OS_Interface.SIGXFSZ;     --  filesize limit exceeded
- 
-    SIGVTALRM : constant Interrupt_ID :=
-      System.OS_Interface.SIGVTALRM;   --  virtual timer expired
- 
-    SIGPROF : constant Interrupt_ID :=
-      System.OS_Interface.SIGPROF;     --  profiling timer expired
- 
-    SIGWINCH : constant Interrupt_ID :=
-      System.OS_Interface.SIGWINCH;    --  window size change
- 
-    SIGUSR1 : constant Interrupt_ID :=
-      System.OS_Interface.SIGUSR1;     --  user defined signal 1
- 
-    SIGUSR2 : constant Interrupt_ID :=
-      System.OS_Interface.SIGUSR2;     --  user defined signal 2
- 
- end Ada.Interrupts.Names;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                           (No Tasking Version)                           --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                           (No Tasking Version)                           --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__freebsd.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__freebsd.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__freebsd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__freebsd.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,136 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                   A D A . I N T E R R U P T S . N A M E S                --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is the FreeBSD THREADS version of this package
- 
- with System.OS_Interface;
- 
- package Ada.Interrupts.Names is
- 
-    --  All identifiers in this unit are implementation defined
- 
-    pragma Implementation_Defined;
- 
-    --  Beware that the mapping of names to signals may be many-to-one. There
-    --  may be aliases. Also, for all signal names that are not supported on
-    --  the current system the value of the corresponding constant will be zero.
- 
-    SIGHUP : constant Interrupt_ID :=
-      System.OS_Interface.SIGHUP;      --  hangup
- 
-    SIGINT : constant Interrupt_ID :=
-      System.OS_Interface.SIGINT;      --  interrupt (rubout)
- 
-    SIGQUIT : constant Interrupt_ID :=
-      System.OS_Interface.SIGQUIT;     --  quit (ASCD FS)
- 
-    SIGILL : constant Interrupt_ID :=
-      System.OS_Interface.SIGILL;      --  illegal instruction (not reset)
- 
-    SIGTRAP : constant Interrupt_ID :=
-      System.OS_Interface.SIGTRAP;     --  trace trap (not reset)
- 
-    SIGIOT : constant Interrupt_ID :=
-      System.OS_Interface.SIGIOT;      --  IOT instruction
- 
-    SIGABRT : constant Interrupt_ID := --  used by abort,
-      System.OS_Interface.SIGABRT;     --  replace SIGIOT in the  future
- 
-    SIGFPE : constant Interrupt_ID :=
-      System.OS_Interface.SIGFPE;      --  floating point exception
- 
-    SIGKILL : constant Interrupt_ID :=
-      System.OS_Interface.SIGKILL;     --  kill (cannot be caught or ignored)
- 
-    SIGBUS : constant Interrupt_ID :=
-      System.OS_Interface.SIGBUS;      --  bus error
- 
-    SIGSEGV : constant Interrupt_ID :=
-      System.OS_Interface.SIGSEGV;     --  segmentation violation
- 
-    SIGPIPE : constant Interrupt_ID := --  write on a pipe with
-      System.OS_Interface.SIGPIPE;     --  no one to read it
- 
-    SIGALRM : constant Interrupt_ID :=
-      System.OS_Interface.SIGALRM;     --  alarm clock
- 
-    SIGTERM : constant Interrupt_ID :=
-      System.OS_Interface.SIGTERM;     --  software termination signal from kill
- 
-    SIGURG : constant Interrupt_ID :=
-      System.OS_Interface.SIGURG;      --  urgent condition on IO channel
- 
-    SIGSTOP : constant Interrupt_ID :=
-      System.OS_Interface.SIGSTOP;     --  stop (cannot be caught or ignored)
- 
-    SIGTSTP : constant Interrupt_ID :=
-      System.OS_Interface.SIGTSTP;     --  user stop requested from tty
- 
-    SIGCONT : constant Interrupt_ID :=
-      System.OS_Interface.SIGCONT;     --  stopped process has been continued
- 
-    SIGCHLD : constant Interrupt_ID :=
-      System.OS_Interface.SIGCHLD;     --  4.3BSD's/POSIX name for SIGCLD
- 
-    SIGCLD : constant Interrupt_ID :=
-      System.OS_Interface.SIGCLD;      --  child status change
- 
-    SIGTTIN : constant Interrupt_ID :=
-      System.OS_Interface.SIGTTIN;     --  background tty read attempted
- 
-    SIGTTOU : constant Interrupt_ID :=
-      System.OS_Interface.SIGTTOU;     --  background tty write attempted
- 
-    SIGIO : constant Interrupt_ID :=   --  input/output possible,
-      System.OS_Interface.SIGIO;       --  SIGPOLL alias (Solaris)
- 
-    SIGXCPU : constant Interrupt_ID :=
-      System.OS_Interface.SIGXCPU;     --  CPU time limit exceeded
- 
-    SIGXFSZ : constant Interrupt_ID :=
-      System.OS_Interface.SIGXFSZ;     --  filesize limit exceeded
- 
-    SIGVTALRM : constant Interrupt_ID :=
-      System.OS_Interface.SIGVTALRM;   --  virtual timer expired
- 
-    SIGPROF : constant Interrupt_ID :=
-      System.OS_Interface.SIGPROF;     --  profiling timer expired
- 
-    SIGWINCH : constant Interrupt_ID :=
-      System.OS_Interface.SIGWINCH;    --  window size change
- 
-    SIGUSR1 : constant Interrupt_ID :=
-      System.OS_Interface.SIGUSR1;     --  user defined signal 1
- 
-    SIGUSR2 : constant Interrupt_ID :=
-      System.OS_Interface.SIGUSR2;     --  user defined signal 2
- 
- end Ada.Interrupts.Names;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__hpux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__hpux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__linux.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__linux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__linux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__linux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__lynxos.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__lynxos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__qnx.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__qnx.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__rtems.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__rtems.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/a-intnam__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-intnam__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-reatim.adb gcc-15.1.0/gcc/ada/libgnarl/a-reatim.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-reatim.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-reatim.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 216,222 ****
        --  Special-case for Time_First, whose absolute value is anomalous,
        --  courtesy of two's complement.
  
!       T_Val := (if T = Time_First then abs (Time_Last) else abs (T));
  
        --  Extract the integer part of T, truncating towards zero
  
--- 216,222 ----
        --  Special-case for Time_First, whose absolute value is anomalous,
        --  courtesy of two's complement.
  
!       T_Val := (if T = Time_First then abs Time_Last else abs T);
  
        --  Extract the integer part of T, truncating towards zero
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-reatim.ads gcc-15.1.0/gcc/ada/libgnarl/a-reatim.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-reatim.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-reatim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,45 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  Package ``Ada.Real_Time`` provides basic definitions and operations related
+ --  to the types defined ``Time`` and ``Time_Span`` as defined by ARM D.8. The
+ --  types ``Time`` and ``Time_Span`` are implemented by the ``Duration`` type.
+ --
+ --  This software layer provides the Ada abstraction for time handling and
+ --  delays, using the services provided by lower layers.
+ 
  with System.Task_Primitives.Operations;
  pragma Elaborate_All (System.Task_Primitives.Operations);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-retide.adb gcc-15.1.0/gcc/ada/libgnarl/a-retide.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-retide.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-retide.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,41 ****
--- 31,43 ----
  
  with Ada.Exceptions;
  
+ with System.Soft_Links;
  with System.Tasking;
  with System.Task_Primitives.Operations;
  
  package body Ada.Real_Time.Delays is
  
+    package SSL  renames System.Soft_Links;
     package STPO renames System.Task_Primitives.Operations;
  
     ----------------
*************** package body Ada.Real_Time.Delays is
*** 62,68 ****
--- 64,72 ----
           Ada.Exceptions.Raise_Exception
             (Program_Error'Identity, "potentially blocking operation");
        else
+          SSL.Abort_Defer.all;
           STPO.Timed_Delay (Self_Id, To_Duration (T), Absolute_RT);
+          SSL.Abort_Undefer.all;
        end if;
     end Delay_Until;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-retide.ads gcc-15.1.0/gcc/ada/libgnarl/a-retide.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-retide.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-retide.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-rttiev.adb gcc-15.1.0/gcc/ada/libgnarl/a-rttiev.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-rttiev.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-rttiev.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2005-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2005-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,38 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with System.Task_Primitives.Operations;
  with System.Tasking.Utilities;
- with System.Soft_Links;
- with System.Interrupt_Management.Operations;
  
  with Ada.Containers.Doubly_Linked_Lists;
  pragma Elaborate_All (Ada.Containers.Doubly_Linked_Lists);
--- 29,39 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Interrupt_Management.Operations;
+ with System.OS_Locks;
+ with System.Soft_Links;
  with System.Task_Primitives.Operations;
  with System.Tasking.Utilities;
  
  with Ada.Containers.Doubly_Linked_Lists;
  pragma Elaborate_All (Ada.Containers.Doubly_Linked_Lists);
*************** package body Ada.Real_Time.Timing_Events
*** 61,67 ****
     --  The queue of pending events, ordered by increasing timeout value, that
     --  have been "set" by the user via Set_Handler.
  
!    Event_Queue_Lock : aliased System.Task_Primitives.RTS_Lock;
     --  Used for mutually exclusive access to All_Events
  
     --  We need to Initialize_Lock before Timer is activated. The purpose of the
--- 62,68 ----
     --  The queue of pending events, ordered by increasing timeout value, that
     --  have been "set" by the user via Set_Handler.
  
!    Event_Queue_Lock : aliased System.OS_Locks.RTS_Lock;
     --  Used for mutually exclusive access to All_Events
  
     --  We need to Initialize_Lock before Timer is activated. The purpose of the
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-rttiev.ads gcc-15.1.0/gcc/ada/libgnarl/a-rttiev.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-rttiev.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-rttiev.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2005-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2005-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-synbar.adb gcc-15.1.0/gcc/ada/libgnarl/a-synbar.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-synbar.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-synbar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-synbar.ads gcc-15.1.0/gcc/ada/libgnarl/a-synbar.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-synbar.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-synbar.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package implements functionality defined by ARM D.10.1 to
+ --  synchronously release multiple blocked tasks after the number
+ --  of blocked tasks has reached a specified threshold.
+ 
  package Ada.Synchronous_Barriers with SPARK_Mode => Off is
     pragma Preelaborate (Synchronous_Barriers);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-synbar__posix.adb gcc-15.1.0/gcc/ada/libgnarl/a-synbar__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-synbar__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-synbar__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-synbar__posix.ads gcc-15.1.0/gcc/ada/libgnarl/a-synbar__posix.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-synbar__posix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-synbar__posix.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-sytaco.adb gcc-15.1.0/gcc/ada/libgnarl/a-sytaco.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-sytaco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-sytaco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-sytaco.ads gcc-15.1.0/gcc/ada/libgnarl/a-sytaco.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-sytaco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-sytaco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-tasatt.adb gcc-15.1.0/gcc/ada/libgnarl/a-tasatt.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-tasatt.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-tasatt.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-tasatt.ads gcc-15.1.0/gcc/ada/libgnarl/a-tasatt.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-tasatt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-tasatt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-taside.adb gcc-15.1.0/gcc/ada/libgnarl/a-taside.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-taside.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-taside.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-taside.ads gcc-15.1.0/gcc/ada/libgnarl/a-taside.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-taside.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-taside.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package implements Ada task identification as defined by ARM C.7.1.
+ 
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised.
  --  This is enforced by setting the corresponding assertion policy to Ignore.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-tasini.adb gcc-15.1.0/gcc/ada/libgnarl/a-tasini.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-tasini.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-tasini.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-tasini.ads gcc-15.1.0/gcc/ada/libgnarl/a-tasini.ads
*** gcc-14.2.0/gcc/ada/libgnarl/a-tasini.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-tasini.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/a-taster.adb gcc-15.1.0/gcc/ada/libgnarl/a-taster.adb
*** gcc-14.2.0/gcc/ada/libgnarl/a-taster.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/a-taster.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-boubuf.adb gcc-15.1.0/gcc/ada/libgnarl/g-boubuf.adb
*** gcc-14.2.0/gcc/ada/libgnarl/g-boubuf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-boubuf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-boubuf.ads gcc-15.1.0/gcc/ada/libgnarl/g-boubuf.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-boubuf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-boubuf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-boumai.ads gcc-15.1.0/gcc/ada/libgnarl/g-boumai.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-boumai.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-boumai.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-semaph.adb gcc-15.1.0/gcc/ada/libgnarl/g-semaph.adb
*** gcc-14.2.0/gcc/ada/libgnarl/g-semaph.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-semaph.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-semaph.ads gcc-15.1.0/gcc/ada/libgnarl/g-semaph.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-semaph.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-semaph.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-signal.adb gcc-15.1.0/gcc/ada/libgnarl/g-signal.adb
*** gcc-14.2.0/gcc/ada/libgnarl/g-signal.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-signal.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-signal.ads gcc-15.1.0/gcc/ada/libgnarl/g-signal.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-signal.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-signal.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-tastus.ads gcc-15.1.0/gcc/ada/libgnarl/g-tastus.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-tastus.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-tastus.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-thread.adb gcc-15.1.0/gcc/ada/libgnarl/g-thread.adb
*** gcc-14.2.0/gcc/ada/libgnarl/g-thread.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-thread.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1998-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1998-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/g-thread.ads gcc-15.1.0/gcc/ada/libgnarl/g-thread.ads
*** gcc-14.2.0/gcc/ada/libgnarl/g-thread.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/g-thread.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/i-vxinco.adb gcc-15.1.0/gcc/ada/libgnarl/i-vxinco.adb
*** gcc-14.2.0/gcc/ada/libgnarl/i-vxinco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/i-vxinco.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,48 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --     I N T E R F A C E S . V X W O R K S . I N T  _ C O N N E C T I O N   --
- --                                                                          --
- --                                  B o d y                                 --
- --                                                                          --
- --                        Copyright (C) 2016-2024, AdaCore                  --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package body Interfaces.VxWorks.Int_Connection is
- 
-    Connection_Routine : Interrupt_Connector;
-    pragma Import (C, Connection_Routine, "__gnat_user_int_connect");
-    --  Declared in System.Interrupts. Defaults to the standard OS connector in
-    --  System.OS_Interface (or Interfaces.VxWorks for restricted runtimes).
- 
-    -------------
-    -- Connect --
-    -------------
- 
-    procedure Connect (Connector : Interrupt_Connector) is
-    begin
-       Connection_Routine := Connector;
-    end Connect;
- 
- end Interfaces.VxWorks.Int_Connection;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/i-vxinco.ads gcc-15.1.0/gcc/ada/libgnarl/i-vxinco.ads
*** gcc-14.2.0/gcc/ada/libgnarl/i-vxinco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/i-vxinco.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,56 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --     I N T E R F A C E S . V X W O R K S . I N T  _ C O N N E C T I O N   --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --                        Copyright (C) 2016-2024, AdaCore                  --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package provides users with the ability to use a custom routine for
- --  connecting hardware interrupts for VxWorks environments that support the
- --  capability to handle them. The custom routine must have the same profile
- --  as the VxWorks intConnect() routine.
- 
- with System;
- 
- package Interfaces.VxWorks.Int_Connection is
- 
-    type Interrupt_Connector is access function
-      (Vector    : Interrupt_Vector;
-       Handler   : VOIDFUNCPTR;
-       Parameter : System.Address := System.Null_Address) return STATUS;
-    pragma Convention (C, Interrupt_Connector);
-    --  Convention C for compatibility with intConnect(). User alternatives are
-    --  likely to be imports of C routines anyway.
- 
-    procedure Connect (Connector : Interrupt_Connector);
-    --  Set user-defined interrupt connection routine. Must precede calls to
-    --  Ada.Interrupts.Attach_Handler, or the default connector from
-    --  System.OS_Interface (or Interfaces.VxWorks for Ravenscar Cert) will be
-    --  used. Can be called multiple times to change the connection routine for
-    --  subsequent calls to Attach_Handler.
- 
- end Interfaces.VxWorks.Int_Connection;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-inmaop.ads gcc-15.1.0/gcc/ada/libgnarl/s-inmaop.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-inmaop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-inmaop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__hwint.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__hwint.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-inmaop__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr.adb gcc-15.1.0/gcc/ada/libgnarl/s-interr.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr.ads gcc-15.1.0/gcc/ada/libgnarl/s-interr.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr__dummy.adb gcc-15.1.0/gcc/ada/libgnarl/s-interr__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr__hwint.adb gcc-15.1.0/gcc/ada/libgnarl/s-interr__hwint.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr__hwint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr__hwint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 482,490 ****
        Handler   : System.OS_Interface.Interrupt_Handler)
     is
        Vec : constant Interrupt_Vector :=
!               Interrupt_Number_To_Vector (int (Interrupt));
  
!       Status : int;
  
     begin
        --  Only install umbrella handler when no Ada handler has already been
--- 482,491 ----
        Handler   : System.OS_Interface.Interrupt_Handler)
     is
        Vec : constant Interrupt_Vector :=
!               Interrupt_Number_To_Vector
!                 (Interfaces.C.int (Interrupt));
  
!       Status : Interfaces.C.int;
  
     begin
        --  Only install umbrella handler when no Ada handler has already been
*************** package body System.Interrupts is
*** 613,619 ****
     procedure Notify_Interrupt (Param : System.Address) is
        Interrupt : constant Interrupt_ID := Interrupt_ID (Param);
        Id        : constant Binary_Semaphore_Id := Semaphore_ID_Map (Interrupt);
!       Status    : int;
     begin
        if Id /= 0 then
           Status := Binary_Semaphore_Release (Id);
--- 614,620 ----
     procedure Notify_Interrupt (Param : System.Address) is
        Interrupt : constant Interrupt_ID := Interrupt_ID (Param);
        Id        : constant Binary_Semaphore_Id := Semaphore_ID_Map (Interrupt);
!       Status    : Interfaces.C.int;
     begin
        if Id /= 0 then
           Status := Binary_Semaphore_Release (Id);
*************** package body System.Interrupts is
*** 744,750 ****
        --------------------
  
        procedure Unbind_Handler (Interrupt : Interrupt_ID) is
!          Status : int;
  
        begin
           --  Flush server task off semaphore, allowing it to terminate
--- 745,751 ----
        --------------------
  
        procedure Unbind_Handler (Interrupt : Interrupt_ID) is
!          Status : Interfaces.C.int;
  
        begin
           --  Flush server task off semaphore, allowing it to terminate
*************** package body System.Interrupts is
*** 1024,1030 ****
        Tmp_Handler     : Parameterless_Handler;
        Tmp_ID          : Task_Id;
        Tmp_Entry_Index : Task_Entry_Index;
!       Status          : int;
  
     begin
        Semaphore_ID_Map (Interrupt) := Int_Sema;
--- 1025,1031 ----
        Tmp_Handler     : Parameterless_Handler;
        Tmp_ID          : Task_Id;
        Tmp_Entry_Index : Task_Entry_Index;
!       Status          : Interfaces.C.int;
  
     begin
        Semaphore_ID_Map (Interrupt) := Int_Sema;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb gcc-15.1.0/gcc/ada/libgnarl/s-interr__sigaction.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr__sigaction.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb gcc-15.1.0/gcc/ada/libgnarl/s-interr__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 208,214 ****
       (Vector    : Interrupt_Vector;
        Handler   : Interrupt_Handler;
        Parameter : System.Address := System.Null_Address) return STATUS;
!    --  Profile must match VxWorks intConnect()
  
     Interrupt_Connect : Interrupt_Connector :=
       System.OS_Interface.Interrupt_Connect'Access;
--- 208,216 ----
       (Vector    : Interrupt_Vector;
        Handler   : Interrupt_Handler;
        Parameter : System.Address := System.Null_Address) return STATUS;
!    --  Profile must match VxWorks intConnect() for VxWorks prior to 7.
!    --  VxWorks 7 does not support intConnect(). The Vxbus subsystem
!    --  should be used instead.
  
     Interrupt_Connect : Interrupt_Connector :=
       System.OS_Interface.Interrupt_Connect'Access;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-interr__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/s-interr__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-interr__vxworks.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/s-interr__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,281 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                     S Y S T E M . I N T E R R U P T S                    --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  Note: the compiler generates direct calls to this interface, via Rtsfind.
+ --  Any changes to this interface may require corresponding compiler changes.
+ 
+ --  This package encapsulates the implementation of interrupt or signal
+ --  handlers. It is logically an extension of the body of Ada.Interrupts. It
+ --  is made a child of System to allow visibility of various runtime system
+ --  internal data and operations.
+ 
+ --  See System.Interrupt_Management for core interrupt/signal interfaces
+ 
+ --  These two packages are separated to allow System.Interrupt_Management to be
+ --  used without requiring the whole tasking implementation to be linked and
+ --  elaborated.
+ 
+ with System.Tasking;
+ with System.Tasking.Protected_Objects.Entries;
+ with System.OS_Interface;
+ 
+ package System.Interrupts is
+ 
+    pragma Elaborate_Body;
+    --  Comment needed on why this is here ???
+ 
+    -------------------------
+    -- Constants and types --
+    -------------------------
+ 
+    Default_Interrupt_Priority : constant System.Interrupt_Priority :=
+      System.Interrupt_Priority'Last;
+    --  Default value used when a pragma Interrupt_Handler or Attach_Handler is
+    --  specified without an Interrupt_Priority pragma, see D.3(10).
+ 
+    type Ada_Interrupt_ID is range 0 .. System.OS_Interface.Max_Interrupt;
+    --  Avoid inheritance by Ada.Interrupts.Interrupt_ID of unwanted operations
+ 
+    type Interrupt_ID is range 0 .. System.OS_Interface.Max_Interrupt;
+ 
+    subtype System_Interrupt_Id is Interrupt_ID;
+    --  This synonym is introduced so that the type is accessible through
+    --  rtsfind, otherwise the name clashes with its homonym in Ada.Interrupts.
+ 
+    type Parameterless_Handler is access protected procedure;
+ 
+    ----------------------
+    -- General services --
+    ----------------------
+ 
+    --  Attempt to attach a Handler to an Interrupt to which an Entry is
+    --  already bound will raise a Program_Error.
+ 
+    function Is_Reserved (Interrupt : Interrupt_ID) return Boolean;
+ 
+    function Is_Entry_Attached (Interrupt : Interrupt_ID) return Boolean;
+ 
+    function Is_Handler_Attached (Interrupt : Interrupt_ID) return Boolean;
+ 
+    function Current_Handler
+      (Interrupt : Interrupt_ID) return Parameterless_Handler;
+ 
+    --  Calling the following procedures with New_Handler = null and Static =
+    --  true means that we want to modify the current handler regardless of the
+    --  previous handler's binding status. (i.e. we do not care whether it is a
+    --  dynamic or static handler)
+ 
+    procedure Attach_Handler
+      (New_Handler : Parameterless_Handler;
+       Interrupt   : Interrupt_ID;
+       Static      : Boolean := False);
+ 
+    procedure Exchange_Handler
+      (Old_Handler : out Parameterless_Handler;
+       New_Handler : Parameterless_Handler;
+       Interrupt   : Interrupt_ID;
+       Static      : Boolean := False);
+ 
+    procedure Detach_Handler
+      (Interrupt : Interrupt_ID;
+       Static    : Boolean := False);
+ 
+    function Reference
+      (Interrupt : Interrupt_ID) return System.Address;
+ 
+    --------------------------------
+    -- Interrupt Entries Services --
+    --------------------------------
+ 
+    --  Routines needed for Interrupt Entries
+ 
+    procedure Bind_Interrupt_To_Entry
+      (T       : System.Tasking.Task_Id;
+       E       : System.Tasking.Task_Entry_Index;
+       Int_Ref : System.Address);
+    --  Bind the given interrupt to the given entry. If the interrupt is
+    --  already bound to another entry, Program_Error will be raised.
+ 
+    procedure Detach_Interrupt_Entries (T : System.Tasking.Task_Id);
+    --  This procedure detaches all the Interrupt Entries bound to a task
+ 
+    ------------------------------
+    -- POSIX.5 Signals Services --
+    ------------------------------
+ 
+    --  Routines needed for POSIX dot5 POSIX_Signals
+ 
+    procedure Block_Interrupt (Interrupt : Interrupt_ID);
+    --  Block the Interrupt on the process level
+ 
+    procedure Unblock_Interrupt (Interrupt : Interrupt_ID);
+ 
+    function Unblocked_By
+      (Interrupt : Interrupt_ID) return System.Tasking.Task_Id;
+    --  It returns the ID of the last Task which Unblocked this Interrupt.
+    --  It returns Null_Task if no tasks have ever requested the Unblocking
+    --  operation or the Interrupt is currently Blocked.
+ 
+    function Is_Blocked (Interrupt : Interrupt_ID) return Boolean;
+    --  Comment needed ???
+ 
+    procedure Ignore_Interrupt (Interrupt : Interrupt_ID);
+    --  Set the sigaction for the interrupt to SIG_IGN
+ 
+    procedure Unignore_Interrupt (Interrupt : Interrupt_ID);
+    --  Comment needed ???
+ 
+    function Is_Ignored (Interrupt : Interrupt_ID) return Boolean;
+    --  Comment needed ???
+ 
+    --  Note : Direct calls to sigaction, sigprocmask, thr_sigsetmask, or any
+    --  other low-level interface that changes the signal action or signal mask
+    --  needs careful thought.
+ 
+    --  One may achieve the effect of system calls first making RTS blocked (by
+    --  calling Block_Interrupt) for the signal under consideration. This will
+    --  make all the tasks in RTS blocked for the Interrupt.
+ 
+    ----------------------
+    -- Protection Types --
+    ----------------------
+ 
+    --  Routines and types needed to implement Interrupt_Handler and
+    --  Attach_Handler.
+ 
+    --  There are two kinds of protected objects that deal with interrupts:
+ 
+    --  (1) Only Interrupt_Handler pragmas are used. We need to be able to tell
+    --  if an Interrupt_Handler applies to a given procedure, so
+    --  Register_Interrupt_Handler has to be called for all the potential
+    --  handlers, it should be done by calling Register_Interrupt_Handler with
+    --  the handler code address. On finalization, which can happen only has
+    --  part of library level finalization since PO with Interrupt_Handler
+    --  pragmas can only be declared at library level, nothing special needs to
+    --  be done since the default handlers have been restored as part of task
+    --  completion which is done just before global finalization.
+    --  Dynamic_Interrupt_Protection should be used in this case.
+ 
+    --  (2) Attach_Handler pragmas are used, and possibly Interrupt_Handler
+    --  pragma. We need to attach the handlers to the given interrupts when the
+    --  object is elaborated. This should be done by constructing an array of
+    --  pairs (interrupt, handler) from the pragmas and calling Install_Handlers
+    --  with it (types to be used are New_Handler_Item and New_Handler_Array).
+    --  On finalization, we need to restore the handlers that were installed
+    --  before the elaboration of the PO, so we need to store these previous
+    --  handlers. This is also done by Install_Handlers, the room for this
+    --  information is provided by adding a discriminant which is the number
+    --  of Attach_Handler pragmas and an array of this size in the protection
+    --  type, Static_Interrupt_Protection.
+ 
+    procedure Register_Interrupt_Handler (Handler_Addr : System.Address);
+    pragma Obsolescent
+      (Entity  => Register_Interrupt_Handler,
+       Message =>
+         "Use the VXBus subsystem instead of Interrupt and Attach Handlers");
+    --  This routine should be called by the compiler to allow the handler be
+    --  used as an Interrupt Handler. That means call this procedure for each
+    --  pragma Interrupt_Handler providing the address of the handler (not
+    --  including the pointer to the actual PO, this way this routine is called
+    --  only once for each type definition of PO).
+ 
+    type Static_Handler_Index is range 0 .. Integer'Last;
+    subtype Positive_Static_Handler_Index is
+      Static_Handler_Index range 1 .. Static_Handler_Index'Last;
+    --  Comment needed ???
+ 
+    type Previous_Handler_Item is record
+       Interrupt : Interrupt_ID;
+       Handler   : Parameterless_Handler;
+       Static    : Boolean;
+    end record;
+    --  Contains all the information needed to restore a previous handler
+ 
+    type Previous_Handler_Array is array
+      (Positive_Static_Handler_Index range <>) of Previous_Handler_Item;
+ 
+    type New_Handler_Item is record
+       Interrupt : Interrupt_ID;
+       Handler   : Parameterless_Handler;
+    end record;
+    --  Contains all the information from an Attach_Handler pragma
+ 
+    type New_Handler_Array is
+      array (Positive_Static_Handler_Index range <>) of New_Handler_Item;
+    --  Comment needed ???
+ 
+    --  Case (1)
+ 
+    type Dynamic_Interrupt_Protection is new
+      Tasking.Protected_Objects.Entries.Protection_Entries with null record;
+ 
+    --  ??? Finalize is not overloaded since we currently have no
+    --  way to detach the handlers during library level finalization.
+ 
+    function Has_Interrupt_Or_Attach_Handler
+      (Object : access Dynamic_Interrupt_Protection) return Boolean;
+    --  Returns True
+ 
+    --  Case (2)
+ 
+    type Static_Interrupt_Protection
+      (Num_Entries        : Tasking.Protected_Objects.Protected_Entry_Index;
+       Num_Attach_Handler : Static_Handler_Index)
+    is new
+      Tasking.Protected_Objects.Entries.Protection_Entries (Num_Entries) with
+      record
+        Previous_Handlers : Previous_Handler_Array (1 .. Num_Attach_Handler);
+      end record;
+ 
+    function Has_Interrupt_Or_Attach_Handler
+      (Object : access Static_Interrupt_Protection) return Boolean;
+    --  Returns True
+ 
+    overriding procedure Finalize (Object : in out Static_Interrupt_Protection);
+    --  Restore previous handlers as required by C.3.1(12) then call
+    --  Finalize (Protection).
+ 
+    procedure Install_Handlers
+      (Object       : access Static_Interrupt_Protection;
+       New_Handlers : New_Handler_Array);
+    --  Store the old handlers in Object.Previous_Handlers and install
+    --  the new static handlers.
+ 
+    procedure Install_Restricted_Handlers
+      (Prio     : Interrupt_Priority;
+       Handlers : New_Handler_Array);
+    --  Install the static Handlers for the given interrupts and do not
+    --  store previously installed handlers. This procedure is used when
+    --  the Ravenscar restrictions are in place since in that case there
+    --  are only library-level protected handlers that will be installed
+    --  at initialization and never be replaced.
+ 
+ end System.Interrupts;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman.ads gcc-15.1.0/gcc/ada/libgnarl/s-intman.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__android.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__android.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__android.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__android.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__cheribsd.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__cheribsd.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__cheribsd.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__cheribsd.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,332 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --           S Y S T E M . I N T E R R U P T _ M A N A G E M E N T          --
+ --                                                                          --
+ --                                  B o d y                                 --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the POSIX threads version of this package, adapted for CheriBSD
+ 
+ --  Make a careful study of all signals available under the OS, to see which
+ --  need to be reserved, kept always unmasked, or kept always unmasked. Be on
+ --  the lookout for special signals that may be used by the thread library.
+ 
+ --  Since this is a multi target file, the signal <-> exception mapping
+ --  is simple minded. If you need a more precise and target specific
+ --  signal handling, create a new s-intman.adb that will fit your needs.
+ 
+ --  This file assumes that:
+ 
+ --    SIGFPE, SIGILL, SIGSEGV and SIGBUS exist. They are mapped as follows:
+ --      SIGPFE  => Constraint_Error
+ --      SIGILL  => Program_Error
+ --      SIGSEGV => Storage_Error
+ --      SIGBUS  => Storage_Error
+ 
+ --    SIGINT exists and will be kept unmasked unless the pragma
+ --     Unreserve_All_Interrupts is specified anywhere in the application.
+ 
+ --    System.OS_Interface contains the following:
+ --      SIGADAABORT: the signal that will be used to abort tasks.
+ --      Unmasked: the OS specific set of signals that should be unmasked in
+ --                all the threads. SIGADAABORT is unmasked by
+ --                default
+ --      Reserved: the OS specific set of signals that are reserved.
+ 
+ with Interfaces.CHERI.Exceptions;
+ with System.Task_Primitives;
+ 
+ package body System.Interrupt_Management is
+ 
+    use Interfaces.C;
+    use Interfaces.CHERI.Exceptions;
+    use System.OS_Interface;
+ 
+    type Interrupt_List is array (Interrupt_ID range <>) of Interrupt_ID;
+    Exception_Interrupts : constant Interrupt_List :=
+      [SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGPROT];
+ 
+    Unreserve_All_Interrupts : constant Interfaces.C.int;
+    pragma Import
+      (C, Unreserve_All_Interrupts, "__gl_unreserve_all_interrupts");
+ 
+    -----------------------
+    -- Local Subprograms --
+    -----------------------
+ 
+    function State (Int : Interrupt_ID) return Character;
+    pragma Import (C, State, "__gnat_get_interrupt_state");
+    --  Get interrupt state. Defined in init.c The input argument is the
+    --  interrupt number, and the result is one of the following:
+ 
+    User    : constant Character := 'u';
+    Runtime : constant Character := 'r';
+    Default : constant Character := 's';
+    --    'n'   this interrupt not set by any Interrupt_State pragma
+    --    'u'   Interrupt_State pragma set state to User
+    --    'r'   Interrupt_State pragma set state to Runtime
+    --    's'   Interrupt_State pragma set state to System (use "default"
+    --           system handler)
+ 
+    procedure Notify_Exception
+      (signo    : Signal;
+       siginfo  : access siginfo_t;
+       ucontext : System.Address);
+    --  This function identifies the Ada exception to be raised using the
+    --  information when the system received a synchronous signal. Since this
+    --  function is machine and OS dependent, different code has to be provided
+    --  for different target.
+ 
+    ----------------------
+    -- Notify_Exception --
+    ----------------------
+ 
+    Signal_Mask : aliased sigset_t;
+    --  The set of signals handled by Notify_Exception
+ 
+    procedure Notify_Exception
+      (signo    : Signal;
+       siginfo  : access siginfo_t;
+       ucontext : System.Address)
+    is
+       Result : Interfaces.C.int;
+ 
+    begin
+       --  With the __builtin_longjmp, the signal mask is not restored, so we
+       --  need to restore it explicitly.
+ 
+       Result := pthread_sigmask (SIG_UNBLOCK, Signal_Mask'Access, null);
+       pragma Assert (Result = 0);
+ 
+       --  Perform the necessary context adjustments prior to a raise
+       --  from a signal handler.
+ 
+       Adjust_Context_For_Raise (signo, ucontext);
+ 
+       --  Check that treatment of exception propagation here is consistent with
+       --  treatment of the abort signal in System.Task_Primitives.Operations.
+ 
+       case signo is
+          when SIGFPE  => raise Constraint_Error;
+          when SIGILL  => raise Program_Error;
+          when SIGSEGV => raise Storage_Error;
+          when SIGBUS  => raise Storage_Error;
+          when SIGPROT =>
+             case siginfo.all.si_code is
+                when PROT_CHERI_TAG            => raise Capability_Tag_Error;
+                when PROT_CHERI_SEALED         => raise Capability_Sealed_Error;
+                when PROT_CHERI_UNALIGNED_BASE => raise Storage_Error;
+ 
+                when PROT_CHERI_BOUNDS
+                   | PROT_CHERI_IMPRECISE =>
+                   raise Capability_Bound_Error;
+ 
+                when PROT_CHERI_TYPE
+                   | PROT_CHERI_PERM
+                   | PROT_CHERI_STORELOCAL
+                   | PROT_CHERI_CINVOKE
+                   | PROT_CHERI_SYSREG =>
+                   raise Capability_Permission_Error;
+ 
+                when others =>
+                   raise Storage_Error;
+             end case;
+ 
+          when others =>
+             null;
+       end case;
+    end Notify_Exception;
+ 
+    ----------------
+    -- Initialize --
+    ----------------
+ 
+    Initialized : Boolean := False;
+ 
+    procedure Initialize is
+       act     : aliased struct_sigaction;
+       old_act : aliased struct_sigaction;
+       Result  : System.OS_Interface.int;
+ 
+       Use_Alternate_Stack : constant Boolean :=
+                               System.Task_Primitives.Alternate_Stack_Size /= 0;
+       --  Whether to use an alternate signal stack for stack overflows
+ 
+       Sigsetable_Signal_Mask : aliased sigset_t;
+ 
+       Interrupts_Default_To_System : Integer;
+       pragma Import (C, Interrupts_Default_To_System,
+                      "__gl_interrupts_default_to_system");
+ 
+    begin
+       if Initialized then
+          return;
+       end if;
+ 
+       Initialized := True;
+ 
+       --  Need to call pthread_init very early because it is doing signal
+       --  initializations.
+ 
+       pthread_init;
+ 
+       Abort_Task_Interrupt := SIGADAABORT;
+ 
+       act.sa_handler := Notify_Exception'Address;
+ 
+       --  Setting SA_SIGINFO asks the kernel to pass more than just the signal
+       --  number argument to the handler when it is called. The set of extra
+       --  parameters includes a pointer to the interrupted context, which the
+       --  ZCX propagation scheme needs.
+ 
+       --  Most man pages for sigaction mention that sa_sigaction should be set
+       --  instead of sa_handler when SA_SIGINFO is on.  In practice, the two
+       --  fields are actually union'ed and located at the same offset.
+ 
+       --  On some targets, we set sa_flags to SA_NODEFER so that during the
+       --  handler execution we do not change the Signal_Mask to be masked for
+       --  the Signal.
+ 
+       --  This is a temporary fix to the problem that the Signal_Mask is not
+       --  restored after the exception (longjmp) from the handler. The right
+       --  fix should be made in sigsetjmp so that we save the Signal_Set and
+       --  restore it after a longjmp.
+ 
+       --  Since SA_NODEFER is obsolete, instead we reset explicitly the mask
+       --  in the exception handler.
+ 
+       Result := sigemptyset (Signal_Mask'Access);
+       pragma Assert (Result = 0);
+ 
+       --  Add signals that map to Ada exceptions to the mask
+ 
+       for J in Exception_Interrupts'Range loop
+          if State (Exception_Interrupts (J)) /= Default then
+             Result := sigaddset (Signal_Mask'Access,
+                                  Signal (Exception_Interrupts (J)));
+             pragma Assert (Result = 0);
+          end if;
+       end loop;
+ 
+       act.sa_mask := Signal_Mask;
+ 
+       pragma Assert (Keep_Unmasked = [Interrupt_ID'Range => False]);
+       pragma Assert (Reserve = [Interrupt_ID'Range => False]);
+ 
+       --  Process state of exception signals
+ 
+       for J in Exception_Interrupts'Range loop
+          if State (Exception_Interrupts (J)) /= User then
+             Keep_Unmasked (Exception_Interrupts (J)) := True;
+             Reserve (Exception_Interrupts (J)) := True;
+ 
+             if State (Exception_Interrupts (J)) /= Default then
+                act.sa_flags := SA_SIGINFO;
+ 
+                if Use_Alternate_Stack
+                  and then Exception_Interrupts (J) = SIGSEGV
+                then
+                   act.sa_flags := act.sa_flags + SA_ONSTACK;
+                end if;
+ 
+                Result :=
+                  sigaction
+                    (Signal (Exception_Interrupts (J)), act'Unchecked_Access,
+                     old_act'Unchecked_Access);
+                pragma Assert (Result = 0);
+             end if;
+          end if;
+       end loop;
+ 
+       if State (Abort_Task_Interrupt) /= User then
+          Keep_Unmasked (Abort_Task_Interrupt) := True;
+          Reserve (Abort_Task_Interrupt) := True;
+       end if;
+ 
+       --  Set SIGINT to unmasked state as long as it is not in "User" state.
+       --  Check for Unreserve_All_Interrupts last.
+ 
+       if State (SIGINT) /= User then
+          Keep_Unmasked (SIGINT) := True;
+          Reserve (SIGINT) := True;
+       end if;
+ 
+       --  Check all signals for state that requires keeping them unmasked and
+       --  reserved.
+ 
+       --  Unmasking might involve explicit operations later on, typically
+       --  performed on the entire set of relevant signals gathered together
+       --  by way of sigset_t mask. Doing anything of this kind is forbidden
+       --  for very specific signals and would trip assertion checks if
+       --  attempted. Check for this here, preventing the Keep_Unmasked
+       --  request upfront. This is of particular relevance for
+       --  Interrupts_System_By_Default as it would lead to such requests
+       --  for every signal not altered otherwise.
+ 
+       Result := sigemptyset (Sigsetable_Signal_Mask'Access);
+       pragma Assert (Result = 0);
+ 
+       for J in Interrupt_ID'Range loop
+          if State (J) = Default or else State (J) = Runtime then
+             if Interrupts_Default_To_System = 0 or else
+               sigaddset (Sigsetable_Signal_Mask'Access, Signal (J)) = 0
+             then
+                Keep_Unmasked (J) := True;
+             end if;
+             Reserve (J) := True;
+          end if;
+       end loop;
+ 
+       --  Add the set of signals that must always be unmasked for this target
+ 
+       for J in Unmasked'Range loop
+          Keep_Unmasked (Interrupt_ID (Unmasked (J))) := True;
+          Reserve (Interrupt_ID (Unmasked (J))) := True;
+       end loop;
+ 
+       --  Add target-specific reserved signals
+ 
+       for J in Reserved'Range loop
+          Reserve (Interrupt_ID (Reserved (J))) := True;
+       end loop;
+ 
+       --  Process pragma Unreserve_All_Interrupts. This overrides any settings
+       --  due to pragma Interrupt_State:
+ 
+       if Unreserve_All_Interrupts /= 0 then
+          Keep_Unmasked (SIGINT) := False;
+          Reserve (SIGINT) := False;
+       end if;
+ 
+       --  We do not really have Signal 0. We just use this value to identify
+       --  non-existent signals (see s-intnam.ads). Therefore, Signal should not
+       --  be used in all signal related operations hence mark it as reserved.
+ 
+       Reserve (0) := True;
+    end Initialize;
+ 
+ end System.Interrupt_Management;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__dummy.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__lynxos.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__lynxos.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__mingw.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__posix.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupt_Management
*** 154,159 ****
--- 154,165 ----
                                System.Task_Primitives.Alternate_Stack_Size /= 0;
        --  Whether to use an alternate signal stack for stack overflows
  
+       Sigsetable_Signal_Mask : aliased sigset_t;
+ 
+       Interrupts_Default_To_System : Integer;
+       pragma Import (C, Interrupts_Default_To_System,
+                      "__gl_interrupts_default_to_system");
+ 
     begin
        if Initialized then
           return;
*************** package body System.Interrupt_Management
*** 250,258 ****
        --  Check all signals for state that requires keeping them unmasked and
        --  reserved.
  
        for J in Interrupt_ID'Range loop
           if State (J) = Default or else State (J) = Runtime then
!             Keep_Unmasked (J) := True;
              Reserve (J) := True;
           end if;
        end loop;
--- 256,280 ----
        --  Check all signals for state that requires keeping them unmasked and
        --  reserved.
  
+       --  Unmasking might involve explicit operations later on, typically
+       --  performed on the entire set of relevant signals gathered together
+       --  by way of sigset_t mask. Doing anything of this kind is forbidden
+       --  for very specific signals and would trip assertion checks if
+       --  attempted. Check for this here, preventing the Keep_Unmasked
+       --  request upfront. This is of particular relevance for
+       --  Interrupts_System_By_Default as it would lead to such requests
+       --  for every signal not altered otherwise.
+ 
+       Result := sigemptyset (Sigsetable_Signal_Mask'Access);
+       pragma Assert (Result = 0);
+ 
        for J in Interrupt_ID'Range loop
           if State (J) = Default or else State (J) = Runtime then
!             if Interrupts_Default_To_System = 0 or else
!               sigaddset (Sigsetable_Signal_Mask'Access, Signal (J)) = 0
!             then
!                Keep_Unmasked (J) := True;
!             end if;
              Reserve (J) := True;
           end if;
        end loop;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__qnx.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__qnx.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__qnx.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__qnx.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__rtems.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__rtems.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__rtems.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__rtems.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__rtems.ads gcc-15.1.0/gcc/ada/libgnarl/s-intman__rtems.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__rtems.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__rtems.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__solaris.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__susv3.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__susv3.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__susv3.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__susv3.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb gcc-15.1.0/gcc/ada/libgnarl/s-intman__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/s-intman__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-intman__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__alpha.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__alpha.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__alpha.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__alpha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,134 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
+ --                                                                          --
+ --                          S Y S T E M .  L I N U X                        --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- In particular,  you can freely  distribute your programs  built with the --
+ -- GNAT Pro compiler, including any required library run-time units,  using --
+ -- any licensing terms  of your choosing.  See the AdaCore Software License --
+ -- for full details.                                                        --
+ --                                                                          --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the Android version of this package
+ 
+ --  This package encapsulates cpu specific differences between implementations
+ --  of GNU/Linux, in order to share s-osinte-linux.ads.
+ 
+ --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
+ --  Preelaborate. This package is designed to be a bottom-level (leaf) package
+ 
+ with Interfaces.C;
+ with System.Parameters;
+ 
+ package System.Linux is
+    pragma Preelaborate;
+ 
+    ----------
+    -- Time --
+    ----------
+ 
+    subtype long        is Interfaces.C.long;
+    subtype suseconds_t is Interfaces.C.long;
+    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
+      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
+    subtype clockid_t   is Interfaces.C.int;
+ 
+    type timespec is record
+       tv_sec  : time_t;
+       tv_nsec : long;
+    end record;
+    pragma Convention (C, timespec);
+ 
+    type timeval is record
+       tv_sec  : time_t;
+       tv_usec : suseconds_t;
+    end record;
+    pragma Convention (C, timeval);
+ 
+    -----------
+    -- Errno --
+    -----------
+ 
+    EAGAIN    : constant := 11;
+    EINTR     : constant := 4;
+    EINVAL    : constant := 22;
+    ENOMEM    : constant := 12;
+    EPERM     : constant := 1;
+    ETIMEDOUT : constant := 110;
+ 
+    -------------
+    -- Signals --
+    -------------
+ 
+    SIGHUP     : constant := 1; --  hangup
+    SIGINT     : constant := 2; --  interrupt (rubout)
+    SIGQUIT    : constant := 3; --  quit (ASCD FS)
+    SIGILL     : constant := 4; --  illegal instruction (not reset)
+    SIGTRAP    : constant := 5; --  trace trap (not reset)
+    SIGIOT     : constant := 6; --  IOT instruction
+    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the future
+    SIGFPE     : constant := 8; --  floating point exception
+    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
+    SIGBUS     : constant := 7; --  bus error
+    SIGSEGV    : constant := 11; --  segmentation violation
+    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
+    SIGALRM    : constant := 14; --  alarm clock
+    SIGTERM    : constant := 15; --  software termination signal from kill
+    SIGUSR1    : constant := 10; --  user defined signal 1
+    SIGUSR2    : constant := 12; --  user defined signal 2
+    SIGCLD     : constant := 17; --  alias for SIGCHLD
+    SIGCHLD    : constant := 17; --  child status change
+    SIGPWR     : constant := 30; --  power-fail restart
+    SIGWINCH   : constant := 28; --  window size change
+    SIGURG     : constant := 23; --  urgent condition on IO channel
+    SIGPOLL    : constant := 29; --  pollable event occurred
+    SIGIO      : constant := 29; --  I/O now possible (4.2 BSD)
+    SIGLOST    : constant := 29; --  File lock lost
+    SIGSTOP    : constant := 19; --  stop (cannot be caught or ignored)
+    SIGTSTP    : constant := 20; --  user stop requested from tty
+    SIGCONT    : constant := 18; --  stopped process has been continued
+    SIGTTIN    : constant := 21; --  background tty read attempted
+    SIGTTOU    : constant := 22; --  background tty write attempted
+    SIGVTALRM  : constant := 26; --  virtual timer expired
+    SIGPROF    : constant := 27; --  profiling timer expired
+    SIGXCPU    : constant := 24; --  CPU time limit exceeded
+    SIGXFSZ    : constant := 25; --  filesize limit exceeded
+    SIGSYS     : constant := 31; --  bad argument to system call
+    SIGUNUSED  : constant := 31; --  unused signal (GNU/Linux)
+    SIGSTKFLT  : constant := 16; --  coprocessor stack fault (Linux)
+    SIG32      : constant := 32; --  glibc internal signal
+    SIG33      : constant := 33; --  glibc internal signal
+    SIG34      : constant := 34; --  glibc internal signal
+ 
+    --  struct_sigaction offsets
+ 
+    --  sa_flags come first on aarch64-android (sa_flags, sa_handler, sa_mask)
+ 
+    sa_flags_pos   : constant := 0;
+    sa_handler_pos : constant := sa_flags_pos + Interfaces.C.int'Size / 8;
+    sa_mask_pos    : constant := sa_handler_pos + Standard'Address_Size / 8;
+ 
+    SA_SIGINFO  : constant := 16#00000004#;
+    SA_ONSTACK  : constant := 16#08000000#;
+    SA_RESTART  : constant := 16#10000000#;
+    SA_NODEFER  : constant := 16#40000000#;
+ 
+ end System.Linux;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__android-arm.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__android-arm.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__android-arm.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__android-arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,132 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
+ --                                                                          --
+ --                          S Y S T E M .  L I N U X                        --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- In particular,  you can freely  distribute your programs  built with the --
+ -- GNAT Pro compiler, including any required library run-time units,  using --
+ -- any licensing terms  of your choosing.  See the AdaCore Software License --
+ -- for full details.                                                        --
+ --                                                                          --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the Android version of this package
+ 
+ --  This package encapsulates cpu specific differences between implementations
+ --  of GNU/Linux, in order to share s-osinte-linux.ads.
+ 
+ --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
+ --  Preelaborate. This package is designed to be a bottom-level (leaf) package
+ 
+ with Interfaces.C;
+ with System.Parameters;
+ 
+ package System.Linux is
+    pragma Preelaborate;
+ 
+    ----------
+    -- Time --
+    ----------
+ 
+    subtype long        is Interfaces.C.long;
+    subtype suseconds_t is Interfaces.C.long;
+    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
+      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
+    subtype clockid_t   is Interfaces.C.int;
+ 
+    type timespec is record
+       tv_sec  : time_t;
+       tv_nsec : long;
+    end record;
+    pragma Convention (C, timespec);
+ 
+    type timeval is record
+       tv_sec  : time_t;
+       tv_usec : suseconds_t;
+    end record;
+    pragma Convention (C, timeval);
+ 
+    -----------
+    -- Errno --
+    -----------
+ 
+    EAGAIN    : constant := 11;
+    EINTR     : constant := 4;
+    EINVAL    : constant := 22;
+    ENOMEM    : constant := 12;
+    EPERM     : constant := 1;
+    ETIMEDOUT : constant := 110;
+ 
+    -------------
+    -- Signals --
+    -------------
+ 
+    SIGHUP     : constant := 1; --  hangup
+    SIGINT     : constant := 2; --  interrupt (rubout)
+    SIGQUIT    : constant := 3; --  quit (ASCD FS)
+    SIGILL     : constant := 4; --  illegal instruction (not reset)
+    SIGTRAP    : constant := 5; --  trace trap (not reset)
+    SIGIOT     : constant := 6; --  IOT instruction
+    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the future
+    SIGFPE     : constant := 8; --  floating point exception
+    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
+    SIGBUS     : constant := 7; --  bus error
+    SIGSEGV    : constant := 11; --  segmentation violation
+    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
+    SIGALRM    : constant := 14; --  alarm clock
+    SIGTERM    : constant := 15; --  software termination signal from kill
+    SIGUSR1    : constant := 10; --  user defined signal 1
+    SIGUSR2    : constant := 12; --  user defined signal 2
+    SIGCLD     : constant := 17; --  alias for SIGCHLD
+    SIGCHLD    : constant := 17; --  child status change
+    SIGPWR     : constant := 30; --  power-fail restart
+    SIGWINCH   : constant := 28; --  window size change
+    SIGURG     : constant := 23; --  urgent condition on IO channel
+    SIGPOLL    : constant := 29; --  pollable event occurred
+    SIGIO      : constant := 29; --  I/O now possible (4.2 BSD)
+    SIGLOST    : constant := 29; --  File lock lost
+    SIGSTOP    : constant := 19; --  stop (cannot be caught or ignored)
+    SIGTSTP    : constant := 20; --  user stop requested from tty
+    SIGCONT    : constant := 18; --  stopped process has been continued
+    SIGTTIN    : constant := 21; --  background tty read attempted
+    SIGTTOU    : constant := 22; --  background tty write attempted
+    SIGVTALRM  : constant := 26; --  virtual timer expired
+    SIGPROF    : constant := 27; --  profiling timer expired
+    SIGXCPU    : constant := 24; --  CPU time limit exceeded
+    SIGXFSZ    : constant := 25; --  filesize limit exceeded
+    SIGSYS     : constant := 31; --  bad argument to system call
+    SIGUNUSED  : constant := 31; --  unused signal (GNU/Linux)
+    SIGSTKFLT  : constant := 16; --  coprocessor stack fault (Linux)
+    SIG32      : constant := 32; --  glibc internal signal
+    SIG33      : constant := 33; --  glibc internal signal
+    SIG34      : constant := 34; --  glibc internal signal
+ 
+    --  struct_sigaction offsets
+ 
+    sa_handler_pos : constant := 0;
+    sa_mask_pos    : constant := Standard'Address_Size / 8;
+    sa_flags_pos   : constant := 4 + sa_mask_pos;
+ 
+    SA_SIGINFO  : constant := 16#00000004#;
+    SA_ONSTACK  : constant := 16#08000000#;
+    SA_RESTART  : constant := 16#10000000#;
+    SA_NODEFER  : constant := 16#40000000#;
+ 
+ end System.Linux;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__android.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__android.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__android.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__android.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,131 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
- --                                                                          --
- --                          S Y S T E M .  L I N U X                        --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- In particular,  you can freely  distribute your programs  built with the --
- -- GNAT Pro compiler, including any required library run-time units,  using --
- -- any licensing terms  of your choosing.  See the AdaCore Software License --
- -- for full details.                                                        --
- --                                                                          --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is the Android version of this package
- 
- --  This package encapsulates cpu specific differences between implementations
- --  of GNU/Linux, in order to share s-osinte-linux.ads.
- 
- --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
- --  Preelaborate. This package is designed to be a bottom-level (leaf) package
- 
- with Interfaces.C;
- with System.Parameters;
- 
- package System.Linux is
-    pragma Preelaborate;
- 
-    ----------
-    -- Time --
-    ----------
- 
-    subtype long        is Interfaces.C.long;
-    subtype suseconds_t is Interfaces.C.long;
-    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
-      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
-    subtype clockid_t   is Interfaces.C.int;
- 
-    type timespec is record
-       tv_sec  : time_t;
-       tv_nsec : long;
-    end record;
-    pragma Convention (C, timespec);
- 
-    type timeval is record
-       tv_sec  : time_t;
-       tv_usec : suseconds_t;
-    end record;
-    pragma Convention (C, timeval);
- 
-    -----------
-    -- Errno --
-    -----------
- 
-    EAGAIN    : constant := 11;
-    EINTR     : constant := 4;
-    EINVAL    : constant := 22;
-    ENOMEM    : constant := 12;
-    EPERM     : constant := 1;
-    ETIMEDOUT : constant := 110;
- 
-    -------------
-    -- Signals --
-    -------------
- 
-    SIGHUP     : constant := 1; --  hangup
-    SIGINT     : constant := 2; --  interrupt (rubout)
-    SIGQUIT    : constant := 3; --  quit (ASCD FS)
-    SIGILL     : constant := 4; --  illegal instruction (not reset)
-    SIGTRAP    : constant := 5; --  trace trap (not reset)
-    SIGIOT     : constant := 6; --  IOT instruction
-    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the future
-    SIGFPE     : constant := 8; --  floating point exception
-    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
-    SIGBUS     : constant := 7; --  bus error
-    SIGSEGV    : constant := 11; --  segmentation violation
-    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
-    SIGALRM    : constant := 14; --  alarm clock
-    SIGTERM    : constant := 15; --  software termination signal from kill
-    SIGUSR1    : constant := 10; --  user defined signal 1
-    SIGUSR2    : constant := 12; --  user defined signal 2
-    SIGCLD     : constant := 17; --  alias for SIGCHLD
-    SIGCHLD    : constant := 17; --  child status change
-    SIGPWR     : constant := 30; --  power-fail restart
-    SIGWINCH   : constant := 28; --  window size change
-    SIGURG     : constant := 23; --  urgent condition on IO channel
-    SIGPOLL    : constant := 29; --  pollable event occurred
-    SIGIO      : constant := 29; --  I/O now possible (4.2 BSD)
-    SIGLOST    : constant := 29; --  File lock lost
-    SIGSTOP    : constant := 19; --  stop (cannot be caught or ignored)
-    SIGTSTP    : constant := 20; --  user stop requested from tty
-    SIGCONT    : constant := 18; --  stopped process has been continued
-    SIGTTIN    : constant := 21; --  background tty read attempted
-    SIGTTOU    : constant := 22; --  background tty write attempted
-    SIGVTALRM  : constant := 26; --  virtual timer expired
-    SIGPROF    : constant := 27; --  profiling timer expired
-    SIGXCPU    : constant := 24; --  CPU time limit exceeded
-    SIGXFSZ    : constant := 25; --  filesize limit exceeded
-    SIGUNUSED  : constant := 31; --  unused signal (GNU/Linux)
-    SIGSTKFLT  : constant := 16; --  coprocessor stack fault (Linux)
-    SIG32      : constant := 32; --  glibc internal signal
-    SIG33      : constant := 33; --  glibc internal signal
-    SIG34      : constant := 34; --  glibc internal signal
- 
-    --  struct_sigaction offsets
- 
-    sa_handler_pos : constant := 0;
-    sa_mask_pos    : constant := Standard'Address_Size / 8;
-    sa_flags_pos   : constant := 4 + sa_mask_pos;
- 
-    SA_SIGINFO  : constant := 16#00000004#;
-    SA_ONSTACK  : constant := 16#08000000#;
-    SA_RESTART  : constant := 16#10000000#;
-    SA_NODEFER  : constant := 16#40000000#;
- 
- end System.Linux;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__hppa.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__hppa.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__hppa.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__hppa.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__loongarch.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__loongarch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__mips.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__mips.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__mips.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__mips.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__riscv.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__riscv.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__riscv.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__riscv.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__sparc.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__sparc.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__sparc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__sparc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-linux__x32.ads gcc-15.1.0/gcc/ada/libgnarl/s-linux__x32.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-linux__x32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-linux__x32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-mudido.adb gcc-15.1.0/gcc/ada/libgnarl/s-mudido.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-mudido.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-mudido.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb gcc-15.1.0/gcc/ada/libgnarl/s-mudido__affinity.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-mudido__affinity.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Multiprocessors.Disp
*** 367,372 ****
--- 367,373 ----
        --  Attach the CPU to the task
  
        T.Common.Base_CPU := CPU;
+       T.Common.CPU_Is_Explicit := True;
  
        --  Change the number of tasks attached to a given task in the system
        --  domain if needed.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__aix.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__aix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__aix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__aix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__aix.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__aix.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__aix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__aix.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 43,48 ****
--- 43,49 ----
  with Interfaces.C;
  with Interfaces.C.Extensions;
  
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 271,277 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 272,278 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 575,595 ****
        ptq_prev : ptq_queue_ptr;
     end record;
  
-    type Array_3_Int is array (0 .. 3) of int;
-    type pthread_mutex_t is record
-         link        : ptq_queue;
-         ptmtx_lock  : int;
-         ptmtx_flags : long;
-         protocol    : int;
-         prioceiling : int;
-         ptmtx_owner : pthread_t;
-         mtx_id      : int;
-         attr        : pthread_attr_t;
-         mtx_kind    : int;
-         lock_cpt    : int;
-         reserved    : Array_3_Int;
-    end record;
-    pragma Convention (C, pthread_mutex_t);
     type pthread_mutex_t_ptr is access pthread_mutex_t;
  
     type pthread_cond_t is record
--- 576,581 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__android.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__android.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__android.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__android.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__android.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__android.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__android.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__android.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 39,47 ****
--- 39,50 ----
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C;
+ 
  with System.Linux;
  with System.OS_Constants;
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 113,118 ****
--- 116,122 ----
     SIGPROF    : constant := System.Linux.SIGPROF;
     SIGXCPU    : constant := System.Linux.SIGXCPU;
     SIGXFSZ    : constant := System.Linux.SIGXFSZ;
+    SIGSYS     : constant := System.Linux.SIGSYS;
     SIGUNUSED  : constant := System.Linux.SIGUNUSED;
     SIGSTKFLT  : constant := System.Linux.SIGSTKFLT;
  
*************** package System.OS_Interface is
*** 172,178 ****
     type struct_sigaction is record
        sa_handler  : System.Address;
        sa_mask     : sigset_t;
!       sa_flags    : Interfaces.C.unsigned_long;
        sa_restorer : System.Address;
     end record;
     pragma Convention (C, struct_sigaction);
--- 176,182 ----
     type struct_sigaction is record
        sa_handler  : System.Address;
        sa_mask     : sigset_t;
!       sa_flags    : Interfaces.C.int;
        sa_restorer : System.Address;
     end record;
     pragma Convention (C, struct_sigaction);
*************** package System.OS_Interface is
*** 271,277 ****
     function To_pthread_t is
       new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
  
!    type pthread_mutex_t      is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
     type pthread_mutexattr_t  is limited private;
--- 275,281 ----
     function To_pthread_t is
       new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
  
!    subtype pthread_mutex_t   is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
     type pthread_mutexattr_t  is limited private;
*************** package System.OS_Interface is
*** 577,592 ****
  
  private
  
!    type sigset_t is new Interfaces.C.unsigned_long;
     pragma Convention (C, sigset_t);
     for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
  
     pragma Warnings (Off);
     for struct_sigaction use record
        sa_handler at Linux.sa_handler_pos range 0 .. Standard'Address_Size - 1;
!       sa_mask    at Linux.sa_mask_pos range 0 .. sigset_t'Size - 1;
        sa_flags   at Linux.sa_flags_pos
!         range 0 .. Interfaces.C.unsigned_long'Size - 1;
     end record;
     --  We intentionally leave sa_restorer unspecified and let the compiler
     --  append it after the last field, so disable corresponding warning.
--- 581,598 ----
  
  private
  
!    type sigset_t is
!      array (0 .. OS_Constants.SIZEOF_sigset - 1) of unsigned_char;
     pragma Convention (C, sigset_t);
     for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
  
     pragma Warnings (Off);
     for struct_sigaction use record
        sa_handler at Linux.sa_handler_pos range 0 .. Standard'Address_Size - 1;
!       sa_mask    at Linux.sa_mask_pos
!         range 0 .. OS_Constants.SIZEOF_sigset * 8 - 1;
        sa_flags   at Linux.sa_flags_pos
!         range 0 .. Interfaces.C.int'Size - 1;
     end record;
     --  We intentionally leave sa_restorer unspecified and let the compiler
     --  append it after the last field, so disable corresponding warning.
*************** private
*** 626,637 ****
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
-    type pthread_mutex_t is record
-       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    for pthread_mutex_t'Alignment use Interfaces.C.unsigned_long'Alignment;
- 
     type pthread_cond_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_COND_SIZE);
     end record;
--- 632,637 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,683 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
+ --                                                                          --
+ --                   S Y S T E M . O S _ I N T E R F A C E                  --
+ --                                                                          --
+ --                                   S p e c                                --
+ --                                                                          --
+ --             Copyright (C) 1991-2017, Florida State University            --
+ --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University. It is --
+ -- now maintained by Ada Core Technologies Inc. in cooperation with Florida --
+ -- State University (http://www.gnat.com).                                  --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the CheriBSD (POSIX Threads) version of this package
+ 
+ --  This package encapsulates all direct interfaces to OS services
+ --  that are needed by the tasking run-time (libgnarl).
+ 
+ --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
+ --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
+ 
+ with Ada.Unchecked_Conversion;
+ 
+ with Interfaces;
+ with Interfaces.C;
+ 
+ with System.OS_Locks;
+ with System.Parameters;
+ 
+ package System.OS_Interface is
+    pragma Preelaborate;
+ 
+    pragma Linker_Options ("-pthread");
+ 
+    subtype int            is Interfaces.C.int;
+    subtype short          is Interfaces.C.short;
+    subtype long           is Interfaces.C.long;
+    subtype unsigned       is Interfaces.C.unsigned;
+    subtype unsigned_short is Interfaces.C.unsigned_short;
+    subtype unsigned_long  is Interfaces.C.unsigned_long;
+    subtype unsigned_char  is Interfaces.C.unsigned_char;
+    subtype plain_char     is Interfaces.C.plain_char;
+    subtype size_t         is Interfaces.C.size_t;
+ 
+    type int32_t is new int;
+    type uint32_t is new unsigned;
+    type uint64_t is new unsigned_long;
+    type pid_t is new int32_t;
+    type uid_t is new uint32_t;
+ 
+    -----------
+    -- Errno --
+    -----------
+ 
+    function Errno return int;
+    pragma Inline (Errno);
+ 
+    EAGAIN    : constant := 35;
+    EINTR     : constant := 4;
+    EINVAL    : constant := 22;
+    ENOMEM    : constant := 12;
+    ETIMEDOUT : constant := 60;
+ 
+    -------------
+    -- Signals --
+    -------------
+ 
+    Max_Interrupt : constant := 34;
+    type Signal is new int range 0 .. Max_Interrupt;
+    for Signal'Size use int'Size;
+ 
+    SIGHUP     : constant := 1; --  hangup
+    SIGINT     : constant := 2; --  interrupt (rubout)
+    SIGQUIT    : constant := 3; --  quit (ASCD FS)
+    SIGILL     : constant := 4; --  illegal instruction (not reset)
+    SIGTRAP    : constant := 5; --  trace trap (not reset)
+    SIGIOT     : constant := 6; --  IOT instruction
+    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the  future
+    SIGEMT     : constant := 7; --  EMT instruction
+    SIGFPE     : constant := 8; --  floating point exception
+    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
+    SIGBUS     : constant := 10; --  bus error
+    SIGSEGV    : constant := 11; --  segmentation violation
+    SIGSYS     : constant := 12; --  bad argument to system call
+    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
+    SIGALRM    : constant := 14; --  alarm clock
+    SIGTERM    : constant := 15; --  software termination signal from kill
+    SIGURG     : constant := 16; --  urgent condition on IO channel
+    SIGSTOP    : constant := 17; --  stop (cannot be caught or ignored)
+    SIGTSTP    : constant := 18; --  user stop requested from tty
+    SIGCONT    : constant := 19; --  stopped process has been continued
+    SIGCLD     : constant := 20; --  alias for SIGCHLD
+    SIGCHLD    : constant := 20; --  child status change
+    SIGTTIN    : constant := 21; --  background tty read attempted
+    SIGTTOU    : constant := 22; --  background tty write attempted
+    SIGIO      : constant := 23; --  I/O possible (Solaris SIGPOLL alias)
+    SIGXCPU    : constant := 24; --  CPU time limit exceeded
+    SIGXFSZ    : constant := 25; --  filesize limit exceeded
+    SIGVTALRM  : constant := 26; --  virtual timer expired
+    SIGPROF    : constant := 27; --  profiling timer expired
+    SIGWINCH   : constant := 28; --  window size change
+    SIGINFO    : constant := 29; --  information request (NetBSD/FreeBSD)
+    SIGUSR1    : constant := 30; --  user defined signal 1
+    SIGUSR2    : constant := 31; --  user defined signal 2
+    SIGPROT    : constant := 34; --  in-address space security (CHERI) exception
+ 
+    SIGADAABORT : constant := SIGABRT;
+    --  Change this if you want to use another signal for task abort.
+    --  SIGTERM might be a good one.
+ 
+    type Signal_Set is array (Natural range <>) of Signal;
+ 
+    --  Interrupts that must be unmasked at all times.  FreeBSD
+    --  pthreads will not allow an application to mask out any
+    --  interrupt needed by the threads library.
+    Unmasked : constant Signal_Set :=
+      (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP);
+ 
+    --  FreeBSD will uses SIGPROF for timing.  Do not allow a
+    --  handler to attach to this signal.
+    Reserved : constant Signal_Set := (0 .. 0 => SIGPROF);
+ 
+    type sigset_t is private;
+ 
+    function sigaddset
+      (set : access sigset_t;
+       sig : Signal) return int;
+    pragma Import (C, sigaddset, "sigaddset");
+ 
+    function sigdelset
+      (set : access sigset_t;
+       sig : Signal) return int;
+    pragma Import (C, sigdelset, "sigdelset");
+ 
+    function sigfillset (set : access sigset_t) return int;
+    pragma Import (C, sigfillset, "sigfillset");
+ 
+    function sigismember
+      (set : access sigset_t;
+       sig : Signal) return int;
+    pragma Import (C, sigismember, "sigismember");
+ 
+    function sigemptyset (set : access sigset_t) return int;
+    pragma Import (C, sigemptyset, "sigemptyset");
+ 
+    type siginfo_reason is array (Integer range 1 .. 8) of int;
+    type siginfo_t is record
+       si_signo  : int;
+       si_errno  : int;
+       si_code   : int;
+       si_pid    : pid_t;
+       si_uid    : uid_t;
+       si_status : int;
+       si_addr   : Address;
+       sival_int : int;
+       reason    : siginfo_reason;
+    end record;
+    pragma Convention (C, siginfo_t);
+ 
+    --  Codes for SIGPROT
+    PROT_CHERI_BOUNDS         : constant int := 1;
+    PROT_CHERI_TAG            : constant int := 2;
+    PROT_CHERI_SEALED         : constant int := 3;
+    PROT_CHERI_TYPE           : constant int := 4;
+    PROT_CHERI_PERM           : constant int := 5;
+    PROT_CHERI_IMPRECISE      : constant int := 7;
+    PROT_CHERI_STORELOCAL     : constant int := 8;
+    PROT_CHERI_CINVOKE        : constant int := 9;
+    PROT_CHERI_SYSREG         : constant int := 11;
+    PROT_CHERI_UNALIGNED_BASE : constant int := 12;
+ 
+    --  sigcontext is architecture dependent, so define it private
+    type struct_sigcontext is private;
+ 
+    type old_struct_sigaction is record
+       sa_handler : System.Address;
+       sa_mask    : sigset_t;
+       sa_flags   : int;
+    end record;
+    pragma Convention (C, old_struct_sigaction);
+ 
+    type new_struct_sigaction is record
+       sa_handler : System.Address;
+       sa_flags   : int;
+       sa_mask    : sigset_t;
+    end record;
+    pragma Convention (C, new_struct_sigaction);
+ 
+    subtype struct_sigaction is new_struct_sigaction;
+    type struct_sigaction_ptr is access all struct_sigaction;
+ 
+    SIG_BLOCK   : constant := 1;
+    SIG_UNBLOCK : constant := 2;
+    SIG_SETMASK : constant := 3;
+ 
+    SIG_DFL : constant := 0;
+    SIG_IGN : constant := 1;
+ 
+    SA_SIGINFO : constant := 16#0040#;
+    SA_ONSTACK : constant := 16#0001#;
+ 
+    function sigaction
+      (sig  : Signal;
+       act  : struct_sigaction_ptr;
+       oact : struct_sigaction_ptr) return int;
+    pragma Import (C, sigaction, "sigaction");
+ 
+    ----------
+    -- Time --
+    ----------
+ 
+    Time_Slice_Supported : constant Boolean := True;
+    --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
+ 
+    type timespec is private;
+ 
+    function nanosleep (rqtp, rmtp : access timespec) return int;
+    pragma Import (C, nanosleep, "nanosleep");
+ 
+    type clockid_t is new int;
+ 
+    function clock_getres
+      (clock_id : clockid_t;
+       res      : access timespec) return int;
+    pragma Import (C, clock_getres, "clock_getres");
+ 
+    function clock_gettime
+      (clock_id : clockid_t;
+       tp       : access timespec)
+       return int;
+    pragma Import (C, clock_gettime, "clock_gettime");
+ 
+    function To_Duration (TS : timespec) return Duration;
+    pragma Inline (To_Duration);
+ 
+    function To_Timespec (D : Duration) return timespec;
+    pragma Inline (To_Timespec);
+ 
+    type struct_timezone is record
+       tz_minuteswest : int;
+       tz_dsttime     : int;
+    end record;
+    pragma Convention (C, struct_timezone);
+ 
+    procedure usleep (useconds : unsigned_long);
+    pragma Import (C, usleep, "usleep");
+ 
+    -------------------------
+    -- Priority Scheduling --
+    -------------------------
+ 
+    SCHED_FIFO  : constant := 1;
+    SCHED_OTHER : constant := 2;
+    SCHED_RR    : constant := 3;
+ 
+    function To_Target_Priority
+      (Prio : System.Any_Priority) return Interfaces.C.int;
+    --  Maps System.Any_Priority to a POSIX priority
+ 
+    -------------
+    -- Process --
+    -------------
+ 
+    Self_PID : constant pid_t;
+ 
+    function kill (pid : pid_t; sig : Signal) return int;
+    pragma Import (C, kill, "kill");
+ 
+    function getpid return pid_t;
+    pragma Import (C, getpid, "getpid");
+ 
+    ---------
+    -- LWP --
+    ---------
+ 
+    function lwp_self return System.Address;
+    --  lwp_self does not exist on this thread library, revert to pthread_self
+    --  which is the closest approximation (with getpid). This function is
+    --  needed to share 7staprop.adb across POSIX-like targets.
+    pragma Import (C, lwp_self, "pthread_self");
+ 
+    -------------
+    -- Threads --
+    -------------
+ 
+    type Thread_Body is access
+      function (arg : System.Address) return System.Address;
+    pragma Convention (C, Thread_Body);
+ 
+    function Thread_Body_Access is new
+      Ada.Unchecked_Conversion (System.Address, Thread_Body);
+ 
+    type pthread_t           is private;
+    subtype Thread_Id        is pthread_t;
+ 
+    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
+    type pthread_cond_t      is limited private;
+    type pthread_attr_t      is limited private;
+    type pthread_mutexattr_t is limited private;
+    type pthread_condattr_t  is limited private;
+    type pthread_key_t       is private;
+ 
+    PTHREAD_CREATE_DETACHED : constant := 1;
+    PTHREAD_CREATE_JOINABLE : constant := 0;
+ 
+    PTHREAD_SCOPE_PROCESS : constant := 0;
+    PTHREAD_SCOPE_SYSTEM  : constant := 2;
+ 
+    --  Read/Write lock not supported on freebsd. To add support both types
+    --  pthread_rwlock_t and pthread_rwlockattr_t must properly be defined
+    --  with the associated routines pthread_rwlock_[init/destroy] and
+    --  pthread_rwlock_[rdlock/wrlock/unlock].
+ 
+    subtype pthread_rwlock_t     is pthread_mutex_t;
+    subtype pthread_rwlockattr_t is pthread_mutexattr_t;
+ 
+    -----------
+    -- Stack --
+    -----------
+ 
+    type stack_t is record
+       ss_sp    : System.Address;
+       ss_size  : size_t;
+       ss_flags : int;
+    end record;
+    pragma Convention (C, stack_t);
+ 
+    function sigaltstack
+      (ss  : not null access stack_t;
+       oss : access stack_t) return int;
+    pragma Import (C, sigaltstack, "sigaltstack");
+ 
+    Alternate_Stack : aliased System.Address;
+    --  This is a dummy definition, never used (Alternate_Stack_Size is null)
+ 
+    Alternate_Stack_Size : constant := 0;
+    --  No alternate signal stack is used on this platform
+ 
+    Stack_Base_Available : constant Boolean := False;
+    --  Indicates whether the stack base is available on this target
+ 
+    function Get_Stack_Base (thread : pthread_t) return Address;
+    pragma Inline (Get_Stack_Base);
+    --  returns the stack base of the specified thread. Only call this function
+    --  when Stack_Base_Available is True.
+ 
+    function Get_Page_Size return int;
+    pragma Import (C, Get_Page_Size, "getpagesize");
+    --  Returns the size of a page
+ 
+    PROT_NONE  : constant := 0;
+    PROT_READ  : constant := 1;
+    PROT_WRITE : constant := 2;
+    PROT_EXEC  : constant := 4;
+    PROT_ALL   : constant := PROT_READ + PROT_WRITE + PROT_EXEC;
+    PROT_ON    : constant := PROT_NONE;
+    PROT_OFF   : constant := PROT_ALL;
+ 
+    function mprotect (addr : Address; len : size_t; prot : int) return int;
+    pragma Import (C, mprotect);
+ 
+    ---------------------------------------
+    -- Nonstandard Thread Initialization --
+    ---------------------------------------
+ 
+    --  FSU_THREADS requires pthread_init, which is nonstandard and this should
+    --  be invoked during the elaboration of s-taprop.adb.
+ 
+    --  FreeBSD does not require this so we provide an empty Ada body
+ 
+    procedure pthread_init;
+ 
+    -------------------------
+    -- POSIX.1c  Section 3 --
+    -------------------------
+ 
+    function sigwait
+      (set : access sigset_t;
+       sig : access Signal) return int;
+    pragma Import (C, sigwait, "sigwait");
+ 
+    function pthread_kill
+      (thread : pthread_t;
+       sig    : Signal) return int;
+    pragma Import (C, pthread_kill, "pthread_kill");
+ 
+    function pthread_sigmask
+      (how  : int;
+       set  : access sigset_t;
+       oset : access sigset_t) return int;
+    pragma Import (C, pthread_sigmask, "pthread_sigmask");
+ 
+    --------------------------
+    -- POSIX.1c  Section 11 --
+    --------------------------
+ 
+    function pthread_mutexattr_init
+      (attr : access pthread_mutexattr_t) return int;
+    pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init");
+ 
+    function pthread_mutexattr_destroy
+      (attr : access pthread_mutexattr_t) return int;
+    pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy");
+ 
+    function pthread_mutex_init
+      (mutex : access pthread_mutex_t;
+       attr  : access pthread_mutexattr_t) return int;
+    pragma Import (C, pthread_mutex_init, "pthread_mutex_init");
+ 
+    function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int;
+    pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy");
+ 
+    function pthread_mutex_lock (mutex : access pthread_mutex_t) return int;
+    pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock");
+ 
+    function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
+    pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock");
+ 
+    function pthread_condattr_init
+      (attr : access pthread_condattr_t) return int;
+    pragma Import (C, pthread_condattr_init, "pthread_condattr_init");
+ 
+    function pthread_condattr_destroy
+      (attr : access pthread_condattr_t) return int;
+    pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy");
+ 
+    function pthread_cond_init
+      (cond : access pthread_cond_t;
+       attr : access pthread_condattr_t) return int;
+    pragma Import (C, pthread_cond_init, "pthread_cond_init");
+ 
+    function pthread_cond_destroy (cond : access pthread_cond_t) return int;
+    pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy");
+ 
+    function pthread_cond_signal (cond : access pthread_cond_t) return int;
+    pragma Import (C, pthread_cond_signal, "pthread_cond_signal");
+ 
+    function pthread_cond_wait
+      (cond  : access pthread_cond_t;
+       mutex : access pthread_mutex_t) return int;
+    pragma Import (C, pthread_cond_wait, "pthread_cond_wait");
+ 
+    function pthread_cond_timedwait
+      (cond    : access pthread_cond_t;
+       mutex   : access pthread_mutex_t;
+       abstime : access timespec) return int;
+    pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
+ 
+    --------------------------
+    -- POSIX.1c  Section 13 --
+    --------------------------
+ 
+    PTHREAD_PRIO_NONE    : constant := 0;
+    PTHREAD_PRIO_PROTECT : constant := 2;
+    PTHREAD_PRIO_INHERIT : constant := 1;
+ 
+    function pthread_mutexattr_setprotocol
+      (attr     : access pthread_mutexattr_t;
+       protocol : int) return int;
+    pragma Import
+       (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol");
+ 
+    function pthread_mutexattr_getprotocol
+      (attr     : access pthread_mutexattr_t;
+       protocol : access int) return int;
+    pragma Import
+      (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol");
+ 
+    function pthread_mutexattr_setprioceiling
+      (attr     : access pthread_mutexattr_t;
+       prioceiling : int) return int;
+    pragma Import
+      (C, pthread_mutexattr_setprioceiling,
+       "pthread_mutexattr_setprioceiling");
+ 
+    function pthread_mutexattr_getprioceiling
+      (attr     : access pthread_mutexattr_t;
+       prioceiling : access int) return int;
+    pragma Import
+      (C, pthread_mutexattr_getprioceiling,
+       "pthread_mutexattr_getprioceiling");
+ 
+    type struct_sched_param is record
+       sched_priority : int;
+    end record;
+    pragma Convention (C, struct_sched_param);
+ 
+    function pthread_getschedparam
+      (thread : pthread_t;
+       policy : access int;
+       param  : access struct_sched_param) return int;
+    pragma Import (C, pthread_getschedparam, "pthread_getschedparam");
+ 
+    function pthread_setschedparam
+      (thread : pthread_t;
+       policy : int;
+       param  : access struct_sched_param) return int;
+    pragma Import (C, pthread_setschedparam, "pthread_setschedparam");
+ 
+    function pthread_attr_setscope
+      (attr            : access pthread_attr_t;
+       contentionscope : int) return int;
+    pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope");
+ 
+    function pthread_attr_getscope
+      (attr            : access pthread_attr_t;
+       contentionscope : access int) return int;
+    pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope");
+ 
+    function pthread_attr_setinheritsched
+      (attr            : access pthread_attr_t;
+       inheritsched : int) return int;
+    pragma Import
+      (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched");
+ 
+    function pthread_attr_getinheritsched
+      (attr         : access pthread_attr_t;
+       inheritsched : access int) return int;
+    pragma Import
+      (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched");
+ 
+    function pthread_attr_setschedpolicy
+      (attr   : access pthread_attr_t;
+       policy : int) return int;
+    pragma Import (C, pthread_attr_setschedpolicy,
+      "pthread_attr_setschedpolicy");
+ 
+    function pthread_attr_getschedpolicy
+      (attr   : access pthread_attr_t;
+       policy : access int) return int;
+    pragma Import (C, pthread_attr_getschedpolicy,
+      "pthread_attr_getschedpolicy");
+ 
+    function pthread_attr_setschedparam
+      (attr        : access pthread_attr_t;
+       sched_param : int) return int;
+    pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam");
+ 
+    function pthread_attr_getschedparam
+      (attr        : access pthread_attr_t;
+       sched_param : access int) return int;
+    pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam");
+ 
+    function sched_yield return int;
+    pragma Import (C, sched_yield, "pthread_yield");
+ 
+    --------------------------
+    -- P1003.1c  Section 16 --
+    --------------------------
+ 
+    function pthread_attr_init (attributes : access pthread_attr_t) return int;
+    pragma Import (C, pthread_attr_init, "pthread_attr_init");
+ 
+    function pthread_attr_destroy
+      (attributes : access pthread_attr_t) return int;
+    pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy");
+ 
+    function pthread_attr_setdetachstate
+      (attr        : access pthread_attr_t;
+       detachstate : int) return int;
+    pragma Import
+      (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate");
+ 
+    function pthread_attr_getdetachstate
+      (attr        : access pthread_attr_t;
+       detachstate : access int) return int;
+    pragma Import
+      (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate");
+ 
+    function pthread_attr_getstacksize
+      (attr      : access pthread_attr_t;
+       stacksize : access size_t) return int;
+    pragma Import
+      (C, pthread_attr_getstacksize, "pthread_attr_getstacksize");
+ 
+    function pthread_attr_setstacksize
+      (attr      : access pthread_attr_t;
+       stacksize : size_t) return int;
+    pragma Import
+      (C, pthread_attr_setstacksize, "pthread_attr_setstacksize");
+ 
+    function pthread_create
+      (thread        : access pthread_t;
+       attributes    : access pthread_attr_t;
+       start_routine : Thread_Body;
+       arg           : System.Address) return int;
+    pragma Import (C, pthread_create, "pthread_create");
+ 
+    function pthread_detach (thread : pthread_t) return int;
+    pragma Import (C, pthread_detach, "pthread_detach");
+ 
+    procedure pthread_exit (status : System.Address);
+    pragma Import (C, pthread_exit, "pthread_exit");
+ 
+    function pthread_self return pthread_t;
+    pragma Import (C, pthread_self, "pthread_self");
+ 
+    --------------------------
+    -- POSIX.1c  Section 17 --
+    --------------------------
+ 
+    function pthread_setspecific
+      (key   : pthread_key_t;
+       value : System.Address) return  int;
+    pragma Import (C, pthread_setspecific, "pthread_setspecific");
+ 
+    function pthread_getspecific (key : pthread_key_t) return System.Address;
+    pragma Import (C, pthread_getspecific, "pthread_getspecific");
+ 
+    type destructor_pointer is access procedure (arg : System.Address);
+    pragma Convention (C, destructor_pointer);
+ 
+    function pthread_key_create
+      (key        : access pthread_key_t;
+       destructor : destructor_pointer) return int;
+    pragma Import (C, pthread_key_create, "pthread_key_create");
+ 
+    ------------------------------------
+    -- Non-portable Pthread Functions --
+    ------------------------------------
+ 
+    function pthread_set_name_np
+      (thread : pthread_t;
+       name   : System.Address) return int;
+    pragma Import (C, pthread_set_name_np, "pthread_set_name_np");
+ 
+ private
+ 
+    type sigset_t is array (1 .. 4) of unsigned;
+ 
+    --  In FreeBSD the component sa_handler turns out to
+    --  be one a union type, and the selector is a macro:
+    --  #define sa_handler __sigaction_u._handler
+    --  #define sa_sigaction __sigaction_u._sigaction
+ 
+    --  Should we add a signal_context type here ???
+    --  How could it be done independent of the CPU architecture ???
+    --  sigcontext type is opaque, so it is architecturally neutral.
+    --  It is always passed as an access type, so define it as an empty record
+    --  since the contents are not used anywhere.
+ 
+    type struct_sigcontext is null record;
+    pragma Convention (C, struct_sigcontext);
+ 
+    Self_PID : constant pid_t := 0;
+ 
+    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
+      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
+ 
+    type timespec is record
+       ts_sec  : time_t;
+       ts_nsec : long;
+    end record;
+    pragma Convention (C, timespec);
+ 
+    type pthread_t           is new System.Address;
+    type pthread_attr_t      is new System.Address;
+    type pthread_mutexattr_t is new System.Address;
+    type pthread_cond_t      is new System.Address;
+    type pthread_condattr_t  is new System.Address;
+    type pthread_key_t       is new int;
+ 
+ end System.OS_Interface;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__darwin.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__darwin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__darwin.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__darwin.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 39,45 ****
--- 39,47 ----
  --  Elaborate_Body. It is designed to be a bottom-level (leaf) package.
  
  with Interfaces.C;
+ 
  with System.OS_Constants;
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 244,250 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 246,252 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 571,582 ****
     end record;
     pragma Convention (C, pthread_mutexattr_t);
  
-    type pthread_mutex_t is record
-       sig    : long;
-       opaque : padding (1 .. System.OS_Constants.PTHREAD_MUTEX_SIZE);
-    end record;
-    pragma Convention (C, pthread_mutex_t);
- 
     type pthread_condattr_t is record
        sig    : long;
        opaque : padding (1 .. System.OS_Constants.PTHREAD_CONDATTR_SIZE);
--- 573,578 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 43,48 ****
--- 43,49 ----
  
  with Interfaces.C;
  
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 278,284 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 279,285 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 646,652 ****
  
     type pthread_t           is new System.Address;
     type pthread_attr_t      is new System.Address;
-    type pthread_mutex_t     is new System.Address;
     type pthread_mutexattr_t is new System.Address;
     type pthread_cond_t      is new System.Address;
     type pthread_condattr_t  is new System.Address;
--- 647,652 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__freebsd.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__freebsd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__freebsd.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__freebsd.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 43,48 ****
--- 43,49 ----
  
  with Interfaces.C;
  
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 280,286 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 281,287 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 643,649 ****
  
     type pthread_t           is new System.Address;
     type pthread_attr_t      is new System.Address;
-    type pthread_mutex_t     is new System.Address;
     type pthread_mutexattr_t is new System.Address;
     type pthread_cond_t      is new System.Address;
     type pthread_condattr_t  is new System.Address;
--- 644,649 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__gnu.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__gnu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2015-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__gnu.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__gnu.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 38,46 ****
  --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
  with System.Parameters;
- with Ada.Unchecked_Conversion;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 38,49 ----
  --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
+ with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C;
+ 
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 298,311 ****
     function To_pthread_t is new Ada.Unchecked_Conversion
       (unsigned_long, pthread_t);
  
!    type pthread_mutex_t     is limited private;
     type pthread_rwlock_t     is limited private;
!    type pthread_cond_t      is limited private;
!    type pthread_attr_t      is limited private;
!    type pthread_mutexattr_t is limited private;
     type pthread_rwlockattr_t is limited private;
!    type pthread_condattr_t  is limited private;
!    type pthread_key_t       is private;
  
     --  From /usr/include/pthread/pthreadtypes.h
     PTHREAD_CREATE_DETACHED : constant := 1;
--- 301,314 ----
     function To_pthread_t is new Ada.Unchecked_Conversion
       (unsigned_long, pthread_t);
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_rwlock_t     is limited private;
!    type pthread_cond_t       is limited private;
!    type pthread_attr_t       is limited private;
!    type pthread_mutexattr_t  is limited private;
     type pthread_rwlockattr_t is limited private;
!    type pthread_condattr_t   is limited private;
!    type pthread_key_t        is private;
  
     --  From /usr/include/pthread/pthreadtypes.h
     PTHREAD_CREATE_DETACHED : constant := 1;
*************** private
*** 712,750 ****
     end record;
     pragma Convention (C, pthread_mutexattr_t);
  
-    --  From: /usr/include/pthread/pthreadtypes.h
-    --  typedef struct __pthread_mutex pthread_mutex_t; and
-    --  /usr/include/i386-gnu/bits/mutex.h:
-    --  struct __pthread_mutex {
-    --  __pthread_spinlock_t __held;
-    --  __pthread_spinlock_t __lock;
-    --  /* in cthreads, mutex_init does not initialized the third
-    --    pointer, as such, we cannot rely on its value for anything.  */
-    --    char *cthreadscompat1;
-    --  struct __pthread *__queue;
-    --  struct __pthread_mutexattr *attr;
-    --  void *data;
-    --  /*  up to this point, we are completely compatible with cthreads
-    --    and what libc expects.  */
-    --    void *owner;
-    --  unsigned locks;
-    --  /* if null then the default attributes apply.  */
-    --    };
- 
-    type pthread_mutex_t is record
-       held          : int;
-       lock          : int;
-       cthreadcompat : System.Address;
-       queue         : System.Address;
-       attr          : System.Address;
-       data          : System.Address;
-       owner         : System.Address;
-       locks         : unsigned;
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    --  pointer needed?
-    --  type pthread_mutex_t_ptr is access pthread_mutex_t;
- 
     --  From: /usr/include/pthread/pthreadtypes.h:
     --  typedef struct __pthread_cond pthread_cond_t;
     --  typedef struct __pthread_condattr pthread_condattr_t;
--- 715,720 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,494 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                   S Y S T E M . O S _ I N T E R F A C E                  --
- --                                                                          --
- --                                  B o d y                                 --
- --                                                                          --
- --             Copyright (C) 1991-1994, Florida State University            --
- --                     Copyright (C) 1995-2024, AdaCore                     --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is a DCE version of this package.
- --  Currently HP-UX and SNI use this file
- 
- --  This package encapsulates all direct interfaces to OS services
- --  that are needed by children of System.
- 
- with Interfaces.C; use Interfaces.C;
- 
- package body System.OS_Interface is
- 
-    -----------------
-    -- To_Duration --
-    -----------------
- 
-    function To_Duration (TS : timespec) return Duration is
-    begin
-       return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9;
-    end To_Duration;
- 
-    -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return timespec is
-       S : time_t;
-       F : Duration;
- 
-    begin
-       S := time_t (Long_Long_Integer (D));
-       F := D - Duration (S);
- 
-       --  If F has negative value due to a round-up, adjust for positive F
-       --  value.
-       if F < 0.0 then
-          S := S - 1;
-          F := F + 1.0;
-       end if;
- 
-       return timespec'(tv_sec => S,
-                        tv_nsec => long (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
-    -------------------------
-    -- POSIX.1c  Section 3 --
-    -------------------------
- 
-    function sigwait
-      (set : access sigset_t;
-       sig : access Signal) return int
-    is
-       Result : int;
- 
-    begin
-       Result := sigwait (set);
- 
-       if Result = -1 then
-          sig.all := 0;
-          return errno;
-       end if;
- 
-       sig.all := Signal (Result);
-       return 0;
-    end sigwait;
- 
-    --  DCE_THREADS does not have pthread_kill. Instead, we just ignore it
- 
-    function pthread_kill (thread : pthread_t; sig : Signal) return int is
-       pragma Unreferenced (thread, sig);
-    begin
-       return 0;
-    end pthread_kill;
- 
-    --------------------------
-    -- POSIX.1c  Section 11 --
-    --------------------------
- 
-    --  For all following functions, DCE Threads has a non standard behavior.
-    --  It sets errno but the standard Posix requires it to be returned.
- 
-    function pthread_mutexattr_init
-      (attr : access pthread_mutexattr_t) return int
-    is
-       function pthread_mutexattr_create
-         (attr : access pthread_mutexattr_t) return int;
-       pragma Import (C, pthread_mutexattr_create, "pthread_mutexattr_create");
- 
-    begin
-       if pthread_mutexattr_create (attr) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutexattr_init;
- 
-    function pthread_mutexattr_destroy
-      (attr : access pthread_mutexattr_t) return int
-    is
-       function pthread_mutexattr_delete
-         (attr : access pthread_mutexattr_t) return int;
-       pragma Import (C, pthread_mutexattr_delete, "pthread_mutexattr_delete");
- 
-    begin
-       if pthread_mutexattr_delete (attr) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutexattr_destroy;
- 
-    function pthread_mutex_init
-      (mutex : access pthread_mutex_t;
-       attr  : access pthread_mutexattr_t) return int
-    is
-       function pthread_mutex_init_base
-         (mutex : access pthread_mutex_t;
-          attr  : pthread_mutexattr_t) return int;
-       pragma Import (C, pthread_mutex_init_base, "pthread_mutex_init");
- 
-    begin
-       if pthread_mutex_init_base (mutex, attr.all) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutex_init;
- 
-    function pthread_mutex_destroy
-      (mutex : access pthread_mutex_t) return int
-    is
-       function pthread_mutex_destroy_base
-         (mutex : access pthread_mutex_t) return int;
-       pragma Import (C, pthread_mutex_destroy_base, "pthread_mutex_destroy");
- 
-    begin
-       if pthread_mutex_destroy_base (mutex) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutex_destroy;
- 
-    function pthread_mutex_lock
-      (mutex : access pthread_mutex_t) return int
-    is
-       function pthread_mutex_lock_base
-         (mutex : access pthread_mutex_t) return int;
-       pragma Import (C, pthread_mutex_lock_base, "pthread_mutex_lock");
- 
-    begin
-       if pthread_mutex_lock_base (mutex) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutex_lock;
- 
-    function pthread_mutex_unlock
-      (mutex : access pthread_mutex_t) return int
-    is
-       function pthread_mutex_unlock_base
-         (mutex : access pthread_mutex_t) return int;
-       pragma Import (C, pthread_mutex_unlock_base, "pthread_mutex_unlock");
- 
-    begin
-       if pthread_mutex_unlock_base (mutex) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_mutex_unlock;
- 
-    function pthread_condattr_init
-      (attr : access pthread_condattr_t) return int
-    is
-       function pthread_condattr_create
-         (attr : access pthread_condattr_t) return int;
-       pragma Import (C, pthread_condattr_create, "pthread_condattr_create");
- 
-    begin
-       if pthread_condattr_create (attr) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_condattr_init;
- 
-    function pthread_condattr_destroy
-      (attr : access pthread_condattr_t) return int
-    is
-       function pthread_condattr_delete
-         (attr : access pthread_condattr_t) return int;
-       pragma Import (C, pthread_condattr_delete, "pthread_condattr_delete");
- 
-    begin
-       if pthread_condattr_delete (attr) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_condattr_destroy;
- 
-    function pthread_cond_init
-      (cond : access pthread_cond_t;
-       attr : access pthread_condattr_t) return int
-    is
-       function pthread_cond_init_base
-         (cond : access pthread_cond_t;
-          attr : pthread_condattr_t) return int;
-       pragma Import (C, pthread_cond_init_base, "pthread_cond_init");
- 
-    begin
-       if pthread_cond_init_base (cond, attr.all) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_cond_init;
- 
-    function pthread_cond_destroy
-      (cond : access pthread_cond_t) return int
-    is
-       function pthread_cond_destroy_base
-         (cond : access pthread_cond_t) return int;
-       pragma Import (C, pthread_cond_destroy_base, "pthread_cond_destroy");
- 
-    begin
-       if pthread_cond_destroy_base (cond) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_cond_destroy;
- 
-    function pthread_cond_signal
-      (cond : access pthread_cond_t) return int
-    is
-       function pthread_cond_signal_base
-         (cond : access pthread_cond_t) return int;
-       pragma Import (C, pthread_cond_signal_base, "pthread_cond_signal");
- 
-    begin
-       if pthread_cond_signal_base (cond) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_cond_signal;
- 
-    function pthread_cond_wait
-      (cond  : access pthread_cond_t;
-       mutex : access pthread_mutex_t) return int
-    is
-       function pthread_cond_wait_base
-         (cond  : access pthread_cond_t;
-          mutex : access pthread_mutex_t) return int;
-       pragma Import (C, pthread_cond_wait_base, "pthread_cond_wait");
- 
-    begin
-       if pthread_cond_wait_base (cond, mutex) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_cond_wait;
- 
-    function pthread_cond_timedwait
-      (cond    : access pthread_cond_t;
-       mutex   : access pthread_mutex_t;
-       abstime : access timespec) return int
-    is
-       function pthread_cond_timedwait_base
-         (cond    : access pthread_cond_t;
-          mutex   : access pthread_mutex_t;
-          abstime : access timespec) return int;
-       pragma Import (C, pthread_cond_timedwait_base, "pthread_cond_timedwait");
- 
-    begin
-       if pthread_cond_timedwait_base (cond, mutex, abstime) /= 0 then
-          return (if errno = EAGAIN then ETIMEDOUT else errno);
-       else
-          return 0;
-       end if;
-    end pthread_cond_timedwait;
- 
-    ----------------------------
-    --  POSIX.1c  Section 13  --
-    ----------------------------
- 
-    function pthread_setschedparam
-      (thread : pthread_t;
-       policy : int;
-       param  : access struct_sched_param) return int
-    is
-       function pthread_setscheduler
-         (thread   : pthread_t;
-          policy   : int;
-          priority : int) return int;
-       pragma Import (C, pthread_setscheduler, "pthread_setscheduler");
- 
-    begin
-       if pthread_setscheduler (thread, policy, param.sched_priority) = -1 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_setschedparam;
- 
-    function sched_yield return int is
-       procedure pthread_yield;
-       pragma Import (C, pthread_yield, "pthread_yield");
-    begin
-       pthread_yield;
-       return 0;
-    end sched_yield;
- 
-    -----------------------------
-    --  P1003.1c - Section 16  --
-    -----------------------------
- 
-    function pthread_attr_init
-      (attributes : access pthread_attr_t) return int
-    is
-       function pthread_attr_create
-         (attributes : access pthread_attr_t) return int;
-       pragma Import (C, pthread_attr_create, "pthread_attr_create");
- 
-    begin
-       if pthread_attr_create (attributes) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_attr_init;
- 
-    function pthread_attr_destroy
-      (attributes : access pthread_attr_t) return int
-    is
-       function pthread_attr_delete
-         (attributes : access pthread_attr_t) return int;
-       pragma Import (C, pthread_attr_delete, "pthread_attr_delete");
- 
-    begin
-       if pthread_attr_delete (attributes) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_attr_destroy;
- 
-    function pthread_attr_setstacksize
-      (attr      : access pthread_attr_t;
-       stacksize : size_t) return int
-    is
-       function pthread_attr_setstacksize_base
-         (attr      : access pthread_attr_t;
-          stacksize : size_t) return int;
-       pragma Import (C, pthread_attr_setstacksize_base,
-                      "pthread_attr_setstacksize");
- 
-    begin
-       if pthread_attr_setstacksize_base (attr, stacksize) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_attr_setstacksize;
- 
-    function pthread_create
-      (thread        : access pthread_t;
-       attributes    : access pthread_attr_t;
-       start_routine : Thread_Body;
-       arg           : System.Address) return int
-    is
-       function pthread_create_base
-         (thread        : access pthread_t;
-          attributes    : pthread_attr_t;
-          start_routine : Thread_Body;
-          arg           : System.Address) return int;
-       pragma Import (C, pthread_create_base, "pthread_create");
- 
-    begin
-       if pthread_create_base
-         (thread, attributes.all, start_routine, arg) /= 0
-       then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_create;
- 
-    --------------------------
-    -- POSIX.1c  Section 17 --
-    --------------------------
- 
-    function pthread_setspecific
-      (key   : pthread_key_t;
-       value : System.Address) return int
-    is
-       function pthread_setspecific_base
-         (key   : pthread_key_t;
-          value : System.Address) return int;
-       pragma Import (C, pthread_setspecific_base, "pthread_setspecific");
- 
-    begin
-       if pthread_setspecific_base (key, value) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_setspecific;
- 
-    function pthread_getspecific (key : pthread_key_t) return System.Address is
-       function pthread_getspecific_base
-         (key   : pthread_key_t;
-          value : access System.Address) return  int;
-       pragma Import (C, pthread_getspecific_base, "pthread_getspecific");
-       Addr : aliased System.Address;
- 
-    begin
-       if pthread_getspecific_base (key, Addr'Access) /= 0 then
-          return System.Null_Address;
-       else
-          return Addr;
-       end if;
-    end pthread_getspecific;
- 
-    function pthread_key_create
-      (key        : access pthread_key_t;
-       destructor : destructor_pointer) return int
-    is
-       function pthread_keycreate
-         (key        : access pthread_key_t;
-          destructor : destructor_pointer) return int;
-       pragma Import (C, pthread_keycreate, "pthread_keycreate");
- 
-    begin
-       if pthread_keycreate (key, destructor) /= 0 then
-          return errno;
-       else
-          return 0;
-       end if;
-    end pthread_key_create;
- 
-    function Get_Stack_Base (thread : pthread_t) return Address is
-       pragma Warnings (Off, thread);
-    begin
-       return Null_Address;
-    end Get_Stack_Base;
- 
-    procedure pthread_init is
-    begin
-       null;
-    end pthread_init;
- 
-    function intr_attach (sig : int; handler : isr_address) return long is
-       function c_signal (sig : int; handler : isr_address) return long;
-       pragma Import (C, c_signal, "signal");
-    begin
-       return c_signal (sig, handler);
-    end intr_attach;
- 
- end System.OS_Interface;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,489 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                   S Y S T E M . O S _ I N T E R F A C E                  --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --             Copyright (C) 1991-1994, Florida State University            --
- --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is the HP-UX version of this package
- 
- --  This package encapsulates all direct interfaces to OS services
- --  that are needed by the tasking run-time (libgnarl).
- 
- --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
- --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
- 
- with Ada.Unchecked_Conversion;
- 
- with Interfaces.C;
- 
- with System.Parameters;
- 
- package System.OS_Interface is
-    pragma Preelaborate;
- 
-    pragma Linker_Options ("-lcma");
- 
-    subtype int            is Interfaces.C.int;
-    subtype short          is Interfaces.C.short;
-    subtype long           is Interfaces.C.long;
-    subtype unsigned       is Interfaces.C.unsigned;
-    subtype unsigned_short is Interfaces.C.unsigned_short;
-    subtype unsigned_long  is Interfaces.C.unsigned_long;
-    subtype unsigned_char  is Interfaces.C.unsigned_char;
-    subtype plain_char     is Interfaces.C.plain_char;
-    subtype size_t         is Interfaces.C.size_t;
- 
-    -----------
-    -- Errno --
-    -----------
- 
-    function errno return int;
-    pragma Import (C, errno, "__get_errno");
- 
-    EAGAIN    : constant := 11;
-    EINTR     : constant := 4;
-    EINVAL    : constant := 22;
-    ENOMEM    : constant := 12;
-    ETIME     : constant := 52;
-    ETIMEDOUT : constant := 238;
- 
-    FUNC_ERR : constant := -1;
- 
-    -------------
-    -- Signals --
-    -------------
- 
-    Max_Interrupt : constant := 44;
-    type Signal is new int range 0 .. Max_Interrupt;
-    for Signal'Size use int'Size;
- 
-    SIGHUP     : constant := 1; --  hangup
-    SIGINT     : constant := 2; --  interrupt (rubout)
-    SIGQUIT    : constant := 3; --  quit (ASCD FS)
-    SIGILL     : constant := 4; --  illegal instruction (not reset)
-    SIGTRAP    : constant := 5; --  trace trap (not reset)
-    SIGIOT     : constant := 6; --  IOT instruction
-    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the  future
-    SIGEMT     : constant := 7; --  EMT instruction
-    SIGFPE     : constant := 8; --  floating point exception
-    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
-    SIGBUS     : constant := 10; --  bus error
-    SIGSEGV    : constant := 11; --  segmentation violation
-    SIGSYS     : constant := 12; --  bad argument to system call
-    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
-    SIGALRM    : constant := 14; --  alarm clock
-    SIGTERM    : constant := 15; --  software termination signal from kill
-    SIGUSR1    : constant := 16; --  user defined signal 1
-    SIGUSR2    : constant := 17; --  user defined signal 2
-    SIGCLD     : constant := 18; --  alias for SIGCHLD
-    SIGCHLD    : constant := 18; --  child status change
-    SIGPWR     : constant := 19; --  power-fail restart
-    SIGVTALRM  : constant := 20; --  virtual timer alarm
-    SIGPROF    : constant := 21; --  profiling timer alarm
-    SIGIO      : constant := 22; --  asynchronous I/O
-    SIGPOLL    : constant := 22; --  pollable event occurred
-    SIGWINCH   : constant := 23; --  window size change
-    SIGSTOP    : constant := 24; --  stop (cannot be caught or ignored)
-    SIGTSTP    : constant := 25; --  user stop requested from tty
-    SIGCONT    : constant := 26; --  stopped process has been continued
-    SIGTTIN    : constant := 27; --  background tty read attempted
-    SIGTTOU    : constant := 28; --  background tty write attempted
-    SIGURG     : constant := 29; --  urgent condition on IO channel
-    SIGLOST    : constant := 30; --  remote lock lost  (NFS)
-    SIGDIL     : constant := 32; --  DIL signal
-    SIGXCPU    : constant := 33; --  CPU time limit exceeded (setrlimit)
-    SIGXFSZ    : constant := 34; --  file size limit exceeded (setrlimit)
- 
-    SIGADAABORT : constant := SIGABRT;
-    --  Note: on other targets, we usually use SIGABRT, but on HP/UX, it
-    --  appears that SIGABRT can't be used in sigwait(), so we use SIGTERM.
- 
-    type Signal_Set is array (Natural range <>) of Signal;
- 
-    Unmasked    : constant Signal_Set :=
-      (SIGBUS, SIGTRAP, SIGTTIN, SIGTTOU, SIGTSTP);
- 
-    Reserved    : constant Signal_Set := (SIGKILL, SIGSTOP);
- 
-    type sigset_t is private;
- 
-    type isr_address is access procedure (sig : int);
-    pragma Convention (C, isr_address);
- 
-    function intr_attach (sig : int; handler : isr_address) return long;
- 
-    Intr_Attach_Reset : constant Boolean := True;
-    --  True if intr_attach is reset after an interrupt handler is called
- 
-    function sigaddset (set : access sigset_t; sig : Signal) return int;
-    pragma Import (C, sigaddset, "sigaddset");
- 
-    function sigdelset (set : access sigset_t; sig : Signal) return int;
-    pragma Import (C, sigdelset, "sigdelset");
- 
-    function sigfillset (set : access sigset_t) return int;
-    pragma Import (C, sigfillset, "sigfillset");
- 
-    function sigismember (set : access sigset_t; sig : Signal) return int;
-    pragma Import (C, sigismember, "sigismember");
- 
-    function sigemptyset (set : access sigset_t) return int;
-    pragma Import (C, sigemptyset, "sigemptyset");
- 
-    type Signal_Handler is access procedure (signo : Signal);
- 
-    type struct_sigaction is record
-       sa_handler : System.Address;
-       sa_mask    : sigset_t;
-       sa_flags   : int;
-    end record;
-    pragma Convention (C, struct_sigaction);
-    type struct_sigaction_ptr is access all struct_sigaction;
- 
-    SA_RESTART  : constant  := 16#40#;
-    SA_SIGINFO  : constant  := 16#10#;
-    SA_ONSTACK  : constant  := 16#01#;
- 
-    SIG_BLOCK   : constant  := 0;
-    SIG_UNBLOCK : constant  := 1;
-    SIG_SETMASK : constant  := 2;
- 
-    SIG_DFL : constant := 0;
-    SIG_IGN : constant := 1;
-    SIG_ERR : constant := -1;
- 
-    function sigaction
-      (sig  : Signal;
-       act  : struct_sigaction_ptr;
-       oact : struct_sigaction_ptr) return int;
-    pragma Import (C, sigaction, "sigaction");
- 
-    ----------
-    -- Time --
-    ----------
- 
-    type timespec is private;
- 
-    function nanosleep (rqtp, rmtp : access timespec) return int;
-    pragma Import (C, nanosleep);
- 
-    type clockid_t is new int;
- 
-    function Clock_Gettime
-      (Clock_Id : clockid_t; Tp : access timespec) return int;
-    pragma Import (C, Clock_Gettime);
- 
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
-    -------------------------
-    -- Priority Scheduling --
-    -------------------------
- 
-    SCHED_FIFO  : constant := 0;
-    SCHED_RR    : constant := 1;
-    SCHED_OTHER : constant := 2;
- 
-    -------------
-    -- Process --
-    -------------
- 
-    type pid_t is private;
- 
-    function kill (pid : pid_t; sig : Signal) return int;
-    pragma Import (C, kill, "kill");
- 
-    function getpid return pid_t;
-    pragma Import (C, getpid, "getpid");
- 
-    -------------
-    -- Threads --
-    -------------
- 
-    type Thread_Body is access
-      function (arg : System.Address) return System.Address;
-    pragma Convention (C, Thread_Body);
- 
-    function Thread_Body_Access is new
-      Ada.Unchecked_Conversion (System.Address, Thread_Body);
- 
-    type pthread_t           is private;
-    subtype Thread_Id        is pthread_t;
- 
-    type pthread_mutex_t     is limited private;
-    type pthread_cond_t      is limited private;
-    type pthread_attr_t      is limited private;
-    type pthread_mutexattr_t is limited private;
-    type pthread_condattr_t  is limited private;
-    type pthread_key_t       is private;
- 
-    --  Read/Write lock not supported on HPUX. To add support both types
-    --  pthread_rwlock_t and pthread_rwlockattr_t must properly be defined
-    --  with the associated routines pthread_rwlock_[init/destroy] and
-    --  pthread_rwlock_[rdlock/wrlock/unlock].
- 
-    subtype pthread_rwlock_t     is pthread_mutex_t;
-    subtype pthread_rwlockattr_t is pthread_mutexattr_t;
- 
-    -----------
-    -- Stack --
-    -----------
- 
-    function Get_Stack_Base (thread : pthread_t) return Address;
-    pragma Inline (Get_Stack_Base);
-    --  This is a dummy procedure to share some GNULLI files
- 
-    ---------------------------------------
-    -- Nonstandard Thread Initialization --
-    ---------------------------------------
- 
-    procedure pthread_init;
-    pragma Inline (pthread_init);
-    --  This is a dummy procedure to share some GNULLI files
- 
-    -------------------------
-    -- POSIX.1c  Section 3 --
-    -------------------------
- 
-    function sigwait (set : access sigset_t) return int;
-    pragma Import (C, sigwait, "cma_sigwait");
- 
-    function sigwait
-      (set : access sigset_t;
-       sig : access Signal) return int;
-    pragma Inline (sigwait);
-    --  DCE_THREADS has a nonstandard sigwait
- 
-    function pthread_kill
-      (thread : pthread_t;
-       sig    : Signal) return int;
-    pragma Inline (pthread_kill);
-    --  DCE_THREADS doesn't have pthread_kill
- 
-    function pthread_sigmask
-      (how  : int;
-       set  : access sigset_t;
-       oset : access sigset_t) return int;
-    --  DCE THREADS does not have pthread_sigmask. Instead, it uses sigprocmask
-    --  to do the signal handling when the thread library is sucked in.
-    pragma Import (C, pthread_sigmask, "sigprocmask");
- 
-    --------------------------
-    -- POSIX.1c  Section 11 --
-    --------------------------
- 
-    function pthread_mutexattr_init
-      (attr : access pthread_mutexattr_t) return int;
-    --  DCE_THREADS has a nonstandard pthread_mutexattr_init
- 
-    function pthread_mutexattr_destroy
-      (attr : access pthread_mutexattr_t) return int;
-    --  DCE_THREADS has a nonstandard pthread_mutexattr_destroy
- 
-    function pthread_mutex_init
-      (mutex : access pthread_mutex_t;
-       attr  : access pthread_mutexattr_t) return int;
-    --  DCE_THREADS has a nonstandard pthread_mutex_init
- 
-    function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int;
-    --  DCE_THREADS has a nonstandard pthread_mutex_destroy
- 
-    function pthread_mutex_lock (mutex : access pthread_mutex_t) return int;
-    pragma Inline (pthread_mutex_lock);
-    --  DCE_THREADS has nonstandard pthread_mutex_lock
- 
-    function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
-    pragma Inline (pthread_mutex_unlock);
-    --  DCE_THREADS has nonstandard pthread_mutex_lock
- 
-    function pthread_condattr_init
-      (attr : access pthread_condattr_t) return int;
-    --  DCE_THREADS has nonstandard pthread_condattr_init
- 
-    function pthread_condattr_destroy
-      (attr : access pthread_condattr_t) return int;
-    --  DCE_THREADS has nonstandard pthread_condattr_destroy
- 
-    function pthread_cond_init
-      (cond : access pthread_cond_t;
-       attr : access pthread_condattr_t) return int;
-    --  DCE_THREADS has nonstandard pthread_cond_init
- 
-    function pthread_cond_destroy (cond : access pthread_cond_t) return int;
-    --  DCE_THREADS has nonstandard pthread_cond_destroy
- 
-    function pthread_cond_signal (cond : access pthread_cond_t) return int;
-    pragma Inline (pthread_cond_signal);
-    --  DCE_THREADS has nonstandard pthread_cond_signal
- 
-    function pthread_cond_wait
-      (cond  : access pthread_cond_t;
-       mutex : access pthread_mutex_t) return int;
-    pragma Inline (pthread_cond_wait);
-    --  DCE_THREADS has a nonstandard pthread_cond_wait
- 
-    function pthread_cond_timedwait
-      (cond    : access pthread_cond_t;
-       mutex   : access pthread_mutex_t;
-       abstime : access timespec) return int;
-    pragma Inline (pthread_cond_timedwait);
-    --  DCE_THREADS has a nonstandard pthread_cond_timedwait
- 
-    --------------------------
-    -- POSIX.1c  Section 13 --
-    --------------------------
- 
-    type struct_sched_param is record
-       sched_priority : int;  --  scheduling priority
-    end record;
- 
-    function pthread_setschedparam
-      (thread : pthread_t;
-       policy : int;
-       param  : access struct_sched_param) return int;
-    pragma Inline (pthread_setschedparam);
-    --  DCE_THREADS has a nonstandard pthread_setschedparam
- 
-    function sched_yield return int;
-    pragma Inline (sched_yield);
-    --  DCE_THREADS has a nonstandard sched_yield
- 
-    ---------------------------
-    -- P1003.1c - Section 16 --
-    ---------------------------
- 
-    function pthread_attr_init (attributes : access pthread_attr_t) return int;
-    pragma Inline (pthread_attr_init);
-    --  DCE_THREADS has a nonstandard pthread_attr_init
- 
-    function pthread_attr_destroy
-      (attributes : access pthread_attr_t) return int;
-    pragma Inline (pthread_attr_destroy);
-    --  DCE_THREADS has a nonstandard pthread_attr_destroy
- 
-    function pthread_attr_setstacksize
-      (attr      : access pthread_attr_t;
-       stacksize : size_t) return int;
-    pragma Inline (pthread_attr_setstacksize);
-    --  DCE_THREADS has a nonstandard pthread_attr_setstacksize
- 
-    function pthread_create
-      (thread        : access pthread_t;
-       attributes    : access pthread_attr_t;
-       start_routine : Thread_Body;
-       arg           : System.Address) return int;
-    pragma Inline (pthread_create);
-    --  DCE_THREADS has a nonstandard pthread_create
- 
-    procedure pthread_detach (thread : access pthread_t);
-    pragma Import (C, pthread_detach);
- 
-    procedure pthread_exit (status : System.Address);
-    pragma Import (C, pthread_exit, "pthread_exit");
- 
-    function pthread_self return pthread_t;
-    pragma Import (C, pthread_self, "pthread_self");
- 
-    --------------------------
-    -- POSIX.1c  Section 17 --
-    --------------------------
- 
-    function pthread_setspecific
-      (key   : pthread_key_t;
-       value : System.Address) return int;
-    pragma Inline (pthread_setspecific);
-    --  DCE_THREADS has a nonstandard pthread_setspecific
- 
-    function pthread_getspecific (key : pthread_key_t) return System.Address;
-    pragma Inline (pthread_getspecific);
-    --  DCE_THREADS has a nonstandard pthread_getspecific
- 
-    type destructor_pointer is access procedure (arg : System.Address);
-    pragma Convention (C, destructor_pointer);
- 
-    function pthread_key_create
-      (key        : access pthread_key_t;
-       destructor : destructor_pointer) return int;
-    pragma Inline (pthread_key_create);
-    --  DCE_THREADS has a nonstandard pthread_key_create
- 
- private
- 
-    type array_type_1 is array (Integer range 0 .. 7) of unsigned_long;
-    type sigset_t is record
-       X_X_sigbits : array_type_1;
-    end record;
-    pragma Convention (C, sigset_t);
- 
-    type pid_t is new int;
- 
-    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
-      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
- 
-    type timespec is record
-       tv_sec  : time_t;
-       tv_nsec : long;
-    end record;
-    pragma Convention (C, timespec);
- 
-    CLOCK_REALTIME : constant clockid_t := 1;
- 
-    type cma_t_address is new System.Address;
- 
-    type cma_t_handle is record
-       field1 : cma_t_address;
-       field2 : Short_Integer;
-       field3 : Short_Integer;
-    end record;
-    for cma_t_handle'Size use 64;
- 
-    type pthread_attr_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_attr_t);
- 
-    type pthread_condattr_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_condattr_t);
- 
-    type pthread_mutexattr_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_mutexattr_t);
- 
-    type pthread_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_t);
- 
-    type pthread_mutex_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_mutex_t);
- 
-    type pthread_cond_t is new cma_t_handle;
-    pragma Convention (C_Pass_By_Copy, pthread_cond_t);
- 
-    type pthread_key_t is new int;
- 
- end System.OS_Interface;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__hpux.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-2017, Florida State University          --
! --            Copyright (C) 1995-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-2017, Florida State University          --
! --            Copyright (C) 1995-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 42,47 ****
--- 42,48 ----
  
  with Interfaces.C;
  
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 252,258 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 253,259 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 533,558 ****
     type short_array is array (Natural range <>) of short;
     type int_array is array (Natural range <>) of int;
  
-    type pthread_mutex_t is record
-       m_short : short_array (0 .. 1);
-       m_int   : int;
-       m_int1  : int_array (0 .. 3);
-       m_pad   : int;
- 
-       m_ptr : int;
-       --  actually m_ptr is a void*, and on 32 bit ABI, m_pad is added so that
-       --  this field takes 64 bits. On 64 bit ABI, m_pad is gone, and m_ptr is
-       --  a 64 bit void*. Assume int'Size = 32.
- 
-       m_int2   : int_array (0 .. 1);
-       m_int3   : int_array (0 .. 3);
-       m_short2 : short_array (0 .. 1);
-       m_int4   : int_array (0 .. 4);
-       m_int5   : int_array (0 .. 1);
-    end record;
-    for pthread_mutex_t'Alignment use System.Address'Alignment;
-    pragma Convention (C, pthread_mutex_t);
- 
     type pthread_cond_t is record
        c_short : short_array (0 .. 1);
        c_int   : int;
--- 534,539 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-1994, Florida State University          --
! --            Copyright (C) 1995-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-1994, Florida State University          --
! --            Copyright (C) 1995-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 39,45 ****
--- 39,48 ----
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C;
+ 
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 284,290 ****
     function To_pthread_t is new Ada.Unchecked_Conversion
       (unsigned_long, pthread_t);
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 287,293 ----
     function To_pthread_t is new Ada.Unchecked_Conversion
       (unsigned_long, pthread_t);
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 637,651 ****
     end record;
     pragma Convention (C, struct_pthread_fast_lock);
  
-    type pthread_mutex_t is record
-       m_reserved : int;
-       m_count    : int;
-       m_owner    : System.Address;
-       m_kind     : int;
-       m_lock     : struct_pthread_fast_lock;
-    end record;
-    pragma Convention (C, pthread_mutex_t);
- 
     type pthread_cond_t is array (0 .. 47) of unsigned_char;
     pragma Convention (C, pthread_cond_t);
  
--- 640,645 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__linux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__linux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__linux.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 39,47 ****
--- 39,50 ----
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C;
+ 
  with System.Linux;
  with System.OS_Constants;
+ with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 301,307 ****
     function To_pthread_t is
       new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
  
!    type pthread_mutex_t      is limited private;
     type pthread_rwlock_t     is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
--- 304,310 ----
     function To_pthread_t is
       new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
  
!    subtype pthread_mutex_t   is System.OS_Locks.pthread_mutex_t;
     type pthread_rwlock_t     is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
*************** private
*** 656,667 ****
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
-    type pthread_mutex_t is record
-       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    for pthread_mutex_t'Alignment use Interfaces.C.unsigned_long'Alignment;
- 
     type pthread_rwlockattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCKATTR_SIZE);
     end record;
--- 659,664 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 43,48 ****
--- 43,49 ----
  with Interfaces.C;
  
  with System.Multiprocessors;
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 267,273 ****
  
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t     is limited private;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
--- 268,274 ----
  
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t  is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t      is limited private;
     type pthread_attr_t      is limited private;
     type pthread_mutexattr_t is limited private;
*************** private
*** 597,614 ****
     end record;
     pragma Convention (C, block_obj_t);
  
-    type pthread_mutex_t is record
-       m_flags      : unsigned;
-       m_owner      : tid_t;
-       m_wait       : block_obj_t;
-       m_prio_c     : int;
-       m_oldprio    : int;
-       m_count      : int;
-       m_referenced : int;
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    type pthread_mutex_t_ptr is access all pthread_mutex_t;
- 
     type pthread_cond_t is record
        cv_magic   : unsigned;
        cv_wait    : block_obj_t;
--- 598,603 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 43,48 ****
--- 43,50 ----
  
  with Interfaces.C;
  with Interfaces.C.Strings;
+ 
+ with System.OS_Locks;
  with System.Win32;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 144,150 ****
     -- Critical sections --
     -----------------------
  
!    type CRITICAL_SECTION is private;
  
     -------------------------------------------------------------
     -- Thread Creation, Activation, Suspension And Termination --
--- 146,169 ----
     -- Critical sections --
     -----------------------
  
!    subtype CRITICAL_SECTION is System.OS_Locks.CRITICAL_SECTION;
! 
!    procedure InitializeCriticalSection
!      (pCriticalSection : access CRITICAL_SECTION);
!    pragma Import
!      (Stdcall, InitializeCriticalSection, "InitializeCriticalSection");
! 
!    procedure EnterCriticalSection
!      (pCriticalSection : access CRITICAL_SECTION);
!    pragma Import (Stdcall, EnterCriticalSection, "EnterCriticalSection");
! 
!    procedure LeaveCriticalSection
!      (pCriticalSection : access CRITICAL_SECTION);
!    pragma Import (Stdcall, LeaveCriticalSection, "LeaveCriticalSection");
! 
!    procedure DeleteCriticalSection
!      (pCriticalSection : access CRITICAL_SECTION);
!    pragma Import (Stdcall, DeleteCriticalSection, "DeleteCriticalSection");
  
     -------------------------------------------------------------
     -- Thread Creation, Activation, Suspension And Termination --
*************** private
*** 359,375 ****
  
     type sigset_t is new Interfaces.C.unsigned_long;
  
-    type CRITICAL_SECTION is record
-       DebugInfo : System.Address;
- 
-       LockCount      : Long_Integer;
-       RecursionCount : Long_Integer;
-       OwningThread   : Win32.HANDLE;
-       --  The above three fields control entering and exiting the critical
-       --  section for the resource.
- 
-       LockSemaphore : Win32.HANDLE;
-       SpinCount     : Interfaces.C.size_t;
-    end record;
- 
  end System.OS_Interface;
--- 378,381 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__posix.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__qnx.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__qnx.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__qnx.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__qnx.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 38,45 ****
--- 38,48 ----
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C;
+ 
  with System.OS_Constants;
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 268,274 ****
     type pthread_t is new int;
     subtype Thread_Id is pthread_t;
  
!    type pthread_mutex_t      is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
     type pthread_mutexattr_t  is limited private;
--- 271,277 ----
     type pthread_t is new int;
     subtype Thread_Id is pthread_t;
  
!    subtype pthread_mutex_t   is System.OS_Locks.pthread_mutex_t;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
     type pthread_mutexattr_t  is limited private;
*************** package System.OS_Interface is
*** 283,289 ****
     PTHREAD_INHERIT_SCHED  : constant := 0;
     PTHREAD_EXPLICIT_SCHED : constant := 2;
  
!    --  Read/Write lock not supported on Android.
  
     subtype pthread_rwlock_t     is pthread_mutex_t;
     subtype pthread_rwlockattr_t is pthread_mutexattr_t;
--- 286,292 ----
     PTHREAD_INHERIT_SCHED  : constant := 0;
     PTHREAD_EXPLICIT_SCHED : constant := 2;
  
!    --  Read/Write lock not supported on QNX
  
     subtype pthread_rwlock_t     is pthread_mutex_t;
     subtype pthread_rwlockattr_t is pthread_mutexattr_t;
*************** private
*** 601,612 ****
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
-    type pthread_mutex_t is record
-       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    for pthread_mutex_t'Alignment use Interfaces.C.unsigned_long'Alignment;
- 
     type pthread_cond_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_COND_SIZE);
     end record;
--- 604,609 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__rtems.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__rtems.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__rtems.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__rtems.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 51,57 ****
--- 51,59 ----
  --  It is designed to be a bottom-level (leaf) package.
  
  with Interfaces.C;
+ 
  with System.OS_Constants;
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 247,253 ****
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    type pthread_mutex_t      is limited private;
     type pthread_rwlock_t     is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
--- 249,255 ----
     type pthread_t           is private;
     subtype Thread_Id        is pthread_t;
  
!    subtype pthread_mutex_t   is System.OS_Locks.pthread_mutex_t;
     type pthread_rwlock_t     is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
*************** private
*** 629,640 ****
  
     type pthread_t is new rtems_id;
  
-    type pthread_mutex_t is record
-       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
-    end record;
-    pragma Convention (C, pthread_mutex_t);
-    for pthread_mutex_t'Alignment use Interfaces.C.double'Alignment;
- 
     type pthread_rwlock_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCK_SIZE);
     end record;
--- 631,636 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 38,47 ****
  --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
- with Interfaces.C;
- 
  with Ada.Unchecked_Conversion;
  
  with System.Parameters;
  
  package System.OS_Interface is
--- 38,48 ----
  --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Ada.Unchecked_Conversion;
  
+ with Interfaces.C;
+ 
+ with System.OS_Locks;
  with System.Parameters;
  
  package System.OS_Interface is
*************** package System.OS_Interface is
*** 297,303 ****
  
     function To_thread_t is new Ada.Unchecked_Conversion (Integer, thread_t);
  
!    type mutex_t is limited private;
  
     type cond_t is limited private;
  
--- 298,304 ----
  
     function To_thread_t is new Ada.Unchecked_Conversion (Integer, thread_t);
  
!    subtype mutex_t is System.OS_Locks.mutex_t;
  
     type cond_t is limited private;
  
*************** private
*** 543,555 ****
  
     type upad64_t is new Interfaces.Unsigned_64;
  
-    type mutex_t is record
-       flags : record_type_3;
-       lock  : upad64_t;
-       data  : upad64_t;
-    end record;
-    pragma Convention (C, mutex_t);
- 
     type cond_t is record
        flags : record_type_3;
        data  : upad64_t;
--- 544,549 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --         Copyright (C) 1997-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --         Copyright (C) 1997-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/s-osinte__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 39,44 ****
--- 39,45 ----
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Interfaces.C;
+ 
  with System.VxWorks;
  with System.VxWorks.Ext;
  with System.Multiprocessors;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-osinte__x32.adb gcc-15.1.0/gcc/ada/libgnarl/s-osinte__x32.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-osinte__x32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-osinte__x32.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-proinf.adb gcc-15.1.0/gcc/ada/libgnarl/s-proinf.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-proinf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-proinf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-proinf.ads gcc-15.1.0/gcc/ada/libgnarl/s-proinf.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-proinf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-proinf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1996-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1996-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-putaim.adb gcc-15.1.0/gcc/ada/libgnarl/s-putaim.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-putaim.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-putaim.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-putaim.ads gcc-15.1.0/gcc/ada/libgnarl/s-putaim.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-putaim.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-putaim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-qnx.ads gcc-15.1.0/gcc/ada/libgnarl/s-qnx.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-qnx.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-qnx.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2017-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2017-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-solita.adb gcc-15.1.0/gcc/ada/libgnarl/s-solita.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-solita.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-solita.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-solita.ads gcc-15.1.0/gcc/ada/libgnarl/s-solita.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-solita.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-solita.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-stusta.adb gcc-15.1.0/gcc/ada/libgnarl/s-stusta.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-stusta.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-stusta.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-stusta.ads gcc-15.1.0/gcc/ada/libgnarl/s-stusta.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-stusta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-stusta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taasde.adb gcc-15.1.0/gcc/ada/libgnarl/s-taasde.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taasde.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taasde.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taasde.ads gcc-15.1.0/gcc/ada/libgnarl/s-taasde.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taasde.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taasde.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tadeca.adb gcc-15.1.0/gcc/ada/libgnarl/s-tadeca.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tadeca.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tadeca.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tadeca.ads gcc-15.1.0/gcc/ada/libgnarl/s-tadeca.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tadeca.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tadeca.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tadert.adb gcc-15.1.0/gcc/ada/libgnarl/s-tadert.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tadert.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tadert.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tadert.ads gcc-15.1.0/gcc/ada/libgnarl/s-tadert.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tadert.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tadert.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taenca.adb gcc-15.1.0/gcc/ada/libgnarl/s-taenca.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taenca.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taenca.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Entry_Calls
*** 410,427 ****
  
        Self_Id.Common.State := Entry_Caller_Sleep;
  
-       --  Try to remove calls to Sleep in the loop below by letting the caller
-       --  a chance of getting ready immediately, using Unlock & Yield.
-       --  See similar action in Wait_For_Call & Timed_Selective_Wait.
- 
-       STPO.Unlock (Self_Id);
- 
-       if Entry_Call.State < Done then
-          STPO.Yield;
-       end if;
- 
-       STPO.Write_Lock (Self_Id);
- 
        loop
           Check_Pending_Actions_For_Entry_Call (Self_Id, Entry_Call);
  
--- 410,415 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taenca.ads gcc-15.1.0/gcc/ada/libgnarl/s-taenca.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taenca.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taenca.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprob.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprob.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprob.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprob.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprob.ads gcc-15.1.0/gcc/ada/libgnarl/s-taprob.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprob.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprob.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Tasking.Protected_Objects
*** 207,212 ****
--- 207,218 ----
     --  lock and allowed to return from the Lock or Lock_Read_Only call.
  
  private
+    --  The following type contains the GNARL state of a protected object.
+    --  The application-defined portion of the state (i.e. private objects)
+    --  is maintained by the compiler-generated code. Note that there is
+    --  another version declared in System.Tasking.Protected_Objects.Entries
+    --  that handles the case with entries and is controlled.
+ 
     type Protection is record
        L : aliased Task_Primitives.Lock;
        --  Lock used to ensure mutual exclusive access to the protected object
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop.ads gcc-15.1.0/gcc/ada/libgnarl/s-taprop.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,46 ****
  --  This package contains all the GNULL primitives that interface directly with
  --  the underlying OS.
  
  with System.Parameters;
  with System.Tasking;
- with System.OS_Interface;
  
  package System.Task_Primitives.Operations is
     pragma Preelaborate;
  
-    package ST renames System.Tasking;
     package OSI renames System.OS_Interface;
  
     procedure Initialize (Environment_Task : ST.Task_Id);
     --  Perform initialization and set up of the environment task for proper
--- 32,46 ----
  --  This package contains all the GNULL primitives that interface directly with
  --  the underlying OS.
  
+ with System.OS_Interface;
  with System.Parameters;
  with System.Tasking;
  
  package System.Task_Primitives.Operations is
     pragma Preelaborate;
  
     package OSI renames System.OS_Interface;
+    package ST  renames System.Tasking;
  
     procedure Initialize (Environment_Task : ST.Task_Id);
     --  Perform initialization and set up of the environment task for proper
*************** package System.Task_Primitives.Operation
*** 149,155 ****
       (Prio : System.Any_Priority;
        L    : not null access Lock);
     procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
        Level : Lock_Level);
     pragma Inline (Initialize_Lock);
     --  Initialize a lock object
--- 149,155 ----
       (Prio : System.Any_Priority;
        L    : not null access Lock);
     procedure Initialize_Lock
!      (L     : not null access System.OS_Locks.RTS_Lock;
        Level : Lock_Level);
     pragma Inline (Initialize_Lock);
     --  Initialize a lock object
*************** package System.Task_Primitives.Operation
*** 173,179 ****
     --  These operations raise Storage_Error if a lack of storage is detected
  
     procedure Finalize_Lock (L : not null access Lock);
!    procedure Finalize_Lock (L : not null access RTS_Lock);
     pragma Inline (Finalize_Lock);
     --  Finalize a lock object, freeing any resources allocated by the
     --  corresponding Initialize_Lock operation.
--- 173,179 ----
     --  These operations raise Storage_Error if a lack of storage is detected
  
     procedure Finalize_Lock (L : not null access Lock);
!    procedure Finalize_Lock (L : not null access System.OS_Locks.RTS_Lock);
     pragma Inline (Finalize_Lock);
     --  Finalize a lock object, freeing any resources allocated by the
     --  corresponding Initialize_Lock operation.
*************** package System.Task_Primitives.Operation
*** 181,187 ****
     procedure Write_Lock
       (L                 : not null access Lock;
        Ceiling_Violation : out Boolean);
!    procedure Write_Lock (L : not null access RTS_Lock);
     procedure Write_Lock (T : ST.Task_Id);
     pragma Inline (Write_Lock);
     --  Lock a lock object for write access. After this operation returns,
--- 181,187 ----
     procedure Write_Lock
       (L                 : not null access Lock;
        Ceiling_Violation : out Boolean);
!    procedure Write_Lock (L : not null access System.OS_Locks.RTS_Lock);
     procedure Write_Lock (T : ST.Task_Id);
     pragma Inline (Write_Lock);
     --  Lock a lock object for write access. After this operation returns,
*************** package System.Task_Primitives.Operation
*** 229,235 ****
  
     procedure Unlock
       (L : not null access Lock);
!    procedure Unlock (L : not null access RTS_Lock);
     procedure Unlock (T : ST.Task_Id);
     pragma Inline (Unlock);
     --  Unlock a locked lock object
--- 229,235 ----
  
     procedure Unlock
       (L : not null access Lock);
!    procedure Unlock (L : not null access System.OS_Locks.RTS_Lock);
     procedure Unlock (T : ST.Task_Id);
     pragma Inline (Unlock);
     --  Unlock a locked lock object
*************** package System.Task_Primitives.Operation
*** 322,327 ****
--- 322,336 ----
     --  priority (RM D.2.2 par 9). Loss_Of_Inheritance helps the underlying
     --  implementation to do it right when the OS doesn't.
  
+    --  Note: The behavior of Set_Priority is OS specific when a dispatching
+    --  policy is not specified, and, as a result, calls to Set_Priority may
+    --  have no affect without setting such a policy via pragma
+    --  Task_Dispatching_Policy.
+ 
+    --  For example:
+ 
+    --    pragma Task_Dispatching_Policy (FIFO_Within_Priorities);
+ 
     function Get_Priority (T : ST.Task_Id) return System.Any_Priority;
     pragma Inline (Get_Priority);
     --  Returns the priority last set by Set_Priority for this task
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 36,43 ****
  
  package body System.Task_Primitives.Operations is
  
     use System.Tasking;
-    use System.Parameters;
  
     pragma Warnings (Off);
     --  Turn off warnings since so many unreferenced parameters
--- 36,43 ----
  
  package body System.Task_Primitives.Operations is
  
+    use System.OS_Locks;
     use System.Tasking;
  
     pragma Warnings (Off);
     --  Turn off warnings since so many unreferenced parameters
*************** package body System.Task_Primitives.Oper
*** 239,245 ****
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level) is
     begin
        null;
     end Initialize_Lock;
--- 239,247 ----
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
!    is
     begin
        null;
     end Initialize_Lock;
*************** package body System.Task_Primitives.Oper
*** 480,489 ****
        null;
     end Unlock;
  
!    procedure Unlock
!      (L           : not null access RTS_Lock;
!       Global_Lock : Boolean := False)
!    is
     begin
        null;
     end Unlock;
--- 482,488 ----
        null;
     end Unlock;
  
!    procedure Unlock (L : not null access RTS_Lock) is
     begin
        null;
     end Unlock;
*************** package body System.Task_Primitives.Oper
*** 522,531 ****
        Ceiling_Violation := False;
     end Write_Lock;
  
!    procedure Write_Lock
!      (L           : not null access RTS_Lock;
!       Global_Lock : Boolean := False)
!    is
     begin
        null;
     end Write_Lock;
--- 521,527 ----
        Ceiling_Violation := False;
     end Write_Lock;
  
!    procedure Write_Lock (L : not null access RTS_Lock) is
     begin
        null;
     end Write_Lock;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,1208 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --     S Y S T E M . T A S K _ P R I M I T I V E S . O P E R A T I O N S    --
- --                                                                          --
- --                                  B o d y                                 --
- --                                                                          --
- --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is a HP-UX DCE threads (HPUX 10) version of this package
- 
- --  This package contains all the GNULL primitives that interface directly with
- --  the underlying OS.
- 
- with Ada.Unchecked_Conversion;
- 
- with Interfaces.C;
- 
- with System.Tasking.Debug;
- with System.Interrupt_Management;
- with System.OS_Constants;
- with System.OS_Primitives;
- with System.Task_Primitives.Interrupt_Operations;
- 
- pragma Warnings (Off);
- with System.Interrupt_Management.Operations;
- pragma Elaborate_All (System.Interrupt_Management.Operations);
- pragma Warnings (On);
- 
- with System.Soft_Links;
- --  We use System.Soft_Links instead of System.Tasking.Initialization
- --  because the later is a higher level package that we shouldn't depend on.
- --  For example when using the restricted run time, it is replaced by
- --  System.Tasking.Restricted.Stages.
- 
- package body System.Task_Primitives.Operations is
- 
-    package OSC renames System.OS_Constants;
-    package SSL renames System.Soft_Links;
- 
-    use System.Tasking.Debug;
-    use System.Tasking;
-    use Interfaces.C;
-    use System.OS_Interface;
-    use System.Parameters;
-    use System.OS_Primitives;
- 
-    package PIO renames System.Task_Primitives.Interrupt_Operations;
- 
-    ----------------
-    -- Local Data --
-    ----------------
- 
-    --  The followings are logically constants, but need to be initialized
-    --  at run time.
- 
-    Single_RTS_Lock : aliased RTS_Lock;
-    --  This is a lock to allow only one thread of control in the RTS at
-    --  a time; it is used to execute in mutual exclusion from all other tasks.
-    --  Used to protect All_Tasks_List
- 
-    Environment_Task_Id : Task_Id;
-    --  A variable to hold Task_Id for the environment task
- 
-    Unblocked_Signal_Mask : aliased sigset_t;
-    --  The set of signals that should unblocked in all tasks
- 
-    Time_Slice_Val : constant Integer;
-    pragma Import (C, Time_Slice_Val, "__gl_time_slice_val");
- 
-    Dispatching_Policy : constant Character;
-    pragma Import (C, Dispatching_Policy, "__gl_task_dispatching_policy");
- 
-    --  Note: the reason that Locking_Policy is not needed is that this
-    --  is not implemented for DCE threads. The HPUX 10 port is at this
-    --  stage considered dead, and no further work is planned on it.
- 
-    Foreign_Task_Elaborated : aliased Boolean := True;
-    --  Used to identified fake tasks (i.e., non-Ada Threads)
- 
-    --------------------
-    -- Local Packages --
-    --------------------
- 
-    package Specific is
- 
-       procedure Initialize (Environment_Task : Task_Id);
-       pragma Inline (Initialize);
-       --  Initialize various data needed by this package
- 
-       function Is_Valid_Task return Boolean;
-       pragma Inline (Is_Valid_Task);
-       --  Does the executing thread have a TCB?
- 
-       procedure Set (Self_Id : Task_Id);
-       pragma Inline (Set);
-       --  Set the self id for the current task
- 
-       function Self return Task_Id;
-       pragma Inline (Self);
-       --  Return a pointer to the Ada Task Control Block of the calling task
- 
-    end Specific;
- 
-    package body Specific is separate;
-    --  The body of this package is target specific
- 
-    ----------------------------------
-    -- ATCB allocation/deallocation --
-    ----------------------------------
- 
-    package body ATCB_Allocation is separate;
-    --  The body of this package is shared across several targets
- 
-    ---------------------------------
-    -- Support for foreign threads --
-    ---------------------------------
- 
-    function Register_Foreign_Thread (Thread : Thread_Id) return Task_Id;
-    --  Allocate and Initialize a new ATCB for the current Thread
- 
-    function Register_Foreign_Thread
-      (Thread : Thread_Id) return Task_Id is separate;
- 
-    -----------------------
-    -- Local Subprograms --
-    -----------------------
- 
-    procedure Abort_Handler (Sig : Signal);
- 
-    function To_Address is
-      new Ada.Unchecked_Conversion (Task_Id, System.Address);
- 
-    -------------------
-    -- Abort_Handler --
-    -------------------
- 
-    procedure Abort_Handler (Sig : Signal) is
-       pragma Unreferenced (Sig);
- 
-       Self_Id : constant Task_Id := Self;
-       Result  : Interfaces.C.int;
-       Old_Set : aliased sigset_t;
- 
-    begin
-       if Self_Id.Deferral_Level = 0
-         and then Self_Id.Pending_ATC_Level < Self_Id.ATC_Nesting_Level
-         and then not Self_Id.Aborting
-       then
-          Self_Id.Aborting := True;
- 
-          --  Make sure signals used for RTS internal purpose are unmasked
- 
-          Result :=
-            pthread_sigmask
-              (SIG_UNBLOCK,
-               Unblocked_Signal_Mask'Access,
-               Old_Set'Access);
-          pragma Assert (Result = 0);
- 
-          raise Standard'Abort_Signal;
-       end if;
-    end Abort_Handler;
- 
-    -----------------
-    -- Stack_Guard --
-    -----------------
- 
-    --  The underlying thread system sets a guard page at the bottom of a thread
-    --  stack, so nothing is needed.
-    --  ??? Check the comment above
- 
-    procedure Stack_Guard (T : ST.Task_Id; On : Boolean) is
-       pragma Unreferenced (T, On);
-    begin
-       null;
-    end Stack_Guard;
- 
-    -------------------
-    -- Get_Thread_Id --
-    -------------------
- 
-    function Get_Thread_Id (T : ST.Task_Id) return OSI.Thread_Id is
-    begin
-       return T.Common.LL.Thread;
-    end Get_Thread_Id;
- 
-    ----------
-    -- Self --
-    ----------
- 
-    function Self return Task_Id renames Specific.Self;
- 
-    ---------------------
-    -- Initialize_Lock --
-    ---------------------
- 
-    --  Note: mutexes and cond_variables needed per-task basis are initialized
-    --  in Initialize_TCB and the Storage_Error is handled. Other mutexes (such
-    --  as RTS_Lock, Memory_Lock...) used in RTS is initialized before any
-    --  status change of RTS. Therefore raising Storage_Error in the following
-    --  routines should be able to be handled safely.
- 
-    procedure Initialize_Lock
-      (Prio : System.Any_Priority;
-       L    : not null access Lock)
-    is
-       Attributes : aliased pthread_mutexattr_t;
-       Result     : Interfaces.C.int;
- 
-    begin
-       Result := pthread_mutexattr_init (Attributes'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       L.Priority := Prio;
- 
-       Result := pthread_mutex_init (L.L'Access, Attributes'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Attributes'Access);
-       pragma Assert (Result = 0);
-    end Initialize_Lock;
- 
-    procedure Initialize_Lock
-      (L     : not null access RTS_Lock;
-       Level : Lock_Level)
-    is
-       pragma Unreferenced (Level);
- 
-       Attributes : aliased pthread_mutexattr_t;
-       Result     : Interfaces.C.int;
- 
-    begin
-       Result := pthread_mutexattr_init (Attributes'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutex_init (L, Attributes'Access);
- 
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Attributes'Access);
-       pragma Assert (Result = 0);
-    end Initialize_Lock;
- 
-    -------------------
-    -- Finalize_Lock --
-    -------------------
- 
-    procedure Finalize_Lock (L : not null access Lock) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_destroy (L.L'Access);
-       pragma Assert (Result = 0);
-    end Finalize_Lock;
- 
-    procedure Finalize_Lock (L : not null access RTS_Lock) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_destroy (L);
-       pragma Assert (Result = 0);
-    end Finalize_Lock;
- 
-    ----------------
-    -- Write_Lock --
-    ----------------
- 
-    procedure Write_Lock
-      (L                 : not null access Lock;
-       Ceiling_Violation : out Boolean)
-    is
-       Result : Interfaces.C.int;
- 
-    begin
-       L.Owner_Priority := Get_Priority (Self);
- 
-       if L.Priority < L.Owner_Priority then
-          Ceiling_Violation := True;
-          return;
-       end if;
- 
-       Result := pthread_mutex_lock (L.L'Access);
-       pragma Assert (Result = 0);
-       Ceiling_Violation := False;
-    end Write_Lock;
- 
-    procedure Write_Lock (L : not null access RTS_Lock) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_lock (L);
-       pragma Assert (Result = 0);
-    end Write_Lock;
- 
-    procedure Write_Lock (T : Task_Id) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_lock (T.Common.LL.L'Access);
-       pragma Assert (Result = 0);
-    end Write_Lock;
- 
-    ---------------
-    -- Read_Lock --
-    ---------------
- 
-    procedure Read_Lock
-      (L                 : not null access Lock;
-       Ceiling_Violation : out Boolean)
-    is
-    begin
-       Write_Lock (L, Ceiling_Violation);
-    end Read_Lock;
- 
-    ------------
-    -- Unlock --
-    ------------
- 
-    procedure Unlock (L : not null access Lock) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_unlock (L.L'Access);
-       pragma Assert (Result = 0);
-    end Unlock;
- 
-    procedure Unlock (L : not null access RTS_Lock) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_unlock (L);
-       pragma Assert (Result = 0);
-    end Unlock;
- 
-    procedure Unlock (T : Task_Id) is
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_mutex_unlock (T.Common.LL.L'Access);
-       pragma Assert (Result = 0);
-    end Unlock;
- 
-    -----------------
-    -- Set_Ceiling --
-    -----------------
- 
-    --  Dynamic priority ceilings are not supported by the underlying system
- 
-    procedure Set_Ceiling
-      (L    : not null access Lock;
-       Prio : System.Any_Priority)
-    is
-       pragma Unreferenced (L, Prio);
-    begin
-       null;
-    end Set_Ceiling;
- 
-    -----------
-    -- Sleep --
-    -----------
- 
-    procedure Sleep
-      (Self_ID : Task_Id;
-       Reason  : System.Tasking.Task_States)
-    is
-       pragma Unreferenced (Reason);
- 
-       Result : Interfaces.C.int;
- 
-    begin
-       Result :=
-         pthread_cond_wait
-           (cond  => Self_ID.Common.LL.CV'Access,
-            mutex => Self_ID.Common.LL.L'Access);
- 
-       --  EINTR is not considered a failure
- 
-       pragma Assert (Result = 0 or else Result = EINTR);
-    end Sleep;
- 
-    -----------------
-    -- Timed_Sleep --
-    -----------------
- 
-    procedure Timed_Sleep
-      (Self_ID  : Task_Id;
-       Time     : Duration;
-       Mode     : ST.Delay_Modes;
-       Reason   : System.Tasking.Task_States;
-       Timedout : out Boolean;
-       Yielded  : out Boolean)
-    is
-       pragma Unreferenced (Reason);
- 
-       Check_Time : constant Duration := Monotonic_Clock;
-       Abs_Time   : Duration;
-       Request    : aliased timespec;
-       Result     : Interfaces.C.int;
- 
-    begin
-       Timedout := True;
-       Yielded := False;
- 
-       Abs_Time :=
-         (if Mode = Relative
-          then Duration'Min (Time, Max_Sensible_Delay) + Check_Time
-          else Duration'Min (Check_Time + Max_Sensible_Delay, Time));
- 
-       if Abs_Time > Check_Time then
-          Request := To_Timespec (Abs_Time);
- 
-          loop
-             exit when Self_ID.Pending_ATC_Level < Self_ID.ATC_Nesting_Level;
- 
-             Result :=
-               pthread_cond_timedwait
-                 (cond    => Self_ID.Common.LL.CV'Access,
-                  mutex   => Self_ID.Common.LL.L'Access,
-                  abstime => Request'Access);
- 
-             exit when Abs_Time <= Monotonic_Clock;
- 
-             if Result = 0 or Result = EINTR then
- 
-                --  Somebody may have called Wakeup for us
- 
-                Timedout := False;
-                exit;
-             end if;
- 
-             pragma Assert (Result = ETIMEDOUT);
-          end loop;
-       end if;
-    end Timed_Sleep;
- 
-    -----------------
-    -- Timed_Delay --
-    -----------------
- 
-    procedure Timed_Delay
-      (Self_ID : Task_Id;
-       Time    : Duration;
-       Mode    : ST.Delay_Modes)
-    is
-       Check_Time : constant Duration := Monotonic_Clock;
-       Abs_Time   : Duration;
-       Request    : aliased timespec;
- 
-       Result : Interfaces.C.int;
-       pragma Warnings (Off, Result);
- 
-    begin
-       Write_Lock (Self_ID);
- 
-       Abs_Time :=
-         (if Mode = Relative
-          then Time + Check_Time
-          else Duration'Min (Check_Time + Max_Sensible_Delay, Time));
- 
-       if Abs_Time > Check_Time then
-          Request := To_Timespec (Abs_Time);
-          Self_ID.Common.State := Delay_Sleep;
- 
-          loop
-             exit when Self_ID.Pending_ATC_Level < Self_ID.ATC_Nesting_Level;
- 
-             Result :=
-               pthread_cond_timedwait
-                 (cond    => Self_ID.Common.LL.CV'Access,
-                  mutex   => Self_ID.Common.LL.L'Access,
-                  abstime => Request'Access);
- 
-             exit when Abs_Time <= Monotonic_Clock;
- 
-             pragma Assert (Result = 0 or else
-               Result = ETIMEDOUT or else
-               Result = EINTR);
-          end loop;
- 
-          Self_ID.Common.State := Runnable;
-       end if;
- 
-       Unlock (Self_ID);
-       Result := sched_yield;
-    end Timed_Delay;
- 
-    ---------------------
-    -- Monotonic_Clock --
-    ---------------------
- 
-    function Monotonic_Clock return Duration is
-       TS     : aliased timespec;
-       Result : Interfaces.C.int;
-    begin
-       Result := Clock_Gettime (OSC.CLOCK_RT_Ada, TS'Unchecked_Access);
-       pragma Assert (Result = 0);
-       return To_Duration (TS);
-    end Monotonic_Clock;
- 
-    -------------------
-    -- RT_Resolution --
-    -------------------
- 
-    function RT_Resolution return Duration is
-    begin
-       return 10#1.0#E-6;
-    end RT_Resolution;
- 
-    ------------
-    -- Wakeup --
-    ------------
- 
-    procedure Wakeup (T : Task_Id; Reason : System.Tasking.Task_States) is
-       pragma Unreferenced (Reason);
-       Result : Interfaces.C.int;
-    begin
-       Result := pthread_cond_signal (T.Common.LL.CV'Access);
-       pragma Assert (Result = 0);
-    end Wakeup;
- 
-    -----------
-    -- Yield --
-    -----------
- 
-    procedure Yield (Do_Yield : Boolean := True) is
-       Result : Interfaces.C.int;
-       pragma Unreferenced (Result);
-    begin
-       if Do_Yield then
-          Result := sched_yield;
-       end if;
-    end Yield;
- 
-    ------------------
-    -- Set_Priority --
-    ------------------
- 
-    type Prio_Array_Type is array (System.Any_Priority) of Integer;
-    pragma Atomic_Components (Prio_Array_Type);
- 
-    Prio_Array : Prio_Array_Type;
-    --  Global array containing the id of the currently running task for
-    --  each priority.
-    --
-    --  Note: assume we are on single processor with run-til-blocked scheduling
- 
-    procedure Set_Priority
-      (T                   : Task_Id;
-       Prio                : System.Any_Priority;
-       Loss_Of_Inheritance : Boolean := False)
-    is
-       Result     : Interfaces.C.int;
-       Array_Item : Integer;
-       Param      : aliased struct_sched_param;
- 
-       function Get_Policy (Prio : System.Any_Priority) return Character;
-       pragma Import (C, Get_Policy, "__gnat_get_specific_dispatching");
-       --  Get priority specific dispatching policy
- 
-       Priority_Specific_Policy : constant Character := Get_Policy (Prio);
-       --  Upper case first character of the policy name corresponding to the
-       --  task as set by a Priority_Specific_Dispatching pragma.
- 
-    begin
-       Param.sched_priority  := Interfaces.C.int (Underlying_Priorities (Prio));
- 
-       if Dispatching_Policy = 'R'
-         or else Priority_Specific_Policy = 'R'
-         or else Time_Slice_Val > 0
-       then
-          Result :=
-            pthread_setschedparam
-              (T.Common.LL.Thread, SCHED_RR, Param'Access);
- 
-       elsif Dispatching_Policy = 'F'
-         or else Priority_Specific_Policy = 'F'
-         or else Time_Slice_Val = 0
-       then
-          Result :=
-            pthread_setschedparam
-              (T.Common.LL.Thread, SCHED_FIFO, Param'Access);
- 
-       else
-          Result :=
-            pthread_setschedparam
-              (T.Common.LL.Thread, SCHED_OTHER, Param'Access);
-       end if;
- 
-       pragma Assert (Result = 0);
- 
-       if Dispatching_Policy = 'F' or else Priority_Specific_Policy = 'F' then
- 
-          --  Annex D requirement [RM D.2.2 par. 9]:
-          --    If the task drops its priority due to the loss of inherited
-          --    priority, it is added at the head of the ready queue for its
-          --    new active priority.
- 
-          if Loss_Of_Inheritance
-            and then Prio < T.Common.Current_Priority
-          then
-             Array_Item := Prio_Array (T.Common.Base_Priority) + 1;
-             Prio_Array (T.Common.Base_Priority) := Array_Item;
- 
-             loop
-                --  Let some processes a chance to arrive
- 
-                Yield;
- 
-                --  Then wait for our turn to proceed
- 
-                exit when Array_Item = Prio_Array (T.Common.Base_Priority)
-                  or else Prio_Array (T.Common.Base_Priority) = 1;
-             end loop;
- 
-             Prio_Array (T.Common.Base_Priority) :=
-               Prio_Array (T.Common.Base_Priority) - 1;
-          end if;
-       end if;
- 
-       T.Common.Current_Priority := Prio;
-    end Set_Priority;
- 
-    ------------------
-    -- Get_Priority --
-    ------------------
- 
-    function Get_Priority (T : Task_Id) return System.Any_Priority is
-    begin
-       return T.Common.Current_Priority;
-    end Get_Priority;
- 
-    ----------------
-    -- Enter_Task --
-    ----------------
- 
-    procedure Enter_Task (Self_ID : Task_Id) is
-    begin
-       Self_ID.Common.LL.Thread := pthread_self;
-       Specific.Set (Self_ID);
-    end Enter_Task;
- 
-    -------------------
-    -- Is_Valid_Task --
-    -------------------
- 
-    function Is_Valid_Task return Boolean renames Specific.Is_Valid_Task;
- 
-    -----------------------------
-    -- Register_Foreign_Thread --
-    -----------------------------
- 
-    function Register_Foreign_Thread return Task_Id is
-    begin
-       if Is_Valid_Task then
-          return Self;
-       else
-          return Register_Foreign_Thread (pthread_self);
-       end if;
-    end Register_Foreign_Thread;
- 
-    --------------------
-    -- Initialize_TCB --
-    --------------------
- 
-    procedure Initialize_TCB (Self_ID : Task_Id; Succeeded : out Boolean) is
-       Mutex_Attr : aliased pthread_mutexattr_t;
-       Result     : Interfaces.C.int;
-       Cond_Attr  : aliased pthread_condattr_t;
- 
-    begin
-       Result := pthread_mutexattr_init (Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = 0 then
-          Result :=
-            pthread_mutex_init
-              (Self_ID.Common.LL.L'Access, Mutex_Attr'Access);
-          pragma Assert (Result = 0 or else Result = ENOMEM);
-       end if;
- 
-       if Result /= 0 then
-          Succeeded := False;
-          return;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-       pragma Assert (Result = 0);
- 
-       Result := pthread_condattr_init (Cond_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = 0 then
-          Result :=
-            pthread_cond_init
-              (Self_ID.Common.LL.CV'Access,
-               Cond_Attr'Access);
-          pragma Assert (Result = 0 or else Result = ENOMEM);
-       end if;
- 
-       if Result = 0 then
-          Succeeded := True;
-       else
-          Result := pthread_mutex_destroy (Self_ID.Common.LL.L'Access);
-          pragma Assert (Result = 0);
- 
-          Succeeded := False;
-       end if;
- 
-       Result := pthread_condattr_destroy (Cond_Attr'Access);
-       pragma Assert (Result = 0);
-    end Initialize_TCB;
- 
-    -----------------
-    -- Create_Task --
-    -----------------
- 
-    procedure Create_Task
-      (T          : Task_Id;
-       Wrapper    : System.Address;
-       Stack_Size : System.Parameters.Size_Type;
-       Priority   : System.Any_Priority;
-       Succeeded  : out Boolean)
-    is
-       Attributes : aliased pthread_attr_t;
-       Result     : Interfaces.C.int;
- 
-       function Thread_Body_Access is new
-         Ada.Unchecked_Conversion (System.Address, Thread_Body);
- 
-    begin
-       Result := pthread_attr_init (Attributes'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result /= 0 then
-          Succeeded := False;
-          return;
-       end if;
- 
-       Result := pthread_attr_setstacksize
-         (Attributes'Access, Interfaces.C.size_t (Stack_Size));
-       pragma Assert (Result = 0);
- 
-       --  Since the initial signal mask of a thread is inherited from the
-       --  creator, and the Environment task has all its signals masked, we
-       --  do not need to manipulate caller's signal mask at this point.
-       --  All tasks in RTS will have All_Tasks_Mask initially.
- 
-       Result := pthread_create
-         (T.Common.LL.Thread'Access,
-          Attributes'Access,
-          Thread_Body_Access (Wrapper),
-          To_Address (T));
-       pragma Assert (Result = 0 or else Result = EAGAIN);
- 
-       Succeeded := Result = 0;
- 
-       pthread_detach (T.Common.LL.Thread'Access);
-       --  Detach the thread using pthread_detach, since DCE threads do not have
-       --  pthread_attr_set_detachstate.
- 
-       Result := pthread_attr_destroy (Attributes'Access);
-       pragma Assert (Result = 0);
- 
-       Set_Priority (T, Priority);
-    end Create_Task;
- 
-    ------------------
-    -- Finalize_TCB --
-    ------------------
- 
-    procedure Finalize_TCB (T : Task_Id) is
-       Result : Interfaces.C.int;
- 
-    begin
-       Result := pthread_mutex_destroy (T.Common.LL.L'Access);
-       pragma Assert (Result = 0);
- 
-       Result := pthread_cond_destroy (T.Common.LL.CV'Access);
-       pragma Assert (Result = 0);
- 
-       if T.Known_Tasks_Index /= -1 then
-          Known_Tasks (T.Known_Tasks_Index) := null;
-       end if;
- 
-       ATCB_Allocation.Free_ATCB (T);
-    end Finalize_TCB;
- 
-    ---------------
-    -- Exit_Task --
-    ---------------
- 
-    procedure Exit_Task is
-    begin
-       Specific.Set (null);
-    end Exit_Task;
- 
-    ----------------
-    -- Abort_Task --
-    ----------------
- 
-    procedure Abort_Task (T : Task_Id) is
-    begin
-       --  Interrupt Server_Tasks may be waiting on an "event" flag (signal)
- 
-       if T.Common.State = Interrupt_Server_Blocked_On_Event_Flag then
-          System.Interrupt_Management.Operations.Interrupt_Self_Process
-            (PIO.Get_Interrupt_ID (T));
-       end if;
-    end Abort_Task;
- 
-    ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (S : in out Suspension_Object) is
-       Mutex_Attr : aliased pthread_mutexattr_t;
-       Cond_Attr  : aliased pthread_condattr_t;
-       Result     : Interfaces.C.int;
-    begin
-       --  Initialize internal state (always to False (ARM D.10(6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := pthread_mutex_init (S.L'Access, Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       --  Initialize internal condition variable
- 
-       Result := pthread_cond_init (S.CV'Access, Cond_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result /= 0 then
-          Result := pthread_mutex_destroy (S.L'Access);
-          pragma Assert (Result = 0);
- 
-          if Result = ENOMEM then
-             raise Storage_Error;
-          end if;
-       end if;
-    end Initialize;
- 
-    --------------
-    -- Finalize --
-    --------------
- 
-    procedure Finalize (S : in out Suspension_Object) is
-       Result  : Interfaces.C.int;
- 
-    begin
-       --  Destroy internal mutex
- 
-       Result := pthread_mutex_destroy (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       --  Destroy internal condition variable
- 
-       Result := pthread_cond_destroy (S.CV'Access);
-       pragma Assert (Result = 0);
-    end Finalize;
- 
-    -------------------
-    -- Current_State --
-    -------------------
- 
-    function Current_State (S : Suspension_Object) return Boolean is
-    begin
-       --  We do not want to use lock on this read operation. State is marked
-       --  as Atomic so that we ensure that the value retrieved is correct.
- 
-       return S.State;
-    end Current_State;
- 
-    ---------------
-    -- Set_False --
-    ---------------
- 
-    procedure Set_False (S : in out Suspension_Object) is
-       Result  : Interfaces.C.int;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       Result := pthread_mutex_lock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       S.State := False;
- 
-       Result := pthread_mutex_unlock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       SSL.Abort_Undefer.all;
-    end Set_False;
- 
-    --------------
-    -- Set_True --
-    --------------
- 
-    procedure Set_True (S : in out Suspension_Object) is
-       Result : Interfaces.C.int;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       Result := pthread_mutex_lock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       --  If there is already a task waiting on this suspension object then
-       --  we resume it, leaving the state of the suspension object to False,
-       --  as it is specified in ARM D.10 par. 9. Otherwise, it just leaves
-       --  the state to True.
- 
-       if S.Waiting then
-          S.Waiting := False;
-          S.State := False;
- 
-          Result := pthread_cond_signal (S.CV'Access);
-          pragma Assert (Result = 0);
- 
-       else
-          S.State := True;
-       end if;
- 
-       Result := pthread_mutex_unlock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       SSL.Abort_Undefer.all;
-    end Set_True;
- 
-    ------------------------
-    -- Suspend_Until_True --
-    ------------------------
- 
-    procedure Suspend_Until_True (S : in out Suspension_Object) is
-       Result : Interfaces.C.int;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       Result := pthread_mutex_lock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       if S.Waiting then
-          --  Program_Error must be raised upon calling Suspend_Until_True
-          --  if another task is already waiting on that suspension object
-          --  (ARM D.10 par. 10).
- 
-          Result := pthread_mutex_unlock (S.L'Access);
-          pragma Assert (Result = 0);
- 
-          SSL.Abort_Undefer.all;
- 
-          raise Program_Error;
-       else
-          --  Suspend the task if the state is False. Otherwise, the task
-          --  continues its execution, and the state of the suspension object
-          --  is set to False (ARM D.10 par. 9).
- 
-          if S.State then
-             S.State := False;
-          else
-             S.Waiting := True;
- 
-             loop
-                --  Loop in case pthread_cond_wait returns earlier than expected
-                --  (e.g. in case of EINTR caused by a signal).
- 
-                Result := pthread_cond_wait (S.CV'Access, S.L'Access);
-                pragma Assert (Result = 0 or else Result = EINTR);
- 
-                exit when not S.Waiting;
-             end loop;
-          end if;
- 
-          Result := pthread_mutex_unlock (S.L'Access);
-          pragma Assert (Result = 0);
- 
-          SSL.Abort_Undefer.all;
-       end if;
-    end Suspend_Until_True;
- 
-    ----------------
-    -- Check_Exit --
-    ----------------
- 
-    --  Dummy version
- 
-    function Check_Exit (Self_ID : ST.Task_Id) return Boolean is
-       pragma Unreferenced (Self_ID);
-    begin
-       return True;
-    end Check_Exit;
- 
-    --------------------
-    -- Check_No_Locks --
-    --------------------
- 
-    function Check_No_Locks (Self_ID : ST.Task_Id) return Boolean is
-       pragma Unreferenced (Self_ID);
-    begin
-       return True;
-    end Check_No_Locks;
- 
-    ----------------------
-    -- Environment_Task --
-    ----------------------
- 
-    function Environment_Task return Task_Id is
-    begin
-       return Environment_Task_Id;
-    end Environment_Task;
- 
-    --------------
-    -- Lock_RTS --
-    --------------
- 
-    procedure Lock_RTS is
-    begin
-       Write_Lock (Single_RTS_Lock'Access);
-    end Lock_RTS;
- 
-    ----------------
-    -- Unlock_RTS --
-    ----------------
- 
-    procedure Unlock_RTS is
-    begin
-       Unlock (Single_RTS_Lock'Access);
-    end Unlock_RTS;
- 
-    ------------------
-    -- Suspend_Task --
-    ------------------
- 
-    function Suspend_Task
-      (T           : ST.Task_Id;
-       Thread_Self : Thread_Id) return Boolean
-    is
-       pragma Unreferenced (T);
-       pragma Unreferenced (Thread_Self);
-    begin
-       return False;
-    end Suspend_Task;
- 
-    -----------------
-    -- Resume_Task --
-    -----------------
- 
-    function Resume_Task
-      (T           : ST.Task_Id;
-       Thread_Self : Thread_Id) return Boolean
-    is
-       pragma Unreferenced (T);
-       pragma Unreferenced (Thread_Self);
-    begin
-       return False;
-    end Resume_Task;
- 
-    --------------------
-    -- Stop_All_Tasks --
-    --------------------
- 
-    procedure Stop_All_Tasks is
-    begin
-       null;
-    end Stop_All_Tasks;
- 
-    ---------------
-    -- Stop_Task --
-    ---------------
- 
-    function Stop_Task (T : ST.Task_Id) return Boolean is
-       pragma Unreferenced (T);
-    begin
-       return False;
-    end Stop_Task;
- 
-    -------------------
-    -- Continue_Task --
-    -------------------
- 
-    function Continue_Task (T : ST.Task_Id) return Boolean is
-       pragma Unreferenced (T);
-    begin
-       return False;
-    end Continue_Task;
- 
-    ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (Environment_Task : Task_Id) is
-       act     : aliased struct_sigaction;
-       old_act : aliased struct_sigaction;
-       Tmp_Set : aliased sigset_t;
-       Result  : Interfaces.C.int;
- 
-       function State
-         (Int : System.Interrupt_Management.Interrupt_ID) return Character;
-       pragma Import (C, State, "__gnat_get_interrupt_state");
-       --  Get interrupt state. Defined in a-init.c. The input argument is
-       --  the interrupt number, and the result is one of the following:
- 
-       Default : constant Character := 's';
-       --    'n'   this interrupt not set by any Interrupt_State pragma
-       --    'u'   Interrupt_State pragma set state to User
-       --    'r'   Interrupt_State pragma set state to Runtime
-       --    's'   Interrupt_State pragma set state to System (use "default"
-       --           system handler)
- 
-    begin
-       Environment_Task_Id := Environment_Task;
- 
-       Interrupt_Management.Initialize;
- 
-       --  Initialize the lock used to synchronize chain of all ATCBs
- 
-       Initialize_Lock (Single_RTS_Lock'Access, RTS_Lock_Level);
- 
-       Specific.Initialize (Environment_Task);
- 
-       --  Make environment task known here because it doesn't go through
-       --  Activate_Tasks, which does it for all other tasks.
- 
-       Known_Tasks (Known_Tasks'First) := Environment_Task;
-       Environment_Task.Known_Tasks_Index := Known_Tasks'First;
- 
-       Enter_Task (Environment_Task);
- 
-       --  Install the abort-signal handler
- 
-       if State (System.Interrupt_Management.Abort_Task_Interrupt)
-                                                      /= Default
-       then
-          act.sa_flags := 0;
-          act.sa_handler := Abort_Handler'Address;
- 
-          Result := sigemptyset (Tmp_Set'Access);
-          pragma Assert (Result = 0);
-          act.sa_mask := Tmp_Set;
- 
-          Result :=
-            sigaction (
-              Signal (System.Interrupt_Management.Abort_Task_Interrupt),
-              act'Unchecked_Access,
-              old_act'Unchecked_Access);
-          pragma Assert (Result = 0);
-       end if;
-    end Initialize;
- 
-    --  NOTE: Unlike other pthread implementations, we do *not* mask all
-    --  signals here since we handle signals using the process-wide primitive
-    --  signal, rather than using sigthreadmask and sigwait. The reason of
-    --  this difference is that sigwait doesn't work when some critical
-    --  signals (SIGABRT, SIGPIPE) are masked.
- 
-    -----------------------
-    -- Set_Task_Affinity --
-    -----------------------
- 
-    procedure Set_Task_Affinity (T : ST.Task_Id) is
-       pragma Unreferenced (T);
- 
-    begin
-       --  Setting task affinity is not supported by the underlying system
- 
-       null;
-    end Set_Task_Affinity;
- 
- end System.Task_Primitives.Operations;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__linux.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__linux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__linux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,47 ****
  --  This package contains all the GNULL primitives that interface directly with
  --  the underlying OS.
  
! with Interfaces.C; use Interfaces; use type Interfaces.C.int;
  
- with System.Task_Info;
- with System.Tasking.Debug;
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
! with System.Multiprocessors;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
--- 34,47 ----
  --  This package contains all the GNULL primitives that interface directly with
  --  the underlying OS.
  
! with Interfaces.C;
  
  with System.Interrupt_Management;
+ with System.Multiprocessors;
  with System.OS_Constants;
  with System.OS_Primitives;
! with System.Task_Info;
! with System.Tasking.Debug;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 54,65 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
!    use System.Tasking.Debug;
!    use System.Tasking;
!    use System.OS_Interface;
     use System.Parameters;
     use System.OS_Primitives;
     use System.Task_Info;
  
     ----------------
     -- Local Data --
--- 54,70 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
!    use Interfaces;
! 
     use System.Parameters;
+    use System.OS_Interface;
+    use System.OS_Locks;
     use System.OS_Primitives;
     use System.Task_Info;
+    use System.Tasking.Debug;
+    use System.Tasking;
+ 
+    use type Interfaces.C.int;
  
     ----------------
     -- Local Data --
*************** package body System.Task_Primitives.Oper
*** 248,259 ****
     --  as in "sudo /sbin/setcap cap_sys_nice=ep exe_file". If it doesn't have
     --  permission, then a request for Ceiling_Locking is ignored.
  
!    type RTS_Lock_Ptr is not null access all RTS_Lock;
! 
!    function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int;
!    --  Initialize the mutex L. If Ceiling_Support is True, then set the ceiling
     --  to Prio. Returns 0 for success, or ENOMEM for out-of-memory.
  
     -------------------
     -- Abort_Handler --
     -------------------
--- 253,269 ----
     --  as in "sudo /sbin/setcap cap_sys_nice=ep exe_file". If it doesn't have
     --  permission, then a request for Ceiling_Locking is ignored.
  
!    function Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : Any_Priority) return C.int;
!    --  Initialize the lock L. If Ceiling_Support is True, then set the ceiling
     --  to Prio. Returns 0 for success, or ENOMEM for out-of-memory.
  
+    function Requires_Affinity_Change
+      (Domain : Dispatching_Domain_Access) return Boolean;
+    --  Returns whether a call to pthread_setaffinity_np is required to assign a
+    --  task to Domain.
+ 
     -------------------
     -- Abort_Handler --
     -------------------
*************** package body System.Task_Primitives.Oper
*** 340,350 ****
  
     function Self return Task_Id renames Specific.Self;
  
!    ----------------
!    -- Init_Mutex --
!    ----------------
  
!    function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
--- 350,369 ----
  
     function Self return Task_Id renames Specific.Self;
  
!    ---------------------
!    -- Initialize_Lock --
!    ---------------------
  
!    --  Note: mutexes and cond_variables needed per-task basis are initialized
!    --  in Initialize_TCB and the Storage_Error is handled. Other mutexes (such
!    --  as RTS_Lock, Memory_Lock...) used in RTS is initialized before any
!    --  status change of RTS. Therefore raising Storage_Error in the following
!    --  routines should be able to be handled safely.
! 
!    function Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : Any_Priority) return C.int
!    is
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
*************** package body System.Task_Primitives.Oper
*** 377,393 ****
        Result_2 := pthread_mutexattr_destroy (Mutex_Attr'Access);
        pragma Assert (Result_2 = 0);
        return Result; -- of pthread_mutex_init, not pthread_mutexattr_destroy
!    end Init_Mutex;
! 
!    ---------------------
!    -- Initialize_Lock --
!    ---------------------
! 
!    --  Note: mutexes and cond_variables needed per-task basis are initialized
!    --  in Initialize_TCB and the Storage_Error is handled. Other mutexes (such
!    --  as RTS_Lock, Memory_Lock...) used in RTS is initialized before any
!    --  status change of RTS. Therefore raising Storage_Error in the following
!    --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
       (Prio : Any_Priority;
--- 396,402 ----
        Result_2 := pthread_mutexattr_destroy (Mutex_Attr'Access);
        pragma Assert (Result_2 = 0);
        return Result; -- of pthread_mutex_init, not pthread_mutexattr_destroy
!    end Initialize_Lock;
  
     procedure Initialize_Lock
       (Prio : Any_Priority;
*************** package body System.Task_Primitives.Oper
*** 420,437 ****
           end;
  
        else
!          if Init_Mutex (L.WO'Access, Prio) = ENOMEM then
              raise Storage_Error with "Failed to allocate a lock";
           end if;
        end if;
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level)
     is
        pragma Unreferenced (Level);
     begin
!       if Init_Mutex (L.all'Access, Any_Priority'Last) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
--- 429,447 ----
           end;
  
        else
!          if Initialize_Lock (L.WO'Access, Prio) = ENOMEM then
              raise Storage_Error with "Failed to allocate a lock";
           end if;
        end if;
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
     is
        pragma Unreferenced (Level);
     begin
!       if Initialize_Lock (L, Any_Priority'Last) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
*************** package body System.Task_Primitives.Oper
*** 516,521 ****
--- 526,545 ----
        Ceiling_Violation := Result = EINVAL;
     end Read_Lock;
  
+    ------------------------------
+    -- Requires_Affinity_Change --
+    ------------------------------
+ 
+    function Requires_Affinity_Change
+      (Domain : Dispatching_Domain_Access) return Boolean is
+    begin
+       return
+         Domain /= System_Domain
+         or else Domain.all
+                 /= [Multiprocessors.CPU'First
+                     .. Multiprocessors.Number_Of_CPUs => True];
+    end Requires_Affinity_Change;
+ 
     ------------
     -- Unlock --
     ------------
*************** package body System.Task_Primitives.Oper
*** 725,731 ****
           raise Invalid_CPU_Number;
        end if;
  
-       Self_ID.Common.LL.Thread := pthread_self;
        Self_ID.Common.LL.LWP := lwp_self;
  
        --  Set thread name to ease debugging. If the name of the task is
--- 749,754 ----
*************** package body System.Task_Primitives.Oper
*** 840,846 ****
  
        Self_ID.Common.LL.Thread := Null_Thread_Id;
  
!       if Init_Mutex (Self_ID.Common.LL.L'Access, Any_Priority'Last) /= 0 then
           Succeeded := False;
           return;
        end if;
--- 863,870 ----
  
        Self_ID.Common.LL.Thread := Null_Thread_Id;
  
!       if Initialize_Lock (Self_ID.Common.LL.L'Access, Any_Priority'Last) /= 0
!       then
           Succeeded := False;
           return;
        end if;
*************** package body System.Task_Primitives.Oper
*** 936,942 ****
  
        --  Support is available
  
!       elsif T.Common.Base_CPU /= Multiprocessors.Not_A_Specific_CPU then
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
--- 960,968 ----
  
        --  Support is available
  
!       elsif T.Common.CPU_Is_Explicit
!         and then T.Common.Base_CPU /= Multiprocessors.Not_A_Specific_CPU
!       then
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
*************** package body System.Task_Primitives.Oper
*** 966,972 ****
  
        --  Handle dispatching domains
  
!       else
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
--- 992,998 ----
  
        --  Handle dispatching domains
  
!       elsif Requires_Affinity_Change (T.Common.Domain) then
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
*************** package body System.Task_Primitives.Oper
*** 998,1011 ****
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  Note: the use of Unrestricted_Access in the following call is needed
!       --  because otherwise we have an error of getting a access-to-volatile
!       --  value which points to a non-volatile object. But in this case it is
!       --  safe to do this, since we know we have no problems with aliasing and
!       --  Unrestricted_Access bypasses this check.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Unrestricted_Access,
           Thread_Attr'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
--- 1024,1037 ----
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  The write to T.Common.LL.Thread is not racy with regard to the
!       --  created thread because the created thread will not access it until
!       --  we release the RTS lock (or the current task's lock when
!       --  Restricted.Stages is used). One can verify that by inspecting the
!       --  Task_Wrapper procedures.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Access,
           Thread_Attr'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
*************** package body System.Task_Primitives.Oper
*** 1379,1384 ****
--- 1405,1411 ----
  
     begin
        Environment_Task_Id := Environment_Task;
+       Environment_Task.Common.LL.Thread := pthread_self;
  
        Interrupt_Management.Initialize;
  
*************** package body System.Task_Primitives.Oper
*** 1458,1471 ****
  
        if pthread_setaffinity_np'Address /= Null_Address
          and then T.Common.LL.Thread /= Null_Thread_Id
        then
           declare
!             CPUs    : constant size_t :=
!                         C.size_t (Multiprocessors.Number_Of_CPUs);
!             CPU_Set : cpu_set_t_ptr := null;
!             Size    : constant size_t := CPU_ALLOC_SIZE (CPUs);
  
!             Result  : C.int;
  
           begin
              --  We look at the specific CPU (Base_CPU) first, then at the
--- 1485,1501 ----
  
        if pthread_setaffinity_np'Address /= Null_Address
          and then T.Common.LL.Thread /= Null_Thread_Id
+         and then (T.Common.CPU_Is_Explicit
+                   or else Requires_Affinity_Change (T.Common.Domain))
        then
           declare
!             CPUs         : constant size_t :=
!               C.size_t (Multiprocessors.Number_Of_CPUs);
!             CPU_Set      : cpu_set_t_ptr := null;
!             Is_Set_Owned : Boolean := False;
!             Size         : constant size_t := CPU_ALLOC_SIZE (CPUs);
  
!             Result       : C.int;
  
           begin
              --  We look at the specific CPU (Base_CPU) first, then at the
*************** package body System.Task_Primitives.Oper
*** 1477,1482 ****
--- 1507,1513 ----
                 --  Set the affinity to an unique CPU
  
                 CPU_Set := CPU_ALLOC (CPUs);
+                Is_Set_Owned := True;
                 System.OS_Interface.CPU_ZERO (Size, CPU_Set);
                 System.OS_Interface.CPU_SET
                   (int (T.Common.Base_CPU), Size, CPU_Set);
*************** package body System.Task_Primitives.Oper
*** 1493,1498 ****
--- 1524,1530 ----
                 --  dispatching domain.
  
                 CPU_Set := CPU_ALLOC (CPUs);
+                Is_Set_Owned := True;
                 System.OS_Interface.CPU_ZERO (Size, CPU_Set);
  
                 for Proc in T.Common.Domain'Range loop
*************** package body System.Task_Primitives.Oper
*** 1506,1512 ****
                pthread_setaffinity_np (T.Common.LL.Thread, Size, CPU_Set);
              pragma Assert (Result = 0);
  
!             CPU_FREE (CPU_Set);
           end;
        end if;
     end Set_Task_Affinity;
--- 1538,1546 ----
                pthread_setaffinity_np (T.Common.LL.Thread, Size, CPU_Set);
              pragma Assert (Result = 0);
  
!             if Is_Set_Owned then
!                CPU_FREE (CPU_Set);
!             end if;
           end;
        end if;
     end Set_Task_Affinity;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Task_Primitives.Oper
*** 57,63 ****
--- 57,65 ----
  
     use Interfaces.C;
     use Interfaces.C.Strings;
+ 
     use System.OS_Interface;
+    use System.OS_Locks;
     use System.OS_Primitives;
     use System.Parameters;
     use System.Task_Info;
*************** package body System.Task_Primitives.Oper
*** 66,102 ****
     use System.Win32;
     use System.Win32.Ext;
  
!    pragma Link_With ("-Xlinker --stack=0x200000,0x1000");
!    --  Change the default stack size (2 MB) for tasking programs on Windows.
!    --  This allows about 1000 tasks running at the same time. Note that
!    --  we set the stack size for non tasking programs on System unit.
!    --  Also note that under Windows XP, we use a Windows XP extension to
     --  specify the stack size on a per task basis, as done under other OSes.
  
-    ---------------------
-    -- Local Functions --
-    ---------------------
- 
-    procedure InitializeCriticalSection (pCriticalSection : access RTS_Lock);
-    procedure InitializeCriticalSection
-      (pCriticalSection : access CRITICAL_SECTION);
-    pragma Import
-      (Stdcall, InitializeCriticalSection, "InitializeCriticalSection");
- 
-    procedure EnterCriticalSection (pCriticalSection : access RTS_Lock);
-    procedure EnterCriticalSection
-      (pCriticalSection : access CRITICAL_SECTION);
-    pragma Import (Stdcall, EnterCriticalSection, "EnterCriticalSection");
- 
-    procedure LeaveCriticalSection (pCriticalSection : access RTS_Lock);
-    procedure LeaveCriticalSection (pCriticalSection : access CRITICAL_SECTION);
-    pragma Import (Stdcall, LeaveCriticalSection, "LeaveCriticalSection");
- 
-    procedure DeleteCriticalSection (pCriticalSection : access RTS_Lock);
-    procedure DeleteCriticalSection
-      (pCriticalSection : access CRITICAL_SECTION);
-    pragma Import (Stdcall, DeleteCriticalSection, "DeleteCriticalSection");
- 
     ----------------
     -- Local Data --
     ----------------
--- 68,80 ----
     use System.Win32;
     use System.Win32.Ext;
  
!    pragma Link_With ("-Xlinker --stack=0x800000,0x1000");
!    --  Change the default stack size (8 MB) for tasking programs on Windows.
!    --  This allows at least 1000 tasks running at the same time. Note that
!    --  we set the stack size for non tasking programs in the System unit.
!    --  Also note that under Windows, we use a Windows extension to
     --  specify the stack size on a per task basis, as done under other OSes.
  
     ----------------
     -- Local Data --
     ----------------
*************** package body System.Task_Primitives.Oper
*** 421,427 ****
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level)
     is
        pragma Unreferenced (Level);
     begin
--- 399,406 ----
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
     is
        pragma Unreferenced (Level);
     begin
*************** package body System.Task_Primitives.Oper
*** 696,702 ****
        Res :=
          SetThreadPriority
            (T.Common.LL.Thread,
!            Interfaces.C.int (Underlying_Priorities (Prio)));
        pragma Assert (Res = Win32.TRUE);
  
        --  Note: Annex D (RM D.2.3(5/2)) requires the task to be placed at the
--- 675,684 ----
        Res :=
          SetThreadPriority
            (T.Common.LL.Thread,
!            Interfaces.C.int ((if Dispatching_Policy = 'F' then
!                                  FIFO_Underlying_Priorities (Prio)
!                               else
!                                  Underlying_Priorities (Prio))));
        pragma Assert (Res = Win32.TRUE);
  
        --  Note: Annex D (RM D.2.3(5/2)) requires the task to be placed at the
*************** package body System.Task_Primitives.Oper
*** 1053,1059 ****
     -------------------
  
     function RT_Resolution return Duration is
!       Ticks_Per_Second : aliased LARGE_INTEGER;
     begin
        QueryPerformanceFrequency (Ticks_Per_Second'Access);
        return Duration (1.0 / Ticks_Per_Second);
--- 1035,1041 ----
     -------------------
  
     function RT_Resolution return Duration is
!       Ticks_Per_Second : aliased System.OS_Interface.LARGE_INTEGER;
     begin
        QueryPerformanceFrequency (Ticks_Per_Second'Access);
        return Duration (1.0 / Ticks_Per_Second);
*************** package body System.Task_Primitives.Oper
*** 1326,1332 ****
           Result :=
             SetThreadIdealProcessor
               (T.Common.LL.Thread, ProcessorId (T.Common.Base_CPU) - 1);
!          pragma Assert (Result = 1);
  
        --  Task_Info
  
--- 1308,1320 ----
           Result :=
             SetThreadIdealProcessor
               (T.Common.LL.Thread, ProcessorId (T.Common.Base_CPU) - 1);
! 
!          --  The documentation for SetThreadIdealProcessor states:
!          --
!          --      If the function fails, the return value is (DWORD) - 1.
!          --
!          --  That should map to DWORD'Last in Ada.
!          pragma Assert (Result /= DWORD'Last);
  
        --  Task_Info
  
*************** package body System.Task_Primitives.Oper
*** 1335,1341 ****
              Result :=
                SetThreadIdealProcessor
                  (T.Common.LL.Thread, T.Common.Task_Info.CPU);
!             pragma Assert (Result = 1);
           end if;
  
        --  Dispatching domains
--- 1323,1332 ----
              Result :=
                SetThreadIdealProcessor
                  (T.Common.LL.Thread, T.Common.Task_Info.CPU);
! 
!             --  See the comment above about the return value of
!             --  SetThreadIdealProcessor.
!             pragma Assert (Result /= DWORD'Last);
           end if;
  
        --  Dispatching domains
*************** package body System.Task_Primitives.Oper
*** 1349,1355 ****
        then
           declare
              CPU_Set : DWORD := 0;
! 
           begin
              for Proc in T.Common.Domain'Range loop
                 if T.Common.Domain (Proc) then
--- 1340,1346 ----
        then
           declare
              CPU_Set : DWORD := 0;
!             Mask_Result : DWORD_PTR;
           begin
              for Proc in T.Common.Domain'Range loop
                 if T.Common.Domain (Proc) then
*************** package body System.Task_Primitives.Oper
*** 1361,1368 ****
                 end if;
              end loop;
  
!             Result := SetThreadAffinityMask (T.Common.LL.Thread, CPU_Set);
!             pragma Assert (Result = 1);
           end;
        end if;
     end Set_Task_Affinity;
--- 1352,1359 ----
                 end if;
              end loop;
  
!             Mask_Result := SetThreadAffinityMask (T.Common.LL.Thread, CPU_Set);
!             pragma Assert (Mask_Result /= 0);
           end;
        end if;
     end Set_Task_Affinity;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__posix.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 44,54 ****
  
  with Interfaces.C;
  
- with System.Tasking.Debug;
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
--- 44,54 ----
  
  with Interfaces.C;
  
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
+ with System.Tasking.Debug;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 61,72 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
-    use System.Tasking.Debug;
-    use System.Tasking;
     use Interfaces.C;
     use System.OS_Interface;
!    use System.Parameters;
     use System.OS_Primitives;
  
     ----------------
     -- Local Data --
--- 61,74 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
     use Interfaces.C;
+ 
     use System.OS_Interface;
!    use System.OS_Locks;
     use System.OS_Primitives;
+    use System.Parameters;
+    use System.Tasking;
+    use System.Tasking.Debug;
  
     ----------------
     -- Local Data --
*************** package body System.Task_Primitives.Oper
*** 207,216 ****
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
     -------------------
     -- Abort_Handler --
     -------------------
--- 209,223 ----
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return Interfaces.C.int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
+    procedure Initialize_Lock
+      (L    : not null access RTS_Lock;
+       Prio : System.Any_Priority);
+    --  Initialize an RTS_Lock with the specified priority
+ 
     -------------------
     -- Abort_Handler --
     -------------------
*************** package body System.Task_Primitives.Oper
*** 287,293 ****
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
--- 294,300 ----
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               Interfaces.C.size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
*************** package body System.Task_Primitives.Oper
*** 319,329 ****
     --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
!      (Prio : System.Any_Priority;
!       L    : not null access Lock)
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result : Interfaces.C.int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
--- 326,336 ----
     --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : System.Any_Priority)
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result     : Interfaces.C.int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
*************** package body System.Task_Primitives.Oper
*** 348,354 ****
           pragma Assert (Result = 0);
        end if;
  
!       Result := pthread_mutex_init (L.WO'Access, Attributes'Access);
        pragma Assert (Result = 0 or else Result = ENOMEM);
  
        if Result = ENOMEM then
--- 355,361 ----
           pragma Assert (Result = 0);
        end if;
  
!       Result := pthread_mutex_init (L, Attributes'Access);
        pragma Assert (Result = 0 or else Result = ENOMEM);
  
        if Result = ENOMEM then
*************** package body System.Task_Primitives.Oper
*** 361,406 ****
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level)
     is
-       pragma Unreferenced (Level);
- 
-       Attributes : aliased pthread_mutexattr_t;
-       Result     : Interfaces.C.int;
- 
     begin
!       Result := pthread_mutexattr_init (Attributes'Access);
!       pragma Assert (Result = 0 or else Result = ENOMEM);
! 
!       if Result = ENOMEM then
!          raise Storage_Error;
!       end if;
! 
!       if Locking_Policy = 'C' then
!          Result := pthread_mutexattr_setprotocol
!            (Attributes'Access, PTHREAD_PRIO_PROTECT);
!          pragma Assert (Result = 0);
! 
!          Result := pthread_mutexattr_setprioceiling
!             (Attributes'Access, Interfaces.C.int (System.Any_Priority'Last));
!          pragma Assert (Result = 0);
! 
!       elsif Locking_Policy = 'I' then
!          Result := pthread_mutexattr_setprotocol
!            (Attributes'Access, PTHREAD_PRIO_INHERIT);
!          pragma Assert (Result = 0);
!       end if;
! 
!       Result := pthread_mutex_init (L, Attributes'Access);
!       pragma Assert (Result = 0 or else Result = ENOMEM);
! 
!       if Result = ENOMEM then
!          Result := pthread_mutexattr_destroy (Attributes'Access);
!          raise Storage_Error;
!       end if;
  
!       Result := pthread_mutexattr_destroy (Attributes'Access);
!       pragma Assert (Result = 0);
     end Initialize_Lock;
  
     -------------------
--- 368,387 ----
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (Prio : System.Any_Priority;
!       L    : not null access Lock)
     is
     begin
!       Initialize_Lock (L.WO'Access, Prio);
!    end Initialize_Lock;
  
!    procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
!    is
!       pragma Unreferenced (Level);
!    begin
!       Initialize_Lock (L, System.Any_Priority'Last);
     end Initialize_Lock;
  
     -------------------
*************** package body System.Task_Primitives.Oper
*** 655,661 ****
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
-       Self_ID.Common.LL.Thread := pthread_self;
        Self_ID.Common.LL.LWP := lwp_self;
  
        Specific.Set (Self_ID);
--- 636,641 ----
*************** package body System.Task_Primitives.Oper
*** 860,873 ****
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  Note: the use of Unrestricted_Access in the following call is needed
!       --  because otherwise we have an error of getting a access-to-volatile
!       --  value which points to a non-volatile object. But in this case it is
!       --  safe to do this, since we know we have no problems with aliasing and
!       --  Unrestricted_Access bypasses this check.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Unrestricted_Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
--- 840,853 ----
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  The write to T.Common.LL.Thread is not racy with regard to the
!       --  created thread because the created thread will not access it until
!       --  we release the RTS lock (or the current task's lock when
!       --  Restricted.Stages is used). One can verify that by inspecting the
!       --  Task_Wrapper procedures.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
*************** package body System.Task_Primitives.Oper
*** 1279,1284 ****
--- 1259,1265 ----
  
     begin
        Environment_Task_Id := Environment_Task;
+       Environment_Task.Common.LL.Thread := pthread_self;
  
        Interrupt_Management.Initialize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__qnx.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__qnx.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 44,55 ****
  
  with Interfaces.C;
  
- with System.Tasking.Debug;
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
! with System.Multiprocessors;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
--- 44,55 ----
  
  with Interfaces.C;
  
  with System.Interrupt_Management;
+ with System.Multiprocessors;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
! with System.Tasking.Debug;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 62,73 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
-    use System.Tasking.Debug;
-    use System.Tasking;
     use Interfaces.C;
     use System.OS_Interface;
!    use System.Parameters;
     use System.OS_Primitives;
  
     ----------------
     -- Local Data --
--- 62,75 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
     use Interfaces.C;
+ 
     use System.OS_Interface;
!    use System.OS_Locks;
     use System.OS_Primitives;
+    use System.Parameters;
+    use System.Tasking;
+    use System.Tasking.Debug;
  
     ----------------
     -- Local Data --
*************** package body System.Task_Primitives.Oper
*** 115,124 ****
     Abort_Handler_Installed : Boolean := False;
     --  True if a handler for the abort signal is installed
  
!    type RTS_Lock_Ptr is not null access all RTS_Lock;
! 
!    function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return int;
!    --  Initialize the mutex L. If Ceiling_Support is True, then set the ceiling
     --  to Prio. Returns 0 for success, or ENOMEM for out-of-memory.
  
     function Get_Policy (Prio : System.Any_Priority) return Character;
--- 117,126 ----
     Abort_Handler_Installed : Boolean := False;
     --  True if a handler for the abort signal is installed
  
!    function Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : Any_Priority) return Interfaces.C.int;
!    --  Initialize the lock L. If Ceiling_Support is True, then set the ceiling
     --  to Prio. Returns 0 for success, or ENOMEM for out-of-memory.
  
     function Get_Policy (Prio : System.Any_Priority) return Character;
*************** package body System.Task_Primitives.Oper
*** 218,224 ****
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
--- 220,226 ----
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return Interfaces.C.int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
*************** package body System.Task_Primitives.Oper
*** 298,304 ****
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
--- 300,306 ----
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               Interfaces.C.size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
*************** package body System.Task_Primitives.Oper
*** 319,333 ****
  
     function Self return Task_Id renames Specific.Self;
  
!    ----------------
!    -- Init_Mutex --
!    ----------------
  
!    function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return int
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result     : int;
!       Result_2   : aliased int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
--- 321,343 ----
  
     function Self return Task_Id renames Specific.Self;
  
!    ---------------------
!    -- Initialize_Lock --
!    ---------------------
  
!    --  Note: mutexes and cond_variables needed per-task basis are initialized
!    --  in Initialize_TCB and the Storage_Error is handled. Other mutexes (such
!    --  as RTS_Lock, Memory_Lock...) used in RTS is initialized before any
!    --  status change of RTS. Therefore raising Storage_Error in the following
!    --  routines should be able to be handled safely.
! 
!    function Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : Any_Priority) return Interfaces.C.int
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result     : Interfaces.C.int;
!       Result_2   : aliased Interfaces.C.int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
*************** package body System.Task_Primitives.Oper
*** 365,399 ****
        pragma Assert (Result_2 = 0);
  
        return Result;
!    end Init_Mutex;
! 
!    ---------------------
!    -- Initialize_Lock --
!    ---------------------
! 
!    --  Note: mutexes and cond_variables needed per-task basis are initialized
!    --  in Initialize_TCB and the Storage_Error is handled. Other mutexes (such
!    --  as RTS_Lock, Memory_Lock...) used in RTS is initialized before any
!    --  status change of RTS. Therefore raising Storage_Error in the following
!    --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
       (Prio : System.Any_Priority;
        L    : not null access Lock)
     is
     begin
!       if Init_Mutex (L.WO'Access, Prio) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level)
     is
        pragma Unreferenced (Level);
  
     begin
!       if Init_Mutex (L.all'Access, Any_Priority'Last) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
--- 375,400 ----
        pragma Assert (Result_2 = 0);
  
        return Result;
!    end Initialize_Lock;
  
     procedure Initialize_Lock
       (Prio : System.Any_Priority;
        L    : not null access Lock)
     is
     begin
!       if Initialize_Lock (L.WO'Access, Prio) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
     is
        pragma Unreferenced (Level);
  
     begin
!       if Initialize_Lock (L, Any_Priority'Last) = ENOMEM then
           raise Storage_Error with "Failed to allocate a lock";
        end if;
     end Initialize_Lock;
*************** package body System.Task_Primitives.Oper
*** 424,432 ****
       (L : not null access Lock; Ceiling_Violation : out Boolean)
     is
        Self    : constant pthread_t := pthread_self;
!       Result  : int;
!       Policy  : aliased int;
!       Ceiling : aliased int;
        Sched   : aliased struct_sched_param;
  
     begin
--- 425,433 ----
       (L : not null access Lock; Ceiling_Violation : out Boolean)
     is
        Self    : constant pthread_t := pthread_self;
!       Result  : Interfaces.C.int;
!       Policy  : aliased Interfaces.C.int;
!       Ceiling : aliased Interfaces.C.int;
        Sched   : aliased struct_sched_param;
  
     begin
*************** package body System.Task_Primitives.Oper
*** 653,659 ****
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
-       Self_ID.Common.LL.Thread := pthread_self;
        Self_ID.Common.LL.LWP := lwp_self;
  
        Specific.Set (Self_ID);
--- 654,659 ----
*************** package body System.Task_Primitives.Oper
*** 706,712 ****
        Next_Serial_Number := Next_Serial_Number + 1;
        pragma Assert (Next_Serial_Number /= 0);
  
!       Result := Init_Mutex (Self_ID.Common.LL.L'Access, Any_Priority'Last);
        pragma Assert (Result = 0);
  
        if Result /= 0 then
--- 706,713 ----
        Next_Serial_Number := Next_Serial_Number + 1;
        pragma Assert (Next_Serial_Number /= 0);
  
!       Result :=
!         Initialize_Lock (Self_ID.Common.LL.L'Access, Any_Priority'Last);
        pragma Assert (Result = 0);
  
        if Result /= 0 then
*************** package body System.Task_Primitives.Oper
*** 844,857 ****
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  Note: the use of Unrestricted_Access in the following call is needed
!       --  because otherwise we have an error of getting a access-to-volatile
!       --  value which points to a non-volatile object. But in this case it is
!       --  safe to do this, since we know we have no problems with aliasing and
!       --  Unrestricted_Access bypasses this check.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Unrestricted_Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
--- 845,858 ----
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  The write to T.Common.LL.Thread is not racy with regard to the
!       --  created thread because the created thread will not access it until
!       --  we release the RTS lock (or the current task's lock when
!       --  Restricted.Stages is used). One can verify that by inspecting the
!       --  Task_Wrapper procedures.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
*************** package body System.Task_Primitives.Oper
*** 1259,1264 ****
--- 1260,1266 ----
  
     begin
        Environment_Task_Id := Environment_Task;
+       Environment_Task.Common.LL.Thread := pthread_self;
  
        Interrupt_Management.Initialize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__rtems.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__rtems.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 38,48 ****
  
  with Interfaces.C;
  
- with System.Tasking.Debug;
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
--- 38,48 ----
  
  with Interfaces.C;
  
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
+ with System.Tasking.Debug;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 55,66 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
-    use System.Tasking.Debug;
-    use System.Tasking;
     use Interfaces.C;
     use System.OS_Interface;
!    use System.Parameters;
     use System.OS_Primitives;
  
     ----------------
     -- Local Data --
--- 55,68 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
     use Interfaces.C;
+ 
     use System.OS_Interface;
!    use System.OS_Locks;
     use System.OS_Primitives;
+    use System.Parameters;
+    use System.Tasking;
+    use System.Tasking.Debug;
  
     ----------------
     -- Local Data --
*************** package body System.Task_Primitives.Oper
*** 198,207 ****
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
     -------------------
     -- Abort_Handler --
     -------------------
--- 200,214 ----
       new Ada.Unchecked_Conversion (Task_Id, System.Address);
  
     function GNAT_pthread_condattr_setup
!      (attr : access pthread_condattr_t) return Interfaces.C.int;
     pragma Import (C,
       GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
+    procedure Initialize_Lock
+      (L    : not null access RTS_Lock;
+       Prio : System.Any_Priority);
+    --  Initialize an RTS_Lock with the specified priority
+ 
     -------------------
     -- Abort_Handler --
     -------------------
*************** package body System.Task_Primitives.Oper
*** 297,303 ****
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
--- 304,310 ----
           Res :=
             mprotect
               (Stack_Base - (Stack_Base mod Page_Size) + Page_Size,
!               Interfaces.C.size_t (Page_Size),
                prot => (if On then PROT_ON else PROT_OFF));
           pragma Assert (Res = 0);
        end if;
*************** package body System.Task_Primitives.Oper
*** 329,339 ****
     --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
!      (Prio : System.Any_Priority;
!       L    : not null access Lock)
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result : Interfaces.C.int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
--- 336,346 ----
     --  routines should be able to be handled safely.
  
     procedure Initialize_Lock
!      (L    : not null access RTS_Lock;
!       Prio : System.Any_Priority)
     is
        Attributes : aliased pthread_mutexattr_t;
!       Result     : Interfaces.C.int;
  
     begin
        Result := pthread_mutexattr_init (Attributes'Access);
*************** package body System.Task_Primitives.Oper
*** 358,364 ****
           pragma Assert (Result = 0);
        end if;
  
!       Result := pthread_mutex_init (L.WO'Access, Attributes'Access);
        pragma Assert (Result = 0 or else Result = ENOMEM);
  
        if Result = ENOMEM then
--- 365,371 ----
           pragma Assert (Result = 0);
        end if;
  
!       Result := pthread_mutex_init (L, Attributes'Access);
        pragma Assert (Result = 0 or else Result = ENOMEM);
  
        if Result = ENOMEM then
*************** package body System.Task_Primitives.Oper
*** 371,416 ****
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (L : not null access RTS_Lock; Level : Lock_Level)
     is
-       pragma Unreferenced (Level);
- 
-       Attributes : aliased pthread_mutexattr_t;
-       Result     : Interfaces.C.int;
- 
     begin
!       Result := pthread_mutexattr_init (Attributes'Access);
!       pragma Assert (Result = 0 or else Result = ENOMEM);
! 
!       if Result = ENOMEM then
!          raise Storage_Error;
!       end if;
! 
!       if Locking_Policy = 'C' then
!          Result := pthread_mutexattr_setprotocol
!            (Attributes'Access, PTHREAD_PRIO_PROTECT);
!          pragma Assert (Result = 0);
! 
!          Result := pthread_mutexattr_setprioceiling
!             (Attributes'Access, Interfaces.C.int (System.Any_Priority'Last));
!          pragma Assert (Result = 0);
! 
!       elsif Locking_Policy = 'I' then
!          Result := pthread_mutexattr_setprotocol
!            (Attributes'Access, PTHREAD_PRIO_INHERIT);
!          pragma Assert (Result = 0);
!       end if;
! 
!       Result := pthread_mutex_init (L, Attributes'Access);
!       pragma Assert (Result = 0 or else Result = ENOMEM);
! 
!       if Result = ENOMEM then
!          Result := pthread_mutexattr_destroy (Attributes'Access);
!          raise Storage_Error;
!       end if;
  
!       Result := pthread_mutexattr_destroy (Attributes'Access);
!       pragma Assert (Result = 0);
     end Initialize_Lock;
  
     -------------------
--- 378,397 ----
     end Initialize_Lock;
  
     procedure Initialize_Lock
!      (Prio : System.Any_Priority;
!       L    : not null access Lock)
     is
     begin
!       Initialize_Lock (L.WO'Access, Prio);
!    end Initialize_Lock;
  
!    procedure Initialize_Lock
!      (L     : not null access RTS_Lock;
!       Level : Lock_Level)
!    is
!       pragma Unreferenced (Level);
!    begin
!       Initialize_Lock (L, System.Any_Priority'Last);
     end Initialize_Lock;
  
     -------------------
*************** package body System.Task_Primitives.Oper
*** 665,671 ****
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
-       Self_ID.Common.LL.Thread := pthread_self;
        Self_ID.Common.LL.LWP := lwp_self;
  
        Specific.Set (Self_ID);
--- 646,651 ----
*************** package body System.Task_Primitives.Oper
*** 870,883 ****
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  Note: the use of Unrestricted_Access in the following call is needed
!       --  because otherwise we have an error of getting a access-to-volatile
!       --  value which points to a non-volatile object. But in this case it is
!       --  safe to do this, since we know we have no problems with aliasing and
!       --  Unrestricted_Access bypasses this check.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Unrestricted_Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
--- 850,863 ----
        --  do not need to manipulate caller's signal mask at this point.
        --  All tasks in RTS will have All_Tasks_Mask initially.
  
!       --  The write to T.Common.LL.Thread is not racy with regard to the
!       --  created thread because the created thread will not access it until
!       --  we release the RTS lock (or the current task's lock when
!       --  Restricted.Stages is used). One can verify that by inspecting the
!       --  Task_Wrapper procedures.
  
        Result := pthread_create
!         (T.Common.LL.Thread'Access,
           Attributes'Access,
           Thread_Body_Access (Wrapper),
           To_Address (T));
*************** package body System.Task_Primitives.Oper
*** 1289,1294 ****
--- 1269,1275 ----
  
     begin
        Environment_Task_Id := Environment_Task;
+       Environment_Task.Common.LL.Thread := pthread_self;
  
        Interrupt_Management.Initialize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 36,47 ****
  
  with Interfaces.C;
  
- with System.Multiprocessors;
- with System.Tasking.Debug;
  with System.Interrupt_Management;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
  
  pragma Warnings (Off);
  with System.OS_Lib;
--- 36,47 ----
  
  with Interfaces.C;
  
  with System.Interrupt_Management;
+ with System.Multiprocessors;
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
+ with System.Tasking.Debug;
  
  pragma Warnings (Off);
  with System.OS_Lib;
*************** package body System.Task_Primitives.Oper
*** 58,69 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
-    use System.Tasking.Debug;
-    use System.Tasking;
     use Interfaces.C;
     use System.OS_Interface;
!    use System.Parameters;
     use System.OS_Primitives;
  
     ----------------
     -- Local Data --
--- 58,71 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
     use Interfaces.C;
+ 
     use System.OS_Interface;
!    use System.OS_Locks;
     use System.OS_Primitives;
+    use System.Parameters;
+    use System.Tasking;
+    use System.Tasking.Debug;
  
     ----------------
     -- Local Data --
*************** package body System.Task_Primitives.Oper
*** 422,427 ****
--- 424,430 ----
  
     begin
        Environment_Task_Id := Environment_Task;
+       Environment_Task.Common.LL.Thread := thr_self;
  
        Interrupt_Management.Initialize;
  
*************** package body System.Task_Primitives.Oper
*** 866,873 ****
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
!       Self_ID.Common.LL.Thread := thr_self;
!       Self_ID.Common.LL.LWP    := lwp_self;
  
        Set_Task_Affinity (Self_ID);
        Specific.Set (Self_ID);
--- 869,875 ----
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
!       Self_ID.Common.LL.LWP := lwp_self;
  
        Set_Task_Affinity (Self_ID);
        Specific.Set (Self_ID);
*************** package body System.Task_Primitives.Oper
*** 995,1005 ****
           Opts := THR_DETACHED + THR_BOUND;
        end if;
  
!       --  Note: the use of Unrestricted_Access in the following call is needed
!       --  because otherwise we have an error of getting a access-to-volatile
!       --  value which points to a non-volatile object. But in this case it is
!       --  safe to do this, since we know we have no problems with aliasing and
!       --  Unrestricted_Access bypasses this check.
  
        Result :=
          thr_create
--- 997,1007 ----
           Opts := THR_DETACHED + THR_BOUND;
        end if;
  
!       --  The write to T.Common.LL.Thread is not racy with regard to the
!       --  created thread because the created thread will not access it until
!       --  we release the RTS lock (or the current task's lock when
!       --  Restricted.Stages is used). One can verify that by inspecting the
!       --  Task_Wrapper procedures.
  
        Result :=
          thr_create
*************** package body System.Task_Primitives.Oper
*** 1008,1014 ****
             Thread_Body_Access (Wrapper),
             To_Address (T),
             Opts,
!            T.Common.LL.Thread'Unrestricted_Access);
  
        Succeeded := Result = 0;
        pragma Assert
--- 1010,1016 ----
             Thread_Body_Access (Wrapper),
             To_Address (T),
             Opts,
!            T.Common.LL.Thread'Access);
  
        Succeeded := Result = 0;
        pragma Assert
*************** package body System.Task_Primitives.Oper
*** 1397,1403 ****
        P := Self_ID.Common.LL.Locks;
  
        if P /= null then
!          L.Next := P;
        end if;
  
        Self_ID.Common.LL.Locking := null;
--- 1399,1405 ----
        P := Self_ID.Common.LL.Locks;
  
        if P /= null then
!          L.Next := To_RTS_Lock_Ptr (P);
        end if;
  
        Self_ID.Common.LL.Locking := null;
*************** package body System.Task_Primitives.Oper
*** 1438,1444 ****
  
        Self_ID.Common.LL.L.Owner := null;
        P := Self_ID.Common.LL.Locks;
!       Self_ID.Common.LL.Locks := Self_ID.Common.LL.Locks.Next;
        P.Next := null;
        return True;
     end Check_Sleep;
--- 1440,1446 ----
  
        Self_ID.Common.LL.L.Owner := null;
        P := Self_ID.Common.LL.Locks;
!       Self_ID.Common.LL.Locks := To_Lock_Ptr (Self_ID.Common.LL.Locks.Next);
        P.Next := null;
        return True;
     end Check_Sleep;
*************** package body System.Task_Primitives.Oper
*** 1466,1472 ****
        P := Self_ID.Common.LL.Locks;
  
        if P /= null then
!          L.Next := P;
        end if;
  
        Self_ID.Common.LL.Locking := null;
--- 1468,1474 ----
        P := Self_ID.Common.LL.Locks;
  
        if P /= null then
!          L.Next := To_RTS_Lock_Ptr (P);
        end if;
  
        Self_ID.Common.LL.Locking := null;
*************** package body System.Task_Primitives.Oper
*** 1547,1553 ****
  
        L.Owner := null;
        P := Self_ID.Common.LL.Locks;
!       Self_ID.Common.LL.Locks := Self_ID.Common.LL.Locks.Next;
        P.Next := null;
        return True;
     end Check_Unlock;
--- 1549,1555 ----
  
        L.Owner := null;
        P := Self_ID.Common.LL.Locks;
!       Self_ID.Common.LL.Locks := To_Lock_Ptr (Self_ID.Common.LL.Locks.Next);
        P.Next := null;
        return True;
     end Check_Unlock;
*************** package body System.Task_Primitives.Oper
*** 1966,1972 ****
        then
           declare
              CPU_Set : aliased psetid_t;
!             Result  : int;
  
           begin
              Result := pset_create (CPU_Set'Access);
--- 1968,1974 ----
        then
           declare
              CPU_Set : aliased psetid_t;
!             Result  : Interfaces.C.int;
  
           begin
              Result := pset_create (CPU_Set'Access);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb gcc-15.1.0/gcc/ada/libgnarl/s-taprop__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taprop__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 38,48 ****
  
  with Interfaces.C;
  
- with System.Multiprocessors;
- with System.Tasking.Debug;
- with System.Interrupt_Management;
  with System.Float_Control;
  with System.OS_Constants;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
--- 38,48 ----
  
  with Interfaces.C;
  
  with System.Float_Control;
+ with System.Interrupt_Management;
+ with System.Multiprocessors;
  with System.OS_Constants;
+ with System.Tasking.Debug;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 58,67 ****
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
-    use System.Tasking.Debug;
-    use System.Tasking;
     use System.OS_Interface;
     use System.Parameters;
     use type Interfaces.C.int;
     use type System.OS_Interface.unsigned;
     use type System.VxWorks.Ext.t_id;
--- 58,69 ----
     package OSC renames System.OS_Constants;
     package SSL renames System.Soft_Links;
  
     use System.OS_Interface;
+    use System.OS_Locks;
     use System.Parameters;
+    use System.Tasking;
+    use System.Tasking.Debug;
+ 
     use type Interfaces.C.int;
     use type System.OS_Interface.unsigned;
     use type System.VxWorks.Ext.t_id;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tarest.adb gcc-15.1.0/gcc/ada/libgnarl/s-tarest.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tarest.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tarest.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1999-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1999-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Style_Checks (All_Checks);
*** 41,48 ****
  
  with Ada.Exceptions;
  
! with System.Task_Primitives.Operations;
  with System.Soft_Links.Tasking;
  
  with System.Soft_Links;
  --  Used for the non-tasking routines (*_NT) that refer to global data. They
--- 41,49 ----
  
  with Ada.Exceptions;
  
! with System.OS_Locks;
  with System.Soft_Links.Tasking;
+ with System.Task_Primitives.Operations;
  
  with System.Soft_Links;
  --  Used for the non-tasking routines (*_NT) that refer to global data. They
*************** package body System.Tasking.Restricted.S
*** 63,69 ****
     Tasks_Activation_Chain : Task_Id;
     --  Chain of all the tasks to activate
  
!    Global_Task_Lock : aliased System.Task_Primitives.RTS_Lock;
     --  This is a global lock; it is used to execute in mutual exclusion
     --  from all other tasks. It is only used by Task_Lock and Task_Unlock.
  
--- 64,70 ----
     Tasks_Activation_Chain : Task_Id;
     --  Chain of all the tasks to activate
  
!    Global_Task_Lock : aliased System.OS_Locks.RTS_Lock;
     --  This is a global lock; it is used to execute in mutual exclusion
     --  from all other tasks. It is only used by Task_Lock and Task_Unlock.
  
*************** package body System.Tasking.Restricted.S
*** 513,519 ****
  
        Initialize_ATCB
          (Self_ID, State, Discriminants, Self_ID, Elaborated, Base_Priority,
!          Base_CPU, null, Task_Info, Stack_Size, Created_Task, Success);
  
        --  If we do our job right then there should never be any failures, which
        --  was probably said about the Titanic; so just to be safe, let's retain
--- 514,521 ----
  
        Initialize_ATCB
          (Self_ID, State, Discriminants, Self_ID, Elaborated, Base_Priority,
!          Base_CPU, CPU /= Unspecified_CPU, null, Task_Info, Stack_Size,
!          Created_Task, Success);
  
        --  If we do our job right then there should never be any failures, which
        --  was probably said about the Titanic; so just to be safe, let's retain
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tarest.ads gcc-15.1.0/gcc/ada/libgnarl/s-tarest.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tarest.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tarest.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 33,44 ****
  --  intended to be used in a restricted run time.
  
  --  This package represents the high level tasking interface used by the
! --  compiler to expand Ada 95 tasking constructs into simpler run time calls
! --  (aka GNARLI, GNU Ada Run-time Library Interface)
  
! --  Note: the compiler generates direct calls to this interface, via Rtsfind.
! --  Any changes to this interface may require corresponding compiler changes
! --  in exp_ch9.adb and possibly exp_ch7.adb
  
  --  The restricted GNARLI is also composed of System.Protected_Objects and
  --  System.Protected_Objects.Single_Entry
--- 33,43 ----
  --  intended to be used in a restricted run time.
  
  --  This package represents the high level tasking interface used by the
! --  compiler to expand Ada 95 tasking constructs into simpler run-time calls.
  
! --  The compiler generates direct calls to this interface, via Rtsfind. Any
! --  changes to this interface may require corresponding compiler changes in
! --  exp_ch9.adb and possibly exp_ch7.adb.
  
  --  The restricted GNARLI is also composed of System.Protected_Objects and
  --  System.Protected_Objects.Single_Entry
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasdeb.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasdeb.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasdeb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasdeb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasdeb.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasdeb.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasdeb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasdeb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasinf.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                           (Compiler Interface)                           --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                           (Compiler Interface)                           --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasinf.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,40 ****
  ------------------------------------------------------------------------------
  
  --  This package contains the definitions and routines associated with the
! --  implementation and use of the Task_Info pragma. It is specialized
  --  appropriately for targets that make use of this pragma.
  
! --  Note: the compiler generates direct calls to this interface, via Rtsfind.
! --  Any changes to this interface may require corresponding compiler changes.
  
  --  The functionality in this unit is now provided by the predefined package
  --  System.Multiprocessors and the CPU aspect. This package is obsolescent.
--- 30,40 ----
  ------------------------------------------------------------------------------
  
  --  This package contains the definitions and routines associated with the
! --  implementation and use of the ``Task_Info`` pragma. It is specialized
  --  appropriately for targets that make use of this pragma.
  
! --  The compiler generates direct calls to this interface, via Rtsfind. Any
! --  changes to this interface may require corresponding compiler changes.
  
  --  The functionality in this unit is now provided by the predefined package
  --  System.Multiprocessors and the CPU aspect. This package is obsolescent.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__linux.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__linux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__linux.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__linux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2007-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2007-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasini.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasini.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasini.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasini.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Style_Checks (All_Checks);
*** 33,42 ****
  --  Turn off subprogram alpha ordering check, since we group soft link bodies
  --  and dummy soft link bodies together separately in this unit.
  
! with System.Task_Primitives;
! with System.Task_Primitives.Operations;
  with System.Soft_Links;
  with System.Soft_Links.Tasking;
  with System.Tasking.Debug;
  with System.Tasking.Task_Attributes;
  
--- 33,43 ----
  --  Turn off subprogram alpha ordering check, since we group soft link bodies
  --  and dummy soft link bodies together separately in this unit.
  
! with System.OS_Locks;
  with System.Soft_Links;
  with System.Soft_Links.Tasking;
+ with System.Task_Primitives;
+ with System.Task_Primitives.Operations;
  with System.Tasking.Debug;
  with System.Tasking.Task_Attributes;
  
*************** pragma Unreferenced (System.Secondary_St
*** 48,60 ****
  
  package body System.Tasking.Initialization is
  
!    package STPO renames System.Task_Primitives.Operations;
     package SSL  renames System.Soft_Links;
  
     use Parameters;
     use Task_Primitives.Operations;
  
!    Global_Task_Lock : aliased System.Task_Primitives.RTS_Lock;
     --  This is a global lock; it is used to execute in mutual exclusion from
     --  all other tasks. It is only used by Task_Lock, Task_Unlock, and
     --  Final_Task_Unlock.
--- 49,62 ----
  
  package body System.Tasking.Initialization is
  
!    package SOL  renames System.OS_Locks;
     package SSL  renames System.Soft_Links;
+    package STPO renames System.Task_Primitives.Operations;
  
     use Parameters;
     use Task_Primitives.Operations;
  
!    Global_Task_Lock : aliased SOL.RTS_Lock;
     --  This is a global lock; it is used to execute in mutual exclusion from
     --  all other tasks. It is only used by Task_Lock, Task_Unlock, and
     --  Final_Task_Unlock.
*************** package body System.Tasking.Initializati
*** 88,96 ****
     function Task_Name return String;
     --  Returns current task's name
  
!    ------------------------
!    --  Local Subprograms --
!    ------------------------
  
     ----------------------------
     -- Tasking Initialization --
--- 90,106 ----
     function Task_Name return String;
     --  Returns current task's name
  
!    procedure Initialize_RTS_Lock (Addr : Address);
!    --  Initialize the RTS lock at Addr
! 
!    procedure Finalize_RTS_Lock (Addr : Address);
!    --  Finalize the RTS lock at Addr
! 
!    procedure Acquire_RTS_Lock (Addr : Address);
!    --  Acquire the RTS lock at Addr
! 
!    procedure Release_RTS_Lock (Addr : Address);
!    --  Release the RTS lock at Addr
  
     ----------------------------
     -- Tasking Initialization --
*************** package body System.Tasking.Initializati
*** 102,107 ****
--- 112,128 ----
     --  of initializing global locks, and installing tasking versions of certain
     --  operations used by the compiler. Init_RTS is called during elaboration.
  
+    procedure Tasking_Runtime_Initialize;
+    pragma Export (Ada, Tasking_Runtime_Initialize,
+                   "__gnat_tasking_runtime_initialize");
+    pragma Linker_Constructor (Tasking_Runtime_Initialize);
+    --  This procedure starts the initialization of the GNARL. It installs the
+    --  tasking version of the RTS_Lock manipulation routines. It is called
+    --  very early before the elaboration of all the Ada units of the program,
+    --  including those of the runtime, because this elaboration may require
+    --  the initialization of RTS_Lock objects, which means that it must only
+    --  contain code to which pragma Restrictions (No_Elaboration_Code) applies.
+ 
     --------------------------
     -- Change_Base_Priority --
     --------------------------
*************** package body System.Tasking.Initializati
*** 220,225 ****
--- 241,298 ----
        return STPO.Self.Common.Compiler_Data.Current_Excep'Access;
     end Get_Current_Excep;
  
+    -------------------------
+    -- Initialize_RTS_Lock --
+    -------------------------
+ 
+    procedure Initialize_RTS_Lock (Addr : Address) is
+       Lock : aliased SOL.RTS_Lock;
+       for Lock'Address use Addr;
+       pragma Import (Ada, Lock);
+ 
+    begin
+       Initialize_Lock (Lock'Unchecked_Access, PO_Level);
+    end Initialize_RTS_Lock;
+ 
+    -----------------------
+    -- Finalize_RTS_Lock --
+    -----------------------
+ 
+    procedure Finalize_RTS_Lock (Addr : Address) is
+       Lock : aliased SOL.RTS_Lock;
+       for Lock'Address use Addr;
+       pragma Import (Ada, Lock);
+ 
+    begin
+       Finalize_Lock (Lock'Unchecked_Access);
+    end Finalize_RTS_Lock;
+ 
+    ----------------------
+    -- Acquire_RTS_Lock --
+    ----------------------
+ 
+    procedure Acquire_RTS_Lock (Addr : Address) is
+       Lock : aliased SOL.RTS_Lock;
+       for Lock'Address use Addr;
+       pragma Import (Ada, Lock);
+ 
+    begin
+       Write_Lock (Lock'Unchecked_Access);
+    end Acquire_RTS_Lock;
+ 
+    ----------------------
+    -- Release_RTS_Lock --
+    ----------------------
+ 
+    procedure Release_RTS_Lock (Addr : Address) is
+       Lock : aliased SOL.RTS_Lock;
+       for Lock'Address use Addr;
+       pragma Import (Ada, Lock);
+ 
+    begin
+       Unlock (Lock'Unchecked_Access);
+    end Release_RTS_Lock;
+ 
     -----------------------
     -- Do_Pending_Action --
     -----------------------
*************** package body System.Tasking.Initializati
*** 363,368 ****
--- 436,453 ----
        Undefer_Abort (Environment_Task);
     end Init_RTS;
  
+    --------------------------------
+    -- Tasking_Runtime_Initialize --
+    --------------------------------
+ 
+    procedure Tasking_Runtime_Initialize is
+    begin
+       SSL.Initialize_RTS_Lock := Initialize_RTS_Lock'Access;
+       SSL.Finalize_RTS_Lock   := Finalize_RTS_Lock'Access;
+       SSL.Acquire_RTS_Lock    := Acquire_RTS_Lock'Access;
+       SSL.Release_RTS_Lock    := Release_RTS_Lock'Access;
+    end Tasking_Runtime_Initialize;
+ 
     ---------------------------
     -- Locked_Abort_To_Level--
     ---------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasini.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasini.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasini.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasini.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taskin.adb gcc-15.1.0/gcc/ada/libgnarl/s-taskin.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-taskin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taskin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking is
*** 89,100 ****
        Elaborated       : Access_Boolean;
        Base_Priority    : System.Any_Priority;
        Base_CPU         : System.Multiprocessors.CPU_Range;
        Domain           : Dispatching_Domain_Access;
        Task_Info        : System.Task_Info.Task_Info_Type;
        Stack_Size       : System.Parameters.Size_Type;
        T                : Task_Id;
!       Success          : out Boolean)
!    is
     begin
        T.Common.State := Unactivated;
  
--- 89,100 ----
        Elaborated       : Access_Boolean;
        Base_Priority    : System.Any_Priority;
        Base_CPU         : System.Multiprocessors.CPU_Range;
+       CPU_Is_Explicit  : Boolean;
        Domain           : Dispatching_Domain_Access;
        Task_Info        : System.Task_Info.Task_Info_Type;
        Stack_Size       : System.Parameters.Size_Type;
        T                : Task_Id;
!       Success          : out Boolean) is
     begin
        T.Common.State := Unactivated;
  
*************** package body System.Tasking is
*** 110,118 ****
        --  would be illegal, because Common_ATCB is limited because
        --  Task_Primitives.Private_Data is limited.
  
!       T.Common.Parent                   := Parent;
!       T.Common.Base_Priority            := Base_Priority;
!       T.Common.Base_CPU                 := Base_CPU;
  
        --  The Domain defaults to that of the activator. But that can be null in
        --  the case of foreign threads (see Register_Foreign_Thread), in which
--- 110,119 ----
        --  would be illegal, because Common_ATCB is limited because
        --  Task_Primitives.Private_Data is limited.
  
!       T.Common.Parent := Parent;
!       T.Common.Base_Priority := Base_Priority;
!       T.Common.CPU_Is_Explicit := CPU_Is_Explicit;
!       T.Common.Base_CPU := Base_CPU;
  
        --  The Domain defaults to that of the activator. But that can be null in
        --  the case of foreign threads (see Register_Foreign_Thread), in which
*************** package body System.Tasking is
*** 235,240 ****
--- 236,242 ----
           Elaborated       => null,
           Base_Priority    => Base_Priority,
           Base_CPU         => Base_CPU,
+          CPU_Is_Explicit  => Main_CPU /= Unspecified_CPU,
           Domain           => System_Domain,
           Task_Info        => Task_Info.Unspecified_Task_Info,
           Stack_Size       => 0,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taskin.ads gcc-15.1.0/gcc/ada/libgnarl/s-taskin.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taskin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taskin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Tasking is
*** 70,78 ****
     --         Unlock (Y);
  
     --  Locks with lower (smaller) level number cannot be locked
!    --  while holding a lock with a higher level number. (The level
  
!    --  1. System.Tasking.PO_Simple.Protection.L (any PO lock)
     --  2. System.Tasking.Initialization.Global_Task_Lock (in body)
     --  3. System.Task_Primitives.Operations.Single_RTS_Lock
     --  4. System.Tasking.Ada_Task_Control_Block.LL.L (any TCB lock)
--- 70,78 ----
     --         Unlock (Y);
  
     --  Locks with lower (smaller) level number cannot be locked
!    --  while holding a lock with a higher level number.
  
!    --  1. System.Tasking.Protected_Objects.Protection.L (any PO lock)
     --  2. System.Tasking.Initialization.Global_Task_Lock (in body)
     --  3. System.Task_Primitives.Operations.Single_RTS_Lock
     --  4. System.Tasking.Ada_Task_Control_Block.LL.L (any TCB lock)
*************** package System.Tasking is
*** 518,523 ****
--- 518,534 ----
        --
        --  Protection: Only written by Self, accessed by anyone
  
+       CPU_Is_Explicit : Boolean;
+       --  True if the task is either assigned to a CPU or explicitly not
+       --  assigned to a CPU through Not_A_Specific_CPU being used with the CPU
+       --  Aspect a subprogram in System.Multiprocessors.Dispatching_Domains.
+       --  False otherwise.
+       --  We keep track of this information to make it possible to accomodate
+       --  native affinity inheritance on some platforms when no RM D.16
+       --  features are used. An example of such a platform is Linux, where we
+       --  strive to make the taskset command line tool have the expected effect
+       --  when the program does not use RM D.16 features.
+ 
        Base_CPU : System.Multiprocessors.CPU_Range;
        --  Base CPU, only changed via dispatching domains package.
        --
*************** package System.Tasking is
*** 1184,1201 ****
     --  System.Tasking.Initialization being present, as was done before.
  
     procedure Initialize_ATCB
!      (Self_ID              : Task_Id;
!       Task_Entry_Point     : Task_Procedure_Access;
!       Task_Arg             : System.Address;
!       Parent               : Task_Id;
!       Elaborated           : Access_Boolean;
!       Base_Priority        : System.Any_Priority;
!       Base_CPU             : System.Multiprocessors.CPU_Range;
!       Domain               : Dispatching_Domain_Access;
!       Task_Info            : System.Task_Info.Task_Info_Type;
!       Stack_Size           : System.Parameters.Size_Type;
!       T                    : Task_Id;
!       Success              : out Boolean);
     --  Initialize fields of the TCB for task T, and link into global TCB
     --  structures. Call this only with abort deferred and holding RTS_Lock.
     --  Self_ID is the calling task (normally the activator of T). Success is
--- 1195,1213 ----
     --  System.Tasking.Initialization being present, as was done before.
  
     procedure Initialize_ATCB
!      (Self_ID          : Task_Id;
!       Task_Entry_Point : Task_Procedure_Access;
!       Task_Arg         : System.Address;
!       Parent           : Task_Id;
!       Elaborated       : Access_Boolean;
!       Base_Priority    : System.Any_Priority;
!       Base_CPU         : System.Multiprocessors.CPU_Range;
!       CPU_Is_Explicit  : Boolean;
!       Domain           : Dispatching_Domain_Access;
!       Task_Info        : System.Task_Info.Task_Info_Type;
!       Stack_Size       : System.Parameters.Size_Type;
!       T                : Task_Id;
!       Success          : out Boolean);
     --  Initialize fields of the TCB for task T, and link into global TCB
     --  structures. Call this only with abort deferred and holding RTS_Lock.
     --  Self_ID is the calling task (normally the activator of T). Success is
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,43 ****
  
  --  This is a no tasking version of this package
  
  package System.Task_Primitives is
     pragma Preelaborate;
  
     type Lock is new Integer;
  
-    type RTS_Lock is new Integer;
- 
     type Suspension_Object is new Integer;
  
     type Task_Body_Access is access procedure;
--- 31,43 ----
  
  --  This is a no tasking version of this package
  
+ with System.OS_Locks;
+ 
  package System.Task_Primitives is
     pragma Preelaborate;
  
     type Lock is new Integer;
  
     type Suspension_Object is new Integer;
  
     type Task_Body_Access is access procedure;
*************** package System.Task_Primitives is
*** 45,51 ****
     type Private_Data is limited record
        Thread : aliased Integer;
        CV     : aliased Integer;
!       L      : aliased RTS_Lock;
     end record;
  
     subtype Task_Address is System.Address;
--- 45,51 ----
     type Private_Data is limited record
        Thread : aliased Integer;
        CV     : aliased Integer;
!       L      : aliased System.OS_Locks.RTS_Lock;
     end record;
  
     subtype Task_Address is System.Address;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,111 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
- --                                                                          --
- --                 S Y S T E M . T A S K _ P R I M I T I V E S              --
- --                                                                          --
- --                                  S p e c                                 --
- --                                                                          --
- --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNARL is free software; you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNARL was developed by the GNARL team at Florida State University.       --
- -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is a HP-UX version of this package
- 
- --  This package provides low-level support for most tasking features
- 
- with System.OS_Interface;
- 
- package System.Task_Primitives is
-    pragma Preelaborate;
- 
-    type Lock is limited private;
-    --  Should be used for implementation of protected objects
- 
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the later one serves only as a semaphore so
-    --  that do not check for ceiling violations.
- 
-    type Suspension_Object is limited private;
-    --  Should be used for the implementation of Ada.Synchronous_Task_Control
- 
-    type Task_Body_Access is access procedure;
-    --  Pointer to the task body's entry point (or possibly a wrapper
-    --  declared local to the GNARL).
- 
-    type Private_Data is limited private;
-    --  Any information that the GNULLI needs maintained on a per-task basis.
-    --  A component of this type is guaranteed to be included in the
-    --  Ada_Task_Control_Block.
- 
-    subtype Task_Address is System.Address;
-    Task_Address_Size : constant := Standard'Address_Size;
-    --  Type used for task addresses and its size
- 
-    Alternate_Stack_Size : constant := 0;
-    --  No alternate signal stack is used on this platform
- 
- private
-    type Lock is record
-       L              : aliased System.OS_Interface.pthread_mutex_t;
-       Priority       : Integer;
-       Owner_Priority : Integer;
-    end record;
- 
-    type RTS_Lock is new System.OS_Interface.pthread_mutex_t;
- 
-    type Suspension_Object is record
-       State   : Boolean;
-       pragma Atomic (State);
-       --  Boolean that indicates whether the object is open. This field is
-       --  marked Atomic to ensure that we can read its value without locking
-       --  the access to the Suspension_Object.
- 
-       Waiting : Boolean;
-       --  Flag showing if there is a task already suspended on this object
- 
-       L : aliased System.OS_Interface.pthread_mutex_t;
-       --  Protection for ensuring mutual exclusion on the Suspension_Object
- 
-       CV : aliased System.OS_Interface.pthread_cond_t;
-       --  Condition variable used to queue threads until condition is signaled
-    end record;
- 
-    type Private_Data is record
-       Thread : aliased System.OS_Interface.pthread_t;
-       --  pragma Atomic (Thread);
-       --  Unfortunately, the above fails because Thread is 64 bits.
- 
-       --  Thread field may be updated by two different threads of control.
-       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the
-       --  same value (thr_self value). We do not want to use lock on those
-       --  operations and the only thing we have to make sure is that they
-       --  are updated in atomic fashion.
- 
-       CV : aliased System.OS_Interface.pthread_cond_t;
- 
-       L : aliased RTS_Lock;
-       --  Protection for all components is lock L
-    end record;
- 
- end System.Task_Primitives;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__lynxos.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__lynxos.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 33,38 ****
--- 33,39 ----
  --  This is LynxOS Family version of this package.
  
  with System.OS_Interface;
+ with System.OS_Locks;
  
  package System.Task_Primitives is
     pragma Preelaborate;
*************** package System.Task_Primitives is
*** 40,50 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the latter serves only as a semaphore so that
-    --  we do not check for ceiling violations.
- 
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
  
--- 41,46 ----
*************** private
*** 68,78 ****
  
     type Lock is record
        RW : aliased System.OS_Interface.pthread_rwlock_t;
!       WO : aliased System.OS_Interface.pthread_mutex_t;
     end record;
  
-    type RTS_Lock is new System.OS_Interface.pthread_mutex_t;
- 
     type Suspension_Object is record
        State : Boolean;
        pragma Atomic (State);
--- 64,72 ----
  
     type Lock is record
        RW : aliased System.OS_Interface.pthread_rwlock_t;
!       WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
     type Suspension_Object is record
        State : Boolean;
        pragma Atomic (State);
*************** private
*** 83,89 ****
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Interface.pthread_mutex_t;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
--- 77,83 ----
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
*************** private
*** 92,103 ****
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       pragma Atomic (Thread);
!       --  Thread field may be updated by two different threads of control.
!       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the same
!       --  value (thr_self value). We do not want to use lock on those
!       --  operations and the only thing we have to make sure is that they are
!       --  updated in atomic fashion.
  
        LWP : aliased System.OS_Interface.pthread_t;
        --  The purpose of this field is to provide a better tasking support on
--- 86,101 ----
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       --  This component is written to once before concurrent access to it is
!       --  possible, and then remains constant. The place where it is written to
!       --  depends on how the enclosing ATCB comes into existence:
!       --
!       --  1. For the environment task, the component is set in
!       --     System.Task_Primitive.Operations.Initialize.
!       --  2. For foreign threads, it happens in
!       --     System.Task_Primitives.Operations.Register_Foreign_Thread.
!       --  3. For others tasks, it's in
!       --     System.Task_Primitives.Operations.Create_Task.
  
        LWP : aliased System.OS_Interface.pthread_t;
        --  The purpose of this field is to provide a better tasking support on
*************** private
*** 105,113 ****
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.pthread_cond_t;
!       --  Should be commented ??? (in all versions of taspri)
  
!       L : aliased RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
--- 103,111 ----
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.pthread_cond_t;
!       --  Condition variable used to queue threads until condition is signaled
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,37 ****
--- 32,38 ----
  --  This is a NT (native) version of this package
  
  with System.OS_Interface;
+ with System.OS_Locks;
  with System.Win32;
  
  package System.Task_Primitives is
*************** package System.Task_Primitives is
*** 40,50 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the later one serves only as a semaphore so
-    --  that do not check for ceiling violations.
- 
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
  
--- 41,46 ----
*************** package System.Task_Primitives is
*** 67,81 ****
  private
  
     type Lock is record
!       Mutex          : aliased System.OS_Interface.CRITICAL_SECTION;
        Priority       : Integer;
        Owner_Priority : Integer;
     end record;
  
     type Condition_Variable is new System.Win32.HANDLE;
  
-    type RTS_Lock is new System.OS_Interface.CRITICAL_SECTION;
- 
     type Suspension_Object is record
        State : Boolean;
        pragma Atomic (State);
--- 63,75 ----
  private
  
     type Lock is record
!       Mutex          : aliased System.OS_Locks.RTS_Lock;
        Priority       : Integer;
        Owner_Priority : Integer;
     end record;
  
     type Condition_Variable is new System.Win32.HANDLE;
  
     type Suspension_Object is record
        State : Boolean;
        pragma Atomic (State);
*************** private
*** 86,92 ****
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Interface.CRITICAL_SECTION;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased Win32.HANDLE;
--- 80,86 ----
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased Win32.HANDLE;
*************** private
*** 94,100 ****
     end record;
  
     type Private_Data is limited record
!       Thread : aliased Win32.HANDLE;
        pragma Atomic (Thread);
        --  Thread field may be updated by two different threads of control.
        --  (See, Enter_Task and Create_Task in s-taprop.adb).
--- 88,94 ----
     end record;
  
     type Private_Data is limited record
!       Thread : aliased System.OS_Interface.Thread_Id;
        pragma Atomic (Thread);
        --  Thread field may be updated by two different threads of control.
        --  (See, Enter_Task and Create_Task in s-taprop.adb).
*************** private
*** 108,114 ****
        CV : aliased Condition_Variable;
        --  Condition Variable used to implement Sleep/Wakeup
  
!       L : aliased RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
--- 102,108 ----
        CV : aliased Condition_Variable;
        --  Condition Variable used to implement Sleep/Wakeup
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Fri Apr 25 08:18:00 2025
***************
*** 1,13 ****
  ------------------------------------------------------------------------------
  --                                                                          --
! --                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
  --                                                                          --
! --                 S Y S T E M . T A S K _ P R I M I T I V E S              --
  --                                                                          --
! --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 1,13 ----
  ------------------------------------------------------------------------------
  --                                                                          --
! --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
  --                                                                          --
! --               S Y S T E M . T A S K _ P R I M I T I V E S                --
  --                                                                          --
! --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 36,41 ****
--- 36,42 ----
  --  Note: this file can only be used for POSIX compliant systems
  
  with System.OS_Interface;
+ with System.OS_Locks;
  
  package System.Task_Primitives is
     pragma Preelaborate;
*************** package System.Task_Primitives is
*** 43,53 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the later one serves only as a semaphore so
-    --  that do not check for ceiling violations.
- 
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
  
--- 44,49 ----
*************** package System.Task_Primitives is
*** 69,79 ****
  
  private
  
-    type RTS_Lock is new System.OS_Interface.pthread_mutex_t;
- 
     type Lock is record
-       WO : aliased RTS_Lock;
        RW : aliased System.OS_Interface.pthread_rwlock_t;
     end record;
  
     type Suspension_Object is record
--- 65,73 ----
  
  private
  
     type Lock is record
        RW : aliased System.OS_Interface.pthread_rwlock_t;
+       WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
     type Suspension_Object is record
*************** private
*** 86,92 ****
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
--- 80,86 ----
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
*************** private
*** 95,106 ****
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       pragma Atomic (Thread);
!       --  Thread field may be updated by two different threads of control.
!       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the same
!       --  value (thr_self value). We do not want to use lock on those
!       --  operations and the only thing we have to make sure is that they are
!       --  updated in atomic fashion.
  
        LWP : aliased System.Address;
        --  The purpose of this field is to provide a better tasking support on
--- 89,104 ----
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       --  This component is written to once before concurrent access to it is
!       --  possible, and then remains constant. The place where it is written to
!       --  depends on how the enclosing ATCB comes into existence:
!       --
!       --  1. For the environment task, the component is set in
!       --     System.Task_Primitive.Operations.Initialize.
!       --  2. For foreign threads, it happens in
!       --     System.Task_Primitives.Operations.Register_Foreign_Thread.
!       --  3. For others tasks, it's in
!       --     System.Task_Primitives.Operations.Create_Task.
  
        LWP : aliased System.Address;
        --  The purpose of this field is to provide a better tasking support on
*************** private
*** 110,116 ****
        CV : aliased System.OS_Interface.pthread_cond_t;
        --  Should be commented ??? (in all versions of taspri)
  
!       L : aliased RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
--- 108,114 ----
        CV : aliased System.OS_Interface.pthread_cond_t;
        --  Should be commented ??? (in all versions of taspri)
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__posix.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__posix.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__posix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__posix.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,40 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This is a POSIX-like version of this package
  
  --  Note: this file can only be used for POSIX compliant systems
  
  with System.OS_Interface;
  
  package System.Task_Primitives is
     pragma Preelaborate;
--- 30,45 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This is the POSIX compliant systems implementation
! 
! --  This package and its children provide a binding to the underlying platform.
! --  The base types are defined here while the functional implementations
! --  are in ``Task_Primitives.Operations``.
  
  --  Note: this file can only be used for POSIX compliant systems
  
  with System.OS_Interface;
+ with System.OS_Locks;
  
  package System.Task_Primitives is
     pragma Preelaborate;
*************** package System.Task_Primitives is
*** 42,52 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the latter serves only as a semaphore so that
-    --  we do not check for ceiling violations.
- 
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
  
--- 47,52 ----
*************** package System.Task_Primitives is
*** 68,78 ****
  
  private
  
-    type RTS_Lock is new System.OS_Interface.pthread_mutex_t;
- 
     type Lock is record
        RW : aliased System.OS_Interface.pthread_rwlock_t;
!       WO : aliased RTS_Lock;
     end record;
  
     type Suspension_Object is record
--- 68,76 ----
  
  private
  
     type Lock is record
        RW : aliased System.OS_Interface.pthread_rwlock_t;
!       WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
     type Suspension_Object is record
*************** private
*** 85,91 ****
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
--- 83,89 ----
        Waiting : Boolean;
        --  Flag showing if there is a task already suspended on this object
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for ensuring mutual exclusion on the Suspension_Object
  
        CV : aliased System.OS_Interface.pthread_cond_t;
*************** private
*** 94,105 ****
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       pragma Atomic (Thread);
!       --  Thread field may be updated by two different threads of control.
!       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the same
!       --  value (thr_self value). We do not want to use lock on those
!       --  operations and the only thing we have to make sure is that they are
!       --  updated in atomic fashion.
  
        LWP : aliased System.Address;
        --  The purpose of this field is to provide a better tasking support on
--- 92,107 ----
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.pthread_t;
!       --  This component is written to once before concurrent access to it is
!       --  possible, and then remains constant. The place where it is written to
!       --  depends on how the enclosing ATCB comes into existence:
!       --
!       --  1. For the environment task, the component is set in
!       --     System.Task_Primitive.Operations.Initialize.
!       --  2. For foreign threads, it happens in
!       --     System.Task_Primitives.Operations.Register_Foreign_Thread.
!       --  3. For others tasks, it's in
!       --     System.Task_Primitives.Operations.Create_Task.
  
        LWP : aliased System.Address;
        --  The purpose of this field is to provide a better tasking support on
*************** private
*** 107,115 ****
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.pthread_cond_t;
!       --  Should be commented ??? (in all versions of taspri)
  
!       L : aliased RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
--- 109,117 ----
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.pthread_cond_t;
!       --  Condition variable used to queue threads until condition is signaled
  
!       L : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 36,41 ****
--- 36,42 ----
  with Ada.Unchecked_Conversion;
  
  with System.OS_Interface;
+ with System.OS_Locks;
  
  package System.Task_Primitives is
     pragma Preelaborate;
*************** package System.Task_Primitives is
*** 44,57 ****
     type Lock_Ptr is access all Lock;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    type RTS_Lock_Ptr is access all RTS_Lock;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the later one serves only as a semaphore so
-    --  that do not check for ceiling violations.
- 
     function To_Lock_Ptr is
!      new Ada.Unchecked_Conversion (RTS_Lock_Ptr, Lock_Ptr);
  
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
--- 45,54 ----
     type Lock_Ptr is access all Lock;
     --  Should be used for implementation of protected objects
  
     function To_Lock_Ptr is
!      new Ada.Unchecked_Conversion (OS_Locks.RTS_Lock_Ptr, Lock_Ptr);
!    function To_RTS_Lock_Ptr is
!      new Ada.Unchecked_Conversion (Lock_Ptr, OS_Locks.RTS_Lock_Ptr);
  
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
*************** package System.Task_Primitives is
*** 74,104 ****
  
  private
  
!    type Private_Task_Serial_Number is mod 2 ** Long_Long_Integer'Size;
!    --  Used to give each task a unique serial number
! 
!    type Base_Lock is new System.OS_Interface.mutex_t;
! 
!    type Owner_Int is new Integer;
!    for Owner_Int'Alignment use Standard'Maximum_Alignment;
! 
!    type Owner_ID is access all Owner_Int;
! 
!    function To_Owner_ID is
!      new Ada.Unchecked_Conversion (System.Address, Owner_ID);
! 
!    type Lock is record
!       L              : aliased Base_Lock;
!       Ceiling        : System.Any_Priority := System.Any_Priority'First;
!       Saved_Priority : System.Any_Priority := System.Any_Priority'First;
!       Owner          : Owner_ID;
!       Next           : Lock_Ptr;
!       Level          : Private_Task_Serial_Number := 0;
!       Buddy          : Owner_ID;
!       Frozen         : Boolean := False;
!    end record;
! 
!    type RTS_Lock is new Lock;
  
     type Suspension_Object is record
        State : Boolean;
--- 71,77 ----
  
  private
  
!    type Lock is new OS_Locks.RTS_Lock;
  
     type Suspension_Object is record
        State : Boolean;
*************** private
*** 122,139 ****
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.thread_t;
!       pragma Atomic (Thread);
!       --  Thread field may be updated by two different threads of control.
!       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the same
!       --  value (thr_self value). We do not want to use lock on those
!       --  operations and the only thing we have to make sure is that they are
!       --  updated in atomic fashion.
  
        LWP : System.OS_Interface.lwpid_t;
        --  The LWP id of the thread. Set by self in Enter_Task
  
        CV : aliased System.OS_Interface.cond_t;
!       L  : aliased RTS_Lock;
        --  Protection for all components is lock L
  
        Active_Priority : System.Any_Priority := System.Any_Priority'First;
--- 95,118 ----
  
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.thread_t;
!       --  This component is written to once before concurrent access to it is
!       --  possible, and then remains constant. The place where it is written to
!       --  depends on how the enclosing ATCB comes into existence:
!       --
!       --  1. For the environment task, the component is set in
!       --     System.Task_Primitive.Operations.Initialize.
!       --  2. For foreign threads, it happens in
!       --     System.Task_Primitives.Operations.Register_Foreign_Thread.
!       --  3. For others tasks, it's in
!       --     System.Task_Primitives.Operations.Create_Task.
  
        LWP : System.OS_Interface.lwpid_t;
        --  The LWP id of the thread. Set by self in Enter_Task
  
        CV : aliased System.OS_Interface.cond_t;
!       --  Condition variable used to queue threads until condition is signaled
! 
!       L  : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
  
        Active_Priority : System.Any_Priority := System.Any_Priority'First;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads gcc-15.1.0/gcc/ada/libgnarl/s-taspri__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-taspri__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,37 ****
--- 32,38 ----
  --  This is a VxWorks version of this package
  
  with System.OS_Interface;
+ with System.OS_Locks;
  
  package System.Task_Primitives is
     pragma Preelaborate;
*************** package System.Task_Primitives is
*** 39,49 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    type RTS_Lock is limited private;
-    --  Should be used inside the runtime system. The difference between Lock
-    --  and the RTS_Lock is that the later one serves only as a semaphore so
-    --  that do not check for ceiling violations.
- 
     type Suspension_Object is limited private;
     --  Should be used for the implementation of Ada.Synchronous_Task_Control
  
--- 40,45 ----
*************** package System.Task_Primitives is
*** 65,81 ****
  
  private
  
!    type Priority_Type is (Prio_None, Prio_Protect, Prio_Inherit);
! 
!    type Lock is record
!       Mutex    : System.OS_Interface.SEM_ID;
!       Protocol : Priority_Type;
! 
!       Prio_Ceiling : System.OS_Interface.int;
!       --  Priority ceiling of lock
!    end record;
! 
!    type RTS_Lock is new Lock;
  
     type Suspension_Object is record
        State : Boolean;
--- 61,67 ----
  
  private
  
!    type Lock is new System.OS_Locks.RTS_Lock;
  
     type Suspension_Object is record
        State : Boolean;
*************** private
*** 109,116 ****
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.SEM_ID;
  
!       L  : aliased RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
--- 95,103 ----
        --  On targets where lwp is not relevant, this is equivalent to Thread.
  
        CV : aliased System.OS_Interface.SEM_ID;
+       --  Condition variable used to queue threads until condition is signaled
  
!       L  : aliased System.OS_Locks.RTS_Lock;
        --  Protection for all components is lock L
     end record;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasque.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasque.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasque.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasque.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasque.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasque.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasque.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasque.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasren.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasren.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasren.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasren.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Rendezvous i
*** 1317,1334 ****
  
              Self_Id.Common.State := Acceptor_Delay_Sleep;
  
-             --  Try to remove calls to Sleep in the loop below by letting the
-             --  caller a chance of getting ready immediately, using Unlock
-             --  Yield. See similar action in Wait_For_Completion/Wait_For_Call.
- 
-             Unlock (Self_Id);
- 
-             if Self_Id.Open_Accepts /= null then
-                Yield;
-             end if;
- 
-             Write_Lock (Self_Id);
- 
              --  Check if this task has been aborted while the lock was released
  
              if Self_Id.Pending_ATC_Level < Self_Id.ATC_Nesting_Level then
--- 1317,1322 ----
*************** package body System.Tasking.Rendezvous i
*** 1510,1527 ****
     begin
        Self_Id.Common.State := Acceptor_Sleep;
  
-       --  Try to remove calls to Sleep in the loop below by letting the caller
-       --  a chance of getting ready immediately, using Unlock & Yield.
-       --  See similar action in Wait_For_Completion & Timed_Selective_Wait.
- 
-       Unlock (Self_Id);
- 
-       if Self_Id.Open_Accepts /= null then
-          Yield;
-       end if;
- 
-       Write_Lock (Self_Id);
- 
        --  Check if this task has been aborted while the lock was released
  
        if Self_Id.Pending_ATC_Level < Self_Id.ATC_Nesting_Level then
--- 1498,1503 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasren.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasren.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasren.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasren.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasres.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasres.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasres.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasres.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1998-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1998-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tassta.adb gcc-15.1.0/gcc/ada/libgnarl/s-tassta.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tassta.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tassta.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Stages is
*** 584,590 ****
        end if;
  
        Initialize_ATCB (Self_ID, State, Discriminants, P, Elaborated,
!         Base_Priority, Base_CPU, Domain, Task_Info, Stack_Size, T, Success);
  
        if not Success then
           Free (T);
--- 584,591 ----
        end if;
  
        Initialize_ATCB (Self_ID, State, Discriminants, P, Elaborated,
!         Base_Priority, Base_CPU, CPU /= Unspecified_CPU, Domain, Task_Info,
!         Stack_Size, T, Success);
  
        if not Success then
           Free (T);
*************** package body System.Tasking.Stages is
*** 1079,1085 ****
        Stack_Guard (Self_ID, True);
  
        --  Initialize low-level TCB components, that cannot be initialized by
!       --  the creator. Enter_Task sets Self_ID.LL.Thread.
  
        Enter_Task (Self_ID);
  
--- 1080,1086 ----
        Stack_Guard (Self_ID, True);
  
        --  Initialize low-level TCB components, that cannot be initialized by
!       --  the creator.
  
        Enter_Task (Self_ID);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tassta.ads gcc-15.1.0/gcc/ada/libgnarl/s-tassta.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tassta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tassta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasuti.adb gcc-15.1.0/gcc/ada/libgnarl/s-tasuti.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasuti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasuti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tasuti.ads gcc-15.1.0/gcc/ada/libgnarl/s-tasuti.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tasuti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tasuti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tataat.adb gcc-15.1.0/gcc/ada/libgnarl/s-tataat.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tataat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tataat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tataat.ads gcc-15.1.0/gcc/ada/libgnarl/s-tataat.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tataat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tataat.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpinop.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpinop.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpinop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpinop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpinop.ads gcc-15.1.0/gcc/ada/libgnarl/s-tpinop.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpinop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpinop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpoaal.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpoaal.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpoaal.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpoaal.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --        Copyright (C) 2011-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --        Copyright (C) 2011-2025, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpoben.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpoben.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpoben.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpoben.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                               B o d y                                    --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                               B o d y                                    --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpoben.ads gcc-15.1.0/gcc/ada/libgnarl/s-tpoben.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpoben.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpoben.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Tasking.Protected_Objects
*** 79,86 ****
     --  The following type contains the GNARL state of a protected object.
     --  The application-defined portion of the state (i.e. private objects)
     --  is maintained by the compiler-generated code. Note that there is a
!    --  simplified version of this type declared in System.Tasking.PO_Simple
!    --  that handle the simple case (no entries).
  
     type Protection_Entries (Num_Entries : Protected_Entry_Index) is new
       Ada.Finalization.Limited_Controlled
--- 79,86 ----
     --  The following type contains the GNARL state of a protected object.
     --  The application-defined portion of the state (i.e. private objects)
     --  is maintained by the compiler-generated code. Note that there is a
!    --  simplified version declared in System.Tasking.Protected_Objects that
!    --  handles the simple case (no entries) and is not controlled.
  
     type Protection_Entries (Num_Entries : Protected_Entry_Index) is new
       Ada.Finalization.Limited_Controlled
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpobmu.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpobmu.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpobmu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpobmu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                     M U L T I P R O C E S S O R S                        --
  --                               B o d y                                    --
  --                                                                          --
! --                       Copyright (C) 2010-2024, AdaCore                   --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                               B o d y                                    --
  --                                                                          --
! --                       Copyright (C) 2010-2025, AdaCore                   --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpobmu.ads gcc-15.1.0/gcc/ada/libgnarl/s-tpobmu.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpobmu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpobmu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                     M U L T I P R O C E S S O R S                        --
  --                                S p e c                                   --
  --                                                                          --
! --                     Copyright (C) 2010-2024, AdaCore                     --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                                S p e c                                   --
  --                                                                          --
! --                     Copyright (C) 2010-2025, AdaCore                     --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package provides primitives used for protected objects on
+ --  multiprocessor systems.
+ 
  package System.Tasking.Protected_Objects.Multiprocessors is
  
     procedure Served (Entry_Call : Entry_Call_Link);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpobop.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpobop.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpobop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpobop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpobop.ads gcc-15.1.0/gcc/ada/libgnarl/s-tpobop.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpobop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpobop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopmo.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopmo.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopmo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopmo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__posix.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__tls.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__tls.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tporft.adb gcc-15.1.0/gcc/ada/libgnarl/s-tporft.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tporft.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tporft.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 66,73 ****
     System.Tasking.Initialize_ATCB
       (Self_Id, null, Null_Address, Null_Task,
        Foreign_Task_Elaborated'Access,
!       System.Priority'First, System.Multiprocessors.Not_A_Specific_CPU, null,
!       Task_Info.Unspecified_Task_Info, 0, Self_Id, Succeeded);
     Unlock_RTS;
     pragma Assert (Succeeded);
  
--- 66,73 ----
     System.Tasking.Initialize_ATCB
       (Self_Id, null, Null_Address, Null_Task,
        Foreign_Task_Elaborated'Access,
!       System.Priority'First, System.Multiprocessors.Not_A_Specific_CPU, False,
!       null, Task_Info.Unspecified_Task_Info, 0, Self_Id, Succeeded);
     Unlock_RTS;
     pragma Assert (Succeeded);
  
*************** begin
*** 98,103 ****
--- 98,104 ----
     System.Soft_Links.Create_TSD
       (Self_Id.Common.Compiler_Data, null, Sec_Stack_Size);
  
+    Self_Id.Common.LL.Thread := Thread;
     Enter_Task (Self_Id);
  
     return Self_Id;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tposen.adb gcc-15.1.0/gcc/ada/libgnarl/s-tposen.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-tposen.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tposen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1998-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-tposen.ads gcc-15.1.0/gcc/ada/libgnarl/s-tposen.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-tposen.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-tposen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext.adb gcc-15.1.0/gcc/ada/libgnarl/s-vxwext.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwext.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --  This package provides vxworks specific support functions needed
  --  by System.OS_Interface.
  
! --  This is the VxWorks 6 kernel version of this package
  
  with Interfaces.C;
  
--- 29,35 ----
  --  This package provides vxworks specific support functions needed
  --  by System.OS_Interface.
  
! --  This is the VxWorks 7 kernel version of this package
  
  with Interfaces.C;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp.adb
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwext__rtp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__arm.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__ppc.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__ppc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__x86.ads
*** gcc-14.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/s-vxwork__x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can  redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can  redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnarl/thread.c gcc-15.1.0/gcc/ada/libgnarl/thread.c
*** gcc-14.2.0/gcc/ada/libgnarl/thread.c	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnarl/thread.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2011-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2011-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-assert.adb gcc-15.1.0/gcc/ada/libgnat/a-assert.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-assert.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-assert.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-assert.ads gcc-15.1.0/gcc/ada/libgnat/a-assert.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-assert.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-assert.ads	Fri Apr 25 08:18:00 2025
***************
*** 4,10 ****
  --                                                                          --
  --                       A D A . A S S E R T I O N S                        --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
--- 4,10 ----
  --                                                                          --
  --                       A D A . A S S E R T I O N S                        --
  --                                                                          --
! --            Copyright (C) 2015-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
***************
*** 33,38 ****
--- 33,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package provides the assertion feature defined by ARM 11.4.2
+ 
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised when calling Assert.
  --  This is enforced by setting the corresponding assertion policy to Ignore.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-btgbso.adb gcc-15.1.0/gcc/ada/libgnat/a-btgbso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-btgbso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-btgbso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-btgbso.ads gcc-15.1.0/gcc/ada/libgnat/a-btgbso.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-btgbso.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-btgbso.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calari.adb gcc-15.1.0/gcc/ada/libgnat/a-calari.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-calari.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calari.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calari.ads gcc-15.1.0/gcc/ada/libgnat/a-calari.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-calari.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calari.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calcon.adb gcc-15.1.0/gcc/ada/libgnat/a-calcon.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-calcon.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calcon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --        Copyright (C) 2008-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --        Copyright (C) 2008-2025, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Calendar.Conversions is
*** 43,48 ****
--- 43,58 ----
        return Conversion_Operations.To_Ada_Time (Val);
     end To_Ada_Time;
  
+    --------------------
+    -- To_Ada_Time_64 --
+    --------------------
+ 
+    function To_Ada_Time_64 (Unix_Time : long_long) return Time is
+       Val : constant Long_Long_Integer := Long_Long_Integer (Unix_Time);
+    begin
+       return Conversion_Operations.To_Ada_Time_64 (Val);
+    end To_Ada_Time_64;
+ 
     -----------------
     -- To_Ada_Time --
     -----------------
*************** package body Ada.Calendar.Conversions is
*** 83,88 ****
--- 93,112 ----
        return Conversion_Operations.To_Duration (Secs, Nano_Secs);
     end To_Duration;
  
+    --------------------
+    -- To_Duration_64 --
+    --------------------
+ 
+    function To_Duration_64
+      (tv_sec  : long_long;
+       tv_nsec : long) return Duration
+    is
+       Secs      : constant Long_Long_Integer := Long_Long_Integer (tv_sec);
+       Nano_Secs : constant Long_Integer := Long_Integer (tv_nsec);
+    begin
+       return Conversion_Operations.To_Duration_64 (Secs, Nano_Secs);
+    end To_Duration_64;
+ 
     ------------------------
     -- To_Struct_Timespec --
     ------------------------
*************** package body Ada.Calendar.Conversions is
*** 102,107 ****
--- 126,150 ----
        tv_nsec := long (Nano_Secs);
     end To_Struct_Timespec;
  
+    ---------------------------
+    -- To_Struct_Timespec_64 --
+    ---------------------------
+ 
+    procedure To_Struct_Timespec_64
+      (D       : Duration;
+       tv_sec  : out long_long;
+       tv_nsec : out long)
+    is
+       Secs      : Long_Long_Integer;
+       Nano_Secs : Long_Integer;
+ 
+    begin
+       Conversion_Operations.To_Struct_Timespec_64 (D, Secs, Nano_Secs);
+ 
+       tv_sec  := long_long (Secs);
+       tv_nsec := long (Nano_Secs);
+    end To_Struct_Timespec_64;
+ 
     ------------------
     -- To_Struct_Tm --
     ------------------
*************** package body Ada.Calendar.Conversions is
*** 145,150 ****
--- 188,204 ----
        return long (Val);
     end To_Unix_Time;
  
+    ---------------------
+    -- To_Unix_Time_64 --
+    ---------------------
+ 
+    function To_Unix_Time_64 (Ada_Time : Time) return long_long is
+       Val : constant Long_Long_Integer :=
+               Conversion_Operations.To_Unix_Time_64 (Ada_Time);
+    begin
+       return long_long (Val);
+    end To_Unix_Time_64;
+ 
     -----------------------
     -- To_Unix_Nano_Time --
     -----------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calcon.ads gcc-15.1.0/gcc/ada/libgnat/a-calcon.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-calcon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calcon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Interfaces.C;
*** 37,42 ****
--- 37,47 ----
  package Ada.Calendar.Conversions is
  
     function To_Ada_Time (Unix_Time : Interfaces.C.long) return Time;
+    pragma Obsolescent
+      (To_Ada_Time, "This function may be removed in a future version");
+    --  Old version which will overflow at the 2038 Epochalypse
+ 
+    function To_Ada_Time_64 (Unix_Time : Interfaces.C.long_long) return Time;
     --  Convert a time value represented as number of seconds since the
     --  Unix Epoch to a time value relative to an Ada implementation-defined
     --  Epoch. The units of the result are nanoseconds on all targets. Raises
*************** package Ada.Calendar.Conversions is
*** 70,75 ****
--- 75,88 ----
     function To_Duration
       (tv_sec  : Interfaces.C.long;
        tv_nsec : Interfaces.C.long) return Duration;
+    pragma
+      Obsolescent
+        (To_Duration, "This function may be removed in a future version");
+    --  Old version which will overflow at the 2038 Epochalypse
+ 
+    function To_Duration_64
+      (tv_sec  : Interfaces.C.long_long;
+       tv_nsec : Interfaces.C.long) return Duration;
     --  Convert an elapsed time value expressed in Unix-like fields of struct
     --  timespec into a Duration value. The expected ranges are:
  
*************** package Ada.Calendar.Conversions is
*** 80,85 ****
--- 93,108 ----
       (D       : Duration;
        tv_sec  : out Interfaces.C.long;
        tv_nsec : out Interfaces.C.long);
+    pragma
+      Obsolescent
+        (To_Struct_Timespec,
+         "This function may be removed in a future version");
+    --  Old version which will overflow at the 2038 Epochalypse
+ 
+    procedure To_Struct_Timespec_64
+      (D       : Duration;
+       tv_sec  : out Interfaces.C.long_long;
+       tv_nsec : out Interfaces.C.long);
     --  Convert a Duration value into the constituents of struct timespec.
     --  Formal tv_sec denotes seconds and tv_nsecs denotes nanoseconds.
  
*************** package Ada.Calendar.Conversions is
*** 105,110 ****
--- 128,139 ----
     --  The input date is considered to be in UTC
  
     function To_Unix_Time (Ada_Time : Time) return Interfaces.C.long;
+    pragma
+      Obsolescent
+        (To_Unix_Time, "This function may be removed in a future version");
+    --  Old version which will overflow at the 2038 Epochalypse
+ 
+    function To_Unix_Time_64 (Ada_Time : Time) return Interfaces.C.long_long;
     --  Convert a time value represented as number of time units since the Ada
     --  implementation-defined Epoch to a value relative to the Unix Epoch. The
     --  units of the result are seconds. Raises Time_Error if the result cannot
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-caldel.adb gcc-15.1.0/gcc/ada/libgnat/a-caldel.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-caldel.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-caldel.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-caldel.ads gcc-15.1.0/gcc/ada/libgnat/a-caldel.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-caldel.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-caldel.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calend.adb gcc-15.1.0/gcc/ada/libgnat/a-calend.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-calend.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calend.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 110,115 ****
--- 110,126 ----
       new Ada.Unchecked_Conversion (Duration, Time_Rep);
     --  Convert a duration value into a time representation value
  
+    function Elapsed_Leaps (Start_Time, End_Time : Time_Rep) return Natural
+       with Pre => (End_Time >= Start_Time);
+    --  If the target supports leap seconds, determine the number of leap
+    --  seconds elapsed between start_time and end_time.
+    --
+    --  NB! This function assumes that End_Time is not smaller than
+    --  Start_Time. There are usages of the function that correct the time
+    --  by passed leap seconds and use the results for another seach.
+    --  If negative leap seconds are introduced eventually, then such
+    --  calls should be revised as the correction can go to either direction.
+ 
     function Time_Rep_To_Duration is
       new Ada.Unchecked_Conversion (Time_Rep, Duration);
     --  Convert a time representation value into a duration value
*************** is
*** 355,367 ****
        end if;
     end Check_Within_Time_Bounds;
  
     -----------
     -- Clock --
     -----------
  
     function Clock return Time is
-       Elapsed_Leaps : Natural;
-       Next_Leap_N   : Time_Rep;
  
        --  The system clock returns the time in UTC since the Unix Epoch of
        --  1970-01-01 00:00:00.0. We perform an origin shift to the Ada Epoch
--- 366,399 ----
        end if;
     end Check_Within_Time_Bounds;
  
+    -------------------
+    -- Elapsed_Leaps --
+    -------------------
+ 
+    function Elapsed_Leaps (Start_Time, End_Time : Time_Rep) return Natural
+    is
+       Elapsed       : Natural := 0;
+       Next_Leap_N   : Time_Rep;
+    begin
+       if Leap_Support then
+          Cumulative_Leap_Seconds
+            (Start_Time, End_Time, Elapsed, Next_Leap_N);
+ 
+          --  The system clock may fall exactly on a leap second
+ 
+          if End_Time >= Next_Leap_N then
+             Elapsed := Elapsed + 1;
+          end if;
+       end if;
+ 
+       return Elapsed;
+    end Elapsed_Leaps;
+ 
     -----------
     -- Clock --
     -----------
  
     function Clock return Time is
  
        --  The system clock returns the time in UTC since the Unix Epoch of
        --  1970-01-01 00:00:00.0. We perform an origin shift to the Ada Epoch
*************** is
*** 371,396 ****
          Duration_To_Time_Rep (System.OS_Primitives.Clock) + Unix_Min;
  
     begin
!       --  If the target supports leap seconds, determine the number of leap
!       --  seconds elapsed until this moment.
! 
!       if Leap_Support then
!          Cumulative_Leap_Seconds
!            (Start_Of_Time, Res_N, Elapsed_Leaps, Next_Leap_N);
! 
!          --  The system clock may fall exactly on a leap second
! 
!          if Res_N >= Next_Leap_N then
!             Elapsed_Leaps := Elapsed_Leaps + 1;
!          end if;
! 
!       --  The target does not support leap seconds
! 
!       else
!          Elapsed_Leaps := 0;
!       end if;
! 
!       Res_N := Res_N + Time_Rep (Elapsed_Leaps) * Nano;
  
        return Time (Res_N);
     end Clock;
--- 403,409 ----
          Duration_To_Time_Rep (System.OS_Primitives.Clock) + Unix_Min;
  
     begin
!       Res_N := Res_N + Time_Rep (Elapsed_Leaps (Start_Of_Time, Res_N)) * Nano;
  
        return Time (Res_N);
     end Clock;
*************** is
*** 806,815 ****
        is
           Res_Dur       : Time_Dur;
           Earlier       : Time_Rep;
-          Elapsed_Leaps : Natural;
           Later         : Time_Rep;
           Negate        : Boolean := False;
-          Next_Leap_N   : Time_Rep;
           Sub_Secs      : Duration;
           Sub_Secs_Diff : Time_Rep;
  
--- 819,826 ----
*************** is
*** 825,846 ****
              Negate  := True;
           end if;
  
-          --  If the target supports leap seconds, process them
- 
-          if Leap_Support then
-             Cumulative_Leap_Seconds
-               (Earlier, Later, Elapsed_Leaps, Next_Leap_N);
- 
-             if Later >= Next_Leap_N then
-                Elapsed_Leaps := Elapsed_Leaps + 1;
-             end if;
- 
-          --  The target does not support leap seconds
- 
-          else
-             Elapsed_Leaps := 0;
-          end if;
- 
           --  Sub seconds processing. We add the resulting difference to one
           --  of the input dates in order to account for any potential rounding
           --  of the difference in the next step.
--- 836,841 ----
*************** is
*** 856,867 ****
           --  either add or drop a second. We compensate for this issue in the
           --  previous step.
  
           Res_Dur :=
!            Time_Dur (Later / Nano - Earlier / Nano) - Time_Dur (Elapsed_Leaps);
  
           Days         := Long_Integer (Res_Dur / Secs_In_Day);
           Seconds      := Duration (Res_Dur mod Secs_In_Day) + Sub_Secs;
-          Leap_Seconds := Integer (Elapsed_Leaps);
  
           if Negate then
              Days    := -Days;
--- 851,864 ----
           --  either add or drop a second. We compensate for this issue in the
           --  previous step.
  
+          Leap_Seconds := Elapsed_Leaps (Earlier, Later);
+ 
           Res_Dur :=
!            Time_Dur (Later / Nano - Earlier / Nano) -
!            Time_Dur (Leap_Seconds);
  
           Days         := Long_Integer (Res_Dur / Secs_In_Day);
           Seconds      := Duration (Res_Dur mod Secs_In_Day) + Sub_Secs;
  
           if Negate then
              Days    := -Days;
*************** is
*** 900,913 ****
        -----------------
  
        function To_Ada_Time (Unix_Time : Long_Integer) return Time is
           pragma Unsuppress (Overflow_Check);
!          Unix_Rep : constant Time_Rep := Time_Rep (Unix_Time) * Nano;
        begin
!          return Time (Unix_Rep - Epoch_Offset);
        exception
           when Constraint_Error =>
              raise Time_Error;
!       end To_Ada_Time;
  
        -----------------
        -- To_Ada_Time --
--- 897,943 ----
        -----------------
  
        function To_Ada_Time (Unix_Time : Long_Integer) return Time is
+       begin
+          return To_Ada_Time_64 (Long_Long_Integer (Unix_Time));
+       end To_Ada_Time;
+ 
+       --------------------
+       -- To_Ada_Time_64 --
+       --------------------
+ 
+       function To_Ada_Time_64 (Unix_Time : Long_Long_Integer) return Time is
           pragma Unsuppress (Overflow_Check);
!          Ada_Rep : Time_Rep := Time_Rep (Unix_Time * Nano) - Epoch_Offset;
! 
!          --  Count leaps passed until the converted time.
! 
!          Leaps : constant Natural :=
!             Elapsed_Leaps (Start_Of_Time, Ada_Rep);
        begin
! 
!          --  If leap seconds were found then update the result accordingly
! 
!          if Leaps /= 0 then
!             declare
!                --  adjust the time by the number of leap seconds
!                Corrected_Ada_Rep : constant Time_Rep :=
!                   Ada_Rep + Time_Rep ((Leaps) * Nano);
! 
!                --  Check if the corrected time passed the boundary
!                --  of another leap second
!                Extra_Leaps : constant Natural :=
!                   Elapsed_Leaps (Ada_Rep, Corrected_Ada_Rep);
!             begin
!                Ada_Rep := Corrected_Ada_Rep + Time_Rep (Extra_Leaps * Nano);
!             end;
!          end if;
! 
!          return Time (Ada_Rep);
! 
        exception
           when Constraint_Error =>
              raise Time_Error;
!       end To_Ada_Time_64;
  
        -----------------
        -- To_Ada_Time --
*************** is
*** 998,1007 ****
          (tv_sec  : Long_Integer;
           tv_nsec : Long_Integer) return Duration
        is
           pragma Unsuppress (Overflow_Check);
        begin
           return Duration (tv_sec) + Duration (tv_nsec) / Nano_F;
!       end To_Duration;
  
        ------------------------
        -- To_Struct_Timespec --
--- 1028,1049 ----
          (tv_sec  : Long_Integer;
           tv_nsec : Long_Integer) return Duration
        is
+       begin
+          return To_Duration_64 (Long_Long_Integer (tv_sec), tv_nsec);
+       end To_Duration;
+ 
+       --------------------
+       -- To_Duration_64 --
+       --------------------
+ 
+       function To_Duration_64
+         (tv_sec  : Long_Long_Integer;
+          tv_nsec : Long_Integer) return Duration
+       is
           pragma Unsuppress (Overflow_Check);
        begin
           return Duration (tv_sec) + Duration (tv_nsec) / Nano_F;
!       end To_Duration_64;
  
        ------------------------
        -- To_Struct_Timespec --
*************** is
*** 1012,1017 ****
--- 1054,1072 ----
           tv_sec  : out Long_Integer;
           tv_nsec : out Long_Integer)
        is
+       begin
+          To_Struct_Timespec_64 (D, Long_Long_Integer (tv_sec), tv_nsec);
+       end To_Struct_Timespec;
+ 
+       ---------------------------
+       -- To_Struct_Timespec_64 --
+       ---------------------------
+ 
+       procedure To_Struct_Timespec_64
+         (D       : Duration;
+          tv_sec  : out Long_Long_Integer;
+          tv_nsec : out Long_Integer)
+       is
           pragma Unsuppress (Overflow_Check);
           Secs      : Duration;
           Nano_Secs : Duration;
*************** is
*** 1020,1032 ****
           --  Seconds extraction, avoid potential rounding errors
  
           Secs   := D - 0.5;
!          tv_sec := Long_Integer (Secs);
  
           --  Nanoseconds extraction
  
           Nano_Secs := D - Duration (tv_sec);
           tv_nsec := Long_Integer (Nano_Secs * Nano);
!       end To_Struct_Timespec;
  
        ------------------
        -- To_Struct_Tm --
--- 1075,1087 ----
           --  Seconds extraction, avoid potential rounding errors
  
           Secs   := D - 0.5;
!          tv_sec := Long_Long_Integer (Secs);
  
           --  Nanoseconds extraction
  
           Nano_Secs := D - Duration (tv_sec);
           tv_nsec := Long_Integer (Nano_Secs * Nano);
!       end To_Struct_Timespec_64;
  
        ------------------
        -- To_Struct_Tm --
*************** is
*** 1082,1095 ****
        ------------------
  
        function To_Unix_Time (Ada_Time : Time) return Long_Integer is
           pragma Unsuppress (Overflow_Check);
           Ada_Rep : constant Time_Rep := Time_Rep (Ada_Time);
        begin
!          return Long_Integer ((Ada_Rep + Epoch_Offset) / Nano);
        exception
           when Constraint_Error =>
              raise Time_Error;
!       end To_Unix_Time;
     end Conversion_Operations;
  
     ----------------------
--- 1137,1160 ----
        ------------------
  
        function To_Unix_Time (Ada_Time : Time) return Long_Integer is
+       begin
+          return Long_Integer (To_Unix_Time_64 (Ada_Time));
+       end To_Unix_Time;
+ 
+       ---------------------
+       -- To_Unix_Time_64 --
+       ---------------------
+ 
+       function To_Unix_Time_64 (Ada_Time : Time) return Long_Long_Integer is
           pragma Unsuppress (Overflow_Check);
           Ada_Rep : constant Time_Rep := Time_Rep (Ada_Time);
        begin
!          return Long_Long_Integer ((Ada_Rep + Epoch_Offset) / Nano) -
!             Long_Long_Integer (Elapsed_Leaps (Start_Of_Time, Ada_Rep));
        exception
           when Constraint_Error =>
              raise Time_Error;
!       end To_Unix_Time_64;
     end Conversion_Operations;
  
     ----------------------
*************** is
*** 1112,1120 ****
           --  failure. To prevent this, the function returns the "safe" end of
           --  time (roughly 2219) which is still distant enough.
  
!          Elapsed_Leaps : Natural;
!          Next_Leap_N   : Time_Rep;
!          Res_N         : Time_Rep;
  
        begin
           Res_N := Time_Rep (Date);
--- 1177,1183 ----
           --  failure. To prevent this, the function returns the "safe" end of
           --  time (roughly 2219) which is still distant enough.
  
!          Res_N : Time_Rep;
  
        begin
           Res_N := Time_Rep (Date);
*************** is
*** 1122,1144 ****
           --  Step 1: If the target supports leap seconds, remove any leap
           --  seconds elapsed up to the input date.
  
!          if Leap_Support then
!             Cumulative_Leap_Seconds
!               (Start_Of_Time, Res_N, Elapsed_Leaps, Next_Leap_N);
! 
!             --  The input time value may fall on a leap second occurrence
! 
!             if Res_N >= Next_Leap_N then
!                Elapsed_Leaps := Elapsed_Leaps + 1;
!             end if;
! 
!          --  The target does not support leap seconds
! 
!          else
!             Elapsed_Leaps := 0;
!          end if;
! 
!          Res_N := Res_N - Time_Rep (Elapsed_Leaps) * Nano;
  
           --  Step 2: Perform a shift in origins to obtain a Unix equivalent of
           --  the input. Guard against very large delay values such as the end
--- 1185,1192 ----
           --  Step 1: If the target supports leap seconds, remove any leap
           --  seconds elapsed up to the input date.
  
!          Res_N := Res_N -
!             Time_Rep (Elapsed_Leaps (Start_Of_Time, Res_N)) * Nano;
  
           --  Step 2: Perform a shift in origins to obtain a Unix equivalent of
           --  the input. Guard against very large delay values such as the end
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calend.ads gcc-15.1.0/gcc/ada/libgnat/a-calend.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-calend.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calend.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 291,296 ****
--- 291,301 ----
     package Conversion_Operations is
  
        function To_Ada_Time (Unix_Time : Long_Integer) return Time;
+       pragma Obsolescent
+         (To_Ada_Time, "This function may be removed in a future version");
+       --  Old Unix to Ada Epoch conversion
+ 
+       function To_Ada_Time_64 (Unix_Time : Long_Long_Integer) return Time;
        --  Unix to Ada Epoch conversion
  
        function To_Ada_Time
*************** private
*** 306,317 ****
--- 311,339 ----
        function To_Duration
          (tv_sec  : Long_Integer;
           tv_nsec : Long_Integer) return Duration;
+       pragma Obsolescent
+         (To_Duration, "This function may be removed in a future version");
+       --  Old Struct timespec to Duration conversion
+ 
+       function To_Duration_64
+         (tv_sec  : Long_Long_Integer;
+          tv_nsec : Long_Integer) return Duration;
        --  Struct timespec to Duration conversion
  
        procedure To_Struct_Timespec
          (D       : Duration;
           tv_sec  : out Long_Integer;
           tv_nsec : out Long_Integer);
+       pragma
+         Obsolescent
+           (To_Struct_Timespec,
+            "This function may be removed in a future version");
+       --  Old Duration to struct timespec conversion
+ 
+       procedure To_Struct_Timespec_64
+         (D       : Duration;
+          tv_sec  : out Long_Long_Integer;
+          tv_nsec : out Long_Integer);
        --  Duration to struct timespec conversion
  
        procedure To_Struct_Tm
*************** private
*** 325,330 ****
--- 347,357 ----
        --  Time to struct tm conversion
  
        function To_Unix_Time (Ada_Time : Time) return Long_Integer;
+       pragma Obsolescent
+         (To_Unix_Time, "This function may be removed in a future version");
+       --  Old Ada to Unix Epoch conversion
+ 
+       function To_Unix_Time_64 (Ada_Time : Time) return Long_Long_Integer;
        --  Ada to Unix Epoch conversion
  
     end Conversion_Operations;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calfor.adb gcc-15.1.0/gcc/ada/libgnat/a-calfor.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-calfor.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calfor.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-calfor.ads gcc-15.1.0/gcc/ada/libgnat/a-calfor.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-calfor.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-calfor.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-catizo.adb gcc-15.1.0/gcc/ada/libgnat/a-catizo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-catizo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-catizo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbdlli.adb gcc-15.1.0/gcc/ada/libgnat/a-cbdlli.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbdlli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbdlli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbdlli.ads gcc-15.1.0/gcc/ada/libgnat/a-cbdlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbdlli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbdlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbhama.adb gcc-15.1.0/gcc/ada/libgnat/a-cbhama.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbhama.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbhama.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbhama.ads gcc-15.1.0/gcc/ada/libgnat/a-cbhama.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbhama.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbhama.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbhase.adb gcc-15.1.0/gcc/ada/libgnat/a-cbhase.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbhase.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbhase.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbhase.ads gcc-15.1.0/gcc/ada/libgnat/a-cbhase.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbhase.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbhase.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbmutr.adb gcc-15.1.0/gcc/ada/libgnat/a-cbmutr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbmutr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbmutr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2011-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2011-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbmutr.ads gcc-15.1.0/gcc/ada/libgnat/a-cbmutr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbmutr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbmutr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cborma.adb gcc-15.1.0/gcc/ada/libgnat/a-cborma.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cborma.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cborma.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cborma.ads gcc-15.1.0/gcc/ada/libgnat/a-cborma.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cborma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cborma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cborse.adb gcc-15.1.0/gcc/ada/libgnat/a-cborse.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cborse.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cborse.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Containers.Red_Black_Trees.Gene
*** 40,45 ****
--- 40,47 ----
  pragma Elaborate_All
    (Ada.Containers.Red_Black_Trees.Generic_Bounded_Set_Operations);
  
+ with Ada.Unchecked_Deallocation;
+ 
  with System; use type System.Address;
  with System.Put_Images;
  
*************** is
*** 775,780 ****
--- 777,794 ----
             Is_Less_Key_Node    => Is_Less_Key_Node,
             Is_Greater_Key_Node => Is_Greater_Key_Node);
  
+       ------------
+       -- Adjust --
+       ------------
+ 
+       procedure Adjust (Control : in out Reference_Control_Type) is
+       begin
+          Impl.Reference_Control_Type (Control).Adjust;
+          if Control.Old_Key /= null then
+             Control.Old_Key := new Key_Type'(Control.Old_Key.all);
+          end if;
+       end Adjust;
+ 
        -------------
        -- Ceiling --
        -------------
*************** is
*** 872,877 ****
--- 886,893 ----
        --------------
  
        procedure Finalize (Control : in out Reference_Control_Type) is
+          procedure Deallocate is
+            new Ada.Unchecked_Deallocation (Key_Type, Key_Access);
        begin
           if Control.Container /= null then
              Impl.Reference_Control_Type (Control).Finalize;
*************** is
*** 883,888 ****
--- 899,905 ----
              end if;
  
              Control.Container := null;
+             Deallocate (Control.Old_Key);
           end if;
        end Finalize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cborse.ads gcc-15.1.0/gcc/ada/libgnat/a-cborse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cborse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cborse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 324,329 ****
--- 324,332 ----
           Old_Key   : Key_Access;
        end record;
  
+       overriding procedure Adjust (Control : in out Reference_Control_Type);
+       pragma Inline (Adjust);
+ 
        overriding procedure Finalize (Control : in out Reference_Control_Type);
        pragma Inline (Finalize);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbprqu.adb gcc-15.1.0/gcc/ada/libgnat/a-cbprqu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbprqu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbprqu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbprqu.ads gcc-15.1.0/gcc/ada/libgnat/a-cbprqu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbprqu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbprqu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbsyqu.adb gcc-15.1.0/gcc/ada/libgnat/a-cbsyqu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cbsyqu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbsyqu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cbsyqu.ads gcc-15.1.0/gcc/ada/libgnat/a-cbsyqu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cbsyqu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cbsyqu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cdlili.adb gcc-15.1.0/gcc/ada/libgnat/a-cdlili.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cdlili.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cdlili.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cdlili.ads gcc-15.1.0/gcc/ada/libgnat/a-cdlili.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cdlili.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cdlili.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfdlli.ads gcc-15.1.0/gcc/ada/libgnat/a-cfdlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfdlli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfdlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfhama.ads gcc-15.1.0/gcc/ada/libgnat/a-cfhama.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfhama.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfhama.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfhase.ads gcc-15.1.0/gcc/ada/libgnat/a-cfhase.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfhase.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfhase.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfidll.ads gcc-15.1.0/gcc/ada/libgnat/a-cfidll.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfidll.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfidll.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfinse.ads gcc-15.1.0/gcc/ada/libgnat/a-cfinse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfinse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfinse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cfinve.ads gcc-15.1.0/gcc/ada/libgnat/a-cfinve.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cfinve.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cfinve.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cforma.ads gcc-15.1.0/gcc/ada/libgnat/a-cforma.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cforma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cforma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cforse.ads gcc-15.1.0/gcc/ada/libgnat/a-cforse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cforse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cforse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cgaaso.adb gcc-15.1.0/gcc/ada/libgnat/a-cgaaso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cgaaso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cgaaso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cgaaso.ads gcc-15.1.0/gcc/ada/libgnat/a-cgaaso.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cgaaso.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cgaaso.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cgarso.adb gcc-15.1.0/gcc/ada/libgnat/a-cgarso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cgarso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cgarso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cgcaso.adb gcc-15.1.0/gcc/ada/libgnat/a-cgcaso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cgcaso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cgcaso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chacon.adb gcc-15.1.0/gcc/ada/libgnat/a-chacon.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chacon.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chacon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chacon.ads gcc-15.1.0/gcc/ada/libgnat/a-chacon.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chacon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chacon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chahan.adb gcc-15.1.0/gcc/ada/libgnat/a-chahan.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chahan.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chahan.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chahan.ads gcc-15.1.0/gcc/ada/libgnat/a-chahan.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chahan.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chahan.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chlat9.ads gcc-15.1.0/gcc/ada/libgnat/a-chlat9.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chlat9.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chlat9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgbk.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgbk.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgbk.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgbk.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgbk.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgbk.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgbk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgbk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgbo.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgbo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgbo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgbo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgbo.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgbo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgbo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgbo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgfk.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgfk.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgfk.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgfk.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,278 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT LIBRARY COMPONENTS                          --
- --                                                                          --
- --               ADA.CONTAINERS.HASH_TABLES.GENERIC_FORMAL_KEYS             --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- This unit was originally developed by Matthew J Heaney.                  --
- ------------------------------------------------------------------------------
- 
- package body Ada.Containers.Hash_Tables.Generic_Formal_Keys is
- 
-    Checks : constant Boolean := Container_Checks'Enabled;
- 
-    --------------------------
-    -- Delete_Key_Sans_Free --
-    --------------------------
- 
-    procedure Delete_Key_Sans_Free
-      (HT  : in out Hash_Table_Type;
-       Key : Key_Type;
-       X   : out Count_Type)
-    is
-       Indx : Hash_Type;
-       Prev : Count_Type;
- 
-    begin
-       if HT.Length = 0 then
-          X := 0;
-          return;
-       end if;
- 
-       Indx := Index (HT, Key);
-       X := HT.Buckets (Indx);
- 
-       if X = 0 then
-          return;
-       end if;
- 
-       if Equivalent_Keys (Key, HT.Nodes (X)) then
-          HT.Buckets (Indx) := Next (HT.Nodes (X));
-          HT.Length := HT.Length - 1;
-          return;
-       end if;
- 
-       loop
-          Prev := X;
-          X := Next (HT.Nodes (Prev));
- 
-          if X = 0 then
-             return;
-          end if;
- 
-          if Equivalent_Keys (Key, HT.Nodes (X)) then
-             Set_Next (HT.Nodes (Prev), Next => Next (HT.Nodes (X)));
-             HT.Length := HT.Length - 1;
-             return;
-          end if;
-       end loop;
-    end Delete_Key_Sans_Free;
- 
-    ----------
-    -- Find --
-    ----------
- 
-    function Find
-      (HT  : Hash_Table_Type;
-       Key : Key_Type) return Count_Type
-    is
-       Indx : Hash_Type;
-       Node : Count_Type;
- 
-    begin
-       if HT.Length = 0 then
-          return 0;
-       end if;
- 
-       Indx := Index (HT, Key);
- 
-       Node := HT.Buckets (Indx);
-       while Node /= 0 loop
-          if Equivalent_Keys (Key, HT.Nodes (Node)) then
-             return Node;
-          end if;
-          Node := Next (HT.Nodes (Node));
-       end loop;
- 
-       return 0;
-    end Find;
- 
-    --------------------------------
-    -- Generic_Conditional_Insert --
-    --------------------------------
- 
-    procedure Generic_Conditional_Insert
-      (HT       : in out Hash_Table_Type;
-       Key      : Key_Type;
-       Node     : out Count_Type;
-       Inserted : out Boolean)
-    is
-       Indx : Hash_Type;
- 
-    begin
-       Indx := Index (HT, Key);
-       Node := HT.Buckets (Indx);
- 
-       if Node = 0 then
-          if Checks and then HT.Length = HT.Capacity then
-             raise Capacity_Error with "no more capacity for insertion";
-          end if;
- 
-          New_Node (HT, Node);
-          Set_Next (HT.Nodes (Node), Next => 0);
- 
-          Inserted := True;
- 
-          HT.Buckets (Indx) := Node;
-          HT.Length := HT.Length + 1;
- 
-          return;
-       end if;
- 
-       loop
-          if Equivalent_Keys (Key, HT.Nodes (Node)) then
-             Inserted := False;
-             return;
-          end if;
- 
-          Node := Next (HT.Nodes (Node));
- 
-          exit when Node = 0;
-       end loop;
- 
-       if Checks and then HT.Length = HT.Capacity then
-          raise Capacity_Error with "no more capacity for insertion";
-       end if;
- 
-       New_Node (HT, Node);
-       Set_Next (HT.Nodes (Node), Next => HT.Buckets (Indx));
- 
-       Inserted := True;
- 
-       HT.Buckets (Indx) := Node;
-       HT.Length := HT.Length + 1;
-    end Generic_Conditional_Insert;
- 
-    -----------------------------
-    -- Generic_Replace_Element --
-    -----------------------------
- 
-    procedure Generic_Replace_Element
-      (HT   : in out Hash_Table_Type;
-       Node : Count_Type;
-       Key  : Key_Type)
-    is
-       pragma Assert (HT.Length > 0);
-       pragma Assert (Node /= 0);
- 
-       BB : Buckets_Type renames HT.Buckets;
-       NN : Nodes_Type renames HT.Nodes;
- 
-       Old_Indx : Hash_Type;
-       New_Indx : constant Hash_Type := Index (HT, Key);
- 
-       New_Bucket : Count_Type renames BB (New_Indx);
-       N, M       : Count_Type;
- 
-    begin
-       Old_Indx := HT.Buckets'First + Hash (NN (Node)) mod HT.Buckets'Length;
- 
-       --  Replace_Element is allowed to change a node's key to Key
-       --  (generic formal operation Assign provides the mechanism), but
-       --  only if Key is not already in the hash table. (In a unique-key
-       --  hash table as this one, a key is mapped to exactly one node.)
- 
-       if Equivalent_Keys (Key, NN (Node)) then
-          --  The new Key value is mapped to this same Node, so Node
-          --  stays in the same bucket.
- 
-          Assign (NN (Node), Key);
-          return;
-       end if;
- 
-       --  Key is not equivalent to Node, so we now have to determine if it's
-       --  equivalent to some other node in the hash table. This is the case
-       --  irrespective of whether Key is in the same or a different bucket from
-       --  Node.
- 
-       N := New_Bucket;
-       while N /= 0 loop
-          if Checks and then Equivalent_Keys (Key, NN (N)) then
-             pragma Assert (N /= Node);
-             raise Program_Error with
-               "attempt to replace existing element";
-          end if;
- 
-          N := Next (NN (N));
-       end loop;
- 
-       --  We have determined that Key is not already in the hash table, so
-       --  the change is allowed.
- 
-       if Old_Indx = New_Indx then
-          --  The node is already in the bucket implied by Key. In this case
-          --  we merely change its value without moving it.
- 
-          Assign (NN (Node), Key);
-          return;
-       end if;
- 
-       --  The node is in a bucket different from the bucket implied by Key.
-       --  Do the assignment first, before moving the node, so that if Assign
-       --  propagates an exception, then the hash table will not have been
-       --  modified (except for any possible side-effect Assign had on Node).
- 
-       Assign (NN (Node), Key);
- 
-       --  Now we can safely remove the node from its current bucket
- 
-       N := BB (Old_Indx);  -- get value of first node in old bucket
-       pragma Assert (N /= 0);
- 
-       if N = Node then  -- node is first node in its bucket
-          BB (Old_Indx) := Next (NN (Node));
- 
-       else
-          pragma Assert (HT.Length > 1);
- 
-          loop
-             M := Next (NN (N));
-             pragma Assert (M /= 0);
- 
-             if M = Node then
-                Set_Next (NN (N), Next => Next (NN (Node)));
-                exit;
-             end if;
- 
-             N := M;
-          end loop;
-       end if;
- 
-       --  Now we link the node into its new bucket (corresponding to Key)
- 
-       Set_Next (NN (Node), Next => New_Bucket);
-       New_Bucket := Node;
-    end Generic_Replace_Element;
- 
-    -----------
-    -- Index --
-    -----------
- 
-    function Index
-      (HT  : Hash_Table_Type;
-       Key : Key_Type) return Hash_Type is
-    begin
-       return HT.Buckets'First + Hash (Key) mod HT.Buckets'Length;
-    end Index;
- 
- end Ada.Containers.Hash_Tables.Generic_Formal_Keys;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgfk.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgfk.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgfk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgfk.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,101 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT LIBRARY COMPONENTS                          --
- --                                                                          --
- --               ADA.CONTAINERS.HASH_TABLES.GENERIC_FORMAL_KEYS             --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- This unit was originally developed by Matthew J Heaney.                  --
- ------------------------------------------------------------------------------
- 
- --  Hash_Table_Type is used to implement hashed containers. This package
- --  declares hash-table operations that depend on keys.
- 
- generic
-    with package HT_Types is
-      new Generic_Formal_Hash_Table_Types (<>);
- 
-    use HT_Types;
- 
-    with function Next (Node : Node_Type) return Count_Type;
- 
-    with procedure Set_Next
-      (Node : in out Node_Type;
-       Next : Count_Type);
- 
-    type Key_Type (<>) is limited private;
- 
-    with function Hash (Key : Key_Type) return Hash_Type;
- 
-    with function Equivalent_Keys
-      (Key  : Key_Type;
-       Node : Node_Type) return Boolean;
- 
- package Ada.Containers.Hash_Tables.Generic_Formal_Keys is
-    pragma Pure;
- 
-    function Index
-      (HT  : Hash_Table_Type;
-       Key : Key_Type) return Hash_Type;
-    pragma Inline (Index);
-    --  Returns the bucket number (array index value) for the given key
- 
-    procedure Delete_Key_Sans_Free
-      (HT  : in out Hash_Table_Type;
-       Key : Key_Type;
-       X   : out Count_Type);
-    --  Removes the node (if any) with the given key from the hash table
- 
-    function Find
-      (HT  : Hash_Table_Type;
-       Key : Key_Type) return Count_Type;
-    --  Returns the node (if any) corresponding to the given key
- 
-    generic
-       with procedure New_Node
-         (HT   : in out Hash_Table_Type;
-          Node : out Count_Type);
-    procedure Generic_Conditional_Insert
-      (HT       : in out Hash_Table_Type;
-       Key      : Key_Type;
-       Node     : out Count_Type;
-       Inserted : out Boolean);
-    --  Attempts to insert a new node with the given key into the hash table.
-    --  If a node with that key already exists in the table, then that node
-    --  is returned and Inserted returns False. Otherwise New_Node is called
-    --  to allocate a new node, and Inserted returns True.
- 
-    generic
-       with function Hash (Node : Node_Type) return Hash_Type;
-       with procedure Assign (Node : in out Node_Type; Key : Key_Type);
-    procedure Generic_Replace_Element
-      (HT   : in out Hash_Table_Type;
-       Node : Count_Type;
-       Key  : Key_Type);
-    --  Assigns Key to Node, possibly changing its equivalence class. Procedure
-    --  Assign is called to assign Key to Node. If Node is not in the same
-    --  bucket as Key before the assignment, it is moved from its current bucket
-    --  to the bucket implied by Key. Note that it is never proper to assign to
-    --  Node a key value already in the hash table, and so if Key is equivalent
-    --  to some other node then Program_Error is raised.
- 
- end Ada.Containers.Hash_Tables.Generic_Formal_Keys;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgfo.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgfo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgfo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgfo.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,481 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT LIBRARY COMPONENTS                          --
- --                                                                          --
- --            ADA.CONTAINERS.HASH_TABLES.GENERIC_FORMAL_OPERATIONS          --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- This unit was originally developed by Matthew J Heaney.                  --
- ------------------------------------------------------------------------------
- 
- with System; use type System.Address;
- 
- package body Ada.Containers.Hash_Tables.Generic_Formal_Operations is
- 
-    Checks : constant Boolean := Container_Checks'Enabled;
- 
-    -----------
-    -- Clear --
-    -----------
- 
-    procedure Clear (HT : in out Hash_Table_Type) is
-    begin
-       HT.Length := 0;
-       HT.Free := -1;
-       HT.Buckets := [others => 0];  -- optimize this somehow ???
-    end Clear;
- 
-    ---------------------------
-    -- Delete_Node_Sans_Free --
-    ---------------------------
- 
-    procedure Delete_Node_Sans_Free
-      (HT : in out Hash_Table_Type;
-       X  : Count_Type)
-    is
-       pragma Assert (X /= 0);
- 
-       Indx : Hash_Type;
-       Prev : Count_Type;
-       Curr : Count_Type;
- 
-    begin
-       if Checks and then HT.Length = 0 then
-          raise Program_Error with
-            "attempt to delete node from empty hashed container";
-       end if;
- 
-       Indx := Index (HT, HT.Nodes (X));
-       Prev := HT.Buckets (Indx);
- 
-       if Checks and then Prev = 0 then
-          raise Program_Error with
-            "attempt to delete node from empty hash bucket";
-       end if;
- 
-       if Prev = X then
-          HT.Buckets (Indx) := Next (HT.Nodes (Prev));
-          HT.Length := HT.Length - 1;
-          return;
-       end if;
- 
-       if Checks and then HT.Length = 1 then
-          raise Program_Error with
-            "attempt to delete node not in its proper hash bucket";
-       end if;
- 
-       loop
-          Curr := Next (HT.Nodes (Prev));
- 
-          if Checks and then Curr = 0 then
-             raise Program_Error with
-               "attempt to delete node not in its proper hash bucket";
-          end if;
- 
-          if Curr = X then
-             Set_Next (HT.Nodes (Prev), Next => Next (HT.Nodes (Curr)));
-             HT.Length := HT.Length - 1;
-             return;
-          end if;
- 
-          Prev := Curr;
-       end loop;
-    end Delete_Node_Sans_Free;
- 
-    -----------
-    -- First --
-    -----------
- 
-    function First (HT : Hash_Table_Type) return Count_Type is
-       Indx : Hash_Type;
- 
-    begin
-       if HT.Length = 0 then
-          return 0;
-       end if;
- 
-       Indx := HT.Buckets'First;
-       loop
-          if HT.Buckets (Indx) /= 0 then
-             return HT.Buckets (Indx);
-          end if;
- 
-          Indx := Indx + 1;
-       end loop;
-    end First;
- 
-    ----------
-    -- Free --
-    ----------
- 
-    procedure Free
-      (HT : in out Hash_Table_Type;
-       X  : Count_Type)
-    is
-       N : Nodes_Type renames HT.Nodes;
- 
-    begin
-       --  This subprogram "deallocates" a node by relinking the node off of the
-       --  active list and onto the free list. Previously it would flag index
-       --  value 0 as an error. The precondition was weakened, so that index
-       --  value 0 is now allowed, and this value is interpreted to mean "do
-       --  nothing". This makes its behavior analogous to the behavior of
-       --  Ada.Unchecked_Deallocation, and allows callers to avoid having to add
-       --  special-case checks at the point of call.
- 
-       if X = 0 then
-          return;
-       end if;
- 
-       pragma Assert (X <= HT.Capacity);
- 
-       --  pragma Assert (N (X).Prev >= 0);  -- node is active
-       --  Find a way to mark a node as active vs. inactive; we could
-       --  use a special value in Color_Type for this.  ???
- 
-       --  The hash table actually contains two data structures: a list for
-       --  the "active" nodes that contain elements that have been inserted
-       --  onto the container, and another for the "inactive" nodes of the free
-       --  store.
-       --
-       --  We desire that merely declaring an object should have only minimal
-       --  cost; specially, we want to avoid having to initialize the free
-       --  store (to fill in the links), especially if the capacity is large.
-       --
-       --  The head of the free list is indicated by Container.Free. If its
-       --  value is non-negative, then the free store has been initialized
-       --  in the "normal" way: Container.Free points to the head of the list
-       --  of free (inactive) nodes, and the value 0 means the free list is
-       --  empty. Each node on the free list has been initialized to point
-       --  to the next free node (via its Next component), and the value 0
-       --  means that this is the last free node.
-       --
-       --  If Container.Free is negative, then the links on the free store
-       --  have not been initialized. In this case the link values are
-       --  implied: the free store comprises the components of the node array
-       --  started with the absolute value of Container.Free, and continuing
-       --  until the end of the array (Nodes'Last).
-       --
-       --  ???
-       --  It might be possible to perform an optimization here. Suppose that
-       --  the free store can be represented as having two parts: one
-       --  comprising the non-contiguous inactive nodes linked together
-       --  in the normal way, and the other comprising the contiguous
-       --  inactive nodes (that are not linked together, at the end of the
-       --  nodes array). This would allow us to never have to initialize
-       --  the free store, except in a lazy way as nodes become inactive.
- 
-       --  When an element is deleted from the list container, its node
-       --  becomes inactive, and so we set its Next component to value of
-       --  the node's index (in the nodes array), to indicate that it is
-       --  now inactive. This provides a useful way to detect a dangling
-       --  cursor reference.  ???
- 
-       Set_Next (N (X), Next => X);  -- Node is deallocated (not on active list)
- 
-       if HT.Free >= 0 then
-          --  The free store has previously been initialized. All we need to
-          --  do here is link the newly-free'd node onto the free list.
- 
-          Set_Next (N (X), HT.Free);
-          HT.Free := X;
- 
-       elsif X + 1 = abs HT.Free then
-          --  The free store has not been initialized, and the node becoming
-          --  inactive immediately precedes the start of the free store. All
-          --  we need to do is move the start of the free store back by one.
- 
-          HT.Free := HT.Free + 1;
- 
-       else
-          --  The free store has not been initialized, and the node becoming
-          --  inactive does not immediately precede the free store. Here we
-          --  first initialize the free store (meaning the links are given
-          --  values in the traditional way), and then link the newly-free'd
-          --  node onto the head of the free store.
- 
-          --  ???
-          --  See the comments above for an optimization opportunity. If
-          --  the next link for a node on the free store is negative, then
-          --  this means the remaining nodes on the free store are
-          --  physically contiguous, starting as the absolute value of
-          --  that index value.
- 
-          HT.Free := abs HT.Free;
- 
-          if HT.Free > HT.Capacity then
-             HT.Free := 0;
- 
-          else
-             for I in HT.Free .. HT.Capacity - 1 loop
-                Set_Next (Node => N (I), Next => I + 1);
-             end loop;
- 
-             Set_Next (Node => N (HT.Capacity), Next => 0);
-          end if;
- 
-          Set_Next (Node => N (X), Next => HT.Free);
-          HT.Free := X;
-       end if;
-    end Free;
- 
-    ----------------------
-    -- Generic_Allocate --
-    ----------------------
- 
-    procedure Generic_Allocate
-      (HT   : in out Hash_Table_Type;
-       Node : out Count_Type)
-    is
-       N : Nodes_Type renames HT.Nodes;
- 
-    begin
-       if HT.Free >= 0 then
-          Node := HT.Free;
- 
-          --  We always perform the assignment first, before we
-          --  change container state, in order to defend against
-          --  exceptions duration assignment.
- 
-          Set_Element (N (Node));
-          HT.Free := Next (N (Node));
- 
-       else
-          --  A negative free store value means that the links of the nodes
-          --  in the free store have not been initialized. In this case, the
-          --  nodes are physically contiguous in the array, starting at the
-          --  index that is the absolute value of the Container.Free, and
-          --  continuing until the end of the array (Nodes'Last).
- 
-          Node := abs HT.Free;
- 
-          --  As above, we perform this assignment first, before modifying
-          --  any container state.
- 
-          Set_Element (N (Node));
-          HT.Free := HT.Free - 1;
-       end if;
-    end Generic_Allocate;
- 
-    -------------------
-    -- Generic_Equal --
-    -------------------
- 
-    function Generic_Equal
-      (L, R : Hash_Table_Type) return Boolean
-    is
-       L_Index : Hash_Type;
-       L_Node  : Count_Type;
- 
-       N : Count_Type;
- 
-    begin
-       if L.Length /= R.Length then
-          return False;
-       end if;
- 
-       if L.Length = 0 then
-          return True;
-       end if;
- 
-       --  Find the first node of hash table L
- 
-       L_Index := L.Buckets'First;
-       loop
-          L_Node := L.Buckets (L_Index);
-          exit when L_Node /= 0;
-          L_Index := L_Index + 1;
-       end loop;
- 
-       --  For each node of hash table L, search for an equivalent node in hash
-       --  table R.
- 
-       N := L.Length;
-       loop
-          if not Find (HT => R, Key => L.Nodes (L_Node)) then
-             return False;
-          end if;
- 
-          N := N - 1;
- 
-          L_Node := Next (L.Nodes (L_Node));
- 
-          if L_Node = 0 then
- 
-             --  We have exhausted the nodes in this bucket
- 
-             if N = 0 then
-                return True;
-             end if;
- 
-             --  Find the next bucket
- 
-             loop
-                L_Index := L_Index + 1;
-                L_Node := L.Buckets (L_Index);
-                exit when L_Node /= 0;
-             end loop;
-          end if;
-       end loop;
-    end Generic_Equal;
- 
-    -----------------------
-    -- Generic_Iteration --
-    -----------------------
- 
-    procedure Generic_Iteration (HT : Hash_Table_Type) is
-       Node : Count_Type;
- 
-    begin
-       if HT.Length = 0 then
-          return;
-       end if;
- 
-       for Indx in HT.Buckets'Range loop
-          Node := HT.Buckets (Indx);
-          while Node /= 0 loop
-             Process (Node);
-             Node := Next (HT.Nodes (Node));
-          end loop;
-       end loop;
-    end Generic_Iteration;
- 
-    ------------------
-    -- Generic_Read --
-    ------------------
- 
-    procedure Generic_Read
-      (Stream : not null access Root_Stream_Type'Class;
-       HT     : out Hash_Table_Type)
-    is
-       N : Count_Type'Base;
- 
-    begin
-       Clear (HT);
- 
-       Count_Type'Base'Read (Stream, N);
- 
-       if Checks and then N < 0 then
-          raise Program_Error with "stream appears to be corrupt";
-       end if;
- 
-       if N = 0 then
-          return;
-       end if;
- 
-       if Checks and then N > HT.Capacity then
-          raise Capacity_Error with "too many elements in stream";
-       end if;
- 
-       for J in 1 .. N loop
-          declare
-             Node : constant Count_Type := New_Node (Stream);
-             Indx : constant Hash_Type := Index (HT, HT.Nodes (Node));
-             B    : Count_Type renames HT.Buckets (Indx);
-          begin
-             Set_Next (HT.Nodes (Node), Next => B);
-             B := Node;
-          end;
- 
-          HT.Length := HT.Length + 1;
-       end loop;
-    end Generic_Read;
- 
-    -------------------
-    -- Generic_Write --
-    -------------------
- 
-    procedure Generic_Write
-      (Stream : not null access Root_Stream_Type'Class;
-       HT     : Hash_Table_Type)
-    is
-       procedure Write (Node : Count_Type);
-       pragma Inline (Write);
- 
-       procedure Write is new Generic_Iteration (Write);
- 
-       -----------
-       -- Write --
-       -----------
- 
-       procedure Write (Node : Count_Type) is
-       begin
-          Write (Stream, HT.Nodes (Node));
-       end Write;
- 
-    begin
-       Count_Type'Base'Write (Stream, HT.Length);
-       Write (HT);
-    end Generic_Write;
- 
-    -----------
-    -- Index --
-    -----------
- 
-    function Index
-      (Buckets : Buckets_Type;
-       Node    : Node_Type) return Hash_Type is
-    begin
-       return Buckets'First + Hash_Node (Node) mod Buckets'Length;
-    end Index;
- 
-    function Index
-      (HT   : Hash_Table_Type;
-       Node : Node_Type) return Hash_Type is
-    begin
-       return Index (HT.Buckets, Node);
-    end Index;
- 
-    ----------
-    -- Next --
-    ----------
- 
-    function Next
-      (HT   : Hash_Table_Type;
-       Node : Count_Type) return Count_Type
-    is
-       Result : Count_Type;
-       First  : Hash_Type;
- 
-    begin
-       Result := Next (HT.Nodes (Node));
- 
-       if Result /= 0 then  -- another node in same bucket
-          return Result;
-       end if;
- 
-       --  This was the last node in the bucket, so move to the next
-       --  bucket, and start searching for next node from there.
- 
-       First := Index (HT, HT.Nodes (Node)) + 1;
-       for Indx in First .. HT.Buckets'Last loop
-          Result := HT.Buckets (Indx);
- 
-          if Result /= 0 then  -- bucket is not empty
-             return Result;
-          end if;
-       end loop;
- 
-       return 0;
-    end Next;
- 
- end Ada.Containers.Hash_Tables.Generic_Formal_Operations;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgfo.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgfo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgfo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgfo.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,138 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT LIBRARY COMPONENTS                          --
- --                                                                          --
- --            ADA.CONTAINERS.HASH_TABLES.GENERIC_FORMAL_OPERATIONS          --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- This unit was originally developed by Matthew J Heaney.                  --
- ------------------------------------------------------------------------------
- 
- --  Hash_Table_Type is used to implement hashed containers. This package
- --  declares hash-table operations that do not depend on keys.
- 
- with Ada.Streams;
- 
- generic
-    with package HT_Types is
-      new Generic_Formal_Hash_Table_Types (<>);
- 
-    use HT_Types;
- 
-    with function Hash_Node (Node : Node_Type) return Hash_Type;
- 
-    with function Next (Node : Node_Type) return Count_Type;
- 
-    with procedure Set_Next
-      (Node : in out Node_Type;
-       Next : Count_Type);
- 
- package Ada.Containers.Hash_Tables.Generic_Formal_Operations is
-    pragma Pure;
- 
-    function Index
-      (Buckets : Buckets_Type;
-       Node    : Node_Type) return Hash_Type;
-    pragma Inline (Index);
-    --  Uses the hash value of Node to compute its Buckets array index
- 
-    function Index
-      (HT   : Hash_Table_Type;
-       Node : Node_Type) return Hash_Type;
-    pragma Inline (Index);
-    --  Uses the hash value of Node to compute its Hash_Table buckets array
-    --  index.
- 
-    generic
-       with function Find
-         (HT  : Hash_Table_Type;
-          Key : Node_Type) return Boolean;
-    function Generic_Equal (L, R : Hash_Table_Type) return Boolean;
-    --  Used to implement hashed container equality. For each node in hash table
-    --  L, it calls Find to search for an equivalent item in hash table R. If
-    --  Find returns False for any node then Generic_Equal terminates
-    --  immediately and returns False. Otherwise if Find returns True for every
-    --  node then Generic_Equal returns True.
- 
-    procedure Clear (HT : in out Hash_Table_Type);
-    --  Empties the hash table HT
- 
-    procedure Delete_Node_Sans_Free
-      (HT : in out Hash_Table_Type;
-       X  : Count_Type);
-    --  Removes node X from the hash table without deallocating the node
- 
-    generic
-       with procedure Set_Element (Node : in out Node_Type);
-    procedure Generic_Allocate
-      (HT   : in out Hash_Table_Type;
-       Node : out Count_Type);
-    --  Claim a node from the free store. Generic_Allocate first
-    --  calls Set_Element on the potential node, and then returns
-    --  the node's index as the value of the Node parameter.
- 
-    procedure Free
-      (HT : in out Hash_Table_Type;
-       X  : Count_Type);
-    --  Return a node back to the free store, from where it had
-    --  been previously claimed via Generic_Allocate.
- 
-    function First (HT : Hash_Table_Type) return Count_Type;
-    --  Returns the head of the list in the first (lowest-index) non-empty
-    --  bucket.
- 
-    function Next
-      (HT   : Hash_Table_Type;
-       Node : Count_Type) return Count_Type;
-    --  Returns the node that immediately follows Node. This corresponds to
-    --  either the next node in the same bucket, or (if Node is the last node in
-    --  its bucket) the head of the list in the first non-empty bucket that
-    --  follows.
- 
-    generic
-       with procedure Process (Node : Count_Type);
-    procedure Generic_Iteration (HT : Hash_Table_Type);
-    --  Calls Process for each node in hash table HT
- 
-    generic
-       use Ada.Streams;
-       with procedure Write
-         (Stream : not null access Root_Stream_Type'Class;
-          Node   : Node_Type);
-    procedure Generic_Write
-      (Stream : not null access Root_Stream_Type'Class;
-       HT     : Hash_Table_Type);
-    --  Used to implement the streaming attribute for hashed containers. It
-    --  calls Write for each node to write its value into Stream.
- 
-    generic
-       use Ada.Streams;
-       with function New_Node (Stream : not null access Root_Stream_Type'Class)
-          return Count_Type;
-    procedure Generic_Read
-      (Stream : not null access Root_Stream_Type'Class;
-       HT     : out Hash_Table_Type);
-    --  Used to implement the streaming attribute for hashed containers. It
-    --  first clears hash table HT, then populates the hash table by calling
-    --  New_Node for each item in Stream.
- 
- end Ada.Containers.Hash_Tables.Generic_Formal_Operations;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgke.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgke.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgke.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgke.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgke.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgke.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgke.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgke.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgop.adb gcc-15.1.0/gcc/ada/libgnat/a-chtgop.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chtgop.ads gcc-15.1.0/gcc/ada/libgnat/a-chtgop.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chtgop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chtgop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chzla1.ads gcc-15.1.0/gcc/ada/libgnat/a-chzla1.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chzla1.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chzla1.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-chzla9.ads gcc-15.1.0/gcc/ada/libgnat/a-chzla9.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-chzla9.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-chzla9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cidlli.adb gcc-15.1.0/gcc/ada/libgnat/a-cidlli.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cidlli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cidlli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cidlli.ads gcc-15.1.0/gcc/ada/libgnat/a-cidlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cidlli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cidlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cihama.adb gcc-15.1.0/gcc/ada/libgnat/a-cihama.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cihama.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cihama.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cihama.ads gcc-15.1.0/gcc/ada/libgnat/a-cihama.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cihama.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cihama.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cihase.adb gcc-15.1.0/gcc/ada/libgnat/a-cihase.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cihase.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cihase.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cihase.ads gcc-15.1.0/gcc/ada/libgnat/a-cihase.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cihase.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cihase.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cimutr.adb gcc-15.1.0/gcc/ada/libgnat/a-cimutr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cimutr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cimutr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cimutr.ads gcc-15.1.0/gcc/ada/libgnat/a-cimutr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cimutr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cimutr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciorma.adb gcc-15.1.0/gcc/ada/libgnat/a-ciorma.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ciorma.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciorma.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciorma.ads gcc-15.1.0/gcc/ada/libgnat/a-ciorma.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ciorma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciorma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciormu.adb gcc-15.1.0/gcc/ada/libgnat/a-ciormu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ciormu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciormu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciormu.ads gcc-15.1.0/gcc/ada/libgnat/a-ciormu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ciormu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciormu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciorse.adb gcc-15.1.0/gcc/ada/libgnat/a-ciorse.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ciorse.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciorse.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 807,812 ****
--- 807,824 ----
             Is_Less_Key_Node    => Is_Less_Key_Node,
             Is_Greater_Key_Node => Is_Greater_Key_Node);
  
+       ------------
+       -- Adjust --
+       ------------
+ 
+       procedure Adjust (Control : in out Reference_Control_Type) is
+       begin
+          Impl.Reference_Control_Type (Control).Adjust;
+          if Control.Old_Key /= null then
+             Control.Old_Key := new Key_Type'(Control.Old_Key.all);
+          end if;
+       end Adjust;
+ 
        -------------
        -- Ceiling --
        -------------
*************** is
*** 906,911 ****
--- 918,925 ----
        --------------
  
        procedure Finalize (Control : in out Reference_Control_Type) is
+          procedure Deallocate is
+            new Ada.Unchecked_Deallocation (Key_Type, Key_Access);
        begin
           if Control.Container /= null then
              Impl.Reference_Control_Type (Control).Finalize;
*************** is
*** 917,923 ****
              end if;
  
              Control.Container := null;
!             Control.Old_Key   := null;
           end if;
        end Finalize;
  
--- 931,937 ----
              end if;
  
              Control.Container := null;
!             Deallocate (Control.Old_Key);
           end if;
        end Finalize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ciorse.ads gcc-15.1.0/gcc/ada/libgnat/a-ciorse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ciorse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ciorse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 338,343 ****
--- 338,346 ----
           Old_Key   : Key_Access;
        end record;
  
+       overriding procedure Adjust (Control : in out Reference_Control_Type);
+       pragma Inline (Adjust);
+ 
        overriding procedure Finalize (Control : in out Reference_Control_Type);
        pragma Inline (Finalize);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-clrefi.adb gcc-15.1.0/gcc/ada/libgnat/a-clrefi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-clrefi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-clrefi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-clrefi.ads gcc-15.1.0/gcc/ada/libgnat/a-clrefi.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-clrefi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-clrefi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coboho.adb gcc-15.1.0/gcc/ada/libgnat/a-coboho.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coboho.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coboho.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2015-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coboho.ads gcc-15.1.0/gcc/ada/libgnat/a-coboho.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coboho.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coboho.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cobove.adb gcc-15.1.0/gcc/ada/libgnat/a-cobove.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cobove.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cobove.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cobove.ads gcc-15.1.0/gcc/ada/libgnat/a-cobove.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cobove.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cobove.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cofove.ads gcc-15.1.0/gcc/ada/libgnat/a-cofove.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cofove.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cofove.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cofuma.ads gcc-15.1.0/gcc/ada/libgnat/a-cofuma.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cofuma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cofuma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cofuse.ads gcc-15.1.0/gcc/ada/libgnat/a-cofuse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cofuse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cofuse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cofuve.ads gcc-15.1.0/gcc/ada/libgnat/a-cofuve.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cofuve.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cofuve.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cogeso.adb gcc-15.1.0/gcc/ada/libgnat/a-cogeso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cogeso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cogeso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cogeso.ads gcc-15.1.0/gcc/ada/libgnat/a-cogeso.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cogeso.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cogeso.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cohama.adb gcc-15.1.0/gcc/ada/libgnat/a-cohama.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cohama.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cohama.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cohama.ads gcc-15.1.0/gcc/ada/libgnat/a-cohama.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cohama.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cohama.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cohase.adb gcc-15.1.0/gcc/ada/libgnat/a-cohase.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cohase.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cohase.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cohase.ads gcc-15.1.0/gcc/ada/libgnat/a-cohase.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cohase.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cohase.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cohata.ads gcc-15.1.0/gcc/ada/libgnat/a-cohata.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cohata.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cohata.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Ada.Containers.Hash_Tables is
*** 79,101 ****
        package Implementation is new Helpers.Generic_Implementation;
     end Generic_Bounded_Hash_Table_Types;
  
-    generic
-       type Node_Type is private;
-    package Generic_Formal_Hash_Table_Types is
- 
-       type Nodes_Type is array (Count_Type range <>) of Node_Type;
-       type Buckets_Type is array (Hash_Type range <>) of Count_Type;
- 
-       type Hash_Table_Type
-         (Capacity : Count_Type;
-          Modulus  : Hash_Type) is
-       record
-          Length  : Count_Type                  := 0;
-          Free    : Count_Type'Base             := -1;
-          Nodes   : Nodes_Type (1 .. Capacity);
-          Buckets : Buckets_Type (1 .. Modulus) := [others => 0];
-       end record;
- 
-    end Generic_Formal_Hash_Table_Types;
- 
  end Ada.Containers.Hash_Tables;
--- 79,82 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinho.adb gcc-15.1.0/gcc/ada/libgnat/a-coinho.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coinho.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinho.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinho.ads gcc-15.1.0/gcc/ada/libgnat/a-coinho.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coinho.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinho.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinho__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-coinho__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coinho__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinho__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinho__shared.ads gcc-15.1.0/gcc/ada/libgnat/a-coinho__shared.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coinho__shared.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinho__shared.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 109,115 ****
  
     type Holder_Access is access all Holder;
  
!    type Shared_Holder is record
        Counter : System.Atomic_Counters.Atomic_Counter;
        Element : Element_Access;
     end record;
--- 109,115 ----
  
     type Holder_Access is access all Holder;
  
!    type Shared_Holder is limited record
        Counter : System.Atomic_Counters.Atomic_Counter;
        Element : Element_Access;
     end record;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinve.adb gcc-15.1.0/gcc/ada/libgnat/a-coinve.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coinve.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinve.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 1023,1030 ****
              while Source.Last >= Index_Type'First loop
                 pragma Assert
                   (Source.Last <= Index_Type'First
!                    or else not (Is_Less (SA (Source.Last),
!                                          SA (Source.Last - 1))));
  
                 if I < Index_Type'First then
                    declare
--- 1023,1030 ----
              while Source.Last >= Index_Type'First loop
                 pragma Assert
                   (Source.Last <= Index_Type'First
!                    or else not Is_Less (SA (Source.Last),
!                                         SA (Source.Last - 1)));
  
                 if I < Index_Type'First then
                    declare
*************** is
*** 1041,1047 ****
  
                 pragma Assert
                   (I <= Index_Type'First
!                     or else not (Is_Less (TA (I), TA (I - 1))));
  
                 declare
                    Src : Element_Access renames SA (Source.Last);
--- 1041,1047 ----
  
                 pragma Assert
                   (I <= Index_Type'First
!                     or else not Is_Less (TA (I), TA (I - 1)));
  
                 declare
                    Src : Element_Access renames SA (Source.Last);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coinve.ads gcc-15.1.0/gcc/ada/libgnat/a-coinve.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coinve.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coinve.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 63,69 ****
       Variable_Indexing => Reference,
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
!      Aggregate         => (Empty          => Empty_Vector,
                             Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
                             Assign_Indexed => Replace_Element);
--- 63,69 ----
       Variable_Indexing => Reference,
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
!      Aggregate         => (Empty          => Empty,
                             Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
                             Assign_Indexed => Replace_Element);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-colien.adb gcc-15.1.0/gcc/ada/libgnat/a-colien.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-colien.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-colien.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-colien.ads gcc-15.1.0/gcc/ada/libgnat/a-colien.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-colien.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-colien.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-colire.adb gcc-15.1.0/gcc/ada/libgnat/a-colire.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-colire.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-colire.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-colire.ads gcc-15.1.0/gcc/ada/libgnat/a-colire.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-colire.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-colire.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-comlin.adb gcc-15.1.0/gcc/ada/libgnat/a-comlin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-comlin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-comlin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-comlin.ads gcc-15.1.0/gcc/ada/libgnat/a-comlin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-comlin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-comlin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This language package providing support for obtaining the values of its
+ --  command line arguments and to set the exit status of the program as defined
+ --  by ARM A.15.
+ 
  package Ada.Command_Line is
     pragma Preelaborate;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-comutr.adb gcc-15.1.0/gcc/ada/libgnat/a-comutr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-comutr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-comutr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 41,95 ****
     pragma Warnings (Off, "variable ""Lock*"" is not referenced");
     --  See comment in Ada.Containers.Helpers
  
-    --------------------
-    --  Root_Iterator --
-    --------------------
- 
-    type Root_Iterator is abstract new Limited_Controlled and
-      Tree_Iterator_Interfaces.Forward_Iterator with
-    record
-       Container : Tree_Access;
-       Subtree   : Tree_Node_Access;
-    end record
-      with Disable_Controlled => not T_Check;
- 
-    overriding procedure Finalize (Object : in out Root_Iterator);
- 
-    -----------------------
-    --  Subtree_Iterator --
-    -----------------------
- 
-    --  ??? these headers are a bit odd, but for sure they do not substitute
-    --  for documenting things, what *is* a Subtree_Iterator?
- 
-    type Subtree_Iterator is new Root_Iterator with null record;
- 
-    overriding function First (Object : Subtree_Iterator) return Cursor;
- 
-    overriding function Next
-      (Object   : Subtree_Iterator;
-       Position : Cursor) return Cursor;
- 
-    ---------------------
-    --  Child_Iterator --
-    ---------------------
- 
-    type Child_Iterator is new Root_Iterator and
-      Tree_Iterator_Interfaces.Reversible_Iterator with null record
-        with Disable_Controlled => not T_Check;
- 
-    overriding function First (Object : Child_Iterator) return Cursor;
- 
-    overriding function Next
-      (Object   : Child_Iterator;
-       Position : Cursor) return Cursor;
- 
-    overriding function Last (Object : Child_Iterator) return Cursor;
- 
-    overriding function Previous
-      (Object   : Child_Iterator;
-       Position : Cursor) return Cursor;
- 
     -----------------------
     -- Local Subprograms --
     -----------------------
--- 41,46 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-comutr.ads gcc-15.1.0/gcc/ada/libgnat/a-comutr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-comutr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-comutr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 491,496 ****
--- 491,535 ----
  
     for Reference_Type'Write use Write;
  
+    --  Base iterator type for shared functionality between Child_Iterator
+    --  and Subtree_Iterator - namely finalization.
+    type Root_Iterator is abstract new Limited_Controlled and
+      Tree_Iterator_Interfaces.Forward_Iterator with
+    record
+       Container : Tree_Access;
+       Subtree   : Tree_Node_Access;
+    end record
+      with Disable_Controlled => not T_Check;
+ 
+    overriding procedure Finalize (Object : in out Root_Iterator);
+ 
+    --  Iterator to handle traversal within a specific subtree.
+    type Subtree_Iterator is new Root_Iterator with null record;
+ 
+    overriding function First (Object : Subtree_Iterator) return Cursor;
+ 
+    overriding function Next
+      (Object   : Subtree_Iterator;
+       Position : Cursor) return Cursor;
+ 
+    --  Iterator to handle bidirectional traversal of a node's immediate
+    --  children for operations like reverse enumeration and selective
+    --  insertion.
+    type Child_Iterator is new Root_Iterator and
+      Tree_Iterator_Interfaces.Reversible_Iterator with null record
+        with Disable_Controlled => not T_Check;
+ 
+    overriding function First (Object : Child_Iterator) return Cursor;
+ 
+    overriding function Next
+      (Object   : Child_Iterator;
+       Position : Cursor) return Cursor;
+ 
+    overriding function Last (Object : Child_Iterator) return Cursor;
+ 
+    overriding function Previous
+      (Object   : Child_Iterator;
+       Position : Cursor) return Cursor;
     --  See Ada.Containers.Vectors for documentation on the following
  
     function Pseudo_Reference
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-conhel.adb gcc-15.1.0/gcc/ada/libgnat/a-conhel.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-conhel.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-conhel.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2015-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2015-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-conhel.ads gcc-15.1.0/gcc/ada/libgnat/a-conhel.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-conhel.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-conhel.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-convec.adb gcc-15.1.0/gcc/ada/libgnat/a-convec.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-convec.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-convec.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-convec.ads gcc-15.1.0/gcc/ada/libgnat/a-convec.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-convec.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-convec.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coorma.adb gcc-15.1.0/gcc/ada/libgnat/a-coorma.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coorma.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coorma.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coorma.ads gcc-15.1.0/gcc/ada/libgnat/a-coorma.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coorma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coorma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coormu.adb gcc-15.1.0/gcc/ada/libgnat/a-coormu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coormu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coormu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coormu.ads gcc-15.1.0/gcc/ada/libgnat/a-coormu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coormu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coormu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coorse.adb gcc-15.1.0/gcc/ada/libgnat/a-coorse.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coorse.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coorse.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 729,734 ****
--- 729,746 ----
             Is_Less_Key_Node    => Is_Less_Key_Node,
             Is_Greater_Key_Node => Is_Greater_Key_Node);
  
+       ------------
+       -- Adjust --
+       ------------
+ 
+       procedure Adjust (Control : in out Reference_Control_Type) is
+       begin
+          Impl.Reference_Control_Type (Control).Adjust;
+          if Control.Old_Key /= null then
+             Control.Old_Key := new Key_Type'(Control.Old_Key.all);
+          end if;
+       end Adjust;
+ 
        -------------
        -- Ceiling --
        -------------
*************** is
*** 825,830 ****
--- 837,844 ----
        --------------
  
        procedure Finalize (Control : in out Reference_Control_Type) is
+          procedure Deallocate is
+            new Ada.Unchecked_Deallocation (Key_Type, Key_Access);
        begin
           if Control.Container /= null then
              Impl.Reference_Control_Type (Control).Finalize;
*************** is
*** 836,842 ****
              end if;
  
              Control.Container := null;
!             Control.Old_Key   := null;
           end if;
        end Finalize;
  
--- 850,856 ----
              end if;
  
              Control.Container := null;
!             Deallocate (Control.Old_Key);
           end if;
        end Finalize;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coorse.ads gcc-15.1.0/gcc/ada/libgnat/a-coorse.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coorse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coorse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 323,328 ****
--- 323,331 ----
           Old_Key   : Key_Access;
        end record;
  
+       overriding procedure Adjust (Control : in out Reference_Control_Type);
+       pragma Inline (Adjust);
+ 
        overriding procedure Finalize (Control : in out Reference_Control_Type);
        pragma Inline (Finalize);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coprnu.adb gcc-15.1.0/gcc/ada/libgnat/a-coprnu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-coprnu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coprnu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-coprnu.ads gcc-15.1.0/gcc/ada/libgnat/a-coprnu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-coprnu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-coprnu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-costso.adb gcc-15.1.0/gcc/ada/libgnat/a-costso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-costso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-costso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-costso.ads gcc-15.1.0/gcc/ada/libgnat/a-costso.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-costso.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-costso.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crbltr.ads gcc-15.1.0/gcc/ada/libgnat/a-crbltr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-crbltr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crbltr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crbtgk.adb gcc-15.1.0/gcc/ada/libgnat/a-crbtgk.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-crbtgk.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crbtgk.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crbtgk.ads gcc-15.1.0/gcc/ada/libgnat/a-crbtgk.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-crbtgk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crbtgk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crbtgo.adb gcc-15.1.0/gcc/ada/libgnat/a-crbtgo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-crbtgo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crbtgo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crbtgo.ads gcc-15.1.0/gcc/ada/libgnat/a-crbtgo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-crbtgo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crbtgo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crdlli.adb gcc-15.1.0/gcc/ada/libgnat/a-crdlli.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-crdlli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crdlli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-crdlli.ads gcc-15.1.0/gcc/ada/libgnat/a-crdlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-crdlli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-crdlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-csquin.ads gcc-15.1.0/gcc/ada/libgnat/a-csquin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-csquin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-csquin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cuprqu.adb gcc-15.1.0/gcc/ada/libgnat/a-cuprqu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cuprqu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cuprqu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cuprqu.ads gcc-15.1.0/gcc/ada/libgnat/a-cuprqu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cuprqu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cuprqu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cusyqu.adb gcc-15.1.0/gcc/ada/libgnat/a-cusyqu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-cusyqu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cusyqu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cusyqu.ads gcc-15.1.0/gcc/ada/libgnat/a-cusyqu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cusyqu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cusyqu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cwila1.ads gcc-15.1.0/gcc/ada/libgnat/a-cwila1.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cwila1.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cwila1.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-cwila9.ads gcc-15.1.0/gcc/ada/libgnat/a-cwila9.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-cwila9.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-cwila9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-decima.adb gcc-15.1.0/gcc/ada/libgnat/a-decima.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-decima.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-decima.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-decima.ads gcc-15.1.0/gcc/ada/libgnat/a-decima.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-decima.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-decima.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-decima__128.ads gcc-15.1.0/gcc/ada/libgnat/a-decima__128.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-decima__128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-decima__128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-dhfina.adb gcc-15.1.0/gcc/ada/libgnat/a-dhfina.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-dhfina.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-dhfina.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-dhfina.ads gcc-15.1.0/gcc/ada/libgnat/a-dhfina.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-dhfina.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-dhfina.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-diocst.adb gcc-15.1.0/gcc/ada/libgnat/a-diocst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-diocst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-diocst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-diocst.ads gcc-15.1.0/gcc/ada/libgnat/a-diocst.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-diocst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-diocst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-direct.adb gcc-15.1.0/gcc/ada/libgnat/a-direct.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-direct.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-direct.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Calendar;               use Ada.Calendar;
  with Ada.Characters.Handling;    use Ada.Characters.Handling;
  with Ada.Containers.Vectors;
  with Ada.Directories.Validity;   use Ada.Directories.Validity;
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Calendar.Formatting;    use Ada.Calendar;
  with Ada.Characters.Handling;    use Ada.Characters.Handling;
  with Ada.Containers.Vectors;
  with Ada.Directories.Validity;   use Ada.Directories.Validity;
*************** package body Ada.Directories is
*** 1292,1298 ****
        Dir_Pointer      : Dir_Type_Value;
        File_Name_Addr   : Address;
        File_Name_Len    : aliased Integer;
!       Pattern_Regex    : Regexp;
  
        Call_Result      : Integer;
        pragma Warnings (Off, Call_Result);
--- 1292,1298 ----
        Dir_Pointer      : Dir_Type_Value;
        File_Name_Addr   : Address;
        File_Name_Len    : aliased Integer;
!       Pattern_Regex    : System.Regexp.Regexp;
  
        Call_Result      : Integer;
        pragma Warnings (Off, Call_Result);
*************** package body Ada.Directories is
*** 1367,1375 ****
           --  the Filter add it to our search vector.
  
           declare
!             subtype File_Name_String is String (1 .. File_Name_Len);
! 
!             File_Name : constant File_Name_String
                with Import, Address => File_Name_Addr;
  
           begin
--- 1367,1373 ----
           --  the Filter add it to our search vector.
  
           declare
!             File_Name : constant String (1 .. File_Name_Len)
                with Import, Address => File_Name_Addr;
  
           begin
*************** package body Ada.Directories is
*** 1379,1385 ****
                               Compose (Directory, File_Name) & ASCII.NUL;
                    Path   : String renames
                               Path_C (Path_C'First .. Path_C'Last - 1);
!                   Attr   : aliased File_Attributes;
                    Exists : Integer;
                    Error  : Integer;
  
--- 1377,1383 ----
                               Compose (Directory, File_Name) & ASCII.NUL;
                    Path   : String renames
                               Path_C (Path_C'First .. Path_C'Last - 1);
!                   Attr   : aliased System.File_Attributes.File_Attributes;
                    Exists : Integer;
                    Error  : Integer;
  
*************** package body Ada.Directories is
*** 1394,1399 ****
--- 1392,1408 ----
                    end record;
  
                    Res : Result := (Found => False);
+ 
+                   --  This declaration of No_Time copied from GNAT.Calendar
+                   --  because adding a "with GNAT.Calendar;" to this unit
+                   --  results in problems.
+ 
+                   No_Time : constant Ada.Calendar.Time :=
+                     Ada.Calendar.Formatting.Time_Of
+                       (Ada.Calendar.Year_Number'First,
+                        Ada.Calendar.Month_Number'First,
+                        Ada.Calendar.Day_Number'First,
+                        Time_Zone => 0);
                 begin
                    --  Get the file attributes for the directory item
  
*************** package body Ada.Directories is
*** 1454,1460 ****
                                Full_Name         => To_Unbounded_String (Path),
                                Attr_Error_Code   => 0,
                                Kind              => Res.Kind,
!                               Modification_Time => Modification_Time (Path),
                                Size              => Res.Size));
                       end if;
                    end if;
--- 1463,1472 ----
                                Full_Name         => To_Unbounded_String (Path),
                                Attr_Error_Code   => 0,
                                Kind              => Res.Kind,
!                               Modification_Time =>
!                                (if Res.Kind = Special_File
!                                   then No_Time
!                                   else Modification_Time (Path)),
                                Size              => Res.Size));
                       end if;
                    end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-direct.ads gcc-15.1.0/gcc/ada/libgnat/a-direct.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-direct.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-direct.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived for use with GNAT from AI-00248,  which is --
  -- expected to be a part of a future expected revised Ada Reference Manual. --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived for use with GNAT from AI-00248,  which is --
  -- expected to be a part of a future expected revised Ada Reference Manual. --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-direio.adb gcc-15.1.0/gcc/ada/libgnat/a-direio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-direio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-direio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-direio.ads gcc-15.1.0/gcc/ada/libgnat/a-direio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-direio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-direio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-dirval.adb gcc-15.1.0/gcc/ada/libgnat/a-dirval.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-dirval.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-dirval.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                             (POSIX Version)                              --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (POSIX Version)                              --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-dirval.ads gcc-15.1.0/gcc/ada/libgnat/a-dirval.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-dirval.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-dirval.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-dirval__mingw.adb gcc-15.1.0/gcc/ada/libgnat/a-dirval__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-dirval__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-dirval__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-einuoc.adb gcc-15.1.0/gcc/ada/libgnat/a-einuoc.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-einuoc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-einuoc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-einuoc.ads gcc-15.1.0/gcc/ada/libgnat/a-einuoc.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-einuoc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-einuoc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-elchha.adb gcc-15.1.0/gcc/ada/libgnat/a-elchha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-elchha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-elchha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-elchha.ads gcc-15.1.0/gcc/ada/libgnat/a-elchha.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-elchha.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-elchha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-envvar.adb gcc-15.1.0/gcc/ada/libgnat/a-envvar.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-envvar.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-envvar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-excach.adb gcc-15.1.0/gcc/ada/libgnat/a-excach.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-excach.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-excach.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-except.adb gcc-15.1.0/gcc/ada/libgnat/a-except.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-except.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-except.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Exceptions is
*** 482,487 ****
--- 482,489 ----
       (File : System.Address; Line : Integer);
     procedure Rcheck_PE_Potentially_Blocking_Operation
       (File : System.Address; Line : Integer);
+    procedure Rcheck_PE_Raise_Check
+      (File : System.Address; Line : Integer);
     procedure Rcheck_PE_Stubbed_Subprogram_Called
       (File : System.Address; Line : Integer);
     procedure Rcheck_PE_Unchecked_Union_Restriction
*************** package body Ada.Exceptions is
*** 574,579 ****
--- 576,583 ----
                    "__gnat_rcheck_PE_Overlaid_Controlled_Object");
     pragma Export (C, Rcheck_PE_Potentially_Blocking_Operation,
                    "__gnat_rcheck_PE_Potentially_Blocking_Operation");
+    pragma Export (C, Rcheck_PE_Raise_Check,
+                   "__gnat_rcheck_PE_Raise_Check");
     pragma Export (C, Rcheck_PE_Stream_Operation_Not_Allowed,
                    "__gnat_rcheck_PE_Stream_Operation_Not_Allowed");
     pragma Export (C, Rcheck_PE_Stubbed_Subprogram_Called,
*************** package body Ada.Exceptions is
*** 632,637 ****
--- 636,642 ----
     pragma No_Return (Rcheck_PE_Non_Transportable_Actual);
     pragma No_Return (Rcheck_PE_Overlaid_Controlled_Object);
     pragma No_Return (Rcheck_PE_Potentially_Blocking_Operation);
+    pragma No_Return (Rcheck_PE_Raise_Check);
     pragma No_Return (Rcheck_PE_Stream_Operation_Not_Allowed);
     pragma No_Return (Rcheck_PE_Stubbed_Subprogram_Called);
     pragma No_Return (Rcheck_PE_Unchecked_Union_Restriction);
*************** package body Ada.Exceptions is
*** 710,715 ****
--- 715,722 ----
                               "expected_throw");
     pragma Machine_Attribute (Rcheck_PE_Potentially_Blocking_Operation,
                               "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Raise_Check,
+                              "expected_throw");
     pragma Machine_Attribute (Rcheck_PE_Stream_Operation_Not_Allowed,
                               "expected_throw");
     pragma Machine_Attribute (Rcheck_PE_Stubbed_Subprogram_Called,
*************** package body Ada.Exceptions is
*** 877,882 ****
--- 884,890 ----
     Rmsg_35 : constant String := "object too large"                 & NUL;
     Rmsg_36 : constant String := "stream operation not allowed"     & NUL;
     Rmsg_37 : constant String := "build-in-place mismatch"          & NUL;
+    Rmsg_38 : constant String := "raise check failed"               & NUL;
  
     ---------
     -- AAA --
*************** package body Ada.Exceptions is
*** 1575,1580 ****
--- 1583,1595 ----
        Raise_Program_Error_Msg (File, Line, Rmsg_28'Address);
     end Rcheck_PE_Potentially_Blocking_Operation;
  
+    procedure Rcheck_PE_Raise_Check
+      (File : System.Address; Line : Integer)
+    is
+    begin
+       Raise_Program_Error_Msg (File, Line, Rmsg_38'Address);
+    end Rcheck_PE_Raise_Check;
+ 
     procedure Rcheck_PE_Stream_Operation_Not_Allowed
       (File : System.Address; Line : Integer)
     is
*************** package body Ada.Exceptions is
*** 1753,1760 ****
           Exception_Propagation.Propagate_Exception (X);
        else
           declare
!             Excep : constant EOA
!               := Exception_Propagation.Allocate_Occurrence;
              Saved_MO : constant System.Address := Excep.Machine_Occurrence;
           begin
              Save_Occurrence (Excep.all, X);
--- 1768,1775 ----
           Exception_Propagation.Propagate_Exception (X);
        else
           declare
!             Excep : constant EOA :=
!               Exception_Propagation.Allocate_Occurrence;
              Saved_MO : constant System.Address := Excep.Machine_Occurrence;
           begin
              Save_Occurrence (Excep.all, X);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-except.ads gcc-15.1.0/gcc/ada/libgnat/a-except.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-except.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-except.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exctra.adb gcc-15.1.0/gcc/ada/libgnat/a-exctra.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-exctra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exctra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exctra.ads gcc-15.1.0/gcc/ada/libgnat/a-exctra.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-exctra.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exctra.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exexda.adb gcc-15.1.0/gcc/ada/libgnat/a-exexda.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-exexda.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exexda.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exexpr.adb gcc-15.1.0/gcc/ada/libgnat/a-exexpr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-exexpr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exexpr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exception_Propagation is
*** 139,145 ****
  
     function Setup_Current_Excep
       (GCC_Exception : not null GCC_Exception_Access;
!       Phase : Unwind_Action) return EOA;
     pragma Export (C, Setup_Current_Excep, "__gnat_setup_current_excep");
     --  Acknowledge GCC_Exception as the current exception object being
     --  raised, which could be an Ada or a foreign exception object.  Return
--- 139,146 ----
  
     function Setup_Current_Excep
       (GCC_Exception : not null GCC_Exception_Access;
!       Phase : Unwind_Action;
!       Id : Exception_Id) return EOA;
     pragma Export (C, Setup_Current_Excep, "__gnat_setup_current_excep");
     --  Acknowledge GCC_Exception as the current exception object being
     --  raised, which could be an Ada or a foreign exception object.  Return
*************** package body Exception_Propagation is
*** 195,204 ****
     --  Called inserted by gigi to set the exception choice parameter from the
     --  gcc occurrence.
  
!    procedure Set_Foreign_Occurrence (Excep : EOA; Mo : System.Address);
     --  Utility routine to initialize occurrence Excep from a foreign exception
     --  whose machine occurrence is Mo. The message is empty, the backtrace
!    --  is empty too and the exception identity is Foreign_Exception.
  
     --  Hooks called when entering/leaving an exception handler for a
     --  given occurrence.  The calls are generated by gigi in
--- 196,208 ----
     --  Called inserted by gigi to set the exception choice parameter from the
     --  gcc occurrence.
  
!    procedure Set_Foreign_Occurrence
!      (Excep : EOA;
!       Mo    : System.Address;
!       Id    : Exception_Id := Foreign_Exception'Access);
     --  Utility routine to initialize occurrence Excep from a foreign exception
     --  whose machine occurrence is Mo. The message is empty, the backtrace
!    --  is empty too and the exception identity is Id.
  
     --  Hooks called when entering/leaving an exception handler for a
     --  given occurrence.  The calls are generated by gigi in
*************** package body Exception_Propagation is
*** 354,363 ****
     -- Set_Foreign_Occurrence --
     ----------------------------
  
!    procedure Set_Foreign_Occurrence (Excep : EOA; Mo : System.Address) is
     begin
        Excep.all := (
!         Id                 => Foreign_Exception'Access,
          Machine_Occurrence => Mo,
          Msg                => <>,
          Msg_Length         => 0,
--- 358,370 ----
     -- Set_Foreign_Occurrence --
     ----------------------------
  
!    procedure Set_Foreign_Occurrence
!      (Excep : EOA;
!       Mo    : System.Address;
!       Id    : Exception_Id := Foreign_Exception'Access) is
     begin
        Excep.all := (
!         Id                 => Id,
          Machine_Occurrence => Mo,
          Msg                => <>,
          Msg_Length         => 0,
*************** package body Exception_Propagation is
*** 373,379 ****
  
     function Setup_Current_Excep
       (GCC_Exception : not null GCC_Exception_Access;
!       Phase : Unwind_Action) return EOA
     is
        Excep : constant EOA := Get_Current_Excep.all;
  
--- 380,387 ----
  
     function Setup_Current_Excep
       (GCC_Exception : not null GCC_Exception_Access;
!       Phase : Unwind_Action;
!       Id : Exception_Id) return EOA
     is
        Excep : constant EOA := Get_Current_Excep.all;
  
*************** package body Exception_Propagation is
*** 408,414 ****
           --  an Ada occurrence info.  Set the foreign data pointer in the
           --  Current Exception Buffer and return the address of the latter.
  
!          Set_Foreign_Occurrence (Excep, GCC_Exception.all'Address);
  
           return Excep;
        end if;
--- 416,426 ----
           --  an Ada occurrence info.  Set the foreign data pointer in the
           --  Current Exception Buffer and return the address of the latter.
  
!          if Id = null then
!             Set_Foreign_Occurrence (Excep, GCC_Exception.all'Address);
!          else
!             Set_Foreign_Occurrence (Excep, GCC_Exception.all'Address, Id);
!          end if;
  
           return Excep;
        end if;
*************** package body Exception_Propagation is
*** 494,501 ****
        then
           declare
              Current : constant EOA := Get_Current_Excep.all;
!             Cur_Occ : constant GCC_Exception_Access
!               := To_GCC_Exception (Current.Machine_Occurrence);
           begin
              --  If we are releasing the Machine_Occurrence of the current
              --  exception, reset the access to it, so that it is no
--- 506,513 ----
        then
           declare
              Current : constant EOA := Get_Current_Excep.all;
!             Cur_Occ : constant GCC_Exception_Access :=
!               To_GCC_Exception (Current.Machine_Occurrence);
           begin
              --  If we are releasing the Machine_Occurrence of the current
              --  exception, reset the access to it, so that it is no
*************** package body Exception_Propagation is
*** 589,595 ****
        --  our personality routine.
  
        Excep : constant EOA :=
!         Setup_Current_Excep (GCC_Exception, Phase => 0);
  
     begin
        --  Perform a standard raise first. If a regular handler is found, it
--- 601,607 ----
        --  our personality routine.
  
        Excep : constant EOA :=
!         Setup_Current_Excep (GCC_Exception, Phase => 0, Id => null);
  
     begin
        --  Perform a standard raise first. If a regular handler is found, it
*************** package body Exception_Propagation is
*** 653,661 ****
           end;
  
        else
!          --  A default one
  
-          Set_Foreign_Occurrence (Excep, GCC_Exception.all'Address);
        end if;
     end Set_Exception_Parameter;
  
--- 665,676 ----
           end;
  
        else
!          --  A default one.  Take the Id from the exception object
!          --  created by Setup_Current_Excep.
! 
!          Set_Foreign_Occurrence (Excep, GCC_Exception.all'Address,
!                                  Get_Current_Excep.all.Id);
  
        end if;
     end Set_Exception_Parameter;
  
*************** package body Exception_Propagation is
*** 668,674 ****
     is
        Excep : EOA;
     begin
!       Excep := Setup_Current_Excep (GCC_Exception, Phase => UA_CLEANUP_PHASE);
        Unhandled_Exception_Terminate (Excep);
     end Unhandled_Except_Handler;
  
--- 683,690 ----
     is
        Excep : EOA;
     begin
!       Excep := Setup_Current_Excep (GCC_Exception, Phase => UA_CLEANUP_PHASE,
!                                     Id => null);
        Unhandled_Exception_Terminate (Excep);
     end Unhandled_Except_Handler;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exextr.adb gcc-15.1.0/gcc/ada/libgnat/a-exextr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-exextr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exextr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-exstat.adb gcc-15.1.0/gcc/ada/libgnat/a-exstat.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-exstat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-exstat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-finali.adb gcc-15.1.0/gcc/ada/libgnat/a-finali.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-finali.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-finali.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-finali.ads gcc-15.1.0/gcc/ada/libgnat/a-finali.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-finali.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-finali.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-locale.adb gcc-15.1.0/gcc/ada/libgnat/a-locale.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-locale.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-locale.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-locale.ads gcc-15.1.0/gcc/ada/libgnat/a-locale.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-locale.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-locale.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nagefl.ads gcc-15.1.0/gcc/ada/libgnat/a-nagefl.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nagefl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nagefl.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Generic Wrapper)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Generic Wrapper)                             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-naliop.ads gcc-15.1.0/gcc/ada/libgnat/a-naliop.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-naliop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-naliop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads gcc-15.1.0/gcc/ada/libgnat/a-naliop__nolibm.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-naliop__nolibm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nallfl.ads gcc-15.1.0/gcc/ada/libgnat/a-nallfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nallfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nallfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (Instrinsic Version, Long Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (Instrinsic Version, Long Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads gcc-15.1.0/gcc/ada/libgnat/a-nallfl__wraplf.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nallfl__wraplf.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --              (Long Long Float Wrapper in terms of Long Float)            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --              (Long Long Float Wrapper in terms of Long Float)            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nalofl.ads gcc-15.1.0/gcc/ada/libgnat/a-nalofl.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nalofl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nalofl.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (Intrinsic Version, Long Float)                    --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Intrinsic Version, Long Float)                    --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nalofl__simd.ads gcc-15.1.0/gcc/ada/libgnat/a-nalofl__simd.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nalofl__simd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nalofl__simd.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                     (Intrinsic/SIMD Version, Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (Intrinsic/SIMD Version, Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nashfl.ads gcc-15.1.0/gcc/ada/libgnat/a-nashfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nashfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nashfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                  (Short Float Wrapper in terms of Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                  (Short Float Wrapper in terms of Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads gcc-15.1.0/gcc/ada/libgnat/a-nashfl__wraplf.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nashfl__wraplf.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                (Short Float Wrapper in terms of Long Float)              --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                (Short Float Wrapper in terms of Long Float)              --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nbnbig.adb gcc-15.1.0/gcc/ada/libgnat/a-nbnbig.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nbnbig.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nbnbig.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nbnbig.ads gcc-15.1.0/gcc/ada/libgnat/a-nbnbig.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nbnbig.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nbnbig.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,26 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This unit is provided as a replacement for the standard unit
! --  Ada.Numerics.Big_Numbers.Big_Integers when only proof with SPARK is
! --  intended. It cannot be used for execution, as all subprograms are marked
! --  imported with no definition.
  
  --  Contrary to Ada.Numerics.Big_Numbers.Big_Integers, this unit does not
  --  depend on System or Ada.Finalization, which makes it more convenient for
! --  use in run-time units.
  
  --  Ghost code in this unit is meant for analysis only, not for run-time
  --  checking. This is enforced by setting the assertion policy to Ignore.
--- 13,28 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides a reduced and non-executable implementation of the
! --  ARM A.5.6 defined ``Ada.Numerics.Big_Numbers.Big_Integers``  for use in
! --  SPARK proofs in the runtime. As it is only intended for SPARK proofs, this
! --  package is marked as a Ghost package and consequently does not have a
! --  runtime footprint.
  
  --  Contrary to Ada.Numerics.Big_Numbers.Big_Integers, this unit does not
  --  depend on System or Ada.Finalization, which makes it more convenient for
! --  use in run-time units. Note, since it is a ghost unit, all subprograms are
! --  marked as imported.
  
  --  Ghost code in this unit is meant for analysis only, not for run-time
  --  checking. This is enforced by setting the assertion policy to Ignore.
*************** is
*** 36,51 ****
--- 38,57 ----
  
     type Big_Integer is private
       with Integer_Literal => From_Universal_Image;
+    --  Private type that holds the integer value
  
     function Is_Valid (Arg : Big_Integer) return Boolean
     with
       Import,
       Global => null;
+    --  Return whether a passed big integer is valid
  
     subtype Valid_Big_Integer is Big_Integer
       with Dynamic_Predicate => Is_Valid (Valid_Big_Integer),
            Predicate_Failure => raise Program_Error;
+    --  Holds a valid Big_Integer
  
+    --  Comparison operators defined for valid Big_Integer values
     function "=" (L, R : Valid_Big_Integer) return Boolean with
        Import,
        Global => null;
*************** is
*** 70,87 ****
--- 76,96 ----
       with
         Import,
         Global => null;
+    --  Create a Big_Integer from an Integer value
  
     subtype Big_Positive is Big_Integer
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Positive)
               then Big_Positive > To_Big_Integer (0)),
            Predicate_Failure => raise Constraint_Error;
+    --  Positive subtype of Big_Integers, analogous to Positive and Integer
  
     subtype Big_Natural is Big_Integer
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Natural)
               then Big_Natural >= To_Big_Integer (0)),
            Predicate_Failure => raise Constraint_Error;
+    --  Natural subtype of Big_Integers, analogous to Natural and Integer
  
     function In_Range
       (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
*************** is
*** 89,94 ****
--- 98,104 ----
     with
       Import,
       Global => null;
+    --  Check whether Arg is in the range Low .. High
  
     function To_Integer (Arg : Valid_Big_Integer) return Integer
     with
*************** is
*** 98,111 ****
--- 108,125 ----
                           High => To_Big_Integer (Integer'Last))
                  or else raise Constraint_Error,
       Global => null;
+    --  Convert a valid Big_Integer into an Integer
  
     generic
        type Int is range <>;
     package Signed_Conversions is
+       --  Generic package to implement conversion functions for
+       --  arbitrary ranged types.
  
        function To_Big_Integer (Arg : Int) return Valid_Big_Integer
        with
          Global => null;
+       --  Convert a ranged type into a valid Big_Integer
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int
        with
*************** is
*** 114,128 ****
--- 128,146 ----
                              High => To_Big_Integer (Int'Last))
                     or else raise Constraint_Error,
          Global => null;
+       --  Convert a valid Big_Integer into a ranged type
     end Signed_Conversions;
  
     generic
        type Int is mod <>;
     package Unsigned_Conversions is
+       --  Generic package to implement conversion functions for
+       --  arbitrary modular types.
  
        function To_Big_Integer (Arg : Int) return Valid_Big_Integer
        with
          Global => null;
+       --  Convert a modular type into a valid Big_Integer
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int
        with
*************** is
*** 131,136 ****
--- 149,155 ----
                              High => To_Big_Integer (Int'Last))
                     or else raise Constraint_Error,
          Global => null;
+       --  Convert a valid Big_Integer into a modular type
  
     end Unsigned_Conversions;
  
*************** is
*** 138,147 ****
--- 157,168 ----
     with
       Import,
       Global => null;
+    --  Create a valid Big_Integer from a String
  
     function From_Universal_Image (Arg : String) return Valid_Big_Integer
       renames From_String;
  
+    --  Mathematical operators defined for valid Big_Integer values
     function "+" (L : Valid_Big_Integer) return Valid_Big_Integer
     with
       Import,
*************** is
*** 209,218 ****
--- 230,241 ----
       Pre    => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
                 or else raise Constraint_Error,
       Global => null;
+    --  Calculate the greatest common divisor for two Big_Integer values
  
  private
     pragma SPARK_Mode (Off);
  
     type Big_Integer is null record;
+    --  Solely consists of Ghost code
  
  end Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nbnbin.adb gcc-15.1.0/gcc/ada/libgnat/a-nbnbin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nbnbin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nbnbin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 69,75 ****
     package Bignums is new System.Generic_Bignums
       (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum);
  
!    use Bignums, System;
  
     function Get_Bignum (Arg : Big_Integer) return Bignum is
       (if Arg.Value.C = System.Null_Address
--- 69,76 ----
     package Bignums is new System.Generic_Bignums
       (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum);
  
!    use System, Bignums;
!    subtype Bignum is Bignums.Bignum;
  
     function Get_Bignum (Arg : Big_Integer) return Bignum is
       (if Arg.Value.C = System.Null_Address
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb gcc-15.1.0/gcc/ada/libgnat/a-nbnbin__gmp.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nbnbin__gmp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nbnbre.adb gcc-15.1.0/gcc/ada/libgnat/a-nbnbre.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nbnbre.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nbnbre.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 132,138 ****
  
        function To_Big_Real (Arg : Num) return Valid_Big_Real is
  
!          A : constant Num'Base := abs (Arg);
           E : constant Integer  := Num'Exponent (A);
           F : constant Num'Base := Num'Fraction (A);
           M : constant Natural  := Num'Machine_Mantissa;
--- 132,138 ----
  
        function To_Big_Real (Arg : Num) return Valid_Big_Real is
  
!          A : constant Num'Base := abs Arg;
           E : constant Integer  := Num'Exponent (A);
           F : constant Num'Base := Num'Fraction (A);
           M : constant Natural  := Num'Machine_Mantissa;
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 229,235 ****
  
           --  Local variables
  
!          V : Big_Real := abs (Arg);
           E : Integer  := 0;
           L : Integer;
  
--- 229,235 ----
  
           --  Local variables
  
!          V : Big_Real := abs Arg;
           E : Integer  := 0;
           L : Integer;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngcefu.adb gcc-15.1.0/gcc/ada/libgnat/a-ngcefu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ngcefu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngcefu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngcoar.adb gcc-15.1.0/gcc/ada/libgnat/a-ngcoar.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ngcoar.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngcoar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2006-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2006-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Generic_Comple
*** 1058,1076 ****
     is
        N : constant Natural := Length (A);
  
!       --  For a Hermitian matrix C, we convert the eigenvalue problem to a
!       --  real symmetric one: if C = A + i * B, then the (N, N) complex
        --  eigenvalue problem:
!       --     (A + i * B) * (u + i * v) = Lambda * (u + i * v)
        --
        --  is equivalent to the (2 * N, 2 * N) real eigenvalue problem:
-       --     [  A, B ] [ u ] = Lambda * [ u ]
-       --     [ -B, A ] [ v ]            [ v ]
        --
!       --  Note that the (2 * N, 2 * N) matrix above is symmetric, as
!       --  Transpose (A) = A and Transpose (B) = -B if C is Hermitian.
  
!       --  We solve this eigensystem using the real-valued algorithms. The final
        --  result will have every eigenvalue twice, so in the sorted output we
        --  just pick every second value, with associated eigenvector u + i * v.
  
--- 1058,1078 ----
     is
        N : constant Natural := Length (A);
  
!       --  For a Hermitian matrix A, we convert the eigenvalue problem to a
!       --  real symmetric one: if A = X + i * Y, then the (N, N) complex
        --  eigenvalue problem:
!       --
!       --     (X + i * Y) * (u + i * v) = Lambda * (u + i * v)
        --
        --  is equivalent to the (2 * N, 2 * N) real eigenvalue problem:
        --
!       --     [ X, -Y ] [ u ] = Lambda * [ u ]
!       --     [ Y,  X ] [ v ]            [ v ]
!       --
!       --  Note that the (2 * N, 2 * N) matrix M above is symmetric, because
!       --  Transpose (X) = X and Transpose (Y) = -Y as A is Hermitian.
  
!       --  We solve this eigensystem using the real-valued algorithm. The final
        --  result will have every eigenvalue twice, so in the sorted output we
        --  just pick every second value, with associated eigenvector u + i * v.
  
*************** package body Ada.Numerics.Generic_Comple
*** 1085,1094 ****
                 C : constant Complex :=
                   (A (A'First (1) + (J - 1), A'First (2) + (K - 1)));
              begin
!                M (J, K) := Re (C);
!                M (J + N, K + N) := Re (C);
!                M (J + N, K) := Im (C);
!                M (J, K + N) := -Im (C);
              end;
           end loop;
        end loop;
--- 1087,1094 ----
                 C : constant Complex :=
                   (A (A'First (1) + (J - 1), A'First (2) + (K - 1)));
              begin
!                M (J,     K) := Re (C); M (J,     K + N) := -Im (C);
!                M (J + N, K) := Im (C); M (J + N, K + N) := Re (C);
              end;
           end loop;
        end loop;
*************** package body Ada.Numerics.Generic_Comple
*** 1103,1112 ****
  
              for K in 1 .. N loop
                 declare
!                   Row : constant Integer := Vectors'First (2) + (K - 1);
                 begin
!                   Vectors (Row, Col)
!                      := (Vecs (J * 2, Col), Vecs (J * 2, Col + N));
                 end;
              end loop;
           end;
--- 1103,1111 ----
  
              for K in 1 .. N loop
                 declare
!                   Row : constant Integer := Vectors'First (1) + (K - 1);
                 begin
!                   Vectors (Row, Col) := (Vecs (K, 2 * J), Vecs (K + N, 2 * J));
                 end;
              end loop;
           end;
*************** package body Ada.Numerics.Generic_Comple
*** 1118,1130 ****
     -----------------
  
     function Eigenvalues (A : Complex_Matrix) return Real_Vector is
-       --  See Eigensystem for a description of the algorithm
- 
        N : constant Natural := Length (A);
!       R : Real_Vector (A'Range (1));
  
        M    : Real_Matrix (1 .. 2 * N, 1 .. 2 * N);
        Vals : Real_Vector (1 .. 2 * N);
     begin
        for J in 1 .. N loop
           for K in 1 .. N loop
--- 1117,1130 ----
     -----------------
  
     function Eigenvalues (A : Complex_Matrix) return Real_Vector is
        N : constant Natural := Length (A);
! 
!       --  See Eigensystem for a description of the algorithm
  
        M    : Real_Matrix (1 .. 2 * N, 1 .. 2 * N);
+       R    : Real_Vector (A'Range (1));
        Vals : Real_Vector (1 .. 2 * N);
+ 
     begin
        for J in 1 .. N loop
           for K in 1 .. N loop
*************** package body Ada.Numerics.Generic_Comple
*** 1132,1141 ****
                 C : constant Complex :=
                   (A (A'First (1) + (J - 1), A'First (2) + (K - 1)));
              begin
!                M (J, K) := Re (C);
!                M (J + N, K + N) := Re (C);
!                M (J + N, K) := Im (C);
!                M (J, K + N) := -Im (C);
              end;
           end loop;
        end loop;
--- 1132,1139 ----
                 C : constant Complex :=
                   (A (A'First (1) + (J - 1), A'First (2) + (K - 1)));
              begin
!                M (J,     K) := Re (C); M (J,     K + N) := -Im (C);
!                M (J + N, K) := Im (C); M (J + N, K + N) := Re (C);
              end;
           end loop;
        end loop;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngcoty.adb gcc-15.1.0/gcc/ada/libgnat/a-ngcoty.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ngcoty.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngcoty.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Generic_Comple
*** 67,73 ****
           --  their operands could overflow. Given that all operations on NaNs
           --  return false, the test can only be written thus.
  
!          if not (abs (X) <= R'Last) then
              pragma Annotate
                (CodePeer, Intentional,
                 "test always false", "test for infinity");
--- 67,73 ----
           --  their operands could overflow. Given that all operations on NaNs
           --  return false, the test can only be written thus.
  
!          if not (abs X <= R'Last) then
              pragma Annotate
                (CodePeer, Intentional,
                 "test always false", "test for infinity");
*************** package body Ada.Numerics.Generic_Comple
*** 76,82 ****
                               (Left.Im / Scale) * (Right.Im / Scale));
           end if;
  
!          if not (abs (Y) <= R'Last) then
              pragma Annotate
                (CodePeer, Intentional,
                 "test always false", "test for infinity");
--- 76,82 ----
                               (Left.Im / Scale) * (Right.Im / Scale));
           end if;
  
!          if not (abs Y <= R'Last) then
              pragma Annotate
                (CodePeer, Intentional,
                 "test always false", "test for infinity");
*************** package body Ada.Numerics.Generic_Comple
*** 599,605 ****
        exception
           when Constraint_Error =>
              pragma Assert (X.Re /= 0.0);
!             return R (abs (X.Re))
                * Aux.Sqrt (1.0 + (R (X.Im) / R (X.Re)) ** 2);
        end;
  
--- 599,605 ----
        exception
           when Constraint_Error =>
              pragma Assert (X.Re /= 0.0);
!             return R (abs X.Re)
                * Aux.Sqrt (1.0 + (R (X.Im) / R (X.Re)) ** 2);
        end;
  
*************** package body Ada.Numerics.Generic_Comple
*** 614,620 ****
        exception
           when Constraint_Error =>
              pragma Assert (X.Im /= 0.0);
!             return R (abs (X.Im))
                * Aux.Sqrt (1.0 + (R (X.Re) / R (X.Im)) ** 2);
        end;
  
--- 614,620 ----
        exception
           when Constraint_Error =>
              pragma Assert (X.Im /= 0.0);
!             return R (abs X.Im)
                * Aux.Sqrt (1.0 + (R (X.Re) / R (X.Im)) ** 2);
        end;
  
*************** package body Ada.Numerics.Generic_Comple
*** 625,653 ****
        if Re2 = 0.0 then
  
           if X.Re = 0.0 then
!             return abs (X.Im);
  
           elsif Im2 = 0.0 then
  
              if X.Im = 0.0 then
!                return abs (X.Re);
  
              else
!                if abs (X.Re) > abs (X.Im) then
!                   return R (abs (X.Re))
                      * Aux.Sqrt (1.0 + (R (X.Im) / R (X.Re)) ** 2);
                 else
!                   return R (abs (X.Im))
                      * Aux.Sqrt (1.0 + (R (X.Re) / R (X.Im)) ** 2);
                 end if;
              end if;
  
           else
!             return abs (X.Im);
           end if;
  
        elsif Im2 = 0.0 then
!          return abs (X.Re);
  
        --  In all other cases, the naive computation will do
  
--- 625,653 ----
        if Re2 = 0.0 then
  
           if X.Re = 0.0 then
!             return abs X.Im;
  
           elsif Im2 = 0.0 then
  
              if X.Im = 0.0 then
!                return abs X.Re;
  
              else
!                if abs X.Re > abs X.Im then
!                   return R (abs X.Re)
                      * Aux.Sqrt (1.0 + (R (X.Im) / R (X.Re)) ** 2);
                 else
!                   return R (abs X.Im)
                      * Aux.Sqrt (1.0 + (R (X.Re) / R (X.Im)) ** 2);
                 end if;
              end if;
  
           else
!             return abs X.Im;
           end if;
  
        elsif Im2 = 0.0 then
!          return abs X.Re;
  
        --  In all other cases, the naive computation will do
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngcoty.ads gcc-15.1.0/gcc/ada/libgnat/a-ngcoty.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ngcoty.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngcoty.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngelfu.adb gcc-15.1.0/gcc/ada/libgnat/a-ngelfu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ngelfu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngelfu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 116,122 ****
                 return Sqrt (Left);
  
              else
!                A_Right := abs (Right);
  
                 --  If exponent is larger than one, compute integer exponen-
                 --  tiation if possible, and evaluate fractional part with more
--- 116,122 ----
                 return Sqrt (Left);
  
              else
!                A_Right := abs Right;
  
                 --  If exponent is larger than one, compute integer exponen-
                 --  tiation if possible, and evaluate fractional part with more
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngelfu.ads gcc-15.1.0/gcc/ada/libgnat/a-ngelfu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ngelfu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngelfu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 51,58 ****
     pragma Assertion_Policy (Pre => Ignore);
  
     function Sqrt (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => X >= 0.0,
!      Post => Sqrt'Result >= 0.0
         and then (if X = 0.0 then Sqrt'Result = 0.0)
         and then (if X = 1.0 then Sqrt'Result = 1.0)
  
--- 51,59 ----
     pragma Assertion_Policy (Pre => Ignore);
  
     function Sqrt (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X >= 0.0,
!      Post   => Sqrt'Result >= 0.0
         and then (if X = 0.0 then Sqrt'Result = 0.0)
         and then (if X = 1.0 then Sqrt'Result = 1.0)
  
*************** is
*** 74,92 ****
         and then (if X >= Float_Type'Succ (0.0) then Sqrt'Result > 0.0);
  
     function Log (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => X > 0.0,
!      Post => (if X = 1.0 then Log'Result = 0.0);
  
     function Log (X, Base : Float_Type'Base) return Float_Type'Base with
!      Pre  => X > 0.0 and Base > 0.0 and Base /= 1.0,
!      Post => (if X = 1.0 then Log'Result = 0.0);
  
     function Exp (X : Float_Type'Base) return Float_Type'Base with
!      Post => (if X = 0.0 then Exp'Result = 1.0);
  
     function "**" (Left, Right : Float_Type'Base) return Float_Type'Base with
!      Pre  => (if Left = 0.0 then Right > 0.0) and Left >= 0.0,
!      Post => "**"'Result >= 0.0
         and then (if Right = 0.0 then "**"'Result = 1.0)
         and then (if Right = 1.0 then "**"'Result = Left)
         and then (if Left  = 1.0 then "**"'Result = 1.0)
--- 75,97 ----
         and then (if X >= Float_Type'Succ (0.0) then Sqrt'Result > 0.0);
  
     function Log (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X > 0.0,
!      Post   => (if X = 1.0 then Log'Result = 0.0);
  
     function Log (X, Base : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X > 0.0 and Base > 0.0 and Base /= 1.0,
!      Post   => (if X = 1.0 then Log'Result = 0.0);
  
     function Exp (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Post   => (if X = 0.0 then Exp'Result = 1.0);
  
     function "**" (Left, Right : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => (if Left = 0.0 then Right > 0.0) and Left >= 0.0,
!      Post   => "**"'Result >= 0.0
         and then (if Right = 0.0 then "**"'Result = 1.0)
         and then (if Right = 1.0 then "**"'Result = Left)
         and then (if Left  = 1.0 then "**"'Result = 1.0)
*************** is
*** 94,208 ****
  
     function Sin (X : Float_Type'Base) return Float_Type'Base with
       Inline,
!      Post => Sin'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Sin'Result = 0.0);
  
     function Sin (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre  => Cycle > 0.0,
!      Post => Sin'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Sin'Result = 0.0);
  
     function Cos (X : Float_Type'Base) return Float_Type'Base with
       Inline,
!      Post => Cos'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Cos'Result = 1.0);
  
     function Cos (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre  => Cycle > 0.0,
!      Post => Cos'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Cos'Result = 1.0);
  
     function Tan (X : Float_Type'Base) return Float_Type'Base with
!      Post => (if X = 0.0 then Tan'Result = 0.0);
  
     function Tan (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre  => Cycle > 0.0
         and then abs Float_Type'Base'Remainder (X, Cycle) /= 0.25 * Cycle,
!      Post => (if X = 0.0 then Tan'Result = 0.0);
  
     function Cot (X : Float_Type'Base) return Float_Type'Base with
!      Pre => X /= 0.0;
  
     function Cot (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre => Cycle > 0.0
         and then X /= 0.0
         and then Float_Type'Base'Remainder (X, Cycle) /= 0.0
         and then abs Float_Type'Base'Remainder (X, Cycle) /= 0.5 * Cycle;
  
     function Arcsin (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => abs X <= 1.0,
!      Post => (if X = 0.0 then Arcsin'Result = 0.0);
  
     function Arcsin (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre  => Cycle > 0.0 and abs X <= 1.0,
!      Post => (if X = 0.0 then Arcsin'Result = 0.0);
  
     function Arccos (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => abs X <= 1.0,
!      Post => (if X = 1.0 then Arccos'Result = 0.0);
  
     function Arccos (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Pre  => Cycle > 0.0 and abs X <= 1.0,
!      Post => (if X = 1.0 then Arccos'Result = 0.0);
  
     function Arctan
       (Y : Float_Type'Base;
        X : Float_Type'Base := 1.0) return Float_Type'Base
     with
!      Pre  => X /= 0.0 or Y /= 0.0,
!      Post => (if X > 0.0 and then Y = 0.0 then Arctan'Result = 0.0);
  
     function Arctan
       (Y     : Float_Type'Base;
        X     : Float_Type'Base := 1.0;
        Cycle : Float_Type'Base) return Float_Type'Base
     with
!      Pre  => Cycle > 0.0 and (X /= 0.0 or Y /= 0.0),
!      Post => (if X > 0.0 and then Y = 0.0 then Arctan'Result = 0.0);
  
     function Arccot
       (X   : Float_Type'Base;
        Y   : Float_Type'Base := 1.0) return Float_Type'Base
     with
!      Pre  => X /= 0.0 or Y /= 0.0,
!      Post => (if X > 0.0 and then Y = 0.0 then Arccot'Result = 0.0);
  
     function Arccot
       (X     : Float_Type'Base;
        Y     : Float_Type'Base := 1.0;
        Cycle : Float_Type'Base) return Float_Type'Base
     with
!      Pre  => Cycle > 0.0 and (X /= 0.0 or Y /= 0.0),
!      Post => (if X > 0.0 and then Y = 0.0 then Arccot'Result = 0.0);
  
     function Sinh (X : Float_Type'Base) return Float_Type'Base with
       Post => (if X = 0.0 then Sinh'Result = 0.0);
  
     function Cosh (X : Float_Type'Base) return Float_Type'Base with
!      Post => Cosh'Result >= 1.0
         and then (if X = 0.0 then Cosh'Result = 1.0);
  
     function Tanh (X : Float_Type'Base) return Float_Type'Base with
!      Post => Tanh'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Tanh'Result = 0.0);
  
     function Coth (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => X /= 0.0,
!      Post => abs Coth'Result >= 1.0;
  
     function Arcsinh (X : Float_Type'Base) return Float_Type'Base with
!      Post => (if X = 0.0 then Arcsinh'Result = 0.0);
  
     function Arccosh (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => X >= 1.0,
!      Post => Arccosh'Result >= 0.0
         and then (if X = 1.0 then Arccosh'Result = 0.0);
  
     function Arctanh (X : Float_Type'Base) return Float_Type'Base with
!      Pre  => abs X < 1.0,
!      Post => (if X = 0.0 then Arctanh'Result = 0.0);
  
     function Arccoth (X : Float_Type'Base) return Float_Type'Base with
!      Pre => abs X > 1.0;
  
  end Ada.Numerics.Generic_Elementary_Functions;
--- 99,236 ----
  
     function Sin (X : Float_Type'Base) return Float_Type'Base with
       Inline,
!      Global => null,
!      Post   => Sin'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Sin'Result = 0.0);
  
     function Sin (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0,
!      Post   => Sin'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Sin'Result = 0.0);
  
     function Cos (X : Float_Type'Base) return Float_Type'Base with
       Inline,
!      Global => null,
!      Post   => Cos'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Cos'Result = 1.0);
  
     function Cos (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0,
!      Post   => Cos'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Cos'Result = 1.0);
  
     function Tan (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Post   => (if X = 0.0 then Tan'Result = 0.0);
  
     function Tan (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0
         and then abs Float_Type'Base'Remainder (X, Cycle) /= 0.25 * Cycle,
!      Post   => (if X = 0.0 then Tan'Result = 0.0);
  
     function Cot (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X /= 0.0;
  
     function Cot (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0
         and then X /= 0.0
         and then Float_Type'Base'Remainder (X, Cycle) /= 0.0
         and then abs Float_Type'Base'Remainder (X, Cycle) /= 0.5 * Cycle;
  
     function Arcsin (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => abs X <= 1.0,
!      Post   => (if X = 0.0 then Arcsin'Result = 0.0);
  
     function Arcsin (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0 and abs X <= 1.0,
!      Post   => (if X = 0.0 then Arcsin'Result = 0.0);
  
     function Arccos (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => abs X <= 1.0,
!      Post   => (if X = 1.0 then Arccos'Result = 0.0);
  
     function Arccos (X, Cycle : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => Cycle > 0.0 and abs X <= 1.0,
!      Post   => (if X = 1.0 then Arccos'Result = 0.0);
  
     function Arctan
       (Y : Float_Type'Base;
        X : Float_Type'Base := 1.0) return Float_Type'Base
     with
!      Global => null,
!      Pre    => X /= 0.0 or Y /= 0.0,
!      Post   => (if X > 0.0 and then Y = 0.0 then Arctan'Result = 0.0);
  
     function Arctan
       (Y     : Float_Type'Base;
        X     : Float_Type'Base := 1.0;
        Cycle : Float_Type'Base) return Float_Type'Base
     with
!      Global => null,
!      Pre    => Cycle > 0.0 and (X /= 0.0 or Y /= 0.0),
!      Post   => (if X > 0.0 and then Y = 0.0 then Arctan'Result = 0.0);
  
     function Arccot
       (X   : Float_Type'Base;
        Y   : Float_Type'Base := 1.0) return Float_Type'Base
     with
!      Global => null,
!      Pre    => X /= 0.0 or Y /= 0.0,
!      Post   => (if X > 0.0 and then Y = 0.0 then Arccot'Result = 0.0);
  
     function Arccot
       (X     : Float_Type'Base;
        Y     : Float_Type'Base := 1.0;
        Cycle : Float_Type'Base) return Float_Type'Base
     with
!      Global => null,
!      Pre    => Cycle > 0.0 and (X /= 0.0 or Y /= 0.0),
!      Post   => (if X > 0.0 and then Y = 0.0 then Arccot'Result = 0.0);
  
     function Sinh (X : Float_Type'Base) return Float_Type'Base with
       Post => (if X = 0.0 then Sinh'Result = 0.0);
  
     function Cosh (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Post   => Cosh'Result >= 1.0
         and then (if X = 0.0 then Cosh'Result = 1.0);
  
     function Tanh (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Post   => Tanh'Result in -1.0 .. 1.0
         and then (if X = 0.0 then Tanh'Result = 0.0);
  
     function Coth (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X /= 0.0,
!      Post   => abs Coth'Result >= 1.0;
  
     function Arcsinh (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Post   => (if X = 0.0 then Arcsinh'Result = 0.0);
  
     function Arccosh (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => X >= 1.0,
!      Post   => Arccosh'Result >= 0.0
         and then (if X = 1.0 then Arccosh'Result = 0.0);
  
     function Arctanh (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => abs X < 1.0,
!      Post   => (if X = 0.0 then Arctanh'Result = 0.0);
  
     function Arccoth (X : Float_Type'Base) return Float_Type'Base with
!      Global => null,
!      Pre    => abs X > 1.0;
  
  end Ada.Numerics.Generic_Elementary_Functions;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngrear.adb gcc-15.1.0/gcc/ada/libgnat/a-ngrear.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ngrear.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngrear.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Generic_Real_A
*** 85,94 ****
  
     function Is_Symmetric (A : Real_Matrix) return Boolean is
       (Transpose (A) = A);
!    --  Return True iff A is symmetric, see RM G.3.1 (90).
  
     function Is_Tiny (Value, Compared_To : Real) return Boolean is
!      (abs Compared_To + 100.0 * abs (Value) = abs Compared_To);
     --  Return True iff the Value is much smaller in magnitude than the least
     --  significant digit of Compared_To.
  
--- 85,94 ----
  
     function Is_Symmetric (A : Real_Matrix) return Boolean is
       (Transpose (A) = A);
!    --  Return True iff A is symmetric, see RM G.3.1 (90)
  
     function Is_Tiny (Value, Compared_To : Real) return Boolean is
!      (abs Compared_To + 100.0 * abs Value = abs Compared_To);
     --  Return True iff the Value is much smaller in magnitude than the least
     --  significant digit of Compared_To.
  
*************** package body Ada.Numerics.Generic_Real_A
*** 96,102 ****
       (A               : Real_Matrix;
        Values          : out Real_Vector;
        Vectors         : out Real_Matrix;
!       Compute_Vectors : Boolean := True);
     --  Perform Jacobi's eigensystem algorithm on real symmetric matrix A
  
     function Length is new Square_Matrix_Length (Real'Base, Real_Matrix);
--- 96,102 ----
       (A               : Real_Matrix;
        Values          : out Real_Vector;
        Vectors         : out Real_Matrix;
!       Compute_Vectors : Boolean);
     --  Perform Jacobi's eigensystem algorithm on real symmetric matrix A
  
     function Length is new Square_Matrix_Length (Real'Base, Real_Matrix);
*************** package body Ada.Numerics.Generic_Real_A
*** 104,114 ****
     --  not a square matrix, and otherwise returns its length.
  
     procedure Rotate (X, Y : in out Real; Sin, Tau : Real);
!    --  Perform a Givens rotation
  
     procedure Sort_Eigensystem
!      (Values  : in out Real_Vector;
!       Vectors : in out Real_Matrix);
     --  Sort Values and associated Vectors by decreasing absolute value
  
     procedure Swap (Left, Right : in out Real);
--- 104,115 ----
     --  not a square matrix, and otherwise returns its length.
  
     procedure Rotate (X, Y : in out Real; Sin, Tau : Real);
!    --  Perform a Givens rotation of angle Theta given by sin and sin/(1 + cos)
  
     procedure Sort_Eigensystem
!      (Values          : in out Real_Vector;
!       Vectors         : in out Real_Matrix;
!       Compute_Vectors : Boolean);
     --  Sort Values and associated Vectors by decreasing absolute value
  
     procedure Swap (Left, Right : in out Real);
*************** package body Ada.Numerics.Generic_Real_A
*** 486,492 ****
     is
     begin
        Jacobi (A, Values, Vectors, Compute_Vectors => True);
!       Sort_Eigensystem (Values, Vectors);
     end Eigensystem;
  
     -----------------
--- 487,493 ----
     is
     begin
        Jacobi (A, Values, Vectors, Compute_Vectors => True);
!       Sort_Eigensystem (Values, Vectors, Compute_Vectors => True);
     end Eigensystem;
  
     -----------------
*************** package body Ada.Numerics.Generic_Real_A
*** 500,506 ****
              Vectors : Real_Matrix (1 .. 0, 1 .. 0);
           begin
              Jacobi (A, Values, Vectors, Compute_Vectors => False);
!             Sort_Eigensystem (Values, Vectors);
           end;
        end return;
     end Eigenvalues;
--- 501,507 ----
              Vectors : Real_Matrix (1 .. 0, 1 .. 0);
           begin
              Jacobi (A, Values, Vectors, Compute_Vectors => False);
!             Sort_Eigensystem (Values, Vectors, Compute_Vectors => False);
           end;
        end return;
     end Eigenvalues;
*************** package body Ada.Numerics.Generic_Real_A
*** 522,536 ****
       (A               : Real_Matrix;
        Values          : out Real_Vector;
        Vectors         : out Real_Matrix;
!       Compute_Vectors : Boolean := True)
     is
!       --  This subprogram uses Carl Gustav Jacob Jacobi's iterative method
!       --  for computing eigenvalues and eigenvectors and is based on
        --  Rutishauser's implementation.
  
        --  The given real symmetric matrix is transformed iteratively to
        --  diagonal form through a sequence of appropriately chosen elementary
!       --  orthogonal transformations, called Jacobi rotations here.
  
        --  The Jacobi method produces a systematic decrease of the sum of the
        --  squares of off-diagonal elements. Convergence to zero is quadratic,
--- 523,537 ----
       (A               : Real_Matrix;
        Values          : out Real_Vector;
        Vectors         : out Real_Matrix;
!       Compute_Vectors : Boolean)
     is
!       --  This subprogram uses Carl Gustav Jacob Jacobi's cyclic iterative
!       --  method for computing eigenvalues and eigenvectors and is based on
        --  Rutishauser's implementation.
  
        --  The given real symmetric matrix is transformed iteratively to
        --  diagonal form through a sequence of appropriately chosen elementary
!       --  orthogonal transformations, called Jacobi rotations.
  
        --  The Jacobi method produces a systematic decrease of the sum of the
        --  squares of off-diagonal elements. Convergence to zero is quadratic,
*************** package body Ada.Numerics.Generic_Real_A
*** 541,581 ****
        --  best choice here, even though for large matrices other methods will
        --  be significantly more efficient in both time and space.
  
!       --  While the eigensystem computations are absolutely foolproof for all
        --  real symmetric matrices, in presence of invalid values, or similar
!       --  exceptional situations it might not. In such cases the results cannot
!       --  be trusted and Constraint_Error is raised.
  
        --  Note: this implementation needs temporary storage for 2 * N + N**2
        --        values of type Real.
  
!       Max_Iterations  : constant := 50;
!       N               : constant Natural := Length (A);
  
        subtype Square_Matrix is Real_Matrix (1 .. N, 1 .. N);
  
!       --  In order to annihilate the M (Row, Col) element, the
!       --  rotation parameters Cos and Sin are computed as
!       --  follows:
  
!       --    Theta = Cot (2.0 * Phi)
!       --          = (Diag (Col) - Diag (Row)) / (2.0 * M (Row, Col))
  
!       --  Then Tan (Phi) as the smaller root (in modulus) of
  
!       --    T**2 + 2 * T * Theta = 1 (or 0.5 / Theta, if Theta is large)
  
!       function Compute_Tan (Theta : Real) return Real is
!          (Real'Copy_Sign (1.0 / (abs Theta + Sqrt (1.0 + Theta**2)), Theta));
  
        function Compute_Tan (P, H : Real) return Real is
!          (if Is_Tiny (P, Compared_To => H) then P / H
!           else Compute_Tan (Theta => H / (2.0 * P)));
        pragma Annotate
          (CodePeer, False_Positive, "divide by zero", "H, P /= 0");
  
        function Sum_Strict_Upper (M : Square_Matrix) return Real;
!       --  Return the sum of all elements in the strict upper triangle of M
  
        ----------------------
        -- Sum_Strict_Upper --
--- 542,585 ----
        --  best choice here, even though for large matrices other methods will
        --  be significantly more efficient in both time and space.
  
!       --  While the eigensystem computation is absolutely foolproof for all
        --  real symmetric matrices, in presence of invalid values, or similar
!       --  exceptional situations, it may not be. In such cases, the results
!       --  cannot be trusted and Constraint_Error is raised.
  
        --  Note: this implementation needs temporary storage for 2 * N + N**2
        --        values of type Real.
  
!       Max_Iterations : constant := 50;
!       N              : constant Natural := Length (A);
  
        subtype Square_Matrix is Real_Matrix (1 .. N, 1 .. N);
  
!       --  In order to annihilate the M (Row, Col) element, the rotation angle
!       --  Theta is chosen as follows:
  
!       --   Cot (2.0 * Theta) = (Diag (Col) - Diag (Row)) / (2.0 * M (Row, Col))
  
!       --  If C = Cot (2.0 * Theta), then Tan (Theta) is computed as the smaller
!       --  root (in modulus) of:
  
!       --    X**2 + 2 * C * X - 1 = 0
  
!       --  or else as 0.5 / C, if C is large.
! 
!       function Compute_Tan (C : Real) return Real is
!         (Real'Copy_Sign (1.0 / (abs C + Sqrt (1.0 + C**2)), C));
  
        function Compute_Tan (P, H : Real) return Real is
!         (if Is_Tiny (P, Compared_To => H)
!          then P / H
!          else Compute_Tan (C => H / (2.0 * P)));
        pragma Annotate
          (CodePeer, False_Positive, "divide by zero", "H, P /= 0");
  
        function Sum_Strict_Upper (M : Square_Matrix) return Real;
!       --  Return the sum of the absolute value of all the elements in the
!       --  strict upper triangle of M.
  
        ----------------------
        -- Sum_Strict_Upper --
*************** package body Ada.Numerics.Generic_Real_A
*** 594,604 ****
           return Sum;
        end Sum_Strict_Upper;
  
        M         : Square_Matrix := A; --  Work space for solving eigensystem
-       Threshold : Real;
-       Sum       : Real;
        Diag      : Real_Vector (1 .. N);
        Diag_Adj  : Real_Vector (1 .. N);
  
        --  The vector Diag_Adj indicates the amount of change in each value,
        --  while Diag tracks the value itself and Values holds the values as
--- 598,610 ----
           return Sum;
        end Sum_Strict_Upper;
  
+       --  Local variables
+ 
        M         : Square_Matrix := A; --  Work space for solving eigensystem
        Diag      : Real_Vector (1 .. N);
        Diag_Adj  : Real_Vector (1 .. N);
+       Sum       : Real;
+       Threshold : Real;
  
        --  The vector Diag_Adj indicates the amount of change in each value,
        --  while Diag tracks the value itself and Values holds the values as
*************** package body Ada.Numerics.Generic_Real_A
*** 620,641 ****
           raise Constraint_Error with "matrix not symmetric";
        end if;
  
        --  Note: Only the locally declared matrix M and vectors (Diag, Diag_Adj)
        --        have lower bound equal to 1. The Vectors matrix may have
        --        different bounds, so take care indexing elements. Assignment
        --        as a whole is fine as sliding is automatic in that case.
  
!       Vectors := (if not Compute_Vectors then [1 .. 0 => [1 .. 0 => 0.0]]
!                   else Unit_Matrix (Vectors'Length (1), Vectors'Length (2)));
!       Values := Diagonal (M);
  
        Sweep : for Iteration in 1 .. Max_Iterations loop
  
!          --  The first three iterations, perform rotation for any non-zero
!          --  element. After this, rotate only for those that are not much
!          --  smaller than the average off-diagnal element. After the fifth
!          --  iteration, additionally zero out off-diagonal elements that are
!          --  very small compared to elements on the diagonal with the same
           --  column or row index.
  
           Sum := Sum_Strict_Upper (M);
--- 626,649 ----
           raise Constraint_Error with "matrix not symmetric";
        end if;
  
+       Values := Diagonal (M);
+ 
        --  Note: Only the locally declared matrix M and vectors (Diag, Diag_Adj)
        --        have lower bound equal to 1. The Vectors matrix may have
        --        different bounds, so take care indexing elements. Assignment
        --        as a whole is fine as sliding is automatic in that case.
  
!       Vectors := (if Compute_Vectors
!                   then Unit_Matrix (N)
!                   else [1 .. 0 => [1 .. 0 => 0.0]]);
  
        Sweep : for Iteration in 1 .. Max_Iterations loop
  
!          --  During the first three iterations, perform the rotation only for
!          --  elements that are not much smaller than the average off-diagonal
!          --  element. After this, rotate for any non-zero elements. After the
!          --  fifth iteration, additionally zero out off-diagonal elements that
!          --  are very small compared to elements on the diagonal with the same
           --  column or row index.
  
           Sum := Sum_Strict_Upper (M);
*************** package body Ada.Numerics.Generic_Real_A
*** 644,651 ****
  
           Threshold := (if Iteration < 4 then 0.2 * Sum / Real (N**2) else 0.0);
  
!          --  Iterate over all off-diagonal elements, rotating any that have
!          --  an absolute value that exceeds the threshold.
  
           Diag := Values;
           Diag_Adj := [others => 0.0]; -- Accumulates adjustments to Diag
--- 652,659 ----
  
           Threshold := (if Iteration < 4 then 0.2 * Sum / Real (N**2) else 0.0);
  
!          --  Iterate over all off-diagonal elements, rotating any that have an
!          --  absolute value that exceeds the threshold.
  
           Diag := Values;
           Diag_Adj := [others => 0.0]; -- Accumulates adjustments to Diag
*************** package body Ada.Numerics.Generic_Real_A
*** 653,663 ****
           for Row in 1 .. N - 1 loop
              for Col in Row + 1 .. N loop
  
!                --  If, before the rotation M (Row, Col) is tiny compared to
                 --  Diag (Row) and Diag (Col), rotation is skipped. This is
                 --  meaningful, as it produces no larger error than would be
                 --  produced anyhow if the rotation had been performed.
!                --  Suppress this optimization in the first four sweeps, so
                 --  that this procedure can be used for computing eigenvectors
                 --  of perturbed diagonal matrices.
  
--- 661,671 ----
           for Row in 1 .. N - 1 loop
              for Col in Row + 1 .. N loop
  
!                --  If, before the rotation, M (Row, Col) is tiny compared to
                 --  Diag (Row) and Diag (Col), rotation is skipped. This is
                 --  meaningful, as it produces no larger error than would be
                 --  produced anyhow if the rotation had been performed.
!                --  Suppress this optimization in the first four iterations, so
                 --  that this procedure can be used for computing eigenvectors
                 --  of perturbed diagonal matrices.
  
*************** package body Ada.Numerics.Generic_Real_A
*** 669,676 ****
  
                 elsif abs M (Row, Col) > Threshold then
                    Perform_Rotation : declare
!                      Tan : constant Real := Compute_Tan (M (Row, Col),
!                                                Diag (Col) - Diag (Row));
                       Cos : constant Real := 1.0 / Sqrt (1.0 + Tan**2);
                       Sin : constant Real := Tan * Cos;
                       Tau : constant Real := Sin / (1.0 + Cos);
--- 677,684 ----
  
                 elsif abs M (Row, Col) > Threshold then
                    Perform_Rotation : declare
!                      Tan : constant Real :=
!                        Compute_Tan (M (Row, Col), Diag (Col) - Diag (Row));
                       Cos : constant Real := 1.0 / Sqrt (1.0 + Tan**2);
                       Sin : constant Real := Tan * Cos;
                       Tau : constant Real := Sin / (1.0 + Cos);
*************** package body Ada.Numerics.Generic_Real_A
*** 709,715 ****
           Values := Values + Diag_Adj;
        end loop Sweep;
  
!       --  All normal matrices with valid values should converge perfectly.
  
        if Sum /= 0.0 then
           raise Constraint_Error with "eigensystem solution does not converge";
--- 717,723 ----
           Values := Values + Diag_Adj;
        end loop Sweep;
  
!       --  All normal matrices with valid values should converge perfectly
  
        if Sum /= 0.0 then
           raise Constraint_Error with "eigensystem solution does not converge";
*************** package body Ada.Numerics.Generic_Real_A
*** 731,738 ****
     ----------------------
  
     procedure Sort_Eigensystem
!      (Values  : in out Real_Vector;
!       Vectors : in out Real_Matrix)
     is
        procedure Swap (Left, Right : Integer);
        --  Swap Values (Left) with Values (Right), and also swap the
--- 739,747 ----
     ----------------------
  
     procedure Sort_Eigensystem
!      (Values          : in out Real_Vector;
!       Vectors         : in out Real_Matrix;
!       Compute_Vectors : Boolean)
     is
        procedure Swap (Left, Right : Integer);
        --  Swap Values (Left) with Values (Right), and also swap the
*************** package body Ada.Numerics.Generic_Real_A
*** 748,755 ****
        procedure Swap (Left, Right : Integer) is
        begin
           Swap (Values (Left), Values (Right));
!          Swap_Column (Vectors, Left - Values'First + Vectors'First (2),
!                                Right - Values'First + Vectors'First (2));
        end Swap;
  
     begin
--- 757,766 ----
        procedure Swap (Left, Right : Integer) is
        begin
           Swap (Values (Left), Values (Right));
!          if Compute_Vectors then
!             Swap_Column (Vectors, Left - Values'First + Vectors'First (2),
!                                   Right - Values'First + Vectors'First (2));
!          end if;
        end Swap;
  
     begin
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ngrear.ads gcc-15.1.0/gcc/ada/libgnat/a-ngrear.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ngrear.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ngrear.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuauco.ads gcc-15.1.0/gcc/ada/libgnat/a-nuauco.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuauco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuauco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuauco__x86.ads gcc-15.1.0/gcc/ada/libgnat/a-nuauco__x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuauco__x86.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuauco__x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuaufl.ads gcc-15.1.0/gcc/ada/libgnat/a-nuaufl.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuaufl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuaufl.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (Intrinsic Version, Float)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (Intrinsic Version, Float)                        --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads gcc-15.1.0/gcc/ada/libgnat/a-nuaufl__simd.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuaufl__simd.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (Intrinsic/SIMD Version, Float)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (Intrinsic/SIMD Version, Float)                     --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads gcc-15.1.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (Double-based Version, Float)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Double-based Version, Float)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nubinu.ads gcc-15.1.0/gcc/ada/libgnat/a-nubinu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nubinu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nubinu.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,21 ****
--- 13,30 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package defines the base types used for big numbers in Ada as defined
+ --  by ARM A.5.5.
+ 
  package Ada.Numerics.Big_Numbers
    with Pure
  is
     subtype Field is Integer range 0 .. 255;
+    --  The width of a big number. This is used when converting
+    --  the internal representation into a string.
+ 
     subtype Number_Base is Integer range 2 .. 16;
+    --  The base of a big number. This is used when converting
+    --  the internal representation into a string.
+ 
  end Ada.Numerics.Big_Numbers;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nudira.adb gcc-15.1.0/gcc/ada/libgnat/a-nudira.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nudira.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nudira.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nudira.ads gcc-15.1.0/gcc/ada/libgnat/a-nudira.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nudira.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nudira.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,40 ****
--- 35,42 ----
  
  --  Note: the implementation used in this package is a version of the
  --  Mersenne Twister. See s-rannum.adb for details and references.
+ --  It is suitable for simulations, but should not be used as a cryptographic
+ --  pseudo-random source.
  
  with System.Random_Numbers;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuflra.adb gcc-15.1.0/gcc/ada/libgnat/a-nuflra.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-nuflra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuflra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-nuflra.ads gcc-15.1.0/gcc/ada/libgnat/a-nuflra.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-nuflra.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-nuflra.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-numaux.ads gcc-15.1.0/gcc/ada/libgnat/a-numaux.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-numaux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-numaux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-numeri.ads gcc-15.1.0/gcc/ada/libgnat/a-numeri.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-numeri.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-numeri.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package Ada.Numerics is
     pragma Pure;
  
     Argument_Error : exception;
  
     Pi : constant :=
            3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37511;
! 
!    --  ["03C0"] : constant := Pi;
!    --  This is the Greek letter Pi (for Ada 2005 AI-388). Note that it is
!    --  conforming to have this constant present even in Ada 95 mode, as there
!    --  is no way for a normal mode Ada 95 program to reference this identifier.
!    --  ???This is removed for now, because nobody uses it, and it causes
!    --  trouble for tools other than the compiler. If people want to use the
!    --  Greek letter in their programs, they can easily define it themselves.
  
     e : constant :=
           2.71828_18284_59045_23536_02874_71352_66249_77572_47093_69996;
  
  end Ada.Numerics;
--- 13,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package is the top of the Ada.Numerics hierarchy as defined by ARM
+ --  A.5. It provides an exception used by all children and basic mathematical
+ --  constants.
+ 
  package Ada.Numerics is
     pragma Pure;
  
     Argument_Error : exception;
+    --  The Argument_Error exception is raised whenever an invalid
+    --  value has passed as an argument to the subprograms defined
+    --  this this package and its children.
  
     Pi : constant :=
            3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37511;
!    --  The mathematical constant Pi
  
     e : constant :=
           2.71828_18284_59045_23536_02874_71352_66249_77572_47093_69996;
+    --  The mathematical constant e
  
  end Ada.Numerics;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgbk.adb gcc-15.1.0/gcc/ada/libgnat/a-rbtgbk.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgbk.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgbk.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgbk.ads gcc-15.1.0/gcc/ada/libgnat/a-rbtgbk.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgbk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgbk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgbo.adb gcc-15.1.0/gcc/ada/libgnat/a-rbtgbo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgbo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgbo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgbo.ads gcc-15.1.0/gcc/ada/libgnat/a-rbtgbo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgbo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgbo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgso.adb gcc-15.1.0/gcc/ada/libgnat/a-rbtgso.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-rbtgso.ads gcc-15.1.0/gcc/ada/libgnat/a-rbtgso.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-rbtgso.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-rbtgso.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sbecin.adb gcc-15.1.0/gcc/ada/libgnat/a-sbecin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sbecin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sbecin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sbecin.ads gcc-15.1.0/gcc/ada/libgnat/a-sbecin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sbecin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sbecin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sbhcin.adb gcc-15.1.0/gcc/ada/libgnat/a-sbhcin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sbhcin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sbhcin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sbhcin.ads gcc-15.1.0/gcc/ada/libgnat/a-sbhcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sbhcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sbhcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sblcin.adb gcc-15.1.0/gcc/ada/libgnat/a-sblcin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sblcin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sblcin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sblcin.ads gcc-15.1.0/gcc/ada/libgnat/a-sblcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sblcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sblcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-secain.adb gcc-15.1.0/gcc/ada/libgnat/a-secain.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-secain.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-secain.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-secain.ads gcc-15.1.0/gcc/ada/libgnat/a-secain.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-secain.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-secain.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sequio.adb gcc-15.1.0/gcc/ada/libgnat/a-sequio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sequio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sequio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sequio.ads gcc-15.1.0/gcc/ada/libgnat/a-sequio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sequio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sequio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sfecin.ads gcc-15.1.0/gcc/ada/libgnat/a-sfecin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sfecin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sfecin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sfhcin.ads gcc-15.1.0/gcc/ada/libgnat/a-sfhcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sfhcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sfhcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sflcin.ads gcc-15.1.0/gcc/ada/libgnat/a-sflcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sflcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sflcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-shcain.adb gcc-15.1.0/gcc/ada/libgnat/a-shcain.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-shcain.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-shcain.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-shcain.ads gcc-15.1.0/gcc/ada/libgnat/a-shcain.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-shcain.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-shcain.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-siocst.adb gcc-15.1.0/gcc/ada/libgnat/a-siocst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-siocst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-siocst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-siocst.ads gcc-15.1.0/gcc/ada/libgnat/a-siocst.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-siocst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-siocst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-slcain.adb gcc-15.1.0/gcc/ada/libgnat/a-slcain.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-slcain.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-slcain.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-slcain.ads gcc-15.1.0/gcc/ada/libgnat/a-slcain.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-slcain.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-slcain.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ssicst.adb gcc-15.1.0/gcc/ada/libgnat/a-ssicst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ssicst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ssicst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ssicst.ads gcc-15.1.0/gcc/ada/libgnat/a-ssicst.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ssicst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ssicst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stboha.adb gcc-15.1.0/gcc/ada/libgnat/a-stboha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stboha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stboha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbubo.adb gcc-15.1.0/gcc/ada/libgnat/a-stbubo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stbubo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbubo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbubo.ads gcc-15.1.0/gcc/ada/libgnat/a-stbubo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stbubo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbubo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbufi.adb gcc-15.1.0/gcc/ada/libgnat/a-stbufi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stbufi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbufi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbufi.ads gcc-15.1.0/gcc/ada/libgnat/a-stbufi.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stbufi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbufi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbufo.adb gcc-15.1.0/gcc/ada/libgnat/a-stbufo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stbufo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbufo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbufo.ads gcc-15.1.0/gcc/ada/libgnat/a-stbufo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stbufo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbufo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbuun.adb gcc-15.1.0/gcc/ada/libgnat/a-stbuun.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stbuun.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbuun.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbuut.adb gcc-15.1.0/gcc/ada/libgnat/a-stbuut.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stbuut.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbuut.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stbuut.ads gcc-15.1.0/gcc/ada/libgnat/a-stbuut.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stbuut.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stbuut.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Strings.UTF_Encoding.Wide_Wide_
*** 33,39 ****
  
  package Ada.Strings.Text_Buffers.Utils with Pure is
  
!    --  Ada.Strings.Text_Buffers is a predefined unit (see Ada RM A.4.12).
     --  This is a GNAT-defined child unit of that parent.
  
     subtype Character_7 is
--- 33,39 ----
  
  package Ada.Strings.Text_Buffers.Utils with Pure is
  
!    --  Ada.Strings.Text_Buffers is a predefined unit (see RM A.4.12).
     --  This is a GNAT-defined child unit of that parent.
  
     subtype Character_7 is
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stmaco.ads gcc-15.1.0/gcc/ada/libgnat/a-stmaco.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stmaco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stmaco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-storio.adb gcc-15.1.0/gcc/ada/libgnat/a-storio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-storio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-storio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strbou.adb gcc-15.1.0/gcc/ada/libgnat/a-strbou.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strbou.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strbou.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strbou.ads gcc-15.1.0/gcc/ada/libgnat/a-strbou.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strbou.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strbou.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 127,132 ****
--- 127,135 ----
        --  * If Drop=Error, then Strings.Length_Error is propagated.
  
        function To_String (Source : Bounded_String) return String with
+         Post   =>
+           To_String'Result'First = 1
+             and then To_String'Result'Length = Length (Source),
          Global => null;
        --  To_String returns the String value with lower bound 1
        --  represented by Source. If B is a Bounded_String, then
*************** is
*** 781,788 ****
                           then J <= Index'Result - 1
                           else J - 1 in Index'Result
                                         .. Length (Source) - Pattern'Length)
!                      then not (Search.Match
!                        (To_String (Source), Pattern, Mapping, J)))),
  
             --  Otherwise, 0 is returned
  
--- 784,791 ----
                           then J <= Index'Result - 1
                           else J - 1 in Index'Result
                                         .. Length (Source) - Pattern'Length)
!                      then not Search.Match
!                        (To_String (Source), Pattern, Mapping, J))),
  
             --  Otherwise, 0 is returned
  
*************** is
*** 834,841 ****
                           then J <= Index'Result - 1
                           else J - 1 in Index'Result
                                         .. Length (Source) - Pattern'Length)
!                      then not (Search.Match
!                        (To_String (Source), Pattern, Mapping, J)))),
  
             --  Otherwise, 0 is returned
  
--- 837,844 ----
                           then J <= Index'Result - 1
                           else J - 1 in Index'Result
                                         .. Length (Source) - Pattern'Length)
!                      then not Search.Match
!                        (To_String (Source), Pattern, Mapping, J))),
  
             --  Otherwise, 0 is returned
  
*************** is
*** 940,947 ****
                           then J in From .. Index'Result - 1
                           else J - 1 in Index'Result
                                         .. From - Pattern'Length)
!                      then not (Search.Match
!                        (To_String (Source), Pattern, Mapping, J)))),
  
             --  Otherwise, 0 is returned
  
--- 943,950 ----
                           then J in From .. Index'Result - 1
                           else J - 1 in Index'Result
                                         .. From - Pattern'Length)
!                      then not Search.Match
!                        (To_String (Source), Pattern, Mapping, J))),
  
             --  Otherwise, 0 is returned
  
*************** is
*** 1004,1011 ****
                           then J in From .. Index'Result - 1
                           else J - 1 in Index'Result
                                         .. From - Pattern'Length)
!                      then not (Search.Match
!                        (To_String (Source), Pattern, Mapping, J)))),
  
             --  Otherwise, 0 is returned
  
--- 1007,1014 ----
                           then J in From .. Index'Result - 1
                           else J - 1 in Index'Result
                                         .. From - Pattern'Length)
!                      then not Search.Match
!                        (To_String (Source), Pattern, Mapping, J))),
  
             --  Otherwise, 0 is returned
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stream.adb gcc-15.1.0/gcc/ada/libgnat/a-stream.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stream.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stream.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2013-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stream.ads gcc-15.1.0/gcc/ada/libgnat/a-stream.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stream.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stream.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 84,87 ****
--- 84,90 ----
     for Stream_Element_Array'Read use Read_SEA;
     for Stream_Element_Array'Write use Write_SEA;
  
+    pragma Universal_Aliasing (Stream_Element);
+    --  This type is used to stream any other type
+ 
  end Ada.Streams;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strfix.adb gcc-15.1.0/gcc/ada/libgnat/a-strfix.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strfix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strfix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Fixed with SPAR
*** 266,301 ****
              return Result_Type (Source);
           end;
  
-       elsif From not in Source'Range
-         or else Through > Source'Last
-       then
-          pragma Annotate
-            (CodePeer, False_Positive,
-             "test always false", "self fullfilling prophecy");
- 
-          --  In most cases this raises an exception, but the case of deleting
-          --  a null string at the end of the current one is a special-case, and
-          --  reflects the equivalence with Replace_String (RM A.4.3 (86/3)).
- 
-          if From = Source'Last + 1 and then From = Through then
-             return Source;
-          else
-             raise Index_Error;
-          end if;
- 
        else
           declare
!             Front : constant Integer := From - Source'First;
  
           begin
!             return Result : String (1 .. Source'Length - (Through - From + 1))
                with Relaxed_Initialization
              do
!                Result (1 .. Front) :=
                   Source (Source'First .. From - 1);
  
                 if Through < Source'Last then
!                   Result (Front + 1 .. Result'Last) :=
                      Source (Through + 1 .. Source'Last);
                 end if;
              end return;
--- 266,292 ----
              return Result_Type (Source);
           end;
  
        else
           declare
!             Front_Len     : constant Integer :=
!               Integer'Max (0, From - Source'First);
!             --  Length of prefix of Source copied to result
! 
!             Back_Len      : constant Integer :=
!               Integer'Max (0, Source'Last - Through);
!             --  Length of suffix of Source copied to result
  
+             Result_Length : constant Integer := Front_Len + Back_Len;
+             --  Length of result
           begin
!             return Result : String (1 .. Result_Length)
                with Relaxed_Initialization
              do
!                Result (1 .. Front_Len) :=
                   Source (Source'First .. From - 1);
  
                 if Through < Source'Last then
!                   Result (Front_Len + 1 .. Result'Last) :=
                      Source (Through + 1 .. Source'Last);
                 end if;
              end return;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strfix.ads gcc-15.1.0/gcc/ada/libgnat/a-strfix.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strfix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strfix.ads	Fri Apr 25 08:18:00 2025
*************** is
*** 162,169 ****
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not (Ada.Strings.Search.Match
!                               (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 162,169 ----
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not Ada.Strings.Search.Match
!                              (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 225,232 ****
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not (Ada.Strings.Search.Match
!                               (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 225,232 ----
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not Ada.Strings.Search.Match
!                              (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 294,301 ****
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not (Ada.Strings.Search.Match
!                               (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 294,301 ----
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not Ada.Strings.Search.Match
!                              (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 349,356 ****
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not (Ada.Strings.Search.Match
!                               (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 349,356 ----
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not Ada.Strings.Search.Match
!                              (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 1061,1069 ****
        From    : Positive;
        Through : Natural) return String
     with
!      Pre            => (if From <= Through
!                         then (From in Source'Range
!                                 and then Through <= Source'Last)),
  
       --  Lower bound of the returned string is 1
  
--- 1061,1069 ----
        From    : Positive;
        Through : Natural) return String
     with
!      Pre            => From > Through
!        or else (From - 1 <= Source'Last
!                  and then Through >= Source'First - 1),
  
       --  Lower bound of the returned string is 1
  
*************** is
*** 1079,1090 ****
  
            --  Length of the returned string
  
!           Delete'Result'Length = Source'Length - (Through - From + 1)
  
              --  Elements before From are preserved
  
              and then
!               Delete'Result (1 .. From - Source'First)
                = Source (Source'First .. From - 1)
  
              --  If there are remaining characters after Through, they are
--- 1079,1092 ----
  
            --  Length of the returned string
  
!           Delete'Result'Length =
!             Integer'Max (0, From - Source'First)
!             + Integer'Max (Source'Last - Through, 0)
  
              --  Elements before From are preserved
  
              and then
!               Delete'Result (1 .. Integer'Max (0, From - Source'First))
                = Source (Source'First .. From - 1)
  
              --  If there are remaining characters after Through, they are
*************** is
*** 1092,1100 ****
  
              and then
                (if Through < Source'Last
!                then Delete'Result
!                       (From - Source'First + 1 .. Delete'Result'Last)
!                     = Source (Through + 1 .. Source'Last)),
  
          --  Otherwise, the returned string is Source with lower bound 1
  
--- 1094,1104 ----
  
              and then
                (if Through < Source'Last
!                then
!                  Delete'Result
!                    (Integer'Max (0, From - Source'First) + 1
!                     .. Delete'Result'Last)
!                  = Source (Through + 1 .. Source'Last)),
  
          --  Otherwise, the returned string is Source with lower bound 1
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strhas.adb gcc-15.1.0/gcc/ada/libgnat/a-strhas.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strhas.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strhas.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strmap.adb gcc-15.1.0/gcc/ada/libgnat/a-strmap.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strmap.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strmap.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 148,154 ****
  
           pragma Loop_Invariant (if Map = Identity then J = 0);
           pragma Loop_Invariant (J <= Character'Pos (C) + 1);
!          pragma Loop_Invariant (Result (1 .. J)'Initialized);
           pragma Loop_Invariant (for all K in 1 .. J => Result (K) <= C);
           pragma Loop_Invariant
             (SPARK_Proof_Sorted_Character_Sequence (Result (1 .. J)));
--- 148,154 ----
  
           pragma Loop_Invariant (if Map = Identity then J = 0);
           pragma Loop_Invariant (J <= Character'Pos (C) + 1);
!          pragma Loop_Invariant (for all K in 1 .. J => Result (K)'Initialized);
           pragma Loop_Invariant (for all K in 1 .. J => Result (K) <= C);
           pragma Loop_Invariant
             (SPARK_Proof_Sorted_Character_Sequence (Result (1 .. J)));
*************** is
*** 404,409 ****
--- 404,410 ----
           pragma Loop_Invariant
             (for all K in 1 .. J => Result (K) = Map (Domain (K)));
        end loop;
+       pragma Assert (Is_Domain (Map, Domain (1 .. J)));
  
        --  Show the equality of Domain and To_Domain(Map)
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strmap.ads gcc-15.1.0/gcc/ada/libgnat/a-strmap.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strmap.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strmap.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strsea.adb gcc-15.1.0/gcc/ada/libgnat/a-strsea.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strsea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strsea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Search with SPA
*** 71,77 ****
     is
        (if Test = Inside then
            Is_In (Element, Set)
!       else not (Is_In (Element, Set)));
  
     -----------
     -- Count --
--- 71,77 ----
     is
        (if Test = Inside then
            Is_In (Element, Set)
!       else not Is_In (Element, Set));
  
     -----------
     -- Count --
*************** package body Ada.Strings.Search with SPA
*** 125,131 ****
                 if Pattern (K) /= Value (Mapping,
                   Source (Ind + (K - Pattern'First)))
                 then
!                   pragma Assert (not (Match (Source, Pattern, Mapping, Ind)));
                    goto Cont;
                 end if;
  
--- 125,131 ----
                 if Pattern (K) /= Value (Mapping,
                   Source (Ind + (K - Pattern'First)))
                 then
!                   pragma Assert (not Match (Source, Pattern, Mapping, Ind));
                    goto Cont;
                 end if;
  
*************** package body Ada.Strings.Search with SPA
*** 188,194 ****
                 pragma Annotate (GNATprove, False_Positive,
                                  "call via access-to-subprogram",
                                  "function Mapping must always terminate");
!                pragma Assert (not (Match (Source, Pattern, Mapping, Ind)));
                 goto Cont;
              end if;
  
--- 188,194 ----
                 pragma Annotate (GNATprove, False_Positive,
                                  "call via access-to-subprogram",
                                  "function Mapping must always terminate");
!                pragma Assert (not Match (Source, Pattern, Mapping, Ind));
                 goto Cont;
              end if;
  
*************** package body Ada.Strings.Search with SPA
*** 280,286 ****
  
           pragma Loop_Invariant
             (for all K in Integer'Max (From, Source'First) .. J =>
!                 not (Belongs (Source (K), Set, Test)));
        end loop;
  
        --  Here if no token found
--- 280,286 ----
  
           pragma Loop_Invariant
             (for all K in Integer'Max (From, Source'First) .. J =>
!                 not Belongs (Source (K), Set, Test));
        end loop;
  
        --  Here if no token found
*************** package body Ada.Strings.Search with SPA
*** 323,329 ****
  
           pragma Loop_Invariant
             (for all K in Source'First .. J =>
!               not (Belongs (Source (K), Set, Test)));
        end loop;
  
        --  Here if no token found
--- 323,329 ----
  
           pragma Loop_Invariant
             (for all K in Source'First .. J =>
!               not Belongs (Source (K), Set, Test));
        end loop;
  
        --  Here if no token found
*************** package body Ada.Strings.Search with SPA
*** 380,386 ****
  
                 pragma Loop_Invariant
                   (for all J in Source'First .. Ind =>
!                     not (Match (Source, Pattern, Mapping, J)));
              end loop;
  
           --  Mapped forward case
--- 380,386 ----
  
                 pragma Loop_Invariant
                   (for all J in Source'First .. Ind =>
!                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped forward case
*************** package body Ada.Strings.Search with SPA
*** 406,412 ****
                 <<Cont1>>
                 pragma Loop_Invariant
                   (for all J in Source'First .. Ind =>
!                     not (Match (Source, Pattern, Mapping, J)));
                 null;
              end loop;
           end if;
--- 406,412 ----
                 <<Cont1>>
                 pragma Loop_Invariant
                   (for all J in Source'First .. Ind =>
!                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
*************** package body Ada.Strings.Search with SPA
*** 425,431 ****
  
                 pragma Loop_Invariant
                   (for all J in Ind .. Source'Last - PL1 =>
!                     not (Match (Source, Pattern, Mapping, J)));
              end loop;
  
           --  Mapped backward case
--- 425,431 ----
  
                 pragma Loop_Invariant
                   (for all J in Ind .. Source'Last - PL1 =>
!                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped backward case
*************** package body Ada.Strings.Search with SPA
*** 451,457 ****
                 <<Cont2>>
                 pragma Loop_Invariant
                   (for all J in Ind .. Source'Last - PL1 =>
!                     not (Match (Source, Pattern, Mapping, J)));
                 null;
              end loop;
           end if;
--- 451,457 ----
                 <<Cont2>>
                 pragma Loop_Invariant
                   (for all J in Ind .. Source'Last - PL1 =>
!                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
*************** package body Ada.Strings.Search with SPA
*** 515,521 ****
              <<Cont1>>
              pragma Loop_Invariant
                (for all J in Source'First .. Ind =>
!                  not (Match (Source, Pattern, Mapping, J)));
              null;
           end loop;
  
--- 515,521 ----
              <<Cont1>>
              pragma Loop_Invariant
                (for all J in Source'First .. Ind =>
!                  not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
  
*************** package body Ada.Strings.Search with SPA
*** 546,552 ****
              <<Cont2>>
              pragma Loop_Invariant
                (for all J in Ind .. Source'Last - PL1 =>
!                 not (Match (Source, Pattern, Mapping, J)));
              null;
           end loop;
        end if;
--- 546,552 ----
              <<Cont2>>
              pragma Loop_Invariant
                (for all J in Ind .. Source'Last - PL1 =>
!                 not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
        end if;
*************** package body Ada.Strings.Search with SPA
*** 574,580 ****
  
              pragma Loop_Invariant
                (for all C of Source (Source'First .. J) =>
!                    not (Belongs (C, Set, Test)));
           end loop;
  
        --  Backwards case
--- 574,580 ----
  
              pragma Loop_Invariant
                (for all C of Source (Source'First .. J) =>
!                    not Belongs (C, Set, Test));
           end loop;
  
        --  Backwards case
*************** package body Ada.Strings.Search with SPA
*** 587,593 ****
  
              pragma Loop_Invariant
                (for all C of Source (J .. Source'Last) =>
!                    not (Belongs (C, Set, Test)));
           end loop;
        end if;
  
--- 587,593 ----
  
              pragma Loop_Invariant
                (for all C of Source (J .. Source'Last) =>
!                    not Belongs (C, Set, Test));
           end loop;
        end if;
  
*************** package body Ada.Strings.Search with SPA
*** 623,628 ****
--- 623,629 ----
             (if (for some J in From .. Source'Last - PL1 =>
                   Match (Source, Pattern, Mapping, J))
              then Result in From .. Source'Last - PL1
+               and then Match (Source, Pattern, Mapping, Result)
              else Result = 0);
  
        else
*************** package body Ada.Strings.Search with SPA
*** 636,641 ****
--- 637,643 ----
             (if (for some J in Source'First .. From - PL1 =>
                    Match (Source, Pattern, Mapping, J))
              then Result in Source'First .. From - PL1
+               and then Match (Source, Pattern, Mapping, Result)
              else Result = 0);
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strsea.ads gcc-15.1.0/gcc/ada/libgnat/a-strsea.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strsea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strsea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 148,154 ****
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not (Match (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 148,154 ----
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not Match (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 195,201 ****
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not (Match (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 195,201 ----
                        then J <= Index'Result - 1
                        else J - 1 in Index'Result
                                      .. Source'Last - Pattern'Length)
!                   then not Match (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 295,301 ****
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not (Match (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 295,301 ----
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not Match (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 353,359 ****
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not (Match (Source, Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 353,359 ----
                        then J in From .. Index'Result - 1
                        else J - 1 in Index'Result
                                      .. From - Pattern'Length)
!                   then not Match (Source, Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strsto.ads gcc-15.1.0/gcc/ada/libgnat/a-strsto.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strsto.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strsto.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strsup.adb gcc-15.1.0/gcc/ada/libgnat/a-strsup.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strsup.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strsup.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Superbounded wi
*** 1627,1632 ****
--- 1627,1634 ----
                         Result.Data (K) =
                           Item (Item'Last - (Max_Length - K) mod Ilen));
                 end loop;
+                pragma Assert
+                  (Result.Data (1 .. Max_Length)'Initialized);
  
              when Strings.Error =>
                 raise Ada.Strings.Length_Error;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strsup.ads gcc-15.1.0/gcc/ada/libgnat/a-strsup.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strsup.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strsup.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 689,695 ****
       (Left  : Super_String;
        Right : Super_String) return Boolean
     with
-      Pre    => Left.Max_Length = Right.Max_Length,
       Post   => "="'Result = (Super_To_String (Left) = Super_To_String (Right)),
       Global => null;
  
--- 689,694 ----
*************** is
*** 853,860 ****
                        then J <= Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. Super_Length (Source) - Pattern'Length)
!                   then not (Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 852,859 ----
                        then J <= Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. Super_Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 907,914 ****
                        then J <= Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. Super_Length (Source) - Pattern'Length)
!                   then not (Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 906,913 ----
                        then J <= Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. Super_Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 1013,1020 ****
                        then J in From .. Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. From - Pattern'Length)
!                   then not (Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 1012,1019 ----
                        then J in From .. Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. From - Pattern'Length)
!                   then not Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
*************** is
*** 1076,1083 ****
                        then J in From .. Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. From - Pattern'Length)
!                   then not (Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J)))),
  
          --  Otherwise, 0 is returned
  
--- 1075,1082 ----
                        then J in From .. Super_Index'Result - 1
                        else J - 1 in Super_Index'Result
                                      .. From - Pattern'Length)
!                   then not Search.Match
!                     (Super_To_String (Source), Pattern, Mapping, J))),
  
          --  Otherwise, 0 is returned
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strunb.adb gcc-15.1.0/gcc/ada/libgnat/a-strunb.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strunb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strunb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,51 ****
  ------------------------------------------------------------------------------
  
  with Ada.Strings.Fixed;
- with Ada.Strings.Search;
  with Ada.Unchecked_Deallocation;
  
  package body Ada.Strings.Unbounded is
  
!    function Sum (Left : Natural; Right : Integer) return Natural with Inline;
     --  Returns summary of Left and Right, raise Constraint_Error on overflow
  
     function Mul (Left, Right : Natural) return Natural with Inline;
     --  Returns multiplication of Left and Right, raise Constraint_Error on
     --  overflow.
  
!    function Saturated_Sum (Left : Natural; Right : Integer) return Natural;
     --  Returns summary of Left and Right or Natural'Last on overflow
  
!    function Saturated_Mul (Left, Right : Natural) return Natural;
     --  Returns multiplication of Left and Right or Natural'Last on overflow
  
     ---------
--- 30,50 ----
  ------------------------------------------------------------------------------
  
  with Ada.Strings.Fixed;
  with Ada.Unchecked_Deallocation;
  
  package body Ada.Strings.Unbounded is
  
!    function Sum (Left, Right : Natural) return Natural with Inline;
     --  Returns summary of Left and Right, raise Constraint_Error on overflow
  
     function Mul (Left, Right : Natural) return Natural with Inline;
     --  Returns multiplication of Left and Right, raise Constraint_Error on
     --  overflow.
  
!    function Saturated_Sum (Left, Right : Natural) return Natural;
     --  Returns summary of Left and Right or Natural'Last on overflow
  
!    function Saturated_Mul (Left, Right : Positive) return Positive;
     --  Returns multiplication of Left and Right or Natural'Last on overflow
  
     ---------
*************** package body Ada.Strings.Unbounded is
*** 67,74 ****
  
        Result.Reference (1 .. L_Length) :=
          Left.Reference (1 .. Left.Last);
!       Result.Reference (L_Length + 1 .. Result.Last) :=
!         Right.Reference (1 .. Right.Last);
  
        return Result;
     end "&";
--- 66,76 ----
  
        Result.Reference (1 .. L_Length) :=
          Left.Reference (1 .. Left.Last);
! 
!       if L_Length < Natural'Last then
!          Result.Reference (L_Length + 1 .. Result.Last) :=
!            Right.Reference (1 .. Right.Last);
!       end if;
  
        return Result;
     end "&";
*************** package body Ada.Strings.Unbounded is
*** 86,92 ****
        Result.Reference := new String (1 .. Result.Last);
  
        Result.Reference (1 .. L_Length) := Left.Reference (1 .. Left.Last);
!       Result.Reference (L_Length + 1 .. Result.Last) := Right;
  
        return Result;
     end "&";
--- 88,97 ----
        Result.Reference := new String (1 .. Result.Last);
  
        Result.Reference (1 .. L_Length) := Left.Reference (1 .. Left.Last);
! 
!       if L_Length < Natural'Last then
!          Result.Reference (L_Length + 1 .. Result.Last) := Right;
!       end if;
  
        return Result;
     end "&";
*************** package body Ada.Strings.Unbounded is
*** 104,111 ****
        Result.Reference := new String (1 .. Result.Last);
  
        Result.Reference (1 .. Left'Length) := Left;
!       Result.Reference (Left'Length + 1 .. Result.Last) :=
!         Right.Reference (1 .. Right.Last);
  
        return Result;
     end "&";
--- 109,119 ----
        Result.Reference := new String (1 .. Result.Last);
  
        Result.Reference (1 .. Left'Length) := Left;
! 
!       if Left'Length < Natural'Last then
!          Result.Reference (Left'Length + 1 .. Result.Last) :=
!            Right.Reference (1 .. Right.Last);
!       end if;
  
        return Result;
     end "&";
*************** package body Ada.Strings.Unbounded is
*** 170,186 ****
        Right : String) return Unbounded_String
     is
        Len    : constant Natural := Right'Length;
!       K      : Positive;
        Result : Unbounded_String;
  
     begin
        Result.Last := Mul (Left, Len);
  
        Result.Reference := new String (1 .. Result.Last);
  
!       K := 1;
        for J in 1 .. Left loop
!          Result.Reference (K .. K + Len - 1) := Right;
           K := K + Len;
        end loop;
  
--- 178,198 ----
        Right : String) return Unbounded_String
     is
        Len    : constant Natural := Right'Length;
!       K      : Natural;
        Result : Unbounded_String;
  
     begin
+       if Len = 0 then
+          return Null_Unbounded_String;
+       end if;
+ 
        Result.Last := Mul (Left, Len);
  
        Result.Reference := new String (1 .. Result.Last);
  
!       K := 0;
        for J in 1 .. Left loop
!          Result.Reference (K + 1 .. K + Len) := Right;
           K := K + Len;
        end loop;
  
*************** package body Ada.Strings.Unbounded is
*** 192,208 ****
        Right : Unbounded_String) return Unbounded_String
     is
        Len    : constant Natural := Right.Last;
!       K      : Positive;
        Result : Unbounded_String;
  
     begin
        Result.Last := Mul (Left, Len);
  
        Result.Reference := new String (1 .. Result.Last);
  
!       K := 1;
        for J in 1 .. Left loop
!          Result.Reference (K .. K + Len - 1) :=
             Right.Reference (1 .. Right.Last);
           K := K + Len;
        end loop;
--- 204,224 ----
        Right : Unbounded_String) return Unbounded_String
     is
        Len    : constant Natural := Right.Last;
!       K      : Natural;
        Result : Unbounded_String;
  
     begin
+       if Len = 0 then
+          return Null_Unbounded_String;
+       end if;
+ 
        Result.Last := Mul (Left, Len);
  
        Result.Reference := new String (1 .. Result.Last);
  
!       K := 0;
        for J in 1 .. Left loop
!          Result.Reference (K + 1 .. K + Len) :=
             Right.Reference (1 .. Right.Last);
           K := K + Len;
        end loop;
*************** package body Ada.Strings.Unbounded is
*** 380,387 ****
     is
     begin
        Realloc_For_Chunk (Source, New_Item.Last);
!       Source.Reference (Source.Last + 1 .. Source.Last + New_Item.Last) :=
!         New_Item.Reference (1 .. New_Item.Last);
        Source.Last := Source.Last + New_Item.Last;
     end Append;
  
--- 396,407 ----
     is
     begin
        Realloc_For_Chunk (Source, New_Item.Last);
! 
!       if Source.Last < Natural'Last then
!          Source.Reference (Source.Last + 1 .. Source.Last + New_Item.Last) :=
!            New_Item.Reference (1 .. New_Item.Last);
!       end if;
! 
        Source.Last := Source.Last + New_Item.Last;
     end Append;
  
*************** package body Ada.Strings.Unbounded is
*** 391,398 ****
     is
     begin
        Realloc_For_Chunk (Source, New_Item'Length);
!       Source.Reference (Source.Last + 1 .. Source.Last + New_Item'Length) :=
!         New_Item;
        Source.Last := Source.Last + New_Item'Length;
     end Append;
  
--- 411,422 ----
     is
     begin
        Realloc_For_Chunk (Source, New_Item'Length);
! 
!       if Source.Last < Natural'Last then
!          Source.Reference (Source.Last + 1 .. Source.Last + New_Item'Length) :=
!            New_Item;
!       end if;
! 
        Source.Last := Source.Last + New_Item'Length;
     end Append;
  
*************** package body Ada.Strings.Unbounded is
*** 462,477 ****
        if From > Through then
           null;
  
!       elsif From < Source.Reference'First or else Through > Source.Last then
           raise Index_Error;
  
        else
           declare
!             Len : constant Natural := Through - From + 1;
  
           begin
!             Source.Reference (From .. Source.Last - Len) :=
!               Source.Reference (Through + 1 .. Source.Last);
              Source.Last := Source.Last - Len;
           end;
        end if;
--- 486,505 ----
        if From > Through then
           null;
  
!       elsif From - 1 > Source.Last then
           raise Index_Error;
  
        else
           declare
!             Len : constant Natural :=
!               Natural'Min (Source.Last, Through) - From + 1;
  
           begin
!             if Through < Natural'Last then
!                Source.Reference (From .. Source.Last - Len) :=
!                  Source.Reference (Through + 1 .. Source.Last);
!             end if;
! 
              Source.Last := Source.Last - Len;
           end;
        end if;
*************** package body Ada.Strings.Unbounded is
*** 714,730 ****
        New_Item : String)
     is
     begin
!       if Before not in Source.Reference'First .. Source.Last + 1 then
           raise Index_Error;
        end if;
  
        Realloc_For_Chunk (Source, New_Item'Length);
  
!       Source.Reference
!         (Before + New_Item'Length .. Source.Last + New_Item'Length) :=
!            Source.Reference (Before .. Source.Last);
  
!       Source.Reference (Before .. Before + New_Item'Length - 1) := New_Item;
        Source.Last := Source.Last + New_Item'Length;
     end Insert;
  
--- 742,760 ----
        New_Item : String)
     is
     begin
!       if Before - 1 > Source.Last then
           raise Index_Error;
        end if;
  
        Realloc_For_Chunk (Source, New_Item'Length);
  
!       if Before <= Source.Last then
!          Source.Reference
!            (Before + New_Item'Length .. Source.Last + New_Item'Length) :=
!              Source.Reference (Before .. Source.Last);
!       end if;
  
!       Source.Reference (Before .. Before - 1 + New_Item'Length) := New_Item;
        Source.Last := Source.Last + New_Item'Length;
     end Insert;
  
*************** package body Ada.Strings.Unbounded is
*** 733,741 ****
     ------------
  
     function Length (Source : Unbounded_String) return Natural is
!    begin
!       return Source.Last;
!    end Length;
  
     ---------
     -- Mul --
--- 763,769 ----
     ------------
  
     function Length (Source : Unbounded_String) return Natural is
!      (Source.Last);
  
     ---------
     -- Mul --
*************** package body Ada.Strings.Unbounded is
*** 769,776 ****
     is
        NL : constant Natural := New_Item'Length;
     begin
!       if Position <= Source.Last - NL + 1 then
!          Source.Reference (Position .. Position + NL - 1) := New_Item;
        else
           declare
              Old : String_Access := Source.Reference;
--- 797,804 ----
     is
        NL : constant Natural := New_Item'Length;
     begin
!       if Position - 1 <= Source.Last - NL then
!          Source.Reference (Position .. Position - 1 + NL) := New_Item;
        else
           declare
              Old : String_Access := Source.Reference;
*************** package body Ada.Strings.Unbounded is
*** 824,830 ****
           declare
              New_Size : constant Positive :=
                Saturated_Sum
!                 (Sum (S_Length, Chunk_Size), S_Length / Growth_Factor);
  
              New_Rounded_Up_Size : constant Positive :=
                Saturated_Mul
--- 852,858 ----
           declare
              New_Size : constant Positive :=
                Saturated_Sum
!                 (Sum (Source.Last, Chunk_Size), S_Length / Growth_Factor);
  
              New_Rounded_Up_Size : constant Positive :=
                Saturated_Mul
*************** package body Ada.Strings.Unbounded is
*** 897,903 ****
     -- Saturated_Mul --
     -------------------
  
!    function Saturated_Mul (Left, Right : Natural) return Natural is
     begin
        return Mul (Left, Right);
     exception
--- 925,931 ----
     -- Saturated_Mul --
     -------------------
  
!    function Saturated_Mul (Left, Right : Positive) return Positive is
     begin
        return Mul (Left, Right);
     exception
*************** package body Ada.Strings.Unbounded is
*** 905,915 ****
           return Natural'Last;
     end Saturated_Mul;
  
!    -----------------
     -- Saturated_Sum --
!    -----------------
  
!    function Saturated_Sum (Left : Natural; Right : Integer) return Natural is
     begin
        return Sum (Left, Right);
     exception
--- 933,943 ----
           return Natural'Last;
     end Saturated_Mul;
  
!    -------------------
     -- Saturated_Sum --
!    -------------------
  
!    function Saturated_Sum (Left, Right : Natural) return Natural is
     begin
        return Sum (Left, Right);
     exception
*************** package body Ada.Strings.Unbounded is
*** 945,951 ****
     begin
        --  Note: test of High > Length is in accordance with AI95-00128
  
!       if Low > Source.Last + 1 or else High > Source.Last then
           raise Index_Error;
        else
           return Source.Reference (Low .. High);
--- 973,979 ----
     begin
        --  Note: test of High > Length is in accordance with AI95-00128
  
!       if Low - 1 > Source.Last or else High > Source.Last then
           raise Index_Error;
        else
           return Source.Reference (Low .. High);
*************** package body Ada.Strings.Unbounded is
*** 956,962 ****
     -- Sum --
     ---------
  
!    function Sum (Left : Natural; Right : Integer) return Natural is
        pragma Unsuppress (Overflow_Check);
     begin
        return Left + Right;
--- 984,990 ----
     -- Sum --
     ---------
  
!    function Sum (Left, Right : Natural) return Natural is
        pragma Unsuppress (Overflow_Check);
     begin
        return Left + Right;
*************** package body Ada.Strings.Unbounded is
*** 993,1001 ****
     ---------------
  
     function To_String (Source : Unbounded_String) return String is
!    begin
!       return Source.Reference (1 .. Source.Last);
!    end To_String;
  
     -------------------------
     -- To_Unbounded_String --
--- 1021,1027 ----
     ---------------
  
     function To_String (Source : Unbounded_String) return String is
!      (Source.Reference (1 .. Source.Last));
  
     -------------------------
     -- To_Unbounded_String --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strunb.ads gcc-15.1.0/gcc/ada/libgnat/a-strunb.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strunb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strunb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,46 ****
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
! --  setting the corresponding assertion policy to Ignore.
  
! pragma Assertion_Policy (Pre => Ignore);
  
! with Ada.Strings.Maps;
  with Ada.Finalization;
  private with Ada.Strings.Text_Buffers;
  
  --  The language-defined package Strings.Unbounded provides a private type
--- 35,52 ----
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
! --  setting the corresponding assertion policy to Ignore. Postconditions and
! --  contract cases should not be executed at runtime as well, in order not to
! --  slow down the execution of these functions.
  
! pragma Assertion_Policy (Pre            => Ignore,
!                          Post           => Ignore,
!                          Contract_Cases => Ignore,
!                          Ghost          => Ignore);
  
! with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  with Ada.Finalization;
+ with Ada.Strings.Search;
  private with Ada.Strings.Text_Buffers;
  
  --  The language-defined package Strings.Unbounded provides a private type
*************** package Ada.Strings.Unbounded with
*** 59,64 ****
--- 65,77 ----
  is
     pragma Preelaborate;
  
+    --  Contracts may call function Length in the prefix of attribute reference
+    --  to Old as in Length (Source)'Old. Allow this use.
+ 
+    pragma Unevaluated_Use_Of_Old (Allow);
+ 
+    subtype String_1 is String (1 .. <>) with Ghost;  --  Type used in contracts
+ 
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
     pragma Preelaborable_Initialization (Unbounded_String);
*************** is
*** 84,92 ****
     --------------------------------------------------------
  
     function To_Unbounded_String
!      (Source : String)  return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source,
       Global => null;
     --  Returns an Unbounded_String that represents Source
  
--- 97,106 ----
     --------------------------------------------------------
  
     function To_Unbounded_String
!      (Source : String) return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source
!        and then Length (To_Unbounded_String'Result) = Source'Length,
       Global => null;
     --  Returns an Unbounded_String that represents Source
  
*************** is
*** 126,132 ****
        New_Item : Unbounded_String)
     with
       Pre    => Length (New_Item) <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + Length (New_Item),
       Global => null;
  
     procedure Append
--- 140,147 ----
        New_Item : Unbounded_String)
     with
       Pre    => Length (New_Item) <= Natural'Last - Length (Source),
!      Post   =>
!        To_String (Source) = To_String (Source)'Old & To_String (New_Item),
       Global => null;
  
     procedure Append
*************** is
*** 134,140 ****
        New_Item : String)
     with
       Pre    => New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + New_Item'Length,
       Global => null;
  
     procedure Append
--- 149,155 ----
        New_Item : String)
     with
       Pre    => New_Item'Length <= Natural'Last - Length (Source),
!      Post   => To_String (Source) = To_String (Source)'Old & New_Item,
       Global => null;
  
     procedure Append
*************** is
*** 142,148 ****
        New_Item : Character)
     with
       Pre    => Length (Source) < Natural'Last,
!      Post   => Length (Source) = Length (Source)'Old + 1,
       Global => null;
  
     --  For each of the Append procedures, the resulting string represented by
--- 157,163 ----
        New_Item : Character)
     with
       Pre    => Length (Source) < Natural'Last,
!      Post   => To_String (Source) = To_String (Source)'Old & New_Item,
       Global => null;
  
     --  For each of the Append procedures, the resulting string represented by
*************** is
*** 154,160 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) <= Natural'Last - Length (Left),
!      Post   => Length ("&"'Result) = Length (Left) + Length (Right),
       Global => null;
  
     function "&"
--- 169,175 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) <= Natural'Last - Length (Left),
!      Post   => To_String ("&"'Result) = To_String (Left) & To_String (Right),
       Global => null;
  
     function "&"
*************** is
*** 162,168 ****
        Right : String) return Unbounded_String
     with
       Pre    => Right'Length <= Natural'Last - Length (Left),
!      Post   => Length ("&"'Result) = Length (Left) + Right'Length,
       Global => null;
  
     function "&"
--- 177,183 ----
        Right : String) return Unbounded_String
     with
       Pre    => Right'Length <= Natural'Last - Length (Left),
!      Post   => To_String ("&"'Result) = To_String (Left) & Right,
       Global => null;
  
     function "&"
*************** is
*** 170,176 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Left'Length <= Natural'Last - Length (Right),
!      Post   => Length ("&"'Result) = Left'Length + Length (Right),
       Global => null;
  
     function "&"
--- 185,191 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Left'Length <= Natural'Last - Length (Right),
!      Post   => To_String ("&"'Result) = String_1 (Left) & To_String (Right),
       Global => null;
  
     function "&"
*************** is
*** 178,184 ****
        Right : Character) return Unbounded_String
     with
       Pre    => Length (Left) < Natural'Last,
!      Post   => Length ("&"'Result) = Length (Left) + 1,
       Global => null;
  
     function "&"
--- 193,199 ----
        Right : Character) return Unbounded_String
     with
       Pre    => Length (Left) < Natural'Last,
!      Post   => To_String ("&"'Result) = To_String (Left) & Right,
       Global => null;
  
     function "&"
*************** is
*** 186,192 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) < Natural'Last,
!      Post   => Length ("&"'Result) = Length (Right) + 1,
       Global => null;
  
     --  Each of the "&" functions returns an Unbounded_String obtained by
--- 201,207 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) < Natural'Last,
!      Post   => To_String ("&"'Result) = Left & To_String (Right),
       Global => null;
  
     --  Each of the "&" functions returns an Unbounded_String obtained by
*************** is
*** 211,217 ****
        By     : Character)
     with
       Pre    => Index <= Length (Source),
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
     --  Updates Source such that the character at position Index in the string
     --  represented by Source is By; propagates Index_Error if
--- 226,233 ----
        By     : Character)
     with
       Pre    => Index <= Length (Source),
!      Post   =>
!        To_String (Source) = (To_String (Source)'Old with delta Index => By),
       Global => null;
     --  Updates Source such that the character at position Index in the string
     --  represented by Source is By; propagates Index_Error if
*************** is
*** 223,229 ****
        High   : Natural) return String
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Slice'Result'Length = Natural'Max (0, High - Low + 1),
       Global => null;
     --  Returns the slice at positions Low through High in the string
     --  represented by Source; propagates Index_Error if
--- 239,247 ----
        High   : Natural) return String
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Slice'Result'First = Low
!        and then Slice'Result'Last = High
!        and then Slice'Result = To_String (Source) (Low .. High),
       Global => null;
     --  Returns the slice at positions Low through High in the string
     --  represented by Source; propagates Index_Error if
*************** is
*** 237,243 ****
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
       Post   =>
!        Length (Unbounded_Slice'Result) = Natural'Max (0, High - Low + 1),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
     --  Returns the slice at positions Low through High in the string
--- 255,261 ----
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
       Post   =>
!        To_String (Unbounded_Slice'Result) = To_String (Source) (Low .. High),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
     --  Returns the slice at positions Low through High in the string
*************** is
*** 251,257 ****
        High   : Natural)
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Length (Target) = Natural'Max (0, High - Low + 1),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
     --  Sets Target to the Unbounded_String representing the slice at positions
--- 269,275 ----
        High   : Natural)
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => To_String (Target) = To_String (Source) (Low .. High),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
     --  Sets Target to the Unbounded_String representing the slice at positions
*************** is
*** 283,354 ****
--- 301,384 ----
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<"'Result = (To_String (Left) < To_String (Right)),
       Global => null;
  
     function "<"
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "<"'Result = (To_String (Left) < Right),
       Global => null;
  
     function "<"
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<"'Result = (Left < To_String (Right)),
       Global => null;
  
     function "<="
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<="'Result = (To_String (Left) <= To_String (Right)),
       Global => null;
  
     function "<="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "<="'Result = (To_String (Left) <= Right),
       Global => null;
  
     function "<="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<="'Result = (Left <= To_String (Right)),
       Global => null;
  
     function ">"
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">"'Result = (To_String (Left) > To_String (Right)),
       Global => null;
  
     function ">"
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => ">"'Result = (To_String (Left) > Right),
       Global => null;
  
     function ">"
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">"'Result = (Left > To_String (Right)),
       Global => null;
  
     function ">="
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">="'Result = (To_String (Left) >= To_String (Right)),
       Global => null;
  
     function ">="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => ">="'Result = (To_String (Left) >= Right),
       Global => null;
  
     function ">="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">="'Result = (Left >= To_String (Right)),
       Global => null;
  
     --  Each of the functions "=", "<", ">", "<=", and ">=" returns the same
*************** is
*** 365,372 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre    => Pattern'Length /= 0,
!      Global => null;
  
     function Index
       (Source  : Unbounded_String;
--- 395,446 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre            => Pattern'Length > 0,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in 1 .. Length (Source) - (Pattern'Length - 1) =>
!                Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source) - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J <= Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
  
     function Index
       (Source  : Unbounded_String;
*************** is
*** 374,381 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0,
!      Global => null;
  
     function Index
       (Source : Unbounded_String;
--- 448,499 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre            => Pattern'Length /= 0 and then Mapping /= null,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in 1 .. Length (Source) - (Pattern'Length - 1) =>
!                Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source) - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J <= Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
  
     function Index
       (Source : Unbounded_String;
*************** is
*** 383,389 ****
        Test   : Membership := Inside;
        Going  : Direction  := Forward) return Natural
     with
!      Global => null;
  
     function Index
       (Source  : Unbounded_String;
--- 501,543 ----
        Test   : Membership := Inside;
        Going  : Direction  := Forward) return Natural
     with
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If no character of Source satisfies the property Test on Set,
!         --  then 0 is returned.
! 
!        ((for all C of To_String (Source) =>
!            (Test = Inside) /= Maps.Is_In (C, Set))
!         =>
!           Index'Result = 0,
! 
!         --  Otherwise, an index in the range of Source is returned
! 
!         others
!         =>
!           --  The result is in the range of Source
! 
!           Index'Result in 1 .. Length (Source)
! 
!             --  The character at the returned index satisfies the property
!             --  Test on Set.
! 
!             and then
!               (Test = Inside) =
!                 Maps.Is_In (Element (Source, Index'Result), Set)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the property, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index'Result
!                        and then (J < Index'Result) = (Going = Forward)
!                   then (Test = Inside)
!                        /= Maps.Is_In (Element (Source, J), Set)))),
!      Global         => null;
  
     function Index
       (Source  : Unbounded_String;
*************** is
*** 392,400 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source))
!                and then Pattern'Length /= 0,
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index
--- 546,605 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source))
!          and then Pattern'Length /= 0,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in
!               (if Going = Forward then From else 1)
!                .. (if Going = Forward then Length (Source) else From)
!                 - (Pattern'Length - 1) =>
!               Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in
!             (if Going = Forward then From else 1)
!             .. (if Going = Forward then Length (Source) else From)
!              - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J in From .. Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. From - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index
*************** is
*** 404,412 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source))
!                and then Pattern'Length /= 0,
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index
--- 609,669 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source))
!          and then Pattern'Length /= 0
!          and then Mapping /= null,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in
!               (if Going = Forward then From else 1)
!                .. (if Going = Forward then Length (Source) else From)
!                 - (Pattern'Length - 1) =>
!               Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in
!             (if Going = Forward then From else 1)
!             .. (if Going = Forward then Length (Source) else From)
!              - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J in From .. Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. From - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index
*************** is
*** 416,438 ****
        Test    : Membership := Inside;
        Going   : Direction := Forward) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        Going  : Direction := Forward) return Natural
     with
!      Global => null;
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        From   : Positive;
        Going  : Direction := Forward) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_05 (Index_Non_Blank);
  
     function Count
--- 673,819 ----
        Test    : Membership := Inside;
        Going   : Direction := Forward) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or no character of the considered
!         --  slice of Source satisfies the property Test on Set, then 0 is
!         --  returned.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (if J = From or else (J > From) = (Going = Forward) then
!                   (Test = Inside) /= Maps.Is_In (Element (Source, J), Set)))
!         =>
!           Index'Result = 0,
! 
!         --  Otherwise, an index in the considered range of Source is
!         --  returned.
! 
!         others
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source)
!             and then
!               (Index'Result = From
!                  or else (Index'Result > From) = (Going = Forward))
! 
!             --  The character at the returned index satisfies the property
!             --  Test on Set.
! 
!             and then
!               (Test = Inside) =
!                 Maps.Is_In (Element (Source, Index'Result), Set)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the property, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index'Result
!                     and then (J < Index'Result) = (Going = Forward)
!                     and then (J = From
!                                 or else (J > From) = (Going = Forward))
!                   then (Test = Inside)
!                        /= Maps.Is_In (Element (Source, J), Set)))),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        Going  : Direction := Forward) return Natural
     with
!      Post           => Index_Non_Blank'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If all characters of Source are Space characters, then 0 is
!         --  returned.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Index_Non_Blank'Result = 0,
! 
!         --  Otherwise, an index in the range of Source is returned
! 
!         others
!         =>
!           --  The result is in the range of Source
! 
!           Index_Non_Blank'Result in 1 .. Length (Source)
! 
!             --  The character at the returned index is not a Space character
! 
!             and then Element (Source, Index_Non_Blank'Result) /= ' '
! 
!             --  The result is the smallest or largest index which is not a
!             --  Space character, respectively when Going = Forward and Going
!             --  = Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index_Non_Blank'Result
!                        and then
!                          (J < Index_Non_Blank'Result) = (Going = Forward)
!                   then Element (Source, J) = ' '))),
!      Global         => null;
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        From   : Positive;
        Going  : Direction := Forward) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Post           => Index_Non_Blank'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or all characters of the
!         --  considered slice of Source are Space characters, then 0
!         --  is returned.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (if J = From or else (J > From) = (Going = Forward) then
!                   Element (Source, J) = ' '))
!         =>
!           Index_Non_Blank'Result = 0,
! 
!         --  Otherwise, an index in the considered range of Source is
!         --  returned.
! 
!         others
!         =>
!           --  The result is in the considered range of Source
! 
!           Index_Non_Blank'Result in 1 .. Length (Source)
!             and then
!               (Index_Non_Blank'Result = From
!                  or else
!                    (Index_Non_Blank'Result > From) = (Going = Forward))
! 
!             --  The character at the returned index is not a Space character
! 
!             and then Element (Source, Index_Non_Blank'Result) /= ' '
! 
!             --  The result is the smallest or largest index which isn't a
!             --  Space character, respectively when Going = Forward and Going
!             --  = Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index_Non_Blank'Result
!                     and then
!                       (J < Index_Non_Blank'Result) = (Going = Forward)
!                     and then (J = From
!                                 or else (J > From) = (Going = Forward))
!                   then Element (Source, J) = ' '))),
!      Global         => null;
     pragma Ada_05 (Index_Non_Blank);
  
     function Count
*************** is
*** 448,454 ****
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0,
       Global => null;
  
     function Count
--- 829,835 ----
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0 and then Mapping /= null,
       Global => null;
  
     function Count
*************** is
*** 465,472 ****
        First  : out Positive;
        Last   : out Natural)
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_2012 (Find_Token);
  
     procedure Find_Token
--- 846,898 ----
        First  : out Positive;
        Last   : out Natural)
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or if no character of the
!         --  considered slice of Source satisfies the property Test on
!         --  Set, then First is set to From and Last is set to 0.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in From .. Length (Source) =>
!                (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
!         =>
!           First = From and then Last = 0,
! 
!         --  Otherwise, First and Last are set to valid indexes
! 
!         others
!         =>
!           --  First and Last are in the considered range of Source
! 
!           First in From .. Length (Source)
!             and then Last in First .. Length (Source)
! 
!             --  No character between From and First satisfies the property
!             --  Test on Set.
! 
!             and then
!               (for all J in From .. First - 1 =>
!                  (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
! 
!             --  All characters between First and Last satisfy the property
!             --  Test on Set.
! 
!             and then
!               (for all J in First .. Last =>
!                  (Test = Inside) = Maps.Is_In (Element (Source, J), Set))
! 
!             --  If Last is not Source'Last, then the character at position
!             --  Last + 1 does not satify the property Test on Set.
! 
!             and then
!               (if Last < Length (Source)
!                then
!                  (Test = Inside)
!                  /= Maps.Is_In (Element (Source, Last + 1), Set))),
!      Global         => null;
     pragma Ada_2012 (Find_Token);
  
     procedure Find_Token
*************** is
*** 476,482 ****
        First  : out Positive;
        Last   : out Natural)
     with
!      Global => null;
  
     --  Each of the search subprograms (Index, Index_Non_Blank, Count,
     --  Find_Token) has the same effect as the corresponding subprogram in
--- 902,952 ----
        First  : out Positive;
        Last   : out Natural)
     with
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or if no character of the
!         --  considered slice of Source satisfies the property Test on
!         --  Set, then First is set to 1 and Last is set to 0.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
!         =>
!           First = 1 and then Last = 0,
! 
!         --  Otherwise, First and Last are set to valid indexes
! 
!         others
!         =>
!           --  First and Last are in the considered range of Source
! 
!           First in 1 .. Length (Source)
!             and then Last in First .. Length (Source)
! 
!             --  No character between 1 and First satisfies the property Test
!             --  on Set.
! 
!             and then
!               (for all J in 1 .. First - 1 =>
!                  (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
! 
!             --  All characters between First and Last satisfy the property
!             --  Test on Set.
! 
!             and then
!               (for all J in First .. Last =>
!                  (Test = Inside) = Maps.Is_In (Element (Source, J), Set))
! 
!             --  If Last is not Source'Last, then the character at position
!             --  Last + 1 does not satify the property Test on Set.
! 
!             and then
!               (if Last < Length (Source)
!                then
!                  (Test = Inside)
!                  /= Maps.Is_In (Element (Source, Last + 1), Set))),
!      Global         => null;
  
     --  Each of the search subprograms (Index, Index_Non_Blank, Count,
     --  Find_Token) has the same effect as the corresponding subprogram in
*************** is
*** 491,518 ****
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping)
     with
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
  
     function Translate
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping_Function) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
  
     --  The Translate function has an analogous effect to the corresponding
--- 961,1004 ----
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source)
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Translate'Result, K) =
!               Ada.Strings.Maps.Value (Mapping, Element (Source, K))),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping)
     with
!      Post   => Length (Source) = Length (Source)'Old
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Source, K) =
!               Ada.Strings.Maps.Value (Mapping, To_String (Source)'Old (K))),
       Global => null;
  
     function Translate
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping_Function) return Unbounded_String
     with
!      Pre    => Mapping /= null,
!      Post   => Length (Translate'Result) = Length (Source)
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Translate'Result, K) = Mapping (Element (Source, K))),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Pre    => Mapping /= null,
!      Post   => Length (Source) = Length (Source)'Old
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Source, K) = Mapping (To_String (Source)'Old (K))),
       Global => null;
  
     --  The Translate function has an analogous effect to the corresponding
*************** is
*** 535,549 ****
           and then (if High >= Low
                     then Low - 1
                       <= Natural'Last - By'Length
!                       - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
         (High >= Low =>
            Length (Replace_Slice'Result)
!         = Low - 1 + By'Length + Natural'Max (Length (Source)'Old - High, 0),
          others      =>
!           Length (Replace_Slice'Result) = Length (Source)'Old + By'Length),
       Global         => null;
  
     procedure Replace_Slice
       (Source : in out Unbounded_String;
--- 1021,1096 ----
           and then (if High >= Low
                     then Low - 1
                       <= Natural'Last - By'Length
!                       - Integer'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
+ 
+         --  If High >= Low, when considering the application of To_String to
+         --  convert an Unbounded_String into String, then the returned string
+         --  comprises Source (Source'First .. Low - 1) & By
+         --  & Source(High + 1 .. Source'Last).
+ 
         (High >= Low =>
+ 
+           --  Length of the returned string
+ 
            Length (Replace_Slice'Result)
!           = Low - 1 + By'Length + Integer'Max (Length (Source) - High, 0)
! 
!             --  Elements starting at Low are replaced by elements of By
! 
!             and then
!               Slice (Replace_Slice'Result, 1, Low - 1) =
!                 Slice (Source, 1, Low - 1)
!             and then
!               Slice (Replace_Slice'Result, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after the replaced slice,
!             --  they are appended to the result.
! 
!             and then
!               (if High < Length (Source)
!                then
!                  Slice (Replace_Slice'Result,
!                    Low + By'Length, Length (Replace_Slice'Result)) =
!                      Slice (Source, High + 1, Length (Source))),
! 
!         --  If High < Low, then the returned string is
!         --  Insert (Source, Before => Low, New_Item => By).
! 
          others      =>
! 
!           --  Length of the returned string
! 
!           Length (Replace_Slice'Result) = Length (Source) + By'Length
! 
!             --  Elements of By are inserted after the element at Low
! 
!             and then
!               Slice (Replace_Slice'Result, 1, Low - 1) =
!                 Slice (Source, 1, Low - 1)
!             and then
!               Slice (Replace_Slice'Result, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after Low in Source, they
!             --  are appended to the result.
! 
!             and then
!               (if Low < Length (Source)
!                then
!                 Slice (Replace_Slice'Result,
!                   Low + By'Length, Length (Replace_Slice'Result)) =
!                     Slice (Source, Low, Length (Source)))),
       Global         => null;
+    --  If Low > Source'Last + 1, or High < Source'First - 1, then Index_Error
+    --  is propagated. Otherwise:
+    --
+    --  * If High >= Low, then the returned string comprises
+    --    Source (Source'First .. Low - 1)
+    --    & By & Source(High + 1 .. Source'Last), but with lower bound 1.
+    --
+    --  * If High < Low, then the returned string is
+    --    Insert (Source, Before => Low, New_Item => By).
  
     procedure Replace_Slice
       (Source : in out Unbounded_String;
*************** is
*** 559,569 ****
                        - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
         (High >= Low =>
            Length (Source)
!         = Low - 1 + By'Length + Natural'Max (Length (Source)'Old - High, 0),
          others      =>
!           Length (Source) = Length (Source)'Old + By'Length),
       Global         => null;
  
     function Insert
--- 1106,1166 ----
                        - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
+ 
+         --  If High >= Low, when considering the application of To_String to
+         --  convert an Unbounded_String into String, then the returned string
+         --  comprises Source (Source'First .. Low - 1) & By
+         --  & Source(High + 1 .. Source'Last).
+ 
         (High >= Low =>
+ 
+           --  Length of the returned string
+ 
            Length (Source)
!           = Low - 1 + By'Length + Integer'Max (Length (Source)'Old - High, 0)
! 
!             --  Elements starting at Low are replaced by elements of By
! 
!             and then Slice (Source, 1, Low - 1) =
!               Slice (Source, 1, Low - 1)'Old
!             and then Slice (Source, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after the replaced slice,
!             --  they are appended to the result.
! 
!             and then
!               (if High < Length (Source)'Old
!                then Slice (Source, Low + By'Length, Length (Source)) =
!                  Slice (Source,
!                    --  Really "High + 1" but expressed with a conditional
!                    --  repeating the above test so that the call to Slice
!                    --  is valid on entry (under 'Old) even when the test
!                    --  evaluates to False.
!                    (if High < Length (Source) then High + 1 else 1),
!                    Length (Source))'Old),
! 
!         --  If High < Low, then the returned string is
!         --  Insert (Source, Before => Low, New_Item => By).
! 
          others      =>
! 
!           --  Length of the returned string
! 
!           Length (Source) = Length (Source)'Old + By'Length
! 
!             --  Elements of By are inserted after the element at Low
! 
!             and then Slice (Source, 1, Low - 1) =
!               Slice (Source, 1, Low - 1)'Old
!             and then Slice (Source, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after Low in Source, they
!             --  are appended to the result.
! 
!             and then
!               (if Low < Length (Source)'Old
!                then Slice (Source, Low + By'Length, Length (Source)) =
!                  Slice (Source, Low, Length (Source))'Old)),
       Global         => null;
  
     function Insert
*************** is
*** 573,580 ****
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Insert'Result) = Length (Source) + New_Item'Length,
       Global => null;
  
     procedure Insert
       (Source   : in out Unbounded_String;
--- 1170,1201 ----
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   =>
!        --  Length of the returned string
! 
!        Length (Insert'Result) = Length (Source) + New_Item'Length
! 
!          --  Elements of New_Item are inserted after element at Before
! 
!          and then
!            Slice (Insert'Result, 1, Before - 1) = Slice (Source, 1, Before - 1)
!          and then
!            Slice (Insert'Result, Before, Before - 1 + New_Item'Length)
!            = New_Item
! 
!          --  When there are remaining characters after Before in Source, they
!          --  are appended to the returned string.
! 
!          and then
!            (if Before <= Length (Source) then
!               Slice (Insert'Result, Before + New_Item'Length,
!                 Length (Insert'Result)) =
!                   Slice (Source, Before, Length (Source))),
       Global => null;
+    --  Propagates Index_Error if Before is not in
+    --  Source'First .. Source'Last + 1; otherwise, returns
+    --  Source (Source'First .. Before - 1)
+    --  & New_Item & Source(Before..Source'Last), but with lower bound 1.
  
     procedure Insert
       (Source   : in out Unbounded_String;
*************** is
*** 583,589 ****
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + New_Item'Length,
       Global => null;
  
     function Overwrite
--- 1204,1228 ----
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   =>
!        --  Length of the returned string
! 
!        Length (Source) = Length (Source)'Old + New_Item'Length
! 
!          --  Elements of New_Item are inserted after element at Before
! 
!          and then
!            Slice (Source, 1, Before - 1) = Slice (Source, 1, Before - 1)'Old
!          and then
!            Slice (Source, Before, Before - 1 + New_Item'Length) = New_Item
! 
!          --  When there are remaining characters after Before in Source, they
!          --  are appended to the returned string.
! 
!          and then
!            (if Before <= Length (Source)'Old then
!               Slice (Source, Before + New_Item'Length, Length (Source)) =
!                 Slice (Source, Before, Length (Source))'Old),
       Global => null;
  
     function Overwrite
*************** is
*** 592,603 ****
        New_Item : String) return Unbounded_String
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then (if New_Item'Length /= 0
!                            then
!                              New_Item'Length <= Natural'Last - (Position - 1)),
       Post   =>
!        Length (Overwrite'Result)
!      = Natural'Max (Length (Source), Position - 1 + New_Item'Length),
       Global => null;
  
     procedure Overwrite
--- 1231,1261 ----
        New_Item : String) return Unbounded_String
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then New_Item'Length <= Natural'Last - (Position - 1),
       Post   =>
!        --  Length of the returned string
! 
!        Length (Overwrite'Result) =
!          Integer'Max (Length (Source), Position - 1 + New_Item'Length)
! 
!          --  Elements after Position are replaced by elements of New_Item
! 
!          and then
!            Slice (Overwrite'Result, 1, Position - 1) =
!              Slice (Source, 1, Position - 1)
!          and then
!            Slice (Overwrite'Result, Position, Position - 1 + New_Item'Length) =
!              New_Item
!          and then
!            (if Position - 1 + New_Item'Length < Length (Source) then
! 
!               --  There are some unchanged characters of Source remaining
!               --  after New_Item.
! 
!               Slice (Overwrite'Result,
!                 Position + New_Item'Length, Length (Source)) =
!                   Slice (Source,
!                     Position + New_Item'Length, Length (Source))),
       Global => null;
  
     procedure Overwrite
*************** is
*** 606,618 ****
        New_Item : String)
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then (if New_Item'Length /= 0
!                            then
!                              New_Item'Length <= Natural'Last - (Position - 1)),
       Post   =>
!        Length (Source)
!      = Natural'Max (Length (Source)'Old, Position - 1 + New_Item'Length),
  
       Global => null;
  
     function Delete
--- 1264,1299 ----
        New_Item : String)
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then New_Item'Length <= Natural'Last - (Position - 1),
       Post   =>
!        --  Length of the returned string
! 
!        Length (Source) =
!          Integer'Max (Length (Source)'Old, Position - 1 + New_Item'Length)
! 
!          --  Elements after Position are replaced by elements of New_Item
! 
!          and then
!            Slice (Source, 1, Position - 1) = Slice (Source, 1, Position - 1)
!          and then
!            Slice (Source, Position, Position - 1 + New_Item'Length) = New_Item
!          and then
!            (if Position - 1 + New_Item'Length < Length (Source)'Old then
  
+               --  There are some unchanged characters of Source remaining
+               --  after New_Item.
+ 
+               Slice (Source,
+                 Position + New_Item'Length, Length (Source)'Old) =
+                   Slice (Source,
+                     --  Really "Position + New_Item'Length" but expressed with
+                     --  a conditional repeating the above test so that the
+                     --  call to Slice is valid on entry (under 'Old) even
+                     --  when the test evaluates to False.
+                     (if Position - 1 + New_Item'Length < Length (Source)
+                      then Position + New_Item'Length
+                      else 1),
+                     Length (Source))'Old),
       Global => null;
  
     function Delete
*************** is
*** 620,631 ****
        From    : Positive;
        Through : Natural) return Unbounded_String
     with
!      Pre            => (if Through <= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Delete'Result) = Length (Source) - (Through - From + 1),
          others          =>
!           Length (Delete'Result) = Length (Source)),
       Global         => null;
  
     procedure Delete
--- 1301,1319 ----
        From    : Positive;
        Through : Natural) return Unbounded_String
     with
!      Pre            => (if Through >= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Delete'Result) =
!             From - 1 + Natural'Max (Length (Source) - Through, 0)
!             and then
!               Slice (Delete'Result, 1, From - 1) = Slice (Source, 1, From - 1)
!             and then
!               (if Through < Length (Source) then
!                  Slice (Delete'Result, From, Length (Delete'Result)) =
!                    Slice (Source, Through + 1, Length (Source))),
          others          =>
!              Delete'Result = Source),
       Global         => null;
  
     procedure Delete
*************** is
*** 633,714 ****
        From    : Positive;
        Through : Natural)
     with
!      Pre            => (if Through <= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Source) = Length (Source)'Old - (Through - From + 1),
          others          =>
!           Length (Source) = Length (Source)'Old),
       Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Side   : Trim_End) return Unbounded_String
     with
!      Post   => Length (Trim'Result) <= Length (Source),
!      Global => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Side   : Trim_End)
     with
!      Post   => Length (Source) <= Length (Source)'Old,
!      Global => null;
  
     function Trim
       (Source : Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set) return Unbounded_String
     with
!      Post   => Length (Trim'Result) <= Length (Source),
!      Global => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set)
     with
!      Post   => Length (Source) <= Length (Source)'Old,
!      Global => null;
  
     function Head
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post   => Length (Head'Result) = Count,
!      Global => null;
  
     procedure Head
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post   => Length (Source) = Count,
!      Global => null;
  
     function Tail
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post   => Length (Tail'Result) = Count,
!      Global => null;
  
     procedure Tail
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post   => Length (Source) = Count,
!      Global => null;
  
     function "*"
       (Left  : Natural;
        Right : Character) return Unbounded_String
     with
       Pre    => Left <= Natural'Last,
!      Post   => Length ("*"'Result) = Left,
       Global => null;
  
     function "*"
--- 1321,1575 ----
        From    : Positive;
        Through : Natural)
     with
!      Pre            => (if Through >= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Source) =
!             From - 1 + Natural'Max (Length (Source)'Old - Through, 0)
!             and then
!               Slice (Source, 1, From - 1) =
!                 To_String (Source)'Old (1 .. From - 1)
!             and then
!               (if Through < Length (Source) then
!                 Slice (Source, From, Length (Source)) =
!                   To_String (Source)'Old (Through + 1 .. Length (Source)'Old)),
          others          =>
!           To_String (Source) = To_String (Source)'Old),
       Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Side   : Trim_End) return Unbounded_String
     with
!      Contract_Cases =>
!        --  If all characters in Source are Space, the returned string is
!        --  empty.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Length (Trim'Result) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                (if Side = Right then 1
!                 else Index_Non_Blank (Source, Forward));
!              High : constant Positive :=
!                (if Side = Left then Length (Source)
!                 else Index_Non_Blank (Source, Backward));
!            begin
!              To_String (Trim'Result) = Slice (Source, Low, High))),
!      Global         => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Side   : Trim_End)
     with
!      Contract_Cases =>
!        --  If all characters in Source are Space, the returned string is
!        --  empty.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Length (Source) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                (if Side = Right then 1
!                 else Index_Non_Blank (Source, Forward)'Old);
!              High : constant Positive :=
!                (if Side = Left then Length (Source)'Old
!                 else Index_Non_Blank (Source, Backward)'Old);
!            begin
!              To_String (Source) = To_String (Source)'Old (Low .. High))),
!      Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set) return Unbounded_String
     with
!      Contract_Cases =>
!        --  If all characters in Source are contained in one of the sets Left
!        --  or Right, then the returned string is empty.
! 
!        ((for all C of To_String (Source) => Maps.Is_In (C, Left))
!           or else
!             (for all C of To_String (Source) => Maps.Is_In (C, Right))
!         =>
!           Length (Trim'Result) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                Index (Source, Left, Outside, Forward);
!              High : constant Positive :=
!                Index (Source, Right, Outside, Backward);
!            begin
!              To_String (Trim'Result) = Slice (Source, Low, High))),
!      Global         => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set)
     with
!      Contract_Cases =>
!        --  If all characters in Source are contained in one of the sets Left
!        --  or Right, then the returned string is empty.
! 
!        ((for all C of To_String (Source) => Maps.Is_In (C, Left))
!           or else
!             (for all C of To_String (Source) => Maps.Is_In (C, Right))
!         =>
!           Length (Source) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                Index (Source, Left, Outside, Forward)'Old;
!              High : constant Positive :=
!                Index (Source, Right, Outside, Backward)'Old;
!            begin
!              To_String (Source) = To_String (Source)'Old (Low .. High))),
!      Global         => null;
  
     function Head
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post           => Length (Head'Result) = Count,
!      Contract_Cases =>
!        (Count <= Length (Source)
!         =>
!           --  Source is cut
! 
!           To_String (Head'Result) = Slice (Source, 1, Count),
! 
!         others
!         =>
!           --  Source is followed by Pad characters
! 
!           Slice (Head'Result, 1, Length (Source)) = To_String (Source)
!             and then
!               Slice (Head'Result, Length (Source) + 1, Count) =
!                 [1 .. Count - Length (Source) => Pad]),
!      Global         => null;
  
     procedure Head
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post           => Length (Source) = Count,
!      Contract_Cases =>
!        (Count <= Length (Source)
!         =>
!           --  Source is cut
! 
!           To_String (Source) = Slice (Source, 1, Count),
! 
!         others
!         =>
!           --  Source is followed by Pad characters
! 
!           Slice (Source, 1, Length (Source)'Old) = To_String (Source)'Old
!             and then
!               Slice (Source, Length (Source)'Old + 1, Count) =
!                 [1 .. Count - Length (Source)'Old => Pad]),
!      Global         => null;
  
     function Tail
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post           => Length (Tail'Result) = Count,
!      Contract_Cases =>
!        (Count = 0
!         =>
!           True,
! 
!         (Count in 1 .. Length (Source))
!         =>
!           --  Source is cut
! 
!           To_String (Tail'Result) =
!             Slice (Source, Length (Source) - Count + 1, Length (Source)),
! 
!         others
!         =>
!           --  Source is preceded by Pad characters
! 
!           (if Length (Source) = 0 then
!             To_String (Tail'Result) = [1 .. Count => Pad]
!           else
!             Slice (Tail'Result, 1, Count - Length (Source)) =
!               [1 .. Count - Length (Source) => Pad]
!               and then
!                 Slice (Tail'Result, Count - Length (Source) + 1, Count) =
!                   To_String (Source))),
!      Global         => null;
  
     procedure Tail
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post           => Length (Source) = Count,
!      Contract_Cases =>
!        (Count = 0
!         =>
!           True,
! 
!         (Count in  1 .. Length (Source))
!         =>
!           --  Source is cut
! 
!           To_String (Source) =
!             Slice (Source,
!               --  Really "Length (Source) - Count + 1" but expressed with a
!               --  conditional repeating the above guard so that the call to
!               --  Slice is valid on entry (under 'Old) even when the test
!               --  evaluates to False.
!               (if Count <= Length (Source) then Length (Source) - Count + 1
!                else 1),
!               Length (Source))'Old,
! 
!         others
!         =>
!           --  Source is preceded by Pad characters
! 
!           (if Length (Source)'Old = 0 then
!             To_String (Source) = [1 .. Count => Pad]
!           else
!             Slice (Source, 1, Count - Length (Source)'Old) =
!               [1 .. Count - Length (Source)'Old => Pad]
!               and then
!                 Slice (Source, Count - Length (Source)'Old + 1, Count) =
!                   To_String (Source)'Old)),
!      Global         => null;
  
     function "*"
       (Left  : Natural;
        Right : Character) return Unbounded_String
     with
       Pre    => Left <= Natural'Last,
!      Post   => To_String ("*"'Result) = [1 .. Left => Right],
       Global => null;
  
     function "*"
*************** is
*** 716,722 ****
        Right : String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Right'Length <= Natural'Last / Left),
!      Post   => Length ("*"'Result) = Left * Right'Length,
       Global => null;
  
     function "*"
--- 1577,1589 ----
        Right : String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Right'Length <= Natural'Last / Left),
!      Post =>
!        Length ("*"'Result) = Left * Right'Length
!          and then
!            (if Right'Length > 0 then
!               (for all K in 1 .. Left * Right'Length =>
!                  Element ("*"'Result, K) =
!                    Right (Right'First + (K - 1) mod Right'Length))),
       Global => null;
  
     function "*"
*************** is
*** 724,730 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Length (Right) <= Natural'Last / Left),
!      Post   => Length ("*"'Result) = Left * Length (Right),
       Global => null;
  
     --  Each of the transformation functions (Replace_Slice, Insert, Overwrite,
--- 1591,1603 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Length (Right) <= Natural'Last / Left),
!      Post =>
!        Length ("*"'Result) = Left * Length (Right)
!          and then
!            (if Length (Right) > 0 then
!               (for all K in 1 .. Left * Length (Right) =>
!                  Element ("*"'Result, K) =
!                    Element (Right, 1 + (K - 1) mod Length (Right)))),
       Global => null;
  
     --  Each of the transformation functions (Replace_Slice, Insert, Overwrite,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strunb__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-strunb__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-strunb__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strunb__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,41 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Strings.Search;
  with Ada.Unchecked_Deallocation;
  
  package body Ada.Strings.Unbounded is
  
     use Ada.Strings.Maps;
  
     Growth_Factor : constant := 2;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
--- 29,57 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with Ada.Unchecked_Deallocation;
  
  package body Ada.Strings.Unbounded is
  
     use Ada.Strings.Maps;
  
+    procedure Non_Inlined_Append
+      (Source   : in out Unbounded_String;
+       New_Item : Unbounded_String);
+ 
+    procedure Non_Inlined_Append
+      (Source   : in out Unbounded_String;
+       New_Item : String);
+ 
+    procedure Non_Inlined_Append
+       (Source   : in out Unbounded_String;
+        New_Item : Character);
+    --  Non_Inlined_Append are part of the respective Append method that
+    --  should not be inlined. The idea is that the code of Append is inlined.
+    --  In order to make inlining efficient it is better to have the inlined
+    --  code as small as possible. Thus most common cases are inlined and less
+    --  common cases are deferred in these functions.
+ 
     Growth_Factor : constant := 2;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
*************** package body Ada.Strings.Unbounded is
*** 58,64 ****
     --  Calculation takes into account alignment of the allocated memory
     --  segments to use memory effectively by Append/Insert/etc operations.
  
!    function Sum (Left : Natural; Right : Integer) return Natural with Inline;
     --  Returns summary of Left and Right, raise Constraint_Error on overflow
  
     function Mul (Left, Right : Natural) return Natural with Inline;
--- 74,80 ----
     --  Calculation takes into account alignment of the allocated memory
     --  segments to use memory effectively by Append/Insert/etc operations.
  
!    function Sum (Left, Right : Natural) return Natural with Inline;
     --  Returns summary of Left and Right, raise Constraint_Error on overflow
  
     function Mul (Left, Right : Natural) return Natural with Inline;
*************** package body Ada.Strings.Unbounded is
*** 165,171 ****
        else
           DR := Allocate (DL);
           DR.Data (1 .. Left'Length) := Left;
!          DR.Data (Left'Length + 1 .. DL) := RR.Data (1 .. RR.Last);
           DR.Last := DL;
        end if;
  
--- 181,191 ----
        else
           DR := Allocate (DL);
           DR.Data (1 .. Left'Length) := Left;
! 
!          if Left'Length < Natural'Last then
!             DR.Data (Left'Length + 1 .. DL) := RR.Data (1 .. RR.Last);
!          end if;
! 
           DR.Last := DL;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 243,249 ****
     is
        DL : constant Natural := Mul (Left, Right'Length);
        DR : Shared_String_Access;
!       K  : Positive;
  
     begin
        --  Result is an empty string, reuse shared empty string
--- 263,269 ----
     is
        DL : constant Natural := Mul (Left, Right'Length);
        DR : Shared_String_Access;
!       K  : Natural;
  
     begin
        --  Result is an empty string, reuse shared empty string
*************** package body Ada.Strings.Unbounded is
*** 255,264 ****
  
        else
           DR := Allocate (DL);
!          K := 1;
  
           for J in 1 .. Left loop
!             DR.Data (K .. K + Right'Length - 1) := Right;
              K := K + Right'Length;
           end loop;
  
--- 275,284 ----
  
        else
           DR := Allocate (DL);
!          K := 0;
  
           for J in 1 .. Left loop
!             DR.Data (K + 1 .. K + Right'Length) := Right;
              K := K + Right'Length;
           end loop;
  
*************** package body Ada.Strings.Unbounded is
*** 275,281 ****
        RR : constant Shared_String_Access := Right.Reference;
        DL : constant Natural := Mul (Left, RR.Last);
        DR : Shared_String_Access;
!       K  : Positive;
  
     begin
        --  Result is an empty string, reuse shared empty string
--- 295,301 ----
        RR : constant Shared_String_Access := Right.Reference;
        DL : constant Natural := Mul (Left, RR.Last);
        DR : Shared_String_Access;
!       K  : Natural;
  
     begin
        --  Result is an empty string, reuse shared empty string
*************** package body Ada.Strings.Unbounded is
*** 293,302 ****
  
        else
           DR := Allocate (DL);
!          K := 1;
  
           for J in 1 .. Left loop
!             DR.Data (K .. K + RR.Last - 1) := RR.Data (1 .. RR.Last);
              K := K + RR.Last;
           end loop;
  
--- 313,322 ----
  
        else
           DR := Allocate (DL);
!          K := 0;
  
           for J in 1 .. Left loop
!             DR.Data (K + 1 .. K + RR.Last) := RR.Data (1 .. RR.Last);
              K := K + RR.Last;
           end loop;
  
*************** package body Ada.Strings.Unbounded is
*** 539,548 ****
       (Source   : in out Unbounded_String;
        New_Item : Unbounded_String)
     is
        SR  : constant Shared_String_Access := Source.Reference;
        NR  : constant Shared_String_Access := New_Item.Reference;
-       DL  : constant Natural              := Sum (SR.Last, NR.Last);
-       DR  : Shared_String_Access;
  
     begin
        --  Source is an empty string, reuse New_Item data
--- 559,570 ----
       (Source   : in out Unbounded_String;
        New_Item : Unbounded_String)
     is
+       pragma Suppress (All_Checks);
+       --  Suppress checks as they are redundant with the checks done in that
+       --  function.
+ 
        SR  : constant Shared_String_Access := Source.Reference;
        NR  : constant Shared_String_Access := New_Item.Reference;
  
     begin
        --  Source is an empty string, reuse New_Item data
*************** package body Ada.Strings.Unbounded is
*** 559,577 ****
  
        --  Try to reuse existing shared string
  
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          SR.Last := DL;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL, DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 581,597 ----
  
        --  Try to reuse existing shared string
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          and then NR.Last <= SR.Max_Length
!          and then SR.Max_Length - NR.Last >= SR.Last
!       then
!          SR.Data (SR.Last + 1 .. SR.Last + NR.Last) := NR.Data (1 .. NR.Last);
!          SR.Last := SR.Last + NR.Last;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Unbounded is
*** 579,609 ****
       (Source   : in out Unbounded_String;
        New_Item : String)
     is
!       SR : constant Shared_String_Access := Source.Reference;
!       DL : constant Natural := Sum (SR.Last, New_Item'Length);
!       DR : Shared_String_Access;
  
     begin
-       --  New_Item is an empty string, nothing to do
  
        if New_Item'Length = 0 then
           null;
  
!       --  Try to reuse existing shared string
! 
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := New_Item;
!          SR.Last := DL;
! 
!       --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL, DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 599,632 ----
       (Source   : in out Unbounded_String;
        New_Item : String)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       New_Item_Length : constant Natural := New_Item'Length;
+       SR : constant Shared_String_Access := Source.Reference;
     begin
  
        if New_Item'Length = 0 then
+          --  New_Item is an empty string, nothing to do
           null;
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          --  The following test checks in fact that
!          --  SR.Max_Length >= SR.Last + New_Item_Length without causing
!          --  overflow.
!          and then New_Item_Length <= SR.Max_Length
!          and then SR.Max_Length - New_Item_Length >= SR.Last
!       then
!          --  Try to reuse existing shared string
!          SR.Data (SR.Last + 1 .. SR.Last + New_Item_Length) := New_Item;
!          SR.Last := SR.Last + New_Item_Length;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Unbounded is
*** 611,636 ****
       (Source   : in out Unbounded_String;
        New_Item : Character)
     is
!       SR : constant Shared_String_Access := Source.Reference;
!       DL : constant Natural := Sum (SR.Last, 1);
!       DR : Shared_String_Access;
  
     begin
!       --  Try to reuse existing shared string
! 
!       if Can_Be_Reused (SR, DL) then
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
-       --  Otherwise, allocate new one and fill it
- 
        else
!          DR := Allocate (DL, DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 634,657 ----
       (Source   : in out Unbounded_String;
        New_Item : Character)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       SR : constant Shared_String_Access := Source.Reference;
     begin
!       if System.Atomic_Counters.Is_One (SR.Counter)
!          and then SR.Max_Length > SR.Last
!       then
!          --  Try to reuse existing shared string
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Unbounded is
*** 703,717 ****
           Reference (SR);
           DR := SR;
  
!       --  Index is out of range
  
!       elsif Through > SR.Last then
           raise Index_Error;
  
        --  Compute size of the result
  
        else
!          DL := SR.Last - (Through - From + 1);
  
           --  Result is an empty string, reuse shared empty string
  
--- 724,738 ----
           Reference (SR);
           DR := SR;
  
!       --  From is too large
  
!       elsif From - 1 > SR.Last then
           raise Index_Error;
  
        --  Compute size of the result
  
        else
!          DL := SR.Last - (Natural'Min (SR.Last, Through) - From + 1);
  
           --  Result is an empty string, reuse shared empty string
  
*************** package body Ada.Strings.Unbounded is
*** 723,729 ****
           else
              DR := Allocate (DL);
              DR.Data (1 .. From - 1) := SR.Data (1 .. From - 1);
!             DR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
              DR.Last := DL;
           end if;
        end if;
--- 744,754 ----
           else
              DR := Allocate (DL);
              DR.Data (1 .. From - 1) := SR.Data (1 .. From - 1);
! 
!             if Through < Natural'Last then
!                DR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
!             end if;
! 
              DR.Last := DL;
           end if;
        end if;
*************** package body Ada.Strings.Unbounded is
*** 746,758 ****
        if From > Through then
           null;
  
!       --  Through is outside of the range
  
!       elsif Through > SR.Last then
           raise Index_Error;
  
        else
!          DL := SR.Last - (Through - From + 1);
  
           --  Result is empty, reuse shared empty string
  
--- 771,783 ----
        if From > Through then
           null;
  
!       --  From is too large
  
!       elsif From - 1 > SR.Last then
           raise Index_Error;
  
        else
!          DL := SR.Last - (Natural'Min (SR.Last, Through) - From + 1);
  
           --  Result is empty, reuse shared empty string
  
*************** package body Ada.Strings.Unbounded is
*** 763,769 ****
           --  Try to reuse existing shared string
  
           elsif Can_Be_Reused (SR, DL) then
!             SR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
              SR.Last := DL;
  
           --  Otherwise, allocate new shared string
--- 788,797 ----
           --  Try to reuse existing shared string
  
           elsif Can_Be_Reused (SR, DL) then
!             if Through < Natural'Last then
!                SR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
!             end if;
! 
              SR.Last := DL;
  
           --  Otherwise, allocate new shared string
*************** package body Ada.Strings.Unbounded is
*** 771,777 ****
           else
              DR := Allocate (DL);
              DR.Data (1 .. From - 1) := SR.Data (1 .. From - 1);
!             DR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
              DR.Last := DL;
              Source.Reference := DR;
              Unreference (SR);
--- 799,809 ----
           else
              DR := Allocate (DL);
              DR.Data (1 .. From - 1) := SR.Data (1 .. From - 1);
! 
!             if Through < Natural'Last then
!                DR.Data (From .. DL) := SR.Data (Through + 1 .. SR.Last);
!             end if;
! 
              DR.Last := DL;
              Source.Reference := DR;
              Unreference (SR);
*************** package body Ada.Strings.Unbounded is
*** 787,795 ****
       (Source : Unbounded_String;
        Index  : Positive) return Character
     is
        SR : constant Shared_String_Access := Source.Reference;
     begin
!       if Index <= SR.Last then
           return SR.Data (Index);
        else
           raise Index_Error;
--- 819,828 ----
       (Source : Unbounded_String;
        Index  : Positive) return Character
     is
+       pragma Suppress (All_Checks);
        SR : constant Shared_String_Access := Source.Reference;
     begin
!       if Index <= SR.Last and then Index > 0 then
           return SR.Data (Index);
        else
           raise Index_Error;
*************** package body Ada.Strings.Unbounded is
*** 1093,1099 ****
     begin
        --  Check index first
  
!       if Before > SR.Last + 1 then
           raise Index_Error;
        end if;
  
--- 1126,1132 ----
     begin
        --  Check index first
  
!       if Before - 1 > SR.Last then
           raise Index_Error;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1113,1121 ****
        else
           DR := Allocate (DL, DL / Growth_Factor);
           DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
!          DR.Data (Before .. Before + New_Item'Length - 1) := New_Item;
!          DR.Data (Before + New_Item'Length .. DL) :=
!            SR.Data (Before .. SR.Last);
           DR.Last := DL;
        end if;
  
--- 1146,1158 ----
        else
           DR := Allocate (DL, DL / Growth_Factor);
           DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
!          DR.Data (Before .. Before - 1 + New_Item'Length) := New_Item;
! 
!          if Before <= SR.Last then
!             DR.Data (Before + New_Item'Length .. DL) :=
!               SR.Data (Before .. SR.Last);
!          end if;
! 
           DR.Last := DL;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1134,1140 ****
     begin
        --  Check bounds
  
!       if Before > SR.Last + 1 then
           raise Index_Error;
        end if;
  
--- 1171,1177 ----
     begin
        --  Check bounds
  
!       if Before - 1 > SR.Last then
           raise Index_Error;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1152,1160 ****
        --  Try to reuse existing shared string first
  
        elsif Can_Be_Reused (SR, DL) then
!          SR.Data (Before + New_Item'Length .. DL) :=
!            SR.Data (Before .. SR.Last);
!          SR.Data (Before .. Before + New_Item'Length - 1) := New_Item;
           SR.Last := DL;
  
        --  Otherwise, allocate new shared string and fill it
--- 1189,1200 ----
        --  Try to reuse existing shared string first
  
        elsif Can_Be_Reused (SR, DL) then
!          if Before <= SR.Last then
!             SR.Data (Before + New_Item'Length .. DL) :=
!               SR.Data (Before .. SR.Last);
!          end if;
! 
!          SR.Data (Before .. Before - 1 + New_Item'Length) := New_Item;
           SR.Last := DL;
  
        --  Otherwise, allocate new shared string and fill it
*************** package body Ada.Strings.Unbounded is
*** 1162,1170 ****
        else
           DR := Allocate (DL, DL / Growth_Factor);
           DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
!          DR.Data (Before .. Before + New_Item'Length - 1) := New_Item;
!          DR.Data (Before + New_Item'Length .. DL) :=
!            SR.Data (Before .. SR.Last);
           DR.Last := DL;
           Source.Reference := DR;
           Unreference (SR);
--- 1202,1214 ----
        else
           DR := Allocate (DL, DL / Growth_Factor);
           DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
!          DR.Data (Before .. Before - 1 + New_Item'Length) := New_Item;
! 
!          if Before <= SR.Last then
!             DR.Data (Before + New_Item'Length .. DL) :=
!               SR.Data (Before .. SR.Last);
!          end if;
! 
           DR.Last := DL;
           Source.Reference := DR;
           Unreference (SR);
*************** package body Ada.Strings.Unbounded is
*** 1190,1195 ****
--- 1234,1299 ----
        return Left * Right;
     end Mul;
  
+    ------------------------
+    -- Non_Inlined_Append --
+    ------------------------
+ 
+    procedure Non_Inlined_Append
+        (Source   : in out Unbounded_String;
+         New_Item : Unbounded_String)
+    is
+       SR : constant Shared_String_Access := Source.Reference;
+       NR  : constant Shared_String_Access := New_Item.Reference;
+       DL : constant Natural := Sum (SR.Last, NR.Last);
+       DR : Shared_String_Access;
+    begin
+       DR := Allocate (DL, DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+      (Source   : in out Unbounded_String;
+       New_Item : String)
+    is
+       SR : constant Shared_String_Access := Source.Reference;
+       DL : constant Natural := Sum (SR.Last, New_Item'Length);
+       DR : Shared_String_Access;
+    begin
+       DR := Allocate (DL, DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := New_Item;
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+       (Source   : in out Unbounded_String;
+        New_Item : Character)
+    is
+       SR : constant Shared_String_Access := Source.Reference;
+    begin
+       if SR.Last = Natural'Last then
+          raise Constraint_Error;
+       else
+          declare
+             DL : constant Natural := SR.Last + 1;
+             DR : Shared_String_Access;
+          begin
+             DR := Allocate (DL, DL / Growth_Factor);
+             DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+             DR.Data (DL) := New_Item;
+             DR.Last := DL;
+             Source.Reference := DR;
+             Unreference (SR);
+          end;
+       end if;
+    end Non_Inlined_Append;
+ 
     ---------------
     -- Overwrite --
     ---------------
*************** package body Ada.Strings.Unbounded is
*** 1206,1212 ****
     begin
        --  Check bounds
  
!       if Position > SR.Last + 1 then
           raise Index_Error;
        end if;
  
--- 1310,1316 ----
     begin
        --  Check bounds
  
!       if Position - 1 > SR.Last then
           raise Index_Error;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1228,1236 ****
        else
           DR := Allocate (DL);
           DR.Data (1 .. Position - 1) := SR.Data (1 .. Position - 1);
!          DR.Data (Position .. Position + New_Item'Length - 1) := New_Item;
!          DR.Data (Position + New_Item'Length .. DL) :=
!            SR.Data (Position + New_Item'Length .. SR.Last);
           DR.Last := DL;
        end if;
  
--- 1332,1344 ----
        else
           DR := Allocate (DL);
           DR.Data (1 .. Position - 1) := SR.Data (1 .. Position - 1);
!          DR.Data (Position .. Position - 1 + New_Item'Length) := New_Item;
! 
!          if Position <= SR.Last - New_Item'Length then
!             DR.Data (Position + New_Item'Length .. DL) :=
!               SR.Data (Position + New_Item'Length .. SR.Last);
!          end if;
! 
           DR.Last := DL;
        end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1249,1259 ****
     begin
        --  Bounds check
  
!       if Position > SR.Last + 1 then
           raise Index_Error;
        end if;
  
!       DL := Integer'Max (SR.Last, Position + New_Item'Length - 1);
  
        --  Result is empty string, reuse empty shared string
  
--- 1357,1367 ----
     begin
        --  Bounds check
  
!       if Position - 1 > SR.Last then
           raise Index_Error;
        end if;
  
!       DL := Integer'Max (SR.Last, Sum (Position - 1, New_Item'Length));
  
        --  Result is empty string, reuse empty shared string
  
*************** package body Ada.Strings.Unbounded is
*** 1269,1275 ****
        --  Try to reuse existing shared string
  
        elsif Can_Be_Reused (SR, DL) then
!          SR.Data (Position .. Position + New_Item'Length - 1) := New_Item;
           SR.Last := DL;
  
        --  Otherwise allocate new shared string and fill it
--- 1377,1383 ----
        --  Try to reuse existing shared string
  
        elsif Can_Be_Reused (SR, DL) then
!          SR.Data (Position .. Position - 1 + New_Item'Length) := New_Item;
           SR.Last := DL;
  
        --  Otherwise allocate new shared string and fill it
*************** package body Ada.Strings.Unbounded is
*** 1277,1285 ****
        else
           DR := Allocate (DL);
           DR.Data (1 .. Position - 1) := SR.Data (1 .. Position - 1);
!          DR.Data (Position .. Position + New_Item'Length - 1) := New_Item;
!          DR.Data (Position + New_Item'Length .. DL) :=
!            SR.Data (Position + New_Item'Length .. SR.Last);
           DR.Last := DL;
           Source.Reference := DR;
           Unreference (SR);
--- 1385,1397 ----
        else
           DR := Allocate (DL);
           DR.Data (1 .. Position - 1) := SR.Data (1 .. Position - 1);
!          DR.Data (Position .. Position - 1 + New_Item'Length) := New_Item;
! 
!          if Position <= SR.Last - New_Item'Length then
!             DR.Data (Position + New_Item'Length .. DL) :=
!               SR.Data (Position + New_Item'Length .. SR.Last);
!          end if;
! 
           DR.Last := DL;
           Source.Reference := DR;
           Unreference (SR);
*************** package body Ada.Strings.Unbounded is
*** 1365,1379 ****
     begin
        --  Check bounds
  
!       if Low > SR.Last + 1 then
           raise Index_Error;
        end if;
  
        --  Do replace operation when removed slice is not empty
  
        if High >= Low then
!          DL := Sum (SR.Last,
!                     By'Length + Low - Integer'Min (High, SR.Last) - 1);
           --  This is the number of characters remaining in the string after
           --  replacing the slice.
  
--- 1477,1490 ----
     begin
        --  Check bounds
  
!       if Low - 1 > SR.Last then
           raise Index_Error;
        end if;
  
        --  Do replace operation when removed slice is not empty
  
        if High >= Low then
!          DL := Sum (Low - 1 + Integer'Max (SR.Last - High, 0), By'Length);
           --  This is the number of characters remaining in the string after
           --  replacing the slice.
  
*************** package body Ada.Strings.Unbounded is
*** 1387,1394 ****
           else
              DR := Allocate (DL);
              DR.Data (1 .. Low - 1) := SR.Data (1 .. Low - 1);
!             DR.Data (Low .. Low + By'Length - 1) := By;
!             DR.Data (Low + By'Length .. DL) := SR.Data (High + 1 .. SR.Last);
              DR.Last := DL;
           end if;
  
--- 1498,1510 ----
           else
              DR := Allocate (DL);
              DR.Data (1 .. Low - 1) := SR.Data (1 .. Low - 1);
!             DR.Data (Low .. Low - 1 + By'Length) := By;
! 
!             if High < SR.Last then
!                DR.Data (Low + By'Length .. DL) :=
!                  SR.Data (High + 1 .. SR.Last);
!             end if;
! 
              DR.Last := DL;
           end if;
  
*************** package body Ada.Strings.Unbounded is
*** 1414,1427 ****
     begin
        --  Bounds check
  
!       if Low > SR.Last + 1 then
           raise Index_Error;
        end if;
  
        --  Do replace operation only when replaced slice is not empty
  
        if High >= Low then
!          DL := By'Length + SR.Last + Low - Integer'Min (High, SR.Last) - 1;
           --  This is the number of characters remaining in the string after
           --  replacing the slice.
  
--- 1530,1543 ----
     begin
        --  Bounds check
  
!       if Low - 1 > SR.Last then
           raise Index_Error;
        end if;
  
        --  Do replace operation only when replaced slice is not empty
  
        if High >= Low then
!          DL := Sum (Low - 1 + Integer'Max (SR.Last - High, 0), By'Length);
           --  This is the number of characters remaining in the string after
           --  replacing the slice.
  
*************** package body Ada.Strings.Unbounded is
*** 1434,1441 ****
           --  Try to reuse existing shared string
  
           elsif Can_Be_Reused (SR, DL) then
!             SR.Data (Low + By'Length .. DL) := SR.Data (High + 1 .. SR.Last);
!             SR.Data (Low .. Low + By'Length - 1) := By;
              SR.Last := DL;
  
           --  Otherwise allocate new shared string and fill it
--- 1550,1561 ----
           --  Try to reuse existing shared string
  
           elsif Can_Be_Reused (SR, DL) then
!             if High < SR.Last then
!                SR.Data (Low + By'Length .. DL) :=
!                  SR.Data (High + 1 .. SR.Last);
!             end if;
! 
!             SR.Data (Low .. Low - 1 + By'Length) := By;
              SR.Last := DL;
  
           --  Otherwise allocate new shared string and fill it
*************** package body Ada.Strings.Unbounded is
*** 1443,1450 ****
           else
              DR := Allocate (DL);
              DR.Data (1 .. Low - 1) := SR.Data (1 .. Low - 1);
!             DR.Data (Low .. Low + By'Length - 1) := By;
!             DR.Data (Low + By'Length .. DL) := SR.Data (High + 1 .. SR.Last);
              DR.Last := DL;
              Source.Reference := DR;
              Unreference (SR);
--- 1563,1575 ----
           else
              DR := Allocate (DL);
              DR.Data (1 .. Low - 1) := SR.Data (1 .. Low - 1);
!             DR.Data (Low .. Low - 1 + By'Length) := By;
! 
!             if High < SR.Last then
!                DR.Data (Low + By'Length .. DL) :=
!                  SR.Data (High + 1 .. SR.Last);
!             end if;
! 
              DR.Last := DL;
              Source.Reference := DR;
              Unreference (SR);
*************** package body Ada.Strings.Unbounded is
*** 1509,1515 ****
     begin
        --  Note: test of High > Length is in accordance with AI95-00128
  
!       if Low > SR.Last + 1 or else High > SR.Last then
           raise Index_Error;
  
        else
--- 1634,1640 ----
     begin
        --  Note: test of High > Length is in accordance with AI95-00128
  
!       if Low - 1 > SR.Last or else High > SR.Last then
           raise Index_Error;
  
        else
*************** package body Ada.Strings.Unbounded is
*** 1521,1527 ****
     -- Sum --
     ---------
  
!    function Sum (Left : Natural; Right : Integer) return Natural is
        pragma Unsuppress (Overflow_Check);
     begin
        return Left + Right;
--- 1646,1652 ----
     -- Sum --
     ---------
  
!    function Sum (Left, Right : Natural) return Natural is
        pragma Unsuppress (Overflow_Check);
     begin
        return Left + Right;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-strunb__shared.ads gcc-15.1.0/gcc/ada/libgnat/a-strunb__shared.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-strunb__shared.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-strunb__shared.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,43 ****
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
! --  setting the corresponding assertion policy to Ignore.
  
! pragma Assertion_Policy (Pre => Ignore);
  
  --  This package provides an implementation of Ada.Strings.Unbounded that uses
  --  reference counts to implement copy on modification (rather than copy on
--- 35,48 ----
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
! --  setting the corresponding assertion policy to Ignore. Postconditions and
! --  contract cases should not be executed at runtime as well, in order not to
! --  slow down the execution of these functions.
  
! pragma Assertion_Policy (Pre            => Ignore,
!                          Post           => Ignore,
!                          Contract_Cases => Ignore,
!                          Ghost          => Ignore);
  
  --  This package provides an implementation of Ada.Strings.Unbounded that uses
  --  reference counts to implement copy on modification (rather than copy on
*************** pragma Assertion_Policy (Pre => Ignore);
*** 77,93 ****
     --  make objects of Unbounded_String thread-safe: an instance cannot be
     --  accessed by several tasks simultaneously.
  
! with Ada.Strings.Maps;
  private with Ada.Finalization;
  private with System.Atomic_Counters;
  private with Ada.Strings.Text_Buffers;
  
  package Ada.Strings.Unbounded with
    Initial_Condition => Length (Null_Unbounded_String) = 0,
    Always_Terminates
  is
     pragma Preelaborate;
  
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
     pragma Preelaborable_Initialization (Unbounded_String);
--- 82,107 ----
     --  make objects of Unbounded_String thread-safe: an instance cannot be
     --  accessed by several tasks simultaneously.
  
! with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  private with Ada.Finalization;
  private with System.Atomic_Counters;
+ with Ada.Strings.Search;
  private with Ada.Strings.Text_Buffers;
  
  package Ada.Strings.Unbounded with
+   SPARK_Mode,
    Initial_Condition => Length (Null_Unbounded_String) = 0,
    Always_Terminates
  is
     pragma Preelaborate;
  
+    --  Contracts may call function Length in the prefix of attribute reference
+    --  to Old as in Length (Source)'Old. Allow this use.
+ 
+    pragma Unevaluated_Use_Of_Old (Allow);
+ 
+    subtype String_1 is String (1 .. <>) with Ghost;  --  Type used in contracts
+ 
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
     pragma Preelaborable_Initialization (Unbounded_String);
*************** is
*** 99,105 ****
  
     type String_Access is access all String;
  
!    procedure Free (X : in out String_Access);
  
     --------------------------------------------------------
     -- Conversion, Concatenation, and Selection Functions --
--- 113,119 ----
  
     type String_Access is access all String;
  
!    procedure Free (X : in out String_Access) with SPARK_Mode => Off;
  
     --------------------------------------------------------
     -- Conversion, Concatenation, and Selection Functions --
*************** is
*** 108,114 ****
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source,
       Global => null;
  
     function To_Unbounded_String
--- 122,129 ----
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source
!        and then Length (To_Unbounded_String'Result) = Source'Length,
       Global => null;
  
     function To_Unbounded_String
*************** is
*** 136,166 ****
        New_Item : Unbounded_String)
     with
       Pre    => Length (New_Item) <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + Length (New_Item),
!      Global => null;
  
     procedure Append
       (Source   : in out Unbounded_String;
        New_Item : String)
     with
       Pre    => New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + New_Item'Length,
!      Global => null;
  
     procedure Append
       (Source   : in out Unbounded_String;
        New_Item : Character)
     with
       Pre    => Length (Source) < Natural'Last,
!      Post   => Length (Source) = Length (Source)'Old + 1,
!      Global => null;
  
     function "&"
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) <= Natural'Last - Length (Left),
!      Post   => Length ("&"'Result) = Length (Left) + Length (Right),
       Global => null;
  
     function "&"
--- 151,185 ----
        New_Item : Unbounded_String)
     with
       Pre    => Length (New_Item) <= Natural'Last - Length (Source),
!      Post   =>
!        To_String (Source) = To_String (Source)'Old & To_String (New_Item),
!      Global => null,
!      Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_String;
        New_Item : String)
     with
       Pre    => New_Item'Length <= Natural'Last - Length (Source),
!      Post   => To_String (Source) = To_String (Source)'Old & New_Item,
!      Global => null,
!      Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_String;
        New_Item : Character)
     with
       Pre    => Length (Source) < Natural'Last,
!      Post   => To_String (Source) = To_String (Source)'Old & New_Item,
!      Global => null,
!      Inline => True;
  
     function "&"
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) <= Natural'Last - Length (Left),
!      Post   => To_String ("&"'Result) = To_String (Left) & To_String (Right),
       Global => null;
  
     function "&"
*************** is
*** 168,174 ****
        Right : String) return Unbounded_String
     with
       Pre    => Right'Length <= Natural'Last - Length (Left),
!      Post   => Length ("&"'Result) = Length (Left) + Right'Length,
       Global => null;
  
     function "&"
--- 187,193 ----
        Right : String) return Unbounded_String
     with
       Pre    => Right'Length <= Natural'Last - Length (Left),
!      Post   => To_String ("&"'Result) = To_String (Left) & Right,
       Global => null;
  
     function "&"
*************** is
*** 176,182 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Left'Length <= Natural'Last - Length (Right),
!      Post   => Length ("&"'Result) = Left'Length + Length (Right),
       Global => null;
  
     function "&"
--- 195,201 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Left'Length <= Natural'Last - Length (Right),
!      Post   => To_String ("&"'Result) = String_1 (Left) & To_String (Right),
       Global => null;
  
     function "&"
*************** is
*** 184,190 ****
        Right : Character) return Unbounded_String
     with
       Pre    => Length (Left) < Natural'Last,
!      Post   => Length ("&"'Result) = Length (Left) + 1,
       Global => null;
  
     function "&"
--- 203,209 ----
        Right : Character) return Unbounded_String
     with
       Pre    => Length (Left) < Natural'Last,
!      Post   => To_String ("&"'Result) = To_String (Left) & Right,
       Global => null;
  
     function "&"
*************** is
*** 192,198 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) < Natural'Last,
!      Post   => Length ("&"'Result) = Length (Right) + 1,
       Global => null;
  
     function Element
--- 211,217 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => Length (Right) < Natural'Last,
!      Post   => To_String ("&"'Result) = Left & To_String (Right),
       Global => null;
  
     function Element
*************** is
*** 201,207 ****
     with
       Pre    => Index <= Length (Source),
       Post   => Element'Result = To_String (Source) (Index),
!      Global => null;
  
     procedure Replace_Element
       (Source : in out Unbounded_String;
--- 220,227 ----
     with
       Pre    => Index <= Length (Source),
       Post   => Element'Result = To_String (Source) (Index),
!      Global => null,
!      Inline => True;
  
     procedure Replace_Element
       (Source : in out Unbounded_String;
*************** is
*** 209,215 ****
        By     : Character)
     with
       Pre    => Index <= Length (Source),
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
  
     function Slice
--- 229,236 ----
        By     : Character)
     with
       Pre    => Index <= Length (Source),
!      Post   =>
!        To_String (Source) = (To_String (Source)'Old with delta Index => By),
       Global => null;
  
     function Slice
*************** is
*** 218,224 ****
        High   : Natural) return String
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Slice'Result'Length = Natural'Max (0, High - Low + 1),
       Global => null;
  
     function Unbounded_Slice
--- 239,247 ----
        High   : Natural) return String
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Slice'Result'First = Low
!        and then Slice'Result'Last = High
!        and then Slice'Result = To_String (Source) (Low .. High),
       Global => null;
  
     function Unbounded_Slice
*************** is
*** 228,234 ****
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
       Post   =>
!        Length (Unbounded_Slice'Result) = Natural'Max (0, High - Low + 1),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
  
--- 251,257 ----
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
       Post   =>
!        To_String (Unbounded_Slice'Result) = To_String (Source) (Low .. High),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
  
*************** is
*** 239,245 ****
        High   : Natural)
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => Length (Target) = Natural'Max (0, High - Low + 1),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
  
--- 262,268 ----
        High   : Natural)
     with
       Pre    => Low - 1 <= Length (Source) and then High <= Length (Source),
!      Post   => To_String (Target) = To_String (Source) (Low .. High),
       Global => null;
     pragma Ada_05 (Unbounded_Slice);
  
*************** is
*** 268,339 ****
--- 291,374 ----
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<"'Result = (To_String (Left) < To_String (Right)),
       Global => null;
  
     function "<"
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "<"'Result = (To_String (Left) < Right),
       Global => null;
  
     function "<"
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<"'Result = (Left < To_String (Right)),
       Global => null;
  
     function "<="
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<="'Result = (To_String (Left) <= To_String (Right)),
       Global => null;
  
     function "<="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "<="'Result = (To_String (Left) <= Right),
       Global => null;
  
     function "<="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "<="'Result = (Left <= To_String (Right)),
       Global => null;
  
     function ">"
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">"'Result = (To_String (Left) > To_String (Right)),
       Global => null;
  
     function ">"
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => ">"'Result = (To_String (Left) > Right),
       Global => null;
  
     function ">"
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">"'Result = (Left > To_String (Right)),
       Global => null;
  
     function ">="
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">="'Result = (To_String (Left) >= To_String (Right)),
       Global => null;
  
     function ">="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => ">="'Result = (To_String (Left) >= Right),
       Global => null;
  
     function ">="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => ">="'Result = (Left >= To_String (Right)),
       Global => null;
  
     ------------------------
*************** is
*** 346,353 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre    => Pattern'Length /= 0,
!      Global => null;
  
     function Index
       (Source  : Unbounded_String;
--- 381,432 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre            => Pattern'Length > 0,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in 1 .. Length (Source) - (Pattern'Length - 1) =>
!                Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source) - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J <= Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
  
     function Index
       (Source  : Unbounded_String;
*************** is
*** 355,362 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0,
!      Global => null;
  
     function Index
       (Source : Unbounded_String;
--- 434,485 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre            => Pattern'Length /= 0 and then Mapping /= null,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in 1 .. Length (Source) - (Pattern'Length - 1) =>
!                Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source) - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J <= Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. Length (Source) - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
  
     function Index
       (Source : Unbounded_String;
*************** is
*** 364,370 ****
        Test   : Membership := Inside;
        Going  : Direction  := Forward) return Natural
     with
!      Global => null;
  
     function Index
       (Source  : Unbounded_String;
--- 487,529 ----
        Test   : Membership := Inside;
        Going  : Direction  := Forward) return Natural
     with
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If no character of Source satisfies the property Test on Set,
!         --  then 0 is returned.
! 
!        ((for all C of To_String (Source) =>
!            (Test = Inside) /= Maps.Is_In (C, Set))
!         =>
!           Index'Result = 0,
! 
!         --  Otherwise, an index in the range of Source is returned
! 
!         others
!         =>
!           --  The result is in the range of Source
! 
!           Index'Result in 1 .. Length (Source)
! 
!             --  The character at the returned index satisfies the property
!             --  Test on Set.
! 
!             and then
!               (Test = Inside) =
!                 Maps.Is_In (Element (Source, Index'Result), Set)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the property, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index'Result
!                        and then (J < Index'Result) = (Going = Forward)
!                   then (Test = Inside)
!                        /= Maps.Is_In (Element (Source, J), Set)))),
!      Global         => null;
  
     function Index
       (Source  : Unbounded_String;
*************** is
*** 373,381 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source))
!                and then Pattern'Length /= 0,
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index
--- 532,591 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source))
!          and then Pattern'Length /= 0,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in
!               (if Going = Forward then From else 1)
!                .. (if Going = Forward then Length (Source) else From)
!                 - (Pattern'Length - 1) =>
!               Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in
!             (if Going = Forward then From else 1)
!             .. (if Going = Forward then Length (Source) else From)
!              - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J in From .. Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. From - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index
*************** is
*** 385,393 ****
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source))
!                and then Pattern'Length /= 0,
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index
--- 595,655 ----
        Going   : Direction := Forward;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source))
!          and then Pattern'Length /= 0
!          and then Mapping /= null,
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!        --  If Source is the empty string, then 0 is returned
! 
!        (Length (Source) = 0
!         =>
!           Index'Result = 0,
! 
!         --  If some slice of Source matches Pattern, then a valid index is
!         --  returned.
! 
!         Length (Source) > 0
!           and then
!             (for some J in
!               (if Going = Forward then From else 1)
!                .. (if Going = Forward then Length (Source) else From)
!                 - (Pattern'Length - 1) =>
!               Search.Match (To_String (Source), Pattern, Mapping, J))
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in
!             (if Going = Forward then From else 1)
!             .. (if Going = Forward then Length (Source) else From)
!              - (Pattern'Length - 1)
! 
!             --  The slice beginning at the returned index matches Pattern
! 
!             and then Search.Match
!               (To_String (Source), Pattern, Mapping, Index'Result)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the matching, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if (if Going = Forward
!                       then J in From .. Index'Result - 1
!                       else J - 1 in Index'Result
!                                     .. From - Pattern'Length)
!                   then not Search.Match
!                     (To_String (Source), Pattern, Mapping, J))),
! 
!         --  Otherwise, 0 is returned
! 
!         others
!         =>
!           Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index
*************** is
*** 397,419 ****
        Test    : Membership := Inside;
        Going   : Direction := Forward) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_05 (Index);
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        Going  : Direction := Forward) return Natural
     with
!      Global => null;
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        From   : Positive;
        Going  : Direction := Forward) return Natural
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_05 (Index_Non_Blank);
  
     function Count
--- 659,805 ----
        Test    : Membership := Inside;
        Going   : Direction := Forward) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Post           => Index'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or no character of the considered
!         --  slice of Source satisfies the property Test on Set, then 0 is
!         --  returned.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (if J = From or else (J > From) = (Going = Forward) then
!                   (Test = Inside) /= Maps.Is_In (Element (Source, J), Set)))
!         =>
!           Index'Result = 0,
! 
!         --  Otherwise, an index in the considered range of Source is
!         --  returned.
! 
!         others
!         =>
!           --  The result is in the considered range of Source
! 
!           Index'Result in 1 .. Length (Source)
!             and then
!               (Index'Result = From
!                  or else (Index'Result > From) = (Going = Forward))
! 
!             --  The character at the returned index satisfies the property
!             --  Test on Set.
! 
!             and then
!               (Test = Inside) =
!                 Maps.Is_In (Element (Source, Index'Result), Set)
! 
!             --  The result is the smallest or largest index which satisfies
!             --  the property, respectively when Going = Forward and Going =
!             --  Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index'Result
!                     and then (J < Index'Result) = (Going = Forward)
!                     and then (J = From
!                                 or else (J > From) = (Going = Forward))
!                   then (Test = Inside)
!                        /= Maps.Is_In (Element (Source, J), Set)))),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        Going  : Direction := Forward) return Natural
     with
!      Post           => Index_Non_Blank'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If all characters of Source are Space characters, then 0 is
!         --  returned.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Index_Non_Blank'Result = 0,
! 
!         --  Otherwise, an index in the range of Source is returned
! 
!         others
!         =>
!           --  The result is in the range of Source
! 
!           Index_Non_Blank'Result in 1 .. Length (Source)
! 
!             --  The character at the returned index is not a Space character
! 
!             and then Element (Source, Index_Non_Blank'Result) /= ' '
! 
!             --  The result is the smallest or largest index which is not a
!             --  Space character, respectively when Going = Forward and Going
!             --  = Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index_Non_Blank'Result
!                        and then
!                          (J < Index_Non_Blank'Result) = (Going = Forward)
!                   then Element (Source, J) = ' '))),
!      Global         => null;
  
     function Index_Non_Blank
       (Source : Unbounded_String;
        From   : Positive;
        Going  : Direction := Forward) return Natural
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Post           => Index_Non_Blank'Result <= Length (Source),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or all characters of the
!         --  considered slice of Source are Space characters, then 0
!         --  is returned.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (if J = From or else (J > From) = (Going = Forward) then
!                   Element (Source, J) = ' '))
!         =>
!           Index_Non_Blank'Result = 0,
! 
!         --  Otherwise, an index in the considered range of Source is
!         --  returned.
! 
!         others
!         =>
!           --  The result is in the considered range of Source
! 
!           Index_Non_Blank'Result in 1 .. Length (Source)
!             and then
!               (Index_Non_Blank'Result = From
!                  or else
!                    (Index_Non_Blank'Result > From) = (Going = Forward))
! 
!             --  The character at the returned index is not a Space character
! 
!             and then Element (Source, Index_Non_Blank'Result) /= ' '
! 
!             --  The result is the smallest or largest index which isn't a
!             --  Space character, respectively when Going = Forward and Going
!             --  = Backward.
! 
!             and then
!               (for all J in 1 .. Length (Source) =>
!                  (if J /= Index_Non_Blank'Result
!                     and then
!                       (J < Index_Non_Blank'Result) = (Going = Forward)
!                     and then (J = From
!                                 or else (J > From) = (Going = Forward))
!                   then Element (Source, J) = ' '))),
!      Global         => null;
     pragma Ada_05 (Index_Non_Blank);
  
     function Count
*************** is
*** 429,435 ****
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0,
       Global => null;
  
     function Count
--- 815,821 ----
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0 and then Mapping /= null,
       Global => null;
  
     function Count
*************** is
*** 446,453 ****
        First  : out Positive;
        Last   : out Natural)
     with
!      Pre    => (if Length (Source) /= 0 then From <= Length (Source)),
!      Global => null;
     pragma Ada_2012 (Find_Token);
  
     procedure Find_Token
--- 832,884 ----
        First  : out Positive;
        Last   : out Natural)
     with
!      Pre            =>
!        (if Length (Source) /= 0 then From <= Length (Source)),
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or if no character of the
!         --  considered slice of Source satisfies the property Test on
!         --  Set, then First is set to From and Last is set to 0.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in From .. Length (Source) =>
!                (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
!         =>
!           First = From and then Last = 0,
! 
!         --  Otherwise, First and Last are set to valid indexes
! 
!         others
!         =>
!           --  First and Last are in the considered range of Source
! 
!           First in From .. Length (Source)
!             and then Last in First .. Length (Source)
! 
!             --  No character between From and First satisfies the property
!             --  Test on Set.
! 
!             and then
!               (for all J in From .. First - 1 =>
!                  (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
! 
!             --  All characters between First and Last satisfy the property
!             --  Test on Set.
! 
!             and then
!               (for all J in First .. Last =>
!                  (Test = Inside) = Maps.Is_In (Element (Source, J), Set))
! 
!             --  If Last is not Source'Last, then the character at position
!             --  Last + 1 does not satify the property Test on Set.
! 
!             and then
!               (if Last < Length (Source)
!                then
!                  (Test = Inside)
!                  /= Maps.Is_In (Element (Source, Last + 1), Set))),
!      Global         => null;
     pragma Ada_2012 (Find_Token);
  
     procedure Find_Token
*************** is
*** 457,463 ****
        First  : out Positive;
        Last   : out Natural)
     with
!      Global => null;
  
     ------------------------------------
     -- String Translation Subprograms --
--- 888,938 ----
        First  : out Positive;
        Last   : out Natural)
     with
!      Contract_Cases =>
! 
!         --  If Source is the empty string, or if no character of the
!         --  considered slice of Source satisfies the property Test on
!         --  Set, then First is set to 1 and Last is set to 0.
! 
!        (Length (Source) = 0
!           or else
!             (for all J in 1 .. Length (Source) =>
!                (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
!         =>
!           First = 1 and then Last = 0,
! 
!         --  Otherwise, First and Last are set to valid indexes
! 
!         others
!         =>
!           --  First and Last are in the considered range of Source
! 
!           First in 1 .. Length (Source)
!             and then Last in First .. Length (Source)
! 
!             --  No character between 1 and First satisfies the property Test
!             --  on Set.
! 
!             and then
!               (for all J in 1 .. First - 1 =>
!                  (Test = Inside) /= Maps.Is_In (Element (Source, J), Set))
! 
!             --  All characters between First and Last satisfy the property
!             --  Test on Set.
! 
!             and then
!               (for all J in First .. Last =>
!                  (Test = Inside) = Maps.Is_In (Element (Source, J), Set))
! 
!             --  If Last is not Source'Last, then the character at position
!             --  Last + 1 does not satify the property Test on Set.
! 
!             and then
!               (if Last < Length (Source)
!                then
!                  (Test = Inside)
!                  /= Maps.Is_In (Element (Source, Last + 1), Set))),
!      Global         => null;
  
     ------------------------------------
     -- String Translation Subprograms --
*************** is
*** 467,494 ****
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping)
     with
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
  
     function Translate
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping_Function) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Post   => Length (Source) = Length (Source)'Old,
       Global => null;
  
     ---------------------------------------
--- 942,985 ----
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping) return Unbounded_String
     with
!      Post   => Length (Translate'Result) = Length (Source)
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Translate'Result, K) =
!               Ada.Strings.Maps.Value (Mapping, Element (Source, K))),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping)
     with
!      Post   => Length (Source) = Length (Source)'Old
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Source, K) =
!               Ada.Strings.Maps.Value (Mapping, To_String (Source)'Old (K))),
       Global => null;
  
     function Translate
       (Source  : Unbounded_String;
        Mapping : Maps.Character_Mapping_Function) return Unbounded_String
     with
!      Pre    => Mapping /= null,
!      Post   => Length (Translate'Result) = Length (Source)
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Translate'Result, K) = Mapping (Element (Source, K))),
       Global => null;
  
     procedure Translate
       (Source  : in out Unbounded_String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Pre    => Mapping /= null,
!      Post   => Length (Source) = Length (Source)'Old
!        and then
!          (for all K in 1 .. Length (Source) =>
!             Element (Source, K) = Mapping (To_String (Source)'Old (K))),
       Global => null;
  
     ---------------------------------------
*************** is
*** 506,519 ****
           and then (if High >= Low
                     then Low - 1
                       <= Natural'Last - By'Length
!                       - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
         (High >= Low =>
            Length (Replace_Slice'Result)
!         = Low - 1 + By'Length + Natural'Max (Length (Source)'Old - High, 0),
          others      =>
!           Length (Replace_Slice'Result) = Length (Source)'Old + By'Length),
       Global         => null;
  
     procedure Replace_Slice
--- 997,1062 ----
           and then (if High >= Low
                     then Low - 1
                       <= Natural'Last - By'Length
!                       - Integer'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
+ 
+         --  If High >= Low, when considering the application of To_String to
+         --  convert an Unbounded_String into String, then the returned string
+         --  comprises Source (Source'First .. Low - 1) & By
+         --  & Source(High + 1 .. Source'Last).
+ 
         (High >= Low =>
+ 
+           --  Length of the returned string
+ 
            Length (Replace_Slice'Result)
!           = Low - 1 + By'Length + Integer'Max (Length (Source) - High, 0)
! 
!             --  Elements starting at Low are replaced by elements of By
! 
!             and then
!               Slice (Replace_Slice'Result, 1, Low - 1) =
!                 Slice (Source, 1, Low - 1)
!             and then
!               Slice (Replace_Slice'Result, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after the replaced slice,
!             --  they are appended to the result.
! 
!             and then
!               (if High < Length (Source)
!                then
!                  Slice (Replace_Slice'Result,
!                    Low + By'Length, Length (Replace_Slice'Result)) =
!                      Slice (Source, High + 1, Length (Source))),
! 
!         --  If High < Low, then the returned string is
!         --  Insert (Source, Before => Low, New_Item => By).
! 
          others      =>
! 
!           --  Length of the returned string
! 
!           Length (Replace_Slice'Result) = Length (Source) + By'Length
! 
!             --  Elements of By are inserted after the element at Low
! 
!             and then
!               Slice (Replace_Slice'Result, 1, Low - 1) =
!                 Slice (Source, 1, Low - 1)
!             and then
!               Slice (Replace_Slice'Result, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after Low in Source, they
!             --  are appended to the result.
! 
!             and then
!               (if Low < Length (Source)
!                then
!                 Slice (Replace_Slice'Result,
!                   Low + By'Length, Length (Replace_Slice'Result)) =
!                     Slice (Source, Low, Length (Source)))),
       Global         => null;
  
     procedure Replace_Slice
*************** is
*** 530,540 ****
                        - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
         (High >= Low =>
            Length (Source)
!         = Low - 1 + By'Length + Natural'Max (Length (Source)'Old - High, 0),
          others      =>
!           Length (Source) = Length (Source)'Old + By'Length),
       Global         => null;
  
     function Insert
--- 1073,1133 ----
                        - Natural'Max (Length (Source) - High, 0)
                     else Length (Source) <= Natural'Last - By'Length),
       Contract_Cases =>
+ 
+         --  If High >= Low, when considering the application of To_String to
+         --  convert an Unbounded_String into String, then the returned string
+         --  comprises Source (Source'First .. Low - 1) & By
+         --  & Source(High + 1 .. Source'Last).
+ 
         (High >= Low =>
+ 
+           --  Length of the returned string
+ 
            Length (Source)
!           = Low - 1 + By'Length + Integer'Max (Length (Source)'Old - High, 0)
! 
!             --  Elements starting at Low are replaced by elements of By
! 
!             and then Slice (Source, 1, Low - 1) =
!               Slice (Source, 1, Low - 1)'Old
!             and then Slice (Source, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after the replaced slice,
!             --  they are appended to the result.
! 
!             and then
!               (if High < Length (Source)'Old
!                then Slice (Source, Low + By'Length, Length (Source)) =
!                  Slice (Source,
!                    --  Really "High + 1" but expressed with a conditional
!                    --  repeating the above test so that the call to Slice
!                    --  is valid on entry (under 'Old) even when the test
!                    --  evaluates to False.
!                    (if High < Length (Source) then High + 1 else 1),
!                    Length (Source))'Old),
! 
!         --  If High < Low, then the returned string is
!         --  Insert (Source, Before => Low, New_Item => By).
! 
          others      =>
! 
!           --  Length of the returned string
! 
!           Length (Source) = Length (Source)'Old + By'Length
! 
!             --  Elements of By are inserted after the element at Low
! 
!             and then Slice (Source, 1, Low - 1) =
!               Slice (Source, 1, Low - 1)'Old
!             and then Slice (Source, Low, Low - 1 + By'Length) = By
! 
!             --  When there are remaining characters after Low in Source, they
!             --  are appended to the result.
! 
!             and then
!               (if Low < Length (Source)'Old
!                then Slice (Source, Low + By'Length, Length (Source)) =
!                  Slice (Source, Low, Length (Source))'Old)),
       Global         => null;
  
     function Insert
*************** is
*** 544,550 ****
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Insert'Result) = Length (Source) + New_Item'Length,
       Global => null;
  
     procedure Insert
--- 1137,1163 ----
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   =>
!        --  Length of the returned string
! 
!        Length (Insert'Result) = Length (Source) + New_Item'Length
! 
!          --  Elements of New_Item are inserted after element at Before
! 
!          and then
!            Slice (Insert'Result, 1, Before - 1) = Slice (Source, 1, Before - 1)
!          and then
!            Slice (Insert'Result, Before, Before - 1 + New_Item'Length)
!            = New_Item
! 
!          --  When there are remaining characters after Before in Source, they
!          --  are appended to the returned string.
! 
!          and then
!            (if Before <= Length (Source) then
!               Slice (Insert'Result, Before + New_Item'Length,
!                 Length (Insert'Result)) =
!                   Slice (Source, Before, Length (Source))),
       Global => null;
  
     procedure Insert
*************** is
*** 554,560 ****
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   => Length (Source) = Length (Source)'Old + New_Item'Length,
       Global => null;
  
     function Overwrite
--- 1167,1191 ----
     with
       Pre    => Before - 1 <= Length (Source)
                   and then New_Item'Length <= Natural'Last - Length (Source),
!      Post   =>
!        --  Length of the returned string
! 
!        Length (Source) = Length (Source)'Old + New_Item'Length
! 
!          --  Elements of New_Item are inserted after element at Before
! 
!          and then
!            Slice (Source, 1, Before - 1) = Slice (Source, 1, Before - 1)'Old
!          and then
!            Slice (Source, Before, Before - 1 + New_Item'Length) = New_Item
! 
!          --  When there are remaining characters after Before in Source, they
!          --  are appended to the returned string.
! 
!          and then
!            (if Before <= Length (Source)'Old then
!               Slice (Source, Before + New_Item'Length, Length (Source)) =
!                 Slice (Source, Before, Length (Source))'Old),
       Global => null;
  
     function Overwrite
*************** is
*** 563,574 ****
        New_Item : String) return Unbounded_String
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then (if New_Item'Length /= 0
!                            then
!                              New_Item'Length <= Natural'Last - (Position - 1)),
       Post   =>
!        Length (Overwrite'Result)
!      = Natural'Max (Length (Source), Position - 1 + New_Item'Length),
       Global => null;
  
     procedure Overwrite
--- 1194,1224 ----
        New_Item : String) return Unbounded_String
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then New_Item'Length <= Natural'Last - (Position - 1),
       Post   =>
!        --  Length of the returned string
! 
!        Length (Overwrite'Result) =
!          Integer'Max (Length (Source), Position - 1 + New_Item'Length)
! 
!          --  Elements after Position are replaced by elements of New_Item
! 
!          and then
!            Slice (Overwrite'Result, 1, Position - 1) =
!              Slice (Source, 1, Position - 1)
!          and then
!            Slice (Overwrite'Result, Position, Position - 1 + New_Item'Length) =
!              New_Item
!          and then
!            (if Position - 1 + New_Item'Length < Length (Source) then
! 
!               --  There are some unchanged characters of Source remaining
!               --  after New_Item.
! 
!               Slice (Overwrite'Result,
!                 Position + New_Item'Length, Length (Source)) =
!                   Slice (Source,
!                     Position + New_Item'Length, Length (Source))),
       Global => null;
  
     procedure Overwrite
*************** is
*** 577,589 ****
        New_Item : String)
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then (if New_Item'Length /= 0
!                            then
!                              New_Item'Length <= Natural'Last - (Position - 1)),
       Post   =>
!        Length (Source)
!      = Natural'Max (Length (Source)'Old, Position - 1 + New_Item'Length),
  
       Global => null;
  
     function Delete
--- 1227,1262 ----
        New_Item : String)
     with
       Pre    => Position - 1 <= Length (Source)
!                  and then New_Item'Length <= Natural'Last - (Position - 1),
       Post   =>
!        --  Length of the returned string
! 
!        Length (Source) =
!          Integer'Max (Length (Source)'Old, Position - 1 + New_Item'Length)
! 
!          --  Elements after Position are replaced by elements of New_Item
! 
!          and then
!            Slice (Source, 1, Position - 1) = Slice (Source, 1, Position - 1)
!          and then
!            Slice (Source, Position, Position - 1 + New_Item'Length) = New_Item
!          and then
!            (if Position - 1 + New_Item'Length < Length (Source)'Old then
! 
!               --  There are some unchanged characters of Source remaining
!               --  after New_Item.
  
+               Slice (Source,
+                 Position + New_Item'Length, Length (Source)'Old) =
+                   Slice (Source,
+                     --  Really "Position + New_Item'Length" but expressed with
+                     --  a conditional repeating the above test so that the
+                     --  call to Slice is valid on entry (under 'Old) even
+                     --  when the test evaluates to False.
+                     (if Position - 1 + New_Item'Length < Length (Source)
+                      then Position + New_Item'Length
+                      else 1),
+                     Length (Source))'Old),
       Global => null;
  
     function Delete
*************** is
*** 591,602 ****
        From    : Positive;
        Through : Natural) return Unbounded_String
     with
!      Pre            => (if Through <= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Delete'Result) = Length (Source) - (Through - From + 1),
          others          =>
!           Length (Delete'Result) = Length (Source)),
       Global         => null;
  
     procedure Delete
--- 1264,1282 ----
        From    : Positive;
        Through : Natural) return Unbounded_String
     with
!      Pre            => (if Through >= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Delete'Result) =
!             From - 1 + Natural'Max (Length (Source) - Through, 0)
!             and then
!               Slice (Delete'Result, 1, From - 1) = Slice (Source, 1, From - 1)
!             and then
!               (if Through < Length (Source) then
!                  Slice (Delete'Result, From, Length (Delete'Result)) =
!                    Slice (Source, Through + 1, Length (Source))),
          others          =>
!              Delete'Result = Source),
       Global         => null;
  
     procedure Delete
*************** is
*** 604,685 ****
        From    : Positive;
        Through : Natural)
     with
!      Pre            => (if Through <= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Source) = Length (Source)'Old - (Through - From + 1),
          others          =>
!           Length (Source) = Length (Source)'Old),
       Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Side   : Trim_End) return Unbounded_String
     with
!      Post   => Length (Trim'Result) <= Length (Source),
!      Global => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Side   : Trim_End)
     with
!      Post   => Length (Source) <= Length (Source)'Old,
!      Global => null;
  
     function Trim
       (Source : Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set) return Unbounded_String
     with
!      Post   => Length (Trim'Result) <= Length (Source),
!      Global => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set)
     with
!      Post   => Length (Source) <= Length (Source)'Old,
!      Global => null;
  
     function Head
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post   => Length (Head'Result) = Count,
!      Global => null;
  
     procedure Head
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post   => Length (Source) = Count,
!      Global => null;
  
     function Tail
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post   => Length (Tail'Result) = Count,
!      Global => null;
  
     procedure Tail
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post   => Length (Source) = Count,
!      Global => null;
  
     function "*"
       (Left  : Natural;
        Right : Character) return Unbounded_String
     with
       Pre    => Left <= Natural'Last,
!      Post   => Length ("*"'Result) = Left,
       Global => null;
  
     function "*"
--- 1284,1538 ----
        From    : Positive;
        Through : Natural)
     with
!      Pre            => (if Through >= From then From - 1 <= Length (Source)),
       Contract_Cases =>
         (Through >= From =>
!           Length (Source) =
!             From - 1 + Natural'Max (Length (Source)'Old - Through, 0)
!             and then
!               Slice (Source, 1, From - 1) =
!                 To_String (Source)'Old (1 .. From - 1)
!             and then
!               (if Through < Length (Source) then
!                 Slice (Source, From, Length (Source)) =
!                   To_String (Source)'Old (Through + 1 .. Length (Source)'Old)),
          others          =>
!           To_String (Source) = To_String (Source)'Old),
       Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Side   : Trim_End) return Unbounded_String
     with
!      Contract_Cases =>
!        --  If all characters in Source are Space, the returned string is
!        --  empty.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Length (Trim'Result) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                (if Side = Right then 1
!                 else Index_Non_Blank (Source, Forward));
!              High : constant Positive :=
!                (if Side = Left then Length (Source)
!                 else Index_Non_Blank (Source, Backward));
!            begin
!              To_String (Trim'Result) = Slice (Source, Low, High))),
!      Global         => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Side   : Trim_End)
     with
!      Contract_Cases =>
!        --  If all characters in Source are Space, the returned string is
!        --  empty.
! 
!        ((for all C of To_String (Source) => C = ' ')
!         =>
!           Length (Source) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                (if Side = Right then 1
!                 else Index_Non_Blank (Source, Forward)'Old);
!              High : constant Positive :=
!                (if Side = Left then Length (Source)'Old
!                 else Index_Non_Blank (Source, Backward)'Old);
!            begin
!              To_String (Source) = To_String (Source)'Old (Low .. High))),
!      Global         => null;
  
     function Trim
       (Source : Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set) return Unbounded_String
     with
!      Contract_Cases =>
!        --  If all characters in Source are contained in one of the sets Left
!        --  or Right, then the returned string is empty.
! 
!        ((for all C of To_String (Source) => Maps.Is_In (C, Left))
!           or else
!             (for all C of To_String (Source) => Maps.Is_In (C, Right))
!         =>
!           Length (Trim'Result) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                Index (Source, Left, Outside, Forward);
!              High : constant Positive :=
!                Index (Source, Right, Outside, Backward);
!            begin
!              To_String (Trim'Result) = Slice (Source, Low, High))),
!      Global         => null;
  
     procedure Trim
       (Source : in out Unbounded_String;
        Left   : Maps.Character_Set;
        Right  : Maps.Character_Set)
     with
!      Contract_Cases =>
!        --  If all characters in Source are contained in one of the sets Left
!        --  or Right, then the returned string is empty.
! 
!        ((for all C of To_String (Source) => Maps.Is_In (C, Left))
!           or else
!             (for all C of To_String (Source) => Maps.Is_In (C, Right))
!         =>
!           Length (Source) = 0,
! 
!         --  Otherwise, the returned string is a slice of Source
! 
!         others
!         =>
!           (declare
!              Low  : constant Positive :=
!                Index (Source, Left, Outside, Forward)'Old;
!              High : constant Positive :=
!                Index (Source, Right, Outside, Backward)'Old;
!            begin
!              To_String (Source) = To_String (Source)'Old (Low .. High))),
!      Global         => null;
  
     function Head
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post           => Length (Head'Result) = Count,
!      Contract_Cases =>
!        (Count <= Length (Source)
!         =>
!           --  Source is cut
! 
!           To_String (Head'Result) = Slice (Source, 1, Count),
! 
!         others
!         =>
!           --  Source is followed by Pad characters
! 
!           Slice (Head'Result, 1, Length (Source)) = To_String (Source)
!             and then
!               Slice (Head'Result, Length (Source) + 1, Count) =
!                 [1 .. Count - Length (Source) => Pad]),
!      Global         => null;
  
     procedure Head
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post           => Length (Source) = Count,
!      Contract_Cases =>
!        (Count <= Length (Source)
!         =>
!           --  Source is cut
! 
!           To_String (Source) = Slice (Source, 1, Count),
! 
!         others
!         =>
!           --  Source is followed by Pad characters
! 
!           Slice (Source, 1, Length (Source)'Old) = To_String (Source)'Old
!             and then
!               Slice (Source, Length (Source)'Old + 1, Count) =
!                 [1 .. Count - Length (Source)'Old => Pad]),
!      Global         => null;
  
     function Tail
       (Source : Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space) return Unbounded_String
     with
!      Post           => Length (Tail'Result) = Count,
!      Contract_Cases =>
!        (Count = 0
!         =>
!           True,
! 
!         (Count in 1 .. Length (Source))
!         =>
!           --  Source is cut
! 
!           To_String (Tail'Result) =
!             Slice (Source, Length (Source) - Count + 1, Length (Source)),
! 
!         others
!         =>
!           --  Source is preceded by Pad characters
! 
!           (if Length (Source) = 0 then
!             To_String (Tail'Result) = [1 .. Count => Pad]
!           else
!             Slice (Tail'Result, 1, Count - Length (Source)) =
!               [1 .. Count - Length (Source) => Pad]
!               and then
!                 Slice (Tail'Result, Count - Length (Source) + 1, Count) =
!                   To_String (Source))),
!      Global         => null;
  
     procedure Tail
       (Source : in out Unbounded_String;
        Count  : Natural;
        Pad    : Character := Space)
     with
!      Post           => Length (Source) = Count,
!      Contract_Cases =>
!        (Count = 0
!         =>
!           True,
! 
!         (Count in  1 .. Length (Source))
!         =>
!           --  Source is cut
! 
!           To_String (Source) =
!             Slice (Source,
!               --  Really "Length (Source) - Count + 1" but expressed with a
!               --  conditional repeating the above guard so that the call to
!               --  Slice is valid on entry (under 'Old) even when the test
!               --  evaluates to False.
!               (if Count <= Length (Source) then Length (Source) - Count + 1
!                else 1),
!               Length (Source))'Old,
! 
!         others
!         =>
!           --  Source is preceded by Pad characters
! 
!           (if Length (Source)'Old = 0 then
!             To_String (Source) = [1 .. Count => Pad]
!           else
!             Slice (Source, 1, Count - Length (Source)'Old) =
!               [1 .. Count - Length (Source)'Old => Pad]
!               and then
!                 Slice (Source, Count - Length (Source)'Old + 1, Count) =
!                   To_String (Source)'Old)),
!      Global         => null;
  
     function "*"
       (Left  : Natural;
        Right : Character) return Unbounded_String
     with
       Pre    => Left <= Natural'Last,
!      Post   => To_String ("*"'Result) = [1 .. Left => Right],
       Global => null;
  
     function "*"
*************** is
*** 687,693 ****
        Right : String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Right'Length <= Natural'Last / Left),
!      Post   => Length ("*"'Result) = Left * Right'Length,
       Global => null;
  
     function "*"
--- 1540,1552 ----
        Right : String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Right'Length <= Natural'Last / Left),
!      Post =>
!        Length ("*"'Result) = Left * Right'Length
!          and then
!            (if Right'Length > 0 then
!               (for all K in 1 .. Left * Right'Length =>
!                  Element ("*"'Result, K) =
!                    Right (Right'First + (K - 1) mod Right'Length))),
       Global => null;
  
     function "*"
*************** is
*** 695,704 ****
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Length (Right) <= Natural'Last / Left),
!      Post   => Length ("*"'Result) = Left * Length (Right),
       Global => null;
  
  private
     pragma Inline (Length);
  
     package AF renames Ada.Finalization;
--- 1554,1571 ----
        Right : Unbounded_String) return Unbounded_String
     with
       Pre    => (if Left /= 0 then Length (Right) <= Natural'Last / Left),
!      Post =>
!        Length ("*"'Result) = Left * Length (Right)
!          and then
!            (if Length (Right) > 0 then
!               (for all K in 1 .. Left * Length (Right) =>
!                  Element ("*"'Result, K) =
!                    Element (Right, 1 + (K - 1) mod Length (Right)))),
       Global => null;
  
  private
+    pragma SPARK_Mode (Off);  --  Controlled types are not in SPARK
+ 
     pragma Inline (Length);
  
     package AF renames Ada.Finalization;
*************** private
*** 715,725 ****
  
     type Shared_String_Access is access all Shared_String;
  
!    procedure Reference (Item : not null Shared_String_Access);
     --  Increment reference counter.
     --  Do nothing if Item points to Empty_Shared_String.
  
!    procedure Unreference (Item : not null Shared_String_Access);
     --  Decrement reference counter, deallocate Item when counter goes to zero.
     --  Do nothing if Item points to Empty_Shared_String.
  
--- 1582,1594 ----
  
     type Shared_String_Access is access all Shared_String;
  
!    procedure Reference (Item : not null Shared_String_Access)
!    with Inline => True;
     --  Increment reference counter.
     --  Do nothing if Item points to Empty_Shared_String.
  
!    procedure Unreference (Item : not null Shared_String_Access)
!    with Inline => True;
     --  Decrement reference counter, deallocate Item when counter goes to zero.
     --  Do nothing if Item points to Empty_Shared_String.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststbo.adb gcc-15.1.0/gcc/ada/libgnat/a-ststbo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ststbo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststbo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststbo.ads gcc-15.1.0/gcc/ada/libgnat/a-ststbo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ststbo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststbo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststio.adb gcc-15.1.0/gcc/ada/libgnat/a-ststio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ststio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststio.ads gcc-15.1.0/gcc/ada/libgnat/a-ststio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ststio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststun.adb gcc-15.1.0/gcc/ada/libgnat/a-ststun.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ststun.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststun.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ststun.ads gcc-15.1.0/gcc/ada/libgnat/a-ststun.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ststun.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ststun.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sttebu.adb gcc-15.1.0/gcc/ada/libgnat/a-sttebu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sttebu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sttebu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stunau.adb gcc-15.1.0/gcc/ada/libgnat/a-stunau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stunau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stunau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stunau.ads gcc-15.1.0/gcc/ada/libgnat/a-stunau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stunau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stunau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stunau__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-stunau__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stunau__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stunau__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stunha.adb gcc-15.1.0/gcc/ada/libgnat/a-stunha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stunha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stunha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stuten.adb gcc-15.1.0/gcc/ada/libgnat/a-stuten.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stuten.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stuten.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2010-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2010-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwibo.adb gcc-15.1.0/gcc/ada/libgnat/a-stwibo.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwibo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwibo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwibo.ads gcc-15.1.0/gcc/ada/libgnat/a-stwibo.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwibo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwibo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwifi.adb gcc-15.1.0/gcc/ada/libgnat/a-stwifi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwifi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwifi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwiha.adb gcc-15.1.0/gcc/ada/libgnat/a-stwiha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwiha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwiha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwima.adb gcc-15.1.0/gcc/ada/libgnat/a-stwima.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwima.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwima.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwima.ads gcc-15.1.0/gcc/ada/libgnat/a-stwima.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwima.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwima.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwise.adb gcc-15.1.0/gcc/ada/libgnat/a-stwise.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwise.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwise.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwise.ads gcc-15.1.0/gcc/ada/libgnat/a-stwise.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwise.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwise.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwisu.adb gcc-15.1.0/gcc/ada/libgnat/a-stwisu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwisu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwisu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwisu.ads gcc-15.1.0/gcc/ada/libgnat/a-stwisu.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwisu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwisu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwiun.adb gcc-15.1.0/gcc/ada/libgnat/a-stwiun.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwiun.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwiun.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwiun.ads gcc-15.1.0/gcc/ada/libgnat/a-stwiun.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwiun.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwiun.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwiun__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-stwiun__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stwiun__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwiun__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Wide_Unbounded
*** 36,42 ****
  
     use Ada.Strings.Wide_Maps;
  
!    Growth_Factor : constant := 32;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
     --  allocating extra space, we avoid the need to reallocate on every
--- 36,59 ----
  
     use Ada.Strings.Wide_Maps;
  
!    procedure Non_Inlined_Append
!      (Source   : in out Unbounded_Wide_String;
!       New_Item : Unbounded_Wide_String);
! 
!    procedure Non_Inlined_Append
!      (Source   : in out Unbounded_Wide_String;
!       New_Item : Wide_String);
! 
!    procedure Non_Inlined_Append
!       (Source   : in out Unbounded_Wide_String;
!        New_Item : Wide_Character);
!    --  Non_Inlined_Append are part of the respective Append method that
!    --  should not be inlined. The idea is that the code of Append is inlined.
!    --  In order to make inlining efficient it is better to have the inlined
!    --  code as small as possible. Thus most common cases are inlined and less
!    --  common cases are deferred in these functions.
! 
!    Growth_Factor : constant := 2;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
     --  allocating extra space, we avoid the need to reallocate on every
*************** package body Ada.Strings.Wide_Unbounded
*** 525,534 ****
       (Source   : in out Unbounded_Wide_String;
        New_Item : Unbounded_Wide_String)
     is
        SR  : constant Shared_Wide_String_Access := Source.Reference;
        NR  : constant Shared_Wide_String_Access := New_Item.Reference;
-       DL  : constant Natural                   := SR.Last + NR.Last;
-       DR  : Shared_Wide_String_Access;
  
     begin
        --  Source is an empty string, reuse New_Item data
--- 542,553 ----
       (Source   : in out Unbounded_Wide_String;
        New_Item : Unbounded_Wide_String)
     is
+       pragma Suppress (All_Checks);
+       --  Suppress checks as they are redundant with the checks done in that
+       --  function.
+ 
        SR  : constant Shared_Wide_String_Access := Source.Reference;
        NR  : constant Shared_Wide_String_Access := New_Item.Reference;
  
     begin
        --  Source is an empty string, reuse New_Item data
*************** package body Ada.Strings.Wide_Unbounded
*** 545,563 ****
  
        --  Try to reuse existent shared string
  
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          SR.Last := DL;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 564,580 ----
  
        --  Try to reuse existent shared string
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          and then NR.Last <= SR.Max_Length
!          and then SR.Max_Length - NR.Last >= SR.Last
!       then
!          SR.Data (SR.Last + 1 .. SR.Last + NR.Last) := NR.Data (1 .. NR.Last);
!          SR.Last := SR.Last + NR.Last;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Unbounded
*** 565,595 ****
       (Source   : in out Unbounded_Wide_String;
        New_Item : Wide_String)
     is
!       SR : constant Shared_Wide_String_Access := Source.Reference;
!       DL : constant Natural                   := SR.Last + New_Item'Length;
!       DR : Shared_Wide_String_Access;
  
     begin
-       --  New_Item is an empty string, nothing to do
  
        if New_Item'Length = 0 then
           null;
  
!       --  Try to reuse existing shared string
! 
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := New_Item;
!          SR.Last := DL;
! 
!       --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 582,615 ----
       (Source   : in out Unbounded_Wide_String;
        New_Item : Wide_String)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       New_Item_Length : constant Natural := New_Item'Length;
+       SR : constant Shared_Wide_String_Access := Source.Reference;
     begin
  
        if New_Item'Length = 0 then
+          --  New_Item is an empty string, nothing to do
           null;
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          --  The following test checks in fact that
!          --  SR.Max_Length >= SR.Last + New_Item_Length without causing
!          --  overflow.
!          and then New_Item_Length <= SR.Max_Length
!          and then SR.Max_Length - New_Item_Length >= SR.Last
!       then
!          --  Try to reuse existing shared string
!          SR.Data (SR.Last + 1 .. SR.Last + New_Item_Length) := New_Item;
!          SR.Last := SR.Last + New_Item_Length;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Unbounded
*** 597,622 ****
       (Source   : in out Unbounded_Wide_String;
        New_Item : Wide_Character)
     is
!       SR : constant Shared_Wide_String_Access := Source.Reference;
!       DL : constant Natural := SR.Last + 1;
!       DR : Shared_Wide_String_Access;
  
     begin
!       --  Try to reuse existing shared string
! 
!       if Can_Be_Reused (SR, SR.Last + 1) then
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
-       --  Otherwise, allocate new one and fill it
- 
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 617,640 ----
       (Source   : in out Unbounded_Wide_String;
        New_Item : Wide_Character)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       SR : constant Shared_Wide_String_Access := Source.Reference;
     begin
!       if System.Atomic_Counters.Is_One (SR.Counter)
!          and then SR.Max_Length > SR.Last
!       then
!          --  Try to reuse existing shared string
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Unbounded
*** 1178,1183 ****
--- 1196,1261 ----
        return Source.Reference.Last;
     end Length;
  
+    ------------------------
+    -- Non_Inlined_Append --
+    ------------------------
+ 
+    procedure Non_Inlined_Append
+        (Source   : in out Unbounded_Wide_String;
+         New_Item : Unbounded_Wide_String)
+    is
+       SR : constant Shared_Wide_String_Access := Source.Reference;
+       NR  : constant Shared_Wide_String_Access := New_Item.Reference;
+       DL : constant Natural := SR.Last + NR.Last;
+       DR : Shared_Wide_String_Access;
+    begin
+       DR := Allocate (DL + DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+      (Source   : in out Unbounded_Wide_String;
+       New_Item : Wide_String)
+    is
+       SR : constant Shared_Wide_String_Access := Source.Reference;
+       DL : constant Natural := SR.Last + New_Item'Length;
+       DR : Shared_Wide_String_Access;
+    begin
+       DR := Allocate (DL + DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := New_Item;
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+       (Source   : in out Unbounded_Wide_String;
+        New_Item : Wide_Character)
+    is
+       SR : constant Shared_Wide_String_Access := Source.Reference;
+    begin
+       if SR.Last = Natural'Last then
+          raise Constraint_Error;
+       else
+          declare
+             DL : constant Natural := SR.Last + 1;
+             DR : Shared_Wide_String_Access;
+          begin
+             DR := Allocate (DL + DL / Growth_Factor);
+             DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+             DR.Data (DL) := New_Item;
+             DR.Last := DL;
+             Source.Reference := DR;
+             Unreference (SR);
+          end;
+       end if;
+    end Non_Inlined_Append;
+ 
     ---------------
     -- Overwrite --
     ---------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stwiun__shared.ads gcc-15.1.0/gcc/ada/libgnat/a-stwiun__shared.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stwiun__shared.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stwiun__shared.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package Ada.Strings.Wide_Unbounded is
*** 79,93 ****
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Unbounded_Wide_String);
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Wide_String);
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Wide_Character);
  
     function "&"
       (Left  : Unbounded_Wide_String;
--- 79,96 ----
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Unbounded_Wide_String)
!    with Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Wide_String)
!    with Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_Wide_String;
!       New_Item : Wide_Character)
!    with Inline => True;
  
     function "&"
       (Left  : Unbounded_Wide_String;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzbou.adb gcc-15.1.0/gcc/ada/libgnat/a-stzbou.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzbou.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzbou.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzbou.ads gcc-15.1.0/gcc/ada/libgnat/a-stzbou.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzbou.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzbou.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzfix.adb gcc-15.1.0/gcc/ada/libgnat/a-stzfix.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzfix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzfix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzhas.adb gcc-15.1.0/gcc/ada/libgnat/a-stzhas.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzhas.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzhas.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzmap.adb gcc-15.1.0/gcc/ada/libgnat/a-stzmap.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzmap.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzmap.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzmap.ads gcc-15.1.0/gcc/ada/libgnat/a-stzmap.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzmap.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzmap.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzsea.adb gcc-15.1.0/gcc/ada/libgnat/a-stzsea.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzsea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzsea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzsea.ads gcc-15.1.0/gcc/ada/libgnat/a-stzsea.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzsea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzsea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzsup.adb gcc-15.1.0/gcc/ada/libgnat/a-stzsup.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzsup.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzsup.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzsup.ads gcc-15.1.0/gcc/ada/libgnat/a-stzsup.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzsup.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzsup.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzunb.adb gcc-15.1.0/gcc/ada/libgnat/a-stzunb.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzunb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzunb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzunb.ads gcc-15.1.0/gcc/ada/libgnat/a-stzunb.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzunb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzunb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzunb__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-stzunb__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-stzunb__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzunb__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 36,42 ****
  
     use Ada.Strings.Wide_Wide_Maps;
  
!    Growth_Factor : constant := 32;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
     --  allocating extra space, we avoid the need to reallocate on every
--- 36,59 ----
  
     use Ada.Strings.Wide_Wide_Maps;
  
!    procedure Non_Inlined_Append
!      (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Unbounded_Wide_Wide_String);
! 
!    procedure Non_Inlined_Append
!      (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Wide_Wide_String);
! 
!    procedure Non_Inlined_Append
!       (Source   : in out Unbounded_Wide_Wide_String;
!        New_Item : Wide_Wide_Character);
!    --  Non_Inlined_Append are part of the respective Append method that
!    --  should not be inlined. The idea is that the code of Append is inlined.
!    --  In order to make inlining efficient it is better to have the inlined
!    --  code as small as possible. Thus most common cases are inlined and less
!    --  common cases are deferred in these functions.
! 
!    Growth_Factor : constant := 2;
     --  The growth factor controls how much extra space is allocated when
     --  we have to increase the size of an allocated unbounded string. By
     --  allocating extra space, we avoid the need to reallocate on every
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 526,535 ****
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Unbounded_Wide_Wide_String)
     is
        SR  : constant Shared_Wide_Wide_String_Access := Source.Reference;
        NR  : constant Shared_Wide_Wide_String_Access := New_Item.Reference;
-       DL  : constant Natural              := SR.Last + NR.Last;
-       DR  : Shared_Wide_Wide_String_Access;
  
     begin
        --  Source is an empty string, reuse New_Item data
--- 543,554 ----
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Unbounded_Wide_Wide_String)
     is
+       pragma Suppress (All_Checks);
+       --  Suppress checks as they are redundant with the checks done in that
+       --  function.
+ 
        SR  : constant Shared_Wide_Wide_String_Access := Source.Reference;
        NR  : constant Shared_Wide_Wide_String_Access := New_Item.Reference;
  
     begin
        --  Source is an empty string, reuse New_Item data
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 546,564 ****
  
        --  Try to reuse existent shared string
  
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          SR.Last := DL;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 565,581 ----
  
        --  Try to reuse existent shared string
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          and then NR.Last <= SR.Max_Length
!          and then SR.Max_Length - NR.Last >= SR.Last
!       then
!          SR.Data (SR.Last + 1 .. SR.Last + NR.Last) := NR.Data (1 .. NR.Last);
!          SR.Last := SR.Last + NR.Last;
  
        --  Otherwise, allocate new one and fill it
  
        else
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 566,596 ****
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Wide_Wide_String)
     is
!       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
!       DL : constant Natural := SR.Last + New_Item'Length;
!       DR : Shared_Wide_Wide_String_Access;
  
     begin
-       --  New_Item is an empty string, nothing to do
  
        if New_Item'Length = 0 then
           null;
  
!       --  Try to reuse existing shared string
! 
!       elsif Can_Be_Reused (SR, DL) then
!          SR.Data (SR.Last + 1 .. DL) := New_Item;
!          SR.Last := DL;
! 
!       --  Otherwise, allocate new one and fill it
  
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (SR.Last + 1 .. DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 583,616 ----
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Wide_Wide_String)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       New_Item_Length : constant Natural := New_Item'Length;
+       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
     begin
  
        if New_Item'Length = 0 then
+          --  New_Item is an empty string, nothing to do
           null;
  
!       elsif System.Atomic_Counters.Is_One (SR.Counter)
!          --  The following test checks in fact that
!          --  SR.Max_Length >= SR.Last + New_Item_Length without causing
!          --  overflow.
!          and then New_Item_Length <= SR.Max_Length
!          and then SR.Max_Length - New_Item_Length >= SR.Last
!       then
!          --  Try to reuse existing shared string
!          SR.Data (SR.Last + 1 .. SR.Last + New_Item_Length) := New_Item;
!          SR.Last := SR.Last + New_Item_Length;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 598,623 ****
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Wide_Wide_Character)
     is
!       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
!       DL : constant Natural := SR.Last + 1;
!       DR : Shared_Wide_Wide_String_Access;
  
     begin
!       --  Try to reuse existing shared string
! 
!       if Can_Be_Reused (SR, SR.Last + 1) then
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
-       --  Otherwise, allocate new one and fill it
- 
        else
!          DR := Allocate (DL + DL / Growth_Factor);
!          DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
!          DR.Data (DL) := New_Item;
!          DR.Last := DL;
!          Source.Reference := DR;
!          Unreference (SR);
        end if;
     end Append;
  
--- 618,641 ----
       (Source   : in out Unbounded_Wide_Wide_String;
        New_Item : Wide_Wide_Character)
     is
!       pragma Suppress (All_Checks);
!       --  Suppress checks as they are redundant with the checks done in that
!       --  function.
  
+       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
     begin
!       if System.Atomic_Counters.Is_One (SR.Counter)
!          and then SR.Max_Length > SR.Last
!       then
!          --  Try to reuse existing shared string
           SR.Data (SR.Last + 1) := New_Item;
           SR.Last := SR.Last + 1;
  
        else
!          --  Otherwise, allocate new one and fill it. Deferring the worst case
!          --  into a separate non-inlined function ensure that inlined Append
!          --  code size remains short and thus efficient.
!          Non_Inlined_Append (Source, New_Item);
        end if;
     end Append;
  
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 777,782 ****
--- 795,801 ----
       (Source : Unbounded_Wide_Wide_String;
        Index  : Positive) return Wide_Wide_Character
     is
+       pragma Suppress (All_Checks);
        SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
     begin
        if Index <= SR.Last then
*************** package body Ada.Strings.Wide_Wide_Unbou
*** 1184,1189 ****
--- 1203,1268 ----
        return Source.Reference.Last;
     end Length;
  
+    ------------------------
+    -- Non_Inlined_Append --
+    ------------------------
+ 
+    procedure Non_Inlined_Append
+        (Source   : in out Unbounded_Wide_Wide_String;
+         New_Item : Unbounded_Wide_Wide_String)
+    is
+       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
+       NR  : constant Shared_Wide_Wide_String_Access := New_Item.Reference;
+       DL : constant Natural := SR.Last + NR.Last;
+       DR : Shared_Wide_Wide_String_Access;
+    begin
+       DR := Allocate (DL + DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+      (Source   : in out Unbounded_Wide_Wide_String;
+       New_Item : Wide_Wide_String)
+    is
+       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
+       DL : constant Natural := SR.Last +  New_Item'Length;
+       DR : Shared_Wide_Wide_String_Access;
+    begin
+       DR := Allocate (DL + DL / Growth_Factor);
+       DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+       DR.Data (SR.Last + 1 .. DL) := New_Item;
+       DR.Last := DL;
+       Source.Reference := DR;
+       Unreference (SR);
+    end Non_Inlined_Append;
+ 
+    procedure Non_Inlined_Append
+       (Source   : in out Unbounded_Wide_Wide_String;
+        New_Item : Wide_Wide_Character)
+    is
+       SR : constant Shared_Wide_Wide_String_Access := Source.Reference;
+    begin
+       if SR.Last = Natural'Last then
+          raise Constraint_Error;
+       else
+          declare
+             DL : constant Natural := SR.Last + 1;
+             DR : Shared_Wide_Wide_String_Access;
+          begin
+             DR := Allocate (DL + DL / Growth_Factor);
+             DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
+             DR.Data (DL) := New_Item;
+             DR.Last := DL;
+             Source.Reference := DR;
+             Unreference (SR);
+          end;
+       end if;
+    end Non_Inlined_Append;
+ 
     ---------------
     -- Overwrite --
     ---------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-stzunb__shared.ads gcc-15.1.0/gcc/ada/libgnat/a-stzunb__shared.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-stzunb__shared.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-stzunb__shared.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package Ada.Strings.Wide_Wide_Unbounded
*** 79,93 ****
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Unbounded_Wide_Wide_String);
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Wide_Wide_String);
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Wide_Wide_Character);
  
     function "&"
       (Left  : Unbounded_Wide_Wide_String;
--- 79,96 ----
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Unbounded_Wide_Wide_String)
!    with Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Wide_Wide_String)
!    with Inline => True;
  
     procedure Append
       (Source   : in out Unbounded_Wide_Wide_String;
!       New_Item : Wide_Wide_Character)
!    with Inline => True;
  
     function "&"
       (Left  : Unbounded_Wide_Wide_String;
*************** package Ada.Strings.Wide_Wide_Unbounded
*** 111,117 ****
  
     function Element
       (Source : Unbounded_Wide_Wide_String;
!       Index  : Positive) return Wide_Wide_Character;
  
     procedure Replace_Element
       (Source : in out Unbounded_Wide_Wide_String;
--- 114,121 ----
  
     function Element
       (Source : Unbounded_Wide_Wide_String;
!       Index  : Positive) return Wide_Wide_Character
!    with Inline => True;
  
     procedure Replace_Element
       (Source : in out Unbounded_Wide_Wide_String;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suecin.adb gcc-15.1.0/gcc/ada/libgnat/a-suecin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suecin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suecin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suecin.ads gcc-15.1.0/gcc/ada/libgnat/a-suecin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-suecin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suecin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suenco.adb gcc-15.1.0/gcc/ada/libgnat/a-suenco.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suenco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suenco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suenst.adb gcc-15.1.0/gcc/ada/libgnat/a-suenst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suenst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suenst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suewst.adb gcc-15.1.0/gcc/ada/libgnat/a-suewst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suewst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suewst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suezst.adb gcc-15.1.0/gcc/ada/libgnat/a-suezst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suezst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suezst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suhcin.adb gcc-15.1.0/gcc/ada/libgnat/a-suhcin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suhcin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suhcin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suhcin.ads gcc-15.1.0/gcc/ada/libgnat/a-suhcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-suhcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suhcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sulcin.adb gcc-15.1.0/gcc/ada/libgnat/a-sulcin.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-sulcin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sulcin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-sulcin.ads gcc-15.1.0/gcc/ada/libgnat/a-sulcin.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-sulcin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-sulcin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suteio.adb gcc-15.1.0/gcc/ada/libgnat/a-suteio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suteio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suteio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suteio.ads gcc-15.1.0/gcc/ada/libgnat/a-suteio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-suteio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suteio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-suteio__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-suteio__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-suteio__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-suteio__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swbwha.adb gcc-15.1.0/gcc/ada/libgnat/a-swbwha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swbwha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swbwha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swmwco.ads gcc-15.1.0/gcc/ada/libgnat/a-swmwco.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-swmwco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swmwco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swunau.adb gcc-15.1.0/gcc/ada/libgnat/a-swunau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swunau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swunau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swunau.ads gcc-15.1.0/gcc/ada/libgnat/a-swunau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-swunau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swunau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swunau__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-swunau__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swunau__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swunau__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swuwha.adb gcc-15.1.0/gcc/ada/libgnat/a-swuwha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swuwha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swuwha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swuwti.adb gcc-15.1.0/gcc/ada/libgnat/a-swuwti.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swuwti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swuwti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swuwti.ads gcc-15.1.0/gcc/ada/libgnat/a-swuwti.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-swuwti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swuwti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-swuwti__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-swuwti__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-swuwti__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-swuwti__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szbzha.adb gcc-15.1.0/gcc/ada/libgnat/a-szbzha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szbzha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szbzha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szmzco.ads gcc-15.1.0/gcc/ada/libgnat/a-szmzco.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-szmzco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szmzco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szunau.adb gcc-15.1.0/gcc/ada/libgnat/a-szunau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szunau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szunau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szunau.ads gcc-15.1.0/gcc/ada/libgnat/a-szunau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-szunau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szunau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szunau__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-szunau__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szunau__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szunau__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szuzha.adb gcc-15.1.0/gcc/ada/libgnat/a-szuzha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szuzha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szuzha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szuzti.adb gcc-15.1.0/gcc/ada/libgnat/a-szuzti.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szuzti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szuzti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szuzti.ads gcc-15.1.0/gcc/ada/libgnat/a-szuzti.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-szuzti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szuzti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-szuzti__shared.adb gcc-15.1.0/gcc/ada/libgnat/a-szuzti__shared.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-szuzti__shared.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-szuzti__shared.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tags.adb gcc-15.1.0/gcc/ada/libgnat/a-tags.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tags.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tags.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tags.ads gcc-15.1.0/gcc/ada/libgnat/a-tags.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tags.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tags.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 260,265 ****
--- 260,266 ----
  
     type Prim_Ptr is access procedure;
     type Address_Array is array (Positive range <>) of Prim_Ptr;
+    pragma Suppress_Initialization (Address_Array);
  
     subtype Dispatch_Table is Address_Array (1 .. 1);
     --  Used by GDB to identify the _tags and traverse the run-time structure
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-teioed.adb gcc-15.1.0/gcc/ada/libgnat/a-teioed.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-teioed.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-teioed.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-teioed.ads gcc-15.1.0/gcc/ada/libgnat/a-teioed.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-teioed.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-teioed.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-textio.adb gcc-15.1.0/gcc/ada/libgnat/a-textio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-textio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-textio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-textio.ads gcc-15.1.0/gcc/ada/libgnat/a-textio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-textio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-textio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiboio.adb gcc-15.1.0/gcc/ada/libgnat/a-tiboio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiboio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiboio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ticoau.adb gcc-15.1.0/gcc/ada/libgnat/a-ticoau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ticoau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ticoau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ticoau.ads gcc-15.1.0/gcc/ada/libgnat/a-ticoau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ticoau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ticoau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private generic
*** 42,48 ****
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Text_IO.Float_Aux (Num, <>, <>);
  
  package Ada.Text_IO.Complex_Aux is
  
--- 42,48 ----
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Text_IO.Float_Aux (Num, others => <>);
  
  package Ada.Text_IO.Complex_Aux is
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ticoio.adb gcc-15.1.0/gcc/ada/libgnat/a-ticoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ticoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ticoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ticoio.ads gcc-15.1.0/gcc/ada/libgnat/a-ticoio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ticoio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ticoio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tideau.adb gcc-15.1.0/gcc/ada/libgnat/a-tideau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tideau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tideau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tideau.ads gcc-15.1.0/gcc/ada/libgnat/a-tideau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tideau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tideau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tideio.adb gcc-15.1.0/gcc/ada/libgnat/a-tideio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tideio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tideio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tideio.ads gcc-15.1.0/gcc/ada/libgnat/a-tideio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tideio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tideio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tideio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-tideio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tideio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tideio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tienau.adb gcc-15.1.0/gcc/ada/libgnat/a-tienau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tienau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tienau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tienau.ads gcc-15.1.0/gcc/ada/libgnat/a-tienau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tienau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tienau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tienio.adb gcc-15.1.0/gcc/ada/libgnat/a-tienio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tienio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tienio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tifiau.adb gcc-15.1.0/gcc/ada/libgnat/a-tifiau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tifiau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tifiau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tifiau.ads gcc-15.1.0/gcc/ada/libgnat/a-tifiau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tifiau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tifiau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tifiio.adb gcc-15.1.0/gcc/ada/libgnat/a-tifiio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tifiio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tifiio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 69,75 ****
  --  Operations
  --  ----------
  
! --  [Wide_[Wide_]]Image attribute (see RM 3.5(27.1/2))
  
  --          These attributes return a decimal real literal best approximating
  --          the value (rounded away from zero if halfway between) with a
--- 69,75 ----
  --  Operations
  --  ----------
  
! --  [Wide_[Wide_]]Image attribute (see RM 4.10(30))
  
  --          These attributes return a decimal real literal best approximating
  --          the value (rounded away from zero if halfway between) with a
*************** package body Ada.Text_IO.Fixed_IO with S
*** 191,241 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
--- 191,249 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tifiio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-tifiio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tifiio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tifiio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 69,75 ****
  --  Operations
  --  ----------
  
! --  [Wide_[Wide_]]Image attribute (see RM 3.5(27.1/2))
  
  --          These attributes return a decimal real literal best approximating
  --          the value (rounded away from zero if halfway between) with a
--- 69,75 ----
  --  Operations
  --  ----------
  
! --  [Wide_[Wide_]]Image attribute (see RM 4.10(30))
  
  --          These attributes return a decimal real literal best approximating
  --          the value (rounded away from zero if halfway between) with a
*************** package body Ada.Text_IO.Fixed_IO with S
*** 198,273 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator <= 2**123
!             and then Num'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**123)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
--- 198,285 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator <= 2**123
!             and then Num'Base'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**123)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiflau.adb gcc-15.1.0/gcc/ada/libgnat/a-tiflau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiflau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiflau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiflau.ads gcc-15.1.0/gcc/ada/libgnat/a-tiflau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tiflau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiflau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiflio.adb gcc-15.1.0/gcc/ada/libgnat/a-tiflio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiflio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiflio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiflio.ads gcc-15.1.0/gcc/ada/libgnat/a-tiflio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tiflio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiflio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tigeau.adb gcc-15.1.0/gcc/ada/libgnat/a-tigeau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tigeau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tigeau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tigeau.ads gcc-15.1.0/gcc/ada/libgnat/a-tigeau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tigeau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tigeau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tigeli.adb gcc-15.1.0/gcc/ada/libgnat/a-tigeli.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tigeli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tigeli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiinau.adb gcc-15.1.0/gcc/ada/libgnat/a-tiinau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiinau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiinau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiinau.ads gcc-15.1.0/gcc/ada/libgnat/a-tiinau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tiinau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiinau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiinio.adb gcc-15.1.0/gcc/ada/libgnat/a-tiinio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiinio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiinio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiinio.ads gcc-15.1.0/gcc/ada/libgnat/a-tiinio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tiinio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiinio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiinio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-tiinio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiinio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiinio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-timoio.adb gcc-15.1.0/gcc/ada/libgnat/a-timoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-timoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-timoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLB; use System.Img_LLB;
*** 36,46 ****
--- 36,49 ----
  with System.Img_LLU; use System.Img_LLU;
  with System.Img_LLW; use System.Img_LLW;
  with System.Img_WIU; use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns; use System.Val_Uns;
  with System.Val_LLU; use System.Val_LLU;
  
  package body Ada.Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Text_IO.Modular_IO is
*** 49,54 ****
--- 52,59 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Text_IO.Integer_Aux
         (Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-timoio.ads gcc-15.1.0/gcc/ada/libgnat/a-timoio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-timoio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-timoio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-timoio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-timoio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-timoio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-timoio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLLB; use System.Img_LLL
*** 39,50 ****
--- 39,53 ----
  with System.Img_LLLU; use System.Img_LLLU;
  with System.Img_LLLW; use System.Img_LLLW;
  with System.Img_WIU;  use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns;  use System.Val_Uns;
  with System.Val_LLU;  use System.Val_LLU;
  with System.Val_LLLU; use System.Val_LLLU;
  
  package body Ada.Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Text_IO.Modular_IO is
*** 53,58 ****
--- 56,63 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Text_IO.Integer_Aux
         (Long_Long_Unsigned,
*************** package body Ada.Text_IO.Modular_IO is
*** 61,66 ****
--- 66,74 ----
          Set_Image_Width_Long_Long_Unsigned,
          Set_Image_Based_Long_Long_Unsigned);
  
+    subtype Long_Long_Long_Unsigned is
+      System.Unsigned_Types.Long_Long_Long_Unsigned;
+ 
     package Aux_LLLU is new
       Ada.Text_IO.Integer_Aux
         (Long_Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiocst.adb gcc-15.1.0/gcc/ada/libgnat/a-tiocst.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tiocst.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiocst.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tiocst.ads gcc-15.1.0/gcc/ada/libgnat/a-tiocst.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tiocst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tiocst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tirsfi.adb gcc-15.1.0/gcc/ada/libgnat/a-tirsfi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-tirsfi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tirsfi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-tirsfi.ads gcc-15.1.0/gcc/ada/libgnat/a-tirsfi.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-tirsfi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-tirsfi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-titest.adb gcc-15.1.0/gcc/ada/libgnat/a-titest.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-titest.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-titest.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-unccon.ads gcc-15.1.0/gcc/ada/libgnat/a-unccon.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-unccon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-unccon.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,23 ****
--- 13,27 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package is defined by ARM 13.9 to implement unchecked type
+ --  conversions.
+ 
  generic
     type Source (<>) is limited private;
     type Target (<>) is limited private;
  
  function Ada.Unchecked_Conversion (S : Source) return Target;
+ --  Returns the bit pattern of ``S`` for type ``Target``
  
  pragma No_Elaboration_Code_All (Ada.Unchecked_Conversion);
  pragma Pure (Ada.Unchecked_Conversion);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-uncdea.ads gcc-15.1.0/gcc/ada/libgnat/a-uncdea.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-uncdea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-uncdea.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,21 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package is defined by ARM 13.11.2 to implement unchecked storage
+ --  deallocation of an object designated by a value of an access type.
+ 
  generic
     type Object (<>) is limited private;
     type Name is access Object;
*************** procedure Ada.Unchecked_Deallocation (X
*** 21,26 ****
--- 24,31 ----
    Depends => (X    => null,  --  X on exit does not depend on its input value
                null => X),    --  X's input value has no effect
    Post => X = null;          --  X's output value is null
+ --  Deallocate object denoted by X, and set X to null.
+ 
  pragma Preelaborate (Unchecked_Deallocation);
  
  pragma Import (Intrinsic, Ada.Unchecked_Deallocation);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-undesu.adb gcc-15.1.0/gcc/ada/libgnat/a-undesu.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-undesu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-undesu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wichha.adb gcc-15.1.0/gcc/ada/libgnat/a-wichha.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wichha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wichha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wichun.adb gcc-15.1.0/gcc/ada/libgnat/a-wichun.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wichun.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wichun.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wichun.ads gcc-15.1.0/gcc/ada/libgnat/a-wichun.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wichun.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wichun.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-witeio.adb gcc-15.1.0/gcc/ada/libgnat/a-witeio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-witeio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-witeio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-witeio.ads gcc-15.1.0/gcc/ada/libgnat/a-witeio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-witeio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-witeio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wrstfi.adb gcc-15.1.0/gcc/ada/libgnat/a-wrstfi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wrstfi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wrstfi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wrstfi.ads gcc-15.1.0/gcc/ada/libgnat/a-wrstfi.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wrstfi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wrstfi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtcoau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtcoau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtcoau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtcoau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtcoau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtcoau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtcoau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtcoau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private generic
*** 42,48 ****
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Wide_Text_IO.Float_Aux (Num, <>, <>);
  
  package Ada.Wide_Text_IO.Complex_Aux is
  
--- 42,48 ----
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Wide_Text_IO.Float_Aux (Num, others => <>);
  
  package Ada.Wide_Text_IO.Complex_Aux is
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtcoio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtcoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtcoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtcoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtcstr.adb gcc-15.1.0/gcc/ada/libgnat/a-wtcstr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtcstr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtcstr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtcstr.ads gcc-15.1.0/gcc/ada/libgnat/a-wtcstr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtcstr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtcstr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtdeau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtdeau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtdeau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtdeau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtdeau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtdeau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtdeau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtdeau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtdeio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtdeio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtdeio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtdeio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtdeio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-wtdeio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtdeio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtdeio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtedit.adb gcc-15.1.0/gcc/ada/libgnat/a-wtedit.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtedit.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtedit.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtedit.ads gcc-15.1.0/gcc/ada/libgnat/a-wtedit.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtedit.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtedit.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtenau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtenau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtenau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtenau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtenau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtenau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtenau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtenau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtenio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtenio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtenio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtenio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtfiau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtfiau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtfiau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtfiau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtfiau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtfiau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtfiau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtfiau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtfiio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtfiio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtfiio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtfiio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Wide_Text_IO.Fixed_IO i
*** 70,120 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
--- 70,128 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtfiio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-wtfiio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtfiio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtfiio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Wide_Text_IO.Fixed_IO i
*** 77,152 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator <= 2**123
!             and then Num'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**123)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
--- 77,164 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator <= 2**123
!             and then Num'Base'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**123)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtflau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtflau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtflau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtflau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtflau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtflau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtflau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtflau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtflio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtflio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtflio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtflio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtgeau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtgeau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtgeau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtgeau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtgeau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtgeau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtgeau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtgeau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtinau.adb gcc-15.1.0/gcc/ada/libgnat/a-wtinau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtinau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtinau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtinau.ads gcc-15.1.0/gcc/ada/libgnat/a-wtinau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtinau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtinau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtinio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtinio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtinio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtinio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtinio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-wtinio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtinio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtinio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtmoio.adb gcc-15.1.0/gcc/ada/libgnat/a-wtmoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtmoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtmoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLB; use System.Img_LLB;
*** 36,41 ****
--- 36,42 ----
  with System.Img_LLU; use System.Img_LLU;
  with System.Img_LLW; use System.Img_LLW;
  with System.Img_WIU; use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns; use System.Val_Uns;
  with System.Val_LLU; use System.Val_LLU;
  with System.WCh_Con; use System.WCh_Con;
*************** with System.WCh_WtS; use System.WCh_WtS;
*** 43,48 ****
--- 44,51 ----
  
  package body Ada.Wide_Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Wide_Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Wide_Text_IO.Modular_IO
*** 51,56 ****
--- 54,61 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Wide_Text_IO.Integer_Aux
         (Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtmoio.ads gcc-15.1.0/gcc/ada/libgnat/a-wtmoio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-wtmoio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtmoio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wtmoio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-wtmoio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wtmoio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wtmoio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLLB; use System.Img_LLL
*** 39,44 ****
--- 39,45 ----
  with System.Img_LLLU; use System.Img_LLLU;
  with System.Img_LLLW; use System.Img_LLLW;
  with System.Img_WIU;  use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns;  use System.Val_Uns;
  with System.Val_LLU;  use System.Val_LLU;
  with System.Val_LLLU; use System.Val_LLLU;
*************** with System.WCh_WtS;  use System.WCh_WtS
*** 47,52 ****
--- 48,55 ----
  
  package body Ada.Wide_Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Wide_Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Wide_Text_IO.Modular_IO
*** 55,60 ****
--- 58,65 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Wide_Text_IO.Integer_Aux
         (Long_Long_Unsigned,
*************** package body Ada.Wide_Text_IO.Modular_IO
*** 63,68 ****
--- 68,76 ----
          Set_Image_Width_Long_Long_Unsigned,
          Set_Image_Based_Long_Long_Unsigned);
  
+    subtype Long_Long_Long_Unsigned is
+      System.Unsigned_Types.Long_Long_Long_Unsigned;
+ 
     package Aux_LLLU is new
       Ada.Wide_Text_IO.Integer_Aux
         (Long_Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wttest.adb gcc-15.1.0/gcc/ada/libgnat/a-wttest.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wttest.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wttest.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-wwboio.adb gcc-15.1.0/gcc/ada/libgnat/a-wwboio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-wwboio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-wwboio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zchhan.adb gcc-15.1.0/gcc/ada/libgnat/a-zchhan.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-zchhan.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zchhan.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zchuni.adb gcc-15.1.0/gcc/ada/libgnat/a-zchuni.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-zchuni.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zchuni.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zchuni.ads gcc-15.1.0/gcc/ada/libgnat/a-zchuni.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-zchuni.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zchuni.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zrstfi.adb gcc-15.1.0/gcc/ada/libgnat/a-zrstfi.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-zrstfi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zrstfi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zrstfi.ads gcc-15.1.0/gcc/ada/libgnat/a-zrstfi.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-zrstfi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zrstfi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztcoau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztcoau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztcoau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztcoau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztcoau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztcoau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztcoau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztcoau.ads	Fri Apr 25 08:18:00 2025
*************** private generic
*** 26,32 ****
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Wide_Wide_Text_IO.Float_Aux (Num, <>, <>);
  
  package Ada.Wide_Wide_Text_IO.Complex_Aux is
  
--- 26,32 ----
  
     type Num is digits <>;
  
!    with package Aux is new Ada.Wide_Wide_Text_IO.Float_Aux (Num, others => <>);
  
  package Ada.Wide_Wide_Text_IO.Complex_Aux is
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztcoio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztcoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztcoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztcoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztcstr.adb gcc-15.1.0/gcc/ada/libgnat/a-ztcstr.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztcstr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztcstr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztcstr.ads gcc-15.1.0/gcc/ada/libgnat/a-ztcstr.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztcstr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztcstr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztdeau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztdeau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztdeau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztdeau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztdeau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztdeau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztdeau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztdeau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztdeio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztdeio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztdeio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztdeio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztdeio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-ztdeio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztdeio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztdeio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztedit.adb gcc-15.1.0/gcc/ada/libgnat/a-ztedit.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztedit.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztedit.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztedit.ads gcc-15.1.0/gcc/ada/libgnat/a-ztedit.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztedit.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztedit.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztenau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztenau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztenau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztenau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztenau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztenau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztenau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztenau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztenio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztenio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztenio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztenio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztexio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztexio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztexio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztexio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztexio.ads gcc-15.1.0/gcc/ada/libgnat/a-ztexio.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztexio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztexio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztfiau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztfiau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztfiau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztfiau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztfiau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztfiau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztfiau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztfiau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztfiio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztfiio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztfiio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztfiio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Wide_Wide_Text_IO.Fixed
*** 70,120 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
--- 70,128 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural := 63 - 32 * Boolean'Pos (OK_Put_32);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztfiio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-ztfiio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztfiio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztfiio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Wide_Wide_Text_IO.Fixed
*** 78,153 ****
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator <= 2**27
!             and then Num'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**31)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**31)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**27)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator <= 2**59
!             and then Num'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**63)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**63)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**59)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator <= 2**123
!             and then Num'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Small_Numerator = 1 and then Num'Small_Denominator <= 2**127)
             or else
!           (Num'Small_Denominator = 1 and then Num'Small_Numerator <= 2**127)
             or else
!           (Num'Small_Numerator < Num'Small_Denominator
!             and then Num'Small_Denominator <= 2**123)
             or else
!           (Num'Small_Denominator < Num'Small_Numerator
!             and then Num'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
--- 78,165 ----
     OK_Get_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator <= 2**27
!             and then Num'Base'Small_Denominator <= 2**27));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_32 : constant Boolean :=
       Num'Base'Object_Size <= 32
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**31)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**31)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**27)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**25));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator <= 2**59
!             and then Num'Base'Small_Denominator <= 2**59));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_64 : constant Boolean :=
       Num'Base'Object_Size <= 64
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**63)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**63)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**59)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**53));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     OK_Get_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator <= 2**123
!             and then Num'Base'Small_Denominator <= 2**123));
     --  These conditions are derived from the prerequisites of System.Value_F
  
     OK_Put_128 : constant Boolean :=
       Num'Base'Object_Size <= 128
         and then
!          ((Num'Base'Small_Numerator = 1
!             and then Num'Base'Small_Denominator <= 2**127)
             or else
!           (Num'Base'Small_Denominator = 1
!             and then Num'Base'Small_Numerator <= 2**127)
             or else
!           (Num'Base'Small_Numerator < Num'Base'Small_Denominator
!             and then Num'Base'Small_Denominator <= 2**123)
             or else
!           (Num'Base'Small_Denominator < Num'Base'Small_Numerator
!             and then Num'Base'Small_Numerator <= 2**122));
     --  These conditions are derived from the prerequisites of System.Image_F
  
     E : constant Natural :=
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztflau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztflau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztflau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztflau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztflau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztflau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztflau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztflau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztflio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztflio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztflio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztflio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztgeau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztgeau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztgeau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztgeau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztgeau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztgeau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztgeau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztgeau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztinau.adb gcc-15.1.0/gcc/ada/libgnat/a-ztinau.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztinau.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztinau.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztinau.ads gcc-15.1.0/gcc/ada/libgnat/a-ztinau.ads
*** gcc-14.2.0/gcc/ada/libgnat/a-ztinau.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztinau.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztinio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztinio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztinio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztinio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztinio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-ztinio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztinio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztinio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztmoio.adb gcc-15.1.0/gcc/ada/libgnat/a-ztmoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztmoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztmoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLB; use System.Img_LLB;
*** 36,41 ****
--- 36,42 ----
  with System.Img_LLU; use System.Img_LLU;
  with System.Img_LLW; use System.Img_LLW;
  with System.Img_WIU; use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns; use System.Val_Uns;
  with System.Val_LLU; use System.Val_LLU;
  with System.WCh_Con; use System.WCh_Con;
*************** with System.WCh_WtS; use System.WCh_WtS;
*** 43,48 ****
--- 44,51 ----
  
  package body Ada.Wide_Wide_Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Wide_Wide_Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Wide_Wide_Text_IO.Modul
*** 51,56 ****
--- 54,61 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Wide_Wide_Text_IO.Integer_Aux
         (Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-ztmoio__128.adb gcc-15.1.0/gcc/ada/libgnat/a-ztmoio__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-ztmoio__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-ztmoio__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Img_LLLB; use System.Img_LLL
*** 39,44 ****
--- 39,45 ----
  with System.Img_LLLU; use System.Img_LLLU;
  with System.Img_LLLW; use System.Img_LLLW;
  with System.Img_WIU;  use System.Img_WIU;
+ with System.Unsigned_Types;
  with System.Val_Uns;  use System.Val_Uns;
  with System.Val_LLU;  use System.Val_LLU;
  with System.Val_LLLU; use System.Val_LLLU;
*************** with System.WCh_WtS;  use System.WCh_WtS
*** 47,52 ****
--- 48,55 ----
  
  package body Ada.Wide_Wide_Text_IO.Modular_IO is
  
+    subtype Unsigned is System.Unsigned_Types.Unsigned;
+ 
     package Aux_Uns is new
       Ada.Wide_Wide_Text_IO.Integer_Aux
         (Unsigned,
*************** package body Ada.Wide_Wide_Text_IO.Modul
*** 55,60 ****
--- 58,65 ----
          Set_Image_Width_Unsigned,
          Set_Image_Based_Unsigned);
  
+    subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+ 
     package Aux_LLU is new
       Ada.Wide_Wide_Text_IO.Integer_Aux
         (Long_Long_Unsigned,
*************** package body Ada.Wide_Wide_Text_IO.Modul
*** 63,68 ****
--- 68,76 ----
          Set_Image_Width_Long_Long_Unsigned,
          Set_Image_Based_Long_Long_Unsigned);
  
+    subtype Long_Long_Long_Unsigned is
+      System.Unsigned_Types.Long_Long_Long_Unsigned;
+ 
     package Aux_LLLU is new
       Ada.Wide_Wide_Text_IO.Integer_Aux
         (Long_Long_Long_Unsigned,
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zttest.adb gcc-15.1.0/gcc/ada/libgnat/a-zttest.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-zttest.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zttest.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/a-zzboio.adb gcc-15.1.0/gcc/ada/libgnat/a-zzboio.adb
*** gcc-14.2.0/gcc/ada/libgnat/a-zzboio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/a-zzboio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/ada.ads gcc-15.1.0/gcc/ada/libgnat/ada.ads
*** gcc-14.2.0/gcc/ada/libgnat/ada.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/ada.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,20 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This is an empty package at the top of the Ada package hierarchy
+ 
  package Ada is
     pragma No_Elaboration_Code_All;
     pragma Pure;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-allein.ads gcc-15.1.0/gcc/ada/libgnat/g-allein.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-allein.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-allein.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alleve.adb gcc-15.1.0/gcc/ada/libgnat/g-alleve.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-alleve.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alleve.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Altivec.Low_Level_Vect
*** 377,383 ****
        begin
           for K in Varray_Type'Range loop
              D (K) := (if A (K) /= Component_Type'First
!                       then abs (A (K)) else Component_Type'First);
           end loop;
  
           return D;
--- 377,383 ----
        begin
           for K in Varray_Type'Range loop
              D (K) := (if A (K) /= Component_Type'First
!                       then abs A (K) else Component_Type'First);
           end loop;
  
           return D;
*************** package body GNAT.Altivec.Low_Level_Vect
*** 392,398 ****
  
        begin
           for K in Varray_Type'Range loop
!             D (K) := Saturate (abs (SI64 (A (K))));
           end loop;
  
           return D;
--- 392,398 ----
  
        begin
           for K in Varray_Type'Range loop
!             D (K) := Saturate (abs SI64 (A (K)));
           end loop;
  
           return D;
*************** package body GNAT.Altivec.Low_Level_Vect
*** 1583,1589 ****
  
     begin
        if Bits (VSCR, NJ_POS, NJ_POS) = 1
!         and then abs (X) < 2.0 ** (-126)
        then
           D := (if X < 0.0 then -0.0 else +0.0);
        else
--- 1583,1589 ----
  
     begin
        if Bits (VSCR, NJ_POS, NJ_POS) = 1
!         and then abs X < 2.0 ** (-126)
        then
           D := (if X < 0.0 then -0.0 else +0.0);
        else
*************** package body GNAT.Altivec.Low_Level_Vect
*** 1959,1965 ****
  
     begin
        for J in Varray_float'Range loop
!          D (J) := abs (VA.Values (J));
        end loop;
  
        return To_Vector ((Values => D));
--- 1959,1965 ----
  
     begin
        for J in Varray_float'Range loop
!          D (J) := abs VA.Values (J);
        end loop;
  
        return To_Vector ((Values => D));
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alleve.ads gcc-15.1.0/gcc/ada/libgnat/g-alleve.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-alleve.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alleve.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 313,334 ****
     ---------------------------------------
  
     --  We simply use the natural array definitions corresponding to each
!    --  user-level vector type.
  
!    type LL_VUI is new VUI_View;
!    type LL_VSI is new VSI_View;
!    type LL_VBI is new VBI_View;
  
     type LL_VUS is new VUS_View;
     type LL_VSS is new VSS_View;
     type LL_VBS is new VBS_View;
  
!    type LL_VUC is new VUC_View;
!    type LL_VSC is new VSC_View;
!    type LL_VBC is new VBC_View;
  
     type LL_VF is new VF_View;
     type LL_VP is new VP_View;
  
     ------------------------------------
     -- Low level functional interface --
--- 313,374 ----
     ---------------------------------------
  
     --  We simply use the natural array definitions corresponding to each
!    --  user-level vector type. We need to put pragma Universal_Aliasing
!    --  on these types because the common operations are implemented by
!    --  means of Unchecked_Conversion betwwen different representations.
  
!    --------------------------
!    -- char Core Components --
!    --------------------------
! 
!    type LL_VUC is new VUC_View;
!    pragma Universal_Aliasing (LL_VUC);
! 
!    type LL_VSC is new VSC_View;
!    pragma Universal_Aliasing (LL_VSC);
! 
!    type LL_VBC is new VBC_View;
!    pragma Universal_Aliasing (LL_VBC);
! 
!    ---------------------------
!    -- short Core Components --
!    ---------------------------
  
     type LL_VUS is new VUS_View;
+    pragma Universal_Aliasing (LL_VUS);
+ 
     type LL_VSS is new VSS_View;
+    pragma Universal_Aliasing (LL_VSS);
+ 
     type LL_VBS is new VBS_View;
+    pragma Universal_Aliasing (LL_VBS);
  
!    -------------------------
!    -- int Core Components --
!    -------------------------
! 
!    type LL_VUI is new VUI_View;
!    pragma Universal_Aliasing (LL_VUI);
! 
!    type LL_VSI is new VSI_View;
!    pragma Universal_Aliasing (LL_VSI);
! 
!    type LL_VBI is new VBI_View;
!    pragma Universal_Aliasing (LL_VBI);
! 
!    ---------------------------
!    -- Float Core Components --
!    ---------------------------
  
     type LL_VF is new VF_View;
+    pragma Universal_Aliasing (LL_VF);
+ 
+    ---------------------------
+    -- pixel Core Components --
+    ---------------------------
+ 
     type LL_VP is new VP_View;
+    pragma Universal_Aliasing (LL_VP);
  
     ------------------------------------
     -- Low level functional interface --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alleve__hard.adb gcc-15.1.0/gcc/ada/libgnat/g-alleve__hard.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-alleve__hard.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alleve__hard.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alleve__hard.ads gcc-15.1.0/gcc/ada/libgnat/g-alleve__hard.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-alleve__hard.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alleve__hard.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 326,341 ****
--- 326,344 ----
     type LL_VUC is array (1 .. 16) of unsigned_char;
     for LL_VUC'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VUC, "vector_type");
+    pragma Universal_Aliasing (LL_VUC);
     pragma Suppress (All_Checks, LL_VUC);
  
     type LL_VSC is array (1 .. 16) of signed_char;
     for LL_VSC'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VSC, "vector_type");
+    pragma Universal_Aliasing (LL_VSC);
     pragma Suppress (All_Checks, LL_VSC);
  
     type LL_VBC is array (1 .. 16) of unsigned_char;
     for LL_VBC'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VBC, "vector_type");
+    pragma Universal_Aliasing (LL_VBC);
     pragma Suppress (All_Checks, LL_VBC);
  
     ---------------------------
*************** private
*** 345,360 ****
--- 348,366 ----
     type LL_VUS is array (1 .. 8) of unsigned_short;
     for LL_VUS'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VUS, "vector_type");
+    pragma Universal_Aliasing (LL_VUS);
     pragma Suppress (All_Checks, LL_VUS);
  
     type LL_VSS is array (1 .. 8) of signed_short;
     for LL_VSS'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VSS, "vector_type");
+    pragma Universal_Aliasing (LL_VSS);
     pragma Suppress (All_Checks, LL_VSS);
  
     type LL_VBS is array (1 .. 8) of unsigned_short;
     for LL_VBS'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VBS, "vector_type");
+    pragma Universal_Aliasing (LL_VBS);
     pragma Suppress (All_Checks, LL_VBS);
  
     -------------------------
*************** private
*** 364,379 ****
--- 370,388 ----
     type LL_VUI is array (1 .. 4) of unsigned_int;
     for LL_VUI'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VUI, "vector_type");
+    pragma Universal_Aliasing (LL_VUI);
     pragma Suppress (All_Checks, LL_VUI);
  
     type LL_VSI is array (1 .. 4) of signed_int;
     for LL_VSI'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VSI, "vector_type");
+    pragma Universal_Aliasing (LL_VSI);
     pragma Suppress (All_Checks, LL_VSI);
  
     type LL_VBI is array (1 .. 4) of unsigned_int;
     for LL_VBI'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VBI, "vector_type");
+    pragma Universal_Aliasing (LL_VBI);
     pragma Suppress (All_Checks, LL_VBI);
  
     ---------------------------
*************** private
*** 383,388 ****
--- 392,398 ----
     type LL_VF is array (1 .. 4) of Float;
     for LL_VF'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VF, "vector_type");
+    pragma Universal_Aliasing (LL_VF);
     pragma Suppress (All_Checks, LL_VF);
  
     ---------------------------
*************** private
*** 392,397 ****
--- 402,408 ----
     type LL_VP is array (1 .. 8) of pixel;
     for LL_VP'Alignment use VECTOR_ALIGNMENT;
     pragma Machine_Attribute (LL_VP, "vector_type");
+    pragma Universal_Aliasing (LL_VP);
     pragma Suppress (All_Checks, LL_VP);
  
     ------------------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-altcon.adb gcc-15.1.0/gcc/ada/libgnat/g-altcon.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-altcon.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-altcon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-altcon.ads gcc-15.1.0/gcc/ada/libgnat/g-altcon.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-altcon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-altcon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-altive.ads gcc-15.1.0/gcc/ada/libgnat/g-altive.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-altive.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-altive.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alveop.adb gcc-15.1.0/gcc/ada/libgnat/g-alveop.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-alveop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alveop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2004-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2004-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alveop.ads gcc-15.1.0/gcc/ada/libgnat/g-alveop.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-alveop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alveop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alvety.ads gcc-15.1.0/gcc/ada/libgnat/g-alvety.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-alvety.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alvety.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-alvevi.ads gcc-15.1.0/gcc/ada/libgnat/g-alvevi.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-alvevi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-alvevi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Altivec.Vector_Views is
*** 58,63 ****
--- 58,64 ----
     type VUC_View is record
        Values : Varray_unsigned_char;
     end record;
+    pragma Universal_Aliasing (VUC_View);
  
     type Varray_signed_char is array (Vchar_Range) of signed_char;
     for Varray_signed_char'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 65,70 ****
--- 66,72 ----
     type VSC_View is record
        Values : Varray_signed_char;
     end record;
+    pragma Universal_Aliasing (VSC_View);
  
     type Varray_bool_char is array (Vchar_Range) of bool_char;
     for Varray_bool_char'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 72,77 ****
--- 74,80 ----
     type VBC_View is record
        Values : Varray_bool_char;
     end record;
+    pragma Universal_Aliasing (VBC_View);
  
     ----------------------
     -- short components --
*************** package GNAT.Altivec.Vector_Views is
*** 85,90 ****
--- 88,94 ----
     type VUS_View is record
        Values : Varray_unsigned_short;
     end record;
+    pragma Universal_Aliasing (VUS_View);
  
     type Varray_signed_short is array (Vshort_Range) of signed_short;
     for Varray_signed_short'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 92,97 ****
--- 96,102 ----
     type VSS_View is record
        Values : Varray_signed_short;
     end record;
+    pragma Universal_Aliasing (VSS_View);
  
     type Varray_bool_short is array (Vshort_Range) of bool_short;
     for Varray_bool_short'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 99,104 ****
--- 104,110 ----
     type VBS_View is record
        Values : Varray_bool_short;
     end record;
+    pragma Universal_Aliasing (VBS_View);
  
     --------------------
     -- int components --
*************** package GNAT.Altivec.Vector_Views is
*** 112,117 ****
--- 118,124 ----
     type VUI_View is record
        Values : Varray_unsigned_int;
     end record;
+    pragma Universal_Aliasing (VUI_View);
  
     type Varray_signed_int is array (Vint_Range) of signed_int;
     for Varray_signed_int'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 119,124 ****
--- 126,132 ----
     type VSI_View is record
        Values : Varray_signed_int;
     end record;
+    pragma Universal_Aliasing (VSI_View);
  
     type Varray_bool_int is array (Vint_Range) of bool_int;
     for Varray_bool_int'Alignment use VECTOR_ALIGNMENT;
*************** package GNAT.Altivec.Vector_Views is
*** 126,131 ****
--- 134,140 ----
     type VBI_View is record
        Values : Varray_bool_int;
     end record;
+    pragma Universal_Aliasing (VBI_View);
  
     ----------------------
     -- float components --
*************** package GNAT.Altivec.Vector_Views is
*** 139,144 ****
--- 148,154 ----
     type VF_View is record
        Values : Varray_float;
     end record;
+    pragma Universal_Aliasing (VF_View);
  
     ----------------------
     -- pixel components --
*************** package GNAT.Altivec.Vector_Views is
*** 152,156 ****
--- 162,167 ----
     type VP_View is record
        Values : Varray_pixel;
     end record;
+    pragma Universal_Aliasing (VP_View);
  
  end GNAT.Altivec.Vector_Views;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-arrspl.adb gcc-15.1.0/gcc/ada/libgnat/g-arrspl.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-arrspl.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-arrspl.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-arrspl.ads gcc-15.1.0/gcc/ada/libgnat/g-arrspl.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-arrspl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-arrspl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-awk.adb gcc-15.1.0/gcc/ada/libgnat/g-awk.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-awk.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-awk.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.AWK is
*** 261,267 ****
     -- Session Data --
     ------------------
  
!    type Session_Data is record
        Current_File : Text_IO.File_Type;
        Current_Line : Unbounded_String;
        Separators   : Split.Mode_Access;
--- 261,267 ----
     -- Session Data --
     ------------------
  
!    type Session_Data is limited record
        Current_File : Text_IO.File_Type;
        Current_Line : Unbounded_String;
        Separators   : Split.Mode_Access;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-awk.ads gcc-15.1.0/gcc/ada/libgnat/g-awk.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-awk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-awk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-binenv.adb gcc-15.1.0/gcc/ada/libgnat/g-binenv.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-binenv.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-binenv.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-binenv.ads gcc-15.1.0/gcc/ada/libgnat/g-binenv.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-binenv.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-binenv.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-binsea.adb gcc-15.1.0/gcc/ada/libgnat/g-binsea.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-binsea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-binsea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-binsea.ads gcc-15.1.0/gcc/ada/libgnat/g-binsea.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-binsea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-binsea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-brapre.ads gcc-15.1.0/gcc/ada/libgnat/g-brapre.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-brapre.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-brapre.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2019-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2019-2025, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-bubsor.adb gcc-15.1.0/gcc/ada/libgnat/g-bubsor.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-bubsor.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-bubsor.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-bubsor.ads gcc-15.1.0/gcc/ada/libgnat/g-bubsor.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-bubsor.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-bubsor.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-busora.adb gcc-15.1.0/gcc/ada/libgnat/g-busora.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-busora.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-busora.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-busora.ads gcc-15.1.0/gcc/ada/libgnat/g-busora.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-busora.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-busora.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-busorg.adb gcc-15.1.0/gcc/ada/libgnat/g-busorg.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-busorg.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-busorg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-busorg.ads gcc-15.1.0/gcc/ada/libgnat/g-busorg.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-busorg.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-busorg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-byorma.adb gcc-15.1.0/gcc/ada/libgnat/g-byorma.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-byorma.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-byorma.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-byorma.ads gcc-15.1.0/gcc/ada/libgnat/g-byorma.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-byorma.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-byorma.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-bytswa.adb gcc-15.1.0/gcc/ada/libgnat/g-bytswa.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-bytswa.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-bytswa.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-bytswa.ads gcc-15.1.0/gcc/ada/libgnat/g-bytswa.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-bytswa.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-bytswa.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-calend.adb gcc-15.1.0/gcc/ada/libgnat/g-calend.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-calend.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-calend.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-calend.ads gcc-15.1.0/gcc/ada/libgnat/g-calend.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-calend.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-calend.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-casuti.adb gcc-15.1.0/gcc/ada/libgnat/g-casuti.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-casuti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-casuti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-casuti.ads gcc-15.1.0/gcc/ada/libgnat/g-casuti.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-casuti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-casuti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-catiio.adb gcc-15.1.0/gcc/ada/libgnat/g-catiio.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-catiio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-catiio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-catiio.ads gcc-15.1.0/gcc/ada/libgnat/g-catiio.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-catiio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-catiio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgi.adb gcc-15.1.0/gcc/ada/libgnat/g-cgi.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cgi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2001-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2001-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgi.ads gcc-15.1.0/gcc/ada/libgnat/g-cgi.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cgi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgicoo.adb gcc-15.1.0/gcc/ada/libgnat/g-cgicoo.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cgicoo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgicoo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgicoo.ads gcc-15.1.0/gcc/ada/libgnat/g-cgicoo.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cgicoo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgicoo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgideb.adb gcc-15.1.0/gcc/ada/libgnat/g-cgideb.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cgideb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgideb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cgideb.ads gcc-15.1.0/gcc/ada/libgnat/g-cgideb.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cgideb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cgideb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-comlin.adb gcc-15.1.0/gcc/ada/libgnat/g-comlin.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-comlin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-comlin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-comlin.ads gcc-15.1.0/gcc/ada/libgnat/g-comlin.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-comlin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-comlin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 1045,1051 ****
  
     type Depth is range 1 .. Max_Depth;
  
!    type Level is record
        Name_Last : Natural := 0;
        Dir       : GNAT.Directory_Operations.Dir_Type;
     end record;
--- 1045,1051 ----
  
     type Depth is range 1 .. Max_Depth;
  
!    type Level is limited record
        Name_Last : Natural := 0;
        Dir       : GNAT.Directory_Operations.Dir_Type;
     end record;
*************** private
*** 1087,1093 ****
        --  separators in the pattern.
     end record;
  
!    type Opt_Parser_Data (Arg_Count : Natural) is record
        Arguments : GNAT.OS_Lib.Argument_List_Access;
        --  null if reading from the command line
  
--- 1087,1093 ----
        --  separators in the pattern.
     end record;
  
!    type Opt_Parser_Data (Arg_Count : Natural) is limited record
        Arguments : GNAT.OS_Lib.Argument_List_Access;
        --  null if reading from the command line
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-comver.adb gcc-15.1.0/gcc/ada/libgnat/g-comver.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-comver.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-comver.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-comver.ads gcc-15.1.0/gcc/ada/libgnat/g-comver.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-comver.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-comver.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cpp.ads gcc-15.1.0/gcc/ada/libgnat/g-cpp.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cpp.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-cpp.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,36 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                             G N A T . C P P                              --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package may provide an Ada interface for some C++ standard
+ --  entities in the global namespace.
+ 
+ package GNAT.CPP is
+ end GNAT.CPP;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cppexc.adb gcc-15.1.0/gcc/ada/libgnat/g-cppexc.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cppexc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cppexc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System;
! with System.Storage_Elements;
  with Interfaces.C; use Interfaces.C;
  with Ada.Unchecked_Conversion;
  with System.Standard_Library; use System.Standard_Library;
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System; use System;
  with Interfaces.C; use Interfaces.C;
  with Ada.Unchecked_Conversion;
  with System.Standard_Library; use System.Standard_Library;
*************** package body GNAT.CPP_Exceptions is
*** 84,90 ****
     begin
        --  Check the exception was imported from C++
  
!       if Id_Data.Lang /= 'C' then
           raise Constraint_Error;
        end if;
  
--- 83,89 ----
     begin
        --  Check the exception was imported from C++
  
!       if Id_Data.Lang not in 'B' | 'C' then
           raise Constraint_Error;
        end if;
  
*************** package body GNAT.CPP_Exceptions is
*** 101,139 ****
        cxa_throw (Occ, Id_Data.Foreign_Data, System.Null_Address);
     end Raise_Cpp_Exception;
  
     ----------------
     -- Get_Object --
     ----------------
  
     function Get_Object (X : Exception_Occurrence) return T
     is
!       use System;
!       use System.Storage_Elements;
  
!       Unwind_Exception_Size : Natural;
!       pragma Import (C, Unwind_Exception_Size, "__gnat_unwind_exception_size");
!       --  Size in bytes of _Unwind_Exception
  
        Exception_Addr : constant Address :=
          Get_Exception_Machine_Occurrence (X);
        --  Machine occurrence of X
  
!    begin
!       --  Check the machine occurrence exists
  
        if Exception_Addr = Null_Address then
           raise Constraint_Error;
        end if;
  
!       declare
!          --  Import the object from the occurrence
!          Result : T;
!          pragma Import (Ada, Result);
!          for Result'Address use
!             Exception_Addr + Storage_Offset (Unwind_Exception_Size);
!       begin
!          --  And return it
!          return Result;
!       end;
!    end Get_Object;
  end GNAT.CPP_Exceptions;
--- 100,270 ----
        cxa_throw (Occ, Id_Data.Foreign_Data, System.Null_Address);
     end Raise_Cpp_Exception;
  
+    ------------------------
+    -- Get_Object_Address --
+    ------------------------
+ 
+    function Get_Object_Address
+      (X : Exception_Occurrence) return System.Address
+    is
+       Exception_Addr : constant Address :=
+         Get_Exception_Machine_Occurrence (X);
+       --  Machine occurrence of X
+ 
+       Object_Addr : Address;
+       --  Address of the raised object, after calling Convert
+ 
+       Id : constant Exception_Id := Exception_Identity (X);
+ 
+       Id_Data : constant Exception_Data_Ptr := To_Exception_Data_Ptr (Id);
+       --  Get a non-private view on the exception
+ 
+       Success : Integer;
+ 
+       procedure Convert (Success     : out Integer;
+                          Object_Addr : out Address;
+                          Catch_Type  : Address;
+                          Convention  : Character;
+                          Unw_Except  : Address);
+       pragma Import (C, Convert, "__gnat_obtain_caught_object");
+ 
+    begin
+       --  Check the machine occurrence exists
+ 
+       if Exception_Addr = Null_Address then
+          raise Constraint_Error;
+       end if;
+ 
+       if Id_Data.Lang not in 'A' .. 'C' then
+          raise Constraint_Error;
+       end if;
+ 
+       Convert (Success, Object_Addr,
+                Id_Data.Foreign_Data, Id_Data.Lang,
+                Exception_Addr);
+       if Success = 0 then
+          raise Constraint_Error;
+       end if;
+ 
+       return Object_Addr;
+    end Get_Object_Address;
+ 
     ----------------
     -- Get_Object --
     ----------------
  
     function Get_Object (X : Exception_Occurrence) return T
     is
!       Object_Addr : constant System.Address := Get_Object_Address (X);
!       --  Address of the raised object
  
!       --  Import the object from the occurrence
!       Result : constant T;
!       pragma Import (Ada, Result);
!       for Result'Address use Object_Addr;
!    begin
!       return Result;
!    end Get_Object;
! 
!    --------------------------
!    -- Get_Access_To_Object --
!    --------------------------
! 
!    function Get_Access_To_Object (X : Exception_Occurrence)
!                                  return access T
!    is
!       Object_Addr : constant System.Address := Get_Object_Address (X);
!       --  Address of the raised object
  
+       type T_Acc is access T;
+ 
+       function To_T_Acc is
+          new Ada.Unchecked_Conversion (System.Address, T_Acc);
+ 
+       --  Import the object from the occurrence
+       Result : constant T_Acc := To_T_Acc (Object_Addr);
+    begin
+       return Result;
+    end Get_Access_To_Object;
+ 
+    ---------------------------------
+    -- Get_Access_To_Tagged_Object --
+    ---------------------------------
+ 
+    function Get_Access_To_Tagged_Object (X : Exception_Occurrence)
+                                         return access T'Class
+    is
+       Object_Addr : constant System.Address := Get_Object_Address (X);
+       --  Address of the raised object
+ 
+       type T_Acc is access T'Class;
+ 
+       function To_T_Acc is
+          new Ada.Unchecked_Conversion (System.Address, T_Acc);
+ 
+       --  Import the object from the occurrence
+       Result : constant T_Acc := To_T_Acc (Object_Addr);
+    begin
+       return Result;
+    end Get_Access_To_Tagged_Object;
+ 
+    -------------------
+    -- Get_Type_Info --
+    -------------------
+ 
+    function Get_Type_Info (Id : Exception_Id) return Type_Info_Ptr is
+       Id_Data : constant Exception_Data_Ptr := To_Exception_Data_Ptr (Id);
+       --  Get a non-private view on the exception
+ 
+       Foreign_Exception : aliased Exception_Data;
+       pragma Import
+         (Ada, Foreign_Exception, "system__exceptions__foreign_exception");
+    begin
+       if Id_Data.Lang not in 'B' | 'C' then
+          if Id_Data.Lang = 'A'
+            and then
+            Id_Data = Foreign_Exception'Unchecked_Access
+          then
+             return No_Type_Info;
+          end if;
+          raise Constraint_Error;
+       end if;
+ 
+       return To_Type_Info_Ptr (Id_Data.Foreign_Data);
+    end Get_Type_Info;
+ 
+    -------------------
+    -- Get_Type_Info --
+    -------------------
+ 
+    function Get_Type_Info (X : Exception_Occurrence) return Type_Info_Ptr is
        Exception_Addr : constant Address :=
          Get_Exception_Machine_Occurrence (X);
        --  Machine occurrence of X
  
!       function Get_MO_RTTI (MO : Address) return Type_Info_Ptr;
!       pragma Import (Cpp, Get_MO_RTTI, "__gnat_get_cxx_exception_type_info");
  
+       TI : Type_Info_Ptr;
+    begin
        if Exception_Addr = Null_Address then
           raise Constraint_Error;
        end if;
  
!       if To_Exception_Data_Ptr (Exception_Identity (X)).Lang
!         not in 'A' .. 'C'
!       then
!          raise Constraint_Error;
!       end if;
! 
!       TI := Get_MO_RTTI (Exception_Addr);
! 
!       if TI = No_Type_Info then
!          raise Constraint_Error;
!       end if;
! 
!       return TI;
! 
!    end Get_Type_Info;
! 
  end GNAT.CPP_Exceptions;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cppexc.ads gcc-15.1.0/gcc/ada/libgnat/g-cppexc.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cppexc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-cppexc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,37 ****
--- 31,39 ----
  
  --  This package provides an interface for raising and handling C++ exceptions
  
+ with System;
  with Ada.Exceptions; use Ada.Exceptions;
+ with GNAT.CPP.Std; use GNAT.CPP.Std;
  
  package GNAT.CPP_Exceptions is
     generic
*************** package GNAT.CPP_Exceptions is
*** 40,48 ****
     --  Raise a C++ exception identified by Id. Associate Value with this
     --  occurrence. Id must refer to an exception that has the Cpp convention.
  
     generic
        type T is private;
     function Get_Object (X : Exception_Occurrence) return T;
!    --  Extract the object associated with X. The exception of the occurrence
!    --  X must have a Cpp Convention.
  end GNAT.CPP_Exceptions;
--- 42,92 ----
     --  Raise a C++ exception identified by Id. Associate Value with this
     --  occurrence. Id must refer to an exception that has the Cpp convention.
  
+    function Get_Object_Address
+      (X : Exception_Occurrence) return System.Address;
+    --  Extract the address of the object associated with X. The
+    --  exception of the occurrence X must have a Cpp Convention.  When
+    --  the exception handler catches a base type of the raised object,
+    --  the returned address is that of the base type part of the
+    --  object, the type explicitly expected by the handler.
+ 
     generic
        type T is private;
     function Get_Object (X : Exception_Occurrence) return T;
!    --  Extract the object associated with X. The exception of the
!    --  occurrence X must have a Cpp Convention.  When the exception
!    --  handler catches a base type of the raised object, the returned
!    --  object is (a copy of) the base type portion of the object.
! 
!    generic
!       type T is limited private;
!    function Get_Access_To_Object (X : Exception_Occurrence)
!                                  return access T;
!    --  Extract the object associated with X. The exception of the
!    --  occurrence X must have a Cpp Convention. When the exception
!    --  handler catches a base type of the raised object, access is
!    --  returned to the base type part of the object, the type
!    --  explicitly expected by the handler.
! 
!    generic
!       type T is abstract tagged limited private;
!    function Get_Access_To_Tagged_Object (X : Exception_Occurrence)
!                                         return access T'Class;
!    --  Extract the object associated with X. The exception of the
!    --  occurrence X must have a Cpp Convention. When the exception
!    --  handler catches a base type of the raised object, access is
!    --  returned to the base type part of the object, the type
!    --  explicitly expected by the handler.
! 
!    function Get_Type_Info (X : Exception_Occurrence) return Type_Info_Ptr;
!    --  Obtain the type information of the full C++ object raised as X.
!    --  When the exception is caught using a base-type match exception,
!    --  this may be a derived class from that named for the exception.
! 
!    function Get_Type_Info (Id : Exception_Id) return Type_Info_Ptr;
!    --  Obtain the type information of a C++ exception type. This will
!    --  be the std::type_info object named in the exception
!    --  declaration, even if ID is taken from an exception occurrence
!    --  containing an object of a derived type.
! 
  end GNAT.CPP_Exceptions;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cppstd.adb gcc-15.1.0/gcc/ada/libgnat/g-cppstd.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cppstd.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-cppstd.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,116 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                         G N A T . C P P . S T D                          --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package may provide an Ada interface for some C++ standard
+ --  entities in the std namespace.
+ 
+ with GNAT.CPP.Std.Type_Info;
+ with Ada.Unchecked_Conversion;
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+ 
+ package body GNAT.CPP.Std is
+    ----------------------
+    -- To_Type_Info_Ptr --
+    ----------------------
+ 
+    function To_Type_Info_Ptr (S : System.Address) return Type_Info_Ptr is
+       function Impl is
+          new Ada.Unchecked_Conversion (System.Address, Type_Info_Ptr);
+    begin
+       return Impl (S);
+    end To_Type_Info_Ptr;
+ 
+    ------------
+    --  Name  --
+    ------------
+ 
+    function Name (this : Type_Info_Ptr)
+                   return String
+    is (Value (this.all.Name));
+ 
+    ---------------
+    --  Before  ---
+    ---------------
+ 
+    function Before (this, that : Type_Info_Ptr)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean
+    is (this.all.Before (that));
+ 
+    ---------------
+    --  Equals  ---
+    ---------------
+ 
+    function Equals (this, that : Type_Info_Ptr)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean
+    is (this.all.Equals (that));
+ 
+    --------------------
+    --  Is_Pointer_P  --
+    --------------------
+ 
+    function Is_Pointer_P (this : Type_Info_Ptr)
+                           return Interfaces.C.Extensions.bool
+    is (this.all.Is_Pointer_P);
+ 
+    ---------------------
+    --  Is_Function_P  --
+    ---------------------
+ 
+    function Is_Function_P (this : Type_Info_Ptr)
+                            return Interfaces.C.Extensions.bool
+    is (this.all.Is_Function_P);
+ 
+    ----------------
+    --  Do_Catch ---
+    ----------------
+ 
+    function Do_Catch
+      (this          : Type_Info_Ptr;
+       thrown_type   : Type_Info_Ptr;
+       thrown_object : in out System.Address;
+       outer_count   : Interfaces.C.unsigned)
+       return          Interfaces.C.Extensions.bool
+    is (this.all.Do_Catch (thrown_type, thrown_object, outer_count));
+ 
+    -----------------
+    --  Do_Upcast ---
+    -----------------
+ 
+    function Do_Upcast
+      (this    : Type_Info_Ptr;
+       target  : Type_Info_Ptr;
+       obj_ptr : in out System.Address)
+       return    Interfaces.C.Extensions.bool
+    is (this.all.Do_Upcast (target, obj_ptr));
+ 
+ end GNAT.CPP.Std;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cppstd.ads gcc-15.1.0/gcc/ada/libgnat/g-cppstd.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cppstd.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-cppstd.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,97 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                         G N A T . C P P . S T D                          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package may provide an Ada interface for some C++ standard
+ --  entities in the std namespace.
+ 
+ limited private with GNAT.CPP.Std.Type_Info;
+ with System; use System;
+ with Interfaces.C; use Interfaces.C;
+ with Interfaces.C.Extensions; use Interfaces.C.Extensions;
+ 
+ package GNAT.CPP.Std is
+    type Type_Info_Ptr is private;
+    --  This type stands for C++ std::type_info *.
+ 
+    No_Type_Info : constant Type_Info_Ptr;
+ 
+    function To_Type_Info_Ptr (S : System.Address) return Type_Info_Ptr;
+    --  Return an opaque Type_Info_Ptr referencing the std::type_info
+    --  object presumed to be at S.
+ 
+    function Name (this : Type_Info_Ptr)
+                   --  return Interfaces.C.Strings.chars_ptr;
+                   return String;
+    --  Exposed std::type_info member function.  ??? Would it ever be
+    --  desirable to get direct access to the internal chars_ptr?
+ 
+    function Before (this, that : Type_Info_Ptr)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean;
+    --  Exposed std::type_info member function.
+ 
+    function Equals (this, that : Type_Info_Ptr)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean;
+    --  Exposed std::type_info member function.
+ 
+    function Is_Pointer_P (this : Type_Info_Ptr)
+                           return Interfaces.C.Extensions.bool;
+    --  Exposed std::type_info member function.
+ 
+    function Is_Function_P (this : Type_Info_Ptr)
+                            return Interfaces.C.Extensions.bool;
+    --  Exposed std::type_info member function.
+ 
+    function Do_Catch
+      (this          : Type_Info_Ptr;
+       thrown_type   : Type_Info_Ptr;
+       thrown_object : in out System.Address;
+       outer_count   : Interfaces.C.unsigned)
+       return          Interfaces.C.Extensions.bool;
+    --  Exposed std::type_info member function.
+ 
+    function Do_Upcast
+      (this    : Type_Info_Ptr;
+       target  : Type_Info_Ptr;
+       obj_ptr : in out System.Address)
+       return    Interfaces.C.Extensions.bool;
+    --  Exposed std::type_info member function.
+ 
+ private
+ 
+    type Type_Info_Ptr is access constant Type_Info.type_info'Class;
+    pragma No_Strict_Aliasing (Type_Info_Ptr);
+    pragma No_Heap_Finalization (Type_Info_Ptr);
+ 
+    No_Type_Info : constant Type_Info_Ptr := null;
+ 
+ end GNAT.CPP.Std;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-crc32.adb gcc-15.1.0/gcc/ada/libgnat/g-crc32.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-crc32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-crc32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-crc32.ads gcc-15.1.0/gcc/ada/libgnat/g-crc32.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-crc32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-crc32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2004-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2004-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-csclex.ads gcc-15.1.0/gcc/ada/libgnat/g-csclex.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-csclex.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-csclex.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,98 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --         G N A T . C P P . S T D . C L A S S _ E X C E P T I O N          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package provides an interface to C++'s std::exception objects
+ 
+ with Interfaces.C;
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+ --  with GNAT.CPP_Exceptions; use GNAT.CPP_Exceptions;
+ 
+ --  ??? Should we expose, or even keep this unit?  We can't run
+ --  constructors (they're inline), and destructors have to be declared
+ --  before the public methods because of their position in the virtual
+ --  method table, so they have to be public as well. It could be
+ --  unsafe to run them without running the constructors we can't get
+ --  at, so deriving from this type would be a challenge, though it
+ --  could be potentially useful for obscure cross-language exception
+ --  handling scenarios. Adding this unit to libgnat would require
+ --  libgnat.so to depend on libsupc++, if the exception declarations
+ --  were uncommented out.
+ private package GNAT.CPP.Std.Class_Exception is
+    type Class_Exception is abstract tagged limited record
+       null;
+    end record;
+    pragma Import (CPP, Class_Exception);
+ 
+    --  Defined inline, no out-of-line version available.
+    --  function New_Class_Exception return Class_Exception;
+    --  pragma Cpp_Constructor (New_Class_Exception);
+    --  pragma Machine_Attribute (New_Class_Exception, "nothrow");
+    pragma Warnings (Off, "CPP constructor required for type");
+ 
+    --  Allowing destruction is undesirable, but since these are in
+    --  the virtual method table, we have to declare them.
+    --  ??? Could we make them private somehow?
+    procedure Destructor (Ex : access Class_Exception);
+    pragma Import (CPP, Destructor, "_ZNSt9exceptionD1Ev");
+    pragma Machine_Attribute (Destructor, "nothrow");
+    procedure Delete_Destructor (Ex : access Class_Exception);
+    pragma Import (CPP, Delete_Destructor, "_ZNSt9exceptionD0Ev");
+    pragma Machine_Attribute (Delete_Destructor, "nothrow");
+ 
+    function What (Ex : access constant Class_Exception) return chars_ptr;
+    pragma Import (CPP, What, "_ZNKSt9exception4whatEv");
+    pragma Machine_Attribute (What, "nothrow");
+    --  Obtain the C string stored in the std::exception object.
+ 
+    function What (Ex : access constant Class_Exception'Class) return String is
+       (Value (What (Ex)));
+    --  Obtain the C string stored in the std::exception object,
+    --  converted to an Ada String.
+ 
+    --  function Get_Class_Exception_From_Occurrence is
+    --     new Get_Access_To_Tagged_Object (Class_Exception);
+    --  Obtain access to Class_Exception'Class of an
+    --  Exception_Occurrence handled as Class_Exception_Only or
+    --  Class_Exception_Or_Derived, as defined in comments below.
+    --  Adding this to libgnat would cause libgnat.so to depend on
+    --  libsupc++.
+ 
+    --  Class_Exception_Only : exception;
+    --  pragma Import (Cpp, Class_Exception_Only,
+    --                 "_ZTISt9exception");
+    --  Exception to catch std::exception exact matches only.
+ 
+    --  Class_Exception_Or_Derived : exception;
+    --  pragma Import (Cpp, Class_Exception_Or_Derived,
+    --                 "_ZTISt9exception'Class");
+    --  Exception to catch std::exception or derived types.
+ 
+ end GNAT.CPP.Std.Class_Exception;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cstyin.adb gcc-15.1.0/gcc/ada/libgnat/g-cstyin.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-cstyin.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-cstyin.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,160 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --               G N A T . C P P . S T D . T Y P E _ I N F O                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with System; use System;
+ with System.Storage_Elements; use System.Storage_Elements;
+ with Interfaces.C; use Interfaces.C;
+ with Interfaces.C.Extensions; use Interfaces.C.Extensions;
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+ with Ada.Unchecked_Conversion;
+ 
+ package body GNAT.CPP.Std.Type_Info is
+ 
+    function strcmp (L, R : chars_ptr) return Interfaces.C.int;
+    pragma Import (Intrinsic, strcmp, "__builtin_strcmp");
+ 
+    function Name_Starts_With_Asterisk (this : access constant type_info'Class)
+                                        return Boolean;
+ 
+    function Name_Past_Asterisk (this : access constant type_info'Class)
+                                 return chars_ptr;
+ 
+    function To_Address is
+       new Ada.Unchecked_Conversion (chars_ptr, System.Address);
+    function To_Pointer is
+       new Ada.Unchecked_Conversion (System.Address, chars_ptr);
+ 
+    function Name_Starts_With_Asterisk (this : access constant type_info'Class)
+                                        return Boolean is
+       Addr : constant System.Address := To_Address (this.Raw_Name);
+       C : aliased char;
+       for C'Address use Addr;
+    begin
+       return C = '*';
+    end Name_Starts_With_Asterisk;
+ 
+    function Name_Past_Asterisk (this : access constant type_info'Class)
+                                 return chars_ptr is
+       Addr : System.Address := To_Address (this.Raw_Name);
+    begin
+       if this.Name_Starts_With_Asterisk then
+          Addr := Addr + Storage_Offset (1);
+       end if;
+ 
+       return To_Pointer (Addr);
+    end Name_Past_Asterisk;
+ 
+    ------------
+    --  Name  --
+    ------------
+ 
+    function Name (this : access constant type_info'Class)
+                   return chars_ptr
+    is (this.Name_Past_Asterisk);
+ 
+    --------------
+    --  Before  --
+    --------------
+ 
+    function Before (this, that : access constant type_info'Class)
+                     return       Boolean is
+    begin
+       if not this.Name_Starts_With_Asterisk
+         or else not that.Name_Starts_With_Asterisk
+       then
+          return strcmp (this.Raw_Name, that.Raw_Name) < 0;
+       end if;
+ 
+       return To_Address (this.Raw_Name) < To_Address (that.Raw_Name);
+    end Before;
+ 
+    --------------
+    --  Equals  --
+    --------------
+ 
+    function Equals (this, that : access constant type_info'Class)
+                     return       Boolean is
+    begin
+       if this = that then
+          return True;
+       end if;
+ 
+       if this.Name_Starts_With_Asterisk then
+          return False;
+       end if;
+ 
+       return strcmp (this.Raw_Name, that.Raw_Name) = 0;
+    end Equals;
+ 
+    function Convert_Caught_Object (Choice, Except : access type_info'Class;
+                                    Thrown         : in out Address;
+                                    Lang           : Character)
+                                    return           Interfaces.C.C_bool;
+    pragma Export (Cpp, Convert_Caught_Object, "__gnat_convert_caught_object");
+    --  Convert the exception object at Thrown, under Lang convention,
+    --  from type Except to type Choice, adjusting Thrown as needed and
+    --  returning True, or returning False in case the conversion
+    --  fails.  This is called from raise-gcc, and it is placed here
+    --  rather than in GNAT.CPP_Exceptions to avoid dragging all that
+    --  in when the program doesn't use C++ exceptions.
+ 
+    ---------------------------
+    -- Convert_Caught_Object --
+    ---------------------------
+ 
+    function Convert_Caught_Object (Choice, Except : access type_info'Class;
+                                    Thrown         : in out Address;
+                                    Lang           : Character)
+                                    return           Interfaces.C.C_bool is
+    begin
+       if Choice.Equals (Except) then
+          return C_bool'(True);
+       end if;
+ 
+       if Lang = 'B' then
+          if Except.Is_Pointer_P then
+             declare
+                Thrown_Indirect : Address;
+                for Thrown_Indirect'Address use Thrown;
+             begin
+                Thrown := Thrown_Indirect;
+             end;
+          end if;
+ 
+          if Choice.Do_Catch (Except, Thrown, 1) then
+             return C_bool'(True);
+          end if;
+       end if;
+ 
+       return C_bool'(False);
+    end Convert_Caught_Object;
+ 
+ end GNAT.CPP.Std.Type_Info;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-cstyin.ads gcc-15.1.0/gcc/ada/libgnat/g-cstyin.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-cstyin.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/g-cstyin.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,141 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --               G N A T . C P P . S T D . T Y P E _ I N F O                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --                     Copyright (C) 2022-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package provides an interface to C++'s std::type_info objects
+ 
+ with System;
+ with Interfaces.C;
+ with Interfaces.C.Extensions;
+ with Interfaces.C.Strings;
+ 
+ --  This unit should be kept private.  We can't run constructors
+ --  (they're inline), and destructors have to be declared before the
+ --  public methods because of their position in the virtual method
+ --  table, so they have to be public as well.  It would be unsafe to
+ --  run them, since std::type_info objects are typically
+ --  statically-allocated.  Without out-of-line constructors, deriving
+ --  from this type would be a challenge.  However, there are some
+ --  select APIs that we wish to use for exception handling machinery,
+ --  and others that could be potentially useful in Ada/C++ programs,
+ --  that are exposed in GNAT.CPP.Std.
+ private package GNAT.CPP.Std.Type_Info is
+    type type_info is abstract tagged limited private;
+    pragma Import (CPP, type_info);
+ 
+    pragma Warnings (Off, "CPP constructor required for type");
+ 
+    --  Defined inline, no out-of-line version available.
+    --  function Constructor (name : Interfaces.C.Strings.chars_ptr)
+    --                       return type_info is abstract;
+    --  pragma Cpp_Constructor (Constructor, "_ZNSt9type_infoC1EPKc");
+ 
+    --  Allowing destruction is undesirable, but since these are in
+    --  the virtual method table, we have to declare them.
+    --  ??? Could we make them private somehow?
+    procedure Destructor (this : access type_info);
+    pragma Import (CPP, Destructor, "_ZNSt9type_infoD1Ev");
+    pragma Machine_Attribute (Destructor, "nothrow");
+    procedure Delete_Destructor (This : access type_info);
+    pragma Import (CPP, Delete_Destructor, "_ZNSt9type_InfoD0Ev");
+    pragma Machine_Attribute (Delete_Destructor, "nothrow");
+ 
+    --  Defined inline, no out-of-line version available.
+    --  Reimplemented in Ada, using Ada types.
+    function Name (this : access constant type_info'Class)
+                   --  return Interfaces.C.Strings.chars_ptr;
+                   return Interfaces.C.Strings.chars_ptr;
+    --  pragma Import (CPP, Name, "_ZNKSt9type_info4nameEv");
+    pragma Machine_Attribute (Name, "nothrow");
+ 
+    --  Defined inline, no out-of-line version available.
+    --  Reimplemented in Ada, using Ada types.
+    function Before (this, that : access constant type_info'Class)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean;
+    --  pragma Import (CPP, Before, "_ZNKSt9type_info6beforeERKS_");
+    pragma Machine_Attribute (Before, "nothrow");
+ 
+    --  Defined inline, no out-of-line version available.
+    --  Reimplemented in Ada, with an Ada interface.
+    function Equals (this, that : access constant type_info'Class)
+                     --  return Interfaces.C.Extensions.bool;
+                     return       Boolean;
+    --  pragma Import (CPP, Equals, "_ZNKSt9type_infoeqERKS_");
+    pragma Machine_Attribute (Equals, "nothrow");
+ 
+    --  function "/=" (this : access constant type_info'Class;
+    --                  arg : access constant type_info'Class)
+    --                 return Interfaces.C.Extensions.bool;
+    --  pragma Import (CPP, "/=", "_ZNKSt9type_infoneERKS_");
+    --  pragma Machine_Attribute ("/=", "nothrow");
+ 
+    --  Defined inline, no out-of-line version available.
+    --  function Hash_Code (this : access constant type_info'Class)
+    --                     return Interfaces.C.size_t;
+    --  pragma Import (CPP, Hash_Code, "_ZNKSt9type_info9hash_codeEv");
+    --  pragma Machine_Attribute (Hash_Code, "nothrow");
+ 
+    function Is_Pointer_P (this : access constant type_info)
+                           return Interfaces.C.Extensions.bool;
+    pragma Import (CPP, Is_Pointer_P,
+                   "_ZNKSt9type_info14__is_pointer_pEv");
+ 
+    function Is_Function_P (this : access constant type_info)
+                            return Interfaces.C.Extensions.bool;
+    pragma Import (CPP, Is_Function_P,
+                   "_ZNKSt9type_info15__is_function_pEv");
+ 
+    function Do_Catch
+      (this          : access constant type_info;
+       thrown_type   : access constant type_info'Class;
+       thrown_object : in out System.Address;
+       outer_count   : Interfaces.C.unsigned)
+       return          Interfaces.C.Extensions.bool;
+    pragma Import (CPP, Do_Catch,
+                   "_ZNKSt9type_info10__do_catchEPKS_PPvj");
+ 
+    function Do_Upcast
+      (this    : access constant type_info;
+       target  : access constant type_info'Class;
+       obj_ptr : in out System.Address)
+       return    Interfaces.C.Extensions.bool;
+    pragma Import
+      (CPP, Do_Upcast,
+       "_ZNKSt9type_info11__do_upcastEPKN10"
+         & "__cxxabiv117__class_type_infoEPPv");
+ 
+ private
+ 
+    type type_info is abstract tagged limited record
+       Raw_Name : Interfaces.C.Strings.chars_ptr;
+    end record;
+ 
+ end GNAT.CPP.Std.Type_Info;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-ctrl_c.adb gcc-15.1.0/gcc/ada/libgnat/g-ctrl_c.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-ctrl_c.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-ctrl_c.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-ctrl_c.ads gcc-15.1.0/gcc/ada/libgnat/g-ctrl_c.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-ctrl_c.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-ctrl_c.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-curexc.ads gcc-15.1.0/gcc/ada/libgnat/g-curexc.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-curexc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-curexc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 1996-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 1996-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-debpoo.adb gcc-15.1.0/gcc/ada/libgnat/g-debpoo.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-debpoo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-debpoo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-debpoo.ads gcc-15.1.0/gcc/ada/libgnat/g-debpoo.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-debpoo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-debpoo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-debuti.adb gcc-15.1.0/gcc/ada/libgnat/g-debuti.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-debuti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-debuti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-debuti.ads gcc-15.1.0/gcc/ada/libgnat/g-debuti.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-debuti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-debuti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Debug_Utilities is
*** 57,63 ****
     function Image (S : String) return String;
     --  Returns a string image of S, obtained by prepending and appending
     --  quote (") characters and doubling any quote characters in the string.
!    --  The maximum length of the result is thus 2 ** S'Length + 2.
  
     function Image (A : System.Address) return Image_String;
     --  Returns a string of the form 16#hhhh_hhhh# for 32-bit addresses
--- 57,63 ----
     function Image (S : String) return String;
     --  Returns a string image of S, obtained by prepending and appending
     --  quote (") characters and doubling any quote characters in the string.
!    --  The maximum length of the result is thus 2 * S'Length + 2.
  
     function Image (A : System.Address) return Image_String;
     --  Returns a string of the form 16#hhhh_hhhh# for 32-bit addresses
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-decstr.adb gcc-15.1.0/gcc/ada/libgnat/g-decstr.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-decstr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-decstr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-decstr.ads gcc-15.1.0/gcc/ada/libgnat/g-decstr.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-decstr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-decstr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-deutst.ads gcc-15.1.0/gcc/ada/libgnat/g-deutst.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-deutst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-deutst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-diopit.adb gcc-15.1.0/gcc/ada/libgnat/g-diopit.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-diopit.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-diopit.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-diopit.ads gcc-15.1.0/gcc/ada/libgnat/g-diopit.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-diopit.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-diopit.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dirope.adb gcc-15.1.0/gcc/ada/libgnat/g-dirope.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-dirope.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dirope.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Characters.Handling;
*** 34,40 ****
  with Ada.Strings.Fixed;
  
  with Ada.Unchecked_Deallocation;
- with Ada.Unchecked_Conversion;
  
  with System;      use System;
  with System.CRTL; use System.CRTL;
--- 34,39 ----
*************** package body GNAT.Directory_Operations i
*** 676,701 ****
           return;
        end if;
  
-       Last :=
-         (if Str'Length > Filename_Len then Str'First + Filename_Len - 1
-          else Str'Last);
- 
        declare
!          subtype Path_String is String (1 .. Filename_Len);
!          type    Path_String_Access is access Path_String;
! 
!          function Address_To_Access is new
!            Ada.Unchecked_Conversion
!              (Source => Address,
!               Target => Path_String_Access);
! 
!          Path_Access : constant Path_String_Access :=
!                          Address_To_Access (Filename_Addr);
! 
        begin
!          for J in Str'First .. Last loop
!             Str (J) := Path_Access (J - Str'First + 1);
!          end loop;
        end;
     end Read;
  
--- 675,691 ----
           return;
        end if;
  
        declare
!          Filename : constant String (1 .. Filename_Len)
!            with Import, Address => Filename_Addr;
        begin
!          if Str'Length > Filename_Len then
!             Last := Str'First + Filename_Len - 1;
!             Str (Str'First .. Last) := Filename;
!          else
!             Last := Str'Last;
!             Str := Filename (1 .. Str'Length);
!          end if;
        end;
     end Read;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dirope.ads gcc-15.1.0/gcc/ada/libgnat/g-dirope.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-dirope.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dirope.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dynhta.adb gcc-15.1.0/gcc/ada/libgnat/g-dynhta.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-dynhta.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dynhta.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dynhta.ads gcc-15.1.0/gcc/ada/libgnat/g-dynhta.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-dynhta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dynhta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dyntab.adb gcc-15.1.0/gcc/ada/libgnat/g-dyntab.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-dyntab.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dyntab.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-dyntab.ads gcc-15.1.0/gcc/ada/libgnat/g-dyntab.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-dyntab.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-dyntab.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-eacodu.adb gcc-15.1.0/gcc/ada/libgnat/g-eacodu.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-eacodu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-eacodu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-encstr.adb gcc-15.1.0/gcc/ada/libgnat/g-encstr.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-encstr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-encstr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2007-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2007-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-encstr.ads gcc-15.1.0/gcc/ada/libgnat/g-encstr.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-encstr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-encstr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-enutst.ads gcc-15.1.0/gcc/ada/libgnat/g-enutst.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-enutst.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-enutst.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-excact.adb gcc-15.1.0/gcc/ada/libgnat/g-excact.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-excact.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-excact.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System;
*** 34,39 ****
--- 34,40 ----
  with System.Soft_Links;       use System.Soft_Links;
  with System.Standard_Library; use System.Standard_Library;
  with System.Exception_Table;  use System.Exception_Table;
+ with Interfaces.C;            use Interfaces.C;
  
  package body GNAT.Exception_Actions is
  
*************** package body GNAT.Exception_Actions is
*** 108,124 ****
  
     procedure Core_Dump (Occurrence : Exception_Occurrence) is separate;
  
     --------------------------
     -- Is_Foreign_Exception --
     --------------------------
  
     function Is_Foreign_Exception (E : Exception_Occurrence) return Boolean is
-       Foreign_Exception : aliased Exception_Data;
-       pragma Import
-         (Ada, Foreign_Exception, "system__exceptions__foreign_exception");
     begin
!       return (To_Data (Exception_Identity (E))
!                 = Foreign_Exception'Unchecked_Access);
     end Is_Foreign_Exception;
  
     ----------------
--- 109,186 ----
  
     procedure Core_Dump (Occurrence : Exception_Occurrence) is separate;
  
+    ------------------------
+    -- Exception_Language --
+    ------------------------
+ 
+    function Exception_Language
+      (E : Exception_Occurrence)
+      return Exception_Languages is
+ 
+       Foreign_Exception : aliased Exception_Data;
+       pragma Import
+         (Ada, Foreign_Exception, "system__exceptions__foreign_exception");
+ 
+       function To_Exception_Data_Ptr is new
+         Ada.Unchecked_Conversion (Exception_Id, Exception_Data_Ptr);
+ 
+       IdD : constant Exception_Data_Ptr
+         := To_Exception_Data_Ptr (Exception_Identity (E));
+       Lang : constant Character := IdD.Lang;
+ 
+    begin
+       if Lang in 'B' .. 'C' then
+          return EL_Cpp;
+       end if;
+ 
+       if Lang /= 'A' then
+          return EL_Unknown;
+       end if;
+ 
+       if IdD /= Foreign_Exception'Unchecked_Access then
+          return EL_Ada;
+       end if;
+ 
+       declare
+          function Get_Exception_Machine_Occurrence
+            (E : Exception_Occurrence) return System.Address;
+          pragma Import (Ada, Get_Exception_Machine_Occurrence,
+                         "__gnat_get_exception_machine_occurrence");
+ 
+          function Exception_Language_Is_CPlusPlus
+            (E : System.Address)
+            return C_bool;
+          pragma Import (C, Exception_Language_Is_CPlusPlus,
+                         "__gnat_exception_language_is_cplusplus");
+ 
+          function Exception_Language_Is_Ada
+            (E : System.Address)
+            return C_bool;
+          pragma Import (C, Exception_Language_Is_Ada,
+                      "__gnat_exception_language_is_ada");
+ 
+          Occurrence : constant System.Address
+            := Get_Exception_Machine_Occurrence (E);
+       begin
+          if Exception_Language_Is_CPlusPlus (Occurrence) then
+             return EL_Cpp;
+          elsif Exception_Language_Is_Ada (Occurrence) then
+             --  This might some day indicate third-party Ada exceptions.
+             --  With GNAT exceptions, we should not reach this point.
+             return EL_Ada;
+          end if;
+       end;
+ 
+       return EL_Unknown;
+    end Exception_Language;
+ 
     --------------------------
     -- Is_Foreign_Exception --
     --------------------------
  
     function Is_Foreign_Exception (E : Exception_Occurrence) return Boolean is
     begin
!       return Exception_Language (E) /= EL_Ada;
     end Is_Foreign_Exception;
  
     ----------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-excact.ads gcc-15.1.0/gcc/ada/libgnat/g-excact.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-excact.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-excact.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Exception_Actions is
*** 91,96 ****
--- 91,103 ----
     --  Note: All non-predefined exceptions will return Null_Id for programs
     --  compiled with pragma Restrictions (No_Exception_Registration).
  
+    type Exception_Languages is (EL_Unknown, EL_Ada, EL_Cpp);
+    --  Return type for Exception_Language.
+ 
+    function Exception_Language
+      (E : Exception_Occurrence) return Exception_Languages;
+    --  Return the language from which the exception originates.
+ 
     function Is_Foreign_Exception (E : Exception_Occurrence) return Boolean;
     --  Tell whether the exception occurrence E represents a foreign exception,
     --  such as one raised in C++ and caught by a when others choice in Ada.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-except.ads gcc-15.1.0/gcc/ada/libgnat/g-except.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-except.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-except.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-exctra.adb gcc-15.1.0/gcc/ada/libgnat/g-exctra.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-exctra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-exctra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-exctra.ads gcc-15.1.0/gcc/ada/libgnat/g-exctra.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-exctra.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-exctra.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-expect.adb gcc-15.1.0/gcc/ada/libgnat/g-expect.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-expect.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-expect.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-expect.ads gcc-15.1.0/gcc/ada/libgnat/g-expect.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-expect.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-expect.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-exptty.adb gcc-15.1.0/gcc/ada/libgnat/g-exptty.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-exptty.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-exptty.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-exptty.ads gcc-15.1.0/gcc/ada/libgnat/g-exptty.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-exptty.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-exptty.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-flocon.ads gcc-15.1.0/gcc/ada/libgnat/g-flocon.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-flocon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-flocon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-forstr.adb gcc-15.1.0/gcc/ada/libgnat/g-forstr.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-forstr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-forstr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-forstr.ads gcc-15.1.0/gcc/ada/libgnat/g-forstr.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-forstr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-forstr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-gfmafu.ads gcc-15.1.0/gcc/ada/libgnat/g-gfmafu.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-gfmafu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-gfmafu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-graphs.adb gcc-15.1.0/gcc/ada/libgnat/g-graphs.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-graphs.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-graphs.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-graphs.ads gcc-15.1.0/gcc/ada/libgnat/g-graphs.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-graphs.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-graphs.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-heasor.adb gcc-15.1.0/gcc/ada/libgnat/g-heasor.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-heasor.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-heasor.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-heasor.ads gcc-15.1.0/gcc/ada/libgnat/g-heasor.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-heasor.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-heasor.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-hesora.adb gcc-15.1.0/gcc/ada/libgnat/g-hesora.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-hesora.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-hesora.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-hesora.ads gcc-15.1.0/gcc/ada/libgnat/g-hesora.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-hesora.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-hesora.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-hesorg.adb gcc-15.1.0/gcc/ada/libgnat/g-hesorg.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-hesorg.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-hesorg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-hesorg.ads gcc-15.1.0/gcc/ada/libgnat/g-hesorg.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-hesorg.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-hesorg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-htable.adb gcc-15.1.0/gcc/ada/libgnat/g-htable.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-htable.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-htable.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-htable.ads gcc-15.1.0/gcc/ada/libgnat/g-htable.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-htable.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-htable.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-io.adb gcc-15.1.0/gcc/ada/libgnat/g-io.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-io.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-io.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-io.ads gcc-15.1.0/gcc/ada/libgnat/g-io.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-io.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-io.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-io_aux.adb gcc-15.1.0/gcc/ada/libgnat/g-io_aux.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-io_aux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-io_aux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-io_aux.ads gcc-15.1.0/gcc/ada/libgnat/g-io_aux.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-io_aux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-io_aux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-lists.adb gcc-15.1.0/gcc/ada/libgnat/g-lists.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-lists.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-lists.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Lists is
*** 332,338 ****
  
           --  The list has at least one outstanding iterator
  
!          if L.Iterators > 0 then
              raise Iterated;
           end if;
        end Ensure_Unlocked;
--- 332,338 ----
  
           --  The list has at least one outstanding iterator
  
!          if Check_Tampering and then L.Iterators > 0 then
              raise Iterated;
           end if;
        end Ensure_Unlocked;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-lists.ads gcc-15.1.0/gcc/ada/libgnat/g-lists.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-lists.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-lists.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Lists is
*** 64,69 ****
--- 64,71 ----
        with procedure Destroy_Element (Elem : in out Element_Type);
        --  Element destructor
  
+       Check_Tampering : Boolean := True;
+ 
     package Doubly_Linked_Lists is
  
        ---------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-locfil.adb gcc-15.1.0/gcc/ada/libgnat/g-locfil.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-locfil.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-locfil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-locfil.ads gcc-15.1.0/gcc/ada/libgnat/g-locfil.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-locfil.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-locfil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-mbdira.adb gcc-15.1.0/gcc/ada/libgnat/g-mbdira.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-mbdira.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-mbdira.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-mbdira.ads gcc-15.1.0/gcc/ada/libgnat/g-mbdira.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-mbdira.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-mbdira.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-mbflra.adb gcc-15.1.0/gcc/ada/libgnat/g-mbflra.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-mbflra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-mbflra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-mbflra.ads gcc-15.1.0/gcc/ada/libgnat/g-mbflra.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-mbflra.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-mbflra.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-md5.adb gcc-15.1.0/gcc/ada/libgnat/g-md5.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-md5.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-md5.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-md5.ads gcc-15.1.0/gcc/ada/libgnat/g-md5.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-md5.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-md5.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-memdum.adb gcc-15.1.0/gcc/ada/libgnat/g-memdum.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-memdum.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-memdum.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-memdum.ads gcc-15.1.0/gcc/ada/libgnat/g-memdum.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-memdum.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-memdum.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-moreex.adb gcc-15.1.0/gcc/ada/libgnat/g-moreex.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-moreex.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-moreex.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-moreex.ads gcc-15.1.0/gcc/ada/libgnat/g-moreex.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-moreex.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-moreex.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-os_lib.adb gcc-15.1.0/gcc/ada/libgnat/g-os_lib.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-os_lib.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-os_lib.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-os_lib.ads gcc-15.1.0/gcc/ada/libgnat/g-os_lib.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-os_lib.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-os_lib.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-pehage.adb gcc-15.1.0/gcc/ada/libgnat/g-pehage.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-pehage.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-pehage.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-pehage.ads gcc-15.1.0/gcc/ada/libgnat/g-pehage.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-pehage.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-pehage.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-rannum.adb gcc-15.1.0/gcc/ada/libgnat/g-rannum.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-rannum.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-rannum.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-rannum.ads gcc-15.1.0/gcc/ada/libgnat/g-rannum.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-rannum.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-rannum.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regexp.adb gcc-15.1.0/gcc/ada/libgnat/g-regexp.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-regexp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regexp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regexp.ads gcc-15.1.0/gcc/ada/libgnat/g-regexp.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-regexp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regexp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regist.adb gcc-15.1.0/gcc/ada/libgnat/g-regist.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-regist.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regist.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2001-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2001-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regist.ads gcc-15.1.0/gcc/ada/libgnat/g-regist.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-regist.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regist.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regpat.adb gcc-15.1.0/gcc/ada/libgnat/g-regpat.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-regpat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regpat.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-regpat.ads gcc-15.1.0/gcc/ada/libgnat/g-regpat.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-regpat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-regpat.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-rewdat.adb gcc-15.1.0/gcc/ada/libgnat/g-rewdat.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-rewdat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-rewdat.adb	Fri Apr 25 08:18:00 2025
***************
*** 5,11 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 5,11 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-rewdat.ads gcc-15.1.0/gcc/ada/libgnat/g-rewdat.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-rewdat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-rewdat.ads	Fri Apr 25 08:18:00 2025
***************
*** 5,11 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 5,11 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sechas.adb gcc-15.1.0/gcc/ada/libgnat/g-sechas.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sechas.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sechas.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sechas.ads gcc-15.1.0/gcc/ada/libgnat/g-sechas.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sechas.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sechas.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sehamd.adb gcc-15.1.0/gcc/ada/libgnat/g-sehamd.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sehamd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sehamd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sehamd.ads gcc-15.1.0/gcc/ada/libgnat/g-sehamd.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sehamd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sehamd.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sehash.adb gcc-15.1.0/gcc/ada/libgnat/g-sehash.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sehash.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sehash.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sehash.ads gcc-15.1.0/gcc/ada/libgnat/g-sehash.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sehash.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sehash.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sercom.adb gcc-15.1.0/gcc/ada/libgnat/g-sercom.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sercom.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sercom.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sercom.ads gcc-15.1.0/gcc/ada/libgnat/g-sercom.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sercom.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sercom.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sercom__linux.adb gcc-15.1.0/gcc/ada/libgnat/g-sercom__linux.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sercom__linux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sercom__linux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sercom__mingw.adb gcc-15.1.0/gcc/ada/libgnat/g-sercom__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sercom__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sercom__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sestin.ads gcc-15.1.0/gcc/ada/libgnat/g-sestin.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sestin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sestin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2004-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2004-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides facilities for obtaining information on secondary
! --  stack usage. See System.Secondary_Stack for documentation.
  
  with System.Secondary_Stack;
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides a public interface to the internal package
! --  ``System.Secondary_Stack``. It allows users to query the current high water
! --  mark of the secondary stack, the stack used to return unconstrained types.
  
  with System.Secondary_Stack;
  
*************** package GNAT.Secondary_Stack_Info is
*** 38,42 ****
--- 39,45 ----
  
     function SS_Get_Max return Long_Long_Integer
       renames System.Secondary_Stack.SS_Get_Max;
+    --  Return the high water mark of the secondary stack for the current
+    --  secondary stack in bytes.
  
  end GNAT.Secondary_Stack_Info;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sets.adb gcc-15.1.0/gcc/ada/libgnat/g-sets.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sets.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sets.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sets.ads gcc-15.1.0/gcc/ada/libgnat/g-sets.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sets.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sets.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2025, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha1.adb gcc-15.1.0/gcc/ada/libgnat/g-sha1.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sha1.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha1.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha1.ads gcc-15.1.0/gcc/ada/libgnat/g-sha1.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sha1.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha1.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha224.ads gcc-15.1.0/gcc/ada/libgnat/g-sha224.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sha224.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha224.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha256.ads gcc-15.1.0/gcc/ada/libgnat/g-sha256.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sha256.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha256.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2025, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha384.ads gcc-15.1.0/gcc/ada/libgnat/g-sha384.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sha384.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha384.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2025, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sha512.ads gcc-15.1.0/gcc/ada/libgnat/g-sha512.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sha512.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sha512.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2025, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shsh32.adb gcc-15.1.0/gcc/ada/libgnat/g-shsh32.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-shsh32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shsh32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shsh32.ads gcc-15.1.0/gcc/ada/libgnat/g-shsh32.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-shsh32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shsh32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shsh64.adb gcc-15.1.0/gcc/ada/libgnat/g-shsh64.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-shsh64.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shsh64.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shsh64.ads gcc-15.1.0/gcc/ada/libgnat/g-shsh64.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-shsh64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shsh64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shshco.adb gcc-15.1.0/gcc/ada/libgnat/g-shshco.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-shshco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shshco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-shshco.ads gcc-15.1.0/gcc/ada/libgnat/g-shshco.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-shshco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-shshco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soccon.ads gcc-15.1.0/gcc/ada/libgnat/g-soccon.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soccon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soccon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socket.adb gcc-15.1.0/gcc/ada/libgnat/g-socket.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socket.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socket.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socket.ads gcc-15.1.0/gcc/ada/libgnat/g-socket.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socket.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socket.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socket__dummy.adb gcc-15.1.0/gcc/ada/libgnat/g-socket__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socket__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socket__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socket__dummy.ads gcc-15.1.0/gcc/ada/libgnat/g-socket__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socket__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socket__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socpol.adb gcc-15.1.0/gcc/ada/libgnat/g-socpol.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socpol.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socpol.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socpol.ads gcc-15.1.0/gcc/ada/libgnat/g-socpol.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socpol.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socpol.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socpol__dummy.adb gcc-15.1.0/gcc/ada/libgnat/g-socpol__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socpol__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socpol__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2025, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socpol__dummy.ads gcc-15.1.0/gcc/ada/libgnat/g-socpol__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socpol__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socpol__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2025, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi.adb gcc-15.1.0/gcc/ada/libgnat/g-socthi.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Sockets.Thin is
*** 62,74 ****
     function Syscall_Accept
       (S       : C.int;
        Addr    : System.Address;
!       Addrlen : not null access C.int) return C.int;
     pragma Import (C, Syscall_Accept, "accept");
  
     function Syscall_Connect
       (S       : C.int;
        Name    : System.Address;
!       Namelen : C.int) return C.int;
     pragma Import (C, Syscall_Connect, "connect");
  
     function Syscall_Recv
--- 62,74 ----
     function Syscall_Accept
       (S       : C.int;
        Addr    : System.Address;
!       Addrlen : not null access C.unsigned) return C.int;
     pragma Import (C, Syscall_Accept, "accept");
  
     function Syscall_Connect
       (S       : C.int;
        Name    : System.Address;
!       Namelen : C.unsigned) return C.int;
     pragma Import (C, Syscall_Connect, "connect");
  
     function Syscall_Recv
*************** package body GNAT.Sockets.Thin is
*** 84,90 ****
        Len     : C.size_t;
        Flags   : C.int;
        From    : System.Address;
!       Fromlen : not null access C.int) return System.CRTL.ssize_t;
     pragma Import (C, Syscall_Recvfrom, "recvfrom");
  
     function Syscall_Recvmsg
--- 84,90 ----
        Len     : C.size_t;
        Flags   : C.int;
        From    : System.Address;
!       Fromlen : not null access C.unsigned) return System.CRTL.ssize_t;
     pragma Import (C, Syscall_Recvfrom, "recvfrom");
  
     function Syscall_Recvmsg
*************** package body GNAT.Sockets.Thin is
*** 105,111 ****
        Len   : C.size_t;
        Flags : C.int;
        To    : System.Address;
!       Tolen : C.int) return System.CRTL.ssize_t;
     pragma Import (C, Syscall_Sendto, "sendto");
  
     function Syscall_Socket
--- 105,111 ----
        Len   : C.size_t;
        Flags : C.int;
        To    : System.Address;
!       Tolen : C.unsigned) return System.CRTL.ssize_t;
     pragma Import (C, Syscall_Sendto, "sendto");
  
     function Syscall_Socket
*************** package body GNAT.Sockets.Thin is
*** 125,130 ****
--- 125,149 ----
     function Non_Blocking_Socket (S : C.int) return Boolean;
     procedure Set_Non_Blocking_Socket (S : C.int; V : Boolean);
  
+    ------------
+    -- C_Bind --
+    ------------
+ 
+    function C_Bind
+      (S       : C.int;
+       Name    : System.Address;
+       Namelen : C.int) return C.int
+    is
+       function Bind
+         (S       : C.int;
+          Name    : System.Address;
+          Namelen : C.unsigned) return C.int
+       with Import, Convention => C, External_Name => "bind";
+ 
+    begin
+       return Bind (S, Name, C.unsigned (Namelen));
+    end C_Bind;
+ 
     --------------
     -- C_Accept --
     --------------
*************** package body GNAT.Sockets.Thin is
*** 134,148 ****
        Addr    : System.Address;
        Addrlen : not null access C.int) return C.int
     is
!       R   : C.int;
!       Val : aliased C.int := 1;
  
        Discard : C.int;
        pragma Warnings (Off, Discard);
  
     begin
        loop
!          R := Syscall_Accept (S, Addr, Addrlen);
           exit when SOSC.Thread_Blocking_IO
             or else R /= Failure
             or else Non_Blocking_Socket (S)
--- 153,170 ----
        Addr    : System.Address;
        Addrlen : not null access C.int) return C.int
     is
!       R         : C.int;
!       U_Addrlen : aliased C.unsigned;
!       Val       : aliased C.int := 1;
  
        Discard : C.int;
        pragma Warnings (Off, Discard);
  
     begin
+       U_Addrlen := C.unsigned (Addrlen.all);
+ 
        loop
!          R := Syscall_Accept (S, Addr, U_Addrlen'Unchecked_Access);
           exit when SOSC.Thread_Blocking_IO
             or else R /= Failure
             or else Non_Blocking_Socket (S)
*************** package body GNAT.Sockets.Thin is
*** 150,155 ****
--- 172,179 ----
           delay Quantum;
        end loop;
  
+       Addrlen.all := C.int (U_Addrlen);
+ 
        if not SOSC.Thread_Blocking_IO
          and then R /= Failure
        then
*************** package body GNAT.Sockets.Thin is
*** 177,183 ****
        Res : C.int;
  
     begin
!       Res := Syscall_Connect (S, Name, Namelen);
  
        if SOSC.Thread_Blocking_IO
          or else Res /= Failure
--- 201,207 ----
        Res : C.int;
  
     begin
!       Res := Syscall_Connect (S, Name, C.unsigned (Namelen));
  
        if SOSC.Thread_Blocking_IO
          or else Res /= Failure
*************** package body GNAT.Sockets.Thin is
*** 215,221 ****
           end loop;
        end;
  
!       Res := Syscall_Connect (S, Name, Namelen);
  
        if Res = Failure
          and then Errno = SOSC.EISCONN
--- 239,245 ----
           end loop;
        end;
  
!       Res := Syscall_Connect (S, Name, C.unsigned (Namelen));
  
        if Res = Failure
          and then Errno = SOSC.EISCONN
*************** package body GNAT.Sockets.Thin is
*** 226,231 ****
--- 250,334 ----
        end if;
     end C_Connect;
  
+    -------------------
+    -- C_Getpeername --
+    -------------------
+ 
+    function C_Getpeername
+      (S       : C.int;
+       Name    : System.Address;
+       Namelen : not null access C.int) return C.int
+    is
+       function Getpeername
+         (S       : C.int;
+          Name    : System.Address;
+          Namelen : not null access C.unsigned) return C.int
+       with Import, Convention => C, External_Name => "getpeername";
+ 
+       U_Namelen : aliased C.unsigned;
+       Val       : C.int;
+ 
+    begin
+       U_Namelen := C.unsigned (Namelen.all);
+       Val := Getpeername (S, Name, U_Namelen'Unchecked_Access);
+       Namelen.all := C.int (U_Namelen);
+       return Val;
+    end C_Getpeername;
+ 
+    -------------------
+    -- C_Getsockname --
+    -------------------
+ 
+    function C_Getsockname
+      (S       : C.int;
+       Name    : System.Address;
+       Namelen : not null access C.int) return C.int
+    is
+       function Getsockname
+         (S       : C.int;
+          Name    : System.Address;
+          Namelen : not null access C.unsigned) return C.int
+       with Import, Convention => C, External_Name => "getsockname";
+ 
+       U_Namelen : aliased C.unsigned;
+       Val       : C.int;
+ 
+    begin
+       U_Namelen := C.unsigned (Namelen.all);
+       Val := Getsockname (S, Name, U_Namelen'Unchecked_Access);
+       Namelen.all := C.int (U_Namelen);
+       return Val;
+    end C_Getsockname;
+ 
+    -------------------
+    --  C_Getsockopt --
+    -------------------
+ 
+    function C_Getsockopt
+      (S       : C.int;
+       Level   : C.int;
+       Optname : C.int;
+       Optval  : System.Address;
+       Optlen  : not null access C.int) return C.int
+    is
+       function Getsockopt
+         (S       : C.int;
+          Level   : C.int;
+          Optname : C.int;
+          Optval  : System.Address;
+          Optlen  : not null access C.unsigned) return C.int
+       with Import, Convention => C, External_Name => "getsockopt";
+ 
+       U_Optlen : aliased C.unsigned;
+       Val      : C.int;
+ 
+    begin
+       U_Optlen := C.unsigned (Optlen.all);
+       Val := Getsockopt (S, Level, Optname, Optval, U_Optlen'Unchecked_Access);
+       Optlen.all := C.int (U_Optlen);
+       return Val;
+    end C_Getsockopt;
+ 
     ------------------
     -- Socket_Ioctl --
     ------------------
*************** package body GNAT.Sockets.Thin is
*** 282,292 ****
        From    : System.Address;
        Fromlen : not null access C.int) return C.int
     is
!       Res : C.int;
  
     begin
        loop
!          Res := C.int (Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen));
           exit when SOSC.Thread_Blocking_IO
             or else Res /= Failure
             or else Non_Blocking_Socket (S)
--- 385,399 ----
        From    : System.Address;
        Fromlen : not null access C.int) return C.int
     is
!       Res       : C.int;
!       U_Fromlen : aliased C.unsigned;
  
     begin
+       U_Fromlen := C.unsigned (Fromlen.all);
+ 
        loop
!          Res := C.int (Syscall_Recvfrom (S, Msg, Len, Flags, From,
!                                                   U_Fromlen'Unchecked_Access));
           exit when SOSC.Thread_Blocking_IO
             or else Res /= Failure
             or else Non_Blocking_Socket (S)
*************** package body GNAT.Sockets.Thin is
*** 294,299 ****
--- 401,408 ----
           delay Quantum;
        end loop;
  
+       Fromlen.all := C.int (U_Fromlen);
+ 
        return Res;
     end C_Recvfrom;
  
*************** package body GNAT.Sockets.Thin is
*** 361,367 ****
  
     begin
        loop
!          Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To, Tolen));
           exit when SOSC.Thread_Blocking_IO
             or else Res /= Failure
             or else Non_Blocking_Socket (S)
--- 470,477 ----
  
     begin
        loop
!          Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To,
!                                                           C.unsigned (Tolen)));
           exit when SOSC.Thread_Blocking_IO
             or else Res /= Failure
             or else Non_Blocking_Socket (S)
*************** package body GNAT.Sockets.Thin is
*** 372,377 ****
--- 482,510 ----
        return Res;
     end C_Sendto;
  
+    ------------------
+    -- C_Setsockopt --
+    ------------------
+ 
+    function C_Setsockopt
+      (S       : C.int;
+       Level   : C.int;
+       Optname : C.int;
+       Optval  : System.Address;
+       Optlen  : C.int) return C.int
+    is
+       function Setsockopt
+         (S       : C.int;
+          Level   : C.int;
+          Optname : C.int;
+          Optval  : System.Address;
+          Optlen  : C.unsigned) return C.int
+       with Import, Convention => C, External_Name => "setsockopt";
+ 
+    begin
+       return Setsockopt  (S, Level, Optname, Optval, C.unsigned (Optlen));
+    end C_Setsockopt;
+ 
     --------------
     -- C_Socket --
     --------------
*************** package body GNAT.Sockets.Thin is
*** 457,462 ****
--- 590,614 ----
        Task_Lock.Unlock;
     end Set_Non_Blocking_Socket;
  
+    --------------------------------
+    -- Nonreentrant_Gethostbyaddr --
+    --------------------------------
+ 
+    function Nonreentrant_Gethostbyaddr
+      (Addr      : System.Address;
+       Addr_Len  : C.int;
+       Addr_Type : C.int) return Hostent_Access
+    is
+       function Gethostbyaddr
+         (Addr      : System.Address;
+          Addr_Len  : C.unsigned;
+          Addr_Type : C.int) return Hostent_Access
+       with Import, Convention => C, External_Name => "gethostbyaddr";
+ 
+    begin
+       return Gethostbyaddr (Addr, C.unsigned (Addr_Len), Addr_Type);
+    end Nonreentrant_Gethostbyaddr;
+ 
     --------------------
     -- Signalling_Fds --
     --------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi.ads gcc-15.1.0/gcc/ada/libgnat/g-socthi.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Sockets.Thin is
*** 249,269 ****
     procedure Finalize;
  
  private
!    pragma Import (C, C_Bind, "bind");
     pragma Import (C, C_Close, "close");
     pragma Import (C, C_Gethostname, "gethostname");
!    pragma Import (C, C_Getpeername, "getpeername");
!    pragma Import (C, C_Getsockname, "getsockname");
!    pragma Import (C, C_Getsockopt, "getsockopt");
     pragma Import (C, C_Listen, "listen");
     pragma Import (C, C_Select, "select");
!    pragma Import (C, C_Setsockopt, "setsockopt");
     pragma Import (C, C_Shutdown, "shutdown");
     pragma Import (C, C_Socketpair, "socketpair");
     pragma Import (C, C_System, "system");
  
     pragma Import (C, Nonreentrant_Gethostbyname, "gethostbyname");
!    pragma Import (C, Nonreentrant_Gethostbyaddr, "gethostbyaddr");
     pragma Import (C, Nonreentrant_Getservbyname, "getservbyname");
     pragma Import (C, Nonreentrant_Getservbyport, "getservbyport");
  
--- 249,269 ----
     procedure Finalize;
  
  private
!    pragma Inline (C_Bind);
     pragma Import (C, C_Close, "close");
     pragma Import (C, C_Gethostname, "gethostname");
!    pragma Inline (C_Getpeername);
!    pragma Inline (C_Getsockname);
!    pragma Inline (C_Getsockopt);
     pragma Import (C, C_Listen, "listen");
     pragma Import (C, C_Select, "select");
!    pragma Inline (C_Setsockopt);
     pragma Import (C, C_Shutdown, "shutdown");
     pragma Import (C, C_Socketpair, "socketpair");
     pragma Import (C, C_System, "system");
  
     pragma Import (C, Nonreentrant_Gethostbyname, "gethostbyname");
!    pragma Inline (Nonreentrant_Gethostbyaddr);
     pragma Import (C, Nonreentrant_Getservbyname, "getservbyname");
     pragma Import (C, Nonreentrant_Getservbyport, "getservbyport");
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__dummy.adb gcc-15.1.0/gcc/ada/libgnat/g-socthi__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__dummy.ads gcc-15.1.0/gcc/ada/libgnat/g-socthi__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__mingw.adb gcc-15.1.0/gcc/ada/libgnat/g-socthi__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__mingw.ads gcc-15.1.0/gcc/ada/libgnat/g-socthi__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb gcc-15.1.0/gcc/ada/libgnat/g-socthi__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads gcc-15.1.0/gcc/ada/libgnat/g-socthi__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-socthi__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soliop.ads gcc-15.1.0/gcc/ada/libgnat/g-soliop.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soliop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soliop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads gcc-15.1.0/gcc/ada/libgnat/g-soliop__lynxos.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soliop__lynxos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soliop__mingw.ads gcc-15.1.0/gcc/ada/libgnat/g-soliop__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soliop__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soliop__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soliop__qnx.ads gcc-15.1.0/gcc/ada/libgnat/g-soliop__qnx.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soliop__qnx.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soliop__qnx.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-soliop__solaris.ads gcc-15.1.0/gcc/ada/libgnat/g-soliop__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-soliop__solaris.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-soliop__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sopowa.adb gcc-15.1.0/gcc/ada/libgnat/g-sopowa.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sopowa.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sopowa.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb gcc-15.1.0/gcc/ada/libgnat/g-sopowa__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sopowa__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sopowa__posix.adb gcc-15.1.0/gcc/ada/libgnat/g-sopowa__posix.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sopowa__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sopowa__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sothco.adb gcc-15.1.0/gcc/ada/libgnat/g-sothco.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sothco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sothco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sothco.ads gcc-15.1.0/gcc/ada/libgnat/g-sothco.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sothco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sothco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2008-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2008-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Sockets.Thin_Common is
*** 123,132 ****
  
     type In_Addr is record
        S_B1, S_B2, S_B3, S_B4 : C.unsigned_char;
!    end record with Convention => C, Alignment => C.int'Alignment;
     --  IPv4 address, represented as a network-order C.int. Note that the
     --  underlying operating system may assume that values of this type have
!    --  C.int alignment, so we need to provide a suitable alignment clause here.
  
     function To_In_Addr is new Ada.Unchecked_Conversion (C.int, In_Addr);
     function To_Int     is new Ada.Unchecked_Conversion (In_Addr, C.int);
--- 123,135 ----
  
     type In_Addr is record
        S_B1, S_B2, S_B3, S_B4 : C.unsigned_char;
!    end record
!      with Convention => C, Alignment  => C.int'Alignment, Universal_Aliasing;
     --  IPv4 address, represented as a network-order C.int. Note that the
     --  underlying operating system may assume that values of this type have
!    --  C.int's alignment, so we need to provide a suitable alignment clause.
!    --  We also need to inhibit strict type-based aliasing optimizations in
!    --  order to implement the following unchecked conversions efficiently.
  
     function To_In_Addr is new Ada.Unchecked_Conversion (C.int, In_Addr);
     function To_Int     is new Ada.Unchecked_Conversion (In_Addr, C.int);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sothco__dummy.adb gcc-15.1.0/gcc/ada/libgnat/g-sothco__dummy.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sothco__dummy.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sothco__dummy.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2008-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2008-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sothco__dummy.ads gcc-15.1.0/gcc/ada/libgnat/g-sothco__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sothco__dummy.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sothco__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-souinf.ads gcc-15.1.0/gcc/ada/libgnat/g-souinf.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-souinf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-souinf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 58,68 ****
--- 58,72 ----
       Import, Convention => Intrinsic;
     --  Return the name of the current file, not including the path information.
     --  The result is considered to be a static string constant.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Line return Positive with
       Import, Convention => Intrinsic;
     --  Return the current input line number. The result is considered to be a
     --  static expression.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Source_Location return String with
       Volatile_Function,
*************** is
*** 74,79 ****
--- 78,85 ----
     --  additional suffixes of the same form are appended after the separating
     --  string " instantiated at ". The result is considered to be a static
     --  string constant.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Enclosing_Entity return String with
       Volatile_Function,
*************** is
*** 90,101 ****
--- 96,111 ----
     --  the string returned will be the name of the instance, not the generic
     --  package itself. This is useful in identifying and logging information
     --  from within generic templates.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Compilation_ISO_Date return String with
       Volatile_Function,
       Global => Source_Code_Information,
       Import, Convention => Intrinsic;
     --  Returns date of compilation as a static string "yyyy-mm-dd".
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Compilation_Date return String with
       Volatile_Function,
*************** is
*** 103,108 ****
--- 113,120 ----
       Import, Convention => Intrinsic;
     --  Returns date of compilation as a static string "mmm dd yyyy". This is
     --  in local time form, and is exactly compatible with C macro __DATE__.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
     function Compilation_Time return String with
       Volatile_Function,
*************** is
*** 110,114 ****
--- 122,128 ----
       Import, Convention => Intrinsic;
     --  Returns GMT time of compilation as a static string "hh:mm:ss". This is
     --  in local time form, and is exactly compatible with C macro __TIME__.
+    --
+    --  This function is an intrinsic, implemented by the compiler.
  
  end GNAT.Source_Info;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spchge.adb gcc-15.1.0/gcc/ada/libgnat/g-spchge.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-spchge.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spchge.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spchge.ads gcc-15.1.0/gcc/ada/libgnat/g-spchge.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-spchge.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spchge.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-speche.adb gcc-15.1.0/gcc/ada/libgnat/g-speche.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-speche.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-speche.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-speche.ads gcc-15.1.0/gcc/ada/libgnat/g-speche.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-speche.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-speche.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spipat.adb gcc-15.1.0/gcc/ada/libgnat/g-spipat.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-spipat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spipat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spipat.ads gcc-15.1.0/gcc/ada/libgnat/g-spipat.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-spipat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spipat.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spitbo.adb gcc-15.1.0/gcc/ada/libgnat/g-spitbo.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-spitbo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spitbo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Spitbol is
*** 255,261 ****
     function S (Num : Integer) return String is
        Buf : String (1 .. 30);
        Ptr : Natural := Buf'Last + 1;
!       Val : Natural := abs (Num);
  
     begin
        loop
--- 255,261 ----
     function S (Num : Integer) return String is
        Buf : String (1 .. 30);
        Ptr : Natural := Buf'Last + 1;
!       Val : Natural := abs Num;
  
     begin
        loop
*************** package body GNAT.Spitbol is
*** 748,754 ****
     function V (Num : Integer) return VString is
        Buf : String (1 .. 30);
        Ptr : Natural := Buf'Last + 1;
!       Val : Natural := abs (Num);
  
     begin
        loop
--- 748,754 ----
     function V (Num : Integer) return VString is
        Buf : String (1 .. 30);
        Ptr : Natural := Buf'Last + 1;
!       Val : Natural := abs Num;
  
     begin
        loop
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spitbo.ads gcc-15.1.0/gcc/ada/libgnat/g-spitbo.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-spitbo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spitbo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spogwa.adb gcc-15.1.0/gcc/ada/libgnat/g-spogwa.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-spogwa.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spogwa.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-spogwa.ads gcc-15.1.0/gcc/ada/libgnat/g-spogwa.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-spogwa.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-spogwa.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sptabo.ads gcc-15.1.0/gcc/ada/libgnat/g-sptabo.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sptabo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sptabo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sptain.ads gcc-15.1.0/gcc/ada/libgnat/g-sptain.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sptain.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sptain.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sptavs.ads gcc-15.1.0/gcc/ada/libgnat/g-sptavs.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sptavs.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sptavs.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sse.ads gcc-15.1.0/gcc/ada/libgnat/g-sse.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-sse.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sse.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-ssvety.ads gcc-15.1.0/gcc/ada/libgnat/g-ssvety.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-ssvety.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-ssvety.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2009-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-sthcso.adb gcc-15.1.0/gcc/ada/libgnat/g-sthcso.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-sthcso.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-sthcso.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-stheme.adb gcc-15.1.0/gcc/ada/libgnat/g-stheme.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-stheme.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-stheme.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-strhas.ads gcc-15.1.0/gcc/ada/libgnat/g-strhas.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-strhas.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-strhas.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-string.adb gcc-15.1.0/gcc/ada/libgnat/g-string.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-string.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-string.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-string.ads gcc-15.1.0/gcc/ada/libgnat/g-string.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-string.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-string.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-strspl.ads gcc-15.1.0/gcc/ada/libgnat/g-strspl.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-strspl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-strspl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-stseme.adb gcc-15.1.0/gcc/ada/libgnat/g-stseme.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-stseme.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-stseme.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb gcc-15.1.0/gcc/ada/libgnat/g-stsifd__sockets.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-stsifd__sockets.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-table.adb gcc-15.1.0/gcc/ada/libgnat/g-table.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-table.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-table.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-table.ads gcc-15.1.0/gcc/ada/libgnat/g-table.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-table.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-table.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-tasloc.adb gcc-15.1.0/gcc/ada/libgnat/g-tasloc.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-tasloc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-tasloc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-tasloc.ads gcc-15.1.0/gcc/ada/libgnat/g-tasloc.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-tasloc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-tasloc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-timsta.adb gcc-15.1.0/gcc/ada/libgnat/g-timsta.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-timsta.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-timsta.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-timsta.ads gcc-15.1.0/gcc/ada/libgnat/g-timsta.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-timsta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-timsta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2008-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2008-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-traceb.adb gcc-15.1.0/gcc/ada/libgnat/g-traceb.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-traceb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-traceb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 1999-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-traceb.ads gcc-15.1.0/gcc/ada/libgnat/g-traceb.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-traceb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-traceb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-trasym.adb gcc-15.1.0/gcc/ada/libgnat/g-trasym.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-trasym.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-trasym.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-trasym.ads gcc-15.1.0/gcc/ada/libgnat/g-trasym.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-trasym.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-trasym.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-tty.adb gcc-15.1.0/gcc/ada/libgnat/g-tty.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-tty.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-tty.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-tty.ads gcc-15.1.0/gcc/ada/libgnat/g-tty.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-tty.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-tty.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-u3spch.adb gcc-15.1.0/gcc/ada/libgnat/g-u3spch.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-u3spch.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-u3spch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-u3spch.ads gcc-15.1.0/gcc/ada/libgnat/g-u3spch.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-u3spch.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-u3spch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-utf_32.adb gcc-15.1.0/gcc/ada/libgnat/g-utf_32.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-utf_32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-utf_32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-utf_32.ads gcc-15.1.0/gcc/ada/libgnat/g-utf_32.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-utf_32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-utf_32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-wispch.adb gcc-15.1.0/gcc/ada/libgnat/g-wispch.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-wispch.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-wispch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-wispch.ads gcc-15.1.0/gcc/ada/libgnat/g-wispch.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-wispch.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-wispch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-wistsp.ads gcc-15.1.0/gcc/ada/libgnat/g-wistsp.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-wistsp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-wistsp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-zspche.adb gcc-15.1.0/gcc/ada/libgnat/g-zspche.adb
*** gcc-14.2.0/gcc/ada/libgnat/g-zspche.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-zspche.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-zspche.ads gcc-15.1.0/gcc/ada/libgnat/g-zspche.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-zspche.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-zspche.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/g-zstspl.ads gcc-15.1.0/gcc/ada/libgnat/g-zstspl.ads
*** gcc-14.2.0/gcc/ada/libgnat/g-zstspl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/g-zstspl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/gnat.ads gcc-15.1.0/gcc/ada/libgnat/gnat.ads
*** gcc-14.2.0/gcc/ada/libgnat/gnat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/gnat.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1992-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1992-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This is the parent package for a library of useful units provided with GNAT
  
! --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
  --  gcc-interface/Make-lang.in for details on the constraints.
  
  package GNAT is
--- 29,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This is parent package of the GNAT package hierarchy, a collection of
! --  useful packages provided with GNAT. It contains types and exception
! --  definitions that a commonly used by GNAT child packages. As definitions
! --  these do not appear in the runtime code if they are not used.
  
! --  This unit is used during bootstrap, see ADA_GENERATED_FILES in
  --  gcc-interface/Make-lang.in for details on the constraints.
  
  package GNAT is
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-c.adb gcc-15.1.0/gcc/ada/libgnat/i-c.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-c.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-c.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-c.ads gcc-15.1.0/gcc/ada/libgnat/i-c.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-c.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-c.ads	Fri Apr 25 08:18:00 2025
*************** pragma Assertion_Policy (Pre
*** 24,29 ****
--- 24,32 ----
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
+ --  Pre/postconditions use a fully qualified name for the standard "+" operator
+ --  in order to work around an internal limitation of the compiler.
+ 
  with System;
  with System.Parameters;
  
*************** is
*** 146,152 ****
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Item'Length + 1 else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then (if Append_Nul then To_C'Result (To_C'Result'Last) = nul);
--- 149,155 ----
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then (if Append_Nul then To_C'Result (To_C'Result'Last) = nul);
*************** is
*** 190,196 ****
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Item'Length + 1 else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
--- 193,199 ----
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
*************** is
*** 287,293 ****
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Item'Length + 1 else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then (if Append_Nul then To_C'Result (To_C'Result'Last) = wide_nul);
--- 290,296 ----
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then (if Append_Nul then To_C'Result (To_C'Result'Last) = wide_nul);
*************** is
*** 316,322 ****
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Item'Length + 1 else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
--- 319,325 ----
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
*************** is
*** 408,414 ****
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Item'Length + 1 else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then
--- 411,417 ----
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then
*************** is
*** 440,446 ****
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Item'Length + 1 else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
--- 443,449 ----
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
*************** is
*** 528,534 ****
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Item'Length + 1 else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then
--- 531,537 ----
       Pre  => not (Append_Nul = False and then Item'Length = 0),
       Post => To_C'Result'First = 0
         and then To_C'Result'Length =
!          (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length)
         and then (for all J in Item'Range =>
                     To_C'Result (size_t (J - Item'First)) = To_C (Item (J)))
         and then
*************** is
*** 560,566 ****
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Item'Length + 1 else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
--- 563,569 ----
     with
       Relaxed_Initialization => Target,
       Pre  => Target'Length >=
!        (if Append_Nul then Standard."+" (Item'Length, 1) else Item'Length),
       Post => Count = (if Append_Nul then Item'Length + 1 else Item'Length)
         and then
           (if Count /= 0 then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cexten.ads gcc-15.1.0/gcc/ada/libgnat/i-cexten.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cexten.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cexten.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains additional C-related definitions, intended for use
! --  with either manually or automatically generated bindings to C libraries.
  
  with System;
  
--- 29,39 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains additional C type definitions that are not defined
! --  by ARM B.2 and is intended for use with manual or automatically generated
! --  bindings to C libraries. Specifically, it defines types for bitfields,
! --  C void types, incomplete and unknown structs and classes, C bool, 64-bit
! --  and 128-bit types, and 128-bit floating-point types.
  
  with System;
  
*************** package Interfaces.C.Extensions is
*** 54,92 ****
     type incomplete_class_def_ptr is access incomplete_class_def;
     for incomplete_class_def_ptr'Storage_Size use 0;
  
-    --  C bool
- 
     subtype bool is Interfaces.C.C_bool;
  
     --  64-bit integer types
  
     subtype long_long is Interfaces.C.long_long;
     subtype unsigned_long_long is Interfaces.C.unsigned_long_long;
  
-    --  128-bit integer type available on 64-bit platforms:
-    --  typedef int signed_128 __attribute__ ((mode (TI)));
- 
     type Signed_128 is record
        low, high : unsigned_long_long;
     end record;
     pragma Convention (C_Pass_By_Copy, Signed_128);
     for Signed_128'Alignment use unsigned_long_long'Alignment * 2;
  
-    --  128-bit floating-point type available on x86:
-    --  typedef float float_128 __attribute__ ((mode (TF)));
- 
     type Float_128 is record
        low, high : unsigned_long_long;
     end record;
     pragma Convention (C_Pass_By_Copy, Float_128);
     for Float_128'Alignment use unsigned_long_long'Alignment * 2;
  
-    --  128-bit complex floating-point type available on x86:
-    --  typedef _Complex float cfloat_128 __attribute__ ((mode (TC)));
- 
     type CFloat_128 is record
        re, im : Float_128;
     end record;
     pragma Convention (C_Pass_By_Copy, CFloat_128);
  
     --  Types for bitfields
--- 57,94 ----
     type incomplete_class_def_ptr is access incomplete_class_def;
     for incomplete_class_def_ptr'Storage_Size use 0;
  
     subtype bool is Interfaces.C.C_bool;
+    --  C bool
  
     --  64-bit integer types
  
     subtype long_long is Interfaces.C.long_long;
     subtype unsigned_long_long is Interfaces.C.unsigned_long_long;
  
     type Signed_128 is record
        low, high : unsigned_long_long;
     end record;
+    --  128-bit integer type available on 64-bit platforms:
+    --  typedef int signed_128 __attribute__ ((mode (TI)));
+ 
     pragma Convention (C_Pass_By_Copy, Signed_128);
     for Signed_128'Alignment use unsigned_long_long'Alignment * 2;
  
     type Float_128 is record
        low, high : unsigned_long_long;
     end record;
+    --  128-bit floating-point type available on x86:
+    --  typedef float float_128 __attribute__ ((mode (TF)));
+ 
     pragma Convention (C_Pass_By_Copy, Float_128);
     for Float_128'Alignment use unsigned_long_long'Alignment * 2;
  
     type CFloat_128 is record
        re, im : Float_128;
     end record;
+    --  128-bit complex floating-point type available on x86:
+    --  typedef _Complex float cfloat_128 __attribute__ ((mode (TC)));
+ 
     pragma Convention (C_Pass_By_Copy, CFloat_128);
  
     --  Types for bitfields
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cexten__128.ads gcc-15.1.0/gcc/ada/libgnat/i-cexten__128.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cexten__128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cexten__128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains additional C-related definitions, intended for use
! --  with either manually or automatically generated bindings to C libraries.
  
  with System;
  
--- 29,39 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains additional C type definitions that are not defined
! --  by ARM B.2 and is intended for use with manual or automatically generated
! --  bindings to C libraries. Specifically, it defines types for bitfields,
! --  C void types, incomplete and unknown structs and classes, C bool, 64-bit
! --  and 128-bit types, and 128-bit floating-point types.
  
  with System;
  
*************** package Interfaces.C.Extensions is
*** 54,83 ****
     type incomplete_class_def_ptr is access incomplete_class_def;
     for incomplete_class_def_ptr'Storage_Size use 0;
  
-    --  C bool
- 
     subtype bool is Interfaces.C.C_bool;
  
     --  64-bit integer types
  
     subtype long_long is Interfaces.C.long_long;
     subtype unsigned_long_long is Interfaces.C.unsigned_long_long;
  
-    --  128-bit floating-point type available on x86:
-    --  typedef float float_128 __attribute__ ((mode (TF)));
- 
     type Float_128 is record
        low, high : unsigned_long_long;
     end record;
     pragma Convention (C_Pass_By_Copy, Float_128);
     for Float_128'Alignment use unsigned_long_long'Alignment * 2;
  
-    --  128-bit complex floating-point type available on x86:
-    --  typedef _Complex float cfloat_128 __attribute__ ((mode (TC)));
- 
     type CFloat_128 is record
        re, im : Float_128;
     end record;
     pragma Convention (C_Pass_By_Copy, CFloat_128);
  
     --  Types for bitfields
--- 57,85 ----
     type incomplete_class_def_ptr is access incomplete_class_def;
     for incomplete_class_def_ptr'Storage_Size use 0;
  
     subtype bool is Interfaces.C.C_bool;
+    --  C bool
  
     --  64-bit integer types
  
     subtype long_long is Interfaces.C.long_long;
     subtype unsigned_long_long is Interfaces.C.unsigned_long_long;
  
     type Float_128 is record
        low, high : unsigned_long_long;
     end record;
+    --  128-bit floating-point type available on x86:
+    --  typedef float float_128 __attribute__ ((mode (TF)));
+ 
     pragma Convention (C_Pass_By_Copy, Float_128);
     for Float_128'Alignment use unsigned_long_long'Alignment * 2;
  
     type CFloat_128 is record
        re, im : Float_128;
     end record;
+    --  128-bit complex floating-point type available on x86:
+    --  typedef _Complex float cfloat_128 __attribute__ ((mode (TC)));
+ 
     pragma Convention (C_Pass_By_Copy, CFloat_128);
  
     --  Types for bitfields
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cheri-exceptions.ads gcc-15.1.0/gcc/ada/libgnat/i-cheri-exceptions.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cheri-exceptions.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/i-cheri-exceptions.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,80 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --            I N T E R F A C E S . C H E R I . E X C E P T I O N S         --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --                     Copyright (C) 2024-2025, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Ada.Exceptions;
+ 
+ --  This package defines exception types for CHERI-related errors
+ 
+ package Interfaces.CHERI.Exceptions with
+   Preelaborate
+ is
+ 
+    Capability_Bound_Error : exception;
+    --  An out-of-bounds access was attempted
+ 
+    Capability_Permission_Error : exception;
+    --  An attempted access exceeded the permissions granted by a capability
+ 
+    Capability_Sealed_Error : exception;
+    --  A sealed capability was dereferenced
+ 
+    Capability_Tag_Error : exception;
+    --  An invalid capability was dereferenced
+ 
+ private
+ 
+    --  Expose C names for exception identifiers to allow raising from signal
+    --  handlers in init.c.
+ 
+    Capability_Bound_Error_Id : constant Ada.Exceptions.Exception_Id :=
+                                  Capability_Bound_Error'Identity;
+    pragma Export (C,
+                   Capability_Bound_Error_Id,
+                   "capability_bound_error_id");
+ 
+    Capability_Permission_Error_Id : constant Ada.Exceptions.Exception_Id :=
+                                  Capability_Permission_Error'Identity;
+    pragma Export (C,
+                   Capability_Permission_Error_Id,
+                   "capability_permission_error_id");
+ 
+    Capability_Sealed_Error_Id : constant Ada.Exceptions.Exception_Id :=
+                                  Capability_Sealed_Error'Identity;
+    pragma Export (C,
+                   Capability_Sealed_Error_Id,
+                   "capability_sealed_error_id");
+ 
+    Capability_Tag_Error_Id : constant Ada.Exceptions.Exception_Id :=
+                                  Capability_Tag_Error'Identity;
+    pragma Export (C,
+                   Capability_Tag_Error_Id,
+                   "capability_tag_error_id");
+ 
+ end Interfaces.CHERI.Exceptions;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cheri.adb gcc-15.1.0/gcc/ada/libgnat/i-cheri.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-cheri.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cheri.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cheri.ads gcc-15.1.0/gcc/ada/libgnat/i-cheri.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cheri.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cheri.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 467,486 ****
       External_Name => "__builtin_cheri_stack_get";
     --  Get the Capability Stack Pointer (CSP)
  
-    ---------------------------
-    -- Capability Exceptions --
-    ---------------------------
- 
-    Capability_Bound_Error : exception;
-    --  An out-of-bounds access was attempted
- 
-    Capability_Permission_Error : exception;
-    --  An attempted access exceeded the permissions granted by a capability
- 
-    Capability_Sealed_Error : exception;
-    --  A sealed capability was dereferenced
- 
-    Capability_Tag_Error : exception;
-    --  An invalid capability was dereferenced
- 
  end Interfaces.CHERI;
--- 467,470 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cobol.adb gcc-15.1.0/gcc/ada/libgnat/i-cobol.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-cobol.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cobol.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cobol.ads gcc-15.1.0/gcc/ada/libgnat/i-cobol.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cobol.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cobol.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                             (ASCII Version)                              --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (ASCII Version)                              --
  --                                                                          --
! --          Copyright (C) 1993-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cpoint.adb gcc-15.1.0/gcc/ada/libgnat/i-cpoint.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-cpoint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cpoint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cpoint.ads gcc-15.1.0/gcc/ada/libgnat/i-cpoint.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cpoint.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cpoint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cstrea.adb gcc-15.1.0/gcc/ada/libgnat/i-cstrea.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-cstrea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cstrea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cstrea.ads gcc-15.1.0/gcc/ada/libgnat/i-cstrea.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cstrea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cstrea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Interfaces.C_Streams is
*** 235,243 ****
     --                   In this mode we are eventually using the system-wide
     --                   translation if activated.
     --    Text         : Text encoding activated
     --    Wtext        : Unicode mode
     --    U16text      : Unicode UTF-16 encoding
-    --    U8text       : Unicode UTF-8 encoding
     --
     --  This encoding is system dependent and only used on Windows systems.
     --
--- 235,243 ----
     --                   In this mode we are eventually using the system-wide
     --                   translation if activated.
     --    Text         : Text encoding activated
+    --    U8text       : Unicode UTF-8 encoding
     --    Wtext        : Unicode mode
     --    U16text      : Unicode UTF-16 encoding
     --
     --  This encoding is system dependent and only used on Windows systems.
     --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cstrin.adb gcc-15.1.0/gcc/ada/libgnat/i-cstrin.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-cstrin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cstrin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 43,48 ****
--- 43,49 ----
     --  since arbitrary addresses can be converted, and it is quite likely that
     --  this type will in fact be used for aliasing values of other types.
  
+    --  Convert between chars_ptr and a C pointer
     function To_chars_ptr is
        new Ada.Unchecked_Conversion (System.Parameters.C_Address, chars_ptr);
  
*************** is
*** 73,81 ****
--- 74,85 ----
  
     function Memory_Alloc (Size : size_t) return chars_ptr;
     pragma Import (C, Memory_Alloc, System.Parameters.C_Malloc_Linkname);
+    --  Allocate a chunk of memory on the heap
  
     procedure Memory_Free (Address : chars_ptr);
     pragma Import (C, Memory_Free, "__gnat_free");
+    --  Deallocate a previously allocated chunk of memory from the heap. On
+    --  runtimes that do not allow deallocation this is a no-op.
  
     ---------
     -- "+" --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-cstrin.ads gcc-15.1.0/gcc/ada/libgnat/i-cstrin.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-cstrin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-cstrin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package declares types and subprograms that allow the allocation,
+ --  reference, update and deallocation of C-style strings, as defined by
+ --  ARM B.3.1.
+ 
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
  --  setting the corresponding assertion policy to Ignore. These preconditions
*************** package Interfaces.C.Strings with
*** 49,54 ****
--- 53,59 ----
  is
     pragma Preelaborate;
  
+    --  Definitions for C character arrays
     type char_array_access is access all char_array;
     for char_array_access'Size use System.Parameters.ptr_bits;
  
*************** is
*** 63,92 ****
     type chars_ptr_array is array (size_t range <>) of aliased chars_ptr;
  
     Null_Ptr : constant chars_ptr;
  
     function To_Chars_Ptr
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     with
       SPARK_Mode => Off;  --  To_Chars_Ptr'Result is aliased with Item
  
     function New_Char_Array (Chars : char_array) return chars_ptr with
       Volatile_Function,
       Post   => New_Char_Array'Result /= Null_Ptr,
       Global => (Input => C_Memory);
  
     function New_String (Str : String) return chars_ptr with
       Volatile_Function,
       Post   => New_String'Result /= Null_Ptr,
       Global => (Input => C_Memory);
  
     procedure Free (Item : in out chars_ptr) with
       SPARK_Mode => Off;
     --  When deallocation is prohibited (eg: cert runtimes) this routine
!    --  will raise Program_Error
  
     Dereference_Error : exception;
  
     function Value (Item : chars_ptr) return char_array with
       Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
--- 68,105 ----
     type chars_ptr_array is array (size_t range <>) of aliased chars_ptr;
  
     Null_Ptr : constant chars_ptr;
+    --  Null value for private type chars_ptr
  
     function To_Chars_Ptr
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     with
       SPARK_Mode => Off;  --  To_Chars_Ptr'Result is aliased with Item
+    --  Extract raw chars_ptr from char_array access type
  
     function New_Char_Array (Chars : char_array) return chars_ptr with
       Volatile_Function,
       Post   => New_Char_Array'Result /= Null_Ptr,
       Global => (Input => C_Memory);
+    --  Copy the contents of Chars into a newly allocated chars_ptr
  
     function New_String (Str : String) return chars_ptr with
       Volatile_Function,
       Post   => New_String'Result /= Null_Ptr,
       Global => (Input => C_Memory);
+    --  Copy the contents of Str into a newly allocated chars_ptr
  
     procedure Free (Item : in out chars_ptr) with
       SPARK_Mode => Off;
     --  When deallocation is prohibited (eg: cert runtimes) this routine
!    --  will raise Program_Error.
  
     Dereference_Error : exception;
+    --  This exception is raised when a subprogram of this unit tries to
+    --  dereference a chars_ptr with the value Null_Ptr.
  
+    --  The Value functions copy the contents of a chars_ptr object
+    --  into a char_array/String.
     function Value (Item : chars_ptr) return char_array with
       Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
*************** is
*** 112,118 ****
--- 125,135 ----
     function Strlen (Item : chars_ptr) return size_t with
       Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
+    --  Return the length of a string contained in a chars_ptr
  
+    --  Update the contents of a chars_ptr with a char_array/String. If the
+    --  update exceeds the original length of the chars_ptr the Update_Error
+    --  exception is raised.
     procedure Update
       (Item   : chars_ptr;
        Offset : size_t;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-fortra.adb gcc-15.1.0/gcc/ada/libgnat/i-fortra.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-fortra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-fortra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-pacdec.adb gcc-15.1.0/gcc/ada/libgnat/i-pacdec.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-pacdec.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-pacdec.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-pacdec.ads gcc-15.1.0/gcc/ada/libgnat/i-pacdec.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-pacdec.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-pacdec.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-vxwoio.adb gcc-15.1.0/gcc/ada/libgnat/i-vxwoio.adb
*** gcc-14.2.0/gcc/ada/libgnat/i-vxwoio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-vxwoio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2002-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2002-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-vxwoio.ads gcc-15.1.0/gcc/ada/libgnat/i-vxwoio.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-vxwoio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-vxwoio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2002-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2002-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-vxwork.ads gcc-15.1.0/gcc/ada/libgnat/i-vxwork.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-vxwork.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-vxwork.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.VxWorks;
*** 54,130 ****
  package Interfaces.VxWorks is
     pragma Preelaborate;
  
-    ------------------------------------------------------------------------
-    --  Here is a complete example that shows how to handle the Interrupt 0x14
-    --  with a direct-vectored interrupt handler in Ada using this package:
- 
-    --  with Interfaces.VxWorks; use Interfaces.VxWorks;
-    --  with System;
-    --
-    --  package P is
-    --
-    --     Count : Integer;
-    --     pragma Atomic (Count);
-    --
-    --     Level : constant := 1;
-    --     --  Interrupt level used by this example
-    --
-    --     procedure Handler (parameter : System.Address);
-    --
-    --  end P;
-    --
-    --  package body P is
-    --
-    --     procedure Handler (parameter : System.Address) is
-    --        S : STATUS;
-    --     begin
-    --        Count := Count + 1;
-    --        logMsg ("received an interrupt" & ASCII.LF & ASCII.NUL);
-    --
-    --        --  Acknowledge VME interrupt
-    --
-    --        S := sysBusIntAck (intLevel => Level);
-    --     end Handler;
-    --  end P;
-    --
-    --  with Interfaces.VxWorks; use Interfaces.VxWorks;
-    --  with Ada.Text_IO; use Ada.Text_IO;
-    --
-    --  with P; use P;
-    --  procedure Useint is
-    --
-    --     --  Be sure to use a reasonable interrupt number for  board.
-    --     --  This one is the unused VME graphics interrupt on the PPC MV2604
-    --
-    --     Interrupt : constant := 16#14#;
-    --
-    --     task T;
-    --
-    --     S : STATUS;
-    --
-    --     task body T is
-    --     begin
-    --        loop
-    --           Put_Line ("Generating an interrupt...");
-    --           delay 1.0;
-    --
-    --           --  Generate VME interrupt, using interrupt number
-    --
-    --           S := sysBusIntGen (1, Interrupt);
-    --        end loop;
-    --     end T;
-    --
-    --  begin
-    --     S := sysIntEnable (intLevel => Level);
-    --     S := intConnect (INUM_TO_IVEC (Interrupt), handler'Access);
-    --
-    --     loop
-    --        delay 2.0;
-    --        Put_Line ("value of count:" & P.Count'Img);
-    --     end loop;
-    --  end Useint;
-    -------------------------------------
- 
     subtype int is Integer;
  
     type STATUS is new int;
--- 54,59 ----
*************** package Interfaces.VxWorks is
*** 136,187 ****
     type BOOL is new int;
     --  Equivalent of the C type BOOL
  
-    type VOIDFUNCPTR is access procedure (parameter : System.Address);
     type Interrupt_Vector is new System.Address;
-    type Exception_Vector is new System.Address;
- 
-    function intConnect
-      (vector    : Interrupt_Vector;
-       handler   : VOIDFUNCPTR;
-       parameter : System.Address := System.Null_Address) return STATUS;
-    --  Binding to the C routine intConnect. Use this to set up an user handler.
-    --  The routine generates a wrapper around the user handler to save and
-    --  restore context
  
     function intContext return BOOL;
     --  Binding to the C routine intContext. This function returns 1 (TRUE)
     --  only if the current execution state is in interrupt context.
  
-    function intVecGet
-      (Vector : Interrupt_Vector) return VOIDFUNCPTR;
-    --  Binding to the C routine intVecGet. Use this to get the existing handler
-    --  for later restoral
- 
-    procedure intVecSet
-      (Vector  : Interrupt_Vector;
-       Handler : VOIDFUNCPTR);
-    --  Binding to the C routine intVecSet. Use this to restore a handler
-    --  obtained using intVecGet
- 
     function INUM_TO_IVEC (intNum : int) return Interrupt_Vector;
     --  Equivalent to the C macro INUM_TO_IVEC used to convert an interrupt
     --  number to an interrupt vector
  
-    function sysIntEnable (intLevel : int) return STATUS;
-    --  Binding to the C routine sysIntEnable
- 
-    function sysIntDisable (intLevel : int) return STATUS;
-    --  Binding to the C routine sysIntDisable
- 
-    function sysBusIntAck (intLevel : int) return STATUS;
-    --  Binding to the C routine sysBusIntAck
- 
-    function sysBusIntGen (intLevel : int; Intnum : int) return STATUS;
-    --  Binding to the C routine sysBusIntGen. Note that the T2 documentation
-    --  implies that a vector address is the proper argument - it's not. The
-    --  interrupt number in the range 0 .. 255 (for 68K and PPC) is the correct
-    --  argument.
- 
     procedure logMsg
       (fmt : String; arg1, arg2, arg3, arg4, arg5, arg6 : int := 0);
     --  Binding to the C routine logMsg. Note that it is the caller's
--- 65,80 ----
*************** private
*** 204,219 ****
     type FP_CONTEXT is new System.VxWorks.FP_CONTEXT;
     --  Target-dependent floating point context type
  
-    pragma Import (C, intConnect, "intConnect");
     pragma Import (C, intContext, "intContext");
-    pragma Import (C, intVecGet, "intVecGet");
-    pragma Import (C, intVecSet, "intVecSet");
     pragma Import (C, INUM_TO_IVEC, "__gnat_inum_to_ivec");
-    pragma Import (C, sysIntEnable, "sysIntEnable");
-    pragma Import (C, sysIntDisable, "sysIntDisable");
-    pragma Import (C, sysBusIntAck, "sysBusIntAck");
-    pragma Import (C, sysBusIntGen, "sysBusIntGen");
     pragma Import (C, logMsg, "logMsg");
     pragma Import (C, fppRestore, "fppRestore");
     pragma Import (C, fppSave, "fppSave");
  end Interfaces.VxWorks;
--- 97,106 ----
     type FP_CONTEXT is new System.VxWorks.FP_CONTEXT;
     --  Target-dependent floating point context type
  
     pragma Import (C, intContext, "intContext");
     pragma Import (C, INUM_TO_IVEC, "__gnat_inum_to_ivec");
     pragma Import (C, logMsg, "logMsg");
     pragma Import (C, fppRestore, "fppRestore");
     pragma Import (C, fppSave, "fppSave");
+ 
  end Interfaces.VxWorks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/i-vxwork__x86.ads gcc-15.1.0/gcc/ada/libgnat/i-vxwork__x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/i-vxwork__x86.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/i-vxwork__x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.VxWorks;
*** 53,125 ****
  package Interfaces.VxWorks is
     pragma Preelaborate;
  
-    ------------------------------------------------------------------------
-    --  Here is a complete example that shows how to handle the Interrupt 0x33
-    --  with a direct-vectored interrupt handler in Ada using this package:
- 
-    --  with Interfaces.VxWorks; use Interfaces.VxWorks;
-    --  with System;
-    --
-    --  package P is
-    --
-    --     Count : Integer;
-    --     pragma Atomic (Count);
-    --
-    --     procedure Handler (Parameter : System.Address);
-    --
-    --  end P;
-    --
-    --  package body P is
-    --
-    --     procedure Handler (Parameter : System.Address) is
-    --     begin
-    --        Count := Count + 1;
-    --        logMsg ("received an interrupt" & ASCII.LF & ASCII.NUL);
-    --     end Handler;
-    --  end P;
-    --
-    --  with Interfaces.VxWorks; use Interfaces.VxWorks;
-    --  with Ada.Text_IO; use Ada.Text_IO;
-    --  with Ada.Interrupts;
-    --  with Machine_Code; use Machine_Code;
-    --
-    --  with P; use P;
-    --  procedure Useint is
-    --
-    --     --  Be sure to use a reasonable interrupt number for target board.
-    --     --  This one is an unreserved interrupt for the Pentium 3 BSP
-    --
-    --     Interrupt : constant := 16#33#;
-    --
-    --     task T;
-    --
-    --     S : STATUS;
-    --
-    --     task body T is
-    --     begin
-    --        loop
-    --           Put_Line ("Generating an interrupt...");
-    --           delay 1.0;
-    --
-    --           --  Generate interrupt, using interrupt number
-    --
-    --           Asm ("int %0",
-    --                Inputs =>
-    --                  Ada.Interrupts.Interrupt_ID'Asm_Input
-    --                    ("i", Interrupt));
-    --        end loop;
-    --     end T;
-    --
-    --  begin
-    --     S := intConnect (INUM_TO_IVEC (Interrupt), Handler'Access);
-    --
-    --     loop
-    --        delay 2.0;
-    --        Put_Line ("value of count:" & P.Count'Img);
-    --     end loop;
-    --  end Useint;
-    -------------------------------------
- 
     subtype int is Integer;
  
     type STATUS is new int;
--- 53,58 ----
*************** package Interfaces.VxWorks is
*** 131,179 ****
     type BOOL is new int;
     --  Equivalent of the C type BOOL
  
-    type VOIDFUNCPTR is access procedure (parameter : System.Address);
     type Interrupt_Vector is new System.Address;
-    type Exception_Vector is new System.Address;
- 
-    function intConnect
-      (vector    : Interrupt_Vector;
-       handler   : VOIDFUNCPTR;
-       parameter : System.Address := System.Null_Address) return STATUS;
-    --  Binding to the C routine intConnect. Use this to set up an user handler.
-    --  The routine generates a wrapper around the user handler to save and
-    --  restore context
  
     function intContext return BOOL;
     --  Binding to the C routine intContext. This function returns 1 (TRUE)
     --  only if the current execution state is in interrupt context.
  
-    function intVecGet
-      (Vector : Interrupt_Vector) return VOIDFUNCPTR;
-    --  Binding to the C routine intVecGet. Use this to get the existing handler
-    --  for later restoral
- 
-    procedure intVecSet
-      (Vector  : Interrupt_Vector;
-       Handler : VOIDFUNCPTR);
-    --  Binding to the C routine intVecSet. Use this to restore a handler
-    --  obtained using intVecGet
- 
-    procedure intVecGet2
-      (vector       : Interrupt_Vector;
-       pFunction    : out VOIDFUNCPTR;
-       pIdtGate     : not null access int;
-       pIdtSelector : not null access int);
-    --  Binding to the C routine intVecGet2. Use this to get the existing
-    --  handler for later restoral
- 
-    procedure intVecSet2
-      (vector       : Interrupt_Vector;
-       pFunction    : VOIDFUNCPTR;
-       pIdtGate     : not null access int;
-       pIdtSelector : not null access int);
-    --  Binding to the C routine intVecSet2. Use this to restore a
-    --  handler obtained using intVecGet2
- 
     function INUM_TO_IVEC (intNum : int) return Interrupt_Vector;
     --  Equivalent to the C macro INUM_TO_IVEC used to convert an interrupt
     --  number to an interrupt vector
--- 64,75 ----
*************** private
*** 208,219 ****
     type FP_CONTEXT is new System.VxWorks.FP_CONTEXT;
     --  Target-dependent floating point context type
  
-    pragma Import (C, intConnect, "intConnect");
     pragma Import (C, intContext, "intContext");
-    pragma Import (C, intVecGet, "intVecGet");
-    pragma Import (C, intVecSet, "intVecSet");
-    pragma Import (C, intVecGet2, "intVecGet2");
-    pragma Import (C, intVecSet2, "intVecSet2");
     pragma Import (C, INUM_TO_IVEC, "__gnat_inum_to_ivec");
     pragma Import (C, logMsg, "logMsg");
     pragma Import (C, fppRestore, "fppRestore");
--- 104,110 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/interfac.ads gcc-15.1.0/gcc/ada/libgnat/interfac.ads
*** gcc-14.2.0/gcc/ada/libgnat/interfac.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/interfac.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 62,68 ****
     --  such as SPARK or CodePeer. In the normal case Long_Long_Integer is
     --  always 64-bits so we get the desired 64-bit type.
  
!    type Unsigned_8  is mod 2 ** 8;
     for Unsigned_8'Size use  8;
  
     type Unsigned_16 is mod 2 ** 16;
--- 62,68 ----
     --  such as SPARK or CodePeer. In the normal case Long_Long_Integer is
     --  always 64-bits so we get the desired 64-bit type.
  
!    type Unsigned_8 is mod 2 ** 8;
     for Unsigned_8'Size use  8;
  
     type Unsigned_16 is mod 2 ** 16;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/interfac__2020.ads gcc-15.1.0/gcc/ada/libgnat/interfac__2020.ads
*** gcc-14.2.0/gcc/ada/libgnat/interfac__2020.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/interfac__2020.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,49 ****
  
  --  This is the runtime version of this unit (not used during GNAT build)
  
  package Interfaces with
    Always_Terminates
  is
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
     --  All identifiers in this unit are implementation defined
  
!    pragma Implementation_Defined;
  
     type Integer_8  is range -2 **  7 .. 2 **  7 - 1;
     for Integer_8'Size use  8;
--- 35,60 ----
  
  --  This is the runtime version of this unit (not used during GNAT build)
  
+ --  ``Interfaces`` is the parent of several library packages that declare types
+ --  and other entities useful for interfacing to foreign languages as defined
+ --  by ARM B.2.
+ --
+ --  It defines signed and modular integer types of 8, 16, 32, 64 and 128 bits.
+ --  For each such modular type, shifting and rotating intrinsic subprograms
+ --  are specified. There is also the definition of IEEE 754 floating point
+ --  types (``IEEE_Float_32``, ``IEEE_Float_64``, and ``IEEE_Extended_Float``).
+ 
  package Interfaces with
    Always_Terminates
  is
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
+    pragma Implementation_Defined;
     --  All identifiers in this unit are implementation defined
  
!    --  Definitions of 8, 16, 24, 32, 64 and 128 bit signed and unsigned integer
!    --  types.
  
     type Integer_8  is range -2 **  7 .. 2 **  7 - 1;
     for Integer_8'Size use  8;
*************** is
*** 56,70 ****
  
     type Integer_64 is new Long_Long_Integer;
     for Integer_64'Size use 64;
!    --  Note: we use Long_Long_Integer'First instead of -2 ** 63 to allow this
!    --  unit to compile when using custom target configuration files where the
!    --  maximum integer is 32 bits. This is useful for static analysis tools
!    --  such as SPARK or CodePeer. In the normal case Long_Long_Integer is
!    --  always 64-bits so we get the desired 64-bit type.
  
     type Integer_128 is new Long_Long_Long_Integer;
!    --  Note: we use Long_Long_Long_Integer instead of literal bounds to allow
!    --  this unit to be compiled with compilers not supporting 128-bit integers.
     --  We do not put a confirming size clause of 128 bits for the same reason.
  
     type Unsigned_8 is mod 2 ** 8;
--- 67,81 ----
  
     type Integer_64 is new Long_Long_Integer;
     for Integer_64'Size use 64;
!    --  We use Long_Long_Integer'First instead of -2 ** 63 to allow this unit to
!    --  compile when using custom target configuration files where the maximum
!    --  integer is 32 bits. This is useful for static analysis tools such as
!    --  SPARK or CodePeer. In the normal case Long_Long_Integer is 64-bits so we
!    --  get the desired 64-bit type.
  
     type Integer_128 is new Long_Long_Long_Integer;
!    --  We use Long_Long_Long_Integer instead of literal bounds to allow this
!    --  unit to be compiled with compilers not supporting 128-bit integers.
     --  We do not put a confirming size clause of 128 bits for the same reason.
  
     type Unsigned_8 is mod 2 ** 8;
*************** is
*** 88,93 ****
--- 99,106 ----
     type Unsigned_128 is mod 2 ** Long_Long_Long_Integer'Size;
     --  See comment on Integer_128 above
  
+    --  Compiler intrinsics implemented by the compiler
+ 
     function Shift_Left
       (Value  : Unsigned_8;
        Amount : Natural) return Unsigned_8
*************** is
*** 221,232 ****
     type IEEE_Float_64 is digits 15;
     for IEEE_Float_64'Size use 64;
  
!    --  If there is an IEEE extended float available on the machine, we assume
!    --  that it is available as Long_Long_Float.
! 
     --  Note: it is harmless, and explicitly permitted, to include additional
     --  types in interfaces, so it is not wrong to have IEEE_Extended_Float
     --  defined even if the extended format is not available.
  
     type IEEE_Extended_Float is new Long_Long_Float;
  
--- 234,246 ----
     type IEEE_Float_64 is digits 15;
     for IEEE_Float_64'Size use 64;
  
!    --  If there is an IEEE extended float available on the machine, we
!    --  assume that it is available as Long_Long_Float.
!    --
     --  Note: it is harmless, and explicitly permitted, to include additional
     --  types in interfaces, so it is not wrong to have IEEE_Extended_Float
     --  defined even if the extended format is not available.
+    --  See RM-B.2(11).
  
     type IEEE_Extended_Float is new Long_Long_Float;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/machcode.ads gcc-15.1.0/gcc/ada/libgnat/machcode.ads
*** gcc-14.2.0/gcc/ada/libgnat/machcode.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/machcode.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,20 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package is a renaming of :ref:`system.machine_code`
+ 
  with System.Machine_Code;
  
  package Machine_Code renames System.Machine_Code;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/memtrack.adb gcc-15.1.0/gcc/ada/libgnat/memtrack.adb
*** gcc-14.2.0/gcc/ada/libgnat/memtrack.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/memtrack.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-addima.adb gcc-15.1.0/gcc/ada/libgnat/s-addima.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-addima.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-addima.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,72 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Unchecked_Conversion;
  
  function System.Address_Image (A : Address) return String is
- 
-    Result  : String (1 .. 2 * Address'Size / Storage_Unit);
- 
-    type Byte is mod 2 ** 8;
-    for Byte'Size use 8;
- 
-    Hexdigs :
-      constant array (Byte range 0 .. 15) of Character := "0123456789ABCDEF";
- 
-    type Bytes is array (1 .. Address'Size / Storage_Unit) of Byte;
-    for Bytes'Size use Address'Size;
- 
-    function To_Bytes is new Ada.Unchecked_Conversion (Address, Bytes);
- 
-    Byte_Sequence : constant Bytes := To_Bytes (A);
- 
-    LE : constant := Standard'Default_Bit_Order;
-    BE : constant := 1 - LE;
-    --  Set to 1/0 for True/False for Little-Endian/Big-Endian
- 
-    Start : constant Natural := BE * (1) + LE * (Bytes'Length);
-    Incr  : constant Integer := BE * (1) + LE * (-1);
-    --  Start and increment for accessing characters of address string
- 
-    Ptr : Natural;
-    --  Scan address string
- 
  begin
!    Ptr := Start;
!    for N in Bytes'Range loop
!       Result (2 * N - 1) := Hexdigs (Byte_Sequence (Ptr) / 16);
!       Result (2 * N)     := Hexdigs (Byte_Sequence (Ptr) mod 16);
!       Ptr := Ptr + Incr;
!    end loop;
! 
!    return Result;
  
  end System.Address_Image;
--- 29,46 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Img_Address_32;
! with System.Img_Address_64;
  
  function System.Address_Image (A : Address) return String is
  begin
!    --  We use Address_Image64 for Morello because Integer_Address is 64-bit
!    --  large even though Address is 128-bit large.
  
+    case Address'Size is
+       when 32     => return String (System.Img_Address_32.Address_Image32 (A));
+       when 64     => return String (System.Img_Address_64.Address_Image64 (A));
+       when 128    => return String (System.Img_Address_64.Address_Image64 (A));
+       when others => raise Program_Error;
+    end case;
  end System.Address_Image;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-addima.ads gcc-15.1.0/gcc/ada/libgnat/s-addima.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-addima.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-addima.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-addope.adb gcc-15.1.0/gcc/ada/libgnat/s-addope.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-addope.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-addope.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-addope.ads gcc-15.1.0/gcc/ada/libgnat/s-addope.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-addope.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-addope.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,44 ****
  
  --  This package provides arithmetic and logical operations on type Address.
  --  It is intended for use by other packages in the System hierarchy. For
! --  applications requiring this capability, see System.Storage_Elements or
! --  the operations introduced in System.Aux_DEC;
! 
! --  The reason we need this package is that arithmetic operations may not
! --  be available in the case where type Address is non-private and the
! --  operations have been made abstract in the spec of System (to avoid
! --  inappropriate use by applications programs). In addition, the logical
! --  operations may not be available if type Address is a signed integer.
  
  package System.Address_Operations is
     pragma Pure;
--- 31,44 ----
  
  --  This package provides arithmetic and logical operations on type Address.
  --  It is intended for use by other packages in the System hierarchy. For
! --  applications requiring this capability, use `System.Storage_Elements`
! --  instead.
! --
! --  The reason for this package is that arithmetic operations may not be
! --  available in the case where type Address is non-private and the operations
! --  have been made abstract in the spec of System (to avoid inappropriate use
! --  by applications programs). In addition, the logical operations may not be
! --  available if type Address is a signed integer.
  
  package System.Address_Operations is
     pragma Pure;
*************** package System.Address_Operations is
*** 47,70 ****
     --  a modular type with the same length as Address, i.e. they provide
     --  twos complement wrap around arithmetic treating the address value
     --  as an unsigned value, with no overflow checking.
! 
     --  Note that we do not use the infix names for these operations to
     --  avoid problems with ambiguities coming from declarations in package
     --  Standard (which may or may not be visible depending on the exact
     --  form of the declaration of type System.Address).
! 
     --  For addition, subtraction, and multiplication, the effect of overflow
     --  is 2's complement wrapping (as though the type Address were unsigned).
! 
     --  For division and modulus operations, the caller is responsible for
     --  ensuring that the Right argument is non-zero, and the effect of the
     --  call is not specified if a zero argument is passed.
  
     function AddA (Left, Right : Address) return Address;
     function SubA (Left, Right : Address) return Address;
     function MulA (Left, Right : Address) return Address;
     function DivA (Left, Right : Address) return Address;
     function ModA (Left, Right : Address) return Address;
  
     --  The semantics of the logical operations are those that apply to
     --  a modular type with the same length as Address, i.e. they provide
--- 47,75 ----
     --  a modular type with the same length as Address, i.e. they provide
     --  twos complement wrap around arithmetic treating the address value
     --  as an unsigned value, with no overflow checking.
!    --
     --  Note that we do not use the infix names for these operations to
     --  avoid problems with ambiguities coming from declarations in package
     --  Standard (which may or may not be visible depending on the exact
     --  form of the declaration of type System.Address).
!    --
     --  For addition, subtraction, and multiplication, the effect of overflow
     --  is 2's complement wrapping (as though the type Address were unsigned).
!    --
     --  For division and modulus operations, the caller is responsible for
     --  ensuring that the Right argument is non-zero, and the effect of the
     --  call is not specified if a zero argument is passed.
  
     function AddA (Left, Right : Address) return Address;
+    --  Computes the sum of ``Left`` and ``Right``
     function SubA (Left, Right : Address) return Address;
+    --  Computes the difference between ``Left`` and ``Right``
     function MulA (Left, Right : Address) return Address;
+    --  Computes the product of ``Left`` and ``Right``
     function DivA (Left, Right : Address) return Address;
+    --  Computes the quotient of ``Left`` and ``Right``
     function ModA (Left, Right : Address) return Address;
+    --  Computes the modulus of ``Left`` and ``Right``
  
     --  The semantics of the logical operations are those that apply to
     --  a modular type with the same length as Address, i.e. they provide
*************** package System.Address_Operations is
*** 72,78 ****
--- 77,85 ----
     --  bit if Address is a signed integer type).
  
     function AndA (Left, Right : Address) return Address;
+    --  Computes the bit-wise 'and' mask of ``Left`` and ``Right``
     function OrA  (Left, Right : Address) return Address;
+    --  Computes the bit-wise 'or' mask of ``Left`` and ``Right``
  
     pragma Inline_Always (AddA);
     pragma Inline_Always (SubA);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aoinar.adb gcc-15.1.0/gcc/ada/libgnat/s-aoinar.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-aoinar.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aoinar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aoinar.ads gcc-15.1.0/gcc/ada/libgnat/s-aoinar.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-aoinar.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aoinar.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aomoar.adb gcc-15.1.0/gcc/ada/libgnat/s-aomoar.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-aomoar.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aomoar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aomoar.ads gcc-15.1.0/gcc/ada/libgnat/s-aomoar.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-aomoar.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aomoar.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aotase.adb gcc-15.1.0/gcc/ada/libgnat/s-aotase.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-aotase.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aotase.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aotase.ads gcc-15.1.0/gcc/ada/libgnat/s-aotase.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-aotase.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aotase.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aridou.adb gcc-15.1.0/gcc/ada/libgnat/s-aridou.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-aridou.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aridou.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 54,59 ****
--- 54,63 ----
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
  
+    pragma Warnings
+      (Off, "statement has no effect",
+       Reason => "Ghost code on dead paths is used for verification only");
+ 
     function To_Uns is new Ada.Unchecked_Conversion (Double_Int, Double_Uns);
     function To_Int is new Ada.Unchecked_Conversion (Double_Uns, Double_Int);
  
*************** is
*** 123,129 ****
     function "abs" (X : Double_Int) return Double_Uns is
       (if X = Double_Int'First
        then Double_Uns'(2 ** (Double_Size - 1))
!       else Double_Uns (Double_Int'(abs X)));
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Double_Int'First.
  
--- 127,135 ----
     function "abs" (X : Double_Int) return Double_Uns is
       (if X = Double_Int'First
        then Double_Uns'(2 ** (Double_Size - 1))
!       else Double_Uns (Double_Int'(abs X)))
!    with Post => abs Big (X) = Big ("abs"'Result),
!         Annotate => (GNATprove, Hide_Info, "Expression_Function_Body");
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Double_Int'First.
  
*************** is
*** 146,153 ****
                      + Big_2xxSingle * Big (Double_Uns (X2))
                                      + Big (Double_Uns (X3)))
     with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
     --  X1&X2&X3 as a big integer
  
     function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean
--- 152,158 ----
                      + Big_2xxSingle * Big (Double_Uns (X2))
                                      + Big (Double_Uns (X3)))
     with
!      Ghost;
     --  X1&X2&X3 as a big integer
  
     function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean
*************** is
*** 186,192 ****
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
  
!    procedure Raise_Error;
     pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
--- 191,198 ----
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with
!      Exceptional_Cases => (Constraint_Error => True);
     pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
*************** is
*** 203,209 ****
     procedure Lemma_Abs_Commutation (X : Double_Int)
     with
       Ghost,
!      Post => abs (Big (X)) = Big (Double_Uns'(abs X));
  
     procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
     with
--- 209,215 ----
     procedure Lemma_Abs_Commutation (X : Double_Int)
     with
       Ghost,
!      Post => abs Big (X) = Big (Double_Uns'(abs X));
  
     procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
     with
*************** is
*** 220,227 ****
     with
       Ghost,
       Pre  => In_Double_Int_Range (X),
!      Post => abs (X) <= Big_2xxDouble_Minus_1
!        and then In_Double_Int_Range (-abs (X));
  
     procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer)
     with
--- 226,233 ----
     with
       Ghost,
       Pre  => In_Double_Int_Range (X),
!      Post => abs X <= Big_2xxDouble_Minus_1
!        and then In_Double_Int_Range (-abs X);
  
     procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer)
     with
*************** is
*** 971,977 ****
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X), Big (Y) * Big (Z)) then
!             null;
           end if;
        end Prove_Rounding_Case;
  
--- 977,983 ----
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X), Big (Y) * Big (Z)) then
!             pragma Assert (abs Big_Q = Big (Qu));
           end if;
        end Prove_Rounding_Case;
  
*************** is
*** 1603,1608 ****
--- 1609,1615 ----
           pragma Loop_Invariant (XX = Shift_Right (X, J));
           pragma Loop_Invariant (XX = X / Double_Uns'(2) ** J);
        end loop;
+       Lemma_Div_Commutation (X, Double_Uns'(2) ** Shift);
     end Lemma_Shift_Right;
  
     ------------------------------
*************** is
*** 1753,1759 ****
                                               + Big (Double_Uns (Lo (T1))));
           pragma Assert (Mult <= Big_2xxDouble_Minus_1);
           Lemma_Mult_Commutation (X, Y);
!          pragma Assert (Mult = abs (Big (X * Y)));
           Lemma_Word_Commutation (Lo (T2));
           pragma Assert (Mult = Big (Double_Uns'(2 ** Single_Size)
                            * Double_Uns (Lo (T2)))
--- 1760,1766 ----
                                               + Big (Double_Uns (Lo (T1))));
           pragma Assert (Mult <= Big_2xxDouble_Minus_1);
           Lemma_Mult_Commutation (X, Y);
!          pragma Assert (Mult = abs Big (X * Y));
           Lemma_Word_Commutation (Lo (T2));
           pragma Assert (Mult = Big (Double_Uns'(2 ** Single_Size)
                            * Double_Uns (Lo (T2)))
*************** is
*** 1896,1904 ****
     procedure Raise_Error is
     begin
        raise Constraint_Error with "Double arithmetic overflow";
-       pragma Annotate
-         (GNATprove, Intentional, "exception might be raised",
-          "Procedure Raise_Error is called to signal input errors");
     end Raise_Error;
  
     -------------------
--- 1903,1908 ----
*************** is
*** 2024,2029 ****
--- 2028,2042 ----
        --  Proves correctness of the multiplication of divisor by quotient to
        --  compute amount to subtract.
  
+       procedure Prove_Mult_Decomposition_Split2
+         (D1, D2, D2_Hi, D2_Lo, D3, D4 : Big_Integer)
+       with
+         Ghost,
+         Pre  => Is_Mult_Decomposition (D1, D2, D3, D4)
+           and then D2 = Big_2xxSingle * D2_Hi + D2_Lo,
+         Post => Is_Mult_Decomposition (D1 + D2_Hi, D2_Lo, D3, D4);
+       --  Proves decomposition of Mult after splitting second component
+ 
        procedure Prove_Mult_Decomposition_Split3
          (D1, D2, D3, D3_Hi, D3_Lo, D4 : Big_Integer)
        with
*************** is
*** 2326,2334 ****
                Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
                              + Big_2xxSingle * Big (T3)
                                              + Big (Double_Uns (S3)),
!               Big_2xxSingle * Big (Double_Uns (Lo (T2)))
!             + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
!             = Big_2xxSingle * Big (T3)));
           pragma Assert (Double_Uns (Hi (T3)) + Hi (T2) = Double_Uns (S1));
           Lemma_Add_Commutation (Double_Uns (Hi (T3)), Hi (T2));
           pragma Assert
--- 2339,2349 ----
                Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
                              + Big_2xxSingle * Big (T3)
                                              + Big (Double_Uns (S3)),
!               By (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
!                + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
!                = Big_2xxSingle * Big (T3),
!                Double_Uns (Lo (T2))
!                + Double_Uns (Hi (T1)) = T3)));
           pragma Assert (Double_Uns (Hi (T3)) + Hi (T2) = Double_Uns (S1));
           Lemma_Add_Commutation (Double_Uns (Hi (T3)), Hi (T2));
           pragma Assert
*************** is
*** 2340,2345 ****
--- 2355,2368 ----
        end Prove_Multiplication;
  
        -------------------------------------
+       -- Prove_Mult_Decomposition_Split2 --
+       -------------------------------------
+ 
+       procedure Prove_Mult_Decomposition_Split2
+         (D1, D2, D2_Hi, D2_Lo, D3, D4 : Big_Integer)
+       is null;
+ 
+       -------------------------------------
        -- Prove_Mult_Decomposition_Split3 --
        -------------------------------------
  
*************** is
*** 2441,2447 ****
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X) * Big (Y), Big (Z)) then
!             null;
           end if;
        end Prove_Rounding_Case;
  
--- 2464,2474 ----
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X) * Big (Y), Big (Z)) then
!             pragma Assert
!               (abs Big_Q =
!                  (if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2)
!                   then abs Quot + 1
!                   else abs Quot));
           end if;
        end Prove_Rounding_Case;
  
*************** is
*** 2487,2493 ****
           pragma Assert
             (Big (Double_Uns (D (2))) + 1 <= Big (Double_Uns (Zlo)));
           Lemma_Div_Definition (T1, Zlo, T1 / Zlo, T1 rem Zlo);
!          pragma Assert (Double_Uns (Lo (T1 rem Zlo)) = T1 rem Zlo);
           Lemma_Hi_Lo (T2, Lo (T1 rem Zlo), D (4));
           pragma Assert (T1 rem Zlo < Double_Uns (Zlo));
           pragma Assert (T1 rem Zlo + Double_Uns'(1) <= Double_Uns (Zlo));
--- 2514,2523 ----
           pragma Assert
             (Big (Double_Uns (D (2))) + 1 <= Big (Double_Uns (Zlo)));
           Lemma_Div_Definition (T1, Zlo, T1 / Zlo, T1 rem Zlo);
!          pragma Assert
!            (By (Lo (T1 rem Zlo) = Hi (T2),
!               By (Double_Uns (Lo (T1 rem Zlo)) = T1 rem Zlo,
!                 T1 rem Zlo <= Double_Uns (Zlo))));
           Lemma_Hi_Lo (T2, Lo (T1 rem Zlo), D (4));
           pragma Assert (T1 rem Zlo < Double_Uns (Zlo));
           pragma Assert (T1 rem Zlo + Double_Uns'(1) <= Double_Uns (Zlo));
*************** is
*** 2496,2519 ****
           pragma Assert (Big (T1 rem Zlo) + 1 <= Big (Double_Uns (Zlo)));
           Lemma_Div_Definition (T2, Zlo, T2 / Zlo, Ru);
           pragma Assert
!            (Mult = Big (Double_Uns (Zlo)) *
!               (Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo)) + Big (Ru));
!          pragma Assert (Big_2xxSingle * Big (Double_Uns (D (2)))
!                                       + Big (Double_Uns (D (3)))
!                         < Big_2xxSingle * (Big (Double_Uns (D (2))) + 1));
           Lemma_Div_Lt (Big (T1), Big_2xxSingle, Big (Double_Uns (Zlo)));
           Lemma_Div_Commutation (T1, Double_Uns (Zlo));
           Lemma_Lo_Is_Ident (T1 / Zlo);
           pragma Assert
             (Big (T2) <= Big_2xxSingle * (Big (Double_Uns (Zlo)) - 1)
                                        + Big (Double_Uns (D (4))));
           Lemma_Div_Lt (Big (T2), Big_2xxSingle, Big (Double_Uns (Zlo)));
           Lemma_Div_Commutation (T2, Double_Uns (Zlo));
           Lemma_Lo_Is_Ident (T2 / Zlo);
-          Lemma_Hi_Lo (Qu, Lo (T1 / Zlo), Lo (T2 / Zlo));
           Lemma_Substitution (Mult, Big (Double_Uns (Zlo)),
                               Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo),
                               Big (Qu), Big (Ru));
           Lemma_Lt_Commutation (Ru, Double_Uns (Zlo));
           Lemma_Rev_Div_Definition
             (Mult, Big (Double_Uns (Zlo)), Big (Qu), Big (Ru));
--- 2526,2551 ----
           pragma Assert (Big (T1 rem Zlo) + 1 <= Big (Double_Uns (Zlo)));
           Lemma_Div_Definition (T2, Zlo, T2 / Zlo, Ru);
           pragma Assert
!            (By (Big_2xxSingle * Big (Double_Uns (D (2)))
!                 + Big (Double_Uns (D (3)))
!                 < Big_2xxSingle * (Big (Double_Uns (D (2))) + 1),
!               Mult = Big (Double_Uns (Zlo)) *
!               (Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo)) + Big (Ru)));
           Lemma_Div_Lt (Big (T1), Big_2xxSingle, Big (Double_Uns (Zlo)));
           Lemma_Div_Commutation (T1, Double_Uns (Zlo));
           Lemma_Lo_Is_Ident (T1 / Zlo);
           pragma Assert
             (Big (T2) <= Big_2xxSingle * (Big (Double_Uns (Zlo)) - 1)
                                        + Big (Double_Uns (D (4))));
+          Lemma_Hi_Lo (Qu, Lo (T1 / Zlo), Lo (T2 / Zlo));
           Lemma_Div_Lt (Big (T2), Big_2xxSingle, Big (Double_Uns (Zlo)));
           Lemma_Div_Commutation (T2, Double_Uns (Zlo));
           Lemma_Lo_Is_Ident (T2 / Zlo);
           Lemma_Substitution (Mult, Big (Double_Uns (Zlo)),
                               Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo),
                               Big (Qu), Big (Ru));
+          pragma Assert
+            (By (Ru < Double_Uns (Zlo), Ru = T2 rem Zlo));
           Lemma_Lt_Commutation (Ru, Double_Uns (Zlo));
           Lemma_Rev_Div_Definition
             (Mult, Big (Double_Uns (Zlo)), Big (Qu), Big (Ru));
*************** is
*** 2601,2634 ****
              T2 := Double_Uns'(Xhi * Yhi);
  
              Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
  
              T1 := T3 + Lo (T2);
              D (2) := Lo (T1);
  
              Lemma_Add_Commutation (T3, Lo (T2));
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
  
              D (1) := Hi (T2) + Hi (T1);
  
!             pragma Assert
!               (Double_Uns (Hi (T2)) + Hi (T1) = Double_Uns (D (1)));
!             Lemma_Add_Commutation (Double_Uns (Hi (T2)), Hi (T1));
!             pragma Assert
!               (Big (Double_Uns (Hi (T2))) + Big (Double_Uns (Hi (T1))) =
!                    Big (Double_Uns (D (1))));
!             pragma Assert
!               (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                       D2 => Big (Double_Uns (D (2))),
!                                       D3 => Big (Double_Uns (D (3))),
!                                       D4 => Big (Double_Uns (D (4)))));
           else
              D (1) := 0;
  
!             pragma Assert
!               (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                       D2 => Big (Double_Uns (D (2))),
!                                       D3 => Big (Double_Uns (D (3))),
!                                       D4 => Big (Double_Uns (D (4)))));
           end if;
  
        else
--- 2633,2683 ----
              T2 := Double_Uns'(Xhi * Yhi);
  
              Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
+             pragma Assert
+               (Is_Mult_Decomposition
+                  (D1 => Big (Double_Uns (Hi (T2))),
+                   D2 => Big (T3) + Big (Double_Uns (Lo (T2))),
+                   D3 => Big (Double_Uns (D (3))),
+                   D4 => Big (Double_Uns (D (4)))));
  
              T1 := T3 + Lo (T2);
              D (2) := Lo (T1);
  
              Lemma_Add_Commutation (T3, Lo (T2));
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
+             Prove_Mult_Decomposition_Split2
+               (D1    => Big (Double_Uns (Hi (T2))),
+                D2    => Big (T1),
+                D2_Lo => Big (Double_Uns (Lo (T1))),
+                D2_Hi => Big (Double_Uns (Hi (T1))),
+                D3    => Big (Double_Uns (D (3))),
+                D4    => Big (Double_Uns (D (4))));
  
              D (1) := Hi (T2) + Hi (T1);
  
!             pragma Assert_And_Cut
!               (D'Initialized
!                and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                           D2 => Big (Double_Uns (D (2))),
!                                           D3 => Big (Double_Uns (D (3))),
!                                           D4 => Big (Double_Uns (D (4)))));
           else
+             pragma Assert
+               (Is_Mult_Decomposition
+                  (D1 => 0,
+                   D2 => Big (Double_Uns (D (2))),
+                   D3 => Big (Double_Uns (D (3)))
+                   + Big (Double_Uns (Xhi)) * Big (Yu),
+                   D4 => Big (Double_Uns (D (4)))));
+ 
              D (1) := 0;
  
!             pragma Assert_And_Cut
!               (D'Initialized
!                and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                           D2 => Big (Double_Uns (D (2))),
!                                           D3 => Big (Double_Uns (D (3))),
!                                           D4 => Big (Double_Uns (D (4)))));
           end if;
  
        else
*************** is
*** 2681,2686 ****
--- 2730,2742 ----
           end if;
  
           D (1) := 0;
+ 
+          pragma Assert_And_Cut
+            (D'Initialized
+             and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
+                                        D2 => Big (Double_Uns (D (2))),
+                                        D3 => Big (Double_Uns (D (3))),
+                                        D4 => Big (Double_Uns (D (4)))));
        end if;
  
        pragma Assert_And_Cut
*************** is
*** 2909,2920 ****
                   (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
              end;
           end loop;
  
           Zhi := Hi (Zu);
           Zlo := Lo (Zu);
  
-          pragma Assert (Shift = 1);
-          pragma Assert (Mask = Shift_Left (Single_Uns'Last, Single_Size - 1));
           pragma Assert ((Zhi and Mask) /= 0);
           pragma Assert (Zhi >= 2 ** (Single_Size - 1));
           pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
--- 2965,2981 ----
                   (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
              end;
           end loop;
+          pragma Assert_And_Cut
+            (Scale <= Single_Size - 1
+             and then (Hi (Zu) and Mask) /= 0
+             and then Mask = Shift_Left (Single_Uns'Last, Single_Size - 1)
+             and then Zu = Shift_Left (abs Z, Scale)
+             and then Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale)
+             and then Mult < Big_2xxDouble * Big (Double_Uns'(abs Z)));
  
           Zhi := Hi (Zu);
           Zlo := Lo (Zu);
  
           pragma Assert ((Zhi and Mask) /= 0);
           pragma Assert (Zhi >= 2 ** (Single_Size - 1));
           pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
*************** is
*** 2944,2957 ****
           D (3) := Lo (T2) or Hi (T3);
           D (4) := Lo (T3);
  
!          pragma Assert (Big (Double_Uns (Hi (T1))) = Big (Double_Uns (D (1))));
!          pragma Assert
!            (Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
!             * Big (Double_Uns (Hi (T1)))
!             = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
!             * Big (Double_Uns (D (1))));
           Lemma_Substitution (Big_2xxDouble * Big (Zu), Big_2xxDouble, Big (Zu),
                               Big (Double_Uns'(abs Z)) * Big_2xx (Scale), 0);
           Lemma_Lt_Mult (Mult, Big_2xxDouble * Big (Double_Uns'(abs Z)),
                          Big_2xx (Scale), Big_2xxDouble * Big (Zu));
           pragma Assert (Mult >= Big_0);
--- 3005,3015 ----
           D (3) := Lo (T2) or Hi (T3);
           D (4) := Lo (T3);
  
!          pragma Assert (D (1) = Hi (T1) and D (2) = (Lo (T1) or Hi (T2))
!                         and D (3) = (Lo (T2) or Hi (T3)) and D (4) = Lo (T3));
           Lemma_Substitution (Big_2xxDouble * Big (Zu), Big_2xxDouble, Big (Zu),
                               Big (Double_Uns'(abs Z)) * Big_2xx (Scale), 0);
+          pragma Assert (Mult < Big_2xxDouble * Big (Double_Uns'(abs Z)));
           Lemma_Lt_Mult (Mult, Big_2xxDouble * Big (Double_Uns'(abs Z)),
                          Big_2xx (Scale), Big_2xxDouble * Big (Zu));
           pragma Assert (Mult >= Big_0);
*************** is
*** 3035,3042 ****
                    Lemma_Concat_Definition (D (J), D (J + 1));
                    Lemma_Big_Of_Double_Uns_Of_Single_Uns (D (J + 2));
                    pragma Assert (Big_2xxSingle > Big (Double_Uns (D (J + 2))));
!                   pragma Assert (Big3 (D (J), D (J + 1), 0) + Big_2xxSingle
!                                  > Big3 (D (J), D (J + 1), D (J + 2)));
                    pragma Assert (Big (Double_Uns'(0)) = 0);
                    pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle =
                      Big_2xxSingle * (Big_2xxSingle * Big (Double_Uns (D (J)))
--- 3093,3104 ----
                    Lemma_Concat_Definition (D (J), D (J + 1));
                    Lemma_Big_Of_Double_Uns_Of_Single_Uns (D (J + 2));
                    pragma Assert (Big_2xxSingle > Big (Double_Uns (D (J + 2))));
!                   pragma Assert
!                     (By (Big3 (D (J), D (J + 1), 0) + Big_2xxSingle
!                         > Big3 (D (J), D (J + 1), D (J + 2)),
!                     Big3 (D (J), D (J + 1), 0) =
!                        Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (J)))
!                     + Big_2xxSingle * Big (Double_Uns (D (J + 1)))));
                    pragma Assert (Big (Double_Uns'(0)) = 0);
                    pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle =
                      Big_2xxSingle * (Big_2xxSingle * Big (Double_Uns (D (J)))
*************** is
*** 3102,3108 ****
  
                 while not Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2)) loop
                    pragma Loop_Invariant
!                     (for all K in 1 .. J => Qd (K)'Initialized);
                    pragma Loop_Invariant (if J = 2 then Qd (1) = Qd1);
                    pragma Loop_Invariant
                      (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
--- 3164,3171 ----
  
                 while not Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2)) loop
                    pragma Loop_Invariant
!                     (Qd (1)'Initialized
!                      and (if J = 2 then Qd (2)'Initialized));
                    pragma Loop_Invariant (if J = 2 then Qd (1) = Qd1);
                    pragma Loop_Invariant
                      (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
*************** is
*** 3126,3164 ****
                    pragma Assert (Double_Uns (Qd (J)) - Double_Uns'(1)
                                   = Double_Uns (Qd (J) - 1));
                    pragma Assert (Big (Double_Uns'(1)) = 1);
-                   Lemma_Substitution (Big3 (S1, S2, S3), Big (Zu),
-                                       Big (Double_Uns (Qd (J))) - 1,
-                                       Big (Double_Uns (Qd (J) - 1)), 0);
  
                    declare
!                      Prev : constant Single_Uns := Qd (J) - 1 with Ghost;
                    begin
                       Qd (J) := Qd (J) - 1;
! 
!                      pragma Assert (Qd (J) = Prev);
!                      pragma Assert (Qd (J)'Initialized);
!                      if J = 2 then
!                         pragma Assert (Qd (J - 1)'Initialized);
!                      end if;
!                      pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
                    end;
  
                    pragma Assert
                      (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
                 end loop;
  
                 --  Now subtract S1&S2&S3 from D1&D2&D3 ready for next step
  
-                pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
-                pragma Assert
-                  (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
-                pragma Assert (Big3 (S1, S2, S3) >
-                                 Big3 (D (J), D (J + 1), D (J + 2)) - Big (Zu));
                 Inline_Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2));
  
!                Sub3 (D (J), D (J + 1), D (J + 2), S1, S2, S3);
  
-                pragma Assert (Big3 (D (J), D (J + 1), D (J + 2)) < Big (Zu));
                 if D (J) > 0 then
                    Lemma_Double_Big_2xxSingle;
                    pragma Assert (Big3 (D (J), D (J + 1), D (J + 2)) =
--- 3189,3245 ----
                    pragma Assert (Double_Uns (Qd (J)) - Double_Uns'(1)
                                   = Double_Uns (Qd (J) - 1));
                    pragma Assert (Big (Double_Uns'(1)) = 1);
  
                    declare
!                      Prev : constant Single_Uns := Qd (J) with Ghost;
                    begin
                       Qd (J) := Qd (J) - 1;
!                      Lemma_Substitution (Big3 (S1, S2, S3), Big (Zu),
!                                          Big (Double_Uns (Prev)) - 1,
!                                          Big (Double_Uns (Qd (J))), 0);
                    end;
  
                    pragma Assert
                      (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
                 end loop;
  
+                pragma Assert_And_Cut
+                  (Qd (1)'Initialized
+                   and then (if J = 2 then Qd (2)'Initialized and Qd (1) = Qd1)
+                   and then D'Initialized
+                   and then (if J = 2 then D234'Initialized)
+                   and then Big3 (D (J), D (J + 1), D (J + 2)) =
+                     (if J = 1 then D123 else D234)
+                   and then (if J = 1 then D4 = Big (Double_Uns (D (4))))
+                   and then Big3 (S1, S2, S3) =
+                       Big (Double_Uns (Qd (J))) * Big (Zu)
+                   and then Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2))
+                   and then Big3 (D (J), D (J + 1), D (J + 2)) -
+                     Big3 (S1, S2, S3) < Big (Zu));
+ 
                 --  Now subtract S1&S2&S3 from D1&D2&D3 ready for next step
  
                 Inline_Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2));
  
!                declare
!                   D4_G : constant Single_Uns := D (4) with Ghost;
!                begin
!                   Sub3 (D (J), D (J + 1), D (J + 2), S1, S2, S3);
!                   pragma Assert (if J = 1 then D (4) = D4_G);
!                   pragma Assert
!                     (By
!                        (D'Initialized,
!                         D (1)'Initialized and D (2)'Initialized
!                         and D (3)'Initialized and D (4)'Initialized));
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) =
!                      (if J = 1 then D123 else D234)
!                      - Big3 (S1, S2, S3));
!                end;
! 
!                pragma Assert
!                  (Big3 (D (J), D (J + 1), D (J + 2)) < Big (Zu));
  
                 if D (J) > 0 then
                    Lemma_Double_Big_2xxSingle;
                    pragma Assert (Big3 (D (J), D (J + 1), D (J + 2)) =
*************** is
*** 3217,3222 ****
--- 3298,3314 ----
  
                 end if;
              end loop;
+ 
+             pragma Assert_And_Cut
+               (Qd (1)'Initialized and then Qd (2)'Initialized
+                and then D'Initialized
+                and then Big_2xxSingle * Big (Double_Uns (D (3)))
+                    + Big (Double_Uns (D (4))) < Big (Zu)
+                and then Mult * Big_2xx (Scale) =
+                    Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
+                                  + Big (Double_Uns (Qd (2))) * Big (Zu)
+                    + Big_2xxSingle * Big (Double_Uns (D (3)))
+                                    + Big (Double_Uns (D (4))));
           end;
  
           --  The two quotient digits are now set, and the remainder of the
*************** is
*** 3226,3241 ****
           --  We rescale the divisor as well, to make the proper comparison
           --  for rounding below.
  
-          pragma Assert (for all K in 1 .. 2 => Qd (K)'Initialized);
           Qu := Qd (1) & Qd (2);
           Ru := D (3) & D (4);
  
-          pragma Assert
-            (Mult * Big_2xx (Scale) =
-               Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
-                             + Big (Double_Uns (Qd (2))) * Big (Zu)
-             + Big_2xxSingle * Big (Double_Uns (D (3)))
-                             + Big (Double_Uns (D (4))));
           Lemma_Hi_Lo (Qu, Qd (1), Qd (2));
           Lemma_Hi_Lo (Ru, D (3), D (4));
           Lemma_Substitution
--- 3318,3326 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-aridou.ads gcc-15.1.0/gcc/ada/libgnat/s-aridou.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-aridou.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-aridou.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides software routines for doing arithmetic on "double"
! --  signed integer values in cases where either overflow checking is required,
! --  or intermediate results are longer than the result type.
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This generic package provides software routines for doing arithmetic on
! --  double word signed integer values in cases where either overflow checking
! --  is required, or intermediate results are longer than the result type.
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
*************** is
*** 101,114 ****
       Pre  => In_Double_Int_Range (Big (X) + Big (Y)),
       Post => Add_With_Ovflo_Check'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows Double_Int,
!    --  otherwise returns the signed integer sum.
  
     function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
       Pre  => In_Double_Int_Range (Big (X) - Big (Y)),
       Post => Subtract_With_Ovflo_Check'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows Double_Int,
!    --  otherwise returns the signed integer difference.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
--- 101,130 ----
       Pre  => In_Double_Int_Range (Big (X) + Big (Y)),
       Post => Add_With_Ovflo_Check'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows Double_Int,
!    --  otherwise returns this sum of operands as Double_Int.
!    --
!    --  The sum of ``X`` and ``Y`` is first computed using wrap-around
!    --  semantics.
!    --
!    --  If the sign of ``X`` and ``Y`` are opposed, no overflow is possible and
!    --  the result is correct.
!    --
!    --  Otherwise, ``X`` and ``Y`` have the same sign; if the sign of the result
!    --  is not identical to ``X`` (or ``Y``), then an overflow occurred and
!    --  the exception *Constraint_Error* is raised; otherwise the result is
!    --  correct.
  
     function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
       Pre  => In_Double_Int_Range (Big (X) - Big (Y)),
       Post => Subtract_With_Ovflo_Check'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows Double_Int,
!    --  otherwise returns this difference of operands as Double_Int.
!    --
!    --  The logic of the implementation is reversed from *Add_With_Ovflo_Check*:
!    --  if ``X`` and ``Y`` have the same sign, no overflow is checked, otherwise
!    --  a sign of the result is compared with the sign of ``X`` to check for
!    --  overflow.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
*************** is
*** 116,123 ****
       Post => Multiply_With_Ovflo_Check'Result = X * Y;
     pragma Convention (C, Multiply_With_Ovflo_Check);
     --  Raises Constraint_Error if product of operands overflows Double_Int,
!    --  otherwise returns the signed integer product. Gigi may also call this
!    --  routine directly.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Double_Int'(0))
--- 132,144 ----
       Post => Multiply_With_Ovflo_Check'Result = X * Y;
     pragma Convention (C, Multiply_With_Ovflo_Check);
     --  Raises Constraint_Error if product of operands overflows Double_Int,
!    --  otherwise returns this product of operands as Double_Int. The code
!    --  generator may also generate direct calls to this routine.
!    --
!    --  The multiplication is done using pencil and paper algorithm applied to
!    --  Single_Uns, that is to say done on unsigned values, then the correct
!    --  signed value is returned. Overflow check is performed by looking at
!    --  higher digits.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Double_Int'(0))
*************** is
*** 153,165 ****
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (X * Y) / Z, storing the quotient in Q
!    --  and the remainder in R. Constraint_Error is raised if Z is zero,
!    --  or if the quotient does not fit in Double_Int. Round indicates if
!    --  the result should be rounded. If Round is False, then Q, R are
!    --  the normal quotient and remainder from a truncating division.
!    --  If Round is True, then Q is the rounded quotient. The remainder
!    --  R is not affected by the setting of the Round flag.
  
     procedure Double_Divide
       (X, Y, Z : Double_Int;
--- 174,205 ----
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
!    --  in ``Q`` and the remainder in ``R``.
!    --
!    --  Constraint_Error is raised if ``Z`` is zero, or if the quotient does not
!    --  fit in ``Double_Int``.
!    --
!    --  ``Round`` indicates if the result should be rounded. If ``Round`` is
!    --  False, then ``Q``, ``R`` are the normal quotient and remainder from a
!    --  truncating division. If ``Round`` is True, then ``Q`` is the rounded
!    --  quotient. The remainder ``R`` is not affected by the setting of the
!    --  ``Round`` flag.
!    --
!    --  The multiplication is done using pencil and paper algorithm applied to
!    --  Single_Uns, that is to say done on unsigned values. The result is a
!    --  pair of Double_Uns values.
!    --
!    --  The overflow is detected on the intermediate value.
!    --
!    --  If Z is a Single_Uns value, the division is done using pencil and paper
!    --  algorithm.
!    --
!    --  Otherwise, the division is performed using the algorithm D from section
!    --  4.3.1 of "The Art of Computer Programming Vol. 2" [TACP2]. Rounding is
!    --  applied on the result.
!    --
!    --  Finally, the sign is applied to the result and returned.
  
     procedure Double_Divide
       (X, Y, Z : Double_Int;
*************** is
*** 180,191 ****
                                        Big (X) / (Big (Y) * Big (Z)), Big (R))
            else
              Big (Q) = Big (X) / (Big (Y) * Big (Z)));
!    --  Performs the division X / (Y * Z), storing the quotient in Q and
!    --  the remainder in R. Constraint_Error is raised if Y or Z is zero,
!    --  or if the quotient does not fit in Double_Int. Round indicates if the
!    --  result should be rounded. If Round is False, then Q, R are the normal
!    --  quotient and remainder from a truncating division. If Round is True,
!    --  then Q is the rounded quotient. The remainder R is not affected by the
!    --  setting of the Round flag.
  
  end System.Arith_Double;
--- 220,245 ----
                                        Big (X) / (Big (Y) * Big (Z)), Big (R))
            else
              Big (Q) = Big (X) / (Big (Y) * Big (Z)));
!    --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
!    --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
!    --  ``Z`` is zero, or if the quotient does not fit in ``Double_Int``.
!    --
!    --  ``Round`` indicates if the result should be rounded. If ``Round`` is
!    --  False, then ``Q``, ``R`` are the normal quotient and remainder from a
!    --  truncating division. If ``Round`` is True, then ``Q`` is the rounded
!    --  quotient. The remainder ``R`` is not affected by the setting of the
!    --  ``Round`` flag.
!    --
!    --  Division by 0 is first detected.
!    --
!    --  The intermediate value ``Y`` * ``Z`` is then computed as a pair of
!    --  Double_Uns value. that is to say done on unsigned values.
!    --
!    --  If the high Double_Uns of the intermediate value is not 0, then 0 is
!    --  returned. The overflow case of the largest negative number divided by
!    --  -1 is detected here.
!    --
!    --  Double_Uns division is then performed, the result is rounded, its sign
!    --  is corrected, and then returned.
  
  end System.Arith_Double;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit128.adb gcc-15.1.0/gcc/ada/libgnat/s-arit128.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-arit128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit128.ads gcc-15.1.0/gcc/ada/libgnat/s-arit128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-arit128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 96,102 ****
     pragma Export (C, Multiply_With_Ovflo_Check128, "__gnat_mulv128");
     --  Raises Constraint_Error if product of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer product.
!    --  Gigi may also call this routine directly.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Int128'(0))
--- 96,102 ----
     pragma Export (C, Multiply_With_Ovflo_Check128, "__gnat_mulv128");
     --  Raises Constraint_Error if product of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer product.
!    --  The code generator may also generate direct calls to this routine.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Int128'(0))
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit32.adb gcc-15.1.0/gcc/ada/libgnat/s-arit32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-arit32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 119,125 ****
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
  
!    procedure Raise_Error;
     pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
--- 119,127 ----
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with
!      Always_Terminates,
!      Exceptional_Cases => (Constraint_Error => True);
     pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
*************** is
*** 130,136 ****
     procedure Lemma_Abs_Commutation (X : Int32)
     with
       Ghost,
!      Post => abs (Big (X)) = Big (Uns32'(abs X));
  
     procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
     with
--- 132,138 ----
     procedure Lemma_Abs_Commutation (X : Int32)
     with
       Ghost,
!      Post => abs Big (X) = Big (Uns32'(abs X));
  
     procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
     with
*************** is
*** 415,421 ****
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X) * Big (Y), Big (Z)) then
!             null;
           end if;
        end Prove_Rounding_Case;
  
--- 417,427 ----
        procedure Prove_Rounding_Case is
        begin
           if Same_Sign (Big (X) * Big (Y), Big (Z)) then
!             pragma Assert
!               (abs Big_Q =
!                  (if Ru > (Zu - Uns32'(1)) / Uns32'(2)
!                   then abs Quot + 1
!                   else abs Quot));
           end if;
        end Prove_Rounding_Case;
  
*************** is
*** 432,438 ****
        -- Prove_Signs --
        -----------------
  
!       procedure Prove_Signs is null;
  
     --  Start of processing for Scaled_Divide32
  
--- 438,451 ----
        -- Prove_Signs --
        -----------------
  
!       procedure Prove_Signs is
!       begin
!          if (X >= 0) = (Y >= 0) then
!             pragma Assert (Big (R) = Big_R and then Big (Q) = Big_Q);
!          else
!             pragma Assert (Big (R) = Big_R and then Big (Q) = Big_Q);
!          end if;
!       end Prove_Signs;
  
     --  Start of processing for Scaled_Divide32
  
*************** is
*** 483,488 ****
--- 496,503 ----
        Lemma_Div_Commutation (D, Uns64 (Zu));
        Lemma_Rem_Commutation (D, Uns64 (Zu));
  
+       pragma Assert (Uns64 (Qu) = D / Uns64 (Zu));
+       pragma Assert (Uns64 (Ru) = D rem Uns64 (Zu));
        pragma Assert (Big (Ru) = abs Big_R);
        pragma Assert (Big (Qu) = abs Quot);
        pragma Assert (Big (Zu) = Big (Uns32'(abs Z)));
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit32.ads gcc-15.1.0/gcc/ada/libgnat/s-arit32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-arit32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 106,117 ****
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (X * Y) / Z, storing the quotient in Q
!    --  and the remainder in R. Constraint_Error is raised if Z is zero,
!    --  or if the quotient does not fit in 32 bits. Round indicates if
!    --  the result should be rounded. If Round is False, then Q, R are
!    --  the normal quotient and remainder from a truncating division.
!    --  If Round is True, then Q is the rounded quotient. The remainder
!    --  R is not affected by the setting of the Round flag.
  
  end System.Arith_32;
--- 106,136 ----
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
!    --  in ``Q`` and the remainder in ``R``.
!    --
!    --  Constraint_Error is raised if ``Z`` is zero, or if the quotient does not
!    --  fit in 32-bits.
!    --
!    --  ``Round`` indicates if the result should be rounded. If ``Round`` is
!    --  False, then ``Q``, ``R`` are the normal quotient and remainder from a
!    --  truncating division. If ``Round`` is True, then ``Q`` is the rounded
!    --  quotient. The remainder ``R`` is not affected by the setting of the
!    --  ``Round`` flag.
!    --
!    --  The multiplication is done using pencil and paper algorithm using base
!    --  2**32. The multiplication is done on unsigned values. The result is a
!    --  128 bit value.
!    --
!    --  The overflow is detected on the intermediate value.
!    --
!    --  If Z is a 32 bit value, the division is done using pencil and paper
!    --  algorithm.
!    --
!    --  Otherwise, the division is performed using the algorithm D from section
!    --  4.3.1 of "The Art of Computer Programming Vol. 2" [TACP2]. Rounding is
!    --  applied on the result.
!    --
!    --  Finally, the sign is applied to the result and returned.
  
  end System.Arith_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit64.adb gcc-15.1.0/gcc/ada/libgnat/s-arit64.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-arit64.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit64.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 28,33 ****
--- 28,34 ----
  -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  --                                                                          --
  ------------------------------------------------------------------------------
+ pragma Assertion_Policy (Ghost => Ignore);
  
  with System.Arith_Double;
  
*************** is
*** 51,56 ****
--- 52,60 ----
     function Multiply_With_Ovflo_Check64 (X, Y : Int64) return Int64
       renames Impl.Multiply_With_Ovflo_Check;
  
+    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer
+      renames Impl.Round_Quotient;
+ 
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-arit64.ads gcc-15.1.0/gcc/ada/libgnat/s-arit64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-arit64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-arit64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 81,86 ****
--- 81,97 ----
       Post => Add_With_Ovflo_Check64'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows 64 bits,
     --  otherwise returns the 64-bit signed integer sum.
+    --
+    --  The sum of ``X`` and ``Y`` is first computed using wrap-around
+    --  semantics.
+    --
+    --  If the sign of ``X`` and ``Y`` are opposed, no overflow is possible and
+    --  the result is correct.
+    --
+    --  Otherwise, ``X`` and ``Y`` have the same sign; if the sign of the result
+    --  is not identical to ``X`` (or ``Y``), then an overflow occurred and
+    --  the exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
  
     function Subtract_With_Ovflo_Check64 (X, Y : Int64) return Int64
     with
*************** is
*** 88,93 ****
--- 99,109 ----
       Post => Subtract_With_Ovflo_Check64'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer difference.
+    --
+    --  The logic of the implementation is reversed from *Add_With_Ovflo_Check*:
+    --  if ``X`` and ``Y`` have the same sign, no overflow is checked, otherwise
+    --  a sign of the result is compared with the sign of ``X`` to check for
+    --  overflow.
  
     function Multiply_With_Ovflo_Check64 (X, Y : Int64) return Int64
     with
*************** is
*** 96,102 ****
     pragma Export (C, Multiply_With_Ovflo_Check64, "__gnat_mulv64");
     --  Raises Constraint_Error if product of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer product.
!    --  Gigi may also call this routine directly.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Int64'(0))
--- 112,123 ----
     pragma Export (C, Multiply_With_Ovflo_Check64, "__gnat_mulv64");
     --  Raises Constraint_Error if product of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer product.
!    --  The code generator may also generate direct calls to this routine.
!    --
!    --  The multiplication is done using pencil and paper algorithm using base
!    --  2**32. The multiplication is done on unsigned values, then the correct
!    --  signed value is returned. Overflow check is performed by looking at
!    --  higher digits.
  
     function Same_Sign (X, Y : Big_Integer) return Boolean is
       (X = Big (Int64'(0))
*************** is
*** 104,118 ****
          or else (X < Big (Int64'(0))) = (Y < Big (Int64'(0))))
     with Ghost;
  
!    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
!      (if abs R > (abs Y - Big (Int64'(1))) / Big (Int64'(2)) then
!        (if Same_Sign (X, Y) then Q + Big (Int64'(1))
!         else Q - Big (Int64'(1)))
!       else
!         Q)
!    with
       Ghost,
!      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
  
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
--- 125,139 ----
          or else (X < Big (Int64'(0))) = (Y < Big (Int64'(0))))
     with Ghost;
  
!    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer with
       Ghost,
!      Pre  => Y /= 0 and then Q = X / Y and then R = X rem Y,
!      Post => Round_Quotient'Result =
!        (if abs R > (abs Y - Big (Int64'(1))) / Big (Int64'(2)) then
!          (if Same_Sign (X, Y) then Q + Big (Int64'(1))
!           else Q - Big (Int64'(1)))
!         else
!           Q);
  
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
*************** is
*** 132,144 ****
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (X * Y) / Z, storing the quotient in Q
!    --  and the remainder in R. Constraint_Error is raised if Z is zero,
!    --  or if the quotient does not fit in 64 bits. Round indicates if
!    --  the result should be rounded. If Round is False, then Q, R are
!    --  the normal quotient and remainder from a truncating division.
!    --  If Round is True, then Q is the rounded quotient. The remainder
!    --  R is not affected by the setting of the Round flag.
  
     procedure Scaled_Divide
       (X, Y, Z : Int64;
--- 153,184 ----
                                        Big (X) * Big (Y) / Big (Z), Big (R))
            else
              Big (Q) = Big (X) * Big (Y) / Big (Z));
!    --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
!    --  in ``Q`` and the remainder in ``R``.
!    --
!    --  Constraint_Error is raised if ``Z`` is zero, or if the quotient does not
!    --  fit in 64-bits.
!    --
!    --  ``Round`` indicates if the result should be rounded. If ``Round`` is
!    --  False, then ``Q``, ``R`` are the normal quotient and remainder from a
!    --  truncating division. If ``Round`` is True, then ``Q`` is the rounded
!    --  quotient. The remainder ``R`` is not affected by the setting of the
!    --  ``Round`` flag.
!    --
!    --  The multiplication is done using pencil and paper algorithm using base
!    --  2**32. The multiplication is done on unsigned values. The result is a
!    --  128 bit value.
!    --
!    --  The overflow is detected on the intermediate value.
!    --
!    --  If Z is a 32 bit value, the division is done using pencil and paper
!    --  algorithm.
!    --
!    --  Otherwise, the division is performed using the algorithm D from section
!    --  4.3.1 of "The Art of Computer Programming Vol. 2" [TACP2]. Rounding is
!    --  applied on the result.
!    --
!    --  Finally, the sign is applied to the result and returned.
  
     procedure Scaled_Divide
       (X, Y, Z : Int64;
*************** is
*** 165,177 ****
                                        Big (X) / (Big (Y) * Big (Z)), Big (R))
            else
              Big (Q) = Big (X) / (Big (Y) * Big (Z)));
!    --  Performs the division X / (Y * Z), storing the quotient in Q and
!    --  the remainder in R. Constraint_Error is raised if Y or Z is zero,
!    --  or if the quotient does not fit in 64 bits. Round indicates if the
!    --  result should be rounded. If Round is False, then Q, R are the normal
!    --  quotient and remainder from a truncating division. If Round is True,
!    --  then Q is the rounded quotient. The remainder R is not affected by the
!    --  setting of the Round flag.
  
     procedure Double_Divide
       (X, Y, Z : Int64;
--- 205,231 ----
                                        Big (X) / (Big (Y) * Big (Z)), Big (R))
            else
              Big (Q) = Big (X) / (Big (Y) * Big (Z)));
!    --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
!    --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
!    --  ``Z`` is zero, or if the quotient does not fit in 64-bits.
!    --
!    --  ``Round`` indicates if the result should be rounded. If ``Round`` is
!    --  False, then ``Q``, ``R`` are the normal quotient and remainder from a
!    --  truncating division. If ``Round`` is True, then ``Q`` is the rounded
!    --  quotient. The remainder ``R`` is not affected by the setting of the
!    --  ``Round`` flag.
!    --
!    --  Division by 0 is first detected.
!    --
!    --  The intermediate value ``Y`` * ``Z`` is then computed on 128 bits. The
!    --  multiplication is done on unsigned values.
!    --
!    --  If the high 64 bits of the intermediate value is not 0, then 0 is
!    --  returned. The overflow case of the largest negative number divided by
!    --  -1 is detected here.
!    --
!    --  64-bit division is then performed, the result is rounded, its sign is
!    --  corrected, and then returned.
  
     procedure Double_Divide
       (X, Y, Z : Int64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-assert.adb gcc-15.1.0/gcc/ada/libgnat/s-assert.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-assert.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-assert.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-assert.ads gcc-15.1.0/gcc/ada/libgnat/s-assert.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-assert.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-assert.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides support for assertions (including pragma Assert,
! --  pragma Debug, and Precondition/Postcondition/Predicate/Invariant aspects
! --  and their corresponding pragmas).
  
  --  This unit may be used directly from an application program by providing
  --  an appropriate WITH, and the interface can be expected to remain stable.
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides support for assertions (including ``pragma Assert``,
! --  ``pragma Debug``, and Precondition/Postcondition/Predicate/Invariant
! --  aspects and their corresponding pragmas).
  
  --  This unit may be used directly from an application program by providing
  --  an appropriate WITH, and the interface can be expected to remain stable.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atacco.adb gcc-15.1.0/gcc/ada/libgnat/s-atacco.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-atacco.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atacco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atacco.ads gcc-15.1.0/gcc/ada/libgnat/s-atacco.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atacco.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atacco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,41 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  Provides the means to convert addresses to access types as defined by ARM
+ --  13.7.2.
+ 
  generic
     type Object (<>) is limited private;
  
*************** package System.Address_To_Access_Convers
*** 46,51 ****
--- 49,55 ----
  
     type Object_Pointer is access all Object;
     for Object_Pointer'Size use Standard'Address_Size;
+    --  Access type definition to the object
  
     pragma No_Strict_Aliasing (Object_Pointer);
     --  Strictly speaking, this routine should not be used to generate pointers
*************** package System.Address_To_Access_Convers
*** 56,63 ****
--- 60,74 ----
  
     function To_Pointer (Value : Address)        return Object_Pointer with
       Global => null;
+    --  Return ``Value`` as an access to *Object*.
+    --
+    --  This function is an intrinsic so implemented by the compiler.
+ 
     function To_Address (Value : Object_Pointer) return Address with
       SPARK_Mode => Off;
+    --  Return ``Value`` as an *Address*.
+    --
+    --  This function is an intrinsic so implemented by the compiler.
  
     pragma Import (Intrinsic, To_Pointer);
     pragma Import (Intrinsic, To_Address);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atocou.adb gcc-15.1.0/gcc/ada/libgnat/s-atocou.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-atocou.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atocou.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atocou.ads gcc-15.1.0/gcc/ada/libgnat/s-atocou.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atocou.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atocou.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides atomic counter on platforms where it is supported:
  --    - all Alpha platforms
  --    - all AARCH64 platforms
  --    - all ARM platforms
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides atomic counters routines
! 
! --  This package support the following platforms:
  --    - all Alpha platforms
  --    - all AARCH64 platforms
  --    - all ARM platforms
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atocou__builtin.adb gcc-15.1.0/gcc/ada/libgnat/s-atocou__builtin.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-atocou__builtin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atocou__builtin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements Atomic_Counter and Atomic_Unsigned operations for
! --  platforms where GCC supports __atomic_add_fetch and __atomic_sub_fetch
! --  builtins.
  
  with System.Atomic_Primitives; use System.Atomic_Primitives;
  
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements unsigned and signed atomic counters using GCC's
! --  __atomic_add_fetch and __atomic_sub_fetch builtins.
  
  with System.Atomic_Primitives; use System.Atomic_Primitives;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atoope.ads gcc-15.1.0/gcc/ada/libgnat/s-atoope.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atoope.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atoope.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atopex.adb gcc-15.1.0/gcc/ada/libgnat/s-atopex.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-atopex.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atopex.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atopex.ads gcc-15.1.0/gcc/ada/libgnat/s-atopex.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atopex.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atopex.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2025, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atopri.adb gcc-15.1.0/gcc/ada/libgnat/s-atopri.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-atopri.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atopri.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --              Copyright (C) 2012-2025, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atopri.ads gcc-15.1.0/gcc/ada/libgnat/s-atopri.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atopri.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atopri.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2025, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains both atomic primitives defined from GCC built-in
  --  functions and operations used by the compiler to generate the lock-free
  --  implementation of protected objects.
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains atomic primitives defined from GCC built-in
  --  functions and operations used by the compiler to generate the lock-free
  --  implementation of protected objects.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-atopri__32.ads gcc-15.1.0/gcc/ada/libgnat/s-atopri__32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-atopri__32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-atopri__32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2025, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-auxdec.adb gcc-15.1.0/gcc/ada/libgnat/s-auxdec.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-auxdec.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-auxdec.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-auxdec.ads gcc-15.1.0/gcc/ada/libgnat/s-auxdec.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-auxdec.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-auxdec.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bignum.adb gcc-15.1.0/gcc/ada/libgnat/s-bignum.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-bignum.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bignum.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bignum.ads gcc-15.1.0/gcc/ada/libgnat/s-bignum.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-bignum.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bignum.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bitfie.ads gcc-15.1.0/gcc/ada/libgnat/s-bitfie.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-bitfie.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bitfie.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2025, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bitops.adb gcc-15.1.0/gcc/ada/libgnat/s-bitops.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-bitops.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bitops.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bitops.ads gcc-15.1.0/gcc/ada/libgnat/s-bitops.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-bitops.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bitops.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Operations on packed bit strings
  
  package System.Bit_Ops is
  
!    --  Note: in all the following routines, the System.Address parameters
     --  represent the address of the first byte of an array used to represent
     --  a packed array (of type System.Unsigned_Types.Packed_Bytes{1,2,4})
     --  The length in bits is passed as a separate parameter. Note that all
--- 29,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides subprograms on bit strings. The compiler uses these
! --  subprograms for packed array operations.
  
  package System.Bit_Ops is
  
!    --  In all the following routines, the System.Address parameters
     --  represent the address of the first byte of an array used to represent
     --  a packed array (of type System.Unsigned_Types.Packed_Bytes{1,2,4})
     --  The length in bits is passed as a separate parameter. Note that all
*************** package System.Bit_Ops is
*** 45,74 ****
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "and" of given bit string with result being placed in Result.
!    --  The and operation is allowed to destroy unused bits in the last byte,
!    --  i.e. to leave them set in an undefined manner. Note that Left, Right
!    --  and Result always have the same length in bits (Len).
  
     function Bit_Eq
       (Left  : System.Address;
        Llen  : Natural;
        Right : System.Address;
        Rlen  : Natural) return Boolean;
!    --  Left and Right are the addresses of two bit packed arrays with Llen
!    --  and Rlen being the respective length in bits. The routine compares the
!    --  two bit strings for equality, being careful not to include the unused
!    --  bits in the final byte. Note that the result is always False if Rlen
!    --  is not equal to Llen.
  
     procedure Bit_Not
       (Opnd   : System.Address;
        Len    : Natural;
        Result : System.Address);
!    --  Bitwise "not" of given bit string with result being placed in Result.
!    --  The not operation is allowed to destroy unused bits in the last byte,
!    --  i.e. to leave them set in an undefined manner. Note that Result and
!    --  Opnd always have the same length in bits (Len).
  
     procedure Bit_Or
       (Left   : System.Address;
--- 46,94 ----
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "and" of given bit string with result being placed in
!    --  ``Result``. The and operation is allowed to destroy unused bits in
!    --  the last byte, i.e. to leave them set in an undefined manner. Note that
!    --  ``Left``, ``Right`` and ``Result`` always have the same length in bits.
!    --
!    --  The procedure raises Constraint_Error if ``Llen`` and ``Rlen`` are not
!    --  equal.
!    --
!    --  The bitwise "and" operation is performed byte per byte, where the number
!    --  of bytes is the smallest number not less than ``Llen`` (or ``Rlen``)
!    --  divided by the 8.
  
     function Bit_Eq
       (Left  : System.Address;
        Llen  : Natural;
        Right : System.Address;
        Rlen  : Natural) return Boolean;
!    --  ``Left`` and ``Right`` are the addresses of two bit packed arrays with
!    --  ``Llen`` and ``Rlen`` being the respective length in bits. The routine
!    --  compares the two bit strings for equality, being careful not to include
!    --  the unused bits in the final byte.
!    --
!    --  Note that the result is always False if ``Rlen`` is not equal to
!    --  ``Llen``.
!    --
!    --  Otherwise all the bytes but the last one are compared, and False is
!    --  returned if they aren't equal. Only the ``Llen`` mod 8 bits of the last
!    --  byte are compared, and false is returned if they aren't equal.
!    --
!    --  Otherwise, True is returned.
  
     procedure Bit_Not
       (Opnd   : System.Address;
        Len    : Natural;
        Result : System.Address);
!    --  Bitwise "not" of given bit string with result being placed in
!    --  ``Result``. The not operation is allowed to destroy unused bits in the
!    --  last byte, i.e. to leave them set in an undefined manner. Note that
!    --  ``Result`` and ``Opnd`` always have the same length in bits (``Len``).
!    --
!    --  The bitwise "not" operation is performed byte per byte, where the
!    --  number of bytes is the smallest number not less that ``Len`` divided by
!    --  the number of bits in a byte (8).
  
     procedure Bit_Or
       (Left   : System.Address;
*************** package System.Bit_Ops is
*** 76,85 ****
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "or" of given bit string with result being placed in Result.
     --  The or operation is allowed to destroy unused bits in the last byte,
!    --  i.e. to leave them set in an undefined manner. Note that Left, Right
!    --  and Result always have the same length in bits (Len).
  
     procedure Bit_Xor
       (Left   : System.Address;
--- 96,108 ----
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "or" of given bit string with result being placed in ``Result``.
     --  The or operation is allowed to destroy unused bits in the last byte,
!    --  i.e. to leave them set in an undefined manner. Note that ``Left``,
!    --  ``Right`` and ``Result`` always have the same length in bits.
!    --
!    --  The implementation is similar to *Bit_And* but for the bitwise "or"
!    --  operation.
  
     procedure Bit_Xor
       (Left   : System.Address;
*************** package System.Bit_Ops is
*** 87,95 ****
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "xor" of given bit string with result being placed in Result.
!    --  The xor operation is allowed to destroy unused bits in the last byte,
!    --  i.e. to leave them set in an undefined manner. Note that Left, Right
!    --  and Result always have the same length in bits (Len).
  
  end System.Bit_Ops;
--- 110,121 ----
        Right  : System.Address;
        Rlen   : Natural;
        Result : System.Address);
!    --  Bitwise "xor" of given bit string with result being placed in
!    --  ``Result``. The xor operation is allowed to destroy unused bits in the
!    --  last byte, i.e. to leave them set in an undefined manner. Note that
!    --  ``Left``, ``Right`` and ``Result`` always have the same length in bits.
!    --
!    --  The implementation is similar to *Bit_And* but for the bitwise "xor"
!    --  operation.
  
  end System.Bit_Ops;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bituti.adb gcc-15.1.0/gcc/ada/libgnat/s-bituti.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-bituti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bituti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --               Copyright (C) 2019-2025, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bituti.ads gcc-15.1.0/gcc/ada/libgnat/s-bituti.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-bituti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bituti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2025, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-boarop.ads gcc-15.1.0/gcc/ada/libgnat/s-boarop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-boarop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-boarop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Boolean_Array_Operations
*** 38,43 ****
--- 38,44 ----
     pragma Pure;
  
     type Boolean_Array is array (Integer range <>) of Boolean;
+    --  The base type for the boolean array operations
  
     package Boolean_Operations renames System.Vectors.Boolean_Operations;
  
*************** package System.Boolean_Array_Operations
*** 52,65 ****
--- 53,79 ----
  
     procedure Vector_Not is
        new Unary_Operation ("not", Boolean_Operations."not");
+    --  Instantiation of Unary_Operation with function *not*
+ 
     procedure Vector_And is new Binary_Operation ("and", System.Vectors."and");
+    --  Instantiation of Binary_Operation with function *and*
+ 
     procedure Vector_Or is new Binary_Operation ("or", System.Vectors."or");
+    --  Instantiation of Binary_Operation with function *or*
+ 
     procedure Vector_Xor is new Binary_Operation ("xor", System.Vectors."xor");
+    --  Instantiation of Binary_Operation with function *xor*
  
     procedure Vector_Nand is
        new Binary_Operation (Boolean_Operations.Nand, Boolean_Operations.Nand);
+    --  Instantiation of Binary_Operation with function *nand*
+ 
     procedure Vector_Nor is
        new Binary_Operation (Boolean_Operations.Nor, Boolean_Operations.Nor);
+    --  Instantiation of Binary_Operation with function *nor*
+ 
     procedure Vector_Nxor is
        new Binary_Operation (Boolean_Operations.Nxor, Boolean_Operations.Nxor);
+    --  Instantiation of Binary_Operation with function *nxor*
+ 
  end System.Boolean_Array_Operations;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-boustr.adb gcc-15.1.0/gcc/ada/libgnat/s-boustr.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-boustr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-boustr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-boustr.ads gcc-15.1.0/gcc/ada/libgnat/s-boustr.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-boustr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-boustr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-bytswa.ads gcc-15.1.0/gcc/ada/libgnat/s-bytswa.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-bytswa.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-bytswa.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  Intrinsic routines for byte swapping. These are used by the expanded code
! --  (supporting alternative byte ordering), and by the GNAT.Byte_Swapping run
! --  time package which provides user level routines for byte swapping.
  
  with Interfaces;
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  Intrinsic routines for byte swapping. These are used by the expanded code
! --  (supporting alternative byte ordering), and by the ``GNAT.Byte_Swapping``
! --  run-time package which provides user level routines for byte swapping.
  
  with Interfaces;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-carsi8.adb gcc-15.1.0/gcc/ada/libgnat/s-carsi8.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-carsi8.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-carsi8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 77,83 ****
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if ModA (OrA (Left, Right), 4) /= 0 or else Compare_Len < 4 then
           return Compare_Array_S8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
--- 76,85 ----
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if Left mod Storage_Offset (4) /= 0
!         or else Right mod Storage_Offset (4) /= 0
!         or else Compare_Len < 4
!       then
           return Compare_Array_S8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-carsi8.ads gcc-15.1.0/gcc/ada/libgnat/s-carsi8.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-carsi8.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-carsi8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Signed_8 is
*** 43,54 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively. This function works with 4 byte words
!    --  if the operands are aligned on 4-byte boundaries and long enough.
  
     function Compare_Array_S8_Unaligned
       (Left      : System.Address;
--- 43,65 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  If addresses are not word aligned or if the length is less than a word,
!    --  then the result of *Compare_Array_S8_Unaligned* is returned.
!    --
!    --  This function iterates on the common number of words, comparing words.
!    --  If two words are not equal, the result of *Compare_Array_S8_Unaligned*
!    --  on these words is returned.
!    --
!    --  Finally, the result of *Compare_Array_S8_Unaligned* on the remaining
!    --  bytes is returned.
  
     function Compare_Array_S8_Unaligned
       (Left      : System.Address;
*************** package System.Compare_Array_Signed_8 is
*** 58,62 ****
--- 69,76 ----
     --  Same functionality as Compare_Array_S8 but always proceeds by
     --  bytes. Used when the caller knows that the operands are unaligned,
     --  or short enough that it makes no sense to go by words.
+    --
+    --  This subprogram compares ``Left`` and ``Right`` byte per byte and
+    --  returns immediately when two bytes differ.
  
  end System.Compare_Array_Signed_8;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-carun8.adb gcc-15.1.0/gcc/ada/libgnat/s-carun8.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-carun8.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-carun8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 76,82 ****
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if ModA (OrA (Left, Right), 4) /= 0 or else Compare_Len < 4 then
           return Compare_Array_U8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
--- 75,84 ----
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if Left mod Storage_Offset (4) /= 0
!         or else Right mod Storage_Offset (4) /= 0
!         or else Compare_Len < 4
!       then
           return Compare_Array_U8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-carun8.ads gcc-15.1.0/gcc/ada/libgnat/s-carun8.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-carun8.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-carun8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Unsigned_8
*** 43,54 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len with the
!    --  array starting at address Right of length Right_Len. The comparison is
!    --  in the normal Ada semantic sense of array comparison. The result is -1,
!    --  0, +1 for Left < Right, Left = Right, Left > Right respectively. This
!    --  function works with 4 byte words if the operands are aligned on 4-byte
!    --  boundaries and long enough.
  
     function Compare_Array_U8_Unaligned
       (Left      : System.Address;
--- 43,58 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
!    --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  The same algorithm is used as in package
!    --  ``System.Compare_Array_Signed_8``.
  
     function Compare_Array_U8_Unaligned
       (Left      : System.Address;
*************** package System.Compare_Array_Unsigned_8
*** 58,62 ****
--- 62,69 ----
     --  Same functionality as Compare_Array_U8 but always proceeds by bytes.
     --  Used when the caller knows that the operands are unaligned, or short
     --  enough that it makes no sense to go by words.
+    --
+    --  The same algorithm is used as in package
+    --  ``System.Compare_Array_Signed_8``.
  
  end System.Compare_Array_Unsigned_8;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi128.adb gcc-15.1.0/gcc/ada/libgnat/s-casi128.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-casi128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 70,76 ****
     begin
        --  Case of going by aligned quadruple words
  
!       if ModA (OrA (Left, Right), 16) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 69,77 ----
     begin
        --  Case of going by aligned quadruple words
  
!       if Left mod Storage_Offset (16) = 0
!         and then Right mod Storage_Offset (16) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi128.ads gcc-15.1.0/gcc/ada/libgnat/s-casi128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-casi128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi16.adb gcc-15.1.0/gcc/ada/libgnat/s-casi16.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-casi16.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi16.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 78,84 ****
     begin
        --  Go by words if possible
  
!       if ModA (OrA (Left, Right), 4) = 0 then
           while Clen > 1
             and then W (L).all = W (R).all
           loop
--- 77,85 ----
     begin
        --  Go by words if possible
  
!       if Left mod Storage_Offset (4) = 0
!         and then Right mod Storage_Offset (4) = 0
!       then
           while Clen > 1
             and then W (L).all = W (R).all
           loop
*************** package body System.Compare_Array_Signed
*** 90,96 ****
  
        --  Case of going by aligned half words
  
!       if ModA (OrA (Left, Right), 2) = 0 then
           while Clen /= 0 loop
              if H (L).all /= H (R).all then
                 if H (L).all > H (R).all then
--- 91,99 ----
  
        --  Case of going by aligned half words
  
!       if Left mod Storage_Offset (2) = 0
!         and then Right mod Storage_Offset (2) = 0
!       then
           while Clen /= 0 loop
              if H (L).all /= H (R).all then
                 if H (L).all > H (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi16.ads gcc-15.1.0/gcc/ada/libgnat/s-casi16.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-casi16.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi16.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Signed_16 i
*** 43,53 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively. This function works with 4 byte words
!    --  if the operands are aligned on 4-byte boundaries and long enough.
  
  end System.Compare_Array_Signed_16;
--- 43,68 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  If both addresses are word aligned, the function iterates through all
!    --  of the equal words.
!    --
!    --  Then, if the addresses are half word aligned, the function iterates on
!    --  the remaining half words, and returns as soon as two half words are not
!    --  equal.
!    --
!    --  Otherwise, the function iterates on the remaining unaligned half words,
!    --  compares them using unaligned accesses, and returns as soon as two half
!    --  words are not equal.
!    --
!    --  Finally, at this point, all the words are equal. The result is decided
!    --  by comparing their lengths.
  
  end System.Compare_Array_Signed_16;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi32.adb gcc-15.1.0/gcc/ada/libgnat/s-casi32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-casi32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 73,79 ****
     begin
        --  Case of going by aligned words
  
!       if ModA (OrA (Left, Right), 4) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 72,80 ----
     begin
        --  Case of going by aligned words
  
!       if Left mod Storage_Offset (4) = 0
!         and then Right mod Storage_Offset (4) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi32.ads gcc-15.1.0/gcc/ada/libgnat/s-casi32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-casi32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Signed_32 i
*** 43,53 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural)
!       return      Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively.
  
  end System.Compare_Array_Signed_32;
--- 43,65 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural)
!      return      Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  If the addresses are word aligned, the function iterates on the words,
!    --  and returns as soon as two words are not equal.
!    --
!    --  Otherwise, the function iterates on the unaligned words, compares them
!    --  using unaligned accesses, and returns as soon as two words are not
!    --  equal.
!    --
!    --  Finally, at this point all the words are equal. The result is decided
!    --  by comparing their lengths.
  
  end System.Compare_Array_Signed_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi64.adb gcc-15.1.0/gcc/ada/libgnat/s-casi64.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-casi64.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi64.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 73,79 ****
     begin
        --  Case of going by aligned double words
  
!       if ModA (OrA (Left, Right), 8) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 72,80 ----
     begin
        --  Case of going by aligned double words
  
!       if Left mod Storage_Offset (8) = 0
!         and then Right mod Storage_Offset (8) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casi64.ads gcc-15.1.0/gcc/ada/libgnat/s-casi64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-casi64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casi64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Signed_64 i
*** 43,52 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively.
  
  end System.Compare_Array_Signed_64;
--- 43,64 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  If the addresses are double word aligned, the function iterates on the
!    --  double words, and returns as soon as two double words are not equal.
!    --
!    --  Otherwise, the function iterates on the unaligned double words, compares
!    --  them using unaligned accesses, and returns as soon as two double words
!    --  are not equal.
!    --
!    --  Finally, at this point all the double words are equal. The result is
!    --  decided by comparing their lengths.
  
  end System.Compare_Array_Signed_64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casuti.adb gcc-15.1.0/gcc/ada/libgnat/s-casuti.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-casuti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casuti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-casuti.ads gcc-15.1.0/gcc/ada/libgnat/s-casuti.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-casuti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-casuti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun128.adb gcc-15.1.0/gcc/ada/libgnat/s-caun128.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-caun128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 69,75 ****
     begin
        --  Case of going by aligned quadruple words
  
!       if ModA (OrA (Left, Right), 16) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 68,76 ----
     begin
        --  Case of going by aligned quadruple words
  
!       if Left mod Storage_Offset (16) = 0
!         and then Right mod Storage_Offset (16) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun128.ads gcc-15.1.0/gcc/ada/libgnat/s-caun128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-caun128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun16.adb gcc-15.1.0/gcc/ada/libgnat/s-caun16.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-caun16.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun16.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 78,84 ****
     begin
        --  Go by words if possible
  
!       if ModA (OrA (Left, Right), 4) = 0 then
           while Clen > 1
             and then W (L).all = W (R).all
           loop
--- 77,85 ----
     begin
        --  Go by words if possible
  
!       if Left mod Storage_Offset (4) = 0
!         and then Right mod Storage_Offset (4) = 0
!       then
           while Clen > 1
             and then W (L).all = W (R).all
           loop
*************** package body System.Compare_Array_Unsign
*** 90,96 ****
  
        --  Case of going by aligned half words
  
!       if ModA (OrA (Left, Right), 2) = 0 then
           while Clen /= 0 loop
              if H (L).all /= H (R).all then
                 if H (L).all > H (R).all then
--- 91,99 ----
  
        --  Case of going by aligned half words
  
!       if Left mod Storage_Offset (2) = 0
!         and then Right mod Storage_Offset (2) = 0
!       then
           while Clen /= 0 loop
              if H (L).all /= H (R).all then
                 if H (L).all > H (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun16.ads gcc-15.1.0/gcc/ada/libgnat/s-caun16.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-caun16.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun16.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Unsigned_16
*** 43,53 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively. This function works with 4 byte words
!    --  if the operands are aligned on 4-byte boundaries and long enough.
  
  end System.Compare_Array_Unsigned_16;
--- 43,57 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  The same algorithm is used as in package
!    --  ``System.Compare_Array_Signed_16``.
  
  end System.Compare_Array_Unsigned_16;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun32.adb gcc-15.1.0/gcc/ada/libgnat/s-caun32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-caun32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 73,79 ****
     begin
        --  Case of going by aligned words
  
!       if ModA (OrA (Left, Right), 4) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 72,80 ----
     begin
        --  Case of going by aligned words
  
!       if Left mod Storage_Offset (4) = 0
!         and then Right mod Storage_Offset (4) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun32.ads gcc-15.1.0/gcc/ada/libgnat/s-caun32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-caun32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Unsigned_32
*** 43,52 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively.
  
  end System.Compare_Array_Unsigned_32;
--- 43,57 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  The same algorithm is used as in package
!    --  ``System.Compare_Array_Signed_32``.
  
  end System.Compare_Array_Unsigned_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun64.adb gcc-15.1.0/gcc/ada/libgnat/s-caun64.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-caun64.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun64.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 72,78 ****
     begin
        --  Case of going by aligned double words
  
!       if ModA (OrA (Left, Right), 8) = 0 then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
--- 71,79 ----
     begin
        --  Case of going by aligned double words
  
!       if Left mod Storage_Offset (8) = 0
!         and then Right mod Storage_Offset (8) = 0
!       then
           while Clen /= 0 loop
              if W (L).all /= W (R).all then
                 if W (L).all > W (R).all then
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-caun64.ads gcc-15.1.0/gcc/ada/libgnat/s-caun64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-caun64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-caun64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Compare_Array_Unsigned_64
*** 43,52 ****
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address Left of length Left_Len
!    --  with the array starting at address Right of length Right_Len.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison. The result is -1,0,+1 for Left<Right, Left=Right,
!    --  Left>Right respectively.
  
  end System.Compare_Array_Unsigned_64;
--- 43,57 ----
        Right     : System.Address;
        Left_Len  : Natural;
        Right_Len : Natural) return Integer;
!    --  Compare the array starting at address ``Left`` of length ``Left_Len``
!    --  with the array starting at address ``Right`` of length ``Right_Len``.
     --  The comparison is in the normal Ada semantic sense of array
!    --  comparison.
!    --
!    --  The result is -1, 0, +1 for ``Left`` < ``Right``, ``Left`` = ``Right``,
!    --  ``Left`` > ``Right`` respectively.
!    --
!    --  The same algorithm is used as in package
!    --  ``System.Compare_Array_Signed_64``.
  
  end System.Compare_Array_Unsigned_64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-chepoo.ads gcc-15.1.0/gcc/ada/libgnat/s-chepoo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-chepoo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-chepoo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-commun.adb gcc-15.1.0/gcc/ada/libgnat/s-commun.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-commun.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-commun.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-commun.ads gcc-15.1.0/gcc/ada/libgnat/s-commun.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-commun.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-commun.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca2.adb gcc-15.1.0/gcc/ada/libgnat/s-conca2.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca2.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca2.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca2.ads gcc-15.1.0/gcc/ada/libgnat/s-conca2.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca2.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca2.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca3.adb gcc-15.1.0/gcc/ada/libgnat/s-conca3.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca3.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca3.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca3.ads gcc-15.1.0/gcc/ada/libgnat/s-conca3.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca3.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca3.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca4.adb gcc-15.1.0/gcc/ada/libgnat/s-conca4.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca4.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca4.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca4.ads gcc-15.1.0/gcc/ada/libgnat/s-conca4.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca4.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca4.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca5.adb gcc-15.1.0/gcc/ada/libgnat/s-conca5.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca5.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca5.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca5.ads gcc-15.1.0/gcc/ada/libgnat/s-conca5.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca5.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca5.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca6.adb gcc-15.1.0/gcc/ada/libgnat/s-conca6.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca6.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca6.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca6.ads gcc-15.1.0/gcc/ada/libgnat/s-conca6.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca6.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca6.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca7.adb gcc-15.1.0/gcc/ada/libgnat/s-conca7.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca7.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca7.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca7.ads gcc-15.1.0/gcc/ada/libgnat/s-conca7.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca7.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca7.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca8.adb gcc-15.1.0/gcc/ada/libgnat/s-conca8.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca8.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca8.ads gcc-15.1.0/gcc/ada/libgnat/s-conca8.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca8.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca9.adb gcc-15.1.0/gcc/ada/libgnat/s-conca9.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-conca9.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca9.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-conca9.ads gcc-15.1.0/gcc/ada/libgnat/s-conca9.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-conca9.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-conca9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-crc32.adb gcc-15.1.0/gcc/ada/libgnat/s-crc32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-crc32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-crc32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-crc32.ads gcc-15.1.0/gcc/ada/libgnat/s-crc32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-crc32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-crc32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-crtl.ads gcc-15.1.0/gcc/ada/libgnat/s-crtl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-crtl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-crtl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dfmkio.ads gcc-15.1.0/gcc/ada/libgnat/s-dfmkio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dfmkio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dfmkio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dfmopr.ads gcc-15.1.0/gcc/ada/libgnat/s-dfmopr.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dfmopr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dfmopr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2025, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dgmgop.ads gcc-15.1.0/gcc/ada/libgnat/s-dgmgop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dgmgop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dgmgop.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-diflio.adb gcc-15.1.0/gcc/ada/libgnat/s-diflio.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-diflio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-diflio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-diflio.ads gcc-15.1.0/gcc/ada/libgnat/s-diflio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-diflio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-diflio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-diflmk.ads gcc-15.1.0/gcc/ada/libgnat/s-diflmk.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-diflmk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-diflmk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-digemk.ads gcc-15.1.0/gcc/ada/libgnat/s-digemk.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-digemk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-digemk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-diinio.adb gcc-15.1.0/gcc/ada/libgnat/s-diinio.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-diinio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-diinio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-diinio.ads gcc-15.1.0/gcc/ada/libgnat/s-diinio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-diinio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-diinio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dilomk.ads gcc-15.1.0/gcc/ada/libgnat/s-dilomk.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dilomk.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dilomk.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dim.ads gcc-15.1.0/gcc/ada/libgnat/s-dim.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dim.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dimkio.ads gcc-15.1.0/gcc/ada/libgnat/s-dimkio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dimkio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dimkio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dimmks.ads gcc-15.1.0/gcc/ada/libgnat/s-dimmks.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dimmks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dimmks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-direio.adb gcc-15.1.0/gcc/ada/libgnat/s-direio.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-direio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-direio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-direio.ads gcc-15.1.0/gcc/ada/libgnat/s-direio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-direio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-direio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dlmkio.ads gcc-15.1.0/gcc/ada/libgnat/s-dlmkio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dlmkio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dlmkio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dlmopr.ads gcc-15.1.0/gcc/ada/libgnat/s-dlmopr.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dlmopr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dlmopr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2025, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dmotpr.ads gcc-15.1.0/gcc/ada/libgnat/s-dmotpr.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dmotpr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dmotpr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dorepr.adb gcc-15.1.0/gcc/ada/libgnat/s-dorepr.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-dorepr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dorepr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dorepr__fma.adb gcc-15.1.0/gcc/ada/libgnat/s-dorepr__fma.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-dorepr__fma.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dorepr__fma.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dourea.adb gcc-15.1.0/gcc/ada/libgnat/s-dourea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-dourea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dourea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dourea.ads gcc-15.1.0/gcc/ada/libgnat/s-dourea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dourea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dourea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Double_Real is
*** 43,49 ****
     pragma Pure;
  
     type Double_T is record
!      Hi, Lo : Num;
     end record;
  
     function To_Double (N : Num) return Double_T is ((Hi => N, Lo => 0.0));
--- 43,49 ----
     pragma Pure;
  
     type Double_T is record
!       Hi, Lo : Num;
     end record;
  
     function To_Double (N : Num) return Double_T is ((Hi => N, Lo => 0.0));
*************** package System.Double_Real is
*** 53,59 ****
     --  Convert a double to a single real
  
     function Quick_Two_Sum (A, B : Num) return Double_T
!      with Pre => A = 0.0 or else abs (A) >= abs (B);
     --  Compute A + B and its rounding error exactly, but assume |A| >= |B|
  
     function Two_Sum (A, B : Num) return Double_T;
--- 53,59 ----
     --  Convert a double to a single real
  
     function Quick_Two_Sum (A, B : Num) return Double_T
!      with Pre => A = 0.0 or else abs A >= abs B;
     --  Compute A + B and its rounding error exactly, but assume |A| >= |B|
  
     function Two_Sum (A, B : Num) return Double_T;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dsaser.ads gcc-15.1.0/gcc/ada/libgnat/s-dsaser.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dsaser.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dsaser.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dwalin.adb gcc-15.1.0/gcc/ada/libgnat/s-dwalin.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-dwalin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dwalin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Dwarf_Lines is
*** 1753,1758 ****
--- 1753,1759 ----
        Success      : Boolean;
        Done         : Boolean;
        S            : Object_Symbol;
+       Closest_S    : Object_Symbol := Null_Symbol;
  
     begin
        --  Initialize result
*************** package body System.Dwarf_Lines is
*** 1801,1807 ****
        else
           S := First_Symbol (C.Obj.all);
           while S /= Null_Symbol loop
!             if Spans (S, Addr_Int) then
                 Subprg_Name := Object_Reader.Name (C.Obj.all, S);
                 exit;
              end if;
--- 1802,1823 ----
        else
           S := First_Symbol (C.Obj.all);
           while S /= Null_Symbol loop
!             if Format (C.Obj.all) = PECOFF
!               or else Format (C.Obj.all) = PECOFF_PLUS
!             then
!                --  Don't use the size of symbols from PECOFF files; it's
!                --  just a guess and can be unreliable. Instead, iterate
!                --  over the entire symbol table and use the symbol with the
!                --  highest address lower than Addr_Int.
! 
!                if Closest_S = Null_Symbol
!                  or else (Closest_S.Value < S.Value
!                    and then S.Value <= Addr_Int)
!                then
!                   Closest_S := S;
!                end if;
! 
!             elsif Spans (S, Addr_Int) then
                 Subprg_Name := Object_Reader.Name (C.Obj.all, S);
                 exit;
              end if;
*************** package body System.Dwarf_Lines is
*** 1809,1814 ****
--- 1825,1838 ----
              S := Next_Symbol (C.Obj.all, S);
           end loop;
  
+          if (Format (C.Obj.all) = PECOFF
+              or else Format (C.Obj.all) = PECOFF_PLUS)
+            and then Closest_S /= Null_Symbol
+          then
+             S := Closest_S;     --  for consistency with non-PECOFF
+             Subprg_Name := Object_Reader.Name (C.Obj.all, S);
+          end if;
+ 
           --  Search address in aranges table
  
           Aranges_Lookup (C, Addr, Info_Offset, Success);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-dwalin.ads gcc-15.1.0/gcc/ada/libgnat/s-dwalin.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-dwalin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-dwalin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-elaall.adb gcc-15.1.0/gcc/ada/libgnat/s-elaall.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-elaall.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-elaall.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-elaall.ads gcc-15.1.0/gcc/ada/libgnat/s-elaall.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-elaall.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-elaall.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excdeb.adb gcc-15.1.0/gcc/ada/libgnat/s-excdeb.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-excdeb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excdeb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excdeb.ads gcc-15.1.0/gcc/ada/libgnat/s-excdeb.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-excdeb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excdeb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-except.adb gcc-15.1.0/gcc/ada/libgnat/s-except.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-except.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-except.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-except.ads gcc-15.1.0/gcc/ada/libgnat/s-except.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-except.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-except.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excmac__arm.adb gcc-15.1.0/gcc/ada/libgnat/s-excmac__arm.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-excmac__arm.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excmac__arm.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2013-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2013-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excmac__arm.ads gcc-15.1.0/gcc/ada/libgnat/s-excmac__arm.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-excmac__arm.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excmac__arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Exceptions.Machine is
*** 114,120 ****
     end record;
  
     type Cleanup_Cache_Type is record
!      Bitpattern : uint32_t_array (0 .. 3);
     end record;
  
     type Pr_Cache_Type is record
--- 114,120 ----
     end record;
  
     type Cleanup_Cache_Type is record
!       Bitpattern : uint32_t_array (0 .. 3);
     end record;
  
     type Pr_Cache_Type is record
*************** package System.Exceptions.Machine is
*** 154,160 ****
     --  A GNAT exception object to be dealt with by the personality routine
     --  called by the GCC unwinding runtime.
  
!    type GNAT_GCC_Exception is record
        Header : Unwind_Control_Block;
        --  ABI Exception header first
  
--- 154,160 ----
     --  A GNAT exception object to be dealt with by the personality routine
     --  called by the GCC unwinding runtime.
  
!    type GNAT_GCC_Exception is limited record
        Header : Unwind_Control_Block;
        --  ABI Exception header first
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excmac__gcc.adb gcc-15.1.0/gcc/ada/libgnat/s-excmac__gcc.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-excmac__gcc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excmac__gcc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-excmac__gcc.ads gcc-15.1.0/gcc/ada/libgnat/s-excmac__gcc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-excmac__gcc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-excmac__gcc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Exceptions.Machine is
*** 142,148 ****
     --  A GNAT exception object to be dealt with by the personality routine
     --  called by the GCC unwinding runtime.
  
!    type GNAT_GCC_Exception is record
        Header : Unwind_Exception;
        --  ABI Exception header first
  
--- 142,148 ----
     --  A GNAT exception object to be dealt with by the personality routine
     --  called by the GCC unwinding runtime.
  
!    type GNAT_GCC_Exception is limited record
        Header : Unwind_Exception;
        --  ABI Exception header first
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exctab.adb gcc-15.1.0/gcc/ada/libgnat/s-exctab.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exctab.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exctab.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exctab.ads gcc-15.1.0/gcc/ada/libgnat/s-exctab.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exctab.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exctab.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exctra.adb gcc-15.1.0/gcc/ada/libgnat/s-exctra.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exctra.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exctra.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exctra.ads gcc-15.1.0/gcc/ada/libgnat/s-exctra.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exctra.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exctra.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnflt.ads gcc-15.1.0/gcc/ada/libgnat/s-exnflt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnflt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnflt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnint.adb gcc-15.1.0/gcc/ada/libgnat/s-exnint.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exnint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnint.ads gcc-15.1.0/gcc/ada/libgnat/s-exnint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnint.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Integer exponentiation (checks off)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements Integer exponentiation (checks off)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
*************** is
*** 52,56 ****
--- 52,65 ----
  
     function Exn_Integer (Left : Integer; Right : Natural) return Integer
       renames Exponn_Integer.Expon;
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is an Integer.
+    --  No check is made on the validity of the result.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  As checks aren't enabled for this service, the result is not defined
+    --  in case of overflow.
  
  end System.Exn_Int;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnlfl.ads gcc-15.1.0/gcc/ada/libgnat/s-exnlfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnlfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnlfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnllf.adb gcc-15.1.0/gcc/ada/libgnat/s-exnllf.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exnllf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnllf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnllf.ads gcc-15.1.0/gcc/ada/libgnat/s-exnllf.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnllf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnllf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Long_Long_Float exponentiation (checks off)
  
  with System.Exponr;
  
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements ``[Long_[Long_]]Float`` exponentiation
! --  (checks off).
  
  with System.Exponr;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnlli.adb gcc-15.1.0/gcc/ada/libgnat/s-exnlli.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exnlli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnlli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnlli.ads gcc-15.1.0/gcc/ada/libgnat/s-exnlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnlli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Long_Long_Integer exponentiation (checks off)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements Long_Long_Integer exponentiation (checks off)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
*************** is
*** 53,57 ****
--- 53,66 ----
     function Exn_Long_Long_Integer
       (Left : Long_Long_Integer; Right : Natural) return Long_Long_Integer
       renames Exponn_Integer.Expon;
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is a
+    --  Long_Long_Integer. No check is made on the validity of the result.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  As checks aren't enabled for this service, the result is not defined
+    --  in case of overflow.
  
  end System.Exn_LLI;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exnllli.ads gcc-15.1.0/gcc/ada/libgnat/s-exnllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exnllli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exnllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expint.adb gcc-15.1.0/gcc/ada/libgnat/s-expint.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-expint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expint.ads gcc-15.1.0/gcc/ada/libgnat/s-expint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expint.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Integer exponentiation (checks on)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements Integer exponentiation (checks on)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
*************** is
*** 52,56 ****
--- 52,64 ----
  
     function Exp_Integer (Left : Integer; Right : Natural) return Integer
       renames Expont_Integer.Expon;
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is an
+    --  Integer.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  In case of overflow, Constraint_Error is raised.
  
  end System.Exp_Int;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-explli.adb gcc-15.1.0/gcc/ada/libgnat/s-explli.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-explli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-explli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-explli.ads gcc-15.1.0/gcc/ada/libgnat/s-explli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-explli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-explli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Long_Long_Integer exponentiation (checks on)
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package implements Long_Long_Integer exponentiation
  
  --  Preconditions, postconditions, ghost code, loop invariants and assertions
  --  in this unit are meant for analysis only, not for run-time checking, as it
*************** is
*** 53,57 ****
--- 53,65 ----
     function Exp_Long_Long_Integer
       (Left : Long_Long_Integer; Right : Natural) return Long_Long_Integer
       renames Expont_Integer.Expon;
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is a
+    --  Long_Long_Integer.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  In case of overflow, Constraint_Error is raised.
  
  end System.Exp_LLI;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expllli.ads gcc-15.1.0/gcc/ada/libgnat/s-expllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expllli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-explllu.ads gcc-15.1.0/gcc/ada/libgnat/s-explllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-explllu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-explllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expllu.adb gcc-15.1.0/gcc/ada/libgnat/s-expllu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-expllu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expllu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expllu.ads gcc-15.1.0/gcc/ada/libgnat/s-expllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expllu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,44 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This function performs exponentiation of unsigned types with binary modulus
! --  values exceeding that of System.Unsigned_Types.Unsigned.
! --  The result is always full width, the caller must do a masking operation if
! --  the modulus is less than 2 ** Long_Long_Unsigned'Size.
  
! --  Preconditions in this unit are meant for analysis only, not for run-time
! --  checking, so that the expected exceptions are raised. This is enforced
! --  by setting the corresponding assertion policy to Ignore. Postconditions
! --  and contract cases should not be executed at runtime as well, in order
! --  not to slow down the execution of these functions.
  
  pragma Assertion_Policy (Pre            => Ignore,
                           Post           => Ignore,
--- 29,44 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This function performs exponentiation of unsigned types (with binary
! --  modulus values exceeding that of Unsigned_Types.Unsigned). The result
! --  is always full width, the caller must do a masking operation if the
! --  modulus is less than 2 ** (Long_Long_Unsigned'Size).
  
! --  Note: preconditions in this unit are meant for analysis only, not for
! --  run-time checking, so that the expected exceptions are raised. This is
! --  enforced by setting the corresponding assertion policy to Ignore.
! --  Postconditions and contract cases should not be executed at run-time as
! --  well, in order not to slow down the execution of these functions.
  
  pragma Assertion_Policy (Pre            => Ignore,
                           Post           => Ignore,
*************** is
*** 56,60 ****
--- 56,68 ----
  
     function Exp_Long_Long_Unsigned is new Exponu (Long_Long_Unsigned);
     pragma Pure_Function (Exp_Long_Long_Unsigned);
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is a
+    --  Long_Long_Unsigned.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  In case of overflow, Constraint_Error is raised.
  
  end System.Exp_LLU;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expmod.adb gcc-15.1.0/gcc/ada/libgnat/s-expmod.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-expmod.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expmod.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 149,162 ****
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2 + 1));
!          pragma Assert (A ** (Exp / 2 + 1) = A ** (Exp / 2) * A);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
        end if;
     end Lemma_Exp_Expand;
  
--- 149,172 ----
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
+         Pre  => Natural'Last - Exp_2 >= Exp_1,
+         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
+ 
+       ----------------------------
+       -- Lemma_Exp_Distribution --
+       ----------------------------
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
+ 
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, 1);
        end if;
     end Lemma_Exp_Expand;
  
*************** is
*** 253,259 ****
          Post => Big (Mult (X, Y)) = (Big (X) * Big (Y)) mod M
            and then Big (Mult (X, Y)) < M;
  
!       procedure Lemma_Mult (X, Y : Unsigned) is null;
  
        Rest : Big_Integer with Ghost;
        --  Ghost variable to hold Factor**Exp between Exp and Factor updates
--- 263,272 ----
          Post => Big (Mult (X, Y)) = (Big (X) * Big (Y)) mod M
            and then Big (Mult (X, Y)) < M;
  
!       procedure Lemma_Mult (X, Y : Unsigned) is
!       begin
!          pragma Assert (Big (Mult (X, Y)) = (Big (X) * Big (Y)) mod M);
!       end Lemma_Mult;
  
        Rest : Big_Integer with Ghost;
        --  Ghost variable to hold Factor**Exp between Exp and Factor updates
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expmod.ads gcc-15.1.0/gcc/ada/libgnat/s-expmod.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expmod.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expmod.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,37 ****
--- 32,38 ----
  --  This function performs exponentiation of a modular type with nonbinary
  --  modulus values. Arithmetic is done in Long_Long_Unsigned, with explicit
  --  accounting for the modulus value which is passed as the second argument.
+ --
  --  Note that 1 is a binary modulus (2**0), so the compiler should not (and
  --  will not) call this function with Modulus equal to 1.
  
*************** is
*** 80,84 ****
--- 81,91 ----
     with
       Pre  => Modulus /= 0 and then Modulus not in Power_Of_2,
       Post => Big (Exp_Modular'Result) = Big (Left) ** Right mod Big (Modulus);
+    --  Return the power of ``Left`` by ``Right` modulo ``Modulus``.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2. The multiplications are
+    --  performed using modular multiplications.
  
  end System.Exp_Mod;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponn.adb gcc-15.1.0/gcc/ada/libgnat/s-exponn.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exponn.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponn.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 185,198 ****
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2 + 1));
!          pragma Assert (A ** (Exp / 2 + 1) = A ** (Exp / 2) * A);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
        end if;
     end Lemma_Exp_Expand;
  
--- 185,208 ----
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
+         Pre  => A /= 0 and then Natural'Last - Exp_2 >= Exp_1,
+         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
+ 
+       ----------------------------
+       -- Lemma_Exp_Distribution --
+       ----------------------------
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
+ 
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, 1);
        end if;
     end Lemma_Exp_Expand;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponn.ads gcc-15.1.0/gcc/ada/libgnat/s-exponn.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exponn.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponn.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Signed integer exponentiation (checks off)
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides functions for signed integer exponentiation. This
! --  is the version of the package with checks disabled.
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
*************** is
*** 69,73 ****
--- 70,81 ----
     with
       Pre  => In_Int_Range (Big (Left) ** Right),
       Post => Expon'Result = Left ** Right;
+    --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
+    --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
+    --  is set to 1 and then computed in a loop as follows:
+    --  If ``Right`` is a multiple of 2 then multiply the result with ``Left``.
+    --  Divide ``Right`` by 2.
+    --  If ``Right is 0, return.
+    --  Multiply ``Left`` with itself.
  
  end System.Exponn;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponr.adb gcc-15.1.0/gcc/ada/libgnat/s-exponr.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exponr.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponr.ads gcc-15.1.0/gcc/ada/libgnat/s-exponr.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exponr.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expont.adb gcc-15.1.0/gcc/ada/libgnat/s-expont.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-expont.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expont.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 185,198 ****
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2 + 1));
!          pragma Assert (A ** (Exp / 2 + 1) = A ** (Exp / 2) * A);
!          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
        end if;
     end Lemma_Exp_Expand;
  
--- 185,208 ----
     ----------------------
  
     procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
+         Pre  => A /= 0 and then Natural'Last - Exp_2 >= Exp_1,
+         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
+ 
+       ----------------------------
+       -- Lemma_Exp_Distribution --
+       ----------------------------
+ 
+       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
+ 
     begin
        if Exp rem 2 = 0 then
           pragma Assert (Exp = Exp / 2 + Exp / 2);
        else
           pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
!          Lemma_Exp_Distribution (Exp / 2, 1);
        end if;
     end Lemma_Exp_Expand;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expont.ads gcc-15.1.0/gcc/ada/libgnat/s-expont.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expont.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expont.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Signed integer exponentiation (checks on)
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides functions for signed integer exponentiation. This
! --  is the version of the package with checks enabled.
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
*************** is
*** 69,73 ****
--- 70,81 ----
     with
       Pre  => In_Int_Range (Big (Left) ** Right),
       Post => Expon'Result = Left ** Right;
+    --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
+    --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
+    --  is set to 1 and then computed in a loop as follows:
+    --  If ``Right`` is a multiple of 2 then multiply the result with ``Left``.
+    --  Divide ``Right`` by 2.
+    --  If ``Right is 0, return.
+    --  Multiply ``Left`` with itself.
  
  end System.Expont;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponu.adb gcc-15.1.0/gcc/ada/libgnat/s-exponu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-exponu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-exponu.ads gcc-15.1.0/gcc/ada/libgnat/s-exponu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-exponu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-exponu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Modular integer exponentiation
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This function implements unsigned integer exponentiation
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced
*************** function System.Exponu (Left : Int; Righ
*** 50,52 ****
--- 50,59 ----
  with
    SPARK_Mode,
    Post => System.Exponu'Result = Left ** Right;
+ --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
+ --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
+ --  is set to 1 and then computed in a loop as follows:
+ --  If ``Right`` is a multiple of 2 then multiply the result with ``Left``.
+ --  Divide ``Right`` by 2.
+ --  If ``Right is 0, return.
+ --  Multiply ``Left`` with itself.
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expuns.adb gcc-15.1.0/gcc/ada/libgnat/s-expuns.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-expuns.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expuns.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-expuns.ads gcc-15.1.0/gcc/ada/libgnat/s-expuns.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-expuns.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-expuns.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,38 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This function performs exponentiation of unsigned types with binary modulus
! --  values up to and including that of System.Unsigned_Types.Unsigned.
! --  The result is always full width, the caller must do a masking operation if
! --  the modulus is less than 2 ** Unsigned'Size.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced
--- 29,39 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This function performs exponentiation of unsigned types (with binary
! --  modulus values up to and including that of Unsigned_Types.Unsigned).
! --
! --  The result is always full width, the caller must do a masking operation
! --  the modulus is less than 2 ** (Unsigned'Size).
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced
*************** is
*** 56,60 ****
--- 57,69 ----
  
     function Exp_Unsigned is new Exponu (Unsigned);
     pragma Pure_Function (Exp_Unsigned);
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is an
+    --  Unsigned.
+    --
+    --  This function is implemented using the standard logarithmic approach:
+    --  ``Right`` gets shifted right testing successive low order bits, and
+    --  ``Left`` is raised to the next power of 2.
+    --
+    --  In case of overflow, Constraint_Error is raised.
  
  end System.Exp_Uns;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fatflt.ads gcc-15.1.0/gcc/ada/libgnat/s-fatflt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fatflt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fatflt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Float.
  
  with System.Fat_Gen;
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Float. It is an instantiation of
! --  ``System.Fat_Gen`` for Float.
  
  with System.Fat_Gen;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fatgen.adb gcc-15.1.0/gcc/ada/libgnat/s-fatgen.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-fatgen.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fatgen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fatgen.ads gcc-15.1.0/gcc/ada/libgnat/s-fatgen.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fatgen.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fatgen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,38 ****
  
  --  This generic package provides a target independent implementation of the
  --  floating-point attributes that denote functions. The implementations here
! --  should be portable and reasonably efficient. The runtime contains a set of
! --  instantiations of this package for all predefined floating-point types.
  
  generic
      type T is digits <>;
--- 31,39 ----
  
  --  This generic package provides a target independent implementation of the
  --  floating-point attributes that denote functions. The implementations here
! --  are portable, but very slow. The runtime contains a set of instantiations
! --  of this package for all predefined floating-point types, and these should
! --  be replaced by efficient assembly language code where possible.
  
  generic
      type T is digits <>;
*************** package System.Fat_Gen is
*** 51,98 ****
     --  problem, but the resulting inefficiency would be annoying.
  
     function Adjacent          (X, Towards : T)              return T;
  
     function Ceiling           (X : T)                       return T;
  
     function Compose           (Fraction : T; Exponent : UI) return T;
  
     function Copy_Sign         (Value, Sign : T)             return T;
  
     function Exponent          (X : T)                       return UI;
  
     function Floor             (X : T)                       return T;
  
     function Fraction          (X : T)                       return T;
  
     function Leading_Part      (X : T; Radix_Digits : UI)    return T;
  
     function Machine           (X : T)                       return T;
  
     function Machine_Rounding  (X : T)                       return T;
  
     function Model             (X : T)                       return T;
  
     function Pred              (X : T)                       return T;
  
     function Remainder         (X, Y : T)                    return T;
  
     function Rounding          (X : T)                       return T;
  
     function Scaling           (X : T; Adjustment : UI)      return T;
  
     function Succ              (X : T)                       return T;
  
     function Truncation        (X : T)                       return T;
  
     function Unbiased_Rounding (X : T)                       return T;
  
     function Valid (X : not null access T) return Boolean;
!    --  This function checks if the object of type T referenced by X is valid,
!    --  and returns True/False accordingly. The parameter is passed by reference
!    --  (access) here, as the object of type T may be an abnormal value that
!    --  cannot be passed in a floating-point register, and the whole point of
!    --  'Valid is to prevent exceptions. Note that the object of type T must
!    --  have the natural alignment for type T.
  
     type S is new String (1 .. T'Size / Character'Size);
     type P is access all S with Storage_Size => 0;
--- 52,197 ----
     --  problem, but the resulting inefficiency would be annoying.
  
     function Adjacent          (X, Towards : T)              return T;
+    --  If ``Towards`` = ``X``, the function returns ``X``; oterwise, it yields
+    --  the machien number of the type *T* adjacent to ``X`` in the direction
+    --  ``Towards``, if that machine number exists.
  
     function Ceiling           (X : T)                       return T;
+    --  Truncate ``X``. If the truncation is equal to ``X`` return ``X``. If
+    --  ``X`` is less than zero, return the truncation, otherwise add one
+    --  to the truncation.
  
     function Compose           (Fraction : T; Exponent : UI) return T;
+    --  Decompose the ``Fraction`` into its fraction and exponent parts. Call
+    --  *Scaling* with the returned fraction part and ``Exponent``.
  
     function Copy_Sign         (Value, Sign : T)             return T;
+    --  Take the absolute value of ``Value``. Negate the result if ``Sign`` is
+    --  less than zero.
  
     function Exponent          (X : T)                       return UI;
+    --  Decompose `X`` and return the exponent part.
  
     function Floor             (X : T)                       return T;
+    --  Truncate ``X``. If the truncation is equal to ``X`` return ``X``. If
+    --  ``X`` is greater than zero, return the truncation, otherwise subtract
+    --  one from the truncation.
  
     function Fraction          (X : T)                       return T;
+    --  Decompose `X`` and return the fraction part
  
     function Leading_Part      (X : T; Radix_Digits : UI)    return T;
+    --  Return ``X`` if the ``Radix_Digits`` is larger than the type's machine
+    --  mantissa. Otherwise scale down and truncate ``X`` by the difference
+    --  between the exponent of ``X`` and ``Radix_Digits``, then scale the
+    --  result back up.
  
     function Machine           (X : T)                       return T;
+    --  Force ``X`` to be stored in memory and retrieve the result
  
     function Machine_Rounding  (X : T)                       return T;
+    --  Truncate the absolute value of ``X`` + 0.5. If ``X`` is negative, negate
+    --  the result.
  
     function Model             (X : T)                       return T;
+    --  If ``X`` is a model number of *T*, the function returns ``X``;
+    --  otherwise it yields the value obtained by rounding or truncating ``X``
+    --  to either one of the adjacent model numbers of *T*.
+    --
+    --  We treat *Model* as identical to *Machine*. This is true of IEEE and
+    --  other nice floating-point systems, but not necessarily true of all
+    --  systems.
  
     function Pred              (X : T)                       return T;
+    --  Return the machine number immediately below the value of ``X``.
+    --
+    --  If zero, return the negative of *Succ* (``X``).
+    --
+    --  If ``X`` = *T*'First, return negative infinity.
+    --
+    --  If ``X`` is already infinity, return ``X``.
+    --
+    --  Otherwise, subtract from ``X`` a number equivalent to the value of its
+    --  least significant bit.
  
     function Remainder         (X, Y : T)                    return T;
+    --  Return the remainder (n) of ``X`` divided by ``Y``.
+    --  If abs(n - ``X`` / ``Y``) = 1/2 then n is chosen to be even.
+    --
+    --  Calculate the modulus remainder: if abs(``X``) < abs(``Y``) then the
+    --  remainder is abs(``X``). Otherwise, decompose abs(``X``) and abs(``Y``).
+    --  Then:
+    --
+    --  .. code-block:: ada
+    --
+    --    P := Compose (Y_Frac, X_Exp);
+    --    K := X_Exp - Y_Exp;
+    --    Rem := |X|;
+    --    for J in reverse 0 .. K loop
+    --       if Rem >= P then
+    --          Rem := Rem - P;
+    --       end if;
+    --       P := P * 0.5;
+    --    end loop;
+    --
+    --  Return the IEEE remainder by adjusting result such that if
+    --  abs(n - X/Y) = 1/2 then n is even.
  
     function Rounding          (X : T)                       return T;
+    --  The function yields the integral value nearest to ``X``, rounding away
+    --  from zero if ``X`` lies exactly halfway between two integers.
+    --
+    --  The function truncates the absolute value of ``X`` + 0.5. If ``X`` is
+    --  negative, negate the result.
  
     function Scaling           (X : T; Adjustment : UI)      return T;
+    --  Let v be the value ``X`` * *T*'Machine_RadixAdjustment. If v is a
+    --  machine number of the type *T*, or if abs(v) >= *T*'Model_Small, the
+    --  function yields v; otherwise, it yields either one of the machine
+    --  numbers of the type *T* adjacent to v.
+    --
+    --  If ``X`` or ``Adjustment`` equal zero, return ``X``. Otherwise, return
+    --  ``X`` * Machine_Radix ** ``Adjustment``.
  
     function Succ              (X : T)                       return T;
+    --  Returns the machine number immediately above the value of X.
+    --
+    --  If zero, return the smallest denormal.
+    --
+    --  If ``X`` = *T*'Last, return infinity.
+    --
+    --  If ``X`` is already infinity, return ``X``.
+    --
+    --  Otherwise, add to X a number equivalent to the value of its least
+    --  significant bit.
  
     function Truncation        (X : T)                       return T;
+    --  The function yields the value *Ceiling* (``X``) when ``X`` is negative,
+    --  and *Floor* (``X``) otherwise.
+    --
+    --  Return *T*'Machine (RM1 + N) - RM1 where N is abs(``X``) and
+    --  RM1 = radix ** (mantissa - 1). Negate the result where ``X`` is
+    --  negative.
  
     function Unbiased_Rounding (X : T)                       return T;
+    --  The integral value nearest to ``X``, rounding toward the even integer
+    --  if ``X`` lies exactly halfway between two integers.
+    --
+    --  This function truncates abs(``X``). If the tail of the result is greater
+    --  than 0.5 add one to the result. If the tail equals 0.5, round to the
+    --  nearest even integer. Negate the result if ``X`` is negative.
  
     function Valid (X : not null access T) return Boolean;
!    --  This function checks if the object of type *T* referenced by ``X`` is
!    --  valid, and returns True/False accordingly. The parameter is passed by
!    --  reference (access) here, as the object of type T may be an abnormal
!    --  value that cannot be passed in a floating-point register, and the whole
!    --  point of 'Valid is to prevent exceptions. Note that the object of
!    --  type *T* must have the natural alignment for type *T*.
!    --
!    --  If denormalized numbers are valid: return True unless ``X`` is infinity
!    --  or NaN. If denormalized numbers are not valid, return False if ``X`` is
!    --  a denormal number.
  
     type S is new String (1 .. T'Size / Character'Size);
     type P is access all S with Storage_Size => 0;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fatlfl.ads gcc-15.1.0/gcc/ada/libgnat/s-fatlfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fatlfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fatlfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Long_Float.
  
  with System.Fat_Gen;
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Long_Float. It is an instantiation of
! --  ``System.Fat_Gen`` for Long_Float.
  
  with System.Fat_Gen;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fatllf.ads gcc-15.1.0/gcc/ada/libgnat/s-fatllf.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fatllf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fatllf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Long_Long_Float.
  
  with System.Fat_Gen;
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package contains an instantiation of the floating-point attribute
! --  runtime routines for the type Long_Long_Float. It is an instantiation of
! --  ``System.Fat_Gen`` for Long_Long_Float.
  
  with System.Fat_Gen;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-ficobl.ads gcc-15.1.0/gcc/ada/libgnat/s-ficobl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-ficobl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-ficobl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.File_Control_Block with S
*** 100,107 ****
        --  defaults at this level). The string is always null-terminated.
  
        Mode : File_Mode;
!       --  The file mode. No checks are made that the mode is consistent
!       --  with the form used to fopen the file.
  
        Is_Regular_File : Boolean;
        --  A flag indicating if the file is a regular file
--- 100,107 ----
        --  defaults at this level). The string is always null-terminated.
  
        Mode : File_Mode;
!       --  The file mode. When sharing files, we check that the mode is
!       --  consistent with the already opened files.
  
        Is_Regular_File : Boolean;
        --  A flag indicating if the file is a regular file
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-filatt.ads gcc-15.1.0/gcc/ada/libgnat/s-filatt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-filatt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-filatt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2013-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fileio.adb gcc-15.1.0/gcc/ada/libgnat/s-fileio.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-fileio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fileio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.File_IO is
*** 1042,1047 ****
--- 1042,1052 ----
                       elsif Shared = Yes
                         and then P.Shared_Status = Yes
                       then
+                         if Mode /= P.Mode then
+                            raise Use_Error
+                              with "sharing file in different modes";
+                         end if;
+ 
                          Stream := P.Stream;
  
                          Record_AFCB;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fileio.ads gcc-15.1.0/gcc/ada/libgnat/s-fileio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fileio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fileio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finmas.adb gcc-15.1.0/gcc/ada/libgnat/s-finmas.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-finmas.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-finmas.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,526 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . F I N A L I Z A T I O N _ M A S T E R S          --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Ada.Exceptions; use Ada.Exceptions;
- 
- with System.Address_Image;
- with System.HTable;           use System.HTable;
- with System.IO;               use System.IO;
- with System.Soft_Links;       use System.Soft_Links;
- with System.Storage_Elements; use System.Storage_Elements;
- 
- package body System.Finalization_Masters is
- 
-    --  Finalize_Address hash table types. In general, masters are homogeneous
-    --  collections of controlled objects. Rare cases such as allocations on a
-    --  subpool require heterogeneous masters. The following table provides a
-    --  relation between object address and its Finalize_Address routine.
- 
-    type Header_Num is range 0 .. 127;
- 
-    function Hash (Key : System.Address) return Header_Num;
- 
-    --  Address --> Finalize_Address_Ptr
- 
-    package Finalize_Address_Table is new Simple_HTable
-      (Header_Num => Header_Num,
-       Element    => Finalize_Address_Ptr,
-       No_Element => null,
-       Key        => System.Address,
-       Hash       => Hash,
-       Equal      => "=");
- 
-    ---------------------------
-    -- Add_Offset_To_Address --
-    ---------------------------
- 
-    function Add_Offset_To_Address
-      (Addr   : System.Address;
-       Offset : System.Storage_Elements.Storage_Offset) return System.Address
-    is
-    begin
-       return System.Storage_Elements."+" (Addr, Offset);
-    end Add_Offset_To_Address;
- 
-    ------------------------
-    -- Attach_Unprotected --
-    ------------------------
- 
-    procedure Attach_Unprotected
-      (N : not null FM_Node_Ptr;
-       L : not null FM_Node_Ptr)
-    is
-    begin
-       L.Next.Prev := N;
-       N.Next := L.Next;
-       L.Next := N;
-       N.Prev := L;
-    end Attach_Unprotected;
- 
-    ---------------
-    -- Base_Pool --
-    ---------------
- 
-    function Base_Pool
-      (Master : Finalization_Master) return Any_Storage_Pool_Ptr
-    is
-    begin
-       return Master.Base_Pool;
-    end Base_Pool;
- 
-    -----------------------------------------
-    -- Delete_Finalize_Address_Unprotected --
-    -----------------------------------------
- 
-    procedure Delete_Finalize_Address_Unprotected (Obj : System.Address) is
-    begin
-       Finalize_Address_Table.Remove (Obj);
-    end Delete_Finalize_Address_Unprotected;
- 
-    ------------------------
-    -- Detach_Unprotected --
-    ------------------------
- 
-    procedure Detach_Unprotected (N : not null FM_Node_Ptr) is
-    begin
-       if N.Prev /= null and then N.Next /= null then
-          N.Prev.Next := N.Next;
-          N.Next.Prev := N.Prev;
-          N.Prev := null;
-          N.Next := null;
-       end if;
-    end Detach_Unprotected;
- 
-    --------------
-    -- Finalize --
-    --------------
- 
-    overriding procedure Finalize (Master : in out Finalization_Master) is
-       Cleanup  : Finalize_Address_Ptr;
-       Curr_Ptr : FM_Node_Ptr;
-       Ex_Occur : Exception_Occurrence;
-       Obj_Addr : Address;
-       Raised   : Boolean := False;
- 
-       function Is_Empty_List (L : not null FM_Node_Ptr) return Boolean;
-       --  Determine whether a list contains only one element, the dummy head
- 
-       -------------------
-       -- Is_Empty_List --
-       -------------------
- 
-       function Is_Empty_List (L : not null FM_Node_Ptr) return Boolean is
-       begin
-          return L.Next = L and then L.Prev = L;
-       end Is_Empty_List;
- 
-    --  Start of processing for Finalize
- 
-    begin
-       Lock_Task.all;
- 
-       --  Synchronization:
-       --    Read  - allocation, finalization
-       --    Write - finalization
- 
-       if Master.Finalization_Started then
-          Unlock_Task.all;
- 
-          --  Double finalization may occur during the handling of stand alone
-          --  libraries or the finalization of a pool with subpools. Due to the
-          --  potential aliasing of masters in these two cases, do not process
-          --  the same master twice.
- 
-          return;
-       end if;
- 
-       --  Lock the master to prevent any allocations while the objects are
-       --  being finalized. The master remains locked because either the master
-       --  is explicitly deallocated or the associated access type is about to
-       --  go out of scope.
- 
-       --  Synchronization:
-       --    Read  - allocation, finalization
-       --    Write - finalization
- 
-       Master.Finalization_Started := True;
- 
-       while not Is_Empty_List (Master.Objects'Unchecked_Access) loop
-          Curr_Ptr := Master.Objects.Next;
- 
-          --  Synchronization:
-          --    Write - allocation, deallocation, finalization
- 
-          Detach_Unprotected (Curr_Ptr);
- 
-          --  Skip the list header in order to offer proper object layout for
-          --  finalization.
- 
-          Obj_Addr := Curr_Ptr.all'Address + Header_Size;
- 
-          --  Retrieve TSS primitive Finalize_Address depending on the master's
-          --  mode of operation.
- 
-          --  Synchronization:
-          --    Read  - allocation, finalization
-          --    Write - outside
- 
-          if Master.Is_Homogeneous then
- 
-             --  Synchronization:
-             --    Read  - finalization
-             --    Write - allocation, outside
- 
-             Cleanup := Master.Finalize_Address;
- 
-          else
-             --  Synchronization:
-             --    Read  - finalization
-             --    Write - allocation, deallocation
- 
-             Cleanup := Finalize_Address_Unprotected (Obj_Addr);
-          end if;
- 
-          begin
-             Cleanup (Obj_Addr);
-          exception
-             when Fin_Occur : others =>
-                if not Raised then
-                   Raised := True;
-                   Save_Occurrence (Ex_Occur, Fin_Occur);
-                end if;
-          end;
- 
-          --  When the master is a heterogeneous collection, destroy the object
-          --  - Finalize_Address pair since it is no longer needed.
- 
-          --  Synchronization:
-          --    Read  - finalization
-          --    Write - outside
- 
-          if not Master.Is_Homogeneous then
- 
-             --  Synchronization:
-             --    Read  - finalization
-             --    Write - allocation, deallocation, finalization
- 
-             Delete_Finalize_Address_Unprotected (Obj_Addr);
-          end if;
-       end loop;
- 
-       Unlock_Task.all;
- 
-       --  If the finalization of a particular object failed or Finalize_Address
-       --  was not set, reraise the exception now.
- 
-       if Raised then
-          Reraise_Occurrence (Ex_Occur);
-       end if;
-    end Finalize;
- 
-    ----------------------
-    -- Finalize_Address --
-    ----------------------
- 
-    function Finalize_Address
-      (Master : Finalization_Master) return Finalize_Address_Ptr
-    is
-    begin
-       return Master.Finalize_Address;
-    end Finalize_Address;
- 
-    ----------------------------------
-    -- Finalize_Address_Unprotected --
-    ----------------------------------
- 
-    function Finalize_Address_Unprotected
-      (Obj : System.Address) return Finalize_Address_Ptr
-    is
-    begin
-       return Finalize_Address_Table.Get (Obj);
-    end Finalize_Address_Unprotected;
- 
-    --------------------------
-    -- Finalization_Started --
-    --------------------------
- 
-    function Finalization_Started
-      (Master : Finalization_Master) return Boolean
-    is
-    begin
-       return Master.Finalization_Started;
-    end Finalization_Started;
- 
-    ----------
-    -- Hash --
-    ----------
- 
-    function Hash (Key : System.Address) return Header_Num is
-    begin
-       return
-         Header_Num
-           (To_Integer (Key) mod Integer_Address (Header_Num'Range_Length));
-    end Hash;
- 
-    -----------------
-    -- Header_Size --
-    -----------------
- 
-    function Header_Size return System.Storage_Elements.Storage_Count is
-    begin
-       return FM_Node'Size / Storage_Unit;
-    end Header_Size;
- 
-    ----------------
-    -- Initialize --
-    ----------------
- 
-    overriding procedure Initialize (Master : in out Finalization_Master) is
-    begin
-       --  The dummy head must point to itself in both directions
- 
-       Master.Objects.Next := Master.Objects'Unchecked_Access;
-       Master.Objects.Prev := Master.Objects'Unchecked_Access;
-    end Initialize;
- 
-    --------------------
-    -- Is_Homogeneous --
-    --------------------
- 
-    function Is_Homogeneous (Master : Finalization_Master) return Boolean is
-    begin
-       return Master.Is_Homogeneous;
-    end Is_Homogeneous;
- 
-    -------------
-    -- Objects --
-    -------------
- 
-    function Objects (Master : Finalization_Master) return FM_Node_Ptr is
-    begin
-       return Master.Objects'Unrestricted_Access;
-    end Objects;
- 
-    ------------------
-    -- Print_Master --
-    ------------------
- 
-    procedure Print_Master (Master : Finalization_Master) is
-       Head      : constant FM_Node_Ptr := Master.Objects'Unrestricted_Access;
-       Head_Seen : Boolean := False;
-       N_Ptr     : FM_Node_Ptr;
- 
-    begin
-       --  Output the basic contents of a master
- 
-       --    Master   : 0x123456789
-       --    Is_Hmgen : TURE <or> FALSE
-       --    Base_Pool: null <or> 0x123456789
-       --    Fin_Addr : null <or> 0x123456789
-       --    Fin_Start: TRUE <or> FALSE
- 
-       Put ("Master   : ");
-       Put_Line (Address_Image (Master'Address));
- 
-       Put ("Is_Hmgen : ");
-       Put_Line (Master.Is_Homogeneous'Img);
- 
-       Put ("Base_Pool: ");
-       if Master.Base_Pool = null then
-          Put_Line ("null");
-       else
-          Put_Line (Address_Image (Master.Base_Pool'Address));
-       end if;
- 
-       Put ("Fin_Addr : ");
-       if Master.Finalize_Address = null then
-          Put_Line ("null");
-       else
-          Put_Line (Address_Image (Master.Finalize_Address'Address));
-       end if;
- 
-       Put ("Fin_Start: ");
-       Put_Line (Master.Finalization_Started'Img);
- 
-       --  Output all chained elements. The format is the following:
- 
-       --    ^ <or> ? <or> null
-       --    |Header: 0x123456789 (dummy head)
-       --    |  Prev: 0x123456789
-       --    |  Next: 0x123456789
-       --    V
- 
-       --  ^ - the current element points back to the correct element
-       --  ? - the current element points back to an erroneous element
-       --  n - the current element points back to null
- 
-       --  Header - the address of the list header
-       --  Prev   - the address of the list header which the current element
-       --           points back to
-       --  Next   - the address of the list header which the current element
-       --           points to
-       --  (dummy head) - present if dummy head
- 
-       N_Ptr := Head;
-       while N_Ptr /= null loop  --  Should never be null
-          Put_Line ("V");
- 
-          --  We see the head initially; we want to exit when we see the head a
-          --  second time.
- 
-          if N_Ptr = Head then
-             exit when Head_Seen;
- 
-             Head_Seen := True;
-          end if;
- 
-          --  The current element is null. This should never happen since the
-          --  list is circular.
- 
-          if N_Ptr.Prev = null then
-             Put_Line ("null (ERROR)");
- 
-          --  The current element points back to the correct element
- 
-          elsif N_Ptr.Prev.Next = N_Ptr then
-             Put_Line ("^");
- 
-          --  The current element points to an erroneous element
- 
-          else
-             Put_Line ("? (ERROR)");
-          end if;
- 
-          --  Output the header and fields
- 
-          Put ("|Header: ");
-          Put (Address_Image (N_Ptr.all'Address));
- 
-          --  Detect the dummy head
- 
-          if N_Ptr = Head then
-             Put_Line (" (dummy head)");
-          else
-             Put_Line ("");
-          end if;
- 
-          Put ("|  Prev: ");
- 
-          if N_Ptr.Prev = null then
-             Put_Line ("null");
-          else
-             Put_Line (Address_Image (N_Ptr.Prev.all'Address));
-          end if;
- 
-          Put ("|  Next: ");
- 
-          if N_Ptr.Next = null then
-             Put_Line ("null");
-          else
-             Put_Line (Address_Image (N_Ptr.Next.all'Address));
-          end if;
- 
-          N_Ptr := N_Ptr.Next;
-       end loop;
-    end Print_Master;
- 
-    -------------------
-    -- Set_Base_Pool --
-    -------------------
- 
-    procedure Set_Base_Pool
-      (Master   : in out Finalization_Master;
-       Pool_Ptr : Any_Storage_Pool_Ptr)
-    is
-    begin
-       Master.Base_Pool := Pool_Ptr;
-    end Set_Base_Pool;
- 
-    --------------------------
-    -- Set_Finalize_Address --
-    --------------------------
- 
-    procedure Set_Finalize_Address
-      (Master       : in out Finalization_Master;
-       Fin_Addr_Ptr : Finalize_Address_Ptr)
-    is
-    begin
-       --  Synchronization:
-       --    Read  - finalization
-       --    Write - allocation, outside
- 
-       Lock_Task.all;
-       Set_Finalize_Address_Unprotected (Master, Fin_Addr_Ptr);
-       Unlock_Task.all;
-    end Set_Finalize_Address;
- 
-    --------------------------------------
-    -- Set_Finalize_Address_Unprotected --
-    --------------------------------------
- 
-    procedure Set_Finalize_Address_Unprotected
-      (Master       : in out Finalization_Master;
-       Fin_Addr_Ptr : Finalize_Address_Ptr)
-    is
-    begin
-       if Master.Finalize_Address = null then
-          Master.Finalize_Address := Fin_Addr_Ptr;
-       end if;
-    end Set_Finalize_Address_Unprotected;
- 
-    ----------------------------------------------------
-    -- Set_Heterogeneous_Finalize_Address_Unprotected --
-    ----------------------------------------------------
- 
-    procedure Set_Heterogeneous_Finalize_Address_Unprotected
-      (Obj          : System.Address;
-       Fin_Addr_Ptr : Finalize_Address_Ptr)
-    is
-    begin
-       Finalize_Address_Table.Set (Obj, Fin_Addr_Ptr);
-    end Set_Heterogeneous_Finalize_Address_Unprotected;
- 
-    --------------------------
-    -- Set_Is_Heterogeneous --
-    --------------------------
- 
-    procedure Set_Is_Heterogeneous (Master : in out Finalization_Master) is
-    begin
-       --  Synchronization:
-       --    Read  - finalization
-       --    Write - outside
- 
-       Lock_Task.all;
-       Master.Is_Homogeneous := False;
-       Unlock_Task.all;
-    end Set_Is_Heterogeneous;
- 
- end System.Finalization_Masters;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finmas.ads gcc-15.1.0/gcc/ada/libgnat/s-finmas.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-finmas.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-finmas.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,196 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . F I N A L I Z A T I O N _ M A S T E R S          --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Ada.Finalization;
- with System.Storage_Elements;
- with System.Storage_Pools;
- 
- package System.Finalization_Masters is
-    pragma Preelaborate;
- 
-    --  A reference to primitive Finalize_Address. The expander generates an
-    --  implementation of this procedure for each controlled and class-wide
-    --  type. Since controlled objects are simply viewed as addresses once
-    --  allocated through a master, Finalize_Address provides a backward
-    --  indirection from an address to a type-specific context.
- 
-    type Finalize_Address_Ptr is access procedure (Obj : System.Address);
- 
-    --  Heterogeneous collection type structure
- 
-    type FM_Node is private;
-    type FM_Node_Ptr is access all FM_Node;
-    pragma No_Strict_Aliasing (FM_Node_Ptr);
- 
-    --  A reference to any derivation from Root_Storage_Pool. Since this type
-    --  may not be used to allocate objects, its storage size is zero.
- 
-    type Any_Storage_Pool_Ptr is
-      access System.Storage_Pools.Root_Storage_Pool'Class;
-    for Any_Storage_Pool_Ptr'Storage_Size use 0;
- 
-    --  Finalization master type structure. A unique master is associated with
-    --  each access-to-controlled or access-to-class-wide type. Masters also act
-    --  as components of subpools. By default, a master contains objects of the
-    --  same designated type but it may also accommodate heterogeneous objects.
- 
-    type Finalization_Master is
-      new Ada.Finalization.Limited_Controlled with private;
- 
-    --  A reference to a finalization master. Since this type may not be used
-    --  to allocate objects, its storage size is zero.
- 
-    type Finalization_Master_Ptr is access all Finalization_Master;
-    for Finalization_Master_Ptr'Storage_Size use 0;
- 
-    procedure Attach_Unprotected
-      (N : not null FM_Node_Ptr;
-       L : not null FM_Node_Ptr);
-    --  Prepend a node to a specific finalization master
- 
-    procedure Delete_Finalize_Address_Unprotected (Obj : System.Address);
-    --  Destroy the relation pair object - Finalize_Address from the internal
-    --  hash table.
- 
-    procedure Detach_Unprotected (N : not null FM_Node_Ptr);
-    --  Remove a node from an arbitrary finalization master
- 
-    overriding procedure Finalize (Master : in out Finalization_Master);
-    --  Lock the master to prevent allocations during finalization. Iterate over
-    --  the list of allocated controlled objects, finalizing each one by calling
-    --  its specific Finalize_Address. In the end, deallocate the dummy head.
- 
-    function Finalize_Address
-      (Master : Finalization_Master) return Finalize_Address_Ptr;
-    --  Return a reference to the TSS primitive Finalize_Address associated with
-    --  a master.
- 
-    function Finalize_Address_Unprotected
-      (Obj : System.Address) return Finalize_Address_Ptr;
-    --  Retrieve the Finalize_Address primitive associated with a particular
-    --  object.
- 
-    function Finalization_Started (Master : Finalization_Master) return Boolean;
-    --  Return the finalization status of a master
- 
-    function Header_Size return System.Storage_Elements.Storage_Count;
-    --  Return the size of type FM_Node as Storage_Count
- 
-    function Is_Homogeneous (Master : Finalization_Master) return Boolean;
-    --  Return the behavior flag of a master
- 
-    function Objects (Master : Finalization_Master) return FM_Node_Ptr;
-    --  Return the header of the doubly-linked list of controlled objects
- 
-    procedure Print_Master (Master : Finalization_Master);
-    --  Debug routine, outputs the contents of a master
- 
-    procedure Set_Finalize_Address
-      (Master       : in out Finalization_Master;
-       Fin_Addr_Ptr : Finalize_Address_Ptr);
-    --  Compiler interface, do not call from within the run-time. Set the clean
-    --  up routine of a finalization master
- 
-    procedure Set_Finalize_Address_Unprotected
-      (Master       : in out Finalization_Master;
-       Fin_Addr_Ptr : Finalize_Address_Ptr);
-    --  Set the clean up routine of a finalization master
- 
-    procedure Set_Heterogeneous_Finalize_Address_Unprotected
-      (Obj          : System.Address;
-       Fin_Addr_Ptr : Finalize_Address_Ptr);
-    --  Add a relation pair object - Finalize_Address to the internal hash
-    --  table. This is done in the context of allocation on a heterogeneous
-    --  finalization master where a single master services multiple anonymous
-    --  access-to-controlled types.
- 
-    procedure Set_Is_Heterogeneous (Master : in out Finalization_Master);
-    --  Mark the master as being a heterogeneous collection of objects
- 
- private
-    --  Heterogeneous collection type structure
- 
-    type FM_Node is record
-       Prev : FM_Node_Ptr := null;
-       Next : FM_Node_Ptr := null;
-    end record;
- 
-    --  Finalization master type structure. A unique master is associated with
-    --  each access-to-controlled or access-to-class-wide type. Masters also act
-    --  as components of subpools. By default, a master contains objects of the
-    --  same designated type but it may also accommodate heterogeneous objects.
- 
-    type Finalization_Master is
-      new Ada.Finalization.Limited_Controlled with
-    record
-       Is_Homogeneous : Boolean := True;
-       --  A flag which controls the behavior of the master. A value of False
-       --  denotes a heterogeneous collection.
- 
-       Base_Pool : Any_Storage_Pool_Ptr := null;
-       --  A reference to the pool which this finalization master services. This
-       --  field is used in conjunction with the build-in-place machinery.
- 
-       Objects : aliased FM_Node;
-       --  A doubly linked list which contains the headers of all controlled
-       --  objects allocated in a [sub]pool.
- 
-       Finalize_Address : Finalize_Address_Ptr := null;
-       --  A reference to the routine reponsible for object finalization. This
-       --  is used only when the master is in homogeneous mode.
- 
-       Finalization_Started : Boolean := False;
-       --  A flag used to detect allocations which occur during the finalization
-       --  of a master. The allocations must raise Program_Error. This scenario
-       --  may arise in a multitask environment.
-    end record;
- 
-    --  Since RTSfind cannot contain names of the form RE_"+", the following
-    --  routine serves as a wrapper around System.Storage_Elements."+".
- 
-    function Add_Offset_To_Address
-      (Addr   : System.Address;
-       Offset : System.Storage_Elements.Storage_Offset) return System.Address;
- 
-    function Base_Pool
-      (Master : Finalization_Master) return Any_Storage_Pool_Ptr;
-    --  Return a reference to the underlying storage pool on which the master
-    --  operates.
- 
-    overriding procedure Initialize (Master : in out Finalization_Master);
-    --  Initialize the dummy head of a finalization master
- 
-    procedure Set_Base_Pool
-      (Master   : in out Finalization_Master;
-       Pool_Ptr : Any_Storage_Pool_Ptr);
-    --  Set the underlying pool of a finalization master
- 
- end System.Finalization_Masters;
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finpri.adb gcc-15.1.0/gcc/ada/libgnat/s-finpri.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-finpri.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-finpri.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,420 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --        S Y S T E M . F I N A L I Z A T I O N _ P R I M I T I V E S       --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --         Copyright (C) 2023-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Ada.Exceptions;           use Ada.Exceptions;
+ with Ada.Unchecked_Conversion;
+ 
+ with System.Soft_Links; use System.Soft_Links;
+ 
+ package body System.Finalization_Primitives is
+ 
+    procedure Raise_From_Controlled_Operation (X : Exception_Occurrence);
+    pragma Import (Ada, Raise_From_Controlled_Operation,
+                               "__gnat_raise_from_controlled_operation");
+ 
+    function To_Collection_Node_Ptr is
+      new Ada.Unchecked_Conversion (Address, Collection_Node_Ptr);
+ 
+    procedure Detach_Node_From_Collection (Node : not null Collection_Node_Ptr);
+    --  Remove a collection node from its associated finalization collection.
+    --  Calls to the procedure with a Node that has already been detached have
+    --  no effects.
+ 
+    procedure Lock_Collection (Collection : in out Finalization_Collection);
+    --  Lock the finalization collection. Upon return, the caller owns the lock
+    --  to the collection and no other call with the same actual parameter will
+    --  return until a corresponding call to Unlock_Collection has been made by
+    --  the caller. This means that it is not possible to call Lock_Collection
+    --  more than once on a collection without a call to Unlock_Collection in
+    --  between.
+ 
+    procedure Unlock_Collection (Collection : in out Finalization_Collection);
+    --  Unlock the finalization collection, i.e. relinquish ownership of the
+    --  lock to the collection.
+ 
+    ---------------------------------
+    -- Attach_Object_To_Collection --
+    ---------------------------------
+ 
+    procedure Attach_Object_To_Collection
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Collection       : in out Finalization_Collection)
+    is
+       Node : constant Collection_Node_Ptr :=
+                To_Collection_Node_Ptr (Object_Address - Header_Size);
+ 
+    begin
+       Lock_Collection (Collection);
+ 
+       --  Do not allow the attachment of controlled objects while the
+       --  associated collection is being finalized.
+ 
+       --  Synchronization:
+       --    Read  - attachment, finalization
+       --    Write - finalization
+ 
+       if Collection.Finalization_Started then
+          raise Program_Error with "attachment after finalization started";
+       end if;
+ 
+       --  Check whether primitive Finalize_Address is available. If it is
+       --  not, then either the expansion of the designated type failed or
+       --  the expansion of the allocator failed. This is a compiler bug.
+ 
+       pragma Assert
+         (Finalize_Address /= null, "primitive Finalize_Address not available");
+ 
+       Node.Enclosing_Collection := Collection'Unrestricted_Access;
+       Node.Finalize_Address     := Finalize_Address;
+       Node.Prev                 := Collection.Head'Unchecked_Access;
+       Node.Next                 := Collection.Head.Next;
+ 
+       Collection.Head.Next.Prev := Node;
+       Collection.Head.Next      := Node;
+ 
+       Unlock_Collection (Collection);
+ 
+    exception
+       when others =>
+ 
+          --  Unlock the collection in case the attachment failed and reraise
+          --  the exception.
+ 
+          Unlock_Collection (Collection);
+          raise;
+    end Attach_Object_To_Collection;
+ 
+    -----------------------------
+    -- Attach_Object_To_Master --
+    -----------------------------
+ 
+    procedure Attach_Object_To_Master
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Node             : not null Master_Node_Ptr;
+       Master           : in out Finalization_Master)
+    is
+    begin
+       Attach_Object_To_Node (Object_Address, Finalize_Address, Node.all);
+       Chain_Node_To_Master (Node, Master);
+    end Attach_Object_To_Master;
+ 
+    ---------------------------
+    -- Attach_Object_To_Node --
+    ---------------------------
+ 
+    procedure Attach_Object_To_Node
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Node             : in out Master_Node)
+    is
+    begin
+       pragma Assert (Node.Object_Address = Null_Address
+         and then Node.Finalize_Address = null);
+ 
+       Node.Object_Address   := Object_Address;
+       Node.Finalize_Address := Finalize_Address;
+    end Attach_Object_To_Node;
+ 
+    --------------------------
+    -- Chain_Node_To_Master --
+    --------------------------
+ 
+    procedure Chain_Node_To_Master
+      (Node   : not null Master_Node_Ptr;
+       Master : in out Finalization_Master)
+    is
+    begin
+       Node.Next   := Master.Head;
+       Master.Head := Node;
+    end Chain_Node_To_Master;
+ 
+    ---------------------------------
+    -- Detach_Node_From_Collection --
+    ---------------------------------
+ 
+    procedure Detach_Node_From_Collection
+      (Node : not null Collection_Node_Ptr)
+    is
+    begin
+       if Node.Prev /= null and then Node.Next /= null then
+          Node.Prev.Next := Node.Next;
+          Node.Next.Prev := Node.Prev;
+          Node.Prev := null;
+          Node.Next := null;
+       end if;
+    end Detach_Node_From_Collection;
+ 
+    -----------------------------------
+    -- Detach_Object_From_Collection --
+    -----------------------------------
+ 
+    procedure Detach_Object_From_Collection
+      (Object_Address : System.Address)
+    is
+       Node : constant Collection_Node_Ptr :=
+                To_Collection_Node_Ptr (Object_Address - Header_Size);
+ 
+    begin
+       Lock_Collection (Node.Enclosing_Collection.all);
+ 
+       Detach_Node_From_Collection (Node);
+ 
+       Unlock_Collection (Node.Enclosing_Collection.all);
+    end Detach_Object_From_Collection;
+ 
+    --------------
+    -- Finalize --
+    --------------
+ 
+    procedure Finalize (Collection : in out Finalization_Collection) is
+       Curr_Ptr                      : Collection_Node_Ptr;
+       Exc_Occur                     : Exception_Occurrence;
+       Finalization_Exception_Raised : Boolean := False;
+       Obj_Addr                      : Address;
+ 
+       function Is_Empty_List (L : not null Collection_Node_Ptr) return Boolean;
+       --  Determine whether a list contains only one element, the dummy head
+ 
+       -------------------
+       -- Is_Empty_List --
+       -------------------
+ 
+       function Is_Empty_List (L : not null Collection_Node_Ptr) return Boolean
+       is
+       begin
+          return L.Next = L and then L.Prev = L;
+       end Is_Empty_List;
+ 
+    begin
+       Lock_Collection (Collection);
+ 
+       --  Synchronization:
+       --    Read  - attachment, finalization
+       --    Write - finalization
+ 
+       if Collection.Finalization_Started then
+          Unlock_Collection (Collection);
+ 
+          --  Double finalization may occur during the handling of stand-alone
+          --  libraries or the finalization of a pool with subpools.
+ 
+          return;
+       end if;
+ 
+       --  Lock the collection to prevent any attachment while the objects are
+       --  being finalized. The collection remains locked because either it is
+       --  explicitly deallocated or the associated access type is about to go
+       --  out of scope.
+ 
+       --  Synchronization:
+       --    Read  - attachment, finalization
+       --    Write - finalization
+ 
+       Collection.Finalization_Started := True;
+ 
+       --  Note that we cannot walk the list while finalizing its elements
+       --  because the finalization of one may call Unchecked_Deallocation
+       --  on another and, therefore, detach it from anywhere on the list.
+       --  Instead, we empty the list by repeatedly finalizing the first
+       --  element (after the dummy head) and detaching it from the list.
+ 
+       while not Is_Empty_List (Collection.Head'Unchecked_Access) loop
+          Curr_Ptr := Collection.Head.Next;
+ 
+          --  Synchronization:
+          --    Write - attachment, detachment, finalization
+ 
+          Detach_Node_From_Collection (Curr_Ptr);
+ 
+          --  Skip the list header in order to offer proper object layout for
+          --  finalization.
+ 
+          Obj_Addr := Curr_Ptr.all'Address + Header_Size;
+ 
+          --  Temporarily release the lock because the call to Finalize_Address
+          --  may ultimately invoke Detach_Object_From_Collection.
+ 
+          Unlock_Collection (Collection);
+ 
+          begin
+             Curr_Ptr.Finalize_Address (Obj_Addr);
+          exception
+             when Fin_Occur : others =>
+                if not Finalization_Exception_Raised then
+                   Finalization_Exception_Raised := True;
+                   Save_Occurrence (Exc_Occur, Fin_Occur);
+                end if;
+          end;
+ 
+          --  Retake the lock for the next iteration
+ 
+          Lock_Collection (Collection);
+       end loop;
+ 
+       Unlock_Collection (Collection);
+ 
+       --  If one of the finalization actions raised an exception, reraise it
+ 
+       if Finalization_Exception_Raised then
+          Raise_From_Controlled_Operation (Exc_Occur);
+       end if;
+    end Finalize;
+ 
+    ---------------------
+    -- Finalize_Master --
+    ---------------------
+ 
+    procedure Finalize_Master (Master : in out Finalization_Master) is
+       Exc_Occur                     : Exception_Occurrence;
+       Finalization_Exception_Raised : Boolean := False;
+       Node                          : Master_Node_Ptr;
+ 
+    begin
+       Node := Master.Head;
+ 
+       --  If exceptions are enabled, we catch them locally and reraise one
+       --  once all the finalization actions have been completed.
+ 
+       if Master.Exceptions_OK then
+          while Node /= null loop
+             begin
+                Finalize_Object (Node.all, Node.Finalize_Address);
+ 
+             exception
+                when Exc : others =>
+                   if not Finalization_Exception_Raised then
+                      Finalization_Exception_Raised := True;
+ 
+                      if Master.Library_Level then
+                         if Master.Extra_Info then
+                            Save_Library_Occurrence (Exc'Unrestricted_Access);
+                         else
+                            Save_Library_Occurrence (null);
+                         end if;
+ 
+                      elsif Master.Extra_Info then
+                         Save_Occurrence (Exc_Occur, Exc);
+                      end if;
+                   end if;
+             end;
+ 
+             Node := Node.Next;
+          end loop;
+ 
+       --  Otherwise we call finalization procedures without protection
+ 
+       else
+          while Node /= null loop
+             Finalize_Object (Node.all, Node.Finalize_Address);
+ 
+             Node := Node.Next;
+          end loop;
+       end if;
+ 
+       Master.Head := null;
+ 
+       --  If one of the finalization actions raised an exception, and we are
+       --  not at library level, then reraise the exception.
+ 
+       if Finalization_Exception_Raised and then not Master.Library_Level then
+          if Master.Extra_Info then
+             Raise_From_Controlled_Operation (Exc_Occur);
+          else
+             raise Program_Error with "finalize/adjust raised exception";
+          end if;
+       end if;
+    end Finalize_Master;
+ 
+    ---------------------
+    -- Finalize_Object --
+    ---------------------
+ 
+    procedure Finalize_Object
+      (Node             : in out Master_Node;
+       Finalize_Address : Finalize_Address_Ptr)
+    is
+       Addr : constant System.Address := Node.Object_Address;
+ 
+    begin
+       if Addr /= Null_Address then
+          Node.Object_Address := Null_Address;
+ 
+          pragma Assert (Node.Finalize_Address = Finalize_Address);
+          Finalize_Address (Addr);
+       end if;
+    end Finalize_Object;
+ 
+    ----------------
+    -- Initialize --
+    ----------------
+ 
+    procedure Initialize (Collection : in out Finalization_Collection) is
+    begin
+       --  The dummy head must point to itself in both directions
+ 
+       Collection.Head.Prev := Collection.Head'Unchecked_Access;
+       Collection.Head.Next := Collection.Head'Unchecked_Access;
+ 
+       Initialize_RTS_Lock (Collection.Lock'Address);
+ 
+       Collection.Finalization_Started := False;
+    end Initialize;
+ 
+    ---------------------
+    -- Lock_Collection --
+    ---------------------
+ 
+    procedure Lock_Collection (Collection : in out Finalization_Collection) is
+    begin
+       Acquire_RTS_Lock (Collection.Lock'Address);
+    end Lock_Collection;
+ 
+    -------------------------------------
+    -- Suppress_Object_Finalize_At_End --
+    -------------------------------------
+ 
+    procedure Suppress_Object_Finalize_At_End (Node : in out Master_Node) is
+    begin
+       Node.Object_Address := Null_Address;
+    end Suppress_Object_Finalize_At_End;
+ 
+    -----------------------
+    -- Unlock_Collection --
+    -----------------------
+ 
+    procedure Unlock_Collection (Collection : in out Finalization_Collection) is
+    begin
+       Release_RTS_Lock (Collection.Lock'Address);
+    end Unlock_Collection;
+ 
+ end System.Finalization_Primitives;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finpri.ads gcc-15.1.0/gcc/ada/libgnat/s-finpri.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-finpri.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-finpri.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,263 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --        S Y S T E M . F I N A L I Z A T I O N _ P R I M I T I V E S       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2023-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with System.OS_Locks;
+ with System.Storage_Elements;
+ 
+ --  This package encapsulates the types and operations used by the compiler
+ --  to support finalization of objects of finalizable types (types derived
+ --  from standard Ada types Controlled and Limited_Controlled, as well as
+ --  types declared with the GNAT Finalizable aspect).
+ 
+ package System.Finalization_Primitives with Preelaborate is
+ 
+    use type System.Storage_Elements.Storage_Offset;
+ 
+    type Finalize_Address_Ptr is access procedure (Obj : System.Address);
+    --  Values of this type denote finalization procedures associated with
+    --  objects that have controlled parts. For convenience, such objects
+    --  are simply referred to as controlled objects in the remainder of
+    --  this package.
+ 
+    type Master_Node is private;
+    --  Each controlled object associated with a finalization master has an
+    --  associated master node created by the compiler.
+ 
+    type Master_Node_Ptr is access all Master_Node;
+    for Master_Node_Ptr'Storage_Size use 0;
+    --  A reference to a master node. Since this type may not be used to
+    --  allocate objects, its storage size is zero.
+ 
+    --------------------------------------------------------------------------
+    --  Types and operations of finalization masters: A finalization master
+    --  is used to manage a set of controlled objects declared at the library
+    --  level of the program or associated with the declarative part of a
+    --  subprogram or other closed scopes (block statements, for example).
+ 
+    type Finalization_Master
+      (Exceptions_OK : Boolean;
+       Extra_Info    : Boolean;
+       Library_Level : Boolean) is limited private;
+    --  Objects of this type encapsulate an ordered list of zero or more master
+    --  nodes, each of which is associated with a controlled object.
+ 
+    procedure Attach_Object_To_Master
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Node             : not null Master_Node_Ptr;
+       Master           : in out Finalization_Master);
+    --  Associates a controlled object and its master node with a given master.
+    --  Finalize_Address denotes the operation to be called to finalize the
+    --  object (which could be a user-declared Finalize procedure or a procedure
+    --  generated by the compiler). An object can be associated with at most one
+    --  finalization master.
+ 
+    procedure Attach_Object_To_Node
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Node             : in out Master_Node);
+    --  Associates a controlled object with its master node only. This is used
+    --  when there is a single object to be finalized in the context, as well as
+    --  for objects that need special processing (return object in an extended
+    --  return statement or transient objects).
+ 
+    procedure Chain_Node_To_Master
+      (Node   : not null Master_Node_Ptr;
+       Master : in out Finalization_Master);
+    --  Chain a master node to the given master. This is used to chain the node
+    --  to the master of the enclosing scope for the objects that need special
+    --  processing mentioned for Attach_Object_To_Node.
+ 
+    procedure Finalize_Master (Master : in out Finalization_Master);
+    --  Finalizes each of the controlled objects associated with Master, in the
+    --  reverse of the order in which they were attached. Calls to the procedure
+    --  with a Master that has already been finalized have no effects.
+ 
+    procedure Finalize_Object
+      (Node             : in out Master_Node;
+       Finalize_Address : Finalize_Address_Ptr);
+    --  Finalizes the controlled object attached to Node by generating a call to
+    --  Finalize_Address on it, which has to be equal to Node.Finalize_Address.
+    --  The weird redundancy is intended to help the optimizer turn an indirect
+    --  call to Finalize_Address into a direct one and then inline it if needed,
+    --  after having inlined Finalize_Object itself. Calls to the procedure with
+    --  a Node that has already been finalized have no effects.
+ 
+    procedure Suppress_Object_Finalize_At_End (Node : in out Master_Node);
+    --  Changes the state of Node to effectively suppress a call to Node's
+    --  associated object's Finalize procedure. This is called at the end
+    --  of an extended return statement of a function whose result type
+    --  needs finalization, to ensure that the function's return object is
+    --  not finalized within the function in the case the return statement
+    --  is completed normally (it will still be finalized if an exception
+    --  is raised before the normal completion of the return statement).
+ 
+    --------------------------------------------------------------------------
+    --  Types and operations of finalization collections: A finalization
+    --  collection is used to manage a set of controlled objects associated
+    --  with an access type. Such collections are always associated with a
+    --  finalization master, either at the library-level or within a subprogram,
+    --  depending on where the access type is declared, and the collection
+    --  object itself is managed via a Master_Node attached to its finalization
+    --  master.
+ 
+    type Finalization_Collection is limited private
+      with Finalizable => (Initialize           => Initialize,
+                           Finalize             => Finalize,
+                           Relaxed_Finalization => Standard.False);
+    --  Objects of this type encapsulate a set of zero or more controlled
+    --  objects associated with an access type. The compiler ensures that
+    --  each finalization collection is in turn associated with a finalization
+    --  master.
+ 
+    type Finalization_Collection_Ptr is access all Finalization_Collection;
+    for Finalization_Collection_Ptr'Storage_Size use 0;
+    --  A reference to a collection. Since this type may not be used to
+    --  allocate objects, its storage size is zero.
+ 
+    procedure Initialize (Collection : in out Finalization_Collection);
+    --  Initializes the dummy head of a collection
+ 
+    procedure Finalize (Collection : in out Finalization_Collection);
+    --  Finalizes each object that has been associated with a finalization
+    --  collection, in some arbitrary order. Calls to this procedure with
+    --  a collection that has already been finalized have no effect.
+ 
+    procedure Attach_Object_To_Collection
+      (Object_Address   : System.Address;
+       Finalize_Address : not null Finalize_Address_Ptr;
+       Collection       : in out Finalization_Collection);
+    --  Associates a controlled object allocated for some access type with a
+    --  given finalization collection. Finalize_Address denotes the operation
+    --  to be called to finalize the object (which could be a user-declared
+    --  Finalize procedure or a procedure generated by the compiler). An object
+    --  can be associated with at most one finalization collection.
+ 
+    procedure Detach_Object_From_Collection (Object_Address : System.Address);
+    --  Removes a controlled object from its associated finalization collection.
+    --  Calls to the procedure with an object that has already been detached
+    --  have no effects.
+ 
+    function Header_Alignment return System.Storage_Elements.Storage_Count;
+    --  Return the alignment of the header to be placed immediately in front of
+    --  a controlled object allocated for some access type, in storage units.
+ 
+    function Header_Size return System.Storage_Elements.Storage_Count;
+   --  Return the size of the header to be placed immediately in front of a
+   --  controlled object allocated for some access type, in storage units.
+ 
+ private
+ 
+    --  Finalization masters:
+ 
+    --  Master node type structure. Finalize_Address comes first because it is
+    --  an access-to-subprogram and, therefore, might be twice as large and as
+    --  aligned as an access-to-object on some platforms.
+ 
+    type Master_Node is record
+       Finalize_Address : Finalize_Address_Ptr := null;
+       Object_Address   : System.Address       := Null_Address;
+       Next             : Master_Node_Ptr      := null;
+    end record;
+ 
+     --  Finalization master type structure. A unique master is associated
+     --  with each scope containing controlled objects.
+ 
+    type Finalization_Master
+      (Exceptions_OK : Boolean;
+       Extra_Info    : Boolean;
+       Library_Level : Boolean) is limited
+    record
+       Head : Master_Node_Ptr := null;
+    end record;
+ 
+    --  These operations need to be performed in line for maximum performance
+ 
+    pragma Inline (Attach_Object_To_Master);
+    pragma Inline (Attach_Object_To_Node);
+    pragma Inline (Chain_Node_To_Master);
+    pragma Inline (Finalize_Object);
+    pragma Inline (Suppress_Object_Finalize_At_End);
+ 
+    --  Finalization collections:
+ 
+    type Collection_Node;
+    --  Each controlled object associated with a finalization collection has
+    --  an associated object of this type.
+ 
+    type Collection_Node_Ptr is access all Collection_Node;
+    for Collection_Node_Ptr'Storage_Size use 0;
+    pragma No_Strict_Aliasing (Collection_Node_Ptr);
+    --  A reference to a collection node. Since this type may not be used to
+    --  allocate objects, its storage size is zero.
+ 
+    --  Collection node type structure. Finalize_Address comes first because it
+    --  is an access-to-subprogram and, therefore, might be twice as large and
+    --  as aligned as an access-to-object on some platforms.
+ 
+    type Collection_Node is record
+       Finalize_Address : Finalize_Address_Ptr := null;
+       --  A pointer to the Finalize_Address procedure of the object
+ 
+       Enclosing_Collection : Finalization_Collection_Ptr := null;
+       --  A pointer to the collection to which the node is attached
+ 
+       Prev : Collection_Node_Ptr := null;
+       Next : Collection_Node_Ptr := null;
+       --  Collection nodes are managed as a circular doubly-linked list
+    end record;
+ 
+    function Header_Alignment return System.Storage_Elements.Storage_Count is
+      (Collection_Node'Alignment);
+ 
+    function Header_Size return System.Storage_Elements.Storage_Count is
+      (Collection_Node'Object_Size / Storage_Unit);
+ 
+    --  Finalization collection type structure
+ 
+    type Finalization_Collection is limited record
+       Head : aliased Collection_Node;
+       --  The head of the circular doubly-linked list of collection nodes
+ 
+       Lock : aliased System.OS_Locks.RTS_Lock;
+       --  A lock to synchronize concurrent accesses to the collection
+ 
+       Finalization_Started : Boolean;
+       --  A flag used to detect allocations which occur during the finalization
+       --  of a collection. The allocations must raise Program_Error. This may
+       --  arise in a multitask environment.
+    end record;
+ 
+    --  This operation is very simple and thus can be performed in line
+ 
+    pragma Inline (Initialize);
+ 
+ end System.Finalization_Primitives;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finroo.adb gcc-15.1.0/gcc/ada/libgnat/s-finroo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-finroo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-finroo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-finroo.ads gcc-15.1.0/gcc/ada/libgnat/s-finroo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-finroo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-finroo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,43 ****
  package System.Finalization_Root is
     pragma Preelaborate;
  
!    --  The base for types Controlled and Limited_Controlled declared in Ada.
!    --  Finalization.
  
!    type Root_Controlled is abstract tagged null record;
  
     procedure Adjust     (Object : in out Root_Controlled);
     procedure Finalize   (Object : in out Root_Controlled);
--- 34,47 ----
  package System.Finalization_Root is
     pragma Preelaborate;
  
!    --  The root type for types Controlled and Limited_Controlled declared in
!    --  Ada.Finalization (False needs to be qualified due to RTSfind quirks).
  
!    type Root_Controlled is abstract tagged null record
!      with Finalizable => (Initialize           => Initialize,
!                           Adjust               => Adjust,
!                           Finalize             => Finalize,
!                           Relaxed_Finalization => Standard.False);
  
     procedure Adjust     (Object : in out Root_Controlled);
     procedure Finalize   (Object : in out Root_Controlled);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-flocon.adb gcc-15.1.0/gcc/ada/libgnat/s-flocon.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-flocon.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-flocon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-flocon.ads gcc-15.1.0/gcc/ada/libgnat/s-flocon.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-flocon.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-flocon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Float_Control is
*** 56,59 ****
--- 56,63 ----
     --
     --  The call to Reset simply has no effect if the target environment
     --  does not give rise to such concerns.
+ 
+    --  The *Reset* procedure is a no-op on all Bareboard targets, the FPU
+    --  configuration being under full control there.
+ 
  end System.Float_Control;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-flocon__none.adb gcc-15.1.0/gcc/ada/libgnat/s-flocon__none.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-flocon__none.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-flocon__none.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2025, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fode128.ads gcc-15.1.0/gcc/ada/libgnat/s-fode128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fode128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fode128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fode32.ads gcc-15.1.0/gcc/ada/libgnat/s-fode32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fode32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fode32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fode64.ads gcc-15.1.0/gcc/ada/libgnat/s-fode64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fode64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fode64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fofi128.ads gcc-15.1.0/gcc/ada/libgnat/s-fofi128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fofi128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fofi128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fofi32.ads gcc-15.1.0/gcc/ada/libgnat/s-fofi32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fofi32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fofi32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fofi64.ads gcc-15.1.0/gcc/ada/libgnat/s-fofi64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fofi64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fofi64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fore_d.adb gcc-15.1.0/gcc/ada/libgnat/s-fore_d.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-fore_d.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fore_d.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fore_d.ads gcc-15.1.0/gcc/ada/libgnat/s-fore_d.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fore_d.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fore_d.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fore_f.adb gcc-15.1.0/gcc/ada/libgnat/s-fore_f.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-fore_f.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fore_f.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-fore_f.ads gcc-15.1.0/gcc/ada/libgnat/s-fore_f.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-fore_f.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-fore_f.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-forrea.adb gcc-15.1.0/gcc/ada/libgnat/s-forrea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-forrea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-forrea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-forrea.ads gcc-15.1.0/gcc/ada/libgnat/s-forrea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-forrea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-forrea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-gearop.adb gcc-15.1.0/gcc/ada/libgnat/s-gearop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-gearop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-gearop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-gearop.ads gcc-15.1.0/gcc/ada/libgnat/s-gearop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-gearop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-gearop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-genbig.adb gcc-15.1.0/gcc/ada/libgnat/s-genbig.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-genbig.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-genbig.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Generic_Bignums is
*** 91,97 ****
        Remainder         : out Big_Integer;
        Discard_Quotient  : Boolean := False;
        Discard_Remainder : Boolean := False);
!    --  Returns the Quotient and Remainder from dividing abs (X) by abs (Y). The
     --  values of X and Y are not modified. If Discard_Quotient is True, then
     --  Quotient is undefined on return, and if Discard_Remainder is True, then
     --  Remainder is undefined on return. Service routine for Big_Div/Rem/Mod.
--- 91,97 ----
        Remainder         : out Big_Integer;
        Discard_Quotient  : Boolean := False;
        Discard_Remainder : Boolean := False);
!    --  Returns the Quotient and Remainder from dividing abs X by abs Y. The
     --  values of X and Y are not modified. If Discard_Quotient is True, then
     --  Quotient is undefined on return, and if Discard_Remainder is True, then
     --  Remainder is undefined on return. Service routine for Big_Div/Rem/Mod.
*************** package body System.Generic_Bignums is
*** 754,761 ****
              (Y.Len <= 1 or else (Y.Len = 2 and then Y.D (1) < 2**31))
        then
           declare
!             A : constant LLI := abs (From_Bignum (X));
!             B : constant LLI := abs (From_Bignum (Y));
           begin
              if not Discard_Quotient then
                 Quotient := To_Bignum (A / B);
--- 754,761 ----
              (Y.Len <= 1 or else (Y.Len = 2 and then Y.D (1) < 2**31))
        then
           declare
!             A : constant LLI := abs From_Bignum (X);
!             B : constant LLI := abs From_Bignum (Y);
           begin
              if not Discard_Quotient then
                 Quotient := To_Bignum (A / B);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-genbig.ads gcc-15.1.0/gcc/ada/libgnat/s-genbig.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-genbig.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-genbig.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-geveop.adb gcc-15.1.0/gcc/ada/libgnat/s-geveop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-geveop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-geveop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Address_Operations; use System.Address_Operations;
! with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Storage_Elements; use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Generic_Vector_Opera
*** 49,63 ****
       (R, X, Y : System.Address;
        Length  : System.Storage_Elements.Storage_Count)
     is
-       RA : Address := R;
-       XA : Address := X;
-       YA : Address := Y;
-       --  Address of next element to process in R, X and Y
- 
        VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (OrA (OrA (RA, XA), YA) mod VU /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
--- 48,57 ----
       (R, X, Y : System.Address;
        Length  : System.Storage_Elements.Storage_Count)
     is
        VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!         (if R mod VU /= 0 or X mod VU /= 0 or Y mod VU /= 0 then 0 else -1);
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
*************** package body System.Generic_Vector_Opera
*** 74,83 ****
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              XA + Storage_Offset
!                     ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all, VP (YA).all);
--- 68,82 ----
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              X + Storage_Offset
!                    ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
+       RA : Address := R;
+       XA : Address := X;
+       YA : Address := Y;
+       --  Address of next element to process in R, X and Y
+ 
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all, VP (YA).all);
*************** package body System.Generic_Vector_Opera
*** 102,115 ****
       (R, X    : System.Address;
        Length  : System.Storage_Elements.Storage_Count)
     is
-       RA : Address := R;
-       XA : Address := X;
-       --  Address of next element to process in R and X
- 
        VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (OrA (RA, XA) mod VU /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
--- 101,110 ----
       (R, X    : System.Address;
        Length  : System.Storage_Elements.Storage_Count)
     is
        VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!         (if R mod VU /= 0 or X mod VU /= 0 then 0 else -1);
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
*************** package body System.Generic_Vector_Opera
*** 126,135 ****
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              XA + Storage_Offset
!                     ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all);
--- 121,134 ----
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              X + Storage_Offset
!                    ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
+       RA : Address := R;
+       XA : Address := X;
+       --  Address of next element to process in R and X
+ 
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-geveop.ads gcc-15.1.0/gcc/ada/libgnat/s-geveop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-geveop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-geveop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 33,39 ****
  --  If the arguments are aligned on word boundaries and the word size is a
  --  multiple M of the element size, the operations will be done M elements
  --  at a time using vector operations on a word.
! 
  --  All routines assume argument arrays have the same length, and arguments
  --  with mode "in" do not alias arguments with mode "out" or "in out".
  --  If the number N of elements to be processed is not a multiple of M
--- 33,39 ----
  --  If the arguments are aligned on word boundaries and the word size is a
  --  multiple M of the element size, the operations will be done M elements
  --  at a time using vector operations on a word.
! --
  --  All routines assume argument arrays have the same length, and arguments
  --  with mode "in" do not alias arguments with mode "out" or "in out".
  --  If the number N of elements to be processed is not a multiple of M
*************** package System.Generic_Vector_Operations
*** 56,61 ****
--- 56,63 ----
     procedure Binary_Operation
       (R, X, Y : System.Address;
        Length  : System.Storage_Elements.Storage_Count);
+    --  *Binary_Operation* iterates on the elements pointed to by `X` and `Y`
+    --  and places the result in `R`.
  
     generic
        with function Element_Op (X : Element) return Element;
*************** package System.Generic_Vector_Operations
*** 63,66 ****
--- 65,71 ----
     procedure Unary_Operation
       (R, X    : System.Address;
        Length  : System.Storage_Elements.Storage_Count);
+    --  *Unary_Operation* iterates on the elements pointed to by `X`
+    --  and places the result in `R`.
+ 
  end System.Generic_Vector_Operations;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-gloloc.adb gcc-15.1.0/gcc/ada/libgnat/s-gloloc.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-gloloc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-gloloc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-gloloc.ads gcc-15.1.0/gcc/ada/libgnat/s-gloloc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-gloloc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-gloloc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb gcc-15.1.0/gcc/ada/libgnat/s-gloloc__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-gloloc__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-htable.adb gcc-15.1.0/gcc/ada/libgnat/s-htable.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-htable.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-htable.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1995-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1995-2025, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-htable.ads gcc-15.1.0/gcc/ada/libgnat/s-htable.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-htable.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-htable.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imad32.ads gcc-15.1.0/gcc/ada/libgnat/s-imad32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imad32.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-imad32.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,43 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                S Y S T E M . I M G _ A D D R E S S _ 3 2                 --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --            Copyright (C) 2024-2025, Free Software Foundation, Inc.       --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Interfaces;
+ with System.Image_A;
+ 
+ package System.Img_Address_32 is
+    pragma Pure;
+ 
+    package Impl is new Image_A (Interfaces.Unsigned_32);
+ 
+    function Address_Image32 (A : Address) return Impl.Address_String
+      renames Impl.Address_Image;
+ 
+ end System.Img_Address_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imad64.ads gcc-15.1.0/gcc/ada/libgnat/s-imad64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imad64.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-imad64.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,43 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                S Y S T E M . I M G _ A D D R E S S _ 6 4                 --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --            Copyright (C) 2024-2025, Free Software Foundation, Inc.       --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Interfaces;
+ with System.Image_A;
+ 
+ package System.Img_Address_64 is
+    pragma Pure;
+ 
+    package Impl is new Image_A (Interfaces.Unsigned_64);
+ 
+    function Address_Image64 (A : Address) return Impl.Address_String
+      renames Impl.Address_Image;
+ 
+ end System.Img_Address_64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagea.adb gcc-15.1.0/gcc/ada/libgnat/s-imagea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imagea.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-imagea.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,80 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                       S Y S T E M . I M A G E _ A                        --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 2024-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Ada.Unchecked_Conversion;
+ 
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
+ package body System.Image_A is
+ 
+    -------------------
+    -- Address_Image --
+    -------------------
+ 
+    function Address_Image (A : Address) return Address_String is
+       Result : Address_String;
+ 
+       type Byte is mod 2 ** 8;
+       for Byte'Size use 8;
+ 
+       Hexdigs :
+         constant array (Byte range 0 .. 15) of Character := "0123456789ABCDEF";
+ 
+       type Bytes is array (1 .. Uns'Size / Storage_Unit) of Byte;
+ 
+       function To_Bytes is new Ada.Unchecked_Conversion (Uns, Bytes);
+ 
+       Byte_Sequence : constant Bytes := To_Bytes (Uns (Integer_Address (A)));
+ 
+       LE : constant := Standard'Default_Bit_Order;
+       BE : constant := 1 - LE;
+       --  Set to 1/0 for True/False for Little-Endian/Big-Endian
+ 
+       Start : constant Natural := BE * (1) + LE * (Bytes'Length);
+       Incr  : constant Integer := BE * (1) + LE * (-1);
+       --  Start and increment for accessing characters of address string
+ 
+       Ptr : Natural;
+       --  Scan address string
+ 
+    begin
+       Ptr := Start;
+ 
+       for N in Bytes'Range loop
+          Result (2 * N - 1) := Hexdigs (Byte_Sequence (Ptr) / 16);
+          Result (2 * N)     := Hexdigs (Byte_Sequence (Ptr) mod 16);
+          Ptr := Ptr + Incr;
+       end loop;
+ 
+       return Result;
+    end Address_Image;
+ 
+ end System.Image_A;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagea.ads gcc-15.1.0/gcc/ada/libgnat/s-imagea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imagea.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-imagea.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,45 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                       S Y S T E M . I M A G E _ A                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2024-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ generic
+ 
+    type Uns is mod <>;
+ 
+ package System.Image_A is
+    pragma Pure;
+ 
+    subtype Address_String is String (1 .. 2 * Uns'Size / Storage_Unit);
+ 
+    function Address_Image (A : Address) return Address_String;
+    --  Return a string made up of hexadecimal digits with upper case letters
+    --  and without prefix representing the (lower part of) address A.
+ 
+ end System.Image_A;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imageb.adb gcc-15.1.0/gcc/ada/libgnat/s-imageb.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imageb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imageb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imageb.ads gcc-15.1.0/gcc/ada/libgnat/s-imageb.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imageb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imageb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image in based format of signed and
! --  unsigned integers for use by Text_IO.Integer_IO and Text_IO.Modular_IO.
  
  generic
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image in based format of signed and
! --  unsigned integers for use by ``Text_IO.Integer_IO`` and
! --  ``Text_IO.Modular_IO``.
  
  generic
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imaged.adb gcc-15.1.0/gcc/ada/libgnat/s-imaged.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imaged.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imaged.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,38 ****
--- 29,70 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Image_I;
  with System.Img_Util; use System.Img_Util;
+ with System.Value_I_Spec;
+ with System.Value_U_Spec;
  
  package body System.Image_D is
  
+    --  Contracts, ghost code, loop invariants and assertions in this unit are
+    --  meant for analysis only, not for run-time checking, as it would be too
+    --  costly otherwise. This is enforced by setting the assertion policy to
+    --  Ignore.
+ 
+    pragma Assertion_Policy (Assert             => Ignore,
+                             Assert_And_Cut     => Ignore,
+                             Contract_Cases     => Ignore,
+                             Ghost              => Ignore,
+                             Loop_Invariant     => Ignore,
+                             Pre                => Ignore,
+                             Post               => Ignore,
+                             Subprogram_Variant => Ignore);
+ 
+    package Uns_Spec is new System.Value_U_Spec (Uns);
+    package Int_Spec is new System.Value_I_Spec (Int, Uns, Uns_Spec);
+ 
+    package Image_I is new System.Image_I
+      (Int    => Int,
+       Uns    => Uns,
+       U_Spec => Uns_Spec,
+       I_Spec => Int_Spec);
+ 
+    procedure Set_Image_Integer
+      (V : Int;
+       S : in out String;
+       P : in out Natural)
+      renames Image_I.Set_Image_Integer;
+ 
     -------------------
     -- Image_Decimal --
     -------------------
*************** package body System.Image_D is
*** 71,81 ****
        Aft   : Natural;
        Exp   : Natural)
     is
!       Digs : String := Int'Image (V);
!       --  Sign and digits of decimal value
  
     begin
!       Set_Decimal_Digits (Digs, Digs'Length, S, P, Scale, Fore, Aft, Exp);
     end Set_Image_Decimal;
  
  end System.Image_D;
--- 103,130 ----
        Aft   : Natural;
        Exp   : Natural)
     is
!       Maxdigs : constant Natural := Int'Width;
!       --  Maximum length needed for Image of an Int
! 
!       Digs  : String (1 .. Maxdigs);
!       Ndigs : Natural;
!       --  Buffer for the image of the integer value
  
     begin
!       --  Set the first character like Image
! 
!       if V >= 0 then
!          Digs (1) := ' ';
!          Ndigs := 1;
!       else
!          Ndigs := 0;
!       end if;
! 
!       Set_Image_Integer (V, Digs, Ndigs);
! 
!       pragma Assert (1 <= Ndigs and then Ndigs <= Maxdigs);
! 
!       Set_Decimal_Digits (Digs, Ndigs, S, P, Scale, Fore, Aft, Exp);
     end Set_Image_Decimal;
  
  end System.Image_D;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imaged.ads gcc-15.1.0/gcc/ada/libgnat/s-imaged.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imaged.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imaged.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,41 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  decimal fixed point types, and also for conversion operations required in
! --  Text_IO.Decimal_IO for such types.
  
  generic
  
     type Int is range <>;
  
  package System.Image_D is
  
--- 29,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Decimal_IO`` conversions routines for decimal fixed point
! --  types.
  
  generic
  
     type Int is range <>;
+    type Uns is mod <>;
  
  package System.Image_D is
  
*************** package System.Image_D is
*** 46,53 ****
        Scale : Integer);
     --  Computes fixed_type'Image (V), where V is the integer value (in units of
     --  delta) of a decimal type whose Scale is as given and stores the result
!    --  S (1 .. P), updating P to the value of L. The image is given by the
!    --  rules in RM 3.5(34) for fixed-point type image functions. The caller
     --  guarantees that S is long enough to hold the result and has a lower
     --  bound of 1.
  
--- 47,54 ----
        Scale : Integer);
     --  Computes fixed_type'Image (V), where V is the integer value (in units of
     --  delta) of a decimal type whose Scale is as given and stores the result
!    --  S (1 .. P), updating P on return. The result is computed according to
!    --  the rules for image for fixed-point types (RM 4.10(14)). The caller
     --  guarantees that S is long enough to hold the result and has a lower
     --  bound of 1.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagef.adb gcc-15.1.0/gcc/ada/libgnat/s-imagef.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imagef.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagef.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Image_F is
*** 115,121 ****
     --     Q * 10**(-D)
  
     --  This value can be written to the output file or to the result string
!    --  according to the format described in RM A.3.10. The details of this
     --  operation are omitted here.
  
     --  A 64-bit value can represent all integers with 18 decimal digits, but
--- 115,121 ----
     --     Q * 10**(-D)
  
     --  This value can be written to the output file or to the result string
!    --  according to the format described in RM A.10.9. The details of this
     --  operation are omitted here.
  
     --  A 64-bit value can represent all integers with 18 decimal digits, but
*************** package body System.Image_F is
*** 274,281 ****
--- 274,288 ----
        --  Aft0 digits (unless V is zero). In both cases, we compute one more
        --  digit than requested so that Set_Decimal_Digits can round at Aft.
  
+       --  Aft0 is bounded by the 'Aft of a type with delta 1/2**(Int'Size - 1)
+       --  which is N = ceil ((Int'Siz - 1) * log2 / log10). Aft lies in the
+       --  range of type Field declared in Ada.Text_IO so is bounded by 255.
+       --  Thus A is bounded by 256 + ceil ((Int'Siz - 1) * log2 / log10).
+ 
        D : constant Integer :=
              Integer'Max (-Maxdigs, Integer'Min (A, Maxdigs - (For0 - 1)));
+       --  D lies in the range -Maxdigs .. A
+ 
        Y : constant Int     := Num * 10**Integer'Max (0, D);
        Z : constant Int     := Den * 10**Integer'Max (0, -D);
        --  See the description of the algorithm above
*************** package body System.Image_F is
*** 285,290 ****
--- 292,299 ----
        --  is larger than A if the first round does not compute all the digits
        --  before the decimal point, i.e. (For0 - 1) larger than Maxdigs.
  
+       --  AF is bounded by 256 + Maxdigs + ceil ((Int'Siz - 1) * log2 / log10)
+ 
        N : constant Natural := 1 + (AF + Maxdigs - 1) / Maxdigs;
        --  Number of rounds of scaled divide to be performed
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagef.ads gcc-15.1.0/gcc/ada/libgnat/s-imagef.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imagef.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagef.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  ordinary fixed point types whose Small is the ratio of two Int values, and
! --  also for conversion operations required in Text_IO.Fixed_IO for such types.
  
  generic
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Fixed_IO`` conversions routines for for ordinary fixed
! --  point types whose Small is the ratio of two Int values.
  
  generic
  
*************** package System.Image_F is
*** 56,66 ****
     --  Computes fixed_type'Image (V), where V is the integer value (in units of
     --  small) of an ordinary fixed point type with small Num/Den, and stores
     --  the result in S (1 .. P), updating P on return. The result is computed
!    --  according to the rules for image for fixed-point types (RM 3.5(34)).
     --  For0 and Aft0 are the values of the Fore and Aft attributes for the
     --  fixed point type whose mantissa type is Int and whose small is Num/Den.
!    --  This function is used only for fixed point whose Small is an integer or
!    --  its reciprocal (see package System.Image_R for the handling of other
     --  ordinary fixed-point types). The caller guarantees that S is long enough
     --  to hold the result and has a lower bound of 1.
  
--- 56,66 ----
     --  Computes fixed_type'Image (V), where V is the integer value (in units of
     --  small) of an ordinary fixed point type with small Num/Den, and stores
     --  the result in S (1 .. P), updating P on return. The result is computed
!    --  according to the rules for image for fixed-point types (RM 4.10(14)).
     --  For0 and Aft0 are the values of the Fore and Aft attributes for the
     --  fixed point type whose mantissa type is Int and whose small is Num/Den.
!    --  This function is used only for fixed point whose Small is the ratio of
!    --  two Int values (see package System.Image_R for the handling of other
     --  ordinary fixed-point types). The caller guarantees that S is long enough
     --  to hold the result and has a lower bound of 1.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagei.adb gcc-15.1.0/gcc/ada/libgnat/s-imagei.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imagei.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagei.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagei.ads gcc-15.1.0/gcc/ada/libgnat/s-imagei.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imagei.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagei.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  signed integer types, and also for conversion operations required in
! --  Text_IO.Integer_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
! --  types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagen.adb gcc-15.1.0/gcc/ada/libgnat/s-imagen.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imagen.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagen.ads gcc-15.1.0/gcc/ada/libgnat/s-imagen.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imagen.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Enumeration_Type'Image for all enumeration types except those in package
! --  Standard (where we have no opportunity to build image tables), and in
! --  package System (where it is too early to start building image tables).
  --  Special routines exist for the enumeration types in these packages.
  
  generic
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  ``Image`` attribute support for all enumeration types except those in
! --  package Standard (where we have no opportunity to build image tables), and
! --  in package System (where it is too early to start building image tables).
  --  Special routines exist for the enumeration types in these packages.
  
  generic
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imager.adb gcc-15.1.0/gcc/ada/libgnat/s-imager.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imager.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imager.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Image_R is
*** 49,62 ****
  
     Maxdigs : constant Natural := 2 * Natural'Min (Uns'Width - 2, Num'Digits);
  
!    Maxscaling : constant := 5000;
!    --  Max decimal scaling required during conversion of floating-point
!    --  numbers to decimal. This is used to defend against infinite
!    --  looping in the conversion, as can be caused by erroneous executions.
!    --  The largest exponent used on any current system is 2**16383, which
!    --  is approximately 10**4932, and the highest number of decimal digits
!    --  is about 35 for 128-bit floating-point formats, so 5000 leaves
!    --  enough room for scaling such values
  
     package Double_Real is new System.Double_Real (Num);
     use type Double_Real.Double_T;
--- 49,61 ----
  
     Maxdigs : constant Natural := 2 * Natural'Min (Uns'Width - 2, Num'Digits);
  
!    Maxscaling : constant Natural := 5000 + Maxdigs;
!    --  Maximum decimal scaling required during conversion of floating-point
!    --  numbers to decimal. This is used to defend against infinite looping
!    --  during the conversion, that could be caused by erroneous execution.
!    --  The largest decimal exponent in absolute value used on any current
!    --  system is 4966 (denormals of IEEE binary128) and we scale up to the
!    --  Maxdigs exponent during the conversion.
  
     package Double_Real is new System.Double_Real (Num);
     use type Double_Real.Double_T;
*************** package body System.Image_R is
*** 109,114 ****
--- 108,114 ----
     is
        pragma Assert (S'First = 1);
  
+       Fore : Natural;
     begin
        --  Decide whether a blank should be prepended before the call to
        --  Set_Image_Real. We generate a blank for positive values, and
*************** package body System.Image_R is
*** 125,135 ****
           --  Image_Floating_Point operation.
           S (1) := ' ';
           P := 1;
        else
           P := 0;
        end if;
  
!       Set_Image_Real (V, S, P, 1, Digs - 1, 3);
     end Image_Floating_Point;
  
     -----------------
--- 125,137 ----
           --  Image_Floating_Point operation.
           S (1) := ' ';
           P := 1;
+          Fore := 1;
        else
           P := 0;
+          Fore := 2;
        end if;
  
!       Set_Image_Real (V, S, P, Fore, Digs - 1, 3);
     end Image_Floating_Point;
  
     -----------------
*************** package body System.Image_R is
*** 392,398 ****
        Digs (1) := (if Is_Negative (V) then '-' else ' ');
        Ndigs := 1;
  
!       X := Double_Real.To_Double (abs (V));
  
        --  If X is zero, we are done
  
--- 394,400 ----
        Digs (1) := (if Is_Negative (V) then '-' else ' ');
        Ndigs := 1;
  
!       X := Double_Real.To_Double (abs V);
  
        --  If X is zero, we are done
  
*************** package body System.Image_R is
*** 430,459 ****
  
           --  Otherwise, do the conversion in two steps
  
!          else pragma Assert (X <= 10.0 ** Num'Digits * Num (Uns'Last));
              declare
!                Y : constant Uns := To_Unsigned (X / Powten (Num'Digits));
  
!                Buf : String (1 .. Num'Digits);
                 Len : Natural;
  
              begin
                 Set_Image_Unsigned (Y, Digs, Ndigs);
  
!                X := X - From_Unsigned (Y) * Powten (Num'Digits);
  
                 Len := 0;
                 Set_Image_Unsigned (To_Unsigned (X), Buf, Len);
  
!                for J in 1 .. Num'Digits - Len loop
                    Digs (Ndigs + J) := '0';
                 end loop;
  
                 for J in 1 .. Len loop
!                   Digs (Ndigs + Num'Digits - Len + J) := Buf (J);
                 end loop;
  
!                Ndigs := Ndigs + Num'Digits;
              end;
           end if;
        end if;
--- 432,470 ----
  
           --  Otherwise, do the conversion in two steps
  
!          else
              declare
!                Halfdigs : constant Natural := Maxdigs / 2;
  
!                Buf : String (1 .. Halfdigs);
                 Len : Natural;
+                Y   : Uns;
  
              begin
+                --  Compute upper Halfdigs stripped from leading zeros
+ 
+                Y := To_Unsigned (X / Powten (Halfdigs));
                 Set_Image_Unsigned (Y, Digs, Ndigs);
  
!                --  Compute lower Halfdigs stripped from leading zeros
  
                 Len := 0;
+                X := X - From_Unsigned (Y) * Powten (Halfdigs);
                 Set_Image_Unsigned (To_Unsigned (X), Buf, Len);
+                pragma Assert (Len <= Halfdigs);
  
!                --  Concatenate unmodified upper part with zero-padded
!                --  lower part up to Halfdigs.
! 
!                for J in 1 .. Halfdigs - Len loop
                    Digs (Ndigs + J) := '0';
                 end loop;
  
                 for J in 1 .. Len loop
!                   Digs (Ndigs + Halfdigs - Len + J) := Buf (J);
                 end loop;
  
!                Ndigs := Ndigs + Halfdigs;
              end;
           end if;
        end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imager.ads gcc-15.1.0/gcc/ada/libgnat/s-imager.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imager.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imager.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Image_R is
*** 56,62 ****
        Aft : Natural);
     --  Computes fixed_type'Image (V) and returns the result in S (1 .. P)
     --  updating P on return. The result is computed according to the rules for
!    --  image for fixed-point types (RM 3.5(34)), where Aft is the value of the
     --  Aft attribute for the fixed-point type. The caller guarantees that S is
     --  long enough to hold the result and has a lower bound of 1.
     --
--- 56,62 ----
        Aft : Natural);
     --  Computes fixed_type'Image (V) and returns the result in S (1 .. P)
     --  updating P on return. The result is computed according to the rules for
!    --  image for fixed-point types (RM 4.10(14)), where Aft is the value of the
     --  Aft attribute for the fixed-point type. The caller guarantees that S is
     --  long enough to hold the result and has a lower bound of 1.
     --
*************** package System.Image_R is
*** 69,77 ****
        Digs : Natural);
     --  Computes Uns'Image (V) and returns the result in S (1 .. P) updating P
     --  on return. The result is computed according to the rules for image for
!    --  floating-point types (RM 3.5(33)), where Digs is the value of the Digits
!    --  attribute for the floating-point type. The caller guarantees that S is
!    --  long enough to hold the result and has a lower bound of 1.
  
     procedure Set_Image_Real
       (V    : Num;
--- 69,77 ----
        Digs : Natural);
     --  Computes Uns'Image (V) and returns the result in S (1 .. P) updating P
     --  on return. The result is computed according to the rules for image for
!    --  floating-point types (RM 4.10(13)), where Digs is the value of the
!    --  Digits attribute for the floating-point type. The caller guarantees that
!    --  S is long enough to hold the result and has a lower bound of 1.
  
     procedure Set_Image_Real
       (V    : Num;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imageu.adb gcc-15.1.0/gcc/ada/libgnat/s-imageu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imageu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imageu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imageu.ads gcc-15.1.0/gcc/ada/libgnat/s-imageu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imageu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imageu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  modular integer types, and also for conversion operations required in
! --  Text_IO.Modular_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
! --  types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagew.adb gcc-15.1.0/gcc/ada/libgnat/s-imagew.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imagew.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagew.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imagew.ads gcc-15.1.0/gcc/ada/libgnat/s-imagew.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imagew.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imagew.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Contains the routine for computing the image  of signed and unsigned
! --  integers up to Integer for use by Text_IO.Integer_IO and
! --  Text_IO.Modular_IO.
  
  generic
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Contains the routines for computing the image of signed and unsigned
! --  integers up to ``Integer`` for use by ``Ada.Text_IO.Integer_IO`` and
! --  ``Ada.Text_IO.Modular_IO``.
  
  generic
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imde128.ads gcc-15.1.0/gcc/ada/libgnat/s-imde128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imde128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imde128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  decimal fixed point types up to 128-bit mantissa, and also for conversion
! --  operations required in Text_IO.Decimal_IO for them.
  
  with Interfaces;
  with System.Image_D;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Decimal_IO`` conversions routines for decimal fixed point
! --  types up to 128-bit mantissa.
  
  with Interfaces;
  with System.Image_D;
*************** with System.Image_D;
*** 39,46 ****
  package System.Img_Decimal_128 is
  
     subtype Int128 is Interfaces.Integer_128;
  
!    package Impl is new Image_D (Int128);
  
     procedure Image_Decimal128
       (V     : Int128;
--- 39,47 ----
  package System.Img_Decimal_128 is
  
     subtype Int128 is Interfaces.Integer_128;
+    subtype Uns128 is Interfaces.Unsigned_128;
  
!    package Impl is new Image_D (Int128, Uns128);
  
     procedure Image_Decimal128
       (V     : Int128;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imde32.ads gcc-15.1.0/gcc/ada/libgnat/s-imde32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imde32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imde32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  decimal fixed point types up to 32-bit mantissa, and also for conversion
! --  operations required in Text_IO.Decimal_IO for such types.
  
  with Interfaces;
  with System.Image_D;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Decimal_IO`` conversions routines for decimal fixed point
! --  types up to 32-bit mantissa.
  
  with Interfaces;
  with System.Image_D;
*************** with System.Image_D;
*** 39,46 ****
  package System.Img_Decimal_32 is
  
     subtype Int32 is Interfaces.Integer_32;
  
!    package Impl is new Image_D (Int32);
  
     procedure Image_Decimal32
       (V     : Int32;
--- 39,47 ----
  package System.Img_Decimal_32 is
  
     subtype Int32 is Interfaces.Integer_32;
+    subtype Uns32 is Interfaces.Unsigned_32;
  
!    package Impl is new Image_D (Int32, Uns32);
  
     procedure Image_Decimal32
       (V     : Int32;
*************** package System.Img_Decimal_32 is
*** 48,53 ****
--- 49,60 ----
        P     : out Natural;
        Scale : Integer)
       renames Impl.Image_Decimal;
+    --  Computes fixed_type'Image (V), where V is the integer value (in units of
+    --  delta) of a decimal type whose Scale is as given and stores the result
+    --  S (1 .. P), updating P on return. The result is computed according to
+    --  the rules for image for fixed-point types (RM 4.10(14)). The caller
+    --  guarantees that S is long enough to hold the result and has a lower
+    --  bound of 1.
  
     procedure Set_Image_Decimal32
       (V     : Int32;
*************** package System.Img_Decimal_32 is
*** 58,62 ****
--- 65,77 ----
        Aft   : Natural;
        Exp   : Natural)
       renames Impl.Set_Image_Decimal;
+    --  Sets the image of V, where V is the integer value (in units of delta)
+    --  of a decimal type with the specified Scale, starting at S (P + 1) and
+    --  updating P to point to the last character stored, the caller promises
+    --  that the buffer is large enough and no check is made. Constraint_Error
+    --  will not necessarily be raised if this requirement is violated, since
+    --  it is perfectly valid to compile this unit with checks off. The Fore,
+    --  Aft and Exp values can be set to any valid values for the case of use
+    --  by Text_IO.Decimal_IO.
  
  end System.Img_Decimal_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imde64.ads gcc-15.1.0/gcc/ada/libgnat/s-imde64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imde64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imde64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  decimal fixed point types up to 64-bit mantissa, and also for conversion
! --  operations required in Text_IO.Decimal_IO for such types.
  
  with Interfaces;
  with System.Image_D;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Decimal_IO`` conversions routines for decimal fixed point
! --  types up to 64-bit mantissa.
  
  with Interfaces;
  with System.Image_D;
*************** with System.Image_D;
*** 39,46 ****
  package System.Img_Decimal_64 is
  
     subtype Int64 is Interfaces.Integer_64;
  
!    package Impl is new Image_D (Int64);
  
     procedure Image_Decimal64
       (V     : Int64;
--- 39,47 ----
  package System.Img_Decimal_64 is
  
     subtype Int64 is Interfaces.Integer_64;
+    subtype Uns64 is Interfaces.Unsigned_64;
  
!    package Impl is new Image_D (Int64, Uns64);
  
     procedure Image_Decimal64
       (V     : Int64;
*************** package System.Img_Decimal_64 is
*** 48,53 ****
--- 49,60 ----
        P     : out Natural;
        Scale : Integer)
       renames Impl.Image_Decimal;
+    --  Computes fixed_type'Image (V), where V is the integer value (in units of
+    --  delta) of a decimal type whose Scale is as given and stores the result
+    --  S (1 .. P), updating P on return. The result is computed according to
+    --  the rules for image for fixed-point types (RM 3.5(34)). The caller
+    --  guarantees that S is long enough to hold the result and has a lower
+    --  bound of 1.
  
     procedure Set_Image_Decimal64
       (V     : Int64;
*************** package System.Img_Decimal_64 is
*** 58,62 ****
--- 65,77 ----
        Aft   : Natural;
        Exp   : Natural)
       renames Impl.Set_Image_Decimal;
+    --  Sets the image of V, where V is the integer value (in units of delta)
+    --  of a decimal type with the specified Scale, starting at S (P + 1) and
+    --  updating P to point to the last character stored, the caller promises
+    --  that the buffer is large enough and no check is made. Constraint_Error
+    --  will not necessarily be raised if this requirement is violated, since
+    --  it is perfectly valid to compile this unit with checks off. The Fore,
+    --  Aft and Exp values can be set to any valid values for the case of use
+    --  by Text_IO.Decimal_IO.
  
  end System.Img_Decimal_64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imen16.ads gcc-15.1.0/gcc/ada/libgnat/s-imen16.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imen16.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imen16.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of System.Image_N for enumeration types whose names table
  --  has a length that fits in a 16-bit but not a 8-bit integer.
  
  with Interfaces;
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of ``System.Image_N`` for enumeration types whose names table
  --  has a length that fits in a 16-bit but not a 8-bit integer.
  
  with Interfaces;
*************** package System.Img_Enum_16 is
*** 47,51 ****
--- 47,63 ----
        Names   : String;
        Indexes : System.Address)
       renames Impl.Image_Enumeration;
+    --  Used to compute Enum'Image (Str) where Enum is some enumeration type
+    --  other than those defined in package Standard. Names is a string with
+    --  a lower bound of 1 containing the characters of all the enumeration
+    --  literals concatenated together in sequence. Indexes is the address of
+    --  an array of type array (0 .. N) of Interfaces.Integer_16, where N is the
+    --  number of enumeration literals in the type. The Indexes values are the
+    --  starting subscript of each enumeration literal, indexed by Pos values,
+    --  with an extra entry at the end containing Names'Length + 1. The reason
+    --  that Indexes is passed by address is that the actual type is created on
+    --  the fly by the expander. The desired 'Image value is stored in S
+    --  (1 .. P) and P is set on return. The caller guarantees that S is long
+    --  enough to hold the result and that the lower bound is 1.
  
  end System.Img_Enum_16;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imen32.ads gcc-15.1.0/gcc/ada/libgnat/s-imen32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imen32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imen32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of System.Image_N for enumeration types whose names table
  --  has a length that fits in a 32-bit but not a 16-bit integer.
  
  with Interfaces;
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of ``System.Image_N`` for enumeration types whose names table
  --  has a length that fits in a 32-bit but not a 16-bit integer.
  
  with Interfaces;
*************** package System.Img_Enum_32 is
*** 47,51 ****
--- 47,63 ----
        Names   : String;
        Indexes : System.Address)
       renames Impl.Image_Enumeration;
+    --  Used to compute Enum'Image (Str) where Enum is some enumeration type
+    --  other than those defined in package Standard. Names is a string with
+    --  a lower bound of 1 containing the characters of all the enumeration
+    --  literals concatenated together in sequence. Indexes is the address of
+    --  an array of type array (0 .. N) of Interfaces.Integer_32, where N is the
+    --  number of enumeration literals in the type. The Indexes values are the
+    --  starting subscript of each enumeration literal, indexed by Pos values,
+    --  with an extra entry at the end containing Names'Length + 1. The reason
+    --  that Indexes is passed by address is that the actual type is created on
+    --  the fly by the expander. The desired 'Image value is stored in S
+    --  (1 .. P) and P is set on return. The caller guarantees that S is long
+    --  enough to hold the result and that the lower bound is 1.
  
  end System.Img_Enum_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imenu8.ads gcc-15.1.0/gcc/ada/libgnat/s-imenu8.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imenu8.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imenu8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of System.Image_N for enumeration types whose names table
  --  has a length that fits in a 8-bit integer.
  
  with Interfaces;
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Instantiation of ``System.Image_N`` for enumeration types whose names table
  --  has a length that fits in a 8-bit integer.
  
  with Interfaces;
*************** package System.Img_Enum_8 is
*** 47,51 ****
--- 47,63 ----
        Names   : String;
        Indexes : System.Address)
       renames Impl.Image_Enumeration;
+    --  Used to compute Enum'Image (Str) where Enum is some enumeration type
+    --  other than those defined in package Standard. Names is a string with
+    --  a lower bound of 1 containing the characters of all the enumeration
+    --  literals concatenated together in sequence. Indexes is the address of
+    --  an array of type array (0 .. N) of Interfaces.Integer_8, where N is the
+    --  number of enumeration literals in the type. The Indexes values are the
+    --  starting subscript of each enumeration literal, indexed by Pos values,
+    --  with an extra entry at the end containing Names'Length + 1. The reason
+    --  that Indexes is passed by address is that the actual type is created on
+    --  the fly by the expander. The desired 'Image value is stored in S
+    --  (1 .. P) and P is set on return. The caller guarantees that S is long
+    --  enough to hold the result and that the lower bound is 1.
  
  end System.Img_Enum_8;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imfi128.ads gcc-15.1.0/gcc/ada/libgnat/s-imfi128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imfi128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imfi128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imfi32.ads gcc-15.1.0/gcc/ada/libgnat/s-imfi32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imfi32.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imfi32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  ordinary fixed point types up to 32-bit small and mantissa.
  
  with Interfaces;
  with System.Arith_32;
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the ``Image`` attribute
! --  for ordinary fixed point types up to 32-bit small and mantissa.
  
  with Interfaces;
  with System.Arith_32;
*************** package System.Img_Fixed_32 is
*** 52,57 ****
--- 52,67 ----
        For0 : Natural;
        Aft0 : Natural)
       renames Impl.Image_Fixed;
+    --  Computes fixed_type'Image (V), where V is the integer value (in units of
+    --  small) of an ordinary fixed point type with small Num/Den, and stores
+    --  the result in S (1 .. P), updating P on return. The result is computed
+    --  according to the rules for image for fixed-point types (RM 3.5(34)).
+    --  For0 and Aft0 are the values of the Fore and Aft attributes for the
+    --  fixed point type whose mantissa type is Int32 and whose small is
+    --  Num/Den. This function is used only for fixed point whose Small is an
+    --  integer or its reciprocal (see package System.Image_R for the handling
+    --  of other ordinary fixed-point types). The caller guarantees that S is
+    --  long enough to hold the result and has a lower bound of 1.
  
     procedure Set_Image_Fixed32
       (V    : Int32;
*************** package System.Img_Fixed_32 is
*** 65,69 ****
--- 75,88 ----
        Aft  : Natural;
        Exp  : Natural)
       renames Impl.Set_Image_Fixed;
+    --  Sets the image of V, where V is the integer value (in units of small)
+    --  of a fixed point type with small Num/Den, starting at S (P + 1) and
+    --  updating P to point to the last character stored, the caller promises
+    --  that the buffer is large enough and no check is made. Constraint_Error
+    --  will not necessarily be raised if this requirement is violated, since
+    --  it is perfectly valid to compile this unit with checks off. For0 and
+    --  Aft0 are the values of the Fore and Aft attributes for the fixed point
+    --  type whose mantissa type is Int32 and whose small is Num/Den. The Fore,
+    --  Aft and Exp can be set to any valid values for use by Text_IO.Fixed_IO.
  
  end System.Img_Fixed_32;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imfi64.ads gcc-15.1.0/gcc/ada/libgnat/s-imfi64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imfi64.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imfi64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  ordinary fixed point types up to 64-bit small and mantissa.
  
  with Interfaces;
  with System.Arith_64;
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the ``Image`` attribute
! --  for ordinary fixed point types up to 64-bit small and mantissa.
  
  with Interfaces;
  with System.Arith_64;
*************** package System.Img_Fixed_64 is
*** 52,57 ****
--- 52,67 ----
        For0 : Natural;
        Aft0 : Natural)
       renames Impl.Image_Fixed;
+    --  Computes fixed_type'Image (V), where V is the integer value (in units of
+    --  small) of an ordinary fixed point type with small Num/Den, and stores
+    --  the result in S (1 .. P), updating P on return. The result is computed
+    --  according to the rules for image for fixed-point types (RM 4.10(14)).
+    --  For0 and Aft0 are the values of the Fore and Aft attributes for the
+    --  fixed point type whose mantissa type is Int64 and whose small is
+    --  Num/Den. This function is used only for fixed point whose Small is an
+    --  integer or its reciprocal (see package System.Image_R for the handling
+    --  of other ordinary fixed-point types). The caller guarantees that S is
+    --  long enough to hold the result and has a lower bound of 1.
  
     procedure Set_Image_Fixed64
       (V    : Int64;
*************** package System.Img_Fixed_64 is
*** 65,69 ****
--- 75,88 ----
        Aft  : Natural;
        Exp  : Natural)
       renames Impl.Set_Image_Fixed;
+    --  Sets the image of V, where V is the integer value (in units of small)
+    --  of a fixed point type with small Num/Den, starting at S (P + 1) and
+    --  updating P to point to the last character stored, the caller promises
+    --  that the buffer is large enough and no check is made. Constraint_Error
+    --  will not necessarily be raised if this requirement is violated, since
+    --  it is perfectly valid to compile this unit with checks off. For0 and
+    --  Aft0 are the values of the Fore and Aft attributes for the fixed point
+    --  type whose mantissa type is Int64 and whose small is Num/Den. The Fore,
+    --  Aft and Exp can be set to any valid values for use by Text_IO.Fixed_IO.
  
  end System.Img_Fixed_64;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgbiu.adb gcc-15.1.0/gcc/ada/libgnat/s-imgbiu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgbiu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgbiu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgbiu.ads gcc-15.1.0/gcc/ada/libgnat/s-imgbiu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgbiu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgbiu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image in based format of signed and
! --  unsigned integers up to Integer for use by Text_IO.Integer_IO and
! --  Text_IO.Modular_IO.
  
  with System.Image_B;
  with System.Unsigned_Types;
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image in based format of signed and
! --  unsigned integers up to ``Integer`` for use by ``Ada.Text_IO.Integer_IO``
! --  and ``Ada.Text_IO.Modular_IO``.
  
  with System.Image_B;
  with System.Unsigned_Types;
*************** package System.Img_BIU is
*** 50,55 ****
--- 50,64 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Based_Integer;
+    --  Sets the signed image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes a leading minus sign if necessary, but no leading
+    --  spaces unless W is positive, in which case leading spaces are output if
+    --  necessary to ensure that the output string is no less than W characters
+    --  long. The caller promises that the buffer is large enough and no check
+    --  is made for this. Constraint_Error will not necessarily be raised if
+    --  this is violated, since it is perfectly valid to compile this unit with
+    --  checks off.
  
     procedure Set_Image_Based_Unsigned
       (V : Unsigned;
*************** package System.Img_BIU is
*** 58,62 ****
--- 67,79 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Based_Unsigned;
+    --  Sets the unsigned image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes no leading spaces unless W is positive, in which case
+    --  leading spaces are output if necessary to ensure that the output string
+    --  is no less than W characters long. The caller promises that the buffer
+    --  is large enough and no check is made for this. Constraint_Error will not
+    --  necessarily be raised if this is violated, since it is perfectly valid
+    --  to compile this unit with checks off).
  
  end System.Img_BIU;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgboo.adb gcc-15.1.0/gcc/ada/libgnat/s-imgboo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgboo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgboo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Img_Bool
*** 41,46 ****
--- 41,60 ----
    with SPARK_Mode
  is
  
+    --  Local lemmas
+ 
+    procedure Lemma_Is_First_Non_Space_Ghost (S : String; R : Positive) with
+      Ghost,
+      Pre => R in S'Range and then S (R) /= ' '
+        and then System.Val_Spec.Only_Space_Ghost (S, S'First, R - 1),
+      Post => System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = R;
+ 
+    ------------------------------------
+    -- Lemma_Is_First_Non_Space_Ghost --
+    ------------------------------------
+ 
+    procedure Lemma_Is_First_Non_Space_Ghost (S : String; R : Positive) is null;
+ 
     -------------------
     -- Image_Boolean --
     -------------------
*************** is
*** 55,67 ****
        if V then
           S (1 .. 4) := "TRUE";
           P := 4;
!          pragma Assert
!            (System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        else
           S (1 .. 5) := "FALSE";
           P := 5;
!          pragma Assert
!            (System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        end if;
     end Image_Boolean;
  
--- 69,79 ----
        if V then
           S (1 .. 4) := "TRUE";
           P := 4;
!          Lemma_Is_First_Non_Space_Ghost (S, 1);
        else
           S (1 .. 5) := "FALSE";
           P := 5;
!          Lemma_Is_First_Non_Space_Ghost (S, 1);
        end if;
     end Image_Boolean;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgboo.ads gcc-15.1.0/gcc/ada/libgnat/s-imgboo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgboo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgboo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,36 ****
--- 31,39 ----
  
  --  Boolean'Image
  
+ --  This package provides support for ``Image`` attribute on ``Boolean``. The
+ --  compiler performs direct calls to this unit to implement the attribute.
+ 
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
  --  setting the corresponding assertion policy to Ignore. Postconditions and
*************** is
*** 57,64 ****
         and then (if V then S'Length >= 4 else S'Length >= 5),
       Post => (if V then P = 4 else P = 5)
         and then System.Val_Spec.Is_Boolean_Image_Ghost (S (1 .. P), V);
!    --  Computes Boolean'Image (V) and stores the result in S (1 .. P)
!    --  setting the resulting value of P. The caller guarantees that S
!    --  is long enough to hold the result, and that S'First is 1.
  
  end System.Img_Bool;
--- 60,68 ----
         and then (if V then S'Length >= 4 else S'Length >= 5),
       Post => (if V then P = 4 else P = 5)
         and then System.Val_Spec.Is_Boolean_Image_Ghost (S (1 .. P), V);
!    --  Computes Boolean'Image (``V``) and stores the result in
!    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
!    --  guarantees that ``S`` is long enough to hold the result, and that
!    --  ``S``'First is 1.
  
  end System.Img_Bool;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgcha.adb gcc-15.1.0/gcc/ada/libgnat/s-imgcha.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgcha.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgcha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Img_Char is
*** 120,126 ****
                 Character'Val (16#9F#) => "APC"];
  
     begin
!       --  Control characters are represented by their names (RM 3.5(32))
  
        if V in C0_Range then
           S (1 .. 3) := C0 (V);
--- 120,126 ----
                 Character'Val (16#9F#) => "APC"];
  
     begin
!       --  Control characters are represented by their names (RM 4.10(12))
  
        if V in C0_Range then
           S (1 .. 3) := C0 (V);
*************** package body System.Img_Char is
*** 152,158 ****
              end;
           end if;
  
!       --  Normal characters yield the character enclosed in quotes (RM 3.5(32))
  
        else
           S (1) := ''';
--- 152,159 ----
              end;
           end if;
  
!       --  Normal characters yield the character enclosed in quotes
!       --  (RM 4.10(12)).
  
        else
           S (1) := ''';
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgcha.ads gcc-15.1.0/gcc/ada/libgnat/s-imgcha.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgcha.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgcha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,36 ****
--- 31,39 ----
  
  --  Character'Image
  
+ --  This package provides support for ``Image`` attribute on ``Character``. The
+ --  compiler performs direct calls to this unit to implement the attribute.
+ 
  package System.Img_Char is
     pragma Pure;
  
*************** package System.Img_Char is
*** 38,55 ****
       (V : Character;
        S : in out String;
        P : out Natural);
!    --  Computes Character'Image (V) and stores the result in S (1 .. P)
!    --  setting the resulting value of P. The caller guarantees that S is
!    --  long enough to hold the result, and that S'First is 1.
  
     procedure Image_Character_05
       (V : Character;
        S : in out String;
        P : out Natural);
!    --  Computes Character'Image (V) and stores the result in S (1 .. P)
!    --  setting the resulting value of P. The caller guarantees that S is
!    --  long enough to hold the result, and that S'First is 1. This version
!    --  is for use in Ada 2005 and beyond, where soft hyphen is a non-graphic
!    --  and results in "SOFT_HYPHEN" as the output.
  
  end System.Img_Char;
--- 41,61 ----
       (V : Character;
        S : in out String;
        P : out Natural);
!    --  Computes Character'Image (``V``) and stores the result in
!    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
!    --  guarantees that ``S`` is long enough to hold the result, and that
!    --  ``S``'First is 1.
  
     procedure Image_Character_05
       (V : Character;
        S : in out String;
        P : out Natural);
!    --  Computes Character'Image (``V``) and stores the result in
!    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
!    --  guarantees that ``S`` is long enough to hold the result, and that
!    --  ``S``'First is 1.
!    --
!    --  This version is for use in Ada 2005 and beyond, where soft hyphen is
!    --  a non-graphic and results in "SOFT_HYPHEN" as the output.
  
  end System.Img_Char;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgflt.ads gcc-15.1.0/gcc/ada/libgnat/s-imgflt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgflt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgflt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgint.adb gcc-15.1.0/gcc/ada/libgnat/s-imgint.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgint.ads gcc-15.1.0/gcc/ada/libgnat/s-imgint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgint.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  signed integer types up to Integer, and also for conversion operations
! --  required in Text_IO.Integer_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
! --  types up to Size ``Integer'Size``.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
*************** is
*** 66,76 ****
--- 66,97 ----
        S : in out String;
        P : out Natural)
       renames Impl.Image_Integer;
+    --  Computes Integer'Image (``V``) and stores the result in
+    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``.
+    --  The caller guarantees that ``S`` is long enough to hold the result,
+    --  and that ``S``'First is 1.
+    --
+    --  If ``V`` is not negative, the subprogram writes the leading blank in
+    --  ``S``. It then calls *Set_Image_Integer* unconditionally.
  
     procedure Set_Image_Integer
       (V : Integer;
        S : in out String;
        P : in out Natural)
       renames Impl.Set_Image_Integer;
+    --  Stores the image of ``V`` in ``S`` starting at ``S`` (``P`` + 1), ``P``
+    --  is updated to point to the last character stored. The value stored is
+    --  identical to the value of Integer'Image (``V``) except that no leading
+    --  space is stored when ``V`` is non-negative. The caller guarantees that
+    --  ``S`` is long enough to hold the result. ``S`` need not have a lower
+    --  bound of 1.
+    --
+    --  If ``V`` is negative, the subprogram writes the leading '-' character,
+    --  otherwise work with -``V`` (always work with negative value to avoid
+    --  overflow: the largest negative number is not a special case).
+    --
+    --  This subprogram then uses recursion: if the value is equal or less than
+    --  -10, recurse with the value divided by 10. Then add the digit for the
+    --  remainder.
  
  end System.Img_Int;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglfl.ads gcc-15.1.0/gcc/ada/libgnat/s-imglfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imglfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllb.adb gcc-15.1.0/gcc/ada/libgnat/s-imgllb.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllb.ads gcc-15.1.0/gcc/ada/libgnat/s-imgllb.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Contains the routine for computing the image in based format of signed and
! --  unsigned integers larger than Integer for use by Text_IO.Integer_IO and
! --  Text_IO.Modular_IO.
  
  with System.Image_B;
  with System.Unsigned_Types;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Contains the routine for computing the image in based format
! --  of signed and unsigned integers larger than `Integer` for use
! --  by ``Ada.Text_IO.Integer_IO`` and ``Text_IO.Modular_IO``.
  
  with System.Image_B;
  with System.Unsigned_Types;
*************** package System.Img_LLB is
*** 50,55 ****
--- 50,64 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Based_Integer;
+    --  Sets the signed image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes a leading minus sign if necessary, but no leading
+    --  spaces unless W is positive, in which case leading spaces are output if
+    --  necessary to ensure that the output string is no less than W characters
+    --  long. The caller promises that the buffer is large enough and no check
+    --  is made for this. Constraint_Error will not necessarily be raised if
+    --  this is violated, since it is perfectly valid to compile this unit with
+    --  checks off.
  
     procedure Set_Image_Based_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
*************** package System.Img_LLB is
*** 58,62 ****
--- 67,79 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Based_Unsigned;
+    --  Sets the unsigned image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes no leading spaces unless W is positive, in which case
+    --  leading spaces are output if necessary to ensure that the output string
+    --  is no less than W characters long. The caller promises that the buffer
+    --  is large enough and no check is made for this. Constraint_Error will not
+    --  necessarily be raised if this is violated, since it is perfectly valid
+    --  to compile this unit with checks off).
  
  end System.Img_LLB;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllf.ads gcc-15.1.0/gcc/ada/libgnat/s-imgllf.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglli.adb gcc-15.1.0/gcc/ada/libgnat/s-imglli.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imglli.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglli.ads gcc-15.1.0/gcc/ada/libgnat/s-imglli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imglli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  signed integer types larger than Integer, and also for conversion
! --  operations required in Text_IO.Integer_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
! --  types larger than Size ``Integer'Size``.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
*************** is
*** 66,76 ****
--- 66,97 ----
        S : in out String;
        P : out Natural)
       renames Impl.Image_Integer;
+    --  Computes Long_Long_Integer'Image (``V``) and stores the result in
+    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
+    --  guarantees that ``S`` is long enough to hold the result, and that
+    --  ``S``'First is 1.
+    --
+    --  If ``V`` is not negative, the subprogram writes the leading blank in
+    --  ``S``. It then calls *Set_Image_Long_Long_Integer*.
  
     procedure Set_Image_Long_Long_Integer
       (V : Long_Long_Integer;
        S : in out String;
        P : in out Natural)
       renames Impl.Set_Image_Integer;
+    --  Stores the image of ``V`` in ``S`` starting at ``S`` (``P`` + 1),
+    --  ``P`` is updated to point to the last character stored. The value
+    --  stored is identical to the value of Long_Long_Integer'Image (``V``)
+    --  except that no leading space is stored when ``V`` is non-negative. The
+    --  caller guarantees that ``S`` is long enough to hold the result. ``S``
+    --  need not have a lower bound of 1.
+    --
+    --  If ``V`` is negative, the subprogram writes the leading '-' character,
+    --  otherwise work with -``V`` (always work with negative value to avoid
+    --  overflow: the largest negative number is not a special case).
+    --
+    --  This subprogram then uses recursion: if the value is equal or less than
+    --  -10, recurse with the value divided by 10. Then add the digit for the
+    --  remainder.
  
  end System.Img_LLI;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglllb.ads gcc-15.1.0/gcc/ada/libgnat/s-imglllb.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imglllb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglllb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllli.ads gcc-15.1.0/gcc/ada/libgnat/s-imgllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllli.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglllu.ads gcc-15.1.0/gcc/ada/libgnat/s-imglllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imglllu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imglllw.ads gcc-15.1.0/gcc/ada/libgnat/s-imglllw.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imglllw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imglllw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllu.adb gcc-15.1.0/gcc/ada/libgnat/s-imgllu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllu.ads gcc-15.1.0/gcc/ada/libgnat/s-imgllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  modular integer types larger than Unsigned, and also for conversion
! --  operations required in Text_IO.Modular_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Modular_IO`` conversions routines for unsigned (modular)
! --  integer types larger than Size ``Unsigned'Size``.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
*************** is
*** 63,73 ****
--- 63,90 ----
        S : in out String;
        P : out Natural)
       renames Impl.Image_Unsigned;
+    --  Computes Long_Long_Unsigned'Image (``V``) and stores the result in
+    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
+    --  guarantees that ``S`` is long enough to hold the result, and that
+    --  ``S``'First is 1.
+    --
+    --  The subprogram writes the leading blank in ``S`` and calls
+    --  *Set_Image_Long_Long_Unsigned*.
  
     procedure Set_Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
        S : in out String;
        P : in out Natural)
       renames Impl.Set_Image_Unsigned;
+    --  Stores the image of ``V`` in ``S`` starting at ``S`` (``P`` + 1),
+    --  ``P`` is updated to point to the last character stored. The value
+    --  stored is identical to the value of Long_Long_Unsigned'Image (``V``)
+    --  except that no leading space is stored.
+    --  The caller guarantees that ``S`` is long enough to hold the result.
+    --  ``S`` need not have a lower bound of 1.
+    --
+    --  This subprogram uses recursion: if the value is equal or greater than
+    --  10, recurse with the value divided by 10. Then add the digit for the
+    --  remainder.
  
  end System.Img_LLU;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllw.adb gcc-15.1.0/gcc/ada/libgnat/s-imgllw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgllw.ads gcc-15.1.0/gcc/ada/libgnat/s-imgllw.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgllw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgllw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Img_LLW is
*** 49,54 ****
--- 49,63 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Width_Integer;
+    --  Sets the signed image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes a leading minus sign if necessary, but no leading
+    --  spaces unless W is positive, in which case leading spaces are output if
+    --  necessary to ensure that the output string is no less than W characters
+    --  long. The caller promises that the buffer is large enough and no check
+    --  is made for this. Constraint_Error will not necessarily be raised if
+    --  this is violated, since it is perfectly valid to compile this unit with
+    --  checks off.
  
     procedure Set_Image_Width_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
*************** package System.Img_LLW is
*** 56,60 ****
--- 65,77 ----
        S : out String;
        P : in out Natural)
       renames Impl.Set_Image_Width_Unsigned;
+    --  Sets the unsigned image of V in based format, using base value B (2..16)
+    --  starting at S (P + 1), updating P to point to the last character stored.
+    --  The image includes no leading spaces unless W is positive, in which case
+    --  leading spaces are output if necessary to ensure that the output string
+    --  is no less than W characters long. The caller promises that the buffer
+    --  is large enough and no check is made for this. Constraint_Error will not
+    --  necessarily be raised if this is violated, since it is perfectly valid
+    --  to compile this unit with checks off).
  
  end System.Img_LLW;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgrea.adb gcc-15.1.0/gcc/ada/libgnat/s-imgrea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgrea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgrea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgrea.ads gcc-15.1.0/gcc/ada/libgnat/s-imgrea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgrea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgrea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  Image for fixed and float types (also used for Float_IO/Fixed_IO output)
+ 
  --  This obsolete package is preserved for the sake of backward compatibility
  
  with System.Img_LLF;
*************** package System.Img_Real is
*** 43,47 ****
--- 45,57 ----
        Aft  : Natural;
        Exp  : Natural)
       renames System.Img_LLF.Set_Image_Long_Long_Float;
+    --  Sets the image of ``V`` starting at ``S`` (``P`` + 1), updating ``P``
+    --  to point to the last character stored, the caller promises that the
+    --  buffer is large enough and no check is made for this. Constraint_Error
+    --  will not necessarily be raised if this is violated, since it is
+    --  perfectly valid to compile this unit with checks off). The ``Fore``,
+    --  ``Aft`` and ``Exp`` values can be set to any valid values for the case
+    --  of use from Text_IO. Note that no space is stored at the start for
+    --  non-negative values.
  
  end System.Img_Real;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imguns.adb gcc-15.1.0/gcc/ada/libgnat/s-imguns.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imguns.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imguns.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imguns.ads gcc-15.1.0/gcc/ada/libgnat/s-imguns.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imguns.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imguns.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Image attribute for
! --  modular integer types up to Unsigned, and also for conversion operations
! --  required in Text_IO.Modular_IO for such types.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides the subprograms supporting the ``Image`` attribute
! --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
! --  types up to size ``Unsigned'Size``.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
*************** is
*** 63,73 ****
--- 63,89 ----
        S : in out String;
        P : out Natural)
       renames Impl.Image_Unsigned;
+    --  Computes Unsigned'Image (``V``) and stores the result in
+    --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
+    --  guarantees that ``S`` is long enough to hold the result, and that
+    --  ``S``'First is 1.
+    --
+    --  The subprogram writes the leading blank in ``S`` and calls
+    --  *Set_Image_Unsigned*.
  
     procedure Set_Image_Unsigned
       (V : Unsigned;
        S : in out String;
        P : in out Natural)
       renames Impl.Set_Image_Unsigned;
+    --  Stores the image of ``V`` in ``S`` starting at ``S`` (``P`` + 1), ``P``
+    --  is updated to point to the last character stored. The value stored is
+    --  identical to the value of Unsigned'Image (``V``) except that no leading
+    --  space is stored. The caller guarantees that ``S`` is long enough to hold
+    --  the result. ``S`` need not have a lower bound of 1.
+    --
+    --  This subprogram uses recursion: if the value is equal or greater than
+    --  10, recurse with the value divided by 10. Then add the digit for the
+    --  remainder.
  
  end System.Img_Uns;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imguti.adb gcc-15.1.0/gcc/ada/libgnat/s-imguti.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imguti.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imguti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imguti.ads gcc-15.1.0/gcc/ada/libgnat/s-imguti.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imguti.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imguti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides some common utilities used by the s-imgxxx files
  
  package System.Img_Util is
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides some common utilities used by the `System.Img_*`
! --  packages. It contains subprograms to set the decimal digits for a string
! --  and set the string for a floating-point invalid value.
  
  package System.Img_Util is
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgwch.adb gcc-15.1.0/gcc/ada/libgnat/s-imgwch.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgwch.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgwch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgwch.ads gcc-15.1.0/gcc/ada/libgnat/s-imgwch.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgwch.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgwch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgwiu.adb gcc-15.1.0/gcc/ada/libgnat/s-imgwiu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-imgwiu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgwiu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-imgwiu.ads gcc-15.1.0/gcc/ada/libgnat/s-imgwiu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-imgwiu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-imgwiu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image  of signed and unsigned
! --  integers up to Integer for use by Text_IO.Integer_IO and
! --  Text_IO.Modular_IO.
  
  with System.Image_W;
  with System.Unsigned_Types;
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  Contains the routine for computing the image  of signed and unsigned
! --  integers up to Integer for use by ``Ada.Text_IO.Integer_IO`` and
! --  ``Ada.Text_IO.Modular_IO``.
  
  with System.Image_W;
  with System.Unsigned_Types;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-io.adb gcc-15.1.0/gcc/ada/libgnat/s-io.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-io.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-io.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-io.ads gcc-15.1.0/gcc/ada/libgnat/s-io.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-io.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-io.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-llflex.ads gcc-15.1.0/gcc/ada/libgnat/s-llflex.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-llflex.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-llflex.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-maccod.ads gcc-15.1.0/gcc/ada/libgnat/s-maccod.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-maccod.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-maccod.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  This package provides machine code support, both for intrinsic machine
! --  operations, and also for machine code statements. See GNAT documentation
! --  for full details.
  
  package System.Machine_Code
    with SPARK_Mode => Off
--- 30,39 ----
  ------------------------------------------------------------------------------
  
  --  This package provides machine code support, both for intrinsic machine
! --  operations, and also for machine code statements. It implements the
! --  *System.Machine_code* package defined in ARM 13.8 and GNAT Reference Manual
! --  (chapter 'Implementation of Specific Ada Features', 'Machine Code
! --  Insertions').
  
  package System.Machine_Code
    with SPARK_Mode => Off
*************** is
*** 39,47 ****
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
-    --  All identifiers in this unit are implementation defined
- 
     pragma Implementation_Defined;
  
     type Asm_Input_Operand  is private;
     type Asm_Output_Operand is private;
--- 41,48 ----
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
     pragma Implementation_Defined;
+    --  All identifiers in this unit are implementation defined
  
     type Asm_Input_Operand  is private;
     type Asm_Output_Operand is private;
*************** is
*** 50,61 ****
--- 51,67 ----
  
     No_Input_Operands  : constant Asm_Input_Operand;
     No_Output_Operands : constant Asm_Output_Operand;
+    --  These constants are used as default value to denote respectively no
+    --  input operands and no output operands.
  
     type Asm_Input_Operand_List  is
       array (Integer range <>) of Asm_Input_Operand;
  
     type Asm_Output_Operand_List is
       array (Integer range <>) of Asm_Output_Operand;
+    --  The types *Asm_Input_Operand_List* and *Asm_Output_Operand_List* are
+    --  arrays of respectively *Asm_Input_Operand* and *Asm_Output_Operand*.
+    --  They are used to describe lists of operands for the Asm subprograms.
  
     type Asm_Insn is private;
     --  This type is not used directly. It is declared only so that the
*************** is
*** 116,121 ****
--- 122,130 ----
       Inputs   : Asm_Input_Operand  := No_Input_Operands;
       Clobber  : String  := "";
       Volatile : Boolean := False) return Asm_Insn;
+    --  The parameters are described in the GNAT Reference Manual [GRM].
+    --
+    --  These are intrinsic subprograms, fully implemented by the compiler.
  
     pragma Import (Intrinsic, Asm);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mantis.adb gcc-15.1.0/gcc/ada/libgnat/s-mantis.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-mantis.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mantis.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mantis.ads gcc-15.1.0/gcc/ada/libgnat/s-mantis.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mantis.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mantis.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mastop.adb gcc-15.1.0/gcc/ada/libgnat/s-mastop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-mastop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mastop.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                             (Dummy version)                              --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (Dummy version)                              --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mastop.ads gcc-15.1.0/gcc/ada/libgnat/s-mastop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mastop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mastop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-memcop.ads gcc-15.1.0/gcc/ada/libgnat/s-memcop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-memcop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-memcop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-memory.adb gcc-15.1.0/gcc/ada/libgnat/s-memory.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-memory.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-memory.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-memory.ads gcc-15.1.0/gcc/ada/libgnat/s-memory.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-memory.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-memory.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmap.adb gcc-15.1.0/gcc/ada/libgnat/s-mmap.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-mmap.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmap.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmap.ads gcc-15.1.0/gcc/ada/libgnat/s-mmap.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mmap.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmap.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmauni__long.ads gcc-15.1.0/gcc/ada/libgnat/s-mmauni__long.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mmauni__long.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmauni__long.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb gcc-15.1.0/gcc/ada/libgnat/s-mmosin__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmosin__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads gcc-15.1.0/gcc/ada/libgnat/s-mmosin__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmosin__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmosin__unix.adb gcc-15.1.0/gcc/ada/libgnat/s-mmosin__unix.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-mmosin__unix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmosin__unix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-mmosin__unix.ads gcc-15.1.0/gcc/ada/libgnat/s-mmosin__unix.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-mmosin__unix.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-mmosin__unix.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2025, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-multip.adb gcc-15.1.0/gcc/ada/libgnat/s-multip.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-multip.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-multip.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 2010-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 2010-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-multip.ads gcc-15.1.0/gcc/ada/libgnat/s-multip.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-multip.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-multip.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,22 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This is the top level unit for multiprocessor task support as defined by
+ --  ARM D.16. It provides the base types to enumerate CPUs and the
+ --  functionality to get the number of CPUs on the current system.
+ 
  package System.Multiprocessors is
     pragma Preelaborate (Multiprocessors);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-objrea.adb gcc-15.1.0/gcc/ada/libgnat/s-objrea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-objrea.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-objrea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Object_Reader is
*** 75,85 ****
--- 75,87 ----
        EM_SPARC32PLUS : constant := 18; --  Sun SPARC 32+
        EM_PPC         : constant := 20; --  PowerPC
        EM_PPC64       : constant := 21; --  PowerPC 64-bit
+       EM_S390        : constant := 22; --  IBM S/390
        EM_ARM         : constant := 40; --  ARM
        EM_SPARCV9     : constant := 43; --  SPARC v9 64-bit
        EM_IA_64       : constant := 50; --  Intel Merced
        EM_X86_64      : constant := 62; --  AMD x86-64 architecture
        EM_AARCH64     : constant := 183; --  Aarch64
+       EM_RISCV       : constant := 243; --  RISC-V
  
        EN_NIDENT  : constant := 16;
  
*************** package body System.Object_Reader is
*** 620,627 ****
              =>
                 Res.Arch := SPARC;
  
!             when EM_386 =>
!                Res.Arch := i386;
  
              when EM_MIPS
                 | EM_MIPS_RS3_LE
--- 622,629 ----
              =>
                 Res.Arch := SPARC;
  
!             when EM_SPARCV9 =>
!                Res.Arch := SPARC64;
  
              when EM_MIPS
                 | EM_MIPS_RS3_LE
*************** package body System.Object_Reader is
*** 634,641 ****
              when EM_PPC64 =>
                 Res.Arch := PPC64;
  
!             when EM_SPARCV9 =>
!                Res.Arch := SPARC64;
  
              when EM_IA_64 =>
                 Res.Arch := IA64;
--- 636,646 ----
              when EM_PPC64 =>
                 Res.Arch := PPC64;
  
!             when EM_S390 =>
!                Res.Arch := S390;
! 
!             when EM_386 =>
!                Res.Arch := i386;
  
              when EM_IA_64 =>
                 Res.Arch := IA64;
*************** package body System.Object_Reader is
*** 649,654 ****
--- 654,662 ----
              when EM_AARCH64 =>
                 Res.Arch := AARCH64;
  
+             when EM_RISCV =>
+                Res.Arch := RISCV;
+ 
              when others =>
                 raise Format_Error with "unrecognized architecture";
           end case;
*************** package body System.Object_Reader is
*** 2073,2078 ****
--- 2081,2100 ----
              Address_64 := Read (S);
              return Address_64;
  
+          when RISCV | S390 =>
+             case Obj.Format is
+                when ELF32 =>
+                   Address_32 := Read (S);
+                   return uint64 (Address_32);
+ 
+                when ELF64 =>
+                   Address_64 := Read (S);
+                   return Address_64;
+ 
+                when others =>
+                   raise Format_Error with "unrecognized object format";
+             end case;
+ 
           when Unknown =>
              raise Format_Error with "unrecognized machine architecture";
        end case;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-objrea.ads gcc-15.1.0/gcc/ada/libgnat/s-objrea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-objrea.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-objrea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Object_Reader is
*** 120,131 ****
        PPC64,
        --  64-bit PowerPC
  
        ARM,
        --  32-bit ARM
  
!       AARCH64);
        --  64-bit ARM
  
     ------------------
     -- Target types --
     ------------------
--- 120,137 ----
        PPC64,
        --  64-bit PowerPC
  
+       S390,
+       --  IBM S/390
+ 
        ARM,
        --  32-bit ARM
  
!       AARCH64,
        --  64-bit ARM
  
+       RISCV);
+       --  RISC-V
+ 
     ------------------
     -- Target types --
     ------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-optide.adb gcc-15.1.0/gcc/ada/libgnat/s-optide.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-optide.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-optide.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-os_lib.adb gcc-15.1.0/gcc/ada/libgnat/s-os_lib.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-os_lib.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-os_lib.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Deallocation;
*** 34,39 ****
--- 34,40 ----
  with System.Case_Util;
  with System.CRTL;
  with System.Soft_Links;
+ with Interfaces.C;
  
  package body System.OS_Lib is
  
*************** package body System.OS_Lib is
*** 1641,1649 ****
     -------------------------
  
     function Locate_Exec_On_Path
!      (Exec_Name : String) return String_Access
     is
!       function Locate_Exec_On_Path (C_Exec_Name : Address) return Address;
        pragma Import (C, Locate_Exec_On_Path, "__gnat_locate_exec_on_path");
  
        C_Exec_Name  : String (1 .. Exec_Name'Length + 1);
--- 1642,1653 ----
     -------------------------
  
     function Locate_Exec_On_Path
!      (Exec_Name : String;
!       Current_Dir_On_Win : Boolean := False) return String_Access
     is
!       function Locate_Exec_On_Path
!         (C_Exec_Name        : Address;
!          Current_Dir_On_Win : Interfaces.C.int) return Address;
        pragma Import (C, Locate_Exec_On_Path, "__gnat_locate_exec_on_path");
  
        C_Exec_Name  : String (1 .. Exec_Name'Length + 1);
*************** package body System.OS_Lib is
*** 1655,1661 ****
        C_Exec_Name (1 .. Exec_Name'Length)   := Exec_Name;
        C_Exec_Name (C_Exec_Name'Last)        := ASCII.NUL;
  
!       Path_Addr := Locate_Exec_On_Path (C_Exec_Name'Address);
        Path_Len  := C_String_Length (Path_Addr);
  
        if Path_Len = 0 then
--- 1659,1666 ----
        C_Exec_Name (1 .. Exec_Name'Length)   := Exec_Name;
        C_Exec_Name (C_Exec_Name'Last)        := ASCII.NUL;
  
!       Path_Addr := Locate_Exec_On_Path
!         (C_Exec_Name'Address, (if Current_Dir_On_Win then 1 else 0));
        Path_Len  := C_String_Length (Path_Addr);
  
        if Path_Len = 0 then
*************** package body System.OS_Lib is
*** 2089,2096 ****
        --  Returns True only if the Name is including a drive
        --  letter at start.
  
!       function Missed_Drive_Letter (Name : String) return Boolean;
!       --  Missed drive letter at start of the normalized pathname
  
        -------------------
        -- Is_With_Drive --
--- 2094,2103 ----
        --  Returns True only if the Name is including a drive
        --  letter at start.
  
!       function Drive_Letter_Omitted (Name : String) return Boolean;
!       --  Name must be an absolute path. Returns True if and only if
!       --  Name doesn't start with a drive letter and Name is not a
!       --  UNC path.
  
        -------------------
        -- Is_With_Drive --
*************** package body System.OS_Lib is
*** 2104,2114 ****
                       or else Name (Name'First) in 'A' .. 'Z');
        end Is_With_Drive;
  
!       -------------------------
!       -- Missed_Drive_Letter --
!       -------------------------
  
!       function Missed_Drive_Letter (Name : String) return Boolean is
        begin
           return On_Windows
             and then not Is_With_Drive (Name)
--- 2111,2121 ----
                       or else Name (Name'First) in 'A' .. 'Z');
        end Is_With_Drive;
  
!       --------------------------
!       -- Drive_Letter_Omitted --
!       --------------------------
  
!       function Drive_Letter_Omitted (Name : String) return Boolean is
        begin
           return On_Windows
             and then not Is_With_Drive (Name)
*************** package body System.OS_Lib is
*** 2117,2123 ****
                               /= Directory_Separator
                       or else Name (Name'First + 1)
                               /= Directory_Separator);
!       end Missed_Drive_Letter;
  
        -----------------
        -- Final_Value --
--- 2124,2130 ----
                               /= Directory_Separator
                       or else Name (Name'First + 1)
                               /= Directory_Separator);
!       end Drive_Letter_Omitted;
  
        -----------------
        -- Final_Value --
*************** package body System.OS_Lib is
*** 2174,2180 ****
  
           elsif Directory = ""
             or else not Is_Absolute_Path (Directory)
!            or else Missed_Drive_Letter (Directory)
           then
              --  Directory name not given or it is not absolute or without drive
              --  letter on Windows, get current directory.
--- 2181,2187 ----
  
           elsif Directory = ""
             or else not Is_Absolute_Path (Directory)
!            or else Drive_Letter_Omitted (Directory)
           then
              --  Directory name not given or it is not absolute or without drive
              --  letter on Windows, get current directory.
*************** package body System.OS_Lib is
*** 2251,2257 ****
        end if;
  
        if Is_Absolute_Path (Name) then
!          if Missed_Drive_Letter (Name) then
              Fill_Directory (Drive_Only => True);
  
              --  Take only drive letter part with colon
--- 2258,2264 ----
        end if;
  
        if Is_Absolute_Path (Name) then
!          if Drive_Letter_Omitted (Name) then
              Fill_Directory (Drive_Only => True);
  
              --  Take only drive letter part with colon
*************** package body System.OS_Lib is
*** 2286,2293 ****
  
           --  Ensure drive letter is upper-case
  
-          pragma Assert (Path_Buffer (2) = ':');
- 
           if Path_Buffer (1) in 'a' .. 'z' then
              System.Case_Util.To_Upper (Path_Buffer (1 .. 1));
           end if;
--- 2293,2298 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-os_lib.ads gcc-15.1.0/gcc/ada/libgnat/s-os_lib.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-os_lib.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-os_lib.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.OS_Lib is
*** 130,141 ****
     --  Returns current local time in the form YYYY-MM-DD HH:MM:SS. The result
     --  has bounds 1 .. 19.
  
!    function GM_Year    (Date : OS_Time) return Year_Type;
!    function GM_Month   (Date : OS_Time) return Month_Type;
!    function GM_Day     (Date : OS_Time) return Day_Type;
!    function GM_Hour    (Date : OS_Time) return Hour_Type;
!    function GM_Minute  (Date : OS_Time) return Minute_Type;
!    function GM_Second  (Date : OS_Time) return Second_Type;
     --  Functions to extract information from OS_Time value in GMT form
  
     procedure GM_Split
--- 130,141 ----
     --  Returns current local time in the form YYYY-MM-DD HH:MM:SS. The result
     --  has bounds 1 .. 19.
  
!    function GM_Year   (Date : OS_Time) return Year_Type;
!    function GM_Month  (Date : OS_Time) return Month_Type;
!    function GM_Day    (Date : OS_Time) return Day_Type;
!    function GM_Hour   (Date : OS_Time) return Hour_Type;
!    function GM_Minute (Date : OS_Time) return Minute_Type;
!    function GM_Second (Date : OS_Time) return Second_Type;
     --  Functions to extract information from OS_Time value in GMT form
  
     procedure GM_Split
*************** package System.OS_Lib is
*** 494,506 ****
     --  used. Use Is_Owner_Readable_File/Is_Owner_Writable_File or
     --  Is_Read_Accessible_File/Is_Write_Accessible_File instead.
  
!    function Locate_Exec_On_Path (Exec_Name : String) return String_Access;
     --  Try to locate an executable whose name is given by Exec_Name in the
     --  directories listed in the environment Path. If the Exec_Name does not
     --  have the executable suffix, it will be appended before the search.
     --  Otherwise works like Locate_Regular_File below. If the executable is
     --  not found, null is returned.
     --
     --  Note that this function allocates memory for the returned value. This
     --  memory needs to be deallocated after use.
  
--- 494,513 ----
     --  used. Use Is_Owner_Readable_File/Is_Owner_Writable_File or
     --  Is_Read_Accessible_File/Is_Write_Accessible_File instead.
  
!    function Locate_Exec_On_Path
!      (Exec_Name : String;
!       Current_Dir_On_Win : Boolean := False) return String_Access;
     --  Try to locate an executable whose name is given by Exec_Name in the
     --  directories listed in the environment Path. If the Exec_Name does not
     --  have the executable suffix, it will be appended before the search.
     --  Otherwise works like Locate_Regular_File below. If the executable is
     --  not found, null is returned.
     --
+    --  When Current_Dir_On_Win is passed, attempt to look for the
+    --  executable on the current working directory before looking in
+    --  those listed on the PATH. This mimics the Windows behavior,
+    --  and only has an effect on Windows.
+    --
     --  Note that this function allocates memory for the returned value. This
     --  memory needs to be deallocated after use.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-oslock__dummy.ads gcc-15.1.0/gcc/ada/libgnat/s-oslock__dummy.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-oslock__dummy.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-oslock__dummy.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,39 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                       S Y S T E M . O S _ L O C K S                      --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is a no tasking version of this package
+ 
+ package System.OS_Locks is
+    pragma Preelaborate;
+ 
+    type RTS_Lock is new Boolean;
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-oslock__mingw.ads gcc-15.1.0/gcc/ada/libgnat/s-oslock__mingw.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-oslock__mingw.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-oslock__mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,62 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                       S Y S T E M . O S _ L O C K S                      --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is a NT (native) version of this package
+ 
+ with Interfaces.C;
+ with System.Win32;
+ 
+ package System.OS_Locks is
+    pragma Preelaborate;
+ 
+    type CRITICAL_SECTION is limited private;
+ 
+    subtype RTS_Lock is CRITICAL_SECTION;
+    --  Should be used inside the runtime system. The difference between Lock
+    --  and the RTS_Lock is that the later one serves only as a semaphore so
+    --  that do not check for ceiling violations.
+ 
+ private
+ 
+    type CRITICAL_SECTION is record
+       DebugInfo : System.Address;
+ 
+       LockCount      : Long_Integer;
+       RecursionCount : Long_Integer;
+       OwningThread   : Win32.HANDLE;
+       --  The above three fields control entering and exiting the critical
+       --  section for the resource.
+ 
+       LockSemaphore : Win32.HANDLE;
+       SpinCount     : Interfaces.C.size_t;
+    end record;
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-oslock__posix.ads gcc-15.1.0/gcc/ada/libgnat/s-oslock__posix.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-oslock__posix.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-oslock__posix.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,62 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                       S Y S T E M . O S _ L O C K S                      --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is a POSIX-like version of this package
+ 
+ with Interfaces.C;
+ with System.OS_Constants;
+ 
+ package System.OS_Locks is
+    pragma Preelaborate;
+ 
+    type pthread_mutex_t is limited private;
+ 
+    subtype RTS_Lock is pthread_mutex_t;
+    --  Should be used inside the runtime system. The difference between Lock
+    --  and the RTS_Lock is that the latter serves only as a semaphore so that
+    --  we do not check for ceiling violations.
+ 
+ private
+ 
+    subtype char_array is Interfaces.C.char_array;
+ 
+    type pthread_mutex_t is record
+       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
+    end record;
+    pragma Convention (C, pthread_mutex_t);
+    for pthread_mutex_t'Alignment use
+      Integer'Max (Interfaces.C.unsigned_long'Alignment,
+                   System.Address'Alignment);
+    --  On some targets (e.g. CHERI), pointers have larger alignment than
+    --  unsigned_long. On other targets (e.g. some 16-bit targets) long is
+    --  larger than a pointer. Choose the largest to err on the side of caution.
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-oslock__solaris.ads gcc-15.1.0/gcc/ada/libgnat/s-oslock__solaris.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-oslock__solaris.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-oslock__solaris.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,82 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                       S Y S T E M . O S _ L O C K S                      --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is a Solaris (native) version of this package
+ 
+ with Ada.Unchecked_Conversion;
+ with Interfaces.C;
+ 
+ package System.OS_Locks is
+    pragma Preelaborate;
+ 
+    type mutex_t is limited private;
+ 
+    type Private_Task_Serial_Number is mod 2 ** Long_Long_Integer'Size;
+    --  Used to give each task a unique serial number
+ 
+    type Owner_ID is access all Integer;
+ 
+    function To_Owner_ID is
+      new Ada.Unchecked_Conversion (System.Address, Owner_ID);
+ 
+    type RTS_Lock;
+    type RTS_Lock_Ptr is access all RTS_Lock;
+ 
+    type RTS_Lock is record
+       L              : aliased mutex_t;
+       Ceiling        : System.Any_Priority := System.Any_Priority'First;
+       Saved_Priority : System.Any_Priority := System.Any_Priority'First;
+       Owner          : Owner_ID;
+       Next           : RTS_Lock_Ptr;
+       Level          : Private_Task_Serial_Number := 0;
+       Buddy          : Owner_ID;
+       Frozen         : Boolean := False;
+    end record;
+ 
+ private
+ 
+    type array_type_9 is array (0 .. 3) of Interfaces.C.unsigned_char;
+    type record_type_3 is record
+       flag  : array_type_9;
+       Xtype : Interfaces.C.unsigned_long;
+    end record;
+    pragma Convention (C, record_type_3);
+ 
+    type upad64_t is new Interfaces.Unsigned_64;
+ 
+    type mutex_t is record
+       flags : record_type_3;
+       lock  : upad64_t;
+       data  : upad64_t;
+    end record;
+    pragma Convention (C, mutex_t);
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-oslock__vxworks.ads gcc-15.1.0/gcc/ada/libgnat/s-oslock__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-oslock__vxworks.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-oslock__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,48 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ --                       S Y S T E M . O S _ L O C K S                      --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --         Copyright (C) 2024-2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNARL was developed by the GNARL team at Florida State University.       --
+ -- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is a VxWorks version of this package
+ 
+ with Interfaces.C;
+ with System.VxWorks.Ext;
+ 
+ package System.OS_Locks is
+    pragma Preelaborate;
+ 
+    type Priority_Type is (Prio_None, Prio_Protect, Prio_Inherit);
+ 
+    type RTS_Lock is record
+       Mutex        : System.VxWorks.Ext.SEM_ID;
+       Protocol     : Priority_Type;
+       Prio_Ceiling : Interfaces.C.int;
+    end record;
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim.ads gcc-15.1.0/gcc/ada/libgnat/s-osprim.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__darwin.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__darwin.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__darwin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__darwin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads gcc-15.1.0/gcc/ada/libgnat/s-osprim__lynxos.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__lynxos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__mingw.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__posix.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__posix.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__posix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__posix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__posix2008.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__posix2008.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__rtems.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__rtems.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__rtems.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__rtems.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__solaris.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__solaris.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__solaris.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__solaris.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__unix.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__unix.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__unix.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__unix.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-osprim__x32.adb gcc-15.1.0/gcc/ada/libgnat/s-osprim__x32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-osprim__x32.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-osprim__x32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2013-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack03.adb gcc-15.1.0/gcc/ada/libgnat/s-pack03.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack03.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack03.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_03 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 03 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_03 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_03;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_03;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_03;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_03;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_03;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_03;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_03;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_03;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_03;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_03 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_03 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_03 --
*************** package body System.Pack_03 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_03
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_03;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_03
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_03;
  
*************** package body System.Pack_03 is
*** 124,154 ****
        E       : Bits_03;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_03;
--- 427,472 ----
        E       : Bits_03;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_03;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack03.ads gcc-15.1.0/gcc/ada/libgnat/s-pack03.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack03.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack03.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_03 is
     pragma Preelaborate;
  
+    --  3-bit element type definition
+ 
     Bits : constant := 3;
  
     type Bits_03 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack05.adb gcc-15.1.0/gcc/ada/libgnat/s-pack05.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack05.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack05.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_05 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 05 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_05 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_05;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_05;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_05;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_05;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_05;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_05;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_05;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_05;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_05;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_05 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_05 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_05 --
*************** package body System.Pack_05 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_05
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_05;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_05
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_05;
  
*************** package body System.Pack_05 is
*** 124,154 ****
        E       : Bits_05;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_05;
--- 427,472 ----
        E       : Bits_05;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_05;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack05.ads gcc-15.1.0/gcc/ada/libgnat/s-pack05.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack05.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack05.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_05 is
     pragma Preelaborate;
  
+    --  5-bit element type definition
+ 
     Bits : constant := 5;
  
     type Bits_05 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack06.adb gcc-15.1.0/gcc/ada/libgnat/s-pack06.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack06.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack06.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_06 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 06 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_06 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_06;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_06;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_06;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_06;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_06;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_06;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_06;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_06;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_06;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_06 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_06 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_06 or SetU_06 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_06 --
*************** package body System.Pack_06 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_06
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_06;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_06
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_06;
  
*************** package body System.Pack_06 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_06
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_06;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_06
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_06;
  
*************** package body System.Pack_06 is
*** 177,207 ****
        E       : Bits_06;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_06;
--- 608,653 ----
        E       : Bits_06;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_06;
*************** package body System.Pack_06 is
*** 216,246 ****
        E       : Bits_06;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_06;
--- 662,707 ----
        E       : Bits_06;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_06;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack06.ads gcc-15.1.0/gcc/ada/libgnat/s-pack06.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack06.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack06.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_06 is
     pragma Preelaborate;
  
+    --  6-bit element type definition
+ 
     Bits : constant := 6;
  
     type Bits_06 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack07.adb gcc-15.1.0/gcc/ada/libgnat/s-pack07.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack07.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack07.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_07 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 07 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_07 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_07;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_07;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_07;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_07;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_07;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_07;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_07;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_07;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_07;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_07 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_07 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_07 --
*************** package body System.Pack_07 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_07
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_07;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_07
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_07;
  
*************** package body System.Pack_07 is
*** 124,154 ****
        E       : Bits_07;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_07;
--- 427,472 ----
        E       : Bits_07;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_07;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack07.ads gcc-15.1.0/gcc/ada/libgnat/s-pack07.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack07.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack07.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_07 is
     pragma Preelaborate;
  
+    --  7-bit element type definition
+ 
     Bits : constant := 7;
  
     type Bits_07 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack09.adb gcc-15.1.0/gcc/ada/libgnat/s-pack09.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack09.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack09.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_09 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 09 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_09 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_09;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_09;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_09;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_09;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_09;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_09;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_09;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_09;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_09;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_09 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_09 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_09 --
*************** package body System.Pack_09 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_09
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_09;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_09
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_09;
  
*************** package body System.Pack_09 is
*** 124,154 ****
        E       : Bits_09;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_09;
--- 427,472 ----
        E       : Bits_09;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_09;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack09.ads gcc-15.1.0/gcc/ada/libgnat/s-pack09.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack09.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack09.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_09 is
     pragma Preelaborate;
  
+    --  9-bit element type definition
+ 
     Bits : constant := 9;
  
     type Bits_09 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack10.adb gcc-15.1.0/gcc/ada/libgnat/s-pack10.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack10.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack10.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_10 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 10 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_10 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_10;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_10;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_10;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_10;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_10;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_10;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_10;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_10;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_10;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_10 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_10 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_10 or SetU_10 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_10 --
*************** package body System.Pack_10 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_10
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_10;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_10
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_10;
  
*************** package body System.Pack_10 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_10
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_10;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_10
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_10;
  
*************** package body System.Pack_10 is
*** 177,207 ****
        E       : Bits_10;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_10;
--- 608,653 ----
        E       : Bits_10;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_10;
*************** package body System.Pack_10 is
*** 216,246 ****
        E       : Bits_10;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_10;
--- 662,707 ----
        E       : Bits_10;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_10;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack10.ads gcc-15.1.0/gcc/ada/libgnat/s-pack10.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack10.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack10.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_10 is
     pragma Preelaborate;
  
+    --  10-bit element type definition
+ 
     Bits : constant := 10;
  
     type Bits_10 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack100.adb gcc-15.1.0/gcc/ada/libgnat/s-pack100.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack100.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack100.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_100 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 100 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_100 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_100;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_100;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_100;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_100;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_100;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_100;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_100;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_100;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_100;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_100 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_100 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_100 or SetU_100 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_100 --
*************** package body System.Pack_100 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_100
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_100;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_100
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_100;
  
*************** package body System.Pack_100 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_100
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_100;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_100
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_100;
  
*************** package body System.Pack_100 is
*** 177,207 ****
        E       : Bits_100;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_100;
--- 608,653 ----
        E       : Bits_100;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_100;
*************** package body System.Pack_100 is
*** 216,246 ****
        E       : Bits_100;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_100;
--- 662,707 ----
        E       : Bits_100;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_100;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack100.ads gcc-15.1.0/gcc/ada/libgnat/s-pack100.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack100.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack100.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_100 is
     pragma Preelaborate;
  
+    --  100-bit element type definition
+ 
     Bits : constant := 100;
  
     type Bits_100 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack101.adb gcc-15.1.0/gcc/ada/libgnat/s-pack101.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack101.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack101.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_101 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 101 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_101 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_101;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_101;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_101;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_101;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_101;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_101;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_101;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_101;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_101;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_101 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_101 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_101 --
*************** package body System.Pack_101 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_101
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_101;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_101
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_101;
  
*************** package body System.Pack_101 is
*** 124,154 ****
        E       : Bits_101;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_101;
--- 427,472 ----
        E       : Bits_101;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_101;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack101.ads gcc-15.1.0/gcc/ada/libgnat/s-pack101.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack101.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack101.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_101 is
     pragma Preelaborate;
  
+    --  101-bit element type definition
+ 
     Bits : constant := 101;
  
     type Bits_101 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack102.adb gcc-15.1.0/gcc/ada/libgnat/s-pack102.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack102.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack102.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_102 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 102 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_102 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_102;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_102;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_102;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_102;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_102;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_102;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_102;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_102;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_102;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_102 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_102 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_102 or SetU_102 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_102 --
*************** package body System.Pack_102 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_102
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_102;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_102
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_102;
  
*************** package body System.Pack_102 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_102
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_102;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_102
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_102;
  
*************** package body System.Pack_102 is
*** 177,207 ****
        E       : Bits_102;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_102;
--- 608,653 ----
        E       : Bits_102;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_102;
*************** package body System.Pack_102 is
*** 216,246 ****
        E       : Bits_102;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_102;
--- 662,707 ----
        E       : Bits_102;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_102;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack102.ads gcc-15.1.0/gcc/ada/libgnat/s-pack102.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack102.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack102.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_102 is
     pragma Preelaborate;
  
+    --  102-bit element type definition
+ 
     Bits : constant := 102;
  
     type Bits_102 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack103.adb gcc-15.1.0/gcc/ada/libgnat/s-pack103.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack103.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack103.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_103 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 103 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_103 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_103;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_103;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_103;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_103;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_103;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_103;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_103;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_103;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_103;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_103 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_103 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_103 --
*************** package body System.Pack_103 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_103
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_103;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_103
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_103;
  
*************** package body System.Pack_103 is
*** 124,154 ****
        E       : Bits_103;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_103;
--- 427,472 ----
        E       : Bits_103;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_103;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack103.ads gcc-15.1.0/gcc/ada/libgnat/s-pack103.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack103.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack103.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_103 is
     pragma Preelaborate;
  
+    --  103-bit element type definition
+ 
     Bits : constant := 103;
  
     type Bits_103 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack104.adb gcc-15.1.0/gcc/ada/libgnat/s-pack104.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack104.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack104.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_104 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 104 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_104 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_104;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_104;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_104;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_104;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_104;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_104;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_104;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_104;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_104;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_104 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_104 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_104 or SetU_104 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_104 --
*************** package body System.Pack_104 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_104
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_104;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_104
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_104;
  
*************** package body System.Pack_104 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_104
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_104;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_104
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_104;
  
*************** package body System.Pack_104 is
*** 177,207 ****
        E       : Bits_104;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_104;
--- 608,653 ----
        E       : Bits_104;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_104;
*************** package body System.Pack_104 is
*** 216,246 ****
        E       : Bits_104;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_104;
--- 662,707 ----
        E       : Bits_104;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_104;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack104.ads gcc-15.1.0/gcc/ada/libgnat/s-pack104.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack104.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack104.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_104 is
     pragma Preelaborate;
  
+    --  104-bit element type definition
+ 
     Bits : constant := 104;
  
     type Bits_104 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack105.adb gcc-15.1.0/gcc/ada/libgnat/s-pack105.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack105.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack105.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_105 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 105 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_105 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_105;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_105;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_105;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_105;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_105;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_105;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_105;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_105;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_105;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_105 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_105 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_105 --
*************** package body System.Pack_105 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_105
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_105;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_105
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_105;
  
*************** package body System.Pack_105 is
*** 124,154 ****
        E       : Bits_105;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_105;
--- 427,472 ----
        E       : Bits_105;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_105;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack105.ads gcc-15.1.0/gcc/ada/libgnat/s-pack105.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack105.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack105.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_105 is
     pragma Preelaborate;
  
+    --  105-bit element type definition
+ 
     Bits : constant := 105;
  
     type Bits_105 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack106.adb gcc-15.1.0/gcc/ada/libgnat/s-pack106.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack106.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack106.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_106 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 106 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_106 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_106;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_106;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_106;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_106;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_106;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_106;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_106;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_106;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_106;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_106 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_106 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_106 or SetU_106 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_106 --
*************** package body System.Pack_106 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_106
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_106;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_106
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_106;
  
*************** package body System.Pack_106 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_106
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_106;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_106
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_106;
  
*************** package body System.Pack_106 is
*** 177,207 ****
        E       : Bits_106;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_106;
--- 608,653 ----
        E       : Bits_106;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_106;
*************** package body System.Pack_106 is
*** 216,246 ****
        E       : Bits_106;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_106;
--- 662,707 ----
        E       : Bits_106;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_106;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack106.ads gcc-15.1.0/gcc/ada/libgnat/s-pack106.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack106.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack106.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_106 is
     pragma Preelaborate;
  
+    --  106-bit element type definition
+ 
     Bits : constant := 106;
  
     type Bits_106 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack107.adb gcc-15.1.0/gcc/ada/libgnat/s-pack107.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack107.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack107.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_107 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 107 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_107 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_107;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_107;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_107;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_107;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_107;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_107;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_107;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_107;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_107;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_107 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_107 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_107 --
*************** package body System.Pack_107 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_107
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_107;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_107
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_107;
  
*************** package body System.Pack_107 is
*** 124,154 ****
        E       : Bits_107;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_107;
--- 427,472 ----
        E       : Bits_107;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_107;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack107.ads gcc-15.1.0/gcc/ada/libgnat/s-pack107.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack107.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack107.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_107 is
     pragma Preelaborate;
  
+    --  107-bit element type definition
+ 
     Bits : constant := 107;
  
     type Bits_107 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack108.adb gcc-15.1.0/gcc/ada/libgnat/s-pack108.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack108.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack108.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_108 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 108 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_108 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_108;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_108;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_108;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_108;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_108;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_108;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_108;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_108;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_108;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_108 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_108 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_108 or SetU_108 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_108 --
*************** package body System.Pack_108 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_108
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_108;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_108
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_108;
  
*************** package body System.Pack_108 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_108
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_108;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_108
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_108;
  
*************** package body System.Pack_108 is
*** 177,207 ****
        E       : Bits_108;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_108;
--- 608,653 ----
        E       : Bits_108;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_108;
*************** package body System.Pack_108 is
*** 216,246 ****
        E       : Bits_108;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_108;
--- 662,707 ----
        E       : Bits_108;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_108;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack108.ads gcc-15.1.0/gcc/ada/libgnat/s-pack108.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack108.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack108.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_108 is
     pragma Preelaborate;
  
+    --  108-bit element type definition
+ 
     Bits : constant := 108;
  
     type Bits_108 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack109.adb gcc-15.1.0/gcc/ada/libgnat/s-pack109.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack109.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack109.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_109 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 109 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_109 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_109;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_109;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_109;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_109;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_109;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_109;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_109;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_109;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_109;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_109 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_109 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_109 --
*************** package body System.Pack_109 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_109
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_109;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_109
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_109;
  
*************** package body System.Pack_109 is
*** 124,154 ****
        E       : Bits_109;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_109;
--- 427,472 ----
        E       : Bits_109;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_109;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack109.ads gcc-15.1.0/gcc/ada/libgnat/s-pack109.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack109.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack109.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_109 is
     pragma Preelaborate;
  
+    --  109-bit element type definition
+ 
     Bits : constant := 109;
  
     type Bits_109 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack11.adb gcc-15.1.0/gcc/ada/libgnat/s-pack11.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack11.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack11.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_11 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 11 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_11 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_11;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_11;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_11;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_11;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_11;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_11;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_11;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_11;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_11;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_11 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_11 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_11 --
*************** package body System.Pack_11 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_11
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_11;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_11
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_11;
  
*************** package body System.Pack_11 is
*** 124,154 ****
        E       : Bits_11;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_11;
--- 427,472 ----
        E       : Bits_11;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_11;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack11.ads gcc-15.1.0/gcc/ada/libgnat/s-pack11.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack11.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack11.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_11 is
     pragma Preelaborate;
  
+    --  11-bit element type definition
+ 
     Bits : constant := 11;
  
     type Bits_11 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack110.adb gcc-15.1.0/gcc/ada/libgnat/s-pack110.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack110.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack110.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_110 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 110 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_110 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_110;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_110;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_110;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_110;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_110;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_110;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_110;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_110;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_110;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_110 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_110 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_110 or SetU_110 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_110 --
*************** package body System.Pack_110 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_110
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_110;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_110
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_110;
  
*************** package body System.Pack_110 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_110
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_110;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_110
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_110;
  
*************** package body System.Pack_110 is
*** 177,207 ****
        E       : Bits_110;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_110;
--- 608,653 ----
        E       : Bits_110;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_110;
*************** package body System.Pack_110 is
*** 216,246 ****
        E       : Bits_110;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_110;
--- 662,707 ----
        E       : Bits_110;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_110;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack110.ads gcc-15.1.0/gcc/ada/libgnat/s-pack110.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack110.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack110.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_110 is
     pragma Preelaborate;
  
+    --  110-bit element type definition
+ 
     Bits : constant := 110;
  
     type Bits_110 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack111.adb gcc-15.1.0/gcc/ada/libgnat/s-pack111.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack111.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack111.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_111 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 111 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_111 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_111;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_111;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_111;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_111;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_111;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_111;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_111;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_111;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_111;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_111 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_111 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_111 --
*************** package body System.Pack_111 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_111
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_111;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_111
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_111;
  
*************** package body System.Pack_111 is
*** 124,154 ****
        E       : Bits_111;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_111;
--- 427,472 ----
        E       : Bits_111;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_111;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack111.ads gcc-15.1.0/gcc/ada/libgnat/s-pack111.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack111.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack111.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_111 is
     pragma Preelaborate;
  
+    --  111-bit element type definition
+ 
     Bits : constant := 111;
  
     type Bits_111 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack112.adb gcc-15.1.0/gcc/ada/libgnat/s-pack112.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack112.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack112.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_112 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 112 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_112 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_112;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_112;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_112;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_112;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_112;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_112;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_112;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_112;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_112;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_112 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_112 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_112 or SetU_112 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_112 --
*************** package body System.Pack_112 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_112
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_112;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_112
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_112;
  
*************** package body System.Pack_112 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_112
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_112;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_112
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_112;
  
*************** package body System.Pack_112 is
*** 177,207 ****
        E       : Bits_112;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_112;
--- 608,653 ----
        E       : Bits_112;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_112;
*************** package body System.Pack_112 is
*** 216,246 ****
        E       : Bits_112;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_112;
--- 662,707 ----
        E       : Bits_112;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_112;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack112.ads gcc-15.1.0/gcc/ada/libgnat/s-pack112.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack112.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack112.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_112 is
     pragma Preelaborate;
  
+    --  112-bit element type definition
+ 
     Bits : constant := 112;
  
     type Bits_112 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack113.adb gcc-15.1.0/gcc/ada/libgnat/s-pack113.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack113.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack113.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_113 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 113 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_113 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_113;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_113;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_113;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_113;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_113;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_113;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_113;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_113;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_113;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_113 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_113 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_113 --
*************** package body System.Pack_113 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_113
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_113;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_113
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_113;
  
*************** package body System.Pack_113 is
*** 124,154 ****
        E       : Bits_113;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_113;
--- 427,472 ----
        E       : Bits_113;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_113;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack113.ads gcc-15.1.0/gcc/ada/libgnat/s-pack113.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack113.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack113.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_113 is
     pragma Preelaborate;
  
+    --  113-bit element type definition
+ 
     Bits : constant := 113;
  
     type Bits_113 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack114.adb gcc-15.1.0/gcc/ada/libgnat/s-pack114.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack114.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack114.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_114 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 114 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_114 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_114;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_114;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_114;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_114;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_114;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_114;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_114;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_114;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_114;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_114 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_114 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_114 or SetU_114 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_114 --
*************** package body System.Pack_114 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_114
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_114;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_114
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_114;
  
*************** package body System.Pack_114 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_114
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_114;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_114
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_114;
  
*************** package body System.Pack_114 is
*** 177,207 ****
        E       : Bits_114;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_114;
--- 608,653 ----
        E       : Bits_114;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_114;
*************** package body System.Pack_114 is
*** 216,246 ****
        E       : Bits_114;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_114;
--- 662,707 ----
        E       : Bits_114;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_114;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack114.ads gcc-15.1.0/gcc/ada/libgnat/s-pack114.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack114.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack114.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_114 is
     pragma Preelaborate;
  
+    --  114-bit element type definition
+ 
     Bits : constant := 114;
  
     type Bits_114 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack115.adb gcc-15.1.0/gcc/ada/libgnat/s-pack115.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack115.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack115.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_115 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 115 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_115 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_115;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_115;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_115;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_115;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_115;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_115;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_115;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_115;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_115;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_115 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_115 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_115 --
*************** package body System.Pack_115 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_115
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_115;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_115
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_115;
  
*************** package body System.Pack_115 is
*** 124,154 ****
        E       : Bits_115;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_115;
--- 427,472 ----
        E       : Bits_115;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_115;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack115.ads gcc-15.1.0/gcc/ada/libgnat/s-pack115.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack115.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack115.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_115 is
     pragma Preelaborate;
  
+    --  115-bit element type definition
+ 
     Bits : constant := 115;
  
     type Bits_115 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack116.adb gcc-15.1.0/gcc/ada/libgnat/s-pack116.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack116.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack116.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_116 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 116 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_116 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_116;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_116;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_116;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_116;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_116;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_116;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_116;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_116;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_116;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_116 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_116 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_116 or SetU_116 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_116 --
*************** package body System.Pack_116 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_116
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_116;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_116
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_116;
  
*************** package body System.Pack_116 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_116
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_116;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_116
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_116;
  
*************** package body System.Pack_116 is
*** 177,207 ****
        E       : Bits_116;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_116;
--- 608,653 ----
        E       : Bits_116;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_116;
*************** package body System.Pack_116 is
*** 216,246 ****
        E       : Bits_116;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_116;
--- 662,707 ----
        E       : Bits_116;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_116;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack116.ads gcc-15.1.0/gcc/ada/libgnat/s-pack116.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack116.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack116.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_116 is
     pragma Preelaborate;
  
+    --  116-bit element type definition
+ 
     Bits : constant := 116;
  
     type Bits_116 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack117.adb gcc-15.1.0/gcc/ada/libgnat/s-pack117.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack117.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack117.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_117 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 117 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_117 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_117;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_117;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_117;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_117;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_117;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_117;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_117;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_117;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_117;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_117 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_117 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_117 --
*************** package body System.Pack_117 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_117
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_117;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_117
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_117;
  
*************** package body System.Pack_117 is
*** 124,154 ****
        E       : Bits_117;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_117;
--- 427,472 ----
        E       : Bits_117;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_117;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack117.ads gcc-15.1.0/gcc/ada/libgnat/s-pack117.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack117.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack117.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_117 is
     pragma Preelaborate;
  
+    --  117-bit element type definition
+ 
     Bits : constant := 117;
  
     type Bits_117 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack118.adb gcc-15.1.0/gcc/ada/libgnat/s-pack118.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack118.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack118.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_118 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 118 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_118 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_118;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_118;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_118;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_118;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_118;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_118;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_118;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_118;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_118;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_118 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_118 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_118 or SetU_118 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_118 --
*************** package body System.Pack_118 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_118
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_118;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_118
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_118;
  
*************** package body System.Pack_118 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_118
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_118;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_118
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_118;
  
*************** package body System.Pack_118 is
*** 177,207 ****
        E       : Bits_118;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_118;
--- 608,653 ----
        E       : Bits_118;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_118;
*************** package body System.Pack_118 is
*** 216,246 ****
        E       : Bits_118;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_118;
--- 662,707 ----
        E       : Bits_118;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_118;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack118.ads gcc-15.1.0/gcc/ada/libgnat/s-pack118.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack118.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack118.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_118 is
     pragma Preelaborate;
  
+    --  118-bit element type definition
+ 
     Bits : constant := 118;
  
     type Bits_118 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack119.adb gcc-15.1.0/gcc/ada/libgnat/s-pack119.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack119.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack119.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_119 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 119 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_119 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_119;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_119;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_119;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_119;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_119;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_119;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_119;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_119;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_119;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_119 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_119 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_119 --
*************** package body System.Pack_119 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_119
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_119;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_119
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_119;
  
*************** package body System.Pack_119 is
*** 124,154 ****
        E       : Bits_119;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_119;
--- 427,472 ----
        E       : Bits_119;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_119;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack119.ads gcc-15.1.0/gcc/ada/libgnat/s-pack119.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack119.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack119.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_119 is
     pragma Preelaborate;
  
+    --  119-bit element type definition
+ 
     Bits : constant := 119;
  
     type Bits_119 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack12.adb gcc-15.1.0/gcc/ada/libgnat/s-pack12.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack12.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack12.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_12 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 12 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_12 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_12;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_12;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_12;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_12;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_12;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_12;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_12;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_12;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_12;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_12 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_12 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_12 or SetU_12 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_12 --
*************** package body System.Pack_12 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_12
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_12;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_12
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_12;
  
*************** package body System.Pack_12 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_12
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_12;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_12
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_12;
  
*************** package body System.Pack_12 is
*** 177,207 ****
        E       : Bits_12;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_12;
--- 608,653 ----
        E       : Bits_12;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_12;
*************** package body System.Pack_12 is
*** 216,246 ****
        E       : Bits_12;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_12;
--- 662,707 ----
        E       : Bits_12;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_12;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack12.ads gcc-15.1.0/gcc/ada/libgnat/s-pack12.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack12.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack12.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_12 is
     pragma Preelaborate;
  
+    --  12-bit element type definition
+ 
     Bits : constant := 12;
  
     type Bits_12 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack120.adb gcc-15.1.0/gcc/ada/libgnat/s-pack120.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack120.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack120.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_120 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 120 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_120 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_120;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_120;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_120;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_120;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_120;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_120;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_120;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_120;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_120;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_120 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_120 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_120 or SetU_120 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_120 --
*************** package body System.Pack_120 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_120
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_120;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_120
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_120;
  
*************** package body System.Pack_120 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_120
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_120;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_120
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_120;
  
*************** package body System.Pack_120 is
*** 177,207 ****
        E       : Bits_120;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_120;
--- 608,653 ----
        E       : Bits_120;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_120;
*************** package body System.Pack_120 is
*** 216,246 ****
        E       : Bits_120;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_120;
--- 662,707 ----
        E       : Bits_120;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_120;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack120.ads gcc-15.1.0/gcc/ada/libgnat/s-pack120.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack120.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack120.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_120 is
     pragma Preelaborate;
  
+    --  120-bit element type definition
+ 
     Bits : constant := 120;
  
     type Bits_120 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack121.adb gcc-15.1.0/gcc/ada/libgnat/s-pack121.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack121.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack121.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_121 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 121 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_121 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_121;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_121;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_121;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_121;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_121;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_121;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_121;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_121;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_121;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_121 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_121 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_121 --
*************** package body System.Pack_121 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_121
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_121;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_121
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_121;
  
*************** package body System.Pack_121 is
*** 124,154 ****
        E       : Bits_121;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_121;
--- 427,472 ----
        E       : Bits_121;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_121;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack121.ads gcc-15.1.0/gcc/ada/libgnat/s-pack121.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack121.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack121.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_121 is
     pragma Preelaborate;
  
+    --  121-bit element type definition
+ 
     Bits : constant := 121;
  
     type Bits_121 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack122.adb gcc-15.1.0/gcc/ada/libgnat/s-pack122.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack122.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack122.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_122 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 122 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_122 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_122;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_122;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_122;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_122;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_122;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_122;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_122;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_122;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_122;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_122 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_122 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_122 or SetU_122 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_122 --
*************** package body System.Pack_122 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_122
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_122;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_122
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_122;
  
*************** package body System.Pack_122 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_122
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_122;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_122
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_122;
  
*************** package body System.Pack_122 is
*** 177,207 ****
        E       : Bits_122;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_122;
--- 608,653 ----
        E       : Bits_122;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_122;
*************** package body System.Pack_122 is
*** 216,246 ****
        E       : Bits_122;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_122;
--- 662,707 ----
        E       : Bits_122;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_122;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack122.ads gcc-15.1.0/gcc/ada/libgnat/s-pack122.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack122.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack122.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_122 is
     pragma Preelaborate;
  
+    --  122-bit element type definition
+ 
     Bits : constant := 122;
  
     type Bits_122 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack123.adb gcc-15.1.0/gcc/ada/libgnat/s-pack123.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack123.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack123.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_123 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 123 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_123 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_123;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_123;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_123;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_123;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_123;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_123;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_123;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_123;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_123;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_123 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_123 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_123 --
*************** package body System.Pack_123 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_123
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_123;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_123
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_123;
  
*************** package body System.Pack_123 is
*** 124,154 ****
        E       : Bits_123;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_123;
--- 427,472 ----
        E       : Bits_123;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_123;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack123.ads gcc-15.1.0/gcc/ada/libgnat/s-pack123.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack123.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack123.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_123 is
     pragma Preelaborate;
  
+    --  123-bit element type definition
+ 
     Bits : constant := 123;
  
     type Bits_123 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack124.adb gcc-15.1.0/gcc/ada/libgnat/s-pack124.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack124.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack124.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_124 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 124 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_124 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_124;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_124;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_124;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_124;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_124;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_124;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_124;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_124;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_124;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_124 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_124 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_124 or SetU_124 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_124 --
*************** package body System.Pack_124 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_124
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_124;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_124
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_124;
  
*************** package body System.Pack_124 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_124
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_124;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_124
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_124;
  
*************** package body System.Pack_124 is
*** 177,207 ****
        E       : Bits_124;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_124;
--- 608,653 ----
        E       : Bits_124;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_124;
*************** package body System.Pack_124 is
*** 216,246 ****
        E       : Bits_124;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_124;
--- 662,707 ----
        E       : Bits_124;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_124;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack124.ads gcc-15.1.0/gcc/ada/libgnat/s-pack124.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack124.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack124.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_124 is
     pragma Preelaborate;
  
+    --  124-bit element type definition
+ 
     Bits : constant := 124;
  
     type Bits_124 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack125.adb gcc-15.1.0/gcc/ada/libgnat/s-pack125.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack125.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack125.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_125 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 125 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_125 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_125;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_125;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_125;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_125;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_125;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_125;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_125;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_125;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_125;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_125 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_125 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_125 --
*************** package body System.Pack_125 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_125
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_125;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_125
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_125;
  
*************** package body System.Pack_125 is
*** 124,154 ****
        E       : Bits_125;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_125;
--- 427,472 ----
        E       : Bits_125;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_125;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack125.ads gcc-15.1.0/gcc/ada/libgnat/s-pack125.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack125.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack125.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_125 is
     pragma Preelaborate;
  
+    --  125-bit element type definition
+ 
     Bits : constant := 125;
  
     type Bits_125 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack126.adb gcc-15.1.0/gcc/ada/libgnat/s-pack126.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack126.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack126.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_126 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 126 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_126 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_126;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_126;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_126;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_126;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_126;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_126;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_126;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_126;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_126;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_126 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_126 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_126 or SetU_126 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_126 --
*************** package body System.Pack_126 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_126
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_126;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_126
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_126;
  
*************** package body System.Pack_126 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_126
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_126;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_126
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_126;
  
*************** package body System.Pack_126 is
*** 177,207 ****
        E       : Bits_126;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_126;
--- 608,653 ----
        E       : Bits_126;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_126;
*************** package body System.Pack_126 is
*** 216,246 ****
        E       : Bits_126;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_126;
--- 662,707 ----
        E       : Bits_126;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_126;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack126.ads gcc-15.1.0/gcc/ada/libgnat/s-pack126.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack126.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack126.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_126 is
     pragma Preelaborate;
  
+    --  126-bit element type definition
+ 
     Bits : constant := 126;
  
     type Bits_126 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack127.adb gcc-15.1.0/gcc/ada/libgnat/s-pack127.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack127.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack127.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_127 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 127 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_127 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_127;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_127;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_127;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_127;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_127;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_127;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_127;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_127;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_127;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_127 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_127 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_127 --
*************** package body System.Pack_127 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_127
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_127;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_127
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_127;
  
*************** package body System.Pack_127 is
*** 124,154 ****
        E       : Bits_127;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_127;
--- 427,472 ----
        E       : Bits_127;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_127;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack127.ads gcc-15.1.0/gcc/ada/libgnat/s-pack127.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack127.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack127.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_127 is
     pragma Preelaborate;
  
+    --  127-bit element type definition
+ 
     Bits : constant := 127;
  
     type Bits_127 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack13.adb gcc-15.1.0/gcc/ada/libgnat/s-pack13.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack13.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack13.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_13 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 13 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_13 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_13;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_13;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_13;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_13;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_13;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_13;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_13;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_13;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_13;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_13 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_13 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_13 --
*************** package body System.Pack_13 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_13
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_13;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_13
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_13;
  
*************** package body System.Pack_13 is
*** 124,154 ****
        E       : Bits_13;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_13;
--- 427,472 ----
        E       : Bits_13;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_13;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack13.ads gcc-15.1.0/gcc/ada/libgnat/s-pack13.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack13.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack13.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_13 is
     pragma Preelaborate;
  
+    --  13-bit element type definition
+ 
     Bits : constant := 13;
  
     type Bits_13 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack14.adb gcc-15.1.0/gcc/ada/libgnat/s-pack14.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack14.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack14.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_14 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 14 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_14 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_14;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_14;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_14;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_14;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_14;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_14;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_14;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_14;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_14;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_14 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_14 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_14 or SetU_14 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_14 --
*************** package body System.Pack_14 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_14
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_14;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_14
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_14;
  
*************** package body System.Pack_14 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_14
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_14;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_14
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_14;
  
*************** package body System.Pack_14 is
*** 177,207 ****
        E       : Bits_14;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_14;
--- 608,653 ----
        E       : Bits_14;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_14;
*************** package body System.Pack_14 is
*** 216,246 ****
        E       : Bits_14;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_14;
--- 662,707 ----
        E       : Bits_14;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_14;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack14.ads gcc-15.1.0/gcc/ada/libgnat/s-pack14.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack14.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack14.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_14 is
     pragma Preelaborate;
  
+    --  14-bit element type definition
+ 
     Bits : constant := 14;
  
     type Bits_14 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack15.adb gcc-15.1.0/gcc/ada/libgnat/s-pack15.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack15.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack15.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_15 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 15 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_15 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_15;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_15;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_15;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_15;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_15;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_15;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_15;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_15;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_15;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_15 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_15 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_15 --
*************** package body System.Pack_15 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_15
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_15;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_15
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_15;
  
*************** package body System.Pack_15 is
*** 124,154 ****
        E       : Bits_15;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_15;
--- 427,472 ----
        E       : Bits_15;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_15;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack15.ads gcc-15.1.0/gcc/ada/libgnat/s-pack15.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack15.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack15.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_15 is
     pragma Preelaborate;
  
+    --  15-bit element type definition
+ 
     Bits : constant := 15;
  
     type Bits_15 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack17.adb gcc-15.1.0/gcc/ada/libgnat/s-pack17.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack17.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack17.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_17 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 17 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_17 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_17;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_17;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_17;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_17;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_17;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_17;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_17;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_17;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_17;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_17 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_17 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_17 --
*************** package body System.Pack_17 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_17
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_17;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_17
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_17;
  
*************** package body System.Pack_17 is
*** 124,154 ****
        E       : Bits_17;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_17;
--- 427,472 ----
        E       : Bits_17;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_17;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack17.ads gcc-15.1.0/gcc/ada/libgnat/s-pack17.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack17.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack17.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_17 is
     pragma Preelaborate;
  
+    --  17-bit element type definition
+ 
     Bits : constant := 17;
  
     type Bits_17 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack18.adb gcc-15.1.0/gcc/ada/libgnat/s-pack18.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack18.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack18.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_18 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 18 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_18 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_18;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_18;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_18;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_18;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_18;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_18;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_18;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_18;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_18;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_18 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_18 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_18 or SetU_18 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_18 --
*************** package body System.Pack_18 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_18
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_18;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_18
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_18;
  
*************** package body System.Pack_18 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_18
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_18;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_18
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_18;
  
*************** package body System.Pack_18 is
*** 177,207 ****
        E       : Bits_18;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_18;
--- 608,653 ----
        E       : Bits_18;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_18;
*************** package body System.Pack_18 is
*** 216,246 ****
        E       : Bits_18;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_18;
--- 662,707 ----
        E       : Bits_18;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_18;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack18.ads gcc-15.1.0/gcc/ada/libgnat/s-pack18.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack18.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack18.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_18 is
     pragma Preelaborate;
  
+    --  18-bit element type definition
+ 
     Bits : constant := 18;
  
     type Bits_18 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack19.adb gcc-15.1.0/gcc/ada/libgnat/s-pack19.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack19.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack19.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_19 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 19 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_19 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_19;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_19;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_19;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_19;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_19;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_19;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_19;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_19;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_19;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_19 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_19 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_19 --
*************** package body System.Pack_19 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_19
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_19;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_19
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_19;
  
*************** package body System.Pack_19 is
*** 124,154 ****
        E       : Bits_19;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_19;
--- 427,472 ----
        E       : Bits_19;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_19;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack19.ads gcc-15.1.0/gcc/ada/libgnat/s-pack19.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack19.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack19.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_19 is
     pragma Preelaborate;
  
+    --  19-bit element type definition
+ 
     Bits : constant := 19;
  
     type Bits_19 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack20.adb gcc-15.1.0/gcc/ada/libgnat/s-pack20.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack20.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack20.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_20 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 20 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_20 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_20;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_20;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_20;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_20;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_20;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_20;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_20;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_20;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_20;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_20 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_20 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_20 or SetU_20 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_20 --
*************** package body System.Pack_20 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_20
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_20;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_20
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_20;
  
*************** package body System.Pack_20 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_20
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_20;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_20
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_20;
  
*************** package body System.Pack_20 is
*** 177,207 ****
        E       : Bits_20;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_20;
--- 608,653 ----
        E       : Bits_20;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_20;
*************** package body System.Pack_20 is
*** 216,246 ****
        E       : Bits_20;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_20;
--- 662,707 ----
        E       : Bits_20;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_20;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack20.ads gcc-15.1.0/gcc/ada/libgnat/s-pack20.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack20.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack20.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_20 is
     pragma Preelaborate;
  
+    --  20-bit element type definition
+ 
     Bits : constant := 20;
  
     type Bits_20 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack21.adb gcc-15.1.0/gcc/ada/libgnat/s-pack21.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack21.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack21.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_21 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 21 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_21 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_21;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_21;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_21;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_21;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_21;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_21;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_21;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_21;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_21;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_21 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_21 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_21 --
*************** package body System.Pack_21 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_21
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_21;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_21
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_21;
  
*************** package body System.Pack_21 is
*** 124,154 ****
        E       : Bits_21;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_21;
--- 427,472 ----
        E       : Bits_21;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_21;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack21.ads gcc-15.1.0/gcc/ada/libgnat/s-pack21.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack21.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack21.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_21 is
     pragma Preelaborate;
  
+    --  21-bit element type definition
+ 
     Bits : constant := 21;
  
     type Bits_21 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack22.adb gcc-15.1.0/gcc/ada/libgnat/s-pack22.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack22.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack22.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_22 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 22 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_22 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_22;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_22;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_22;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_22;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_22;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_22;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_22;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_22;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_22;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_22 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_22 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_22 or SetU_22 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_22 --
*************** package body System.Pack_22 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_22
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_22;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_22
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_22;
  
*************** package body System.Pack_22 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_22
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_22;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_22
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_22;
  
*************** package body System.Pack_22 is
*** 177,207 ****
        E       : Bits_22;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_22;
--- 608,653 ----
        E       : Bits_22;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_22;
*************** package body System.Pack_22 is
*** 216,246 ****
        E       : Bits_22;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_22;
--- 662,707 ----
        E       : Bits_22;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_22;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack22.ads gcc-15.1.0/gcc/ada/libgnat/s-pack22.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack22.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack22.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_22 is
     pragma Preelaborate;
  
+    --  22-bit element type definition
+ 
     Bits : constant := 22;
  
     type Bits_22 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack23.adb gcc-15.1.0/gcc/ada/libgnat/s-pack23.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack23.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack23.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_23 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 23 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_23 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_23;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_23;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_23;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_23;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_23;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_23;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_23;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_23;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_23;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_23 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_23 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_23 --
*************** package body System.Pack_23 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_23
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_23;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_23
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_23;
  
*************** package body System.Pack_23 is
*** 124,154 ****
        E       : Bits_23;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_23;
--- 427,472 ----
        E       : Bits_23;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_23;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack23.ads gcc-15.1.0/gcc/ada/libgnat/s-pack23.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack23.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack23.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_23 is
     pragma Preelaborate;
  
+    --  23-bit element type definition
+ 
     Bits : constant := 23;
  
     type Bits_23 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack24.adb gcc-15.1.0/gcc/ada/libgnat/s-pack24.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack24.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack24.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_24 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 24 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_24 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_24;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_24;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_24;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_24;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_24;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_24;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_24;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_24;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_24;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_24 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_24 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_24 or SetU_24 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_24 --
*************** package body System.Pack_24 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_24
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_24;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_24
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_24;
  
*************** package body System.Pack_24 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_24
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_24;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_24
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_24;
  
*************** package body System.Pack_24 is
*** 177,207 ****
        E       : Bits_24;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_24;
--- 608,653 ----
        E       : Bits_24;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_24;
*************** package body System.Pack_24 is
*** 216,246 ****
        E       : Bits_24;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_24;
--- 662,707 ----
        E       : Bits_24;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_24;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack24.ads gcc-15.1.0/gcc/ada/libgnat/s-pack24.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack24.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack24.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_24 is
     pragma Preelaborate;
  
+    --  24-bit element type definition
+ 
     Bits : constant := 24;
  
     type Bits_24 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack25.adb gcc-15.1.0/gcc/ada/libgnat/s-pack25.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack25.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack25.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_25 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 25 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_25 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_25;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_25;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_25;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_25;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_25;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_25;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_25;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_25;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_25;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_25 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_25 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_25 --
*************** package body System.Pack_25 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_25
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_25;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_25
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_25;
  
*************** package body System.Pack_25 is
*** 124,154 ****
        E       : Bits_25;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_25;
--- 427,472 ----
        E       : Bits_25;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_25;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack25.ads gcc-15.1.0/gcc/ada/libgnat/s-pack25.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack25.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack25.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_25 is
     pragma Preelaborate;
  
+    --  25-bit element type definition
+ 
     Bits : constant := 25;
  
     type Bits_25 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack26.adb gcc-15.1.0/gcc/ada/libgnat/s-pack26.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack26.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack26.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_26 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 26 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_26 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_26;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_26;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_26;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_26;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_26;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_26;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_26;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_26;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_26;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_26 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_26 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_26 or SetU_26 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_26 --
*************** package body System.Pack_26 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_26
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_26;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_26
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_26;
  
*************** package body System.Pack_26 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_26
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_26;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_26
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_26;
  
*************** package body System.Pack_26 is
*** 177,207 ****
        E       : Bits_26;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_26;
--- 608,653 ----
        E       : Bits_26;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_26;
*************** package body System.Pack_26 is
*** 216,246 ****
        E       : Bits_26;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_26;
--- 662,707 ----
        E       : Bits_26;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_26;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack26.ads gcc-15.1.0/gcc/ada/libgnat/s-pack26.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack26.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack26.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_26 is
     pragma Preelaborate;
  
+    --  26-bit element type definition
+ 
     Bits : constant := 26;
  
     type Bits_26 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack27.adb gcc-15.1.0/gcc/ada/libgnat/s-pack27.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack27.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack27.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_27 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 27 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_27 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_27;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_27;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_27;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_27;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_27;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_27;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_27;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_27;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_27;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_27 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_27 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_27 --
*************** package body System.Pack_27 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_27
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_27;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_27
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_27;
  
*************** package body System.Pack_27 is
*** 124,154 ****
        E       : Bits_27;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_27;
--- 427,472 ----
        E       : Bits_27;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_27;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack27.ads gcc-15.1.0/gcc/ada/libgnat/s-pack27.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack27.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack27.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_27 is
     pragma Preelaborate;
  
+    --  27-bit element type definition
+ 
     Bits : constant := 27;
  
     type Bits_27 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack28.adb gcc-15.1.0/gcc/ada/libgnat/s-pack28.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack28.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack28.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_28 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 28 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_28 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_28;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_28;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_28;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_28;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_28;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_28;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_28;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_28;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_28;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_28 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_28 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_28 or SetU_28 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_28 --
*************** package body System.Pack_28 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_28
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_28;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_28
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_28;
  
*************** package body System.Pack_28 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_28
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_28;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_28
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_28;
  
*************** package body System.Pack_28 is
*** 177,207 ****
        E       : Bits_28;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_28;
--- 608,653 ----
        E       : Bits_28;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_28;
*************** package body System.Pack_28 is
*** 216,246 ****
        E       : Bits_28;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_28;
--- 662,707 ----
        E       : Bits_28;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_28;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack28.ads gcc-15.1.0/gcc/ada/libgnat/s-pack28.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack28.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack28.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_28 is
     pragma Preelaborate;
  
+    --  28-bit element type definition
+ 
     Bits : constant := 28;
  
     type Bits_28 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack29.adb gcc-15.1.0/gcc/ada/libgnat/s-pack29.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack29.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack29.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_29 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 29 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_29 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_29;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_29;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_29;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_29;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_29;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_29;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_29;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_29;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_29;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_29 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_29 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_29 --
*************** package body System.Pack_29 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_29
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_29;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_29
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_29;
  
*************** package body System.Pack_29 is
*** 124,154 ****
        E       : Bits_29;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_29;
--- 427,472 ----
        E       : Bits_29;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_29;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack29.ads gcc-15.1.0/gcc/ada/libgnat/s-pack29.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack29.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack29.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_29 is
     pragma Preelaborate;
  
+    --  29-bit element type definition
+ 
     Bits : constant := 29;
  
     type Bits_29 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack30.adb gcc-15.1.0/gcc/ada/libgnat/s-pack30.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack30.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack30.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_30 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 30 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_30 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_30;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_30;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_30;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_30;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_30;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_30;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_30;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_30;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_30;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_30 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_30 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_30 or SetU_30 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_30 --
*************** package body System.Pack_30 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_30
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_30;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_30
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_30;
  
*************** package body System.Pack_30 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_30
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_30;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_30
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_30;
  
*************** package body System.Pack_30 is
*** 177,207 ****
        E       : Bits_30;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_30;
--- 608,653 ----
        E       : Bits_30;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_30;
*************** package body System.Pack_30 is
*** 216,246 ****
        E       : Bits_30;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_30;
--- 662,707 ----
        E       : Bits_30;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_30;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack30.ads gcc-15.1.0/gcc/ada/libgnat/s-pack30.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack30.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack30.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_30 is
     pragma Preelaborate;
  
+    --  30-bit element type definition
+ 
     Bits : constant := 30;
  
     type Bits_30 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack31.adb gcc-15.1.0/gcc/ada/libgnat/s-pack31.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack31.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack31.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_31 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 31 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_31 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_31;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_31;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_31;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_31;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_31;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_31;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_31;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_31;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_31;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_31 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_31 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_31 --
*************** package body System.Pack_31 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_31
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_31;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_31
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_31;
  
*************** package body System.Pack_31 is
*** 124,154 ****
        E       : Bits_31;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_31;
--- 427,472 ----
        E       : Bits_31;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_31;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack31.ads gcc-15.1.0/gcc/ada/libgnat/s-pack31.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack31.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack31.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_31 is
     pragma Preelaborate;
  
+    --  31-bit element type definition
+ 
     Bits : constant := 31;
  
     type Bits_31 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack33.adb gcc-15.1.0/gcc/ada/libgnat/s-pack33.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack33.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack33.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_33 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 33 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_33 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_33;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_33;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_33;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_33;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_33;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_33;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_33;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_33;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_33;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_33 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_33 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_33 --
*************** package body System.Pack_33 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_33
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_33;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_33
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_33;
  
*************** package body System.Pack_33 is
*** 124,154 ****
        E       : Bits_33;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_33;
--- 427,472 ----
        E       : Bits_33;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_33;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack33.ads gcc-15.1.0/gcc/ada/libgnat/s-pack33.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack33.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack33.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_33 is
     pragma Preelaborate;
  
+    --  33-bit element type definition
+ 
     Bits : constant := 33;
  
     type Bits_33 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack34.adb gcc-15.1.0/gcc/ada/libgnat/s-pack34.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack34.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack34.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_34 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 34 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_34 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_34;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_34;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_34;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_34;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_34;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_34;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_34;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_34;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_34;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_34 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_34 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_34 or SetU_34 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_34 --
*************** package body System.Pack_34 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_34
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_34;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_34
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_34;
  
*************** package body System.Pack_34 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_34
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_34;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_34
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_34;
  
*************** package body System.Pack_34 is
*** 177,207 ****
        E       : Bits_34;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_34;
--- 608,653 ----
        E       : Bits_34;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_34;
*************** package body System.Pack_34 is
*** 216,246 ****
        E       : Bits_34;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_34;
--- 662,707 ----
        E       : Bits_34;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_34;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack34.ads gcc-15.1.0/gcc/ada/libgnat/s-pack34.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack34.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack34.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_34 is
     pragma Preelaborate;
  
+    --  34-bit element type definition
+ 
     Bits : constant := 34;
  
     type Bits_34 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack35.adb gcc-15.1.0/gcc/ada/libgnat/s-pack35.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack35.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack35.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_35 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 35 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_35 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_35;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_35;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_35;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_35;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_35;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_35;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_35;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_35;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_35;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_35 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_35 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_35 --
*************** package body System.Pack_35 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_35
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_35;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_35
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_35;
  
*************** package body System.Pack_35 is
*** 124,154 ****
        E       : Bits_35;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_35;
--- 427,472 ----
        E       : Bits_35;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_35;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack35.ads gcc-15.1.0/gcc/ada/libgnat/s-pack35.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack35.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack35.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_35 is
     pragma Preelaborate;
  
+    --  35-bit element type definition
+ 
     Bits : constant := 35;
  
     type Bits_35 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack36.adb gcc-15.1.0/gcc/ada/libgnat/s-pack36.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack36.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack36.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_36 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 36 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_36 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_36;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_36;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_36;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_36;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_36;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_36;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_36;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_36;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_36;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_36 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_36 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_36 or SetU_36 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_36 --
*************** package body System.Pack_36 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_36
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_36;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_36
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_36;
  
*************** package body System.Pack_36 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_36
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_36;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_36
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_36;
  
*************** package body System.Pack_36 is
*** 177,207 ****
        E       : Bits_36;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_36;
--- 608,653 ----
        E       : Bits_36;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_36;
*************** package body System.Pack_36 is
*** 216,246 ****
        E       : Bits_36;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_36;
--- 662,707 ----
        E       : Bits_36;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_36;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack36.ads gcc-15.1.0/gcc/ada/libgnat/s-pack36.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack36.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack36.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_36 is
     pragma Preelaborate;
  
+    --  36-bit element type definition
+ 
     Bits : constant := 36;
  
     type Bits_36 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack37.adb gcc-15.1.0/gcc/ada/libgnat/s-pack37.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack37.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack37.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_37 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 37 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_37 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_37;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_37;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_37;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_37;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_37;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_37;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_37;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_37;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_37;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_37 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_37 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_37 --
*************** package body System.Pack_37 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_37
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_37;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_37
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_37;
  
*************** package body System.Pack_37 is
*** 124,154 ****
        E       : Bits_37;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_37;
--- 427,472 ----
        E       : Bits_37;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_37;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack37.ads gcc-15.1.0/gcc/ada/libgnat/s-pack37.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack37.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack37.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_37 is
     pragma Preelaborate;
  
+    --  37-bit element type definition
+ 
     Bits : constant := 37;
  
     type Bits_37 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack38.adb gcc-15.1.0/gcc/ada/libgnat/s-pack38.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack38.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack38.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_38 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 38 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_38 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_38;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_38;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_38;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_38;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_38;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_38;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_38;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_38;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_38;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_38 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_38 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_38 or SetU_38 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_38 --
*************** package body System.Pack_38 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_38
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_38;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_38
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_38;
  
*************** package body System.Pack_38 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_38
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_38;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_38
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_38;
  
*************** package body System.Pack_38 is
*** 177,207 ****
        E       : Bits_38;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_38;
--- 608,653 ----
        E       : Bits_38;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_38;
*************** package body System.Pack_38 is
*** 216,246 ****
        E       : Bits_38;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_38;
--- 662,707 ----
        E       : Bits_38;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_38;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack38.ads gcc-15.1.0/gcc/ada/libgnat/s-pack38.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack38.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack38.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_38 is
     pragma Preelaborate;
  
+    --  38-bit element type definition
+ 
     Bits : constant := 38;
  
     type Bits_38 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack39.adb gcc-15.1.0/gcc/ada/libgnat/s-pack39.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack39.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack39.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_39 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 39 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_39 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_39;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_39;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_39;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_39;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_39;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_39;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_39;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_39;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_39;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_39 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_39 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_39 --
*************** package body System.Pack_39 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_39
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_39;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_39
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_39;
  
*************** package body System.Pack_39 is
*** 124,154 ****
        E       : Bits_39;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_39;
--- 427,472 ----
        E       : Bits_39;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_39;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack39.ads gcc-15.1.0/gcc/ada/libgnat/s-pack39.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack39.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack39.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_39 is
     pragma Preelaborate;
  
+    --  39-bit element type definition
+ 
     Bits : constant := 39;
  
     type Bits_39 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack40.adb gcc-15.1.0/gcc/ada/libgnat/s-pack40.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack40.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack40.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_40 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 40 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_40 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_40;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_40;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_40;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_40;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_40;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_40;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_40;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_40;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_40;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_40 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_40 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_40 or SetU_40 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_40 --
*************** package body System.Pack_40 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_40
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_40;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_40
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_40;
  
*************** package body System.Pack_40 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_40
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_40;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_40
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_40;
  
*************** package body System.Pack_40 is
*** 177,207 ****
        E       : Bits_40;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_40;
--- 608,653 ----
        E       : Bits_40;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_40;
*************** package body System.Pack_40 is
*** 216,246 ****
        E       : Bits_40;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_40;
--- 662,707 ----
        E       : Bits_40;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_40;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack40.ads gcc-15.1.0/gcc/ada/libgnat/s-pack40.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack40.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack40.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_40 is
     pragma Preelaborate;
  
+    --  40-bit element type definition
+ 
     Bits : constant := 40;
  
     type Bits_40 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack41.adb gcc-15.1.0/gcc/ada/libgnat/s-pack41.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack41.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack41.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_41 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 41 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_41 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_41;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_41;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_41;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_41;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_41;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_41;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_41;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_41;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_41;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_41 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_41 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_41 --
*************** package body System.Pack_41 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_41
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_41;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_41
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_41;
  
*************** package body System.Pack_41 is
*** 124,154 ****
        E       : Bits_41;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_41;
--- 427,472 ----
        E       : Bits_41;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_41;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack41.ads gcc-15.1.0/gcc/ada/libgnat/s-pack41.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack41.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack41.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_41 is
     pragma Preelaborate;
  
+    --  41-bit element type definition
+ 
     Bits : constant := 41;
  
     type Bits_41 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack42.adb gcc-15.1.0/gcc/ada/libgnat/s-pack42.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack42.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack42.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_42 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 42 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_42 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_42;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_42;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_42;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_42;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_42;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_42;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_42;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_42;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_42;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_42 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_42 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_42 or SetU_42 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_42 --
*************** package body System.Pack_42 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_42
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_42;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_42
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_42;
  
*************** package body System.Pack_42 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_42
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_42;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_42
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_42;
  
*************** package body System.Pack_42 is
*** 177,207 ****
        E       : Bits_42;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_42;
--- 608,653 ----
        E       : Bits_42;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_42;
*************** package body System.Pack_42 is
*** 216,246 ****
        E       : Bits_42;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_42;
--- 662,707 ----
        E       : Bits_42;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_42;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack42.ads gcc-15.1.0/gcc/ada/libgnat/s-pack42.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack42.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack42.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_42 is
     pragma Preelaborate;
  
+    --  42-bit element type definition
+ 
     Bits : constant := 42;
  
     type Bits_42 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack43.adb gcc-15.1.0/gcc/ada/libgnat/s-pack43.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack43.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack43.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_43 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 43 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_43 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_43;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_43;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_43;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_43;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_43;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_43;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_43;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_43;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_43;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_43 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_43 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_43 --
*************** package body System.Pack_43 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_43
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_43;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_43
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_43;
  
*************** package body System.Pack_43 is
*** 124,154 ****
        E       : Bits_43;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_43;
--- 427,472 ----
        E       : Bits_43;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_43;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack43.ads gcc-15.1.0/gcc/ada/libgnat/s-pack43.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack43.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack43.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_43 is
     pragma Preelaborate;
  
+    --  43-bit element type definition
+ 
     Bits : constant := 43;
  
     type Bits_43 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack44.adb gcc-15.1.0/gcc/ada/libgnat/s-pack44.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack44.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack44.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_44 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 44 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_44 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_44;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_44;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_44;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_44;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_44;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_44;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_44;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_44;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_44;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_44 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_44 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_44 or SetU_44 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_44 --
*************** package body System.Pack_44 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_44
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_44;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_44
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_44;
  
*************** package body System.Pack_44 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_44
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_44;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_44
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_44;
  
*************** package body System.Pack_44 is
*** 177,207 ****
        E       : Bits_44;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_44;
--- 608,653 ----
        E       : Bits_44;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_44;
*************** package body System.Pack_44 is
*** 216,246 ****
        E       : Bits_44;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_44;
--- 662,707 ----
        E       : Bits_44;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_44;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack44.ads gcc-15.1.0/gcc/ada/libgnat/s-pack44.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack44.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack44.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_44 is
     pragma Preelaborate;
  
+    --  44-bit element type definition
+ 
     Bits : constant := 44;
  
     type Bits_44 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack45.adb gcc-15.1.0/gcc/ada/libgnat/s-pack45.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack45.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack45.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_45 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 45 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_45 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_45;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_45;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_45;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_45;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_45;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_45;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_45;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_45;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_45;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_45 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_45 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_45 --
*************** package body System.Pack_45 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_45
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_45;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_45
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_45;
  
*************** package body System.Pack_45 is
*** 124,154 ****
        E       : Bits_45;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_45;
--- 427,472 ----
        E       : Bits_45;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_45;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack45.ads gcc-15.1.0/gcc/ada/libgnat/s-pack45.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack45.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack45.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_45 is
     pragma Preelaborate;
  
+    --  45-bit element type definition
+ 
     Bits : constant := 45;
  
     type Bits_45 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack46.adb gcc-15.1.0/gcc/ada/libgnat/s-pack46.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack46.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack46.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_46 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 46 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_46 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_46;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_46;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_46;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_46;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_46;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_46;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_46;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_46;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_46;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_46 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_46 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_46 or SetU_46 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_46 --
*************** package body System.Pack_46 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_46
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_46;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_46
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_46;
  
*************** package body System.Pack_46 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_46
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_46;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_46
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_46;
  
*************** package body System.Pack_46 is
*** 177,207 ****
        E       : Bits_46;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_46;
--- 608,653 ----
        E       : Bits_46;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_46;
*************** package body System.Pack_46 is
*** 216,246 ****
        E       : Bits_46;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_46;
--- 662,707 ----
        E       : Bits_46;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_46;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack46.ads gcc-15.1.0/gcc/ada/libgnat/s-pack46.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack46.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack46.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_46 is
     pragma Preelaborate;
  
+    --  46-bit element type definition
+ 
     Bits : constant := 46;
  
     type Bits_46 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack47.adb gcc-15.1.0/gcc/ada/libgnat/s-pack47.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack47.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack47.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_47 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 47 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_47 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_47;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_47;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_47;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_47;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_47;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_47;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_47;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_47;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_47;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_47 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_47 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_47 --
*************** package body System.Pack_47 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_47
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_47;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_47
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_47;
  
*************** package body System.Pack_47 is
*** 124,154 ****
        E       : Bits_47;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_47;
--- 427,472 ----
        E       : Bits_47;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_47;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack47.ads gcc-15.1.0/gcc/ada/libgnat/s-pack47.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack47.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack47.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_47 is
     pragma Preelaborate;
  
+    --  47-bit element type definition
+ 
     Bits : constant := 47;
  
     type Bits_47 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack48.adb gcc-15.1.0/gcc/ada/libgnat/s-pack48.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack48.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack48.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_48 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 48 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_48 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_48;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_48;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_48;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_48;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_48;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_48;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_48;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_48;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_48;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_48 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_48 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_48 or SetU_48 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_48 --
*************** package body System.Pack_48 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_48
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_48;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_48
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_48;
  
*************** package body System.Pack_48 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_48
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_48;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_48
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_48;
  
*************** package body System.Pack_48 is
*** 177,207 ****
        E       : Bits_48;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_48;
--- 608,653 ----
        E       : Bits_48;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_48;
*************** package body System.Pack_48 is
*** 216,246 ****
        E       : Bits_48;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_48;
--- 662,707 ----
        E       : Bits_48;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_48;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack48.ads gcc-15.1.0/gcc/ada/libgnat/s-pack48.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack48.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack48.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_48 is
     pragma Preelaborate;
  
+    --  48-bit element type definition
+ 
     Bits : constant := 48;
  
     type Bits_48 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack49.adb gcc-15.1.0/gcc/ada/libgnat/s-pack49.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack49.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack49.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_49 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 49 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_49 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_49;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_49;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_49;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_49;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_49;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_49;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_49;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_49;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_49;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_49 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_49 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_49 --
*************** package body System.Pack_49 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_49
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_49;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_49
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_49;
  
*************** package body System.Pack_49 is
*** 124,154 ****
        E       : Bits_49;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_49;
--- 427,472 ----
        E       : Bits_49;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_49;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack49.ads gcc-15.1.0/gcc/ada/libgnat/s-pack49.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack49.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack49.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_49 is
     pragma Preelaborate;
  
+    --  49-bit element type definition
+ 
     Bits : constant := 49;
  
     type Bits_49 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack50.adb gcc-15.1.0/gcc/ada/libgnat/s-pack50.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack50.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack50.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_50 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 50 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_50 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_50;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_50;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_50;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_50;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_50;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_50;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_50;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_50;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_50;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_50 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_50 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_50 or SetU_50 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_50 --
*************** package body System.Pack_50 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_50
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_50;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_50
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_50;
  
*************** package body System.Pack_50 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_50
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_50;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_50
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_50;
  
*************** package body System.Pack_50 is
*** 177,207 ****
        E       : Bits_50;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_50;
--- 608,653 ----
        E       : Bits_50;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_50;
*************** package body System.Pack_50 is
*** 216,246 ****
        E       : Bits_50;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_50;
--- 662,707 ----
        E       : Bits_50;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_50;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack50.ads gcc-15.1.0/gcc/ada/libgnat/s-pack50.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack50.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack50.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_50 is
     pragma Preelaborate;
  
+    --  50-bit element type definition
+ 
     Bits : constant := 50;
  
     type Bits_50 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack51.adb gcc-15.1.0/gcc/ada/libgnat/s-pack51.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack51.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack51.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_51 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 51 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_51 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_51;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_51;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_51;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_51;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_51;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_51;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_51;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_51;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_51;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_51 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_51 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_51 --
*************** package body System.Pack_51 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_51
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_51;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_51
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_51;
  
*************** package body System.Pack_51 is
*** 124,154 ****
        E       : Bits_51;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_51;
--- 427,472 ----
        E       : Bits_51;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_51;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack51.ads gcc-15.1.0/gcc/ada/libgnat/s-pack51.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack51.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack51.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_51 is
     pragma Preelaborate;
  
+    --  51-bit element type definition
+ 
     Bits : constant := 51;
  
     type Bits_51 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack52.adb gcc-15.1.0/gcc/ada/libgnat/s-pack52.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack52.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack52.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_52 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 52 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_52 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_52;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_52;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_52;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_52;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_52;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_52;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_52;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_52;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_52;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_52 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_52 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_52 or SetU_52 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_52 --
*************** package body System.Pack_52 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_52
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_52;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_52
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_52;
  
*************** package body System.Pack_52 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_52
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_52;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_52
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_52;
  
*************** package body System.Pack_52 is
*** 177,207 ****
        E       : Bits_52;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_52;
--- 608,653 ----
        E       : Bits_52;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_52;
*************** package body System.Pack_52 is
*** 216,246 ****
        E       : Bits_52;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_52;
--- 662,707 ----
        E       : Bits_52;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_52;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack52.ads gcc-15.1.0/gcc/ada/libgnat/s-pack52.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack52.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack52.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_52 is
     pragma Preelaborate;
  
+    --  52-bit element type definition
+ 
     Bits : constant := 52;
  
     type Bits_52 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack53.adb gcc-15.1.0/gcc/ada/libgnat/s-pack53.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack53.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack53.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_53 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 53 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_53 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_53;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_53;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_53;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_53;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_53;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_53;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_53;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_53;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_53;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_53 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_53 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_53 --
*************** package body System.Pack_53 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_53
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_53;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_53
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_53;
  
*************** package body System.Pack_53 is
*** 124,154 ****
        E       : Bits_53;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_53;
--- 427,472 ----
        E       : Bits_53;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_53;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack53.ads gcc-15.1.0/gcc/ada/libgnat/s-pack53.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack53.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack53.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_53 is
     pragma Preelaborate;
  
+    --  53-bit element type definition
+ 
     Bits : constant := 53;
  
     type Bits_53 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack54.adb gcc-15.1.0/gcc/ada/libgnat/s-pack54.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack54.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack54.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_54 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 54 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_54 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_54;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_54;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_54;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_54;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_54;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_54;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_54;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_54;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_54;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_54 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_54 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_54 or SetU_54 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_54 --
*************** package body System.Pack_54 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_54
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_54;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_54
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_54;
  
*************** package body System.Pack_54 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_54
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_54;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_54
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_54;
  
*************** package body System.Pack_54 is
*** 177,207 ****
        E       : Bits_54;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_54;
--- 608,653 ----
        E       : Bits_54;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_54;
*************** package body System.Pack_54 is
*** 216,246 ****
        E       : Bits_54;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_54;
--- 662,707 ----
        E       : Bits_54;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_54;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack54.ads gcc-15.1.0/gcc/ada/libgnat/s-pack54.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack54.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack54.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_54 is
     pragma Preelaborate;
  
+    --  54-bit element type definition
+ 
     Bits : constant := 54;
  
     type Bits_54 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack55.adb gcc-15.1.0/gcc/ada/libgnat/s-pack55.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack55.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack55.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_55 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 55 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_55 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_55;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_55;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_55;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_55;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_55;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_55;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_55;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_55;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_55;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_55 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_55 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_55 --
*************** package body System.Pack_55 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_55
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_55;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_55
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_55;
  
*************** package body System.Pack_55 is
*** 124,154 ****
        E       : Bits_55;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_55;
--- 427,472 ----
        E       : Bits_55;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_55;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack55.ads gcc-15.1.0/gcc/ada/libgnat/s-pack55.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack55.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack55.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_55 is
     pragma Preelaborate;
  
+    --  55-bit element type definition
+ 
     Bits : constant := 55;
  
     type Bits_55 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack56.adb gcc-15.1.0/gcc/ada/libgnat/s-pack56.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack56.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack56.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_56 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 56 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_56 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_56;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_56;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_56;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_56;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_56;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_56;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_56;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_56;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_56;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_56 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_56 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_56 or SetU_56 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_56 --
*************** package body System.Pack_56 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_56
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_56;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_56
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_56;
  
*************** package body System.Pack_56 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_56
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_56;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_56
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_56;
  
*************** package body System.Pack_56 is
*** 177,207 ****
        E       : Bits_56;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_56;
--- 608,653 ----
        E       : Bits_56;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_56;
*************** package body System.Pack_56 is
*** 216,246 ****
        E       : Bits_56;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_56;
--- 662,707 ----
        E       : Bits_56;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_56;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack56.ads gcc-15.1.0/gcc/ada/libgnat/s-pack56.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack56.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack56.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_56 is
     pragma Preelaborate;
  
+    --  56-bit element type definition
+ 
     Bits : constant := 56;
  
     type Bits_56 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack57.adb gcc-15.1.0/gcc/ada/libgnat/s-pack57.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack57.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack57.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_57 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 57 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_57 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_57;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_57;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_57;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_57;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_57;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_57;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_57;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_57;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_57;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_57 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_57 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_57 --
*************** package body System.Pack_57 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_57
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_57;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_57
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_57;
  
*************** package body System.Pack_57 is
*** 124,154 ****
        E       : Bits_57;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_57;
--- 427,472 ----
        E       : Bits_57;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_57;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack57.ads gcc-15.1.0/gcc/ada/libgnat/s-pack57.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack57.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack57.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_57 is
     pragma Preelaborate;
  
+    --  57-bit element type definition
+ 
     Bits : constant := 57;
  
     type Bits_57 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack58.adb gcc-15.1.0/gcc/ada/libgnat/s-pack58.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack58.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack58.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_58 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 58 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_58 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_58;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_58;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_58;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_58;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_58;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_58;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_58;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_58;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_58;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_58 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_58 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_58 or SetU_58 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_58 --
*************** package body System.Pack_58 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_58
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_58;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_58
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_58;
  
*************** package body System.Pack_58 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_58
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_58;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_58
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_58;
  
*************** package body System.Pack_58 is
*** 177,207 ****
        E       : Bits_58;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_58;
--- 608,653 ----
        E       : Bits_58;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_58;
*************** package body System.Pack_58 is
*** 216,246 ****
        E       : Bits_58;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_58;
--- 662,707 ----
        E       : Bits_58;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_58;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack58.ads gcc-15.1.0/gcc/ada/libgnat/s-pack58.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack58.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack58.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_58 is
     pragma Preelaborate;
  
+    --  58-bit element type definition
+ 
     Bits : constant := 58;
  
     type Bits_58 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack59.adb gcc-15.1.0/gcc/ada/libgnat/s-pack59.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack59.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack59.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_59 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 59 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_59 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_59;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_59;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_59;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_59;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_59;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_59;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_59;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_59;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_59;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_59 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_59 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_59 --
*************** package body System.Pack_59 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_59
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_59;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_59
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_59;
  
*************** package body System.Pack_59 is
*** 124,154 ****
        E       : Bits_59;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_59;
--- 427,472 ----
        E       : Bits_59;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_59;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack59.ads gcc-15.1.0/gcc/ada/libgnat/s-pack59.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack59.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack59.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_59 is
     pragma Preelaborate;
  
+    --  59-bit element type definition
+ 
     Bits : constant := 59;
  
     type Bits_59 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack60.adb gcc-15.1.0/gcc/ada/libgnat/s-pack60.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack60.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack60.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_60 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 60 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_60 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_60;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_60;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_60;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_60;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_60;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_60;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_60;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_60;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_60;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_60 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_60 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_60 or SetU_60 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_60 --
*************** package body System.Pack_60 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_60
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_60;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_60
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_60;
  
*************** package body System.Pack_60 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_60
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_60;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_60
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_60;
  
*************** package body System.Pack_60 is
*** 177,207 ****
        E       : Bits_60;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_60;
--- 608,653 ----
        E       : Bits_60;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_60;
*************** package body System.Pack_60 is
*** 216,246 ****
        E       : Bits_60;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_60;
--- 662,707 ----
        E       : Bits_60;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_60;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack60.ads gcc-15.1.0/gcc/ada/libgnat/s-pack60.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack60.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack60.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_60 is
     pragma Preelaborate;
  
+    --  60-bit element type definition
+ 
     Bits : constant := 60;
  
     type Bits_60 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack61.adb gcc-15.1.0/gcc/ada/libgnat/s-pack61.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack61.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack61.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_61 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 61 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_61 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_61;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_61;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_61;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_61;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_61;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_61;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_61;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_61;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_61;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_61 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_61 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_61 --
*************** package body System.Pack_61 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_61
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_61;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_61
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_61;
  
*************** package body System.Pack_61 is
*** 124,154 ****
        E       : Bits_61;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_61;
--- 427,472 ----
        E       : Bits_61;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_61;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack61.ads gcc-15.1.0/gcc/ada/libgnat/s-pack61.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack61.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack61.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_61 is
     pragma Preelaborate;
  
+    --  61-bit element type definition
+ 
     Bits : constant := 61;
  
     type Bits_61 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack62.adb gcc-15.1.0/gcc/ada/libgnat/s-pack62.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack62.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack62.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_62 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 62 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_62 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_62;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_62;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_62;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_62;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_62;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_62;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_62;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_62;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_62;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_62 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_62 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_62 or SetU_62 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_62 --
*************** package body System.Pack_62 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_62
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_62;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_62
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_62;
  
*************** package body System.Pack_62 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_62
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_62;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_62
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_62;
  
*************** package body System.Pack_62 is
*** 177,207 ****
        E       : Bits_62;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_62;
--- 608,653 ----
        E       : Bits_62;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_62;
*************** package body System.Pack_62 is
*** 216,246 ****
        E       : Bits_62;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_62;
--- 662,707 ----
        E       : Bits_62;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_62;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack62.ads gcc-15.1.0/gcc/ada/libgnat/s-pack62.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack62.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack62.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_62 is
     pragma Preelaborate;
  
+    --  62-bit element type definition
+ 
     Bits : constant := 62;
  
     type Bits_62 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack63.adb gcc-15.1.0/gcc/ada/libgnat/s-pack63.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack63.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack63.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_63 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 63 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_63 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_63;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_63;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_63;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_63;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_63;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_63;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_63;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_63;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_63;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_63 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_63 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_63 --
*************** package body System.Pack_63 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_63
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_63;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_63
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_63;
  
*************** package body System.Pack_63 is
*** 124,154 ****
        E       : Bits_63;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_63;
--- 427,472 ----
        E       : Bits_63;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_63;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack63.ads gcc-15.1.0/gcc/ada/libgnat/s-pack63.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack63.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack63.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_63 is
     pragma Preelaborate;
  
+    --  63-bit element type definition
+ 
     Bits : constant := 63;
  
     type Bits_63 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack65.adb gcc-15.1.0/gcc/ada/libgnat/s-pack65.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack65.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack65.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_65 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 65 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_65 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_65;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_65;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_65;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_65;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_65;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_65;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_65;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_65;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_65;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_65 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_65 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_65 --
*************** package body System.Pack_65 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_65
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_65;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_65
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_65;
  
*************** package body System.Pack_65 is
*** 124,154 ****
        E       : Bits_65;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_65;
--- 427,472 ----
        E       : Bits_65;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_65;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack65.ads gcc-15.1.0/gcc/ada/libgnat/s-pack65.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack65.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack65.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_65 is
     pragma Preelaborate;
  
+    --  65-bit element type definition
+ 
     Bits : constant := 65;
  
     type Bits_65 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack66.adb gcc-15.1.0/gcc/ada/libgnat/s-pack66.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack66.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack66.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_66 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 66 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_66 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_66;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_66;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_66;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_66;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_66;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_66;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_66;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_66;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_66;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_66 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_66 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_66 or SetU_66 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_66 --
*************** package body System.Pack_66 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_66
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_66;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_66
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_66;
  
*************** package body System.Pack_66 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_66
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_66;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_66
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_66;
  
*************** package body System.Pack_66 is
*** 177,207 ****
        E       : Bits_66;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_66;
--- 608,653 ----
        E       : Bits_66;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_66;
*************** package body System.Pack_66 is
*** 216,246 ****
        E       : Bits_66;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_66;
--- 662,707 ----
        E       : Bits_66;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_66;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack66.ads gcc-15.1.0/gcc/ada/libgnat/s-pack66.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack66.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack66.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_66 is
     pragma Preelaborate;
  
+    --  66-bit element type definition
+ 
     Bits : constant := 66;
  
     type Bits_66 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack67.adb gcc-15.1.0/gcc/ada/libgnat/s-pack67.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack67.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack67.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_67 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 67 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_67 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_67;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_67;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_67;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_67;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_67;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_67;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_67;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_67;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_67;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_67 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_67 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_67 --
*************** package body System.Pack_67 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_67
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_67;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_67
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_67;
  
*************** package body System.Pack_67 is
*** 124,154 ****
        E       : Bits_67;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_67;
--- 427,472 ----
        E       : Bits_67;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_67;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack67.ads gcc-15.1.0/gcc/ada/libgnat/s-pack67.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack67.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack67.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_67 is
     pragma Preelaborate;
  
+    --  67-bit element type definition
+ 
     Bits : constant := 67;
  
     type Bits_67 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack68.adb gcc-15.1.0/gcc/ada/libgnat/s-pack68.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack68.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack68.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_68 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 68 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_68 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_68;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_68;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_68;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_68;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_68;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_68;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_68;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_68;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_68;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_68 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_68 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_68 or SetU_68 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_68 --
*************** package body System.Pack_68 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_68
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_68;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_68
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_68;
  
*************** package body System.Pack_68 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_68
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_68;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_68
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_68;
  
*************** package body System.Pack_68 is
*** 177,207 ****
        E       : Bits_68;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_68;
--- 608,653 ----
        E       : Bits_68;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_68;
*************** package body System.Pack_68 is
*** 216,246 ****
        E       : Bits_68;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_68;
--- 662,707 ----
        E       : Bits_68;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_68;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack68.ads gcc-15.1.0/gcc/ada/libgnat/s-pack68.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack68.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack68.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_68 is
     pragma Preelaborate;
  
+    --  68-bit element type definition
+ 
     Bits : constant := 68;
  
     type Bits_68 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack69.adb gcc-15.1.0/gcc/ada/libgnat/s-pack69.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack69.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack69.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_69 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 69 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_69 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_69;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_69;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_69;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_69;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_69;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_69;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_69;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_69;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_69;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_69 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_69 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_69 --
*************** package body System.Pack_69 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_69
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_69;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_69
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_69;
  
*************** package body System.Pack_69 is
*** 124,154 ****
        E       : Bits_69;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_69;
--- 427,472 ----
        E       : Bits_69;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_69;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack69.ads gcc-15.1.0/gcc/ada/libgnat/s-pack69.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack69.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack69.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_69 is
     pragma Preelaborate;
  
+    --  69-bit element type definition
+ 
     Bits : constant := 69;
  
     type Bits_69 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack70.adb gcc-15.1.0/gcc/ada/libgnat/s-pack70.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack70.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack70.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_70 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 70 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_70 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_70;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_70;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_70;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_70;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_70;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_70;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_70;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_70;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_70;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_70 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_70 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_70 or SetU_70 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_70 --
*************** package body System.Pack_70 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_70
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_70;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_70
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_70;
  
*************** package body System.Pack_70 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_70
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_70;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_70
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_70;
  
*************** package body System.Pack_70 is
*** 177,207 ****
        E       : Bits_70;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_70;
--- 608,653 ----
        E       : Bits_70;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_70;
*************** package body System.Pack_70 is
*** 216,246 ****
        E       : Bits_70;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_70;
--- 662,707 ----
        E       : Bits_70;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_70;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack70.ads gcc-15.1.0/gcc/ada/libgnat/s-pack70.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack70.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack70.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_70 is
     pragma Preelaborate;
  
+    --  70-bit element type definition
+ 
     Bits : constant := 70;
  
     type Bits_70 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack71.adb gcc-15.1.0/gcc/ada/libgnat/s-pack71.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack71.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack71.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_71 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 71 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_71 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_71;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_71;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_71;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_71;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_71;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_71;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_71;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_71;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_71;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_71 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_71 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_71 --
*************** package body System.Pack_71 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_71
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_71;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_71
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_71;
  
*************** package body System.Pack_71 is
*** 124,154 ****
        E       : Bits_71;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_71;
--- 427,472 ----
        E       : Bits_71;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_71;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack71.ads gcc-15.1.0/gcc/ada/libgnat/s-pack71.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack71.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack71.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_71 is
     pragma Preelaborate;
  
+    --  71-bit element type definition
+ 
     Bits : constant := 71;
  
     type Bits_71 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack72.adb gcc-15.1.0/gcc/ada/libgnat/s-pack72.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack72.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack72.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_72 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 72 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_72 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_72;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_72;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_72;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_72;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_72;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_72;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_72;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_72;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_72;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_72 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_72 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_72 or SetU_72 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_72 --
*************** package body System.Pack_72 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_72
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_72;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_72
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_72;
  
*************** package body System.Pack_72 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_72
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_72;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_72
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_72;
  
*************** package body System.Pack_72 is
*** 177,207 ****
        E       : Bits_72;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_72;
--- 608,653 ----
        E       : Bits_72;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_72;
*************** package body System.Pack_72 is
*** 216,246 ****
        E       : Bits_72;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_72;
--- 662,707 ----
        E       : Bits_72;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_72;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack72.ads gcc-15.1.0/gcc/ada/libgnat/s-pack72.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack72.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack72.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_72 is
     pragma Preelaborate;
  
+    --  72-bit element type definition
+ 
     Bits : constant := 72;
  
     type Bits_72 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack73.adb gcc-15.1.0/gcc/ada/libgnat/s-pack73.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack73.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack73.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_73 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 73 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_73 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_73;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_73;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_73;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_73;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_73;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_73;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_73;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_73;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_73;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_73 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_73 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_73 --
*************** package body System.Pack_73 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_73
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_73;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_73
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_73;
  
*************** package body System.Pack_73 is
*** 124,154 ****
        E       : Bits_73;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_73;
--- 427,472 ----
        E       : Bits_73;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_73;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack73.ads gcc-15.1.0/gcc/ada/libgnat/s-pack73.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack73.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack73.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_73 is
     pragma Preelaborate;
  
+    --  73-bit element type definition
+ 
     Bits : constant := 73;
  
     type Bits_73 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack74.adb gcc-15.1.0/gcc/ada/libgnat/s-pack74.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack74.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack74.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_74 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 74 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_74 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_74;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_74;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_74;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_74;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_74;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_74;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_74;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_74;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_74;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_74 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_74 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_74 or SetU_74 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_74 --
*************** package body System.Pack_74 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_74
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_74;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_74
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_74;
  
*************** package body System.Pack_74 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_74
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_74;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_74
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_74;
  
*************** package body System.Pack_74 is
*** 177,207 ****
        E       : Bits_74;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_74;
--- 608,653 ----
        E       : Bits_74;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_74;
*************** package body System.Pack_74 is
*** 216,246 ****
        E       : Bits_74;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_74;
--- 662,707 ----
        E       : Bits_74;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_74;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack74.ads gcc-15.1.0/gcc/ada/libgnat/s-pack74.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack74.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack74.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_74 is
     pragma Preelaborate;
  
+    --  74-bit element type definition
+ 
     Bits : constant := 74;
  
     type Bits_74 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack75.adb gcc-15.1.0/gcc/ada/libgnat/s-pack75.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack75.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack75.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_75 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 75 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_75 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_75;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_75;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_75;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_75;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_75;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_75;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_75;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_75;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_75;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_75 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_75 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_75 --
*************** package body System.Pack_75 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_75
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_75;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_75
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_75;
  
*************** package body System.Pack_75 is
*** 124,154 ****
        E       : Bits_75;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_75;
--- 427,472 ----
        E       : Bits_75;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_75;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack75.ads gcc-15.1.0/gcc/ada/libgnat/s-pack75.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack75.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack75.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_75 is
     pragma Preelaborate;
  
+    --  75-bit element type definition
+ 
     Bits : constant := 75;
  
     type Bits_75 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack76.adb gcc-15.1.0/gcc/ada/libgnat/s-pack76.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack76.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack76.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_76 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 76 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_76 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_76;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_76;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_76;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_76;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_76;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_76;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_76;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_76;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_76;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_76 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_76 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_76 or SetU_76 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_76 --
*************** package body System.Pack_76 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_76
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_76;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_76
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_76;
  
*************** package body System.Pack_76 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_76
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_76;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_76
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_76;
  
*************** package body System.Pack_76 is
*** 177,207 ****
        E       : Bits_76;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_76;
--- 608,653 ----
        E       : Bits_76;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_76;
*************** package body System.Pack_76 is
*** 216,246 ****
        E       : Bits_76;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_76;
--- 662,707 ----
        E       : Bits_76;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_76;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack76.ads gcc-15.1.0/gcc/ada/libgnat/s-pack76.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack76.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack76.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_76 is
     pragma Preelaborate;
  
+    --  76-bit element type definition
+ 
     Bits : constant := 76;
  
     type Bits_76 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack77.adb gcc-15.1.0/gcc/ada/libgnat/s-pack77.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack77.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack77.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_77 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 77 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_77 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_77;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_77;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_77;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_77;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_77;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_77;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_77;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_77;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_77;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_77 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_77 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_77 --
*************** package body System.Pack_77 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_77
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_77;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_77
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_77;
  
*************** package body System.Pack_77 is
*** 124,154 ****
        E       : Bits_77;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_77;
--- 427,472 ----
        E       : Bits_77;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_77;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack77.ads gcc-15.1.0/gcc/ada/libgnat/s-pack77.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack77.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack77.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_77 is
     pragma Preelaborate;
  
+    --  77-bit element type definition
+ 
     Bits : constant := 77;
  
     type Bits_77 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack78.adb gcc-15.1.0/gcc/ada/libgnat/s-pack78.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack78.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack78.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_78 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 78 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_78 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_78;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_78;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_78;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_78;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_78;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_78;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_78;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_78;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_78;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_78 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_78 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_78 or SetU_78 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_78 --
*************** package body System.Pack_78 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_78
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_78;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_78
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_78;
  
*************** package body System.Pack_78 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_78
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_78;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_78
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_78;
  
*************** package body System.Pack_78 is
*** 177,207 ****
        E       : Bits_78;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_78;
--- 608,653 ----
        E       : Bits_78;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_78;
*************** package body System.Pack_78 is
*** 216,246 ****
        E       : Bits_78;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_78;
--- 662,707 ----
        E       : Bits_78;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_78;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack78.ads gcc-15.1.0/gcc/ada/libgnat/s-pack78.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack78.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack78.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_78 is
     pragma Preelaborate;
  
+    --  78-bit element type definition
+ 
     Bits : constant := 78;
  
     type Bits_78 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack79.adb gcc-15.1.0/gcc/ada/libgnat/s-pack79.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack79.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack79.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_79 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 79 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_79 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_79;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_79;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_79;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_79;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_79;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_79;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_79;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_79;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_79;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_79 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_79 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_79 --
*************** package body System.Pack_79 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_79
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_79;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_79
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_79;
  
*************** package body System.Pack_79 is
*** 124,154 ****
        E       : Bits_79;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_79;
--- 427,472 ----
        E       : Bits_79;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_79;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack79.ads gcc-15.1.0/gcc/ada/libgnat/s-pack79.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack79.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack79.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_79 is
     pragma Preelaborate;
  
+    --  79-bit element type definition
+ 
     Bits : constant := 79;
  
     type Bits_79 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack80.adb gcc-15.1.0/gcc/ada/libgnat/s-pack80.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack80.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack80.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_80 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 80 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_80 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_80;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_80;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_80;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_80;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_80;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_80;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_80;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_80;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_80;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_80 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_80 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_80 or SetU_80 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_80 --
*************** package body System.Pack_80 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_80
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_80;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_80
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_80;
  
*************** package body System.Pack_80 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_80
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_80;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_80
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_80;
  
*************** package body System.Pack_80 is
*** 177,207 ****
        E       : Bits_80;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_80;
--- 608,653 ----
        E       : Bits_80;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_80;
*************** package body System.Pack_80 is
*** 216,246 ****
        E       : Bits_80;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_80;
--- 662,707 ----
        E       : Bits_80;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_80;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack80.ads gcc-15.1.0/gcc/ada/libgnat/s-pack80.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack80.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack80.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_80 is
     pragma Preelaborate;
  
+    --  80-bit element type definition
+ 
     Bits : constant := 80;
  
     type Bits_80 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack81.adb gcc-15.1.0/gcc/ada/libgnat/s-pack81.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack81.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack81.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_81 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 81 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_81 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_81;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_81;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_81;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_81;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_81;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_81;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_81;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_81;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_81;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_81 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_81 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_81 --
*************** package body System.Pack_81 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_81
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_81;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_81
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_81;
  
*************** package body System.Pack_81 is
*** 124,154 ****
        E       : Bits_81;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_81;
--- 427,472 ----
        E       : Bits_81;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_81;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack81.ads gcc-15.1.0/gcc/ada/libgnat/s-pack81.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack81.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack81.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_81 is
     pragma Preelaborate;
  
+    --  81-bit element type definition
+ 
     Bits : constant := 81;
  
     type Bits_81 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack82.adb gcc-15.1.0/gcc/ada/libgnat/s-pack82.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack82.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack82.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_82 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 82 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_82 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_82;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_82;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_82;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_82;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_82;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_82;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_82;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_82;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_82;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_82 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_82 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_82 or SetU_82 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_82 --
*************** package body System.Pack_82 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_82
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_82;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_82
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_82;
  
*************** package body System.Pack_82 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_82
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_82;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_82
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_82;
  
*************** package body System.Pack_82 is
*** 177,207 ****
        E       : Bits_82;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_82;
--- 608,653 ----
        E       : Bits_82;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_82;
*************** package body System.Pack_82 is
*** 216,246 ****
        E       : Bits_82;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_82;
--- 662,707 ----
        E       : Bits_82;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_82;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack82.ads gcc-15.1.0/gcc/ada/libgnat/s-pack82.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack82.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack82.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_82 is
     pragma Preelaborate;
  
+    --  82-bit element type definition
+ 
     Bits : constant := 82;
  
     type Bits_82 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack83.adb gcc-15.1.0/gcc/ada/libgnat/s-pack83.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack83.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack83.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_83 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 83 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_83 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_83;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_83;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_83;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_83;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_83;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_83;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_83;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_83;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_83;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_83 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_83 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_83 --
*************** package body System.Pack_83 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_83
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_83;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_83
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_83;
  
*************** package body System.Pack_83 is
*** 124,154 ****
        E       : Bits_83;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_83;
--- 427,472 ----
        E       : Bits_83;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_83;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack83.ads gcc-15.1.0/gcc/ada/libgnat/s-pack83.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack83.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack83.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_83 is
     pragma Preelaborate;
  
+    --  83-bit element type definition
+ 
     Bits : constant := 83;
  
     type Bits_83 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack84.adb gcc-15.1.0/gcc/ada/libgnat/s-pack84.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack84.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack84.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_84 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 84 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_84 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_84;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_84;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_84;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_84;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_84;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_84;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_84;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_84;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_84;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_84 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_84 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_84 or SetU_84 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_84 --
*************** package body System.Pack_84 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_84
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_84;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_84
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_84;
  
*************** package body System.Pack_84 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_84
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_84;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_84
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_84;
  
*************** package body System.Pack_84 is
*** 177,207 ****
        E       : Bits_84;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_84;
--- 608,653 ----
        E       : Bits_84;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_84;
*************** package body System.Pack_84 is
*** 216,246 ****
        E       : Bits_84;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_84;
--- 662,707 ----
        E       : Bits_84;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_84;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack84.ads gcc-15.1.0/gcc/ada/libgnat/s-pack84.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack84.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack84.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_84 is
     pragma Preelaborate;
  
+    --  84-bit element type definition
+ 
     Bits : constant := 84;
  
     type Bits_84 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack85.adb gcc-15.1.0/gcc/ada/libgnat/s-pack85.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack85.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack85.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_85 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 85 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_85 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_85;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_85;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_85;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_85;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_85;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_85;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_85;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_85;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_85;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_85 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_85 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_85 --
*************** package body System.Pack_85 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_85
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_85;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_85
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_85;
  
*************** package body System.Pack_85 is
*** 124,154 ****
        E       : Bits_85;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_85;
--- 427,472 ----
        E       : Bits_85;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_85;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack85.ads gcc-15.1.0/gcc/ada/libgnat/s-pack85.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack85.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack85.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_85 is
     pragma Preelaborate;
  
+    --  85-bit element type definition
+ 
     Bits : constant := 85;
  
     type Bits_85 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack86.adb gcc-15.1.0/gcc/ada/libgnat/s-pack86.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack86.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack86.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_86 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 86 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_86 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_86;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_86;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_86;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_86;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_86;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_86;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_86;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_86;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_86;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_86 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_86 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_86 or SetU_86 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_86 --
*************** package body System.Pack_86 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_86
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_86;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_86
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_86;
  
*************** package body System.Pack_86 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_86
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_86;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_86
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_86;
  
*************** package body System.Pack_86 is
*** 177,207 ****
        E       : Bits_86;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_86;
--- 608,653 ----
        E       : Bits_86;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_86;
*************** package body System.Pack_86 is
*** 216,246 ****
        E       : Bits_86;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_86;
--- 662,707 ----
        E       : Bits_86;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_86;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack86.ads gcc-15.1.0/gcc/ada/libgnat/s-pack86.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack86.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack86.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_86 is
     pragma Preelaborate;
  
+    --  86-bit element type definition
+ 
     Bits : constant := 86;
  
     type Bits_86 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack87.adb gcc-15.1.0/gcc/ada/libgnat/s-pack87.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack87.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack87.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_87 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 87 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_87 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_87;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_87;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_87;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_87;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_87;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_87;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_87;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_87;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_87;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_87 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_87 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_87 --
*************** package body System.Pack_87 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_87
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_87;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_87
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_87;
  
*************** package body System.Pack_87 is
*** 124,154 ****
        E       : Bits_87;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_87;
--- 427,472 ----
        E       : Bits_87;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_87;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack87.ads gcc-15.1.0/gcc/ada/libgnat/s-pack87.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack87.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack87.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_87 is
     pragma Preelaborate;
  
+    --  87-bit element type definition
+ 
     Bits : constant := 87;
  
     type Bits_87 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack88.adb gcc-15.1.0/gcc/ada/libgnat/s-pack88.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack88.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack88.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_88 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 88 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_88 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_88;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_88;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_88;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_88;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_88;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_88;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_88;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_88;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_88;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_88 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_88 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_88 or SetU_88 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_88 --
*************** package body System.Pack_88 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_88
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_88;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_88
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_88;
  
*************** package body System.Pack_88 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_88
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_88;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_88
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_88;
  
*************** package body System.Pack_88 is
*** 177,207 ****
        E       : Bits_88;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_88;
--- 608,653 ----
        E       : Bits_88;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_88;
*************** package body System.Pack_88 is
*** 216,246 ****
        E       : Bits_88;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_88;
--- 662,707 ----
        E       : Bits_88;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_88;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack88.ads gcc-15.1.0/gcc/ada/libgnat/s-pack88.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack88.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack88.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_88 is
     pragma Preelaborate;
  
+    --  88-bit element type definition
+ 
     Bits : constant := 88;
  
     type Bits_88 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack89.adb gcc-15.1.0/gcc/ada/libgnat/s-pack89.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack89.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack89.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_89 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 89 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_89 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_89;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_89;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_89;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_89;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_89;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_89;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_89;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_89;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_89;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_89 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_89 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_89 --
*************** package body System.Pack_89 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_89
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_89;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_89
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_89;
  
*************** package body System.Pack_89 is
*** 124,154 ****
        E       : Bits_89;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_89;
--- 427,472 ----
        E       : Bits_89;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_89;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack89.ads gcc-15.1.0/gcc/ada/libgnat/s-pack89.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack89.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack89.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_89 is
     pragma Preelaborate;
  
+    --  89-bit element type definition
+ 
     Bits : constant := 89;
  
     type Bits_89 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack90.adb gcc-15.1.0/gcc/ada/libgnat/s-pack90.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack90.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack90.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_90 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 90 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_90 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_90;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_90;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_90;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_90;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_90;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_90;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_90;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_90;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_90;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_90 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_90 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_90 or SetU_90 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_90 --
*************** package body System.Pack_90 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_90
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_90;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_90
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_90;
  
*************** package body System.Pack_90 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_90
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_90;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_90
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_90;
  
*************** package body System.Pack_90 is
*** 177,207 ****
        E       : Bits_90;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_90;
--- 608,653 ----
        E       : Bits_90;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_90;
*************** package body System.Pack_90 is
*** 216,246 ****
        E       : Bits_90;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_90;
--- 662,707 ----
        E       : Bits_90;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_90;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack90.ads gcc-15.1.0/gcc/ada/libgnat/s-pack90.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack90.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack90.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_90 is
     pragma Preelaborate;
  
+    --  90-bit element type definition
+ 
     Bits : constant := 90;
  
     type Bits_90 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack91.adb gcc-15.1.0/gcc/ada/libgnat/s-pack91.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack91.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack91.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_91 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 91 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_91 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_91;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_91;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_91;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_91;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_91;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_91;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_91;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_91;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_91;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_91 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_91 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_91 --
*************** package body System.Pack_91 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_91
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_91;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_91
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_91;
  
*************** package body System.Pack_91 is
*** 124,154 ****
        E       : Bits_91;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_91;
--- 427,472 ----
        E       : Bits_91;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_91;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack91.ads gcc-15.1.0/gcc/ada/libgnat/s-pack91.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack91.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack91.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_91 is
     pragma Preelaborate;
  
+    --  91-bit element type definition
+ 
     Bits : constant := 91;
  
     type Bits_91 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack92.adb gcc-15.1.0/gcc/ada/libgnat/s-pack92.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack92.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack92.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_92 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 92 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_92 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_92;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_92;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_92;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_92;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_92;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_92;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_92;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_92;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_92;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_92 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_92 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_92 or SetU_92 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_92 --
*************** package body System.Pack_92 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_92
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_92;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_92
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_92;
  
*************** package body System.Pack_92 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_92
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_92;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_92
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_92;
  
*************** package body System.Pack_92 is
*** 177,207 ****
        E       : Bits_92;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_92;
--- 608,653 ----
        E       : Bits_92;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_92;
*************** package body System.Pack_92 is
*** 216,246 ****
        E       : Bits_92;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_92;
--- 662,707 ----
        E       : Bits_92;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_92;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack92.ads gcc-15.1.0/gcc/ada/libgnat/s-pack92.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack92.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack92.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_92 is
     pragma Preelaborate;
  
+    --  92-bit element type definition
+ 
     Bits : constant := 92;
  
     type Bits_92 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack93.adb gcc-15.1.0/gcc/ada/libgnat/s-pack93.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack93.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack93.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_93 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 93 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_93 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_93;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_93;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_93;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_93;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_93;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_93;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_93;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_93;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_93;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_93 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_93 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_93 --
*************** package body System.Pack_93 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_93
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_93;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_93
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_93;
  
*************** package body System.Pack_93 is
*** 124,154 ****
        E       : Bits_93;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_93;
--- 427,472 ----
        E       : Bits_93;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_93;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack93.ads gcc-15.1.0/gcc/ada/libgnat/s-pack93.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack93.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack93.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_93 is
     pragma Preelaborate;
  
+    --  93-bit element type definition
+ 
     Bits : constant := 93;
  
     type Bits_93 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack94.adb gcc-15.1.0/gcc/ada/libgnat/s-pack94.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack94.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack94.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_94 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 94 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_94 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_94;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_94;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_94;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_94;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_94;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_94;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_94;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_94;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_94;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_94 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_94 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_94 or SetU_94 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_94 --
*************** package body System.Pack_94 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_94
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_94;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_94
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_94;
  
*************** package body System.Pack_94 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_94
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_94;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_94
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_94;
  
*************** package body System.Pack_94 is
*** 177,207 ****
        E       : Bits_94;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_94;
--- 608,653 ----
        E       : Bits_94;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_94;
*************** package body System.Pack_94 is
*** 216,246 ****
        E       : Bits_94;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_94;
--- 662,707 ----
        E       : Bits_94;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_94;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack94.ads gcc-15.1.0/gcc/ada/libgnat/s-pack94.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack94.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack94.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_94 is
     pragma Preelaborate;
  
+    --  94-bit element type definition
+ 
     Bits : constant := 94;
  
     type Bits_94 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack95.adb gcc-15.1.0/gcc/ada/libgnat/s-pack95.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack95.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack95.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_95 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 95 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_95 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_95;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_95;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_95;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_95;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_95;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_95;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_95;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_95;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_95;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_95 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_95 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_95 --
*************** package body System.Pack_95 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_95
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_95;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_95
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_95;
  
*************** package body System.Pack_95 is
*** 124,154 ****
        E       : Bits_95;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_95;
--- 427,472 ----
        E       : Bits_95;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_95;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack95.ads gcc-15.1.0/gcc/ada/libgnat/s-pack95.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack95.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack95.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_95 is
     pragma Preelaborate;
  
+    --  95-bit element type definition
+ 
     Bits : constant := 95;
  
     type Bits_95 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack96.adb gcc-15.1.0/gcc/ada/libgnat/s-pack96.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack96.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack96.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_96 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 96 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_96 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_96;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_96;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_96;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_96;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_96;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_96;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_96;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_96;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_96;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_96 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_96 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_96 or SetU_96 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_96 --
*************** package body System.Pack_96 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_96
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_96;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_96
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_96;
  
*************** package body System.Pack_96 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_96
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_96;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_96
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_96;
  
*************** package body System.Pack_96 is
*** 177,207 ****
        E       : Bits_96;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_96;
--- 608,653 ----
        E       : Bits_96;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_96;
*************** package body System.Pack_96 is
*** 216,246 ****
        E       : Bits_96;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_96;
--- 662,707 ----
        E       : Bits_96;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_96;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack96.ads gcc-15.1.0/gcc/ada/libgnat/s-pack96.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack96.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack96.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_96 is
     pragma Preelaborate;
  
+    --  96-bit element type definition
+ 
     Bits : constant := 96;
  
     type Bits_96 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack97.adb gcc-15.1.0/gcc/ada/libgnat/s-pack97.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack97.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack97.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_97 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 97 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_97 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_97;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_97;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_97;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_97;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_97;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_97;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_97;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_97;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_97;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_97 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_97 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_97 --
*************** package body System.Pack_97 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_97
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_97;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_97
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_97;
  
*************** package body System.Pack_97 is
*** 124,154 ****
        E       : Bits_97;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_97;
--- 427,472 ----
        E       : Bits_97;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_97;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack97.ads gcc-15.1.0/gcc/ada/libgnat/s-pack97.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack97.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack97.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_97 is
     pragma Preelaborate;
  
+    --  97-bit element type definition
+ 
     Bits : constant := 97;
  
     type Bits_97 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack98.adb gcc-15.1.0/gcc/ada/libgnat/s-pack98.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack98.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack98.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_98 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 98 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_98 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_98;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,451 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_98;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster0U is new Cluster0;
!    for Cluster0U'Alignment use 1;
! 
!    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
! 
!    type Rev_Cluster0U is new Cluster0U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_98;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster1U is new Cluster1;
!    for Cluster1U'Alignment use 1;
! 
!    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
! 
!    type Rev_Cluster1U is new Cluster1U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_98;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster2U is new Cluster2;
!    for Cluster2U'Alignment use 1;
! 
!    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
! 
!    type Rev_Cluster2U is new Cluster2U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_98;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster3U is new Cluster3;
!    for Cluster3U'Alignment use 1;
! 
!    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
! 
!    type Rev_Cluster3U is new Cluster3U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_98;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster4U is new Cluster4;
!    for Cluster4U'Alignment use 1;
! 
!    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
! 
!    type Rev_Cluster4U is new Cluster4U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_98;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster5U is new Cluster5;
!    for Cluster5U'Alignment use 1;
! 
!    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
! 
!    type Rev_Cluster5U is new Cluster5U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_98;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --  The following declarations are for the case where the address
!    --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
!    --  These routines are used when the packed array is itself a
!    --  component of a packed record, and therefore may not be aligned.
! 
!    type Cluster6U is new Cluster6;
!    for Cluster6U'Alignment use 1;
! 
!    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
! 
!    type Rev_Cluster6U is new Cluster6U
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_98;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_98 is
*** 60,95 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     --  The following declarations are for the case where the address
     --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type ClusterU is new Cluster;
!    for ClusterU'Alignment use 1;
  
!    type ClusterU_Ref is access ClusterU;
  
!    type Rev_ClusterU is new ClusterU
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_ClusterU_Ref is access Rev_ClusterU;
  
     ------------
     -- Get_98 --
--- 456,496 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     --  The following declarations are for the case where the address
     --  passed to GetU_98 or SetU_98 is not guaranteed to be aligned.
     --  These routines are used when the packed array is itself a
     --  component of a packed record, and therefore may not be aligned.
  
!    type Cluster7U is new Cluster7;
!    for Cluster7U'Alignment use 1;
  
!    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
  
!    type Rev_Cluster7U is new Cluster7U
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
  
     ------------
     -- Get_98 --
*************** package body System.Pack_98 is
*** 100,131 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_98
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_98;
  
--- 501,547 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_98
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_98;
  
*************** package body System.Pack_98 is
*** 138,169 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_98
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end GetU_98;
  
--- 554,600 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_98
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end GetU_98;
  
*************** package body System.Pack_98 is
*** 177,207 ****
        E       : Bits_98;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_98;
--- 608,653 ----
        E       : Bits_98;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_98;
*************** package body System.Pack_98 is
*** 216,246 ****
        E       : Bits_98;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : ClusterU_Ref     with Address => A'Address, Import;
!       RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end SetU_98;
--- 662,707 ----
        E       : Bits_98;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
!       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
!       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
!       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
!       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
!       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
!       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
!       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
!       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
!       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
!       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
!       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
!       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
!       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
!       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
!       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end SetU_98;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack98.ads gcc-15.1.0/gcc/ada/libgnat/s-pack98.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack98.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack98.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_98 is
     pragma Preelaborate;
  
+    --  98-bit element type definition
+ 
     Bits : constant := 98;
  
     type Bits_98 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack99.adb gcc-15.1.0/gcc/ada/libgnat/s-pack99.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pack99.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack99.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
--- 29,74 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Address_To_Access_Conversions;
  with System.Storage_Elements;
  with System.Unsigned_Types;
  
  package body System.Pack_99 is
  
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words 99 bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
     subtype Bit_Order is System.Bit_Order;
     Reverse_Bit_Order : constant Bit_Order :=
       Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
*************** package body System.Pack_99 is
*** 45,55 ****
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    type Cluster is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_99;
     end record;
  
!    for Cluster use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
--- 80,339 ----
     use type System.Storage_Elements.Storage_Offset;
     use type System.Unsigned_Types.Unsigned;
  
!    --------------
!    -- Cluster0 --
!    --------------
! 
!    type Cluster0 is record
!       E0 : Bits_99;
!    end record;
! 
!    for Cluster0 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster0'Size use Bits * (1 + 0);
! 
!    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC0 is new Address_To_Access_Conversions (Cluster0);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster0 is new Cluster0
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
! 
!    --------------
!    -- Cluster1 --
!    --------------
! 
!    type Cluster1 is record
!       E0, E1 : Bits_99;
!    end record;
! 
!    for Cluster1 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster1'Size use Bits * (1 + 1);
! 
!    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC1 is new Address_To_Access_Conversions (Cluster1);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster1 is new Cluster1
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
! 
!    --------------
!    -- Cluster2 --
!    --------------
! 
!    type Cluster2 is record
!       E0, E1, E2 : Bits_99;
!    end record;
! 
!    for Cluster2 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster2'Size use Bits * (1 + 2);
! 
!    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC2 is new Address_To_Access_Conversions (Cluster2);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster2 is new Cluster2
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
! 
!    --------------
!    -- Cluster3 --
!    --------------
! 
!    type Cluster3 is record
!       E0, E1, E2, E3 : Bits_99;
!    end record;
! 
!    for Cluster3 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster3'Size use Bits * (1 + 3);
! 
!    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC3 is new Address_To_Access_Conversions (Cluster3);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster3 is new Cluster3
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
! 
!    --------------
!    -- Cluster4 --
!    --------------
! 
!    type Cluster4 is record
!       E0, E1, E2, E3, E4 : Bits_99;
!    end record;
! 
!    for Cluster4 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster4'Size use Bits * (1 + 4);
! 
!    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC4 is new Address_To_Access_Conversions (Cluster4);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster4 is new Cluster4
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
! 
!    --------------
!    -- Cluster5 --
!    --------------
! 
!    type Cluster5 is record
!       E0, E1, E2, E3, E4, E5 : Bits_99;
!    end record;
! 
!    for Cluster5 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster5'Size use Bits * (1 + 5);
! 
!    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC5 is new Address_To_Access_Conversions (Cluster5);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster5 is new Cluster5
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
! 
!    --------------
!    -- Cluster6 --
!    --------------
! 
!    type Cluster6 is record
!       E0, E1, E2, E3, E4, E5, E6 : Bits_99;
!    end record;
! 
!    for Cluster6 use record
!       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
!       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
!       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
!       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
!       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
!       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
!       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
!    end record;
! 
!    for Cluster6'Size use Bits * (1 + 6);
! 
!    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
!      1 +
!      1 * Boolean'Pos (Bits mod 2 = 0) +
!      2 * Boolean'Pos (Bits mod 4 = 0));
!    --  Use maximum possible alignment, given the bit field size, since this
!    --  will result in the most efficient code possible for the field.
! 
!    package AAC6 is new Address_To_Access_Conversions (Cluster6);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
! 
!    type Rev_Cluster6 is new Cluster6
!      with Bit_Order            => Reverse_Bit_Order,
!           Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
! 
!    --------------
!    -- Cluster7 --
!    --------------
! 
!    type Cluster7 is record
        E0, E1, E2, E3, E4, E5, E6, E7 : Bits_99;
     end record;
  
!    for Cluster7 use record
        E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
        E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
        E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
*************** package body System.Pack_99 is
*** 60,80 ****
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster'Size use Bits * 8;
  
!    for Cluster'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    type Cluster_Ref is access Cluster;
  
!    type Rev_Cluster is new Cluster
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
!    type Rev_Cluster_Ref is access Rev_Cluster;
  
     ------------
     -- Get_99 --
--- 344,368 ----
        E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
     end record;
  
!    for Cluster7'Size use Bits * (1 + 7);
  
!    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
       1 +
       1 * Boolean'Pos (Bits mod 2 = 0) +
       2 * Boolean'Pos (Bits mod 4 = 0));
     --  Use maximum possible alignment, given the bit field size, since this
     --  will result in the most efficient code possible for the field.
  
!    package AAC7 is new Address_To_Access_Conversions (Cluster7);
!    --  We convert addresses to access values and dereference them instead of
!    --  directly using overlays in order to work around the implementation of
!    --  the RM 13.3(19) clause, which would pessimize the generated code.
  
!    type Rev_Cluster7 is new Cluster7
       with Bit_Order            => Reverse_Bit_Order,
            Scalar_Storage_Order => Reverse_Bit_Order;
! 
!    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
  
     ------------
     -- Get_99 --
*************** package body System.Pack_99 is
*** 85,116 ****
        N       : Natural;
        Rev_SSO : Boolean) return Bits_99
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
           );
     end Get_99;
  
--- 373,419 ----
        N       : Natural;
        Rev_SSO : Boolean) return Bits_99
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        return
           (if Rev_SSO then
              (case N07 (Uns (N) mod 8) is
!                when 0 => RC0.E0,
!                when 1 => RC1.E1,
!                when 2 => RC2.E2,
!                when 3 => RC3.E3,
!                when 4 => RC4.E4,
!                when 5 => RC5.E5,
!                when 6 => RC6.E6,
!                when 7 => RC7.E7)
  
           else
              (case N07 (Uns (N) mod 8) is
!                when 0 => C0.E0,
!                when 1 => C1.E1,
!                when 2 => C2.E2,
!                when 3 => C3.E3,
!                when 4 => C4.E4,
!                when 5 => C5.E5,
!                when 6 => C6.E6,
!                when 7 => C7.E7)
           );
     end Get_99;
  
*************** package body System.Pack_99 is
*** 124,154 ****
        E       : Bits_99;
        Rev_SSO : Boolean)
     is
!       A  : constant System.Address := Arr + Bits * Ofs (Uns (N) / 8);
!       C  : Cluster_Ref     with Address => A'Address, Import;
!       RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC.E0 := E;
!             when 1 => RC.E1 := E;
!             when 2 => RC.E2 := E;
!             when 3 => RC.E3 := E;
!             when 4 => RC.E4 := E;
!             when 5 => RC.E5 := E;
!             when 6 => RC.E6 := E;
!             when 7 => RC.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C.E0 := E;
!             when 1 => C.E1 := E;
!             when 2 => C.E2 := E;
!             when 3 => C.E3 := E;
!             when 4 => C.E4 := E;
!             when 5 => C.E5 := E;
!             when 6 => C.E6 := E;
!             when 7 => C.E7 := E;
           end case;
        end if;
     end Set_99;
--- 427,472 ----
        E       : Bits_99;
        Rev_SSO : Boolean)
     is
!       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
!       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
!       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
!       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
!       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
!       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
!       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
!       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
!       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
!       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
!       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
!       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
!       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
!       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
!       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
!       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
!       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
! 
     begin
        if Rev_SSO then
           case N07 (Uns (N) mod 8) is
!             when 0 => RC0.E0 := E;
!             when 1 => RC1.E1 := E;
!             when 2 => RC2.E2 := E;
!             when 3 => RC3.E3 := E;
!             when 4 => RC4.E4 := E;
!             when 5 => RC5.E5 := E;
!             when 6 => RC6.E6 := E;
!             when 7 => RC7.E7 := E;
           end case;
        else
           case N07 (Uns (N) mod 8) is
!             when 0 => C0.E0 := E;
!             when 1 => C1.E1 := E;
!             when 2 => C2.E2 := E;
!             when 3 => C3.E3 := E;
!             when 4 => C4.E4 := E;
!             when 5 => C5.E5 := E;
!             when 6 => C6.E6 := E;
!             when 7 => C7.E7 := E;
           end case;
        end if;
     end Set_99;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pack99.ads gcc-15.1.0/gcc/ada/libgnat/s-pack99.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pack99.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pack99.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 34,39 ****
--- 34,41 ----
  package System.Pack_99 is
     pragma Preelaborate;
  
+    --  99-bit element type definition
+ 
     Bits : constant := 99;
  
     type Bits_99 is mod 2 ** Bits;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame.adb gcc-15.1.0/gcc/ada/libgnat/s-parame.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parame.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame.ads gcc-15.1.0/gcc/ada/libgnat/s-parame.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-parame.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,39 ****
  
  --  Default version used when no target-specific version is provided
  
! --  This package defines some system dependent parameters for GNAT. These
! --  are values that are referenced by the runtime library and are therefore
! --  relevant to the target machine.
  
  --  The parameters whose value is defined in the spec are not generally
  --  expected to be changed. If they are changed, it will be necessary to
--- 31,40 ----
  
  --  Default version used when no target-specific version is provided
  
! --  This package defines a number of system-dependent parameters for GNAT.
! --  These are values that are referenced by the runtime library and are
! --  therefore relevant to the target machine. This includes the default and
! --  minimum size and the length of a task name.
  
  --  The parameters whose value is defined in the spec are not generally
  --  expected to be changed. If they are changed, it will be necessary to
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb gcc-15.1.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,82 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                    S Y S T E M . P A R A M E T E R S                     --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the version for AArch64 Linux
+ 
+ package body System.Parameters is
+ 
+    -------------------------
+    -- Adjust_Storage_Size --
+    -------------------------
+ 
+    function Adjust_Storage_Size (Size : Size_Type) return Size_Type is
+    begin
+       if Size = Unspecified_Size then
+          return Default_Stack_Size;
+       elsif Size < Minimum_Stack_Size then
+          return Minimum_Stack_Size;
+       else
+          return Size;
+       end if;
+    end Adjust_Storage_Size;
+ 
+    ------------------------
+    -- Default_Stack_Size --
+    ------------------------
+ 
+    function Default_Stack_Size return Size_Type is
+       Default_Stack_Size : constant Integer;
+       pragma Import (C, Default_Stack_Size, "__gl_default_stack_size");
+    begin
+       if Default_Stack_Size = -1 then
+          return 2 * 1024 * 1024;
+       elsif Size_Type (Default_Stack_Size) < Minimum_Stack_Size then
+          return Minimum_Stack_Size;
+       else
+          return Size_Type (Default_Stack_Size);
+       end if;
+    end Default_Stack_Size;
+ 
+    ------------------------
+    -- Minimum_Stack_Size --
+    ------------------------
+ 
+    function Minimum_Stack_Size return Size_Type is
+    begin
+       --  12K is required for stack-checking to work reliably on most platforms
+       --  when using the GCC scheme to propagate an exception in the ZCX case.
+       --  131K is the value of PTHREAD_STACK_MIN under AArch64 Linux, so is a
+       --  reasonable default.
+ 
+       return 128 * 1024;
+    end Minimum_Stack_Size;
+ 
+ end System.Parameters;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__hpux.ads gcc-15.1.0/gcc/ada/libgnat/s-parame__hpux.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__hpux.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__hpux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__posix2008.ads gcc-15.1.0/gcc/ada/libgnat/s-parame__posix2008.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__posix2008.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__posix2008.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__qnx.adb gcc-15.1.0/gcc/ada/libgnat/s-parame__qnx.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__qnx.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__qnx.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__rtems.adb gcc-15.1.0/gcc/ada/libgnat/s-parame__rtems.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__rtems.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__rtems.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__vxworks.adb gcc-15.1.0/gcc/ada/libgnat/s-parame__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parame__vxworks.ads gcc-15.1.0/gcc/ada/libgnat/s-parame__vxworks.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-parame__vxworks.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parame__vxworks.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parint.adb gcc-15.1.0/gcc/ada/libgnat/s-parint.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-parint.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parint.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                   (Dummy body for non-distributed case)                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                   (Dummy body for non-distributed case)                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-parint.ads gcc-15.1.0/gcc/ada/libgnat/s-parint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-parint.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-parint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pehage.adb gcc-15.1.0/gcc/ada/libgnat/s-pehage.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pehage.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pehage.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pehage.ads gcc-15.1.0/gcc/ada/libgnat/s-pehage.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pehage.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pehage.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pooglo.adb gcc-15.1.0/gcc/ada/libgnat/s-pooglo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pooglo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pooglo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pool_Global is
*** 75,83 ****
  
           --  Realign the returned address
  
!          Aligned_Address := To_Address
!            (To_Integer (Allocated) + Integer_Address (Alignment)
!               - (To_Integer (Allocated) mod Integer_Address (Alignment)));
  
           --  Save the block address
  
--- 75,84 ----
  
           --  Realign the returned address
  
!          Aligned_Address :=
!            Allocated + Alignment
!            - Storage_Offset (To_Integer (Allocated)
!                              mod Integer_Address (Alignment));
  
           --  Save the block address
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pooglo.ads gcc-15.1.0/gcc/ada/libgnat/s-pooglo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pooglo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pooglo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pooloc.adb gcc-15.1.0/gcc/ada/libgnat/s-pooloc.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-pooloc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pooloc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-pooloc.ads gcc-15.1.0/gcc/ada/libgnat/s-pooloc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-pooloc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-pooloc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-poosiz.adb gcc-15.1.0/gcc/ada/libgnat/s-poosiz.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-poosiz.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-poosiz.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-poosiz.ads gcc-15.1.0/gcc/ada/libgnat/s-poosiz.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-poosiz.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-poosiz.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-powflt.ads gcc-15.1.0/gcc/ada/libgnat/s-powflt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-powflt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-powflt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Powten_Flt is
*** 36,42 ****
  
     Maxpow_Exact : constant := 10;
     --  Largest power of five exactly representable with Float. It is equal to
!    --  floor (M * log 2 / log 5), when M is the size of the mantissa (24).
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
--- 36,42 ----
  
     Maxpow_Exact : constant := 10;
     --  Largest power of five exactly representable with Float. It is equal to
!    --  floor (M * log 2 / log 5), where M is the size of the mantissa (24).
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-powlfl.ads gcc-15.1.0/gcc/ada/libgnat/s-powlfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-powlfl.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-powlfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Powten_LFlt is
*** 36,42 ****
  
     Maxpow_Exact : constant := 22;
     --  Largest power of five exactly representable with Long_Float. It is equal
!    --  to floor (M * log 2 / log 5), when M is the size of the mantissa (53).
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
--- 36,42 ----
  
     Maxpow_Exact : constant := 22;
     --  Largest power of five exactly representable with Long_Float. It is equal
!    --  to floor (M * log 2 / log 5), where M is the size of the mantissa (53).
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-powllf.ads gcc-15.1.0/gcc/ada/libgnat/s-powllf.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-powllf.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-powllf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Powten_LLF is
*** 37,44 ****
     Maxpow_Exact : constant :=
       (if Long_Long_Float'Machine_Mantissa = 64 then 27 else 22);
     --  Largest power of five exactly representable with Long_Long_Float. It is
!    --  equal to floor (M * log 2 / log 5), when M is the size of the mantissa
!    --  assumed to be either 64 for IEEE Extended or 53 for IEEE Double.
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
--- 37,44 ----
     Maxpow_Exact : constant :=
       (if Long_Long_Float'Machine_Mantissa = 64 then 27 else 22);
     --  Largest power of five exactly representable with Long_Long_Float. It is
!    --  equal to floor (M * log 2 / log 5), where M is the size of the mantissa
!    --  (assumed to be either 64 for IEEE Extended or 53 for IEEE Double).
     --  It also works for any number of the form 5*(2**N) and in particular 10.
  
     Maxpow : constant := Maxpow_Exact * 2;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-purexc.ads gcc-15.1.0/gcc/ada/libgnat/s-purexc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-purexc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-purexc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-putima.adb gcc-15.1.0/gcc/ada/libgnat/s-putima.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-putima.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-putima.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-putima.ads gcc-15.1.0/gcc/ada/libgnat/s-putima.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-putima.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-putima.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-rannum.adb gcc-15.1.0/gcc/ada/libgnat/s-rannum.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-rannum.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-rannum.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 108,115 ****
     Lower_Mask : constant := 2**31 - 1;
     Upper_Mask : constant := 2**31;
  
!    Matrix_A   : constant array (State_Val range 0 .. 1) of State_Val
!      := [0, 16#9908b0df#];
     --  The twist transformation is represented by a matrix of the form
     --
     --               [  0    I(31) ]
--- 108,115 ----
     Lower_Mask : constant := 2**31 - 1;
     Upper_Mask : constant := 2**31;
  
!    Matrix_A   : constant array (State_Val range 0 .. 1) of State_Val :=
!      [0, 16#9908b0df#];
     --  The twist transformation is represented by a matrix of the form
     --
     --               [  0    I(31) ]
*************** is
*** 280,290 ****
                     2#01000# => 0, 2#01001# => 1, 2#01010# => 0, 2#01011# => 2,
                     2#01100# => 0, 2#01101# => 1, 2#01110# => 0, 2#01111# => 4];
  
!             Pow_Tab : constant array (Bit_Count range 0 .. 3) of Real
!               := [0 => 2.0**(0 - T'Machine_Mantissa),
!                   1 => 2.0**(-1 - T'Machine_Mantissa),
!                   2 => 2.0**(-2 - T'Machine_Mantissa),
!                   3 => 2.0**(-3 - T'Machine_Mantissa)];
  
              Extra_Bits : constant Natural :=
                           (Unsigned'Size - T'Machine_Mantissa + 1);
--- 280,290 ----
                     2#01000# => 0, 2#01001# => 1, 2#01010# => 0, 2#01011# => 2,
                     2#01100# => 0, 2#01101# => 1, 2#01110# => 0, 2#01111# => 4];
  
!             Pow_Tab : constant array (Bit_Count range 0 .. 3) of Real :=
!               [0 => 2.0**(0 - T'Machine_Mantissa),
!                1 => 2.0**(-1 - T'Machine_Mantissa),
!                2 => 2.0**(-2 - T'Machine_Mantissa),
!                3 => 2.0**(-3 - T'Machine_Mantissa)];
  
              Extra_Bits : constant Natural :=
                           (Unsigned'Size - T'Machine_Mantissa + 1);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-rannum.ads gcc-15.1.0/gcc/ada/libgnat/s-rannum.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-rannum.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-rannum.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-ransee.adb gcc-15.1.0/gcc/ada/libgnat/s-ransee.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-ransee.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-ransee.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-ransee.ads gcc-15.1.0/gcc/ada/libgnat/s-ransee.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-ransee.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-ransee.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-regexp.adb gcc-15.1.0/gcc/ada/libgnat/s-regexp.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-regexp.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-regexp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-regexp.ads gcc-15.1.0/gcc/ada/libgnat/s-regexp.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-regexp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-regexp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-regpat.adb gcc-15.1.0/gcc/ada/libgnat/s-regpat.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-regpat.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-regpat.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2025, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-regpat.ads gcc-15.1.0/gcc/ada/libgnat/s-regpat.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-regpat.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-regpat.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-resfil.adb gcc-15.1.0/gcc/ada/libgnat/s-resfil.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-resfil.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-resfil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-resfil.ads gcc-15.1.0/gcc/ada/libgnat/s-resfil.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-resfil.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-resfil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-restri.adb gcc-15.1.0/gcc/ada/libgnat/s-restri.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-restri.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-restri.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-restri.ads gcc-15.1.0/gcc/ada/libgnat/s-restri.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-restri.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-restri.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-retsta.ads gcc-15.1.0/gcc/ada/libgnat/s-retsta.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-retsta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-retsta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-rident.ads gcc-15.1.0/gcc/ada/libgnat/s-rident.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-rident.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-rident.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  This package defines the set of restriction identifiers. It is a generic
! --  package that is instantiated by the compiler/binder in package Rident, and
! --  is instantiated in package System.Restrictions for use at run-time.
  
  --  The reason that we make this a generic package is so that in the case of
  --  the instantiation in Rident for use at compile time and bind time, we can
--- 30,38 ----
  ------------------------------------------------------------------------------
  
  --  This package defines the set of restriction identifiers. It is a generic
! --  package that is instantiated by the compiler/binder in package ``Rident``,
! --  and is instantiated in package ``System.Restrictions`` for use at
! --  run-time.
  
  --  The reason that we make this a generic package is so that in the case of
  --  the instantiation in Rident for use at compile time and bind time, we can
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-rpc.adb gcc-15.1.0/gcc/ada/libgnat/s-rpc.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-rpc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-rpc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-rpc.ads gcc-15.1.0/gcc/ada/libgnat/s-rpc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-rpc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-rpc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-scaval.adb gcc-15.1.0/gcc/ada/libgnat/s-scaval.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-scaval.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-scaval.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-scaval.ads gcc-15.1.0/gcc/ada/libgnat/s-scaval.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-scaval.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-scaval.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-scaval__128.adb gcc-15.1.0/gcc/ada/libgnat/s-scaval__128.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-scaval__128.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-scaval__128.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-scaval__128.ads gcc-15.1.0/gcc/ada/libgnat/s-scaval__128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-scaval__128.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-scaval__128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-secsta.adb gcc-15.1.0/gcc/ada/libgnat/s-secsta.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-secsta.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-secsta.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-secsta.ads gcc-15.1.0/gcc/ada/libgnat/s-secsta.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-secsta.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-secsta.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-secsta__cheri.adb gcc-15.1.0/gcc/ada/libgnat/s-secsta__cheri.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-secsta__cheri.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/s-secsta__cheri.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,1085 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               S Y S T E M . S E C O N D A R Y _ S T A C K                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Ada.Unchecked_Conversion;
+ with Ada.Unchecked_Deallocation;
+ 
+ with Interfaces.CHERI;        use Interfaces.CHERI;
+ with System.Parameters;       use System.Parameters;
+ with System.Soft_Links;       use System.Soft_Links;
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
+ package body System.Secondary_Stack is
+ 
+    ------------------------------------
+    -- Binder Allocated Stack Support --
+    ------------------------------------
+ 
+    --  When at least one of the following restrictions
+    --
+    --    No_Implicit_Heap_Allocations
+    --    No_Implicit_Task_Allocations
+    --
+    --  is in effect, the binder creates a static secondary stack pool, where
+    --  each stack has a default size. Assignment of these stacks to tasks is
+    --  performed by SS_Init. The following variables are defined in this unit
+    --  in order to avoid depending on the binder. Their values are set by the
+    --  binder.
+ 
+    Binder_SS_Count : Natural := 0;
+    pragma Export (Ada, Binder_SS_Count, "__gnat_binder_ss_count");
+    --  The number of secondary stacks in the pool created by the binder
+ 
+    Binder_Default_SS_Size : Size_Type;
+    pragma Export (Ada, Binder_Default_SS_Size, "__gnat_default_ss_size");
+    --  The default secondary stack size as specified by the binder. The value
+    --  is defined here rather than in init.c or System.Init because the ZFP and
+    --  Ravenscar-ZFP run-times lack these locations.
+ 
+    Binder_Default_SS_Pool : Address;
+    pragma Export (Ada, Binder_Default_SS_Pool, "__gnat_default_ss_pool");
+    --  The address of the secondary stack pool created by the binder
+ 
+    Binder_Default_SS_Pool_Index : Natural := 0;
+    --  Index into the secondary stack pool created by the binder
+ 
+    -----------------------
+    -- Local subprograms --
+    -----------------------
+ 
+    procedure Allocate_Dynamic
+      (Stack    : SS_Stack_Ptr;
+       Mem_Size : Memory_Size;
+       Addr     : out Address);
+    pragma Inline (Allocate_Dynamic);
+    --  Allocate enough space on dynamic secondary stack Stack to fit a request
+    --  of size Mem_Size. Addr denotes the address of the first byte of the
+    --  allocation.
+ 
+    procedure Allocate_On_Chunk
+      (Stack      : SS_Stack_Ptr;
+       Prev_Chunk : SS_Chunk_Ptr;
+       Chunk      : SS_Chunk_Ptr;
+       Byte       : Memory_Index;
+       Mem_Size   : Memory_Size;
+       Addr       : out Address);
+    pragma Inline (Allocate_On_Chunk);
+    --  Allocate enough space on chunk Chunk to fit a request of size Mem_Size.
+    --  Stack is the owner of the allocation Chunk. Prev_Chunk is the preceding
+    --  chunk of Chunk. Byte indicates the first free byte within Chunk. Addr
+    --  denotes the address of the first byte of the allocation. This routine
+    --  updates the state of Stack.all to reflect the side effects of the
+    --  allocation.
+ 
+    procedure Allocate_Static
+      (Stack    : SS_Stack_Ptr;
+       Mem_Size : Memory_Size;
+       Addr     : out Address);
+    pragma Inline (Allocate_Static);
+    --  Allocate enough space on static secondary stack Stack to fit a request
+    --  of size Mem_Size. Addr denotes the address of the first byte of the
+    --  allocation.
+ 
+    procedure Free is new Ada.Unchecked_Deallocation (SS_Chunk, SS_Chunk_Ptr);
+    --  Free a dynamically allocated chunk
+ 
+    procedure Free is new Ada.Unchecked_Deallocation (SS_Stack, SS_Stack_Ptr);
+    --  Free a dynamically allocated secondary stack
+ 
+    function Has_Enough_Free_Memory
+      (Chunk    : SS_Chunk_Ptr;
+       Byte     : Memory_Index;
+       Mem_Size : Memory_Size) return Boolean;
+    pragma Inline (Has_Enough_Free_Memory);
+    --  Determine whether chunk Chunk has enough room to fit a memory request of
+    --  size Mem_Size, starting from the first free byte of the chunk denoted by
+    --  Byte.
+ 
+    function Number_Of_Chunks (Stack : SS_Stack_Ptr) return Chunk_Count;
+    pragma Inline (Number_Of_Chunks);
+    --  Count the number of static and dynamic chunks of secondary stack Stack
+ 
+    function Size_Up_To_And_Including (Chunk : SS_Chunk_Ptr) return Memory_Size;
+    pragma Inline (Size_Up_To_And_Including);
+    --  Calculate the size of secondary stack which houses chunk Chunk, from the
+    --  start of the secondary stack up to and including Chunk itself. The size
+    --  includes the following kinds of memory:
+    --
+    --    * Free memory in used chunks due to alignment holes
+    --    * Occupied memory by allocations
+    --
+    --  This is a constant time operation, regardless of the secondary stack's
+    --  nature.
+ 
+    function Top_Chunk_Id (Stack : SS_Stack_Ptr) return Chunk_Id_With_Invalid;
+    pragma Inline (Top_Chunk_Id);
+    --  Obtain the Chunk_Id of the chunk indicated by secondary stack Stack's
+    --  pointer.
+ 
+    function Used_Memory_Size (Stack : SS_Stack_Ptr) return Memory_Size;
+    pragma Inline (Used_Memory_Size);
+    --  Calculate the size of stack Stack's occupied memory usage. This includes
+    --  the following kinds of memory:
+    --
+    --    * Free memory in used chunks due to alignment holes
+    --    * Occupied memory by allocations
+    --
+    --  This is a constant time operation, regardless of the secondary stack's
+    --  nature.
+ 
+    function Padding_For_Bounds_Alignment
+      (Ptr  : Address;
+       Size : Memory_Size)
+       return Memory_Size;
+    pragma Inline (Padding_For_Bounds_Alignment);
+    --  Calculate the amount of padding needed to align an address up to the
+    --  next representable boundary.
+ 
+    ----------------------
+    -- Allocate_Dynamic --
+    ----------------------
+ 
+    procedure Allocate_Dynamic
+      (Stack    : SS_Stack_Ptr;
+       Mem_Size : Memory_Size;
+       Addr     : out Address)
+    is
+       function Allocate_New_Chunk return SS_Chunk_Ptr;
+       pragma Inline (Allocate_New_Chunk);
+       --  Create a new chunk which is big enough to fit a request of size
+       --  Mem_Size.
+ 
+       ------------------------
+       -- Allocate_New_Chunk --
+       ------------------------
+ 
+       function Allocate_New_Chunk return SS_Chunk_Ptr is
+          Chunk_Size : Memory_Size;
+ 
+       begin
+          --  The size of the new chunk must fit the memory request precisely.
+          --  In the case where the memory request is way too small, use the
+          --  default chunk size. This avoids creating multiple tiny chunks.
+ 
+          Chunk_Size := Mem_Size;
+ 
+          if Chunk_Size < Stack.Default_Chunk_Size then
+             Chunk_Size := Stack.Default_Chunk_Size;
+          end if;
+ 
+          return new SS_Chunk (Chunk_Size);
+ 
+       --  The creation of the new chunk may exhaust the heap. Raise a new
+       --  Storage_Error to indicate that the secondary stack is exhausted
+       --  as well.
+ 
+       exception
+          when Storage_Error =>
+             raise Storage_Error with "secondary stack exhausted";
+       end Allocate_New_Chunk;
+ 
+       --  Local variables
+ 
+       Next_Chunk : SS_Chunk_Ptr;
+ 
+    --  Start of processing for Allocate_Dynamic
+ 
+    begin
+       --  Determine whether the chunk indicated by the stack pointer is big
+       --  enough to fit the memory request and if it is, allocate on it.
+ 
+       if Has_Enough_Free_Memory
+            (Chunk    => Stack.Top.Chunk,
+             Byte     => Stack.Top.Byte,
+             Mem_Size => Mem_Size)
+       then
+          Allocate_On_Chunk
+            (Stack      => Stack,
+             Prev_Chunk => null,
+             Chunk      => Stack.Top.Chunk,
+             Byte       => Stack.Top.Byte,
+             Mem_Size   => Mem_Size,
+             Addr       => Addr);
+ 
+          return;
+       end if;
+ 
+       --  At this point it is known that the chunk indicated by the stack
+       --  pointer is not big enough to fit the memory request. Examine all
+       --  subsequent chunks, and apply the following criteria:
+       --
+       --    * If the current chunk is too small, free it
+       --
+       --    * If the current chunk is big enough, allocate on it
+       --
+       --  This ensures that no space is wasted. The process is costly, however
+       --  allocation is costly in general. Paying the price here keeps routines
+       --  SS_Mark and SS_Release cheap.
+ 
+       while Stack.Top.Chunk.Next /= null loop
+ 
+          --  The current chunk is big enough to fit the memory request,
+          --  allocate on it.
+ 
+          if Has_Enough_Free_Memory
+               (Chunk    => Stack.Top.Chunk.Next,
+                Byte     => Stack.Top.Chunk.Next.Memory'First,
+                Mem_Size => Mem_Size)
+          then
+             Allocate_On_Chunk
+               (Stack      => Stack,
+                Prev_Chunk => Stack.Top.Chunk,
+                Chunk      => Stack.Top.Chunk.Next,
+                Byte       => Stack.Top.Chunk.Next.Memory'First,
+                Mem_Size   => Mem_Size,
+                Addr       => Addr);
+ 
+             return;
+ 
+          --  Otherwise the chunk is too small, free it
+ 
+          else
+             Next_Chunk := Stack.Top.Chunk.Next.Next;
+ 
+             --  Unchain the chunk from the stack. This keeps the next candidate
+             --  chunk situated immediately after Top.Chunk.
+             --
+             --    Top.Chunk     Top.Chunk.Next   Top.Chunk.Next.Next
+             --        |               |              (Next_Chunk)
+             --        v               v                   v
+             --    +-------+     +------------+     +--------------+
+             --    |       | --> |            | --> |              |
+             --    +-------+     +------------+     +--------------+
+             --                   to be freed
+ 
+             Free (Stack.Top.Chunk.Next);
+             Stack.Top.Chunk.Next := Next_Chunk;
+          end if;
+       end loop;
+ 
+       --  At this point one of the following outcomes took place:
+       --
+       --    * Top.Chunk is the last chunk in the stack
+       --
+       --    * Top.Chunk was not the last chunk originally. It was followed by
+       --      chunks which were too small and as a result were deleted, thus
+       --      making Top.Chunk the last chunk in the stack.
+       --
+       --  Either way, nothing should be hanging off the chunk indicated by the
+       --  stack pointer.
+ 
+       pragma Assert (Stack.Top.Chunk.Next = null);
+ 
+       --  Create a new chunk big enough to fit the memory request, and allocate
+       --  on it.
+ 
+       Stack.Top.Chunk.Next := Allocate_New_Chunk;
+ 
+       Allocate_On_Chunk
+         (Stack      => Stack,
+          Prev_Chunk => Stack.Top.Chunk,
+          Chunk      => Stack.Top.Chunk.Next,
+          Byte       => Stack.Top.Chunk.Next.Memory'First,
+          Mem_Size   => Mem_Size,
+          Addr       => Addr);
+    end Allocate_Dynamic;
+ 
+    -----------------------
+    -- Allocate_On_Chunk --
+    -----------------------
+ 
+    procedure Allocate_On_Chunk
+      (Stack      : SS_Stack_Ptr;
+       Prev_Chunk : SS_Chunk_Ptr;
+       Chunk      : SS_Chunk_Ptr;
+       Byte       : Memory_Index;
+       Mem_Size   : Memory_Size;
+       Addr       : out Address)
+    is
+       New_High_Water_Mark : Memory_Size;
+       Padding             : Memory_Size;
+ 
+    begin
+       --  The allocation occurs on a reused or a brand new chunk. Such a chunk
+       --  must always be connected to some previous chunk.
+ 
+       if Prev_Chunk /= null then
+          pragma Assert (Prev_Chunk.Next = Chunk);
+ 
+          --  Update the Size_Up_To_Chunk because this value is invalidated for
+          --  reused and new chunks.
+          --
+          --                         Prev_Chunk          Chunk
+          --                             v                 v
+          --    . . . . . . .     +--------------+     +--------
+          --                . --> |##############| --> |
+          --    . . . . . . .     +--------------+     +--------
+          --                       |            |
+          --    -------------------+------------+
+          --      Size_Up_To_Chunk      Size
+          --
+          --  The Size_Up_To_Chunk is equal to the size of the whole stack up to
+          --  the previous chunk, plus the size of the previous chunk itself.
+ 
+          Chunk.Size_Up_To_Chunk := Size_Up_To_And_Including (Prev_Chunk);
+       end if;
+ 
+       --  The chunk must have enough room to fit the memory request. If this is
+       --  not the case, then a previous step picked the wrong chunk.
+ 
+       pragma Assert (Has_Enough_Free_Memory (Chunk, Byte, Mem_Size));
+ 
+       --  The first byte of the allocation is the first free byte within the
+       --  chunk.
+ 
+       Addr := Chunk.Memory (Byte)'Address;
+ 
+       --  Align the address to ensure that the CHERI bounds will be
+       --  representable.
+ 
+       Padding := Padding_For_Bounds_Alignment (Addr, Mem_Size);
+       Addr    := Addr + Storage_Offset (Padding);
+ 
+       --  The chunk becomes the chunk indicated by the stack pointer. This is
+       --  either the currently indicated chunk, an existing chunk, or a brand
+       --  new chunk.
+ 
+       Stack.Top.Chunk := Chunk;
+ 
+       --  The next free byte is immediately after the memory request
+       --
+       --          Addr     Top.Byte
+       --          |        |
+       --    +-----|--------|----+
+       --    |##############|    |
+       --    +-------------------+
+ 
+       --  ??? this calculation may overflow on 32bit targets
+ 
+       Stack.Top.Byte := Byte + Mem_Size + Padding;
+ 
+       --  At this point the next free byte cannot go beyond the memory capacity
+       --  of the chunk indicated by the stack pointer, except when the chunk is
+       --  full, in which case it indicates the byte beyond the chunk. Ensure
+       --  that the occupied memory is at most as much as the capacity of the
+       --  chunk. Top.Byte - 1 denotes the last occupied byte.
+ 
+       pragma Assert (Stack.Top.Byte - 1 <= Stack.Top.Chunk.Size);
+ 
+       --  Calculate the new high water mark now that the memory request has
+       --  been fulfilled, and update if necessary. The new high water mark is
+       --  technically the size of the used memory by the whole stack.
+ 
+       New_High_Water_Mark := Used_Memory_Size (Stack);
+ 
+       if New_High_Water_Mark > Stack.High_Water_Mark then
+          Stack.High_Water_Mark := New_High_Water_Mark;
+       end if;
+    end Allocate_On_Chunk;
+ 
+    ---------------------
+    -- Allocate_Static --
+    ---------------------
+ 
+    procedure Allocate_Static
+      (Stack    : SS_Stack_Ptr;
+       Mem_Size : Memory_Size;
+       Addr     : out Address)
+    is
+    begin
+       --  Static secondary stack allocations are performed only on the static
+       --  chunk. There should be no dynamic chunks following the static chunk.
+ 
+       pragma Assert (Stack.Top.Chunk = Stack.Static_Chunk'Access);
+       pragma Assert (Stack.Top.Chunk.Next = null);
+ 
+       --  Raise Storage_Error if the static chunk does not have enough room to
+       --  fit the memory request. This indicates that the stack is about to be
+       --  depleted.
+ 
+       if not Has_Enough_Free_Memory
+                (Chunk    => Stack.Top.Chunk,
+                 Byte     => Stack.Top.Byte,
+                 Mem_Size => Mem_Size)
+       then
+          raise Storage_Error with "secondary stack exhaused";
+       end if;
+ 
+       Allocate_On_Chunk
+         (Stack      => Stack,
+          Prev_Chunk => null,
+          Chunk      => Stack.Top.Chunk,
+          Byte       => Stack.Top.Byte,
+          Mem_Size   => Mem_Size,
+          Addr       => Addr);
+    end Allocate_Static;
+ 
+    --------------------
+    -- Get_Chunk_Info --
+    --------------------
+ 
+    function Get_Chunk_Info
+      (Stack : SS_Stack_Ptr;
+       C_Id  : Chunk_Id) return Chunk_Info
+    is
+       function Find_Chunk return SS_Chunk_Ptr;
+       pragma Inline (Find_Chunk);
+       --  Find the chunk which corresponds to Id. Return null if no such chunk
+       --  exists.
+ 
+       ----------------
+       -- Find_Chunk --
+       ----------------
+ 
+       function Find_Chunk return SS_Chunk_Ptr is
+          Chunk : SS_Chunk_Ptr;
+          Id    : Chunk_Id;
+ 
+       begin
+          Chunk := Stack.Static_Chunk'Access;
+          Id    := 1;
+          while Chunk /= null loop
+             if Id = C_Id then
+                return Chunk;
+             end if;
+ 
+             Chunk := Chunk.Next;
+             Id    := Id + 1;
+          end loop;
+ 
+          return null;
+       end Find_Chunk;
+ 
+       --  Local variables
+ 
+       Chunk : constant SS_Chunk_Ptr := Find_Chunk;
+ 
+    --  Start of processing for Get_Chunk_Info
+ 
+    begin
+       if Chunk = null then
+          return Invalid_Chunk;
+ 
+       else
+          return (Size             => Chunk.Size,
+                  Size_Up_To_Chunk => Chunk.Size_Up_To_Chunk);
+       end if;
+    end Get_Chunk_Info;
+ 
+    --------------------
+    -- Get_Stack_Info --
+    --------------------
+ 
+    function Get_Stack_Info (Stack : SS_Stack_Ptr) return Stack_Info is
+       Info : Stack_Info;
+ 
+    begin
+       Info.Default_Chunk_Size := Stack.Default_Chunk_Size;
+       Info.Freeable           := Stack.Freeable;
+       Info.High_Water_Mark    := Stack.High_Water_Mark;
+       Info.Number_Of_Chunks   := Number_Of_Chunks (Stack);
+       Info.Top.Byte           := Stack.Top.Byte;
+       Info.Top.Chunk          := Top_Chunk_Id (Stack);
+ 
+       return Info;
+    end Get_Stack_Info;
+ 
+    ----------------------------
+    -- Has_Enough_Free_Memory --
+    ----------------------------
+ 
+    function Has_Enough_Free_Memory
+      (Chunk    : SS_Chunk_Ptr;
+       Byte     : Memory_Index;
+       Mem_Size : Memory_Size) return Boolean
+    is
+       Padding : Memory_Size;
+ 
+    begin
+       --  First check if the chunk is full (Byte is > Memory'Last in that
+       --  case), then check there is enough free memory.
+ 
+       --  Byte - 1 denotes the last occupied byte. Subtracting that byte from
+       --  the memory capacity of the chunk yields the size of the free memory
+       --  within the chunk. The chunk can fit the request as long as the free
+       --  memory is as big as the request.
+ 
+       --  We also need to consider any extra padding needed to align the
+       --  address to ensure that the CHERI lower bound is representable.
+ 
+       Padding :=
+         Padding_For_Bounds_Alignment (Chunk.Memory (Byte)'Address, Mem_Size);
+ 
+       return Chunk.Memory'Last >= Byte
+         and then Chunk.Size - (Byte - 1) >= Mem_Size
+         and then Chunk.Size - (Byte - 1) - Mem_Size >= Padding;
+ 
+    end Has_Enough_Free_Memory;
+ 
+    ----------------------
+    -- Number_Of_Chunks --
+    ----------------------
+ 
+    function Number_Of_Chunks (Stack : SS_Stack_Ptr) return Chunk_Count is
+       Chunk : SS_Chunk_Ptr;
+       Count : Chunk_Count;
+ 
+    begin
+       Chunk := Stack.Static_Chunk'Access;
+       Count := 0;
+       while Chunk /= null loop
+          Chunk := Chunk.Next;
+          Count := Count + 1;
+       end loop;
+ 
+       return Count;
+    end Number_Of_Chunks;
+ 
+    ------------------------------
+    -- Size_Up_To_And_Including --
+    ------------------------------
+ 
+    function Size_Up_To_And_Including
+      (Chunk : SS_Chunk_Ptr) return Memory_Size
+    is
+    begin
+       return Chunk.Size_Up_To_Chunk + Chunk.Size;
+    end Size_Up_To_And_Including;
+ 
+    -----------------
+    -- SS_Allocate --
+    -----------------
+ 
+    procedure SS_Allocate
+      (Addr         : out Address;
+       Storage_Size : Storage_Count;
+       Alignment    : SSE.Storage_Count := Standard'Maximum_Alignment)
+    is
+ 
+       function Round_Up (Size : Storage_Count) return Memory_Size;
+       pragma Inline (Round_Up);
+       --  Round Size up to the nearest multiple of the maximum alignment
+ 
+       function Align_Addr (Addr : Address) return Address;
+       pragma Inline (Align_Addr);
+       --  Align Addr to the next multiple of Alignment
+ 
+       ----------------
+       -- Align_Addr --
+       ----------------
+ 
+       function Align_Addr (Addr : Address) return Address is
+       begin
+ 
+          --  L : Alignment
+          --  A : Standard'Maximum_Alignment
+ 
+          --           Addr
+          --      L     |     L           L
+          --      A--A--A--A--A--A--A--A--A--A--A
+          --                  |     |
+          --      \----/      |     |
+          --     Addr mod L   |   Addr + L
+          --                  |
+          --                Addr + L - (Addr mod L)
+ 
+          return Addr + (Alignment - (Addr mod Alignment));
+       end Align_Addr;
+ 
+       --------------
+       -- Round_Up --
+       --------------
+ 
+       function Round_Up (Size : Storage_Count) return Memory_Size is
+          Algn_MS : constant Memory_Size := Standard'Maximum_Alignment;
+          Size_MS : constant Memory_Size := Memory_Size (Size);
+ 
+       begin
+          --  Detect a case where the Size is very large and may yield
+          --  a rounded result which is outside the range of Chunk_Memory_Size.
+          --  Treat this case as secondary-stack depletion.
+ 
+          if Memory_Size'Last - Algn_MS < Size_MS then
+             raise Storage_Error with "secondary stack exhausted";
+          end if;
+ 
+          return ((Size_MS + Algn_MS - 1) / Algn_MS) * Algn_MS;
+       end Round_Up;
+ 
+       --  Local variables
+ 
+       Stack    : constant SS_Stack_Ptr := Get_Sec_Stack.all;
+       Mem_Size : Memory_Size;
+ 
+       Over_Aligning : constant Boolean :=
+         Alignment > Standard'Maximum_Alignment;
+ 
+       Over_Align_Padding : SSE.Storage_Count := 0;
+ 
+       Adjusted_Storage_Size  : Interfaces.CHERI.Bounds_Length;
+       --  Storage_Size plus padding for over-alignment and extra padding to
+       --  align the capability's upper bound.
+ 
+       Capability_Lower_Bound : Address;
+ 
+    --  Start of processing for SS_Allocate
+ 
+    begin
+       --  Alignment must be a power of two and can be:
+ 
+       --  - lower than or equal to Maximum_Alignment, in which case the result
+       --    will be aligned on Maximum_Alignment;
+       --  - higher than Maximum_Alignment, in which case the result will be
+       --    dynamically realigned.
+ 
+       if Over_Aligning then
+          Over_Align_Padding := Alignment;
+       end if;
+ 
+       --  It should not be possible to request an allocation of negative
+       --  size.
+ 
+       pragma Assert (Storage_Size >= 0);
+ 
+       --  Round the requested size (plus the needed padding in case of
+       --  over-alignment) to ensure that the CHERI bounds length will be
+       --  representable.
+ 
+       Adjusted_Storage_Size :=
+         Representable_Length
+           (Bounds_Length (Storage_Size + Over_Align_Padding));
+ 
+       --  Round up to the nearest multiple of the default alignment to ensure
+       --  efficient access and that the next available Byte is always aligned
+       --  on the default alignement value.
+ 
+       Mem_Size := Round_Up (Storage_Count (Adjusted_Storage_Size));
+ 
+       if Sec_Stack_Dynamic then
+          Allocate_Dynamic (Stack, Mem_Size, Addr);
+       else
+          Allocate_Static  (Stack, Mem_Size, Addr);
+       end if;
+ 
+       --  Restrict the capability bounds to the requested allocation size,
+       --  possibly with some padding for alignment of the bounds.
+ 
+       Capability_Lower_Bound :=
+         Capability_With_Address_Aligned_Up (Addr, Adjusted_Storage_Size);
+ 
+       Addr := Capability_With_Exact_Bounds
+         (Capability_Lower_Bound, Adjusted_Storage_Size);
+ 
+       if Over_Aligning then
+          Addr := Align_Addr (Addr);
+       end if;
+ 
+    end SS_Allocate;
+ 
+    -------------
+    -- SS_Free --
+    -------------
+ 
+    procedure SS_Free (Stack : in out SS_Stack_Ptr) is
+       Static_Chunk : constant SS_Chunk_Ptr := Stack.Static_Chunk'Access;
+       Next_Chunk   : SS_Chunk_Ptr;
+ 
+    begin
+       --  Free all dynamically allocated chunks. The first dynamic chunk is
+       --  found immediately after the static chunk of the stack.
+ 
+       while Static_Chunk.Next /= null loop
+          Next_Chunk := Static_Chunk.Next.Next;
+          Free (Static_Chunk.Next);
+          Static_Chunk.Next := Next_Chunk;
+       end loop;
+ 
+       --  At this point one of the following outcomes has taken place:
+       --
+       --    * The stack lacks any dynamic chunks
+       --
+       --    * The stack had dynamic chunks which were all freed
+       --
+       --  Either way, there should be nothing hanging off the static chunk
+ 
+       pragma Assert (Static_Chunk.Next = null);
+ 
+       --  Free the stack only when it was dynamically allocated
+ 
+       if Stack.Freeable then
+          Free (Stack);
+       end if;
+    end SS_Free;
+ 
+    ----------------
+    -- SS_Get_Max --
+    ----------------
+ 
+    function SS_Get_Max return Long_Long_Integer is
+       Stack : constant SS_Stack_Ptr := Get_Sec_Stack.all;
+ 
+    begin
+       return Long_Long_Integer (Stack.High_Water_Mark);
+    end SS_Get_Max;
+ 
+    -------------
+    -- SS_Info --
+    -------------
+ 
+    procedure SS_Info is
+       procedure SS_Info_Dynamic (Stack : SS_Stack_Ptr);
+       pragma Inline (SS_Info_Dynamic);
+       --  Output relevant information concerning dynamic secondary stack Stack
+ 
+       function Total_Memory_Size (Stack : SS_Stack_Ptr) return Memory_Size;
+       pragma Inline (Total_Memory_Size);
+       --  Calculate the size of stack Stack's total memory usage. This includes
+       --  the following kinds of memory:
+       --
+       --    * Free memory in used chunks due to alignment holes
+       --    * Free memory in the topmost chunk due to partial usage
+       --    * Free memory in unused chunks following the chunk indicated by the
+       --      stack pointer.
+       --    * Memory occupied by allocations
+       --
+       --  This is a linear-time operation on the number of chunks.
+ 
+       ---------------------
+       -- SS_Info_Dynamic --
+       ---------------------
+ 
+       procedure SS_Info_Dynamic (Stack : SS_Stack_Ptr) is
+       begin
+          Put_Line
+            ("  Number of Chunks        : " & Number_Of_Chunks (Stack)'Img);
+ 
+          Put_Line
+            ("  Default size of Chunks  : " & Stack.Default_Chunk_Size'Img);
+       end SS_Info_Dynamic;
+ 
+       -----------------------
+       -- Total_Memory_Size --
+       -----------------------
+ 
+       function Total_Memory_Size (Stack : SS_Stack_Ptr) return Memory_Size is
+          Chunk : SS_Chunk_Ptr;
+          Total : Memory_Size;
+ 
+       begin
+          --  The total size of the stack is equal to the size of the stack up
+          --  to the chunk indicated by the stack pointer, plus the size of the
+          --  indicated chunk, plus the size of any subsequent chunks.
+ 
+          Total := Size_Up_To_And_Including (Stack.Top.Chunk);
+ 
+          Chunk := Stack.Top.Chunk.Next;
+          while Chunk /= null loop
+             Total := Total + Chunk.Size;
+             Chunk := Chunk.Next;
+          end loop;
+ 
+          return Total;
+       end Total_Memory_Size;
+ 
+       --  Local variables
+ 
+       Stack : constant SS_Stack_Ptr := Get_Sec_Stack.all;
+ 
+    --  Start of processing for SS_Info
+ 
+    begin
+       Put_Line ("Secondary Stack information:");
+ 
+       Put_Line
+         ("  Total size              : "
+          & Total_Memory_Size (Stack)'Img
+          & " bytes");
+ 
+       Put_Line
+         ("  Current allocated space : "
+          & Used_Memory_Size (Stack)'Img
+          & " bytes");
+ 
+       if Sec_Stack_Dynamic then
+          SS_Info_Dynamic (Stack);
+       end if;
+    end SS_Info;
+ 
+    -------------
+    -- SS_Init --
+    -------------
+ 
+    procedure SS_Init
+      (Stack : in out SS_Stack_Ptr;
+       Size  : Size_Type := Unspecified_Size)
+    is
+       function Next_Available_Binder_Sec_Stack return SS_Stack_Ptr;
+       pragma Inline (Next_Available_Binder_Sec_Stack);
+       --  Return a pointer to the next available stack from the pool created by
+       --  the binder. This routine updates global Default_Sec_Stack_Pool_Index.
+ 
+       -------------------------------------
+       -- Next_Available_Binder_Sec_Stack --
+       -------------------------------------
+ 
+       function Next_Available_Binder_Sec_Stack return SS_Stack_Ptr is
+ 
+          --  The default-sized secondary stack pool generated by the binder
+          --  is passed to this unit as an Address because it is not possible
+          --  to define a pointer to an array of unconstrained components. The
+          --  pointer is instead obtained using an unchecked conversion to a
+          --  constrained array of secondary stacks with the same size as that
+          --  specified by the binder.
+ 
+          --  WARNING: The following data structure must be synchronized with
+          --  the one created in Bindgen.Gen_Output_File_Ada. The version in
+          --  bindgen is called Sec_Default_Sized_Stacks.
+ 
+          type SS_Pool is
+            array (1 .. Binder_SS_Count)
+              of aliased SS_Stack (Binder_Default_SS_Size);
+ 
+          type SS_Pool_Ptr is access SS_Pool;
+          --  A reference to the secondary stack pool
+ 
+          function To_SS_Pool_Ptr is
+            new Ada.Unchecked_Conversion (Address, SS_Pool_Ptr);
+ 
+          --  Use an unchecked conversion to obtain a pointer to one of the
+          --  secondary stacks from the pool generated by the binder. There
+          --  are several reasons for using the conversion:
+          --
+          --    * Accessibility checks prevent a value of a local pointer to be
+          --      stored outside this scope. The conversion is safe because the
+          --      pool is global to the whole application.
+          --
+          --    * Unchecked_Access may circumvent the accessibility checks, but
+          --      it is incompatible with restriction No_Unchecked_Access.
+          --
+          --    * Unrestricted_Access may circumvent the accessibility checks,
+          --      but it is incompatible with pure Ada constructs.
+          --      ??? cannot find the restriction or switch
+ 
+          pragma Warnings (Off);
+          function To_SS_Stack_Ptr is
+            new Ada.Unchecked_Conversion (Address, SS_Stack_Ptr);
+          pragma Warnings (On);
+ 
+          Pool : SS_Pool_Ptr;
+ 
+       begin
+          --  Obtain a typed view of the pool
+ 
+          Pool := To_SS_Pool_Ptr (Binder_Default_SS_Pool);
+ 
+          --  Advance the stack index to the next available stack
+ 
+          Binder_Default_SS_Pool_Index := Binder_Default_SS_Pool_Index + 1;
+ 
+          --  Return a pointer to the next available stack
+ 
+          return To_SS_Stack_Ptr (Pool (Binder_Default_SS_Pool_Index)'Address);
+       end Next_Available_Binder_Sec_Stack;
+ 
+       --  Local variables
+ 
+       Stack_Size : Memory_Size_With_Invalid;
+ 
+    --  Start of processing for SS_Init
+ 
+    begin
+       --  Allocate a new stack on the heap or use one from the pool created by
+       --  the binder.
+ 
+       if Stack = null then
+ 
+          --  The caller requested a pool-allocated stack. Determine the proper
+          --  size of the stack based on input from the binder or the runtime in
+          --  case the pool is exhausted.
+ 
+          if Size = Unspecified_Size then
+ 
+             --  Use the default secondary stack size as specified by the binder
+             --  only when it has been set. This prevents a bootstrap issue with
+             --  older compilers where the size is never set.
+ 
+             if Binder_Default_SS_Size > 0 then
+                Stack_Size := Binder_Default_SS_Size;
+ 
+             --  Otherwise use the default stack size of the particular runtime
+ 
+             else
+                Stack_Size := Runtime_Default_Sec_Stack_Size;
+             end if;
+ 
+          --  Otherwise the caller requested a heap-allocated stack. Use the
+          --  specified size directly.
+ 
+          else
+             Stack_Size := Size;
+          end if;
+ 
+          --  The caller requested a pool-allocated stack. Use one as long as
+          --  the pool created by the binder has available stacks. This stack
+          --  cannot be deallocated.
+ 
+          if Size = Unspecified_Size
+            and then Binder_SS_Count > 0
+            and then Binder_Default_SS_Pool_Index < Binder_SS_Count
+          then
+             Stack := Next_Available_Binder_Sec_Stack;
+             Stack.Freeable := False;
+ 
+          --  Otherwise the caller requested a heap-allocated stack, or the pool
+          --  created by the binder ran out of available stacks. This stack can
+          --  be deallocated.
+ 
+          else
+             --  It should not be possible to create a stack with a negative
+             --  default chunk size.
+ 
+             pragma Assert (Stack_Size in Memory_Size);
+ 
+             Stack := new SS_Stack (Stack_Size);
+             Stack.Freeable := True;
+          end if;
+ 
+       --  Otherwise the stack was already created either by the compiler or by
+       --  the user, and is about to be reused.
+ 
+       else
+          null;
+       end if;
+ 
+       --  The static chunk becomes the chunk indicated by the stack pointer.
+       --  Note that the stack may still hold dynamic chunks, which in turn may
+       --  be reused or freed.
+ 
+       Stack.Top.Chunk := Stack.Static_Chunk'Access;
+ 
+       --  The first free byte is the first free byte of the chunk indicated by
+       --  the stack pointer.
+ 
+       Stack.Top.Byte := Stack.Top.Chunk.Memory'First;
+ 
+       --  Since the chunk indicated by the stack pointer is also the first
+       --  chunk in the stack, there are no prior chunks, therefore the size
+       --  of the stack up to the chunk is zero.
+ 
+       Stack.Top.Chunk.Size_Up_To_Chunk := 0;
+ 
+       --  Reset the high water mark to account for brand new allocations
+ 
+       Stack.High_Water_Mark := 0;
+    end SS_Init;
+ 
+    -------------
+    -- SS_Mark --
+    -------------
+ 
+    function SS_Mark return Mark_Id is
+       Stack : constant SS_Stack_Ptr := Get_Sec_Stack.all;
+ 
+    begin
+       return (Stack => Stack, Top => Stack.Top);
+    end SS_Mark;
+ 
+    ----------------
+    -- SS_Release --
+    ----------------
+ 
+    procedure SS_Release (M : Mark_Id) is
+    begin
+       M.Stack.Top := M.Top;
+    end SS_Release;
+ 
+    ------------------
+    -- Top_Chunk_Id --
+    ------------------
+ 
+    function Top_Chunk_Id (Stack : SS_Stack_Ptr) return Chunk_Id_With_Invalid is
+       Chunk : SS_Chunk_Ptr;
+       Id    : Chunk_Id;
+ 
+    begin
+       Chunk := Stack.Static_Chunk'Access;
+       Id    := 1;
+       while Chunk /= null loop
+          if Chunk = Stack.Top.Chunk then
+             return Id;
+          end if;
+ 
+          Chunk := Chunk.Next;
+          Id    := Id + 1;
+       end loop;
+ 
+       return Invalid_Chunk_Id;
+    end Top_Chunk_Id;
+ 
+    ----------------------
+    -- Used_Memory_Size --
+    ----------------------
+ 
+    function Used_Memory_Size (Stack : SS_Stack_Ptr) return Memory_Size is
+    begin
+       --  The size of the occupied memory is equal to the size up to the chunk
+       --  indicated by the stack pointer, plus the size in use by the indicated
+       --  chunk itself. Top.Byte - 1 is the last occupied byte.
+       --
+       --                                     Top.Byte
+       --                                     |
+       --    . . . . . . .     +--------------|----+
+       --                . ..> |##############|    |
+       --    . . . . . . .     +-------------------+
+       --                       |             |
+       --    -------------------+-------------+
+       --      Size_Up_To_Chunk   size in use
+ 
+       --  ??? this calculation may overflow on 32bit targets
+ 
+       return Stack.Top.Chunk.Size_Up_To_Chunk + Stack.Top.Byte - 1;
+    end Used_Memory_Size;
+ 
+    ----------------------------------
+    -- Padding_For_Bounds_Alignment --
+    ----------------------------------
+ 
+    function Padding_For_Bounds_Alignment
+      (Ptr  : Address;
+       Size : Memory_Size)
+       return Memory_Size
+    is
+       IA : constant Integer_Address := To_Integer (Ptr);
+    begin
+       return Memory_Size (Align_Address_Up (IA, Bounds_Length (Size)) - IA);
+    end Padding_For_Bounds_Alignment;
+ 
+ end System.Secondary_Stack;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-sequio.adb gcc-15.1.0/gcc/ada/libgnat/s-sequio.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-sequio.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-sequio.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-sequio.ads gcc-15.1.0/gcc/ada/libgnat/s-sequio.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-sequio.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-sequio.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-shabig.ads gcc-15.1.0/gcc/ada/libgnat/s-shabig.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-shabig.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-shabig.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-shasto.adb gcc-15.1.0/gcc/ada/libgnat/s-shasto.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-shasto.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-shasto.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-shasto.ads gcc-15.1.0/gcc/ada/libgnat/s-shasto.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-shasto.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-shasto.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-soflin.adb gcc-15.1.0/gcc/ada/libgnat/s-soflin.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-soflin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-soflin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-soflin.ads gcc-15.1.0/gcc/ada/libgnat/s-soflin.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-soflin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-soflin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Soft_Links is
*** 251,256 ****
--- 251,272 ----
  
     Get_Stack_Info : Get_Stack_Access_Call := Get_Stack_Info_NT'Access;
  
+    ----------------------
+    -- Locking Soft-Links --
+    ----------------------
+ 
+    procedure Null_Set_Address (Addr : Address) is null;
+ 
+    --  Soft-Links are used for procedures that manipulate locks to avoid
+    --  dragging the tasking runtime when using access-to-controlled types.
+ 
+    Initialize_RTS_Lock : Set_Address_Call := Null_Set_Address'Access;
+    Finalize_RTS_Lock   : Set_Address_Call := Null_Set_Address'Access;
+    Acquire_RTS_Lock    : Set_Address_Call := Null_Set_Address'Access;
+    Release_RTS_Lock    : Set_Address_Call := Null_Set_Address'Access;
+    --  The initialization of these variables must be static because the value
+    --  needs to be overridden very early when the tasking runtime is dragged.
+ 
     --------------------------
     -- Master_Id Soft-Links --
     --------------------------
*************** package System.Soft_Links is
*** 323,329 ****
     --  specific data. This type is used to store the necessary data into the
     --  Task_Control_Block or into a global variable in the non tasking case.
  
!    type TSD is record
        Pri_Stack_Info : aliased Stack_Checking.Stack_Info;
        --  Information on stack (Base/Limit/Size) used by System.Stack_Checking.
        --  If this TSD does not belong to the environment task, the Size field
--- 339,345 ----
     --  specific data. This type is used to store the necessary data into the
     --  Task_Control_Block or into a global variable in the non tasking case.
  
!    type TSD is limited record
        Pri_Stack_Info : aliased Stack_Checking.Stack_Info;
        --  Information on stack (Base/Limit/Size) used by System.Stack_Checking.
        --  If this TSD does not belong to the environment task, the Size field
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-soliin.adb gcc-15.1.0/gcc/ada/libgnat/s-soliin.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-soliin.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-soliin.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2017-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2017-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-soliin.ads gcc-15.1.0/gcc/ada/libgnat/s-soliin.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-soliin.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-soliin.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2017-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2017-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-spark.ads gcc-15.1.0/gcc/ada/libgnat/s-spark.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-spark.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-spark.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This is the top level unit of the SPARK package. Its children
+ --  contain helper functions to aid proofs.
+ 
  package System.SPARK with
    SPARK_Mode,
    Pure
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-spcuop.adb gcc-15.1.0/gcc/ada/libgnat/s-spcuop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-spcuop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-spcuop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-spcuop.ads gcc-15.1.0/gcc/ada/libgnat/s-spcuop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-spcuop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-spcuop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,46 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  By and So are connectors used to manually help the proof of assertions by
! --  introducing intermediate steps. They can only be used inside pragmas
! --  Assert or Assert_And_Cut. They are handled in the following way:
! --
! --  *  If A and B are two boolean expressions, proving By (A, B) requires
! --     proving B, the premise, and then A assuming B, the side-condition. When
! --     By (A, B) is assumed on the other hand, we only assume A. B is used
! --     for the proof, but is not visible afterward.
! --
! --  *  If A and B are two boolean expressions, proving So (A, B) requires
! --     proving A, the premise, and then B assuming A, the side-condition. When
! --     So (A, B) is assumed both A and B are assumed to be true.
  
  package System.SPARK.Cut_Operations with
    SPARK_Mode,
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides connectors used to manually help the proof of
! --  assertions by introducing intermediate steps. They can only be used inside
! --  pragmas Assert or Assert_And_Cut.
  
  package System.SPARK.Cut_Operations with
    SPARK_Mode,
*************** is
*** 51,59 ****
--- 42,57 ----
     function By (Consequence, Premise : Boolean) return Boolean with
       Ghost,
       Global => null;
+    --  If A and B are two boolean expressions, proving By (A, B) requires
+    --  proving B, the premise, and then A assuming B, the side-condition. When
+    --  By (A, B) is assumed on the other hand, we only assume A. B is used
+    --  for the proof, but is not visible afterward.
  
     function So (Premise, Consequence : Boolean) return Boolean with
       Ghost,
       Global => null;
+    --  If A and B are two boolean expressions, proving So (A, B) requires
+    --  proving A, the premise, and then B assuming A, the side-condition. When
+    --  So (A, B) is assumed both A and B are assumed to be true.
  
  end System.SPARK.Cut_Operations;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-spsufi.adb gcc-15.1.0/gcc/ada/libgnat/s-spsufi.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-spsufi.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-spsufi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,37 ****
  
  with Ada.Unchecked_Deallocation;
  
! with System.Finalization_Masters; use System.Finalization_Masters;
  
  package body System.Storage_Pools.Subpools.Finalization is
  
--- 31,37 ----
  
  with Ada.Unchecked_Deallocation;
  
! with System.Finalization_Primitives; use System.Finalization_Primitives;
  
  package body System.Storage_Pools.Subpools.Finalization is
  
*************** package body System.Storage_Pools.Subpoo
*** 53,61 ****
           return;
        end if;
  
!       --  Clean up all controlled objects chained on the subpool's master
  
!       Finalize (Subpool.Master);
  
        --  Remove the subpool from its owner's list of subpools
  
--- 53,61 ----
           return;
        end if;
  
!       --  Clean up all controlled objects chained on the subpool's collection
  
!       Finalize (Subpool.Collection);
  
        --  Remove the subpool from its owner's list of subpools
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-spsufi.ads gcc-15.1.0/gcc/ada/libgnat/s-spsufi.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-spsufi.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-spsufi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Storage_Pools.Subpools.Fi
*** 38,44 ****
  
     procedure Finalize_And_Deallocate (Subpool : in out Subpool_Handle);
     --  This routine performs the following actions:
!    --    1) Finalize all objects chained on the subpool's master
     --    2) Remove the subpool from the owner's list of subpools
     --    3) Deallocate the doubly linked list node associated with the subpool
     --    4) Call Deallocate_Subpool
--- 38,44 ----
  
     procedure Finalize_And_Deallocate (Subpool : in out Subpool_Handle);
     --  This routine performs the following actions:
!    --    1) Finalize all objects chained on the subpool's collection
     --    2) Remove the subpool from the owner's list of subpools
     --    3) Deallocate the doubly linked list node associated with the subpool
     --    4) Call Deallocate_Subpool
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stache.adb gcc-15.1.0/gcc/ada/libgnat/s-stache.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stache.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stache.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 1999-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 1999-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stache.ads gcc-15.1.0/gcc/ada/libgnat/s-stache.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stache.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stache.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1999-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1999-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stalib.adb gcc-15.1.0/gcc/ada/libgnat/s-stalib.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stalib.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stalib.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stalib.ads gcc-15.1.0/gcc/ada/libgnat/s-stalib.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stalib.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stalib.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Standard_Library is
*** 105,111 ****
        Lang : aliased Character;
        --  A character indicating the language raising the exception.
        --  Set to "A" for exceptions defined by an Ada program.
!       --  Set to "C" for imported C++ exceptions.
  
        Name_Length : aliased Natural;
        --  Length of fully expanded name of exception
--- 105,112 ----
        Lang : aliased Character;
        --  A character indicating the language raising the exception.
        --  Set to "A" for exceptions defined by an Ada program.
!       --  Set to "B" for imported C++ exceptions with base type matching.
!       --  Set to "C" for imported C++ exceptions with exact type matching.
  
        Name_Length : aliased Natural;
        --  Length of fully expanded name of exception
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-statxd.adb gcc-15.1.0/gcc/ada/libgnat/s-statxd.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-statxd.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-statxd.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GARLIC is free software;  you can redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GARLIC is free software;  you can redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Stream_Attributes.XD
*** 1254,1260 ****
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs (Item);
  
        --  Signed zero
  
--- 1254,1260 ----
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs Item;
  
        --  Signed zero
  
*************** package body System.Stream_Attributes.XD
*** 1400,1406 ****
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs (Item);
  
        --  Signed zero
  
--- 1400,1406 ----
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs Item;
  
        --  Signed zero
  
*************** package body System.Stream_Attributes.XD
*** 1747,1753 ****
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs (Item);
  
        --  Signed zero
  
--- 1747,1753 ----
        --  Compute Sign
  
        Is_Positive := (0.0 <= Item);
!       F := abs Item;
  
        --  Signed zero
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-statxd.ads gcc-15.1.0/gcc/ada/libgnat/s-statxd.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-statxd.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-statxd.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stausa.adb gcc-15.1.0/gcc/ada/libgnat/s-stausa.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stausa.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stausa.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2004-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2004-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stausa.ads gcc-15.1.0/gcc/ada/libgnat/s-stausa.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stausa.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stausa.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2004-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2004-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stchop.adb gcc-15.1.0/gcc/ada/libgnat/s-stchop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stchop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stchop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stchop.ads gcc-15.1.0/gcc/ada/libgnat/s-stchop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stchop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stchop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stchop__limit.ads gcc-15.1.0/gcc/ada/libgnat/s-stchop__limit.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stchop__limit.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stchop__limit.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb gcc-15.1.0/gcc/ada/libgnat/s-stchop__vxworks.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stchop__vxworks.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stoele.adb gcc-15.1.0/gcc/ada/libgnat/s-stoele.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stoele.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stoele.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stoele.ads gcc-15.1.0/gcc/ada/libgnat/s-stoele.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stoele.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stoele.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 33,38 ****
--- 33,41 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package provides the ``Storage_Elements`` package as defined by the
+ --  Ada ARM 13.7.1 to allow for arithmetic operations on memory addresses.
+ 
  --  Warning: declarations in this package are ambiguous with respect to the
  --  extra declarations that can be introduced into System using Extend_System.
  --  It is a good idea to avoid use clauses for this package.
*************** is
*** 51,59 ****
--- 54,65 ----
     type Storage_Offset is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
  
     subtype Storage_Count is Storage_Offset range 0 .. Storage_Offset'Last;
+    --  *Storage_Count* is a subtype of *Storage_Offset* with only the null or
+    --  positive values.
  
     type Storage_Element is mod 2 ** Storage_Unit;
     for Storage_Element'Size use Storage_Unit;
+    --  The type *Storage_Element* represents a byte
  
     pragma Universal_Aliasing (Storage_Element);
     --  This type is used by the expander to implement aggregate copy
*************** is
*** 61,90 ****
--- 67,104 ----
     type Storage_Array is
       array (Storage_Offset range <>) of aliased Storage_Element;
     for Storage_Array'Component_Size use Storage_Unit;
+    --  The type *Storage_Array* represents a part of the memory
  
     --  Address arithmetic
  
     function "+" (Left : Address; Right : Storage_Offset) return Address;
     function "+" (Left : Storage_Offset; Right : Address) return Address;
     pragma Import (Intrinsic, "+");
+    --   Returns the sum of ``Left`` and ``Right``
  
     function "-" (Left : Address; Right : Storage_Offset) return Address;
     function "-" (Left, Right : Address) return Storage_Offset;
     pragma Import (Intrinsic, "-");
+    --  Returns the difference between ``Left`` and ``Right``
  
     function "mod"
       (Left  : Address;
        Right : Storage_Offset) return Storage_Offset;
     pragma Import (Intrinsic, "mod");
+    --  Returns the modulus between ``Left`` and ``Right``
  
     --  Conversion to/from integers
  
     type Integer_Address is mod Memory_Size;
+    --  Finally, *Integer_Address* is a non-private modular
+    --  type that represents an address.
  
     function To_Address (Value : Integer_Address) return Address;
     pragma Import (Intrinsic, To_Address);
+    --  Converts the *Integer_Address* ``Value`` to an *Address*
  
     function To_Integer (Value : Address) return Integer_Address;
     pragma Import (Intrinsic, To_Integer);
+    --  Converts the *Address* ``Value`` to an *Integer_Address*
  
  end System.Storage_Elements;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stopoo.adb gcc-15.1.0/gcc/ada/libgnat/s-stopoo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stopoo.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stopoo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stopoo.ads gcc-15.1.0/gcc/ada/libgnat/s-stopoo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stopoo.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stopoo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stposu.adb gcc-15.1.0/gcc/ada/libgnat/s-stposu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stposu.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stposu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,56 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Exceptions;           use Ada.Exceptions;
! with Ada.Unchecked_Conversion;
  
  with System.Address_Image;
! with System.Finalization_Masters; use System.Finalization_Masters;
! with System.IO;                   use System.IO;
! with System.Soft_Links;           use System.Soft_Links;
! with System.Storage_Elements;     use System.Storage_Elements;
  
  with System.Storage_Pools.Subpools.Finalization;
  use  System.Storage_Pools.Subpools.Finalization;
  
  package body System.Storage_Pools.Subpools is
  
-    Finalize_Address_Table_In_Use : Boolean := False;
-    --  This flag should be set only when a successful allocation on a subpool
-    --  has been performed and the associated Finalize_Address has been added to
-    --  the hash table in System.Finalization_Masters.
- 
-    function Address_To_FM_Node_Ptr is
-      new Ada.Unchecked_Conversion (Address, FM_Node_Ptr);
- 
     procedure Attach (N : not null SP_Node_Ptr; L : not null SP_Node_Ptr);
     --  Attach a subpool node to a pool
  
--- 29,46 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Exceptions; use Ada.Exceptions;
  
  with System.Address_Image;
! with System.IO;               use System.IO;
! with System.Soft_Links;       use System.Soft_Links;
! with System.Storage_Elements; use System.Storage_Elements;
  
  with System.Storage_Pools.Subpools.Finalization;
  use  System.Storage_Pools.Subpools.Finalization;
  
  package body System.Storage_Pools.Subpools is
  
     procedure Attach (N : not null SP_Node_Ptr; L : not null SP_Node_Ptr);
     --  Attach a subpool node to a pool
  
*************** package body System.Storage_Pools.Subpoo
*** 66,77 ****
        Header_And_Padding : constant Storage_Offset :=
                               Header_Size_With_Padding (Alignment);
     begin
!       --  Expose the two hidden pointers by shifting the address from the
!       --  start of the object to the FM_Node equivalent of the pointers.
  
        Addr := Addr - Header_And_Padding;
  
!       --  Update the size of the object to include the two pointers
  
        Storage_Size := Storage_Size + Header_And_Padding;
     end Adjust_Controlled_Dereference;
--- 56,67 ----
        Header_And_Padding : constant Storage_Offset :=
                               Header_Size_With_Padding (Alignment);
     begin
!       --  Expose the header and its padding by shifting the address from the
!       --  start of the object to the beginning of the padding.
  
        Addr := Addr - Header_And_Padding;
  
!       --  Update the size to include the header and its padding
  
        Storage_Size := Storage_Size + Header_And_Padding;
     end Adjust_Controlled_Dereference;
*************** package body System.Storage_Pools.Subpoo
*** 104,145 ****
     -----------------------------
  
     procedure Allocate_Any_Controlled
!      (Pool            : in out Root_Storage_Pool'Class;
!       Context_Subpool : Subpool_Handle;
!       Context_Master  : Finalization_Masters.Finalization_Master_Ptr;
!       Fin_Address     : Finalization_Masters.Finalize_Address_Ptr;
!       Addr            : out System.Address;
!       Storage_Size    : System.Storage_Elements.Storage_Count;
!       Alignment       : System.Storage_Elements.Storage_Count;
!       Is_Controlled   : Boolean;
!       On_Subpool      : Boolean)
     is
        Is_Subpool_Allocation : constant Boolean :=
                                  Pool in Root_Storage_Pool_With_Subpools'Class;
  
!       Master     : Finalization_Master_Ptr := null;
!       N_Addr     : Address;
!       N_Ptr      : FM_Node_Ptr;
!       N_Size     : Storage_Count;
!       Subpool    : Subpool_Handle := null;
!       Lock_Taken : Boolean := False;
  
        Header_And_Padding : Storage_Offset;
!       --  This offset includes the size of a FM_Node plus any additional
!       --  padding due to a larger alignment.
  
     begin
        --  Step 1: Pool-related runtime checks
  
        --  Allocation on a pool_with_subpools. In this scenario there is a
!       --  master for each subpool. The master of the access type is ignored.
  
        if Is_Subpool_Allocation then
  
           --  Case of an allocation without a Subpool_Handle. Dispatch to the
           --  implementation of Default_Subpool_For_Pool.
  
!          if Context_Subpool = null then
              Subpool :=
                Default_Subpool_For_Pool
                  (Root_Storage_Pool_With_Subpools'Class (Pool));
--- 94,135 ----
     -----------------------------
  
     procedure Allocate_Any_Controlled
!      (Pool          : in out Root_Storage_Pool'Class;
!       Named_Subpool : Subpool_Handle;
!       Collection    : in out
!                         Finalization_Primitives.Finalization_Collection_Ptr;
!       Addr          : out System.Address;
!       Storage_Size  : System.Storage_Elements.Storage_Count;
!       Alignment     : System.Storage_Elements.Storage_Count;
!       Is_Controlled : Boolean;
!       On_Subpool    : Boolean)
     is
+       use type System.Finalization_Primitives.Finalization_Collection_Ptr;
+ 
        Is_Subpool_Allocation : constant Boolean :=
                                  Pool in Root_Storage_Pool_With_Subpools'Class;
  
!       N_Addr      : Address;
!       N_Alignment : Storage_Count;
!       N_Size      : Storage_Count;
!       Subpool     : Subpool_Handle;
  
        Header_And_Padding : Storage_Offset;
!       --  This offset includes the size of a header plus an additional padding
!       --  due to a larger alignment of the object.
  
     begin
        --  Step 1: Pool-related runtime checks
  
        --  Allocation on a pool_with_subpools. In this scenario there is a
!       --  collection for each subpool. That of the access type is ignored.
  
        if Is_Subpool_Allocation then
  
           --  Case of an allocation without a Subpool_Handle. Dispatch to the
           --  implementation of Default_Subpool_For_Pool.
  
!          if Named_Subpool = null then
              Subpool :=
                Default_Subpool_For_Pool
                  (Root_Storage_Pool_With_Subpools'Class (Pool));
*************** package body System.Storage_Pools.Subpoo
*** 147,153 ****
           --  Allocation with a Subpool_Handle
  
           else
!             Subpool := Context_Subpool;
           end if;
  
           --  Ensure proper ownership and chaining of the subpool
--- 137,143 ----
           --  Allocation with a Subpool_Handle
  
           else
!             Subpool := Named_Subpool;
           end if;
  
           --  Ensure proper ownership and chaining of the subpool
*************** package body System.Storage_Pools.Subpoo
*** 161,183 ****
              raise Program_Error with "incorrect owner of subpool";
           end if;
  
!          Master := Subpool.Master'Unchecked_Access;
  
!       --  Allocation on a simple pool. In this scenario there is a master for
!       --  each access-to-controlled type. No context subpool should be present.
  
        else
!          --  If the master is missing, then the expansion of the access type
!          --  failed to create one. This is a compiler bug.
  
           pragma Assert
!            (Context_Master /= null, "missing master in pool allocation");
  
           --  If a subpool is present, then this is the result of erroneous
           --  allocator expansion. This is not a serious error, but it should
           --  still be detected.
  
!          if Context_Subpool /= null then
              raise Program_Error
                with "subpool not required in pool allocation";
           end if;
--- 151,173 ----
              raise Program_Error with "incorrect owner of subpool";
           end if;
  
!          Collection := Subpool.Collection'Unchecked_Access;
  
!       --  Allocation on a simple pool. In this scenario there is a collection
!       --  for each access-to-controlled type. No context subpool is allowed.
  
        else
!          --  If the collection is missing, then the expansion of the access
!          --  type has failed to create one. This is a compiler bug.
  
           pragma Assert
!            (Collection /= null, "no collection in pool allocation");
  
           --  If a subpool is present, then this is the result of erroneous
           --  allocator expansion. This is not a serious error, but it should
           --  still be detected.
  
!          if Named_Subpool /= null then
              raise Program_Error
                with "subpool not required in pool allocation";
           end if;
*************** package body System.Storage_Pools.Subpoo
*** 190,240 ****
              raise Program_Error
                with "pool of access type does not support subpools";
           end if;
- 
-          Master := Context_Master;
        end if;
  
!       --  Step 2: Master, Finalize_Address-related runtime checks and size
!       --  calculations.
  
        --  Allocation of a descendant from [Limited_]Controlled, a class-wide
        --  object or a record with controlled components.
  
        if Is_Controlled then
! 
!          --  Synchronization:
!          --    Read  - allocation, finalization
!          --    Write - finalization
! 
!          Lock_Taken := True;
!          Lock_Task.all;
! 
!          --  Do not allow the allocation of controlled objects while the
!          --  associated master is being finalized.
! 
!          if Finalization_Started (Master.all) then
!             raise Program_Error with "allocation after finalization started";
!          end if;
! 
!          --  Check whether primitive Finalize_Address is available. If it is
!          --  not, then either the expansion of the designated type failed or
!          --  the expansion of the allocator failed. This is a compiler bug.
! 
!          pragma Assert
!            (Fin_Address /= null, "primitive Finalize_Address not available");
! 
!          --  The size must account for the hidden header preceding the object.
           --  Account for possible padding space before the header due to a
!          --  larger alignment.
  
           Header_And_Padding := Header_Size_With_Padding (Alignment);
  
           N_Size := Storage_Size + Header_And_Padding;
  
        --  Non-controlled allocation
  
        else
!          N_Size := Storage_Size;
        end if;
  
        --  Step 3: Allocation of object
--- 180,212 ----
              raise Program_Error
                with "pool of access type does not support subpools";
           end if;
        end if;
  
!       --  Step 2: Size and alignment calculations
  
        --  Allocation of a descendant from [Limited_]Controlled, a class-wide
        --  object or a record with controlled components.
  
        if Is_Controlled then
!          --  The size must account for the hidden header before the object.
           --  Account for possible padding space before the header due to a
!          --  larger alignment of the object.
  
           Header_And_Padding := Header_Size_With_Padding (Alignment);
  
           N_Size := Storage_Size + Header_And_Padding;
  
+          --  The alignment must account for the hidden header before the object
+ 
+          N_Alignment :=
+            System.Storage_Elements.Storage_Count'Max
+              (Alignment, System.Finalization_Primitives.Header_Alignment);
+ 
        --  Non-controlled allocation
  
        else
!          N_Size      := Storage_Size;
!          N_Alignment := Alignment;
        end if;
  
        --  Step 3: Allocation of object
*************** package body System.Storage_Pools.Subpoo
*** 245,348 ****
        if Is_Subpool_Allocation then
           Allocate_From_Subpool
             (Root_Storage_Pool_With_Subpools'Class (Pool),
!             N_Addr, N_Size, Alignment, Subpool);
  
        --  For descendants of Root_Storage_Pool, dispatch to the implementation
        --  of Allocate.
  
        else
!          Allocate (Pool, N_Addr, N_Size, Alignment);
        end if;
  
!       --  Step 4: Attachment
  
        if Is_Controlled then
- 
-          --  Note that we already did "Lock_Task.all;" in Step 2 above
- 
-          --  Map the allocated memory into a FM_Node record. This converts the
-          --  top of the allocated bits into a list header. If there is padding
-          --  due to larger alignment, the header is placed right next to the
-          --  object:
- 
-          --     N_Addr  N_Ptr
-          --     |       |
-          --     V       V
-          --     +-------+---------------+----------------------+
-          --     |Padding|    Header     |        Object        |
-          --     +-------+---------------+----------------------+
-          --     ^       ^               ^
-          --     |       +- Header_Size -+
-          --     |                       |
-          --     +- Header_And_Padding --+
- 
-          N_Ptr :=
-            Address_To_FM_Node_Ptr (N_Addr + Header_And_Padding - Header_Size);
- 
-          --  Prepend the allocated object to the finalization master
- 
-          --  Synchronization:
-          --    Write - allocation, deallocation, finalization
- 
-          Attach_Unprotected (N_Ptr, Objects (Master.all));
- 
           --  Move the address from the hidden list header to the start of the
!          --  object. This operation effectively hides the list header.
! 
!          Addr := N_Addr + Header_And_Padding;
! 
!          --  Homogeneous masters service the following:
! 
!          --    1) Allocations on / Deallocations from regular pools
!          --    2) Named access types
!          --    3) Most cases of anonymous access types usage
! 
!          --  Synchronization:
!          --    Read  - allocation, finalization
!          --    Write - outside
! 
!          if Master.Is_Homogeneous then
! 
!             --  Synchronization:
!             --    Read  - finalization
!             --    Write - allocation, outside
! 
!             Set_Finalize_Address_Unprotected (Master.all, Fin_Address);
! 
!          --  Heterogeneous masters service the following:
! 
!          --    1) Allocations on / Deallocations from subpools
!          --    2) Certain cases of anonymous access types usage
! 
!          else
!             --  Synchronization:
!             --    Read  - finalization
!             --    Write - allocation, deallocation
  
!             Set_Heterogeneous_Finalize_Address_Unprotected (Addr, Fin_Address);
!             Finalize_Address_Table_In_Use := True;
!          end if;
  
!          Unlock_Task.all;
!          Lock_Taken := False;
  
        --  Non-controlled allocation
  
        else
           Addr := N_Addr;
        end if;
- 
-    exception
-       when others =>
- 
-          --  Unlock the task in case the allocation step failed and reraise the
-          --  exception.
- 
-          if Lock_Taken then
-             Unlock_Task.all;
-          end if;
- 
-          raise;
     end Allocate_Any_Controlled;
  
     ------------
--- 217,257 ----
        if Is_Subpool_Allocation then
           Allocate_From_Subpool
             (Root_Storage_Pool_With_Subpools'Class (Pool),
!             N_Addr, N_Size, N_Alignment, Subpool);
  
        --  For descendants of Root_Storage_Pool, dispatch to the implementation
        --  of Allocate.
  
        else
!          Allocate (Pool, N_Addr, N_Size, N_Alignment);
        end if;
  
!       --  Step 4: Displacement of address
  
        if Is_Controlled then
           --  Move the address from the hidden list header to the start of the
!          --  object. If there is padding due to larger alignment of the object,
!          --  the padding is placed at the beginning. This effectively hides the
!          --  list header:
  
!          --    N_Addr                  Addr
!          --    |                       |
!          --    V                       V
!          --    +-------+---------------+----------------------+
!          --    |Padding|    Header     |        Object        |
!          --    +-------+---------------+----------------------+
!          --    ^       ^               ^
!          --    |       +- Header_Size -+
!          --    |                       |
!          --    +- Header_And_Padding --+
  
!          Addr := N_Addr + Header_And_Padding;
  
        --  Non-controlled allocation
  
        else
           Addr := N_Addr;
        end if;
     end Allocate_Any_Controlled;
  
     ------------
*************** package body System.Storage_Pools.Subpoo
*** 379,473 ****
        Alignment     : System.Storage_Elements.Storage_Count;
        Is_Controlled : Boolean)
     is
!       N_Addr : Address;
!       N_Ptr  : FM_Node_Ptr;
!       N_Size : Storage_Count;
  
        Header_And_Padding : Storage_Offset;
!       --  This offset includes the size of a FM_Node plus any additional
!       --  padding due to a larger alignment.
  
     begin
!       --  Step 1: Detachment
  
        if Is_Controlled then
!          Lock_Task.all;
! 
!          begin
!             --  Destroy the relation pair object - Finalize_Address since it is
!             --  no longer needed.
! 
!             if Finalize_Address_Table_In_Use then
! 
!                --  Synchronization:
!                --    Read  - finalization
!                --    Write - allocation, deallocation
! 
!                Delete_Finalize_Address_Unprotected (Addr);
!             end if;
! 
!             --  Account for possible padding space before the header due to a
!             --  larger alignment.
! 
!             Header_And_Padding := Header_Size_With_Padding (Alignment);
! 
!             --    N_Addr  N_Ptr           Addr (from input)
!             --    |       |               |
!             --    V       V               V
!             --    +-------+---------------+----------------------+
!             --    |Padding|    Header     |        Object        |
!             --    +-------+---------------+----------------------+
!             --    ^       ^               ^
!             --    |       +- Header_Size -+
!             --    |                       |
!             --    +- Header_And_Padding --+
! 
!             --  Convert the bits preceding the object into a list header
! 
!             N_Ptr := Address_To_FM_Node_Ptr (Addr - Header_Size);
! 
!             --  Detach the object from the related finalization master. This
!             --  action does not need to know the prior context used during
!             --  allocation.
! 
!             --  Synchronization:
!             --    Write - allocation, deallocation, finalization
  
!             Detach_Unprotected (N_Ptr);
  
!             --  Move the address from the object to the beginning of the list
!             --  header.
  
!             N_Addr := Addr - Header_And_Padding;
  
!             --  The size of the deallocated object must include the size of the
!             --  hidden list header.
  
!             N_Size := Storage_Size + Header_And_Padding;
  
!             Unlock_Task.all;
  
!          exception
!             when others =>
  
!                --  Unlock the task in case the computations performed above
!                --  fail for some reason.
  
-                Unlock_Task.all;
-                raise;
-          end;
        else
!          N_Addr := Addr;
!          N_Size := Storage_Size;
        end if;
  
!       --  Step 2: Deallocation
  
        --  Dispatch to the proper implementation of Deallocate. This action
        --  covers both Root_Storage_Pool and Root_Storage_Pool_With_Subpools
        --  implementations.
  
!       Deallocate (Pool, N_Addr, N_Size, Alignment);
     end Deallocate_Any_Controlled;
  
     ------------------------------
--- 288,348 ----
        Alignment     : System.Storage_Elements.Storage_Count;
        Is_Controlled : Boolean)
     is
!       N_Addr      : Address;
!       N_Alignment : Storage_Count;
!       N_Size      : Storage_Count;
  
        Header_And_Padding : Storage_Offset;
!       --  This offset includes the size of a header plus an additional padding
!       --  due to a larger alignment of the object.
  
     begin
!       --  Step 1: Displacement of address
  
        if Is_Controlled then
!          --  Account for possible padding space before the header due to a
!          --  larger alignment.
  
!          Header_And_Padding := Header_Size_With_Padding (Alignment);
  
!          --    N_Addr                  Addr
!          --    |                       |
!          --    V                       V
!          --    +-------+---------------+----------------------+
!          --    |Padding|    Header     |        Object        |
!          --    +-------+---------------+----------------------+
!          --    ^       ^               ^
!          --    |       +- Header_Size -+
!          --    |                       |
!          --    +- Header_And_Padding --+
  
!          --  Move the address from the object to the beginning of the header
  
!          N_Addr := Addr - Header_And_Padding;
  
!          --  The size of the deallocated object must include that of the header
  
!          N_Size := Storage_Size + Header_And_Padding;
  
!          --  The alignment must account for the hidden header before the object
  
!          N_Alignment :=
!            System.Storage_Elements.Storage_Count'Max
!              (Alignment, System.Finalization_Primitives.Header_Alignment);
  
        else
!          N_Addr      := Addr;
!          N_Size      := Storage_Size;
!          N_Alignment := Alignment;
        end if;
  
!       --  Step 2: Deallocation of object
  
        --  Dispatch to the proper implementation of Deallocate. This action
        --  covers both Root_Storage_Pool and Root_Storage_Pool_With_Subpools
        --  implementations.
  
!       Deallocate (Pool, N_Addr, N_Size, N_Alignment);
     end Deallocate_Any_Controlled;
  
     ------------------------------
*************** package body System.Storage_Pools.Subpoo
*** 559,565 ****
  
           --  Perform the following actions:
  
!          --    1) Finalize all objects chained on the subpool's master
           --    2) Remove the subpool from the owner's list of subpools
           --    3) Deallocate the doubly linked list node associated with the
           --       subpool.
--- 434,440 ----
  
           --  Perform the following actions:
  
!          --    1) Finalize all objects chained on the subpool's collection
           --    2) Remove the subpool from the owner's list of subpools
           --    3) Deallocate the doubly linked list node associated with the
           --       subpool.
*************** package body System.Storage_Pools.Subpoo
*** 577,583 ****
           end;
        end loop;
  
!       --  If the finalization of a particular master failed, reraise the
        --  exception now.
  
        if Raised then
--- 452,458 ----
           end;
        end loop;
  
!       --  If the finalization of a particular collection failed, reraise the
        --  exception now.
  
        if Raised then
*************** package body System.Storage_Pools.Subpoo
*** 593,599 ****
       (Alignment : System.Storage_Elements.Storage_Count)
        return System.Storage_Elements.Storage_Count
     is
!       Size : constant Storage_Count := Header_Size;
  
     begin
        if Size mod Alignment = 0 then
--- 468,475 ----
       (Alignment : System.Storage_Elements.Storage_Count)
        return System.Storage_Elements.Storage_Count
     is
!       Size : constant Storage_Count :=
!                System.Finalization_Primitives.Header_Size;
  
     begin
        if Size mod Alignment = 0 then
*************** package body System.Storage_Pools.Subpoo
*** 754,762 ****
  
        --  Output the contents of a subpool
  
!       --    Owner : 0x123456789
!       --    Master: 0x123456789
!       --    Node  : 0x123456789
  
        Put ("Owner : ");
        if Subpool.Owner = null then
--- 630,638 ----
  
        --  Output the contents of a subpool
  
!       --    Owner     : 0x123456789
!       --    Collection: 0x123456789
!       --    Node      : 0x123456789
  
        Put ("Owner : ");
        if Subpool.Owner = null then
*************** package body System.Storage_Pools.Subpoo
*** 765,772 ****
           Put_Line (Address_Image (Subpool.Owner'Address));
        end if;
  
!       Put ("Master: ");
!       Put_Line (Address_Image (Subpool.Master'Address));
  
        Put ("Node  : ");
        if Subpool.Node = null then
--- 641,648 ----
           Put_Line (Address_Image (Subpool.Owner'Address));
        end if;
  
!       Put ("Collection: ");
!       Put_Line (Address_Image (Subpool.Collection'Address));
  
        Put ("Node  : ");
        if Subpool.Node = null then
*************** package body System.Storage_Pools.Subpoo
*** 780,787 ****
        else
           Put_Line (Address_Image (Subpool.Node'Address));
        end if;
- 
-       Print_Master (Subpool.Master);
     end Print_Subpool;
  
     -------------------------
--- 656,661 ----
*************** package body System.Storage_Pools.Subpoo
*** 821,831 ****
        Subpool.Node := N_Ptr;
  
        Attach (N_Ptr, To.Subpools'Unchecked_Access);
- 
-       --  Mark the subpool's master as being a heterogeneous collection of
-       --  controlled objects.
- 
-       Set_Is_Heterogeneous (Subpool.Master);
     end Set_Pool_Of_Subpool;
  
  end System.Storage_Pools.Subpools;
--- 695,700 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stposu.ads gcc-15.1.0/gcc/ada/libgnat/s-stposu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stposu.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stposu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 34,40 ****
  ------------------------------------------------------------------------------
  
  with Ada.Finalization;
! with System.Finalization_Masters;
  with System.Storage_Elements;
  
  package System.Storage_Pools.Subpools is
--- 34,40 ----
  ------------------------------------------------------------------------------
  
  with Ada.Finalization;
! with System.Finalization_Primitives;
  with System.Storage_Elements;
  
  package System.Storage_Pools.Subpools is
*************** package System.Storage_Pools.Subpools is
*** 130,161 ****
        (System.Storage_Elements.Storage_Count'Last);
  
  private
!    --  Model
!    --             Pool_With_Subpools     SP_Node    SP_Node    SP_Node
!    --       +-->+--------------------+   +-----+    +-----+    +-----+
!    --       |   |      Subpools -------->|  ------->|  ------->|  ------->
!    --       |   +--------------------+   +-----+    +-----+    +-----+
!    --       |   |Finalization_Started|<------  |<-------  |<-------  |<---
!    --       |   +--------------------+   +-----+    +-----+    +-----+
!    --       +--- Controller.Encl_Pool|   | nul |    |  +  |    |  +  |
!    --       |   +--------------------+   +-----+    +--|--+    +--:--+
!    --       |   :                    :    Dummy        |  ^       :
!    --       |   :                    :                 |  |       :
!    --       |                            Root_Subpool  V  |
!    --       |                            +-------------+  |
!    --       +-------------------------------- Owner    |  |
!    --               FM_Node   FM_Node    +-------------+  |
!    --               +-----+   +-----+<-- Master.Objects|  |
!    --            <------  |<------  |    +-------------+  |
!    --               +-----+   +-----+    |    Node -------+
!    --               |  ------>|  ----->  +-------------+
!    --               +-----+   +-----+    :             :
!    --               |ctrl |    Dummy     :             :
!    --               | obj |
!    --               +-----+
!    --
!    --  SP_Nodes are created on the heap. FM_Nodes and associated objects are
!    --  created on the pool_with_subpools.
  
     type Any_Storage_Pool_With_Subpools_Ptr
       is access all Root_Storage_Pool_With_Subpools'Class;
--- 130,137 ----
        (System.Storage_Elements.Storage_Count'Last);
  
  private
!    --  SP_Nodes are created on the heap, while collection nodes and associated
!    --  objects are created on the pool_with_subpools.
  
     type Any_Storage_Pool_With_Subpools_Ptr
       is access all Root_Storage_Pool_With_Subpools'Class;
*************** private
*** 205,211 ****
  
        Finalization_Started : Boolean := False;
        pragma Atomic (Finalization_Started);
!       --  A flag which prevents the creation of new subpools while the master
        --  pool is being finalized. The flag needs to be atomic because it is
        --  accessed without Lock_Task / Unlock_Task.
  
--- 181,187 ----
  
        Finalization_Started : Boolean := False;
        pragma Atomic (Finalization_Started);
!       --  A flag which prevents the creation of new subpools while the parent
        --  pool is being finalized. The flag needs to be atomic because it is
        --  accessed without Lock_Task / Unlock_Task.
  
*************** private
*** 219,250 ****
     --  contains links to all controlled objects allocated on a particular
     --  subpool.
  
!    --        Pool_With_Subpools   SP_Node    SP_Node    SP_Node
!    --    +-->+----------------+   +-----+    +-----+    +-----+
!    --    |   |    Subpools ------>|  ------->|  ------->|  ------->
!    --    |   +----------------+   +-----+    +-----+    +-----+
!    --    |   :                :<------  |<-------  |<-------  |
!    --    |   :                :   +-----+    +-----+    +-----+
!    --    |                        |null |    |  +  |    |  +  |
!    --    |                        +-----+    +--|--+    +--:--+
!    --    |                                      |  ^       :
!    --    |                        Root_Subpool  V  |
!    --    |                        +-------------+  |
!    --    +---------------------------- Owner    |  |
!    --                             +-------------+  |
!    --                      .......... Master    |  |
!    --                             +-------------+  |
!    --                             |    Node -------+
!    --                             +-------------+
!    --                             :   End-user  :
!    --                             :  components :
  
     type Root_Subpool is abstract tagged limited record
        Owner : Any_Storage_Pool_With_Subpools_Ptr := null;
!       --  A reference to the master pool_with_subpools
  
!       Master : aliased System.Finalization_Masters.Finalization_Master;
!       --  A heterogeneous collection of controlled objects
  
        Node : SP_Node_Ptr := null;
        --  A link to the doubly linked list node which contains the subpool.
--- 195,229 ----
     --  contains links to all controlled objects allocated on a particular
     --  subpool.
  
!    --             Pool_With_Subpools     SP_Node    SP_Node    SP_Node
!    --       +-->+--------------------+   +-----+    +-----+    +-----+
!    --       |   |      Subpools -------->|  ------->|  ------->|  ------->
!    --       |   +--------------------+   +-----+    +-----+    +-----+
!    --       |   |Finalization_Started|<------  |<-------  |<-------  |<---
!    --       |   +--------------------+   +-----+    +-----+    +-----+
!    --       +--- Controller.Encl_Pool|   | nul |    |  +  |    |  +  |
!    --       |   +--------------------+   +-----+    +--|--+    +--:--+
!    --       |   :                    :    Dummy        |  ^       :
!    --       |   :                    :                 |  |       :
!    --       |                            Root_Subpool  V  |
!    --       |                            +-------------+  |
!    --       +-------------------------------- Owner    |  |
!    --                Collection nodes    +-------------+  |
!    --               +-----+   +-----+<-- | Collection  |
!    --            <------  |<------  |    +-------------+  |
!    --               +-----+   +-----+    |    Node -------+
!    --               |  ------>|  ----->  +-------------+
!    --               +-----+   +-----+    :             :
!    --               |ctrl |    Dummy     :             :
!    --               | obj |
!    --               +-----+
  
     type Root_Subpool is abstract tagged limited record
        Owner : Any_Storage_Pool_With_Subpools_Ptr := null;
!       --  A reference to the parent pool_with_subpools
  
!       Collection : aliased Finalization_Primitives.Finalization_Collection;
!       --  A collection of controlled objects
  
        Node : SP_Node_Ptr := null;
        --  A link to the doubly linked list node which contains the subpool.
*************** private
*** 257,277 ****
        Alignment    : System.Storage_Elements.Storage_Count);
     --  Given the memory attributes of a heap-allocated object that is known to
     --  be controlled, adjust the address and size of the object to include the
!    --  two hidden pointers inserted by the finalization machinery.
  
     --  ??? Once Storage_Pools.Allocate_Any is removed, this should be renamed
     --  to Allocate_Any.
  
     procedure Allocate_Any_Controlled
!      (Pool            : in out Root_Storage_Pool'Class;
!       Context_Subpool : Subpool_Handle;
!       Context_Master  : Finalization_Masters.Finalization_Master_Ptr;
!       Fin_Address     : Finalization_Masters.Finalize_Address_Ptr;
!       Addr            : out System.Address;
!       Storage_Size    : System.Storage_Elements.Storage_Count;
!       Alignment       : System.Storage_Elements.Storage_Count;
!       Is_Controlled   : Boolean;
!       On_Subpool      : Boolean);
     --  Compiler interface. This version of Allocate handles all possible cases,
     --  either on a pool or a pool_with_subpools, regardless of the controlled
     --  status of the allocated object. Parameter usage:
--- 236,256 ----
        Alignment    : System.Storage_Elements.Storage_Count);
     --  Given the memory attributes of a heap-allocated object that is known to
     --  be controlled, adjust the address and size of the object to include the
!    --  hidden header inserted by the finalization machinery and its padding.
  
     --  ??? Once Storage_Pools.Allocate_Any is removed, this should be renamed
     --  to Allocate_Any.
  
     procedure Allocate_Any_Controlled
!      (Pool          : in out Root_Storage_Pool'Class;
!       Named_Subpool : Subpool_Handle;
!       Collection    : in out
!                         Finalization_Primitives.Finalization_Collection_Ptr;
!       Addr          : out System.Address;
!       Storage_Size  : System.Storage_Elements.Storage_Count;
!       Alignment     : System.Storage_Elements.Storage_Count;
!       Is_Controlled : Boolean;
!       On_Subpool    : Boolean);
     --  Compiler interface. This version of Allocate handles all possible cases,
     --  either on a pool or a pool_with_subpools, regardless of the controlled
     --  status of the allocated object. Parameter usage:
*************** private
*** 279,294 ****
     --    * Pool - The pool associated with the access type. Pool can be any
     --    derivation from Root_Storage_Pool, including a pool_with_subpools.
     --
!    --    * Context_Subpool - The subpool handle name of an allocator. If no
!    --    subpool handle is present at the point of allocation, the actual
!    --    would be null.
!    --
!    --    * Context_Master - The finalization master associated with the access
!    --    type. If the access type's designated type is not controlled, the
!    --    actual would be null.
     --
!    --    * Fin_Address - TSS routine Finalize_Address of the designated type.
!    --    If the designated type is not controlled, the actual would be null.
     --
     --    * Addr - The address of the allocated object.
     --
--- 258,270 ----
     --    * Pool - The pool associated with the access type. Pool can be any
     --    derivation from Root_Storage_Pool, including a pool_with_subpools.
     --
!    --    * Named_Subpool - The subpool identified by the handle name of an
!    --    allocator. If no handle name is present, the actual would be null.
     --
!    --    * Collection - The finalization collection associated with the access
!    --    type if its designated type is controlled. If it is not, the actual
!    --    would be null. If the object is allocated on a subpool, the parameter
!    --    is updated to the collection of the subpool.
     --
     --    * Addr - The address of the allocated object.
     --
*************** private
*** 297,304 ****
     --    * Alignment - The alignment of the allocated object.
     --
     --    * Is_Controlled - A flag which determines whether the allocated object
!    --    is controlled. When set to True, the machinery generates additional
!    --    data.
     --
     --    * On_Subpool - A flag which determines whether the a subpool handle
     --    name is present at the point of allocation. This is used for error
--- 273,280 ----
     --    * Alignment - The alignment of the allocated object.
     --
     --    * Is_Controlled - A flag which determines whether the allocated object
!    --    is controlled. When set to True, the machinery allocates more space
!    --    and returns a displaced address.
     --
     --    * On_Subpool - A flag which determines whether the a subpool handle
     --    name is present at the point of allocation. This is used for error
*************** private
*** 324,331 ****
     --    * Alignment - The alignment of the allocated object.
     --
     --    * Is_Controlled - A flag which determines whether the allocated object
!    --    is controlled. When set to True, the machinery generates additional
!    --    data.
  
     procedure Detach (N : not null SP_Node_Ptr);
     --  Unhook a subpool node from an arbitrary subpool list
--- 300,306 ----
     --    * Alignment - The alignment of the allocated object.
     --
     --    * Is_Controlled - A flag which determines whether the allocated object
!    --    is controlled. When set to True, the address must be displaced.
  
     procedure Detach (N : not null SP_Node_Ptr);
     --  Unhook a subpool node from an arbitrary subpool list
*************** private
*** 335,342 ****
  
     procedure Finalize_Pool (Pool : in out Root_Storage_Pool_With_Subpools);
     --  Iterate over all subpools of Pool, detach them one by one and finalize
!    --  their masters. This action first detaches a controlled object from a
!    --  particular master, then invokes its Finalize_Address primitive.
  
     function Header_Size_With_Padding
       (Alignment : System.Storage_Elements.Storage_Count)
--- 310,317 ----
  
     procedure Finalize_Pool (Pool : in out Root_Storage_Pool_With_Subpools);
     --  Iterate over all subpools of Pool, detach them one by one and finalize
!    --  their collections. This action first detaches a controlled object from a
!    --  particular collection, then invokes its Finalize_Address primitive.
  
     function Header_Size_With_Padding
       (Alignment : System.Storage_Elements.Storage_Count)
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stratt.adb gcc-15.1.0/gcc/ada/libgnat/s-stratt.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stratt.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stratt.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stratt.ads gcc-15.1.0/gcc/ada/libgnat/s-stratt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-stratt.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stratt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Stream_Attributes is
*** 74,79 ****
--- 74,82 ----
        P2 : System.Address;
     end record;
  
+    pragma Universal_Aliasing (Fat_Pointer);
+    --  This avoids a copy for the aforementioned unchecked conversions
+ 
     ------------------------------------
     -- Treatment of enumeration types --
     ------------------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-stratt__cheri.adb gcc-15.1.0/gcc/ada/libgnat/s-stratt__cheri.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-stratt__cheri.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-stratt__cheri.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-strcom.adb gcc-15.1.0/gcc/ada/libgnat/s-strcom.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-strcom.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-strcom.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-strcom.ads gcc-15.1.0/gcc/ada/libgnat/s-strcom.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-strcom.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-strcom.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-strhas.adb gcc-15.1.0/gcc/ada/libgnat/s-strhas.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-strhas.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-strhas.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-strhas.ads gcc-15.1.0/gcc/ada/libgnat/s-strhas.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-strhas.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-strhas.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-string.adb gcc-15.1.0/gcc/ada/libgnat/s-string.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-string.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-string.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-string.ads gcc-15.1.0/gcc/ada/libgnat/s-string.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-string.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-string.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-ststop.adb gcc-15.1.0/gcc/ada/libgnat/s-ststop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-ststop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-ststop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-ststop.ads gcc-15.1.0/gcc/ada/libgnat/s-ststop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-ststop.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-ststop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-tasloc.adb gcc-15.1.0/gcc/ada/libgnat/s-tasloc.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-tasloc.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-tasloc.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-tasloc.ads gcc-15.1.0/gcc/ada/libgnat/s-tasloc.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-tasloc.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-tasloc.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traceb.adb gcc-15.1.0/gcc/ada/libgnat/s-traceb.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-traceb.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traceb.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traceb.ads gcc-15.1.0/gcc/ada/libgnat/s-traceb.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-traceb.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traceb.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traceb__hpux.adb gcc-15.1.0/gcc/ada/libgnat/s-traceb__hpux.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-traceb__hpux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traceb__hpux.adb	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traceb__mastop.adb gcc-15.1.0/gcc/ada/libgnat/s-traceb__mastop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-traceb__mastop.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traceb__mastop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traent.adb gcc-15.1.0/gcc/ada/libgnat/s-traent.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-traent.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traent.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-traent.ads gcc-15.1.0/gcc/ada/libgnat/s-traent.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-traent.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-traent.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System.Traceback_Entries is
*** 51,58 ****
  
     function PC_For (TB_Entry : Traceback_Entry) return System.Address;
     pragma Inline (PC_For);
!    --  Returns the address of the call instruction associated with the
!    --  provided entry.
  
     function TB_Entry_For (PC : System.Address) return Traceback_Entry;
     pragma Inline (TB_Entry_For);
--- 51,58 ----
  
     function PC_For (TB_Entry : Traceback_Entry) return System.Address;
     pragma Inline (PC_For);
!    --  Returns the address of the call instruction associated with
!    --  the provided entry.
  
     function TB_Entry_For (PC : System.Address) return Traceback_Entry;
     pragma Inline (TB_Entry_For);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-trasym.adb gcc-15.1.0/gcc/ada/libgnat/s-trasym.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-trasym.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-trasym.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Traceback.Symbolic i
*** 69,75 ****
              end loop;
  
              Result (Last) := ASCII.LF;
!             return Result (1 .. Last);
           end;
        end if;
     end Symbolic_Traceback;
--- 69,93 ----
              end loop;
  
              Result (Last) := ASCII.LF;
! 
!             declare
!                function Executable_Load_Address return System.Address;
!                pragma Import
!                  (C, Executable_Load_Address,
!                   "__gnat_get_executable_load_address");
! 
!                Load_Address : constant System.Address :=
!                  Executable_Load_Address;
!             begin
!                if Load_Address = System.Null_Address then
!                   return Result (1 .. Last);
!                else
!                   return "Load address: 0x"
!                     & System.Address_Image (Load_Address)
!                     & ASCII.LF
!                     & Result (1 .. Last);
!                end if;
!             end;
           end;
        end if;
     end Symbolic_Traceback;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-trasym.ads gcc-15.1.0/gcc/ada/libgnat/s-trasym.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-trasym.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-trasym.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb gcc-15.1.0/gcc/ada/libgnat/s-trasym__dwarf.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-trasym__dwarf.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Standard_Library;
*** 45,50 ****
--- 45,51 ----
  with System.Traceback_Entries;
  with System.Strings;
  with System.Bounded_Strings;
+ with Interfaces.C;
  
  package body System.Traceback.Symbolic is
  
*************** package body System.Traceback.Symbolic i
*** 341,347 ****
        type Argv_Array is array (0 .. 0) of System.Address;
        package Conv is new System.Address_To_Access_Conversions (Argv_Array);
  
!       function locate_exec_on_path (A : System.Address) return System.Address;
        pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path");
  
     begin
--- 342,350 ----
        type Argv_Array is array (0 .. 0) of System.Address;
        package Conv is new System.Address_To_Access_Conversions (Argv_Array);
  
!       function locate_exec_on_path
!         (A : System.Address;
!          Current_Dir_On_Win : Interfaces.C.int) return System.Address;
        pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path");
  
     begin
*************** package body System.Traceback.Symbolic i
*** 357,372 ****
        --  fail opening that downstream, we'll just bail out.
  
        declare
!          Argv0 : constant System.Address
!            := Conv.To_Pointer (Gnat_Argv) (0);
  
!          Resolved_Argv0 : constant System.Address
!            := locate_exec_on_path (Argv0);
  
!          Exe_Argv : constant System.Address
!            := (if Resolved_Argv0 /= System.Null_Address
!                then Resolved_Argv0
!                else Argv0);
  
           Result : constant String := Value (Exe_Argv);
  
--- 360,375 ----
        --  fail opening that downstream, we'll just bail out.
  
        declare
!          Argv0 : constant System.Address :=
!            Conv.To_Pointer (Gnat_Argv) (0);
  
!          Resolved_Argv0 : constant System.Address :=
!            locate_exec_on_path (Argv0, 0);
  
!          Exe_Argv : constant System.Address :=
!            (if Resolved_Argv0 /= System.Null_Address
!             then Resolved_Argv0
!             else Argv0);
  
           Result : constant String := Value (Exe_Argv);
  
*************** package body System.Traceback.Symbolic i
*** 637,650 ****
     -- Symbolic_Traceback --
     ------------------------
  
     function Symbolic_Traceback
       (Traceback    : Tracebacks_Array;
        Suppress_Hex : Boolean) return String
     is
!       Res : Bounded_String (Max_Length => Max_String_Length);
     begin
        System.Soft_Links.Lock_Task.all;
        Init_Exec_Module;
        Symbolic_Traceback_No_Lock (Traceback, Suppress_Hex, Res);
        System.Soft_Links.Unlock_Task.all;
  
--- 640,663 ----
     -- Symbolic_Traceback --
     ------------------------
  
+    LDAD_Header : constant String := "Load address: ";
+    --  Copied from Ada.Exceptions.Exception_Data
+ 
     function Symbolic_Traceback
       (Traceback    : Tracebacks_Array;
        Suppress_Hex : Boolean) return String
     is
!       Load_Address : constant Address := Get_Executable_Load_Address;
!       Res          : Bounded_String (Max_Length => Max_String_Length);
! 
     begin
        System.Soft_Links.Lock_Task.all;
        Init_Exec_Module;
+       if Load_Address /= Null_Address then
+          Append (Res, LDAD_Header);
+          Append_Address (Res, Load_Address);
+          Append (Res, ASCII.LF);
+       end if;
        Symbolic_Traceback_No_Lock (Traceback, Suppress_Hex, Res);
        System.Soft_Links.Unlock_Task.all;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-tsmona.adb gcc-15.1.0/gcc/ada/libgnat/s-tsmona.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-tsmona.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-tsmona.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-tsmona__linux.adb gcc-15.1.0/gcc/ada/libgnat/s-tsmona__linux.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-tsmona__linux.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-tsmona__linux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This is the GNU/Linux specific version of this package
! with Interfaces.C;              use Interfaces.C;
  
  separate (System.Traceback.Symbolic)
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This is the GNU/Linux specific version of this package
! 
! with Interfaces.C; use Interfaces.C;
  
  separate (System.Traceback.Symbolic)
  
*************** package body Module_Name is
*** 41,58 ****
     function Is_Shared_Lib (Base : Address) return Boolean;
     --  Returns True if a shared library
  
-    --  The principle is:
- 
-    --  1. We get information about the module containing the address.
- 
-    --  2. We check that the full pathname is pointing to a shared library.
- 
-    --  3. for shared libraries, we return the non relocated address (so
-    --     the absolute address in the shared library).
- 
-    --  4. we also return the full pathname of the module containing this
-    --     address.
- 
     -------------------
     -- Is_Shared_Lib --
     -------------------
--- 42,47 ----
*************** package body Module_Name is
*** 139,149 ****
     -- Get --
     ---------
  
!    function Get (Addr : System.Address;
!                  Load_Addr : access System.Address)
!      return String
!    is
  
        --  Dl_info record for Linux, used to get sym reloc offset
  
        type Dl_info is record
--- 128,149 ----
     -- Get --
     ---------
  
!    --  The principle is:
! 
!    --  1. We get information about the module containing the address.
! 
!    --  2. We check whether the module is a shared library.
! 
!    --  3. For shared libraries, we return the non-relocated address (so
!    --     the absolute address in the shared library).
! 
!    --  4. We also return the full pathname of the module containing this
!    --     address.
  
+    function Get
+      (Addr      : System.Address;
+       Load_Addr : access System.Address) return String
+    is
        --  Dl_info record for Linux, used to get sym reloc offset
  
        type Dl_info is record
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb gcc-15.1.0/gcc/ada/libgnat/s-tsmona__mingw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-tsmona__mingw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2025, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,37 ****
  
  --  This is the Windows specific version of this package
  
! with System.Win32; use System.Win32;
  
  separate (System.Traceback.Symbolic)
  
--- 31,38 ----
  
  --  This is the Windows specific version of this package
  
! with System.Storage_Elements; use System.Storage_Elements;
! with System.Win32;            use System.Win32;
  
  separate (System.Traceback.Symbolic)
  
*************** package body Module_Name is
*** 50,76 ****
     -- Get --
     ---------
  
!    function Get (Addr : System.Address;
!                  Load_Addr : access System.Address)
!      return String
     is
        Res     : DWORD;
        hModule : aliased HANDLE;
!       Path    : String (1 .. 1_024);
  
     begin
        Load_Addr.all := System.Null_Address;
  
        if GetModuleHandleEx
!            (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
              Addr,
              hModule'Access) = Win32.TRUE
        then
!          Res := GetModuleFileName (hModule, Path'Address, Path'Length);
  
!          if FreeLibrary (hModule) = Win32.FALSE then
!             null;
!          end if;
  
           if Res > 0 then
              return Path (1 .. Positive (Res));
--- 51,76 ----
     -- Get --
     ---------
  
!    function Get
!      (Addr      : System.Address;
!       Load_Addr : access System.Address) return String
     is
        Res     : DWORD;
        hModule : aliased HANDLE;
!       Path    : String (1 .. 1024);
  
     begin
        Load_Addr.all := System.Null_Address;
  
        if GetModuleHandleEx
!            (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS +
!               GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
              Addr,
              hModule'Access) = Win32.TRUE
        then
!          Load_Addr.all := To_Address (Integer_Address (hModule));
  
!          Res := GetModuleFileName (hModule, Path'Address, Path'Length);
  
           if Res > 0 then
              return Path (1 .. Positive (Res));
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-unstyp.ads gcc-15.1.0/gcc/ada/libgnat/s-unstyp.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-unstyp.ads	Thu Aug  1 08:17:13 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-unstyp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Unsigned_Types is
*** 45,50 ****
--- 45,52 ----
     type Long_Unsigned           is mod 2 ** Long_Integer'Size;
     type Long_Long_Unsigned      is mod 2 ** Long_Long_Integer'Size;
     type Long_Long_Long_Unsigned is mod Max_Binary_Modulus;
+    --  These are modular types that correspon in size to the standard signed
+    --  types declared in Standard.
  
     type Packed_Byte is mod 2 ** 8;
     for Packed_Byte'Size use 8;
*************** package System.Unsigned_Types is
*** 103,108 ****
--- 105,113 ----
     --  scalar storage order. But the Scalar_Storage_Order attribute cannot be
     --  set directly here, see Exp_Pakd for more details.
  
+    --  Various aligned arrays of bytes. Those types may be unused on limited
+    --  run-times, but are still present for compatibility between run-times.
+ 
     type Bits_1 is mod 2**1;
     type Bits_2 is mod 2**2;
     type Bits_4 is mod 2**4;
*************** package System.Unsigned_Types is
*** 230,235 ****
--- 235,242 ----
     function Rotate_Right
       (Value  : Long_Long_Long_Unsigned;
        Amount : Natural) return Long_Long_Long_Unsigned;
+    --  The shift and rotate primitives for the unsigned types are intrinsic,
+    --  fully implemented by the compiler.
  
     pragma Import (Intrinsic, Shift_Left);
     pragma Import (Intrinsic, Shift_Right);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-utf_32.adb gcc-15.1.0/gcc/ada/libgnat/s-utf_32.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-utf_32.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-utf_32.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-utf_32.ads gcc-15.1.0/gcc/ada/libgnat/s-utf_32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-utf_32.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-utf_32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vade128.ads gcc-15.1.0/gcc/ada/libgnat/s-vade128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vade128.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vade128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vade32.ads gcc-15.1.0/gcc/ada/libgnat/s-vade32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vade32.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vade32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vade64.ads gcc-15.1.0/gcc/ada/libgnat/s-vade64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vade64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vade64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vaen16.ads gcc-15.1.0/gcc/ada/libgnat/s-vaen16.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vaen16.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vaen16.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Val_Enum_16 is
*** 45,50 ****
--- 45,51 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Natural
       renames Impl.Value_Enumeration;
*************** package System.Val_Enum_16 is
*** 54,59 ****
--- 55,61 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Boolean
       renames Impl.Valid_Value_Enumeration;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vaen32.ads gcc-15.1.0/gcc/ada/libgnat/s-vaen32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vaen32.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vaen32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Val_Enum_32 is
*** 45,50 ****
--- 45,51 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Natural
       renames Impl.Value_Enumeration;
*************** package System.Val_Enum_32 is
*** 54,59 ****
--- 55,61 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Boolean
       renames Impl.Valid_Value_Enumeration;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vaenu8.ads gcc-15.1.0/gcc/ada/libgnat/s-vaenu8.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vaenu8.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vaenu8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Val_Enum_8 is
*** 45,50 ****
--- 45,51 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Natural
       renames Impl.Value_Enumeration;
*************** package System.Val_Enum_8 is
*** 54,59 ****
--- 55,61 ----
        Indexes : System.Address;
        Hash    : Impl.Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Boolean
       renames Impl.Valid_Value_Enumeration;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vafi128.ads gcc-15.1.0/gcc/ada/libgnat/s-vafi128.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vafi128.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vafi128.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vafi32.ads gcc-15.1.0/gcc/ada/libgnat/s-vafi32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vafi32.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vafi32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vafi64.ads gcc-15.1.0/gcc/ada/libgnat/s-vafi64.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vafi64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vafi64.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vaispe.adb gcc-15.1.0/gcc/ada/libgnat/s-vaispe.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-vaispe.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vaispe.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vaispe.ads gcc-15.1.0/gcc/ada/libgnat/s-vaispe.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vaispe.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vaispe.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the specification entities using for the formal
! --  verification of the routines for scanning signed integer values.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,38 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package is part of a set of Ghost code packages used to proof the
! --  implementations of the Image and Value attributes. It provides the
! --  specification entities using for the formal verification of the routines
! --  for scanning signed integer values.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valboo.adb gcc-15.1.0/gcc/ada/libgnat/s-valboo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valboo.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valboo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 53,59 ****
        S : String (Str'Range) := Str;
  
     begin
!       Normalize_String (S, F, L);
  
        pragma Assert (F = System.Val_Spec.First_Non_Space_Ghost
                       (S, Str'First, Str'Last));
--- 53,59 ----
        S : String (Str'Range) := Str;
  
     begin
!       Normalize_String (S, F, L, To_Upper_Case => True);
  
        pragma Assert (F = System.Val_Spec.First_Non_Space_Ghost
                       (S, Str'First, Str'Last));
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valboo.ads gcc-15.1.0/gcc/ada/libgnat/s-valboo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valboo.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valboo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valcha.adb gcc-15.1.0/gcc/ada/libgnat/s-valcha.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valcha.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valcha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Val_Char is
*** 43,49 ****
        S : String (Str'Range) := Str;
  
     begin
!       Normalize_String (S, F, L);
  
        --  Accept any single character enclosed in quotes
  
--- 43,51 ----
        S : String (Str'Range) := Str;
  
     begin
!       --  The names of control characters use upper case letters
! 
!       Normalize_String (S, F, L, To_Upper_Case => True);
  
        --  Accept any single character enclosed in quotes
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valcha.ads gcc-15.1.0/gcc/ada/libgnat/s-valcha.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valcha.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valcha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valflt.ads gcc-15.1.0/gcc/ada/libgnat/s-valflt.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valflt.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valflt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valint.adb gcc-15.1.0/gcc/ada/libgnat/s-valint.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valint.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valint.ads gcc-15.1.0/gcc/ada/libgnat/s-valint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valint.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vallfl.ads gcc-15.1.0/gcc/ada/libgnat/s-vallfl.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vallfl.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vallfl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valllf.ads gcc-15.1.0/gcc/ada/libgnat/s-valllf.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valllf.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valllf.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vallli.adb gcc-15.1.0/gcc/ada/libgnat/s-vallli.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-vallli.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vallli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vallli.ads gcc-15.1.0/gcc/ada/libgnat/s-vallli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vallli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vallli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valllli.ads gcc-15.1.0/gcc/ada/libgnat/s-valllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valllli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vallllu.ads gcc-15.1.0/gcc/ada/libgnat/s-vallllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vallllu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vallllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valllu.adb gcc-15.1.0/gcc/ada/libgnat/s-valllu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valllu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valllu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valllu.ads gcc-15.1.0/gcc/ada/libgnat/s-valllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valllu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valrea.adb gcc-15.1.0/gcc/ada/libgnat/s-valrea.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valrea.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valrea.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Val_Real is
*** 336,341 ****
--- 336,342 ----
        pragma Import (Ada, Powfive_300);
        for Powfive_300'Address use Powfive_300_Address;
  
+       H : Double_T;
        R : Double_T;
        E : Natural;
  
*************** package body System.Val_Real is
*** 359,366 ****
--- 360,374 ----
           E := Exp - Maxpow;
        end if;
  
+       --  Accumulate 5**Maxpow into R until E <= Maxpow or R saturates to +Inf
+ 
        while E > Maxpow loop
+          H := R;
           R := R * Powfive (Maxpow);
+          if R = H then
+             E := Maxpow;
+             exit;
+          end if;
           E := E - Maxpow;
        end loop;
  
*************** package body System.Val_Real is
*** 381,392 ****
--- 389,404 ----
        pragma Import (Ada, Powfive);
        for Powfive'Address use Powfive_Address;
  
+       H : Double_T;
        R : Double_T;
        E : Natural;
  
     begin
        pragma Assert (Exp > Maxexp);
  
+       --  This routine supports any type but it is not necessary to invoke it
+       --  for large types because the above one is sufficient for them.
+ 
        pragma Warnings (Off, "-gnatw.a");
        pragma Assert (not Is_Large_Type);
        pragma Warnings (On, "-gnatw.a");
*************** package body System.Val_Real is
*** 398,403 ****
--- 410,417 ----
        --  its final value does not overflow but, if it's too large, then do not
        --  bother doing it since overflow is just fine. The scaling factor is -3
        --  for every power of 5 above the maximum, in other words division by 8.
+       --  Note that Maxpow is an upper bound of the span of exponents for which
+       --  scaling is needed, but it's OK to apply it even if it is not needed.
  
        if Exp - Maxexp <= Maxpow then
           S := 3 * (Exp - Maxexp);
*************** package body System.Val_Real is
*** 407,414 ****
--- 421,435 ----
           S := 0;
        end if;
  
+       --  Accumulate 5**Maxpow into R until E <= Maxpow or R saturates to +Inf
+ 
        while E > Maxpow loop
+          H := R;
           R := R * Powfive (Maxpow);
+          if R = H then
+             E := Maxpow;
+             exit;
+          end if;
           E := E - Maxpow;
        end loop;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valrea.ads gcc-15.1.0/gcc/ada/libgnat/s-valrea.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valrea.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valrea.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valspe.adb gcc-15.1.0/gcc/ada/libgnat/s-valspe.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valspe.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valspe.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valspe.ads gcc-15.1.0/gcc/ada/libgnat/s-valspe.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valspe.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valspe.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package provides some common specification functions used by the
! --  s-valxxx files.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package is part of a set of Ghost code packages used to proof the
! --  implementations of the Image and Value attributes. It provides some common
! --  specification functions used by the s-valxxx files.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
*************** package System.Val_Spec with
*** 48,55 ****
    Pure,
    Ghost
  is
-    pragma Unevaluated_Use_Of_Old (Allow);
- 
     function Only_Space_Ghost (S : String; From, To : Integer) return Boolean is
        (for all J in From .. To => S (J) = ' ')
     with
--- 49,54 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valued.adb gcc-15.1.0/gcc/ada/libgnat/s-valued.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valued.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valued.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valued.ads gcc-15.1.0/gcc/ada/libgnat/s-valued.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valued.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valued.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuef.adb gcc-15.1.0/gcc/ada/libgnat/s-valuef.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuef.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuef.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuef.ads gcc-15.1.0/gcc/ada/libgnat/s-valuef.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuef.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuef.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuei.adb gcc-15.1.0/gcc/ada/libgnat/s-valuei.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuei.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuei.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuei.ads gcc-15.1.0/gcc/ada/libgnat/s-valuei.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuei.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuei.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuen.adb gcc-15.1.0/gcc/ada/libgnat/s-valuen.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuen.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuen.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Value_N is
*** 40,45 ****
--- 40,46 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Integer with Pure_Function;
     --  Same as Value_Enumeration, except returns negative if Value_Enumeration
*************** package body System.Value_N is
*** 54,59 ****
--- 55,61 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Integer
     is
*************** package body System.Value_N is
*** 76,82 ****
        pragma Assert (Num + 1 in IndexesT'Range);
  
     begin
!       Normalize_String (S, F, L);
  
        declare
           Normal : String renames S (F .. L);
--- 78,84 ----
        pragma Assert (Num + 1 in IndexesT'Range);
  
     begin
!       Normalize_String (S, F, L, To_Upper_Case => not Is_Wide);
  
        declare
           Normal : String renames S (F .. L);
*************** package body System.Value_N is
*** 120,130 ****
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
        Str     : String)
        return    Boolean
     is
     begin
!       return Value_Enumeration_Pos (Names, Indexes, Hash, Num, Str) >= 0;
     end Valid_Value_Enumeration;
  
     -----------------------
--- 122,134 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Boolean
     is
     begin
!       return
!         Value_Enumeration_Pos (Names, Indexes, Hash, Num, Is_Wide, Str) >= 0;
     end Valid_Value_Enumeration;
  
     -----------------------
*************** package body System.Value_N is
*** 136,146 ****
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
        Str     : String)
        return    Natural
     is
        Result : constant Integer :=
!         Value_Enumeration_Pos (Names, Indexes, Hash, Num, Str);
  
     begin
        --  The comparison eliminates the need for a range check on return
--- 140,151 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Natural
     is
        Result : constant Integer :=
!         Value_Enumeration_Pos (Names, Indexes, Hash, Num, Is_Wide, Str);
  
     begin
        --  The comparison eliminates the need for a range check on return
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuen.ads gcc-15.1.0/gcc/ada/libgnat/s-valuen.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuen.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuen.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Value_N is
*** 47,52 ****
--- 47,53 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Natural with Inline;
     --  Used to compute Enum'Value (Str) where Enum is some enumeration type
*************** package System.Value_N is
*** 60,66 ****
     --  The parameter Hash is a (perfect) hash function for Names and Indexes.
     --  The parameter Num is the value N - 1 (i.e. Enum'Pos (Enum'Last)).
     --  The reason that Indexes is passed by address is that the actual type
!    --  is created on the fly by the expander.
     --
     --  Str is the argument of the attribute function, and may have leading
     --  and trailing spaces, and letters can be upper or lower case or mixed.
--- 61,68 ----
     --  The parameter Hash is a (perfect) hash function for Names and Indexes.
     --  The parameter Num is the value N - 1 (i.e. Enum'Pos (Enum'Last)).
     --  The reason that Indexes is passed by address is that the actual type
!    --  is created on the fly by the expander. The parameter Is_Wide is True
!    --  if the original attribute was [Wide_]Wide_Value.
     --
     --  Str is the argument of the attribute function, and may have leading
     --  and trailing spaces, and letters can be upper or lower case or mixed.
*************** package System.Value_N is
*** 72,77 ****
--- 74,80 ----
        Indexes : System.Address;
        Hash    : Hash_Function_Ptr;
        Num     : Natural;
+       Is_Wide : Boolean;
        Str     : String)
        return    Boolean with Inline;
     --  Returns True if Str is a valid Image of some enumeration literal, False
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuer.adb gcc-15.1.0/gcc/ada/libgnat/s-valuer.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuer.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuer.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Value_R is
*** 585,591 ****
             (Str, Index, Max, Base, False, Value, Scale, N,
              Char_As_Digit (Extra), Base_Violation);
  
!       --  A dot is allowed only if followed by a digit (RM 3.5(47))
  
        elsif Str (Index) = '.'
          and then Index < Max
--- 585,591 ----
             (Str, Index, Max, Base, False, Value, Scale, N,
              Char_As_Digit (Extra), Base_Violation);
  
!       --  A dot is allowed only if followed by a digit (RM 3.5(39.8))
  
        elsif Str (Index) = '.'
          and then Index < Max
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuer.ads gcc-15.1.0/gcc/ada/libgnat/s-valuer.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuer.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuer.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valueu.adb gcc-15.1.0/gcc/ada/libgnat/s-valueu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valueu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valueu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valueu.ads gcc-15.1.0/gcc/ada/libgnat/s-valueu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valueu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valueu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuns.adb gcc-15.1.0/gcc/ada/libgnat/s-valuns.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuns.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuns.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuns.ads gcc-15.1.0/gcc/ada/libgnat/s-valuns.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuns.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuns.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuti.adb gcc-15.1.0/gcc/ada/libgnat/s-valuti.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valuti.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuti.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 67,74 ****
     ----------------------
  
     procedure Normalize_String
!      (S    : in out String;
!       F, L : out Integer)
     is
     begin
        F := S'First;
--- 67,75 ----
     ----------------------
  
     procedure Normalize_String
!      (S             : in out String;
!       F, L          : out Integer;
!       To_Upper_Case : Boolean)
     is
     begin
        F := S'First;
*************** is
*** 106,114 ****
           L := L - 1;
        end loop;
  
!       --  Except in the case of a character literal, convert to upper case
  
!       if S (F) /= ''' then
           for J in F .. L loop
              S (J) := To_Upper (S (J));
              pragma Loop_Invariant
--- 107,115 ----
           L := L - 1;
        end loop;
  
!       --  Convert to upper case if requested and not a character literal
  
!       if To_Upper_Case and then S (F) /= ''' then
           for J in F .. L loop
              S (J) := To_Upper (S (J));
              pragma Loop_Invariant
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valuti.ads gcc-15.1.0/gcc/ada/libgnat/s-valuti.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valuti.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valuti.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 54,67 ****
  
     procedure Bad_Value (S : String)
     with
       Depends => (null => S),
       Exceptional_Cases => (others => Standard.False);
     pragma No_Return (Bad_Value);
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
     procedure Normalize_String
!      (S    : in out String;
!       F, L : out Integer)
     with
       Post => (if Sp.Only_Space_Ghost (S'Old, S'First, S'Last) then
                  F > L
--- 54,69 ----
  
     procedure Bad_Value (S : String)
     with
+      Always_Terminates,
       Depends => (null => S),
       Exceptional_Cases => (others => Standard.False);
     pragma No_Return (Bad_Value);
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
     procedure Normalize_String
!      (S             : in out String;
!       F, L          : out Integer;
!       To_Upper_Case : Boolean)
     with
       Post => (if Sp.Only_Space_Ghost (S'Old, S'First, S'Last) then
                  F > L
*************** is
*** 76,82 ****
                      (if L < S'Last then
                        Sp.Only_Space_Ghost (S'Old, L + 1, S'Last))
                    and then
!                     (if S'Old (F) /= ''' then
                        (for all J in S'Range =>
                          (if J in F .. L then
                             S (J) = System.Case_Util.To_Upper (S'Old (J))
--- 78,84 ----
                      (if L < S'Last then
                        Sp.Only_Space_Ghost (S'Old, L + 1, S'Last))
                    and then
!                     (if To_Upper_Case and then S'Old (F) /= ''' then
                        (for all J in S'Range =>
                          (if J in F .. L then
                             S (J) = System.Case_Util.To_Upper (S'Old (J))
*************** is
*** 84,92 ****
                             S (J) = S'Old (J)))));
     --  This procedure scans the string S setting F to be the index of the first
     --  non-blank character of S and L to be the index of the last non-blank
!    --  character of S. Any lower case characters present in S will be folded to
!    --  their upper case equivalent except for character literals. If S consists
!    --  of entirely blanks (including when S = "") then we return with F > L.
  
     procedure Scan_Sign
       (Str   : String;
--- 86,95 ----
                             S (J) = S'Old (J)))));
     --  This procedure scans the string S setting F to be the index of the first
     --  non-blank character of S and L to be the index of the last non-blank
!    --  character of S. If To_Upper_Case is True and S does not represent a
!    --  character literal, then any lower case characters in S are changed to
!    --  their upper case counterparts. If S consists of only blank characters
!    --  (including when S = "") then we return with F > L.
  
     procedure Scan_Sign
       (Str   : String;
*************** is
*** 118,130 ****
     --  string to be scanned starting at Ptr.all, and Max is the index of the
     --  last character in the string). Scan_Sign first scans out any initial
     --  blanks, raising Constraint_Error if the field is all blank. It then
!    --  checks for and skips an initial plus or minus, requiring a non-blank
!    --  character to follow (Constraint_Error is raised if plus or minus appears
!    --  at the end of the string or with a following blank). Minus is set True
!    --  if a minus sign was skipped, and False otherwise. On exit Ptr.all points
!    --  to the character after the sign, or to the first non-blank character
!    --  if no sign is present. Start is set to the point to the first non-blank
!    --  character (sign or digit after it).
     --
     --  Note: if Str is null, i.e. if Max is less than Ptr, then this is a
     --  special case of an all-blank string, and Ptr is unchanged, and hence
--- 121,132 ----
     --  string to be scanned starting at Ptr.all, and Max is the index of the
     --  last character in the string). Scan_Sign first scans out any initial
     --  blanks, raising Constraint_Error if the field is all blank. It then
!    --  checks for and skips an initial plus or minus (Constraint_Error is
!    --  raised if plus or minus appears at the end of the string). Minus is set
!    --  True if a minus sign was skipped, and False otherwise. On exit Ptr.all
!    --  points to the character after the sign, or to the first non-blank
!    --  character if no sign is present. Start is set to the point to the first
!    --  non-blank character.
     --
     --  Note: if Str is null, i.e. if Max is less than Ptr, then this is a
     --  special case of an all-blank string, and Ptr is unchanged, and hence
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valwch.adb gcc-15.1.0/gcc/ada/libgnat/s-valwch.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-valwch.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valwch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Val_WChar is
*** 67,73 ****
        S : String (Str'Range) := Str;
  
     begin
!       Normalize_String (S, F, L);
  
        --  Character literal case
  
--- 67,73 ----
        S : String (Str'Range) := Str;
  
     begin
!       Normalize_String (S, F, L, To_Upper_Case => False);
  
        --  Character literal case
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-valwch.ads gcc-15.1.0/gcc/ada/libgnat/s-valwch.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-valwch.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-valwch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vauspe.adb gcc-15.1.0/gcc/ada/libgnat/s-vauspe.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-vauspe.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vauspe.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vauspe.ads gcc-15.1.0/gcc/ada/libgnat/s-vauspe.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vauspe.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vauspe.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the specification entities using for the formal
! --  verification of the routines for scanning modular Unsigned values.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 29,38 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package is part of a set of Ghost code packages used to proof the
! --  implementations of the Image and Value attributes. It provides the
! --  specification entities using for the formal verification of the routines
! --  for scanning modular unsigned integer values.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-veboop.adb gcc-15.1.0/gcc/ada/libgnat/s-veboop.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-veboop.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-veboop.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-veboop.ads gcc-15.1.0/gcc/ada/libgnat/s-veboop.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-veboop.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-veboop.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 103,118 ****
         and then (for all J in 1 .. Vector_Boolean_Size =>
                     Model ("not"'Result) (J) = not Model (Item) (J));
  
-    --  The three boolean operations "nand", "nor" and "nxor" are needed
-    --  for cases where the compiler moves boolean array operations into
-    --  the body of the loop that iterates over the array elements.
- 
-    --  Note the following equivalences:
-    --    (not X) or  (not Y)  =  not (X and Y)  =  Nand (X, Y)
-    --    (not X) and (not Y)  =  not (X or Y)   =  Nor  (X, Y)
-    --    (not X) xor (not Y)  =  X xor Y
-    --    X       xor (not Y)  =  not (X xor Y)  =  Nxor (X, Y)
- 
     function Nand (Left, Right : Boolean) return Boolean
     with
       Post => Nand'Result = not (Left and Right);
--- 103,108 ----
*************** is
*** 151,156 ****
--- 141,155 ----
         and then (for all J in 1 .. Vector_Boolean_Size =>
                     Model (Nxor'Result) (J) =
                       Nxor (Model (Left) (J), Model (Right) (J)));
+    --  The three boolean operations "nand", "nor" and "nxor" are needed
+    --  for cases where the compiler moves boolean array operations into
+    --  the body of the loop that iterates over the array elements.
+    --
+    --  Note the following equivalences:
+    --    (not X) or  (not Y)  =  not (X and Y)  =  Nand (X, Y)
+    --    (not X) and (not Y)  =  not (X or Y)   =  Nor  (X, Y)
+    --    (not X) xor (not Y)  =  X xor Y
+    --    X       xor (not Y)  =  not (X xor Y)  =  Nxor (X, Y)
  
     pragma Inline_Always ("not");
     pragma Inline_Always (Nand);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vector.ads gcc-15.1.0/gcc/ada/libgnat/s-vector.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vector.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vector.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package defines a datatype which is most efficient for performing
! --  logical operations on large arrays. See System.Generic_Vector_Operations.
  
  --  In the future this package may also define operations such as element-wise
  --  addition, subtraction, multiplication, minimum and maximum of vector-sized
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package defines a datatype which is most efficient for performing
! --  logical operations on large arrays. See
! --  :ref:`System.Generic_Vector_Operations`.
  
  --  In the future this package may also define operations such as element-wise
  --  addition, subtraction, multiplication, minimum and maximum of vector-sized
*************** package System.Vectors is
*** 45,49 ****
--- 46,52 ----
     for Vector'Alignment use Integer'Min
       (Standard'Maximum_Alignment, System.Word_Size / System.Storage_Unit);
     for Vector'Size use System.Word_Size;
+    --  The *Vector* type uses an alignment that allows translating it into
+    --  words.
  
  end System.Vectors;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vercon.adb gcc-15.1.0/gcc/ada/libgnat/s-vercon.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-vercon.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vercon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vercon.ads gcc-15.1.0/gcc/ada/libgnat/s-vercon.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vercon.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vercon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vs_int.ads gcc-15.1.0/gcc/ada/libgnat/s-vs_int.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vs_int.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vs_int.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning signed Integer
! --  values for use in Text_IO.Integer_IO, and the Value attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning signed Integer
! --  values for use in ``Text_IO.Integer_IO``, and the Value attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vs_lli.ads gcc-15.1.0/gcc/ada/libgnat/s-vs_lli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vs_lli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vs_lli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  Long_Long_Integer values for use in Text_IO.Integer_IO, and the Value
  --  attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  Long_Long_Integer values for use in ``Text_IO.Integer_IO``, and the Value
  --  attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vs_llu.ads gcc-15.1.0/gcc/ada/libgnat/s-vs_llu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vs_llu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vs_llu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  Long_Long_Unsigned values for use in Text_IO.Modular_IO, and the Value
  --  attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  Long_Long_Unsigned values for use in ``Text_IO.Modular_IO``, and the Value
  --  attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vs_uns.ads gcc-15.1.0/gcc/ada/libgnat/s-vs_uns.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vs_uns.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vs_uns.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,36 ****
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning modular Unsigned
! --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning modular Unsigned
! --  values for use in ``Text_IO.Modular_IO``, and the Value attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vsllli.ads gcc-15.1.0/gcc/ada/libgnat/s-vsllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vsllli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vsllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  Long_Long_Long_Integer values for use in Text_IO.Integer_IO, and the Value
! --  attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package contains specification functions for scanning
! --  ``Long_Long_Long_Integer`` values for use in ``Text_IO.Integer_IO``, and
! --  the Value attribute.
  
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-vslllu.ads gcc-15.1.0/gcc/ada/libgnat/s-vslllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-vslllu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-vslllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchcnv.adb gcc-15.1.0/gcc/ada/libgnat/s-wchcnv.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wchcnv.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchcnv.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchcnv.ads gcc-15.1.0/gcc/ada/libgnat/s-wchcnv.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wchcnv.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchcnv.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchcon.adb gcc-15.1.0/gcc/ada/libgnat/s-wchcon.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wchcon.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchcon.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchcon.ads gcc-15.1.0/gcc/ada/libgnat/s-wchcon.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wchcon.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchcon.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchjis.adb gcc-15.1.0/gcc/ada/libgnat/s-wchjis.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wchjis.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchjis.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchjis.ads gcc-15.1.0/gcc/ada/libgnat/s-wchjis.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wchjis.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchjis.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchstw.adb gcc-15.1.0/gcc/ada/libgnat/s-wchstw.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wchstw.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchstw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchstw.ads gcc-15.1.0/gcc/ada/libgnat/s-wchstw.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wchstw.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchstw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchwts.adb gcc-15.1.0/gcc/ada/libgnat/s-wchwts.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wchwts.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchwts.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.WCh_Con; use System.WCh_Con;
! with System.WCh_Cnv; use System.WCh_Cnv;
  
  package body System.WCh_WtS is
  
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Case_Util; use System.Case_Util;
! with System.WCh_Con;   use System.WCh_Con;
! with System.WCh_Cnv;   use System.WCh_Cnv;
  
  package body System.WCh_WtS is
  
*************** package body System.WCh_WtS is
*** 38,43 ****
--- 39,52 ----
     -- Local Subprograms --
     -----------------------
  
+    procedure Normalize_String
+      (S  : in out String;
+       EM : WC_Encoding_Method);
+    --  If S does not represent a character literal, then any lower case
+    --  characters in S are changed to their upper case counterparts, while
+    --  wide characters are unchanged. EM indicates their encoding method.
+    --  This is the wide counterpart of System.Val_Util.Normalize_String.
+ 
     procedure Store_UTF_32_Character
       (U  : UTF_32_Code;
        S  : out String;
*************** package body System.WCh_WtS is
*** 48,53 ****
--- 57,169 ----
     --  point to the last character stored. Raises CE if character cannot be
     --  stored using the given encoding method.
  
+    ----------------------
+    -- Normalize_String --
+    ----------------------
+ 
+    procedure Normalize_String
+      (S  : in out String;
+       EM : WC_Encoding_Method)
+    is
+       procedure Skip_Wide (S : String; P : in out Natural);
+       --  On entry S (P) points to an ESC character for a wide character escape
+       --  sequence or an upper half character if the encoding method uses the
+       --  upper bit, or a left bracket if the brackets encoding method is in
+       --  use. On exit, P is bumped past the wide character sequence.
+ 
+       ---------------
+       -- Skip_Wide --
+       ---------------
+ 
+       procedure Skip_Wide (S : String; P : in out Natural) is
+          function Skip_Char return Character;
+          --  Function to skip one character of wide character escape sequence
+ 
+          ---------------
+          -- Skip_Char --
+          ---------------
+ 
+          function Skip_Char return Character is
+          begin
+             P := P + 1;
+             return S (P - 1);
+          end Skip_Char;
+ 
+          function WC_Skip is new Char_Sequence_To_UTF_32 (Skip_Char);
+ 
+          Discard : UTF_32_Code;
+          pragma Warnings (Off, Discard);
+ 
+       --  Start of processing for Skip_Wide
+ 
+       begin
+          --  Capture invalid wide characters errors since we are going to
+          --  discard the result anyway. We just want to move past it.
+ 
+          begin
+             Discard := WC_Skip (Skip_Char, EM);
+          exception
+             when Constraint_Error =>
+                null;
+          end;
+       end Skip_Wide;
+ 
+       F, L, Ptr : Natural;
+ 
+    begin
+       F := S'First;
+       L := S'Last;
+ 
+       --  Case of empty string
+ 
+       if F > L then
+          return;
+       end if;
+ 
+       --  Scan for leading spaces
+ 
+       while F < L and then S (F) = ' ' loop
+          F := F + 1;
+       end loop;
+ 
+       --  Case of no nonspace characters found. Decrease L to ensure L < F
+       --  without risking an overflow if F is Integer'Last.
+ 
+       if S (F) = ' ' then
+          L := L - 1;
+          return;
+       end if;
+ 
+       --  Scan for trailing spaces
+ 
+       while S (L) = ' ' loop
+          L := L - 1;
+       end loop;
+ 
+       --  Convert to upper case if S is not a character literal
+ 
+       if S (F) /= ''' then
+          Ptr := F;
+ 
+          while Ptr <= L loop
+             --  This mimics the handling of wide characters in a call to
+             --  Casing.Set_Casing (All_Upper_Case) in the compiler.
+ 
+             if S (Ptr) = ASCII.ESC
+               or else S (Ptr) = '['
+               or else (EM in WC_Upper_Half_Encoding_Method
+                          and then Character'Pos (S (Ptr)) >= 16#80#)
+             then
+                Skip_Wide (S, Ptr);
+ 
+             else
+                S (Ptr) := To_Upper (S (Ptr));
+                Ptr := Ptr + 1;
+             end if;
+          end loop;
+       end if;
+    end Normalize_String;
+ 
     ----------------------------
     -- Store_UTF_32_Character --
     ----------------------------
*************** package body System.WCh_WtS is
*** 78,83 ****
--- 194,229 ----
        Store_Chars (U, EM);
     end Store_UTF_32_Character;
  
+    --------------------------------
+    -- Enum_Wide_String_To_String --
+    --------------------------------
+ 
+    function Enum_Wide_String_To_String
+      (S  : Wide_String;
+       EM : WC_Encoding_Method) return String
+    is
+       Result : String := Wide_String_To_String (S, EM);
+ 
+    begin
+       Normalize_String (Result, EM);
+       return Result;
+    end Enum_Wide_String_To_String;
+ 
+    -------------------------------------
+    -- Enum_Wide_Wide_String_To_String --
+    -------------------------------------
+ 
+    function Enum_Wide_Wide_String_To_String
+      (S  : Wide_Wide_String;
+       EM : WC_Encoding_Method) return String
+    is
+       Result : String := Wide_Wide_String_To_String (S, EM);
+ 
+    begin
+       Normalize_String (Result, EM);
+       return Result;
+    end Enum_Wide_Wide_String_To_String;
+ 
     ---------------------------
     -- Wide_String_To_String --
     ---------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wchwts.ads gcc-15.1.0/gcc/ada/libgnat/s-wchwts.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wchwts.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wchwts.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.WCh_WtS is
*** 55,63 ****
--- 55,75 ----
     --  for characters greater than 16#FF#. The lowest index of the returned
     --  String is equal to S'First.
  
+    function Enum_Wide_String_To_String
+      (S  : Wide_String;
+       EM : System.WCh_Con.WC_Encoding_Method) return String;
+    --  Same processing, except that the string is normalized to be usable
+    --  with the Wide_Value attribute of user-defined enumeration types.
+ 
     function Wide_Wide_String_To_String
       (S  : Wide_Wide_String;
        EM : System.WCh_Con.WC_Encoding_Method) return String;
     --  Same processing, except for Wide_Wide_String
  
+    function Enum_Wide_Wide_String_To_String
+      (S  : Wide_Wide_String;
+       EM : System.WCh_Con.WC_Encoding_Method) return String;
+    --  Same processing, except that the string is normalized to be usable
+    --  with the Wide_Wide_Value attribute of user-defined enumeration types.
+ 
  end System.WCh_WtS;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widboo.adb gcc-15.1.0/gcc/ada/libgnat/s-widboo.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widboo.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widboo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widboo.ads gcc-15.1.0/gcc/ada/libgnat/s-widboo.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widboo.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widboo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widcha.adb gcc-15.1.0/gcc/ada/libgnat/s-widcha.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widcha.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widcha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widcha.ads gcc-15.1.0/gcc/ada/libgnat/s-widcha.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widcha.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widcha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widenu.adb gcc-15.1.0/gcc/ada/libgnat/s-widenu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widenu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widenu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widenu.ads gcc-15.1.0/gcc/ada/libgnat/s-widenu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widenu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widenu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widint.ads gcc-15.1.0/gcc/ada/libgnat/s-widint.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widint.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widlli.adb gcc-15.1.0/gcc/ada/libgnat/s-widlli.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widlli.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widlli.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widlli.ads gcc-15.1.0/gcc/ada/libgnat/s-widlli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widlli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widlli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widllli.ads gcc-15.1.0/gcc/ada/libgnat/s-widllli.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widllli.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widllli.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widlllu.ads gcc-15.1.0/gcc/ada/libgnat/s-widlllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widlllu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widlllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widllu.adb gcc-15.1.0/gcc/ada/libgnat/s-widllu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widllu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widllu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widllu.ads gcc-15.1.0/gcc/ada/libgnat/s-widllu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widllu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widllu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widthi.adb gcc-15.1.0/gcc/ada/libgnat/s-widthi.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widthi.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widthi.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** function System.Width_I (Lo, Hi : Int) r
*** 126,133 ****
  
     Pow    : Big_Integer := 1 with Ghost;
     T_Init : constant Int :=
!      Int'Max (abs (Int'Max (Lo, Int'First + 1)),
!               abs (Int'Max (Hi, Int'First + 1)))
       with Ghost;
  
  --  Start of processing for System.Width_I
--- 126,133 ----
  
     Pow    : Big_Integer := 1 with Ghost;
     T_Init : constant Int :=
!      Int'Max (abs Int'Max (Lo, Int'First + 1),
!               abs Int'Max (Hi, Int'First + 1))
       with Ghost;
  
  --  Start of processing for System.Width_I
*************** begin
*** 145,152 ****
        --  negative number (note that First + 1 has same digits as First)
  
        T := Int'Max (
!              abs (Int'Max (Lo, Int'First + 1)),
!              abs (Int'Max (Hi, Int'First + 1)));
  
        --  Increase value if more digits required
  
--- 145,152 ----
        --  negative number (note that First + 1 has same digits as First)
  
        T := Int'Max (
!              abs Int'Max (Lo, Int'First + 1),
!              abs Int'Max (Hi, Int'First + 1));
  
        --  Increase value if more digits required
  
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widthi.ads gcc-15.1.0/gcc/ada/libgnat/s-widthi.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widthi.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widthi.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widthu.adb gcc-15.1.0/gcc/ada/libgnat/s-widthu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widthu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widthu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widthu.ads gcc-15.1.0/gcc/ada/libgnat/s-widthu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widthu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widthu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widuns.ads gcc-15.1.0/gcc/ada/libgnat/s-widuns.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widuns.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widuns.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widwch.adb gcc-15.1.0/gcc/ada/libgnat/s-widwch.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-widwch.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widwch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-widwch.ads gcc-15.1.0/gcc/ada/libgnat/s-widwch.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-widwch.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-widwch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-win32.ads gcc-15.1.0/gcc/ada/libgnat/s-win32.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-win32.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-win32.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Win32 is
*** 157,163 ****
     FILE_ATTRIBUTE_VALID_FLAGS         : constant := 16#00007fb7#;
     FILE_ATTRIBUTE_VALID_SET_FLAGS     : constant := 16#000031a7#;
  
!    GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS : constant := 16#00000004#;
  
     type OVERLAPPED is record
        Internal     : access ULONG;
--- 157,164 ----
     FILE_ATTRIBUTE_VALID_FLAGS         : constant := 16#00007fb7#;
     FILE_ATTRIBUTE_VALID_SET_FLAGS     : constant := 16#000031a7#;
  
!    GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS       : constant := 16#04#;
!    GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT : constant := 16#02#;
  
     type OVERLAPPED is record
        Internal     : access ULONG;
*************** package System.Win32 is
*** 315,322 ****
     pragma Import (Stdcall, FileTimeToLocalFileTime, "FileTimeToLocalFileTime");
  
     function LocalFileTimeToFileTime
!      (lpFileTime      : access Long_Long_Integer;
!       lpLocalFileTime : access Long_Long_Integer) return BOOL;
     pragma Import (Stdcall, LocalFileTimeToFileTime, "LocalFileTimeToFileTime");
  
     procedure Sleep (dwMilliseconds : DWORD);
--- 316,323 ----
     pragma Import (Stdcall, FileTimeToLocalFileTime, "FileTimeToLocalFileTime");
  
     function LocalFileTimeToFileTime
!      (lpLocalFileTime : access Long_Long_Integer;
!       lpFileTime      : access Long_Long_Integer) return BOOL;
     pragma Import (Stdcall, LocalFileTimeToFileTime, "LocalFileTimeToFileTime");
  
     procedure Sleep (dwMilliseconds : DWORD);
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-winext.ads gcc-15.1.0/gcc/ada/libgnat/s-winext.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-winext.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-winext.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Win32.Ext is
*** 55,61 ****
  
     function SetThreadAffinityMask
       (hThread              : HANDLE;
!       dwThreadAffinityMask : DWORD) return DWORD;
     pragma Import (Stdcall, SetThreadAffinityMask, "SetThreadAffinityMask");
  
     --------------
--- 55,61 ----
  
     function SetThreadAffinityMask
       (hThread              : HANDLE;
!       dwThreadAffinityMask : DWORD) return DWORD_PTR;
     pragma Import (Stdcall, SetThreadAffinityMask, "SetThreadAffinityMask");
  
     --------------
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdcha.adb gcc-15.1.0/gcc/ada/libgnat/s-wwdcha.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdcha.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdcha.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdcha.ads gcc-15.1.0/gcc/ada/libgnat/s-wwdcha.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdcha.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdcha.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdenu.adb gcc-15.1.0/gcc/ada/libgnat/s-wwdenu.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdenu.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdenu.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdenu.ads gcc-15.1.0/gcc/ada/libgnat/s-wwdenu.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdenu.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdenu.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdwch.adb gcc-15.1.0/gcc/ada/libgnat/s-wwdwch.adb
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdwch.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdwch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/s-wwdwch.ads gcc-15.1.0/gcc/ada/libgnat/s-wwdwch.ads
*** gcc-14.2.0/gcc/ada/libgnat/s-wwdwch.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/s-wwdwch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-aix.ads gcc-15.1.0/gcc/ada/libgnat/system-aix.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-aix.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-aix.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (AIX/PPC Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (AIX/PPC Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-darwin-arm.ads gcc-15.1.0/gcc/ada/libgnat/system-darwin-arm.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-darwin-arm.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-darwin-arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/ARM Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/ARM Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-darwin-ppc.ads gcc-15.1.0/gcc/ada/libgnat/system-darwin-ppc.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-darwin-ppc.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-darwin-ppc.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/PPC Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/PPC Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-darwin-x86.ads gcc-15.1.0/gcc/ada/libgnat/system-darwin-x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-darwin-x86.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-darwin-x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/x86 Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/x86 Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-djgpp.ads gcc-15.1.0/gcc/ada/libgnat/system-djgpp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-djgpp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-djgpp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (DJGPP Version)                               --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (DJGPP Version)                               --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads gcc-15.1.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (DragonFly BSD/x86_64 Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (DragonFly BSD/x86_64 Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-freebsd.ads gcc-15.1.0/gcc/ada/libgnat/system-freebsd.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-freebsd.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-freebsd.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (FreeBSD Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (FreeBSD Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-gnu.ads gcc-15.1.0/gcc/ada/libgnat/system-gnu.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-gnu.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/libgnat/system-gnu.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,148 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                        GNAT RUN-TIME COMPONENTS                          --
+ --                                                                          --
+ --                               S Y S T E M                                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                           (GNU/hurd Version)                             --
+ --                                                                          --
+ --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- This specification is derived from the Ada Reference Manual for use with --
+ -- GNAT. The copyright notice above, and the license provisions that follow --
+ -- apply solely to the  contents of the part following the private keyword. --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package System is
+    pragma Pure;
+    --  Note that we take advantage of the implementation permission to make
+    --  this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
+    --  2005, this is Pure in any case (AI-362).
+ 
+    pragma No_Elaboration_Code_All;
+    --  Allow the use of that restriction in units that WITH this unit
+ 
+    type Name is (SYSTEM_NAME_GNAT);
+    System_Name : constant Name := SYSTEM_NAME_GNAT;
+ 
+    --  System-Dependent Named Numbers
+ 
+    Min_Int             : constant := -2 ** (Standard'Max_Integer_Size - 1);
+    Max_Int             : constant :=  2 ** (Standard'Max_Integer_Size - 1) - 1;
+ 
+    Max_Binary_Modulus    : constant := 2 ** Standard'Max_Integer_Size;
+    Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
+ 
+    Max_Base_Digits       : constant := Long_Long_Float'Digits;
+    Max_Digits            : constant := Long_Long_Float'Digits;
+ 
+    Max_Mantissa          : constant := Standard'Max_Integer_Size - 1;
+    Fine_Delta            : constant := 2.0 ** (-Max_Mantissa);
+ 
+    Tick                  : constant := 0.000_001;
+ 
+    --  Storage-related Declarations
+ 
+    type Address is private;
+    pragma Preelaborable_Initialization (Address);
+    Null_Address : constant Address;
+ 
+    Storage_Unit : constant := 8;
+    Word_Size    : constant := Standard'Word_Size;
+    Memory_Size  : constant := 2 ** Word_Size;
+ 
+    --  Address comparison
+ 
+    function "<"  (Left, Right : Address) return Boolean;
+    function "<=" (Left, Right : Address) return Boolean;
+    function ">"  (Left, Right : Address) return Boolean;
+    function ">=" (Left, Right : Address) return Boolean;
+    function "="  (Left, Right : Address) return Boolean;
+ 
+    pragma Import (Intrinsic, "<");
+    pragma Import (Intrinsic, "<=");
+    pragma Import (Intrinsic, ">");
+    pragma Import (Intrinsic, ">=");
+    pragma Import (Intrinsic, "=");
+ 
+    --  Other System-Dependent Declarations
+ 
+    type Bit_Order is (High_Order_First, Low_Order_First);
+    Default_Bit_Order : constant Bit_Order :=
+                        Bit_Order'Val (Standard'Default_Bit_Order);
+    pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
+ 
+    --  Priority-related Declarations (RM D.1)
+ 
+    Max_Priority           : constant Positive := 60;
+    Max_Interrupt_Priority : constant Positive := 63;
+ 
+    subtype Any_Priority       is Integer      range  0 .. 63;
+    subtype Priority           is Any_Priority range  0 .. 60;
+    subtype Interrupt_Priority is Any_Priority range 63 .. 63;
+ 
+    Default_Priority : constant Priority := 25;
+ 
+ private
+ 
+    type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
+    Null_Address : constant Address := 0;
+ 
+    --------------------------------------
+    -- System Implementation Parameters --
+    --------------------------------------
+ 
+    --  These parameters provide information about the target that is used
+    --  by the compiler. They are in the private part of System, where they
+    --  can be accessed using the special circuitry in the Targparm unit
+    --  whose source should be consulted for more detailed descriptions
+    --  of the individual switch values.
+ 
+    Backend_Divide_Checks     : constant Boolean := False;
+    Backend_Overflow_Checks   : constant Boolean := True;
+    Command_Line_Args         : constant Boolean := True;
+    Configurable_Run_Time     : constant Boolean := False;
+    Denorm                    : constant Boolean := True;
+    Duration_32_Bits          : constant Boolean := False;
+    Exit_Status_Supported     : constant Boolean := True;
+    Machine_Overflows         : constant Boolean := False;
+    Machine_Rounds            : constant Boolean := True;
+    Preallocated_Stacks       : constant Boolean := False;
+    Signed_Zeros              : constant Boolean := True;
+    Stack_Check_Default       : constant Boolean := False;
+    Stack_Check_Probes        : constant Boolean := True;
+    Stack_Check_Limits        : constant Boolean := False;
+    Support_Aggregates        : constant Boolean := True;
+    Support_Atomic_Primitives : constant Boolean := True;
+    Support_Composite_Assign  : constant Boolean := True;
+    Support_Composite_Compare : constant Boolean := True;
+    Support_Long_Shifts       : constant Boolean := True;
+    Always_Compatible_Rep     : constant Boolean := False;
+    Suppress_Standard_Library : constant Boolean := False;
+    Use_Ada_Main_Program_Name : constant Boolean := False;
+    ZCX_By_Default            : constant Boolean := True;
+ 
+ end System;
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-hpux-ia64.ads gcc-15.1.0/gcc/ada/libgnat/system-hpux-ia64.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-hpux-ia64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-hpux-ia64.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                           (HP-UX/ia64 Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (HP-UX/ia64 Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-hpux.ads gcc-15.1.0/gcc/ada/libgnat/system-hpux.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-hpux.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-hpux.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                             (HP-UX Version)                              --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (HP-UX Version)                              --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-alpha.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-alpha.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-alpha.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-alpha.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/alpha Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/alpha Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-arm.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-arm.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-arm.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/ARM Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ARM Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-hppa.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-hppa.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-hppa.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-hppa.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU/Linux-HPPA Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU/Linux-HPPA Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-ia64.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-ia64.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-ia64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-ia64.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/ia64 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ia64 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-loongarch.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-loongarch.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-loongarch.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-loongarch.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (GNU-Linux/LoongArch Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (GNU-Linux/LoongArch Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-m68k.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-m68k.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-m68k.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-m68k.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU/Linux/m68k Version)                         --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU/Linux/m68k Version)                         --
  --                                                                          --
! --          Copyright (C) 2014-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-mips.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-mips.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-mips.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-mips.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/MIPS Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/MIPS Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-ppc.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-ppc.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-ppc.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-ppc.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/PPC Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/PPC Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-riscv.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-riscv.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-riscv.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-riscv.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/RISC-V Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/RISC-V Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-s390.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-s390.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-s390.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-s390.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/s390 Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/s390 Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-sh4.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-sh4.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-sh4.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-sh4.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/sh4 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/sh4 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-sparc.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-sparc.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-sparc.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-sparc.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU/Linux-SPARC Version)                       --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU/Linux-SPARC Version)                       --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-linux-x86.ads gcc-15.1.0/gcc/ada/libgnat/system-linux-x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-linux-x86.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-linux-x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/x86 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/x86 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads gcc-15.1.0/gcc/ada/libgnat/system-lynxos178-ppc.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-lynxos178-ppc.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (LynxOS-178 PPC Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 PPC Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads gcc-15.1.0/gcc/ada/libgnat/system-lynxos178-x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-lynxos178-x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (LynxOS-178 X86 Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 X86 Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-mingw.ads gcc-15.1.0/gcc/ada/libgnat/system-mingw.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-mingw.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-mingw.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 153,167 ****
     --  that the value of these parameters is available for analysis
     --  of the declarations here (using Rtsfind at compile time).
  
!    --  The underlying priorities table provides a generalized mechanism
     --  for mapping from Ada priorities to system priorities. In some
     --  cases a 1-1 mapping is not the convenient or optimal choice.
  
     type Priorities_Mapping is array (Any_Priority) of Integer;
     pragma Suppress_Initialization (Priorities_Mapping);
     --  Suppress initialization in case gnat.adc specifies Normalize_Scalars
  
!    Underlying_Priorities : constant Priorities_Mapping :=
       (Priority'First ..
        Default_Priority - 8    => -15,
        Default_Priority - 7    => -7,
--- 153,172 ----
     --  that the value of these parameters is available for analysis
     --  of the declarations here (using Rtsfind at compile time).
  
!    --  The underlying priorities tables provide a generalized mechanism
     --  for mapping from Ada priorities to system priorities. In some
     --  cases a 1-1 mapping is not the convenient or optimal choice.
  
+    --  We include two different tables here - one for when
+    --  FIFO_Within_Priorites is specified and one for default behavior -
+    --  since Windows will allow a greater granularity of levels when it
+    --  is in affect.
+ 
     type Priorities_Mapping is array (Any_Priority) of Integer;
     pragma Suppress_Initialization (Priorities_Mapping);
     --  Suppress initialization in case gnat.adc specifies Normalize_Scalars
  
!    FIFO_Underlying_Priorities : constant Priorities_Mapping :=
       (Priority'First ..
        Default_Priority - 8    => -15,
        Default_Priority - 7    => -7,
*************** private
*** 181,188 ****
        Priority'Last           => 6,
        Interrupt_Priority      => 15);
     --  The default mapping preserves the standard 31 priorities of the Ada
     --  model, but maps them using compression onto the 7 priority levels
!    --  available in NT and on the 16 priority levels available in 2000/XP.
  
     pragma Linker_Options ("-Wl,--stack=0x2000000");
     --  This is used to change the default stack (32 MB) size for non tasking
--- 186,209 ----
        Priority'Last           => 6,
        Interrupt_Priority      => 15);
     --  The default mapping preserves the standard 31 priorities of the Ada
+    --  model, but maps them using compression onto the 16 priority levels
+    --  available in NT when REALTIME_PRIORITY_CLASS base class is set via
+    --  pragma Task_Dispatching_Policy (FIFO_Within_Priorities).
+ 
+    Underlying_Priorities : constant Priorities_Mapping :=
+      (Priority'First     => -15,  --  Thread_Priority_Idle
+       1  ..  6           =>  -2,  --  Thread_Priority_Lowest
+       7  .. 12           =>  -1,  --  Thread_Priority_Below_Normal
+       13 .. 14           =>   0,  --  Thread_Priority_Normal
+       Default_Priority   =>   0,  --  Thread_Priority_Normal
+       16 .. 18           =>   0,  --  Thread_Priority_Normal
+       19 .. 24           =>   1,  --  Thread_Priority_Above_Normal
+       25 .. 29           =>   2,  --  Thread_Priority_Highest
+       Priority'Last      =>   2,  --  Thread_Priority_Highest
+       Interrupt_Priority =>  15); --  Thread_Priority_Time_Critical
+    --  The non FIFO mapping preserves the standard 31 priorities of the Ada
     --  model, but maps them using compression onto the 7 priority levels
!    --  available in NT when pragma Task_Dispatching_Policy is unspecified.
  
     pragma Linker_Options ("-Wl,--stack=0x2000000");
     --  This is used to change the default stack (32 MB) size for non tasking
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-qnx-arm.ads gcc-15.1.0/gcc/ada/libgnat/system-qnx-arm.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-qnx-arm.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-qnx-arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (QNX-ARM/AARCH64 Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (QNX-ARM/AARCH64 Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-rtems.ads gcc-15.1.0/gcc/ada/libgnat/system-rtems.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-rtems.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-rtems.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-solaris-sparc.ads gcc-15.1.0/gcc/ada/libgnat/system-solaris-sparc.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-solaris-sparc.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-solaris-sparc.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (SUN Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (SUN Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-solaris-x86.ads gcc-15.1.0/gcc/ada/libgnat/system-solaris-x86.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-solaris-x86.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-solaris-x86.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (x86 Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (x86 Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 6 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 6 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (VxWorks 6.x SMP PPC RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 6.x SMP PPC RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,127 ****
  private
  
     pragma Linker_Options ("-msmp");
-    pragma Linker_Options ("--specs=vxworks-smp-ppc-link.spec");
     pragma Linker_Options ("--specs=vxworks-ppc-link.spec");
     --  Setup proper set of -L's for this configuration
  
--- 121,126 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks 6.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 6.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (VxWorks 7.x AARCH64 RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 7.x AARCH64 RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7.x AARCH64 Kernel)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7.x AARCH64 Kernel)                        --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                           (VxWorks 7 ARM RTP)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (VxWorks 7 ARM RTP)                            --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-arm.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-arm.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks Version ARM)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks Version ARM)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks 7.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 7.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (VxWorks 7.x PPC64 Kernel)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (VxWorks 7.x PPC64 Kernel)                         --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (VxWorks 7.x PPC64 RTP)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (VxWorks 7.x PPC64 RTP)                          --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version x86)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version x86)                      --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                     (VxWorks 7 Version x86 for RTPs)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (VxWorks 7 Version x86 for RTPs)                     --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (VxWorks 7 Kernel Version x86_64)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Kernel Version x86_64)                     --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
*** gcc-14.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (VxWorks 7 Version x86_64 for RTPs)                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Version x86_64 for RTPs)                   --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/text_io.ads gcc-15.1.0/gcc/ada/libgnat/text_io.ads
*** gcc-14.2.0/gcc/ada/libgnat/text_io.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/text_io.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,21 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  This package is provided for compatibility with Ada 83. It renames
+ --  :ref:`Ada.Text_IO` and provides the same functionality.
+ 
  pragma Ada_2012;
  --  Explicit setting of Ada 2012 mode is required here, since we want to with a
  --  child unit (not possible in Ada 83 mode), and Text_IO is not considered to
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/unchconv.ads gcc-15.1.0/gcc/ada/libgnat/unchconv.ads
*** gcc-14.2.0/gcc/ada/libgnat/unchconv.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/unchconv.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,20 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  Renaming of :ref:`Ada.Unchecked_Conversion`
+ 
  generic
     type Source (<>) is limited private;
     type Target (<>) is limited private;
*************** generic
*** 20,22 ****
--- 22,25 ----
  function Unchecked_Conversion (S : Source) return Target;
  pragma Import (Intrinsic, Unchecked_Conversion);
  pragma Pure (Unchecked_Conversion);
+ --  See ``Ada.Unchecked_Conversion``
diff -Nrcpad gcc-14.2.0/gcc/ada/libgnat/unchdeal.ads gcc-15.1.0/gcc/ada/libgnat/unchdeal.ads
*** gcc-14.2.0/gcc/ada/libgnat/unchdeal.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/libgnat/unchdeal.ads	Fri Apr 25 08:18:00 2025
***************
*** 13,18 ****
--- 13,20 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ --  Renaming of :ref:`Ada.Unchecked_Deallocation`
+ 
  generic
     type Object (<>) is limited private;
     type Name is access Object;
diff -Nrcpad gcc-14.2.0/gcc/ada/link.c gcc-15.1.0/gcc/ada/link.c
*** gcc-14.2.0/gcc/ada/link.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/link.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/live.adb gcc-15.1.0/gcc/ada/live.adb
*** gcc-14.2.0/gcc/ada/live.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/live.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Live is
*** 156,163 ****
                 Traverse (Spec_Of (N));
  
              when N_Package_Body_Stub =>
!                if Present (Library_Unit (N)) then
!                   Traverse (Proper_Body (Unit (Library_Unit (N))));
                 end if;
  
              when N_Package_Body =>
--- 156,163 ----
                 Traverse (Spec_Of (N));
  
              when N_Package_Body_Stub =>
!                if Present (Subunit_Parent (N)) then
!                   Traverse (Proper_Body (Unit (Stub_Subunit (N))));
                 end if;
  
              when N_Package_Body =>
*************** package body Live is
*** 252,259 ****
                 Traverse (Spec_Of (N));
  
              when N_Package_Body_Stub =>
!                if Present (Library_Unit (N)) then
!                   Traverse (Proper_Body (Unit (Library_Unit (N))));
                 end if;
  
              when N_Package_Body =>
--- 252,259 ----
                 Traverse (Spec_Of (N));
  
              when N_Package_Body_Stub =>
!                if Present (Stub_Subunit (N)) then
!                   Traverse (Proper_Body (Unit (Stub_Subunit (N))));
                 end if;
  
              when N_Package_Body =>
*************** package body Live is
*** 321,328 ****
                 end if;
  
              when N_Package_Body_Stub =>
!                if Present (Library_Unit (N)) then
!                   Traverse (Proper_Body (Unit (Library_Unit (N))));
                 end if;
  
              when N_Expanded_Name
--- 321,328 ----
                 end if;
  
              when N_Package_Body_Stub =>
!                if Present (Stub_Subunit (N)) then
!                   Traverse (Proper_Body (Unit (Stub_Subunit (N))));
                 end if;
  
              when N_Expanded_Name
diff -Nrcpad gcc-14.2.0/gcc/ada/live.ads gcc-15.1.0/gcc/ada/live.ads
*** gcc-14.2.0/gcc/ada/live.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/live.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/local_restrict.adb gcc-15.1.0/gcc/ada/local_restrict.adb
*** gcc-14.2.0/gcc/ada/local_restrict.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/local_restrict.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Local_Restrict is
*** 90,111 ****
              return Result;
           end if;
  
!          Scop := Enclosing_Declaration (Scop);
!          if Present (Scop) then
!             Scop := Parent (Scop);
              if Present (Scop) then
!                --  For a subprogram associated with a type, we don't care
!                --  where the type was frozen; continue from the type.
  
!                if Nkind (Scop) = N_Freeze_Entity then
!                   Scop := Scope (Entity (Scop));
!                elsif Nkind (Parent (Scop)) = N_Freeze_Entity then
!                   Scop := Scope (Entity (Parent (Scop)));
!                else
!                   Scop := Find_Enclosing_Scope (Scop);
                 end if;
              end if;
!          end if;
        end loop;
  
        return Empty;
--- 90,117 ----
              return Result;
           end if;
  
!          declare
!             Saved_Scope : constant Node_Id := Scop;
!          begin
!             Scop := Enclosing_Declaration (Scop);
              if Present (Scop) then
!                Scop := Parent (Scop);
!                if Present (Scop) then
!                   --  For a subprogram associated with a type, we don't care
!                   --  where the type was frozen; continue from the type.
  
!                   if Nkind (Scop) = N_Freeze_Entity then
!                      Scop := Scope (Entity (Scop));
!                   elsif Nkind (Parent (Scop)) = N_Freeze_Entity then
!                      Scop := Scope (Entity (Parent (Scop)));
!                   elsif Present (Scope (Saved_Scope)) then
!                      Scop := Scope (Saved_Scope);
!                   else
!                      Scop := Find_Enclosing_Scope (Scop);
!                   end if;
                 end if;
              end if;
!          end;
        end loop;
  
        return Empty;
diff -Nrcpad gcc-14.2.0/gcc/ada/local_restrict.ads gcc-15.1.0/gcc/ada/local_restrict.ads
*** gcc-14.2.0/gcc/ada/local_restrict.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/local_restrict.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/locales.c gcc-15.1.0/gcc/ada/locales.c
*** gcc-14.2.0/gcc/ada/locales.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/locales.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2010-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2010-2025, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/make.adb gcc-15.1.0/gcc/ada/make.adb
*** gcc-14.2.0/gcc/ada/make.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/make.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Make is
*** 3022,3028 ****
        --  when gnatbind is invoked with -shared.
  
     begin
- 
        --  Check now for switch -shared
  
        for J in Binder_Switches.First .. Last_Arg loop
--- 3022,3027 ----
*************** package body Make is
*** 4478,4490 ****
                 RTS_Switch := True;
  
                 declare
                    Src_Path_Name : constant String_Ptr :=
                                      Get_RTS_Search_Dir
!                                       (Argv (7 .. Argv'Last), Include);
  
                    Lib_Path_Name : constant String_Ptr :=
                                      Get_RTS_Search_Dir
!                                       (Argv (7 .. Argv'Last), Objects);
  
                 begin
                    if Src_Path_Name /= null
--- 4477,4490 ----
                 RTS_Switch := True;
  
                 declare
+                   RTS_Arg_Path : constant String := Argv (7 .. Argv'Last);
                    Src_Path_Name : constant String_Ptr :=
                                      Get_RTS_Search_Dir
!                                       (RTS_Arg_Path, Include);
  
                    Lib_Path_Name : constant String_Ptr :=
                                      Get_RTS_Search_Dir
!                                       (RTS_Arg_Path, Objects);
  
                 begin
                    if Src_Path_Name /= null
*************** package body Make is
*** 4501,4516 ****
                      and then Lib_Path_Name = null
                    then
                       Make_Failed
!                        ("RTS path not valid: missing adainclude and adalib "
                          & "directories");
  
                    elsif Src_Path_Name = null then
                       Make_Failed
!                        ("RTS path not valid: missing adainclude directory");
  
!                   elsif Lib_Path_Name = null then
                       Make_Failed
!                        ("RTS path not valid: missing adalib directory");
                    end if;
                 end;
              end if;
--- 4501,4519 ----
                      and then Lib_Path_Name = null
                    then
                       Make_Failed
!                        ("RTS path """ & RTS_Arg_Path
!                         & """ not valid: missing adainclude and adalib "
                          & "directories");
  
                    elsif Src_Path_Name = null then
                       Make_Failed
!                        ("RTS path """ & RTS_Arg_Path
!                         & """ not valid: missing adainclude directory");
  
!                   else pragma Assert (Lib_Path_Name = null);
                       Make_Failed
!                        ("RTS path """ & RTS_Arg_Path
!                         & """ not valid: missing adalib directory");
                    end if;
                 end;
              end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/make.ads gcc-15.1.0/gcc/ada/make.ads
*** gcc-14.2.0/gcc/ada/make.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/make.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/make_util.adb gcc-15.1.0/gcc/ada/make_util.adb
*** gcc-14.2.0/gcc/ada/make_util.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/make_util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/make_util.ads gcc-15.1.0/gcc/ada/make_util.ads
*** gcc-14.2.0/gcc/ada/make_util.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/make_util.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/makeusg.adb gcc-15.1.0/gcc/ada/makeusg.adb
*** gcc-14.2.0/gcc/ada/makeusg.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/makeusg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/makeusg.ads gcc-15.1.0/gcc/ada/makeusg.ads
*** gcc-14.2.0/gcc/ada/makeusg.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/makeusg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll-fil.adb gcc-15.1.0/gcc/ada/mdll-fil.adb
*** gcc-14.2.0/gcc/ada/mdll-fil.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll-fil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll-fil.ads gcc-15.1.0/gcc/ada/mdll-fil.ads
*** gcc-14.2.0/gcc/ada/mdll-fil.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll-fil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll-utl.adb gcc-15.1.0/gcc/ada/mdll-utl.adb
*** gcc-14.2.0/gcc/ada/mdll-utl.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll-utl.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll-utl.ads gcc-15.1.0/gcc/ada/mdll-utl.ads
*** gcc-14.2.0/gcc/ada/mdll-utl.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll-utl.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll.adb gcc-15.1.0/gcc/ada/mdll.adb
*** gcc-14.2.0/gcc/ada/mdll.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body MDLL is
*** 86,110 ****
  
        All_Options : constant Argument_List := Options & Largs_Options;
  
!       procedure Build_Reloc_DLL;
        --  Build a relocatable DLL with only objects file specified. This uses
        --  the well known five step build (see GNAT User's Guide).
  
!       procedure Ada_Build_Reloc_DLL;
        --  Build a relocatable DLL with Ada code. This uses the well known five
        --  step build (see GNAT User's Guide).
  
!       procedure Build_Non_Reloc_DLL;
!       --  Build a non relocatable DLL containing no Ada code
! 
!       procedure Ada_Build_Non_Reloc_DLL;
!       --  Build a non relocatable DLL with Ada code
! 
!       ---------------------
!       -- Build_Reloc_DLL --
!       ---------------------
  
!       procedure Build_Reloc_DLL is
  
           Objects_Exp_File : constant OS_Lib.Argument_List :=
                                Exp_File'Unchecked_Access & Ofiles;
--- 86,104 ----
  
        All_Options : constant Argument_List := Options & Largs_Options;
  
!       procedure Build_DLL;
        --  Build a relocatable DLL with only objects file specified. This uses
        --  the well known five step build (see GNAT User's Guide).
  
!       procedure Ada_Build_DLL;
        --  Build a relocatable DLL with Ada code. This uses the well known five
        --  step build (see GNAT User's Guide).
  
!       ---------------
!       -- Build_DLL --
!       ---------------
  
!       procedure Build_DLL is
  
           Objects_Exp_File : constant OS_Lib.Argument_List :=
                                Exp_File'Unchecked_Access & Ofiles;
*************** package body MDLL is
*** 136,142 ****
           --  2) Build exp from base file
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => Bas_File,
                        Exp_Table    => Exp_File,
                        Build_Import => False);
  
--- 130,136 ----
           --  2) Build exp from base file
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => (if Relocatable then "" else Bas_File),
                        Exp_Table    => Exp_File,
                        Build_Import => False);
  
*************** package body MDLL is
*** 151,157 ****
           --  4) Build new exp from base file and the lib file (.a)
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => Bas_File,
                        Exp_Table    => Exp_File,
                        Build_Import => Build_Import);
  
--- 145,151 ----
           --  4) Build new exp from base file and the lib file (.a)
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => (if Relocatable then "" else Bas_File),
                        Exp_Table    => Exp_File,
                        Build_Import => Build_Import);
  
*************** package body MDLL is
*** 185,197 ****
              OS_Lib.Delete_File (Bas_File, Success);
              OS_Lib.Delete_File (Jnk_File, Success);
              raise;
!       end Build_Reloc_DLL;
  
!       -------------------------
!       -- Ada_Build_Reloc_DLL --
!       -------------------------
  
!       procedure Ada_Build_Reloc_DLL is
           Success : Boolean;
           pragma Warnings (Off, Success);
  
--- 179,191 ----
              OS_Lib.Delete_File (Bas_File, Success);
              OS_Lib.Delete_File (Jnk_File, Success);
              raise;
!       end Build_DLL;
  
!       -------------------
!       -- Ada_Build_DLL --
!       -------------------
  
!       procedure Ada_Build_DLL is
           Success : Boolean;
           pragma Warnings (Off, Success);
  
*************** package body MDLL is
*** 226,232 ****
           --  2) Build exp from base file
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => Bas_File,
                        Exp_Table    => Exp_File,
                        Build_Import => False);
  
--- 220,226 ----
           --  2) Build exp from base file
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => (if Relocatable then "" else Bas_File),
                        Exp_Table    => Exp_File,
                        Build_Import => False);
  
*************** package body MDLL is
*** 250,256 ****
           --  4) Build new exp from base file and the lib file (.a)
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => Bas_File,
                        Exp_Table    => Exp_File,
                        Build_Import => Build_Import);
  
--- 244,250 ----
           --  4) Build new exp from base file and the lib file (.a)
  
           Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Base_File    => (if Relocatable then "" else Bas_File),
                        Exp_Table    => Exp_File,
                        Build_Import => Build_Import);
  
*************** package body MDLL is
*** 290,405 ****
              OS_Lib.Delete_File (Bas_File, Success);
              OS_Lib.Delete_File (Jnk_File, Success);
              raise;
!       end Ada_Build_Reloc_DLL;
! 
!       -------------------------
!       -- Build_Non_Reloc_DLL --
!       -------------------------
! 
!       procedure Build_Non_Reloc_DLL is
!          Success : Boolean;
!          pragma Warnings (Off, Success);
! 
!       begin
!          if not Quiet then
!             Text_IO.Put_Line ("building non relocatable DLL...");
!             Text_IO.Put ("make " & Dll_File &
!                          " using address " & Lib_Address);
! 
!             if Build_Import then
!                Text_IO.Put_Line (" and " & Lib_File);
!             else
!                Text_IO.New_Line;
!             end if;
!          end if;
! 
!          --  Build exp table and the lib .a file
! 
!          Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Exp_Table    => Exp_File,
!                       Build_Import => Build_Import);
! 
!          --  Build the DLL
! 
!          declare
!             Params : OS_Lib.Argument_List :=
!                        Adr_Opt'Unchecked_Access & All_Options;
!          begin
!             if Map_File then
!                Params := Map_Opt'Unchecked_Access & Params;
!             end if;
! 
!             Utl.Gcc (Output_File => Dll_File,
!                      Files       => Exp_File'Unchecked_Access & Ofiles,
!                      Options     => Params,
!                      Build_Lib   => True);
!          end;
! 
!          OS_Lib.Delete_File (Exp_File, Success);
! 
!       exception
!          when others =>
!             OS_Lib.Delete_File (Exp_File, Success);
!             raise;
!       end Build_Non_Reloc_DLL;
! 
!       -----------------------------
!       -- Ada_Build_Non_Reloc_DLL --
!       -----------------------------
! 
!       --  Build a non relocatable DLL with Ada code
! 
!       procedure Ada_Build_Non_Reloc_DLL is
!          Success : Boolean;
!          pragma Warnings (Off, Success);
! 
!       begin
!          if not Quiet then
!             Text_IO.Put_Line ("building non relocatable DLL...");
!             Text_IO.Put ("make " & Dll_File &
!                          " using address " & Lib_Address);
! 
!             if Build_Import then
!                Text_IO.Put_Line (" and " & Lib_File);
!             else
!                Text_IO.New_Line;
!             end if;
!          end if;
! 
!          --  Build exp table and the lib .a file
! 
!          Utl.Dlltool (Def_File, Dll_File, Lib_File,
!                       Exp_Table    => Exp_File,
!                       Build_Import => Build_Import);
! 
!          --  Build the DLL
! 
!          Utl.Gnatbind (L_Afiles, Options & Bargs_Options);
! 
!          declare
!             Params : OS_Lib.Argument_List :=
!                        Out_Opt'Unchecked_Access &
!                        Dll_File'Unchecked_Access &
!                        Lib_Opt'Unchecked_Access &
!                        Exp_File'Unchecked_Access &
!                        Adr_Opt'Unchecked_Access &
!                        Ofiles &
!                        All_Options;
!          begin
!             if Map_File then
!                Params := Map_Opt'Unchecked_Access & Params;
!             end if;
! 
!             Utl.Gnatlink (L_Afiles (L_Afiles'Last).all, Params);
!          end;
! 
!          OS_Lib.Delete_File (Exp_File, Success);
! 
!       exception
!          when others =>
!             OS_Lib.Delete_File (Exp_File, Success);
!             raise;
!       end Ada_Build_Non_Reloc_DLL;
  
     --  Start of processing for Build_Dynamic_Library
  
--- 284,290 ----
              OS_Lib.Delete_File (Bas_File, Success);
              OS_Lib.Delete_File (Jnk_File, Success);
              raise;
!       end Ada_Build_DLL;
  
     --  Start of processing for Build_Dynamic_Library
  
*************** package body MDLL is
*** 423,443 ****
           end;
        end if;
  
!       case Relocatable is
!          when True =>
!             if L_Afiles'Length = 0 then
!                Build_Reloc_DLL;
!             else
!                Ada_Build_Reloc_DLL;
!             end if;
! 
!          when False =>
!             if L_Afiles'Length = 0 then
!                Build_Non_Reloc_DLL;
!             else
!                Ada_Build_Non_Reloc_DLL;
!             end if;
!       end case;
     end Build_Dynamic_Library;
  
     --------------------------
--- 308,318 ----
           end;
        end if;
  
!       if L_Afiles'Length = 0 then
!          Build_DLL;
!       else
!          Ada_Build_DLL;
!       end if;
     end Build_Dynamic_Library;
  
     --------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/mdll.ads gcc-15.1.0/gcc/ada/mdll.ads
*** gcc-14.2.0/gcc/ada/mdll.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mdll.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/mingw32.h gcc-15.1.0/gcc/ada/mingw32.h
*** gcc-14.2.0/gcc/ada/mingw32.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mingw32.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2002-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2002-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/mkdir.c gcc-15.1.0/gcc/ada/mkdir.c
*** gcc-14.2.0/gcc/ada/mkdir.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/mkdir.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2002-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2002-2025, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/mutably_tagged.adb gcc-15.1.0/gcc/ada/mutably_tagged.adb
*** gcc-14.2.0/gcc/ada/mutably_tagged.adb	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/mutably_tagged.adb	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,344 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        M U T A B L Y _ T A G G E D                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2024-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Atree;          use Atree;
+ with Casing;         use Casing;
+ with Einfo;          use Einfo;
+ with Einfo.Entities; use Einfo.Entities;
+ with Einfo.Utils;    use Einfo.Utils;
+ with Exp_Util;       use Exp_Util;
+ with Namet;          use Namet;
+ with Nlists;         use Nlists;
+ with Nmake;          use Nmake;
+ with Rtsfind;        use Rtsfind;
+ with Snames;         use Snames;
+ with Sem_Util;       use Sem_Util;
+ with Sinfo;          use Sinfo;
+ with Sinfo.Nodes;    use Sinfo.Nodes;
+ with Sinfo.Utils;    use Sinfo.Utils;
+ with Stringt;        use Stringt;
+ with Tbuild;         use Tbuild;
+ 
+ package body Mutably_Tagged is
+ 
+    ---------------------------------------
+    -- Corresponding_Mutably_Tagged_Type --
+    ---------------------------------------
+ 
+    function Corresponding_Mutably_Tagged_Type
+      (CW_Equiv_Typ : Entity_Id) return Entity_Id
+    is
+    begin
+       return Class_Wide_Type (Parent_Subtype (CW_Equiv_Typ));
+    end Corresponding_Mutably_Tagged_Type;
+ 
+    ----------------------------------------
+    -- Depends_On_Mutably_Tagged_Ext_Comp --
+    ----------------------------------------
+ 
+    function Depends_On_Mutably_Tagged_Ext_Comp (N : Node_Id) return Boolean is
+       Typ      : Entity_Id;
+       Typ_Comp : Entity_Id;
+       Curr     : Node_Id;
+       Prev     : Node_Id;
+    begin
+       --  Move through each prefix until we hit a type conversion from a
+       --  mutably tagged type then check if the referenced component exists in
+       --  the root type or an extension.
+ 
+       Curr := N;
+       while Has_Prefix (Curr) loop
+          Prev := Curr;
+          Curr := Prefix (Curr);
+ 
+          --  Find a prefix which is a type conversion from a mutably tagged
+          --  type in some form - either class-wide equivalent type or
+          --  directly a mutably tagged type.
+ 
+          if Nkind (Curr) in N_Unchecked_Type_Conversion
+                           | N_Type_Conversion
+            and then (Is_Mutably_Tagged_CW_Equivalent_Type
+                        (Etype (Expression (Curr)))
+                       or else Is_Mutably_Tagged_Type
+                         (Etype (Expression (Curr))))
+ 
+            --  Verify that the prefix references a component
+ 
+            and then Is_Entity_Name (Selector_Name (Prev))
+            and then Ekind (Entity (Selector_Name (Prev)))
+                       = E_Component
+          then
+             --  Obtain the root type
+ 
+             Typ := Etype (if Is_Mutably_Tagged_Type
+                                (Etype (Expression (Curr)))
+                           then
+                              Etype (Expression (Curr))
+                           else
+                              Corresponding_Mutably_Tagged_Type
+                                (Etype (Expression (Curr))));
+ 
+             --  Move through the components of the root type looking for a
+             --  match to the reference component.
+ 
+             Typ_Comp := First_Component (Typ);
+             while Present (Typ_Comp) loop
+ 
+                --  When there is a match we know the component reference
+                --  doesn't depend on a type extension.
+ 
+                if Chars (Typ_Comp) = Chars (Entity (Selector_Name (Prev))) then
+                   return False;
+                end if;
+ 
+                Next_Component (Typ_Comp);
+             end loop;
+ 
+             --  Otherwise, the component must depend on an extension
+ 
+             return True;
+          end if;
+       end loop;
+ 
+       --  If we get here then we know we don't have any sort of relevant type
+       --  conversion from a mutably tagged object.
+ 
+       return False;
+    end Depends_On_Mutably_Tagged_Ext_Comp;
+ 
+    ------------------------------------------------------
+    -- Get_Corresponding_Mutably_Tagged_Type_If_Present --
+    ------------------------------------------------------
+ 
+    function Get_Corresponding_Mutably_Tagged_Type_If_Present
+      (Typ : Entity_Id) return Entity_Id
+    is
+    begin
+       if Is_Mutably_Tagged_CW_Equivalent_Type (Typ) then
+          return Corresponding_Mutably_Tagged_Type (Typ);
+       end if;
+ 
+       return Typ;
+    end Get_Corresponding_Mutably_Tagged_Type_If_Present;
+ 
+    ----------------------------------------------
+    -- Get_Corresponding_Tagged_Type_If_Present --
+    ----------------------------------------------
+ 
+    function Get_Corresponding_Tagged_Type_If_Present
+      (Typ : Entity_Id) return Entity_Id
+    is
+    begin
+       --  Obtain the related tagged type for the class-wide mutably
+       --  tagged type associated with the class-wide equivalent type.
+ 
+       if Is_Mutably_Tagged_CW_Equivalent_Type (Typ) then
+          return Parent_Subtype (Typ);
+       end if;
+ 
+       return Typ;
+    end Get_Corresponding_Tagged_Type_If_Present;
+ 
+    ----------------------------------
+    -- Is_Mutably_Tagged_Conversion --
+    ----------------------------------
+ 
+    function Is_Mutably_Tagged_Conversion (N : Node_Id) return Boolean is
+    begin
+       return Nkind (N) = N_Unchecked_Type_Conversion
+                and then Is_Mutably_Tagged_CW_Equivalent_Type
+                           (Etype (Expression (N)));
+    end Is_Mutably_Tagged_Conversion;
+ 
+    ------------------------------------------
+    -- Is_Mutably_Tagged_CW_Equivalent_Type --
+    ------------------------------------------
+ 
+    function Is_Mutably_Tagged_CW_Equivalent_Type
+      (Typ : Entity_Id) return Boolean
+    is
+    begin
+       --  First assure Typ is OK to test since this function can be called in
+       --  a context where analysis failed.
+ 
+       return Present (Typ)
+         and then not Error_Posted (Typ)
+ 
+         --  Finally check Typ is a class-wide equivalent type which has an
+         --  associated mutably tagged class-wide type (e.g. it is a class-wide
+         --  type with a size clause).
+ 
+         and then Is_Class_Wide_Equivalent_Type (Typ)
+         and then Present (Parent_Subtype (Typ))
+         and then Present (Class_Wide_Type (Parent_Subtype (Typ)))
+         and then Has_Size_Clause (Corresponding_Mutably_Tagged_Type (Typ));
+    end Is_Mutably_Tagged_CW_Equivalent_Type;
+ 
+    --------------------------------
+    -- Make_CW_Size_Compile_Check --
+    --------------------------------
+ 
+    function Make_CW_Size_Compile_Check
+      (New_Typ     : Entity_Id;
+       Mut_Tag_Typ : Entity_Id) return Node_Id
+    is
+       Loc : constant Source_Ptr := Sloc (New_Typ);
+    begin
+       --  Generate a string literal for New_Typ's name which is needed for
+       --  printing within the Compile_Time_Error.
+ 
+       Get_Decoded_Name_String (Chars (New_Typ));
+       Set_Casing (Mixed_Case);
+ 
+       --  Build a pragma Compile_Time_Error to force the backend to
+       --  preform appropriate sizing checks.
+ 
+       --  Generate:
+       --    pragma Compile_Time_Error
+       --             (New_Typ'Size < Mut_Tag_Typ'Size,
+       --              "class size for by-reference type ""New_Typ"" too small")
+ 
+       return
+         Make_Pragma (Loc,
+           Chars                        => Name_Compile_Time_Error,
+           Pragma_Argument_Associations => New_List (
+             Make_Pragma_Argument_Association (Loc,
+               Expression => (
+                 Make_Op_Gt (Loc,
+                   Left_Opnd  =>
+                     Make_Attribute_Reference (Loc,
+                       Attribute_Name => Name_Size,
+                       Prefix         =>
+                         New_Occurrence_Of (New_Typ, Loc)),
+                   Right_Opnd =>
+                     Make_Integer_Literal (Loc,
+                       RM_Size (Mut_Tag_Typ))))),
+              Make_Pragma_Argument_Association (Loc,
+                Expression =>
+ 
+                  --  Is it possible to print the size of New_Typ via
+                  --  Validate_Compile_Time_Warning_Or_Error after the back-end
+                  --  has run to generate the error message manually ???
+ 
+                  Make_String_Literal (Loc,
+                    "class size for by-reference type """
+                    & To_String (String_From_Name_Buffer)
+                    & """ too small"))));
+    end Make_CW_Size_Compile_Check;
+ 
+    ------------------------------------
+    -- Make_Mutably_Tagged_Conversion --
+    ------------------------------------
+ 
+    procedure Make_Mutably_Tagged_Conversion
+      (N     : Node_Id;
+       Typ   : Entity_Id := Empty;
+       Force : Boolean   := False)
+    is
+       Conv_Typ : constant Entity_Id :=
+ 
+         --  When Typ is not present, we obtain it at this point
+ 
+         (if Present (Typ) then
+             Typ
+          else
+             Corresponding_Mutably_Tagged_Type (Etype (N)));
+ 
+    begin
+       --  Allow "forcing" the rewrite to an unchecked conversion
+ 
+       if Force
+ 
+         --  Otherwise, don't make the conversion when N is on the left-hand
+         --  side of the assignment, in cases where we need the actual type
+         --  such as a subtype or object renaming declaration, or a generic or
+         --  parameter specification.
+ 
+         --  Additionally, prevent generation of the conversion if N is already
+         --  part of an unchecked conversion or a part of a selected component.
+ 
+         or else (not Known_To_Be_Assigned (N, Only_LHS => True)
+                   and then (No (Parent (N))
+                              or else Nkind (Parent (N))
+                                not in N_Selected_Component
+                                     | N_Subtype_Declaration
+                                     | N_Parameter_Specification
+                                     | N_Generic_Association
+                                     | N_Unchecked_Type_Conversion
+                                     | N_Object_Renaming_Declaration))
+       then
+          --  Exclude the case where we have a 'Size so that we get the proper
+          --  size of the class-wide equivalent type. Are there other cases ???
+ 
+          if Present (Parent (N))
+            and then Nkind (Parent (N)) = N_Attribute_Reference
+            and then Attribute_Name (Parent (N)) in Name_Size
+          then
+             return;
+          end if;
+ 
+          --  Create the conversion
+ 
+          Rewrite (N,
+            Unchecked_Convert_To
+              (Conv_Typ, Relocate_Node (N)));
+       end if;
+    end Make_Mutably_Tagged_Conversion;
+ 
+    ----------------------------------
+    -- Make_Mutably_Tagged_CW_Check --
+    ----------------------------------
+ 
+    function Make_Mutably_Tagged_CW_Check
+      (N   : Node_Id;
+       Tag : Node_Id) return Node_Id
+    is
+       Loc   : constant Source_Ptr := Sloc (N);
+ 
+       --  Displace the pointer to the base of the objects applying 'Address,
+       --  which is later expanded into a call to RE_Base_Address.
+ 
+       N_Tag : constant Node_Id    :=
+         Make_Explicit_Dereference (Loc,
+           Prefix =>
+             Unchecked_Convert_To (RTE (RE_Tag_Ptr),
+               Make_Attribute_Reference (Loc,
+                 Prefix         => Duplicate_Subexpr (N),
+                 Attribute_Name => Name_Address)));
+    begin
+       --  Generate the runtime call to test class-wide membership
+ 
+       return
+         Make_Raise_Constraint_Error (Loc,
+           Reason    => CE_Tag_Check_Failed,
+           Condition =>
+             Make_Op_Not (Loc,
+               Make_Function_Call (Loc,
+                 Parameter_Associations => New_List (N_Tag, Tag),
+                 Name                   =>
+                   New_Occurrence_Of (RTE (RE_CW_Membership), Loc))));
+    end Make_Mutably_Tagged_CW_Check;
+ 
+ end Mutably_Tagged;
diff -Nrcpad gcc-14.2.0/gcc/ada/mutably_tagged.ads gcc-15.1.0/gcc/ada/mutably_tagged.ads
*** gcc-14.2.0/gcc/ada/mutably_tagged.ads	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/mutably_tagged.ads	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,119 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        M U T A B L Y _ T A G G E D                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2024-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT 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  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  Semantic and expansion utility routines dealing with mutably tagged types
+ 
+ with Types; use Types;
+ 
+ package Mutably_Tagged is
+ 
+    --------------------------------------------
+    -- Implementation of Mutably Tagged Types --
+    --------------------------------------------
+ 
+    --  This package implements mutably tagged types via the Size'class aspect
+    --  which enables the creation of class-wide types with a specific maximum
+    --  size. This allows such types to be used directly in record components,
+    --  in object declarations without an initial expression, and to be assigned
+    --  a value from any type in a mutably tagged type's hierarchy.
+ 
+    --  For example, this structure allows Base_Type and its derivatives to be
+    --  treated as components with a predictable size:
+ 
+    --    type Base_Type is tagged null record
+    --      with Size'Class => 128;
+ 
+    --    type Container is record
+    --      Component : Base_Type'Class;
+    --    end record;
+ 
+    --  The core of their implementation involves creating an "equivalent" type
+    --  for each class-wide type that adheres to the Size'Class constraint. This
+    --  is achieved by using the function Make_CW_Equivalent_Type from Exp_Util,
+    --  which generates a type that is compatible in size and structure with any
+    --  derived type of the base class-wide type.
+ 
+    --  Once the class-wide equivalent type is generated, all declarations of
+    --  mutably tagged typed objects get rewritten as declarations of objects
+    --  with the equivalent type. References to these objects also then get
+    --  wrapped in unchecked conversions to the mutably tagged class-wide type.
+ 
+    function Corresponding_Mutably_Tagged_Type
+      (CW_Equiv_Typ : Entity_Id) return Entity_Id;
+    --  Given a class-wide equivalent type obtain the related mutably tagged
+    --  class-wide type.
+ 
+    function Depends_On_Mutably_Tagged_Ext_Comp (N : Node_Id) return Boolean;
+    --  Return true if the given node N contains a reference to a component
+    --  of a mutably tagged object which comes from a type extension.
+ 
+    function Get_Corresponding_Mutably_Tagged_Type_If_Present
+      (Typ : Entity_Id) return Entity_Id;
+    --  Obtain the corresponding mutably tagged type associated with Typ when
+    --  Typ is a mutably tagged class-wide equivalent type. Otherwise, just
+    --  return Typ.
+ 
+    function Get_Corresponding_Tagged_Type_If_Present
+      (Typ : Entity_Id) return Entity_Id;
+    --  Obtain the corresponding tag type associated with Typ when
+    --  Typ is a mutably tagged class-wide equivalent type. Otherwise, Just
+    --  return Typ.
+ 
+    --  This function is mostly used when we need a concrete type to generate
+    --  initialization for mutably tagged types.
+ 
+    function Is_Mutably_Tagged_Conversion (N : Node_Id) return Boolean;
+    --  Return True if expression N is an object of a mutably tagged class-wide
+    --  equivalent type which has been expanded into a type conversion to
+    --  its related mutably tagged class-wide type.
+ 
+    function Is_Mutably_Tagged_CW_Equivalent_Type
+      (Typ : Entity_Id) return Boolean;
+    --  Determine if Typ is a class-wide equivalent type
+ 
+    procedure Make_Mutably_Tagged_Conversion
+      (N     : Node_Id;
+       Typ   : Entity_Id := Empty;
+       Force : Boolean   := False);
+    --  Expand a reference N to a given mutably tagged type Typ. When Typ is not
+    --  present the closest associated mutably tagged type in the hierarchy is
+    --  used.
+ 
+    --  Force is used to ignore certain predicates which avoid generating the
+    --  conversion (e.g. when N is on the left-hand side of an assignment).
+ 
+    function Make_CW_Size_Compile_Check
+      (New_Typ     : Entity_Id;
+       Mut_Tag_Typ : Entity_Id) return Node_Id;
+    --  Generate a type size check on New_Typ based on the size set in
+    --  the mutably tagged type Mut_Tag_Typ.
+ 
+    function Make_Mutably_Tagged_CW_Check
+      (N   : Node_Id;
+       Tag : Node_Id) return Node_Id;
+    --  Generate class-wide membership test for a given expression N based on
+    --  Tag.
+ 
+ end Mutably_Tagged;
diff -Nrcpad gcc-14.2.0/gcc/ada/namet-sp.adb gcc-15.1.0/gcc/ada/namet-sp.adb
*** gcc-14.2.0/gcc/ada/namet-sp.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/namet-sp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/namet-sp.ads gcc-15.1.0/gcc/ada/namet-sp.ads
*** gcc-14.2.0/gcc/ada/namet-sp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/namet-sp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/namet.adb gcc-15.1.0/gcc/ada/namet.adb
*** gcc-14.2.0/gcc/ada/namet.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/namet.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Namet is
*** 474,480 ****
  
              P := 1;
              while P < Temp.Length loop
!                if Temp.Chars (P + 1) in 'A' .. 'Z' then
                    P := P + 1;
  
                 --  Uhh encoding
--- 474,484 ----
  
              P := 1;
              while P < Temp.Length loop
!                --  Cheap test for the common case of no encoding
! 
!                if Temp.Chars (P + 1) in 'A' .. 'Z'
!                  and then Temp.Chars (P + 1) /= 'W'
!                then
                    P := P + 1;
  
                 --  Uhh encoding
*************** package body Namet is
*** 1520,1525 ****
--- 1524,1540 ----
        return Buf.Chars (1 .. Buf.Length);
     end To_String;
  
+    ----------------------
+    -- Unlock_If_Locked --
+    ----------------------
+ 
+    procedure Unlock_If_Locked is
+    begin
+       if Name_Chars.Locked then
+          Unlock;
+       end if;
+    end Unlock_If_Locked;
+ 
     ------------
     -- Unlock --
     ------------
diff -Nrcpad gcc-14.2.0/gcc/ada/namet.ads gcc-15.1.0/gcc/ada/namet.ads
*** gcc-14.2.0/gcc/ada/namet.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/namet.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Namet is
*** 423,428 ****
--- 423,431 ----
     --  Unlocks the name table to allow use of the extra space reserved by the
     --  call to Lock. See gnat1drv for details of the need for this.
  
+    procedure Unlock_If_Locked;
+    --  If the name table is locked, calls Unlock. Otherwise, does nothing.
+ 
     procedure Write_Name (Id : Valid_Name_Id);
     --  Write_Name writes the characters of the specified name using the
     --  standard output procedures in package Output. The name is written
diff -Nrcpad gcc-14.2.0/gcc/ada/namet.h gcc-15.1.0/gcc/ada/namet.h
*** gcc-14.2.0/gcc/ada/namet.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/namet.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/nlists.adb gcc-15.1.0/gcc/ada/nlists.adb
*** gcc-14.2.0/gcc/ada/nlists.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/nlists.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/nlists.ads gcc-15.1.0/gcc/ada/nlists.ads
*** gcc-14.2.0/gcc/ada/nlists.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/nlists.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Nlists is
*** 124,133 ****
     --  Used when dealing with a list that can contain pragmas to skip past
     --  any initial pragmas and return the first element that is not a pragma.
     --  If the list is empty, or if it contains only pragmas, then Empty is
!    --  returned. It is an error to call First_Non_Pragma with a Node_Id value
!    --  or No_List (No_List is not considered to be the same as an empty list).
!    --  This function also skips N_Null nodes which can result from rewriting
!    --  unrecognized or incorrect pragmas.
  
     function Last (List : List_Id) return Node_Or_Entity_Id;
     pragma Inline (Last);
--- 124,132 ----
     --  Used when dealing with a list that can contain pragmas to skip past
     --  any initial pragmas and return the first element that is not a pragma.
     --  If the list is empty, or if it contains only pragmas, then Empty is
!    --  returned. It is an error to call this with List = No_List. This function
!    --  also skips N_Null nodes, which can result from rewriting incorrect
!    --  pragmas.
  
     function Last (List : List_Id) return Node_Or_Entity_Id;
     pragma Inline (Last);
*************** package Nlists is
*** 139,146 ****
     function Last_Non_Pragma (List : List_Id) return Node_Or_Entity_Id;
     --  Obtains the last element of a given node list that is not a pragma.
     --  If the list is empty, or if it contains only pragmas, then Empty is
!    --  returned. It is an error to call Last_Non_Pragma with a Node_Id or
!    --  No_List. (No_List is not considered to be the same as an empty list).
  
     function List_Length (List : List_Id) return Nat;
     --  Returns number of items in the given list. If called on No_List it
--- 138,145 ----
     function Last_Non_Pragma (List : List_Id) return Node_Or_Entity_Id;
     --  Obtains the last element of a given node list that is not a pragma.
     --  If the list is empty, or if it contains only pragmas, then Empty is
!    --  returned. It is an error to call this with List = No_List.
!    --  Unlike First_Non_Pragma, this does not skip N_Null nodes.
  
     function List_Length (List : List_Id) return Nat;
     --  Returns number of items in the given list. If called on No_List it
*************** package Nlists is
*** 161,168 ****
       (Node : Node_Or_Entity_Id) return Node_Or_Entity_Id;
     --  This function returns the next node on a node list, skipping past any
     --  pragmas, or Empty if there is no non-pragma entry left. The argument
!    --  must be a member of a node list. This function also skips N_Null nodes
!    --  which can result from rewriting unrecognized or incorrect pragmas.
  
     procedure Next_Non_Pragma (Node : in out Node_Or_Entity_Id);
     pragma Inline (Next_Non_Pragma);
--- 160,167 ----
       (Node : Node_Or_Entity_Id) return Node_Or_Entity_Id;
     --  This function returns the next node on a node list, skipping past any
     --  pragmas, or Empty if there is no non-pragma entry left. The argument
!    --  must be a member of a node list. This function also skips N_Null nodes,
!    --  which can result from rewriting incorrect pragmas.
  
     procedure Next_Non_Pragma (Node : in out Node_Or_Entity_Id);
     pragma Inline (Next_Non_Pragma);
*************** package Nlists is
*** 190,197 ****
     --  pragmas. If Node is the first element of the list, or if the only
     --  elements preceding it are pragmas, then Empty is returned. The
     --  argument must be a member of a node list. Note: the implementation
!    --  does maintain back pointers, so this function executes quickly in
!    --  constant time.
  
     procedure Prev_Non_Pragma (Node : in out Node_Or_Entity_Id);
     pragma Inline (Prev_Non_Pragma);
--- 189,196 ----
     --  pragmas. If Node is the first element of the list, or if the only
     --  elements preceding it are pragmas, then Empty is returned. The
     --  argument must be a member of a node list. Note: the implementation
!    --  maintains back pointers, so this function executes quickly in constant
!    --  time. Unlike Next_Non_Pragma, this does not skip N_Null nodes.
  
     procedure Prev_Non_Pragma (Node : in out Node_Or_Entity_Id);
     pragma Inline (Prev_Non_Pragma);
diff -Nrcpad gcc-14.2.0/gcc/ada/nlists.h gcc-15.1.0/gcc/ada/nlists.h
*** gcc-14.2.0/gcc/ada/nlists.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/nlists.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/opt.adb gcc-15.1.0/gcc/ada/opt.adb
*** gcc-14.2.0/gcc/ada/opt.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/opt.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,30 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Csets;          use Csets;
- 
  package body Opt is
  
     --------------------
--- 23,28 ----
*************** package body Opt is
*** 188,194 ****
           Prefix_Exception_Messages   := True;
           Uneval_Old                  := 'E';
           Use_VADS_Size               := False;
-          Identifier_Char ('[')       := False;
  
           --  Note: we do not need to worry about Warnings_As_Errors_Count since
           --  we do not expect to get any warnings from compiling such a unit.
--- 186,191 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/opt.ads gcc-15.1.0/gcc/ada/opt.ads
*** gcc-14.2.0/gcc/ada/opt.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/opt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Opt is
*** 127,133 ****
     --  remains set to Ada_Version_Default). This is used in the rare cases
     --  (notably pragma Obsolescent) where we want the explicit version set.
  
!    Ada_Version_Runtime : Ada_Version_Type := Ada_With_All_Extensions;
     --  GNAT
     --  Ada version used to compile the runtime. Used to set Ada_Version (but
     --  not Ada_Version_Explicit) when compiling predefined or internal units.
--- 127,133 ----
     --  remains set to Ada_Version_Default). This is used in the rare cases
     --  (notably pragma Obsolescent) where we want the explicit version set.
  
!    Ada_Version_Runtime : constant Ada_Version_Type := Ada_With_All_Extensions;
     --  GNAT
     --  Ada version used to compile the runtime. Used to set Ada_Version (but
     --  not Ada_Version_Explicit) when compiling predefined or internal units.
*************** package Opt is
*** 261,267 ****
     --  (switch -B)
  
     CCG_Mode : Boolean := False;
!    --  Set to True when running as CCG (either via -gnatceg or via -emit-c)
  
     Check_Aliasing_Of_Parameters : Boolean := False;
     --  GNAT
--- 261,269 ----
     --  (switch -B)
  
     CCG_Mode : Boolean := False;
!    --  GNAT, GNATBIND
!    --  Set to True when running as CCG (implicitly, via -emit-c, or -G for the
!    --  binder)
  
     Check_Aliasing_Of_Parameters : Boolean := False;
     --  GNAT
*************** package Opt is
*** 699,708 ****
     --  GNAT
     --  True if generating assembly instead of an object file, via the -S switch
  
!    Generate_C_Code : Boolean := False;
!    --  GNAT, GNATBIND
     --  If True, the Cprint circuitry to generate C code output is activated.
!    --  Set True by use of -gnateg or -gnatd.V for GNAT, and -G for GNATBIND.
  
     Generate_CodePeer_Messages : Boolean := False;
     --  GNAT
--- 701,710 ----
     --  GNAT
     --  True if generating assembly instead of an object file, via the -S switch
  
!    Generate_C_Header : Boolean := False;
!    --  GNAT
     --  If True, the Cprint circuitry to generate C code output is activated.
!    --  Set True by use of -gnateg for GNAT.
  
     Generate_CodePeer_Messages : Boolean := False;
     --  GNAT
*************** package Opt is
*** 816,825 ****
     --  cause implicit packing instead of generating an error message. Set by
     --  use of pragma Implicit_Packing.
  
-    Include_Subprogram_In_Messages : Boolean := False;
-    --  GNAT
-    --  Set True to include the enclosing subprogram in compiler messages.
- 
     Init_Or_Norm_Scalars : Boolean := False;
     --  GNAT, GNATBIND
     --  Set True if a pragma Initialize_Scalars applies to the current unit.
--- 818,823 ----
*************** package Opt is
*** 1058,1076 ****
     --  GNATMAKE
     --  Set to True if minimal recompilation mode requested
  
-    Minimize_Expression_With_Actions : Boolean := False;
-    --  GNAT
-    --  If True, minimize the use of N_Expression_With_Actions node.
-    --  This can be used in particular on some back-ends where this node is
-    --  difficult to support.
- 
-    Modify_Tree_For_C : Boolean := False;
-    --  GNAT
-    --  If this switch is set True (currently it is set only by -gnatd.V), then
-    --  certain meaning-preserving transformations are applied to the tree to
-    --  make it easier to interface with back ends that implement C semantics.
-    --  There is a section in Sinfo which describes the transformations made.
- 
     Multiple_Unit_Index : Nat := 0;
     --  GNAT
     --  This is set non-zero if the current unit is being compiled in multiple
--- 1056,1061 ----
*************** package Opt is
*** 1113,1118 ****
--- 1098,1107 ----
     --  This flag is set True if a No_Run_Time pragma is encountered. See spec
     --  of Rtsfind for a full description of handling of this pragma.
  
+    Interrupts_System_By_Default : Boolean := False;
+    --  GNATBIND
+    --  Set True if pragma Interrupts_System_By_Default is seen.
+ 
     No_Split_Units : Boolean := False;
     --  GPRBUILD
     --  Set to True with switch --no-split-units. When True, unit sources, spec,
*************** package Opt is
*** 1351,1356 ****
--- 1340,1358 ----
     --  GNATMAKE, GNATLINK
     --  Set to False when no run_path_option should be issued to the linker
  
+    SARIF_File : Boolean := False;
+    --  GNAT
+    --  Output error and warning messages in SARIF format. Set to true when the
+    --  backend option "-fdiagnostics-format=sarif-file" is found on the
+    --  command line. The SARIF file is written to the file named:
+    --  <source_file>.gnat.sarif
+ 
+    SARIF_Output : Boolean := False;
+    --  GNAT
+    --  Output error and warning messages in SARIF format. Set to true when the
+    --  backend option "-fdiagnostics-format=sarif-stderr" is found on the
+    --  command line.
+ 
     Search_Directory_Present : Boolean := False;
     --  GNAT
     --  Set to True when argument is -I. Reset to False when next argument, a
*************** package Opt is
*** 1538,1549 ****
     --  Tolerate time stamp and other consistency errors. If this flag is set to
     --  True (-t), then inconsistencies result in warnings rather than errors.
  
-    Transform_Function_Array : Boolean := False;
-    --  GNAT
-    --  If this switch is set True, then functions returning constrained arrays
-    --  are transformed into a procedure with an out parameter, and all calls
-    --  are updated accordingly.
- 
     Treat_Categorization_Errors_As_Warnings : Boolean := False;
     --  Normally categorization errors are true illegalities. If this switch
     --  is set, then such errors result in warning messages rather than error
--- 1540,1545 ----
*************** package Opt is
*** 1671,1676 ****
--- 1667,1677 ----
     --  which requires pragma Warnings to be stored for the formal verification
     --  backend.
  
+    Info_Suppressed : Boolean := False;
+    --  GNAT
+    --  Controls whether informational messages are suppressed. Set True by
+    --  -gnatis. If True, informational messages will not be printed.
+ 
     Wide_Character_Encoding_Method : WC_Encoding_Method := WCEM_Brackets;
     --  GNAT, GNATBIND
     --  Method used for encoding wide characters in the source program. See
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-b.adb gcc-15.1.0/gcc/ada/osint-b.adb
*** gcc-14.2.0/gcc/ada/osint-b.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-b.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-b.ads gcc-15.1.0/gcc/ada/osint-b.ads
*** gcc-14.2.0/gcc/ada/osint-b.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-b.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-c.adb gcc-15.1.0/gcc/ada/osint-c.adb
*** gcc-14.2.0/gcc/ada/osint-c.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-c.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-c.ads gcc-15.1.0/gcc/ada/osint-c.ads
*** gcc-14.2.0/gcc/ada/osint-c.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-c.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Osint.C is
*** 167,184 ****
  
     procedure Create_C_File;
     procedure Create_H_File;
!    --  Creates the *.c or *.h file for the source file which is currently
!    --  being compiled (i.e. the file which was most recently returned by
     --  Next_Main_Source).
  
     procedure Close_C_File;
     procedure Close_H_File;
!    --  Closes the file created by Create_C_File or Create_H file, flushing any
!    --  buffers etc. from writes by Write_C_File and Write_H_File;
  
     procedure Delete_C_File;
     procedure Delete_H_File;
!    --  Deletes the .c or .h file corresponding to the source file which is
     --  currently being compiled.
  
     ----------------------
--- 167,184 ----
  
     procedure Create_C_File;
     procedure Create_H_File;
!    --  Creates the *.c/*.h file for the source file which is currently being
!    --  compiled (i.e. the file which was most recently returned by
     --  Next_Main_Source).
  
     procedure Close_C_File;
     procedure Close_H_File;
!    --  Closes the file created by Create_C/H file, flushing any buffers, etc.
!    --  from writes by Write_C_File and Write_H_File;
  
     procedure Delete_C_File;
     procedure Delete_H_File;
!    --  Deletes the .c/.h file corresponding to the source file which is
     --  currently being compiled.
  
     ----------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-l.adb gcc-15.1.0/gcc/ada/osint-l.adb
*** gcc-14.2.0/gcc/ada/osint-l.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-l.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-l.ads gcc-15.1.0/gcc/ada/osint-l.ads
*** gcc-14.2.0/gcc/ada/osint-l.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-l.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-m.adb gcc-15.1.0/gcc/ada/osint-m.adb
*** gcc-14.2.0/gcc/ada/osint-m.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-m.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint-m.ads gcc-15.1.0/gcc/ada/osint-m.ads
*** gcc-14.2.0/gcc/ada/osint-m.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint-m.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/osint.adb gcc-15.1.0/gcc/ada/osint.adb
*** gcc-14.2.0/gcc/ada/osint.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Osint is
*** 658,665 ****
     is
     begin
        Get_Name_String (Name);
!       Name_Buffer (Name_Len + 1 .. Name_Len + Suffix'Length) := Suffix;
!       Name_Len := Name_Len + Suffix'Length;
        return Name_Find;
     end Append_Suffix_To_File_Name;
  
--- 658,664 ----
     is
     begin
        Get_Name_String (Name);
!       Add_Str_To_Name_Buffer (Suffix);
        return Name_Find;
     end Append_Suffix_To_File_Name;
  
*************** package body Osint is
*** 1225,1236 ****
                    declare
                       Full_Path : constant String :=
                                     Normalize_Pathname (Get_Name_String (N));
-                      Full_Size : constant Natural := Full_Path'Length;
- 
                    begin
!                      Name_Buffer (1 .. Full_Size) := Full_Path;
!                      Name_Len := Full_Size;
!                      Found    := Name_Find;
                    end;
                 end if;
  
--- 1224,1231 ----
                    declare
                       Full_Path : constant String :=
                                     Normalize_Pathname (Get_Name_String (N));
                    begin
!                      Found := Name_Find (Full_Path);
                    end;
                 end if;
  
*************** package body Osint is
*** 1446,1454 ****
           end if;
        end loop;
  
!       Name_Len := Hostparm.Normalized_CWD'Length;
!       Name_Buffer (1 .. Name_Len) := Hostparm.Normalized_CWD;
!       return Name_Find;
     end Get_Directory;
  
     ------------------------------
--- 1441,1447 ----
           end if;
        end loop;
  
!       return Name_Find (Hostparm.Normalized_CWD);
     end Get_Directory;
  
     ------------------------------
*************** package body Osint is
*** 2037,2043 ****
  
           when Binder
              | Gnatls
!           =>
              Dir_Name := Normalize_Directory_Name (Dir_Name.all);
              Lib_Search_Directories.Table (Primary_Directory) := Dir_Name;
  
--- 2030,2036 ----
  
           when Binder
              | Gnatls
!          =>
              Dir_Name := Normalize_Directory_Name (Dir_Name.all);
              Lib_Search_Directories.Table (Primary_Directory) := Dir_Name;
  
*************** package body Osint is
*** 2182,2191 ****
        Get_Name_String (N);
        Name_Len := Name_Len - ALI_Suffix'Length - 1;
  
!       for J in Target_Object_Suffix'Range loop
!          Name_Len := Name_Len + 1;
!          Name_Buffer (Name_Len) := Target_Object_Suffix (J);
!       end loop;
  
        return Name_Enter;
     end Object_File_Name;
--- 2175,2181 ----
        Get_Name_String (N);
        Name_Len := Name_Len - ALI_Suffix'Length - 1;
  
!       Add_Str_To_Name_Buffer (Target_Object_Suffix);
  
        return Name_Enter;
     end Object_File_Name;
*************** package body Osint is
*** 2350,2359 ****
     begin
        --  Construct a C compatible character string buffer
  
!       Buffer (1 .. Search_Dir_Prefix.all'Length)
!         := Search_Dir_Prefix.all;
!       Buffer (Search_Dir_Prefix.all'Length + 1 .. Buffer'Last - 1)
!         := Search_File.all;
        Buffer (Buffer'Last) := ASCII.NUL;
  
        File_FD := Open_Read (Buffer'Address, Binary);
--- 2340,2349 ----
     begin
        --  Construct a C compatible character string buffer
  
!       Buffer (1 .. Search_Dir_Prefix.all'Length) :=
!         Search_Dir_Prefix.all;
!       Buffer (Search_Dir_Prefix.all'Length + 1 .. Buffer'Last - 1) :=
!         Search_File.all;
        Buffer (Buffer'Last) := ASCII.NUL;
  
        File_FD := Open_Read (Buffer'Address, Binary);
*************** package body Osint is
*** 2935,2943 ****
  
              --  Return part of Name that follows this last directory separator
  
!             Name_Buffer (1 .. Name_Len - J) := Name_Buffer (J + 1 .. Name_Len);
!             Name_Len := Name_Len - J;
!             return Name_Find;
           end if;
        end loop;
  
--- 2925,2931 ----
  
              --  Return part of Name that follows this last directory separator
  
!             return Name_Find (Name_Buffer (J + 1 .. Name_Len));
           end if;
        end loop;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/osint.ads gcc-15.1.0/gcc/ada/osint.ads
*** gcc-14.2.0/gcc/ada/osint.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/osint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/output.adb gcc-15.1.0/gcc/ada/output.adb
*** gcc-14.2.0/gcc/ada/output.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/output.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/output.ads gcc-15.1.0/gcc/ada/output.ads
*** gcc-14.2.0/gcc/ada/output.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/output.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch10.adb gcc-15.1.0/gcc/ada/par-ch10.adb
*** gcc-14.2.0/gcc/ada/par-ch10.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch10.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch10 is
*** 532,537 ****
--- 532,546 ----
              Unit_Node := Specification (Unit_Node);
           end if;
  
+          --  Disallow null procedures as library units and subunits
+ 
+          if Nkind (Unit_Node) = N_Procedure_Specification
+            and then Null_Present (Unit_Node)
+          then
+             Error_Msg_N
+               ("null procedure cannot be used as compilation unit", Unit_Node);
+          end if;
+ 
           if Nkind (Unit_Node) in N_Task_Body
                                 | N_Protected_Body
                                 | N_Task_Type_Declaration
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch11.adb gcc-15.1.0/gcc/ada/par-ch11.adb
*** gcc-14.2.0/gcc/ada/par-ch11.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch11.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch11 is
*** 61,68 ****
        Handled_Stmt_Seq_Node :=
          New_Node (N_Handled_Sequence_Of_Statements, Token_Ptr);
        Set_Statements
!         (Handled_Stmt_Seq_Node,
!          P_Sequence_Of_Statements (SS_Extm_Sreq, Handled => True));
  
        if Token = Tok_Exception then
           Scan; -- past EXCEPTION
--- 61,67 ----
        Handled_Stmt_Seq_Node :=
          New_Node (N_Handled_Sequence_Of_Statements, Token_Ptr);
        Set_Statements
!         (Handled_Stmt_Seq_Node, P_Sequence_Of_Statements (SS_Extm_Fitm_Sreq));
  
        if Token = Tok_Exception then
           Scan; -- past EXCEPTION
*************** package body Ch11 is
*** 70,75 ****
--- 69,80 ----
             (Handled_Stmt_Seq_Node, Parse_Exception_Handlers);
        end if;
  
+       if Token = Tok_Finally then
+          Scan; -- past FINALLY
+          Set_Finally_Statements
+            (Handled_Stmt_Seq_Node, P_Sequence_Of_Statements (SS_Sreq));
+       end if;
+ 
        return Handled_Stmt_Seq_Node;
     end P_Handled_Sequence_Of_Statements;
  
*************** package body Ch11 is
*** 142,148 ****
        end loop;
  
        TF_Arrow;
!       Set_Statements (Handler_Node, P_Sequence_Of_Statements (SS_Sreq_Whtm));
        return Handler_Node;
     end P_Exception_Handler;
  
--- 147,154 ----
        end loop;
  
        TF_Arrow;
!       Set_Statements
!         (Handler_Node, P_Sequence_Of_Statements (SS_Sreq_Fitm_Whtm));
        return Handler_Node;
     end P_Exception_Handler;
  
*************** package body Ch11 is
*** 163,169 ****
  
     function P_Exception_Choice return Node_Id is
     begin
- 
        if Token = Tok_Others then
           Scan; -- past OTHERS
           return New_Node (N_Others_Choice, Prev_Token_Ptr);
--- 169,174 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch12.adb gcc-15.1.0/gcc/ada/par-ch12.adb
*** gcc-14.2.0/gcc/ada/par-ch12.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch12.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch12 is
*** 223,229 ****
              Error_Msg_SP ("child unit allowed only at library level");
           end if;
  
!          P_Aspect_Specifications (Gen_Decl);
        end if;
  
        Set_Generic_Formal_Declarations (Gen_Decl, Decls);
--- 223,229 ----
              Error_Msg_SP ("child unit allowed only at library level");
           end if;
  
!          P_Aspect_Specifications (Gen_Decl, Semicolon => True);
        end if;
  
        Set_Generic_Formal_Declarations (Gen_Decl, Decls);
*************** package body Ch12 is
*** 482,488 ****
  
           No_Constraint;
           Set_Default_Expression (Decl_Node, Init_Expr_Opt);
!          P_Aspect_Specifications (Decl_Node);
  
           if Ident > 1 then
              Set_Prev_Ids (Decl_Node, True);
--- 482,488 ----
  
           No_Constraint;
           Set_Default_Expression (Decl_Node, Init_Expr_Opt);
!          P_Aspect_Specifications (Decl_Node, Semicolon => True);
  
           if Ident > 1 then
              Set_Prev_Ids (Decl_Node, True);
*************** package body Ch12 is
*** 570,576 ****
              end if;
           end if;
  
!          P_Aspect_Specifications (Decl_Node);
  
        else
           Decl_Node := Error;
--- 570,576 ----
              end if;
           end if;
  
!          P_Aspect_Specifications (Decl_Node, Semicolon => True);
  
        else
           Decl_Node := Error;
*************** package body Ch12 is
*** 578,584 ****
           --  If we have aspect specifications, skip them
  
           if Aspect_Specifications_Present then
!             P_Aspect_Specifications (Error);
  
           --  If we have semicolon, skip it to avoid cascaded errors
  
--- 578,584 ----
           --  If we have aspect specifications, skip them
  
           if Aspect_Specifications_Present then
!             P_Aspect_Specifications (Error, Semicolon => True);
  
           --  If we have semicolon, skip it to avoid cascaded errors
  
*************** package body Ch12 is
*** 1250,1256 ****
           Set_Specification (Def_Node, Spec_Node);
        end if;
  
!       P_Aspect_Specifications (Def_Node);
        return Def_Node;
     end P_Formal_Subprogram_Declaration;
  
--- 1250,1256 ----
           Set_Specification (Def_Node, Spec_Node);
        end if;
  
!       P_Aspect_Specifications (Def_Node, Semicolon => True);
        return Def_Node;
     end P_Formal_Subprogram_Declaration;
  
*************** package body Ch12 is
*** 1317,1323 ****
           end if;
        end if;
  
!       P_Aspect_Specifications (Def_Node);
        return Def_Node;
     end P_Formal_Package_Declaration;
  
--- 1317,1323 ----
           end if;
        end if;
  
!       P_Aspect_Specifications (Def_Node, Semicolon => True);
        return Def_Node;
     end P_Formal_Package_Declaration;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch13.adb gcc-15.1.0/gcc/ada/par-ch13.adb
*** gcc-14.2.0/gcc/ada/par-ch13.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch13.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch13 is
*** 194,213 ****
     -- Get_Aspect_Specifications --
     -------------------------------
  
!    function Get_Aspect_Specifications
!      (Semicolon : Boolean := True) return List_Id
!    is
        A_Id    : Aspect_Id;
        Aspect  : Node_Id;
!       Aspects : List_Id;
        OK      : Boolean;
  
        Opt : Boolean;
        --  True if current aspect takes an optional argument
  
     begin
-       Aspects := Empty_List;
- 
        --  Check if aspect specification present
  
        if not Aspect_Specifications_Present then
--- 194,209 ----
     -- Get_Aspect_Specifications --
     -------------------------------
  
!    function Get_Aspect_Specifications (Semicolon : Boolean) return List_Id is
        A_Id    : Aspect_Id;
        Aspect  : Node_Id;
!       Aspects : List_Id := Empty_List;
        OK      : Boolean;
  
        Opt : Boolean;
        --  True if current aspect takes an optional argument
  
     begin
        --  Check if aspect specification present
  
        if not Aspect_Specifications_Present then
*************** package body Ch13 is
*** 909,933 ****
  
     procedure P_Aspect_Specifications
       (Decl      : Node_Id;
!       Semicolon : Boolean := True)
     is
!       Aspects : List_Id;
!       Ptr     : Source_Ptr;
  
     begin
!       --  Aspect Specification is present
! 
!       Ptr := Token_Ptr;
! 
!       --  Here we have an aspect specification to scan, note that we don't
!       --  set the flag till later, because it may turn out that we have no
!       --  valid aspects in the list.
! 
!       Aspects := Get_Aspect_Specifications (Semicolon);
! 
!       --  Here if aspects present
! 
!       if Is_Non_Empty_List (Aspects) then
  
           --  If Decl is Empty, we just ignore the aspects (the caller in this
           --  case has always issued an appropriate error message).
--- 905,917 ----
  
     procedure P_Aspect_Specifications
       (Decl      : Node_Id;
!       Semicolon : Boolean)
     is
!       Ptr     : constant Source_Ptr := Token_Ptr;
!       Aspects : constant List_Id := Get_Aspect_Specifications (Semicolon);
  
     begin
!       if Is_Non_Empty_List (Aspects) then -- Aspects present?
  
           --  If Decl is Empty, we just ignore the aspects (the caller in this
           --  case has always issued an appropriate error message).
*************** package body Ch13 is
*** 935,941 ****
           if Decl = Empty then
              null;
  
!          --  If Decl is Error, we ignore the aspects, and issue a message
  
           elsif Decl = Error
             or else not Permits_Aspect_Specifications (Decl)
--- 919,925 ----
           if Decl = Empty then
              null;
  
!          --  Cases where we issue an error
  
           elsif Decl = Error
             or else not Permits_Aspect_Specifications (Decl)
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch2.adb gcc-15.1.0/gcc/ada/par-ch2.adb
*** gcc-14.2.0/gcc/ada/par-ch2.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch2.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch2 is
*** 224,230 ****
  
     function P_Interpolated_String_Literal return Node_Id is
        Elements_List : constant List_Id := New_List;
-       NL_Node       : Node_Id;
        Saved_State   : constant Boolean := Inside_Interpolated_String_Literal;
        String_Node   : Node_Id;
  
--- 224,229 ----
*************** package body Ch2 is
*** 238,243 ****
--- 237,243 ----
           Error_Msg_SC ("string literal expected");
  
        else
+          Set_Is_Interpolated_String_Literal (Token_Node);
           Append_To (Elements_List, Token_Node);
           Scan;  --  past string_literal
  
*************** package body Ch2 is
*** 258,274 ****
                    T_Right_Curly_Bracket;
                 end;
              else
!                if Prev_Token = Tok_String_Literal then
!                   NL_Node := New_Node (N_String_Literal, Token_Ptr);
!                   Set_Has_Wide_Character (NL_Node, False);
!                   Set_Has_Wide_Wide_Character (NL_Node, False);
! 
!                   Start_String;
!                   Store_String_Char (Get_Char_Code (ASCII.LF));
!                   Set_Strval (NL_Node, End_String);
!                   Append_To (Elements_List, NL_Node);
                 end if;
  
                 Append_To (Elements_List, Token_Node);
                 Scan; --  past string_literal
              end if;
--- 258,268 ----
                    T_Right_Curly_Bracket;
                 end;
              else
!                if Prev_Token /= Tok_Right_Curly_Bracket then
!                   Error_Msg_SC ("unexpected string literal");
                 end if;
  
+                Set_Is_Interpolated_String_Literal (Token_Node);
                 Append_To (Elements_List, Token_Node);
                 Scan; --  past string_literal
              end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch3.adb gcc-15.1.0/gcc/ada/par-ch3.adb
*** gcc-14.2.0/gcc/ada/par-ch3.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch3.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch3 is
*** 881,887 ****
  
        Set_Defining_Identifier (Decl_Node, Ident_Node);
        Set_Discriminant_Specifications (Decl_Node, Discr_List);
!       P_Aspect_Specifications (Decl_Node);
        return Decl_Node;
     end P_Type_Declaration;
  
--- 881,887 ----
  
        Set_Defining_Identifier (Decl_Node, Ident_Node);
        Set_Discriminant_Specifications (Decl_Node, Discr_List);
!       P_Aspect_Specifications (Decl_Node, Semicolon => True);
        return Decl_Node;
     end P_Type_Declaration;
  
*************** package body Ch3 is
*** 930,936 ****
  
        Set_Subtype_Indication
          (Decl_Node, P_Subtype_Indication (Not_Null_Present));
!       P_Aspect_Specifications (Decl_Node);
        return Decl_Node;
     end P_Subtype_Declaration;
  
--- 930,936 ----
  
        Set_Subtype_Indication
          (Decl_Node, P_Subtype_Indication (Not_Null_Present));
!       P_Aspect_Specifications (Decl_Node, Semicolon => True);
        return Decl_Node;
     end P_Subtype_Declaration;
  
*************** package body Ch3 is
*** 1196,1205 ****
        elsif Token = Tok_Left_Paren then
           return P_Index_Or_Discriminant_Constraint;
  
-       elsif Token = Tok_In then
-          Ignore (Tok_In);
-          return P_Constraint_Opt;
- 
        --  One more possibility is e.g. 1 .. 10 (i.e. missing RANGE keyword)
  
        elsif Token = Tok_Identifier      or else
--- 1196,1201 ----
*************** package body Ch3 is
*** 3065,3071 ****
           Range_Node := New_Node (N_Range, Token_Ptr);
           Set_Low_Bound (Range_Node, Expr_Node);
  
!          if Style_Check then
              Style.Check_Xtra_Parens (Expr_Node);
           end if;
  
--- 3061,3076 ----
           Range_Node := New_Node (N_Range, Token_Ptr);
           Set_Low_Bound (Range_Node, Expr_Node);
  
!          --  If the bound doesn't require parentheses, then emit a style
!          --  check. Parentheses that change an "expression" syntax node into a
!          --  "simple expression" are required; we filter those nodes both here
!          --  and inside Check_Xtra_Parens itself.
! 
!          if Style_Check
!            and then Nkind (Expr_Node) not in N_Membership_Test
!                                            | N_Op_Boolean
!                                            | N_Short_Circuit
!          then
              Style.Check_Xtra_Parens (Expr_Node);
           end if;
  
*************** package body Ch3 is
*** 3074,3084 ****
           Check_Simple_Expression (Expr_Node);
           Set_High_Bound (Range_Node, Expr_Node);
  
!          --  If Expr_Node (ignoring parentheses) is not a simple expression
!          --  then emit a style check.
  
           if Style_Check
!            and then Nkind (Expr_Node) not in N_Op_Boolean | N_Subexpr
           then
              Style.Check_Xtra_Parens (Expr_Node);
           end if;
--- 3079,3090 ----
           Check_Simple_Expression (Expr_Node);
           Set_High_Bound (Range_Node, Expr_Node);
  
!          --  Check for extra parentheses like for the lower bound
  
           if Style_Check
!            and then Nkind (Expr_Node) not in N_Membership_Test
!                                            | N_Op_Boolean
!                                            | N_Short_Circuit
           then
              Style.Check_Xtra_Parens (Expr_Node);
           end if;
*************** package body Ch3 is
*** 3270,3276 ****
                   (Specification_Node, Init_Expr_Opt (True));
  
                 if Token = Tok_With then
!                   P_Aspect_Specifications (Specification_Node, False);
                 end if;
  
                 if Ident > 1 then
--- 3276,3283 ----
                   (Specification_Node, Init_Expr_Opt (True));
  
                 if Token = Tok_With then
!                   P_Aspect_Specifications
!                     (Specification_Node, Semicolon => False);
                 end if;
  
                 if Ident > 1 then
*************** package body Ch3 is
*** 3844,3850 ****
                 --  end if;
  
                 Set_Subtype_Indication (CompDef_Node, Empty);
!                Set_Aliased_Present    (CompDef_Node, False);
                 Set_Access_Definition  (CompDef_Node,
                   P_Access_Definition (Not_Null_Present));
              else
--- 3851,3857 ----
                 --  end if;
  
                 Set_Subtype_Indication (CompDef_Node, Empty);
!                Set_Aliased_Present    (CompDef_Node, Aliased_Present);
                 Set_Access_Definition  (CompDef_Node,
                   P_Access_Definition (Not_Null_Present));
              else
*************** package body Ch3 is
*** 3873,3880 ****
                 Set_More_Ids (Decl_Node, True);
              end if;
  
!             Append (Decl_Node, Decls);
  
           exception
              when Error_Resync =>
                 if Token /= Tok_End then
--- 3880,3888 ----
                 Set_More_Ids (Decl_Node, True);
              end if;
  
!             P_Aspect_Specifications (Decl_Node, Semicolon => True);
  
+             Append (Decl_Node, Decls);
           exception
              when Error_Resync =>
                 if Token /= Tok_End then
*************** package body Ch3 is
*** 3887,3894 ****
           Restore_Scan_State (Scan_State);
           T_Colon;
        end loop Ident_Loop;
- 
-       P_Aspect_Specifications (Decl_Node);
     end P_Component_Items;
  
     --------------------------------
--- 3895,3900 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch4.adb gcc-15.1.0/gcc/ada/par-ch4.adb
*** gcc-14.2.0/gcc/ada/par-ch4.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch4.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch4 is
*** 218,223 ****
--- 218,225 ----
        Arg_List  : List_Id := No_List; -- kill junk warning
        Attr_Name : Name_Id := No_Name; -- kill junk warning
  
+       Error_Loc : Source_Ptr;
+ 
     begin
        --  Case of not a name
  
*************** package body Ch4 is
*** 889,901 ****
           ("positional parameter association " &
             "not allowed after named one");
  
        Expr_Node := P_Expression_If_OK;
  
        --  Leaving the '>' in an association is not unusual, so suggest
        --  a possible fix.
  
        if Nkind (Expr_Node) = N_Op_Eq then
!          Error_Msg_N ("\maybe `='>` was intended", Expr_Node);
        end if;
  
        --  We go back to scanning out expressions, so that we do not get
--- 891,906 ----
           ("positional parameter association " &
             "not allowed after named one");
  
+       Error_Loc := Token_Ptr;
+ 
        Expr_Node := P_Expression_If_OK;
  
        --  Leaving the '>' in an association is not unusual, so suggest
        --  a possible fix.
  
        if Nkind (Expr_Node) = N_Op_Eq then
!          Error_Msg_Sloc := Sloc (Expr_Node);
!          Error_Msg ("\maybe `='>` was intended #", Error_Loc);
        end if;
  
        --  We go back to scanning out expressions, so that we do not get
*************** package body Ch4 is
*** 2176,2183 ****
        --  First check for raise expression
  
        if Token = Tok_Raise then
           Expr_Form := EF_Non_Simple;
!          return P_Raise_Expression;
        end if;
  
        --  All other cases
--- 2181,2189 ----
        --  First check for raise expression
  
        if Token = Tok_Raise then
+          Node1 := P_Raise_Expression;
           Expr_Form := EF_Non_Simple;
!          return Node1;
        end if;
  
        --  All other cases
*************** package body Ch4 is
*** 2410,2415 ****
--- 2416,2423 ----
              Node1 := P_Term;
           end if;
  
+          Expr_Form := EF_Simple;
+ 
           --  In the following, we special-case a sequence of concatenations of
           --  string literals, such as "aaa" & "bbb" & ... & "ccc", with nothing
           --  else mixed in. For such a sequence, we return a tree representing
*************** package body Ch4 is
*** 2525,2535 ****
                 end;
              end if;
           end;
- 
-          --  All done, we clearly do not have name or numeric literal so this
-          --  is a case of a simple expression which is some other possibility.
- 
-          Expr_Form := EF_Simple;
        end if;
  
        --  If all extensions are enabled and we have a deep delta aggregate
--- 2533,2538 ----
*************** package body Ch4 is
*** 2836,2841 ****
--- 2839,2868 ----
        Node1 : Node_Id;
        Node2 : Node_Id;
  
+       subtype N_Primary is Node_Kind with Static_Predicate =>
+         N_Primary in N_Aggregate
+                    | N_Allocator
+                    | N_Attribute_Reference
+                    | N_Case_Expression            --  requires single parens
+                    | N_Delta_Aggregate
+                    | N_Direct_Name
+                    | N_Explicit_Dereference
+                    | N_Expression_With_Actions    --  requires single parens
+                    | N_Extension_Aggregate
+                    | N_If_Expression              --  requires single parens
+                    | N_Indexed_Component
+                    | N_Null
+                    | N_Numeric_Or_String_Literal
+                    | N_Qualified_Expression
+                    | N_Quantified_Expression      --  requires single parens
+                    | N_Selected_Component
+                    | N_Slice
+                    | N_Subprogram_Call
+                    | N_Target_Name
+                    | N_Type_Conversion;
+       --  Node kinds that represents a "primary" subexpression, which does not
+       --  require parentheses when used as an operand of a unary operator.
+ 
     begin
        if Token = Tok_Abs then
           Node1 := New_Op_Node (N_Op_Abs, Token_Ptr);
*************** package body Ch4 is
*** 2846,2851 ****
--- 2873,2885 ----
  
           Scan; -- past ABS
           Set_Right_Opnd (Node1, P_Primary);
+ 
+          if Style_Check then
+             if Nkind (Right_Opnd (Node1)) in N_Primary then
+                Style.Check_Xtra_Parens_Precedence (Right_Opnd (Node1));
+             end if;
+          end if;
+ 
           return Node1;
  
        elsif Token = Tok_Not then
*************** package body Ch4 is
*** 2857,2862 ****
--- 2891,2903 ----
  
           Scan; -- past NOT
           Set_Right_Opnd (Node1, P_Primary);
+ 
+          if Style_Check then
+             if Nkind (Right_Opnd (Node1)) in N_Primary then
+                Style.Check_Xtra_Parens_Precedence (Right_Opnd (Node1));
+             end if;
+          end if;
+ 
           return Node1;
  
        else
*************** package body Ch4 is
*** 3078,3084 ****
                    return P_Identifier;
                 end if;
  
!             --  For [all | some]  indicates a quantified expression
  
              when Tok_For =>
                 if Token_Is_At_Start_Of_Line then
--- 3119,3125 ----
                    return P_Identifier;
                 end if;
  
!             --  Quantified expression or iterated component association
  
              when Tok_For =>
                 if Token_Is_At_Start_Of_Line then
*************** package body Ch4 is
*** 3098,3106 ****
--- 3139,3156 ----
                            ("quantified expression must be parenthesized",
                             Sloc (Node1));
                       end if;
+ 
+                   --  If no quantifier keyword, this is an iterated component
+                   --  in an aggregate or an ill-formed quantified expression.
+ 
                    else
                       Restore_Scan_State (Scan_State);  -- To FOR
                       Node1 := P_Iterated_Component_Association;
+ 
+                      if not (Lparen and then Token = Tok_Right_Paren) then
+                         Error_Msg
+                           ("construct must be parenthesized", Sloc (Node1));
+                      end if;
                    end if;
  
                    return Node1;
*************** package body Ch4 is
*** 3584,3589 ****
--- 3634,3640 ----
        Iter_Spec  : Node_Id;
        Loop_Spec  : Node_Id;
        State      : Saved_Scan_State;
+       In_Reverse : Boolean := False;
  
        procedure Build_Iterated_Element_Association;
        --  If the iterator includes a key expression or a filter, it is
*************** package body Ch4 is
*** 3602,3607 ****
--- 3653,3660 ----
             New_Node (N_Loop_Parameter_Specification, Prev_Token_Ptr);
           Set_Defining_Identifier (Loop_Spec, Id);
  
+          Set_Reverse_Present (Loop_Spec, In_Reverse);
+ 
           Choice := First (Discrete_Choices (Assoc_Node));
           Assoc_Node :=
             New_Node (N_Iterated_Element_Association, Prev_Token_Ptr);
*************** package body Ch4 is
*** 3644,3649 ****
--- 3697,3709 ----
           when Tok_In =>
              Set_Defining_Identifier (Assoc_Node, Id);
              T_In;
+ 
+             if Token = Tok_Reverse then
+                Scan; -- past REVERSE
+                Set_Reverse_Present (Assoc_Node, True);
+                In_Reverse := True;
+             end if;
+ 
              Set_Discrete_Choices (Assoc_Node, P_Discrete_Choice_List);
  
              --  The iterator may include a filter
*************** package body Ch4 is
*** 3673,3679 ****
              TF_Arrow;
              Set_Expression (Assoc_Node, P_Expression);
  
!          when Tok_Of =>
              Restore_Scan_State (State);
              Scan;  -- past OF
              Iter_Spec := P_Iterator_Specification (Id);
--- 3733,3739 ----
              TF_Arrow;
              Set_Expression (Assoc_Node, P_Expression);
  
!          when Tok_Colon | Tok_Of =>
              Restore_Scan_State (State);
              Scan;  -- past OF
              Iter_Spec := P_Iterator_Specification (Id);
*************** package body Ch4 is
*** 3904,3910 ****
        if Token = Tok_Vertical_Bar then
           Error_Msg_Ada_2012_Feature ("set notation", Token_Ptr);
           Set_Alternatives (N, New_List (Alt));
-          Set_Right_Opnd   (N, Empty);
  
           --  Loop to accumulate alternatives
  
--- 3964,3969 ----
*************** package body Ch4 is
*** 3918,3925 ****
        --  Not set case
  
        else
!          Set_Right_Opnd   (N, Alt);
!          Set_Alternatives (N, No_List);
        end if;
     end P_Membership_Test;
  
--- 3977,3983 ----
        --  Not set case
  
        else
!          Set_Right_Opnd (N, Alt);
        end if;
     end P_Membership_Test;
  
*************** package body Ch4 is
*** 3968,3979 ****
                   ("quantified expression must be parenthesized!", Result);
              end if;
  
!          else
!             --  If no quantifier keyword, this is an iterated component in
!             --  an aggregate.
  
              Restore_Scan_State (Scan_State);
              Result := P_Iterated_Component_Association;
           end if;
  
        --  Declare expression
--- 4026,4042 ----
                   ("quantified expression must be parenthesized!", Result);
              end if;
  
!          --  If no quantifier keyword, this is an iterated component in
!          --  an aggregate or an ill-formed quantified expression.
  
+          else
              Restore_Scan_State (Scan_State);
              Result := P_Iterated_Component_Association;
+ 
+             if not (Lparen and then Token = Tok_Right_Paren) then
+                Error_Msg_N
+                  ("construct must be parenthesized!", Result);
+             end if;
           end if;
  
        --  Declare expression
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch5.adb gcc-15.1.0/gcc/ada/par-ch5.adb
*** gcc-14.2.0/gcc/ada/par-ch5.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch5.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,32 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- pragma Style_Checks (All_Checks);
- --  Turn off subprogram body ordering check. Subprograms are in order by RM
- --  section rather than alphabetical.
- 
  with Sinfo.CN;       use Sinfo.CN;
  
  separate (Par)
--- 23,28 ----
*************** package body Ch5 is
*** 135,142 ****
     --  parsing a statement, then the scan pointer is advanced past the next
     --  semicolon and the parse continues.
  
!    function P_Sequence_Of_Statements
!      (SS_Flags : SS_Rec; Handled : Boolean := False) return List_Id
     is
        Statement_Required : Boolean := SS_Flags.Sreq;
        --  This flag indicates if a subsequent statement (other than a pragma)
--- 131,137 ----
     --  parsing a statement, then the scan pointer is advanced past the next
     --  semicolon and the parse continues.
  
!    function P_Sequence_Of_Statements (SS_Flags : SS_Rec) return List_Id
     is
        Statement_Required : Boolean := SS_Flags.Sreq;
        --  This flag indicates if a subsequent statement (other than a pragma)
*************** package body Ch5 is
*** 209,215 ****
                 null;
  
              --  If not Ada 2012, or not special case above, and no declaration
!             --  seen (as allowed in Ada 2020), give error message.
  
              elsif No (Decl_Loc) then
                 Error_Msg_BC -- CODEFIX
--- 204,210 ----
                 null;
  
              --  If not Ada 2012, or not special case above, and no declaration
!             --  seen (as allowed in Ada 2022), give error message.
  
              elsif No (Decl_Loc) then
                 Error_Msg_BC -- CODEFIX
*************** package body Ch5 is
*** 221,252 ****
     --  Start of processing for P_Sequence_Of_Statements
  
     begin
!       --  In Ada 2022, we allow declarative items to be mixed with
!       --  statements. The loop below alternates between calling
!       --  P_Declarative_Items to parse zero or more declarative items,
!       --  and parsing a statement.
  
        loop
           Ignore (Tok_Semicolon);
  
           declare
              Num_Statements : constant Nat := List_Length (Statement_List);
           begin
              P_Declarative_Items
                (Statement_List, Declare_Expression => False,
                 In_Spec => False, In_Statements => True);
  
              --  Use the length of the list to determine whether we parsed
!             --  any declarative items. If so, it's an error unless language
!             --  extensions are enabled.
  
              if List_Length (Statement_List) > Num_Statements then
                 if All_Errors_Mode or else No (Decl_Loc) then
!                   Decl_Loc := Sloc (Pick (Statement_List, Num_Statements + 1));
  
                    Error_Msg_GNAT_Extension
!                     ("declarations mixed with statements",
!                      Sloc (Pick (Statement_List, Num_Statements + 1)));
                 end if;
              end if;
           end;
--- 216,271 ----
     --  Start of processing for P_Sequence_Of_Statements
  
     begin
!       --  When extensions are active, we allow declarative items to be mixed
!       --  with statements. The loop below alternates between calling
!       --  P_Declarative_Items to parse zero or more declarative items, and
!       --  parsing a statement.
  
        loop
           Ignore (Tok_Semicolon);
  
           declare
              Num_Statements : constant Nat := List_Length (Statement_List);
+             Decl           : Node_Id;
           begin
              P_Declarative_Items
                (Statement_List, Declare_Expression => False,
                 In_Spec => False, In_Statements => True);
  
              --  Use the length of the list to determine whether we parsed
!             --  any declarative items.
  
              if List_Length (Statement_List) > Num_Statements then
+                Decl := Pick (Statement_List, Num_Statements + 1);
+ 
+                --  If so, it's an error unless language extensions are enabled.
+ 
                 if All_Errors_Mode or else No (Decl_Loc) then
!                   Decl_Loc := Sloc (Decl);
  
                    Error_Msg_GNAT_Extension
!                     ("declarations mixed with statements", Sloc (Decl),
!                      Is_Core_Extension => True);
! 
!                end if;
! 
!                --  Check every declaration added to the list, to see whether
!                --  it's part of the allowed subset of declarations. Only check
!                --  that if core extensions are allowed.
! 
!                if Core_Extensions_Allowed then
!                   while Present (Decl) loop
!                      if not (Nkind (Decl) in
!                         N_Object_Declaration | N_Object_Renaming_Declaration |
!                         N_Use_Type_Clause | N_Use_Package_Clause)
!                      then
!                         Error_Msg
!                           ("Declaration kind not allowed in statements lists",
!                            Sloc (Decl));
!                      end if;
! 
!                      Next (Decl);
!                   end loop;
                 end if;
              end if;
           end;
*************** package body Ch5 is
*** 389,394 ****
--- 408,432 ----
  
                    exit;
  
+                --  Case of finally
+ 
+                when Tok_Finally =>
+                   Test_Statement_Required;
+ 
+                   --  See the analogous comment in the Tok_Exception branch.
+ 
+                   if not SS_Flags.Fitm
+                     and then Start_Column >= Scopes (Scope.Last).Ecol
+                   then
+                      Error_Msg_SC ("finally construct not permitted here");
+                      Scan; -- past FINALLY
+                      Discard_Junk_List (P_Sequence_Of_Statements (SS_Sreq));
+                   end if;
+ 
+                   --  We exit like in the exception branch, should we really???
+ 
+                   exit;
+ 
                 --  Case of OR
  
                 when Tok_Or =>
*************** package body Ch5 is
*** 937,948 ****
           exit when SS_Flags.Unco;
        end loop;
  
!       --  If there are no declarative items in the list, or if the list is part
!       --  of a handled sequence of statements, we just return the list.
!       --  Otherwise, we wrap the list in a block statement, so the declarations
!       --  will have a proper scope. In the Handled case, it would be wrong to
!       --  wrap, because we want the code before and after "begin" to be in the
!       --  same scope. Example:
        --
        --     if ... then
        --        use Some_Package;
--- 975,983 ----
           exit when SS_Flags.Unco;
        end loop;
  
!       --  If there are declarative items in the list, we always wrap it in a
!       --  block, so that anything declared in a statement list is not visible
!       --  from the exception handlers. Example:
        --
        --     if ... then
        --        use Some_Package;
*************** package body Ch5 is
*** 958,974 ****
        --        end;
        --     end if;
        --
!       --  But we don't wrap this:
        --
        --     declare
        --        X : Integer;
        --     begin
        --        X : Integer;
        --
!       --  Otherwise, we would fail to detect the error (conflicting X's).
!       --  Similarly, if a representation clause appears in the statement
!       --  part, we don't want it to appear more nested than the declarative
!       --  part -- that would cause an unwanted error.
  
        if Present (Decl_Loc) then
           --  Forbid labels and declarative items from coexisting. Otherwise,
--- 993,1017 ----
        --        end;
        --     end if;
        --
!       --  This:
        --
        --     declare
        --        X : Integer;
        --     begin
        --        X : Integer;
        --
!       --  is transformed into this:
!       --
!       --     declare
!       --        X : Integer;
!       --     begin
!       --        declare
!       --           X : Integer;
!       --        begin
!       --           ...
!       --
!       --  We hence don't try to detect this case, even though it can be
!       --  confusing to users, and might possibly deserve a warning.
  
        if Present (Decl_Loc) then
           --  Forbid labels and declarative items from coexisting. Otherwise,
*************** package body Ch5 is
*** 983,1029 ****
              Error_Msg ("label in same list as declarative item", Label_Loc);
           end if;
  
!          --  Forbid exception handlers and declarative items from
!          --  coexisting. Example:
!          --
!          --     X : Integer := 123;
!          --     procedure P is
!          --     begin
!          --        X : Integer := 456;
!          --     exception
!          --        when Cain =>
!          --           Put(X);
!          --     end P;
!          --
!          --  It was proposed that in the handler, X should refer to the outer
!          --  X, but that's just confusing.
! 
!          if Token = Tok_Exception then
!             Error_Msg
!               ("declarative item in statements conflicts with " &
!                "exception handler below",
!                Decl_Loc);
!             Error_Msg
!               ("exception handler conflicts with " &
!                "declarative item in statements above",
!                Token_Ptr);
!          end if;
! 
!          if Handled then
!             return Statement_List;
!          else
!             declare
!                Loc : constant Source_Ptr := Sloc (First (Statement_List));
!                Block : constant Node_Id :=
!                  Make_Block_Statement
!                    (Loc,
!                     Handled_Statement_Sequence =>
!                       Make_Handled_Sequence_Of_Statements
!                         (Loc, Statements => Statement_List));
!             begin
!                return New_List (Block);
!             end;
!          end if;
        else
           return Statement_List;
        end if;
--- 1026,1042 ----
              Error_Msg ("label in same list as declarative item", Label_Loc);
           end if;
  
!          declare
!             Loc : constant Source_Ptr := Sloc (First (Statement_List));
!             Block : constant Node_Id :=
!               Make_Block_Statement
!                 (Loc,
!                  Handled_Statement_Sequence =>
!                    Make_Handled_Sequence_Of_Statements
!                      (Loc, Statements => Statement_List));
!          begin
!             return New_List (Block);
!          end;
        else
           return Statement_List;
        end if;
*************** package body Ch5 is
*** 1360,1365 ****
--- 1373,1403 ----
        else
           if Style_Check then
              Style.Check_Xtra_Parens (Cond);
+ 
+             --  When the condition is an operator then examine parentheses
+             --  surrounding the condition's operands - taking care to avoid
+             --  flagging operands which themselves are operators since they
+             --  may be required for resolution or precedence.
+ 
+             if Nkind (Cond) in N_Op
+                              | N_Membership_Test
+                              | N_Short_Circuit
+               and then Nkind (Right_Opnd (Cond)) not in N_Op
+                                                       | N_Membership_Test
+                                                       | N_Short_Circuit
+             then
+                Style.Check_Xtra_Parens (Right_Opnd (Cond));
+             end if;
+ 
+             if Nkind (Cond) in N_Binary_Op
+                              | N_Membership_Test
+                              | N_Short_Circuit
+               and then Nkind (Left_Opnd (Cond)) not in N_Op
+                                                      | N_Membership_Test
+                                                      | N_Short_Circuit
+             then
+                Style.Check_Xtra_Parens (Left_Opnd (Cond));
+             end if;
           end if;
  
           --  And return the result
*************** package body Ch5 is
*** 1720,1726 ****
        Scan_State : Saved_Scan_State;
  
     begin
- 
        Save_Scan_State (Scan_State);
        ID_Node := P_Defining_Identifier (C_In);
  
--- 1758,1763 ----
*************** package body Ch5 is
*** 1812,1829 ****
        elsif Token = Tok_In then
           Scan;  --  past IN
  
-       elsif Prev_Token = Tok_In
-         and then Present (Subtype_Indication (Node1))
-       then
-          --  Simplest recovery is to transform it into an element iterator.
-          --  Error message on 'in" has already been emitted when parsing the
-          --  optional constraint.
- 
-          Set_Of_Present (Node1);
-          Error_Msg_N
-            ("subtype indication is only legal on an element iterator",
-             Subtype_Indication (Node1));
- 
        else
           return Error;
        end if;
--- 1849,1854 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch6.adb gcc-15.1.0/gcc/ada/par-ch6.adb
*** gcc-14.2.0/gcc/ada/par-ch6.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch6.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch6 is
*** 344,350 ****
        end if;
  
        Scopes (Scope.Last).Labl := Name_Node;
-       Current_Node := Name_Node;
        Ignore (Tok_Colon);
  
        --  Deal with generic instantiation, the one case in which we do not
--- 344,349 ----
*************** package body Ch6 is
*** 371,377 ****
  
              Set_Defining_Unit_Name (Inst_Node, Name_Node);
              Set_Generic_Associations (Inst_Node, P_Generic_Actual_Part_Opt);
!             P_Aspect_Specifications (Inst_Node);
              Pop_Scope_Stack; -- Don't need scope stack entry in this case
  
              if Is_Overriding then
--- 370,376 ----
  
              Set_Defining_Unit_Name (Inst_Node, Name_Node);
              Set_Generic_Associations (Inst_Node, P_Generic_Actual_Part_Opt);
!             P_Aspect_Specifications (Inst_Node, Semicolon => True);
              Pop_Scope_Stack; -- Don't need scope stack entry in this case
  
              if Is_Overriding then
*************** package body Ch6 is
*** 565,571 ****
              Scan; -- past RENAMES
              Set_Name (Rename_Node, P_Name);
              Set_Specification (Rename_Node, Specification_Node);
!             P_Aspect_Specifications (Rename_Node);
              TF_Semicolon;
              Pop_Scope_Stack;
              return Rename_Node;
--- 564,570 ----
              Scan; -- past RENAMES
              Set_Name (Rename_Node, P_Name);
              Set_Specification (Rename_Node, Specification_Node);
!             P_Aspect_Specifications (Rename_Node, Semicolon => True);
              TF_Semicolon;
              Pop_Scope_Stack;
              return Rename_Node;
*************** package body Ch6 is
*** 595,601 ****
                 Set_Specification (Absdec_Node, Specification_Node);
                 Pop_Scope_Stack; -- discard unneeded entry
                 Scan; -- past ABSTRACT
!                P_Aspect_Specifications (Absdec_Node);
                 return Absdec_Node;
  
              --  Ada 2005 (AI-248): Parse a null procedure declaration
--- 594,600 ----
                 Set_Specification (Absdec_Node, Specification_Node);
                 Pop_Scope_Stack; -- discard unneeded entry
                 Scan; -- past ABSTRACT
!                P_Aspect_Specifications (Absdec_Node, Semicolon => True);
                 return Absdec_Node;
  
              --  Ada 2005 (AI-248): Parse a null procedure declaration
*************** package body Ch6 is
*** 884,889 ****
--- 883,889 ----
  
                       if not (Paren_Count (Expr) /= 0
                                or else Nkind (Expr) in N_Aggregate
+                                                     | N_Delta_Aggregate
                                                      | N_Extension_Aggregate
                                                      | N_Quantified_Expression)
                       then
*************** package body Ch6 is
*** 895,901 ****
  
                    --  Expression functions can carry pre/postconditions
  
!                   P_Aspect_Specifications (Body_Node);
                    Pop_Scope_Stack;
  
                 --  Subprogram body case
--- 895,901 ----
  
                    --  Expression functions can carry pre/postconditions
  
!                   P_Aspect_Specifications (Body_Node, Semicolon => True);
                    Pop_Scope_Stack;
  
                 --  Subprogram body case
*************** package body Ch6 is
*** 1624,1630 ****
              Error_Msg_Ada_2022_Feature
                ("aspect on formal parameter", Token_Ptr);
  
!             P_Aspect_Specifications (Specification_Node, False);
  
              --  Set the aspect specifications for previous Ids
  
--- 1624,1630 ----
              Error_Msg_Ada_2022_Feature
                ("aspect on formal parameter", Token_Ptr);
  
!             P_Aspect_Specifications (Specification_Node, Semicolon => False);
  
              --  Set the aspect specifications for previous Ids
  
*************** package body Ch6 is
*** 1911,1917 ****
           Is_Extended : Boolean := False;
  
        begin
- 
           if Token = Tok_Identifier then
              Save_Scan_State (Scan_State); -- at identifier
              Scan; -- past identifier
--- 1911,1916 ----
*************** package body Ch6 is
*** 1956,1962 ****
              Set_Return_Object_Declarations (Ret_Node, New_List (Decl));
  
              if Token = Tok_With then
!                P_Aspect_Specifications (Decl, False);
              end if;
  
              if Token = Tok_Do then
--- 1955,1961 ----
              Set_Return_Object_Declarations (Ret_Node, New_List (Decl));
  
              if Token = Tok_With then
!                P_Aspect_Specifications (Decl, Semicolon => False);
              end if;
  
              if Token = Tok_Do then
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch7.adb gcc-15.1.0/gcc/ada/par-ch7.adb
*** gcc-14.2.0/gcc/ada/par-ch7.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch7.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch7 is
*** 127,133 ****
           Scopes (Scope.Last).Sloc := Token_Ptr;
           Name_Node := P_Defining_Program_Unit_Name;
           Scopes (Scope.Last).Labl := Name_Node;
-          Current_Node := Name_Node;
  
           if Aspect_Specifications_Present then
              Aspect_Sloc := Token_Ptr;
--- 127,132 ----
*************** package body Ch7 is
*** 173,179 ****
           Scopes (Scope.Last).Sloc := Token_Ptr;
           Name_Node := P_Defining_Program_Unit_Name;
           Scopes (Scope.Last).Labl := Name_Node;
-          Current_Node := Name_Node;
  
           --  Case of renaming declaration
  
--- 172,177 ----
*************** package body Ch7 is
*** 233,243 ****
                 if Aspect_Sloc /= No_Location
                   and then not Aspect_Specifications_Present
                 then
!                   Error_Msg_SC ("info: aspect specifications belong here??");
                    Move_Aspects (From => Dummy_Node, To => Package_Node);
                 end if;
  
!                P_Aspect_Specifications (Package_Node);
                 Pop_Scope_Stack;
  
              --  Case of package declaration or package specification
--- 231,241 ----
                 if Aspect_Sloc /= No_Location
                   and then not Aspect_Specifications_Present
                 then
!                   Error_Msg_SC ("info: aspect specifications belong here");
                    Move_Aspects (From => Dummy_Node, To => Package_Node);
                 end if;
  
!                P_Aspect_Specifications (Package_Node, Semicolon => True);
                 Pop_Scope_Stack;
  
              --  Case of package declaration or package specification
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch8.adb gcc-15.1.0/gcc/ada/par-ch8.adb
*** gcc-14.2.0/gcc/ada/par-ch8.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/par-ch9.adb gcc-15.1.0/gcc/ada/par-ch9.adb
*** gcc-14.2.0/gcc/ada/par-ch9.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-ch9.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch9 is
*** 101,107 ****
           Scan; -- past BODY
           Name_Node := P_Defining_Identifier (C_Is);
           Scopes (Scope.Last).Labl := Name_Node;
-          Current_Node := Name_Node;
  
           if Token = Tok_Left_Paren then
              Error_Msg_SC ("discriminant part not allowed in task body");
--- 101,106 ----
*************** package body Ch9 is
*** 167,173 ****
              Name_Node := P_Defining_Identifier;
              Set_Defining_Identifier (Task_Node, Name_Node);
              Scopes (Scope.Last).Labl := Name_Node;
!             Current_Node := Name_Node;
              Set_Discriminant_Specifications
                (Task_Node, P_Known_Discriminant_Part_Opt);
  
--- 166,172 ----
              Name_Node := P_Defining_Identifier;
              Set_Defining_Identifier (Task_Node, Name_Node);
              Scopes (Scope.Last).Labl := Name_Node;
! 
              Set_Discriminant_Specifications
                (Task_Node, P_Known_Discriminant_Part_Opt);
  
*************** package body Ch9 is
*** 176,182 ****
              Name_Node := P_Defining_Identifier (C_Is);
              Set_Defining_Identifier (Task_Node, Name_Node);
              Scopes (Scope.Last).Labl := Name_Node;
-             Current_Node := Name_Node;
  
              if Token = Tok_Left_Paren then
                 Error_Msg_SC ("discriminant part not allowed for single task");
--- 175,180 ----
*************** package body Ch9 is
*** 442,448 ****
           Scan; -- past BODY
           Name_Node := P_Defining_Identifier (C_Is);
           Scopes (Scope.Last).Labl := Name_Node;
-          Current_Node := Name_Node;
  
           if Token = Tok_Left_Paren then
              Error_Msg_SC ("discriminant part not allowed in protected body");
--- 440,445 ----
*************** package body Ch9 is
*** 497,503 ****
              Name_Node := P_Defining_Identifier (C_Is);
              Set_Defining_Identifier (Protected_Node, Name_Node);
              Scopes (Scope.Last).Labl := Name_Node;
-             Current_Node := Name_Node;
              Set_Discriminant_Specifications
                (Protected_Node, P_Known_Discriminant_Part_Opt);
  
--- 494,499 ----
*************** package body Ch9 is
*** 514,520 ****
              end if;
  
              Scopes (Scope.Last).Labl := Name_Node;
-             Current_Node := Name_Node;
           end if;
  
           P_Aspect_Specifications (Protected_Node, Semicolon => False);
--- 510,515 ----
*************** package body Ch9 is
*** 1029,1035 ****
           Discard_Junk_Node (P_Expression_No_Right_Paren);
        end if;
  
!       P_Aspect_Specifications (Decl_Node);
        return Decl_Node;
  
     exception
--- 1024,1030 ----
           Discard_Junk_Node (P_Expression_No_Right_Paren);
        end if;
  
!       P_Aspect_Specifications (Decl_Node, Semicolon => True);
        return Decl_Node;
  
     exception
*************** package body Ch9 is
*** 1066,1072 ****
        Accept_Node := New_Node (N_Accept_Statement, Token_Ptr);
        Scan; -- past ACCEPT
        Scopes (Scope.Last).Labl := Token_Node;
-       Current_Node := Token_Node;
  
        Set_Entry_Direct_Name (Accept_Node, P_Identifier (C_Do));
  
--- 1061,1066 ----
*************** package body Ch9 is
*** 1215,1221 ****
        Name_Node := P_Defining_Identifier;
        Set_Defining_Identifier (Entry_Node, Name_Node);
        Scopes (Scope.Last).Labl := Name_Node;
-       Current_Node := Name_Node;
  
        Formal_Part_Node := P_Entry_Body_Formal_Part;
        Set_Entry_Body_Formal_Part (Entry_Node, Formal_Part_Node);
--- 1209,1214 ----
*************** package body Ch9 is
*** 1318,1324 ****
          (Iterator_Node, P_Discrete_Subtype_Definition);
  
        if Token = Tok_With then
!          P_Aspect_Specifications (Iterator_Node, False);
        end if;
  
        return Iterator_Node;
--- 1311,1317 ----
          (Iterator_Node, P_Discrete_Subtype_Definition);
  
        if Token = Tok_With then
!          P_Aspect_Specifications (Iterator_Node, Semicolon => False);
        end if;
  
        return Iterator_Node;
diff -Nrcpad gcc-14.2.0/gcc/ada/par-endh.adb gcc-15.1.0/gcc/ada/par-endh.adb
*** gcc-14.2.0/gcc/ada/par-endh.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-endh.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Stringt;  use Stringt;
*** 28,33 ****
--- 28,34 ----
  with Uintp;    use Uintp;
  
  with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
+ with Diagnostics.Constructors; use Diagnostics.Constructors;
  
  separate (Par)
  package body Endh is
*************** package body Endh is
*** 412,430 ****
                       Error_Msg_SC
                         ("misplaced aspects for package declaration");
                       Error_Msg
!                        ("info: aspect specifications belong here??", Is_Loc);
!                      P_Aspect_Specifications (Empty);
  
                    --  Other cases where aspect specifications are not allowed
  
                    else
!                      P_Aspect_Specifications (Error);
                    end if;
  
                 --  Aspect specifications allowed
  
                 else
!                   P_Aspect_Specifications (Decl);
                 end if;
  
              --  If no aspect specifications, must have a semicolon
--- 413,431 ----
                       Error_Msg_SC
                         ("misplaced aspects for package declaration");
                       Error_Msg
!                        ("info: aspect specifications belong here", Is_Loc);
!                      P_Aspect_Specifications (Empty, Semicolon => True);
  
                    --  Other cases where aspect specifications are not allowed
  
                    else
!                      P_Aspect_Specifications (Error, Semicolon => True);
                    end if;
  
                 --  Aspect specifications allowed
  
                 else
!                   P_Aspect_Specifications (Decl, Semicolon => True);
                 end if;
  
              --  If no aspect specifications, must have a semicolon
*************** package body Endh is
*** 896,901 ****
--- 897,904 ----
     procedure Output_End_Expected (Ins : Boolean) is
        End_Type : SS_End_Type;
  
+       Wrong_End_Start : Source_Ptr;
+       Wrong_End_Finish : Source_Ptr;
     begin
        --  Suppress message if this was a potentially junk entry (e.g. a record
        --  entry where no record keyword was present).
*************** package body Endh is
*** 932,939 ****
  
        elsif End_Type = E_Loop then
           if Error_Msg_Node_1 = Empty then
!             Error_Msg_SC -- CODEFIX
!               ("`END LOOP;` expected@ for LOOP#!");
           else
              Error_Msg_SC -- CODEFIX
                ("`END LOOP &;` expected@!");
--- 935,966 ----
  
        elsif End_Type = E_Loop then
           if Error_Msg_Node_1 = Empty then
! 
!             if Debug_Flag_Underscore_DD then
! 
!                --  TODO: This is a quick hack to get the location of the
!                --  END LOOP for the demonstration.
! 
!                Wrong_End_Start := Token_Ptr;
! 
!                while Token /= Tok_Semicolon loop
!                   Scan; -- past semicolon
!                end loop;
! 
!                Wrong_End_Finish := Token_Ptr;
! 
!                Restore_Scan_State (Scan_State);
! 
!                Record_End_Loop_Expected_Error
!                  (End_Loc   => To_Span (First => Wrong_End_Start,
!                                         Ptr   => Wrong_End_Start,
!                                         Last  => Wrong_End_Finish),
!                   Start_Loc => Error_Msg_Sloc);
! 
!             else
!                Error_Msg_SC -- CODEFIX
!                  ("`END LOOP;` expected@ for LOOP#!");
!             end if;
           else
              Error_Msg_SC -- CODEFIX
                ("`END LOOP &;` expected@!");
diff -Nrcpad gcc-14.2.0/gcc/ada/par-labl.adb gcc-15.1.0/gcc/ada/par-labl.adb
*** gcc-14.2.0/gcc/ada/par-labl.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-labl.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Labl is
*** 356,364 ****
  
           Remove (Loop_Header);
           Rewrite (Loop_End, Loop_Stmt);
-          Error_Msg_N
-            ("info: code between label and backwards goto rewritten as loop??",
-              Loop_End);
        end Rewrite_As_Loop;
  
        --------------
--- 356,361 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/par-load.adb gcc-15.1.0/gcc/ada/par-load.adb
*** gcc-14.2.0/gcc/ada/par-load.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-load.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 258,265 ****
        --  have set our Fatal_Error flag to propagate this condition.
  
        if Unum /= No_Unit then
!          Set_Library_Unit (Curunit, Cunit (Unum));
!          Set_Library_Unit (Cunit (Unum), Curunit);
  
           --  If this is a separate spec for the main unit, then we reset
           --  Main_Unit_Entity to point to the entity for this separate spec
--- 258,265 ----
        --  have set our Fatal_Error flag to propagate this condition.
  
        if Unum /= No_Unit then
!          Set_Spec_Lib_Unit (Curunit, Cunit (Unum));
!          Set_Body_Lib_Unit (Cunit (Unum), Curunit);
  
           --  If this is a separate spec for the main unit, then we reset
           --  Main_Unit_Entity to point to the entity for this separate spec
*************** begin
*** 284,290 ****
  
        elsif Nkind (Unit (Curunit)) = N_Subprogram_Body then
           Set_Acts_As_Spec (Curunit, True);
!          Set_Library_Unit (Curunit, Curunit);
  
        --  Otherwise we do have an error, repeat the load request for the spec
        --  with Required set True to generate an appropriate error message.
--- 284,290 ----
  
        elsif Nkind (Unit (Curunit)) = N_Subprogram_Body then
           Set_Acts_As_Spec (Curunit, True);
!          Set_Spec_Lib_Unit (Curunit, Curunit);
  
        --  Otherwise we do have an error, repeat the load request for the spec
        --  with Required set True to generate an appropriate error message.
*************** begin
*** 341,347 ****
             Error_Node => Name (Unit (Curunit)));
  
        if Unum /= No_Unit then
!          Set_Library_Unit (Curunit, Cunit (Unum));
        end if;
     end if;
  
--- 341,347 ----
             Error_Node => Name (Unit (Curunit)));
  
        if Unum /= No_Unit then
!          Set_Subunit_Parent (Curunit, Cunit (Unum));
        end if;
     end if;
  
*************** begin
*** 397,403 ****
              --  unit gets a fatal error, so we don't need to worry about that.
  
              if Unum /= No_Unit then
!                Set_Library_Unit (With_Node, Cunit (Unum));
  
              --  If the spec isn't found, then try finding the corresponding
              --  body, since it is possible that we have a subprogram body
--- 397,403 ----
              --  unit gets a fatal error, so we don't need to worry about that.
  
              if Unum /= No_Unit then
!                Set_Withed_Lib_Unit (With_Node, Cunit (Unum));
  
              --  If the spec isn't found, then try finding the corresponding
              --  body, since it is possible that we have a subprogram body
*************** begin
*** 414,429 ****
                      Renamings  => True);
  
                 --  If we got a subprogram body, then mark that we are using
!                --  the body as a spec in the file table, and set the spec
!                --  pointer in the N_With_Clause to point to the body entity.
  
                 if Unum /= No_Unit
                   and then Nkind (Unit (Cunit (Unum))) = N_Subprogram_Body
                 then
                    With_Cunit := Cunit (Unum);
!                   Set_Library_Unit (With_Node, With_Cunit);
!                   Set_Acts_As_Spec (With_Cunit, True);
!                   Set_Library_Unit (With_Cunit, With_Cunit);
  
                 --  If we couldn't find the body, or if it wasn't a body spec
                 --  then we are in trouble. We make one more call to Load to
--- 414,442 ----
                      Renamings  => True);
  
                 --  If we got a subprogram body, then mark that we are using
!                --  the body as a spec in the file table, and set
!                --  Withed_Lib_Unit of the N_With_Clause to point to
!                --  the body entity.
  
                 if Unum /= No_Unit
                   and then Nkind (Unit (Cunit (Unum))) = N_Subprogram_Body
                 then
                    With_Cunit := Cunit (Unum);
!                   Set_Withed_Lib_Unit (With_Node, With_Cunit);
! 
!                   --  If we have errors, Acts_As_Spec and Spec_Lib_Unit might
!                   --  not be set; set them for better error recovery.
! 
!                   if Serious_Errors_Detected > 0 then
!                      Set_Acts_As_Spec (With_Cunit, True);
!                      Set_Spec_Lib_Unit (With_Cunit, With_Cunit);
! 
!                   --  Otherwise, these field should already by set
! 
!                   else
!                      pragma Assert (Acts_As_Spec (With_Cunit));
!                      pragma Assert (Spec_Lib_Unit (With_Cunit) = With_Cunit);
!                   end if;
  
                 --  If we couldn't find the body, or if it wasn't a body spec
                 --  then we are in trouble. We make one more call to Load to
*************** begin
*** 443,449 ****
                    --  Here we create a dummy package unit for the missing unit
  
                    Unum := Create_Dummy_Package_Unit (With_Node, Spec_Name);
!                   Set_Library_Unit (With_Node, Cunit (Unum));
                 end if;
              end if;
           end if;
--- 456,462 ----
                    --  Here we create a dummy package unit for the missing unit
  
                    Unum := Create_Dummy_Package_Unit (With_Node, Spec_Name);
!                   Set_Withed_Lib_Unit (With_Node, Cunit (Unum));
                 end if;
              end if;
           end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/par-prag.adb gcc-15.1.0/gcc/ada/par-prag.adb
*** gcc-14.2.0/gcc/ada/par-prag.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-prag.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,35 ----
  --  which require recognition and either partial or complete processing
  --  during parsing, and this unit performs this required processing.
  
+ with Fmap;
  with Fname.UF; use Fname.UF;
  with Osint;    use Osint;
  with Rident;   use Rident;
*************** function Prag (Pragma_Node : Node_Id; Se
*** 74,84 ****
     --  is a string literal. If not give error and raise Error_Resync.
  
     procedure Check_Arg_Is_On_Or_Off
!      (Arg : Node_Id; All_OK_Too : Boolean := False);
     --  Check the expression of the specified argument to make sure that it
     --  is an identifier which is either ON or OFF, and if not, then issue
!    --  an error message and raise Error_Resync. If All_OK_Too is True,
!    --  then an ALL identifer is also acceptable.
  
     procedure Check_No_Identifier (Arg : Node_Id);
     --  Checks that the given argument does not have an identifier. If
--- 75,85 ----
     --  is a string literal. If not give error and raise Error_Resync.
  
     procedure Check_Arg_Is_On_Or_Off
!      (Arg : Node_Id; All_Extensions_OK_Too : Boolean := False);
     --  Check the expression of the specified argument to make sure that it
     --  is an identifier which is either ON or OFF, and if not, then issue
!    --  an error message and raise Error_Resync. If All_Extensions_OK_Too is
!    --  True, then an ALL_EXTENSIONS identifer is also acceptable.
  
     procedure Check_No_Identifier (Arg : Node_Id);
     --  Checks that the given argument does not have an identifier. If
*************** function Prag (Pragma_Node : Node_Id; Se
*** 170,190 ****
     ----------------------------
  
     procedure Check_Arg_Is_On_Or_Off
!      (Arg : Node_Id; All_OK_Too : Boolean := False)
     is
        Argx : constant Node_Id := Expression (Arg);
        Error : Boolean := Nkind (Expression (Arg)) /= N_Identifier;
     begin
        if not Error then
           Error := Chars (Argx) not in Name_On | Name_Off
!            and then not (All_OK_Too and Chars (Argx) = Name_All);
        end if;
        if Error then
           Error_Msg_Name_2 := Name_On;
           Error_Msg_Name_3 := Name_Off;
  
!          if All_OK_Too then
!             Error_Msg_Name_4 := Name_All;
              Error_Msg_N ("argument for pragma% must be% or% or%", Argx);
           else
              Error_Msg_N ("argument for pragma% must be% or%", Argx);
--- 171,192 ----
     ----------------------------
  
     procedure Check_Arg_Is_On_Or_Off
!      (Arg : Node_Id; All_Extensions_OK_Too : Boolean := False)
     is
        Argx : constant Node_Id := Expression (Arg);
        Error : Boolean := Nkind (Expression (Arg)) /= N_Identifier;
     begin
        if not Error then
           Error := Chars (Argx) not in Name_On | Name_Off
!            and then not (All_Extensions_OK_Too
!                           and then Chars (Argx) = Name_All_Extensions);
        end if;
        if Error then
           Error_Msg_Name_2 := Name_On;
           Error_Msg_Name_3 := Name_Off;
  
!          if All_Extensions_OK_Too then
!             Error_Msg_Name_4 := Name_All_Extensions;
              Error_Msg_N ("argument for pragma% must be% or% or%", Argx);
           else
              Error_Msg_N ("argument for pragma% must be% or%", Argx);
*************** begin
*** 433,443 ****
        when Pragma_Extensions_Allowed =>
           Check_Arg_Count (1);
           Check_No_Identifier (Arg1);
!          Check_Arg_Is_On_Or_Off (Arg1, All_OK_Too => True);
  
           if Chars (Expression (Arg1)) = Name_On then
              Ada_Version := Ada_With_Core_Extensions;
!          elsif Chars (Expression (Arg1)) = Name_All then
              Ada_Version := Ada_With_All_Extensions;
           else
              Ada_Version := Ada_Version_Explicit;
--- 435,445 ----
        when Pragma_Extensions_Allowed =>
           Check_Arg_Count (1);
           Check_No_Identifier (Arg1);
!          Check_Arg_Is_On_Or_Off (Arg1, All_Extensions_OK_Too => True);
  
           if Chars (Expression (Arg1)) = Name_On then
              Ada_Version := Ada_With_Core_Extensions;
!          elsif Chars (Expression (Arg1)) = Name_All_Extensions then
              Ada_Version := Ada_With_All_Extensions;
           else
              Ada_Version := Ada_Version_Explicit;
*************** begin
*** 589,594 ****
--- 591,602 ----
        when Pragma_Source_File_Name
           | Pragma_Source_File_Name_Project
        =>
+          if Debug_Flag_Underscore_MM then
+             --  -gnatd_M is causes the compiler to ignore source file name
+             --  pragmas. It's used for reduced reproducer generation.
+             return Pragma_Node;
+          end if;
+ 
           Source_File_Name : declare
              Unam  : Unit_Name_Type;
              Expr1 : Node_Id;
*************** begin
*** 747,761 ****
                    and then
                   Nkind (Selector_Name (Expr1)) = N_Identifier)
              then
-                if Nkind (Expr1) = N_Identifier
-                  and then Chars (Expr1) = Name_System
-                then
-                   Error_Msg_N
-                     ("pragma Source_File_Name may not be used for System",
-                      Arg1);
-                   return Error;
-                end if;
- 
                 --  Process index argument if present
  
                 if Arg_Count = 3 then
--- 755,760 ----
*************** begin
*** 786,791 ****
--- 785,810 ----
  
                 Check_Arg_Is_String_Literal (Arg2);
  
+                if Nkind (Expr1) = N_Identifier
+                  and then Chars (Expr1) = Name_System
+                then
+                   --  We allow pragma Source_File_Name on System if it confirms
+                   --  a mapping that already exists in Fmap. The goal is to
+                   --  accommodate GPRbuild, which uses both a map file and
+                   --  a pragma, while at the same time preventing users from
+                   --  using just a pragma. Using just a pragma is a problem
+                   --  because those are not registered yet when
+                   --  Get_Target_Parameters is called.
+                   if Fmap.Mapped_File_Name (Name_To_Unit_Name (Name_System))
+                     /= Get_Fname (Arg2)
+                   then
+                      Error_Msg_N
+                        ("pragma Source_File_Name may not be used for System",
+                         Arg1);
+                      return Error;
+                   end if;
+                end if;
+ 
                 if Chars (Arg2) = Name_Spec_File_Name then
                    Set_File_Name
                      (Get_Spec_Name (Unam), Get_Fname (Arg2), Index);
*************** begin
*** 1429,1446 ****
--- 1448,1468 ----
           | Pragma_Eliminate
           | Pragma_Enable_Atomic_Synchronization
           | Pragma_Exceptional_Cases
+          | Pragma_Exit_Cases
           | Pragma_Export
           | Pragma_Export_Function
           | Pragma_Export_Object
           | Pragma_Export_Procedure
           | Pragma_Export_Valued_Procedure
           | Pragma_Extend_System
+          | Pragma_Extended_Access
           | Pragma_Extensions_Visible
           | Pragma_External
           | Pragma_External_Name_Casing
           | Pragma_Fast_Math
           | Pragma_Favor_Top_Level
           | Pragma_Finalize_Storage_Only
+          | Pragma_First_Controlling_Parameter
           | Pragma_Ghost
           | Pragma_Global
           | Pragma_GNAT_Annotate
*************** begin
*** 1484,1490 ****
           | Pragma_Machine_Attribute
           | Pragma_Main
           | Pragma_Main_Storage
-          | Pragma_Max_Entry_Queue_Depth
           | Pragma_Max_Entry_Queue_Length
           | Pragma_Max_Queue_Length
           | Pragma_Memory_Size
--- 1506,1511 ----
*************** begin
*** 1494,1501 ****
--- 1515,1524 ----
           | Pragma_No_Elaboration_Code_All
           | Pragma_No_Heap_Finalization
           | Pragma_No_Inline
+          | Pragma_No_Raise
           | Pragma_No_Return
           | Pragma_No_Run_Time
+          | Pragma_Interrupts_System_By_Default
           | Pragma_No_Strict_Aliasing
           | Pragma_No_Tagged_Streams
           | Pragma_Normalize_Scalars
*************** begin
*** 1553,1558 ****
--- 1576,1582 ----
           | Pragma_Short_Circuit_And_Or
           | Pragma_Short_Descriptors
           | Pragma_Simple_Storage_Pool_Type
+          | Pragma_Simulate_Internal_Error
           | Pragma_Static_Elaboration_Desired
           | Pragma_Storage_Size
           | Pragma_Storage_Unit
diff -Nrcpad gcc-14.2.0/gcc/ada/par-sync.adb gcc-15.1.0/gcc/ada/par-sync.adb
*** gcc-14.2.0/gcc/ada/par-sync.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-sync.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/par-tchk.adb gcc-15.1.0/gcc/ada/par-tchk.adb
*** gcc-14.2.0/gcc/ada/par-tchk.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-tchk.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/par-util.adb gcc-15.1.0/gcc/ada/par-util.adb
*** gcc-14.2.0/gcc/ada/par-util.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par-util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Util is
*** 199,204 ****
--- 199,212 ----
           end if;
        end if;
  
+       if Ada_Version < Ada_With_All_Extensions then
+          if Token_Name = Name_Finally then
+             Error_Msg_N
+               ("& is a reserved word with all extensions enabled?",
+                Token_Node);
+          end if;
+       end if;
+ 
        --  Note: we deliberately do not emit these warnings when operating in
        --  Ada 83 mode because in that case we assume the user is building
        --  legacy code anyway and is not interested in updating Ada versions.
*************** package body Util is
*** 689,700 ****
        pragma Assert (Scope.Last > 0);
        Scope.Decrement_Last;
  
-       if Include_Subprogram_In_Messages
-         and then Scopes (Scope.Last).Labl /= Error
-       then
-          Current_Node := Scopes (Scope.Last).Labl;
-       end if;
- 
        if Debug_Flag_P then
           Error_Msg_Uint_1 := UI_From_Int (Scope.Last);
           Error_Msg_SC ("decrement scope stack ptr, new value = ^!");
--- 697,702 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/par.adb gcc-15.1.0/gcc/ada/par.adb
*** gcc-14.2.0/gcc/ada/par.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** function Par (Configuration_Pragmas : Bo
*** 400,405 ****
--- 400,406 ----
        Eftm : Boolean;      -- ELSIF can terminate sequence
        Eltm : Boolean;      -- ELSE can terminate sequence
        Extm : Boolean;      -- EXCEPTION can terminate sequence
+       Fitm : Boolean;      -- FINALLY can terminate sequence
        Ortm : Boolean;      -- OR can terminate sequence
        Sreq : Boolean;      -- at least one statement required
        Tatm : Boolean;      -- THEN ABORT can terminate sequence
*************** function Par (Configuration_Pragmas : Bo
*** 408,422 ****
     end record;
     pragma Pack (SS_Rec);
  
!    SS_Eftm_Eltm_Sreq : constant SS_Rec := (T, T, F, F, T, F, F, F);
!    SS_Eltm_Ortm_Tatm : constant SS_Rec := (F, T, F, T, F, T, F, F);
!    SS_Extm_Sreq      : constant SS_Rec := (F, F, T, F, T, F, F, F);
!    SS_None           : constant SS_Rec := (F, F, F, F, F, F, F, F);
!    SS_Ortm_Sreq      : constant SS_Rec := (F, F, F, T, T, F, F, F);
!    SS_Sreq           : constant SS_Rec := (F, F, F, F, T, F, F, F);
!    SS_Sreq_Whtm      : constant SS_Rec := (F, F, F, F, T, F, T, F);
!    SS_Whtm           : constant SS_Rec := (F, F, F, F, F, F, T, F);
!    SS_Unco           : constant SS_Rec := (F, F, F, F, F, F, F, T);
  
     Goto_List : Elist_Id;
     --  List of goto nodes appearing in the current compilation. Used to
--- 409,424 ----
     end record;
     pragma Pack (SS_Rec);
  
!    SS_Eftm_Eltm_Sreq : constant SS_Rec := (T, T, F, F, F, T, F, F, F);
!    SS_Eltm_Ortm_Tatm : constant SS_Rec := (F, T, F, F, T, F, T, F, F);
!    SS_Extm_Fitm_Sreq : constant SS_Rec := (F, F, T, T, F, T, F, F, F);
!    SS_None           : constant SS_Rec := (F, F, F, F, F, F, F, F, F);
!    SS_Ortm_Sreq      : constant SS_Rec := (F, F, F, F, T, T, F, F, F);
!    SS_Sreq           : constant SS_Rec := (F, F, F, F, F, T, F, F, F);
!    SS_Sreq_Whtm      : constant SS_Rec := (F, F, F, F, F, T, F, T, F);
!    SS_Sreq_Fitm_Whtm : constant SS_Rec := (F, F, F, T, F, T, F, T, F);
!    SS_Whtm           : constant SS_Rec := (F, F, F, F, F, F, F, T, F);
!    SS_Unco           : constant SS_Rec := (F, F, F, F, F, F, F, F, T);
  
     Goto_List : Elist_Id;
     --  List of goto nodes appearing in the current compilation. Used to
*************** function Par (Configuration_Pragmas : Bo
*** 886,892 ****
        --  Used in loop constructs and quantified expressions.
  
        function P_Sequence_Of_Statements
!         (SS_Flags : SS_Rec; Handled : Boolean := False) return List_Id;
        --  SS_Flags indicates the acceptable termination tokens; see body for
        --  details. Handled is true if we are parsing a handled sequence of
        --  statements.
--- 888,894 ----
        --  Used in loop constructs and quantified expressions.
  
        function P_Sequence_Of_Statements
!         (SS_Flags : SS_Rec) return List_Id;
        --  SS_Flags indicates the acceptable termination tokens; see body for
        --  details. Handled is true if we are parsing a handled sequence of
        --  statements.
*************** function Par (Configuration_Pragmas : Bo
*** 1031,1041 ****
  
        procedure P_Aspect_Specifications
          (Decl      : Node_Id;
!          Semicolon : Boolean := True);
        --  This procedure scans out a series of aspect specifications. If
!       --  argument Semicolon is True, a terminating semicolon is also scanned.
!       --  If this argument is False, the scan pointer is left pointing past the
!       --  aspects and the caller must check for a proper terminator.
        --
        --  P_Aspect_Specifications is called with the current token pointing
        --  to either a WITH keyword starting an aspect specification, or an
--- 1033,1043 ----
  
        procedure P_Aspect_Specifications
          (Decl      : Node_Id;
!          Semicolon : Boolean);
        --  This procedure scans out a series of aspect specifications. If
!       --  argument Semicolon is True, a terminating semicolon is also scanned;
!       --  if False, the scan pointer is left pointing past the aspects and the
!       --  caller must check for a proper terminator.
        --
        --  P_Aspect_Specifications is called with the current token pointing
        --  to either a WITH keyword starting an aspect specification, or an
*************** function Par (Configuration_Pragmas : Bo
*** 1049,1062 ****
        --  semicolon (with the exception that it detects WHEN used in place of
        --  WITH).
  
!       --  If Decl is Error on entry, any scanned aspect specifications are
!       --  ignored and a message is output saying aspect specifications not
!       --  permitted here. If Decl is Empty, then scanned aspect specifications
!       --  are also ignored, but no error message is given (this is used when
!       --  the caller has already taken care of the error message).
  
!       function Get_Aspect_Specifications
!         (Semicolon : Boolean := True) return List_Id;
        --  Parse a list of aspects but do not attach them to a declaration node.
        --  Subsidiary to P_Aspect_Specifications procedure. Used when parsing
        --  a subprogram specification that may be a declaration or a body.
--- 1051,1064 ----
        --  semicolon (with the exception that it detects WHEN used in place of
        --  WITH).
  
!       --  If Decl is Error or a node that does not allow aspect specifications,
!       --  then any scanned aspect specifications are ignored and a message is
!       --  output saying aspect specifications not permitted here. If Decl is
!       --  Empty, then scanned aspect specifications are also ignored, but no
!       --  error message is given (this is used when the caller has already
!       --  taken care of the error message).
  
!       function Get_Aspect_Specifications (Semicolon : Boolean) return List_Id;
        --  Parse a list of aspects but do not attach them to a declaration node.
        --  Subsidiary to P_Aspect_Specifications procedure. Used when parsing
        --  a subprogram specification that may be a declaration or a body.
diff -Nrcpad gcc-14.2.0/gcc/ada/par.ads gcc-15.1.0/gcc/ada/par.ads
*** gcc-14.2.0/gcc/ada/par.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/par_sco.adb gcc-15.1.0/gcc/ada/par_sco.adb
*** gcc-14.2.0/gcc/ada/par_sco.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par_sco.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Par_SCO is
*** 1696,1714 ****
           C1 : Character;
  
        begin
-          if not Has_Aspects (N) then
-             return;
-          end if;
- 
           AN := First (Aspect_Specifications (N));
           while Present (AN) loop
              AE := Expression (AN);
  
-             --  SCOs are generated before semantic analysis/expansion:
-             --  PPCs are not split yet.
- 
-             pragma Assert (not Split_PPC (AN));
- 
              C1 := ASCII.NUL;
  
              case Get_Aspect_Id (AN) is
--- 1696,1705 ----
*************** package body Par_SCO is
*** 2419,2425 ****
                 end if;
           end case;
  
!          Traverse_Aspects (N);
        end Traverse_One;
  
     --  Start of processing for Traverse_Declarations_Or_Statements
--- 2410,2418 ----
                 end if;
           end case;
  
!          if Permits_Aspect_Specifications (N) then
!             Traverse_Aspects (N);
!          end if;
        end Traverse_One;
  
     --  Start of processing for Traverse_Declarations_Or_Statements
diff -Nrcpad gcc-14.2.0/gcc/ada/par_sco.ads gcc-15.1.0/gcc/ada/par_sco.ads
*** gcc-14.2.0/gcc/ada/par_sco.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/par_sco.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/pprint.adb gcc-15.1.0/gcc/ada/pprint.adb
*** gcc-14.2.0/gcc/ada/pprint.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/pprint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Pprint is
*** 57,68 ****
        function Expr_Name
          (Expr        : Node_Id;
           Take_Prefix : Boolean := True;
!          Expand_Type : Boolean := True) return String;
        --  Return string corresponding to Expr. If no string can be extracted,
        --  return "...". If Take_Prefix is True, go back to prefix when needed,
        --  otherwise only consider the right-hand side of an expression. If
        --  Expand_Type is True and Expr is a type, try to expand Expr (an
        --  internally generated type) into a user understandable name.
  
        function Count_Parentheses (S : String; C : Character) return Natural
          with Pre => C in '(' | ')';
--- 57,72 ----
        function Expr_Name
          (Expr        : Node_Id;
           Take_Prefix : Boolean := True;
!          Expand_Type : Boolean := True;
!          No_Parens   : Boolean := False) return String;
        --  Return string corresponding to Expr. If no string can be extracted,
        --  return "...". If Take_Prefix is True, go back to prefix when needed,
        --  otherwise only consider the right-hand side of an expression. If
        --  Expand_Type is True and Expr is a type, try to expand Expr (an
        --  internally generated type) into a user understandable name.
+       --  If No_Parens is True, then suppress creating parentheses around
+       --  expression. If False, check to see whether expression should be
+       --  parenthesized.
  
        function Count_Parentheses (S : String; C : Character) return Natural
          with Pre => C in '(' | ')';
*************** package body Pprint is
*** 70,75 ****
--- 74,81 ----
        --  to string S for getting a correctly parenthesized result. For C = '('
        --  this means prepending the character, for C = ')' this means appending
        --  the character.
+       --  In other words, count the number of missing instances of C,
+       --  but never return less than zero.
  
        function Fix_Parentheses (S : String) return String;
        --  Counts the number of required opening and closing parentheses in S to
*************** package body Pprint is
*** 101,106 ****
--- 107,113 ----
           Elmt : Node_Id;
  
           Printed_Elmts : Natural := 0;
+          List_Len : constant Natural := Natural (List_Length (List));
  
        begin
           --  Give up if the printed list is too deep
*************** package body Pprint is
*** 146,152 ****
              --  Print expression itself as "12345"
  
              else
!                Append (Buf, Expr_Name (Elmt));
              end if;
  
              Next (Elmt);
--- 153,160 ----
              --  Print expression itself as "12345"
  
              else
!                --  Suppress parens if is the only parameter
!                Append (Buf, Expr_Name (Elmt, No_Parens => List_Len = 1));
              end if;
  
              Next (Elmt);
*************** package body Pprint is
*** 178,186 ****
        function Expr_Name
          (Expr        : Node_Id;
           Take_Prefix : Boolean := True;
!          Expand_Type : Boolean := True) return String
        is
        begin
           Num_Elements := Num_Elements + 1;
  
           if Num_Elements > Max_Expr_Elements then
--- 186,224 ----
        function Expr_Name
          (Expr        : Node_Id;
           Take_Prefix : Boolean := True;
!          Expand_Type : Boolean := True;
!          No_Parens   : Boolean := False) return String
        is
+          --  Define a subtype matching logical operations
+          --  and [then], or [else], and xor.
+          --  In Ada, these operations are non associative -- they
+          --  all have the same precedence, so parentheses
+          --  are needed to indicate the association of
+          --  operands in a sequence of distinct operations.
+          subtype Non_Associative is N_Subexpr
+            with Static_Predicate =>
+              Non_Associative in
+                N_Short_Circuit | N_Op_And | N_Op_Or | N_Op_Xor;
        begin
+          if not No_Parens
+           and then
+             (Paren_Count (Expr) > 0
+               or else
+              (Nkind (Expr) in Non_Associative
+                and then
+               Nkind (Parent (Expr)) in Non_Associative
+                and then
+               Nkind (Parent (Expr)) /= Nkind (Expr)))
+          then
+             --  Parentheses are needed, either because
+             --  Paren_Count is greater than zero, or because
+             --  this operation and its parent are non associative,
+             --  and are not the same operation.
+             return '(' &
+               Expr_Name (Expr, Take_Prefix, Expand_Type, No_Parens => True) &
+               ')';
+          end if;
+ 
           Num_Elements := Num_Elements + 1;
  
           if Num_Elements > Max_Expr_Elements then
*************** package body Pprint is
*** 424,432 ****
                    end if;
                 end;
  
!             when N_Expression_With_Actions
!                | N_Unchecked_Expression
!             =>
                 return Expr_Name (Expression (Expr));
  
              when N_Raise_Constraint_Error =>
--- 462,468 ----
                    end if;
                 end;
  
!             when N_Expression_With_Actions =>
                 return Expr_Name (Expression (Expr));
  
              when N_Raise_Constraint_Error =>
*************** package body Pprint is
*** 591,597 ****
                 return "abs " & Expr_Name (Right_Opnd (Expr));
  
              when N_Op_Not =>
!                return "not (" & Expr_Name (Right_Opnd (Expr)) & ")";
  
              when N_Type_Conversion =>
  
--- 627,635 ----
                 return "abs " & Expr_Name (Right_Opnd (Expr));
  
              when N_Op_Not =>
!                return "not (" &
!                       Expr_Name (Right_Opnd (Expr), No_Parens => True) &
!                       ")";
  
              when N_Type_Conversion =>
  
*************** package body Pprint is
*** 610,616 ****
                             Is_Modular_Integer_Type (Etype (Expression (Expr)))
                 then
                    return Expr_Name (Subtype_Mark (Expr)) &
!                     "(" & Expr_Name (Expression (Expr)) & ")";
                 else
                    return Expr_Name (Expression (Expr));
                 end if;
--- 648,656 ----
                             Is_Modular_Integer_Type (Etype (Expression (Expr)))
                 then
                    return Expr_Name (Subtype_Mark (Expr)) &
!                     "(" &
!                     Expr_Name (Expression (Expr), No_Parens => True) &
!                     ")";
                 else
                    return Expr_Name (Expression (Expr));
                 end if;
*************** package body Pprint is
*** 638,644 ****
                         & List_Name (Parameter_Associations (Expr))
                         & "))";
                    else
!                      return '(' & Expr_Name (Name (Expr)) & ')';
                    end if;
                 elsif Present (Parameter_Associations (Expr)) then
                    return
--- 678,686 ----
                         & List_Name (Parameter_Associations (Expr))
                         & "))";
                    else
!                      return '(' &
!                              Expr_Name (Name (Expr), No_Parens => True) &
!                              ')';
                    end if;
                 elsif Present (Parameter_Associations (Expr)) then
                    return
*************** package body Pprint is
*** 653,658 ****
--- 695,701 ----
  
              when N_Case_Expression
                 | N_Delta_Aggregate
+                | N_External_Initializer
                 | N_Interpolated_String_Literal
                 | N_Op_Rotate_Left
                 | N_Op_Rotate_Right
*************** package body Pprint is
*** 677,682 ****
--- 720,727 ----
           --  Process next character Ch and update the number Count of C
           --  characters to add for correct parenthesizing, where D is the
           --  opposite parenthesis.
+          --  In other words, count the number of missing instances of C,
+          --  or equivalently, the number of unmatched instances of D.
  
           ---------------
           -- Next_Char --
*************** package body Pprint is
*** 776,782 ****
          or else Opt.Debug_Generated_Code
        then
           declare
!             S : constant String := Expr_Name (Expr);
           begin
              if S = "..." then
                 return Default;
--- 821,827 ----
          or else Opt.Debug_Generated_Code
        then
           declare
!             S : constant String := Expr_Name (Expr, No_Parens => True);
           begin
              if S = "..." then
                 return Default;
diff -Nrcpad gcc-14.2.0/gcc/ada/pprint.ads gcc-15.1.0/gcc/ada/pprint.ads
*** gcc-14.2.0/gcc/ada/pprint.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/pprint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/prep.adb gcc-15.1.0/gcc/ada/prep.adb
*** gcc-14.2.0/gcc/ada/prep.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/prep.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Prep is
*** 489,495 ****
  
                             if Symbol1 = No_Symbol then
                                Error_Msg_Name_1 := Symbol_Name1;
!                               Error_Msg ("unknown symbol %", Symbol_Pos1);
                                Symbol_Value1 := No_String;
  
                             else
--- 489,502 ----
  
                             if Symbol1 = No_Symbol then
                                Error_Msg_Name_1 := Symbol_Name1;
!                               if Undefined_Symbols_Are_False then
!                                  Error_Msg
!                                    ("symbol % value is implicitly False"
!                                      & " and so not an integer",
!                                     Symbol_Pos1);
!                               else
!                                  Error_Msg ("unknown symbol %", Symbol_Pos1);
!                               end if;
                                Symbol_Value1 := No_String;
  
                             else
*************** package body Prep is
*** 498,504 ****
                                if Data.Is_A_String then
                                   Error_Msg_Name_1 := Symbol_Name1;
                                   Error_Msg
!                                    ("symbol % value is not integer",
                                      Symbol_Pos1);
  
                                else
--- 505,511 ----
                                if Data.Is_A_String then
                                   Error_Msg_Name_1 := Symbol_Name1;
                                   Error_Msg
!                                    ("symbol % value is not an integer",
                                      Symbol_Pos1);
  
                                else
diff -Nrcpad gcc-14.2.0/gcc/ada/prep.ads gcc-15.1.0/gcc/ada/prep.ads
*** gcc-14.2.0/gcc/ada/prep.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/prep.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/prepcomp.adb gcc-15.1.0/gcc/ada/prepcomp.adb
*** gcc-14.2.0/gcc/ada/prepcomp.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/prepcomp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/prepcomp.ads gcc-15.1.0/gcc/ada/prepcomp.ads
*** gcc-14.2.0/gcc/ada/prepcomp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/prepcomp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/put_scos.adb gcc-15.1.0/gcc/ada/put_scos.adb
*** gcc-14.2.0/gcc/ada/put_scos.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/put_scos.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/put_scos.ads gcc-15.1.0/gcc/ada/put_scos.ads
*** gcc-14.2.0/gcc/ada/put_scos.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/put_scos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/raise-gcc.c gcc-15.1.0/gcc/ada/raise-gcc.c
*** gcc-14.2.0/gcc/ada/raise-gcc.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/raise-gcc.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2025, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 48,53 ****
--- 48,69 ----
  # endif
  #endif
  
+ /* Arrange to include the Ada/G++ exceptions interoperability support only in
+    contexts where it is actually needed and supported, in particular not in
+    gnat-llvm, that doesn't support C++ imports.  This interoperability hasn't
+    been certified, so leave it out of CERT runtimes as well.  */
+ 
+ #if !defined GXX_EH_INTEROP
+ # if defined(__clang_major__) && defined(__clang_minor__)
+ /* GNAT-LLVM does not support C++ imports.  */
+ #  define GXX_EH_INTEROP 0
+ # elif defined(CERT)
+ #  define GXX_EH_INTEROP 0
+ # else
+ #  define GXX_EH_INTEROP 1
+ # endif
+ #endif
+ 
  #ifdef __cplusplus
  # include <cstdarg>
  # include <cstddef>
*************** _Unwind_Reason_Code
*** 114,120 ****
  __gnat_Unwind_ForcedUnwind (_Unwind_Exception *, _Unwind_Stop_Fn, void *);
  
  extern struct Exception_Occurrence *
! __gnat_setup_current_excep (_Unwind_Exception *, _Unwind_Action);
  
  extern void __gnat_unhandled_except_handler (_Unwind_Exception *);
  
--- 130,136 ----
  __gnat_Unwind_ForcedUnwind (_Unwind_Exception *, _Unwind_Stop_Fn, void *);
  
  extern struct Exception_Occurrence *
! __gnat_setup_current_excep (_Unwind_Exception *, _Unwind_Action, Exception_Id);
  
  extern void __gnat_unhandled_except_handler (_Unwind_Exception *);
  
*************** extern void __gnat_raise_abort (void) __
*** 138,155 ****
  
  #ifdef __ARM_EABI_UNWINDER__
  #define CXX_EXCEPTION_CLASS "GNUCC++"
  #define GNAT_EXCEPTION_CLASS "GNU-Ada"
  #else
  #define CXX_EXCEPTION_CLASS 0x474e5543432b2b00ULL
  #define GNAT_EXCEPTION_CLASS 0x474e552d41646100ULL
  #endif
  
  /* Structure of a C++ exception, represented as a C structure...  See
     unwind-cxx.h for the full definition.  */
  
  struct __cxa_exception
  {
!   void *exceptionType;
    void (*exceptionDestructor)(void *);
  
    void (*unexpectedHandler)();
--- 154,180 ----
  
  #ifdef __ARM_EABI_UNWINDER__
  #define CXX_EXCEPTION_CLASS "GNUCC++"
+ #define CXX_DEPENDENT_EXCEPTION_CLASS "GNUCC++\x01"
  #define GNAT_EXCEPTION_CLASS "GNU-Ada"
  #else
  #define CXX_EXCEPTION_CLASS 0x474e5543432b2b00ULL
+ #define CXX_DEPENDENT_EXCEPTION_CLASS 0x474e5543432b2b01ULL
  #define GNAT_EXCEPTION_CLASS 0x474e552d41646100ULL
  #endif
  
+ /* Opaque C struct that stands for C++ std::type_info.  */
+ 
+ struct cxx_type_info;
+ 
  /* Structure of a C++ exception, represented as a C structure...  See
     unwind-cxx.h for the full definition.  */
  
  struct __cxa_exception
  {
!   /* In primary exceptions, this is a struct cxx_type_info *;
!      in dependent exceptions, this is a struct __cxa_exception *.
!      ??? Could we use a union without the risk of any ABI problems?  */
!   void *exceptionTypeOrPrimaryException;
    void (*exceptionDestructor)(void *);
  
    void (*unexpectedHandler)();
*************** db_phases (int phases)
*** 530,547 ****
  */
  
  
- /* This is an incomplete "proxy" of the structure of exception objects as
-    built by the GNAT runtime library. Accesses to other fields than the common
-    header are performed through subprogram calls to alleviate the need of an
-    exact counterpart here and potential alignment/size issues for the common
-    header. See a-exexpr.adb.  */
- 
- typedef struct
- {
-   _Unwind_Exception common;
-   /* ABI header, maximally aligned. */
- } _GNAT_Exception;
- 
  /* The three constants below are specific ttype identifiers for special
     exception ids.  Their type should match what a-exexpr exports.  */
  
--- 555,560 ----
*************** get_ip_from_context (_Unwind_Context *uw
*** 596,602 ****
--- 609,623 ----
  #endif
  
  #if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__CHERI__)
+ #if __has_builtin (__builtin_code_address_from_pointer)
    ip = __builtin_code_address_from_pointer ((void *)ip);
+ #elif defined(__aarch64__)
+   /* Clang doesn't have __builtin_code_address_from_pointer to abstract over
+      target-specific differences. On AArch64, we need to drop the LSB of the
+      instruction pointer because it's not part of the address; it indicates the
+      CPU mode. */
+   ip &= ~1UL;
+ #endif
  #endif
  
    /* Subtract 1 if necessary because GetIPInfo yields a call return address
*************** get_call_site_action_for (_Unwind_Ptr ip
*** 936,942 ****
  extern bool Is_Handled_By_Others (Exception_Id eid);
  extern char Language_For         (Exception_Id eid);
  extern void *Foreign_Data_For    (Exception_Id eid);
! extern Exception_Id EID_For      (_GNAT_Exception *e);
  
  #define Foreign_Exception system__exceptions__foreign_exception
  extern struct Exception_Data Foreign_Exception;
--- 957,964 ----
  extern bool Is_Handled_By_Others (Exception_Id eid);
  extern char Language_For         (Exception_Id eid);
  extern void *Foreign_Data_For    (Exception_Id eid);
! 
! extern Exception_Id EID_For (_Unwind_Exception * e);
  
  #define Foreign_Exception system__exceptions__foreign_exception
  extern struct Exception_Data Foreign_Exception;
*************** extern struct Exception_Data Foreign_Exc
*** 944,963 ****
  /* Return true iff the exception class of EXCEPT is EC.  */
  
  static int
! exception_class_eq (const _GNAT_Exception *except,
  		    const _Unwind_Exception_Class ec)
  {
  #ifdef __ARM_EABI_UNWINDER__
!   return memcmp (except->common.exception_class, ec, 8) == 0;
  #else
!   return except->common.exception_class == ec;
  #endif
  }
  
  /* Return how CHOICE matches PROPAGATED_EXCEPTION.  */
  
  static enum action_kind
! is_handled_by (Exception_Id choice, _GNAT_Exception *propagated_exception)
  {
    /* All others choice match everything.  */
    if (choice == GNAT_ALL_OTHERS)
--- 966,1132 ----
  /* Return true iff the exception class of EXCEPT is EC.  */
  
  static int
! exception_class_eq (const _Unwind_Exception *except,
  		    const _Unwind_Exception_Class ec)
  {
  #ifdef __ARM_EABI_UNWINDER__
!   return memcmp (except->exception_class, ec, 8) == 0;
  #else
!   return except->exception_class == ec;
  #endif
  }
  
+ /* Return true iff the exception class in EXCEPT is a C++ exception.  */
+ bool
+ __gnat_exception_language_is_cplusplus (_Unwind_Exception *except)
+ {
+   return (exception_class_eq (except, CXX_EXCEPTION_CLASS)
+ 	  || exception_class_eq (except, CXX_DEPENDENT_EXCEPTION_CLASS));
+ }
+ 
+ /* Return true iff the exception class in EXCEPT is an Ada exception.  */
+ bool
+ __gnat_exception_language_is_ada (_Unwind_Exception *except)
+ {
+   return (exception_class_eq (except, GNAT_EXCEPTION_CLASS));
+ }
+ 
+ #if GXX_EH_INTEROP
+ 
+ /* Check whether *THROWN_PTR of EXCEPT_TYPEINFO is to be caught by a
+    CHOICE_TYPEINFO handler under LANG convention.
+    Implemented by GNAT.CPP_Exception.Convert_Caught_Object.  */
+ 
+ extern bool __gnat_convert_caught_object (struct cxx_type_info *choice_typeinfo,
+ 					  struct cxx_type_info *except_typeinfo,
+ 					  void **thrown_ptr_p, char lang);
+ 
+ /* Advance unconditionally to the primary exception from a dependent one
+    (std::rethrow_exception); see in
+    libstdc++-v3/libsupc++/unwind-cxx.h.  */
+ 
+ static inline void
+ __gnat_get_cxx_dependent_exception (void **thrown_ptr_p)
+ {
+   struct __cxa_exception *cxa_xcpt
+     = ((struct __cxa_exception *)*thrown_ptr_p - 1);
+ 
+   *thrown_ptr_p = cxa_xcpt->exceptionTypeOrPrimaryException;
+ }
+ 
+ /* Advance to the primary exception from a dependent one,
+    iff *THROWN_PTR_P corresponds to a dependent one.  */
+ 
+ static inline void
+ __gnat_maybe_get_cxx_dependent_exception (void **thrown_ptr_p)
+ {
+   _Unwind_Exception *propagated_exception
+     = ((_Unwind_Exception *)*thrown_ptr_p - 1);
+ 
+   if (exception_class_eq (propagated_exception,
+ 			  CXX_DEPENDENT_EXCEPTION_CLASS))
+     __gnat_get_cxx_dependent_exception (thrown_ptr_p);
+ }
+ 
+ /* Return the std::type_info* that denotes the type of the thrown
+    object.  Return NULL if it's not a C++ exception.  */
+ struct cxx_type_info *
+ __gnat_get_cxx_exception_type_info (_Unwind_Exception *unwind_exception)
+ {
+   void *thrown_ptr = unwind_exception + 1;
+ 
+   __gnat_maybe_get_cxx_dependent_exception (&thrown_ptr);
+ 
+   struct __cxa_exception *cxa_xcpt
+     = ((struct __cxa_exception *)thrown_ptr - 1);
+ 
+   if (!exception_class_eq (&cxa_xcpt->unwindHeader,
+ 			   CXX_EXCEPTION_CLASS))
+     return NULL;
+ 
+   struct cxx_type_info *except_typeinfo
+     = (struct cxx_type_info *)cxa_xcpt->exceptionTypeOrPrimaryException;
+ 
+   return except_typeinfo;
+ }
+ 
+ /* Convert the exception denoted by UNWIND_EXCEPTION to CHOICE_TYPE.
+ 
+    If LANG is 'B', the type of the exception may be a derived type
+    that would be caught by CHOICE_TYPE in C++, otherwise the types
+    must be an exact match.
+ 
+    If the type requirements are not met, set *SUCCESS_P to FALSE and
+    *THROWN_PTR_P to NULL.
+ 
+    Otherwise, set *SUCCESS_P to TRUE and *THROWN_PTR_P to the
+    (sub)object of CHOICE_TYPE in the exception object.  */
+ 
+ void
+ __gnat_obtain_caught_object (int *success_p, void **thrown_ptr_p,
+ 			     struct cxx_type_info *choice_typeinfo,
+ 			     char lang,
+ 			     _Unwind_Exception *unwind_exception)
+ {
+   void *thrown_ptr = unwind_exception + 1;
+ 
+   /* Unwrap a dependent exception.  */
+   __gnat_maybe_get_cxx_dependent_exception (&thrown_ptr);
+ 
+   bool success;
+ 
+   switch (lang)
+     {
+     default:
+       success = false;
+       break;
+ 
+     case 'A':
+       success = true;
+       break;
+ 
+     case 'B':
+     case 'C':
+       {
+ 	struct __cxa_exception *cxa_xcpt
+ 	  = ((struct __cxa_exception *)thrown_ptr - 1);
+ 	struct cxx_type_info *except_typeinfo
+ 	  = (struct cxx_type_info *)cxa_xcpt->exceptionTypeOrPrimaryException;
+ 
+ 	/* Adjust thrown_ptr, typed except_typeinfo, to point to the
+ 	   choice_typeinfo subobject.  */
+ 	success = __gnat_convert_caught_object (choice_typeinfo,
+ 						except_typeinfo,
+ 						&thrown_ptr,
+ 						lang);
+ 
+ 	break;
+       }
+     }
+ 
+   /* Store the requested results.  */
+   if (success_p)
+     *success_p = success;
+ 
+   if (thrown_ptr_p)
+     {
+       if (success)
+ 	*thrown_ptr_p = thrown_ptr;
+       else
+ 	*thrown_ptr_p = NULL;
+     }
+ }
+ 
+ #endif /* GXX_EH_INTEROP */
+ 
  /* Return how CHOICE matches PROPAGATED_EXCEPTION.  */
  
  static enum action_kind
! is_handled_by (Exception_Id choice,
! #if GXX_EH_INTEROP
! 	       Exception_Id *eid,
! #endif /* GXX_EH_INTEROP */
! 	       _Unwind_Exception *propagated_exception)
  {
    /* All others choice match everything.  */
    if (choice == GNAT_ALL_OTHERS)
*************** is_handled_by (Exception_Id choice, _GNA
*** 990,1013 ****
        )
      return handler;
  
! #ifndef CERT
!   /* C++ exception occurrences.  */
!   if (exception_class_eq (propagated_exception, CXX_EXCEPTION_CLASS)
!       && Language_For (choice) == 'C')
      {
!       void *choice_typeinfo = Foreign_Data_For (choice);
!       void *except_typeinfo =
! 	(((struct __cxa_exception *)
! 	  ((_Unwind_Exception *)propagated_exception + 1)) - 1)
! 	->exceptionType;
  
!       /* Typeinfo are directly compared, which might not be correct if they
! 	 aren't merged.  ??? We should call the == operator if this module is
! 	 compiled in C++.  */
!       if (choice_typeinfo == except_typeinfo)
! 	return handler;
      }
! #endif
  
    return nothing;
  }
--- 1159,1195 ----
        )
      return handler;
  
! #if GXX_EH_INTEROP
!   char lang;
!   bool primary;
! 
!   /* C++ exception occurrences with exact (C) or base (B) type matching.  */
!   if (((primary = exception_class_eq (propagated_exception,
! 				      CXX_EXCEPTION_CLASS))
!        || exception_class_eq (propagated_exception,
! 			      CXX_DEPENDENT_EXCEPTION_CLASS))
!       && ((lang = Language_For (choice)) == 'C' || lang == 'B'))
      {
!       struct cxx_type_info *choice_typeinfo
! 	= ((struct cxx_type_info *)Foreign_Data_For (choice));
!       void *thrown_ptr = (propagated_exception + 1);
  
!       if (!primary)
! 	__gnat_get_cxx_dependent_exception (&thrown_ptr);
! 
!       struct __cxa_exception *cxa_xcpt
! 	= ((struct __cxa_exception *)thrown_ptr - 1);
!       struct cxx_type_info *except_typeinfo
! 	= (struct cxx_type_info *)cxa_xcpt->exceptionTypeOrPrimaryException;
! 
!       if (__gnat_convert_caught_object (choice_typeinfo, except_typeinfo,
! 					&thrown_ptr, lang))
! 	{
! 	  *eid = (Exception_Id) choice;
! 	  return handler;
! 	}
      }
! #endif /* GXX_EH_INTEROP */
  
    return nothing;
  }
*************** static void
*** 1019,1029 ****
  get_action_description_for (_Unwind_Ptr ip,
                              _Unwind_Exception *uw_exception,
                              _Unwind_Action uw_phase,
                              region_descriptor *region,
                              action_descriptor *action)
  {
-   _GNAT_Exception *gnat_exception = (_GNAT_Exception *) uw_exception;
- 
    /* Search the call site table first, which may get us a landing pad as well
       as the head of an action record list.  */
    get_call_site_action_for (ip, region, action);
--- 1201,1212 ----
  get_action_description_for (_Unwind_Ptr ip,
                              _Unwind_Exception *uw_exception,
                              _Unwind_Action uw_phase,
+ #ifndef CERT
+ 			    Exception_Id *eid,
+ #endif
                              region_descriptor *region,
                              action_descriptor *action)
  {
    /* Search the call site table first, which may get us a landing pad as well
       as the head of an action record list.  */
    get_call_site_action_for (ip, region, action);
*************** get_action_description_for (_Unwind_Ptr
*** 1093,1101 ****
  		  Exception_Id choice
  		    = (Exception_Id) get_ttype_entry_for (region, ar_filter);
  
! 		  act = is_handled_by (choice, gnat_exception);
! 		  if (act != nothing)
! 		    {
  		      action->kind = act;
  		      action->ttype_filter = ar_filter;
  		      return;
--- 1276,1288 ----
  		  Exception_Id choice
  		    = (Exception_Id) get_ttype_entry_for (region, ar_filter);
  
! 		  act = is_handled_by (choice,
! #if GXX_EH_INTEROP
! 				       eid,
! #endif /* GXX_EH_INTEROP */
! 				       uw_exception);
!                   if (act != nothing)
!                     {
  		      action->kind = act;
  		      action->ttype_filter = ar_filter;
  		      return;
*************** personality_body (_Unwind_Action uw_phas
*** 1201,1206 ****
--- 1388,1396 ----
    region_descriptor region;
    action_descriptor action;
    _Unwind_Ptr ip;
+ #ifndef CERT
+   Exception_Id eid = NULL;
+ #endif
  
    /* Debug traces.  */
    db_indent (DB_INDENT_RESET);
*************** personality_body (_Unwind_Action uw_phas
*** 1222,1228 ****
  
    /* Search the call-site and action-record tables for the action associated
       with this IP.  */
!   get_action_description_for (ip, uw_exception, uw_phases, &region, &action);
    db_action_for (&action, ip);
  
    /* Whatever the phase, if there is nothing relevant in this frame,
--- 1412,1422 ----
  
    /* Search the call-site and action-record tables for the action associated
       with this IP.  */
!   get_action_description_for (ip, uw_exception, uw_phases,
! #ifndef CERT
! 			      &eid,
! #endif
! 			      &region, &action);
    db_action_for (&action, ip);
  
    /* Whatever the phase, if there is nothing relevant in this frame,
*************** personality_body (_Unwind_Action uw_phas
*** 1259,1265 ****
  	     the Ada occurrence pointer to use.  */
  
  	  struct Exception_Occurrence *excep
! 	    = __gnat_setup_current_excep (uw_exception, uw_phases);
  
  	  if (action.kind == unhandler)
  	    __gnat_notify_unhandled_exception (excep);
--- 1453,1459 ----
  	     the Ada occurrence pointer to use.  */
  
  	  struct Exception_Occurrence *excep
! 	    = __gnat_setup_current_excep (uw_exception, uw_phases, eid);
  
  	  if (action.kind == unhandler)
  	    __gnat_notify_unhandled_exception (excep);
*************** personality_body (_Unwind_Action uw_phas
*** 1283,1289 ****
    /* Write current exception so that it can be retrieved from Ada.  It was
       already done during phase 1, but one or several exceptions may have been
       raised in cleanup handlers in between.  */
!   __gnat_setup_current_excep (uw_exception, uw_phases);
  #endif
  
    return _URC_INSTALL_CONTEXT;
--- 1477,1483 ----
    /* Write current exception so that it can be retrieved from Ada.  It was
       already done during phase 1, but one or several exceptions may have been
       raised in cleanup handlers in between.  */
!   __gnat_setup_current_excep (uw_exception, uw_phases, eid);
  #endif
  
    return _URC_INSTALL_CONTEXT;
diff -Nrcpad gcc-14.2.0/gcc/ada/raise.c gcc-15.1.0/gcc/ada/raise.c
*** gcc-14.2.0/gcc/ada/raise.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/raise.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2025, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/raise.h gcc-15.1.0/gcc/ada/raise.h
*** gcc-14.2.0/gcc/ada/raise.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/raise.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/repinfo-input.adb gcc-15.1.0/gcc/ada/repinfo-input.adb
*** gcc-14.2.0/gcc/ada/repinfo-input.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/repinfo-input.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2018-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2018-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Repinfo.Input is
*** 341,347 ****
  
           else
              declare
!                S : String (Integer (Lo) .. Integer (Hi));
                 for S'Address use Text (Lo)'Address;
  
              begin
--- 341,348 ----
  
           else
              declare
!                S : constant String (Integer (Lo) .. Integer (Hi));
!                pragma Import (Ada, S);
                 for S'Address use Text (Lo)'Address;
  
              begin
*************** package body Repinfo.Input is
*** 627,633 ****
  
           else
              declare
!                S : String (Integer (Lo) .. Integer (Hi));
                 for S'Address use Text (Lo)'Address;
  
              begin
--- 628,635 ----
  
           else
              declare
!                S : constant String (Integer (Lo) .. Integer (Hi));
!                pragma Import (Ada, S);
                 for S'Address use Text (Lo)'Address;
  
              begin
diff -Nrcpad gcc-14.2.0/gcc/ada/repinfo-input.ads gcc-15.1.0/gcc/ada/repinfo-input.ads
*** gcc-14.2.0/gcc/ada/repinfo-input.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/repinfo-input.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2018-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2018-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/repinfo.adb gcc-15.1.0/gcc/ada/repinfo.adb
*** gcc-14.2.0/gcc/ada/repinfo.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/repinfo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Repinfo is
*** 457,490 ****
        Bytes_Big_Endian : Boolean;
        In_Subprogram    : Boolean := False)
     is
!       Body_E : Entity_Id;
!       E      : Entity_Id;
! 
!       function Find_Declaration (E : Entity_Id) return Node_Id;
!       --  Utility to retrieve declaration node for entity in the
!       --  case of package bodies and subprograms.
! 
!       ----------------------
!       -- Find_Declaration --
!       ----------------------
! 
!       function Find_Declaration (E : Entity_Id) return Node_Id is
!          Decl : Node_Id;
! 
!       begin
!          Decl := Parent (E);
!          while Present (Decl)
!            and then Nkind (Decl) /= N_Package_Body
!            and then Nkind (Decl) /= N_Subprogram_Declaration
!            and then Nkind (Decl) /= N_Subprogram_Body
!          loop
!             Decl := Parent (Decl);
!          end loop;
! 
!          return Decl;
!       end Find_Declaration;
! 
!    --  Start of processing for List_Entities
  
     begin
        --  List entity if we have one, and it is not a renaming declaration.
--- 457,463 ----
        Bytes_Big_Endian : Boolean;
        In_Subprogram    : Boolean := False)
     is
!       E : Entity_Id;
  
     begin
        --  List entity if we have one, and it is not a renaming declaration.
*************** package body Repinfo is
*** 548,554 ****
  
                 elsif Is_Record_Type (E) then
                    if List_Representation_Info >= 1 then
!                      List_Record_Info (E, Bytes_Big_Endian);
  
                       --  Recurse into entities local to a record type
  
--- 521,531 ----
  
                 elsif Is_Record_Type (E) then
                    if List_Representation_Info >= 1 then
!                      if Is_Private_Type (E) then
!                         List_Record_Info (Full_View (E), Bytes_Big_Endian);
!                      else
!                         List_Record_Info (E, Bytes_Big_Endian);
!                      end if;
  
                       --  Recurse into entities local to a record type
  
*************** package body Repinfo is
*** 609,642 ****
  
              Next_Entity (E);
           end loop;
- 
-          --  For a package body, the entities of the visible subprograms are
-          --  declared in the corresponding spec. Iterate over its entities in
-          --  order to handle properly the subprogram bodies. Skip bodies in
-          --  subunits, which are listed independently.
- 
-          if Ekind (Ent) = E_Package_Body
-            and then Present (Corresponding_Spec (Find_Declaration (Ent)))
-          then
-             E := First_Entity (Corresponding_Spec (Find_Declaration (Ent)));
-             while Present (E) loop
-                if Is_Subprogram (E)
-                  and then
-                    Nkind (Find_Declaration (E)) = N_Subprogram_Declaration
-                then
-                   Body_E := Corresponding_Body (Find_Declaration (E));
- 
-                   if Present (Body_E)
-                     and then
-                       Nkind (Parent (Find_Declaration (Body_E))) /= N_Subunit
-                   then
-                      List_Entities (Body_E, Bytes_Big_Endian);
-                   end if;
-                end if;
- 
-                Next_Entity (E);
-             end loop;
-          end if;
        end if;
     end List_Entities;
  
--- 586,591 ----
*************** package body Repinfo is
*** 734,740 ****
                          Print_Expr (Node.Op2);
                          Write_Str (" else ");
                          Print_Expr (Node.Op3);
!                         Write_Str (" end)");
                       end if;
  
                    when Plus_Expr =>
--- 683,689 ----
                          Print_Expr (Node.Op2);
                          Write_Str (" else ");
                          Print_Expr (Node.Op3);
!                         Write_Str (")");
                       end if;
  
                    when Plus_Expr =>
*************** package body Repinfo is
*** 1491,1496 ****
--- 1440,1451 ----
  
                    else
                       Parent_Type := Base_Type (Parent_Type);
+ 
+                      if Is_Private_Type (Parent_Type) then
+                         Parent_Type := Full_View (Parent_Type);
+                         pragma Assert (Present (Parent_Type));
+                      end if;
+ 
                       if not In_Extended_Main_Source_Unit (Parent_Type) then
                          raise Not_In_Extended_Main;
                       end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/repinfo.ads gcc-15.1.0/gcc/ada/repinfo.ads
*** gcc-14.2.0/gcc/ada/repinfo.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/repinfo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/repinfo.h gcc-15.1.0/gcc/ada/repinfo.h
*** gcc-14.2.0/gcc/ada/repinfo.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/repinfo.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1999-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1999-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/restrict.adb gcc-15.1.0/gcc/ada/restrict.adb
*** gcc-14.2.0/gcc/ada/restrict.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/restrict.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Restrict is
*** 1262,1268 ****
           --  Set as warning if warning case
  
           if Restriction_Warnings (R) then
!             Add_Str ("??");
           end if;
  
           --  Set main message
--- 1262,1268 ----
           --  Set as warning if warning case
  
           if Restriction_Warnings (R) then
!             Add_Str ("?*?");
           end if;
  
           --  Set main message
*************** package body Restrict is
*** 1704,1719 ****
     --------------------------------
  
     procedure Violation_Of_No_Dependence (Unit : Int; N : Node_Id) is
     begin
!       Error_Msg_Node_1 := No_Dependences.Table (Unit).Unit;
!       Error_Msg_Sloc   := Sloc (Error_Msg_Node_1);
  
        if No_Dependences.Table (Unit).Warn then
!          Error_Msg
!            ("?*?violation of restriction `No_Dependence '='> &`#", Sloc (N));
        else
!          Error_Msg
!            ("|violation of restriction `No_Dependence '='> &`#", Sloc (N));
        end if;
     end Violation_Of_No_Dependence;
  
--- 1704,1719 ----
     --------------------------------
  
     procedure Violation_Of_No_Dependence (Unit : Int; N : Node_Id) is
+       Unit_Node : constant Node_Id := No_Dependences.Table (Unit).Unit;
     begin
!       Error_Msg_Sloc := Sloc (Unit_Node);
  
        if No_Dependences.Table (Unit).Warn then
!          Error_Msg_NE ("?*?violation of restriction `No_Dependence '='> &`#",
!            N, Unit_Node);
        else
!          Error_Msg_NE ("|violation of restriction `No_Dependence '='> &`#", N,
!            Unit_Node);
        end if;
     end Violation_Of_No_Dependence;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/restrict.ads gcc-15.1.0/gcc/ada/restrict.ads
*** gcc-14.2.0/gcc/ada/restrict.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/restrict.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/rident.ads gcc-15.1.0/gcc/ada/rident.ads
*** gcc-14.2.0/gcc/ada/rident.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/rident.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/rtfinal.c gcc-15.1.0/gcc/ada/rtfinal.c
*** gcc-14.2.0/gcc/ada/rtfinal.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/rtfinal.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/rtinit.c gcc-15.1.0/gcc/ada/rtinit.c
*** gcc-14.2.0/gcc/ada/rtinit.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/rtinit.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/rtsfind.adb gcc-15.1.0/gcc/ada/rtsfind.adb
*** gcc-14.2.0/gcc/ada/rtsfind.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/rtsfind.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Restrict;       use Restrict;
*** 47,52 ****
--- 47,53 ----
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Ch7;        use Sem_Ch7;
+ with Sem_Ch12;        use Sem_Ch12;
  with Sem_Dist;       use Sem_Dist;
  with Sem_Util;       use Sem_Util;
  with Sinfo;          use Sinfo;
*************** package body Rtsfind is
*** 152,158 ****
  
     --    packed component size of 43 is not supported
  
!    type CString_Ptr is access constant String;
  
     type PRE_Id_Entry is record
        Str : CString_Ptr;
--- 153,159 ----
  
     --    packed component size of 43 is not supported
  
!    type CString_Ptr is not null access constant String;
  
     type PRE_Id_Entry is record
        Str : CString_Ptr;
*************** package body Rtsfind is
*** 455,461 ****
        end if;
  
     exception
!          --  Generate error message if run-time unit not available
  
        when RE_Not_Available =>
           Error_Msg_N ("& not available", Nam);
--- 456,462 ----
        end if;
  
     exception
!       --  Generate error message if run-time unit not available
  
        when RE_Not_Available =>
           Error_Msg_N ("& not available", Nam);
*************** package body Rtsfind is
*** 603,610 ****
     subtype Interfaces_C_Descendant is Interfaces_Descendant
       range Interfaces_C_Strings .. Interfaces_C_Strings;
  
     subtype System_Descendant is RTU_Id
!      range System_Address_Image .. System_Tasking_Stages;
  
     subtype System_Atomic_Operations_Descendant is System_Descendant
       range System_Atomic_Operations_Test_And_Set ..
--- 604,614 ----
     subtype Interfaces_C_Descendant is Interfaces_Descendant
       range Interfaces_C_Strings .. Interfaces_C_Strings;
  
+    subtype SPARK_Descendant is RTU_Id
+      range SPARK_Big_Integers .. SPARK_Big_Integers;
+ 
     subtype System_Descendant is RTU_Id
!      range System_Address_To_Access_Conversions .. System_Tasking_Stages;
  
     subtype System_Atomic_Operations_Descendant is System_Descendant
       range System_Atomic_Operations_Test_And_Set ..
*************** package body Rtsfind is
*** 698,703 ****
--- 702,710 ----
              Name_Buffer (13) := '.';
           end if;
  
+       elsif U_Id in SPARK_Descendant then
+          Name_Buffer (6) := '.';
+ 
        elsif U_Id in System_Descendant then
           Name_Buffer (7) := '.';
  
*************** package body Rtsfind is
*** 1185,1191 ****
  
              else
                 Save_Private_Visibility;
!                Semantics (Cunit (U.Unum));
                 Restore_Private_Visibility;
  
                 if Fatal_Error (U.Unum) = Error_Detected then
--- 1192,1204 ----
  
              else
                 Save_Private_Visibility;
!                declare
!                   Saved_Instance_Context : constant Instance_Context.Context :=
!                     Instance_Context.Save_And_Reset;
!                begin
!                   Semantics (Cunit (U.Unum));
!                   Instance_Context.Restore (Saved_Instance_Context);
!                end;
                 Restore_Private_Visibility;
  
                 if Fatal_Error (U.Unum) = Error_Detected then
*************** package body Rtsfind is
*** 1305,1312 ****
  
           Set_Corresponding_Spec  (Withn, U.Entity);
           Set_First_Name          (Withn);
!          Set_Implicit_With       (Withn);
!          Set_Library_Unit        (Withn, Cunit (U.Unum));
           Set_Next_Implicit_With  (Withn, U.First_Implicit_With);
  
           U.First_Implicit_With := Withn;
--- 1318,1325 ----
  
           Set_Corresponding_Spec  (Withn, U.Entity);
           Set_First_Name          (Withn);
!          Set_Is_Implicit_With    (Withn);
!          Set_Withed_Lib_Unit     (Withn, Cunit (U.Unum));
           Set_Next_Implicit_With  (Withn, U.First_Implicit_With);
  
           U.First_Implicit_With := Withn;
diff -Nrcpad gcc-14.2.0/gcc/ada/rtsfind.ads gcc-15.1.0/gcc/ada/rtsfind.ads
*** gcc-14.2.0/gcc/ada/rtsfind.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/rtsfind.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Rtsfind is
*** 193,205 ****
  
        Interfaces_C_Strings,
  
        --  Package System
  
        System,
  
        --  Children of System
  
-       System_Address_Image,
        System_Address_To_Access_Conversions,
        System_Arith_64,
        System_Arith_128,
--- 193,212 ----
  
        Interfaces_C_Strings,
  
+       --  Package SPARK
+ 
+       SPARK,
+ 
+       --  Children of SPARK
+ 
+       SPARK_Big_Integers,
+ 
        --  Package System
  
        System,
  
        --  Children of System
  
        System_Address_To_Access_Conversions,
        System_Arith_64,
        System_Arith_128,
*************** package Rtsfind is
*** 254,260 ****
        System_Fat_LFlt,
        System_Fat_LLF,
        System_Fat_SFlt,
!       System_Finalization_Masters,
        System_Finalization_Root,
        System_Fore_Decimal_32,
        System_Fore_Decimal_64,
--- 261,267 ----
        System_Fat_LFlt,
        System_Fat_LLF,
        System_Fat_SFlt,
!       System_Finalization_Primitives,
        System_Finalization_Root,
        System_Fore_Decimal_32,
        System_Fore_Decimal_64,
*************** package Rtsfind is
*** 263,268 ****
--- 270,277 ----
        System_Fore_Fixed_64,
        System_Fore_Fixed_128,
        System_Fore_Real,
+       System_Img_Address_32,
+       System_Img_Address_64,
        System_Img_Bool,
        System_Img_Char,
        System_Img_Decimal_32,
*************** package Rtsfind is
*** 574,579 ****
--- 583,589 ----
  
       RE_Big_Integer,             -- Ada.Numerics.Big_Numbers.Big_Integers
       RO_GH_Big_Integer,          -- Ada.Numerics.Big_Numbers.Big_Integers_Ghost
+      RO_SP_Big_Integer,          -- SPARK.Big_Integers
  
       RE_Names,                           -- Ada.Interrupts.Names
  
*************** package Rtsfind is
*** 756,762 ****
       RE_Null_Address,                    -- System
       RE_Priority,                        -- System
  
!      RE_Address_Image,                   -- System.Address_Image
  
       RE_Add_With_Ovflo_Check64,          -- System.Arith_64
       RE_Double_Divide64,                 -- System.Arith_64
--- 766,773 ----
       RE_Null_Address,                    -- System
       RE_Priority,                        -- System
  
!      RE_Address_Image32,                 -- System.Img_Address_32
!      RE_Address_Image64,                 -- System.Img_Address_64
  
       RE_Add_With_Ovflo_Check64,          -- System.Arith_64
       RE_Double_Divide64,                 -- System.Arith_64
*************** package Rtsfind is
*** 917,928 ****
  
       RE_Attr_Long_Long_Float,            -- System.Fat_LLF
  
!      RE_Add_Offset_To_Address,           -- System.Finalization_Masters
!      RE_Base_Pool,                       -- System.Finalization_Masters
!      RE_Finalization_Master,             -- System.Finalization_Masters
!      RE_Finalization_Master_Ptr,         -- System.Finalization_Masters
!      RE_Set_Base_Pool,                   -- System.Finalization_Masters
!      RE_Set_Finalize_Address,            -- System.Finalization_Masters
  
       RE_Root_Controlled,                 -- System.Finalization_Root
  
--- 928,945 ----
  
       RE_Attr_Long_Long_Float,            -- System.Fat_LLF
  
!      RE_Attach_Object_To_Collection,     -- System.Finalization_Primitives
!      RE_Attach_Object_To_Master,         -- System.Finalization_Primitives
!      RE_Attach_Object_To_Node,           -- System.Finalization_Primitives
!      RE_Chain_Node_To_Master,            -- System.Finalization_Primitives
!      RE_Detach_Object_From_Collection,   -- System.Finalization_Primitives
!      RE_Finalization_Collection,         -- System.Finalization_Primitives
!      RE_Finalization_Collection_Ptr,     -- System.Finalization_Primitives
!      RE_Finalization_Master,             -- System.Finalization_Primitives
!      RE_Finalize_Master,                 -- System.Finalization_Primitives
!      RE_Finalize_Object,                 -- System.Finalization_Primitives
!      RE_Master_Node,                     -- System.Finalization_Primitives
!      RE_Suppress_Object_Finalize_At_End, -- System.Finalization_Primitives
  
       RE_Root_Controlled,                 -- System.Finalization_Root
  
*************** package Rtsfind is
*** 1601,1606 ****
--- 1618,1624 ----
  
       RE_Adjust_Storage_Size,             -- System.Parameters
       RE_Default_Stack_Size,              -- System.Parameters
+      RE_Minimum_Stack_Size,              -- System.Parameters
       RE_Size_Type,                       -- System.Parameters
       RE_Unspecified_Size,                -- System.Parameters
  
*************** package Rtsfind is
*** 2036,2041 ****
--- 2054,2061 ----
       RE_String_To_Wide_String,           -- System.WCh_StW
       RE_String_To_Wide_Wide_String,      -- System.WCh_StW
  
+      RE_Enum_Wide_String_To_String,      -- System.WCh_WtS
+      RE_Enum_Wide_Wide_String_To_String, -- System.WCh_WtS
       RE_Wide_String_To_String,           -- System.WCh_WtS
       RE_Wide_Wide_String_To_String,      -- System.WCh_WtS
  
*************** package Rtsfind is
*** 2212,2217 ****
--- 2232,2238 ----
  
       RE_Big_Integer             => Ada_Numerics_Big_Numbers_Big_Integers,
       RO_GH_Big_Integer          => Ada_Numerics_Big_Numbers_Big_Integers_Ghost,
+      RO_SP_Big_Integer          => SPARK_Big_Integers,
  
       RE_Names                            => Ada_Interrupts_Names,
  
*************** package Rtsfind is
*** 2394,2400 ****
       RE_Null_Address                     => System,
       RE_Priority                         => System,
  
!      RE_Address_Image                    => System_Address_Image,
  
       RE_Add_With_Ovflo_Check64           => System_Arith_64,
       RE_Double_Divide64                  => System_Arith_64,
--- 2415,2422 ----
       RE_Null_Address                     => System,
       RE_Priority                         => System,
  
!      RE_Address_Image32                  => System_Img_Address_32,
!      RE_Address_Image64                  => System_Img_Address_64,
  
       RE_Add_With_Ovflo_Check64           => System_Arith_64,
       RE_Double_Divide64                  => System_Arith_64,
*************** package Rtsfind is
*** 2561,2572 ****
  
       RE_Attr_Long_Long_Float             => System_Fat_LLF,
  
!      RE_Add_Offset_To_Address            => System_Finalization_Masters,
!      RE_Base_Pool                        => System_Finalization_Masters,
!      RE_Finalization_Master              => System_Finalization_Masters,
!      RE_Finalization_Master_Ptr          => System_Finalization_Masters,
!      RE_Set_Base_Pool                    => System_Finalization_Masters,
!      RE_Set_Finalize_Address             => System_Finalization_Masters,
  
       RE_Root_Controlled                  => System_Finalization_Root,
  
--- 2583,2600 ----
  
       RE_Attr_Long_Long_Float             => System_Fat_LLF,
  
!      RE_Attach_Object_To_Collection      => System_Finalization_Primitives,
!      RE_Attach_Object_To_Master          => System_Finalization_Primitives,
!      RE_Attach_Object_To_Node            => System_Finalization_Primitives,
!      RE_Chain_Node_To_Master             => System_Finalization_Primitives,
!      RE_Detach_Object_From_Collection    => System_Finalization_Primitives,
!      RE_Finalization_Collection          => System_Finalization_Primitives,
!      RE_Finalization_Collection_Ptr      => System_Finalization_Primitives,
!      RE_Finalization_Master              => System_Finalization_Primitives,
!      RE_Finalize_Master                  => System_Finalization_Primitives,
!      RE_Finalize_Object                  => System_Finalization_Primitives,
!      RE_Master_Node                      => System_Finalization_Primitives,
!      RE_Suppress_Object_Finalize_At_End  => System_Finalization_Primitives,
  
       RE_Root_Controlled                  => System_Finalization_Root,
  
*************** package Rtsfind is
*** 3247,3252 ****
--- 3275,3281 ----
  
       RE_Adjust_Storage_Size              => System_Parameters,
       RE_Default_Stack_Size               => System_Parameters,
+      RE_Minimum_Stack_Size               => System_Parameters,
       RE_Size_Type                        => System_Parameters,
       RE_Unspecified_Size                 => System_Parameters,
  
*************** package Rtsfind is
*** 3686,3691 ****
--- 3715,3722 ----
       RE_String_To_Wide_String            => System_WCh_StW,
       RE_String_To_Wide_Wide_String       => System_WCh_StW,
  
+      RE_Enum_Wide_String_To_String       => System_WCh_WtS,
+      RE_Enum_Wide_Wide_String_To_String  => System_WCh_WtS,
       RE_Wide_String_To_String            => System_WCh_WtS,
       RE_Wide_Wide_String_To_String       => System_WCh_WtS,
  
diff -Nrcpad gcc-14.2.0/gcc/ada/runtime.h gcc-15.1.0/gcc/ada/runtime.h
*** gcc-14.2.0/gcc/ada/runtime.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/runtime.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2019-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2019-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/s-oscons-tmplt.c gcc-15.1.0/gcc/ada/s-oscons-tmplt.c
*** gcc-14.2.0/gcc/ada/s-oscons-tmplt.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/s-oscons-tmplt.c	Fri Apr 25 08:18:00 2025
***************
*** 7,13 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! pragma Style_Checks ("M32766");
! --  Allow long lines
  
  */
  
--- 30,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! pragma Style_Checks ("N");
! --  Disable style checks
  
  */
  
*************** pragma Style_Checks ("M32766");
*** 86,92 ****
   ** a number of non-POSIX but useful/required features.
   **/
  
! #if defined (__linux__) || defined (__ANDROID__)
  
  /* Define _XOPEN_SOURCE to get IOV_MAX */
  # if !defined (_XOPEN_SOURCE)
--- 86,92 ----
   ** a number of non-POSIX but useful/required features.
   **/
  
! #if defined (__linux__) || defined (__ANDROID__) || defined (__GNU__)
  
  /* Define _XOPEN_SOURCE to get IOV_MAX */
  # if !defined (_XOPEN_SOURCE)
*************** pragma Style_Checks ("M32766");
*** 96,102 ****
  /* Define _BSD_SOURCE to get CRTSCTS */
  # define _BSD_SOURCE
  
! #endif /* defined (__linux__) || defined (__ANDROID__) */
  
  /* Include gsocket.h before any system header so it can redefine FD_SETSIZE */
  
--- 96,102 ----
  /* Define _BSD_SOURCE to get CRTSCTS */
  # define _BSD_SOURCE
  
! #endif /* defined (__linux__) || defined (__ANDROID__) || defined (__GNU__) */
  
  /* Include gsocket.h before any system header so it can redefine FD_SETSIZE */
  
*************** pragma Style_Checks ("M32766");
*** 160,166 ****
  #endif
  
  #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__) \
!   || defined (__rtems__)
  # include <pthread.h>
  # include <signal.h>
  #endif
--- 160,166 ----
  #endif
  
  #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__) \
!   || defined (__rtems__) || defined (__GNU__)
  # include <pthread.h>
  # include <signal.h>
  #endif
*************** CND(MSG_WAITALL, "Wait for full receptio
*** 1469,1475 ****
  #endif
  CND(MSG_NOSIGNAL, "No SIGPIPE on send")
  
! #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__)
  # define MSG_Forced_Flags "MSG_NOSIGNAL"
  #else
  # define MSG_Forced_Flags "0"
--- 1469,1475 ----
  #endif
  CND(MSG_NOSIGNAL, "No SIGPIPE on send")
  
! #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__) || defined (__GNU__)
  # define MSG_Forced_Flags "MSG_NOSIGNAL"
  #else
  # define MSG_Forced_Flags "0"
*************** CST(Poll_Linkname, "")
*** 1938,1944 ****
  
  #endif /* HAVE_SOCKETS */
  
! #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__)
  #define SIZEOF_sigset (sizeof (sigset_t))
  CND(SIZEOF_sigset, "sigset")
  #endif
--- 1938,1944 ----
  
  #endif /* HAVE_SOCKETS */
  
! #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__) || defined (__GNU__)
  #define SIZEOF_sigset (sizeof (sigset_t))
  CND(SIZEOF_sigset, "sigset")
  #endif
*************** CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
*** 1997,2004 ****
  CNS(CLOCK_RT_Ada, "")
  #endif
  
! #if defined (__APPLE__) || defined (__linux__) || defined (__ANDROID__) \
!   || defined (__QNX__) || defined (__rtems__) || defined (DUMMY)
  /*
  
     --  Sizes of pthread data types
--- 1997,2006 ----
  CNS(CLOCK_RT_Ada, "")
  #endif
  
! #if defined (__APPLE__) || defined (__ANDROID__) || defined (DUMMY) \
!   || defined (__FreeBSD__) || defined (__linux__) \
!   || defined (__QNX__) || defined (__rtems__) || defined (__GNU__)
! 
  /*
  
     --  Sizes of pthread data types
*************** CND(PTHREAD_RWLOCKATTR_SIZE, "pthread_rw
*** 2041,2047 ****
  CND(PTHREAD_RWLOCK_SIZE,     "pthread_rwlock_t")
  CND(PTHREAD_ONCE_SIZE,       "pthread_once_t")
  
! #endif /* __APPLE__ || __linux__ || __ANDROID__ || __rtems__ */
  
  /*
  
--- 2043,2050 ----
  CND(PTHREAD_RWLOCK_SIZE,     "pthread_rwlock_t")
  CND(PTHREAD_ONCE_SIZE,       "pthread_once_t")
  
! #endif /* __APPLE__ || __ANDROID__ || __FreeBSD ||__linux__
!           || __QNX__|| __rtems__ || __GNU__ */
  
  /*
  
diff -Nrcpad gcc-14.2.0/gcc/ada/s-pack.adb.tmpl gcc-15.1.0/gcc/ada/s-pack.adb.tmpl
*** gcc-14.2.0/gcc/ada/s-pack.adb.tmpl	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/s-pack.adb.tmpl	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,729 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                       S Y S T E M . P A C K _ @ @                        --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with System.Address_To_Access_Conversions;
+ with System.Storage_Elements;
+ with System.Unsigned_Types;
+ 
+ package body System.Pack_@@ is
+ 
+    --  The high-level idea of the implementation is to overlay a record
+    --  containing components of the same size as that of the component
+    --  of the array, in order words @@ bits, and to access the indexed
+    --  component of the array through the appropriate selected component
+    --  of the record.
+ 
+    --  The record must be of a fixed size for technical reasons, so we
+    --  effectively overlay a series of contiguous records containing 8
+    --  components (so that their size in bits is a multiple of a byte)
+    --  at the start of the array and access the component in the last
+    --  of them. However, this component in the last record may also be
+    --  mapped to the last component of the array, which means that the
+    --  generated code cannot safely access past it (or its last byte).
+    --  That's why the last record of the series is shortened, so the
+    --  accessed component is always the last component of the record.
+ 
+    --  A (0)                                               A (N)
+    --  |                                                     |
+    --  V                                                     V
+    --  ---------------------------------------------------------------
+    --  | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+    --  ---------------------------------------------------------------
+    --
+    --                                                    component K
+    --                                                        |
+    --                                                        V
+    --  ---------------------------------------------------------
+    --  |               |               |               |       |
+    --  ---------------------------------------------------------
+    --         |               |               |             |
+    --      Cluster7        Cluster7        Cluster7     ClusterK
+    --
+    --  where the number of Cluster7 is N / 8 and K is N mod 8.
+ 
+    subtype Bit_Order is System.Bit_Order;
+    Reverse_Bit_Order : constant Bit_Order :=
+      Bit_Order'Val (1 - Bit_Order'Pos (System.Default_Bit_Order));
+ 
+    subtype Ofs is System.Storage_Elements.Storage_Offset;
+    subtype Uns is System.Unsigned_Types.Unsigned;
+    subtype N07 is System.Unsigned_Types.Unsigned range 0 .. 7;
+ 
+    use type System.Storage_Elements.Storage_Offset;
+    use type System.Unsigned_Types.Unsigned;
+ 
+    --------------
+    -- Cluster0 --
+    --------------
+ 
+    type Cluster0 is record
+       E0 : Bits_@@;
+    end record;
+ 
+    for Cluster0 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster0'Size use Bits * (1 + 0);
+ 
+    for Cluster0'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC0 is new Address_To_Access_Conversions (Cluster0);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster0 is new Cluster0
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC0 is new Address_To_Access_Conversions (Rev_Cluster0);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster0U is new Cluster0;
+    for Cluster0U'Alignment use 1;
+ 
+    package AAC0U is new Address_To_Access_Conversions (Cluster0U);
+ 
+    type Rev_Cluster0U is new Cluster0U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC0U is new Address_To_Access_Conversions (Rev_Cluster0U);
+ 
+ @/even
+    --------------
+    -- Cluster1 --
+    --------------
+ 
+    type Cluster1 is record
+       E0, E1 : Bits_@@;
+    end record;
+ 
+    for Cluster1 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster1'Size use Bits * (1 + 1);
+ 
+    for Cluster1'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC1 is new Address_To_Access_Conversions (Cluster1);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster1 is new Cluster1
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC1 is new Address_To_Access_Conversions (Rev_Cluster1);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster1U is new Cluster1;
+    for Cluster1U'Alignment use 1;
+ 
+    package AAC1U is new Address_To_Access_Conversions (Cluster1U);
+ 
+    type Rev_Cluster1U is new Cluster1U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC1U is new Address_To_Access_Conversions (Rev_Cluster1U);
+ 
+ @/even
+    --------------
+    -- Cluster2 --
+    --------------
+ 
+    type Cluster2 is record
+       E0, E1, E2 : Bits_@@;
+    end record;
+ 
+    for Cluster2 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster2'Size use Bits * (1 + 2);
+ 
+    for Cluster2'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC2 is new Address_To_Access_Conversions (Cluster2);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster2 is new Cluster2
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC2 is new Address_To_Access_Conversions (Rev_Cluster2);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster2U is new Cluster2;
+    for Cluster2U'Alignment use 1;
+ 
+    package AAC2U is new Address_To_Access_Conversions (Cluster2U);
+ 
+    type Rev_Cluster2U is new Cluster2U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC2U is new Address_To_Access_Conversions (Rev_Cluster2U);
+ 
+ @/even
+    --------------
+    -- Cluster3 --
+    --------------
+ 
+    type Cluster3 is record
+       E0, E1, E2, E3 : Bits_@@;
+    end record;
+ 
+    for Cluster3 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster3'Size use Bits * (1 + 3);
+ 
+    for Cluster3'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC3 is new Address_To_Access_Conversions (Cluster3);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster3 is new Cluster3
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC3 is new Address_To_Access_Conversions (Rev_Cluster3);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster3U is new Cluster3;
+    for Cluster3U'Alignment use 1;
+ 
+    package AAC3U is new Address_To_Access_Conversions (Cluster3U);
+ 
+    type Rev_Cluster3U is new Cluster3U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC3U is new Address_To_Access_Conversions (Rev_Cluster3U);
+ 
+ @/even
+    --------------
+    -- Cluster4 --
+    --------------
+ 
+    type Cluster4 is record
+       E0, E1, E2, E3, E4 : Bits_@@;
+    end record;
+ 
+    for Cluster4 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
+       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster4'Size use Bits * (1 + 4);
+ 
+    for Cluster4'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC4 is new Address_To_Access_Conversions (Cluster4);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster4 is new Cluster4
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC4 is new Address_To_Access_Conversions (Rev_Cluster4);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster4U is new Cluster4;
+    for Cluster4U'Alignment use 1;
+ 
+    package AAC4U is new Address_To_Access_Conversions (Cluster4U);
+ 
+    type Rev_Cluster4U is new Cluster4U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC4U is new Address_To_Access_Conversions (Rev_Cluster4U);
+ 
+ @/even
+    --------------
+    -- Cluster5 --
+    --------------
+ 
+    type Cluster5 is record
+       E0, E1, E2, E3, E4, E5 : Bits_@@;
+    end record;
+ 
+    for Cluster5 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
+       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
+       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster5'Size use Bits * (1 + 5);
+ 
+    for Cluster5'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC5 is new Address_To_Access_Conversions (Cluster5);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster5 is new Cluster5
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC5 is new Address_To_Access_Conversions (Rev_Cluster5);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster5U is new Cluster5;
+    for Cluster5U'Alignment use 1;
+ 
+    package AAC5U is new Address_To_Access_Conversions (Cluster5U);
+ 
+    type Rev_Cluster5U is new Cluster5U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC5U is new Address_To_Access_Conversions (Rev_Cluster5U);
+ 
+ @/even
+    --------------
+    -- Cluster6 --
+    --------------
+ 
+    type Cluster6 is record
+       E0, E1, E2, E3, E4, E5, E6 : Bits_@@;
+    end record;
+ 
+    for Cluster6 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
+       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
+       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
+       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster6'Size use Bits * (1 + 6);
+ 
+    for Cluster6'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC6 is new Address_To_Access_Conversions (Cluster6);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster6 is new Cluster6
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC6 is new Address_To_Access_Conversions (Rev_Cluster6);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster6U is new Cluster6;
+    for Cluster6U'Alignment use 1;
+ 
+    package AAC6U is new Address_To_Access_Conversions (Cluster6U);
+ 
+    type Rev_Cluster6U is new Cluster6U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC6U is new Address_To_Access_Conversions (Rev_Cluster6U);
+ 
+ @/even
+    --------------
+    -- Cluster7 --
+    --------------
+ 
+    type Cluster7 is record
+       E0, E1, E2, E3, E4, E5, E6, E7 : Bits_@@;
+    end record;
+ 
+    for Cluster7 use record
+       E0 at 0 range 0 * Bits .. 0 * Bits + Bits - 1;
+       E1 at 0 range 1 * Bits .. 1 * Bits + Bits - 1;
+       E2 at 0 range 2 * Bits .. 2 * Bits + Bits - 1;
+       E3 at 0 range 3 * Bits .. 3 * Bits + Bits - 1;
+       E4 at 0 range 4 * Bits .. 4 * Bits + Bits - 1;
+       E5 at 0 range 5 * Bits .. 5 * Bits + Bits - 1;
+       E6 at 0 range 6 * Bits .. 6 * Bits + Bits - 1;
+       E7 at 0 range 7 * Bits .. 7 * Bits + Bits - 1;
+    end record;
+ 
+    for Cluster7'Size use Bits * (1 + 7);
+ 
+    for Cluster7'Alignment use Integer'Min (Standard'Maximum_Alignment,
+      1 +
+      1 * Boolean'Pos (Bits mod 2 = 0) +
+      2 * Boolean'Pos (Bits mod 4 = 0));
+    --  Use maximum possible alignment, given the bit field size, since this
+    --  will result in the most efficient code possible for the field.
+ 
+    package AAC7 is new Address_To_Access_Conversions (Cluster7);
+    --  We convert addresses to access values and dereference them instead of
+    --  directly using overlays in order to work around the implementation of
+    --  the RM 13.3(19) clause, which would pessimize the generated code.
+ 
+    type Rev_Cluster7 is new Cluster7
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC7 is new Address_To_Access_Conversions (Rev_Cluster7);
+ 
+ @even
+    --  The following declarations are for the case where the address
+    --  passed to GetU_@@ or SetU_@@ is not guaranteed to be aligned.
+    --  These routines are used when the packed array is itself a
+    --  component of a packed record, and therefore may not be aligned.
+ 
+    type Cluster7U is new Cluster7;
+    for Cluster7U'Alignment use 1;
+ 
+    package AAC7U is new Address_To_Access_Conversions (Cluster7U);
+ 
+    type Rev_Cluster7U is new Cluster7U
+      with Bit_Order            => Reverse_Bit_Order,
+           Scalar_Storage_Order => Reverse_Bit_Order;
+ 
+    package Rev_AAC7U is new Address_To_Access_Conversions (Rev_Cluster7U);
+ 
+ @/even
+    ------------
+    -- Get_@@ --
+    ------------
+ 
+    function Get_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       Rev_SSO : Boolean) return Bits_@@
+    is
+       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
+       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
+       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
+       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
+       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
+       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
+       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
+       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
+       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
+       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
+       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
+       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
+       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
+       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
+       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
+       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
+       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
+ 
+    begin
+       return
+          (if Rev_SSO then
+             (case N07 (Uns (N) mod 8) is
+                when 0 => RC0.E0,
+                when 1 => RC1.E1,
+                when 2 => RC2.E2,
+                when 3 => RC3.E3,
+                when 4 => RC4.E4,
+                when 5 => RC5.E5,
+                when 6 => RC6.E6,
+                when 7 => RC7.E7)
+ 
+          else
+             (case N07 (Uns (N) mod 8) is
+                when 0 => C0.E0,
+                when 1 => C1.E1,
+                when 2 => C2.E2,
+                when 3 => C3.E3,
+                when 4 => C4.E4,
+                when 5 => C5.E5,
+                when 6 => C6.E6,
+                when 7 => C7.E7)
+          );
+    end Get_@@;
+ 
+ @even
+    -------------
+    -- GetU_@@ --
+    -------------
+ 
+    function GetU_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       Rev_SSO : Boolean) return Bits_@@
+    is
+       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
+       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
+       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
+       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
+       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
+       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
+       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
+       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
+       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
+       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
+       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
+       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
+       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
+       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
+       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
+       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
+       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
+ 
+    begin
+       return
+          (if Rev_SSO then
+             (case N07 (Uns (N) mod 8) is
+                when 0 => RC0.E0,
+                when 1 => RC1.E1,
+                when 2 => RC2.E2,
+                when 3 => RC3.E3,
+                when 4 => RC4.E4,
+                when 5 => RC5.E5,
+                when 6 => RC6.E6,
+                when 7 => RC7.E7)
+ 
+          else
+             (case N07 (Uns (N) mod 8) is
+                when 0 => C0.E0,
+                when 1 => C1.E1,
+                when 2 => C2.E2,
+                when 3 => C3.E3,
+                when 4 => C4.E4,
+                when 5 => C5.E5,
+                when 6 => C6.E6,
+                when 7 => C7.E7)
+          );
+    end GetU_@@;
+ 
+ @/even
+    ------------
+    -- Set_@@ --
+    ------------
+ 
+    procedure Set_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       E       : Bits_@@;
+       Rev_SSO : Boolean)
+    is
+       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
+       C0  : constant AAC0.Object_Pointer     := AAC0.To_Pointer (A);
+       C1  : constant AAC1.Object_Pointer     := AAC1.To_Pointer (A);
+       C2  : constant AAC2.Object_Pointer     := AAC2.To_Pointer (A);
+       C3  : constant AAC3.Object_Pointer     := AAC3.To_Pointer (A);
+       C4  : constant AAC4.Object_Pointer     := AAC4.To_Pointer (A);
+       C5  : constant AAC5.Object_Pointer     := AAC5.To_Pointer (A);
+       C6  : constant AAC6.Object_Pointer     := AAC6.To_Pointer (A);
+       C7  : constant AAC7.Object_Pointer     := AAC7.To_Pointer (A);
+       RC0 : constant Rev_AAC0.Object_Pointer := Rev_AAC0.To_Pointer (A);
+       RC1 : constant Rev_AAC1.Object_Pointer := Rev_AAC1.To_Pointer (A);
+       RC2 : constant Rev_AAC2.Object_Pointer := Rev_AAC2.To_Pointer (A);
+       RC3 : constant Rev_AAC3.Object_Pointer := Rev_AAC3.To_Pointer (A);
+       RC4 : constant Rev_AAC4.Object_Pointer := Rev_AAC4.To_Pointer (A);
+       RC5 : constant Rev_AAC5.Object_Pointer := Rev_AAC5.To_Pointer (A);
+       RC6 : constant Rev_AAC6.Object_Pointer := Rev_AAC6.To_Pointer (A);
+       RC7 : constant Rev_AAC7.Object_Pointer := Rev_AAC7.To_Pointer (A);
+ 
+    begin
+       if Rev_SSO then
+          case N07 (Uns (N) mod 8) is
+             when 0 => RC0.E0 := E;
+             when 1 => RC1.E1 := E;
+             when 2 => RC2.E2 := E;
+             when 3 => RC3.E3 := E;
+             when 4 => RC4.E4 := E;
+             when 5 => RC5.E5 := E;
+             when 6 => RC6.E6 := E;
+             when 7 => RC7.E7 := E;
+          end case;
+       else
+          case N07 (Uns (N) mod 8) is
+             when 0 => C0.E0 := E;
+             when 1 => C1.E1 := E;
+             when 2 => C2.E2 := E;
+             when 3 => C3.E3 := E;
+             when 4 => C4.E4 := E;
+             when 5 => C5.E5 := E;
+             when 6 => C6.E6 := E;
+             when 7 => C7.E7 := E;
+          end case;
+       end if;
+    end Set_@@;
+ 
+ @even
+    -------------
+    -- SetU_@@ --
+    -------------
+ 
+    procedure SetU_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       E       : Bits_@@;
+       Rev_SSO : Boolean)
+    is
+       A   : constant System.Address          := Arr + Bits * Ofs (Uns (N) / 8);
+       C0  : constant AAC0U.Object_Pointer     := AAC0U.To_Pointer (A);
+       C1  : constant AAC1U.Object_Pointer     := AAC1U.To_Pointer (A);
+       C2  : constant AAC2U.Object_Pointer     := AAC2U.To_Pointer (A);
+       C3  : constant AAC3U.Object_Pointer     := AAC3U.To_Pointer (A);
+       C4  : constant AAC4U.Object_Pointer     := AAC4U.To_Pointer (A);
+       C5  : constant AAC5U.Object_Pointer     := AAC5U.To_Pointer (A);
+       C6  : constant AAC6U.Object_Pointer     := AAC6U.To_Pointer (A);
+       C7  : constant AAC7U.Object_Pointer     := AAC7U.To_Pointer (A);
+       RC0 : constant Rev_AAC0U.Object_Pointer := Rev_AAC0U.To_Pointer (A);
+       RC1 : constant Rev_AAC1U.Object_Pointer := Rev_AAC1U.To_Pointer (A);
+       RC2 : constant Rev_AAC2U.Object_Pointer := Rev_AAC2U.To_Pointer (A);
+       RC3 : constant Rev_AAC3U.Object_Pointer := Rev_AAC3U.To_Pointer (A);
+       RC4 : constant Rev_AAC4U.Object_Pointer := Rev_AAC4U.To_Pointer (A);
+       RC5 : constant Rev_AAC5U.Object_Pointer := Rev_AAC5U.To_Pointer (A);
+       RC6 : constant Rev_AAC6U.Object_Pointer := Rev_AAC6U.To_Pointer (A);
+       RC7 : constant Rev_AAC7U.Object_Pointer := Rev_AAC7U.To_Pointer (A);
+ 
+    begin
+       if Rev_SSO then
+          case N07 (Uns (N) mod 8) is
+             when 0 => RC0.E0 := E;
+             when 1 => RC1.E1 := E;
+             when 2 => RC2.E2 := E;
+             when 3 => RC3.E3 := E;
+             when 4 => RC4.E4 := E;
+             when 5 => RC5.E5 := E;
+             when 6 => RC6.E6 := E;
+             when 7 => RC7.E7 := E;
+          end case;
+       else
+          case N07 (Uns (N) mod 8) is
+             when 0 => C0.E0 := E;
+             when 1 => C1.E1 := E;
+             when 2 => C2.E2 := E;
+             when 3 => C3.E3 := E;
+             when 4 => C4.E4 := E;
+             when 5 => C5.E5 := E;
+             when 6 => C6.E6 := E;
+             when 7 => C7.E7 := E;
+          end case;
+       end if;
+    end SetU_@@;
+ 
+ @/even
+ end System.Pack_@@;
diff -Nrcpad gcc-14.2.0/gcc/ada/s-pack.ads.tmpl gcc-15.1.0/gcc/ada/s-pack.ads.tmpl
*** gcc-14.2.0/gcc/ada/s-pack.ads.tmpl	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/s-pack.ads.tmpl	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,81 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                       S Y S T E M . P A C K _ @ @                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  Handling of packed arrays with Component_Size = @
+ 
+ package System.Pack_@@ is
+    pragma Preelaborate;
+ 
+    --  @-bit element type definition
+ 
+    Bits : constant := @;
+ 
+    type Bits_@@ is mod 2 ** Bits;
+    for Bits_@@'Size use Bits;
+ 
+    --  In all subprograms below, Rev_SSO is set True if the array has the
+    --  non-default scalar storage order.
+ 
+    function Get_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       Rev_SSO : Boolean) return Bits_@@ with Inline;
+    --  Arr is the address of the packed array, N is the zero-based
+    --  subscript. This element is extracted and returned.
+ 
+    procedure Set_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       E       : Bits_@@;
+       Rev_SSO : Boolean) with Inline;
+    --  Arr is the address of the packed array, N is the zero-based
+    --  subscript. This element is set to the given value.
+ 
+ @even
+    function GetU_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       Rev_SSO : Boolean) return Bits_@@ with Inline;
+    --  Arr is the address of the packed array, N is the zero-based
+    --  subscript. This element is extracted and returned. This version
+    --  is used when Arr may represent an unaligned address.
+ 
+    procedure SetU_@@
+      (Arr     : System.Address;
+       N       : Natural;
+       E       : Bits_@@;
+       Rev_SSO : Boolean) with Inline;
+    --  Arr is the address of the packed array, N is the zero-based
+    --  subscript. This element is set to the given value. This version
+    --  is used when Arr may represent an unaligned address
+ 
+ @/even
+ end System.Pack_@@;
diff -Nrcpad gcc-14.2.0/gcc/ada/scans.adb gcc-15.1.0/gcc/ada/scans.adb
*** gcc-14.2.0/gcc/ada/scans.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scans.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Scans is
*** 134,139 ****
--- 134,142 ----
        --  Ada 2012 reserved words
  
        Set_Reserved (Name_Some, Tok_Some);
+ 
+       --  GNAT extensions reserved words
+       Set_Reserved (Name_Finally, Tok_Finally);
     end Initialize_Ada_Keywords;
  
     ------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/scans.ads gcc-15.1.0/gcc/ada/scans.ads
*** gcc-14.2.0/gcc/ada/scans.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scans.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Scans is
*** 93,102 ****
        Tok_Raise,                    -- RAISE
        Tok_Right_Curly_Bracket,      -- }
  
        Tok_Dot,             -- .            Namext
        Tok_Apostrophe,      -- '            Namext
  
-       Tok_Left_Bracket,    -- [            Namext
        Tok_Left_Paren,      -- (            Namext, Consk
  
        Tok_Delta,           -- DELTA        Atkwd, Sterm, Consk
--- 93,103 ----
        Tok_Raise,                    -- RAISE
        Tok_Right_Curly_Bracket,      -- }
  
+       Tok_Left_Bracket,    -- [
+ 
        Tok_Dot,             -- .            Namext
        Tok_Apostrophe,      -- '            Namext
  
        Tok_Left_Paren,      -- (            Namext, Consk
  
        Tok_Delta,           -- DELTA        Atkwd, Sterm, Consk
*************** package Scans is
*** 158,163 ****
--- 159,165 ----
        Tok_End,             -- END          Eterm, Sterm, After_SM
        Tok_Exception,       -- EXCEPTION    Eterm, Sterm, After_SM
        Tok_Exit,            -- EXIT         Eterm, Sterm, After_SM
+       Tok_Finally,         -- FINALLY      Eterm, Sterm, After_SM
        Tok_Goto,            -- GOTO         Eterm, Sterm, After_SM
        Tok_If,              -- IF           Eterm, Sterm, After_SM
        Tok_Pragma,          -- PRAGMA       Eterm, Sterm, After_SM
diff -Nrcpad gcc-14.2.0/gcc/ada/scil_ll.adb gcc-15.1.0/gcc/ada/scil_ll.adb
*** gcc-14.2.0/gcc/ada/scil_ll.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scil_ll.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scil_ll.ads gcc-15.1.0/gcc/ada/scil_ll.ads
*** gcc-14.2.0/gcc/ada/scil_ll.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scil_ll.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scn.adb gcc-15.1.0/gcc/ada/scn.adb
*** gcc-14.2.0/gcc/ada/scn.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scn.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scn.ads gcc-15.1.0/gcc/ada/scn.ads
*** gcc-14.2.0/gcc/ada/scn.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scn.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scng.adb gcc-15.1.0/gcc/ada/scng.adb
*** gcc-14.2.0/gcc/ada/scng.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scng.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Widechar; use Widechar;
*** 40,45 ****
--- 40,46 ----
  
  pragma Warnings (Off);
  --  This package is used also by gnatcoll
+ with System.Case_Util;
  with System.CRC32;
  with System.UTF_32;  use System.UTF_32;
  with System.WCh_Con; use System.WCh_Con;
*************** package body Scng is
*** 1165,1170 ****
--- 1166,1172 ----
                       when '\' | '"' | '{' | '}'
                                => Code := Get_Char_Code (C);
                       when others =>
+                         Code := Get_Char_Code ('?');
                          Error_Msg_S ("illegal escaped character");
                    end case;
  
*************** package body Scng is
*** 2133,2146 ****
           --  Lower case letters
  
           when 'a' .. 'z' =>
!             if Core_Extensions_Allowed
!               and then Source (Scan_Ptr) = 'f'
                and then Source (Scan_Ptr + 1) = '"'
              then
!                Scan_Ptr := Scan_Ptr + 1;
!                Accumulate_Checksum (Source (Scan_Ptr));
!                Token := Tok_Left_Interpolated_String;
!                return;
              end if;
  
              Name_Len := 1;
--- 2135,2153 ----
           --  Lower case letters
  
           when 'a' .. 'z' =>
!             if Source (Scan_Ptr) = 'f'
                and then Source (Scan_Ptr + 1) = '"'
              then
!                if Core_Extensions_Allowed then
!                   Scan_Ptr := Scan_Ptr + 1;
!                   Accumulate_Checksum (Source (Scan_Ptr));
!                   Token := Tok_Left_Interpolated_String;
!                   return;
!                else
!                   Error_Msg_GNAT_Extension
!                     ("interpolated string", Scan_Ptr,
!                      Is_Core_Extension => True);
!                end if;
              end if;
  
              Name_Len := 1;
*************** package body Scng is
*** 2153,2167 ****
           --  Upper case letters
  
           when 'A' .. 'Z' =>
!             if Core_Extensions_Allowed
!               and then Source (Scan_Ptr) = 'F'
                and then Source (Scan_Ptr + 1) = '"'
              then
!                Error_Msg_S
!                  ("delimiter of interpolated string must be in lowercase");
!                Scan_Ptr := Scan_Ptr + 1;
!                Token := Tok_Left_Interpolated_String;
!                return;
              end if;
  
              Token_Contains_Uppercase := True;
--- 2160,2179 ----
           --  Upper case letters
  
           when 'A' .. 'Z' =>
!             if Source (Scan_Ptr) = 'F'
                and then Source (Scan_Ptr + 1) = '"'
              then
!                if Core_Extensions_Allowed then
!                   Error_Msg_S
!                     ("delimiter of interpolated string must be in lowercase");
!                   Scan_Ptr := Scan_Ptr + 1;
!                   Token := Tok_Left_Interpolated_String;
!                   return;
!                else
!                   Error_Msg_GNAT_Extension
!                     ("interpolated string", Scan_Ptr,
!                      Is_Core_Extension => True);
!                end if;
              end if;
  
              Token_Contains_Uppercase := True;
*************** package body Scng is
*** 2250,2335 ****
  
           when Special_Preprocessor_Character =>
  
!             --  If Set_Special_Character has been called for this character,
!             --  set Scans.Special_Character and return a Special token.
  
!             if Special_Characters (Source (Scan_Ptr)) then
!                Token_Ptr := Scan_Ptr;
!                Token := Tok_Special;
!                Special_Character := Source (Scan_Ptr);
!                Scan_Ptr := Scan_Ptr + 1;
!                return;
  
!             --  Check for something looking like a preprocessor directive
  
!             elsif Source (Scan_Ptr) = '#'
!               and then (Source (Scan_Ptr + 1 .. Scan_Ptr + 2) = "if"
!                           or else
!                         Source (Scan_Ptr + 1 .. Scan_Ptr + 5) = "elsif"
!                           or else
!                         Source (Scan_Ptr + 1 .. Scan_Ptr + 4) = "else"
!                           or else
!                         Source (Scan_Ptr + 1 .. Scan_Ptr + 3) = "end")
!             then
!                Error_Msg_S
!                  ("preprocessor directive ignored, preprocessor not active");
  
!                --  Skip to end of line
  
!                loop
!                   if Source (Scan_Ptr) in Graphic_Character
!                        or else
!                      Source (Scan_Ptr) = HT
!                   then
!                      Scan_Ptr := Scan_Ptr + 1;
  
!                   --  Done if line terminator or EOF
  
!                   elsif Source (Scan_Ptr) in Line_Terminator
                            or else
!                         Source (Scan_Ptr) = EOF
!                   then
!                      exit;
  
!                   --  If we have a wide character, we have to scan it out,
!                   --  because it might be a legitimate line terminator
  
!                   elsif Start_Of_Wide_Character then
!                      declare
!                         Wptr : constant Source_Ptr := Scan_Ptr;
!                         Code : Char_Code;
!                         Err  : Boolean;
  
!                      begin
!                         Scan_Wide (Source, Scan_Ptr, Code, Err);
  
!                         --  If not well formed wide character, then just skip
!                         --  past it and ignore it.
  
!                         if Err then
!                            Scan_Ptr := Wptr + 1;
  
!                         --  If UTF_32 terminator, terminate comment scan
  
!                         elsif Is_UTF_32_Line_Terminator (UTF_32 (Code)) then
!                            Scan_Ptr := Wptr;
!                            exit;
!                         end if;
!                      end;
  
!                   --  Else keep going (don't worry about bad comment chars
!                   --  in this context, we just want to find the end of line.
  
!                   else
!                      Scan_Ptr := Scan_Ptr + 1;
!                   end if;
!                end loop;
  
!             --  Otherwise, this is an illegal character
  
!             else
!                Error_Illegal_Character;
!             end if;
  
           --  End switch on non-blank character
  
--- 2262,2407 ----
  
           when Special_Preprocessor_Character =>
  
!             declare
!                function Matches_After_Skipping_White_Space
!                  (S : String) return Boolean;
  
!                --  Return True iff after skipping past white space the
!                --  next Source characters match the given string.
  
!                ----------------------------------------
!                -- Matches_After_Skipping_White_Space --
!                ----------------------------------------
  
!                function Matches_After_Skipping_White_Space
!                  (S : String) return Boolean
!                is
!                   function To_Lower_Case_String (Buff : Text_Buffer)
!                     return String;
!                   --  Convert a text buffer to a lower-case string.
  
!                   --------------------------
!                   -- To_Lower_Case_String --
!                   --------------------------
  
!                   function To_Lower_Case_String (Buff : Text_Buffer)
!                     return String
!                   is
!                      subtype One_Based is Text_Buffer (1 .. Buff'Length);
!                      Result : String := String (One_Based (Buff));
!                   begin
!                      --  The System.Case_Util.To_Lower function (the overload
!                      --  that takes a string parameter) cannot be called
!                      --  here due to bootstrapping problems. That function
!                      --  was added too recently.
  
!                      System.Case_Util.To_Lower (Result);
!                      return Result;
!                   end To_Lower_Case_String;
  
!                   pragma Assert (Source (Scan_Ptr) = '#');
!                   Local_Scan_Ptr : Source_Ptr := Scan_Ptr + 1;
! 
!                --  Start of processing for Matches_After_Skipping_White_Space
! 
!                begin
!                   while Local_Scan_Ptr in Source'Range
!                     and then Source (Local_Scan_Ptr) in ' ' | HT
!                   loop
!                      Local_Scan_Ptr := Local_Scan_Ptr + 1;
!                   end loop;
! 
!                   return Local_Scan_Ptr in Source'Range
!                     and then Local_Scan_Ptr + (S'Length - 1) in Source'Range
!                     and then S = To_Lower_Case_String (
!                                    Source (Local_Scan_Ptr ..
!                                            Local_Scan_Ptr + (S'Length - 1)));
!                end Matches_After_Skipping_White_Space;
! 
!             begin
!                --  If Set_Special_Character has been called for this character,
!                --  set Scans.Special_Character and return a Special token.
! 
!                if Special_Characters (Source (Scan_Ptr)) then
!                   Token_Ptr := Scan_Ptr;
!                   Token := Tok_Special;
!                   Special_Character := Source (Scan_Ptr);
!                   Scan_Ptr := Scan_Ptr + 1;
!                   return;
! 
!                --  Check for something looking like a preprocessor directive
! 
!                elsif Source (Scan_Ptr) = '#'
!                  and then (Matches_After_Skipping_White_Space ("if")
!                              or else
!                            Matches_After_Skipping_White_Space ("elsif")
!                              or else
!                            Matches_After_Skipping_White_Space ("else")
!                              or else
!                            Matches_After_Skipping_White_Space ("end"))
!                then
!                   Error_Msg_S
!                     ("preprocessor directive ignored" &
!                      ", preprocessor not active");
! 
!                   --  Skip to end of line
! 
!                   loop
!                      if Source (Scan_Ptr) in Graphic_Character
                            or else
!                         Source (Scan_Ptr) = HT
!                      then
!                         Scan_Ptr := Scan_Ptr + 1;
  
!                      --  Done if line terminator or EOF
  
!                      elsif Source (Scan_Ptr) in Line_Terminator
!                              or else
!                            Source (Scan_Ptr) = EOF
!                      then
!                         exit;
  
!                      --  If we have a wide character, we have to scan it out,
!                      --  because it might be a legitimate line terminator
  
!                      elsif Start_Of_Wide_Character then
!                         declare
!                            Wptr : constant Source_Ptr := Scan_Ptr;
!                            Code : Char_Code;
!                            Err  : Boolean;
  
!                         begin
!                            Scan_Wide (Source, Scan_Ptr, Code, Err);
  
!                            --  If not well formed wide character, then just
!                            --  skip past it and ignore it.
  
!                            if Err then
!                               Scan_Ptr := Wptr + 1;
  
!                            --  If UTF_32 terminator, terminate comment scan
  
!                            elsif Is_UTF_32_Line_Terminator (UTF_32 (Code)) then
!                               Scan_Ptr := Wptr;
!                               exit;
!                            end if;
!                         end;
  
!                      --  Else keep going (don't worry about bad comment chars
!                      --  in this context, we just want to find the end of line.
  
!                      else
!                         Scan_Ptr := Scan_Ptr + 1;
!                      end if;
!                   end loop;
! 
!                --  Otherwise, this is an illegal character
! 
!                else
!                   Error_Illegal_Character;
!                end if;
! 
!             end;
  
           --  End switch on non-blank character
  
diff -Nrcpad gcc-14.2.0/gcc/ada/scng.ads gcc-15.1.0/gcc/ada/scng.ads
*** gcc-14.2.0/gcc/ada/scng.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scng.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scos.adb gcc-15.1.0/gcc/ada/scos.adb
*** gcc-14.2.0/gcc/ada/scos.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scos.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scos.ads gcc-15.1.0/gcc/ada/scos.ads
*** gcc-14.2.0/gcc/ada/scos.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scos.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/scos.h gcc-15.1.0/gcc/ada/scos.h
*** gcc-14.2.0/gcc/ada/scos.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/scos.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2014-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2014-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sdefault.ads gcc-15.1.0/gcc/ada/sdefault.ads
*** gcc-14.2.0/gcc/ada/sdefault.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sdefault.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/seh_init.c gcc-15.1.0/gcc/ada/seh_init.c
*** gcc-14.2.0/gcc/ada/seh_init.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/seh_init.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2005-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2005-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sem.adb gcc-15.1.0/gcc/ada/sem.adb
*** gcc-14.2.0/gcc/ada/sem.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem is
*** 249,254 ****
--- 249,260 ----
           when N_Extension_Aggregate =>
              Analyze_Aggregate (N);
  
+          --  The expansion of the External_Initialization aspect creates fully
+          --  analyzed N_External_Initializer nodes.
+ 
+          when N_External_Initializer =>
+             null;
+ 
           when N_Formal_Object_Declaration =>
              Analyze_Formal_Object_Declaration (N);
  
*************** package body Sem is
*** 607,615 ****
           when N_Type_Conversion =>
              Analyze_Type_Conversion (N);
  
-          when N_Unchecked_Expression =>
-             Analyze_Unchecked_Expression (N);
- 
           when N_Unchecked_Type_Conversion =>
              Analyze_Unchecked_Type_Conversion (N);
  
--- 613,618 ----
*************** package body Sem is
*** 677,691 ****
           =>
              null;
  
-          --  A quantified expression with a missing "all" or "some" qualifier
-          --  looks identical to an iterated component association. By language
-          --  definition, the latter must be present within array aggregates. If
-          --  this is not the case, then the iterated component association is
-          --  really an illegal quantified expression. Diagnose this scenario.
- 
-          when N_Iterated_Component_Association =>
-             Diagnose_Iterated_Component_Association (N);
- 
           when N_Iterated_Element_Association =>
              null;   --  May require a more precise error if misplaced.
  
--- 680,685 ----
*************** package body Sem is
*** 739,744 ****
--- 733,739 ----
              | N_Function_Specification
              | N_Generic_Association
              | N_Index_Or_Discriminant_Constraint
+             | N_Iterated_Component_Association
              | N_Iteration_Scheme
              | N_Mod_Clause
              | N_Modular_Type_Definition
*************** package body Sem is
*** 1343,1355 ****
        Scope_Stack.Locked := True;
     end Lock;
  
     ------------------------
     -- Preanalysis_Active --
     ------------------------
  
     function Preanalysis_Active return Boolean is
     begin
!       return not Full_Analysis and not Expander_Active;
     end Preanalysis_Active;
  
     ----------------
--- 1338,1359 ----
        Scope_Stack.Locked := True;
     end Lock;
  
+    ---------------------------
+    -- In_Strict_Preanalysis --
+    ---------------------------
+ 
+    function In_Strict_Preanalysis return Boolean is
+    begin
+       return Preanalysis_Active and then not In_Spec_Expression;
+    end In_Strict_Preanalysis;
+ 
     ------------------------
     -- Preanalysis_Active --
     ------------------------
  
     function Preanalysis_Active return Boolean is
     begin
!       return not Full_Analysis and then not Expander_Active;
     end Preanalysis_Active;
  
     ----------------
*************** package body Sem is
*** 1524,1530 ****
           Curunit = Main_Unit
             or else
               (Nkind (Unit (Cunit (Main_Unit))) = N_Package_Body
!                and then Library_Unit (Cunit (Main_Unit)) = Cunit (Curunit));
        --  Configuration flags have special settings when compiling a predefined
        --  file as a main unit. This applies to its spec as well.
  
--- 1528,1534 ----
           Curunit = Main_Unit
             or else
               (Nkind (Unit (Cunit (Main_Unit))) = N_Package_Body
!                and then Spec_Lib_Unit (Cunit (Main_Unit)) = Cunit (Curunit));
        --  Configuration flags have special settings when compiling a predefined
        --  file as a main unit. This applies to its spec as well.
  
*************** package body Sem is
*** 1541,1558 ****
        --  unit. All with'ed units are analyzed with config restrictions reset
        --  and we need to restore these saved values at the end.
  
-       Save_Preanalysis_Counter : constant Nat :=
-                                    Inside_Preanalysis_Without_Freezing;
-       --  Saves the preanalysis nesting-level counter; required since we may
-       --  need to analyze a unit as a consequence of the preanalysis of an
-       --  expression without freezing (and the loaded unit must be fully
-       --  analyzed).
- 
     --  Start of processing for Semantics
  
     begin
-       Inside_Preanalysis_Without_Freezing := 0;
- 
        if Debug_Unit_Walk then
           if Already_Analyzed then
              Write_Str ("(done)");
--- 1545,1553 ----
*************** package body Sem is
*** 1727,1734 ****
              Unit (Comp_Unit),
              Prefix => "<-- ");
        end if;
- 
-       Inside_Preanalysis_Without_Freezing := Save_Preanalysis_Counter;
     end Semantics;
  
     --------
--- 1722,1727 ----
*************** package body Sem is
*** 1835,1842 ****
  
           while Present (CL) loop
              if Nkind (CL) = N_With_Clause
!               and then Library_Unit (CL) = Main_CU
!               and then not Done (Get_Cunit_Unit_Number (Library_Unit (CL)))
              then
                 return True;
              end if;
--- 1828,1835 ----
  
           while Present (CL) loop
              if Nkind (CL) = N_With_Clause
!               and then Withed_Lib_Unit (CL) = Main_CU
!               and then not Done (Get_Cunit_Unit_Number (Withed_Lib_Unit (CL)))
              then
                 return True;
              end if;
*************** package body Sem is
*** 2019,2027 ****
  
           if Nkind (Unit (Withed_Unit)) = N_Package_Body
             and then Is_Generic_Instance
!                       (Defining_Entity (Unit (Library_Unit (Withed_Unit))))
           then
!             Do_Withed_Unit (Library_Unit (Withed_Unit));
           end if;
        end Do_Withed_Unit;
  
--- 2012,2020 ----
  
           if Nkind (Unit (Withed_Unit)) = N_Package_Body
             and then Is_Generic_Instance
!                       (Defining_Entity (Unit (Spec_Lib_Unit (Withed_Unit))))
           then
!             Do_Withed_Unit (Spec_Lib_Unit (Withed_Unit));
           end if;
        end Do_Withed_Unit;
  
*************** package body Sem is
*** 2056,2062 ****
                 else
                    Seen (Unit_Num) := True;
  
!                   if CU = Library_Unit (Main_CU) then
                       Process_Bodies_In_Context (CU);
  
                       --  If main is a child unit, examine parent unit contexts
--- 2049,2055 ----
                 else
                    Seen (Unit_Num) := True;
  
!                   if CU = Spec_Or_Body_Lib_Unit (Main_CU) then
                       Process_Bodies_In_Context (CU);
  
                       --  If main is a child unit, examine parent unit contexts
*************** package body Sem is
*** 2116,2143 ****
           Clause := First (Context_Items (Comp));
           while Present (Clause) loop
              if Nkind (Clause) = N_With_Clause then
!                Spec := Library_Unit (Clause);
!                Body_CU := Library_Unit (Spec);
! 
!                --  If we are processing the spec of the main unit, load bodies
!                --  only if the with_clause indicates that it forced the loading
!                --  of the body for a generic instantiation. Note that bodies of
!                --  parents that are instances have been loaded already.
! 
!                if Present (Body_CU)
!                  and then Body_CU /= Main_CU
!                  and then Nkind (Unit (Body_CU)) /= N_Subprogram_Body
!                  and then Nkind (Unit (Comp)) /= N_Package_Declaration
                 then
!                   Body_U := Get_Cunit_Unit_Number (Body_CU);
  
!                   if not Seen (Body_U)
!                     and then not Depends_On_Main (Body_CU)
                    then
!                      Seen (Body_U) := True;
!                      Do_Withed_Units (Body_CU, Include_Limited => False);
!                      Do_Action (Body_CU, Unit (Body_CU));
!                      Done (Body_U) := True;
                    end if;
                 end if;
              end if;
--- 2109,2141 ----
           Clause := First (Context_Items (Comp));
           while Present (Clause) loop
              if Nkind (Clause) = N_With_Clause then
!                Spec := Withed_Lib_Unit (Clause);
!                if Unit (Spec) in N_Lib_Unit_Declaration_Id
!                                | N_Lib_Unit_Renaming_Declaration_Id
                 then
!                   Body_CU := Body_Lib_Unit (Spec);
  
!                   --  If we are processing the spec of the main unit, load
!                   --  bodies only if the with_clause indicates that it forced
!                   --  the loading of the body for a generic instantiation.
!                   --  Note that bodies of parents that are instances have been
!                   --  loaded already.
! 
!                   if Present (Body_CU)
!                     and then Body_CU /= Main_CU
!                     and then Nkind (Unit (Body_CU)) /= N_Subprogram_Body
!                     and then Nkind (Unit (Comp)) /= N_Package_Declaration
                    then
!                      Body_U := Get_Cunit_Unit_Number (Body_CU);
! 
!                      if not Seen (Body_U)
!                        and then not Depends_On_Main (Body_CU)
!                      then
!                         Seen (Body_U) := True;
!                         Do_Withed_Units (Body_CU, Include_Limited => False);
!                         Do_Action (Body_CU, Unit (Body_CU));
!                         Done (Body_U) := True;
!                      end if;
                    end if;
                 end if;
              end if;
*************** package body Sem is
*** 2177,2183 ****
                and then Is_Generic_Instance (Defining_Entity (N))
              then
                 Append_List
!                  (Context_Items (CU), Context_Items (Library_Unit (CU)));
              end if;
  
              Next_Elmt (Cur);
--- 2175,2181 ----
                and then Is_Generic_Instance (Defining_Entity (N))
              then
                 Append_List
!                  (Context_Items (CU), Context_Items (Spec_Lib_Unit (CU)));
              end if;
  
              Next_Elmt (Cur);
*************** package body Sem is
*** 2227,2237 ****
                    if CU = Main_CU
                      and then Nkind (Original_Node (Unit (Main_CU))) in
                                                    N_Generic_Instantiation
!                     and then Present (Library_Unit (Main_CU))
                    then
                       Do_Unit_And_Dependents
!                        (Library_Unit (Main_CU),
!                         Unit (Library_Unit (Main_CU)));
                    end if;
  
                 --  It is a spec, process it, and the units it depends on,
--- 2225,2235 ----
                    if CU = Main_CU
                      and then Nkind (Original_Node (Unit (Main_CU))) in
                                                    N_Generic_Instantiation
!                     and then Present (Spec_Lib_Unit (Main_CU))
                    then
                       Do_Unit_And_Dependents
!                        (Spec_Lib_Unit (Main_CU),
!                         Unit (Spec_Lib_Unit (Main_CU)));
                    end if;
  
                 --  It is a spec, process it, and the units it depends on,
*************** package body Sem is
*** 2251,2257 ****
                    --  after all other specs.
  
                    if Nkind (Unit (CU)) = N_Package_Declaration
!                     and then Library_Unit (CU) = Main_CU
                      and then CU /= Main_CU
                    then
                       Spec_CU := CU;
--- 2249,2255 ----
                    --  after all other specs.
  
                    if Nkind (Unit (CU)) = N_Package_Declaration
!                     and then Body_Lib_Unit (CU) = Main_CU
                      and then CU /= Main_CU
                    then
                       Spec_CU := CU;
*************** package body Sem is
*** 2310,2316 ****
  
              begin
                 if Present (U) and then Nkind (Unit (U)) = N_Subunit then
!                   Lib := Library_Unit (U);
                    return Lib = Main_CU or else Is_Subunit_Of_Main (Lib);
                 else
                    return False;
--- 2308,2314 ----
  
              begin
                 if Present (U) and then Nkind (Unit (U)) = N_Subunit then
!                   Lib := Subunit_Parent (U);
                    return Lib = Main_CU or else Is_Subunit_Of_Main (Lib);
                 else
                    return False;
*************** package body Sem is
*** 2340,2346 ****
                 while Is_Child_Unit (Child) loop
                    Parent_CU :=
                      Cunit (Get_Cunit_Entity_Unit_Number (Scope (Child)));
!                   Body_CU := Library_Unit (Parent_CU);
  
                    if Present (Body_CU)
                      and then not Seen (Get_Cunit_Unit_Number (Body_CU))
--- 2338,2344 ----
                 while Is_Child_Unit (Child) loop
                    Parent_CU :=
                      Cunit (Get_Cunit_Entity_Unit_Number (Scope (Child)));
!                   Body_CU := Body_Lib_Unit (Parent_CU);
  
                    if Present (Body_CU)
                      and then not Seen (Get_Cunit_Unit_Number (Body_CU))
*************** package body Sem is
*** 2412,2418 ****
        --  and which have context clauses of their own, since these with'ed
        --  units are part of its own dependencies.
  
!       if Nkind (Unit (CU)) in N_Unit_Body then
           for S in Main_Unit .. Last_Unit loop
  
              --  We are only interested in subunits. For preproc. data and def.
--- 2410,2416 ----
        --  and which have context clauses of their own, since these with'ed
        --  units are part of its own dependencies.
  
!       if Nkind (Unit (CU)) in N_Lib_Unit_Body then
           for S in Main_Unit .. Last_Unit loop
  
              --  We are only interested in subunits. For preproc. data and def.
*************** package body Sem is
*** 2425,2431 ****
                    Pnode : Node_Id;
  
                 begin
!                   Pnode := Library_Unit (Cunit (S));
  
                    --  In -gnatc mode, the errors in the subunits will not have
                    --  been recorded, but the analysis of the subunit may have
--- 2423,2429 ----
                    Pnode : Node_Id;
  
                 begin
!                   Pnode := Subunit_Parent (Cunit (S));
  
                    --  In -gnatc mode, the errors in the subunits will not have
                    --  been recorded, but the analysis of the subunit may have
*************** package body Sem is
*** 2438,2444 ****
                    --  Find ultimate parent of the subunit
  
                    while Nkind (Unit (Pnode)) = N_Subunit loop
!                      Pnode := Library_Unit (Pnode);
                    end loop;
  
                    --  See if it belongs to current unit, and if so, include its
--- 2436,2442 ----
                    --  Find ultimate parent of the subunit
  
                    while Nkind (Unit (Pnode)) = N_Subunit loop
!                      Pnode := Subunit_Parent (Pnode);
                    end loop;
  
                    --  See if it belongs to current unit, and if so, include its
*************** package body Sem is
*** 2470,2476 ****
             and then (Include_Limited
                       or else not Limited_Present (Context_Item))
           then
!             Lib_Unit := Library_Unit (Context_Item);
              Action (Lib_Unit);
           end if;
  
--- 2468,2474 ----
             and then (Include_Limited
                       or else not Limited_Present (Context_Item))
           then
!             Lib_Unit := Withed_Lib_Unit (Context_Item);
              Action (Lib_Unit);
           end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem.ads gcc-15.1.0/gcc/ada/sem.ads
*** gcc-14.2.0/gcc/ada/sem.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 194,204 ****
  --  that the expansion of inner expressions happens inside the newly generated
  --  node for the parent expression.
  
! --  Note that the difference between processing of default expressions and
! --  preanalysis of other expressions is that we do carry out freezing in
! --  the latter but not in the former (except for static scalar expressions).
! --  The routine that performs preanalysis and corresponding resolution is
! --  called Preanalyze_And_Resolve and is in Sem_Res.
  
  with Alloc;
  with Einfo.Entities; use Einfo.Entities;
--- 194,208 ----
  --  that the expansion of inner expressions happens inside the newly generated
  --  node for the parent expression.
  
! --  Note that the difference between preanalysis of default expressions and
! --  strict preanalysis of other expressions is that we do carry out freezing
! --  in the former (for static scalar expressions) but not in the latter. The
! --  routine that performs preanalysis of default expressions is called
! --  Preanalyze_Spec_Expression and is in Sem_Ch3. The routine that performs
! --  strict preanalysis and corresponding resolution is in Sem_Res and it is
! --  called Preanalyze_And_Resolve. Preanalyze_Spec_Expression relaxes the
! --  strictness of Preanalyze_And_Resolve setting to True the global boolean
! --  variable In_Spec_Expression before calling Preanalyze_And_Resolve.
  
  with Alloc;
  with Einfo.Entities; use Einfo.Entities;
*************** package Sem is
*** 295,305 ****
     --  Flag indicating whether we are preanalyzing a class-wide precondition
     --  or postcondition.
  
-    Inside_Preanalysis_Without_Freezing : Nat := 0;
-    --  Flag indicating whether we are preanalyzing an expression performing no
-    --  freezing. Non-zero means we are inside (it is actually a level counter
-    --  to deal with nested calls).
- 
     Unloaded_Subunits : Boolean := False;
     --  This flag is set True if we have subunits that are not loaded. This
     --  occurs when the main unit is a subunit, and contains lower level
--- 299,304 ----
*************** package Sem is
*** 704,709 ****
--- 703,713 ----
     --  This function returns True if an explicit pragma Suppress for check C
     --  is present in the package defining E.
  
+    function In_Strict_Preanalysis return Boolean;
+    pragma Inline (In_Strict_Preanalysis);
+    --  Determine whether preanalysis is active at the point of invocation
+    --  and we are not processing a Spec Expression.
+ 
     function Preanalysis_Active return Boolean;
     pragma Inline (Preanalysis_Active);
     --  Determine whether preanalysis is active at the point of invocation
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_aggr.adb gcc-15.1.0/gcc/ada/sem_aggr.adb
*** gcc-14.2.0/gcc/ada/sem_aggr.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_aggr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,31 ****
--- 26,33 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
+ with Debug;          use Debug;
+ with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
*************** with Freeze;         use Freeze;
*** 37,42 ****
--- 39,45 ----
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Namet.Sp;       use Namet.Sp;
  with Nmake;          use Nmake;
*************** with Sem_Util;       use Sem_Util;
*** 58,64 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Warn;       use Sem_Warn;
  with Sinfo;          use Sinfo;
- with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Stringt;        use Stringt;
--- 61,66 ----
*************** package body Sem_Aggr is
*** 102,107 ****
--- 104,114 ----
     --  simple insertion sort is used since the choices in a case statement will
     --  usually be in near sorted order.
  
+    function Cannot_Compute_High_Bound (Index : Entity_Id) return Boolean;
+    --  Determines if the type of the given array aggregate index is a modular
+    --  type or an enumeration type that will raise CE at runtime when computing
+    --  the high bound of a null aggregate.
+ 
     procedure Check_Can_Never_Be_Null (Typ : Entity_Id; Expr : Node_Id);
     --  Ada 2005 (AI-231): Check bad usage of null for a component for which
     --  null exclusion (NOT NULL) is specified. Typ can be an E_Array_Type for
*************** package body Sem_Aggr is
*** 121,126 ****
--- 128,140 ----
     --  Expression is also OK in an instance or inlining context, because we
     --  have already preanalyzed and it is known to be type correct.
  
+    procedure Report_Null_Array_Constraint_Error
+      (N         : Node_Id;
+       Index_Typ : Entity_Id);
+    --  N is a null array aggregate indexed by the given enumeration type or
+    --  modular type. Report a warning notifying that CE will be raised at
+    --  runtime. Under SPARK mode an error is reported instead of a warning.
+ 
     ------------------------------------------------------
     -- Subprograms used for RECORD AGGREGATE Processing --
     ------------------------------------------------------
*************** package body Sem_Aggr is
*** 239,244 ****
--- 253,259 ----
        Index          : Node_Id;
        Index_Constr   : Node_Id;
        Component_Typ  : Entity_Id;
+       Iterated       : Boolean;
        Others_Allowed : Boolean) return Boolean;
     --  This procedure performs the semantic checks for an array aggregate.
     --  True is returned if the aggregate resolution succeeds.
*************** package body Sem_Aggr is
*** 264,269 ****
--- 279,287 ----
     --
     --    Component_Typ is the array component type.
     --
+    --    Iterated indicates whether the aggregate appears in the context of an
+    --    iterated association for a parent aggregate.
+    --
     --    Others_Allowed indicates whether an others choice is allowed
     --    in the context where the top-level aggregate appeared.
     --
*************** package body Sem_Aggr is
*** 289,295 ****
     --        In addition this step analyzes and resolves each discrete_choice,
     --        making sure that its type is the type of the corresponding Index.
     --        If we are not at the lowest array aggregate level (in the case of
!    --        multi-dimensional aggregates) then invoke Resolve_Array_Aggregate
     --        recursively on each component expression. Otherwise, resolve the
     --        bottom level component expressions against the expected component
     --        type ONLY IF the component corresponds to a single discrete choice
--- 307,313 ----
     --        In addition this step analyzes and resolves each discrete_choice,
     --        making sure that its type is the type of the corresponding Index.
     --        If we are not at the lowest array aggregate level (in the case of
!    --        multidimensional aggregates) then invoke Resolve_Array_Aggregate
     --        recursively on each component expression. Otherwise, resolve the
     --        bottom level component expressions against the expected component
     --        type ONLY IF the component corresponds to a single discrete choice
*************** package body Sem_Aggr is
*** 302,308 ****
     --  3. For positional aggregates:
     --
     --     (A) Loop over the component expressions either recursively invoking
!    --         Resolve_Array_Aggregate on each of these for multi-dimensional
     --         array aggregates or resolving the bottom level component
     --         expressions against the expected component type.
     --
--- 320,326 ----
     --  3. For positional aggregates:
     --
     --     (A) Loop over the component expressions either recursively invoking
!    --         Resolve_Array_Aggregate on each of these for multidimensional
     --         array aggregates or resolving the bottom level component
     --         expressions against the expected component type.
     --
*************** package body Sem_Aggr is
*** 409,419 ****
     --  string as an aggregate, prior to resolution.
  
     function Resolve_Null_Array_Aggregate (N : Node_Id) return Boolean;
!    --  For the Ada 2022 construct, build a subtype with a null range for each
!    --  dimension, using the bounds from the context subtype (if the subtype
!    --  is constrained). If the subtype is unconstrained, then the bounds
!    --  are determined in much the same way as the bounds for a null string
!    --  literal with no applicable index constraint.
  
     ---------------------------------
     --  Delta aggregate processing --
--- 427,436 ----
     --  string as an aggregate, prior to resolution.
  
     function Resolve_Null_Array_Aggregate (N : Node_Id) return Boolean;
!    --  The recursive method used to construct an aggregate's bounds in
!    --  Resolve_Array_Aggregate cannot work for null array aggregates. This
!    --  function constructs an appropriate list of ranges and stores its first
!    --  element in Aggregate_Bounds (N).
  
     ---------------------------------
     --  Delta aggregate processing --
*************** package body Sem_Aggr is
*** 457,462 ****
--- 474,485 ----
        --  corresponding to the same dimension are static and found to differ,
        --  then emit a warning, and mark N as raising Constraint_Error.
  
+       procedure Retrieve_Aggregate_Bounds (This_Range : Node_Id);
+       --  In some cases, an appropriate list of aggregate bounds has been
+       --  created during resolution. Populate Aggr_Range with that list, and
+       --  remove the elements from the list so they can be added to another
+       --  list later.
+ 
        -------------------------
        -- Collect_Aggr_Bounds --
        -------------------------
*************** package body Sem_Aggr is
*** 514,544 ****
  
           if Dim < Aggr_Dimension then
  
!             --  Process positional components
  
!             if Present (Expressions (N)) then
!                Expr := First (Expressions (N));
!                while Present (Expr) loop
!                   Collect_Aggr_Bounds (Expr, Dim + 1);
!                   Next (Expr);
!                end loop;
!             end if;
  
!             --  Process component associations
  
!             if Present (Component_Associations (N)) then
!                Is_Fully_Positional := False;
  
!                Assoc := First (Component_Associations (N));
!                while Present (Assoc) loop
!                   Expr := Expression (Assoc);
!                   Collect_Aggr_Bounds (Expr, Dim + 1);
!                   Next (Assoc);
!                end loop;
              end if;
           end if;
        end Collect_Aggr_Bounds;
  
        --  Array_Aggr_Subtype variables
  
        Itype : Entity_Id;
--- 537,664 ----
  
           if Dim < Aggr_Dimension then
  
!             if not Is_Null_Aggregate (N) then
  
!                --  Process positional components
  
!                if Present (Expressions (N)) then
!                   Expr := First (Expressions (N));
!                   while Present (Expr) loop
!                      Collect_Aggr_Bounds (Expr, Dim + 1);
!                      Next (Expr);
!                   end loop;
!                end if;
  
!                --  Process component associations
  
!                if Present (Component_Associations (N)) then
!                   Is_Fully_Positional := False;
! 
!                   Assoc := First (Component_Associations (N));
!                   while Present (Assoc) loop
!                      Expr := Expression (Assoc);
!                      Collect_Aggr_Bounds (Expr, Dim + 1);
! 
!                      --  Propagate the error; it is not done in other cases to
!                      --  avoid replacing this aggregate by a CE node (required
!                      --  to report complementary warnings when the expression
!                      --  is resolved).
! 
!                      if Is_Null_Aggregate (Expr)
!                        and then Raises_Constraint_Error (Expr)
!                      then
!                         Set_Raises_Constraint_Error (N);
!                      end if;
! 
!                      Next (Assoc);
!                   end loop;
!                end if;
! 
!             --  For null aggregates, build the bounds of their inner dimensions
!             --  since they are required for building the aggregate itype.
! 
!             else
!                declare
!                   Loc        : constant Source_Ptr := Sloc (N);
!                   Typ        : constant Entity_Id := Etype (N);
!                   Index      : Node_Id;
!                   Index_Typ  : Entity_Id;
!                   Lo, Hi     : Node_Id;
!                   Null_Range : Node_Id;
!                   Num_Dim    : Pos := 1;
! 
!                begin
!                   --  Move the index to the first dimension implicitly included
!                   --  in this null aggregate.
! 
!                   Index := First_Index (Typ);
!                   while Num_Dim <= Dim loop
!                      Next_Index (Index);
!                      Num_Dim := Num_Dim + 1;
!                   end loop;
! 
!                   while Present (Index) loop
!                      Get_Index_Bounds (Index, L => Lo, H => Hi);
!                      Index_Typ := Etype (Index);
! 
!                      if Cannot_Compute_High_Bound (Index) then
!                         --  To avoid reporting spurious errors we use the upper
!                         --  bound as the higger bound of this index; this value
!                         --  will not be used to generate code because this
!                         --  aggregate will be replaced by a raise CE node.
! 
!                         Hi := New_Copy_Tree (Lo);
! 
!                         if not Raises_Constraint_Error (N) then
!                            Report_Null_Array_Constraint_Error (N, Index_Typ);
!                            Set_Raises_Constraint_Error (N);
!                         end if;
! 
!                      else
!                         --  The upper bound is the predecessor of the lower
!                         --  bound.
! 
!                         Hi := Make_Attribute_Reference (Loc,
!                                 Prefix => New_Occurrence_Of (Index_Typ, Loc),
!                                 Attribute_Name => Name_Pred,
!                                 Expressions => New_List (New_Copy_Tree (Lo)));
!                      end if;
! 
!                      Null_Range := Make_Range (Loc, New_Copy_Tree (Lo), Hi);
!                      Analyze_And_Resolve (Null_Range, Index_Typ);
! 
!                      Aggr_Low (Num_Dim)   := Low_Bound (Null_Range);
!                      Aggr_High (Num_Dim)  := High_Bound (Null_Range);
!                      Aggr_Range (Num_Dim) := Null_Range;
! 
!                      Num_Dim := Num_Dim + 1;
!                      Next_Index (Index);
!                   end loop;
! 
!                   pragma Assert (Num_Dim = Aggr_Dimension + 1);
!                end;
              end if;
           end if;
        end Collect_Aggr_Bounds;
  
+       -------------------------------
+       -- Retrieve_Aggregate_Bounds --
+       -------------------------------
+ 
+       procedure Retrieve_Aggregate_Bounds (This_Range : Node_Id) is
+          R : Node_Id := This_Range;
+       begin
+          for J in 1 .. Aggr_Dimension loop
+             Aggr_Range (J) := R;
+             Next_Index (R);
+ 
+             --  Remove bounds from the list, so they can be reattached as
+             --  the First_Index/Next_Index again.
+ 
+             Remove (Aggr_Range (J));
+          end loop;
+       end Retrieve_Aggregate_Bounds;
+ 
        --  Array_Aggr_Subtype variables
  
        Itype : Entity_Id;
*************** package body Sem_Aggr is
*** 553,559 ****
        --  Make sure that the list of index constraints is properly attached to
        --  the tree, and then collect the aggregate bounds.
  
!       --  If no aggregaate bounds have been set, this is an aggregate with
        --  iterator specifications and a dynamic size to be determined by
        --  first pass of expanded code.
  
--- 673,679 ----
        --  Make sure that the list of index constraints is properly attached to
        --  the tree, and then collect the aggregate bounds.
  
!       --  If no aggregate bounds have been set, this is an aggregate with
        --  iterator specifications and a dynamic size to be determined by
        --  first pass of expanded code.
  
*************** package body Sem_Aggr is
*** 563,587 ****
  
        Set_Parent (Index_Constraints, N);
  
        --  When resolving a null aggregate we created a list of aggregate bounds
        --  for the consecutive dimensions. The bounds for the first dimension
        --  are attached as the Aggregate_Bounds of the aggregate node.
  
!       if Is_Null_Aggregate (N) then
!          declare
!             This_Range : Node_Id := Aggregate_Bounds (N);
!          begin
!             for J in 1 .. Aggr_Dimension loop
!                Aggr_Range (J) := This_Range;
!                Next_Index (This_Range);
! 
!                --  Remove bounds from the list, so they can be reattached as
!                --  the First_Index/Next_Index again by the code that also
!                --  handles non-null aggregates.
! 
!                Remove (Aggr_Range (J));
!             end loop;
!          end;
        else
           Collect_Aggr_Bounds (N, 1);
        end if;
--- 683,699 ----
  
        Set_Parent (Index_Constraints, N);
  
+       if Is_Rewrite_Substitution (N)
+         and then Present (Component_Associations (Original_Node (N)))
+       then
+          Retrieve_Aggregate_Bounds (First_Index (Etype (Original_Node (N))));
+ 
        --  When resolving a null aggregate we created a list of aggregate bounds
        --  for the consecutive dimensions. The bounds for the first dimension
        --  are attached as the Aggregate_Bounds of the aggregate node.
  
!       elsif Is_Null_Aggregate (N) then
!          Retrieve_Aggregate_Bounds (Aggregate_Bounds (N));
        else
           Collect_Aggr_Bounds (N, 1);
        end if;
*************** package body Sem_Aggr is
*** 686,691 ****
--- 798,838 ----
        return Itype;
     end Array_Aggr_Subtype;
  
+    -------------------------------
+    -- Cannot_Compute_High_Bound --
+    -------------------------------
+ 
+    function Cannot_Compute_High_Bound (Index : Entity_Id) return Boolean is
+       Index_Type : constant Entity_Id := Etype (Index);
+       Lo, Hi     : Node_Id;
+ 
+    begin
+       if not Is_Modular_Integer_Type (Index_Type)
+         and then not Is_Enumeration_Type (Index_Type)
+       then
+          return False;
+ 
+       elsif Index_Type = Base_Type (Index_Type) then
+          return True;
+ 
+       else
+          Get_Index_Bounds (Index, L => Lo, H => Hi);
+ 
+          if Compile_Time_Known_Value (Lo) then
+             if Is_Enumeration_Type (Index_Type)
+               and then not Is_Character_Type (Index_Type)
+             then
+                return Enumeration_Pos (Entity (Lo))
+                  = Enumeration_Pos (First_Literal (Base_Type (Index_Type)));
+             else
+                return Expr_Value (Lo) = Uint_0;
+             end if;
+          end if;
+       end if;
+ 
+       return False;
+    end Cannot_Compute_High_Bound;
+ 
     --------------------------------
     -- Check_Misspelled_Component --
     --------------------------------
*************** package body Sem_Aggr is
*** 782,787 ****
--- 929,1030 ----
        end if;
     end Is_Deep_Choice;
  
+    --------------------------
+    -- Is_Indexed_Aggregate --
+    --------------------------
+ 
+    function Is_Indexed_Aggregate
+      (N           : N_Aggregate_Id;
+       Add_Unnamed : Node_Id;
+       New_Indexed : Node_Id) return Boolean
+    is
+    begin
+       if Present (New_Indexed)
+         and then not Is_Null_Aggregate (N)
+       then
+          if No (Add_Unnamed) then
+             return True;
+ 
+          else
+             declare
+                Comp_Assns : constant List_Id := Component_Associations (N);
+                Comp_Assn  : Node_Id;
+ 
+             begin
+                if not Is_Empty_List (Comp_Assns) then
+ 
+                   --  It suffices to look at the first association to determine
+                   --  whether the aggregate is an indexed aggregate.
+ 
+                   Comp_Assn := First (Comp_Assns);
+ 
+                   --  Test for the component association being either:
+                   --
+                   --    1) an N_Component_Association node, in which case there
+                   --       is a list of choices (the "key choices");
+                   --
+                   --  or else:
+                   --
+                   --    2) an N_Iterated_Component_Association node that has
+                   --       a Defining_Identifier, in which case it has
+                   --       Discrete_Choices that effectively make it
+                   --       equivalent to a Loop_Parameter_Specification;
+                   --
+                   --  or else:
+                   --
+                   --    3) an N_Iterated_Element_Association node with
+                   --       a Loop_Parameter_Specification with a discrete
+                   --       subtype or range.
+                   --
+                   --  This basically corresponds to the definition of indexed
+                   --  aggregates (in RM22 4.3.5(25/5)), but the GNAT tree
+                   --  representation doesn't always directly match the RM
+                   --  syntax for various reasons.
+ 
+                   if Nkind (Comp_Assn) = N_Component_Association
+                     or else
+                       (Nkind (Comp_Assn) = N_Iterated_Component_Association
+                         and then Present (Defining_Identifier (Comp_Assn)))
+                   then
+                      return True;
+ 
+                   --  In the case of an iterated_element_association with a
+                   --  loop_parameter_specification, we have to look deeper to
+                   --  confirm that it is not actually an iterator_specification
+                   --  masquerading as a loop_parameter_specification. Those can
+                   --  share syntax (for example, having the iterator of form
+                   --  "for C in <function-call>") and a rewrite into an
+                   --  iterator_specification can happen later.
+ 
+                   elsif Nkind (Comp_Assn) = N_Iterated_Element_Association
+                     and then Present (Loop_Parameter_Specification (Comp_Assn))
+                   then
+                      declare
+                         Loop_Parm_Spec  : constant Node_Id :=
+                           Loop_Parameter_Specification (Comp_Assn);
+                         Discr_Subt_Defn : constant Node_Id :=
+                           Discrete_Subtype_Definition (Loop_Parm_Spec);
+                      begin
+                         if Nkind (Discr_Subt_Defn) = N_Range
+                           or else
+                             Nkind (Discr_Subt_Defn) = N_Subtype_Indication
+                           or else
+                             (Is_Entity_Name (Discr_Subt_Defn)
+                               and then
+                              Is_Type (Entity (Discr_Subt_Defn)))
+                         then
+                            return True;
+                         end if;
+                      end;
+                   end if;
+                end if;
+             end;
+          end if;
+       end if;
+ 
+       return False;
+    end Is_Indexed_Aggregate;
+ 
     -------------------------
     -- Is_Others_Aggregate --
     -------------------------
*************** package body Sem_Aggr is
*** 824,830 ****
  
     function Is_Null_Aggregate (N : Node_Id) return Boolean is
     begin
!       return Ada_Version >= Ada_2022
          and then Is_Homogeneous_Aggregate (N)
          and then Is_Empty_List (Expressions (N))
          and then Is_Empty_List (Component_Associations (N));
--- 1067,1073 ----
  
     function Is_Null_Aggregate (N : Node_Id) return Boolean is
     begin
!       return Nkind (N) = N_Aggregate
          and then Is_Homogeneous_Aggregate (N)
          and then Is_Empty_List (Expressions (N))
          and then Is_Empty_List (Component_Associations (N));
*************** package body Sem_Aggr is
*** 884,889 ****
--- 1127,1153 ----
        Rewrite (N, New_N);
     end Make_String_Into_Aggregate;
  
+    ----------------------------------------
+    -- Report_Null_Array_Constraint_Error --
+    ----------------------------------------
+ 
+    procedure Report_Null_Array_Constraint_Error
+      (N         : Node_Id;
+       Index_Typ : Entity_Id) is
+    begin
+       Error_Msg_Warn := SPARK_Mode /= On;
+ 
+       if Is_Modular_Integer_Type (Index_Typ) then
+          Error_Msg_N
+            ("null array aggregate indexed by a modular type<<", N);
+       else
+          Error_Msg_N
+            ("null array aggregate indexed by an enumeration type<<", N);
+       end if;
+ 
+       Error_Msg_N ("\Constraint_Error [<<", N);
+    end Report_Null_Array_Constraint_Error;
+ 
     -----------------------
     -- Resolve_Aggregate --
     -----------------------
*************** package body Sem_Aggr is
*** 1087,1094 ****
        elsif Is_Array_Type (Typ) and then Null_Record_Present (N) then
           Error_Msg_N ("null record forbidden in array aggregate", N);
  
        elsif Has_Aspect (Typ, Aspect_Aggregate)
-         and then Ekind (Typ) /= E_Record_Type
          and then Ada_Version >= Ada_2022
        then
           --  Check for Ada 2022 and () aggregate.
--- 1351,1362 ----
        elsif Is_Array_Type (Typ) and then Null_Record_Present (N) then
           Error_Msg_N ("null record forbidden in array aggregate", N);
  
+       elsif Is_Record_Type (Typ)
+         and then not Is_Homogeneous_Aggregate (N)
+       then
+          Resolve_Record_Aggregate (N, Typ);
+ 
        elsif Has_Aspect (Typ, Aspect_Aggregate)
          and then Ada_Version >= Ada_2022
        then
           --  Check for Ada 2022 and () aggregate.
*************** package body Sem_Aggr is
*** 1099,1119 ****
  
           Resolve_Container_Aggregate (N, Typ);
  
!       --  Check Ada 2022 empty aggregate [] initializing a record type that has
!       --  aspect aggregate; the empty aggregate will be expanded into a call to
!       --  the empty function specified in the aspect aggregate.
! 
!       elsif Has_Aspect (Typ, Aspect_Aggregate)
!         and then Ekind (Typ) = E_Record_Type
!         and then Is_Homogeneous_Aggregate (N)
!         and then Is_Empty_List (Expressions (N))
!         and then Is_Empty_List (Component_Associations (N))
!         and then Ada_Version >= Ada_2022
!       then
!          Resolve_Container_Aggregate (N, Typ);
  
!       elsif Is_Record_Type (Typ) then
!          Resolve_Record_Aggregate (N, Typ);
  
        elsif Is_Array_Type (Typ) then
  
--- 1367,1379 ----
  
           Resolve_Container_Aggregate (N, Typ);
  
!       --  Check for an attempt to use "[]" for an aggregate of a record type
!       --  after handling the case where the type has an Aggregate aspect,
!       --  because the aspect can be specified for record types, but if it
!       --  wasn't specified, then this is an error.
  
!       elsif Is_Record_Type (Typ) and then Is_Homogeneous_Aggregate (N) then
!          Error_Msg_N ("record aggregate must use (), not '[']", N);
  
        elsif Is_Array_Type (Typ) then
  
*************** package body Sem_Aggr is
*** 1122,1132 ****
  
           --  Do not perform this transformation if this was a string literal
           --  to start with, whose components needed constraint checks, or if
!          --  the component type is non-static, because it will require those
!          --  checks and be transformed back into an aggregate. If the index
!          --  type is not Integer the aggregate may represent a user-defined
!          --  string type but the context might need the original type so we
!          --  do not perform the transformation at this point.
  
           if Number_Dimensions (Typ) = 1
             and then Is_Standard_Character_Type (Component_Type (Typ))
--- 1382,1392 ----
  
           --  Do not perform this transformation if this was a string literal
           --  to start with, whose components needed constraint checks, or if
!          --  the component type is nonstatic or has predicates, because it will
!          --  require those checks and be transformed back into an aggregate.
!          --  If the index type is not Integer, then the aggregate may represent
!          --  a user-defined string type but the context might need the original
!          --  type, so we do not perform the transformation at this point.
  
           if Number_Dimensions (Typ) = 1
             and then Is_Standard_Character_Type (Component_Type (Typ))
*************** package body Sem_Aggr is
*** 1136,1143 ****
--- 1396,1405 ----
             and then not Is_Bit_Packed_Array (Typ)
             and then Nkind (Original_Node (Parent (N))) /= N_String_Literal
             and then Is_OK_Static_Subtype (Component_Type (Typ))
+            and then not Has_Predicates (Component_Type (Typ))
             and then Base_Type (Etype (First_Index (Typ))) =
                        Base_Type (Standard_Integer)
+            and then not Has_Static_Empty_Array_Bounds (Typ)
           then
              declare
                 Expr : Node_Id;
*************** package body Sem_Aggr is
*** 1242,1247 ****
--- 1504,1510 ----
                      Index          => First_Index (Aggr_Typ),
                      Index_Constr   => First_Index (Typ),
                      Component_Typ  => Component_Type (Typ),
+                     Iterated       => False,
                      Others_Allowed => True);
              else
                 Aggr_Resolved :=
*************** package body Sem_Aggr is
*** 1250,1255 ****
--- 1513,1519 ----
                      Index          => First_Index (Aggr_Typ),
                      Index_Constr   => First_Index (Aggr_Typ),
                      Component_Typ  => Component_Type (Typ),
+                     Iterated       => False,
                      Others_Allowed => False);
              end if;
  
*************** package body Sem_Aggr is
*** 1318,1323 ****
--- 1582,1588 ----
        Index          : Node_Id;
        Index_Constr   : Node_Id;
        Component_Typ  : Entity_Id;
+       Iterated       : Boolean;
        Others_Allowed : Boolean) return Boolean
     is
        Loc : constant Source_Ptr := Sloc (N);
*************** package body Sem_Aggr is
*** 1325,1330 ****
--- 1590,1598 ----
        Failure : constant Boolean := False;
        Success : constant Boolean := True;
  
+       Ctyp : constant Entity_Id :=
+         Get_Corresponding_Mutably_Tagged_Type_If_Present (Component_Typ);
+ 
        Index_Typ      : constant Entity_Id := Etype (Index);
        Index_Typ_Low  : constant Node_Id   := Type_Low_Bound  (Index_Typ);
        Index_Typ_High : constant Node_Id   := Type_High_Bound (Index_Typ);
*************** package body Sem_Aggr is
*** 1336,1346 ****
        Index_Base_High : constant Node_Id   := Type_High_Bound (Index_Base);
        --  Ditto for the base type
  
!       Others_Present : Boolean := False;
  
        Nb_Choices : Nat := 0;
        --  Contains the overall number of named choices in this sub-aggregate
  
        function Add (Val : Uint; To : Node_Id) return Node_Id;
        --  Creates a new expression node where Val is added to expression To.
        --  Tries to constant fold whenever possible. To must be an already
--- 1604,1616 ----
        Index_Base_High : constant Node_Id   := Type_High_Bound (Index_Base);
        --  Ditto for the base type
  
!       Others_N : Node_Id := Empty;
  
        Nb_Choices : Nat := 0;
        --  Contains the overall number of named choices in this sub-aggregate
  
+       Saved_SED  : constant Nat := Serious_Errors_Detected;
+ 
        function Add (Val : Uint; To : Node_Id) return Node_Id;
        --  Creates a new expression node where Val is added to expression To.
        --  Tries to constant fold whenever possible. To must be an already
*************** package body Sem_Aggr is
*** 1368,1391 ****
        --  cannot statically evaluate From. Otherwise it stores this static
        --  value into Value.
  
        function Resolve_Aggr_Expr
!         (Expr        : Node_Id;
!          Single_Elmt : Boolean) return Boolean;
        --  Resolves aggregate expression Expr. Returns False if resolution
        --  fails. If Single_Elmt is set to False, the expression Expr may be
        --  used to initialize several array aggregate elements (this can happen
        --  for discrete choices such as "L .. H => Expr" or the OTHERS choice).
        --  In this event we do not resolve Expr unless expansion is disabled.
        --  To know why, see the DELAYED COMPONENT RESOLUTION note above.
-       --
-       --  NOTE: In the case of "... => <>", we pass the N_Component_Association
-       --  node as Expr, since there is no Expression and we need a Sloc for the
-       --  error message.
  
!       procedure Resolve_Iterated_Component_Association
          (N         : Node_Id;
!          Index_Typ : Entity_Id);
!       --  For AI12-061
  
        procedure Warn_On_Null_Component_Association (Expr : Node_Id);
        --  Expr is either a conditional expression or a case expression of an
--- 1638,1669 ----
        --  cannot statically evaluate From. Otherwise it stores this static
        --  value into Value.
  
+       function Has_Null_Aggregate_Raising_Constraint_Error
+         (Expr : Node_Id) return Boolean;
+       --  Determines if the given expression has some null aggregate that will
+       --  cause raising CE at runtime.
+ 
        function Resolve_Aggr_Expr
!         (Expr          : Node_Id;
!          Iterated_Elmt : Boolean := False;
!          Single_Elmt   : Boolean := True) return Boolean;
        --  Resolves aggregate expression Expr. Returns False if resolution
        --  fails. If Single_Elmt is set to False, the expression Expr may be
        --  used to initialize several array aggregate elements (this can happen
        --  for discrete choices such as "L .. H => Expr" or the OTHERS choice).
        --  In this event we do not resolve Expr unless expansion is disabled.
        --  To know why, see the DELAYED COMPONENT RESOLUTION note above.
  
!       function Resolve_Iterated_Component_Association
          (N         : Node_Id;
!          Index_Typ : Entity_Id) return Boolean;
!       --  For AI12-061: resolves iterated component association N of Index_Typ.
!       --  Returns False if resolution fails.
! 
!       function Subtract (Val : Uint; To : Node_Id) return Node_Id;
!       --  Creates a new expression node where Val is subtracted to expression
!       --  To. Tries to constant fold whenever possible. To must be an already
!       --  analyzed expression.
  
        procedure Warn_On_Null_Component_Association (Expr : Node_Id);
        --  Expr is either a conditional expression or a case expression of an
*************** package body Sem_Aggr is
*** 1656,1674 ****
           end if;
        end Get;
  
        -----------------------
        -- Resolve_Aggr_Expr --
        -----------------------
  
        function Resolve_Aggr_Expr
!         (Expr        : Node_Id;
!          Single_Elmt : Boolean) return Boolean
        is
           Nxt_Ind        : constant Node_Id := Next_Index (Index);
           Nxt_Ind_Constr : constant Node_Id := Next_Index (Index_Constr);
           --  Index is the current index corresponding to the expression
  
!          Resolution_OK : Boolean := True;
           --  Set to False if resolution of the expression failed
  
        begin
--- 1934,1991 ----
           end if;
        end Get;
  
+       -------------------------------------------------
+       -- Has_Null_Aggregate_Raising_Constraint_Error --
+       -------------------------------------------------
+ 
+       function Has_Null_Aggregate_Raising_Constraint_Error
+         (Expr : Node_Id) return Boolean
+       is
+          function Process (N : Node_Id) return Traverse_Result;
+          --  Process one node in search for generic formal type
+ 
+          -------------
+          -- Process --
+          -------------
+ 
+          function Process (N : Node_Id) return Traverse_Result is
+          begin
+             if Nkind (N) = N_Aggregate
+               and then Is_Null_Aggregate (N)
+               and then Raises_Constraint_Error (N)
+             then
+                return Abandon;
+             end if;
+ 
+             return OK;
+          end Process;
+ 
+          function Traverse is new Traverse_Func (Process);
+          --  Traverse tree to look for null aggregates that will raise CE
+ 
+       --  Start of processing for Has_Null_Aggregate_Raising_Constraint_Error
+ 
+       begin
+          return Traverse (Expr) = Abandon;
+       end Has_Null_Aggregate_Raising_Constraint_Error;
+ 
        -----------------------
        -- Resolve_Aggr_Expr --
        -----------------------
  
        function Resolve_Aggr_Expr
!         (Expr          : Node_Id;
!          Iterated_Elmt : Boolean := False;
!          Single_Elmt   : Boolean := True) return Boolean
        is
+          Iterated_Expr  : constant Boolean := Iterated_Elmt or else Iterated;
+          --  True if the Expr is in an iteration context, possibly nested
+ 
           Nxt_Ind        : constant Node_Id := Next_Index (Index);
           Nxt_Ind_Constr : constant Node_Id := Next_Index (Index_Constr);
           --  Index is the current index corresponding to the expression
  
!          Resolution_OK  : Boolean := True;
           --  Set to False if resolution of the expression failed
  
        begin
*************** package body Sem_Aggr is
*** 1692,1698 ****
                 --  operator, it is still an operator symbol, which will be
                 --  transformed into a string when analyzed.
  
!                if Is_Character_Type (Component_Typ)
                   and then No (Next_Index (Nxt_Ind))
                   and then Nkind (Expr) in N_String_Literal | N_Operator_Symbol
                 then
--- 2009,2015 ----
                 --  operator, it is still an operator symbol, which will be
                 --  transformed into a string when analyzed.
  
!                if Is_Character_Type (Ctyp)
                   and then No (Next_Index (Nxt_Ind))
                   and then Nkind (Expr) in N_String_Literal | N_Operator_Symbol
                 then
*************** package body Sem_Aggr is
*** 1722,1769 ****
                 end if;
              end if;
  
-             --  If it's "... => <>", nothing to resolve
- 
-             if Nkind (Expr) = N_Component_Association then
-                pragma Assert (Box_Present (Expr));
-                return Success;
-             end if;
- 
              --  Ada 2005 (AI-231): Propagate the type to the nested aggregate.
              --  Required to check the null-exclusion attribute (if present).
              --  This value may be overridden later on.
  
              Set_Etype (Expr, Etype (N));
  
!             Resolution_OK := Resolve_Array_Aggregate
!               (Expr, Nxt_Ind, Nxt_Ind_Constr, Component_Typ, Others_Allowed);
  
           else
!             --  If it's "... => <>", nothing to resolve
  
!             if Nkind (Expr) = N_Component_Association then
!                pragma Assert (Box_Present (Expr));
!                return Success;
!             end if;
  
!             --  Do not resolve the expressions of discrete or others choices
!             --  unless the expression covers a single component, or the
!             --  expander is inactive.
  
!             --  In SPARK mode, expressions that can perform side effects will
!             --  be recognized by the gnat2why back-end, and the whole
!             --  subprogram will be ignored. So semantic analysis can be
!             --  performed safely.
  
!             if Single_Elmt
!               or else not Expander_Active
!               or else In_Spec_Expression
!             then
!                Analyze_And_Resolve (Expr, Component_Typ);
                 Check_Expr_OK_In_Limited_Aggregate (Expr);
                 Check_Non_Static_Context (Expr);
-                Aggregate_Constraint_Checks (Expr, Component_Typ);
                 Check_Unset_Reference (Expr);
              end if;
           end if;
  
--- 2039,2115 ----
                 end if;
              end if;
  
              --  Ada 2005 (AI-231): Propagate the type to the nested aggregate.
              --  Required to check the null-exclusion attribute (if present).
              --  This value may be overridden later on.
  
              Set_Etype (Expr, Etype (N));
  
!             Resolution_OK :=
!               Resolve_Array_Aggregate
!                 (Expr, Nxt_Ind, Nxt_Ind_Constr, Ctyp,
!                  Iterated => Iterated_Expr, Others_Allowed => Others_Allowed);
! 
!             if Resolution_OK = Failure then
!                return Failure;
!             end if;
  
           else
!             --  In an iterated context, preanalyze a copy of the expression to
!             --  verify legality. We use a copy because the expression will be
!             --  analyzed anew when the enclosing aggregate is expanded and the
!             --  construct is rewritten as a loop with a new iteration variable.
!             --  This does not apply to SPARK mode, where expansion is skipped.
  
!             --  If the parent is a component association, we also temporarily
!             --  point its Expression field to the copy, because analysis may
!             --  expect this invariant to hold.
  
!             if Iterated_Expr and then not GNATprove_Mode then
!                declare
!                   In_Assoc : constant Boolean :=
!                     Nkind (Parent (Expr)) in N_Component_Association
!                                            | N_Iterated_Component_Association;
!                   New_Expr : constant Node_Id := Copy_Separate_Tree (Expr);
  
!                begin
!                   Set_Parent (New_Expr, Parent (Expr));
!                   if In_Assoc then
!                      Set_Expression (Parent (Expr), New_Expr);
!                   end if;
  
!                   Preanalyze_And_Resolve (New_Expr, Ctyp);
!                   Check_Expr_OK_In_Limited_Aggregate (New_Expr);
!                   Check_Expression_Dimensions (New_Expr, Ctyp);
! 
!                   if In_Assoc then
!                      Set_Expression (Parent (Expr), Expr);
!                   end if;
!                end;
! 
!             --  If the expander is active and the choice may cover multiple
!             --  components, then we cannot expand (see the spec of Sem), so
!             --  we preanalyze the expression.
! 
!             elsif Expander_Active and then not Single_Elmt then
!                Preanalyze_And_Resolve (Expr, Ctyp);
                 Check_Expr_OK_In_Limited_Aggregate (Expr);
+                Check_Expression_Dimensions (Expr, Ctyp);
+ 
+                --  The range given by the choice may be empty, in which case we
+                --  do not want spurious warnings about CE raised at run time.
+ 
+                Remove_Warning_Messages (Expr);
+ 
+             --  Otherwise, we perform a full analysis of the expression
+ 
+             else
+                Analyze_And_Resolve (Expr, Ctyp);
+                Check_Expr_OK_In_Limited_Aggregate (Expr);
+                Check_Expression_Dimensions (Expr, Ctyp);
                 Check_Non_Static_Context (Expr);
                 Check_Unset_Reference (Expr);
+                Aggregate_Constraint_Checks (Expr, Ctyp);
              end if;
           end if;
  
*************** package body Sem_Aggr is
*** 1773,1786 ****
           --  component assignments. If the expression covers several components
           --  the analysis and the predicate check take place later.
  
!          if Has_Predicates (Component_Typ)
             and then Analyzed (Expr)
           then
!             Apply_Predicate_Check (Expr, Component_Typ);
           end if;
  
           if Raises_Constraint_Error (Expr)
!            and then Nkind (Parent (Expr)) /= N_Component_Association
           then
              Set_Raises_Constraint_Error (N);
           end if;
--- 2119,2133 ----
           --  component assignments. If the expression covers several components
           --  the analysis and the predicate check take place later.
  
!          if Has_Predicates (Ctyp)
             and then Analyzed (Expr)
           then
!             Apply_Predicate_Check (Expr, Ctyp);
           end if;
  
           if Raises_Constraint_Error (Expr)
!            and then (Nkind (Parent (Expr)) /= N_Component_Association
!                       or else Is_Null_Aggregate (Expr))
           then
              Set_Raises_Constraint_Error (N);
           end if;
*************** package body Sem_Aggr is
*** 1792,1798 ****
           --  the expander is not active.
  
           if Do_Range_Check (Expr) then
!             Generate_Range_Check (Expr, Component_Typ, CE_Range_Check_Failed);
           end if;
  
           return Resolution_OK;
--- 2139,2145 ----
           --  the expander is not active.
  
           if Do_Range_Check (Expr) then
!             Generate_Range_Check (Expr, Ctyp, CE_Range_Check_Failed);
           end if;
  
           return Resolution_OK;
*************** package body Sem_Aggr is
*** 1802,1843 ****
        -- Resolve_Iterated_Component_Association --
        --------------------------------------------
  
!       procedure Resolve_Iterated_Component_Association
          (N         : Node_Id;
!          Index_Typ : Entity_Id)
        is
!          Loc : constant Source_Ptr := Sloc (N);
!          Id  : constant Entity_Id  := Defining_Identifier (N);
! 
!          -----------------------
!          -- Remove_References --
!          -----------------------
! 
!          function Remove_Reference (N : Node_Id) return Traverse_Result;
!          --  Remove reference to the entity Id after analysis, so it can be
!          --  properly reanalyzed after construct is expanded into a loop.
! 
!          function Remove_Reference (N : Node_Id) return Traverse_Result is
!          begin
!             if Nkind (N) = N_Identifier
!                and then Present (Entity (N))
!                and then Entity (N) = Id
!             then
!                Set_Entity (N, Empty);
!                Set_Etype (N, Empty);
!             end if;
!             Set_Analyzed (N, False);
!             return OK;
!          end Remove_Reference;
! 
!          procedure Remove_References is new Traverse_Proc (Remove_Reference);
  
           --  Local variables
  
!          Choice : Node_Id;
!          Dummy  : Boolean;
!          Scop   : Entity_Id;
!          Expr   : constant Node_Id := Expression (N);
  
        --  Start of processing for Resolve_Iterated_Component_Association
  
--- 2149,2167 ----
        -- Resolve_Iterated_Component_Association --
        --------------------------------------------
  
!       function Resolve_Iterated_Component_Association
          (N         : Node_Id;
!          Index_Typ : Entity_Id) return Boolean
        is
!          Loc  : constant Source_Ptr := Sloc (N);
!          Id   : constant Entity_Id  := Defining_Identifier (N);
!          Expr : constant Node_Id    := Expression (N);
  
           --  Local variables
  
!          Choice         : Node_Id;
!          Resolution_OK  : Boolean;
!          Scop           : Entity_Id;
  
        --  Start of processing for Resolve_Iterated_Component_Association
  
*************** package body Sem_Aggr is
*** 1871,1877 ****
  
              while Present (Choice) loop
                 if Nkind (Choice) = N_Others_Choice then
!                   Others_Present := True;
  
                 else
                    Analyze (Choice);
--- 2195,2201 ----
  
              while Present (Choice) loop
                 if Nkind (Choice) = N_Others_Choice then
!                   Others_N := Choice;
  
                 else
                    Analyze (Choice);
*************** package body Sem_Aggr is
*** 1901,1938 ****
              Set_Scope (Id, Scop);
           end if;
  
!          --  Analyze expression without expansion, to verify legality.
!          --  When generating code, we then remove references to the index
!          --  variable, because the expression will be analyzed anew after
!          --  rewritting as a loop with a new index variable; when not
!          --  generating code we leave the analyzed expression as it is.
  
!          Dummy := Resolve_Aggr_Expr (Expr, Single_Elmt => False);
  
!          if Operating_Mode /= Check_Semantics then
!             Remove_References (Expr);
           end if;
  
!          --  An iterated_component_association may appear in a nested
!          --  aggregate for a multidimensional structure: preserve the bounds
!          --  computed for the expression, as well as the anonymous array
!          --  type generated for it; both are needed during array expansion.
  
!          if Nkind (Expr) = N_Aggregate then
!             Set_Aggregate_Bounds (Expression (N), Aggregate_Bounds (Expr));
!             Set_Etype (Expression (N), Etype (Expr));
           end if;
  
!          End_Scope;
!       end Resolve_Iterated_Component_Association;
  
        ----------------------------------------
        -- Warn_On_Null_Component_Association --
        ----------------------------------------
  
        procedure Warn_On_Null_Component_Association (Expr : Node_Id) is
-          Comp_Typ : constant Entity_Id := Component_Type (Etype (N));
- 
           procedure Check_Case_Expr (N : Node_Id);
           --  Check if a case expression may initialize some component with a
           --  null value.
--- 2225,2346 ----
              Set_Scope (Id, Scop);
           end if;
  
!          --  Analyze expression without expansion, to verify legality
  
!          Resolution_OK := Resolve_Aggr_Expr (Expr, Iterated_Elmt => True);
  
!          End_Scope;
! 
!          return Resolution_OK;
!       end Resolve_Iterated_Component_Association;
! 
!       --------------
!       -- Subtract --
!       --------------
! 
!       function Subtract (Val : Uint; To : Node_Id) return Node_Id is
!          Expr_Pos : Node_Id;
!          Expr     : Node_Id;
!          To_Pos   : Node_Id;
! 
!       begin
!          if Raises_Constraint_Error (To) then
!             return To;
           end if;
  
!          --  First test if we can do constant folding
  
!          if Compile_Time_Known_Value (To)
!            or else Nkind (To) = N_Integer_Literal
!          then
!             Expr_Pos := Make_Integer_Literal (Loc, Expr_Value (To) - Val);
!             Set_Is_Static_Expression (Expr_Pos);
!             Set_Etype (Expr_Pos, Etype (To));
!             Set_Analyzed (Expr_Pos, Analyzed (To));
! 
!             if not Is_Enumeration_Type (Index_Typ) then
!                Expr := Expr_Pos;
! 
!             --  If we are dealing with enumeration return
!             --     Index_Typ'Val (Expr_Pos)
! 
!             else
!                Expr :=
!                  Make_Attribute_Reference
!                    (Loc,
!                     Prefix         => New_Occurrence_Of (Index_Typ, Loc),
!                     Attribute_Name => Name_Val,
!                     Expressions    => New_List (Expr_Pos));
!             end if;
! 
!             return Expr;
           end if;
  
!          --  If we are here no constant folding possible
! 
!          if not Is_Enumeration_Type (Index_Base) then
!             Expr :=
!               Make_Op_Subtract (Loc,
!                 Left_Opnd  => Duplicate_Subexpr (To),
!                 Right_Opnd => Make_Integer_Literal (Loc, Val));
! 
!          --  If we are dealing with enumeration return
!          --    Index_Typ'Val (Index_Typ'Pos (To) - Val)
! 
!          else
!             To_Pos :=
!               Make_Attribute_Reference
!                 (Loc,
!                  Prefix         => New_Occurrence_Of (Index_Typ, Loc),
!                  Attribute_Name => Name_Pos,
!                  Expressions    => New_List (Duplicate_Subexpr (To)));
! 
!             Expr_Pos :=
!               Make_Op_Subtract (Loc,
!                 Left_Opnd  => To_Pos,
!                 Right_Opnd => Make_Integer_Literal (Loc, Val));
! 
!             Expr :=
!               Make_Attribute_Reference
!                 (Loc,
!                  Prefix         => New_Occurrence_Of (Index_Typ, Loc),
!                  Attribute_Name => Name_Val,
!                  Expressions    => New_List (Expr_Pos));
! 
!             --  If the index type has a non standard representation, the
!             --  attributes 'Val and 'Pos expand into function calls and the
!             --  resulting expression is considered non-safe for reevaluation
!             --  by the backend. Relocate it into a constant temporary in order
!             --  to make it safe for reevaluation.
! 
!             if Has_Non_Standard_Rep (Etype (N)) then
!                declare
!                   Def_Id : Entity_Id;
! 
!                begin
!                   Def_Id := Make_Temporary (Loc, 'R', Expr);
!                   Set_Etype (Def_Id, Index_Typ);
!                   Insert_Action (N,
!                     Make_Object_Declaration (Loc,
!                       Defining_Identifier => Def_Id,
!                       Object_Definition   =>
!                         New_Occurrence_Of (Index_Typ, Loc),
!                       Constant_Present    => True,
!                       Expression          => Relocate_Node (Expr)));
! 
!                   Expr := New_Occurrence_Of (Def_Id, Loc);
!                end;
!             end if;
!          end if;
! 
!          return Expr;
!       end Subtract;
  
        ----------------------------------------
        -- Warn_On_Null_Component_Association --
        ----------------------------------------
  
        procedure Warn_On_Null_Component_Association (Expr : Node_Id) is
           procedure Check_Case_Expr (N : Node_Id);
           --  Check if a case expression may initialize some component with a
           --  null value.
*************** package body Sem_Aggr is
*** 2030,2043 ****
                Make_Raise_Constraint_Error (Sloc (Null_Expr),
                  Reason => CE_Access_Check_Failed));
  
!             Set_Etype    (Null_Expr, Comp_Typ);
              Set_Analyzed (Null_Expr);
           end Warn_On_Null_Expression_And_Rewrite;
  
        --  Start of processing for Warn_On_Null_Component_Association
  
        begin
!          pragma Assert (Can_Never_Be_Null (Comp_Typ));
  
           case Nkind (Expr) is
              when N_If_Expression =>
--- 2438,2451 ----
                Make_Raise_Constraint_Error (Sloc (Null_Expr),
                  Reason => CE_Access_Check_Failed));
  
!             Set_Etype    (Null_Expr, Ctyp);
              Set_Analyzed (Null_Expr);
           end Warn_On_Null_Expression_And_Rewrite;
  
        --  Start of processing for Warn_On_Null_Component_Association
  
        begin
!          pragma Assert (Can_Never_Be_Null (Ctyp));
  
           case Nkind (Expr) is
              when N_If_Expression =>
*************** package body Sem_Aggr is
*** 2099,2112 ****
  
        --  Disable the warning for GNAT Mode to allow for easier transition.
  
        if Ada_Version_Explicit >= Ada_2022
          and then Warn_On_Obsolescent_Feature
          and then not GNAT_Mode
          and then not Is_Homogeneous_Aggregate (N)
-         and then not Is_Enum_Array_Aggregate (N)
          and then Is_Parenthesis_Aggregate (N)
          and then Nkind (Parent (N)) /= N_Qualified_Expression
          and then Comes_From_Source (N)
        then
           Error_Msg_N
             ("?j?array aggregate using () is an" &
--- 2507,2531 ----
  
        --  Disable the warning for GNAT Mode to allow for easier transition.
  
+       --  We don't warn about obsolescent usage of parentheses in generic
+       --  instances for two reasons:
+       --
+       --  1. An equivalent warning has been emitted in the corresponding
+       --     definition.
+       --  2. In cases where a generic definition specifies a version older than
+       --     Ada 2022 through a pragma and rightfully uses parentheses for
+       --     an array aggregate, an incorrect warning would be raised in
+       --     instances of that generic that are in Ada 2022 or later if we
+       --     didn't filter out the instance case.
+ 
        if Ada_Version_Explicit >= Ada_2022
          and then Warn_On_Obsolescent_Feature
          and then not GNAT_Mode
          and then not Is_Homogeneous_Aggregate (N)
          and then Is_Parenthesis_Aggregate (N)
          and then Nkind (Parent (N)) /= N_Qualified_Expression
          and then Comes_From_Source (N)
+         and then not In_Instance
        then
           Error_Msg_N
             ("?j?array aggregate using () is an" &
*************** package body Sem_Aggr is
*** 2119,2124 ****
--- 2538,2603 ----
           null;
  
        elsif Present (Component_Associations (N)) then
+          Assoc := First (Component_Associations (N));
+ 
+          --  Loop over associations to identify any iterated associations that
+          --  need to be converted from the form with a Defining_Identifer and
+          --  Discrete_Choices list to the form with an Iterator_Specification.
+ 
+          if Nkind (Assoc) = N_Iterated_Component_Association then
+             while Present (Assoc) loop
+                if Nkind (Assoc) = N_Iterated_Component_Association
+                  and then No (Iterator_Specification (Assoc))
+                then
+                   declare
+                      Choice : constant Node_Id :=
+                        First (Discrete_Choices (Assoc));
+                      Copy   : Node_Id;
+                   begin
+ 
+                      --  A copy of Choice is made before it's analyzed,
+                      --  to preserve prefixed calls in their original form,
+                      --  because otherwise the analysis of Choice can transform
+                      --  such calls to normal form, and the later analysis of
+                      --  the iterator_specification created below may trigger
+                      --  an error on the call (in the case where the function
+                      --  is not directly visible).
+ 
+                      Copy := Copy_Separate_Tree (Choice);
+ 
+                      --  This is an association with a Defining_Identifier and
+                      --  Discrete_Choice_List, but if the latter has a single
+                      --  choice denoting an object (including a function call)
+                      --  of an iterator type, then it's a stand-in for an
+                      --  Iterator_Specification, and so we transform the
+                      --  association accordingly.
+ 
+                      if No (Next (Choice)) then
+                         Analyze (Choice);
+ 
+                         if Is_Object_Reference (Choice)
+                           and then Is_Iterator (Etype (Choice))
+                         then
+                            Set_Iterator_Specification
+                              (Assoc,
+                               Make_Iterator_Specification (Sloc (N),
+                                 Defining_Identifier =>
+                                   Relocate_Node (Defining_Identifier (Assoc)),
+                                 Name                => Copy,
+                                 Reverse_Present     => Reverse_Present (Assoc),
+                                 Iterator_Filter     => Empty,
+                                 Subtype_Indication  => Empty));
+ 
+                            Set_Defining_Identifier (Assoc, Empty);
+                            Set_Discrete_Choices (Assoc, No_List);
+                         end if;
+                      end if;
+                   end;
+                end if;
+ 
+                Next (Assoc);
+             end loop;
+          end if;
  
           --  Verify that all or none of the component associations
           --  include an iterator specification.
*************** package body Sem_Aggr is
*** 2127,2132 ****
--- 2606,2619 ----
           if Nkind (Assoc) = N_Iterated_Component_Association
             and then Present (Iterator_Specification (Assoc))
           then
+             if Number_Dimensions (Etype (N)) /= 1 then
+                Error_Msg_N ("iterated_component_association with an" &
+                             " iterator_specification not allowed for" &
+                             " multidimensional array aggregate",
+                             Assoc);
+                return Failure;
+             end if;
+ 
              --  All other component associations must have an iterator spec.
  
              Next (Assoc);
*************** package body Sem_Aggr is
*** 2167,2173 ****
           Assoc := First (Component_Associations (N));
           while Present (Assoc) loop
              if Nkind (Assoc) = N_Iterated_Component_Association then
!                Resolve_Iterated_Component_Association (Assoc, Index_Typ);
  
              elsif Nkind (Assoc) /= N_Component_Association then
                 Error_Msg_N
--- 2654,2664 ----
           Assoc := First (Component_Associations (N));
           while Present (Assoc) loop
              if Nkind (Assoc) = N_Iterated_Component_Association then
!                if not Resolve_Iterated_Component_Association
!                         (Assoc, Index_Typ)
!                then
!                   return Failure;
!                end if;
  
              elsif Nkind (Assoc) /= N_Component_Association then
                 Error_Msg_N
*************** package body Sem_Aggr is
*** 2179,2185 ****
              Delete_Choice := False;
              while Present (Choice) loop
                 if Nkind (Choice) = N_Others_Choice then
!                   Others_Present := True;
  
                    if Choice /= First (Choice_List (Assoc))
                      or else Present (Next (Choice))
--- 2670,2676 ----
              Delete_Choice := False;
              while Present (Choice) loop
                 if Nkind (Choice) = N_Others_Choice then
!                   Others_N := Choice;
  
                    if Choice /= First (Choice_List (Assoc))
                      or else Present (Next (Choice))
*************** package body Sem_Aggr is
*** 2279,2285 ****
  
        if Present (Expressions (N))
          and then (Nb_Choices > 1
!                    or else (Nb_Choices = 1 and then not Others_Present))
        then
           Error_Msg_N
             ("cannot mix named and positional associations in array aggregate",
--- 2770,2776 ----
  
        if Present (Expressions (N))
          and then (Nb_Choices > 1
!                    or else (Nb_Choices = 1 and then No (Others_N)))
        then
           Error_Msg_N
             ("cannot mix named and positional associations in array aggregate",
*************** package body Sem_Aggr is
*** 2289,2304 ****
  
        --  Test for the validity of an others choice if present
  
!       if Others_Present and then not Others_Allowed then
!          declare
!             Others_N : constant Node_Id :=
!               First (Choice_List (First (Component_Associations (N))));
!          begin
!             Error_Msg_N ("OTHERS choice not allowed here", Others_N);
!             Error_Msg_N ("\qualify the aggregate with a constrained subtype "
!                          & "to provide bounds for it", Others_N);
!             return Failure;
!          end;
        end if;
  
        --  Protect against cascaded errors
--- 2780,2790 ----
  
        --  Test for the validity of an others choice if present
  
!       if Present (Others_N) and then not Others_Allowed then
!          Error_Msg_N ("OTHERS choice not allowed here", Others_N);
!          Error_Msg_N ("\qualify the aggregate with a constrained subtype "
!                       & "to provide bounds for it", Others_N);
!          return Failure;
        end if;
  
        --  Protect against cascaded errors
*************** package body Sem_Aggr is
*** 2310,2316 ****
        --  STEP 2: Process named components
  
        if No (Expressions (N)) then
!          if Others_Present then
              Case_Table_Size := Nb_Choices - 1;
           else
              Case_Table_Size := Nb_Choices;
--- 2796,2802 ----
        --  STEP 2: Process named components
  
        if No (Expressions (N)) then
!          if Present (Others_N) then
              Case_Table_Size := Nb_Choices - 1;
           else
              Case_Table_Size := Nb_Choices;
*************** package body Sem_Aggr is
*** 2326,2340 ****
              -----------------
  
              function Empty_Range (A : Node_Id) return Boolean is
!                R : Node_Id;
  
              begin
-                if Nkind (A) = N_Iterated_Component_Association then
-                   R := First (Discrete_Choices (A));
-                else
-                   R := First (Choices (A));
-                end if;
- 
                 return No (Next (R))
                   and then Nkind (R) = N_Range
                   and then Compile_Time_Compare
--- 2812,2820 ----
              -----------------
  
              function Empty_Range (A : Node_Id) return Boolean is
!                R : constant Node_Id := First (Choice_List (A));
  
              begin
                 return No (Next (R))
                   and then Nkind (R) = N_Range
                   and then Compile_Time_Compare
*************** package body Sem_Aggr is
*** 2459,2474 ****
                       Get_Index_Bounds (Choice, Low, High);
                    end if;
  
!                   if (Dynamic_Or_Null_Range (Low, High)
!                        or else (Nkind (Choice) = N_Subtype_Indication
!                                  and then
!                                    Dynamic_Or_Null_Range (S_Low, S_High)))
!                     and then Nb_Choices /= 1
                    then
!                      Error_Msg_N
!                        ("dynamic or empty choice in aggregate "
!                         & "must be the only choice", Choice);
!                      return Failure;
                    end if;
  
                    if not (All_Composite_Constraints_Static (Low)
--- 2939,3013 ----
                       Get_Index_Bounds (Choice, Low, High);
                    end if;
  
!                   if Dynamic_Or_Null_Range (Low, High)
!                     or else (Nkind (Choice) = N_Subtype_Indication
!                              and then Dynamic_Or_Null_Range (S_Low, S_High))
                    then
!                      if Nb_Choices /= 1 then
!                         Error_Msg_N
!                           ("dynamic or empty choice in aggregate "
!                            & "must be the only choice", Choice);
!                         return Failure;
!                      elsif Number_Dimensions (Etype (N)) > 1 then
!                         declare
!                            function Check_Bound_Subexpression
!                              (Exp : Node_Id) return Traverse_Result;
!                            --  A bound expression for a subaggregate of an
!                            --  array aggregate is not permitted to reference
!                            --  a loop iteration variable defined in an earlier
!                            --  dimension of the same enclosing aggregate, as
!                            --  in (for X in 1 .. 3 => (1 .. X + 2 => ...)) .
!                            --  Always returns OK.
! 
!                            --------------------------------
!                            --  Check_Bound_Subexpression --
!                            --------------------------------
! 
!                            function Check_Bound_Subexpression
!                              (Exp : Node_Id) return Traverse_Result
!                            is
!                               Scope_Parent : Node_Id;
!                            begin
!                               if Nkind (Exp) /= N_Identifier
!                                 or else No (Entity (Exp))
!                                 or else No (Scope (Entity (Exp)))
!                                 or else Ekind (Scope (Entity (Exp))) /= E_Loop
!                               then
!                                  return OK;
!                               end if;
! 
!                               Scope_Parent := Parent (Scope (Entity (Exp)));
! 
!                               if Nkind (Scope_Parent) = N_Aggregate
! 
!                                  --  We want to know whether the aggregate
!                                  --  where this loop var is defined is
!                                  --  "the same" aggregate as N, where "the
!                                  --  same" means looking through subaggregates.
!                                  --  To do this, we compare Etypes of the two.
!                                  --
!                                  --  ??? There may be very obscure cases
!                                  --  involving allocators where this is too
!                                  --  strict and will generate a spurious error.
! 
!                                  and then Etype (Scope_Parent) = Etype (N)
!                               then
!                                  Error_Msg_N ("bound expression for a "
!                                    & "subaggregate of an array aggregate must "
!                                    & "not refer to an index parameter of an "
!                                    & "earlier dimension", Exp);
!                               end if;
! 
!                               return OK;
!                            end Check_Bound_Subexpression;
! 
!                            procedure Check_Bound_Expression is new
!                              Traverse_Proc (Check_Bound_Subexpression);
!                         begin
!                            Check_Bound_Expression (Low);
!                            Check_Bound_Expression (High);
!                         end;
!                      end if;
                    end if;
  
                    if not (All_Composite_Constraints_Static (Low)
*************** package body Sem_Aggr is
*** 2517,2523 ****
                    --            (if Func (J) = 0 then A(J)'Access else Null)];
  
                    elsif Ada_Version >= Ada_2022
!                     and then Can_Never_Be_Null (Component_Type (Etype (N)))
                      and then Nkind (Assoc) = N_Iterated_Component_Association
                      and then Nkind (Expression (Assoc)) in N_If_Expression
                                                           | N_Case_Expression
--- 3056,3062 ----
                    --            (if Func (J) = 0 then A(J)'Access else Null)];
  
                    elsif Ada_Version >= Ada_2022
!                     and then Can_Never_Be_Null (Ctyp)
                      and then Nkind (Assoc) = N_Iterated_Component_Association
                      and then Nkind (Expression (Assoc)) in N_If_Expression
                                                           | N_Case_Expression
*************** package body Sem_Aggr is
*** 2531,2545 ****
  
                 if Box_Present (Assoc) then
  
!                   --  Ada 2005 (AI-287): In case of default initialization of a
!                   --  component the expander will generate calls to the
!                   --  corresponding initialization subprogram. We need to call
!                   --  Resolve_Aggr_Expr to check the rules about
!                   --  dimensionality.
  
!                   if not Resolve_Aggr_Expr
!                            (Assoc, Single_Elmt => Single_Choice)
!                   then
                       return Failure;
                    end if;
  
--- 3070,3082 ----
  
                 if Box_Present (Assoc) then
  
!                   --  Ada 2005 (AI-287): In case of default initialization of
!                   --  a component, the expander will generate calls to the
!                   --  corresponding initialization subprogram. Check that we
!                   --  have a single dimension.
  
!                   if Present (Next_Index (Index)) then
!                      Error_Msg_N ("nested array aggregate expected", Assoc);
                       return Failure;
                    end if;
  
*************** package body Sem_Aggr is
*** 2567,2592 ****
  
                 elsif No (Etype (Expression (Assoc))) then
                    declare
!                      Save_Analysis : constant Boolean := Full_Analysis;
!                      Expr          : constant Node_Id :=
!                                        New_Copy_Tree (Expression (Assoc));
  
                    begin
!                      Expander_Mode_Save_And_Set (False);
!                      Full_Analysis := False;
! 
!                      --  Analyze the expression, making sure it is properly
                       --  attached to the tree before we do the analysis.
  
                       Set_Parent (Expr, Parent (Expression (Assoc)));
!                      Analyze (Expr);
! 
!                      --  Compute its dimensions now, rather than at the end of
!                      --  resolution, because in the case of multidimensional
!                      --  aggregates subsequent expansion may lead to spurious
!                      --  errors.
! 
!                      Check_Expression_Dimensions (Expr, Component_Typ);
  
                       --  If the expression is a literal, propagate this info
                       --  to the expression in the association, to enable some
--- 3104,3118 ----
  
                 elsif No (Etype (Expression (Assoc))) then
                    declare
!                      Expr : constant Node_Id :=
!                               New_Copy_Tree (Expression (Assoc));
  
                    begin
!                      --  Preanalyze the expression, making sure it is properly
                       --  attached to the tree before we do the analysis.
  
                       Set_Parent (Expr, Parent (Expression (Assoc)));
!                      Preanalyze (Expr);
  
                       --  If the expression is a literal, propagate this info
                       --  to the expression in the association, to enable some
*************** package body Sem_Aggr is
*** 2596,2612 ****
                         and then Present (Entity (Expr))
                         and then Ekind (Entity (Expr)) = E_Enumeration_Literal
                       then
!                         Analyze_And_Resolve
!                           (Expression (Assoc), Component_Typ);
                       end if;
  
!                      Full_Analysis := Save_Analysis;
!                      Expander_Mode_Restore;
  
!                      if Is_Tagged_Type (Etype (Expr)) then
                          Check_Dynamically_Tagged_Expression
                            (Expr => Expr,
!                            Typ  => Component_Type (Etype (N)),
                             Related_Nod => N);
                       end if;
                    end;
--- 3122,3144 ----
                         and then Present (Entity (Expr))
                         and then Ekind (Entity (Expr)) = E_Enumeration_Literal
                       then
!                         Preanalyze_And_Resolve (Expression (Assoc), Ctyp);
                       end if;
  
!                      --  Skip tagged checking for mutably tagged CW equivalent
!                      --  types.
  
!                      if Is_Tagged_Type (Etype (Expr))
!                        and then Is_Class_Wide_Equivalent_Type (Ctyp)
!                      then
!                         null;
! 
!                      --  Otherwise perform the dynamic tag check
! 
!                      elsif Is_Tagged_Type (Etype (Expr)) then
                          Check_Dynamically_Tagged_Expression
                            (Expr => Expr,
!                            Typ  => Ctyp,
                             Related_Nod => N);
                       end if;
                    end;
*************** package body Sem_Aggr is
*** 2614,2623 ****
                 elsif Is_Tagged_Type (Etype (Expression (Assoc))) then
                    Check_Dynamically_Tagged_Expression
                      (Expr        => Expression (Assoc),
!                      Typ         => Component_Type (Etype (N)),
                       Related_Nod => N);
                 end if;
  
                 Next (Assoc);
              end loop;
  
--- 3146,3168 ----
                 elsif Is_Tagged_Type (Etype (Expression (Assoc))) then
                    Check_Dynamically_Tagged_Expression
                      (Expr        => Expression (Assoc),
!                      Typ         => Ctyp,
                       Related_Nod => N);
                 end if;
  
+                --  Propagate the attribute Raises_CE when it was reported on a
+                --  null aggregate. This will cause replacing the aggregate by a
+                --  raise CE node; it is not done in other cases to avoid such
+                --  replacement and report complementary warnings when the
+                --  expression is resolved.
+ 
+                if Present (Expression (Assoc))
+                  and then Has_Null_Aggregate_Raising_Constraint_Error
+                             (Expression (Assoc))
+                then
+                   Set_Raises_Constraint_Error (N);
+                end if;
+ 
                 Next (Assoc);
              end loop;
  
*************** package body Sem_Aggr is
*** 2699,2705 ****
  
                       if Lo_Val <= Hi_Val
                         or else (Lo_Val > Hi_Val + 1
!                                  and then not Others_Present)
                       then
                          Missing_Or_Duplicates := True;
                          exit;
--- 3244,3250 ----
  
                       if Lo_Val <= Hi_Val
                         or else (Lo_Val > Hi_Val + 1
!                                  and then No (Others_N))
                       then
                          Missing_Or_Duplicates := True;
                          exit;
*************** package body Sem_Aggr is
*** 2786,2792 ****
                       --  Loop through entries in table to find missing indexes.
                       --  Not needed if others, since missing impossible.
  
!                      if not Others_Present then
                          for J in 2 .. Nb_Discrete_Choices loop
                             Lo_Val := Expr_Value (Table (J).Lo);
                             Hi_Val := Table (J - 1).Highest;
--- 3331,3337 ----
                       --  Loop through entries in table to find missing indexes.
                       --  Not needed if others, since missing impossible.
  
!                      if No (Others_N) then
                          for J in 2 .. Nb_Discrete_Choices loop
                             Lo_Val := Expr_Value (Table (J).Lo);
                             Hi_Val := Table (J - 1).Highest;
*************** package body Sem_Aggr is
*** 2852,2858 ****
              --  If Others is present, then bounds of aggregate come from the
              --  index constraint (not the choices in the aggregate itself).
  
!             if Others_Present then
                 Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
  
                 --  Abandon processing if either bound is already signalled as
--- 3397,3403 ----
              --  If Others is present, then bounds of aggregate come from the
              --  index constraint (not the choices in the aggregate itself).
  
!             if Present (Others_N) then
                 Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
  
                 --  Abandon processing if either bound is already signalled as
*************** package body Sem_Aggr is
*** 2868,2876 ****
              --  No others clause present
  
              else
!                --  Special processing if others allowed and not present. This
!                --  means that the bounds of the aggregate come from the index
!                --  constraint (and the length must match).
  
                 if Others_Allowed then
                    Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
--- 3413,3421 ----
              --  No others clause present
  
              else
!                --  Special processing if others allowed and not present. In
!                --  this case, the bounds of the aggregate come from the
!                --  choices (RM 4.3.3 (27)).
  
                 if Others_Allowed then
                    Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
*************** package body Sem_Aggr is
*** 2885,2914 ****
                       return False;
                    end if;
  
!                   --  If others allowed, and no others present, then the array
!                   --  should cover all index values. If it does not, we will
!                   --  get a length check warning, but there is two cases where
!                   --  an additional warning is useful:
! 
!                   --  If we have no positional components, and the length is
!                   --  wrong (which we can tell by others being allowed with
!                   --  missing components), and the index type is an enumeration
!                   --  type, then issue appropriate warnings about these missing
!                   --  components. They are only warnings, since the aggregate
!                   --  is fine, it's just the wrong length. We skip this check
!                   --  for standard character types (since there are no literals
!                   --  and it is too much trouble to concoct them), and also if
!                   --  any of the bounds have values that are not known at
!                   --  compile time.
! 
!                   --  Another case warranting a warning is when the length
!                   --  is right, but as above we have an index type that is
!                   --  an enumeration, and the bounds do not match. This is a
!                   --  case where dubious sliding is allowed and we generate a
!                   --  warning that the bounds do not match.
  
!                   if No (Expressions (N))
!                     and then Nkind (Index) = N_Range
                      and then Is_Enumeration_Type (Etype (Index))
                      and then not Is_Standard_Character_Type (Etype (Index))
                      and then Compile_Time_Known_Value (Aggr_Low)
--- 3430,3457 ----
                       return False;
                    end if;
  
!                   --  If there is an applicable index constraint and others is
!                   --  not present, then sliding is allowed and only a length
!                   --  check will be performed. However, additional warnings are
!                   --  useful if the index type is an enumeration type, as
!                   --  sliding is dubious in this case. We emit two kinds of
!                   --  warnings:
!                   --
!                   --    1. If the length is wrong then there are missing
!                   --       components; we issue appropriate warnings about
!                   --       these missing components. They are only warnings,
!                   --       since the aggregate is fine, it's just the wrong
!                   --       length. We skip this check for standard character
!                   --       types (since there are no literals and it is too
!                   --       much trouble to concoct them), and also if any of
!                   --       the bounds have values that are not known at compile
!                   --       time.
!                   --
!                   --    2. If the length is right but the bounds do not match,
!                   --       we issue a warning, as we consider sliding dubious
!                   --       when the index type is an enumeration type.
  
!                   if Nkind (Index) = N_Range
                      and then Is_Enumeration_Type (Etype (Index))
                      and then not Is_Standard_Character_Type (Etype (Index))
                      and then Compile_Time_Known_Value (Aggr_Low)
*************** package body Sem_Aggr is
*** 3017,3039 ****
                 Check_Can_Never_Be_Null (Etype (N), Expr);
              end if;
  
!             if not Resolve_Aggr_Expr (Expr, Single_Elmt => True) then
                 return Failure;
              end if;
  
              --  Check incorrect use of dynamically tagged expression
  
!             if Is_Tagged_Type (Etype (Expr)) then
!                Check_Dynamically_Tagged_Expression
!                  (Expr => Expr,
!                   Typ  => Component_Type (Etype (N)),
!                   Related_Nod => N);
              end if;
  
              Next (Expr);
           end loop;
  
!          if Others_Present then
              Assoc := Last (Component_Associations (N));
  
              --  Ada 2005 (AI-231)
--- 3560,3584 ----
                 Check_Can_Never_Be_Null (Etype (N), Expr);
              end if;
  
!             if not Resolve_Aggr_Expr (Expr) then
                 return Failure;
              end if;
  
              --  Check incorrect use of dynamically tagged expression
  
!             if not Iterated then
!                if Is_Tagged_Type (Etype (Expr)) then
!                   Check_Dynamically_Tagged_Expression
!                     (Expr => Expr,
!                      Typ  => Ctyp,
!                      Related_Nod => N);
!                end if;
              end if;
  
              Next (Expr);
           end loop;
  
!          if Present (Others_N) then
              Assoc := Last (Component_Associations (N));
  
              --  Ada 2005 (AI-231)
*************** package body Sem_Aggr is
*** 3047,3062 ****
  
              if Box_Present (Assoc) then
  
!                --  Ada 2005 (AI-287): In case of default initialization of a
!                --  component the expander will generate calls to the
!                --  corresponding initialization subprogram. We need to call
!                --  Resolve_Aggr_Expr to check the rules about
!                --  dimensionality.
  
!                if not Resolve_Aggr_Expr (Assoc, Single_Elmt => False) then
                    return Failure;
                 end if;
  
              elsif not Resolve_Aggr_Expr (Expression (Assoc),
                                           Single_Elmt => False)
              then
--- 3592,3615 ----
  
              if Box_Present (Assoc) then
  
!                --  Ada 2005 (AI-287): In case of default initialization of
!                --  a component, the expander will generate calls to the
!                --  corresponding initialization subprogram. Check that we
!                --  have a single dimension.
  
!                if Present (Next_Index (Index)) then
!                   Error_Msg_N ("nested array aggregate expected", Assoc);
                    return Failure;
                 end if;
  
+             --  ??? Checks for dynamically tagged expressions below will
+             --  be only applied to iterated_component_association after
+             --  expansion; in particular, errors might not be reported when
+             --  -gnatc switch is used.
+ 
+             elsif Nkind (Assoc) = N_Iterated_Component_Association then
+                null;   --  handled above, in a loop context
+ 
              elsif not Resolve_Aggr_Expr (Expression (Assoc),
                                           Single_Elmt => False)
              then
*************** package body Sem_Aggr is
*** 3067,3073 ****
              --  In order to diagnose the semantic error we create a duplicate
              --  tree to analyze it and perform the check.
  
!             elsif Nkind (Assoc) /= N_Iterated_Component_Association then
                 declare
                    Save_Analysis : constant Boolean := Full_Analysis;
                    Expr          : constant Node_Id :=
--- 3620,3626 ----
              --  In order to diagnose the semantic error we create a duplicate
              --  tree to analyze it and perform the check.
  
!             else
                 declare
                    Save_Analysis : constant Boolean := Full_Analysis;
                    Expr          : constant Node_Id :=
*************** package body Sem_Aggr is
*** 3083,3089 ****
                    if Is_Tagged_Type (Etype (Expr)) then
                       Check_Dynamically_Tagged_Expression
                         (Expr        => Expr,
!                         Typ         => Component_Type (Etype (N)),
                          Related_Nod => N);
                    end if;
                 end;
--- 3636,3642 ----
                    if Is_Tagged_Type (Etype (Expr)) then
                       Check_Dynamically_Tagged_Expression
                         (Expr        => Expr,
!                         Typ         => Ctyp,
                          Related_Nod => N);
                    end if;
                 end;
*************** package body Sem_Aggr is
*** 3092,3098 ****
  
           --  STEP 3 (B): Compute the aggregate bounds
  
!          if Others_Present then
              Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
  
           else
--- 3645,3651 ----
  
           --  STEP 3 (B): Compute the aggregate bounds
  
!          if Present (Others_N) then
              Get_Index_Bounds (Index_Constr, Aggr_Low, Aggr_High);
  
           else
*************** package body Sem_Aggr is
*** 3102,3109 ****
                 Aggr_Low := Index_Typ_Low;
              end if;
  
!             Aggr_High := Add (Nb_Elements - 1, To => Aggr_Low);
!             Check_Bound (Index_Base_High, Aggr_High);
           end if;
        end if;
  
--- 3655,3686 ----
                 Aggr_Low := Index_Typ_Low;
              end if;
  
!             --  Report a warning when the index type of a null array aggregate
!             --  is a modular type or an enumeration type, and we know that
!             --  we will not be able to compute its high bound at runtime
!             --  (AI22-0100-2).
! 
!             if Nb_Elements = Uint_0
!               and then Cannot_Compute_High_Bound (Index_Constr)
!             then
!                --  Use the low bound value for the high-bound value to avoid
!                --  reporting spurious errors; this value will not be used at
!                --  runtime because this aggregate will be replaced by a raise
!                --  CE node.
! 
!                Aggr_High := Aggr_Low;
! 
!                Report_Null_Array_Constraint_Error (N, Index_Typ);
!                Set_Raises_Constraint_Error (N);
! 
!             elsif Nb_Elements = Uint_0 then
!                Aggr_High := Subtract (Uint_1, To => Aggr_Low);
!                Check_Bound (Index_Base_High, Aggr_High);
! 
!             else
!                Aggr_High := Add (Nb_Elements - 1, To => Aggr_Low);
!                Check_Bound (Index_Base_High, Aggr_High);
!             end if;
           end if;
        end if;
  
*************** package body Sem_Aggr is
*** 3116,3122 ****
  
        --  Check (B)
  
!       if Others_Present and then Nb_Discrete_Choices > 0 then
           Check_Bounds (Aggr_Low, Aggr_High, Choices_Low, Choices_High);
           Check_Bounds (Index_Typ_Low, Index_Typ_High,
                         Choices_Low, Choices_High);
--- 3693,3699 ----
  
        --  Check (B)
  
!       if Present (Others_N) and then Nb_Discrete_Choices > 0 then
           Check_Bounds (Aggr_Low, Aggr_High, Choices_Low, Choices_High);
           Check_Bounds (Index_Typ_Low, Index_Typ_High,
                         Choices_Low, Choices_High);
*************** package body Sem_Aggr is
*** 3125,3131 ****
  
        --  Check (C)
  
!       elsif Others_Present and then Nb_Elements > 0 then
           Check_Length (Aggr_Low, Aggr_High, Nb_Elements);
           Check_Length (Index_Typ_Low, Index_Typ_High, Nb_Elements);
           Check_Length (Index_Base_Low, Index_Base_High, Nb_Elements);
--- 3702,3708 ----
  
        --  Check (C)
  
!       elsif Present (Others_N) and then Nb_Elements > 0 then
           Check_Length (Aggr_Low, Aggr_High, Nb_Elements);
           Check_Length (Index_Typ_Low, Index_Typ_High, Nb_Elements);
           Check_Length (Index_Base_Low, Index_Base_High, Nb_Elements);
*************** package body Sem_Aggr is
*** 3144,3150 ****
        --  to tree and analyze first. Reset analyzed flag to ensure it will get
        --  analyzed when it is a literal bound whose type must be properly set.
  
!       if Others_Present or else Nb_Discrete_Choices > 0 then
           Aggr_High := Duplicate_Subexpr (Aggr_High);
  
           if Etype (Aggr_High) = Universal_Integer then
--- 3721,3727 ----
        --  to tree and analyze first. Reset analyzed flag to ensure it will get
        --  analyzed when it is a literal bound whose type must be properly set.
  
!       if Present (Others_N) or else Nb_Discrete_Choices > 0 then
           Aggr_High := Duplicate_Subexpr (Aggr_High);
  
           if Etype (Aggr_High) = Universal_Integer then
*************** package body Sem_Aggr is
*** 3155,3164 ****
        --  If the aggregate already has bounds attached to it, it means this is
        --  a positional aggregate created as an optimization by
        --  Exp_Aggr.Convert_To_Positional, so we don't want to change those
!       --  bounds.
  
        if Present (Aggregate_Bounds (N))
!         and then not Others_Allowed
          and then not Comes_From_Source (N)
        then
           Aggr_Low  := Low_Bound  (Aggregate_Bounds (N));
--- 3732,3743 ----
        --  If the aggregate already has bounds attached to it, it means this is
        --  a positional aggregate created as an optimization by
        --  Exp_Aggr.Convert_To_Positional, so we don't want to change those
!       --  bounds, unless they depend on discriminants. If they do, we have to
!       --  perform analysis in the current context.
  
        if Present (Aggregate_Bounds (N))
!         and then No (Others_N)
!         and then not Depends_On_Discriminant (Aggregate_Bounds (N))
          and then not Comes_From_Source (N)
        then
           Aggr_Low  := Low_Bound  (Aggregate_Bounds (N));
*************** package body Sem_Aggr is
*** 3176,3182 ****
        Analyze_And_Resolve (Aggregate_Bounds (N), Index_Typ);
        Check_Unset_Reference (Aggregate_Bounds (N));
  
!       if not Others_Present and then Nb_Discrete_Choices = 0 then
           Set_High_Bound
             (Aggregate_Bounds (N),
              Duplicate_Subexpr (High_Bound (Aggregate_Bounds (N))));
--- 3755,3761 ----
        Analyze_And_Resolve (Aggregate_Bounds (N), Index_Typ);
        Check_Unset_Reference (Aggregate_Bounds (N));
  
!       if No (Others_N) and then Nb_Discrete_Choices = 0 then
           Set_High_Bound
             (Aggregate_Bounds (N),
              Duplicate_Subexpr (High_Bound (Aggregate_Bounds (N))));
*************** package body Sem_Aggr is
*** 3184,3190 ****
  
        --  Check the dimensions of each component in the array aggregate
  
!       Analyze_Dimension_Array_Aggregate (N, Component_Typ);
  
        return Success;
     end Resolve_Array_Aggregate;
--- 3763,3773 ----
  
        --  Check the dimensions of each component in the array aggregate
  
!       Analyze_Dimension_Array_Aggregate (N, Ctyp);
! 
!       if Serious_Errors_Detected /= Saved_SED then
!          return Failure;
!       end if;
  
        return Success;
     end Resolve_Array_Aggregate;
*************** package body Sem_Aggr is
*** 3195,3203 ****
  
     procedure Resolve_Container_Aggregate (N : Node_Id; Typ : Entity_Id) is
        procedure Resolve_Iterated_Association
!        (Comp      : Node_Id;
!         Key_Type  : Entity_Id;
!         Elmt_Type : Entity_Id);
        --  Resolve choices and expression in an iterated component association
        --  or an iterated element association, which has a key_expression.
        --  This is similar but not identical to the handling of this construct
--- 3778,3786 ----
  
     procedure Resolve_Container_Aggregate (N : Node_Id; Typ : Entity_Id) is
        procedure Resolve_Iterated_Association
!         (Comp      : Node_Id;
!          Key_Type  : Entity_Id;
!          Elmt_Type : Entity_Id);
        --  Resolve choices and expression in an iterated component association
        --  or an iterated element association, which has a key_expression.
        --  This is similar but not identical to the handling of this construct
*************** package body Sem_Aggr is
*** 3220,3245 ****
        ----------------------------------
  
        procedure Resolve_Iterated_Association
!        (Comp      : Node_Id;
!         Key_Type  : Entity_Id;
!         Elmt_Type : Entity_Id)
        is
!          Loc      : constant Source_Ptr := Sloc (N);
!          Choice   : Node_Id;
!          Copy     : Node_Id;
!          Ent      : Entity_Id;
!          Expr     : Node_Id;
!          Key_Expr : Node_Id;
!          Id       : Entity_Id;
!          Id_Name  : Name_Id;
!          Typ      : Entity_Id := Empty;
  
        begin
           Error_Msg_Ada_2022_Feature ("iterated component", Loc);
  
           --  If this is an Iterated_Element_Association then either a
           --  an Iterator_Specification or a Loop_Parameter specification
!          --  is present. In both cases a Key_Expression is present.
  
           if Nkind (Comp) = N_Iterated_Element_Association then
  
--- 3803,3829 ----
        ----------------------------------
  
        procedure Resolve_Iterated_Association
!         (Comp      : Node_Id;
!          Key_Type  : Entity_Id;
!          Elmt_Type : Entity_Id)
        is
!          Loc           : constant Source_Ptr := Sloc (N);
!          Choice        : Node_Id;
!          Copy          : Node_Id;
!          Ent           : Entity_Id;
!          Expr          : Node_Id;
!          Key_Expr      : Node_Id := Empty;
!          Id            : Entity_Id;
!          Id_Name       : Name_Id;
!          Typ           : Entity_Id := Empty;
!          Loop_Param_Id : Entity_Id := Empty;
  
        begin
           Error_Msg_Ada_2022_Feature ("iterated component", Loc);
  
           --  If this is an Iterated_Element_Association then either a
           --  an Iterator_Specification or a Loop_Parameter specification
!          --  is present.
  
           if Nkind (Comp) = N_Iterated_Element_Association then
  
*************** package body Sem_Aggr is
*** 3255,3272 ****
  
              if Present (Loop_Parameter_Specification (Comp)) then
                 Copy := Copy_Separate_Tree (Comp);
  
                 Analyze
                   (Loop_Parameter_Specification (Copy));
  
!                Id_Name := Chars (Defining_Identifier
!                             (Loop_Parameter_Specification (Comp)));
              else
                 Copy := Copy_Separate_Tree (Iterator_Specification (Comp));
                 Analyze (Copy);
  
!                Id_Name := Chars (Defining_Identifier
!                             (Iterator_Specification (Comp)));
              end if;
  
              --  Key expression must have the type of the key. We preanalyze
--- 3839,3865 ----
  
              if Present (Loop_Parameter_Specification (Comp)) then
                 Copy := Copy_Separate_Tree (Comp);
+                Set_Parent (Copy, Parent (Comp));
  
                 Analyze
                   (Loop_Parameter_Specification (Copy));
  
!                if Present (Iterator_Specification (Copy)) then
!                   Loop_Param_Id :=
!                     Defining_Identifier (Iterator_Specification (Copy));
!                else
!                   Loop_Param_Id :=
!                     Defining_Identifier (Loop_Parameter_Specification (Copy));
!                end if;
! 
!                Id_Name := Chars (Loop_Param_Id);
              else
                 Copy := Copy_Separate_Tree (Iterator_Specification (Comp));
                 Analyze (Copy);
  
!                Loop_Param_Id := Defining_Identifier (Copy);
! 
!                Id_Name := Chars (Loop_Param_Id);
              end if;
  
              --  Key expression must have the type of the key. We preanalyze
*************** package body Sem_Aggr is
*** 3275,3284 ****
              --  corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
!             Preanalyze_And_Resolve (New_Copy_Tree (Key_Expr), Key_Type);
              End_Scope;
  
!             Typ := Key_Type;
  
           elsif Present (Iterator_Specification (Comp)) then
              --  Create a temporary scope to avoid some modifications from
--- 3868,3887 ----
              --  corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
!             if Present (Key_Expr) then
!                if No (Add_Named_Subp) then
!                   Error_Msg_N
!                     ("iterated_element_association with key_expression only "
!                        & "allowed for container type with Add_Named operation "
!                        & "(RM22 4.3.5(24))",
!                      Comp);
!                else
!                   Preanalyze_And_Resolve (New_Copy_Tree (Key_Expr), Key_Type);
!                end if;
!             end if;
              End_Scope;
  
!             Typ := Etype (Loop_Param_Id);
  
           elsif Present (Iterator_Specification (Comp)) then
              --  Create a temporary scope to avoid some modifications from
*************** package body Sem_Aggr is
*** 3291,3299 ****
              Set_Parent (Ent, Parent (Comp));
              Push_Scope (Ent);
  
!             Copy    := Copy_Separate_Tree (Iterator_Specification (Comp));
!             Id_Name :=
!               Chars (Defining_Identifier (Iterator_Specification (Comp)));
  
              Preanalyze (Copy);
  
--- 3894,3905 ----
              Set_Parent (Ent, Parent (Comp));
              Push_Scope (Ent);
  
!             Copy := Copy_Separate_Tree (Iterator_Specification (Comp));
! 
!             Loop_Param_Id :=
!               Defining_Identifier (Iterator_Specification (Comp));
! 
!             Id_Name := Chars (Loop_Param_Id);
  
              Preanalyze (Copy);
  
*************** package body Sem_Aggr is
*** 3304,3331 ****
           else
              Choice := First (Discrete_Choices (Comp));
  
!             while Present (Choice) loop
!                Analyze (Choice);
  
!                --  Choice can be a subtype name, a range, or an expression
  
!                if Is_Entity_Name (Choice)
!                  and then Is_Type (Entity (Choice))
!                  and then Base_Type (Entity (Choice)) = Base_Type (Key_Type)
!                then
!                   null;
  
!                elsif Present (Key_Type) then
!                   Analyze_And_Resolve (Choice, Key_Type);
!                   Typ := Key_Type;
!                else
!                   Typ := Etype (Choice);  --  assume unique for now
!                end if;
  
!                Next (Choice);
!             end loop;
  
!             Id_Name := Chars (Defining_Identifier (Comp));
           end if;
  
           --  Create a scope in which to introduce an index, which is usually
--- 3910,3975 ----
           else
              Choice := First (Discrete_Choices (Comp));
  
!             --  A copy of Choice is made before it's analyzed, to preserve
!             --  prefixed calls in their original form, because otherwise the
!             --  analysis of Choice can transform such calls to normal form,
!             --  and the later analysis of an iterator_specification created
!             --  below in the case of a function-call choice may trigger an
!             --  error on the call (in the case where the function is not
!             --  directly visible).
  
!             Copy := Copy_Separate_Tree (Choice);
  
!             --  This is an N_Component_Association with a Defining_Identifier
!             --  and Discrete_Choice_List, but the latter can only have a single
!             --  choice, as it's a stand-in for a Loop_Parameter_Specification
!             --  (or possibly even an Iterator_Specification, see below).
  
!             pragma Assert (No (Next (Choice)));
  
!             Analyze (Choice);
  
!             --  Choice can be a subtype name, a range, or an expression
! 
!             if Is_Entity_Name (Choice)
!               and then Is_Type (Entity (Choice))
!               and then Present (Key_Type)
!               and then Base_Type (Entity (Choice)) = Base_Type (Key_Type)
!             then
!                null;
! 
!             elsif Is_Object_Reference (Choice) then
!                declare
!                   I_Spec : constant Node_Id :=
!                     Make_Iterator_Specification (Sloc (N),
!                       Defining_Identifier =>
!                         Relocate_Node (Defining_Identifier (Comp)),
!                       Name                => Copy,
!                       Reverse_Present     => Reverse_Present (Comp),
!                       Iterator_Filter     => Empty,
!                       Subtype_Indication  => Empty);
!                begin
!                   Set_Iterator_Specification (Comp, I_Spec);
!                   Set_Defining_Identifier (Comp, Empty);
! 
!                   Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
!                   --  Recursive call to expand association as iterator_spec
! 
!                   return;
!                end;
! 
!             elsif Present (Key_Type) then
!                Analyze_And_Resolve (Choice, Key_Type);
!                Typ := Key_Type;
! 
!             else
!                Typ := Etype (Choice);  --  assume unique for now
!             end if;
! 
!             Loop_Param_Id :=
!               Defining_Identifier (Comp);
! 
!             Id_Name := Chars (Loop_Param_Id);
           end if;
  
           --  Create a scope in which to introduce an index, which is usually
*************** package body Sem_Aggr is
*** 3355,3369 ****
           Set_Scope (Id, Ent);
           Set_Referenced (Id);
  
           --  Analyze a copy of the expression, to verify legality. We use
           --  a copy because the expression will be analyzed anew when the
           --  enclosing aggregate is expanded, and the construct is rewritten
           --  as a loop with a new index variable.
  
!          Expr := New_Copy_Tree (Expression (Comp));
           Preanalyze_And_Resolve (Expr, Elmt_Type);
           End_Scope;
- 
        end Resolve_Iterated_Association;
  
     --  Start of processing for Resolve_Container_Aggregate
--- 3999,4028 ----
           Set_Scope (Id, Ent);
           Set_Referenced (Id);
  
+          --  Check for violation of 4.3.5(27/5)
+ 
+          if No (Key_Expr)
+            and then Present (Key_Type)
+            and then
+              (Is_Indexed_Aggregate (N, Add_Unnamed_Subp, New_Indexed_Subp)
+                or else Present (Add_Named_Subp))
+            and then Base_Type (Key_Type) /= Base_Type (Typ)
+          then
+             Error_Msg_Node_2 := Key_Type;
+             Error_Msg_NE
+               ("loop parameter type & must be same as key type & " &
+                "(RM22 4.3.5(27))", Loop_Param_Id, Typ);
+          end if;
+ 
           --  Analyze a copy of the expression, to verify legality. We use
           --  a copy because the expression will be analyzed anew when the
           --  enclosing aggregate is expanded, and the construct is rewritten
           --  as a loop with a new index variable.
  
!          Expr := Copy_Separate_Tree (Expression (Comp));
!          Set_Parent (Expr, Comp);
           Preanalyze_And_Resolve (Expr, Elmt_Type);
           End_Scope;
        end Resolve_Iterated_Association;
  
     --  Start of processing for Resolve_Container_Aggregate
*************** package body Sem_Aggr is
*** 3376,3381 ****
--- 4035,4055 ----
          Empty_Subp, Add_Named_Subp, Add_Unnamed_Subp,
          New_Indexed_Subp, Assign_Indexed_Subp);
  
+       if Present (First (Expressions (N)))
+         and then Present (First (Component_Associations (N)))
+       then
+          if Debug_Flag_Underscore_DD then
+             Record_Mixed_Container_Aggregate_Error
+               (Aggr       => N,
+                Pos_Elem   => First (Expressions (N)),
+                Named_Elem => First (Component_Associations (N)));
+          else
+             Error_Msg_N
+               ("container aggregate cannot be both positional and named", N);
+          end if;
+          return;
+       end if;
+ 
        if Present (Add_Unnamed_Subp)
          and then No (New_Indexed_Subp)
          and then Present (Etype (Add_Unnamed_Subp))
*************** package body Sem_Aggr is
*** 3406,3420 ****
                    Comp : Node_Id := First (Component_Associations (N));
                 begin
                    while Present (Comp) loop
!                      if Nkind (Comp) /=
!                        N_Iterated_Component_Association
                       then
                          Error_Msg_N ("illegal component association "
                            & "for unnamed container aggregate", Comp);
                          return;
-                      else
-                         Resolve_Iterated_Association
-                           (Comp, Empty, Elmt_Type);
                       end if;
  
                       Next (Comp);
--- 4080,4095 ----
                    Comp : Node_Id := First (Component_Associations (N));
                 begin
                    while Present (Comp) loop
!                      if Nkind (Comp) in
!                        N_Iterated_Component_Association |
!                        N_Iterated_Element_Association
                       then
+                         Resolve_Iterated_Association
+                           (Comp, Empty, Elmt_Type);
+                      else
                          Error_Msg_N ("illegal component association "
                            & "for unnamed container aggregate", Comp);
                          return;
                       end if;
  
                       Next (Comp);
*************** package body Sem_Aggr is
*** 3460,3469 ****
  
                    while Present (Choice) loop
                       Analyze_And_Resolve (Choice, Key_Type);
-                      if not Is_Static_Expression (Choice) then
-                         Error_Msg_N ("choice must be static", Choice);
-                      end if;
- 
                       Next (Choice);
                    end loop;
  
--- 4135,4140 ----
*************** package body Sem_Aggr is
*** 3512,3525 ****
              if Present (Component_Associations (N))
                and then not Is_Empty_List (Component_Associations (N))
              then
-                if Present (Expressions (N))
-                  and then not Is_Empty_List (Expressions (N))
-                then
-                   Error_Msg_N ("container aggregate cannot be "
-                     & "both positional and named", N);
-                   return;
-                end if;
- 
                 Comp := First (Component_Associations (N));
  
                 while Present (Comp) loop
--- 4183,4188 ----
*************** package body Sem_Aggr is
*** 3532,3538 ****
                          Next (Choice);
                       end loop;
  
!                      Analyze_And_Resolve (Expression (Comp), Comp_Type);
  
                    elsif Nkind (Comp) in
                      N_Iterated_Component_Association |
--- 4195,4203 ----
                          Next (Choice);
                       end loop;
  
!                      if not Box_Present (Comp) then
!                         Analyze_And_Resolve (Expression (Comp), Comp_Type);
!                      end if;
  
                    elsif Nkind (Comp) in
                      N_Iterated_Component_Association |
*************** package body Sem_Aggr is
*** 3540,3545 ****
--- 4205,4260 ----
                    then
                       Resolve_Iterated_Association
                         (Comp, Index_Type, Comp_Type);
+ 
+                      --  Check the legality rule of RM22 4.3.5(28/5). Note that
+                      --  Is_Indexed_Aggregate can change its status (to False)
+                      --  as a result of calling Resolve_Iterated_Association,
+                      --  due to possible expansion of iterator_specifications
+                      --  there.
+ 
+                      if Is_Indexed_Aggregate
+                           (N, Add_Unnamed_Subp, New_Indexed_Subp)
+                      then
+                         if Nkind (Comp) = N_Iterated_Element_Association then
+                            if Present (Loop_Parameter_Specification (Comp))
+                            then
+                               if Present (Iterator_Filter
+                                    (Loop_Parameter_Specification (Comp)))
+                               then
+                                  Error_Msg_N
+                                    ("iterator filter not allowed " &
+                                     "in indexed aggregate (RM22 4.3.5(28))",
+                                     Iterator_Filter
+                                       (Loop_Parameter_Specification (Comp)));
+                                  return;
+ 
+                               elsif Present (Key_Expression (Comp)) then
+                                  Error_Msg_N
+                                    ("key expression not allowed " &
+                                     "in indexed aggregate (RM22 4.3.5(28))",
+                                     Key_Expression (Comp));
+                                  return;
+                               end if;
+ 
+                            elsif Present (Iterator_Specification (Comp)) then
+                               Error_Msg_N
+                                 ("iterator specification not allowed " &
+                                  "in indexed aggregate (RM22 4.3.5(28))",
+                                  Iterator_Specification (Comp));
+                               return;
+                            end if;
+ 
+                         elsif Nkind (Comp) = N_Iterated_Component_Association
+                           and then Present (Iterator_Specification (Comp))
+                         then
+                            Error_Msg_N
+                              ("iterator specification not allowed " &
+                               "in indexed aggregate (RM22 4.3.5(28))",
+                               Iterator_Specification (Comp));
+                            return;
+                         end if;
+                      end if;
+ 
                       Num_Choices := Num_Choices + 1;
                    end if;
  
*************** package body Sem_Aggr is
*** 3566,3632 ****
                    begin
                       Comp := First (Component_Associations (N));
                       while Present (Comp) loop
-                         if Nkind (Comp) = N_Iterated_Element_Association then
-                            if Present
-                              (Loop_Parameter_Specification (Comp))
-                            then
-                               if Present (Iterator_Filter
-                                 (Loop_Parameter_Specification (Comp)))
-                               then
-                                  Error_Msg_N
-                                    ("iterator filter not allowed " &
-                                      "in indexed aggregate", Comp);
-                                  return;
  
!                               elsif Present (Key_Expression
!                                 (Loop_Parameter_Specification (Comp)))
!                               then
!                                  Error_Msg_N
!                                    ("key expression not allowed " &
!                                      "in indexed aggregate", Comp);
!                                  return;
!                               end if;
!                            end if;
!                         else
! 
!                            --  If Nkind is N_Iterated_Component_Association,
!                            --  this corresponds to an iterator_specification
!                            --  with a loop_parameter_specification, and we
!                            --  have to pick up Discrete_Choices. In this case
!                            --  there will be just one "choice", which will
!                            --  typically be a range.
  
!                            if Nkind (Comp) = N_Iterated_Component_Association
!                            then
!                               Choice := First (Discrete_Choices (Comp));
  
!                            --  Case where there's a list of choices
  
!                            else
!                               Choice := First (Choices (Comp));
!                            end if;
  
!                            while Present (Choice) loop
!                               Get_Index_Bounds (Choice, Lo, Hi);
!                               Table (No_Choice).Choice := Choice;
!                               Table (No_Choice).Lo := Lo;
!                               Table (No_Choice).Hi := Hi;
  
!                               --  Verify staticness of value or range
  
!                               if not Is_Static_Expression (Lo)
!                                 or else not Is_Static_Expression (Hi)
!                               then
!                                  Error_Msg_N
!                                    ("nonstatic expression for index " &
!                                      "for indexed aggregate", Choice);
!                                  return;
!                               end if;
  
!                               No_Choice := No_Choice + 1;
!                               Next (Choice);
!                            end loop;
!                         end if;
  
                          Next (Comp);
                       end loop;
--- 4281,4324 ----
                    begin
                       Comp := First (Component_Associations (N));
                       while Present (Comp) loop
  
!                         --  If Nkind is N_Iterated_Component_Association,
!                         --  this corresponds to an iterator_specification
!                         --  with a loop_parameter_specification, and we
!                         --  have to pick up Discrete_Choices. In this case
!                         --  there will be just one "choice", which will
!                         --  typically be a range.
  
!                         if Nkind (Comp) = N_Iterated_Component_Association
!                         then
!                            Choice := First (Discrete_Choices (Comp));
  
!                         --  Case where there's a list of choices
  
!                         else
!                            Choice := First (Choices (Comp));
!                         end if;
  
!                         while Present (Choice) loop
!                            Get_Index_Bounds (Choice, Lo, Hi);
!                            Table (No_Choice).Choice := Choice;
!                            Table (No_Choice).Lo := Lo;
!                            Table (No_Choice).Hi := Hi;
  
!                            --  Verify staticness of value or range
  
!                            if not Is_Static_Expression (Lo)
!                              or else not Is_Static_Expression (Hi)
!                            then
!                               Error_Msg_N
!                                 ("nonstatic expression for index " &
!                                   "for indexed aggregate", Choice);
!                               return;
!                            end if;
  
!                            No_Choice := No_Choice + 1;
!                            Next (Choice);
!                         end loop;
  
                          Next (Comp);
                       end loop;
*************** package body Sem_Aggr is
*** 3710,3715 ****
--- 4402,4486 ----
           Resolve_Delta_Record_Aggregate (N, Typ);
        end if;
  
+       declare
+          Assoc  : Node_Id;
+          Choice : Node_Id;
+ 
+          procedure Check_For_Bad_Dd_Component_Choice (Choice : Node_Id);
+          --  Enforce the GNAT RM rule that a deep delta aggregate choice
+          --  cannot name a discriminant-dependent component if the
+          --  immediately enclosing object's subtype is unconstrained and the
+          --  prefix of the component includes at least one array indexing.
+          --  [Note: The motivation for this rule is unclear. The GNAT RM
+          --  gives a rationale for this particular rule, but it still
+          --  seems dubious.]
+ 
+          ---------------------------------------
+          -- Check_For_Bad_Dd_Component_Choice --
+          ---------------------------------------
+ 
+          procedure Check_For_Bad_Dd_Component_Choice (Choice : Node_Id) is
+             Pref         : Node_Id := Choice;
+             Dd_Comp_Name : Node_Id := Empty;
+          begin
+             loop
+                case Nkind (Pref) is
+                   when N_Selected_Component =>
+                      declare
+                         Comp : constant Entity_Id
+                           := Entity (Selector_Name (Pref));
+ 
+                         Enclosing_Type : Entity_Id := Etype (Prefix (Pref));
+                      begin
+                         if Is_Declared_Within_Variant (Comp)
+                           or else Has_Discriminant_Dependent_Constraint (Comp)
+                         then
+                            if not Has_Discriminants (Enclosing_Type) then
+                               --  a deep delta array aggregate choice like
+                               --     (Index_Value).Record_Component => ...
+                               Enclosing_Type := Component_Type (Etype (N));
+                            end if;
+ 
+                            if not Is_Constrained (Enclosing_Type) then
+                               Dd_Comp_Name := Selector_Name (Pref);
+                            end if;
+                         end if;
+                      end;
+ 
+                   when N_Indexed_Component =>
+                      exit when Present (Dd_Comp_Name);
+ 
+                   when N_Identifier =>
+                      return;
+ 
+                   when others =>
+                      exit;
+                end case;
+                Pref := Prefix (Pref);
+             end loop;
+ 
+             if Present (Dd_Comp_Name) then
+                --  It would be difficult to explain the whole rule briefly,
+                --  so we just say "illegal".
+ 
+                Error_Msg_N
+                  ("illegal discriminant-dependent component &" &
+                   " in deep delta aggregate choice", Dd_Comp_Name);
+             end if;
+          end Check_For_Bad_Dd_Component_Choice;
+ 
+       begin
+          Assoc := First (Component_Associations (N));
+          while Present (Assoc) loop
+             Choice := First (Choice_List (Assoc));
+             while Present (Choice) loop
+                Check_For_Bad_Dd_Component_Choice (Choice);
+                Next (Choice);
+             end loop;
+             Next (Assoc);
+          end loop;
+       end;
+ 
        Set_Etype (N, Typ);
     end Resolve_Delta_Aggregate;
  
*************** package body Sem_Aggr is
*** 3765,3778 ****
                    Set_Is_Not_Self_Hidden (Id);
                    Set_Scope (Id, Ent);
                 end if;
                 Enter_Name (Id);
  
!                --  Resolve a copy of the expression, after setting
!                --  its parent properly to preserve its context.
  
!                Expr := New_Copy_Tree (Expression (Assoc));
                 Set_Parent (Expr, Assoc);
!                Analyze_And_Resolve (Expr, Component_Type (Typ));
                 End_Scope;
              end;
  
--- 4536,4552 ----
                    Set_Is_Not_Self_Hidden (Id);
                    Set_Scope (Id, Ent);
                 end if;
+ 
                 Enter_Name (Id);
  
!                --  Analyze a copy of the expression, to verify legality. We use
!                --  a copy because the expression will be analyzed anew when the
!                --  enclosing aggregate is expanded, and the construct is
!                --  rewritten as a loop with a new index variable.
  
!                Expr := Copy_Separate_Tree (Expression (Assoc));
                 Set_Parent (Expr, Assoc);
!                Preanalyze_And_Resolve (Expr, Component_Type (Typ));
                 End_Scope;
              end;
  
*************** package body Sem_Aggr is
*** 4036,4045 ****
  
        Deltas : constant List_Id := Component_Associations (N);
  
!       Assoc       : Node_Id;
!       Choice      : Node_Id;
!       Comp_Type   : Entity_Id := Empty; -- init to avoid warning
!       Deep_Choice : Boolean;
  
     --  Start of processing for Resolve_Delta_Record_Aggregate
  
--- 4810,4820 ----
  
        Deltas : constant List_Id := Component_Associations (N);
  
!       Assoc        : Node_Id;
!       Choice       : Node_Id;
!       Comp_Type    : Entity_Id := Empty; -- init to avoid warning
!       Deep_Choice  : Boolean;
!       Choice_Count : Natural := 0;
  
     --  Start of processing for Resolve_Delta_Record_Aggregate
  
*************** package body Sem_Aggr is
*** 4050,4055 ****
--- 4825,4832 ----
        while Present (Assoc) loop
           Choice := First (Choice_List (Assoc));
           while Present (Choice) loop
+             Choice_Count := Choice_Count + 1;
+ 
              Deep_Choice := Nkind (Choice) /= N_Identifier;
              if Deep_Choice then
                 Error_Msg_GNAT_Extension
*************** package body Sem_Aggr is
*** 4104,4109 ****
--- 4881,4997 ----
  
           Next (Assoc);
        end loop;
+ 
+       declare
+          type Choice_Info is record
+             Choice : Node_Id;
+             Depth  : Natural; -- 0 indicates non-record selector
+          end record;
+ 
+          Info          : array (1 .. Choice_Count) of Choice_Info;
+          Current_Index : Natural := 0;
+ 
+          function Choice_Depth (Choice : Node_Id) return Natural;
+          --  Given a choice in record delta aggregate, return 1 for
+          --  "Abc", 3 for "Aa.Bb.Cc", and 0 if anything other than
+          --  record component selectors are involved.
+ 
+          procedure Check_For_Bad_Overlap (Info1, Info2 : Choice_Info);
+          --  If the two choices overlap illegally, then generate an error
+          --  message. If deep delta aggregates are not enabled, then choices
+          --  should be N_Identifier nodes and depths should each be 1.
+ 
+          ------------------
+          -- Choice_Depth --
+          ------------------
+ 
+          function Choice_Depth (Choice : Node_Id) return Natural is
+             Prefix_Depth : Natural;
+          begin
+             case Nkind (Choice) is
+                when N_Identifier =>
+                   return 1;
+                when N_Selected_Component =>
+                   Prefix_Depth := Choice_Depth (Prefix (Choice));
+                   if Prefix_Depth = 0 then
+                      return 0;
+                   else
+                      return Prefix_Depth + 1;
+                   end if;
+                when others =>
+                   return 0;
+             end case;
+          end Choice_Depth;
+ 
+          ---------------------------
+          -- Check_For_Bad_Overlap --
+          ---------------------------
+ 
+          procedure Check_For_Bad_Overlap (Info1, Info2 : Choice_Info) is
+             Choice1, Choice2 : Node_Id;
+          begin
+             if Info1.Depth = 0 or Info2.Depth = 0 then
+                --  We're not interested in cases involving array indexing
+                return;
+             end if;
+             if Info1.Depth > Info2.Depth then
+                --  Normalize
+                Check_For_Bad_Overlap (Info1 => Info2, Info2 => Info1);
+                return;
+             end if;
+             pragma Assert (Info1.Depth <= Info2.Depth);
+             Choice1 := Info1.Choice;
+             Choice2 := Info2.Choice;
+ 
+             --  Adjust deeper choice to match depth of the other choice
+             for Count in 1 .. Info2.Depth - Info1.Depth loop
+                pragma Assert (Nkind (Choice2) = N_Selected_Component);
+                Choice2 := Prefix (Choice2);
+             end loop;
+ 
+             --  Traverse the two choices; return if Entity mismatch found.
+             loop
+                pragma Assert (Nkind (Choice1) = Nkind (Choice2));
+                if Nkind (Choice1) = N_Identifier then
+                   exit when Entity (Choice1) = Entity (Choice2);
+                   return; -- no overlap if entities differ
+                end if;
+                if Entity (Selector_Name (Choice1)) /=
+                   Entity (Selector_Name (Choice2))
+                then
+                   return; -- no overlap if selected entities differ
+                end if;
+                Choice1 := Prefix (Choice1);
+                Choice2 := Prefix (Choice2);
+             end loop;
+ 
+             --  Illegal overlap detected
+             Error_Msg_Sloc := Sloc (Info2.Choice);
+             Error_Msg_NE
+               ("record delta aggregate choice overlaps with choice & #",
+                Info1.Choice, Info2.Choice);
+          end Check_For_Bad_Overlap;
+ 
+       begin
+          Assoc := First (Deltas);
+          while Present (Assoc) loop
+             Choice := First (Choice_List (Assoc));
+             while Present (Choice) loop
+                Current_Index := Current_Index + 1;
+                Info (Current_Index) := (Choice => Choice,
+                                         Depth => Choice_Depth (Choice));
+ 
+                --  Check against previous Info elements
+                for Prev_Index in 1 .. Current_Index - 1 loop
+                   Check_For_Bad_Overlap
+                     (Info (Prev_Index), Info (Current_Index));
+                end loop;
+ 
+                Next (Choice);
+             end loop;
+             Next (Assoc);
+          end loop;
+       end;
     end Resolve_Delta_Record_Aggregate;
  
     ------------------------------
*************** package body Sem_Aggr is
*** 4519,4527 ****
        Loc    : constant Source_Ptr := Sloc (N);
        Typ    : constant Entity_Id := Etype (N);
  
!       Index  : Node_Id;
!       Lo, Hi : Node_Id;
!       Constr : constant List_Id := New_List;
  
     begin
        --  Attach the list of constraints at the location of the aggregate, so
--- 5407,5417 ----
        Loc    : constant Source_Ptr := Sloc (N);
        Typ    : constant Entity_Id := Etype (N);
  
!       Constr       : constant List_Id := New_List;
!       Index        : Node_Id;
!       Index_Typ    : Node_Id;
!       Known_Bounds : Boolean := True;
!       Lo, Hi       : Node_Id;
  
     begin
        --  Attach the list of constraints at the location of the aggregate, so
*************** package body Sem_Aggr is
*** 4529,4547 ****
  
        Set_Parent (Constr, N);
  
!       --  Create a constrained subtype with null dimensions
  
        Index := First_Index (Typ);
        while Present (Index) loop
           Get_Index_Bounds (Index, L => Lo, H => Hi);
  
!          --  The upper bound is the predecessor of the lower bound
  
!          Hi := Make_Attribute_Reference
!             (Loc,
!              Prefix         => New_Occurrence_Of (Etype (Index), Loc),
!              Attribute_Name => Name_Pred,
!              Expressions    => New_List (New_Copy_Tree (Lo)));
  
           Append (Make_Range (Loc, New_Copy_Tree (Lo), Hi), Constr);
           Analyze_And_Resolve (Last (Constr), Etype (Index));
--- 5419,5455 ----
  
        Set_Parent (Constr, N);
  
!       --  Populate the list with null ranges. The relevant RM clauses are
!       --  RM 4.3.3 (26.1) and RM 4.3.3 (26).
  
        Index := First_Index (Typ);
        while Present (Index) loop
           Get_Index_Bounds (Index, L => Lo, H => Hi);
+          Index_Typ := Etype (Index);
  
!          Known_Bounds := Known_Bounds
!            and Compile_Time_Known_Value (Lo)
!            and Compile_Time_Known_Value (Hi);
  
!          if Cannot_Compute_High_Bound (Index) then
!             --  The upper bound is the higger bound to avoid reporting
!             --  spurious errors; this value will not be used at runtime
!             --  because this aggregate will be replaced by a raise CE node,
!             --  or the index type is formal of a generic unit.
! 
!             Hi := New_Copy_Tree (Lo);
! 
!             Report_Null_Array_Constraint_Error (N, Index_Typ);
!             Set_Raises_Constraint_Error (N);
! 
!          else
!             --  The upper bound is the predecessor of the lower bound
! 
!             Hi := Make_Attribute_Reference (Loc,
!                     Prefix         => New_Occurrence_Of (Etype (Index), Loc),
!                     Attribute_Name => Name_Pred,
!                     Expressions    => New_List (New_Copy_Tree (Lo)));
!          end if;
  
           Append (Make_Range (Loc, New_Copy_Tree (Lo), Hi), Constr);
           Analyze_And_Resolve (Last (Constr), Etype (Index));
*************** package body Sem_Aggr is
*** 4549,4555 ****
           Next_Index (Index);
        end loop;
  
!       Set_Compile_Time_Known_Aggregate (N);
        Set_Aggregate_Bounds (N, First (Constr));
  
        return True;
--- 5457,5463 ----
           Next_Index (Index);
        end loop;
  
!       Set_Compile_Time_Known_Aggregate (N, Known_Bounds);
        Set_Aggregate_Bounds (N, First (Constr));
  
        return True;
*************** package body Sem_Aggr is
*** 5148,5153 ****
--- 6056,6067 ----
              Relocate := True;
           end if;
  
+          --  Obtain the corresponding mutably tagged types if we are looking
+          --  at a special internally generated class-wide equivalent type.
+ 
+          Expr_Type :=
+            Get_Corresponding_Mutably_Tagged_Type_If_Present (Expr_Type);
+ 
           Analyze_And_Resolve (Expr, Expr_Type);
           Check_Expr_OK_In_Limited_Aggregate (Expr);
           Check_Non_Static_Context (Expr);
*************** package body Sem_Aggr is
*** 5155,5161 ****
  
           --  Check wrong use of class-wide types
  
!          if Is_Class_Wide_Type (Etype (Expr)) then
              Error_Msg_N ("dynamically tagged expression not allowed", Expr);
           end if;
  
--- 6069,6077 ----
  
           --  Check wrong use of class-wide types
  
!          if Is_Class_Wide_Type (Etype (Expr))
!            and then not Is_Mutably_Tagged_Type (Expr_Type)
!          then
              Error_Msg_N ("dynamically tagged expression not allowed", Expr);
           end if;
  
*************** package body Sem_Aggr is
*** 5344,5358 ****
           return;
        end if;
  
-       --  A record aggregate can only use parentheses
- 
-       if Nkind (N) = N_Aggregate
-         and then Is_Homogeneous_Aggregate (N)
-       then
-          Error_Msg_N ("record aggregate must use (), not '[']", N);
-          return;
-       end if;
- 
        --  STEP 2: Verify aggregate structure
  
        Step_2 : declare
--- 6260,6265 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_aggr.ads gcc-15.1.0/gcc/ada/sem_aggr.ads
*** gcc-14.2.0/gcc/ada/sem_aggr.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_aggr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 27,32 ****
--- 27,33 ----
  --  part of Sem_Res, but is split off since the aggregate code is so complex.
  
  with Einfo.Entities; use Einfo.Entities;
+ with Sinfo.Nodes;    use Sinfo.Nodes;
  with Types;          use Types;
  
  package Sem_Aggr is
*************** package Sem_Aggr is
*** 44,49 ****
--- 45,65 ----
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
+    function Is_Indexed_Aggregate
+      (N           : N_Aggregate_Id;
+       Add_Unnamed : Node_Id;
+       New_Indexed : Node_Id) return Boolean;
+    --  Returns True if N satisfies the criteria for being an indexed aggregate,
+    --  that is, N is a container aggregate whose type has an Aggregate aspect
+    --  that specifies a New_Indexed operation (it's Present), the aggregate
+    --  is not a null aggregate, and either the type doesn't specify Add_Unnamed
+    --  or there is a component association that is an N_Component_Association
+    --  or is an N_Iterated_Component_Association with a Defining_Identifier.
+    --  Returns False otherwise. The actuals for the Add_Unnamed and New_Indexed
+    --  formals must be nodes that are names denoting the subprograms specified
+    --  for those operations in the Aggregate aspect of the aggregate's type,
+    --  or else Empty if the operation was not specified.
+ 
     function Is_Null_Aggregate (N : Node_Id) return Boolean;
     --  Returns True for a "[]" aggregate (an Ada 2022 feature), even after
     --  it has been transformed by expansion. Returns False otherwise.
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_attr.adb gcc-15.1.0/gcc/ada/sem_attr.adb
*** gcc-14.2.0/gcc/ada/sem_attr.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_attr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Gnatvsn;        use Gnatvsn;
*** 46,51 ****
--- 46,52 ----
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Opt;            use Opt;
*************** package body Sem_Attr is
*** 170,176 ****
       (Attribute_First_Valid                  |
        Attribute_Has_Same_Storage             |
        Attribute_Last_Valid                   |
!       Attribute_Max_Alignment_For_Allocation => True,
        others                                 => False);
  
     --  The following array is the list of attributes defined in the Ada 2022
--- 171,180 ----
       (Attribute_First_Valid                  |
        Attribute_Has_Same_Storage             |
        Attribute_Last_Valid                   |
!       Attribute_Max_Alignment_For_Allocation |
!       Attribute_Old                          |
!       Attribute_Overlaps_Storage             |
!       Attribute_Result                       => True,
        others                                 => False);
  
     --  The following array is the list of attributes defined in the Ada 2022
*************** package body Sem_Attr is
*** 181,187 ****
       (Attribute_Enum_Rep                     |
        Attribute_Enum_Val                     |
        Attribute_Index                        |
!       Attribute_Preelaborable_Initialization => True,
        others                                 => False);
  
     --  The following array contains all attributes that imply a modification
--- 185,193 ----
       (Attribute_Enum_Rep                     |
        Attribute_Enum_Val                     |
        Attribute_Index                        |
!       Attribute_Object_Size                  |
!       Attribute_Preelaborable_Initialization |
!       Attribute_Put_Image                    => True,
        others                                 => False);
  
     --  The following array contains all attributes that imply a modification
*************** package body Sem_Attr is
*** 982,996 ****
           if Is_Entity_Name (P) then
              Typ := Entity (P);
  
!             --  The reference may appear in an aggregate that has been expanded
!             --  into a loop. Locate scope of type definition, if any.
  
!             Scop := Current_Scope;
!             while Ekind (Scop) = E_Loop loop
!                Scop := Scope (Scop);
!             end loop;
  
!             if Is_Type (Typ) then
  
                 --  OK if we are within the scope of a limited type
                 --  let's mark the component as having per object constraint
--- 988,1000 ----
           if Is_Entity_Name (P) then
              Typ := Entity (P);
  
!             if Is_Type (Typ) then
  
!                --  The reference may appear in an aggregate that has been
!                --  expanded into a loop. Locate scope of type definition,
!                --  if any.
  
!                Scop := Current_Scope_No_Loops;
  
                 --  OK if we are within the scope of a limited type
                 --  let's mark the component as having per object constraint
*************** package body Sem_Attr is
*** 1014,1029 ****
                       Q : Node_Id := Parent (N);
  
                    begin
!                      while Present (Q)
!                        and then Nkind (Q) /= N_Component_Declaration
!                      loop
                          Q := Parent (Q);
                       end loop;
- 
-                      if Present (Q) then
-                         Set_Has_Per_Object_Constraint
-                           (Defining_Identifier (Q), True);
-                      end if;
                    end;
  
                    if Nkind (P) = N_Expanded_Name then
--- 1018,1037 ----
                       Q : Node_Id := Parent (N);
  
                    begin
!                      while Present (Q) loop
!                         if Nkind (Q) = N_Component_Declaration then
!                            Set_Has_Per_Object_Constraint
!                              (Defining_Identifier (Q), True);
!                            exit;
! 
!                         --  Prevent the search from going too far
! 
!                         elsif Is_Body_Or_Package_Declaration (Q) then
!                            exit;
!                         end if;
! 
                          Q := Parent (Q);
                       end loop;
                    end;
  
                    if Nkind (P) = N_Expanded_Name then
*************** package body Sem_Attr is
*** 1501,1525 ****
           --  appear on a subprogram renaming, when the renamed entity is an
           --  attribute reference.
  
!          --  Generating C code the internally built nested _postcondition
!          --  subprograms are inlined; after expanded, inlined aspects are
!          --  located in the internal block generated by the frontend.
! 
!          if Nkind (Subp_Decl) = N_Block_Statement
!            and then Modify_Tree_For_C
!            and then In_Inlined_Body
!          then
!             null;
! 
!          elsif Nkind (Subp_Decl) not in N_Abstract_Subprogram_Declaration
!                                       | N_Entry_Declaration
!                                       | N_Expression_Function
!                                       | N_Full_Type_Declaration
!                                       | N_Generic_Subprogram_Declaration
!                                       | N_Subprogram_Body
!                                       | N_Subprogram_Body_Stub
!                                       | N_Subprogram_Declaration
!                                       | N_Subprogram_Renaming_Declaration
           then
              return;
           end if;
--- 1509,1523 ----
           --  appear on a subprogram renaming, when the renamed entity is an
           --  attribute reference.
  
!          if Nkind (Subp_Decl) not in N_Abstract_Subprogram_Declaration
!                                    | N_Entry_Declaration
!                                    | N_Expression_Function
!                                    | N_Full_Type_Declaration
!                                    | N_Generic_Subprogram_Declaration
!                                    | N_Subprogram_Body
!                                    | N_Subprogram_Body_Stub
!                                    | N_Subprogram_Declaration
!                                    | N_Subprogram_Renaming_Declaration
           then
              return;
           end if;
*************** package body Sem_Attr is
*** 1528,1553 ****
  
           Legal   := True;
           Spec_Id := Unique_Defining_Entity (Subp_Decl);
- 
-          --  When generating C code, nested _postcondition subprograms are
-          --  inlined by the front end to avoid problems (when unnested) with
-          --  referenced itypes. Handle that here, since as part of inlining the
-          --  expander nests subprogram within a dummy procedure named _parent
-          --  (see Build_Postconditions_Procedure and Build_Body_To_Inline).
-          --  Hence, in this context, the spec_id of _postconditions is the
-          --  enclosing scope.
- 
-          if Modify_Tree_For_C
-            and then Chars (Spec_Id) = Name_uParent
-            and then Chars (Scope (Spec_Id)) = Name_uWrapped_Statements
-          then
-             --  This situation occurs only when analyzing the body-to-inline
- 
-             pragma Assert (Inside_A_Generic);
- 
-             Spec_Id := Scope (Spec_Id);
-             pragma Assert (Is_Inlined (Spec_Id));
-          end if;
        end Analyze_Attribute_Old_Result;
  
        -----------------------------
--- 1526,1531 ----
*************** package body Sem_Attr is
*** 1574,1579 ****
--- 1552,1564 ----
              then
                 Error_Msg_Ada_2022_Feature ("nonscalar ''Image", Sloc (P));
                 Error_Attr;
+ 
+             elsif Present (Image_Type)
+               and then Ekind (Image_Type) = E_Access_Attribute_Type
+             then
+                --  reject Some_Object'[Unchecked_]Access'[Wide_[Wide_]]Image
+                Error_Msg_N ("illegal Image attribute prefix", N);
+                Error_Attr;
              end if;
           end Check_Image_Type;
  
*************** package body Sem_Attr is
*** 1835,1841 ****
                 if Nkind (P) = N_Aspect_Specification then
                    return P_Type = Entity (P);
  
!                elsif Nkind (P) in N_Declaration then
                    return False;
                 end if;
  
--- 1820,1828 ----
                 if Nkind (P) = N_Aspect_Specification then
                    return P_Type = Entity (P);
  
!                --  Prevent the search from going too far
! 
!                elsif Is_Body_Or_Package_Declaration (P) then
                    return False;
                 end if;
  
*************** package body Sem_Attr is
*** 2007,2015 ****
              Resolve (E1, Any_Integer);
              Set_Etype (E1, Standard_Integer);
  
!             if not Is_OK_Static_Expression (E1)
!               or else Raises_Constraint_Error (E1)
!             then
                 Flag_Non_Static_Expr
                   ("expression for dimension must be static!", E1);
                 Error_Attr;
--- 1994,2000 ----
              Resolve (E1, Any_Integer);
              Set_Etype (E1, Standard_Integer);
  
!             if not Is_OK_Static_Expression (E1) then
                 Flag_Non_Static_Expr
                   ("expression for dimension must be static!", E1);
                 Error_Attr;
*************** package body Sem_Attr is
*** 2105,2111 ****
  
        procedure Check_Dereference is
        begin
- 
           --  Case of a subtype mark
  
           if Is_Entity_Name (P) and then Is_Type (Entity (P)) then
--- 2090,2095 ----
*************** package body Sem_Attr is
*** 2122,2132 ****
              --  designated type of the access type, since the type of the
              --  referenced array is this type (see AI95-00106).
  
!             --  As done elsewhere, freezing must not happen when preanalyzing
!             --  a pre- or postcondition or a default value for an object or for
!             --  a formal parameter.
  
!             if not In_Spec_Expression then
                 Freeze_Before (N, Designated_Type (P_Type));
              end if;
  
--- 2106,2117 ----
              --  designated type of the access type, since the type of the
              --  referenced array is this type (see AI95-00106).
  
!             --    However, we must not freeze the designated type during
!             --    preanalysis; neither under strict preanalysis nor when
!             --    preanalyzing a pre- or postcondition or a default value
!             --    for an object or for a formal parameter.
  
!             if not Preanalysis_Active then
                 Freeze_Before (N, Designated_Type (P_Type));
              end if;
  
*************** package body Sem_Attr is
*** 2281,2287 ****
           --  Now test for dynamic predicate
  
           if Has_Predicates (P_Type)
!            and then not (Has_Static_Predicate (P_Type))
           then
              Error_Attr_P
                ("prefix of % attribute may not have dynamic predicate");
--- 2266,2272 ----
           --  Now test for dynamic predicate
  
           if Has_Predicates (P_Type)
!            and then not Has_Static_Predicate (P_Type)
           then
              Error_Attr_P
                ("prefix of % attribute may not have dynamic predicate");
*************** package body Sem_Attr is
*** 2696,2701 ****
--- 2681,2693 ----
                 E1);
           end if;
  
+          --  Generate a conversion from a class-wide equivalent type (if
+          --  present) to the relevant actual type E2.
+ 
+          if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (E2)) then
+             Make_Mutably_Tagged_Conversion (E2);
+          end if;
+ 
           --  Check that the second argument is of the right type
  
           Analyze (E2);
*************** package body Sem_Attr is
*** 3219,3250 ****
  
        Check_Restriction_No_Use_Of_Attribute (N);
  
-       --  Deal with Ada 83 issues
- 
        if Comes_From_Source (N) then
-          if not Attribute_83 (Attr_Id) then
-             if Ada_Version = Ada_83 and then Comes_From_Source (N) then
-                Error_Msg_Name_1 := Aname;
-                Error_Msg_N ("(Ada 83) attribute% is not standard??", N);
-             end if;
  
!             if Attribute_Impl_Def (Attr_Id) then
!                Check_Restriction (No_Implementation_Attributes, N);
!             end if;
           end if;
-       end if;
  
!       --  Deal with Ada 2005 attributes that are implementation attributes
!       --  because they appear in a version of Ada before Ada 2005, ditto for
!       --  Ada 2012 and Ada 2022 attributes appearing in an earlier version.
  
!       if (Attribute_05 (Attr_Id) and then Ada_Version < Ada_2005)
!             or else
!          (Attribute_12 (Attr_Id) and then Ada_Version < Ada_2012)
!             or else
!          (Attribute_22 (Attr_Id) and then Ada_Version < Ada_2022)
!       then
!          Check_Restriction (No_Implementation_Attributes, N);
        end if;
  
        --   Remote access to subprogram type access attribute reference needs
--- 3211,3240 ----
  
        Check_Restriction_No_Use_Of_Attribute (N);
  
        if Comes_From_Source (N) then
  
!          --  Deal with Ada 83 issues
! 
!          if not Attribute_83 (Attr_Id) and then Ada_Version = Ada_83 then
!             Error_Msg_Name_1 := Aname;
!             Error_Msg_N ("(Ada 83) attribute% is not standard??", N);
           end if;
  
!          --  Deal with Ada 2005 attributes that are implementation attributes
!          --  because they appear in a version of Ada before Ada 2005, ditto for
!          --  Ada 2012 and Ada 2022 attributes appearing in an earlier version.
!          --  Likewise for GNAT implementation-defined attributes.
  
!          if (Attribute_05 (Attr_Id) and then Ada_Version < Ada_2005)
!                or else
!             (Attribute_12 (Attr_Id) and then Ada_Version < Ada_2012)
!                or else
!             (Attribute_22 (Attr_Id) and then Ada_Version < Ada_2022)
!                or else
!             Attribute_Impl_Def (Attr_Id)
!          then
!             Check_Restriction (No_Implementation_Attributes, N);
!          end if;
        end if;
  
        --   Remote access to subprogram type access attribute reference needs
*************** package body Sem_Attr is
*** 3423,3429 ****
        --  perform legality checks on the original tree.
  
        if Nkind (P) in N_Raise_xxx_Error then
!          Rewrite (N, Relocate_Node (P));
           P := Original_Node (P_Old);
        end if;
  
--- 3413,3419 ----
        --  perform legality checks on the original tree.
  
        if Nkind (P) in N_Raise_xxx_Error then
!          Rewrite (N, P);
           P := Original_Node (P_Old);
        end if;
  
*************** package body Sem_Attr is
*** 3431,3448 ****
  
        case Attr_Id is
  
-       --  Attributes related to Ada 2012 iterators. Attribute specifications
-       --  exist for these, but they cannot be queried.
- 
-       when Attribute_Constant_Indexing
-          | Attribute_Default_Iterator
-          | Attribute_Implicit_Dereference
-          | Attribute_Iterator_Element
-          | Attribute_Iterable
-          | Attribute_Variable_Indexing
-       =>
-          Error_Msg_N ("illegal attribute", N);
- 
        --  Internal attributes used to deal with Ada 2012 delayed aspects. These
        --  were already rejected by the parser. Thus they shouldn't appear here.
  
--- 3421,3426 ----
*************** package body Sem_Attr is
*** 4041,4047 ****
                    if (Is_Type (Tsk) and then Tsk = S)
                      or else (not Is_Type (Tsk)
                                and then Etype (Tsk) = S
!                               and then not (Comes_From_Source (S)))
                    then
                       null;
                    else
--- 4019,4025 ----
                    if (Is_Type (Tsk) and then Tsk = S)
                      or else (not Is_Type (Tsk)
                                and then Etype (Tsk) = S
!                               and then not Comes_From_Source (S))
                    then
                       null;
                    else
*************** package body Sem_Attr is
*** 5512,5534 ****
           --  the case, then the aspect or pragma is illegal. Return as analysis
           --  cannot be carried out.
  
!          --  The exception to this rule is when generating C since in this case
!          --  postconditions are inlined.
! 
!          if No (Spec_Id)
!            and then Modify_Tree_For_C
!            and then In_Inlined_Body
!          then
!             Spec_Id := Entity (P);
! 
!          elsif not Legal then
              return;
           end if;
  
           --  The prefix must be preanalyzed as the full analysis will take
           --  place during expansion.
  
!          Preanalyze_And_Resolve (P);
  
           --  Ensure that the prefix does not contain attributes 'Old or 'Result
  
--- 5490,5538 ----
           --  the case, then the aspect or pragma is illegal. Return as analysis
           --  cannot be carried out.
  
!          if not Legal then
              return;
           end if;
  
           --  The prefix must be preanalyzed as the full analysis will take
           --  place during expansion.
  
!          --  If the attribute reference has an expected type or shall resolve
!          --  to a given type, the same applies to the prefix; otherwise the
!          --  prefix shall be resolved independently of context (RM 6.1.1(8/5)).
! 
!          if Nkind (Parent (N)) = N_Qualified_Expression then
!             Preanalyze_And_Resolve (P, Etype (Parent (N)));
! 
!          --  An special case occurs when the prefix is an overloaded function
!          --  call without formals; in order to identify such case we preanalyze
!          --  a duplicate of the prefix ignoring errors.
! 
!          else
!             declare
!                P_Copy : constant Node_Id := New_Copy_Tree (P);
! 
!             begin
!                Set_Parent (P_Copy, Parent (P));
! 
!                Preanalyze_And_Resolve_Without_Errors (P_Copy);
! 
!                --  In the special case of a call to an overloaded function
!                --  without extra formals we resolve it using its returned
!                --  type (which is the unique valid call); if this not the
!                --  case we will report the error later, as part of the
!                --  regular analysis of the full expression.
! 
!                if Nkind (P_Copy) = N_Function_Call
!                  and then Is_Overloaded (Name (P_Copy))
!                  and then No (First_Formal (Entity (Name (P_Copy))))
!                then
!                   Preanalyze_And_Resolve (P, Etype (Name (P_Copy)));
!                else
!                   Preanalyze_And_Resolve (P);
!                end if;
!             end;
!          end if;
  
           --  Ensure that the prefix does not contain attributes 'Old or 'Result
  
*************** package body Sem_Attr is
*** 5934,5943 ****
  
           --  Local variables
  
-          In_Inlined_C_Postcondition : constant Boolean :=
-                                         Modify_Tree_For_C
-                                           and then In_Inlined_Body;
- 
           Legal   : Boolean;
           Pref_Id : Entity_Id;
           Spec_Id : Entity_Id;
--- 5938,5943 ----
*************** package body Sem_Attr is
*** 5968,5980 ****
           --  the case, then the aspect or pragma is illegal. Return as analysis
           --  cannot be carried out.
  
!          --  The exception to this rule is when generating C since in this case
!          --  postconditions are inlined.
! 
!          if No (Spec_Id) and then In_Inlined_C_Postcondition then
!             Spec_Id := Entity (P);
! 
!          elsif not Legal then
              Error_Attr ("prefix of % attribute must be a function", P);
           end if;
  
--- 5968,5974 ----
           --  the case, then the aspect or pragma is illegal. Return as analysis
           --  cannot be carried out.
  
!          if not Legal then
              Error_Attr ("prefix of % attribute must be a function", P);
           end if;
  
*************** package body Sem_Attr is
*** 5984,5994 ****
           --  Instead, rewrite the attribute as a reference to formal parameter
           --  _Result of the _Wrapped_Statements procedure.
  
!          if Chars (Spec_Id) = Name_uWrapped_Statements
!            or else
!              (In_Inlined_C_Postcondition
!                and then Nkind (Parent (Spec_Id)) = N_Block_Statement)
!          then
              Rewrite (N, Make_Identifier (Loc, Name_uResult));
  
              --  The type of formal parameter _Result is that of the function
--- 5978,5984 ----
           --  Instead, rewrite the attribute as a reference to formal parameter
           --  _Result of the _Wrapped_Statements procedure.
  
!          if Chars (Spec_Id) = Name_uWrapped_Statements then
              Rewrite (N, Make_Identifier (Loc, Name_uResult));
  
              --  The type of formal parameter _Result is that of the function
*************** package body Sem_Attr is
*** 6255,6261 ****
  
        when Attribute_Round =>
           Check_E1;
!          Check_Decimal_Fixed_Point_Type;
           Set_Etype (N, P_Base_Type);
  
           --  Because the context is universal_real (3.5.10(12)) it is a
--- 6245,6256 ----
  
        when Attribute_Round =>
           Check_E1;
!          Check_Type;
! 
!          if not Is_Fixed_Point_Type (P_Type) then
!             Error_Attr_P ("prefix of % attribute must be fixed point type");
!          end if;
! 
           Set_Etype (N, P_Base_Type);
  
           --  Because the context is universal_real (3.5.10(12)) it is a
*************** package body Sem_Attr is
*** 6441,6489 ****
           Check_Not_CPP_Type;
           Set_Etype (N, Universal_Integer);
  
-          --  If we are processing pragmas Compile_Time_Warning and Compile_
-          --  Time_Errors after the back end has been called and this occurrence
-          --  of 'Size is known at compile time then it is safe to perform this
-          --  evaluation. Needed to perform the static evaluation of the full
-          --  boolean expression of these pragmas. Note that Known_RM_Size is
-          --  sometimes True when Size_Known_At_Compile_Time is False, when the
-          --  back end has computed it.
- 
-          if In_Compile_Time_Warning_Or_Error
-            and then Is_Entity_Name (P)
-            and then (Is_Type (Entity (P))
-                       or else Ekind (Entity (P)) = E_Enumeration_Literal)
-            and then (Known_RM_Size (Entity (P))
-                        or else Size_Known_At_Compile_Time (Entity (P)))
-          then
-             declare
-                Prefix_E : Entity_Id := Entity (P);
-                Siz      : Uint;
- 
-             begin
-                --  Handle private and incomplete types
- 
-                if Present (Underlying_Type (Prefix_E)) then
-                   Prefix_E := Underlying_Type (Prefix_E);
-                end if;
- 
-                if Known_Static_RM_Size (Prefix_E) then
-                   Siz := RM_Size (Prefix_E);
-                else
-                   Siz := Esize (Prefix_E);
-                end if;
- 
-                --  Protect the frontend against cases where the attribute
-                --  Size_Known_At_Compile_Time is set, but the Esize value
-                --  is not available (see Einfo.ads).
- 
-                if Present (Siz) then
-                   Rewrite (N, Make_Integer_Literal (Sloc (N), Siz));
-                   Analyze (N);
-                end if;
-             end;
-          end if;
- 
        -----------
        -- Small --
        -----------
--- 6436,6441 ----
*************** package body Sem_Attr is
*** 6676,6681 ****
--- 6628,6692 ----
  
        --  Shares processing with Pred attribute
  
+       -----------
+       -- Super --
+       -----------
+ 
+       when Attribute_Super =>
+          Error_Msg_Name_1 := Aname;
+          Error_Msg_GNAT_Extension ("attribute %", Sloc (N));
+ 
+          Check_E0;
+          Check_Dereference;
+ 
+          --  Verify that we are looking at a type with ancestors
+ 
+          if not Is_Record_Type (P_Type)
+            or else not Is_Tagged_Type (P_Type)
+          then
+             Error_Attr_P
+               ("prefix type of % attribute must be tagged or class-wide");
+          end if;
+ 
+          --  Verify that the immediate parent type is suitable for 'Super
+ 
+          declare
+             Parents : constant Elist_Id :=
+               --  Grab all immediate ancestor types of the prefix's type
+ 
+               Visible_Ancestors
+                 ((if Ekind (P_Type) = E_Class_Wide_Type then Etype (P_Type)
+                   else P_Type));
+          begin
+             --  No parent type to reference
+ 
+             if Is_Empty_Elmt_List (Parents) then
+                Error_Attr_P ("prefix type of % must be type extension");
+ 
+             --  We can't grant access of a child to a parent's private part
+ 
+             elsif Depends_On_Private (P_Type) then
+                Error_Attr_P ("prefix type of % is a private extension");
+ 
+             --  Disallow view conversions to interfaces in order to avoid
+             --  depending on whether an interface type is used as a parent
+             --  or progenitor type.
+ 
+             elsif Is_Interface (Node (First_Elmt (Parents))) then
+                Error_Attr_P ("type of % cannot be an interface");
+             end if;
+ 
+             --  Generate a view conversion and analyze it
+ 
+             Rewrite (N,
+               Make_Type_Conversion (Loc,
+                 Expression   => Relocate_Node (P),
+                 Subtype_Mark =>
+                   New_Occurrence_Of (Node (First_Elmt (Parents)), Loc)));
+ 
+             Analyze_And_Resolve (N);
+          end;
+ 
        --------------------------------
        -- System_Allocator_Alignment --
        --------------------------------
*************** package body Sem_Attr is
*** 6691,6697 ****
           Check_E0;
           Check_Dereference;
  
!          if not Is_Tagged_Type (P_Type) then
              Error_Attr_P ("prefix of % attribute must be tagged");
  
           --  Next test does not apply to generated code why not, and what does
--- 6702,6711 ----
           Check_E0;
           Check_Dereference;
  
!          if Is_Mutably_Tagged_CW_Equivalent_Type (P_Type) then
!             null;
! 
!          elsif not Is_Tagged_Type (P_Type) then
              Error_Attr_P ("prefix of % attribute must be tagged");
  
           --  Next test does not apply to generated code why not, and what does
*************** package body Sem_Attr is
*** 6843,6850 ****
        --------------
  
        when Attribute_Type_Key => Type_Key : declare
!          Full_Name  : constant String_Id :=
!                         Fully_Qualified_Name_String (Entity (P));
  
           CRC : CRC32;
           --  The computed signature for the type
--- 6857,6864 ----
        --------------
  
        when Attribute_Type_Key => Type_Key : declare
!          Full_Name : constant String_Id :=
!            Fully_Qualified_Name_String (Entity (P), Append_NUL => False);
  
           CRC : CRC32;
           --  The computed signature for the type
*************** package body Sem_Attr is
*** 6977,6985 ****
           Start_String;
           Deref := False;
  
!          --  Copy all characters in Full_Name but the trailing NUL
  
!          for J in 1 .. String_Length (Full_Name) - 1 loop
              Store_String_Char (Get_String_Char (Full_Name, Pos (J)));
           end loop;
  
--- 6991,6999 ----
           Start_String;
           Deref := False;
  
!          --  Copy all characters in Full_Name
  
!          for J in 1 .. String_Length (Full_Name) loop
              Store_String_Char (Get_String_Char (Full_Name, Pos (J)));
           end loop;
  
*************** package body Sem_Attr is
*** 7804,7809 ****
--- 7818,7826 ----
        --  Computes the Fore value for the current attribute prefix, which is
        --  known to be a static fixed-point type. Used by Fore and Width.
  
+       function Full_Type (Typ : Entity_Id) return Entity_Id;
+       --  Return the Underlying_Type of Typ if it exists, otherwise return Typ
+ 
        function Mantissa return Uint;
        --  Returns the Mantissa value for the prefix type
  
*************** package body Sem_Attr is
*** 7867,7873 ****
           T : constant Entity_Id := Etype (N);
  
        begin
!          Fold_Uint (N, Val, False);
  
           --  Check that result is in bounds of the type if it is static
  
--- 7884,7896 ----
           T : constant Entity_Id := Etype (N);
  
        begin
!          --  If we are processing a pragma Compile_Time_{Warning,Error} after
!          --  the back end has been called and the value of this attribute is
!          --  known at compile time, then it is safe to perform its evaluation
!          --  as static. This is needed to perform the evaluation of the full
!          --  boolean expression of these pragmas.
! 
!          Fold_Uint (N, Val, Static => In_Compile_Time_Warning_Or_Error);
  
           --  Check that result is in bounds of the type if it is static
  
*************** package body Sem_Attr is
*** 7931,7936 ****
--- 7954,7975 ----
           return R;
        end Fore_Value;
  
+       ---------------
+       -- Full_Type --
+       ---------------
+ 
+       function Full_Type (Typ : Entity_Id) return Entity_Id is
+          Underlying_Typ : constant Entity_Id := Underlying_Type (Typ);
+ 
+       begin
+          if Present (Underlying_Typ) then
+             return Underlying_Typ;
+ 
+          else
+             return Typ;
+          end if;
+       end Full_Type;
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Sem_Attr is
*** 8101,8106 ****
--- 8140,8152 ----
  
        if Nkind (N) /= N_Attribute_Reference then
           return;
+ 
+       --  No evaluation required under strict preanalysis because locating
+       --  static expressions is not needed; this also minimizes making tree
+       --  modifications during strict preanalysis.
+ 
+       elsif In_Strict_Preanalysis then
+          return;
        end if;
  
        Aname := Attribute_Name (N);
*************** package body Sem_Attr is
*** 8176,8188 ****
        then
           declare
              Lit : constant Entity_Id := Expr_Value_E (P);
              Str : String_Id;
  
           begin
              Start_String;
!             Get_Unqualified_Decoded_Name_String (Chars (Lit));
!             Set_Casing (All_Upper_Case);
!             Store_String_Chars (Name_Buffer (1 .. Name_Len));
              Str := End_String;
  
              Rewrite (N, Make_String_Literal (Loc, Strval => Str));
--- 8222,8247 ----
        then
           declare
              Lit : constant Entity_Id := Expr_Value_E (P);
+             Typ : constant Entity_Id := Etype (Entity (P));
              Str : String_Id;
  
           begin
              Start_String;
! 
!             --  If Discard_Names is in effect for the type, then we emit the
!             --  numeric representation of the prefix literal 'Pos attribute,
!             --  prefixed with a single space.
! 
!             if Discard_Names (Typ) then
!                UI_Image (Enumeration_Pos (Lit), Decimal);
!                Store_String_Char  (' ');
!                Store_String_Chars (UI_Image_Buffer (1 .. UI_Image_Length));
!             else
!                Get_Unqualified_Decoded_Name_String (Chars (Lit));
!                Set_Casing (All_Upper_Case);
!                Store_String_Chars (Name_Buffer (1 .. Name_Len));
!             end if;
! 
              Str := End_String;
  
              Rewrite (N, Make_String_Literal (Loc, Strval => Str));
*************** package body Sem_Attr is
*** 8592,8616 ****
        --  for a size from an attribute definition clause). At this stage, this
        --  can happen only for types (e.g. record types) for which the size is
        --  always non-static. We exclude generic types from consideration (since
!       --  they have bogus sizes set within templates). We can also fold
!       --  Max_Size_In_Storage_Elements in the same cases.
  
!       elsif (Id = Attribute_Size or
               Id = Attribute_Max_Size_In_Storage_Elements)
          and then Is_Type (P_Entity)
          and then not Is_Generic_Type (P_Entity)
!         and then Known_Static_RM_Size (P_Entity)
        then
           declare
!             Attr_Value : Uint := RM_Size (P_Entity);
           begin
              if Id = Attribute_Max_Size_In_Storage_Elements then
!                Attr_Value := (Attr_Value + System_Storage_Unit - 1)
!                              / System_Storage_Unit;
              end if;
              Compile_Time_Known_Attribute (N, Attr_Value);
           end;
-          return;
  
        --  We can fold 'Alignment applied to a type if the alignment is known
        --  (as happens for an alignment from an attribute definition clause).
--- 8651,8690 ----
        --  for a size from an attribute definition clause). At this stage, this
        --  can happen only for types (e.g. record types) for which the size is
        --  always non-static. We exclude generic types from consideration (since
!       --  they have bogus sizes set within templates).
  
!       elsif Id = Attribute_Size
!         and then Is_Type (P_Entity)
!         and then not Is_Generic_Type (P_Entity)
!         and then Known_Static_RM_Size (Full_Type (P_Entity))
!       then
!          Compile_Time_Known_Attribute (N, RM_Size (Full_Type (P_Entity)));
!          return;
! 
!       --  We can also fold 'Object_Size applied to a type if the object size is
!       --  known (as happens for a size from an attribute definition clause). At
!       --  this stage, this can happen only for types (e.g. record types) for
!       --  which the size is always non-static. We exclude generic types from
!       --  consideration (since they have bogus sizes set within templates).
!       --  We can also fold Max_Size_In_Storage_Elements in the same cases.
! 
!       elsif (Id = Attribute_Object_Size or
               Id = Attribute_Max_Size_In_Storage_Elements)
          and then Is_Type (P_Entity)
          and then not Is_Generic_Type (P_Entity)
!         and then Known_Static_Esize (Full_Type (P_Entity))
        then
           declare
!             Attr_Value : Uint := Esize (Full_Type (P_Entity));
! 
           begin
              if Id = Attribute_Max_Size_In_Storage_Elements then
!                Attr_Value := (Attr_Value + System_Storage_Unit - 1) /
!                                                            System_Storage_Unit;
              end if;
              Compile_Time_Known_Attribute (N, Attr_Value);
+             return;
           end;
  
        --  We can fold 'Alignment applied to a type if the alignment is known
        --  (as happens for an alignment from an attribute definition clause).
*************** package body Sem_Attr is
*** 8621,8629 ****
        elsif Id = Attribute_Alignment
          and then Is_Type (P_Entity)
          and then not Is_Generic_Type (P_Entity)
!         and then Known_Alignment (P_Entity)
        then
!          Compile_Time_Known_Attribute (N, Alignment (P_Entity));
           return;
  
        --  If this is an access attribute that is known to fail accessibility
--- 8695,8703 ----
        elsif Id = Attribute_Alignment
          and then Is_Type (P_Entity)
          and then not Is_Generic_Type (P_Entity)
!         and then Known_Alignment (Full_Type (P_Entity))
        then
!          Compile_Time_Known_Attribute (N, Alignment (Full_Type (P_Entity)));
           return;
  
        --  If this is an access attribute that is known to fail accessibility
*************** package body Sem_Attr is
*** 8678,8687 ****
--- 8752,8771 ----
        --  If the root type or base type is generic, then we cannot fold. This
        --  test is needed because subtypes of generic types are not always
        --  marked as being generic themselves (which seems odd???)
+       --
+       --  Should this situation be addressed instead by either
+       --     a) setting Is_Generic_Type in more cases
+       --  or b) replacing preceding calls to Is_Generic_Type with calls to
+       --        Sem_Util.Some_New_Function
+       --  so that we wouldn't have to deal with these cases here ???
  
        if Is_Generic_Type (P_Root_Type)
          or else Is_Generic_Type (P_Base_Type)
+         or else (Present (Associated_Node_For_Itype (P_Base_Type))
+                   and then Is_Generic_Type (Defining_Identifier
+                              (Associated_Node_For_Itype (P_Base_Type))))
        then
+          Set_Is_Static_Expression (N, False);
           return;
        end if;
  
*************** package body Sem_Attr is
*** 8722,8735 ****
        --  Unconstrained_Array are again exceptions, because they apply as well
        --  to unconstrained types.
  
        --  In addition Component_Size is an exception since it is possibly
        --  foldable, even though it is never static, and it does apply to
        --  unconstrained arrays. Furthermore, it is essential to fold this
        --  in the packed case, since otherwise the value will be incorrect.
! 
!       --  Folding can also be done for Preelaborable_Initialization based on
!       --  whether the prefix type has preelaborable initialization, even though
!       --  the attribute is nonstatic.
  
        elsif Id = Attribute_Atomic_Always_Lock_Free      or else
              Id = Attribute_Definite                     or else
--- 8806,8822 ----
        --  Unconstrained_Array are again exceptions, because they apply as well
        --  to unconstrained types.
  
+       --  Folding can also be done for Preelaborable_Initialization based on
+       --  whether the prefix type has preelaborable initialization, even though
+       --  the attribute is nonstatic.
+ 
        --  In addition Component_Size is an exception since it is possibly
        --  foldable, even though it is never static, and it does apply to
        --  unconstrained arrays. Furthermore, it is essential to fold this
        --  in the packed case, since otherwise the value will be incorrect.
!       --  Moreover, the exact same reasoning can be applied to Alignment.
!       --  Likewise for the various size attributes, although folding will
!       --  never succeed for them with unconstrained arrays.
  
        elsif Id = Attribute_Atomic_Always_Lock_Free      or else
              Id = Attribute_Definite                     or else
*************** package body Sem_Attr is
*** 8740,8746 ****
              Id = Attribute_Preelaborable_Initialization or else
              Id = Attribute_Type_Class                   or else
              Id = Attribute_Unconstrained_Array          or else
!             Id = Attribute_Component_Size
        then
           Static := False;
           Set_Is_Static_Expression (N, False);
--- 8827,8839 ----
              Id = Attribute_Preelaborable_Initialization or else
              Id = Attribute_Type_Class                   or else
              Id = Attribute_Unconstrained_Array          or else
!             Id = Attribute_Component_Size               or else
!             Id = Attribute_Alignment                    or else
!             Id = Attribute_Machine_Size                 or else
!             Id = Attribute_Object_Size                  or else
!             Id = Attribute_Size                         or else
!             Id = Attribute_VADS_Size                    or else
!             Id = Attribute_Value_Size
        then
           Static := False;
           Set_Is_Static_Expression (N, False);
*************** package body Sem_Attr is
*** 8915,8933 ****
  
        case Id is
  
-       --  Attributes related to Ada 2012 iterators; nothing to evaluate for
-       --  these.
- 
-       when Attribute_Constant_Indexing
-          | Attribute_Default_Iterator
-          | Attribute_Implicit_Dereference
-          | Attribute_Iterator_Element
-          | Attribute_Iterable
-          | Attribute_Reduce
-          | Attribute_Variable_Indexing
-       =>
-          null;
- 
        --  Internal attributes used to deal with Ada 2012 delayed aspects.
        --  These were already rejected by the parser. Thus they shouldn't
        --  appear here.
--- 9008,9013 ----
*************** package body Sem_Attr is
*** 8958,8964 ****
        ---------------
  
        when Attribute_Alignment => Alignment_Block : declare
!          P_TypeA : constant Entity_Id := Underlying_Type (P_Type);
  
        begin
           --  Fold if alignment is set and not otherwise
--- 9038,9044 ----
        ---------------
  
        when Attribute_Alignment => Alignment_Block : declare
!          P_TypeA : constant Entity_Id := Full_Type (P_Type);
  
        begin
           --  Fold if alignment is set and not otherwise
*************** package body Sem_Attr is
*** 9346,9352 ****
        -----------
  
        --  Image is a scalar attribute, but is never static, because it is
!       --  not a static function (having a non-scalar argument (RM 4.9(22))
        --  However, we can constant-fold the image of an enumeration literal
        --  if names are available and default Image implementation has not
        --  been overridden.
--- 9426,9432 ----
        -----------
  
        --  Image is a scalar attribute, but is never static, because it is
!       --  not a static function (having a non-scalar argument (RM 4.9(22)).
        --  However, we can constant-fold the image of an enumeration literal
        --  if names are available and default Image implementation has not
        --  been overridden.
*************** package body Sem_Attr is
*** 9690,9696 ****
        --  Note: Machine_Size is identical to Object_Size
  
        when Attribute_Machine_Size => Machine_Size : declare
!          P_TypeA : constant Entity_Id := Underlying_Type (P_Type);
  
        begin
           if Known_Esize (P_TypeA) then
--- 9770,9776 ----
        --  Note: Machine_Size is identical to Object_Size
  
        when Attribute_Machine_Size => Machine_Size : declare
!          P_TypeA : constant Entity_Id := Full_Type (P_Type);
  
        begin
           if Known_Esize (P_TypeA) then
*************** package body Sem_Attr is
*** 9825,9837 ****
        --  Storage_Unit boundary. We can fold any cases for which the size
        --  is known by the front end.
  
!       when Attribute_Max_Size_In_Storage_Elements =>
!          if Known_Esize (P_Type) then
              Fold_Uint (N,
!               (Esize (P_Type) + System_Storage_Unit - 1) /
                                            System_Storage_Unit,
                 Static);
           end if;
  
        --------------------
        -- Mechanism_Code --
--- 9905,9921 ----
        --  Storage_Unit boundary. We can fold any cases for which the size
        --  is known by the front end.
  
!       when Attribute_Max_Size_In_Storage_Elements => Max_Size : declare
!          P_TypeA : constant Entity_Id := Full_Type (P_Type);
! 
!       begin
!          if Known_Esize (P_TypeA) then
              Fold_Uint (N,
!               (Esize (P_TypeA) + System_Storage_Unit - 1) /
                                            System_Storage_Unit,
                 Static);
           end if;
+       end Max_Size;
  
        --------------------
        -- Mechanism_Code --
*************** package body Sem_Attr is
*** 9945,9951 ****
        --  type and can be folded if this value is known.
  
        when Attribute_Object_Size => Object_Size : declare
!          P_TypeA : constant Entity_Id := Underlying_Type (P_Type);
  
        begin
           if Known_Esize (P_TypeA) then
--- 10029,10035 ----
        --  type and can be folded if this value is known.
  
        when Attribute_Object_Size => Object_Size : declare
!          P_TypeA : constant Entity_Id := Full_Type (P_Type);
  
        begin
           if Known_Esize (P_TypeA) then
*************** package body Sem_Attr is
*** 10104,10109 ****
--- 10188,10200 ----
           end case;
        end Range_Length;
  
+       ------------
+       -- Reduce --
+       ------------
+ 
+       when Attribute_Reduce =>
+          null;
+ 
        ---------
        -- Ref --
        ---------
*************** package body Sem_Attr is
*** 10263,10269 ****
           | Attribute_VADS_Size
        =>
           Size : declare
!             P_TypeA : constant Entity_Id := Underlying_Type (P_Type);
  
           begin
              pragma Assert
--- 10354,10360 ----
           | Attribute_VADS_Size
        =>
           Size : declare
!             P_TypeA : constant Entity_Id := Full_Type (P_Type);
  
           begin
              pragma Assert
*************** package body Sem_Attr is
*** 10419,10425 ****
        ----------------
  
        when Attribute_Type_Class => Type_Class : declare
!          Typ : constant Entity_Id := Underlying_Type (P_Base_Type);
           Id  : RE_Id;
  
        begin
--- 10510,10516 ----
        ----------------
  
        when Attribute_Type_Class => Type_Class : declare
!          Typ : constant Entity_Id := Full_Type (P_Base_Type);
           Id  : RE_Id;
  
        begin
*************** package body Sem_Attr is
*** 10483,10489 ****
        -------------------------
  
        when Attribute_Unconstrained_Array => Unconstrained_Array : declare
!          Typ : constant Entity_Id := Underlying_Type (P_Type);
  
        begin
           Rewrite (N, New_Occurrence_Of (
--- 10574,10580 ----
        -------------------------
  
        when Attribute_Unconstrained_Array => Unconstrained_Array : declare
!          Typ : constant Entity_Id := Full_Type (P_Type);
  
        begin
           Rewrite (N, New_Occurrence_Of (
*************** package body Sem_Attr is
*** 10541,10547 ****
        --  it is annoying that a size of zero means two things!
  
        when Attribute_Value_Size => Value_Size : declare
!          P_TypeA : constant Entity_Id := Underlying_Type (P_Type);
  
        begin
           pragma Assert
--- 10632,10638 ----
        --  it is annoying that a size of zero means two things!
  
        when Attribute_Value_Size => Value_Size : declare
!          P_TypeA : constant Entity_Id := Full_Type (P_Type);
  
        begin
           pragma Assert
*************** package body Sem_Attr is
*** 10618,10624 ****
                 else
                    --  For floating-point, we have +N.dddE+nnn where length
                    --  of ddd is determined by type'Digits - 1, but is one
!                   --  if Digits is one (RM 3.5 (33)).
  
                    --  nnn is set to 2 for Short_Float and Float (32 bit
                    --  floats), and 3 for Long_Float and Long_Long_Float.
--- 10709,10715 ----
                 else
                    --  For floating-point, we have +N.dddE+nnn where length
                    --  of ddd is determined by type'Digits - 1, but is one
!                   --  if Digits is one (RM 4.10 (13)).
  
                    --  nnn is set to 2 for Short_Float and Float (32 bit
                    --  floats), and 3 for Long_Float and Long_Long_Float.
*************** package body Sem_Attr is
*** 10656,10662 ****
                 --  The non-null case depends on the specific real type
  
                 else
!                   --  For fixed-point type width is Fore + 1 + Aft (RM 3.5(34))
  
                    Fold_Uint
                      (N, UI_From_Int (Fore_Value + 1) + Aft_Value (P_Type),
--- 10747,10754 ----
                 --  The non-null case depends on the specific real type
  
                 else
!                   --  For fixed-point type width is Fore + 1 + Aft
!                   --  (RM 4.10(14)).
  
                    Fold_Uint
                      (N, UI_From_Int (Fore_Value + 1) + Aft_Value (P_Type),
*************** package body Sem_Attr is
*** 10830,10838 ****
                       --  that accommodates the Pos of the largest value, which
                       --  is the high bound of the range + one for the space.
  
!                      W := 1;
!                      T := Hi;
!                      while T /= 0 loop
                          T := T / 10;
                          W := W + 1;
                       end loop;
--- 10922,10931 ----
                       --  that accommodates the Pos of the largest value, which
                       --  is the high bound of the range + one for the space.
  
!                      W := 1;      --  one character for the leading space
!                      W := W + 1;  --  one character for the 0 .. 9 digit
!                      T := Hi;     --  one character for every decimal digit
!                      while T >= 10 loop
                          T := T / 10;
                          W := W + 1;
                       end loop;
*************** package body Sem_Attr is
*** 10959,10964 ****
--- 11052,11058 ----
           | Attribute_Storage_Size
           | Attribute_Storage_Unit
           | Attribute_Stub_Type
+          | Attribute_Super
           | Attribute_System_Allocator_Alignment
           | Attribute_Tag
           | Attribute_Target_Name
*************** package body Sem_Attr is
*** 11130,11136 ****
        --  If attribute was universal type, reset to actual type
  
        if Is_Universal_Numeric_Type (Etype (N)) then
!          Set_Etype (N, Typ);
        end if;
  
        --  A Ghost attribute must appear in a specific context
--- 11224,11261 ----
        --  If attribute was universal type, reset to actual type
  
        if Is_Universal_Numeric_Type (Etype (N)) then
! 
!          --  If evaluating N might yield a value that that does not satisfy
!          --  the constraints of the subtype Typ, then we need to set the
!          --  Etype of N to "Base_Type (Typ)" instead of "Typ".
!          --  Otherwise we can end up incorrectly assuming that the value
!          --  belongs to the subtype and, as a result, eliminating required
!          --  runtime checks.
!          --  Rather than trying to analyze the expression and the subtype to
!          --  test for this case, it seems better to take the simpler approach;
!          --  that is, to ignore this opportunity for an insignificant
!          --  micro-optimization and to instead call Base_Type unconditionally.
!          --  But that doesn't work; it turns out that there is a corner case
!          --  where (for reasons that are not completely understood) we need
!          --  to set the Etype to Typ for reasons of correctness. See below
!          --  for description of this case.
! 
!          if Attr_Id = Attribute_Pos
!            and then not Comes_From_Source (N)
!          then
!             --  This case occurs when indexing into a packed array and
!             --  the index type is an enumeration type that is subject to
!             --  an enumeration representation specification.
!             --  See the "Analyze_And_Resolve (Expr_Copy, Standard_Natural);"
!             --  statement in exp_pakd.adb .
!             --  For reasons that are not understood, we see a regression test
!             --  failure if we don't handle that case by calling Set_Etype here
!             --  with "Typ" instead of "Base_Type (Typ)").
! 
!             Set_Etype (N, Typ);
!          else
!             Set_Etype (N, Base_Type (Typ));
!          end if;
        end if;
  
        --  A Ghost attribute must appear in a specific context
*************** package body Sem_Attr is
*** 11173,11179 ****
                 if Is_Overloaded (P) then
                    Get_First_Interp (P, Index, It);
                    while Present (It.Nam) loop
!                      if Type_Conformant (Designated_Type (Typ), It.Nam) then
                          Set_Entity (P, It.Nam);
  
                          --  The prefix is definitely NOT overloaded anymore at
--- 11298,11339 ----
                 if Is_Overloaded (P) then
                    Get_First_Interp (P, Index, It);
                    while Present (It.Nam) loop
! 
!                      --  Overloaded object names can occur when user-defined
!                      --  references are involved. The prefix can be interpreted
!                      --  as either just an object of the reference type, or an
!                      --  implicit dereferencing of such an object.
! 
!                      if Is_Object (It.Nam) then
!                         if Covers (Designated_Type (Typ), Etype (It.Typ)) then
! 
!                            --  If the interpretation is a discriminant for an
!                            --  implicit dereference, then build the dereference
!                            --  and resolve the rewritten attribute recursively.
! 
!                            if Ekind (It.Nam) = E_Discriminant
!                              and then Has_Implicit_Dereference (It.Nam)
!                            then
!                               Build_Explicit_Dereference
!                                 (P, Get_Reference_Discriminant (Etype (P)));
!                               Resolve_Attribute (N, Typ);
! 
!                               return;
!                            end if;
! 
!                            --  The prefix is definitely NOT overloaded anymore
!                            --  at this point, so we reset the Is_Overloaded
!                            --  flag to avoid any confusion when reanalyzing
!                            --  the node.
! 
!                            Set_Is_Overloaded (P, False);
!                            Set_Is_Overloaded (N, False);
!                            Generate_Reference (Entity (P), P);
! 
!                            exit;
!                         end if;
! 
!                      elsif Type_Conformant (Designated_Type (Typ), It.Nam) then
                          Set_Entity (P, It.Nam);
  
                          --  The prefix is definitely NOT overloaded anymore at
*************** package body Sem_Attr is
*** 11190,11199 ****
                    end loop;
  
                    --  If Prefix is a subprogram name, this reference freezes,
!                   --  but not if within spec expression mode. The profile of
!                   --  the subprogram is not frozen at this point.
  
!                   if not In_Spec_Expression then
                       Freeze_Before (N, Entity (P), Do_Freeze_Profile => False);
                    end if;
  
--- 11350,11360 ----
                    end loop;
  
                    --  If Prefix is a subprogram name, this reference freezes,
!                   --  but not during preanalysis (including preanalysis of
!                   --  spec expressions). The profile of the subprogram is not
!                   --  frozen at this point.
  
!                   if not Preanalysis_Active then
                       Freeze_Before (N, Entity (P), Do_Freeze_Profile => False);
                    end if;
  
*************** package body Sem_Attr is
*** 11202,11208 ****
                 --  If it is an object, complete its resolution.
  
                 elsif Is_Overloadable (Entity (P)) then
!                   if not In_Spec_Expression then
                       Freeze_Before (N, Entity (P), Do_Freeze_Profile => False);
                    end if;
  
--- 11363,11369 ----
                 --  If it is an object, complete its resolution.
  
                 elsif Is_Overloadable (Entity (P)) then
!                   if not Preanalysis_Active then
                       Freeze_Before (N, Entity (P), Do_Freeze_Profile => False);
                    end if;
  
*************** package body Sem_Attr is
*** 11652,11657 ****
--- 11813,11822 ----
                    Error_Msg_F
                      ("illegal attribute for discriminant-dependent component",
                       P);
+ 
+                elsif Depends_On_Mutably_Tagged_Ext_Comp (P) then
+                   Error_Msg_F
+                     ("illegal attribute for mutably tagged component", P);
                 end if;
  
                 --  Check static matching rule of 3.10.2(27). Nominal subtype
*************** package body Sem_Attr is
*** 11751,11756 ****
--- 11916,11927 ----
                 then
                    null;
  
+                --  Nominal subtype static matching requirement does not apply
+                --  for an extended access type.
+ 
+                elsif Is_Extended_Access_Type (Typ) then
+                   null;
+ 
                 else
                    Error_Msg_F
                      ("object subtype must statically match "
*************** package body Sem_Attr is
*** 11956,11962 ****
                and then not (Nkind (P) = N_Selected_Component
                               and then
                                 Is_Overloadable (Entity (Selector_Name (P))))
!               and then not Is_Aliased_View (Original_Node (P))
                and then not In_Instance
                and then not In_Inlined_Body
                and then Comes_From_Source (N)
--- 12127,12135 ----
                and then not (Nkind (P) = N_Selected_Component
                               and then
                                 Is_Overloadable (Entity (Selector_Name (P))))
!               and then not Is_Aliased_View
!                              (Original_Node (P),
!                               For_Extended => Is_Extended_Access_Type (Btyp))
                and then not In_Instance
                and then not In_Inlined_Body
                and then Comes_From_Source (N)
*************** package body Sem_Attr is
*** 12457,12477 ****
  
           when Attribute_Reduce =>
              declare
!                E1 : constant Node_Id := First (Expressions (N));
!                E2 : constant Node_Id := Next (E1);
                 Op : Entity_Id := Empty;
  
                 Index : Interp_Index;
                 It    : Interp;
!                function Proper_Op (Op : Entity_Id) return Boolean;
  
                 ---------------
                 -- Proper_Op --
                 ---------------
  
!                function Proper_Op (Op : Entity_Id) return Boolean is
                    F1, F2 : Entity_Id;
- 
                 begin
                    F1 := First_Formal (Op);
                    if No (F1) then
--- 12630,12659 ----
  
           when Attribute_Reduce =>
              declare
!                Reducer_Subp_Name : constant Node_Id := First (Expressions (N));
!                Init_Value_Exp    : constant Node_Id :=
!                  Next (Reducer_Subp_Name);
                 Op : Entity_Id := Empty;
  
                 Index : Interp_Index;
                 It    : Interp;
! 
!                function Proper_Op
!                  (Op     : Entity_Id;
!                   Strict : Boolean := False) return Boolean;
!                --  Is Op a suitable reducer subprogram?
!                --  Strict indicates whether ops found in Standard should be
!                --  considered even if Typ is not a predefined type.
  
                 ---------------
                 -- Proper_Op --
                 ---------------
  
!                function Proper_Op
!                  (Op     : Entity_Id;
!                   Strict : Boolean := False) return Boolean
!                is
                    F1, F2 : Entity_Id;
                 begin
                    F1 := First_Formal (Op);
                    if No (F1) then
*************** package body Sem_Attr is
*** 12487,12528 ****
                          return Ekind (F1) = E_In_Out_Parameter
                            and then Covers (Typ, Etype (F1));
  
                       else
!                         return
!                           (Ekind (Op) = E_Operator
!                             and then Scope (Op) = Standard_Standard)
!                             or else  Covers (Typ, Etype (Op));
                       end if;
                    end if;
                 end Proper_Op;
  
              begin
!                Resolve (E2, Typ);
!                if Is_Overloaded (E1) then
!                   Get_First_Interp (E1, Index, It);
!                   while Present (It.Nam) loop
!                      if Proper_Op (It.Nam) then
!                         Op := It.Nam;
!                         Set_Entity (E1, Op);
!                         exit;
!                      end if;
  
!                      Get_Next_Interp (Index, It);
!                   end loop;
  
!                elsif Nkind (E1) = N_Attribute_Reference
!                  and then (Attribute_Name (E1) = Name_Max
!                    or else Attribute_Name (E1) = Name_Min)
                 then
!                   Op := E1;
  
!                elsif Proper_Op (Entity (E1)) then
!                   Op := Entity (E1);
                    Set_Etype (N, Typ);
                 end if;
  
                 if No (Op) then
!                   Error_Msg_N ("No visible subprogram for reduction", E1);
                 end if;
              end;
  
--- 12669,12757 ----
                          return Ekind (F1) = E_In_Out_Parameter
                            and then Covers (Typ, Etype (F1));
  
+                      elsif Covers (Typ, Etype (Op)) then
+                         return True;
+ 
+                      elsif Ekind (Op) = E_Operator
+                        and then Scope (Op) = Standard_Standard
+                        and then not Strict
+                      then
+                         declare
+                            Op_Chars : constant Any_Operator_Name := Chars (Op);
+                            --  Nonassociative ops like division are unlikely
+                            --  to come up in practice, but they are legal.
+                         begin
+                            case Op_Chars is
+                               when Name_Op_Add
+                                 | Name_Op_Subtract
+                                 | Name_Op_Multiply
+                                 | Name_Op_Divide
+                                 | Name_Op_Expon
+                               =>
+                                  return Is_Numeric_Type (Typ);
+ 
+                               when Name_Op_Mod | Name_Op_Rem =>
+                                  return Is_Numeric_Type (Typ)
+                                    and then Is_Discrete_Type (Typ);
+ 
+                               when Name_Op_And | Name_Op_Or | Name_Op_Xor =>
+                                  --  No Boolean array operators in Standard
+                                  return Is_Boolean_Type (Typ)
+                                    or else Is_Modular_Integer_Type (Typ);
+ 
+                               when Name_Op_Concat =>
+                                  return Is_Array_Type (Typ)
+                                    and then Number_Dimensions (Typ) = 1;
+ 
+                               when Name_Op_Eq | Name_Op_Ne
+                                 | Name_Op_Lt | Name_Op_Le
+                                 | Name_Op_Gt | Name_Op_Ge
+                               =>
+                                  return Is_Boolean_Type (Typ);
+ 
+                               when Name_Op_Abs | Name_Op_Not =>
+                                  --  unary ops were already handled
+                                  pragma Assert (False);
+                                  raise Program_Error;
+                            end case;
+                         end;
                       else
!                         return False;
                       end if;
                    end if;
                 end Proper_Op;
  
              begin
!                Resolve (Init_Value_Exp, Typ);
!                if Is_Overloaded (Reducer_Subp_Name) then
!                   Outer :
!                   for Retry in Boolean loop
!                      Get_First_Interp (Reducer_Subp_Name, Index, It);
!                      while Present (It.Nam) loop
!                         if Proper_Op (It.Nam, Strict => not Retry) then
!                            Op := It.Nam;
!                            Set_Entity (Reducer_Subp_Name, Op);
!                            exit Outer;
!                         end if;
  
!                         Get_Next_Interp (Index, It);
!                      end loop;
!                   end loop Outer;
  
!                elsif Nkind (Reducer_Subp_Name) = N_Attribute_Reference
!                  and then (Attribute_Name (Reducer_Subp_Name) = Name_Max
!                    or else Attribute_Name (Reducer_Subp_Name) = Name_Min)
                 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;
  
*************** package body Sem_Attr is
*** 12775,12781 ****
        if Attr_Id = Attribute_Elaborated then
           null;
  
!       --  Should this be restricted to Expander_Active???
  
        else
           Freeze_Expression (P);
--- 13004,13011 ----
        if Attr_Id = Attribute_Elaborated then
           null;
  
!       --  Unconditionally freeze the prefix; required to freeze static
!       --  expressions when preanalyzing default expressions.
  
        else
           Freeze_Expression (P);
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_attr.ads gcc-15.1.0/gcc/ada/sem_attr.ads
*** gcc-14.2.0/gcc/ada/sem_attr.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_attr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Attr is
*** 288,293 ****
--- 288,297 ----
        --  attribute is primarily intended for use in implementation of the
        --  standard input-output functions for fixed-point values.
  
+       --------------------
+       --  Invalid_Value --
+       --------------------
+ 
        Attribute_Invalid_Value => True,
        --  For every scalar type, S'Invalid_Value designates an undefined value
        --  of the type. If possible this value is an invalid value, and in fact
*************** package Sem_Attr is
*** 298,303 ****
--- 302,311 ----
        --  coding standards in use), but logically no initialization is needed,
        --  and the value should never be accessed.
  
+       ----------------
+       -- Loop_Entry --
+       ----------------
+ 
        Attribute_Loop_Entry => True,
        --  For every object of a non-limited type, S'Loop_Entry [(Loop_Name)]
        --  denotes the constant value of prefix S at the point of entry into the
*************** package Sem_Attr is
*** 373,389 ****
        --  other composite object passed by reference, there is no other way
        --  of specifying that a zero address should be passed.
  
-       -----------------
-       -- Object_Size --
-       -----------------
- 
-       Attribute_Object_Size => True,
-       --  Type'Object_Size is the same as Type'Size for all types except
-       --  fixed-point types and discrete types. For fixed-point types and
-       --  discrete types, this attribute gives the size used for default
-       --  allocation of objects and components of the size. See section in
-       --  Einfo ("Handling of Type'Size values") for further details.
- 
        -------------------------
        -- Passed_By_Reference --
        -------------------------
--- 381,386 ----
*************** package Sem_Attr is
*** 447,452 ****
--- 444,457 ----
        --  System.Partition_Interface.RACW_Stub_Type (see implementation notes
        --  in body of Exp_Dist).
  
+       -----------
+       -- Super --
+       -----------
+ 
+       Attribute_Super => True,
+       --  Applied to objects of tagged types in order to obtain a view
+       --  conversion to their statically detected (nonabstract) parent type.
+ 
        -----------------
        -- Target_Name --
        -----------------
*************** package Sem_Attr is
*** 593,635 ****
        --  for constructing this definition in package System (see note above
        --  in Default_Bit_Order description). This is a static attribute.
  
        others => False);
  
     --  The following table lists all attributes that yield a result of a
     --  universal type.
  
     Universal_Type_Attribute : constant array (Attribute_Id) of Boolean :=
!      (Attribute_Aft                          => True,
!       Attribute_Alignment                    => True,
!       Attribute_Component_Size               => True,
!       Attribute_Count                        => True,
!       Attribute_Delta                        => True,
!       Attribute_Digits                       => True,
!       Attribute_Exponent                     => True,
!       Attribute_First_Bit                    => True,
!       Attribute_Fore                         => True,
!       Attribute_Last_Bit                     => True,
!       Attribute_Length                       => True,
!       Attribute_Machine_Emax                 => True,
!       Attribute_Machine_Emin                 => True,
!       Attribute_Machine_Mantissa             => True,
!       Attribute_Machine_Radix                => True,
!       Attribute_Max_Alignment_For_Allocation => True,
!       Attribute_Max_Size_In_Storage_Elements => True,
!       Attribute_Model_Emin                   => True,
!       Attribute_Model_Epsilon                => True,
!       Attribute_Model_Mantissa               => True,
!       Attribute_Model_Small                  => True,
!       Attribute_Modulus                      => True,
!       Attribute_Pos                          => True,
!       Attribute_Position                     => True,
!       Attribute_Safe_First                   => True,
!       Attribute_Safe_Last                    => True,
!       Attribute_Scale                        => True,
!       Attribute_Size                         => True,
!       Attribute_Small                        => True,
!       Attribute_Wide_Wide_Width              => True,
!       Attribute_Wide_Width                   => True,
        Attribute_Width                        => True,
        others                                 => False);
  
--- 598,667 ----
        --  for constructing this definition in package System (see note above
        --  in Default_Bit_Order description). This is a static attribute.
  
+       Attribute_Atomic_Always_Lock_Free    |
+       Attribute_Bit_Position               |
+       Attribute_Compiler_Version           |
+       Attribute_Descriptor_Size            |
+       Attribute_Enabled                    |
+       Attribute_Fast_Math                  |
+       Attribute_From_Any                   |
+       Attribute_Has_Access_Values          |
+       Attribute_Has_Tagged_Values          |
+       Attribute_Initialized                |
+       Attribute_Library_Level              |
+       Attribute_Pool_Address               |
+       Attribute_Restriction_Set            |
+       Attribute_Scalar_Storage_Order       |
+       Attribute_Simple_Storage_Pool        |
+       Attribute_Small_Denominator          |
+       Attribute_Small_Numerator            |
+       Attribute_System_Allocator_Alignment |
+       Attribute_To_Any                     |
+       Attribute_TypeCode                   |
+       Attribute_Type_Key                   |
+       Attribute_Unconstrained_Array        |
+       Attribute_Update                     |
+       Attribute_Valid_Value                |
+       Attribute_Wchar_T_Size               => True,
+       --  See description in GNAT RM
+ 
        others => False);
  
     --  The following table lists all attributes that yield a result of a
     --  universal type.
  
     Universal_Type_Attribute : constant array (Attribute_Id) of Boolean :=
!      (Attribute_Aft                          |
!       Attribute_Alignment                    |
!       Attribute_Component_Size               |
!       Attribute_Count                        |
!       Attribute_Delta                        |
!       Attribute_Digits                       |
!       Attribute_Exponent                     |
!       Attribute_First_Bit                    |
!       Attribute_Fore                         |
!       Attribute_Last_Bit                     |
!       Attribute_Length                       |
!       Attribute_Machine_Emax                 |
!       Attribute_Machine_Emin                 |
!       Attribute_Machine_Mantissa             |
!       Attribute_Machine_Radix                |
!       Attribute_Max_Alignment_For_Allocation |
!       Attribute_Max_Size_In_Storage_Elements |
!       Attribute_Model_Emin                   |
!       Attribute_Model_Epsilon                |
!       Attribute_Model_Mantissa               |
!       Attribute_Model_Small                  |
!       Attribute_Modulus                      |
!       Attribute_Pos                          |
!       Attribute_Position                     |
!       Attribute_Safe_First                   |
!       Attribute_Safe_Last                    |
!       Attribute_Scale                        |
!       Attribute_Size                         |
!       Attribute_Small                        |
!       Attribute_Wide_Wide_Width              |
!       Attribute_Wide_Width                   |
        Attribute_Width                        => True,
        others                                 => False);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_aux.adb gcc-15.1.0/gcc/ada/sem_aux.adb
*** gcc-14.2.0/gcc/ada/sem_aux.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_aux.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Aux is
*** 699,722 ****
        return Present (Get_Rep_Pragma (E, Nam1, Nam2, Check_Parents));
     end Has_Rep_Pragma;
  
-    --------------------------------
-    -- Has_Unconstrained_Elements --
-    --------------------------------
- 
-    function Has_Unconstrained_Elements (T : Entity_Id) return Boolean is
-       U_T : constant Entity_Id := Underlying_Type (T);
-    begin
-       if No (U_T) then
-          return False;
-       elsif Is_Record_Type (U_T) then
-          return Has_Discriminants (U_T) and then not Is_Constrained (U_T);
-       elsif Is_Array_Type (U_T) then
-          return Has_Unconstrained_Elements (Component_Type (U_T));
-       else
-          return False;
-       end if;
-    end Has_Unconstrained_Elements;
- 
     ----------------------
     -- Has_Variant_Part --
     ----------------------
--- 699,704 ----
*************** package body Sem_Aux is
*** 882,888 ****
           return True;
  
        elsif Is_Record_Type (Btype) then
!          if Is_Limited_Record (Btype)
             or else Is_Tagged_Type (Btype)
             or else Is_Volatile (Btype)
           then
--- 864,871 ----
           return True;
  
        elsif Is_Record_Type (Btype) then
!          if Is_Controlled (Btype)
!            or else Is_Limited_Record (Btype)
             or else Is_Tagged_Type (Btype)
             or else Is_Volatile (Btype)
           then
*************** package body Sem_Aux is
*** 1117,1122 ****
--- 1100,1116 ----
  
        elsif Is_Private_Type (Btype) then
  
+          --  If Ent occurs in the completion of a private type, then
+          --  look for the word "limited" in the full view.
+ 
+          if Nkind (Parent (Ent)) = N_Full_Type_Declaration
+            and then Nkind (Type_Definition (Parent (Ent))) in
+                       N_Record_Definition | N_Derived_Type_Definition
+            and then Limited_Present (Type_Definition (Parent (Ent)))
+          then
+             return True;
+          end if;
+ 
           --  AI05-0063: A type derived from a limited private formal type is
           --  not immutably limited in a generic body.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_aux.ads gcc-15.1.0/gcc/ada/sem_aux.ads
*** gcc-14.2.0/gcc/ada/sem_aux.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_aux.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Aux is
*** 100,113 ****
     --  entity is declared or Standard_Standard for library-level entities.
  
     function First_Discriminant (Typ : Entity_Id) return Entity_Id;
!    --  Typ is a type with discriminants. The discriminants are the first
!    --  entities declared in the type, so normally this is equivalent to
!    --  First_Entity. The exception arises for tagged types, where the tag
!    --  itself is prepended to the front of the entity chain, so the
!    --  First_Discriminant function steps past the tag if it is present.
!    --  The caller is responsible for checking that the type has discriminants.
!    --  When called on a private type with unknown discriminants, the function
!    --  always returns Empty.
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
--- 100,112 ----
     --  entity is declared or Standard_Standard for library-level entities.
  
     function First_Discriminant (Typ : Entity_Id) return Entity_Id;
!    --  Typ is a type with discriminants or unknown discriminants. The
!    --  discriminants are the first entities declared in the type, so normally
!    --  this is equivalent to First_Entity. The exception arises for tagged
!    --  types, where the tag itself is prepended to the front of the entity
!    --  chain, so the First_Discriminant function steps past the tag if it is
!    --  present.  When called on a private type with unknown discriminants, the
!    --  function always returns Empty.
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
*************** package Sem_Aux is
*** 262,271 ****
     --  irregularity compared to other representation aspects, and the cost of
     --  looking up the aspect when needed is small.
  
-    function Has_Unconstrained_Elements (T : Entity_Id) return Boolean;
-    --  True if T has discriminants and is unconstrained, or is an array type
-    --  whose element type Has_Unconstrained_Elements.
- 
     function Has_Variant_Part (Typ : Entity_Id) return Boolean;
     --  Return True if the first subtype of Typ is a discriminated record type
     --  which has a variant part. False otherwise.
--- 261,266 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_case.adb gcc-15.1.0/gcc/ada/sem_case.adb
*** gcc-14.2.0/gcc/ada/sem_case.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_case.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with GNAT.Sets;
*** 58,66 ****
  package body Sem_Case is
  
     type Choice_Bounds is record
!      Lo   : Node_Id;
!      Hi   : Node_Id;
!      Node : Node_Id;
     end record;
     --  Represent one choice bounds entry with Lo and Hi values, Node points
     --  to the choice node itself.
--- 58,66 ----
  package body Sem_Case is
  
     type Choice_Bounds is record
!       Lo   : Node_Id;
!       Hi   : Node_Id;
!       Node : Node_Id;
     end record;
     --  Represent one choice bounds entry with Lo and Hi values, Node points
     --  to the choice node itself.
*************** package body Sem_Case is
*** 1550,1557 ****
              return Result;
           end Component_Bounds_Info;
  
!          Component_Bounds : constant Composite_Range_Info
!            := Component_Bounds_Info;
  
           package Case_Bindings is
  
--- 1550,1557 ----
              return Result;
           end Component_Bounds_Info;
  
!          Component_Bounds : constant Composite_Range_Info :=
!            Component_Bounds_Info;
  
           package Case_Bindings is
  
*************** package body Sem_Case is
*** 2517,2524 ****
  
                 use Uint_Sets;
  
!                Result : constant Representative_Values_Array
!                  := (others => Uint_Sets.Create (Initial_Size => 32));
  
                 procedure Insert_Representative (Value : Uint; P : Part_Id);
                 --  Insert the given Value into the representative values set
--- 2517,2524 ----
  
                 use Uint_Sets;
  
!                Result : constant Representative_Values_Array :=
!                  (others => Uint_Sets.Create (Initial_Size => 32));
  
                 procedure Insert_Representative (Value : Uint; P : Part_Id);
                 --  Insert the given Value into the representative values set
*************** package body Sem_Case is
*** 2563,2570 ****
                 return Result;
              end Representative_Values_Init;
  
!             Representative_Values : constant Representative_Values_Array
!               := Representative_Values_Init;
              --  We want to avoid looking at every point in the Cartesian
              --  product of all component values. Instead we select, for each
              --  component, a set of representative values and then look only
--- 2563,2570 ----
                 return Result;
              end Representative_Values_Init;
  
!             Representative_Values : constant Representative_Values_Array :=
!               Representative_Values_Init;
              --  We want to avoid looking at every point in the Cartesian
              --  product of all component values. Instead we select, for each
              --  component, a set of representative values and then look only
*************** package body Sem_Case is
*** 2664,2671 ****
                    return Equal;
                 else
                    declare
!                      Intersection : constant Value_Index_Set
!                        := Indexed (S1) and Indexed (S2);
                    begin
                       if (for all Flag of Intersection => not Flag) then
                          return Disjoint;
--- 2664,2671 ----
                    return Equal;
                 else
                    declare
!                      Intersection : constant Value_Index_Set :=
!                        Indexed (S1) and Indexed (S2);
                    begin
                       if (for all Flag of Intersection => not Flag) then
                          return Disjoint;
*************** package body Sem_Case is
*** 3590,3596 ****
  
              --  Hold on, maybe it isn't a complete mess after all.
  
!             if Core_Extensions_Allowed and then Subtyp /= Any_Type then
                 Check_Composite_Case_Selector;
                 Check_Case_Pattern_Choices;
              end if;
--- 3590,3596 ----
  
              --  Hold on, maybe it isn't a complete mess after all.
  
!             if All_Extensions_Allowed and then Subtyp /= Any_Type then
                 Check_Composite_Case_Selector;
                 Check_Case_Pattern_Choices;
              end if;
*************** package body Sem_Case is
*** 3874,3880 ****
     function Is_Case_Choice_Pattern (Expr : Node_Id) return Boolean is
        E : Node_Id := Expr;
     begin
!       if not Core_Extensions_Allowed then
           return False;
        end if;
  
--- 3874,3880 ----
     function Is_Case_Choice_Pattern (Expr : Node_Id) return Boolean is
        E : Node_Id := Expr;
     begin
!       if not All_Extensions_Allowed then
           return False;
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_case.ads gcc-15.1.0/gcc/ada/sem_case.ads
*** gcc-14.2.0/gcc/ada/sem_case.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_case.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_cat.adb gcc-15.1.0/gcc/ada/sem_cat.adb
*** gcc-14.2.0/gcc/ada/sem_cat.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_cat.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Cat is
*** 1031,1037 ****
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then
!                 not (Implicit_With (Item)
                        or else Limited_Present (Item)
  
                        --  Skip if error already posted on the WITH clause (in
--- 1031,1037 ----
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then
!                 not (Is_Implicit_With (Item)
                        or else Limited_Present (Item)
  
                        --  Skip if error already posted on the WITH clause (in
*************** package body Sem_Cat is
*** 2177,2182 ****
--- 2177,2183 ----
          or else not Comes_From_Source (N)
          or else In_Subprogram_Or_Concurrent_Unit
          or else Ekind (Current_Scope) = E_Block
+         or else In_Strict_Preanalysis
        then
           return;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_cat.ads gcc-15.1.0/gcc/ada/sem_cat.ads
*** gcc-14.2.0/gcc/ada/sem_cat.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_cat.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch10.adb gcc-15.1.0/gcc/ada/sem_ch10.adb
*** gcc-14.2.0/gcc/ada/sem_ch10.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch10.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch10 is
*** 292,297 ****
--- 292,309 ----
        --  Spec_Context_Items to that of the spec. Parent packages are not
        --  examined for documentation purposes.
  
+       function Install_Inherited_Policy_Pragmas
+         (Comp_Unit : Node_Id) return Node_Id;
+       --  Install assertion_policy pragmas placed at the start of the spec of
+       --  the given compilation unit (and the spec of its parent units). Return
+       --  the last pragma found in the check policy list before installing
+       --  these pragmas; used to remove the installed pragmas.
+ 
+       procedure Remove_Inherited_Policy_Pragmas (Last_Pragma : Node_Id);
+       --  Remove assertion_policy pragmas installed after the given pragma. If
+       --  Last_Pragma is empty then remove all the pragmas installed in the
+       --  check policy list (if any).
+ 
        ---------------------------
        -- Check_Redundant_Withs --
        ---------------------------
*************** package body Sem_Ch10 is
*** 303,323 ****
           Clause : Node_Id;
  
           procedure Process_Body_Clauses
!           (Context_List      : List_Id;
!            Clause            : Node_Id;
!            Used              : out Boolean;
!            Used_Type_Or_Elab : out Boolean);
           --  Examine the context clauses of a package body, trying to match the
           --  name entity of Clause with any list element. If the match occurs
           --  on a use package clause set Used to True, for a use type clause or
           --  pragma Elaborate[_All], set Used_Type_Or_Elab to True.
  
           procedure Process_Spec_Clauses
!           (Context_List : List_Id;
!            Clause       : Node_Id;
!            Used         : out Boolean;
!            Withed       : out Boolean;
!            Exit_On_Self : Boolean := False);
           --  Examine the context clauses of a package spec, trying to match
           --  the name entity of Clause with any list element. If the match
           --  occurs on a use package clause, set Used to True, for a with
--- 315,335 ----
           Clause : Node_Id;
  
           procedure Process_Body_Clauses
!            (Context_List      : List_Id;
!             Clause            : Node_Id;
!             Used              : out Boolean;
!             Used_Type_Or_Elab : out Boolean);
           --  Examine the context clauses of a package body, trying to match the
           --  name entity of Clause with any list element. If the match occurs
           --  on a use package clause set Used to True, for a use type clause or
           --  pragma Elaborate[_All], set Used_Type_Or_Elab to True.
  
           procedure Process_Spec_Clauses
!            (Context_List : List_Id;
!             Clause       : Node_Id;
!             Used         : out Boolean;
!             Withed       : out Boolean;
!             Exit_On_Self : Boolean);
           --  Examine the context clauses of a package spec, trying to match
           --  the name entity of Clause with any list element. If the match
           --  occurs on a use package clause, set Used to True, for a with
*************** package body Sem_Ch10 is
*** 332,341 ****
           --------------------------
  
           procedure Process_Body_Clauses
!           (Context_List      : List_Id;
!            Clause            : Node_Id;
!            Used              : out Boolean;
!            Used_Type_Or_Elab : out Boolean)
           is
              Nam_Ent   : constant Entity_Id := Entity (Name (Clause));
              Cont_Item : Node_Id;
--- 344,353 ----
           --------------------------
  
           procedure Process_Body_Clauses
!            (Context_List      : List_Id;
!             Clause            : Node_Id;
!             Used              : out Boolean;
!             Used_Type_Or_Elab : out Boolean)
           is
              Nam_Ent   : constant Entity_Id := Entity (Name (Clause));
              Cont_Item : Node_Id;
*************** package body Sem_Ch10 is
*** 456,466 ****
           --------------------------
  
           procedure Process_Spec_Clauses
!           (Context_List : List_Id;
!            Clause       : Node_Id;
!            Used         : out Boolean;
!            Withed       : out Boolean;
!            Exit_On_Self : Boolean := False)
           is
              Nam_Ent   : constant Entity_Id := Entity (Name (Clause));
              Cont_Item : Node_Id;
--- 468,478 ----
           --------------------------
  
           procedure Process_Spec_Clauses
!            (Context_List : List_Id;
!             Clause       : Node_Id;
!             Used         : out Boolean;
!             Withed       : out Boolean;
!             Exit_On_Self : Boolean)
           is
              Nam_Ent   : constant Entity_Id := Entity (Name (Clause));
              Cont_Item : Node_Id;
*************** package body Sem_Ch10 is
*** 476,486 ****
                 --  already been examined in a previous iteration of the reverse
                 --  loop in Check_Redundant_Withs.
  
!                if Exit_On_Self
!                  and Cont_Item = Clause
!                then
!                   exit;
!                end if;
  
                 --  Package use clause
  
--- 488,494 ----
                 --  already been examined in a previous iteration of the reverse
                 --  loop in Check_Redundant_Withs.
  
!                exit when Exit_On_Self and Cont_Item = Clause;
  
                 --  Package use clause
  
*************** package body Sem_Ch10 is
*** 511,517 ****
  
                 elsif Nkind (Cont_Item) = N_With_Clause
                   and then Comes_From_Source (Cont_Item)
!                  and then not Implicit_With (Cont_Item)
                   and then not Limited_Present (Cont_Item)
                   and then Cont_Item /= Clause
                   and then Entity (Name (Cont_Item)) = Nam_Ent
--- 519,525 ----
  
                 elsif Nkind (Cont_Item) = N_With_Clause
                   and then Comes_From_Source (Cont_Item)
!                  and then not Is_Implicit_With (Cont_Item)
                   and then not Limited_Present (Cont_Item)
                   and then Cont_Item /= Clause
                   and then Entity (Name (Cont_Item)) = Nam_Ent
*************** package body Sem_Ch10 is
*** 533,539 ****
              --  clauses or withs that have pragma Elaborate or Elaborate_All.
  
              if Nkind (Clause) = N_With_Clause
!               and then not Implicit_With (Clause)
                and then not Limited_Present (Clause)
                and then not Elaborate_Present (Clause)
  
--- 541,547 ----
              --  clauses or withs that have pragma Elaborate or Elaborate_All.
  
              if Nkind (Clause) = N_With_Clause
!               and then not Is_Implicit_With (Clause)
                and then not Limited_Present (Clause)
                and then not Elaborate_Present (Clause)
  
*************** package body Sem_Ch10 is
*** 558,564 ****
                         (Context_List => Spec_Context_Items,
                          Clause       => Clause,
                          Used         => Used_In_Spec,
!                         Withed       => Withed_In_Spec);
  
                       Process_Body_Clauses
                         (Context_List      => Context_Items,
--- 566,573 ----
                         (Context_List => Spec_Context_Items,
                          Clause       => Clause,
                          Used         => Used_In_Spec,
!                         Withed       => Withed_In_Spec,
!                         Exit_On_Self => False);
  
                       Process_Body_Clauses
                         (Context_List      => Context_Items,
*************** package body Sem_Ch10 is
*** 631,645 ****
           end loop;
        end Check_Redundant_Withs;
  
        --  Local variables
  
        Main_Cunit    : constant Node_Id := Cunit (Main_Unit);
!       Lib_Unit      : Node_Id          := Library_Unit (N);
        Par_Spec_Name : Unit_Name_Type;
        Spec_Id       : Entity_Id;
        Unum          : Unit_Number_Type;
        Options       : Style_Check_Options;
  
     --  Start of processing for Analyze_Compilation_Unit
  
     begin
--- 640,840 ----
           end loop;
        end Check_Redundant_Withs;
  
+       --------------------------------------
+       -- Install_Inherited_Policy_Pragmas --
+       --------------------------------------
+ 
+       --  Opt.Check_Policy_List is handled as a stack; assertion policy
+       --  pragmas defined at inner scopes are placed at the beginning of
+       --  the list. Therefore, policy pragmas defined at the start of
+       --  parent units must be appended to the end of this list.
+ 
+       --  When the compilation unit is a package body (or a subprogram body
+       --  that does not act as its spec) we recursively traverse to its spec
+       --  (and from there to its ultimate parent); when the compilation unit
+       --  is a child package (or subprogram) spec we recursively climb until
+       --  its ultimate parent. In both cases policy pragmas defined at the
+       --  beginning of all these traversed units are appended to the check
+       --  policy list in the way back to the current compilation unit (and
+       --  they are left installed in reverse order). For example:
+       --
+       --     pragma Assertion_Policy (...) -- [policy-1]
+       --     package Pkg is ...
+       --
+       --     pragma Assertion_Policy (...) -- [policy-2]
+       --     package Pkg.Child is ...
+       --
+       --     pragma Assertion_Policy (...) -- [policy-3]
+       --     package body Pkg.Child is ...
+       --
+       --  When the compilation unit Pkg.Child is analyzed, and its context
+       --  clauses are analyzed, these are the contents of Check_Policy_List:
+       --
+       --     Opt.Check_Policy_List -> [policy-3]
+       --                                  ^
+       --                               last_policy_pragma
+       --
+       --  After climbing to the ultimate parent spec, these are the contents
+       --  of Check_Policy_List:
+       --
+       --     Opt.Check_Policy_List -> [policy-3] -> [policy-2] -> [policy-1]
+       --                                  ^
+       --                               last_policy_pragma
+       --
+       --  The reference to the last policy pragma in the initial contents of
+       --  the list is used later to remove installed inherited pragmas.
+ 
+       function Install_Inherited_Policy_Pragmas
+         (Comp_Unit : Node_Id) return Node_Id
+       is
+          Last_Policy_Pragma : Node_Id;
+ 
+          procedure Install_Parent_Policy_Pragmas (N : Node_Id);
+          --  Recursively climb to the ultimate parent and install their policy
+          --  pragmas after Last_Policy_Pragma.
+ 
+          -----------------------------------
+          -- Install_Parent_Policy_Pragmas --
+          -----------------------------------
+ 
+          procedure Install_Parent_Policy_Pragmas (N : Node_Id) is
+             Lib_Unit : constant Node_Id := Unit (N);
+             Item     : Node_Id;
+ 
+          begin
+             if Is_Child_Spec (Lib_Unit) then
+                Install_Parent_Policy_Pragmas (Parent_Spec (Lib_Unit));
+ 
+             elsif Nkind (Lib_Unit) = N_Package_Body then
+                Install_Parent_Policy_Pragmas (Spec_Lib_Unit (N));
+ 
+             elsif Nkind (Lib_Unit) = N_Subprogram_Body
+                and then not Acts_As_Spec (N)
+             then
+                Install_Parent_Policy_Pragmas (Spec_Lib_Unit (N));
+             end if;
+ 
+             --  Search for check policy pragmas defined at the start of the
+             --  context items. They are not part of the context clause, but
+             --  that is where the parser places them.
+ 
+             Item := First (Context_Items (N));
+             while Present (Item)
+               and then Nkind (Item) = N_Pragma
+               and then Pragma_Name (Item) in Configuration_Pragma_Names
+             loop
+                if Pragma_Name (Item) = Name_Check_Policy then
+                   if No (Last_Policy_Pragma) then
+                      Set_Next_Pragma (Item, Opt.Check_Policy_List);
+                      Opt.Check_Policy_List := Item;
+ 
+                   else
+                      Set_Next_Pragma (Item, Next_Pragma (Last_Policy_Pragma));
+                      Set_Next_Pragma (Last_Policy_Pragma, Item);
+                   end if;
+                end if;
+ 
+                Next (Item);
+             end loop;
+          end Install_Parent_Policy_Pragmas;
+ 
+          --  Local variables
+ 
+          Lib_Unit : constant Node_Id := Unit (Comp_Unit);
+ 
+       --  Start of processing for Install_Inherited_Policy_Pragmas
+ 
+       begin
+          --  Search for the last configuration pragma of the current
+          --  compilation unit in the check policy list. These pragmas were
+          --  added to the ckeck policy list as part of the analysis of the
+          --  context of the current compilation unit (because, although
+          --  configuration pragmas are not part of the context clauses,
+          --  they are placed there by the parser).
+ 
+          Last_Policy_Pragma := Opt.Check_Policy_List;
+ 
+          if Present (Last_Policy_Pragma) then
+             while Present (Next_Pragma (Last_Policy_Pragma)) loop
+                Last_Policy_Pragma := Next_Pragma (Last_Policy_Pragma);
+             end loop;
+          end if;
+ 
+          --  We must not install configuration pragmas of the current unit
+          --  because they have been installed by Analyze_Context (see previous
+          --  comment).
+ 
+          if Is_Child_Spec (Lib_Unit) then
+             Install_Parent_Policy_Pragmas (Parent_Spec (Lib_Unit));
+ 
+          elsif Nkind (Lib_Unit) = N_Package_Body then
+             Install_Parent_Policy_Pragmas (Spec_Lib_Unit (Comp_Unit));
+ 
+          elsif Nkind (Lib_Unit) = N_Subprogram_Body
+             and then not Acts_As_Spec (Comp_Unit)
+          then
+             Install_Parent_Policy_Pragmas (Spec_Lib_Unit (Comp_Unit));
+          end if;
+ 
+          return Last_Policy_Pragma;
+       end Install_Inherited_Policy_Pragmas;
+ 
+       -------------------------------------
+       -- Remove_Inherited_Policy_Pragmas --
+       -------------------------------------
+ 
+       procedure Remove_Inherited_Policy_Pragmas (Last_Pragma : Node_Id) is
+          Curr_Prag : Node_Id;
+          Next_Prag : Node_Id;
+ 
+       begin
+          if No (Opt.Check_Policy_List) then
+             return;
+          end if;
+ 
+          --  If this unit does not have assertion_policy pragmas, then all the
+          --  pragmas installed in the check policy list were inherited and must
+          --  be removed from the list.
+ 
+          if No (Last_Pragma) then
+             Curr_Prag := Opt.Check_Policy_List;
+ 
+          --  Otherwise, pragmas installed after Last_Pragma must be removed.
+ 
+          else
+             Curr_Prag := Last_Pragma;
+          end if;
+ 
+          --  Remove pragmas from the list
+ 
+          Next_Prag := Next_Pragma (Curr_Prag);
+          while Present (Next_Prag) loop
+             Set_Next_Pragma (Curr_Prag, Empty);
+ 
+             Curr_Prag := Next_Prag;
+             Next_Prag := Next_Pragma (Curr_Prag);
+          end loop;
+ 
+          if No (Last_Pragma) then
+             Opt.Check_Policy_List := Empty;
+          end if;
+       end Remove_Inherited_Policy_Pragmas;
+ 
        --  Local variables
  
        Main_Cunit    : constant Node_Id := Cunit (Main_Unit);
!       Lib_Unit      : Node_Id          := Other_Comp_Unit (N);
        Par_Spec_Name : Unit_Name_Type;
        Spec_Id       : Entity_Id;
        Unum          : Unit_Number_Type;
        Options       : Style_Check_Options;
  
+       Last_Policy_Pragma : Node_Id;
+       --  Last policy pragma of this compilation unit installed in the check
+       --  policy list when its context is analyzed (see Analyze_Context); this
+       --  node is used as a reference to remove from this list policy pragmas
+       --  inherited from parent units.
+ 
     --  Start of processing for Analyze_Compilation_Unit
  
     begin
*************** package body Sem_Ch10 is
*** 784,790 ****
  
              --  If the subprogram body is a child unit, we must create a
              --  declaration for it, in order to properly load the parent(s).
!             --  After this, the original unit does not acts as a spec, because
              --  there is an explicit one. If this unit appears in a context
              --  clause, then an implicit with on the parent will be added when
              --  installing the context. If this is the main unit, there is no
--- 979,985 ----
  
              --  If the subprogram body is a child unit, we must create a
              --  declaration for it, in order to properly load the parent(s).
!             --  After this, the original unit does not act as a spec, because
              --  there is an explicit one. If this unit appears in a context
              --  clause, then an implicit with on the parent will be added when
              --  installing the context. If this is the main unit, there is no
*************** package body Sem_Ch10 is
*** 845,864 ****
                             Make_Compilation_Unit_Aux (Loc));
  
                       Set_Context_Items (N, Empty_List);
!                      Set_Library_Unit (N, Lib_Unit);
                       Set_Parent_Spec (Unit (Lib_Unit), Cunit (Unum));
                       Make_Child_Decl_Unit (N);
-                      Semantics (Lib_Unit);
  
                       --  Now that a separate declaration exists, the body
                       --  of the child unit does not act as spec any longer.
  
                       Set_Acts_As_Spec (N, False);
                       Move_Aspects (From => Unit_Node, To => Unit (Lib_Unit));
                       Set_Is_Child_Unit (Defining_Entity (Unit_Node));
                       Set_Debug_Info_Needed (Defining_Entity (Unit (Lib_Unit)));
                       Set_Comes_From_Source_Default (SCS);
  
                       --  Restore Context_Items to the body
  
                       Set_Context_Items (N, Context_Items (Lib_Unit));
--- 1040,1069 ----
                             Make_Compilation_Unit_Aux (Loc));
  
                       Set_Context_Items (N, Empty_List);
!                      Set_Spec_Lib_Unit (N, Lib_Unit);
                       Set_Parent_Spec (Unit (Lib_Unit), Cunit (Unum));
                       Make_Child_Decl_Unit (N);
  
                       --  Now that a separate declaration exists, the body
                       --  of the child unit does not act as spec any longer.
  
                       Set_Acts_As_Spec (N, False);
                       Move_Aspects (From => Unit_Node, To => Unit (Lib_Unit));
+ 
+                      --  Ensure that the generated corresponding spec and
+                      --  original body share the same SPARK_Mode pragma or
+                      --  aspect. As a result, both have the same SPARK_Mode
+                      --  attributes, and the global SPARK_Mode value is
+                      --  correctly set for local subprograms.
+ 
+                      Copy_SPARK_Mode_Aspect (Unit (Lib_Unit), To => Unit_Node);
+ 
                       Set_Is_Child_Unit (Defining_Entity (Unit_Node));
                       Set_Debug_Info_Needed (Defining_Entity (Unit (Lib_Unit)));
                       Set_Comes_From_Source_Default (SCS);
  
+                      Semantics (Lib_Unit);
+ 
                       --  Restore Context_Items to the body
  
                       Set_Context_Items (N, Context_Items (Lib_Unit));
*************** package body Sem_Ch10 is
*** 910,920 ****
           end;
        end if;
  
!       --  With the analysis done, install the context. Note that we can't
!       --  install the context from the with clauses as we analyze them, because
!       --  each with clause must be analyzed in a clean visibility context, so
!       --  we have to wait and install them all at once.
  
        Install_Context (N);
  
        if Is_Child_Spec (Unit_Node) then
--- 1115,1130 ----
           end;
        end if;
  
!       --  With the analysis done, install assertion_policy pragmas defined at
!       --  the start of the specification of this unit (and recursively the
!       --  assertion policy pragmas defined at the start of the specification
!       --  of its parent units); install also the context of this compilation
!       --  unit. Note that we can't install the context from the with clauses
!       --  as we analyze them, because each with clause must be analyzed in a
!       --  clean visibility context, so we have to wait and install them all
!       --  at once.
  
+       Last_Policy_Pragma := Install_Inherited_Policy_Pragmas (N);
        Install_Context (N);
  
        if Is_Child_Spec (Unit_Node) then
*************** package body Sem_Ch10 is
*** 1077,1082 ****
--- 1287,1293 ----
        --  the unit just compiled.
  
        Remove_Context (N);
+       Remove_Inherited_Policy_Pragmas (Last_Policy_Pragma);
  
        --  When generating code for a non-generic main unit, check that withed
        --  generic units have a body if they need it, even if the units have not
*************** package body Sem_Ch10 is
*** 1118,1124 ****
                 --  Check for explicit with clause
  
                 if Nkind (Item) = N_With_Clause
!                  and then not Implicit_With (Item)
  
                   --  Ada 2005 (AI-50217): Ignore limited-withed units
  
--- 1329,1335 ----
                 --  Check for explicit with clause
  
                 if Nkind (Item) = N_With_Clause
!                  and then not Is_Implicit_With (Item)
  
                   --  Ada 2005 (AI-50217): Ignore limited-withed units
  
*************** package body Sem_Ch10 is
*** 1471,1499 ****
           if Nkind (Item) = N_With_Clause
             and then not Limited_Present (Item)
           then
!             --  Skip analyzing with clause if no unit, nothing to do (this
!             --  happens for a with that references a non-existent unit).
! 
!             if Present (Library_Unit (Item)) then
! 
!                --  Skip analyzing with clause if this is a with_clause for
!                --  the main unit, which happens if a subunit has a useless
!                --  with_clause on its parent.
! 
!                if Library_Unit (Item) /= Cunit (Current_Sem_Unit) then
!                   Analyze (Item);
! 
!                --  Here for the case of a useless with for the main unit
  
!                else
!                   Set_Entity (Name (Item), Cunit_Entity (Current_Sem_Unit));
!                end if;
              end if;
  
              --  Do version update (skipped for implicit with)
  
!             if not Implicit_With (Item) then
!                Version_Update (N, Library_Unit (Item));
              end if;
  
           --  Skip pragmas. Configuration pragmas at the start were handled in
--- 1682,1698 ----
           if Nkind (Item) = N_With_Clause
             and then not Limited_Present (Item)
           then
!             --  Skip analyzing with clause if no unit; this happens for a with
!             --  that references a non-existent unit.
  
!             if Present (Withed_Lib_Unit (Item)) then
!                Analyze (Item);
              end if;
  
              --  Do version update (skipped for implicit with)
  
!             if not Is_Implicit_With (Item) then
!                Version_Update (N, Withed_Lib_Unit (Item));
              end if;
  
           --  Skip pragmas. Configuration pragmas at the start were handled in
*************** package body Sem_Ch10 is
*** 1525,1531 ****
              --  No need to check errors on implicitly generated limited-with
              --  clauses.
  
!             if not Implicit_With (Item) then
  
                 --  Verify that the illegal contexts given in 10.1.2 (18/2) are
                 --  properly rejected, including renaming declarations.
--- 1724,1730 ----
              --  No need to check errors on implicitly generated limited-with
              --  clauses.
  
!             if not Is_Implicit_With (Item) then
  
                 --  Verify that the illegal contexts given in 10.1.2 (18/2) are
                 --  properly rejected, including renaming declarations.
*************** package body Sem_Ch10 is
*** 1543,1549 ****
                 --      limited with P.Q;
                 --      package P.Q is ...
  
!                elsif Unit (Library_Unit (Item)) = Unit (N) then
                    Error_Msg_N ("wrong use of limited-with clause", Item);
  
                 --  Check wrong use of limited-with clause applied to some
--- 1742,1748 ----
                 --      limited with P.Q;
                 --      package P.Q is ...
  
!                elsif Unit (Withed_Lib_Unit (Item)) = Unit (N) then
                    Error_Msg_N ("wrong use of limited-with clause", Item);
  
                 --  Check wrong use of limited-with clause applied to some
*************** package body Sem_Ch10 is
*** 1551,1558 ****
  
                 elsif Is_Child_Spec (Unit (N)) then
                    declare
!                      Lib_U : constant Entity_Id := Unit (Library_Unit (Item));
!                      P     : Node_Id;
  
                    begin
                       P := Parent_Spec (Unit (N));
--- 1750,1758 ----
  
                 elsif Is_Child_Spec (Unit (N)) then
                    declare
!                      Lib_U : constant Entity_Id :=
!                        Unit (Withed_Lib_Unit (Item));
!                      P : Node_Id;
  
                    begin
                       P := Parent_Spec (Unit (N));
*************** package body Sem_Ch10 is
*** 1588,1603 ****
                          if Item /= It
                            and then Nkind (It) = N_With_Clause
                            and then not Limited_Present (It)
!                           and then Nkind (Unit (Library_Unit (It))) in
                                       N_Package_Declaration |
                                       N_Package_Renaming_Declaration
                          then
!                            if Nkind (Unit (Library_Unit (It))) =
                                                        N_Package_Declaration
                             then
                                Unit_Name := Name (It);
                             else
!                               Unit_Name := Name (Unit (Library_Unit (It)));
                             end if;
  
                             --  Check if the named package (or some ancestor)
--- 1788,1803 ----
                          if Item /= It
                            and then Nkind (It) = N_With_Clause
                            and then not Limited_Present (It)
!                           and then Nkind (Unit (Withed_Lib_Unit (It))) in
                                       N_Package_Declaration |
                                       N_Package_Renaming_Declaration
                          then
!                            if Nkind (Unit (Withed_Lib_Unit (It))) =
                                                        N_Package_Declaration
                             then
                                Unit_Name := Name (It);
                             else
!                               Unit_Name := Name (Unit (Withed_Lib_Unit (It)));
                             end if;
  
                             --  Check if the named package (or some ancestor)
*************** package body Sem_Ch10 is
*** 1637,1651 ****
  
              --  Skip analyzing with clause if no unit, see above
  
!             if Present (Library_Unit (Item)) then
                 Analyze (Item);
              end if;
  
              --  A limited_with does not impose an elaboration order, but there
              --  is a semantic dependency for recompilation purposes.
  
!             if not Implicit_With (Item) then
!                Version_Update (N, Library_Unit (Item));
              end if;
  
           --  Pragmas and use clauses and with clauses other than limited with's
--- 1837,1851 ----
  
              --  Skip analyzing with clause if no unit, see above
  
!             if Present (Withed_Lib_Unit (Item)) then
                 Analyze (Item);
              end if;
  
              --  A limited_with does not impose an elaboration order, but there
              --  is a semantic dependency for recompilation purposes.
  
!             if not Is_Implicit_With (Item) then
!                Version_Update (N, Withed_Lib_Unit (Item));
              end if;
  
           --  Pragmas and use clauses and with clauses other than limited with's
*************** package body Sem_Ch10 is
*** 1773,1779 ****
              else
                 Set_Corresponding_Stub (Unit (Comp_Unit), N);
                 Analyze_Subunit (Comp_Unit);
!                Set_Library_Unit (N, Comp_Unit);
                 Set_Corresponding_Body (N, Defining_Entity (Unit (Comp_Unit)));
              end if;
  
--- 1973,1979 ----
              else
                 Set_Corresponding_Stub (Unit (Comp_Unit), N);
                 Analyze_Subunit (Comp_Unit);
!                Set_Stub_Subunit (N, Comp_Unit);
                 Set_Corresponding_Body (N, Defining_Entity (Unit (Comp_Unit)));
              end if;
  
*************** package body Sem_Ch10 is
*** 1808,1821 ****
           --  If the proper body is already linked to the stub node, the stub is
           --  in a generic unit and just needs analyzing.
  
!          if Present (Library_Unit (N)) then
!             Set_Corresponding_Stub (Unit (Library_Unit (N)), N);
  
!             --  If the subunit has severe errors, the spec of the enclosing
!             --  body may not be available, in which case do not try analysis.
  
              if Serious_Errors_Detected > 0
!               and then No (Library_Unit (Library_Unit (N)))
              then
                 return;
              end if;
--- 2008,2021 ----
           --  If the proper body is already linked to the stub node, the stub is
           --  in a generic unit and just needs analyzing.
  
!          if Present (Stub_Subunit (N)) then
!             Set_Corresponding_Stub (Unit (Stub_Subunit (N)), N);
  
!             --  If the subunit has errors, the spec of the enclosing body might
!             --  not be available, in which case do not try analysis.
  
              if Serious_Errors_Detected > 0
!               and then No (Subunit_Parent (Stub_Subunit (N)))
              then
                 return;
              end if;
*************** package body Sem_Ch10 is
*** 1827,1836 ****
                and then In_Extended_Main_Source_Unit
                           (Cunit_Entity (Current_Sem_Unit))
              then
!                SCO_Record_Raw (Get_Cunit_Unit_Number (Library_Unit (N)));
              end if;
  
!             Analyze_Subunit (Library_Unit (N));
  
           --  Otherwise we must load the subunit and link to it
  
--- 2027,2036 ----
                and then In_Extended_Main_Source_Unit
                           (Cunit_Entity (Current_Sem_Unit))
              then
!                SCO_Record_Raw (Get_Cunit_Unit_Number (Stub_Subunit (N)));
              end if;
  
!             Analyze_Subunit (Stub_Subunit (N));
  
           --  Otherwise we must load the subunit and link to it
  
*************** package body Sem_Ch10 is
*** 1865,1871 ****
  
                 Set_Corresponding_Stub (Unit (Cunit (Unum)), N);
                 Analyze_Subunit (Cunit (Unum));
!                Set_Library_Unit (N, Cunit (Unum));
              end if;
           end if;
  
--- 2065,2071 ----
  
                 Set_Corresponding_Stub (Unit (Cunit (Unum)), N);
                 Analyze_Subunit (Cunit (Unum));
!                Set_Stub_Subunit (N, Cunit (Unum));
              end if;
           end if;
  
*************** package body Sem_Ch10 is
*** 1907,1916 ****
           --  substitution of subunits, it makes sense to include it in the
           --  version identification.
  
!          if Present (Library_Unit (N)) then
!             Set_Corresponding_Stub (Unit (Library_Unit (N)), N);
!             Analyze_Subunit (Library_Unit (N));
!             Version_Update (Cunit (Main_Unit), Library_Unit (N));
  
           --  Otherwise we must load the subunit and link to it
  
--- 2107,2116 ----
           --  substitution of subunits, it makes sense to include it in the
           --  version identification.
  
!          if Present (Stub_Subunit (N)) then
!             Set_Corresponding_Stub (Unit (Stub_Subunit (N)), N);
!             Analyze_Subunit (Stub_Subunit (N));
!             Version_Update (Cunit (Main_Unit), Stub_Subunit (N));
  
           --  Otherwise we must load the subunit and link to it
  
*************** package body Sem_Ch10 is
*** 1948,1955 ****
  
              if Unum /= No_Unit then
                 if Debug_Flag_L then
!                   Write_Str ("*** Loaded subunit from stub. Analyze");
!                   Write_Eol;
                 end if;
  
                 Comp_Unit := Cunit (Unum);
--- 2148,2154 ----
  
              if Unum /= No_Unit then
                 if Debug_Flag_L then
!                   Write_Line ("*** Loaded subunit from stub. Analyze");
                 end if;
  
                 Comp_Unit := Cunit (Unum);
*************** package body Sem_Ch10 is
*** 1965,1971 ****
  
                 else
                    Set_Corresponding_Stub (Unit (Comp_Unit), N);
!                   Set_Library_Unit (N, Comp_Unit);
  
                    --  We update the version. Although we are not technically
                    --  semantically dependent on the subunit, given our approach
--- 2164,2170 ----
  
                 else
                    Set_Corresponding_Stub (Unit (Comp_Unit), N);
!                   Set_Stub_Subunit (N, Comp_Unit);
  
                    --  We update the version. Although we are not technically
                    --  semantically dependent on the subunit, given our approach
*************** package body Sem_Ch10 is
*** 2076,2082 ****
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then Limited_Present (Item)
!               and then not Implicit_With (Item)
              then
                 return True;
              end if;
--- 2275,2281 ----
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then Limited_Present (Item)
!               and then not Is_Implicit_With (Item)
              then
                 return True;
              end if;
*************** package body Sem_Ch10 is
*** 2182,2190 ****
        while Present (Item) loop
           if Nkind (Item) = N_With_Clause
             and then Limited_Present (Item)
!            and then not Implicit_With (Item)
           then
!             Semantics (Library_Unit (Item));
           end if;
  
           Next (Item);
--- 2381,2389 ----
        while Present (Item) loop
           if Nkind (Item) = N_With_Clause
             and then Limited_Present (Item)
!            and then not Is_Implicit_With (Item)
           then
!             Semantics (Withed_Lib_Unit (Item));
           end if;
  
           Next (Item);
*************** package body Sem_Ch10 is
*** 2265,2274 ****
     --  SPARK mode.
  
     procedure Analyze_Subunit (N : Node_Id) is
!       Lib_Unit : constant Node_Id   := Library_Unit (N);
        Par_Unit : constant Entity_Id := Current_Scope;
  
!       Lib_Spec        : Node_Id := Library_Unit (Lib_Unit);
        Num_Scopes      : Nat := 0;
        Use_Clauses     : array (1 .. Scope_Stack.Last) of Node_Id;
        Enclosing_Child : Entity_Id := Empty;
--- 2464,2473 ----
     --  SPARK mode.
  
     procedure Analyze_Subunit (N : Node_Id) is
!       Lib_Unit : constant Node_Id   := Subunit_Parent (N);
        Par_Unit : constant Entity_Id := Current_Scope;
  
!       Lib_Spec        : Node_Id := Other_Comp_Unit (Lib_Unit);
        Num_Scopes      : Nat := 0;
        Use_Clauses     : array (1 .. Scope_Stack.Last) of Node_Id;
        Enclosing_Child : Entity_Id := Empty;
*************** package body Sem_Ch10 is
*** 2408,2414 ****
  
        begin
           if Nkind (Unit (L)) = N_Subunit then
!             Re_Install_Parents (Library_Unit (L), Scope (Scop));
           end if;
  
           Install_Context (L, False);
--- 2607,2613 ----
  
        begin
           if Nkind (Unit (L)) = N_Subunit then
!             Re_Install_Parents (Subunit_Parent (L), Scope (Scop));
           end if;
  
           Install_Context (L, False);
*************** package body Sem_Ch10 is
*** 2541,2547 ****
              Remove_Context (Lib_Spec);
  
              while Nkind (Unit (Lib_Spec)) = N_Subunit loop
!                Lib_Spec := Library_Unit (Lib_Spec);
                 Remove_Scope;
                 Remove_Context (Lib_Spec);
              end loop;
--- 2740,2746 ----
              Remove_Context (Lib_Spec);
  
              while Nkind (Unit (Lib_Spec)) = N_Subunit loop
!                Lib_Spec := Subunit_Parent (Lib_Spec);
                 Remove_Scope;
                 Remove_Context (Lib_Spec);
              end loop;
*************** package body Sem_Ch10 is
*** 2552,2558 ****
  
              if Nkind (Unit (Lib_Spec)) in N_Package_Body | N_Subprogram_Body
              then
!                Remove_Context (Library_Unit (Lib_Spec));
              end if;
           end if;
  
--- 2751,2757 ----
  
              if Nkind (Unit (Lib_Spec)) in N_Package_Body | N_Subprogram_Body
              then
!                Remove_Context (Spec_Lib_Unit (Lib_Spec));
              end if;
           end if;
  
*************** package body Sem_Ch10 is
*** 2621,2640 ****
  
        Install_Elaboration_Model (Par_Unit);
  
!       --  The syntax rules require a proper body for a subprogram subunit
  
        if Nkind (Proper_Body (Sinfo.Nodes.Unit (N))) = N_Subprogram_Declaration
        then
!          if Null_Present (Specification (Proper_Body (Sinfo.Nodes.Unit (N))))
!          then
!             Error_Msg_N
!               ("null procedure not allowed as subunit",
!                Proper_Body (Unit (N)));
!          else
!             Error_Msg_N
!               ("subprogram declaration not allowed as subunit",
!                Defining_Unit_Name (Specification (Proper_Body (Unit (N)))));
!          end if;
        end if;
  
        Analyze (Proper_Body (Unit (N)));
--- 2820,2833 ----
  
        Install_Elaboration_Model (Par_Unit);
  
!       --  The syntax rules require a proper body for a subprogram subunit.
!       --  Note that we already checked for "is null" in the parser.
  
        if Nkind (Proper_Body (Sinfo.Nodes.Unit (N))) = N_Subprogram_Declaration
        then
!          Error_Msg_N
!            ("subprogram declaration not allowed as subunit",
!             Defining_Unit_Name (Specification (Proper_Body (Unit (N)))));
        end if;
  
        Analyze (Proper_Body (Unit (N)));
*************** package body Sem_Ch10 is
*** 2737,2749 ****
        --  instantiation appears indirectly elsewhere in the context, it will
        --  have been analyzed already.
  
!       Unit_Kind : constant Node_Kind :=
!                     Nkind (Original_Node (Unit (Library_Unit (N))));
        Nam       : constant Node_Id := Name (N);
        E_Name    : Entity_Id;
        Par_Name  : Entity_Id;
        Pref      : Node_Id;
-       U         : Node_Id;
  
        Intunit : Boolean;
        --  Set True if the unit currently being compiled is an internal unit
--- 2930,2941 ----
        --  instantiation appears indirectly elsewhere in the context, it will
        --  have been analyzed already.
  
!       U         : constant Node_Id := Unit (Withed_Lib_Unit (N));
!       Unit_Kind : constant Node_Kind := Nkind (Original_Node (U));
        Nam       : constant Node_Id := Name (N);
        E_Name    : Entity_Id;
        Par_Name  : Entity_Id;
        Pref      : Node_Id;
  
        Intunit : Boolean;
        --  Set True if the unit currently being compiled is an internal unit
*************** package body Sem_Ch10 is
*** 2755,2762 ****
        Save_Style_Check : constant Boolean := Opt.Style_Check;
  
     begin
-       U := Unit (Library_Unit (N));
- 
        --  If this is an internal unit which is a renaming, then this is a
        --  violation of No_Obsolescent_Features.
  
--- 2947,2952 ----
*************** package body Sem_Ch10 is
*** 2820,2835 ****
        --  If we are compiling under "don't quit" mode (-gnatq) and we have
        --  already detected serious errors then we mark the with-clause nodes as
        --  analyzed before the corresponding compilation unit is analyzed. This
!       --  is done here to protect the frontend against never ending recursion
        --  caused by circularities in the sources (because the previous errors
!       --  may break the regular machine of the compiler implemented in
!       --  Load_Unit to detect circularities).
  
        if Serious_Errors_Detected > 0 and then Try_Semantics then
           Set_Analyzed (N);
        end if;
  
!       Semantics (Library_Unit (N));
  
        Intunit := Is_Internal_Unit (Current_Sem_Unit);
  
--- 3010,3070 ----
        --  If we are compiling under "don't quit" mode (-gnatq) and we have
        --  already detected serious errors then we mark the with-clause nodes as
        --  analyzed before the corresponding compilation unit is analyzed. This
!       --  is done here to protect the frontend against infinite recursion
        --  caused by circularities in the sources (because the previous errors
!       --  might break the circularity detection in Load_Unit).
  
        if Serious_Errors_Detected > 0 and then Try_Semantics then
           Set_Analyzed (N);
        end if;
  
!       --  Skip Semantics if this is a with clause for the main unit (e.g.
!       --  "with X;" on the body of X or its subunits), because calling
!       --  Semantics on the spec of X at this point would cause trouble,
!       --  such as duplicate instantiations of generics. Instead, mark the
!       --  self-referential "with" as Is_Implicit_With, to avoid later
!       --  processing done for non-self-referential with clauses. Note that
!       --  we can't simply remove the with clause from the tree, because the
!       --  legality of subsequent (also useless) use clauses depend on the
!       --  presence of the with clause.
! 
!       if Withed_Lib_Unit (N) = Spec_Or_Body_Lib_Unit (Cunit (Current_Sem_Unit))
!       then
!          Set_Is_Implicit_With (N);
! 
!          --  Self-referential withs are always useless, so warn
! 
!          if Warn_On_Redundant_Constructs then
!             Error_Msg_N ("unnecessary with of self?r?", N);
!          end if;
! 
!          declare
!             This : Node_Id := Next (N);
!          begin
!             --  Remove subsequent use clauses for the same package
! 
!             while Present (This) loop
!                declare
!                   Nxt : constant Node_Id := Next (This);
!                begin
!                   if Nkind (This) = N_Use_Package_Clause
!                     and then Same_Name (Name (N), Name (This))
!                   then
!                      if not More_Ids (This) and not Prev_Ids (This) then
!                         Remove (This);
!                      end if;
!                   end if;
! 
!                   This := Nxt;
!                end;
!             end loop;
!          end;
! 
!       --  Normal (non-self-referential) case
! 
!       else
!          Semantics (Withed_Lib_Unit (N));
!       end if;
  
        Intunit := Is_Internal_Unit (Current_Sem_Unit);
  
*************** package body Sem_Ch10 is
*** 2865,2871 ****
  
           if Implementation_Unit_Warnings
             and then not Intunit
!            and then not Implicit_With (N)
             and then not Restriction_Violation
           then
              case Get_Kind_Of_Unit (Get_Source_Unit (U)) is
--- 3100,3106 ----
  
           if Implementation_Unit_Warnings
             and then not Intunit
!            and then not Is_Implicit_With (N)
             and then not Restriction_Violation
           then
              case Get_Kind_Of_Unit (Get_Source_Unit (U)) is
*************** package body Sem_Ch10 is
*** 2911,2917 ****
        end if;
  
        --  Semantic analysis of a generic unit is performed on a copy of
!       --  the original tree. Retrieve the entity on  which semantic info
        --  actually appears.
  
        if Unit_Kind in N_Generic_Declaration then
--- 3146,3152 ----
        end if;
  
        --  Semantic analysis of a generic unit is performed on a copy of
!       --  the original tree. Retrieve the entity on which semantic info
        --  actually appears.
  
        if Unit_Kind in N_Generic_Declaration then
*************** package body Sem_Ch10 is
*** 2924,2931 ****
        --  visibility purposes we need the entity of its spec.
  
        elsif (Unit_Kind = N_Package_Instantiation
!               or else Nkind (Original_Node (Unit (Library_Unit (N)))) =
!                                                   N_Package_Instantiation)
          and then Nkind (U) = N_Package_Body
        then
           E_Name := Corresponding_Spec (U);
--- 3159,3166 ----
        --  visibility purposes we need the entity of its spec.
  
        elsif (Unit_Kind = N_Package_Instantiation
!               or else Nkind (Original_Node (Unit (Withed_Lib_Unit (N)))) =
!                       N_Package_Instantiation)
          and then Nkind (U) = N_Package_Body
        then
           E_Name := Corresponding_Spec (U);
*************** package body Sem_Ch10 is
*** 2963,2969 ****
  
        elsif Unit_Kind = N_Subprogram_Body
          and then Nkind (Name (N)) = N_Selected_Component
!         and then not Acts_As_Spec (Library_Unit (N))
        then
           --  For a child unit that has no spec, one has been created and
           --  analyzed. The entity required is that of the spec.
--- 3198,3204 ----
  
        elsif Unit_Kind = N_Subprogram_Body
          and then Nkind (Name (N)) = N_Selected_Component
!         and then not Acts_As_Spec (Withed_Lib_Unit (N))
        then
           --  For a child unit that has no spec, one has been created and
           --  analyzed. The entity required is that of the spec.
*************** package body Sem_Ch10 is
*** 2988,2997 ****
           --  with_clause for the child unit (e.g. in separate subunits).
  
           if Unit_Kind = N_Subprogram_Declaration
!            and then Analyzed (Library_Unit (N))
!            and then not Comes_From_Source (Library_Unit (N))
           then
!             Set_Library_Unit (N,
                 Cunit (Get_Source_Unit (Corresponding_Body (U))));
           end if;
        end if;
--- 3223,3233 ----
           --  with_clause for the child unit (e.g. in separate subunits).
  
           if Unit_Kind = N_Subprogram_Declaration
!            and then Analyzed (Withed_Lib_Unit (N))
!            and then not Comes_From_Source (Withed_Lib_Unit (N))
           then
!             Set_Library_Unit (N, Empty); -- overwritten by Set_Withed_Lib_Unit
!             Set_Withed_Lib_Unit (N,
                 Cunit (Get_Source_Unit (Corresponding_Body (U))));
           end if;
        end if;
*************** package body Sem_Ch10 is
*** 3109,3115 ****
  
        --  Propagate Fatal_Error setting from with'ed unit to current unit
  
!       case Fatal_Error (Get_Source_Unit (Library_Unit (N))) is
  
           --  Nothing to do if with'ed unit had no error
  
--- 3345,3351 ----
  
        --  Propagate Fatal_Error setting from with'ed unit to current unit
  
!       case Fatal_Error (Get_Source_Unit (Withed_Lib_Unit (N))) is
  
           --  Nothing to do if with'ed unit had no error
  
*************** package body Sem_Ch10 is
*** 3146,3152 ****
  
     begin
        if Nkind (Lib_Unit) in N_Package_Body | N_Subprogram_Body then
!          Curr_Unit := Defining_Entity (Unit (Library_Unit (N)));
           Par_Lib   := Curr_Unit;
  
        elsif Nkind (Lib_Unit) = N_Subunit then
--- 3382,3388 ----
  
     begin
        if Nkind (Lib_Unit) in N_Package_Body | N_Subprogram_Body then
!          Curr_Unit := Defining_Entity (Unit (Spec_Lib_Unit (N)));
           Par_Lib   := Curr_Unit;
  
        elsif Nkind (Lib_Unit) = N_Subunit then
*************** package body Sem_Ch10 is
*** 3154,3161 ****
           --  The parent is itself a body. The parent entity is to be found in
           --  the corresponding spec.
  
!          Sub_Parent := Library_Unit (N);
!          Curr_Unit  := Defining_Entity (Unit (Library_Unit (Sub_Parent)));
  
           --  If the parent itself is a subunit, Curr_Unit is the entity of the
           --  enclosing body, retrieve the spec entity which is the proper
--- 3390,3397 ----
           --  The parent is itself a body. The parent entity is to be found in
           --  the corresponding spec.
  
!          Sub_Parent := Subunit_Parent (N);
!          Curr_Unit  := Defining_Entity (Unit (Other_Comp_Unit (Sub_Parent)));
  
           --  If the parent itself is a subunit, Curr_Unit is the entity of the
           --  enclosing body, retrieve the spec entity which is the proper
*************** package body Sem_Ch10 is
*** 3186,3195 ****
        while Present (Item) loop
  
           --  Ada 2005 (AI-262): Allow private_with of a private child package
!          --  in public siblings
  
           if Nkind (Item) = N_With_Clause
!             and then not Implicit_With (Item)
              and then not Limited_Present (Item)
              and then Is_Private_Descendant (Entity (Name (Item)))
           then
--- 3422,3431 ----
        while Present (Item) loop
  
           --  Ada 2005 (AI-262): Allow private_with of a private child package
!          --  in public siblings.
  
           if Nkind (Item) = N_With_Clause
!             and then not Is_Implicit_With (Item)
              and then not Limited_Present (Item)
              and then Is_Private_Descendant (Entity (Name (Item)))
           then
*************** package body Sem_Ch10 is
*** 3425,3443 ****
        --  Local variables
  
        Ent   : constant Entity_Id  := Entity (Nam);
!       Withn : Node_Id;
  
     --  Start of processing for Expand_With_Clause
  
     begin
-       Withn :=
-         Make_With_Clause (Loc,
-           Name => Build_Unit_Name (Nam));
- 
        Set_Corresponding_Spec (Withn, Ent);
!       Set_First_Name         (Withn);
!       Set_Implicit_With      (Withn);
!       Set_Library_Unit       (Withn, Parent (Unit_Declaration_Node (Ent)));
        Set_Parent_With        (Withn);
  
        --  If the unit is a [generic] package or subprogram declaration
--- 3661,3677 ----
        --  Local variables
  
        Ent   : constant Entity_Id  := Entity (Nam);
!       Withn : constant Node_Id :=
!         Make_With_Clause
!           (Loc, Name => Build_Unit_Name (Nam),
!            First_Name => True, Last_Name => True);
  
     --  Start of processing for Expand_With_Clause
  
     begin
        Set_Corresponding_Spec (Withn, Ent);
!       Set_Is_Implicit_With   (Withn);
!       Set_Withed_Lib_Unit    (Withn, Parent (Unit_Declaration_Node (Ent)));
        Set_Parent_With        (Withn);
  
        --  If the unit is a [generic] package or subprogram declaration
*************** package body Sem_Ch10 is
*** 3570,3576 ****
        P      : constant Node_Id    := Parent_Spec (Child_Unit);
        P_Unit : Node_Id             := Unit (P);
        P_Name : constant Entity_Id  := Get_Parent_Entity (P_Unit);
-       Withn  : Node_Id;
  
        function Build_Ancestor_Name (P : Node_Id) return Node_Id;
        --  Build prefix of child unit name. Recurse if needed
--- 3804,3809 ----
*************** package body Sem_Ch10 is
*** 3655,3675 ****
           return;
        end if;
  
!       Withn := Make_With_Clause (Loc, Name => Build_Unit_Name);
! 
!       Set_Corresponding_Spec (Withn, P_Name);
!       Set_First_Name         (Withn);
!       Set_Implicit_With      (Withn);
!       Set_Library_Unit       (Withn, P);
!       Set_Parent_With        (Withn);
  
!       --  Node is placed at the beginning of the context items, so that
!       --  subsequent use clauses on the parent can be validated.
  
!       Prepend (Withn, Context_Items (N));
!       Mark_Rewrite_Insertion (Withn);
  
!       Install_With_Clause (Withn);
  
        if Is_Child_Spec (P_Unit) then
           Implicit_With_On_Parent (P_Unit, N);
--- 3888,3912 ----
           return;
        end if;
  
!       declare
!          Withn : constant Node_Id :=
!            Make_With_Clause
!              (Loc, Name => Build_Unit_Name,
!               First_Name => True, Last_Name => True);
!       begin
!          Set_Corresponding_Spec (Withn, P_Name);
!          Set_Is_Implicit_With   (Withn);
!          Set_Withed_Lib_Unit    (Withn, P);
!          Set_Parent_With        (Withn);
  
!          --  Node is placed at the beginning of the context items, so that
!          --  subsequent use clauses on the parent can be validated.
  
!          Prepend (Withn, Context_Items (N));
!          Mark_Rewrite_Insertion (Withn);
  
!          Install_With_Clause (Withn);
!       end;
  
        if Is_Child_Spec (P_Unit) then
           Implicit_With_On_Parent (P_Unit, N);
*************** package body Sem_Ch10 is
*** 3750,3756 ****
           --  Case of explicit WITH clause
  
           if Nkind (Item) = N_With_Clause
!            and then not Implicit_With (Item)
           then
              if Limited_Present (Item) then
  
--- 3987,3993 ----
           --  Case of explicit WITH clause
  
           if Nkind (Item) = N_With_Clause
!            and then not Is_Implicit_With (Item)
           then
              if Limited_Present (Item) then
  
*************** package body Sem_Ch10 is
*** 3800,3817 ****
  
              elsif Nkind (Decl_Node) = N_Subprogram_Body
                and then not Acts_As_Spec (Parent (Decl_Node))
!               and then Is_Child_Spec (Unit (Library_Unit (Parent (Decl_Node))))
              then
                 Implicit_With_On_Parent
!                  (Unit (Library_Unit (Parent (Decl_Node))), N);
              end if;
  
              --  Check license conditions unless this is a dummy unit
  
!             if Sloc (Library_Unit (Item)) /= No_Location then
                 License_Check : declare
                    Withu : constant Unit_Number_Type :=
!                             Get_Source_Unit (Library_Unit (Item));
                    Withl : constant License_Type :=
                              License (Source_Index (Withu));
                    Unitl : constant License_Type :=
--- 4037,4055 ----
  
              elsif Nkind (Decl_Node) = N_Subprogram_Body
                and then not Acts_As_Spec (Parent (Decl_Node))
!               and then
!                 Is_Child_Spec (Unit (Subunit_Parent (Parent (Decl_Node))))
              then
                 Implicit_With_On_Parent
!                  (Unit (Subunit_Parent (Parent (Decl_Node))), N);
              end if;
  
              --  Check license conditions unless this is a dummy unit
  
!             if Sloc (Withed_Lib_Unit (Item)) /= No_Location then
                 License_Check : declare
                    Withu : constant Unit_Number_Type :=
!                             Get_Source_Unit (Withed_Lib_Unit (Item));
                    Withl : constant License_Type :=
                              License (Source_Index (Withu));
                    Unitl : constant License_Type :=
*************** package body Sem_Ch10 is
*** 3906,3923 ****
          or else (Nkind (Lib_Unit) = N_Subprogram_Body
                    and then not Acts_As_Spec (N))
        then
!          Install_Context (Library_Unit (N), Chain);
  
           --  Only install private with-clauses of a spec that comes from
           --  source, excluding specs created for a subprogram body that is
           --  a child unit.
  
!          if Comes_From_Source (Library_Unit (N)) then
              Install_Private_With_Clauses
!               (Defining_Entity (Unit (Library_Unit (N))));
           end if;
  
!          if Is_Child_Spec (Unit (Library_Unit (N))) then
  
              --  If the unit is the body of a public child unit, the private
              --  declarations of the parent must be made visible. If the child
--- 4144,4161 ----
          or else (Nkind (Lib_Unit) = N_Subprogram_Body
                    and then not Acts_As_Spec (N))
        then
!          Install_Context (Spec_Lib_Unit (N), Chain);
  
           --  Only install private with-clauses of a spec that comes from
           --  source, excluding specs created for a subprogram body that is
           --  a child unit.
  
!          if Comes_From_Source (Spec_Lib_Unit (N)) then
              Install_Private_With_Clauses
!               (Defining_Entity (Unit (Spec_Lib_Unit (N))));
           end if;
  
!          if Is_Child_Spec (Unit (Spec_Lib_Unit (N))) then
  
              --  If the unit is the body of a public child unit, the private
              --  declarations of the parent must be made visible. If the child
*************** package body Sem_Ch10 is
*** 3933,3944 ****
                 P_Name   : Entity_Id;
  
              begin
!                Lib_Spec := Unit (Library_Unit (N));
                 while Is_Child_Spec (Lib_Spec) loop
                    P      := Unit (Parent_Spec (Lib_Spec));
                    P_Name := Defining_Entity (P);
  
!                   if not (Private_Present (Parent (Lib_Spec)))
                      and then not In_Private_Part (P_Name)
                    then
                       Install_Private_Declarations (P_Name);
--- 4171,4182 ----
                 P_Name   : Entity_Id;
  
              begin
!                Lib_Spec := Unit (Spec_Lib_Unit (N));
                 while Is_Child_Spec (Lib_Spec) loop
                    P      := Unit (Parent_Spec (Lib_Spec));
                    P_Name := Defining_Entity (P);
  
!                   if not Private_Present (Parent (Lib_Spec))
                      and then not In_Private_Part (P_Name)
                    then
                       Install_Private_Declarations (P_Name);
*************** package body Sem_Ch10 is
*** 3953,3959 ****
  
           --  For a package body, children in context are immediately visible
  
!          Install_Siblings (Defining_Entity (Unit (Library_Unit (N))), N);
        end if;
  
        if Nkind (Lib_Unit) in N_Generic_Package_Declaration
--- 4191,4197 ----
  
           --  For a package body, children in context are immediately visible
  
!          Install_Siblings (Defining_Entity (Unit (Spec_Lib_Unit (N))), N);
        end if;
  
        if Nkind (Lib_Unit) in N_Generic_Package_Declaration
*************** package body Sem_Ch10 is
*** 4028,4034 ****
  
           --  Protect the frontend against previous critical errors
  
!          case Nkind (Unit (Library_Unit (W))) is
              when N_Generic_Package_Declaration
                 | N_Generic_Subprogram_Declaration
                 | N_Package_Declaration
--- 4266,4272 ----
  
           --  Protect the frontend against previous critical errors
  
!          case Nkind (Unit (Withed_Lib_Unit (W))) is
              when N_Generic_Package_Declaration
                 | N_Generic_Subprogram_Declaration
                 | N_Package_Declaration
*************** package body Sem_Ch10 is
*** 4042,4048 ****
  
           --  Check "use + renamings"
  
!          WEnt := Defining_Unit_Name (Specification (Unit (Library_Unit (W))));
           Spec := Specification (Unit (P));
  
           Item := First (Visible_Declarations (Spec));
--- 4280,4287 ----
  
           --  Check "use + renamings"
  
!          WEnt :=
!            Defining_Unit_Name (Specification (Unit (Withed_Lib_Unit (W))));
           Spec := Specification (Unit (P));
  
           Item := First (Visible_Declarations (Spec));
*************** package body Sem_Ch10 is
*** 4106,4118 ****
        begin
           --  Compilation unit of the parent of the withed library unit
  
!          Child_Parent := Library_Unit (Item);
  
           --  If the child unit is a public child, then locate its nearest
           --  private ancestor, if any, then Child_Parent will then be set to
           --  the parent of that ancestor.
  
!          if not Private_Present (Library_Unit (Item)) then
              while Present (Child_Parent)
                and then not Private_Present (Child_Parent)
              loop
--- 4345,4357 ----
        begin
           --  Compilation unit of the parent of the withed library unit
  
!          Child_Parent := Withed_Lib_Unit (Item);
  
           --  If the child unit is a public child, then locate its nearest
           --  private ancestor, if any, then Child_Parent will then be set to
           --  the parent of that ancestor.
  
!          if not Private_Present (Withed_Lib_Unit (Item)) then
              while Present (Child_Parent)
                and then not Private_Present (Child_Parent)
              loop
*************** package body Sem_Ch10 is
*** 4192,4203 ****
  
           begin
              --  A limited with_clause cannot appear in the same context_clause
!             --  as a nonlimited with_clause which mentions the same library.
  
              Item := First (Context_Items (Comp_Unit));
              while Present (Item) loop
                 if Nkind (Item) = N_With_Clause
!                  and then Library_Unit (Item) = Library_Unit (W)
                 then
                    return True;
                 end if;
--- 4431,4443 ----
  
           begin
              --  A limited with_clause cannot appear in the same context_clause
!             --  as a nonlimited with_clause which mentions the same library
!             --  unit.
  
              Item := First (Context_Items (Comp_Unit));
              while Present (Item) loop
                 if Nkind (Item) = N_With_Clause
!                  and then Withed_Lib_Unit (Item) = Withed_Lib_Unit (W)
                 then
                    return True;
                 end if;
*************** package body Sem_Ch10 is
*** 4228,4235 ****
              Set_Parent (Withn, Parent (N));
           end if;
  
!          Set_First_Name      (Withn);
!          Set_Implicit_With   (Withn);
           Set_Limited_Present (Withn);
  
           Unum :=
--- 4468,4475 ----
              Set_Parent (Withn, Parent (N));
           end if;
  
!          Set_First_Name (Withn);
!          Set_Is_Implicit_With (Withn);
           Set_Limited_Present (Withn);
  
           Unum :=
*************** package body Sem_Ch10 is
*** 4247,4253 ****
              return;
           end if;
  
!          Set_Library_Unit (Withn, Cunit (Unum));
           Set_Corresponding_Spec
             (Withn, Specification (Unit (Cunit (Unum))));
  
--- 4487,4493 ----
              return;
           end if;
  
!          Set_Withed_Lib_Unit (Withn, Cunit (Unum));
           Set_Corresponding_Spec
             (Withn, Specification (Unit (Cunit (Unum))));
  
*************** package body Sem_Ch10 is
*** 4286,4292 ****
  
              Check_Private_Limited_Withed_Unit (Item);
  
!             if not Implicit_With (Item) and then Is_Child_Spec (Unit (N)) then
                 Check_Renamings (Parent_Spec (Unit (N)), Item);
              end if;
  
--- 4526,4533 ----
  
              Check_Private_Limited_Withed_Unit (Item);
  
!             if not Is_Implicit_With (Item) and then Is_Child_Spec (Unit (N))
!             then
                 Check_Renamings (Parent_Spec (Unit (N)), Item);
              end if;
  
*************** package body Sem_Ch10 is
*** 4300,4310 ****
              --  the private clause is installed before analyzing the private
              --  part of the current unit.
  
!             if Library_Unit (Item) /= Cunit (Current_Sem_Unit)
                and then not Limited_View_Installed (Item)
                and then
                  not Is_Ancestor_Unit
!                       (Library_Unit (Item), Cunit (Current_Sem_Unit))
              then
                 if not Private_Present (Item)
                   or else Private_Present (N)
--- 4541,4551 ----
              --  the private clause is installed before analyzing the private
              --  part of the current unit.
  
!             if Withed_Lib_Unit (Item) /= Cunit (Current_Sem_Unit)
                and then not Limited_View_Installed (Item)
                and then
                  not Is_Ancestor_Unit
!                       (Withed_Lib_Unit (Item), Cunit (Current_Sem_Unit))
              then
                 if not Private_Present (Item)
                   or else Private_Present (N)
*************** package body Sem_Ch10 is
*** 4524,4541 ****
        if Nkind (Parent (Decl)) = N_Compilation_Unit then
           Item := First (Context_Items (Parent (Decl)));
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then Private_Present (Item)
              then
                 --  If the unit is an ancestor of the current one, it is the
                 --  case of a private limited with clause on a child unit, and
                 --  the compilation of one of its descendants, in that case the
!                --  limited view is errelevant.
  
                 if Limited_Present (Item) then
                    if not Limited_View_Installed (Item)
                      and then
!                       not Is_Ancestor_Unit (Library_Unit (Item),
                                              Cunit (Current_Sem_Unit))
                    then
                       Install_Limited_With_Clause (Item);
--- 4765,4790 ----
        if Nkind (Parent (Decl)) = N_Compilation_Unit then
           Item := First (Context_Items (Parent (Decl)));
           while Present (Item) loop
+             --  If Item is a private with clause, install it, but do not
+             --  install implicit private with's that come from (for example)
+             --  with's on instantiated generics. DO install implicit private
+             --  with's that come from parents, which is necessary in general,
+             --  but ???not quite right if the former (generic) case also
+             --  applies.
+ 
              if Nkind (Item) = N_With_Clause
                and then Private_Present (Item)
+               and then (not Is_Implicit_With (Item) or else Parent_With (Item))
              then
                 --  If the unit is an ancestor of the current one, it is the
                 --  case of a private limited with clause on a child unit, and
                 --  the compilation of one of its descendants, in that case the
!                --  limited view is irrelevant.
  
                 if Limited_Present (Item) then
                    if not Limited_View_Installed (Item)
                      and then
!                       not Is_Ancestor_Unit (Withed_Lib_Unit (Item),
                                              Cunit (Current_Sem_Unit))
                    then
                       Install_Limited_With_Clause (Item);
*************** package body Sem_Ch10 is
*** 4573,4579 ****
           --  until after the specification.
  
           if Nkind (Item) /= N_With_Clause
!            or else Implicit_With (Item)
             or else Limited_Present (Item)
             or else Error_Posted (Item)
  
--- 4822,4828 ----
           --  until after the specification.
  
           if Nkind (Item) /= N_With_Clause
!            or else Is_Implicit_With (Item)
             or else Limited_Present (Item)
             or else Error_Posted (Item)
  
*************** package body Sem_Ch10 is
*** 4710,4716 ****
     ---------------------------------
  
     procedure Install_Limited_With_Clause (N : Node_Id) is
!       P_Unit           : constant Entity_Id := Unit (Library_Unit (N));
        E                : Entity_Id;
        P                : Entity_Id;
        Is_Child_Package : Boolean := False;
--- 4959,4965 ----
     ---------------------------------
  
     procedure Install_Limited_With_Clause (N : Node_Id) is
!       P_Unit           : constant Entity_Id := Unit (Withed_Lib_Unit (N));
        E                : Entity_Id;
        P                : Entity_Id;
        Is_Child_Package : Boolean := False;
*************** package body Sem_Ch10 is
*** 4850,4856 ****
                and then Nkind (Decl) = N_Pragma
              loop
                 if Get_Pragma_Id (Decl) = Pragma_Elaborate_Body then
!                   Set_Body_Required (Library_Unit (N));
                    return;
                 end if;
  
--- 5099,5105 ----
                and then Nkind (Decl) = N_Pragma
              loop
                 if Get_Pragma_Id (Decl) = Pragma_Elaborate_Body then
!                   Set_Body_Required (Withed_Lib_Unit (N));
                    return;
                 end if;
  
*************** package body Sem_Ch10 is
*** 4946,4952 ****
                    --  If no completion, this is a TAT, and a body is needed
  
                    if No (Decl) then
!                      Set_Body_Required (Library_Unit (N));
                       return;
                    end if;
  
--- 5195,5201 ----
                    --  If no completion, this is a TAT, and a body is needed
  
                    if No (Decl) then
!                      Set_Body_Required (Withed_Lib_Unit (N));
                       return;
                    end if;
  
*************** package body Sem_Ch10 is
*** 4978,4984 ****
                          null;
  
                       else
!                         Set_Body_Required (Library_Unit (N));
                          return;
                       end if;
  
--- 5227,5233 ----
                          null;
  
                       else
!                         Set_Body_Required (Withed_Lib_Unit (N));
                          return;
                       end if;
  
*************** package body Sem_Ch10 is
*** 5202,5208 ****
  
              if Is_Child_Unit
                (Defining_Entity
!                  (Unit (Library_Unit (Cunit (Current_Sem_Unit)))))
              then
                 return;
              end if;
--- 5451,5457 ----
  
              if Is_Child_Unit
                (Defining_Entity
!                  (Unit (Spec_Lib_Unit (Cunit (Current_Sem_Unit)))))
              then
                 return;
              end if;
*************** package body Sem_Ch10 is
*** 5489,5495 ****
              Write_Str ("install private withed unit ");
           elsif Parent_With (With_Clause) then
              Write_Str ("install parent withed unit ");
!          elsif Implicit_With (With_Clause) then
              Write_Str ("install implicit withed unit ");
           else
              Write_Str ("install withed unit ");
--- 5738,5744 ----
              Write_Str ("install private withed unit ");
           elsif Parent_With (With_Clause) then
              Write_Str ("install parent withed unit ");
!          elsif Is_Implicit_With (With_Clause) then
              Write_Str ("install implicit withed unit ");
           else
              Write_Str ("install withed unit ");
*************** package body Sem_Ch10 is
*** 5572,5578 ****
  
                 Set_Is_Visible_Lib_Unit
                   (Related_Instance
!                    (Defining_Entity (Unit (Library_Unit (With_Clause)))));
              end if;
  
              --  The parent unit may have been installed already, and may have
--- 5821,5827 ----
  
                 Set_Is_Visible_Lib_Unit
                   (Related_Instance
!                    (Defining_Entity (Unit (Withed_Lib_Unit (With_Clause)))));
              end if;
  
              --  The parent unit may have been installed already, and may have
*************** package body Sem_Ch10 is
*** 5723,5729 ****
        E2 : Entity_Id;
     begin
        if Nkind (Unit (U2)) in N_Package_Body | N_Subprogram_Body then
!          E2 := Defining_Entity (Unit (Library_Unit (U2)));
           return Is_Ancestor_Package (E1, E2);
        else
           return False;
--- 5972,5978 ----
        E2 : Entity_Id;
     begin
        if Nkind (Unit (U2)) in N_Package_Body | N_Subprogram_Body then
!          E2 := Defining_Entity (Unit (Spec_Lib_Unit (U2)));
           return Is_Ancestor_Package (E1, E2);
        else
           return False;
*************** package body Sem_Ch10 is
*** 5801,5817 ****
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then not Limited_Present (Item)
!               and then Nkind (Unit (Library_Unit (Item))) =
                                                 N_Package_Declaration
              then
                 Decl :=
                   First (Visible_Declarations
!                          (Specification (Unit (Library_Unit (Item)))));
                 while Present (Decl) loop
                    if Nkind (Decl) = N_Package_Renaming_Declaration
                      and then Entity (Name (Decl)) = P
                      and then not Is_Limited_Withed_Unit
!                                    (Lib_Unit => Library_Unit (Item),
                                      Pkg_Ent  => Entity (Name (Decl)))
                    then
                       --  Generate the error message only if the current unit
--- 6050,6066 ----
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
                and then not Limited_Present (Item)
!               and then Nkind (Unit (Withed_Lib_Unit (Item))) =
                                                 N_Package_Declaration
              then
                 Decl :=
                   First (Visible_Declarations
!                          (Specification (Unit (Withed_Lib_Unit (Item)))));
                 while Present (Decl) loop
                    if Nkind (Decl) = N_Package_Renaming_Declaration
                      and then Entity (Name (Decl)) = P
                      and then not Is_Limited_Withed_Unit
!                                    (Lib_Unit => Withed_Lib_Unit (Item),
                                      Pkg_Ent  => Entity (Name (Decl)))
                    then
                       --  Generate the error message only if the current unit
*************** package body Sem_Ch10 is
*** 5847,5857 ****
           --  If it is a body not acting as spec, follow pointer to the
           --  corresponding spec, otherwise follow pointer to parent spec.
  
!          if Present (Library_Unit (Aux_Unit))
!            and then Nkind (Unit (Aux_Unit)) in
!                       N_Package_Body | N_Subprogram_Body
           then
!             if Aux_Unit = Library_Unit (Aux_Unit) then
  
                 --  Aux_Unit is a body that acts as a spec. Clause has
                 --  already been flagged as illegal.
--- 6096,6105 ----
           --  If it is a body not acting as spec, follow pointer to the
           --  corresponding spec, otherwise follow pointer to parent spec.
  
!          if Nkind (Unit (Aux_Unit)) in N_Package_Body | N_Subprogram_Body
!            and then Present (Spec_Lib_Unit (Aux_Unit))
           then
!             if Aux_Unit = Spec_Lib_Unit (Aux_Unit) then
  
                 --  Aux_Unit is a body that acts as a spec. Clause has
                 --  already been flagged as illegal.
*************** package body Sem_Ch10 is
*** 5859,5865 ****
                 return False;
  
              else
!                Aux_Unit := Library_Unit (Aux_Unit);
              end if;
  
           else
--- 6107,6113 ----
                 return False;
  
              else
!                Aux_Unit := Spec_Lib_Unit (Aux_Unit);
              end if;
  
           else
*************** package body Sem_Ch10 is
*** 5917,5924 ****
  
           if Fatal_Error (Unum) /= Error_Detected or else Try_Semantics then
              if Debug_Flag_L then
!                Write_Str ("*** Loaded generic body");
!                Write_Eol;
              end if;
  
              --  We always perform analyses
--- 6165,6171 ----
  
           if Fatal_Error (Unum) /= Error_Detected or else Try_Semantics then
              if Debug_Flag_L then
!                Write_Line ("*** Loaded generic body");
              end if;
  
              --  We always perform analyses
*************** package body Sem_Ch10 is
*** 5937,5943 ****
  
     procedure Build_Limited_Views (N : Node_Id) is
        Unum        : constant Unit_Number_Type :=
!                       Get_Source_Unit (Library_Unit (N));
        Is_Analyzed : constant Boolean := Analyzed (Cunit (Unum));
  
        Shadow_Pack : Entity_Id;
--- 6184,6190 ----
  
     procedure Build_Limited_Views (N : Node_Id) is
        Unum        : constant Unit_Number_Type :=
!                       Get_Source_Unit (Withed_Lib_Unit (N));
        Is_Analyzed : constant Boolean := Analyzed (Cunit (Unum));
  
        Shadow_Pack : Entity_Id;
*************** package body Sem_Ch10 is
*** 6398,6404 ****
        --  declaration, not a subprogram declaration, generic declaration,
        --  generic instantiation, or package renaming declaration.
  
!       case Nkind (Unit (Library_Unit (N))) is
           when N_Package_Declaration =>
              null;
  
--- 6645,6651 ----
        --  declaration, not a subprogram declaration, generic declaration,
        --  generic instantiation, or package renaming declaration.
  
!       case Nkind (Unit (Withed_Lib_Unit (N))) is
           when N_Package_Declaration =>
              null;
  
*************** package body Sem_Ch10 is
*** 6453,6459 ****
  
        --  Check if the chain is already built
  
!       Spec := Specification (Unit (Library_Unit (N)));
  
        if Limited_View_Installed (Spec) then
           return;
--- 6700,6706 ----
  
        --  Check if the chain is already built
  
!       Spec := Specification (Unit (Withed_Lib_Unit (N)));
  
        if Limited_View_Installed (Spec) then
           return;
*************** package body Sem_Ch10 is
*** 6517,6523 ****
              while Present (CI) loop
                 if Nkind (CI) = N_With_Clause
                   and then not
!                    No_Elab_Code_All (Get_Source_Unit (Library_Unit (CI)))
  
                   --  In GNATprove mode, some runtime units are implicitly
                   --  loaded to make their entities available for analysis. In
--- 6764,6770 ----
              while Present (CI) loop
                 if Nkind (CI) = N_With_Clause
                   and then not
!                    No_Elab_Code_All (Get_Source_Unit (Withed_Lib_Unit (CI)))
  
                   --  In GNATprove mode, some runtime units are implicitly
                   --  loaded to make their entities available for analysis. In
*************** package body Sem_Ch10 is
*** 6525,6531 ****
                   --  for this special analysis mode.
  
                   and then not
!                    (GNATprove_Mode and then Implicit_With (CI))
                 then
                    Error_Msg_Sloc := Sloc (No_Elab_Code_All_Pragma);
                    Error_Msg_N
--- 6772,6778 ----
                   --  for this special analysis mode.
  
                   and then not
!                    (GNATprove_Mode and then Is_Implicit_With (CI))
                 then
                    Error_Msg_Sloc := Sloc (No_Elab_Code_All_Pragma);
                    Error_Msg_N
*************** package body Sem_Ch10 is
*** 6695,6704 ****
  
              elsif Current_Sem_Unit = Main_Unit
                and then Serious_Errors_Detected = 0
!               and then not Implicit_With (Item)
              then
                 Set_Is_Immediately_Visible
!                  (Defining_Entity (Unit (Library_Unit (Item))), False);
              end if;
           end if;
  
--- 6942,6951 ----
  
              elsif Current_Sem_Unit = Main_Unit
                and then Serious_Errors_Detected = 0
!               and then not Is_Implicit_With (Item)
              then
                 Set_Is_Immediately_Visible
!                  (Defining_Entity (Unit (Withed_Lib_Unit (Item))), False);
              end if;
           end if;
  
*************** package body Sem_Ch10 is
*** 6745,6751 ****
     --------------------------------
  
     procedure Remove_Limited_With_Clause (N : Node_Id) is
!       Pack_Decl : constant Entity_Id := Unit (Library_Unit (N));
  
     begin
        pragma Assert (Limited_View_Installed (N));
--- 6992,6998 ----
     --------------------------------
  
     procedure Remove_Limited_With_Clause (N : Node_Id) is
!       Pack_Decl : constant Entity_Id := Unit (Withed_Lib_Unit (N));
  
     begin
        pragma Assert (Limited_View_Installed (N));
*************** package body Sem_Ch10 is
*** 7004,7011 ****
        if Debug_Flag_I then
           Write_Str ("remove limited view of ");
           Write_Name (Chars (Pack_Id));
!          Write_Str (" from visibility");
!          Write_Eol;
        end if;
  
        --  The package already appears in the compilation closure. As a result,
--- 7251,7257 ----
        if Debug_Flag_I then
           Write_Str ("remove limited view of ");
           Write_Name (Chars (Pack_Id));
!          Write_Line (" from visibility");
        end if;
  
        --  The package already appears in the compilation closure. As a result,
*************** package body Sem_Ch10 is
*** 7170,7177 ****
        if Debug_Flag_I then
           Write_Str ("remove unit ");
           Write_Name (Chars (Unit_Name));
!          Write_Str (" from visibility");
!          Write_Eol;
        end if;
  
        Set_Is_Visible_Lib_Unit        (Unit_Name, False);
--- 7416,7422 ----
        if Debug_Flag_I then
           Write_Str ("remove unit ");
           Write_Name (Chars (Unit_Name));
!          Write_Line (" from visibility");
        end if;
  
        Set_Is_Visible_Lib_Unit        (Unit_Name, False);
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch10.ads gcc-15.1.0/gcc/ada/sem_ch10.ads
*** gcc-14.2.0/gcc/ada/sem_ch10.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch10.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch11.adb gcc-15.1.0/gcc/ada/sem_ch11.adb
*** gcc-14.2.0/gcc/ada/sem_ch11.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch11.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch11 is
*** 443,448 ****
--- 443,452 ----
        elsif Present (At_End_Proc (N)) then
           Analyze (At_End_Proc (N));
        end if;
+ 
+       if Present (Finally_Statements (N)) then
+          Analyze_Statements (Finally_Statements (N));
+       end if;
     end Analyze_Handled_Statements;
  
     ------------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch11.ads gcc-15.1.0/gcc/ada/sem_ch11.ads
*** gcc-14.2.0/gcc/ada/sem_ch11.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch11.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch12.adb gcc-15.1.0/gcc/ada/sem_ch12.adb
*** gcc-14.2.0/gcc/ada/sem_ch12.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch12.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,31 ****
--- 26,32 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Contracts;      use Contracts;
+ with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
*************** with Itypes;         use Itypes;
*** 40,45 ****
--- 41,47 ----
  with Lib;            use Lib;
  with Lib.Load;       use Lib.Load;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Nlists;         use Nlists;
  with Namet;          use Namet;
  with Nmake;          use Nmake;
*************** package body Sem_Ch12 is
*** 189,195 ****
     --  (This is just part of the semantic analysis of New_Outer).
  
     --  Critically, references to Global within Inner must be preserved, while
!    --  references to Semi_Global should not preserved, because they must now
     --  resolve to an entity within New_Outer. To distinguish between these, we
     --  use a global variable, Current_Instantiated_Parent, which is set when
     --  performing a generic copy during instantiation (at 2). This variable is
--- 191,197 ----
     --  (This is just part of the semantic analysis of New_Outer).
  
     --  Critically, references to Global within Inner must be preserved, while
!    --  references to Semi_Global should not be preserved, because they must now
     --  resolve to an entity within New_Outer. To distinguish between these, we
     --  use a global variable, Current_Instantiated_Parent, which is set when
     --  performing a generic copy during instantiation (at 2). This variable is
*************** package body Sem_Ch12 is
*** 265,270 ****
--- 267,273 ----
     --       Initial_Condition        Contract_Cases
     --       Initializes              Depends
     --                                Exceptional_Cases
+    --                                Exit_Cases
     --                                Extensions_Visible
     --                                Global
     --     package body               Post
*************** package body Sem_Ch12 is
*** 482,488 ****
     --  and actuals. Each association becomes a renaming declaration for the
     --  formal entity. F_Copy is the analyzed list of formals in the generic
     --  copy. It is used to apply legality checks to the actuals. I_Node is the
!    --  instantiation node itself.
  
     procedure Analyze_Subprogram_Instantiation
       (N : Node_Id;
--- 485,491 ----
     --  and actuals. Each association becomes a renaming declaration for the
     --  formal entity. F_Copy is the analyzed list of formals in the generic
     --  copy. It is used to apply legality checks to the actuals. I_Node is the
!    --  instantiation node.
  
     procedure Analyze_Subprogram_Instantiation
       (N : Node_Id;
*************** package body Sem_Ch12 is
*** 518,523 ****
--- 521,538 ----
     --  The body of the wrapper is a call to the actual, with the generated
     --  pre/postconditon checks added.
  
+    procedure Build_Subprogram_Wrappers
+      (Match, Analyzed_Formal : Node_Id; Renamings : List_Id);
+    --  Ada 2022: AI12-0272 introduces pre/postconditions for formal
+    --  subprograms. The implementation of making the formal into a renaming
+    --  of the actual does not work, given that subprogram renaming cannot
+    --  carry aspect specifications. Instead we must create subprogram
+    --  wrappers whose body is a call to the actual, and whose declaration
+    --  carries the aspects of the formal.
+    --  The wrapper declaration and body are appended to Renamings.
+    --  ???But renaming declarations CAN have aspects specs,
+    --  and that was true from the start (see AI05-0183-1).
+ 
     procedure Check_Abbreviated_Instance
       (N                : Node_Id;
        Parent_Installed : in out Boolean);
*************** package body Sem_Ch12 is
*** 557,563 ****
     --  package cannot be inlined by the front end because front-end inlining
     --  requires a strict linear order of elaboration.
  
!    function Check_Hidden_Primitives (Assoc_List : List_Id) return Elist_Id;
     --  Check if some association between formals and actuals requires to make
     --  visible primitives of a tagged type, and make those primitives visible.
     --  Return the list of primitives whose visibility is modified (to restore
--- 572,578 ----
     --  package cannot be inlined by the front end because front-end inlining
     --  requires a strict linear order of elaboration.
  
!    function Check_Hidden_Primitives (Renamings : List_Id) return Elist_Id;
     --  Check if some association between formals and actuals requires to make
     --  visible primitives of a tagged type, and make those primitives visible.
     --  Return the list of primitives whose visibility is modified (to restore
*************** package body Sem_Ch12 is
*** 722,727 ****
--- 737,753 ----
     --  Determine whether a formal subprogram has a Pre- or Postcondition,
     --  in which case a subprogram wrapper has to be built for the actual.
  
+    function Has_Fully_Defined_Profile (Subp : Entity_Id) return Boolean;
+    --  Determine whether the parameter types and the return type of Subp
+    --  are fully defined at the point of instantiation.
+ 
+    function Has_Null_Default (N : Node_Id) return Boolean is
+      (Nkind (N) in N_Formal_Subprogram_Declaration
+       and then Nkind (Specification (N)) = N_Procedure_Specification
+       and then Null_Present (Specification (N)));
+    --  True if N is the declaration of a formal procedure with "is null"
+    --  as the default.
+ 
     procedure Hide_Current_Scope;
     --  When instantiating a generic child unit, the parent context must be
     --  present, but the instance and all entities that may be generated
*************** package body Sem_Ch12 is
*** 785,793 ****
     --  generic parent of a generic child unit when compiling its body, so
     --  that full views of types in the parent are made visible.
  
!    --  The functions Instantiate_XXX perform various legality checks and build
     --  the declarations for instantiated generic parameters. In all of these
!    --  Formal is the entity in the generic unit, Actual is the entity of
     --  expression in the generic associations, and Analyzed_Formal is the
     --  formal in the generic copy, which contains the semantic information to
     --  be used to validate the actual.
--- 811,819 ----
     --  generic parent of a generic child unit when compiling its body, so
     --  that full views of types in the parent are made visible.
  
!    --  The functions Instantiate_... perform various legality checks and build
     --  the declarations for instantiated generic parameters. In all of these
!    --  Formal is the entity in the generic unit, Actual is the entity or
     --  expression in the generic associations, and Analyzed_Formal is the
     --  formal in the generic copy, which contains the semantic information to
     --  be used to validate the actual.
*************** package body Sem_Ch12 is
*** 802,807 ****
--- 828,838 ----
        Actual          : Node_Id;
        Analyzed_Formal : Node_Id;
        Actual_Decls    : List_Id) return List_Id;
+    --  Actual_Decls is the list of renamings being built; this is used for
+    --  formal derived types, to determine whether the parent type is another
+    --  formal derived type in the same generic unit.
+    --  Note that the call site appends the result of this function onto
+    --  the same list it is passing to Actual_Decls.
  
     function Instantiate_Formal_Subprogram
       (Formal          : Node_Id;
*************** package body Sem_Ch12 is
*** 893,898 ****
--- 924,933 ----
     procedure Remove_Parent (In_Body : Boolean := False);
     --  Reverse effect after instantiation of child is complete
  
+    function Renames_Standard_Subprogram (Subp : Entity_Id) return Boolean;
+    --  Determine whether Subp renames one of the subprograms defined in the
+    --  generated package Standard.
+ 
     function Requires_Conformance_Checking (N : Node_Id) return Boolean;
     --  Determine whether the formal package declaration N requires conformance
     --  checking with actuals in instantiations.
*************** package body Sem_Ch12 is
*** 1086,2322 ****
       Table_Increment      => 200,
       Table_Name           => "Generic_Flags");
  
!    ---------------------------
!    -- Abandon_Instantiation --
!    ---------------------------
  
!    procedure Abandon_Instantiation (N : Node_Id) is
!    begin
!       Error_Msg_N ("\instantiation abandoned!", N);
!       raise Instantiation_Error;
!    end Abandon_Instantiation;
  
!    ----------------------------------
!    -- Adjust_Inherited_Pragma_Sloc --
!    ----------------------------------
  
!    procedure Adjust_Inherited_Pragma_Sloc (N : Node_Id) is
!    begin
!       Adjust_Instantiation_Sloc (N, S_Adjustment);
!    end Adjust_Inherited_Pragma_Sloc;
  
!    --------------------------
!    -- Analyze_Associations --
!    --------------------------
  
!    function Analyze_Associations
!      (I_Node  : Node_Id;
!       Formals : List_Id;
!       F_Copy  : List_Id) return List_Id
!    is
!       Actuals_To_Freeze : constant Elist_Id  := New_Elmt_List;
!       Assoc_List        : constant List_Id   := New_List;
!       Default_Actuals   : constant List_Id   := New_List;
!       Gen_Unit          : constant Entity_Id :=
!                             Defining_Entity (Parent (F_Copy));
  
!       Actuals         : List_Id;
!       Actual          : Node_Id;
!       Analyzed_Formal : Node_Id;
!       First_Named     : Node_Id := Empty;
!       Formal          : Node_Id;
!       Match           : Node_Id := Empty;
!       Named           : Node_Id;
!       Saved_Formal    : Node_Id;
  
!       Default_Formals : constant List_Id := New_List;
!       --  If an Others_Choice is present, some of the formals may be defaulted.
!       --  To simplify the treatment of visibility in an instance, we introduce
!       --  individual defaults for each such formal. These defaults are
!       --  appended to the list of associations and replace the Others_Choice.
  
!       Found_Assoc : Node_Id;
!       --  Association for the current formal being match. Empty if there are
!       --  no remaining actuals, or if there is no named association with the
!       --  name of the formal.
  
!       Is_Named_Assoc : Boolean;
!       Num_Matched    : Nat := 0;
!       Num_Actuals    : Nat := 0;
  
!       Others_Present : Boolean := False;
!       Others_Choice  : Node_Id := Empty;
!       --  In Ada 2005, indicates partial parameterization of a formal
!       --  package. As usual an other association must be last in the list.
  
!       procedure Build_Subprogram_Wrappers;
!       --  Ada 2022: AI12-0272 introduces pre/postconditions for formal
!       --  subprograms. The implementation of making the formal into a renaming
!       --  of the actual does not work, given that subprogram renaming cannot
!       --  carry aspect specifications. Instead we must create subprogram
!       --  wrappers whose body is a call to the actual, and whose declaration
!       --  carries the aspects of the formal.
  
!       procedure Check_Fixed_Point_Actual (Actual : Node_Id);
!       --  Warn if an actual fixed-point type has user-defined arithmetic
!       --  operations, but there is no corresponding formal in the generic,
!       --  in which case the predefined operations will be used. This merits
!       --  a warning because of the special semantics of fixed point ops.
  
!       procedure Check_Overloaded_Formal_Subprogram (Formal : Node_Id);
!       --  Apply RM 12.3(9): if a formal subprogram is overloaded, the instance
!       --  cannot have a named association for it. AI05-0025 extends this rule
!       --  to formals of formal packages by AI05-0025, and it also applies to
!       --  box-initialized formals.
  
!       function Has_Fully_Defined_Profile (Subp : Entity_Id) return Boolean;
!       --  Determine whether the parameter types and the return type of Subp
!       --  are fully defined at the point of instantiation.
  
!       function Matching_Actual
!         (F   : Entity_Id;
!          A_F : Entity_Id) return Node_Id;
!       --  Find actual that corresponds to a given formal parameter. If the
!       --  actuals are positional, return the next one, if any. If the actuals
!       --  are named, scan the parameter associations to find the right one.
!       --  A_F is the corresponding entity in the analyzed generic, which is
!       --  placed on the selector name.
!       --
!       --  In Ada 2005, a named association may be given with a box, in which
!       --  case Matching_Actual sets Found_Assoc to the generic association,
!       --  but return Empty for the actual itself. In this case the code below
!       --  creates a corresponding declaration for the formal.
  
!       function Partial_Parameterization return Boolean;
!       --  Ada 2005: if no match is found for a given formal, check if the
!       --  association for it includes a box, or whether the associations
!       --  include an Others clause.
  
!       procedure Process_Default (Formal : Node_Id);
!       --  Add a copy of the declaration of a generic formal to the list of
!       --  associations, and add an explicit box association for its entity
!       --  if there is none yet, and the default comes from an Others_Choice.
  
!       function Renames_Standard_Subprogram (Subp : Entity_Id) return Boolean;
!       --  Determine whether Subp renames one of the subprograms defined in the
!       --  generated package Standard.
  
!       procedure Set_Analyzed_Formal;
!       --  Find the node in the generic copy that corresponds to a given formal.
!       --  The semantic information on this node is used to perform legality
!       --  checks on the actuals. Because semantic analysis can introduce some
!       --  anonymous entities or modify the declaration node itself, the
!       --  correspondence between the two lists is not one-one. In addition to
!       --  anonymous types, the presence a formal equality will introduce an
!       --  implicit declaration for the corresponding inequality.
  
!       -------------------------------
!       -- Build_Subprogram_Wrappers --
!       -------------------------------
  
!       procedure Build_Subprogram_Wrappers is
!          function Adjust_Aspect_Sloc (N : Node_Id) return Traverse_Result;
!          --  Adjust sloc so that errors located at N will be reported with
!          --  information about the instance and not just about the generic.
  
!          ------------------------
!          -- Adjust_Aspect_Sloc --
!          ------------------------
  
!          function Adjust_Aspect_Sloc (N : Node_Id) return Traverse_Result is
!          begin
!             Adjust_Instantiation_Sloc (N, S_Adjustment);
!             return OK;
!          end Adjust_Aspect_Sloc;
  
!          procedure Adjust_Aspect_Slocs is new
!            Traverse_Proc (Adjust_Aspect_Sloc);
  
!          Formal : constant Entity_Id :=
!            Defining_Unit_Name (Specification (Analyzed_Formal));
!          Aspect_Spec : Node_Id;
!          Decl_Node   : Node_Id;
!          Actual_Name : Node_Id;
  
!       --  Start of processing for Build_Subprogram_Wrappers
  
!       begin
!          --  Create declaration for wrapper subprogram
!          --  The actual can be overloaded, in which case it will be
!          --  resolved when the call in the wrapper body is analyzed.
!          --  We attach the possible interpretations of the actual to
!          --  the name to be used in the call in the wrapper body.
  
!          if Is_Entity_Name (Match) then
!             Actual_Name := New_Occurrence_Of (Entity (Match), Sloc (Match));
  
!             if Is_Overloaded (Match) then
!                Save_Interps (Match, Actual_Name);
!             end if;
  
!          else
!             --  Use renaming declaration created when analyzing actual.
!             --  This may be incomplete if there are several formal
!             --  subprograms whose actual is an attribute ???
  
!             declare
!                Renaming_Decl : constant Node_Id := Last (Assoc_List);
  
!             begin
!                Actual_Name := New_Occurrence_Of
!                      (Defining_Entity (Renaming_Decl), Sloc (Match));
!                Set_Etype (Actual_Name, Get_Instance_Of (Etype (Formal)));
!             end;
!          end if;
  
!          Decl_Node := Build_Subprogram_Decl_Wrapper (Formal);
  
!          --  Transfer aspect specifications from formal subprogram to wrapper
  
!          Set_Aspect_Specifications (Decl_Node,
!            New_Copy_List_Tree (Aspect_Specifications (Analyzed_Formal)));
  
!          Aspect_Spec := First (Aspect_Specifications (Decl_Node));
!          while Present (Aspect_Spec) loop
!             Adjust_Aspect_Slocs (Aspect_Spec);
!             Set_Analyzed (Aspect_Spec, False);
!             Next (Aspect_Spec);
!          end loop;
  
!          Append_To (Assoc_List, Decl_Node);
  
!          --  Create corresponding body, and append it to association list
!          --  that appears at the head of the declarations in the instance.
!          --  The subprogram may be called in the analysis of subsequent
!          --  actuals.
  
!          Append_To (Assoc_List,
!            Build_Subprogram_Body_Wrapper (Formal, Actual_Name));
!       end Build_Subprogram_Wrappers;
  
!       ----------------------------------------
!       -- Check_Overloaded_Formal_Subprogram --
!       ----------------------------------------
  
!       procedure Check_Overloaded_Formal_Subprogram (Formal : Node_Id) is
!          Temp_Formal : Node_Id;
  
        begin
!          Temp_Formal := First (Formals);
!          while Present (Temp_Formal) loop
!             if Nkind (Temp_Formal) in N_Formal_Subprogram_Declaration
!               and then Temp_Formal /= Formal
!               and then
!                 Chars (Defining_Unit_Name (Specification (Formal))) =
!                 Chars (Defining_Unit_Name (Specification (Temp_Formal)))
!             then
!                if Present (Found_Assoc) then
!                   Error_Msg_N
!                     ("named association not allowed for overloaded formal",
!                      Found_Assoc);
! 
!                else
!                   Error_Msg_N
!                     ("named association not allowed for overloaded formal",
!                      Others_Choice);
!                end if;
! 
!                Abandon_Instantiation (Instantiation_Node);
!             end if;
  
!             Next (Temp_Formal);
           end loop;
!       end Check_Overloaded_Formal_Subprogram;
  
!       -------------------------------
!       --  Check_Fixed_Point_Actual --
!       -------------------------------
  
!       procedure Check_Fixed_Point_Actual (Actual : Node_Id) is
!          Typ    : constant Entity_Id := Entity (Actual);
!          Prims  : constant Elist_Id  := Collect_Primitive_Operations (Typ);
!          Elem   : Elmt_Id;
!          Formal : Node_Id;
!          Op     : Entity_Id;
  
        begin
!          --  Locate primitive operations of the type that are arithmetic
!          --  operations.
  
!          Elem := First_Elmt (Prims);
!          while Present (Elem) loop
!             if Nkind (Node (Elem)) = N_Defining_Operator_Symbol then
  
!                --  Check whether the generic unit has a formal subprogram of
!                --  the same name. This does not check types but is good enough
!                --  to justify a warning.
  
!                Formal := First_Non_Pragma (Formals);
!                Op     := Alias (Node (Elem));
  
!                while Present (Formal) loop
!                   if Nkind (Formal) = N_Formal_Concrete_Subprogram_Declaration
!                     and then Chars (Defining_Entity (Formal)) =
!                                Chars (Node (Elem))
                    then
!                      exit;
  
!                   elsif Nkind (Formal) = N_Formal_Package_Declaration then
!                      declare
!                         Assoc : Node_Id;
!                         Ent   : Entity_Id;
  
!                      begin
!                         --  Locate corresponding actual, and check whether it
!                         --  includes a fixed-point type.
  
!                         Assoc := First (Assoc_List);
!                         while Present (Assoc) loop
!                            exit when
!                              Nkind (Assoc) = N_Package_Renaming_Declaration
!                                and then Chars (Defining_Unit_Name (Assoc)) =
!                                  Chars (Defining_Identifier (Formal));
  
!                            Next (Assoc);
!                         end loop;
  
!                         if Present (Assoc) then
  
!                            --  If formal package declares a fixed-point type,
!                            --  and the user-defined operator is derived from
!                            --  a generic instance package, the fixed-point type
!                            --  does not use the corresponding predefined op.
  
!                            Ent := First_Entity (Entity (Name (Assoc)));
!                            while Present (Ent) loop
!                               if Is_Fixed_Point_Type (Ent)
!                                 and then Present (Op)
!                                 and then Is_Generic_Instance (Scope (Op))
!                               then
!                                  return;
!                               end if;
  
!                               Next_Entity (Ent);
!                            end loop;
!                         end if;
!                      end;
!                   end if;
  
!                   Next (Formal);
!                end loop;
  
!                if No (Formal) then
!                   Error_Msg_Sloc := Sloc (Node (Elem));
!                   Error_Msg_NE
!                     ("?instance uses predefined operation, not primitive "
!                      & "operation&#", Actual, Node (Elem));
!                end if;
              end if;
  
!             Next_Elmt (Elem);
!          end loop;
!       end Check_Fixed_Point_Actual;
  
!       -------------------------------
!       -- Has_Fully_Defined_Profile --
!       -------------------------------
  
!       function Has_Fully_Defined_Profile (Subp : Entity_Id) return Boolean is
!          function Is_Fully_Defined_Type (Typ : Entity_Id) return Boolean;
!          --  Determine whethet type Typ is fully defined
  
!          ---------------------------
!          -- Is_Fully_Defined_Type --
!          ---------------------------
  
!          function Is_Fully_Defined_Type (Typ : Entity_Id) return Boolean is
!          begin
!             --  A private type without a full view is not fully defined
  
!             if Is_Private_Type (Typ)
!               and then No (Full_View (Typ))
!             then
!                return False;
  
!             --  An incomplete type is never fully defined
  
!             elsif Is_Incomplete_Type (Typ) then
!                return False;
  
!             --  All other types are fully defined
  
              else
!                return True;
              end if;
!          end Is_Fully_Defined_Type;
! 
!          --  Local declarations
  
!          Param : Entity_Id;
  
!       --  Start of processing for Has_Fully_Defined_Profile
  
        begin
!          --  Check the parameters
! 
!          Param := First_Formal (Subp);
!          while Present (Param) loop
!             if not Is_Fully_Defined_Type (Etype (Param)) then
!                return False;
              end if;
  
!             Next_Formal (Param);
!          end loop;
  
!          --  Check the return type
  
!          return Is_Fully_Defined_Type (Etype (Subp));
!       end Has_Fully_Defined_Profile;
  
!       ---------------------
!       -- Matching_Actual --
!       ---------------------
  
!       function Matching_Actual
!         (F   : Entity_Id;
!          A_F : Entity_Id) return Node_Id
!       is
!          Prev : Node_Id;
!          Act  : Node_Id;
  
        begin
!          Is_Named_Assoc := False;
  
!          --  End of list of purely positional parameters
  
!          if No (Actual) or else Nkind (Actual) = N_Others_Choice then
!             Found_Assoc := Empty;
!             Act         := Empty;
  
!          --  Case of positional parameter corresponding to current formal
  
!          elsif No (Selector_Name (Actual)) then
!             Found_Assoc := Actual;
!             Act         := Explicit_Generic_Actual_Parameter (Actual);
!             Num_Matched := Num_Matched + 1;
!             Next (Actual);
  
!          --  Otherwise scan list of named actuals to find the one with the
!          --  desired name. All remaining actuals have explicit names.
  
!          else
!             Is_Named_Assoc := True;
!             Found_Assoc := Empty;
!             Act         := Empty;
!             Prev        := Empty;
  
!             while Present (Actual) loop
!                if Nkind (Actual) = N_Others_Choice then
!                   Found_Assoc := Empty;
!                   Act         := Empty;
  
!                elsif Chars (Selector_Name (Actual)) = Chars (F) then
!                   Set_Entity (Selector_Name (Actual), A_F);
!                   Set_Etype  (Selector_Name (Actual), Etype (A_F));
!                   Generate_Reference (A_F, Selector_Name (Actual));
  
!                   Found_Assoc := Actual;
!                   Act         := Explicit_Generic_Actual_Parameter (Actual);
!                   Num_Matched := Num_Matched + 1;
!                   exit;
                 end if;
  
!                Prev := Actual;
!                Next (Actual);
              end loop;
  
!             --  Reset for subsequent searches. In most cases the named
!             --  associations are in order. If they are not, we reorder them
!             --  to avoid scanning twice the same actual. This is not just a
!             --  question of efficiency: there may be multiple defaults with
!             --  boxes that have the same name. In a nested instantiation we
!             --  insert actuals for those defaults, and cannot rely on their
!             --  names to disambiguate them.
  
!             if Actual = First_Named then
!                Next (First_Named);
  
!             elsif Present (Actual) then
!                Insert_Before (First_Named, Remove_Next (Prev));
!             end if;
  
!             Actual := First_Named;
!          end if;
  
!          if Is_Entity_Name (Act) and then Present (Entity (Act)) then
!             Set_Used_As_Generic_Actual (Entity (Act));
!          end if;
  
!          return Act;
!       end Matching_Actual;
  
        ------------------------------
!       -- Partial_Parameterization --
        ------------------------------
  
!       function Partial_Parameterization return Boolean is
        begin
!          return Others_Present
!           or else (Present (Found_Assoc) and then Box_Present (Found_Assoc));
!       end Partial_Parameterization;
  
!       ---------------------
!       -- Process_Default --
!       ---------------------
  
!       procedure Process_Default (Formal : Node_Id) is
!          Loc     : constant Source_Ptr := Sloc (I_Node);
!          F_Id    : constant Entity_Id  := Defining_Entity (Formal);
!          Decl    : Node_Id;
!          Default : Node_Id;
!          Id      : Entity_Id;
  
        begin
!          --  Append copy of formal declaration to associations, and create new
!          --  defining identifier for it.
  
!          Decl := New_Copy_Tree (Formal);
!          Id := Make_Defining_Identifier (Sloc (F_Id), Chars (F_Id));
  
!          if Nkind (Formal) in N_Formal_Subprogram_Declaration then
!             Set_Defining_Unit_Name (Specification (Decl), Id);
  
!          else
!             Set_Defining_Identifier (Decl, Id);
           end if;
  
!          Append (Decl, Assoc_List);
  
!          if No (Found_Assoc) then
!             Default :=
!                Make_Generic_Association (Loc,
!                  Selector_Name                     =>
!                    New_Occurrence_Of (Id, Loc),
!                  Explicit_Generic_Actual_Parameter => Empty);
!             Set_Box_Present (Default);
!             Append (Default, Default_Formals);
           end if;
!       end Process_Default;
  
!       ---------------------------------
!       -- Renames_Standard_Subprogram --
!       ---------------------------------
  
!       function Renames_Standard_Subprogram (Subp : Entity_Id) return Boolean is
!          Id : Entity_Id;
  
        begin
!          Id := Alias (Subp);
!          while Present (Id) loop
!             if Scope (Id) = Standard_Standard then
!                return True;
!             end if;
  
!             Id := Alias (Id);
!          end loop;
  
!          return False;
!       end Renames_Standard_Subprogram;
  
!       -------------------------
!       -- Set_Analyzed_Formal --
!       -------------------------
  
!       procedure Set_Analyzed_Formal is
!          Kind : Node_Kind;
  
        begin
!          while Present (Analyzed_Formal) loop
!             Kind := Nkind (Analyzed_Formal);
  
!             case Nkind (Formal) is
!                when N_Formal_Subprogram_Declaration =>
!                   exit when Kind in N_Formal_Subprogram_Declaration
!                     and then
!                       Chars
!                         (Defining_Unit_Name (Specification (Formal))) =
!                       Chars
!                         (Defining_Unit_Name (Specification (Analyzed_Formal)));
  
!                when N_Formal_Package_Declaration =>
!                   exit when Kind in N_Formal_Package_Declaration
!                                   | N_Generic_Package_Declaration
!                                   | N_Package_Declaration;
  
!                when N_Use_Package_Clause
!                   | N_Use_Type_Clause
!                =>
!                   exit;
  
!                when others =>
  
!                   --  Skip freeze nodes, and nodes inserted to replace
!                   --  unrecognized pragmas.
  
!                   exit when
!                     Kind not in N_Formal_Subprogram_Declaration
!                       and then Kind not in N_Subprogram_Declaration
!                                          | N_Freeze_Entity
!                                          | N_Null_Statement
!                                          | N_Itype_Reference
!                       and then Chars (Defining_Identifier (Formal)) =
!                                Chars (Defining_Identifier (Analyzed_Formal));
!             end case;
  
!             Next (Analyzed_Formal);
           end loop;
!       end Set_Analyzed_Formal;
  
!    --  Start of processing for Analyze_Associations
  
!    begin
!       Actuals := Generic_Associations (I_Node);
  
!       if Present (Actuals) then
  
!          --  Check for an Others choice, indicating a partial parameterization
!          --  for a formal package.
  
!          Actual := First (Actuals);
!          while Present (Actual) loop
!             if Nkind (Actual) = N_Others_Choice then
!                Others_Present := True;
!                Others_Choice  := Actual;
  
!                if Present (Next (Actual)) then
!                   Error_Msg_N ("OTHERS must be last association", Actual);
!                end if;
  
!                --  This subprogram is used both for formal packages and for
!                --  instantiations. For the latter, associations must all be
!                --  explicit.
  
!                if Nkind (I_Node) /= N_Formal_Package_Declaration
!                  and then Comes_From_Source (I_Node)
!                then
!                   Error_Msg_N
!                     ("OTHERS association not allowed in an instance",
!                       Actual);
!                end if;
  
!                --  In any case, nothing to do after the others association
  
!                exit;
  
!             elsif Box_Present (Actual)
!               and then Comes_From_Source (I_Node)
!               and then Nkind (I_Node) /= N_Formal_Package_Declaration
              then
!                Error_Msg_N
!                  ("box association not allowed in an instance", Actual);
              end if;
  
!             Next (Actual);
!          end loop;
  
!          --  If named associations are present, save first named association
!          --  (it may of course be Empty) to facilitate subsequent name search.
  
!          First_Named := First (Actuals);
!          while Present (First_Named)
!            and then Nkind (First_Named) /= N_Others_Choice
!            and then No (Selector_Name (First_Named))
!          loop
!             Num_Actuals := Num_Actuals + 1;
!             Next (First_Named);
           end loop;
!       end if;
  
!       Named := First_Named;
!       while Present (Named) loop
!          if Nkind (Named) /= N_Others_Choice
!            and then No (Selector_Name (Named))
!          then
!             Error_Msg_N ("invalid positional actual after named one", Named);
!             Abandon_Instantiation (Named);
!          end if;
  
!          --  A named association may lack an actual parameter, if it was
!          --  introduced for a default subprogram that turns out to be local
!          --  to the outer instantiation. If it has a box association it must
!          --  correspond to some formal in the generic.
  
!          if Nkind (Named) /= N_Others_Choice
!            and then (Present (Explicit_Generic_Actual_Parameter (Named))
!                       or else Box_Present (Named))
!          then
!             Num_Actuals := Num_Actuals + 1;
!          end if;
  
!          Next (Named);
!       end loop;
  
!       if Present (Formals) then
!          Formal := First_Non_Pragma (Formals);
!          Analyzed_Formal := First_Non_Pragma (F_Copy);
  
!          if Present (Actuals) then
!             Actual := First (Actuals);
  
!          --  All formals should have default values
  
!          else
!             Actual := Empty;
!          end if;
  
!          while Present (Formal) loop
!             Set_Analyzed_Formal;
!             Saved_Formal := Next_Non_Pragma (Formal);
  
!             case Nkind (Formal) is
!                when N_Formal_Object_Declaration =>
!                   Match :=
!                     Matching_Actual
!                       (Defining_Identifier (Formal),
!                        Defining_Identifier (Analyzed_Formal));
  
!                   if No (Match) and then Partial_Parameterization then
!                      Process_Default (Formal);
  
!                   else
!                      Append_List
!                        (Instantiate_Object (Formal, Match, Analyzed_Formal),
!                         Assoc_List);
  
!                      --  For a defaulted in_parameter, create an entry in the
!                      --  the list of defaulted actuals, for GNATprove use. Do
!                      --  not included these defaults for an instance nested
!                      --  within a generic, because the defaults are also used
!                      --  in the analysis of the enclosing generic, and only
!                      --  defaulted subprograms are relevant there.
  
!                      if No (Match) and then not Inside_A_Generic then
!                         Append_To (Default_Actuals,
!                           Make_Generic_Association (Sloc (I_Node),
!                             Selector_Name                     =>
!                               New_Occurrence_Of
!                                 (Defining_Identifier (Formal), Sloc (I_Node)),
!                             Explicit_Generic_Actual_Parameter =>
!                               New_Copy_Tree (Default_Expression (Formal))));
!                      end if;
!                   end if;
  
!                   --  If the object is a call to an expression function, this
!                   --  is a freezing point for it.
  
!                   if Is_Entity_Name (Match)
!                     and then Present (Entity (Match))
!                     and then Nkind
!                       (Original_Node (Unit_Declaration_Node (Entity (Match))))
!                                                      = N_Expression_Function
!                   then
!                      Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                   end if;
  
!                when N_Formal_Type_Declaration =>
!                   Match :=
!                     Matching_Actual
!                       (Defining_Identifier (Formal),
!                        Defining_Identifier (Analyzed_Formal));
  
!                   if No (Match) then
!                      if Partial_Parameterization then
!                         Process_Default (Formal);
  
!                      elsif Present (Default_Subtype_Mark (Formal)) then
!                         Match := New_Copy (Default_Subtype_Mark (Formal));
!                         Append_List
!                          (Instantiate_Type
!                           (Formal, Match, Analyzed_Formal, Assoc_List),
!                             Assoc_List);
!                         Append_Elmt (Entity (Match), Actuals_To_Freeze);
  
!                      else
!                         Error_Msg_Sloc := Sloc (Gen_Unit);
!                         Error_Msg_NE
!                           ("missing actual&",
!                            Instantiation_Node, Defining_Identifier (Formal));
!                         Error_Msg_NE
!                           ("\in instantiation of & declared#",
!                            Instantiation_Node, Gen_Unit);
!                         Abandon_Instantiation (Instantiation_Node);
!                      end if;
  
!                   else
!                      Analyze (Match);
!                      Append_List
!                        (Instantiate_Type
!                           (Formal, Match, Analyzed_Formal, Assoc_List),
!                         Assoc_List);
  
!                      --  Warn when an actual is a fixed-point with user-
!                      --  defined promitives. The warning is superfluous
!                      --  if the formal is private, because there can be
!                      --  no arithmetic operations in the generic so there
!                      --  no danger of confusion.
  
!                      if Is_Fixed_Point_Type (Entity (Match))
!                        and then not Is_Private_Type
!                                       (Defining_Identifier (Analyzed_Formal))
!                      then
!                         Check_Fixed_Point_Actual (Match);
!                      end if;
  
!                      --  An instantiation is a freeze point for the actuals,
!                      --  unless this is a rewritten formal package, or the
!                      --  formal is an Ada 2012 formal incomplete type.
  
!                      if Nkind (I_Node) = N_Formal_Package_Declaration
!                        or else
!                          (Ada_Version >= Ada_2012
!                            and then
!                              Ekind (Defining_Identifier (Analyzed_Formal)) =
!                                                             E_Incomplete_Type)
!                      then
!                         null;
  
!                      else
!                         Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                      end if;
!                   end if;
  
!                   --  A remote access-to-class-wide type is not a legal actual
!                   --  for a generic formal of an access type (E.2.2(17/2)).
!                   --  In GNAT an exception to this rule is introduced when
!                   --  the formal is marked as remote using implementation
!                   --  defined aspect/pragma Remote_Access_Type. In that case
!                   --  the actual must be remote as well.
  
!                   --  If the current instantiation is the construction of a
!                   --  local copy for a formal package the actuals may be
!                   --  defaulted, and there is no matching actual to check.
  
!                   if Nkind (Analyzed_Formal) = N_Formal_Type_Declaration
!                     and then
!                       Nkind (Formal_Type_Definition (Analyzed_Formal)) =
!                                             N_Access_To_Object_Definition
!                      and then Present (Match)
!                   then
                       declare
!                         Formal_Ent : constant Entity_Id :=
!                                        Defining_Identifier (Analyzed_Formal);
!                      begin
!                         if Is_Remote_Access_To_Class_Wide_Type (Entity (Match))
!                                                 = Is_Remote_Types (Formal_Ent)
!                         then
!                            --  Remoteness of formal and actual match
  
!                            null;
  
!                         elsif Is_Remote_Types (Formal_Ent) then
  
!                            --  Remote formal, non-remote actual
  
!                            Error_Msg_NE
!                              ("actual for& must be remote", Match, Formal_Ent);
  
!                         else
!                            --  Non-remote formal, remote actual
  
!                            Error_Msg_NE
!                              ("actual for& may not be remote",
!                               Match, Formal_Ent);
!                         end if;
                       end;
                    end if;
  
!                when N_Formal_Subprogram_Declaration =>
!                   Match :=
!                     Matching_Actual
!                       (Defining_Unit_Name (Specification (Formal)),
!                        Defining_Unit_Name (Specification (Analyzed_Formal)));
! 
!                   --  If the formal subprogram has the same name as another
!                   --  formal subprogram of the generic, then a named
!                   --  association is illegal (12.3(9)). Exclude named
!                   --  associations that are generated for a nested instance.
! 
!                   if Present (Match)
!                     and then Is_Named_Assoc
!                     and then Comes_From_Source (Found_Assoc)
!                   then
!                      Check_Overloaded_Formal_Subprogram (Formal);
!                   end if;
! 
!                   --  If there is no corresponding actual, this may be case
!                   --  of partial parameterization, or else the formal has a
!                   --  default or a box.
  
!                   if No (Match) and then Partial_Parameterization then
!                      Process_Default (Formal);
  
!                      if Nkind (I_Node) = N_Formal_Package_Declaration then
!                         Check_Overloaded_Formal_Subprogram (Formal);
!                      end if;
  
!                   else
!                      Append_To (Assoc_List,
!                        Instantiate_Formal_Subprogram
!                          (Formal, Match, Analyzed_Formal));
  
!                      --  If formal subprogram has contracts, create wrappers
!                      --  for it. This is an expansion activity that cannot
!                      --  take place e.g. within an enclosing generic unit.
  
!                      if Has_Contracts (Analyzed_Formal)
!                        and then (Expander_Active or GNATprove_Mode)
!                      then
!                         Build_Subprogram_Wrappers;
!                      end if;
  
!                      --  An instantiation is a freeze point for the actuals,
!                      --  unless this is a rewritten formal package.
  
!                      if Nkind (I_Node) /= N_Formal_Package_Declaration
!                        and then Nkind (Match) = N_Identifier
!                        and then Is_Subprogram (Entity (Match))
  
!                        --  The actual subprogram may rename a routine defined
!                        --  in Standard. Avoid freezing such renamings because
!                        --  subprograms coming from Standard cannot be frozen.
  
!                        and then
!                          not Renames_Standard_Subprogram (Entity (Match))
  
!                        --  If the actual subprogram comes from a different
!                        --  unit, it is already frozen, either by a body in
!                        --  that unit or by the end of the declarative part
!                        --  of the unit. This check avoids the freezing of
!                        --  subprograms defined in Standard which are used
!                        --  as generic actuals.
  
!                        and then In_Same_Code_Unit (Entity (Match), I_Node)
!                        and then Has_Fully_Defined_Profile (Entity (Match))
!                      then
!                         --  Mark the subprogram as having a delayed freeze
!                         --  since this may be an out-of-order action.
  
!                         Set_Has_Delayed_Freeze (Entity (Match));
!                         Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                      end if;
!                   end if;
  
!                   --  If this is a nested generic, preserve default for later
!                   --  instantiations. We do this as well for GNATprove use,
!                   --  so that the list of generic associations is complete.
  
!                   if No (Match) and then Box_Present (Formal) then
!                      declare
!                         Subp : constant Entity_Id :=
!                           Defining_Unit_Name
!                             (Specification (Last (Assoc_List)));
  
!                      begin
!                         Append_To (Default_Actuals,
!                           Make_Generic_Association (Sloc (I_Node),
!                             Selector_Name                     =>
!                               New_Occurrence_Of (Subp, Sloc (I_Node)),
!                             Explicit_Generic_Actual_Parameter =>
!                               New_Occurrence_Of (Subp, Sloc (I_Node))));
!                      end;
!                   end if;
  
!                when N_Formal_Package_Declaration =>
!                   --  The name of the formal package may be hidden by the
!                   --  formal parameter itself.
  
!                   if Error_Posted (Analyzed_Formal) then
!                      Abandon_Instantiation (Instantiation_Node);
  
                    else
!                      Match :=
!                        Matching_Actual
!                          (Defining_Identifier (Formal),
!                           Defining_Identifier
!                             (Original_Node (Analyzed_Formal)));
                    end if;
  
!                   if No (Match) then
!                      if Partial_Parameterization then
!                         Process_Default (Formal);
  
!                      else
!                         Error_Msg_Sloc := Sloc (Gen_Unit);
!                         Error_Msg_NE
!                           ("missing actual&",
!                            Instantiation_Node, Defining_Identifier (Formal));
!                         Error_Msg_NE
!                           ("\in instantiation of & declared#",
!                            Instantiation_Node, Gen_Unit);
  
!                         Abandon_Instantiation (Instantiation_Node);
!                      end if;
  
!                   else
!                      Analyze (Match);
!                      Append_List
!                        (Instantiate_Formal_Package
!                          (Formal, Match, Analyzed_Formal),
!                         Assoc_List);
  
!                      --  Determine whether the actual package needs an explicit
!                      --  freeze node. This is only the case if the actual is
!                      --  declared in the same unit and has a body. Normally
!                      --  packages do not have explicit freeze nodes, and gigi
!                      --  only uses them to elaborate entities in a package
!                      --  body.
  
!                      Explicit_Freeze_Check : declare
!                         Actual  : constant Entity_Id := Entity (Match);
!                         Gen_Par : Entity_Id;
  
!                         Needs_Freezing : Boolean;
!                         P              : Node_Id;
  
!                         procedure Check_Generic_Parent;
!                         --  The actual may be an instantiation of a unit
!                         --  declared in a previous instantiation. If that
!                         --  one is also in the current compilation, it must
!                         --  itself be frozen before the actual. The actual
!                         --  may be an instantiation of a generic child unit,
!                         --  in which case the same applies to the instance
!                         --  of the parent which must be frozen before the
!                         --  actual.
!                         --  Should this itself be recursive ???
  
!                         --------------------------
!                         -- Check_Generic_Parent --
!                         --------------------------
  
!                         procedure Check_Generic_Parent is
!                            Inst : constant Node_Id :=
!                                     Get_Unit_Instantiation_Node (Actual);
!                            Par  : Entity_Id;
  
!                         begin
!                            Par := Empty;
  
!                            if Nkind (Parent (Actual)) = N_Package_Specification
!                            then
!                               Par := Scope (Generic_Parent (Parent (Actual)));
  
!                               if Is_Generic_Instance (Par) then
!                                  null;
  
!                               --  If the actual is a child generic unit, check
!                               --  whether the instantiation of the parent is
!                               --  also local and must also be frozen now. We
!                               --  must retrieve the instance node to locate the
!                               --  parent instance if any.
  
!                               elsif Ekind (Par) = E_Generic_Package
!                                 and then Is_Child_Unit (Gen_Par)
!                                 and then Ekind (Scope (Gen_Par)) =
!                                            E_Generic_Package
!                               then
!                                  if Nkind (Inst) = N_Package_Instantiation
!                                    and then Nkind (Name (Inst)) =
!                                               N_Expanded_Name
!                                  then
!                                     --  Retrieve entity of parent instance
  
!                                     Par := Entity (Prefix (Name (Inst)));
!                                  end if;
  
!                               else
!                                  Par := Empty;
!                               end if;
!                            end if;
  
!                            if Present (Par)
!                              and then Is_Generic_Instance (Par)
!                              and then Scope (Par) = Current_Scope
!                              and then
!                                (No (Freeze_Node (Par))
!                                  or else
!                                    not Is_List_Member (Freeze_Node (Par)))
!                            then
!                               Set_Has_Delayed_Freeze (Par);
!                               Append_Elmt (Par, Actuals_To_Freeze);
!                            end if;
!                         end Check_Generic_Parent;
  
!                      --  Start of processing for Explicit_Freeze_Check
  
!                      begin
!                         if Present (Renamed_Entity (Actual)) then
!                            Gen_Par :=
!                              Generic_Parent (Specification
!                                (Unit_Declaration_Node
!                                  (Renamed_Entity (Actual))));
!                         else
!                            Gen_Par :=
!                              Generic_Parent (Specification
!                                (Unit_Declaration_Node (Actual)));
!                         end if;
  
!                         if not Expander_Active
!                           or else not Has_Completion (Actual)
!                           or else not In_Same_Source_Unit (I_Node, Actual)
!                           or else Is_Frozen (Actual)
!                           or else
!                             (Present (Renamed_Entity (Actual))
!                               and then
!                                 not In_Same_Source_Unit
!                                       (I_Node, (Renamed_Entity (Actual))))
!                         then
!                            null;
  
!                         else
!                            --  Finally we want to exclude such freeze nodes
!                            --  from statement sequences, which freeze
!                            --  everything before them.
!                            --  Is this strictly necessary ???
  
!                            Needs_Freezing := True;
  
!                            P := Parent (I_Node);
!                            while Nkind (P) /= N_Compilation_Unit loop
!                               if Nkind (P) = N_Handled_Sequence_Of_Statements
!                               then
!                                  Needs_Freezing := False;
!                                  exit;
!                               end if;
  
!                               P := Parent (P);
!                            end loop;
  
!                            if Needs_Freezing then
!                               Check_Generic_Parent;
  
!                               --  If the actual is a renaming of a proper
!                               --  instance of the formal package, indicate
!                               --  that it is the instance that must be frozen.
  
!                               if Nkind (Parent (Actual)) =
!                                    N_Package_Renaming_Declaration
!                               then
!                                  Set_Has_Delayed_Freeze
!                                    (Renamed_Entity (Actual));
!                                  Append_Elmt
!                                    (Renamed_Entity (Actual),
!                                     Actuals_To_Freeze);
!                               else
!                                  Set_Has_Delayed_Freeze (Actual);
!                                  Append_Elmt (Actual, Actuals_To_Freeze);
!                               end if;
                             end if;
                          end if;
!                      end Explicit_Freeze_Check;
!                   end if;
  
!                --  For use type and use package appearing in the generic part,
!                --  we have already copied them, so we can just move them where
!                --  they belong (we mustn't recopy them since this would mess up
!                --  the Sloc values).
  
!                when N_Use_Package_Clause
!                   | N_Use_Type_Clause
!                =>
!                   if Nkind (Original_Node (I_Node)) =
!                                      N_Formal_Package_Declaration
!                   then
!                      Append (New_Copy_Tree (Formal), Assoc_List);
                    else
!                      Remove (Formal);
!                      Append (Formal, Assoc_List);
                    end if;
  
!                when others =>
!                   raise Program_Error;
!             end case;
! 
!             --  Check here the correct use of Ghost entities in generic
!             --  instantiations, as now the generic has been resolved and
!             --  we know which formal generic parameters are ghost (SPARK
!             --  RM 6.9(10)).
! 
!             if Nkind (Formal) not in N_Use_Package_Clause
!                                    | N_Use_Type_Clause
!             then
!                Check_Ghost_Context_In_Generic_Association
!                  (Actual => Match,
!                   Formal => Defining_Entity (Analyzed_Formal));
!             end if;
! 
!             Formal := Saved_Formal;
!             Next_Non_Pragma (Analyzed_Formal);
!          end loop;
! 
!          if Num_Actuals > Num_Matched then
!             Error_Msg_Sloc := Sloc (Gen_Unit);
! 
!             if Present (Selector_Name (Actual)) then
!                Error_Msg_NE
!                  ("unmatched actual &", Actual, Selector_Name (Actual));
!                Error_Msg_NE
!                  ("\in instantiation of & declared#", Actual, Gen_Unit);
!             else
!                Error_Msg_NE
!                  ("unmatched actual in instantiation of & declared#",
!                   Actual, Gen_Unit);
!             end if;
!          end if;
  
!       elsif Present (Actuals) then
!          Error_Msg_N
!            ("too many actuals in generic instantiation", Instantiation_Node);
!       end if;
  
!       --  An instantiation freezes all generic actuals. The only exceptions
!       --  to this are incomplete types and subprograms which are not fully
!       --  defined at the point of instantiation.
  
!       declare
!          Elmt : Elmt_Id := First_Elmt (Actuals_To_Freeze);
!       begin
!          while Present (Elmt) loop
!             Freeze_Before (I_Node, Node (Elmt));
!             Next_Elmt (Elmt);
!          end loop;
!       end;
  
!       --  If there are default subprograms, normalize the tree by adding
!       --  explicit associations for them. This is required if the instance
!       --  appears within a generic.
  
!       if not Is_Empty_List (Default_Actuals) then
!          declare
!             Default : Node_Id;
  
!          begin
!             Default := First (Default_Actuals);
!             while Present (Default) loop
!                Mark_Rewrite_Insertion (Default);
!                Next (Default);
!             end loop;
  
!             if No (Actuals) then
!                Set_Generic_Associations (I_Node, Default_Actuals);
!             else
!                Append_List_To (Actuals, Default_Actuals);
              end if;
-          end;
-       end if;
  
!       --  If this is a formal package, normalize the parameter list by adding
!       --  explicit box associations for the formals that are covered by an
!       --  Others_Choice.
  
!       Append_List (Default_Formals, Formals);
  
!       return Assoc_List;
!    end Analyze_Associations;
  
     -------------------------------
     -- Analyze_Formal_Array_Type --
--- 1121,2919 ----
       Table_Increment      => 200,
       Table_Name           => "Generic_Flags");
  
!    ------------------
!    -- Associations --
!    ------------------
  
!    package Associations is
  
!       type Actual_Kind is
!         (None,
!          None_Use_Clause,
!          --  Used when the "formal" is a use clause; there is no corresponding
!          --  actual.
!          Box_Subp_Default,
!          --  Used for "is <>" as a subprogram default
!          Box_Actual,
!          --  Used for explicit "name => <>" and "others => <>" in formal
!          --  packages.
!          Name_Exp,
!          --  Name or expression or ....
!          --  Used for an explicit_generic_actual_parameter, and also for the
!          --  default_expression of an in-mode formal, the default_subtype_mark
!          --  of a formal type, and the default_name of a formal subprogram.
!          Null_Default,
!          --  Used for "is null" as a subprogram default.
!          Exp_Func_Default,
!          --  Used for "is (expression)" as a subprogram default,
!          --  which is a language extension (and is different from "is name"
!          --  without parentheses).
!          Dummy_Assoc
!          --  Used for the dummy associations that are created in
!          --  Save_Global_Defaults. These have Explicit_Generic_Actual_Parameter
!          --  = Empty and Box_Present = False
!         );
!       --  ???We wouldn't need this enumeration type if we created new node
!       --  kinds for N_Box_Subp_Default, N_Box_Actual, N_Null_Default, and
!       --  N_Exp_Func_Default.
  
!       type Generic_Actual_Rec (Kind : Actual_Kind := None) is record
!          --  Representation of one generic actual parameter
!          case Kind is
!             when None | None_Use_Clause | Box_Subp_Default | Box_Actual |
!               Null_Default | Dummy_Assoc =>
!                null;
!             when Name_Exp | Exp_Func_Default =>
!                Name_Exp : Node_Id;
!          end case;
!       end record;
  
!       type Actual_Origin_Enum is
!         (None, From_Explicit_Actual, From_Default, From_Inference,
!          From_Others_Box);
!       --  Indication of where the Actual came from -- explicitly in the
!       --  instantiation, inferred from some other type, or defaulted.
  
!       type Inference_Reason is
!       --  Reason an actual type corresponding to a formal type was (or could
!       --  be) inferred from the actual type corresponding to another formal
!       --  type.
!         (Designated_Type, -- designated type from formal access
!          Index_Type, -- index type from formal array
!          Component_Type, -- component type from formal array
!          Discriminant_Type); -- discriminant type from formal discriminated
  
!       function Image (Reason : Inference_Reason) return String is
!         (case Reason is
!            when Designated_Type => "designated type",
!            when Index_Type => "index type",
!            when Component_Type => "component type",
!            when Discriminant_Type => "discriminant type");
  
!       type Assoc_Index is new Pos;
!       subtype Assoc_Count is Assoc_Index'Base range 0 .. Assoc_Index'Last;
  
!       type Assoc_Rec is record
!          --  Association between a single formal/actual pair. But we store both
!          --  the unanalyzed and analyzed formal.
  
!          Un_Formal, An_Formal : Node_Id; -- unanalyzed and analyzed formals
!          --  An_Formal is the node in the generic copy that corresponds to
!          --  Un_Formal. The semantic information on this node is used to
!          --  perform legality checks on the actuals. Because semantic analysis
!          --  can introduce some anonymous entities or modify the declaration
!          --  node itself, the correspondence between the two lists is not
!          --  one-one. In addition to anonymous types, a formal "=" will
!          --  introduce an implicit equal and opposite "/=".
  
!          Explicit_Assoc : Opt_N_Generic_Association_Id;
!          --  Explicit association, if any, from the source or generated.
  
!          Actual : Generic_Actual_Rec;
!          --  Generic actual parameter corresponding to Un_Formal/An_Formal,
!          --  possibly from defaults or others/boxes.
  
!          Actual_Origin : Actual_Origin_Enum;
!          --  Reason why Actual was set; where it came from
  
!          Info_Inferred_Actual : Opt_Type_Kind_Id;
!          --  An inferred actual is always a type entity, not a box, and not
!          --  something like T'Base. This is used only for messages and
!          --  assertions. It contains the type that was, or could have been,
!          --  inferred.
  
!          Inferred_From : Assoc_Index;
!          --  Index of a later Assoc_Rec in the same Gen_Assocs_Rec from which
!          --  this one was inferred, or could be inferred.
!          --  Valid only if Info_Inferred_Actual is present.
  
!          Reason : Inference_Reason;
!          --  Reason the type was inferred, or could have been inferred.
!          --  Valid only if Info_Inferred_Actual is present.
!       end record; -- Assoc_Rec
  
!       type Assoc_Array is array (Assoc_Index range <>) of Assoc_Rec;
!       --  One element for each formal and (if legal) for each corresponding
!       --  actual.
  
!       type Gen_Assocs_Rec (Num_Assocs : Assoc_Count) is record
!          --  Representation of formal/actual matching. Num_Assocs
!          --  is the number of formals and (if legal) the number
!          --  of actuals.
!          Gen_Unit : Entity_Id;
!          --  the generic unit being instantiated
!          Others_Present : Boolean;
!          --  True if "others => <>" (only for formal packages)
!          Assocs : Assoc_Array (1 .. Num_Assocs);
!          --  One for each formal/actual pair; defaulted and inferred actuals
!          --  are included.
!       end record;
  
!       function Match_Assocs
!         (I_Node : Node_Id; Formals : List_Id; F_Copy : List_Id)
!          return Gen_Assocs_Rec;
!       --  I_Node is the instantiation node. Formals is the list of unanalyzed
!       --  formals. F_Copy is the analyzed list of formals in the generic copy.
!       --  Return a Gen_Assocs_Rec with formals, explicit actuals, and default
!       --  actuals filled in. Check legality rules related to formal/actual
!       --  matching.
  
!       procedure Note_Potential_Inference
!         (I_Node : Node_Id; Gen_Assocs : Gen_Assocs_Rec);
!       --  If -gnatd_I, print "info:" messages about type inference that could
!       --  have been done.
  
!    end Associations;
  
!    procedure Analyze_One_Association
!      (I_Node   :  Node_Id; -- instantiation node
!       Assoc    : Associations.Assoc_Rec;
!       --  Logical 'in out' parameters:
!       Result_Renamings  : List_Id;
!       Default_Actuals   : List_Id;
!       Actuals_To_Freeze : Elist_Id);
!    --  Called by Analyze_Associations for each association. The renamings
!    --  are appended onto Result_Renamings. Defaulted actuals are appended
!    --  onto Default_Actuals, and actuals that require freezing are
!    --  appended onto Actuals_To_Freeze.
  
!    procedure Check_Fixed_Point_Warning
!      (Gen_Assocs : Associations.Gen_Assocs_Rec;
!       Renamings : List_Id);
!    --  Warn if any actual is a fixed-point type that has user-defined
!    --  arithmetic operators, but there is no corresponding formal in the
!    --  generic, in which case the predefined operators will be used. This
!    --  merits a warning because of the special semantics of fixed point
!    --  operators. However, do not warn if the formal is private, because there
!    --  can be no arithmetic operators in the generic so there no danger of
!    --  confusion.
  
!    ------------------
!    -- Associations --
!    ------------------
  
!    package body Associations is
  
!       generic
!          with procedure Action (F : Node_Id; Index : Assoc_Index);
!       procedure Formal_Iter (Formals : List_Id);
!       --  Iterate through the unanalyzed formals, calling Action for each one.
!       --  Skip pragmas, but do not skip use clauses.
  
!       function Num_Formals (Formals : List_Id) return Assoc_Count;
!       --  Note: does not include pragmas that occur in the Formals list;
!       --  it does include use clauses.
  
!       generic
!          with procedure Action (F : Node_Id; Index : Assoc_Index);
!       procedure An_Formal_Iter (An_Formals : List_Id);
!       --  Iterate through the analyzed formals, calling Action for each one
!       --  that corresponds to an unanalyzed formal. This should call Action
!       --  exactly the same number of times that Formal_Iter calls its Action.
!       --  Skip pragmas, but do not skip use clauses. Skip extraneous
!       --  analyzed formals in cases where there are multiple ones
!       --  corresponding to a particular unanalyzed one.
  
!       function Num_An_Formals (F_Copy  : List_Id) return Assoc_Count;
!       --  Number of analyzed formals that correspond directly to unanalyzed
!       --  formals. There are all sorts of other things in F_Copy, which
!       --  are not counted.
  
!       procedure Check_Box (I_Node, Actual : Node_Id);
!       --  Check for errors in "others => <>" and "Name => <>"
  
!       function Default (Un_Formal : Node_Id) return Generic_Actual_Rec;
!       --  Return the default for a given formal, which can be a name,
!       --  expression, box, etc.
  
!       procedure Match_Positional
!         (Src_Assoc : in out Node_Id; Assoc : in out Assoc_Rec);
!       --  Called by Match_Assocs to match one positional parameter association.
!       --  If the current formal (in Assoc) is not a use clause, then there is a
!       --  match, and we set Assoc.Actual and move Src_Assoc to the next one.
  
!       procedure Match_Named
!         (Src_Assoc : Node_Id; Assoc : in out Assoc_Rec;
!          Found : in out Boolean);
!       --  Called by Match_Assocs to match one named parameter association.
!       --  If the current formal (in Assoc) is not a use clause, and the
!       --  selector name matches the formal name, then there is a match,
!       --  and we set Assoc.Actual. We also set the Selector_Name to denote
!       --  the matched formal, and set Found to True.
  
!       procedure Inference_Msg
!         (Gen_Unit : Entity_Id;
!          Inferred_To, Inferred_From : Assoc_Rec;
!          Was_Inferred : Boolean);
!       --  If Was_Inferred is True, this prints out an "info:" message
!       --  showing the inference.
!       --  If Was_Inferred is False, the message says that it could have
!       --  been inferred.
  
!       function Find_Assoc
!         (Gen_Assocs : Gen_Assocs_Rec; F : Entity_Id) return Assoc_Index;
!       --  Return the index of F in Gen_Assocs.Assocs, which must be
!       --  present.
  
!       procedure Maybe_Infer_One
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          FF, AA : N_Entity_Id; Inferred_From : Assoc_Index;
!          Reason : Inference_Reason);
!       --  If it makes sense to infer that formal FF is associated with
!       --  actual AA, then do so.
  
!       procedure Infer_From_Access
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          Index : Assoc_Index;
!          F : Node_Id;
!          A_Full : Entity_Id);
!       --  Try to infer the designated type
  
!       procedure Infer_From_Array
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          Index : Assoc_Index;
!          F : Node_Id;
!          A_Full : Entity_Id);
!       --  Try to infer the index and component types
  
!       procedure Infer_From_Discriminated
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          Index : Assoc_Index;
!          F : Node_Id;
!          A_Full : Entity_Id);
!       --  Try to infer the types of discriminants
  
!       procedure Infer_Actuals (Gen_Assocs : in out Gen_Assocs_Rec);
!       --  Called by Match_Assocs after processing explicit and defaulted
!       --  parameters to infer any that are still missing.
  
!       -----------------
!       -- Formal_Iter --
!       -----------------
  
!       --  Formal_Iter is straightforward; An_Formal_Iter is not.
  
+       procedure Formal_Iter (Formals : List_Id) is
+          F : Node_Id := First (Formals);
+          Index : Assoc_Index := 1;
        begin
!          while Present (F) loop
!             case Nkind (F) is
!                when N_Formal_Object_Declaration
!                   | N_Formal_Type_Declaration
!                   | N_Formal_Subprogram_Declaration
!                   | N_Formal_Package_Declaration
!                   | N_Use_Package_Clause
!                   | N_Use_Type_Clause
!                =>
!                   Action (F, Index);
!                   Index := Index + 1;
!                when N_Pragma =>
!                   null;
!                when others =>
!                   raise Program_Error;
!             end case;
  
!             Next (F);
           end loop;
!       end Formal_Iter;
  
!       -----------------
!       -- Num_Formals --
!       -----------------
  
!       function Num_Formals (Formals : List_Id) return Assoc_Count is
!          Result : Assoc_Count := 0;
!          procedure Action (Ignore_F : Node_Id; Ignore : Assoc_Index);
!          procedure Action (Ignore_F : Node_Id; Ignore : Assoc_Index) is
!          begin
!             Result := Result + 1;
!          end Action;
!          procedure Iter is new Formal_Iter (Action);
!       begin
!          Iter (Formals);
!          return Result;
!       end Num_Formals;
  
+       --------------------
+       -- An_Formal_Iter --
+       --------------------
+ 
+       procedure An_Formal_Iter (An_Formals : List_Id) is
+          F : Node_Id := First (An_Formals);
+          Index : Assoc_Index := 1;
        begin
!          --  The correspondence between unanalyzed and analyzed formals is not
!          --  one-one; hence this needs to do some fancy footwork to skip some
!          --  items in the analyzed formals list. In each case where multiple
!          --  items in An_Formals correspond to a particular unanalyzed formal,
!          --  we must pick the "main" one.
  
!          while Present (F) loop
!             case Nkind (F) is
!                when N_Use_Package_Clause | N_Use_Type_Clause =>
!                   Action (F, Index);
!                   Index := Index + 1;
  
!                when N_Formal_Object_Declaration
!                   | N_Formal_Type_Declaration
!                   | N_Formal_Subprogram_Declaration
!                   | N_Package_Declaration
!                   | N_Full_Type_Declaration
!                   | N_Private_Type_Declaration
!                   | N_Private_Extension_Declaration
!                =>
!                   if Is_Internal_Name (Chars (Defining_Entity (F))) then
!                      null;
!                   else
!                      Action (F, Index);
!                      Index := Index + 1;
  
!                      --  Skip full type of derived type
  
!                      if Nkind (F) = N_Full_Type_Declaration
!                        and then Nkind (Type_Definition (F)) =
!                          N_Derived_Type_Definition
!                        and then Present (Next (F))
!                        and then Nkind (Next (F)) = N_Full_Type_Declaration
!                        and then Chars (Defining_Identifier (F)) =
!                          Chars (Defining_Identifier (Next (F)))
!                      then
!                         Next (F);
!                      end if;
!                   end if;
! 
!                when N_Subtype_Declaration =>
!                   if Nkind (Original_Node (F)) in N_Formal_Type_Declaration
                    then
!                      pragma Assert
!                        (not Is_Internal_Name (Chars (Defining_Entity (F))));
!                      Action (F, Index);
!                      Index := Index + 1;
  
!                   elsif Nkind (Original_Node (F)) in N_Full_Type_Declaration
!                   then
!                      null;
!                   else
!                      --  subtype of a formal object
  
!                      pragma Assert
!                        (Nkind (Next (F)) = N_Formal_Object_Declaration);
!                   end if;
  
!                when N_Pragma =>
!                   null;
  
!                when N_Formal_Package_Declaration =>
!                   --  If there were no errors, this would have been transformed
!                   --  into an N_Package_Declaration.
  
!                   Check_Error_Detected;
!                   pragma Assert (Error_Posted (F));
!                   Abandon_Instantiation (Instantiation_Node);
  
!                when others =>
!                   raise Program_Error;
!             end case;
  
!             Next (F);
!          end loop;
!       end An_Formal_Iter;
  
!       --------------------
!       -- Num_An_Formals --
!       --------------------
  
!       function Num_An_Formals (F_Copy  : List_Id) return Assoc_Count is
!          Result : Assoc_Count := 0;
!          procedure Action (Ignore_F : Node_Id; Ignore : Assoc_Index);
!          procedure Action (Ignore_F : Node_Id; Ignore : Assoc_Index) is
!          begin
!             Result := Result + 1;
!          end Action;
!          procedure Iter is new An_Formal_Iter (Action);
!       begin
!          Iter (F_Copy);
!          return Result;
!       end Num_An_Formals;
  
!       ---------------
!       -- Check_Box --
!       ---------------
! 
!       procedure Check_Box (I_Node, Actual : Node_Id) is
!       begin
!          --  "... => <>" is allowed only in formal packages, not old-fashioned
!          --  instantiations.
! 
!          if Nkind (I_Node) /= N_Formal_Package_Declaration
!            and then Comes_From_Source (I_Node)
!          then
!             if Actual in N_Others_Choice_Id then
!                Error_Msg_N
!                  ("OTHERS association not allowed in an instance", Actual);
!             elsif Box_Present (Actual) then
!                Error_Msg_N
!                  ("box association not allowed in an instance", Actual);
              end if;
+          end if;
  
!          --  "others => <>" must come last
  
!          if Actual in N_Others_Choice_Id
!            and then Present (Next (Actual))
!          then
!             Error_Msg_N
!               ("OTHERS must be last association", Actual);
!          end if;
!       end Check_Box;
  
!       -------------
!       -- Default --
!       -------------
  
!       function Default (Un_Formal : Node_Id) return Generic_Actual_Rec is
!       begin
!          return Result : Generic_Actual_Rec do
!             case Nkind (Un_Formal) is
!                when N_Formal_Object_Declaration =>
!                   if Present (Default_Expression (Un_Formal)) then
!                      Result := (Name_Exp, Default_Expression (Un_Formal));
!                   end if;
!                when N_Formal_Type_Declaration =>
!                   if Present (Default_Subtype_Mark (Un_Formal)) then
!                      Result := (Name_Exp, Default_Subtype_Mark (Un_Formal));
!                   end if;
!                when N_Formal_Subprogram_Declaration =>
!                   if Present (Default_Name (Un_Formal)) then
!                      pragma Assert (Result.Kind = None);
!                      Result := (Name_Exp, Default_Name (Un_Formal));
!                   end if;
  
!                   if Box_Present (Un_Formal) then
!                      pragma Assert (Result.Kind = None);
!                      Result := (Kind => Box_Subp_Default);
!                   end if;
  
!                   if Present (Expression (Un_Formal)) then
!                      pragma Assert (Result.Kind = None);
!                      Result := (Exp_Func_Default, Expression (Un_Formal));
!                   end if;
  
!                   if Has_Null_Default (Un_Formal) then
!                      pragma Assert (Result.Kind = None);
!                      Result := (Kind => Null_Default);
!                   end if;
  
!                when N_Formal_Package_Declaration => null;
  
!                when others => raise Program_Error;
!             end case;
!             pragma Assert
!               (if Result.Kind in Name_Exp | Exp_Func_Default then
!                  Present (Result.Name_Exp));
!          end return;
!       end Default;
! 
!       ----------------------
!       -- Match_Positional --
!       ----------------------
! 
!       procedure Match_Positional
!         (Src_Assoc : in out Node_Id; Assoc : in out Assoc_Rec) is
!       begin
!          if Nkind (Assoc.Un_Formal) not in
!            N_Use_Package_Clause | N_Use_Type_Clause
!          then
!             pragma Assert (No (Assoc.Explicit_Assoc));
!             pragma Assert (Assoc.Actual.Kind = None);
!             Assoc.Explicit_Assoc := Src_Assoc;
  
+             --  A "<>" without "name =>" is illegal syntax
+ 
+             if Box_Present (Src_Assoc) then
+                Assoc.Actual := (Kind => Box_Actual);
+                if False then -- ???
+                   --  Disable this for now, because we have various
+                   --  code that needs to be updated.
+                   Error_Msg_N
+                     ("box requires named notation", Src_Assoc);
+                end if;
              else
!                Assoc.Actual :=
!                  (Name_Exp,
!                   Explicit_Generic_Actual_Parameter (Src_Assoc));
!                pragma Assert (Present (Assoc.Actual.Name_Exp));
              end if;
!             Assoc.Actual_Origin := From_Explicit_Actual;
  
!             Next (Src_Assoc);
!          end if;
!       end Match_Positional;
  
!       -----------------
!       -- Match_Named --
!       -----------------
  
+       procedure Match_Named
+         (Src_Assoc : Node_Id; Assoc : in out Assoc_Rec;
+          Found : in out Boolean) is
        begin
!          if Nkind (Assoc.Un_Formal) not in
!              N_Use_Package_Clause | N_Use_Type_Clause
!            and then Chars (Selector_Name (Src_Assoc)) =
!              Chars (Defining_Entity (Assoc.Un_Formal))
!          then
!             if Found then -- second formal with the same name
!                pragma Assert (Comes_From_Source (Src_Assoc));
!                Error_Msg_N
!                  ("named association not allowed for " &
!                   "overloaded formal", Src_Assoc);
!                Abandon_Instantiation (Instantiation_Node);
              end if;
  
!             if Assoc.Actual.Kind /= None then
!                if Comes_From_Source (Src_Assoc) then
!                   Error_Msg_NE
!                     ("duplicate actual for &",
!                      Src_Assoc, Selector_Name (Src_Assoc));
!                end if;
!             else
!                Assoc.Explicit_Assoc := Src_Assoc;
!                if Box_Present (Src_Assoc) then
!                   Assoc.Actual := (Kind => Box_Actual);
  
!                else
!                   if No (Explicit_Generic_Actual_Parameter (Src_Assoc)) then
!                      Assoc.Actual := (Kind => Dummy_Assoc);
!                   else
!                      Assoc.Actual :=
!                        (Name_Exp,
!                         Explicit_Generic_Actual_Parameter (Src_Assoc));
!                   end if;
  
!                   --  Set Entity (etc.) of the selector name:
  
!                   declare
!                      A_F : constant Entity_Id :=
!                        Defining_Entity (Assoc.An_Formal);
!                      Orig_F : constant Node_Id :=
!                        Original_Node (Assoc.An_Formal);
!                      Sel : constant Node_Id :=
!                        Selector_Name (Assoc.Explicit_Assoc);
!                   begin
!                      Set_Entity (Sel, A_F);
!                      Set_Etype  (Sel, Etype (A_F));
  
!                      if Nkind (Orig_F) = N_Formal_Package_Declaration then
!                         Generate_Reference (Defining_Identifier (Orig_F), Sel);
!                         --  ???Original_Node makes no sense, but we're
!                         --  preserving the old behavior.
!                      else
!                         Generate_Reference (A_F, Sel);
!                      end if;
!                   end;
!                end if;
! 
!                Assoc.Actual_Origin := From_Explicit_Actual;
!                Found := True;
!             end if;
!          end if;
!       end Match_Named;
  
+       ------------------
+       -- Match_Assocs --
+       ------------------
+ 
+       function Match_Assocs
+         (I_Node : Node_Id; Formals : List_Id; F_Copy : List_Id)
+          return Gen_Assocs_Rec
+       is
+          Src_Assocs : constant List_Id := Generic_Associations (I_Node);
+          Gen_Unit : constant Entity_Id := Defining_Entity (Parent (F_Copy));
        begin
!          pragma Assert
!            (Num_An_Formals (F_Copy) = Num_Formals (Formals)
!             or else Serious_Errors_Detected > 0);
  
!          return Result : Gen_Assocs_Rec (Num_Assocs => Num_Formals (Formals))
!          do
!             Result.Gen_Unit := Gen_Unit;
!             Result.Others_Present := False;
  
!             --  Loop through the unanalyzed formals:
  
!             declare
!                procedure Set_Formal (F : Node_Id; Index : Assoc_Index);
!                --  Initialize one Assoc_Rec so the formal is set.
!                --  Use a dummy assoc for use clauses.
  
!                procedure Set_Formal (F : Node_Id; Index : Assoc_Index) is
!                   Assoc : Assoc_Rec renames Result.Assocs (Index);
!                begin
!                   if Nkind (F) in N_Use_Package_Clause | N_Use_Type_Clause then
!                      Assoc :=
!                        (Un_Formal => F,
!                         An_Formal => Empty,
!                         Explicit_Assoc => Empty,
!                         Actual => (Kind => None_Use_Clause),
!                         Actual_Origin => None,
!                         Info_Inferred_Actual => Empty,
!                         Inferred_From => <>,
!                         Reason => <>);
!                   else
!                      Assoc :=
!                        (Un_Formal => F,
!                         An_Formal => Empty,
!                         Explicit_Assoc => Empty,
!                         Actual => <>,
!                         Actual_Origin => None,
!                         Info_Inferred_Actual => Empty,
!                         Inferred_From => <>,
!                         Reason => <>);
!                   end if;
!                end Set_Formal;
!                procedure Iter is new Formal_Iter (Set_Formal);
!             begin
!                Iter (Formals);
!             end;
  
!             --  Loop through the analyzed copy of the formals:
  
!             declare
!                procedure Set_An_Formal (F : Node_Id; Index : Assoc_Index);
!                procedure Set_An_Formal (F : Node_Id; Index : Assoc_Index) is
!                   Assoc : Assoc_Rec renames Result.Assocs (Index);
!                begin
!                   Assoc.An_Formal := F;
!                   if Nkind (F) in N_Use_Package_Clause | N_Use_Type_Clause then
!                      pragma Assert
!                        (Nkind (Assoc.Un_Formal) = Nkind (Assoc.An_Formal));
  
!                   else
!                      case Nkind (Assoc.Un_Formal) is
!                         when N_Formal_Object_Declaration
!                            | N_Formal_Subprogram_Declaration
!                         =>
!                            pragma Assert
!                              (Nkind (Assoc.Un_Formal) =
!                               Nkind (Assoc.An_Formal));
  
!                         when N_Formal_Type_Declaration =>
!                            pragma Assert
!                              (Nkind (Original_Node (Assoc.An_Formal)) =
!                               N_Formal_Type_Declaration);
!                            pragma Assert
!                              (Nkind (Assoc.An_Formal) in
!                                 N_Formal_Type_Declaration
!                               | N_Full_Type_Declaration
!                               | N_Private_Type_Declaration
!                               | N_Private_Extension_Declaration
!                               | N_Subtype_Declaration);
  
!                         when N_Formal_Package_Declaration =>
!                            pragma Assert
!                              (Nkind (Original_Node (Assoc.An_Formal)) =
!                               N_Formal_Package_Declaration);
!                            pragma Assert
!                              (Nkind (Assoc.An_Formal) = N_Package_Declaration);
! 
!                         when others => pragma Assert (False);
!                      end case;
! 
!                      pragma Assert
!                        (Chars (Defining_Entity (Assoc.Un_Formal)) =
!                         Chars (Defining_Entity (Assoc.An_Formal)));
!                   end if;
!                end Set_An_Formal;
! 
!                procedure Iter is new An_Formal_Iter (Set_An_Formal);
!             begin
!                pragma Assert
!                  (Num_An_Formals (F_Copy) = Result.Assocs'Last
!                   or else Serious_Errors_Detected > 0);
!                Iter (F_Copy);
!             end;
! 
!             --  Loop through actual source associations:
! 
!             declare
!                Src_Assoc : Node_Id := First (Src_Assocs);
!                --  Generic association from the source
! 
!                function Positional return Boolean is
!                  (Present (Src_Assoc)
!                   and then Src_Assoc not in N_Others_Choice_Id
!                   and then No (Selector_Name (Src_Assoc)));
!                --  True if Src_Assoc is position; i.e. not named and not others
!             begin
!                --  Loop through positional actuals:
! 
!                for Index in Result.Assocs'Range loop
!                   exit when not Positional;
!                   Match_Positional (Src_Assoc, Result.Assocs (Index));
!                end loop;
! 
!                if Positional then
!                   Error_Msg_Sloc := Sloc (Gen_Unit);
!                   Error_Msg_NE
!                     ("unmatched actual in instantiation of & declared#",
!                      Src_Assoc, Gen_Unit);
!                else
!                   --  Loop through named actuals and "others => <>":
! 
!                   while Present (Src_Assoc) loop
!                      Check_Box (I_Node, Src_Assoc);
!                      if Src_Assoc in N_Others_Choice_Id then
!                         Result.Others_Present := True;
!                         exit;
!                      end if;
! 
!                      if Positional then
!                         Error_Msg_N
!                           ("invalid positional actual after named one",
!                            Src_Assoc);
!                      else
!                         --  For actual "X => ...", find formal whose name is X.
!                         --  Complain if X has already been specified (could be
!                         --  by a positional association, or by a previous named
!                         --  one). Also complain if there's more than one X.
!                         --  See RM-12.3(9/3) and 12.7(4.1/3).
!                         --  However, this rule does not apply to generated
!                         --  code,because for nested instances, we routinely
!                         --  generate things like:
!                         --     X => ..., X => ...
!                         --  where the first one refers to the first formal X,
!                         --  and the second one refers to the second formal X,
!                         --  and so on. (The X's are formal subprograms in this
!                         --  case.)
! 
!                         declare
!                            Found : Boolean := False;
!                         begin
!                            for Index in Result.Assocs'Range loop
!                               Match_Named
!                                 (Src_Assoc, Result.Assocs (Index), Found);
!                               exit when Found
!                                 and then not Comes_From_Source (Src_Assoc);
!                            end loop;
! 
!                            if not Found and then Comes_From_Source (Src_Assoc)
!                            then
!                               Error_Msg_Sloc := Sloc (Gen_Unit);
!                               Error_Msg_NE
!                                 ("unmatched actual &",
!                                  Src_Assoc, Selector_Name (Src_Assoc));
!                               Error_Msg_NE
!                                 ("\in instantiation of & declared#",
!                                  Src_Assoc, Gen_Unit);
!                            end if;
!                         end;
!                      end if;
! 
!                      Next (Src_Assoc);
!                   end loop;
                 end if;
+             end;
  
!             --  Fill in defaults. For each formal F with no associated actual,
!             --  if there is "others => <>", set the actual to "F => <>".
!             --  Otherwise, if the formal has a default, set the actual to
!             --  "F => default". Otherwise leave it Empty.
!             --  (If Empty, it could be inferred, or it could be an error).
! 
!             for Index in Result.Assocs'Range loop
!                declare
!                   Assoc : Assoc_Rec renames Result.Assocs (Index);
!                begin
!                   if Assoc.Actual.Kind = None then
!                      pragma Assert (No (Assoc.Explicit_Assoc));
!                      if Result.Others_Present then
!                         Assoc.Actual := (Kind => Box_Actual);
!                         Assoc.Actual_Origin := From_Others_Box;
!                      else
!                         Assoc.Actual := Default (Assoc.Un_Formal);
!                         if Assoc.Actual.Kind /= None then
!                            Assoc.Actual_Origin := From_Default;
!                         end if;
!                      end if;
!                   end if;
!                end;
              end loop;
  
!             if Nkind (I_Node) /= N_Formal_Package_Declaration then
!                Infer_Actuals (Gen_Assocs => Result);
!             end if;
  
!             --  Check for missing actuals
  
!             for Index in Result.Assocs'Range loop
!                if Result.Assocs (Index).Actual.Kind = None then
!                   Error_Msg_Sloc := Sloc (Gen_Unit);
!                   Error_Msg_NE
!                     ("missing actual &",
!                      Instantiation_Node,
!                      Defining_Entity (Result.Assocs (Index).Un_Formal));
!                   Error_Msg_NE
!                     ("\in instantiation of & declared#",
!                      Instantiation_Node, Gen_Unit);
!                   Abandon_Instantiation (Instantiation_Node);
!                end if;
!             end loop;
!          end return;
!       end Match_Assocs;
  
!       -------------------
!       -- Inference_Msg --
!       -------------------
  
!       procedure Inference_Msg
!         (Gen_Unit : Entity_Id;
!          Inferred_To, Inferred_From : Assoc_Rec;
!          Was_Inferred : Boolean)
!       is
!          pragma Assert (Debug_Flag_Underscore_II); -- This is only for -gnatd_I
  
!          Was : constant String := (if Was_Inferred then "" else "could have ");
! 
!          --  "if True" below to leave out some verbosity for now:
!          Inst : constant String :=
!            (if True then ""
!             else " gen: " & Get_Name_String (Chars (Gen_Unit)));
!          Decl : constant String := (if True then "" else " declared # ");
! 
!          R : constant String := " (" & Image (Inferred_To.Reason) & ")";
! 
!          Mess : constant String :=
!            "info: " & Was & "inferred `% ='> &`" & Decl & Inst & R;
!          Mess_2 : constant String :=
!            "info: `% ='> ...`";
!       begin
!          Error_Msg_Name_1 := Chars (Defining_Entity (Inferred_To.An_Formal));
!          Error_Msg_Sloc := Sloc (Inferred_To.Info_Inferred_Actual);
!          if not In_Instance then
!             if Debug_Flag_Underscore_II then
!                Error_Msg_NE
!                  (Mess, Inferred_From.Actual.Name_Exp,
!                   Inferred_To.Info_Inferred_Actual);
!                Error_Msg_Name_1 :=
!                  Chars (Defining_Identifier (Inferred_From.An_Formal));
!                Error_Msg_N (Mess_2, Inferred_From.Actual.Name_Exp);
!             end if;
!          end if;
!       end Inference_Msg;
  
        ------------------------------
!       -- Note_Potential_Inference --
        ------------------------------
  
!       procedure Note_Potential_Inference
!         (I_Node : Node_Id; Gen_Assocs : Gen_Assocs_Rec)
!       is
        begin
!          if not Debug_Flag_Underscore_II or else Serious_Errors_Detected > 0
!          then
!             return;
!          end if;
  
!          for Index in Gen_Assocs.Assocs'Range loop
!             declare
!                Assoc : Assoc_Rec renames Gen_Assocs.Assocs (Index);
!             begin
!                if Assoc.Actual_Origin = From_Explicit_Actual
!                  and then Present (Assoc.Info_Inferred_Actual)
!                  and then In_Extended_Main_Source_Unit (I_Node)
!                  and then not In_Internal_Unit (I_Node)
!                then
!                   Inference_Msg
!                     (Gen_Assocs.Gen_Unit,
!                      Inferred_To => Assoc,
!                      Inferred_From => Gen_Assocs.Assocs (Assoc.Inferred_From),
!                      Was_Inferred => False);
!                end if;
!             end;
!          end loop;
!       end Note_Potential_Inference;
  
!       --------------
!       -- Find_Assoc --
!       --------------
  
+       function Find_Assoc
+         (Gen_Assocs : Gen_Assocs_Rec; F : Entity_Id) return Assoc_Index
+       is
        begin
!          for Index in Gen_Assocs.Assocs'Range loop
!             if Defining_Entity (Gen_Assocs.Assocs (Index).An_Formal) = F then
!                return Index;
!             end if;
!          end loop;
  
!          raise Program_Error; -- it must be present
!       end Find_Assoc;
  
!       ---------------------
!       -- Maybe_Infer_One --
!       ---------------------
  
!       procedure Maybe_Infer_One
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          FF, AA : N_Entity_Id; Inferred_From : Assoc_Index;
!          Reason : Inference_Reason)
!       is
!       begin
!          if not (Is_Generic_Type (FF)
!                  and then Scope (FF) = Gen_Assocs.Gen_Unit)
!          then
!             return; -- no inference if not a formal type of this generic
           end if;
  
!          if Is_Internal_Name (Chars (FF)) or else Is_Itype (AA) then
!             return; -- no inference if internally generated
!          end if;
  
!          declare
!             Index : constant Assoc_Index := Find_Assoc (Gen_Assocs, FF);
!             Assoc : Assoc_Rec renames Gen_Assocs.Assocs (Index);
!             pragma Assert (Defining_Entity (Assoc.An_Formal) = FF);
! 
!             From_Actual : constant Node_Id :=
!               Gen_Assocs.Assocs (Inferred_From).Actual.Name_Exp;
! 
!          begin
!             Assoc.Info_Inferred_Actual := AA;
!             Assoc.Inferred_From := Inferred_From;
!             Assoc.Reason := Reason;
! 
!             if Assoc.Actual.Kind = None then
!                Assoc.Actual :=
!                  (Name_Exp, New_Occurrence_Of (AA, Sloc (From_Actual)));
!                Assoc.Actual_Origin := From_Inference;
! 
!                Error_Msg_GNAT_Extension
!                  ("type inference of generic parameters",
!                   Sloc (From_Actual));
! 
!                if Debug_Flag_Underscore_II then
!                   Inference_Msg
!                     (Gen_Assocs.Gen_Unit,
!                      Inferred_To => Assoc,
!                      Inferred_From => Gen_Assocs.Assocs (Assoc.Inferred_From),
!                      Was_Inferred => True);
!                end if;
!             end if;
!          end;
!       end Maybe_Infer_One;
! 
!       -------------------
!       -- Infer_Actuals --
!       -------------------
! 
!       procedure Infer_From_Access
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          Index : Assoc_Index;
!          F : Node_Id;
!          A_Full : Entity_Id)
!       is
!       begin
!          if Ekind (A_Full) in Access_Kind then
!             declare
!                FF : constant Entity_Id :=
!                  Designated_Type (Defining_Entity (F));
!                AA : constant Entity_Id := Designated_Type (A_Full);
!             begin
!                Maybe_Infer_One
!                  (Gen_Assocs,
!                  FF,
!                  AA,
!                  Inferred_From => Index,
!                  Reason => Designated_Type);
!             end;
           end if;
!       end Infer_From_Access;
  
!       procedure Infer_From_Array
!         (Gen_Assocs : in out Gen_Assocs_Rec;
!          Index : Assoc_Index;
!          F : Node_Id;
!          A_Full : Entity_Id)
!       is
!       begin
!          if Ekind (A_Full) in Array_Kind then
!             declare
!                F_Index_Type : Opt_N_Is_Index_Id :=
!                  First_Index (Defining_Entity (F));
!                A_Index_Type : Opt_N_Is_Index_Id :=
!                  First_Index (A_Full);
!             begin
!                while Present (F_Index_Type) and then Present (A_Index_Type)
!                loop
!                   Maybe_Infer_One
!                     (Gen_Assocs,
!                      Etype (F_Index_Type),
!                      Etype (A_Index_Type),
!                      Inferred_From => Index,
!                      Reason => Index_Type);
  
!                   Next_Index (F_Index_Type);
!                   Next_Index (A_Index_Type);
!                end loop;
!             end;
! 
!             declare
!                F_Comp_Type : constant Type_Kind_Id :=
!                  Component_Type (Defining_Entity (F));
!                A_Comp_Type : constant Type_Kind_Id :=
!                  Component_Type (A_Full);
!             begin
!                Maybe_Infer_One
!                  (Gen_Assocs,
!                   F_Comp_Type,
!                   A_Comp_Type,
!                   Inferred_From => Index,
!                   Reason => Component_Type);
!             end;
!          end if;
!       end Infer_From_Array;
  
+       procedure Infer_From_Discriminated
+         (Gen_Assocs : in out Gen_Assocs_Rec;
+          Index : Assoc_Index;
+          F : Node_Id;
+          A_Full : Entity_Id)
+       is
        begin
!          if Has_Discriminants (Defining_Entity (F))
!             and then Present (A_Full)
!             and then Has_Discriminants (A_Full)
!             and then Number_Discriminants (A_Full) =
!               Number_Discriminants (Defining_Entity (F))
!          then
!             declare
!                F_Discrim : Node_Id := First_Discriminant (Defining_Entity (F));
!                A_Discrim : Node_Id := First_Discriminant (A_Full);
!             begin
!                while Present (F_Discrim) loop
!                   Maybe_Infer_One
!                     (Gen_Assocs,
!                      Etype (F_Discrim),
!                      Etype (A_Discrim),
!                      Inferred_From => Index,
!                      Reason => Discriminant_Type);
  
!                   Next_Discriminant (F_Discrim);
!                   Next_Discriminant (A_Discrim);
!                end loop;
!                pragma Assert (No (A_Discrim)); -- same number as F_Discrim
!             end;
!          end if;
!       end Infer_From_Discriminated;
  
!       procedure Infer_Actuals (Gen_Assocs : in out Gen_Assocs_Rec) is
!          --  Note that we can infer FROM defaults, but we cannot infer TO a
!          --  parameter that has a default. We can also infer from inferred
!          --  types.
  
!          --  We don't need to check that multiple inferences get the same
!          --  answer; the second one will get a type mismatch or nonstatically
!          --  matching error.
  
!          --  This code needs to be robust, in the sense of tolerating illegal
!          --  code, because we have not yet checked all legality rules. For
!          --  example, if a formal type F has a discriminant whose type is
!          --  another formal type, then we want to infer the type of the
!          --  discriminant from the actual for F. That actual must have
!          --  discriminants, but we have not checked that rule yet, so we
!          --  need to tolerate an actual for F that has no discriminants.
  
        begin
!          --  For each parameter, check whether we can infer FROM that one TO
!          --  other ones.
  
!          --  Process the parameters in reverse order, because the inferred type
!          --  always comes before the parameter it is inferred from. This
!          --  ensures that we can do the inference in one pass, including in
!          --  cases where an inferred type leads to another inferred type.
!          --  For example, an array type that allows us to infer the component
!          --  type, which is an access type that allows us to infer the
!          --  designated type. The reverse loop implies that we will see the
!          --  array type, then the access type, then the designated type.
  
!          for Index in reverse Gen_Assocs.Assocs'Range loop -- NB: "reverse"
!             if Gen_Assocs.Assocs (Index).Actual.Kind = Name_Exp then
!                declare
!                   F : constant Node_Id := Gen_Assocs.Assocs (Index).An_Formal;
!                   A_E : constant Node_Id :=
!                     Gen_Assocs.Assocs (Index).Actual.Name_Exp;
!                   A_Full : Entity_Id := Empty;
!                begin
!                   if Nkind (A_E) in N_Has_Entity then
!                      A_Full := Entity (A_E);
  
!                      if Present (A_Full)
!                        and then Ekind (A_Full) in Incomplete_Kind
!                        and then Present (Full_View (A_Full))
!                      then
!                         A_Full := Full_View (A_Full);
!                      end if;
!                   end if;
  
!                   if Nkind (F) = N_Formal_Type_Declaration
!                     and then Present (A_Full)
!                   then
!                      case Ekind (Defining_Entity (F)) is
!                         when E_Access_Type | E_General_Access_Type =>
!                            Infer_From_Access (Gen_Assocs, Index, F, A_Full);
  
!                         when E_Access_Subtype
!                            | E_Access_Attribute_Type
!                            | E_Allocator_Type
!                            | E_Anonymous_Access_Type
!                         =>
!                            raise Program_Error;
  
!                         when E_Array_Type | E_Array_Subtype =>
!                            Infer_From_Array (Gen_Assocs, Index, F, A_Full);
  
!                         when E_String_Literal_Subtype =>
!                            raise Program_Error;
! 
!                         when others =>
!                            null;
!                      end case;
! 
!                      Infer_From_Discriminated (Gen_Assocs, Index, F, A_Full);
!                   end if;
!                end;
!             end if;
           end loop;
!       end Infer_Actuals;
  
!    end Associations;
  
!    ---------------------------
!    -- Abandon_Instantiation --
!    ---------------------------
  
!    procedure Abandon_Instantiation (N : Node_Id) is
!    begin
!       Error_Msg_N ("instantiation abandoned!", N);
!       raise Instantiation_Error;
!    end Abandon_Instantiation;
  
!    ----------------------------------
!    -- Adjust_Inherited_Pragma_Sloc --
!    ----------------------------------
  
!    procedure Adjust_Inherited_Pragma_Sloc (N : Node_Id) is
!    begin
!       Adjust_Instantiation_Sloc (N, S_Adjustment);
!    end Adjust_Inherited_Pragma_Sloc;
  
!    --------------------------
!    -- Analyze_Associations --
!    --------------------------
  
!    function Analyze_Associations
!      (I_Node  : Node_Id;
!       Formals : List_Id;
!       F_Copy  : List_Id) return List_Id
!    is
!       use Associations;
  
!       Result_Renamings : constant List_Id  := New_List;
!       --  To be returned. Includes "renamings" broadly interpreted
!       --  (e.g. subtypes are used for types).
  
!       Actuals_To_Freeze : constant Elist_Id := New_Elmt_List;
!       Default_Actuals   : constant List_Id   := New_List;
  
!       Gen_Assocs : constant Gen_Assocs_Rec :=
!         Match_Assocs (I_Node, Formals, F_Copy);
  
!    begin
!       for Matching_Actual_Index in Gen_Assocs.Assocs'Range loop
!          declare
!             Assoc : Assoc_Rec renames
!               Gen_Assocs.Assocs (Matching_Actual_Index);
!          begin
!             if Nkind (Assoc.Un_Formal) = N_Formal_Package_Declaration
!               and then Error_Posted (Assoc.An_Formal)
              then
!                --  Restrict this to N_Formal_Package_Declaration,
!                --  because otherwise we miss errors.
!                Abandon_Instantiation (Instantiation_Node);
              end if;
  
!             if Nkind (Assoc.Un_Formal) in
!               N_Use_Package_Clause | N_Use_Type_Clause
!             then
!                --  Copy the use clause to where it belongs:
!                Append (New_Copy_Tree (Assoc.Un_Formal), Result_Renamings);
  
!             else
!                Analyze_One_Association
!                  (I_Node, Assoc,
!                   Result_Renamings, Default_Actuals, Actuals_To_Freeze);
!             end if;
!          end;
!       end loop;
  
!       --  An instantiation freezes all generic actuals, except for incomplete
!       --  types and subprograms that are not fully defined at the point of
!       --  instantiation.
! 
!       declare
!          Elmt : Elmt_Id := First_Elmt (Actuals_To_Freeze);
!       begin
!          while Present (Elmt) loop
!             Freeze_Before (I_Node, Node (Elmt));
!             Next_Elmt (Elmt);
           end loop;
!       end;
  
!       --  If there are defaults, normalize the tree by adding explicit
!       --  associations for them. This is required if the instance appears
!       --  within a generic.
  
!       if not Is_Empty_List (Default_Actuals) then
!          declare
!             Default : Node_Id;
  
!          begin
!             Default := First (Default_Actuals);
!             while Present (Default) loop
!                Mark_Rewrite_Insertion (Default);
!                Next (Default);
!             end loop;
  
!             if No (Generic_Associations (I_Node)) then
!                Set_Generic_Associations (I_Node, Default_Actuals);
!             else
!                Append_List_To (Generic_Associations (I_Node), Default_Actuals);
!             end if;
!          end;
!       end if;
  
!       Note_Potential_Inference (I_Node, Gen_Assocs);
  
!       Check_Fixed_Point_Warning (Gen_Assocs, Result_Renamings);
  
!       return Result_Renamings;
!    end Analyze_Associations;
  
!    -----------------------------
!    -- Analyze_One_Association --
!    -----------------------------
  
!    procedure Analyze_One_Association
!      (I_Node   :  Node_Id;
!       Assoc    : Associations.Assoc_Rec;
!       --  Logical 'in out' parameters:
!       Result_Renamings  : List_Id;
!       Default_Actuals   : List_Id;
!       Actuals_To_Freeze : Elist_Id)
!    is
!       use Associations;
  
!       procedure Process_Box_Actual (Formal : Node_Id);
!       --  Called for "Formal => <>", and also if "Formal => ..." is missing,
!       --  but there is "others => <>". Add a copy of the declaration of the
!       --  generic formal to the Result_Renamings.
  
!       ------------------------
!       -- Process_Box_Actual --
!       ------------------------
  
!       procedure Process_Box_Actual (Formal : Node_Id) is
!          pragma Assert (Assoc.Actual.Kind = Box_Actual);
!          F_Id : constant Entity_Id := Defining_Entity (Formal);
!          Decl : constant Node_Id   := New_Copy_Tree (Formal);
!          Id   : constant Entity_Id :=
!            Make_Defining_Identifier (Sloc (F_Id), Chars (F_Id));
!       begin
!          if Nkind (Formal) in N_Formal_Subprogram_Declaration then
!             Set_Defining_Unit_Name (Specification (Decl), Id);
  
!          else
!             Set_Defining_Identifier (Decl, Id);
!          end if;
  
!          Append (Decl, Result_Renamings);
!       end Process_Box_Actual;
  
!       Match : Node_Id;
  
!    --  Start of processing for Analyze_One_Association
  
!    begin
!       pragma Assert (Assoc.Actual_Origin /= None);
  
!       if Assoc.Actual_Origin = From_Explicit_Actual
!         and then Assoc.Actual.Kind = Name_Exp
!       then
!          Match := Assoc.Actual.Name_Exp;
  
!          if Is_Entity_Name (Match) and then Present (Entity (Match)) then
!             Set_Used_As_Generic_Actual (Entity (Match));
!          end if;
!       else
!          Match := Empty;
!       end if;
  
!       case Nkind (Assoc.Un_Formal) is
!          when N_Formal_Object_Declaration =>
!             if Assoc.Actual.Kind = Box_Actual then
!                Process_Box_Actual (Assoc.Un_Formal);
  
!             else
!                Append_List
!                  (Instantiate_Object (Assoc.Un_Formal, Match, Assoc.An_Formal),
!                   Result_Renamings);
  
!                --  GNATprove: For a defaulted in-mode parameter, create
!                --  an entry in the list of defaulted actuals, for
!                --  GNATprove use. Do not include these defaults for an
!                --  instance nested within a generic, because the defaults
!                --  are also used in the analysis of the enclosing
!                --  generic, and only defaulted subprograms are relevant
!                --  there.
  
!                if No (Match) and then not Inside_A_Generic then
!                   Append_To (Default_Actuals,
!                     Make_Generic_Association (Sloc (I_Node),
!                       Selector_Name =>
!                         New_Occurrence_Of
!                           (Defining_Identifier
!                             (Assoc.Un_Formal), Sloc (I_Node)),
!                       Explicit_Generic_Actual_Parameter =>
!                         New_Copy_Tree (Default_Expression (Assoc.Un_Formal))));
!                end if;
!             end if;
  
!             --  If the object is a call to an expression function, this
!             --  is a freezing point for it.
  
!             if Is_Entity_Name (Match)
!               and then Present (Entity (Match))
!               and then Nkind
!                 (Original_Node (Unit_Declaration_Node (Entity (Match))))
!                                                = N_Expression_Function
!             then
!                Append_Elmt (Entity (Match), Actuals_To_Freeze);
!             end if;
  
!          when N_Formal_Type_Declaration =>
!             if Assoc.Actual.Kind = Box_Actual then
!                Process_Box_Actual (Assoc.Un_Formal);
  
!             elsif No (Match) then
!                --  No explicit actual; try default
  
!                if Present (Default_Subtype_Mark (Assoc.Un_Formal)) then
!                   Match := New_Copy (Default_Subtype_Mark (Assoc.Un_Formal));
  
!                   --  If the Entity of the default subtype denoted by the
!                   --  unanalyzed formal has not been set, then it must refer
!                   --  to another formal type of the enclosing generic. So we
!                   --  locate the subtype "renaming" in Result_Renamings that
!                   --  corresponds to the formal type (by comparing the simple
!                   --  names), and set Match's Entity to the entity denoted by
!                   --  that subtype's subtype_indication (which will denote the
!                   --  actual subtype corresponding to the other formal type).
!                   --  This must be done before calling Instantiate_Type, since
!                   --  that function relies heavily on the entity being set.
!                   --  (Note also that there's similar code inside procedure
!                   --  Validate_Derived_Type_Instance that deals with retrieving
!                   --  the ancestor type of formal derived types.)
! 
!                   if No (Entity (Match)) then
                       declare
!                         pragma Assert (Is_Non_Empty_List (Result_Renamings));
  
!                         Decl : Node_Id := First (Result_Renamings);
  
!                      begin
!                         --  Locate subtype referenced by the default subtype
!                         --  in the list of renamings.
  
!                         while Present (Decl) loop
!                            if Nkind (Decl) = N_Subtype_Declaration
!                              and then
!                                Chars (Match) =
!                                  Chars (Defining_Identifier (Decl))
!                            then
!                               Set_Entity
!                                 (Match,
!                                  Entity (Subtype_Indication (Decl)));
  
!                               exit;
  
!                            else
!                               Next (Decl);
!                            end if;
!                         end loop;
  
!                         pragma Assert (Present (Entity (Match)));
                       end;
                    end if;
  
!                   Append_List
!                    (Instantiate_Type
!                       (Assoc.Un_Formal, Match, Assoc.An_Formal,
!                        Result_Renamings),
!                     Result_Renamings);
!                   Append_Elmt (Entity (Match), Actuals_To_Freeze);
  
!                --  No explicit actual and no default; must be inference
  
!                else
!                   pragma Assert (Assoc.Actual_Origin = From_Inference);
  
!                   Match := Assoc.Actual.Name_Exp;
!                   Append_List
!                     (Instantiate_Type
!                       (Assoc.Un_Formal,
!                        Match,
!                        Assoc.An_Formal,
!                        Result_Renamings),
!                     Result_Renamings);
!                   Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                end if;
  
!             else
!                Analyze (Match);
  
!                --  Rewrite mutably tagged types to be their class-wide
!                --  equivalent type.
  
!                if Ekind (Etype (Match)) /= E_Void
!                  and then Is_Mutably_Tagged_Type (Etype (Match))
!                then
!                   Rewrite (Match, New_Occurrence_Of
!                     (Class_Wide_Equivalent_Type
!                       (Etype (Match)), Sloc (Match)));
!                   Analyze (Match);
!                end if;
  
!                Append_List
!                  (Instantiate_Type
!                     (Assoc.Un_Formal, Match, Assoc.An_Formal,
!                      Result_Renamings),
!                   Result_Renamings);
  
!                --  An instantiation is a freeze point for the actuals,
!                --  unless this is a rewritten formal package, or the
!                --  formal is an Ada 2012 formal incomplete type.
  
!                if Nkind (I_Node) = N_Formal_Package_Declaration
!                  or else
!                    (Ada_Version >= Ada_2012
!                      and then
!                        Ekind (Defining_Identifier (Assoc.An_Formal)) =
!                                                       E_Incomplete_Type)
!                then
!                   null;
  
!                else
!                   Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                end if;
!             end if;
  
!             --  A remote access-to-class-wide type is not a legal actual
!             --  for a generic formal of an access type (E.2.2(17/2)).
!             --  In GNAT an exception to this rule is introduced when
!             --  the formal is marked as remote using implementation
!             --  defined aspect/pragma Remote_Access_Type. In that case
!             --  the actual must be remote as well.
  
!             --  If the current instantiation is the construction of a
!             --  local copy for a formal package the actuals may be
!             --  defaulted, and there is no matching actual to check.
  
!             if Nkind (Assoc.An_Formal) = N_Formal_Type_Declaration
!               and then
!                 Nkind (Formal_Type_Definition (Assoc.An_Formal)) =
!                                       N_Access_To_Object_Definition
!                and then Present (Match)
!             then
!                declare
!                   Formal_Ent : constant Entity_Id :=
!                                  Defining_Identifier (Assoc.An_Formal);
!                begin
!                   if Is_Remote_Access_To_Class_Wide_Type (Entity (Match))
!                                           = Is_Remote_Types (Formal_Ent)
!                   then
!                      --  Remoteness of formal and actual match
  
!                      null;
  
!                   elsif Is_Remote_Types (Formal_Ent) then
  
!                      --  Remote formal, non-remote actual
  
!                      Error_Msg_NE
!                        ("actual for& must be remote", Match, Formal_Ent);
  
                    else
!                      --  Non-remote formal, remote actual
! 
!                      Error_Msg_NE
!                        ("actual for& may not be remote",
!                         Match, Formal_Ent);
                    end if;
+                end;
+             end if;
  
!          when N_Formal_Subprogram_Declaration =>
!             --  If there is no corresponding actual, this may be case
!             --  of partial parameterization, or else the formal has a
!             --  default or a box.
  
!             if Assoc.Actual.Kind = Box_Actual then
!                Process_Box_Actual (Assoc.Un_Formal);
  
!             else
!                Append_To (Result_Renamings,
!                  Instantiate_Formal_Subprogram
!                    (Assoc.Un_Formal, Match, Assoc.An_Formal));
  
!                --  If formal subprogram has contracts, create wrappers
!                --  for it. This is an expansion activity that cannot
!                --  take place e.g. within an enclosing generic unit.
  
!                if Has_Contracts (Assoc.An_Formal)
!                  and then (Expander_Active or GNATprove_Mode)
!                then
!                   Build_Subprogram_Wrappers
!                     (Match, Assoc.An_Formal, Result_Renamings);
!                end if;
  
!                --  An instantiation is a freeze point for the actuals,
!                --  unless this is a rewritten formal package.
  
!                if Nkind (I_Node) /= N_Formal_Package_Declaration
!                  and then Nkind (Match) = N_Identifier
!                  and then Is_Subprogram (Entity (Match))
  
!                  --  The actual subprogram may rename a routine defined
!                  --  in Standard. Avoid freezing such renamings because
!                  --  subprograms coming from Standard cannot be frozen.
  
!                  and then
!                    not Renames_Standard_Subprogram (Entity (Match))
  
!                  --  If the actual subprogram comes from a different
!                  --  unit, it is already frozen, either by a body in
!                  --  that unit or by the end of the declarative part
!                  --  of the unit. This check avoids the freezing of
!                  --  subprograms defined in Standard which are used
!                  --  as generic actuals.
  
!                  and then In_Same_Code_Unit (Entity (Match), I_Node)
!                  and then Has_Fully_Defined_Profile (Entity (Match))
!                then
!                   --  Mark the subprogram as having a delayed freeze
!                   --  since this may be an out-of-order action.
  
!                   Set_Has_Delayed_Freeze (Entity (Match));
!                   Append_Elmt (Entity (Match), Actuals_To_Freeze);
!                end if;
!             end if;
  
!             --  If this is a nested generic, preserve default for later
!             --  instantiations. We do this as well for GNATprove use,
!             --  so that the list of generic associations is complete.
  
!             if No (Match) and then Box_Present (Assoc.Un_Formal) then
!                declare
!                   Subp : constant Entity_Id :=
!                     Defining_Unit_Name
!                       (Specification (Last (Result_Renamings)));
  
!                begin
!                   Append_To (Default_Actuals,
!                     Make_Generic_Association (Sloc (I_Node),
!                       Selector_Name                     =>
!                         New_Occurrence_Of (Subp, Sloc (I_Node)),
!                       Explicit_Generic_Actual_Parameter =>
!                         New_Occurrence_Of (Subp, Sloc (I_Node))));
!                end;
!             end if;
  
!          when N_Formal_Package_Declaration =>
!             if Assoc.Actual.Kind = Box_Actual then
!                Process_Box_Actual (Assoc.Un_Formal);
  
!             else
!                Analyze (Match);
!                Append_List
!                  (Instantiate_Formal_Package
!                     (Assoc.Un_Formal, Match, Assoc.An_Formal),
!                   Result_Renamings);
  
!                --  Determine whether the actual package needs an explicit
!                --  freeze node. This is only the case if the actual is
!                --  declared in the same unit and has a body. Normally
!                --  packages do not have explicit freeze nodes, and gigi
!                --  only uses them to elaborate entities in a package
!                --  body.
  
!                Explicit_Freeze_Check : declare
!                   Actual  : constant Entity_Id := Entity (Match);
!                   Gen_Par : Entity_Id;
  
!                   Needs_Freezing : Boolean;
!                   P              : Node_Id;
  
!                   procedure Check_Generic_Parent;
!                   --  The actual may be an instantiation of a unit
!                   --  declared in a previous instantiation. If that
!                   --  one is also in the current compilation, it must
!                   --  itself be frozen before the actual. The actual
!                   --  may be an instantiation of a generic child unit,
!                   --  in which case the same applies to the instance
!                   --  of the parent which must be frozen before the
!                   --  actual.
!                   --  Should this itself be recursive ???
  
!                   --------------------------
!                   -- Check_Generic_Parent --
!                   --------------------------
  
!                   procedure Check_Generic_Parent is
!                      Inst : constant Node_Id :=
!                               Get_Unit_Instantiation_Node (Actual);
!                      Par  : Entity_Id;
  
!                   begin
!                      Par := Empty;
  
!                      if Nkind (Parent (Actual)) = N_Package_Specification
!                      then
!                         Par := Scope (Generic_Parent (Parent (Actual)));
  
!                         if Is_Generic_Instance (Par) then
!                            null;
  
!                         --  If the actual is a child generic unit, check
!                         --  whether the instantiation of the parent is
!                         --  also local and must also be frozen now. We
!                         --  must retrieve the instance node to locate the
!                         --  parent instance if any.
  
!                         elsif Ekind (Par) = E_Generic_Package
!                           and then Is_Child_Unit (Gen_Par)
!                           and then Ekind (Scope (Gen_Par)) =
!                                      E_Generic_Package
!                         then
!                            if Nkind (Inst) = N_Package_Instantiation
!                              and then Nkind (Name (Inst)) =
!                                         N_Expanded_Name
!                            then
!                               --  Retrieve entity of parent instance
! 
!                               Par := Entity (Prefix (Name (Inst)));
                             end if;
+ 
+                         else
+                            Par := Empty;
                          end if;
!                      end if;
  
!                      if Present (Par)
!                        and then Is_Generic_Instance (Par)
!                        and then Scope (Par) = Current_Scope
!                        and then
!                          (No (Freeze_Node (Par))
!                            or else
!                              not Is_List_Member (Freeze_Node (Par)))
!                      then
!                         Set_Has_Delayed_Freeze (Par);
!                         Append_Elmt (Par, Actuals_To_Freeze);
!                      end if;
!                   end Check_Generic_Parent;
  
!                --  Start of processing for Explicit_Freeze_Check
! 
!                begin
!                   if Present (Renamed_Entity (Actual)) then
!                      Gen_Par :=
!                        Generic_Parent (Specification
!                          (Unit_Declaration_Node
!                            (Renamed_Entity (Actual))));
                    else
!                      Gen_Par :=
!                        Generic_Parent (Specification
!                          (Unit_Declaration_Node (Actual)));
                    end if;
  
!                   if not Expander_Active
!                     or else not Has_Completion (Actual)
!                     or else not In_Same_Source_Unit (I_Node, Actual)
!                     or else Is_Frozen (Actual)
!                     or else
!                       (Present (Renamed_Entity (Actual))
!                         and then
!                           not In_Same_Source_Unit
!                                 (I_Node, (Renamed_Entity (Actual))))
!                   then
!                      null;
  
!                   else
!                      --  Finally we want to exclude such freeze nodes
!                      --  from statement sequences, which freeze
!                      --  everything before them.
!                      --  Is this strictly necessary ???
  
!                      Needs_Freezing := True;
  
!                      P := Parent (I_Node);
!                      while Nkind (P) /= N_Compilation_Unit loop
!                         if Nkind (P) = N_Handled_Sequence_Of_Statements
!                         then
!                            Needs_Freezing := False;
!                            exit;
!                         end if;
  
!                         P := Parent (P);
!                      end loop;
  
!                      if Needs_Freezing then
!                         Check_Generic_Parent;
  
!                         --  If the actual is a renaming of a proper
!                         --  instance of the formal package, indicate
!                         --  that it is the instance that must be frozen.
  
!                         if Nkind (Parent (Actual)) =
!                              N_Package_Renaming_Declaration
!                         then
!                            Set_Has_Delayed_Freeze
!                              (Renamed_Entity (Actual));
!                            Append_Elmt
!                              (Renamed_Entity (Actual),
!                               Actuals_To_Freeze);
!                         else
!                            Set_Has_Delayed_Freeze (Actual);
!                            Append_Elmt (Actual, Actuals_To_Freeze);
!                         end if;
!                      end if;
!                   end if;
!                end Explicit_Freeze_Check;
              end if;
  
!          when others =>
!             raise Program_Error;
!       end case;
  
!       --  Check for correct use of Ghost entities in generic
!       --  instantiations (SPARK RM 6.9(10)).
  
!       Check_Ghost_Context_In_Generic_Association
!         (Actual => Match,
!          Formal => Defining_Entity (Assoc.An_Formal));
!    end Analyze_One_Association;
  
     -------------------------------
     -- Analyze_Formal_Array_Type --
*************** package body Sem_Ch12 is
*** 2500,2512 ****
               Defining_Identifier           => T,
               Discriminant_Specifications   => Discriminant_Specifications (N),
               Unknown_Discriminants_Present => Unk_Disc,
               Subtype_Indication            => Subtype_Mark (Def),
               Interface_List                => Interface_List (Def));
- 
-          Set_Abstract_Present     (New_N, Abstract_Present     (Def));
-          Set_Limited_Present      (New_N, Limited_Present      (Def));
-          Set_Synchronized_Present (New_N, Synchronized_Present (Def));
- 
        else
           New_N :=
             Make_Full_Type_Declaration (Loc,
--- 3097,3107 ----
               Defining_Identifier           => T,
               Discriminant_Specifications   => Discriminant_Specifications (N),
               Unknown_Discriminants_Present => Unk_Disc,
+              Abstract_Present              => Abstract_Present (Def),
+              Limited_Present               => Limited_Present (Def),
               Subtype_Indication            => Subtype_Mark (Def),
+              Synchronized_Present          => Synchronized_Present (Def),
               Interface_List                => Interface_List (Def));
        else
           New_N :=
             Make_Full_Type_Declaration (Loc,
*************** package body Sem_Ch12 is
*** 2515,2526 ****
                 Discriminant_Specifications (Parent (T)),
               Type_Definition             =>
                 Make_Derived_Type_Definition (Loc,
                   Subtype_Indication => Subtype_Mark (Def)));
- 
-          Set_Abstract_Present
-            (Type_Definition (New_N), Abstract_Present (Def));
-          Set_Limited_Present
-            (Type_Definition (New_N), Limited_Present  (Def));
        end if;
  
        Rewrite (N, New_N);
--- 3110,3118 ----
                 Discriminant_Specifications (Parent (T)),
               Type_Definition             =>
                 Make_Derived_Type_Definition (Loc,
+                  Abstract_Present   => Abstract_Present (Def),
+                  Limited_Present    => Limited_Present (Def),
                   Subtype_Indication => Subtype_Mark (Def)));
        end if;
  
        Rewrite (N, New_N);
*************** package body Sem_Ch12 is
*** 2653,2661 ****
     -----------------------------------
  
     procedure Analyze_Formal_Interface_Type
!       (N   : Node_Id;
!        T   : Entity_Id;
!        Def : Node_Id)
     is
        Loc   : constant Source_Ptr := Sloc (N);
        New_N : Node_Id;
--- 3245,3253 ----
     -----------------------------------
  
     procedure Analyze_Formal_Interface_Type
!      (N   : Node_Id;
!       T   : Entity_Id;
!       Def : Node_Id)
     is
        Loc   : constant Source_Ptr := Sloc (N);
        New_N : Node_Id;
*************** package body Sem_Ch12 is
*** 2950,2958 ****
           --  part, so that names with the proper types are available in the
           --  specification of the formal package.
  
!          --  On the other hand, if there are no associations, then all the
!          --  formals must have defaults, and this will be checked by the
!          --  call to Analyze_Associations.
  
           if Box_Present (N)
             or else Nkind (First (Generic_Associations (N))) = N_Others_Choice
--- 3542,3550 ----
           --  part, so that names with the proper types are available in the
           --  specification of the formal package.
  
!          --  On the other hand, if there are no associations (as in "new G;"),
!          --  then all the formals must have defaults, and this will be checked
!          --  by the call to Analyze_Associations.
  
           if Box_Present (N)
             or else Nkind (First (Generic_Associations (N))) = N_Others_Choice
*************** package body Sem_Ch12 is
*** 3408,3416 ****
           --  A formal abstract procedure cannot have a null default
           --  (RM 12.6(4.1/2)).
  
!          if Nkind (Spec) = N_Procedure_Specification
!            and then Null_Present (Spec)
!          then
              Error_Msg_N
                ("a formal abstract subprogram cannot default to null", Spec);
           end if;
--- 4000,4006 ----
           --  A formal abstract procedure cannot have a null default
           --  (RM 12.6(4.1/2)).
  
!          if Has_Null_Default (N) then
              Error_Msg_N
                ("a formal abstract subprogram cannot default to null", Spec);
           end if;
*************** package body Sem_Ch12 is
*** 4297,4303 ****
        Inline_Now       : Boolean := False;
        Needs_Body       : Boolean;
        Parent_Installed : Boolean := False;
!       Renaming_List    : List_Id;
        Unit_Renaming    : Node_Id;
  
        Vis_Prims_List : Elist_Id := No_Elist;
--- 4887,4893 ----
        Inline_Now       : Boolean := False;
        Needs_Body       : Boolean;
        Parent_Installed : Boolean := False;
!       Renamings        : List_Id;
        Unit_Renaming    : Node_Id;
  
        Vis_Prims_List : Elist_Id := No_Elist;
*************** package body Sem_Ch12 is
*** 4529,4541 ****
              Set_Private_Declarations (Act_Spec, New_List);
           end if;
  
!          Renaming_List :=
             Analyze_Associations
               (I_Node  => N,
                Formals => Generic_Formal_Declarations (Act_Tree),
                F_Copy  => Generic_Formal_Declarations (Gen_Decl));
  
!          Vis_Prims_List := Check_Hidden_Primitives (Renaming_List);
  
           Set_Instance_Env (Gen_Unit, Act_Decl_Id);
           Set_Defining_Unit_Name (Act_Spec, Act_Decl_Name);
--- 5119,5131 ----
              Set_Private_Declarations (Act_Spec, New_List);
           end if;
  
!          Renamings :=
             Analyze_Associations
               (I_Node  => N,
                Formals => Generic_Formal_Declarations (Act_Tree),
                F_Copy  => Generic_Formal_Declarations (Gen_Decl));
  
!          Vis_Prims_List := Check_Hidden_Primitives (Renamings);
  
           Set_Instance_Env (Gen_Unit, Act_Decl_Id);
           Set_Defining_Unit_Name (Act_Spec, Act_Decl_Name);
*************** package body Sem_Ch12 is
*** 4555,4570 ****
                 Make_Defining_Identifier (Loc, Chars (Gen_Unit)),
               Name               => New_Occurrence_Of (Act_Decl_Id, Loc));
  
!          Append (Unit_Renaming, Renaming_List);
  
           --  The renaming declarations are the first local declarations of the
           --  new unit.
  
           if Is_Non_Empty_List (Visible_Declarations (Act_Spec)) then
              Insert_List_Before
!               (First (Visible_Declarations (Act_Spec)), Renaming_List);
           else
!             Set_Visible_Declarations (Act_Spec, Renaming_List);
           end if;
  
           Act_Decl := Make_Package_Declaration (Loc, Specification => Act_Spec);
--- 5145,5160 ----
                 Make_Defining_Identifier (Loc, Chars (Gen_Unit)),
               Name               => New_Occurrence_Of (Act_Decl_Id, Loc));
  
!          Append (Unit_Renaming, Renamings);
  
           --  The renaming declarations are the first local declarations of the
           --  new unit.
  
           if Is_Non_Empty_List (Visible_Declarations (Act_Spec)) then
              Insert_List_Before
!               (First (Visible_Declarations (Act_Spec)), Renamings);
           else
!             Set_Visible_Declarations (Act_Spec, Renamings);
           end if;
  
           Act_Decl := Make_Package_Declaration (Loc, Specification => Act_Spec);
*************** package body Sem_Ch12 is
*** 5239,5245 ****
                 end if;
  
                 if Ekind (Curr_Unit) = E_Package_Body then
!                   Remove_Context (Library_Unit (Curr_Comp));
                 end if;
              end if;
  
--- 5829,5835 ----
                 end if;
  
                 if Ekind (Curr_Unit) = E_Package_Body then
!                   Remove_Context (Spec_Lib_Unit (Curr_Comp));
                 end if;
              end if;
  
*************** package body Sem_Ch12 is
*** 5434,5439 ****
--- 6024,6031 ----
           return False;
        end Is_Inlined_Or_Child_Of_Inlined;
  
+    --  Start of processing for Need_Subprogram_Instance_Body
+ 
     begin
        --  Must be in the main unit or inlined (or child of inlined)
  
*************** package body Sem_Ch12 is
*** 5500,5506 ****
        Pack_Id          : Entity_Id;
        Parent_Installed : Boolean := False;
  
!       Renaming_List : List_Id;
        --  The list of declarations that link formals and actuals of the
        --  instance. These are subtype declarations for formal types, and
        --  renaming declarations for other formals. The subprogram declaration
--- 6092,6098 ----
        Pack_Id          : Entity_Id;
        Parent_Installed : Boolean := False;
  
!       Renamings : List_Id;
        --  The list of declarations that link formals and actuals of the
        --  instance. These are subtype declarations for formal types, and
        --  renaming declarations for other formals. The subprogram declaration
*************** package body Sem_Ch12 is
*** 5558,5564 ****
             Make_Package_Declaration (Loc,
               Specification => Make_Package_Specification (Loc,
                 Defining_Unit_Name   => Pack_Id,
!                Visible_Declarations => Renaming_List,
                 End_Label            => Empty));
  
           Set_Instance_Spec (N, Pack_Decl);
--- 6150,6156 ----
             Make_Package_Declaration (Loc,
               Specification => Make_Package_Specification (Loc,
                 Defining_Unit_Name   => Pack_Id,
!                Visible_Declarations => Renamings,
                 End_Label            => Empty));
  
           Set_Instance_Spec (N, Pack_Decl);
*************** package body Sem_Ch12 is
*** 5699,5705 ****
           --  itself, do not add this renaming declaration, to prevent
           --  ambiguities when there is a call with that name in the body.
  
!          Renaming_Decl := First (Renaming_List);
           while Present (Renaming_Decl) loop
              if Nkind (Renaming_Decl) = N_Subprogram_Renaming_Declaration
                and then
--- 6291,6297 ----
           --  itself, do not add this renaming declaration, to prevent
           --  ambiguities when there is a call with that name in the body.
  
!          Renaming_Decl := First (Renamings);
           while Present (Renaming_Decl) loop
              if Nkind (Renaming_Decl) = N_Subprogram_Renaming_Declaration
                and then
*************** package body Sem_Ch12 is
*** 5712,5718 ****
           end loop;
  
           if No (Renaming_Decl) then
!             Append (Unit_Renaming, Renaming_List);
           end if;
        end Build_Subprogram_Renaming;
  
--- 6304,6310 ----
           end loop;
  
           if No (Renaming_Decl) then
!             Append (Unit_Renaming, Renamings);
           end if;
        end Build_Subprogram_Renaming;
  
*************** package body Sem_Ch12 is
*** 5856,5868 ****
           Set_Must_Override     (Act_Spec, Must_Override (N));
           Set_Must_Not_Override (Act_Spec, Must_Not_Override (N));
  
!          Renaming_List :=
             Analyze_Associations
               (I_Node  => N,
                Formals => Generic_Formal_Declarations (Act_Tree),
                F_Copy  => Generic_Formal_Declarations (Gen_Decl));
  
!          Vis_Prims_List := Check_Hidden_Primitives (Renaming_List);
  
           --  The subprogram itself cannot contain a nested instance, so the
           --  current parent is left empty.
--- 6448,6460 ----
           Set_Must_Override     (Act_Spec, Must_Override (N));
           Set_Must_Not_Override (Act_Spec, Must_Not_Override (N));
  
!          Renamings :=
             Analyze_Associations
               (I_Node  => N,
                Formals => Generic_Formal_Declarations (Act_Tree),
                F_Copy  => Generic_Formal_Declarations (Gen_Decl));
  
!          Vis_Prims_List := Check_Hidden_Primitives (Renamings);
  
           --  The subprogram itself cannot contain a nested instance, so the
           --  current parent is left empty.
*************** package body Sem_Ch12 is
*** 5891,5904 ****
              Hide_Current_Scope;
           end if;
  
!          Append (Act_Decl, Renaming_List);
  
           --  Contract-related source pragmas that follow a generic subprogram
           --  must be instantiated explicitly because they are not part of the
           --  subprogram template.
  
           Instantiate_Subprogram_Contract
!            (Original_Node (Gen_Decl), Renaming_List);
  
           Build_Subprogram_Renaming;
  
--- 6483,6496 ----
              Hide_Current_Scope;
           end if;
  
!          Append (Act_Decl, Renamings);
  
           --  Contract-related source pragmas that follow a generic subprogram
           --  must be instantiated explicitly because they are not part of the
           --  subprogram template.
  
           Instantiate_Subprogram_Contract
!            (Original_Node (Gen_Decl), Renamings);
  
           Build_Subprogram_Renaming;
  
*************** package body Sem_Ch12 is
*** 5990,5998 ****
           Set_Has_Pragma_No_Inline
             (Anon_Id,     Has_Pragma_No_Inline (Gen_Unit));
  
!          --  Propagate No_Return if pragma applied to generic unit. This must
!          --  be done explicitly because pragma does not appear in generic
!          --  declaration (unlike the aspect case).
  
           if No_Return (Gen_Unit) then
              Set_No_Return (Act_Decl_Id);
--- 6582,6597 ----
           Set_Has_Pragma_No_Inline
             (Anon_Id,     Has_Pragma_No_Inline (Gen_Unit));
  
!          --  Propagate No_Raise if pragma applied to generic unit. This must
!          --  be done explicitly because the pragma does not appear in generic
!          --  declarations (unlike the aspect).
! 
!          if No_Raise (Gen_Unit) then
!             Set_No_Raise (Act_Decl_Id);
!             Set_No_Raise (Anon_Id);
!          end if;
! 
!          --  Likewise for No_Return
  
           if No_Return (Gen_Unit) then
              Set_No_Return (Act_Decl_Id);
*************** package body Sem_Ch12 is
*** 6217,6223 ****
        New_F     : Entity_Id;
  
     begin
- 
        Subp := Make_Defining_Identifier (Loc, Chars (Formal_Subp));
        Mutate_Ekind (Subp, Ekind (Formal_Subp));
        Set_Is_Generic_Actual_Subprogram (Subp);
--- 6816,6821 ----
*************** package body Sem_Ch12 is
*** 6310,6315 ****
--- 6908,6999 ----
        return Body_Node;
     end Build_Subprogram_Body_Wrapper;
  
+    -------------------------------
+    -- Build_Subprogram_Wrappers --
+    -------------------------------
+ 
+    procedure Build_Subprogram_Wrappers
+      (Match, Analyzed_Formal : Node_Id; Renamings : List_Id)
+    is
+       function Adjust_Aspect_Sloc (N : Node_Id) return Traverse_Result;
+       --  Adjust Sloc so that errors will be reported on the instance rather
+       --  than the generic.
+ 
+       ------------------------
+       -- Adjust_Aspect_Sloc --
+       ------------------------
+ 
+       function Adjust_Aspect_Sloc (N : Node_Id) return Traverse_Result is
+       begin
+          Adjust_Instantiation_Sloc (N, S_Adjustment);
+          return OK;
+       end Adjust_Aspect_Sloc;
+ 
+       procedure Adjust_Aspect_Slocs is new
+         Traverse_Proc (Adjust_Aspect_Sloc);
+ 
+       Formal : constant Entity_Id :=
+         Defining_Unit_Name (Specification (Analyzed_Formal));
+       Aspect_Spec : Node_Id;
+       Decl_Node   : Node_Id;
+       Actual_Name : Node_Id;
+ 
+    --  Start of processing for Build_Subprogram_Wrappers
+ 
+    begin
+       --  Create declaration for wrapper subprogram.
+       --  The actual can be overloaded, in which case it will be
+       --  resolved when the call in the wrapper body is analyzed.
+       --  We attach the possible interpretations of the actual to
+       --  the name to be used in the call in the wrapper body.
+ 
+       if Is_Entity_Name (Match) then
+          Actual_Name := New_Occurrence_Of (Entity (Match), Sloc (Match));
+ 
+          if Is_Overloaded (Match) then
+             Save_Interps (Match, Actual_Name);
+          end if;
+ 
+       else
+          --  Use renaming declaration created when analyzing actual.
+          --  This may be incomplete if there are several formal
+          --  subprograms whose actual is an attribute ???
+ 
+          declare
+             Renaming_Decl : constant Node_Id := Last (Renamings);
+ 
+          begin
+             Actual_Name := New_Occurrence_Of
+                   (Defining_Entity (Renaming_Decl), Sloc (Match));
+             Set_Etype (Actual_Name, Get_Instance_Of (Etype (Formal)));
+          end;
+       end if;
+ 
+       Decl_Node := Build_Subprogram_Decl_Wrapper (Formal);
+ 
+       --  Transfer aspect specifications from formal subprogram to wrapper
+ 
+       Set_Aspect_Specifications (Decl_Node,
+         New_Copy_List_Tree (Aspect_Specifications (Analyzed_Formal)));
+ 
+       Aspect_Spec := First (Aspect_Specifications (Decl_Node));
+       while Present (Aspect_Spec) loop
+          Adjust_Aspect_Slocs (Aspect_Spec);
+          Set_Analyzed (Aspect_Spec, False);
+          Next (Aspect_Spec);
+       end loop;
+ 
+       Append_To (Renamings, Decl_Node);
+ 
+       --  Create corresponding body, and append it to association list
+       --  that appears at the head of the declarations in the instance.
+       --  The subprogram may be called in the analysis of subsequent
+       --  actuals.
+ 
+       Append_To (Renamings,
+         Build_Subprogram_Body_Wrapper (Formal, Actual_Name));
+    end Build_Subprogram_Wrappers;
+ 
     -------------------------------------------
     -- Build_Instance_Compilation_Unit_Nodes --
     -------------------------------------------
*************** package body Sem_Ch12 is
*** 6351,6360 ****
  
        Body_Cunit := Parent (N);
  
!       --  The two compilation unit nodes are linked by the Library_Unit field
  
!       Set_Library_Unit (Decl_Cunit, Body_Cunit);
!       Set_Library_Unit (Body_Cunit, Decl_Cunit);
  
        --  Preserve the private nature of the package if needed
  
--- 7035,7044 ----
  
        Body_Cunit := Parent (N);
  
!       --  Set spec/body links for the two compilation units
  
!       Set_Body_Lib_Unit (Decl_Cunit, Body_Cunit);
!       Set_Spec_Lib_Unit (Body_Cunit, Decl_Cunit);
  
        --  Preserve the private nature of the package if needed
  
*************** package body Sem_Ch12 is
*** 6696,6703 ****
           then
              --  If the formal is a tagged type the corresponding class-wide
              --  type has been generated as well, and it must be skipped.
  
!             if Is_Type (E2) and then Is_Tagged_Type (E2) then
                 Next_Entity (E2);
              end if;
  
--- 7380,7391 ----
           then
              --  If the formal is a tagged type the corresponding class-wide
              --  type has been generated as well, and it must be skipped.
+             --  Likewise, for a formal discrete type, the base type has been
+             --  generated as well (see Analyze_Formal_Discrete_Type).
  
!             if Is_Type (E2)
!               and then (Is_Tagged_Type (E2) or else Is_Enumeration_Type (E2))
!             then
                 Next_Entity (E2);
              end if;
  
*************** package body Sem_Ch12 is
*** 6865,6870 ****
--- 7553,7674 ----
        end loop;
     end Check_Formal_Package_Instance;
  
+    -------------------------------
+    --  Check_Fixed_Point_Warning --
+    -------------------------------
+ 
+    procedure Check_Fixed_Point_Warning
+      (Gen_Assocs : Associations.Gen_Assocs_Rec;
+       Renamings : List_Id)
+    is
+       use Associations;
+    begin
+       for Type_Index in Gen_Assocs.Assocs'Range loop
+          declare
+             Assoc : Assoc_Rec renames Gen_Assocs.Assocs (Type_Index);
+          begin
+             if Nkind (Assoc.An_Formal) = N_Formal_Type_Declaration
+               and then Is_Fixed_Point_Type (Defining_Entity (Assoc.An_Formal))
+               and then Assoc.Actual.Kind = Name_Exp
+             then
+                declare
+                   Typ : constant Entity_Id := Entity (Assoc.Actual.Name_Exp);
+                   pragma Assert (Is_Fixed_Point_Type (Typ));
+ 
+                   Prims  : constant Elist_Id  :=
+                     Collect_Primitive_Operations (Typ);
+                   Elem   : Elmt_Id := First_Elmt (Prims);
+                   Formal : Node_Id;
+                   Op     : Entity_Id;
+                begin
+                   --  Locate primitive operations of the type that are
+                   --  arithmetic operations.
+ 
+                   while Present (Elem) loop
+                      if Nkind (Node (Elem)) = N_Defining_Operator_Symbol then
+ 
+                         --  Check whether the generic unit has a formal
+                         --  subprogram of the same name. This does not check
+                         --  types but is good enough to justify a warning.
+ 
+                         Op := Alias (Node (Elem));
+ 
+                         for Op_Index in Type_Index + 1 ..
+                           Gen_Assocs.Assocs'Last
+                         loop
+                            Formal := Gen_Assocs.Assocs (Op_Index).Un_Formal;
+ 
+                            if Nkind (Formal) =
+                                N_Formal_Concrete_Subprogram_Declaration
+                              and then Chars (Defining_Entity (Formal)) =
+                                         Chars (Node (Elem))
+                            then
+                               goto OK;
+ 
+                            elsif Nkind (Formal) = N_Formal_Package_Declaration
+                            then
+                               declare
+                                  Assoc : Node_Id;
+                                  Ent   : Entity_Id;
+ 
+                               begin
+                                  --  Locate corresponding actual, and check
+                                  --  whether it includes a fixed-point type.
+ 
+                                  Assoc := First (Renamings);
+                                  while Present (Assoc) loop
+                                     exit when
+                                       Nkind (Assoc) =
+                                           N_Package_Renaming_Declaration
+                                         and then
+                                           Chars (Defining_Unit_Name (Assoc)) =
+                                           Chars (Defining_Identifier (Formal));
+ 
+                                     Next (Assoc);
+                                  end loop;
+ 
+                                  if Present (Assoc) then
+                                     --  If the formal package declares a
+                                     --  fixed-point type, and the user-defined
+                                     --  operator is derived from a generic
+                                     --  instance package, the fixed-point type
+                                     --  does not use the corresponding
+                                     --  predefined op.
+ 
+                                     Ent :=
+                                       First_Entity (Entity (Name (Assoc)));
+                                     while Present (Ent) loop
+                                        if Is_Fixed_Point_Type (Ent)
+                                          and then Present (Op)
+                                          and then
+                                            Is_Generic_Instance (Scope (Op))
+                                        then
+                                           goto OK;
+                                        end if;
+ 
+                                        Next_Entity (Ent);
+                                     end loop;
+                                  end if;
+                               end;
+                            end if;
+                         end loop;
+ 
+                         Error_Msg_Sloc := Sloc (Node (Elem));
+                         Error_Msg_NE
+                           ("?instance uses predefined, not primitive, " &
+                            "operator&#",
+                            Assoc.Actual.Name_Exp, Node (Elem));
+                         <<OK>> null;
+                      end if;
+ 
+                      Next_Elmt (Elem);
+                   end loop;
+                end;
+             end if;
+          end;
+       end loop;
+    end Check_Fixed_Point_Warning;
+ 
     ---------------------------
     -- Check_Formal_Packages --
     ---------------------------
*************** package body Sem_Ch12 is
*** 6979,6993 ****
       (Instance      : Entity_Id;
        Is_Formal_Box : Boolean)
     is
!       Gen_Id : constant Entity_Id
!         := (if Is_Generic_Unit (Instance) then
!               Instance
!             elsif Is_Wrapper_Package (Instance) then
!               Generic_Parent
!                 (Specification
!                   (Unit_Declaration_Node (Related_Instance (Instance))))
!             else
!               Generic_Parent (Package_Specification (Instance)));
        --  The generic unit
  
        Parent_Scope : constant Entity_Id := Scope (Gen_Id);
--- 7783,7797 ----
       (Instance      : Entity_Id;
        Is_Formal_Box : Boolean)
     is
!       Gen_Id : constant Entity_Id :=
!         (if Is_Generic_Unit (Instance) then
!            Instance
!          elsif Is_Wrapper_Package (Instance) then
!            Generic_Parent
!              (Specification
!                (Unit_Declaration_Node (Related_Instance (Instance))))
!          else
!            Generic_Parent (Package_Specification (Instance)));
        --  The generic unit
  
        Parent_Scope : constant Entity_Id := Scope (Gen_Id);
*************** package body Sem_Ch12 is
*** 7040,7045 ****
--- 7844,7851 ----
              return False;
           end Scope_Within_Body_Or_Same;
  
+       --  Start of processing for Check_Actual_Type
+ 
        begin
           --  The exchange is only needed if the generic is defined
           --  within a package which is not a common ancestor of the
*************** package body Sem_Ch12 is
*** 7818,7823 ****
--- 8624,8631 ----
           end if;
        end Check_Private_Type;
  
+    --  Start of processing for Check_Private_View
+ 
     begin
        if Present (Typ) then
           --  If the type appears in a subtype declaration, the subtype in
*************** package body Sem_Ch12 is
*** 7880,7899 ****
     -- Check_Hidden_Primitives --
     -----------------------------
  
!    function Check_Hidden_Primitives (Assoc_List : List_Id) return Elist_Id is
        Actual : Node_Id;
        Gen_T  : Entity_Id;
        Result : Elist_Id := No_Elist;
  
     begin
!       if No (Assoc_List) then
           return No_Elist;
        end if;
  
        --  Traverse the list of associations between formals and actuals
        --  searching for renamings of tagged types
  
!       Actual := First (Assoc_List);
        while Present (Actual) loop
           if Nkind (Actual) = N_Subtype_Declaration then
              Gen_T := Generic_Parent_Type (Actual);
--- 8688,8707 ----
     -- Check_Hidden_Primitives --
     -----------------------------
  
!    function Check_Hidden_Primitives (Renamings : List_Id) return Elist_Id is
        Actual : Node_Id;
        Gen_T  : Entity_Id;
        Result : Elist_Id := No_Elist;
  
     begin
!       if No (Renamings) then
           return No_Elist;
        end if;
  
        --  Traverse the list of associations between formals and actuals
        --  searching for renamings of tagged types
  
!       Actual := First (Renamings);
        while Present (Actual) loop
           if Nkind (Actual) = N_Subtype_Declaration then
              Gen_T := Generic_Parent_Type (Actual);
*************** package body Sem_Ch12 is
*** 8410,8420 ****
                 --  stub in the original generic unit with the subunit, in order
                 --  to preserve non-local references within.
  
!                --  Only the proper body needs to be copied. Library_Unit and
!                --  context clause are simply inherited by the generic copy.
!                --  Note that the copy (which may be recursive if there are
!                --  nested subunits) must be done first, before attaching it to
!                --  the enclosing generic.
  
                 New_Body :=
                   Copy_Generic_Node
--- 9218,9228 ----
                 --  stub in the original generic unit with the subunit, in order
                 --  to preserve non-local references within.
  
!                --  Only the proper body needs to be copied. The context clause
!                --  and Spec_Or_Body_Lib_Unit are simply inherited by the
!                --  generic copy. Note that the copy (which may be recursive
!                --  if there are nested subunits) must be done first, before
!                --  attaching it to the enclosing generic.
  
                 New_Body :=
                   Copy_Generic_Node
*************** package body Sem_Ch12 is
*** 8433,8439 ****
                 --  copy, which does not have stubs any longer.
  
                 Set_Proper_Body (Unit (Subunit), New_Body);
!                Set_Library_Unit (New_N, Subunit);
                 Inherit_Context (Unit (Subunit), N);
              end;
  
--- 9241,9247 ----
                 --  copy, which does not have stubs any longer.
  
                 Set_Proper_Body (Unit (Subunit), New_Body);
!                Set_Stub_Subunit (New_N, Subunit);
                 Inherit_Context (Unit (Subunit), N);
              end;
  
*************** package body Sem_Ch12 is
*** 8448,8464 ****
  
           <<Subunit_Not_Found>> null;
  
!       --  If the node is a compilation unit, it is the subunit of a stub, which
!       --  has been loaded already (see code below). In this case, the library
!       --  unit field of N points to the parent unit (which is a compilation
!       --  unit) and need not (and cannot) be copied.
  
!       --  When the proper body of the stub is analyzed, the library_unit link
!       --  is used to establish the proper context (see sem_ch10).
  
        --  The other fields of a compilation unit are copied as usual
  
        elsif Nkind (N) = N_Compilation_Unit then
  
           --  This code can only be executed when not instantiating, because in
           --  the copy made for an instantiation, the compilation unit node has
--- 9256,9272 ----
  
           <<Subunit_Not_Found>> null;
  
!       --  If the node is a compilation unit, it is the subunit of a stub that
!       --  has already been loaded. The parent unit is a compilation unit and
!       --  need not (and cannot) be copied.
  
!       --  When the proper body of the stub is analyzed, the Subunit_Parent
!       --  field is used to establish the proper context (see Sem_Ch10).
  
        --  The other fields of a compilation unit are copied as usual
  
        elsif Nkind (N) = N_Compilation_Unit then
+          pragma Assert (Unit (N) in N_Subunit_Id);
  
           --  This code can only be executed when not instantiating, because in
           --  the copy made for an instantiation, the compilation unit node has
*************** package body Sem_Ch12 is
*** 8680,8688 ****
           --  are inlined by the front end, and the front-end inlining machinery
           --  relies on this routine to perform inlining.
  
!          elsif From_Aspect_Specification (N)
!            and then not Modify_Tree_For_C
!          then
              New_N := Make_Null_Statement (Sloc (N));
  
           else
--- 9488,9494 ----
           --  are inlined by the front end, and the front-end inlining machinery
           --  relies on this routine to perform inlining.
  
!          elsif From_Aspect_Specification (N) then
              New_N := Make_Null_Statement (Sloc (N));
  
           else
*************** package body Sem_Ch12 is
*** 9343,9349 ****
       (N         : Node_Id;
        Gen_Body  : Node_Id;
        Pack_Id   : Entity_Id)
!   is
        function Enclosing_Package_Body (N : Node_Id) return Node_Id;
        --  Find innermost package body that encloses the given node, and which
        --  is not a compilation unit. Freeze nodes for the instance, or for its
--- 10149,10155 ----
       (N         : Node_Id;
        Gen_Body  : Node_Id;
        Pack_Id   : Entity_Id)
!    is
        function Enclosing_Package_Body (N : Node_Id) return Node_Id;
        --  Find innermost package body that encloses the given node, and which
        --  is not a compilation unit. Freeze nodes for the instance, or for its
*************** package body Sem_Ch12 is
*** 9392,9398 ****
           if Nkind (B) = N_Package_Body then
              Id := Corresponding_Spec (B);
           else pragma Assert (Nkind (B) = N_Package_Body_Stub);
!             Id := Corresponding_Spec (Proper_Body (Unit (Library_Unit (B))));
           end if;
  
           Ensure_Freeze_Node (Id);
--- 10198,10204 ----
           if Nkind (B) = N_Package_Body then
              Id := Corresponding_Spec (B);
           else pragma Assert (Nkind (B) = N_Package_Body_Stub);
!             Id := Corresponding_Spec (Proper_Body (Unit (Stub_Subunit (B))));
           end if;
  
           Ensure_Freeze_Node (Id);
*************** package body Sem_Ch12 is
*** 9502,9508 ****
  
           begin
              if Nkind (Enc_N) = N_Package_Body_Stub then
!                Enclosing_Body := Proper_Body (Unit (Library_Unit (Enc_N)));
              else
                 Enclosing_Body := Enc_N;
              end if;
--- 10308,10314 ----
  
           begin
              if Nkind (Enc_N) = N_Package_Body_Stub then
!                Enclosing_Body := Proper_Body (Unit (Stub_Subunit (Enc_N)));
              else
                 Enclosing_Body := Enc_N;
              end if;
*************** package body Sem_Ch12 is
*** 9663,9685 ****
        A_Spec : Node_Id;
        A_Id   : Aspect_Id;
     begin
!       if No (A_List) then
!          return False;
!       else
!          A_Spec := First (A_List);
!          while Present (A_Spec) loop
!             A_Id := Get_Aspect_Id (A_Spec);
!             if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!                return True;
!             end if;
  
!             Next (A_Spec);
!          end loop;
  
!          return False;
!       end if;
     end Has_Contracts;
  
     ----------
     -- Hash --
     ----------
--- 10469,10543 ----
        A_Spec : Node_Id;
        A_Id   : Aspect_Id;
     begin
!       A_Spec := First (A_List);
!       while Present (A_Spec) loop
!          A_Id := Get_Aspect_Id (A_Spec);
!          if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!             return True;
!          end if;
  
!          Next (A_Spec);
!       end loop;
  
!       return False;
     end Has_Contracts;
  
+    -------------------------------
+    -- Has_Fully_Defined_Profile --
+    -------------------------------
+ 
+    function Has_Fully_Defined_Profile (Subp : Entity_Id) return Boolean is
+       function Is_Fully_Defined_Type (Typ : Entity_Id) return Boolean;
+       --  Determine whethet type Typ is fully defined
+ 
+       ---------------------------
+       -- Is_Fully_Defined_Type --
+       ---------------------------
+ 
+       function Is_Fully_Defined_Type (Typ : Entity_Id) return Boolean is
+       begin
+          --  A private type without a full view is not fully defined
+ 
+          if Is_Private_Type (Typ)
+            and then No (Full_View (Typ))
+          then
+             return False;
+ 
+          --  An incomplete type is never fully defined
+ 
+          elsif Is_Incomplete_Type (Typ) then
+             return False;
+ 
+          --  All other types are fully defined
+ 
+          else
+             return True;
+          end if;
+       end Is_Fully_Defined_Type;
+ 
+       --  Local declarations
+ 
+       Param : Entity_Id;
+ 
+    --  Start of processing for Has_Fully_Defined_Profile
+ 
+    begin
+       --  Check the parameters
+ 
+       Param := First_Formal (Subp);
+       while Present (Param) loop
+          if not Is_Fully_Defined_Type (Etype (Param)) then
+             return False;
+          end if;
+ 
+          Next_Formal (Param);
+       end loop;
+ 
+       --  Check the return type
+ 
+       return Is_Fully_Defined_Type (Etype (Subp));
+    end Has_Fully_Defined_Profile;
+ 
     ----------
     -- Hash --
     ----------
*************** package body Sem_Ch12 is
*** 9833,9839 ****
           Item := First (Context_Items (Parent (Gen_Decl)));
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause then
!                Lib_Unit := Library_Unit (Item);
  
                 --  Take care to prevent direct cyclic with's
  
--- 10691,10697 ----
           Item := First (Context_Items (Parent (Gen_Decl)));
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause then
!                Lib_Unit := Withed_Lib_Unit (Item);
  
                 --  Take care to prevent direct cyclic with's
  
*************** package body Sem_Ch12 is
*** 9845,9851 ****
                    OK := True;
                    while Present (Clause) loop
                       if Nkind (Clause) = N_With_Clause
!                        and then Library_Unit (Clause) = Lib_Unit
                       then
                          OK := False;
                          exit;
--- 10703,10709 ----
                    OK := True;
                    while Present (Clause) loop
                       if Nkind (Clause) = N_With_Clause
!                        and then Withed_Lib_Unit (Clause) = Lib_Unit
                       then
                          OK := False;
                          exit;
*************** package body Sem_Ch12 is
*** 9856,9862 ****
  
                    if OK then
                       New_I := New_Copy (Item);
!                      Set_Implicit_With (New_I);
  
                       Append (New_I, Current_Context);
                    end if;
--- 10714,10720 ----
  
                    if OK then
                       New_I := New_Copy (Item);
!                      Set_Is_Implicit_With (New_I);
  
                       Append (New_I, Current_Context);
                    end if;
*************** package body Sem_Ch12 is
*** 10077,10083 ****
                  not In_Same_Source_Unit (Generic_Parent (Par_Inst), Inst)
              then
                 while Present (Decl) loop
!                   if ((Nkind (Decl) in N_Unit_Body
                          or else
                         Nkind (Decl) in N_Body_Stub)
                        and then Comes_From_Source (Decl))
--- 10935,10941 ----
                  not In_Same_Source_Unit (Generic_Parent (Par_Inst), Inst)
              then
                 while Present (Decl) loop
!                   if ((Nkind (Decl) in N_Lib_Unit_Body
                          or else
                         Nkind (Decl) in N_Body_Stub)
                        and then Comes_From_Source (Decl))
*************** package body Sem_Ch12 is
*** 10468,10473 ****
--- 11326,11351 ----
        end if;
     end Install_Hidden_Primitives;
  
+    ---------------------------------
+    -- Renames_Standard_Subprogram --
+    ---------------------------------
+ 
+    function Renames_Standard_Subprogram (Subp : Entity_Id) return Boolean is
+       Id : Entity_Id;
+ 
+    begin
+       Id := Alias (Subp);
+       while Present (Id) loop
+          if Scope (Id) = Standard_Standard then
+             return True;
+          end if;
+ 
+          Id := Alias (Id);
+       end loop;
+ 
+       return False;
+    end Renames_Standard_Subprogram;
+ 
     -------------------------------
     -- Restore_Hidden_Primitives --
     -------------------------------
*************** package body Sem_Ch12 is
*** 10509,10516 ****
        Parent_Spec : Node_Id;
  
        procedure Find_Matching_Actual
!        (F    : Node_Id;
!         Act  : in out Entity_Id);
        --  We need to associate each formal entity in the formal package with
        --  the corresponding entity in the actual package. The actual package
        --  has been analyzed and possibly expanded, and as a result there is
--- 11387,11394 ----
        Parent_Spec : Node_Id;
  
        procedure Find_Matching_Actual
!         (F    : Node_Id;
!          Act  : in out Entity_Id);
        --  We need to associate each formal entity in the formal package with
        --  the corresponding entity in the actual package. The actual package
        --  has been analyzed and possibly expanded, and as a result there is
*************** package body Sem_Ch12 is
*** 10559,10565 ****
        procedure Find_Matching_Actual
          (F   : Node_Id;
           Act : in out Entity_Id)
!      is
           Formal_Ent : Entity_Id;
  
        begin
--- 11437,11443 ----
        procedure Find_Matching_Actual
          (F   : Node_Id;
           Act : in out Entity_Id)
!       is
           Formal_Ent : Entity_Id;
  
        begin
*************** package body Sem_Ch12 is
*** 10673,10678 ****
--- 11551,11557 ----
  
        function Get_Formal_Entity (N : Node_Id) return Entity_Id is
           Kind : constant Node_Kind := Nkind (Original_Node (N));
+ 
        begin
           case Kind is
              when N_Formal_Object_Declaration =>
*************** package body Sem_Ch12 is
*** 10687,10695 ****
              when N_Formal_Package_Declaration =>
                 return Defining_Identifier (Original_Node (N));
  
-             when N_Generic_Package_Declaration =>
-                return Defining_Identifier (Original_Node (N));
- 
              --  All other declarations are introduced by semantic analysis and
              --  have no match in the actual.
  
--- 11566,11571 ----
*************** package body Sem_Ch12 is
*** 10928,10933 ****
--- 11804,11829 ----
                    end if;
  
                    Next_Non_Pragma (Formal_Node);
+ 
+                   --  If the actual of the local package created for the formal
+                   --  is itself an instantiated formal package, then it could
+                   --  have given rise to additional declarations, see the code
+                   --  dealing with conformance checking below.
+ 
+                   if Nkind (Actual_Of_Formal) = N_Package_Renaming_Declaration
+                     and then Requires_Conformance_Checking
+                                (Declaration_Node
+                                  (Associated_Formal_Package
+                                    (Defining_Entity (Actual_Of_Formal))))
+                   then
+                      Next (Actual_Of_Formal);
+                      pragma Assert
+                        (Nkind (Actual_Of_Formal) = N_Package_Declaration);
+                      Next (Actual_Of_Formal);
+                      pragma Assert
+                        (Nkind (Actual_Of_Formal) = N_Package_Instantiation);
+                   end if;
+ 
                    Next (Actual_Of_Formal);
  
                    --  A formal subprogram may be overloaded, so advance in
*************** package body Sem_Ch12 is
*** 10983,10993 ****
           --  checking, because it contains formal declarations for those
           --  defaulted parameters, and those should not reach the back-end.
  
           if Requires_Conformance_Checking (Formal) then
              declare
                 I_Pack : constant Entity_Id := Make_Temporary (Loc, 'P');
! 
!                I_Nam : Node_Id;
  
              begin
                 Set_Is_Internal (I_Pack);
--- 11879,11892 ----
           --  checking, because it contains formal declarations for those
           --  defaulted parameters, and those should not reach the back-end.
  
+          --  This processing needs to be synchronized with the pattern matching
+          --  done in the main loop of the above block that starts with the test
+          --  on Requires_Conformance_Checking.
+ 
           if Requires_Conformance_Checking (Formal) then
              declare
                 I_Pack : constant Entity_Id := Make_Temporary (Loc, 'P');
!                I_Nam  : Node_Id;
  
              begin
                 Set_Is_Internal (I_Pack);
*************** package body Sem_Ch12 is
*** 11006,11012 ****
                 if Is_Child_Unit (Gen_Parent) then
                    I_Nam :=
                      New_Copy_Tree (Name (Original_Node (Analyzed_Formal)));
!                   pragma Assert (Entity (I_Nam) = Gen_Parent);
  
                 else
                    I_Nam :=
--- 11905,11912 ----
                 if Is_Child_Unit (Gen_Parent) then
                    I_Nam :=
                      New_Copy_Tree (Name (Original_Node (Analyzed_Formal)));
!                   pragma Assert (Entity (I_Nam) = Gen_Parent
!                     or else Renamed_Entity (Entity (I_Nam)) = Gen_Parent);
  
                 else
                    I_Nam :=
*************** package body Sem_Ch12 is
*** 11231,11239 ****
              Nam := Make_Identifier (Loc, Chars (Formal_Sub));
           end if;
  
!       elsif Nkind (Specification (Formal)) = N_Procedure_Specification
!         and then Null_Present (Specification (Formal))
!       then
           --  Generate null body for procedure, for use in the instance
  
           Decl_Node :=
--- 12131,12137 ----
              Nam := Make_Identifier (Loc, Chars (Formal_Sub));
           end if;
  
!       elsif Has_Null_Default (Formal) then
           --  Generate null body for procedure, for use in the instance
  
           Decl_Node :=
*************** package body Sem_Ch12 is
*** 11290,11302 ****
           return Decl_Node;
  
        else
!          Error_Msg_Sloc := Sloc (Scope (Analyzed_S));
!          Error_Msg_NE
!            ("missing actual&", Instantiation_Node, Formal_Sub);
!          Error_Msg_NE
!            ("\in instantiation of & declared#",
!               Instantiation_Node, Scope (Analyzed_S));
!          Abandon_Instantiation (Instantiation_Node);
        end if;
  
        Decl_Node :=
--- 12188,12194 ----
           return Decl_Node;
  
        else
!          pragma Assert (False);
        end if;
  
        Decl_Node :=
*************** package body Sem_Ch12 is
*** 11435,11448 ****
           Acc_Def := Access_Definition (Formal);
        end if;
  
-       --  Sloc for error message on missing actual
- 
-       Error_Msg_Sloc := Sloc (Scope (A_Gen_Obj));
- 
-       if Get_Instance_Of (Gen_Obj) /= Gen_Obj then
-          Error_Msg_N ("duplicate instantiation of generic parameter", Actual);
-       end if;
- 
        Set_Parent (List, Act_Assoc);
  
        --  OUT present
--- 12327,12332 ----
*************** package body Sem_Ch12 is
*** 11453,11473 ****
           --  renaming declaration. The actual is the name being renamed. We
           --  use the actual directly, rather than a copy, because it is not
           --  used further in the list of actuals, and because a copy or a use
!          --  of relocate_node is incorrect if the instance is nested within a
           --  generic. In order to simplify e.g. ASIS queries, the
           --  Generic_Parent field links the declaration to the generic
           --  association.
  
-          if No (Actual) then
-             Error_Msg_NE
-               ("missing actual &",
-                Instantiation_Node, Gen_Obj);
-             Error_Msg_NE
-               ("\in instantiation of & declared#",
-                Instantiation_Node, Scope (A_Gen_Obj));
-             Abandon_Instantiation (Instantiation_Node);
-          end if;
- 
           if Present (Subt_Mark) then
              Decl_Node :=
                Make_Object_Renaming_Declaration (Loc,
--- 12337,12347 ----
           --  renaming declaration. The actual is the name being renamed. We
           --  use the actual directly, rather than a copy, because it is not
           --  used further in the list of actuals, and because a copy or a use
!          --  of Relocate_Node is incorrect if the instance is nested within a
           --  generic. In order to simplify e.g. ASIS queries, the
           --  Generic_Parent field links the declaration to the generic
           --  association.
  
           if Present (Subt_Mark) then
              Decl_Node :=
                Make_Object_Renaming_Declaration (Loc,
*************** package body Sem_Ch12 is
*** 11508,11513 ****
--- 12382,12391 ----
              Error_Msg_N
                ("illegal discriminant-dependent component for in out parameter",
                 Actual);
+          elsif Depends_On_Mutably_Tagged_Ext_Comp (Actual) then
+             Error_Msg_N
+               ("illegal mutably tagged component for in out parameter",
+                Actual);
           end if;
  
           --  The actual has to be resolved in order to check that it is a
*************** package body Sem_Ch12 is
*** 11627,11640 ****
             (Actual => Actual,
              Formal => A_Gen_Obj);
  
!       --  Formal in-parameter
  
        else
!          --  The instantiation of a generic formal in-parameter is constant
!          --  declaration. The actual is the expression for that declaration.
!          --  Its type is a full copy of the type of the formal. This may be
!          --  an access to subprogram, for which we need to generate entities
!          --  for the formals in the new signature.
  
           if Present (Actual) then
              if Present (Subt_Mark) then
--- 12505,12518 ----
             (Actual => Actual,
              Formal => A_Gen_Obj);
  
!       --  Formal in-mode parameter
  
        else
!          --  The instantiation of a generic formal in-mode parameter is a
!          --  constant declaration. The actual is the expression for that
!          --  declaration.  Its type is a full copy of the type of the
!          --  formal. This may be an access to subprogram, for which we need
!          --  to generate entities for the formals in the new signature.
  
           if Present (Actual) then
              if Present (Subt_Mark) then
*************** package body Sem_Ch12 is
*** 11755,11791 ****
              Set_Analyzed (Expression (Decl_Node), False);
  
           else
!             Error_Msg_NE ("missing actual&", Instantiation_Node, Gen_Obj);
!             Error_Msg_NE ("\in instantiation of & declared#",
!                           Instantiation_Node, Scope (A_Gen_Obj));
! 
!             if Is_Scalar_Type (Etype (A_Gen_Obj)) then
! 
!                --  Create dummy constant declaration so that instance can be
!                --  analyzed, to minimize cascaded visibility errors.
! 
!                if Present (Subt_Mark) then
!                   Def := Subt_Mark;
!                else pragma Assert (Present (Acc_Def));
!                   Def := Acc_Def;
!                end if;
! 
!                Decl_Node :=
!                  Make_Object_Declaration (Loc,
!                    Defining_Identifier    => New_Copy (Gen_Obj),
!                    Constant_Present       => True,
!                    Null_Exclusion_Present => Null_Exclusion_Present (Formal),
!                    Object_Definition      => New_Copy (Def),
!                    Expression             =>
!                      Make_Attribute_Reference (Sloc (Gen_Obj),
!                        Attribute_Name => Name_First,
!                        Prefix         => New_Copy (Def)));
! 
!                Append (Decl_Node, List);
! 
!             else
!                Abandon_Instantiation (Instantiation_Node);
!             end if;
           end if;
        end if;
  
--- 12633,12639 ----
              Set_Analyzed (Expression (Decl_Node), False);
  
           else
!             pragma Assert (False);
           end if;
        end if;
  
*************** package body Sem_Ch12 is
*** 12885,12891 ****
        Act_T      : Entity_Id;
        Ancestor   : Entity_Id := Empty;
        Decl_Node  : Node_Id;
!       Decl_Nodes : List_Id;
        Loc        : Source_Ptr;
        Subt       : Entity_Id;
  
--- 13733,13739 ----
        Act_T      : Entity_Id;
        Ancestor   : Entity_Id := Empty;
        Decl_Node  : Node_Id;
!       Decl_Nodes : List_Id; -- result
        Loc        : Source_Ptr;
        Subt       : Entity_Id;
  
*************** package body Sem_Ch12 is
*** 12897,12903 ****
        --  There are a number of constructs in which a discrete type with
        --  predicates is illegal, e.g. as an index in an array type declaration.
        --  If a generic type is used is such a construct in a generic package
!       --  declaration, it carries the flag No_Predicate_On_Actual. it is part
        --  of the generic contract that the actual cannot have predicates.
  
        function Subtypes_Match (Gen_T, Act_T : Entity_Id) return Boolean;
--- 13745,13751 ----
        --  There are a number of constructs in which a discrete type with
        --  predicates is illegal, e.g. as an index in an array type declaration.
        --  If a generic type is used is such a construct in a generic package
!       --  declaration, it carries the flag No_Predicate_On_Actual. It is part
        --  of the generic contract that the actual cannot have predicates.
  
        function Subtypes_Match (Gen_T, Act_T : Entity_Id) return Boolean;
*************** package body Sem_Ch12 is
*** 13047,13055 ****
           --  wide types), or designated types (when dealing with anonymous
           --  access types) of Gen_T and Act_T are statically matching subtypes.
  
!          return ((Base_Type (T) = Act_T
!                    or else Base_Type (T) = Base_Type (Act_T))
!                   and then Subtypes_Statically_Match (T, Act_T))
  
             or else (Is_Class_Wide_Type (Gen_T)
                       and then Is_Class_Wide_Type (Act_T)
--- 13895,13902 ----
           --  wide types), or designated types (when dealing with anonymous
           --  access types) of Gen_T and Act_T are statically matching subtypes.
  
!          return (Base_Type (Base_Type (T)) = Base_Type (Act_T)
!                    and then Subtypes_Statically_Match (T, Act_T))
  
             or else (Is_Class_Wide_Type (Gen_T)
                       and then Is_Class_Wide_Type (Act_T)
*************** package body Sem_Ch12 is
*** 13193,13198 ****
--- 14040,14061 ----
                ("non null exclusion of actual and formal & do not match",
                   Actual, Gen_T);
           end if;
+ 
+          --  formal/actual extended access match required (regardless of
+          --  whether a formal extended access type is currently possible)
+ 
+          if Is_Extended_Access_Type (Act_T)
+            /= Is_Extended_Access_Type (A_Gen_T)
+          then
+             Error_Msg_N
+               ("actual type must" &
+                String'(if Is_Extended_Access_Type (A_Gen_T)
+                        then ""
+                        else " not") &
+                " be extended access type", Actual);
+ 
+             Abandon_Instantiation (Actual);
+          end if;
        end Validate_Access_Type_Instance;
  
        ----------------------------------
*************** package body Sem_Ch12 is
*** 13212,13233 ****
           -----------------------
  
           function Formal_Dimensions return Nat is
!             Num   : Nat := 0;
!             Index : Node_Id;
  
           begin
              if Nkind (Def) = N_Constrained_Array_Definition then
!                Index := First (Discrete_Subtype_Definitions (Def));
              else
!                Index := First (Subtype_Marks (Def));
              end if;
  
!             while Present (Index) loop
!                Num := Num + 1;
!                Next (Index);
!             end loop;
! 
!             return Num;
           end Formal_Dimensions;
  
        --  Start of processing for Validate_Array_Type_Instance
--- 14075,14090 ----
           -----------------------
  
           function Formal_Dimensions return Nat is
!             Dims : List_Id;
  
           begin
              if Nkind (Def) = N_Constrained_Array_Definition then
!                Dims := Discrete_Subtype_Definitions (Def);
              else
!                Dims := Subtype_Marks (Def);
              end if;
  
!             return List_Length (Dims);
           end Formal_Dimensions;
  
        --  Start of processing for Validate_Array_Type_Instance
*************** package body Sem_Ch12 is
*** 13239,13245 ****
              Abandon_Instantiation (Actual);
  
           elsif Nkind (Def) = N_Constrained_Array_Definition then
!             if not (Is_Constrained (Act_T)) then
                 Error_Msg_NE
                   ("expect constrained array in instantiation of &",
                    Actual, Gen_T);
--- 14096,14102 ----
              Abandon_Instantiation (Actual);
  
           elsif Nkind (Def) = N_Constrained_Array_Definition then
!             if not Is_Constrained (Act_T) then
                 Error_Msg_NE
                   ("expect constrained array in instantiation of &",
                    Actual, Gen_T);
*************** package body Sem_Ch12 is
*** 13491,13497 ****
            or else
              Ekind (Get_Instance_Of (A_Gen_T)) = E_Record_Type_With_Private
           then
!             --  Check whether the parent is another derived formal type in the
              --  same generic unit.
  
              if Etype (A_Gen_T) /= A_Gen_T
--- 14348,14354 ----
            or else
              Ekind (Get_Instance_Of (A_Gen_T)) = E_Record_Type_With_Private
           then
!             --  Check whether the parent is another formal derived type in the
              --  same generic unit.
  
              if Etype (A_Gen_T) /= A_Gen_T
*************** package body Sem_Ch12 is
*** 14164,14169 ****
--- 15021,15027 ----
  
           elsif not Is_Definite_Subtype (Act_T)
              and then Is_Definite_Subtype (A_Gen_T)
+             and then No (Class_Wide_Equivalent_Type (Act_T))
              and then Ada_Version >= Ada_95
           then
              Error_Msg_NE
*************** package body Sem_Ch12 is
*** 14174,14179 ****
--- 15032,15049 ----
           then
              Error_Msg_NE
                ("actual for & must be a tagged type", Actual, Gen_T);
+ 
+          --  For generic formal tagged types with the First_Controlling_Param
+          --  aspect, ensure that the actual type also has this aspect.
+ 
+          elsif Is_Tagged_Type (Act_T)
+            and then Is_Tagged_Type (A_Gen_T)
+            and then not Has_First_Controlling_Parameter_Aspect (Act_T)
+            and then Has_First_Controlling_Parameter_Aspect (A_Gen_T)
+          then
+             Error_Msg_NE
+               ("actual for & must be a 'First_'Controlling_'Parameter tagged "
+                & "type", Actual, Gen_T);
           end if;
  
           Validate_Discriminated_Formal_Type;
*************** package body Sem_Ch12 is
*** 14183,14193 ****
     --  Start of processing for Instantiate_Type
  
     begin
-       if Get_Instance_Of (A_Gen_T) /= A_Gen_T then
-          Error_Msg_N ("duplicate instantiation of generic type", Actual);
-          return New_List (Error);
-       end if;
- 
        if not Is_Entity_Name (Actual)
          or else not Is_Type (Entity (Actual))
        then
--- 15053,15058 ----
*************** package body Sem_Ch12 is
*** 14198,14203 ****
--- 15063,15075 ----
  
        Act_T := Entity (Actual);
  
+       --  Obtain the class-wide equivalent type and use it for the
+       --  instantiation instead of a mutably tagged type.
+ 
+       if Present (Class_Wide_Equivalent_Type (Act_T)) then
+          Act_T := Class_Wide_Equivalent_Type (Act_T);
+       end if;
+ 
        --  Ada 2005 (AI-216): An Unchecked_Union subtype shall only be passed
        --  as a generic actual parameter if the corresponding formal type
        --  does not have a known_discriminant_part, or is a formal derived
*************** package body Sem_Ch12 is
*** 14304,14312 ****
  
        Check_Shared_Variable_Control_Aspects;
  
!       if Error_Posted (Act_T) then
!          null;
!       else
           case Nkind (Def) is
              when N_Formal_Private_Type_Definition =>
                 Validate_Private_Type_Instance;
--- 15176,15182 ----
  
        Check_Shared_Variable_Control_Aspects;
  
!       if not Error_Posted (Act_T) then
           case Nkind (Def) is
              when N_Formal_Private_Type_Definition =>
                 Validate_Private_Type_Instance;
*************** package body Sem_Ch12 is
*** 14550,14559 ****
  
        return
          Current_Unit = Cunit (Main_Unit)
!           or else Current_Unit = Library_Unit (Cunit (Main_Unit))
            or else (Present (Current_Unit)
!                     and then Present (Library_Unit (Current_Unit))
!                     and then Is_In_Main_Unit (Library_Unit (Current_Unit)));
     end Is_In_Main_Unit;
  
     ----------------------------
--- 15420,15429 ----
  
        return
          Current_Unit = Cunit (Main_Unit)
!           or else Current_Unit = Other_Comp_Unit (Cunit (Main_Unit))
            or else (Present (Current_Unit)
!                     and then Present (Other_Comp_Unit (Current_Unit))
!                     and then Is_In_Main_Unit (Other_Comp_Unit (Current_Unit)));
     end Is_In_Main_Unit;
  
     ----------------------------
*************** package body Sem_Ch12 is
*** 16324,16335 ****
  
                 --  If there are other defaults, add a dummy association in case
                 --  there are other defaulted formals with the same name.
  
                 elsif Present (Next (Act2)) then
                    Ndec :=
                      Make_Generic_Association (Loc,
!                       Selector_Name                     =>
!                         New_Occurrence_Of (Subp, Loc),
                        Explicit_Generic_Actual_Parameter => Empty);
  
                    Append (Ndec, Assoc1);
--- 17194,17206 ----
  
                 --  If there are other defaults, add a dummy association in case
                 --  there are other defaulted formals with the same name.
+                --  Note that we are creating an N_Generic_Association with
+                --  neither Explicit_Generic_Actual_Parameter nor Box_Present.
  
                 elsif Present (Next (Act2)) then
                    Ndec :=
                      Make_Generic_Association (Loc,
!                       Selector_Name => New_Occurrence_Of (Subp, Loc),
                        Explicit_Generic_Actual_Parameter => Empty);
  
                    Append (Ndec, Assoc1);
*************** package body Sem_Ch12 is
*** 17267,17273 ****
                    Get_Attribute_Id (Attribute_Name (Def));
        T       : constant Entity_Id := Entity (Prefix (Def));
        Is_Fun  : constant Boolean := (Ekind (Nam) = E_Function);
-       F       : Entity_Id;
        Num_F   : Nat;
        OK      : Boolean;
  
--- 18138,18143 ----
*************** package body Sem_Ch12 is
*** 17276,17287 ****
           return;
        end if;
  
!       Num_F := 0;
!       F := First_Formal (Nam);
!       while Present (F) loop
!          Num_F := Num_F + 1;
!          Next_Formal (F);
!       end loop;
  
        case Attr_Id is
           when Attribute_Adjacent
--- 18146,18152 ----
           return;
        end if;
  
!       Num_F := Number_Formals (Nam);
  
        case Attr_Id is
           when Attribute_Adjacent
*************** package body Sem_Ch12 is
*** 17360,17365 ****
--- 18225,18231 ----
        function Reference_Formal (N : Node_Id) return Traverse_Result is
        begin
           if Is_Entity_Name (N)
+            and then Present (Entity (N))
             and then Scope (Entity (N)) = Current_Scope
           then
              return Abandon;
*************** package body Sem_Ch12 is
*** 17555,17561 ****
  
        procedure Validate_Derived_Type_Default is
        begin
!          if not Is_Ancestor (Etype (Formal), Def_Sub) then
              Error_Msg_NE ("default must be a descendent of&",
                Default, Etype (Formal));
           end if;
--- 18421,18427 ----
  
        procedure Validate_Derived_Type_Default is
        begin
!          if not Is_Ancestor (Etype (Base_Type (Formal)), Def_Sub) then
              Error_Msg_NE ("default must be a descendent of&",
                Default, Etype (Formal));
           end if;
*************** package body Sem_Ch12 is
*** 17728,17747 ****
              end if;
  
           when N_Record_Definition =>   -- Formal interface type
!             if not Is_Interface (Def_Sub) then
!                Error_Msg_NE
!                  ("default for formal interface type must be an interface",
!                   Default, Formal);
  
!             elsif Is_Limited_Type (Def_Sub) /= Is_Limited_Type (Formal)
!               or else Is_Task_Interface (Formal) /= Is_Task_Interface (Def_Sub)
!               or else Is_Protected_Interface (Formal) /=
!                       Is_Protected_Interface (Def_Sub)
!               or else Is_Synchronized_Interface (Formal) /=
!                       Is_Synchronized_Interface (Def_Sub)
!             then
!                Error_Msg_NE
!                  ("default for interface& does not match", Def_Sub, Formal);
              end if;
  
           when N_Derived_Type_Definition =>
--- 18594,18616 ----
              end if;
  
           when N_Record_Definition =>   -- Formal interface type
!             if Is_Tagged_Type (Def_Sub) then
!                if not Is_Interface (Def_Sub) then
!                   Error_Msg_NE
!                     ("default for formal interface type must be an interface",
!                      Default, Formal);
  
!                elsif Is_Limited_Type (Def_Sub) /= Is_Limited_Type (Formal)
!                  or else Is_Task_Interface (Formal) /=
!                          Is_Task_Interface (Def_Sub)
!                  or else Is_Protected_Interface (Formal) /=
!                          Is_Protected_Interface (Def_Sub)
!                  or else Is_Synchronized_Interface (Formal) /=
!                          Is_Synchronized_Interface (Def_Sub)
!                then
!                   Error_Msg_NE
!                     ("default for interface& does not match", Def_Sub, Formal);
!                end if;
              end if;
  
           when N_Derived_Type_Definition =>
*************** package body Sem_Ch12 is
*** 17757,17760 ****
--- 18626,18691 ----
              raise Program_Error;
        end case;
     end Validate_Formal_Type_Default;
+ 
+    package body Instance_Context is
+ 
+       --------------------
+       -- Save_And_Reset --
+       --------------------
+ 
+       function Save_And_Reset return Context is
+       begin
+          return Result : Context (0 .. Integer (Generic_Renamings.Last)) do
+             for Index in Result'Range loop
+                declare
+                   Indexed_Assoc : Assoc renames Generic_Renamings.Table
+                                                   (Assoc_Ptr (Index));
+                   Result_Pair : Binding_Pair renames Result (Index);
+                begin
+                   --  If we have called Increment_Last but have not yet
+                   --  initialized the new last element of the table, then
+                   --  that last element might be invalid. Saving and
+                   --  restoring (especially restoring, it turns out) invalid
+                   --  values can result in exceptions if predicate checking
+                   --  is enabled, so replace invalid values with Empty.
+ 
+                   if Indexed_Assoc.Gen_Id'Valid then
+                      Result_Pair.Formal_Id := Indexed_Assoc.Gen_Id;
+                   else
+                      pragma Assert (Index = Result'Last);
+                      Result_Pair.Formal_Id := Empty;
+                   end if;
+ 
+                   if Indexed_Assoc.Act_Id'Valid then
+                      Result_Pair.Actual_Id := Indexed_Assoc.Act_Id;
+                   else
+                      pragma Assert (Index = Result'Last);
+                      Result_Pair.Actual_Id := Empty;
+                   end if;
+                end;
+             end loop;
+ 
+             Generic_Renamings.Init;
+             Generic_Renamings.Set_Last (-1);
+             Generic_Renamings_HTable.Reset;
+          end return;
+       end Save_And_Reset;
+ 
+       -------------
+       -- Restore --
+       -------------
+ 
+       procedure Restore (Saved : Context) is
+       begin
+          Generic_Renamings.Init;
+          Generic_Renamings.Set_Last (0);
+          Generic_Renamings_HTable.Reset;
+          Generic_Renamings.Increment_Last;
+          for Pair of Saved loop
+             Set_Instance_Of (Pair.Formal_Id, Pair.Actual_Id);
+          end loop;
+          Generic_Renamings.Decrement_Last;
+       end Restore;
+ 
+    end Instance_Context;
  end Sem_Ch12;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch12.ads gcc-15.1.0/gcc/ada/sem_ch12.ads
*** gcc-14.2.0/gcc/ada/sem_ch12.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch12.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch12 is
*** 135,141 ****
     --  captured as described here.
  
     --  Because instantiations can be nested, the environment of the instance,
!    --  involving the actuals and other data-structures, must be saved and
     --  restored in stack-like fashion. Front-end inlining also uses these
     --  structures for the management of private/full views.
  
--- 135,141 ----
     --  captured as described here.
  
     --  Because instantiations can be nested, the environment of the instance,
!    --  involving the actuals and other data structures, must be saved and
     --  restored in stack-like fashion. Front-end inlining also uses these
     --  structures for the management of private/full views.
  
*************** package Sem_Ch12 is
*** 186,198 ****
        Act_Unit : Entity_Id);
     --  Because instantiations can be nested, the compiler maintains a stack
     --  of environments that holds variables relevant to the current instance:
!    --  most importanty Instantiated_Parent, Exchanged_Views, Hidden_Entities,
     --  and others (see full list in Instance_Env).
  
     procedure Restore_Env;
     --  After processing an instantiation, or aborting one because of semantic
     --  errors, remove the current Instantiation_Env from Instantation_Envs.
  
     procedure Initialize;
     --  Initializes internal data structures
  
--- 186,223 ----
        Act_Unit : Entity_Id);
     --  Because instantiations can be nested, the compiler maintains a stack
     --  of environments that holds variables relevant to the current instance:
!    --  most importantly Instantiated_Parent, Exchanged_Views, Hidden_Entities,
     --  and others (see full list in Instance_Env).
  
     procedure Restore_Env;
     --  After processing an instantiation, or aborting one because of semantic
     --  errors, remove the current Instantiation_Env from Instantation_Envs.
  
+    package Instance_Context is
+       --  If an entirely new context is entered (e.g., when Rtsfind invokes
+       --  semantics on a new compilation unit), then the current contents of
+       --  the generic renamings table must be saved and later restored.
+ 
+       type Context (<>) is private;
+ 
+       function Save_And_Reset return Context;
+       --  Save the current context information, then reinitialize
+       --  the current context, and finally return the saved value.
+ 
+       procedure Restore (Saved : Context);
+       --  Restore the context that was saved earlier.
+ 
+    private
+ 
+       type Binding_Pair is record
+          Formal_Id : Entity_Id;
+          Actual_Id : Entity_Id;
+       end record;
+ 
+       type Context is array (Natural range <>) of Binding_Pair;
+ 
+    end Instance_Context;
+ 
     procedure Initialize;
     --  Initializes internal data structures
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch13.adb gcc-15.1.0/gcc/ada/sem_ch13.adb
*** gcc-14.2.0/gcc/ada/sem_ch13.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch13.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Atree;            use Atree;
*** 29,34 ****
--- 29,35 ----
  with Checks;           use Checks;
  with Contracts;        use Contracts;
  with Debug;            use Debug;
+ with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;            use Einfo;
  with Einfo.Entities;   use Einfo.Entities;
  with Einfo.Utils;      use Einfo.Utils;
*************** with Freeze;           use Freeze;
*** 43,48 ****
--- 44,50 ----
  with Ghost;            use Ghost;
  with Lib;              use Lib;
  with Lib.Xref;         use Lib.Xref;
+ with Mutably_Tagged;   use Mutably_Tagged;
  with Namet;            use Namet;
  with Nlists;           use Nlists;
  with Nmake;            use Nmake;
*************** package body Sem_Ch13 is
*** 136,142 ****
     --  the expression of aspect Asp evaluates to False or is erroneous.
  
     function Build_Predicate_Function_Declaration
!       (Typ : Entity_Id) return Node_Id;
     --  Build the declaration for a predicate function. The declaration is built
     --  at the same time as the body but inserted before, as explained below.
  
--- 138,144 ----
     --  the expression of aspect Asp evaluates to False or is erroneous.
  
     function Build_Predicate_Function_Declaration
!      (Typ : Entity_Id) return Node_Id;
     --  Build the declaration for a predicate function. The declaration is built
     --  at the same time as the body but inserted before, as explained below.
  
*************** package body Sem_Ch13 is
*** 150,159 ****
--- 152,188 ----
     --  is inserted before the freeze node, and the body of the function is
     --  inserted after the freeze node.
  
+    procedure Check_Aspect_At_End_Of_Declarations (ASN : Node_Id);
+    --  Performs the processing of an aspect at the freeze all point and issues
+    --  appropriate error messages if the visibility has indeed changed. ASN is
+    --  the N_Aspect_Specification node for the aspect.
+ 
+    procedure Check_Aspect_At_Freeze_Point (ASN : Node_Id);
+    --  Performs the processing of an aspect at the freeze point. ASN is the
+    --  N_Aspect_Specification node for the aspect.
+ 
+    procedure Check_Aspect_Too_Late (N : Node_Id);
+    --  This procedure is similar to Rep_Item_Too_Late for representation
+    --  aspects that apply to type and that do not have a corresponding pragma.
+    --
+    --  Used to check in particular that the expression associated with aspect
+    --  node N for the given type (entity) of the aspect does not appear too
+    --  late according to the rules in RM 13.1(9) and 13.1(10).
+ 
+    procedure Check_Iterator_Functions (Typ : Entity_Id; Expr : Node_Id);
+    --  Check that there is a single function in the type's Default_Iterator
+    --  aspect that has the proper type structure. Expr is the name given in
+    --  the aspect specification.
+ 
     procedure Check_Pool_Size_Clash (Ent : Entity_Id; SP, SS : Node_Id);
     --  Called if both Storage_Pool and Storage_Size attribute definition
     --  clauses (SP and SS) are present for entity Ent. Issue error message.
  
+    function Check_Primitive_Function
+      (Subp : Entity_Id; Ent : Entity_Id) return Boolean;
+    --  Common legality checks for primitive-denoting aspects. Checks that
+    --  Subp is a primitive subprogram of the type Ent.
+ 
     procedure Freeze_Entity_Checks (N : Node_Id);
     --  Called from Analyze_Freeze_Entity and Analyze_Generic_Freeze Entity
     --  to generate appropriate semantic checks that are delayed until this
*************** package body Sem_Ch13 is
*** 281,286 ****
--- 310,319 ----
     --  Check legality and completeness of the aggregate associations given in
     --  the Storage_Model_Type aspect associated with Typ.
  
+    procedure Validate_Finalizable_Aspect (Typ : Entity_Id; ASN : Node_Id);
+    --  Check legality and completeness of the aggregate associations given in
+    --  the Finalizable aspect associated with Typ.
+ 
     procedure Resolve_Storage_Model_Type_Argument
       (N         : Node_Id;
        Typ       : Entity_Id;
*************** package body Sem_Ch13 is
*** 290,301 ****
     --  or to have the proper profile (when a subprogram).
  
     procedure Resolve_Aspect_Stable_Properties
!     (Typ_Or_Subp   : Entity_Id;
!      Expr          : Node_Id;
!      Class_Present : Boolean);
     --  Resolve each one of the functions specified in the specification of
     --  aspect Stable_Properties (or Stable_Properties'Class).
  
     procedure Resolve_Iterable_Operation
       (N      : Node_Id;
        Cursor : Entity_Id;
--- 323,341 ----
     --  or to have the proper profile (when a subprogram).
  
     procedure Resolve_Aspect_Stable_Properties
!      (Typ_Or_Subp   : Entity_Id;
!       Expr          : Node_Id;
!       Class_Present : Boolean);
     --  Resolve each one of the functions specified in the specification of
     --  aspect Stable_Properties (or Stable_Properties'Class).
  
+    procedure Resolve_Finalizable_Argument
+      (N   : Node_Id;
+       Typ : Entity_Id;
+       Nam : Name_Id);
+    --  Resolve each one of the arguments specified in the specification of
+    --  aspect Finalizable.
+ 
     procedure Resolve_Iterable_Operation
       (N      : Node_Id;
        Cursor : Entity_Id;
*************** package body Sem_Ch13 is
*** 498,504 ****
  
                       if Warn_On_Reverse_Bit_Order then
                          Error_Msg_N
!                           ("info: multi-byte field specified with "
                             & "non-standard Bit_Order?.v?", CC);
  
                          if Bytes_Big_Endian then
--- 538,544 ----
  
                       if Warn_On_Reverse_Bit_Order then
                          Error_Msg_N
!                           ("multi-byte field specified with "
                             & "non-standard Bit_Order?.v?", CC);
  
                          if Bytes_Big_Endian then
*************** package body Sem_Ch13 is
*** 722,728 ****
                    then
                       Error_Msg_Uint_1 := MSS;
                       Error_Msg_N
!                        ("info: reverse bit order in machine scalar of "
                          & "length^?.v?", First_Bit (CC));
                       Error_Msg_Uint_1 := NFB;
                       Error_Msg_Uint_2 := NLB;
--- 762,768 ----
                    then
                       Error_Msg_Uint_1 := MSS;
                       Error_Msg_N
!                        ("reverse bit order in machine scalar of "
                          & "length^?.v?", First_Bit (CC));
                       Error_Msg_Uint_1 := NFB;
                       Error_Msg_Uint_2 := NLB;
*************** package body Sem_Ch13 is
*** 798,804 ****
                      and then CSZ mod System_Storage_Unit = 0
                    then
                       Error_Msg_N
!                        ("info: multi-byte field specified with non-standard "
                          & "Bit_Order?.v?", CLC);
  
                       if Bytes_Big_Endian then
--- 838,844 ----
                      and then CSZ mod System_Storage_Unit = 0
                    then
                       Error_Msg_N
!                        ("multi-byte field specified with non-standard "
                          & "Bit_Order?.v?", CLC);
  
                       if Bytes_Big_Endian then
*************** package body Sem_Ch13 is
*** 831,843 ****
                      and then Warn_On_Reverse_Bit_Order
                    then
                       Error_Msg_N
!                        ("info: Bit_Order clause does not affect byte "
                          & "ordering?.v?", Pos);
                       Error_Msg_Uint_1 :=
                         Intval (Pos) + Intval (FB) /
                         System_Storage_Unit;
                       Error_Msg_N
!                        ("info: position normalized to ^ before bit order "
                          & "interpreted?.v?", Pos);
                    end if;
  
--- 871,883 ----
                      and then Warn_On_Reverse_Bit_Order
                    then
                       Error_Msg_N
!                        ("Bit_Order clause does not affect byte "
                          & "ordering?.v?", Pos);
                       Error_Msg_Uint_1 :=
                         Intval (Pos) + Intval (FB) /
                         System_Storage_Unit;
                       Error_Msg_N
!                        ("position normalized to ^ before bit order "
                          & "interpreted?.v?", Pos);
                    end if;
  
*************** package body Sem_Ch13 is
*** 941,958 ****
     -- Analyze_Aspects_At_Freeze_Point --
     -------------------------------------
  
!    procedure Analyze_Aspects_At_Freeze_Point (E : Entity_Id) is
        procedure Analyze_Aspect_Default_Value (ASN : Node_Id);
        --  This routine analyzes an Aspect_Default_[Component_]Value denoted by
        --  the aspect specification node ASN.
  
!       procedure Check_Aspect_Too_Late (N : Node_Id);
!       --  This procedure is similar to Rep_Item_Too_Late for representation
!       --  aspects that apply to type and that do not have a corresponding
!       --  pragma.
!       --  Used to check in particular that the expression associated with
!       --  aspect node N for the given type (entity) of the aspect does not
!       --  appear too late according to the rules in RM 13.1(9) and 13.1(10).
  
        procedure Make_Pragma_From_Boolean_Aspect (ASN : Node_Id);
        --  Given an aspect specification node ASN whose expression is an
--- 981,998 ----
     -- Analyze_Aspects_At_Freeze_Point --
     -------------------------------------
  
!    procedure Analyze_Aspects_At_Freeze_Point
!      (E                   : Entity_Id;
!       Nonoverridable_Only : Boolean := False)
!    is
        procedure Analyze_Aspect_Default_Value (ASN : Node_Id);
        --  This routine analyzes an Aspect_Default_[Component_]Value denoted by
        --  the aspect specification node ASN.
  
!       procedure Check_Indexing_Functions (ASN : Node_Id);
!       --  Check that the function in a Constant_Indexing or Variable_Indexing
!       --  aspect has the proper profile. If the name is overloaded, check that
!       --  some interpretation is legal.
  
        procedure Make_Pragma_From_Boolean_Aspect (ASN : Node_Id);
        --  Given an aspect specification node ASN whose expression is an
*************** package body Sem_Ch13 is
*** 979,1075 ****
           Check_Aspect_Too_Late (ASN);
        end Analyze_Aspect_Default_Value;
  
!       ---------------------------
!       -- Check_Aspect_Too_Late --
!       ---------------------------
  
!       procedure Check_Aspect_Too_Late (N : Node_Id) is
!          Typ  : constant Entity_Id := Entity (N);
!          Expr : constant Node_Id   := Expression (N);
  
!          function Find_Type_Reference
!            (Typ : Entity_Id; Expr : Node_Id) return Boolean;
!          --  Return True if a reference to type Typ is found in the expression
!          --  Expr.
  
!          -------------------------
!          -- Find_Type_Reference --
!          -------------------------
  
!          function Find_Type_Reference
!            (Typ : Entity_Id; Expr : Node_Id) return Boolean
!          is
!             function Find_Type (N : Node_Id) return Traverse_Result;
!             --  Set Found to True if N refers to Typ
  
!             ---------------
!             -- Find_Type --
!             ---------------
  
-             function Find_Type (N : Node_Id) return Traverse_Result is
-             begin
-                if N = Typ
-                  or else (Nkind (N) in N_Identifier | N_Expanded_Name
-                            and then Present (Entity (N))
-                            and then Entity (N) = Typ)
-                then
-                   return Abandon;
                 else
!                   return OK;
                 end if;
-             end Find_Type;
  
!             function Search_Type_Reference is new Traverse_Func (Find_Type);
  
!          begin
!             return Search_Type_Reference (Expr) = Abandon;
!          end Find_Type_Reference;
  
!          Parent_Type : Entity_Id;
  
        begin
!          --  Ensure Expr is analyzed so that e.g. all types are properly
!          --  resolved for Find_Type_Reference.
  
!          Analyze (Expr);
  
!          --  A self-referential aspect is illegal if it forces freezing the
!          --  entity before the corresponding aspect has been analyzed.
  
!          if Find_Type_Reference (Typ, Expr) then
              Error_Msg_NE
!               ("aspect specification causes premature freezing of&", N, Typ);
           end if;
  
!          --  For representation aspects, check for case of untagged derived
!          --  type whose parent either has primitive operations (pre Ada 2022),
!          --  or is a by-reference type (RM 13.1(10)).
!          --  Strictly speaking the check also applies to Ada 2012 but it is
!          --  really too constraining for existing code already, so relax it.
!          --  ??? Confirming aspects should be allowed here.
  
!          if Is_Representation_Aspect (Get_Aspect_Id (N))
!            and then Is_Derived_Type (Typ)
!            and then not Is_Tagged_Type (Typ)
           then
!             Parent_Type := Etype (Base_Type (Typ));
  
!             if Ada_Version <= Ada_2012
!               and then Has_Primitive_Operations (Parent_Type)
!             then
!                Error_Msg_N
!                  ("|representation aspect not permitted before Ada 2022: " &
!                   "use -gnat2022!", N);
!                Error_Msg_NE
!                  ("\parent type & has primitive operations!", N, Parent_Type);
  
!             elsif Is_By_Reference_Type (Parent_Type) then
!                No_Type_Rep_Item (N);
!                Error_Msg_NE
!                  ("\parent type & is a by-reference type!", N, Parent_Type);
!             end if;
           end if;
!       end Check_Aspect_Too_Late;
  
        -------------------------------------
        -- Make_Pragma_From_Boolean_Aspect --
--- 1019,1201 ----
           Check_Aspect_Too_Late (ASN);
        end Analyze_Aspect_Default_Value;
  
!       ------------------------------
!       -- Check_Indexing_Functions --
!       ------------------------------
  
!       procedure Check_Indexing_Functions (ASN : Node_Id) is
!          Aspect : constant Aspect_Id := Get_Aspect_Id (ASN);
!          Expr   : constant Node_Id   := Expression (ASN);
  
!          Indexing_Found : Boolean := False;
  
!          procedure Check_Inherited_Indexing;
!          --  For a derived type, check that the specification of an indexing
!          --  aspect can only be confirming (i.e., that it uses the same name
!          --  as the parent type's aspect).
!          --
!          --  AI12-0160: The uses of Constant_Indexing and Variable_Indexing
!          --  aspects have to be the same for all descendants of an indexable
!          --  container type.
  
!          ------------------------------
!          -- Check_Inherited_Indexing --
!          ------------------------------
  
!          procedure Check_Inherited_Indexing is
!             Inherited      : Node_Id;
!             Other_Indexing : Node_Id;
! 
!          begin
!             if Aspect = Aspect_Constant_Indexing then
!                Inherited :=
!                  Find_Aspect (Etype (E), Aspect_Constant_Indexing);
!                Other_Indexing :=
!                  Find_Aspect (Etype (E), Aspect_Variable_Indexing);
! 
!             else pragma Assert (Aspect = Aspect_Variable_Indexing);
!                Inherited :=
!                   Find_Aspect (Etype (E), Aspect_Variable_Indexing);
!                Other_Indexing :=
!                  Find_Aspect (Etype (E), Aspect_Constant_Indexing);
!             end if;
! 
!             if Present (Inherited) then
! 
!                --  Check if this is a confirming specification. The name
!                --  may be overloaded between the parent operation and the
!                --  inherited one, so we check that the Chars fields match.
! 
!                if Same_Name (Expression (Inherited), Expression (ASN)) then
!                   Indexing_Found := True;
! 
!                --  Indicate the operation that must be overridden, rather than
!                --  redefining the indexing aspect.
  
                 else
!                   Error_Msg_NE
!                     ("overriding of inherited indexing aspect" &
!                        " must be confirming", ASN, E);
!                   Error_Msg_NE
!                     ("\\override & instead",
!                      ASN, Entity (Expression (Inherited)));
                 end if;
  
!             --  If not inherited and the parent has another indexing function
!             --  this is illegal, because it leads to inconsistent results in
!             --  class-wide calls.
  
!             elsif Present (Other_Indexing) then
!                Error_Msg_N
!                  ("cannot specify one indexing aspect for derived type"
!                    & " if the other indexing aspect is specified for the"
!                    & " parent and this aspect is not", ASN);
!             end if;
!          end Check_Inherited_Indexing;
  
!       --  Start of processing for Check_Indexing_Functions
  
        begin
!          --  If the aspect specification was effectively inherited from the
!          --  parent type (so constructed anew by analysis), then no point
!          --  in validating.
  
!          if not Comes_From_Source (ASN) then
!             return;
!          end if;
  
!          if not Is_Overloaded (Expr) then
!             Check_Function_For_Indexing_Aspect
!               (ASN, E, Entity (Expr), Valid => Indexing_Found);
  
!          else
!             declare
!                I     : Interp_Index;
!                It    : Interp;
!                Valid : Boolean;
! 
!             begin
!                Get_First_Interp (Expr, I, It);
!                while Present (It.Nam) loop
! 
!                   --  Check that each interpretation is a function valid for
!                   --  use as an indexing function. (Note that the rules for
!                   --  indexing aspects are to be treated as legality rules,
!                   --  as per AI22-0084. If this is ever changed to treat these
!                   --  as resolution rules, then we'll have to keep track of
!                   --  whether there are further interpretations to be tested,
!                   --  and condition the error reporting within Illegal_Indexing
!                   --  on that.)
! 
!                   if Is_Overloadable (It.Nam) then
!                      Check_Function_For_Indexing_Aspect
!                        (ASN, E, It.Nam, Valid);
!                      Indexing_Found := Indexing_Found or Valid;
!                   end if;
! 
!                   Get_Next_Interp (I, It);
!                end loop;
!             end;
!          end if;
! 
!          if not Indexing_Found and then not Error_Posted (ASN) then
              Error_Msg_NE
!               ("indexing aspect requires a local function that applies to "
!                & "type&", Expr, E);
           end if;
  
!          --  ??? Is Is_Derived_Type the right test here? A derived type's
!          --  ancestor might or might not have the aspect specified, and
!          --  the derived type itself might or might not have an explicit
!          --  aspect specification (as opposed to an aspect specification
!          --  implicitly introduced by the compiler). So lots of cases to
!          --  consider.
  
!          if Is_Derived_Type (E)
!            --  See comment re this debug flag in exp_ch5.adb
!            and then not Debug_Flag_Dot_XX
           then
!             Check_Inherited_Indexing;
!          end if;
  
!          --  If partial declaration exists, verify that it is not tagged.
  
!          if Ekind (Current_Scope) = E_Package
!            and then Has_Private_Declaration (E)
!            and then
!              List_Containing (Parent (E)) =
!                Private_Declarations
!                  (Specification (Unit_Declaration_Node (Current_Scope)))
!          then
!             declare
!                Decl : Node_Id;
! 
!             begin
!                Decl :=
!                  First (Visible_Declarations
!                           (Specification
!                              (Unit_Declaration_Node (Current_Scope))));
! 
!                while Present (Decl) loop
!                   if Nkind (Decl) = N_Private_Type_Declaration
!                     and then E = Full_View (Defining_Identifier (Decl))
!                     and then Tagged_Present (Decl)
!                     and then No (Aspect_Specifications (Decl))
!                     --  Don't complain about compiler-generated
!                     --  confirming specifications for inherited aspects.
!                     and then Comes_From_Source (ASN)
!                   then
!                      Error_Msg_NE
!                        ("indexing aspect cannot be specified on full view "
!                         & "if partial view is tagged", ASN, E);
!                      return;
!                   end if;
! 
!                   Next (Decl);
!                end loop;
!             end;
           end if;
!       end Check_Indexing_Functions;
  
        -------------------------------------
        -- Make_Pragma_From_Boolean_Aspect --
*************** package body Sem_Ch13 is
*** 1209,1217 ****
        --  package it may be frozen from an object declaration in the enclosing
        --  scope, so install the package declarations to complete the analysis
        --  of the aspects, if any. If the package itself is frozen the type will
!       --  have been frozen as well.
  
!       if not Scope_Within_Or_Same (Current_Scope, Scope (E)) then
           if Is_Type (E) and then From_Nested_Package (E) then
              declare
                 Pack : constant Entity_Id := Scope (E);
--- 1335,1348 ----
        --  package it may be frozen from an object declaration in the enclosing
        --  scope, so install the package declarations to complete the analysis
        --  of the aspects, if any. If the package itself is frozen the type will
!       --  have been frozen as well. We don't do this in the case where formal
!       --  Nonoverridable_Only is True, because that formal is only passed True
!       --  at the ends of certain declaration lists (like visible-part lists),
!       --  not when this procedure is called at arbitrary freeze points.
  
!       if not Nonoverridable_Only
!         and then not Scope_Within_Or_Same (Current_Scope, Scope (E))
!       then
           if Is_Type (E) and then From_Nested_Package (E) then
              declare
                 Pack : constant Entity_Id := Scope (E);
*************** package body Sem_Ch13 is
*** 1250,1255 ****
--- 1381,1396 ----
              if Is_Delayed_Aspect (ASN) then
                 A_Id := Get_Aspect_Id (ASN);
  
+                --  When Nonoverridable_Only is True (such as at the end of
+                --  a visible part), we only want to process aspects that are
+                --  nonoverridable, and skip others.
+ 
+                if Nonoverridable_Only
+                  and then A_Id not in Nonoverridable_Aspect_Id
+                then
+                   goto Skip_Aspect;
+                end if;
+ 
                 case A_Id is
  
                    --  For aspects whose expression is an optional Boolean, make
*************** package body Sem_Ch13 is
*** 1318,1325 ****
  
                       if Etype (Expression (ASN)) = Any_Type then
                          Error_Msg_NE
!                           ("\aspect must be fully defined before & is frozen",
                             ASN, E);
                       end if;
  
                    when Aspect_Integer_Literal
--- 1459,1471 ----
  
                       if Etype (Expression (ASN)) = Any_Type then
                          Error_Msg_NE
!                           ("aspect must be fully defined before & is frozen",
                             ASN, E);
+ 
+                      elsif A_Id in Aspect_Constant_Indexing
+                                  | Aspect_Variable_Indexing
+                      then
+                         Check_Indexing_Functions (ASN);
                       end if;
  
                    when Aspect_Integer_Literal
*************** package body Sem_Ch13 is
*** 1358,1364 ****
                       Validate_Storage_Model_Type_Aspect (E, ASN);
  
                    when Aspect_Aggregate =>
!                      null;
  
                    when others =>
                       null;
--- 1504,1535 ----
                       Validate_Storage_Model_Type_Aspect (E, ASN);
  
                    when Aspect_Aggregate =>
!                      if Is_Array_Type (E) then
!                         Error_Msg_N
!                           ("aspect Aggregate may not be applied to array type",
!                            ASN);
!                      end if;
! 
!                      --  Inherited nonoverridable aspect: analysis will
!                      --  verify that it is consistent.
! 
!                      --  If the aspect is not Comes_From_Source, then it's
!                      --  an inherited aspect, in which case the aspect's
!                      --  operations have already been set and there's no need
!                      --  to resolve it.
! 
!                      --  Does this test of Is_Derived_Type make sense here,
!                      --  and is the call to Resolve_Aspect_Aggregate even
!                      --  needed here??? (It's called other places.)
! 
!                      if Is_Derived_Type (E)
!                        and then Comes_From_Source (ASN)
!                      then
!                         Resolve_Aspect_Aggregate (E, Expression (ASN));
!                      end if;
! 
!                   when Aspect_Finalizable =>
!                      Validate_Finalizable_Aspect (E, ASN);
  
                    when others =>
                       null;
*************** package body Sem_Ch13 is
*** 1372,1398 ****
              end if;
           end if;
  
           Next_Rep_Item (ASN);
        end loop;
  
!       --  Make a second pass for a Full_Access_Only entry
  
!       ASN := First_Rep_Item (E);
!       while Present (ASN) loop
!          if Nkind (ASN) = N_Aspect_Specification then
!             exit when Entity (ASN) /= E;
  
!             if Get_Aspect_Id (ASN) = Aspect_Full_Access_Only then
!                Make_Pragma_From_Boolean_Aspect (ASN);
!                Ritem := Aspect_Rep_Item (ASN);
!                if Present (Ritem) then
!                   Analyze (Ritem);
                 end if;
              end if;
-          end if;
  
!          Next_Rep_Item (ASN);
!       end loop;
  
        if In_Instance
          and then E /= Base_Type (E)
--- 1543,1576 ----
              end if;
           end if;
  
+       <<Skip_Aspect>>
           Next_Rep_Item (ASN);
        end loop;
  
!       if not Nonoverridable_Only then
!          --  Make a second pass for a Full_Access_Only entry, see above why
  
!          ASN := First_Rep_Item (E);
!          while Present (ASN) loop
!             if Nkind (ASN) = N_Aspect_Specification then
!                exit when Entity (ASN) /= E;
  
!                if Get_Aspect_Id (ASN) = Aspect_Full_Access_Only then
!                   Make_Pragma_From_Boolean_Aspect (ASN);
!                   Ritem := Aspect_Rep_Item (ASN);
!                   if Present (Ritem) then
!                      Analyze (Ritem);
!                   end if;
                 end if;
              end if;
  
!             Next_Rep_Item (ASN);
!          end loop;
!       end if;
! 
!       --  Would be nice to have a comment explaining what this is about. ???
!       --  Also, it's not clear whether this should be done in the case where
!       --  Nonoverridable_Only is True.
  
        if In_Instance
          and then E /= Base_Type (E)
*************** package body Sem_Ch13 is
*** 1430,1441 ****
        --    Effective_Reads
        --    Effective_Writes
        --    Exceptional_Cases
        --    Extensions_Visible
        --    Ghost
        --    Global
        --    Initial_Condition
        --    Initializes
-       --    Max_Entry_Queue_Depth
        --    Max_Entry_Queue_Length
        --    Max_Queue_Length
        --    No_Caching
--- 1608,1619 ----
        --    Effective_Reads
        --    Effective_Writes
        --    Exceptional_Cases
+       --    Exit_Cases
        --    Extensions_Visible
        --    Ghost
        --    Global
        --    Initial_Condition
        --    Initializes
        --    Max_Entry_Queue_Length
        --    Max_Queue_Length
        --    No_Caching
*************** package body Sem_Ch13 is
*** 1669,1675 ****
        --  Local variables
  
        Aspect : Node_Id;
-       Aitem  : Node_Id := Empty;
        Ent    : Node_Id;
  
        L : constant List_Id := Aspect_Specifications (N);
--- 1847,1852 ----
*************** package body Sem_Ch13 is
*** 1695,1701 ****
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exceptional_Cases and
        --  Subprogram_Variant aspects. In these cases, we do not have to worry
        --  about delay issues, since the pragmas themselves deal with delay of
        --  visibility for the expression analysis. Thus, we just insert the
--- 1872,1878 ----
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exit_Cases, Exceptional_Cases and
        --  Subprogram_Variant aspects. In these cases, we do not have to worry
        --  about delay issues, since the pragmas themselves deal with delay of
        --  visibility for the expression analysis. Thus, we just insert the
*************** package body Sem_Ch13 is
*** 1722,1728 ****
--- 1899,1910 ----
              Loc  : constant Source_Ptr := Sloc (Aspect);
              Nam  : constant Name_Id    := Chars (Id);
              A_Id : constant Aspect_Id  := Get_Aspect_Id (Nam);
+ 
+             Aitem : Node_Id := Empty;
+             --  The associated N_Pragma or N_Attribute_Definition_Clause
+ 
              Anod : Node_Id;
+             --  An auxiliary node
  
              Delay_Required : Boolean;
              --  Set False if delay is not required
*************** package body Sem_Ch13 is
*** 1776,1787 ****
                 Pragma_Name                  : Name_Id) return Node_Id;
              --  This is a wrapper for Make_Pragma used for converting aspects
              --  to pragmas. It takes care of Sloc (set from Loc) and building
!             --  the pragma identifier from the given name. In addition the
!             --  flags Class_Present and Split_PPC are set from the aspect
!             --  node, as well as Is_Ignored. This routine also sets the
!             --  From_Aspect_Specification in the resulting pragma node to
!             --  True, and sets Corresponding_Aspect to point to the aspect.
!             --  The resulting pragma is assigned to Aitem.
  
              -------------------------------
              -- Analyze_Aspect_Convention --
--- 1958,1969 ----
                 Pragma_Name                  : Name_Id) return Node_Id;
              --  This is a wrapper for Make_Pragma used for converting aspects
              --  to pragmas. It takes care of Sloc (set from Loc) and building
!             --  the pragma identifier from the given name. In addition the flag
!             --  Class_Present is set from the aspect node, as well as
!             --  Is_Ignored. This routine also sets the
!             --  From_Aspect_Specification in the resulting pragma node to True,
!             --  and sets Corresponding_Aspect to point to the aspect. The
!             --  resulting pragma is assigned to Aitem.
  
              -------------------------------
              -- Analyze_Aspect_Convention --
*************** package body Sem_Ch13 is
*** 1838,1844 ****
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Conv),
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => New_Occurrence_Of (E, Loc))));
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
--- 2020,2026 ----
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Conv),
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => Ent)));
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
*************** package body Sem_Ch13 is
*** 1851,1856 ****
--- 2033,2040 ----
  
              procedure Analyze_Aspect_Disable_Controlled is
              begin
+                Error_Msg_Name_1 := Nam;
+ 
                 --  The aspect applies only to controlled records
  
                 if not (Ekind (E) = E_Record_Type
*************** package body Sem_Ch13 is
*** 1886,1893 ****
                       --  Otherwise the expression is not static
  
                       else
!                         Error_Msg_N
!                           ("expression of aspect % must be static", Aspect);
                       end if;
  
                    --  Otherwise the aspect appears without an expression and
--- 2070,2077 ----
                       --  Otherwise the expression is not static
  
                       else
!                         Flag_Non_Static_Expr
!                           ("expression of aspect % must be static!", Aspect);
                       end if;
  
                    --  Otherwise the aspect appears without an expression and
*************** package body Sem_Ch13 is
*** 1961,1966 ****
--- 2145,2154 ----
                       if Nkind (N) = N_Object_Declaration
                         and then Present (Expression (N))
                       then
+                         Error_Msg_Sloc := Sloc (Defining_Identifier (N));
+                         Error_Msg_N
+                           ("no initialization allowed for declaration of& #",
+                            Defining_Identifier (N));
                          Error_Msg_N
                            ("imported entities cannot be initialized "
                             & "(RM B.1(24))", Expression (N));
*************** package body Sem_Ch13 is
*** 2041,2046 ****
--- 2229,2239 ----
                    Error_Msg_N
                      ("aspect must apply to a type with discriminants", Expr);
  
+                elsif not Is_First_Subtype (E) then
+                   Error_Msg_N
+                     ("aspect not specifiable in a subtype declaration",
+                      Aspect);
+ 
                 elsif not Is_Entity_Name (Expr) then
                    Error_Msg_N
                      ("aspect must name a discriminant of current type", Expr);
*************** package body Sem_Ch13 is
*** 2326,2334 ****
                                        (Expression (Assoc))
                                      then
                                         Error_Msg_Name_1 := Nam;
!                                        Error_Msg_N
                                           ("expression of aspect % " &
!                                           "must be static", Aspect);
                                      end if;
  
                                   else
--- 2519,2527 ----
                                        (Expression (Assoc))
                                      then
                                         Error_Msg_Name_1 := Nam;
!                                        Flag_Non_Static_Expr
                                           ("expression of aspect % " &
!                                           "must be static!", Aspect);
                                      end if;
  
                                   else
*************** package body Sem_Ch13 is
*** 2417,2423 ****
  
              begin
                 if Ada_Version < Ada_2022 then
!                   Error_Msg_Ada_2022_Feature ("aspect %", Sloc (Aspect));
                    return;
                 end if;
  
--- 2610,2616 ----
  
              begin
                 if Ada_Version < Ada_2022 then
!                   Error_Msg_Ada_2022_Feature ("aspect %", Loc);
                    return;
                 end if;
  
*************** package body Sem_Ch13 is
*** 2442,2448 ****
  
                    elsif Is_Imported_Intrinsic then
                       Error_Msg_GNAT_Extension
!                        ("aspect % on intrinsic function", Sloc (Aspect),
                          Is_Core_Extension => True);
  
                    else
--- 2635,2641 ----
  
                    elsif Is_Imported_Intrinsic then
                       Error_Msg_GNAT_Extension
!                        ("aspect % on intrinsic function", Loc,
                          Is_Core_Extension => True);
  
                    else
*************** package body Sem_Ch13 is
*** 2545,2552 ****
                       --  Error if the boolean expression is not static
  
                       if not Is_OK_Static_Expression (Expr) then
!                         Error_Msg_N
!                           ("expression of aspect % must be static", Aspect);
                       end if;
                    end if;
                 end if;
--- 2738,2745 ----
                       --  Error if the boolean expression is not static
  
                       if not Is_OK_Static_Expression (Expr) then
!                         Flag_Non_Static_Expr
!                           ("expression of aspect % must be static!", Aspect);
                       end if;
                    end if;
                 end if;
*************** package body Sem_Ch13 is
*** 2601,2608 ****
                          Expr_Value := True;
                       end if;
                    else
!                      Error_Msg_N
!                        ("expression of aspect % must be static", Aspect);
                    end if;
                 end if;
  
--- 2794,2801 ----
                          Expr_Value := True;
                       end if;
                    else
!                      Flag_Non_Static_Expr
!                        ("expression of aspect % must be static!", Aspect);
                    end if;
                 end if;
  
*************** package body Sem_Ch13 is
*** 2630,2664 ****
              ----------------------------------------
  
              procedure Check_Expr_Is_OK_Static_Expression
!               (Expr : Node_Id;
!                Typ  : Entity_Id := Empty)
!             is
              begin
!                if Present (Typ) then
!                   Analyze_And_Resolve (Expr, Typ);
!                else
!                   Analyze_And_Resolve (Expr);
!                end if;
! 
!                --  An expression cannot be considered static if its resolution
!                --  failed or if it's erroneous. Stop the analysis of the
!                --  related aspect.
! 
!                if Etype (Expr) = Any_Type or else Error_Posted (Expr) then
!                   raise Aspect_Exit;
! 
!                elsif Is_OK_Static_Expression (Expr) then
!                   return;
  
!                --  Finally, we have a real error
  
!                else
!                   Error_Msg_Name_1 := Nam;
!                   Flag_Non_Static_Expr
!                     ("entity for aspect% must be a static expression",
!                      Expr);
!                   raise Aspect_Exit;
!                end if;
              end Check_Expr_Is_OK_Static_Expression;
  
              ------------------------
--- 2823,2844 ----
              ----------------------------------------
  
              procedure Check_Expr_Is_OK_Static_Expression
!               (Expr : Node_Id; Typ : Entity_Id := Empty) is
              begin
!                case Is_OK_Static_Expression_Of_Type (Expr, Typ) is
!                   when Static =>
!                      null;
  
!                   when Not_Static =>
!                      Error_Msg_Name_1 := Nam;
!                      Flag_Non_Static_Expr
!                        ("entity for aspect% must be a static expression!",
!                         Expr);
!                      raise Aspect_Exit;
  
!                   when Invalid =>
!                      raise Aspect_Exit;
!                end case;
              end Check_Expr_Is_OK_Static_Expression;
  
              ------------------------
*************** package body Sem_Ch13 is
*** 2703,2710 ****
                     Pragma_Argument_Associations => Args,
                     Pragma_Identifier =>
                       Make_Identifier (Sloc (Id), Pragma_Name),
!                    Class_Present     => Class_Present (Aspect),
!                    Split_PPC         => Split_PPC (Aspect));
  
                 --  Set additional semantic fields
  
--- 2883,2889 ----
                     Pragma_Argument_Associations => Args,
                     Pragma_Identifier =>
                       Make_Identifier (Sloc (Id), Pragma_Name),
!                    Class_Present     => Class_Present (Aspect));
  
                 --  Set additional semantic fields
  
*************** package body Sem_Ch13 is
*** 2918,2928 ****
                    --  For non-Boolean aspects, if the expression has the form
                    --  of an integer literal, then do not delay, since we know
                    --  the value cannot change. This optimization catches most
!                   --  rep clause cases.
  
                    elsif A_Id not in Boolean_Aspects
                      and then Present (Expr)
!                     and then Nkind (Expr) = N_Integer_Literal
                    then
                       Delay_Required := False;
  
--- 3097,3108 ----
                    --  For non-Boolean aspects, if the expression has the form
                    --  of an integer literal, then do not delay, since we know
                    --  the value cannot change. This optimization catches most
!                   --  rep clause cases. Likewise for a string literal.
  
                    elsif A_Id not in Boolean_Aspects
                      and then Present (Expr)
!                     and then
!                       Nkind (Expr) in N_Integer_Literal | N_String_Literal
                    then
                       Delay_Required := False;
  
*************** package body Sem_Ch13 is
*** 2950,2968 ****
                    end if;
              end case;
  
-             if Delay_Required
-                and then (A_Id = Aspect_Stable_Properties
-                           or else A_Id = Aspect_Designated_Storage_Model
-                           or else A_Id = Aspect_Storage_Model_Type
-                           or else A_Id = Aspect_Aggregate)
-                --  ??? It seems like we should do this for all aspects, not
-                --  just these, but that causes as-yet-undiagnosed regressions.
- 
-             then
-                Set_Has_Delayed_Aspects (E);
-                Set_Is_Delayed_Aspect (Aspect);
-             end if;
- 
              --  Check 13.1(9.2/5): A representation aspect of a subtype or type
              --  shall not be specified (whether by a representation item or an
              --  aspect_specification) before the type is completely defined
--- 3130,3135 ----
*************** package body Sem_Ch13 is
*** 3066,3071 ****
--- 3233,3247 ----
                       end if;
                    end if;
  
+                   --  Propagate the 'Size'Class aspect to the class-wide type
+ 
+                   if A_Id = Aspect_Size and then Class_Present (Aspect) then
+                      Ent :=
+                        Make_Attribute_Reference (Loc,
+                          Prefix         => Ent,
+                          Attribute_Name => Name_Class);
+                   end if;
+ 
                    --  Construct the attribute_definition_clause. The expression
                    --  in the aspect specification is simply shared with the
                    --  constructed attribute, because it will be fully analyzed
*************** package body Sem_Ch13 is
*** 3100,3106 ****
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => New_Occurrence_Of (E, Loc)),
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Linker_Section);
--- 3276,3282 ----
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => Ent),
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Linker_Section);
*************** package body Sem_Ch13 is
*** 3121,3127 ****
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => New_Occurrence_Of (E, Loc)),
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Implemented);
--- 3297,3303 ----
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => Ent),
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Implemented);
*************** package body Sem_Ch13 is
*** 3195,3200 ****
--- 3371,3392 ----
  
                       Set_Has_Static_Predicate_Aspect (E, False);
  
+                      --  Query the applicable policy since it must rely on the
+                      --  policy applicable in the context of the declaration of
+                      --  entity E; it cannot be done when the built pragma is
+                      --  analyzed because it will be analyzed when E is frozen,
+                      --  and at that point the applicable policy may differ.
+                      --  For example:
+ 
+                      --  pragma Assertion_Policy (Dynamic_Predicate => Check);
+                      --  type T is ... with Dynamic_Predicate => ...
+                      --  pragma Assertion_Policy (Dynamic_Predicate => Ignore);
+                      --  X : T; --  freezes T
+ 
+                      Set_Predicates_Ignored (E,
+                        Policy_In_Effect (Name_Dynamic_Predicate)
+                          = Name_Ignore);
+ 
                    elsif A_Id = Aspect_Static_Predicate then
                       Set_Has_Static_Predicate_Aspect (E);
                    elsif A_Id = Aspect_Ghost_Predicate then
*************** package body Sem_Ch13 is
*** 3292,3297 ****
--- 3484,3492 ----
  
                 --  External_Name, Link_Name
  
+                --  Only the legality checks are done during the analysis, thus
+                --  no delay is required.
+ 
                 when Aspect_External_Name
                    | Aspect_Link_Name
                 =>
*************** package body Sem_Ch13 is
*** 3440,3446 ****
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr)),
                         Make_Pragma_Argument_Association (Sloc (Expr),
!                          Expression => New_Occurrence_Of (E, Loc))),
                       Pragma_Name                  => Nam);
  
                    Delay_Required := False;
--- 3635,3641 ----
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr)),
                         Make_Pragma_Argument_Association (Sloc (Expr),
!                          Expression => Ent)),
                       Pragma_Name                  => Nam);
  
                    Delay_Required := False;
*************** package body Sem_Ch13 is
*** 3453,3459 ****
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr)),
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => New_Occurrence_Of (E, Loc))),
                       Pragma_Name                  => Name_Warnings);
  
                    Decorate (Aspect, Aitem);
--- 3648,3654 ----
                         Make_Pragma_Argument_Association (Sloc (Expr),
                           Expression => Relocate_Node (Expr)),
                         Make_Pragma_Argument_Association (Loc,
!                          Expression => Ent)),
                       Pragma_Name                  => Name_Warnings);
  
                    Decorate (Aspect, Aitem);
*************** package body Sem_Ch13 is
*** 3549,3600 ****
                    goto Continue;
                 end Abstract_State;
  
-                --  Aspect Async_Readers is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related object declaration.
- 
-                when Aspect_Async_Readers =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Async_Readers);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  Aspect Async_Writers is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related object declaration.
- 
-                when Aspect_Async_Writers =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Async_Writers);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  Aspect Constant_After_Elaboration is never delayed because
-                --  it is equivalent to a source pragma which appears after the
-                --  related object declaration.
- 
-                when Aspect_Constant_After_Elaboration =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  =>
-                        Name_Constant_After_Elaboration);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
                 --  Aspect Default_Internal_Condition is never delayed because
                 --  it is equivalent to a source pragma which appears after the
                 --  related private type. To deal with forward references, the
--- 3744,3749 ----
*************** package body Sem_Ch13 is
*** 3655,3721 ****
                    Insert_Pragma (Aitem);
                    goto Continue;
  
-                --  Aspect Effective_Reads is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related object declaration.
- 
-                when Aspect_Effective_Reads =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Effective_Reads);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  Aspect Effective_Writes is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related object declaration.
- 
-                when Aspect_Effective_Writes =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Effective_Writes);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  Aspect Extensions_Visible is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related subprogram.
- 
-                when Aspect_Extensions_Visible =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Extensions_Visible);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  Aspect Ghost is never delayed because it is equivalent to a
-                --  source pragma which appears at the top of [generic] package
-                --  declarations or after an object, a [generic] subprogram, or
-                --  a type declaration.
- 
-                when Aspect_Ghost =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Ghost);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
                 --  Global
  
                 --  Aspect Global is never delayed because it is equivalent to
--- 3804,3809 ----
*************** package body Sem_Ch13 is
*** 3832,3850 ****
                    goto Continue;
                 end Initializes;
  
-                --  Max_Entry_Queue_Depth
- 
-                when Aspect_Max_Entry_Queue_Depth =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name => Name_Max_Entry_Queue_Depth);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
                 --  Max_Entry_Queue_Length
  
                 when Aspect_Max_Entry_Queue_Length =>
--- 3920,3925 ----
*************** package body Sem_Ch13 is
*** 3871,3917 ****
                    Insert_Pragma (Aitem);
                    goto Continue;
  
-                --  Aspect No_Caching is never delayed because it is equivalent
-                --  to a source pragma which appears after the related object
-                --  declaration.
- 
-                when Aspect_No_Caching =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_No_Caching);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
-                --  No_Controlled_Parts, No_Task_Parts
- 
-                when Aspect_No_Controlled_Parts | Aspect_No_Task_Parts =>
- 
-                   --  Check appropriate type argument
- 
-                   if not Is_Type (E) then
-                      Error_Msg_N
-                        ("aspect % can only be applied to types", E);
-                   end if;
- 
-                   --  Disallow subtypes
- 
-                   if Nkind (Declaration_Node (E)) = N_Subtype_Declaration then
-                      Error_Msg_N
-                        ("aspect % cannot be applied to subtypes", E);
-                   end if;
- 
-                   --  Resolve the expression to a boolean
- 
-                   if Present (Expr) then
-                      Check_Expr_Is_OK_Static_Expression (Expr, Any_Boolean);
-                   end if;
- 
-                   goto Continue;
- 
                 --  Obsolescent
  
                 when Aspect_Obsolescent => declare
--- 3946,3951 ----
*************** package body Sem_Ch13 is
*** 3956,3976 ****
  
                    goto Continue;
  
-                --  Aspect Side_Effects is never delayed because it is
-                --  equivalent to a source pragma which appears after
-                --  the related subprogram.
- 
-                when Aspect_Side_Effects =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Side_Effects);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
                 --  SPARK_Mode
  
                 when Aspect_SPARK_Mode =>
--- 3990,3995 ----
*************** package body Sem_Ch13 is
*** 4136,4158 ****
                    Analyze_User_Aspect_Aspect_Specification (Aspect);
                    goto Continue;
  
-                --  Volatile_Function
- 
-                --  Aspect Volatile_Function is never delayed because it is
-                --  equivalent to a source pragma which appears after the
-                --  related subprogram.
- 
-                when Aspect_Volatile_Function =>
-                   Aitem := Make_Aitem_Pragma
-                     (Pragma_Argument_Associations => New_List (
-                        Make_Pragma_Argument_Association (Loc,
-                          Expression => Relocate_Node (Expr))),
-                      Pragma_Name                  => Name_Volatile_Function);
- 
-                   Decorate (Aspect, Aitem);
-                   Insert_Pragma (Aitem);
-                   goto Continue;
- 
                 --  Case 2e: Annotate aspect
  
                 when Aspect_Annotate | Aspect_GNAT_Annotate =>
--- 4155,4160 ----
*************** package body Sem_Ch13 is
*** 4246,4257 ****
                       Error_Msg_N ("aspect% cannot apply to subtype", Id);
                       goto Continue;
  
!                   elsif A_Id = Aspect_Default_Value
!                     and then not Is_Scalar_Type (E)
!                   then
!                      Error_Msg_N
!                        ("aspect% can only be applied to scalar type", Id);
!                      goto Continue;
  
                    elsif A_Id = Aspect_Default_Component_Value then
                       if not Is_Array_Type (E) then
--- 4248,4259 ----
                       Error_Msg_N ("aspect% cannot apply to subtype", Id);
                       goto Continue;
  
!                   elsif A_Id = Aspect_Default_Value then
!                      if not Is_Scalar_Type (E) then
!                         Error_Msg_N
!                           ("aspect% can only be applied to scalar type", Id);
!                         goto Continue;
!                      end if;
  
                    elsif A_Id = Aspect_Default_Component_Value then
                       if not Is_Array_Type (E) then
*************** package body Sem_Ch13 is
*** 4265,4294 ****
                       end if;
                    end if;
  
-                   Aitem := Empty;
- 
                 when Aspect_Aggregate =>
!                   --  We will be checking that the aspect is not specified on a
!                   --  non-array type in Check_Aspect_At_Freeze_Point
  
                    Validate_Aspect_Aggregate (Expr);
-                   Record_Rep_Item (E, Aspect);
-                   goto Continue;
- 
-                when Aspect_Local_Restrictions =>
-                   Validate_Aspect_Local_Restrictions (E, Expr);
-                   Record_Rep_Item (E, Aspect);
-                   goto Continue;
  
                 when Aspect_Stable_Properties =>
                    Validate_Aspect_Stable_Properties
                      (E, Expr, Class_Present => Class_Present (Aspect));
-                   Record_Rep_Item (E, Aspect);
-                   goto Continue;
  
                 when Aspect_Designated_Storage_Model =>
                    if not All_Extensions_Allowed then
!                      Error_Msg_GNAT_Extension ("aspect %", Sloc (Aspect));
  
                    elsif not Is_Type (E)
                      or else Ekind (E) /= E_Access_Type
--- 4267,4286 ----
                       end if;
                    end if;
  
                 when Aspect_Aggregate =>
!                   --  We will be checking that the aspect is not specified on
!                   --  an array type in Analyze_Aspects_At_Freeze_Point.
  
                    Validate_Aspect_Aggregate (Expr);
  
                 when Aspect_Stable_Properties =>
                    Validate_Aspect_Stable_Properties
                      (E, Expr, Class_Present => Class_Present (Aspect));
  
                 when Aspect_Designated_Storage_Model =>
                    if not All_Extensions_Allowed then
!                      Error_Msg_GNAT_Extension ("aspect %", Loc);
!                      goto Continue;
  
                    elsif not Is_Type (E)
                      or else Ekind (E) /= E_Access_Type
*************** package body Sem_Ch13 is
*** 4296,4309 ****
                       Error_Msg_N
                         ("can only be specified for pool-specific access type",
                          Aspect);
                    end if;
  
-                   Record_Rep_Item (E, Aspect);
-                   goto Continue;
- 
                 when Aspect_Storage_Model_Type =>
                    if not All_Extensions_Allowed then
!                      Error_Msg_GNAT_Extension ("aspect %", Sloc (Aspect));
  
                    elsif not Is_Type (E)
                      or else not Is_Immutably_Limited_Type (E)
--- 4288,4301 ----
                       Error_Msg_N
                         ("can only be specified for pool-specific access type",
                          Aspect);
+                      goto Continue;
                    end if;
  
                 when Aspect_Storage_Model_Type =>
                    if not All_Extensions_Allowed then
!                      Error_Msg_Name_1 := Nam;
!                      Error_Msg_GNAT_Extension ("aspect %", Loc);
!                      goto Continue;
  
                    elsif not Is_Type (E)
                      or else not Is_Immutably_Limited_Type (E)
*************** package body Sem_Ch13 is
*** 4311,4320 ****
                       Error_Msg_N
                         ("can only be specified for immutably limited type",
                          Aspect);
                    end if;
  
!                   Record_Rep_Item (E, Aspect);
!                   goto Continue;
  
                 when Aspect_Integer_Literal
                    | Aspect_Real_Literal
--- 4303,4322 ----
                       Error_Msg_N
                         ("can only be specified for immutably limited type",
                          Aspect);
+                      goto Continue;
                    end if;
  
!                when Aspect_Finalizable =>
!                   if not Core_Extensions_Allowed then
!                      Error_Msg_Name_1 := Nam;
!                      Error_Msg_GNAT_Extension
!                        ("aspect %", Loc, Is_Core_Extension => True);
!                      goto Continue;
! 
!                   elsif not Is_Type (E) then
!                      Error_Msg_N ("can only be specified for a type", Aspect);
!                      goto Continue;
!                   end if;
  
                 when Aspect_Integer_Literal
                    | Aspect_Real_Literal
*************** package body Sem_Ch13 is
*** 4332,4347 ****
                         (No_Implementation_Aspect_Specifications, N);
                    end if;
  
-                   Aitem := Empty;
- 
                 --  Case 3b: The aspects listed below don't correspond to
                 --  pragmas/attributes and don't need delayed analysis.
  
                 --  Implicit_Dereference
  
!                --  For Implicit_Dereference, External_Name and Link_Name, only
!                --  the legality checks are done during the analysis, thus no
!                --  delay is required.
  
                 when Aspect_Implicit_Dereference =>
                    Analyze_Aspect_Implicit_Dereference;
--- 4334,4346 ----
                         (No_Implementation_Aspect_Specifications, N);
                    end if;
  
                 --  Case 3b: The aspects listed below don't correspond to
                 --  pragmas/attributes and don't need delayed analysis.
  
                 --  Implicit_Dereference
  
!                --  Only the legality checks are done during the analysis, thus
!                --  no delay is required.
  
                 when Aspect_Implicit_Dereference =>
                    Analyze_Aspect_Implicit_Dereference;
*************** package body Sem_Ch13 is
*** 4359,4369 ****
                    Analyze_Aspect_Dimension_System (N, Id, Expr);
                    goto Continue;
  
                 --  Case 4: Aspects requiring special handling
  
                 --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases and Subprogram_Variant whose corresponding
!                --  pragmas take care of the delay.
  
                 --  Pre/Post
  
--- 4358,4373 ----
                    Analyze_Aspect_Dimension_System (N, Id, Expr);
                    goto Continue;
  
+                when Aspect_Local_Restrictions =>
+                   Validate_Aspect_Local_Restrictions (E, Expr);
+                   Record_Rep_Item (E, Aspect);
+                   goto Continue;
+ 
                 --  Case 4: Aspects requiring special handling
  
                 --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases/Exit_Cases and Subprogram_Variant whose
!                --  corresponding pragmas take care of the delay.
  
                 --  Pre/Post
  
*************** package body Sem_Ch13 is
*** 4436,4479 ****
                       end if;
                    end if;
  
-                   --  If the expressions is of the form A and then B, then
-                   --  we generate separate Pre/Post aspects for the separate
-                   --  clauses. Since we allow multiple pragmas, there is no
-                   --  problem in allowing multiple Pre/Post aspects internally.
-                   --  These should be treated in reverse order (B first and
-                   --  A second) since they are later inserted just after N in
-                   --  the order they are treated. This way, the pragma for A
-                   --  ends up preceding the pragma for B, which may have an
-                   --  importance for the error raised (either constraint error
-                   --  or precondition error).
- 
-                   --  We do not do this for Pre'Class, since we have to put
-                   --  these conditions together in a complex OR expression.
- 
-                   --  We don't do this in GNATprove mode, because it brings no
-                   --  benefit for proof and causes annoyance for flow analysis,
-                   --  which prefers to be as close to the original source code
-                   --  as possible. Also we don't do this when analyzing generic
-                   --  units since it causes spurious visibility errors in the
-                   --  preanalysis of instantiations.
- 
-                   if not GNATprove_Mode
-                     and then (Pname = Name_Postcondition
-                                or else not Class_Present (Aspect))
-                     and then not Inside_A_Generic
-                   then
-                      while Nkind (Expr) = N_And_Then loop
-                         Insert_After (Aspect,
-                           Make_Aspect_Specification (Sloc (Left_Opnd (Expr)),
-                             Identifier    => Identifier (Aspect),
-                             Expression    => Relocate_Node (Left_Opnd (Expr)),
-                             Class_Present => Class_Present (Aspect),
-                             Split_PPC     => True));
-                         Rewrite (Expr, Relocate_Node (Right_Opnd (Expr)));
-                         Eloc := Sloc (Expr);
-                      end loop;
-                   end if;
- 
                    --  Build the precondition/postcondition pragma
  
                    Aitem := Make_Aitem_Pragma
--- 4440,4445 ----
*************** package body Sem_Ch13 is
*** 4483,4502 ****
                           Expression => Relocate_Expression (Expr))),
                         Pragma_Name                => Pname);
  
-                   --  Add message unless exception messages are suppressed
- 
-                   if not Opt.Exception_Locations_Suppressed then
-                      Append_To (Pragma_Argument_Associations (Aitem),
-                        Make_Pragma_Argument_Association (Eloc,
-                          Chars      => Name_Message,
-                          Expression =>
-                            Make_String_Literal (Eloc,
-                              Strval => "failed "
-                                        & Get_Name_String (Pname)
-                                        & " from "
-                                        & Build_Location_String (Eloc))));
-                   end if;
- 
                    Set_Is_Delayed_Aspect (Aspect);
  
                    --  For Pre/Post cases, insert immediately after the entity
--- 4449,4454 ----
*************** package body Sem_Ch13 is
*** 4595,4621 ****
                    Insert_Pragma (Aitem);
                    goto Continue;
  
!                --  Always_Terminates
  
!                when Aspect_Always_Terminates =>
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr))),
!                      Pragma_Name                  => Name_Always_Terminates);
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
                    goto Continue;
  
!                --  Exceptional_Cases
  
!                when Aspect_Exceptional_Cases =>
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr))),
!                      Pragma_Name                  => Name_Exceptional_Cases);
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
--- 4547,4573 ----
                    Insert_Pragma (Aitem);
                    goto Continue;
  
!                --  Exceptional_Cases
  
!                when Aspect_Exceptional_Cases =>
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr))),
!                      Pragma_Name                  => Name_Exceptional_Cases);
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
                    goto Continue;
  
!                --  Exit_Cases
  
!                when Aspect_Exit_Cases =>
                    Aitem := Make_Aitem_Pragma
                      (Pragma_Argument_Associations => New_List (
                         Make_Pragma_Argument_Association (Loc,
                           Expression => Relocate_Node (Expr))),
!                      Pragma_Name                  => Name_Exit_Cases);
  
                    Decorate (Aspect, Aitem);
                    Insert_Pragma (Aitem);
*************** package body Sem_Ch13 is
*** 4699,4705 ****
                    --  Ada 2022 (AI12-0363): Full_Access_Only
  
                    elsif A_Id = Aspect_Full_Access_Only then
!                      Error_Msg_Ada_2022_Feature ("aspect %", Sloc (Aspect));
  
                    --  Ada 2022 (AI12-0075): static expression functions
  
--- 4651,4696 ----
                    --  Ada 2022 (AI12-0363): Full_Access_Only
  
                    elsif A_Id = Aspect_Full_Access_Only then
!                      Error_Msg_Ada_2022_Feature ("aspect %", Loc);
! 
!                   --  No_Controlled_Parts, No_Task_Parts
! 
!                   elsif A_Id in Aspect_No_Controlled_Parts
!                               | Aspect_No_Task_Parts
!                   then
!                      Error_Msg_Name_1 := Nam;
! 
!                      --  Disallow formal types
! 
!                      if Nkind (Original_Node (N)) = N_Formal_Type_Declaration
!                      then
!                         Error_Msg_N
!                           ("aspect % not allowed for formal type declaration",
!                            Aspect);
! 
!                      --  Disallow subtypes
! 
!                      elsif Nkind (Original_Node (N)) = N_Subtype_Declaration
!                      then
!                         Error_Msg_N
!                           ("aspect % not allowed for subtype declaration",
!                            Aspect);
! 
!                      --  Accept all other types
! 
!                      elsif not Is_Type (E) then
!                         Error_Msg_N
!                           ("aspect % can only be specified for a type",
!                            Aspect);
!                      end if;
! 
!                      --  Resolve the expression to a boolean
! 
!                      if Present (Expr) then
!                         Check_Expr_Is_OK_Static_Expression (Expr, Any_Boolean);
!                      end if;
! 
!                      goto Continue;
  
                    --  Ada 2022 (AI12-0075): static expression functions
  
*************** package body Sem_Ch13 is
*** 4712,4717 ****
--- 4703,4733 ----
                    elsif A_Id = Aspect_Yield then
                       Analyze_Aspect_Yield;
                       goto Continue;
+ 
+                   --  Handle Boolean aspects equivalent to source pragmas which
+                   --  appears after the related object declaration.
+ 
+                   elsif A_Id in Aspect_Always_Terminates
+                               | Aspect_Async_Readers
+                               | Aspect_Async_Writers
+                               | Aspect_Constant_After_Elaboration
+                               | Aspect_Effective_Reads
+                               | Aspect_Effective_Writes
+                               | Aspect_Extensions_Visible
+                               | Aspect_Ghost
+                               | Aspect_No_Caching
+                               | Aspect_Side_Effects
+                               | Aspect_Volatile_Function
+                   then
+                      Aitem :=
+                        Make_Aitem_Pragma
+                          (Pragma_Argument_Associations => New_List (
+                             Make_Pragma_Argument_Association (Loc,
+                               Expression => Relocate_Node (Expr))),
+                           Pragma_Name                  => Nam);
+                      Decorate (Aspect, Aitem);
+                      Insert_Pragma (Aitem);
+                      goto Continue;
                    end if;
  
                    --  Library unit aspects require special handling in the case
*************** package body Sem_Ch13 is
*** 4750,4755 ****
--- 4766,4828 ----
                             Pragma_Name                  => Nam);
                       end if;
  
+                      --  Minimum check of First_Controlling_Parameter aspect;
+                      --  the checks shared by the aspect and its corresponding
+                      --  pragma are performed when the pragma is analyzed.
+ 
+                      if A_Id = Aspect_First_Controlling_Parameter then
+                         if Present (Expr) then
+                            Analyze (Expr);
+                         end if;
+ 
+                         if (No (Expr) or else Entity (Expr) = Standard_True)
+                           and then not Core_Extensions_Allowed
+                         then
+                            Error_Msg_GNAT_Extension
+                              ("'First_'Controlling_'Parameter", Sloc (Aspect),
+                               Is_Core_Extension => True);
+                            goto Continue;
+                         end if;
+ 
+                         if not (Is_Type (E)
+                                   and then
+                                     (Is_Tagged_Type (E)
+                                        or else Is_Concurrent_Type (E)))
+                         then
+                            Error_Msg_N
+                              ("aspect 'First_'Controlling_'Parameter can only "
+                               & "apply to tagged type or concurrent type",
+                               Aspect);
+                            goto Continue;
+                         end if;
+ 
+                         if Present (Expr)
+                           and then Entity (Expr) = Standard_False
+                         then
+                            --  If the aspect is specified for a derived type,
+                            --  the specified value shall be confirming.
+ 
+                            if Is_Derived_Type (E)
+                              and then Has_First_Controlling_Parameter_Aspect
+                                         (Etype (E))
+                            then
+                               Error_Msg_Name_1 := Nam;
+                               Error_Msg_N
+                                 ("specification of inherited True value for "
+                                    & "aspect% can only confirm parent value",
+                                  Id);
+                            end if;
+ 
+                            goto Continue;
+                         end if;
+ 
+                         --  Given that the aspect has been explicitly given,
+                         --  we take note to avoid checking for its implicit
+                         --  inheritance (see Analyze_Full_Type_Declaration).
+ 
+                         Set_Has_First_Controlling_Parameter_Aspect (E);
+                      end if;
+ 
                    --  In general cases, the corresponding pragma/attribute
                    --  definition clause will be inserted later at the freezing
                    --  point, and we do not need to build it now.
*************** package body Sem_Ch13 is
*** 4813,4818 ****
--- 4886,4905 ----
                           Chars      => Name_Storage_Size,
                           Expression => Relocate_Node (Expr));
                    end if;
+ 
+                when Aspect_External_Initialization =>
+                   Error_Msg_GNAT_Extension
+                     ("External_Initialization aspect", Sloc (Aspect));
+ 
+                   --  The External_Initialization aspect specifications that
+                   --  are attached to object declarations were already
+                   --  processed and detached from the list at an earlier stage,
+                   --  so we can only get here if the specification is not in an
+                   --  appropriate place.
+ 
+                   Error_Msg_N
+                     ("External_Initialization aspect can only be specified " &
+                      "for object declarations", Aspect);
              end case;
  
              --  Attach the corresponding pragma/attribute definition clause to
*************** package body Sem_Ch13 is
*** 4965,4990 ****
                and then Nkind (Type_Definition (N)) = N_Derived_Type_Definition
                and then not In_Instance_Body
              then
                 declare
!                   Parent_Type      : constant Entity_Id := Etype (E);
!                   Inherited_Aspect : constant Node_Id :=
!                     Find_Aspect (Parent_Type, A_Id);
                 begin
!                   if Present (Inherited_Aspect)
!                     and then not Is_Confirming
!                                    (A_Id, Inherited_Aspect, Aspect)
!                   then
!                      Error_Msg_Name_1 := Aspect_Names (A_Id);
!                      Error_Msg_Sloc := Sloc (Inherited_Aspect);
  
!                      Error_Msg_N
!                        ("overriding aspect specification for "
!                           & "nonoverridable aspect % does not confirm "
!                           & "aspect specification inherited from #",
!                         Aspect);
!                   end if;
                 end;
              end if;
           exception
              when Aspect_Exit => null;
           end Analyze_One_Aspect;
--- 5052,5099 ----
                and then Nkind (Type_Definition (N)) = N_Derived_Type_Definition
                and then not In_Instance_Body
              then
+                --  Locate the nearest ancestor type that has an explicit aspect
+                --  corresponding to E's aspect, and flag an error on that if
+                --  E's aspect does not confirm the aspect inherited from the
+                --  ancestor.
+ 
+                --  In order to locate the parent type we must go first to its
+                --  base type because the frontend introduces an implicit base
+                --  type even if there is no constraint attached to it, since
+                --  this is closer to the Ada semantics.
+ 
                 declare
!                   Ancestor_Type   : Entity_Id := Etype (Base_Type (E));
!                   Ancestor_Aspect : Node_Id   := Find_Aspect
!                                                    (Ancestor_Type, A_Id);
                 begin
!                   while Present (Ancestor_Aspect) loop
!                      if Comes_From_Source (Ancestor_Aspect)
!                        and then
!                          not Is_Confirming (A_Id, Ancestor_Aspect, Aspect)
!                      then
!                         Error_Msg_Name_1 := Aspect_Names (A_Id);
!                         Error_Msg_Sloc := Sloc (Ancestor_Aspect);
  
!                         Error_Msg_N
!                           ("overriding aspect specification for "
!                              & "nonoverridable aspect % does not confirm "
!                              & "aspect specification inherited from #",
!                            Aspect);
! 
!                         exit;
!                      end if;
! 
!                      if not Is_Derived_Type (Ancestor_Type) then
!                         exit;
!                      end if;
! 
!                      Ancestor_Type := Etype (Base_Type (Ancestor_Type));
!                      Ancestor_Aspect := Find_Aspect (Ancestor_Type, A_Id);
!                   end loop;
                 end;
              end if;
+ 
           exception
              when Aspect_Exit => null;
           end Analyze_One_Aspect;
*************** package body Sem_Ch13 is
*** 5219,5236 ****
        --  and Value_Size are considered to conflict, but for compatibility,
        --  this is merely a warning.
  
-       procedure Check_Indexing_Functions;
-       --  Check that the function in Constant_Indexing or Variable_Indexing
-       --  attribute has the proper type structure. If the name is overloaded,
-       --  check that some interpretation is legal.
- 
-       procedure Check_Iterator_Functions;
-       --  Check that there is a single function in Default_Iterator attribute
-       --  that has the proper type structure.
- 
-       function Check_Primitive_Function (Subp : Entity_Id) return Boolean;
-       --  Common legality check for the previous two
- 
        -----------------------------------
        -- Analyze_Put_Image_TSS_Definition --
        -----------------------------------
--- 5328,5333 ----
*************** package body Sem_Ch13 is
*** 5593,6120 ****
           end if;
        end Analyze_Stream_TSS_Definition;
  
-       ------------------------------
-       -- Check_Indexing_Functions --
-       ------------------------------
- 
-       procedure Check_Indexing_Functions is
-          Indexing_Found : Boolean := False;
- 
-          procedure Check_Inherited_Indexing;
-          --  For a derived type, check that for a derived type, a specification
-          --  of an indexing aspect can only be confirming, i.e. uses the same
-          --  name as in the parent type.
-          --  AI12-0160: Verify that an indexing cannot be specified for
-          --  a derived type unless it is specified for the parent.
- 
-          procedure Check_One_Function (Subp : Entity_Id);
-          --  Check one possible interpretation. Sets Indexing_Found True if a
-          --  legal indexing function is found.
- 
-          procedure Illegal_Indexing (Msg : String);
-          --  Diagnose illegal indexing function if not overloaded. In the
-          --  overloaded case indicate that no legal interpretation  exists.
- 
-          ------------------------------
-          -- Check_Inherited_Indexing --
-          ------------------------------
- 
-          procedure Check_Inherited_Indexing is
-             Inherited      : Node_Id;
-             Other_Indexing : Node_Id;
- 
-          begin
-             if Attr = Name_Constant_Indexing then
-                Inherited :=
-                  Find_Aspect (Etype (Ent), Aspect_Constant_Indexing);
-                Other_Indexing :=
-                  Find_Aspect (Etype (Ent), Aspect_Variable_Indexing);
- 
-             else pragma Assert (Attr = Name_Variable_Indexing);
-                Inherited :=
-                   Find_Aspect (Etype (Ent), Aspect_Variable_Indexing);
-                Other_Indexing :=
-                  Find_Aspect (Etype (Ent), Aspect_Constant_Indexing);
-             end if;
- 
-             if Present (Inherited) then
-                if Debug_Flag_Dot_XX then
-                   null;
- 
-                --  OK if current attribute_definition_clause is expansion of
-                --  inherited aspect.
- 
-                elsif Aspect_Rep_Item (Inherited) = N then
-                   null;
- 
-                --  Check if this is a confirming specification. The name
-                --  may be overloaded between the parent operation and the
-                --  inherited one, so we check that the Chars fields match.
- 
-                elsif Is_Entity_Name (Expression (Inherited))
-                  and then Chars (Entity (Expression (Inherited))) =
-                     Chars (Entity (Expression (N)))
-                then
-                   Indexing_Found := True;
- 
-                --  Indicate the operation that must be overridden, rather than
-                --  redefining the indexing aspect.
- 
-                else
-                   Illegal_Indexing
-                     ("indexing function already inherited from parent type");
-                   Error_Msg_NE
-                     ("!override & instead",
-                      N, Entity (Expression (Inherited)));
-                end if;
- 
-             --  If not inherited and the parent has another indexing function
-             --  this is illegal, because it leads to inconsistent results in
-             --  class-wide calls.
- 
-             elsif Present (Other_Indexing) then
-                Error_Msg_N
-                  ("cannot specify indexing operation on derived type"
-                    & " if not specified for parent", N);
-             end if;
-          end Check_Inherited_Indexing;
- 
-          ------------------------
-          -- Check_One_Function --
-          ------------------------
- 
-          procedure Check_One_Function (Subp : Entity_Id) is
-             Default_Element : Node_Id;
-             Ret_Type        : constant Entity_Id := Etype (Subp);
- 
-          begin
-             if not Is_Overloadable (Subp) then
-                Illegal_Indexing ("illegal indexing function for type&");
-                return;
- 
-             elsif Scope (Subp) /= Scope (Ent) then
-                if Nkind (Expr) = N_Expanded_Name then
- 
-                   --  Indexing function can't be declared elsewhere
- 
-                   Illegal_Indexing
-                     ("indexing function must be declared"
-                       & " in scope of type&");
-                end if;
- 
-                if Is_Derived_Type (Ent) then
-                   Check_Inherited_Indexing;
-                end if;
- 
-                return;
- 
-             elsif No (First_Formal (Subp)) then
-                Illegal_Indexing
-                  ("Indexing requires a function that applies to type&");
-                return;
- 
-             elsif No (Next_Formal (First_Formal (Subp))) then
-                Illegal_Indexing
-                  ("indexing function must have at least two parameters");
-                return;
- 
-             elsif Is_Derived_Type (Ent) then
-                Check_Inherited_Indexing;
-             end if;
- 
-             if not Check_Primitive_Function (Subp) then
-                Illegal_Indexing
-                  ("Indexing aspect requires a function that applies to type&");
-                return;
-             end if;
- 
-             --  If partial declaration exists, verify that it is not tagged.
- 
-             if Ekind (Current_Scope) = E_Package
-               and then Has_Private_Declaration (Ent)
-               and then From_Aspect_Specification (N)
-               and then
-                 List_Containing (Parent (Ent)) =
-                   Private_Declarations
-                     (Specification (Unit_Declaration_Node (Current_Scope)))
-               and then Nkind (N) = N_Attribute_Definition_Clause
-             then
-                declare
-                   Decl : Node_Id;
- 
-                begin
-                   Decl :=
-                      First (Visible_Declarations
-                               (Specification
-                                  (Unit_Declaration_Node (Current_Scope))));
- 
-                   while Present (Decl) loop
-                      if Nkind (Decl) = N_Private_Type_Declaration
-                        and then Ent = Full_View (Defining_Identifier (Decl))
-                        and then Tagged_Present (Decl)
-                        and then No (Aspect_Specifications (Decl))
-                      then
-                         Illegal_Indexing
-                           ("Indexing aspect cannot be specified on full view "
-                            & "if partial view is tagged");
-                         return;
-                      end if;
- 
-                      Next (Decl);
-                   end loop;
-                end;
-             end if;
- 
-             --  An indexing function must return either the default element of
-             --  the container, or a reference type. For variable indexing it
-             --  must be the latter.
- 
-             Default_Element :=
-               Find_Value_Of_Aspect
-                (Etype (First_Formal (Subp)), Aspect_Iterator_Element);
- 
-             if Present (Default_Element) then
-                Analyze (Default_Element);
-             end if;
- 
-             --  For variable_indexing the return type must be a reference type
- 
-             if Attr = Name_Variable_Indexing then
-                if not Has_Implicit_Dereference (Ret_Type) then
-                   Illegal_Indexing
-                      ("variable indexing must return a reference type");
-                   return;
- 
-                elsif Is_Access_Constant
-                        (Etype (First_Discriminant (Ret_Type)))
-                then
-                   Illegal_Indexing
-                     ("variable indexing must return an access to variable");
-                   return;
-                end if;
- 
-             else
-                if Has_Implicit_Dereference (Ret_Type)
-                  and then not
-                    Is_Access_Constant
-                      (Etype (Get_Reference_Discriminant (Ret_Type)))
-                then
-                   Illegal_Indexing
-                     ("constant indexing must return an access to constant");
-                   return;
- 
-                elsif Is_Access_Type (Etype (First_Formal (Subp)))
-                  and then not Is_Access_Constant (Etype (First_Formal (Subp)))
-                then
-                   Illegal_Indexing
-                     ("constant indexing must apply to an access to constant");
-                   return;
-                end if;
-             end if;
- 
-             --  All checks succeeded
- 
-             Indexing_Found := True;
-          end Check_One_Function;
- 
-          -----------------------
-          --  Illegal_Indexing --
-          -----------------------
- 
-          procedure Illegal_Indexing (Msg : String) is
-          begin
-             Error_Msg_NE (Msg, N, Ent);
-          end Illegal_Indexing;
- 
-       --  Start of processing for Check_Indexing_Functions
- 
-       begin
-          if In_Instance then
-             Check_Inherited_Indexing;
-          end if;
- 
-          Analyze (Expr);
- 
-          if not Is_Overloaded (Expr) then
-             Check_One_Function (Entity (Expr));
- 
-          else
-             declare
-                I  : Interp_Index;
-                It : Interp;
- 
-             begin
-                Indexing_Found := False;
-                Get_First_Interp (Expr, I, It);
-                while Present (It.Nam) loop
- 
-                   --  Note that analysis will have added the interpretation
-                   --  that corresponds to the dereference. We only check the
-                   --  subprogram itself. Ignore homonyms that may come from
-                   --  derived types in the context.
- 
-                   if Is_Overloadable (It.Nam)
-                     and then Comes_From_Source (It.Nam)
-                   then
-                      Check_One_Function (It.Nam);
-                   end if;
- 
-                   Get_Next_Interp (I, It);
-                end loop;
-             end;
-          end if;
- 
-          if not Indexing_Found and then not Error_Posted (N) then
-             Error_Msg_NE
-               ("aspect Indexing requires a local function that applies to "
-                & "type&", Expr, Ent);
-          end if;
-       end Check_Indexing_Functions;
- 
-       ------------------------------
-       -- Check_Iterator_Functions --
-       ------------------------------
- 
-       procedure Check_Iterator_Functions is
-          function Valid_Default_Iterator (Subp     : Entity_Id;
-                                           Ref_Node : Node_Id := Empty)
-                                           return Boolean;
-          --  Check one possible interpretation for validity. If
-          --  Ref_Node is present report errors on violations.
- 
-          ----------------------------
-          -- Valid_Default_Iterator --
-          ----------------------------
- 
-          function Valid_Default_Iterator (Subp     : Entity_Id;
-                                           Ref_Node : Node_Id := Empty)
-                                           return Boolean
-          is
-             Return_Type : constant Entity_Id := Etype (Etype (Subp));
-             Return_Node : Node_Id;
-             Root_T      : constant Entity_Id := Root_Type (Return_Type);
-             Formal      : Entity_Id;
- 
-             function Valid_Iterator_Name (E : Entity_Id) return Boolean
-             is (Chars (E) in Name_Forward_Iterator | Name_Reversible_Iterator);
- 
-             function Valid_Iterator_Name (L : Elist_Id) return Boolean;
- 
-             -------------------------
-             -- Valid_Iterator_Name --
-             -------------------------
- 
-             function Valid_Iterator_Name (L : Elist_Id) return Boolean
-             is
-                Iface_Elmt : Elmt_Id := First_Elmt (L);
-             begin
-                while Present (Iface_Elmt) loop
-                   if Valid_Iterator_Name (Node (Iface_Elmt)) then
-                      return True;
-                   end if;
-                   Next_Elmt (Iface_Elmt);
-                end loop;
- 
-                return False;
-             end Valid_Iterator_Name;
- 
-          begin
-             if Subp = Any_Id then
-                if Present (Ref_Node) then
- 
-                   --  Subp is not resolved and an error will be posted about
-                   --  it later
- 
-                   Error_Msg_N ("improper function for default iterator!",
-                      Ref_Node);
-                end if;
- 
-                return False;
-             end if;
- 
-             if not Check_Primitive_Function (Subp) then
-                if Present (Ref_Node) then
-                   Error_Msg_N ("improper function for default iterator!",
-                      Ref_Node);
-                   Error_Msg_Sloc := Sloc (Subp);
-                   Error_Msg_NE
-                      ("\\default iterator defined # "
-                      & "must be a primitive function",
-                      Ref_Node, Subp);
-                end if;
- 
-                return False;
-             end if;
- 
-             --  The return type must be derived from a type in an instance
-             --  of Iterator.Interfaces, and thus its root type must have a
-             --  predefined name.
- 
-             if not Valid_Iterator_Name (Root_T)
-                and then not (Has_Interfaces (Return_Type) and then
-                   Valid_Iterator_Name (Interfaces (Return_Type)))
-             then
-                if Present (Ref_Node) then
- 
-                   Return_Node := Result_Definition (Parent (Subp));
- 
-                   Error_Msg_N ("improper function for default iterator!",
-                      Ref_Node);
-                   Error_Msg_Sloc := Sloc (Return_Node);
-                   Error_Msg_NE ("\\return type & # "
-                      & "must inherit from either "
-                      & "Forward_Iterator or Reversible_Iterator",
-                      Ref_Node, Return_Node);
-                end if;
- 
-                return False;
-             end if;
- 
-             Formal := First_Formal (Subp);
- 
-             --  False if any subsequent formal has no default expression
- 
-             Next_Formal (Formal);
-             while Present (Formal) loop
-                if No (Expression (Parent (Formal))) then
-                   if Present (Ref_Node) then
-                      Error_Msg_N ("improper function for default iterator!",
-                         Ref_Node);
-                      Error_Msg_Sloc := Sloc (Formal);
-                      Error_Msg_NE ("\\formal parameter & # "
-                         & "must have a default expression",
-                         Ref_Node, Formal);
-                   end if;
- 
-                   return False;
-                end if;
- 
-                Next_Formal (Formal);
-             end loop;
- 
-             --  True if all subsequent formals have default expressions
- 
-             return True;
-          end Valid_Default_Iterator;
- 
-          Ignore : Boolean;
- 
-       --  Start of processing for Check_Iterator_Functions
- 
-       begin
-          Analyze (Expr);
- 
-          if not Is_Entity_Name (Expr) then
-             Error_Msg_N ("aspect Iterator must be a function name", Expr);
-          end if;
- 
-          if not Is_Overloaded (Expr) then
-             if Entity (Expr) /= Any_Id
-               and then not Check_Primitive_Function (Entity (Expr))
-             then
-                Error_Msg_NE
-                  ("aspect Indexing requires a function that applies to type&",
-                   Entity (Expr), Ent);
-             end if;
- 
-             --  Flag the default_iterator as well as the denoted function.
- 
-             Ignore := Valid_Default_Iterator (Entity (Expr), Expr);
- 
-          else
-             declare
-                Default : Entity_Id := Empty;
-                I       : Interp_Index;
-                It      : Interp;
- 
-             begin
-                Get_First_Interp (Expr, I, It);
-                while Present (It.Nam) loop
-                   if not Check_Primitive_Function (It.Nam)
-                     or else not Valid_Default_Iterator (It.Nam)
-                   then
-                      Remove_Interp (I);
- 
-                   elsif Present (Default) then
- 
-                      --  An explicit one should override an implicit one
- 
-                      if Comes_From_Source (Default) =
-                           Comes_From_Source (It.Nam)
-                      then
-                         Error_Msg_N ("default iterator must be unique", Expr);
-                         Error_Msg_Sloc := Sloc (Default);
-                         Error_Msg_N ("\\possible interpretation#", Expr);
-                         Error_Msg_Sloc := Sloc (It.Nam);
-                         Error_Msg_N ("\\possible interpretation#", Expr);
- 
-                      elsif Comes_From_Source (It.Nam) then
-                         Default := It.Nam;
-                      end if;
-                   else
-                      Default := It.Nam;
-                   end if;
- 
-                   Get_Next_Interp (I, It);
-                end loop;
- 
-                if Present (Default) then
-                   Set_Entity (Expr, Default);
-                   Set_Is_Overloaded (Expr, False);
-                else
-                   Error_Msg_N
-                     ("no interpretation is a valid default iterator!", Expr);
-                end if;
-             end;
-          end if;
-       end Check_Iterator_Functions;
- 
-       -------------------------------
-       -- Check_Primitive_Function  --
-       -------------------------------
- 
-       function Check_Primitive_Function (Subp : Entity_Id) return Boolean is
-          Ctrl : Entity_Id;
- 
-       begin
-          if Ekind (Subp) /= E_Function then
-             return False;
-          end if;
- 
-          if No (First_Formal (Subp)) then
-             return False;
-          else
-             Ctrl := Etype (First_Formal (Subp));
-          end if;
- 
-          --  To be a primitive operation subprogram has to be in same scope.
- 
-          if Scope (Ctrl) /= Scope (Subp) then
-             return False;
-          end if;
- 
-          --  Type of formal may be the class-wide type, an access to such,
-          --  or an incomplete view.
- 
-          if Ctrl = Ent
-            or else Ctrl = Class_Wide_Type (Ent)
-            or else
-              (Ekind (Ctrl) = E_Anonymous_Access_Type
-                and then (Designated_Type (Ctrl) = Ent
-                            or else
-                          Designated_Type (Ctrl) = Class_Wide_Type (Ent)))
-            or else
-              (Ekind (Ctrl) = E_Incomplete_Type
-                and then Full_View (Ctrl) = Ent)
-          then
-             null;
-          else
-             return False;
-          end if;
- 
-          return True;
-       end Check_Primitive_Function;
- 
        ----------------------
        -- Duplicate_Clause --
        ----------------------
--- 5690,5695 ----
*************** package body Sem_Ch13 is
*** 6210,6233 ****
           Check_Restriction_No_Specification_Of_Aspect (N);
        end if;
  
-       --  Ignore some selected attributes in CodePeer mode since they are not
-       --  relevant in this context.
- 
-       if CodePeer_Mode then
-          case Id is
- 
-             --  Ignore Component_Size in CodePeer mode, to avoid changing the
-             --  internal representation of types by implicitly packing them.
- 
-             when Attribute_Component_Size =>
-                Rewrite (N, Make_Null_Statement (Sloc (N)));
-                return;
- 
-             when others =>
-                null;
-          end case;
-       end if;
- 
        --  Process Ignore_Rep_Clauses option
  
        if Ignore_Rep_Clauses then
--- 5785,5790 ----
*************** package body Sem_Ch13 is
*** 6768,6773 ****
--- 6325,6345 ----
                      ("alignment for & set to Maximum_Aligment??", Nam);
                    Set_Alignment (U_Ent, Max_Align);
  
+                --  Because Object_Size must be multiple of Alignment (in bits),
+                --  System_Max_Integer_Size limit for discrete and fixed point
+                --  types implies a limit on alignment for such types.
+ 
+                elsif (Is_Discrete_Type (U_Ent)
+                         or else Is_Fixed_Point_Type (U_Ent))
+                  and then Align > System_Max_Integer_Size / System_Storage_Unit
+                then
+                   Error_Msg_N
+                     ("specified alignment too large for discrete or fixed " &
+                      "point type", Expr);
+                   Set_Alignment
+                     (U_Ent, UI_From_Int (System_Max_Integer_Size /
+                                          System_Storage_Unit));
+ 
                 --  All other cases
  
                 else
*************** package body Sem_Ch13 is
*** 6904,6910 ****
           -----------------------
  
           when Attribute_Constant_Indexing =>
!             Check_Indexing_Functions;
  
           ---------
           -- CPU --
--- 6476,6482 ----
           -----------------------
  
           when Attribute_Constant_Indexing =>
!             null;
  
           ---------
           -- CPU --
*************** package body Sem_Ch13 is
*** 6960,6978 ****
           ----------------------
  
           when Attribute_Default_Iterator => Default_Iterator : declare
-             Func : Entity_Id;
-             Typ  : Entity_Id;
- 
           begin
              --  If target type is untagged, further checks are irrelevant
  
              if not Is_Tagged_Type (U_Ent) then
                 Error_Msg_N
!                  ("aspect Default_Iterator applies to tagged type", Nam);
                 return;
              end if;
  
!             Check_Iterator_Functions;
  
              Analyze (Expr);
  
--- 6532,6562 ----
           ----------------------
  
           when Attribute_Default_Iterator => Default_Iterator : declare
           begin
              --  If target type is untagged, further checks are irrelevant
  
              if not Is_Tagged_Type (U_Ent) then
                 Error_Msg_N
!                  ("aspect Default_Iterator can only apply to a tagged type",
!                   Nam);
                 return;
              end if;
  
!             declare
!                Parent_Aspect : constant Node_Id :=
!                  Find_Aspect (U_Ent, Aspect_Default_Iterator);
!             begin
!                --  If the attribute definition clause comes from an aspect that
!                --  is not Comes_From_Source, then the aspect must be inherited
!                --  from a parent type, in which case the operation has already
!                --  been set properly, and there's no need to do the check.
! 
!                if No (Parent_Aspect)
!                  or else Comes_From_Source (Parent_Aspect)
!                then
!                   Check_Iterator_Functions (Typ => U_Ent, Expr => Expr);
!                end if;
!             end;
  
              Analyze (Expr);
  
*************** package body Sem_Ch13 is
*** 6981,7013 ****
              then
                 Error_Msg_N ("aspect Iterator must be a function", Expr);
                 return;
-             else
-                Func := Entity (Expr);
-             end if;
- 
-             --  The type of the first parameter must be T, T'class, or a
-             --  corresponding access type (5.5.1 (8/3). If function is
-             --  parameterless label type accordingly.
- 
-             if No (First_Formal (Func)) then
-                Typ := Any_Type;
-             else
-                Typ := Etype (First_Formal (Func));
-             end if;
- 
-             if Typ = U_Ent
-               or else Typ = Class_Wide_Type (U_Ent)
-               or else (Is_Access_Type (Typ)
-                         and then Designated_Type (Typ) = U_Ent)
-               or else (Is_Access_Type (Typ)
-                         and then Designated_Type (Typ) =
-                                           Class_Wide_Type (U_Ent))
-             then
-                null;
- 
-             else
-                Error_Msg_NE
-                  ("Default_Iterator must be a primitive of&", Func, U_Ent);
              end if;
           end Default_Iterator;
  
--- 6565,6570 ----
*************** package body Sem_Ch13 is
*** 7504,7509 ****
--- 7061,7130 ----
                          & "supported", N);
                    end if;
  
+                   --  Handle extension aspect 'Size'Class which allows for
+                   --  "mutably tagged" types.
+ 
+                   if Ekind (Etyp) = E_Class_Wide_Type then
+                      Error_Msg_GNAT_Extension
+                        ("attribute size class", Sloc (N));
+ 
+                      --  Check for various restrictions applied to mutably
+                      --  tagged types.
+ 
+                      if Is_Derived_Type (Etype (Etyp)) then
+                         Error_Msg_N
+                           ("cannot be specified on derived types", Nam);
+ 
+                      elsif Ekind (Etype (Prefix (Nam))) = E_Record_Subtype then
+                         Error_Msg_N
+                           ("cannot be specified on a subtype", Nam);
+ 
+                      elsif Is_Interface (Etype (Etyp)) then
+                         Error_Msg_N
+                           ("cannot be specified on interface types", Nam);
+ 
+                      elsif Has_Discriminants (Etype (Etyp)) then
+                         Error_Msg_N
+                           ("cannot be specified on discriminated type", Nam);
+ 
+                      elsif Present (Incomplete_Or_Partial_View (Etype (Etyp)))
+                        and then Is_Tagged_Type
+                                   (Incomplete_Or_Partial_View (Etype (Etyp)))
+                      then
+                         Error_Msg_N
+                           ("cannot be specified on a type whose partial view"
+                            & " is tagged", Nam);
+ 
+                      --  Otherwise, the declaration is valid
+ 
+                      else
+                         declare
+                            Actions : List_Id;
+                         begin
+                            --  Generate our class-wide equivalent type which
+                            --  is sized according to the value specified by
+                            --  'Size'Class.
+ 
+                            Set_Class_Wide_Equivalent_Type (Etyp,
+                              Make_CW_Equivalent_Type (Etyp, Empty, Actions));
+ 
+                            --  Add a Compile_Time_Error sizing check as a hint
+                            --  to the backend.
+ 
+                            Append_To (Actions,
+                              Make_CW_Size_Compile_Check
+                                (Etype (Etyp), U_Ent));
+ 
+                            --  Set the expansion to occur during freezing when
+                            --  everything is analyzed
+ 
+                            Append_Freeze_Actions (Etyp, Actions);
+ 
+                            Set_Is_Mutably_Tagged_Type (Etyp);
+                         end;
+                      end if;
+                   end if;
+ 
                    Set_Has_Size_Clause (U_Ent);
                 end;
              end if;
*************** package body Sem_Ch13 is
*** 7977,7983 ****
           -----------------------
  
           when Attribute_Variable_Indexing =>
!             Check_Indexing_Functions;
  
           -----------
           -- Write --
--- 7598,7604 ----
           -----------------------
  
           when Attribute_Variable_Indexing =>
!             null;
  
           -----------
           -- Write --
*************** package body Sem_Ch13 is
*** 8949,8955 ****
           Arg : Node_Id;
        begin
           if No (UAD_Pragma) then
!             Error_Msg_N ("No definition for user-defined aspect", Id);
              return;
           end if;
  
--- 8570,8576 ----
           Arg : Node_Id;
        begin
           if No (UAD_Pragma) then
!             Error_Msg_N ("no definition for user-defined aspect", Id);
              return;
           end if;
  
*************** package body Sem_Ch13 is
*** 9477,9483 ****
              when N_Op_Not =>
                 return not Get_RList (Right_Opnd (Exp), Static);
  
!                --  Comparisons of type with static value
  
              when N_Op_Compare =>
  
--- 9098,9104 ----
              when N_Op_Not =>
                 return not Get_RList (Right_Opnd (Exp), Static);
  
!             --  Comparisons of type with static value
  
              when N_Op_Compare =>
  
*************** package body Sem_Ch13 is
*** 10269,10275 ****
        --  Predicate_Function (T) is non-empty.
  
        procedure Replace_Current_Instance_References
!          (N : Node_Id; Typ, New_Entity : Entity_Id);
        --  Replace all references to Typ in the tree rooted at N with
        --  references to Param. [New_Entity will be a formal parameter of a
        --  predicate function.]
--- 9890,9896 ----
        --  Predicate_Function (T) is non-empty.
  
        procedure Replace_Current_Instance_References
!         (N : Node_Id; Typ, New_Entity : Entity_Id);
        --  Replace all references to Typ in the tree rooted at N with
        --  references to Param. [New_Entity will be a formal parameter of a
        --  predicate function.]
*************** package body Sem_Ch13 is
*** 10388,10399 ****
  
              if Is_Ignored_Ghost_Pragma (Prag) then
                 Add_Condition (New_Occurrence_Of (Standard_True, Sloc (Prag)));
-                return;
-             end if;
  
!             --  Mark corresponding SCO as enabled
  
!             Set_SCO_Pragma_Enabled (Sloc (Prag));
  
              --  Extract the arguments of the pragma
  
--- 10009,10020 ----
  
              if Is_Ignored_Ghost_Pragma (Prag) then
                 Add_Condition (New_Occurrence_Of (Standard_True, Sloc (Prag)));
  
!             else
!                --  Mark corresponding SCO as enabled
  
!                Set_SCO_Pragma_Enabled (Sloc (Prag));
!             end if;
  
              --  Extract the arguments of the pragma
  
*************** package body Sem_Ch13 is
*** 10427,10433 ****
  
                    --  "and"-in the Arg2 condition to evolving expression
  
!                   Add_Condition (Arg2_Copy);
                 end;
              end if;
           end Add_Predicate;
--- 10048,10056 ----
  
                    --  "and"-in the Arg2 condition to evolving expression
  
!                   if not Is_Ignored_Ghost_Pragma (Prag) then
!                      Add_Condition (Arg2_Copy);
!                   end if;
                 end;
              end if;
           end Add_Predicate;
*************** package body Sem_Ch13 is
*** 10487,10493 ****
        -----------------------------------------
  
        procedure Replace_Current_Instance_References
!          (N : Node_Id; Typ, New_Entity : Entity_Id)
        is
           Root : Node_Id renames N;
  
--- 10110,10116 ----
        -----------------------------------------
  
        procedure Replace_Current_Instance_References
!         (N : Node_Id; Typ, New_Entity : Entity_Id)
        is
           Root : Node_Id renames N;
  
*************** package body Sem_Ch13 is
*** 11095,11104 ****
        --  Expression to be analyzed at end of declarations
  
        Freeze_Expr : constant Node_Id := Expression (ASN);
!       --  Expression from call to Check_Aspect_At_Freeze_Point.
  
        T : constant Entity_Id :=
!             (if Present (Freeze_Expr) and A_Id /= Aspect_Stable_Properties
               then Etype (Original_Node (Freeze_Expr))
               else Empty);
        --  Type required for preanalyze call. We use the original expression to
--- 10718,10727 ----
        --  Expression to be analyzed at end of declarations
  
        Freeze_Expr : constant Node_Id := Expression (ASN);
!       --  Expression from call to Check_Aspect_At_Freeze_Point
  
        T : constant Entity_Id :=
!             (if Present (Freeze_Expr) and then A_Id /= Aspect_Stable_Properties
               then Etype (Original_Node (Freeze_Expr))
               else Empty);
        --  Type required for preanalyze call. We use the original expression to
*************** package body Sem_Ch13 is
*** 11165,11171 ****
        if In_Instance then
           return;
  
!       --  The enclosing scope may have been rewritten during expansion (.e.g. a
        --  task body is rewritten as a procedure) after this conformance check
        --  has been performed, so do not perform it again (it may not easily be
        --  done if full visibility of local entities is not available).
--- 10788,10794 ----
        if In_Instance then
           return;
  
!       --  The enclosing scope may have been rewritten during expansion (e.g. a
        --  task body is rewritten as a procedure) after this conformance check
        --  has been performed, so do not perform it again (it may not easily be
        --  done if full visibility of local entities is not available).
*************** package body Sem_Ch13 is
*** 11210,11216 ****
           --  If the end of declarations comes before any other freeze point,
           --  the Freeze_Expr is not analyzed: no check needed.
  
!          if Analyzed (Freeze_Expr) and then not In_Instance then
              Check_Overloaded_Name;
           else
              Err := False;
--- 10833,10839 ----
           --  If the end of declarations comes before any other freeze point,
           --  the Freeze_Expr is not analyzed: no check needed.
  
!          if Analyzed (Freeze_Expr) then
              Check_Overloaded_Name;
           else
              Err := False;
*************** package body Sem_Ch13 is
*** 11271,11276 ****
--- 10894,10905 ----
              end if;
              return;
  
+          --  The expression must be analyzed in the special manner described in
+          --  "Handling of Default and Per-Object Expressions" in sem.ads, since
+          --  any static expressions within an aspect_specification also cause
+          --  freezing at the end of the immediately enclosing declaration list
+          --  (RM 13.14(7.2/5)).
+ 
           --  The default values attributes may be defined in the private part,
           --  and the analysis of the expression may take place when only the
           --  partial view is visible. The expression must be scalar, so use
*************** package body Sem_Ch13 is
*** 11287,11292 ****
--- 10916,10922 ----
           elsif A_Id in Aspect_CPU
                       | Aspect_Dynamic_Predicate
                       | Aspect_Ghost_Predicate
+                      | Aspect_Interrupt_Priority
                       | Aspect_Predicate
                       | Aspect_Priority
                       | Aspect_Static_Predicate
*************** package body Sem_Ch13 is
*** 11297,11302 ****
--- 10927,10933 ----
  
           elsif A_Id = Aspect_Predicate_Failure then
              Preanalyze_Spec_Expression (End_Decl_Expr, Standard_String);
+ 
           elsif Present (End_Decl_Expr) then
              Preanalyze_Spec_Expression (End_Decl_Expr, T);
           end if;
*************** package body Sem_Ch13 is
*** 11313,11324 ****
           Error_Msg_NE
             ("!visibility of aspect for& changes after freeze point",
              ASN, Ent);
           Error_Msg_NE
!            ("info: & is frozen here, (RM 13.1.1 (13/3))??",
!             Freeze_Node (Ent), Ent);
        end if;
     end Check_Aspect_At_End_Of_Declarations;
  
     ----------------------------------
     -- Check_Aspect_At_Freeze_Point --
     ----------------------------------
--- 10944,10978 ----
           Error_Msg_NE
             ("!visibility of aspect for& changes after freeze point",
              ASN, Ent);
+          Error_Msg_Sloc := Sloc (Freeze_Node (Ent));
           Error_Msg_NE
!            ("\& is frozen #, (RM 13.1.1 (13/3))",
!             ASN, Ent);
        end if;
     end Check_Aspect_At_End_Of_Declarations;
  
+    ------------------------------------------
+    -- Check_Aspects_At_End_Of_Declarations --
+    ------------------------------------------
+ 
+    procedure Check_Aspects_At_End_Of_Declarations (E : Entity_Id) is
+       ASN : Node_Id;
+ 
+    begin
+       ASN := First_Rep_Item (E);
+ 
+       while Present (ASN) loop
+          if Nkind (ASN) = N_Aspect_Specification
+            and then Entity (ASN) = E
+            and then Is_Delayed_Aspect (ASN)
+          then
+             Check_Aspect_At_End_Of_Declarations (ASN);
+          end if;
+ 
+          Next_Rep_Item (ASN);
+       end loop;
+    end Check_Aspects_At_End_Of_Declarations;
+ 
     ----------------------------------
     -- Check_Aspect_At_Freeze_Point --
     ----------------------------------
*************** package body Sem_Ch13 is
*** 11472,11478 ****
           --  name. Legality rules are checked separately.
  
           when Aspect_Constant_Indexing
-             | Aspect_Default_Iterator
              | Aspect_Iterator_Element
              | Aspect_Variable_Indexing
           =>
--- 11126,11131 ----
*************** package body Sem_Ch13 is
*** 11493,11503 ****
              Analyze (Expression (ASN));
              return;
  
!          --  Ditto for Iterable, legality checks in Validate_Iterable_Aspect.
  
           when Aspect_Iterable =>
              T := Entity (ASN);
  
              declare
                 Cursor : constant Entity_Id := Get_Cursor_Type (ASN, T);
                 Assoc  : Node_Id;
--- 11146,11210 ----
              Analyze (Expression (ASN));
              return;
  
!          when Aspect_Default_Iterator =>
! 
!             --  If the aspect is not Comes_From_Source, then it's an inherited
!             --  aspect, in which case the aspect's operation has already been
!             --  set, and there's no need to call Check_Iterator_Functions.
! 
!             if Comes_From_Source (ASN) then
!                Check_Iterator_Functions
!                  (Typ => Entity (ASN), Expr => Expression (ASN));
!             end if;
!             return;
! 
!          --  Finalizable, legality checks in Validate_Finalizable_Aspect
! 
!          when Aspect_Finalizable =>
!             T := Entity (ASN);
! 
!             if Nkind (Expression (ASN)) /= N_Aggregate then
!                pragma Assert (Serious_Errors_Detected > 0);
!                return;
!             end if;
! 
!             declare
!                Assoc : Node_Id;
!                Exp   : Node_Id;
!                Nam   : Node_Id;
! 
!             begin
!                Assoc := First (Component_Associations (Expression (ASN)));
!                while Present (Assoc) loop
!                   Nam := First (Choices (Assoc));
!                   Exp := Expression (Assoc);
! 
!                   if Chars (Nam) = Name_Relaxed_Finalization
!                     and then Inside_A_Generic
!                   then
!                      Preanalyze_And_Resolve (Exp, Any_Boolean);
! 
!                   else
!                      Analyze (Exp);
!                      Resolve_Finalizable_Argument (Exp, T, Chars (Nam));
!                   end if;
! 
!                   Next (Assoc);
!                end loop;
!             end;
! 
!             return;
! 
!          --  Iterable, legality checks in Validate_Iterable_Aspect
  
           when Aspect_Iterable =>
              T := Entity (ASN);
  
+             if Nkind (Expression (ASN)) /= N_Aggregate then
+                pragma Assert (Serious_Errors_Detected > 0);
+                return;
+             end if;
+ 
              declare
                 Cursor : constant Entity_Id := Get_Cursor_Type (ASN, T);
                 Assoc  : Node_Id;
*************** package body Sem_Ch13 is
*** 11525,11536 ****
              return;
  
           when Aspect_Aggregate =>
!             if Is_Array_Type (Entity (ASN)) then
!                Error_Msg_N
!                  ("aspect& can only be applied to non-array type",
!                   Ident);
              end if;
!             Resolve_Aspect_Aggregate (Entity (ASN), Expression (ASN));
              return;
  
           when Aspect_Stable_Properties =>
--- 11232,11249 ----
              return;
  
           when Aspect_Aggregate =>
! 
!             --  If the aspect is not Comes_From_Source, then it's
!             --  an inherited aspect, in which case the aspect's
!             --  operations have already been set and there's no need
!             --  to resolve it.
! 
!             --  Is it even necessary to be calling Resolve_Aspect_Aggr here???
! 
!             if Comes_From_Source (ASN) then
!                Resolve_Aspect_Aggregate (Entity (ASN), Expression (ASN));
              end if;
! 
              return;
  
           when Aspect_Stable_Properties =>
*************** package body Sem_Ch13 is
*** 11598,11636 ****
           --  Here is the list of aspects that don't require delay analysis
  
           when Aspect_Abstract_State
-             | Aspect_Always_Terminates
              | Aspect_Annotate
-             | Aspect_Async_Readers
-             | Aspect_Async_Writers
-             | Aspect_Constant_After_Elaboration
              | Aspect_Contract_Cases
              | Aspect_Default_Initial_Condition
              | Aspect_Depends
              | Aspect_Dimension
              | Aspect_Dimension_System
              | Aspect_Exceptional_Cases
!             | Aspect_Effective_Reads
!             | Aspect_Effective_Writes
!             | Aspect_Extensions_Visible
!             | Aspect_Ghost
              | Aspect_Global
              | Aspect_GNAT_Annotate
              | Aspect_Implicit_Dereference
              | Aspect_Initial_Condition
              | Aspect_Initializes
-             | Aspect_Max_Entry_Queue_Depth
              | Aspect_Max_Entry_Queue_Length
              | Aspect_Max_Queue_Length
-             | Aspect_No_Caching
-             | Aspect_No_Controlled_Parts
-             | Aspect_No_Task_Parts
              | Aspect_Obsolescent
              | Aspect_Part_Of
              | Aspect_Post
              | Aspect_Postcondition
              | Aspect_Pre
              | Aspect_Precondition
-             | Aspect_Side_Effects
              | Aspect_Refined_Depends
              | Aspect_Refined_Global
              | Aspect_Refined_Post
--- 11311,11338 ----
           --  Here is the list of aspects that don't require delay analysis
  
           when Aspect_Abstract_State
              | Aspect_Annotate
              | Aspect_Contract_Cases
              | Aspect_Default_Initial_Condition
              | Aspect_Depends
              | Aspect_Dimension
              | Aspect_Dimension_System
              | Aspect_Exceptional_Cases
!             | Aspect_Exit_Cases
!             | Aspect_External_Initialization
              | Aspect_Global
              | Aspect_GNAT_Annotate
              | Aspect_Implicit_Dereference
              | Aspect_Initial_Condition
              | Aspect_Initializes
              | Aspect_Max_Entry_Queue_Length
              | Aspect_Max_Queue_Length
              | Aspect_Obsolescent
              | Aspect_Part_Of
              | Aspect_Post
              | Aspect_Postcondition
              | Aspect_Pre
              | Aspect_Precondition
              | Aspect_Refined_Depends
              | Aspect_Refined_Global
              | Aspect_Refined_Post
*************** package body Sem_Ch13 is
*** 11643,11649 ****
              | Aspect_Unimplemented
              | Aspect_Unsuppress
              | Aspect_User_Aspect
-             | Aspect_Volatile_Function
           =>
              raise Program_Error;
  
--- 11345,11350 ----
*************** package body Sem_Ch13 is
*** 11651,11661 ****
--- 11352,11472 ----
  
        --  Do the preanalyze call
  
+       --  The expression must be analyzed in the special manner described in
+       --  "Handling of Default and Per-Object Expressions" in sem.ads, since
+       --  at the freezing point of the entity associated with an aspect
+       --  specification, any static expressions expressions or names within
+       --  the aspect_specification cause freezing (RM 13.14(7.2/5)).
+ 
        if Present (Expression (ASN)) then
           Preanalyze_Spec_Expression (Expression (ASN), T);
        end if;
     end Check_Aspect_At_Freeze_Point;
  
+    ---------------------------
+    -- Check_Aspect_Too_Late --
+    ---------------------------
+ 
+    procedure Check_Aspect_Too_Late (N : Node_Id) is
+       Typ  : constant Entity_Id := Entity (N);
+       Expr : constant Node_Id   := Expression (N);
+ 
+       function Find_Type_Reference
+         (Typ : Entity_Id; Expr : Node_Id) return Boolean;
+       --  Return True if a reference to type Typ is found in the expression
+       --  Expr.
+ 
+       -------------------------
+       -- Find_Type_Reference --
+       -------------------------
+ 
+       function Find_Type_Reference
+         (Typ : Entity_Id; Expr : Node_Id) return Boolean
+       is
+          function Find_Type (N : Node_Id) return Traverse_Result;
+          --  Set Found to True if N refers to Typ
+ 
+          ---------------
+          -- Find_Type --
+          ---------------
+ 
+          function Find_Type (N : Node_Id) return Traverse_Result is
+          begin
+             if N = Typ
+               or else (Nkind (N) in N_Identifier | N_Expanded_Name
+                         and then Present (Entity (N))
+                         and then Entity (N) = Typ)
+             then
+                return Abandon;
+             else
+                return OK;
+             end if;
+          end Find_Type;
+ 
+          function Search_Type_Reference is new Traverse_Func (Find_Type);
+ 
+       begin
+          return Search_Type_Reference (Expr) = Abandon;
+       end Find_Type_Reference;
+ 
+       Parent_Type : Entity_Id;
+ 
+       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
+       Save_Must_Not_Freeze    : constant Boolean := Must_Not_Freeze (Expr);
+ 
+    begin
+       --  Ensure Expr is analyzed so that e.g. all types are properly
+       --  resolved for Find_Type_Reference. We preanalyze this expression
+       --  (to avoid expansion), handle it as a spec expression (like default
+       --  expression), disable freezing and skip resolution (to not fold
+       --  type self-references, e.g. T'Last).
+ 
+       In_Spec_Expression := True;
+       Set_Must_Not_Freeze (Expr);
+ 
+       Preanalyze (Expr);
+ 
+       Set_Must_Not_Freeze (Expr, Save_Must_Not_Freeze);
+       In_Spec_Expression := Save_In_Spec_Expression;
+ 
+       --  A self-referential aspect is illegal if it forces freezing the
+       --  entity before the corresponding aspect has been analyzed.
+ 
+       if Find_Type_Reference (Typ, Expr) then
+          Error_Msg_NE
+            ("aspect specification causes premature freezing of&", N, Typ);
+       end if;
+ 
+       --  For representation aspects, check for case of untagged derived
+       --  type whose parent either has primitive operations (pre Ada 2022),
+       --  or is a by-reference type (RM 13.1(10)).
+       --  Strictly speaking the check also applies to Ada 2012 but it is
+       --  really too constraining for existing code already, so relax it.
+       --  ??? Confirming aspects should be allowed here.
+ 
+       if Is_Representation_Aspect (Get_Aspect_Id (N))
+         and then Is_Derived_Type (Typ)
+         and then not Is_Tagged_Type (Typ)
+       then
+          Parent_Type := Etype (Base_Type (Typ));
+ 
+          if Ada_Version <= Ada_2012
+            and then Has_Primitive_Operations (Parent_Type)
+          then
+             Error_Msg_N
+               ("|representation aspect not permitted before Ada 2022: " &
+                "use -gnat2022!", N);
+             Error_Msg_NE
+               ("\parent type & has primitive operations!", N, Parent_Type);
+ 
+          elsif Is_By_Reference_Type (Parent_Type) then
+             No_Type_Rep_Item (N);
+             Error_Msg_NE
+               ("\parent type & is a by-reference type!", N, Parent_Type);
+          end if;
+       end if;
+    end Check_Aspect_Too_Late;
+ 
     -----------------------------------
     -- Check_Constant_Address_Clause --
     -----------------------------------
*************** package body Sem_Ch13 is
*** 11998,12003 ****
--- 11809,12275 ----
        end if;
     end Check_Constant_Address_Clause;
  
+    ----------------------------------------
+    -- Check_Function_For_Indexing_Aspect --
+    ----------------------------------------
+ 
+    procedure Check_Function_For_Indexing_Aspect
+      (ASN   : Node_Id;
+       Typ   : Entity_Id;
+       Subp  : Entity_Id;
+       Valid : out Boolean)
+    is
+       Aspect : constant Aspect_Id := Get_Aspect_Id (ASN);
+ 
+       procedure Illegal_Indexing (Msg : String);
+       --  Report error on illegal candidate for indexing function
+ 
+       function Is_CW_Or_Access_To_CW
+         (Param_Type    : Entity_Id;
+          Specific_Type : Entity_Id) return Boolean;
+       --  Is Param_Type either Specific_Type'Class or an anonymous
+       --  access-to-Specific_Type'Class type?
+ 
+       function Look_Through_Anon_Access (Typ : Entity_Id) return Entity_Id;
+       --  For an appropriate access type, return designated type;
+       --  otherwise return argument.
+ 
+       function Subp_Is_Dispatching_Op_Of_Typ
+         (Subp : Entity_Id;
+          Typ  : Entity_Id) return Boolean;
+       --  Is subprogram Subp is a dispatching operation of type Typ?
+ 
+       ----------------------
+       -- Illegal_Indexing --
+       ----------------------
+ 
+       --  NOTE: If the semantics of indexing aspects are ever changed
+       --  to be treated like resolution rules instead of legality rules,
+       --  then this procedure could be modified to only issue the error
+       --  if an appropriate function has not yet been found and there are
+       --  no further operations yet to be considered as interpretations
+       --  (i.e., return immediately without a message if Indexing_Found
+       --  or no further candidate functions are yet to be considered).
+ 
+       procedure Illegal_Indexing (Msg : String) is
+       begin
+          Error_Msg_NE (Msg, ASN, Typ);
+       end Illegal_Indexing;
+ 
+       ---------------------------
+       -- Is_CW_Or_Access_To_CW --
+       ---------------------------
+ 
+       function Is_CW_Or_Access_To_CW
+         (Param_Type    : Entity_Id;
+          Specific_Type : Entity_Id) return Boolean
+       is
+          Typ : constant Entity_Id :=
+            Look_Through_Anon_Access (Param_Type);
+ 
+          Aspect_Specification_Is_Inherited : constant Boolean :=
+            Is_Derived_Type (Specific_Type)
+              and then Has_Aspect (Etype (Specific_Type), Aspect);
+       begin
+          if not Is_Class_Wide_Type (Typ) then
+             return False;
+          end if;
+ 
+          declare
+             Specific_1 : constant Entity_Id :=
+               Implementation_Base_Type (Find_Specific_Type (Typ));
+             Specific_2 : constant Entity_Id :=
+               Implementation_Base_Type (Specific_Type);
+          begin
+             if Aspect_Specification_Is_Inherited then
+                return Is_Ancestor (T1 => Specific_1, T2 => Specific_2);
+             else
+                return Specific_1 = Specific_2;
+             end if;
+          end;
+       end Is_CW_Or_Access_To_CW;
+ 
+       ------------------------------
+       -- Look_Through_Anon_Access --
+       ------------------------------
+ 
+       function Look_Through_Anon_Access
+         (Typ : Entity_Id) return Entity_Id
+       is
+          Result : Entity_Id := Typ;
+       begin
+          if Is_Anonymous_Access_Type (Typ)
+            and then Is_Access_Object_Type (Typ)
+          then
+             Result := Designated_Type (Typ);
+          end if;
+ 
+          return Implementation_Base_Type (Result);
+       end Look_Through_Anon_Access;
+ 
+       -----------------------------------
+       -- Subp_Is_Dispatching_Op_Of_Typ --
+       -----------------------------------
+ 
+       function Subp_Is_Dispatching_Op_Of_Typ
+         (Subp : Entity_Id; Typ : Entity_Id) return Boolean
+       is
+          Base_Typ         : constant Entity_Id :=
+            Implementation_Base_Type (Typ);
+          Dispatching_Type : Entity_Id := Find_Dispatching_Type (Subp);
+       begin
+          if No (Dispatching_Type) then
+             return False;
+          end if;
+          Dispatching_Type := Implementation_Base_Type (Dispatching_Type);
+ 
+          return Base_Typ = Dispatching_Type
+            and then
+              --  test whether first formal is controlling
+              Base_Typ = Look_Through_Anon_Access
+                           (Etype (First_Formal (Subp)));
+       end Subp_Is_Dispatching_Op_Of_Typ;
+ 
+       --  Local variables
+ 
+       Ret_Type : constant Entity_Id := Etype (Subp);
+ 
+    --  Start of processing for Check_Function_For_Indexing_Aspect
+ 
+    begin
+       Valid := False;
+ 
+       --  If the subprogram isn't declared in the same scope as the type
+       --  E, then it shouldn't be considered (see AI22-0084 as well as
+       --  RM 4.1.6(2/5-3/5), though the latter are apparently intended
+       --  as legality rules, not resolution rules).
+ 
+       if Scope (Subp) /= Scope (Typ) then
+          return;
+ 
+       elsif not Is_Overloadable (Subp) or else No (Ret_Type) then
+          Illegal_Indexing ("illegal indexing function for type&");
+          return;
+ 
+       elsif No (First_Formal (Subp)) then
+          Illegal_Indexing
+            ("indexing aspect requires a function that applies to type&");
+          return;
+ 
+       elsif No (Next_Formal (First_Formal (Subp))) then
+          Error_Msg_Sloc := Sloc (Subp);
+          Illegal_Indexing
+             ("at least two parameters required for indexing function "
+              & "defined #");
+          return;
+ 
+       elsif not Subp_Is_Dispatching_Op_Of_Typ
+                   (Subp => Subp, Typ => Typ)
+          and then not Is_CW_Or_Access_To_CW
+                         (Param_Type => Etype (First_Formal (Subp)),
+                          Specific_Type => Typ)
+       then
+          Illegal_Indexing
+            ("indexing aspect requires function with first formal "
+              & "applying to type& or its class-wide type");
+          return;
+ 
+       elsif Aspect = Aspect_Constant_Indexing
+          and then Is_Anonymous_Access_Type (Etype (First_Formal (Subp)))
+          and then not Is_Access_Constant (Etype (First_Formal (Subp)))
+       then
+          Illegal_Indexing
+            ("Constant_Indexing must apply to function with "
+              & "access-to-constant formal");
+          return;
+       end if;
+ 
+       --  For variable_indexing the return type must be a reference type
+ 
+       if Aspect = Aspect_Variable_Indexing then
+          if not Has_Implicit_Dereference (Ret_Type) then
+             Illegal_Indexing
+                ("function for Variable_Indexing must return "
+                 & "a reference type");
+             return;
+ 
+          elsif Is_Access_Constant
+                  (Etype (First_Discriminant (Ret_Type)))
+          then
+             Illegal_Indexing
+               ("function for Variable_Indexing must return an "
+                & "access-to-variable result");
+             return;
+          end if;
+       end if;
+ 
+       Valid := True;
+ 
+       --  Add the acceptable subprogram to the indexing aspect's list
+       --  of subprograms.
+ 
+       declare
+          Subp_List : Elist_Id := Aspect_Subprograms (ASN);
+       begin
+          Append_New_Elmt (Subp, Subp_List);
+          Set_Aspect_Subprograms (ASN, Subp_List);
+       end;
+    end Check_Function_For_Indexing_Aspect;
+ 
+    ------------------------------
+    -- Check_Iterator_Functions --
+    ------------------------------
+ 
+    procedure Check_Iterator_Functions (Typ : Entity_Id; Expr : Node_Id) is
+ 
+       function Valid_Default_Iterator
+         (Subp     : Entity_Id;
+          Ref_Node : Node_Id := Empty) return Boolean;
+       --  Check one possible interpretation for validity. If
+       --  Ref_Node is present report errors on violations.
+ 
+       ----------------------------
+       -- Valid_Default_Iterator --
+       ----------------------------
+ 
+       function Valid_Default_Iterator
+         (Subp     : Entity_Id;
+          Ref_Node : Node_Id := Empty) return Boolean
+       is
+          Return_Type : constant Entity_Id := Etype (Etype (Subp));
+          Return_Node : Node_Id;
+          Root_T      : constant Entity_Id := Root_Type (Return_Type);
+          Formal      : Entity_Id;
+ 
+          function Valid_Iterator_Name (E : Entity_Id) return Boolean
+          is (Chars (E) in Name_Forward_Iterator | Name_Reversible_Iterator);
+ 
+          function Valid_Iterator_Name (L : Elist_Id) return Boolean;
+ 
+          -------------------------
+          -- Valid_Iterator_Name --
+          -------------------------
+ 
+          function Valid_Iterator_Name (L : Elist_Id) return Boolean
+          is
+             Iface_Elmt : Elmt_Id := First_Elmt (L);
+          begin
+             while Present (Iface_Elmt) loop
+                if Valid_Iterator_Name (Node (Iface_Elmt)) then
+                   return True;
+                end if;
+                Next_Elmt (Iface_Elmt);
+             end loop;
+ 
+             return False;
+          end Valid_Iterator_Name;
+ 
+       --  Start of processing for Valid_Default_Iterator
+ 
+       begin
+          if Subp = Any_Id then
+             if Present (Ref_Node) then
+ 
+                --  Subp is not resolved and an error will be posted about
+                --  it later
+ 
+                Error_Msg_N ("improper function for default iterator!",
+                   Ref_Node);
+             end if;
+ 
+             return False;
+          end if;
+ 
+          if not Check_Primitive_Function (Subp, Typ) then
+             if Present (Ref_Node) then
+                if Debug_Flag_Underscore_DD then
+                   Record_Default_Iterator_Not_Primitive_Error
+                     (Ref_Node, Subp);
+                else
+                   Error_Msg_N ("improper function for default iterator!",
+                      Ref_Node);
+                   Error_Msg_Sloc := Sloc (Subp);
+                   Error_Msg_NE
+                      ("\\default iterator defined # "
+                      & "must be a local primitive or class-wide function",
+                      Ref_Node, Subp);
+                end if;
+             end if;
+ 
+             return False;
+          end if;
+ 
+          --  The return type must be derived from a type in an instance
+          --  of Iterator.Interfaces, and thus its root type must have a
+          --  predefined name.
+ 
+          if not Valid_Iterator_Name (Root_T)
+             and then not (Has_Interfaces (Return_Type) and then
+                Valid_Iterator_Name (Interfaces (Return_Type)))
+          then
+             if Present (Ref_Node) then
+ 
+                Return_Node := Result_Definition (Parent (Subp));
+ 
+                Error_Msg_N ("improper function for default iterator!",
+                   Ref_Node);
+                Error_Msg_Sloc := Sloc (Return_Node);
+                Error_Msg_NE ("\\return type & # "
+                   & "must inherit from either "
+                   & "Forward_Iterator or Reversible_Iterator",
+                   Ref_Node, Return_Node);
+             end if;
+ 
+             return False;
+          end if;
+ 
+          Formal := First_Formal (Subp);
+ 
+          --  False if any subsequent formal has no default expression
+ 
+          Next_Formal (Formal);
+          while Present (Formal) loop
+             if No (Expression (Parent (Formal))) then
+                if Present (Ref_Node) then
+                   Error_Msg_N ("improper function for default iterator!",
+                      Ref_Node);
+                   Error_Msg_Sloc := Sloc (Formal);
+                   Error_Msg_NE ("\\formal parameter & # "
+                      & "must have a default expression",
+                      Ref_Node, Formal);
+                end if;
+ 
+                return False;
+             end if;
+ 
+             Next_Formal (Formal);
+          end loop;
+ 
+          --  True if all subsequent formals have default expressions
+ 
+          return True;
+       end Valid_Default_Iterator;
+ 
+       Ignore : Boolean;
+ 
+    --  Start of processing for Check_Iterator_Functions
+ 
+    begin
+       Analyze (Expr);
+ 
+       if not Is_Entity_Name (Expr) then
+          Error_Msg_N ("aspect Default_Iterator must be a function name", Expr);
+       end if;
+ 
+       if not Is_Overloaded (Expr) then
+          if Entity (Expr) /= Any_Id
+            and then not Check_Primitive_Function (Entity (Expr), Typ)
+          then
+             Error_Msg_NE
+               ("aspect Default_Iterator requires a local function applying "
+                  & "to type&", Entity (Expr), Typ);
+          end if;
+ 
+          --  Flag the default_iterator as well as the denoted function.
+ 
+          Ignore := Valid_Default_Iterator (Entity (Expr), Expr);
+ 
+       else
+          declare
+             Default : Entity_Id := Empty;
+             I       : Interp_Index;
+             It      : Interp;
+ 
+          begin
+             Get_First_Interp (Expr, I, It);
+             while Present (It.Nam) loop
+                if not Check_Primitive_Function (It.Nam, Typ)
+                  or else not Valid_Default_Iterator (It.Nam)
+                then
+                   Remove_Interp (I);
+ 
+                elsif Present (Default) then
+ 
+                   --  An explicit one should override an implicit one
+ 
+                   if Comes_From_Source (Default) =
+                        Comes_From_Source (It.Nam)
+                   then
+                      Error_Msg_N ("default iterator must be unique", Expr);
+                      Error_Msg_Sloc := Sloc (Default);
+                      Error_Msg_N ("\\possible interpretation#", Expr);
+                      Error_Msg_Sloc := Sloc (It.Nam);
+                      Error_Msg_N ("\\possible interpretation#", Expr);
+ 
+                   elsif Comes_From_Source (It.Nam) then
+                      Default := It.Nam;
+                   end if;
+                else
+                   Default := It.Nam;
+                end if;
+ 
+                Get_Next_Interp (I, It);
+             end loop;
+ 
+             if Present (Default) then
+                Set_Entity (Expr, Default);
+                Set_Is_Overloaded (Expr, False);
+             else
+                Error_Msg_N
+                  ("no interpretation is a valid default iterator!", Expr);
+             end if;
+          end;
+       end if;
+    end Check_Iterator_Functions;
+ 
+    -------------------------------
+    -- Check_Primitive_Function  --
+    -------------------------------
+ 
+    function Check_Primitive_Function
+      (Subp : Entity_Id; Ent : Entity_Id) return Boolean
+    is
+       Ctrl : Entity_Id;
+ 
+    begin
+       if Ekind (Subp) /= E_Function then
+          return False;
+       end if;
+ 
+       if No (First_Formal (Subp)) then
+          return False;
+       else
+          Ctrl := Etype (First_Formal (Subp));
+       end if;
+ 
+       --  To be a primitive operation subprogram has to be in same scope.
+ 
+       if Scope (Ctrl) /= Scope (Subp) then
+          return False;
+       end if;
+ 
+       --  Type of formal may be the class-wide type, an access to such,
+       --  or an incomplete view.
+ 
+       if Ctrl = Ent
+         or else Ctrl = Class_Wide_Type (Ent)
+         or else
+           (Ekind (Ctrl) = E_Anonymous_Access_Type
+             and then (Designated_Type (Ctrl) = Ent
+                         or else
+                       Designated_Type (Ctrl) = Class_Wide_Type (Ent)))
+         or else
+           (Ekind (Ctrl) = E_Incomplete_Type
+             and then Full_View (Ctrl) = Ent)
+       then
+          null;
+       else
+          return False;
+       end if;
+ 
+       return True;
+    end Check_Primitive_Function;
+ 
     ---------------------------
     -- Check_Pool_Size_Clash --
     ---------------------------
*************** package body Sem_Ch13 is
*** 12086,12092 ****
        --  Checks for gaps in the given Rectype. Compute After_Last, the bit
        --  number after the last component. Warn is True on the initial call,
        --  and warnings are given for gaps. For a type extension, this is called
!       --  recursively to compute After_Last for the parent type; in this case
        --  Warn is False and the warnings are suppressed.
  
        procedure Component_Order_Check (Rectype : Entity_Id);
--- 12358,12364 ----
        --  Checks for gaps in the given Rectype. Compute After_Last, the bit
        --  number after the last component. Warn is True on the initial call,
        --  and warnings are given for gaps. For a type extension, this is called
!       --  recursively to compute After_Last on the parent subtype; in this case
        --  Warn is False and the warnings are suppressed.
  
        procedure Component_Order_Check (Rectype : Entity_Id);
*************** package body Sem_Ch13 is
*** 12259,12266 ****
        procedure Record_Hole_Check
          (Rectype : Entity_Id; After_Last : out Uint; Warn : Boolean)
        is
!          Decl : constant Node_Id := Declaration_Node (Base_Type (Rectype));
!          --  Full declaration of record type
  
           procedure Check_Component_List
             (DS   : List_Id;
--- 12531,12541 ----
        procedure Record_Hole_Check
          (Rectype : Entity_Id; After_Last : out Uint; Warn : Boolean)
        is
!          Base_Typ : constant Entity_Id := Base_Type (Rectype);
!          --  Base type of record type
! 
!          Decl : constant Node_Id := Declaration_Node (Base_Typ);
!          --  Full declaration of base type of record type
  
           procedure Check_Component_List
             (DS   : List_Id;
*************** package body Sem_Ch13 is
*** 12355,12369 ****
              Citem := First (DS);
              while Present (Citem) loop
                 if Nkind (Citem) = N_Discriminant_Specification then
!                   declare
!                      Ent : constant Entity_Id :=
!                              Defining_Identifier (Citem);
!                   begin
!                      if Ekind (Ent) = E_Discriminant then
!                         Ncomps := Ncomps + 1;
!                         Comps (Ncomps) := Ent;
!                      end if;
!                   end;
                 end if;
  
                 Next (Citem);
--- 12630,12641 ----
              Citem := First (DS);
              while Present (Citem) loop
                 if Nkind (Citem) = N_Discriminant_Specification then
!                   Ncomps := Ncomps + 1;
!                   Comps (Ncomps) := Defining_Identifier (Citem);
! 
!                   --  Check that we pick discriminants from the proper view
! 
!                   pragma Assert (Ekind (Comps (Ncomps)) = E_Discriminant);
                 end if;
  
                 Next (Citem);
*************** package body Sem_Ch13 is
*** 12440,12485 ****
  
           --  Local variables
  
!          Sbit : Uint;
!          --  Starting bit for call to Check_Component_List. Zero for an
!          --  untagged type. The size of the Tag for a nonderived tagged
!          --  type. Parent size for a type extension.
  
           Record_Definition : Node_Id;
           --  Record_Definition containing Component_List to pass to
           --  Check_Component_List.
  
        --  Start of processing for Record_Hole_Check
  
        begin
!          if Is_Tagged_Type (Rectype) then
              Sbit := UI_From_Int (System_Address_Size);
           else
              Sbit := Uint_0;
           end if;
  
!          After_Last := Uint_0;
  
!          if Nkind (Decl) = N_Full_Type_Declaration then
!             Record_Definition := Type_Definition (Decl);
  
!             --  If we have a record extension, set Sbit to point after the last
!             --  component of the parent type, by calling Record_Hole_Check
!             --  recursively.
  
!             if Nkind (Record_Definition) = N_Derived_Type_Definition then
!                Record_Definition := Record_Extension_Part (Record_Definition);
!                Record_Hole_Check (Underlying_Type (Parent_Subtype (Rectype)),
!                                   After_Last => Sbit, Warn => False);
!             end if;
  
!             if Nkind (Record_Definition) = N_Record_Definition then
!                Check_Component_List
!                  (Discriminant_Specifications (Decl),
!                   Component_List (Record_Definition),
!                   Sbit, After_Last);
!             end if;
           end if;
        end Record_Hole_Check;
  
     --  Start of processing for Check_Record_Representation_Clause
--- 12712,12782 ----
  
           --  Local variables
  
!          Decl_For_Discriminants : Node_Id;
!          --  Declaration node for the view that provides discriminants
  
           Record_Definition : Node_Id;
           --  Record_Definition containing Component_List to pass to
           --  Check_Component_List.
  
+          Sbit : Uint;
+          --  Starting bit for call to Check_Component_List. Zero for an
+          --  untagged type. The size of the Tag for a nonderived tagged
+          --  type. Parent size for a type extension.
+ 
        --  Start of processing for Record_Hole_Check
  
        begin
!          --  The tag is not present in the list of components of a tagged type
! 
!          if Is_Tagged_Type (Base_Typ) then
              Sbit := UI_From_Int (System_Address_Size);
           else
              Sbit := Uint_0;
           end if;
  
!          After_Last := Sbit;
  
!          --  We need the full declaration of the base type of the record type
  
!          if Nkind (Decl) /= N_Full_Type_Declaration then
!             return;
!          end if;
  
!          Record_Definition := Type_Definition (Decl);
  
!          --  If we have a record extension, set Sbit to point after the last
!          --  component of the parent subtype, by calling Record_Hole_Check
!          --  recursively on this parent subtype.
! 
!          if Nkind (Record_Definition) = N_Derived_Type_Definition then
!             Record_Definition := Record_Extension_Part (Record_Definition);
!             Record_Hole_Check
!               (Underlying_Type (Parent_Subtype (Base_Typ)),
!                After_Last => Sbit,
!                Warn       => False);
           end if;
+ 
+          pragma Assert (Nkind (Record_Definition) = N_Record_Definition);
+ 
+          --  If the type has a private declaration that does not specify
+          --  unknown discriminants, this declaration provides the (known)
+          --  discriminants, if any.
+ 
+          if Has_Private_Declaration (Base_Typ)
+            and then not Partial_View_Has_Unknown_Discr (Base_Typ)
+          then
+             Decl_For_Discriminants :=
+               Declaration_Node (Incomplete_Or_Partial_View (Base_Typ));
+          else
+             Decl_For_Discriminants := Decl;
+          end if;
+ 
+          Check_Component_List
+            (Discriminant_Specifications (Decl_For_Discriminants),
+             Component_List (Record_Definition),
+             Sbit => Sbit,
+             Abit => After_Last);
        end Record_Hole_Check;
  
     --  Start of processing for Check_Record_Representation_Clause
*************** package body Sem_Ch13 is
*** 13050,13056 ****
        procedure Hide_Non_Overridden_Subprograms (Typ : Entity_Id);
        --  Inspect the primitive operations of type Typ and hide all pairs of
        --  implicitly declared non-overridden non-fully conformant homographs
!       --  (Ada RM 8.3 12.3/2).
  
        -------------------------------------
        -- Hide_Non_Overridden_Subprograms --
--- 13347,13353 ----
        procedure Hide_Non_Overridden_Subprograms (Typ : Entity_Id);
        --  Inspect the primitive operations of type Typ and hide all pairs of
        --  implicitly declared non-overridden non-fully conformant homographs
!       --  (RM 8.3(12.3/2)).
  
        -------------------------------------
        -- Hide_Non_Overridden_Subprograms --
*************** package body Sem_Ch13 is
*** 13200,13207 ****
          and then Nongeneric_Case
          and then Ekind (E) = E_Record_Type
          and then Is_Tagged_Type (E)
-         and then not Is_Interface (E)
-         and then Has_Interfaces (E)
        then
           --  This would be a good common place to call the routine that checks
           --  overriding of interface primitives (and thus factorize calls to
--- 13497,13502 ----
*************** package body Sem_Ch13 is
*** 13209,13215 ****
           --  compiler). However, this is not possible because it causes
           --  spurious errors in case of late overriding.
  
!          Add_Internal_Interface_Entities (E);
        end if;
  
        --  After all forms of overriding have been resolved, a tagged type may
--- 13504,13525 ----
           --  compiler). However, this is not possible because it causes
           --  spurious errors in case of late overriding.
  
!          if Has_Interfaces (E)
!            and then not Is_Interface (E)
!          then
!             Add_Internal_Interface_Entities (E);
!          end if;
! 
!          --  For a derived tagged type, check strub mode compatibility of
!          --  its primitives and whether inherited primitives might require
!          --  a wrapper to handle class-wide conditions. For derived interface
!          --  check strub mode compatibility of its primitives.
! 
!          if Is_Derived_Type (E)
!            and then not In_Generic_Scope (E)
!          then
!             Check_Inherited_Conditions (E);
!          end if;
        end if;
  
        --  After all forms of overriding have been resolved, a tagged type may
*************** package body Sem_Ch13 is
*** 13218,13224 ****
        --  overriding. If this set contains fully conformant homographs, then
        --  one is chosen arbitrarily (already done during resolution), otherwise
        --  all remaining non-fully conformant homographs are hidden from
!       --  visibility (Ada RM 8.3 12.3/2).
  
        if Is_Tagged_Type (E) then
           Hide_Non_Overridden_Subprograms (E);
--- 13528,13534 ----
        --  overriding. If this set contains fully conformant homographs, then
        --  one is chosen arbitrarily (already done during resolution), otherwise
        --  all remaining non-fully conformant homographs are hidden from
!       --  visibility (RM 8.3(12.3/2)).
  
        if Is_Tagged_Type (E) then
           Hide_Non_Overridden_Subprograms (E);
*************** package body Sem_Ch13 is
*** 13557,13562 ****
--- 13867,13873 ----
                    if Get_Aspect_Id (Ritem) in Aspect_CPU
                                              | Aspect_Dynamic_Predicate
                                              | Aspect_Ghost_Predicate
+                                             | Aspect_Interrupt_Priority
                                              | Aspect_Predicate
                                              | Aspect_Static_Predicate
                                              | Aspect_Priority
*************** package body Sem_Ch13 is
*** 13934,13941 ****
          (E   : Entity_Id;
           Nam : Name_Id) return Node_Id
        is
!          Rep : constant Node_Id
!                  := Get_Rep_Item (E, Nam, Check_Parents => True);
        begin
           if Present (Rep)
             and then not Has_Rep_Item (E, Nam, Check_Parents => False)
--- 14245,14252 ----
          (E   : Entity_Id;
           Nam : Name_Id) return Node_Id
        is
!          Rep : constant Node_Id :=
!            Get_Rep_Item (E, Nam, Check_Parents => True);
        begin
           if Present (Rep)
             and then not Has_Rep_Item (E, Nam, Check_Parents => False)
*************** package body Sem_Ch13 is
*** 13951,13958 ****
           Nam1 : Name_Id;
           Nam2 : Name_Id) return Node_Id
        is
!          Rep : constant Node_Id
!                  := Get_Rep_Item (E, Nam1, Nam2, Check_Parents => True);
        begin
           if Present (Rep)
             and then not Has_Rep_Item (E, Nam1, Nam2, Check_Parents => False)
--- 14262,14269 ----
           Nam1 : Name_Id;
           Nam2 : Name_Id) return Node_Id
        is
!          Rep : constant Node_Id :=
!            Get_Rep_Item (E, Nam1, Nam2, Check_Parents => True);
        begin
           if Present (Rep)
             and then not Has_Rep_Item (E, Nam1, Nam2, Check_Parents => False)
*************** package body Sem_Ch13 is
*** 14170,14182 ****
                 Set_Has_Volatile_Components (Imp_Bas_Typ);
              end if;
  
-             --  Finalize_Storage_Only
- 
-             Rep := Get_Inherited_Rep_Item (Typ, Name_Finalize_Storage_Only);
-             if Present (Rep) then
-                Set_Finalize_Storage_Only (Bas_Typ);
-             end if;
- 
              --  Universal_Aliasing
  
              Rep := Get_Inherited_Rep_Item (Typ, Name_Universal_Aliasing);
--- 14481,14486 ----
*************** package body Sem_Ch13 is
*** 14225,14230 ****
--- 14529,14543 ----
                    Set_SSO_Set_High_By_Default (Bas_Typ, False);
                 end if;
              end if;
+ 
+             --  Finalizable
+ 
+             if Is_Record_Type (Typ) and then Typ = Bas_Typ then
+                Rep := Get_Inherited_Rep_Item (Typ, Name_Finalizable);
+                if Present (Rep) then
+                   Propagate_Controlled_Flags (Typ, Etype (Bas_Typ));
+                end if;
+             end if;
           end;
        end if;
     end Inherit_Aspects_At_Freeze_Point;
*************** package body Sem_Ch13 is
*** 14330,14338 ****
                       | Aspect_Size
                    =>
                       if not Has_Size_Clause (Typ)
!                        and then
!                          No (Get_Attribute_Definition_Clause
!                                (Typ, Attribute_Object_Size))
                       then
                          Set_Esize (Typ, Esize (P));
                       end if;
--- 14643,14649 ----
                       | Aspect_Size
                    =>
                       if not Has_Size_Clause (Typ)
!                        and then No (Object_Size_Clause (Typ))
                       then
                          Set_Esize (Typ, Esize (P));
                       end if;
*************** package body Sem_Ch13 is
*** 15112,15117 ****
--- 15423,15433 ----
        then
           Append_Freeze_Action (Ent, Subp_Decl);
  
+          --  We may freeze Subp_Id immediately since Ent has just been frozen.
+          --  This will help to shield us from potential late freezing issues.
+ 
+          Set_Is_Frozen (Subp_Id);
+ 
        else
           Insert_Action (N, Subp_Decl);
           Set_Entity (N, Subp_Id);
*************** package body Sem_Ch13 is
*** 15463,15482 ****
        --------------
  
        procedure Too_Late is
        begin
           --  Other compilers seem more relaxed about rep items appearing too
           --  late. Since analysis tools typically don't care about rep items
           --  anyway, no reason to be too strict about this.
  
           if not Relaxed_RM_Semantics then
!             Error_Msg_N ("|representation item appears too late!", N);
           end if;
        end Too_Late;
  
        --  Local variables
  
        Parent_Type : Entity_Id;
-       S           : Entity_Id;
  
     --  Start of processing for Rep_Item_Too_Late
  
--- 15779,15819 ----
        --------------
  
        procedure Too_Late is
+          S : Entity_Id;
        begin
           --  Other compilers seem more relaxed about rep items appearing too
           --  late. Since analysis tools typically don't care about rep items
           --  anyway, no reason to be too strict about this.
  
           if not Relaxed_RM_Semantics then
!             if Debug_Flag_Underscore_DD then
! 
!                S := First_Subtype (T);
!                if Present (Freeze_Node (S)) then
!                   Record_Representation_Too_Late_Error
!                     (Rep    => N,
!                      Freeze => Freeze_Node (S),
!                      Def    => S);
!                else
!                   Error_Msg_N ("|representation item appears too late!", N);
!                end if;
! 
!             else
!                Error_Msg_N ("|representation item appears too late!", N);
! 
!                S := First_Subtype (T);
!                if Present (Freeze_Node (S)) then
!                   Error_Msg_NE
!                     ("??no more representation items for }",
!                      Freeze_Node (S), S);
!                end if;
!             end if;
           end if;
        end Too_Late;
  
        --  Local variables
  
        Parent_Type : Entity_Id;
  
     --  Start of processing for Rep_Item_Too_Late
  
*************** package body Sem_Ch13 is
*** 15503,15524 ****
           if Nkind (N) in N_Attribute_Definition_Clause | N_Pragma
             and then From_Aspect_Specification (N)
           then
!             Error_Msg_NE
!               ("aspect specification causes premature freezing of&", N, T);
!             Set_Has_Delayed_Freeze (T, False);
!             return True;
!          end if;
  
!          Too_Late;
!          S := First_Subtype (T);
  
!          if Present (Freeze_Node (S)) then
!             if not Relaxed_RM_Semantics then
                 Error_Msg_NE
!                  ("??no more representation items for }", Freeze_Node (S), S);
              end if;
           end if;
  
           return True;
  
        --  Check for case of untagged derived type whose parent either has
--- 15840,15865 ----
           if Nkind (N) in N_Attribute_Definition_Clause | N_Pragma
             and then From_Aspect_Specification (N)
           then
!             --  If an attribute_definition_clause or pragma comes from
!             --  an aspect_specification that is not Comes_From_Source (as when
!             --  it's an inherited aspect), then we assume it must be OK, since
!             --  it was generated by the compiler.
  
!             if Present (Parent (N))
!               and then not Comes_From_Source (Parent (N))
!             then
!                return False;
  
!             else
                 Error_Msg_NE
!                  ("aspect specification causes premature freezing of&", N, T);
!                Set_Has_Delayed_Freeze (T, False);
!                return True;
              end if;
           end if;
  
+          Too_Late;
+ 
           return True;
  
        --  Check for case of untagged derived type whose parent either has
*************** package body Sem_Ch13 is
*** 15925,15936 ****
                and then Chars (Prefix (N)) /= Chars (E)
              then
                 Find_Selected_Component (N);
              end if;
  
              return Skip;
  
!          --  Resolve identifiers that are not selectors in parameter
!          --  associations (these are never resolved by visibility).
  
           elsif Nkind (N) = N_Identifier
             and then Chars (N) /= Chars (E)
--- 16266,16285 ----
                and then Chars (Prefix (N)) /= Chars (E)
              then
                 Find_Selected_Component (N);
+ 
+                --  Reset the Entity if N is overloaded since the entity might
+                --  not be the correct one; allow later resolution to set it
+                --  properly.
+ 
+                if Is_Overloaded (N) then
+                   Set_Entity (N, Empty);
+                end if;
              end if;
  
              return Skip;
  
!          --  Resolve identifiers, but not selectors in parameter associations;
!          --  such selectors are never resolved by visibility.
  
           elsif Nkind (N) = N_Identifier
             and then Chars (N) /= Chars (E)
*************** package body Sem_Ch13 is
*** 15939,15946 ****
           then
              Find_Direct_Name (N);
  
!             --  Reset the Entity if N is overloaded since the entity may not
!             --  be the correct one.
  
              if Is_Overloaded (N) then
                 Set_Entity (N, Empty);
--- 16288,16294 ----
           then
              Find_Direct_Name (N);
  
!             --  Reset the Entity as above for selected_components
  
              if Is_Overloaded (N) then
                 Set_Entity (N, Empty);
*************** package body Sem_Ch13 is
*** 16006,16024 ****
                       --  name resolution errors if the predicate function has
                       --  not been built yet.
  
!                      --  Note that we cannot use Preanalyze_Spec_Expression
                       --  directly because of the special handling required for
                       --  quantifiers (see comments on Resolve_Aspect_Expression
                       --  above) but we need to emulate it properly.
  
                       if No (Predicate_Function (E)) then
                          declare
-                            Save_In_Spec_Expression : constant Boolean :=
-                                                        In_Spec_Expression;
                             Save_Full_Analysis : constant Boolean :=
                                                    Full_Analysis;
                          begin
-                            In_Spec_Expression := True;
                             Full_Analysis := False;
                             Expander_Mode_Save_And_Set (False);
                             Push_Type (E);
--- 16354,16369 ----
                       --  name resolution errors if the predicate function has
                       --  not been built yet.
  
!                      --  Note that we cannot use Preanalyze_And_Resolve
                       --  directly because of the special handling required for
                       --  quantifiers (see comments on Resolve_Aspect_Expression
                       --  above) but we need to emulate it properly.
  
                       if No (Predicate_Function (E)) then
                          declare
                             Save_Full_Analysis : constant Boolean :=
                                                    Full_Analysis;
                          begin
                             Full_Analysis := False;
                             Expander_Mode_Save_And_Set (False);
                             Push_Type (E);
*************** package body Sem_Ch13 is
*** 16026,16039 ****
                             Pop_Type (E);
                             Expander_Mode_Restore;
                             Full_Analysis := Save_Full_Analysis;
-                            In_Spec_Expression := Save_In_Spec_Expression;
                          end;
                       end if;
  
                    when Pre_Post_Aspects =>
                       null;
  
!                   when Aspect_Iterable =>
                       if Nkind (Expr) = N_Aggregate then
                          declare
                             Assoc : Node_Id;
--- 16371,16383 ----
                             Pop_Type (E);
                             Expander_Mode_Restore;
                             Full_Analysis := Save_Full_Analysis;
                          end;
                       end if;
  
                    when Pre_Post_Aspects =>
                       null;
  
!                   when Aspect_Finalizable | Aspect_Iterable =>
                       if Nkind (Expr) = N_Aggregate then
                          declare
                             Assoc : Node_Id;
*************** package body Sem_Ch13 is
*** 16057,16068 ****
                    --  before the actual freeze point.
  
                    when Aspect_Default_Value =>
!                      Set_Must_Not_Freeze (Expr);
!                      Preanalyze_Spec_Expression (Expr, E);
  
!                   when Aspect_Priority =>
                       Push_Type (E);
!                      Preanalyze_Spec_Expression (Expr, Any_Integer);
                       Pop_Type (E);
  
                    --  Ditto for Storage_Size. Any other aspects that carry
--- 16401,16419 ----
                    --  before the actual freeze point.
  
                    when Aspect_Default_Value =>
!                      Check_Aspect_Too_Late (ASN);
!                      Preanalyze_And_Resolve (Expr, E);
  
!                   when Aspect_Default_Component_Value =>
!                      Check_Aspect_Too_Late (ASN);
!                      Preanalyze_And_Resolve (Expr, Component_Type (E));
! 
!                   when Aspect_CPU
!                      | Aspect_Interrupt_Priority
!                      | Aspect_Priority
!                   =>
                       Push_Type (E);
!                      Preanalyze_And_Resolve (Expr, Any_Integer);
                       Pop_Type (E);
  
                    --  Ditto for Storage_Size. Any other aspects that carry
*************** package body Sem_Ch13 is
*** 16070,16077 ****
                    --  relevant to the misuse of deferred constants.
  
                    when Aspect_Storage_Size =>
!                      Set_Must_Not_Freeze (Expr);
!                      Preanalyze_Spec_Expression (Expr, Any_Integer);
  
                    when others =>
                       if Present (Expr) then
--- 16421,16427 ----
                    --  relevant to the misuse of deferred constants.
  
                    when Aspect_Storage_Size =>
!                      Preanalyze_And_Resolve (Expr, Any_Integer);
  
                    when others =>
                       if Present (Expr) then
*************** package body Sem_Ch13 is
*** 16349,16356 ****
        end if;
  
        declare
!          Set : constant Local_Restriction_Set
!            := Parse_Aspect_Local_Restrictions (Parent (N));
           pragma Unreferenced (Set);
        begin
           null;
--- 16699,16706 ----
        end if;
  
        declare
!          Set : constant Local_Restriction_Set :=
!            Parse_Aspect_Local_Restrictions (Parent (N));
           pragma Unreferenced (Set);
        begin
           null;
*************** package body Sem_Ch13 is
*** 16502,16507 ****
--- 16852,16934 ----
        end if;
     end Validate_Aspect_Stable_Properties;
  
+    ----------------------------------
+    -- Resolve_Finalizable_Argument --
+    ----------------------------------
+ 
+    procedure Resolve_Finalizable_Argument
+      (N   : Node_Id;
+       Typ : Entity_Id;
+       Nam : Name_Id)
+    is
+       function Is_Finalizable_Primitive (E : Entity_Id) return Boolean;
+       --  Check whether E is a finalizable primitive for Typ
+ 
+       ------------------------------
+       -- Is_Finalizable_Primitive --
+       ------------------------------
+ 
+       function Is_Finalizable_Primitive (E : Entity_Id) return Boolean is
+       begin
+          return Ekind (E) = E_Procedure
+            and then Scope (E) = Scope (Typ)
+            and then Present (First_Formal (E))
+            and then Ekind (First_Formal (E)) = E_In_Out_Parameter
+            and then Etype (First_Formal (E)) = Typ
+            and then No (Next_Formal (First_Formal (E)));
+       end Is_Finalizable_Primitive;
+ 
+    --  Start of processing for Resolve_Finalizable_Argument
+ 
+    begin
+       if Nam = Name_Relaxed_Finalization then
+          Resolve (N, Any_Boolean);
+ 
+          if Is_OK_Static_Expression (N) then
+             Set_Has_Relaxed_Finalization (Typ, Is_True (Static_Boolean (N)));
+ 
+          else
+             Flag_Non_Static_Expr
+               ("expression of aspect Finalizable must be static!", N);
+          end if;
+ 
+          return;
+       end if;
+ 
+       if not Is_Entity_Name (N) then
+          null;
+ 
+       elsif not Is_Overloaded (N) then
+          if Is_Finalizable_Primitive (Entity (N)) then
+             return;
+          end if;
+ 
+       else
+          --  Overloaded case: find subprogram with proper signature
+ 
+          declare
+             I  : Interp_Index;
+             It : Interp;
+ 
+          begin
+             Get_First_Interp (N, I, It);
+ 
+             while Present (It.Typ) loop
+                if Is_Finalizable_Primitive (It.Nam) then
+                   Set_Entity (N, It.Nam);
+                   return;
+                end if;
+ 
+                Get_Next_Interp (I, It);
+             end loop;
+          end;
+       end if;
+ 
+       Error_Msg_N
+         ("finalizable primitive must be local procedure whose only formal " &
+          "parameter has mode `IN OUT` and is of the finalizable type", N);
+    end Resolve_Finalizable_Argument;
+ 
     --------------------------------
     -- Resolve_Iterable_Operation --
     --------------------------------
*************** package body Sem_Ch13 is
*** 16680,16688 ****
     ------------------------------
  
     procedure Resolve_Aspect_Aggregate
!     (Typ  : Entity_Id;
!      Expr : Node_Id)
     is
        function Valid_Empty          (E : Entity_Id) return Boolean;
        function Valid_Add_Named      (E : Entity_Id) return Boolean;
        function Valid_Add_Unnamed    (E : Entity_Id) return Boolean;
--- 17107,17117 ----
     ------------------------------
  
     procedure Resolve_Aspect_Aggregate
!      (Typ  : Entity_Id;
!       Expr : Node_Id)
     is
+       Impl_Typ : constant Entity_Id := Implementation_Base_Type (Typ);
+ 
        function Valid_Empty          (E : Entity_Id) return Boolean;
        function Valid_Add_Named      (E : Entity_Id) return Boolean;
        function Valid_Add_Unnamed    (E : Entity_Id) return Boolean;
*************** package body Sem_Ch13 is
*** 16718,16733 ****
  
        function Valid_Empty (E :  Entity_Id) return Boolean is
        begin
!          if Etype (E) /= Typ or else Scope (E) /= Scope (Typ) then
              return False;
  
-          elsif Ekind (E) = E_Constant then
-             return True;
- 
           elsif Ekind (E) = E_Function then
              return No (First_Formal (E))
                or else
!                 (Is_Integer_Type (Etype (First_Formal (E)))
                    and then No (Next_Formal (First_Formal (E))));
           else
              return False;
--- 17147,17161 ----
  
        function Valid_Empty (E :  Entity_Id) return Boolean is
        begin
!          if Implementation_Base_Type (Etype (E)) /= Impl_Typ
!            or else Scope (E) /= Scope (Typ)
!          then
              return False;
  
           elsif Ekind (E) = E_Function then
              return No (First_Formal (E))
                or else
!                 (Is_Signed_Integer_Type (Etype (First_Formal (E)))
                    and then No (Next_Formal (First_Formal (E))));
           else
              return False;
*************** package body Sem_Ch13 is
*** 16744,16750 ****
           if Ekind (E) = E_Procedure
             and then Scope (E) = Scope (Typ)
             and then Number_Formals (E) = 3
!            and then Etype (First_Formal (E)) = Typ
             and then Ekind (First_Formal (E)) = E_In_Out_Parameter
           then
              F2 := Next_Formal (First_Formal (E));
--- 17172,17179 ----
           if Ekind (E) = E_Procedure
             and then Scope (E) = Scope (Typ)
             and then Number_Formals (E) = 3
!            and then
!              Implementation_Base_Type (Etype (First_Formal (E))) = Impl_Typ
             and then Ekind (First_Formal (E)) = E_In_Out_Parameter
           then
              F2 := Next_Formal (First_Formal (E));
*************** package body Sem_Ch13 is
*** 16767,16787 ****
           return Ekind (E) = E_Procedure
             and then Scope (E) = Scope (Typ)
             and then Number_Formals (E) = 2
!            and then Etype (First_Formal (E)) = Typ
             and then Ekind (First_Formal (E)) = E_In_Out_Parameter
             and then
               not Is_Limited_Type (Etype (Next_Formal (First_Formal (E))));
        end Valid_Add_Unnamed;
  
        -----------------------
!       -- Valid_Nmw_Indexed --
        -----------------------
  
        function Valid_New_Indexed (E : Entity_Id) return Boolean is
        begin
           return Ekind (E) = E_Function
             and then Scope (E) = Scope (Typ)
!            and then Etype (E) = Typ
             and then Number_Formals (E) = 2
             and then Is_Discrete_Type (Etype (First_Formal (E)))
             and then Etype (First_Formal (E)) =
--- 17196,17217 ----
           return Ekind (E) = E_Procedure
             and then Scope (E) = Scope (Typ)
             and then Number_Formals (E) = 2
!            and then
!              Implementation_Base_Type (Etype (First_Formal (E))) = Impl_Typ
             and then Ekind (First_Formal (E)) = E_In_Out_Parameter
             and then
               not Is_Limited_Type (Etype (Next_Formal (First_Formal (E))));
        end Valid_Add_Unnamed;
  
        -----------------------
!       -- Valid_New_Indexed --
        -----------------------
  
        function Valid_New_Indexed (E : Entity_Id) return Boolean is
        begin
           return Ekind (E) = E_Function
             and then Scope (E) = Scope (Typ)
!            and then Implementation_Base_Type (Etype (E)) = Impl_Typ
             and then Number_Formals (E) = 2
             and then Is_Discrete_Type (Etype (First_Formal (E)))
             and then Etype (First_Formal (E)) =
*************** package body Sem_Ch13 is
*** 16880,16886 ****
     --------------------------------------
  
     procedure Resolve_Aspect_Stable_Properties
!     (Typ_Or_Subp : Entity_Id; Expr : Node_Id; Class_Present : Boolean)
     is
        Is_Aspect_Of_Type : constant Boolean := Is_Type (Typ_Or_Subp);
  
--- 17310,17316 ----
     --------------------------------------
  
     procedure Resolve_Aspect_Stable_Properties
!      (Typ_Or_Subp : Entity_Id; Expr : Node_Id; Class_Present : Boolean)
     is
        Is_Aspect_Of_Type : constant Boolean := Is_Type (Typ_Or_Subp);
  
*************** package body Sem_Ch13 is
*** 17637,17647 ****
              X_Offs : Uint;
  
           begin
!             --  Skip processing of this entry if warning already posted, or if
!             --  alignments are not set.
  
!             if not Address_Warning_Posted (ACCR.N)
!               and then Known_Alignment (ACCR.X)
                and then Known_Alignment (ACCR.Y)
              then
                 Expr := Original_Node (Expression (ACCR.N));
--- 18067,18075 ----
              X_Offs : Uint;
  
           begin
!             --  Skip processing of this entry if alignments are not set
  
!             if Known_Alignment (ACCR.X)
                and then Known_Alignment (ACCR.Y)
              then
                 Expr := Original_Node (Expression (ACCR.N));
*************** package body Sem_Ch13 is
*** 17749,17754 ****
--- 18177,18280 ----
        end loop;
     end Validate_Address_Clauses;
  
+    ---------------------------------
+    -- Validate_Finalizable_Aspect --
+    ---------------------------------
+ 
+    procedure Validate_Finalizable_Aspect (Typ : Entity_Id; ASN : Node_Id) is
+       Aggr : constant Node_Id := Expression (ASN);
+ 
+       Assoc : Node_Id;
+       Exp   : Node_Id;
+       Nam   : Node_Id;
+ 
+    begin
+       if not Is_Record_Type (Typ) then
+          Error_Msg_N
+            ("aspect Finalizable can only be specified for a record type", ASN);
+          return;
+ 
+       elsif Is_Derived_Type (Typ) then
+          Error_Msg_N
+            ("aspect Finalizable cannot be specified for a derived type", ASN);
+          return;
+ 
+       elsif Nkind (Aggr) /= N_Aggregate then
+          Error_Msg_N ("aspect Finalizable must be an aggregate", Aggr);
+          return;
+ 
+       elsif not Is_Empty_List (Expressions (Aggr)) then
+          Error_Msg_N
+            ("illegal positional association", First (Expressions (Aggr)));
+          return;
+       end if;
+ 
+       Set_Is_Controlled_Active (Typ);
+ 
+       --  Relaxed_Finalization is optional and set True if not specified
+ 
+       Set_Has_Relaxed_Finalization (Typ);
+ 
+       Assoc := First (Component_Associations (Aggr));
+       while Present (Assoc) loop
+          Nam := First (Choices (Assoc));
+          Exp := Expression (Assoc);
+ 
+          if Nkind (Nam) /= N_Identifier or else Present (Next (Nam)) then
+             Error_Msg_N ("illegal name in association", Nam);
+ 
+          elsif Chars (Nam) in Name_Initialize | Name_Adjust | Name_Finalize
+          then
+             Analyze (Exp);
+             Resolve_Finalizable_Argument (Exp, Typ, Chars (Nam));
+ 
+          elsif Chars (Nam) = Name_Relaxed_Finalization then
+             if Inside_A_Generic then
+                Preanalyze_And_Resolve (Exp, Any_Boolean);
+             else
+                Analyze (Exp);
+                Resolve_Finalizable_Argument (Exp, Typ, Chars (Nam));
+             end if;
+ 
+          else
+             Error_Msg_N ("invalid argument for Finalizable aspect", Nam);
+          end if;
+ 
+          Next (Assoc);
+       end loop;
+ 
+       --  If Relaxed_Finalization is set, the Finalize and Adjust procedures
+       --  are considered as having the No_Raise aspect specified.
+ 
+       if Serious_Errors_Detected > 0 then
+          null;
+ 
+       elsif Has_Relaxed_Finalization (Typ) then
+          Assoc := First (Component_Associations (Aggr));
+          while Present (Assoc) loop
+             Nam := First (Choices (Assoc));
+             Exp := Expression (Assoc);
+ 
+             if Chars (Nam) in Name_Adjust | Name_Finalize then
+                pragma Assert (Is_Entity_Name (Exp));
+                Set_No_Raise (Entity (Exp));
+             end if;
+ 
+             Next (Assoc);
+          end loop;
+ 
+       --  If Relaxed_Finalization is not set, then check that the support for
+       --  strict finalization is available in the runtime library.
+ 
+       elsif not In_Predefined_Unit (Cunit (Get_Source_Unit (Typ)))
+         and then not RTE_Available (RE_Finalization_Master)
+       then
+          Error_Msg_N
+            ("only Relaxed Finalization is supported in this configuration",
+             ASN);
+       end if;
+    end Validate_Finalizable_Aspect;
+ 
     ------------------------------
     -- Validate_Iterable_Aspect --
     ------------------------------
*************** package body Sem_Ch13 is
*** 17880,17886 ****
--- 18406,18421 ----
             and then not Is_Aliased (Param_Id);
        end Matching;
  
+    --  Start of processing for Validate_Literal_Aspect
+ 
     begin
+       --  If the aspect specification was effectively inherited from the parent
+       --  type (so constructed anew by analysis), then no point in validating.
+ 
+       if not Comes_From_Source (ASN) then
+          return;
+       end if;
+ 
        if not Is_Type (Typ) then
           Error_Msg_N ("aspect can only be specified for a type", ASN);
           return;
*************** package body Sem_Ch13 is
*** 18314,18333 ****
           Set_No_Strict_Aliasing (Implementation_Base_Type (Target));
        end if;
  
!       --  If the unchecked conversion is between Address and an access
!       --  subprogram type, show that we shouldn't use an internal
!       --  representation for the access subprogram type.
  
!       if Is_Access_Subprogram_Type (Target)
!         and then Is_Descendant_Of_Address (Source)
!         and then In_Same_Source_Unit (Target, N)
!       then
!          Set_Can_Use_Internal_Rep (Base_Type (Target), False);
!       elsif Is_Access_Subprogram_Type (Source)
!         and then Is_Descendant_Of_Address (Target)
!         and then In_Same_Source_Unit (Source, N)
!       then
!          Set_Can_Use_Internal_Rep (Base_Type (Source), False);
        end if;
  
        --  Generate N_Validate_Unchecked_Conversion node for back end in case
--- 18849,18871 ----
           Set_No_Strict_Aliasing (Implementation_Base_Type (Target));
        end if;
  
!       --  For code generators that do not support nested subprograms, if the
!       --  unchecked conversion is between Address and an access subprogram
!       --  type, show that we shouldn't use an internal representation for the
!       --  access subprogram type.
  
!       if Unnest_Subprogram_Mode then
!          if Is_Access_Subprogram_Type (Target)
!            and then Is_Descendant_Of_Address (Source)
!            and then In_Same_Source_Unit (Target, N)
!          then
!             Set_Can_Use_Internal_Rep (Base_Type (Target), False);
!          elsif Is_Access_Subprogram_Type (Source)
!            and then Is_Descendant_Of_Address (Target)
!            and then In_Same_Source_Unit (Source, N)
!          then
!             Set_Can_Use_Internal_Rep (Base_Type (Source), False);
!          end if;
        end if;
  
        --  Generate N_Validate_Unchecked_Conversion node for back end in case
*************** package body Sem_Ch13 is
*** 18354,18392 ****
     ------------------------------------
  
     procedure Validate_Unchecked_Conversions is
-       function Is_Null_Array (T : Entity_Id) return Boolean;
-       --  We want to warn in the case of converting to a wrong-sized array of
-       --  bytes, including the zero-size case. This returns True in that case,
-       --  which is necessary because a size of 0 is used to indicate both an
-       --  unknown size and a size of 0. It's OK for this to return True in
-       --  other zero-size cases, but we don't go out of our way; for example,
-       --  we don't bother with multidimensional arrays.
- 
-       function Is_Null_Array (T : Entity_Id) return Boolean is
-       begin
-          if Is_Array_Type (T) and then Is_Constrained (T) then
-             declare
-                Index : constant Node_Id := First_Index (T);
-                R : Node_Id; -- N_Range
-             begin
-                case Nkind (Index) is
-                   when N_Range =>
-                      R := Index;
-                   when N_Subtype_Indication =>
-                      R := Range_Expression (Constraint (Index));
-                   when N_Identifier | N_Expanded_Name =>
-                      R := Scalar_Range (Entity (Index));
-                   when others =>
-                      raise Program_Error;
-                end case;
- 
-                return Is_Null_Range (Low_Bound (R), High_Bound (R));
-             end;
-          end if;
- 
-          return False;
-       end Is_Null_Array;
- 
     begin
        for N in Unchecked_Conversions.First .. Unchecked_Conversions.Last loop
           declare
--- 18892,18897 ----
*************** package body Sem_Ch13 is
*** 18409,18425 ****
                 goto Continue;
              end if;
  
!            --  Don't do the check if warnings off for either type, note the
!            --  deliberate use of OR here instead of OR ELSE to get the flag
!            --  Warnings_Off_Used set for both types if appropriate.
  
              if Has_Warnings_Off (Source) or Has_Warnings_Off (Target) then
                 goto Continue;
              end if;
  
!             if (Known_Static_RM_Size (Source)
!                   and then Known_Static_RM_Size (Target))
!               or else Is_Null_Array (Target)
              then
                 --  This validation check, which warns if we have unequal sizes
                 --  for unchecked conversion, and thus implementation dependent
--- 18914,18929 ----
                 goto Continue;
              end if;
  
!             --  Don't do the check if warnings off for either type, note the
!             --  deliberate use of OR here instead of OR ELSE to get the flag
!             --  Warnings_Off_Used set for both types if appropriate.
  
              if Has_Warnings_Off (Source) or Has_Warnings_Off (Target) then
                 goto Continue;
              end if;
  
!             if Known_Static_RM_Size (Source)
!               and then Known_Static_RM_Size (Target)
              then
                 --  This validation check, which warns if we have unequal sizes
                 --  for unchecked conversion, and thus implementation dependent
*************** package body Sem_Ch13 is
*** 18430,18438 ****
                 Source_Siz := RM_Size (Source);
                 Target_Siz := RM_Size (Target);
  
!                if Present (Source_Siz) and then Present (Target_Siz)
!                  and then Source_Siz /= Target_Siz
!                then
                    Error_Msg
                      ("?z?types for unchecked conversion have different sizes!",
                       Eloc, Act_Unit);
--- 18934,18940 ----
                 Source_Siz := RM_Size (Source);
                 Target_Siz := RM_Size (Target);
  
!                if Source_Siz /= Target_Siz then
                    Error_Msg
                      ("?z?types for unchecked conversion have different sizes!",
                       Eloc, Act_Unit);
*************** package body Sem_Ch13 is
*** 18442,18448 ****
                       Error_Msg_Uint_1 := Source_Siz;
                       Error_Msg_Name_2 := Chars (Target);
                       Error_Msg_Uint_2 := Target_Siz;
!                      Error_Msg ("\size of % is ^, size of % is ^?z?", Eloc);
  
                       Error_Msg_Uint_1 := UI_Abs (Source_Siz - Target_Siz);
  
--- 18944,18951 ----
                       Error_Msg_Uint_1 := Source_Siz;
                       Error_Msg_Name_2 := Chars (Target);
                       Error_Msg_Uint_2 := Target_Siz;
!                      Error_Msg
!                        ("\size of % is ^, size of % is ^?z?", Eloc, Act_Unit);
  
                       Error_Msg_Uint_1 := UI_Abs (Source_Siz - Target_Siz);
  
*************** package body Sem_Ch13 is
*** 18453,18469 ****
                          if Source_Siz > Target_Siz then
                             Error_Msg
                               ("\?z?^ high order bits of source will "
!                               & "be ignored!", Eloc);
  
                          elsif Is_Unsigned_Type (Source) then
                             Error_Msg
                               ("\?z?source will be extended with ^ high order "
!                               & "zero bits!", Eloc);
  
                          else
                             Error_Msg
                               ("\?z?source will be extended with ^ high order "
!                               & "sign bits!", Eloc);
                          end if;
  
                       elsif Source_Siz < Target_Siz then
--- 18956,18972 ----
                          if Source_Siz > Target_Siz then
                             Error_Msg
                               ("\?z?^ high order bits of source will "
!                               & "be ignored!", Eloc, Act_Unit);
  
                          elsif Is_Unsigned_Type (Source) then
                             Error_Msg
                               ("\?z?source will be extended with ^ high order "
!                               & "zero bits!", Eloc, Act_Unit);
  
                          else
                             Error_Msg
                               ("\?z?source will be extended with ^ high order "
!                               & "sign bits!", Eloc, Act_Unit);
                          end if;
  
                       elsif Source_Siz < Target_Siz then
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch13.ads gcc-15.1.0/gcc/ada/sem_ch13.ads
*** gcc-14.2.0/gcc/ada/sem_ch13.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch13.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch13 is
*** 111,116 ****
--- 111,129 ----
     --  at the point an object with an address clause is frozen, as well as for
     --  address clauses for tasks and entries.
  
+    procedure Check_Function_For_Indexing_Aspect
+      (ASN   : Node_Id;
+       Typ   : Entity_Id;
+       Subp  : Entity_Id;
+       Valid : out Boolean);
+    --  Check Subp to see whether it's a valid function for Typ's indexing
+    --  aspect ASN (as specified by the rules given in RM 4.1.6(1-3)), flagging
+    --  an error if Subp is not an eligible indexing function (unless Subp is
+    --  declared outside the scope of E, in which case it's simply ignored
+    --  rather than considered an error; see AI22-0084). If valid for indexing,
+    --  then Subp is added to ASN's Aspect_Subprograms list, and Valid is set
+    --  to True (otherwise False).
+ 
     procedure Check_Size
       (N      : Node_Id;
        T      : Entity_Id;
*************** package Sem_Ch13 is
*** 311,329 ****
  
     --  Quite an awkward approach, but this is an awkard requirement
  
!    procedure Analyze_Aspects_At_Freeze_Point (E : Entity_Id);
!    --  Analyze all the delayed aspects for entity E at freezing point. This
!    --  includes dealing with inheriting delayed aspects from the parent type
!    --  in the case where a derived type is frozen.
! 
!    procedure Check_Aspect_At_Freeze_Point (ASN : Node_Id);
!    --  Performs the processing described above at the freeze point, ASN is the
!    --  N_Aspect_Specification node for the aspect.
  
!    procedure Check_Aspect_At_End_Of_Declarations (ASN : Node_Id);
     --  Performs the processing described above at the freeze all point, and
     --  issues appropriate error messages if the visibility has indeed changed.
!    --  Again, ASN is the N_Aspect_Specification node for the aspect.
  
     procedure Inherit_Aspects_At_Freeze_Point (Typ : Entity_Id);
     --  Given an entity Typ that denotes a derived type or a subtype, this
--- 324,345 ----
  
     --  Quite an awkward approach, but this is an awkard requirement
  
!    procedure Analyze_Aspects_At_Freeze_Point
!      (E                   : Entity_Id;
!       Nonoverridable_Only : Boolean := False);
!    --  Analyzes all the delayed aspects for entity E at the freeze point,
!    --  unless Nonoverridable_Only is True, in which case only nonoverridable
!    --  aspects are analyzed (those aspects have special requirements). Note
!    --  that this does not include dealing with inheriting delayed aspects from
!    --  the parent or base type in the case where a derived type or a subtype is
!    --  frozen. Callers should check that Has_Delayed_Aspects (E) is True before
!    --  calling this routine.
  
!    procedure Check_Aspects_At_End_Of_Declarations (E : Entity_Id);
     --  Performs the processing described above at the freeze all point, and
     --  issues appropriate error messages if the visibility has indeed changed.
!    --  Callers should check that Has_Delayed_Aspects (E) is True before calling
!    --  this routine.
  
     procedure Inherit_Aspects_At_Freeze_Point (Typ : Entity_Id);
     --  Given an entity Typ that denotes a derived type or a subtype, this
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch2.adb gcc-15.1.0/gcc/ada/sem_ch2.adb
*** gcc-14.2.0/gcc/ada/sem_ch2.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch2.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,32 ****
--- 25,35 ----
  
  with Atree;          use Atree;
  with Einfo;          use Einfo;
+ with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with Errout;         use Errout;
  with Ghost;          use Ghost;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
*************** with Rident;         use Rident;
*** 35,40 ****
--- 38,44 ----
  with Sem;            use Sem;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Dim;        use Sem_Dim;
+ with Sem_Res;        use Sem_Res;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
*************** package body Sem_Ch2 is
*** 81,86 ****
--- 85,96 ----
           Find_Direct_Name (N);
        end if;
  
+       --  Generate a conversion when we see an expanded mutably tagged type
+ 
+       if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (N)) then
+          Make_Mutably_Tagged_Conversion (N);
+       end if;
+ 
        --  A Ghost entity must appear in a specific context. Only do this
        --  checking on non-overloaded expressions, as otherwise we need to
        --  wait for resolution, and the checking is done in Resolve_Entity_Name.
*************** package body Sem_Ch2 is
*** 126,139 ****
--- 136,290 ----
     -----------------------------------------
  
     procedure Analyze_Interpolated_String_Literal (N : Node_Id) is
+ 
+       procedure Check_Ambiguous_Call (Func_Call : Node_Id);
+       --  Examine the interpretations of the call to the given function call
+       --  and report the location of each interpretation.
+ 
+       --------------------------
+       -- Check_Ambiguous_Call --
+       --------------------------
+ 
+       procedure Check_Ambiguous_Call (Func_Call : Node_Id) is
+          Result : Boolean;
+          pragma Unreferenced (Result);
+ 
+       begin
+          Check_Parameterless_Call (Func_Call);
+ 
+          if Is_Overloaded (Func_Call) then
+             Result :=
+               Is_Ambiguous_Operand
+                 (Operand        => Func_Call,
+                  In_Interp_Expr => True,
+                  Report_Errors  => True);
+ 
+             --  Discard Result because the function has been invoked to report
+             --  ambiguities (if any); no further action required.
+          end if;
+       end Check_Ambiguous_Call;
+ 
+       --  Local variables
+ 
        Str_Elem : Node_Id;
  
+    --  Start of processing for Analyze_Interpolated_String_Literal
+ 
     begin
        Set_Etype (N, Any_String);
  
        Str_Elem := First (Expressions (N));
        while Present (Str_Elem) loop
           Analyze (Str_Elem);
+ 
+          --  The parser has split the contents of the interpolated string
+          --  into its components. For example, f"before {expr} after" is
+          --  stored in the list of expressions of N as follows:
+          --     first = "before " (is_interpolated_string_literal)
+          --      next =  expr
+          --      next = " after"  (is_interpolated_string_literal)
+          --
+          --  No further action is needed for string literals with the
+          --  attribute Is_Interpolated_String_Literal set, as they are
+          --  components of the interpolated string literal. The type of
+          --  these components will be determined by the context when
+          --  resolved (see Expand_N_Interpolated_String_Literal). The
+          --  rest of the components in the list of expressions of N are
+          --  the root nodes of the interpolated expressions.
+ 
+          if Nkind (Str_Elem) = N_String_Literal
+            and then Is_Interpolated_String_Literal (Str_Elem)
+          then
+             null;
+ 
+          elsif Nkind (Str_Elem) = N_Function_Call then
+             Check_Ambiguous_Call (Str_Elem);
+ 
+          --  Before analyzed, a function call that has parameters is an
+          --  N_Indexed_Component node, and a call to a function that has
+          --  no parameters is an N_Identifier or an N_Expanded_Name node.
+          --  If the analysis could not rewrite it as N_Function_Call, it
+          --  indicates that ambiguity may have been encountered.
+ 
+          elsif Nkind (Str_Elem) in N_Identifier | N_Expanded_Name
+            and then Ekind (Entity (Str_Elem)) = E_Function
+          then
+             Check_Ambiguous_Call (Str_Elem);
+ 
+          --  Report common errors
+ 
+          elsif Nkind (Str_Elem) = N_String_Literal then
+ 
+             --  No further action needed for components of the interpolated
+             --  string literal; its type will be imposed by its context when
+             --  resolved.
+ 
+             if Is_Interpolated_String_Literal (Str_Elem) then
+                null;
+ 
+             else
+                Error_Msg_N
+                  ("ambiguous string literal in interpolated expression",
+                   Str_Elem);
+                Error_Msg_N
+                  ("\\possible interpretation 'Ada.'String type!",
+                   Str_Elem);
+                Error_Msg_N
+                  ("\\possible interpretation 'Ada.'Wide_'String type!",
+                   Str_Elem);
+                Error_Msg_N
+                  ("\\possible interpretation 'Ada.'Wide_'Wide_'String"
+                   & " type!", Str_Elem);
+                Error_Msg_N
+                  ("\\must use a qualified expression", Str_Elem);
+             end if;
+ 
+          elsif Nkind (Str_Elem) = N_Character_Literal then
+             Error_Msg_N
+               ("ambiguous character literal in interpolated expression",
+                Str_Elem);
+             Error_Msg_N
+               ("\\possible interpretation 'Ada.'Character type!",
+                Str_Elem);
+             Error_Msg_N
+               ("\\possible interpretation 'Ada.'Wide_'Character type!",
+                Str_Elem);
+             Error_Msg_N
+               ("\\possible interpretation 'Ada.'Wide_'Wide_'Character"
+                & " type!", Str_Elem);
+             Error_Msg_N
+               ("\\must use a qualified expression", Str_Elem);
+ 
+          elsif Nkind (Str_Elem) in N_Integer_Literal
+                                  | N_Real_Literal
+          then
+             Error_Msg_N
+               ("ambiguous number in interpolated expression",
+                Str_Elem);
+             Error_Msg_N
+               ("\\must use a qualified expression", Str_Elem);
+ 
+          elsif Nkind (Str_Elem) = N_Interpolated_String_Literal then
+             Error_Msg_N ("nested interpolated string not allowed", Str_Elem);
+ 
+          elsif Etype (Str_Elem) in Any_Type
+                                  | Any_Array
+                                  | Any_Composite
+                                  | Any_Discrete
+                                  | Any_Fixed
+                                  | Any_Integer
+                                  | Any_Modular
+                                  | Any_Numeric
+                                  | Any_Real
+                                  | Any_String
+                                  | Universal_Integer
+                                  | Universal_Real
+                                  | Universal_Fixed
+                                  | Universal_Access
+          then
+             Error_Msg_N ("ambiguous interpolated expression", Str_Elem);
+          end if;
+ 
           Next (Str_Elem);
        end loop;
     end Analyze_Interpolated_String_Literal;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch2.ads gcc-15.1.0/gcc/ada/sem_ch2.ads
*** gcc-14.2.0/gcc/ada/sem_ch2.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch2.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch3.adb gcc-15.1.0/gcc/ada/sem_ch3.adb
*** gcc-14.2.0/gcc/ada/sem_ch3.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch3.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Dist;       use Exp_Dist;
*** 42,57 ****
--- 42,61 ----
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
  with Expander;       use Expander;
+ with Fmap;
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
  with Itypes;         use Itypes;
  with Layout;         use Layout;
  with Lib;            use Lib;
+ with Lib.Writ;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Opt;            use Opt;
+ with Osint;
  with Restrict;       use Restrict;
  with Rident;         use Rident;
  with Rtsfind;        use Rtsfind;
*************** with Sinfo;          use Sinfo;
*** 81,88 ****
--- 85,95 ----
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
+ with Sinput.L;
  with Snames;         use Snames;
+ with Stringt;
  with Strub;          use Strub;
+ with System.OS_Lib;
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
*************** package body Sem_Ch3 is
*** 101,111 ****
     --  abstract interface types implemented by a record type or a derived
     --  record type.
  
-    procedure Build_Access_Subprogram_Wrapper (Decl : Node_Id);
-    --  When an access-to-subprogram type has pre/postconditions, we build a
-    --  subprogram that includes these contracts and is invoked by an indirect
-    --  call through the corresponding access type.
- 
     procedure Build_Derived_Type
       (N             : Node_Id;
        Parent_Type   : Entity_Id;
--- 108,113 ----
*************** package body Sem_Ch3 is
*** 740,745 ****
--- 742,752 ----
     --  Check that an entity in a list of progenitors is an interface,
     --  emit error otherwise.
  
+    procedure Warn_On_Inherently_Limited_Type (E : Entity_Id);
+    --  Emit a warning if a record type that does not have a limited keyword in
+    --  its definition has any components that are limited (which implicitly
+    --  make the type limited).
+ 
     -----------------------
     -- Access_Definition --
     -----------------------
*************** package body Sem_Ch3 is
*** 754,766 ****
        Enclosing_Prot_Type : Entity_Id := Empty;
  
     begin
-       if Is_Entry (Current_Scope)
-         and then Is_Task_Type (Etype (Scope (Current_Scope)))
-       then
-          Error_Msg_N ("task entries cannot have access parameters", N);
-          return Empty;
-       end if;
- 
        --  Ada 2005: For an object declaration the corresponding anonymous
        --  type is declared in the current scope.
  
--- 761,766 ----
*************** package body Sem_Ch3 is
*** 1100,1106 ****
                                  | N_Protected_Type_Declaration
        loop
           D_Ityp := Parent (D_Ityp);
!          pragma Assert (D_Ityp /= Empty);
        end loop;
  
        Set_Associated_Node_For_Itype (Desig_Type, D_Ityp);
--- 1100,1108 ----
                                  | N_Protected_Type_Declaration
        loop
           D_Ityp := Parent (D_Ityp);
!          if No (D_Ityp) then
!             raise Program_Error;
!          end if;
        end loop;
  
        Set_Associated_Node_For_Itype (Desig_Type, D_Ityp);
*************** package body Sem_Ch3 is
*** 1249,1255 ****
        --  to incomplete types declared in some enclosing scope, not to limited
        --  views from other packages.
  
!       --  Prior to Ada 2012, access to functions can only have in_parameters.
  
        if Present (Formals) then
           Formal := First_Formal (Desig_Type);
--- 1251,1258 ----
        --  to incomplete types declared in some enclosing scope, not to limited
        --  views from other packages.
  
!       --  Prior to Ada 2012, all parameters of an access-to-function type must
!       --  be of mode 'in'.
  
        if Present (Formals) then
           Formal := First_Formal (Desig_Type);
*************** package body Sem_Ch3 is
*** 1406,1415 ****
                 begin
                    Decl :=
                      Make_Subtype_Declaration (Loc,
!                       Defining_Identifier => Nam,
!                       Subtype_Indication  =>
                          New_Occurrence_Of (Entity (S), Loc));
-                   Set_Null_Exclusion_Present (Decl);
                    Insert_Before (Parent (Def), Decl);
                    Analyze (Decl);
                    Set_Entity (S, Nam);
--- 1409,1418 ----
                 begin
                    Decl :=
                      Make_Subtype_Declaration (Loc,
!                       Defining_Identifier    => Nam,
!                       Null_Exclusion_Present => True,
!                       Subtype_Indication     =>
                          New_Occurrence_Of (Entity (S), Loc));
                    Insert_Before (Parent (Def), Decl);
                    Analyze (Decl);
                    Set_Entity (S, Nam);
*************** package body Sem_Ch3 is
*** 1461,1467 ****
        Set_Has_Timing_Event         (T, False);
        Set_Has_Controlled_Component (T, False);
  
!       --  Initialize field Finalization_Master explicitly to Empty, to avoid
        --  problems where an incomplete view of this entity has been previously
        --  established by a limited with and an overlaid version of this field
        --  (Stored_Constraint) was initialized for the incomplete view.
--- 1464,1470 ----
        Set_Has_Timing_Event         (T, False);
        Set_Has_Controlled_Component (T, False);
  
!       --  Initialize field Finalization_Collection explicitly to Empty to avoid
        --  problems where an incomplete view of this entity has been previously
        --  established by a limited with and an overlaid version of this field
        --  (Stored_Constraint) was initialized for the incomplete view.
*************** package body Sem_Ch3 is
*** 1469,1478 ****
        --  This reset is performed in most cases except where the access type
        --  has been created for the purposes of allocating or deallocating a
        --  build-in-place object. Such access types have explicitly set pools
!       --  and finalization masters.
  
        if No (Associated_Storage_Pool (T)) then
!          Set_Finalization_Master (T, Empty);
        end if;
  
        --  Ada 2005 (AI-231): Propagate the null-excluding and access-constant
--- 1472,1481 ----
        --  This reset is performed in most cases except where the access type
        --  has been created for the purposes of allocating or deallocating a
        --  build-in-place object. Such access types have explicitly set pools
!       --  and finalization collections.
  
        if No (Associated_Storage_Pool (T)) then
!          Set_Finalization_Collection (T, Empty);
        end if;
  
        --  Ada 2005 (AI-231): Propagate the null-excluding and access-constant
*************** package body Sem_Ch3 is
*** 1616,1622 ****
  
        Last_Tag := Empty;
  
!       if not (Present (Component_List (Ext))) then
           Set_Null_Present (Ext, False);
           L := New_List;
           Set_Component_List (Ext,
--- 1619,1625 ----
  
        Last_Tag := Empty;
  
!       if No (Component_List (Ext)) then
           Set_Null_Present (Ext, False);
           L := New_List;
           Set_Component_List (Ext,
*************** package body Sem_Ch3 is
*** 1960,2029 ****
        T   : Entity_Id;
        P   : Entity_Id;
  
-       function Contains_POC (Constr : Node_Id) return Boolean;
-       --  Determines whether a constraint uses the discriminant of a record
-       --  type thus becoming a per-object constraint (POC).
- 
        function Is_Known_Limited (Typ : Entity_Id) return Boolean;
        --  Typ is the type of the current component, check whether this type is
        --  a limited type. Used to validate declaration against that of
        --  enclosing record.
  
!       ------------------
!       -- Contains_POC --
!       ------------------
! 
!       function Contains_POC (Constr : Node_Id) return Boolean is
!       begin
!          --  Prevent cascaded errors
! 
!          if Error_Posted (Constr) then
!             return False;
!          end if;
! 
!          case Nkind (Constr) is
!             when N_Attribute_Reference =>
!                return Attribute_Name (Constr) = Name_Access
!                  and then Prefix (Constr) = Scope (Entity (Prefix (Constr)));
! 
!             when N_Discriminant_Association =>
!                return Denotes_Discriminant (Expression (Constr));
! 
!             when N_Identifier =>
!                return Denotes_Discriminant (Constr);
! 
!             when N_Index_Or_Discriminant_Constraint =>
!                declare
!                   IDC : Node_Id;
! 
!                begin
!                   IDC := First (Constraints (Constr));
!                   while Present (IDC) loop
! 
!                      --  One per-object constraint is sufficient
! 
!                      if Contains_POC (IDC) then
!                         return True;
!                      end if;
! 
!                      Next (IDC);
!                   end loop;
! 
!                   return False;
!                end;
! 
!             when N_Range =>
!                return Denotes_Discriminant (Low_Bound (Constr))
!                         or else
!                       Denotes_Discriminant (High_Bound (Constr));
! 
!             when N_Range_Constraint =>
!                return Denotes_Discriminant (Range_Expression (Constr));
! 
!             when others =>
!                return False;
!          end case;
!       end Contains_POC;
  
        ----------------------
        -- Is_Known_Limited --
--- 1963,1975 ----
        T   : Entity_Id;
        P   : Entity_Id;
  
        function Is_Known_Limited (Typ : Entity_Id) return Boolean;
        --  Typ is the type of the current component, check whether this type is
        --  a limited type. Used to validate declaration against that of
        --  enclosing record.
  
!       procedure Add_Range_Checks (Subt_Indic : Node_Id);
!       --  Adds range constraint checks for a subtype indication
  
        ----------------------
        -- Is_Known_Limited --
*************** package body Sem_Ch3 is
*** 2059,2064 ****
--- 2005,2055 ----
           end if;
        end Is_Known_Limited;
  
+       ----------------------
+       -- Add_Range_Checks --
+       ----------------------
+ 
+       procedure Add_Range_Checks (Subt_Indic : Node_Id)
+       is
+ 
+       begin
+          if Present (Subt_Indic) and then
+            Nkind (Subt_Indic) = N_Subtype_Indication and then
+            Nkind (Constraint (Subt_Indic)) = N_Index_Or_Discriminant_Constraint
+          then
+ 
+             declare
+                Typ : constant Entity_Id := Entity (Subtype_Mark (Subt_Indic));
+                Indic_Typ    : constant Entity_Id := Underlying_Type (Typ);
+                Subt_Index   : Node_Id;
+                Target_Index : Node_Id;
+             begin
+ 
+                if Present (Indic_Typ) and then Is_Array_Type (Indic_Typ) then
+ 
+                   Target_Index := First_Index (Indic_Typ);
+                   Subt_Index := First (Constraints (Constraint (Subt_Indic)));
+ 
+                   while Present (Target_Index) loop
+                      if Nkind (Subt_Index) in N_Expanded_Name | N_Identifier
+                        and then Is_Scalar_Type (Entity (Subt_Index))
+                        and then
+                          Nkind (Scalar_Range (Entity (Subt_Index))) = N_Range
+                      then
+                         Apply_Range_Check
+                            (Expr        => Scalar_Range (Entity (Subt_Index)),
+                             Target_Typ  => Etype (Target_Index),
+                             Insert_Node => Subt_Indic);
+                      end if;
+ 
+                      Next (Subt_Index);
+                      Next_Index (Target_Index);
+                   end loop;
+                end if;
+             end;
+          end if;
+       end Add_Range_Checks;
+ 
     --  Start of processing for Analyze_Component_Declaration
  
     begin
*************** package body Sem_Ch3 is
*** 2174,2179 ****
--- 2165,2171 ----
        --  and thus unconstrained. Regular components must be constrained.
  
        if not Is_Definite_Subtype (T)
+         and then not Is_Mutably_Tagged_Type (T)
          and then Chars (Id) /= Name_uParent
        then
           if Is_Class_Wide_Type (T) then
*************** package body Sem_Ch3 is
*** 2208,2225 ****
        --  The component declaration may have a per-object constraint, set
        --  the appropriate flag in the defining identifier of the subtype.
  
!       if Present (Subtype_Indication (Component_Definition (N))) then
!          declare
!             Sindic : constant Node_Id :=
!                        Subtype_Indication (Component_Definition (N));
!          begin
!             if Nkind (Sindic) = N_Subtype_Indication
!               and then Present (Constraint (Sindic))
!               and then Contains_POC (Constraint (Sindic))
!             then
!                Set_Has_Per_Object_Constraint (Id);
!             end if;
!          end;
        end if;
  
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute and carry
--- 2200,2207 ----
        --  The component declaration may have a per-object constraint, set
        --  the appropriate flag in the defining identifier of the subtype.
  
!       if Has_Discriminant_Dependent_Constraint (Id) then
!          Set_Has_Per_Object_Constraint (Id);
        end if;
  
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute and carry
*************** package body Sem_Ch3 is
*** 2294,2299 ****
--- 2276,2284 ----
        Analyze_Aspect_Specifications (N, Id);
  
        Analyze_Dimension (N);
+ 
+       Add_Range_Checks (Subtype_Indication (Component_Definition (N)));
+ 
     end Analyze_Component_Declaration;
  
     --------------------------
*************** package body Sem_Ch3 is
*** 3479,3492 ****
           Generate_Definition (Def_Id);
        end if;
  
-       --  Propagate any pending access types whose finalization masters need to
-       --  be fully initialized from the partial to the full view. Guard against
-       --  an illegal full view that remains unanalyzed.
- 
-       if Is_Type (Def_Id) and then Is_Incomplete_Or_Private_Type (Prev) then
-          Set_Pending_Access_Types (Def_Id, Pending_Access_Types (Prev));
-       end if;
- 
        if Chars (Scope (Def_Id)) = Name_System
          and then Chars (Def_Id) = Name_Address
          and then In_Predefined_Unit (N)
--- 3464,3469 ----
*************** package body Sem_Ch3 is
*** 3534,3539 ****
--- 3511,3556 ----
        then
           Check_Restriction (No_Local_Tagged_Types, T);
        end if;
+ 
+       --  Derived tagged types inherit aspect First_Controlling_Parameter
+       --  from their parent type and also from implemented interface types.
+       --  We implicitly perform inheritance here and will check for the
+       --  explicit confirming pragma or aspect in the sources when this type
+       --  is frozen (required for pragmas since they are placed at any place
+       --  after the type declaration; otherwise, when the pragma is used after
+       --  some non-first-controlling-parameter primitive, the reported errors
+       --  and warning would differ when the pragma is used).
+ 
+       if Is_Tagged_Type (T)
+         and then Is_Derived_Type (T)
+         and then not Has_First_Controlling_Parameter_Aspect (T)
+       then
+          pragma Assert (Etype (T) /= T);
+ 
+          if Has_First_Controlling_Parameter_Aspect (Etype (T)) then
+             Set_Has_First_Controlling_Parameter_Aspect (T);
+ 
+          elsif Present (Interfaces (T))
+            and then not Is_Empty_Elmt_List (Interfaces (T))
+          then
+             declare
+                Elmt  : Elmt_Id := First_Elmt (Interfaces (T));
+                Iface : Entity_Id;
+ 
+             begin
+                while Present (Elmt) loop
+                   Iface := Node (Elmt);
+ 
+                   if Has_First_Controlling_Parameter_Aspect (Iface) then
+                      Set_Has_First_Controlling_Parameter_Aspect (T);
+                      exit;
+                   end if;
+ 
+                   Next_Elmt (Elmt);
+                end loop;
+             end;
+          end if;
+       end if;
     end Analyze_Full_Type_Declaration;
  
     ----------------------------------
*************** package body Sem_Ch3 is
*** 3578,3585 ****
        --  Initialize the list of primitive operations to an empty list,
        --  to cover tagged types as well as untagged types. For untagged
        --  types this is used either to analyze the call as legal when
!       --  Core_Extensions_Allowed is True, or to issue a better error message
!       --  otherwise.
  
        Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
--- 3595,3601 ----
        --  Initialize the list of primitive operations to an empty list,
        --  to cover tagged types as well as untagged types. For untagged
        --  types this is used either to analyze the call as legal when
!       --  GNAT extensions are allowed, or to give better error messages.
  
        Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
*************** package body Sem_Ch3 is
*** 3825,3830 ****
--- 3841,3852 ----
        --  E is set to Expression (N) throughout this routine. When Expression
        --  (N) is modified, E is changed accordingly.
  
+       procedure Apply_External_Initialization
+         (Specification : N_Aspect_Specification_Id);
+       --  Transform N with the effects of the External_Initialization aspect
+       --  specified by Specification. Note that Specification is removed from
+       --  N's list of aspects.
+ 
        procedure Check_Dynamic_Object (Typ : Entity_Id);
        --  A library-level object with nonstatic discriminant constraints may
        --  require dynamic allocation. The declaration is illegal if the
*************** package body Sem_Ch3 is
*** 3850,3865 ****
        --  or a variant record type is encountered, Check_Restriction is called
        --  indicating the count is unknown.
  
!       function Delayed_Aspect_Present return Boolean;
!       --  If the declaration has an expression that is an aggregate, and it
!       --  has aspects that require delayed analysis, the resolution of the
!       --  aggregate must be deferred to the freeze point of the object. This
!       --  special processing was created for address clauses, but it must
!       --  also apply to address aspects. This must be done before the aspect
!       --  specifications are analyzed because we must handle the aggregate
!       --  before the analysis of the object declaration is complete.
  
!       --  Any other relevant delayed aspects on object declarations ???
  
        --------------------------
        -- Check_Dynamic_Object --
--- 3872,3994 ----
        --  or a variant record type is encountered, Check_Restriction is called
        --  indicating the count is unknown.
  
!       -----------------------------------
!       -- Apply_External_Initialization --
!       -----------------------------------
  
!       procedure Apply_External_Initialization
!         (Specification : N_Aspect_Specification_Id)
!       is
!          Def : constant Node_Id := Expression (Specification);
! 
!          Expr : N_Subexpr_Id;
! 
!          Data_Path : File_Name_Type;
!       begin
!          Remove (Specification);
! 
!          Error_Msg_GNAT_Extension
!            ("External_Initialization aspect", Sloc (Specification));
! 
!          if Present (E) then
!             Error_Msg_N
!               ("initialization expression not allowed for object with aspect "
!                & "External_Initialization", Specification);
!             return;
!          end if;
! 
!          Set_Has_Init_Expression (N);
!          Set_Expression (N, Error);
!          E := Error;
! 
!          case Is_OK_Static_Expression_Of_Type (Def, Standard_String) is
!             when Static =>
!                null;
! 
!             when Not_Static =>
!                Error_Msg_N
!                  ("External_Initialization aspect expects a static string",
!                   Specification);
!                return;
! 
!             when Invalid =>
!                return;
!          end case;
! 
!          if not (Is_String_Type (T)
!                   or else Is_RTE (Base_Type (T), RE_Stream_Element_Array))
!          then
!             Error_Msg_N
!               ("External_Initialization aspect can only be applied to objects "
!                & "of string types or type Ada.Streams.Stream_Element_Array",
!                Specification);
!             return;
!          end if;
! 
!          declare
!             S : constant String :=
!               Stringt.To_String (Strval (Expr_Value_S (Def)));
!          begin
!             if System.OS_Lib.Is_Absolute_Path (S) then
!                Data_Path := Name_Find (S);
!             else
!                declare
!                   Current_File_Name : constant File_Name_Type :=
!                     Unit_File_Name (Current_Sem_Unit);
! 
!                   Current_File_Path : constant File_Name_Type :=
!                     Fmap.Mapped_Path_Name (Current_File_Name);
! 
!                   Current_File_Directory : constant File_Name_Type :=
!                     Osint.Get_Directory (Current_File_Path);
! 
!                   Absolute_Dir : constant String :=
!                     System.OS_Lib.Normalize_Pathname
!                       (Get_Name_String (Current_File_Directory),
!                        Resolve_Links => False);
! 
!                   Data_Path_String : constant String :=
!                     Absolute_Dir
!                     & System.OS_Lib.Directory_Separator
!                     & Stringt.To_String (Strval (Def));
! 
!                begin
!                   Data_Path := Name_Find (Data_Path_String);
!                end;
!             end if;
!          end;
! 
!          begin
!             declare
!                Source_File_I : constant Source_File_Index :=
!                  Sinput.L.Load_Source_File (Data_Path);
!             begin
!                if Source_File_I <= No_Source_File then
!                   Error_Msg_N ("cannot find input file", Specification);
!                   return;
!                end if;
! 
!                Lib.Writ.Add_Preprocessing_Dependency (Source_File_I);
! 
!                Expr :=
!                  Make_External_Initializer
!                    (Sloc (Specification), Source_File_I);
!             end;
!          exception
!             when Constraint_Error =>
!                --  The most likely cause for a constraint error is a file
!                --  whose size does not fit into Integer. We could modify
!                --  Load_Source_File to report that error with a special
!                --  exception???
!                Error_Msg_N
!                  ("External_Initialization file exceeds maximum length",
!                   Specification);
!                return;
!          end;
! 
!          Set_Expression (N, Expr);
!          E := Expr;
!       end Apply_External_Initialization;
  
        --------------------------
        -- Check_Dynamic_Object --
*************** package body Sem_Ch3 is
*** 4129,4134 ****
--- 4258,4288 ----
                 if not Subtypes_Statically_Match (Obj_Typ, R_Typ) then
                    Error_No_Match (Indic);
                 end if;
+ 
+             --  If the result subtype of the function is defined by a
+             --  subtype_mark, the return_subtype_indication shall be a
+             --  subtype_indication. The subtype defined by the subtype_
+             --  indication shall be statically compatible with the result
+             --  subtype of the function (RM 6.5(5.3/5)).
+ 
+             --  We exclude the extended return statement of the predefined
+             --  stream input to avoid reporting spurious errors, because its
+             --  code is expanded on the basis of the base type (see subprogram
+             --  Stream_Base_Type).
+ 
+             elsif Nkind (Indic) = N_Subtype_Indication
+               and then not Subtypes_Statically_Compatible (Obj_Typ, R_Typ)
+               and then not Is_TSS (Func_Id, TSS_Stream_Input)
+             then
+                Error_Msg_N
+                  ("result subtype must be statically compatible with the " &
+                   "function result type", Indic);
+ 
+                if not Predicates_Compatible (Obj_Typ, R_Typ) then
+                   Error_Msg_NE
+                     ("\predicate on result subtype is not compatible with &",
+                      Indic, R_Typ);
+                end if;
              end if;
  
           --  All remaining cases are illegal
*************** package body Sem_Ch3 is
*** 4197,4233 ****
           end if;
        end Count_Tasks;
  
-       ----------------------------
-       -- Delayed_Aspect_Present --
-       ----------------------------
- 
-       function Delayed_Aspect_Present return Boolean is
-          A    : Node_Id;
-          A_Id : Aspect_Id;
- 
-       begin
-          if Present (Aspect_Specifications (N)) then
-             A := First (Aspect_Specifications (N));
- 
-             while Present (A) loop
-                A_Id := Get_Aspect_Id (Chars (Identifier (A)));
- 
-                if A_Id = Aspect_Address then
- 
-                   --  Set flag on object entity, for later processing at
-                   --  the freeze point.
- 
-                   Set_Has_Delayed_Aspects (Id);
-                   return True;
-                end if;
- 
-                Next (A);
-             end loop;
-          end if;
- 
-          return False;
-       end Delayed_Aspect_Present;
- 
        --  Local variables
  
        Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
--- 4351,4356 ----
*************** package body Sem_Ch3 is
*** 4350,4355 ****
--- 4473,4487 ----
           end if;
        end if;
  
+       declare
+          S : constant Opt_N_Aspect_Specification_Id :=
+            Find_Aspect (Id, Aspect_External_Initialization);
+       begin
+          if Present (S) then
+             Apply_External_Initialization (S);
+          end if;
+       end;
+ 
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute and carry
        --  out some static checks.
  
*************** package body Sem_Ch3 is
*** 4443,4449 ****
             and then Is_Itype (T)
           then
              Set_Has_Delayed_Freeze (T);
!          elsif not In_Spec_Expression then
              Freeze_Before (N, T);
           end if;
        end if;
--- 4575,4582 ----
             and then Is_Itype (T)
           then
              Set_Has_Delayed_Freeze (T);
! 
!          elsif not Preanalysis_Active then
              Freeze_Before (N, T);
           end if;
        end if;
*************** package body Sem_Ch3 is
*** 4531,4585 ****
  
           Set_Etype (Id, T);
  
!          --  If the expression is an aggregate we must look ahead to detect
!          --  the possible presence of an address clause, and defer resolution
!          --  and expansion of the aggregate to the freeze point of the entity.
! 
!          --  This is not always legal because the aggregate may contain other
!          --  references that need freezing, e.g. references to other entities
!          --  with address clauses. In any case, when compiling with -gnatI the
!          --  presence of the address clause must be ignored.
  
!          if Comes_From_Source (N)
!            and then Expander_Active
!            and then Nkind (E) = N_Aggregate
             and then
!              ((Present (Following_Address_Clause (N))
!                  and then not Ignore_Rep_Clauses)
!               or else Delayed_Aspect_Present)
           then
!             Set_Etype (E, T);
! 
!             --  If the aggregate is limited it will be built in place, and its
!             --  expansion is deferred until the object declaration is expanded.
! 
!             --  This is also required when generating C code to ensure that an
!             --  object with an alignment or address clause can be initialized
!             --  by means of component by component assignments.
! 
!             if Is_Limited_Type (T) or else Modify_Tree_For_C then
!                Set_Expansion_Delayed (E);
!             end if;
! 
!          else
!             --  If the expression is a formal that is a "subprogram pointer"
!             --  this is illegal in accessibility terms (see RM 3.10.2 (13.1/2)
!             --  and AARM 3.10.2 (13.b/2)). Add an explicit conversion to force
!             --  the corresponding check, as is done for assignments.
! 
!             if Is_Entity_Name (E)
!               and then Present (Entity (E))
!               and then Is_Formal (Entity (E))
!               and then
!                 Ekind (Etype (Entity (E))) = E_Anonymous_Access_Subprogram_Type
!               and then Ekind (T) /= E_Anonymous_Access_Subprogram_Type
!             then
!                Rewrite (E, Convert_To (T, Relocate_Node (E)));
!             end if;
! 
!             Resolve (E, T);
           end if;
  
           --  No further action needed if E is a call to an inlined function
           --  which returns an unconstrained type and it has been expanded into
           --  a procedure call. In that case N has been replaced by an object
--- 4664,4686 ----
  
           Set_Etype (Id, T);
  
!          --  If the expression is a formal that is a "subprogram pointer"
!          --  this is illegal in accessibility terms (see RM 3.10.2 (13.1/2)
!          --  and AARM 3.10.2 (13.b/2)). Add an explicit conversion to force
!          --  the corresponding check, as is done for assignments.
  
!          if Is_Entity_Name (E)
!            and then Present (Entity (E))
!            and then Is_Formal (Entity (E))
             and then
!              Ekind (Etype (Entity (E))) = E_Anonymous_Access_Subprogram_Type
!            and then Ekind (T) /= E_Anonymous_Access_Subprogram_Type
           then
!             Rewrite (E, Convert_To (T, Relocate_Node (E)));
           end if;
  
+          Resolve (E, T);
+ 
           --  No further action needed if E is a call to an inlined function
           --  which returns an unconstrained type and it has been expanded into
           --  a procedure call. In that case N has been replaced by an object
*************** package body Sem_Ch3 is
*** 4589,4599 ****
           if Back_End_Inlining
             and then Expander_Active
             and then Nkind (E) = N_Function_Call
!            and then Nkind (Name (E)) in N_Has_Entity
             and then Is_Inlined (Entity (Name (E)))
             and then not Is_Constrained (Etype (E))
-            and then Analyzed (N)
             and then No (Expression (N))
           then
              goto Leave;
           end if;
--- 4690,4711 ----
           if Back_End_Inlining
             and then Expander_Active
             and then Nkind (E) = N_Function_Call
!            and then Is_Entity_Name (Name (E))
             and then Is_Inlined (Entity (Name (E)))
             and then not Is_Constrained (Etype (E))
             and then No (Expression (N))
+            and then Analyzed (N)
+          then
+             goto Leave;
+          end if;
+ 
+          --  No further action needed if E is a conditional expression and N
+          --  has been replaced by a renaming declaration during its expansion
+          --  (see Expand_N_Case_Expression and Expand_N_If_Expression).
+ 
+          if Expander_Active
+            and then Nkind (E) in N_Case_Expression | N_If_Expression
+            and then Nkind (N) = N_Object_Renaming_Declaration
           then
              goto Leave;
           end if;
*************** package body Sem_Ch3 is
*** 4806,4813 ****
                 null;
  
              elsif Is_Class_Wide_Type (T) then
!                Error_Msg_N
!                  ("initialization required in class-wide declaration", N);
  
              else
                 Error_Msg_N
--- 4918,4947 ----
                 null;
  
              elsif Is_Class_Wide_Type (T) then
! 
!                --  Case of a mutably tagged type
! 
!                if Is_Mutably_Tagged_Type (T) then
!                   Act_T := Class_Wide_Equivalent_Type (T);
! 
!                   Rewrite (Object_Definition (N),
!                     New_Occurrence_Of (Act_T, Loc));
! 
!                   Insert_After (N,
!                     Make_Procedure_Call_Statement (Loc,
!                       Name => New_Occurrence_Of (Init_Proc (Etype (T)), Loc),
!                       Parameter_Associations => New_List (
!                         Unchecked_Convert_To
!                           (Etype (T), New_Occurrence_Of (Id, Loc)))));
! 
!                   Freeze_Before (N, Act_T);
! 
!                --  Otherwise an initial expression is required
! 
!                else
!                   Error_Msg_N
!                     ("initialization required in class-wide declaration", N);
!                end if;
  
              else
                 Error_Msg_N
*************** package body Sem_Ch3 is
*** 4830,4841 ****
                 end if;
              end if;
  
!          --  Case of initialization present but in error. Set initial
!          --  expression as absent (but do not make above complaints).
  
           elsif E = Error then
!             Set_Expression (N, Empty);
!             E := Empty;
  
           --  Case of initialization present
  
--- 4964,4973 ----
                 end if;
              end if;
  
!          --  Case of initialization present but in error
  
           elsif E = Error then
!             null;
  
           --  Case of initialization present
  
*************** package body Sem_Ch3 is
*** 4904,4909 ****
--- 5036,5052 ----
                    goto Leave;
                 end if;
  
+             --  Rewrite mutably tagged class-wide type declarations to be that
+             --  of the corresponding class-wide equivalent type.
+ 
+             elsif Is_Mutably_Tagged_Type (T) then
+                Act_T := Class_Wide_Equivalent_Type (T);
+ 
+                Rewrite (Object_Definition (N),
+                  New_Occurrence_Of (Act_T, Loc));
+ 
+                Freeze_Before (N, Act_T);
+ 
              else
                 --  Ensure that the generated subtype has a unique external name
                 --  when the related object is public. This guarantees that the
*************** package body Sem_Ch3 is
*** 5050,5067 ****
           Rewrite (Object_Definition (N), New_Occurrence_Of (Act_T, Loc));
           Freeze_Before (N, Act_T);
  
-       elsif Nkind (E) = N_Function_Call
-         and then Constant_Present (N)
-         and then Has_Unconstrained_Elements (Etype (E))
-       then
-          --  The back-end has problems with constants of a discriminated type
-          --  with defaults, if the initial value is a function call. We
-          --  generate an intermediate temporary that will receive a reference
-          --  to the result of the call. The initialization expression then
-          --  becomes a dereference of that temporary.
- 
-          Remove_Side_Effects (E);
- 
        --  If this is a constant declaration of an unconstrained type and
        --  the initialization is an aggregate, we can use the subtype of the
        --  aggregate for the declared entity because it is immutable.
--- 5193,5198 ----
*************** package body Sem_Ch3 is
*** 5198,5203 ****
--- 5329,5345 ----
           else
              Validate_Controlled_Object (Id);
           end if;
+ 
+          --  If the type of a constrained array has an unconstrained first
+          --  subtype, its Finalize_Address primitive expects the address of
+          --  an object with a dope vector (see Make_Finalize_Address_Stmts).
+ 
+          if Is_Array_Type (Etype (Id))
+            and then Is_Constrained (Etype (Id))
+            and then not Is_Constrained (First_Subtype (Etype (Id)))
+          then
+             Set_Is_Constr_Array_Subt_With_Bounds (Etype (Id));
+          end if;
        end if;
  
        if Has_Task (Etype (Id)) then
*************** package body Sem_Ch3 is
*** 5239,5246 ****
                 E := First_Entity (Etype (Id));
                 while Present (E) loop
                    if Ekind (E) = E_Entry
!                     and then Present (Get_Attribute_Definition_Clause
!                                         (E, Attribute_Address))
                    then
                       Error_Msg_Warn := SPARK_Mode /= On;
                       Error_Msg_N
--- 5381,5387 ----
                 E := First_Entity (Etype (Id));
                 while Present (E) loop
                    if Ekind (E) = E_Entry
!                     and then Present (Address_Clause (E))
                    then
                       Error_Msg_Warn := SPARK_Mode /= On;
                       Error_Msg_N
*************** package body Sem_Ch3 is
*** 5444,5453 ****
        Reinit_Size_Align    (T);
        Set_Default_SSO      (T);
        Set_No_Reordering    (T, No_Component_Reordering);
! 
!       Set_Etype            (T,                Parent_Base);
!       Propagate_Concurrent_Flags (T, Parent_Base);
! 
        Set_Convention       (T, Convention     (Parent_Type));
        Set_First_Rep_Item   (T, First_Rep_Item (Parent_Type));
        Set_Is_First_Subtype (T);
--- 5585,5591 ----
        Reinit_Size_Align    (T);
        Set_Default_SSO      (T);
        Set_No_Reordering    (T, No_Component_Reordering);
!       Set_Etype            (T, Parent_Base);
        Set_Convention       (T, Convention     (Parent_Type));
        Set_First_Rep_Item   (T, First_Rep_Item (Parent_Type));
        Set_Is_First_Subtype (T);
*************** package body Sem_Ch3 is
*** 5825,5832 ****
                    Set_No_Tagged_Streams_Pragma
                                          (Id, No_Tagged_Streams_Pragma (T));
                    Set_Is_Abstract_Type  (Id, Is_Abstract_Type (T));
-                   Set_Direct_Primitive_Operations
-                                         (Id, Direct_Primitive_Operations (T));
                    Set_Class_Wide_Type   (Id, Class_Wide_Type (T));
  
                    if Is_Interface (T) then
--- 5963,5968 ----
*************** package body Sem_Ch3 is
*** 5856,5863 ****
                      No_Tagged_Streams_Pragma (T));
                    Set_Is_Abstract_Type            (Id, Is_Abstract_Type (T));
                    Set_Class_Wide_Type             (Id, Class_Wide_Type  (T));
-                   Set_Direct_Primitive_Operations (Id,
-                     Direct_Primitive_Operations (T));
                 end if;
  
                 --  In general the attributes of the subtype of a private type
--- 5992,5997 ----
*************** package body Sem_Ch3 is
*** 5961,5976 ****
                         (Id, No_Tagged_Streams_Pragma (T));
                    end if;
  
-                   --  For tagged types, or when prefixed-call syntax is allowed
-                   --  for untagged types, initialize the list of primitive
-                   --  operations to an empty list.
- 
-                   if Is_Tagged_Type (Id)
-                     or else Core_Extensions_Allowed
-                   then
-                      Set_Direct_Primitive_Operations (Id, New_Elmt_List);
-                   end if;
- 
                    --  Ada 2005 (AI-412): Decorate an incomplete subtype of an
                    --  incomplete type visible through a limited with clause.
  
--- 6095,6100 ----
*************** package body Sem_Ch3 is
*** 6011,6017 ****
  
        --  When prefixed calls are enabled for untagged types, the subtype
        --  shares the primitive operations of its base type. Do this even
!       --  when Extensions_Allowed is False to issue better error messages.
  
        Set_Direct_Primitive_Operations
          (Id, Direct_Primitive_Operations (Base_Type (T)));
--- 6135,6142 ----
  
        --  When prefixed calls are enabled for untagged types, the subtype
        --  shares the primitive operations of its base type. Do this even
!       --  when GNAT extensions are not allowed, in order to give better
!       --  error messages.
  
        Set_Direct_Primitive_Operations
          (Id, Direct_Primitive_Operations (Base_Type (T)));
*************** package body Sem_Ch3 is
*** 6488,6499 ****
                              N           => Access_Definition (Component_Def));
           Set_Is_Local_Anonymous_Access (Element_Type);
  
-          --  Propagate the parent. This field is needed if we have to generate
-          --  the master_id associated with an anonymous access to task type
-          --  component (see Expand_N_Full_Type_Declaration.Build_Master)
- 
-          Copy_Parent (To => Element_Type, From => T);
- 
           --  Ada 2005 (AI-230): In case of components that are anonymous access
           --  types the level of accessibility depends on the enclosing type
           --  declaration
--- 6613,6618 ----
*************** package body Sem_Ch3 is
*** 6526,6539 ****
        end if;
  
        if Nkind (Def) = N_Constrained_Array_Definition then
           --  Establish Implicit_Base as unconstrained base type
  
           Implicit_Base := Create_Itype (E_Array_Type, P, Related_Id, 'B');
  
           Set_Etype              (Implicit_Base, Implicit_Base);
           Set_Scope              (Implicit_Base, Current_Scope);
           Set_Has_Delayed_Freeze (Implicit_Base);
-          Set_Default_SSO        (Implicit_Base);
  
           --  The constrained array type is a subtype of the unconstrained one
  
--- 6645,6660 ----
        end if;
  
        if Nkind (Def) = N_Constrained_Array_Definition then
+          Index := First (Discrete_Subtype_Definitions (Def));
+ 
           --  Establish Implicit_Base as unconstrained base type
  
           Implicit_Base := Create_Itype (E_Array_Type, P, Related_Id, 'B');
  
           Set_Etype              (Implicit_Base, Implicit_Base);
           Set_Scope              (Implicit_Base, Current_Scope);
+          Set_First_Index        (Implicit_Base, Index);
           Set_Has_Delayed_Freeze (Implicit_Base);
  
           --  The constrained array type is a subtype of the unconstrained one
  
*************** package body Sem_Ch3 is
*** 6541,6567 ****
           Reinit_Size_Align      (T);
           Set_Etype              (T, Implicit_Base);
           Set_Scope              (T, Current_Scope);
!          Set_Is_Constrained     (T);
!          Set_First_Index        (T,
!            First (Discrete_Subtype_Definitions (Def)));
           Set_Has_Delayed_Freeze (T);
! 
!          --  Complete setup of implicit base type
! 
!          pragma Assert (not Known_Component_Size (Implicit_Base));
!          Set_Component_Type (Implicit_Base, Element_Type);
!          Set_Finalize_Storage_Only
!                             (Implicit_Base,
!                               Finalize_Storage_Only (Element_Type));
!          Set_First_Index    (Implicit_Base, First_Index (T));
!          Set_Has_Controlled_Component
!                             (Implicit_Base,
!                               Has_Controlled_Component (Element_Type)
!                                 or else Is_Controlled (Element_Type));
!          Set_Packed_Array_Impl_Type
!                             (Implicit_Base, Empty);
! 
!          Propagate_Concurrent_Flags (Implicit_Base, Element_Type);
  
        --  Unconstrained array case
  
--- 6662,6670 ----
           Reinit_Size_Align      (T);
           Set_Etype              (T, Implicit_Base);
           Set_Scope              (T, Current_Scope);
!          Set_First_Index        (T, Index);
           Set_Has_Delayed_Freeze (T);
!          Set_Is_Constrained     (T);
  
        --  Unconstrained array case
  
*************** package body Sem_Ch3 is
*** 6570,6595 ****
           Reinit_Size_Align            (T);
           Set_Etype                    (T, T);
           Set_Scope                    (T, Current_Scope);
!          pragma Assert (not Known_Component_Size (T));
!          Set_Is_Constrained           (T, False);
           Set_Is_Fixed_Lower_Bound_Array_Subtype
                                        (T, Has_FLB_Index);
-          Set_First_Index              (T, First (Subtype_Marks (Def)));
-          Set_Has_Delayed_Freeze       (T, True);
-          Propagate_Concurrent_Flags   (T, Element_Type);
-          Set_Has_Controlled_Component (T, Has_Controlled_Component
-                                                         (Element_Type)
-                                             or else
-                                           Is_Controlled (Element_Type));
-          Set_Finalize_Storage_Only    (T, Finalize_Storage_Only
-                                                         (Element_Type));
-          Set_Default_SSO              (T);
        end if;
  
        --  Common attributes for both cases
  
!       Set_Component_Type (Base_Type (T), Element_Type);
!       Set_Packed_Array_Impl_Type (T, Empty);
  
        if Aliased_Present (Component_Definition (Def)) then
           Set_Has_Aliased_Components (Etype (T));
--- 6673,6687 ----
           Reinit_Size_Align            (T);
           Set_Etype                    (T, T);
           Set_Scope                    (T, Current_Scope);
!          Set_First_Index              (T, First (Subtype_Marks (Def)));
!          Set_Has_Delayed_Freeze       (T);
           Set_Is_Fixed_Lower_Bound_Array_Subtype
                                        (T, Has_FLB_Index);
        end if;
  
        --  Common attributes for both cases
  
!       Set_Component_Type (Etype (T), Element_Type);
  
        if Aliased_Present (Component_Definition (Def)) then
           Set_Has_Aliased_Components (Etype (T));
*************** package body Sem_Ch3 is
*** 6600,6605 ****
--- 6692,6704 ----
           Set_Has_Independent_Components (Etype (T));
        end if;
  
+       pragma Assert (not Known_Component_Size (Etype (T)));
+ 
+       Propagate_Concurrent_Flags (Etype (T), Element_Type);
+       Propagate_Controlled_Flags (Etype (T), Element_Type, Comp => True);
+ 
+       Set_Default_SSO (Etype (T));
+ 
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute to the
        --  array type to ensure that objects of this type are initialized.
  
*************** package body Sem_Ch3 is
*** 6673,6679 ****
        --  that all the indexes are unconstrained but we still need to make sure
        --  that the element type is constrained.
  
!       if not Is_Definite_Subtype (Element_Type) then
           Error_Msg_N
             ("unconstrained element type in array declaration",
              Subtype_Indication (Component_Def));
--- 6772,6782 ----
        --  that all the indexes are unconstrained but we still need to make sure
        --  that the element type is constrained.
  
!       if Is_Mutably_Tagged_Type (Element_Type) then
!          Set_Component_Type (T,
!            Class_Wide_Equivalent_Type (Element_Type));
! 
!       elsif not Is_Definite_Subtype (Element_Type) then
           Error_Msg_N
             ("unconstrained element type in array declaration",
              Subtype_Indication (Component_Def));
*************** package body Sem_Ch3 is
*** 6851,6869 ****
     -------------------------------------
  
     procedure Build_Access_Subprogram_Wrapper (Decl : Node_Id) is
-       Loc      : constant Source_Ptr := Sloc (Decl);
        Id       : constant Entity_Id  := Defining_Identifier (Decl);
        Type_Def : constant Node_Id    := Type_Definition (Decl);
!       Specs   :  constant List_Id    :=
!                               Parameter_Specifications (Type_Def);
!       Profile : constant List_Id     := New_List;
!       Subp    : constant Entity_Id   := Make_Temporary (Loc, 'A');
  
!       Contracts : constant List_Id := New_List;
!       Form_P    : Node_Id;
!       New_P     : Node_Id;
!       New_Decl  : Node_Id;
!       Spec      : Node_Id;
  
        procedure Replace_Type_Name (Expr : Node_Id);
        --  In the expressions for contract aspects, replace occurrences of the
--- 6954,7031 ----
     -------------------------------------
  
     procedure Build_Access_Subprogram_Wrapper (Decl : Node_Id) is
        Id       : constant Entity_Id  := Defining_Identifier (Decl);
+       Loc      : constant Source_Ptr := Sloc (Decl);
+       Subp     : constant Entity_Id  := Make_Temporary (Loc, 'A');
        Type_Def : constant Node_Id    := Type_Definition (Decl);
!       Specs    : constant List_Id    := Parameter_Specifications (Type_Def);
  
!       function Build_Access_Subprogram_Wrapper_Declaration return Node_Id;
!       --  Build the declaration and the specification of the wrapper
! 
!       -------------------------------------------------
!       -- Build_Access_Subprogram_Wrapper_Declaration --
!       -------------------------------------------------
! 
!       function Build_Access_Subprogram_Wrapper_Declaration return Node_Id is
!          Form_P   : Node_Id;
!          New_Decl : Node_Id;
!          New_P    : Node_Id;
!          Profile  : constant List_Id := New_List;
!          Spec     : Node_Id;
! 
!       begin
!          Form_P := First (Specs);
! 
!          while Present (Form_P) loop
!             New_P := New_Copy_Tree (Form_P);
!             Set_Defining_Identifier (New_P,
!               Make_Defining_Identifier
!                (Loc, Chars (Defining_Identifier (Form_P))));
!             Append (New_P, Profile);
!             Next (Form_P);
!          end loop;
! 
!          --  Add to parameter specifications the access parameter that is
!          --  passed in from an indirect call.
! 
!          Append (
!             Make_Parameter_Specification (Loc,
!               Defining_Identifier => Make_Temporary (Loc, 'P'),
!               Parameter_Type      => New_Occurrence_Of (Id, Loc)),
!             Profile);
! 
!          if Nkind (Type_Def) = N_Access_Procedure_Definition then
!             Spec :=
!               Make_Procedure_Specification (Loc,
!                 Defining_Unit_Name       => Subp,
!                 Parameter_Specifications => Profile);
!             Mutate_Ekind (Subp, E_Procedure);
!          else
!             Spec :=
!               Make_Function_Specification (Loc,
!                 Defining_Unit_Name       => Subp,
!                 Parameter_Specifications => Profile,
!                 Result_Definition        =>
!                   New_Copy_Tree (Result_Definition (Type_Def)));
!             Mutate_Ekind (Subp, E_Function);
!          end if;
! 
!          New_Decl :=
!            Make_Subprogram_Declaration (Loc, Specification => Spec);
! 
!          Set_Is_Wrapper (Subp);
! 
!          --  The wrapper is declared in the freezing actions to facilitate its
!          --  identification and thus avoid handling it as a primitive operation
!          --  of a tagged type (see Is_Access_To_Subprogram_Wrapper); otherwise
!          --  it may be handled as a dispatching operation and erroneously
!          --  registered in a dispatch table.
! 
!          Append_Freeze_Action (Id, New_Decl);
! 
!          return New_Decl;
!       end Build_Access_Subprogram_Wrapper_Declaration;
  
        procedure Replace_Type_Name (Expr : Node_Id);
        --  In the expressions for contract aspects, replace occurrences of the
*************** package body Sem_Ch3 is
*** 6895,6900 ****
--- 7057,7073 ----
           Traverse (Expr);
        end Replace_Type_Name;
  
+       --  Local variables
+ 
+       Has_Wrapper  : constant Boolean :=
+                        Present
+                          (Access_Subprogram_Wrapper (Designated_Type (Id)));
+       Contracts    : List_Id := No_List;
+       Wrapper_Decl : Node_Id;
+       Pragmas      : List_Id := No_List;
+ 
+    --  Start of processing for Build_Access_Subprogram_Wrapper
+ 
     begin
        if Ekind (Id) in E_Access_Subprogram_Type
                       | E_Access_Protected_Subprogram_Type
*************** package body Sem_Ch3 is
*** 6909,6988 ****
           return;
        end if;
  
!       declare
!          Asp  : Node_Id;
!          A_Id : Aspect_Id;
  
!       begin
!          Asp := First (Aspect_Specifications (Decl));
!          while Present (Asp) loop
!             A_Id := Get_Aspect_Id (Chars (Identifier (Asp)));
!             if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!                Append (New_Copy_Tree (Asp), Contracts);
!                Replace_Type_Name (Expression (Last (Contracts)));
!             end if;
!             Next (Asp);
!          end loop;
!       end;
  
!       --  If there are no contract aspects, no need for a wrapper.
  
!       if Is_Empty_List (Contracts) then
!          return;
!       end if;
  
!       Form_P := First (Specs);
  
!       while Present (Form_P) loop
!          New_P := New_Copy_Tree (Form_P);
!          Set_Defining_Identifier (New_P,
!            Make_Defining_Identifier
!             (Loc, Chars (Defining_Identifier (Form_P))));
!          Append (New_P, Profile);
!          Next (Form_P);
!       end loop;
  
!       --  Add to parameter specifications the access parameter that is passed
!       --  in from an indirect call.
  
!       Append (
!          Make_Parameter_Specification (Loc,
!            Defining_Identifier => Make_Temporary (Loc, 'P'),
!            Parameter_Type      => New_Occurrence_Of (Id, Loc)),
!          Profile);
  
-       if Nkind (Type_Def) = N_Access_Procedure_Definition then
-          Spec :=
-            Make_Procedure_Specification (Loc,
-              Defining_Unit_Name       => Subp,
-              Parameter_Specifications => Profile);
-          Mutate_Ekind (Subp, E_Procedure);
        else
!          Spec :=
!            Make_Function_Specification (Loc,
!              Defining_Unit_Name       => Subp,
!              Parameter_Specifications => Profile,
!              Result_Definition        =>
!                New_Copy_Tree
!                  (Result_Definition (Type_Definition (Decl))));
!          Mutate_Ekind (Subp, E_Function);
!       end if;
  
!       New_Decl :=
!         Make_Subprogram_Declaration (Loc, Specification => Spec);
!       Set_Aspect_Specifications (New_Decl, Contracts);
!       Set_Is_Wrapper (Subp);
  
!       --  The wrapper is declared in the freezing actions to facilitate its
!       --  identification and thus avoid handling it as a primitive operation
!       --  of a tagged type (see Is_Access_To_Subprogram_Wrapper); otherwise it
!       --  may be handled as a dispatching operation and erroneously registered
!       --  in a dispatch table.
  
!       Append_Freeze_Action (Id, New_Decl);
  
!       Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
!       Build_Access_Subprogram_Wrapper_Body (Decl, New_Decl);
     end Build_Access_Subprogram_Wrapper;
  
     -------------------------------
--- 7082,7192 ----
           return;
        end if;
  
!       --  Current state: We are processing the full-type declaration of
!       --  this access-to-subprogram type. Collect its pre/postconditions
!       --  and replace occurrences of the access type with the name of the
!       --  subprogram entity.
  
!       if not Is_Frozen (Id) then
!          if Present (Aspect_Specifications (Decl)) then
!             declare
!                Asp          : Node_Id;
!                A_Id         : Aspect_Id;
!                New_Contract : Node_Id;
  
!             begin
!                Asp := First (Aspect_Specifications (Decl));
!                while Present (Asp) loop
!                   A_Id := Get_Aspect_Id (Chars (Identifier (Asp)));
  
!                   if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!                      New_Contract := New_Copy_Tree (Asp);
!                      Append_New (New_Contract, Contracts);
!                      Replace_Type_Name (Expression (New_Contract));
!                   end if;
  
!                   Next (Asp);
!                end loop;
!             end;
!          end if;
  
!          --  No wrapper is needed if there are no contract aspects
  
!          if Is_Empty_List (Contracts) then
!             return;
!          end if;
  
!          --  Build the wrapper declaration, propagate the aspects, and link
!          --  the wrapper with its access-type declaration.
! 
!          Wrapper_Decl := Build_Access_Subprogram_Wrapper_Declaration;
!          Set_Aspect_Specifications (Wrapper_Decl, Contracts);
!          Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
! 
!          --  Build the body of this wrapper
! 
!          Build_Access_Subprogram_Wrapper_Body (Decl, Wrapper_Decl);
! 
!       --  Current status: We are freezing the access-to-subprogram type entity.
!       --  Collect its pragmas pre/postconditions that come from the sources,
!       --  and replace occurrences of the access type with the name of the
!       --  subprogram entity.
  
        else
!          if Present (Contract (Designated_Type (Id))) then
!             declare
!                Prag       : Node_Id;
!                New_Pragma : Node_Id;
  
!             begin
!                Prag := Pre_Post_Conditions (Contract (Designated_Type (Id)));
  
!                while Present (Prag) loop
!                   if Comes_From_Source (Prag) then
!                      New_Pragma := New_Copy_Tree (Prag);
!                      Append_New (New_Pragma, Pragmas);
!                      Replace_Type_Name
!                        (First (Pragma_Argument_Associations (New_Pragma)));
  
!                      --  Force reanalyzing the copy since it will be applied to
!                      --  the wrapper.
  
!                      Set_Analyzed (New_Pragma, False);
!                   end if;
! 
!                   Prag := Next_Pragma (Prag);
!                end loop;
!             end;
! 
!             --  No wrapper is needed if there are no pre/postcondition pragmas
! 
!             if Is_Empty_List (Pragmas) then
!                return;
!             end if;
! 
!             --  Build the wrapper, if not previously done, and propagate the
!             --  pragmas to the wrapper spec. The access-to-subprogram type
!             --  declaration might have a precondition aspect and a
!             --  postcondition pragma, or vice versa. In such cases,
!             --  Build_Access_Subprogram_Wrapper is called twice: (1) when
!             --  processing the full-type declaration (building the wrapper
!             --  with the aspect), and (2) when freezing the type (adding the
!             --  pragmas after the spec of the wrapper).
! 
!             if not Has_Wrapper then
!                Wrapper_Decl := Build_Access_Subprogram_Wrapper_Declaration;
!                Insert_List_After (Wrapper_Decl, Pragmas);
! 
!                Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
!                Build_Access_Subprogram_Wrapper_Body (Decl, Wrapper_Decl);
!             else
!                Wrapper_Decl :=
!                  Parent
!                    (Parent (Access_Subprogram_Wrapper (Designated_Type (Id))));
!                Insert_List_After (Wrapper_Decl, Pragmas);
!             end if;
!          end if;
!       end if;
     end Build_Access_Subprogram_Wrapper;
  
     -------------------------------
*************** package body Sem_Ch3 is
*** 8439,8446 ****
              --  Initialize the list of primitive operations to an empty list,
              --  to cover tagged types as well as untagged types. For untagged
              --  types this is used either to analyze the call as legal when
!             --  Extensions_Allowed is True, or to issue a better error message
!             --  otherwise.
  
              Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
--- 8643,8649 ----
              --  Initialize the list of primitive operations to an empty list,
              --  to cover tagged types as well as untagged types. For untagged
              --  types this is used either to analyze the call as legal when
!             --  GNAT extensions are allowed, or to give better error messages.
  
              Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
*************** package body Sem_Ch3 is
*** 8471,8492 ****
           Set_Stored_Constraint (Derived_Type, No_Elist);
           Set_Is_Constrained    (Derived_Type, Is_Constrained (Parent_Type));
  
-          Set_Is_Controlled_Active
-            (Derived_Type, Is_Controlled_Active     (Parent_Type));
- 
-          Set_Disable_Controlled
-            (Derived_Type, Disable_Controlled       (Parent_Type));
- 
-          Set_Has_Controlled_Component
-            (Derived_Type, Has_Controlled_Component (Parent_Type));
- 
-          --  Direct controlled types do not inherit Finalize_Storage_Only flag
- 
-          if not Is_Controlled (Parent_Type) then
-             Set_Finalize_Storage_Only
-               (Base_Type (Derived_Type), Finalize_Storage_Only (Parent_Type));
-          end if;
- 
           --  If this is not a completion, construct the implicit full view by
           --  deriving from the full view of the parent type. But if this is a
           --  completion, the derived private type being built is a full view
--- 8674,8679 ----
*************** package body Sem_Ch3 is
*** 9803,9810 ****
  
        --  Fields inherited from the Parent_Base
  
!       Set_Has_Controlled_Component
!         (Derived_Type, Has_Controlled_Component (Parent_Base));
        Set_Has_Non_Standard_Rep
          (Derived_Type, Has_Non_Standard_Rep     (Parent_Base));
        Set_Has_Primitive_Operations
--- 9990,9998 ----
  
        --  Fields inherited from the Parent_Base
  
!       Propagate_Concurrent_Flags (Derived_Type, Parent_Base);
!       Propagate_Controlled_Flags (Derived_Type, Parent_Base, Deriv => True);
! 
        Set_Has_Non_Standard_Rep
          (Derived_Type, Has_Non_Standard_Rep     (Parent_Base));
        Set_Has_Primitive_Operations
*************** package body Sem_Ch3 is
*** 9854,9879 ****
        --  Initialize the list of primitive operations to an empty list,
        --  to cover tagged types as well as untagged types. For untagged
        --  types this is used either to analyze the call as legal when
!       --  Extensions_Allowed is True, or to issue a better error message
!       --  otherwise.
  
        Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
        --  Set fields for tagged types
  
        if Is_Tagged then
-          --  All tagged types defined in Ada.Finalization are controlled
- 
-          if Chars (Scope (Derived_Type)) = Name_Finalization
-            and then Chars (Scope (Scope (Derived_Type))) = Name_Ada
-            and then Scope (Scope (Scope (Derived_Type))) = Standard_Standard
-          then
-             Set_Is_Controlled_Active (Derived_Type);
-          else
-             Set_Is_Controlled_Active
-               (Derived_Type, Is_Controlled_Active (Parent_Base));
-          end if;
- 
           --  Minor optimization: there is no need to generate the class-wide
           --  entity associated with an underlying record view.
  
--- 10042,10054 ----
        --  Initialize the list of primitive operations to an empty list,
        --  to cover tagged types as well as untagged types. For untagged
        --  types this is used either to analyze the call as legal when
!       --  GNAT extensions are allowed, or to give better error messages.
  
        Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
        --  Set fields for tagged types
  
        if Is_Tagged then
           --  Minor optimization: there is no need to generate the class-wide
           --  entity associated with an underlying record view.
  
*************** package body Sem_Ch3 is
*** 10149,10165 ****
        Set_Scope                  (Derived_Type, Current_Scope);
        Set_Etype                  (Derived_Type,        Parent_Base);
        Mutate_Ekind               (Derived_Type, Ekind (Parent_Base));
!       Propagate_Concurrent_Flags (Derived_Type,        Parent_Base);
  
        Set_Size_Info (Derived_Type, Parent_Type);
        Copy_RM_Size (To => Derived_Type, From => Parent_Type);
  
!       Set_Is_Controlled_Active
!         (Derived_Type, Is_Controlled_Active (Parent_Type));
! 
!       Set_Disable_Controlled (Derived_Type, Disable_Controlled (Parent_Type));
!       Set_Is_Tagged_Type     (Derived_Type, Is_Tagged_Type     (Parent_Type));
!       Set_Is_Volatile        (Derived_Type, Is_Volatile        (Parent_Type));
  
        if Is_Tagged_Type (Derived_Type) then
           Set_No_Tagged_Streams_Pragma
--- 10324,10338 ----
        Set_Scope                  (Derived_Type, Current_Scope);
        Set_Etype                  (Derived_Type,        Parent_Base);
        Mutate_Ekind               (Derived_Type, Ekind (Parent_Base));
! 
!       Propagate_Concurrent_Flags (Derived_Type, Parent_Base);
!       Propagate_Controlled_Flags (Derived_Type, Parent_Base, Deriv => True);
  
        Set_Size_Info (Derived_Type, Parent_Type);
        Copy_RM_Size (To => Derived_Type, From => Parent_Type);
  
!       Set_Is_Tagged_Type (Derived_Type, Is_Tagged_Type (Parent_Type));
!       Set_Is_Volatile    (Derived_Type, Is_Volatile    (Parent_Type));
  
        if Is_Tagged_Type (Derived_Type) then
           Set_No_Tagged_Streams_Pragma
*************** package body Sem_Ch3 is
*** 10430,10437 ****
        --  D within the discriminant list of the discriminated type T.
  
        procedure Process_Discriminant_Expression
!          (Expr : Node_Id;
!           D    : Entity_Id);
        --  If this is a discriminant constraint on a partial view, do not
        --  generate an overflow check on the discriminant expression. The check
        --  will be generated when constraining the full view. Otherwise the
--- 10603,10610 ----
        --  D within the discriminant list of the discriminated type T.
  
        procedure Process_Discriminant_Expression
!         (Expr : Node_Id;
!          D    : Entity_Id);
        --  If this is a discriminant constraint on a partial view, do not
        --  generate an overflow check on the discriminant expression. The check
        --  will be generated when constraining the full view. Otherwise the
*************** package body Sem_Ch3 is
*** 10467,10474 ****
        -------------------------------------
  
        procedure Process_Discriminant_Expression
!          (Expr : Node_Id;
!           D    : Entity_Id)
        is
           BDT : constant Entity_Id := Base_Type (Etype (D));
  
--- 10640,10647 ----
        -------------------------------------
  
        procedure Process_Discriminant_Expression
!         (Expr : Node_Id;
!          D    : Entity_Id)
        is
           BDT : constant Entity_Id := Base_Type (Etype (D));
  
*************** package body Sem_Ch3 is
*** 10908,10913 ****
--- 11081,11094 ----
           Make_Class_Wide_Type (Def_Id);
        end if;
  
+       --  When prefixed calls are enabled for untagged types, the subtype
+       --  shares the primitive operations of its base type. Do this even
+       --  when GNAT extensions are not allowed, in order to give better
+       --  error messages.
+ 
+       Set_Direct_Primitive_Operations
+         (Def_Id, Direct_Primitive_Operations (T));
+ 
        Set_Stored_Constraint (Def_Id, No_Elist);
  
        if Has_Discrs then
*************** package body Sem_Ch3 is
*** 10918,10934 ****
        if Is_Tagged_Type (T) then
  
           --  Ada 2005 (AI-251): In case of concurrent types we inherit the
!          --  concurrent record type (which has the list of primitive
!          --  operations).
  
!          if Ada_Version >= Ada_2005
!            and then Is_Concurrent_Type (T)
!          then
!             Set_Corresponding_Record_Type (Def_Id,
!                Corresponding_Record_Type (T));
!          else
!             Set_Direct_Primitive_Operations (Def_Id,
!               Direct_Primitive_Operations (T));
           end if;
  
           Set_Is_Abstract_Type (Def_Id, Is_Abstract_Type (T));
--- 11099,11109 ----
        if Is_Tagged_Type (T) then
  
           --  Ada 2005 (AI-251): In case of concurrent types we inherit the
!          --  concurrent record type.
  
!          if Ada_Version >= Ada_2005 and then Is_Concurrent_Type (T) then
!             Set_Corresponding_Record_Type
!               (Def_Id, Corresponding_Record_Type (T));
           end if;
  
           Set_Is_Abstract_Type (Def_Id, Is_Abstract_Type (T));
*************** package body Sem_Ch3 is
*** 10976,10982 ****
     is
        IR : constant Node_Id := Make_Itype_Reference (Sloc (Nod));
     begin
- 
        --  Itype references are only created for use by the back-end
  
        if Inside_A_Generic then
--- 11151,11156 ----
*************** package body Sem_Ch3 is
*** 12017,12027 ****
           else
              Type_Def :=
                Make_Access_To_Object_Definition (Loc,
                  Subtype_Indication =>
!                    Relocate_Node (Subtype_Mark (Access_Def)));
! 
!             Set_Constant_Present (Type_Def, Constant_Present (Access_Def));
!             Set_All_Present (Type_Def, All_Present (Access_Def));
           end if;
  
           Set_Null_Exclusion_Present
--- 12191,12200 ----
           else
              Type_Def :=
                Make_Access_To_Object_Definition (Loc,
+                 All_Present        => All_Present (Access_Def),
+                 Constant_Present   => Constant_Present (Access_Def),
                  Subtype_Indication =>
!                   Relocate_Node (Subtype_Mark (Access_Def)));
           end if;
  
           Set_Null_Exclusion_Present
*************** package body Sem_Ch3 is
*** 12447,12453 ****
  
     procedure Check_Delta_Expression (E : Node_Id) is
     begin
!       if not (Is_Real_Type (Etype (E))) then
           Wrong_Type (E, Any_Real);
  
        elsif not Is_OK_Static_Expression (E) then
--- 12620,12626 ----
  
     procedure Check_Delta_Expression (E : Node_Id) is
     begin
!       if not Is_Real_Type (Etype (E)) then
           Wrong_Type (E, Any_Real);
  
        elsif not Is_OK_Static_Expression (E) then
*************** package body Sem_Ch3 is
*** 12475,12481 ****
  
     procedure Check_Digits_Expression (E : Node_Id) is
     begin
!       if not (Is_Integer_Type (Etype (E))) then
           Wrong_Type (E, Any_Integer);
  
        elsif not Is_OK_Static_Expression (E) then
--- 12648,12654 ----
  
     procedure Check_Digits_Expression (E : Node_Id) is
     begin
!       if not Is_Integer_Type (Etype (E)) then
           Wrong_Type (E, Any_Integer);
  
        elsif not Is_OK_Static_Expression (E) then
*************** package body Sem_Ch3 is
*** 13080,13085 ****
--- 13253,13266 ----
        Set_First_Rep_Item     (Full, First_Rep_Item (Full_Base));
        Set_Depends_On_Private (Full, Has_Private_Component (Full));
  
+       --  When prefixed calls are enabled for untagged types, the subtype
+       --  shares the primitive operations of its base type. Do this even
+       --  when GNAT extensions are not allowed, in order to give better
+       --  error messages.
+ 
+       Set_Direct_Primitive_Operations
+         (Full, Direct_Primitive_Operations (Full_Base));
+ 
        --  Freeze the private subtype entity if its parent is delayed, and not
        --  already frozen. We skip this processing if the type is an anonymous
        --  subtype of a record component, or is the corresponding record of a
*************** package body Sem_Ch3 is
*** 13130,13139 ****
          and then Present (Underlying_Full_View (Full_Base))
        then
           declare
!             Underlying_Full_Base : constant Entity_Id
!                                            := Underlying_Full_View (Full_Base);
!             Underlying_Full : constant Entity_Id
!                        := Make_Defining_Identifier (Sloc (Priv), Chars (Priv));
           begin
              Set_Is_Itype (Underlying_Full);
              Set_Associated_Node_For_Itype (Underlying_Full, Related_Nod);
--- 13311,13320 ----
          and then Present (Underlying_Full_View (Full_Base))
        then
           declare
!             Underlying_Full_Base : constant Entity_Id :=
!               Underlying_Full_View (Full_Base);
!             Underlying_Full : constant Entity_Id :=
!               Make_Defining_Identifier (Sloc (Priv), Chars (Priv));
           begin
              Set_Is_Itype (Underlying_Full);
              Set_Associated_Node_For_Itype (Underlying_Full, Related_Nod);
*************** package body Sem_Ch3 is
*** 13186,13193 ****
           Set_Is_Tagged_Type (Full);
           Set_Is_Limited_Record (Full, Is_Limited_Record (Full_Base));
  
-          Set_Direct_Primitive_Operations
-            (Full, Direct_Primitive_Operations (Full_Base));
           Set_No_Tagged_Streams_Pragma
             (Full, No_Tagged_Streams_Pragma (Full_Base));
  
--- 13367,13372 ----
*************** package body Sem_Ch3 is
*** 14583,14590 ****
        --  In an instance it may be necessary to retrieve the full view of a
        --  type with unknown discriminants, or a full view with defaulted
        --  discriminants. In other contexts the constraint is illegal.
  
!       if In_Instance
          and then Is_Private_Type (T)
          and then Present (Full_View (T))
          and then
--- 14762,14772 ----
        --  In an instance it may be necessary to retrieve the full view of a
        --  type with unknown discriminants, or a full view with defaulted
        --  discriminants. In other contexts the constraint is illegal.
+       --  This relaxation of legality checking may also be needed in
+       --  compiler-generated Put_Image or streaming subprograms (hence
+       --  the Comes_From_Source test).
  
!       if (In_Instance or not Comes_From_Source (S))
          and then Is_Private_Type (T)
          and then Present (Full_View (T))
          and then
*************** package body Sem_Ch3 is
*** 15224,15232 ****
        Set_Component_Alignment        (T1, Component_Alignment        (T2));
        Set_Component_Type             (T1, Component_Type             (T2));
        Set_Component_Size             (T1, Component_Size             (T2));
-       Set_Has_Controlled_Component   (T1, Has_Controlled_Component   (T2));
        Set_Has_Non_Standard_Rep       (T1, Has_Non_Standard_Rep       (T2));
        Propagate_Concurrent_Flags     (T1,                             T2);
        Set_Is_Packed                  (T1, Is_Packed                  (T2));
        Set_Has_Aliased_Components     (T1, Has_Aliased_Components     (T2));
        Set_Has_Atomic_Components      (T1, Has_Atomic_Components      (T2));
--- 15406,15414 ----
        Set_Component_Alignment        (T1, Component_Alignment        (T2));
        Set_Component_Type             (T1, Component_Type             (T2));
        Set_Component_Size             (T1, Component_Size             (T2));
        Set_Has_Non_Standard_Rep       (T1, Has_Non_Standard_Rep       (T2));
        Propagate_Concurrent_Flags     (T1,                             T2);
+       Propagate_Controlled_Flags     (T1,                             T2);
        Set_Is_Packed                  (T1, Is_Packed                  (T2));
        Set_Has_Aliased_Components     (T1, Has_Aliased_Components     (T2));
        Set_Has_Atomic_Components      (T1, Has_Atomic_Components      (T2));
*************** package body Sem_Ch3 is
*** 16543,16549 ****
  
        New_Overloaded_Entity (New_Subp, Derived_Type);
  
!       --  Ada RM 6.1.1 (15): If a subprogram inherits nonconforming class-wide
        --  preconditions and the derived type is abstract, the derived operation
        --  is abstract as well if parent subprogram is not abstract or null.
  
--- 16725,16731 ----
  
        New_Overloaded_Entity (New_Subp, Derived_Type);
  
!       --  RM 6.1.1(15): If a subprogram inherits nonconforming class-wide
        --  preconditions and the derived type is abstract, the derived operation
        --  is abstract as well if parent subprogram is not abstract or null.
  
*************** package body Sem_Ch3 is
*** 17463,17470 ****
           --  Initialize the list of primitive operations to an empty list,
           --  to cover tagged types as well as untagged types. For untagged
           --  types this is used either to analyze the call as legal when
!          --  Extensions_Allowed is True, or to issue a better error message
!          --  otherwise.
  
           Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
--- 17645,17651 ----
           --  Initialize the list of primitive operations to an empty list,
           --  to cover tagged types as well as untagged types. For untagged
           --  types this is used either to analyze the call as legal when
!          --  GNAT extensions are allowed, or to give better error messages.
  
           Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
*************** package body Sem_Ch3 is
*** 17765,17770 ****
--- 17946,18028 ----
        Build_Derived_Type (N, Parent_Type, T, Is_Completion,
          Derive_Subps => not Is_Underlying_Record_View (T));
  
+       --  Check for special mutably tagged type declarations
+ 
+       if Is_Tagged_Type (Parent_Type)
+         and then not Error_Posted (T)
+       then
+          declare
+             Actions        : List_Id;
+             CW_Typ         : constant Entity_Id := Class_Wide_Type (T);
+             Root_Class_Typ : constant Entity_Id :=
+               Class_Wide_Type (Root_Type (Parent_Type));
+          begin
+             --  Perform various checks when we are indeed looking at a
+             --  mutably tagged declaration.
+ 
+             if Present (Root_Class_Typ)
+               and then Is_Mutably_Tagged_Type (Root_Class_Typ)
+             then
+                --  Verify the level of the descendant's declaration is not
+                --  deeper than the root type since this could cause leaking
+                --  of the type.
+ 
+                if Scope (Root_Class_Typ) /= Scope (T)
+                  and then Deepest_Type_Access_Level (Root_Class_Typ)
+                             < Deepest_Type_Access_Level (T)
+                then
+                   Error_Msg_NE
+                     ("descendant of mutably tagged type cannot be deeper than"
+                      & " its root", N, Root_Type (T));
+ 
+                elsif Present (Incomplete_Or_Partial_View (T))
+                  and then Is_Tagged_Type (Incomplete_Or_Partial_View (T))
+                then
+                   Error_Msg_N
+                     ("descendant of mutably tagged type cannot a have partial"
+                       & " view which is tagged", N);
+ 
+                --  Mutably tagged types cannot have discriminants
+ 
+                elsif Present (Discriminant_Specifications (N)) then
+                   Error_Msg_N
+                     ("descendant of mutably tagged type cannot have"
+                      & " discriminates", N);
+ 
+                elsif Present (Interfaces (T))
+                  and then not Is_Empty_Elmt_List (Interfaces (T))
+                then
+                   Error_Msg_N
+                     ("descendant of mutably tagged type cannot implement"
+                      & " an interface", N);
+ 
+                --  We have a valid descendant type
+ 
+                else
+                   --  Set inherited attributes
+ 
+                   Set_Has_Size_Clause     (CW_Typ);
+                   Set_RM_Size             (CW_Typ, RM_Size (Root_Class_Typ));
+                   Set_Is_Mutably_Tagged_Type (CW_Typ);
+ 
+                   --  Generate a new class-wide equivalent type
+ 
+                   Set_Class_Wide_Equivalent_Type (CW_Typ,
+                     Make_CW_Equivalent_Type (CW_Typ, Empty, Actions));
+ 
+                   Insert_List_After_And_Analyze (N, Actions);
+ 
+                   --  Add a Compile_Time_Error sizing check as a hint
+                   --  to the backend since we don't know the true size of
+                   --  anything at this point.
+ 
+                   Append_Freeze_Actions (T,
+                     New_List (Make_CW_Size_Compile_Check (T, Root_Class_Typ)));
+                end if;
+             end if;
+          end;
+       end if;
+ 
        --  AI-419: The parent type of an explicitly limited derived type must
        --  be a limited type or a limited interface.
  
*************** package body Sem_Ch3 is
*** 18055,18070 ****
              Prev_Asp  : Node_Id;
  
           begin
!             if Present (Prev_Asps) then
!                Prev_Asp := First (Prev_Asps);
!                while Present (Prev_Asp) loop
!                   if Get_Aspect_Id (Prev_Asp) = Asp_Id then
!                      return Prev_Asp;
!                   end if;
  
!                   Next (Prev_Asp);
!                end loop;
!             end if;
  
              return Empty;
           end Get_Partial_View_Aspect;
--- 18313,18326 ----
              Prev_Asp  : Node_Id;
  
           begin
!             Prev_Asp := First (Prev_Asps);
!             while Present (Prev_Asp) loop
!                if Get_Aspect_Id (Prev_Asp) = Asp_Id then
!                   return Prev_Asp;
!                end if;
  
!                Next (Prev_Asp);
!             end loop;
  
              return Empty;
           end Get_Partial_View_Aspect;
*************** package body Sem_Ch3 is
*** 18078,18115 ****
        --  Start of processing for Check_Duplicate_Aspects
  
        begin
!          if Present (Full_Asps) then
!             Full_Asp := First (Full_Asps);
!             while Present (Full_Asp) loop
!                Part_Asp := Get_Partial_View_Aspect (Full_Asp);
  
!                --  An aspect and its class-wide counterpart are two distinct
!                --  aspects and may apply to both views of an entity.
  
!                if Present (Part_Asp)
!                  and then Class_Present (Part_Asp) = Class_Present (Full_Asp)
!                then
!                   Error_Msg_N
!                     ("aspect already specified in private declaration",
!                      Full_Asp);
  
!                   Remove (Full_Asp);
!                   return;
!                end if;
  
!                if Has_Discriminants (Prev)
!                  and then not Has_Unknown_Discriminants (Prev)
!                  and then Get_Aspect_Id (Full_Asp) =
!                             Aspect_Implicit_Dereference
!                then
!                   Error_Msg_N
!                     ("cannot specify aspect if partial view has known "
!                      & "discriminants", Full_Asp);
!                end if;
  
!                Next (Full_Asp);
!             end loop;
!          end if;
        end Check_Duplicate_Aspects;
  
        ------------------
--- 18334,18368 ----
        --  Start of processing for Check_Duplicate_Aspects
  
        begin
!          Full_Asp := First (Full_Asps);
!          while Present (Full_Asp) loop
!             Part_Asp := Get_Partial_View_Aspect (Full_Asp);
  
!             --  An aspect and its class-wide counterpart are two distinct
!             --  aspects and may apply to both views of an entity.
  
!             if Present (Part_Asp)
!               and then Class_Present (Part_Asp) = Class_Present (Full_Asp)
!             then
!                Error_Msg_N
!                  ("aspect already specified in private declaration", Full_Asp);
  
!                Remove (Full_Asp);
!                return;
!             end if;
  
!             if Has_Discriminants (Prev)
!               and then not Has_Unknown_Discriminants (Prev)
!               and then Get_Aspect_Id (Full_Asp) =
!                          Aspect_Implicit_Dereference
!             then
!                Error_Msg_N
!                  ("cannot specify aspect if partial view has known "
!                   & "discriminants", Full_Asp);
!             end if;
  
!             Next (Full_Asp);
!          end loop;
        end Check_Duplicate_Aspects;
  
        ------------------
*************** package body Sem_Ch3 is
*** 18308,18314 ****
                 Error_Msg_N
                   ("full view of private extension must be an extension", N);
  
!             elsif not (Abstract_Present (Parent (Prev)))
                and then Abstract_Present (Type_Definition (N))
              then
                 Error_Msg_N
--- 18561,18567 ----
                 Error_Msg_N
                   ("full view of private extension must be an extension", N);
  
!             elsif not Abstract_Present (Parent (Prev))
                and then Abstract_Present (Type_Definition (N))
              then
                 Error_Msg_N
*************** package body Sem_Ch3 is
*** 18543,18549 ****
           end if;
  
           --  When generating code, insert subtype declaration ahead of
!          --  declaration that generated it.
  
           Insert_Action (Obj_Def,
             Make_Subtype_Declaration (Sloc (P),
--- 18796,18804 ----
           end if;
  
           --  When generating code, insert subtype declaration ahead of
!          --  declaration that generated it. Similar behavior required under
!          --  preanalysis (including strict preanalysis) to perform the
!          --  minimum decoration, and avoid reporting spurious errors.
  
           Insert_Action (Obj_Def,
             Make_Subtype_Declaration (Sloc (P),
*************** package body Sem_Ch3 is
*** 20620,20634 ****
  
     procedure Preanalyze_Assert_Expression (N : Node_Id) is
        Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
-       Save_Must_Not_Freeze    : constant Boolean := Must_Not_Freeze (N);
        Save_Full_Analysis      : constant Boolean := Full_Analysis;
  
     begin
        In_Assertion_Expr  := In_Assertion_Expr + 1;
        In_Spec_Expression := True;
-       Set_Must_Not_Freeze (N);
-       Inside_Preanalysis_Without_Freezing :=
-         Inside_Preanalysis_Without_Freezing + 1;
        Full_Analysis      := False;
        Expander_Mode_Save_And_Set (False);
  
--- 20875,20885 ----
*************** package body Sem_Ch3 is
*** 20640,20648 ****
  
        Expander_Mode_Restore;
        Full_Analysis      := Save_Full_Analysis;
-       Inside_Preanalysis_Without_Freezing :=
-         Inside_Preanalysis_Without_Freezing - 1;
-       Set_Must_Not_Freeze (N, Save_Must_Not_Freeze);
        In_Spec_Expression := Save_In_Spec_Expression;
        In_Assertion_Expr  := In_Assertion_Expr - 1;
     end Preanalyze_Assert_Expression;
--- 20891,20896 ----
*************** package body Sem_Ch3 is
*** 20652,20668 ****
     -----------------------------------
  
     procedure Preanalyze_Default_Expression (N : Node_Id; T : Entity_Id) is
!       Save_In_Default_Expr    : constant Boolean := In_Default_Expr;
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
! 
     begin
!       In_Default_Expr    := True;
!       In_Spec_Expression := True;
! 
!       Preanalyze_With_Freezing_And_Resolve (N, T);
! 
!       In_Default_Expr    := Save_In_Default_Expr;
!       In_Spec_Expression := Save_In_Spec_Expression;
     end Preanalyze_Default_Expression;
  
     --------------------------------
--- 20900,20910 ----
     -----------------------------------
  
     procedure Preanalyze_Default_Expression (N : Node_Id; T : Entity_Id) is
!       Save_In_Default_Expr : constant Boolean := In_Default_Expr;
     begin
!       In_Default_Expr := True;
!       Preanalyze_Spec_Expression (N, T);
!       In_Default_Expr := Save_In_Default_Expr;
     end Preanalyze_Default_Expression;
  
     --------------------------------
*************** package body Sem_Ch3 is
*** 21815,21820 ****
--- 22057,22070 ----
           end;
        end if;
  
+       --  Propagate First_Controlling_Parameter aspect to the full type
+ 
+       if Is_Tagged_Type (Priv_T)
+         and then Has_First_Controlling_Parameter_Aspect (Priv_T)
+       then
+          Set_Has_First_Controlling_Parameter_Aspect (Full_T);
+       end if;
+ 
        --  Propagate predicates to full type, and predicate function if already
        --  defined. It is not clear that this can actually happen? the partial
        --  view cannot be frozen yet, and the predicate function has not been
*************** package body Sem_Ch3 is
*** 22791,22812 ****
           Set_Direct_Primitive_Operations (T, New_Elmt_List);
        end if;
  
!       --  We must suppress range checks when processing record components in
!       --  the presence of discriminants, since we don't want spurious checks to
!       --  be generated during their analysis, but Suppress_Range_Checks flags
!       --  must be reset the after processing the record definition.
! 
!       --  Note: this is the only use of Kill_Range_Checks, and is a bit odd,
!       --  couldn't we just use the normal range check suppression method here.
!       --  That would seem cleaner ???
! 
!       if Has_Discriminants (T) and then not Range_Checks_Suppressed (T) then
!          Set_Kill_Range_Checks (T, True);
!          Record_Type_Definition (Def, Prev);
!          Set_Kill_Range_Checks (T, False);
!       else
!          Record_Type_Definition (Def, Prev);
!       end if;
  
        --  Exit from record scope
  
--- 23041,23047 ----
           Set_Direct_Primitive_Operations (T, New_Elmt_List);
        end if;
  
!       Record_Type_Definition (Def, Prev);
  
        --  Exit from record scope
  
*************** package body Sem_Ch3 is
*** 22821,22826 ****
--- 23056,23063 ----
           Derive_Progenitor_Subprograms (T, T);
        end if;
  
+       Warn_On_Inherently_Limited_Type (T);
+ 
        Check_Function_Writable_Actuals (N);
     end Record_Type_Declaration;
  
*************** package body Sem_Ch3 is
*** 22829,22838 ****
     ----------------------------
  
     procedure Record_Type_Definition (Def : Node_Id; Prev_T : Entity_Id) is
!       Component          : Entity_Id;
!       Ctrl_Components    : Boolean := False;
!       Final_Storage_Only : Boolean;
!       T                  : Entity_Id;
  
     begin
        if Ekind (Prev_T) = E_Incomplete_Type then
--- 23066,23075 ----
     ----------------------------
  
     procedure Record_Type_Definition (Def : Node_Id; Prev_T : Entity_Id) is
!       Component            : Entity_Id;
!       Final_Storage_Only   : Boolean := True;
!       Relaxed_Finalization : Boolean := True;
!       T                    : Entity_Id;
  
     begin
        if Ekind (Prev_T) = E_Incomplete_Type then
*************** package body Sem_Ch3 is
*** 22843,22850 ****
  
        Set_Is_Not_Self_Hidden (T);
  
-       Final_Storage_Only := not Is_Controlled (T);
- 
        --  Ada 2005: Check whether an explicit "limited" is present in a derived
        --  type declaration.
  
--- 23080,23085 ----
*************** package body Sem_Ch3 is
*** 22870,22875 ****
--- 23105,23127 ----
           if Present (Variant_Part (Component_List (Def))) then
              Analyze (Variant_Part (Component_List (Def)));
           end if;
+ 
+          --  For tagged types, when compiling in Generate_Code mode, the _Tag
+          --  component is added before the creation of the class-wide entity
+          --  and it is shared by that entity once it is built.
+ 
+          --  However, when compiling in Check_Syntax or Check_Semantics modes,
+          --  since the _Tag component is not added to the tagged type entity,
+          --  the First_Entity of its class-wide type remains empty, and must
+          --  be explicitly set to prevent spurious errors from being reported.
+ 
+          if Operating_Mode <= Check_Semantics
+            and then Is_Tagged_Type (T)
+            and then Present (First_Entity (T))
+            and then No (First_Entity (Class_Wide_Type (T)))
+          then
+             Set_First_Entity (Class_Wide_Type (T), First_Entity (T));
+          end if;
        end if;
  
        --  After completing the semantic analysis of the record definition,
*************** package body Sem_Ch3 is
*** 22900,22920 ****
                        or else (Chars (Component) /= Name_uParent
                                  and then Is_Controlled (Etype (Component))))
           then
!             Set_Has_Controlled_Component (T, True);
              Final_Storage_Only :=
                Final_Storage_Only
                  and then Finalize_Storage_Only (Etype (Component));
!             Ctrl_Components := True;
           end if;
  
           Next_Entity (Component);
        end loop;
  
!       --  A Type is Finalize_Storage_Only only if all its controlled components
!       --  are also.
  
!       if Ctrl_Components then
!          Set_Finalize_Storage_Only (T, Final_Storage_Only);
        end if;
  
        --  Place reference to end record on the proper entity, which may
--- 23152,23177 ----
                        or else (Chars (Component) /= Name_uParent
                                  and then Is_Controlled (Etype (Component))))
           then
!             Set_Has_Controlled_Component (T);
              Final_Storage_Only :=
                Final_Storage_Only
                  and then Finalize_Storage_Only (Etype (Component));
!             Relaxed_Finalization :=
!               Relaxed_Finalization
!                 and then Has_Relaxed_Finalization (Etype (Component));
           end if;
  
           Next_Entity (Component);
        end loop;
  
!       --  For a type that is not directly controlled but has controlled
!       --  components, Finalize_Storage_Only is set if all the controlled
!       --  components are Finalize_Storage_Only. The same processing is
!       --  appled to Has_Relaxed_Finalization.
  
!       if not Is_Controlled (T) and then Has_Controlled_Component (T) then
!          Set_Finalize_Storage_Only    (T, Final_Storage_Only);
!          Set_Has_Relaxed_Finalization (T, Relaxed_Finalization);
        end if;
  
        --  Place reference to end record on the proper entity, which may
*************** package body Sem_Ch3 is
*** 23290,23293 ****
--- 23547,23577 ----
        Set_Is_Constrained     (T);
     end Signed_Integer_Type_Declaration;
  
+    -------------------------------------
+    -- Warn_On_Inherently_Limited_Type --
+    -------------------------------------
+ 
+    procedure Warn_On_Inherently_Limited_Type (E : Entity_Id) is
+       C : Entity_Id;
+    begin
+       if Warnsw.Warn_On_Inherently_Limited_Type
+         and then not Is_Limited_Record (E)
+       then
+          C := First_Component (Base_Type (E));
+          while Present (C) loop
+             if Is_Inherently_Limited_Type (Etype (C)) then
+                Error_Msg_Node_2 := E;
+                Error_Msg_NE
+                  ("?_l?limited component & makes & limited", E, C);
+                Error_Msg_N
+                  ("\\?_l?consider annotating the record type "
+                   & "with a LIMITED keyword", E);
+                exit;
+             end if;
+ 
+             Next_Component (C);
+          end loop;
+       end if;
+    end Warn_On_Inherently_Limited_Type;
+ 
  end Sem_Ch3;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch3.ads gcc-15.1.0/gcc/ada/sem_ch3.ads
*** gcc-14.2.0/gcc/ada/sem_ch3.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch3.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch3 is
*** 85,90 ****
--- 85,95 ----
     procedure Access_Type_Declaration (T : Entity_Id; Def : Node_Id);
     --  Process an access type declaration
  
+    procedure Build_Access_Subprogram_Wrapper (Decl : Node_Id);
+    --  When an access-to-subprogram type has pre/postconditions, we build a
+    --  subprogram that includes these contracts and is invoked by an indirect
+    --  call through the corresponding access type.
+ 
     procedure Build_Itype_Reference (Ityp : Entity_Id; Nod : Node_Id);
     --  Create a reference to an internal type, for use by Gigi. The back-end
     --  elaborates itypes on demand, i.e. when their first use is seen. This can
*************** package Sem_Ch3 is
*** 234,239 ****
--- 239,249 ----
     procedure Preanalyze_Assert_Expression (N : Node_Id; T : Entity_Id);
     --  Wrapper on Preanalyze_Spec_Expression for assertion expressions, so that
     --  In_Assertion_Expr can be properly adjusted.
+    --
+    --  This routine must not be called when N is the root of a subtree that is
+    --  not in its final place since it freezes static expression entities,
+    --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
+    --  used in such a case to avoid reporting spurious errors.
  
     procedure Preanalyze_Assert_Expression (N : Node_Id);
     --  Similar to the above, but without forcing N to be of a particular type
*************** package Sem_Ch3 is
*** 247,252 ****
--- 257,267 ----
     --  details. N is the expression to be analyzed, T is the expected type.
     --  This mechanism is also used for aspect specifications that have an
     --  expression parameter that needs similar preanalysis.
+    --
+    --  This routine must not be called when N is the root of a subtree that is
+    --  not in its final place since it freezes static expression entities,
+    --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
+    --  used in such a case to avoid reporting spurious errors.
  
     procedure Process_Full_View (N : Node_Id; Full_T, Priv_T : Entity_Id);
     --  Process some semantic actions when the full view of a private type is
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch4.adb gcc-15.1.0/gcc/ada/sem_ch4.adb
*** gcc-14.2.0/gcc/ada/sem_ch4.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch4.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Accessibility;  use Accessibility;
*** 27,32 ****
--- 27,33 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
+ with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
*************** with Exp_Util;       use Exp_Util;
*** 36,41 ****
--- 37,43 ----
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Namet.Sp;       use Namet.Sp;
  with Nlists;         use Nlists;
*************** package body Sem_Ch4 is
*** 153,163 ****
     --  the operand of the operator node.
  
     procedure Analyze_One_Call
!       (N          : Node_Id;
!        Nam        : Entity_Id;
!        Report     : Boolean;
!        Success    : out Boolean;
!        Skip_First : Boolean := False);
     --  Check one interpretation of an overloaded subprogram name for
     --  compatibility with the types of the actuals in a call. If there is a
     --  single interpretation which does not match, post error if Report is
--- 155,165 ----
     --  the operand of the operator node.
  
     procedure Analyze_One_Call
!      (N          : Node_Id;
!       Nam        : Entity_Id;
!       Report     : Boolean;
!       Success    : out Boolean;
!       Skip_First : Boolean := False);
     --  Check one interpretation of an overloaded subprogram name for
     --  compatibility with the types of the actuals in a call. If there is a
     --  single interpretation which does not match, post error if Report is
*************** package body Sem_Ch4 is
*** 269,274 ****
--- 271,289 ----
     --  these aspects can be achieved without larger modifications to the
     --  two-pass resolution algorithm.
  
+    function Is_Effectively_Visible_Operator
+      (N : Node_Id; Typ : Entity_Id) return Boolean
+    is (Is_Visible_Operator (N => N, Typ => Typ)
+          or else
+            --  test for a rewritten Foo."+" call
+            (N /= Original_Node (N)
+              and then Is_Effectively_Visible_Operator
+                         (N => Original_Node (N), Typ => Typ))
+          or else Checking_Potentially_Static_Expression
+          or else not Comes_From_Source (N));
+    --  Return True iff either Is_Visible_Operator returns True or if
+    --  there is a reason it is ok for Is_Visible_Operator to return False.
+ 
     function Possible_Type_For_Conditional_Expression
       (T1, T2 : Entity_Id) return Entity_Id;
     --  Given two types T1 and T2 that are _not_ compatible, return a type that
*************** package body Sem_Ch4 is
*** 623,628 ****
--- 638,649 ----
                          Make_Index_Or_Discriminant_Constraint (Loc,
                            Constraints => Constr)));
                 end;
+ 
+             --  Rewrite the mutably tagged type to a non-class-wide type for
+             --  proper initialization.
+ 
+             elsif Is_Mutably_Tagged_Type (Type_Id) then
+                Rewrite (E, New_Occurrence_Of (Etype (Type_Id), Loc));
              end if;
           end if;
  
*************** package body Sem_Ch4 is
*** 710,738 ****
           Check_Fully_Declared (Type_Id, N);
  
           --  Ada 2005 (AI-231): If the designated type is itself an access
!          --  type that excludes null, its default initialization will
!          --  be a null object, and we can insert an unconditional raise
           --  before the allocator.
  
           --  Ada 2012 (AI-104): A not null indication here is altogether
           --  illegal.
  
!          if Can_Never_Be_Null (Type_Id) then
!             declare
!                Not_Null_Check : constant Node_Id :=
!                                   Make_Raise_Constraint_Error (Sloc (E),
!                                     Reason => CE_Null_Not_Allowed);
! 
!             begin
!                if Expander_Active then
!                   Insert_Action (N, Not_Null_Check);
!                   Analyze (Not_Null_Check);
  
!                elsif Warn_On_Ada_2012_Compatibility then
!                   Error_Msg_N
!                     ("null value not allowed here in Ada 2012?y?", E);
!                end if;
!             end;
           end if;
  
           --  Check for missing initialization. Skip this check if the allocator
--- 731,752 ----
           Check_Fully_Declared (Type_Id, N);
  
           --  Ada 2005 (AI-231): If the designated type is itself an access
!          --  type that excludes null, its default initialization (if any)
!          --  will be a null object and we can insert an unconditional raise
           --  before the allocator.
  
           --  Ada 2012 (AI-104): A not null indication here is altogether
           --  illegal.
  
!          if Can_Never_Be_Null (Type_Id) and then not No_Initialization (N) then
!             if Expander_Active then
!                Apply_Compile_Time_Constraint_Error
!                  (N, "null value not allowed here??", CE_Null_Not_Allowed);
  
!             elsif Warn_On_Ada_2012_Compatibility then
!                Error_Msg_N
!                  ("null value not allowed here in Ada 2012?y?", E);
!             end if;
           end if;
  
           --  Check for missing initialization. Skip this check if the allocator
*************** package body Sem_Ch4 is
*** 1781,1787 ****
  
        if Is_OK_Static_Subtype (Exp_Type)
          and then Has_Static_Predicate_Aspect (Exp_Type)
!         and then In_Spec_Expression
        then
           null;
  
--- 1795,1801 ----
  
        if Is_OK_Static_Subtype (Exp_Type)
          and then Has_Static_Predicate_Aspect (Exp_Type)
!         and then Preanalysis_Active
        then
           null;
  
*************** package body Sem_Ch4 is
*** 1982,1987 ****
--- 1996,2002 ----
                (Root_Type (LT) = Standard_String
                   or else Scope (LT) /= Standard_Standard)
                and then Etype (R) = Any_String
+               and then not Is_Component_Left_Opnd (N)
              then
                 Add_One_Interp (N, Op_Id, LT);
  
*************** package body Sem_Ch4 is
*** 1989,1994 ****
--- 2004,2010 ----
                (Root_Type (RT) = Standard_String
                   or else Scope (RT) /= Standard_Standard)
                and then Etype (L) = Any_String
+               and then not Is_Component_Right_Opnd (N)
              then
                 Add_One_Interp (N, Op_Id, RT);
  
*************** package body Sem_Ch4 is
*** 2398,2403 ****
--- 2414,2421 ----
  
           case Nkind (A) is
              when N_Object_Declaration =>
+                Inspect_Deferred_Constant_Completion (A);
+ 
                 if Nkind (Object_Definition (A)) = N_Access_Definition then
                    Error_Msg_N
                      ("anonymous access type not allowed in declare_expression",
*************** package body Sem_Ch4 is
*** 2652,2658 ****
                   ("\ELSE expression has}!", Else_Expr, Etype (Else_Expr));
              end if;
  
!          else
              if Is_Overloaded (Else_Expr) then
                 Error_Msg_N
                   ("no interpretation compatible with type of THEN expression",
--- 2670,2676 ----
                   ("\ELSE expression has}!", Else_Expr, Etype (Else_Expr));
              end if;
  
!          elsif Present (Else_Expr) then
              if Is_Overloaded (Else_Expr) then
                 Error_Msg_N
                   ("no interpretation compatible with type of THEN expression",
*************** package body Sem_Ch4 is
*** 2892,2897 ****
--- 2910,2921 ----
              Set_Etype (N, Component_Type (Array_Type));
              Check_Implicit_Dereference (N, Etype (N));
  
+             --  Generate conversion to class-wide type
+ 
+             if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (N)) then
+                Make_Mutably_Tagged_Conversion (N);
+             end if;
+ 
              if Present (Index) then
                 Error_Msg_N
                   ("too few subscripts in array reference", First (Exprs));
*************** package body Sem_Ch4 is
*** 3029,3037 ****
        --  the indexed component denotes a loop name, the indexed form is turned
        --  into an attribute reference.
  
!       elsif Nkind (N) = N_Attribute_Reference
!         and then Attribute_Name (N) = Name_Loop_Entry
!       then
           return;
        end if;
  
--- 3053,3059 ----
        --  the indexed component denotes a loop name, the indexed form is turned
        --  into an attribute reference.
  
!       elsif Is_Attribute_Loop_Entry (N) then
           return;
        end if;
  
*************** package body Sem_Ch4 is
*** 3042,3051 ****
        if Is_Entity_Name (P) and then Present (Entity (P)) then
           U_N := Entity (P);
  
!          if Is_Type (U_N) then
! 
!             --  Reformat node as a type conversion
  
              E := Remove_Head (Exprs);
  
              if Present (First (Exprs)) then
--- 3064,3077 ----
        if Is_Entity_Name (P) and then Present (Entity (P)) then
           U_N := Entity (P);
  
!          --  If the prefix is a type name, then reformat the node as a type
!          --  conversion, but not if it is the current instance of type name,
!          --  e.g. the expression of a type aspect, when it is analyzed within
!          --  a generic unit.
  
+          if Is_Type (U_N)
+            and then not (Inside_A_Generic and then Is_Current_Instance (P))
+          then
              E := Remove_Head (Exprs);
  
              if Present (First (Exprs)) then
*************** package body Sem_Ch4 is
*** 3611,3621 ****
     ----------------------
  
     procedure Analyze_One_Call
!       (N          : Node_Id;
!        Nam        : Entity_Id;
!        Report     : Boolean;
!        Success    : out Boolean;
!        Skip_First : Boolean := False)
     is
        Actuals : constant List_Id   := Parameter_Associations (N);
        Prev_T  : constant Entity_Id := Etype (N);
--- 3637,3647 ----
     ----------------------
  
     procedure Analyze_One_Call
!      (N          : Node_Id;
!       Nam        : Entity_Id;
!       Report     : Boolean;
!       Success    : out Boolean;
!       Skip_First : Boolean := False)
     is
        Actuals : constant List_Id   := Parameter_Associations (N);
        Prev_T  : constant Entity_Id := Etype (N);
*************** package body Sem_Ch4 is
*** 4076,4081 ****
--- 4102,4118 ----
                    Next_Actual (Actual);
                    Next_Formal (Formal);
  
+                --  Generate a class-wide type conversion for instances of
+                --  class-wide equivalent types to their corresponding
+                --  mutably tagged type.
+ 
+                elsif Is_Mutably_Tagged_CW_Equivalent_Type (Etype (Actual))
+                  and then Etype (Formal) = Parent_Subtype (Etype (Actual))
+                then
+                   Make_Mutably_Tagged_Conversion (Actual);
+                   Next_Actual (Actual);
+                   Next_Formal (Formal);
+ 
                 --  Handle failed type check
  
                 else
*************** package body Sem_Ch4 is
*** 4680,4692 ****
        begin
           if Warn_On_Suspicious_Contract
             and then not Is_Internal_Name (Chars (Loop_Id))
- 
-            --  Generating C, this check causes spurious warnings on inlined
-            --  postconditions; we can safely disable it because this check
-            --  was previously performed when analyzing the internally built
-            --  postconditions procedure.
- 
-            and then not (Modify_Tree_For_C and In_Inlined_Body)
           then
              if not Referenced (Loop_Id, Cond) then
                 Error_Msg_N ("?.t?unused variable &", Loop_Id);
--- 4717,4722 ----
*************** package body Sem_Ch4 is
*** 4898,4904 ****
     --  the selector must denote a visible entry.
  
     procedure Analyze_Selected_Component (N : Node_Id) is
!       Name          : constant Node_Id := Prefix (N);
        Sel           : constant Node_Id := Selector_Name (N);
        Act_Decl      : Node_Id;
        Comp          : Entity_Id := Empty;
--- 4928,4934 ----
     --  the selector must denote a visible entry.
  
     procedure Analyze_Selected_Component (N : Node_Id) is
!       Pref          : constant Node_Id := Prefix (N);
        Sel           : constant Node_Id := Selector_Name (N);
        Act_Decl      : Node_Id;
        Comp          : Entity_Id := Empty;
*************** package body Sem_Ch4 is
*** 4933,4940 ****
        --  indexed component rather than a function call.
  
        function Has_Dereference (Nod : Node_Id) return Boolean;
!       --  Check whether prefix includes a dereference, explicit or implicit,
!       --  at any recursive level.
  
        function Try_By_Protected_Procedure_Prefixed_View return Boolean;
        --  Return True if N is an access attribute whose prefix is a prefixed
--- 4963,4973 ----
        --  indexed component rather than a function call.
  
        function Has_Dereference (Nod : Node_Id) return Boolean;
!       --  Check whether Nod includes a dereference, explicit or implicit, at
!       --  any recursive level.
! 
!       function Is_Simple_Indexed_Component (Nod : Node_Id) return Boolean;
!       --  Check whether Nod is a simple indexed component in the context
  
        function Try_By_Protected_Procedure_Prefixed_View return Boolean;
        --  Return True if N is an access attribute whose prefix is a prefixed
*************** package body Sem_Ch4 is
*** 5078,5083 ****
--- 5111,5150 ----
           end if;
        end Has_Dereference;
  
+       ---------------------------------
+       -- Is_Simple_Indexed_Component --
+       ---------------------------------
+ 
+       function Is_Simple_Indexed_Component (Nod : Node_Id) return Boolean is
+          Expr : Node_Id;
+ 
+       begin
+          --  Nod must be an indexed component
+ 
+          if Nkind (Nod) /= N_Indexed_Component then
+             return False;
+          end if;
+ 
+          --  The context must not be a nested selected component
+ 
+          if Nkind (Pref) = N_Selected_Component then
+             return False;
+          end if;
+ 
+          --  The expressions must not be case expressions
+ 
+          Expr := First (Expressions (Nod));
+          while Present (Expr) loop
+             if Nkind (Expr) = N_Case_Expression then
+                return False;
+             end if;
+ 
+             Next (Expr);
+          end loop;
+ 
+          return True;
+       end Is_Simple_Indexed_Component;
+ 
        ----------------------------------------------
        -- Try_By_Protected_Procedure_Prefixed_View --
        ----------------------------------------------
*************** package body Sem_Ch4 is
*** 5220,5241 ****
              end if;
           end loop;
  
-          --  If Par is a generic actual, look for component in ancestor types.
-          --  Skip this if we have no Declaration_Node, as is the case for
-          --  itypes.
- 
-          if Present (Par)
-            and then Is_Generic_Actual_Type (Par)
-            and then Present (Declaration_Node (Par))
-          then
-             Par := Generic_Parent_Type (Declaration_Node (Par));
-             loop
-                Find_Component_In_Instance (Par);
-                exit when Present (Entity (Sel))
-                  or else Par = Etype (Par);
-                Par := Etype (Par);
-             end loop;
- 
           --  Another special case: the type is an extension of a private
           --  type T, either is an actual in an instance or is immediately
           --  visible, and we are in the body of the instance, which means
--- 5287,5292 ----
*************** package body Sem_Ch4 is
*** 5246,5257 ****
           --  the Has_Private_View mechanism is bypassed because T or the
           --  ancestor is not directly referenced in the generic body.
  
!          elsif Is_Derived_Type (Typ)
!            and then (Used_As_Generic_Actual (Typ)
                        or else Is_Immediately_Visible (Typ))
             and then In_Instance_Body
           then
              Find_Component_In_Instance (Parent_Subtype (Typ));
           end if;
  
           return Etype (N) /= Any_Type;
--- 5297,5325 ----
           --  the Has_Private_View mechanism is bypassed because T or the
           --  ancestor is not directly referenced in the generic body.
  
!          if Is_Derived_Type (Typ)
!            and then (Used_As_Generic_Actual (Base_Type (Typ))
                        or else Is_Immediately_Visible (Typ))
             and then In_Instance_Body
+            and then Present (Parent_Subtype (Typ))
           then
              Find_Component_In_Instance (Parent_Subtype (Typ));
+ 
+          --  If Par is a generic actual, look for component in ancestor types.
+          --  Skip this if we have no Declaration_Node, as is the case for
+          --  itypes.
+ 
+          elsif Present (Par)
+            and then Is_Generic_Actual_Type (Par)
+            and then Present (Declaration_Node (Par))
+          then
+             Par := Generic_Parent_Type (Declaration_Node (Par));
+             loop
+                Find_Component_In_Instance (Par);
+                exit when Present (Entity (Sel))
+                  or else Par = Etype (Par);
+                Par := Etype (Par);
+             end loop;
           end if;
  
           return Etype (N) /= Any_Type;
*************** package body Sem_Ch4 is
*** 5262,5278 ****
     begin
        Set_Etype (N, Any_Type);
  
!       if Is_Overloaded (Name) then
           Analyze_Overloaded_Selected_Component (N);
           return;
  
!       elsif Etype (Name) = Any_Type then
           Set_Entity (Sel, Any_Id);
           Set_Etype (Sel, Any_Type);
           return;
  
        else
!          Prefix_Type := Etype (Name);
        end if;
  
        if Is_Access_Type (Prefix_Type) then
--- 5330,5346 ----
     begin
        Set_Etype (N, Any_Type);
  
!       if Is_Overloaded (Pref) then
           Analyze_Overloaded_Selected_Component (N);
           return;
  
!       elsif Etype (Pref) = Any_Type then
           Set_Entity (Sel, Any_Id);
           Set_Etype (Sel, Any_Type);
           return;
  
        else
!          Prefix_Type := Etype (Pref);
        end if;
  
        if Is_Access_Type (Prefix_Type) then
*************** package body Sem_Ch4 is
*** 5301,5306 ****
--- 5369,5379 ----
              Prefix_Type := Implicitly_Designated_Type (Prefix_Type);
           end if;
  
+       --  Handle mutably tagged types
+ 
+       elsif Is_Class_Wide_Equivalent_Type (Prefix_Type) then
+          Prefix_Type := Parent_Subtype (Prefix_Type);
+ 
        --  If we have an explicit dereference of a remote access-to-class-wide
        --  value, then issue an error (see RM-E.2.2(16/1)). However we first
        --  have to check for the case of a prefix that is a controlling operand
*************** package body Sem_Ch4 is
*** 5310,5317 ****
        --  component prefixes because of the prefixed dispatching call case.
        --  Note that implicit dereferences are checked for this just above.
  
!       elsif Nkind (Name) = N_Explicit_Dereference
!         and then Is_Remote_Access_To_Class_Wide_Type (Etype (Prefix (Name)))
          and then Comes_From_Source (N)
        then
           if Try_Object_Operation (N) then
--- 5383,5390 ----
        --  component prefixes because of the prefixed dispatching call case.
        --  Note that implicit dereferences are checked for this just above.
  
!       elsif Nkind (Pref) = N_Explicit_Dereference
!         and then Is_Remote_Access_To_Class_Wide_Type (Etype (Prefix (Pref)))
          and then Comes_From_Source (N)
        then
           if Try_Object_Operation (N) then
*************** package body Sem_Ch4 is
*** 5362,5368 ****
          Is_Concurrent_Type (Prefix_Type)
            and then Is_Internal_Name (Chars (Prefix_Type))
            and then not Is_Derived_Type (Prefix_Type)
!           and then Is_Entity_Name (Name);
  
        --  Avoid initializing Comp if that initialization is not needed
        --  (and, more importantly, if the call to First_Entity could fail).
--- 5435,5441 ----
          Is_Concurrent_Type (Prefix_Type)
            and then Is_Internal_Name (Chars (Prefix_Type))
            and then not Is_Derived_Type (Prefix_Type)
!           and then Is_Entity_Name (Pref);
  
        --  Avoid initializing Comp if that initialization is not needed
        --  (and, more importantly, if the call to First_Entity could fail).
*************** package body Sem_Ch4 is
*** 5390,5402 ****
           --  subsequent semantic checks might examine the original node.
  
           Set_Entity (Sel, Comp);
!          Rewrite (Selector_Name (N), New_Occurrence_Of (Comp, Sloc (N)));
!          Set_Original_Discriminant (Selector_Name (N), Comp);
           Set_Etype (N, Etype (Comp));
           Check_Implicit_Dereference (N, Etype (Comp));
  
        elsif Is_Record_Type (Prefix_Type) then
- 
           --  Find a component with the given name. If the node is a prefixed
           --  call, do not examine components whose visibility may be
           --  accidental.
--- 5463,5474 ----
           --  subsequent semantic checks might examine the original node.
  
           Set_Entity (Sel, Comp);
!          Rewrite (Sel, New_Occurrence_Of (Comp, Sloc (N)));
!          Set_Original_Discriminant (Sel, Comp);
           Set_Etype (N, Etype (Comp));
           Check_Implicit_Dereference (N, Etype (Comp));
  
        elsif Is_Record_Type (Prefix_Type) then
           --  Find a component with the given name. If the node is a prefixed
           --  call, do not examine components whose visibility may be
           --  accidental.
*************** package body Sem_Ch4 is
*** 5443,5449 ****
                 --  to duplicate this prefix and duplication is only allowed
                 --  on fully resolved expressions.
  
!                Resolve (Name);
  
                 --  Ada 2005 (AI-50217): Check wrong use of incomplete types or
                 --  subtypes in a package specification.
--- 5515,5521 ----
                 --  to duplicate this prefix and duplication is only allowed
                 --  on fully resolved expressions.
  
!                Resolve (Pref);
  
                 --  Ada 2005 (AI-50217): Check wrong use of incomplete types or
                 --  subtypes in a package specification.
*************** package body Sem_Ch4 is
*** 5456,5493 ****
                 --       N : Natural := X.all.Comp;  --  ERROR, limited view
                 --    end Pkg;                       --  Comp is not visible
  
!                if Nkind (Name) = N_Explicit_Dereference
!                  and then From_Limited_With (Etype (Prefix (Name)))
!                  and then not Is_Potentially_Use_Visible (Etype (Name))
                   and then Nkind (Parent (Cunit_Entity (Current_Sem_Unit))) =
                              N_Package_Specification
                 then
                    Error_Msg_NE
!                     ("premature usage of incomplete}", Prefix (Name),
!                      Etype (Prefix (Name)));
                 end if;
  
!                --  We never need an actual subtype for the case of a selection
!                --  for a indexed component of a non-packed array, since in
!                --  this case gigi generates all the checks and can find the
!                --  necessary bounds information.
  
                 --  We also do not need an actual subtype for the case of a
                 --  first, last, length, or range attribute applied to a
                 --  non-packed array, since gigi can again get the bounds in
                 --  these cases (gigi cannot handle the packed case, since it
                 --  has the bounds of the packed array type, not the original
!                --  bounds of the type). However, if the prefix is itself a
!                --  selected component, as in a.b.c (i), gigi may regard a.b.c
!                --  as a dynamic-sized temporary, so we do generate an actual
!                --  subtype for this case.
  
                 Parent_N := Parent (N);
  
                 if not Is_Packed (Etype (Comp))
                   and then
!                    ((Nkind (Parent_N) = N_Indexed_Component
!                        and then Nkind (Name) /= N_Selected_Component)
                       or else
                        (Nkind (Parent_N) = N_Attribute_Reference
                          and then
--- 5528,5566 ----
                 --       N : Natural := X.all.Comp;  --  ERROR, limited view
                 --    end Pkg;                       --  Comp is not visible
  
!                if Nkind (Pref) = N_Explicit_Dereference
!                  and then From_Limited_With (Etype (Prefix (Pref)))
!                  and then not Is_Potentially_Use_Visible (Etype (Pref))
                   and then Nkind (Parent (Cunit_Entity (Current_Sem_Unit))) =
                              N_Package_Specification
                 then
                    Error_Msg_NE
!                     ("premature usage of incomplete}", Prefix (Pref),
!                      Etype (Prefix (Pref)));
                 end if;
  
!                --  We generally do not need an actual subtype for the case of
!                --  a selection for an indexed component of a non-packed array,
!                --  since, in this case, gigi can find all the necessary bound
!                --  information. However, when the prefix is itself a selected
!                --  component, for example a.b.c (i), gigi may regard a.b.c as
!                --  a dynamic-sized temporary, so we generate an actual subtype
!                --  for this case. Moreover, if the expressions are complex,
!                --  the actual subtype may be needed for constructs generated
!                --  by their analysis.
  
                 --  We also do not need an actual subtype for the case of a
                 --  first, last, length, or range attribute applied to a
                 --  non-packed array, since gigi can again get the bounds in
                 --  these cases (gigi cannot handle the packed case, since it
                 --  has the bounds of the packed array type, not the original
!                --  bounds of the type).
  
                 Parent_N := Parent (N);
  
                 if not Is_Packed (Etype (Comp))
                   and then
!                    (Is_Simple_Indexed_Component (Parent_N)
                       or else
                        (Nkind (Parent_N) = N_Attribute_Reference
                          and then
*************** package body Sem_Ch4 is
*** 5566,5571 ****
--- 5639,5651 ----
                    Set_Etype (N, Etype (Comp));
                 end if;
  
+                --  Force the generation of a mutably tagged type conversion
+                --  when we encounter a special class-wide equivalent type.
+ 
+                if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (Pref)) then
+                   Make_Mutably_Tagged_Conversion (Pref, Force => True);
+                end if;
+ 
                 Check_Implicit_Dereference (N, Etype (N));
                 return;
              end if;
*************** package body Sem_Ch4 is
*** 5575,5581 ****
              --  which can appear in expanded code in a tag check.
  
              if Ekind (Type_To_Use) = E_Record_Type_With_Private
!               and then Chars (Selector_Name (N)) /= Name_uTag
              then
                 exit when Comp = Last_Entity (Type_To_Use);
              end if;
--- 5655,5661 ----
              --  which can appear in expanded code in a tag check.
  
              if Ekind (Type_To_Use) = E_Record_Type_With_Private
!               and then Chars (Sel) /= Name_uTag
              then
                 exit when Comp = Last_Entity (Type_To_Use);
              end if;
*************** package body Sem_Ch4 is
*** 5745,5751 ****
                 elsif Ekind (Comp) in E_Discriminant | E_Entry_Family
                   or else (In_Scope
                              and then not Is_Protected_Type (Prefix_Type)
!                             and then Is_Entity_Name (Name))
                 then
                    Set_Entity_With_Checks (Sel, Comp);
                    Generate_Reference (Comp, Sel);
--- 5825,5831 ----
                 elsif Ekind (Comp) in E_Discriminant | E_Entry_Family
                   or else (In_Scope
                              and then not Is_Protected_Type (Prefix_Type)
!                             and then Is_Entity_Name (Pref))
                 then
                    Set_Entity_With_Checks (Sel, Comp);
                    Generate_Reference (Comp, Sel);
*************** package body Sem_Ch4 is
*** 5815,5822 ****
           --  and the selector is one of the task operations.
  
           if In_Scope
!            and then not Is_Entity_Name (Name)
!            and then not Has_Dereference (Name)
           then
              if Is_Task_Type (Prefix_Type)
                and then Present (Entity (Sel))
--- 5895,5902 ----
           --  and the selector is one of the task operations.
  
           if In_Scope
!            and then not Is_Entity_Name (Pref)
!            and then not Has_Dereference (Pref)
           then
              if Is_Task_Type (Prefix_Type)
                and then Present (Entity (Sel))
*************** package body Sem_Ch4 is
*** 5933,5939 ****
  
              if Present (Comp) then
                 if Is_Single_Concurrent_Object then
!                   Error_Msg_Node_2 := Entity (Name);
                    Error_Msg_NE ("invisible selector& for &", N, Sel);
  
                 else
--- 6013,6019 ----
  
              if Present (Comp) then
                 if Is_Single_Concurrent_Object then
!                   Error_Msg_Node_2 := Entity (Pref);
                    Error_Msg_NE ("invisible selector& for &", N, Sel);
  
                 else
*************** package body Sem_Ch4 is
*** 5965,5971 ****
        if Etype (N) = Any_Type then
  
           if Is_Single_Concurrent_Object then
!             Error_Msg_Node_2 := Entity (Name);
              Error_Msg_NE ("no selector& for&", N, Sel);
  
              Check_Misspelled_Selector (Type_To_Use, Sel);
--- 6045,6051 ----
        if Etype (N) = Any_Type then
  
           if Is_Single_Concurrent_Object then
!             Error_Msg_Node_2 := Entity (Pref);
              Error_Msg_NE ("no selector& for&", N, Sel);
  
              Check_Misspelled_Selector (Type_To_Use, Sel);
*************** package body Sem_Ch4 is
*** 6335,6340 ****
--- 6415,6444 ----
             ("formal parameter cannot be converted to class-wide type when "
              & "Extensions_Visible is False", Expr);
        end if;
+ 
+       --  Perform special checking for access to mutably tagged type since they
+       --  are not compatible with interfaces.
+ 
+       if Is_Access_Type (Typ)
+         and then Is_Access_Type (Etype (Expr))
+         and then not Error_Posted (N)
+       then
+ 
+          if Is_Mutably_Tagged_Type (Directly_Designated_Type (Typ))
+            and then Is_Interface (Directly_Designated_Type (Etype (Expr)))
+          then
+             Error_Msg_N
+               ("argument of conversion to mutably tagged access type cannot "
+                & "be access to interface", Expr);
+ 
+          elsif Is_Mutably_Tagged_Type (Directly_Designated_Type (Etype (Expr)))
+            and then Is_Interface (Directly_Designated_Type (Typ))
+          then
+             Error_Msg_N
+               ("argument of conversion to interface access type cannot "
+                & "be access to mutably tagged type", Expr);
+          end if;
+       end if;
     end Analyze_Type_Conversion;
  
     ----------------------
*************** package body Sem_Ch4 is
*** 6386,6404 ****
        Operator_Check (N);
     end Analyze_Unary_Op;
  
-    ----------------------------------
-    -- Analyze_Unchecked_Expression --
-    ----------------------------------
- 
-    procedure Analyze_Unchecked_Expression (N : Node_Id) is
-       Expr : constant Node_Id := Expression (N);
- 
-    begin
-       Analyze (Expr, Suppress => All_Checks);
-       Set_Etype (N, Etype (Expr));
-       Save_Interps (Expr, N);
-    end Analyze_Unchecked_Expression;
- 
     ---------------------------------------
     -- Analyze_Unchecked_Type_Conversion --
     ---------------------------------------
--- 6490,6495 ----
*************** package body Sem_Ch4 is
*** 6528,6545 ****
        ------------------
  
        function Has_Fixed_Op (Typ : Entity_Id; Op : Entity_Id) return Boolean is
!          Bas : constant Entity_Id := Base_Type (Typ);
           Ent : Entity_Id;
           F1  : Entity_Id;
           F2  : Entity_Id;
  
        begin
!          --  If the universal_fixed operation is given explicitly the rule
           --  concerning primitive operations of the type do not apply.
  
!          if Nkind (N) = N_Function_Call
!            and then Nkind (Name (N)) = N_Expanded_Name
!            and then Entity (Prefix (Name (N))) = Standard_Standard
           then
              return False;
           end if;
--- 6619,6638 ----
        ------------------
  
        function Has_Fixed_Op (Typ : Entity_Id; Op : Entity_Id) return Boolean is
!          Bas    : constant Entity_Id := Base_Type (Typ);
!          Orig_N : constant Node_Id   := Original_Node (N);
! 
           Ent : Entity_Id;
           F1  : Entity_Id;
           F2  : Entity_Id;
  
        begin
!          --  If the universal_fixed operation is given explicitly, the rule
           --  concerning primitive operations of the type do not apply.
  
!          if Nkind (Orig_N) = N_Function_Call
!            and then Nkind (Name (Orig_N)) = N_Expanded_Name
!            and then Entity (Prefix (Name (Orig_N))) = Standard_Standard
           then
              return False;
           end if;
*************** package body Sem_Ch4 is
*** 6588,6593 ****
--- 6681,6688 ----
             and then (Covers (T1 => T1, T2 => T2)
                         or else
                       Covers (T1 => T2, T2 => T1))
+            and then Is_Effectively_Visible_Operator
+                       (N, Specific_Type (T1, T2))
           then
              Add_One_Interp (N, Op_Id, Specific_Type (T1, T2));
           end if;
*************** package body Sem_Ch4 is
*** 6617,6622 ****
--- 6712,6719 ----
             and then (Covers (T1 => T1, T2 => T2)
                         or else
                       Covers (T1 => T2, T2 => T1))
+            and then Is_Effectively_Visible_Operator
+                       (N, Specific_Type (T1, T2))
           then
              Add_One_Interp (N, Op_Id, Specific_Type (T1, T2));
  
*************** package body Sem_Ch4 is
*** 6660,6665 ****
--- 6757,6764 ----
             and then (Covers (T1 => T1, T2 => T2)
                         or else
                       Covers (T1 => T2, T2 => T1))
+            and then Is_Effectively_Visible_Operator
+                       (N, Specific_Type (T1, T2))
           then
              Add_One_Interp (N, Op_Id, Specific_Type (T1, T2));
           end if;
*************** package body Sem_Ch4 is
*** 7033,7038 ****
--- 7132,7138 ----
                 T := Any_Modular;
              end if;
  
+             --  test Is_Effectively_Visible_Operator here ???
              Add_One_Interp (N, Op_Id, T);
           end if;
        end Check_Boolean_Pair;
*************** package body Sem_Ch4 is
*** 7346,7351 ****
--- 7446,7453 ----
                 then
                    It := Disambiguate (L, Valid_I, I, Any_Type);
  
+                   --  Note the ambiguity for later, see below
+ 
                    if It = No_Interp then
                       L_Typ := Any_Type;
                       R_Typ := T;
*************** package body Sem_Ch4 is
*** 7363,7368 ****
--- 7465,7476 ----
              Get_Next_Interp (I, It);
           end loop;
  
+          --  Record the operator as an interpretation of the operation if we
+          --  have found a valid pair of types for the two operands. If we have
+          --  found more than one such pair and did not manage to disambiguate
+          --  them, record an "ambiguous" operator as the interpretation, that
+          --  Disambiguate in Sem_Type will specifically recognize.
+ 
           if Present (L_Typ) then
              Set_Etype (L, L_Typ);
              Set_Etype (R, R_Typ);
*************** package body Sem_Ch4 is
*** 7562,7568 ****
                 then
                    null;
  
!                else
                    Add_One_Interp (N, Op_Id, Base_Type (It.Typ));
                 end if;
              end if;
--- 7670,7677 ----
                 then
                    null;
  
!                elsif Is_Effectively_Visible_Operator (N, Base_Type (It.Typ))
!                then
                    Add_One_Interp (N, Op_Id, Base_Type (It.Typ));
                 end if;
              end if;
*************** package body Sem_Ch4 is
*** 8440,8453 ****
        --  that if the argument is a parameter association we must match it
        --  by name and not by position.
  
!       function Find_Indexing_Operations
          (T           : Entity_Id;
!          Nam         : Name_Id;
!          Is_Constant : Boolean) return Node_Id;
!       --  Return a reference to the primitive operation of type T denoted by
!       --  name Nam. If the operation is overloaded, the reference carries all
!       --  interpretations. Flag Is_Constant should be set when the context is
!       --  constant indexing.
  
        --------------------------
        -- Constant_Indexing_OK --
--- 8549,8559 ----
        --  that if the argument is a parameter association we must match it
        --  by name and not by position.
  
!       function Indexing_Interpretations
          (T           : Entity_Id;
!          Aspect_Kind : Aspect_Id) return Node_Id;
!       --  Return a set of interpretations reflecting all of the functions
!       --  associated with an indexing aspect of type T of the given kind.
  
        --------------------------
        -- Constant_Indexing_OK --
*************** package body Sem_Ch4 is
*** 8628,8851 ****
        end Expr_Matches_In_Formal;
  
        ------------------------------
!       -- Find_Indexing_Operations --
        ------------------------------
  
!       function Find_Indexing_Operations
          (T           : Entity_Id;
!          Nam         : Name_Id;
!          Is_Constant : Boolean) return Node_Id
        is
!          procedure Inspect_Declarations
!            (Typ : Entity_Id;
!             Ref : in out Node_Id);
!          --  Traverse the declarative list where type Typ resides and collect
!          --  all suitable interpretations in node Ref.
! 
!          procedure Inspect_Primitives
!            (Typ : Entity_Id;
!             Ref : in out Node_Id);
!          --  Traverse the list of primitive operations of type Typ and collect
!          --  all suitable interpretations in node Ref.
! 
!          function Is_OK_Candidate
!            (Subp_Id : Entity_Id;
!             Typ     : Entity_Id) return Boolean;
!          --  Determine whether subprogram Subp_Id is a suitable indexing
!          --  operation for type Typ. To qualify as such, the subprogram must
!          --  be a function, have at least two parameters, and the type of the
!          --  first parameter must be either Typ, or Typ'Class, or access [to
!          --  constant] with designated type Typ or Typ'Class.
! 
!          procedure Record_Interp (Subp_Id : Entity_Id; Ref : in out Node_Id);
!          --  Store subprogram Subp_Id as an interpretation in node Ref
! 
!          --------------------------
!          -- Inspect_Declarations --
!          --------------------------
! 
!          procedure Inspect_Declarations
!            (Typ : Entity_Id;
!             Ref : in out Node_Id)
!          is
!             Typ_Decl : constant Node_Id := Declaration_Node (Typ);
!             Decl     : Node_Id;
!             Subp_Id  : Entity_Id;
! 
!          begin
!             --  Ensure that the routine is not called with itypes, which lack a
!             --  declarative node.
! 
!             pragma Assert (Present (Typ_Decl));
!             pragma Assert (Is_List_Member (Typ_Decl));
! 
!             Decl := First (List_Containing (Typ_Decl));
!             while Present (Decl) loop
!                if Nkind (Decl) = N_Subprogram_Declaration then
!                   Subp_Id := Defining_Entity (Decl);
! 
!                   if Is_OK_Candidate (Subp_Id, Typ) then
!                      Record_Interp (Subp_Id, Ref);
!                   end if;
!                end if;
! 
!                Next (Decl);
!             end loop;
!          end Inspect_Declarations;
! 
!          ------------------------
!          -- Inspect_Primitives --
!          ------------------------
! 
!          procedure Inspect_Primitives
!            (Typ : Entity_Id;
!             Ref : in out Node_Id)
!          is
!             Prim_Elmt : Elmt_Id;
!             Prim_Id   : Entity_Id;
! 
!          begin
!             Prim_Elmt := First_Elmt (Primitive_Operations (Typ));
!             while Present (Prim_Elmt) loop
!                Prim_Id := Node (Prim_Elmt);
! 
!                if Is_OK_Candidate (Prim_Id, Typ) then
!                   Record_Interp (Prim_Id, Ref);
!                end if;
! 
!                Next_Elmt (Prim_Elmt);
!             end loop;
!          end Inspect_Primitives;
! 
!          ---------------------
!          -- Is_OK_Candidate --
!          ---------------------
! 
!          function Is_OK_Candidate
!            (Subp_Id : Entity_Id;
!             Typ     : Entity_Id) return Boolean
!          is
!             Formal     : Entity_Id;
!             Formal_Typ : Entity_Id;
!             Param_Typ  : Node_Id;
! 
!          begin
!             --  To classify as a suitable candidate, the subprogram must be a
!             --  function whose name matches the argument of aspect Constant or
!             --  Variable_Indexing.
! 
!             if Ekind (Subp_Id) = E_Function and then Chars (Subp_Id) = Nam then
!                Formal := First_Formal (Subp_Id);
! 
!                --  The candidate requires at least two parameters
! 
!                if Present (Formal) and then Present (Next_Formal (Formal)) then
!                   Formal_Typ := Empty;
!                   Param_Typ  := Parameter_Type (Parent (Formal));
! 
!                   --  Use the designated type when the first parameter is of an
!                   --  access type.
! 
!                   if Nkind (Param_Typ) = N_Access_Definition
!                     and then Present (Subtype_Mark (Param_Typ))
!                   then
!                      --  When the context is a constant indexing, the access
!                      --  definition must be access-to-constant. This does not
!                      --  apply to variable indexing.
! 
!                      if not Is_Constant
!                        or else Constant_Present (Param_Typ)
!                      then
!                         Formal_Typ := Etype (Subtype_Mark (Param_Typ));
!                      end if;
! 
!                   --  Otherwise use the parameter type
! 
!                   else
!                      Formal_Typ := Etype (Param_Typ);
!                   end if;
! 
!                   if Present (Formal_Typ) then
! 
!                      --  Use the specific type when the parameter type is
!                      --  class-wide.
! 
!                      if Is_Class_Wide_Type (Formal_Typ) then
!                         Formal_Typ := Etype (Base_Type (Formal_Typ));
!                      end if;
! 
!                      --  Use the full view when the parameter type is private
!                      --  or incomplete.
  
!                      if Is_Incomplete_Or_Private_Type (Formal_Typ)
!                        and then Present (Full_View (Formal_Typ))
!                      then
!                         Formal_Typ := Full_View (Formal_Typ);
!                      end if;
  
!                      --  The type of the first parameter must denote the type
!                      --  of the container or acts as its ancestor type.
  
!                      return
!                        Formal_Typ = Typ
!                          or else Is_Ancestor (Formal_Typ, Typ);
!                   end if;
!                end if;
!             end if;
  
!             return False;
!          end Is_OK_Candidate;
  
!          -------------------
!          -- Record_Interp --
!          -------------------
  
!          procedure Record_Interp (Subp_Id : Entity_Id; Ref : in out Node_Id) is
!          begin
!             if Present (Ref) then
!                Add_One_Interp (Ref, Subp_Id, Etype (Subp_Id));
  
!             --  Otherwise this is the first interpretation. Create a reference
!             --  where all remaining interpretations will be collected.
  
              else
!                Ref := New_Occurrence_Of (Subp_Id, Sloc (T));
              end if;
-          end Record_Interp;
  
!          --  Local variables
! 
!          Ref : Node_Id;
!          Typ : Entity_Id;
! 
!       --  Start of processing for Find_Indexing_Operations
! 
!       begin
!          Typ := T;
! 
!          --  Use the specific type when the parameter type is class-wide
! 
!          if Is_Class_Wide_Type (Typ) then
!             Typ := Root_Type (Typ);
!          end if;
! 
!          Ref := Empty;
!          Typ := Underlying_Type (Base_Type (Typ));
! 
!          Inspect_Primitives (Typ, Ref);
! 
!          --  Now look for explicit declarations of an indexing operation.
!          --  If the type is private the operation may be declared in the
!          --  visible part that contains the partial view.
! 
!          if Is_Private_Type (T) then
!             Inspect_Declarations (T, Ref);
!          end if;
! 
!          Inspect_Declarations (Typ, Ref);
  
!          return Ref;
!       end Find_Indexing_Operations;
  
        --  Local variables
  
--- 8734,8786 ----
        end Expr_Matches_In_Formal;
  
        ------------------------------
!       -- Indexing_Interpretations --
        ------------------------------
  
!       function Indexing_Interpretations
          (T           : Entity_Id;
!          Aspect_Kind : Aspect_Id) return Node_Id
        is
!          pragma Assert (Aspect_Kind in Aspect_Constant_Indexing
!                                      | Aspect_Variable_Indexing);
  
!          Indexing_Aspect    : constant Node_Id := Find_Aspect (T, Aspect_Kind);
!          Indexing_Func_Elmt : Elmt_Id;
!          Subp_Id            : Entity_Id;
!          Indexing_Func      : Node_Id := Empty;
  
!       begin
!          if No (Indexing_Aspect)
!            --  Protect against the case where there was an error on the aspect
!            or else No (Aspect_Subprograms (Indexing_Aspect))
!          then
!             return Empty;
!          end if;
  
!          Indexing_Func_Elmt :=
!            First_Elmt (Aspect_Subprograms (Indexing_Aspect));
  
!          pragma Assert (Present (Indexing_Func_Elmt));
  
!          while Present (Indexing_Func_Elmt) loop
!             Subp_Id := Node (Indexing_Func_Elmt);
  
!             if Present (Indexing_Func) then
!                Add_One_Interp (Indexing_Func, Subp_Id, Etype (Subp_Id));
  
!             --  Otherwise this is the first interpretation. Create a
!             --  reference where all remaining interpretations will be
!             --  collected.
  
              else
!                Indexing_Func := New_Occurrence_Of (Subp_Id, Sloc (N));
              end if;
  
!             Next_Elmt (Indexing_Func_Elmt);
!          end loop;
  
!          return Indexing_Func;
!       end Indexing_Interpretations;
  
        --  Local variables
  
*************** package body Sem_Ch4 is
*** 8856,8866 ****
        Func_Name : Node_Id;
        Indexing  : Node_Id;
  
-       Is_Constant_Indexing : Boolean := False;
-       --  This flag reflects the nature of the container indexing. Note that
-       --  the context may be suited for constant indexing, but the type may
-       --  lack a Constant_Indexing annotation.
- 
     --  Start of processing for Try_Container_Indexing
  
     begin
--- 8791,8796 ----
*************** package body Sem_Ch4 is
*** 8890,8902 ****
           Error_Msg_NW (Warn_On_Dereference, "?d?implicit dereference", N);
        end if;
  
!       C_Type := Pref_Typ;
  
        --  If indexing a class-wide container, obtain indexing primitive from
        --  specific type.
  
        if Is_Class_Wide_Type (C_Type) then
!          C_Type := Etype (Base_Type (C_Type));
        end if;
  
        --  Check whether the type has a specified indexing aspect
--- 8820,8832 ----
           Error_Msg_NW (Warn_On_Dereference, "?d?implicit dereference", N);
        end if;
  
!       C_Type := Base_Type (Pref_Typ);
  
        --  If indexing a class-wide container, obtain indexing primitive from
        --  specific type.
  
        if Is_Class_Wide_Type (C_Type) then
!          C_Type := Etype (C_Type);
        end if;
  
        --  Check whether the type has a specified indexing aspect
*************** package body Sem_Ch4 is
*** 8904,8924 ****
        Func_Name := Empty;
  
        --  The context is suitable for constant indexing, so obtain the name of
!       --  the indexing function from aspect Constant_Indexing.
  
        if Constant_Indexing_OK then
           Func_Name :=
!            Find_Value_Of_Aspect (Pref_Typ, Aspect_Constant_Indexing);
        end if;
  
-       if Present (Func_Name) then
-          Is_Constant_Indexing := True;
- 
        --  Otherwise attempt variable indexing
  
!       else
           Func_Name :=
!            Find_Value_Of_Aspect (Pref_Typ, Aspect_Variable_Indexing);
        end if;
  
        --  The type is not subject to either form of indexing, therefore the
--- 8834,8851 ----
        Func_Name := Empty;
  
        --  The context is suitable for constant indexing, so obtain the name of
!       --  the indexing functions from aspect Constant_Indexing.
  
        if Constant_Indexing_OK then
           Func_Name :=
!            Indexing_Interpretations (C_Type, Aspect_Constant_Indexing);
        end if;
  
        --  Otherwise attempt variable indexing
  
!       if No (Func_Name) then
           Func_Name :=
!            Indexing_Interpretations (C_Type, Aspect_Variable_Indexing);
        end if;
  
        --  The type is not subject to either form of indexing, therefore the
*************** package body Sem_Ch4 is
*** 8940,8970 ****
           else
              return False;
           end if;
- 
-       --  If the container type is derived from another container type, the
-       --  value of the inherited aspect is the Reference operation declared
-       --  for the parent type.
- 
-       --  However, Reference is also a primitive operation of the type, and the
-       --  inherited operation has a different signature. We retrieve the right
-       --  ones (the function may be overloaded) from the list of primitive
-       --  operations of the derived type.
- 
-       --  Note that predefined containers are typically all derived from one of
-       --  the Controlled types. The code below is motivated by containers that
-       --  are derived from other types with a Reference aspect.
-       --  Note as well that we need to examine the base type, given that
-       --  the container object may be a constrained subtype or itype that
-       --  does not have an explicit declaration.
- 
-       elsif Is_Derived_Type (C_Type)
-         and then Etype (First_Formal (Entity (Func_Name))) /= Pref_Typ
-       then
-          Func_Name :=
-            Find_Indexing_Operations
-              (T           => Base_Type (C_Type),
-               Nam         => Chars (Func_Name),
-               Is_Constant => Is_Constant_Indexing);
        end if;
  
        Assoc := New_List (Relocate_Node (Prefix));
--- 8867,8872 ----
*************** package body Sem_Ch4 is
*** 9392,9398 ****
                 Error_Msg_NE
                   ("expect variable in call to&", Prefix (N), Entity (Subprog));
              end if;
- 
           --  Conversely, if the formal is an access parameter and the object is
           --  not an access type or a reference type (i.e. a type with the
           --  Implicit_Dereference aspect specified), replace the actual with a
--- 9294,9299 ----
*************** package body Sem_Ch4 is
*** 9463,9468 ****
--- 9364,9371 ----
  
           Rewrite (Node_To_Replace, Call_Node);
  
+          Set_Is_Expanded_Prefixed_Call (Node_To_Replace);
+ 
           --  Propagate the interpretations collected in subprog to the new
           --  function call node, to be resolved from context.
  
*************** package body Sem_Ch4 is
*** 9812,9822 ****
           begin
              Error := False;
  
              Intface := First (Intface_List);
              while Present (Intface) loop
  
                 --  Look for acceptable class-wide homonyms associated with the
!                --  interface.
  
                 Traverse_Homonyms (Etype (Intface), Error);
  
--- 9715,9737 ----
           begin
              Error := False;
  
+             --  When climbing through the parents of an interface type,
+             --  look for acceptable class-wide homonyms associated with
+             --  the interface type.
+ 
+             if Is_Interface (Anc_Type) then
+                Traverse_Homonyms (Anc_Type, Error);
+ 
+                if Error then
+                   return;
+                end if;
+             end if;
+ 
              Intface := First (Intface_List);
              while Present (Intface) loop
  
                 --  Look for acceptable class-wide homonyms associated with the
!                --  interface type.
  
                 Traverse_Homonyms (Etype (Intface), Error);
  
*************** package body Sem_Ch4 is
*** 9835,9840 ****
--- 9750,9764 ----
  
                 Next (Intface);
              end loop;
+ 
+             --  For derived interface types continue the search climbing to
+             --  the parent type.
+ 
+             if Is_Interface (Anc_Type)
+               and then Etype (Anc_Type) /= Anc_Type
+             then
+                Traverse_Interfaces (Etype (Anc_Type), Error);
+             end if;
           end Traverse_Interfaces;
  
        --  Start of processing for Try_Class_Wide_Operation
*************** package body Sem_Ch4 is
*** 10580,10585 ****
--- 10504,10514 ----
        Set_Etype (Subprog, Any_Type);
        Set_Parent (New_Call_Node, Parent (Node_To_Replace));
  
+       --  Perform the analysis searching for a candidate with Report_Error
+       --  set to False (see above); if no candidate interpretation matches
+       --  the context, this analysis will be redone with Report_Error set
+       --  to True to provide additional information.
+ 
        if not Is_Overloaded (Obj) then
           Try_One_Prefix_Interpretation (Obj_Type);
  
*************** package body Sem_Ch4 is
*** 10607,10612 ****
--- 10536,10542 ----
              Complete_Object_Operation
                (Call_Node       => New_Call_Node,
                 Node_To_Replace => Node_To_Replace);
+ 
              return True;
           end if;
  
*************** package body Sem_Ch4 is
*** 10618,10635 ****
  
           if All_Errors_Mode then
              Report_Error := True;
-             if Try_Primitive_Operation
-                  (Call_Node       => New_Call_Node,
-                   Node_To_Replace => Node_To_Replace)
  
!               or else
!                 Try_Class_Wide_Operation
!                   (Call_Node       => New_Call_Node,
!                    Node_To_Replace => Node_To_Replace)
!             then
!                null;
!             end if;
  
           else
              Analyze_One_Call
                (N          => New_Call_Node,
--- 10548,10569 ----
  
           if All_Errors_Mode then
              Report_Error := True;
  
!             if not Is_Overloaded (Obj) then
!                Try_One_Prefix_Interpretation (Obj_Type);
  
+             else
+                declare
+                   I  : Interp_Index;
+                   It : Interp;
+                begin
+                   Get_First_Interp (Obj, I, It);
+                   while Present (It.Nam) loop
+                      Try_One_Prefix_Interpretation (It.Typ);
+                      Get_Next_Interp (I, It);
+                   end loop;
+                end;
+             end if;
           else
              Analyze_One_Call
                (N          => New_Call_Node,
*************** package body Sem_Ch4 is
*** 10733,10772 ****
              end loop;
  
              if No (Op_Id) then
!                Error_Msg_N ("invalid operand types for operator&", N);
  
!                if Nkind (N) /= N_Op_Concat then
!                   Error_Msg_NE ("\left operand has}!",  N, Etype (L));
!                   Error_Msg_NE ("\right operand has}!", N, Etype (R));
  
!                   --  For multiplication and division operators with
!                   --  a fixed-point operand and an integer operand,
!                   --  indicate that the integer operand should be of
!                   --  type Integer.
  
!                   if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                     and then Is_Fixed_Point_Type (Etype (L))
!                     and then Is_Integer_Type (Etype (R))
!                   then
!                      Error_Msg_N ("\convert right operand to `Integer`", N);
  
!                   elsif Nkind (N) = N_Op_Multiply
!                     and then Is_Fixed_Point_Type (Etype (R))
!                     and then Is_Integer_Type (Etype (L))
!                   then
!                      Error_Msg_N ("\convert left operand to `Integer`", N);
!                   end if;
  
!                --  For concatenation operators it is more difficult to
!                --  determine which is the wrong operand. It is worth
!                --  flagging explicitly an access type, for those who
!                --  might think that a dereference happens here.
  
!                elsif Is_Access_Type (Etype (L)) then
!                   Error_Msg_N ("\left operand is access type", N);
  
!                elsif Is_Access_Type (Etype (R)) then
!                   Error_Msg_N ("\right operand is access type", N);
                 end if;
              end if;
           end if;
--- 10667,10752 ----
              end loop;
  
              if No (Op_Id) then
!                if Debug_Flag_Underscore_DD then
!                   if Nkind (N) /= N_Op_Concat then
!                      if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                        and then Is_Fixed_Point_Type (Etype (L))
!                        and then Is_Integer_Type (Etype (R))
!                      then
!                         Record_Invalid_Operand_Types_For_Operator_R_Int_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
  
!                      elsif Nkind (N) = N_Op_Multiply
!                        and then Is_Fixed_Point_Type (Etype (R))
!                        and then Is_Integer_Type (Etype (L))
!                      then
!                         Record_Invalid_Operand_Types_For_Operator_L_Int_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
!                      else
!                         Record_Invalid_Operand_Types_For_Operator_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
!                      end if;
!                   elsif Is_Access_Type (Etype (L)) then
!                      Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
!                           (Op     => N,
!                            L      => L);
  
!                   elsif Is_Access_Type (Etype (R)) then
!                      Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
!                           (Op     => N,
!                            R      => R);
!                   else
!                      Record_Invalid_Operand_Types_For_Operator_General_Error
!                       (N);
!                   end if;
!                else
!                   Error_Msg_N ("invalid operand types for operator&", N);
  
!                   if Nkind (N) /= N_Op_Concat then
!                      Error_Msg_NE ("\left operand has}!", N, Etype (L));
!                      Error_Msg_NE ("\right operand has}!", N, Etype (R));
  
!                      --  For multiplication and division operators with
!                      --  a fixed-point operand and an integer operand,
!                      --  indicate that the integer operand should be of
!                      --  type Integer.
  
!                      if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                         and then Is_Fixed_Point_Type (Etype (L))
!                         and then Is_Integer_Type (Etype (R))
!                      then
!                         Error_Msg_N ("\convert right operand to `Integer`", N);
  
!                      elsif Nkind (N) = N_Op_Multiply
!                         and then Is_Fixed_Point_Type (Etype (R))
!                         and then Is_Integer_Type (Etype (L))
!                      then
!                         Error_Msg_N ("\convert left operand to `Integer`", N);
!                      end if;
  
!                   --  For concatenation operators it is more difficult to
!                   --  determine which is the wrong operand. It is worth
!                   --  flagging explicitly an access type, for those who
!                   --  might think that a dereference happens here.
! 
!                   elsif Is_Access_Type (Etype (L)) then
!                      Error_Msg_N ("\left operand is access type", N);
! 
!                   elsif Is_Access_Type (Etype (R)) then
!                      Error_Msg_N ("\right operand is access type", N);
!                   end if;
                 end if;
              end if;
           end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch4.ads gcc-15.1.0/gcc/ada/sem_ch4.ads
*** gcc-14.2.0/gcc/ada/sem_ch4.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch4.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch4  is
*** 50,56 ****
     procedure Analyze_Slice                     (N : Node_Id);
     procedure Analyze_Type_Conversion           (N : Node_Id);
     procedure Analyze_Unary_Op                  (N : Node_Id);
-    procedure Analyze_Unchecked_Expression      (N : Node_Id);
     procedure Analyze_Unchecked_Type_Conversion (N : Node_Id);
  
     procedure Ambiguous_Operands (N : Node_Id);
--- 50,55 ----
*************** package Sem_Ch4  is
*** 84,92 ****
     --  true then N is an N_Selected_Component node which is part of a call to
     --  an entry or procedure of a tagged concurrent type and this routine is
     --  invoked to search for class-wide subprograms conflicting with the target
!    --  entity. If Allow_Extensions is True, then a prefixed call of a primitive
!    --  of a non-tagged type is allowed as if Extensions_Allowed returned True.
!    --  This is used to issue better error messages.
  
     procedure Unresolved_Operator (N : Node_Id);
     --  Give an error for an unresolved operator
--- 83,90 ----
     --  true then N is an N_Selected_Component node which is part of a call to
     --  an entry or procedure of a tagged concurrent type and this routine is
     --  invoked to search for class-wide subprograms conflicting with the target
!    --  entity. If Allow_Extensions is True, then a prefixed call to a primitive
!    --  of an untagged type is allowed (used to give better error messages).
  
     procedure Unresolved_Operator (N : Node_Id);
     --  Give an error for an unresolved operator
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch5.adb gcc-15.1.0/gcc/ada/sem_ch5.adb
*** gcc-14.2.0/gcc/ada/sem_ch5.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch5.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Freeze;         use Freeze;
*** 39,44 ****
--- 39,45 ----
  with Ghost;          use Ghost;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Sem_Ch5 is
*** 120,125 ****
--- 121,129 ----
        Lhs : constant Node_Id := Name (N);
        Rhs : constant Node_Id := Expression (N);
  
+       Save_Full_Analysis : Boolean := False;
+       --  Force initialization to facilitate static analysis
+ 
        procedure Diagnose_Non_Variable_Lhs (N : Node_Id);
        --  N is the node for the left hand side of an assignment, and it is not
        --  a variable. This routine issues an appropriate diagnostic.
*************** package body Sem_Ch5 is
*** 317,323 ****
                             and then No (Actual_Designated_Subtype (Opnd))))
             and then not Is_Unchecked_Union (Opnd_Type)
           then
!             Decl := Build_Actual_Subtype_Of_Component (Opnd_Type, Opnd);
  
              if Present (Decl) then
                 Insert_Action (N, Decl);
--- 321,344 ----
                             and then No (Actual_Designated_Subtype (Opnd))))
             and then not Is_Unchecked_Union (Opnd_Type)
           then
!             --  If the right-hand side contains target names, expansion has
!             --  been disabled to prevent expansion that might move target
!             --  names out of the context of the assignment statement. Restore
!             --  temporarily the current compilation mode so that the actual
!             --  subtype can be built.
! 
!             if Nkind (N) = N_Assignment_Statement
!               and then Has_Target_Names (N)
!               and then Present (Current_Assignment)
!             then
!                Expander_Mode_Restore;
!                Full_Analysis := Save_Full_Analysis;
!                Decl := Build_Actual_Subtype_Of_Component (Opnd_Type, Opnd);
!                Expander_Mode_Save_And_Set (False);
!                Full_Analysis := False;
!             else
!                Decl := Build_Actual_Subtype_Of_Component (Opnd_Type, Opnd);
!             end if;
  
              if Present (Decl) then
                 Insert_Action (N, Decl);
*************** package body Sem_Ch5 is
*** 365,373 ****
        T1 : Entity_Id;
        T2 : Entity_Id;
  
-       Save_Full_Analysis : Boolean := False;
-       --  Force initialization to facilitate static analysis
- 
     --  Start of processing for Analyze_Assignment
  
     begin
--- 386,391 ----
*************** package body Sem_Ch5 is
*** 436,449 ****
                 then
                    null;
  
-                --  This may be a call to a parameterless function through an
-                --  implicit dereference, so discard interpretation as well.
- 
-                elsif Is_Entity_Name (Lhs)
-                  and then Has_Implicit_Dereference (It.Typ)
-                then
-                   null;
- 
                 elsif Has_Compatible_Type (Rhs, It.Typ) then
                    if T1 = Any_Type then
                       T1 := It.Typ;
--- 454,459 ----
*************** package body Sem_Ch5 is
*** 597,606 ****
--- 607,619 ----
  
        --  Error of assigning to limited type. We do however allow this in
        --  certain cases where the front end generates the assignments.
+       --  Comes_From_Source test is needed to allow compiler-generated
+       --  streaming/put_image subprograms, which may ignore privacy.
  
        elsif Is_Limited_Type (T1)
          and then not Assignment_OK (Lhs)
          and then not Assignment_OK (Original_Node (Lhs))
+         and then (Comes_From_Source (N) or Is_Immutably_Limited_Type (T1))
        then
           --  CPP constructors can only be called in declarations
  
*************** package body Sem_Ch5 is
*** 673,683 ****
  
        Set_Assignment_Type (Lhs, T1);
  
!       --  If the target of the assignment is an entity of a mutable type and
!       --  the expression is a conditional expression, its alternatives can be
!       --  of different subtypes of the nominal type of the LHS, so they must be
!       --  resolved with the base type, given that their subtype may differ from
!       --  that of the target mutable object.
  
        if Is_Entity_Name (Lhs)
          and then Is_Assignable (Entity (Lhs))
--- 686,702 ----
  
        Set_Assignment_Type (Lhs, T1);
  
!       --  When analyzing a mutably tagged class-wide equivalent type pretend we
!       --  are actually looking at the mutably tagged type itself for proper
!       --  analysis.
! 
!       T1 := Get_Corresponding_Mutably_Tagged_Type_If_Present (T1);
! 
!       --  If the target of the assignment is an entity of a mutably tagged type
!       --  and the expression is a conditional expression, its alternatives can
!       --  be of different subtypes of the nominal type of the LHS, so they must
!       --  be resolved with the base type, given that their subtype may differ
!       --  from that of the target mutable object.
  
        if Is_Entity_Name (Lhs)
          and then Is_Assignable (Entity (Lhs))
*************** package body Sem_Ch5 is
*** 687,692 ****
--- 706,724 ----
        then
           Resolve (Rhs, Base_Type (T1));
  
+       --  When the right hand side is a qualified expression and the left hand
+       --  side is mutably tagged we force the right hand side to be class-wide
+       --  so that they are compatible both for the purposes of checking
+       --  legality rules as well as assignment expansion.
+ 
+       elsif Is_Mutably_Tagged_Type (T1)
+         and then Nkind (Rhs) = N_Qualified_Expression
+       then
+          Make_Mutably_Tagged_Conversion (Rhs, T1);
+          Resolve (Rhs, T1);
+ 
+       --  Otherwise, resolve the right hand side normally
+ 
        else
           Resolve (Rhs, T1);
        end if;
*************** package body Sem_Ch5 is
*** 755,760 ****
--- 787,793 ----
          and then not Is_Class_Wide_Type (T2)
          and then not Is_Tag_Indeterminate (Rhs)
          and then not Is_Dynamically_Tagged (Rhs)
+         and then not Is_Mutably_Tagged_Type (T1)
        then
           Error_Msg_N ("dynamically tagged expression required!", Rhs);
        end if;
*************** package body Sem_Ch5 is
*** 1233,1241 ****
  
        begin
           --  Initialize unblocked exit count for statements of begin block
!          --  plus one for each exception handler that is present.
  
!          Unblocked_Exit_Count := 1 + List_Length (EH);
  
           --  If a label is present analyze it and mark it as referenced
  
--- 1266,1277 ----
  
        begin
           --  Initialize unblocked exit count for statements of begin block
!          --  plus one for each exception handler that is present, plus one for
!          --  the finally part if it present.
  
!          Unblocked_Exit_Count :=
!            1 + List_Length (EH)
!            + (if Present (Finally_Statements (HSS)) then 1 else 0);
  
           --  If a label is present analyze it and mark it as referenced
  
*************** package body Sem_Ch5 is
*** 1473,1479 ****
        --  out non-discretes may resolve the ambiguity.
        --  But GNAT extensions allow casing on non-discretes.
  
!       elsif Core_Extensions_Allowed and then Is_Overloaded (Exp) then
  
           --  It would be nice if we could generate all the right error
           --  messages by calling "Resolve (Exp, Any_Type);" in the
--- 1509,1515 ----
        --  out non-discretes may resolve the ambiguity.
        --  But GNAT extensions allow casing on non-discretes.
  
!       elsif All_Extensions_Allowed and then Is_Overloaded (Exp) then
  
           --  It would be nice if we could generate all the right error
           --  messages by calling "Resolve (Exp, Any_Type);" in the
*************** package body Sem_Ch5 is
*** 1491,1502 ****
        --  Check for a GNAT-extension "general" case statement (i.e., one where
        --  the type of the selecting expression is not discrete).
  
!       elsif Core_Extensions_Allowed
           and then not Is_Discrete_Type (Etype (Exp))
        then
           Resolve (Exp, Etype (Exp));
           Exp_Type := Etype (Exp);
           Is_General_Case_Statement := True;
        else
           Analyze_And_Resolve (Exp, Any_Discrete);
           Exp_Type := Etype (Exp);
--- 1527,1547 ----
        --  Check for a GNAT-extension "general" case statement (i.e., one where
        --  the type of the selecting expression is not discrete).
  
!       elsif All_Extensions_Allowed
           and then not Is_Discrete_Type (Etype (Exp))
        then
           Resolve (Exp, Etype (Exp));
           Exp_Type := Etype (Exp);
           Is_General_Case_Statement := True;
+          if not (Is_Record_Type (Exp_Type) or Is_Array_Type (Exp_Type)) then
+             Error_Msg_N
+               ("selecting expression of general case statement " &
+                "must be a record or an array",
+                Exp);
+ 
+             --  Avoid cascading errors
+             return;
+          end if;
        else
           Analyze_And_Resolve (Exp, Any_Discrete);
           Exp_Type := Etype (Exp);
*************** package body Sem_Ch5 is
*** 1529,1535 ****
             ("(Ada 83) case expression cannot be of a generic type", Exp);
           return;
  
!       elsif not Core_Extensions_Allowed
          and then not Is_Discrete_Type (Exp_Type)
        then
           Error_Msg_N
--- 1574,1580 ----
             ("(Ada 83) case expression cannot be of a generic type", Exp);
           return;
  
!       elsif not All_Extensions_Allowed
          and then not Is_Discrete_Type (Exp_Type)
        then
           Error_Msg_N
*************** package body Sem_Ch5 is
*** 1681,1686 ****
--- 1726,1758 ----
           end if;
        end loop;
  
+       Finally_Legality_Check : declare
+          --  The following value can actually be a block statement due to
+          --  expansion, but we call it Target_Loop_Statement because it was
+          --  originally a loop statement.
+          Target_Loop_Statement : constant Node_Id :=
+            (if Present (U_Name) then Label_Construct ((Parent (U_Name)))
+             else Empty);
+ 
+          X : Node_Id := N;
+       begin
+          while Present (X) loop
+             if Nkind (X) = N_Loop_Statement
+               and then (No (Target_Loop_Statement)
+                         or else X = Target_Loop_Statement)
+             then
+                exit;
+             elsif Nkind (Parent (X)) = N_Handled_Sequence_Of_Statements
+               and then Is_List_Member (X)
+               and then List_Containing (X) = Finally_Statements (Parent (X))
+             then
+                Error_Msg_N ("cannot exit out of finally part", N);
+                exit;
+             end if;
+             X := Parent (X);
+          end loop;
+       end Finally_Legality_Check;
+ 
        --  Verify that if present the condition is a Boolean expression
  
        if Present (Cond) then
*************** package body Sem_Ch5 is
*** 1742,1747 ****
--- 1814,1841 ----
           return;
        end if;
  
+       Finally_Legality_Check : declare
+          LCA : constant Union_Id :=
+            Lowest_Common_Ancestor (N, Label_Construct (Parent (Label_Ent)));
+ 
+          N1 : Union_Id := Union_Id (N);
+          N2 : Union_Id;
+       begin
+          while N1 /= LCA loop
+             N2 := Parent_Or_List_Containing (N1);
+ 
+             if N2 in Node_Range
+               and then Nkind (Node_Id (N2)) = N_Handled_Sequence_Of_Statements
+               and then Union_Id (Finally_Statements (Node_Id (N2))) = N1
+             then
+                Error_Msg_N ("cannot goto out of finally part", N);
+                exit;
+             end if;
+ 
+             N1 := N2;
+          end loop;
+       end Finally_Legality_Check;
+ 
        --  Here if goto passes initial validity checks
  
        Label_Scope := Enclosing_Scope (Label_Ent);
*************** package body Sem_Ch5 is
*** 2158,2164 ****
           return Etype (Ent);
        end Get_Cursor_Type;
  
!    --   Start of processing for Analyze_Iterator_Specification
  
     begin
        Enter_Name (Def_Id);
--- 2252,2258 ----
           return Etype (Ent);
        end Get_Cursor_Type;
  
!    --  Start of processing for Analyze_Iterator_Specification
  
     begin
        Enter_Name (Def_Id);
*************** package body Sem_Ch5 is
*** 2488,2493 ****
--- 2582,2594 ----
                 Error_Msg_N
                   ("iterable name cannot be a discriminant-dependent "
                    & "component of a mutable object", N);
+ 
+             elsif Depends_On_Mutably_Tagged_Ext_Comp
+                     (Original_Node (Iter_Name))
+             then
+                Error_Msg_N
+                  ("iterable name cannot depend on a mutably tagged component",
+                   N);
              end if;
  
              Check_Subtype_Definition (Component_Type (Typ));
*************** package body Sem_Ch5 is
*** 2618,2623 ****
--- 2719,2731 ----
                          Error_Msg_N
                            ("container cannot be a discriminant-dependent "
                             & "component of a mutable object", N);
+ 
+                      elsif Depends_On_Mutably_Tagged_Ext_Comp
+                              (Orig_Iter_Name)
+                      then
+                         Error_Msg_N
+                           ("container cannot depend on a mutably tagged "
+                            & "component", N);
                       end if;
                    end if;
                 end;
*************** package body Sem_Ch5 is
*** 2704,2709 ****
--- 2812,2822 ----
                       Error_Msg_N
                         ("container cannot be a discriminant-dependent "
                          & "component of a mutable object", N);
+ 
+                   elsif Depends_On_Mutably_Tagged_Ext_Comp (Obj) then
+                      Error_Msg_N
+                        ("container cannot depend on a mutably tagged"
+                         & " component", N);
                    end if;
                 end;
              end if;
*************** package body Sem_Ch5 is
*** 3201,3231 ****
        end if;
  
        Mutate_Ekind (Id, E_Loop_Parameter);
!       Set_Is_Not_Self_Hidden (Id);
! 
!       --  A quantified expression which appears in a pre- or post-condition may
!       --  be analyzed multiple times. The analysis of the range creates several
!       --  itypes which reside in different scopes depending on whether the pre-
!       --  or post-condition has been expanded. Update the type of the loop
!       --  variable to reflect the proper itype at each stage of analysis.
! 
!       --  Loop_Nod might not be present when we are preanalyzing a class-wide
!       --  pre/postcondition since preanalysis occurs in a place unrelated to
!       --  the actual code and the quantified expression may be the outermost
!       --  expression of the class-wide condition.
  
!       if No (Etype (Id))
!         or else Etype (Id) = Any_Type
!         or else
!           (Present (Etype (Id))
!             and then Is_Itype (Etype (Id))
!             and then Present (Loop_Nod)
!             and then Nkind (Parent (Loop_Nod)) = N_Expression_With_Actions
!             and then Nkind (Original_Node (Parent (Loop_Nod))) =
!                                                    N_Quantified_Expression)
!       then
!          Set_Etype (Id, Etype (DS));
!       end if;
  
        --  Treat a range as an implicit reference to the type, to inhibit
        --  spurious warnings.
--- 3314,3322 ----
        end if;
  
        Mutate_Ekind (Id, E_Loop_Parameter);
!       Set_Etype (Id, Etype (DS));
  
!       Set_Is_Not_Self_Hidden (Id);
  
        --  Treat a range as an implicit reference to the type, to inhibit
        --  spurious warnings.
*************** package body Sem_Ch5 is
*** 3281,3287 ****
                    --  set the appropriate flag to remove the loop entirely
                    --  during expansion.
  
!                   Set_Is_Null_Loop (Loop_Nod);
                    Null_Range := True;
                 end if;
  
--- 3372,3381 ----
                    --  set the appropriate flag to remove the loop entirely
                    --  during expansion.
  
!                   if Nkind (Loop_Nod) = N_Loop_Statement then
!                      Set_Is_Null_Loop (Loop_Nod);
!                   end if;
! 
                    Null_Range := True;
                 end if;
  
*************** package body Sem_Ch5 is
*** 3289,3312 ****
                 --  instance, since in practice they tend to be dubious in these
                 --  cases since they can result from intended parameterization.
  
!                if not Inside_A_Generic and then not In_Instance then
  
                    --  Specialize msg if invalid values could make the loop
                    --  non-null after all.
  
                    if Null_Range then
!                      if Comes_From_Source (N) then
!                         Error_Msg_N
!                           ("??loop range is null, loop will not execute", DS);
!                      end if;
  
                    --  Here is where the loop could execute because of
                    --  invalid values, so issue appropriate message.
  
!                   elsif Comes_From_Source (N) then
                       Error_Msg_N
!                        ("??loop range may be null, loop may not execute",
!                         DS);
                       Error_Msg_N
                         ("??can only execute if invalid values are present",
                          DS);
--- 3383,3407 ----
                 --  instance, since in practice they tend to be dubious in these
                 --  cases since they can result from intended parameterization.
  
!                if Comes_From_Source (N)
!                  and then not Inside_A_Generic
!                  and then not In_Instance
!                then
  
                    --  Specialize msg if invalid values could make the loop
                    --  non-null after all.
  
                    if Null_Range then
!                      Error_Msg_N
!                        ("??loop range is null, loop will not execute", DS);
  
                    --  Here is where the loop could execute because of
                    --  invalid values, so issue appropriate message.
  
!                   else
                       Error_Msg_N
!                        ("??loop range may be null, loop may not execute", DS);
! 
                       Error_Msg_N
                         ("??can only execute if invalid values are present",
                          DS);
*************** package body Sem_Ch5 is
*** 3317,3323 ****
                 --  since it is likely that these warnings will be inappropriate
                 --  if the loop never actually executes, which is likely.
  
!                Set_Suppress_Loop_Warnings (Loop_Nod);
  
                 --  The other case for a warning is a reverse loop where the
                 --  upper bound is the integer literal zero or one, and the
--- 3412,3420 ----
                 --  since it is likely that these warnings will be inappropriate
                 --  if the loop never actually executes, which is likely.
  
!                if Nkind (Loop_Nod) = N_Loop_Statement then
!                   Set_Suppress_Loop_Warnings (Loop_Nod);
!                end if;
  
                 --  The other case for a warning is a reverse loop where the
                 --  upper bound is the integer literal zero or one, and the
*************** package body Sem_Ch5 is
*** 3419,3430 ****
                            Subtype_Mark (DS));
                       end if;
  
!                      Set_Is_Null_Loop (Loop_Nod);
!                      Null_Range := True;
  
!                      --  Suppress other warnings about the body of the loop, as
!                      --  it will never execute.
!                      Set_Suppress_Loop_Warnings (Loop_Nod);
                    end if;
                 end;
              end if;
--- 3516,3528 ----
                            Subtype_Mark (DS));
                       end if;
  
!                      if Nkind (Loop_Nod) = N_Loop_Statement then
!                         Set_Is_Null_Loop (Loop_Nod);
  
!                         --  Suppress other warnings about the body of the loop,
!                         --  as it will never execute.
!                         Set_Suppress_Loop_Warnings (Loop_Nod);
!                      end if;
                    end if;
                 end;
              end if;
*************** package body Sem_Ch5 is
*** 3754,3773 ****
                 Rng_Typ := Etype (Rng_Copy);
  
                 --  Wrap the loop statement within a block in order to manage
!                --  the secondary stack when the discrete range is
                 --
!                --    * Either a Forward_Iterator or a Reverse_Iterator
                 --
!                --    * Function call whose return type requires finalization
!                --      actions.
! 
!                --  ??? it is unclear why using Has_Sec_Stack_Call directly on
!                --  the discrete range causes the freeze node of an itype to be
!                --  in the wrong scope in complex assertion expressions.
  
                 if Is_Iterator (Rng_Typ)
!                  or else (Nkind (Rng_Copy) = N_Function_Call
!                            and then Needs_Finalization (Rng_Typ))
                 then
                    Wrap_Loop_Statement (Manage_Sec_Stack => True);
                    Stop_Processing := True;
--- 3852,3867 ----
                 Rng_Typ := Etype (Rng_Copy);
  
                 --  Wrap the loop statement within a block in order to manage
!                --  the secondary stack when the discrete range:
                 --
!                --    * is either a Forward_Iterator or a Reverse_Iterator
!                --  or
                 --
!                --    * contains a function call that returns on the secondary
!                --      stack.
  
                 if Is_Iterator (Rng_Typ)
!                  or else Has_Sec_Stack_Call (Rng_Copy)
                 then
                    Wrap_Loop_Statement (Manage_Sec_Stack => True);
                    Stop_Processing := True;
*************** package body Sem_Ch5 is
*** 3782,3789 ****
           procedure Wrap_Loop_Statement (Manage_Sec_Stack : Boolean) is
              Loc : constant Source_Ptr := Sloc (N);
  
!             Blk    : Node_Id;
!             Blk_Id : Entity_Id;
  
           begin
              Blk :=
--- 3876,3884 ----
           procedure Wrap_Loop_Statement (Manage_Sec_Stack : Boolean) is
              Loc : constant Source_Ptr := Sloc (N);
  
!             Blk     : Node_Id;
!             Blk_Id  : Entity_Id;
!             Loop_Id : constant Entity_Id := Entity (Identifier (N));
  
           begin
              Blk :=
*************** package body Sem_Ch5 is
*** 3798,3803 ****
--- 3893,3904 ----
  
              Rewrite (N, Blk);
              Analyze (N);
+ 
+             --  Transfer the loop entity from its old scope to the new block
+             --  scope.
+ 
+             Remove_Entity (Loop_Id);
+             Append_Entity (Loop_Id, Blk_Id);
           end Wrap_Loop_Statement;
  
           --  Local variables
*************** package body Sem_Ch5 is
*** 3941,3947 ****
        Push_Scope (Ent);
        Analyze_Iteration_Scheme (Iter);
  
!       --  Check for following case which merits a warning if the type E of is
        --  a multi-dimensional array (and no explicit subscript ranges present).
  
        --      for J in E'Range
--- 4042,4048 ----
        Push_Scope (Ent);
        Analyze_Iteration_Scheme (Iter);
  
!       --  Check for following case which merits a warning if the type of E is
        --  a multi-dimensional array (and no explicit subscript ranges present).
  
        --      for J in E'Range
*************** package body Sem_Ch5 is
*** 3966,3971 ****
--- 4067,4076 ----
                      and then Number_Dimensions (Typ) > 1
                      and then Nkind (Parent (N)) = N_Loop_Statement
                      and then Present (Iteration_Scheme (Parent (N)))
+                   --  The next conjunct tests that the enclosing loop is
+                   --  a for loop and not a while loop.
+                     and then Present (Loop_Parameter_Specification
+                       (Iteration_Scheme (Parent (N))))
                    then
                       declare
                          OIter : constant Node_Id :=
*************** package body Sem_Ch5 is
*** 4163,4168 ****
--- 4268,4274 ----
                 if Current = Expression (Context) then
                    pragma Assert (Context = Current_Assignment);
                    Set_Etype (N, Etype (Name (Current_Assignment)));
+                   Analyze_Dimension (N);
                 else
                    Report_Error;
                 end if;
*************** package body Sem_Ch5 is
*** 4225,4230 ****
--- 4331,4338 ----
                   ("implicit label declaration for & is hidden#",
                    Identifier (S));
              end if;
+          else
+             Inspect_Deferred_Constant_Completion (S);
           end if;
  
           Next (S);
*************** package body Sem_Ch5 is
*** 4497,4530 ****
        ----------------
  
        function Check_Call (N : Node_Id) return Traverse_Result is
-          Nam  : Node_Id;
           Subp : Entity_Id;
-          Typ  : Entity_Id;
  
        begin
           if Nkind (N) = N_Function_Call then
!             Nam := Name (N);
! 
!             --  Obtain the subprogram being invoked
! 
!             loop
!                if Nkind (Nam) = N_Explicit_Dereference then
!                   Nam := Prefix (Nam);
! 
!                elsif Nkind (Nam) = N_Selected_Component then
!                   Nam := Selector_Name (Nam);
! 
!                else
!                   exit;
!                end if;
!             end loop;
! 
!             Subp := Entity (Nam);
  
              if Present (Subp) then
!                Typ := Etype (Subp);
! 
!                if Requires_Transient_Scope (Typ) then
                    return Abandon;
  
                 elsif Sec_Stack_Needed_For_Return (Subp) then
--- 4605,4618 ----
        ----------------
  
        function Check_Call (N : Node_Id) return Traverse_Result is
           Subp : Entity_Id;
  
        begin
           if Nkind (N) = N_Function_Call then
!             Subp := Get_Called_Entity (N);
  
              if Present (Subp) then
!                if Requires_Transient_Scope (Etype (Subp)) then
                    return Abandon;
  
                 elsif Sec_Stack_Needed_For_Return (Subp) then
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch5.ads gcc-15.1.0/gcc/ada/sem_ch5.ads
*** gcc-14.2.0/gcc/ada/sem_ch5.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch5.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch6.adb gcc-15.1.0/gcc/ada/sem_ch6.adb
*** gcc-14.2.0/gcc/ada/sem_ch6.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch6.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo.Utils;    use Einfo.Utils;
*** 35,40 ****
--- 35,41 ----
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Expander;       use Expander;
+ with Exp_Aggr;       use Exp_Aggr;
  with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch9;        use Exp_Ch9;
*************** package body Sem_Ch6 is
*** 224,233 ****
     --  Create the declaration for an inequality operator that is implicitly
     --  created by a user-defined equality operator that yields a boolean.
  
-    procedure Preanalyze_Formal_Expression (N : Node_Id; T : Entity_Id);
-    --  Preanalysis of default expressions of subprogram formals. N is the
-    --  expression to be analyzed and T is the expected type.
- 
     procedure Set_Formal_Mode (Formal_Id : Entity_Id);
     --  Set proper Ekind to reflect formal mode (in, out, in out), and set
     --  miscellaneous other attributes.
--- 225,230 ----
*************** package body Sem_Ch6 is
*** 313,319 ****
        Typ      : Entity_Id := Empty;
  
        Def_Id : Entity_Id := Empty;
!       Prev   : Entity_Id;
        --  If the expression is a completion, Prev is the entity whose
        --  declaration is completed. Def_Id is needed to analyze the spec.
  
--- 310,316 ----
        Typ      : Entity_Id := Empty;
  
        Def_Id : Entity_Id := Empty;
!       Prev   : Entity_Id := Current_Entity_In_Scope (Defining_Entity (Spec));
        --  If the expression is a completion, Prev is the entity whose
        --  declaration is completed. Def_Id is needed to analyze the spec.
  
*************** package body Sem_Ch6 is
*** 328,337 ****
        Inline_Processing_Required := True;
  
        --  Create a specification for the generated body. This must be done
!       --  prior to the analysis of the initial declaration.
  
        New_Spec := Copy_Subprogram_Spec (Spec);
!       Prev     := Current_Entity_In_Scope (Defining_Entity (Spec));
  
        --  If there are previous overloadable entities with the same name,
        --  check whether any of them is completed by the expression function.
--- 325,348 ----
        Inline_Processing_Required := True;
  
        --  Create a specification for the generated body. This must be done
!       --  prior to the analysis of the initial declaration. We mark the
!       --  generated Defining_Unit_Name as Comes_From_Source to avoid
!       --  suppressing warnings on it. We do not do that in instances,
!       --  because of arcane interactions with ghost generics.
  
        New_Spec := Copy_Subprogram_Spec (Spec);
!       if not In_Instance then
!          Set_Comes_From_Source (Defining_Unit_Name (New_Spec));
!       end if;
! 
!       --  Copy SPARK pragma from expression function
! 
!       Set_SPARK_Pragma
!         (Defining_Unit_Name (New_Spec),
!          SPARK_Pragma (Defining_Unit_Name (Spec)));
!       Set_SPARK_Pragma_Inherited
!         (Defining_Unit_Name (New_Spec),
!          SPARK_Pragma_Inherited (Defining_Unit_Name (Spec)));
  
        --  If there are previous overloadable entities with the same name,
        --  check whether any of them is completed by the expression function.
*************** package body Sem_Ch6 is
*** 416,421 ****
--- 427,438 ----
           --  As elsewhere, we do not emit freeze nodes within a generic unit.
  
           if not Inside_A_Generic then
+             --  Set the parent of the new node to be the parent of the original
+             --  to get the proper context, which is needed for complete error
+             --  reporting and for semantic analysis.
+ 
+             Set_Parent (New_Body, Parent (N));
+ 
              Freeze_Expr_Types
                (Def_Id => Def_Id,
                 Typ    => Typ,
*************** package body Sem_Ch6 is
*** 516,544 ****
           Set_Corresponding_Body (N, Defining_Entity (New_Body));
           Set_Corresponding_Spec (New_Body, Def_Id);
  
-          --  Within a generic preanalyze the original expression for name
-          --  capture. The body is also generated but plays no role in
-          --  this because it is not part of the original source.
-          --  If this is an ignored Ghost entity, analysis of the generated
-          --  body is needed to hide external references (as is done in
-          --  Analyze_Subprogram_Body) after which the subprogram profile
-          --  can be frozen, which is needed to expand calls to such an ignored
-          --  Ghost subprogram.
- 
-          if Inside_A_Generic then
-             Set_Has_Completion (Def_Id, not Is_Ignored_Ghost_Entity (Def_Id));
-             Push_Scope (Def_Id);
-             Install_Formals (Def_Id);
-             Preanalyze_Spec_Expression (Expr, Typ);
-             End_Scope;
-          else
-             Push_Scope (Def_Id);
-             Install_Formals (Def_Id);
-             Preanalyze_Formal_Expression (Expr, Typ);
-             Check_Limited_Return (Orig_N, Expr, Typ);
-             End_Scope;
-          end if;
- 
           --  If this is a wrapper created in an instance for a formal
           --  subprogram, insert body after declaration, to be analyzed when the
           --  enclosing instance is analyzed.
--- 533,538 ----
*************** package body Sem_Ch6 is
*** 574,579 ****
--- 568,596 ----
              end;
           end if;
  
+          --  Within a generic preanalyze the original expression for name
+          --  capture. The body is also generated but plays no role in
+          --  this because it is not part of the original source.
+          --  If this is an ignored Ghost entity, analysis of the generated
+          --  body is needed to hide external references (as is done in
+          --  Analyze_Subprogram_Body) after which the subprogram profile
+          --  can be frozen, which is needed to expand calls to such an ignored
+          --  Ghost subprogram.
+ 
+          if Inside_A_Generic then
+             Set_Has_Completion (Def_Id, not Is_Ignored_Ghost_Entity (Def_Id));
+             Push_Scope (Def_Id);
+             Install_Formals (Def_Id);
+             Preanalyze_Spec_Expression (Expr, Typ);
+             End_Scope;
+          else
+             Push_Scope (Def_Id);
+             Install_Formals (Def_Id);
+             Preanalyze_Spec_Expression (Expr, Typ);
+             Check_Limited_Return (Orig_N, Expr, Typ);
+             End_Scope;
+          end if;
+ 
           --  In the case of an expression function marked with the aspect
           --  Static, we need to check the requirement that the function's
           --  expression is a potentially static expression. This is done
*************** package body Sem_Ch6 is
*** 600,606 ****
                    begin
                       Set_Checking_Potentially_Static_Expression (True);
  
!                      Preanalyze_Formal_Expression (Exp_Copy, Typ);
  
                       if not Is_Static_Expression (Exp_Copy) then
                          Error_Msg_N
--- 617,623 ----
                    begin
                       Set_Checking_Potentially_Static_Expression (True);
  
!                      Preanalyze_Spec_Expression (Exp_Copy, Typ);
  
                       if not Is_Static_Expression (Exp_Copy) then
                          Error_Msg_N
*************** package body Sem_Ch6 is
*** 980,992 ****
           --  The return value is converted to the return type of the function,
           --  which implies a predicate check if the return type is predicated.
           --  We do not apply the check for an extended return statement because
!          --  Analyze_Object_Declaration has already done it on Obj_Decl above.
!          --  We do not apply the check to a case expression because it will
!          --  be expanded into a series of return statements, each of which
           --  will receive a predicate check.
  
           if Nkind (N) /= N_Extended_Return_Statement
             and then Nkind (Expr) /= N_Case_Expression
           then
              Apply_Predicate_Check (Expr, R_Type);
           end if;
--- 997,1013 ----
           --  The return value is converted to the return type of the function,
           --  which implies a predicate check if the return type is predicated.
           --  We do not apply the check for an extended return statement because
!          --  Analyze_Object_Declaration has already done it on Obj_Decl above,
!          --  or to a delayed aggregate because the return will be turned into
!          --  an extended return by Expand_Simple_Function_Return in this case.
!          --  We do not apply the check to a conditional expression because it
!          --  will be expanded into a series of return statements, each of which
           --  will receive a predicate check.
  
           if Nkind (N) /= N_Extended_Return_Statement
+            and then not Is_Delayed_Aggregate (Expr)
             and then Nkind (Expr) /= N_Case_Expression
+            and then Nkind (Expr) /= N_If_Expression
           then
              Apply_Predicate_Check (Expr, R_Type);
           end if;
*************** package body Sem_Ch6 is
*** 1353,1363 ****
        Form       : Node_Id;
        Null_Body  : Node_Id := Empty;
        Null_Stmt  : Node_Id := Null_Statement (Spec);
!       Prev       : Entity_Id;
  
     begin
-       Prev := Current_Entity_In_Scope (Defining_Entity (Spec));
- 
        --  A null procedure is Ghost when it is stand-alone and is subject to
        --  pragma Ghost, or when the corresponding spec is Ghost. Set the mode
        --  now, to ensure that any nodes generated during analysis and expansion
--- 1374,1383 ----
        Form       : Node_Id;
        Null_Body  : Node_Id := Empty;
        Null_Stmt  : Node_Id := Null_Statement (Spec);
!       Prev       : Entity_Id :=
!         Current_Entity_In_Scope (Defining_Entity (Spec));
  
     begin
        --  A null procedure is Ghost when it is stand-alone and is subject to
        --  pragma Ghost, or when the corresponding spec is Ghost. Set the mode
        --  now, to ensure that any nodes generated during analysis and expansion
*************** package body Sem_Ch6 is
*** 1937,1944 ****
        --  Check that pragma No_Return is obeyed. Don't complain about the
        --  implicitly-generated return that is placed at the end.
  
!       if No_Return (Scope_Id)
!         and then Kind in E_Procedure | E_Generic_Procedure
          and then Comes_From_Source (N)
        then
           Error_Msg_N
--- 1957,1964 ----
        --  Check that pragma No_Return is obeyed. Don't complain about the
        --  implicitly-generated return that is placed at the end.
  
!       if Kind in E_Procedure | E_Generic_Procedure
!         and then No_Return (Scope_Id)
          and then Comes_From_Source (N)
        then
           Error_Msg_N
*************** package body Sem_Ch6 is
*** 2008,2013 ****
--- 2028,2050 ----
           End_Scope;
        end if;
  
+       Finally_Legality_Check : declare
+          X : Node_Id := N;
+       begin
+          while Present (X) loop
+             if Nkind (X) in N_Proper_Body then
+                exit;
+             elsif Nkind (Parent (X)) = N_Handled_Sequence_Of_Statements
+               and then Is_List_Member (X)
+               and then List_Containing (X) = Finally_Statements (Parent (X))
+             then
+                Error_Msg_N ("cannot return out of finally part", N);
+                exit;
+             end if;
+             X := Parent (X);
+          end loop;
+       end Finally_Legality_Check;
+ 
        Kill_Current_Values (Last_Assignment_Only => True);
        Check_Unreachable_Code (N);
  
*************** package body Sem_Ch6 is
*** 2686,2707 ****
  
           Analyze (Subp_Decl);
  
-          --  Propagate the attributes Rewritten_For_C and Corresponding_Proc to
-          --  the body since the expander may generate calls using that entity.
-          --  Required to ensure that Expand_Call rewrites calls to this
-          --  function by calls to the built procedure.
- 
-          if Transform_Function_Array
-            and then Nkind (Body_Spec) = N_Function_Specification
-            and then
-              Rewritten_For_C (Defining_Entity (Specification (Subp_Decl)))
-          then
-             Set_Rewritten_For_C (Defining_Entity (Body_Spec));
-             Set_Corresponding_Procedure (Defining_Entity (Body_Spec),
-               Corresponding_Procedure
-                 (Defining_Entity (Specification (Subp_Decl))));
-          end if;
- 
           --  Analyze any relocated source pragmas or pragmas created for aspect
           --  specifications.
  
--- 2723,2728 ----
*************** package body Sem_Ch6 is
*** 3740,3757 ****
                   and then not Inside_A_Generic
                 then
                    Build_Subprogram_Declaration;
- 
-                --  If this is a function that returns a constrained array, and
-                --  Transform_Function_Array is set, create subprogram
-                --  declaration to simplify e.g. subsequent C generation.
- 
-                elsif No (Spec_Id)
-                  and then Transform_Function_Array
-                  and then Nkind (Body_Spec) = N_Function_Specification
-                  and then Is_Array_Type (Etype (Body_Id))
-                  and then Is_Constrained (Etype (Body_Id))
-                then
-                   Build_Subprogram_Declaration;
                 end if;
              end if;
  
--- 3761,3766 ----
*************** package body Sem_Ch6 is
*** 3830,3889 ****
           Spec_Id := Build_Internal_Protected_Declaration (N);
        end if;
  
-       --  If Transform_Function_Array is set and this is a function returning a
-       --  constrained array type for which we must create a procedure with an
-       --  extra out parameter, build and analyze the body now. The procedure
-       --  declaration has already been created. We reuse the source body of the
-       --  function, because in an instance it may contain global references
-       --  that cannot be reanalyzed. The source function itself is not used any
-       --  further, so we mark it as having a completion. If the subprogram is a
-       --  stub the transformation is done later, when the proper body is
-       --  analyzed.
- 
-       if Expander_Active
-         and then Transform_Function_Array
-         and then Nkind (N) /= N_Subprogram_Body_Stub
-       then
-          declare
-             S         : constant Entity_Id :=
-                           (if Present (Spec_Id)
-                            then Spec_Id
-                            else Defining_Unit_Name (Specification (N)));
-             Proc_Body : Node_Id;
- 
-          begin
-             if Ekind (S) = E_Function and then Rewritten_For_C (S) then
-                Set_Has_Completion (S);
-                Proc_Body := Build_Procedure_Body_Form (S, N);
- 
-                if Present (Spec_Id) then
-                   Rewrite (N, Proc_Body);
-                   Analyze (N);
- 
-                   --  The entity for the created procedure must remain
-                   --  invisible, so it does not participate in resolution of
-                   --  subsequent references to the function.
- 
-                   Set_Is_Immediately_Visible (Corresponding_Spec (N), False);
- 
-                --  If we do not have a separate spec for N, build one and
-                --  insert the new body right after.
- 
-                else
-                   Rewrite (N,
-                     Make_Subprogram_Declaration (Loc,
-                       Specification => Relocate_Node (Specification (N))));
-                   Analyze (N);
-                   Insert_After_And_Analyze (N, Proc_Body);
-                   Set_Is_Immediately_Visible
-                     (Corresponding_Spec (Proc_Body), False);
-                end if;
- 
-                goto Leave;
-             end if;
-          end;
-       end if;
- 
        --  If a separate spec is present, then deal with freezing issues
  
        if Present (Spec_Id) then
--- 3839,3844 ----
*************** package body Sem_Ch6 is
*** 4083,4088 ****
--- 4038,4052 ----
           else
              Set_Corresponding_Spec (N, Spec_Id);
  
+             --  The body entity is not used for semantics or code generation,
+             --  but it is attached to the entity list of the enclosing scope
+             --  to allow listing its entities when outputting representation
+             --  information.
+ 
+             if Scope (Spec_Id) /= Standard_Standard then
+                Append_Entity (Body_Id, Scope (Spec_Id));
+             end if;
+ 
              --  Ada 2005 (AI-345): If the operation is a primitive operation
              --  of a concurrent type, the type of the first parameter has been
              --  replaced with the corresponding record, which is the proper
*************** package body Sem_Ch6 is
*** 4199,4205 ****
                 Set_Is_Public (Body_Id, False);
              end if;
  
!             Freeze_Before (N, Body_Id);
           end if;
  
           if Nkind (N) /= N_Subprogram_Body_Stub then
--- 4163,4171 ----
                 Set_Is_Public (Body_Id, False);
              end if;
  
!             if not Has_Delayed_Freeze (Body_Id) then
!                Freeze_Before (N, Body_Id);
!             end if;
           end if;
  
           if Nkind (N) /= N_Subprogram_Body_Stub then
*************** package body Sem_Ch6 is
*** 4593,4600 ****
        --  may now appear in parameter and result profiles. Since the analysis
        --  of a subprogram body may use the parameter and result profile of the
        --  spec, swap any limited views with their non-limited counterpart.
  
!       if Ada_Version >= Ada_2012 and then Present (Spec_Id) then
           Exch_Views := Exchange_Limited_Views (Spec_Id);
        end if;
  
--- 4559,4568 ----
        --  may now appear in parameter and result profiles. Since the analysis
        --  of a subprogram body may use the parameter and result profile of the
        --  spec, swap any limited views with their non-limited counterpart.
+       --
+       --  Note that the non-limited view should also be exchanged in Ada 2005.
  
!       if Ada_Version >= Ada_2005 and then Present (Spec_Id) then
           Exch_Views := Exchange_Limited_Views (Spec_Id);
        end if;
  
*************** package body Sem_Ch6 is
*** 4971,4978 ****
           --  Skip the check for subprograms generated for protected subprograms
           --  because it is also done for the protected subprograms themselves.
  
!          elsif Present (Spec_Id)
!            and then Present (Protected_Subprogram (Spec_Id))
           then
              null;
  
--- 4939,4949 ----
           --  Skip the check for subprograms generated for protected subprograms
           --  because it is also done for the protected subprograms themselves.
  
!          elsif (Present (Spec_Id)
!                  and then Present (Protected_Subprogram (Spec_Id)))
!            or else
!              (Acts_As_Spec (N)
!                and then Present (Protected_Subprogram (Body_Id)))
           then
              null;
  
*************** package body Sem_Ch6 is
*** 5202,5215 ****
  
        if Nkind (Parent (N)) = N_Compilation_Unit then
           Set_Body_Required (Parent (N), True);
- 
-          if Ada_Version >= Ada_2005
-            and then Nkind (Specification (N)) = N_Procedure_Specification
-            and then Null_Present (Specification (N))
-          then
-             Error_Msg_N
-               ("null procedure cannot be declared at library level", N);
-          end if;
        end if;
  
        Generate_Reference_To_Formals (Designator);
--- 5173,5178 ----
*************** package body Sem_Ch6 is
*** 6493,6498 ****
--- 6456,6513 ----
              OldD : constant Boolean :=
                       Present (Expression (Parent (Old_Discr)));
  
+             function Has_Tagged_Limited_Partial_View
+               (Typ : Entity_Id) return Boolean;
+             --  Returns True iff Typ has a tagged limited partial view.
+ 
+             function Is_Derived_From_Immutably_Limited_Type
+               (Typ : Entity_Id) return Boolean;
+             --  Returns True iff Typ is a derived type (tagged or not)
+             --  whose ancestor type is immutably limited. The unusual
+             --  ("unusual" is one word for it) thing about this function
+             --  is that it handles the case where the ancestor name's Entity
+             --  attribute has not been set yet.
+ 
+             -------------------------------------
+             -- Has_Tagged_Limited_Partial_View --
+             -------------------------------------
+ 
+             function Has_Tagged_Limited_Partial_View
+               (Typ : Entity_Id) return Boolean
+             is
+                Priv : constant Entity_Id := Incomplete_Or_Partial_View (Typ);
+             begin
+                return Present (Priv)
+                  and then not Is_Incomplete_Type (Priv)
+                  and then Is_Tagged_Type (Priv)
+                  and then Limited_Present (Parent (Priv));
+             end Has_Tagged_Limited_Partial_View;
+ 
+             --------------------------------------------
+             -- Is_Derived_From_Immutably_Limited_Type --
+             --------------------------------------------
+ 
+             function Is_Derived_From_Immutably_Limited_Type
+               (Typ : Entity_Id) return Boolean
+             is
+                Type_Def : constant Node_Id := Type_Definition (Parent (Typ));
+                Parent_Name : Node_Id;
+             begin
+                if Nkind (Type_Def) /= N_Derived_Type_Definition then
+                   return False;
+                end if;
+                Parent_Name := Subtype_Indication (Type_Def);
+                if Nkind (Parent_Name) = N_Subtype_Indication then
+                   Parent_Name := Subtype_Mark (Parent_Name);
+                end if;
+                if Parent_Name not in N_Has_Entity_Id
+                  or else No (Entity (Parent_Name))
+                then
+                   Find_Type (Parent_Name);
+                end if;
+                return Is_Immutably_Limited_Type (Entity (Parent_Name));
+             end Is_Derived_From_Immutably_Limited_Type;
+ 
           begin
              if NewD or OldD then
  
*************** package body Sem_Ch6 is
*** 6517,6522 ****
--- 6532,6564 ----
                       New_Discr_Id);
                    return;
                 end if;
+ 
+                if NewD
+                  and then Ada_Version >= Ada_2005
+                  and then Nkind (Discriminant_Type (New_Discr)) =
+                             N_Access_Definition
+                  and then not Is_Immutably_Limited_Type
+                                 (Defining_Identifier (N))
+ 
+                  --  Check for a case that would be awkward to handle in
+                  --  Is_Immutably_Limited_Type (because sem_aux can't
+                  --  "with" sem_util).
+ 
+                  and then not Has_Tagged_Limited_Partial_View
+                                 (Defining_Identifier (N))
+ 
+                  --  Check for another case that would be awkward to handle
+                  --  in Is_Immutably_Limited_Type
+ 
+                  and then not Is_Derived_From_Immutably_Limited_Type
+                                 (Defining_Identifier (N))
+                then
+                   Error_Msg_N
+                     ("(Ada 2005) default value for access discriminant "
+                      & "requires immutably limited type",
+                      Expression (New_Discr));
+                   return;
+                end if;
              end if;
           end;
  
*************** package body Sem_Ch6 is
*** 6904,6916 ****
                 --  operation is the inherited primitive (which is available
                 --  through the attribute alias)
  
!                if (Is_Dispatching_Operation (Subp)
!                     or else Is_Dispatching_Operation (Overridden_Subp))
                   and then not Comes_From_Source (Overridden_Subp)
                   and then Find_Dispatching_Type (Overridden_Subp) =
                            Find_Dispatching_Type (Subp)
                   and then Present (Alias (Overridden_Subp))
-                  and then Comes_From_Source (Alias (Overridden_Subp))
                 then
                    Set_Overridden_Operation    (Subp, Alias (Overridden_Subp));
                    Inherit_Subprogram_Contract (Subp, Alias (Overridden_Subp));
--- 6946,6956 ----
                 --  operation is the inherited primitive (which is available
                 --  through the attribute alias)
  
!                if Is_Dispatching_Operation (Subp)
                   and then not Comes_From_Source (Overridden_Subp)
                   and then Find_Dispatching_Type (Overridden_Subp) =
                            Find_Dispatching_Type (Subp)
                   and then Present (Alias (Overridden_Subp))
                 then
                    Set_Overridden_Operation    (Subp, Alias (Overridden_Subp));
                    Inherit_Subprogram_Contract (Subp, Alias (Overridden_Subp));
*************** package body Sem_Ch6 is
*** 7175,7180 ****
--- 7215,7224 ----
                 and then Exception_Junk (Last_Stm))
             or else Nkind (Last_Stm) in N_Push_xxx_Label | N_Pop_xxx_Label
  
+            --  Don't count subprogram bodies, for example finalizers
+ 
+            or else Nkind (Last_Stm) = N_Subprogram_Body
+ 
             --  Inserted code, such as finalization calls, is irrelevant; we
             --  only need to check original source. If we see a transfer of
             --  control, we stop.
*************** package body Sem_Ch6 is
*** 7406,7411 ****
--- 7450,7457 ----
                    Error_Msg_N
                      ("implied return after this statement would have raised "
                       & "Program_Error", Last_Stm);
+                   Error_Msg_NE
+                     ("\procedure & is marked as No_Return!", Last_Stm, Proc);
  
                 --  In normal compilation mode, do not warn on a generated call
                 --  (e.g. in the body of a renaming as completion).
*************** package body Sem_Ch6 is
*** 7414,7424 ****
                    Error_Msg_N
                      ("implied return after this statement will raise "
                       & "Program_Error??", Last_Stm);
                 end if;
  
-                Error_Msg_Warn := SPARK_Mode /= On;
-                Error_Msg_NE
-                  ("\procedure & is marked as No_Return<<!", Last_Stm, Proc);
              end if;
  
              declare
--- 7460,7474 ----
                    Error_Msg_N
                      ("implied return after this statement will raise "
                       & "Program_Error??", Last_Stm);
+ 
+                   Error_Msg_NE
+                     ("\procedure & is marked as No_Return??!", Last_Stm, Proc);
+                else
+ 
+                   Error_Msg_NE
+                     ("procedure & is marked as No_Return!", Last_Stm, Proc);
                 end if;
  
              end if;
  
              declare
*************** package body Sem_Ch6 is
*** 9170,9178 ****
              --  If the type does not have a completion yet, treat as prior to
              --  Ada 2012 for consistency.
  
!             if Has_Discriminants (Formal_Type)
                and then not Is_Constrained (Formal_Type)
!               and then Is_Definite_Subtype (Formal_Type)
                and then (Ada_Version < Ada_2012
                           or else No (Underlying_Type (Formal_Type))
                           or else not
--- 9220,9234 ----
              --  If the type does not have a completion yet, treat as prior to
              --  Ada 2012 for consistency.
  
!             --  Note that we need also to handle mutably tagged types in the
!             --  same way as discriminated types since they can be constrained
!             --  or unconstrained as well.
! 
!             if (Has_Discriminants (Formal_Type)
!                  or else Is_Mutably_Tagged_Type (Formal_Type))
                and then not Is_Constrained (Formal_Type)
!               and then (Is_Definite_Subtype (Formal_Type)
!                          or else Is_Mutably_Tagged_Type (Formal_Type))
                and then (Ada_Version < Ada_2012
                           or else No (Underlying_Type (Formal_Type))
                           or else not
*************** package body Sem_Ch6 is
*** 9304,9327 ****
              end if;
  
              --  In the case of functions whose result type needs finalization,
!             --  add an extra formal which represents the finalization master.
  
!             if Needs_BIP_Finalization_Master (Ref_E)
                or else
                  (Present (Parent_Subp)
                     and then Has_BIP_Extra_Formal (Parent_Subp,
!                               Kind           => BIP_Finalization_Master,
                                Must_Be_Frozen => False))
                or else
                  (Present (Alias_Subp)
                     and then Has_BIP_Extra_Formal (Alias_Subp,
!                               Kind           => BIP_Finalization_Master,
                                Must_Be_Frozen => False))
              then
                 Discard :=
                   Add_Extra_Formal
!                    (E, RTE (RE_Finalization_Master_Ptr),
!                     E, BIP_Formal_Suffix (BIP_Finalization_Master));
              end if;
  
              --  When the result type contains tasks, add two extra formals: the
--- 9360,9383 ----
              end if;
  
              --  In the case of functions whose result type needs finalization,
!             --  add an extra formal which represents the caller's collection.
  
!             if Needs_BIP_Collection (Ref_E)
                or else
                  (Present (Parent_Subp)
                     and then Has_BIP_Extra_Formal (Parent_Subp,
!                               Kind           => BIP_Collection,
                                Must_Be_Frozen => False))
                or else
                  (Present (Alias_Subp)
                     and then Has_BIP_Extra_Formal (Alias_Subp,
!                               Kind           => BIP_Collection,
                                Must_Be_Frozen => False))
              then
                 Discard :=
                   Add_Extra_Formal
!                    (E, RTE (RE_Finalization_Collection_Ptr),
!                     E, BIP_Formal_Suffix (BIP_Collection));
              end if;
  
              --  When the result type contains tasks, add two extra formals: the
*************** package body Sem_Ch6 is
*** 9958,9964 ****
                 --  from interfaces several null primitives which differ only
                 --  in the mode of the formals.
  
!                if not (Comes_From_Source (E))
                   and then Is_Null_Procedure (E)
                   and then not Mode_Conformant (Designator, E)
                 then
--- 10014,10020 ----
                 --  from interfaces several null primitives which differ only
                 --  in the mode of the formals.
  
!                if not Comes_From_Source (E)
                   and then Is_Null_Procedure (E)
                   and then not Mode_Conformant (Designator, E)
                 then
*************** package body Sem_Ch6 is
*** 11177,11185 ****
                    while Present (Prag) loop
                       Error_Msg_Sloc := Sloc (Prag);
  
!                      if Class_Present (Prag)
!                        and then not Split_PPC (Prag)
!                      then
                          if Pragma_Name (Prag) = Name_Precondition then
                             Error_Msg_N
                               ("info: & inherits `Pre''Class` aspect from "
--- 11233,11239 ----
                    while Present (Prag) loop
                       Error_Msg_Sloc := Sloc (Prag);
  
!                      if Class_Present (Prag) then
                          if Pragma_Name (Prag) = Name_Precondition then
                             Error_Msg_N
                               ("info: & inherits `Pre''Class` aspect from "
*************** package body Sem_Ch6 is
*** 11389,11399 ****
           --  replace the overridden primitive in Typ's primitives list with
           --  the new subprogram.
  
-          function Visible_Part_Type (T : Entity_Id) return Boolean;
-          --  Returns true if T is declared in the visible part of the current
-          --  package scope; otherwise returns false. Assumes that T is declared
-          --  in a package.
- 
           procedure Check_Private_Overriding (T : Entity_Id);
           --  Checks that if a primitive abstract subprogram of a visible
           --  abstract type is declared in a private part, then it must override
--- 11443,11448 ----
*************** package body Sem_Ch6 is
*** 11402,11407 ****
--- 11451,11467 ----
           --  in a private part, then it must override a function declared in
           --  the visible part.
  
+          function Is_A_Primitive
+            (Typ  : Entity_Id;
+             Subp : Entity_Id) return Boolean;
+          --  Typ is either the return type of function Subp or the type of one
+          --  of its formals; determine if Subp is a primitive of type Typ.
+ 
+          function Visible_Part_Type (T : Entity_Id) return Boolean;
+          --  Returns true if T is declared in the visible part of the current
+          --  package scope; otherwise returns false. Assumes that T is declared
+          --  in a package.
+ 
           ---------------------------------------
           -- Add_Or_Replace_Untagged_Primitive --
           ---------------------------------------
*************** package body Sem_Ch6 is
*** 11559,11593 ****
                                        Incomplete_Or_Partial_View (T);
  
                    begin
!                      if not Overrides_Visible_Function (Partial_View) then
  
                          --  Here, S is "function ... return T;" declared in
                          --  the private part, not overriding some visible
                          --  operation. That's illegal in the tagged case
                          --  (but not if the private type is untagged).
  
!                         if ((Present (Partial_View)
!                               and then Is_Tagged_Type (Partial_View))
!                           or else (No (Partial_View)
!                                     and then Is_Tagged_Type (T)))
!                           and then T = Base_Type (Etype (S))
                          then
                             Error_Msg_N
!                              ("private function with tagged result must"
                                & " override visible-part function", S);
                             Error_Msg_N
                               ("\move subprogram to the visible part"
                                & " (RM 3.9.3(10))", S);
  
                          --  Ada 2012 (AI05-0073): Extend this check to the case
!                         --  of a function whose result subtype is defined by an
!                         --  access_definition designating specific tagged type.
  
                          elsif Ekind (Etype (S)) = E_Anonymous_Access_Type
!                           and then Is_Tagged_Type (Designated_Type (Etype (S)))
                            and then
!                             not Is_Class_Wide_Type
!                                   (Designated_Type (Etype (S)))
                            and then Ada_Version >= Ada_2012
                          then
                             Error_Msg_N
--- 11619,11661 ----
                                        Incomplete_Or_Partial_View (T);
  
                    begin
!                      if not Overrides_Visible_Function (Partial_View)
!                        and then
!                          Is_Tagged_Type
!                            (if Present (Partial_View) then Partial_View else T)
!                      then
  
                          --  Here, S is "function ... return T;" declared in
                          --  the private part, not overriding some visible
                          --  operation. That's illegal in the tagged case
                          --  (but not if the private type is untagged).
  
!                         --  Do not report this error when the tagged type has
!                         --  the First_Controlling_Parameter aspect, unless the
!                         --  function has a controlling result (which is only
!                         --  possible if the function overrides an inherited
!                         --  primitive).
! 
!                         if T = Base_Type (Etype (S))
!                           and then
!                             (not Has_First_Controlling_Parameter_Aspect (T)
!                                or else Has_Controlling_Result (S))
                          then
                             Error_Msg_N
!                              ("private function with controlling result must"
                                & " override visible-part function", S);
                             Error_Msg_N
                               ("\move subprogram to the visible part"
                                & " (RM 3.9.3(10))", S);
  
                          --  Ada 2012 (AI05-0073): Extend this check to the case
!                         --  of a function with access result type.
  
                          elsif Ekind (Etype (S)) = E_Anonymous_Access_Type
!                           and then T = Base_Type (Designated_Type (Etype (S)))
                            and then
!                             (not Has_First_Controlling_Parameter_Aspect (T)
!                                or else Has_Controlling_Result (S))
                            and then Ada_Version >= Ada_2012
                          then
                             Error_Msg_N
*************** package body Sem_Ch6 is
*** 11604,11609 ****
--- 11672,11729 ----
              end if;
           end Check_Private_Overriding;
  
+          --------------------
+          -- Is_A_Primitive --
+          --------------------
+ 
+          function Is_A_Primitive
+            (Typ  : Entity_Id;
+             Subp : Entity_Id) return Boolean is
+          begin
+             if Scope (Typ) /= Current_Scope
+               or else Is_Class_Wide_Type (Typ)
+               or else Is_Generic_Type (Typ)
+             then
+                return False;
+ 
+             --  Untagged type primitive
+ 
+             elsif not Is_Tagged_Type (Typ) then
+                return True;
+ 
+             --  Primitive of a tagged type without the First_Controlling_Param
+             --  aspect.
+ 
+             elsif not Has_First_Controlling_Parameter_Aspect (Typ) then
+                return True;
+ 
+             --  Non-overriding primitive of a tagged type with the
+             --  First_Controlling_Parameter aspect
+ 
+             elsif No (Overridden_Operation (Subp)) then
+                return Present (First_Formal (Subp))
+                  and then Etype (First_Formal (Subp)) = Typ;
+ 
+             --  Primitive of a tagged type with the First_Controlling_Parameter
+             --  aspect, overriding an inherited primitive of a tagged type
+             --  without this aspect.
+ 
+             else
+                if Ekind (Subp) = E_Function
+                  and then Has_Controlling_Result (Overridden_Operation (Subp))
+                then
+                   return True;
+ 
+                elsif Is_Dispatching_Operation
+                        (Overridden_Operation (Subp))
+                then
+                   return True;
+                end if;
+             end if;
+ 
+             return False;
+          end Is_A_Primitive;
+ 
           -----------------------
           -- Visible_Part_Type --
           -----------------------
*************** package body Sem_Ch6 is
*** 11676,11685 ****
  
                 B_Typ := Base_Type (F_Typ);
  
!                if Scope (B_Typ) = Current_Scope
!                  and then not Is_Class_Wide_Type (B_Typ)
!                  and then not Is_Generic_Type (B_Typ)
!                then
                    Is_Primitive := True;
                    Set_Has_Primitive_Operations (B_Typ);
                    Set_Is_Primitive (S);
--- 11796,11802 ----
  
                 B_Typ := Base_Type (F_Typ);
  
!                if Is_A_Primitive (B_Typ, S) then
                    Is_Primitive := True;
                    Set_Has_Primitive_Operations (B_Typ);
                    Set_Is_Primitive (S);
*************** package body Sem_Ch6 is
*** 11697,11703 ****
                    Check_Private_Overriding (B_Typ);
                    --  The Ghost policy in effect at the point of declaration
                    --  or a tagged type and a primitive operation must match
!                   --  (SPARK RM 6.9(16)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
--- 11814,11820 ----
                    Check_Private_Overriding (B_Typ);
                    --  The Ghost policy in effect at the point of declaration
                    --  or a tagged type and a primitive operation must match
!                   --  (SPARK RM 6.9(18)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
*************** package body Sem_Ch6 is
*** 11719,11728 ****
                    B_Typ := Base_Type (B_Typ);
                 end if;
  
!                if Scope (B_Typ) = Current_Scope
!                  and then not Is_Class_Wide_Type (B_Typ)
!                  and then not Is_Generic_Type (B_Typ)
!                then
                    Is_Primitive := True;
                    Set_Is_Primitive (S);
                    Set_Has_Primitive_Operations (B_Typ);
--- 11836,11842 ----
                    B_Typ := Base_Type (B_Typ);
                 end if;
  
!                if Is_A_Primitive (B_Typ, S) then
                    Is_Primitive := True;
                    Set_Is_Primitive (S);
                    Set_Has_Primitive_Operations (B_Typ);
*************** package body Sem_Ch6 is
*** 11741,11747 ****
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a tagged type and a primitive operation must match
!                   --  (SPARK RM 6.9(16)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
--- 11855,11861 ----
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a tagged type and a primitive operation must match
!                   --  (SPARK RM 6.9(18)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
*************** package body Sem_Ch6 is
*** 11774,11780 ****
  
                 --  The Ghost policy in effect at the point of declaration of a
                 --  tagged type and a primitive operation must match
!                --  (SPARK RM 6.9(16)).
  
                 Check_Ghost_Primitive (S, B_Typ);
              end if;
--- 11888,11894 ----
  
                 --  The Ghost policy in effect at the point of declaration of a
                 --  tagged type and a primitive operation must match
!                --  (SPARK RM 6.9(18)).
  
                 Check_Ghost_Primitive (S, B_Typ);
              end if;
*************** package body Sem_Ch6 is
*** 12230,12236 ****
  
              --  The Ghost policy in effect at the point of declaration of a
              --  parent subprogram and an overriding subprogram must match
!             --  (SPARK RM 6.9(17)).
  
              Check_Ghost_Overriding (S, Overridden_Subp);
           end if;
--- 12344,12350 ----
  
              --  The Ghost policy in effect at the point of declaration of a
              --  parent subprogram and an overriding subprogram must match
!             --  (SPARK RM 6.9(19)).
  
              Check_Ghost_Overriding (S, Overridden_Subp);
           end if;
*************** package body Sem_Ch6 is
*** 12393,12399 ****
  
                       --  The Ghost policy in effect at the point of declaration
                       --  of a parent subprogram and an overriding subprogram
!                      --  must match (SPARK RM 6.9(17)).
  
                       Check_Ghost_Overriding (E, S);
                    end if;
--- 12507,12513 ----
  
                       --  The Ghost policy in effect at the point of declaration
                       --  of a parent subprogram and an overriding subprogram
!                      --  must match (SPARK RM 6.9(19)).
  
                       Check_Ghost_Overriding (E, S);
                    end if;
*************** package body Sem_Ch6 is
*** 12524,12531 ****
  
                             if Chars (E) = Name_Op_Eq then
                                declare
!                                  Typ : constant Entity_Id
!                                          := Etype (First_Entity (E));
                                   H   : Entity_Id := Homonym (E);
  
                                begin
--- 12638,12645 ----
  
                             if Chars (E) = Name_Op_Eq then
                                declare
!                                  Typ : constant Entity_Id :=
!                                    Etype (First_Entity (E));
                                   H   : Entity_Id := Homonym (E);
  
                                begin
*************** package body Sem_Ch6 is
*** 12554,12569 ****
  
                    Enter_Overloaded_Entity (S);
  
                    --  For entities generated by Derive_Subprograms the
                    --  overridden operation is the inherited primitive
                    --  (which is available through the attribute alias).
  
!                   if not (Comes_From_Source (E))
                      and then Is_Dispatching_Operation (E)
                      and then Find_Dispatching_Type (E) =
                               Find_Dispatching_Type (S)
                      and then Present (Alias (E))
-                     and then Comes_From_Source (Alias (E))
                    then
                       Set_Overridden_Operation    (S, Alias (E));
                       Inherit_Subprogram_Contract (S, Alias (E));
--- 12668,12690 ----
  
                    Enter_Overloaded_Entity (S);
  
+                   --  LSP wrappers must override the ultimate alias of their
+                   --  wrapped dispatching primitive E; required to traverse the
+                   --  chain of ancestor primitives (see Map_Primitives). They
+                   --  don't inherit contracts.
+ 
+                   if Is_LSP_Wrapper (S) then
+                      Set_Overridden_Operation (S, Ultimate_Alias (E));
+ 
                    --  For entities generated by Derive_Subprograms the
                    --  overridden operation is the inherited primitive
                    --  (which is available through the attribute alias).
  
!                   elsif not Comes_From_Source (E)
                      and then Is_Dispatching_Operation (E)
                      and then Find_Dispatching_Type (E) =
                               Find_Dispatching_Type (S)
                      and then Present (Alias (E))
                    then
                       Set_Overridden_Operation    (S, Alias (E));
                       Inherit_Subprogram_Contract (S, Alias (E));
*************** package body Sem_Ch6 is
*** 12580,12599 ****
                    --  must check whether the target is an init_proc.
  
                    elsif not Is_Init_Proc (S) then
! 
!                      --  LSP wrappers must override the ultimate alias of their
!                      --  wrapped dispatching primitive E; required to traverse
!                      --  the chain of ancestor primitives (c.f. Map_Primitives)
!                      --  They don't inherit contracts.
! 
!                      if Is_Wrapper (S)
!                        and then Present (LSP_Subprogram (S))
!                      then
!                         Set_Overridden_Operation    (S, Ultimate_Alias (E));
!                      else
!                         Set_Overridden_Operation    (S, E);
!                         Inherit_Subprogram_Contract (S, E);
!                      end if;
  
                       Set_Is_Ada_2022_Only (S, Is_Ada_2022_Only (E));
                    end if;
--- 12701,12708 ----
                    --  must check whether the target is an init_proc.
  
                    elsif not Is_Init_Proc (S) then
!                      Set_Overridden_Operation    (S, E);
!                      Inherit_Subprogram_Contract (S, E);
  
                       Set_Is_Ada_2022_Only (S, Is_Ada_2022_Only (E));
                    end if;
*************** package body Sem_Ch6 is
*** 12602,12644 ****
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a parent subprogram and an overriding subprogram
!                   --  must match (SPARK RM 6.9(17)).
  
                    Check_Ghost_Overriding (S, E);
  
                    --  If S is a user-defined subprogram or a null procedure
                    --  expanded to override an inherited null procedure, or a
!                   --  predefined dispatching primitive then indicate that E
!                   --  overrides the operation from which S is inherited.
  
!                   if Comes_From_Source (S)
!                     or else
!                       (Present (Parent (S))
!                         and then Nkind (Parent (S)) = N_Procedure_Specification
!                         and then Null_Present (Parent (S)))
!                     or else
!                       (Present (Alias (E))
!                         and then
!                           Is_Predefined_Dispatching_Operation (Alias (E)))
                    then
!                      if Present (Alias (E)) then
! 
!                         --  LSP wrappers must override the ultimate alias of
!                         --  their wrapped dispatching primitive E; required to
!                         --  traverse the chain of ancestor primitives (see
!                         --  Map_Primitives). They don't inherit contracts.
! 
!                         if Is_Wrapper (S)
!                           and then Present (LSP_Subprogram (S))
!                         then
!                            Set_Overridden_Operation    (S, Ultimate_Alias (E));
!                         else
!                            Set_Overridden_Operation    (S, Alias (E));
!                            Inherit_Subprogram_Contract (S, Alias (E));
!                         end if;
  
!                         Set_Is_Ada_2022_Only (S, Is_Ada_2022_Only (Alias (E)));
!                      end if;
                    end if;
  
                    if Is_Dispatching_Operation (E) then
--- 12711,12746 ----
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a parent subprogram and an overriding subprogram
!                   --  must match (SPARK RM 6.9(19)).
  
                    Check_Ghost_Overriding (S, E);
  
                    --  If S is a user-defined subprogram or a null procedure
                    --  expanded to override an inherited null procedure, or a
!                   --  predefined dispatching primitive, or a function wrapper
!                   --  expanded to override an inherited function with
!                   --  dispatching result, then indicate that S overrides the
!                   --  operation from which E is inherited.
  
!                   if (not Is_Wrapper (S) or else No (LSP_Subprogram (S)))
!                     and then Present (Alias (E))
!                     and then
!                       (Comes_From_Source (S)
!                        or else
!                          (Nkind (Parent (S)) = N_Procedure_Specification
!                           and then Null_Present (Parent (S)))
!                        or else Is_Predefined_Dispatching_Operation (Alias (E))
!                        or else
!                          (E in E_Function_Id
!                           and then Is_Dispatching_Operation (E)
!                           and then Has_Controlling_Result (E)
!                           and then Is_Wrapper (S)
!                           and then not Is_Dispatch_Table_Wrapper (S)))
                    then
!                      Set_Overridden_Operation    (S, Alias (E));
!                      Inherit_Subprogram_Contract (S, Alias (E));
  
!                      Set_Is_Ada_2022_Only (S, Is_Ada_2022_Only (Alias (E)));
                    end if;
  
                    if Is_Dispatching_Operation (E) then
*************** package body Sem_Ch6 is
*** 12755,12761 ****
  
           --  The Ghost policy in effect at the point of declaration of a parent
           --  subprogram and an overriding subprogram must match
!          --  (SPARK RM 6.9(17)).
  
           Check_Ghost_Overriding (S, Overridden_Subp);
  
--- 12857,12863 ----
  
           --  The Ghost policy in effect at the point of declaration of a parent
           --  subprogram and an overriding subprogram must match
!          --  (SPARK RM 6.9(19)).
  
           Check_Ghost_Overriding (S, Overridden_Subp);
  
*************** package body Sem_Ch6 is
*** 12778,12803 ****
  
        <<Check_Inequality>>
           if Chars (S) = Name_Op_Eq
!            and then Etype (S) = Standard_Boolean
             and then Present (Parent (S))
             and then not Is_Dispatching_Operation (S)
           then
              Make_Inequality_Operator (S);
-             Check_Untagged_Equality (S);
-          end if;
-    end New_Overloaded_Entity;
  
!    ----------------------------------
!    -- Preanalyze_Formal_Expression --
!    ----------------------------------
  
!    procedure Preanalyze_Formal_Expression (N : Node_Id; T : Entity_Id) is
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
!    begin
!       In_Spec_Expression := True;
!       Preanalyze_With_Freezing_And_Resolve (N, T);
!       In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_Formal_Expression;
  
     ---------------------
     -- Process_Formals --
--- 12880,12901 ----
  
        <<Check_Inequality>>
           if Chars (S) = Name_Op_Eq
!            and then Base_Type (Etype (S)) = Standard_Boolean
             and then Present (Parent (S))
             and then not Is_Dispatching_Operation (S)
           then
              Make_Inequality_Operator (S);
  
!             --  The freezing rule introduced in Ada 2012 was historically
!             --  not enforced for operators returning a subtype of Boolean.
  
!             if Etype (S) = Standard_Boolean
!               or else not Debug_Flag_Underscore_Q
!             then
!                Check_Untagged_Equality (S);
!             end if;
!          end if;
!    end New_Overloaded_Entity;
  
     ---------------------
     -- Process_Formals --
*************** package body Sem_Ch6 is
*** 13059,13064 ****
--- 13157,13172 ----
           --  An access formal type
  
           else
+             if Nkind (Parent (T)) = N_Accept_Statement
+               or else (Nkind (Parent (T)) = N_Entry_Declaration
+                        and then Nkind (Context) = N_Task_Definition)
+             then
+                Error_Msg_N
+                  ("task entries cannot have access parameters",
+                   Parameter_Type (Param_Spec));
+                return;
+             end if;
+ 
              Formal_Type :=
                Access_Definition (Related_Nod, Parameter_Type (Param_Spec));
  
*************** package body Sem_Ch6 is
*** 13099,13105 ****
              --  Do the special preanalysis of the expression (see section on
              --  "Handling of Default Expressions" in the spec of package Sem).
  
!             Preanalyze_Formal_Expression (Default, Formal_Type);
  
              --  An access to constant cannot be the default for
              --  an access parameter that is an access to variable.
--- 13207,13213 ----
              --  Do the special preanalysis of the expression (see section on
              --  "Handling of Default Expressions" in the spec of package Sem).
  
!             Preanalyze_Spec_Expression (Default, Formal_Type);
  
              --  An access to constant cannot be the default for
              --  an access parameter that is an access to variable.
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch6.ads gcc-15.1.0/gcc/ada/sem_ch6.ads
*** gcc-14.2.0/gcc/ada/sem_ch6.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch6.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch7.adb gcc-15.1.0/gcc/ada/sem_ch7.adb
*** gcc-14.2.0/gcc/ada/sem_ch7.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch7.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch7 is
*** 1406,1412 ****
  
        begin
           if Id = Cunit_Entity (Main_Unit)
!            or else Parent (Decl) = Library_Unit (Cunit (Main_Unit))
           then
              Generate_Reference (Id, Scope (Id), 'k', False);
  
--- 1406,1412 ----
  
        begin
           if Id = Cunit_Entity (Main_Unit)
!            or else Parent (Decl) = Other_Comp_Unit (Cunit (Main_Unit))
           then
              Generate_Reference (Id, Scope (Id), 'k', False);
  
*************** package body Sem_Ch7 is
*** 1422,1428 ****
  
              begin
                 if Nkind (Main_Spec) = N_Package_Body then
!                   Main_Spec := Unit (Library_Unit (Cunit (Main_Unit)));
                 end if;
  
                 U := Parent_Spec (Main_Spec);
--- 1422,1428 ----
  
              begin
                 if Nkind (Main_Spec) = N_Package_Body then
!                   Main_Spec := Unit (Other_Comp_Unit (Cunit (Main_Unit)));
                 end if;
  
                 U := Parent_Spec (Main_Spec);
*************** package body Sem_Ch7 is
*** 1732,1737 ****
--- 1732,1745 ----
              Error_Msg_N ("no declaration in visible part for incomplete}", E);
           end if;
  
+          --  A type's nonoverridable aspects need to be resolved at the end
+          --  of the enclosing list of declarations, not only at freeze points
+          --  (see 13.1.1 (11/5)). (Perhaps the proc name should be changed???)
+ 
+          if Is_Type (E) and then Has_Delayed_Aspects (E) then
+             Analyze_Aspects_At_Freeze_Point (E, Nonoverridable_Only => True);
+          end if;
+ 
           Next_Entity (E);
        end loop;
  
*************** package body Sem_Ch7 is
*** 2400,2406 ****
  
           --  Do not enter implicitly inherited non-overridden subprograms of
           --  a tagged type back into visibility if they have non-conformant
!          --  homographs (Ada RM 8.3 12.3/2).
  
           elsif Is_Hidden_Non_Overridden_Subpgm (Id) then
              null;
--- 2408,2414 ----
  
           --  Do not enter implicitly inherited non-overridden subprograms of
           --  a tagged type back into visibility if they have non-conformant
!          --  homographs (RM 8.3(12.3/2)).
  
           elsif Is_Hidden_Non_Overridden_Subpgm (Id) then
              null;
*************** package body Sem_Ch7 is
*** 2657,2663 ****
        then
           return True;
  
!       elsif not (Is_Derived_Type (Dep))
          and then Is_Derived_Type (Full_View (Dep))
        then
           --  When instantiating a package body, the scope stack is empty, so
--- 2665,2671 ----
        then
           return True;
  
!       elsif not Is_Derived_Type (Dep)
          and then Is_Derived_Type (Full_View (Dep))
        then
           --  When instantiating a package body, the scope stack is empty, so
*************** package body Sem_Ch7 is
*** 2746,2755 ****
        Set_Is_First_Subtype (Id);
        Reinit_Size_Align (Id);
  
-       Set_Is_Constrained (Id,
-         No (Discriminant_Specifications (N))
-           and then not Unknown_Discriminants_Present (N));
- 
        --  Set tagged flag before processing discriminants, to catch illegal
        --  usage.
  
--- 2754,2759 ----
*************** package body Sem_Ch7 is
*** 2765,2770 ****
--- 2769,2777 ----
  
        elsif Unknown_Discriminants_Present (N) then
           Set_Has_Unknown_Discriminants (Id);
+ 
+       else
+          Set_Is_Constrained (Id);
        end if;
  
        Set_Private_Dependents (Id, New_Elmt_List);
*************** package body Sem_Ch7 is
*** 2828,2840 ****
        --  Otherwise test to see if entity requires a completion. Note that
        --  subprogram entities whose declaration does not come from source are
        --  ignored here on the basis that we assume the expander will provide an
!       --  implicit completion at some point.
  
        elsif (Is_Overloadable (Id)
                and then Ekind (Id) not in E_Enumeration_Literal | E_Operator
                and then not Is_Abstract_Subprogram (Id)
                and then not Has_Completion (Id)
!               and then Comes_From_Source (Parent (Id)))
  
          or else
            (Ekind (Id) = E_Package
--- 2835,2848 ----
        --  Otherwise test to see if entity requires a completion. Note that
        --  subprogram entities whose declaration does not come from source are
        --  ignored here on the basis that we assume the expander will provide an
!       --  implicit completion at some point. In particular, an inherited
!       --  subprogram of a derived type should not cause us to return True here.
  
        elsif (Is_Overloadable (Id)
                and then Ekind (Id) not in E_Enumeration_Literal | E_Operator
                and then not Is_Abstract_Subprogram (Id)
                and then not Has_Completion (Id)
!               and then Comes_From_Source (Id))
  
          or else
            (Ekind (Id) = E_Package
*************** package body Sem_Ch7 is
*** 2919,2924 ****
--- 2927,2933 ----
                                       (Priv, Has_Pragma_Unreferenced_Objects
                                                                         (Full));
           Set_Predicates_Ignored      (Priv, Predicates_Ignored         (Full));
+ 
           if Is_Unchecked_Union (Full) then
              Set_Is_Unchecked_Union (Base_Type (Priv));
           end if;
*************** package body Sem_Ch7 is
*** 2928,2941 ****
           end if;
  
           if Priv_Is_Base_Type then
!             Set_Is_Controlled_Active
!                               (Priv, Is_Controlled_Active     (Full_Base));
!             Set_Finalize_Storage_Only
!                               (Priv, Finalize_Storage_Only    (Full_Base));
!             Set_Has_Controlled_Component
!                               (Priv, Has_Controlled_Component (Full_Base));
! 
!             Propagate_Concurrent_Flags (Priv, Base_Type (Full));
           end if;
  
           --  As explained in Freeze_Entity, private types are required to point
--- 2937,2944 ----
           end if;
  
           if Priv_Is_Base_Type then
!             Propagate_Concurrent_Flags (Priv, Full_Base);
!             Propagate_Controlled_Flags (Priv, Full_Base);
           end if;
  
           --  As explained in Freeze_Entity, private types are required to point
*************** package body Sem_Ch7 is
*** 3380,3385 ****
--- 3383,3391 ----
                 end loop;
              end;
  
+             Set_Is_Hidden (Id);
+             Set_Is_Potentially_Use_Visible (Id, False);
+ 
           --  For subtypes of private types the frontend generates two entities:
           --  one associated with the partial view and the other associated with
           --  the full view. When the subtype declaration is public the frontend
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch7.ads gcc-15.1.0/gcc/ada/sem_ch7.ads
*** gcc-14.2.0/gcc/ada/sem_ch7.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch7.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch8.adb gcc-15.1.0/gcc/ada/sem_ch8.adb
*** gcc-14.2.0/gcc/ada/sem_ch8.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch8.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Lib;            use Lib;
*** 39,44 ****
--- 39,45 ----
  with Lib.Load;       use Lib.Load;
  with Lib.Xref;       use Lib.Xref;
  with Local_Restrict;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Namet.Sp;       use Namet.Sp;
  with Nlists;         use Nlists;
*************** package body Sem_Ch8 is
*** 1511,1516 ****
--- 1512,1521 ----
              if Is_Dependent_Component_Of_Mutable_Object (Nam) then
                 Error_Msg_N
                   ("illegal renaming of discriminant-dependent component", Nam);
+             elsif Depends_On_Mutably_Tagged_Ext_Comp (Nam) then
+                Error_Msg_N
+                  ("illegal renaming of mutably tagged dependent component",
+                   Nam);
              end if;
  
              --  If the renaming comes from source and the renamed object is a
*************** package body Sem_Ch8 is
*** 1660,1667 ****
           Set_Etype (New_P, Standard_Void_Type);
  
        elsif Present (Renamed_Entity (Old_P))
!         and then (From_Limited_With (Renamed_Entity (Old_P))
!                     or else Has_Limited_View (Renamed_Entity (Old_P)))
          and then not
            Unit_Is_Visible (Cunit (Get_Source_Unit (Renamed_Entity (Old_P))))
        then
--- 1665,1671 ----
           Set_Etype (New_P, Standard_Void_Type);
  
        elsif Present (Renamed_Entity (Old_P))
!         and then Renames_Limited_View (Old_P)
          and then not
            Unit_Is_Visible (Cunit (Get_Source_Unit (Renamed_Entity (Old_P))))
        then
*************** package body Sem_Ch8 is
*** 1686,1693 ****
--- 1690,1699 ----
  
           if Present (Renamed_Entity (Old_P)) then
              Set_Renamed_Entity (New_P, Renamed_Entity (Old_P));
+             Set_Renames_Limited_View (New_P, Renames_Limited_View (Old_P));
           else
              Set_Renamed_Entity (New_P, Old_P);
+             Set_Renames_Limited_View (New_P, From_Limited_With (Old_P));
           end if;
  
           --  The package renaming declaration may become Ghost if it renames a
*************** package body Sem_Ch8 is
*** 2094,2099 ****
--- 2100,2109 ----
                    Error_Msg_N
                      ("illegal renaming of discriminant-dependent component",
                       Nam);
+                elsif Depends_On_Mutably_Tagged_Ext_Comp (Nam) then
+                   Error_Msg_N
+                     ("illegal renaming of mutably tagged dependent component",
+                      Nam);
                 end if;
              else
                 Error_Msg_N ("expect object name in renaming", Nam);
*************** package body Sem_Ch8 is
*** 2334,2339 ****
--- 2344,2354 ----
                       elsif From_Limited_With (Etype (F)) then
                          null;
  
+                      --  Incomplete types are never frozen (AI12-0155-1)
+ 
+                      elsif Is_Incomplete_Type (Etype (F)) then
+                         null;
+ 
                       else
                          Error_Msg_NE
                            ("type& must be frozen before this point",
*************** package body Sem_Ch8 is
*** 4907,4923 ****
           then
              null;
  
!          --  Don't replace a non-qualified discriminant in strict preanalysis
!          --  mode since it can lead to errors during full analysis when the
!          --  discriminant gets referenced later.
  
           --  This can occur in situations where a protected type contains
           --  an expression function which references a non-prefixed
!          --  discriminant.
  
           elsif No (P)
             and then Preanalysis_Active
!            and then Inside_Preanalysis_Without_Freezing = 0
           then
              null;
  
--- 4922,4942 ----
           then
              null;
  
!          --  Don't replace a non-qualified discriminant in preanalysis mode
!          --  since we may be preanalyzing a subtree that it is still not
!          --  placed in its final position in the tree, and therefore it can
!          --  lead to errors during full analysis when the discriminant gets
!          --  referenced later. We exclude preanalysis of pragma expressions
!          --  because they will not be moved.
  
           --  This can occur in situations where a protected type contains
           --  an expression function which references a non-prefixed
!          --  discriminant, or a task type sets the size of its secondary
!          --  stack with a value provided in a discriminant.
  
           elsif No (P)
             and then Preanalysis_Active
!            and then not In_Pragma_Expression (N)
           then
              null;
  
*************** package body Sem_Ch8 is
*** 6314,6320 ****
                 Nvis_Messages;
                 goto Done;
  
!             elsif Is_Predefined_Unit (Current_Sem_Unit) then
                 --  A use clause in the body of a system file creates conflict
                 --  with some entity in a user scope, while rtsfind is active.
                 --  Keep only the entity coming from another predefined unit.
--- 6333,6341 ----
                 Nvis_Messages;
                 goto Done;
  
!             elsif Is_Predefined_Unit (Current_Sem_Unit)
!               and then not Is_Predefined_Unit (Main_Unit)
!             then
                 --  A use clause in the body of a system file creates conflict
                 --  with some entity in a user scope, while rtsfind is active.
                 --  Keep only the entity coming from another predefined unit.
*************** package body Sem_Ch8 is
*** 7057,7063 ****
                ("renaming of limited view of package & not usable in this"
                 & " context (RM 8.5.3(3.1/2))", Prefix (N), P_Name);
  
!          elsif Has_Limited_View (P_Name)
             and then not Unit_Is_Visible (Cunit (Get_Source_Unit (P_Name)))
             and then not Is_Visible_Through_Renamings (P_Name)
           then
--- 7078,7084 ----
                ("renaming of limited view of package & not usable in this"
                 & " context (RM 8.5.3(3.1/2))", Prefix (N), P_Name);
  
!          elsif Renames_Limited_View (Entity (Prefix (N)))
             and then not Unit_Is_Visible (Cunit (Get_Source_Unit (P_Name)))
             and then not Is_Visible_Through_Renamings (P_Name)
           then
*************** package body Sem_Ch8 is
*** 8478,8488 ****
  
              --  It is not an error if the prefix is the current instance of
              --  type name, e.g. the expression of a type aspect, when it is
!             --  analyzed within a generic unit. We still have to verify that a
!             --  component of that name exists, and decorate the node
              --  accordingly.
  
!             elsif Is_Entity_Name (P) and then Is_Current_Instance (P) then
                 declare
                    Comp : Entity_Id;
  
--- 8499,8512 ----
  
              --  It is not an error if the prefix is the current instance of
              --  type name, e.g. the expression of a type aspect, when it is
!             --  analyzed within a generic unit. We still have to verify that
!             --  a component of that name exists, and decorate the node
              --  accordingly.
  
!             elsif Inside_A_Generic
!               and then Is_Entity_Name (P)
!               and then Is_Current_Instance (P)
!             then
                 declare
                    Comp : Entity_Id;
  
*************** package body Sem_Ch8 is
*** 8519,8525 ****
                          Current_Entity (Selector_Name (N));
                 begin
                    if Present (F)
!                     and then Is_Overloadable (F)
                      and then Present (First_Entity (F))
                      and then not Is_Tagged_Type (Etype (First_Entity (F)))
                    then
--- 8543,8549 ----
                          Current_Entity (Selector_Name (N));
                 begin
                    if Present (F)
!                     and then Is_Subprogram (F)
                      and then Present (First_Entity (F))
                      and then not Is_Tagged_Type (Etype (First_Entity (F)))
                    then
*************** package body Sem_Ch8 is
*** 8792,8797 ****
--- 8816,8831 ----
              Error_Msg_NE ("\\found & declared#", N, T_Name);
              Set_Entity (N, Any_Type);
  
+          elsif Is_Current_Instance (N) and then Comes_From_Source (N) then
+             if Nkind (Parent (T_Name)) = N_Subtype_Declaration then
+                Error_Msg_N ("reference to current instance of subtype" &
+                             " does not denote a subtype (RM 8.6)", N);
+             else
+                Error_Msg_N ("reference to current instance of type" &
+                             " does not denote a type (RM 8.6)", N);
+             end if;
+             Set_Entity (N, Any_Type);
+ 
           else
              --  If the type is an incomplete type created to handle
              --  anonymous access components of a record type, then the
*************** package body Sem_Ch8 is
*** 8822,8833 ****
              if In_Open_Scopes (T_Name) then
                 if Ekind (Base_Type (T_Name)) = E_Task_Type then
  
!                   --  In Ada 2005, a task name can be used in an access
!                   --  definition within its own body.
  
!                   if Ada_Version >= Ada_2005
!                     and then Nkind (Parent (N)) = N_Access_Definition
!                   then
                       Set_Entity (N, T_Name);
                       Set_Etype  (N, T_Name);
                       return;
--- 8856,8864 ----
              if In_Open_Scopes (T_Name) then
                 if Ekind (Base_Type (T_Name)) = E_Task_Type then
  
!                   --  OK if the "current instance" rule does not apply.
  
!                   if not Is_Current_Instance (N) then
                       Set_Entity (N, T_Name);
                       Set_Etype  (N, T_Name);
                       return;
*************** package body Sem_Ch8 is
*** 8840,8851 ****
  
                 elsif Ekind (Base_Type (T_Name)) = E_Protected_Type then
  
!                   --  In Ada 2005, a protected name can be used in an access
!                   --  definition within its own body.
  
!                   if Ada_Version >= Ada_2005
!                     and then Nkind (Parent (N)) = N_Access_Definition
!                   then
                       Set_Entity (N, T_Name);
                       Set_Etype  (N, T_Name);
                       return;
--- 8871,8879 ----
  
                 elsif Ekind (Base_Type (T_Name)) = E_Protected_Type then
  
!                   --  OK if the "current instance" rule does not apply.
  
!                   if not Is_Current_Instance (N) then
                       Set_Entity (N, T_Name);
                       Set_Etype  (N, T_Name);
                       return;
*************** package body Sem_Ch8 is
*** 8965,8970 ****
--- 8993,8999 ----
        while Present (Item) loop
           if Nkind (Item) = N_With_Clause
             and then Private_Present (Item)
+            and then Is_Entity_Name (Name (Item))
             and then Entity (Name (Item)) = E
           then
              return True;
*************** package body Sem_Ch8 is
*** 9285,9295 ****
  
              --  If the new type is a renaming of the old one, as is the case
              --  for actuals in instances, retain its name, to simplify later
!             --  disambiguation.
  
              if Nkind (Parent (New_T)) = N_Subtype_Declaration
                and then Is_Entity_Name (Subtype_Indication (Parent (New_T)))
                and then Entity (Subtype_Indication (Parent (New_T))) = Old_T
              then
                 null;
              else
--- 9314,9325 ----
  
              --  If the new type is a renaming of the old one, as is the case
              --  for actuals in instances, retain its name, to simplify later
!             --  disambiguation. Beware of Natural and Positive, see Cstand.
  
              if Nkind (Parent (New_T)) = N_Subtype_Declaration
                and then Is_Entity_Name (Subtype_Indication (Parent (New_T)))
                and then Entity (Subtype_Indication (Parent (New_T))) = Old_T
+               and then Scope (New_T) /= Standard_Standard
              then
                 null;
              else
*************** package body Sem_Ch8 is
*** 9977,9983 ****
                 or else (Nkind (The_Unit) = N_Subprogram_Body
                           and then not Acts_As_Spec (Cunit (Current_Sem_Unit))))
           then
!             With_Sys := Find_System (Library_Unit (Cunit (Current_Sem_Unit)));
           end if;
  
           if No (With_Sys) and then Present (N) then
--- 10007,10014 ----
                 or else (Nkind (The_Unit) = N_Subprogram_Body
                           and then not Acts_As_Spec (Cunit (Current_Sem_Unit))))
           then
!             With_Sys :=
!               Find_System (Spec_Or_Body_Lib_Unit (Cunit (Current_Sem_Unit)));
           end if;
  
           if No (With_Sys) and then Present (N) then
*************** package body Sem_Ch8 is
*** 10033,10040 ****
  
              Set_Corresponding_Spec (Withn, System_Aux_Id);
              Set_First_Name         (Withn);
!             Set_Implicit_With      (Withn);
!             Set_Library_Unit       (Withn, Cunit (Unum));
  
              Insert_After (With_Sys, Withn);
              Mark_Rewrite_Insertion (Withn);
--- 10064,10071 ----
  
              Set_Corresponding_Spec (Withn, System_Aux_Id);
              Set_First_Name         (Withn);
!             Set_Is_Implicit_With   (Withn);
!             Set_Withed_Lib_Unit    (Withn, Cunit (Unum));
  
              Insert_After (With_Sys, Withn);
              Mark_Rewrite_Insertion (Withn);
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch8.ads gcc-15.1.0/gcc/ada/sem_ch8.ads
*** gcc-14.2.0/gcc/ada/sem_ch8.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch8.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch9.adb gcc-15.1.0/gcc/ada/sem_ch9.adb
*** gcc-14.2.0/gcc/ada/sem_ch9.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch9.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Aspects;        use Aspects;
*** 28,33 ****
--- 28,35 ----
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
+ with Debug;          use Debug;
+ with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
*************** with Style;
*** 68,74 ****
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
- 
  package body Sem_Ch9 is
  
     -----------------------
--- 70,75 ----
*************** package body Sem_Ch9 is
*** 2011,2018 ****
           else
              Propagate_Concurrent_Flags (Prot_Typ, Etype (Item_Id));
  
!             if Chars (Item_Id) /= Name_uParent
!               and then Needs_Finalization (Etype (Item_Id))
              then
                 Set_Has_Controlled_Component (Prot_Typ);
              end if;
--- 2012,2020 ----
           else
              Propagate_Concurrent_Flags (Prot_Typ, Etype (Item_Id));
  
!             if Has_Controlled_Component (Etype (Item_Id))
!               or else (Chars (Item_Id) /= Name_uParent
!                         and then Is_Controlled (Etype (Item_Id)))
              then
                 Set_Has_Controlled_Component (Prot_Typ);
              end if;
*************** package body Sem_Ch9 is
*** 2167,2173 ****
              or else Has_Interrupt_Handler (T)
              or else Has_Attach_Handler (T))
        then
!          Set_Has_Controlled_Component (T, True);
        end if;
  
        --  The Ekind of components is E_Void during analysis for historical
--- 2169,2175 ----
              or else Has_Interrupt_Handler (T)
              or else Has_Attach_Handler (T))
        then
!          Set_Has_Controlled_Component (T);
        end if;
  
        --  The Ekind of components is E_Void during analysis for historical
*************** package body Sem_Ch9 is
*** 2221,2230 ****
                 --  Pragma case
  
                 else
!                   Error_Msg_Name_1 := Pragma_Name (Prio_Item);
!                   Error_Msg_NE
!                     ("pragma% for & has no effect when Lock_Free given??",
!                      Prio_Item, Id);
                 end if;
              end if;
           end;
--- 2223,2240 ----
                 --  Pragma case
  
                 else
!                   if Debug_Flag_Underscore_DD then
!                      Record_Pragma_No_Effect_With_Lock_Free_Warning
!                        (Pragma_Node     => Prio_Item,
!                         Pragma_Name     => Pragma_Name (Prio_Item),
!                         Lock_Free_Node  => Id,
!                         Lock_Free_Range => Parent (Id));
!                   else
!                      Error_Msg_Name_1 := Pragma_Name (Prio_Item);
!                      Error_Msg_NE
!                        ("pragma% for & has no effect when Lock_Free given??",
!                         Prio_Item, Id);
!                   end if;
                 end if;
              end if;
           end;
*************** package body Sem_Ch9 is
*** 3647,3652 ****
--- 3657,3670 ----
  
                 Freeze_Before (N, Etype (Iface));
  
+                --  Implicit inheritance of attribute
+ 
+                if not Has_First_Controlling_Parameter_Aspect (T)
+                  and then Has_First_Controlling_Parameter_Aspect (Iface_Typ)
+                then
+                   Set_Has_First_Controlling_Parameter_Aspect (T);
+                end if;
+ 
                 if Nkind (N) = N_Protected_Type_Declaration then
  
                    --  Ada 2005 (AI-345): Protected types can only implement
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_ch9.ads gcc-15.1.0/gcc/ada/sem_ch9.ads
*** gcc-14.2.0/gcc/ada/sem_ch9.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_ch9.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_dim.adb gcc-15.1.0/gcc/ada/sem_dim.adb
*** gcc-14.2.0/gcc/ada/sem_dim.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_dim.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Dim is
*** 219,224 ****
--- 219,225 ----
        N_Real_Literal              => True,
        N_Selected_Component        => True,
        N_Slice                     => True,
+       N_Target_Name               => True,
        N_Type_Conversion           => True,
        N_Unchecked_Type_Conversion => True,
  
*************** package body Sem_Dim is
*** 314,321 ****
     --  Return the dimension vector of node N
  
     function Dimensions_Msg_Of
!       (N                  : Node_Id;
!        Description_Needed : Boolean := False) return String;
     --  Given a node N, return the dimension symbols of N, preceded by "has
     --  dimension" if Description_Needed. If N is dimensionless, return "'[']",
     --  or "is dimensionless" if Description_Needed.
--- 315,322 ----
     --  Return the dimension vector of node N
  
     function Dimensions_Msg_Of
!      (N                  : Node_Id;
!       Description_Needed : Boolean := False) return String;
     --  Given a node N, return the dimension symbols of N, preceded by "has
     --  dimension" if Description_Needed. If N is dimensionless, return "'[']",
     --  or "is dimensionless" if Description_Needed.
*************** package body Sem_Dim is
*** 1179,1184 ****
--- 1180,1186 ----
              | N_Qualified_Expression
              | N_Selected_Component
              | N_Slice
+             | N_Target_Name
              | N_Unchecked_Type_Conversion
           =>
              Analyze_Dimension_Has_Etype (N);
*************** package body Sem_Dim is
*** 1578,1590 ****
                   and then Dims_Of_L /= Dims_Of_R
                 then
                    if Nkind (L) = N_Real_Literal
!                     and then not (Comes_From_Source (L))
                      and then Expander_Active
                    then
                       null;
  
                    elsif Nkind (R) = N_Real_Literal
!                     and then not (Comes_From_Source (R))
                      and then Expander_Active
                    then
                       null;
--- 1580,1592 ----
                   and then Dims_Of_L /= Dims_Of_R
                 then
                    if Nkind (L) = N_Real_Literal
!                     and then not Comes_From_Source (L)
                      and then Expander_Active
                    then
                       null;
  
                    elsif Nkind (R) = N_Real_Literal
!                     and then not Comes_From_Source (R)
                      and then Expander_Active
                    then
                       null;
*************** package body Sem_Dim is
*** 2670,2677 ****
     -----------------------
  
     function Dimensions_Msg_Of
!       (N                  : Node_Id;
!        Description_Needed : Boolean := False) return String
     is
        Dims_Of_N      : constant Dimension_Type := Dimensions_Of (N);
        Dimensions_Msg : Name_Id;
--- 2672,2679 ----
     -----------------------
  
     function Dimensions_Msg_Of
!      (N                  : Node_Id;
!       Description_Needed : Boolean := False) return String
     is
        Dims_Of_N      : constant Dimension_Type := Dimensions_Of (N);
        Dimensions_Msg : Name_Id;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_dim.ads gcc-15.1.0/gcc/ada/sem_dim.ads
*** gcc-14.2.0/gcc/ada/sem_dim.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_dim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_disp.adb gcc-15.1.0/gcc/ada/sem_disp.adb
*** gcc-14.2.0/gcc/ada/sem_disp.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_disp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Disp is
*** 89,95 ****
     --  to the found entity; otherwise return Empty.
     --
     --  This routine does not search for non-hidden primitives since they are
!    --  covered by the normal Ada 2005 rules.
  
     function Is_Inherited_Public_Operation (Op : Entity_Id) return Boolean;
     --  Check whether a primitive operation is inherited from an operation
--- 89,97 ----
     --  to the found entity; otherwise return Empty.
     --
     --  This routine does not search for non-hidden primitives since they are
!    --  covered by the normal Ada 2005 rules. Its name was motivated by an
!    --  intermediate version of AI05-0125 where this term was proposed to
!    --  name these entities in the RM.
  
     function Is_Inherited_Public_Operation (Op : Entity_Id) return Boolean;
     --  Check whether a primitive operation is inherited from an operation
*************** package body Sem_Disp is
*** 303,309 ****
  
        Formal := First_Formal (Subp);
        while Present (Formal) loop
!          Ctrl_Type := Check_Controlling_Type (Etype (Formal), Subp);
  
           if Present (Ctrl_Type) then
  
--- 305,340 ----
  
        Formal := First_Formal (Subp);
        while Present (Formal) loop
!          Ctrl_Type := Empty;
! 
!          --  Common Ada case
! 
!          if not Has_First_Controlling_Parameter_Aspect (Typ) then
!             Ctrl_Type := Check_Controlling_Type (Etype (Formal), Subp);
! 
!          --  Type with the First_Controlling_Parameter aspect: for overriding
!          --  primitives of a parent type that lacks this aspect, we cannot be
!          --  more restrictive than the overridden primitive. This also applies
!          --  to renamings of dispatching primitives. Dispatching operators can
!          --  have one or two controlling parameters, as long as one of them is
!          --  the first one, and none of the parameters have the same type as
!          --  the operator's result type.
! 
!          --  Internal subprograms added by the frontend bypass the restrictions
!          --  of First_Controlling_Parameter aspect.
! 
!          elsif Formal = First_Formal (Subp)
!            or else Is_Internal (Subp)
!            or else Present (Overridden_Operation (Subp))
!            or else
!              (Present (Alias (Subp))
!                 and then Is_Dispatching_Operation (Ultimate_Alias (Subp)))
!            or else
!              (Ekind (Subp) = E_Function
!                 and then Is_Operator_Name (Chars (Subp)))
!          then
!             Ctrl_Type := Check_Controlling_Type (Etype (Formal), Subp);
!          end if;
  
           if Present (Ctrl_Type) then
  
*************** package body Sem_Disp is
*** 388,394 ****
           Next_Formal (Formal);
        end loop;
  
!       if Ekind (Subp) in E_Function | E_Generic_Function then
           Ctrl_Type := Check_Controlling_Type (Etype (Subp), Subp);
  
           if Present (Ctrl_Type) then
--- 419,442 ----
           Next_Formal (Formal);
        end loop;
  
!       --  Functions overriding parent type primitives that lack the aspect
!       --  First_Controlling_Param cannot be more restrictive than the
!       --  overridden function. This also applies to renamings of dispatching
!       --  primitives. Internal subprograms added by the frontend bypass these
!       --  restrictions.
! 
!       if Ekind (Subp) in E_Function | E_Generic_Function
!         and then (not Has_First_Controlling_Parameter_Aspect (Typ)
!                     or else Is_Internal (Subp)
!                     or else
!                       (Present (Overridden_Operation (Subp))
!                          and then
!                        Has_Controlling_Result (Overridden_Operation (Subp)))
!                     or else
!                       (Present (Alias (Subp))
!                          and then
!                        Has_Controlling_Result (Ultimate_Alias (Subp))))
!       then
           Ctrl_Type := Check_Controlling_Type (Etype (Subp), Subp);
  
           if Present (Ctrl_Type) then
*************** package body Sem_Disp is
*** 1343,1350 ****
                    Typ := Etype (Subp);
                 end if;
  
!                --  The following should be better commented, especially since
!                --  we just added several new conditions here ???
  
                 if Comes_From_Source (Subp)
                   and then Is_Interface (Typ)
--- 1391,1400 ----
                    Typ := Etype (Subp);
                 end if;
  
!                --  Report warning on non dispatching primitives of interface
!                --  type Typ; this warning is disabled when the type has the
!                --  aspect First_Controlling_Parameter because we will report
!                --  an error when the interface type is frozen.
  
                 if Comes_From_Source (Subp)
                   and then Is_Interface (Typ)
*************** package body Sem_Disp is
*** 1352,1357 ****
--- 1402,1408 ----
                   and then not Is_Derived_Type (Typ)
                   and then not Is_Generic_Type (Typ)
                   and then not In_Instance
+                  and then not Has_First_Controlling_Parameter_Aspect (Typ)
                 then
                    Error_Msg_N ("??declaration of& is too late!", Subp);
                    Error_Msg_NE
*************** package body Sem_Disp is
*** 1388,1397 ****
           --  3. Subprograms associated with stream attributes (built by
           --     New_Stream_Subprogram) or with the Put_Image attribute.
  
!          --  4. Wrappers built for inherited operations with inherited class-
!          --     wide conditions, where the conditions include calls to other
!          --     overridden primitives. The wrappers include checks on these
!          --     modified conditions. (AI12-195).
  
           --  5. Declarations built for subprograms without separate specs that
           --     are eligible for inlining in GNATprove (inside
--- 1439,1451 ----
           --  3. Subprograms associated with stream attributes (built by
           --     New_Stream_Subprogram) or with the Put_Image attribute.
  
!          --  4. Wrappers built for inherited operations. We have two kinds:
!          --     * Wrappers built for inherited operations with inherited class-
!          --       wide conditions, where the conditions include calls to other
!          --       overridden primitives. The wrappers include checks on these
!          --       modified conditions (AI12-195).
!          --     * Wrappers built for inherited operations that implement
!          --       interface primitives that have class-wide postconditions.
  
           --  5. Declarations built for subprograms without separate specs that
           --     are eligible for inlining in GNATprove (inside
*************** package body Sem_Disp is
*** 1404,1412 ****
--- 1458,1473 ----
              pragma Assert
                ((Ekind (Subp) = E_Function
                   and then Is_Dispatching_Operation (Old_Subp)
+                  and then not Is_Class_Wide_Type (Etype (Subp))
                   and then Is_Null_Extension (Base_Type (Etype (Subp))))
  
                or else
+                (Ekind (Subp) = E_Function
+                  and then Is_Dispatching_Operation (Old_Subp)
+                  and then Is_Class_Wide_Type (Etype (Subp))
+                  and then Is_Null_Extension (Root_Type (Etype (Subp))))
+ 
+               or else
                 (Ekind (Subp) = E_Procedure
                   and then Is_Dispatching_Operation (Old_Subp)
                   and then Present (Alias (Old_Subp))
*************** package body Sem_Disp is
*** 1419,1425 ****
  
                or else
                 (Is_Wrapper (Subp)
!                  and then Present (LSP_Subprogram (Subp)))
  
                or else GNATprove_Mode);
  
--- 1480,1486 ----
  
                or else
                 (Is_Wrapper (Subp)
!                  and then Is_Dispatch_Table_Wrapper (Subp))
  
                or else GNATprove_Mode);
  
*************** package body Sem_Disp is
*** 1514,1523 ****
                          Subp);
  
                    else
- 
                       --  The subprogram body declares a primitive operation.
                       --  We must update its dispatching information here. The
                       --  information is taken from the overridden subprogram.
                       --  We must also generate a cross-reference entry because
                       --  references to other primitives were already created
                       --  when type was frozen.
--- 1575,1584 ----
                          Subp);
  
                    else
                       --  The subprogram body declares a primitive operation.
                       --  We must update its dispatching information here. The
                       --  information is taken from the overridden subprogram.
+                      --  Such a late-overriding body also needs extra formals.
                       --  We must also generate a cross-reference entry because
                       --  references to other primitives were already created
                       --  when type was frozen.
*************** package body Sem_Disp is
*** 1527,1532 ****
--- 1588,1594 ----
                       if Present (DTC_Entity (Old_Subp)) then
                          Set_DTC_Entity (Subp, DTC_Entity (Old_Subp));
                          Set_DT_Position_Value (Subp, DT_Position (Old_Subp));
+                         Create_Extra_Formals (Subp);
  
                          if not Restriction_Active (No_Dispatching_Calls) then
                             if Building_Static_DT (Tagged_Type) then
*************** package body Sem_Disp is
*** 1660,1672 ****
        then
           Ovr_Subp := Find_Hidden_Overridden_Primitive (Subp);
  
!          --  Verify that the proper overriding indicator has been supplied.
  
           if Present (Ovr_Subp)
             and then
               not Must_Override (Specification (Unit_Declaration_Node (Subp)))
           then
!             Error_Msg_NE ("missing overriding indicator for&", Subp, Subp);
           end if;
        end if;
  
--- 1722,1735 ----
        then
           Ovr_Subp := Find_Hidden_Overridden_Primitive (Subp);
  
!          --  Warn if the proper overriding indicator has not been supplied.
  
           if Present (Ovr_Subp)
             and then
               not Must_Override (Specification (Unit_Declaration_Node (Subp)))
+            and then not In_Instance
           then
!             Error_Msg_NE ("missing overriding indicator for&??", Subp, Subp);
           end if;
        end if;
  
*************** package body Sem_Disp is
*** 1765,1770 ****
--- 1828,1864 ----
        --  cascaded errors.
  
        elsif not Error_Posted (Subp) then
+ 
+          --  When aspect First_Controlling_Parameter applies, check if the
+          --  subprogram is a primitive. Internal subprograms added by the
+          --  frontend bypass its restrictions.
+ 
+          if Has_First_Controlling_Parameter_Aspect (Tagged_Type)
+            and then not Is_Internal (Subp)
+            and then not
+              (Present (Overridden_Operation (Subp))
+                 and then
+               Is_Dispatching_Operation (Overridden_Operation (Subp)))
+            and then not
+              (Present (Alias (Subp))
+                 and then
+               Is_Dispatching_Operation (Ultimate_Alias (Subp)))
+            and then (No (First_Formal (Subp))
+                        or else not
+                      Is_Controlling_Formal (First_Formal (Subp)))
+          then
+             if Warn_On_Non_Dispatching_Primitives then
+                Error_Msg_NE
+                  ("?_j?not a dispatching primitive of tagged type&",
+                   Subp, Tagged_Type);
+                Error_Msg_NE
+                  ("\?_j?disallowed by 'First_'Controlling_'Parameter on &",
+                   Subp, Tagged_Type);
+             end if;
+ 
+             return;
+          end if;
+ 
           Add_Dispatching_Operation (Tagged_Type, Subp);
        end if;
  
*************** package body Sem_Disp is
*** 1932,1950 ****
              Asp    : Node_Id;
  
           begin
!             if Present (Aspect_Specifications (W_Decl)) then
!                Asp := First (Aspect_Specifications (W_Decl));
!                while Present (Asp) loop
!                   if Chars (Identifier (Asp)) = Name_Yield then
!                      Error_Msg_Name_1 := Name_Yield;
!                      Error_Msg_N
!                        ("specification of inherited aspect% can only confirm "
!                         & "parent value", Asp);
!                   end if;
  
!                   Next (Asp);
!                end loop;
!             end if;
  
              Set_Has_Yield_Aspect (Wrapped_Entity (Subp));
           end;
--- 2026,2042 ----
              Asp    : Node_Id;
  
           begin
!             Asp := First (Aspect_Specifications (W_Decl));
!             while Present (Asp) loop
!                if Chars (Identifier (Asp)) = Name_Yield then
!                   Error_Msg_Name_1 := Name_Yield;
!                   Error_Msg_N
!                     ("specification of inherited aspect% can only confirm "
!                      & "parent value", Asp);
!                end if;
  
!                Next (Asp);
!             end loop;
  
              Set_Has_Yield_Aspect (Wrapped_Entity (Subp));
           end;
*************** package body Sem_Disp is
*** 2282,2287 ****
--- 2374,2428 ----
     ---------------------------
  
     function Find_Dispatching_Type (Subp : Entity_Id) return Entity_Id is
+ 
+       function Has_Predefined_Dispatching_Operation_Name return Boolean;
+       --  Determines if Subp has the name of a predefined dispatching
+       --  operation.
+ 
+       -----------------------------------------------
+       -- Has_Predefined_Dispatching_Operation_Name --
+       -----------------------------------------------
+ 
+       function Has_Predefined_Dispatching_Operation_Name return Boolean is
+          TSS_Name : TSS_Name_Type;
+ 
+       begin
+          Get_Name_String (Chars (Subp));
+ 
+          if Name_Len > TSS_Name_Type'Last then
+             TSS_Name :=
+               TSS_Name_Type
+                 (Name_Buffer (Name_Len - TSS_Name'Length + 1 .. Name_Len));
+ 
+             if Chars (Subp) in Name_uAssign
+                              | Name_uSize
+                              | Name_Op_Eq
+               or else TSS_Name = TSS_Deep_Adjust
+               or else TSS_Name = TSS_Deep_Finalize
+               or else TSS_Name = TSS_Stream_Input
+               or else TSS_Name = TSS_Stream_Output
+               or else TSS_Name = TSS_Stream_Read
+               or else TSS_Name = TSS_Stream_Write
+               or else TSS_Name = TSS_Put_Image
+ 
+                --  Name of predefined interface type primitives
+ 
+               or else Chars (Subp) in Name_uDisp_Asynchronous_Select
+                                     | Name_uDisp_Conditional_Select
+                                     | Name_uDisp_Get_Prim_Op_Kind
+                                     | Name_uDisp_Get_Task_Id
+                                     | Name_uDisp_Requeue
+                                     | Name_uDisp_Timed_Select
+             then
+                return True;
+             end if;
+          end if;
+ 
+          return False;
+       end Has_Predefined_Dispatching_Operation_Name;
+ 
+       --  Local variables
+ 
        A_Formal  : Entity_Id;
        Formal    : Entity_Id;
        Ctrl_Type : Entity_Id;
*************** package body Sem_Disp is
*** 2338,2344 ****
           --  The subprogram may also be dispatching on result
  
           if Present (Etype (Subp)) then
!             return Check_Controlling_Type (Etype (Subp), Subp);
           end if;
        end if;
  
--- 2479,2503 ----
           --  The subprogram may also be dispatching on result
  
           if Present (Etype (Subp)) then
!             if Is_Tagged_Type (Etype (Subp))
!               and then Has_First_Controlling_Parameter_Aspect (Etype (Subp))
!             then
!                if Present (Overridden_Operation (Subp))
!                  and then Has_Controlling_Result (Overridden_Operation (Subp))
!                then
!                   return Check_Controlling_Type (Etype (Subp), Subp);
! 
!                --  Internal subprograms added by the frontend bypass the
!                --  restrictions of First_Controlling_Parameter aspect.
! 
!                elsif Is_Internal (Subp)
!                  and then Has_Predefined_Dispatching_Operation_Name
!                then
!                   return Check_Controlling_Type (Etype (Subp), Subp);
!                end if;
!             else
!                return Check_Controlling_Type (Etype (Subp), Subp);
!             end if;
           end if;
        end if;
  
*************** package body Sem_Disp is
*** 2401,2407 ****
                 Orig_Prim := Original_Corresponding_Operation (Prim);
  
                 if Orig_Prim /= Prim
!                  and then Is_Immediately_Visible (Orig_Prim)
                 then
                    Vis_Ancestor := First_Elmt (Vis_List);
                    while Present (Vis_Ancestor) loop
--- 2560,2566 ----
                 Orig_Prim := Original_Corresponding_Operation (Prim);
  
                 if Orig_Prim /= Prim
!                  and then not Is_Hidden (Orig_Prim)
                 then
                    Vis_Ancestor := First_Elmt (Vis_List);
                    while Present (Vis_Ancestor) loop
*************** package body Sem_Disp is
*** 2439,2444 ****
--- 2598,2605 ----
       (Tagged_Type : Entity_Id;
        Iface_Prim  : Entity_Id) return Entity_Id
     is
+       Is_FCP_Type : constant Boolean :=
+                       Has_First_Controlling_Parameter_Aspect (Tagged_Type);
        E  : Entity_Id;
        El : Elmt_Id;
  
*************** package body Sem_Disp is
*** 2457,2465 ****
        while Present (E) loop
           if Is_Subprogram (E)
             and then Is_Dispatching_Operation (E)
-            and then Is_Interface_Conformant (Tagged_Type, Iface_Prim, E)
           then
!             return E;
           end if;
  
           E := Homonym (E);
--- 2618,2647 ----
        while Present (E) loop
           if Is_Subprogram (E)
             and then Is_Dispatching_Operation (E)
           then
!             --  For overriding primitives of parent or interface types that
!             --  do not have the aspect First_Controlling_Parameter, we must
!             --  temporarily unset this attribute to check conformance.
! 
!             if Ekind (E) = E_Function
!               and then Is_FCP_Type
!               and then Present (Overridden_Operation (E))
!               and then Has_Controlling_Result (Overridden_Operation (E))
!             then
!                Set_Has_First_Controlling_Parameter_Aspect (Tagged_Type, False);
! 
!                if Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
!                   Set_Has_First_Controlling_Parameter_Aspect
!                     (Tagged_Type, Is_FCP_Type);
!                   return E;
!                end if;
! 
!                Set_Has_First_Controlling_Parameter_Aspect
!                  (Tagged_Type, Is_FCP_Type);
! 
!             elsif Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
!                return E;
!             end if;
           end if;
  
           E := Homonym (E);
*************** package body Sem_Disp is
*** 2496,2502 ****
              --  Check if E covers the interface primitive (includes case in
              --  which E is an inherited private primitive).
  
!             if Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
                 return E;
              end if;
  
--- 2678,2705 ----
              --  Check if E covers the interface primitive (includes case in
              --  which E is an inherited private primitive).
  
!             --  For overriding primitives of parent or interface types that
!             --  do not have the aspect First_Controlling_Parameter, we must
!             --  temporarily unset this attribute to check conformance.
! 
!             if Present (Overridden_Operation (E))
!               and then Is_FCP_Type
!               and then not
!                 Has_First_Controlling_Parameter_Aspect
!                   (Find_Dispatching_Type (Overridden_Operation (E)))
!             then
!                Set_Has_First_Controlling_Parameter_Aspect (Tagged_Type, False);
! 
!                if Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
!                   Set_Has_First_Controlling_Parameter_Aspect
!                     (Tagged_Type, Is_FCP_Type);
!                   return E;
!                end if;
! 
!                Set_Has_First_Controlling_Parameter_Aspect
!                  (Tagged_Type, Is_FCP_Type);
! 
!             elsif Is_Interface_Conformant (Tagged_Type, Iface_Prim, E) then
                 return E;
              end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_disp.ads gcc-15.1.0/gcc/ada/sem_disp.ads
*** gcc-14.2.0/gcc/ada/sem_disp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_disp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_dist.adb gcc-15.1.0/gcc/ada/sem_dist.adb
*** gcc-14.2.0/gcc/ada/sem_dist.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_dist.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Dist is
*** 649,656 ****
                        Make_Defining_Identifier (Loc, Name_Ras),
                      Component_Definition =>
                        Make_Component_Definition (Loc,
!                         Aliased_Present     => False,
!                         Subtype_Indication  =>
                            New_Occurrence_Of (RACW_Type, Loc)))))));
  
        Set_Equivalent_Type (User_Type, Fat_Type);
--- 649,655 ----
                        Make_Defining_Identifier (Loc, Name_Ras),
                      Component_Definition =>
                        Make_Component_Definition (Loc,
!                         Subtype_Indication =>
                            New_Occurrence_Of (RACW_Type, Loc)))))));
  
        Set_Equivalent_Type (User_Type, Fat_Type);
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_dist.ads gcc-15.1.0/gcc/ada/sem_dist.ads
*** gcc-14.2.0/gcc/ada/sem_dist.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_dist.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_elab.adb gcc-15.1.0/gcc/ada/sem_elab.adb
*** gcc-14.2.0/gcc/ada/sem_elab.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_elab.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Util;       use Exp_Util;
*** 38,44 ****
  with Expander;       use Expander;
  with Lib;            use Lib;
  with Lib.Load;       use Lib.Load;
- with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Opt;            use Opt;
--- 38,43 ----
*************** package body Sem_Elab is
*** 1773,1797 ****
        pragma Inline (Is_Bridge_Target);
        --  Determine whether arbitrary entity Id denotes a bridge target
  
-       function Is_Controlled_Proc
-         (Subp_Id  : Entity_Id;
-          Subp_Nam : Name_Id) return Boolean;
-       pragma Inline (Is_Controlled_Proc);
-       --  Determine whether subprogram Subp_Id denotes controlled type
-       --  primitives Adjust, Finalize, or Initialize as denoted by name
-       --  Subp_Nam.
- 
        function Is_Default_Initial_Condition_Proc
          (Id : Entity_Id) return Boolean;
        pragma Inline (Is_Default_Initial_Condition_Proc);
        --  Determine whether arbitrary entity Id denotes internally generated
        --  routine Default_Initial_Condition.
  
-       function Is_Finalizer_Proc (Id : Entity_Id) return Boolean;
-       pragma Inline (Is_Finalizer_Proc);
-       --  Determine whether arbitrary entity Id denotes internally generated
-       --  routine _Finalizer.
- 
        function Is_Initial_Condition_Proc (Id : Entity_Id) return Boolean;
        pragma Inline (Is_Initial_Condition_Proc);
        --  Determine whether arbitrary entity Id denotes internally generated
--- 1772,1783 ----
*************** package body Sem_Elab is
*** 2447,2453 ****
           --  Calls to _Finalizer procedures must not appear in the output
           --  because this creates confusing noise.
  
!          elsif Is_Finalizer_Proc (Subp_Id) then
              null;
  
           --  Initial_Condition
--- 2433,2439 ----
           --  Calls to _Finalizer procedures must not appear in the output
           --  because this creates confusing noise.
  
!          elsif Is_Finalizer (Subp_Id) then
              null;
  
           --  Initial_Condition
*************** package body Sem_Elab is
*** 4920,4926 ****
             and then not New_In_State.Suppress_Info_Messages
           then
              Error_Msg_NE
!               ("info: access to & during elaboration", Attr, Subp_Id);
           end if;
  
           --  Warnings are suppressed when a prior scenario is already in that
--- 4906,4912 ----
             and then not New_In_State.Suppress_Info_Messages
           then
              Error_Msg_NE
!               ("info: access to & during elaboration?$?", Attr, Subp_Id);
           end if;
  
           --  Warnings are suppressed when a prior scenario is already in that
*************** package body Sem_Elab is
*** 5027,5033 ****
             and then not New_In_State.Suppress_Info_Messages
           then
              Error_Msg_NE
!               ("info: activation of & during elaboration", Call, Obj_Id);
           end if;
  
           --  Nothing to do when the call activates a task whose type is defined
--- 5013,5019 ----
             and then not New_In_State.Suppress_Info_Messages
           then
              Error_Msg_NE
!               ("info: activation of & during elaboration?$?", Call, Obj_Id);
           end if;
  
           --  Nothing to do when the call activates a task whose type is defined
*************** package body Sem_Elab is
*** 5315,5321 ****
                    --  primitive [Deep_]Initialize.
  
                    if Is_Init_Proc (Spec_Id)
!                     or else Is_Controlled_Proc (Spec_Id, Name_Initialize)
                      or else Is_TSS (Spec_Id, TSS_Deep_Initialize)
                    then
                       return True;
--- 5301,5307 ----
                    --  primitive [Deep_]Initialize.
  
                    if Is_Init_Proc (Spec_Id)
!                     or else Is_Controlled_Procedure (Spec_Id, Name_Initialize)
                      or else Is_TSS (Spec_Id, TSS_Deep_Initialize)
                    then
                       return True;
*************** package body Sem_Elab is
*** 5346,5353 ****
              --  an initialization context.
  
              return
!               (Is_Controlled_Proc (Subp_Id, Name_Finalize)
!                  or else Is_Finalizer_Proc (Subp_Id)
                   or else Is_TSS (Subp_Id, TSS_Deep_Finalize))
                 and then In_Initialization_Context (Call);
           end Is_Partial_Finalization_Proc;
--- 5332,5339 ----
              --  an initialization context.
  
              return
!               (Is_Controlled_Procedure (Subp_Id, Name_Finalize)
!                  or else Is_Finalizer (Subp_Id)
                   or else Is_TSS (Subp_Id, TSS_Deep_Finalize))
                 and then In_Initialization_Context (Call);
           end Is_Partial_Finalization_Proc;
*************** package body Sem_Elab is
*** 6461,6467 ****
              if In_SPARK then
                 return " in SPARK";
              else
!                return "";
              end if;
           end Suffix;
  
--- 6447,6453 ----
              if In_SPARK then
                 return " in SPARK";
              else
!                return "?$?";
              end if;
           end Suffix;
  
*************** package body Sem_Elab is
*** 6616,6622 ****
              --  Calls to _Finalizer procedures must not appear in the output
              --  because this creates confusing noise.
  
!             elsif Is_Finalizer_Proc (Subp_Id) then
                 null;
  
              --  Initial_Condition
--- 6602,6608 ----
              --  Calls to _Finalizer procedures must not appear in the output
              --  because this creates confusing noise.
  
!             elsif Is_Finalizer (Subp_Id) then
                 null;
  
              --  Initial_Condition
*************** package body Sem_Elab is
*** 8277,8283 ****
                 Error_Msg_Name_1     := Prag_Nam;
                 Error_Msg_Qual_Level := Nat'Last;
  
!                Error_Msg_NE ("info: missing pragma % for unit &", N, Unit_Id);
                 Error_Msg_Qual_Level := 0;
              end if;
           end Info_Missing_Pragma;
--- 8263,8271 ----
                 Error_Msg_Name_1     := Prag_Nam;
                 Error_Msg_Qual_Level := Nat'Last;
  
!                Error_Msg_NE
!                  ("info: missing pragma % for unit &?$?", N,
!                   Unit_Id);
                 Error_Msg_Qual_Level := 0;
              end if;
           end Info_Missing_Pragma;
*************** package body Sem_Elab is
*** 8406,8412 ****
                 Error_Msg_Qual_Level := Nat'Last;
  
                 Error_Msg_NE
!                  ("info: implicit pragma % generated for unit &", N, Unit_Id);
  
                 Error_Msg_Qual_Level := 0;
                 Output_Active_Scenarios (N, In_State);
--- 8394,8401 ----
                 Error_Msg_Qual_Level := Nat'Last;
  
                 Error_Msg_NE
!                  ("info: implicit pragma % generated for unit &?$?",
!                    N, Unit_Id);
  
                 Error_Msg_Qual_Level := 0;
                 Output_Active_Scenarios (N, In_State);
*************** package body Sem_Elab is
*** 8472,8480 ****
              Set_Context_Items (Main_Cunit, Items);
           end if;
  
!          --  Locate the with clause for the unit. Note that there may not be a
!          --  clause if the unit is visible through a subunit-body, body-spec,
!          --  or spec-parent relationship.
  
           Clause :=
             Find_With_Clause
--- 8461,8469 ----
              Set_Context_Items (Main_Cunit, Items);
           end if;
  
!          --  Locate the with clause for the unit. Note that there might not be
!          --  a with clause if the unit is visible through a subunit-body,
!          --  body-spec, or spec-parent relationship.
  
           Clause :=
             Find_With_Clause
*************** package body Sem_Elab is
*** 8486,8501 ****
  
           --  Note that adding implicit with clauses is safe because analysis,
           --  resolution, and expansion have already taken place and it is not
!          --  possible to interfere with visibility.
  
           if No (Clause) then
              Clause :=
                Make_With_Clause (Loc,
                  Name => New_Occurrence_Of (Unit_Id, Loc));
! 
!             Set_Implicit_With (Clause);
!             Set_Library_Unit  (Clause, Unit_Cunit);
! 
              Append_To (Items, Clause);
           end if;
  
--- 8475,8490 ----
  
           --  Note that adding implicit with clauses is safe because analysis,
           --  resolution, and expansion have already taken place and it is not
!          --  possible to interfere with visibility. Note that this implicit
!          --  with clause can point at (for example) a package body, which
!          --  is not the case for normal with clauses.
  
           if No (Clause) then
              Clause :=
                Make_With_Clause (Loc,
                  Name => New_Occurrence_Of (Unit_Id, Loc));
!             Set_Is_Implicit_With (Clause);
!             Set_Withed_Lib_Unit (Clause, Unit_Cunit);
              Append_To (Items, Clause);
           end if;
  
*************** package body Sem_Elab is
*** 9898,9904 ****
              elsif Nkind (Item) = N_Package_Body_Stub
                and then Chars (Defining_Entity (Item)) = Spec_Nam
              then
!                Lib_Unit := Library_Unit (Item);
  
                 --  The corresponding subunit was previously loaded
  
--- 9887,9893 ----
              elsif Nkind (Item) = N_Package_Body_Stub
                and then Chars (Defining_Entity (Item)) = Spec_Nam
              then
!                Lib_Unit := Stub_Subunit (Item);
  
                 --  The corresponding subunit was previously loaded
  
*************** package body Sem_Elab is
*** 10887,10906 ****
           Spec_Id : Entity_Id;
  
        begin
!          Spec_Id := Subp_Id;
! 
!          --  The elaboration target denotes an internal function that returns a
!          --  constrained array type in a SPARK-to-C compilation. In this case
!          --  the function receives a corresponding procedure which has an out
!          --  parameter. The proper body for ABE checks and diagnostics is that
!          --  of the procedure.
! 
!          if Ekind (Spec_Id) = E_Function
!            and then Rewritten_For_C (Spec_Id)
!          then
!             Spec_Id := Corresponding_Procedure (Spec_Id);
!          end if;
! 
           Rec.Kind := Subprogram_Target;
  
           Spec_And_Body_From_Entity
--- 10876,10882 ----
           Spec_Id : Entity_Id;
  
        begin
!          Spec_Id  := Subp_Id;
           Rec.Kind := Subprogram_Target;
  
           Spec_And_Body_From_Entity
*************** package body Sem_Elab is
*** 13110,13130 ****
  
              --  Controlled adjustment actions
  
!             elsif Is_Controlled_Proc (Targ_Id, Name_Adjust) then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Adjustment;
  
              --  Controlled finalization actions
  
!             elsif Is_Controlled_Proc (Targ_Id, Name_Finalize)
!               or else Is_Finalizer_Proc (Targ_Id)
              then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Finalization;
  
              --  Controlled initialization actions
  
!             elsif Is_Controlled_Proc (Targ_Id, Name_Initialize) then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Initialization;
  
--- 13086,13106 ----
  
              --  Controlled adjustment actions
  
!             elsif Is_Controlled_Procedure (Targ_Id, Name_Adjust) then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Adjustment;
  
              --  Controlled finalization actions
  
!             elsif Is_Controlled_Procedure (Targ_Id, Name_Finalize)
!               or else Is_Finalizer (Targ_Id)
              then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Finalization;
  
              --  Controlled initialization actions
  
!             elsif Is_Controlled_Procedure (Targ_Id, Name_Initialize) then
                 Extra := First_Formal_Type (Targ_Id);
                 Kind  := Controlled_Initialization;
  
*************** package body Sem_Elab is
*** 14424,14432 ****
        begin
           return
             Is_Activation_Proc (Id)
!              or else Is_Controlled_Proc (Id, Name_Adjust)
!              or else Is_Controlled_Proc (Id, Name_Finalize)
!              or else Is_Controlled_Proc (Id, Name_Initialize)
               or else Is_Init_Proc (Id)
               or else Is_Invariant_Proc (Id)
               or else Is_Protected_Entry (Id)
--- 14400,14408 ----
        begin
           return
             Is_Activation_Proc (Id)
!              or else Is_Controlled_Procedure (Id, Name_Adjust)
!              or else Is_Controlled_Procedure (Id, Name_Finalize)
!              or else Is_Controlled_Procedure (Id, Name_Initialize)
               or else Is_Init_Proc (Id)
               or else Is_Invariant_Proc (Id)
               or else Is_Protected_Entry (Id)
*************** package body Sem_Elab is
*** 14486,14531 ****
        begin
           return
             Is_Accept_Alternative_Proc (Id)
!              or else Is_Finalizer_Proc (Id)
               or else Is_Partial_Invariant_Proc (Id)
               or else Is_TSS (Id, TSS_Deep_Adjust)
               or else Is_TSS (Id, TSS_Deep_Finalize)
               or else Is_TSS (Id, TSS_Deep_Initialize);
        end Is_Bridge_Target;
  
-       ------------------------
-       -- Is_Controlled_Proc --
-       ------------------------
- 
-       function Is_Controlled_Proc
-         (Subp_Id  : Entity_Id;
-          Subp_Nam : Name_Id) return Boolean
-       is
-          Formal_Id : Entity_Id;
- 
-       begin
-          pragma Assert
-            (Subp_Nam in Name_Adjust | Name_Finalize | Name_Initialize);
- 
-          --  To qualify, the subprogram must denote a source procedure with
-          --  name Adjust, Finalize, or Initialize where the sole formal is
-          --  controlled.
- 
-          if Comes_From_Source (Subp_Id)
-            and then Ekind (Subp_Id) = E_Procedure
-            and then Chars (Subp_Id) = Subp_Nam
-          then
-             Formal_Id := First_Formal (Subp_Id);
- 
-             return
-               Present (Formal_Id)
-                 and then Is_Controlled (Etype (Formal_Id))
-                 and then No (Next_Formal (Formal_Id));
-          end if;
- 
-          return False;
-       end Is_Controlled_Proc;
- 
        ---------------------------------------
        -- Is_Default_Initial_Condition_Proc --
        ---------------------------------------
--- 14462,14474 ----
        begin
           return
             Is_Accept_Alternative_Proc (Id)
!              or else Is_Finalizer (Id)
               or else Is_Partial_Invariant_Proc (Id)
               or else Is_TSS (Id, TSS_Deep_Adjust)
               or else Is_TSS (Id, TSS_Deep_Finalize)
               or else Is_TSS (Id, TSS_Deep_Initialize);
        end Is_Bridge_Target;
  
        ---------------------------------------
        -- Is_Default_Initial_Condition_Proc --
        ---------------------------------------
*************** package body Sem_Elab is
*** 14540,14556 ****
           return Ekind (Id) = E_Procedure and then Is_DIC_Procedure (Id);
        end Is_Default_Initial_Condition_Proc;
  
-       -----------------------
-       -- Is_Finalizer_Proc --
-       -----------------------
- 
-       function Is_Finalizer_Proc (Id : Entity_Id) return Boolean is
-       begin
-          --  To qualify, the entity must denote a _Finalizer procedure
- 
-          return Ekind (Id) = E_Procedure and then Chars (Id) = Name_uFinalizer;
-       end Is_Finalizer_Proc;
- 
        -------------------------------
        -- Is_Initial_Condition_Proc --
        -------------------------------
--- 14483,14488 ----
*************** package body Sem_Elab is
*** 16386,16394 ****
     --  to be the enclosing compilation unit of this scope.
  
     procedure Set_Elaboration_Constraint
!     (Call : Node_Id;
!      Subp : Entity_Id;
!      Scop : Entity_Id);
     --  The current unit U may depend semantically on some unit P that is not
     --  in the current context. If there is an elaboration call that reaches P,
     --  we need to indicate that P requires an Elaborate_All, but this is not
--- 16318,16326 ----
     --  to be the enclosing compilation unit of this scope.
  
     procedure Set_Elaboration_Constraint
!      (Call : Node_Id;
!       Subp : Entity_Id;
!       Scop : Entity_Id);
     --  The current unit U may depend semantically on some unit P that is not
     --  in the current context. If there is an elaboration call that reaches P,
     --  we need to indicate that P requires an Elaborate_All, but this is not
*************** package body Sem_Elab is
*** 16442,16447 ****
--- 16374,16381 ----
        --  This procedure is called when the elaborate indication must be
        --  applied to a unit not in the context of the referencing unit. The
        --  unit gets added to the context as an implicit with.
+       --  Note that we can be with-ing (for example) a package body, which
+       --  is not the case for normal with clauses.
  
        function In_Withs_Of (UEs : Entity_Id) return Boolean;
        --  UEs is the spec entity of a unit. If the unit to be marked is
*************** package body Sem_Elab is
*** 16461,16468 ****
                    Name => Name (Itm));
  
        begin
!          Set_Library_Unit  (CW, Library_Unit (Itm));
!          Set_Implicit_With (CW);
  
           --  Set elaborate all desirable on copy and then append the copy to
           --  the list of body with's and we are done.
--- 16395,16402 ----
                    Name => Name (Itm));
  
        begin
!          Set_Is_Implicit_With (CW);
!          Set_Withed_Lib_Unit (CW, Withed_Lib_Unit (Itm));
  
           --  Set elaborate all desirable on copy and then append the copy to
           --  the list of body with's and we are done.
*************** package body Sem_Elab is
*** 16485,16491 ****
           while Present (Itm) loop
              if Nkind (Itm) = N_With_Clause then
                 Ent :=
!                  Cunit_Entity (Get_Cunit_Unit_Number (Library_Unit (Itm)));
  
                 if U = Ent then
                    return True;
--- 16419,16425 ----
           while Present (Itm) loop
              if Nkind (Itm) = N_With_Clause then
                 Ent :=
!                  Cunit_Entity (Get_Cunit_Unit_Number (Withed_Lib_Unit (Itm)));
  
                 if U = Ent then
                    return True;
*************** package body Sem_Elab is
*** 16533,16539 ****
        Itm := First (CI);
        while Present (Itm) loop
           if Nkind (Itm) = N_With_Clause then
!             Ent := Cunit_Entity (Get_Cunit_Unit_Number (Library_Unit (Itm)));
  
              --  If we find it, then mark elaborate all desirable and return
  
--- 16467,16474 ----
        Itm := First (CI);
        while Present (Itm) loop
           if Nkind (Itm) = N_With_Clause then
!             Ent :=
!               Cunit_Entity (Get_Cunit_Unit_Number (Withed_Lib_Unit (Itm)));
  
              --  If we find it, then mark elaborate all desirable and return
  
*************** package body Sem_Elab is
*** 16607,16616 ****
          (Msg_D : String;
           Msg_S : String;
           Ent   : Node_Or_Entity_Id);
!        --  Generate a call to Error_Msg_NE with parameters Msg_D or Msg_S (for
!        --  dynamic or static elaboration model), N and Ent. Msg_D is a real
!        --  warning (output if Msg_D is non-null and Elab_Warnings is set),
!        --  Msg_S is an info message (output if Elab_Info_Messages is set).
  
        function Find_W_Scope return Entity_Id;
        --  Find top-level scope for called entity (not following renamings
--- 16542,16551 ----
          (Msg_D : String;
           Msg_S : String;
           Ent   : Node_Or_Entity_Id);
!       --  Generate a call to Error_Msg_NE with parameters Msg_D or Msg_S (for
!       --  dynamic or static elaboration model), N and Ent. Msg_D is a real
!       --  warning (output if Msg_D is non-null and Elab_Warnings is set),
!       --  Msg_S is an info message (output if Elab_Info_Messages is set).
  
        function Find_W_Scope return Entity_Id;
        --  Find top-level scope for called entity (not following renamings
*************** package body Sem_Elab is
*** 16945,16951 ****
                 if not Is_Controlled (Typ) then
                    return;
                 else
!                   Init := Find_Prim_Op (Typ, Name_Initialize);
  
                    if Comes_From_Source (Init) then
                       Ent := Init;
--- 16880,16886 ----
                 if not Is_Controlled (Typ) then
                    return;
                 else
!                   Init := Find_Controlled_Prim_Op (Typ, Name_Initialize);
  
                    if Comes_From_Source (Init) then
                       Ent := Init;
*************** package body Sem_Elab is
*** 17454,17460 ****
        --  Nothing to do if call is being preanalyzed, as when within a
        --  pre/postcondition, a predicate, or an invariant.
  
!       elsif In_Spec_Expression then
           return;
        end if;
  
--- 17389,17395 ----
        --  Nothing to do if call is being preanalyzed, as when within a
        --  pre/postcondition, a predicate, or an invariant.
  
!       elsif Preanalysis_Active then
           return;
        end if;
  
*************** package body Sem_Elab is
*** 18737,18760 ****
                   ("instantiation of& may occur before body is seen<l<",
                    N, Orig_Ent);
              else
!                --  A rather specific check. For Finalize/Adjust/Initialize, if
                 --  the type has Warnings_Off set, suppress the warning.
  
!                if Chars (E) in Name_Adjust
!                              | Name_Finalize
!                              | Name_Initialize
!                  and then Present (First_Formal (E))
                 then
                    declare
                       T : constant Entity_Id := Etype (First_Formal (E));
                    begin
!                      if Is_Controlled (T) then
!                         if Has_Warnings_Off (T)
!                           or else (Ekind (T) = E_Private_Type
!                                     and then Has_Warnings_Off (Full_View (T)))
!                         then
!                            goto Output;
!                         end if;
                       end if;
                    end;
                 end if;
--- 18672,18693 ----
                   ("instantiation of& may occur before body is seen<l<",
                    N, Orig_Ent);
              else
!                --  A rather specific check: for Adjust/Finalize/Initialize, if
                 --  the type has Warnings_Off set, suppress the warning.
  
!                if Is_Controlled_Procedure (E, Name_Adjust)
!                  or else Is_Controlled_Procedure (E, Name_Finalize)
!                  or else Is_Controlled_Procedure (E, Name_Initialize)
                 then
                    declare
                       T : constant Entity_Id := Etype (First_Formal (E));
+ 
                    begin
!                      if Has_Warnings_Off (T)
!                        or else (Ekind (T) = E_Private_Type
!                                  and then Has_Warnings_Off (Full_View (T)))
!                      then
!                         goto Output;
                       end if;
                    end;
                 end if;
*************** package body Sem_Elab is
*** 19125,19132 ****
              elsif Nkind (Nod) = N_Package_Body_Stub
                and then Chars (Defining_Identifier (Nod)) = Chars (E)
              then
!                if Present (Library_Unit (Nod)) then
!                   return Unit (Library_Unit (Nod));
  
                 else
                    return Load_Package_Body (Get_Unit_Name (Nod));
--- 19058,19065 ----
              elsif Nkind (Nod) = N_Package_Body_Stub
                and then Chars (Defining_Identifier (Nod)) = Chars (E)
              then
!                if Present (Stub_Subunit (Nod)) then
!                   return Unit (Stub_Subunit (Nod));
  
                 else
                    return Load_Package_Body (Get_Unit_Name (Nod));
*************** package body Sem_Elab is
*** 19372,19377 ****
--- 19305,19341 ----
          and then Chars (Name (N)) /= Chars (Entity (Name (N)));
     end Is_Call_Of_Generic_Formal;
  
+    -----------------------------
+    -- Is_Controlled_Procedure --
+    -----------------------------
+ 
+    function Is_Controlled_Procedure
+      (Id  : Entity_Id;
+       Nam : Name_Id) return Boolean
+    is
+    begin
+       --  To qualify, the subprogram must denote a source procedure with
+       --  name Adjust, Finalize, or Initialize where the sole formal is
+       --  in out and controlled.
+ 
+       if Comes_From_Source (Id) and then Ekind (Id) = E_Procedure then
+          declare
+             Formal_Id : constant Entity_Id := First_Formal (Id);
+ 
+          begin
+             return
+               Present (Formal_Id)
+                 and then Ekind (Formal_Id) = E_In_Out_Parameter
+                 and then Is_Controlled (Etype (Formal_Id))
+                 and then No (Next_Formal (Formal_Id))
+                 and then Chars (Id) =
+                   Name_Of_Controlled_Prim_Op (Etype (Formal_Id), Nam);
+          end;
+       end if;
+ 
+       return False;
+    end Is_Controlled_Procedure;
+ 
     -------------------------------
     -- Is_Finalization_Procedure --
     -------------------------------
*************** package body Sem_Elab is
*** 19404,19410 ****
              Deep_Fin := TSS (Typ, TSS_Deep_Finalize);
  
              if Is_Controlled (Typ) then
!                Fin := Find_Prim_Op (Typ, Name_Finalize);
              end if;
  
              return    (Present (Deep_Fin) and then Id = Deep_Fin)
--- 19368,19374 ----
              Deep_Fin := TSS (Typ, TSS_Deep_Finalize);
  
              if Is_Controlled (Typ) then
!                Fin := Find_Controlled_Prim_Op (Typ, Name_Finalize);
              end if;
  
              return    (Present (Deep_Fin) and then Id = Deep_Fin)
*************** package body Sem_Elab is
*** 19559,19567 ****
     --------------------------------
  
     procedure Set_Elaboration_Constraint
!     (Call : Node_Id;
!      Subp : Entity_Id;
!      Scop : Entity_Id)
     is
        Elab_Unit : Entity_Id;
  
--- 19523,19531 ----
     --------------------------------
  
     procedure Set_Elaboration_Constraint
!      (Call : Node_Id;
!       Subp : Entity_Id;
!       Scop : Entity_Id)
     is
        Elab_Unit : Entity_Id;
  
*************** package body Sem_Elab is
*** 19571,19580 ****
  
        Init_Call : constant Boolean :=
                      Nkind (Call) = N_Procedure_Call_Statement
!                       and then Chars (Subp) = Name_Initialize
!                       and then Comes_From_Source (Subp)
!                       and then Present (Parameter_Associations (Call))
!                       and then Is_Controlled (Etype (First_Actual (Call)));
  
     begin
        --  If the unit is mentioned in a with_clause of the current unit, it is
--- 19535,19541 ----
  
        Init_Call : constant Boolean :=
                      Nkind (Call) = N_Procedure_Call_Statement
!                       and then Is_Controlled_Procedure (Subp, Name_Initialize);
  
     begin
        --  If the unit is mentioned in a with_clause of the current unit, it is
*************** package body Sem_Elab is
*** 19798,19804 ****
                    --  in each N_Compilation_Unit node, but that would involve
                    --  rearranging N_Compilation_Unit_Aux to make room.
  
!                   Helper (Get_Cunit_Unit_Number (Library_Unit (Item)));
  
                    if Result then
                       return;
--- 19759,19765 ----
                    --  in each N_Compilation_Unit node, but that would involve
                    --  rearranging N_Compilation_Unit_Aux to make room.
  
!                   Helper (Get_Cunit_Unit_Number (Withed_Lib_Unit (Item)));
  
                    if Result then
                       return;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_elab.ads gcc-15.1.0/gcc/ada/sem_elab.ads
*** gcc-14.2.0/gcc/ada/sem_elab.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_elab.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,31 ****
--- 26,32 ----
  --  This package contains routines which handle access-before-elaboration
  --  run-time checks and compile-time diagnostics. See the body for details.
  
+ with Namet; use Namet;
  with Types; use Types;
  
  package Sem_Elab is
*************** package Sem_Elab is
*** 119,124 ****
--- 120,131 ----
     pragma Inline (Initialize);
     --  Initialize the internal structures of this unit
  
+    function Is_Controlled_Procedure
+      (Id  : Entity_Id;
+       Nam : Name_Id) return Boolean;
+    --  Determine whether subprogram Id denotes controlled primitive operation
+    --  Adjust, Finalize, or Initialize as specified by Nam.
+ 
     procedure Kill_Elaboration_Scenario (N : Node_Id);
     --  Determine whether arbitrary node N denotes a scenario which requires
     --  ABE diagnostics or runtime checks and eliminate it from a region with
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_elim.adb gcc-15.1.0/gcc/ada/sem_elim.adb
*** gcc-14.2.0/gcc/ada/sem_elim.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_elim.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Elim is
*** 728,736 ****
     begin
        --  No check needed within a default expression for a formal, since this
        --  is not really a use, and the expression (a call or attribute) may
!       --  never be used if the enclosing subprogram is itself eliminated.
  
!       if In_Spec_Expression then
           return;
        end if;
  
--- 728,737 ----
     begin
        --  No check needed within a default expression for a formal, since this
        --  is not really a use, and the expression (a call or attribute) may
!       --  never be used if the enclosing subprogram is itself eliminated. Same
!       --  under strict preanalysis.
  
!       if Preanalysis_Active then
           return;
        end if;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_elim.ads gcc-15.1.0/gcc/ada/sem_elim.ads
*** gcc-14.2.0/gcc/ada/sem_elim.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_elim.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_eval.adb gcc-15.1.0/gcc/ada/sem_eval.adb
*** gcc-14.2.0/gcc/ada/sem_eval.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_eval.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo.Utils;    use Einfo.Utils;
*** 33,38 ****
--- 33,39 ----
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Eval_Fat;       use Eval_Fat;
+ with Exp_Intr;       use Exp_Intr;
  with Exp_Util;       use Exp_Util;
  with Freeze;         use Freeze;
  with Lib;            use Lib;
*************** package body Sem_Eval is
*** 191,197 ****
     --  (it is an error to make the call if these conditions are not met).
  
     procedure Eval_Intrinsic_Call (N : Node_Id; E : Entity_Id);
!    --  Evaluate a call N to an intrinsic subprogram E.
  
     function Find_Universal_Operator_Type (N : Node_Id) return Entity_Id;
     --  Check whether an arithmetic operation with universal operands which is a
--- 192,198 ----
     --  (it is an error to make the call if these conditions are not met).
  
     procedure Eval_Intrinsic_Call (N : Node_Id; E : Entity_Id);
!    --  Evaluate a call N to an intrinsic subprogram E
  
     function Find_Universal_Operator_Type (N : Node_Id) return Entity_Id;
     --  Check whether an arithmetic operation with universal operands which is a
*************** package body Sem_Eval is
*** 2628,2633 ****
--- 2629,2637 ----
        Expr := First (Expressions (N));
        while Present (Expr) loop
           Check_Non_Static_Context (Expr);
+          if Kill_Range_Check (N) then
+             Set_Do_Range_Check (Expr, False);
+          end if;
           Next (Expr);
        end loop;
  
*************** package body Sem_Eval is
*** 2644,2649 ****
--- 2648,2661 ----
  
        elsif Nkind (Parent (N)) = N_Attribute_Reference then
           return;
+ 
+       --  Similarly if the indexed component appears as the name of an
+       --  assignment statement, we don't want to evaluate it,
+ 
+       elsif Nkind (Parent (N)) = N_Assignment_Statement
+         and then N = Name (Parent (N))
+       then
+          return;
        end if;
  
        --  Note: there are other cases, such as the left side of an assignment,
*************** package body Sem_Eval is
*** 2684,2692 ****
  
              --  If we have an array type (we should have but perhaps there are
              --  error cases where this is not the case), then see if we can do
!             --  a constant evaluation of the array reference.
  
!             if Is_Array_Type (Atyp) and then Atyp /= Any_Composite then
                 if Ekind (Atyp) = E_String_Literal_Subtype then
                    Lbd := String_Literal_Low_Bound (Atyp);
                 else
--- 2696,2708 ----
  
              --  If we have an array type (we should have but perhaps there are
              --  error cases where this is not the case), then see if we can do
!             --  a constant evaluation of the array reference, although specific
!             --  processing would be required if the array type is bit-packed.
  
!             if Is_Array_Type (Atyp)
!               and then not Is_Bit_Packed_Array (Atyp)
!               and then Atyp /= Any_Composite
!             then
                 if Ekind (Atyp) = E_String_Literal_Subtype then
                    Lbd := String_Literal_Low_Bound (Atyp);
                 else
*************** package body Sem_Eval is
*** 2888,2900 ****
        end if;
  
        case Nam is
!          when Name_Shift_Left  =>
              Eval_Shift (N, E, N_Op_Shift_Left);
           when Name_Shift_Right =>
              Eval_Shift (N, E, N_Op_Shift_Right);
           when Name_Shift_Right_Arithmetic =>
              Eval_Shift (N, E, N_Op_Shift_Right_Arithmetic);
!          when others           =>
              null;
        end case;
     end Eval_Intrinsic_Call;
--- 2904,2946 ----
        end if;
  
        case Nam is
! 
!          --  Compilation date and time are the same for the entire compilation
!          --  unit, so we can replace them with static strings.
! 
!          when Name_Compilation_ISO_Date
!             | Name_Compilation_Date
!             | Name_Compilation_Time
!          =>
!             Expand_Source_Info (N, Nam);
! 
!          --  Calls to other intrinsics from the GNAT.Source_Info package give
!          --  different results, depending on where they occur. In particular,
!          --  for generics their results depend on where those generics are
!          --  instantiated; same for default values of subprogram parameters.
!          --  Those calls will behave as nonstatic, and we postpone their
!          --  rewriting until expansion.
! 
!          when Name_Enclosing_Entity
!             | Name_File
!             | Name_Line
!             | Name_Source_Location
!          =>
!             if Inside_A_Generic
!               or else Preanalysis_Active
!             then
!                null;
!             else
!                Expand_Source_Info (N, Nam);
!             end if;
! 
!          when Name_Shift_Left =>
              Eval_Shift (N, E, N_Op_Shift_Left);
           when Name_Shift_Right =>
              Eval_Shift (N, E, N_Op_Shift_Right);
           when Name_Shift_Right_Arithmetic =>
              Eval_Shift (N, E, N_Op_Shift_Right_Arithmetic);
!          when others =>
              null;
        end case;
     end Eval_Intrinsic_Call;
*************** package body Sem_Eval is
*** 5485,5490 ****
--- 5531,5575 ----
        return Is_Static_Expression (N) and then not Raises_Constraint_Error (N);
     end Is_OK_Static_Expression;
  
+    -------------------------------------
+    -- Is_OK_Static_Expression_Of_Type --
+    -------------------------------------
+ 
+    function Is_OK_Static_Expression_Of_Type
+      (Expr : Node_Id; Typ : Entity_Id := Empty) return Staticity is
+    begin
+       if Present (Typ) then
+          Analyze_And_Resolve (Expr, Typ);
+       else
+          Analyze_And_Resolve (Expr);
+       end if;
+ 
+       --  An expression cannot be considered static if its resolution
+       --  failed or if an error was flagged.
+ 
+       if Etype (Expr) = Any_Type or else Error_Posted (Expr) then
+          return Invalid;
+       end if;
+ 
+       if Is_OK_Static_Expression (Expr) then
+          return Static;
+       end if;
+ 
+       --  An interesting special case, if we have a string literal and we
+       --  are in Ada 83 mode, then we allow it even though it will not be
+       --  flagged as static. This allows the use of Ada 95 pragmas like
+       --  Import in Ada 83 mode. They will of course be flagged with
+       --  warnings as usual, but will not cause errors.
+ 
+       if Ada_Version = Ada_83
+         and then Nkind (Expr) = N_String_Literal
+       then
+          return Static;
+       end if;
+ 
+       return Not_Static;
+    end Is_OK_Static_Expression_Of_Type;
+ 
     ------------------------
     -- Is_OK_Static_Range --
     ------------------------
*************** package body Sem_Eval is
*** 6185,6194 ****
  
           if Is_Discrete_Type (T1) and then Is_Discrete_Type (T2) then
              declare
!                Interval_List1 : constant Interval_Lists.Discrete_Interval_List
!                  := Interval_Lists.Type_Intervals (T1);
!                Interval_List2 : constant Interval_Lists.Discrete_Interval_List
!                  := Interval_Lists.Type_Intervals (T2);
              begin
                 return Interval_Lists.Is_Subset (Interval_List1, Interval_List2)
                   and then not (Has_Predicates (T1)
--- 6270,6281 ----
  
           if Is_Discrete_Type (T1) and then Is_Discrete_Type (T2) then
              declare
!                Interval_List1 :
!                  constant Interval_Lists.Discrete_Interval_List :=
!                  Interval_Lists.Type_Intervals (T1);
!                Interval_List2 :
!                  constant Interval_Lists.Discrete_Interval_List :=
!                  Interval_Lists.Type_Intervals (T2);
              begin
                 return Interval_Lists.Is_Subset (Interval_List1, Interval_List2)
                   and then not (Has_Predicates (T1)
*************** package body Sem_Eval is
*** 6507,6513 ****
  
        --  Scalar types
  
!       elsif Is_Scalar_Type (T1) then
  
           --  Definitely compatible if we match
  
--- 6594,6600 ----
  
        --  Scalar types
  
!       elsif Is_Scalar_Type (T1) and then Is_Scalar_Type (T2) then
  
           --  Definitely compatible if we match
  
*************** package body Sem_Eval is
*** 6560,6566 ****
  
        --  Access types
  
!       elsif Is_Access_Type (T1) then
           return
             (not Is_Constrained (T2)
               or else Subtypes_Statically_Match
--- 6647,6653 ----
  
        --  Access types
  
!       elsif Is_Access_Type (T1) and then Is_Access_Type (T2) then
           return
             (not Is_Constrained (T2)
               or else Subtypes_Statically_Match
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_eval.ads gcc-15.1.0/gcc/ada/sem_eval.ads
*** gcc-14.2.0/gcc/ada/sem_eval.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_eval.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Eval is
*** 422,427 ****
--- 422,436 ----
     --  for compile time evaluation purposes. Use Compile_Time_Known_Value
     --  instead (see section on "Compile-Time Known Values" above).
  
+    type Staticity is (Static, Not_Static, Invalid);
+ 
+    function Is_OK_Static_Expression_Of_Type
+      (Expr : Node_Id; Typ : Entity_Id := Empty) return Staticity;
+    --  Return whether Expr is a static expression of the given type (i.e. it
+    --  will be analyzed and resolved using this type, which can be any valid
+    --  argument to Resolve, e.g. Any_Integer is OK). Includes checking that the
+    --  expression does not raise Constraint_Error.
+ 
     function Is_OK_Static_Range (N : Node_Id) return Boolean;
     --  Determines if range is static, as defined in RM 4.9(26), and also checks
     --  that neither bound of the range raises constraint error, thus ensuring
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_intr.adb gcc-15.1.0/gcc/ada/sem_intr.adb
*** gcc-14.2.0/gcc/ada/sem_intr.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_intr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_intr.ads gcc-15.1.0/gcc/ada/sem_intr.ads
*** gcc-14.2.0/gcc/ada/sem_intr.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_intr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_mech.adb gcc-15.1.0/gcc/ada/sem_mech.adb
*** gcc-14.2.0/gcc/ada/sem_mech.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_mech.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_mech.ads gcc-15.1.0/gcc/ada/sem_mech.ads
*** gcc-14.2.0/gcc/ada/sem_mech.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_mech.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_prag.adb gcc-15.1.0/gcc/ada/sem_prag.adb
*** gcc-14.2.0/gcc/ada/sem_prag.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_prag.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Stylesw;        use Stylesw;
*** 90,96 ****
  with Table;
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
! with Ttypes;
  with Uintp;          use Uintp;
  with Uname;          use Uname;
  with Urealp;         use Urealp;
--- 90,96 ----
  with Table;
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
! with Ttypes;         use Ttypes;
  with Uintp;          use Uintp;
  with Uname;          use Uname;
  with Urealp;         use Urealp;
*************** package body Sem_Prag is
*** 280,290 ****
     --  Determine whether dependency clause Clause is surrounded by extra
     --  parentheses. If this is the case, issue an error message.
  
-    function Is_Unconstrained_Or_Tagged_Item (Item : Entity_Id) return Boolean;
-    --  Subsidiary to Collect_Subprogram_Inputs_Outputs and the analysis of
-    --  pragma Depends. Determine whether the type of dependency item Item is
-    --  tagged, unconstrained array or unconstrained record.
- 
     procedure Record_Possible_Body_Reference
       (State_Id : Entity_Id;
        Ref      : Node_Id);
--- 280,285 ----
*************** package body Sem_Prag is
*** 1383,1392 ****
             (Item_Is_Input  : out Boolean;
              Item_Is_Output : out Boolean)
           is
!             --  A constant or an IN parameter of a procedure or a protected
!             --  entry, if it is of an access-to-variable type, should be
!             --  handled like a variable, as the underlying memory pointed-to
!             --  can be modified. Use Adjusted_Kind to do this adjustment.
  
              Adjusted_Kind : Entity_Kind := Ekind (Item_Id);
  
--- 1378,1388 ----
             (Item_Is_Input  : out Boolean;
              Item_Is_Output : out Boolean)
           is
!             --  A constant or an IN parameter of a protected entry, procedure,
!             --  or function with side-effects, if it is of an
!             --  access-to-variable type, should be handled like a variable, as
!             --  the underlying memory pointed-to can be modified. Use
!             --  Adjusted_Kind to do this adjustment.
  
              Adjusted_Kind : Entity_Kind := Ekind (Item_Id);
  
*************** package body Sem_Prag is
*** 1394,1404 ****
              if (Ekind (Item_Id) in E_Constant | E_Generic_In_Parameter
                    or else
                    (Ekind (Item_Id) = E_In_Parameter
!                      and then Ekind (Scope (Item_Id))
!                                 not in E_Function | E_Generic_Function))
                and then Is_Access_Variable (Etype (Item_Id))
!               and then Ekind (Spec_Id) not in E_Function
!                                             | E_Generic_Function
              then
                 Adjusted_Kind := E_Variable;
              end if;
--- 1390,1404 ----
              if (Ekind (Item_Id) in E_Constant | E_Generic_In_Parameter
                    or else
                    (Ekind (Item_Id) = E_In_Parameter
!                      and then
!                    (Ekind (Scope (Item_Id)) not in E_Function
!                                                  | E_Generic_Function
!                       or else
!                     Is_Function_With_Side_Effects (Scope (Item_Id)))))
                and then Is_Access_Variable (Etype (Item_Id))
!               and then (Ekind (Spec_Id) not in E_Function
!                                              | E_Generic_Function
!                           or else Is_Function_With_Side_Effects (Spec_Id))
              then
                 Adjusted_Kind := E_Variable;
              end if;
*************** package body Sem_Prag is
*** 2211,2216 ****
--- 2211,2287 ----
        procedure Check_Duplication (Id : Node_Id; Contracts : List_Id);
        --  Iterate through the identifiers in each contract to find duplicates
  
+       function Check_Param (N : Node_Id) return Traverse_Result;
+       --  Parameters of modes OUT or IN OUT of the subprogram shall not occur
+       --  in the consequences of an exceptional contract unless they are either
+       --  passed by reference or occur in the prefix of a reference to the 'Old
+       --  attribute or as direct prefixes of attributes that do not actually
+       --  read data from the object (SPARK RM 6.1.9(1)). References to
+       --  attribute Result should not occur either.
+ 
+       -----------------
+       -- Check_Param --
+       -----------------
+ 
+       function Check_Param (N : Node_Id) return Traverse_Result is
+       begin
+          case Nkind (N) is
+             when N_Identifier | N_Expanded_Name =>
+                declare
+                   Id : constant Entity_Id := Entity (N);
+                begin
+                   if Present (Id)
+                     and then Ekind (Id) in E_Out_Parameter
+                                          | E_In_Out_Parameter
+                     and then Scope (Id) = Spec_Id
+                     and then not Is_By_Reference_Type (Etype (Id))
+                     and then not Is_Aliased (Id)
+                   then
+                      declare
+                         Mode : constant String :=
+                           (if Ekind (Id) = E_Out_Parameter then "out"
+                            else "in out");
+                      begin
+                         Error_Msg_N
+                           ("formal parameter of mode """ & Mode
+                            & """ in consequence of Exceptional_Cases", N);
+                         Error_Msg_N
+                           ("\only parameters passed by reference are allowed",
+                            N);
+                      end;
+                   end if;
+                end;
+ 
+             when N_Attribute_Reference =>
+                case Attribute_Name (N) is
+                   when Name_Old =>
+                      return Skip;
+                   when Name_Constrained
+                      | Name_First
+                      | Name_Last
+                      | Name_Length
+                      | Name_Range
+                   =>
+                      if Nkind (Prefix (N)) in N_Identifier
+                                             | N_Expanded_Name
+                      then
+                         return Skip;
+                      end if;
+                   when Name_Result =>
+                      Error_Msg_N
+                        ("attribute Result in consequence of Exceptional_Cases",
+                         N);
+                   when others => null;
+                end case;
+ 
+             when others => null;
+          end case;
+ 
+          return OK;
+       end Check_Param;
+ 
+       procedure Check_Params is new Traverse_More_Proc (Check_Param);
+ 
        ----------------------------------
        -- Analyze_Exceptional_Contract --
        ----------------------------------
*************** package body Sem_Prag is
*** 2320,2330 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression, but without enforcing any of the two
!          --  acceptable types.
  
           Preanalyze_Assert_Expression (Consequence, Any_Boolean);
  
           --  Emit a clarification message when the consequence contains at
           --  least one undefined reference, possibly due to contract freezing.
  
--- 2391,2402 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression enforcing the expression type
  
           Preanalyze_Assert_Expression (Consequence, Any_Boolean);
  
+          Check_Params (Consequence);
+ 
           --  Emit a clarification message when the consequence contains at
           --  least one undefined reference, possibly due to contract freezing.
  
*************** package body Sem_Prag is
*** 2482,2487 ****
--- 2554,2863 ----
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Exceptional_Cases_In_Decl_Part;
  
+    -------------------------------------
+    -- Analyze_Exit_Cases_In_Decl_Part --
+    -------------------------------------
+ 
+    --  WARNING: This routine manages Ghost regions. Return statements must be
+    --  replaced by gotos which jump to the end of the routine and restore the
+    --  Ghost mode.
+ 
+    procedure Analyze_Exit_Cases_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty)
+    is
+       Subp_Decl : constant Node_Id   := Find_Related_Declaration_Or_Body (N);
+       Spec_Id   : constant Entity_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+       Others_Seen : Boolean := False;
+       --  This flag is set when an "others" choice is encountered. It is used
+       --  to detect multiple illegal occurrences of "others".
+ 
+       procedure Analyze_Exit_Contract (Exit_Contract : Node_Id);
+       --  Verify the legality of a single exit contract
+ 
+       ---------------------------
+       -- Analyze_Exit_Contract --
+       ---------------------------
+ 
+       procedure Analyze_Exit_Contract (Exit_Contract : Node_Id) is
+          Case_Guard  : Node_Id;
+          Exit_Kind   : Node_Id;
+          Errors      : Nat;
+          Extra_Guard : Node_Id;
+ 
+       begin
+          if Nkind (Exit_Contract) = N_Component_Association then
+             Case_Guard := First (Choices (Exit_Contract));
+             Exit_Kind  := Expression (Exit_Contract);
+ 
+             --  Each exit case must have exactly one case guard
+ 
+             Extra_Guard := Next (Case_Guard);
+ 
+             if Present (Extra_Guard) then
+                Error_Msg_N
+                  ("exit case must have exactly one case guard",
+                   Extra_Guard);
+             end if;
+ 
+             --  Check placement of OTHERS if available (SPARK RM 6.1.3(1))
+ 
+             if Nkind (Case_Guard) = N_Others_Choice then
+                if Others_Seen then
+                   Error_Msg_N
+                     ("only one OTHERS choice allowed in exit cases",
+                      Case_Guard);
+                else
+                   Others_Seen := True;
+                end if;
+ 
+             elsif Others_Seen then
+                Error_Msg_N
+                  ("OTHERS must be the last choice in exit cases", N);
+             end if;
+ 
+             --  Preanalyze the case guard
+ 
+             if Nkind (Case_Guard) /= N_Others_Choice then
+                Errors := Serious_Errors_Detected;
+                Preanalyze_Assert_Expression (Case_Guard, Standard_Boolean);
+ 
+                --  Emit a clarification message when the case guard contains
+                --  at least one undefined reference, possibly due to contract
+                --  freezing.
+ 
+                if Errors /= Serious_Errors_Detected
+                  and then Present (Freeze_Id)
+                  and then Has_Undefined_Reference (Case_Guard)
+                then
+                   Contract_Freeze_Error (Spec_Id, Freeze_Id);
+                end if;
+             end if;
+ 
+             --  Check the exit kind. It shall be either an exception or the
+             --  identifiers Normal_Return or Any_Exception.
+ 
+             if Nkind (Exit_Kind) = N_Identifier then
+                if Chars (Exit_Kind) not in Name_Normal_Return
+                                          | Name_Exception_Raised
+                then
+                   Error_Msg_N
+                     ("exit kind should be Normal_Return or Exception_Raised",
+                      Exit_Kind);
+                end if;
+ 
+             elsif Nkind (Exit_Kind) = N_Aggregate
+               and then Present (Component_Associations (Exit_Kind))
+             then
+                declare
+                   Assoc  : constant Node_Id :=
+                     First (Component_Associations (Exit_Kind));
+                   Choice : constant Node_Id := First (Choice_List (Assoc));
+                   Exc    : constant Node_Id :=
+                     (if Box_Present (Assoc) then Assoc
+                      else Expression (Assoc));
+                begin
+                   if Present (Next (Assoc)) then
+                      Error_Msg_N
+                        ("exit kind should have a single association",
+                         Exit_Kind);
+ 
+                   elsif Present (Next (Choice))
+                     or else Nkind (Choice) /= N_Identifier
+                     or else Chars (Choice) /= Name_Exception_Raised
+                   then
+                      Error_Msg_N
+                        ("exit kind should have a single choice named "
+                         & "Exception_Raised",
+                         Exit_Kind);
+ 
+                   elsif Nkind (Exc) /= N_Identifier then
+                      Error_Msg_N
+                        ("exception name expected after Exception_Raised",
+                         Exc);
+ 
+                   else
+                      Analyze (Exc);
+ 
+                      if Is_Entity_Name (Exc)
+                        and then Ekind (Entity (Exc)) = E_Exception
+                      then
+                         if Present (Renamed_Entity (Entity (Exc)))
+                           and then Entity (Exc) = Standard_Numeric_Error
+                         then
+                            Check_Restriction (No_Obsolescent_Features, Exc);
+ 
+                            if Warn_On_Obsolescent_Feature then
+                               Error_Msg_N
+                                 ("Numeric_Error is an obsolescent feature " &
+                                    "(RM J.6(1))?j?",
+                                  Exc);
+                               Error_Msg_N
+                                 ("\use Constraint_Error instead?j?",
+                                  Exc);
+                            end if;
+                         end if;
+ 
+                         --  Check for exception declared within generic formal
+                         --  package (which is illegal, see RM 11.2(8)).
+ 
+                         declare
+                            Ent  : Entity_Id := Entity (Exc);
+                            Scop : Entity_Id;
+ 
+                         begin
+                            if Present (Renamed_Entity (Ent)) then
+                               Ent := Renamed_Entity (Ent);
+                            end if;
+ 
+                            Scop := Scope (Ent);
+                            while Scop /= Standard_Standard
+                              and then Ekind (Scop) = E_Package
+                            loop
+                               if Nkind (Declaration_Node (Scop)) =
+                                 N_Package_Specification
+                                 and then
+                                   Nkind (Original_Node (Parent
+                                          (Declaration_Node (Scop)))) =
+                                 N_Formal_Package_Declaration
+                               then
+                                  Error_Msg_NE
+                                    ("exception& is declared in generic formal "
+                                     & "package", Exc, Ent);
+                                  Error_Msg_N
+                                    ("\and therefore cannot appear in contract "
+                                     & "(RM 11.2(8))", Exc);
+                                  exit;
+ 
+                               --  If the exception is declared in an inner
+                               --  instance, nothing else to check.
+ 
+                               elsif Is_Generic_Instance (Scop) then
+                                  exit;
+                               end if;
+ 
+                               Scop := Scope (Scop);
+                            end loop;
+                         end;
+                      else
+                         Error_Msg_N
+                           ("exception name expected after Exception_Raised",
+                            Exc);
+                      end if;
+                   end if;
+                end;
+ 
+             else
+                Error_Msg_N ("wrong syntax", Exit_Kind);
+             end if;
+ 
+          --  The exit case is malformed
+ 
+          else
+             Error_Msg_N ("wrong syntax in exit case", Exit_Contract);
+          end if;
+       end Analyze_Exit_Contract;
+ 
+       --  Local variables
+ 
+       Exit_Contracts : constant Node_Id :=
+         Expression (Get_Argument (N, Spec_Id));
+ 
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       --  Save the Ghost-related attributes to restore on exit
+ 
+       Exit_Contract : Node_Id;
+       Restore_Scope : Boolean := False;
+ 
+    --  Start of processing for Analyze_Exit_Cases_In_Decl_Part
+ 
+    begin
+       --  Do not analyze the pragma multiple times
+ 
+       if Is_Analyzed_Pragma (N) then
+          return;
+       end if;
+ 
+       --  Set the Ghost mode in effect from the pragma. Due to the delayed
+       --  analysis of the pragma, the Ghost mode at point of declaration and
+       --  point of analysis may not necessarily be the same. Use the mode in
+       --  effect at the point of declaration.
+ 
+       Set_Ghost_Mode (N);
+ 
+       --  Single and multiple contracts must appear in aggregate form. If this
+       --  is not the case, then either the parser of the analysis of the pragma
+       --  failed to produce an aggregate, e.g. when the contract is "null" or a
+       --  "(null record)".
+ 
+       pragma Assert
+         (if Nkind (Exit_Contracts) = N_Aggregate
+          then Null_Record_Present (Exit_Contracts)
+            xor (Present (Component_Associations (Exit_Contracts))
+                   or
+                 Present (Expressions (Exit_Contracts)))
+          else Nkind (Exit_Contracts) = N_Null);
+ 
+       --  Only clauses of the following form are allowed:
+       --
+       --    exit_contract ::=
+       --        case_condition => exit_kind
+       --
+       --  where
+       --
+       --    case_condition ::= Boolean_expression
+ 
+       if Nkind (Exit_Contracts) = N_Aggregate
+         and then Present (Component_Associations (Exit_Contracts))
+         and then No (Expressions (Exit_Contracts))
+       then
+ 
+          --  Check that the expression is a proper aggregate (no parentheses)
+ 
+          if Paren_Count (Exit_Contracts) /= 0 then
+             Error_Msg_F -- CODEFIX
+               ("redundant parentheses", Exit_Contracts);
+          end if;
+ 
+          --  Ensure that the formal parameters are visible when analyzing all
+          --  clauses. This falls out of the general rule of aspects pertaining
+          --  to subprogram declarations.
+ 
+          if not In_Open_Scopes (Spec_Id) then
+             Restore_Scope := True;
+             Push_Scope (Spec_Id);
+ 
+             if Is_Generic_Subprogram (Spec_Id) then
+                Install_Generic_Formals (Spec_Id);
+             else
+                Install_Formals (Spec_Id);
+             end if;
+          end if;
+ 
+          Exit_Contract :=
+            First (Component_Associations (Exit_Contracts));
+          while Present (Exit_Contract) loop
+             Analyze_Exit_Contract (Exit_Contract);
+             Next (Exit_Contract);
+          end loop;
+ 
+          if Restore_Scope then
+             End_Scope;
+          end if;
+ 
+       --  Otherwise the pragma is illegal
+ 
+       else
+          Error_Msg_N ("wrong syntax for exceptional cases", N);
+       end if;
+ 
+       Set_Is_Analyzed_Pragma (N);
+ 
+       Restore_Ghost_Region (Saved_GM, Saved_IGR);
+    end Analyze_Exit_Cases_In_Decl_Part;
+ 
     --------------------------------------------
     -- Analyze_External_Property_In_Decl_Part --
     --------------------------------------------
*************** package body Sem_Prag is
*** 2855,2861 ****
                                                    | E_Procedure
                                                    | E_Generic_Procedure
                                                    | E_Task_Type
!                                  or else Is_Single_Task_Object (Spec_Id))
                       then
                          null;
                       else
--- 3231,3239 ----
                                                    | E_Procedure
                                                    | E_Generic_Procedure
                                                    | E_Task_Type
!                                  or else Is_Single_Task_Object (Spec_Id)
!                                  or else
!                                    Is_Function_With_Side_Effects (Spec_Id))
                       then
                          null;
                       else
*************** package body Sem_Prag is
*** 2964,2979 ****
             (Item    : Node_Id;
              Item_Id : Entity_Id)
           is
!             Context : Entity_Id;
!             Dummy   : Boolean;
!             Inputs  : Elist_Id := No_Elist;
!             Outputs : Elist_Id := No_Elist;
  
           begin
              --  Traverse the scope stack looking for enclosing subprograms or
              --  tasks subject to pragma [Refined_]Global.
  
              Context := Scope (Subp_Id);
              while Present (Context) and then Context /= Standard_Standard loop
  
                 --  For a single task type, retrieve the corresponding object to
--- 3342,3359 ----
             (Item    : Node_Id;
              Item_Id : Entity_Id)
           is
!             Context   : Entity_Id;
!             Dummy     : Boolean;
!             Item_View : Entity_Id;
!             Inputs    : Elist_Id := No_Elist;
!             Outputs   : Elist_Id := No_Elist;
  
           begin
              --  Traverse the scope stack looking for enclosing subprograms or
              --  tasks subject to pragma [Refined_]Global.
  
              Context := Scope (Subp_Id);
+             Check_Context :
              while Present (Context) and then Context /= Standard_Standard loop
  
                 --  For a single task type, retrieve the corresponding object to
*************** package body Sem_Prag is
*** 2995,3029 ****
                       Subp_Outputs => Outputs,
                       Global_Seen  => Dummy);
  
!                   --  The item is classified as In_Out or Output but appears as
!                   --  an Input or a formal parameter of mode IN in an enclosing
!                   --  subprogram or task unit (SPARK RM 6.1.4(13)).
  
!                   if Appears_In (Inputs, Item_Id)
!                     and then not Appears_In (Outputs, Item_Id)
!                   then
!                      SPARK_Msg_NE
!                        ("global item & cannot have mode In_Out or Output",
!                         Item, Item_Id);
  
!                      if Is_Subprogram_Or_Entry (Context) then
!                         SPARK_Msg_NE
!                           (Fix_Msg (Subp_Id, "\item already appears as input "
!                            & "of subprogram &"), Item, Context);
!                      else
!                         SPARK_Msg_NE
!                           (Fix_Msg (Subp_Id, "\item already appears as input "
!                            & "of task &"), Item, Context);
                       end if;
  
!                      --  Stop the traversal once an error has been detected
  
-                      exit;
-                   end if;
                 end if;
  
                 Context := Scope (Context);
!             end loop;
           end Check_Mode_Restriction_In_Enclosing_Context;
  
           ----------------------------------------
--- 3375,3438 ----
                       Subp_Outputs => Outputs,
                       Global_Seen  => Dummy);
  
!                   --  If the item is a constituent, we must check not just the
!                   --  item itself, but also its encapsulating abstract states.
  
!                   Item_View := Item_Id;
  
!                   Check_View : loop
!                      --  The item is classified as In_Out or Output but appears
!                      --  as an Input or a formal parameter of mode IN in
!                      --  an enclosing subprogram or task unit (SPARK RM
!                      --  6.1.4(13)).
! 
!                      if Appears_In (Inputs, Item_View)
!                        and then not Appears_In (Outputs, Item_View)
!                      then
!                         if Item_View = Item_Id then
!                            SPARK_Msg_NE
!                              ("global item & " &
!                               "cannot have mode In_Out or Output",
!                               Item, Item_Id);
!                         else
!                            Error_Msg_Node_2 := Item_View;
!                            SPARK_Msg_NE
!                              ("global constituent & of & " &
!                               "cannot have mode In_Out or Output",
!                               Item, Item_Id);
!                         end if;
! 
!                         if Is_Subprogram_Or_Entry (Context) then
!                            SPARK_Msg_NE
!                              (Fix_Msg (Subp_Id, "\item already appears "
!                               & "as input of subprogram &"), Item, Context);
!                         else
!                            SPARK_Msg_NE
!                              (Fix_Msg (Subp_Id, "\item already appears "
!                               & "as input of task &"), Item, Context);
!                         end if;
! 
!                         --  Stop the traversal once an error has been detected
! 
!                         exit Check_Context;
                       end if;
  
!                      if Ekind (Item_View) in E_Abstract_State
!                                            | E_Constant
!                                            | E_Variable
!                      then
!                         Item_View := Encapsulating_State (Item_View);
! 
!                         exit Check_View when No (Item_View);
!                      else
!                         exit Check_View;
!                      end if;
!                   end loop Check_View;
  
                 end if;
  
                 Context := Scope (Context);
!             end loop Check_Context;
           end Check_Mode_Restriction_In_Enclosing_Context;
  
           ----------------------------------------
*************** package body Sem_Prag is
*** 3293,3299 ****
        --  final place yet. A direct analysis may generate side effects and this
        --  is not desired at this point.
  
!       Preanalyze_Assert_Expression (Expr, Standard_Boolean);
        Set_Is_Analyzed_Pragma (N);
  
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
--- 3702,3708 ----
        --  final place yet. A direct analysis may generate side effects and this
        --  is not desired at this point.
  
!       Preanalyze_And_Resolve (Expr, Standard_Boolean);
        Set_Is_Analyzed_Pragma (N);
  
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
*************** package body Sem_Prag is
*** 5176,5182 ****
  
              if Present (Arg2) then
                 Check_Optional_Identifier (Arg2, Name_Message);
!                Preanalyze_Spec_Expression
                   (Get_Pragma_Arg (Arg2), Standard_String);
              end if;
           end if;
--- 5585,5591 ----
  
              if Present (Arg2) then
                 Check_Optional_Identifier (Arg2, Name_Message);
!                Preanalyze_Assert_Expression
                   (Get_Pragma_Arg (Arg2), Standard_String);
              end if;
           end if;
*************** package body Sem_Prag is
*** 5185,5191 ****
           --  status in SCO.
           --  ??? nothing checks that the pragma is in the main source unit
  
!          if Is_Checked (N) and then not Split_PPC (N) then
              Set_SCO_Pragma_Enabled (Loc);
           end if;
  
--- 5594,5600 ----
           --  status in SCO.
           --  ??? nothing checks that the pragma is in the main source unit
  
!          if Is_Checked (N) then
              Set_SCO_Pragma_Enabled (Loc);
           end if;
  
*************** package body Sem_Prag is
*** 5195,5211 ****
             Find_Related_Declaration_Or_Body
               (N, Do_Checks => not Duplicates_OK);
  
!          --  When a pre/postcondition pragma applies to an abstract subprogram,
!          --  its original form must be an aspect with 'Class.
  
           if Nkind (Subp_Decl) = N_Abstract_Subprogram_Declaration then
!             if not From_Aspect_Specification (N) then
!                Error_Pragma
!                  ("pragma % cannot be applied to abstract subprogram");
! 
!             elsif not Class_Present (N) then
!                Error_Pragma
!                  ("aspect % requires ''Class for abstract subprogram");
              end if;
  
           --  Entry declaration
--- 5604,5620 ----
             Find_Related_Declaration_Or_Body
               (N, Do_Checks => not Duplicates_OK);
  
!          --  Abstract subprogram
  
           if Nkind (Subp_Decl) = N_Abstract_Subprogram_Declaration then
!             if not Class_Present (N) then
!                if From_Aspect_Specification (N) then
!                   Error_Pragma
!                     ("aspect % requires ''Class for abstract subprogram");
!                else
!                   Error_Pragma
!                     ("pragma % cannot be applied to abstract subprogram");
!                end if;
              end if;
  
           --  Entry declaration
*************** package body Sem_Prag is
*** 5313,5322 ****
           --  Chain the pragma on the contract for further processing by
           --  Analyze_Pre_Post_Condition_In_Decl_Part.
  
!          if Ekind (Subp_Id) in Access_Subprogram_Kind then
!             Add_Contract_Item (N, Directly_Designated_Type (Subp_Id));
!          else
!             Add_Contract_Item (N, Subp_Id);
           end if;
  
           --  Fully analyze the pragma when it appears inside an entry or
--- 5722,5735 ----
           --  Chain the pragma on the contract for further processing by
           --  Analyze_Pre_Post_Condition_In_Decl_Part.
  
!          if Chars (Prag_Iden) not in Name_Post_Class
!                                    | Name_Pre_Class
!          then
!             if Ekind (Subp_Id) in Access_Subprogram_Kind then
!                Add_Contract_Item (N, Directly_Designated_Type (Subp_Id));
!             else
!                Add_Contract_Item (N, Subp_Id);
!             end if;
           end if;
  
           --  Fully analyze the pragma when it appears inside an entry or
*************** package body Sem_Prag is
*** 5334,5339 ****
--- 5747,5784 ----
              Analyze_If_Present (Pragma_Volatile_Function);
              Analyze_Pre_Post_Condition_In_Decl_Part (N);
           end if;
+ 
+          --  Complete the decoration of Subp_Id saving in the tree copy of
+          --  class-wide pre/postcondition expression (for aspects this is
+          --  done when the aspect is analyzed). This is required to merge
+          --  the expression with inherited conditions.
+ 
+          if Comes_From_Source (N)
+            and then Class_Present (N)
+            and then Is_Subprogram (Subp_Id)
+          then
+             declare
+                Expr : constant Node_Id := Expression (Get_Argument (N));
+ 
+             begin
+                if Pname = Name_Pre_Class then
+                   if Is_Ignored (N) then
+                      Set_Ignored_Class_Preconditions (Subp_Id,
+                        New_Copy_Tree (Expr));
+                   else
+                      Set_Class_Preconditions (Subp_Id, New_Copy_Tree (Expr));
+                   end if;
+ 
+                else
+                   if Is_Ignored (N) then
+                      Set_Ignored_Class_Postconditions (Subp_Id,
+                        New_Copy_Tree (Expr));
+                   else
+                      Set_Class_Postconditions (Subp_Id, New_Copy_Tree (Expr));
+                   end if;
+                end if;
+             end;
+          end if;
        end Analyze_Pre_Post_Condition;
  
        -----------------------------------------
*************** package body Sem_Prag is
*** 5582,5589 ****
                    then
                       Set_Has_Pragma_Unreferenced
                         (Cunit_Entity
!                          (Get_Source_Unit
!                            (Library_Unit (Citem))));
                       Set_Elab_Unit_Name (Arg_Expr, Name (Citem));
                       exit;
                    end if;
--- 6027,6033 ----
                    then
                       Set_Has_Pragma_Unreferenced
                         (Cunit_Entity
!                          (Get_Source_Unit (Withed_Lib_Unit (Citem))));
                       Set_Elab_Unit_Name (Arg_Expr, Name (Citem));
                       exit;
                    end if;
*************** package body Sem_Prag is
*** 6327,6371 ****
        ----------------------------------------
  
        procedure Check_Expr_Is_OK_Static_Expression
!         (Expr : Node_Id;
!          Typ  : Entity_Id := Empty)
!       is
        begin
!          if Present (Typ) then
!             Analyze_And_Resolve (Expr, Typ);
!          else
!             Analyze_And_Resolve (Expr);
!          end if;
! 
!          --  An expression cannot be considered static if its resolution failed
!          --  or if it's erroneous. Stop the analysis of the related pragma.
! 
!          if Etype (Expr) = Any_Type or else Error_Posted (Expr) then
!             raise Pragma_Exit;
! 
!          elsif Is_OK_Static_Expression (Expr) then
!             return;
! 
!          --  An interesting special case, if we have a string literal and we
!          --  are in Ada 83 mode, then we allow it even though it will not be
!          --  flagged as static. This allows the use of Ada 95 pragmas like
!          --  Import in Ada 83 mode. They will of course be flagged with
!          --  warnings as usual, but will not cause errors.
! 
!          elsif Ada_Version = Ada_83
!            and then Nkind (Expr) = N_String_Literal
!          then
!             return;
  
!          --  Finally, we have a real error
  
!          else
!             Error_Msg_Name_1 := Pname;
!             Flag_Non_Static_Expr
!               (Fix_Error ("argument for pragma% must be a static expression!"),
!                Expr);
!             raise Pragma_Exit;
!          end if;
        end Check_Expr_Is_OK_Static_Expression;
  
        -------------------------
--- 6771,6793 ----
        ----------------------------------------
  
        procedure Check_Expr_Is_OK_Static_Expression
!         (Expr : Node_Id; Typ : Entity_Id := Empty) is
        begin
!          case Is_OK_Static_Expression_Of_Type (Expr, Typ) is
!             when Static =>
!                null;
  
!             when Not_Static =>
!                Error_Msg_Name_1 := Pname;
!                Flag_Non_Static_Expr
!                  (Fix_Error
!                     ("argument for pragma% must be a static expression!"),
!                   Expr);
!                raise Pragma_Exit;
  
!             when Invalid =>
!                raise Pragma_Exit;
!          end case;
        end Check_Expr_Is_OK_Static_Expression;
  
        -------------------------
*************** package body Sem_Prag is
*** 8115,8120 ****
--- 8537,8547 ----
           Check_Arg_Is_OK_Static_Expression (Arg2, Standard_String);
           Analyze_And_Resolve (Arg1x, Standard_Boolean);
  
+          if CodePeer_Mode then
+             Rewrite (N, Make_Null_Statement (Loc));
+             return;
+          end if;
+ 
           --  In GNATprove mode, pragma Compile_Time_Error is translated as
           --  a Check pragma in GNATprove mode, handled as an assumption in
           --  GNATprove. This is correct as the compiler will issue an error
*************** package body Sem_Prag is
*** 8234,8254 ****
              Decl : Node_Id;
              Err  : Boolean;
  
!             function Same_Convention (Decl : Node_Id) return Boolean;
              --  Decl is a pragma node. This function returns True if this
              --  pragma has a first argument that is an identifier with a
              --  Chars field corresponding to the Convention_Id C.
  
!             function Same_Name (Decl : Node_Id) return Boolean;
              --  Decl is a pragma node. This function returns True if this
              --  pragma has a second argument that is an identifier with a
              --  Chars field that matches the Chars of the current subprogram.
  
!             ---------------------
!             -- Same_Convention --
!             ---------------------
  
!             function Same_Convention (Decl : Node_Id) return Boolean is
                 Arg1 : constant Node_Id :=
                          First (Pragma_Argument_Associations (Decl));
  
--- 8661,8681 ----
              Decl : Node_Id;
              Err  : Boolean;
  
!             function Matching_Convention (Decl : Node_Id) return Boolean;
              --  Decl is a pragma node. This function returns True if this
              --  pragma has a first argument that is an identifier with a
              --  Chars field corresponding to the Convention_Id C.
  
!             function Matching_Name (Decl : Node_Id) return Boolean;
              --  Decl is a pragma node. This function returns True if this
              --  pragma has a second argument that is an identifier with a
              --  Chars field that matches the Chars of the current subprogram.
  
!             -------------------------
!             -- Matching_Convention --
!             -------------------------
  
!             function Matching_Convention (Decl : Node_Id) return Boolean is
                 Arg1 : constant Node_Id :=
                          First (Pragma_Argument_Associations (Decl));
  
*************** package body Sem_Prag is
*** 8267,8279 ****
                 end if;
  
                 return False;
!             end Same_Convention;
  
!             ---------------
!             -- Same_Name --
!             ---------------
  
!             function Same_Name (Decl : Node_Id) return Boolean is
                 Arg1 : constant Node_Id :=
                          First (Pragma_Argument_Associations (Decl));
                 Arg2 : Node_Id;
--- 8694,8706 ----
                 end if;
  
                 return False;
!             end Matching_Convention;
  
!             -------------------
!             -- Matching_Name --
!             -------------------
  
!             function Matching_Name (Decl : Node_Id) return Boolean is
                 Arg1 : constant Node_Id :=
                          First (Pragma_Argument_Associations (Decl));
                 Arg2 : Node_Id;
*************** package body Sem_Prag is
*** 8300,8306 ****
                 end;
  
                 return False;
!             end Same_Name;
  
           --  Start of processing for Diagnose_Multiple_Pragmas
  
--- 8727,8733 ----
                 end;
  
                 return False;
!             end Matching_Name;
  
           --  Start of processing for Diagnose_Multiple_Pragmas
  
*************** package body Sem_Prag is
*** 8326,8332 ****
                    --  Look for pragma with same name as us
  
                    if Nkind (Decl) = N_Pragma
!                     and then Same_Name (Decl)
                    then
                       --  Give error if same as our pragma or Export/Convention
  
--- 8753,8759 ----
                    --  Look for pragma with same name as us
  
                    if Nkind (Decl) = N_Pragma
!                     and then Matching_Name (Decl)
                    then
                       --  Give error if same as our pragma or Export/Convention
  
*************** package body Sem_Prag is
*** 8347,8353 ****
                          --  they specify the same convention. If so, all OK,
                          --  and set special flags to stop other messages
  
!                         if Same_Convention (Decl) then
                             Set_Import_Interface_Present (N);
                             Set_Import_Interface_Present (Decl);
                             Err := False;
--- 8774,8780 ----
                          --  they specify the same convention. If so, all OK,
                          --  and set special flags to stop other messages
  
!                         if Matching_Convention (Decl) then
                             Set_Import_Interface_Present (N);
                             Set_Import_Interface_Present (Decl);
                             Err := False;
*************** package body Sem_Prag is
*** 8496,8501 ****
--- 8923,8937 ----
                 end if;
              end if;
  
+             --  If the convention of a record type is changed (such as to C),
+             --  this must override C_Pass_By_Copy if that flag was inherited
+             --  from a parent type where the latter convention was specified,
+             --  so we force the flag to False.
+ 
+             if Cname /= Name_C_Pass_By_Copy and then Is_Record_Type (E) then
+                Set_C_Pass_By_Copy (Base_Type (E), False);
+             end if;
+ 
              --  If the entity is a derived boolean type, check for the special
              --  case of convention C, C++, or Fortran, where we consider any
              --  nonzero value to represent true.
*************** package body Sem_Prag is
*** 8741,8759 ****
                    Minimum : constant Nat :=
                      Convention_Id'Pos (C) -
                        Convention_Id'Pos (Convention_C_Variadic_0);
- 
-                   Count  : Nat;
-                   Formal : Entity_Id;
- 
                 begin
!                   Count := 0;
!                   Formal := First_Formal (Subp);
!                   while Present (Formal) loop
!                      Count := Count + 1;
!                      Next_Formal (Formal);
!                   end loop;
! 
!                   if Count < Minimum then
                       Error_Msg_Uint_1 := UI_From_Int (Minimum);
                       Error_Pragma_Arg
                         ("argument of pragma% must have at least"
--- 9177,9184 ----
                    Minimum : constant Nat :=
                      Convention_Id'Pos (C) -
                        Convention_Id'Pos (Convention_C_Variadic_0);
                 begin
!                   if Number_Formals (Subp) < Minimum then
                       Error_Msg_Uint_1 := UI_From_Int (Minimum);
                       Error_Pragma_Arg
                         ("argument of pragma% must have at least"
*************** package body Sem_Prag is
*** 8938,8945 ****
           Check_No_Identifiers;
           Check_At_Most_N_Arguments (1);
  
!          --  Modeled internally as
!          --    pragma Suppress/Unsuppress (Atomic_Synchronization [,Entity])
  
           Rewrite (N,
             Make_Pragma (Loc,
--- 9363,9370 ----
           Check_No_Identifiers;
           Check_At_Most_N_Arguments (1);
  
!          --  Implemented internally as
!          --    pragma Suppress/Unsuppress (_Atomic_Synchronization [,Entity])
  
           Rewrite (N,
             Make_Pragma (Loc,
*************** package body Sem_Prag is
*** 8947,8953 ****
               Pragma_Argument_Associations => New_List (
                 Make_Pragma_Argument_Association (Loc,
                   Expression =>
!                    Make_Identifier (Loc, Name_Atomic_Synchronization)))));
  
           if Present (Arg1) then
              Append_To (Pragma_Argument_Associations (N), New_Copy (Arg1));
--- 9372,9378 ----
               Pragma_Argument_Associations => New_List (
                 Make_Pragma_Argument_Association (Loc,
                   Expression =>
!                    Make_Identifier (Loc, Name_uAtomic_Synchronization)))));
  
           if Present (Arg1) then
              Append_To (Pragma_Argument_Associations (N), New_Copy (Arg1));
*************** package body Sem_Prag is
*** 9087,9101 ****
              --  initialization generated by the code generator, e.g. for an
              --  access type, does not count here.
  
!             elsif Present (Expression (Parent (Def_Id)))
!                and then
!                  Comes_From_Source
!                    (Original_Node (Expression (Parent (Def_Id))))
              then
                 Error_Msg_Sloc := Sloc (Def_Id);
                 Error_Pragma_Arg
!                  ("imported entities cannot be initialized (RM B.1(24))",
!                   "\no initialization allowed for & declared#", Arg1);
              else
                 Set_Imported (Def_Id);
                 Note_Possible_Modification (Arg_Internal, Sure => False);
--- 9512,9528 ----
              --  initialization generated by the code generator, e.g. for an
              --  access type, does not count here.
  
!             elsif (Present (Expression (Parent (Def_Id)))
!                     and then
!                       Comes_From_Source
!                         (Original_Node (Expression (Parent (Def_Id)))))
!               or else Has_Init_Expression (Parent (Def_Id))
              then
                 Error_Msg_Sloc := Sloc (Def_Id);
                 Error_Pragma_Arg
!                  ("no initialization allowed for declaration of& #",
!                   "\imported entities cannot be initialized (RM B.1(24))",
!                   Arg1);
              else
                 Set_Imported (Def_Id);
                 Note_Possible_Modification (Arg_Internal, Sure => False);
*************** package body Sem_Prag is
*** 9123,9130 ****
           Match     : Boolean;
  
           function Same_Base_Type
!           (Ptype  : Node_Id;
!            Formal : Entity_Id) return Boolean;
           --  Determines if Ptype references the type of Formal. Note that only
           --  the base types need to match according to the spec. Ptype here is
           --  the argument from the pragma, which is either a type name, or an
--- 9550,9557 ----
           Match     : Boolean;
  
           function Same_Base_Type
!            (Ptype  : Node_Id;
!             Formal : Entity_Id) return Boolean;
           --  Determines if Ptype references the type of Formal. Note that only
           --  the base types need to match according to the spec. Ptype here is
           --  the argument from the pragma, which is either a type name, or an
*************** package body Sem_Prag is
*** 9658,9666 ****
              --  only counts if it comes from source, otherwise it is simply
              --  the code generator making an implicit initialization explicit.
  
!             elsif Present (Expression (Parent (Def_Id)))
!               and then Comes_From_Source
!                          (Original_Node (Expression (Parent (Def_Id))))
              then
                 --  Set imported flag to prevent cascaded errors
  
--- 10085,10094 ----
              --  only counts if it comes from source, otherwise it is simply
              --  the code generator making an implicit initialization explicit.
  
!             elsif (Present (Expression (Parent (Def_Id)))
!                     and then Comes_From_Source
!                                (Original_Node (Expression (Parent (Def_Id)))))
!                or else Has_Init_Expression (Parent (Def_Id))
              then
                 --  Set imported flag to prevent cascaded errors
  
*************** package body Sem_Prag is
*** 11334,11356 ****
                 --  not a real check.
  
                 for J in Scope_Suppress.Suppress'Range loop
!                   if J /= Elaboration_Check
!                        and then
!                      J /= Atomic_Synchronization
!                   then
                       Scope_Suppress.Suppress (J) := Suppress_Case;
                    end if;
                 end loop;
  
              --  If not All_Checks, and predefined check, then set appropriate
              --  scope entry. Note that we will set Elaboration_Check if this
!             --  is explicitly specified. Atomic_Synchronization is allowed
!             --  only if internally generated and entity is atomic.
  
!             elsif C in Predefined_Check_Id
!               and then (not Comes_From_Source (N)
!                          or else C /= Atomic_Synchronization)
!             then
                 Scope_Suppress.Suppress (C) := Suppress_Case;
              end if;
  
--- 11762,11777 ----
                 --  not a real check.
  
                 for J in Scope_Suppress.Suppress'Range loop
!                   if J not in Elaboration_Check | Atomic_Synchronization then
                       Scope_Suppress.Suppress (J) := Suppress_Case;
                    end if;
                 end loop;
  
              --  If not All_Checks, and predefined check, then set appropriate
              --  scope entry. Note that we will set Elaboration_Check if this
!             --  is explicitly specified.
  
!             elsif C in Predefined_Check_Id then
                 Scope_Suppress.Suppress (C) := Suppress_Case;
              end if;
  
*************** package body Sem_Prag is
*** 12019,12024 ****
--- 12440,12457 ----
           Set_Is_Ignored (N, Is_Ignored (Original_Node (N)));
           Set_Is_Checked (N, Is_Checked (Original_Node (N)));
  
+       --  Skip querying the applicable policy at this point for dynamic
+       --  predicate checks since they rely on the policy applicable in
+       --  the context of their associated type declaration (and this
+       --  pragma check has been internally added by the frontend at the
+       --  point where the runtime check must be performed).
+ 
+       elsif not Comes_From_Source (N)
+         and then Chars (Pragma_Identifier (N)) = Name_Check
+         and then Pname = Name_Dynamic_Predicate
+       then
+          null;
+ 
        --  Otherwise query the applicable policy at this point
  
        else
*************** package body Sem_Prag is
*** 12181,12196 ****
              is
                 --  Flags used to verify the consistency of options
  
!                AR_Seen                     : Boolean := False;
!                AW_Seen                     : Boolean := False;
!                ER_Seen                     : Boolean := False;
!                EW_Seen                     : Boolean := False;
!                External_Seen               : Boolean := False;
!                Ghost_Seen                  : Boolean := False;
!                Others_Seen                 : Boolean := False;
!                Part_Of_Seen                : Boolean := False;
!                Relaxed_Initialization_Seen : Boolean := False;
!                Synchronous_Seen            : Boolean := False;
  
                 --  Flags used to store the static value of all external states'
                 --  expressions.
--- 12614,12628 ----
              is
                 --  Flags used to verify the consistency of options
  
!                AR_Seen          : Boolean := False;
!                AW_Seen          : Boolean := False;
!                ER_Seen          : Boolean := False;
!                EW_Seen          : Boolean := False;
!                External_Seen    : Boolean := False;
!                Ghost_Seen       : Boolean := False;
!                Others_Seen      : Boolean := False;
!                Part_Of_Seen     : Boolean := False;
!                Synchronous_Seen : Boolean := False;
  
                 --  Flags used to store the static value of all external states'
                 --  expressions.
*************** package body Sem_Prag is
*** 12505,12511 ****
                 procedure Check_Ghost_Synchronous is
                 begin
                    --  A synchronized abstract state cannot be Ghost and vice
!                   --  versa (SPARK RM 6.9(19)).
  
                    if Ghost_Seen and Synchronous_Seen then
                       SPARK_Msg_N ("synchronized state cannot be ghost", State);
--- 12937,12943 ----
                 procedure Check_Ghost_Synchronous is
                 begin
                    --  A synchronized abstract state cannot be Ghost and vice
!                   --  versa (SPARK RM 6.9(21)).
  
                    if Ghost_Seen and Synchronous_Seen then
                       SPARK_Msg_N ("synchronized state cannot be ghost", State);
*************** package body Sem_Prag is
*** 12672,12683 ****
                             Check_Duplicate_Option (Opt, Synchronous_Seen);
                             Check_Ghost_Synchronous;
  
-                         --  Relaxed_Initialization
- 
-                         elsif Chars (Opt) = Name_Relaxed_Initialization then
-                            Check_Duplicate_Option
-                              (Opt, Relaxed_Initialization_Seen);
- 
                          --  Option Part_Of without an encapsulating state is
                          --  illegal (SPARK RM 7.1.4(8)).
  
--- 13104,13109 ----
*************** package body Sem_Prag is
*** 13354,13360 ****
                 if Ekind (Spec_Id) = E_Function then
                    Error_Msg_N (Fix_Error
                      ("pragma % cannot apply to function '[[]']"), N);
!                      return;
  
                 elsif Ekind (Spec_Id) = E_Generic_Function then
                    Error_Msg_N (Fix_Error
--- 13780,13786 ----
                 if Ekind (Spec_Id) = E_Function then
                    Error_Msg_N (Fix_Error
                      ("pragma % cannot apply to function '[[]']"), N);
!                   return;
  
                 elsif Ekind (Spec_Id) = E_Generic_Function then
                    Error_Msg_N (Fix_Error
*************** package body Sem_Prag is
*** 13442,13457 ****
  
                    when N_Op_Concat =>
                       declare
!                         L_Type : constant Entity_Id
!                           := Preferred_String_Type (Left_Opnd (Expr));
!                         R_Type : constant Entity_Id
!                           := Preferred_String_Type (Right_Opnd (Expr));
  
!                         Type_Table : constant array (1 .. 4) of Entity_Id
!                           := (Empty,
!                               Standard_Wide_Wide_String,
!                               Standard_Wide_String,
!                               Standard_String);
                       begin
                          for Idx in Type_Table'Range loop
                             if L_Type = Type_Table (Idx) or
--- 13868,13883 ----
  
                    when N_Op_Concat =>
                       declare
!                         L_Type : constant Entity_Id :=
!                           Preferred_String_Type (Left_Opnd (Expr));
!                         R_Type : constant Entity_Id :=
!                           Preferred_String_Type (Right_Opnd (Expr));
  
!                         Type_Table : constant array (1 .. 4) of Entity_Id :=
!                           (Empty,
!                            Standard_Wide_Wide_String,
!                            Standard_Wide_String,
!                            Standard_String);
                       begin
                          for Idx in Type_Table'Range loop
                             if L_Type = Type_Table (Idx) or
*************** package body Sem_Prag is
*** 13576,13583 ****
              -------------------------
  
              function Contains_Loop_Entry (Expr : Node_Id) return Boolean is
-                Has_Loop_Entry : Boolean := False;
- 
                 function Process (N : Node_Id) return Traverse_Result;
                 --  Process function for traversal to look for Loop_Entry
  
--- 14002,14007 ----
*************** package body Sem_Prag is
*** 13587,13609 ****
  
                 function Process (N : Node_Id) return Traverse_Result is
                 begin
!                   if Nkind (N) = N_Attribute_Reference
!                     and then Attribute_Name (N) = Name_Loop_Entry
!                   then
!                      Has_Loop_Entry := True;
                       return Abandon;
                    else
                       return OK;
                    end if;
                 end Process;
  
!                procedure Traverse is new Traverse_Proc (Process);
  
              --  Start of processing for Contains_Loop_Entry
  
              begin
!                Traverse (Expr);
!                return Has_Loop_Entry;
              end Contains_Loop_Entry;
  
              --  Local variables
--- 14011,14029 ----
  
                 function Process (N : Node_Id) return Traverse_Result is
                 begin
!                   if Is_Attribute_Loop_Entry (N) then
                       return Abandon;
                    else
                       return OK;
                    end if;
                 end Process;
  
!                function Traverse is new Traverse_Func (Process);
  
              --  Start of processing for Contains_Loop_Entry
  
              begin
!                return Traverse (Expr) = Abandon;
              end Contains_Loop_Entry;
  
              --  Local variables
*************** package body Sem_Prag is
*** 13883,13889 ****
  
                       --  Pragma Assertion_Policy specifying a Ghost policy
                       --  cannot occur within a Ghost subprogram or package
!                      --  (SPARK RM 6.9(14)).
  
                       if Ghost_Mode > None then
                          Error_Pragma
--- 14303,14309 ----
  
                       --  Pragma Assertion_Policy specifying a Ghost policy
                       --  cannot occur within a Ghost subprogram or package
!                      --  (SPARK RM 6.9(16)).
  
                       if Ghost_Mode > None then
                          Error_Pragma
*************** package body Sem_Prag is
*** 13993,14003 ****
           --                          No_Caching                          --
           ------------------------------------------------------------------
  
!          --  pragma Async_Readers    [ (boolean_EXPRESSION) ];
!          --  pragma Async_Writers    [ (boolean_EXPRESSION) ];
!          --  pragma Effective_Reads  [ (boolean_EXPRESSION) ];
!          --  pragma Effective_Writes [ (boolean_EXPRESSION) ];
!          --  pragma No_Caching       [ (boolean_EXPRESSION) ];
  
           when Pragma_Async_Readers
              | Pragma_Async_Writers
--- 14413,14423 ----
           --                          No_Caching                          --
           ------------------------------------------------------------------
  
!          --  pragma Async_Readers    [ (static_boolean_EXPRESSION) ];
!          --  pragma Async_Writers    [ (static_boolean_EXPRESSION) ];
!          --  pragma Effective_Reads  [ (static_boolean_EXPRESSION) ];
!          --  pragma Effective_Writes [ (static_boolean_EXPRESSION) ];
!          --  pragma No_Caching       [ (static_boolean_EXPRESSION) ];
  
           when Pragma_Async_Readers
              | Pragma_Async_Writers
*************** package body Sem_Prag is
*** 14371,14377 ****
              GNAT_Pragma;
              Check_Valid_Configuration_Pragma;
              Check_Arg_Count (1);
!             Check_Optional_Identifier (Arg1, "max_size");
  
              Arg := Get_Pragma_Arg (Arg1);
              Check_Arg_Is_OK_Static_Expression (Arg, Any_Integer);
--- 14791,14797 ----
              GNAT_Pragma;
              Check_Valid_Configuration_Pragma;
              Check_Arg_Count (1);
!             Check_Optional_Identifier (Arg1, Name_Max_Size);
  
              Arg := Get_Pragma_Arg (Arg1);
              Check_Arg_Is_OK_Static_Expression (Arg, Any_Integer);
*************** package body Sem_Prag is
*** 14416,14421 ****
--- 14836,14897 ----
           --  restore the Ghost mode.
  
           when Pragma_Check => Check : declare
+ 
+             procedure Handle_Dynamic_Predicate_Check;
+             --  Enable or ignore the pragma depending on whether dynamic
+             --  checks are enabled in the context where the associated
+             --  type declaration is defined.
+ 
+             ------------------------------------
+             -- Handle_Dynamic_Predicate_Check --
+             ------------------------------------
+ 
+             procedure Handle_Dynamic_Predicate_Check is
+                Func_Call : constant Node_Id   := Expression (Arg2);
+                Func_Id   : constant Entity_Id := Entity (Name (Func_Call));
+                Typ       : Entity_Id;
+ 
+             begin
+                --  Locate the type declaration associated with this runtime
+                --  check. The 2nd parameter of this pragma is a call to an
+                --  internally built function that has a single parameter;
+                --  the type of that formal parameter is the type we are
+                --  searching for.
+ 
+                pragma Assert (Is_Predicate_Function (Func_Id));
+                Typ := Etype (First_Entity (Func_Id));
+ 
+                if not Has_Dynamic_Predicate_Aspect (Typ)
+                  and then Is_Private_Type (Typ)
+                  and then Present (Full_View (Typ))
+                then
+                   Typ := Full_View (Typ);
+                end if;
+ 
+                pragma Assert (Has_Dynamic_Predicate_Aspect (Typ));
+ 
+                if not Predicates_Ignored (Typ) then
+                   Set_Is_Checked (N, True);
+                   Set_Is_Ignored (N, False);
+ 
+                else
+                   --  In CodePeer mode and GNATprove mode, we need to
+                   --  consider all assertions, unless they are disabled,
+                   --  because transformations of the AST may depend on
+                   --  assertions being checked.
+ 
+                   if CodePeer_Mode or GNATprove_Mode then
+                      Set_Is_Checked (N, True);
+                      Set_Is_Ignored (N, False);
+                   else
+                      Set_Is_Checked (N, False);
+                      Set_Is_Ignored (N, True);
+                   end if;
+                end if;
+             end Handle_Dynamic_Predicate_Check;
+ 
+             --  Local variables
+ 
              Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
              Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
              --  Save the Ghost-related attributes to restore on exit
*************** package body Sem_Prag is
*** 14426,14431 ****
--- 14902,14909 ----
              Str   : Node_Id;
              pragma Warnings (Off, Str);
  
+          --  Start of processing for Pragma_Check
+ 
           begin
              --  Pragma Check is Ghost when it applies to a Ghost entity. Set
              --  the mode now to ensure that any nodes generated during analysis
*************** package body Sem_Prag is
*** 14480,14485 ****
--- 14958,14973 ----
                 Set_Is_Ignored (N, Is_Ignored (Original_Node (N)));
                 Set_Is_Checked (N, Is_Checked (Original_Node (N)));
  
+             --  Internally added dynamic predicate checks require checking the
+             --  applicable policy at the point of the type declaration of their
+             --  corresponding entity.
+ 
+             elsif not Comes_From_Source (N)
+               and then Chars (Pragma_Identifier (N)) = Name_Check
+               and then Pname = Name_Dynamic_Predicate
+             then
+                Handle_Dynamic_Predicate_Check;
+ 
              --  Otherwise query the applicable policy at this point
  
              else
*************** package body Sem_Prag is
*** 14516,14522 ****
              --  check for a dynamic predicate.
  
              if Is_Checked (N)
-               and then not Split_PPC (N)
                and then Cname /= Name_Dynamic_Predicate
              then
                 Set_SCO_Pragma_Enabled (Loc);
--- 15004,15009 ----
*************** package body Sem_Prag is
*** 15426,15431 ****
--- 15913,15920 ----
           -- CUDA_Device --
           -----------------
  
+          --  pragma CUDA_Device (LOCAL_NAME);
+ 
           when Pragma_CUDA_Device => CUDA_Device : declare
              Arg_Node      : Node_Id;
              Device_Entity : Entity_Id;
*************** package body Sem_Prag is
*** 15458,15468 ****
           -- CUDA_Execute --
           ------------------
  
!          --    pragma CUDA_Execute (PROCEDURE_CALL_STATEMENT,
!          --                         EXPRESSION,
!          --                         EXPRESSION,
!          --                         [, EXPRESSION
!          --                         [, EXPRESSION]]);
  
           when Pragma_CUDA_Execute => CUDA_Execute : declare
  
--- 15947,15957 ----
           -- CUDA_Execute --
           ------------------
  
!          --  pragma CUDA_Execute (PROCEDURE_CALL_STATEMENT,
!          --                       EXPRESSION,
!          --                       EXPRESSION,
!          --                       [, EXPRESSION
!          --                       [, EXPRESSION]]);
  
           when Pragma_CUDA_Execute => CUDA_Execute : declare
  
*************** package body Sem_Prag is
*** 15557,15563 ****
           -- CUDA_Global --
           -----------------
  
!          --  pragma CUDA_Global ([Entity =>] IDENTIFIER);
  
           when Pragma_CUDA_Global => CUDA_Global : declare
              Arg_Node    : Node_Id;
--- 16046,16052 ----
           -- CUDA_Global --
           -----------------
  
!          --  pragma CUDA_Global ([Entity =>] procedure_LOCAL_NAME);
  
           when Pragma_CUDA_Global => CUDA_Global : declare
              Arg_Node    : Node_Id;
*************** package body Sem_Prag is
*** 16392,16406 ****
  
              --  In Ada 83 mode, there can be no items following it in the
              --  context list except other pragmas and implicit with clauses
!             --  (e.g. those added by use of Rtsfind). In Ada 95 mode, this
!             --  placement rule does not apply.
  
              if Ada_Version = Ada_83 and then Comes_From_Source (N) then
                 Citem := Next (N);
                 while Present (Citem) loop
                    if Nkind (Citem) = N_Pragma
                      or else (Nkind (Citem) = N_With_Clause
!                               and then Implicit_With (Citem))
                    then
                       null;
                    else
--- 16881,16895 ----
  
              --  In Ada 83 mode, there can be no items following it in the
              --  context list except other pragmas and implicit with clauses
!             --  (e.g. those added by Rtsfind). In Ada 95 mode, this placement
!             --  rule does not apply.
  
              if Ada_Version = Ada_83 and then Comes_From_Source (N) then
                 Citem := Next (N);
                 while Present (Citem) loop
                    if Nkind (Citem) = N_Pragma
                      or else (Nkind (Citem) = N_With_Clause
!                               and then Is_Implicit_With (Citem))
                    then
                       null;
                    else
*************** package body Sem_Prag is
*** 16918,16924 ****
                 if Ekind (Spec_Id) = E_Function then
                    Error_Msg_N (Fix_Error
                      ("pragma % cannot apply to function '[[]']"), N);
!                      return;
  
                 elsif Ekind (Spec_Id) = E_Generic_Function then
                    Error_Msg_N (Fix_Error
--- 17407,17413 ----
                 if Ekind (Spec_Id) = E_Function then
                    Error_Msg_N (Fix_Error
                      ("pragma % cannot apply to function '[[]']"), N);
!                   return;
  
                 elsif Ekind (Spec_Id) = E_Generic_Function then
                    Error_Msg_N (Fix_Error
*************** package body Sem_Prag is
*** 16954,16959 ****
--- 17443,17610 ----
              end if;
           end Exceptional_Cases;
  
+          ----------------
+          -- Exit_Cases --
+          ----------------
+ 
+          --  pragma Exit_Cases ( EXIT_CONTRACT_LIST );
+ 
+          --    EXIT_CONTRACT_LIST ::=
+          --      ( EXIT_CONTRACT {, EXIT_CONTRACT })
+ 
+          --    EXIT_CONTRACT ::=
+          --      CASE_GUARD => EXIT_KIND
+          --
+          --    EXIT_KIND ::=
+          --      Normal_Return
+          --    | Exception_Raised
+          --    | (Exception_Raised => exception_name)
+          --
+          --  where
+          --
+          --    CASE_GUARD ::= boolean_EXPRESSION
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation undergoes initial checks to verify
+          --    the legal placement and context. Secondary checks preanalyze the
+          --    expressions in:
+ 
+          --       Analyze_Exit_Cases_In_Decl_Part
+ 
+          --    * Expansion - The annotation is expanded during the expansion of
+          --    the related subprogram [body] contract as performed in:
+ 
+          --       Expand_Subprogram_Contract
+ 
+          --    * Template - The annotation utilizes the generic template of the
+          --    related subprogram [body] when it is:
+ 
+          --       aspect on subprogram declaration
+          --       aspect on stand-alone subprogram body
+          --       pragma on stand-alone subprogram body
+ 
+          --    The annotation must prepare its own template when it is:
+ 
+          --       pragma on subprogram declaration
+ 
+          --    * Globals - Capture of global references must occur after full
+          --    analysis.
+ 
+          --    * Instance - The annotation is instantiated automatically when
+          --    the related generic subprogram [body] is instantiated except for
+          --    the "pragma on subprogram declaration" case. In that scenario
+          --    the annotation must instantiate itself.
+ 
+          when Pragma_Exit_Cases => Exit_Cases : declare
+             Spec_Id   : Entity_Id;
+             Subp_Decl : Node_Id;
+             Subp_Spec : Node_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_Arg_Count (1);
+ 
+             --  Ensure the proper placement of the pragma. Exit_Cases must be
+             --  associated with a subprogram declaration or a body that acts as
+             --  a spec.
+ 
+             Subp_Decl :=
+               Find_Related_Declaration_Or_Body (N, Do_Checks => True);
+ 
+             --  Generic subprogram
+ 
+             if Nkind (Subp_Decl) = N_Generic_Subprogram_Declaration then
+                null;
+ 
+             --  Body acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body
+               and then No (Corresponding_Spec (Subp_Decl))
+             then
+                null;
+ 
+             --  Body stub acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
+               and then No (Corresponding_Spec_Of_Stub (Subp_Decl))
+             then
+                null;
+ 
+             --  Subprogram
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Declaration then
+                Subp_Spec := Specification (Subp_Decl);
+ 
+                --  Pragma Exit_Cases is forbidden on null procedures, as this
+                --  may lead to potential ambiguities in behavior when interface
+                --  null procedures are involved.
+ 
+                if Nkind (Subp_Spec) = N_Procedure_Specification
+                  and then Null_Present (Subp_Spec)
+                then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to null procedure"), N);
+                   return;
+                end if;
+ 
+             else
+                Pragma_Misplaced;
+             end if;
+ 
+             Spec_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+             --  In order to call Is_Function_With_Side_Effects, analyze pragma
+             --  Side_Effects if present.
+ 
+             Analyze_If_Present (Pragma_Side_Effects);
+ 
+             --  Pragma Exit_Cases is not allowed on functions without side
+             --  effects.
+ 
+             if Ekind (Spec_Id) in E_Function | E_Generic_Function
+               and then not Is_Function_With_Side_Effects (Spec_Id)
+             then
+                if Ekind (Spec_Id) = E_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to function"), N);
+                      return;
+ 
+                elsif Ekind (Spec_Id) = E_Generic_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to generic function"), N);
+                   return;
+                end if;
+             end if;
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Spec_Id);
+             Ensure_Aggregate_Form (Get_Argument (N, Spec_Id));
+ 
+             --  Chain the pragma on the contract for further processing by
+             --  Analyze_Exit_Cases_In_Decl_Part.
+ 
+             Add_Contract_Item (N, Defining_Entity (Subp_Decl));
+ 
+             --  Fully analyze the pragma when it appears inside a subprogram
+             --  body because it cannot benefit from forward references.
+ 
+             if Nkind (Subp_Decl) in N_Subprogram_Body
+                                   | N_Subprogram_Body_Stub
+             then
+                --  The legality checks of pragma Exit_Cases are affected by the
+                --  SPARK mode in effect and the volatility of the context.
+                --  Analyze all pragmas in a specific order.
+ 
+                Analyze_If_Present (Pragma_SPARK_Mode);
+                Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_Exit_Cases_In_Decl_Part (N);
+             end if;
+          end Exit_Cases;
+ 
           ------------
           -- Export --
           ------------
*************** package body Sem_Prag is
*** 17302,17322 ****
                 Error_Pragma ("incorrect name for pragma%, must be Aux_xxx");
              end if;
  
           ------------------------
           -- Extensions_Allowed --
           ------------------------
  
!          --  pragma Extensions_Allowed (ON | OFF | ALL);
  
           when Pragma_Extensions_Allowed =>
              GNAT_Pragma;
              Check_Arg_Count (1);
              Check_No_Identifiers;
!             Check_Arg_Is_One_Of (Arg1, Name_On, Name_Off, Name_All);
  
              if Chars (Get_Pragma_Arg (Arg1)) = Name_On then
                 Ada_Version := Ada_With_Core_Extensions;
!             elsif Chars (Get_Pragma_Arg (Arg1)) = Name_All then
                 Ada_Version := Ada_With_All_Extensions;
              else
                 Ada_Version := Ada_Version_Explicit;
--- 17953,18044 ----
                 Error_Pragma ("incorrect name for pragma%, must be Aux_xxx");
              end if;
  
+          ---------------------
+          -- Extended_Access --
+          ---------------------
+ 
+          --  pragma Extended_Access (first_subtype_LOCAL_NAME);
+ 
+          when Pragma_Extended_Access => Extended_Access : declare
+             Assoc   : constant Node_Id := Arg1;
+             Typ     : Entity_Id;
+             Type_Id : Node_Id;
+ 
+          begin
+             Check_No_Identifiers;
+             Check_Arg_Count (1);
+             Check_Arg_Is_Local_Name (Arg1);
+             Type_Id := Get_Pragma_Arg (Assoc);
+ 
+             if not Is_Entity_Name (Type_Id)
+               or else not Is_Type (Entity (Type_Id))
+             then
+                Error_Pragma_Arg
+                  ("argument for pragma% must be type or subtype", Arg1);
+             end if;
+ 
+             Find_Type (Type_Id);
+             Typ := Entity (Type_Id);
+ 
+             if Typ = Any_Type
+               or else Rep_Item_Too_Early (Typ, N)
+             then
+                return;
+             else
+                Typ := Underlying_Type (Typ);
+             end if;
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Typ);
+ 
+             if Ekind (Typ) = E_Access_Subtype then
+                Error_Pragma
+                  ("pragma% not specifiable for subtype");
+             elsif Ekind (Typ) /= E_General_Access_Type then
+                Error_Pragma
+                  ("pragma% only specifiable for general access type");
+             elsif Is_Derived_Type (Typ) then
+                Error_Pragma
+                  ("pragma% not specifiable for derived type");
+             else
+                declare
+                   Designated : constant Entity_Id := Designated_Type (Typ);
+                begin
+                   if not Is_Array_Type (Designated)
+                     or else Is_Constrained (Designated)
+                   then
+                      Error_Pragma
+                        ("pragma% only specifiable for access type" &
+                        " having unconstrained array designated subtype");
+                   end if;
+                end;
+             end if;
+ 
+             Check_First_Subtype (Arg1);
+             Check_Duplicate_Pragma (Typ);
+ 
+             if Rep_Item_Too_Late (Typ, N) then
+                return;
+             end if;
+          end Extended_Access;
+ 
           ------------------------
           -- Extensions_Allowed --
           ------------------------
  
!          --  pragma Extensions_Allowed (ON | OFF | ALL_EXTENSIONS);
  
           when Pragma_Extensions_Allowed =>
              GNAT_Pragma;
              Check_Arg_Count (1);
              Check_No_Identifiers;
!             Check_Arg_Is_One_Of (Arg1, Name_On, Name_Off, Name_All_Extensions);
  
              if Chars (Get_Pragma_Arg (Arg1)) = Name_On then
                 Ada_Version := Ada_With_Core_Extensions;
!             elsif Chars (Get_Pragma_Arg (Arg1)) = Name_All_Extensions then
                 Ada_Version := Ada_With_All_Extensions;
              else
                 Ada_Version := Ada_Version_Explicit;
*************** package body Sem_Prag is
*** 17327,17333 ****
           -- Extensions_Visible --
           ------------------------
  
!          --  pragma Extensions_Visible [ (boolean_EXPRESSION) ];
  
           --  Characteristics:
  
--- 18049,18055 ----
           -- Extensions_Visible --
           ------------------------
  
!          --  pragma Extensions_Visible [ (static_boolean_EXPRESSION) ];
  
           --  Characteristics:
  
*************** package body Sem_Prag is
*** 17566,17572 ****
           -- Favor_Top_Level --
           --------------------------
  
!          --  pragma Favor_Top_Level (type_NAME);
  
           when Pragma_Favor_Top_Level => Favor_Top_Level : declare
              Typ : Entity_Id;
--- 18288,18294 ----
           -- Favor_Top_Level --
           --------------------------
  
!          --  pragma Favor_Top_Level (type_LOCAL_NAME);
  
           when Pragma_Favor_Top_Level => Favor_Top_Level : declare
              Typ : Entity_Id;
*************** package body Sem_Prag is
*** 17640,17650 ****
              end if;
           end Finalize_Storage;
  
           -----------
           -- Ghost --
           -----------
  
!          --  pragma Ghost [ (boolean_EXPRESSION) ];
  
           when Pragma_Ghost => Ghost : declare
              Context   : Node_Id;
--- 18362,18490 ----
              end if;
           end Finalize_Storage;
  
+          ----------------------------------------
+          -- Pragma_First_Controlling_Parameter --
+          ----------------------------------------
+ 
+          when Pragma_First_Controlling_Parameter => First_Ctrl_Param : declare
+             Arg  : Node_Id;
+             E    : Entity_Id := Empty;
+             Expr : Node_Id := Empty;
+ 
+          begin
+             GNAT_Pragma;
+             Check_At_Least_N_Arguments (1);
+             Check_At_Most_N_Arguments  (2);
+ 
+             Arg := Get_Pragma_Arg (Arg1);
+             Check_Arg_Is_Identifier (Arg);
+ 
+             Analyze (Arg);
+             E := Entity (Arg);
+ 
+             if Present (Arg2) then
+                Check_Arg_Is_OK_Static_Expression (Arg2, Standard_Boolean);
+                Expr := Get_Pragma_Arg (Arg2);
+                Analyze_And_Resolve (Expr, Standard_Boolean);
+             end if;
+ 
+             if not Core_Extensions_Allowed then
+                if No (Expr)
+                  or else
+                    (Present (Expr)
+                       and then Is_Entity_Name (Expr)
+                       and then Entity (Expr) = Standard_True)
+                then
+                   Error_Msg_GNAT_Extension
+                     ("'First_'Controlling_'Parameter", Sloc (N),
+                      Is_Core_Extension => True);
+                end if;
+ 
+                return;
+ 
+             elsif Present (Expr)
+               and then Is_Entity_Name (Expr)
+               and then Entity (Expr) = Standard_False
+             then
+                if Is_Derived_Type (E)
+                  and then Has_First_Controlling_Parameter_Aspect (Etype (E))
+                then
+                   Error_Msg_Name_1 := Name_First_Controlling_Parameter;
+                   Error_Msg_N
+                     ("specification of inherited True value for aspect% can "
+                       & "only confirm parent value", Pragma_Identifier (N));
+                end if;
+ 
+                return;
+             end if;
+ 
+             if No (E)
+               or else not Is_Type (E)
+               or else not (Is_Tagged_Type (E)
+                              or else Is_Concurrent_Type (E))
+             then
+                Error_Pragma
+                  ("pragma% must specify tagged type or concurrent type");
+             end if;
+ 
+             --  Check use of the pragma on private types
+ 
+             if Has_Private_Declaration (E) then
+                declare
+                   Prev_Id : constant Entity_Id :=
+                               Incomplete_Or_Partial_View (E);
+                begin
+                   if Is_Tagged_Type (Prev_Id) then
+                      if Has_First_Controlling_Parameter_Aspect (Prev_Id) then
+                         Error_Pragma
+                           ("pragma already specified in private declaration");
+                      else
+                         Error_Msg_N
+                           ("hidden 'First_'Controlling_'Parameter tagged type"
+                            & " not allowed", N);
+                      end if;
+ 
+                   --  No action needed if the partial view is not tagged. For
+                   --  example:
+ 
+                   --     package Example is
+                   --        type Private_Type is private;
+                   --     private
+                   --        type Private_Type is new ... with null record
+                   --          with First_Controlling_Parameter;      -- Legal
+                   --     end;
+ 
+                   else
+                      null;
+                   end if;
+                end;
+             end if;
+ 
+             --  The corresponding record type of concurrent types will not be
+             --  a tagged type when it does not implement some interface type.
+ 
+             if Is_Concurrent_Type (E)
+               and then Present (Parent (E))
+               and then No (Interface_List (Parent (E)))
+             then
+                if Warn_On_Non_Dispatching_Primitives then
+                   Error_Msg_N
+                     ("?_j?'First_'Controlling_'Parameter has no effect", N);
+                   Error_Msg_NE
+                     ("\?_j?because & does not implement interface types",
+                      N, E);
+                end if;
+ 
+             else
+                Set_Has_First_Controlling_Parameter_Aspect (E);
+             end if;
+          end First_Ctrl_Param;
+ 
           -----------
           -- Ghost --
           -----------
  
!          --  pragma Ghost [ (static_boolean_EXPRESSION) ];
  
           when Pragma_Ghost => Ghost : declare
              Context   : Node_Id;
*************** package body Sem_Prag is
*** 17674,17680 ****
                    end if;
  
                 --  Task unit declared without a definition cannot be subject to
!                --  pragma Ghost (SPARK RM 6.9(19)).
  
                 elsif Nkind (Stmt) in
                         N_Single_Task_Declaration | N_Task_Type_Declaration
--- 18514,18520 ----
                    end if;
  
                 --  Task unit declared without a definition cannot be subject to
!                --  pragma Ghost (SPARK RM 6.9(21)).
  
                 elsif Nkind (Stmt) in
                         N_Single_Task_Declaration | N_Task_Type_Declaration
*************** package body Sem_Prag is
*** 17770,17776 ****
              end if;
  
              --  Protected and task types cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(19)).
  
              if Nkind (Context) in N_Protected_Body | N_Protected_Definition
              then
--- 18610,18616 ----
              end if;
  
              --  Protected and task types cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(21)).
  
              if Nkind (Context) in N_Protected_Body | N_Protected_Definition
              then
*************** package body Sem_Prag is
*** 17857,17863 ****
                 end if;
  
              --  A synchronized object cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(19)).
  
              elsif Ekind (Id) = E_Variable then
                 if Is_Protected_Type (Etype (Id)) then
--- 18697,18703 ----
                 end if;
  
              --  A synchronized object cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(21)).
  
              elsif Ekind (Id) = E_Variable then
                 if Is_Protected_Type (Etype (Id)) then
*************** package body Sem_Prag is
*** 19428,19445 ****
  
              --  An invariant must apply to a private type, or appear in the
              --  private part of a package spec and apply to a completion.
!             --  a class-wide invariant can only appear on a private declaration
              --  or private extension, not a completion.
  
!             --  A [class-wide] invariant may be associated a [limited] private
!             --  type or a private extension.
  
              elsif Ekind (Typ) in E_Limited_Private_Type
                                 | E_Private_Type
!                                | E_Record_Type_With_Private
              then
                 null;
  
              --  A non-class-wide invariant may be associated with the full view
              --  of a [limited] private type or a private extension.
  
--- 20268,20293 ----
  
              --  An invariant must apply to a private type, or appear in the
              --  private part of a package spec and apply to a completion.
!             --  A class-wide invariant can only appear on a private declaration
              --  or private extension, not a completion.
  
!             --  A [class-wide] invariant may be associated with a [limited]
!             --  private type. We need to explicitly exclude types that are
!             --  derived from formal private types here.
  
              elsif Ekind (Typ) in E_Limited_Private_Type
                                 | E_Private_Type
!               and then not (Is_Derived_Type (Typ)
!                              and then Is_Generic_Type (Etype (Typ)))
              then
                 null;
  
+             --  A [class-wide] invariant may be associated with a private
+             --  extension.
+ 
+             elsif Ekind (Typ) = E_Record_Type_With_Private then
+                null;
+ 
              --  A non-class-wide invariant may be associated with the full view
              --  of a [limited] private type or a private extension.
  
*************** package body Sem_Prag is
*** 19669,19676 ****
           ------------------
  
           --  pragma Linker_Alias (
!          --      [Entity =>]  LOCAL_NAME
!          --      [Target =>]  static_string_EXPRESSION);
  
           when Pragma_Linker_Alias =>
              GNAT_Pragma;
--- 20517,20524 ----
           ------------------
  
           --  pragma Linker_Alias (
!          --      [Entity =>] LOCAL_NAME
!          --      [Target =>] static_string_EXPRESSION);
  
           when Pragma_Linker_Alias =>
              GNAT_Pragma;
*************** package body Sem_Prag is
*** 19941,19947 ****
           -- Lock_Free --
           ---------------
  
!          --  pragma Lock_Free [(Boolean_EXPRESSION)];
  
           when Pragma_Lock_Free => Lock_Free : declare
              P   : constant Node_Id := Parent (N);
--- 20789,20795 ----
           -- Lock_Free --
           ---------------
  
!          --  pragma Lock_Free [(static_boolean_EXPRESSION)];
  
           when Pragma_Lock_Free => Lock_Free : declare
              P   : constant Node_Id := Parent (N);
*************** package body Sem_Prag is
*** 19950,19955 ****
--- 20798,20804 ----
              Val : Boolean;
  
           begin
+             GNAT_Pragma;
              Check_No_Identifiers;
              Check_At_Most_N_Arguments (1);
  
*************** package body Sem_Prag is
*** 20152,20157 ****
--- 21001,21009 ----
                     or else
                   Is_RTE (Base_Type (Etype (Expression (Variant))),
                           RO_GH_Big_Integer)
+                    or else
+                  Is_RTE (Base_Type (Etype (Expression (Variant))),
+                          RO_SP_Big_Integer)
                 then
                    if Chars (Variant) = Name_Increases then
                       Error_Msg_N
*************** package body Sem_Prag is
*** 20347,20357 ****
  
           --  pragma Max_Entry_Queue_Length (static_integer_EXPRESSION);
  
-          --  This processing is shared by Pragma_Max_Entry_Queue_Depth and
-          --  Pragma_Max_Queue_Length.
- 
           when Pragma_Max_Entry_Queue_Length
-             | Pragma_Max_Entry_Queue_Depth
              | Pragma_Max_Queue_Length
           =>
           Max_Entry_Queue_Length : declare
--- 21199,21205 ----
*************** package body Sem_Prag is
*** 20361,20369 ****
              Val        : Uint;
  
           begin
!             if Prag_Id = Pragma_Max_Entry_Queue_Depth
!               or else Prag_Id = Pragma_Max_Queue_Length
!             then
                 GNAT_Pragma;
              end if;
  
--- 21209,21215 ----
              Val        : Uint;
  
           begin
!             if Prag_Id = Pragma_Max_Queue_Length then
                 GNAT_Pragma;
              end if;
  
*************** package body Sem_Prag is
*** 20391,20396 ****
--- 21237,21257 ----
                   ("pragma % must apply to a protected entry declaration");
              end if;
  
+             --  Check for conflicting use of synonyms. Note that we exclude
+             --  the detection of duplicates here because they are detected
+             --  elsewhere.
+ 
+             if (Has_Rep_Pragma (Entry_Id, Name_Max_Entry_Queue_Length)
+                   and then
+                 Prag_Id /= Pragma_Max_Entry_Queue_Length)
+                  or else
+                (Has_Rep_Pragma (Entry_Id, Name_Max_Queue_Length)
+                   and then
+                 Prag_Id /= Pragma_Max_Queue_Length)
+             then
+                Error_Msg_N ("??maximum entry queue length already set", N);
+             end if;
+ 
              --  Mark the pragma as Ghost if the related subprogram is also
              --  Ghost. This also ensures that any expansion performed further
              --  below will produce Ghost nodes.
*************** package body Sem_Prag is
*** 20681,20697 ****
              GNAT_Pragma;
              Process_Inline (Suppressed);
  
           ---------------
           -- No_Return --
           ---------------
  
!          --  pragma No_Return (procedure_LOCAL_NAME {, procedure_Local_Name});
  
           when Pragma_No_Return => Prag_No_Return : declare
  
              function Check_No_Return
!                (E : Entity_Id;
!                 N : Node_Id) return Boolean;
              --  Check rule 6.5.1(4/3) of the Ada RM. If the rule is violated,
              --  emit an error message and return False, otherwise return True.
              --  6.5.1 Nonreturning procedures:
--- 21542,21633 ----
              GNAT_Pragma;
              Process_Inline (Suppressed);
  
+          --------------
+          -- No_Raise --
+          --------------
+ 
+          --  pragma No_Raise (procedure_LOCAL_NAME {, procedure_LOCAL_NAME});
+ 
+          when Pragma_No_Raise => Prag_No_Raise : declare
+             Arg   : Node_Id;
+             Assoc : Node_Id;
+             Subp  : Entity_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_At_Least_N_Arguments (1);
+ 
+             Assoc := Arg1;
+             while Present (Assoc) loop
+                Arg := Get_Pragma_Arg (Assoc);
+                Analyze (Arg);
+ 
+                if Is_Entity_Name (Arg) then
+                   Subp := Entity (Arg);
+ 
+                   --  If previous error, avoid cascaded errors
+ 
+                   if Subp = Any_Id then
+                      Check_Error_Detected;
+ 
+                   --  The argument must be a [generic] subprogram
+ 
+                   elsif not Is_Subprogram_Or_Generic_Subprogram (Subp) then
+                      Error_Pragma_Arg
+                        ("argument for pragma% must be a subprogram", Assoc);
+ 
+                   --  The argument must be in current scope
+ 
+                   elsif Scope (Subp) = Current_Scope then
+                      Check_Duplicate_Pragma (Subp);
+                      Record_Rep_Item (Subp, N);
+ 
+                      Set_No_Raise (Subp);
+ 
+                      --  For the pragma case, climb homonym chain. This is
+                      --  what implements allowing the pragma in the renaming
+                      --  case, with the result applying to the ancestors, and
+                      --  allows No_Raise to apply to all previous homonyms.
+ 
+                      if not From_Aspect_Specification (N) then
+                         while Present (Homonym (Subp))
+                           and then Scope (Homonym (Subp)) = Current_Scope
+                         loop
+                            Subp := Homonym (Subp);
+                            Set_No_Raise (Subp);
+                         end loop;
+                      end if;
+ 
+                   --  If entity in not in current scope it may be the enclosing
+                   --  subprogram body to which the aspect applies.
+ 
+                   elsif Subp = Current_Scope
+                     and then From_Aspect_Specification (N)
+                   then
+                      Set_No_Raise (Subp);
+ 
+                   else
+                      Error_Pragma_Arg
+                        ("expect local subprogram name for pragma%", Assoc);
+                   end if;
+                end if;
+ 
+                Next (Assoc);
+             end loop;
+          end Prag_No_Raise;
+ 
           ---------------
           -- No_Return --
           ---------------
  
!          --  pragma No_Return (procedure_LOCAL_NAME {, procedure_LOCAL_NAME});
  
           when Pragma_No_Return => Prag_No_Return : declare
  
              function Check_No_Return
!               (E : Entity_Id;
!                N : Node_Id) return Boolean;
              --  Check rule 6.5.1(4/3) of the Ada RM. If the rule is violated,
              --  emit an error message and return False, otherwise return True.
              --  6.5.1 Nonreturning procedures:
*************** package body Sem_Prag is
*** 20703,20710 ****
              ---------------------
  
              function Check_No_Return
!                (E : Entity_Id;
!                 N : Node_Id) return Boolean
              is
              begin
                 if Ekind (E) in E_Function | E_Generic_Function then
--- 21639,21646 ----
              ---------------------
  
              function Check_No_Return
!               (E : Entity_Id;
!                N : Node_Id) return Boolean
              is
              begin
                 if Ekind (E) in E_Function | E_Generic_Function then
*************** package body Sem_Prag is
*** 20771,20866 ****
                    raise Pragma_Exit;
                 end if;
  
                 --  Loop to find matching procedures or functions (Ada 2022)
  
!                E := Entity (Id);
  
!                Found := False;
!                while Present (E)
!                  and then Scope (E) = Current_Scope
!                loop
!                   --  Ada 2022 (AI12-0269): A function can be No_Return
  
!                   if Ekind (E) in E_Generic_Procedure | E_Procedure
!                                    | E_Generic_Function | E_Function
!                   then
!                      --  Check that the pragma is not applied to a body.
!                      --  First check the specless body case, to give a
!                      --  different error message. These checks do not apply
!                      --  if Relaxed_RM_Semantics, to accommodate other Ada
!                      --  compilers. Disable these checks under -gnatd.J.
  
!                      if not Debug_Flag_Dot_JJ then
!                         if Nkind (Parent (Declaration_Node (E))) =
!                             N_Subprogram_Body
!                           and then not Relaxed_RM_Semantics
!                         then
!                            Error_Pragma
!                              ("pragma% requires separate spec and must come "
!                               & "before body");
!                         end if;
  
!                         --  Now the "specful" body case
  
!                         if Rep_Item_Too_Late (E, N) then
!                            raise Pragma_Exit;
!                         end if;
!                      end if;
  
!                      if Check_No_Return (E, N) then
!                         Set_No_Return (E);
!                      end if;
  
!                      --  A pragma that applies to a Ghost entity becomes Ghost
!                      --  for the purposes of legality checks and removal of
!                      --  ignored Ghost code.
  
!                      Mark_Ghost_Pragma (N, E);
  
!                      --  Capture the entity of the first Ghost procedure being
!                      --  processed for error detection purposes.
  
!                      if Is_Ghost_Entity (E) then
!                         if No (Ghost_Id) then
!                            Ghost_Id := E;
                          end if;
  
!                      --  Otherwise the subprogram is non-Ghost. It is illegal
!                      --  to mix references to Ghost and non-Ghost entities
!                      --  (SPARK RM 6.9).
  
!                      elsif Present (Ghost_Id)
!                        and then not Ghost_Error_Posted
!                      then
!                         Ghost_Error_Posted := True;
  
!                         Error_Msg_Name_1 := Pname;
!                         Error_Msg_N
!                           ("pragma % cannot mention ghost and non-ghost "
!                            & "procedures", N);
  
!                         Error_Msg_Sloc := Sloc (Ghost_Id);
!                         Error_Msg_NE ("\& # declared as ghost", N, Ghost_Id);
  
!                         Error_Msg_Sloc := Sloc (E);
!                         Error_Msg_NE ("\& # declared as non-ghost", N, E);
!                      end if;
  
!                      --  Set flag on any alias as well
  
!                      if Is_Overloadable (E)
!                        and then Present (Alias (E))
!                        and then Check_No_Return (Alias (E), N)
!                      then
!                         Set_No_Return (Alias (E));
!                      end if;
  
!                      Found := True;
!                   end if;
  
!                   exit when From_Aspect_Specification (N);
!                   E := Homonym (E);
!                end loop;
  
                 --  If entity in not in current scope it may be the enclosing
                 --  subprogram body to which the aspect applies.
--- 21707,21830 ----
                    raise Pragma_Exit;
                 end if;
  
+                Found := False;
                 --  Loop to find matching procedures or functions (Ada 2022)
  
!                Outer_Loop :
!                for Process_Functions in Boolean loop
  
!                   --  We make two passes over the Homonym list, first looking
!                   --  at procedures and then at functions. This is done
!                   --  in order to get the desired behavior in the pre-Ada2022
!                   --  case. There are two subcases of the pre-Ada2022 case -
!                   --  either we found a non-function candidate in the first
!                   --  pass or we didn't. If we found one, then exit early
!                   --  (i.e., skip the second pass); we want to silently ignore
!                   --  any functions. But if we didn't find one then we do not
!                   --  want to exit early because looking at functions will
!                   --  allow us (if we find one) to generate a more useful
!                   --  error message ("this is an Ada 2022 construct" instead of
!                   --  "name could not be resolved").
  
!                   exit Outer_Loop when Found and Ada_Version < Ada_2022;
  
!                   E := Entity (Id);
  
!                   while Present (E)
!                     and then Scope (E) = Current_Scope
!                   loop
!                      --  Ada 2022 (AI12-0269): A function can be No_Return
  
!                      if (if Process_Functions
!                            then Ekind (E) in E_Generic_Function | E_Function
!                            else Ekind (E) in E_Generic_Procedure | E_Procedure)
  
!                         --  if From_Aspect_Specification, then only one
!                         --  candidate should be considered.
  
!                         and then (not From_Aspect_Specification (N)
!                                    or else E = Entity (Id)
!                                    or else No (Entity (Id)))
  
!                      then
!                         --  Check that the pragma is not applied to a body.
!                         --  First check the specless body case, to give a
!                         --  different error message. These checks do not apply
!                         --  if Relaxed_RM_Semantics, to accommodate other Ada
!                         --  compilers. Disable these checks under -gnatd.J.
  
!                         if not Debug_Flag_Dot_JJ then
!                            if Nkind (Parent (Declaration_Node (E))) =
!                                N_Subprogram_Body
!                              and then not Relaxed_RM_Semantics
!                            then
!                               Error_Pragma
!                                 ("pragma% requires separate spec and must "
!                                  & "come before body");
!                            end if;
  
!                            --  Now the "specful" body case
! 
!                            if Rep_Item_Too_Late (E, N) then
!                               raise Pragma_Exit;
!                            end if;
                          end if;
  
!                         if Check_No_Return (E, N) then
!                            Set_No_Return (E);
!                         end if;
  
!                         --  A pragma that applies to a Ghost entity becomes
!                         --  Ghost for the purposes of legality checks and
!                         --  removal of ignored Ghost code.
  
!                         Mark_Ghost_Pragma (N, E);
  
!                         --  Capture the entity of the first Ghost procedure
!                         --  being processed for error detection purposes.
  
!                         if Is_Ghost_Entity (E) then
!                            if No (Ghost_Id) then
!                               Ghost_Id := E;
!                            end if;
  
!                         --  Otherwise the subprogram is non-Ghost. It is
!                         --  illegal to mix references to Ghost and non-Ghost
!                         --  entities (SPARK RM 6.9).
  
!                         elsif Present (Ghost_Id)
!                           and then not Ghost_Error_Posted
!                         then
!                            Ghost_Error_Posted := True;
  
!                            Error_Msg_Name_1 := Pname;
!                            Error_Msg_N
!                              ("pragma % cannot mention ghost and non-ghost "
!                               & "procedures", N);
  
!                            Error_Msg_Sloc := Sloc (Ghost_Id);
!                            Error_Msg_NE
!                              ("\& # declared as ghost", N, Ghost_Id);
! 
!                            Error_Msg_Sloc := Sloc (E);
!                            Error_Msg_NE ("\& # declared as non-ghost", N, E);
!                         end if;
! 
!                         --  Set flag on any alias as well
! 
!                         if Is_Overloadable (E)
!                           and then Present (Alias (E))
!                           and then Check_No_Return (Alias (E), N)
!                         then
!                            Set_No_Return (Alias (E));
!                         end if;
! 
!                         Found := True;
!                      end if;
! 
!                      E := Homonym (E);
!                   end loop;
!                end loop Outer_Loop;
  
                 --  If entity in not in current scope it may be the enclosing
                 --  subprogram body to which the aspect applies.
*************** package body Sem_Prag is
*** 20926,20931 ****
--- 21890,21907 ----
                 end if;
              end;
  
+          ----------------------------------
+          -- Interrupts_System_By_Default --
+          ----------------------------------
+ 
+          --  pragma Interrupts_System_By_Default;
+ 
+          when Pragma_Interrupts_System_By_Default =>
+             GNAT_Pragma;
+             Check_Arg_Count (0);
+             Check_Valid_Configuration_Pragma;
+             Interrupts_System_By_Default := True;
+ 
           -----------------------
           -- No_Tagged_Streams --
           -----------------------
*************** package body Sem_Prag is
*** 21859,21949 ****
                 Check_Arg_Is_One_Of (Arg1, Name_Semaphore, Name_No);
              end if;
  
-          ----------------------------------
-          -- Preelaborable_Initialization --
-          ----------------------------------
- 
-          --  pragma Preelaborable_Initialization (DIRECT_NAME);
- 
-          when Pragma_Preelaborable_Initialization => Preelab_Init : declare
-             Ent : Entity_Id;
- 
-          begin
-             Ada_2005_Pragma;
-             Check_Arg_Count (1);
-             Check_No_Identifiers;
-             Check_Arg_Is_Identifier (Arg1);
-             Check_Arg_Is_Local_Name (Arg1);
-             Check_First_Subtype (Arg1);
-             Ent := Entity (Get_Pragma_Arg (Arg1));
- 
-             --  A pragma that applies to a Ghost entity becomes Ghost for the
-             --  purposes of legality checks and removal of ignored Ghost code.
- 
-             Mark_Ghost_Pragma (N, Ent);
- 
-             --  The pragma may come from an aspect on a private declaration,
-             --  even if the freeze point at which this is analyzed in the
-             --  private part after the full view.
- 
-             if Has_Private_Declaration (Ent)
-               and then From_Aspect_Specification (N)
-             then
-                null;
- 
-             --  Check appropriate type argument
- 
-             elsif Is_Private_Type (Ent)
-               or else Is_Protected_Type (Ent)
-               or else (Is_Generic_Type (Ent) and then Is_Derived_Type (Ent))
- 
-               --  AI05-0028: The pragma applies to all composite types. Note
-               --  that we apply this binding interpretation to earlier versions
-               --  of Ada, so there is no Ada 2012 guard. Seems a reasonable
-               --  choice since there are other compilers that do the same.
- 
-               or else Is_Composite_Type (Ent)
-             then
-                null;
- 
-             else
-                Error_Pragma_Arg
-                  ("pragma % can only be applied to private, formal derived, "
-                   & "protected, or composite type", Arg1);
-             end if;
- 
-             --  Give an error if the pragma is applied to a protected type that
-             --  does not qualify (due to having entries, or due to components
-             --  that do not qualify).
- 
-             if Is_Protected_Type (Ent)
-               and then not Has_Preelaborable_Initialization (Ent)
-             then
-                Error_Msg_N
-                  ("protected type & does not have preelaborable "
-                   & "initialization", Ent);
- 
-             --  Otherwise mark the type as definitely having preelaborable
-             --  initialization.
- 
-             else
-                Set_Known_To_Have_Preelab_Init (Ent);
-             end if;
- 
-             if Has_Pragma_Preelab_Init (Ent)
-               and then Warn_On_Redundant_Constructs
-             then
-                Error_Pragma ("?r?duplicate pragma%!");
-             else
-                Set_Has_Pragma_Preelab_Init (Ent);
-             end if;
-          end Preelab_Init;
- 
           --------------------
           -- Persistent_BSS --
           --------------------
  
!          --  pragma Persistent_BSS [(object_NAME)];
  
           when Pragma_Persistent_BSS => Persistent_BSS :  declare
              Decl : Node_Id;
--- 22835,22845 ----
                 Check_Arg_Is_One_Of (Arg1, Name_Semaphore, Name_No);
              end if;
  
           --------------------
           -- Persistent_BSS --
           --------------------
  
!          --  pragma Persistent_BSS [(object_LOCAL_NAME)];
  
           when Pragma_Persistent_BSS => Persistent_BSS :  declare
              Decl : Node_Id;
*************** package body Sem_Prag is
*** 22027,22032 ****
--- 22923,23008 ----
              end if;
           end Persistent_BSS;
  
+          ----------------------------------
+          -- Preelaborable_Initialization --
+          ----------------------------------
+ 
+          --  pragma Preelaborable_Initialization (DIRECT_NAME);
+ 
+          when Pragma_Preelaborable_Initialization => Preelab_Init : declare
+             Ent : Entity_Id;
+ 
+          begin
+             Ada_2005_Pragma;
+             Check_Arg_Count (1);
+             Check_No_Identifiers;
+             Check_Arg_Is_Identifier (Arg1);
+             Check_Arg_Is_Local_Name (Arg1);
+             Check_First_Subtype (Arg1);
+             Ent := Entity (Get_Pragma_Arg (Arg1));
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Ent);
+ 
+             --  The pragma may come from an aspect on a private declaration,
+             --  even if the freeze point at which this is analyzed in the
+             --  private part after the full view.
+ 
+             if Has_Private_Declaration (Ent)
+               and then From_Aspect_Specification (N)
+             then
+                null;
+ 
+             --  Check appropriate type argument
+ 
+             elsif Is_Private_Type (Ent)
+               or else Is_Protected_Type (Ent)
+               or else (Is_Generic_Type (Ent) and then Is_Derived_Type (Ent))
+ 
+               --  AI05-0028: The pragma applies to all composite types. Note
+               --  that we apply this binding interpretation to earlier versions
+               --  of Ada, so there is no Ada 2012 guard. Seems a reasonable
+               --  choice since there are other compilers that do the same.
+ 
+               or else Is_Composite_Type (Ent)
+             then
+                null;
+ 
+             else
+                Error_Pragma_Arg
+                  ("pragma % can only be applied to private, formal derived, "
+                   & "protected, or composite type", Arg1);
+             end if;
+ 
+             --  Give an error if the pragma is applied to a protected type that
+             --  does not qualify (due to having entries, or due to components
+             --  that do not qualify).
+ 
+             if Is_Protected_Type (Ent)
+               and then not Has_Preelaborable_Initialization (Ent)
+             then
+                Error_Msg_N
+                  ("protected type & does not have preelaborable "
+                   & "initialization", Ent);
+ 
+             --  Otherwise mark the type as definitely having preelaborable
+             --  initialization.
+ 
+             else
+                Set_Known_To_Have_Preelab_Init (Ent);
+             end if;
+ 
+             if Has_Pragma_Preelab_Init (Ent)
+               and then Warn_On_Redundant_Constructs
+             then
+                Error_Pragma ("?r?duplicate pragma%!");
+             else
+                Set_Has_Pragma_Preelab_Init (Ent);
+             end if;
+          end Preelab_Init;
+ 
           --------------------
           -- Rename_Pragma --
           --------------------
*************** package body Sem_Prag is
*** 22226,22233 ****
              Set_Has_Delayed_Aspects (Typ);
              Set_Has_Delayed_Freeze (Typ);
  
!             Set_Predicates_Ignored (Typ,
!               Policy_In_Effect (Name_Dynamic_Predicate) = Name_Ignore);
              Discard := Rep_Item_Too_Late (Typ, N, FOnly => True);
           end Predicate;
  
--- 23202,23223 ----
              Set_Has_Delayed_Aspects (Typ);
              Set_Has_Delayed_Freeze (Typ);
  
!             --  Mark this aspect as ignored if the policy in effect is Ignore.
! 
!             --  It is not done for the internally built pragma created as part
!             --  of processing aspect dynamic predicate because, in such case,
!             --  this was done when the aspect was processed (see subprogram
!             --  Analyze_One_Aspect).
! 
!             if From_Aspect_Specification (N)
!               and then Pname = Name_Dynamic_Predicate
!             then
!                null;
!             else
!                Set_Predicates_Ignored (Typ,
!                  Policy_In_Effect (Name_Dynamic_Predicate) = Name_Ignore);
!             end if;
! 
              Discard := Rep_Item_Too_Late (Typ, N, FOnly => True);
           end Predicate;
  
*************** package body Sem_Prag is
*** 23898,23903 ****
--- 24888,24914 ----
              end if;
           end Side_Effects;
  
+          ------------------------------------
+          -- Pragma_Simulate_Internal_Error --
+          ------------------------------------
+ 
+          --  pragma Simulate_Internal_Error;
+ 
+          --  Since the only purpose of this pragma is to write tests for the
+          --  compiler, it is not documented in the GNAT reference manual. The
+          --  effect of the pragma is to cause the compiler to raise an
+          --  exception when it analyzes the pragma.
+ 
+          when Pragma_Simulate_Internal_Error =>
+          Simulate_Internal_Error : declare
+             Simulated_Internal_Error : exception;
+          begin
+             GNAT_Pragma;
+             Check_Arg_Count (0);
+ 
+             raise Simulated_Internal_Error;
+          end Simulate_Internal_Error;
+ 
           ------------------------------
           -- Simple_Storage_Pool_Type --
           ------------------------------
*************** package body Sem_Prag is
*** 24578,24591 ****
  
              if No (Context) then
                 Check_Valid_Configuration_Pragma;
- 
-                if Present (SPARK_Mode_Pragma) then
-                   Duplication_Error
-                     (Prag => N,
-                      Prev => SPARK_Mode_Pragma);
-                   raise Pragma_Exit;
-                end if;
- 
                 Set_SPARK_Context;
  
              --  The pragma acts as a configuration pragma in a compilation unit
--- 25589,25594 ----
*************** package body Sem_Prag is
*** 25290,25296 ****
           -- Suppress_Initialization --
           -----------------------------
  
!          --  pragma Suppress_Initialization ([Entity =>] type_Name);
  
           when Pragma_Suppress_Initialization => Suppress_Init : declare
              E    : Entity_Id;
--- 26293,26299 ----
           -- Suppress_Initialization --
           -----------------------------
  
!          --  pragma Suppress_Initialization ([Entity =>] type_LOCAL_NAME);
  
           when Pragma_Suppress_Initialization => Suppress_Init : declare
              E    : Entity_Id;
*************** package body Sem_Prag is
*** 25917,25923 ****
           -- Unchecked_Union --
           ---------------------
  
!          --  pragma Unchecked_Union (first_subtype_LOCAL_NAME)
  
           when Pragma_Unchecked_Union => Unchecked_Union : declare
              Assoc   : constant Node_Id := Arg1;
--- 26920,26926 ----
           -- Unchecked_Union --
           ---------------------
  
!          --  pragma Unchecked_Union (first_subtype_LOCAL_NAME);
  
           when Pragma_Unchecked_Union => Unchecked_Union : declare
              Assoc   : constant Node_Id := Arg1;
*************** package body Sem_Prag is
*** 26127,26133 ****
  
           --    or when used in a context clause:
  
!          --  pragma Unreferenced (library_unit_NAME {, library_unit_NAME}
  
           when Pragma_Unreferenced =>
              Analyze_Unreferenced_Or_Unused;
--- 27130,27136 ----
  
           --    or when used in a context clause:
  
!          --  pragma Unreferenced (library_unit_NAME {, library_unit_NAME});
  
           when Pragma_Unreferenced =>
              Analyze_Unreferenced_Or_Unused;
*************** package body Sem_Prag is
*** 26535,26541 ****
           -- Volatile_Function --
           -----------------------
  
!          --  pragma Volatile_Function [ (boolean_EXPRESSION) ];
  
           when Pragma_Volatile_Function => Volatile_Function : declare
              Over_Id   : Entity_Id;
--- 27538,27544 ----
           -- Volatile_Function --
           -----------------------
  
!          --  pragma Volatile_Function [ (static_boolean_EXPRESSION) ];
  
           when Pragma_Volatile_Function => Volatile_Function : declare
              Over_Id   : Entity_Id;
*************** package body Sem_Prag is
*** 26986,26992 ****
                          begin
                             if Chars (Argx) = Name_Off then
                                Set_Specific_Warning_Off
!                                 (Loc, Message, Reason,
                                   Config => Is_Configuration_Pragma,
                                   Used => Inside_A_Generic or else In_Instance);
  
--- 27989,27995 ----
                          begin
                             if Chars (Argx) = Name_Off then
                                Set_Specific_Warning_Off
!                                 (N, Message, Reason,
                                   Config => Is_Configuration_Pragma,
                                   Used => Inside_A_Generic or else In_Instance);
  
*************** package body Sem_Prag is
*** 27606,27618 ****
        --  Start of processing for Check_Dependency_Clause
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             return;
-          end if;
- 
           --  Examine all refinement clauses and compare them against the
           --  dependence clause.
  
--- 28609,28614 ----
*************** package body Sem_Prag is
*** 27866,27881 ****
        --  Start of processing for Check_Output_States
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             null;
- 
           --  Inspect the outputs of pragma Depends looking for a state with a
           --  visible refinement.
  
!          elsif Present (Spec_Outputs) then
              Item_Elmt := First_Elmt (Spec_Outputs);
              while Present (Item_Elmt) loop
                 Item := Node (Item_Elmt);
--- 28862,28871 ----
        --  Start of processing for Check_Output_States
  
        begin
           --  Inspect the outputs of pragma Depends looking for a state with a
           --  visible refinement.
  
!          if Present (Spec_Outputs) then
              Item_Elmt := First_Elmt (Spec_Outputs);
              while Present (Item_Elmt) loop
                 Item := Node (Item_Elmt);
*************** package body Sem_Prag is
*** 28217,28238 ****
           Clause : Node_Id;
  
        begin
!          --  Do not perform this check in an instance because it was already
!          --  performed successfully in the generic template.
! 
!          if In_Instance then
!             null;
! 
!          elsif Present (Clauses) then
!             Clause := First (Clauses);
!             while Present (Clause) loop
!                SPARK_Msg_N
!                  ("unmatched or extra clause in dependence refinement",
!                   Clause);
  
!                Next (Clause);
!             end loop;
!          end if;
        end Report_Extra_Clauses;
  
        --  Local variables
--- 29207,29219 ----
           Clause : Node_Id;
  
        begin
!          Clause := First (Clauses);
!          while Present (Clause) loop
!             SPARK_Msg_N
!               ("unmatched or extra clause in dependence refinement", Clause);
  
!             Next (Clause);
!          end loop;
        end Report_Extra_Clauses;
  
        --  Local variables
*************** package body Sem_Prag is
*** 28325,28330 ****
--- 29306,29318 ----
  
        Analyze_Depends_In_Decl_Part (N);
  
+       --  Do not perform these checks in an instance because they were already
+       --  performed successfully in the generic template.
+ 
+       if In_Instance then
+          goto Leave;
+       end if;
+ 
        --  Do not match dependencies against refinements if Refined_Depends is
        --  illegal to avoid emitting misleading error.
  
*************** package body Sem_Prag is
*** 28668,28683 ****
        --  Start of processing for Check_In_Out_States
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             null;
- 
           --  Inspect the In_Out items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          elsif Has_In_Out_State and then Present (In_Out_Items) then
              Item_Elmt := First_Elmt (In_Out_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
--- 29656,29665 ----
        --  Start of processing for Check_In_Out_States
  
        begin
           --  Inspect the In_Out items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          if Has_In_Out_State and then Present (In_Out_Items) then
              Item_Elmt := First_Elmt (In_Out_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
*************** package body Sem_Prag is
*** 28777,28792 ****
        --  Start of processing for Check_Input_States
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             null;
- 
           --  Inspect the Input items of the corresponding Global pragma looking
           --  for a state with a visible refinement.
  
!          elsif Has_In_State and then Present (In_Items) then
              Item_Elmt := First_Elmt (In_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
--- 29759,29768 ----
        --  Start of processing for Check_Input_States
  
        begin
           --  Inspect the Input items of the corresponding Global pragma looking
           --  for a state with a visible refinement.
  
!          if Has_In_State and then Present (In_Items) then
              Item_Elmt := First_Elmt (In_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
*************** package body Sem_Prag is
*** 28900,28915 ****
        --  Start of processing for Check_Output_States
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             null;
- 
           --  Inspect the Output items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          elsif Has_Out_State and then Present (Out_Items) then
              Item_Elmt := First_Elmt (Out_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
--- 29876,29885 ----
        --  Start of processing for Check_Output_States
  
        begin
           --  Inspect the Output items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          if Has_Out_State and then Present (Out_Items) then
              Item_Elmt := First_Elmt (Out_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
*************** package body Sem_Prag is
*** 29006,29021 ****
        --  Start of processing for Check_Proof_In_States
  
        begin
-          --  Do not perform this check in an instance because it was already
-          --  performed successfully in the generic template.
- 
-          if In_Instance then
-             null;
- 
           --  Inspect the Proof_In items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          elsif Has_Proof_In_State and then Present (Proof_In_Items) then
              Item_Elmt := First_Elmt (Proof_In_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
--- 29976,29985 ----
        --  Start of processing for Check_Proof_In_States
  
        begin
           --  Inspect the Proof_In items of the corresponding Global pragma
           --  looking for a state with a visible refinement.
  
!          if Has_Proof_In_State and then Present (Proof_In_Items) then
              Item_Elmt := First_Elmt (Proof_In_Items);
              while Present (Item_Elmt) loop
                 Item_Id := Node (Item_Elmt);
*************** package body Sem_Prag is
*** 29170,29182 ****
        --  Start of processing for Check_Refined_Global_List
  
        begin
!          --  Do not perform this check in an instance because it was already
!          --  performed successfully in the generic template.
! 
!          if In_Instance then
!             null;
! 
!          elsif Nkind (List) = N_Null then
              null;
  
           --  Single global item declaration
--- 30134,30140 ----
        --  Start of processing for Check_Refined_Global_List
  
        begin
!          if Nkind (List) = N_Null then
              null;
  
           --  Single global item declaration
*************** package body Sem_Prag is
*** 29421,29438 ****
        --  Start of processing for Report_Extra_Constituents
  
        begin
!          --  Do not perform this check in an instance because it was already
!          --  performed successfully in the generic template.
! 
!          if In_Instance then
!             null;
! 
!          else
!             Report_Extra_Constituents_In_List (In_Constits);
!             Report_Extra_Constituents_In_List (In_Out_Constits);
!             Report_Extra_Constituents_In_List (Out_Constits);
!             Report_Extra_Constituents_In_List (Proof_In_Constits);
!          end if;
        end Report_Extra_Constituents;
  
        --------------------------
--- 30379,30388 ----
        --  Start of processing for Report_Extra_Constituents
  
        begin
!          Report_Extra_Constituents_In_List (In_Constits);
!          Report_Extra_Constituents_In_List (In_Out_Constits);
!          Report_Extra_Constituents_In_List (Out_Constits);
!          Report_Extra_Constituents_In_List (Proof_In_Constits);
        end Report_Extra_Constituents;
  
        --------------------------
*************** package body Sem_Prag is
*** 29444,29464 ****
           Item_Id   : Entity_Id;
  
        begin
!          --  Do not perform this check in an instance because it was already
!          --  performed successfully in the generic template.
! 
!          if In_Instance then
!             null;
! 
!          else
!             if Present (Repeat_Items) then
!                Item_Elmt := First_Elmt (Repeat_Items);
!                while Present (Item_Elmt) loop
!                   Item_Id := Node (Item_Elmt);
!                   SPARK_Msg_NE ("missing global item &", N, Item_Id);
!                   Next_Elmt (Item_Elmt);
!                end loop;
!             end if;
           end if;
        end Report_Missing_Items;
  
--- 30394,30406 ----
           Item_Id   : Entity_Id;
  
        begin
!          if Present (Repeat_Items) then
!             Item_Elmt := First_Elmt (Repeat_Items);
!             while Present (Item_Elmt) loop
!                Item_Id := Node (Item_Elmt);
!                SPARK_Msg_NE ("missing global item &", N, Item_Id);
!                Next_Elmt (Item_Elmt);
!             end loop;
           end if;
        end Report_Missing_Items;
  
*************** package body Sem_Prag is
*** 29559,29564 ****
--- 30501,30513 ----
  
        Analyze_Global_In_Decl_Part (N);
  
+       --  Do not perform these checks in an instance because they were already
+       --  performed successfully in the generic template.
+ 
+       if In_Instance then
+          goto Leave;
+       end if;
+ 
        --  Perform all refinement checks with respect to completeness and mode
        --  matching.
  
*************** package body Sem_Prag is
*** 29627,29633 ****
        --  in the generic template.
  
        if Serious_Errors_Detected = Errors
-         and then not In_Instance
          and then not Has_Null_State
          and then No_Constit
        then
--- 30576,30581 ----
*************** package body Sem_Prag is
*** 29759,29765 ****
  
                 begin
                    --  The Ghost policy in effect at the point of abstract state
!                   --  declaration and constituent must match (SPARK RM 6.9(15))
  
                    Check_Ghost_Refinement
                      (State, State_Id, Constit, Constit_Id);
--- 30707,30713 ----
  
                 begin
                    --  The Ghost policy in effect at the point of abstract state
!                   --  declaration and constituent must match (SPARK RM 6.9(17))
  
                    Check_Ghost_Refinement
                      (State, State_Id, Constit, Constit_Id);
*************** package body Sem_Prag is
*** 30504,30510 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression, but without enforcing any of the two
           --  acceptable types.
  
           Preanalyze_Assert_Expression (Expr);
--- 31452,31458 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression, but without enforcing any of the
           --  acceptable types.
  
           Preanalyze_Assert_Expression (Expr);
*************** package body Sem_Prag is
*** 30524,30529 ****
--- 31472,31479 ----
             Is_RTE (Base_Type (Etype (Expr)), RE_Big_Integer)
               or else
             Is_RTE (Base_Type (Etype (Expr)), RO_GH_Big_Integer)
+              or else
+            Is_RTE (Base_Type (Etype (Expr)), RO_SP_Big_Integer)
           then
              if Chars (Direction) = Name_Increases then
                 Error_Msg_N
*************** package body Sem_Prag is
*** 30816,30822 ****
        Loc        : constant Source_Ptr := Sloc (Prag);
        Prag_Nam   : constant Name_Id    := Pragma_Name (Prag);
        Check_Prag : Node_Id;
-       Msg_Arg    : Node_Id;
        Nam        : Name_Id;
  
     --  Start of processing for Build_Pragma_Check_Equivalent
--- 31766,31771 ----
*************** package body Sem_Prag is
*** 30901,30923 ****
               Expression => Make_Identifier (Loc, Nam)));
        end if;
  
-       --  Update the error message when the pragma is inherited
- 
-       if Present (Inher_Id) then
-          Msg_Arg := Last (Pragma_Argument_Associations (Check_Prag));
- 
-          if Chars (Msg_Arg) = Name_Message then
-             String_To_Name_Buffer (Strval (Expression (Msg_Arg)));
- 
-             --  Insert "inherited" to improve the error message
- 
-             if Name_Buffer (1 .. 8) = "failed p" then
-                Insert_Str_In_Name_Buffer ("inherited ", 8);
-                Set_Strval (Expression (Msg_Arg), String_From_Name_Buffer);
-             end if;
-          end if;
-       end if;
- 
        return Check_Prag;
     end Build_Pragma_Check_Equivalent;
  
--- 31850,31855 ----
*************** package body Sem_Prag is
*** 31653,31666 ****
           while Present (Formal) loop
              if Ekind (Formal) in E_In_Out_Parameter | E_In_Parameter then
                 Append_New_Elmt (Formal, Subp_Inputs);
              end if;
  
              if Ekind (Formal) in E_In_Out_Parameter | E_Out_Parameter then
                 Append_New_Elmt (Formal, Subp_Outputs);
  
                 --  OUT parameters can act as inputs when the related type is
!                --  tagged, unconstrained array, unconstrained record, or record
!                --  with unconstrained components.
  
                 if Ekind (Formal) = E_Out_Parameter
                   and then Is_Unconstrained_Or_Tagged_Item (Formal)
--- 32585,32609 ----
           while Present (Formal) loop
              if Ekind (Formal) in E_In_Out_Parameter | E_In_Parameter then
                 Append_New_Elmt (Formal, Subp_Inputs);
+ 
+                --  IN parameters of procedures and protected entries can act as
+                --  outputs when the related type is access-to-variable.
+ 
+                if Ekind (Formal) = E_In_Parameter
+                  and then (Ekind (Spec_Id) not in E_Function
+                                                 | E_Generic_Function
+                              or else Is_Function_With_Side_Effects (Spec_Id))
+                  and then Is_Access_Variable (Etype (Formal))
+                then
+                   Append_New_Elmt (Formal, Subp_Outputs);
+                end if;
              end if;
  
              if Ekind (Formal) in E_In_Out_Parameter | E_Out_Parameter then
                 Append_New_Elmt (Formal, Subp_Outputs);
  
                 --  OUT parameters can act as inputs when the related type is
!                --  tagged, unconstrained array or unconstrained record.
  
                 if Ekind (Formal) = E_Out_Parameter
                   and then Is_Unconstrained_Or_Tagged_Item (Formal)
*************** package body Sem_Prag is
*** 31669,31685 ****
                 end if;
              end if;
  
-             --  IN parameters of procedures and protected entries can act as
-             --  outputs when the related type is access-to-variable.
- 
-             if Ekind (Formal) = E_In_Parameter
-               and then Ekind (Spec_Id) not in E_Function
-                                             | E_Generic_Function
-               and then Is_Access_Variable (Etype (Formal))
-             then
-                Append_New_Elmt (Formal, Subp_Outputs);
-             end if;
- 
              Next_Formal (Formal);
           end loop;
  
--- 32612,32617 ----
*************** package body Sem_Prag is
*** 31985,31997 ****
        Stmt := Prev (Prag);
        while Present (Stmt) loop
  
!          --  Skip prior pragmas, but check for duplicates. Pragmas produced
!          --  by splitting a complex pre/postcondition are not considered to
!          --  be duplicates.
  
           if Nkind (Stmt) = N_Pragma then
              if Do_Checks
-               and then not Split_PPC (Stmt)
                and then Original_Aspect_Pragma_Name (Stmt) = Prag_Nam
              then
                 Duplication_Error
--- 32917,32926 ----
        Stmt := Prev (Prag);
        while Present (Stmt) loop
  
!          --  Skip prior pragmas, but check for duplicates
  
           if Nkind (Stmt) = N_Pragma then
              if Do_Checks
                and then Original_Aspect_Pragma_Name (Stmt) = Prag_Nam
              then
                 Duplication_Error
*************** package body Sem_Prag is
*** 32606,32617 ****
--- 33535,33548 ----
        Pragma_Eliminate                      =>  0,
        Pragma_Enable_Atomic_Synchronization  =>  0,
        Pragma_Exceptional_Cases              => -1,
+       Pragma_Exit_Cases                     => -1,
        Pragma_Export                         => -1,
        Pragma_Export_Function                => -1,
        Pragma_Export_Object                  => -1,
        Pragma_Export_Procedure               => -1,
        Pragma_Export_Valued_Procedure        => -1,
        Pragma_Extend_System                  => -1,
+       Pragma_Extended_Access                =>  0,
        Pragma_Extensions_Allowed             =>  0,
        Pragma_Extensions_Visible             =>  0,
        Pragma_External                       => -1,
*************** package body Sem_Prag is
*** 32619,32624 ****
--- 33550,33556 ----
        Pragma_Fast_Math                      =>  0,
        Pragma_Favor_Top_Level                =>  0,
        Pragma_Finalize_Storage_Only          =>  0,
+       Pragma_First_Controlling_Parameter    =>  0,
        Pragma_Ghost                          =>  0,
        Pragma_Global                         => -1,
        Pragma_GNAT_Annotate                  => 93,
*************** package body Sem_Prag is
*** 32664,32670 ****
        Pragma_Machine_Attribute              => -1,
        Pragma_Main                           => -1,
        Pragma_Main_Storage                   => -1,
-       Pragma_Max_Entry_Queue_Depth          =>  0,
        Pragma_Max_Entry_Queue_Length         =>  0,
        Pragma_Max_Queue_Length               =>  0,
        Pragma_Memory_Size                    =>  0,
--- 33596,33601 ----
*************** package body Sem_Prag is
*** 32674,32681 ****
--- 33605,33614 ----
        Pragma_No_Elaboration_Code_All        =>  0,
        Pragma_No_Heap_Finalization           =>  0,
        Pragma_No_Inline                      =>  0,
+       Pragma_No_Raise                       =>  0,
        Pragma_No_Return                      =>  0,
        Pragma_No_Run_Time                    => -1,
+       Pragma_Interrupts_System_By_Default   =>  0,
        Pragma_No_Strict_Aliasing             => -1,
        Pragma_No_Tagged_Streams              =>  0,
        Pragma_Normalize_Scalars              =>  0,
*************** package body Sem_Prag is
*** 32734,32739 ****
--- 33667,33673 ----
        Pragma_Shared_Passive                 =>  0,
        Pragma_Short_Circuit_And_Or           =>  0,
        Pragma_Short_Descriptors              =>  0,
+       Pragma_Simulate_Internal_Error        =>  0,
        Pragma_Simple_Storage_Pool_Type       =>  0,
        Pragma_Source_File_Name               =>  0,
        Pragma_Source_File_Name_Project       =>  0,
*************** package body Sem_Prag is
*** 32949,32980 ****
            and then List_Containing (N) = Private_Declarations (Parent (N));
     end Is_Private_SPARK_Mode;
  
-    -------------------------------------
-    -- Is_Unconstrained_Or_Tagged_Item --
-    -------------------------------------
- 
-    function Is_Unconstrained_Or_Tagged_Item
-      (Item : Entity_Id) return Boolean
-    is
-       Typ : constant Entity_Id := Etype (Item);
-    begin
-       if Is_Tagged_Type (Typ) then
-          return True;
- 
-       elsif Is_Array_Type (Typ) and then not Is_Constrained (Typ) then
-          return True;
- 
-       elsif Is_Record_Type (Typ) then
-          return Has_Discriminants (Typ) and then not Is_Constrained (Typ);
- 
-       elsif Is_Private_Type (Typ) and then Has_Discriminants (Typ) then
-          return True;
- 
-       else
-          return False;
-       end if;
-    end Is_Unconstrained_Or_Tagged_Item;
- 
     -----------------------------
     -- Is_Valid_Assertion_Kind --
     -----------------------------
--- 33883,33888 ----
*************** package body Sem_Prag is
*** 33010,33016 ****
--- 33918,33926 ----
              | Name_Loop_Invariant
              | Name_Loop_Variant
              | Name_Postcondition
+             | Name_Post_Class
              | Name_Precondition
+             | Name_Pre_Class
              | Name_Predicate
              | Name_Refined_Post
              | Name_Statement_Assertions
*************** package body Sem_Prag is
*** 33138,33148 ****
                    if Force then
                       if Cont = False then
                          Error_Msg
!                            ("<<~!!", Eloc, Is_Compile_Time_Pragma => True);
                          Cont := True;
                       else
                          Error_Msg
!                            ("\<<~!!", Eloc, Is_Compile_Time_Pragma => True);
                       end if;
  
                    --  Error, rather than warning, or in a body, so we do not
--- 34048,34058 ----
                    if Force then
                       if Cont = False then
                          Error_Msg
!                            ("<<~!!", Eloc, N, Is_Compile_Time_Pragma => True);
                          Cont := True;
                       else
                          Error_Msg
!                            ("\<<~!!", Eloc, N, Is_Compile_Time_Pragma => True);
                       end if;
  
                    --  Error, rather than warning, or in a body, so we do not
*************** package body Sem_Prag is
*** 33154,33164 ****
                    else
                       if Cont = False then
                          Error_Msg
!                            ("<<~", Eloc, Is_Compile_Time_Pragma => True);
                          Cont := True;
                       else
                          Error_Msg
!                            ("\<<~", Eloc, Is_Compile_Time_Pragma => True);
                       end if;
                    end if;
  
--- 34064,34074 ----
                    else
                       if Cont = False then
                          Error_Msg
!                            ("<<~", Eloc, N, Is_Compile_Time_Pragma => True);
                          Cont := True;
                       else
                          Error_Msg
!                            ("\<<~", Eloc, N, Is_Compile_Time_Pragma => True);
                       end if;
                    end if;
  
*************** package body Sem_Prag is
*** 33433,33443 ****
                 State := Homonym (State);
              end loop;
  
!             --  A function can never act as a state. If the homonym chain does
!             --  not contain a corresponding state, then something went wrong in
!             --  the overloading mechanism.
! 
!             raise Program_Error;
           end if;
        end if;
     end Resolve_State;
--- 34343,34349 ----
                 State := Homonym (State);
              end loop;
  
!             --  A function can never act as a state; it will be diagnosed later
           end if;
        end if;
     end Resolve_State;
*************** package body Sem_Prag is
*** 33487,33493 ****
              Error_Msg_N ("Check_Policy is a non-standard pragma??", N);
              Error_Msg_N
                ("\use Assertion_Policy and aspect names Pre/Post for "
!                & "Ada2012 conformance?", N);
           end if;
  
           return;
--- 34393,34399 ----
              Error_Msg_N ("Check_Policy is a non-standard pragma??", N);
              Error_Msg_N
                ("\use Assertion_Policy and aspect names Pre/Post for "
!                & "Ada2012 conformance??", N);
           end if;
  
           return;
*************** package body Sem_Prag is
*** 33812,33818 ****
        --  as 0.
  
        if not In_Extended_Main_Code_Unit (N) then
!          Insert_Library_Level_Action (New_Copy_Tree (N));
        end if;
     end Defer_Compile_Time_Warning_Error_To_BE;
  
--- 34718,34740 ----
        --  as 0.
  
        if not In_Extended_Main_Code_Unit (N) then
!          --  We've created an Itype for the string in this pragma and
!          --  may have made other Itypes. When we copy the entire tree
!          --  of this pragma, we'll make a second copy of them in its
!          --  unit, which will mess up the numbering of the remaining
!          --  internal names.
! 
!          declare
!             Saved_Current_Sem_Unit : constant Unit_Number_Type :=
!               Current_Sem_Unit;
!             New_N                  : Node_Id;
! 
!          begin
!             Current_Sem_Unit := Main_Unit;
!             New_N := New_Copy_Tree (N);
!             Current_Sem_Unit := Saved_Current_Sem_Unit;
!             Insert_Library_Level_Action (New_N);
!          end;
        end if;
     end Defer_Compile_Time_Warning_Error_To_BE;
  
*************** package body Sem_Prag is
*** 33856,33862 ****
     --  Start of processing for Validate_Compile_Time_Warning_Errors
  
     begin
- 
        --  These error/warning messages were deferred because they could not be
        --  evaluated in the front-end and they needed additional information
        --  from the back-end. There is no reason to run these checks again if
--- 34778,34783 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_prag.ads gcc-15.1.0/gcc/ada/sem_prag.ads
*** gcc-14.2.0/gcc/ada/sem_prag.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_prag.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Prag is
*** 62,69 ****
--- 62,71 ----
        Pragma_Elaborate_Body               => True,
        Pragma_Exceptional_Cases            => True,
        Pragma_Export                       => True,
+       Pragma_Extended_Access              => True,
        Pragma_Extensions_Visible           => True,
        Pragma_Favor_Top_Level              => True,
+       Pragma_First_Controlling_Parameter  => True,
        Pragma_Ghost                        => True,
        Pragma_Global                       => True,
        Pragma_GNAT_Annotate                => True,
*************** package Sem_Prag is
*** 216,221 ****
--- 218,224 ----
        Pragma_Contract_Cases      => True,
        Pragma_Depends             => True,
        Pragma_Exceptional_Cases   => True,
+       Pragma_Extensions_Visible  => True,
        Pragma_Ghost               => True,
        Pragma_Global              => True,
        Pragma_Inline              => True,
*************** package Sem_Prag is
*** 238,243 ****
--- 241,255 ----
        Pragma_Volatile_Function   => True,
        others                     => False);
  
+    --  The following table lists all pragmas which are relevant to the analysis
+    --  of subprogram bodies and should be analyzed first, because the analysis
+    --  of other pragmas relevant to subprogram bodies depend on them.
+ 
+    Pragma_Significant_To_Subprograms_Analyzed_First :
+      constant array (Pragma_Id) of Boolean :=
+      (Pragma_Extensions_Visible => True,
+       others                    => False);
+ 
     -----------------
     -- Subprograms --
     -----------------
*************** package Sem_Prag is
*** 274,279 ****
--- 286,298 ----
     --  the entity of [generic] package body or [generic] subprogram body which
     --  caused "freezing" of the related contract where the pragma resides.
  
+    procedure Analyze_Exit_Cases_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty);
+    --  Perform full analysis of delayed pragma Exit_Cases. Freeze_Id is the
+    --  entity of [generic] package body or [generic] subprogram body which
+    --  caused "freezing" of the related contract where the pragma resides.
+ 
     procedure Analyze_External_Property_In_Decl_Part
       (N        : Node_Id;
        Expr_Val : out Boolean);
*************** package Sem_Prag is
*** 467,473 ****
     --    Extensions_Visible
     --    Global
     --    Initializes
-    --    Max_Entry_Queue_Depth
     --    Max_Entry_Queue_Length
     --    Max_Queue_Length
     --    Post
--- 486,491 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_res.adb gcc-15.1.0/gcc/ada/sem_res.adb
*** gcc-14.2.0/gcc/ada/sem_res.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_res.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Itypes;         use Itypes;
*** 47,52 ****
--- 47,53 ----
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
  with Local_Restrict;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nmake;          use Nmake;
  with Nlists;         use Nlists;
*************** with Sinfo;          use Sinfo;
*** 83,88 ****
--- 84,90 ----
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
+ with Sinput;         use Sinput;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
*************** package body Sem_Res is
*** 143,152 ****
     --  for restriction No_Direct_Boolean_Operators. This procedure also handles
     --  the style check for Style_Check_Boolean_And_Or.
  
!    function Is_Atomic_Ref_With_Address (N : Node_Id) return Boolean;
!    --  N is either an indexed component or a selected component. This function
!    --  returns true if the prefix denotes an atomic object that has an address
!    --  clause (the case in which we may want to issue a warning).
  
     function Is_Definite_Access_Type (E : N_Entity_Id) return Boolean;
     --  Determine whether E is an access type declared by an access declaration,
--- 145,154 ----
     --  for restriction No_Direct_Boolean_Operators. This procedure also handles
     --  the style check for Style_Check_Boolean_And_Or.
  
!    function Is_Atomic_Non_VFA_Ref_With_Address (N : Node_Id) return Boolean;
!    --  N is either an indexed component or a selected component. Return true
!    --  if the prefix denotes an Atomic but not Volatile_Full_Access object that
!    --  has an address clause (the case in which we may want to give a warning).
  
     function Is_Definite_Access_Type (E : N_Entity_Id) return Boolean;
     --  Determine whether E is an access type declared by an access declaration,
*************** package body Sem_Res is
*** 162,178 ****
     --  a call, so such an operator is not treated as predefined by this
     --  predicate.
  
!    procedure Preanalyze_And_Resolve
!      (N             : Node_Id;
!       T             : Entity_Id;
!       With_Freezing : Boolean);
!    --  Subsidiary of public versions of Preanalyze_And_Resolve.
  
     procedure Replace_Actual_Discriminants (N : Node_Id; Default : Node_Id);
     --  If a default expression in entry call N depends on the discriminants
     --  of the task, it must be replaced with a reference to the discriminant
     --  of the task being called.
  
     procedure Resolve_Dependent_Expression
       (N    : Node_Id;
        Expr : Node_Id;
--- 164,200 ----
     --  a call, so such an operator is not treated as predefined by this
     --  predicate.
  
!    function Original_Implementation_Base_Type
!      (Id : Entity_Id) return Entity_Id;
!    --  Like Implementation_Base_Type, but looks at Original_Node.
  
     procedure Replace_Actual_Discriminants (N : Node_Id; Default : Node_Id);
     --  If a default expression in entry call N depends on the discriminants
     --  of the task, it must be replaced with a reference to the discriminant
     --  of the task being called.
  
+    procedure Report_Error_N
+      (Msg         : String;
+       N           : Node_Or_Entity_Id;
+       Report_Errs : Boolean := True);
+    --  If Report_Errs, then calls Errout.Error_Msg_N with its arguments
+ 
+    procedure Report_Error_NE
+      (Msg         : String;
+       N           : Node_Or_Entity_Id;
+       E           : Node_Or_Entity_Id;
+       Report_Errs : Boolean := True);
+    --  If Report_Errs, then calls Errout.Error_Msg_NE with its arguments
+ 
+    procedure Report_Interpretation
+      (N   : Node_Id;
+       Nam : Entity_Id;
+       Typ : Entity_Id);
+    --  Report that Nam is an interpretation for node N. When calling a
+    --  standard operator, use the location of the type Typ to report the
+    --  interpretation, as it may be user-defined thus therefore more
+    --  user-friendly.
+ 
     procedure Resolve_Dependent_Expression
       (N    : Node_Id;
        Expr : Node_Id;
*************** package body Sem_Res is
*** 208,213 ****
--- 230,236 ----
     procedure Resolve_Equality_Op               (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Explicit_Dereference      (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Expression_With_Actions   (N : Node_Id; Typ : Entity_Id);
+    procedure Resolve_External_Initializer      (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_If_Expression             (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Generalized_Indexing      (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Indexed_Component         (N : Node_Id; Typ : Entity_Id);
*************** package body Sem_Res is
*** 235,241 ****
     procedure Resolve_Target_Name               (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Type_Conversion           (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Unary_Op                  (N : Node_Id; Typ : Entity_Id);
-    procedure Resolve_Unchecked_Expression      (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Unchecked_Type_Conversion (N : Node_Id; Typ : Entity_Id);
  
     function Operator_Kind
--- 258,263 ----
*************** package body Sem_Res is
*** 293,300 ****
  
     procedure Set_String_Literal_Subtype (N : Node_Id; Typ : Entity_Id);
     --  The String_Literal_Subtype is built for all strings that are not
!    --  operands of a static concatenation operation. If the argument is not
!    --  a N_String_Literal node, then the call has no effect.
  
     procedure Set_Slice_Subtype (N : Node_Id);
     --  Build subtype of array type, with the range specified by the slice
--- 315,324 ----
  
     procedure Set_String_Literal_Subtype (N : Node_Id; Typ : Entity_Id);
     --  The String_Literal_Subtype is built for all strings that are not
!    --  operands of a static concatenation operation. It is also built for
!    --  expressions generated by the expansion of the External_Initialization
!    --  aspect. If the argument is not an N_String_Literal node or an
!    --  N_External_Initializer node, then the call has no effect.
  
     procedure Set_Slice_Subtype (N : Node_Id);
     --  Build subtype of array type, with the range specified by the slice
*************** package body Sem_Res is
*** 462,468 ****
        Literal_Aspect_Map :
          constant array (N_Numeric_Or_String_Literal) of Aspect_Id :=
            (N_Integer_Literal             => Aspect_Integer_Literal,
!            N_Interpolated_String_Literal => No_Aspect,
             N_Real_Literal                => Aspect_Real_Literal,
             N_String_Literal              => Aspect_String_Literal);
  
--- 486,492 ----
        Literal_Aspect_Map :
          constant array (N_Numeric_Or_String_Literal) of Aspect_Id :=
            (N_Integer_Literal             => Aspect_Integer_Literal,
!            N_Interpolated_String_Literal => Aspect_String_Literal,
             N_Real_Literal                => Aspect_Real_Literal,
             N_String_Literal              => Aspect_String_Literal);
  
*************** package body Sem_Res is
*** 482,487 ****
--- 506,512 ----
  
     begin
        if (Nkind (N) in N_Numeric_Or_String_Literal
+                      | N_Interpolated_String_Literal
             and then Present
              (Find_Aspect (Typ, Literal_Aspect_Map (Nkind (N)))))
          or else
*************** package body Sem_Res is
*** 500,510 ****
             Entity (Expression (Find_Aspect (Typ, Lit_Aspect)));
           Name := Make_Identifier (Loc, Chars (Callee));
  
!          if Is_Derived_Type (Typ)
!            and then Base_Type (Etype (Callee)) /= Base_Type (Typ)
!          then
              Callee :=
!               Corresponding_Primitive_Op
                  (Ancestor_Op     => Callee,
                   Descendant_Type => Base_Type (Typ));
           end if;
--- 525,540 ----
             Entity (Expression (Find_Aspect (Typ, Lit_Aspect)));
           Name := Make_Identifier (Loc, Chars (Callee));
  
!          --  It seems that we shouldn't need to retrieve the corresponding
!          --  primitive for a derived type at this point, because it should
!          --  have been determined earlier by Inherit_Nonoverridable_Aspects,
!          --  but the wrapper function created for a literal function when the
!          --  type is frozen gets created too late, so we search again at this
!          --  point. Would be nice to find a way to avoid this. ???
! 
!          if Is_Derived_Type (Typ) then
              Callee :=
!               Corresponding_Op_Of_Derived_Type
                  (Ancestor_Op     => Callee,
                   Descendant_Type => Base_Type (Typ));
           end if;
*************** package body Sem_Res is
*** 558,563 ****
--- 588,597 ----
              Param1 := Make_String_Literal (Loc, Strval (N));
              Params := New_List (Param1);
  
+          elsif Nkind (N) = N_Interpolated_String_Literal then
+             Param1 := New_Copy_Tree (N);
+             Params := New_List (Param1);
+ 
           else
              Param1 :=
                Make_String_Literal
*************** package body Sem_Res is
*** 1476,1503 ****
        end if;
     end Check_Parameterless_Call;
  
!    --------------------------------
!    -- Is_Atomic_Ref_With_Address --
!    --------------------------------
  
!    function Is_Atomic_Ref_With_Address (N : Node_Id) return Boolean is
        Pref : constant Node_Id := Prefix (N);
  
!    begin
!       if not Is_Entity_Name (Pref) then
!          return False;
  
!       else
           declare
              Pent : constant Entity_Id := Entity (Pref);
              Ptyp : constant Entity_Id := Etype (Pent);
           begin
              return not Is_Access_Type (Ptyp)
!               and then (Is_Atomic (Ptyp) or else Is_Atomic (Pent))
                and then Present (Address_Clause (Pent));
           end;
        end if;
!    end Is_Atomic_Ref_With_Address;
  
     -----------------------------
     -- Is_Definite_Access_Type --
--- 1510,1551 ----
        end if;
     end Check_Parameterless_Call;
  
!    ----------------------------------------
!    -- Is_Atomic_Non_VFA_Ref_With_Address --
!    ----------------------------------------
  
!    function Is_Atomic_Non_VFA_Ref_With_Address (N : Node_Id) return Boolean is
        Pref : constant Node_Id := Prefix (N);
  
!       function Is_Atomic_Non_VFA (E : Entity_Id) return Boolean;
!       --  Return true if E is Atomic but not Volatile_Full_Access
  
!       -----------------------
!       -- Is_Atomic_Non_VFA --
!       -----------------------
! 
!       function Is_Atomic_Non_VFA (E : Entity_Id) return Boolean is
!       begin
!          return Is_Atomic (E) and then not Is_Volatile_Full_Access (E);
!       end Is_Atomic_Non_VFA;
! 
!    begin
!       if Is_Entity_Name (Pref) then
           declare
              Pent : constant Entity_Id := Entity (Pref);
              Ptyp : constant Entity_Id := Etype (Pent);
+ 
           begin
              return not Is_Access_Type (Ptyp)
!               and then (Is_Atomic_Non_VFA (Ptyp)
!                          or else Is_Atomic_Non_VFA (Pent))
                and then Present (Address_Clause (Pent));
           end;
+ 
+       else
+          return False;
        end if;
!    end Is_Atomic_Non_VFA_Ref_With_Address;
  
     -----------------------------
     -- Is_Definite_Access_Type --
*************** package body Sem_Res is
*** 1561,1567 ****
        --  expanded name, verify that the operand has an interpretation with a
        --  type defined in the given scope of the operator.
  
!       function Type_In_P (Test : Kind_Test) return Entity_Id;
        --  Find a type of the given class in package Pack that contains the
        --  operator.
  
--- 1609,1615 ----
        --  expanded name, verify that the operand has an interpretation with a
        --  type defined in the given scope of the operator.
  
!       function Type_In_P (Test : not null Kind_Test) return Entity_Id;
        --  Find a type of the given class in package Pack that contains the
        --  operator.
  
*************** package body Sem_Res is
*** 1596,1602 ****
        -- Type_In_P --
        ---------------
  
!       function Type_In_P (Test : Kind_Test) return Entity_Id is
           E : Entity_Id;
  
           function In_Decl return Boolean;
--- 1644,1650 ----
        -- Type_In_P --
        ---------------
  
!       function Type_In_P (Test : not null Kind_Test) return Entity_Id is
           E : Entity_Id;
  
           function In_Decl return Boolean;
*************** package body Sem_Res is
*** 1609,1619 ****
  
           function In_Decl return Boolean is
              Decl_Node : constant Node_Id := Parent (E);
!             N2        : Node_Id;
  
           begin
-             N2 := N;
- 
              if Etype (E) = Any_Type then
                 return True;
  
--- 1657,1665 ----
  
           function In_Decl return Boolean is
              Decl_Node : constant Node_Id := Parent (E);
!             Context   : Node_Id;
  
           begin
              if Etype (E) = Any_Type then
                 return True;
  
*************** package body Sem_Res is
*** 1621,1633 ****
                 return False;
  
              else
!                while Present (N2)
!                  and then Nkind (N2) /= N_Compilation_Unit
                 loop
!                   if N2 = Decl_Node then
                       return True;
                    else
!                      N2 := Parent (N2);
                    end if;
                 end loop;
  
--- 1667,1681 ----
                 return False;
  
              else
!                Context := N;
! 
!                while Present (Context)
!                  and then Nkind (Context) /= N_Compilation_Unit
                 loop
!                   if Context = Decl_Node then
                       return True;
                    else
!                      Context := Parent (Context);
                    end if;
                 end loop;
  
*************** package body Sem_Res is
*** 1884,1890 ****
           end if;
        end if;
  
!       Set_Chars  (Op_Node, Op_Name);
  
        if not Is_Private_Type (Etype (N)) then
           Set_Etype (Op_Node, Base_Type (Etype (N)));
--- 1932,1938 ----
           end if;
        end if;
  
!       Set_Chars (Op_Node, Op_Name);
  
        if not Is_Private_Type (Etype (N)) then
           Set_Etype (Op_Node, Base_Type (Etype (N)));
*************** package body Sem_Res is
*** 2013,2040 ****
        return Kind;
     end Operator_Kind;
  
     ----------------------------
     -- Preanalyze_And_Resolve --
     ----------------------------
  
!    procedure Preanalyze_And_Resolve
!      (N             : Node_Id;
!       T             : Entity_Id;
!       With_Freezing : Boolean)
!    is
!       Save_Full_Analysis     : constant Boolean := Full_Analysis;
!       Save_Must_Not_Freeze   : constant Boolean := Must_Not_Freeze (N);
!       Save_Preanalysis_Count : constant Nat :=
!                                  Inside_Preanalysis_Without_Freezing;
     begin
        pragma Assert (Nkind (N) in N_Subexpr);
  
-       if not With_Freezing then
-          Set_Must_Not_Freeze (N);
-          Inside_Preanalysis_Without_Freezing :=
-            Inside_Preanalysis_Without_Freezing + 1;
-       end if;
- 
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
--- 2061,2108 ----
        return Kind;
     end Operator_Kind;
  
+    ---------------------------------------
+    -- Original_Implementation_Base_Type --
+    ---------------------------------------
+ 
+    function Original_Implementation_Base_Type
+      (Id : Entity_Id) return Entity_Id
+    is
+       IBT       : constant Entity_Id := Implementation_Base_Type (Id);
+       IBT_Decl  : constant Node_Id := Parent (IBT);
+       Parent_Id : Node_Id;
+    begin
+       if Nkind (IBT_Decl) = N_Full_Type_Declaration
+         and then Original_Node (IBT_Decl) /= IBT_Decl
+         and then Nkind (Original_Node (IBT_Decl)) =
+                  N_Full_Type_Declaration
+         and then Nkind (Type_Definition (Original_Node (IBT_Decl)))
+                  = N_Derived_Type_Definition
+       then
+          Parent_Id := Subtype_Indication (Type_Definition
+                         (Original_Node (IBT_Decl)));
+ 
+          if Nkind (Parent_Id) = N_Subtype_Indication then
+             Parent_Id := Subtype_Mark (Parent_Id);
+          end if;
+ 
+          return Original_Implementation_Base_Type
+                   (Etype (Parent_Id));
+       else
+          return IBT;
+       end if;
+    end Original_Implementation_Base_Type;
+ 
     ----------------------------
     -- Preanalyze_And_Resolve --
     ----------------------------
  
!    procedure Preanalyze_And_Resolve (N : Node_Id; T : Entity_Id) is
!       Save_Full_Analysis : constant Boolean := Full_Analysis;
! 
     begin
        pragma Assert (Nkind (N) in N_Subexpr);
  
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
*************** package body Sem_Res is
*** 2067,2092 ****
  
        Expander_Mode_Restore;
        Full_Analysis := Save_Full_Analysis;
- 
-       if not With_Freezing then
-          Set_Must_Not_Freeze (N, Save_Must_Not_Freeze);
-          Inside_Preanalysis_Without_Freezing :=
-            Inside_Preanalysis_Without_Freezing - 1;
-       end if;
- 
-       pragma Assert
-         (Inside_Preanalysis_Without_Freezing = Save_Preanalysis_Count);
     end Preanalyze_And_Resolve;
  
     ----------------------------
     -- Preanalyze_And_Resolve --
     ----------------------------
  
-    procedure Preanalyze_And_Resolve (N : Node_Id; T : Entity_Id) is
-    begin
-       Preanalyze_And_Resolve (N, T, With_Freezing => False);
-    end Preanalyze_And_Resolve;
- 
     --  Version without context type
  
     procedure Preanalyze_And_Resolve (N : Node_Id) is
--- 2135,2146 ----
*************** package body Sem_Res is
*** 2103,2120 ****
        Full_Analysis := Save_Full_Analysis;
     end Preanalyze_And_Resolve;
  
-    ------------------------------------------
-    -- Preanalyze_With_Freezing_And_Resolve --
-    ------------------------------------------
- 
-    procedure Preanalyze_With_Freezing_And_Resolve
-      (N : Node_Id;
-       T : Entity_Id)
-    is
-    begin
-       Preanalyze_And_Resolve (N, T, With_Freezing => True);
-    end Preanalyze_With_Freezing_And_Resolve;
- 
     ----------------------------------
     -- Replace_Actual_Discriminants --
     ----------------------------------
--- 2157,2162 ----
*************** package body Sem_Res is
*** 2184,2189 ****
--- 2226,2295 ----
        end if;
     end Replace_Actual_Discriminants;
  
+    --------------------
+    -- Report_Error_N --
+    --------------------
+ 
+    procedure Report_Error_N
+      (Msg         : String;
+       N           : Node_Or_Entity_Id;
+       Report_Errs : Boolean := True) is
+    begin
+       if Report_Errs then
+          Error_Msg_N (Msg, N);
+       end if;
+    end Report_Error_N;
+ 
+    ---------------------
+    -- Report_Error_NE --
+    ---------------------
+ 
+    procedure Report_Error_NE
+      (Msg         : String;
+       N           : Node_Or_Entity_Id;
+       E           : Node_Or_Entity_Id;
+       Report_Errs : Boolean := True) is
+    begin
+       if Report_Errs then
+          Error_Msg_NE (Msg, N, E);
+       end if;
+    end Report_Error_NE;
+ 
+    ---------------------------
+    -- Report_Interpretation --
+    ---------------------------
+ 
+    procedure Report_Interpretation
+      (N   : Node_Id;
+       Nam : Entity_Id;
+       Typ : Entity_Id)
+    is
+       Insert_Location : constant String := "#";
+       Is_Inherited    : constant Boolean :=
+                           Nkind (Parent (Nam)) = N_Full_Type_Declaration;
+       Text_Base       : constant String := "\\possible interpretation";
+       Text_Inherited  : constant String := " (inherited)";
+       Uncond_Msg      : constant String := "!";
+ 
+    begin
+       --  If the interpretation involves a standard operator, we use the
+       --  location of the type, which may be user-defined.
+ 
+       if Sloc (Nam) = Standard_Location then
+          Error_Msg_Sloc := Sloc (Typ);
+       else
+          Error_Msg_Sloc := Sloc (Nam);
+       end if;
+ 
+       if Is_Inherited then
+          Error_Msg_N
+            (Text_Base & Text_Inherited & Insert_Location & Uncond_Msg, N);
+       else
+          Error_Msg_N -- CODEFIX
+            (Text_Base & Insert_Location & Uncond_Msg, N);
+       end if;
+    end Report_Interpretation;
+ 
     -------------
     -- Resolve --
     -------------
*************** package body Sem_Res is
*** 2290,2303 ****
  
              Get_First_Interp (Name (Arg), I, It);
              while Present (It.Nam) loop
!                Error_Msg_Sloc := Sloc (It.Nam);
! 
!                if Nkind (Parent (It.Nam)) = N_Full_Type_Declaration then
!                   Error_Msg_N ("interpretation (inherited) #!", Arg);
!                else
!                   Error_Msg_N ("interpretation #!", Arg);
!                end if;
! 
                 Get_Next_Interp (I, It);
              end loop;
           end if;
--- 2396,2402 ----
  
              Get_First_Interp (Name (Arg), I, It);
              while Present (It.Nam) loop
!                Report_Interpretation (Arg, It.Nam, It.Typ);
                 Get_Next_Interp (I, It);
              end loop;
           end if;
*************** package body Sem_Res is
*** 2501,2509 ****
--- 2600,2615 ----
           if Nkind (N) in N_Op and then No (Entity (N)) then
              pragma Assert (Ada_Version >= Ada_2022);
              Found := False;
+          elsif not Comes_From_Source (N) and then
+             Original_Implementation_Base_Type (Typ) =
+               Original_Implementation_Base_Type (Etype (N))
+          then
+             --  Ignore privacy for streaming or Put_Image routines
+             Found := True;
           else
              Found := Covers (Typ, Etype (N));
           end if;
+ 
           Expr_Type := Etype (N);
  
        --  In the overloaded case, we must select the interpretation that
*************** package body Sem_Res is
*** 2671,2683 ****
  
                          Ambiguous := True;
  
!                         if Nkind (Parent (Seen)) = N_Full_Type_Declaration then
!                            Error_Msg_N
!                              ("\\possible interpretation (inherited)#!", N);
!                         else
!                            Error_Msg_N -- CODEFIX
!                              ("\\possible interpretation#!", N);
!                         end if;
  
                          if Nkind (N) in N_Subprogram_Call
                            and then Present (Parameter_Associations (N))
--- 2777,2786 ----
  
                          Ambiguous := True;
  
!                         Report_Interpretation
!                           (N   => N,
!                            Nam => Seen,
!                            Typ => Etype (Seen));
  
                          if Nkind (N) in N_Subprogram_Call
                            and then Present (Parameter_Associations (N))
*************** package body Sem_Res is
*** 2760,2767 ****
                       elsif
                         Nkind (Parent (It.Nam)) = N_Full_Type_Declaration
                       then
!                         Error_Msg_N
!                           ("\\possible interpretation (inherited)#!", N);
                       else
                          Error_Msg_N -- CODEFIX
                            ("\\possible interpretation#!", N);
--- 2863,2870 ----
                       elsif
                         Nkind (Parent (It.Nam)) = N_Full_Type_Declaration
                       then
!                         Report_Interpretation (N, It.Nam, It.Typ);
! 
                       else
                          Error_Msg_N -- CODEFIX
                            ("\\possible interpretation#!", N);
*************** package body Sem_Res is
*** 3351,3356 ****
--- 3454,3462 ----
              when N_Extension_Aggregate =>
                 Resolve_Extension_Aggregate       (N, Ctx_Type);
  
+             when N_External_Initializer =>
+                Resolve_External_Initializer      (N, Ctx_Type);
+ 
              when N_Function_Call =>
                 Resolve_Call                      (N, Ctx_Type);
  
*************** package body Sem_Res is
*** 3464,3472 ****
              when N_Type_Conversion =>
                 Resolve_Type_Conversion           (N, Ctx_Type);
  
-             when N_Unchecked_Expression =>
-                Resolve_Unchecked_Expression      (N, Ctx_Type);
- 
              when N_Unchecked_Type_Conversion =>
                 Resolve_Unchecked_Type_Conversion (N, Ctx_Type);
           end case;
--- 3570,3575 ----
*************** package body Sem_Res is
*** 3819,3872 ****
        -------------------------
  
        procedure Check_Prefixed_Call is
!          Act    : constant Node_Id   := First_Actual (N);
!          A_Type : constant Entity_Id := Etype (Act);
!          F_Type : constant Entity_Id := Etype (First_Formal (Nam));
!          Orig   : constant Node_Id := Original_Node (N);
!          New_A  : Node_Id;
  
        begin
           --  Check whether the call is a prefixed call, with or without
           --  additional actuals.
  
!          if Nkind (Orig) = N_Selected_Component
!            or else
!              (Nkind (Orig) = N_Indexed_Component
!                and then Nkind (Prefix (Orig)) = N_Selected_Component
!                and then Is_Entity_Name (Prefix (Prefix (Orig)))
!                and then Is_Entity_Name (Act)
!                and then Chars (Act) = Chars (Prefix (Prefix (Orig))))
!          then
!             if Is_Access_Type (A_Type)
!               and then not Is_Access_Type (F_Type)
!             then
!                --  Introduce dereference on object in prefix
  
!                New_A :=
!                  Make_Explicit_Dereference (Sloc (Act),
!                    Prefix => Relocate_Node (Act));
!                Rewrite (Act, New_A);
!                Analyze (Act);
  
!             elsif Is_Access_Type (F_Type)
!               and then not Is_Access_Type (A_Type)
              then
!                --  Introduce an implicit 'Access in prefix
  
!                if not Is_Aliased_View (Act) then
!                   Error_Msg_NE
!                     ("object in prefixed call to& must be aliased "
!                      & "(RM 4.1.3 (13 1/2))",
!                     Prefix (Act), Nam);
!                end if;
  
!                Rewrite (Act,
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_Access,
!                    Prefix         => Relocate_Node (Act)));
              end if;
- 
-             Analyze (Act);
           end if;
        end Check_Prefixed_Call;
  
--- 3922,3969 ----
        -------------------------
  
        procedure Check_Prefixed_Call is
!          Actual      : constant Node_Id   := First_Actual (N);
!          Actual_Type : constant Entity_Id := Etype (Actual);
!          Formal_Type : constant Entity_Id := Etype (First_Formal (Nam));
!          New_Actual  : Node_Id;
  
        begin
           --  Check whether the call is a prefixed call, with or without
           --  additional actuals.
  
!          if Is_Expanded_Prefixed_Call (N) then
  
!             --  Introduce dereference on object in prefix
  
!             if Is_Access_Type (Actual_Type)
!               and then not Is_Access_Type (Formal_Type)
              then
!                New_Actual :=
!                  Make_Explicit_Dereference (Sloc (Actual),
!                    Prefix => Relocate_Node (Actual));
!                Rewrite (Actual, New_Actual);
!                Analyze (Actual);
  
!             --  Conversely, if the formal is an access parameter and the object
!             --  is not an access type or a reference type (i.e. a type with the
!             --  Implicit_Dereference aspect specified), add an implicit 'Access
!             --  to the prefix. Its analysis will check that the object is
!             --  aliased.
  
!             elsif Is_Access_Type (Formal_Type)
!               and then not Is_Access_Type (Actual_Type)
!               and then (not Has_Implicit_Dereference (Actual_Type)
!                 or else
!                   not Is_Access_Type
!                         (Designated_Type
!                            (Etype (Get_Reference_Discriminant (Actual_Type)))))
!             then
!                Rewrite (Actual,
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_Access,
!                    Prefix         => Relocate_Node (Actual)));
!                Analyze (Actual);
              end if;
           end if;
        end Check_Prefixed_Call;
  
*************** package body Sem_Res is
*** 4388,4393 ****
--- 4485,4501 ----
                    Resolve (Expression (A));
                 end if;
  
+                --  In GNATprove mode, add a range check flag on scalar
+                --  conversions for IN OUT parameters. The check may be
+                --  needed on entry from the call.
+ 
+                if GNATprove_Mode
+                  and then Ekind (F) = E_In_Out_Parameter
+                  and then Is_Scalar_Type (Etype (F))
+                then
+                   Set_Do_Range_Check (Expression (A));
+                end if;
+ 
              --  If the actual is a function call that returns a limited
              --  unconstrained object that needs finalization, create a
              --  transient scope for it, so that it can receive the proper
*************** package body Sem_Res is
*** 4577,4590 ****
              A_Typ := Etype (A);
              F_Typ := Etype (F);
  
!             --  An actual cannot be an untagged formal incomplete type
  
              if Ekind (A_Typ) = E_Incomplete_Type
!               and then not Is_Tagged_Type (A_Typ)
!               and then Is_Generic_Type (A_Typ)
              then
!                Error_Msg_N
!                  ("invalid use of untagged formal incomplete type", A);
              end if;
  
              --  For mode IN, if actual is an entity, and the type of the formal
--- 4685,4749 ----
              A_Typ := Etype (A);
              F_Typ := Etype (F);
  
!             --  If A_Typ is complete and F_Typ is not, then adjust F_Typ
! 
!             if Ekind (F_Typ) = E_Incomplete_Type
!               and then Present (Full_View (F_Typ))
!               and then not Is_Incomplete_Type (A_Typ)
!             then
!                F_Typ := Full_View (F_Typ);
!             end if;
! 
!             --  An actual cannot be of an untagged incomplete view; the result
!             --  object of a function call cannot be of an incomplete view
!             --  (RM 3.10.1(10)).
  
              if Ekind (A_Typ) = E_Incomplete_Type
!               and then (Nkind (A) = N_Function_Call
!                           or else not Is_Tagged_Type (A_Typ))
              then
!                --  No error if the call is placed in the initializing
!                --  expression of a component of the full-view of the
!                --  incomplete type. For example:
! 
!                --    type T;
!                --    function F (Obj : T) return Integer;
! 
!                --    type T is record
!                --       Data : Integer := F (T);
!                --    end record;
! 
!                if Present (Full_View (A_Typ))
!                  and then Full_View (A_Typ) = Current_Scope
!                  and then In_Spec_Expression
!                  and then In_Default_Expr
!                then
!                   null;
! 
!                --  No error if the call is performed in pre/postconditions, and
!                --  it is an incomplete type of a limited-with clause.
! 
!                elsif From_Limited_With (A_Typ)
!                  and then Present (Non_Limited_View (A_Typ))
!                  and then Is_Subprogram (Current_Scope)
!                  and then
!                    (In_Spec_Expression
!                       or else
!                     Present (Class_Preconditions_Subprogram (Current_Scope)))
!                then
!                   null;
! 
!                elsif Is_Generic_Type (A_Typ) then
!                   if Is_Tagged_Type (A_Typ) then
!                      Error_Msg_N
!                        ("invalid use of tagged formal incomplete type", A);
!                   else
!                      Error_Msg_N
!                        ("invalid use of untagged formal incomplete type", A);
!                   end if;
!                else
!                   Check_Fully_Declared (A_Typ, A);
!                end if;
              end if;
  
              --  For mode IN, if actual is an entity, and the type of the formal
*************** package body Sem_Res is
*** 4803,4808 ****
--- 4962,4992 ----
                          Reason => CE_Null_Not_Allowed);
                    end if;
                 end if;
+ 
+                --  In a prefixed call, if the prefix is an access type
+                --  it cannot be null.
+ 
+                if Is_Access_Type (F_Typ)
+                  and then A = First_Actual (N)
+                  and then Is_Expanded_Prefixed_Call (N)
+                then
+                   if not Is_Access_Type (A_Typ)
+                     and then not Is_Aliased_View (A)
+                   then
+                      Error_Msg_NE
+                        ("object in prefixed call to& must be aliased "
+                         & "(RM 4.1.3 (13 1/2))",
+                        A, Nam);
+                   end if;
+ 
+                   if not Debug_Flag_Underscore_PP
+                     and then
+                       (Is_Controlling_Formal (F)
+                          or else Is_Class_Wide_Type (Designated_Type (F_Typ)))
+                   then
+                      Install_Null_Excluding_Check (A);
+                   end if;
+                end if;
              end if;
  
              --  Checks for OUT parameters and IN OUT parameters
*************** package body Sem_Res is
*** 4980,4991 ****
--- 5164,5184 ----
              --  Skip this check on helpers and indirect-call wrappers built to
              --  support class-wide preconditions.
  
+             --  We make special exception here for mutably tagged types and
+             --  related calls to their initialization procedures.
+ 
              if (Is_Class_Wide_Type (A_Typ) or else Is_Dynamically_Tagged (A))
                and then not Is_Class_Wide_Type (F_Typ)
                and then not Is_Controlling_Formal (F)
                and then not In_Instance
                and then (not Is_Subprogram (Nam)
                           or else No (Class_Preconditions_Subprogram (Nam)))
+ 
+               --  Ignore mutably tagged types and their use in calls to init
+               --  procs.
+ 
+               and then not Is_Mutably_Tagged_CW_Equivalent_Type (A_Typ)
+               and then not Is_Init_Proc (Nam)
              then
                 Error_Msg_N ("class-wide argument not allowed here!", A);
  
*************** package body Sem_Res is
*** 5628,5640 ****
                and then Nkind (Associated_Node_For_Itype (Typ)) =
                           N_Discriminant_Specification
              then
                 declare
                    Discr : constant Entity_Id :=
                      Defining_Identifier (Associated_Node_For_Itype (Typ));
  
                 begin
-                   Check_Restriction (No_Coextensions, N);
- 
                    --  Ada 2012 AI05-0052: If the designated type of the
                    --  allocator is limited, then the allocator shall not
                    --  be used to define the value of an access discriminant
--- 5821,5833 ----
                and then Nkind (Associated_Node_For_Itype (Typ)) =
                           N_Discriminant_Specification
              then
+                Check_Restriction (No_Coextensions, N);
+ 
                 declare
                    Discr : constant Entity_Id :=
                      Defining_Identifier (Associated_Node_For_Itype (Typ));
  
                 begin
                    --  Ada 2012 AI05-0052: If the designated type of the
                    --  allocator is limited, then the allocator shall not
                    --  be used to define the value of an access discriminant
*************** package body Sem_Res is
*** 7329,7339 ****
                      ("cannot inline & (in while loop condition)?", N, Nam_UA);
  
                 --  Do not inline calls which would possibly lead to missing a
!                --  type conversion check on an input parameter.
  
                 elsif not Call_Can_Be_Inlined_In_GNATprove_Mode (N, Nam) then
                    Cannot_Inline
!                     ("cannot inline & (possible check on input parameters)?",
                       N, Nam_UA);
  
                 --  Otherwise, inline the call, issuing an info message when
--- 7522,7533 ----
                      ("cannot inline & (in while loop condition)?", N, Nam_UA);
  
                 --  Do not inline calls which would possibly lead to missing a
!                --  type conversion check on an input parameter or a memory leak
!                --  on an output parameter.
  
                 elsif not Call_Can_Be_Inlined_In_GNATprove_Mode (N, Nam) then
                    Cannot_Inline
!                     ("cannot inline & (possible check on parameters)?",
                       N, Nam_UA);
  
                 --  Otherwise, inline the call, issuing an info message when
*************** package body Sem_Res is
*** 7383,7388 ****
--- 7577,7585 ----
           if Is_Scalar_Type (Alt_Typ) and then Alt_Typ /= Typ then
              Rewrite (Alt_Expr, Convert_To (Typ, Alt_Expr));
              Analyze_And_Resolve (Alt_Expr, Typ);
+ 
+          elsif Is_Array_Type (Typ) then
+             Apply_Length_Check (Alt_Expr, Typ);
           end if;
  
           Next (Alt);
*************** package body Sem_Res is
*** 7614,7620 ****
     --  Start of processing for Resolve_Declare_Expression
  
     begin
- 
        Decl := First (Actions (N));
  
        while Present (Decl) loop
--- 7811,7816 ----
*************** package body Sem_Res is
*** 7951,7957 ****
             and then Comes_From_Source (E)
             and then No (Constant_Value (E))
             and then Is_Frozen (Etype (E))
!            and then not In_Spec_Expression
             and then not Is_Imported (E)
             and then Nkind (Parent (E)) /= N_Object_Renaming_Declaration
           then
--- 8147,8153 ----
             and then Comes_From_Source (E)
             and then No (Constant_Value (E))
             and then Is_Frozen (Etype (E))
!            and then not Preanalysis_Active
             and then not Is_Imported (E)
             and then Nkind (Parent (E)) /= N_Object_Renaming_Declaration
           then
*************** package body Sem_Res is
*** 9289,9294 ****
--- 9485,9499 ----
     end Resolve_Expression_With_Actions;
  
     ----------------------------------
+    -- Resolve_External_Initializer --
+    ----------------------------------
+ 
+    procedure Resolve_External_Initializer (N : Node_Id; Typ : Entity_Id) is
+    begin
+       Set_String_Literal_Subtype (N, Typ);
+    end Resolve_External_Initializer;
+ 
+    ----------------------------------
     -- Resolve_Generalized_Indexing --
     ----------------------------------
  
*************** package body Sem_Res is
*** 9558,9564 ****
              Resolve (Expr, Etype (Index));
              Check_Unset_Reference (Expr);
  
!             Apply_Scalar_Range_Check (Expr, Etype (Index));
  
              Next_Index (Index);
              Next (Expr);
--- 9763,9771 ----
              Resolve (Expr, Etype (Index));
              Check_Unset_Reference (Expr);
  
!             if not Kill_Range_Check (N) then
!                Apply_Scalar_Range_Check (Expr, Etype (Index));
!             end if;
  
              Next_Index (Index);
              Next (Expr);
*************** package body Sem_Res is
*** 9586,9592 ****
        --  object, or partial word accesses, both of which may be unexpected.
  
        if Nkind (N) = N_Indexed_Component
!         and then Is_Atomic_Ref_With_Address (N)
          and then not (Has_Atomic_Components (Array_Type)
                         or else (Is_Entity_Name (Pref)
                                   and then Has_Atomic_Components
--- 9793,9799 ----
        --  object, or partial word accesses, both of which may be unexpected.
  
        if Nkind (N) = N_Indexed_Component
!         and then Is_Atomic_Non_VFA_Ref_With_Address (N)
          and then not (Has_Atomic_Components (Array_Type)
                         or else (Is_Entity_Name (Pref)
                                   and then Has_Atomic_Components
*************** package body Sem_Res is
*** 9630,9637 ****
           --  image function because under Ada 2022 all the types have such
           --  function available.
  
!          if Etype (Str_Elem) = Any_String then
              Resolve (Str_Elem, Typ);
           end if;
  
           Next (Str_Elem);
--- 9837,9855 ----
           --  image function because under Ada 2022 all the types have such
           --  function available.
  
!          if Nkind (Str_Elem) = N_String_Literal
!            and then Is_Interpolated_String_Literal (Str_Elem)
!          then
              Resolve (Str_Elem, Typ);
+ 
+          --  Must have been rejected during analysis
+ 
+          elsif Nkind (Str_Elem) in N_Character_Literal
+                                  | N_Integer_Literal
+                                  | N_Real_Literal
+                                  | N_String_Literal
+          then
+             pragma Assert (Error_Posted (Str_Elem));
           end if;
  
           Next (Str_Elem);
*************** package body Sem_Res is
*** 9702,9712 ****
           return;
        end if;
  
!       Op := Entity (N);
!       while Scope (Op) /= Standard_Standard loop
!          Op := Homonym (Op);
!          pragma Assert (Present (Op));
!       end loop;
  
        Set_Entity (N, Op);
        Set_Is_Overloaded (N, False);
--- 9920,9949 ----
           return;
        end if;
  
!       case N_Binary_Op'(Nkind (N)) is
!          when N_Op_Add =>
!             Op := Standard_Op_Add;
!          when N_Op_Expon =>
!             Op := Standard_Op_Expon;
!          when N_Op_Subtract =>
!             Op := Standard_Op_Subtract;
!          when N_Op_Divide =>
!             Op := Standard_Op_Divide;
!          when N_Op_Mod =>
!             Op := Standard_Op_Mod;
!          when N_Op_Multiply =>
!             Op := Standard_Op_Multiply;
!          when N_Op_Rem =>
!             Op := Standard_Op_Rem;
! 
!          --  Non-arithmetic operators are handled elsewhere
! 
!          when N_Op_Boolean
!             | N_Op_Concat
!             | N_Op_Shift
!          =>
!             raise Program_Error;
!       end case;
  
        Set_Entity (N, Op);
        Set_Is_Overloaded (N, False);
*************** package body Sem_Res is
*** 9789,9799 ****
        Arg2 : Node_Id;
  
     begin
!       Op := Entity (N);
!       while Scope (Op) /= Standard_Standard loop
!          Op := Homonym (Op);
!          pragma Assert (Present (Op));
!       end loop;
  
        Set_Entity (N, Op);
  
--- 10026,10051 ----
        Arg2 : Node_Id;
  
     begin
!       --  We must preserve the original entity in a generic setting, so that
!       --  the legality of the operation can be verified in an instance.
! 
!       if not Expander_Active then
!          return;
!       end if;
! 
!       case N_Unary_Op'(Nkind (N)) is
!          when N_Op_Abs =>
!             Op := Standard_Op_Abs;
!          when N_Op_Minus =>
!             Op := Standard_Op_Minus;
!          when N_Op_Plus =>
!             Op := Standard_Op_Plus;
! 
!          --  Non-arithmetic operators are handled elsewhere
! 
!          when N_Op_Not =>
!             raise Program_Error;
!       end case;
  
        Set_Entity (N, Op);
  
*************** package body Sem_Res is
*** 11351,11357 ****
           --  the atomic object, or partial word accesses, both of which may be
           --  unexpected.
  
!          if Is_Atomic_Ref_With_Address (N)
             and then not Is_Atomic (Entity (S))
             and then not Is_Atomic (Etype (Entity (S)))
             and then Ada_Version < Ada_2022
--- 11603,11609 ----
           --  the atomic object, or partial word accesses, both of which may be
           --  unexpected.
  
!          if Is_Atomic_Non_VFA_Ref_With_Address (N)
             and then not Is_Atomic (Entity (S))
             and then not Is_Atomic (Etype (Entity (S)))
             and then Ada_Version < Ada_2022
*************** package body Sem_Res is
*** 11406,11415 ****
        --  Ensure all actions associated with the left operand (e.g.
        --  finalization of transient objects) are fully evaluated locally within
        --  an expression with actions. This is particularly helpful for coverage
!       --  analysis. However this should not happen in generics or if option
!       --  Minimize_Expression_With_Actions is set.
  
!       if Expander_Active and not Minimize_Expression_With_Actions then
           declare
              Reloc_L : constant Node_Id := Relocate_Node (L);
           begin
--- 11658,11667 ----
        --  Ensure all actions associated with the left operand (e.g.
        --  finalization of transient objects) are fully evaluated locally within
        --  an expression with actions. This is particularly helpful for coverage
!       --  analysis at the object level. However this should not happen in
!       --  generics.
  
!       if Expander_Active then
           declare
              Reloc_L : constant Node_Id := Relocate_Node (L);
           begin
*************** package body Sem_Res is
*** 12137,12143 ****
  
              if Nkind (Rop) = N_Real_Literal
                and then Realval (Rop) /= Ureal_0
!               and then abs (Realval (Rop)) < Delta_Value (Standard_Duration)
              then
                 Error_Msg_N
                   ("??universal real operand can only "
--- 12389,12395 ----
  
              if Nkind (Rop) = N_Real_Literal
                and then Realval (Rop) /= Ureal_0
!               and then abs Realval (Rop) < Delta_Value (Standard_Duration)
              then
                 Error_Msg_N
                   ("??universal real operand can only "
*************** package body Sem_Res is
*** 12441,12463 ****
        then
           Set_Do_Range_Check (Operand);
        end if;
- 
-       --  Generating C code a type conversion of an access to constrained
-       --  array type to access to unconstrained array type involves building
-       --  a fat pointer which in general cannot be generated on the fly. We
-       --  remove side effects in order to store the result of the conversion
-       --  into a temporary.
- 
-       if Modify_Tree_For_C
-         and then Nkind (N) = N_Type_Conversion
-         and then Nkind (Parent (N)) /= N_Object_Declaration
-         and then Is_Access_Type (Etype (N))
-         and then Is_Array_Type (Designated_Type (Etype (N)))
-         and then not Is_Constrained (Designated_Type (Etype (N)))
-         and then Is_Constrained (Designated_Type (Etype (Expression (N))))
-       then
-          Remove_Side_Effects (N);
-       end if;
     end Resolve_Type_Conversion;
  
     ----------------------
--- 12693,12698 ----
*************** package body Sem_Res is
*** 12671,12689 ****
        end;
     end Resolve_Unary_Op;
  
-    ----------------------------------
-    -- Resolve_Unchecked_Expression --
-    ----------------------------------
- 
-    procedure Resolve_Unchecked_Expression
-      (N   : Node_Id;
-       Typ : Entity_Id)
-    is
-    begin
-       Resolve (Expression (N), Typ, Suppress => All_Checks);
-       Set_Etype (N, Typ);
-    end Resolve_Unchecked_Expression;
- 
     ---------------------------------------
     -- Resolve_Unchecked_Type_Conversion --
     ---------------------------------------
--- 12906,12911 ----
*************** package body Sem_Res is
*** 12957,12972 ****
        Loc        : constant Source_Ptr := Sloc (N);
        Low_Bound  : constant Node_Id :=
                       Type_Low_Bound (Etype (First_Index (Typ)));
        Subtype_Id : Entity_Id;
  
     begin
!       if Nkind (N) /= N_String_Literal then
           return;
        end if;
  
        Subtype_Id := Create_Itype (E_String_Literal_Subtype, N);
!       Set_String_Literal_Length (Subtype_Id, UI_From_Int
!                                                (String_Length (Strval (N))));
        Set_Etype          (Subtype_Id, Base_Type (Typ));
        Set_Is_Constrained (Subtype_Id);
        Set_Etype          (N, Subtype_Id);
--- 13179,13201 ----
        Loc        : constant Source_Ptr := Sloc (N);
        Low_Bound  : constant Node_Id :=
                       Type_Low_Bound (Etype (First_Index (Typ)));
+       Length     : constant Nat :=
+         (case Nkind (N) is
+           when N_String_Literal => String_Length (Strval (N)),
+           --  Sinput.Source_Last points to an EOF character that's not in the
+           --  original file and we do not include that character.
+           when N_External_Initializer => Nat (
+             Source_Last (File_Index (N)) - Source_First (File_Index (N))),
+           when others => 0);
        Subtype_Id : Entity_Id;
  
     begin
!       if Nkind (N) not in N_String_Literal | N_External_Initializer then
           return;
        end if;
  
        Subtype_Id := Create_Itype (E_String_Literal_Subtype, N);
!       Set_String_Literal_Length (Subtype_Id, UI_From_Int (Length));
        Set_Etype          (Subtype_Id, Base_Type (Typ));
        Set_Is_Constrained (Subtype_Id);
        Set_Etype          (N, Subtype_Id);
*************** package body Sem_Res is
*** 12988,12994 ****
  
        else
           declare
-             Length        : constant Nat := String_Length (Strval (N));
              Index_List    : constant List_Id   := New_List;
              Index_Type    : constant Entity_Id := Etype (First_Index (Typ));
              Array_Subtype : Entity_Id;
--- 13217,13222 ----
*************** package body Sem_Res is
*** 13403,13408 ****
--- 13631,13747 ----
        return T1;
     end Unique_Fixed_Point_Type;
  
+    --------------------------
+    -- Is_Ambiguous_Operand --
+    --------------------------
+ 
+    function Is_Ambiguous_Operand
+      (Operand        : Node_Id;
+       In_Interp_Expr : Boolean := False;
+       Report_Errors  : Boolean := True) return Boolean
+    is
+       I         : Interp_Index;
+       I1        : Interp_Index;
+       It        : Interp;
+       It1       : Interp;
+       N1        : Entity_Id;
+       Opnd_Type : Entity_Id;
+       T1        : Entity_Id;
+ 
+    begin
+       pragma Assert (Is_Overloaded (Operand));
+ 
+       --  Procedure calls are not valid in this context, but were not removed
+       --  by prior type-checking because the context does not impose a specific
+       --  type. Remove them now.
+ 
+       --  The node may be labelled overloaded, but still contain only one
+       --  interpretation because others were discarded earlier. If this is
+       --  the case, retain the single interpretation if legal.
+ 
+       Get_First_Interp (Operand, I, It);
+       Opnd_Type := It.Typ;
+       Get_Next_Interp (I, It);
+ 
+       if Present (It.Typ)
+         and then Opnd_Type /= Standard_Void_Type
+       then
+          --  More than one candidate interpretation is available
+ 
+          Get_First_Interp (Operand, I, It);
+          while Present (It.Nam) loop
+             if It.Typ = Standard_Void_Type then
+                Remove_Interp (I);
+             end if;
+ 
+             --  When compiling for a system where Address is of a visible
+             --  integer type, spurious ambiguities can be produced when
+             --  arithmetic operations have a literal operand and return
+             --  System.Address or a descendant of it. These ambiguities
+             --  are usually resolved by the context, but for conversions
+             --  there is no context type and the removal of the spurious
+             --  operations must be done explicitly here.
+ 
+             if not Address_Is_Private
+               and then Is_Descendant_Of_Address (It.Typ)
+             then
+                Remove_Interp (I);
+             end if;
+ 
+             Get_Next_Interp (I, It);
+          end loop;
+       end if;
+ 
+       Get_First_Interp (Operand, I, It);
+ 
+       if No (It.Nam) then
+          if In_Interp_Expr then
+             Report_Error_N
+               ("illegal expression", Operand, Report_Errors);
+          else
+             Report_Error_N
+               ("illegal operand in conversion", Operand, Report_Errors);
+          end if;
+ 
+          return True;
+       end if;
+ 
+       I1  := I;
+       It1 := It;
+ 
+       --  The node may be labeled overloaded, but still contain only
+       --  one interpretation because others were discarded earlier.
+ 
+       Get_Next_Interp (I, It);
+ 
+       if Present (It.Typ) then
+          N1  := It1.Nam;
+          T1  := It1.Typ;
+          It1 := Disambiguate (Operand, I1, I, Any_Type);
+ 
+          if It1 = No_Interp then
+             if In_Interp_Expr then
+                Report_Error_NE
+                  ("ambiguous call to&", Operand, Entity (Name (Operand)),
+                   Report_Errors);
+             else
+                Report_Error_N
+                  ("ambiguous operand in conversion", Operand, Report_Errors);
+             end if;
+ 
+             --  Report the first two interpretations
+ 
+             Report_Interpretation (Operand, It.Nam, It.Typ);
+             Report_Interpretation (Operand, N1, T1);
+ 
+             return True;
+          end if;
+       end if;
+ 
+       Set_Etype (Operand, It1.Typ);
+       return False;
+    end Is_Ambiguous_Operand;
+ 
     ----------------------
     -- Valid_Conversion --
     ----------------------
*************** package body Sem_Res is
*** 13414,13420 ****
        Report_Errs : Boolean := True) return Boolean
     is
        Target_Type  : constant Entity_Id := Base_Type (Target);
!       Opnd_Type    : Entity_Id          := Etype (Operand);
        Inc_Ancestor : Entity_Id;
  
        function Conversion_Check
--- 13753,13759 ----
        Report_Errs : Boolean := True) return Boolean
     is
        Target_Type  : constant Entity_Id := Base_Type (Target);
!       Opnd_Type    : Entity_Id;
        Inc_Ancestor : Entity_Id;
  
        function Conversion_Check
*************** package body Sem_Res is
*** 13422,13436 ****
           Msg   : String) return Boolean;
        --  Little routine to post Msg if Valid is False, returns Valid value
  
-       procedure Conversion_Error_N (Msg : String; N : Node_Or_Entity_Id);
-       --  If Report_Errs, then calls Errout.Error_Msg_N with its arguments
- 
-       procedure Conversion_Error_NE
-         (Msg : String;
-          N   : Node_Or_Entity_Id;
-          E   : Node_Or_Entity_Id);
-       --  If Report_Errs, then calls Errout.Error_Msg_NE with its arguments
- 
        function In_Instance_Code return Boolean;
        --  Return True if expression is within an instance but is not in one of
        --  the actuals of the instantiation. Type conversions within an instance
--- 13761,13766 ----
*************** package body Sem_Res is
*** 13480,13517 ****
  
             and then not In_Instance_Code
           then
!             Conversion_Error_N (Msg, Operand);
           end if;
  
           return Valid;
        end Conversion_Check;
  
-       ------------------------
-       -- Conversion_Error_N --
-       ------------------------
- 
-       procedure Conversion_Error_N (Msg : String; N : Node_Or_Entity_Id) is
-       begin
-          if Report_Errs then
-             Error_Msg_N (Msg, N);
-          end if;
-       end Conversion_Error_N;
- 
-       -------------------------
-       -- Conversion_Error_NE --
-       -------------------------
- 
-       procedure Conversion_Error_NE
-         (Msg : String;
-          N   : Node_Or_Entity_Id;
-          E   : Node_Or_Entity_Id)
-       is
-       begin
-          if Report_Errs then
-             Error_Msg_NE (Msg, N, E);
-          end if;
-       end Conversion_Error_NE;
- 
        ----------------------
        -- In_Instance_Code --
        ----------------------
--- 13810,13821 ----
  
             and then not In_Instance_Code
           then
!             Report_Error_N (Msg, Operand, Report_Errs);
           end if;
  
           return Valid;
        end Conversion_Check;
  
        ----------------------
        -- In_Instance_Code --
        ----------------------
*************** package body Sem_Res is
*** 13643,13650 ****
           if
             Number_Dimensions (Target_Type) /= Number_Dimensions (Opnd_Type)
           then
!             Conversion_Error_N
!               ("incompatible number of dimensions for conversion", Operand);
              return False;
  
           --  Number of dimensions matches
--- 13947,13955 ----
           if
             Number_Dimensions (Target_Type) /= Number_Dimensions (Opnd_Type)
           then
!             Report_Error_N
!               ("incompatible number of dimensions for conversion", Operand,
!                Report_Errs);
              return False;
  
           --  Number of dimensions matches
*************** package body Sem_Res is
*** 13665,13673 ****
                   and then Root_Type (Target_Index_Type)
                            /= Root_Type (Opnd_Index_Type)
                 then
!                   Conversion_Error_N
                      ("incompatible index types for array conversion",
!                      Operand);
                    return False;
                 end if;
  
--- 13970,13978 ----
                   and then Root_Type (Target_Index_Type)
                            /= Root_Type (Opnd_Index_Type)
                 then
!                   Report_Error_N
                      ("incompatible index types for array conversion",
!                      Operand, Report_Errs);
                    return False;
                 end if;
  
*************** package body Sem_Res is
*** 13700,13709 ****
                 then
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Conversion_Error_N
                         ("source array type has deeper accessibility "
!                         & "level than target<<", Operand);
!                      Conversion_Error_N ("\Program_Error [<<", Operand);
                       Rewrite (N,
                         Make_Raise_Program_Error (Sloc (N),
                           Reason => PE_Accessibility_Check_Failed));
--- 14005,14015 ----
                 then
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Report_Error_N
                         ("source array type has deeper accessibility "
!                         & "level than target<<", Operand, Report_Errs);
!                      Report_Error_N
!                        ("\Program_Error [<<", Operand, Report_Errs);
                       Rewrite (N,
                         Make_Raise_Program_Error (Sloc (N),
                           Reason => PE_Accessibility_Check_Failed));
*************** package body Sem_Res is
*** 13713,13721 ****
                    --  Conversion not allowed because of accessibility levels
  
                    else
!                      Conversion_Error_N
                         ("source array type has deeper accessibility "
!                         & "level than target", Operand);
                       return False;
                    end if;
  
--- 14019,14027 ----
                    --  Conversion not allowed because of accessibility levels
  
                    else
!                      Report_Error_N
                         ("source array type has deeper accessibility "
!                         & "level than target", Operand, Report_Errs);
                       return False;
                    end if;
  
*************** package body Sem_Res is
*** 13726,13734 ****
              --  All other cases where component base types do not match
  
              else
!                Conversion_Error_N
                   ("incompatible component types for array conversion",
!                   Operand);
                 return False;
              end if;
  
--- 14032,14040 ----
              --  All other cases where component base types do not match
  
              else
!                Report_Error_N
                   ("incompatible component types for array conversion",
!                   Operand, Report_Errs);
                 return False;
              end if;
  
*************** package body Sem_Res is
*** 13740,13747 ****
              if not Subtypes_Statically_Match
                       (Target_Comp_Type, Opnd_Comp_Type)
              then
!                Conversion_Error_N
!                  ("component subtypes must statically match", Operand);
                 return False;
              end if;
           end if;
--- 14046,14054 ----
              if not Subtypes_Statically_Match
                       (Target_Comp_Type, Opnd_Comp_Type)
              then
!                Report_Error_N
!                  ("component subtypes must statically match", Operand,
!                   Report_Errs);
                 return False;
              end if;
           end if;
*************** package body Sem_Res is
*** 13776,13781 ****
--- 14083,14095 ----
           elsif Covers (Opnd_Type, Target_Type)
             or else Is_Ancestor (Opnd_Type, Target_Type)
           then
+             --  Deal with non-extension derivation involving an
+             --  untagged view of a tagged type.
+ 
+             if not Is_Tagged_Type (Target_Type) then
+                return True;
+             end if;
+ 
              return
                Conversion_Check (False,
                  "downward conversion of tagged objects not allowed");
*************** package body Sem_Res is
*** 13804,13812 ****
           then
              Error_Msg_Name_1 := Chars (Etype (Target_Type));
              Error_Msg_Name_2 := Chars (Opnd_Type);
!             Conversion_Error_N
                ("wrong interface conversion (% is not a progenitor "
!                & "of %)", N);
              return False;
  
           elsif Is_Class_Wide_Type (Opnd_Type)
--- 14118,14126 ----
           then
              Error_Msg_Name_1 := Chars (Etype (Target_Type));
              Error_Msg_Name_2 := Chars (Opnd_Type);
!             Report_Error_N
                ("wrong interface conversion (% is not a progenitor "
!                & "of %)", N, Report_Errs);
              return False;
  
           elsif Is_Class_Wide_Type (Opnd_Type)
*************** package body Sem_Res is
*** 13818,13826 ****
           then
              Error_Msg_Name_1 := Chars (Etype (Opnd_Type));
              Error_Msg_Name_2 := Chars (Target_Type);
!             Conversion_Error_N
                ("wrong interface conversion (% is not a progenitor "
!                & "of %)", N);
  
              --  Search for interface types shared between the target type and
              --  the operand interface type to complete the text of the error
--- 14132,14140 ----
           then
              Error_Msg_Name_1 := Chars (Etype (Opnd_Type));
              Error_Msg_Name_2 := Chars (Target_Type);
!             Report_Error_N
                ("wrong interface conversion (% is not a progenitor "
!                & "of %)", N, Report_Errs);
  
              --  Search for interface types shared between the target type and
              --  the operand interface type to complete the text of the error
*************** package body Sem_Res is
*** 13853,13865 ****
  
                             if First_Candidate then
                                First_Candidate := False;
!                               Conversion_Error_N
                                  ("\must convert to `%''Class` before downward "
!                                  & "conversion", Operand);
                             else
!                               Conversion_Error_N
                                  ("\or must convert to `%''Class` before "
!                                  & "downward conversion", Operand);
                             end if;
                          end if;
  
--- 14167,14180 ----
  
                             if First_Candidate then
                                First_Candidate := False;
!                               Report_Error_N
                                  ("\must convert to `%''Class` before downward "
!                                  & "conversion", Operand, Report_Errs);
                             else
!                               Report_Error_N
                                  ("\or must convert to `%''Class` before "
!                                  & "downward conversion",
!                                  Operand, Report_Errs);
                             end if;
                          end if;
  
*************** package body Sem_Res is
*** 13876,13899 ****
           elsif not Is_Class_Wide_Type (Target_Type)
             and then Is_Interface (Target_Type)
           then
!             Conversion_Error_N
!               ("wrong use of interface type in tagged conversion", N);
!             Conversion_Error_N
!               ("\add ''Class to the target interface type", N);
              return False;
  
           elsif not Is_Class_Wide_Type (Opnd_Type)
             and then Is_Interface (Opnd_Type)
           then
!             Conversion_Error_N
                ("must convert to class-wide interface type before downward "
!                & "conversion", Operand);
              return False;
  
           else
!             Conversion_Error_NE
                ("invalid tagged conversion, not compatible with}",
!                N, First_Subtype (Opnd_Type));
              return False;
           end if;
        end Valid_Tagged_Conversion;
--- 14191,14216 ----
           elsif not Is_Class_Wide_Type (Target_Type)
             and then Is_Interface (Target_Type)
           then
!             Report_Error_N
!               ("wrong use of interface type in tagged conversion",
!                N, Report_Errs);
!             Report_Error_N
!               ("\add ''Class to the target interface type",
!                N, Report_Errs);
              return False;
  
           elsif not Is_Class_Wide_Type (Opnd_Type)
             and then Is_Interface (Opnd_Type)
           then
!             Report_Error_N
                ("must convert to class-wide interface type before downward "
!                & "conversion", Operand, Report_Errs);
              return False;
  
           else
!             Report_Error_NE
                ("invalid tagged conversion, not compatible with}",
!                N, First_Subtype (Opnd_Type), Report_Errs);
              return False;
           end if;
        end Valid_Tagged_Conversion;
*************** package body Sem_Res is
*** 13903,14008 ****
     begin
        Check_Parameterless_Call (Operand);
  
!       if Is_Overloaded (Operand) then
!          declare
!             I   : Interp_Index;
!             I1  : Interp_Index;
!             It  : Interp;
!             It1 : Interp;
!             N1  : Entity_Id;
!             T1  : Entity_Id;
! 
!          begin
!             --  Remove procedure calls, which syntactically cannot appear in
!             --  this context, but which cannot be removed by type checking,
!             --  because the context does not impose a type.
! 
!             --  The node may be labelled overloaded, but still contain only one
!             --  interpretation because others were discarded earlier. If this
!             --  is the case, retain the single interpretation if legal.
! 
!             Get_First_Interp (Operand, I, It);
!             Opnd_Type := It.Typ;
!             Get_Next_Interp (I, It);
! 
!             if Present (It.Typ)
!               and then Opnd_Type /= Standard_Void_Type
!             then
!                --  More than one candidate interpretation is available
! 
!                Get_First_Interp (Operand, I, It);
!                while Present (It.Typ) loop
!                   if It.Typ = Standard_Void_Type then
!                      Remove_Interp (I);
!                   end if;
! 
!                   --  When compiling for a system where Address is of a visible
!                   --  integer type, spurious ambiguities can be produced when
!                   --  arithmetic operations have a literal operand and return
!                   --  System.Address or a descendant of it. These ambiguities
!                   --  are usually resolved by the context, but for conversions
!                   --  there is no context type and the removal of the spurious
!                   --  operations must be done explicitly here.
! 
!                   if not Address_Is_Private
!                     and then Is_Descendant_Of_Address (It.Typ)
!                   then
!                      Remove_Interp (I);
!                   end if;
! 
!                   Get_Next_Interp (I, It);
!                end loop;
!             end if;
! 
!             Get_First_Interp (Operand, I, It);
!             I1  := I;
!             It1 := It;
! 
!             if No (It.Typ) then
!                Conversion_Error_N ("illegal operand in conversion", Operand);
!                return False;
!             end if;
! 
!             Get_Next_Interp (I, It);
! 
!             if Present (It.Typ) then
!                N1  := It1.Nam;
!                T1  := It1.Typ;
!                It1 := Disambiguate (Operand, I1, I, Any_Type);
! 
!                if It1 = No_Interp then
!                   Conversion_Error_N
!                     ("ambiguous operand in conversion", Operand);
! 
!                   --  If the interpretation involves a standard operator, use
!                   --  the location of the type, which may be user-defined.
! 
!                   if Sloc (It.Nam) = Standard_Location then
!                      Error_Msg_Sloc := Sloc (It.Typ);
!                   else
!                      Error_Msg_Sloc := Sloc (It.Nam);
!                   end if;
! 
!                   Conversion_Error_N -- CODEFIX
!                     ("\\possible interpretation#!", Operand);
! 
!                   if Sloc (N1) = Standard_Location then
!                      Error_Msg_Sloc := Sloc (T1);
!                   else
!                      Error_Msg_Sloc := Sloc (N1);
!                   end if;
! 
!                   Conversion_Error_N -- CODEFIX
!                     ("\\possible interpretation#!", Operand);
  
!                   return False;
!                end if;
!             end if;
  
!             Set_Etype (Operand, It1.Typ);
!             Opnd_Type := It1.Typ;
!          end;
!       end if;
  
        --  Deal with conversion of integer type to address if the pragma
        --  Allow_Integer_Address is in effect. We convert the conversion to
--- 14220,14237 ----
     begin
        Check_Parameterless_Call (Operand);
  
!       if Is_Overloaded (Operand)
!         and then Is_Ambiguous_Operand (Operand)
!       then
!          return False;
!       end if;
  
!       --  When we encounter a class-wide equivalent type used to represent
!       --  a fully sized mutably tagged type, pretend we are actually looking
!       --  at the class-wide mutably tagged type instead.
  
!       Opnd_Type :=
!         Get_Corresponding_Mutably_Tagged_Type_If_Present (Etype (Operand));
  
        --  Deal with conversion of integer type to address if the pragma
        --  Allow_Integer_Address is in effect. We convert the conversion to
*************** package body Sem_Res is
*** 14063,14070 ****
             or else Opnd_Type = Any_Composite
             or else Opnd_Type = Any_String
           then
!             Conversion_Error_N
!               ("illegal operand for array conversion", Operand);
              return False;
  
           else
--- 14292,14306 ----
             or else Opnd_Type = Any_Composite
             or else Opnd_Type = Any_String
           then
!             if not Comes_From_Source (N)
!               and then Implementation_Base_Type (Target_Type) =
!                        Implementation_Base_Type (Opnd_Type)
!             then
!                return True;
!             end if;
! 
!             Report_Error_N
!               ("illegal operand for array conversion", Operand, Report_Errs);
              return False;
  
           else
*************** package body Sem_Res is
*** 14109,14123 ****
  
                 if In_Instance_Body then
                    Error_Msg_Warn := SPARK_Mode /= On;
!                   Conversion_Error_N
                      ("cannot convert local pointer to non-local access type<<",
!                      Operand);
!                   Conversion_Error_N ("\Program_Error [<<", Operand);
  
                 else
!                   Conversion_Error_N
                      ("cannot convert local pointer to non-local access type",
!                      Operand);
                    return False;
                 end if;
  
--- 14345,14359 ----
  
                 if In_Instance_Body then
                    Error_Msg_Warn := SPARK_Mode /= On;
!                   Report_Error_N
                      ("cannot convert local pointer to non-local access type<<",
!                      Operand, Report_Errs);
!                   Report_Error_N ("\Program_Error [<<", Operand, Report_Errs);
  
                 else
!                   Report_Error_N
                      ("cannot convert local pointer to non-local access type",
!                      Operand, Report_Errs);
                    return False;
                 end if;
  
*************** package body Sem_Res is
*** 14143,14159 ****
  
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Conversion_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type<<", Operand);
!                      Conversion_Error_N ("\Program_Error [<<", Operand);
  
                    --  Real error if not in instance body
  
                    else
!                      Conversion_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type", Operand);
                       return False;
                    end if;
                 end if;
--- 14379,14396 ----
  
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Report_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type<<", Operand, Report_Errs);
!                      Report_Error_N
!                        ("\Program_Error [<<", Operand, Report_Errs);
  
                    --  Real error if not in instance body
  
                    else
!                      Report_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type", Operand, Report_Errs);
                       return False;
                    end if;
                 end if;
*************** package body Sem_Res is
*** 14170,14178 ****
                     Ekind (Entity (Operand)) in E_In_Parameter | E_Constant
                   and then Present (Discriminal_Link (Entity (Operand)))
                 then
!                   Conversion_Error_N
                      ("discriminant has deeper accessibility level than target",
!                      Operand);
                    return False;
                 end if;
              end if;
--- 14407,14415 ----
                     Ekind (Entity (Operand)) in E_In_Parameter | E_Constant
                   and then Present (Discriminal_Link (Entity (Operand)))
                 then
!                   Report_Error_N
                      ("discriminant has deeper accessibility level than target",
!                      Operand, Report_Errs);
                    return False;
                 end if;
              end if;
*************** package body Sem_Res is
*** 14196,14206 ****
           if Is_Access_Constant (Opnd_Type)
             and then not Is_Access_Constant (Target_Type)
           then
!             Conversion_Error_N
!               ("access-to-constant operand type not allowed", Operand);
              return False;
           end if;
  
           --  Check the static accessibility rule of 4.6(17). Note that the
           --  check is not enforced when within an instance body, since the RM
           --  requires such cases to be caught at run time.
--- 14433,14475 ----
           if Is_Access_Constant (Opnd_Type)
             and then not Is_Access_Constant (Target_Type)
           then
!             Report_Error_N
!               ("access-to-constant operand type not allowed",
!                Operand, Report_Errs);
              return False;
           end if;
  
+          declare
+             Extended_Opnd : constant Boolean :=
+               Is_Extended_Access_Type (Opnd_Type);
+             Extended_Target : constant Boolean :=
+               Is_Extended_Access_Type (Target_Type);
+          begin
+             --  An extended access value may designate objects that are
+             --  impossible to reference using a non-extended type, so
+             --  prohibit conversions that would require being able to
+             --  do the impossible.
+ 
+             if Extended_Opnd then
+                if not Extended_Target then
+                   Report_Error_N
+                     ("cannot convert extended access value"
+                      & " to non-extended access type",
+                      Operand, Report_Errs);
+                   return False;
+                end if;
+ 
+             --  Detect bad conversion on copy back for a view conversion
+ 
+             elsif Extended_Target and then Is_View_Conversion (N) then
+                Report_Error_N
+                  ("cannot convert non-extended value"
+                   & " to extended access type in view conversion",
+                   Operand);
+                return False;
+             end if;
+          end;
+ 
           --  Check the static accessibility rule of 4.6(17). Note that the
           --  check is not enforced when within an instance body, since the RM
           --  requires such cases to be caught at run time.
*************** package body Sem_Res is
*** 14247,14254 ****
                       if Type_Access_Level (Opnd_Type)
                            > Deepest_Type_Access_Level (Target_Type)
                       then
!                         Conversion_Error_N
!                           ("operand has deeper level than target", Operand);
                       end if;
  
                    --  Implicit conversions aren't allowed for objects of an
--- 14516,14525 ----
                       if Type_Access_Level (Opnd_Type)
                            > Deepest_Type_Access_Level (Target_Type)
                       then
!                         Report_Error_N
!                           ("operand has deeper level than target", Operand,
!                            Report_Errs);
!                         return False;
                       end if;
  
                    --  Implicit conversions aren't allowed for objects of an
*************** package body Sem_Res is
*** 14258,14266 ****
                    elsif Nkind (Associated_Node_For_Itype (Opnd_Type))
                            = N_Object_Declaration
                    then
!                      Conversion_Error_N
                         ("implicit conversion of stand-alone anonymous "
!                         & "access object not allowed", Operand);
                       return False;
  
                    --  Implicit conversions aren't allowed for anonymous access
--- 14529,14537 ----
                    elsif Nkind (Associated_Node_For_Itype (Opnd_Type))
                            = N_Object_Declaration
                    then
!                      Report_Error_N
                         ("implicit conversion of stand-alone anonymous "
!                         & "access object not allowed", Operand, Report_Errs);
                       return False;
  
                    --  Implicit conversions aren't allowed for anonymous access
*************** package body Sem_Res is
*** 14273,14281 ****
                                 N_Procedure_Specification
                      and then Nkind (Parent (N)) not in N_Op_Eq | N_Op_Ne
                    then
!                      Conversion_Error_N
                         ("implicit conversion of anonymous access parameter "
!                         & "not allowed", Operand);
                       return False;
  
                    --  Detect access discriminant values that are illegal
--- 14544,14552 ----
                                 N_Procedure_Specification
                      and then Nkind (Parent (N)) not in N_Op_Eq | N_Op_Ne
                    then
!                      Report_Error_N
                         ("implicit conversion of anonymous access parameter "
!                         & "not allowed", Operand, Report_Errs);
                       return False;
  
                    --  Detect access discriminant values that are illegal
*************** package body Sem_Res is
*** 14283,14291 ****
  
                    elsif Is_Discrim_Of_Bad_Access_Conversion_Argument (Operand)
                    then
!                      Conversion_Error_N
                         ("implicit conversion of anonymous access value "
!                         & "not allowed", Operand);
                       return False;
  
                    --  In other cases, the level of the operand's type must be
--- 14554,14562 ----
  
                    elsif Is_Discrim_Of_Bad_Access_Conversion_Argument (Operand)
                    then
!                      Report_Error_N
                         ("implicit conversion of anonymous access value "
!                         & "not allowed", Operand, Report_Errs);
                       return False;
  
                    --  In other cases, the level of the operand's type must be
*************** package body Sem_Res is
*** 14295,14303 ****
                    elsif Type_Access_Level (Opnd_Type) >
                      Deepest_Type_Access_Level (Target_Type)
                    then
!                      Conversion_Error_N
                         ("implicit conversion of anonymous access value "
!                         & "violates accessibility", Operand);
                       return False;
                    end if;
                 end if;
--- 14566,14574 ----
                    elsif Type_Access_Level (Opnd_Type) >
                      Deepest_Type_Access_Level (Target_Type)
                    then
!                      Report_Error_N
                         ("implicit conversion of anonymous access value "
!                         & "violates accessibility", Operand, Report_Errs);
                       return False;
                    end if;
                 end if;
*************** package body Sem_Res is
*** 14333,14342 ****
  
                 if In_Instance_Body then
                    Error_Msg_Warn := SPARK_Mode /= On;
!                   Conversion_Error_N
                      ("cannot convert local pointer to non-local access type<<",
!                      Operand);
!                   Conversion_Error_N ("\Program_Error [<<", Operand);
  
                 --  If not in an instance body, this is a real error
  
--- 14604,14613 ----
  
                 if In_Instance_Body then
                    Error_Msg_Warn := SPARK_Mode /= On;
!                   Report_Error_N
                      ("cannot convert local pointer to non-local access type<<",
!                      Operand, Report_Errs);
!                   Report_Error_N ("\Program_Error [<<", Operand, Report_Errs);
  
                 --  If not in an instance body, this is a real error
  
*************** package body Sem_Res is
*** 14344,14352 ****
                    --  Avoid generation of spurious error message
  
                    if not Error_Posted (N) then
!                      Conversion_Error_N
                        ("cannot convert local pointer to non-local access type",
!                        Operand);
                    end if;
  
                    return False;
--- 14615,14623 ----
                    --  Avoid generation of spurious error message
  
                    if not Error_Posted (N) then
!                      Report_Error_N
                        ("cannot convert local pointer to non-local access type",
!                        Operand, Report_Errs);
                    end if;
  
                    return False;
*************** package body Sem_Res is
*** 14374,14390 ****
  
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Conversion_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type<<", Operand);
!                      Conversion_Error_N ("\Program_Error [<<", Operand);
  
                    --  If not in an instance body, this is a real error
  
                    else
!                      Conversion_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type", Operand);
                       return False;
                    end if;
                 end if;
--- 14645,14662 ----
  
                    if In_Instance_Body then
                       Error_Msg_Warn := SPARK_Mode /= On;
!                      Report_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type<<", Operand, Report_Errs);
!                      Report_Error_N
!                        ("\Program_Error [<<", Operand, Report_Errs);
  
                    --  If not in an instance body, this is a real error
  
                    else
!                      Report_Error_N
                         ("cannot convert access discriminant to non-local "
!                         & "access type", Operand, Report_Errs);
                       return False;
                    end if;
                 end if;
*************** package body Sem_Res is
*** 14400,14408 ****
                     Ekind (Entity (Operand)) in E_In_Parameter | E_Constant
                   and then Present (Discriminal_Link (Entity (Operand)))
                 then
!                   Conversion_Error_N
                      ("discriminant has deeper accessibility level than target",
!                      Operand);
                    return False;
                 end if;
              end if;
--- 14672,14680 ----
                     Ekind (Entity (Operand)) in E_In_Parameter | E_Constant
                   and then Present (Discriminal_Link (Entity (Operand)))
                 then
!                   Report_Error_N
                      ("discriminant has deeper accessibility level than target",
!                      Operand, Report_Errs);
                    return False;
                 end if;
              end if;
*************** package body Sem_Res is
*** 14450,14458 ****
  
              else
                 if not Same_Base then
!                   Conversion_Error_NE
                      ("target designated type not compatible with }",
!                      N, Base_Type (Opnd));
                    return False;
  
                 --  Ada 2005 AI-384: legality rule is symmetric in both
--- 14722,14730 ----
  
              else
                 if not Same_Base then
!                   Report_Error_NE
                      ("target designated type not compatible with }",
!                      N, Base_Type (Opnd), Report_Errs);
                    return False;
  
                 --  Ada 2005 AI-384: legality rule is symmetric in both
*************** package body Sem_Res is
*** 14475,14486 ****
                      and then Known_Static_RM_Size (Opnd)
                      and then RM_Size (Target) /= RM_Size (Opnd)
                    then
!                      Conversion_Error_NE
                         ("target designated subtype not compatible with }",
!                         N, Opnd);
!                      Conversion_Error_NE
                         ("\because sizes of the two designated subtypes differ",
!                         N, Opnd);
                       return False;
  
                    --  Normal case where conversion is allowed
--- 14747,14758 ----
                      and then Known_Static_RM_Size (Opnd)
                      and then RM_Size (Target) /= RM_Size (Opnd)
                    then
!                      Report_Error_NE
                         ("target designated subtype not compatible with }",
!                         N, Opnd, Report_Errs);
!                      Report_Error_NE
                         ("\because sizes of the two designated subtypes differ",
!                         N, Opnd, Report_Errs);
                       return False;
  
                    --  Normal case where conversion is allowed
*************** package body Sem_Res is
*** 14521,14533 ****
                 or else not Is_Entity_Name (Name (Parent (N)))
                 or else not Is_Return_Object (Entity (Name (Parent (N)))))
           then
!             Conversion_Error_N
                ("illegal attempt to store anonymous access to subprogram",
!                Operand);
!             Conversion_Error_N
                ("\value has deeper accessibility than any master "
                 & "(RM 3.10.2 (13))",
!                Operand);
  
              Error_Msg_NE
               ("\use named access type for& instead of access parameter",
--- 14793,14805 ----
                 or else not Is_Entity_Name (Name (Parent (N)))
                 or else not Is_Return_Object (Entity (Name (Parent (N)))))
           then
!             Report_Error_N
                ("illegal attempt to store anonymous access to subprogram",
!                Operand, Report_Errs);
!             Report_Error_N
                ("\value has deeper accessibility than any master "
                 & "(RM 3.10.2 (13))",
!                Operand, Report_Errs);
  
              Error_Msg_NE
               ("\use named access type for& instead of access parameter",
*************** package body Sem_Res is
*** 14545,14553 ****
           if Type_Access_Level (Opnd_Type) >
              Deepest_Type_Access_Level (Target_Type)
           then
!             Conversion_Error_N
                ("operand type has deeper accessibility level than target",
!                Operand);
  
           --  Check that if the operand type is declared in a generic body,
           --  then the target type must be declared within that same body
--- 14817,14825 ----
           if Type_Access_Level (Opnd_Type) >
              Deepest_Type_Access_Level (Target_Type)
           then
!             Report_Error_N
                ("operand type has deeper accessibility level than target",
!                Operand, Report_Errs);
  
           --  Check that if the operand type is declared in a generic body,
           --  then the target type must be declared within that same body
*************** package body Sem_Res is
*** 14567,14575 ****
                 end loop;
  
                 if T_Gen /= O_Gen then
!                   Conversion_Error_N
                      ("target type must be declared in same generic body "
!                      & "as operand type", N);
                 end if;
              end;
           end if;
--- 14839,14847 ----
                 end loop;
  
                 if T_Gen /= O_Gen then
!                   Report_Error_N
                      ("target type must be declared in same generic body "
!                      & "as operand type", N, Report_Errs);
                 end if;
              end;
           end if;
*************** package body Sem_Res is
*** 14621,14634 ****
  
        --  If it was legal in the generic, it's legal in the instance
  
!       elsif In_Instance_Body then
           return True;
  
        --  If both are tagged types, check legality of view conversions
  
!       elsif Is_Tagged_Type (Target_Type)
!               and then
!             Is_Tagged_Type (Opnd_Type)
        then
           return Valid_Tagged_Conversion (Target_Type, Opnd_Type);
  
--- 14893,14917 ----
  
        --  If it was legal in the generic, it's legal in the instance
  
!       elsif In_Instance then
!          return True;
! 
!       --  Ignore privacy for streaming or Put_Image routines
! 
!       elsif not Comes_From_Source (N)
!         and then Original_Implementation_Base_Type (Target_Type) =
!                  Original_Implementation_Base_Type (Opnd_Type)
!       then
           return True;
  
        --  If both are tagged types, check legality of view conversions
  
!       elsif (Is_Tagged_Type (Target_Type) and then Is_Tagged_Type (Opnd_Type))
!          or else (not Comes_From_Source (N)
!                   and then
!                     Is_Tagged_Type (Implementation_Base_Type (Target_Type))
!                   and then
!                     Is_Tagged_Type (Implementation_Base_Type (Opnd_Type)))
        then
           return Valid_Tagged_Conversion (Target_Type, Opnd_Type);
  
*************** package body Sem_Res is
*** 14638,14646 ****
           return True;
  
        --  In an instance or an inlined body, there may be inconsistent views of
!       --  the same type, or of types derived from a common root.
  
!       elsif (In_Instance or In_Inlined_Body)
          and then
            Root_Type (Underlying_Type (Target_Type)) =
            Root_Type (Underlying_Type (Opnd_Type))
--- 14921,14930 ----
           return True;
  
        --  In an instance or an inlined body, there may be inconsistent views of
!       --  the same type, or of types derived from a common root. Similarly
!       --  for compiler-generated streaming or Put_Image subprograms.
  
!       elsif (In_Instance or In_Inlined_Body or not Comes_From_Source (N))
          and then
            Root_Type (Underlying_Type (Target_Type)) =
            Root_Type (Underlying_Type (Opnd_Type))
*************** package body Sem_Res is
*** 14652,14660 ****
        elsif Ekind (Target_Type) = E_Access_Type
           and then Is_Access_Type (Opnd_Type)
        then
!          Conversion_Error_N ("target type must be general access type!", N);
!          Conversion_Error_NE -- CODEFIX
!             ("\add ALL to }!", N, Target_Type);
           return False;
  
        --  Here we have a real conversion error
--- 14936,14945 ----
        elsif Ekind (Target_Type) = E_Access_Type
           and then Is_Access_Type (Opnd_Type)
        then
!          Report_Error_N
!            ("target type must be general access type!", N, Report_Errs);
!          Report_Error_NE -- CODEFIX
!             ("\add ALL to }!", N, Target_Type, Report_Errs);
           return False;
  
        --  Here we have a real conversion error
*************** package body Sem_Res is
*** 14664,14688 ****
           --  target is available.
  
           if From_Limited_With (Opnd_Type) and then In_Package_Body then
!             Conversion_Error_NE
                ("invalid conversion, not compatible with limited view of }",
!                N, Opnd_Type);
!             Conversion_Error_NE
!               ("\add with_clause for& to current unit!", N, Scope (Opnd_Type));
  
           elsif Is_Access_Type (Opnd_Type)
             and then From_Limited_With (Designated_Type (Opnd_Type))
             and then In_Package_Body
           then
!             Conversion_Error_NE
!               ("invalid conversion, not compatible with }", N, Opnd_Type);
!             Conversion_Error_NE
                ("\add with_clause for& to current unit!",
!                N, Scope (Designated_Type (Opnd_Type)));
  
           else
!             Conversion_Error_NE
!               ("invalid conversion, not compatible with }", N, Opnd_Type);
           end if;
  
           return False;
--- 14949,14976 ----
           --  target is available.
  
           if From_Limited_With (Opnd_Type) and then In_Package_Body then
!             Report_Error_NE
                ("invalid conversion, not compatible with limited view of }",
!                N, Opnd_Type, Report_Errs);
!             Report_Error_NE
!               ("\add with_clause for& to current unit!",
!                N, Scope (Opnd_Type), Report_Errs);
  
           elsif Is_Access_Type (Opnd_Type)
             and then From_Limited_With (Designated_Type (Opnd_Type))
             and then In_Package_Body
           then
!             Report_Error_NE
!               ("invalid conversion, not compatible with }",
!                N, Opnd_Type, Report_Errs);
!             Report_Error_NE
                ("\add with_clause for& to current unit!",
!                N, Scope (Designated_Type (Opnd_Type)), Report_Errs);
  
           else
!             Report_Error_NE
!               ("invalid conversion, not compatible with }",
!                N, Opnd_Type, Report_Errs);
           end if;
  
           return False;
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_res.ads gcc-15.1.0/gcc/ada/sem_res.ads
*** gcc-14.2.0/gcc/ada/sem_res.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_res.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Res is
*** 84,89 ****
--- 84,100 ----
     --
     --  The parameter T is the Typ for the corresponding resolve call.
  
+    function Is_Ambiguous_Operand
+      (Operand        : Node_Id;
+       In_Interp_Expr : Boolean := False;
+       Report_Errors  : Boolean := True) return Boolean;
+    --  Examine the interpretations of the given overloaded operand in a type
+    --  conversion or interpolated expression. Returns True if the call is
+    --  ambiguous; reports errors for ambiguous calls unless Report_Errors is
+    --  set to False. In_Interp_Expr is True when the operand is an
+    --  interpolated expression; used to improve the clarity of reported
+    --  error messages.
+ 
     procedure Preanalyze_And_Resolve (N : Node_Id; T : Entity_Id);
     --  Performs a preanalysis of expression node N. During preanalysis, N is
     --  analyzed and then resolved against type T, but no expansion is carried
*************** package Sem_Res is
*** 93,101 ****
     procedure Preanalyze_And_Resolve (N : Node_Id);
     --  Same, but use type of node because context does not impose a single type
  
-    procedure Preanalyze_With_Freezing_And_Resolve (N : Node_Id; T : Entity_Id);
-    --  Same, but perform freezing of static expressions of N or its children.
- 
     procedure Resolve (N : Node_Id; Typ : Entity_Id);
     procedure Resolve (N : Node_Id; Typ : Entity_Id; Suppress : Check_Id);
     --  Top-level type-checking procedure, called in a complete context. The
--- 104,109 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_scil.adb gcc-15.1.0/gcc/ada/sem_scil.adb
*** gcc-14.2.0/gcc/ada/sem_scil.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_scil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_scil.ads gcc-15.1.0/gcc/ada/sem_scil.ads
*** gcc-14.2.0/gcc/ada/sem_scil.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_scil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_smem.adb gcc-15.1.0/gcc/ada/sem_smem.adb
*** gcc-14.2.0/gcc/ada/sem_smem.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_smem.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_smem.ads gcc-15.1.0/gcc/ada/sem_smem.ads
*** gcc-14.2.0/gcc/ada/sem_smem.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_smem.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_type.adb gcc-15.1.0/gcc/ada/sem_type.adb
*** gcc-14.2.0/gcc/ada/sem_type.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_type.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Type is
*** 197,206 ****
     --------------------
  
     procedure Add_One_Interp
!      (N         : Node_Id;
!       E         : Entity_Id;
!       T         : Entity_Id;
!       Opnd_Type : Entity_Id := Empty)
     is
        Vis_Type : Entity_Id;
  
--- 197,206 ----
     --------------------
  
     procedure Add_One_Interp
!      (N        : Node_Id;
!       E        : Entity_Id;
!       T        : Entity_Id;
!       Opnd_Typ : Entity_Id := Empty)
     is
        Vis_Type : Entity_Id;
  
*************** package body Sem_Type is
*** 308,314 ****
              end if;
           end loop;
  
!          All_Interp.Table (All_Interp.Last) := (Name, Typ, Abstr_Op);
           All_Interp.Append (No_Interp);
        end Add_Entry;
  
--- 308,314 ----
              end if;
           end loop;
  
!          All_Interp.Table (All_Interp.Last) := (Name, Typ, Opnd_Typ, Abstr_Op);
           All_Interp.Append (No_Interp);
        end Add_Entry;
  
*************** package body Sem_Type is
*** 369,376 ****
        --  it is the type of the operand that is relevant here.
  
        if Ekind (E) = E_Operator then
!          if Present (Opnd_Type) then
!             Vis_Type := Opnd_Type;
           else
              Vis_Type := Base_Type (T);
           end if;
--- 369,376 ----
        --  it is the type of the operand that is relevant here.
  
        if Ekind (E) = E_Operator then
!          if Present (Opnd_Typ) then
!             Vis_Type := Opnd_Typ;
           else
              Vis_Type := Base_Type (T);
           end if;
*************** package body Sem_Type is
*** 663,669 ****
                         and then not Is_Inherited_Operation (H)
                       then
                          All_Interp.Table (All_Interp.Last) :=
!                           (H, Etype (H), Empty);
                          All_Interp.Append (No_Interp);
                          goto Next_Homograph;
  
--- 663,669 ----
                         and then not Is_Inherited_Operation (H)
                       then
                          All_Interp.Table (All_Interp.Last) :=
!                           (H, Etype (H), Empty, Empty);
                          All_Interp.Append (No_Interp);
                          goto Next_Homograph;
  
*************** package body Sem_Type is
*** 1228,1233 ****
--- 1228,1245 ----
           return Has_Non_Limited_View (T2)
             and then Covers (T1, Get_Full_View (Non_Limited_View (T2)));
  
+       --  Coverage for incomplete types
+ 
+       elsif Ekind (T1) = E_Incomplete_Type
+         and then Present (Full_View (T1))
+       then
+          return Covers (Full_View (T1), T2);
+ 
+       elsif Ekind (T2) = E_Incomplete_Type
+         and then Present (Full_View (T2))
+       then
+          return Covers (T1, Full_View (T2));
+ 
        --  Ada 2005 (AI-412): Coverage for regular incomplete subtypes
  
        elsif Ekind (T1) = E_Incomplete_Subtype then
*************** package body Sem_Type is
*** 1305,1310 ****
--- 1317,1328 ----
        --  the generic. Within the instance the actual is represented by a
        --  constructed subprogram renaming.
  
+       function Is_Ambiguous_Boolean_Operator (I : Interp) return Boolean;
+       --  Determine whether I corresponds to an "ambiguous" boolean operator.
+       --  Such an interpretation is used to record the ambiguity of operands
+       --  diagnosed during the analysis of comparison and equality operations.
+       --  See Find_Comparison_Equality_Types in Sem_Ch4 for the rationale.
+ 
        function Matches (Op : Node_Id; Func_Id : Entity_Id) return Boolean;
        --  Determine whether function Func_Id is an exact match for binary or
        --  unary operator Op.
*************** package body Sem_Type is
*** 1406,1411 ****
--- 1424,1440 ----
                 or else Is_Wrapper_Package (Scope (S)));
        end Is_Actual_Subprogram;
  
+       -----------------------------------
+       -- Is_Ambiguous_Boolean_Operator --
+       -----------------------------------
+ 
+       function Is_Ambiguous_Boolean_Operator (I : Interp) return Boolean is
+       begin
+          return Ekind (I.Nam) = E_Operator
+            and then I.Typ = Standard_Boolean
+            and then I.Opnd_Typ = Any_Type;
+       end Is_Ambiguous_Boolean_Operator;
+ 
        -------------
        -- Matches --
        -------------
*************** package body Sem_Type is
*** 1812,1817 ****
--- 1841,1852 ----
        It1  := It;
        Nam1 := It.Nam;
  
+       --  Return immediately if either corresponds to a recorded ambiguity
+ 
+       if Is_Ambiguous_Boolean_Operator (It1) then
+          return It1;
+       end if;
+ 
        while I /= I2 loop
           Get_Next_Interp (I, It);
        end loop;
*************** package body Sem_Type is
*** 1819,1824 ****
--- 1854,1865 ----
        It2  := It;
        Nam2 := It.Nam;
  
+       --  See above
+ 
+       if Is_Ambiguous_Boolean_Operator (It2) then
+          return It2;
+       end if;
+ 
        --  Check whether one of the entities is an Ada 2005/2012/2022 and we
        --  are operating in an earlier mode, in which case we discard the Ada
        --  2005/2012/2022 entity, so that we get proper Ada 95 overload
*************** package body Sem_Type is
*** 3586,3591 ****
--- 3627,3635 ----
        if Is_Anonymous_Access_Type (T) then
           return Ada_Version >= Ada_2005;
  
+       elsif Is_Incomplete_Type (T) then
+          return False;
+ 
        elsif not Is_Limited_Type (T) then
           return True;
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_type.ads gcc-15.1.0/gcc/ada/sem_type.ads
*** gcc-14.2.0/gcc/ada/sem_type.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_type.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Type is
*** 56,77 ****
     --  identifier, there is a set of possible types corresponding to the types
     --  that the overloaded call may return. We keep a 1-to-1 correspondence
     --  between interpretations and types: for user-defined subprograms the type
!    --  is the declared return type. For operators, the type is determined by
!    --  the type of the arguments. If the arguments themselves are overloaded,
!    --  we enter the operator name in the names table for each possible result
!    --  type. In most cases, arguments are not overloaded and only one
!    --  interpretation is present anyway.
  
     type Interp is record
        Nam         : Entity_Id;
        Typ         : Entity_Id;
!       Abstract_Op : Entity_Id := Empty;
     end record;
  
     --  Entity Abstract_Op is set to the abstract operation which potentially
     --  disables the interpretation in Ada 2005 mode.
  
!    No_Interp : constant Interp := (Empty, Empty, Empty);
  
     type Interp_Index is new Int;
  
--- 56,78 ----
     --  identifier, there is a set of possible types corresponding to the types
     --  that the overloaded call may return. We keep a 1-to-1 correspondence
     --  between interpretations and types: for user-defined subprograms the type
!    --  is the declared result type Typ. For operators, the type is determined
!    --  either only by the result type Typ for arithmetic operators or by the
!    --  result type and the type of the operands Opnd_Typ for comparisoon and
!    --  equality operators. If the operands are themselves overloaded, we enter
!    --  the operator name in the names table for each possible result type.
  
     type Interp is record
        Nam         : Entity_Id;
        Typ         : Entity_Id;
!       Opnd_Typ    : Entity_Id;
!       Abstract_Op : Entity_Id;
     end record;
  
     --  Entity Abstract_Op is set to the abstract operation which potentially
     --  disables the interpretation in Ada 2005 mode.
  
!    No_Interp : constant Interp := (Empty, Empty, Empty, Empty);
  
     type Interp_Index is new Int;
  
*************** package Sem_Type is
*** 115,124 ****
     --  error reports.
  
     procedure Add_One_Interp
!      (N         : Node_Id;
!       E         : Entity_Id;
!       T         : Entity_Id;
!       Opnd_Type : Entity_Id := Empty);
     --  Add (E, T) to the list of interpretations of the node being resolved.
     --  For calls and operators, i.e. for nodes that have a name field, E is an
     --  overloadable entity, and T is its type. For constructs such as indexed
--- 116,125 ----
     --  error reports.
  
     procedure Add_One_Interp
!      (N        : Node_Id;
!       E        : Entity_Id;
!       T        : Entity_Id;
!       Opnd_Typ : Entity_Id := Empty);
     --  Add (E, T) to the list of interpretations of the node being resolved.
     --  For calls and operators, i.e. for nodes that have a name field, E is an
     --  overloadable entity, and T is its type. For constructs such as indexed
*************** package Sem_Type is
*** 130,136 ****
     --
     --  For operators, the legality of the operation depends on the visibility
     --  of T and its scope. If the operator is an equality or comparison, T is
!    --  always Boolean, and we use Opnd_Type, which is a candidate type for one
     --  of the operands of N, to check visibility.
  
     procedure Get_First_Interp
--- 131,137 ----
     --
     --  For operators, the legality of the operation depends on the visibility
     --  of T and its scope. If the operator is an equality or comparison, T is
!    --  always Boolean, and we use Opnd_Typ, which is a candidate type for one
     --  of the operands of N, to check visibility.
  
     procedure Get_First_Interp
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_util.adb gcc-15.1.0/gcc/ada/sem_util.adb
*** gcc-14.2.0/gcc/ada/sem_util.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_util.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Debug;          use Debug;
*** 30,36 ****
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
- with Erroutc;        use Erroutc;
  with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch11;       use Exp_Ch11;
  with Exp_Util;       use Exp_Util;
--- 30,35 ----
*************** with Freeze;         use Freeze;
*** 39,44 ****
--- 38,44 ----
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet.Sp;       use Namet.Sp;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** with Sem_Cat;        use Sem_Cat;
*** 53,58 ****
--- 53,59 ----
  with Sem_Ch6;        use Sem_Ch6;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Ch13;       use Sem_Ch13;
+ with Sem_Dim;        use Sem_Dim;
  with Sem_Disp;       use Sem_Disp;
  with Sem_Elab;       use Sem_Elab;
  with Sem_Eval;       use Sem_Eval;
*************** package body Sem_Util is
*** 170,181 ****
     --  routine does not take simple flow diagnostics into account, it relies on
     --  static facts such as the presence of null exclusions.
  
-    function Subprogram_Name (N : Node_Id) return String;
-    --  Return the fully qualified name of the enclosing subprogram for the
-    --  given node N, with file:line:col information appended, e.g.
-    --  "subp:file:line:col", corresponding to the source location of the
-    --  body of the subprogram.
- 
     -----------------------------
     -- Abstract_Interface_List --
     -----------------------------
--- 171,176 ----
*************** package body Sem_Util is
*** 645,740 ****
     -- Append_Entity_Name --
     ------------------------
  
!    procedure Append_Entity_Name (Buf : in out Bounded_String; E : Entity_Id) is
!       Temp : Bounded_String;
! 
!       procedure Inner (E : Entity_Id);
!       --  Inner recursive routine, keep outer routine nonrecursive to ease
!       --  debugging when we get strange results from this routine.
! 
!       -----------
!       -- Inner --
!       -----------
! 
!       procedure Inner (E : Entity_Id) is
!          Scop : Node_Id;
! 
!       begin
!          --  If entity has an internal name, skip by it, and print its scope.
!          --  Note that we strip a final R from the name before the test; this
!          --  is needed for some cases of instantiations.
! 
!          declare
!             E_Name : Bounded_String;
! 
!          begin
!             Append (E_Name, Chars (E));
! 
!             if E_Name.Chars (E_Name.Length) = 'R' then
!                E_Name.Length := E_Name.Length - 1;
!             end if;
! 
!             if Is_Internal_Name (E_Name) then
!                Inner (Scope (E));
!                return;
!             end if;
!          end;
! 
!          Scop := Scope (E);
! 
!          --  Just print entity name if its scope is at the outer level
  
!          if Scop = Standard_Standard then
              null;
  
!          --  If scope comes from source, write scope and entity
! 
!          elsif Comes_From_Source (Scop) then
!             Append_Entity_Name (Temp, Scop);
!             Append (Temp, '.');
! 
!          --  If in wrapper package skip past it
! 
!          elsif Present (Scop) and then Is_Wrapper_Package (Scop) then
!             Append_Entity_Name (Temp, Scope (Scop));
!             Append (Temp, '.');
  
!          --  Otherwise nothing to output (happens in unnamed block statements)
  
!          else
!             null;
!          end if;
  
!          --  Output the name
  
!          declare
!             E_Name : Bounded_String;
  
!          begin
!             Append_Unqualified_Decoded (E_Name, Chars (E));
  
!             --  Remove trailing upper-case letters from the name (useful for
!             --  dealing with some cases of internal names generated in the case
!             --  of references from within a generic).
  
!             while E_Name.Length > 1
!               and then E_Name.Chars (E_Name.Length) in 'A' .. 'Z'
!             loop
!                E_Name.Length := E_Name.Length - 1;
!             end loop;
  
!             --  Adjust casing appropriately (gets name from source if possible)
  
!             Adjust_Name_Case (E_Name, Sloc (E));
!             Append (Temp, E_Name);
!          end;
!       end Inner;
  
!    --  Start of processing for Append_Entity_Name
  
!    begin
!       Inner (E);
!       Append (Buf, Temp);
     end Append_Entity_Name;
  
     ---------------------------------
--- 640,712 ----
     -- Append_Entity_Name --
     ------------------------
  
!    procedure Append_Entity_Name
!      (Buf : in out Bounded_String; E : Entity_Id)
!    is
!       Scop : constant Node_Id := Scope (E);
!       --  We recursively print the scope to Buf, and then print the simple
!       --  name, along with some special cases (see below). So for A.B.C.D,
!       --  recursively print A.B.C, then print D.
!    begin
!       --  If E is not a source entity, then skip the simple name and just
!       --  recursively print its scope. However, certain entities have
!       --  Comes_From_Source = False, even though we DO want to print the
!       --  simple name; this happens for specless child subprogram bodies
!       --  and for subprogram instances.
  
!       if not Comes_From_Source (E) then
!          if Is_Compilation_Unit (E) then
              null;
+          elsif Is_Generic_Instance (E)
+            and then Ekind (E) in E_Function | E_Procedure
+          then
+             null;
+          else
+             Append_Entity_Name (Buf, Scope (E));
+             return; -- skip the simple name
+          end if;
+       end if;
  
!       --  Just print entity name if its scope is at the outer level
  
!       if No (Scop) or Scop = Standard_Standard then
!          null;
  
!       --  If scope comes from source, write scope and entity
  
!       elsif Comes_From_Source (Scop) then
!          Append_Entity_Name (Buf, Scop);
!          Append (Buf, '.');
  
!       --  Otherwise (non-source scope) skip one level
  
!       else
!          Append_Entity_Name (Buf, Scope (Scop));
!          Append (Buf, '.');
!       end if;
  
!       --  Print the simple name
  
!       declare
!          E_Name : Bounded_String;
!       begin
!          Append_Unqualified_Decoded (E_Name, Chars (E));
  
!          --  Remove trailing upper-case letters from the name (useful for
!          --  dealing with some cases of internal names generated in the case
!          --  of references from within a generic).
  
!          while E_Name.Length > 1
!            and then E_Name.Chars (E_Name.Length) in 'A' .. 'Z'
!          loop
!             E_Name.Length := E_Name.Length - 1;
!          end loop;
  
!          --  Adjust casing appropriately (gets name from source if possible)
  
!          Adjust_Name_Case (E_Name, Sloc (E));
!          Append (Buf, E_Name);
!       end;
     end Append_Entity_Name;
  
     ---------------------------------
*************** package body Sem_Util is
*** 1495,1504 ****
     --  Start of processing for Build_Actual_Subtype_Of_Component
  
     begin
!       --  The subtype does not need to be created for a selected component
!       --  in a Spec_Expression.
  
!       if In_Spec_Expression then
           return Empty;
  
        --  More comments for the rest of this body would be good ???
--- 1467,1475 ----
     --  Start of processing for Build_Actual_Subtype_Of_Component
  
     begin
!       --  The subtype does not need to be created during preanalysis
  
!       if Preanalysis_Active then
           return Empty;
  
        --  More comments for the rest of this body would be good ???
*************** package body Sem_Util is
*** 1780,1786 ****
        begin
           while Present (Disc) loop
              Append_To (Constraints,
!               New_Copy_Tree (Discriminant_Default_Value (Disc)));
              Next_Discriminant (Disc);
           end loop;
  
--- 1751,1758 ----
        begin
           while Present (Disc) loop
              Append_To (Constraints,
!                        New_Copy_Tree
!                          (Discriminant_Default_Value (Disc), New_Sloc => Loc));
              Next_Discriminant (Disc);
           end loop;
  
*************** package body Sem_Util is
*** 1814,1820 ****
  
     function Build_Default_Subtype_OK (T : Entity_Id) return Boolean is
     begin
- 
        if Is_Constrained (T) then
  
           --  We won't build a new subtype if T is constrained
--- 1786,1791 ----
*************** package body Sem_Util is
*** 2411,2417 ****
        Actual : Node_Id;
  
     begin
!       if All_Extensions_Allowed then
           Actual := First_Actual (Call);
           while Present (Actual) loop
              if Nkind (Actual) = N_Aggregate then
--- 2382,2388 ----
        Actual : Node_Id;
  
     begin
!       if Ada_Version >= Ada_2022 then
           Actual := First_Actual (Call);
           while Present (Actual) loop
              if Nkind (Actual) = N_Aggregate then
*************** package body Sem_Util is
*** 2943,2949 ****
                            Expr_Value (Low_Bound (Aggregate_Bounds (N)))
                 then
                    declare
!                      Count_Components   : Uint := Uint_0;
                       Num_Components     : Uint;
                       Others_Assoc       : Node_Id := Empty;
                       Others_Choice      : Node_Id := Empty;
--- 2914,2920 ----
                            Expr_Value (Low_Bound (Aggregate_Bounds (N)))
                 then
                    declare
!                      Count_Components   : Uint;
                       Num_Components     : Uint;
                       Others_Assoc       : Node_Id := Empty;
                       Others_Choice      : Node_Id := Empty;
*************** package body Sem_Util is
*** 2952,2964 ****
                    begin
                       --  Count positional associations
  
!                      if Present (Expressions (N)) then
!                         Comp_Expr := First (Expressions (N));
!                         while Present (Comp_Expr) loop
!                            Count_Components := Count_Components + 1;
!                            Next (Comp_Expr);
!                         end loop;
!                      end if;
  
                       --  Count the rest of elements and locate the N_Others
                       --  choice (if any)
--- 2923,2930 ----
                    begin
                       --  Count positional associations
  
!                      Count_Components :=
!                        UI_From_Int (List_Length (Expressions (N)));
  
                       --  Count the rest of elements and locate the N_Others
                       --  choice (if any)
*************** package body Sem_Util is
*** 3612,3620 ****
        end if;
     end Check_No_Hidden_State;
  
!    ---------------------------------------------
!    -- Check_Nonoverridable_Aspect_Consistency --
!    ---------------------------------------------
  
     procedure Check_Inherited_Nonoverridable_Aspects
       (Inheritor      : Entity_Id;
--- 3578,3586 ----
        end if;
     end Check_No_Hidden_State;
  
!    --------------------------------------------
!    -- Check_Inherited_Nonoverridable_Aspects --
!    --------------------------------------------
  
     procedure Check_Inherited_Nonoverridable_Aspects
       (Inheritor      : Entity_Id;
*************** package body Sem_Util is
*** 4156,4171 ****
              begin
                 --  Expr is the conjunct of an enclosing "and" expression
  
!                return Nkind (Parent (Expr)) in N_Subexpr
! 
!                  --  or Expr is a conjunct of an enclosing "and then"
!                  --  expression in a postcondition aspect that was split into
!                  --  multiple pragmas. The first conjunct has the "and then"
!                  --  expression as Original_Node, and other conjuncts have
!                  --  Split_PCC set to True.
! 
!                  or else Nkind (Original_Node (Expr)) = N_And_Then
!                  or else Split_PPC (Prag);
              end Applied_On_Conjunct;
  
              -----------------------
--- 4122,4128 ----
              begin
                 --  Expr is the conjunct of an enclosing "and" expression
  
!                return Nkind (Parent (Expr)) in N_Subexpr;
              end Applied_On_Conjunct;
  
              -----------------------
*************** package body Sem_Util is
*** 4228,4234 ****
              -------------------
  
              function Has_No_Output (Subp : Entity_Id) return Boolean is
!                Param : Node_Id;
  
              begin
                 --  A function has its result as output
--- 4185,4191 ----
              -------------------
  
              function Has_No_Output (Subp : Entity_Id) return Boolean is
!                Param : Entity_Id;
  
              begin
                 --  A function has its result as output
*************** package body Sem_Util is
*** 4364,4374 ****
           -------------------------
  
           function Mentions_Post_State (N : Node_Id) return Boolean is
-             Post_State_Seen : Boolean := False;
- 
              function Is_Post_State (N : Node_Id) return Traverse_Result;
!             --  Attempt to find a construct that denotes a post-state. If this
!             --  is the case, set flag Post_State_Seen.
  
              -------------------
              -- Is_Post_State --
--- 4321,4329 ----
           -------------------------
  
           function Mentions_Post_State (N : Node_Id) return Boolean is
              function Is_Post_State (N : Node_Id) return Traverse_Result;
!             --  If called with a construct that denotes a post-state, then
!             --  abandon the search.
  
              -------------------
              -- Is_Post_State --
*************** package body Sem_Util is
*** 4379,4385 ****
  
              begin
                 if Nkind (N) in N_Explicit_Dereference | N_Function_Call then
-                   Post_State_Seen := True;
                    return Abandon;
  
                 elsif Nkind (N) in N_Expanded_Name | N_Identifier then
--- 4334,4339 ----
*************** package body Sem_Util is
*** 4403,4409 ****
                                and then Nkind (Parent (N)) =
                                           N_Selected_Component)
                    then
-                      Post_State_Seen := True;
                       return Abandon;
                    end if;
  
--- 4357,4362 ----
*************** package body Sem_Util is
*** 4412,4418 ****
                       return Skip;
  
                    elsif Attribute_Name (N) = Name_Result then
-                      Post_State_Seen := True;
                       return Abandon;
                    end if;
                 end if;
--- 4365,4370 ----
*************** package body Sem_Util is
*** 4420,4433 ****
                 return OK;
              end Is_Post_State;
  
!             procedure Find_Post_State is new Traverse_Proc (Is_Post_State);
  
           --  Start of processing for Mentions_Post_State
  
           begin
!             Find_Post_State (N);
! 
!             return Post_State_Seen;
           end Mentions_Post_State;
  
           --  Local variables
--- 4372,4383 ----
                 return OK;
              end Is_Post_State;
  
!             function Find_Post_State is new Traverse_Func (Is_Post_State);
  
           --  Start of processing for Mentions_Post_State
  
           begin
!             return Find_Post_State (N) = Abandon;
           end Mentions_Post_State;
  
           --  Local variables
*************** package body Sem_Util is
*** 5021,5027 ****
                    end if;
                 end if;
  
!                   Next_Elmt (State_Elmt);
              end loop;
           end if;
        end Report_Unused_Body_States;
--- 4971,4977 ----
                    end if;
                 end if;
  
!                Next_Elmt (State_Elmt);
              end loop;
           end if;
        end Report_Unused_Body_States;
*************** package body Sem_Util is
*** 5978,5984 ****
                          else
                             Error_Msg
                               ("\Constraint_Error will be raised"
!                               & " for objects of this type??", Eloc, N);
                          end if;
                       end if;
                    end;
--- 5928,5934 ----
                          else
                             Error_Msg
                               ("\Constraint_Error will be raised"
!                               & " for objects of this type", Eloc, N);
                          end if;
                       end if;
                    end;
*************** package body Sem_Util is
*** 6277,6284 ****
        --  Create a new entity for the defining unit name
  
        Def_Id := Defining_Unit_Name (Result);
!       Set_Defining_Unit_Name (Result,
!         Make_Defining_Identifier (Sloc (Def_Id), Chars (Def_Id)));
  
        --  Create new entities for the formal parameters
  
--- 6227,6243 ----
        --  Create a new entity for the defining unit name
  
        Def_Id := Defining_Unit_Name (Result);
! 
!       case Nkind (Def_Id) is
!          when N_Defining_Identifier =>
!             Def_Id := Make_Defining_Identifier (Sloc (Def_Id), Chars (Def_Id));
!          when N_Defining_Operator_Symbol =>
!             Def_Id :=
!               Make_Defining_Operator_Symbol (Sloc (Def_Id), Chars (Def_Id));
!          when others => raise Program_Error;
!       end case;
! 
!       Set_Defining_Unit_Name (Result, Def_Id);
  
        --  Create new entities for the formal parameters
  
*************** package body Sem_Util is
*** 6343,6353 ****
        end if;
     end Corresponding_Generic_Type;
  
!    --------------------------------
!    -- Corresponding_Primitive_Op --
!    --------------------------------
  
!    function Corresponding_Primitive_Op
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id
     is
--- 6302,6312 ----
        end if;
     end Corresponding_Generic_Type;
  
!    --------------------------------------
!    -- Corresponding_Op_Of_Derived_Type --
!    --------------------------------------
  
!    function Corresponding_Op_Of_Derived_Type
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id
     is
*************** package body Sem_Util is
*** 6369,6375 ****
  
        begin
           while Present (E) and then E /= Prim loop
!             if not Is_Tagged_Type (E)
                and then Contains (Direct_Primitive_Operations (E), Prim)
              then
                 return E;
--- 6328,6334 ----
  
        begin
           while Present (E) and then E /= Prim loop
!             if Is_Type (E) and then not Is_Tagged_Type (E)
                and then Contains (Direct_Primitive_Operations (E), Prim)
              then
                 return E;
*************** package body Sem_Util is
*** 6378,6414 ****
              Next_Entity (E);
           end loop;
  
!          pragma Assert (False);
           return Empty;
        end Find_Untagged_Type_Of;
  
-       Typ  : constant Entity_Id :=
-                (if Is_Dispatching_Operation (Ancestor_Op)
-                  then Find_Dispatching_Type (Ancestor_Op)
-                  else Find_Untagged_Type_Of (Ancestor_Op));
- 
        ------------------------------
        -- Profile_Matches_Ancestor --
        ------------------------------
  
        function Profile_Matches_Ancestor (S : Entity_Id) return Boolean is
!          F1 : Entity_Id := First_Formal (Ancestor_Op);
!          F2 : Entity_Id := First_Formal (S);
  
        begin
           if Ekind (Ancestor_Op) /= Ekind (S) then
              return False;
           end if;
  
!          --  ??? This should probably account for anonymous access formals,
!          --  but the parent function (Corresponding_Primitive_Op) is currently
!          --  only called for user-defined literal functions, which can't have
!          --  such formals. But if this is ever used in a more general context
!          --  it should be extended to handle such formals (and result types).
  
           while Present (F1) and then Present (F2) loop
!             if Etype (F1) = Etype (F2)
!               or else Is_Ancestor (Typ, Etype (F2))
              then
                 Next_Formal (F1);
                 Next_Formal (F2);
--- 6337,6376 ----
              Next_Entity (E);
           end loop;
  
!          --  If a primitive is not found, then return Empty, and in that case
!          --  the ancestor subprogram will be returned (which can occur in
!          --  class-wide subprogram cases, which are not primitives).
! 
           return Empty;
        end Find_Untagged_Type_Of;
  
        ------------------------------
        -- Profile_Matches_Ancestor --
        ------------------------------
  
        function Profile_Matches_Ancestor (S : Entity_Id) return Boolean is
!          F1          : Entity_Id := First_Formal (Ancestor_Op);
!          F2          : Entity_Id := First_Formal (S);
!          Impl_Type_1 : Entity_Id;
!          Impl_Type_2 : Entity_Id;
  
        begin
           if Ekind (Ancestor_Op) /= Ekind (S) then
              return False;
           end if;
  
!          --  ??? This function should probably be extended to account for
!          --  anonymous access formals and anonymous access result types.
  
           while Present (F1) and then Present (F2) loop
!             Impl_Type_1 := Implementation_Base_Type (Etype (F1));
!             Impl_Type_2 := Implementation_Base_Type (Etype (F2));
! 
!             if Impl_Type_1 = Impl_Type_2
!               or else Is_Ancestor (Impl_Type_1, Impl_Type_2)
!               or else (Is_Interface (Impl_Type_1)
!                          and then
!                        Is_Progenitor (Impl_Type_1, Impl_Type_2))
              then
                 Next_Formal (F1);
                 Next_Formal (F2);
*************** package body Sem_Util is
*** 6417,6438 ****
              end if;
           end loop;
  
           return No (F1)
             and then No (F2)
!            and then (Etype (Ancestor_Op) = Etype (S)
!                       or else Is_Ancestor (Typ, Etype (S)));
        end Profile_Matches_Ancestor;
  
        --  Local variables
  
        Elmt : Elmt_Id;
        Subp : Entity_Id;
  
!    --  Start of processing for Corresponding_Primitive_Op
  
     begin
!       pragma Assert (Is_Ancestor (Typ, Descendant_Type)
!                       or else Is_Progenitor (Typ, Descendant_Type));
  
        Elmt := First_Elmt (Primitive_Operations (Descendant_Type));
  
--- 6379,6418 ----
              end if;
           end loop;
  
+          Impl_Type_1 := Implementation_Base_Type (Etype (Ancestor_Op));
+          Impl_Type_2 := Implementation_Base_Type (Etype (S));
+ 
           return No (F1)
             and then No (F2)
!            and then (Impl_Type_1 = Impl_Type_2
!                        or else
!                      Is_Ancestor (Impl_Type_1, Impl_Type_2)
!                        or else
!                      (Is_Interface (Impl_Type_1)
!                        and then Is_Progenitor (Impl_Type_1, Impl_Type_2)));
        end Profile_Matches_Ancestor;
  
        --  Local variables
  
        Elmt : Elmt_Id;
        Subp : Entity_Id;
+       Typ  : constant Entity_Id :=
+                (if Is_Dispatching_Operation (Ancestor_Op)
+                 then Find_Dispatching_Type (Ancestor_Op)
+                 else Find_Untagged_Type_Of (Ancestor_Op));
  
!    --  Start of processing for Corresponding_Op_Of_Derived_Type
  
     begin
!       --  If Ancestor_Op isn't a primitive of the parent type, then simply
!       --  return it (it can be a nonprimitive class-wide subprogram).
! 
!       if No (Typ)
!         or else (not Is_Ancestor (Typ, Descendant_Type)
!                   and then not Is_Progenitor (Typ, Descendant_Type))
!       then
!          return Ancestor_Op;
!       end if;
  
        Elmt := First_Elmt (Primitive_Operations (Descendant_Type));
  
*************** package body Sem_Util is
*** 6472,6478 ****
  
        pragma Assert (False);
        return Empty;
!    end Corresponding_Primitive_Op;
  
     --------------------
     -- Current_Entity --
--- 6452,6458 ----
  
        pragma Assert (False);
        return Empty;
!    end Corresponding_Op_Of_Derived_Type;
  
     --------------------
     -- Current_Entity --
*************** package body Sem_Util is
*** 6738,6749 ****
--- 6718,6735 ----
           E := Entity (N);
        end if;
  
+       --  If we are checking in a default expression, the discriminant has been
+       --  rewritten as the corresponding discriminal.
+ 
        --  If we are checking for a protected type, the discriminant may have
        --  been rewritten as the corresponding discriminal of the original type
        --  or of the corresponding concurrent record, depending on whether we
        --  are in the spec or body of the protected type.
  
        return Ekind (E) = E_Discriminant
+         or else (In_Default_Expr
+                   and then Ekind (E) = E_In_Parameter
+                   and then Present (Discriminal_Link (E)))
          or else
            (Check_Concurrent
              and then Ekind (E) = E_In_Parameter
*************** package body Sem_Util is
*** 7201,7247 ****
        end if;
     end Designate_Same_Unit;
  
-    ---------------------------------------------
-    -- Diagnose_Iterated_Component_Association --
-    ---------------------------------------------
- 
-    procedure Diagnose_Iterated_Component_Association (N : Node_Id) is
-       Def_Id : constant Entity_Id := Defining_Identifier (N);
-       Aggr   : Node_Id;
- 
-    begin
-       --  Determine whether the iterated component association appears within
-       --  an aggregate. If this is the case, raise Program_Error because the
-       --  iterated component association cannot be left in the tree as is and
-       --  must always be processed by the related aggregate.
- 
-       Aggr := N;
-       while Present (Aggr) loop
-          if Nkind (Aggr) = N_Aggregate then
-             raise Program_Error;
- 
-          --  Prevent the search from going too far
- 
-          elsif Is_Body_Or_Package_Declaration (Aggr) then
-             exit;
-          end if;
- 
-          Aggr := Parent (Aggr);
-       end loop;
- 
-       --  At this point it is known that the iterated component association is
-       --  not within an aggregate. This is really a quantified expression with
-       --  a missing "all" or "some" quantifier.
- 
-       Error_Msg_N ("missing quantifier", Def_Id);
- 
-       --  Rewrite the iterated component association as True to prevent any
-       --  cascaded errors.
- 
-       Rewrite (N, New_Occurrence_Of (Standard_True, Sloc (N)));
-       Analyze (N);
-    end Diagnose_Iterated_Component_Association;
- 
     ------------------------
     -- Discriminated_Size --
     ------------------------
--- 7187,7192 ----
*************** package body Sem_Util is
*** 7515,7521 ****
     -------------------------------
  
     function Enclosing_Lib_Unit_Entity
!       (E : Entity_Id := Current_Scope) return Entity_Id
     is
        Unit_Entity : Entity_Id;
  
--- 7460,7466 ----
     -------------------------------
  
     function Enclosing_Lib_Unit_Entity
!      (E : Entity_Id := Current_Scope) return Entity_Id
     is
        Unit_Entity : Entity_Id;
  
*************** package body Sem_Util is
*** 7546,7552 ****
        while Present (Encl_Unit)
          and then Nkind (Unit (Encl_Unit)) = N_Subunit
        loop
!          Encl_Unit := Library_Unit (Encl_Unit);
        end loop;
  
        pragma Assert (Nkind (Encl_Unit) = N_Compilation_Unit);
--- 7491,7497 ----
        while Present (Encl_Unit)
          and then Nkind (Unit (Encl_Unit)) = N_Subunit
        loop
!          Encl_Unit := Subunit_Parent (Encl_Unit);
        end loop;
  
        pragma Assert (Nkind (Encl_Unit) = N_Compilation_Unit);
*************** package body Sem_Util is
*** 7819,7825 ****
              Set_Is_Immediately_Visible (E, False);
  
           --  Case of renaming declaration constructed for package instances.
!          --  if there is an explicit declaration with the same identifier,
           --  the renaming is not immediately visible any longer, but remains
           --  visible through selected component notation.
  
--- 7764,7770 ----
              Set_Is_Immediately_Visible (E, False);
  
           --  Case of renaming declaration constructed for package instances.
!          --  If there is an explicit declaration with the same identifier,
           --  the renaming is not immediately visible any longer, but remains
           --  visible through selected component notation.
  
*************** package body Sem_Util is
*** 7828,7834 ****
           then
              Set_Is_Immediately_Visible (E, False);
  
!          --  The new entity may be the package renaming, which has the same
           --  same name as a generic formal which has been seen already.
  
           elsif Nkind (Parent (Def_Id)) = N_Package_Renaming_Declaration
--- 7773,7779 ----
           then
              Set_Is_Immediately_Visible (E, False);
  
!          --  The new entity may be the package renaming, which has the
           --  same name as a generic formal which has been seen already.
  
           elsif Nkind (Parent (Def_Id)) = N_Package_Renaming_Declaration
*************** package body Sem_Util is
*** 8196,8208 ****
        if not Is_Constrained (Typ) then
           All_Static := False;
           Has_Empty  := False;
  
        --  A string literal has static bounds, and is not empty as long as it
        --  contains at least one character.
  
        elsif Ekind (Typ) = E_String_Literal_Subtype then
           All_Static := True;
!          Has_Empty  := String_Literal_Length (Typ) > 0;
        end if;
  
        --  Assume that all bounds are static and not empty
--- 8141,8155 ----
        if not Is_Constrained (Typ) then
           All_Static := False;
           Has_Empty  := False;
+          return;
  
        --  A string literal has static bounds, and is not empty as long as it
        --  contains at least one character.
  
        elsif Ekind (Typ) = E_String_Literal_Subtype then
           All_Static := True;
!          Has_Empty  := String_Literal_Length (Typ) = 0;
!          return;
        end if;
  
        --  Assume that all bounds are static and not empty
*************** package body Sem_Util is
*** 9102,9107 ****
--- 9049,9062 ----
                 Placement := Private_State_Space;
                 return;
  
+             --  The item or its enclosing package appear in the visible state
+             --  space of a generic package.
+ 
+             elsif Ekind (Pack_Id) = E_Generic_Package then
+                Placement := Not_In_Package;
+                Pack_Id := Empty;
+                return;
+ 
              --  When the item appears in the visible state space of a package,
              --  continue to climb the scope stack as this may not be the final
              --  state space.
*************** package body Sem_Util is
*** 9835,9842 ****
                       end if;
                    end;
                 else
!                   UI_Discrim_Value
!                     := Expr_Value (Type_Low_Bound (Discrim_Value_Subtype));
                 end if;
           end case;
  
--- 9790,9797 ----
                       end if;
                    end;
                 else
!                   UI_Discrim_Value :=
!                     Expr_Value (Type_Low_Bound (Discrim_Value_Subtype));
                 end if;
           end case;
  
*************** package body Sem_Util is
*** 9890,9903 ****
        if Present (Variant) then
           if Discrim_Value_Status = Static_Subtype then
              declare
!                Discrim_Value_Subtype_Intervals
!                  : constant Interval_Lists.Discrete_Interval_List
!                  := Interval_Lists.Type_Intervals (Discrim_Value_Subtype);
  
!                Variant_Intervals
!                  : constant Interval_Lists.Discrete_Interval_List
!                  := Interval_Lists.Choice_List_Intervals
!                      (Discrete_Choices => Discrete_Choices (Variant));
              begin
                 if not Interval_Lists.Is_Subset
                          (Subset => Discrim_Value_Subtype_Intervals,
--- 9845,9858 ----
        if Present (Variant) then
           if Discrim_Value_Status = Static_Subtype then
              declare
!                Discrim_Value_Subtype_Intervals :
!                  constant Interval_Lists.Discrete_Interval_List :=
!                  Interval_Lists.Type_Intervals (Discrim_Value_Subtype);
  
!                Variant_Intervals :
!                  constant Interval_Lists.Discrete_Interval_List :=
!                  Interval_Lists.Choice_List_Intervals
!                    (Discrete_Choices => Discrete_Choices (Variant));
              begin
                 if not Interval_Lists.Is_Subset
                          (Subset => Discrim_Value_Subtype_Intervals,
*************** package body Sem_Util is
*** 10089,10095 ****
  
     function Get_Body_From_Stub (N : Node_Id) return Node_Id is
     begin
!       return Proper_Body (Unit (Library_Unit (N)));
     end Get_Body_From_Stub;
  
     ---------------------
--- 10044,10050 ----
  
     function Get_Body_From_Stub (N : Node_Id) return Node_Id is
     begin
!       return Proper_Body (Unit (Stub_Subunit (N)));
     end Get_Body_From_Stub;
  
     ---------------------
*************** package body Sem_Util is
*** 10533,10539 ****
              H := High_Bound (Range_Expression (Constraint (N)));
           end if;
  
!       elsif Is_Entity_Name (N) and then Is_Type (Entity (N)) then
           Rng := Scalar_Range_Of_Type (Entity (N));
  
           if Error_Posted (Rng) then
--- 10488,10497 ----
              H := High_Bound (Range_Expression (Constraint (N)));
           end if;
  
!       elsif Is_Entity_Name (N)
!         and then Present (Entity (N))
!         and then Is_Type (Entity (N))
!       then
           Rng := Scalar_Range_Of_Type (Entity (N));
  
           if Error_Posted (Rng) then
*************** package body Sem_Util is
*** 10718,10732 ****
  
     function Get_Library_Unit_Name (Decl_Node : Node_Id) return String_Id is
        Unit_Name_Id : constant Unit_Name_Type := Get_Unit_Name (Decl_Node);
!       Buf : Bounded_String;
     begin
!       Get_Unit_Name_String (Buf, Unit_Name_Id);
! 
!       --  Remove the last seven characters (" (spec)" or " (body)")
! 
!       Buf.Length := Buf.Length - 7;
!       pragma Assert (Buf.Chars (Buf.Length + 1) = ' ');
! 
        return String_From_Name_Buffer (Buf);
     end Get_Library_Unit_Name;
  
--- 10676,10684 ----
  
     function Get_Library_Unit_Name (Decl_Node : Node_Id) return String_Id is
        Unit_Name_Id : constant Unit_Name_Type := Get_Unit_Name (Decl_Node);
!       Buf          : Bounded_String;
     begin
!       Get_Unit_Name_String (Buf, Unit_Name_Id, Suffix => False);
        return String_From_Name_Buffer (Buf);
     end Get_Library_Unit_Name;
  
*************** package body Sem_Util is
*** 10736,10761 ****
  
     function Get_Max_Queue_Length (Id : Entity_Id) return Uint is
        pragma Assert (Is_Entry (Id));
!       Prag : constant Entity_Id := Get_Pragma (Id, Pragma_Max_Queue_Length);
!       Max  : Uint;
  
     begin
        --  A value of 0 or -1 represents no maximum specified, and entries and
        --  entry families with no Max_Queue_Length aspect or pragma default to
        --  it.
  
!       if No (Prag) then
!          return Uint_0;
!       end if;
  
!       Max := Expr_Value
!         (Expression (First (Pragma_Argument_Associations (Prag))));
  
        --  Since -1 and 0 are equivalent, return 0 for instances of -1 for
        --  uniformity.
  
        if Max = -1 then
!          return Uint_0;
        end if;
  
        return Max;
--- 10688,10720 ----
  
     function Get_Max_Queue_Length (Id : Entity_Id) return Uint is
        pragma Assert (Is_Entry (Id));
!       PMQL  : constant Entity_Id := Get_Pragma (Id, Pragma_Max_Queue_Length);
!       PMEQL : constant Entity_Id :=
!          Get_Pragma (Id, Pragma_Max_Entry_Queue_Length);
!       Max   : Uint;
  
     begin
        --  A value of 0 or -1 represents no maximum specified, and entries and
        --  entry families with no Max_Queue_Length aspect or pragma default to
        --  it.
  
!       --  We have already checked that there is at most one of these pragmas
  
!       if Present (PMQL) then
!          Max := Expr_Value
!             (Expression (First (Pragma_Argument_Associations (PMQL))));
!       elsif Present (PMEQL) then
!          Max := Expr_Value
!             (Expression (First (Pragma_Argument_Associations (PMEQL))));
!       else
!          Max := Uint_0;
!       end if;
  
        --  Since -1 and 0 are equivalent, return 0 for instances of -1 for
        --  uniformity.
  
        if Max = -1 then
!          Max := Uint_0;
        end if;
  
        return Max;
*************** package body Sem_Util is
*** 11636,11643 ****
              declare
                 Constit_Elmt : Elmt_Id;
                 Constit_Id   : Entity_Id;
!                Constits     : constant Elist_Id
!                  := Part_Of_Constituents (Item_Id);
              begin
                 if Present (Constits) then
                    Constit_Elmt := First_Elmt (Constits);
--- 11595,11602 ----
              declare
                 Constit_Elmt : Elmt_Id;
                 Constit_Id   : Entity_Id;
!                Constits     : constant Elist_Id :=
!                  Part_Of_Constituents (Item_Id);
              begin
                 if Present (Constits) then
                    Constit_Elmt := First_Elmt (Constits);
*************** package body Sem_Util is
*** 12140,12150 ****
             and then Is_Constrained (Etype (Subtype_Mark (N)));
  
        --  For all other names, it is sufficient to have a constrained
!       --  Unchecked_Union nominal subtype.
  
        else
           return Is_Unchecked_Union (Etype (N))
!            and then Is_Constrained (Etype (N));
        end if;
     end Has_Inferable_Discriminants;
  
--- 12099,12112 ----
             and then Is_Constrained (Etype (Subtype_Mark (N)));
  
        --  For all other names, it is sufficient to have a constrained
!       --  Unchecked_Union nominal subtype, unless it is incomplete or
!       --  private because it cannot have a known discriminant part in
!       --  this case (RM B.3.3 (11/2)).
  
        else
           return Is_Unchecked_Union (Etype (N))
!            and then Is_Constrained (Etype (N))
!            and then not Is_Incomplete_Or_Private_Type (Etype (N));
        end if;
     end Has_Inferable_Discriminants;
  
*************** package body Sem_Util is
*** 12239,12245 ****
     begin
        return
          Ekind (Id) = E_Entry
!           and then Present (Get_Pragma (Id, Pragma_Max_Queue_Length));
     end Has_Max_Queue_Length;
  
     ---------------------------------
--- 12201,12210 ----
     begin
        return
          Ekind (Id) = E_Entry
!           and then
!             (Present (Get_Pragma (Id, Pragma_Max_Queue_Length))
!               or else
!              Present (Get_Pragma (Id, Pragma_Max_Entry_Queue_Length)));
     end Has_Max_Queue_Length;
  
     ---------------------------------
*************** package body Sem_Util is
*** 12370,12375 ****
--- 12335,12361 ----
          and then not Is_Record_Aggregate;
     end Is_Container_Aggregate;
  
+    -----------------------------
+    -- Is_Extended_Access_Type --
+    -----------------------------
+ 
+    function Is_Extended_Access_Type (Ent : Entity_Id) return Boolean is
+       Btype : constant Entity_Id := Available_View (Base_Type (Ent));
+    begin
+       if Has_Aspect (Btype, Aspect_Extended_Access) then
+          declare
+             Aspect_Expr : constant Node_Id :=
+               Expression (Find_Aspect (Btype, Aspect_Extended_Access));
+          begin
+             return No (Aspect_Expr) or else Expr_Value (Aspect_Expr) /= 0;
+          end;
+       elsif Is_Derived_Type (Btype) then
+          return Is_Extended_Access_Type (Etype (Btype));
+       else
+          return False;
+       end if;
+    end Is_Extended_Access_Type;
+ 
     ---------------------------------
     -- Side_Effect_Free_Statements --
     ---------------------------------
*************** package body Sem_Util is
*** 12667,12674 ****
                and then Class_Present (Prag)
              then
                 Pragma_Arg :=
!                  Nlists.First
!                    (Pragma_Argument_Associations (Prag));
  
                 if not Is_Static_Expression (Expression (Pragma_Arg)) then
                    return True;
--- 12653,12659 ----
                and then Class_Present (Prag)
              then
                 Pragma_Arg :=
!                  First (Pragma_Argument_Associations (Prag));
  
                 if not Is_Static_Expression (Expression (Pragma_Arg)) then
                    return True;
*************** package body Sem_Util is
*** 13106,13116 ****
        --  but now without any syntactic checks.
  
        case Ekind (E) is
-          --  Abstract states have option Relaxed_Initialization
- 
-          when E_Abstract_State =>
-             return Is_Relaxed_Initialization_State (E);
- 
           --  Constants have this aspect attached directly; for deferred
           --  constants, the aspect is attached to the partial view.
  
--- 13091,13096 ----
*************** package body Sem_Util is
*** 13268,13273 ****
--- 13248,13267 ----
        return All_Static;
     end Has_Static_Array_Bounds;
  
+    -----------------------------------
+    -- Has_Static_Empty_Array_Bounds --
+    -----------------------------------
+ 
+    function Has_Static_Empty_Array_Bounds (Typ : Node_Id) return Boolean is
+       All_Static : Boolean;
+       Has_Empty  : Boolean;
+ 
+    begin
+       Examine_Array_Bounds (Typ, All_Static, Has_Empty);
+ 
+       return Has_Empty;
+    end Has_Static_Empty_Array_Bounds;
+ 
     ---------------------------------------
     -- Has_Static_Non_Empty_Array_Bounds --
     ---------------------------------------
*************** package body Sem_Util is
*** 13503,13508 ****
--- 13497,13524 ----
        return False;
     end Has_Effectively_Volatile_Component;
  
+    ------------------------
+    -- Has_Enabled_Aspect --
+    ------------------------
+ 
+    function Has_Enabled_Aspect
+      (Id : Entity_Id;
+       A  : Aspect_Id)
+       return Boolean
+    is
+       Asp : constant Node_Id := Find_Aspect (Id, A);
+    begin
+       if Present (Asp) then
+          if Present (Expression (Asp)) then
+             return Is_True (Static_Boolean (Expression (Asp)));
+          else
+             return True;
+          end if;
+       else
+          return False;
+       end if;
+    end Has_Enabled_Aspect;
+ 
     ----------------------------
     -- Has_Volatile_Component --
     ----------------------------
*************** package body Sem_Util is
*** 13875,13884 ****
     -- In_Pragma_Expression --
     --------------------------
  
!    function In_Pragma_Expression (N : Node_Id; Nam : Name_Id) return Boolean is
!       P : Node_Id;
     begin
-       P := Parent (N);
        loop
           if No (P) then
              return False;
--- 13891,13902 ----
     -- In_Pragma_Expression --
     --------------------------
  
!    function In_Pragma_Expression
!      (N : Node_Id; Nam : Name_Id := No_Name) return Boolean
!    is
!       P : Node_Id := Parent (N);
! 
     begin
        loop
           if No (P) then
              return False;
*************** package body Sem_Util is
*** 13888,13894 ****
           elsif Is_Body_Or_Package_Declaration (P) then
              return False;
  
!          elsif Nkind (P) = N_Pragma and then Pragma_Name (P) = Nam then
              return True;
  
           else
--- 13906,13914 ----
           elsif Is_Body_Or_Package_Declaration (P) then
              return False;
  
!          elsif Nkind (P) = N_Pragma
!            and then (Nam = No_Name or else Pragma_Name (P) = Nam)
!          then
              return True;
  
           else
*************** package body Sem_Util is
*** 14510,14515 ****
--- 14530,14810 ----
        return Off * (Expr_Value (Exp) - Expr_Value (Low_Bound (Ind)));
     end Indexed_Component_Bit_Offset;
  
+    ------------------------------------
+    -- Inherit_Nonoverridable_Aspects --
+    ------------------------------------
+ 
+    procedure Inherit_Nonoverridable_Aspects
+      (Typ : Entity_Id; From_Typ : Entity_Id)
+    is
+ 
+       procedure Inherit_Nonoverridable_Aspect (Item : Node_Id);
+       --  Inherited nonoverridable aspects usually depend on operations of the
+       --  derived type, inherited or overridden. If an aspect is not explicitly
+       --  specified but rather is inherited, then its components (which usually
+       --  denote subprograms) must generally be associated with operations of
+       --  the derived type (with some exceptions, such as inherited class-wide
+       --  operations for indexing aspects). Item is a nonoverridable element
+       --  of From_Typ's Rep_Item list. A new aspect item is created and is
+       --  associated with the appropriate operations of the derived type,
+       --  and that aspect item is inserted at the beginning of Typ's Rep_Item
+       --  list. For an aspect that specifies a subprogram name, this procedure
+       --  also identifies which subprograms are denoted by the derived type's
+       --  inherited aspect (including inherited, overriding, and in some cases
+       --  new subprograms of the derived type).
+ 
+       -----------------------------------
+       -- Inherit_Nonoverridable_Aspect --
+       -----------------------------------
+ 
+       procedure Inherit_Nonoverridable_Aspect (Item : Node_Id) is
+          Loc            : constant Source_Ptr := Sloc (Typ);
+          Assoc          : Node_Id;
+          New_Item       : Node_Id;
+          Item_Aspect_Id : constant Nonoverridable_Aspect_Id :=
+            Get_Aspect_Id (Item);
+ 
+       begin
+          New_Item := Make_Aspect_Specification (
+            Sloc => Loc,
+            Identifier => Identifier (Item),
+            Expression => New_Copy_Tree (Expression (Item)));
+          Set_Entity (New_Item, Typ);
+ 
+          --  We are trying here to implement RM 13.1(15.5):
+          --    if the name denotes one or more primitive subprograms of
+          --    the type, the inherited aspect is a name that denotes the
+          --    corresponding primitive subprogram(s) of the derived type;
+ 
+          case Item_Aspect_Id is
+             when Aspect_Aggregate =>
+                Assoc := First (Component_Associations (Expression (New_Item)));
+ 
+                --  Replace aggregate operations coming from the aspect of the
+                --  parent type with the corresponding operations of the derived
+                --  type (which can be inherited or overriding).
+ 
+                while Present (Assoc) loop
+                   pragma Assert (Nkind (Expression (Assoc)) = N_Identifier);
+ 
+                   Set_Entity
+                     (Expression (Assoc),
+                      Corresponding_Op_Of_Derived_Type
+                        (Ancestor_Op     => Entity (Expression (Assoc)),
+                         Descendant_Type => Typ));
+                   Next (Assoc);
+                end loop;
+ 
+             when Aspect_Integer_Literal
+                | Aspect_Real_Literal
+                | Aspect_String_Literal
+             =>
+                Set_Entity
+                  (Expression (New_Item),
+                   Corresponding_Op_Of_Derived_Type
+                     (Ancestor_Op     => Entity (Expression (Item)),
+                      Descendant_Type => Typ));
+ 
+             --  Build corresponding attribute definition clause for following
+             --  name-valued aspects (needed later in Is_Confirming).
+ 
+             when Aspect_Default_Iterator
+                | Aspect_Constant_Indexing
+                | Aspect_Variable_Indexing
+             =>
+                declare
+                   Expr_Copy : constant Node_Id :=
+                     New_Copy_Tree (Expression (Item));
+ 
+                   Aitem : constant Node_Id :=
+                     Make_Attribute_Definition_Clause (Loc,
+                       Name       => New_Occurrence_Of (Typ, Loc),
+                       Chars      => Chars (Identifier (Item)),
+                       Expression => Expr_Copy);
+ 
+                   New_Entity            : Entity_Id := Empty;
+                   Parent_Indexing_Subps : Elist_Id;
+                   New_Indexing_Subps    : Elist_Id;
+                   Subp_Elmt             : Elmt_Id;
+ 
+                begin
+                   Set_Parent (Aitem, New_Item);
+ 
+                   if Nkind (Expr_Copy) in N_Has_Entity
+                     and then Present (Entity (Expr_Copy))
+                   then
+                      if Present (Primitive_Operations (Typ)) then
+ 
+                         --  Indexing aspects allow multiple subprograms
+ 
+                         if Item_Aspect_Id in Aspect_Constant_Indexing
+                                            | Aspect_Variable_Indexing
+                         then
+                            Parent_Indexing_Subps := Aspect_Subprograms (Item);
+                            Subp_Elmt := First_Elmt (Parent_Indexing_Subps);
+ 
+                            New_Indexing_Subps := No_Elist;
+ 
+                            --  First collect the functions of the derived type
+                            --  that correspond to the functions inherited from
+                            --  an ancestor type (From_Typ). Note that in some
+                            --  cases these may be class-wide functions rather
+                            --  than primitives.
+ 
+                            while Present (Subp_Elmt) loop
+                               New_Entity := Corresponding_Op_Of_Derived_Type
+                                               (Ancestor_Op => Node (Subp_Elmt),
+                                                Descendant_Type => Typ);
+ 
+                               --  Add the corresponding subprogram to the new
+                               --  aspect's list of subprograms.
+ 
+                               Append_New_Elmt (New_Entity, New_Indexing_Subps);
+ 
+                               Next_Elmt (Subp_Elmt);
+                            end loop;
+ 
+                            --  Traverse the primitive operations of the type
+                            --  to locate any indexing functions that have been
+                            --  added to the type (i.e., that have been neither
+                            --  inherited, nor override any of the inherited
+                            --  indexing functions).
+ 
+                            --  ??? Note that this doesn't currently account for
+                            --  the possibility of added nonprimitive indexing
+                            --  functions (class-wide functions of the derived
+                            --  type). This presumably would require traversing
+                            --  all of the declarations of the immediately
+                            --  enclosing declaration list, which perhaps we
+                            --  should arguably be doing in any case, rather
+                            --  than separately gathering inherited, overriding,
+                            --  and new indexing functions (and which might also
+                            --  be more efficient). Perhaps this could/should be
+                            --  done in Analyze_Aspects_At_Freeze_Point, but
+                            --  experimenting with that led to difficulties.
+ 
+                            declare
+                               Prim_Ops   : constant Elist_Id :=
+                                 Primitive_Operations (Typ);
+                               Prim_Elmt  : Elmt_Id := First_Elmt (Prim_Ops);
+                               Prim_Id    : Entity_Id;
+                               Valid_Func : Boolean;
+ 
+                            begin
+                               while Present (Prim_Elmt) loop
+                                  Prim_Id := Node (Prim_Elmt);
+ 
+                                  if Chars (Prim_Id) = Chars (Expression (Item))
+                                    and then
+                                      not Is_Inherited_Operation (Prim_Id)
+                                    and then
+                                      not Is_Overriding_Subprogram (Prim_Id)
+                                  then
+                                     --  Verify that the new primitive has
+                                     --  a correct profile to qualify as an
+                                     --  indexing function for Typ.
+ 
+                                     Check_Function_For_Indexing_Aspect
+                                       (New_Item, Typ, Prim_Id, Valid_Func);
+ 
+                                     if Valid_Func then
+                                        Append_New_Elmt
+                                          (Prim_Id, New_Indexing_Subps);
+                                     end if;
+                                  end if;
+ 
+                                  Next_Elmt (Prim_Elmt);
+                               end loop;
+                            end;
+ 
+                            --  Save new list of indexing functions on aspect
+ 
+                            Set_Aspect_Subprograms
+                              (New_Item, New_Indexing_Subps);
+ 
+                         --  Item_Aspect_Id = Aspect_Default_Iterator
+ 
+                         else
+                            New_Entity := Corresponding_Op_Of_Derived_Type
+                                            (Ancestor_Op => Entity (Expr_Copy),
+                                             Descendant_Type => Typ);
+                         end if;
+                      end if;
+ 
+                      Set_Entity (Expr_Copy, New_Entity);
+ 
+                      --  We want the Entity attributes of the two expressions
+                      --  to agree.
+ 
+                      Set_Entity (Expression (New_Item), Entity (Expr_Copy));
+ 
+                   end if;
+ 
+                   Set_From_Aspect_Specification (Aitem);
+                   Set_Is_Delayed_Aspect (Aitem);
+                   Set_Aspect_Rep_Item (New_Item, Aitem);
+                   Set_Parent (Aitem, New_Item);
+                end;
+ 
+             --  Nothing special to do for the other nonoverridable aspects
+ 
+             when Aspect_Implicit_Dereference
+                | Aspect_Iterator_Element
+                | Aspect_Max_Entry_Queue_Length
+                | Aspect_No_Controlled_Parts
+             =>
+                return;
+          end case;
+ 
+          Set_Expression_Copy (New_Item, New_Copy_Tree (Expression (New_Item)));
+ 
+          --  Place new aspect spec in list of rep clauses, to ensure
+          --  later resolution.
+ 
+          Set_Next_Rep_Item (New_Item, First_Rep_Item (Typ));
+          Set_First_Rep_Item (Typ, New_Item);
+          Set_Is_Delayed_Aspect (New_Item);
+          Set_Has_Delayed_Aspects (Typ);
+       end Inherit_Nonoverridable_Aspect;
+ 
+       --  Local declarations
+ 
+       Item : Node_Id;
+ 
+    --  Start of processing for Inherit_Nonoverridable_Aspects
+ 
+    begin
+       --  Typ may be the full type of a type derived from a private type,
+       --  in which case the full type primitive operations list can be empty.
+       --  In that case its nonoverridable aspects shouldn't be updated, and
+       --  we rely on the private view's aspect having been updated. (It's not
+       --  clear whether this is appropriate handling for these???)
+ 
+       if Has_Private_Declaration (Typ)
+         and then
+           (No (Direct_Primitive_Operations (Typ))
+             or else Is_Empty_Elmt_List (Direct_Primitive_Operations (Typ)))
+       then
+          return;
+       end if;
+ 
+       --  Inherit and update any nonoverridable aspects that come from the
+       --  parent type that should refer to inherited or overriding operations.
+ 
+       Item := First_Rep_Item (From_Typ);
+ 
+       while Present (Item) loop
+          if Nkind (Item) = N_Aspect_Specification
+            and then Get_Aspect_Id (Item) in Nonoverridable_Aspect_Id
+            and then Entity (Item) = Base_Type (From_Typ)
+          then
+             Inherit_Nonoverridable_Aspect (Item);
+          end if;
+ 
+          Item := Next_Rep_Item (Item);
+       end loop;
+    end Inherit_Nonoverridable_Aspects;
+ 
     -----------------------------
     -- Inherit_Predicate_Flags --
     -----------------------------
*************** package body Sem_Util is
*** 14794,14826 ****
     -- Inspect_Deferred_Constant_Completion --
     ------------------------------------------
  
!    procedure Inspect_Deferred_Constant_Completion (Decls : List_Id) is
!       Decl : Node_Id;
! 
     begin
!       Decl := First (Decls);
!       while Present (Decl) loop
  
!          --  Deferred constant signature
  
!          if Nkind (Decl) = N_Object_Declaration
!            and then Constant_Present (Decl)
!            and then No (Expression (Decl))
  
!             --  No need to check internally generated constants
  
!            and then Comes_From_Source (Decl)
  
!             --  The constant is not completed. A full object declaration or a
!             --  pragma Import complete a deferred constant.
  
!            and then not Has_Completion (Defining_Identifier (Decl))
!          then
!             Error_Msg_N
!               ("constant declaration requires initialization expression",
!               Defining_Identifier (Decl));
!          end if;
  
           Next (Decl);
        end loop;
     end Inspect_Deferred_Constant_Completion;
--- 15089,15124 ----
     -- Inspect_Deferred_Constant_Completion --
     ------------------------------------------
  
!    procedure Inspect_Deferred_Constant_Completion (Decl : Node_Id) is
     begin
!       --  Deferred constant signature
  
!       if Nkind (Decl) = N_Object_Declaration
!         and then Constant_Present (Decl)
!         and then No (Expression (Decl))
  
!          --  No need to check internally generated constants
  
!         and then Comes_From_Source (Decl)
  
!          --  The constant is not completed. A full object declaration or a
!          --  pragma Import complete a deferred constant.
  
!         and then not Has_Completion (Defining_Identifier (Decl))
!       then
!          Error_Msg_N
!            ("constant declaration requires initialization expression",
!            Defining_Identifier (Decl));
!       end if;
!    end Inspect_Deferred_Constant_Completion;
  
!    procedure Inspect_Deferred_Constant_Completion (Decls : List_Id) is
!       Decl : Node_Id;
  
+    begin
+       Decl := First (Decls);
+       while Present (Decl) loop
+          Inspect_Deferred_Constant_Completion (Decl);
           Next (Decl);
        end loop;
     end Inspect_Deferred_Constant_Completion;
*************** package body Sem_Util is
*** 15132,15140 ****
     -- Is_Aliased_View --
     ---------------------
  
!    function Is_Aliased_View (Obj : Node_Id) return Boolean is
        E : Entity_Id;
  
     begin
        if Is_Entity_Name (Obj) then
           E := Entity (Obj);
--- 15430,15447 ----
     -- Is_Aliased_View --
     ---------------------
  
!    function Is_Aliased_View
!      (Obj : Node_Id; For_Extended : Boolean := False) return Boolean
!    is
        E : Entity_Id;
  
+       --  Ensure that For_Extended parameter is propagated in recursive
+       --  calls by hiding the version that has the wrong default.
+ 
+       function Is_Aliased_View
+         (Obj : Node_Id; For_SF : Boolean := For_Extended) return Boolean
+         renames Sem_Util.Is_Aliased_View;
+ 
     begin
        if Is_Entity_Name (Obj) then
           E := Entity (Obj);
*************** package body Sem_Util is
*** 15188,15193 ****
--- 15495,15507 ----
                 and then Has_Aliased_Components
                            (Designated_Type (Etype (Prefix (Obj)))));
  
+       --  Handle a 'Super view conversion
+ 
+       elsif Nkind (Obj) = N_Attribute_Reference
+         and then Attribute_Name (Obj) = Name_Super
+       then
+          return Is_Aliased_View (Prefix (Obj));
+ 
        elsif Nkind (Obj) in N_Unchecked_Type_Conversion | N_Type_Conversion then
           return Is_Tagged_Type (Etype (Obj))
             and then Is_Aliased_View (Expression (Obj));
*************** package body Sem_Util is
*** 15199,15214 ****
--- 15513,15555 ----
        then
           return Is_Aliased_View (Expression (Obj));
  
+       elsif Is_Expanded_Class_Wide_Interface_Object_Decl (Parent (Obj)) then
+          return Is_Aliased
+                   (Defining_Identifier (Original_Node (Parent (Obj))));
+ 
        --  The dereference of an access-to-object value denotes an aliased view,
        --  but this routine uses the rules of the language so we need to exclude
        --  rewritten constructs that introduce artificial dereferences.
  
        elsif Nkind (Obj) = N_Explicit_Dereference then
+          --  If For_Extended is False then a dereference of an extended access
+          --  value is, by definition, not aliased.
+          --  This is to prevent covert illegal type conversion via either
+          --    Not_Extended_Type'(Extended_Ptr.all'Access)
+          --  or by passing Extended_Ptr.all as an actual parameter
+          --  corresponding to an explicitly aliased formal parameter
+          --  (which would allow the callee to evaluate Aliased_Param'Access).
+ 
+          if Is_Extended_Access_Type (Etype (Prefix (Obj)))
+            and then not For_Extended
+          then
+             return False;
+          end if;
+ 
           return not Is_Captured_Function_Call (Obj)
             and then not
               (Nkind (Parent (Obj)) = N_Object_Renaming_Declaration
                 and then Is_Return_Object (Defining_Entity (Parent (Obj))));
  
+       elsif Nkind (Obj) = N_Slice then
+          --  A slice of a bit-packed array is not considered aliased even
+          --  for an extended access type because even extended access types
+          --  don't support bit pointers.
+ 
+          return For_Extended
+            and then Is_Aliased_View (Prefix (Obj))
+            and then not Is_Bit_Packed_Array (Etype (Obj));
+ 
        else
           return False;
        end if;
*************** package body Sem_Util is
*** 15222,15231 ****
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean
     is
!       Par : Entity_Id;
! 
     begin
-       Par := E2;
        while Present (Par) and then Par /= Standard_Standard loop
           if Par = E1 then
              return True;
--- 15563,15570 ----
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean
     is
!       Par : Entity_Id := E2;
     begin
        while Present (Par) and then Par /= Standard_Standard loop
           if Par = E1 then
              return True;
*************** package body Sem_Util is
*** 15607,15612 ****
--- 15946,15954 ----
                 raise Program_Error;
           end case;
        end Names_Match;
+ 
+    --  Start of processing for Is_Confirming
+ 
     begin
        --  allow users to disable "shall be confirming" check, at least for now
        if Relaxed_RM_Semantics then
*************** package body Sem_Util is
*** 15623,15644 ****
              | Aspect_Iterator_Element
              | Aspect_Constant_Indexing
              | Aspect_Variable_Indexing =>
!             declare
!                Item_1 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_1);
!                Item_2 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_2);
!             begin
!                if Nkind (Item_1) /= N_Attribute_Definition_Clause
!                  or Nkind (Item_2) /= N_Attribute_Definition_Clause
!                then
!                   pragma Assert (Serious_Errors_Detected > 0);
!                   return True;
!                end if;
! 
!                return Names_Match (Expression (Item_1),
!                                    Expression (Item_2));
!             end;
  
!          --  A confirming aspect for Implicit_Derenfence on a derived type
           --  has already been checked in Analyze_Aspect_Implicit_Dereference,
           --  including the presence of renamed discriminants.
  
--- 15965,15974 ----
              | Aspect_Iterator_Element
              | Aspect_Constant_Indexing
              | Aspect_Variable_Indexing =>
!             return Names_Match (Expression (Aspect_Spec_1),
!                                 Expression (Aspect_Spec_2));
  
!          --  A confirming aspect for Implicit_Dereference on a derived type
           --  has already been checked in Analyze_Aspect_Implicit_Dereference,
           --  including the presence of renamed discriminants.
  
*************** package body Sem_Util is
*** 15890,15899 ****
                 elsif Nkind (Parent (Par)) = N_Object_Renaming_Declaration then
                    return False;
  
!                elsif Nkind (Parent (Par)) in
!                        N_Function_Call            |
!                        N_Procedure_Call_Statement |
!                        N_Entry_Call_Statement
                 then
                    --  Check that the element is not part of an actual for an
                    --  in-out parameter.
--- 16220,16227 ----
                 elsif Nkind (Parent (Par)) = N_Object_Renaming_Declaration then
                    return False;
  
!                elsif Nkind (Parent (Par)) in N_Entry_Call_Statement
!                                            | N_Subprogram_Call
                 then
                    --  Check that the element is not part of an actual for an
                    --  in-out parameter.
*************** package body Sem_Util is
*** 15904,15917 ****
  
                    begin
                       F := First_Formal (Entity (Name (Parent (Par))));
!                      A := First (Parameter_Associations (Parent (Par)));
                       while Present (F) loop
                          if A = Par and then Ekind (F) /= E_In_Parameter then
                             return False;
                          end if;
  
                          Next_Formal (F);
!                         Next (A);
                       end loop;
                    end;
  
--- 16232,16245 ----
  
                    begin
                       F := First_Formal (Entity (Name (Parent (Par))));
!                      A := First_Actual (Parent (Par));
                       while Present (F) loop
                          if A = Par and then Ekind (F) /= E_In_Parameter then
                             return False;
                          end if;
  
                          Next_Formal (F);
!                         Next_Actual (A);
                       end loop;
                    end;
  
*************** package body Sem_Util is
*** 16056,16061 ****
--- 16384,16412 ----
        P   : Node_Id;
  
     begin
+       --  Since Ada 2005, the "current instance" rule does not apply
+       --  to a type_mark in an access_definition (RM 8.6),
+       --  although it does apply in an access_to_object definition.
+       --  So the rule does not apply in the definition of an anonymous
+       --  access type, but it does apply in the definition of a named
+       --  access-to-object type.
+       --  The rule also does not apply in a designated subprogram profile.
+ 
+       if Ada_Version >= Ada_2005 then
+          case Nkind (Parent (N)) is
+             when N_Access_Definition | N_Access_Function_Definition =>
+                return False;
+             when N_Parameter_Specification =>
+                if Nkind (Parent (Parent (N))) in
+                  N_Access_To_Subprogram_Definition
+                then
+                   return False;
+                end if;
+             when others =>
+                null;
+          end case;
+       end if;
+ 
        --  Simplest case: entity is a concurrent type and we are currently
        --  inside the body. This will eventually be expanded into a call to
        --  Self (for tasks) or _object (for protected objects).
*************** package body Sem_Util is
*** 16105,16110 ****
--- 16456,16467 ----
              elsif Nkind (P) = N_Pragma
                and then Get_Pragma_Id (P) in Pragma_Predicate
                                            | Pragma_Predicate_Failure
+ 
+               --  For "pragma Predicate (T, Is_OK (T))", return False for the
+               --  first use of T and True for the second.
+ 
+               and then
+                 N /= Expression (First (Pragma_Argument_Associations (P)))
              then
                 declare
                    Arg : constant Entity_Id :=
*************** package body Sem_Util is
*** 16120,16126 ****
           end loop;
        end if;
  
!       --  In any other context this is not a current occurrence
  
        return False;
     end Is_Current_Instance;
--- 16477,16483 ----
           end loop;
        end if;
  
!       --  In any other context this is not a current instance reference.
  
        return False;
     end Is_Current_Instance;
*************** package body Sem_Util is
*** 16658,16666 ****
     -- Is_Effectively_Volatile --
     -----------------------------
  
!    function Is_Effectively_Volatile
!      (Id               : Entity_Id;
!       Ignore_Protected : Boolean := False) return Boolean is
     begin
        if Is_Type (Id) then
  
--- 17015,17023 ----
     -- Is_Effectively_Volatile --
     -----------------------------
  
!    function Is_Effectively_Volatile (Id : Entity_Id) return Boolean is
!       Comp         : Entity_Id;
!       Has_Vol_Comp : Boolean := False;
     begin
        if Is_Type (Id) then
  
*************** package body Sem_Util is
*** 16691,16705 ****
                    --  private type may be missing in case of error.
  
                    return Present (Anc)
!                     and then Is_Effectively_Volatile
!                       (Component_Type (Anc), Ignore_Protected);
                 end;
              end if;
  
!          --  A protected type is always volatile unless Ignore_Protected is
!          --  True.
  
!          elsif Is_Protected_Type (Id) and then not Ignore_Protected then
              return True;
  
           --  A descendant of Ada.Synchronous_Task_Control.Suspension_Object is
--- 17048,17060 ----
                    --  private type may be missing in case of error.
  
                    return Present (Anc)
!                     and then Is_Effectively_Volatile (Component_Type (Anc));
                 end;
              end if;
  
!          --  A protected type is always volatile
  
!          elsif Is_Protected_Type (Id) then
              return True;
  
           --  A descendant of Ada.Synchronous_Task_Control.Suspension_Object is
*************** package body Sem_Util is
*** 16708,16713 ****
--- 17063,17097 ----
           elsif Is_Descendant_Of_Suspension_Object (Id) then
              return True;
  
+          --  A record type for which all components have an effectively
+          --  volatile type.
+ 
+          elsif Is_Record_Type (Id) then
+ 
+             --  Inspect all components defined in the scope of the type,
+             --  looking for those whose type is not effecively volatile.
+ 
+             Comp := First_Component (Id);
+             while Present (Comp) loop
+                if Comes_From_Source (Comp) then
+                   if Is_Effectively_Volatile (Etype (Comp)) then
+                      Has_Vol_Comp := True;
+ 
+                   --  The component is not effecively volatile
+ 
+                   else
+                      return False;
+                   end if;
+                end if;
+ 
+                Next_Component (Comp);
+             end loop;
+ 
+             --  If we get here, then all components are of an effectively
+             --  volatile type.
+ 
+             return Has_Vol_Comp;
+ 
           --  Otherwise the type is not effectively volatile
  
           else
*************** package body Sem_Util is
*** 16725,16731 ****
              and then not
                (Ekind (Id) = E_Variable and then No_Caching_Enabled (Id)))
               or else Has_Volatile_Components (Id)
!              or else Is_Effectively_Volatile (Etype (Id), Ignore_Protected);
        end if;
     end Is_Effectively_Volatile;
  
--- 17109,17115 ----
              and then not
                (Ekind (Id) = E_Variable and then No_Caching_Enabled (Id)))
               or else Has_Volatile_Components (Id)
!              or else Is_Effectively_Volatile (Etype (Id));
        end if;
     end Is_Effectively_Volatile;
  
*************** package body Sem_Util is
*** 16734,16752 ****
     -----------------------------------------
  
     function Is_Effectively_Volatile_For_Reading
!      (Id               : Entity_Id;
!       Ignore_Protected : Boolean := False) return Boolean
     is
     begin
!       --  A concurrent type is effectively volatile for reading, except for a
!       --  protected type when Ignore_Protected is True.
  
!       if Is_Task_Type (Id)
!         or else (Is_Protected_Type (Id) and then not Ignore_Protected)
!       then
           return True;
  
!       elsif Is_Effectively_Volatile (Id, Ignore_Protected) then
  
          --  Other volatile types and objects are effectively volatile for
          --  reading when they have property Async_Writers or Effective_Reads
--- 17118,17133 ----
     -----------------------------------------
  
     function Is_Effectively_Volatile_For_Reading
!      (Id : Entity_Id) return Boolean
     is
+       Comp : Entity_Id;
     begin
!       --  A concurrent type is effectively volatile for reading
  
!       if Is_Concurrent_Type (Id) then
           return True;
  
!       elsif Is_Effectively_Volatile (Id) then
  
          --  Other volatile types and objects are effectively volatile for
          --  reading when they have property Async_Writers or Effective_Reads
*************** package body Sem_Util is
*** 16776,16783 ****
  
                 return Present (Anc)
                   and then Is_Effectively_Volatile_For_Reading
!                    (Component_Type (Anc), Ignore_Protected);
              end;
           end if;
        end if;
  
--- 17157,17181 ----
  
                 return Present (Anc)
                   and then Is_Effectively_Volatile_For_Reading
!                    (Component_Type (Anc));
              end;
+ 
+          --  In addition, a record type is effectively volatile for reading
+          --  if at least one component has an effectively volatile type for
+          --  reading.
+ 
+          elsif Is_Record_Type (Id) then
+             Comp := First_Component (Id);
+             while Present (Comp) loop
+                if Comes_From_Source (Comp)
+                  and then Is_Effectively_Volatile_For_Reading (Etype (Comp))
+                then
+                   return True;
+                end if;
+                Next_Component (Comp);
+             end loop;
+ 
+             return False;
           end if;
        end if;
  
*************** package body Sem_Util is
*** 16790,16798 ****
     ------------------------------------
  
     function Is_Effectively_Volatile_Object (N : Node_Id) return Boolean is
-       function Is_Effectively_Volatile (E : Entity_Id) return Boolean is
-          (Is_Effectively_Volatile (E, Ignore_Protected => False));
- 
        function Is_Effectively_Volatile_Object_Inst
        is new Is_Effectively_Volatile_Object_Shared (Is_Effectively_Volatile);
     begin
--- 17188,17193 ----
*************** package body Sem_Util is
*** 16806,16815 ****
     function Is_Effectively_Volatile_Object_For_Reading
       (N : Node_Id) return Boolean
     is
-       function Is_Effectively_Volatile_For_Reading
-         (E : Entity_Id) return Boolean
-       is (Is_Effectively_Volatile_For_Reading (E, Ignore_Protected => False));
- 
        function Is_Effectively_Volatile_Object_For_Reading_Inst
        is new Is_Effectively_Volatile_Object_Shared
          (Is_Effectively_Volatile_For_Reading);
--- 17201,17206 ----
*************** package body Sem_Util is
*** 17156,17161 ****
--- 17547,17559 ----
        --  Record types
  
        elsif Is_Record_Type (Typ) then
+          --  Mutably tagged types get default initialized to their parent
+          --  subtype's default values.
+ 
+          if Is_Mutably_Tagged_CW_Equivalent_Type (Typ) then
+             return True;
+          end if;
+ 
           if Has_Defaulted_Discriminants (Typ)
             and then Is_Fully_Initialized_Variant (Typ)
           then
*************** package body Sem_Util is
*** 17183,17190 ****
                 if Present (Utyp) then
                    declare
                       Init : constant Entity_Id :=
!                               (Find_Optional_Prim_Op
!                                  (Utyp, Name_Initialize));
  
                    begin
                       if Present (Init)
--- 17581,17587 ----
                 if Present (Utyp) then
                    declare
                       Init : constant Entity_Id :=
!                               Find_Controlled_Prim_Op (Utyp, Name_Initialize);
  
                    begin
                       if Present (Init)
*************** package body Sem_Util is
*** 17193,17202 ****
                       then
                          return True;
  
!                      elsif Has_Null_Extension (Typ)
!                         and then
!                           Is_Fully_Initialized_Type
!                             (Etype (Base_Type (Typ)))
                       then
                          return True;
                       end if;
--- 17590,17600 ----
                       then
                          return True;
  
!                      elsif Is_Tagged_Type (Typ)
!                        and then Is_Derived_Type (Typ)
!                        and then Has_Null_Extension (Typ)
!                        and then
!                          Is_Fully_Initialized_Type (Etype (Base_Type (Typ)))
                       then
                          return True;
                       end if;
*************** package body Sem_Util is
*** 18360,18366 ****
              when N_Allocator
                 | N_Qualified_Expression
                 | N_Type_Conversion
-                | N_Unchecked_Expression
                 | N_Unchecked_Type_Conversion
              =>
                 --  Subpool_Handle_Name and Subtype_Mark are left out because
--- 18758,18763 ----
*************** package body Sem_Util is
*** 18558,18565 ****
     function Is_Null_Extension_Of
       (Descendant, Ancestor : Entity_Id) return Boolean
     is
!       Ancestor_Type : constant Entity_Id
!         := Underlying_Type (Base_Type (Ancestor));
        Descendant_Type : Entity_Id := Underlying_Type (Base_Type (Descendant));
     begin
        pragma Assert (not Is_Class_Wide_Type (Descendant));
--- 18955,18962 ----
     function Is_Null_Extension_Of
       (Descendant, Ancestor : Entity_Id) return Boolean
     is
!       Ancestor_Type : constant Entity_Id :=
!         Underlying_Type (Base_Type (Ancestor));
        Descendant_Type : Entity_Id := Underlying_Type (Base_Type (Descendant));
     begin
        pragma Assert (not Is_Class_Wide_Type (Descendant));
*************** package body Sem_Util is
*** 18586,18607 ****
     function Is_Null_Record_Definition (Record_Def : Node_Id) return Boolean is
        Item : Node_Id;
     begin
!       --  Testing Null_Present is just an optimization, not required.
  
        if Null_Present (Record_Def) then
           return True;
        elsif Present (Variant_Part (Component_List (Record_Def))) then
           return False;
-       elsif No (Component_List (Record_Def)) then
-          return True;
        end if;
  
        Item := First_Non_Pragma (Component_Items (Component_List (Record_Def)));
  
        while Present (Item) loop
!          if Nkind (Item) = N_Component_Declaration
!            and then Is_Internal_Name (Chars (Defining_Identifier (Item)))
!          then
              null;
           else
              return False;
--- 18983,19001 ----
     function Is_Null_Record_Definition (Record_Def : Node_Id) return Boolean is
        Item : Node_Id;
     begin
!       --  Testing Null_Present is just an optimization, not required
  
        if Null_Present (Record_Def) then
           return True;
        elsif Present (Variant_Part (Component_List (Record_Def))) then
           return False;
        end if;
  
        Item := First_Non_Pragma (Component_Items (Component_List (Record_Def)));
  
        while Present (Item) loop
!          pragma Assert (Nkind (Item) = N_Component_Declaration);
!          if Is_Internal_Name (Chars (Defining_Identifier (Item))) then
              null;
           else
              return False;
*************** package body Sem_Util is
*** 19468,19477 ****
           elsif Nkind (Par) = N_Case_Expression then
              return Expr /= Expression (Par);
  
!          elsif Nkind (Par) in N_And_Then | N_Or_Else then
              return Expr = Right_Opnd (Par);
  
!          elsif Nkind (Par) in N_In | N_Not_In then
  
              --  If the membership includes several alternatives, only the first
              --  is definitely evaluated.
--- 19862,19871 ----
           elsif Nkind (Par) = N_Case_Expression then
              return Expr /= Expression (Par);
  
!          elsif Nkind (Par) in N_Short_Circuit then
              return Expr = Right_Opnd (Par);
  
!          elsif Nkind (Par) in N_Membership_Test then
  
              --  If the membership includes several alternatives, only the first
              --  is definitely evaluated.
*************** package body Sem_Util is
*** 19588,19626 ****
  
        --  Local variables
  
-       Par  : Node_Id;
        Expr : Node_Id;
  
     --  Start of processing for Is_Potentially_Unevaluated
  
     begin
        Expr := N;
!       Par  := N;
! 
!       --  A postcondition whose expression is a short-circuit is broken down
!       --  into individual aspects for better exception reporting. The original
!       --  short-circuit expression is rewritten as the second operand, and an
!       --  occurrence of 'Old in that operand is potentially unevaluated.
!       --  See sem_ch13.adb for details of this transformation. The reference
!       --  to 'Old may appear within an expression, so we must look for the
!       --  enclosing pragma argument in the tree that contains the reference.
! 
!       while Present (Par)
!         and then Nkind (Par) /= N_Pragma_Argument_Association
!       loop
!          if Is_Rewrite_Substitution (Par)
!            and then Nkind (Original_Node (Par)) = N_And_Then
!          then
!             return True;
!          end if;
! 
!          Par := Parent (Par);
!       end loop;
! 
!       --  Other cases; 'Old appears within other expression (not the top-level
!       --  conjunct in a postcondition) with a potentially unevaluated operand.
! 
!       Par := Parent (Expr);
  
        while Present (Par)
          and then Nkind (Par) /= N_Pragma_Argument_Association
--- 19982,19995 ----
  
        --  Local variables
  
        Expr : Node_Id;
+       Par  : Node_Id;
  
     --  Start of processing for Is_Potentially_Unevaluated
  
     begin
        Expr := N;
!       Par  := Parent (Expr);
  
        while Present (Par)
          and then Nkind (Par) /= N_Pragma_Argument_Association
*************** package body Sem_Util is
*** 20078,20084 ****
        return Is_RCI_Pkg_Decl_Cunit (Cunit)
          or else
           (Nkind (Unit (Cunit)) = N_Package_Body
!            and then Is_RCI_Pkg_Decl_Cunit (Library_Unit (Cunit)));
     end Is_RCI_Pkg_Spec_Or_Body;
  
     -----------------------------------------
--- 20447,20453 ----
        return Is_RCI_Pkg_Decl_Cunit (Cunit)
          or else
           (Nkind (Unit (Cunit)) = N_Package_Body
!            and then Is_RCI_Pkg_Decl_Cunit (Spec_Lib_Unit (Cunit)));
     end Is_RCI_Pkg_Spec_Or_Body;
  
     -----------------------------------------
*************** package body Sem_Util is
*** 20375,20385 ****
        --  for efficiency.
  
        return Ada_Version >= Ada_2022
!         and then Has_Aspect (Subp, Aspect_Static)
!         and then
!           (No (Find_Value_Of_Aspect (Subp, Aspect_Static))
!             or else Is_True (Static_Boolean
!                                (Find_Value_Of_Aspect (Subp, Aspect_Static))));
     end Is_Static_Function;
  
     -----------------------------
--- 20744,20750 ----
        --  for efficiency.
  
        return Ada_Version >= Ada_2022
!         and then Has_Enabled_Aspect (Subp, Aspect_Static);
     end Is_Static_Function;
  
     -----------------------------
*************** package body Sem_Util is
*** 20736,20741 ****
--- 21101,21129 ----
        return T = Universal_Integer or else T = Universal_Real;
     end Is_Universal_Numeric_Type;
  
+    -------------------------------------
+    -- Is_Unconstrained_Or_Tagged_Item --
+    -------------------------------------
+ 
+    function Is_Unconstrained_Or_Tagged_Item
+      (Item : Entity_Id) return Boolean
+    is
+       Typ : constant Entity_Id := Etype (Item);
+    begin
+       if Is_Tagged_Type (Typ) then
+          return True;
+ 
+       elsif Is_Array_Type (Typ)
+         or else Is_Record_Type (Typ)
+         or else Is_Private_Type (Typ)
+       then
+          return not Is_Constrained (Typ);
+ 
+       else
+          return False;
+       end if;
+    end Is_Unconstrained_Or_Tagged_Item;
+ 
     ------------------------------
     -- Is_User_Defined_Equality --
     ------------------------------
*************** package body Sem_Util is
*** 20998,21003 ****
--- 21386,21401 ----
        if Nkind (N) in N_Subexpr and then Assignment_OK (N) then
           return True;
  
+       --  It is possible that N is a selected component of a view conversion,
+       --  and in that case get the expression of the conversion and test
+       --  whether it is indeed a variable.
+ 
+       elsif Nkind (N) = N_Selected_Component
+         and then Is_View_Conversion (Ultimate_Prefix (N))
+         and then Is_Variable (Expression (Ultimate_Prefix (N)))
+       then
+          return True;
+ 
        --  Normally we go to the original node, but there is one exception where
        --  we use the rewritten node, namely when it is an explicit dereference.
        --  The generated code may rewrite a prefix which is an access type with
*************** package body Sem_Util is
*** 21100,21105 ****
--- 21498,21513 ----
                      and then Ekind (Typ) /= E_Access_Subprogram_Type;
                 end;
  
+             --  Handle the case where 'Super is present - representing a view
+             --  conversion.
+ 
+             when N_Attribute_Reference =>
+                if Attribute_Name (Orig_Node) = Name_Super then
+                   return Is_Variable (Prefix (Orig_Node));
+                end if;
+ 
+                return False;
+ 
              --  The type conversion is the case where we do not deal with the
              --  context dependent special case of an actual parameter. Thus
              --  the type conversion is only considered a variable for the
*************** package body Sem_Util is
*** 21141,21147 ****
          and then Nkind (Unqual_Conv (N)) in N_Has_Etype
        then
           if Is_Tagged_Type (Etype (N))
!            and then Is_Tagged_Type (Etype (Unqual_Conv (N)))
           then
              return True;
  
--- 21549,21557 ----
          and then Nkind (Unqual_Conv (N)) in N_Has_Etype
        then
           if Is_Tagged_Type (Etype (N))
!            and then (Is_Tagged_Type (Etype (Unqual_Conv (N)))
!                       or else Is_Class_Wide_Equivalent_Type
!                                 (Etype (Unqual_Conv (N))))
           then
              return True;
  
*************** package body Sem_Util is
*** 21230,21235 ****
--- 21640,21650 ----
        then
           return True;
  
+       --  A function with side-effects is volatile
+ 
+       elsif Is_Function_With_Side_Effects (Func_Id) then
+          return True;
+ 
        --  Otherwise the function is treated as volatile if it is subject to
        --  enabled pragma Volatile_Function.
  
*************** package body Sem_Util is
*** 22161,22169 ****
              --  Wrappers of class-wide pre/postconditions reference the
              --  parent primitive that has the inherited contract.
  
!             if Is_Wrapper (Subp_Id)
!               and then Present (LSP_Subprogram (Subp_Id))
!             then
                 Subp_Id := LSP_Subprogram (Subp_Id);
              end if;
  
--- 22576,22582 ----
              --  Wrappers of class-wide pre/postconditions reference the
              --  parent primitive that has the inherited contract.
  
!             if Is_LSP_Wrapper (Subp_Id) then
                 Subp_Id := LSP_Subprogram (Subp_Id);
              end if;
  
*************** package body Sem_Util is
*** 22232,22238 ****
              elsif Is_Record_Type (Input_Typ) then
                 Comp := First_Component (Input_Typ);
                 while Present (Comp) loop
!                   if Needs_Finalization (Etype (Comp)) then
                       return True;
                    end if;
  
--- 22645,22655 ----
              elsif Is_Record_Type (Input_Typ) then
                 Comp := First_Component (Input_Typ);
                 while Present (Comp) loop
!                   --  Skip _Parent component like Record_Type_Definition
! 
!                   if Chars (Comp) /= Name_uParent
!                     and then Needs_Finalization (Etype (Comp))
!                   then
                       return True;
                    end if;
  
*************** package body Sem_Util is
*** 22379,22384 ****
--- 22796,22803 ----
              return False;
           end Depends_On_Discriminant;
  
+       --  Start of processing for Caller_Known_Size_Record
+ 
        begin
           --  This is a protected type without Corresponding_Record_Type set,
           --  typically because expansion is disabled. The safe thing to do is
*************** package body Sem_Util is
*** 22388,22393 ****
--- 22807,22822 ----
              return True;
           end if;
  
+          --  If either size is specified for the type, then it's known in the
+          --  caller in particular. Note that, even if the clause is confirming,
+          --  this does not change the outcome since the size was already known.
+ 
+          if Has_Size_Clause (First_Subtype (Typ))
+            or else Has_Object_Size_Clause (First_Subtype (Typ))
+          then
+             return True;
+          end if;
+ 
           --  First see if we have a variant part and return False if it depends
           --  on discriminants.
  
*************** package body Sem_Util is
*** 22649,22654 ****
--- 23078,23088 ----
        then
           return True;
  
+       --  Mutably tagged types require default initialization
+ 
+       elsif Is_Mutably_Tagged_CW_Equivalent_Type (Typ) then
+          return True;
+ 
        --  If Initialize/Normalize_Scalars is in effect, string objects also
        --  need initialization, unless they are created in the course of
        --  expanding an aggregate (since in the latter case they will be
*************** package body Sem_Util is
*** 23477,23482 ****
--- 23911,23918 ----
                    Set_Chars (Result, Chars (Entity (Result)));
                 end if;
              end if;
+ 
+             Copy_Dimensions (From => N, To => Result);
           end if;
  
           return Result;
*************** package body Sem_Util is
*** 23863,23889 ****
           elsif EWA_Inner_Scope_Level > 0 then
              return;
  
-          --  Nothing to do when the entity does not denote a construct that
-          --  may appear within an N_Expression_With_Actions node. Relaxing
-          --  this restriction leads to a performance penalty.
- 
-          --  ??? this list is flaky, and may hide dormant bugs
-          --  Should functions be included???
- 
-          --  Quantified expressions contain an entity declaration that must
-          --  always be replaced when the expander is active, even if it has
-          --  not been analyzed yet like e.g. in predicates.
- 
-          elsif Ekind (Id) not in E_Block
-                                | E_Constant
-                                | E_Label
-                                | E_Procedure
-                                | E_Variable
-            and then not Is_Entity_Of_Quantified_Expression (Id)
-            and then not Is_Type (Id)
-          then
-             return;
- 
           --  Nothing to do when the entity was already visited
  
           elsif NCT_Tables_In_Use
--- 24299,24304 ----
*************** package body Sem_Util is
*** 24628,24635 ****
        First_Named : Node_Id := Empty;
        Found       : Boolean;
  
!       Formals_To_Match : Integer := 0;
!       Actuals_To_Match : Integer := 0;
  
        procedure Chain (A : Node_Id);
        --  Add named actual at the proper place in the list, using the
--- 25043,25050 ----
        First_Named : Node_Id := Empty;
        Found       : Boolean;
  
!       Formals_To_Match : Int := 0;
!       Actuals_To_Match : Int := 0;
  
        procedure Chain (A : Node_Id);
        --  Add named actual at the proper place in the list, using the
*************** package body Sem_Util is
*** 24690,24711 ****
           --  The name in the call is a function call that returns an access
           --  to subprogram. The designated type has the list of formals.
  
!          Formal := First_Formal (Designated_Type (S));
        else
!          Formal := First_Formal (S);
        end if;
  
-       while Present (Formal) loop
-          Formals_To_Match := Formals_To_Match + 1;
-          Next_Formal (Formal);
-       end loop;
- 
        --  Find if there is a named association, and verify that no positional
        --  associations appear after named ones.
  
!       if Present (Actuals) then
!          Actual := First (Actuals);
!       end if;
  
        while Present (Actual)
          and then Nkind (Actual) /= N_Parameter_Association
--- 25105,25119 ----
           --  The name in the call is a function call that returns an access
           --  to subprogram. The designated type has the list of formals.
  
!          Formals_To_Match := Number_Formals (Designated_Type (S));
        else
!          Formals_To_Match := Number_Formals (S);
        end if;
  
        --  Find if there is a named association, and verify that no positional
        --  associations appear after named ones.
  
!       Actual := First (Actuals);
  
        while Present (Actual)
          and then Nkind (Actual) /= N_Parameter_Association
*************** package body Sem_Util is
*** 24753,24762 ****
           Next (Actual);
        end loop;
  
!       if Present (Actuals) then
!          Actual := First (Actuals);
!       end if;
! 
        Formal := First_Formal (S);
        while Present (Formal) loop
  
--- 25161,25167 ----
           Next (Actual);
        end loop;
  
!       Actual := First (Actuals);
        Formal := First_Formal (S);
        while Present (Formal) loop
  
*************** package body Sem_Util is
*** 25363,25374 ****
     -- Number_Of_Elements_In_Array --
     ---------------------------------
  
!    function Number_Of_Elements_In_Array (T : Entity_Id) return Int is
        Indx : Node_Id;
        Typ  : Entity_Id;
        Low  : Node_Id;
        High : Node_Id;
!       Num  : Int := 1;
  
     begin
        pragma Assert (Is_Array_Type (T));
--- 25768,25779 ----
     -- Number_Of_Elements_In_Array --
     ---------------------------------
  
!    function Number_Of_Elements_In_Array (T : Entity_Id) return Nat is
        Indx : Node_Id;
        Typ  : Entity_Id;
        Low  : Node_Id;
        High : Node_Id;
!       Num  : Nat := 1;
  
     begin
        pragma Assert (Is_Array_Type (T));
*************** package body Sem_Util is
*** 25395,25401 ****
              return 0;
           else
              Num :=
!               Num * UI_To_Int ((Expr_Value (High) - Expr_Value (Low) + 1));
           end if;
  
           Next_Index (Indx);
--- 25800,25807 ----
              return 0;
           else
              Num :=
!               Num * Int'Max
!                 (0, UI_To_Int (Expr_Value (High) - Expr_Value (Low) + Uint_1));
           end if;
  
           Next_Index (Indx);
*************** package body Sem_Util is
*** 25745,25750 ****
--- 26151,26168 ----
        return Kind;
     end Policy_In_Effect;
  
+    -------------------------------------------
+    -- Preanalyze_And_Resolve_Without_Errors --
+    -------------------------------------------
+ 
+    procedure Preanalyze_And_Resolve_Without_Errors (N : Node_Id) is
+       Status : constant Boolean := Get_Ignore_Errors;
+    begin
+       Set_Ignore_Errors (True);
+       Preanalyze_And_Resolve (N);
+       Set_Ignore_Errors (Status);
+    end Preanalyze_And_Resolve_Without_Errors;
+ 
     -------------------------------
     -- Preanalyze_Without_Errors --
     -------------------------------
*************** package body Sem_Util is
*** 25773,25779 ****
     ----------------------------------
  
     function Predicate_Failure_Expression
!     (Typ : Entity_Id; Inherited_OK : Boolean) return Node_Id
     is
        PF_Aspect : constant Node_Id :=
          Find_Aspect (Typ, Aspect_Predicate_Failure);
--- 26191,26197 ----
     ----------------------------------
  
     function Predicate_Failure_Expression
!      (Typ : Entity_Id; Inherited_OK : Boolean) return Node_Id
     is
        PF_Aspect : constant Node_Id :=
          Find_Aspect (Typ, Aspect_Predicate_Failure);
*************** package body Sem_Util is
*** 25895,25903 ****
        ----------------------
  
        function Trace_Components
!          (T     : Entity_Id;
!           Check : Boolean) return Entity_Id
!        is
           Btype     : constant Entity_Id := Base_Type (T);
           Component : Entity_Id;
           P         : Entity_Id;
--- 26313,26321 ----
        ----------------------
  
        function Trace_Components
!         (T     : Entity_Id;
!          Check : Boolean) return Entity_Id
!       is
           Btype     : constant Entity_Id := Base_Type (T);
           Component : Entity_Id;
           P         : Entity_Id;
*************** package body Sem_Util is
*** 26201,26206 ****
--- 26619,26676 ----
        end if;
     end Propagate_Concurrent_Flags;
  
+    --------------------------------
+    -- Propagate_Controlled_Flags --
+    --------------------------------
+ 
+    procedure Propagate_Controlled_Flags
+      (Typ      : Entity_Id;
+       From_Typ : Entity_Id;
+       Comp     : Boolean := False;
+       Deriv    : Boolean := False)
+    is
+    begin
+       --  It does not make sense to have both Comp and Deriv set True
+ 
+       pragma Assert (not Comp or else not Deriv);
+ 
+       --  This implementation only supports array types for the component case.
+       --  Disregard Is_Controlled_Active and Disable_Controlled in this case.
+ 
+       if Comp then
+          pragma Assert (Is_Array_Type (Typ));
+ 
+       else
+          if Is_Controlled_Active (From_Typ) then
+             Set_Is_Controlled_Active (Typ);
+          end if;
+ 
+          if Disable_Controlled (From_Typ) then
+             Set_Disable_Controlled (Typ);
+          end if;
+       end if;
+ 
+       --  Direct controlled types do not inherit Finalize_Storage_Only
+ 
+       if not (Deriv and then Is_Controlled (From_Typ)) then
+          if Finalize_Storage_Only (From_Typ) then
+             Set_Finalize_Storage_Only (Typ);
+          end if;
+       end if;
+ 
+       --  Is_Controlled yields Has_Controlled_Component for component
+ 
+       if Has_Controlled_Component (From_Typ)
+         or else (Comp and then Is_Controlled (From_Typ))
+       then
+          Set_Has_Controlled_Component (Typ);
+       end if;
+ 
+       if Has_Relaxed_Finalization (From_Typ) then
+          Set_Has_Relaxed_Finalization (Typ);
+       end if;
+    end Propagate_Controlled_Flags;
+ 
     ------------------------------
     -- Propagate_DIC_Attributes --
     ------------------------------
*************** package body Sem_Util is
*** 26817,26829 ****
        K2 : constant Node_Kind := Nkind (N2);
  
     begin
!       if (K1 = N_Identifier or else K1 = N_Defining_Identifier)
!         and then (K2 = N_Identifier or else K2 = N_Defining_Identifier)
        then
           return Chars (N1) = Chars (N2);
  
!       elsif (K1 = N_Selected_Component or else K1 = N_Expanded_Name)
!         and then (K2 = N_Selected_Component or else K2 = N_Expanded_Name)
        then
           return Same_Name (Selector_Name (N1), Selector_Name (N2))
             and then Same_Name (Prefix (N1), Prefix (N2));
--- 27287,27299 ----
        K2 : constant Node_Kind := Nkind (N2);
  
     begin
!       if K1 in N_Identifier | N_Defining_Identifier
!         and then K2 in N_Identifier | N_Defining_Identifier
        then
           return Chars (N1) = Chars (N2);
  
!       elsif K1 in N_Selected_Component | N_Expanded_Name
!         and then K2 in N_Selected_Component | N_Expanded_Name
        then
           return Same_Name (Selector_Name (N1), Selector_Name (N2))
             and then Same_Name (Prefix (N1), Prefix (N2));
*************** package body Sem_Util is
*** 27651,27660 ****
        Pref : Node_Id;
  
     begin
!       --  Deal with indexed or selected component where prefix is modified
  
!       if Nkind (N) in N_Indexed_Component | N_Selected_Component then
!          Pref := Prefix (N);
  
           --  If prefix is access type, then it is the designated object that is
           --  being modified, which means we have no entity to set the flag on.
--- 28121,28135 ----
        Pref : Node_Id;
  
     begin
!       --  Deal with indexed components, selected components, or slices where
!       --  the prefix is modified.
  
!       if Nkind (N) in N_Indexed_Component | N_Selected_Component | N_Slice then
! 
!          --  Grab the original node to avoid looking at internally generated
!          --  objects.
! 
!          Pref := Original_Node (Prefix (N));
  
           --  If prefix is access type, then it is the designated object that is
           --  being modified, which means we have no entity to set the flag on.
*************** package body Sem_Util is
*** 27761,27771 ****
        end if;
  
        if Is_OK_Static_Expression (N) then
!          if not Raises_Constraint_Error (N) then
!             return Expr_Value (N);
!          else
!             return No_Uint;
!          end if;
  
        elsif Etype (N) = Any_Type then
           return No_Uint;
--- 28236,28242 ----
        end if;
  
        if Is_OK_Static_Expression (N) then
!          return Expr_Value (N);
  
        elsif Etype (N) = Any_Type then
           return No_Uint;
*************** package body Sem_Util is
*** 27793,27803 ****
        end if;
  
        if Is_OK_Static_Expression (N) then
!          if not Raises_Constraint_Error (N) then
!             return Expr_Value (N);
!          else
!             return No_Uint;
!          end if;
  
        elsif Etype (N) = Any_Type then
           return No_Uint;
--- 28264,28270 ----
        end if;
  
        if Is_OK_Static_Expression (N) then
!          return Expr_Value (N);
  
        elsif Etype (N) = Any_Type then
           return No_Uint;
*************** package body Sem_Util is
*** 27846,27856 ****
        R1 : constant Node_Id := Get_Referenced_Object (E1);
        R2 : constant Node_Id := Get_Referenced_Object (E2);
     begin
!       return     Is_Entity_Name (R1)
!         and then Is_Entity_Name (R2)
!         and then Entity (R1) /= Entity (R2)
!         and then not Is_Formal (Entity (R1))
!         and then not Is_Formal (Entity (R2));
     end Statically_Different;
  
     -----------------------------
--- 28313,28341 ----
        R1 : constant Node_Id := Get_Referenced_Object (E1);
        R2 : constant Node_Id := Get_Referenced_Object (E2);
     begin
!       --  Two identifiers are statically different if they denote different
!       --  entities that are not formal parameters.
! 
!       if Is_Entity_Name (R1) and then Is_Entity_Name (R2) then
!          return Entity (R1) /= Entity (R2)
!            and then not Is_Formal (Entity (R1))
!            and then not Is_Formal (Entity (R2));
! 
!       --  A function call that does not return its result by reference denotes
!       --  a constant object that is statically different from anything else.
! 
!       elsif (Nkind (R1) = N_Function_Call
!               and then Is_Entity_Name (Name (R1))
!               and then not Returns_By_Ref (Entity (Name (R1))))
!         or else (Nkind (R2) = N_Function_Call
!                   and then Is_Entity_Name (Name (R2))
!                   and then not Returns_By_Ref (Entity (Name (R2))))
!       then
!          return R1 /= R2;
! 
!       else
!          return False;
!       end if;
     end Statically_Different;
  
     -----------------------------
*************** package body Sem_Util is
*** 28034,28146 ****
            and then Has_Loop_Entry_Attributes (Entity (Identifier (Stmt)));
     end Subject_To_Loop_Entry_Attributes;
  
-    ---------------------
-    -- Subprogram_Name --
-    ---------------------
- 
-    function Subprogram_Name (N : Node_Id) return String is
-       Buf : Bounded_String;
-       Ent : Node_Id := N;
-       Nod : Node_Id;
- 
-    begin
-       while Present (Ent) loop
-          case Nkind (Ent) is
-             when N_Subprogram_Body =>
-                Ent := Defining_Unit_Name (Specification (Ent));
-                exit;
- 
-             when N_Subprogram_Declaration =>
-                Nod := Corresponding_Body (Ent);
- 
-                if Present (Nod) then
-                   Ent := Nod;
-                else
-                   Ent := Defining_Unit_Name (Specification (Ent));
-                end if;
- 
-                exit;
- 
-             when N_Subprogram_Instantiation
-                | N_Package_Body
-                | N_Package_Specification
-             =>
-                Ent := Defining_Unit_Name (Ent);
-                exit;
- 
-             when N_Protected_Type_Declaration =>
-                Ent := Corresponding_Body (Ent);
-                exit;
- 
-             when N_Protected_Body
-                | N_Task_Body
-             =>
-                Ent := Defining_Identifier (Ent);
-                exit;
- 
-             when N_Entity =>
-                exit;
- 
-             when others =>
-                null;
-          end case;
- 
-          Ent := Parent (Ent);
-       end loop;
- 
-       if No (Ent) then
-          return "unknown subprogram:unknown file:0:0";
-       end if;
- 
-       --  If the subprogram is a child unit, use its simple name to start the
-       --  construction of the fully qualified name.
- 
-       if Nkind (Ent) = N_Defining_Program_Unit_Name then
-          Ent := Defining_Identifier (Ent);
-       end if;
- 
-       Append_Entity_Name (Buf, Ent);
- 
-       --  Append homonym number if needed
- 
-       if Nkind (N) in N_Entity and then Has_Homonym (N) then
-          declare
-             H  : Entity_Id := Homonym (N);
-             Nr : Nat := 1;
- 
-          begin
-             while Present (H) loop
-                if Scope (H) = Scope (N) then
-                   Nr := Nr + 1;
-                end if;
- 
-                H := Homonym (H);
-             end loop;
- 
-             if Nr > 1 then
-                Append (Buf, '#');
-                Append (Buf, Nr);
-             end if;
-          end;
-       end if;
- 
-       --  Append source location of Ent to Buf so that the string will
-       --  look like "subp:file:line:col".
- 
-       declare
-          Loc : constant Source_Ptr := Sloc (Ent);
-       begin
-          Append (Buf, ':');
-          Append (Buf, Reference_Name (Get_Source_File_Index (Loc)));
-          Append (Buf, ':');
-          Append (Buf, Nat (Get_Logical_Line_Number (Loc)));
-          Append (Buf, ':');
-          Append (Buf, Nat (Get_Column_Number (Loc)));
-       end;
- 
-       return +Buf;
-    end Subprogram_Name;
- 
     -------------------------------
     -- Support_Atomic_Primitives --
     -------------------------------
--- 28519,28524 ----
*************** package body Sem_Util is
*** 28508,28517 ****
        Op_Missing : Boolean;
  
     begin
-       if not Restriction_Active (No_Default_Stream_Attributes) then
-          return Empty;
-       end if;
- 
        if Is_Elementary_Type (T) then
           if Op = TSS_Null then
              Op_Missing :=
--- 28886,28891 ----
*************** package body Sem_Util is
*** 28949,28955 ****
           Clause := First (Context_Items (Comp_Unit));
           while Present (Clause) loop
              if Nkind (Clause) = N_With_Clause then
!                if Library_Unit (Clause) = U then
                    return True;
  
                 --  The with_clause may denote a renaming of the unit we are
--- 29323,29329 ----
           Clause := First (Context_Items (Comp_Unit));
           while Present (Clause) loop
              if Nkind (Clause) = N_With_Clause then
!                if Withed_Lib_Unit (Clause) = U then
                    return True;
  
                 --  The with_clause may denote a renaming of the unit we are
*************** package body Sem_Util is
*** 28987,28993 ****
            (Nkind (Unit (Curr)) = N_Subprogram_Body
              and then not Acts_As_Spec (Unit (Curr)))
        then
!          if Unit_In_Context (Library_Unit (Curr)) then
              return True;
           end if;
        end if;
--- 29361,29367 ----
            (Nkind (Unit (Curr)) = N_Subprogram_Body
              and then not Acts_As_Spec (Unit (Curr)))
        then
!          if Unit_In_Context (Spec_Lib_Unit (Curr)) then
              return True;
           end if;
        end if;
*************** package body Sem_Util is
*** 28995,29004 ****
        --  If the spec is a child unit, examine the parents
  
        if Is_Child_Unit (Curr_Entity) then
!          if Nkind (Unit (Curr)) in N_Unit_Body then
              return
                Unit_In_Parent_Context
!                 (Parent_Spec (Unit (Library_Unit (Curr))));
           else
              return Unit_In_Parent_Context (Parent_Spec (Unit (Curr)));
           end if;
--- 29369,29378 ----
        --  If the spec is a child unit, examine the parents
  
        if Is_Child_Unit (Curr_Entity) then
!          if Nkind (Unit (Curr)) in N_Lib_Unit_Body then
              return
                Unit_In_Parent_Context
!                 (Parent_Spec (Unit (Spec_Lib_Unit (Curr))));
           else
              return Unit_In_Parent_Context (Parent_Spec (Unit (Curr)));
           end if;
*************** package body Sem_Util is
*** 29297,29302 ****
--- 29671,29721 ----
        return Scope_Within_Or_Same (Scope (E), S);
     end Within_Scope;
  
+    -----------------------------------
+    -- Within_Spec_Static_Expression --
+    -----------------------------------
+ 
+    function Within_Spec_Static_Expression (N : Node_Id) return Boolean is
+       P : Node_Id;
+ 
+    begin
+       if not In_Spec_Expression then
+          return False;
+ 
+       else
+          P := N;
+          loop
+             if No (P) then
+                return False;
+ 
+             --  Prevent the search from going too far
+ 
+             elsif Nkind (P) not in N_Subexpr then
+                return False;
+ 
+             elsif Is_OK_Static_Expression (P) then
+                return True;
+ 
+             --  Return True for static scalar subtypes that are prefixes of an
+             --  attribute (even if not yet marked static) since they will be
+             --  marked as static in Eval_Attribute (as called from Resolve_
+             --  Attribute).
+ 
+             elsif Present (Parent (P))
+               and then Nkind (Parent (P)) = N_Attribute_Reference
+               and then Is_Entity_Name (P)
+               and then Is_Type (Entity (P))
+               and then Is_OK_Static_Subtype (Entity (P))
+             then
+                return True;
+ 
+             else
+                P := Parent (P);
+             end if;
+          end loop;
+       end if;
+    end Within_Spec_Static_Expression;
+ 
     ----------------
     -- Wrong_Type --
     ----------------
*************** package body Sem_Util is
*** 29791,29797 ****
        --  Does the given value lie within the given interval?
  
        procedure Normalize_Interval_List
!          (List : in out Discrete_Interval_List; Last : out Nat);
        --  Perform sorting and merging as required by Check_Consistency
  
        -------------------------
--- 30210,30216 ----
        --  Does the given value lie within the given interval?
  
        procedure Normalize_Interval_List
!         (List : in out Discrete_Interval_List; Last : out Nat);
        --  Perform sorting and merging as required by Check_Consistency
  
        -------------------------
*************** package body Sem_Util is
*** 29855,29862 ****
           Comp := First (Component_Associations (N));
           while Present (Comp) loop
              declare
!                Choice_Intervals : constant Discrete_Interval_List
!                  := Choice_List_Intervals (Choices (Comp));
              begin
                 for J in Choice_Intervals'Range loop
                    Num_I := Num_I + 1;
--- 30274,30281 ----
           Comp := First (Component_Associations (N));
           while Present (Comp) loop
              declare
!                Choice_Intervals : constant Discrete_Interval_List :=
!                  Choice_List_Intervals (Choices (Comp));
              begin
                 for J in Choice_Intervals'Range loop
                    Num_I := Num_I + 1;
*************** package body Sem_Util is
*** 29870,29877 ****
           --  Normalize the lists sorting and merging the intervals
  
           declare
!             Aggr_Intervals : Discrete_Interval_List (1 .. Num_I)
!                                := Intervals (1 .. Num_I);
           begin
              Normalize_Interval_List (Aggr_Intervals, Num_I);
              Check_Consistency (Aggr_Intervals (1 .. Num_I));
--- 30289,30296 ----
           --  Normalize the lists sorting and merging the intervals
  
           declare
!             Aggr_Intervals : Discrete_Interval_List (1 .. Num_I) :=
!               Intervals (1 .. Num_I);
           begin
              Normalize_Interval_List (Aggr_Intervals, Num_I);
              Check_Consistency (Aggr_Intervals (1 .. Num_I));
*************** package body Sem_Util is
*** 29949,29956 ****
           while Present (Choice) loop
              if Nkind (Choice) = N_Others_Choice then
                 declare
!                   Others_Choice : Node_Id
!                     := First (Others_Discrete_Choices (Choice));
                 begin
                    while Present (Others_Choice) loop
                       Count := Count + 1;
--- 30368,30375 ----
           while Present (Choice) loop
              if Nkind (Choice) = N_Others_Choice then
                 declare
!                   Others_Choice : Node_Id :=
!                     First (Others_Discrete_Choices (Choice));
                 begin
                    while Present (Others_Choice) loop
                       Count := Count + 1;
*************** package body Sem_Util is
*** 29985,29992 ****
  
              when N_Subtype_Indication =>
                 declare
!                   Range_Exp : constant Node_Id
!                     := Range_Expression (Constraint (Choice));
                 begin
                    return (Low  => Expr_Value (Low_Bound (Range_Exp)),
                            High => Expr_Value (High_Bound (Range_Exp)));
--- 30404,30411 ----
  
              when N_Subtype_Indication =>
                 declare
!                   Range_Exp : constant Node_Id :=
!                     Range_Expression (Constraint (Choice));
                 begin
                    return (Low  => Expr_Value (Low_Bound (Range_Exp)),
                            High => Expr_Value (High_Bound (Range_Exp)));
*************** package body Sem_Util is
*** 30133,30140 ****
              Not_Null : Pos range List'Range;
              --  Index of the most recently examined non-null interval
  
!             Null_Interval : constant Discrete_Interval
!               := (Low => Uint_1, High => Uint_0); -- any null range ok here
           begin
              if List'Length = 0 or else Is_Null (List'First) then
                 Null_Interval_Count := List'Length;
--- 30552,30559 ----
              Not_Null : Pos range List'Range;
              --  Index of the most recently examined non-null interval
  
!             Null_Interval : constant Discrete_Interval :=
!               (Low => Uint_1, High => Uint_0); -- any null range ok here
           begin
              if List'Length = 0 or else Is_Null (List'First) then
                 Null_Interval_Count := List'Length;
*************** package body Sem_Util is
*** 30509,30563 ****
                       end if;
  
                    when N_Pragma =>
!                      declare
!                         Previous : constant Node_Id := Prev (Par);
!                         Prev_Expr : Node_Id;
!                      begin
!                         if Nkind (Previous) = N_Pragma and then
!                           Split_PPC (Previous)
!                         then
!                            --  A source-level postcondition of
!                            --    A and then B and then C
!                            --  results in
!                            --    pragma Postcondition (A);
!                            --    pragma Postcondition (B);
!                            --    pragma Postcondition (C);
!                            --  with Split_PPC set to True on all but the
!                            --  last pragma. We account for that here.
! 
!                            Prev_Expr :=
!                              Expression (First
!                                (Pragma_Argument_Associations (Previous)));
! 
!                            --  This Analyze call is needed in the case when
!                            --  Sem_Attr.Analyze_Attribute calls
!                            --  Eligible_For_Conditional_Evaluation. Without
!                            --  it, we end up passing an unanalyzed expression
!                            --  to Is_Known_On_Entry and that doesn't work.
! 
!                            Analyze (Prev_Expr);
! 
!                            Next_Element :=
!                              (Expr        => Prev_Expr,
!                               Context     => Short_Circuit_Op,
!                               Is_And_Then => True);
! 
!                            return Determining_Expressions (Prev_Expr)
!                              & Next_Element;
!                         else
!                            pragma Assert
!                              (Get_Pragma_Id (Pragma_Name (Par)) in
!                                 Pragma_Check
!                               | Pragma_Contract_Cases
!                               | Pragma_Exceptional_Cases
!                               | Pragma_Post
!                               | Pragma_Postcondition
!                               | Pragma_Post_Class
!                               | Pragma_Refined_Post);
  
!                            return (1 .. 0 => <>); -- recursion terminates here
!                         end if;
!                      end;
  
                    when N_Empty =>
                       --  This case should be impossible, but if it does
--- 30928,30946 ----
                       end if;
  
                    when N_Pragma =>
!                      pragma Assert
!                        (Get_Pragma_Id (Pragma_Name (Par)) in
!                           Pragma_Check
!                         | Pragma_Contract_Cases
!                         | Pragma_Exceptional_Cases
!                         | Pragma_Exit_Cases
!                         | Pragma_Post
!                         | Pragma_Postcondition
!                         | Pragma_Post_Class
!                         | Pragma_Refined_Post
!                         | Pragma_Test_Case);
  
!                      return (1 .. 0 => <>); -- recursion terminates here
  
                    when N_Empty =>
                       --  This case should be impossible, but if it does
*************** package body Sem_Util is
*** 30610,30616 ****
                    Determiners : constant Determining_Expression_List :=
                      Determining_Expressions (Expr);
                 begin
!                   pragma Assert (Determiners'Length > 0);
  
                    for Idx in Determiners'Range loop
                       if not Is_Known_On_Entry (Determiners (Idx).Expr) then
--- 30993,31000 ----
                    Determiners : constant Determining_Expression_List :=
                      Determining_Expressions (Expr);
                 begin
!                   pragma Assert (if Serious_Errors_Detected = 0 then
!                                    Determiners'Length > 0);
  
                    for Idx in Determiners'Range loop
                       if not Is_Known_On_Entry (Determiners (Idx).Expr) then
*************** package body Sem_Util is
*** 30805,30810 ****
--- 31189,31211 ----
                                return False;
                             end if;
  
+                            --  Handle constants introduced by side-effect
+                            --  removal, e.g. by validity checks.
+ 
+                            if not Comes_From_Source (Obj) then
+                               declare
+                                  D : constant Node_Id :=
+                                        Declaration_Node (Obj);
+                               begin
+                                  if Nkind (D) = N_Object_Renaming_Declaration
+                                  then
+                                     return Is_Known_On_Entry (Name (D));
+                                  else
+                                     return Is_Known_On_Entry (Expression (D));
+                                  end if;
+                               end;
+                            end if;
+ 
                             --  return False if not "all views are constant".
                             if Is_Immutably_Limited_Type (Obj_Typ)
                               or Needs_Finalization (Obj_Typ)
*************** package body Sem_Util is
*** 30842,30850 ****
                    return Is_Known_On_Entry (Expression (Expr));
  
                 when N_If_Expression =>
!                   if not All_Exps_Known_On_Entry (Expressions (Expr)) then
!                      return False;
!                   end if;
  
                 when N_Case_Expression =>
                    if not Is_Known_On_Entry (Expression (Expr)) then
--- 31243,31249 ----
                    return Is_Known_On_Entry (Expression (Expr));
  
                 when N_If_Expression =>
!                   return All_Exps_Known_On_Entry (Expressions (Expr));
  
                 when N_Case_Expression =>
                    if not Is_Known_On_Entry (Expression (Expr)) then
*************** package body Sem_Util is
*** 30865,30874 ****
                    return True;
  
                 when others =>
!                   null;
              end case;
- 
-             return False;
           end Is_Known_On_Entry;
  
        end Conditional_Evaluation;
--- 31264,31271 ----
                    return True;
  
                 when others =>
!                   return False;
              end case;
           end Is_Known_On_Entry;
  
        end Conditional_Evaluation;
*************** package body Sem_Util is
*** 30960,30968 ****
              -------------------------------------------
  
              procedure Declare_Indirect_Temp_Via_Allocation is
!                Access_Type_Id : constant Entity_Id
!                  := Make_Temporary
!                       (Loc, Indirect_Temp_Access_Type_Char, Attr_Prefix);
  
                 Temp_Decl : constant Node_Id :=
                   Make_Object_Declaration (Loc,
--- 31357,31365 ----
              -------------------------------------------
  
              procedure Declare_Indirect_Temp_Via_Allocation is
!                Access_Type_Id : constant Entity_Id :=
!                  Make_Temporary
!                    (Loc, Indirect_Temp_Access_Type_Char, Attr_Prefix);
  
                 Temp_Decl : constant Node_Id :=
                   Make_Object_Declaration (Loc,
*************** package body Sem_Util is
*** 31008,31021 ****
                    return New_Occurrence_Of (Typ, Loc);
                 end Designated_Subtype_Mark;
  
!                Access_Type_Def : constant Node_Id
!                  := Make_Access_To_Object_Definition
!                       (Loc, Subtype_Indication => Designated_Subtype_Mark);
  
!                Access_Type_Decl : constant Node_Id
!                  := Make_Full_Type_Declaration
!                       (Loc, Access_Type_Id,
!                        Type_Definition => Access_Type_Def);
              begin
                 Mutate_Ekind (Temp_Id, E_Variable);
                 Set_Etype (Temp_Id, Access_Type_Id);
--- 31405,31418 ----
                    return New_Occurrence_Of (Typ, Loc);
                 end Designated_Subtype_Mark;
  
!                Access_Type_Def : constant Node_Id :=
!                  Make_Access_To_Object_Definition
!                    (Loc, Subtype_Indication => Designated_Subtype_Mark);
  
!                Access_Type_Decl : constant Node_Id :=
!                  Make_Full_Type_Declaration
!                    (Loc, Access_Type_Id,
!                     Type_Definition => Access_Type_Def);
              begin
                 Mutate_Ekind (Temp_Id, E_Variable);
                 Set_Etype (Temp_Id, Access_Type_Id);
*************** package body Sem_Util is
*** 31032,31039 ****
                 --  When a type associated with an indirect temporary gets
                 --  created for a 'Old attribute reference we need to mark
                 --  the type as such. This allows, for example, finalization
!                --  masters associated with them to be finalized in the correct
!                --  order after postcondition checks.
  
                 if Attribute_Name (Parent (Attr_Prefix)) = Name_Old then
                    Set_Stores_Attribute_Old_Prefix (Access_Type_Id);
--- 31429,31436 ----
                 --  When a type associated with an indirect temporary gets
                 --  created for a 'Old attribute reference we need to mark
                 --  the type as such. This allows, for example, finalization
!                --  collections associated with them to be finalized in the
!                --  correct order after postcondition checks.
  
                 if Attribute_Name (Parent (Attr_Prefix)) = Name_Old then
                    Set_Stores_Attribute_Old_Prefix (Access_Type_Id);
*************** package body Sem_Util is
*** 31059,31068 ****
  
                    Allocator :=
                      Make_Allocator (Loc,
!                       Make_Qualified_Expression
!                         (Loc,
!                          Subtype_Mark => Designated_Subtype_Mark,
!                          Expression   => Expression));
  
                    --  Allocate saved prefix value on the secondary stack
                    --  in order to avoid introducing a storage leak. This
--- 31456,31466 ----
  
                    Allocator :=
                      Make_Allocator (Loc,
!                       Expression =>
!                         Make_Qualified_Expression
!                           (Loc,
!                            Subtype_Mark => Designated_Subtype_Mark,
!                            Expression   => Expression));
  
                    --  Allocate saved prefix value on the secondary stack
                    --  in order to avoid introducing a storage leak. This
*************** package body Sem_Util is
*** 31141,31148 ****
           begin
              if Is_Anonymous_Access_Type (Typ) then
                 --  No indirection in this case; just evaluate the temp.
!                Result := New_Occurrence_Of (Temp, Loc);
!                Set_Etype (Result, Etype (Temp));
  
              else
                 Result := Make_Explicit_Dereference (Loc,
--- 31539,31545 ----
           begin
              if Is_Anonymous_Access_Type (Typ) then
                 --  No indirection in this case; just evaluate the temp.
!                return New_Occurrence_Of (Temp, Loc);
  
              else
                 Result := Make_Explicit_Dereference (Loc,
*************** package body Sem_Util is
*** 31161,31171 ****
  
                    Set_Etype (Result, Typ);
                 end if;
-             end if;
  
!             return Result;
           end Indirect_Temp_Value;
  
           function Is_Access_Type_For_Indirect_Temp
             (T : Entity_Id) return Boolean is
           begin
--- 31558,31572 ----
  
                    Set_Etype (Result, Typ);
                 end if;
  
!                return Result;
!             end if;
           end Indirect_Temp_Value;
  
+          --------------------------------------
+          -- Is_Access_Type_For_Indirect_Temp --
+          --------------------------------------
+ 
           function Is_Access_Type_For_Indirect_Temp
             (T : Entity_Id) return Boolean is
           begin
*************** package body Sem_Util is
*** 31388,31393 ****
  
     end Storage_Model_Support;
  
- begin
-    Erroutc.Subprogram_Name_Ptr := Subprogram_Name'Access;
  end Sem_Util;
--- 31789,31792 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_util.ads gcc-15.1.0/gcc/ada/sem_util.ads
*** gcc-14.2.0/gcc/ada/sem_util.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_util.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Util is
*** 110,119 ****
     --  because those are the only dynamic cases.
  
     procedure Append_Entity_Name (Buf : in out Bounded_String; E : Entity_Id);
!    --  Recursive procedure to construct string for qualified name of enclosing
!    --  program unit. The qualification stops at an enclosing scope has no
!    --  source name (block or loop). If entity is a subprogram instance, skip
!    --  enclosing wrapper package. The name is appended to Buf.
  
     procedure Append_Inherited_Subprogram (S : Entity_Id);
     --  If the parent of the operation is declared in the visible part of
--- 110,118 ----
     --  because those are the only dynamic cases.
  
     procedure Append_Entity_Name (Buf : in out Bounded_String; E : Entity_Id);
!    --  Construct a user-readable expanded name for E, for printing in messages,
!    --  such as run-time errors for unhandled exceptions. Names created for
!    --  internal use are not included. The name is appended to Buf.
  
     procedure Append_Inherited_Subprogram (S : Entity_Id);
     --  If the parent of the operation is declared in the visible part of
*************** package Sem_Util is
*** 374,380 ****
     --  call C2 (not including the construct N itself), there is no other name
     --  anywhere within a direct constituent of the construct C other than
     --  the one containing C2, that is known to refer to the same object (RM
!    --  6.4.1(6.17/3)).
  
     procedure Check_Implicit_Dereference (N : Node_Id; Typ : Entity_Id);
     --  AI05-139-2: Accessors and iterators for containers. This procedure
--- 373,379 ----
     --  call C2 (not including the construct N itself), there is no other name
     --  anywhere within a direct constituent of the construct C other than
     --  the one containing C2, that is known to refer to the same object (RM
!    --  6.4.1(6.18-6.19)).
  
     procedure Check_Implicit_Dereference (N : Node_Id; Typ : Entity_Id);
     --  AI05-139-2: Accessors and iterators for containers. This procedure
*************** package Sem_Util is
*** 599,610 ****
     --  attribute, except in the case of formal private and derived types.
     --  Possible optimization???
  
!    function Corresponding_Primitive_Op
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id;
!    --  Given a primitive subprogram of a first type and a (distinct)
!    --  descendant type of that type, find the corresponding primitive
!    --  subprogram of the descendant type.
  
     function Current_Entity (N : Node_Id) return Entity_Id;
     pragma Inline (Current_Entity);
--- 598,613 ----
     --  attribute, except in the case of formal private and derived types.
     --  Possible optimization???
  
!    function Corresponding_Op_Of_Derived_Type
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id;
!    --  Given a subprogram Ancestor_Op associated with an ancestor type,
!    --  and a (distinct) descendant type of that type, find the corresponding
!    --  subprogram entity, if any, of the descendant type and return it.
!    --  Usually this is a primitive subprogram, but if Ancestor_Op is not
!    --  a primitive of the ancestor type (for example, it could be a class-wide
!    --  operation of the ancestor), then this function will simply return
!    --  Ancestor_Op.
  
     function Current_Entity (N : Node_Id) return Entity_Id;
     pragma Inline (Current_Entity);
*************** package Sem_Util is
*** 706,715 ****
     --  these names is supposed to be a selected component name, an expanded
     --  name, a defining program unit name or an identifier.
  
-    procedure Diagnose_Iterated_Component_Association (N : Node_Id);
-    --  Emit an error if iterated component association N is actually an illegal
-    --  quantified expression lacking a quantifier.
- 
     function Discriminated_Size (Comp : Entity_Id) return Boolean;
     --  If a component size is not static then a warning will be emitted
     --  in Ravenscar or other restricted contexts. When a component is non-
--- 709,714 ----
*************** package Sem_Util is
*** 1461,1466 ****
--- 1460,1470 ----
     function Is_Container_Aggregate (Exp : Node_Id) return Boolean;
     --  Is the given expression a container aggregate?
  
+    function Is_Extended_Access_Type (Ent : Entity_Id) return Boolean;
+    --  Ent is any entity. Returns True if Ent is a type (or a subtype thereof)
+    --  for which the Extended_Access aspect has been specified, either
+    --  explicitly or by inheritance.
+ 
     function Is_Function_With_Side_Effects (Subp : Entity_Id) return Boolean;
     --  Return True if Subp is a function with side effects, ie. it has a
     --  (direct or inherited) pragma Side_Effects with static value True.
*************** package Sem_Util is
*** 1516,1524 ****
  
     function Has_Relaxed_Initialization (E : Entity_Id) return Boolean;
     --  Returns True iff entity E is subject to the Relaxed_Initialization
!    --  aspect. Entity E can be either type, variable, constant, subprogram,
!    --  entry or an abstract state. For private types and deferred constants
!    --  E should be the private view, because aspect can only be attached there.
  
     function Has_Signed_Zeros (E : Entity_Id) return Boolean;
     --  Determines if the floating-point type E supports signed zeros.
--- 1520,1528 ----
  
     function Has_Relaxed_Initialization (E : Entity_Id) return Boolean;
     --  Returns True iff entity E is subject to the Relaxed_Initialization
!    --  aspect. Entity E can be either type, variable, constant, subprogram or
!    --  entry. For private types and deferred constants E should be the private
!    --  view, because aspect can only be attached there.
  
     function Has_Signed_Zeros (E : Entity_Id) return Boolean;
     --  Determines if the floating-point type E supports signed zeros.
*************** package Sem_Util is
*** 1532,1537 ****
--- 1536,1544 ----
     function Has_Static_Array_Bounds (Typ : Node_Id) return Boolean;
     --  Return whether an array type has static bounds
  
+    function Has_Static_Empty_Array_Bounds (Typ : Node_Id) return Boolean;
+    --  Return whether array type Typ has static empty bounds
+ 
     function Has_Static_Non_Empty_Array_Bounds (Typ : Node_Id) return Boolean;
     --  Determine whether array type Typ has static non-empty bounds
  
*************** package Sem_Util is
*** 1560,1565 ****
--- 1567,1578 ----
     --  Given arbitrary type Typ, determine whether it contains at least one
     --  effectively volatile component.
  
+    function Has_Enabled_Aspect (Id : Entity_Id; A : Aspect_Id) return Boolean
+      with Pre => A in Boolean_Aspects;
+    --  Returns True if a Boolean-valued aspect is enabled on entity Id; i.e. it
+    --  is present and either has no aspect definition or its aspect definition
+    --  statically evaluates to True.
+ 
     function Has_Volatile_Component (Typ : Entity_Id) return Boolean;
     --  Given arbitrary type Typ, determine whether it contains at least one
     --  volatile component.
*************** package Sem_Util is
*** 1612,1619 ****
     function In_Package_Body return Boolean;
     --  Returns True if current scope is within a package body
  
!    function In_Pragma_Expression (N : Node_Id; Nam : Name_Id) return Boolean;
!    --  Returns true if the expression N occurs within a pragma with name Nam
  
     function In_Pre_Post_Condition
       (N : Node_Id; Class_Wide_Only : Boolean := False) return Boolean;
--- 1625,1635 ----
     function In_Package_Body return Boolean;
     --  Returns True if current scope is within a package body
  
!    function In_Pragma_Expression
!      (N : Node_Id; Nam : Name_Id := No_Name) return Boolean;
!    --  Returns true if the expression N occurs within a pragma. If Name /=
!    --  No_Name returns true if the expression occurs within a pragma with
!    --  the given name.
  
     function In_Pre_Post_Condition
       (N : Node_Id; Class_Wide_Only : Boolean := False) return Boolean;
*************** package Sem_Util is
*** 1686,1691 ****
--- 1702,1717 ----
     --  either the value is not yet known before back-end processing or it is
     --  not known at compile time after back-end processing.
  
+    procedure Inherit_Nonoverridable_Aspects
+      (Typ : Entity_Id; From_Typ : Entity_Id);
+    --  For each nonoverridable aspect of parent type From_Typ, create an
+    --  inherited aspect for Typ and identify the subprograms that are denoted
+    --  by the inherited aspect, which may be the same subprograms of From_Typ,
+    --  or the corresponding inherited or overriding subprograms of Typ (in the
+    --  case where the parent subprogram is primitive), or even other eligible
+    --  subprograms that have been added to the derived type (such as can occur
+    --  in the case of indexing aspects).
+ 
     procedure Inherit_Predicate_Flags
       (Subt, Par  : Entity_Id;
        Only_Flags : Boolean := False);
*************** package Sem_Util is
*** 1710,1715 ****
--- 1736,1746 ----
     --  prefix is an access type, rewrite the access type node N (which is the
     --  prefix, e.g. of an indexed component) as an explicit dereference.
  
+    procedure Inspect_Deferred_Constant_Completion (Decl : Node_Id);
+    --  If Decl is a constant object declaration without a default value, check
+    --  whether it has been completed by a full constant declaration or an
+    --  Import pragma. Emit an error message if that is not the case.
+ 
     procedure Inspect_Deferred_Constant_Completion (Decls : List_Id);
     --  Examine all deferred constants in the declaration list Decls and check
     --  whether they have been completed by a full constant declaration or an
*************** package Sem_Util is
*** 1755,1761 ****
     function Is_Actual_Parameter (N : Node_Id) return Boolean;
     --  Determines if N is an actual parameter in a subprogram or entry call
  
!    function Is_Aliased_View (Obj : Node_Id) return Boolean;
     --  Determine if Obj is an aliased view, i.e. the name of an object to which
     --  'Access or 'Unchecked_Access can apply. Note that this routine uses the
     --  rules of the language, it does not take into account the restriction
--- 1786,1793 ----
     function Is_Actual_Parameter (N : Node_Id) return Boolean;
     --  Determines if N is an actual parameter in a subprogram or entry call
  
!    function Is_Aliased_View
!      (Obj : Node_Id; For_Extended : Boolean := False) return Boolean;
     --  Determine if Obj is an aliased view, i.e. the name of an object to which
     --  'Access or 'Unchecked_Access can apply. Note that this routine uses the
     --  rules of the language, it does not take into account the restriction
*************** package Sem_Util is
*** 1763,1773 ****
     --  and Obj violates the restriction. The caller is responsible for calling
     --  Restrict.Check_No_Implicit_Aliasing if True is returned, but there is a
     --  requirement for obeying the restriction in the call context.
  
     function Is_Ancestor_Package
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean;
!    --  Determine whether package E1 is an ancestor of E2
  
     function Is_Atomic_Object (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a reference to an atomic
--- 1795,1808 ----
     --  and Obj violates the restriction. The caller is responsible for calling
     --  Restrict.Check_No_Implicit_Aliasing if True is returned, but there is a
     --  requirement for obeying the restriction in the call context.
+    --  If For_Extended is True, then slightly different rules apply (as per
+    --  the definition of the Extended_Access aspect); for example, a slice
+    --  of an aliased array is considered to be aliased.
  
     function Is_Ancestor_Package
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean;
!    --  True if package E1 is an ancestor of E2 other than E2 itself
  
     function Is_Atomic_Object (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a reference to an atomic
*************** package Sem_Util is
*** 1944,1967 ****
     --  . machine_emax = 2**10
     --  . machine_emin = 3 - machine_emax
  
!    function Is_Effectively_Volatile
!      (Id               : Entity_Id;
!       Ignore_Protected : Boolean := False) return Boolean;
     --  Determine whether a type or object denoted by entity Id is effectively
     --  volatile (SPARK RM 7.1.2). To qualify as such, the entity must be either
     --    * Volatile without No_Caching
     --    * An array type subject to aspect Volatile_Components
     --    * An array type whose component type is effectively volatile
     --    * A protected type
     --    * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object
-    --
-    --  If Ignore_Protected is True, then a protected object/type is treated
-    --  like a non-protected record object/type for computing the result of
-    --  this query.
  
     function Is_Effectively_Volatile_For_Reading
!      (Id               : Entity_Id;
!       Ignore_Protected : Boolean := False) return Boolean;
     --  Determine whether a type or object denoted by entity Id is effectively
     --  volatile for reading (SPARK RM 7.1.2). To qualify as such, the entity
     --  must be either
--- 1979,1997 ----
     --  . machine_emax = 2**10
     --  . machine_emin = 3 - machine_emax
  
!    function Is_Effectively_Volatile (Id : Entity_Id) return Boolean;
     --  Determine whether a type or object denoted by entity Id is effectively
     --  volatile (SPARK RM 7.1.2). To qualify as such, the entity must be either
     --    * Volatile without No_Caching
     --    * An array type subject to aspect Volatile_Components
     --    * An array type whose component type is effectively volatile
+    --    * A record type for which all components have an effectively volatile
+    --      type
     --    * A protected type
     --    * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object
  
     function Is_Effectively_Volatile_For_Reading
!      (Id : Entity_Id) return Boolean;
     --  Determine whether a type or object denoted by entity Id is effectively
     --  volatile for reading (SPARK RM 7.1.2). To qualify as such, the entity
     --  must be either
*************** package Sem_Util is
*** 1971,1982 ****
     --      Async_Writers and Effective_Reads set to False
     --    * An array type whose component type is effectively volatile for
     --      reading
     --    * A protected type
     --    * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object
-    --
-    --  If Ignore_Protected is True, then a protected object/type is treated
-    --  like a non-protected record object/type for computing the result of
-    --  this query.
  
     function Is_Effectively_Volatile_Object
       (N : Node_Id) return Boolean;
--- 2001,2010 ----
     --      Async_Writers and Effective_Reads set to False
     --    * An array type whose component type is effectively volatile for
     --      reading
+    --    * A record type for which at least one component has an effectively
+    --      volatile type for reading
     --    * A protected type
     --    * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object
  
     function Is_Effectively_Volatile_Object
       (N : Node_Id) return Boolean;
*************** package Sem_Util is
*** 2214,2220 ****
     --  type be partially initialized.
  
     function Is_Potentially_Unevaluated (N : Node_Id) return Boolean;
!    --  Predicate to implement definition given in RM 6.1.1 (20/3)
  
     function Is_Potentially_Persistent_Type (T : Entity_Id) return Boolean;
     --  Determines if type T is a potentially persistent type. A potentially
--- 2242,2248 ----
     --  type be partially initialized.
  
     function Is_Potentially_Unevaluated (N : Node_Id) return Boolean;
!    --  Predicate to implement definition given in RM 2012 6.1.1 (20/3)
  
     function Is_Potentially_Persistent_Type (T : Entity_Id) return Boolean;
     --  Determines if type T is a potentially persistent type. A potentially
*************** package Sem_Util is
*** 2340,2345 ****
--- 2368,2374 ----
     --    Contract_Cases
     --    Depends
     --    Exceptional_Cases
+    --    Exit_Cases
     --    Extensions_Visible
     --    Global
     --    Post
*************** package Sem_Util is
*** 2392,2397 ****
--- 2421,2431 ----
     pragma Inline (Is_Universal_Numeric_Type);
     --  True if T is Universal_Integer or Universal_Real
  
+    function Is_Unconstrained_Or_Tagged_Item (Item : Entity_Id) return Boolean;
+    --  Subsidiary to Collect_Subprogram_Inputs_Outputs and the analysis of
+    --  pragma Depends. Determine whether the type of dependency item Item is
+    --  tagged, unconstrained array or unconstrained record.
+ 
     function Is_User_Defined_Equality (Id : Entity_Id) return Boolean;
     --  Determine whether an entity denotes a user-defined equality
  
*************** package Sem_Util is
*** 2785,2791 ****
     --   2) N is a comparison operator, one of the operands is null, and the
     --      type of the other operand is a descendant of System.Address.
  
!    function Number_Of_Elements_In_Array (T : Entity_Id) return Int;
     --  Returns the number of elements in the array T if the index bounds of T
     --  is known at compile time. If the bounds are not known at compile time,
     --  the function returns the value zero.
--- 2819,2825 ----
     --   2) N is a comparison operator, one of the operands is null, and the
     --      type of the other operand is a descendant of System.Address.
  
!    function Number_Of_Elements_In_Array (T : Entity_Id) return Nat;
     --  Returns the number of elements in the array T if the index bounds of T
     --  is known at compile time. If the bounds are not known at compile time,
     --  the function returns the value zero.
*************** package Sem_Util is
*** 2904,2909 ****
--- 2938,2955 ----
     --  by one of these flags. This procedure can only set flags for Typ, and
     --  never clear them. Comp_Typ is the type of a component or a parent.
  
+    procedure Propagate_Controlled_Flags
+      (Typ      : Entity_Id;
+       From_Typ : Entity_Id;
+       Comp     : Boolean := False;
+       Deriv    : Boolean := False);
+    --  Set Disable_Controlled, Finalize_Storage_Only, Has_Controlled_Component,
+    --  Has_Relaxed_Finalization, and Is_Controlled_Active on Typ when the flags
+    --  are set on From_Typ. If Comp is True, From_Typ is assumed to be the type
+    --  of a component of Typ while, if Deriv is True, From_Typ is assumed to be
+    --  the parent type of Typ. This procedure can only set flags for Typ, and
+    --  never clear them.
+ 
     procedure Propagate_DIC_Attributes
       (Typ      : Entity_Id;
        From_Typ : Entity_Id);
*************** package Sem_Util is
*** 3026,3033 ****
     --  capture actual value information, but we can capture conditional tests.
  
     function Same_Name (N1, N2 : Node_Id) return Boolean;
!    --  Determine if two (possibly expanded) names are the same name. This is
!    --  a purely syntactic test, and N1 and N2 need not be analyzed.
  
     function Same_Object (Node1, Node2 : Node_Id) return Boolean;
     --  Determine if Node1 and Node2 are known to designate the same object.
--- 3072,3079 ----
     --  capture actual value information, but we can capture conditional tests.
  
     function Same_Name (N1, N2 : Node_Id) return Boolean;
!    --  True if two identifiers or expanded names are the same name. This
!    --  is a purely syntactic test, and N1 and N2 need not be analyzed.
  
     function Same_Object (Node1, Node2 : Node_Id) return Boolean;
     --  Determine if Node1 and Node2 are known to designate the same object.
*************** package Sem_Util is
*** 3341,3346 ****
--- 3387,3397 ----
     function Within_Scope (E : Entity_Id; S : Entity_Id) return Boolean;
     --  Returns True if entity E is declared within scope S
  
+    function Within_Spec_Static_Expression (N : Node_Id) return Boolean;
+    --  Returns True if we are preanalyzing a default expression, and N is
+    --  within a static expression. See "Handling of Default Expressions"
+    --  in the spec of package Sem for further details.
+ 
     procedure Warn_On_Hiding_Entity
       (N               : Node_Id;
        Hidden, Visible : Entity_Id;
*************** package Sem_Util is
*** 3378,3383 ****
--- 3429,3437 ----
     function Yields_Universal_Type (N : Node_Id) return Boolean;
     --  Determine whether unanalyzed node N yields a universal type
  
+    procedure Preanalyze_And_Resolve_Without_Errors (N : Node_Id);
+    --  Preanalyze and resolve N without reporting errors
+ 
     procedure Preanalyze_Without_Errors (N : Node_Id);
     --  Preanalyze N without reporting errors
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_warn.adb gcc-15.1.0/gcc/ada/sem_warn.adb
*** gcc-14.2.0/gcc/ada/sem_warn.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_warn.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Warn is
*** 861,866 ****
--- 861,873 ----
        --  Return True if it is OK for an object of type T to be referenced
        --  without having been assigned a value in the source.
  
+       function Source_E1 return Boolean;
+       --  True if E1 is sufficiently "from source" to warrant a warning.
+       --  We are only interested in source entities. We also don't issue
+       --  warnings within instances, since the proper place for such
+       --  warnings is on the template when it is compiled. Expression
+       --  functions are a special case (see body).
+ 
        function Warnings_Off_E1 return Boolean;
        --  Return True if Warnings_Off is set for E1, or for its Etype (E1T),
        --  or for the base type of E1T.
*************** package body Sem_Warn is
*** 1156,1161 ****
--- 1163,1196 ----
           end if;
        end Type_OK_For_No_Value_Assigned;
  
+       ---------------
+       -- Source_E1 --
+       ---------------
+ 
+       function Source_E1 return Boolean is
+       begin
+          if Instantiation_Location (Sloc (E1)) /= No_Location then
+             return False;
+          end if;
+ 
+          if Comes_From_Source (E1) then
+             return True;
+          end if;
+ 
+          --  In the special case of an expression function, which has been
+          --  turned into an E_Subprogram_Body, we want to warn about unmodified
+          --  [in] out parameters.
+ 
+          if Ekind (E) = E_Subprogram_Body
+            and then Comes_From_Source (E)
+            and then Ekind (E1) in E_In_Out_Parameter | E_Out_Parameter
+          then
+             return True;
+          end if;
+ 
+          return False;
+       end Source_E1;
+ 
        ---------------------
        -- Warnings_Off_E1 --
        ---------------------
*************** package body Sem_Warn is
*** 1190,1203 ****
  
        E1 := First_Entity (E);
        while Present (E1) loop
!          --  We are only interested in source entities. We also don't issue
!          --  warnings within instances, since the proper place for such
!          --  warnings is on the template when it is compiled, and we don't
!          --  issue warnings for variables with names like Junk, Discard etc.
! 
!          if Comes_From_Source (E1)
!            and then Instantiation_Location (Sloc (E1)) = No_Location
!          then
              E1T := Etype (E1);
  
              --  We are interested in variables and out/in-out parameters, but
--- 1225,1231 ----
  
        E1 := First_Entity (E);
        while Present (E1) loop
!          if Source_E1 then
              E1T := Etype (E1);
  
              --  We are interested in variables and out/in-out parameters, but
*************** package body Sem_Warn is
*** 1229,1234 ****
--- 1257,1266 ----
                    UR := Unset_Reference (E1);
                 end if;
  
+                --  Protect again small adjustments of reference
+ 
+                UR := Unqual_Conv (UR);
+ 
                 --  Special processing for access types
  
                 if Present (UR) and then Is_Access_Type (E1T) then
*************** package body Sem_Warn is
*** 1958,1987 ****
                       SR : Entity_Id;
                       SE : constant Entity_Id := Scope (E);
  
!                      function Within_Postcondition return Boolean;
!                      --  Returns True if N is within a Postcondition, a
!                      --  Refined_Post, an Ensures component in a Test_Case,
!                      --  or a Contract_Cases.
  
!                      --------------------------
!                      -- Within_Postcondition --
!                      --------------------------
  
!                      function Within_Postcondition return Boolean is
                          Nod, P : Node_Id;
  
                       begin
                          Nod := Parent (N);
                          while Present (Nod) loop
                             if Nkind (Nod) = N_Pragma
                               and then
                                 Pragma_Name_Unmapped (Nod)
!                                 in Name_Postcondition
                                   | Name_Refined_Post
                                   | Name_Contract_Cases
                             then
                                return True;
  
                             elsif Present (Parent (Nod)) then
                                P := Parent (Nod);
  
--- 1990,2034 ----
                       SR : Entity_Id;
                       SE : constant Entity_Id := Scope (E);
  
!                      function Within_Contract_Or_Predicate  return Boolean;
!                      --  Returns True if N is within a contract or predicate,
!                      --  an Ensures component in a Test_Case, or a
!                      --  Contract_Cases.
  
!                      ----------------------------------
!                      -- Within_Contract_Or_Predicate --
!                      ----------------------------------
  
!                      function Within_Contract_Or_Predicate return Boolean is
                          Nod, P : Node_Id;
  
                       begin
                          Nod := Parent (N);
                          while Present (Nod) loop
+                            --  General contract / predicate related pragma
+ 
                             if Nkind (Nod) = N_Pragma
                               and then
                                 Pragma_Name_Unmapped (Nod)
!                                 in Name_Precondition
!                                  | Name_Postcondition
                                   | Name_Refined_Post
                                   | Name_Contract_Cases
                             then
                                return True;
  
+                            --  Verify we are not within a generated predicate
+                            --  function call.
+ 
+                            elsif Nkind (Nod) = N_Function_Call
+                              and then Is_Entity_Name (Name (Nod))
+                              and then Is_Predicate_Function
+                                         (Entity (Name (Nod)))
+                            then
+                               return True;
+ 
+                            --  Deal with special 'Ensures' Test_Case component
+ 
                             elsif Present (Parent (Nod)) then
                                P := Parent (Nod);
  
*************** package body Sem_Warn is
*** 2002,2008 ****
                          end loop;
  
                          return False;
!                      end Within_Postcondition;
  
                    --  Start of processing for Potential_Unset_Reference
  
--- 2049,2055 ----
                          end loop;
  
                          return False;
!                      end Within_Contract_Or_Predicate;
  
                    --  Start of processing for Potential_Unset_Reference
  
*************** package body Sem_Warn is
*** 2126,2132 ****
                       --  postcondition, since the expression occurs in a
                       --  place unrelated to the actual test.
  
!                      if not Within_Postcondition then
  
                          --  Here we definitely have a case for giving a warning
                          --  for a reference to an unset value. But we don't
--- 2173,2179 ----
                       --  postcondition, since the expression occurs in a
                       --  place unrelated to the actual test.
  
!                      if not Within_Contract_Or_Predicate then
  
                          --  Here we definitely have a case for giving a warning
                          --  for a reference to an unset value. But we don't
*************** package body Sem_Warn is
*** 2469,2475 ****
           Item := First (Context_Items (Cnode));
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
!               and then not Implicit_With (Item)
                and then In_Extended_Main_Source_Unit (Item)
  
                --  Guard for no entity present. Not clear under what conditions
--- 2516,2522 ----
           Item := First (Context_Items (Cnode));
           while Present (Item) loop
              if Nkind (Item) = N_With_Clause
!               and then not Is_Implicit_With (Item)
                and then In_Extended_Main_Source_Unit (Item)
  
                --  Guard for no entity present. Not clear under what conditions
*************** package body Sem_Warn is
*** 2568,2581 ****
  
                          if No (Ent) then
  
                             --  If in spec, just set the flag
  
!                            if Unit = Spec_Unit then
                                Set_No_Entities_Ref_In_Spec (Item);
  
-                            elsif Check_System_Aux (Lunit) then
-                               null;
- 
                             --  Else the warning may be needed
  
                             else
--- 2615,2631 ----
  
                          if No (Ent) then
  
+                            --  Check entities in the extended system if
+                            --  specified.
+ 
+                            if Check_System_Aux (Lunit) then
+                               null;
+ 
                             --  If in spec, just set the flag
  
!                            elsif Unit = Spec_Unit then
                                Set_No_Entities_Ref_In_Spec (Item);
  
                             --  Else the warning may be needed
  
                             else
*************** package body Sem_Warn is
*** 3146,3194 ****
  
        elsif Nkind (P) = N_Procedure_Call_Statement then
           Error_Msg_NE
!            ("??call to obsolescent procedure& declared#", N, E);
  
        --  Function call
  
        elsif Nkind (P) = N_Function_Call then
           Error_Msg_NE
!            ("??call to obsolescent function& declared#", N, E);
  
        --  Reference to obsolescent type
  
        elsif Is_Type (E) then
           Error_Msg_NE
!            ("??reference to obsolescent type& declared#", N, E);
  
        --  Reference to obsolescent component
  
        elsif Ekind (E) in E_Component | E_Discriminant then
           Error_Msg_NE
!            ("??reference to obsolescent component& declared#", N, E);
  
        --  Reference to obsolescent variable
  
        elsif Ekind (E) = E_Variable then
           Error_Msg_NE
!            ("??reference to obsolescent variable& declared#", N, E);
  
        --  Reference to obsolescent constant
  
        elsif Ekind (E) = E_Constant or else Ekind (E) in Named_Kind then
           Error_Msg_NE
!            ("??reference to obsolescent constant& declared#", N, E);
  
        --  Reference to obsolescent enumeration literal
  
        elsif Ekind (E) = E_Enumeration_Literal then
           Error_Msg_NE
!            ("??reference to obsolescent enumeration literal& declared#", N, E);
  
        --  Generic message for any other case we missed
  
        else
           Error_Msg_NE
!            ("??reference to obsolescent entity& declared#", N, E);
        end if;
  
        --  Output additional warning if present
--- 3196,3245 ----
  
        elsif Nkind (P) = N_Procedure_Call_Statement then
           Error_Msg_NE
!            ("?j?call to obsolescent procedure& declared#", N, E);
  
        --  Function call
  
        elsif Nkind (P) = N_Function_Call then
           Error_Msg_NE
!            ("?j?call to obsolescent function& declared#", N, E);
  
        --  Reference to obsolescent type
  
        elsif Is_Type (E) then
           Error_Msg_NE
!            ("?j?reference to obsolescent type& declared#", N, E);
  
        --  Reference to obsolescent component
  
        elsif Ekind (E) in E_Component | E_Discriminant then
           Error_Msg_NE
!            ("?j?reference to obsolescent component& declared#", N, E);
  
        --  Reference to obsolescent variable
  
        elsif Ekind (E) = E_Variable then
           Error_Msg_NE
!            ("?j?reference to obsolescent variable& declared#", N, E);
  
        --  Reference to obsolescent constant
  
        elsif Ekind (E) = E_Constant or else Ekind (E) in Named_Kind then
           Error_Msg_NE
!            ("?j?reference to obsolescent constant& declared#", N, E);
  
        --  Reference to obsolescent enumeration literal
  
        elsif Ekind (E) = E_Enumeration_Literal then
           Error_Msg_NE
!            ("?j?reference to obsolescent enumeration literal& declared#",
!             N, E);
  
        --  Generic message for any other case we missed
  
        else
           Error_Msg_NE
!            ("?j?reference to obsolescent entity& declared#", N, E);
        end if;
  
        --  Output additional warning if present
*************** package body Sem_Warn is
*** 3198,3204 ****
              String_To_Name_Buffer (Obsolescent_Warnings.Table (J).Msg);
              Error_Msg_Strlen := Name_Len;
              Error_Msg_String (1 .. Name_Len) := Name_Buffer (1 .. Name_Len);
!             Error_Msg_N ("\\??~", N);
              exit;
           end if;
        end loop;
--- 3249,3255 ----
              String_To_Name_Buffer (Obsolescent_Warnings.Table (J).Msg);
              Error_Msg_Strlen := Name_Len;
              Error_Msg_String (1 .. Name_Len) := Name_Buffer (1 .. Name_Len);
!             Error_Msg_N ("\\?j?~", N);
              exit;
           end if;
        end loop;
*************** package body Sem_Warn is
*** 3495,3509 ****
                       Error_Msg_Sloc := Sloc (CV);
  
                       if Nkind (CV) not in N_Subexpr then
!                         Error_Msg_N ("\\??(see test #)", N);
  
                       elsif Nkind (Parent (CV)) =
                               N_Case_Statement_Alternative
                       then
!                         Error_Msg_N ("\\??(see case alternative #)", N);
  
                       else
!                         Error_Msg_N ("\\??(see assignment #)", N);
                       end if;
                    end if;
                 end;
--- 3546,3560 ----
                       Error_Msg_Sloc := Sloc (CV);
  
                       if Nkind (CV) not in N_Subexpr then
!                         Error_Msg_N ("\\?c?(see test #)", N);
  
                       elsif Nkind (Parent (CV)) =
                               N_Case_Statement_Alternative
                       then
!                         Error_Msg_N ("\\?c?(see case alternative #)", N);
  
                       else
!                         Error_Msg_N ("\\?c?(see assignment #)", N);
                       end if;
                    end if;
                 end;
*************** package body Sem_Warn is
*** 3816,3831 ****
                    then
                       null;
  
-                   --  We only report warnings on overlapping arrays and record
-                   --  types if switch is set.
- 
-                   elsif not Warn_On_Overlap
-                     and then not (Is_Elementary_Type (Etype (Form1))
-                                     and then
-                                   Is_Elementary_Type (Etype (Form2)))
-                   then
-                      null;
- 
                    --  Here we may need to issue overlap message
  
                    else
--- 3867,3872 ----
*************** package body Sem_Warn is
*** 3843,3864 ****
  
                         or else not
                          (Is_Elementary_Type (Etype (Form1))
!                          and then Is_Elementary_Type (Etype (Form2)))
  
!                        --  debug flag -gnatd.E changes the error to a warning
!                        --  even in Ada 2012 mode.
  
!                        or else Error_To_Warning;
  
!                      --  For greater clarity, give name of formal
  
!                      Error_Msg_Node_2 := Form2;
  
!                      --  This is one of the messages
  
!                      Error_Msg_FE
!                        ("<.i<writable actual for & overlaps with actual for &",
!                         Act1, Form1);
                    end if;
                 end if;
              end if;
--- 3884,3908 ----
  
                         or else not
                          (Is_Elementary_Type (Etype (Form1))
!                          and then Is_Elementary_Type (Etype (Form2)));
  
!                      if not Error_Msg_Warn or else Warn_On_Overlap then
!                         --  debug flag -gnatd.E changes the error to a warning
!                         --  even in Ada 2012 mode.
  
!                         if Error_To_Warning then
!                            Error_Msg_Warn := True;
!                         end if;
  
!                         --  For greater clarity, give name of formal
  
!                         Error_Msg_Node_2 := Form2;
  
!                         --  This is one of the messages
  
!                         Error_Msg_FE ("<.i<writable actual for & overlaps with"
!                           & " actual for &", Act1, Form1);
!                      end if;
                    end if;
                 end if;
              end if;
*************** package body Sem_Warn is
*** 4444,4455 ****
                   ("?u?literal & is not referenced!", E);
  
              when E_Function =>
!                Error_Msg_N -- CODEFIX
!                  ("?u?function & is not referenced!", E);
  
              when E_Procedure =>
!                Error_Msg_N -- CODEFIX
!                  ("?u?procedure & is not referenced!", E);
  
              when E_Package =>
                 Error_Msg_N -- CODEFIX
--- 4488,4503 ----
                   ("?u?literal & is not referenced!", E);
  
              when E_Function =>
!                if not Is_Abstract_Subprogram (E) then
!                   Error_Msg_N -- CODEFIX
!                     ("?u?function & is not referenced!", E);
!                end if;
  
              when E_Procedure =>
!                if not Is_Abstract_Subprogram (E) then
!                   Error_Msg_N -- CODEFIX
!                     ("?u?procedure & is not referenced!", E);
!                end if;
  
              when E_Package =>
                 Error_Msg_N -- CODEFIX
diff -Nrcpad gcc-14.2.0/gcc/ada/sem_warn.ads gcc-15.1.0/gcc/ada/sem_warn.ads
*** gcc-14.2.0/gcc/ada/sem_warn.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sem_warn.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/set_targ.adb gcc-15.1.0/gcc/ada/set_targ.adb
*** gcc-14.2.0/gcc/ada/set_targ.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/set_targ.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 837,847 ****
  
        save_argc : Nat;
        pragma Import (C, save_argc);
!       --  Saved value of argc (number of arguments), imported from misc.c
  
        save_argv : Arg_Array_Ptr;
        pragma Import (C, save_argv);
!       --  Saved value of argv (argument pointers), imported from misc.c
  
        gnat_argc : Nat;
        gnat_argv : Arg_Array_Ptr;
--- 837,847 ----
  
        save_argc : Nat;
        pragma Import (C, save_argc);
!       --  Saved value of argc (number of arguments), imported from misc.cc
  
        save_argv : Arg_Array_Ptr;
        pragma Import (C, save_argv);
!       --  Saved value of argv (argument pointers), imported from misc.cc
  
        gnat_argc : Nat;
        gnat_argv : Arg_Array_Ptr;
diff -Nrcpad gcc-14.2.0/gcc/ada/set_targ.ads gcc-15.1.0/gcc/ada/set_targ.ads
*** gcc-14.2.0/gcc/ada/set_targ.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/set_targ.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sfn_scan.adb gcc-15.1.0/gcc/ada/sfn_scan.adb
*** gcc-14.2.0/gcc/ada/sfn_scan.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sfn_scan.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sfn_scan.ads gcc-15.1.0/gcc/ada/sfn_scan.ads
*** gcc-14.2.0/gcc/ada/sfn_scan.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sfn_scan.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-android-asm.h gcc-15.1.0/gcc/ada/sigtramp-android-asm.h
*** gcc-14.2.0/gcc/ada/sigtramp-android-asm.h	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/sigtramp-android-asm.h	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,112 ----
+ /****************************************************************************
+  *                                                                          *
+  *                         GNAT COMPILER COMPONENTS                         *
+  *                                                                          *
+  *                      S I G T R A M P - T A R G E T                       *
+  *                                                                          *
+  *                     Asm Implementation Include File                      *
+  *                                                                          *
+  *        Copyright (C) 2024-2025, Free Software Foundation, Inc.           *
+  *                                                                          *
+  * GNAT is free software;  you can  redistribute it  and/or modify it under *
+  * terms of the  GNU General Public License as published  by the Free Soft- *
+  * ware  Foundation;  either version 3,  or (at your option) any later ver- *
+  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
+  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
+  * or FITNESS FOR A PARTICULAR PURPOSE.                                     *
+  *                                                                          *
+  * As a special exception under Section 7 of GPL version 3, you are granted *
+  * additional permissions described in the GCC Runtime Library Exception,   *
+  * version 3.1, as published by the Free Software Foundation.               *
+  *                                                                          *
+  * In particular,  you can freely  distribute your programs  built with the *
+  * GNAT Pro compiler, including any required library run-time units,  using *
+  * any licensing terms  of your choosing.  See the AdaCore Software License *
+  * for full details.                                                        *
+  *                                                                          *
+  * GNAT was originally developed  by the GNAT team at  New York University. *
+  * Extensive contributions were provided by Ada Core Technologies Inc.      *
+  *                                                                          *
+  ****************************************************************************/
+ 
+ /*****************************************************************
+  * CPU specific parts of the __gnat_sigtramp service for Android *
+  *****************************************************************/
+ 
+ /* The intended use mode of this header is to provide macros
+    and a prologue to the generation of an asm function, as in
+ 
+      #include <this-header>
+      asm (SIGTRAMP_START(<symbol-name>));
+      asm (SIGTRAMP_BODY);
+      asm (SIGTRAMP_END(<symbol-name>));
+ 
+    and nothing else after.  */
+ 
+ /* asm string construction helpers.  */
+ 
+ #define STR(TEXT) #TEXT
+ /* stringify expanded TEXT, surrounding it with double quotes.  */
+ 
+ #define S(E) STR(E)
+ /* stringify E, which will resolve as text but may contain macros
+    still to be expanded.  */
+ 
+ /* asm (TEXT) outputs <tab>TEXT. These facilitate the output of
+    multiline contents:  */
+ #define TAB(S) "\t" S
+ #define CR(S)  S "\n"
+ 
+ #undef TCR
+ #define TCR(S) TAB(CR(S))
+ 
+ #if defined(__arm__)
+ 
+ /* Trampoline body block
+    ---------------------  */
+ 
+ #define SIGTRAMP_BODY \
+ CR("") \
+ TCR("# Allocate frame and also save r2 which is the argument register") \
+ TCR("# containing the sigcontext, so that we can restore it during") \
+ TCR("# unwinding and thereby load the rest of the desired context.") \
+ TCR("stmfd	sp!, {r2, r3, lr}") \
+ TCR("# The unwinder undo's these operations in reverse order so starting") \
+ TCR("# from bottom, restore r2 from the current vsp location, move r2 into") \
+ TCR("# the vsp, add 12 bytes to get the start of the register save area") \
+ TCR("# then restore the 15 general purpose registers of the frame which") \
+ TCR("# raised the signal.") \
+ TCR(".save {r0-r15}") \
+ TCR(".pad #12") \
+ TCR(".movsp r2") \
+ TCR(".save {r2}") \
+ TCR("# Call the real handler. The signo, siginfo and sigcontext") \
+ TCR("# arguments are the same as those we received in r0, r1 and r2.") \
+ TCR("blx	r3") \
+ TCR("# Restore our callee-saved items, release our frame and return") \
+ TCR("# (should never get here!).") \
+ TCR("ldmfd	sp, {r2, r3, pc}")
+ 
+ /* Symbol definition block
+    -----------------------  */
+ 
+ #define SIGTRAMP_START(SYM) \
+ CR("# " S(SYM) " unwind trampoline") \
+ TCR(".type " S(SYM) ", %function") \
+ CR("") \
+ CR(S(SYM) ":") \
+ TCR(".fnstart")
+ 
+ /* Symbol termination block
+    ------------------------  */
+ 
+ #define SIGTRAMP_END(SYM) \
+ CR(".fnend") \
+ TCR(".size " S(SYM) ", .-" S(SYM))
+ 
+ #endif
+ 
+ /* Text section start.  The compiler isn't aware of that switch.  */
+ 
+ asm (".text\n"
+      TCR(".align 2"));
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-android.c gcc-15.1.0/gcc/ada/sigtramp-android.c
*** gcc-14.2.0/gcc/ada/sigtramp-android.c	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/sigtramp-android.c	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,79 ----
+ /****************************************************************************
+  *                                                                          *
+  *                         GNAT COMPILER COMPONENTS                         *
+  *                                                                          *
+  *                             S I G T R A M P                              *
+  *                                                                          *
+  *                         C/Asm Implementation File                        *
+  *                                                                          *
+  *           Copyright (C) 2015-2025, Free Software Foundation, Inc.        *
+  *                                                                          *
+  * GNAT is free software;  you can  redistribute it  and/or modify it under *
+  * terms of the  GNU General Public License as published  by the Free Soft- *
+  * ware  Foundation;  either version 3,  or (at your option) any later ver- *
+  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
+  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
+  * or FITNESS FOR A PARTICULAR PURPOSE.                                     *
+  *                                                                          *
+  * As a special exception under Section 7 of GPL version 3, you are granted *
+  * additional permissions described in the GCC Runtime Library Exception,   *
+  * version 3.1, as published by the Free Software Foundation.               *
+  *                                                                          *
+  * In particular,  you can freely  distribute your programs  built with the *
+  * GNAT Pro compiler, including any required library run-time units,  using *
+  * any licensing terms  of your choosing.  See the AdaCore Software License *
+  * for full details.                                                        *
+  *                                                                          *
+  * GNAT was originally developed  by the GNAT team at  New York University. *
+  * Extensive contributions were provided by Ada Core Technologies Inc.      *
+  *                                                                          *
+  ****************************************************************************/
+ 
+ /**************************************************
+  * Android version of the __gnat_sigtramp service *
+  **************************************************/
+ 
+ #include "sigtramp.h"
+ 
+ /* The ARM port relies on CFI info setup here.  Others such as aarch64
+    rely on kernel CFI and may relay to the handler directly.  */
+ 
+ #if defined(__arm__)
+ #define __SETUP_CFI 1
+ #else
+ #define __SETUP_CFI 0
+ #endif
+ 
+ #if __SETUP_CFI
+ 
+ /* Craft a sigtramp stub providing unwind info for common registers.  */
+ 
+ #define TRAMP_COMMON __gnat_sigtramp_common
+ extern void TRAMP_COMMON
+   (int signo, void *siginfo, void *sigcontext,
+    __sigtramphandler_t * handler);
+ 
+ #include <sys/ucontext.h>
+ 
+ void __gnat_sigtramp (int signo, void *si, void *ucontext,
+                       __sigtramphandler_t * handler)
+ {
+   struct sigcontext *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
+   TRAMP_COMMON (signo, si, mcontext, handler);
+ }
+ 
+ #include <sigtramp-android-asm.h>
+ 
+ asm (SIGTRAMP_START(TRAMP_COMMON));
+ asm (SIGTRAMP_BODY);
+ asm (SIGTRAMP_END(TRAMP_COMMON));
+ 
+ #else /* !__SETUP_CFI  */
+ 
+ void __gnat_sigtramp (int signo, void *si, void *ucontext,
+                       __sigtramphandler_t * handler)
+ {
+   handler (signo, si, ucontext);
+ }
+ 
+ #endif
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-arm-qnx.c gcc-15.1.0/gcc/ada/sigtramp-arm-qnx.c
*** gcc-14.2.0/gcc/ada/sigtramp-arm-qnx.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-arm-qnx.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-armdroid.c gcc-15.1.0/gcc/ada/sigtramp-armdroid.c
*** gcc-14.2.0/gcc/ada/sigtramp-armdroid.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-armdroid.c	Thu Jan  1 00:00:00 1970
***************
*** 1,163 ****
- /****************************************************************************
-  *                                                                          *
-  *                         GNAT COMPILER COMPONENTS                         *
-  *                                                                          *
-  *                             S I G T R A M P                              *
-  *                                                                          *
-  *                         Asm Implementation File                          *
-  *                                                                          *
-  *           Copyright (C) 2015-2024, Free Software Foundation, Inc.        *
-  *                                                                          *
-  * GNAT is free software;  you can  redistribute it  and/or modify it under *
-  * terms of the  GNU General Public License as published  by the Free Soft- *
-  * ware  Foundation;  either version 3,  or (at your option) any later ver- *
-  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
-  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
-  * or FITNESS FOR A PARTICULAR PURPOSE.                                     *
-  *                                                                          *
-  * As a special exception under Section 7 of GPL version 3, you are granted *
-  * additional permissions described in the GCC Runtime Library Exception,   *
-  * version 3.1, as published by the Free Software Foundation.               *
-  *                                                                          *
-  * In particular,  you can freely  distribute your programs  built with the *
-  * GNAT Pro compiler, including any required library run-time units,  using *
-  * any licensing terms  of your choosing.  See the AdaCore Software License *
-  * for full details.                                                        *
-  *                                                                          *
-  * GNAT was originally developed  by the GNAT team at  New York University. *
-  * Extensive contributions were provided by Ada Core Technologies Inc.      *
-  *                                                                          *
-  ****************************************************************************/
- 
- /******************************************************
-  * ARM-Android version of the __gnat_sigtramp service *
-  ******************************************************/
- 
- #include <sys/ucontext.h>
- 
- #include "sigtramp.h"
- /* See sigtramp.h for a general explanation of functionality.  */
- 
- /* ----------------------
-    -- General comments --
-    ----------------------
- 
-    Stubs are generated from toplevel asms,
-    The general idea is to establish CFA as the sigcontext
-    and state where to find the registers as offsets from there.
- 
-    We support stubs for VxWorks and Android, providing unwind info for
-    common registers. We might need variants with support for floating
-    point or altivec registers as well at some point.
- 
-    For Android it would be simpler to write this in Asm since there's only
-    one variant, but to keep it looking like the VxWorks stubs,
-    C is the choice for our toplevel interface.
- 
-    Note that the registers we "restore" here are those to which we have
-    direct access through the system sigcontext structure, which includes
-    only a partial set of the non-volatiles ABI-wise.  */
- 
- /* -----------------------------------------
-    -- Protypes for our internal asm stubs --
-    -----------------------------------------
- 
-    The registers are expected to be at SIGCONTEXT + 12 (reference the
-    sicontext structure in asm/sigcontext.h which describes the first
-    3 * 4byte fields.)  Even though our symbols will remain local, the
-    prototype claims "extern" and not "static" to prevent compiler complaints
-    about a symbol used but never defined.  */
- 
- /* sigtramp stub providing unwind info for common registers.  */
- 
- extern void __gnat_sigtramp_common
-   (int signo, void *siginfo, void *sigcontext,
-    __sigtramphandler_t * handler);
- 
- void __gnat_sigtramp (int signo, void *si, void *sc,
-                       __sigtramphandler_t * handler)
-      __attribute__((optimize(2)));
- 
- void __gnat_sigtramp (int signo, void *si, void *ucontext,
-                       __sigtramphandler_t * handler)
- {
-   struct sigcontext *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
- 
-   __gnat_sigtramp_common (signo, si, mcontext, handler);
- }
- 
- /* asm string construction helpers.  */
- 
- #define STR(TEXT) #TEXT
- /* stringify expanded TEXT, surrounding it with double quotes.  */
- 
- #define S(E) STR(E)
- /* stringify E, which will resolve as text but may contain macros
-    still to be expanded.  */
- 
- /* asm (TEXT) outputs <tab>TEXT. These facilitate the output of
-    multiline contents:  */
- #define TAB(S) "\t" S
- #define CR(S)  S "\n"
- 
- #undef TCR
- #define TCR(S) TAB(CR(S))
- 
- /* Trampoline body block
-    ---------------------  */
- 
- #define SIGTRAMP_BODY \
- CR("") \
- TCR("# Allocate frame and also save r2 which is the argument register") \
- TCR("# containing the sigcontext, so that we can restore it during") \
- TCR("# unwinding and thereby load the rest of the desired context.") \
- TCR("stmfd	sp!, {r2, r3, lr}") \
- TCR("# The unwinder undo's these operations in reverse order so starting") \
- TCR("# from bottom, restore r2 from the current vsp location, move r2 into") \
- TCR("# the vsp, add 12 bytes to get the start of the register save area") \
- TCR("# then restore the 15 general purpose registers of the frame which") \
- TCR("# raised the signal.") \
- TCR(".save {r0-r15}") \
- TCR(".pad #12") \
- TCR(".movsp r2") \
- TCR(".save {r2}") \
- TCR("# Call the real handler. The signo, siginfo and sigcontext") \
- TCR("# arguments are the same as those we received in r0, r1 and r2.") \
- TCR("blx	r3") \
- TCR("# Restore our callee-saved items, release our frame and return") \
- TCR("# (should never get here!).") \
- TCR("ldmfd	sp, {r2, r3, pc}")
- 
- /* Symbol definition block
-    -----------------------  */
- 
- #define SIGTRAMP_START(SYM) \
- CR("# " S(SYM) " unwind trampoline") \
- TCR(".type " S(SYM) ", %function") \
- CR("") \
- CR(S(SYM) ":") \
- TCR(".fnstart")
- 
- /* Symbol termination block
-    ------------------------  */
- 
- #define SIGTRAMP_END(SYM) \
- CR(".fnend") \
- TCR(".size " S(SYM) ", .-" S(SYM))
- 
- /*----------------------------
-   -- And now, the real code --
-   ---------------------------- */
- 
- /* Text section start.  The compiler isn't aware of that switch.  */
- 
- asm (".text\n"
-      TCR(".align 2"));
- 
- /* sigtramp stub for common registers.  */
- 
- #define TRAMP_COMMON __gnat_sigtramp_common
- 
- asm (SIGTRAMP_START(TRAMP_COMMON));
- asm (SIGTRAMP_BODY);
- asm (SIGTRAMP_END(TRAMP_COMMON));
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-ios.c gcc-15.1.0/gcc/ada/sigtramp-ios.c
*** gcc-14.2.0/gcc/ada/sigtramp-ios.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-ios.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-qnx.c gcc-15.1.0/gcc/ada/sigtramp-qnx.c
*** gcc-14.2.0/gcc/ada/sigtramp-qnx.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-qnx.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2017-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2017-2025, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-vxworks-target.h gcc-15.1.0/gcc/ada/sigtramp-vxworks-target.h
*** gcc-14.2.0/gcc/ada/sigtramp-vxworks-target.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-vxworks-target.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *         Copyright (C) 2011-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp-vxworks.c gcc-15.1.0/gcc/ada/sigtramp-vxworks.c
*** gcc-14.2.0/gcc/ada/sigtramp-vxworks.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp-vxworks.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/sigtramp.h gcc-15.1.0/gcc/ada/sigtramp.h
*** gcc-14.2.0/gcc/ada/sigtramp.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sigtramp.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2011-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2011-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 29,39 ****
   *                                                                          *
   ****************************************************************************/
  
! /* On targets where this is implemented, we resort to a signal trampoline to
!    set up the DWARF Call Frame Information that lets unwinders walk through
!    the signal frame up into the interrupted user code.  This file introduces
!    the relevant declarations.  It should only be #included on targets that do
!    implement the signal trampoline.  */
  
  #ifdef __cplusplus
  extern "C" {
--- 29,47 ----
   *                                                                          *
   ****************************************************************************/
  
! /* On targets where this is useful, a signal handler trampoline is setup to
!    allow interposing handcrafted DWARF Call Frame Information that lets
!    unwinders walk through a signal frame up into the interrupted user code.
!    This file introduces the relevant declarations.
! 
!    For an OS family, in specific CPU configurations where kernel signal CFI
!    is known to be available, the trampoline may directly call the intended
!    handler without any intermediate CFI magic.
! 
!    sigtramp*.c offers a convenient spot for picking such alternatives, as
!    it allows testing for precise target predicates and is easily shared
!    by the tasking and non-tasking runtimes for a given OS (e.g. s-intman.adb
!    and init.c:__gnat_error_handler).  */
  
  #ifdef __cplusplus
  extern "C" {
*************** extern void __gnat_sigtramp (int signo,
*** 54,60 ****
  			     __sigtramphandler_t * handler);
  
  /* The signal trampoline is to be called from an established signal handler.
!    It sets up the DWARF CFI and calls HANDLER (SIGNO, SIGINFO, SIGCONTEXT).
  
     The trampoline construct makes it so that the unwinder jumps over it + the
     signal handler + the kernel frame.  For a typical backtrace from the raise
--- 62,69 ----
  			     __sigtramphandler_t * handler);
  
  /* The signal trampoline is to be called from an established signal handler.
!    It calls HANDLER (SIGNO, SIGINFO, SIGCONTEXT) after setting up the DWARF
!    CFI if needed.
  
     The trampoline construct makes it so that the unwinder jumps over it + the
     signal handler + the kernel frame.  For a typical backtrace from the raise
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo-cn.adb gcc-15.1.0/gcc/ada/sinfo-cn.adb
*** gcc-14.2.0/gcc/ada/sinfo-cn.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo-cn.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo-cn.ads gcc-15.1.0/gcc/ada/sinfo-cn.ads
*** gcc-14.2.0/gcc/ada/sinfo-cn.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo-cn.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo-utils.adb gcc-15.1.0/gcc/ada/sinfo-utils.adb
*** gcc-14.2.0/gcc/ada/sinfo-utils.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo-utils.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,36 ****
--- 25,176 ----
  
  with Atree;  use Atree;
  with Debug;  use Debug;
+ with GNAT.Lists;
  with Output; use Output;
  with Seinfo;
  with Sinput; use Sinput;
  
  package body Sinfo.Utils is
  
+    function Spec_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id
+    is
+       pragma Assert (Unit (N) in N_Lib_Unit_Body_Id);
+    begin
+       return Val : constant Opt_N_Compilation_Unit_Id :=
+         Spec_Or_Body_Lib_Unit (N)
+       do
+          pragma Assert
+            (if Present (Val) then
+              Unit (Val) in N_Lib_Unit_Declaration_Id
+               | N_Lib_Unit_Renaming_Declaration_Id -- only in case of error
+              or else (N = Val
+                       and then Unit (N) in N_Subprogram_Body_Id
+                       and then Acts_As_Spec (N)));
+       end return;
+    end Spec_Lib_Unit;
+ 
+    procedure Set_Spec_Lib_Unit (N, Val : N_Compilation_Unit_Id) is
+       pragma Assert (Unit (N) in N_Lib_Unit_Body_Id);
+       pragma Assert
+         (Unit (Val) in N_Lib_Unit_Declaration_Id
+           | N_Lib_Unit_Renaming_Declaration_Id -- only in case of error
+          or else (N = Val
+                   and then Unit (N) in N_Subprogram_Body_Id
+                   and then Acts_As_Spec (N)));
+    begin
+       Set_Library_Unit (N, Val);
+    end Set_Spec_Lib_Unit;
+ 
+    function Body_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id
+    is
+       pragma Assert
+         (Unit (N) in N_Lib_Unit_Declaration_Id
+           | N_Lib_Unit_Renaming_Declaration_Id); -- only in case of error
+    begin
+       return Val : constant Opt_N_Compilation_Unit_Id :=
+         Spec_Or_Body_Lib_Unit (N)
+       do
+          pragma Assert
+            (if Present (Val) then Unit (Val) in N_Lib_Unit_Body_Id);
+       end return;
+    end Body_Lib_Unit;
+ 
+    procedure Set_Body_Lib_Unit (N, Val : N_Compilation_Unit_Id) is
+       pragma Assert
+         (Unit (N) in N_Lib_Unit_Declaration_Id
+           | N_Lib_Unit_Renaming_Declaration_Id); -- only in case of error
+       pragma Assert (Unit (Val) in N_Lib_Unit_Body_Id);
+    begin
+       Set_Library_Unit (N, Val);
+    end Set_Body_Lib_Unit;
+ 
+    function Spec_Or_Body_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id
+    is
+       pragma Assert
+         (Unit (N) in
+           N_Lib_Unit_Declaration_Id | N_Lib_Unit_Body_Id
+           | N_Lib_Unit_Renaming_Declaration_Id);
+    begin
+       return Other_Comp_Unit (N);
+    end Spec_Or_Body_Lib_Unit;
+ 
+    function Subunit_Parent
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id
+    is
+       pragma Assert (Unit (N) in N_Subunit_Id);
+    begin
+       return Val : constant Opt_N_Compilation_Unit_Id := Other_Comp_Unit (N) do
+          pragma Assert
+            (if Present (Val) then
+              Unit (Val) in N_Lib_Unit_Body_Id | N_Subunit_Id);
+       end return;
+    end Subunit_Parent;
+ 
+    procedure Set_Subunit_Parent (N, Val : N_Compilation_Unit_Id) is
+       pragma Assert (Unit (N) in N_Subunit_Id);
+       pragma Assert (Unit (Val) in N_Lib_Unit_Body_Id | N_Subunit_Id);
+    begin
+       Set_Library_Unit (N, Val);
+    end Set_Subunit_Parent;
+ 
+    function Other_Comp_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id
+    is
+       pragma Assert (N in N_Compilation_Unit_Id);
+       Val : constant Opt_N_Compilation_Unit_Id := Library_Unit (N);
+    begin
+       if Unit (N) in N_Subunit_Id then
+          pragma Assert
+            (if Present (Val) then
+              Unit (Val) in N_Lib_Unit_Body_Id | N_Subunit_Id);
+       end if;
+ 
+       return Library_Unit (N);
+    end Other_Comp_Unit;
+ 
+    function Stub_Subunit
+      (N : N_Body_Stub_Id) return Opt_N_Compilation_Unit_Id is
+    begin
+       return Val : constant Opt_N_Compilation_Unit_Id := Library_Unit (N) do
+          pragma Assert (if Present (Val) then Unit (Val) in N_Subunit_Id);
+       end return;
+    end Stub_Subunit;
+ 
+    procedure Set_Stub_Subunit
+      (N : N_Body_Stub_Id; Val : N_Compilation_Unit_Id)
+    is
+       pragma Assert (Unit (Val) in N_Subunit_Id);
+    begin
+       Set_Library_Unit (N, Val);
+    end Set_Stub_Subunit;
+ 
+    function Withed_Lib_Unit
+      (N : N_With_Clause_Id) return Opt_N_Compilation_Unit_Id is
+    begin
+       return Val : constant Opt_N_Compilation_Unit_Id := Library_Unit (N) do
+          pragma Assert
+            (if Present (Val) then
+              Unit (Val) in N_Lib_Unit_Declaration_Id
+              | N_Lib_Unit_Renaming_Declaration_Id
+              | N_Package_Body_Id | N_Subprogram_Body_Id
+              | N_Null_Statement_Id); -- for ignored ghost code
+       end return;
+    end Withed_Lib_Unit;
+ 
+    procedure Set_Withed_Lib_Unit
+      (N : N_With_Clause_Id; Val : N_Compilation_Unit_Id)
+    is
+       pragma Assert
+         (Unit (Val) in N_Lib_Unit_Declaration_Id
+          | N_Lib_Unit_Renaming_Declaration_Id
+          | N_Package_Body_Id | N_Subprogram_Body_Id);
+    begin
+       Set_Library_Unit (N, Val);
+    end Set_Withed_Lib_Unit;
+ 
     ---------------
     -- Debugging --
     ---------------
*************** package body Sinfo.Utils is
*** 207,212 ****
--- 347,419 ----
        end if;
     end Get_Pragma_Arg;
  
+    procedure Destroy_Element (Elem : in out Union_Id);
+    --  Does not do anything but is used to instantiate
+    --  GNAT.Lists.Doubly_Linked_Lists.
+ 
+    ---------------------
+    -- Destroy_Element --
+    ---------------------
+ 
+    procedure Destroy_Element (Elem : in out Union_Id) is
+    begin
+       null;
+    end Destroy_Element;
+ 
+    package Lists is
+      new GNAT.Lists.Doubly_Linked_Lists
+        (Element_Type => Union_Id, "=" => "=",
+       Destroy_Element => Destroy_Element, Check_Tampering => False);
+ 
+    ----------------------------
+    -- Lowest_Common_Ancestor --
+    ----------------------------
+ 
+    function Lowest_Common_Ancestor (N1, N2 : Node_Id) return Union_Id is
+       function Path_From_Root (N : Node_Id) return Lists.Doubly_Linked_List;
+ 
+       --------------------
+       -- Path_From_Root --
+       --------------------
+ 
+       function Path_From_Root (N : Node_Id) return Lists.Doubly_Linked_List is
+          L : constant Lists.Doubly_Linked_List := Lists.Create;
+ 
+          X : Union_Id := Union_Id (N);
+       begin
+          while X /= Union_Id (Empty) loop
+             Lists.Prepend (L, X);
+             X := Parent_Or_List_Containing (X);
+          end loop;
+ 
+          return L;
+       end Path_From_Root;
+ 
+       L1 : Lists.Doubly_Linked_List := Path_From_Root (N1);
+       L2 : Lists.Doubly_Linked_List := Path_From_Root (N2);
+ 
+       X1, X2 : Union_Id;
+ 
+       Common_Ancestor : Union_Id := Union_Id (Empty);
+    begin
+       while not Lists.Is_Empty (L1) and then not Lists.Is_Empty (L2) loop
+          X1 := Lists.First (L1);
+          Lists.Delete_First (L1);
+ 
+          X2 := Lists.First (L2);
+          Lists.Delete_First (L2);
+ 
+          exit when X1 /= X2;
+ 
+          Common_Ancestor := X1;
+       end loop;
+ 
+       Lists.Destroy (L1);
+       Lists.Destroy (L2);
+ 
+       return Common_Ancestor;
+    end Lowest_Common_Ancestor;
+ 
     ----------------------
     -- Set_End_Location --
     ----------------------
*************** package body Sinfo.Utils is
*** 255,260 ****
--- 462,468 ----
         when Flag_Field
            | Node_Kind_Type_Field
            | Entity_Kind_Type_Field
+           | Source_File_Index_Field
            | Source_Ptr_Field
            | Small_Paren_Count_Type_Field
            | Convention_Id_Field
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo-utils.ads gcc-15.1.0/gcc/ada/sinfo-utils.ads
*** gcc-14.2.0/gcc/ada/sinfo-utils.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo-utils.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sinfo.Nodes; use Sinfo.Nodes;
*** 27,32 ****
--- 27,91 ----
  
  package Sinfo.Utils is
  
+    --  We would like to get rid of the Library_Unit field, and replace it with
+    --  Other_Comp_Unit (on N_Compilation_Unit), Withed_Lib_Unit (on
+    --  N_With_Clause), and Subunit (on N_Body_Stub). Or we could split
+    --  Other_Comp_Unit into Spec_Lib_Unit, Body_Lib_Unit, Subunit_Parent.
+    --  However, gnat-llvm, codepeer, and spark are still using Library_Unit.
+    --  Therefore, we use the wrappers below.
+    --
+    --  The call site should always know whether it has an N_Compilation_Unit,
+    --  N_Body_Stub, or N_With_Clause. In the N_Compilation_Unit case, it should
+    --  also know whether it's looking for the spec of a body, the body of a
+    --  spec, or the parent of a subunit. Spec_Or_Body_Lib_Unit and
+    --  Other_Comp_Unit should be avoided when possible; these are for the
+    --  N_Compilation_Unit cases where the call site does NOT know what it's
+    --  looking for.
+ 
+    function Spec_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id;
+    procedure Set_Spec_Lib_Unit (N, Val : N_Compilation_Unit_Id);
+    --  The spec compilation unit of a body compilation unit.
+    --  It can be an acts-as-spec subprogram body; in that case
+    --  Spec_Lib_Unit points to itself.
+ 
+    function Body_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id;
+    procedure Set_Body_Lib_Unit (N, Val : N_Compilation_Unit_Id);
+    --  The body compilation unit of a spec compilation unit.
+    --  Empty if not present.
+ 
+    function Spec_Or_Body_Lib_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id;
+    --  Same as Spec_Lib_Unit or Body_Lib_Unit, depending on whether
+    --  N is a body or spec. Used when we know N is a library unit
+    --  (not a subunit), but we don't know whether it's the spec
+    --  or the body.
+ 
+    function Subunit_Parent
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id;
+    procedure Set_Subunit_Parent (N, Val : N_Compilation_Unit_Id);
+    --  The parent body of a subunit
+ 
+    function Other_Comp_Unit
+      (N : N_Compilation_Unit_Id) return Opt_N_Compilation_Unit_Id;
+    --  Same as Spec_Lib_Unit, Body_Lib_Unit, or Subunit_Parent,
+    --  as appropriate. Used when we don't know whether N is a
+    --  a library unit spec, library unit body, or subunit.
+ 
+    function Stub_Subunit (N : N_Body_Stub_Id) return Opt_N_Compilation_Unit_Id;
+    procedure Set_Stub_Subunit
+      (N : N_Body_Stub_Id; Val : N_Compilation_Unit_Id);
+    --  Subunit corresponding to a stub
+ 
+    function Withed_Lib_Unit
+      (N : N_With_Clause_Id) return Opt_N_Compilation_Unit_Id;
+    procedure Set_Withed_Lib_Unit
+      (N : N_With_Clause_Id; Val : N_Compilation_Unit_Id);
+    --  The compilation unit that a with clause refers to.
+    --  Note that the Sem_Elab creates with clauses that point to bodies
+    --  (including non-Acts_As_Spec bodies).
+ 
     -------------------------------
     -- Parent-related operations --
     -------------------------------
*************** package Sinfo.Utils is
*** 54,62 ****
     -- Miscellaneous Tree Access Subprograms --
     -------------------------------------------
  
!    function First_Real_Statement -- ????
       (Ignored : N_Handled_Sequence_Of_Statements_Id) return Node_Id is (Empty);
!    --  The First_Real_Statement field is going away, but it is referenced in
     --  codepeer and gnat-llvm. This is a temporary version, always returning
     --  Empty, to ease the transition.
  
--- 113,121 ----
     -- Miscellaneous Tree Access Subprograms --
     -------------------------------------------
  
!    function First_Real_Statement -- ???
       (Ignored : N_Handled_Sequence_Of_Statements_Id) return Node_Id is (Empty);
!    --  The First_Real_Statement field has been removed, but it is referenced in
     --  codepeer and gnat-llvm. This is a temporary version, always returning
     --  Empty, to ease the transition.
  
*************** package Sinfo.Utils is
*** 78,83 ****
--- 137,146 ----
     --  for the argument. This is Arg itself, or, in the case where Arg is a
     --  pragma argument association node, the expression from this node.
  
+    function Lowest_Common_Ancestor (N1, N2 : Node_Id) return Union_Id;
+    --  Returns the list or node that is the lowest common ancestor of N1 and
+    --  N2 in the syntax tree.
+ 
     -----------------------
     -- Utility Functions --
     -----------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo.adb gcc-15.1.0/gcc/ada/sinfo.adb
*** gcc-14.2.0/gcc/ada/sinfo.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinfo.ads gcc-15.1.0/gcc/ada/sinfo.ads
*** gcc-14.2.0/gcc/ada/sinfo.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinfo.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sinfo is
*** 727,772 ****
     --    refers to a node or is posted on its source location, and has the
     --    effect of inhibiting further messages involving this same node.
  
-    -----------------------
-    -- Modify_Tree_For_C --
-    -----------------------
- 
-    --  If the flag Opt.Modify_Tree_For_C is set True, then the tree is modified
-    --  in ways that help match the semantics better with C, easing the task of
-    --  interfacing to C code generators (other than GCC, where the work is done
-    --  in gigi, and there is no point in changing that), and also making life
-    --  easier for Cprint in generating C source code.
- 
-    --  The current modifications implemented are as follows:
- 
-    --    N_Op_Rotate_Left, N_Op_Rotate_Right, N_Shift_Right_Arithmetic nodes
-    --    are eliminated from the tree (since these operations do not exist in
-    --    C), and the operations are rewritten in terms of logical shifts and
-    --    other logical operations that do exist in C. See Exp_Ch4 expansion
-    --    routines for these operators for details of the transformations made.
- 
-    --    The right operand of N_Op_Shift_Right and N_Op_Shift_Left is always
-    --    less than the word size (since other values are not well-defined in
-    --    C). This is done using an explicit test if necessary.
- 
-    --    Min and Max attributes are expanded into equivalent if expressions,
-    --    dealing properly with side effect issues.
- 
-    --    Mod for signed integer types is expanded into equivalent expressions
-    --    using Rem (which is % in C) and other C-available operators.
- 
-    --    Functions returning bounded arrays are transformed into procedures
-    --    with an extra out parameter, and the calls updated accordingly.
- 
-    --    Aggregates are only kept unexpanded for object declarations, otherwise
-    --    they are systematically expanded into loops (for arrays) and
-    --    individual assignments (for records).
- 
-    --    Unconstrained array types are handled by means of fat pointers.
- 
-    --    Postconditions are inlined by the frontend since their body may have
-    --    references to itypes defined in the enclosing subprogram.
- 
     ------------------------------------
     -- Description of Semantic Fields --
     ------------------------------------
--- 727,732 ----
*************** package Sinfo is
*** 828,838 ****
     --    created for the expansion of an allocator with a subtype_indication
     --    and the designated subtype is an unconstrained composite type.
  
-    --  Address_Warning_Posted
-    --    Present in N_Attribute_Definition nodes. Set to indicate that we have
-    --    posted a warning for the address clause regarding size or alignment
-    --    issues. Used to inhibit multiple redundant messages.
- 
     --  Aggregate_Bounds
     --    Present in array N_Aggregate nodes. If the bounds of the aggregate are
     --    known at compile time, this field points to an N_Range node with those
--- 788,793 ----
*************** package Sinfo is
*** 860,865 ****
--- 815,825 ----
     --    Present in N_Aspect_Specification nodes. Points to the corresponding
     --    pragma/attribute definition node used to process the aspect.
  
+    --  Aspect_Subprograms
+    --    Present in N_Aspect_Specification nodes. Contains a list of the
+    --    subprograms that the aspect is associated with. Currently only used
+    --    for indexing aspects.
+ 
     --  Assignment_OK
     --    This flag is set in a subexpression node for an object, indicating
     --    that the associated object can be modified, even if this would not
*************** package Sinfo is
*** 868,878 ****
     --    for a number of purposes, including initialization of constants and
     --    limited type objects (such as tasks), setting discriminant fields,
     --    setting tag values, etc. N_Object_Declaration nodes also have this
!    --    flag defined. Here it is used to indicate that an initialization
     --    expression is valid, even where it would normally not be allowed
!    --    (e.g. where the type involved is limited). It is also used to stop
!    --    a Force_Evaluation call for an unchecked conversion, but this usage
!    --    is unclear and not documented ???
  
     --  Associated_Node
     --    Present in nodes that can denote an entity: identifiers, character
--- 828,836 ----
     --    for a number of purposes, including initialization of constants and
     --    limited type objects (such as tasks), setting discriminant fields,
     --    setting tag values, etc. N_Object_Declaration nodes also have this
!    --    flag defined: here it is used to indicate that an initialization
     --    expression is valid, even where it would normally not be allowed
!    --    (e.g. where the type involved is limited).
  
     --  Associated_Node
     --    Present in nodes that can denote an entity: identifiers, character
*************** package Sinfo is
*** 1322,1327 ****
--- 1280,1289 ----
     --    assignment or initialization. When the full context is known, the
     --    target of the assignment or initialization is used to generate the
     --    left-hand side of individual assignment to each subcomponent.
+    --    Also set on conditional expressions whose dependent expressions are
+    --    nested aggregates (recursively), or which are expressions of simple
+    --    return statements (recursively again), in order to avoid creating a
+    --    temporary for them.
  
     --  Expression_Copy
     --    Present in N_Pragma_Argument_Association nodes. Contains a copy of the
*************** package Sinfo is
*** 1329,1334 ****
--- 1291,1304 ----
     --    modifications performed on the original expression such as replacement
     --    of the current type instance or substitutions of primitives.
  
+    --  File_Index
+    --    Present in N_External_Initializer nodes. Contains a Source_File_Index
+    --    that references the file the external initializer points to.
+ 
+    --  Finally_Statements
+    --    Present in N_Handled_Statement_Sequences nodes. Points to a list
+    --    containing statements.
+ 
     --  First_Inlined_Subprogram
     --    Present in the N_Compilation_Unit node for the main program. Points
     --    to a chain of entities for subprograms that are to be inlined. The
*************** package Sinfo is
*** 1368,1373 ****
--- 1338,1347 ----
     --    cannot figure it out. If both flags Forwards_OK and Backwards_OK are
     --    set, it means that the front end can assure no overlap of operands.
  
+    --  For_Allocator
+    --    Present in N_Free_Statement nodes. True if the statement is generated
+    --    for the cleanup of an allocator.
+ 
     --  For_Special_Return_Object
     --    Present in N_Allocator nodes. True if the allocator is generated for
     --    the initialization of a special return object.
*************** package Sinfo is
*** 1528,1550 ****
     --    introduced by these use clauses have priority over global ones,
     --    and outer entities must be explicitly hidden/restored on exit.
  
-    --  Implicit_With
-    --    Present in N_With_Clause nodes. The flag indicates that the clause
-    --    does not comes from source and introduces an implicit dependency on
-    --    a particular unit. Such implicit with clauses are generated by:
-    --
-    --      * ABE mechanism - The static elaboration model of both the default
-    --        and the legacy ABE mechanism use with clauses to encode implicit
-    --        Elaborate[_All] pragmas.
-    --
-    --      * Analysis - A with clause for child unit A.B.C is equivalent to
-    --        a series of clauses that with A, A.B, and A.B.C. Manipulation of
-    --        contexts utilizes implicit with clauses to emulate the visibility
-    --        of a particular unit.
-    --
-    --      * RTSfind - The compiler generates code which references entities
-    --        from the runtime.
- 
     --  Import_Interface_Present
     --    This flag is set in an Interface or Import pragma if a matching
     --    pragma of the other kind is also present. This is used to avoid
--- 1502,1507 ----
*************** package Sinfo is
*** 1572,1580 ****
     --  Instance_Spec
     --    This field is present in generic instantiation nodes, and also in
     --    formal package declaration nodes (formal package declarations are
!    --    treated in a manner very similar to package instantiations). It points
!    --    to the node for the spec of the instance, inserted as part of the
!    --    semantic processing for instantiations in Sem_Ch12.
  
     --  Is_Abort_Block
     --    Present in N_Block_Statement nodes. True if the block protects a list
--- 1529,1537 ----
     --  Instance_Spec
     --    This field is present in generic instantiation nodes, and also in
     --    formal package declaration nodes (formal package declarations are
!    --    treated similarly to package instantiations). It points to the node
!    --    for the spec of the instance, inserted as part of the semantic
!    --    processing for instantiations in Sem_Ch12.
  
     --  Is_Abort_Block
     --    Present in N_Block_Statement nodes. True if the block protects a list
*************** package Sinfo is
*** 1715,1732 ****
     --    nodes which emulate the barrier function of a protected entry body.
     --    The flag is used when checking for incorrect use of Current_Task.
  
-    --  Is_Enum_Array_Aggregate
-    --    A flag set on an aggregate created internally while building the
-    --    images tables for enumerations.
- 
     --  Is_Expanded_Build_In_Place_Call
     --    This flag is set in an N_Function_Call node to indicate that the extra
     --    actuals to support a build-in-place style of call have been added to
     --    the call.
  
!    --  Is_Expanded_Contract
!    --    Present in N_Contract nodes. Set if the contract has already undergone
!    --    expansion activities.
  
     --  Is_Generic_Contract_Pragma
     --    This flag is present in N_Pragma nodes. It is set when the pragma is
--- 1672,1685 ----
     --    nodes which emulate the barrier function of a protected entry body.
     --    The flag is used when checking for incorrect use of Current_Task.
  
     --  Is_Expanded_Build_In_Place_Call
     --    This flag is set in an N_Function_Call node to indicate that the extra
     --    actuals to support a build-in-place style of call have been added to
     --    the call.
  
!    --  Is_Expanded_Prefixed_Call
!    --    This flag is set in N_Function_Call and N_Procedure_Call_Statement
!    --    nodes to indicate that it is an expanded prefixed call.
  
     --  Is_Generic_Contract_Pragma
     --    This flag is present in N_Pragma nodes. It is set when the pragma is
*************** package Sinfo is
*** 1737,1742 ****
--- 1690,1696 ----
     --      Contract_Cases
     --      Depends
     --      Exceptional_Cases
+    --      Exit_Cases
     --      Extensions_Visible
     --      Global
     --      Initial_Condition
*************** package Sinfo is
*** 1778,1783 ****
--- 1732,1756 ----
     --    related to an ignored Ghost entity or encloses ignored Ghost entity.
     --    This flag has no relation to Is_Ignored.
  
+    --  Is_Implicit_With
+    --    Present in N_With_Clause nodes. Indicates that the clause does not
+    --    come from source, or is self referential. Is_Implicit_With is True
+    --    in the following cases:
+    --
+    --      * ABE mechanism - The static elaboration model of both the default
+    --        and the legacy ABE mechanism use with clauses to encode implicit
+    --        Elaborate[_All] pragmas.
+    --
+    --      * Analysis - A with clause for child unit A.B.C is equivalent to
+    --        a series of clauses for A, A.B, and A.B.C.
+    --
+    --      * RTSfind - The compiler generates code that references entities
+    --        from the runtime.
+    --
+    --      * Self-referential withs. If a with clause on the body of X says
+    --        "with X", this is legal but useless. These are not really
+    --        implicit, but are treated as such.
+ 
     --  Is_In_Discriminant_Check
     --    This flag is present in a selected component, and is used to indicate
     --    that the reference occurs within a discriminant check. The
*************** package Sinfo is
*** 1785,1802 ****
     --    discriminant check has a correct value cannot be performed in this
     --    case (or the discriminant check may be optimized away).
  
-    --  Is_Inherited_Pragma
-    --    This flag is set in an N_Pragma node that appears in a N_Contract node
-    --    to indicate that the pragma has been inherited from a parent context.
- 
     --  Is_Initialization_Block
     --    Defined in block nodes. Set when the block statement was created by
     --    the finalization machinery to wrap initialization statements. This
     --    flag aids the ABE Processing phase to suppress the diagnostics of
     --    finalization actions in initialization contexts.
  
     --  Is_Known_Guaranteed_ABE
!    --    NOTE: this flag is shared between the legacy ABE mechanism and the
     --    default ABE mechanism.
     --
     --    Present in the following nodes:
--- 1758,1776 ----
     --    discriminant check has a correct value cannot be performed in this
     --    case (or the discriminant check may be optimized away).
  
     --  Is_Initialization_Block
     --    Defined in block nodes. Set when the block statement was created by
     --    the finalization machinery to wrap initialization statements. This
     --    flag aids the ABE Processing phase to suppress the diagnostics of
     --    finalization actions in initialization contexts.
  
+    --  Is_Interpolated_String_Literal
+    --    Defined in string literals. Used to differentiate string literals
+    --    composed of interpolated string elements from string literals found
+    --    in interpolated expressions.
+ 
     --  Is_Known_Guaranteed_ABE
!    --    Note: this flag is shared between the legacy ABE mechanism and the
     --    default ABE mechanism.
     --
     --    Present in the following nodes:
*************** package Sinfo is
*** 1834,1849 ****
     --    A flag set on an aggregate that uses parentheses as delimiters
  
     --  Is_Power_Of_2_For_Shift
!    --    A flag present only in N_Op_Expon nodes. It is set when the
!    --    exponentiation is of the form 2 ** N, where the type of N is an
!    --    unsigned integral subtype whose size does not exceed the size of
!    --    Standard_Integer (i.e. a type that can be safely converted to
!    --    Natural), and the exponentiation appears as the right operand of an
!    --    integer multiplication or an integer division where the dividend is
!    --    unsigned. It is also required that overflow checking is off for both
!    --    the exponentiation and the multiply/divide node. If this set of
!    --    conditions holds, and the flag is set, then the division or
!    --    multiplication can be (and is) converted to a shift.
  
     --  Is_Preelaborable_Call
     --    Present in call marker nodes. Set when the related call is non-static
--- 1808,1822 ----
     --    A flag set on an aggregate that uses parentheses as delimiters
  
     --  Is_Power_Of_2_For_Shift
!    --    Present in N_Op_Expon nodes. It is set when the exponentiation is of
!    --    the form 2 ** N, where the type of N is an integer subtype whose size
!    --    does not exceed the size of Standard.Integer (i.e. a type that can be
!    --    safely converted to Natural), and the exponentiation appears as the
!    --    right operand of an integer multiplication or an integer division
!    --    where the dividend is unsigned. It is also required that overflow
!    --    checking is off for both the exponentiation and the multiply/divide
!    --    node. If this set of conditions holds, and the flag is set, then the
!    --    division or multiplication is converted to a shift.
  
     --  Is_Preelaborable_Call
     --    Present in call marker nodes. Set when the related call is non-static
*************** package Sinfo is
*** 1942,1950 ****
     --    for further details.
  
     --  Kill_Range_Check
!    --    Used in an N_Unchecked_Type_Conversion node to indicate that the
!    --    result should not be subjected to range checks. This is used for the
!    --    implementation of Normalize_Scalars.
  
     --  Label_Construct
     --    Used in an N_Implicit_Label_Declaration node. Refers to an N_Label,
--- 1915,1925 ----
     --    for further details.
  
     --  Kill_Range_Check
!    --    Used in N_Indexed_Component to indicate that its expressions should
!    --    not be subjected to range checks and in N_Unchecked_Type_Conversion
!    --    to indicate that the result of the conversion should not be subjected
!    --    to range checks. This is used for the implementation of aggregates and
!    --    Normalize_Scalars respectively.
  
     --  Label_Construct
     --    Used in an N_Implicit_Label_Declaration node. Refers to an N_Label,
*************** package Sinfo is
*** 1954,1987 ****
     --    handler.
  
     --  Library_Unit
!    --    In a stub node, Library_Unit points to the compilation unit node of
!    --    the corresponding subunit.
!    --
!    --    In a with clause node, Library_Unit points to the spec of the with'ed
!    --    unit.
     --
!    --    In a compilation unit node, the usage depends on the unit type:
     --
!    --     For a library unit body, Library_Unit points to the compilation unit
!    --     node of the corresponding spec, unless it's a subprogram body with
!    --     Acts_As_Spec set, in which case it points to itself.
     --
!    --     For a spec, Library_Unit points to the compilation unit node of the
!    --     corresponding body, if present. The body will be present if the spec
!    --     is or contains generics that we needed to instantiate. Similarly, the
!    --     body will be present if we needed it for inlining purposes. Thus, if
!    --     we have a spec/body pair, both of which are present, they point to
!    --     each other via Library_Unit.
     --
!    --     For a subunit, Library_Unit points to the compilation unit node of
!    --     the parent body.
!    --     ??? not (always) true, in (at least some, maybe all?) cases it points
!    --     to the corresponding spec for the parent body.
     --
!    --    Note that this field is not used to hold the parent pointer for child
!    --    unit (which might in any case need to use it for some other purpose as
!    --    described above). Instead for a child unit, implicit with's are
!    --    generated for all parents.
  
     --  Local_Raise_Statements
     --    This field is present in exception handler nodes. It is set to
--- 1929,1946 ----
     --    handler.
  
     --  Library_Unit
!    --    Direct use of this field should be avoided; use the wrappers in
!    --    Sinfo.Utils instead.
     --
!    --    This field is used to store the following:
     --
!    --    In N_Compilation_Unit: Spec_Lib_Unit, Body_Lib_Unit, Subunit_Parent.
     --
!    --    In N_Body_Stub: Stub_Subunit.
     --
!    --    In N_With_Clause: Withed_Lib_Unit
     --
!    --    See Sinfo.Utils for details.
  
     --  Local_Raise_Statements
     --    This field is present in exception handler nodes. It is set to
*************** package Sinfo is
*** 2098,2111 ****
     --    Present in N_Assignment_Statement to indicate that neither Finalize
     --    nor Adjust should take place on this assignment even though the LHS
     --    and RHS are controlled. Also to indicate that the primitive _assign
!    --    should not be used for a tagged assignment. This flag is used in init
!    --    proc and aggregate expansion where the generated assignments are
     --    initializations, not real assignments. Note that it also suppresses
     --    the creation of transient scopes around the N_Assignment_Statement,
     --    in other words it disables all controlled actions for the assignment.
  
     --  No_Elaboration_Check
!    --    NOTE: this flag is relevant only for the legacy ABE mechanism and
     --    should not be used outside of that context.
     --
     --    Present in N_Function_Call and N_Procedure_Call_Statement. Indicates
--- 2057,2074 ----
     --    Present in N_Assignment_Statement to indicate that neither Finalize
     --    nor Adjust should take place on this assignment even though the LHS
     --    and RHS are controlled. Also to indicate that the primitive _assign
!    --    should not be used for a tagged assignment. This flag is only used
!    --    in initialization procedures, and the expansion of aggregates, object
!    --    declarations and allocators, where the generated assignments are
     --    initializations, not real assignments. Note that it also suppresses
     --    the creation of transient scopes around the N_Assignment_Statement,
     --    in other words it disables all controlled actions for the assignment.
+    --    Additional note: the code generator should avoid creating a temporary
+    --    for the RHS when this flag is set on the N_Assignment_Statement node,
+    --    including when this RHS is a function call.
  
     --  No_Elaboration_Check
!    --    Note: this flag is relevant only for the legacy ABE mechanism and
     --    should not be used outside of that context.
     --
     --    Present in N_Function_Call and N_Procedure_Call_Statement. Indicates
*************** package Sinfo is
*** 2126,2135 ****
     --    Present in N_Assignment_Statement to indicate that no Finalize should
     --    take place on this assignment even though the LHS is controlled. Also
     --    to indicate that the primitive _assign should not be used for a tagged
!    --    assignment. This flag is only used in aggregates expansion where the
!    --    generated assignments are initializations, not real assignments. Note
!    --    that, unlike the No_Ctrl_Actions flag, it does *not* suppress the
     --    creation of transient scopes around the N_Assignment_Statement.
  
     --  No_Initialization
     --    Present in N_Object_Declaration and N_Allocator to indicate that the
--- 2089,2102 ----
     --    Present in N_Assignment_Statement to indicate that no Finalize should
     --    take place on this assignment even though the LHS is controlled. Also
     --    to indicate that the primitive _assign should not be used for a tagged
!    --    assignment. This flag is only used in initialization procedures, and
!    --    the expansion of aggregates, object declarations and allocators, where
!    --    the generated assignments are initializations, not real assignments.
!    --    Note that, unlike No_Ctrl_Actions, this flag does *not* suppress the
     --    creation of transient scopes around the N_Assignment_Statement.
+    --    Additional note: the code generator should avoid creating a temporary
+    --    for the RHS when this flag is set on the N_Assignment_Statement node,
+    --    including when this RHS is a function call.
  
     --  No_Initialization
     --    Present in N_Object_Declaration and N_Allocator to indicate that the
*************** package Sinfo is
*** 2310,2335 ****
     --    scope all use this field to reference the corresponding scope entity.
     --    See Einfo for further details.
  
     --  Shift_Count_OK
     --    A flag present in shift nodes to indicate that the shift count is
     --    known to be in range, i.e. is in the range from zero to word length
     --    minus one. If this flag is not set, then the shift count may be
     --    outside this range, i.e. larger than the word length, and the code
!    --    must ensure that such shift counts give the appropriate result.
  
     --  Source_Type
     --    Used in an N_Validate_Unchecked_Conversion node to point to the
     --    source type entity for the unchecked conversion instantiation
     --    which gigi must do size validation for.
  
-    --  Split_PPC
-    --    When a Pre or Post aspect specification is processed, it is broken
-    --    into AND THEN sections. The leftmost section has Split_PPC set to
-    --    False, indicating that it is the original specification (e.g. for
-    --    posting errors). For other sections, Split_PPC is set to True.
-    --    This flag is set in both the N_Aspect_Specification node itself,
-    --    and in the pragma which is generated from this node.
- 
     --  Storage_Pool
     --    Present in N_Allocator, N_Free_Statement, N_Simple_Return_Statement,
     --    and N_Extended_Return_Statement nodes. References the entity for the
--- 2277,2299 ----
     --    scope all use this field to reference the corresponding scope entity.
     --    See Einfo for further details.
  
+    --  Selector_Name
+    --    Present in N_Expanded_Name N_Selected_Component,
+    --    N_Generic_Association, and N_Parameter_Association nodes.
+ 
     --  Shift_Count_OK
     --    A flag present in shift nodes to indicate that the shift count is
     --    known to be in range, i.e. is in the range from zero to word length
     --    minus one. If this flag is not set, then the shift count may be
     --    outside this range, i.e. larger than the word length, and the code
!    --    generated by the back end must ensure that such shift counts give the
!    --    appropriate result.
  
     --  Source_Type
     --    Used in an N_Validate_Unchecked_Conversion node to point to the
     --    source type entity for the unchecked conversion instantiation
     --    which gigi must do size validation for.
  
     --  Storage_Pool
     --    Present in N_Allocator, N_Free_Statement, N_Simple_Return_Statement,
     --    and N_Extended_Return_Statement nodes. References the entity for the
*************** package Sinfo is
*** 2660,2665 ****
--- 2624,2630 ----
        --  Has_Wide_Character
        --  Has_Wide_Wide_Character
        --  Is_Folded_In_Parser
+       --  Is_Interpolated_String_Literal
        --  plus fields for expression
  
        ---------------------------------------
*************** package Sinfo is
*** 2667,2674 ****
        ---------------------------------------
  
        --  INTERPOLATED_STRING_LITERAL ::=
!       --    '{' "{INTERPOLATED_STRING_ELEMENT}" {
!       --        "{INTERPOLATED_STRING_ELEMENT}" } '}'
  
        --  INTERPOLATED_STRING_ELEMENT ::=
        --      ESCAPED_CHARACTER | INTERPOLATED_EXPRESSION
--- 2632,2638 ----
        ---------------------------------------
  
        --  INTERPOLATED_STRING_LITERAL ::=
!       --    'f' "{INTERPOLATED_STRING_ELEMENT}"
  
        --  INTERPOLATED_STRING_ELEMENT ::=
        --      ESCAPED_CHARACTER | INTERPOLATED_EXPRESSION
*************** package Sinfo is
*** 2721,2727 ****
        --  Next_Rep_Item
        --  Is_Generic_Contract_Pragma
        --  Is_Checked_Ghost_Pragma
-       --  Is_Inherited_Pragma
        --  Is_Analyzed_Pragma
        --  Class_Present set if from Aspect with 'Class
        --  Uneval_Old_Accept
--- 2685,2690 ----
*************** package Sinfo is
*** 2732,2738 ****
        --  Is_Delayed_Aspect
        --  Is_Disabled
        --  Import_Interface_Present
-       --  Split_PPC set if corresponding aspect had Split_PPC set
        --  Uneval_Old_Warn
  
        --  Note: we should have a section on what pragmas are passed on to
--- 2695,2700 ----
*************** package Sinfo is
*** 3654,3661 ****
  
        --  The only choice that appears explicitly is the OTHERS choice, as
        --  defined here. Other cases of discrete choice (expression and
!       --  discrete range) appear directly. This production is also used
!       --  for the OTHERS possibility of an exception choice.
  
        --  Note: in accordance with the syntax, the parser does not check that
        --  OTHERS appears at the end on its own in a choice list context. This
--- 3616,3623 ----
  
        --  The only choice that appears explicitly is the OTHERS choice, as
        --  defined here. Other cases of discrete choice (expression and
!       --  discrete range) appear directly. N_Others_Choice is also used
!       --  in exception handlers and generic formal packages.
  
        --  Note: in accordance with the syntax, the parser does not check that
        --  OTHERS appears at the end on its own in a choice list context. This
*************** package Sinfo is
*** 3884,3891 ****
        --  Sloc contains a copy of the Sloc value of the Prefix
        --  Prefix
        --  Expressions
-       --  Generalized_Indexing
        --  Atomic_Sync_Required
        --  plus fields for expression
  
        --  Note: if any of the subscripts requires a range check, then the
--- 3846,3854 ----
        --  Sloc contains a copy of the Sloc value of the Prefix
        --  Prefix
        --  Expressions
        --  Atomic_Sync_Required
+       --  Generalized_Indexing
+       --  Kill_Range_Check
        --  plus fields for expression
  
        --  Note: if any of the subscripts requires a range check, then the
*************** package Sinfo is
*** 4031,4039 ****
        --  Must_Be_Byte_Aligned
        --  plus fields for expression
  
-       --  Note: in Modify_Tree_For_C mode, Max and Min attributes are expanded
-       --  into equivalent if expressions, properly taking care of side effects.
- 
        ---------------------------------
        -- 4.1.4  Attribute Designator --
        ---------------------------------
--- 3994,3999 ----
*************** package Sinfo is
*** 4091,4097 ****
        --  Compile_Time_Known_Aggregate
        --  Expansion_Delayed
        --  Has_Self_Reference
-       --  Is_Enum_Array_Aggregate
        --  Is_Homogeneous_Aggregate
        --  Is_Parenthesis_Aggregate
        --  plus fields for expression
--- 4051,4056 ----
*************** package Sinfo is
*** 4253,4258 ****
--- 4212,4222 ----
  
        --  At most one of (Defining_Identifier, Iterator_Specification)
        --  is present at a time, in which case the other one is empty.
+       --  The Reverse_Present flag is present for cases where semantic analysis
+       --  later changes the association to have an N_Iterator_Specification
+       --  rather than a Defining_Identifier (due to the "discrete choice"
+       --  being resolved as an iterator name), and needs to set that flag on
+       --  the N_Iterator_Specification node.
  
        --  N_Iterated_Component_Association
        --  Sloc points to FOR
*************** package Sinfo is
*** 4260,4265 ****
--- 4224,4230 ----
        --  Iterator_Specification
        --  Expression
        --  Discrete_Choices
+       --  Reverse_Present
        --  Loop_Actions
        --  Box_Present
  
*************** package Sinfo is
*** 4277,4283 ****
        --  Etype
  
        ---------------------------------
!       --  3.4.5 Container_Aggregates --
        ---------------------------------
  
        --  ITERATED_ELEMENT_ASSOCIATION ::=
--- 4242,4248 ----
        --  Etype
  
        ---------------------------------
!       --  4.3.5 Container_Aggregates --
        ---------------------------------
  
        --  ITERATED_ELEMENT_ASSOCIATION ::=
*************** package Sinfo is
*** 4642,4652 ****
        --  and we are running in ELIMINATED mode, the operator node will be
        --  changed to be a call to the appropriate routine in System.Bignums.
  
-       --  Note: In Modify_Tree_For_C mode, we do not generate an N_Op_Mod node
-       --  for signed integer types (since there is no equivalent operator in
-       --  C). Instead we rewrite such an operation in terms of REM (which is
-       --  % in C) and other C-available operators.
- 
        ------------------------------------
        -- 4.5.7  Conditional Expressions --
        ------------------------------------
--- 4607,4612 ----
*************** package Sinfo is
*** 4675,4680 ****
--- 4635,4641 ----
        --  Else_Actions
        --  Is_Elsif (set if comes from ELSIF)
        --  Do_Overflow_Check
+       --  Expansion_Delayed
        --  plus fields for expression
  
        --  Expressions here is a three-element list, whose first element is the
*************** package Sinfo is
*** 4713,4718 ****
--- 4674,4680 ----
        --  Alternatives (the case expression alternatives)
        --  Etype
        --  Do_Overflow_Check
+       --  Expansion_Delayed
  
        ----------------------------------------
        -- 4.5.7  Case Expression Alternative --
*************** package Sinfo is
*** 5232,5245 ****
        --  Handled_Statement_Sequence
        --  Activation_Chain_Entity
        --  Cleanup_Actions
!       --  Has_Created_Identifier
!       --  Is_Asynchronous_Call_Block
!       --  Is_Task_Allocation_Block
        --  Exception_Junk
        --  Is_Abort_Block
        --  Is_Initialization_Block
        --  Is_Task_Master
-       --  At_End_Proc (set to Empty if no clean up procedure)
  
        -------------------------
        -- 5.7  Exit Statement --
--- 5194,5207 ----
        --  Handled_Statement_Sequence
        --  Activation_Chain_Entity
        --  Cleanup_Actions
!       --  At_End_Proc (set to Empty if no clean up procedure)
        --  Exception_Junk
+       --  Has_Created_Identifier
        --  Is_Abort_Block
+       --  Is_Asynchronous_Call_Block
        --  Is_Initialization_Block
+       --  Is_Task_Allocation_Block
        --  Is_Task_Master
  
        -------------------------
        -- 5.7  Exit Statement --
*************** package Sinfo is
*** 5514,5519 ****
--- 5476,5482 ----
        --  Handled_Statement_Sequence
        --  Activation_Chain_Entity
        --  Corresponding_Spec
+       --  At_End_Proc (set to Empty if no clean up procedure)
        --  Acts_As_Spec
        --  Bad_Is_Detected used only by parser
        --  Do_Storage_Check
*************** package Sinfo is
*** 5547,5552 ****
--- 5510,5516 ----
        --  First_Named_Actual
        --  Controlling_Argument (set to Empty if not dispatching)
        --  Is_Elaboration_Checks_OK_Node
+       --  Is_Expanded_Prefixed_Call
        --  Is_SPARK_Mode_On_Node
        --  Is_Elaboration_Warnings_OK_Node
        --  No_Elaboration_Check
*************** package Sinfo is
*** 5583,5588 ****
--- 5547,5553 ----
        --  Is_Elaboration_Warnings_OK_Node
        --  No_Elaboration_Check
        --  Is_Expanded_Build_In_Place_Call
+       --  Is_Expanded_Prefixed_Call
        --  Is_Known_Guaranteed_ABE
        --  plus fields for expression
  
*************** package Sinfo is
*** 5751,5758 ****
        --  Declarations
        --  Handled_Statement_Sequence (set to Empty if no HSS present)
        --  Corresponding_Spec
-       --  Was_Originally_Stub
        --  At_End_Proc (set to Empty if no clean up procedure)
  
        --  Note: if a source level package does not contain a handled sequence
        --  of statements, then the parser supplies a dummy one with a null
--- 5716,5723 ----
        --  Declarations
        --  Handled_Statement_Sequence (set to Empty if no HSS present)
        --  Corresponding_Spec
        --  At_End_Proc (set to Empty if no clean up procedure)
+       --  Was_Originally_Stub
  
        --  Note: if a source level package does not contain a handled sequence
        --  of statements, then the parser supplies a dummy one with a null
*************** package Sinfo is
*** 6587,6593 ****
        --  | CONTEXT_CLAUSE SUBUNIT
  
        --  The N_Compilation_Unit node itself represents the above syntax.
!       --  However, there are two additional items not reflected in the above
        --  syntax. First we have the global declarations that are added by the
        --  code generator. These are outer level declarations (so they cannot
        --  be represented as being inside the units). An example is the wrapper
--- 6552,6558 ----
        --  | CONTEXT_CLAUSE SUBUNIT
  
        --  The N_Compilation_Unit node itself represents the above syntax.
!       --  However, there are additional items not reflected in the above
        --  syntax. First we have the global declarations that are added by the
        --  code generator. These are outer level declarations (so they cannot
        --  be represented as being inside the units). An example is the wrapper
*************** package Sinfo is
*** 6600,6618 ****
        --  of elaboration of the library unit (notably the statement that sets
        --  the Boolean flag indicating that elaboration is complete).
  
!       --  The third item not reflected in the syntax is pragmas that appear
!       --  after the compilation unit. As always pragmas are a problem since
!       --  they are not part of the formal syntax, but can be stuck into the
!       --  source following a set of ad hoc rules, and we have to find an ad
!       --  hoc way of sticking them into the tree. For pragmas that appear
!       --  before the library unit, we just consider them to be part of the
!       --  context clause, and pragmas can appear in the Context_Items list
!       --  of the compilation unit. However, pragmas can also appear after
!       --  the library item.
  
!       --  To deal with all these problems, we create an auxiliary node for
!       --  a compilation unit, referenced from the N_Compilation_Unit node,
!       --  that contains these items.
  
        --  N_Compilation_Unit
        --  Sloc points to first token of defining unit name
--- 6565,6579 ----
        --  of elaboration of the library unit (notably the statement that sets
        --  the Boolean flag indicating that elaboration is complete).
  
!       --  Pragmas that appear after the compilation unit are not reflected
!       --  in the syntax. (Pragmas that appear before the library unit, are
!       --  considered part of the context clause. Pragmas can also appear in
!       --  the Context_Items list of the compilation unit.)
  
!       --  ???For historical reasons, the above information is stored in a
!       --  separate N_Compilation_Unit_Aux node associated with each
!       --  N_Compilation_Unit node. This information could be moved into
!       --  N_Compilation_Unit at this point.
  
        --  N_Compilation_Unit
        --  Sloc points to first token of defining unit name
*************** package Sinfo is
*** 6629,6634 ****
--- 6590,6599 ----
        --  Context_Pending
        --  Has_No_Elaboration_Code
  
+       --  Note: The Unit field can be any of N_Lib_Unit_Declaration,
+       --  N_Lib_Unit_Body, N_Lib_Unit_Renaming_Declaration, N_Subunit,
+       --  or (in the case of ignored ghost code) N_Null_Statement.
+ 
        --  N_Compilation_Unit_Aux
        --  Sloc is a copy of the Sloc from the N_Compilation_Unit node
        --  Declarations (set to No_List if no global declarations)
*************** package Sinfo is
*** 6713,6719 ****
        --  both of the flags First_Name and Last_Name are set in this name.
  
        --  Note: in the case of implicit with's that are installed by the
!       --  Rtsfind routine, Implicit_With is set, and the Sloc is typically
        --  set to Standard_Location, but it is incorrect to test the Sloc
        --  to find out if a with clause is implicit, test the flag instead.
  
--- 6678,6684 ----
        --  both of the flags First_Name and Last_Name are set in this name.
  
        --  Note: in the case of implicit with's that are installed by the
!       --  Rtsfind routine, Is_Implicit_With is set, and the Sloc is typically
        --  set to Standard_Location, but it is incorrect to test the Sloc
        --  to find out if a with clause is implicit, test the flag instead.
  
*************** package Sinfo is
*** 6723,6729 ****
        --  Private_Present set if with_clause has private keyword
        --  Limited_Present set if LIMITED is present
        --  Next_Implicit_With
!       --  Library_Unit
        --  Corresponding_Spec
        --  First_Name (set to True if first name or only one name)
        --  Last_Name (set to True if last name or only one name)
--- 6688,6694 ----
        --  Private_Present set if with_clause has private keyword
        --  Limited_Present set if LIMITED is present
        --  Next_Implicit_With
!       --  Library_Unit (i.e. Withed_Lib_Unit)
        --  Corresponding_Spec
        --  First_Name (set to True if first name or only one name)
        --  Last_Name (set to True if last name or only one name)
*************** package Sinfo is
*** 6732,6738 ****
        --  Elaborate_All_Present
        --  Elaborate_All_Desirable
        --  Elaborate_Desirable
!       --  Implicit_With
        --  Limited_View_Installed
        --  Parent_With
        --  Unreferenced_In_Spec
--- 6697,6703 ----
        --  Elaborate_All_Present
        --  Elaborate_All_Desirable
        --  Elaborate_Desirable
!       --  Is_Implicit_With
        --  Limited_View_Installed
        --  Parent_With
        --  Unreferenced_In_Spec
*************** package Sinfo is
*** 6782,6790 ****
        --  Sloc points to FUNCTION or PROCEDURE
        --  Specification
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit points to the subunit
        --  Corresponding_Body
-       --  At_End_Proc (set to Empty if no clean up procedure)
  
        -------------------------------
        -- 10.1.3  Package Body Stub --
--- 6747,6754 ----
        --  Sloc points to FUNCTION or PROCEDURE
        --  Specification
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit (i.e. Stub_Subunit)
        --  Corresponding_Body
  
        -------------------------------
        -- 10.1.3  Package Body Stub --
*************** package Sinfo is
*** 6798,6804 ****
        --  Sloc points to PACKAGE
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit points to the subunit
        --  Corresponding_Body
  
        ----------------------------
--- 6762,6768 ----
        --  Sloc points to PACKAGE
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit (i.e. Stub_Subunit)
        --  Corresponding_Body
  
        ----------------------------
*************** package Sinfo is
*** 6813,6819 ****
        --  Sloc points to TASK
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit points to the subunit
        --  Corresponding_Body
        --  At_End_Proc (set to Empty if no clean up procedure)
  
--- 6777,6783 ----
        --  Sloc points to TASK
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit (i.e. Stub_Subunit)
        --  Corresponding_Body
        --  At_End_Proc (set to Empty if no clean up procedure)
  
*************** package Sinfo is
*** 6831,6837 ****
        --  Sloc points to PROTECTED
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit points to the subunit
        --  Corresponding_Body
  
        ---------------------
--- 6795,6801 ----
        --  Sloc points to PROTECTED
        --  Defining_Identifier
        --  Corresponding_Spec_Of_Stub
!       --  Library_Unit (i.e. Stub_Subunit)
        --  Corresponding_Body
  
        ---------------------
*************** package Sinfo is
*** 7027,7033 ****
        --    GENERIC_FORMAL_PART SUBPROGRAM_SPECIFICATION
        --      [ASPECT_SPECIFICATIONS];
  
!       --  Note: Generic_Formal_Declarations can include pragmas
  
        --  N_Generic_Subprogram_Declaration
        --  Sloc points to GENERIC
--- 6991,6997 ----
        --    GENERIC_FORMAL_PART SUBPROGRAM_SPECIFICATION
        --      [ASPECT_SPECIFICATIONS];
  
!       --  Note: Generic_Formal_Declarations can include pragmas and use clauses
  
        --  N_Generic_Subprogram_Declaration
        --  Sloc points to GENERIC
*************** package Sinfo is
*** 7044,7054 ****
        --    GENERIC_FORMAL_PART PACKAGE_SPECIFICATION
        --      [ASPECT_SPECIFICATIONS];
  
!       --  Note: when we do generics right, the Activation_Chain_Entity entry
!       --  for this node can be removed (since the expander won't see generic
!       --  units any more)???.
! 
!       --  Note: Generic_Formal_Declarations can include pragmas
  
        --  N_Generic_Package_Declaration
        --  Sloc points to GENERIC
--- 7008,7014 ----
        --    GENERIC_FORMAL_PART PACKAGE_SPECIFICATION
        --      [ASPECT_SPECIFICATIONS];
  
!       --  Note: Generic_Formal_Declarations can include pragmas and use clauses
  
        --  N_Generic_Package_Declaration
        --  Sloc points to GENERIC
*************** package Sinfo is
*** 7056,7062 ****
        --  Corresponding_Body
        --  Generic_Formal_Declarations from generic formal part
        --  Parent_Spec
-       --  Activation_Chain_Entity
  
        -------------------------------
        -- 12.1  Generic Formal Part --
--- 7016,7021 ----
*************** package Sinfo is
*** 7153,7169 ****
  
        --  GENERIC_ASSOCIATION ::=
        --    [generic_formal_parameter_SELECTOR_NAME =>]
  
        --  Note: unlike the procedure call case, a generic association node
        --  is generated for every association, even if no formal parameter
!       --  selector name is present. In this case the parser will leave the
!       --  Selector_Name field set to Empty, to be filled in later by the
!       --  semantic pass.
  
        --  In Ada 2005, a formal may be associated with a box, if the
        --  association is part of the list of actuals for a formal package.
!       --  If the association is given by  OTHERS => <>, the association is
!       --  an N_Others_Choice.
  
        --  N_Generic_Association
        --  Sloc points to first token of generic association
--- 7112,7133 ----
  
        --  GENERIC_ASSOCIATION ::=
        --    [generic_formal_parameter_SELECTOR_NAME =>]
+       --      EXPLICIT_GENERIC_ACTUAL_PARAMETER
  
        --  Note: unlike the procedure call case, a generic association node
        --  is generated for every association, even if no formal parameter
!       --  selector name is present, in which case Selector_Name is Empty.
  
        --  In Ada 2005, a formal may be associated with a box, if the
        --  association is part of the list of actuals for a formal package.
!       --  If the association is given by OTHERS => <>, the association is
!       --  an N_Others_Choice (not an N_Generic_Association whose Selector_Name
!       --  is an N_Others_Choice).
! 
!       --  In source nodes, either Explicit_Generic_Actual_Parameter is present,
!       --  or Box_Present is True. However, Sem_Ch12 generates "dummy" nodes
!       --  with Explicit_Generic_Actual_Parameter = Empty and Box_Present =
!       --  False.
  
        --  N_Generic_Association
        --  Sloc points to first token of generic association
*************** package Sinfo is
*** 7394,7406 ****
        --  Default_Name (set to Empty if no subprogram default)
        --  Box_Present
        --  Expression (set to Empty if no expression present)
  
        --  Note: If no subprogram default is present, then Name is set
        --  to Empty, and Box_Present is False.
  
!       --  Note: The Expression field is only used for the GNAT extension
!       --  that allows a FORMAL_CONCRETE_SUBPROGRAM_DECLARATION to specify
!       --  an expression default for generic formal functions.
  
        --------------------------------------------------
        -- 12.6  Formal Abstract Subprogram Declaration --
--- 7358,7372 ----
        --  Default_Name (set to Empty if no subprogram default)
        --  Box_Present
        --  Expression (set to Empty if no expression present)
+       --  If the default is "is null", then Null_Present is set
+       --  on the Specification of this node.
  
        --  Note: If no subprogram default is present, then Name is set
        --  to Empty, and Box_Present is False.
  
!       --  Note: The Expression field is for the GNAT extension that allows a
!       --  FORMAL_CONCRETE_SUBPROGRAM_DECLARATION to specify an expression
!       --  default for generic formal functions.
  
        --------------------------------------------------
        -- 12.6  Formal Abstract Subprogram Declaration --
*************** package Sinfo is
*** 7456,7462 ****
        --  Defining_Identifier
        --  Name
        --  Generic_Associations (set to No_List if (<>) case or
!       --   empty generic actual part)
        --  Box_Present
        --  Instance_Spec
        --  Is_Known_Guaranteed_ABE
--- 7422,7428 ----
        --  Defining_Identifier
        --  Name
        --  Generic_Associations (set to No_List if (<>) case or
!       --   empty formal package actual part)
        --  Box_Present
        --  Instance_Spec
        --  Is_Known_Guaranteed_ABE
*************** package Sinfo is
*** 7466,7486 ****
        --------------------------------------
  
        --  FORMAL_PACKAGE_ACTUAL_PART ::=
!       --    ([OTHERS] => <>)
        --    | [GENERIC_ACTUAL_PART]
!       --    (FORMAL_PACKAGE_ASSOCIATION {. FORMAL_PACKAGE_ASSOCIATION}
  
        --  FORMAL_PACKAGE_ASSOCIATION ::=
        --   GENERIC_ASSOCIATION
        --  | GENERIC_FORMAL_PARAMETER_SELECTOR_NAME => <>
  
        --  There is no explicit node in the tree for a formal package actual
!       --  part. Instead the information appears in the parent node (i.e. the
!       --  formal package declaration node itself).
! 
!       --  There is no explicit node for a formal package association. All of
!       --  them are represented either by a generic association, possibly with
!       --  Box_Present, or by an N_Others_Choice.
  
        ---------------------------------
        -- 13.1  Representation clause --
--- 7432,7481 ----
        --------------------------------------
  
        --  FORMAL_PACKAGE_ACTUAL_PART ::=
!       --    ([OTHERS =>] <>)
        --    | [GENERIC_ACTUAL_PART]
!       --    | (FORMAL_PACKAGE_ASSOCIATION {, FORMAL_PACKAGE_ASSOCIATION}
!       --        [, OTHERS => <>])
  
        --  FORMAL_PACKAGE_ASSOCIATION ::=
        --   GENERIC_ASSOCIATION
        --  | GENERIC_FORMAL_PARAMETER_SELECTOR_NAME => <>
  
        --  There is no explicit node in the tree for a formal package actual
!       --  part, nor for a formal package association. A formal package
!       --  association is represented as a generic association, possibly with
!       --  Box_Present.
!       --
!       --  The "others => <>" syntax (both cases) is represented as an
!       --  N_Others_Choice (not an N_Generic_Association whose Selector_Name
!       --  is an N_Others_Choice). This admittedly odd representation does not
!       --  lose information, because "others" cannot be followed by anything
!       --  other than "=> <>". Thus:
!       --
!       --  "... is new G;"
!       --    The N_Formal_Package_Declaration has empty Generic_Associations,
!       --    and Box_Present = False.
!       --
!       --  "... is new G(<>);"
!       --    The N_Formal_Package_Declaration has empty Generic_Associations,
!       --    and Box_Present = True.
!       --
!       --  "... is new G(others => <>);"
!       --    The N_Formal_Package_Declaration has Generic_Associations with a
!       --    single element, which is an N_Others_Choice.
!       --    The N_Formal_Package_Declaration has Box_Present = False.
!       --
!       --  "... is new G(X, F => Y, others => <>);"
!       --    The N_Formal_Package_Declaration has Generic_Associations with
!       --    three elements, the last of which is an N_Others_Choice.
!       --    The N_Formal_Package_Declaration has Box_Present = False.
!       --
!       --  "... is new G(F1 => X, F2 => <>, others => <>);"
!       --    The N_Formal_Package_Declaration has Generic_Associations with
!       --    three elements. The first is an N_Generic_Association with
!       --    Box_Present = False. The second is an N_Generic_Association with
!       --    Box_Present = True. The last is an N_Others_Choice.
!       --    The N_Formal_Package_Declaration has Box_Present = False.
  
        ---------------------------------
        -- 13.1  Representation clause --
*************** package Sinfo is
*** 7549,7555 ****
        --  Check_Address_Alignment
        --  From_Aspect_Specification
        --  Is_Delayed_Aspect
-       --  Address_Warning_Posted
  
        --  Note: if From_Aspect_Specification is set, then Sloc points to the
        --  aspect name, and Entity is resolved already to reference the entity
--- 7544,7549 ----
*************** package Sinfo is
*** 7596,7601 ****
--- 7590,7596 ----
        --  Aspect_Rep_Item
        --  Expression (set to Empty if none)
        --  Entity entity to which the aspect applies
+       --  Aspect_Subprograms (set to No_Elist if no associated subprograms)
        --  Next_Rep_Item
        --  Class_Present Set if 'Class present
        --  Is_Ignored
*************** package Sinfo is
*** 7603,7609 ****
        --  Is_Delayed_Aspect
        --  Is_Disabled
        --  Is_Boolean_Aspect
-       --  Split_PPC Set if split pre/post attribute
        --  Aspect_On_Partial_View
  
        --  Note: Aspect_Specification is an Ada 2012 feature
--- 7598,7603 ----
*************** package Sinfo is
*** 7618,7628 ****
        --  In the case of aspects of the form xxx'Class, the aspect identifier
        --  is for xxx, and Class_Present is set to True.
  
-       --  Note: When a Pre or Post aspect specification is processed, it is
-       --  broken into AND THEN sections. The left most section has Split_PPC
-       --  set to False, indicating that it is the original specification (e.g.
-       --  for posting errors). For the other sections, Split_PPC is set True.
- 
        ---------------------------------------------
        -- 13.4  Enumeration representation clause --
        ---------------------------------------------
--- 7612,7617 ----
*************** package Sinfo is
*** 7743,7757 ****
        --  operator names. Note that for a given shift operation, one node
        --  covers all possible types, as for normal operators.
  
-       --  Note: it is perfectly permissible for the expander to generate
-       --  shift operation nodes directly, in which case they will be analyzed
-       --  and parsed in the usual manner.
- 
        --  Sprint syntax: shift-function-name!(expr, count)
  
!       --  Note: the Left_Opnd field holds the first argument (the value to
!       --  be shifted). The Right_Opnd field holds the second argument (the
!       --  shift count). The Chars field is the name of the intrinsic function.
  
        --  N_Op_Rotate_Left
        --  Sloc points to the function name
--- 7732,7744 ----
        --  operator names. Note that for a given shift operation, one node
        --  covers all possible types, as for normal operators.
  
        --  Sprint syntax: shift-function-name!(expr, count)
  
!       --  The Left_Opnd field holds the first argument (the value to be
!       --  shifted). The Right_Opnd field holds the second argument (the shift
!       --  count). The Chars field is the name of the intrinsic function.
!       --  The back end is responsible for generating correct code in the case
!       --  of large shift counts (in which case Shift_Count_OK will be False).
  
        --  N_Op_Rotate_Left
        --  Sloc points to the function name
*************** package Sinfo is
*** 7783,7794 ****
        --  plus fields for expression
        --  Shift_Count_OK
  
-       --  Note: N_Op_Rotate_Left, N_Op_Rotate_Right, N_Shift_Right_Arithmetic
-       --  never appear in the expanded tree if Modify_Tree_For_C mode is set.
- 
-       --  Note: For N_Op_Shift_Left and N_Op_Shift_Right, the right operand is
-       --  always less than the word size if Modify_Tree_For_C mode is set.
- 
     --------------------------
     -- Obsolescent Features --
     --------------------------
--- 7770,7775 ----
*************** package Sinfo is
*** 7964,7970 ****
        --  Pre_Post_Conditions (set to Empty if none)
        --  Contract_Test_Cases (set to Empty if none)
        --  Classifications (set to Empty if none)
-       --  Is_Expanded_Contract
  
        --  Pre_Post_Conditions contains a collection of pragmas that correspond
        --  to pre- and postconditions associated with an entry or a subprogram
--- 7945,7950 ----
*************** package Sinfo is
*** 7979,7987 ****
        --  The ordering in the list is in LIFO fashion.
  
        --  Note that there might be multiple preconditions or postconditions
!       --  in this list, either because they come from separate pragmas in the
!       --  source, or because a Pre (resp. Post) aspect specification has been
!       --  broken into AND THEN sections. See Split_PPC for details.
  
        --  In GNATprove mode, the inherited classwide pre- and postconditions
        --  (suitably specialized for the specific type of the overriding
--- 7959,7965 ----
        --  The ordering in the list is in LIFO fashion.
  
        --  Note that there might be multiple preconditions or postconditions
!       --  in this list, because they come from separate pragmas in the source.
  
        --  In GNATprove mode, the inherited classwide pre- and postconditions
        --  (suitably specialized for the specific type of the overriding
*************** package Sinfo is
*** 8101,8108 ****
        --  the expression of the node is fully analyzed and expanded, at which
        --  point it is safe to remove it, since no more actions can be inserted.
  
!       --  Note: In Modify_Tree_For_C, we never generate any declarations in
!       --  the action list, which can contain only non-declarative statements.
  
        --------------------
        -- Free Statement --
--- 8079,8094 ----
        --  the expression of the node is fully analyzed and expanded, at which
        --  point it is safe to remove it, since no more actions can be inserted.
  
!       --------------------------
!       -- External Initializer --
!       --------------------------
! 
!       --  This node is used to represent an instance of the
!       --  External_Initialization aspect.
! 
!       --  N_External_Initializer
!       --  File_Index
!       --  plus fields for expression
  
        --------------------
        -- Free Statement --
*************** package Sinfo is
*** 8120,8125 ****
--- 8106,8112 ----
        --  Storage_Pool
        --  Procedure_To_Call
        --  Actual_Designated_Subtype
+       --  For_Allocator
  
        --  Note: in the case where a debug source file is generated, the Sloc
        --  for this node points to the FREE keyword in the Sprint file output.
*************** package Sinfo is
*** 8457,8484 ****
        --  with the N_In node (or a rewriting thereof) corresponding to a
        --  classwide membership test.
  
-       --------------------------
-       -- Unchecked Expression --
-       --------------------------
- 
-       --  An unchecked expression is one that must be analyzed and resolved
-       --  with all checks off, regardless of the current setting of scope
-       --  suppress flags.
- 
-       --  Sprint syntax: `(expression)
- 
-       --  Note: this node is always removed from the tree (and replaced by
-       --  its constituent expression) on completion of analysis, so it only
-       --  appears in intermediate trees, and will never be seen by Gigi.
- 
-       --  N_Unchecked_Expression
-       --  Sloc is a copy of the Sloc of the expression
-       --  Expression
-       --  plus fields for expression
- 
-       --  Note: in the case where a debug source file is generated, the Sloc
-       --  for this node points to the back quote in the Sprint file output.
- 
        -------------------------------
        -- Unchecked Type Conversion --
        -------------------------------
--- 8444,8449 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-c.adb gcc-15.1.0/gcc/ada/sinput-c.adb
*** gcc-14.2.0/gcc/ada/sinput-c.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-c.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-c.ads gcc-15.1.0/gcc/ada/sinput-c.ads
*** gcc-14.2.0/gcc/ada/sinput-c.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-c.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-d.adb gcc-15.1.0/gcc/ada/sinput-d.adb
*** gcc-14.2.0/gcc/ada/sinput-d.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-d.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-d.ads gcc-15.1.0/gcc/ada/sinput-d.ads
*** gcc-14.2.0/gcc/ada/sinput-d.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-d.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-l.adb gcc-15.1.0/gcc/ada/sinput-l.adb
*** gcc-14.2.0/gcc/ada/sinput-l.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-l.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput-l.ads gcc-15.1.0/gcc/ada/sinput-l.ads
*** gcc-14.2.0/gcc/ada/sinput-l.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput-l.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput.adb gcc-15.1.0/gcc/ada/sinput.adb
*** gcc-14.2.0/gcc/ada/sinput.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sinput is
*** 244,252 ****
           Append (Buf, ':');
           Append (Buf, Nat (Get_Logical_Line_Number (Ptr)));
  
           Ptr := Instantiation_Location (Ptr);
           exit when Ptr = No_Location;
!          Append (Buf, " instantiated at ");
        end loop;
     end Build_Location_String;
  
--- 244,271 ----
           Append (Buf, ':');
           Append (Buf, Nat (Get_Logical_Line_Number (Ptr)));
  
+          --  For inherited pragmas, the location will be appended to a messsage
+          --  that already says "inherited"; also, we are not interested where
+          --  the pragma has been inherited. Progress directly to instantiation
+          --  locations.
+ 
+          if Comes_From_Inherited_Pragma (Ptr) then
+             Ptr := Instantiation_Location (Ptr);
+          end if;
+ 
           Ptr := Instantiation_Location (Ptr);
           exit when Ptr = No_Location;
! 
!          --  Make sure that we don't mention "instantiated" when in fact the
!          --  location comes from other mechanisms.
! 
!          pragma Assert (not Comes_From_Inherited_Pragma (Ptr));
! 
!          if Comes_From_Inlined_Body (Ptr) then
!             Append (Buf, " inlined at ");
!          else
!             Append (Buf, " instantiated at ");
!          end if;
        end loop;
     end Build_Location_String;
  
*************** package body Sinput is
*** 257,262 ****
--- 276,298 ----
        return +Buf;
     end Build_Location_String;
  
+    ---------------------
+    -- C_Source_Buffer --
+    ---------------------
+ 
+    function C_Source_Buffer (S : SFI) return C_Array is
+       Length : constant Integer :=
+         Integer (Source_Last (S) - Source_First (S));
+ 
+       Text : constant Source_Buffer_Ptr := Source_Text (S);
+ 
+       Pointer : constant access constant Character :=
+         (if Length = 0 then null else
+           Text (Text'First)'Access);
+    begin
+       return (Pointer, Length);
+    end C_Source_Buffer;
+ 
     -------------------
     -- Check_For_BOM --
     -------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/sinput.ads gcc-15.1.0/gcc/ada/sinput.ads
*** gcc-14.2.0/gcc/ada/sinput.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sinput.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sinput is
*** 706,711 ****
--- 706,720 ----
     --  reloaded. It is intended for tools that parse several times sources,
     --  to avoid memory leaks.
  
+    type C_Array is record
+       Pointer : aliased access constant Character;
+       Length  : aliased Integer;
+    end record;
+    --  WARNING: There is a matching C declaration of this type in fe.h
+ 
+    function C_Source_Buffer (S : SFI) return C_Array;
+    --  WARNING: There is a matching C declaration of this subprogram in fe.h
+ 
  private
     pragma Inline (File_Name);
     pragma Inline (Full_File_Name);
*************** private
*** 804,810 ****
        --  The following fields are for internal use only (i.e. only in the
        --  body of Sinput or its children, with no direct access by clients).
  
!       Sloc_Adjust : Source_Ptr;
        --  A value to be added to Sloc values for this file to reference the
        --  corresponding lines table. This is zero for the non-instantiation
        --  case, and set so that the addition references the ultimate template
--- 813,819 ----
        --  The following fields are for internal use only (i.e. only in the
        --  body of Sinput or its children, with no direct access by clients).
  
!       Sloc_Adjust : Source_Ptr'Base; -- can be (very) negative
        --  A value to be added to Sloc values for this file to reference the
        --  corresponding lines table. This is zero for the non-instantiation
        --  case, and set so that the addition references the ultimate template
diff -Nrcpad gcc-14.2.0/gcc/ada/snames.adb-tmpl gcc-15.1.0/gcc/ada/snames.adb-tmpl
*** gcc-14.2.0/gcc/ada/snames.adb-tmpl	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/snames.adb-tmpl	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Snames is
*** 125,139 ****
  
     function Get_Attribute_Id (N : Name_Id) return Attribute_Id is
     begin
!       if N = Name_CPU then
!          return Attribute_CPU;
!       elsif N = Name_Dispatching_Domain then
!          return Attribute_Dispatching_Domain;
!       elsif N = Name_Interrupt_Priority then
!          return Attribute_Interrupt_Priority;
!       else
!          return Attribute_Id'Val (N - First_Attribute_Name);
!       end if;
     end Get_Attribute_Id;
  
     -----------------------
--- 125,154 ----
  
     function Get_Attribute_Id (N : Name_Id) return Attribute_Id is
     begin
!       case N is
!          when Name_Constant_Indexing =>
!             return Attribute_Constant_Indexing;
!          when Name_CPU =>
!             return Attribute_CPU;
!          when Name_Default_Iterator =>
!             return Attribute_Default_Iterator;
!          when Name_Dispatching_Domain =>
!             return Attribute_Dispatching_Domain;
!          when Name_Implicit_Dereference =>
!             return Attribute_Implicit_Dereference;
!          when Name_Interrupt_Priority =>
!             return Attribute_Interrupt_Priority;
!          when Name_Iterable =>
!             return Attribute_Iterable;
!          when Name_Iterator_Element =>
!             return Attribute_Iterator_Element;
!          when Name_Variable_Indexing =>
!             return Attribute_Variable_Indexing;
!          when First_Attribute_Name .. Last_Attribute_Name =>
!             return Attribute_Id'Val (N - First_Attribute_Name);
!          when others =>
!             raise Program_Error;
!       end case;
     end Get_Attribute_Id;
  
     -----------------------
*************** package body Snames is
*** 431,437 ****
                     --  for compatibility with Ada 95 compilers implementing
                     --  only this Ada 2005 extension.
          and then (Ada_Version >= Ada_2012
!                    or else N not in Ada_2012_Reserved_Words);
     end Is_Keyword_Name;
  
     --------------------------------
--- 446,454 ----
                     --  for compatibility with Ada 95 compilers implementing
                     --  only this Ada 2005 extension.
          and then (Ada_Version >= Ada_2012
!                    or else N not in Ada_2012_Reserved_Words)
!         and then (Ada_Version >= Ada_With_All_Extensions
!                    or else N not in GNAT_Extensions_Reserved_Words);
     end Is_Keyword_Name;
  
     --------------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/snames.ads-tmpl gcc-15.1.0/gcc/ada/snames.ads-tmpl
*** gcc-14.2.0/gcc/ada/snames.ads-tmpl	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/snames.ads-tmpl	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Snames is
*** 155,160 ****
--- 155,162 ----
     Name_Disable_Controlled             : constant Name_Id := N + $;
     Name_Dynamic_Predicate              : constant Name_Id := N + $;
     Name_Exclusive_Functions            : constant Name_Id := N + $;
+    Name_External_Initialization        : constant Name_Id := N + $;
+    Name_Finalizable                    : constant Name_Id := N + $;
     Name_Full_Access_Only               : constant Name_Id := N + $;
     Name_Ghost_Predicate                : constant Name_Id := N + $;
     Name_Integer_Literal                : constant Name_Id := N + $;
*************** package Snames is
*** 165,171 ****
     Name_Relaxed_Initialization         : constant Name_Id := N + $;
     Name_Stable_Properties              : constant Name_Id := N + $;
     Name_Static_Predicate               : constant Name_Id := N + $;
-    Name_Storage_Model                  : constant Name_Id := N + $;
     Name_Storage_Model_Type             : constant Name_Id := N + $;
     Name_String_Literal                 : constant Name_Id := N + $;
     Name_Synchronization                : constant Name_Id := N + $;
--- 167,172 ----
*************** package Snames is
*** 462,467 ****
--- 463,469 ----
     Name_No_Component_Reordering        : constant Name_Id := N + $; -- GNAT
     Name_No_Heap_Finalization           : constant Name_Id := N + $; -- GNAT
     Name_No_Run_Time                    : constant Name_Id := N + $; -- GNAT
+    Name_Interrupts_System_By_Default   : constant Name_Id := N + $; -- GNAT
     Name_No_Strict_Aliasing             : constant Name_Id := N + $; -- GNAT
     Name_Normalize_Scalars              : constant Name_Id := N + $;
     Name_Optimize_Alignment             : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 558,571 ****
--- 560,576 ----
     Name_Elaborate_All                  : constant Name_Id := N + $;
     Name_Elaborate_Body                 : constant Name_Id := N + $;
     Name_Exceptional_Cases              : constant Name_Id := N + $; -- GNAT
+    Name_Exit_Cases                     : constant Name_Id := N + $; -- GNAT
     Name_Export                         : constant Name_Id := N + $;
     Name_Export_Function                : constant Name_Id := N + $; -- GNAT
     Name_Export_Object                  : constant Name_Id := N + $; -- GNAT
     Name_Export_Procedure               : constant Name_Id := N + $; -- GNAT
     Name_Export_Valued_Procedure        : constant Name_Id := N + $; -- GNAT
+    Name_Extended_Access                : constant Name_Id := N + $; -- GNAT
     Name_Extensions_Visible             : constant Name_Id := N + $; -- GNAT
     Name_External                       : constant Name_Id := N + $; -- GNAT
     Name_Finalize_Storage_Only          : constant Name_Id := N + $; -- GNAT
+    Name_First_Controlling_Parameter    : constant Name_Id := N + $;
     Name_Ghost                          : constant Name_Id := N + $; -- GNAT
     Name_Global                         : constant Name_Id := N + $; -- GNAT
     Name_Ident                          : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 614,620 ****
     Name_Machine_Attribute              : constant Name_Id := N + $; -- GNAT
     Name_Main                           : constant Name_Id := N + $; -- GNAT
     Name_Main_Storage                   : constant Name_Id := N + $; -- GNAT
-    Name_Max_Entry_Queue_Depth          : constant Name_Id := N + $; -- GNAT
     Name_Max_Entry_Queue_Length         : constant Name_Id := N + $; -- Ada 12
     Name_Max_Queue_Length               : constant Name_Id := N + $; -- GNAT
     Name_Memory_Size                    : constant Name_Id := N + $; -- Ada 83
--- 619,624 ----
*************** package Snames is
*** 622,627 ****
--- 626,632 ----
     Name_No_Caching                     : constant Name_Id := N + $; -- GNAT
     Name_No_Elaboration_Code_All        : constant Name_Id := N + $; -- GNAT
     Name_No_Inline                      : constant Name_Id := N + $; -- GNAT
+    Name_No_Raise                       : constant Name_Id := N + $; -- GNAT
     Name_No_Return                      : constant Name_Id := N + $; -- Ada 05
     Name_No_Tagged_Streams              : constant Name_Id := N + $; -- GNAT
     Name_Obsolescent                    : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 677,682 ****
--- 682,690 ----
     Name_Shared_Passive                 : constant Name_Id := N + $;
     Name_Side_Effects                   : constant Name_Id := N + $; -- GNAT
     Name_Simple_Storage_Pool_Type       : constant Name_Id := N + $; -- GNAT
+    Name_Simulate_Internal_Error        : constant Name_Id := N + $; -- GNAT
+    Name_Source_Reference               : constant Name_Id := N + $; -- GNAT
+    Name_Static_Elaboration_Desired     : constant Name_Id := N + $; -- GNAT
  
     --  Note: Storage_Size is not in this list because its name matches the name
     --  of the corresponding attribute. However, it is included in the
*************** package Snames is
*** 686,693 ****
     --  Note: Storage_Unit is also omitted from the list because of a clash with
     --  an attribute name, and is treated similarly.
  
-    Name_Source_Reference               : constant Name_Id := N + $; -- GNAT
-    Name_Static_Elaboration_Desired     : constant Name_Id := N + $; -- GNAT
     Name_Stream_Convert                 : constant Name_Id := N + $; -- GNAT
     Name_Subprogram_Variant             : constant Name_Id := N + $; -- GNAT
     Name_Subtitle                       : constant Name_Id := N + $; -- GNAT
--- 694,699 ----
*************** package Snames is
*** 784,789 ****
--- 790,796 ----
  
     Name_Address_Type                   : constant Name_Id := N + $;
     Name_Aggregate                      : constant Name_Id := N + $;
+    Name_All_Extensions                 : constant Name_Id := N + $;
     Name_Allow                          : constant Name_Id := N + $;
     Name_Amount                         : constant Name_Id := N + $;
     Name_As_Is                          : constant Name_Id := N + $;
*************** package Snames is
*** 810,815 ****
--- 817,823 ----
     Name_Eliminated                     : constant Name_Id := N + $;
     Name_Ensures                        : constant Name_Id := N + $;
     Name_Entity                         : constant Name_Id := N + $;
+    Name_Exception_Raised               : constant Name_Id := N + $;
     Name_External_Name                  : constant Name_Id := N + $;
     Name_Form                           : constant Name_Id := N + $;
     Name_Gcc                            : constant Name_Id := N + $;
*************** package Snames is
*** 830,835 ****
--- 838,844 ----
     Name_Link_Name                      : constant Name_Id := N + $;
     Name_Low_Order_First                : constant Name_Id := N + $;
     Name_Lowercase                      : constant Name_Id := N + $;
+    Name_Max_Entry_Queue_Depth          : constant Name_Id := N + $;
     Name_Max_Size                       : constant Name_Id := N + $;
     Name_Mechanism                      : constant Name_Id := N + $;
     Name_Message                        : constant Name_Id := N + $;
*************** package Snames is
*** 859,864 ****
--- 868,874 ----
     Name_No_Vector                      : constant Name_Id := N + $;
     Name_Nominal                        : constant Name_Id := N + $;
     Name_None                           : constant Name_Id := N + $;
+    Name_Normal_Return                  : constant Name_Id := N + $;
     Name_Null_Address                   : constant Name_Id := N + $;
     Name_On                             : constant Name_Id := N + $;
     Name_Optional                       : constant Name_Id := N + $;
*************** package Snames is
*** 867,872 ****
--- 877,883 ----
     Name_Proof_In                       : constant Name_Id := N + $;
     Name_Reason                         : constant Name_Id := N + $;
     Name_Reference                      : constant Name_Id := N + $;
+    Name_Relaxed_Finalization           : constant Name_Id := N + $;
     Name_Renamed                        : constant Name_Id := N + $;
     Name_Requires                       : constant Name_Id := N + $;
     Name_Restricted                     : constant Name_Id := N + $;
*************** package Snames is
*** 904,913 ****
     Name_Warn                           : constant Name_Id := N + $;
     Name_Working_Storage                : constant Name_Id := N + $;
  
-    --  used by Repinfo JSON I/O
- 
-    Name_Present                        : constant Name_Id := N + $;
- 
     --  Names of recognized attributes. The entries with the comment "Ada 83"
     --  are attributes that are defined in Ada 83, but not in Ada 95. These
     --  attributes are implemented in all Ada modes in GNAT.
--- 915,920 ----
*************** package Snames is
*** 936,947 ****
     Name_Compiler_Version               : constant Name_Id := N + $; -- GNAT
     Name_Component_Size                 : constant Name_Id := N + $;
     Name_Compose                        : constant Name_Id := N + $;
-    Name_Constant_Indexing              : constant Name_Id := N + $; -- GNAT
     Name_Constrained                    : constant Name_Id := N + $;
     Name_Count                          : constant Name_Id := N + $;
     Name_Default_Bit_Order              : constant Name_Id := N + $; -- GNAT
     Name_Default_Scalar_Storage_Order   : constant Name_Id := N + $; -- GNAT
-    Name_Default_Iterator               : constant Name_Id := N + $; -- GNAT
     Name_Definite                       : constant Name_Id := N + $;
     Name_Delta                          : constant Name_Id := N + $;
     Name_Denorm                         : constant Name_Id := N + $;
--- 943,952 ----
*************** package Snames is
*** 968,980 ****
     Name_Has_Same_Storage               : constant Name_Id := N + $; -- Ada 12
     Name_Has_Tagged_Values              : constant Name_Id := N + $; -- GNAT
     Name_Identity                       : constant Name_Id := N + $;
-    Name_Implicit_Dereference           : constant Name_Id := N + $; -- GNAT
     Name_Index                          : constant Name_Id := N + $; -- Ada 22
     Name_Initialized                    : constant Name_Id := N + $; -- GNAT
     Name_Integer_Value                  : constant Name_Id := N + $; -- GNAT
     Name_Invalid_Value                  : constant Name_Id := N + $; -- GNAT
-    Name_Iterator_Element               : constant Name_Id := N + $; -- GNAT
-    Name_Iterable                       : constant Name_Id := N + $; -- GNAT
     Name_Large                          : constant Name_Id := N + $; -- Ada 83
     Name_Last                           : constant Name_Id := N + $;
     Name_Last_Bit                       : constant Name_Id := N + $;
--- 973,982 ----
*************** package Snames is
*** 1037,1042 ****
--- 1039,1045 ----
     Name_Storage_Size                   : constant Name_Id := N + $;
     Name_Storage_Unit                   : constant Name_Id := N + $; -- GNAT
     Name_Stream_Size                    : constant Name_Id := N + $; -- Ada 05
+    Name_Super                          : constant Name_Id := N + $; -- GNAT
     Name_System_Allocator_Alignment     : constant Name_Id := N + $; -- GNAT
     Name_Tag                            : constant Name_Id := N + $;
     Name_Target_Name                    : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 1055,1061 ****
     Name_Valid                          : constant Name_Id := N + $;
     Name_Valid_Scalars                  : constant Name_Id := N + $; -- GNAT
     Name_Value_Size                     : constant Name_Id := N + $; -- GNAT
-    Name_Variable_Indexing              : constant Name_Id := N + $; -- GNAT
     Name_Version                        : constant Name_Id := N + $;
     Name_Wchar_T_Size                   : constant Name_Id := N + $; -- GNAT
     Name_Wide_Wide_Width                : constant Name_Id := N + $; -- Ada 05
--- 1058,1063 ----
*************** package Snames is
*** 1144,1153 ****
--- 1146,1161 ----
     --  internal attributes is not permitted).
  
     First_Internal_Attribute_Name       : constant Name_Id := N + $;
+    Name_Constant_Indexing              : constant Name_Id := N + $; -- GNAT
     Name_CPU                            : constant Name_Id := N + $;
+    Name_Default_Iterator               : constant Name_Id := N + $; -- GNAT
     Name_Dispatching_Domain             : constant Name_Id := N + $;
+    Name_Implicit_Dereference           : constant Name_Id := N + $; -- GNAT
     Name_Interrupt_Priority             : constant Name_Id := N + $;
+    Name_Iterable                       : constant Name_Id := N + $; -- GNAT
+    Name_Iterator_Element               : constant Name_Id := N + $; -- GNAT
     Name_Secondary_Stack_Size           : constant Name_Id := N + $; -- GNAT
+    Name_Variable_Indexing              : constant Name_Id := N + $; -- GNAT
     Last_Internal_Attribute_Name        : constant Name_Id := N + $;
  
     --  Names of recognized locking policy identifiers
*************** package Snames is
*** 1221,1235 ****
  
     --  Names of recognized checks for pragma Suppress
  
!    --  Note: the name Atomic_Synchronization can only be specified internally
!    --  as a result of using pragma Enable/Disable_Atomic_Synchronization.
  
     First_Check_Name                    : constant Name_Id := N + $;
     Name_Access_Check                   : constant Name_Id := N + $;
     Name_Accessibility_Check            : constant Name_Id := N + $;
     Name_Alignment_Check                : constant Name_Id := N + $; -- GNAT
     Name_Allocation_Check               : constant Name_Id := N + $;
!    Name_Atomic_Synchronization         : constant Name_Id := N + $; -- GNAT
     Name_Characters_Assertion_Check     : constant Name_Id := N + $;
     Name_Containers_Assertion_Check     : constant Name_Id := N + $;
     Name_Discriminant_Check             : constant Name_Id := N + $;
--- 1229,1243 ----
  
     --  Names of recognized checks for pragma Suppress
  
!    --  Note: the name _Atomic_Synchronization is used only internally
!    --  as a result of using pragmas Disable/Enable_Atomic_Synchronization.
  
     First_Check_Name                    : constant Name_Id := N + $;
     Name_Access_Check                   : constant Name_Id := N + $;
     Name_Accessibility_Check            : constant Name_Id := N + $;
     Name_Alignment_Check                : constant Name_Id := N + $; -- GNAT
     Name_Allocation_Check               : constant Name_Id := N + $;
!    Name_uAtomic_Synchronization        : constant Name_Id := N + $; -- GNAT
     Name_Characters_Assertion_Check     : constant Name_Id := N + $;
     Name_Containers_Assertion_Check     : constant Name_Id := N + $;
     Name_Discriminant_Check             : constant Name_Id := N + $;
*************** package Snames is
*** 1253,1258 ****
--- 1261,1267 ----
     Name_Container_Checks               : constant Name_Id := N + $; -- GNAT
     Name_Tampering_Check                : constant Name_Id := N + $; -- GNAT
     Name_Tasking_Check                  : constant Name_Id := N + $;
+    Name_Raise_Check                    : constant Name_Id := N + $; -- GNAT
     Name_All_Checks                     : constant Name_Id := N + $;
     Last_Check_Name                     : constant Name_Id := N + $;
  
*************** package Snames is
*** 1372,1383 ****
  
     Name_Discriminant                     : constant Name_Id := N + $;
     Name_Operands                         : constant Name_Id := N + $;
  
     --  Other miscellaneous names used in front end
     --  Note that the UP_ prefix means use the rest of the name in uppercase,
!    --  e.g. Name_UP_RESULT corresponds to the name "RESULT".
  
-    Name_UP_RESULT                        : constant Name_Id := N + $;
     Name_Synchronous_Task_Control         : constant Name_Id := N + $;
  
     --  Names used to implement iterators over predefined containers
--- 1381,1392 ----
  
     Name_Discriminant                     : constant Name_Id := N + $;
     Name_Operands                         : constant Name_Id := N + $;
+    Name_Present                          : constant Name_Id := N + $;
  
     --  Other miscellaneous names used in front end
     --  Note that the UP_ prefix means use the rest of the name in uppercase,
!    --  e.g. Name_UP_RESULT maps to "RESULT".
  
     Name_Synchronous_Task_Control         : constant Name_Id := N + $;
  
     --  Names used to implement iterators over predefined containers
*************** package Snames is
*** 1423,1428 ****
--- 1432,1447 ----
     subtype Ada_2012_Reserved_Words is Name_Id
       range First_2012_Reserved_Word .. Last_2012_Reserved_Word;
  
+    --  GNAT extensions reserved words
+ 
+    First_GNAT_Extensions_Reserved_Word   : constant Name_Id := N + $;
+    Name_Finally                          : constant Name_Id := N + $;
+    Last_GNAT_Extensions_Reserved_Word    : constant Name_Id := N + $;
+ 
+    subtype GNAT_Extensions_Reserved_Words is Name_Id
+      range First_GNAT_Extensions_Reserved_Word ..
+        Last_GNAT_Extensions_Reserved_Word;
+ 
     --  Mark last defined name for consistency check in Snames body
  
     Last_Predefined_Name                  : constant Name_Id := N + $;
*************** package Snames is
*** 1461,1472 ****
        Attribute_Compiler_Version,
        Attribute_Component_Size,
        Attribute_Compose,
-       Attribute_Constant_Indexing,
        Attribute_Constrained,
        Attribute_Count,
        Attribute_Default_Bit_Order,
        Attribute_Default_Scalar_Storage_Order,
-       Attribute_Default_Iterator,
        Attribute_Definite,
        Attribute_Delta,
        Attribute_Denorm,
--- 1480,1489 ----
*************** package Snames is
*** 1493,1505 ****
        Attribute_Has_Same_Storage,
        Attribute_Has_Tagged_Values,
        Attribute_Identity,
-       Attribute_Implicit_Dereference,
        Attribute_Index,
        Attribute_Initialized,
        Attribute_Integer_Value,
        Attribute_Invalid_Value,
-       Attribute_Iterator_Element,
-       Attribute_Iterable,
        Attribute_Large,
        Attribute_Last,
        Attribute_Last_Bit,
--- 1510,1519 ----
*************** package Snames is
*** 1562,1567 ****
--- 1576,1582 ----
        Attribute_Storage_Size,
        Attribute_Storage_Unit,
        Attribute_Stream_Size,
+       Attribute_Super,
        Attribute_System_Allocator_Alignment,
        Attribute_Tag,
        Attribute_Target_Name,
*************** package Snames is
*** 1580,1586 ****
        Attribute_Valid,
        Attribute_Valid_Scalars,
        Attribute_Value_Size,
-       Attribute_Variable_Indexing,
        Attribute_Version,
        Attribute_Wchar_T_Size,
        Attribute_Wide_Wide_Width,
--- 1595,1600 ----
*************** package Snames is
*** 1642,1653 ****
        --  the special processing required to deal with the fact that their
        --  names are not attribute names.
  
        Attribute_CPU,
        Attribute_Dispatching_Domain,
!       Attribute_Interrupt_Priority);
  
     subtype Internal_Attribute_Id is Attribute_Id
!      range Attribute_CPU .. Attribute_Interrupt_Priority;
  
     type Attribute_Set is array (Attribute_Id) of Boolean;
     --  Type used to build attribute classification flag arrays
--- 1656,1673 ----
        --  the special processing required to deal with the fact that their
        --  names are not attribute names.
  
+       Attribute_Constant_Indexing,
        Attribute_CPU,
+       Attribute_Default_Iterator,
        Attribute_Dispatching_Domain,
!       Attribute_Implicit_Dereference,
!       Attribute_Interrupt_Priority,
!       Attribute_Iterable,
!       Attribute_Iterator_Element,
!       Attribute_Variable_Indexing);
  
     subtype Internal_Attribute_Id is Attribute_Id
!      range Attribute_Constant_Indexing .. Attribute_Variable_Indexing;
  
     type Attribute_Set is array (Attribute_Id) of Boolean;
     --  Type used to build attribute classification flag arrays
*************** package Snames is
*** 1776,1781 ****
--- 1796,1802 ----
        Pragma_No_Component_Reordering,
        Pragma_No_Heap_Finalization,
        Pragma_No_Run_Time,
+       Pragma_Interrupts_System_By_Default,
        Pragma_No_Strict_Aliasing,
        Pragma_Normalize_Scalars,
        Pragma_Optimize_Alignment,
*************** package Snames is
*** 1858,1871 ****
--- 1879,1895 ----
        Pragma_Elaborate_All,
        Pragma_Elaborate_Body,
        Pragma_Exceptional_Cases,
+       Pragma_Exit_Cases,
        Pragma_Export,
        Pragma_Export_Function,
        Pragma_Export_Object,
        Pragma_Export_Procedure,
        Pragma_Export_Valued_Procedure,
+       Pragma_Extended_Access,
        Pragma_Extensions_Visible,
        Pragma_External,
        Pragma_Finalize_Storage_Only,
+       Pragma_First_Controlling_Parameter,
        Pragma_Ghost,
        Pragma_Global,
        Pragma_Ident,
*************** package Snames is
*** 1902,1908 ****
        Pragma_Machine_Attribute,
        Pragma_Main,
        Pragma_Main_Storage,
-       Pragma_Max_Entry_Queue_Depth,
        Pragma_Max_Entry_Queue_Length,
        Pragma_Max_Queue_Length,
        Pragma_Memory_Size,
--- 1926,1931 ----
*************** package Snames is
*** 1910,1915 ****
--- 1933,1939 ----
        Pragma_No_Caching,
        Pragma_No_Elaboration_Code_All,
        Pragma_No_Inline,
+       Pragma_No_Raise,
        Pragma_No_Return,
        Pragma_No_Tagged_Streams,
        Pragma_Obsolescent,
*************** package Snames is
*** 1945,1950 ****
--- 1969,1975 ----
        Pragma_Shared_Passive,
        Pragma_Side_Effects,
        Pragma_Simple_Storage_Pool_Type,
+       Pragma_Simulate_Internal_Error,
        Pragma_Source_Reference,
        Pragma_Static_Elaboration_Desired,
        Pragma_Stream_Convert,
*************** package Snames is
*** 2033,2041 ****
     --  i.e. an attribute reference that returns an entity.
  
     function Is_Internal_Attribute_Name (N : Name_Id) return Boolean;
!    --  Test to see if the name N is the name of an INT attribute (Name_CPU,
!    --  Name_Dispatching_Domain, Name_Interrupt_Priority,
!    --  Name_Secondary_Stack_Size).
  
     function Is_Procedure_Attribute_Name (N : Name_Id) return Boolean;
     --  Test to see if the name N is the name of a recognized attribute that
--- 2058,2064 ----
     --  i.e. an attribute reference that returns an entity.
  
     function Is_Internal_Attribute_Name (N : Name_Id) return Boolean;
!    --  Test to see if the name N is the name of an internal attribute
  
     function Is_Procedure_Attribute_Name (N : Name_Id) return Boolean;
     --  Test to see if the name N is the name of a recognized attribute that
diff -Nrcpad gcc-14.2.0/gcc/ada/socket.c gcc-15.1.0/gcc/ada/socket.c
*** gcc-14.2.0/gcc/ada/socket.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/socket.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2003-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2003-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** __gnat_getservbyport (int port, const ch
*** 266,272 ****
  #elif defined (__vxworks)
  static char vxw_h_name[MAXHOSTNAMELEN + 1];
  static char *vxw_h_aliases[1] = { NULL };
! static int vxw_h_addr;
  static char *vxw_h_addr_list[2] = { (char*) &vxw_h_addr, NULL };
  
  int
--- 266,272 ----
  #elif defined (__vxworks)
  static char vxw_h_name[MAXHOSTNAMELEN + 1];
  static char *vxw_h_aliases[1] = { NULL };
! static long vxw_h_addr;
  static char *vxw_h_addr_list[2] = { (char*) &vxw_h_addr, NULL };
  
  int
*************** __gnat_gethostbyaddr (const char *addr,
*** 307,313 ****
      return -1;
    }
  
!   vxw_h_addr       = addr;
  
    ret->h_name      = &vxw_h_name;
    ret->h_aliases   = &vxw_h_aliases;
--- 307,313 ----
      return -1;
    }
  
!   vxw_h_addr       = (long) addr;
  
    ret->h_name      = &vxw_h_name;
    ret->h_aliases   = &vxw_h_aliases;
diff -Nrcpad gcc-14.2.0/gcc/ada/spark_xrefs.adb gcc-15.1.0/gcc/ada/spark_xrefs.adb
*** gcc-14.2.0/gcc/ada/spark_xrefs.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/spark_xrefs.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/spark_xrefs.ads gcc-15.1.0/gcc/ada/spark_xrefs.ads
*** gcc-14.2.0/gcc/ada/spark_xrefs.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/spark_xrefs.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sprint.adb gcc-15.1.0/gcc/ada/sprint.adb
*** gcc-14.2.0/gcc/ada/sprint.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sprint.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sprint is
*** 1840,1845 ****
--- 1840,1848 ----
  
              Write_Char (';');
  
+          when N_External_Initializer =>
+             null;
+ 
           when N_Delta_Aggregate =>
              Write_Str_With_Col_Check_Sloc ("(");
              Sprint_Node (Expression (Node));
*************** package body Sprint is
*** 3116,3123 ****
              Write_Condition_And_Reason (Node);
  
           when N_Raise_Statement =>
!             Write_Indent_Str_Sloc ("raise ");
!             Sprint_Node (Name (Node));
  
              if Present (Expression (Node)) then
                 Write_Str_With_Col_Check_Sloc (" with ");
--- 3119,3130 ----
              Write_Condition_And_Reason (Node);
  
           when N_Raise_Statement =>
!             if Present (Name (Node)) then
!                Write_Indent_Str_Sloc ("raise ");
!                Sprint_Node (Name (Node));
!             else
!                Write_Indent_Str_Sloc ("raise");
!             end if;
  
              if Present (Expression (Node)) then
                 Write_Str_With_Col_Check_Sloc (" with ");
*************** package body Sprint is
*** 3127,3134 ****
              Write_Char (';');
  
           when N_Raise_When_Statement =>
!             Write_Indent_Str_Sloc ("raise ");
!             Sprint_Node (Name (Node));
              Write_Str (" when ");
              Sprint_Node (Condition (Node));
  
--- 3134,3145 ----
              Write_Char (';');
  
           when N_Raise_When_Statement =>
!             if Present (Name (Node)) then
!                Write_Indent_Str_Sloc ("raise ");
!                Sprint_Node (Name (Node));
!             else
!                Write_Indent_Str_Sloc ("raise");
!             end if;
              Write_Str (" when ");
              Sprint_Node (Condition (Node));
  
*************** package body Sprint is
*** 3539,3550 ****
              Sprint_Node (Expression (Node));
              Write_Char (')');
  
-          when N_Unchecked_Expression =>
-             Col_Check (10);
-             Write_Str ("`(");
-             Sprint_Node_Sloc (Expression (Node));
-             Write_Char (')');
- 
           when N_Unchecked_Type_Conversion =>
              Sprint_Node (Subtype_Mark (Node));
              Write_Char ('!');
--- 3550,3555 ----
*************** package body Sprint is
*** 3772,3778 ****
        Node_Exists : Boolean := False;
  
     begin
- 
        if Is_Non_Empty_List (List) then
  
           if Dump_Original_Only then
--- 3777,3782 ----
*************** package body Sprint is
*** 4415,4423 ****
                       Sprint_Node (X);
                       Set_Sloc (X, Old_Sloc);
  
!                      --  Array subtypes
  
!                      --  Preserve Sloc of index subtypes, as above
  
                    when E_Array_Subtype =>
                       Write_Header (False);
--- 4419,4427 ----
                       Sprint_Node (X);
                       Set_Sloc (X, Old_Sloc);
  
!                   --  Array subtypes
  
!                   --  Preserve Sloc of index subtypes, as above
  
                    when E_Array_Subtype =>
                       Write_Header (False);
*************** package body Sprint is
*** 4708,4713 ****
--- 4712,4721 ----
                          Write_Str (");");
                       end;
  
+                   when E_Private_Subtype =>
+                      Write_Header (False);
+                      Write_Name_With_Col_Check (Chars (Full_View (Typ)));
+ 
                    --  For all other Itypes, print a triple ? (fill in later
                    --  if needed).
  
diff -Nrcpad gcc-14.2.0/gcc/ada/sprint.ads gcc-15.1.0/gcc/ada/sprint.ads
*** gcc-14.2.0/gcc/ada/sprint.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sprint.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/stand.ads gcc-15.1.0/gcc/ada/stand.ads
*** gcc-14.2.0/gcc/ada/stand.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stand.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/standard.ads.h gcc-15.1.0/gcc/ada/standard.ads.h
*** gcc-14.2.0/gcc/ada/standard.ads.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/standard.ads.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *                       Copyright (C) 2015, AdaCore                        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *                       Copyright (C) 2015-2025, AdaCore                   *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/stringt.adb gcc-15.1.0/gcc/ada/stringt.adb
*** gcc-14.2.0/gcc/ada/stringt.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stringt.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/stringt.ads gcc-15.1.0/gcc/ada/stringt.ads
*** gcc-14.2.0/gcc/ada/stringt.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stringt.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/stringt.h gcc-15.1.0/gcc/ada/stringt.h
*** gcc-14.2.0/gcc/ada/stringt.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stringt.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/strub.adb gcc-15.1.0/gcc/ada/strub.adb
*** gcc-14.2.0/gcc/ada/strub.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/strub.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/strub.ads gcc-15.1.0/gcc/ada/strub.ads
*** gcc-14.2.0/gcc/ada/strub.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/strub.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/style.adb gcc-15.1.0/gcc/ada/style.adb
*** gcc-14.2.0/gcc/ada/style.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/style.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Style is
*** 94,99 ****
--- 94,180 ----
        end if;
     end Check_Array_Attribute_Index;
  
+    ----------------------------
+    -- Check_Boolean_Operator --
+    ----------------------------
+ 
+    procedure Check_Boolean_Operator (Node : Node_Id) is
+ 
+       function OK_Boolean_Operand (N : Node_Id) return Boolean;
+       --  Returns True for simple variable, or "not X1" or "X1 and X2" or
+       --  "X1 or X2" where X1, X2 are recursively OK_Boolean_Operand's.
+ 
+       ------------------------
+       -- OK_Boolean_Operand --
+       ------------------------
+ 
+       function OK_Boolean_Operand (N : Node_Id) return Boolean is
+       begin
+          if Nkind (N) in N_Identifier | N_Expanded_Name then
+             return True;
+ 
+          elsif Nkind (N) = N_Op_Not then
+             return OK_Boolean_Operand (Original_Node (Right_Opnd (N)));
+ 
+          elsif Nkind (N) in N_Op_And | N_Op_Or then
+             return OK_Boolean_Operand (Original_Node (Left_Opnd (N)))
+                      and then
+                    OK_Boolean_Operand (Original_Node (Right_Opnd (N)));
+ 
+          else
+             return False;
+          end if;
+       end OK_Boolean_Operand;
+ 
+    --  Start of processing for Check_Boolean_Operator
+ 
+    begin
+       if Style_Check_Boolean_And_Or
+         and then Comes_From_Source (Node)
+       then
+          declare
+             Orig : constant Node_Id := Original_Node (Node);
+ 
+          begin
+             if Nkind (Orig) in N_Op_And | N_Op_Or then
+                declare
+                   L : constant Node_Id := Original_Node (Left_Opnd  (Orig));
+                   R : constant Node_Id := Original_Node (Right_Opnd (Orig));
+ 
+                begin
+                   --  First OK case, simple boolean constants/identifiers
+ 
+                   if OK_Boolean_Operand (L)
+                        and then
+                      OK_Boolean_Operand (R)
+                   then
+                      return;
+ 
+                   --  Second OK case, modular types
+ 
+                   elsif Is_Modular_Integer_Type (Etype (Node)) then
+                      return;
+ 
+                   --  Third OK case, array types
+ 
+                   elsif Is_Array_Type (Etype (Node)) then
+                      return;
+ 
+                   --  Otherwise we have an error
+ 
+                   elsif Nkind (Orig) = N_Op_And then
+                      Error_Msg -- CODEFIX
+                        ("(style) `AND THEN` required?B?", Sloc (Orig), Orig);
+                   else
+                      Error_Msg -- CODEFIX
+                        ("(style) `OR ELSE` required?B?", Sloc (Orig), Orig);
+                   end if;
+                end;
+             end if;
+          end;
+       end if;
+    end Check_Boolean_Operator;
+ 
     ----------------------
     -- Check_Identifier --
     ----------------------
*************** package body Style is
*** 256,261 ****
--- 337,364 ----
        end if;
     end Check_Identifier;
  
+    ----------------------------------
+    -- Check_Xtra_Parens_Precedence --
+    ----------------------------------
+ 
+    procedure Check_Xtra_Parens_Precedence (N : Node_Id) is
+    begin
+       if Style_Check_Xtra_Parens_Precedence
+         and then
+           Paren_Count (N) >
+             (if Nkind (N) in N_Case_Expression
+                            | N_Expression_With_Actions
+                            | N_If_Expression
+                            | N_Quantified_Expression
+                            | N_Raise_Expression
+              then 1
+              else 0)
+       then
+          Error_Msg -- CODEFIX
+            ("(style) redundant parentheses?z?", First_Sloc (N), N);
+       end if;
+    end Check_Xtra_Parens_Precedence;
+ 
     ------------------------
     -- Missing_Overriding --
     ------------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/style.ads gcc-15.1.0/gcc/ada/style.ads
*** gcc-14.2.0/gcc/ada/style.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/style.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Style is
*** 90,97 ****
     --  designator is a reserved word (access, digits, delta or range) to allow
     --  differing rules for the two cases.
  
!    procedure Check_Boolean_Operator (Node : Node_Id)
!      renames Style_Inst.Check_Boolean_Operator;
     --  Called after resolving AND or OR node to check short circuit rules
  
     procedure Check_Box
--- 90,96 ----
     --  designator is a reserved word (access, digits, delta or range) to allow
     --  differing rules for the two cases.
  
!    procedure Check_Boolean_Operator (Node : Node_Id);
     --  Called after resolving AND or OR node to check short circuit rules
  
     procedure Check_Box
*************** package Style is
*** 197,204 ****
     --  Called after scanning an entire expression (N) that does not require an
     --  extra level of parentheses.
  
!    procedure Check_Xtra_Parens_Precedence (N : Node_Id)
!      renames Style_Inst.Check_Xtra_Parens_Precedence;
     --  Called after scanning a subexpression (N) that does not require an
     --  extra level of parentheses according to operator precedence rules.
  
--- 196,202 ----
     --  Called after scanning an entire expression (N) that does not require an
     --  extra level of parentheses.
  
!    procedure Check_Xtra_Parens_Precedence (N : Node_Id);
     --  Called after scanning a subexpression (N) that does not require an
     --  extra level of parentheses according to operator precedence rules.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/styleg.adb gcc-15.1.0/gcc/ada/styleg.adb
*** gcc-14.2.0/gcc/ada/styleg.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/styleg.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,37 ****
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Csets;          use Csets;
- with Einfo;          use Einfo;
- with Einfo.Utils;    use Einfo.Utils;
  with Err_Vars;       use Err_Vars;
  with Errout;
  with Opt;            use Opt;
--- 30,35 ----
*************** with Sinfo;          use Sinfo;
*** 40,45 ****
--- 38,44 ----
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Stylesw;        use Stylesw;
+ with Uintp;          use Uintp;
  
  package body Styleg is
  
*************** package body Styleg is
*** 194,280 ****
        end if;
     end Check_Binary_Operator;
  
-    ----------------------------
-    -- Check_Boolean_Operator --
-    ----------------------------
- 
-    procedure Check_Boolean_Operator (Node : Node_Id) is
- 
-       function OK_Boolean_Operand (N : Node_Id) return Boolean;
-       --  Returns True for simple variable, or "not X1" or "X1 and X2" or
-       --  "X1 or X2" where X1, X2 are recursively OK_Boolean_Operand's.
- 
-       ------------------------
-       -- OK_Boolean_Operand --
-       ------------------------
- 
-       function OK_Boolean_Operand (N : Node_Id) return Boolean is
-       begin
-          if Nkind (N) in N_Identifier | N_Expanded_Name then
-             return True;
- 
-          elsif Nkind (N) = N_Op_Not then
-             return OK_Boolean_Operand (Original_Node (Right_Opnd (N)));
- 
-          elsif Nkind (N) in N_Op_And | N_Op_Or then
-             return OK_Boolean_Operand (Original_Node (Left_Opnd (N)))
-                      and then
-                    OK_Boolean_Operand (Original_Node (Right_Opnd (N)));
- 
-          else
-             return False;
-          end if;
-       end OK_Boolean_Operand;
- 
-    --  Start of processing for Check_Boolean_Operator
- 
-    begin
-       if Style_Check_Boolean_And_Or
-         and then Comes_From_Source (Node)
-       then
-          declare
-             Orig : constant Node_Id := Original_Node (Node);
- 
-          begin
-             if Nkind (Orig) in N_Op_And | N_Op_Or then
-                declare
-                   L : constant Node_Id := Original_Node (Left_Opnd  (Orig));
-                   R : constant Node_Id := Original_Node (Right_Opnd (Orig));
- 
-                begin
-                   --  First OK case, simple boolean constants/identifiers
- 
-                   if OK_Boolean_Operand (L)
-                        and then
-                      OK_Boolean_Operand (R)
-                   then
-                      return;
- 
-                   --  Second OK case, modular types
- 
-                   elsif Is_Modular_Integer_Type (Etype (Node)) then
-                      return;
- 
-                   --  Third OK case, array types
- 
-                   elsif Is_Array_Type (Etype (Node)) then
-                      return;
- 
-                   --  Otherwise we have an error
- 
-                   elsif Nkind (Orig) = N_Op_And then
-                      Error_Msg -- CODEFIX
-                        ("(style) `AND THEN` required?B?", Sloc (Orig));
-                   else
-                      Error_Msg -- CODEFIX
-                        ("(style) `OR ELSE` required?B?", Sloc (Orig));
-                   end if;
-                end;
-             end if;
-          end;
-       end if;
-    end Check_Boolean_Operator;
- 
     ---------------
     -- Check_Box --
     ---------------
--- 193,198 ----
*************** package body Styleg is
*** 755,762 ****
     begin
        if Style_Check_Max_Line_Length then
           if Len > Style_Max_Line_Length then
              Error_Msg
!               ("(style) this line is too long?M?",
                 Current_Line_Start + Source_Ptr (Style_Max_Line_Length));
           end if;
        end if;
--- 673,681 ----
     begin
        if Style_Check_Max_Line_Length then
           if Len > Style_Max_Line_Length then
+             Error_Msg_Uint_1 := UI_From_Int (Len);
              Error_Msg
!               ("(style) this line is too long: ^?M?",
                 Current_Line_Start + Source_Ptr (Style_Max_Line_Length));
           end if;
        end if;
*************** package body Styleg is
*** 1137,1164 ****
        end if;
     end Check_Xtra_Parens;
  
-    ----------------------------------
-    -- Check_Xtra_Parens_Precedence --
-    ----------------------------------
- 
-    procedure Check_Xtra_Parens_Precedence (N : Node_Id) is
-    begin
-       if Style_Check_Xtra_Parens_Precedence
-         and then
-           Paren_Count (N) >
-             (if Nkind (N) in N_Case_Expression
-                            | N_Expression_With_Actions
-                            | N_If_Expression
-                            | N_Quantified_Expression
-                            | N_Raise_Expression
-              then 1
-              else 0)
-       then
-          Error_Msg -- CODEFIX
-            ("(style) redundant parentheses?z?", Errout.First_Sloc (N));
-       end if;
-    end Check_Xtra_Parens_Precedence;
- 
     ----------------------------
     -- Determine_Token_Casing --
     ----------------------------
--- 1056,1061 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/styleg.ads gcc-15.1.0/gcc/ada/styleg.ads
*** gcc-14.2.0/gcc/ada/styleg.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/styleg.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Styleg is
*** 63,72 ****
     --  the attribute designator is a reserved word (access, digits,
     --  delta or range) to allow differing rules for the two cases.
  
-    procedure Check_Boolean_Operator (Node : Node_Id);
-    --  Node is a node for an AND or OR operator. Check that the usage meets
-    --  the style rules.
- 
     procedure Check_Box;
     --  Called after scanning out a box to check spacing
  
--- 63,68 ----
*************** package Styleg is
*** 164,173 ****
     --  Called after scanning an entire expression (N) that does not require an
     --  extra level of parentheses.
  
-    procedure Check_Xtra_Parens_Precedence (N : Node_Id);
-    --  Called after scanning a subexpression (N) that does not require an
-    --  extra level of parentheses according to operator precedence rules.
- 
     function Mode_In_Check return Boolean;
     pragma Inline (Mode_In_Check);
     --  Determines whether style checking is active and the Mode_In_Check is
--- 160,165 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/stylesw.adb gcc-15.1.0/gcc/ada/stylesw.adb
*** gcc-14.2.0/gcc/ada/stylesw.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stylesw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Stylesw is
*** 537,543 ****
                 Style_Check_Layout                 := False;
  
              when 'L' =>
!                Style_Max_Nesting_Level := 0;
  
              when 'm' =>
                 Style_Check_Max_Line_Length        := False;
--- 537,544 ----
                 Style_Check_Layout                 := False;
  
              when 'L' =>
!                Style_Max_Nesting_Level            := 0;
!                Style_Check_Max_Nesting_Level      := False;
  
              when 'm' =>
                 Style_Check_Max_Line_Length        := False;
diff -Nrcpad gcc-14.2.0/gcc/ada/stylesw.ads gcc-15.1.0/gcc/ada/stylesw.ads
*** gcc-14.2.0/gcc/ada/stylesw.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/stylesw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-b.adb gcc-15.1.0/gcc/ada/switch-b.adb
*** gcc-14.2.0/gcc/ada/switch-b.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-b.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Switch.B is
*** 366,372 ****
  
           when 'G' =>
              Ptr := Ptr + 1;
!             Generate_C_Code := True;
  
           --  Processing for h switch
  
--- 366,372 ----
  
           when 'G' =>
              Ptr := Ptr + 1;
!             CCG_Mode := True;
  
           --  Processing for h switch
  
*************** package body Switch.B is
*** 672,684 ****
                    Opt.RTS_Switch := True;
  
                    declare
                       Src_Path_Name : constant String_Ptr :=
                                         Get_RTS_Search_Dir
!                                          (Switch_Chars (Ptr + 1 .. Max),
                                            Include);
                       Lib_Path_Name : constant String_Ptr :=
                                         Get_RTS_Search_Dir
!                                          (Switch_Chars (Ptr + 1 .. Max),
                                            Objects);
  
                    begin
--- 672,686 ----
                    Opt.RTS_Switch := True;
  
                    declare
+                      RTS_Arg_Path : constant String :=
+                                        Switch_Chars (Ptr + 1 .. Max);
                       Src_Path_Name : constant String_Ptr :=
                                         Get_RTS_Search_Dir
!                                          (RTS_Arg_Path,
                                            Include);
                       Lib_Path_Name : constant String_Ptr :=
                                         Get_RTS_Search_Dir
!                                          (RTS_Arg_Path,
                                            Objects);
  
                    begin
*************** package body Switch.B is
*** 698,711 ****
                         and then Lib_Path_Name = null
                       then
                          Osint.Fail
!                           ("RTS path not valid: missing adainclude and "
                             & "adalib directories");
                       elsif Src_Path_Name = null then
                          Osint.Fail
!                           ("RTS path not valid: missing adainclude directory");
!                      elsif Lib_Path_Name = null then
                          Osint.Fail
!                           ("RTS path not valid: missing adalib directory");
                       end if;
                    end;
                 end if;
--- 700,716 ----
                         and then Lib_Path_Name = null
                       then
                          Osint.Fail
!                           ("RTS path """ & RTS_Arg_Path
!                            & """ not valid: missing adainclude and "
                             & "adalib directories");
                       elsif Src_Path_Name = null then
                          Osint.Fail
!                           ("RTS path """ & RTS_Arg_Path
!                            & """ not valid: missing adainclude directory");
!                      else pragma Assert (Lib_Path_Name = null);
                          Osint.Fail
!                           ("RTS path """ & RTS_Arg_Path
!                            & """ not valid: missing adalib directory");
                       end if;
                    end;
                 end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-b.ads gcc-15.1.0/gcc/ada/switch-b.ads
*** gcc-14.2.0/gcc/ada/switch-b.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-b.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-c.adb gcc-15.1.0/gcc/ada/switch-c.adb
*** gcc-14.2.0/gcc/ada/switch-c.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-c.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Switch.C is
*** 274,280 ****
                       Osint.Fail ("RTS path not valid: missing "
                                   & "adainclude directory");
  
!                   elsif RTS_Lib_Path_Name = null then
                       Osint.Fail ("RTS path not valid: missing "
                                   & "adalib directory");
                    end if;
--- 274,280 ----
                       Osint.Fail ("RTS path not valid: missing "
                                   & "adainclude directory");
  
!                   else pragma Assert (RTS_Lib_Path_Name = null);
                       Osint.Fail ("RTS path not valid: missing "
                                   & "adalib directory");
                    end if;
*************** package body Switch.C is
*** 616,622 ****
                       Ptr := Ptr + 1;
                       Check_Float_Overflow := not Machine_Overflows_On_Target;
  
!                   --  -gnateg (generate C code)
  
                    when 'g' =>
                       --  Special check, -gnateg must occur after -gnatc
--- 616,622 ----
                       Ptr := Ptr + 1;
                       Check_Float_Overflow := not Machine_Overflows_On_Target;
  
!                   --  -gnateg (generate C header)
  
                    when 'g' =>
                       --  Special check, -gnateg must occur after -gnatc
*************** package body Switch.C is
*** 626,632 ****
                            ("gnateg requires previous occurrence of -gnatc");
                       end if;
  
!                      Generate_C_Code := True;
                       Ptr := Ptr + 1;
  
                    --  -gnateG (save preprocessor output)
--- 626,632 ----
                            ("gnateg requires previous occurrence of -gnatc");
                       end if;
  
!                      Generate_C_Header := True;
                       Ptr := Ptr + 1;
  
                    --  -gnateG (save preprocessor output)
*************** package body Switch.C is
*** 927,933 ****
                 Ptr := Ptr + 1;
                 Legacy_Elaboration_Checks := True;
  
!             --  -gnati (character set)
  
              when 'i' =>
                 if Ptr = Max then
--- 927,934 ----
                 Ptr := Ptr + 1;
                 Legacy_Elaboration_Checks := True;
  
!             --  -gnati[1-5|8|9|p|f|n|w] (character set)
!             --  -gnatis (suppress info messages)
  
              when 'i' =>
                 if Ptr = Max then
*************** package body Switch.C is
*** 940,945 ****
--- 941,949 ----
                 if C in '1' .. '5' | '8' | 'p' | '9' | 'f' | 'n' | 'w' then
                    Identifier_Character_Set := C;
                    Ptr := Ptr + 1;
+                elsif C = 's' then
+                   Info_Suppressed := True;
+                   Ptr := Ptr + 1;
  
                 else
                    Bad_Switch ("-gnati" & Switch_Chars (Ptr .. Max));
*************** package body Switch.C is
*** 1150,1158 ****
                    --  check.
  
                    for J in Suppress_Options.Suppress'Range loop
!                      if J /= Elaboration_Check
!                           and then
!                         J /= Atomic_Synchronization
                       then
                          Suppress_Options.Suppress (J) := True;
                       end if;
--- 1154,1160 ----
                    --  check.
  
                    for J in Suppress_Options.Suppress'Range loop
!                      if J not in Elaboration_Check | Atomic_Synchronization
                       then
                          Suppress_Options.Suppress (J) := True;
                       end if;
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-c.ads gcc-15.1.0/gcc/ada/switch-c.ads
*** gcc-14.2.0/gcc/ada/switch-c.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-c.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-m.adb gcc-15.1.0/gcc/ada/switch-m.adb
*** gcc-14.2.0/gcc/ada/switch-m.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-m.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Switch.M is
*** 354,362 ****
                                   Ptr := Ptr + 1;
                                end if;
  
!                                  --  To normalize, always put a '=' after
!                                  --  -gnatep. Because that could lengthen the
!                                  --  switch string, declare a local variable.
  
                                declare
                                   To_Store : String (1 .. Max - Ptr + 9);
--- 354,362 ----
                                   Ptr := Ptr + 1;
                                end if;
  
!                               --  To normalize, always put a '=' after
!                               --  -gnatep. Because that could lengthen the
!                               --  switch string, declare a local variable.
  
                                declare
                                   To_Store : String (1 .. Max - Ptr + 9);
*************** package body Switch.M is
*** 597,603 ****
                          Ptr := Ptr + 1;
                       end if;
  
!                      --  -gnat12
  
                    when '1' =>
                       Last_Stored := First_Stored;
--- 597,603 ----
                          Ptr := Ptr + 1;
                       end if;
  
!                   --  -gnat12
  
                    when '1' =>
                       Last_Stored := First_Stored;
*************** package body Switch.M is
*** 619,625 ****
                          Ptr := Ptr + 1;
                       end if;
  
!                      --  -gnat2005 -gnat2012
  
                    when '2' =>
                       if Ptr + 3 /= Max then
--- 619,625 ----
                          Ptr := Ptr + 1;
                       end if;
  
!                   --  -gnat2005 -gnat2012
  
                    when '2' =>
                       if Ptr + 3 /= Max then
*************** package body Switch.M is
*** 1017,1034 ****
                    Verbose_Mode := True;
                    Verbosity_Level := Opt.High;
  
!                   --  Processing for x switch
  
                 when 'x' =>
                    External_Unit_Compilation_Allowed := True;
                    Use_Include_Path_File := True;
  
!                   --  Processing for z switch
  
                 when 'z' =>
                    No_Main_Subprogram := True;
  
!                   --  Any other small letter is an illegal switch
  
                 when others =>
                    if C in 'a' .. 'z' then
--- 1017,1034 ----
                    Verbose_Mode := True;
                    Verbosity_Level := Opt.High;
  
!                --  Processing for x switch
  
                 when 'x' =>
                    External_Unit_Compilation_Allowed := True;
                    Use_Include_Path_File := True;
  
!                --  Processing for z switch
  
                 when 'z' =>
                    No_Main_Subprogram := True;
  
!                --  Any other small letter is an illegal switch
  
                 when others =>
                    if C in 'a' .. 'z' then
diff -Nrcpad gcc-14.2.0/gcc/ada/switch-m.ads gcc-15.1.0/gcc/ada/switch-m.ads
*** gcc-14.2.0/gcc/ada/switch-m.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch-m.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/switch.adb gcc-15.1.0/gcc/ada/switch.adb
*** gcc-14.2.0/gcc/ada/switch.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/switch.ads gcc-15.1.0/gcc/ada/switch.ads
*** gcc-14.2.0/gcc/ada/switch.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/switch.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/sysdep.c gcc-15.1.0/gcc/ada/sysdep.c
*** gcc-14.2.0/gcc/ada/sysdep.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/sysdep.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2025, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 35,52 ****
  #ifdef __vxworks
  #include "vxWorks.h"
  #include "ioLib.h"
! #if ! defined (VTHREADS)
  #include "dosFsLib.h"
  #endif
! #if ! defined (__RTP__) && (! defined (VTHREADS) || defined (__VXWORKSMILS__))
  # include "nfsLib.h"
  #endif
  #include "selectLib.h"
  #include "version.h"
  #if defined (__RTP__)
  #  include "vwModNum.h"
  #endif /* __RTP__ */
! #endif
  
  #ifdef __ANDROID__
  #undef __linux__
--- 35,69 ----
  #ifdef __vxworks
  #include "vxWorks.h"
  #include "ioLib.h"
! /* VxWorks 5, 6 and 7 SR0540 expose error codes that need to be handled
!    as ENOENT. On later versions:
!    - either they are defined as ENOENT (vx7r2);
!    - or the corresponding system includes are not provided (Helix Cert).  */
! 
! #if __has_include ("dosFsLib.h")
! /* On helix-cert, this include is only provided for RTPs.  */
  #include "dosFsLib.h"
  #endif
! 
! #ifndef S_dosFsLib_FILE_NOT_FOUND
! #define S_dosFsLib_FILE_NOT_FOUND ENOENT
! #endif
! 
! #if __has_include ("nfsLib.h")
! /* This include is not provided for RTPs or on helix-cert.  */
  # include "nfsLib.h"
  #endif
+ 
+ #ifndef S_nfsLib_NFSERR_NOENT
+ #define S_nfsLib_NFSERR_NOENT ENOENT
+ #endif
+ 
  #include "selectLib.h"
  #include "version.h"
  #if defined (__RTP__)
  #  include "vwModNum.h"
  #endif /* __RTP__ */
! #endif /* __vxworks */
  
  #ifdef __ANDROID__
  #undef __linux__
*************** __gnat_set_text_mode (int handle)
*** 160,167 ****
  void
  __gnat_set_mode (int handle, int mode)
  {
!   /*  the values here must be synchronized with
!       System.File_Control_Block.Content_Encodding:
  
        None         = 0
        Default_Text = 1
--- 177,184 ----
  void
  __gnat_set_mode (int handle, int mode)
  {
!   /*  The values here must be synchronized with
!       Interfaces.C_Streams.Content_Encoding:
  
        None         = 0
        Default_Text = 1
*************** __gnat_set_mode (int handle, int mode)
*** 183,190 ****
  void
  __gnat_set_mode (int handle, int mode)
  {
!   /*  the values here must be synchronized with
!       System.File_Control_Block.Content_Encodding:
  
        None         = 0
        Default_Text = 1
--- 200,207 ----
  void
  __gnat_set_mode (int handle, int mode)
  {
!   /*  The values here must be synchronized with
!       Interfaces.C_Streams.Content_Encoding:
  
        None         = 0
        Default_Text = 1
*************** __gnat_is_file_not_found_error (int errn
*** 912,925 ****
      /* In the case of VxWorks, we also have to take into account various
       * filesystem-specific variants of this error.
       */
- #if ! defined (VTHREADS) && (_WRS_VXWORKS_MAJOR < 7)
      else if (errno_val == S_dosFsLib_FILE_NOT_FOUND)
        return 1;
- #endif
- #if ! defined (__RTP__) && (! defined (VTHREADS) || defined (__VXWORKSMILS__))
      else if (errno_val ==  S_nfsLib_NFSERR_NOENT)
        return 1;
- #endif
  #if defined (__RTP__)
      /* An RTP can return an NFS file not found, and the NFS bits must
         first be masked on to check the errno.  */
--- 929,938 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/table.adb gcc-15.1.0/gcc/ada/table.adb
*** gcc-14.2.0/gcc/ada/table.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/table.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Table is
*** 296,303 ****
        --------------
  
        procedure Set_Item
!          (Index : Table_Index_Type;
!           Item  : Table_Component_Type)
        is
           --  If Item is a value within the current allocation, and we are going
           --  to reallocate, then we must preserve an intermediate copy here
--- 296,303 ----
        --------------
  
        procedure Set_Item
!         (Index : Table_Index_Type;
!          Item  : Table_Component_Type)
        is
           --  If Item is a value within the current allocation, and we are going
           --  to reallocate, then we must preserve an intermediate copy here
diff -Nrcpad gcc-14.2.0/gcc/ada/table.ads gcc-15.1.0/gcc/ada/table.ads
*** gcc-14.2.0/gcc/ada/table.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/table.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Table is
*** 217,223 ****
  
     private
  
!       Last_Val : Int;
        --  Current value of Last. Note that we declare this in the private part
        --  because we don't want the client to modify Last except through one of
        --  the official interfaces (since a modification to Last may require a
--- 217,223 ----
  
     private
  
!       Last_Val : Int := Int (Table_Low_Bound) - 1;
        --  Current value of Last. Note that we declare this in the private part
        --  because we don't want the client to modify Last except through one of
        --  the official interfaces (since a modification to Last may require a
diff -Nrcpad gcc-14.2.0/gcc/ada/targext.c gcc-15.1.0/gcc/ada/targext.c
*** gcc-14.2.0/gcc/ada/targext.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/targext.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2005-2024, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2005-2025, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/targparm.adb gcc-15.1.0/gcc/ada/targparm.adb
*** gcc-14.2.0/gcc/ada/targparm.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/targparm.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/targparm.ads gcc-15.1.0/gcc/ada/targparm.ads
*** gcc-14.2.0/gcc/ada/targparm.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/targparm.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Targparm is
*** 325,338 ****
     Atomic_Sync_Default_On_Target : Boolean := True;
     --  Access to atomic variables requires memory barrier synchronization in
     --  the general case to ensure proper behavior when such accesses are used
!    --  on a multi-processor to synchronize tasks (e.g. by using spin locks).
     --  The setting of this flag determines the default behavior. Normally this
     --  is True, which will mean that appropriate synchronization instructions
     --  are generated by default. If it is False, then the default will be that
     --  these synchronization instructions are not generated. This may be a more
     --  appropriate default in some cases, e.g. on embedded targets which do not
!    --  allow the possibility of multi-processors. The default can be overridden
!    --  using pragmas Enable/Disable_Atomic_Synchronization and also by use of
     --  the corresponding debug flags -gnatd.e and -gnatd.d.
  
     Support_Aggregates_On_Target : Boolean := True;
--- 325,338 ----
     Atomic_Sync_Default_On_Target : Boolean := True;
     --  Access to atomic variables requires memory barrier synchronization in
     --  the general case to ensure proper behavior when such accesses are used
!    --  on a multiprocessor to synchronize tasks (e.g. by using spin locks).
     --  The setting of this flag determines the default behavior. Normally this
     --  is True, which will mean that appropriate synchronization instructions
     --  are generated by default. If it is False, then the default will be that
     --  these synchronization instructions are not generated. This may be a more
     --  appropriate default in some cases, e.g. on embedded targets which do not
!    --  allow the possibility of multiprocessors. The default can be overridden
!    --  using pragmas Disable/Enable_Atomic_Synchronization and also by use of
     --  the corresponding debug flags -gnatd.e and -gnatd.d.
  
     Support_Aggregates_On_Target : Boolean := True;
*************** package Targparm is
*** 359,369 ****
     --  the flag is set False, and composite assignments are not allowed.
  
     Support_Composite_Compare_On_Target : Boolean := True;
!    --  If this flag is True, then the back end supports bit-wise comparison
!    --  of composite objects for equality, either generating inline code or
!    --  calling appropriate (and available) run-time routines. If this flag
!    --  is False, then the back end does not provide this support, and the
!    --  front end uses component by component comparison for composites.
  
     Support_Long_Shifts_On_Target : Boolean := True;
     --  If True, the back end supports 64-bit shift operations. If False, then
--- 359,370 ----
     --  the flag is set False, and composite assignments are not allowed.
  
     Support_Composite_Compare_On_Target : Boolean := True;
!    --  If this flag is True, then the back end supports byte-wise comparison
!    --  of arrays for equality operations and lexicographic comparison of 1-
!    --  dimensional arrays of bytes for ordering operations, either by means
!    --  of generating inline code or calling appropriate routines like memcmp.
!    --  If this flag is False, then the back end does not provide this support,
!    --  and the front end uses component by component comparison for arrays.
  
     Support_Long_Shifts_On_Target : Boolean := True;
     --  If True, the back end supports 64-bit shift operations. If False, then
diff -Nrcpad gcc-14.2.0/gcc/ada/tbuild.adb gcc-15.1.0/gcc/ada/tbuild.adb
*** gcc-14.2.0/gcc/ada/tbuild.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/tbuild.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Tbuild is
*** 100,116 ****
     end Add_Unique_Serial_Number;
  
     ----------------
-    -- Checks_Off --
-    ----------------
- 
-    function Checks_Off (N : Node_Id) return Node_Id is
-    begin
-       return
-         Make_Unchecked_Expression (Sloc (N),
-           Expression => N);
-    end Checks_Off;
- 
-    ----------------
     -- Convert_To --
     ----------------
  
--- 100,105 ----
*************** package body Tbuild is
*** 503,509 ****
     -- Make_SC --
     -------------
  
!    function  Make_SC (Pre, Sel : Node_Id) return Node_Id is
     begin
        return
          Make_Selected_Component (System_Location,
--- 492,498 ----
     -- Make_SC --
     -------------
  
!    function Make_SC (Pre, Sel : Node_Id) return Node_Id is
     begin
        return
          Make_Selected_Component (System_Location,
*************** package body Tbuild is
*** 918,928 ****
        Result : Node_Id;
  
     begin
!       --  If the expression is already of the correct type, then nothing
!       --  to do, except for relocating the node
  
        if Present (Etype (Expr))
!         and then (Base_Type (Etype (Expr)) = Typ or else Etype (Expr) = Typ)
        then
           return Relocate_Node (Expr);
  
--- 907,923 ----
        Result : Node_Id;
  
     begin
!       --  If the expression is already of the correct type, then nothing to do,
!       --  except for relocating the node. If Typ is an array type with fixed
!       --  lower bound, the expression might be of a subtype that does not
!       --  have this lower bound (on a slice), hence the conversion needs to
!       --  be preserved for sliding.
  
        if Present (Etype (Expr))
!         and then
!           ((Base_Type (Etype (Expr)) = Typ
!              and then not Is_Fixed_Lower_Bound_Array_Subtype (Typ))
!            or else Etype (Expr) = Typ)
        then
           return Relocate_Node (Expr);
  
diff -Nrcpad gcc-14.2.0/gcc/ada/tbuild.ads gcc-15.1.0/gcc/ada/tbuild.ads
*** gcc-14.2.0/gcc/ada/tbuild.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/tbuild.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Uintp;          use Uintp;
*** 34,45 ****
  
  package Tbuild is
  
-    function Checks_Off (N : Node_Id) return Node_Id;
-    pragma Inline (Checks_Off);
-    --  Returns an N_Unchecked_Expression node whose expression is the given
-    --  argument. The results is a subexpression identical to the argument,
-    --  except that it will be analyzed and resolved with checks off.
- 
     function Convert_To (Typ : Entity_Id; Expr : Node_Id) return Node_Id;
     --  Returns an expression that is a type conversion of expression Expr to
     --  type Typ. If the type of Expr is Typ, then no conversion is required.
--- 34,39 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/tempdir.adb gcc-15.1.0/gcc/ada/tempdir.adb
*** gcc-14.2.0/gcc/ada/tempdir.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/tempdir.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/tempdir.ads gcc-15.1.0/gcc/ada/tempdir.ads
*** gcc-14.2.0/gcc/ada/tempdir.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/tempdir.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/terminals.c gcc-15.1.0/gcc/ada/terminals.c
*** gcc-14.2.0/gcc/ada/terminals.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/terminals.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2008-2024, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2008-2025, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/tracebak.c gcc-15.1.0/gcc/ada/tracebak.c
*** gcc-14.2.0/gcc/ada/tracebak.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/tracebak.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2000-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2000-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** is_return_from(void *symbol_addr, void *
*** 564,572 ****
  #error Unhandled QNX architecture.
  #endif
  
! /*------------------- aarch64-linux or aarch64-rtems -----------------*/
  
! #elif (defined (__aarch64__) && (defined (__linux__) || defined (__rtems__)))
  
  #define USE_GCC_UNWINDER
  #define PC_ADJUST -4
--- 564,573 ----
  #error Unhandled QNX architecture.
  #endif
  
! /*------------------- aarch64 FreeBSD, Linux, RTEMS -----------------*/
  
! #elif (defined (__aarch64__) && (defined (__FreeBSD__) || \
!        defined (__linux__) || defined (__rtems__)))
  
  #define USE_GCC_UNWINDER
  #define PC_ADJUST -4
diff -Nrcpad gcc-14.2.0/gcc/ada/treepr.adb gcc-15.1.0/gcc/ada/treepr.adb
*** gcc-14.2.0/gcc/ada/treepr.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/treepr.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Treepr is
*** 301,308 ****
              return "SCIL_Target_Prim";
           when F_Shift_Count_OK =>
              return "Shift_Count_OK";
-          when F_Split_PPC =>
-             return "Split_PPC";
           when F_TSS_Elist =>
              return "TSS_Elist";
  
--- 301,306 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/treepr.ads gcc-15.1.0/gcc/ada/treepr.ads
*** gcc-14.2.0/gcc/ada/treepr.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/treepr.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/ttypes.ads gcc-15.1.0/gcc/ada/ttypes.ads
*** gcc-14.2.0/gcc/ada/ttypes.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/ttypes.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/types.adb gcc-15.1.0/gcc/ada/types.adb
*** gcc-14.2.0/gcc/ada/types.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/types.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/types.ads gcc-15.1.0/gcc/ada/types.ads
*** gcc-14.2.0/gcc/ada/types.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/types.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Types is
*** 145,154 ****
     --  standard 32-bit integer as an index value, since we count on all index
     --  values being the same size.
  
!    type Text_Ptr is new Int;
!    --  Type used for subscripts in text buffer
! 
!    type Text_Buffer is array (Text_Ptr range <>) of Character;
     --  Text buffer used to hold source file or library information file
  
     type Text_Buffer_Ptr is access all Text_Buffer;
--- 145,153 ----
     --  standard 32-bit integer as an index value, since we count on all index
     --  values being the same size.
  
!    type Text_Ptr is new Int range -4 .. Int'Last;
!    --  -4 .. -1 are special; see constants below
!    type Text_Buffer is array (Text_Ptr range <>) of aliased Character;
     --  Text buffer used to hold source file or library information file
  
     type Text_Buffer_Ptr is access all Text_Buffer;
*************** package Types is
*** 265,271 ****
     --  the location is in System, but we don't know exactly what line.
  
     First_Source_Ptr : constant Source_Ptr := 0;
!    --  Starting source pointer index value for first source program
  
     -------------------------------------
     -- Range Definitions for Tree Data --
--- 264,270 ----
     --  the location is in System, but we don't know exactly what line.
  
     First_Source_Ptr : constant Source_Ptr := 0;
!    --  Starting source pointer index value for first source file
  
     -------------------------------------
     -- Range Definitions for Tree Data --
*************** package Types is
*** 706,716 ****
     Container_Checks           : constant := 26;
     Tampering_Check            : constant := 27;
     Tasking_Check              : constant := 28;
     --  Values used to represent individual predefined checks (including the
!    --  setting of Atomic_Synchronization, which is implemented internally using
!    --  a "check" whose name is Atomic_Synchronization).
  
!    All_Checks : constant := 29;
     --  Value used to represent All_Checks value
  
     subtype Predefined_Check_Id is Check_Id range 1 .. All_Checks;
--- 705,715 ----
     Container_Checks           : constant := 26;
     Tampering_Check            : constant := 27;
     Tasking_Check              : constant := 28;
+    Raise_Check                : constant := 29;
     --  Values used to represent individual predefined checks (including the
!    --  pseudo-check _Atomic_Synchronization).
  
!    All_Checks : constant := 30;
     --  Value used to represent All_Checks value
  
     subtype Predefined_Check_Id is Check_Id range 1 .. All_Checks;
*************** package Types is
*** 947,953 ****
        SE_Infinite_Recursion,             -- 34
        SE_Object_Too_Large,               -- 35
        PE_Stream_Operation_Not_Allowed,   -- 36
!       PE_Build_In_Place_Mismatch);       -- 37
     pragma Convention (C, RT_Exception_Code);
  
     Last_Reason_Code : constant :=
--- 946,953 ----
        SE_Infinite_Recursion,             -- 34
        SE_Object_Too_Large,               -- 35
        PE_Stream_Operation_Not_Allowed,   -- 36
!       PE_Build_In_Place_Mismatch,        -- 37
!       PE_Raise_Check_Failed);            -- 38
     pragma Convention (C, RT_Exception_Code);
  
     Last_Reason_Code : constant :=
*************** package Types is
*** 957,963 ****
     type Reason_Kind is (CE_Reason, PE_Reason, SE_Reason);
     --  Categorization of reason codes by exception raised
  
!    Rkind : constant array (RT_Exception_Code range <>) of Reason_Kind :=
               (CE_Access_Check_Failed            => CE_Reason,
                CE_Access_Parameter_Is_Null       => CE_Reason,
                CE_Discriminant_Check_Failed      => CE_Reason,
--- 957,963 ----
     type Reason_Kind is (CE_Reason, PE_Reason, SE_Reason);
     --  Categorization of reason codes by exception raised
  
!    Rkind : constant array (RT_Exception_Code) of Reason_Kind :=
               (CE_Access_Check_Failed            => CE_Reason,
                CE_Access_Parameter_Is_Null       => CE_Reason,
                CE_Discriminant_Check_Failed      => CE_Reason,
*************** package Types is
*** 979,984 ****
--- 979,985 ----
                PE_Aliased_Parameters             => PE_Reason,
                PE_All_Guards_Closed              => PE_Reason,
                PE_Bad_Predicated_Generic_Type    => PE_Reason,
+               PE_Build_In_Place_Mismatch        => PE_Reason,
                PE_Current_Task_In_Entry_Body     => PE_Reason,
                PE_Duplicated_Entry_Address       => PE_Reason,
                PE_Explicit_Raise                 => PE_Reason,
*************** package Types is
*** 986,998 ****
                PE_Implicit_Return                => PE_Reason,
                PE_Misaligned_Address_Value       => PE_Reason,
                PE_Missing_Return                 => PE_Reason,
                PE_Overlaid_Controlled_Object     => PE_Reason,
                PE_Potentially_Blocking_Operation => PE_Reason,
                PE_Stubbed_Subprogram_Called      => PE_Reason,
                PE_Unchecked_Union_Restriction    => PE_Reason,
-               PE_Non_Transportable_Actual       => PE_Reason,
-               PE_Stream_Operation_Not_Allowed   => PE_Reason,
-               PE_Build_In_Place_Mismatch        => PE_Reason,
  
                SE_Empty_Storage_Pool             => SE_Reason,
                SE_Explicit_Raise                 => SE_Reason,
--- 987,999 ----
                PE_Implicit_Return                => PE_Reason,
                PE_Misaligned_Address_Value       => PE_Reason,
                PE_Missing_Return                 => PE_Reason,
+               PE_Non_Transportable_Actual       => PE_Reason,
                PE_Overlaid_Controlled_Object     => PE_Reason,
                PE_Potentially_Blocking_Operation => PE_Reason,
+               PE_Raise_Check_Failed             => PE_Reason,
+               PE_Stream_Operation_Not_Allowed   => PE_Reason,
                PE_Stubbed_Subprogram_Called      => PE_Reason,
                PE_Unchecked_Union_Restriction    => PE_Reason,
  
                SE_Empty_Storage_Pool             => SE_Reason,
                SE_Explicit_Raise                 => SE_Reason,
diff -Nrcpad gcc-14.2.0/gcc/ada/types.h gcc-15.1.0/gcc/ada/types.h
*** gcc-14.2.0/gcc/ada/types.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/types.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2025, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** typedef unsigned int any_slot;
*** 383,393 ****
  #define Slot_Size (sizeof (any_slot) * 8)
  
  /* Slots are 32 bits (for now, but we might want to make that 64).
!    The first bootstrap stage uses -std=gnu++98, so we cannot use
!    static_assert in that case.  */
! #if __cplusplus >= 201402L
! static_assert (Slot_Size == 32);
! #endif
  
  /* Definitions of Reason codes for Raise_xxx_Error nodes.  */
  enum RT_Exception_Code
--- 383,391 ----
  #define Slot_Size (sizeof (any_slot) * 8)
  
  /* Slots are 32 bits (for now, but we might want to make that 64).
!    The first bootstrap stage uses C++14, so we can only use the 2 argument
!    version of static_assert. */
! static_assert (Slot_Size == 32, "");
  
  /* Definitions of Reason codes for Raise_xxx_Error nodes.  */
  enum RT_Exception_Code
*************** enum RT_Exception_Code
*** 432,438 ****
    SE_Infinite_Recursion             = 34,
    SE_Object_Too_Large               = 35,
    PE_Stream_Operation_Not_Allowed   = 36,
!   PE_Build_In_Place_Mismatch        = 37
  };
  
! #define LAST_REASON_CODE 37
--- 430,437 ----
    SE_Infinite_Recursion             = 34,
    SE_Object_Too_Large               = 35,
    PE_Stream_Operation_Not_Allowed   = 36,
!   PE_Build_In_Place_Mismatch        = 37,
!   PE_Raise_Check_Failed             = 38
  };
  
! #define LAST_REASON_CODE 38
diff -Nrcpad gcc-14.2.0/gcc/ada/uintp.adb gcc-15.1.0/gcc/ada/uintp.adb
*** gcc-14.2.0/gcc/ada/uintp.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/uintp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Uintp is
*** 174,180 ****
     --  K is as small as possible S.T. Right_Hat < Base * Base. It is required
     --  that Left >= Right for the algorithm to work.
  
!    function N_Digits (Input : Valid_Uint) return Int;
     pragma Inline (N_Digits);
     --  Returns number of "digits" in a Uint
  
--- 174,180 ----
     --  K is as small as possible S.T. Right_Hat < Base * Base. It is required
     --  that Left >= Right for the algorithm to work.
  
!    function N_Digits (Input : Valid_Uint) return Pos;
     pragma Inline (N_Digits);
     --  Returns number of "digits" in a Uint
  
*************** package body Uintp is
*** 565,571 ****
           begin
              --  It is not so clear what to return when Arg is negative???
  
!             Left_Hat := abs (L1) * Base + L2;
           end;
        end if;
  
--- 565,571 ----
           begin
              --  It is not so clear what to return when Arg is negative???
  
!             Left_Hat := abs L1 * Base + L2;
           end;
        end if;
  
*************** package body Uintp is
*** 584,590 ****
              Length_R := 2;
  
           else
!             R1 := abs (Udigits.Table (Uints.Table (Right).Loc));
              R2 := Udigits.Table (Uints.Table (Right).Loc + 1);
              Length_R := Uints.Table (Right).Length;
           end if;
--- 584,590 ----
              Length_R := 2;
  
           else
!             R1 := abs Udigits.Table (Uints.Table (Right).Loc);
              R2 := Udigits.Table (Uints.Table (Right).Loc + 1);
              Length_R := Uints.Table (Right).Length;
           end if;
*************** package body Uintp is
*** 603,609 ****
     -- N_Digits --
     ---------------
  
!    function N_Digits (Input : Valid_Uint) return Int is
     begin
        if Direct (Input) then
           if Direct_Val (Input) >= Base then
--- 603,609 ----
     -- N_Digits --
     ---------------
  
!    function N_Digits (Input : Valid_Uint) return Pos is
     begin
        if Direct (Input) then
           if Direct_Val (Input) >= Base then
*************** package body Uintp is
*** 635,641 ****
        --  For any other number in Int_Range, get absolute value of number
  
        elsif UI_Is_In_Int_Range (Input) then
!          Num := abs (UI_To_Int (Input));
           Bits := 0;
  
        --  If not in Int_Range then initialize bit count for all low order
--- 635,641 ----
        --  For any other number in Int_Range, get absolute value of number
  
        elsif UI_Is_In_Int_Range (Input) then
!          Num := abs UI_To_Int (Input);
           Bits := 0;
  
        --  If not in Int_Range then initialize bit count for all low order
*************** package body Uintp is
*** 643,649 ****
  
        else
           Bits := Base_Bits * (Uints.Table (Input).Length - 1);
!          Num  := abs (Udigits.Table (Uints.Table (Input).Loc));
        end if;
  
        --  Increase bit count for remaining value in Num
--- 643,649 ----
  
        else
           Bits := Base_Bits * (Uints.Table (Input).Length - 1);
!          Num  := abs Udigits.Table (Uints.Table (Input).Loc);
        end if;
  
        --  Increase bit count for remaining value in Num
*************** package body Uintp is
*** 758,763 ****
--- 758,776 ----
        end if;
     end Release_And_Save;
  
+    --------------------
+    --  Type_Size_For --
+    --------------------
+ 
+    function Type_Size_For (Input : Valid_Uint) return Nat is
+       Neg  : constant Boolean := Input < Uint_0;
+ 
+    begin
+       --  Num_Bits is correct only for nonnegative values
+ 
+       return Num_Bits (Input) + Boolean'Pos (Neg);
+    end Type_Size_For;
+ 
     -------------
     -- UI_Abs --
     -------------
*************** package body Uintp is
*** 2028,2035 ****
           Init_Operand (Left, L_Vec);
           Init_Operand (Right, R_Vec);
           Neg := L_Vec (1) < Int_0 xor R_Vec (1) < Int_0;
!          L_Vec (1) := abs (L_Vec (1));
!          R_Vec (1) := abs (R_Vec (1));
  
           Algorithm_M : declare
              Product : UI_Vector (1 .. L_Length + R_Length);
--- 2041,2048 ----
           Init_Operand (Left, L_Vec);
           Init_Operand (Right, R_Vec);
           Neg := L_Vec (1) < Int_0 xor R_Vec (1) < Int_0;
!          L_Vec (1) := abs L_Vec (1);
!          R_Vec (1) := abs R_Vec (1);
  
           Algorithm_M : declare
              Product : UI_Vector (1 .. L_Length + R_Length);
diff -Nrcpad gcc-14.2.0/gcc/ada/uintp.ads gcc-15.1.0/gcc/ada/uintp.ads
*** gcc-14.2.0/gcc/ada/uintp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/uintp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Uintp is
*** 264,269 ****
--- 264,272 ----
     --  function is used for capacity checks, and it can be one bit off
     --  without affecting its usage.
  
+    function Type_Size_For (Input : Valid_Uint) return Nat;
+    --  Returns the size of an integer type that can accommodate Input
+ 
     ---------------------
     -- Output Routines --
     ---------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/uintp.h gcc-15.1.0/gcc/ada/uintp.h
*** gcc-14.2.0/gcc/ada/uintp.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/uintp.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/uname.adb gcc-15.1.0/gcc/ada/uname.adb
*** gcc-14.2.0/gcc/ada/uname.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/uname.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Uname is
*** 42,47 ****
--- 42,56 ----
     --  True if Prefix is at the beginning of X. For example,
     --  Has_Prefix("a-filename.ads", Prefix => "a-") is True.
  
+    function Encoded_Library_Unit_Name (N : Unit_Name_Type) return String;
+    --  Returns the name of the library unit N as a string without a %s or %b
+    --  suffix.
+ 
+    function Is_Predefined_Unit_Name
+      (Name : String; Renamings_Included : Boolean := True) return Boolean;
+    --  Same as Fname.Is_Predefined_File_Name, except it works with the name of
+    --  the unit, rather than the file name.
+ 
     -------------------
     -- Get_Body_Name --
     -------------------
*************** package body Uname is
*** 50,66 ****
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
! 
!       pragma Assert
!         (Buffer.Length > 2
!          and then Buffer.Chars (Buffer.Length - 1) = '%'
!          and then Buffer.Chars (Buffer.Length) = 's');
! 
        Buffer.Chars (Buffer.Length) := 'b';
- 
        return Name_Find (Buffer);
     end Get_Body_Name;
  
     -----------------------------------
     -- Get_External_Unit_Name_String --
     -----------------------------------
--- 59,79 ----
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       pragma Assert (Is_Spec_Name (N));
        Buffer.Chars (Buffer.Length) := 'b';
        return Name_Find (Buffer);
     end Get_Body_Name;
  
+    -------------------------------
+    -- Encoded_Library_Unit_Name --
+    -------------------------------
+ 
+    function Encoded_Library_Unit_Name (N : Unit_Name_Type) return String is
+       S : constant String := Get_Name_String (N);
+    begin
+       return S (S'First .. S'Last - 2);
+    end Encoded_Library_Unit_Name;
+ 
     -----------------------------------
     -- Get_External_Unit_Name_String --
     -----------------------------------
*************** package body Uname is
*** 70,79 ****
        Newlen : Natural;
  
     begin
!       --  Get unit name and eliminate trailing %s or %b
! 
!       Get_Name_String (N);
!       Name_Len := Name_Len - 2;
  
        --  Find number of components
  
--- 83,90 ----
        Newlen : Natural;
  
     begin
!       Name_Len := 0;
!       Add_Str_To_Name_Buffer (Encoded_Library_Unit_Name (N));
  
        --  Find number of components
  
*************** package body Uname is
*** 160,173 ****
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
! 
!       pragma Assert
!         (Buffer.Length > 2
!          and then Buffer.Chars (Buffer.Length - 1) = '%'
!          and then Buffer.Chars (Buffer.Length) = 'b');
! 
        Buffer.Chars (Buffer.Length) := 's';
- 
        return Name_Find (Buffer);
     end Get_Spec_Name;
  
--- 171,178 ----
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       pragma Assert (Is_Body_Name (N));
        Buffer.Chars (Buffer.Length) := 's';
        return Name_Find (Buffer);
     end Get_Spec_Name;
  
*************** package body Uname is
*** 418,440 ****
     begin
        Buf.Length := 0;
        Append_Decoded (Buf, N);
  
        --  Buf always ends with "%s" or "%b", which we either remove, or replace
        --  with " (spec)" or " (body)". Set_Casing of Buf after checking for
        --  (lower case) 's'/'b', and before appending (lower case) "spec" or
        --  "body".
  
-       pragma Assert (Buf.Length >= 3);
-       pragma Assert (Buf.Chars (1) /= '"');
-       pragma Assert (Buf.Chars (Buf.Length) in 's' | 'b');
- 
        declare
           S : constant String :=
             (if Buf.Chars (Buf.Length) = 's' then " (spec)" else " (body)");
        begin
!          Buf.Length := Buf.Length - 1; -- remove 's' or 'b'
!          pragma Assert (Buf.Chars (Buf.Length) = '%');
!          Buf.Length := Buf.Length - 1; -- remove '%'
           Set_Casing (Buf, Identifier_Casing (Source_Index (Main_Unit)));
  
           if Suffix then
--- 423,441 ----
     begin
        Buf.Length := 0;
        Append_Decoded (Buf, N);
+       pragma Assert (Buf.Chars (1) /= '"');
+       pragma Assert (Is_Body_Name (N) or else Is_Spec_Name (N));
  
        --  Buf always ends with "%s" or "%b", which we either remove, or replace
        --  with " (spec)" or " (body)". Set_Casing of Buf after checking for
        --  (lower case) 's'/'b', and before appending (lower case) "spec" or
        --  "body".
  
        declare
           S : constant String :=
             (if Buf.Chars (Buf.Length) = 's' then " (spec)" else " (body)");
        begin
!          Buf.Length := Buf.Length - 2; -- remove "%s" or "%b"
           Set_Casing (Buf, Identifier_Casing (Source_Index (Main_Unit)));
  
           if Suffix then
*************** package body Uname is
*** 474,482 ****
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       return Buffer.Length > 2
!         and then Buffer.Chars (Buffer.Length - 1) = '%'
!         and then Buffer.Chars (Buffer.Length) = 'b';
     end Is_Body_Name;
  
     -------------------
--- 475,483 ----
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       pragma Assert
!         (Buffer.Length > 2 and then Buffer.Chars (Buffer.Length - 1) = '%');
!       return Buffer.Chars (Buffer.Length) = 'b';
     end Is_Body_Name;
  
     -------------------
*************** package body Uname is
*** 505,525 ****
     ---------------------------
  
     function Is_Internal_Unit_Name
!      (Name               : String;
!       Renamings_Included : Boolean := True) return Boolean
     is
        Gnat : constant String := "gnat";
  
     begin
!       if Name = Gnat then
           return True;
        end if;
  
!       if Has_Prefix (Name, Prefix => Gnat & ".") then
           return True;
        end if;
  
!       return Is_Predefined_Unit_Name (Name, Renamings_Included);
     end Is_Internal_Unit_Name;
  
     -----------------------------
--- 506,527 ----
     ---------------------------
  
     function Is_Internal_Unit_Name
!      (Name : Unit_Name_Type; Renamings_Included : Boolean := True)
!       return Boolean
     is
        Gnat : constant String := "gnat";
  
+       Lib_Unit_Name : constant String := Encoded_Library_Unit_Name (Name);
     begin
!       if Lib_Unit_Name = Gnat then
           return True;
        end if;
  
!       if Has_Prefix (Lib_Unit_Name, Prefix => Gnat & ".") then
           return True;
        end if;
  
!       return Is_Predefined_Unit_Name (Lib_Unit_Name, Renamings_Included);
     end Is_Internal_Unit_Name;
  
     -----------------------------
*************** package body Uname is
*** 527,544 ****
     -----------------------------
  
     function Is_Predefined_Unit_Name
!      (Name               : String;
!       Renamings_Included : Boolean := True) return Boolean
     is
        Ada        : constant String := "ada";
        Interfaces : constant String := "interfaces";
        System     : constant String := "system";
- 
     begin
!       if Name = Ada
!         or else Name = Interfaces
!         or else Name = System
!       then
           return True;
        end if;
  
--- 529,550 ----
     -----------------------------
  
     function Is_Predefined_Unit_Name
!      (Name : Unit_Name_Type; Renamings_Included : Boolean := True)
!       return Boolean is
!    begin
!       return
!         Is_Predefined_Unit_Name
!           (Encoded_Library_Unit_Name (Name), Renamings_Included);
!    end Is_Predefined_Unit_Name;
! 
!    function Is_Predefined_Unit_Name
!      (Name : String; Renamings_Included : Boolean := True) return Boolean
     is
        Ada        : constant String := "ada";
        Interfaces : constant String := "interfaces";
        System     : constant String := "system";
     begin
!       if Name in Ada | Interfaces | System then
           return True;
        end if;
  
*************** package body Uname is
*** 556,569 ****
        --  The following are the predefined renamings
  
        return
!         Name = "calendar"
!           or else Name = "machine_code"
!           or else Name = "unchecked_conversion"
!           or else Name = "unchecked_deallocation"
!           or else Name = "direct_io"
!           or else Name = "io_exceptions"
!           or else Name = "sequential_io"
!           or else Name = "text_io";
     end Is_Predefined_Unit_Name;
  
     ------------------
--- 562,576 ----
        --  The following are the predefined renamings
  
        return
!         Name in
!           "calendar"
!           | "machine_code"
!           | "unchecked_conversion"
!           | "unchecked_deallocation"
!           | "direct_io"
!           | "io_exceptions"
!           | "sequential_io"
!           | "text_io";
     end Is_Predefined_Unit_Name;
  
     ------------------
*************** package body Uname is
*** 574,582 ****
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       return Buffer.Length > 2
!         and then Buffer.Chars (Buffer.Length - 1) = '%'
!         and then Buffer.Chars (Buffer.Length) = 's';
     end Is_Spec_Name;
  
     -----------------------
--- 581,589 ----
        Buffer : Bounded_String;
     begin
        Append (Buffer, N);
!       pragma Assert
!         (Buffer.Length > 2 and then Buffer.Chars (Buffer.Length - 1) = '%');
!       return Buffer.Chars (Buffer.Length) = 's';
     end Is_Spec_Name;
  
     -----------------------
diff -Nrcpad gcc-14.2.0/gcc/ada/uname.ads gcc-15.1.0/gcc/ada/uname.ads
*** gcc-14.2.0/gcc/ada/uname.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/uname.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Uname is
*** 126,139 ****
     --  body or a spec).
  
     function Is_Internal_Unit_Name
!      (Name               : String;
!       Renamings_Included : Boolean := True) return Boolean;
     --  Same as Fname.Is_Internal_File_Name, except it works with the name of
     --  the unit, rather than the file name.
  
     function Is_Predefined_Unit_Name
!      (Name               : String;
!       Renamings_Included : Boolean := True) return Boolean;
     --  Same as Fname.Is_Predefined_File_Name, except it works with the name of
     --  the unit, rather than the file name.
  
--- 126,139 ----
     --  body or a spec).
  
     function Is_Internal_Unit_Name
!      (Name : Unit_Name_Type; Renamings_Included : Boolean := True)
!       return Boolean;
     --  Same as Fname.Is_Internal_File_Name, except it works with the name of
     --  the unit, rather than the file name.
  
     function Is_Predefined_Unit_Name
!      (Name : Unit_Name_Type; Renamings_Included : Boolean := True)
!       return Boolean;
     --  Same as Fname.Is_Predefined_File_Name, except it works with the name of
     --  the unit, rather than the file name.
  
diff -Nrcpad gcc-14.2.0/gcc/ada/urealp.adb gcc-15.1.0/gcc/ada/urealp.adb
*** gcc-14.2.0/gcc/ada/urealp.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/urealp.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/urealp.ads gcc-15.1.0/gcc/ada/urealp.ads
*** gcc-14.2.0/gcc/ada/urealp.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/urealp.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/urealp.h gcc-15.1.0/gcc/ada/urealp.h
*** gcc-14.2.0/gcc/ada/urealp.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/urealp.h	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2025, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/usage.adb gcc-15.1.0/gcc/ada/usage.adb
*** gcc-14.2.0/gcc/ada/usage.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/usage.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 443,452 ****
     Write_Switch_Char ("Vxx");
     Write_Line
       ("Enable selected validity checking mode, xx = list of parameters:");
!    Write_Line ("        a    turn on all validity checking options");
     Write_Line ("        c    turn on checking for copies");
     Write_Line ("        C    turn off checking for copies");
!    Write_Line ("        d    turn on default (RM) checking");
     Write_Line ("        D    turn off default (RM) checking");
     Write_Line ("        e    turn on checking for elementary components");
     Write_Line ("        E    turn off checking for elementary components");
--- 443,454 ----
     Write_Switch_Char ("Vxx");
     Write_Line
       ("Enable selected validity checking mode, xx = list of parameters:");
!    Write_Line ("        a    turn on all of the following validity checking"
!                 & " options");
     Write_Line ("        c    turn on checking for copies");
     Write_Line ("        C    turn off checking for copies");
!    Write_Line ("        d    turn on default (RM) checking"
!                 & " (enabled by default)");
     Write_Line ("        D    turn off default (RM) checking");
     Write_Line ("        e    turn on checking for elementary components");
     Write_Line ("        E    turn off checking for elementary components");
*************** begin
*** 498,505 ****
                                                   "Compile_Time_Warning");
     Write_Line ("        d    turn on warnings for implicit dereference");
     Write_Line ("        D*   turn off warnings for implicit dereference");
!    Write_Line ("        .d   turn on tagging of warnings with -gnatw switch");
!    Write_Line ("        .D*  turn off tagging of warnings with -gnatw switch");
     Write_Line ("        e    treat all warnings (but not info) as errors");
     Write_Line ("        .e   turn on every optional info/warning " &
                                                    "(no exceptions)");
--- 500,507 ----
                                                   "Compile_Time_Warning");
     Write_Line ("        d    turn on warnings for implicit dereference");
     Write_Line ("        D*   turn off warnings for implicit dereference");
!    Write_Line ("        .d*  turn on tagging of warnings with -gnatw switch");
!    Write_Line ("        .D   turn off tagging of warnings with -gnatw switch");
     Write_Line ("        e    treat all warnings (but not info) as errors");
     Write_Line ("        .e   turn on every optional info/warning " &
                                                    "(no exceptions)");
*************** begin
*** 517,524 ****
     Write_Line ("        .H*  turn off warnings for holes in records");
     Write_Line ("        i*+  turn on warnings for implementation unit");
     Write_Line ("        I    turn off warnings for implementation unit");
!    Write_Line ("        .i*+ turn on warnings for overlapping actuals");
!    Write_Line ("        .I   turn off warnings for overlapping actuals");
     Write_Line ("        j+   turn on warnings for obsolescent " &
                                                    "(annex J) feature");
     Write_Line ("        J*   turn off warnings for obsolescent " &
--- 519,526 ----
     Write_Line ("        .H*  turn off warnings for holes in records");
     Write_Line ("        i*+  turn on warnings for implementation unit");
     Write_Line ("        I    turn off warnings for implementation unit");
!    Write_Line ("        .i+  turn on warnings for overlapping actuals");
!    Write_Line ("        .I*  turn off warnings for overlapping actuals");
     Write_Line ("        j+   turn on warnings for obsolescent " &
                                                    "(annex J) feature");
     Write_Line ("        J*   turn off warnings for obsolescent " &
*************** begin
*** 527,532 ****
--- 529,537 ----
                                                    "primitives");
     Write_Line ("        .J*  turn off warnings for late dispatching " &
                                                    "primitives");
+    Write_Line ("        _j   turn on warnings for First_Controlling_" &
+                                                   "Parameter aspect");
+ 
     Write_Line ("        k+   turn on warnings on constant variable");
     Write_Line ("        K*   turn off warnings on constant variable");
     Write_Line ("        .k   turn on warnings for standard redefinition");
*************** begin
*** 535,540 ****
--- 540,547 ----
     Write_Line ("        L*   turn off warnings for elaboration problems");
     Write_Line ("        .l   turn on info messages for inherited aspects");
     Write_Line ("        .L*  turn off info messages for inherited aspects");
+    Write_Line ("        _l   turn on warnings for implicitly limited types");
+    Write_Line ("        _L*  turn off warnings for implicitly limited types");
     Write_Line ("        m+   turn on warnings for variable assigned " &
                                                    "but not read");
     Write_Line ("        M*   turn off warnings for variable assigned " &
diff -Nrcpad gcc-14.2.0/gcc/ada/usage.ads gcc-15.1.0/gcc/ada/usage.ads
*** gcc-14.2.0/gcc/ada/usage.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/usage.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/validsw.adb gcc-15.1.0/gcc/ada/validsw.adb
*** gcc-14.2.0/gcc/ada/validsw.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/validsw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/validsw.ads gcc-15.1.0/gcc/ada/validsw.ads
*** gcc-14.2.0/gcc/ada/validsw.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/validsw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/vast.adb gcc-15.1.0/gcc/ada/vast.adb
*** gcc-14.2.0/gcc/ada/vast.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/vast.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/vast.ads gcc-15.1.0/gcc/ada/vast.ads
*** gcc-14.2.0/gcc/ada/vast.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/vast.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2025, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/version.c gcc-15.1.0/gcc/ada/version.c
*** gcc-14.2.0/gcc/ada/version.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/version.c	Fri Apr 25 08:18:00 2025
***************
*** 31,34 ****
  
  #include "version.h"
  
! char gnat_version_string[] = version_string;
--- 31,37 ----
  
  #include "version.h"
  
! /* Logically a reference to Gnatvsn.Ver_Len_Max.  Please keep in sync.  */
! #define VER_LEN_MAX 256
! 
! char gnat_version_string[VER_LEN_MAX] = version_string;
diff -Nrcpad gcc-14.2.0/gcc/ada/vx_stack_info.c gcc-15.1.0/gcc/ada/vx_stack_info.c
*** gcc-14.2.0/gcc/ada/vx_stack_info.c	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/vx_stack_info.c	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *              Copyright (C) 2007-2024  Free Software Foundation, Inc.     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *              Copyright (C) 2007-2025  Free Software Foundation, Inc.     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-14.2.0/gcc/ada/vxworks-smp-ppc-link.spec gcc-15.1.0/gcc/ada/vxworks-smp-ppc-link.spec
*** gcc-14.2.0/gcc/ada/vxworks-smp-ppc-link.spec	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/vxworks-smp-ppc-link.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- *lib:
- + %{mrtp:%{!shared: \
-      -L%:getenv(WIND_BASE /target/lib_smp/usr/lib/ppc/PPC32/common) \
-    }}
--- 0 ----
diff -Nrcpad gcc-14.2.0/gcc/ada/warnsw.adb gcc-15.1.0/gcc/ada/warnsw.adb
*** gcc-14.2.0/gcc/ada/warnsw.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/warnsw.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Warnsw is
*** 92,103 ****
            'z' => X.Warn_On_Size_Alignment),
  
          '_' =>
!          ('b' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' |
            'n' | 'o' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' =>
             No_Such_Warning,
  
            'a' => X.Warn_On_Anonymous_Allocators,
            'c' => X.Warn_On_Unknown_Compile_Time_Warning,
            'p' => X.Warn_On_Pedantic_Checks,
            'q' => X.Warn_On_Ignored_Equality,
            'r' => X.Warn_On_Component_Order,
--- 92,105 ----
            'z' => X.Warn_On_Size_Alignment),
  
          '_' =>
!          ('b' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'k' | 'm' |
            'n' | 'o' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' =>
             No_Such_Warning,
  
            'a' => X.Warn_On_Anonymous_Allocators,
            'c' => X.Warn_On_Unknown_Compile_Time_Warning,
+           'j' => X.Warn_On_Non_Dispatching_Primitives,
+           'l' => X.Warn_On_Inherently_Limited_Type,
            'p' => X.Warn_On_Pedantic_Checks,
            'q' => X.Warn_On_Ignored_Equality,
            'r' => X.Warn_On_Component_Order,
*************** package body Warnsw is
*** 108,113 ****
--- 110,116 ----
        X.Warning_Doc_Switch |
        X.Warn_On_Ada_2022_Compatibility |
        X.Warn_On_Elab_Access |
+       X.Warn_On_GNAT_Extension_Compatibility |
        X.No_Warn_On_Non_Local_Exception => False,
        others => True);
     --  Warning_Doc_Switch is not really a warning to be enabled, but controls
*************** package body Warnsw is
*** 190,195 ****
--- 193,199 ----
        --  These warnings are removed from the -gnatwa set
  
        Implementation_Unit_Warnings        := False;
+       Warn_On_Non_Dispatching_Primitives  := False;
        Warn_On_Non_Local_Exception         := False;
        No_Warn_On_Non_Local_Exception      := True;
        Warn_On_Reverse_Bit_Order           := False;
diff -Nrcpad gcc-14.2.0/gcc/ada/warnsw.ads gcc-15.1.0/gcc/ada/warnsw.ads
*** gcc-14.2.0/gcc/ada/warnsw.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/warnsw.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Warnsw is
*** 69,80 ****
--- 69,83 ----
           Warn_On_Dereference,
           Warn_On_Elab_Access,
           Warn_On_Export_Import,
+          Warn_On_GNAT_Extension_Compatibility,
           Warn_On_Hiding,
           Warn_On_Ignored_Equality,
           Warn_On_Ineffective_Predicate_Test,
+          Warn_On_Inherently_Limited_Type,
           Warn_On_Late_Primitives,
           Warn_On_Modified_Unread,
           Warn_On_No_Value_Assigned,
+          Warn_On_Non_Dispatching_Primitives,
           Warn_On_Non_Local_Exception,
           No_Warn_On_Non_Local_Exception,
           Warn_On_Object_Renames_Function,
*************** package Warnsw is
*** 126,131 ****
--- 129,135 ----
        Warn_On_Assumed_Low_Bound |
        Warn_On_Biased_Representation |
        Warn_On_Export_Import |
+       Warn_On_GNAT_Extension_Compatibility |
        Warn_On_No_Value_Assigned |
        Warn_On_Questionable_Missing_Parens |
        Warn_On_Reverse_Bit_Order |
*************** package Warnsw is
*** 157,164 ****
--- 161,170 ----
        Warn_On_Hiding |
        Warn_On_Ignored_Equality |
        Warn_On_Ineffective_Predicate_Test |
+       Warn_On_Inherently_Limited_Type |
        Warn_On_Late_Primitives |
        Warn_On_Modified_Unread |
+       Warn_On_Non_Dispatching_Primitives |
        Warn_On_Non_Local_Exception |
        No_Warn_On_Non_Local_Exception |
        Warn_On_Object_Renames_Function |
*************** package Warnsw is
*** 324,329 ****
--- 330,339 ----
     --  Set to True to generate warnings for suspicious use of export or
     --  import pragmas. Modified by use of -gnatwx/X.
  
+    Warn_On_GNAT_Extension_Compatibility : Boolean renames F (X.Warn_On_GNAT_Extension_Compatibility);
+    --  Set to True to generate all warnings on GNAT extension compatibility
+    --  issues. There is no switch controlling this option.
+ 
     Warn_On_Hiding : Boolean renames F (X.Warn_On_Hiding);
     --  Set to True to generate warnings if a declared entity hides another
     --  entity. The default is that this warning is suppressed. Modified by
*************** package Warnsw is
*** 340,345 ****
--- 350,360 ----
     --  values that do not belong to the parent subtype. Modified by use of
     --  -gnatw_s/S.
  
+    Warn_On_Inherently_Limited_Type : Boolean renames F (X.Warn_On_Inherently_Limited_Type);
+    --  Set to True to generate warnings if a record type does not have a
+    --  limited keyword, but is inherently limited. Modified by use of
+    --  -gnatw_l/L.
+ 
     Warn_On_Late_Primitives : Boolean renames F (X.Warn_On_Late_Primitives);
     --  Warn when tagged type public primitives are defined after its private
     --  extensions.
*************** package Warnsw is
*** 357,362 ****
--- 372,382 ----
     --  suppress such warnings. The default is that such warnings are enabled.
     --  Modified by use of -gnatwv/V.
  
+    Warn_On_Non_Dispatching_Primitives : Boolean renames F (X.Warn_On_Non_Dispatching_Primitives);
+    --  Set to True to generate warnings for non dispatching primitives of tagged
+    --  types that have aspect/pragma First_Controlling_Parameter set to True.
+    --  This is turned on by -gnatw_j and turned off by -gnatw_J
+ 
     Warn_On_Non_Local_Exception : Boolean renames F (X.Warn_On_Non_Local_Exception);
     --  Set to True to generate warnings for non-local exception raises and also
     --  handlers that can never handle a local raise. This warning is only ever
diff -Nrcpad gcc-14.2.0/gcc/ada/widechar.adb gcc-15.1.0/gcc/ada/widechar.adb
*** gcc-14.2.0/gcc/ada/widechar.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/widechar.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/widechar.ads gcc-15.1.0/gcc/ada/widechar.ads
*** gcc-14.2.0/gcc/ada/widechar.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/widechar.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/xoscons.adb gcc-15.1.0/gcc/ada/xoscons.adb
*** gcc-14.2.0/gcc/ada/xoscons.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/xoscons.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/xsnamest.adb gcc-15.1.0/gcc/ada/xsnamest.adb
*** gcc-14.2.0/gcc/ada/xsnamest.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/xsnamest.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 28,34 ****
  --  which the numbers are all written as $, and generates a new version of the
  --  spec file snames.ads (written to snames.ns). It also reads snames.adb-tmpl
  --  and generates an updated body (written to snames.nb), and snames.h-tmpl and
! --  generates an updated C header file (written to snames.nh).
  
  with Ada.Strings.Unbounded;         use Ada.Strings.Unbounded;
  with Ada.Strings.Unbounded.Text_IO; use Ada.Strings.Unbounded.Text_IO;
--- 28,34 ----
  --  which the numbers are all written as $, and generates a new version of the
  --  spec file snames.ads (written to snames.ns). It also reads snames.adb-tmpl
  --  and generates an updated body (written to snames.nb), and snames.h-tmpl and
! --  generates an updated C header file (written to snames.h).
  
  with Ada.Strings.Unbounded;         use Ada.Strings.Unbounded;
  with Ada.Strings.Unbounded.Text_IO; use Ada.Strings.Unbounded.Text_IO;
diff -Nrcpad gcc-14.2.0/gcc/ada/xspack.py gcc-15.1.0/gcc/ada/xspack.py
*** gcc-14.2.0/gcc/ada/xspack.py	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/ada/xspack.py	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,82 ----
+ #! /usr/bin/env python
+ 
+ #                                                                          #
+ #                         GNAT COMPILER COMPONENTS                         #
+ #                                                                          #
+ #                               X S P A C K                                #
+ #                                                                          #
+ #           Copyright (C) 2001-2024, Free Software Foundation, Inc.        #
+ #                                                                          #
+ # GNAT is free software;  you can  redistribute it  and/or modify it under #
+ # terms of the  GNU General Public License as published  by the Free Soft- #
+ # ware  Foundation;  either version 3,  or (at your option) any later ver- #
+ # sion.  GNAT is distributed in the hope that it will be useful, but WITH- #
+ # OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY #
+ # or FITNESS FOR A PARTICULAR PURPOSE.                                     #
+ #                                                                          #
+ # As a special exception under Section 7 of GPL version 3, you are granted #
+ # additional permissions described in the GCC Runtime Library Exception,   #
+ # version 3.1, as published by the Free Software Foundation.               #
+ #                                                                          #
+ # You should have received a copy of the GNU General Public License and    #
+ # a copy of the GCC Runtime Library Exception along with this program;     #
+ # see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    #
+ # <http://www.gnu.org/licenses/>.                                          #
+ #                                                                          #
+ # GNAT was originally developed  by the GNAT team at  New York University. #
+ # Extensive contributions were provided by Ada Core Technologies Inc.      #
+ 
+ # xspack
+ 
+ # Generate s-pack*.{ads,adb} from templates s-pack.ads.tmpl and s-pack.adb.tmpl
+ 
+ tmpl_base = "s-pack.ad%c.tmpl"
+ 
+ 
+ def read_template(part):
+     return open(tmpl_base % part).readlines()
+ 
+ 
+ def output(pkg, bits, part):
+     global tmpl
+ 
+     bits_str_pad = "%02d" % bits
+     if bits > 99:
+         bits_str_dbl = "1 %d %d" % ((bits / 10) % 10, bits % 10)
+     else:
+         bits_str_dbl = "%d %d  " % (bits / 10, bits % 10)
+     bits_str = "%d" % bits
+ 
+     out = open(pkg % (bits, part), 'w')
+     skip = False
+ 
+     for line in tmpl[part]:
+         if line.find('@even') == 0 and bits % 2 == 1:
+             skip = True
+         if line.find('@/even') == 0:
+             skip = False
+         if line[0] != '@' and not skip:
+             line = line.replace('@@', bits_str_pad)
+             line = line.replace('@ @  ', bits_str_dbl)
+             line = line.replace('@', bits_str)
+             out.write(line)
+ 
+ 
+ parts = ['s', 'b']
+ tmpl = {}
+ 
+ for part in parts:
+     tmpl[part] = read_template(part)
+ 
+ for bits in range(1, 128):
+     if bits & (bits - 1) == 0:
+         # Power of two: no package generated
+         continue
+ 
+     if bits > 99:
+         pkg_base = "s-pack%3d.ad%c"
+     else:
+         pkg_base = "s-pack%02d.ad%c"
+ 
+     for part in parts:
+         output(pkg_base, bits, part)
diff -Nrcpad gcc-14.2.0/gcc/ada/xutil.adb gcc-15.1.0/gcc/ada/xutil.adb
*** gcc-14.2.0/gcc/ada/xutil.adb	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/xutil.adb	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/ada/xutil.ads gcc-15.1.0/gcc/ada/xutil.ads
*** gcc-14.2.0/gcc/ada/xutil.ads	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/ada/xutil.ads	Fri Apr 25 08:18:00 2025
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-14.2.0/gcc/addresses.h gcc-15.1.0/gcc/addresses.h
*** gcc-14.2.0/gcc/addresses.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/addresses.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Inline functions to test validity of reg classes for addressing modes.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Inline functions to test validity of reg classes for addressing modes.
!    Copyright (C) 2006-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/adjust-alignment.cc gcc-15.1.0/gcc/adjust-alignment.cc
*** gcc-14.2.0/gcc/adjust-alignment.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/adjust-alignment.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Adjust alignment for local variable.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by Kito Cheng <kito.cheng@sifive.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Adjust alignment for local variable.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by Kito Cheng <kito.cheng@sifive.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/alias.cc gcc-15.1.0/gcc/alias.cc
*** gcc-14.2.0/gcc/alias.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/alias.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Alias analysis for GNU C
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by John Carr (jfc@mit.edu).
  
  This file is part of GCC.
--- 1,5 ----
  /* Alias analysis for GNU C
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
     Contributed by John Carr (jfc@mit.edu).
  
  This file is part of GCC.
*************** component_uses_parent_alias_set_from (co
*** 671,677 ****
  
        t = TREE_OPERAND (t, 0);
      }
!  
    if (found)
      return TREE_OPERAND (found, 0);
  
--- 671,677 ----
  
        t = TREE_OPERAND (t, 0);
      }
! 
    if (found)
      return TREE_OPERAND (found, 0);
  
*************** get_deref_alias_set (tree t)
*** 738,744 ****
     memory reference tree *T or NULL_TREE in which case *T is
     adjusted to point to the outermost component reference that
     can be used for assigning an alias set.  */
!  
  tree
  reference_alias_ptr_type_1 (tree *t)
  {
--- 738,744 ----
     memory reference tree *T or NULL_TREE in which case *T is
     adjusted to point to the outermost component reference that
     can be used for assigning an alias set.  */
! 
  tree
  reference_alias_ptr_type_1 (tree *t)
  {
*************** reference_alias_ptr_type_1 (tree *t)
*** 770,779 ****
    /* If the innermost reference is a MEM_REF that has a
       conversion embedded treat it like a VIEW_CONVERT_EXPR above,
       using the memory access type for determining the alias-set.  */
!   if (TREE_CODE (inner) == MEM_REF
!       && (TYPE_MAIN_VARIANT (TREE_TYPE (inner))
! 	  != TYPE_MAIN_VARIANT
! 	       (TREE_TYPE (TREE_TYPE (TREE_OPERAND (inner, 1))))))
      {
        tree alias_ptrtype = TREE_TYPE (TREE_OPERAND (inner, 1));
        /* Unless we have the (aggregate) effective type of the access
--- 770,776 ----
    /* If the innermost reference is a MEM_REF that has a
       conversion embedded treat it like a VIEW_CONVERT_EXPR above,
       using the memory access type for determining the alias-set.  */
!   if (view_converted_memref_p (inner))
      {
        tree alias_ptrtype = TREE_TYPE (TREE_OPERAND (inner, 1));
        /* Unless we have the (aggregate) effective type of the access
*************** record_component_aliases (tree type, ali
*** 1261,1272 ****
      case UNION_TYPE:
      case QUAL_UNION_TYPE:
        {
! 	/* LTO non-ODR type merging does not make any difference between 
  	   component pointer types.  We may have
  
  	   struct foo {int *a;};
  
! 	   as TYPE_CANONICAL of 
  
  	   struct bar {float *a;};
  
--- 1258,1269 ----
      case UNION_TYPE:
      case QUAL_UNION_TYPE:
        {
! 	/* LTO non-ODR type merging does not make any difference between
  	   component pointer types.  We may have
  
  	   struct foo {int *a;};
  
! 	   as TYPE_CANONICAL of
  
  	   struct bar {float *a;};
  
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1864,1869 ****
--- 1861,1871 ----
  	    return false;
  	  break;
  
+ 	case 'L':
+ 	  if (XLOC (x, i) != XLOC (y, i))
+ 	    return false;
+ 	  break;
+ 
  	case 'p':
  	  if (maybe_ne (SUBREG_BYTE (x), SUBREG_BYTE (y)))
  	    return false;
*************** compare_base_decls (tree base1, tree bas
*** 2116,2122 ****
    symtab_node *node2 = symtab_node::get (base2);
    if (!node2)
      return 0;
!   
    ret = node1->equal_address_to (node2, true);
    return ret;
  }
--- 2118,2124 ----
    symtab_node *node2 = symtab_node::get (base2);
    if (!node2)
      return 0;
! 
    ret = node1->equal_address_to (node2, true);
    return ret;
  }
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2533,2551 ****
  	    return memrefs_conflict_p (xsize, x1, ysize, y1, c);
  	  if (poly_int_rtx_p (x1, &cx1))
  	    {
  	      if (poly_int_rtx_p (y1, &cy1))
! 		return memrefs_conflict_p (xsize, x0, ysize, y0,
! 					   c - cx1 + cy1);
  	      else
! 		return memrefs_conflict_p (xsize, x0, ysize, y, c - cx1);
  	    }
  	  else if (poly_int_rtx_p (y1, &cy1))
! 	    return memrefs_conflict_p (xsize, x, ysize, y0, c + cy1);
  
  	  return -1;
  	}
        else if (poly_int_rtx_p (x1, &cx1))
! 	return memrefs_conflict_p (xsize, x0, ysize, y, c - cx1);
      }
    else if (GET_CODE (y) == PLUS)
      {
--- 2535,2573 ----
  	    return memrefs_conflict_p (xsize, x1, ysize, y1, c);
  	  if (poly_int_rtx_p (x1, &cx1))
  	    {
+ 	      poly_offset_int co = c;
+ 	      co -= cx1;
  	      if (poly_int_rtx_p (y1, &cy1))
! 		{
! 		  co += cy1;
! 		  if (!co.to_shwi (&c))
! 		    return -1;
! 		  return memrefs_conflict_p (xsize, x0, ysize, y0, c);
! 		}
! 	      else if (!co.to_shwi (&c))
! 		return -1;
  	      else
! 		return memrefs_conflict_p (xsize, x0, ysize, y, c);
  	    }
  	  else if (poly_int_rtx_p (y1, &cy1))
! 	    {
! 	      poly_offset_int co = c;
! 	      co += cy1;
! 	      if (!co.to_shwi (&c))
! 		return -1;
! 	      return memrefs_conflict_p (xsize, x, ysize, y0, c);
! 	    }
  
  	  return -1;
  	}
        else if (poly_int_rtx_p (x1, &cx1))
! 	{
! 	  poly_offset_int co = c;
! 	  co -= cx1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
! 	  return memrefs_conflict_p (xsize, x0, ysize, y, c);
! 	}
      }
    else if (GET_CODE (y) == PLUS)
      {
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2561,2567 ****
  
        poly_int64 cy1;
        if (poly_int_rtx_p (y1, &cy1))
! 	return memrefs_conflict_p (xsize, x, ysize, y0, c + cy1);
        else
  	return -1;
      }
--- 2583,2595 ----
  
        poly_int64 cy1;
        if (poly_int_rtx_p (y1, &cy1))
! 	{
! 	  poly_offset_int co = c;
! 	  co += cy1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
! 	  return memrefs_conflict_p (xsize, x, ysize, y0, c);
! 	}
        else
  	return -1;
      }
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2614,2621 ****
  	  if (maybe_gt (xsize, 0))
  	    xsize = -xsize;
  	  if (maybe_ne (xsize, 0))
! 	    xsize += sc + 1;
! 	  c -= sc + 1;
  	  return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
  				     ysize, y, c);
  	}
--- 2642,2657 ----
  	  if (maybe_gt (xsize, 0))
  	    xsize = -xsize;
  	  if (maybe_ne (xsize, 0))
! 	    {
! 	      poly_offset_int xsizeo = xsize;
! 	      xsizeo += sc + 1;
! 	      if (!xsizeo.to_shwi (&xsize))
! 		return -1;
! 	    }
! 	  poly_offset_int co = c;
! 	  co -= sc + 1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
  				     ysize, y, c);
  	}
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2629,2636 ****
  	  if (maybe_gt (ysize, 0))
  	    ysize = -ysize;
  	  if (maybe_ne (ysize, 0))
! 	    ysize += sc + 1;
! 	  c += sc + 1;
  	  return memrefs_conflict_p (xsize, x,
  				     ysize, canon_rtx (XEXP (y, 0)), c);
  	}
--- 2665,2680 ----
  	  if (maybe_gt (ysize, 0))
  	    ysize = -ysize;
  	  if (maybe_ne (ysize, 0))
! 	    {
! 	      poly_offset_int ysizeo = ysize;
! 	      ysizeo += sc + 1;
! 	      if (!ysizeo.to_shwi (&ysize))
! 		return -1;
! 	    }
! 	  poly_offset_int co = c;
! 	  co += sc + 1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return memrefs_conflict_p (xsize, x,
  				     ysize, canon_rtx (XEXP (y, 0)), c);
  	}
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2641,2647 ****
        poly_int64 cx, cy;
        if (poly_int_rtx_p (x, &cx) && poly_int_rtx_p (y, &cy))
  	{
! 	  c += cy - cx;
  	  return offset_overlap_p (c, xsize, ysize);
  	}
  
--- 2685,2695 ----
        poly_int64 cx, cy;
        if (poly_int_rtx_p (x, &cx) && poly_int_rtx_p (y, &cy))
  	{
! 	  poly_offset_int co = c;
! 	  co += cy;
! 	  co -= cx;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return offset_overlap_p (c, xsize, ysize);
  	}
  
*************** adjust_offset_for_component_ref (tree x,
*** 2756,2762 ****
  }
  
  /* Return true if we can determine the exprs corresponding to memrefs
!    X and Y and they do not overlap. 
     If LOOP_VARIANT is set, skip offset-based disambiguation */
  
  bool
--- 2804,2810 ----
  }
  
  /* Return true if we can determine the exprs corresponding to memrefs
!    X and Y and they do not overlap.
     If LOOP_VARIANT is set, skip offset-based disambiguation */
  
  bool
diff -Nrcpad gcc-14.2.0/gcc/alias.h gcc-15.1.0/gcc/alias.h
*** gcc-14.2.0/gcc/alias.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/alias.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** bool alias_ptr_types_compatible_p (tree,
*** 41,46 ****
--- 41,47 ----
  int compare_base_decls (tree, tree);
  bool refs_same_for_tbaa_p (tree, tree);
  bool mems_same_for_tbaa_p (rtx, rtx);
+ bool view_converted_memref_p (tree);
  
  /* This alias set can be used to force a memory to conflict with all
     other memories, creating a barrier across which no memory reference
diff -Nrcpad gcc-14.2.0/gcc/align.h gcc-15.1.0/gcc/align.h
*** gcc-14.2.0/gcc/align.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/align.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Alignment-related classes.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Alignment-related classes.
!    Copyright (C) 2018-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/alloc-pool.cc gcc-15.1.0/gcc/alloc-pool.cc
*** gcc-14.2.0/gcc/alloc-pool.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/alloc-pool.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Functions to support a pool of allocatable objects.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/alloc-pool.h gcc-15.1.0/gcc/alloc-pool.h
*** gcc-14.2.0/gcc/alloc-pool.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/alloc-pool.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Functions to support a pool of allocatable objects
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
*************** base_pool_allocator <TBlockAllocator>::r
*** 445,451 ****
        memset (object, 0xaf, size);
      }
  
! #if CHECKING_P 
    /* Mark the element to be free.  */
    allocation_object::get_instance (object)->id = 0;
  #endif
--- 445,451 ----
        memset (object, 0xaf, size);
      }
  
! #if CHECKING_P
    /* Mark the element to be free.  */
    allocation_object::get_instance (object)->id = 0;
  #endif
diff -Nrcpad gcc-14.2.0/gcc/analyzer/ChangeLog gcc-15.1.0/gcc/analyzer/ChangeLog
*** gcc-14.2.0/gcc/analyzer/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/gcc/analyzer/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,11 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-07-19  Daniel Bertalan  <dani@danielbertalan.dev>
  
! 	Backported from master:
! 	2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>
  
  	* diagnostic-manager.cc (saved_diagnostic::saved_diagnostic):
  	Change NULL to nullptr.
--- 1,533 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR analyzer/119278
! 	* svalue.cc (cmp_csts_same_type): For STRING_CST, compare
! 	TREE_STRING_LENGTH first just in case and use memcmp rather
! 	than strcmp.  Handle RAW_DATA_CST.
! 
! 2025-03-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/117262
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_constant_svalue): Use
! 	NULL_TREE for the types of constant_svalue for RAW_DATA_CST.
! 	(region_model_manager::maybe_fold_sub_svalue): Generalize
! 	STRING_CST logic to also handle RAW_DATA_CST.
! 	(region_model_manager::maybe_get_char_from_cst): New.
! 	(region_model_manager::maybe_get_char_from_raw_data_cst): New.
! 	* region-model-manager.h
! 	(region_model_manager::maybe_get_char_from_cst): New decl.
! 	(region_model_manager::maybe_get_char_from_raw_data_cst): New decl.
! 	* region-model.cc (region_model::get_rvalue_1): Handle
! 	RAW_DATA_CST.
! 	* store.cc (get_subregion_within_ctor_for_ctor_pair): New.
! 	(binding_map::apply_ctor_pair_to_child_region): Call
! 	get_subregion_within_ctor_for_ctor_pair so that we handle
! 	RAW_DATA_CST.
! 
! 2025-02-24  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117023
! 	* sm-malloc.cc (malloc_state_machine::handle_nonnull): New private
! 	method.
! 	(malloc_state_machine::on_stmt): Use it for nonnull attribute arguments.
! 	Handle also nonnull_if_nonzero attributes.
! 
! 2025-02-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/118300
! 	* kf.cc (class kf_ubsan_bounds): Replace this with...
! 	(class kf_ubsan_noop): ...this.
! 	(register_sanitizer_builtins): Use it to handle IFN_UBSAN_NULL,
! 	IFN_UBSAN_BOUNDS, and IFN_UBSAN_PTR as nop-ops.
! 	(register_known_functions): Drop handling of IFN_UBSAN_BOUNDS
! 	here, as it's now handled by register_sanitizer_builtins above.
! 
! 2025-02-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-manager.cc
! 	(saved_diagnostic::maybe_add_sarif_properties): Add various
! 	properties for debugging, for m_stmt, m_var, and m_duplicates.
! 	Remove stray 'if' statement.  Capture the kind of the
! 	pending_diagnostic.
! 	* region-model.cc
! 	(poisoned_value_diagnostic::maybe_add_sarif_properties): New.
! 
! 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc: Include "gcc-urlifier.h".
! 	(reason_attr_access::emit): Use auto_urlify_attributes.
! 	* sm-taint.cc: Include "gcc-urlifier.h".
! 	(tainted_access_attrib_size::emit): Use auto_urlify_attributes.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (strongly_connected_components::to_json): Avoid naked
! 	"new".
! 	* infinite-loop.cc (infinite_loop::to_json): Convert return type
! 	to unique_ptr.  Avoid naked "new".
! 	* sm-signal.cc (signal_delivery_edge_info_t::to_json): Delete
! 	unused function.
! 	* supergraph.cc (supernode::to_json): Avoid naked "new".
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/104896
! 	* sm-malloc.cc: Replace "%<%s%>" with "%qs" in message wording.
! 
! 2024-11-23  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	* checker-event.cc (checker_event::dump): Support printing either
! 	32- or 64-bit location_t values.
! 	* checker-path.cc (checker_path::inject_any_inlined_call_events):
! 	Likewise.
! 
! 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR bootstrap/117737
! 	* access-diagram.cc (INCLUDE_MEMORY): Remove.
! 	* analysis-plan.cc (INCLUDE_MEMORY): Remove.
! 	* analyzer-language.cc (INCLUDE_MEMORY): Remove.
! 	* analyzer-logging.cc (INCLUDE_MEMORY): Remove.
! 	* analyzer-pass.cc (INCLUDE_MEMORY): Remove.
! 	* analyzer-selftests.cc (INCLUDE_MEMORY): Remove.
! 	* analyzer.cc (INCLUDE_MEMORY): Remove.
! 	* bar-chart.cc (INCLUDE_MEMORY): Remove.
! 	* bounds-checking.cc (INCLUDE_MEMORY): Remove.
! 	* call-details.cc (INCLUDE_MEMORY): Remove.
! 	* call-info.cc (INCLUDE_MEMORY): Remove.
! 	* call-string.cc (INCLUDE_MEMORY): Remove.
! 	* call-summary.cc (INCLUDE_MEMORY): Remove.
! 	* checker-event.cc (INCLUDE_MEMORY): Remove.
! 	* checker-path.cc (INCLUDE_MEMORY): Remove.
! 	* complexity.cc (INCLUDE_MEMORY): Remove.
! 	* constraint-manager.cc (INCLUDE_MEMORY): Remove.
! 	* diagnostic-manager.cc (INCLUDE_MEMORY): Remove.
! 	* engine.cc (INCLUDE_MEMORY): Remove.
! 	* feasible-graph.cc (INCLUDE_MEMORY): Remove.
! 	* infinite-loop.cc (INCLUDE_MEMORY): Remove.
! 	* infinite-recursion.cc (INCLUDE_MEMORY): Remove.
! 	* kf-analyzer.cc (INCLUDE_MEMORY): Remove.
! 	* kf-lang-cp.cc (INCLUDE_MEMORY): Remove.
! 	* kf.cc (INCLUDE_MEMORY): Remove.
! 	* known-function-manager.cc (INCLUDE_MEMORY): Remove.
! 	* pending-diagnostic.cc (INCLUDE_MEMORY): Remove.
! 	* program-point.cc (INCLUDE_MEMORY): Remove.
! 	* program-state.cc (INCLUDE_MEMORY): Remove.
! 	* ranges.cc (INCLUDE_MEMORY): Remove.
! 	* record-layout.cc (INCLUDE_MEMORY): Remove.
! 	* region-model-asm.cc (INCLUDE_MEMORY): Remove.
! 	* region-model-manager.cc (INCLUDE_MEMORY): Remove.
! 	* region-model-reachability.cc (INCLUDE_MEMORY): Remove.
! 	* region-model.cc (INCLUDE_MEMORY): Remove.
! 	* region.cc (INCLUDE_MEMORY): Remove.
! 	* sm-fd.cc (INCLUDE_MEMORY): Remove.
! 	* sm-file.cc (INCLUDE_MEMORY): Remove.
! 	* sm-malloc.cc (INCLUDE_MEMORY): Remove.
! 	* sm-pattern-test.cc (INCLUDE_MEMORY): Remove.
! 	* sm-sensitive.cc (INCLUDE_MEMORY): Remove.
! 	* sm-signal.cc (INCLUDE_MEMORY): Remove.
! 	* sm-taint.cc (INCLUDE_MEMORY): Remove.
! 	* sm.cc (INCLUDE_MEMORY): Remove.
! 	* state-purge.cc (INCLUDE_MEMORY): Remove.
! 	* store.cc (INCLUDE_MEMORY): Remove.
! 	* supergraph.cc (INCLUDE_MEMORY): Remove.
! 	* svalue.cc (INCLUDE_MEMORY): Remove.
! 	* symbol.cc (INCLUDE_MEMORY): Remove.
! 	* trimmed-graph.cc (INCLUDE_MEMORY): Remove.
! 	* varargs.cc (INCLUDE_MEMORY): Remove.
! 
! 2024-11-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-path.cc (checker_path::debug): Explicitly use
! 	global_dc's reference printer.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::prune_interproc_events): Likewise.
! 	(diagnostic_manager::prune_system_headers): Likewise.
! 
! 2024-11-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.cc: Include "make-unique.h".  Convert "to_json"
! 	functions to use std::unique_ptr.
! 	* call-string.cc: Likewise.
! 	* constraint-manager.cc: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* engine.cc: Likewise.
! 	* program-point.cc: Likewise.
! 	* program-state.cc: Likewise.
! 	* ranges.cc: Likewise.
! 	* region-model.cc: Likewise.
! 	* region.cc: Likewise.
! 	* svalue.cc: Likewise.
! 	* sm.cc: Likewise.
! 	* store.cc: Likewise.
! 	* supergraph.cc: Likewise.
! 	* analyzer.h: Convert "to_json" functions to return
! 	std::unique_ptr.
! 	* call-string.h: Likewise.
! 	* constraint-manager.h: Likewise.
! 	(bounded_range::set_json_attr): Pass "obj" by reference.
! 	* diagnostic-manager.h: Convert "to_json" functions to return
! 	std::unique_ptr.
! 	* exploded-graph.h: Likewise.
! 	* program-point.h: Likewise.
! 	* program-state.h: Likewise.
! 	* ranges.h: Likewise.
! 	* region-model.h: Likewise.
! 	* region.h: Likewise.
! 	* sm.h: Likewise.
! 	* store.h: Likewise.
! 	* supergraph.h: Likewise.
! 	* svalue.h: Likewise.
! 
! 2024-11-01  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/117373
! 	* infinite-loop.cc
! 	(infinite_loop_diagnostic::describe_final_event): Fix
! 	-Wunused-parameter warning
! 
! 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* analyzer-language.cc (on_finish_translation_unit): Update for
! 	m_printer becoming reference printer.
! 	* engine.cc (run_checkers): Likewise.
! 	* program-point.cc (function_point::print_source_line): Likewise.
! 
! 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* state-purge.cc: Remove trailing whitespace.
! 	* region-model.h: Likewise.
! 	* region-model.cc: Likewise.
! 	* program-point.cc: Likewise.
! 	* exploded-graph.h: Likewise.
! 	* program-state.cc: Likewise.
! 	* supergraph.cc: Likewise.
! 
! 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* bounds-checking.cc
! 	(concrete_buffer_overflow::describe_final_event): Convert return
! 	type from label_text to bool.  Add "pp" param and either print to
! 	it and return true, or return false.
! 	(concrete_buffer_overflow::describe_final_event_as_bytes): Convert
! 	to print to a pp rather than returning a label_text.
! 	(concrete_buffer_overflow::describe_final_event_as_bits):
! 	Likewise.
! 	(class concrete_buffer_over_read): Analogous changes to above.
! 	(class concrete_buffer_underwrite): Likewise.
! 	(class concrete_buffer_under_read): Likewise.
! 	(class symbolic_buffer_overflow): Likewise.
! 	(class symbolic_buffer_over_read): Likewise.
! 	* call-details.cc (class overlapping_buffers): Likewise.
! 	* call-info.cc (call_info::print): Reimplement.
! 	(class call_info::add_events_to_path::call_event): Convert
! 	"get_desc" vfunc to "print_desc", dropping return type, adding
! 	"pp" param, and printing to it.
! 	(class succeed_or_fail_call_info): Likewise.
! 	* call-info.h (class call_info): Likewise.
! 	(class succeed_or_fail_call_info): Likewise.
! 	* checker-event.cc (checker_event::dump): Reimplement.
! 	(checker_event::prepare_for_emission): Update for change from
! 	get_desc to print_desc.
! 	(debug_event::get_desc): Convert to...
! 	(debug_event::print_desc): ...this.
! 	(precanned_custom_event::get_desc): Convert to...
! 	(precanned_custom_event::print_desc): ...this.
! 	(statement_event::get_desc): Convert to...
! 	(statement_event::print_desc): ...this.
! 	(region_creation_event_memory_space::get_desc): Convert to...
! 	(region_creation_event_memory_space::print_desc): ...this.
! 	(region_creation_event_capacity::get_desc): Convert to...
! 	(region_creation_event_capacity::print_desc): ...this.
! 	(region_creation_event_allocation_size::get_desc): Convert to...
! 	(region_creation_event_allocation_size::print_desc): ...this.
! 	(region_creation_event_debug::get_desc): Convert to...
! 	(region_creation_event_debug::print_desc): ...this.
! 	(function_entry_event::get_desc): Convert to...
! 	(function_entry_event::print_desc): ...this.
! 	(state_change_event::get_desc): Convert to...
! 	(state_change_event::print_desc): ...this.
! 	(state_change_event::get_meaning): Update for change to
! 	pending_diagnostic::get_meaning_for_state_change.
! 	(superedge_event::should_filter_p): Convert from usage of get_desc
! 	to print_desc.
! 	(start_cfg_edge_event::get_desc): Convert to...
! 	(start_cfg_edge_event::print_desc): ...this.
! 	(call_event::get_desc): Convert to...
! 	(call_event::print_desc): ...this.
! 	(return_event::get_desc): Convert to...
! 	(return_event::print_desc): ...this.
! 	(start_consolidated_cfg_edges_event::get_desc): Convert to...
! 	(start_consolidated_cfg_edges_event::print_desc): ...this.
! 	(inlined_call_event::get_desc): Convert to...
! 	(inlined_call_event::print_desc): ...this.
! 	(setjmp_event::get_desc): Convert to...
! 	(setjmp_event::print_desc): ...this.
! 	(rewind_from_longjmp_event::get_desc): Convert to...
! 	(rewind_from_longjmp_event::print_desc): ...this.
! 	(rewind_to_setjmp_event::get_desc): Convert to...
! 	(rewind_to_setjmp_event::print_desc): ...this.
! 	(warning_event::get_desc): Convert to...
! 	(warning_event::print_desc): ...this.
! 	* checker-event.h: Convert the various "get_desc" vfunc decls to
! 	"print_desc".
! 	* checker-path.cc (checker_path::dump): Convert to usage of
! 	checker_event::print_desc.
! 	(checker_path::debug): Convert to debug form of
! 	checker_event::get_desc.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::prune_interproc_events): Likewise.
! 	(diagnostic_manager::prune_system_headers): Likewise.
! 	* engine.cc (call_summary_edge_info::get_desc): Convert to...
! 	(call_summary_edge_info::print_desc): ...this.
! 	(stale_jmp_buf::describe_final_event): Update for change to
! 	this vfunc.
! 	(tainted_args_function_custom_event::get_desc): Convert to...
! 	(tainted_args_function_custom_event::print_desc): ...this.
! 	(tainted_args_field_custom_event::get_desc): Convert to...
! 	(tainted_args_field_custom_event::print_desc): ...this.
! 	(tainted_args_callback_custom_event::get_desc): Convert to...
! 	(tainted_args_callback_custom_event::print_desc): ...this.
! 	(jump_through_null::describe_final_event): Update for change to
! 	this vfunc.
! 	* infinite-loop.cc (perpetual_start_cfg_edge_event::get_desc):
! 	Convert to...
! 	(perpetual_start_cfg_edge_event::print_desc): ...this.
! 	(looping_back_event::get_desc): Convert to...
! 	(looping_back_event::print_desc): ...this.
! 	(looping_back_event::describe_final_event): Update for change to
! 	this vfunc.
! 	* infinite-recursion.cc (class infinite_recursion_diagnostic):
! 	Update for changes to pending_diagnostic.
! 	* kf.cc (class putenv_of_auto_var): Likewise.
! 	(kf_realloc::impl_call_post): Update for changes to call_info.
! 	(kf_strchr::impl_call_post): Likewise.
! 	(kf_strncpy::impl_call_post): Likewise.
! 	(kf_strstr::impl_call_post): Likewise.
! 	(class kf_strtok::undefined_behavior): Update for changes to
! 	pending_diagnostic.
! 	(class strtok_call_info): Update for changes to call_info.
! 	* pending-diagnostic.cc (evdesc::event_desc::formatted_print):
! 	Delete.
! 	* pending-diagnostic.h (struct event_desc): Delete.
! 	(struct state_change): Drop event_desc base class.
! 	(struct call_with_state): Likewise.
! 	(struct return_of_state): Likewise.
! 	(struct final_event): Likewise.
! 	(pending_event::describe_state_change): Convert return
! 	type from label_text to bool.  Add "pp" param and either print to
! 	it and return true, or return false.  Do the latter for the base
! 	class implementation.
! 	(pending_event::describe_call_with_state): Likewise.
! 	(pending_event::describe_return_of_state): Likewise.
! 	(pending_event::describe_final_event): Likewise.
! 	* region-model.cc
! 	(poisoned_value_diagnostic::describe_final_event): Update for
! 	change to this vfunc.
! 	(shift_count_negative_diagnostic::describe_final_event): Likewise.
! 	(shift_count_overflow_diagnostic::describe_final_event): Likewise.
! 	(ptrdiff_region_creation_event::get_desc): Convert to...
! 	(ptrdiff_region_creation_event::print_desc): ...this.
! 	(undefined_ptrdiff_diagnostic::describe_final_event): Update for
! 	change to this vfunc.
! 	(write_to_const_diagnostic::describe_final_event): Likewise.
! 	(write_to_string_literal_diagnostic::describe_final_event):
! 	Likewise.
! 	(dubious_allocation_size::describe_final_event): Likewise.
! 	(null_terminator_check_event::get_desc): Convert to...
! 	(null_terminator_check_event::print_desc): ...this.
! 	(float_as_size_arg::describe_final_event): Update for change to
! 	this vfunc.
! 	(exposure_through_uninit_copy::describe_final_event): Likewise.
! 	* sm-fd.cc: Include "diagnostic-core.h".  Update throughout for
! 	changes to pending_diagnostic vfuncs.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* varargs.cc: Likewise.
! 
! 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
! 	    Gaius Mulley  <gaiusmod2@gmail.com>
! 
! 	PR other/116613
! 	* analyzer-logging.cc: Add #define INCLUDE_MEMORY
! 	(logger::logger): Update for m_pp becoming a unique_ptr.
! 	(logger::~logger): Likewise.
! 	(logger::log_va_partial): Likewise.
! 	(logger::end_log_line): Likewise.
! 	* analyzer-logging.h (logger::get_printer): Likewise.
! 	(logger::m_pp): Convert to a unique_ptr.
! 	* analyzer.cc (make_label_text): Use
! 	diagnostic_context::clone_printer and use unique_ptr.
! 	(make_label_text_n): Likewise.
! 	* bar-chart.cc: Add #define INCLUDE_MEMORY
! 	* pending-diagnostic.cc (evdesc::event_desc::formatted_print):
! 	Use diagnostic_context::clone_printer and use unique_ptr.
! 	* sm-malloc.cc (sufficiently_similar_p): Likewise.
! 	* supergraph.cc (supergraph::dump_dot_to_file): Likewise.
! 
! 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* program-point.cc (function_point::print_source_line): Replace
! 	call to diagnostic_show_locus with a call to
! 	diagnostic_source_print_policy::print.
! 
! 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* kf-analyzer.cc: Include "pretty-print-markup.h".
! 	(kf_analyzer_dump_escaped::impl_call_pre): Defer colorization
! 	choices by eliminating the construction of a intermediate string,
! 	replacing it with a new pp_element subclass via "%e".
! 
! 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* access-diagram.cc (access_range::dump): Simplify using
! 	tree_dump_pretty_printer.
! 	* call-details.cc (call_details::dump): Likewise.
! 	* call-summary.cc (call_summary::dump): Likewise.
! 	(call_summary_replay::dump): Likewise.
! 	* checker-event.cc (checker_event::debug): Likewise.
! 	* constraint-manager.cc (range::dump): Likewise.
! 	(bounded_range::dump): Likewise.
! 	(bounded_ranges::dump): Likewise.
! 	(constraint_manager::dump): Likewise.
! 	* engine.cc (exploded_node::dump): Likewise.
! 	(exploded_path::dump): Likewise.
! 	* program-point.cc (program_point::dump): Likewise.
! 	* program-state.cc (extrinsic_state::dump_to_file): Likewise.
! 	(sm_state_map::dump): Likewise.
! 	(program_state::dump_to_file): Likewise.
! 	* ranges.cc (symbolic_byte_offset::dump): Likewise.
! 	(symbolic_byte_range::dump): Likewise.
! 	* record-layout.cc (record_layout::dump): Likewise.
! 	* region-model-reachability.cc (reachable_regions::dump):
! 	Likewise.
! 	* region-model.cc (region_to_value_map::dump): Likewise.
! 	(region_model::dump): Likewise.
! 	(model_merger::dump): Likewise.
! 	* region.cc (region_offset::dump): Likewise.
! 	(region::dump): Likewise.
! 	* sm-malloc.cc (deallocator_set::dump): Likewise.
! 	* store.cc (uncertainty_t::dump): Likewise.
! 	(binding_key::dump): Likewise.
! 	(bit_range::dump): Likewise.
! 	(byte_range::dump): Likewise.
! 	(binding_map::dump): Likewise.
! 	(binding_cluster::dump): Likewise.
! 	(store::dump): Likewise.
! 	* supergraph.cc (superedge::dump): Likewise.
! 	* svalue.cc (svalue::dump): Likewise.
! 
! 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* diagnostic-manager.cc (diagnostic_manager::emit_saved_diagnostic):
! 	Remove remove redundant 'pp'.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* access-diagram.cc (access_range::dump): Rename
! 	diagnostic_context's "printer" field to "m_printer".
! 	* analyzer-language.cc (on_finish_translation_unit): Likewise.
! 	* analyzer.cc (make_label_text): Likewise.
! 	(make_label_text_n): Likewise.
! 	* call-details.cc (call_details::dump): Likewise.
! 	* call-summary.cc (call_summary::dump): Likewise.
! 	(call_summary_replay::dump): Likewise.
! 	* checker-event.cc (checker_event::debug): Likewise.
! 	* constraint-manager.cc (range::dump): Likewise.
! 	(bounded_range::dump): Likewise.
! 	(bounded_ranges::dump): Likewise.
! 	(constraint_manager::dump): Likewise.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::emit_saved_diagnostic): Likewise.
! 	* engine.cc (exploded_node::dump): Likewise.
! 	(exploded_path::dump): Likewise.
! 	(run_checkers): Likewise.
! 	* kf-analyzer.cc (kf_analyzer_dump_escaped::impl_call_pre):
! 	Likewise.
! 	* pending-diagnostic.cc (evdesc::event_desc::formatted_print):
! 	Likewise.
! 	* program-point.cc (function_point::print_source_line): Likewise.
! 	(program_point::dump): Likewise.
! 	* program-state.cc (extrinsic_state::dump_to_file): Likewise.
! 	(sm_state_map::dump): Likewise.
! 	(program_state::dump_to_file): Likewise.
! 	* ranges.cc (symbolic_byte_offset::dump): Likewise.
! 	(symbolic_byte_range::dump): Likewise.
! 	* region-model-reachability.cc (reachable_regions::dump): Likewise.
! 	* region-model.cc (region_to_value_map::dump): Likewise.
! 	(region_model::dump): Likewise.
! 	(model_merger::dump): Likewise.
! 	* region.cc (region_offset::dump): Likewise.
! 	(region::dump): Likewise.
! 	* sm-malloc.cc (deallocator_set::dump): Likewise.
! 	(sufficiently_similar_p): Likewise.
! 	* store.cc (uncertainty_t::dump): Likewise.
! 	(binding_key::dump): Likewise.
! 	(binding_map::dump): Likewise.
! 	(binding_cluster::dump): Likewise.
! 	(store::dump): Likewise.
! 	* supergraph.cc (supergraph::dump_dot_to_file): Likewise.
! 	(superedge::dump): Likewise.
! 	* svalue.cc (svalue::dump): Likewise.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-summary.cc
! 	(call_summary_replay::convert_region_from_summary_1): Drop unused
! 	local "summary_cast_reg"
! 
! 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer-logging.cc (logger::logger): Prefix all output_buffer
! 	fields with "m_".
! 
! 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc (maybe_add_sarif_properties): Update setting
! 	of "original_fndecl" to use typesafe unique_ptr variant of
! 	json::object::set.
! 
! 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-string.cc (call_string::to_json): Avoid naked "new".
! 	* constraint-manager.cc (bounded_range::set_json_attr): Likewise.
! 	(equiv_class::to_json): Likewise.
! 	(constraint::to_json): Likewise.
! 	(bounded_ranges_constraint::to_json): Likewise.
! 	* diagnostic-manager.cc (saved_diagnostic::to_json): Likewise.
! 	(saved_diagnostic::maybe_add_sarif_properties): Likewise.
! 	* engine.cc (exploded_node::to_json): Likewise.
! 	(exploded_edge::to_json): Likewise.
! 	* program-point.cc (program_point::to_json): Likewise.
! 	* program-state.cc (program_state::to_json): Likewise.
! 	* sm.cc (state_machine::to_json): Likewise.
! 	* store.cc (binding_cluster::to_json): Likewise.
! 	(store::to_json): Likewise.
! 	* supergraph.cc (supernode::to_json): Likewise.
! 	(superedge::to_json): Likewise.
! 
! 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* supergraph.cc (supernode::to_json): Avoid naked "new" by using
! 	json::array::append_string.
! 	(supernode::to_json): Likewise.
! 
! 2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>
  
  	* diagnostic-manager.cc (saved_diagnostic::saved_diagnostic):
  	Change NULL to nullptr.
***************
*** 14,32 ****
  	* infinite-recursion.cc: Likewise.
  	* varargs.cc (va_list_state_machine::on_leak): Likewise.
  
! 2024-07-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	Backported from master:
! 	2024-05-15  David Malcolm  <dmalcolm@redhat.com>
  
  	PR analyzer/114899
  	* access-diagram.cc
  	(written_svalue_spatial_item::get_label_string): Bulletproof
  	against SSA_NAME_VAR being null.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
--- 536,1044 ----
  	* infinite-recursion.cc: Likewise.
  	* varargs.cc (va_list_state_machine::on_leak): Likewise.
  
! 2024-07-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::add_events_for_eedge): Pass sm_ctxt by
! 	reference.
! 	* engine.cc (impl_region_model_context::on_condition): Likewise.
! 	(impl_region_model_context::on_bounded_ranges): Likewise.
! 	(impl_region_model_context::on_phi): Likewise.
! 	(exploded_node::on_stmt): Likewise.
! 	* sm-fd.cc: Update all uses of sm_context * to sm_context &.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-pattern-test.cc: Likewise.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* sm.h: Likewise.
! 	* varargs.cc: Likewise.
! 
! 2024-07-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/115724
! 	* kf.cc (register_known_functions): Add __error_alias and
! 	__error_at_line_alias.
! 
! 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.h (checker_event::fndecl): Drop "final" and
! 	"override", converting from a vfunc implementation to a plain
! 	accessor.
! 	* checker-path.cc (checker_path::same_function_p): New.
! 	* checker-path.h (checker_path::same_function_p): New decl.
! 
! 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-path.h: Include "simple-diagnostic-path.h".
! 
! 2024-06-18  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* constraint-manager.cc (equiv_class::make_dump_widget): Change
! 	return type to match return value and do not use std::move on
! 	return value.
! 	(bounded_ranges_constraint::make_dump_widget): Likewise.
! 	(constraint_manager::make_dump_widget): Likewise.
! 	* constraint-manager.h (equiv_class::make_dump_widget): Change
! 	return type.
! 	(bounded_ranges_constraint::make_dump_widget): Likewise.
! 	(constraint_manager::make_dump_widget): Likewise.
! 	* program-state.cc (sm_state_map::make_dump_widget): Likewise.
! 	(program_state::make_dump_widget): Likewise.
! 	* program-state.h (sm_state_map::make_dump_widget): Likewise.
! 	(program_state::make_dump_widget): Likewise.
! 	* region-model.cc (region_to_value_map::make_dump_widget): Likewise.
! 	(region_model::make_dump_widget): Likewise.
! 	* region-model.h (region_to_value_map::make_dump_widget): Likewise.
! 	(region_model::make_dump_widget): Likewise.
! 	* region.cc (region::make_dump_widget): Likewise.
! 	* region.h (region::make_dump_widget): Likewise.
! 	* store.cc (binding_cluster::make_dump_widget): Likewise.
! 	(store::make_dump_widget): Likewise.
! 	* store.h (binding_cluster::make_dump_widget): Likewise.
! 	(store::make_dump_widget): Likewise.
! 	* svalue.cc (svalue::make_dump_widget): Likewise.
! 	* svalue.h (svalue::make_dump_widget): Likewise.
! 
! 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc (access_range::dump): Update for fields of
! 	pretty_printer becoming private.
! 	* call-details.cc (call_details::dump): Likewise.
! 	* call-summary.cc (call_summary::dump): Likewise.
! 	(call_summary_replay::dump): Likewise.
! 	* checker-event.cc (checker_event::debug): Likewise.
! 	* constraint-manager.cc (range::dump): Likewise.
! 	(bounded_range::dump): Likewise.
! 	(constraint_manager::dump): Likewise.
! 	* engine.cc (exploded_node::dump): Likewise.
! 	(exploded_path::dump): Likewise.
! 	(exploded_path::dump_to_file): Likewise.
! 	* feasible-graph.cc (feasible_graph::dump_feasible_path): Likewise.
! 	* program-point.cc (program_point::dump): Likewise.
! 	* program-state.cc (extrinsic_state::dump_to_file): Likewise.
! 	(sm_state_map::dump): Likewise.
! 	(program_state::dump_to_file): Likewise.
! 	* ranges.cc (symbolic_byte_offset::dump): Likewise.
! 	(symbolic_byte_range::dump): Likewise.
! 	* record-layout.cc (record_layout::dump): Likewise.
! 	* region-model-reachability.cc (reachable_regions::dump): Likewise.
! 	* region-model.cc (region_to_value_map::dump): Likewise.
! 	(region_model::dump): Likewise.
! 	(model_merger::dump): Likewise.
! 	* region-model.h (one_way_id_map<T>::dump): Likewise.
! 	* region.cc (region_offset::dump): Likewise.
! 	(region::dump): Likewise.
! 	* sm-malloc.cc (deallocator_set::dump): Likewise.
! 	* store.cc (uncertainty_t::dump): Likewise.
! 	(binding_key::dump): Likewise.
! 	(bit_range::dump): Likewise.
! 	(byte_range::dump): Likewise.
! 	(binding_map::dump): Likewise.
! 	(binding_cluster::dump): Likewise.
! 	(store::dump): Likewise.
! 	* supergraph.cc (supergraph::dump_dot_to_file): Likewise.
! 	(superedge::dump): Likewise.
! 	* svalue.cc (svalue::dump): Likewise.
! 
! 2024-06-08  Roger Sayle  <roger@nextmovesoftware.com>
! 
! 	* constraint-manager.cc (equiv_class::make_dump_widget): Use
! 	std::move to return a std::unique_ptr.
! 	(bounded_ranges_constraint::make_dump_widget): Likewise.
! 	(constraint_manager::make_dump_widget): Likewise.
! 	* program-state.cc (sm_state_map::make_dump_widget): Likewise.
! 	(program_state::make_dump_widget): Likewise.
! 	* region-model.cc (region_to_value_map::make_dump_widget): Likewise.
! 	(region_model::make_dump_widget): Likewise.
! 	* region.cc (region::make_dump_widget): Likewise.
! 	* store.cc (binding_cluster::make_dump_widget): Likewise.
! 	(store::make_dump_widget): Likewise.
! 	* svalue.cc (svalue::make_dump_widget): Likewise.
! 
! 2024-06-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (impl_region_model_context::on_state_leak): Pass nullptr
! 	to get_representative_path_var.
! 	* region-model.cc (region_model::get_representative_path_var_1):
! 	Add logger param and use it in both overloads.
! 	(region_model::get_representative_path_var): Likewise.
! 	(region_model::get_representative_tree): Likewise.
! 	(selftest::test_get_representative_path_var): Pass nullptr to
! 	get_representative_path_var.
! 	* region-model.h (region_model::get_representative_tree): Add
! 	optional logger param to both overloads.
! 	(region_model::get_representative_path_var): Add logger param to
! 	both overloads.
! 	(region_model::get_representative_path_var_1): Likewise.
! 	* store.cc (binding_cluster::get_representative_path_vars): Add
! 	logger param and use it.
! 	(store::get_representative_path_vars): Likewise.
! 	* store.h (binding_cluster::get_representative_path_vars): Add
! 	logger param.
! 	(store::get_representative_path_vars): Likewise.
! 
! 2024-06-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-summary.cc
! 	(call_summary_replay::convert_region_from_summary_1): Update
! 	for removal of cast_region::m_original_region.
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_initial_value): Likewise.
! 	* region-model.cc (region_model::get_store_value): Likewise.
! 	* region.cc (region::get_base_region): Likewise.
! 	(region::descendent_of_p): Likewise.
! 	(region::maybe_get_frame_region): Likewise.
! 	(region::get_memory_space): Likewise.
! 	(region::calc_offset): Likewise.
! 	(cast_region::accept): Delete.
! 	(cast_region::dump_to_pp): Update for removal of
! 	cast_region::m_original_region.
! 	(cast_region::add_dump_widget_children): Delete.
! 	* region.h (struct cast_region::key_t): Rename "original_region"
! 	to "parent".
! 	(cast_region::cast_region): Likewise.  Update for removal of
! 	cast_region::m_original_region.
! 	(cast_region::accept): Delete.
! 	(cast_region::add_dump_widget_children): Delete.
! 	(cast_region::get_original_region): Delete.
! 	(cast_region::m_original_region): Delete.
! 	* sm-taint.cc (region_model::check_region_for_taint): Remove
! 	special-casing for RK_CAST.
! 
! 2024-06-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105892
! 	* analyzer.opt (Wanalyzer-undefined-behavior-ptrdiff): New option.
! 	* analyzer.opt.urls: Regenerate.
! 	* region-model.cc (class undefined_ptrdiff_diagnostic): New.
! 	(check_for_invalid_ptrdiff): New.
! 	(region_model::get_gassign_result): Call it for POINTER_DIFF_EXPR.
! 
! 2024-06-01  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/106203
! 	* checker-event.h: Include "analyzer/event-loc-info.h".
! 	(struct event_loc_info): Move to its own header file.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::emit_saved_diagnostic): Move creation of
! 	event_loc_info here from add_final_event, and if we have a
! 	stmt_finder, call its update_event_loc_info method.
! 	* engine.cc (leak_stmt_finder::update_event_loc_info): New.
! 	(exploded_node::detect_leaks): Likewise.
! 	(exploded_node::detect_leaks): Pass nullptr as call_stmt arg to
! 	region_model::pop_frame.
! 	* event-loc-info.h: New file, with content taken from
! 	checker-event.h.
! 	* exploded-graph.h (stmt_finder::update_event_loc_info): New pure
! 	virtual function.
! 	* infinite-loop.cc (infinite_loop_diagnostic::add_final_event):
! 	Update for change to vfunc signature.
! 	* infinite-recursion.cc
! 	(infinite_recursion_diagnostic::add_final_event): Likewise.
! 	* pending-diagnostic.cc (pending_diagnostic::add_final_event):
! 	Pass in the event_loc_info from the caller, rather than generating
! 	it from a gimple stmt and enode.
! 	* pending-diagnostic.h (pending_diagnostic::add_final_event):
! 	Likewise.
! 	* region-model.cc (region_model::on_longjmp): Pass nullptr as
! 	call_stmt arg to region_model::pop_frame.
! 	(region_model::update_for_return_gcall): Likewise, but pass
! 	call_stmt.
! 	(class caller_context): New.
! 	(region_model::pop_frame): Add "call_stmt" argument.  Use it
! 	and the frame_region with a caller_context when setting
! 	result_dst_reg's value so that any diagnostic is reported at the
! 	call stmt in the caller.
! 	(selftest::test_stack_frames): Pass nullptr as call_stmt arg to
! 	region_model::pop_frame.
! 	(selftest::test_alloca): Likewise.
! 	* region-model.h (region_model::pop_frame): Add "call_stmt"
! 	argument.
! 
! 2024-05-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* infinite-loop.cc (looping_back_event::get_desc): Fix unused
! 	parameter warning introduced by me in r15-636-g770657d02c986c.
! 
! 2024-05-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-details.cc: Define INCLUDE_VECTOR.
! 	* call-info.cc: Likewise.
! 	* call-summary.cc: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-path.cc: Likewise.
! 	* complexity.cc: Likewise.
! 	* constraint-manager.cc: Likewise.
! 	(bounded_range::make_dump_widget): New.
! 	(bounded_ranges::add_to_dump_widget): New.
! 	(equiv_class::make_dump_widget): New.
! 	(constraint::make_dump_widget): New.
! 	(bounded_ranges_constraint::make_dump_widget): New.
! 	(constraint_manager::make_dump_widget): New.
! 	* constraint-manager.h (bounded_range::make_dump_widget): New
! 	decl.
! 	(bounded_ranges::add_to_dump_widget): New decl.
! 	(equiv_class::make_dump_widget): New decl.
! 	(constraint::make_dump_widget): New decl.
! 	(bounded_ranges_constraint::make_dump_widget): New decl.
! 	(constraint_manager::make_dump_widget): New decl.
! 	* diagnostic-manager.cc: Define INCLUDE_VECTOR.
! 	* engine.cc: Likewise.  Include "text-art/dump.h".
! 	(setjmp_svalue::print_dump_widget_label): New.
! 	(setjmp_svalue::add_dump_widget_children): New.
! 	(exploded_graph::dump_exploded_nodes): Use text_art::dump_to_file
! 	for -fdump-analyzer-exploded-nodes-2 and
! 	-fdump-analyzer-exploded-nodes-3.  Fix overlong line.
! 	* feasible-graph.cc: Define INCLUDE_VECTOR.
! 	* infinite-recursion.cc: Likewise.
! 	* kf-analyzer.cc: Likewise.
! 	* kf-lang-cp.cc: Likewise.
! 	* kf.cc: Likewise.
! 	* known-function-manager.cc: Likewise.
! 	* pending-diagnostic.cc: Likewise.
! 	* program-point.cc: Likewise.
! 	* program-state.cc: Likewise.  Include "text-art/tree-widget" and
! 	"text-art/dump.h".
! 	(sm_state_map::make_dump_widget): New.
! 	(program_state::dump): New.
! 	(program_state::make_dump_widget): New.
! 	* program-state.h: Include "text-art/widget.h".
! 	(sm_state_map::make_dump_widget): New decl.
! 	(program_state::dump): New decl.
! 	(program_state::make_dump_widget): New decl.
! 	* ranges.cc: Define INCLUDE_VECTOR.
! 	* record-layout.cc: Likewise.
! 	* region-model-asm.cc: Likewise.
! 	* region-model-manager.cc: Likewise.
! 	* region-model-reachability.cc: Likewise.
! 	* region-model.cc: Likewise.  Include "text-art/tree-widget.h".
! 	(region_to_value_map::make_dump_widget): New.
! 	(region_model::dump): New.
! 	(region_model::make_dump_widget): New.
! 	(selftest::test_dump): Add test of dump_to_pp<region_model>.
! 	* region-model.h: Include "text-art/widget.h" and
! 	"text-art/dump.h".
! 	(region_to_value_map::make_dump_widget): New decl.
! 	(region_model::dump): New decl.
! 	(region_model::make_dump_widget): New decl.
! 	* region.cc: Define INCLUDE_VECTOR and include "text-art/dump.h".
! 	(region::dump): New.
! 	(region::make_dump_widget): New.
! 	(region::add_dump_widget_children): New.
! 	(frame_region::print_dump_widget_label): New.
! 	(globals_region::print_dump_widget_label): New.
! 	(code_region::print_dump_widget_label): New.
! 	(function_region::print_dump_widget_label): New.
! 	(label_region::print_dump_widget_label): New.
! 	(stack_region::print_dump_widget_label): New.
! 	(heap_region::print_dump_widget_label): New.
! 	(root_region::print_dump_widget_label): New.
! 	(thread_local_region::print_dump_widget_label): New.
! 	(symbolic_region::print_dump_widget_label): New.
! 	(symbolic_region::add_dump_widget_children): New.
! 	(decl_region::print_dump_widget_label): New.
! 	(field_region::print_dump_widget_label): New.
! 	(element_region::print_dump_widget_label): New.
! 	(element_region::add_dump_widget_children): New.
! 	(offset_region::print_dump_widget_label): New.
! 	(offset_region::add_dump_widget_children): New.
! 	(sized_region::print_dump_widget_label): New.
! 	(sized_region::add_dump_widget_children): New.
! 	(cast_region::print_dump_widget_label): New.
! 	(cast_region::add_dump_widget_children): New.
! 	(heap_allocated_region::print_dump_widget_label): New.
! 	(alloca_region::print_dump_widget_label): New.
! 	(string_region::print_dump_widget_label): New.
! 	(bit_range_region::print_dump_widget_label): New.
! 	(var_arg_region::print_dump_widget_label): New.
! 	(errno_region::print_dump_widget_label): New.
! 	(private_region::print_dump_widget_label): New.
! 	(unknown_region::print_dump_widget_label): New.
! 	* region.h: Include "text-art/widget.h".
! 	(region::dump): New decl.
! 	(region::make_dump_widget): New decl.
! 	(region::add_dump_widget_children): New decl.
! 	(frame_region::print_dump_widget_label): New decl.
! 	(globals_region::print_dump_widget_label): New decl.
! 	(code_region::print_dump_widget_label): New decl.
! 	(function_region::print_dump_widget_label): New decl.
! 	(label_region::print_dump_widget_label): New decl.
! 	(stack_region::print_dump_widget_label): New decl.
! 	(heap_region::print_dump_widget_label): New decl.
! 	(root_region::print_dump_widget_label): New decl.
! 	(thread_local_region::print_dump_widget_label): New decl.
! 	(symbolic_region::print_dump_widget_label): New decl.
! 	(symbolic_region::add_dump_widget_children): New decl.
! 	(decl_region::print_dump_widget_label): New decl.
! 	(field_region::print_dump_widget_label): New decl.
! 	(element_region::print_dump_widget_label): New decl.
! 	(element_region::add_dump_widget_children): New decl.
! 	(offset_region::print_dump_widget_label): New decl.
! 	(offset_region::add_dump_widget_children): New decl.
! 	(sized_region::print_dump_widget_label): New decl.
! 	(sized_region::add_dump_widget_children): New decl.
! 	(cast_region::print_dump_widget_label): New decl.
! 	(cast_region::add_dump_widget_children): New decl.
! 	(heap_allocated_region::print_dump_widget_label): New decl.
! 	(alloca_region::print_dump_widget_label): New decl.
! 	(string_region::print_dump_widget_label): New decl.
! 	(bit_range_region::print_dump_widget_label): New decl.
! 	(var_arg_region::print_dump_widget_label): New decl.
! 	(errno_region::print_dump_widget_label): New decl.
! 	(private_region::print_dump_widget_label): New decl.
! 	(unknown_region::print_dump_widget_label): New decl.
! 	* sm-fd.cc: Define INCLUDE_VECTOR.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-pattern-test.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* sm.cc: Likewise.
! 	* state-purge.cc: Likewise.
! 	* store.cc: Likewise.  Include "text-art/tree-widget.h".
! 	(add_binding_to_tree_widget): New.
! 	(binding_map::add_to_tree_widget): New.
! 	(binding_cluster::make_dump_widget): New.
! 	(store::make_dump_widget): New.
! 	* store.h: Include "text-art/tree-widget.h".
! 	(binding_map::add_to_tree_widget): New decl.
! 	(binding_cluster::make_dump_widget): New decl.
! 	(store::make_dump_widget): New decl.
! 	* svalue.cc: Define INCLUDE_VECTOR.  Include "make-unique.h" and
! 	"text-art/dump.h".
! 	(svalue::dump): New.
! 	(svalue::make_dump_widget): New.
! 	(region_svalue::print_dump_widget_label): New.
! 	(region_svalue::add_dump_widget_children): New.
! 	(constant_svalue::print_dump_widget_label): New.
! 	(constant_svalue::add_dump_widget_children): New.
! 	(unknown_svalue::print_dump_widget_label): New.
! 	(unknown_svalue::add_dump_widget_children): New.
! 	(poisoned_svalue::print_dump_widget_label): New.
! 	(poisoned_svalue::add_dump_widget_children): New.
! 	(initial_svalue::print_dump_widget_label): New.
! 	(initial_svalue::add_dump_widget_children): New.
! 	(unaryop_svalue::print_dump_widget_label): New.
! 	(unaryop_svalue::add_dump_widget_children): New.
! 	(binop_svalue::print_dump_widget_label): New.
! 	(binop_svalue::add_dump_widget_children): New.
! 	(sub_svalue::print_dump_widget_label): New.
! 	(sub_svalue::add_dump_widget_children): New.
! 	(repeated_svalue::print_dump_widget_label): New.
! 	(repeated_svalue::add_dump_widget_children): New.
! 	(bits_within_svalue::print_dump_widget_label): New.
! 	(bits_within_svalue::add_dump_widget_children): New.
! 	(widening_svalue::print_dump_widget_label): New.
! 	(widening_svalue::add_dump_widget_children): New.
! 	(placeholder_svalue::print_dump_widget_label): New.
! 	(placeholder_svalue::add_dump_widget_children): New.
! 	(unmergeable_svalue::print_dump_widget_label): New.
! 	(unmergeable_svalue::add_dump_widget_children): New.
! 	(compound_svalue::print_dump_widget_label): New.
! 	(compound_svalue::add_dump_widget_children): New.
! 	(conjured_svalue::print_dump_widget_label): New.
! 	(conjured_svalue::add_dump_widget_children): New.
! 	(asm_output_svalue::print_dump_widget_label): New.
! 	(asm_output_svalue::add_dump_widget_children): New.
! 	(const_fn_result_svalue::print_dump_widget_label): New.
! 	(const_fn_result_svalue::add_dump_widget_children): New.
! 	* svalue.h: Include "text-art/widget.h".  Add "using
! 	text_art::dump_widget_info".
! 	(svalue::dump): New decl.
! 	(svalue::make_dump_widget): New decl.
! 	(svalue::print_dump_widget_label): New decl.
! 	(svalue::print_dump_widget_label): New decl.
! 	(svalue::add_dump_widget_children): New decl.
! 	(region_svalue::print_dump_widget_label): New decl.
! 	(region_svalue::add_dump_widget_children): New decl.
! 	(constant_svalue::print_dump_widget_label): New decl.
! 	(constant_svalue::add_dump_widget_children): New decl.
! 	(unknown_svalue::print_dump_widget_label): New decl.
! 	(unknown_svalue::add_dump_widget_children): New decl.
! 	(poisoned_svalue::print_dump_widget_label): New decl.
! 	(poisoned_svalue::add_dump_widget_children): New decl.
! 	(initial_svalue::print_dump_widget_label): New decl.
! 	(initial_svalue::add_dump_widget_children): New decl.
! 	(unaryop_svalue::print_dump_widget_label): New decl.
! 	(unaryop_svalue::add_dump_widget_children): New decl.
! 	(binop_svalue::print_dump_widget_label): New decl.
! 	(binop_svalue::add_dump_widget_children): New decl.
! 	(sub_svalue::print_dump_widget_label): New decl.
! 	(sub_svalue::add_dump_widget_children): New decl.
! 	(repeated_svalue::print_dump_widget_label): New decl.
! 	(repeated_svalue::add_dump_widget_children): New decl.
! 	(bits_within_svalue::print_dump_widget_label): New decl.
! 	(bits_within_svalue::add_dump_widget_children): New decl.
! 	(widening_svalue::print_dump_widget_label): New decl.
! 	(widening_svalue::add_dump_widget_children): New decl.
! 	(placeholder_svalue::print_dump_widget_label): New decl.
! 	(placeholder_svalue::add_dump_widget_children): New decl.
! 	(unmergeable_svalue::print_dump_widget_label): New decl.
! 	(unmergeable_svalue::add_dump_widget_children): New decl.
! 	(compound_svalue::print_dump_widget_label): New decl.
! 	(compound_svalue::add_dump_widget_children): New decl.
! 	(conjured_svalue::print_dump_widget_label): New decl.
! 	(conjured_svalue::add_dump_widget_children): New decl.
! 	(asm_output_svalue::print_dump_widget_label): New decl.
! 	(asm_output_svalue::add_dump_widget_children): New decl.
! 	(const_fn_result_svalue::print_dump_widget_label): New decl.
! 	(const_fn_result_svalue::add_dump_widget_children): New decl.
! 	* trimmed-graph.cc: Define INCLUDE_VECTOR.
! 	* varargs.cc: Likewise.
! 
! 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc: Include "selftest-tree.h".
! 
! 2024-05-17  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.h (checker_event::connect_to_next_event_p):
! 	Implement new diagnostic_event::connect_to_next_event_p vfunc.
! 	(start_cfg_edge_event::connect_to_next_event_p): Likewise.
! 	(start_consolidated_cfg_edges_event::connect_to_next_event_p):
! 	Likewise.
! 	* infinite-loop.cc (class looping_back_event): New subclass.
! 	(infinite_loop_diagnostic::add_final_event): Use it.
! 
! 2024-05-15  David Malcolm  <dmalcolm@redhat.com>
  
  	PR analyzer/114899
  	* access-diagram.cc
  	(written_svalue_spatial_item::get_label_string): Bulletproof
  	against SSA_NAME_VAR being null.
  
! 2024-05-03  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/111475
! 	* analyzer.cc (is_special_named_call_p): Add "look_in_std" param.
! 	(is_std_function_p): Make non-static.
! 	* analyzer.h (is_special_named_call_p): Add optional "look_in_std"
! 	param.
! 	(is_std_function_p): New decl.
! 	* engine.cc (stmt_requires_new_enode_p): Look for both "signal"
! 	and "std::signal".
! 	* kf.cc (register_known_functions): Add various "std::" copies
! 	of the known functions.
! 	* known-function-manager.cc
! 	(known_function_manager::~known_function_manager): Clean up
! 	m_std_ns_map_id_to_kf.
! 	(known_function_manager::add_std_ns): New.
! 	(known_function_manager::get_match): Also look for known "std::"
! 	functions.
! 	(known_function_manager::get_by_identifier_in_std_ns): New.
! 	* known-function-manager.h
! 	(known_function_manager::add_std_ns): New decl.
! 	(known_function_manager::get_by_identifier_in_std_ns): New decl.
! 	(known_function_manager::m_std_ns_map_id_to_kf): New field.
! 	* sm-file.cc (register_known_file_functions): Add various "std::"
! 	copies of the known functions.
! 	* sm-malloc.cc (malloc_state_machine::on_stmt): Handle
! 	"std::realloc".
! 	* sm-signal.cc (signal_unsafe_p): Consider "std::" copies of the
! 	functions as also being async-signal-unsafe.
! 	(signal_state_machine::on_stmt): Consider "std::signal".
  
  2024-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
***************
*** 12125,12133 ****
  2019-12-13  David Malcolm  <dmalcolm@redhat.com>
  
  	* Initial creation
- 
  
! Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 13137,13144 ----
  2019-12-13  David Malcolm  <dmalcolm@redhat.com>
  
  	* Initial creation
  
! Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/analyzer/access-diagram.cc gcc-15.1.0/gcc/analyzer/access-diagram.cc
*** gcc-14.2.0/gcc/analyzer/access-diagram.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/access-diagram.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  
  #include "config.h"
  #define INCLUDE_ALGORITHM
- #define INCLUDE_MEMORY
  #define INCLUDE_MAP
  #define INCLUDE_SET
  #define INCLUDE_VECTOR
--- 19,24 ----
*************** access_range::dump_to_pp (pretty_printer
*** 544,556 ****
  DEBUG_FUNCTION void
  access_range::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  void
--- 543,551 ----
  DEBUG_FUNCTION void
  access_range::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
  void
diff -Nrcpad gcc-14.2.0/gcc/analyzer/access-diagram.h gcc-15.1.0/gcc/analyzer/access-diagram.h
*** gcc-14.2.0/gcc/analyzer/access-diagram.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/access-diagram.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analysis-plan.cc gcc-15.1.0/gcc/analyzer/analysis-plan.cc
*** gcc-14.2.0/gcc/analyzer/analysis-plan.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analysis-plan.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analysis-plan.h gcc-15.1.0/gcc/analyzer/analysis-plan.h
*** gcc-14.2.0/gcc/analyzer/analysis-plan.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analysis-plan.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-language.cc gcc-15.1.0/gcc/analyzer/analyzer-language.cc
*** gcc-14.2.0/gcc/analyzer/analyzer-language.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-language.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
*************** on_finish_translation_unit (const transl
*** 120,126 ****
    log_user the_logger (NULL);
    if (logfile)
      the_logger.set_logger (new logger (logfile, 0, 0,
! 				       *global_dc->printer));
    stash_named_constants (the_logger.get_logger (), tu);
  
    run_callbacks (the_logger.get_logger (), tu);
--- 119,125 ----
    log_user the_logger (NULL);
    if (logfile)
      the_logger.set_logger (new logger (logfile, 0, 0,
! 				       *global_dc->get_reference_printer ()));
    stash_named_constants (the_logger.get_logger (), tu);
  
    run_callbacks (the_logger.get_logger (), tu);
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-language.h gcc-15.1.0/gcc/analyzer/analyzer-language.h
*** gcc-14.2.0/gcc/analyzer/analyzer-language.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-language.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-logging.cc gcc-15.1.0/gcc/analyzer/analyzer-logging.cc
*** gcc-14.2.0/gcc/analyzer/analyzer-logging.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-logging.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** logger::logger (FILE *f_out,
*** 50,61 ****
    m_log_refcount_changes (false),
    m_pp (reference_pp.clone ())
  {
!   pp_show_color (m_pp) = 0;
!   pp_buffer (m_pp)->stream = f_out;
  
    /* %qE in logs for SSA_NAMEs should show the ssa names, rather than
       trying to prettify things by showing the underlying var.  */
!   pp_format_decoder (m_pp) = default_tree_printer;
  
    /* Begin the log by writing the GCC version.  */
    print_version (f_out, "", false);
--- 50,61 ----
    m_log_refcount_changes (false),
    m_pp (reference_pp.clone ())
  {
!   pp_show_color (m_pp.get ()) = 0;
!   pp_buffer (m_pp.get ())->m_stream = f_out;
  
    /* %qE in logs for SSA_NAMEs should show the ssa names, rather than
       trying to prettify things by showing the underlying var.  */
!   pp_format_decoder (m_pp.get ()) = default_tree_printer;
  
    /* Begin the log by writing the GCC version.  */
    print_version (f_out, "", false);
*************** logger::~logger ()
*** 70,76 ****
    /* This should be the last message emitted.  */
    log ("%s", __PRETTY_FUNCTION__);
    gcc_assert (m_refcount == 0);
-   delete m_pp;
  }
  
  /* Increment the reference count of the logger.  */
--- 70,75 ----
*************** void
*** 145,159 ****
  logger::log_va_partial (const char *fmt, va_list *ap)
  {
    text_info text (fmt, ap, 0);
!   pp_format (m_pp, &text);
!   pp_output_formatted_text (m_pp);
  }
  
  void
  logger::end_log_line ()
  {
!   pp_flush (m_pp);
!   pp_clear_output_area (m_pp);
    fprintf (m_f_out, "\n");
    fflush (m_f_out);
  }
--- 144,158 ----
  logger::log_va_partial (const char *fmt, va_list *ap)
  {
    text_info text (fmt, ap, 0);
!   pp_format (m_pp.get (), &text);
!   pp_output_formatted_text (m_pp.get ());
  }
  
  void
  logger::end_log_line ()
  {
!   pp_flush (m_pp.get ());
!   pp_clear_output_area (m_pp.get ());
    fprintf (m_f_out, "\n");
    fflush (m_f_out);
  }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-logging.h gcc-15.1.0/gcc/analyzer/analyzer-logging.h
*** gcc-14.2.0/gcc/analyzer/analyzer-logging.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-logging.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class logger
*** 57,63 ****
    void inc_indent () { m_indent_level++; }
    void dec_indent () { m_indent_level--; }
  
!   pretty_printer *get_printer () const { return m_pp; }
    FILE *get_file () const { return m_f_out; }
  
  private:
--- 57,63 ----
    void inc_indent () { m_indent_level++; }
    void dec_indent () { m_indent_level--; }
  
!   pretty_printer *get_printer () const { return m_pp.get (); }
    FILE *get_file () const { return m_f_out; }
  
  private:
*************** private:
*** 67,73 ****
    FILE *m_f_out;
    int m_indent_level;
    bool m_log_refcount_changes;
!   pretty_printer *m_pp;
  };
  
  /* The class log_scope is an RAII-style class intended to make
--- 67,73 ----
    FILE *m_f_out;
    int m_indent_level;
    bool m_log_refcount_changes;
!   std::unique_ptr<pretty_printer> m_pp;
  };
  
  /* The class log_scope is an RAII-style class intended to make
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-pass.cc gcc-15.1.0/gcc/analyzer/analyzer-pass.cc
*** gcc-14.2.0/gcc/analyzer/analyzer-pass.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-pass.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Integration of the analyzer with GCC's pass manager.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Integration of the analyzer with GCC's pass manager.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "context.h"
--- 19,24 ----
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-selftests.cc gcc-15.1.0/gcc/analyzer/analyzer-selftests.cc
*** gcc-14.2.0/gcc/analyzer/analyzer-selftests.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-selftests.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Selftest support for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Selftest support for the analyzer.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer-selftests.h gcc-15.1.0/gcc/analyzer/analyzer-selftests.h
*** gcc-14.2.0/gcc/analyzer/analyzer-selftests.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer-selftests.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Selftests for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Selftests for the analyzer.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer.cc gcc-15.1.0/gcc/analyzer/analyzer.cc
*** gcc-14.2.0/gcc/analyzer/analyzer.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
*************** along with GCC; see the file COPYING3.
*** 32,37 ****
--- 31,37 ----
  #include "tree-pretty-print.h"
  #include "diagnostic-event-id.h"
  #include "tree-dfa.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** get_diagnostic_tree_for_gassign (const g
*** 223,237 ****
     This is intended for debugging the analyzer rather than serialization and
     thus is a string (or null, for NULL_TREE).  */
  
! json::value *
  tree_to_json (tree node)
  {
    if (!node)
!     return new json::literal (json::JSON_NULL);
  
    pretty_printer pp;
    dump_generic_node (&pp, node, 0, TDF_VOPS|TDF_MEMSYMS, false);
!   return new json::string (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for EVENT_ID.
--- 223,237 ----
     This is intended for debugging the analyzer rather than serialization and
     thus is a string (or null, for NULL_TREE).  */
  
! std::unique_ptr<json::value>
  tree_to_json (tree node)
  {
    if (!node)
!     return ::make_unique<json::literal> (json::JSON_NULL);
  
    pretty_printer pp;
    dump_generic_node (&pp, node, 0, TDF_VOPS|TDF_MEMSYMS, false);
!   return ::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for EVENT_ID.
*************** tree_to_json (tree node)
*** 239,279 ****
     thus is a string matching those seen in event messags (or null,
     for unknown).  */
  
! json::value *
  diagnostic_event_id_to_json (const diagnostic_event_id_t &event_id)
  {
    if (event_id.known_p ())
      {
        pretty_printer pp;
        pp_printf (&pp, "%@", &event_id);
!       return new json::string (pp_formatted_text (&pp));
      }
    else
!     return new json::literal (json::JSON_NULL);
  }
  
  /* Generate a JSON value for OFFSET.
     This is intended for debugging the analyzer rather than serialization and
     thus is a string.  */
  
! json::value *
  bit_offset_to_json (const bit_offset_t &offset)
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return new json::string (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for OFFSET.
     This is intended for debugging the analyzer rather than serialization and
     thus is a string.  */
  
! json::value *
  byte_offset_to_json (const byte_offset_t &offset)
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return new json::string (pp_formatted_text (&pp));
  }
  
  /* Workaround for lack of const-correctness of ssa_default_def.  */
--- 239,279 ----
     thus is a string matching those seen in event messags (or null,
     for unknown).  */
  
! std::unique_ptr<json::value>
  diagnostic_event_id_to_json (const diagnostic_event_id_t &event_id)
  {
    if (event_id.known_p ())
      {
        pretty_printer pp;
        pp_printf (&pp, "%@", &event_id);
!       return ::make_unique<json::string> (pp_formatted_text (&pp));
      }
    else
!     return ::make_unique<json::literal> (json::JSON_NULL);
  }
  
  /* Generate a JSON value for OFFSET.
     This is intended for debugging the analyzer rather than serialization and
     thus is a string.  */
  
! std::unique_ptr<json::value>
  bit_offset_to_json (const bit_offset_t &offset)
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return ::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for OFFSET.
     This is intended for debugging the analyzer rather than serialization and
     thus is a string.  */
  
! std::unique_ptr<json::value>
  byte_offset_to_json (const byte_offset_t &offset)
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return ::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* Workaround for lack of const-correctness of ssa_default_def.  */
*************** get_ssa_default_def (const function &fun
*** 293,303 ****
     is_named_call_p should be used instead, using a fndecl from
     get_fndecl_for_call; this function should only be used for special cases
     where it's not practical to get at the region model, or for special
!    analyzer functions such as __analyzer_dump.  */
  
  bool
  is_special_named_call_p (const gcall *call, const char *funcname,
! 			 unsigned int num_args)
  {
    gcc_assert (funcname);
  
--- 293,305 ----
     is_named_call_p should be used instead, using a fndecl from
     get_fndecl_for_call; this function should only be used for special cases
     where it's not practical to get at the region model, or for special
!    analyzer functions such as __analyzer_dump.
! 
!    If LOOK_IN_STD is true, then also look for within std:: for the name.  */
  
  bool
  is_special_named_call_p (const gcall *call, const char *funcname,
! 			 unsigned int num_args, bool look_in_std)
  {
    gcc_assert (funcname);
  
*************** is_special_named_call_p (const gcall *ca
*** 305,311 ****
    if (!fndecl)
      return false;
  
!   return is_named_call_p (fndecl, funcname, call, num_args);
  }
  
  /* Helper function for checkers.  Is FNDECL an extern fndecl at file scope
--- 307,318 ----
    if (!fndecl)
      return false;
  
!   if (is_named_call_p (fndecl, funcname, call, num_args))
!     return true;
!   if (look_in_std)
!     if (is_std_named_call_p (fndecl, funcname, call, num_args))
!       return true;
!   return false;
  }
  
  /* Helper function for checkers.  Is FNDECL an extern fndecl at file scope
*************** is_named_call_p (const_tree fndecl, cons
*** 344,350 ****
     Compare with cp/typeck.cc: decl_in_std_namespace_p, but this doesn't
     rely on being the C++ FE (or handle inline namespaces inside of std).  */
  
! static inline bool
  is_std_function_p (const_tree fndecl)
  {
    tree name_decl = DECL_NAME (fndecl);
--- 351,357 ----
     Compare with cp/typeck.cc: decl_in_std_namespace_p, but this doesn't
     rely on being the C++ FE (or handle inline namespaces inside of std).  */
  
! bool
  is_std_function_p (const_tree fndecl)
  {
    tree name_decl = DECL_NAME (fndecl);
*************** get_user_facing_name (const gcall *call)
*** 487,497 ****
  label_text
  make_label_text (bool can_colorize, const char *fmt, ...)
  {
!   pretty_printer *pp = global_dc->printer->clone ();
!   pp_clear_output_area (pp);
  
    if (!can_colorize)
!     pp_show_color (pp) = false;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
--- 494,504 ----
  label_text
  make_label_text (bool can_colorize, const char *fmt, ...)
  {
!   std::unique_ptr<pretty_printer> pp (global_dc->clone_printer ());
!   pp_clear_output_area (pp.get ());
  
    if (!can_colorize)
!     pp_show_color (pp.get ()) = false;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
*************** make_label_text (bool can_colorize, cons
*** 500,512 ****
    va_start (ap, fmt);
  
    text_info ti (_(fmt), &ap, 0, NULL, &rich_loc);
!   pp_format (pp, &ti);
!   pp_output_formatted_text (pp);
  
    va_end (ap);
  
!   label_text result = label_text::take (xstrdup (pp_formatted_text (pp)));
!   delete pp;
    return result;
  }
  
--- 507,518 ----
    va_start (ap, fmt);
  
    text_info ti (_(fmt), &ap, 0, NULL, &rich_loc);
!   pp_format (pp.get (), &ti);
!   pp_output_formatted_text (pp.get ());
  
    va_end (ap);
  
!   label_text result = label_text::take (xstrdup (pp_formatted_text (pp.get ())));
    return result;
  }
  
*************** make_label_text_n (bool can_colorize, un
*** 517,527 ****
  		   const char *singular_fmt,
  		   const char *plural_fmt, ...)
  {
!   pretty_printer *pp = global_dc->printer->clone ();
!   pp_clear_output_area (pp);
  
    if (!can_colorize)
!     pp_show_color (pp) = false;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
--- 523,533 ----
  		   const char *singular_fmt,
  		   const char *plural_fmt, ...)
  {
!   std::unique_ptr<pretty_printer> pp (global_dc->clone_printer ());
!   pp_clear_output_area (pp.get ());
  
    if (!can_colorize)
!     pp_show_color (pp.get ()) = false;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
*************** make_label_text_n (bool can_colorize, un
*** 533,545 ****
  
    text_info ti (fmt, &ap, 0, NULL, &rich_loc);
  
!   pp_format (pp, &ti);
!   pp_output_formatted_text (pp);
  
    va_end (ap);
  
!   label_text result = label_text::take (xstrdup (pp_formatted_text (pp)));
!   delete pp;
    return result;
  }
  
--- 539,551 ----
  
    text_info ti (fmt, &ap, 0, NULL, &rich_loc);
  
!   pp_format (pp.get (), &ti);
!   pp_output_formatted_text (pp.get ());
  
    va_end (ap);
  
!   label_text result
!     = label_text::take (xstrdup (pp_formatted_text (pp.get ())));
    return result;
  }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer.h gcc-15.1.0/gcc/analyzer/analyzer.h
*** gcc-14.2.0/gcc/analyzer/analyzer.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** extern void log_stashed_constants (logge
*** 416,431 ****
  
  extern FILE *get_or_create_any_logfile ();
  
! extern json::value *
  tree_to_json (tree node);
  
! extern json::value *
  diagnostic_event_id_to_json (const diagnostic_event_id_t &);
  
! extern json::value *
  bit_offset_to_json (const bit_offset_t &offset);
  
! extern json::value *
  byte_offset_to_json (const byte_offset_t &offset);
  
  extern tristate
--- 416,431 ----
  
  extern FILE *get_or_create_any_logfile ();
  
! extern std::unique_ptr<json::value>
  tree_to_json (tree node);
  
! extern std::unique_ptr<json::value>
  diagnostic_event_id_to_json (const diagnostic_event_id_t &);
  
! extern std::unique_ptr<json::value>
  bit_offset_to_json (const bit_offset_t &offset);
  
! extern std::unique_ptr<json::value>
  byte_offset_to_json (const byte_offset_t &offset);
  
  extern tristate
*************** extern tree remove_ssa_names (tree expr)
*** 448,457 ****
  } // namespace ana
  
  extern bool is_special_named_call_p (const gcall *call, const char *funcname,
! 				     unsigned int num_args);
  extern bool is_named_call_p (const_tree fndecl, const char *funcname);
  extern bool is_named_call_p (const_tree fndecl, const char *funcname,
  			     const gcall *call, unsigned int num_args);
  extern bool is_std_named_call_p (const_tree fndecl, const char *funcname);
  extern bool is_std_named_call_p (const_tree fndecl, const char *funcname,
  				 const gcall *call, unsigned int num_args);
--- 448,459 ----
  } // namespace ana
  
  extern bool is_special_named_call_p (const gcall *call, const char *funcname,
! 				     unsigned int num_args,
! 				     bool look_in_std = false);
  extern bool is_named_call_p (const_tree fndecl, const char *funcname);
  extern bool is_named_call_p (const_tree fndecl, const char *funcname,
  			     const gcall *call, unsigned int num_args);
+ extern bool is_std_function_p (const_tree fndecl);
  extern bool is_std_named_call_p (const_tree fndecl, const char *funcname);
  extern bool is_std_named_call_p (const_tree fndecl, const char *funcname,
  				 const gcall *call, unsigned int num_args);
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer.opt gcc-15.1.0/gcc/analyzer/analyzer.opt
*** gcc-14.2.0/gcc/analyzer/analyzer.opt	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer.opt	Fri Apr 25 08:18:00 2025
***************
*** 1,6 ****
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2025 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Wanalyzer-tainted-size
*** 222,227 ****
--- 222,231 ----
  Common Var(warn_analyzer_tainted_size) Init(1) Warning
  Warn about code paths in which an unsanitized value is used as a size.
  
+ Wanalyzer-undefined-behavior-ptrdiff
+ Common Var(warn_analyzer_undefined_behavior_ptrdiff) Init(1) Warning
+ Warn about code paths in which pointer subtraction involves undefined behavior.
+ 
  Wanalyzer-undefined-behavior-strtok
  Common Var(warn_analyzer_undefined_behavior_strtok) Init(1) Warning
  Warn about code paths in which a call is made to strtok with undefined behavior.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/analyzer.opt.urls gcc-15.1.0/gcc/analyzer/analyzer.opt.urls
*** gcc-14.2.0/gcc/analyzer/analyzer.opt.urls	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/analyzer.opt.urls	Fri Apr 25 08:18:00 2025
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 114,119 ****
--- 114,122 ----
  Wanalyzer-tainted-size
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size)
  
+ Wanalyzer-undefined-behavior-ptrdiff
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-ptrdiff)
+ 
  Wanalyzer-undefined-behavior-strtok
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-strtok)
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/bar-chart.cc gcc-15.1.0/gcc/analyzer/bar-chart.cc
*** gcc-14.2.0/gcc/analyzer/bar-chart.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/bar-chart.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/bar-chart.h gcc-15.1.0/gcc/analyzer/bar-chart.h
*** gcc-14.2.0/gcc/analyzer/bar-chart.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/bar-chart.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/bounds-checking.cc gcc-15.1.0/gcc/analyzer/bounds-checking.cc
*** gcc-14.2.0/gcc/analyzer/bounds-checking.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/bounds-checking.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Bounds-checking of reads and writes to memory regions.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Bounds-checking of reads and writes to memory regions.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 18,24 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
--- 18,23 ----
*************** public:
*** 410,429 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
      if (m_byte_bound || !m_bit_bound)
        {
  	byte_range out_of_bounds_bytes (0, 0);
  	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
        }
!     return describe_final_event_as_bits (ev);
    }
  
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
--- 409,433 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_byte_bound || !m_bit_bound)
        {
  	byte_range out_of_bounds_bytes (0, 0);
  	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  {
! 	    describe_final_event_as_bytes (pp, out_of_bounds_bytes);
! 	    return true;
! 	  }
        }
!     describe_final_event_as_bits (pp);
!     return true;
    }
  
!   void
!   describe_final_event_as_bytes (pretty_printer &pp,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
*************** public:
*** 436,462 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
! 				     " ends at byte %E", start_buf, m_diag_arg,
! 				     m_byte_bound);
! 	return ev.formatted_print ("out-of-bounds write at byte %s but region"
! 				   " ends at byte %E", start_buf,
! 				   m_byte_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write from byte %s till"
! 				     " byte %s but %qE ends at byte %E",
! 				     start_buf, end_buf, m_diag_arg,
! 				     m_byte_bound);
! 	return ev.formatted_print ("out-of-bounds write from byte %s till"
! 				   " byte %s but region ends at byte %E",
! 				   start_buf, end_buf, m_byte_bound);
        }
    }
  
!   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
--- 440,473 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at byte %s but %qE"
! 		     " ends at byte %E", start_buf, m_diag_arg,
! 		     m_byte_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at byte %s but region"
! 		     " ends at byte %E", start_buf,
! 		     m_byte_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from byte %s till"
! 		     " byte %s but %qE ends at byte %E",
! 		     start_buf, end_buf, m_diag_arg,
! 		     m_byte_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from byte %s till"
! 		     " byte %s but region ends at byte %E",
! 		     start_buf, end_buf, m_byte_bound);
        }
    }
  
!   void
!   describe_final_event_as_bits (pretty_printer &pp)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
*************** public:
*** 468,490 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write at bit %s but %qE"
! 				     " ends at bit %E", start_buf, m_diag_arg,
! 				     m_bit_bound);
! 	return ev.formatted_print ("out-of-bounds write at bit %s but region"
! 				   " ends at bit %E", start_buf,
! 				   m_bit_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write from bit %s till"
! 				     " bit %s but %qE ends at bit %E",
! 				     start_buf, end_buf, m_diag_arg,
! 				     m_bit_bound);
! 	return ev.formatted_print ("out-of-bounds write from bit %s till"
! 				   " bit %s but region ends at bit %E",
! 				   start_buf, end_buf, m_bit_bound);
        }
    }
  
--- 479,507 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at bit %s but %qE"
! 		     " ends at bit %E", start_buf, m_diag_arg,
! 		     m_bit_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at bit %s but region"
! 		     " ends at bit %E", start_buf,
! 		     m_bit_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from bit %s till"
! 		     " bit %s but %qE ends at bit %E",
! 		     start_buf, end_buf, m_diag_arg,
! 		     m_bit_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from bit %s till"
! 		     " bit %s but region ends at bit %E",
! 		     start_buf, end_buf, m_bit_bound);
        }
    }
  
*************** public:
*** 576,595 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
      if (m_byte_bound || !m_bit_bound)
        {
  	byte_range out_of_bounds_bytes (0, 0);
  	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
        }
!     return describe_final_event_as_bits (ev);
    }
  
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
--- 593,617 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_byte_bound || !m_bit_bound)
        {
  	byte_range out_of_bounds_bytes (0, 0);
  	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  {
! 	    describe_final_event_as_bytes (pp, out_of_bounds_bytes);
! 	    return true;
! 	  }
        }
!     describe_final_event_as_bits (pp);
!     return true;
    }
  
!   void
!   describe_final_event_as_bytes (pretty_printer &pp,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
*************** public:
*** 602,628 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read at byte %s but %qE"
! 				     " ends at byte %E", start_buf, m_diag_arg,
! 							 m_byte_bound);
! 	return ev.formatted_print ("out-of-bounds read at byte %s but region"
! 				   " ends at byte %E", start_buf,
! 						       m_byte_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read from byte %s till"
! 				     " byte %s but %qE ends at byte %E",
! 				     start_buf, end_buf, m_diag_arg,
! 				     m_byte_bound);
! 	return ev.formatted_print ("out-of-bounds read from byte %s till"
! 				   " byte %s but region ends at byte %E",
! 				   start_buf, end_buf, m_byte_bound);
        }
    }
  
!   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
--- 624,657 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at byte %s but %qE"
! 		     " ends at byte %E", start_buf, m_diag_arg,
! 		     m_byte_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at byte %s but region"
! 		     " ends at byte %E", start_buf,
! 		     m_byte_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from byte %s till"
! 		     " byte %s but %qE ends at byte %E",
! 		     start_buf, end_buf, m_diag_arg,
! 		     m_byte_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from byte %s till"
! 		     " byte %s but region ends at byte %E",
! 		     start_buf, end_buf, m_byte_bound);
        }
    }
  
!   void
!   describe_final_event_as_bits (pretty_printer &pp)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
*************** public:
*** 634,656 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read at bit %s but %qE"
! 				     " ends at bit %E", start_buf, m_diag_arg,
! 							 m_bit_bound);
! 	return ev.formatted_print ("out-of-bounds read at bit %s but region"
! 				   " ends at bit %E", start_buf,
! 						       m_bit_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read from bit %s till"
! 				     " bit %s but %qE ends at bit %E",
! 				     start_buf, end_buf, m_diag_arg,
! 				     m_bit_bound);
! 	return ev.formatted_print ("out-of-bounds read from bit %s till"
! 				   " bit %s but region ends at bit %E",
! 				   start_buf, end_buf, m_bit_bound);
        }
    }
  
--- 663,691 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at bit %s but %qE"
! 		     " ends at bit %E", start_buf, m_diag_arg,
! 		     m_bit_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at bit %s but region"
! 		     " ends at bit %E", start_buf,
! 		     m_bit_bound);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from bit %s till"
! 		     " bit %s but %qE ends at bit %E",
! 		     start_buf, end_buf, m_diag_arg,
! 		     m_bit_bound);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from bit %s till"
! 		     " bit %s but region ends at bit %E",
! 		     start_buf, end_buf, m_bit_bound);
        }
    }
  
*************** public:
*** 695,711 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
      byte_range out_of_bounds_bytes (0, 0);
      if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!     return describe_final_event_as_bits (ev);
    }
  
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
--- 730,749 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      byte_range out_of_bounds_bytes (0, 0);
      if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       describe_final_event_as_bytes (pp, out_of_bounds_bytes);
!     else
!       describe_final_event_as_bits (pp);
!     return true;
    }
  
!   void
!   describe_final_event_as_bytes (pretty_printer &pp,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
*************** public:
*** 718,743 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
! 				     " starts at byte 0",
! 				     start_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds write at byte %s but region"
! 				   " starts at byte 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write from byte %s till"
! 				     " byte %s but %qE starts at byte 0",
! 				     start_buf, end_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds write from byte %s till"
! 				   " byte %s but region starts at byte 0",
! 				   start_buf, end_buf);;
        }
    }
  
!   label_text
!   describe_final_event_as_bits (const evdesc::final_event &ev)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
--- 756,787 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at byte %s but %qE"
! 		     " starts at byte 0",
! 		     start_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at byte %s but region"
! 		     " starts at byte 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from byte %s till"
! 		     " byte %s but %qE starts at byte 0",
! 		     start_buf, end_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from byte %s till"
! 		     " byte %s but region starts at byte 0",
! 		     start_buf, end_buf);;
        }
    }
  
!   void
!   describe_final_event_as_bits (pretty_printer &pp)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
*************** public:
*** 749,769 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write at bit %s but %qE"
! 				     " starts at bit 0",
! 				     start_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds write at bit %s but region"
! 				   " starts at bit 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds write from bit %s till"
! 				     " bit %s but %qE starts at bit 0",
! 				     start_buf, end_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds write from bit %s till"
! 				   " bit %s but region starts at bit 0",
! 				   start_buf, end_buf);;
        }
    }
  
--- 793,819 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at bit %s but %qE"
! 		     " starts at bit 0",
! 		     start_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write at bit %s but region"
! 		     " starts at bit 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from bit %s till"
! 		     " bit %s but %qE starts at bit 0",
! 		     start_buf, end_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds write from bit %s till"
! 		     " bit %s but region starts at bit 0",
! 		     start_buf, end_buf);;
        }
    }
  
*************** public:
*** 807,823 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
      byte_range out_of_bounds_bytes (0, 0);
      if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!     return describe_final_event_as_bits (ev);
    }
  
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
--- 857,876 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      byte_range out_of_bounds_bytes (0, 0);
      if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       describe_final_event_as_bytes (pp, out_of_bounds_bytes);
!     else
!       describe_final_event_as_bits (pp);
!     return true;
    }
  
!   void
!   describe_final_event_as_bytes (pretty_printer &pp,
  				 const byte_range &out_of_bounds_bytes)
    {
      byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
*************** public:
*** 830,854 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read at byte %s but %qE"
! 				     " starts at byte 0", start_buf,
! 							  m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds read at byte %s but region"
! 				  " starts at byte 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read from byte %s till"
! 				     " byte %s but %qE starts at byte 0",
! 				     start_buf, end_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds read from byte %s till"
! 				   " byte %s but region starts at byte 0",
! 				   start_buf, end_buf);;
        }
    }
  
!   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
--- 883,915 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at byte %s but %qE"
! 		     " starts at byte 0",
! 		     start_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at byte %s but region"
! 		     " starts at byte 0",
! 		     start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from byte %s till"
! 		     " byte %s but %qE starts at byte 0",
! 		     start_buf, end_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from byte %s till"
! 		     " byte %s but region starts at byte 0",
! 		     start_buf, end_buf);;
        }
    }
  
!   void
!   describe_final_event_as_bits (pretty_printer &pp)
    {
      bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
      bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
*************** public:
*** 860,880 ****
      if (start == end)
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read at bit %s but %qE"
! 				     " starts at bit 0", start_buf,
! 							  m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds read at bit %s but region"
! 				  " starts at bit 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  return ev.formatted_print ("out-of-bounds read from bit %s till"
! 				     " bit %s but %qE starts at bit 0",
! 				     start_buf, end_buf, m_diag_arg);
! 	return ev.formatted_print ("out-of-bounds read from bit %s till"
! 				   " bit %s but region starts at bit 0",
! 				   start_buf, end_buf);;
        }
    }
  
--- 921,947 ----
      if (start == end)
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at bit %s but %qE"
! 		     " starts at bit 0",
! 		     start_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read at bit %s but region"
! 		     " starts at bit 0", start_buf);
        }
      else
        {
  	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from bit %s till"
! 		     " bit %s but %qE starts at bit 0",
! 		     start_buf, end_buf, m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read from bit %s till"
! 		     " bit %s but region starts at bit 0",
! 		     start_buf, end_buf);;
        }
    }
  
*************** public:
*** 968,975 ****
      return warned;
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_offset)
        {
--- 1035,1043 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_offset)
        {
*************** public:
*** 985,1040 ****
  		  {
  		    /* Singular m_num_bytes.  */
  		    if (m_diag_arg)
! 		      return ev.formatted_print
! 			("write of %E byte at offset %qE exceeds %qE",
! 			 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      return ev.formatted_print
! 			("write of %E byte at offset %qE exceeds the buffer",
! 			 m_num_bytes, m_offset);
  		  }
  		else
  		  {
  		    /* Plural m_num_bytes.  */
  		    if (m_diag_arg)
! 		      return ev.formatted_print
! 			("write of %E bytes at offset %qE exceeds %qE",
! 			 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      return ev.formatted_print
! 			("write of %E bytes at offset %qE exceeds the buffer",
! 			 m_num_bytes, m_offset);
  		  }
  	      }
  	    else
  	      {
  		/* Known offset, known symbolic size.  */
  		if (m_diag_arg)
! 		  return ev.formatted_print
! 		    ("write of %qE bytes at offset %qE exceeds %qE",
! 		     m_num_bytes, m_offset, m_diag_arg);
  		else
! 		  return ev.formatted_print
! 		    ("write of %qE bytes at offset %qE exceeds the buffer",
! 		     m_num_bytes, m_offset);
  	      }
  	  }
  	else
  	  {
  	    /* Known offset, unknown size.  */
  	    if (m_diag_arg)
! 	      return ev.formatted_print ("write at offset %qE exceeds %qE",
! 					 m_offset, m_diag_arg);
  	    else
! 	      return ev.formatted_print ("write at offset %qE exceeds the"
! 					 " buffer", m_offset);
  	  }
        }
!     /* Unknown offset.  */
!     if (m_diag_arg)
!       return ev.formatted_print ("out-of-bounds write on %qE",
! 				 m_diag_arg);
!     return ev.formatted_print ("out-of-bounds write");
    }
  
    enum access_direction get_dir () const final override { return DIR_WRITE; }
--- 1053,1119 ----
  		  {
  		    /* Singular m_num_bytes.  */
  		    if (m_diag_arg)
! 		      pp_printf (&pp,
! 				 "write of %E byte at offset %qE exceeds %qE",
! 				 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      pp_printf (&pp,
! 				 "write of %E byte at offset %qE exceeds"
! 				 " the buffer",
! 				 m_num_bytes, m_offset);
  		  }
  		else
  		  {
  		    /* Plural m_num_bytes.  */
  		    if (m_diag_arg)
! 		      pp_printf (&pp,
! 				 "write of %E bytes at offset %qE exceeds %qE",
! 				 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      pp_printf (&pp,
! 				 "write of %E bytes at offset %qE exceeds"
! 				 " the buffer",
! 				 m_num_bytes, m_offset);
  		  }
  	      }
  	    else
  	      {
  		/* Known offset, known symbolic size.  */
  		if (m_diag_arg)
! 		  pp_printf (&pp,
! 			     "write of %qE bytes at offset %qE exceeds %qE",
! 			     m_num_bytes, m_offset, m_diag_arg);
  		else
! 		  pp_printf (&pp,
! 			     "write of %qE bytes at offset %qE exceeds"
! 			     " the buffer",
! 			     m_num_bytes, m_offset);
  	      }
  	  }
  	else
  	  {
  	    /* Known offset, unknown size.  */
  	    if (m_diag_arg)
! 	      pp_printf (&pp,
! 			 "write at offset %qE exceeds %qE",
! 			 m_offset, m_diag_arg);
  	    else
! 	      pp_printf (&pp,
! 			 "write at offset %qE exceeds the buffer",
! 			 m_offset);
  	  }
        }
!     else
!       {
! 	/* Unknown offset.  */
! 	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds write on %qE",
! 		     m_diag_arg);
! 	else
! 	  pp_printf (&pp, "out-of-bounds write");
!       }
!     return true;
    }
  
    enum access_direction get_dir () const final override { return DIR_WRITE; }
*************** public:
*** 1082,1089 ****
      return warned;
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_offset)
        {
--- 1161,1169 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_offset)
        {
*************** public:
*** 1099,1154 ****
  		  {
  		    /* Singular m_num_bytes.  */
  		    if (m_diag_arg)
! 		      return ev.formatted_print
! 			("read of %E byte at offset %qE exceeds %qE",
! 			 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      return ev.formatted_print
! 			("read of %E byte at offset %qE exceeds the buffer",
! 			 m_num_bytes, m_offset);
  		  }
  		else
  		  {
  		    /* Plural m_num_bytes.  */
  		    if (m_diag_arg)
! 		      return ev.formatted_print
! 			("read of %E bytes at offset %qE exceeds %qE",
! 			 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      return ev.formatted_print
! 			("read of %E bytes at offset %qE exceeds the buffer",
! 			 m_num_bytes, m_offset);
  		  }
  	      }
  	    else
  	      {
  		/* Known offset, known symbolic size.  */
  		if (m_diag_arg)
! 		  return ev.formatted_print
! 		    ("read of %qE bytes at offset %qE exceeds %qE",
! 		     m_num_bytes, m_offset, m_diag_arg);
  		else
! 		  return ev.formatted_print
! 		    ("read of %qE bytes at offset %qE exceeds the buffer",
! 		     m_num_bytes, m_offset);
  	      }
  	  }
  	else
  	  {
  	    /* Known offset, unknown size.  */
  	    if (m_diag_arg)
! 	      return ev.formatted_print ("read at offset %qE exceeds %qE",
! 					 m_offset, m_diag_arg);
  	    else
! 	      return ev.formatted_print ("read at offset %qE exceeds the"
! 					 " buffer", m_offset);
  	  }
        }
!     /* Unknown offset.  */
!     if (m_diag_arg)
!       return ev.formatted_print ("out-of-bounds read on %qE",
! 				 m_diag_arg);
!     return ev.formatted_print ("out-of-bounds read");
    }
  
    enum access_direction get_dir () const final override { return DIR_READ; }
--- 1179,1246 ----
  		  {
  		    /* Singular m_num_bytes.  */
  		    if (m_diag_arg)
! 		      pp_printf (&pp,
! 				 "read of %E byte at offset %qE exceeds %qE",
! 				 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      pp_printf (&pp,
! 				 "read of %E byte at offset %qE exceeds"
! 				 " the buffer",
! 				 m_num_bytes, m_offset);
  		  }
  		else
  		  {
  		    /* Plural m_num_bytes.  */
  		    if (m_diag_arg)
! 		      pp_printf (&pp,
! 				 "read of %E bytes at offset %qE exceeds %qE",
! 				 m_num_bytes, m_offset, m_diag_arg);
  		    else
! 		      pp_printf (&pp,
! 				 "read of %E bytes at offset %qE exceeds"
! 				 " the buffer",
! 				 m_num_bytes, m_offset);
  		  }
  	      }
  	    else
  	      {
  		/* Known offset, known symbolic size.  */
  		if (m_diag_arg)
! 		  pp_printf (&pp,
! 			     "read of %qE bytes at offset %qE exceeds %qE",
! 			     m_num_bytes, m_offset, m_diag_arg);
  		else
! 		  pp_printf (&pp,
! 			     "read of %qE bytes at offset %qE exceeds"
! 			     " the buffer",
! 			     m_num_bytes, m_offset);
  	      }
  	  }
  	else
  	  {
  	    /* Known offset, unknown size.  */
  	    if (m_diag_arg)
! 	      pp_printf (&pp,
! 			 "read at offset %qE exceeds %qE",
! 			 m_offset, m_diag_arg);
  	    else
! 	      pp_printf (&pp,
! 			 "read at offset %qE exceeds the buffer",
! 			 m_offset);
  	  }
        }
!     else
!       {
! 	/* Unknown offset.  */
! 	if (m_diag_arg)
! 	  pp_printf (&pp,
! 		     "out-of-bounds read on %qE",
! 		     m_diag_arg);
! 	else
! 	  pp_printf (&pp,
! 		     "out-of-bounds read");
!       }
!     return true;
    }
  
    enum access_direction get_dir () const final override { return DIR_READ; }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-details.cc gcc-15.1.0/gcc/analyzer/call-details.cc
*** gcc-14.2.0/gcc/analyzer/call-details.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-details.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** call_details::dump_to_pp (pretty_printer
*** 362,373 ****
  DEBUG_FUNCTION void
  call_details::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
-   pp_flush (&pp);
  }
  
  /* Get a conjured_svalue for this call for REG,
--- 362,369 ----
  DEBUG_FUNCTION void
  call_details::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
  }
  
  /* Get a conjured_svalue for this call for REG,
*************** public:
*** 469,479 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print
!       ("overlapping buffers passed as arguments to %qD",
!        m_fndecl);
    }
  
    void maybe_add_sarif_properties (sarif_object &result_obj)
--- 465,478 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "overlapping buffers passed as arguments to %qD",
! 	       m_fndecl);
!     return true;
    }
  
    void maybe_add_sarif_properties (sarif_object &result_obj)
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-details.h gcc-15.1.0/gcc/analyzer/call-details.h
*** gcc-14.2.0/gcc/analyzer/call-details.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-details.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-info.cc gcc-15.1.0/gcc/analyzer/call-info.cc
*** gcc-14.2.0/gcc/analyzer/call-info.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-info.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** custom_edge_info::update_state (program_
*** 74,87 ****
  
  /* class call_info : public custom_edge_info.  */
  
! /* Implementation of custom_edge_info::print vfunc for call_info:
!    use get_desc to get a label_text, and print it to PP.  */
  
  void
  call_info::print (pretty_printer *pp) const
  {
!   label_text desc (get_desc (pp_show_color (pp)));
!   pp_string (pp, desc.get ());
  }
  
  /* Implementation of custom_edge_info::add_events_to_path vfunc for
--- 74,86 ----
  
  /* class call_info : public custom_edge_info.  */
  
! /* Implementation of custom_edge_info::print vfunc for call_info.  */
  
  void
  call_info::print (pretty_printer *pp) const
  {
!   gcc_assert (pp);
!   print_desc (*pp);
  }
  
  /* Implementation of custom_edge_info::add_events_to_path vfunc for
*************** call_info::add_events_to_path (checker_p
*** 101,109 ****
        m_call_info (call_info)
      {}
  
!     label_text get_desc (bool can_colorize) const final override
      {
!       return m_call_info->get_desc (can_colorize);
      }
  
    private:
--- 100,108 ----
        m_call_info (call_info)
      {}
  
!     void print_desc (pretty_printer &pp) const final override
      {
!       m_call_info->print_desc (pp);
      }
  
    private:
*************** call_info::call_info (const call_details
*** 153,165 ****
  
  /* class succeed_or_fail_call_info : public call_info.  */
  
! label_text
! succeed_or_fail_call_info::get_desc (bool can_colorize) const
  {
    if (m_success)
!     return make_label_text (can_colorize, "when %qE succeeds", get_fndecl ());
    else
!     return make_label_text (can_colorize, "when %qE fails", get_fndecl ());
  }
  
  } // namespace ana
--- 152,164 ----
  
  /* class succeed_or_fail_call_info : public call_info.  */
  
! void
! succeed_or_fail_call_info::print_desc (pretty_printer &pp) const
  {
    if (m_success)
!     pp_printf (&pp, "when %qE succeeds", get_fndecl ());
    else
!     pp_printf (&pp, "when %qE fails", get_fndecl ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-info.h gcc-15.1.0/gcc/analyzer/call-info.h
*** gcc-14.2.0/gcc/analyzer/call-info.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-info.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 24,30 ****
  namespace ana {
  
  /* Subclass of custom_edge_info for an outcome of a call.
!    This is still abstract; the update_model and get_desc vfuncs must be
     implemented.  */
  
  class call_info : public custom_edge_info
--- 24,30 ----
  namespace ana {
  
  /* Subclass of custom_edge_info for an outcome of a call.
!    This is still abstract; the update_model and print_desc vfuncs must be
     implemented.  */
  
  class call_info : public custom_edge_info
*************** public:
*** 37,43 ****
    const gcall *get_call_stmt () const { return m_call_stmt; }
    tree get_fndecl () const { return m_fndecl; }
  
!   virtual label_text get_desc (bool can_colorize) const = 0;
  
    call_details get_call_details (region_model *model,
  				 region_model_context *ctxt) const;
--- 37,43 ----
    const gcall *get_call_stmt () const { return m_call_stmt; }
    tree get_fndecl () const { return m_fndecl; }
  
!   virtual void print_desc (pretty_printer &pp) const = 0;
  
    call_details get_call_details (region_model *model,
  				 region_model_context *ctxt) const;
*************** private:
*** 62,68 ****
  class succeed_or_fail_call_info : public call_info
  {
  public:
!   label_text get_desc (bool can_colorize) const final override;
  
  protected:
    succeed_or_fail_call_info (const call_details &cd, bool success)
--- 62,68 ----
  class succeed_or_fail_call_info : public call_info
  {
  public:
!   void print_desc (pretty_printer &pp) const final override;
  
  protected:
    succeed_or_fail_call_info (const call_details &cd, bool success)
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-string.cc gcc-15.1.0/gcc/analyzer/call-string.cc
*** gcc-14.2.0/gcc/analyzer/call-string.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-string.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Call stacks at program points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "pretty-print.h"
--- 19,24 ----
*************** along with GCC; see the file COPYING3.
*** 38,43 ****
--- 37,43 ----
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** call_string::print (pretty_printer *pp)
*** 103,123 ****
       "funcname" : str},
       ...for each element in the callstring].  */
  
! json::value *
  call_string::to_json () const
  {
!   json::array *arr = new json::array ();
  
    for (const call_string::element_t &e : m_elements)
      {
!       json::object *e_obj = new json::object ();
!       e_obj->set ("src_snode_idx",
! 		  new json::integer_number (e.m_callee->m_index));
!       e_obj->set ("dst_snode_idx",
! 		  new json::integer_number (e.m_caller->m_index));
!       e_obj->set ("funcname",
! 		  new json::string (function_name (e.m_caller->m_fun)));
!       arr->append (e_obj);
      }
  
    return arr;
--- 103,120 ----
       "funcname" : str},
       ...for each element in the callstring].  */
  
! std::unique_ptr<json::value>
  call_string::to_json () const
  {
!   auto arr = ::make_unique<json::array> ();
  
    for (const call_string::element_t &e : m_elements)
      {
!       auto e_obj = ::make_unique<json::object> ();
!       e_obj->set_integer ("src_snode_idx", e.m_callee->m_index);
!       e_obj->set_integer ("dst_snode_idx", e.m_caller->m_index);
!       e_obj->set_string ("funcname", function_name (e.m_caller->m_fun));
!       arr->append (std::move (e_obj));
      }
  
    return arr;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-string.h gcc-15.1.0/gcc/analyzer/call-string.h
*** gcc-14.2.0/gcc/analyzer/call-string.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-string.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Call stacks at program points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 72,78 ****
  
    void print (pretty_printer *pp) const;
  
!   json::value *to_json () const;
  
    bool empty_p () const { return m_elements.is_empty (); }
  
--- 72,78 ----
  
    void print (pretty_printer *pp) const;
  
!   std::unique_ptr<json::value> to_json () const;
  
    bool empty_p () const { return m_elements.is_empty (); }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/call-summary.cc gcc-15.1.0/gcc/analyzer/call-summary.cc
*** gcc-14.2.0/gcc/analyzer/call-summary.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/call-summary.cc	Fri Apr 25 08:18:00 2025
*************** along with GCC; see the file COPYING3.
*** 18,24 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 18,24 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** call_summary::dump (const extrinsic_stat
*** 145,156 ****
  		    FILE *fp,
  		    bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (ext_state, &pp, simple);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this object to stderr.  */
--- 145,152 ----
  		    FILE *fp,
  		    bool simple) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (ext_state, &pp, simple);
  }
  
  /* Dump a multiline representation of this object to stderr.  */
*************** call_summary_replay::convert_region_from
*** 723,737 ****
        break;
      case RK_CAST:
        {
! 	const cast_region *summary_cast_reg
! 	  = as_a <const cast_region *> (summary_reg);
! 	const region *summary_original_reg
! 	  = summary_cast_reg->get_original_region ();
! 	const region *caller_original_reg
! 	  = convert_region_from_summary (summary_original_reg);
! 	if (!caller_original_reg)
  	  return NULL;
! 	return mgr->get_cast_region (caller_original_reg,
  				     summary_reg->get_type ());
        }
        break;
--- 719,730 ----
        break;
      case RK_CAST:
        {
! 	const region *summary_parent_reg = summary_reg->get_parent_region ();
! 	const region *caller_parent_reg
! 	  = convert_region_from_summary (summary_parent_reg);
! 	if (!caller_parent_reg)
  	  return NULL;
! 	return mgr->get_cast_region (caller_parent_reg,
  				     summary_reg->get_type ());
        }
        break;
*************** call_summary_replay::dump_to_pp (pretty_
*** 887,898 ****
  void
  call_summary_replay::dump (FILE *fp, bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, simple);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this object to stderr.  */
--- 880,887 ----
  void
  call_summary_replay::dump (FILE *fp, bool simple) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, simple);
  }
  
  /* Dump a multiline representation of this object to stderr.  */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/checker-event.cc gcc-15.1.0/gcc/analyzer/checker-event.cc
*** gcc-14.2.0/gcc/analyzer/checker-event.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/checker-event.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** maybe_add_sarif_properties (sarif_object
*** 160,167 ****
    if (m_original_fndecl != m_effective_fndecl)
      {
        tree_logical_location logical_loc (m_original_fndecl);
!       props.set (PROPERTY_PREFIX "original_fndecl",
! 		 make_sarif_logical_location_object (logical_loc));
      }
    if (m_original_depth != m_effective_depth)
      props.set_integer (PROPERTY_PREFIX "original_depth", m_original_depth);
--- 160,168 ----
    if (m_original_fndecl != m_effective_fndecl)
      {
        tree_logical_location logical_loc (m_original_fndecl);
!       props.set<sarif_logical_location>
! 	(PROPERTY_PREFIX "original_fndecl",
! 	 make_sarif_logical_location_object (logical_loc));
      }
    if (m_original_depth != m_effective_depth)
      props.set_integer (PROPERTY_PREFIX "original_depth", m_original_depth);
*************** maybe_add_sarif_properties (sarif_object
*** 173,181 ****
  void
  checker_event::dump (pretty_printer *pp) const
  {
!   label_text event_desc (get_desc (false));
!   pp_printf (pp, "\"%s\" (depth %i",
! 	     event_desc.get (), m_effective_depth);
  
    if (m_effective_depth != m_original_depth)
      pp_printf (pp, " corrected from %i",
--- 174,182 ----
  void
  checker_event::dump (pretty_printer *pp) const
  {
!   pp_character (pp, '"');
!   print_desc (*pp);
!   pp_printf (pp, "\" (depth %i", m_effective_depth);
  
    if (m_effective_depth != m_original_depth)
      pp_printf (pp, " corrected from %i",
*************** checker_event::dump (pretty_printer *pp)
*** 186,193 ****
        if (m_effective_fndecl != m_original_fndecl)
  	pp_printf (pp, " corrected from %qE", m_original_fndecl);
      }
!   pp_printf (pp, ", m_loc=%x)",
! 	     get_location ());
  }
  
  /* Dump this event to stderr (for debugging/logging purposes).  */
--- 187,194 ----
        if (m_effective_fndecl != m_original_fndecl)
  	pp_printf (pp, " corrected from %qE", m_original_fndecl);
      }
!   pp_printf (pp, ", m_loc=%llx)",
! 	     (unsigned long long) get_location ());
  }
  
  /* Dump this event to stderr (for debugging/logging purposes).  */
*************** checker_event::dump (pretty_printer *pp)
*** 195,207 ****
  DEBUG_FUNCTION void
  checker_event::debug () const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Hook for being notified when this event has its final id EMISSION_ID
--- 196,204 ----
  DEBUG_FUNCTION void
  checker_event::debug () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump (&pp);
    pp_newline (&pp);
  }
  
  /* Hook for being notified when this event has its final id EMISSION_ID
*************** checker_event::debug () const
*** 210,220 ****
     Base implementation of checker_event::prepare_for_emission vfunc;
     subclasses that override this should chain up to it.
  
!    Record PD and EMISSION_ID, and call the get_desc vfunc, so that any
!    side-effects of the call to get_desc take place before
     pending_diagnostic::emit is called.
  
!    For example, state_change_event::get_desc can call
     pending_diagnostic::describe_state_change; free_of_non_heap can use this
     to tweak the message (TODO: would be neater to simply capture the
     pertinent data within the sm-state).  */
--- 207,217 ----
     Base implementation of checker_event::prepare_for_emission vfunc;
     subclasses that override this should chain up to it.
  
!    Record PD and EMISSION_ID, and call the print_desc vfunc, so that any
!    side-effects of the call to print_desc take place before
     pending_diagnostic::emit is called.
  
!    For example, state_change_event::print_desc can call
     pending_diagnostic::describe_state_change; free_of_non_heap can use this
     to tweak the message (TODO: would be neater to simply capture the
     pertinent data within the sm-state).  */
*************** checker_event::prepare_for_emission (che
*** 227,257 ****
    m_pending_diagnostic = pd;
    m_emission_id = emission_id;
  
!   label_text desc = get_desc (false);
  }
  
  /* class debug_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     debug_event.
     Use the saved string as the event's description.  */
  
! label_text
! debug_event::get_desc (bool) const
  {
!   return label_text::borrow (m_desc);
  }
  
  /* class precanned_custom_event : public custom_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     precanned_custom_event.
     Use the saved string as the event's description.  */
  
! label_text
! precanned_custom_event::get_desc (bool) const
  {
!   return label_text::borrow (m_desc);
  }
  
  /* class statement_event : public checker_event.  */
--- 224,255 ----
    m_pending_diagnostic = pd;
    m_emission_id = emission_id;
  
!   auto pp = global_dc->clone_printer ();
!   print_desc (*pp.get ());
  }
  
  /* class debug_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     debug_event.
     Use the saved string as the event's description.  */
  
! void
! debug_event::print_desc (pretty_printer &pp) const
  {
!   pp_string (&pp, m_desc);
  }
  
  /* class precanned_custom_event : public custom_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     precanned_custom_event.
     Use the saved string as the event's description.  */
  
! void
! precanned_custom_event::print_desc (pretty_printer &pp) const
  {
!   pp_string (&pp, m_desc);
  }
  
  /* class statement_event : public checker_event.  */
*************** statement_event::statement_event (const
*** 267,283 ****
  {
  }
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     statement_event.
     Use the statement's dump form as the event's description.  */
  
! label_text
! statement_event::get_desc (bool) const
  {
-   pretty_printer pp;
    pp_string (&pp, "stmt: ");
    pp_gimple_stmt_1 (&pp, m_stmt, 0, (dump_flags_t)0);
-   return label_text::take (xstrdup (pp_formatted_text (&pp)));
  }
  
  /* class region_creation_event : public checker_event.  */
--- 265,279 ----
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     statement_event.
     Use the statement's dump form as the event's description.  */
  
! void
! statement_event::print_desc (pretty_printer &pp) const
  {
    pp_string (&pp, "stmt: ");
    pp_gimple_stmt_1 (&pp, m_stmt, 0, (dump_flags_t)0);
  }
  
  /* class region_creation_event : public checker_event.  */
*************** region_creation_event::region_creation_e
*** 287,356 ****
  {
  }
  
! /* The various region_creation_event subclasses' get_desc
     implementations.  */
  
! label_text
! region_creation_event_memory_space::get_desc (bool) const
  {
    switch (m_mem_space)
      {
      default:
!       return label_text::borrow ("region created here");
      case MEMSPACE_STACK:
!       return label_text::borrow ("region created on stack here");
      case MEMSPACE_HEAP:
!       return label_text::borrow ("region created on heap here");
      }
  }
  
! label_text
! region_creation_event_capacity::get_desc (bool can_colorize) const
  {
    gcc_assert (m_capacity);
    if (TREE_CODE (m_capacity) == INTEGER_CST)
      {
        unsigned HOST_WIDE_INT hwi = tree_to_uhwi (m_capacity);
!       return make_label_text_n (can_colorize,
! 				hwi,
! 				"capacity: %wu byte",
! 				"capacity: %wu bytes",
! 				hwi);
      }
    else
!     return make_label_text (can_colorize,
! 			    "capacity: %qE bytes", m_capacity);
  }
  
! label_text
! region_creation_event_allocation_size::get_desc (bool can_colorize) const
  {
    if (m_capacity)
      {
        if (TREE_CODE (m_capacity) == INTEGER_CST)
! 	return make_label_text_n (can_colorize,
! 				  tree_to_uhwi (m_capacity),
! 				  "allocated %E byte here",
! 				  "allocated %E bytes here",
! 				  m_capacity);
        else
! 	return make_label_text (can_colorize,
! 				"allocated %qE bytes here",
! 				m_capacity);
      }
!   return make_label_text (can_colorize, "allocated here");
  }
  
! label_text
! region_creation_event_debug::get_desc (bool) const
  {
-   pretty_printer pp;
-   pp_format_decoder (&pp) = default_tree_printer;
    pp_string (&pp, "region creation: ");
    m_reg->dump_to_pp (&pp, true);
    if (m_capacity)
      pp_printf (&pp, " capacity: %qE", m_capacity);
-   return label_text::take (xstrdup (pp_formatted_text (&pp)));
  }
  
  /* class function_entry_event : public checker_event.  */
--- 283,351 ----
  {
  }
  
! /* The various region_creation_event subclasses' print_desc
     implementations.  */
  
! void
! region_creation_event_memory_space::print_desc (pretty_printer &pp) const
  {
    switch (m_mem_space)
      {
      default:
!       pp_string (&pp, "region created here");
!       return;
      case MEMSPACE_STACK:
!       pp_string (&pp, "region created on stack here");
!       return;
      case MEMSPACE_HEAP:
!       pp_string (&pp, "region created on heap here");
!       return;
      }
  }
  
! void
! region_creation_event_capacity::print_desc (pretty_printer &pp) const
  {
    gcc_assert (m_capacity);
    if (TREE_CODE (m_capacity) == INTEGER_CST)
      {
        unsigned HOST_WIDE_INT hwi = tree_to_uhwi (m_capacity);
!       return pp_printf_n (&pp,
! 			  hwi,
! 			  "capacity: %wu byte",
! 			  "capacity: %wu bytes",
! 			  hwi);
      }
    else
!     return pp_printf (&pp, "capacity: %qE bytes", m_capacity);
  }
  
! void
! region_creation_event_allocation_size::print_desc (pretty_printer &pp) const
  {
    if (m_capacity)
      {
        if (TREE_CODE (m_capacity) == INTEGER_CST)
! 	pp_printf_n (&pp,
! 		     tree_to_uhwi (m_capacity),
! 		     "allocated %E byte here",
! 		     "allocated %E bytes here",
! 		     m_capacity);
        else
! 	pp_printf (&pp,
! 		   "allocated %qE bytes here",
! 		   m_capacity);
      }
!   pp_printf (&pp, "allocated here");
  }
  
! void
! region_creation_event_debug::print_desc (pretty_printer &pp) const
  {
    pp_string (&pp, "region creation: ");
    m_reg->dump_to_pp (&pp, true);
    if (m_capacity)
      pp_printf (&pp, " capacity: %qE", m_capacity);
  }
  
  /* class function_entry_event : public checker_event.  */
*************** function_entry_event::function_entry_eve
*** 364,378 ****
  {
  }
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     function_entry_event.
  
     Use a string such as "entry to 'foo'" as the event's description.  */
  
! label_text
! function_entry_event::get_desc (bool can_colorize) const
  {
!   return make_label_text (can_colorize, "entry to %qE", m_effective_fndecl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 359,373 ----
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     function_entry_event.
  
     Use a string such as "entry to 'foo'" as the event's description.  */
  
! void
! function_entry_event::print_desc (pretty_printer &pp) const
  {
!   pp_printf (&pp, "entry to %qE", m_effective_fndecl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
*************** state_change_event::state_change_event (
*** 410,416 ****
  {
  }
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     state_change_event.
  
     Attempt to generate a nicer human-readable description.
--- 405,411 ----
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     state_change_event.
  
     Attempt to generate a nicer human-readable description.
*************** state_change_event::state_change_event (
*** 421,493 ****
     the diagnostic is about to being emitted, so the description for
     an event can change.  */
  
! label_text
! state_change_event::get_desc (bool can_colorize) const
  {
    if (m_pending_diagnostic)
      {
        region_model *model = m_dst_state.m_region_model;
        tree var = model->get_representative_tree (m_sval);
        tree origin = model->get_representative_tree (m_origin);
!       label_text custom_desc
! 	= m_pending_diagnostic->describe_state_change
! 	    (evdesc::state_change (can_colorize, var, origin,
! 				   m_from, m_to, m_emission_id, *this));
!       if (custom_desc.get ())
  	{
  	  if (flag_analyzer_verbose_state_changes)
  	    {
! 	      /* Get any "meaning" of event.  */
! 	      diagnostic_event::meaning meaning = get_meaning ();
! 	      pretty_printer meaning_pp;
! 	      meaning.dump_to_pp (&meaning_pp);
  
- 	      /* Append debug version.  */
  	      if (var)
! 		{
! 		  if (m_origin)
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state of %qE: %qs -> %qs, origin: %qE, meaning: %s)",
! 		       custom_desc.get (),
! 		       var,
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       origin,
! 		       pp_formatted_text (&meaning_pp));
! 		  else
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state of %qE: %qs -> %qs, NULL origin, meaning: %s)",
! 		       custom_desc.get (),
! 		       var,
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       pp_formatted_text (&meaning_pp));
! 		}
  	      else
! 		{
! 		  if (m_origin)
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state: %qs -> %qs, origin: %qE, meaning: %s)",
! 		       custom_desc.get (),
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       origin,
! 		       pp_formatted_text (&meaning_pp));
! 		  else
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state: %qs -> %qs, NULL origin, meaning: %s)",
! 		       custom_desc.get (),
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       pp_formatted_text (&meaning_pp));
! 		}
  	    }
! 	  else
! 	    return custom_desc;
  	}
      }
  
--- 416,458 ----
     the diagnostic is about to being emitted, so the description for
     an event can change.  */
  
! void
! state_change_event::print_desc (pretty_printer &pp) const
  {
    if (m_pending_diagnostic)
      {
        region_model *model = m_dst_state.m_region_model;
        tree var = model->get_representative_tree (m_sval);
        tree origin = model->get_representative_tree (m_origin);
!       evdesc::state_change evd (var, origin,
! 				m_from, m_to, m_emission_id, *this);
!       if (m_pending_diagnostic->describe_state_change (pp, evd))
  	{
  	  if (flag_analyzer_verbose_state_changes)
  	    {
! 	      /* Append debugging information about this event.  */
  
  	      if (var)
! 		pp_printf (&pp, " (state of %qE: ", var);
  	      else
! 		pp_string (&pp, " (state: ");
! 
! 	      pp_printf (&pp, "%qs -> %qs, ",
! 			 m_from->get_name (),
! 			 m_to->get_name ());
! 
! 	      if (m_origin)
! 		pp_printf (&pp, "origin: %qE", origin);
! 	      else
! 		pp_string (&pp, "NULL origin");
! 
! 	      /* Get any "meaning" of event.  */
! 	      diagnostic_event::meaning meaning = get_meaning ();
! 	      pp_string (&pp, ", meaning: ");
! 	      meaning.dump_to_pp (&pp);
! 	      pp_string (&pp, ")");
  	    }
! 	  return;
  	}
      }
  
*************** state_change_event::get_desc (bool can_c
*** 495,527 ****
    if (m_sval)
      {
        label_text sval_desc = m_sval->get_desc ();
        if (m_origin)
  	{
  	  label_text origin_desc = m_origin->get_desc ();
! 	  return make_label_text
! 	    (can_colorize,
! 	     "state of %qs: %qs -> %qs (origin: %qs)",
! 	     sval_desc.get (),
! 	     m_from->get_name (),
! 	     m_to->get_name (),
! 	     origin_desc.get ());
  	}
        else
! 	return make_label_text
! 	  (can_colorize,
! 	   "state of %qs: %qs -> %qs (NULL origin)",
! 	   sval_desc.get (),
! 	   m_from->get_name (),
! 	   m_to->get_name ());
      }
    else
      {
        gcc_assert (m_origin == NULL);
!       return make_label_text
! 	(can_colorize,
! 	 "global state: %qs -> %qs",
! 	 m_from->get_name (),
! 	 m_to->get_name ());
      }
  }
  
--- 460,486 ----
    if (m_sval)
      {
        label_text sval_desc = m_sval->get_desc ();
+       pp_printf (&pp,
+ 		 "state of %qs: %qs -> %qs",
+ 		 sval_desc.get (),
+ 		 m_from->get_name (),
+ 		 m_to->get_name ());
        if (m_origin)
  	{
  	  label_text origin_desc = m_origin->get_desc ();
! 	  pp_printf (&pp, " (origin: %qs)",
! 		     origin_desc.get ());
  	}
        else
! 	pp_string (&pp, " (NULL origin)");
      }
    else
      {
        gcc_assert (m_origin == NULL);
!       pp_printf (&pp,
! 		 "global state: %qs -> %qs",
! 		 m_from->get_name (),
! 		 m_to->get_name ());
      }
  }
  
*************** state_change_event::get_meaning () const
*** 537,545 ****
        region_model *model = m_dst_state.m_region_model;
        tree var = model->get_representative_tree (m_sval);
        tree origin = model->get_representative_tree (m_origin);
!       return m_pending_diagnostic->get_meaning_for_state_change
! 	(evdesc::state_change (false, var, origin,
! 			       m_from, m_to, m_emission_id, *this));
      }
    else
      return meaning ();
--- 496,504 ----
        region_model *model = m_dst_state.m_region_model;
        tree var = model->get_representative_tree (m_sval);
        tree origin = model->get_representative_tree (m_origin);
!       evdesc::state_change evd (var, origin,
! 				m_from, m_to, m_emission_id, *this);
!       return m_pending_diagnostic->get_meaning_for_state_change (evd);
      }
    else
      return meaning ();
*************** superedge_event::should_filter_p (int ve
*** 589,597 ****
  	  {
  	    /* Filter events with empty descriptions.  This ought to filter
  	       FALLTHRU, but retain true/false/switch edges.  */
! 	    label_text desc = get_desc (false);
! 	    gcc_assert (desc.get ());
! 	    if (desc.get ()[0] == '\0')
  	      return true;
  	  }
        }
--- 548,556 ----
  	  {
  	    /* Filter events with empty descriptions.  This ought to filter
  	       FALLTHRU, but retain true/false/switch edges.  */
! 	    auto pp = global_dc->clone_printer ();
! 	    print_desc (*pp.get ());
! 	    if (pp_formatted_text (pp.get ()) [0] == '\0')
  	      return true;
  	  }
        }
*************** cfg_edge_event::get_meaning () const
*** 653,659 ****
  
  /* class start_cfg_edge_event : public cfg_edge_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     start_cfg_edge_event.
  
     If -fanalyzer-verbose-edges, then generate low-level descriptions, such
--- 612,618 ----
  
  /* class start_cfg_edge_event : public cfg_edge_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     start_cfg_edge_event.
  
     If -fanalyzer-verbose-edges, then generate low-level descriptions, such
*************** cfg_edge_event::get_meaning () const
*** 670,680 ****
     holds, such as:
       "following 'false' branch (when 'ptr' is non-NULL)..."
  
!    Failing that, return an empty description (which will lead to this event
     being filtered).  */
  
! label_text
! start_cfg_edge_event::get_desc (bool can_colorize) const
  {
    bool user_facing = !flag_analyzer_verbose_edges;
    label_text edge_desc (m_sedge->get_description (user_facing));
--- 629,639 ----
     holds, such as:
       "following 'false' branch (when 'ptr' is non-NULL)..."
  
!    Failing that, print nothing (which will lead to this event
     being filtered).  */
  
! void
! start_cfg_edge_event::print_desc (pretty_printer &pp) const
  {
    bool user_facing = !flag_analyzer_verbose_edges;
    label_text edge_desc (m_sedge->get_description (user_facing));
*************** start_cfg_edge_event::get_desc (bool can
*** 682,714 ****
      {
        if (edge_desc.get () && strlen (edge_desc.get ()) > 0)
  	{
! 	  label_text cond_desc = maybe_describe_condition (can_colorize);
  	  label_text result;
  	  if (cond_desc.get ())
! 	    return make_label_text (can_colorize,
! 				    "following %qs branch (%s)...",
! 				    edge_desc.get (), cond_desc.get ());
  	  else
! 	    return make_label_text (can_colorize,
! 				    "following %qs branch...",
! 				    edge_desc.get ());
  	}
-       else
- 	return label_text::borrow ("");
      }
    else
      {
        if (strlen (edge_desc.get ()) > 0)
! 	return make_label_text (can_colorize,
! 				"taking %qs edge SN:%i -> SN:%i",
! 				edge_desc.get (),
! 				m_sedge->m_src->m_index,
! 				m_sedge->m_dest->m_index);
        else
! 	return make_label_text (can_colorize,
! 				"taking edge SN:%i -> SN:%i",
! 				m_sedge->m_src->m_index,
! 				m_sedge->m_dest->m_index);
      }
  }
  
--- 641,671 ----
      {
        if (edge_desc.get () && strlen (edge_desc.get ()) > 0)
  	{
! 	  label_text cond_desc = maybe_describe_condition (pp_show_color (&pp));
  	  label_text result;
  	  if (cond_desc.get ())
! 	    pp_printf (&pp,
! 		       "following %qs branch (%s)...",
! 		       edge_desc.get (), cond_desc.get ());
  	  else
! 	    pp_printf (&pp,
! 		       "following %qs branch...",
! 		       edge_desc.get ());
  	}
      }
    else
      {
        if (strlen (edge_desc.get ()) > 0)
! 	return pp_printf (&pp,
! 			  "taking %qs edge SN:%i -> SN:%i",
! 			  edge_desc.get (),
! 			  m_sedge->m_src->m_index,
! 			  m_sedge->m_dest->m_index);
        else
! 	return pp_printf (&pp,
! 			  "taking edge SN:%i -> SN:%i",
! 			  m_sedge->m_src->m_index,
! 			  m_sedge->m_dest->m_index);
      }
  }
  
*************** call_event::call_event (const exploded_e
*** 856,862 ****
     m_dest_snode = eedge.m_dest->get_supernode ();
  }
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     call_event.
  
     If this call event passes critical state for an sm-based warning,
--- 813,819 ----
     m_dest_snode = eedge.m_dest->get_supernode ();
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     call_event.
  
     If this call event passes critical state for an sm-based warning,
*************** call_event::call_event (const exploded_e
*** 867,894 ****
     Otherwise, generate a description of the form
     "calling 'foo' from 'bar'".  */
  
! label_text
! call_event::get_desc (bool can_colorize) const
  {
    if (m_critical_state && m_pending_diagnostic)
      {
        gcc_assert (m_var);
        tree var = fixup_tree_for_diagnostic (m_var);
!       label_text custom_desc
! 	= m_pending_diagnostic->describe_call_with_state
! 	    (evdesc::call_with_state (can_colorize,
! 				      m_src_snode->m_fun->decl,
! 				      m_dest_snode->m_fun->decl,
! 				      var,
! 				      m_critical_state));
!       if (custom_desc.get ())
! 	return custom_desc;
      }
  
!   return make_label_text (can_colorize,
! 			  "calling %qE from %qE",
! 			  get_callee_fndecl (),
! 			  get_caller_fndecl ());
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 824,848 ----
     Otherwise, generate a description of the form
     "calling 'foo' from 'bar'".  */
  
! void
! call_event::print_desc (pretty_printer &pp) const
  {
    if (m_critical_state && m_pending_diagnostic)
      {
        gcc_assert (m_var);
        tree var = fixup_tree_for_diagnostic (m_var);
!       evdesc::call_with_state evd (m_src_snode->m_fun->decl,
! 				   m_dest_snode->m_fun->decl,
! 				   var,
! 				   m_critical_state);
!       if (m_pending_diagnostic->describe_call_with_state (pp, evd))
! 	return;
      }
  
!   pp_printf (&pp,
! 	     "calling %qE from %qE",
! 	     get_callee_fndecl (),
! 	     get_caller_fndecl ());
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
*************** return_event::return_event (const explod
*** 935,941 ****
    m_dest_snode = eedge.m_dest->get_supernode ();
  }
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     return_event.
  
     If this return event returns critical state for an sm-based warning,
--- 889,895 ----
    m_dest_snode = eedge.m_dest->get_supernode ();
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     return_event.
  
     If this return event returns critical state for an sm-based warning,
*************** return_event::return_event (const explod
*** 946,953 ****
     Otherwise, generate a description of the form
     "returning to 'foo' from 'bar'.  */
  
! label_text
! return_event::get_desc (bool can_colorize) const
  {
    /*  For greatest precision-of-wording, if this is returning the
        state involved in the pending diagnostic, give the pending
--- 900,907 ----
     Otherwise, generate a description of the form
     "returning to 'foo' from 'bar'.  */
  
! void
! return_event::print_desc (pretty_printer &pp) const
  {
    /*  For greatest precision-of-wording, if this is returning the
        state involved in the pending diagnostic, give the pending
*************** return_event::get_desc (bool can_coloriz
*** 955,973 ****
        itself).  */
    if (m_critical_state && m_pending_diagnostic)
      {
!       label_text custom_desc
! 	= m_pending_diagnostic->describe_return_of_state
! 	    (evdesc::return_of_state (can_colorize,
! 				      m_dest_snode->m_fun->decl,
! 				      m_src_snode->m_fun->decl,
! 				      m_critical_state));
!       if (custom_desc.get ())
! 	return custom_desc;
      }
!   return make_label_text (can_colorize,
! 			  "returning to %qE from %qE",
! 			  m_dest_snode->m_fun->decl,
! 			  m_src_snode->m_fun->decl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 909,924 ----
        itself).  */
    if (m_critical_state && m_pending_diagnostic)
      {
!       evdesc::return_of_state evd (m_dest_snode->m_fun->decl,
! 				   m_src_snode->m_fun->decl,
! 				   m_critical_state);
!       if (m_pending_diagnostic->describe_return_of_state (pp, evd))
! 	return;
      }
!   pp_printf (&pp,
! 	     "returning to %qE from %qE",
! 	     m_dest_snode->m_fun->decl,
! 	     m_src_snode->m_fun->decl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
*************** return_event::is_return_p () const
*** 989,1000 ****
  
  /* class start_consolidated_cfg_edges_event : public checker_event.  */
  
! label_text
! start_consolidated_cfg_edges_event::get_desc (bool can_colorize) const
  {
!   return make_label_text (can_colorize,
! 			  "following %qs branch...",
! 			  m_edge_sense ? "true" : "false");
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 940,951 ----
  
  /* class start_consolidated_cfg_edges_event : public checker_event.  */
  
! void
! start_consolidated_cfg_edges_event::print_desc (pretty_printer &pp) const
  {
!   pp_printf (&pp,
! 	     "following %qs branch...",
! 	     m_edge_sense ? "true" : "false");
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
*************** start_consolidated_cfg_edges_event::get_
*** 1009,1021 ****
  
  /* class inlined_call_event : public checker_event.  */
  
! label_text
! inlined_call_event::get_desc (bool can_colorize) const
  {
!   return make_label_text (can_colorize,
! 			  "inlined call to %qE from %qE",
! 			  m_apparent_callee_fndecl,
! 			  m_apparent_caller_fndecl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 960,972 ----
  
  /* class inlined_call_event : public checker_event.  */
  
! void
! inlined_call_event::print_desc (pretty_printer &pp) const
  {
!   pp_printf (&pp,
! 	     "inlined call to %qE from %qE",
! 	     m_apparent_callee_fndecl,
! 	     m_apparent_caller_fndecl);
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
*************** inlined_call_event::get_meaning () const
*** 1029,1043 ****
  
  /* class setjmp_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     setjmp_event.  */
  
! label_text
! setjmp_event::get_desc (bool can_colorize) const
  {
!   return make_label_text (can_colorize,
! 			  "%qs called here",
! 			  get_user_facing_name (m_setjmp_call));
  }
  
  /* Implementation of checker_event::prepare_for_emission vfunc for setjmp_event.
--- 980,994 ----
  
  /* class setjmp_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     setjmp_event.  */
  
! void
! setjmp_event::print_desc (pretty_printer &pp) const
  {
!   pp_printf (&pp,
! 	     "%qs called here",
! 	     get_user_facing_name (m_setjmp_call));
  }
  
  /* Implementation of checker_event::prepare_for_emission vfunc for setjmp_event.
*************** rewind_event::rewind_event (const explod
*** 1087,1121 ****
  
  /* class rewind_from_longjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     rewind_from_longjmp_event.  */
  
! label_text
! rewind_from_longjmp_event::get_desc (bool can_colorize) const
  {
    const char *src_name
      = get_user_facing_name (m_rewind_info->get_longjmp_call ());
  
    if (get_longjmp_caller () == get_setjmp_caller ())
      /* Special-case: purely intraprocedural rewind.  */
!     return make_label_text (can_colorize,
! 			    "rewinding within %qE from %qs...",
! 			    get_longjmp_caller (),
! 			    src_name);
    else
!     return make_label_text (can_colorize,
! 			    "rewinding from %qs in %qE...",
! 			    src_name,
! 			    get_longjmp_caller ());
  }
  
  /* class rewind_to_setjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     rewind_to_setjmp_event.  */
  
! label_text
! rewind_to_setjmp_event::get_desc (bool can_colorize) const
  {
    const char *dst_name
      = get_user_facing_name (m_rewind_info->get_setjmp_call ());
--- 1038,1072 ----
  
  /* class rewind_from_longjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     rewind_from_longjmp_event.  */
  
! void
! rewind_from_longjmp_event::print_desc (pretty_printer &pp) const
  {
    const char *src_name
      = get_user_facing_name (m_rewind_info->get_longjmp_call ());
  
    if (get_longjmp_caller () == get_setjmp_caller ())
      /* Special-case: purely intraprocedural rewind.  */
!     pp_printf (&pp,
! 	       "rewinding within %qE from %qs...",
! 	       get_longjmp_caller (),
! 	       src_name);
    else
!     pp_printf (&pp,
! 	       "rewinding from %qs in %qE...",
! 	       src_name,
! 	       get_longjmp_caller ());
  }
  
  /* class rewind_to_setjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     rewind_to_setjmp_event.  */
  
! void
! rewind_to_setjmp_event::print_desc (pretty_printer &pp) const
  {
    const char *dst_name
      = get_user_facing_name (m_rewind_info->get_setjmp_call ());
*************** rewind_to_setjmp_event::get_desc (bool c
*** 1125,1154 ****
      {
        if (get_longjmp_caller () == get_setjmp_caller ())
  	/* Special-case: purely intraprocedural rewind.  */
! 	return make_label_text (can_colorize,
! 				"...to %qs (saved at %@)",
! 				dst_name,
! 				&m_original_setjmp_event_id);
        else
! 	return make_label_text (can_colorize,
! 				"...to %qs in %qE (saved at %@)",
! 				dst_name,
! 				get_setjmp_caller (),
! 				&m_original_setjmp_event_id);
      }
    else
      {
        if (get_longjmp_caller () == get_setjmp_caller ())
  	/* Special-case: purely intraprocedural rewind.  */
! 	return make_label_text (can_colorize,
! 				"...to %qs",
! 				dst_name,
! 				get_setjmp_caller ());
        else
! 	return make_label_text (can_colorize,
! 				"...to %qs in %qE",
! 				dst_name,
! 				get_setjmp_caller ());
      }
  }
  
--- 1076,1104 ----
      {
        if (get_longjmp_caller () == get_setjmp_caller ())
  	/* Special-case: purely intraprocedural rewind.  */
! 	pp_printf (&pp,
! 		   "...to %qs (saved at %@)",
! 		   dst_name,
! 		   &m_original_setjmp_event_id);
        else
! 	pp_printf (&pp,
! 		   "...to %qs in %qE (saved at %@)",
! 		   dst_name,
! 		   get_setjmp_caller (),
! 		   &m_original_setjmp_event_id);
      }
    else
      {
        if (get_longjmp_caller () == get_setjmp_caller ())
  	/* Special-case: purely intraprocedural rewind.  */
! 	pp_printf (&pp,
! 		   "...to %qs",
! 		   dst_name);
        else
! 	pp_printf (&pp,
! 		   "...to %qs in %qE",
! 		   dst_name,
! 		   get_setjmp_caller ());
      }
  }
  
*************** rewind_to_setjmp_event::prepare_for_emis
*** 1170,1176 ****
  
  /* class warning_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::get_desc vfunc for
     warning_event.
  
     If the pending diagnostic implements describe_final_event, use it,
--- 1120,1126 ----
  
  /* class warning_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     warning_event.
  
     If the pending diagnostic implements describe_final_event, use it,
*************** rewind_to_setjmp_event::prepare_for_emis
*** 1179,1226 ****
  
     Otherwise generate a generic description.  */
  
! label_text
! warning_event::get_desc (bool can_colorize) const
  {
    if (m_pending_diagnostic)
      {
        tree var = fixup_tree_for_diagnostic (m_var);
!       label_text ev_desc
! 	= m_pending_diagnostic->describe_final_event
! 	    (evdesc::final_event (can_colorize, var, m_state, *this));
!       if (ev_desc.get ())
  	{
  	  if (m_sm && flag_analyzer_verbose_state_changes)
  	    {
  	      if (var)
! 		return make_label_text (can_colorize,
! 					"%s (%qE is in state %qs)",
! 					ev_desc.get (),
! 					var, m_state->get_name ());
  	      else
! 		return make_label_text (can_colorize,
! 					"%s (in global state %qs)",
! 					ev_desc.get (),
! 					m_state->get_name ());
  	    }
! 	  else
! 	    return ev_desc;
  	}
      }
  
    if (m_sm)
      {
        if (m_var)
! 	return make_label_text (can_colorize,
! 				"here (%qE is in state %qs)",
! 				m_var, m_state->get_name ());
        else
! 	return make_label_text (can_colorize,
! 				"here (in global state %qs)",
! 				m_state->get_name ());
      }
    else
!     return label_text::borrow ("here");
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
--- 1129,1168 ----
  
     Otherwise generate a generic description.  */
  
! void
! warning_event::print_desc (pretty_printer &pp) const
  {
    if (m_pending_diagnostic)
      {
        tree var = fixup_tree_for_diagnostic (m_var);
!       evdesc::final_event evd (var, m_state, *this);
!       if (m_pending_diagnostic->describe_final_event (pp, evd))
  	{
  	  if (m_sm && flag_analyzer_verbose_state_changes)
  	    {
  	      if (var)
! 		pp_printf (&pp, " (%qE is in state %qs)",
! 			   var, m_state->get_name ());
  	      else
! 		pp_printf (&pp, " (in global state %qs)",
! 			   m_state->get_name ());
  	    }
! 	  return;
  	}
      }
  
    if (m_sm)
      {
        if (m_var)
! 	pp_printf (&pp, "here (%qE is in state %qs)",
! 		   m_var, m_state->get_name ());
        else
! 	pp_printf (&pp, "here (in global state %qs)",
! 		   m_state->get_name ());
!       return;
      }
    else
!     pp_string (&pp, "here");
  }
  
  /* Implementation of diagnostic_event::get_meaning vfunc for
diff -Nrcpad gcc-14.2.0/gcc/analyzer/checker-event.h gcc-15.1.0/gcc/analyzer/checker-event.h
*** gcc-14.2.0/gcc/analyzer/checker-event.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/checker-event.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 23,44 ****
  
  #include "tree-logical-location.h"
  #include "analyzer/program-state.h"
  
  namespace ana {
  
- /* A bundle of location information for a checker_event.  */
- 
- struct event_loc_info
- {
-   event_loc_info (location_t loc, tree fndecl, int depth)
-   : m_loc (loc), m_fndecl (fndecl), m_depth (depth)
-   {}
- 
-   location_t m_loc;
-   tree m_fndecl;
-   int m_depth;
- };
- 
  /* An enum for discriminating between the concrete subclasses of
     checker_event.  */
  
--- 23,32 ----
  
  #include "tree-logical-location.h"
  #include "analyzer/program-state.h"
+ #include "analyzer/event-loc-info.h"
  
  namespace ana {
  
  /* An enum for discriminating between the concrete subclasses of
     checker_event.  */
  
*************** public:
*** 103,109 ****
    /* Implementation of diagnostic_event.  */
  
    location_t get_location () const final override { return m_loc; }
-   tree get_fndecl () const final override { return m_effective_fndecl; }
    int get_stack_depth () const final override { return m_effective_depth; }
    const logical_location *get_logical_location () const final override
    {
--- 91,96 ----
*************** public:
*** 113,118 ****
--- 100,106 ----
        return NULL;
    }
    meaning get_meaning () const override;
+   bool connect_to_next_event_p () const override { return false; }
    diagnostic_thread_id_t get_thread_id () const final override
    {
      return 0;
*************** public:
*** 122,127 ****
--- 110,116 ----
    maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj) const override;
  
    /* Additional functionality.  */
+   tree get_fndecl () const { return m_effective_fndecl; }
  
    int get_original_stack_depth () const { return m_original_depth; }
  
*************** public:
*** 178,184 ****
      free (m_desc);
    }
  
!   label_text get_desc (bool) const final override;
  
  private:
    char *m_desc;
--- 167,173 ----
      free (m_desc);
    }
  
!   void print_desc (pretty_printer &) const final override;
  
  private:
    char *m_desc;
*************** public:
*** 212,218 ****
      free (m_desc);
    }
  
!   label_text get_desc (bool) const final override;
  
  private:
    char *m_desc;
--- 201,207 ----
      free (m_desc);
    }
  
!   void print_desc (pretty_printer &) const final override;
  
  private:
    char *m_desc;
*************** public:
*** 227,233 ****
    statement_event (const gimple *stmt, tree fndecl, int depth,
  		   const program_state &dst_state);
  
!   label_text get_desc (bool) const final override;
  
    const gimple * const m_stmt;
    const program_state m_dst_state;
--- 216,222 ----
    statement_event (const gimple *stmt, tree fndecl, int depth,
  		   const program_state &dst_state);
  
!   void print_desc (pretty_printer &) const final override;
  
    const gimple * const m_stmt;
    const program_state m_dst_state;
*************** public:
*** 268,274 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
  private:
    enum memory_space m_mem_space;
--- 257,263 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  
  private:
    enum memory_space m_mem_space;
*************** public:
*** 289,295 ****
      gcc_assert (m_capacity);
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
  private:
    tree m_capacity;
--- 278,284 ----
      gcc_assert (m_capacity);
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  
  private:
    tree m_capacity;
*************** public:
*** 308,314 ****
      m_capacity (capacity)
    {}
  
!   label_text get_desc (bool can_colorize) const final override;
  
  private:
    tree m_capacity;
--- 297,303 ----
      m_capacity (capacity)
    {}
  
!   void print_desc (pretty_printer &pp) const final override;
  
  private:
    tree m_capacity;
*************** public:
*** 327,333 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
  private:
    const region *m_reg;
--- 316,322 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  
  private:
    const region *m_reg;
*************** public:
*** 346,352 ****
  
    function_entry_event (const program_point &dst_point);
  
!   label_text get_desc (bool can_colorize) const override;
    meaning get_meaning () const override;
  
    bool is_function_entry_p () const final override { return true; }
--- 335,341 ----
  
    function_entry_event (const program_point &dst_point);
  
!   void print_desc (pretty_printer &pp) const override;
    meaning get_meaning () const override;
  
    bool is_function_entry_p () const final override { return true; }
*************** public:
*** 367,373 ****
  		      const program_state &dst_state,
  		      const exploded_node *enode);
  
!   label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
    const function *get_dest_function () const
--- 356,362 ----
  		      const program_state &dst_state,
  		      const exploded_node *enode);
  
!   void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
    const function *get_dest_function () const
*************** public:
*** 399,405 ****
  
    /* Mark this edge event as being either an interprocedural call or
       return in which VAR is in STATE, and that this is critical to the
!      diagnostic (so that get_desc can attempt to get a better description
       from any pending_diagnostic).  */
    void record_critical_state (tree var, state_machine::state_t state)
    {
--- 388,394 ----
  
    /* Mark this edge event as being either an interprocedural call or
       return in which VAR is in STATE, and that this is critical to the
!      diagnostic (so that print_desc can attempt to get a better description
       from any pending_diagnostic).  */
    void record_critical_state (tree var, state_machine::state_t state)
    {
*************** public:
*** 450,456 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const override;
  
  protected:
    label_text maybe_describe_condition (bool can_colorize) const;
--- 439,446 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const override;
!   bool connect_to_next_event_p () const final override { return true; }
  
  protected:
    label_text maybe_describe_condition (bool can_colorize) const;
*************** public:
*** 475,483 ****
    {
    }
  
!   label_text get_desc (bool /*can_colorize*/) const final override
    {
!     return label_text::borrow ("...to here");
    }
  };
  
--- 465,473 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
!     pp_string (&pp, "...to here");
    }
  };
  
*************** public:
*** 489,495 ****
    call_event (const exploded_edge &eedge,
  	      const event_loc_info &loc_info);
  
!   label_text get_desc (bool can_colorize) const override;
    meaning get_meaning () const override;
  
    bool is_call_p () const final override;
--- 479,485 ----
    call_event (const exploded_edge &eedge,
  	      const event_loc_info &loc_info);
  
!   void print_desc (pretty_printer &pp) const override;
    meaning get_meaning () const override;
  
    bool is_call_p () const final override;
*************** public:
*** 510,516 ****
    return_event (const exploded_edge &eedge,
  		const event_loc_info &loc_info);
  
!   label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
    bool is_return_p () const final override;
--- 500,506 ----
    return_event (const exploded_edge &eedge,
  		const event_loc_info &loc_info);
  
!   void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
    bool is_return_p () const final override;
*************** public:
*** 532,539 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
   private:
    bool m_edge_sense;
--- 522,530 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
+   bool connect_to_next_event_p () const final override { return true; }
  
   private:
    bool m_edge_sense;
*************** public:
*** 550,558 ****
    {
    }
  
!   label_text get_desc (bool /*can_colorize*/) const final override
    {
!     return label_text::borrow ("...to here");
    }
  };
  
--- 541,549 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
!     pp_string (&pp, "...to here");
    }
  };
  
*************** public:
*** 577,583 ****
      gcc_assert (LOCATION_BLOCK (loc) == NULL);
    }
  
!   label_text get_desc (bool /*can_colorize*/) const final override;
    meaning get_meaning () const override;
  
  private:
--- 568,574 ----
      gcc_assert (LOCATION_BLOCK (loc) == NULL);
    }
  
!   void print_desc (pretty_printer &) const final override;
    meaning get_meaning () const override;
  
  private:
*************** public:
*** 598,604 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
--- 589,595 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
*************** public:
*** 647,653 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  };
  
  /* A concrete event subclass for rewinding from a longjmp to a setjmp,
--- 638,644 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  };
  
  /* A concrete event subclass for rewinding from a longjmp to a setjmp,
*************** public:
*** 664,670 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
--- 655,661 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
*************** public:
*** 692,698 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
    const exploded_node *get_exploded_node () const { return m_enode; }
--- 683,689 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
    const exploded_node *get_exploded_node () const { return m_enode; }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/checker-path.cc gcc-15.1.0/gcc/analyzer/checker-path.cc
*** gcc-14.2.0/gcc/analyzer/checker-path.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/checker-path.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 62,67 ****
--- 62,75 ----
  
  namespace ana {
  
+ bool
+ checker_path::same_function_p (int event_idx_a,
+ 			       int event_idx_b) const
+ {
+   return (m_events[event_idx_a]->get_fndecl ()
+ 	  == m_events[event_idx_b]->get_fndecl ());
+ }
+ 
  /* Print a single-line representation of this path to PP.  */
  
  void
*************** checker_path::dump (pretty_printer *pp)
*** 75,82 ****
      {
        if (i > 0)
  	pp_string (pp, ", ");
!       label_text event_desc (e->get_desc (false));
!       pp_printf (pp, "\"%s\"", event_desc.get ());
      }
    pp_character (pp, ']');
  }
--- 83,91 ----
      {
        if (i > 0)
  	pp_string (pp, ", ");
!       pp_character (pp, '"');
!       e->print_desc (*pp);
!       pp_character (pp, '"');
      }
    pp_character (pp, ']');
  }
*************** checker_path::debug () const
*** 126,132 ****
    int i;
    FOR_EACH_VEC_ELT (m_events, i, e)
      {
!       label_text event_desc (e->get_desc (false));
        fprintf (stderr,
  	       "[%i]: %s \"%s\"\n",
  	       i,
--- 135,141 ----
    int i;
    FOR_EACH_VEC_ELT (m_events, i, e)
      {
!       label_text event_desc (e->get_desc (*global_dc->get_reference_printer ()));
        fprintf (stderr,
  	       "[%i]: %s \"%s\"\n",
  	       i,
*************** checker_path::inject_any_inlined_call_ev
*** 271,278 ****
  	      logger->log_partial ("  %qE", iter.get_block ());
  	      if (!flag_dump_noaddr)
  		logger->log_partial (" (%p)", iter.get_block ());
! 	      logger->log_partial (", fndecl: %qE, callsite: 0x%x",
! 				   iter.get_fndecl (), iter.get_callsite ());
  	      if (iter.get_callsite ())
  		dump_location (logger->get_printer (), iter.get_callsite ());
  	      logger->end_log_line ();
--- 280,288 ----
  	      logger->log_partial ("  %qE", iter.get_block ());
  	      if (!flag_dump_noaddr)
  		logger->log_partial (" (%p)", iter.get_block ());
! 	      logger->log_partial (", fndecl: %qE, callsite: 0x%llx",
! 				   iter.get_fndecl (),
! 				   (unsigned long long) iter.get_callsite ());
  	      if (iter.get_callsite ())
  		dump_location (logger->get_printer (), iter.get_callsite ());
  	      logger->end_log_line ();
diff -Nrcpad gcc-14.2.0/gcc/analyzer/checker-path.h gcc-15.1.0/gcc/analyzer/checker-path.h
*** gcc-14.2.0/gcc/analyzer/checker-path.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/checker-path.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 22,27 ****
--- 22,28 ----
  #define GCC_ANALYZER_CHECKER_PATH_H
  
  #include "analyzer/checker-event.h"
+ #include "simple-diagnostic-path.h"
  
  namespace ana {
  
*************** public:
*** 62,67 ****
--- 63,72 ----
      return m_events[idx];
    }
  
+   bool
+   same_function_p (int event_idx_a,
+ 		   int event_idx_b) const final override;
+ 
    void dump (pretty_printer *pp) const;
    void debug () const;
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/complexity.cc gcc-15.1.0/gcc/analyzer/complexity.cc
*** gcc-14.2.0/gcc/analyzer/complexity.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/complexity.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
diff -Nrcpad gcc-14.2.0/gcc/analyzer/complexity.h gcc-15.1.0/gcc/analyzer/complexity.h
*** gcc-14.2.0/gcc/analyzer/complexity.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/complexity.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/constraint-manager.cc gcc-15.1.0/gcc/analyzer/constraint-manager.cc
*** gcc-14.2.0/gcc/analyzer/constraint-manager.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/constraint-manager.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 49,54 ****
--- 49,55 ----
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
  #include "tree-pretty-print.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** range::dump_to_pp (pretty_printer *pp) c
*** 181,193 ****
  DEBUG_FUNCTION void
  range::dump () const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Determine if there is only one possible value for this range.
--- 182,190 ----
  DEBUG_FUNCTION void
  range::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
    pp_newline (&pp);
  }
  
  /* Determine if there is only one possible value for this range.
*************** bounded_range::dump_to_pp (pretty_printe
*** 444,476 ****
  void
  bounded_range::dump (bool show_types) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, show_types);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
! json::object *
  bounded_range::to_json () const
  {
!   json::object *range_obj = new json::object ();
!   set_json_attr (range_obj, "lower", m_lower);
!   set_json_attr (range_obj, "upper", m_upper);
    return range_obj;
  }
  
  /* Subroutine of bounded_range::to_json.  */
  
  void
! bounded_range::set_json_attr (json::object *obj, const char *name, tree value)
  {
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
    pp_printf (&pp, "%E", value);
!   obj->set (name, new json::string (pp_formatted_text (&pp)));
  }
  
  
--- 441,477 ----
  void
  bounded_range::dump (bool show_types) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, show_types);
    pp_newline (&pp);
  }
  
! std::unique_ptr<json::object>
  bounded_range::to_json () const
  {
!   auto range_obj = ::make_unique<json::object> ();
!   set_json_attr (*range_obj, "lower", m_lower);
!   set_json_attr (*range_obj, "upper", m_upper);
    return range_obj;
  }
  
+ std::unique_ptr<text_art::widget>
+ bounded_range::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   return tree_widget::from_fmt (dwi, default_tree_printer,
+ 				"%qE ... %qE", m_lower, m_upper);
+ }
+ 
  /* Subroutine of bounded_range::to_json.  */
  
  void
! bounded_range::set_json_attr (json::object &obj, const char *name, tree value)
  {
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
    pp_printf (&pp, "%E", value);
!   obj.set_string (name, pp_formatted_text (&pp));
  }
  
  
*************** bounded_ranges::dump_to_pp (pretty_print
*** 709,727 ****
  DEBUG_FUNCTION void
  bounded_ranges::dump (bool show_types) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, show_types);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
! json::value *
  bounded_ranges::to_json () const
  {
!   json::array *arr_obj = new json::array ();
  
    for (unsigned i = 0; i < m_ranges.length (); ++i)
      arr_obj->append (m_ranges[i].to_json ());
--- 710,724 ----
  DEBUG_FUNCTION void
  bounded_ranges::dump (bool show_types) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, show_types);
    pp_newline (&pp);
  }
  
! std::unique_ptr<json::value>
  bounded_ranges::to_json () const
  {
!   auto arr_obj = ::make_unique<json::array> ();
  
    for (unsigned i = 0; i < m_ranges.length (); ++i)
      arr_obj->append (m_ranges[i].to_json ());
*************** bounded_ranges::to_json () const
*** 729,734 ****
--- 726,739 ----
    return arr_obj;
  }
  
+ void
+ bounded_ranges::add_to_dump_widget (text_art::tree_widget &parent,
+ 				    const text_art::dump_widget_info &dwi) const
+ {
+   for (auto &range : m_ranges)
+     parent.add_child (range.make_dump_widget (dwi));
+ }
+ 
  /* Determine whether (X OP RHS_CONST) is known to be true or false
     for all X in the ranges expressed by this object.  */
  
*************** equiv_class::print (pretty_printer *pp)
*** 1108,1134 ****
     {"svals" : [str],
      "constant" : optional str}.  */
  
! json::object *
  equiv_class::to_json () const
  {
!   json::object *ec_obj = new json::object ();
  
!   json::array *sval_arr = new json::array ();
    for (const svalue *sval : m_vars)
      sval_arr->append (sval->to_json ());
!   ec_obj->set ("svals", sval_arr);
  
    if (m_constant)
      {
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_printf (&pp, "%qE", m_constant);
!       ec_obj->set ("constant", new json::string (pp_formatted_text (&pp)));
      }
  
    return ec_obj;
  }
  
  /* Generate a hash value for this equiv_class.
     This relies on the ordering of m_vars, and so this object needs to
     have been canonicalized for this to be meaningful.  */
--- 1113,1172 ----
     {"svals" : [str],
      "constant" : optional str}.  */
  
! std::unique_ptr<json::object>
  equiv_class::to_json () const
  {
!   auto ec_obj = ::make_unique<json::object> ();
  
!   auto sval_arr = ::make_unique<json::array> ();
    for (const svalue *sval : m_vars)
      sval_arr->append (sval->to_json ());
!   ec_obj->set ("svals", std::move (sval_arr));
  
    if (m_constant)
      {
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_printf (&pp, "%qE", m_constant);
!       ec_obj->set_string ("constant", pp_formatted_text (&pp));
      }
  
    return ec_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ equiv_class::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 			       unsigned id) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> ec_widget;
+ 
+   {
+     pretty_printer pp;
+     pp_string (&pp, "Equivalence class ");
+     equiv_class_id (id).print (&pp);
+     ec_widget = tree_widget::make (dwi, &pp);
+   }
+ 
+   for (const svalue *sval : m_vars)
+     {
+       pretty_printer pp;
+       pp_format_decoder (&pp) = default_tree_printer;
+       sval->dump_to_pp (&pp, true);
+       ec_widget->add_child (tree_widget::make (dwi, &pp));
+     }
+ 
+   if (m_constant)
+     {
+       pretty_printer pp;
+       pp_format_decoder (&pp) = default_tree_printer;
+       pp_printf (&pp, "%qE", m_constant);
+       ec_widget->add_child (tree_widget::make (dwi, &pp));
+     }
+ 
+   return ec_widget;
+ }
+ 
  /* Generate a hash value for this equiv_class.
     This relies on the ordering of m_vars, and so this object needs to
     have been canonicalized for this to be meaningful.  */
*************** constraint::print (pretty_printer *pp, c
*** 1342,1359 ****
      "op"  : str,
      "rhs" : int, the EC index}.  */
  
! json::object *
  constraint::to_json () const
  {
!   json::object *con_obj = new json::object ();
  
!   con_obj->set ("lhs", new json::integer_number (m_lhs.as_int ()));
!   con_obj->set ("op", new json::string (constraint_op_code (m_op)));
!   con_obj->set ("rhs", new json::integer_number (m_rhs.as_int ()));
  
    return con_obj;
  }
  
  /* Generate a hash value for this constraint.  */
  
  hashval_t
--- 1380,1408 ----
      "op"  : str,
      "rhs" : int, the EC index}.  */
  
! std::unique_ptr<json::object>
  constraint::to_json () const
  {
!   auto con_obj = ::make_unique<json::object> ();
  
!   con_obj->set_integer ("lhs", m_lhs.as_int ());
!   con_obj->set_string ("op", constraint_op_code (m_op));
!   con_obj->set_integer ("rhs", m_rhs.as_int ());
  
    return con_obj;
  }
  
+ std::unique_ptr<text_art::widget>
+ constraint::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 			      const constraint_manager &cm) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = true;
+   print (&pp, cm);
+   return text_art::tree_widget::make (dwi, &pp);
+ }
+ 
  /* Generate a hash value for this constraint.  */
  
  hashval_t
*************** bounded_ranges_constraint::print (pretty
*** 1419,1435 ****
    m_ranges->dump_to_pp (pp, true);
  }
  
! json::object *
  bounded_ranges_constraint::to_json () const
  {
!   json::object *con_obj = new json::object ();
  
!   con_obj->set ("ec", new json::integer_number (m_ec_id.as_int ()));
    con_obj->set ("ranges", m_ranges->to_json ());
  
    return con_obj;
  }
  
  bool
  bounded_ranges_constraint::
  operator== (const bounded_ranges_constraint &other) const
--- 1468,1496 ----
    m_ranges->dump_to_pp (pp, true);
  }
  
! std::unique_ptr<json::object>
  bounded_ranges_constraint::to_json () const
  {
!   auto con_obj = ::make_unique<json::object> ();
  
!   con_obj->set_integer ("ec", m_ec_id.as_int ());
    con_obj->set ("ranges", m_ranges->to_json ());
  
    return con_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ bounded_ranges_constraint::
+ make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> brc_widget
+     (tree_widget::from_fmt (dwi, nullptr,
+ 			    "ec%i bounded ranges", m_ec_id.as_int ()));
+   m_ranges->add_to_dump_widget (*brc_widget.get (), dwi);
+   return brc_widget;
+ }
+ 
  bool
  bounded_ranges_constraint::
  operator== (const bounded_ranges_constraint &other) const
*************** constraint_manager::dump_to_pp (pretty_p
*** 1696,1707 ****
  void
  constraint_manager::dump (FILE *fp) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, true);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this constraint_manager to stderr.  */
--- 1757,1764 ----
  void
  constraint_manager::dump (FILE *fp) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, true);
  }
  
  /* Dump a multiline representation of this constraint_manager to stderr.  */
*************** debug (const constraint_manager &cm)
*** 1724,1761 ****
     {"ecs" : array of objects, one per equiv_class
      "constraints" : array of objects, one per constraint}.  */
  
! json::object *
  constraint_manager::to_json () const
  {
!   json::object *cm_obj = new json::object ();
  
    /* Equivalence classes.  */
    {
!     json::array *ec_arr = new json::array ();
      for (const equiv_class *ec : m_equiv_classes)
        ec_arr->append (ec->to_json ());
!     cm_obj->set ("ecs", ec_arr);
    }
  
    /* Constraints.  */
    {
!     json::array *con_arr = new json::array ();
      for (const constraint &c : m_constraints)
        con_arr->append (c.to_json ());
!     cm_obj->set ("constraints", con_arr);
    }
  
    /* m_bounded_ranges_constraints.  */
    {
!     json::array *con_arr = new json::array ();
      for (const auto &c : m_bounded_ranges_constraints)
        con_arr->append (c.to_json ());
!     cm_obj->set ("bounded_ranges_constraints", con_arr);
    }
  
    return cm_obj;
  }
  
  /* Attempt to add the constraint LHS OP RHS to this constraint_manager.
     Return true if the constraint could be added (or is already true).
     Return false if the constraint contradicts existing knowledge.  */
--- 1781,1845 ----
     {"ecs" : array of objects, one per equiv_class
      "constraints" : array of objects, one per constraint}.  */
  
! std::unique_ptr<json::object>
  constraint_manager::to_json () const
  {
!   auto cm_obj = ::make_unique<json::object> ();
  
    /* Equivalence classes.  */
    {
!     auto ec_arr = ::make_unique<json::array> ();
      for (const equiv_class *ec : m_equiv_classes)
        ec_arr->append (ec->to_json ());
!     cm_obj->set ("ecs", std::move (ec_arr));
    }
  
    /* Constraints.  */
    {
!     auto con_arr = ::make_unique<json::array> ();
      for (const constraint &c : m_constraints)
        con_arr->append (c.to_json ());
!     cm_obj->set ("constraints", std::move (con_arr));
    }
  
    /* m_bounded_ranges_constraints.  */
    {
!     auto con_arr = ::make_unique<json::array> ();
      for (const auto &c : m_bounded_ranges_constraints)
        con_arr->append (c.to_json ());
!     cm_obj->set ("bounded_ranges_constraints", std::move (con_arr));
    }
  
    return cm_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ constraint_manager::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> cm_widget
+     (tree_widget::make (dwi, "Constraints"));
+ 
+   /* Equivalence classes.  */
+   unsigned i;
+   equiv_class *ec;
+   FOR_EACH_VEC_ELT (m_equiv_classes, i, ec)
+     cm_widget->add_child (ec->make_dump_widget (dwi, i));
+ 
+   /* Constraints.  */
+   for (const constraint &c : m_constraints)
+     cm_widget->add_child (c.make_dump_widget (dwi, *this));
+ 
+   /* m_bounded_ranges_constraints.  */
+   for (const auto &brc : m_bounded_ranges_constraints)
+     cm_widget->add_child (brc.make_dump_widget (dwi));
+ 
+   if (cm_widget->get_num_children () == 0)
+     return nullptr;
+ 
+   return cm_widget;
+ }
+ 
  /* Attempt to add the constraint LHS OP RHS to this constraint_manager.
     Return true if the constraint could be added (or is already true).
     Return false if the constraint contradicts existing knowledge.  */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/constraint-manager.h gcc-15.1.0/gcc/analyzer/constraint-manager.h
*** gcc-14.2.0/gcc/analyzer/constraint-manager.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/constraint-manager.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** struct bounded_range
*** 85,91 ****
    void dump_to_pp (pretty_printer *pp, bool show_types) const;
    void dump (bool show_types) const;
  
!   json::object *to_json () const;
  
    bool contains_p (tree cst) const;
  
--- 85,94 ----
    void dump_to_pp (pretty_printer *pp, bool show_types) const;
    void dump (bool show_types) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    bool contains_p (tree cst) const;
  
*************** struct bounded_range
*** 109,115 ****
    tree m_upper;
  
  private:
!   static void set_json_attr (json::object *obj, const char *name, tree value);
  };
  
  /* A collection of bounded_range instances, suitable
--- 112,118 ----
    tree m_upper;
  
  private:
!   static void set_json_attr (json::object &obj, const char *name, tree value);
  };
  
  /* A collection of bounded_range instances, suitable
*************** public:
*** 132,138 ****
    void dump_to_pp (pretty_printer *pp, bool show_types) const;
    void dump (bool show_types) const;
  
!   json::value *to_json () const;
  
    tristate eval_condition (enum tree_code op,
  			   tree rhs_const,
--- 135,144 ----
    void dump_to_pp (pretty_printer *pp, bool show_types) const;
    void dump (bool show_types) const;
  
!   std::unique_ptr<json::value> to_json () const;
! 
!   void add_to_dump_widget (text_art::tree_widget &parent,
! 			   const text_art::dump_widget_info &dwi) const;
  
    tristate eval_condition (enum tree_code op,
  			   tree rhs_const,
*************** public:
*** 265,271 ****
  
    void print (pretty_printer *pp) const;
  
!   json::object *to_json () const;
  
    bool contains_non_constant_p () const;
  
--- 271,281 ----
  
    void print (pretty_printer *pp) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi,
! 		    unsigned id) const;
  
    bool contains_non_constant_p () const;
  
*************** class constraint
*** 341,347 ****
  
    void print (pretty_printer *pp, const constraint_manager &cm) const;
  
!   json::object *to_json () const;
  
    hashval_t hash () const;
    bool operator== (const constraint &other) const;
--- 351,361 ----
  
    void print (pretty_printer *pp, const constraint_manager &cm) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi,
! 		    const constraint_manager &cm) const;
  
    hashval_t hash () const;
    bool operator== (const constraint &other) const;
*************** public:
*** 384,390 ****
  
    void print (pretty_printer *pp, const constraint_manager &cm) const;
  
!   json::object *to_json () const;
  
    bool operator== (const bounded_ranges_constraint &other) const;
    bool operator!= (const bounded_ranges_constraint &other) const
--- 398,404 ----
  
    void print (pretty_printer *pp, const constraint_manager &cm) const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    bool operator== (const bounded_ranges_constraint &other) const;
    bool operator!= (const bounded_ranges_constraint &other) const
*************** public:
*** 394,399 ****
--- 408,416 ----
  
    void add_to_hash (inchash::hash *hstate) const;
  
+   std::unique_ptr<text_art::tree_widget>
+   make_dump_widget (const text_art::dump_widget_info &dwi) const;
+ 
    equiv_class_id m_ec_id;
    const bounded_ranges *m_ranges;
  };
*************** public:
*** 425,431 ****
    void dump (FILE *fp) const;
    void dump () const;
  
!   json::object *to_json () const;
  
    const equiv_class &get_equiv_class_by_index (unsigned idx) const
    {
--- 442,451 ----
    void dump (FILE *fp) const;
    void dump () const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    const equiv_class &get_equiv_class_by_index (unsigned idx) const
    {
diff -Nrcpad gcc-14.2.0/gcc/analyzer/diagnostic-manager.cc gcc-15.1.0/gcc/analyzer/diagnostic-manager.cc
*** gcc-14.2.0/gcc/analyzer/diagnostic-manager.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/diagnostic-manager.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** saved_diagnostic::add_event (std::unique
*** 739,761 ****
      "pending_diagnostic": str,
      "idx": int}.  */
  
! json::object *
  saved_diagnostic::to_json () const
  {
!   json::object *sd_obj = new json::object ();
  
    if (m_sm)
!     sd_obj->set ("sm", new json::string (m_sm->get_name ()));
!   sd_obj->set ("enode", new json::integer_number (m_enode->m_index));
!   sd_obj->set ("snode", new json::integer_number (m_snode->m_index));
    if (m_sval)
      sd_obj->set ("sval", m_sval->to_json ());
    if (m_state)
      sd_obj->set ("state", m_state->to_json ());
    if (m_best_epath)
!     sd_obj->set ("path_length", new json::integer_number (get_epath_length ()));
!   sd_obj->set ("pending_diagnostic", new json::string (m_d->get_kind ()));
!   sd_obj->set ("idx", new json::integer_number (m_idx));
  
    /* We're not yet JSONifying the following fields:
       const gimple *m_stmt;
--- 739,761 ----
      "pending_diagnostic": str,
      "idx": int}.  */
  
! std::unique_ptr<json::object>
  saved_diagnostic::to_json () const
  {
!   auto sd_obj = ::make_unique<json::object> ();
  
    if (m_sm)
!     sd_obj->set_string ("sm", m_sm->get_name ());
!   sd_obj->set_integer ("enode", m_enode->m_index);
!   sd_obj->set_integer ("snode", m_snode->m_index);
    if (m_sval)
      sd_obj->set ("sval", m_sval->to_json ());
    if (m_state)
      sd_obj->set ("state", m_state->to_json ());
    if (m_best_epath)
!     sd_obj->set_integer ("path_length", get_epath_length ());
!   sd_obj->set_string ("pending_diagnostic", m_d->get_kind ());
!   sd_obj->set_integer ("idx", m_idx);
  
    /* We're not yet JSONifying the following fields:
       const gimple *m_stmt;
*************** saved_diagnostic::maybe_add_sarif_proper
*** 1032,1043 ****
      props.set_string (PROPERTY_PREFIX "sm", m_sm->get_name ());
    props.set_integer (PROPERTY_PREFIX "enode", m_enode->m_index);
    props.set_integer (PROPERTY_PREFIX "snode", m_snode->m_index);
    if (m_sval)
      props.set (PROPERTY_PREFIX "sval", m_sval->to_json ());
    if (m_state)
      props.set (PROPERTY_PREFIX "state", m_state->to_json ());
!   if (m_best_epath)
!   props.set (PROPERTY_PREFIX "idx", new json::integer_number (m_idx));
  #undef PROPERTY_PREFIX
  
    /* Potentially add pending_diagnostic-specific properties.  */
--- 1032,1067 ----
      props.set_string (PROPERTY_PREFIX "sm", m_sm->get_name ());
    props.set_integer (PROPERTY_PREFIX "enode", m_enode->m_index);
    props.set_integer (PROPERTY_PREFIX "snode", m_snode->m_index);
+   if (m_stmt)
+     {
+       pretty_printer pp;
+       pp_gimple_stmt_1 (&pp, m_stmt, 0, (dump_flags_t)0);
+       props.set_string (PROPERTY_PREFIX "stmt", pp_formatted_text (&pp));
+     }
+   if (m_var)
+     props.set (PROPERTY_PREFIX "var", tree_to_json (m_var));
    if (m_sval)
      props.set (PROPERTY_PREFIX "sval", m_sval->to_json ());
    if (m_state)
      props.set (PROPERTY_PREFIX "state", m_state->to_json ());
!   // TODO: m_best_epath
!   props.set_integer (PROPERTY_PREFIX "idx", m_idx);
!   if (m_duplicates.length () > 0)
!     {
!       auto duplicates_arr = ::make_unique<json::array> ();
!       for (auto iter : m_duplicates)
! 	{
! 	  auto sd_obj = ::make_unique<sarif_object> ();
! 	  iter->maybe_add_sarif_properties (*sd_obj);
! 	  duplicates_arr->append (std::move (sd_obj));
! 	}
!       props.set<json::array> (PROPERTY_PREFIX "duplicates",
! 			      std::move (duplicates_arr));
!     }
! #undef PROPERTY_PREFIX
! 
! #define PROPERTY_PREFIX "gcc/analyzer/pending_diagnostic/"
!   props.set_string (PROPERTY_PREFIX "kind", m_d->get_kind ());
  #undef PROPERTY_PREFIX
  
    /* Potentially add pending_diagnostic-specific properties.  */
*************** diagnostic_manager::add_event (std::uniq
*** 1215,1232 ****
  /* Return a new json::object of the form
     {"diagnostics"  : [obj for saved_diagnostic]}.  */
  
! json::object *
  diagnostic_manager::to_json () const
  {
!   json::object *dm_obj = new json::object ();
  
    {
!     json::array *sd_arr = new json::array ();
      int i;
      saved_diagnostic *sd;
      FOR_EACH_VEC_ELT (m_saved_diagnostics, i, sd)
        sd_arr->append (sd->to_json ());
!     dm_obj->set ("diagnostics", sd_arr);
    }
  
    return dm_obj;
--- 1239,1256 ----
  /* Return a new json::object of the form
     {"diagnostics"  : [obj for saved_diagnostic]}.  */
  
! std::unique_ptr<json::object>
  diagnostic_manager::to_json () const
  {
!   auto dm_obj = ::make_unique<json::object> ();
  
    {
!     auto sd_arr = ::make_unique<json::array> ();
      int i;
      saved_diagnostic *sd;
      FOR_EACH_VEC_ELT (m_saved_diagnostics, i, sd)
        sd_arr->append (sd->to_json ());
!     dm_obj->set ("diagnostics", std::move (sd_arr));
    }
  
    return dm_obj;
*************** diagnostic_manager::emit_saved_diagnosti
*** 1560,1567 ****
         sd.get_index (), sd.m_d->get_kind (), sd.m_snode->m_index);
    log ("num dupes: %i", sd.get_num_dupes ());
  
-   pretty_printer *pp = global_dc->printer->clone ();
- 
    const exploded_path *epath = sd.get_best_epath ();
    gcc_assert (epath);
  
--- 1584,1589 ----
*************** diagnostic_manager::emit_saved_diagnosti
*** 1587,1594 ****
       We use the final enode from the epath, which might be different from
       the sd.m_enode, as the dedupe code doesn't care about enodes, just
       snodes.  */
!   sd.m_d->add_final_event (sd.m_sm, epath->get_final_enode (), sd.m_stmt,
! 			   sd.m_var, sd.m_state, &emission_path);
  
    /* The "final" event might not be final; if the saved_diagnostic has a
       trailing eedge stashed, add any events for it.  This is for use
--- 1609,1625 ----
       We use the final enode from the epath, which might be different from
       the sd.m_enode, as the dedupe code doesn't care about enodes, just
       snodes.  */
!   {
!     const exploded_node *const enode = epath->get_final_enode ();
!     const gimple *stmt = sd.m_stmt;
!     event_loc_info loc_info (get_stmt_location (stmt, enode->get_function ()),
! 			     enode->get_function ()->decl,
! 			     enode->get_stack_depth ());
!     if (sd.m_stmt_finder)
!       sd.m_stmt_finder->update_event_loc_info (loc_info);
!     sd.m_d->add_final_event (sd.m_sm, enode, loc_info,
! 			     sd.m_var, sd.m_state, &emission_path);
!   }
  
    /* The "final" event might not be final; if the saved_diagnostic has a
       trailing eedge stashed, add any events for it.  This is for use
*************** diagnostic_manager::emit_saved_diagnosti
*** 1635,1641 ****
  	  free (filename);
  	}
      }
-   delete pp;
  }
  
  /* Emit a "path" of events to EMISSION_PATH describing the exploded path
--- 1666,1671 ----
*************** diagnostic_manager::add_events_for_eedge
*** 2229,2235 ****
  							    &iter_point,
  							    emission_path,
  							    pb.get_ext_state ());
! 			sm.on_stmt (&sm_ctxt, dst_point.get_supernode (), stmt);
  			// TODO: what about phi nodes?
  		      }
  		  }
--- 2259,2265 ----
  							    &iter_point,
  							    emission_path,
  							    pb.get_ext_state ());
! 			sm.on_stmt (sm_ctxt, dst_point.get_supernode (), stmt);
  			// TODO: what about phi nodes?
  		      }
  		  }
*************** diagnostic_manager::prune_interproc_even
*** 2826,2832 ****
  	      if (get_logger ())
  		{
  		  label_text desc
! 		    (path->get_checker_event (idx)->get_desc (false));
  		  log ("filtering events %i-%i:"
  		       " irrelevant call/entry/return: %s",
  		       idx, idx + 2, desc.get ());
--- 2856,2863 ----
  	      if (get_logger ())
  		{
  		  label_text desc
! 		    (path->get_checker_event (idx)->get_desc
! 		       (*global_dc->get_reference_printer ()));
  		  log ("filtering events %i-%i:"
  		       " irrelevant call/entry/return: %s",
  		       idx, idx + 2, desc.get ());
*************** diagnostic_manager::prune_interproc_even
*** 2848,2854 ****
  	      if (get_logger ())
  		{
  		  label_text desc
! 		    (path->get_checker_event (idx)->get_desc (false));
  		  log ("filtering events %i-%i:"
  		       " irrelevant call/return: %s",
  		       idx, idx + 1, desc.get ());
--- 2879,2886 ----
  	      if (get_logger ())
  		{
  		  label_text desc
! 		    (path->get_checker_event (idx)->get_desc
! 		     (*global_dc->get_reference_printer ()));
  		  log ("filtering events %i-%i:"
  		       " irrelevant call/return: %s",
  		       idx, idx + 1, desc.get ());
*************** diagnostic_manager::prune_system_headers
*** 2945,2951 ****
  	      {
  		if (get_logger ())
  		  {
! 		    label_text desc (event->get_desc (false));
  		    log ("filtering event %i:"
  			 "system header entry event: %s",
  			 idx, desc.get ());
--- 2977,2984 ----
  	      {
  		if (get_logger ())
  		  {
! 		    label_text desc
! 		      (event->get_desc (*global_dc->get_reference_printer ()));
  		    log ("filtering event %i:"
  			 "system header entry event: %s",
  			 idx, desc.get ());
diff -Nrcpad gcc-14.2.0/gcc/analyzer/diagnostic-manager.h gcc-15.1.0/gcc/analyzer/diagnostic-manager.h
*** gcc-14.2.0/gcc/analyzer/diagnostic-manager.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/diagnostic-manager.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 42,48 ****
    void add_note (std::unique_ptr<pending_note> pn);
    void add_event (std::unique_ptr<checker_event> event);
  
!   json::object *to_json () const;
  
    void dump_dot_id (pretty_printer *pp) const;
    void dump_as_dot_node (pretty_printer *pp) const;
--- 42,48 ----
    void add_note (std::unique_ptr<pending_note> pn);
    void add_event (std::unique_ptr<checker_event> event);
  
!   std::unique_ptr<json::object> to_json () const;
  
    void dump_dot_id (pretty_printer *pp) const;
    void dump_as_dot_node (pretty_printer *pp) const;
*************** public:
*** 157,163 ****
  
    engine *get_engine () const { return m_eng; }
  
!   json::object *to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
  		       const pending_location &ploc,
--- 157,163 ----
  
    engine *get_engine () const { return m_eng; }
  
!   std::unique_ptr<json::object> to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
  		       const pending_location &ploc,
diff -Nrcpad gcc-14.2.0/gcc/analyzer/engine.cc gcc-15.1.0/gcc/analyzer/engine.cc
*** gcc-14.2.0/gcc/analyzer/engine.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/engine.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* The analysis "engine".
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 68,73 ****
--- 68,74 ----
  #include "tree-dfa.h"
  #include "analyzer/known-function-manager.h"
  #include "analyzer/call-summary.h"
+ #include "text-art/dump.h"
  
  /* For an overview, see gcc/doc/analyzer.texi.  */
  
*************** setjmp_svalue::dump_to_pp (pretty_printe
*** 263,268 ****
--- 264,289 ----
      pp_printf (pp, "setjmp_svalue(EN%i)", get_enode_index ());
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    setjmp_svalue.  */
+ 
+ void
+ setjmp_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "setjmp_svalue(EN: %i)", get_enode_index ());
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    setjmp_svalue.  */
+ 
+ void
+ setjmp_svalue::
+ add_dump_widget_children (text_art::tree_widget &,
+ 			  const text_art::dump_widget_info &) const
+ {
+   /* No children.  */
+ }
+ 
  /* Get the index of the stored exploded_node.  */
  
  int
*************** public:
*** 659,664 ****
--- 680,690 ----
      return NULL;
    }
  
+   void update_event_loc_info (event_loc_info &) final override
+   {
+     /* No-op.  */
+   }
+ 
  private:
    const exploded_graph &m_eg;
    tree m_var;
*************** impl_region_model_context::on_state_leak
*** 876,882 ****
    svalue_set visited;
    path_var leaked_pv
      = m_old_state->m_region_model->get_representative_path_var (sval,
! 								&visited);
  
    /* Strip off top-level casts  */
    if (leaked_pv.m_tree && TREE_CODE (leaked_pv.m_tree) == NOP_EXPR)
--- 902,909 ----
    svalue_set visited;
    path_var leaked_pv
      = m_old_state->m_region_model->get_representative_path_var (sval,
! 								&visited,
! 								nullptr);
  
    /* Strip off top-level casts  */
    if (leaked_pv.m_tree && TREE_CODE (leaked_pv.m_tree) == NOP_EXPR)
*************** impl_region_model_context::on_condition
*** 941,947 ****
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_condition (&sm_ctxt,
  		       (m_enode_for_diag
  			? m_enode_for_diag->get_supernode ()
  			: NULL),
--- 968,974 ----
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_condition (sm_ctxt,
  		       (m_enode_for_diag
  			? m_enode_for_diag->get_supernode ()
  			: NULL),
*************** impl_region_model_context::on_bounded_ra
*** 968,974 ****
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_bounded_ranges (&sm_ctxt,
  			    (m_enode_for_diag
  			     ? m_enode_for_diag->get_supernode ()
  			     : NULL),
--- 995,1001 ----
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_bounded_ranges (sm_ctxt,
  			    (m_enode_for_diag
  			     ? m_enode_for_diag->get_supernode ()
  			     : NULL),
*************** impl_region_model_context::on_phi (const
*** 1009,1015 ****
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_phi (&sm_ctxt, m_enode_for_diag->get_supernode (), phi, rhs);
      }
  }
  
--- 1036,1042 ----
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_phi (sm_ctxt, m_enode_for_diag->get_supernode (), phi, rhs);
      }
  }
  
*************** void
*** 1391,1402 ****
  exploded_node::dump (FILE *fp,
  		     const extrinsic_state &ext_state) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, ext_state);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this node to stderr.  */
--- 1418,1425 ----
  exploded_node::dump (FILE *fp,
  		     const extrinsic_state &ext_state) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, ext_state);
  }
  
  /* Dump a multiline representation of this node to stderr.  */
*************** exploded_node::dump (const extrinsic_sta
*** 1414,1430 ****
      "idx"    : int,
      "processed_stmts" : int}.  */
  
! json::object *
  exploded_node::to_json (const extrinsic_state &ext_state) const
  {
!   json::object *enode_obj = new json::object ();
  
    enode_obj->set ("point", get_point ().to_json ());
    enode_obj->set ("state", get_state ().to_json (ext_state));
!   enode_obj->set ("status", new json::string (status_to_str (m_status)));
!   enode_obj->set ("idx", new json::integer_number (m_index));
!   enode_obj->set ("processed_stmts",
! 		  new json::integer_number (m_num_processed_stmts));
  
    return enode_obj;
  }
--- 1437,1452 ----
      "idx"    : int,
      "processed_stmts" : int}.  */
  
! std::unique_ptr<json::object>
  exploded_node::to_json (const extrinsic_state &ext_state) const
  {
!   auto enode_obj = ::make_unique<json::object> ();
  
    enode_obj->set ("point", get_point ().to_json ());
    enode_obj->set ("state", get_state ().to_json (ext_state));
!   enode_obj->set_string ("status", status_to_str (m_status));
!   enode_obj->set_integer ("idx", m_index);
!   enode_obj->set_integer ("processed_stmts", m_num_processed_stmts);
  
    return enode_obj;
  }
*************** exploded_node::on_stmt (exploded_graph &
*** 1531,1537 ****
  			       unknown_side_effects);
  
        /* Allow the state_machine to handle the stmt.  */
!       if (sm.on_stmt (&sm_ctxt, snode, stmt))
  	unknown_side_effects = false;
      }
  
--- 1553,1559 ----
  			       unknown_side_effects);
  
        /* Allow the state_machine to handle the stmt.  */
!       if (sm.on_stmt (sm_ctxt, snode, stmt))
  	unknown_side_effects = false;
      }
  
*************** public:
*** 1645,1653 ****
      return true;
    }
  
!   label_text get_desc (bool /*can_colorize*/) const final override
    {
!     return m_summary->get_desc ();
    }
  
  private:
--- 1667,1675 ----
      return true;
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
!     pp_string (&pp, m_summary->get_desc ().get ());
    }
  
  private:
*************** public:
*** 1861,1879 ****
      return false;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_stack_pop_event)
!       return ev.formatted_print
! 	("%qs called after enclosing function of %qs returned at %@",
! 	 get_user_facing_name (m_longjmp_call),
! 	 get_user_facing_name (m_setjmp_call),
! 	 m_stack_pop_event->get_id_ptr ());
      else
!       return ev.formatted_print
! 	("%qs called after enclosing function of %qs has returned",
! 	 get_user_facing_name (m_longjmp_call),
! 	 get_user_facing_name (m_setjmp_call));;
    }
  
  
--- 1883,1904 ----
      return false;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_stack_pop_event)
!       pp_printf (&pp,
! 		 "%qs called after enclosing function of %qs returned at %@",
! 		 get_user_facing_name (m_longjmp_call),
! 		 get_user_facing_name (m_setjmp_call),
! 		 m_stack_pop_event->get_id_ptr ());
      else
!       pp_printf (&pp,
! 		 "%qs called after enclosing function of %qs has returned",
! 		 get_user_facing_name (m_longjmp_call),
! 		 get_user_facing_name (m_setjmp_call));
!     return true;
    }
  
  
*************** exploded_node::detect_leaks (exploded_gr
*** 2034,2040 ****
  				  &old_state, &new_state, &uncertainty, NULL,
  				  get_stmt ());
    const svalue *result = NULL;
!   new_state.m_region_model->pop_frame (NULL, &result, &ctxt);
    program_state::detect_leaks (old_state, new_state, result,
  			       eg.get_ext_state (), &ctxt);
  }
--- 2059,2065 ----
  				  &old_state, &new_state, &uncertainty, NULL,
  				  get_stmt ());
    const svalue *result = NULL;
!   new_state.m_region_model->pop_frame (NULL, &result, &ctxt, nullptr);
    program_state::detect_leaks (old_state, new_state, result,
  			       eg.get_ext_state (), &ctxt);
  }
*************** exploded_edge::dump_dot_label (pretty_pr
*** 2266,2277 ****
      "sedge": (optional) object for the superedge, if any,
      "custom": (optional) str, a description, if this is a custom edge}.  */
  
! json::object *
  exploded_edge::to_json () const
  {
!   json::object *eedge_obj = new json::object ();
!   eedge_obj->set ("src_idx", new json::integer_number (m_src->m_index));
!   eedge_obj->set ("dst_idx", new json::integer_number (m_dest->m_index));
    if (m_sedge)
      eedge_obj->set ("sedge", m_sedge->to_json ());
    if (m_custom_info)
--- 2291,2302 ----
      "sedge": (optional) object for the superedge, if any,
      "custom": (optional) str, a description, if this is a custom edge}.  */
  
! std::unique_ptr<json::object>
  exploded_edge::to_json () const
  {
!   auto eedge_obj = ::make_unique<json::object> ();
!   eedge_obj->set_integer ("src_idx", m_src->m_index);
!   eedge_obj->set_integer ("dst_idx", m_dest->m_index);
    if (m_sedge)
      eedge_obj->set ("sedge", m_sedge->to_json ());
    if (m_custom_info)
*************** exploded_edge::to_json () const
*** 2279,2285 ****
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        m_custom_info->print (&pp);
!       eedge_obj->set ("custom", new json::string (pp_formatted_text (&pp)));
      }
    return eedge_obj;
  }
--- 2304,2310 ----
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        m_custom_info->print (&pp);
!       eedge_obj->set_string ("custom", pp_formatted_text (&pp));
      }
    return eedge_obj;
  }
*************** strongly_connected_components::dump () c
*** 2392,2403 ****
  
  /* Return a new json::array of per-snode SCC ids.  */
  
! json::array *
  strongly_connected_components::to_json () const
  {
!   json::array *scc_arr = new json::array ();
    for (int i = 0; i < m_sg.num_nodes (); i++)
!     scc_arr->append (new json::integer_number (get_scc_id (i)));
    return scc_arr;
  }
  
--- 2417,2428 ----
  
  /* Return a new json::array of per-snode SCC ids.  */
  
! std::unique_ptr<json::array>
  strongly_connected_components::to_json () const
  {
!   auto scc_arr = ::make_unique<json::array> ();
    for (int i = 0; i < m_sg.num_nodes (); i++)
!     scc_arr->append (::make_unique<json::integer_number> (get_scc_id (i)));
    return scc_arr;
  }
  
*************** worklist::key_t::cmp (const worklist::ke
*** 2613,2622 ****
  /* Return a new json::object of the form
     {"scc" : [per-snode-IDs]},  */
  
! json::object *
  worklist::to_json () const
  {
!   json::object *worklist_obj = new json::object ();
  
    worklist_obj->set ("scc", m_scc.to_json ());
  
--- 2638,2647 ----
  /* Return a new json::object of the form
     {"scc" : [per-snode-IDs]},  */
  
! std::unique_ptr<json::object>
  worklist::to_json () const
  {
!   auto worklist_obj = ::make_unique<json::object> ();
  
    worklist_obj->set ("scc", m_scc.to_json ());
  
*************** public:
*** 2727,2738 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override
    {
!     return make_label_text
!       (can_colorize,
!        "function %qE marked with %<__attribute__((tainted_args))%>",
!        m_fndecl);
    }
  
  private:
--- 2752,2763 ----
    {
    }
  
!   void
!   print_desc (pretty_printer &pp) const final override
    {
!     pp_printf (&pp,
! 	       "function %qE marked with %<__attribute__((tainted_args))%>",
! 	       m_fndecl);
    }
  
  private:
*************** public:
*** 3146,3157 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override
    {
!     return make_label_text (can_colorize,
! 			    "field %qE of %qT"
! 			    " is marked with %<__attribute__((tainted_args))%>",
! 			    m_field, DECL_CONTEXT (m_field));
    }
  
  private:
--- 3171,3182 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
!     pp_printf (&pp,
! 	       "field %qE of %qT"
! 	       " is marked with %<__attribute__((tainted_args))%>",
! 	       m_field, DECL_CONTEXT (m_field));
    }
  
  private:
*************** public:
*** 3172,3183 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override
    {
!     return make_label_text (can_colorize,
! 			    "function %qE used as initializer for field %qE"
! 			    " marked with %<__attribute__((tainted_args))%>",
! 			    get_fndecl (), m_field);
    }
  
  private:
--- 3197,3208 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
!     pp_printf (&pp,
! 	       "function %qE used as initializer for field %qE"
! 	       " marked with %<__attribute__((tainted_args))%>",
! 	       get_fndecl (), m_field);
    }
  
  private:
*************** stmt_requires_new_enode_p (const gimple
*** 3768,3774 ****
  	 regular next state, which defeats the "detect state change" logic
  	 in process_node.  Work around this via special-casing, to ensure
  	 we split the enode immediately before any "signal" call.  */
!       if (is_special_named_call_p (call, "signal", 2))
  	return true;
      }
  
--- 3793,3799 ----
  	 regular next state, which defeats the "detect state change" logic
  	 in process_node.  Work around this via special-casing, to ensure
  	 we split the enode immediately before any "signal" call.  */
!       if (is_special_named_call_p (call, "signal", 2, true))
  	return true;
      }
  
*************** public:
*** 3991,3999 ****
      return ctxt.warn ("jump through null pointer");
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("jump through null pointer here");
    }
  
  private:
--- 4016,4026 ----
      return ctxt.warn ("jump through null pointer");
    }
  
!   bool describe_final_event (pretty_printer &pp,
! 			     const evdesc::final_event &) final override
    {
!     pp_string (&pp, "jump through null pointer here");
!     return true;
    }
  
  private:
*************** exploded_graph::dump_states_for_supernod
*** 4630,4658 ****
      "ext_state": object for extrinsic_state,
      "diagnostic_manager": object for diagnostic_manager}.  */
  
! json::object *
  exploded_graph::to_json () const
  {
!   json::object *egraph_obj = new json::object ();
  
    /* Nodes.  */
    {
!     json::array *nodes_arr = new json::array ();
      unsigned i;
      exploded_node *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
        nodes_arr->append (n->to_json (m_ext_state));
!     egraph_obj->set ("nodes", nodes_arr);
    }
  
    /* Edges.  */
    {
!     json::array *edges_arr = new json::array ();
      unsigned i;
      exploded_edge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
        edges_arr->append (n->to_json ());
!     egraph_obj->set ("edges", edges_arr);
    }
  
    /* m_sg is JSONified at the top-level.  */
--- 4657,4685 ----
      "ext_state": object for extrinsic_state,
      "diagnostic_manager": object for diagnostic_manager}.  */
  
! std::unique_ptr<json::object>
  exploded_graph::to_json () const
  {
!   auto egraph_obj = ::make_unique<json::object> ();
  
    /* Nodes.  */
    {
!     auto nodes_arr = ::make_unique<json::array> ();
      unsigned i;
      exploded_node *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
        nodes_arr->append (n->to_json (m_ext_state));
!     egraph_obj->set ("nodes", std::move (nodes_arr));
    }
  
    /* Edges.  */
    {
!     auto edges_arr = ::make_unique<json::array> ();
      unsigned i;
      exploded_edge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
        edges_arr->append (n->to_json ());
!     egraph_obj->set ("edges", std::move (edges_arr));
    }
  
    /* m_sg is JSONified at the top-level.  */
*************** exploded_path::dump_to_pp (pretty_printe
*** 4801,4812 ****
  void
  exploded_path::dump (FILE *fp, const extrinsic_state *ext_state) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, ext_state);
-   pp_flush (&pp);
  }
  
  /* Dump this path in multiline form to stderr.  */
--- 4828,4835 ----
  void
  exploded_path::dump (FILE *fp, const extrinsic_state *ext_state) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, ext_state);
  }
  
  /* Dump this path in multiline form to stderr.  */
*************** exploded_path::dump_to_file (const char
*** 4828,4834 ****
      return;
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, &ext_state);
    pp_flush (&pp);
    fclose (fp);
--- 4851,4857 ----
      return;
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
!   pp.set_output_stream (fp);
    dump_to_pp (&pp, &ext_state);
    pp_flush (&pp);
    fclose (fp);
*************** exploded_graph::dump_exploded_nodes () c
*** 5420,5426 ****
  	  pretty_printer pp;
  	  enode->get_point ().print (&pp, format (true));
  	  fprintf (outf, "%s\n", pp_formatted_text (&pp));
! 	  enode->get_state ().dump_to_file (m_ext_state, false, true, outf);
  	}
  
        fclose (outf);
--- 5443,5449 ----
  	  pretty_printer pp;
  	  enode->get_point ().print (&pp, format (true));
  	  fprintf (outf, "%s\n", pp_formatted_text (&pp));
! 	  text_art::dump_to_file (enode->get_state (), outf);
  	}
  
        fclose (outf);
*************** exploded_graph::dump_exploded_nodes () c
*** 5439,5445 ****
  	    = xasprintf ("%s.en-%i.txt", dump_base_name, i);
  	  FILE *outf = fopen (filename, "w");
  	  if (!outf)
! 	    error_at (UNKNOWN_LOCATION, "unable to open %qs for writing", filename);
  	  free (filename);
  
  	  fprintf (outf, "EN %i:\n", enode->m_index);
--- 5462,5469 ----
  	    = xasprintf ("%s.en-%i.txt", dump_base_name, i);
  	  FILE *outf = fopen (filename, "w");
  	  if (!outf)
! 	    error_at (UNKNOWN_LOCATION, "unable to open %qs for writing",
! 		      filename);
  	  free (filename);
  
  	  fprintf (outf, "EN %i:\n", enode->m_index);
*************** exploded_graph::dump_exploded_nodes () c
*** 5447,5453 ****
  	  pretty_printer pp;
  	  enode->get_point ().print (&pp, format (true));
  	  fprintf (outf, "%s\n", pp_formatted_text (&pp));
! 	  enode->get_state ().dump_to_file (m_ext_state, false, true, outf);
  
  	  fclose (outf);
  	}
--- 5471,5477 ----
  	  pretty_printer pp;
  	  enode->get_point ().print (&pp, format (true));
  	  fprintf (outf, "%s\n", pp_formatted_text (&pp));
! 	  text_art::dump_to_file (enode->get_state (), outf);
  
  	  fclose (outf);
  	}
*************** dump_analyzer_json (const supergraph &sg
*** 6070,6076 ****
        return;
      }
  
!   json::object *toplev_obj = new json::object ();
    toplev_obj->set ("sgraph", sg.to_json ());
    toplev_obj->set ("egraph", eg.to_json ());
  
--- 6094,6100 ----
        return;
      }
  
!   auto toplev_obj = ::make_unique<json::object> ();
    toplev_obj->set ("sgraph", sg.to_json ());
    toplev_obj->set ("egraph", eg.to_json ());
  
*************** dump_analyzer_json (const supergraph &sg
*** 6078,6085 ****
    toplev_obj->print (&pp, flag_diagnostics_json_formatting);
    pp_formatted_text (&pp);
  
-   delete toplev_obj;
- 
    if (gzputs (output, pp_formatted_text (&pp)) == EOF
        || gzclose (output))
      error_at (UNKNOWN_LOCATION, "error writing %qs", filename);
--- 6102,6107 ----
*************** run_checkers ()
*** 6302,6308 ****
      get_or_create_any_logfile ();
      if (dump_fout)
        the_logger.set_logger (new logger (dump_fout, 0, 0,
! 					 *global_dc->printer));
      LOG_SCOPE (the_logger.get_logger ());
  
      impl_run_checkers (the_logger.get_logger ());
--- 6324,6330 ----
      get_or_create_any_logfile ();
      if (dump_fout)
        the_logger.set_logger (new logger (dump_fout, 0, 0,
! 					 *global_dc->get_reference_printer ()));
      LOG_SCOPE (the_logger.get_logger ());
  
      impl_run_checkers (the_logger.get_logger ());
diff -Nrcpad gcc-14.2.0/gcc/analyzer/engine.h gcc-15.1.0/gcc/analyzer/engine.h
*** gcc-14.2.0/gcc/analyzer/engine.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/engine.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* The analysis "engine".
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/event-loc-info.h gcc-15.1.0/gcc/analyzer/event-loc-info.h
*** gcc-14.2.0/gcc/analyzer/event-loc-info.h	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/analyzer/event-loc-info.h	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,41 ----
+ /* A bundle of location information for a checker_event.
+    Copyright (C) 2019-2025 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ANALYZER_EVENT_LOC_INFO_H
+ #define GCC_ANALYZER_EVENT_LOC_INFO_H
+ 
+ namespace ana {
+ 
+ /* A bundle of location information for a checker_event.  */
+ 
+ struct event_loc_info
+ {
+   event_loc_info (location_t loc, tree fndecl, int depth)
+   : m_loc (loc), m_fndecl (fndecl), m_depth (depth)
+   {}
+ 
+   location_t m_loc;
+   tree m_fndecl;
+   int m_depth;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_EVENT_LOC_INFO_H */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/exploded-graph.h gcc-15.1.0/gcc/analyzer/exploded-graph.h
*** gcc-14.2.0/gcc/analyzer/exploded-graph.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/exploded-graph.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for managing a directed graph of <point, state> pairs.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for managing a directed graph of <point, state> pairs.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class exploded_node : public dnode<eg_tr
*** 239,245 ****
    void dump_processed_stmts (pretty_printer *pp) const;
    void dump_saved_diagnostics (pretty_printer *pp) const;
  
!   json::object *to_json (const extrinsic_state &ext_state) const;
  
    /* The result of on_stmt.  */
    struct on_stmt_flags
--- 239,245 ----
    void dump_processed_stmts (pretty_printer *pp) const;
    void dump_saved_diagnostics (pretty_printer *pp) const;
  
!   std::unique_ptr<json::object> to_json (const extrinsic_state &ext_state) const;
  
    /* The result of on_stmt.  */
    struct on_stmt_flags
*************** class exploded_edge : public dedge<eg_tr
*** 387,393 ****
      const final override;
    void dump_dot_label (pretty_printer *pp) const;
  
!   json::object *to_json () const;
  
    //private:
    const superedge *const m_sedge;
--- 387,393 ----
      const final override;
    void dump_dot_label (pretty_printer *pp) const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    //private:
    const superedge *const m_sedge;
*************** class dynamic_call_info_t : public custo
*** 426,432 ****
  public:
    dynamic_call_info_t (const gcall *dynamic_call,
    		       const bool is_returning_call = false)
!   : m_dynamic_call (dynamic_call), 
      m_is_returning_call (is_returning_call)
    {}
  
--- 426,432 ----
  public:
    dynamic_call_info_t (const gcall *dynamic_call,
    		       const bool is_returning_call = false)
!   : m_dynamic_call (dynamic_call),
      m_is_returning_call (is_returning_call)
    {}
  
*************** public:
*** 688,694 ****
  
    void dump () const;
  
!   json::array *to_json () const;
  
  private:
    struct per_node_data
--- 688,694 ----
  
    void dump () const;
  
!   std::unique_ptr<json::array> to_json () const;
  
  private:
    struct per_node_data
*************** public:
*** 732,738 ****
      return m_scc.get_scc_id (snode.m_index);
    }
  
!   json::object *to_json () const;
  
  private:
    class key_t
--- 732,738 ----
      return m_scc.get_scc_id (snode.m_index);
    }
  
!   std::unique_ptr<json::object> to_json () const;
  
  private:
    class key_t
*************** public:
*** 867,873 ****
    void dump_states_for_supernode (FILE *, const supernode *snode) const;
    void dump_exploded_nodes () const;
  
!   json::object *to_json () const;
  
    exploded_node *get_node_by_index (int idx) const;
  
--- 867,873 ----
    void dump_states_for_supernode (FILE *, const supernode *snode) const;
    void dump_exploded_nodes () const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    exploded_node *get_node_by_index (int idx) const;
  
*************** public:
*** 1035,1040 ****
--- 1035,1041 ----
    virtual ~stmt_finder () {}
    virtual std::unique_ptr<stmt_finder> clone () const = 0;
    virtual const gimple *find_stmt (const exploded_path &epath) = 0;
+   virtual void update_event_loc_info (event_loc_info &) = 0;
  };
  
  // TODO: split the above up?
diff -Nrcpad gcc-14.2.0/gcc/analyzer/feasible-graph.cc gcc-15.1.0/gcc/analyzer/feasible-graph.cc
*** gcc-14.2.0/gcc/analyzer/feasible-graph.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/feasible-graph.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** feasible_graph::dump_feasible_path (cons
*** 300,306 ****
    FILE *fp = fopen (filename, "w");
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
!   pp.buffer->stream = fp;
    dump_feasible_path (dst_fnode, &pp);
    pp_flush (&pp);
    fclose (fp);
--- 300,306 ----
    FILE *fp = fopen (filename, "w");
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
!   pp.set_output_stream (fp);
    dump_feasible_path (dst_fnode, &pp);
    pp_flush (&pp);
    fclose (fp);
diff -Nrcpad gcc-14.2.0/gcc/analyzer/feasible-graph.h gcc-15.1.0/gcc/analyzer/feasible-graph.h
*** gcc-14.2.0/gcc/analyzer/feasible-graph.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/feasible-graph.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/function-set.cc gcc-15.1.0/gcc/analyzer/function-set.cc
*** gcc-14.2.0/gcc/analyzer/function-set.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/function-set.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Sets of function names.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/function-set.h gcc-15.1.0/gcc/analyzer/function-set.h
*** gcc-14.2.0/gcc/analyzer/function-set.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/function-set.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Sets of function names.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/infinite-loop.cc gcc-15.1.0/gcc/analyzer/infinite-loop.cc
*** gcc-14.2.0/gcc/analyzer/infinite-loop.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/infinite-loop.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Detection of infinite loops.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Detection of infinite loops.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
--- 19,24 ----
*************** struct infinite_loop
*** 106,120 ****
  	    && m_loc == other.m_loc);
    }
  
!   json::object *
    to_json () const
    {
!     json::object *loop_obj = new json::object ();
      loop_obj->set_integer ("enode", m_enode.m_index);
!     json::array *edge_arr = new json::array ();
      for (auto eedge : m_eedge_vec)
        edge_arr->append (eedge->to_json ());
!     loop_obj->set ("eedges", edge_arr);
      return loop_obj;
    }
  
--- 105,119 ----
  	    && m_loc == other.m_loc);
    }
  
!   std::unique_ptr<json::object>
    to_json () const
    {
!     auto loop_obj = ::make_unique<json::object> ();
      loop_obj->set_integer ("enode", m_enode.m_index);
!     auto edge_arr = ::make_unique<json::array> ();
      for (auto eedge : m_eedge_vec)
        edge_arr->append (eedge->to_json ());
!     loop_obj->set ("eedges", std::move (edge_arr));
      return loop_obj;
    }
  
*************** public:
*** 136,142 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override
    {
      bool user_facing = !flag_analyzer_verbose_edges;
      label_text edge_desc (m_sedge->get_description (user_facing));
--- 135,141 ----
    {
    }
  
!   void print_desc (pretty_printer &pp) const final override
    {
      bool user_facing = !flag_analyzer_verbose_edges;
      label_text edge_desc (m_sedge->get_description (user_facing));
*************** public:
*** 144,164 ****
        {
  	if (edge_desc.get () && strlen (edge_desc.get ()) > 0)
  	  {
! 	    label_text cond_desc = maybe_describe_condition (can_colorize);
! 	    label_text result;
  	    if (cond_desc.get ())
! 	      return make_label_text
! 		(can_colorize,
! 		 "%s: always following %qs branch...",
! 		 cond_desc.get (), edge_desc.get ());
  	    else
! 	      return make_label_text
! 		(can_colorize,
! 		 "if it ever follows %qs branch, it will always do so...",
! 		 edge_desc.get ());
  	  }
        }
!     return start_cfg_edge_event::get_desc (can_colorize);
    }
  };
  
--- 143,178 ----
        {
  	if (edge_desc.get () && strlen (edge_desc.get ()) > 0)
  	  {
! 	    label_text cond_desc
! 	      = maybe_describe_condition (pp_show_color (&pp));
  	    if (cond_desc.get ())
! 	      pp_printf (&pp,
! 			 "%s: always following %qs branch...",
! 			 cond_desc.get (), edge_desc.get ());
  	    else
! 	      pp_printf (&pp,
! 			 "if it ever follows %qs branch,"
! 			 " it will always do so...",
! 			 edge_desc.get ());
  	  }
        }
!     else
!       return start_cfg_edge_event::print_desc (pp);
!   }
! };
! 
! class looping_back_event : public start_cfg_edge_event
! {
! public:
!   looping_back_event (const exploded_edge &eedge,
! 		      const event_loc_info &loc_info)
!   : start_cfg_edge_event (eedge, loc_info)
!   {
!   }
! 
!   void print_desc (pretty_printer &pp) const final override
!   {
!     pp_string (&pp, "looping back...");
    }
  };
  
*************** public:
*** 206,220 ****
      return true;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("infinite loop here");
    }
  
    /* Customize the location where the warning_event appears.  */
    void add_final_event (const state_machine *,
  			const exploded_node *enode,
! 			const gimple *,
  			tree,
  			state_machine::state_t,
  			checker_path *emission_path) final override
--- 220,237 ----
      return true;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_string (&pp, "infinite loop here");
!     return true;
    }
  
    /* Customize the location where the warning_event appears.  */
    void add_final_event (const state_machine *,
  			const exploded_node *enode,
! 			const event_loc_info &,
  			tree,
  			state_machine::state_t,
  			checker_path *emission_path) final override
*************** public:
*** 300,307 ****
  	else if (cfg_sedge->back_edge_p ())
  	  {
  	    emission_path->add_event
! 	      (make_unique<precanned_custom_event>
! 	       (loc_info_from, "looping back..."));
  	    emission_path->add_event
  	      (make_unique<end_cfg_edge_event>
  	       (*eedge,
--- 317,323 ----
  	else if (cfg_sedge->back_edge_p ())
  	  {
  	    emission_path->add_event
! 	      (make_unique<looping_back_event> (*eedge, loc_info_from));
  	    emission_path->add_event
  	      (make_unique<end_cfg_edge_event>
  	       (*eedge,
diff -Nrcpad gcc-14.2.0/gcc/analyzer/infinite-recursion.cc gcc-15.1.0/gcc/analyzer/infinite-recursion.cc
*** gcc-14.2.0/gcc/analyzer/infinite-recursion.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/infinite-recursion.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Detection of infinite recursion.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Detection of infinite recursion.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** public:
*** 102,118 ****
      return ctxt.warn ("infinite recursion");
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      const int frames_consumed = (m_new_entry_enode->get_stack_depth ()
  				 - m_prev_entry_enode->get_stack_depth ());
      if (frames_consumed > 1)
!       return ev.formatted_print
! 	("apparently infinite chain of mutually-recursive function calls,"
! 	 " consuming %i stack frames per recursion",
! 	 frames_consumed);
      else
!       return ev.formatted_print ("apparently infinite recursion");
    }
  
    void
--- 102,121 ----
      return ctxt.warn ("infinite recursion");
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      const int frames_consumed = (m_new_entry_enode->get_stack_depth ()
  				 - m_prev_entry_enode->get_stack_depth ());
      if (frames_consumed > 1)
!       pp_printf (&pp,
! 		 "apparently infinite chain of mutually-recursive function"
! 		 " calls, consuming %i stack frames per recursion",
! 		 frames_consumed);
      else
!       pp_string (&pp, "apparently infinite recursion");
!     return true;
    }
  
    void
*************** public:
*** 135,159 ****
        {
        }
  
!       label_text
!       get_desc (bool can_colorize) const final override
        {
  	if (m_topmost)
  	  {
  	    if (m_pd.m_prev_entry_event
  		&& m_pd.m_prev_entry_event->get_id_ptr ()->known_p ())
! 	      return make_label_text
! 		(can_colorize,
! 		 "recursive entry to %qE; previously entered at %@",
! 		 m_effective_fndecl,
! 		 m_pd.m_prev_entry_event->get_id_ptr ());
  	    else
! 	      return make_label_text (can_colorize, "recursive entry to %qE",
! 				      m_effective_fndecl);
  	  }
  	else
! 	  return make_label_text (can_colorize, "initial entry to %qE",
! 				  m_effective_fndecl);
        }
  
      private:
--- 138,163 ----
        {
        }
  
!       void
!       print_desc (pretty_printer &pp) const final override
        {
  	if (m_topmost)
  	  {
  	    if (m_pd.m_prev_entry_event
  		&& m_pd.m_prev_entry_event->get_id_ptr ()->known_p ())
! 	      pp_printf (&pp,
! 			 "recursive entry to %qE; previously entered at %@",
! 			 m_effective_fndecl,
! 			 m_pd.m_prev_entry_event->get_id_ptr ());
  	    else
! 	      pp_printf (&pp,
! 			 "recursive entry to %qE",
! 			 m_effective_fndecl);
  	  }
  	else
! 	  pp_printf (&pp,
! 		     "initial entry to %qE",
! 		     m_effective_fndecl);
        }
  
      private:
*************** public:
*** 182,188 ****
       it at the topmost entrypoint to the function.  */
    void add_final_event (const state_machine *,
  			const exploded_node *enode,
! 			const gimple *,
  			tree,
  			state_machine::state_t,
  			checker_path *emission_path) final override
--- 186,192 ----
       it at the topmost entrypoint to the function.  */
    void add_final_event (const state_machine *,
  			const exploded_node *enode,
! 			const event_loc_info &,
  			tree,
  			state_machine::state_t,
  			checker_path *emission_path) final override
diff -Nrcpad gcc-14.2.0/gcc/analyzer/inlining-iterator.h gcc-15.1.0/gcc/analyzer/inlining-iterator.h
*** gcc-14.2.0/gcc/analyzer/inlining-iterator.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/inlining-iterator.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Iterator for walking a chain of inlining locations.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Iterator for walking a chain of inlining locations.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/kf-analyzer.cc gcc-15.1.0/gcc/analyzer/kf-analyzer.cc
*** gcc-14.2.0/gcc/analyzer/kf-analyzer.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/kf-analyzer.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handling for the various __analyzer_* known functions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the various __analyzer_* known functions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,41 ----
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/call-details.h"
  #include "make-unique.h"
+ #include "pretty-print-markup.h"
  
  #if ENABLE_ANALYZER
  
*************** public:
*** 175,197 ****
         probably most user-friendly.  */
      escaped_decls.qsort (cmp_decls_ptr_ptr);
  
!     pretty_printer pp;
!     pp_format_decoder (&pp) = default_tree_printer;
!     pp_show_color (&pp) = pp_show_color (global_dc->printer);
!     bool first = true;
!     for (auto iter : escaped_decls)
        {
- 	if (first)
- 	  first = false;
- 	else
- 	  pp_string (&pp, ", ");
- 	pp_printf (&pp, "%qD", iter);
        }
      /* Print the number to make it easier to write DejaGnu tests for
         the "nothing has escaped" case.  */
!     warning_at (cd.get_location (), 0, "escaped: %i: %s",
  		escaped_decls.length (),
! 		pp_formatted_text (&pp));
    }
  };
  
--- 176,215 ----
         probably most user-friendly.  */
      escaped_decls.qsort (cmp_decls_ptr_ptr);
  
!     class escaped_list_element : public pp_element
!     {
!     public:
!       escaped_list_element (auto_vec<tree> &escaped_decls)
!       : m_escaped_decls (escaped_decls)
        {
        }
+ 
+       void add_to_phase_2 (pp_markup::context &ctxt) final override
+       {
+ 	/* We can't call pp_printf directly on ctxt.m_pp from within
+ 	   formatting.  As a workaround, work with a clone of the pp.  */
+ 	std::unique_ptr<pretty_printer> pp (ctxt.m_pp.clone ());
+ 	bool first = true;
+ 	for (auto iter : m_escaped_decls)
+ 	  {
+ 	    if (first)
+ 	      first = false;
+ 	    else
+ 	      pp_string (pp.get (), ", ");
+ 	    pp_printf (pp.get (), "%qD", iter);
+ 	  }
+ 	pp_string (&ctxt.m_pp, pp_formatted_text (pp.get ()));
+       }
+ 
+     private:
+       auto_vec<tree> &m_escaped_decls;
+     } e_escaped (escaped_decls);
+ 
      /* Print the number to make it easier to write DejaGnu tests for
         the "nothing has escaped" case.  */
!     warning_at (cd.get_location (), 0, "escaped: %i: %e",
  		escaped_decls.length (),
! 		&e_escaped);
    }
  };
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/kf-lang-cp.cc gcc-15.1.0/gcc/analyzer/kf-lang-cp.cc
*** gcc-14.2.0/gcc/analyzer/kf-lang-cp.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/kf-lang-cp.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handling for the known behavior of various functions specific to C++.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the known behavior of various functions specific to C++.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
diff -Nrcpad gcc-14.2.0/gcc/analyzer/kf.cc gcc-15.1.0/gcc/analyzer/kf.cc
*** gcc-14.2.0/gcc/analyzer/kf.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/kf.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handling for the known behavior of various specific functions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the known behavior of various specific functions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** public:
*** 816,829 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_var_decl)
!       return ev.formatted_print ("%qE on a pointer to automatic variable %qE",
! 				 m_fndecl, m_var_decl);
      else
!       return ev.formatted_print ("%qE on a pointer to an on-stack buffer",
! 				 m_fndecl);
    }
  
    void mark_interesting_stuff (interesting_t *interest) final override
--- 816,834 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_var_decl)
!       pp_printf  (&pp,
! 		  "%qE on a pointer to automatic variable %qE",
! 		  m_fndecl, m_var_decl);
      else
!       pp_printf  (&pp,
! 		  "%qE on a pointer to an on-stack buffer",
! 		  m_fndecl);
!     return true;
    }
  
    void mark_interesting_stuff (interesting_t *interest) final override
*************** kf_realloc::impl_call_post (const call_d
*** 968,978 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
!       return make_label_text (can_colorize,
! 			      "when %qE succeeds, without moving buffer",
! 			      get_fndecl ());
      }
  
      bool update_model (region_model *model,
--- 973,983 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
!       pp_printf (&pp,
! 		 "when %qE succeeds, without moving buffer",
! 		 get_fndecl ());
      }
  
      bool update_model (region_model *model,
*************** kf_realloc::impl_call_post (const call_d
*** 1021,1031 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
!       return make_label_text (can_colorize,
! 			      "when %qE succeeds, moving buffer",
! 			      get_fndecl ());
      }
      bool update_model (region_model *model,
  		       const exploded_edge *,
--- 1026,1036 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
!       pp_printf (&pp,
! 		 "when %qE succeeds, moving buffer",
! 		 get_fndecl ());
      }
      bool update_model (region_model *model,
  		       const exploded_edge *,
*************** kf_strchr::impl_call_post (const call_de
*** 1163,1178 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
        if (m_found)
! 	return make_label_text (can_colorize,
! 				"when %qE returns non-NULL",
! 				get_fndecl ());
        else
! 	return make_label_text (can_colorize,
! 				"when %qE returns NULL",
! 				get_fndecl ());
      }
  
      bool update_model (region_model *model,
--- 1168,1183 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
        if (m_found)
! 	pp_printf (&pp,
! 		   "when %qE returns non-NULL",
! 		   get_fndecl ());
        else
! 	pp_printf (&pp,
! 		   "when %qE returns NULL",
! 		   get_fndecl ());
      }
  
      bool update_model (region_model *model,
*************** kf_strncpy::impl_call_post (const call_d
*** 1519,1534 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
        if (m_truncated_read)
! 	return make_label_text (can_colorize,
! 				"when %qE truncates the source string",
! 				get_fndecl ());
        else
! 	return make_label_text (can_colorize,
! 				"when %qE copies the full source string",
! 				get_fndecl ());
      }
  
      bool update_model (region_model *model,
--- 1524,1539 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
        if (m_truncated_read)
! 	pp_printf (&pp,
! 		   "when %qE truncates the source string",
! 		   get_fndecl ());
        else
! 	pp_printf (&pp,
! 		   "when %qE copies the full source string",
! 		   get_fndecl ());
      }
  
      bool update_model (region_model *model,
*************** kf_strstr::impl_call_post (const call_de
*** 1720,1735 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
        if (m_found)
! 	return make_label_text (can_colorize,
! 				"when %qE returns non-NULL",
! 				get_fndecl ());
        else
! 	return make_label_text (can_colorize,
! 				"when %qE returns NULL",
! 				get_fndecl ());
      }
  
      bool update_model (region_model *model,
--- 1725,1740 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
        if (m_found)
! 	pp_printf (&pp,
! 		   "when %qE returns non-NULL",
! 		   get_fndecl ());
        else
! 	pp_printf (&pp,
! 		   "when %qE returns NULL",
! 		   get_fndecl ());
      }
  
      bool update_model (region_model *model,
*************** public:
*** 1814,1826 ****
        return false;
      }
  
!     label_text describe_final_event (const evdesc::final_event &ev)
!       final override
      {
!       return ev.formatted_print
! 	("calling %qD for first time with NULL as argument 1"
! 	 " has undefined behavior",
! 	 get_callee_fndecl ());
      }
    };
  
--- 1819,1833 ----
        return false;
      }
  
!     bool
!     describe_final_event (pretty_printer &pp,
! 			  const evdesc::final_event &) final override
      {
!       pp_printf (&pp,
! 		 "calling %qD for first time with NULL as argument 1"
! 		 " has undefined behavior",
! 		 get_callee_fndecl ());
!       return true;
      }
    };
  
*************** public:
*** 1844,1876 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
        if (m_nonnull_str)
  	{
  	  if (m_found)
! 	    return make_label_text
! 	      (can_colorize,
! 	       "when %qE on non-NULL string returns non-NULL",
! 	       get_fndecl ());
  	  else
! 	    return make_label_text
! 	      (can_colorize,
! 	       "when %qE on non-NULL string returns NULL",
! 	       get_fndecl ());
  	}
        else
  	{
  	  if (m_found)
! 	    return make_label_text
! 	      (can_colorize,
! 	       "when %qE with NULL string (using prior) returns non-NULL",
! 	       get_fndecl ());
  	  else
! 	    return make_label_text
! 	      (can_colorize,
! 	       "when %qE with NULL string (using prior) returns NULL",
! 	       get_fndecl ());
  	}
      }
  
--- 1851,1880 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
        if (m_nonnull_str)
  	{
  	  if (m_found)
! 	    pp_printf (&pp,
! 		       "when %qE on non-NULL string returns non-NULL",
! 		       get_fndecl ());
  	  else
! 	    pp_printf (&pp,
! 		       "when %qE on non-NULL string returns NULL",
! 		       get_fndecl ());
  	}
        else
  	{
  	  if (m_found)
! 	    pp_printf (&pp,
! 		       "when %qE with NULL string (using prior) returns"
! 		       " non-NULL",
! 		       get_fndecl ());
  	  else
! 	    pp_printf (&pp,
! 		       "when %qE with NULL string (using prior) returns NULL",
! 		       get_fndecl ());
  	}
      }
  
*************** private:
*** 2057,2067 ****
    const private_region m_private_reg;
  };
  
- class kf_ubsan_bounds : public internal_known_function
- {
-   /* Empty.  */
- };
- 
  /* Handle calls to functions referenced by
     __attribute__((malloc(FOO))).  */
  
--- 2061,2066 ----
*************** register_atomic_builtins (known_function
*** 2198,2203 ****
--- 2197,2209 ----
  	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
  }
  
+ /* Handle calls to the various IFN_UBSAN_* with no return value.
+    For now, treat these as no-ops.  */
+ 
+ class kf_ubsan_noop : public internal_known_function
+ {
+ };
+ 
  /* Handle calls to the various __builtin___ubsan_handle_*.
     These can return, but continuing after such a return
     isn't likely to be interesting to the user of the analyzer.
*************** class kf_ubsan_handler : public internal
*** 2215,2220 ****
--- 2221,2235 ----
  static void
  register_sanitizer_builtins (known_function_manager &kfm)
  {
+   /* Handle calls to the various IFN_UBSAN_* with no return value.
+      For now, treat these as no-ops.  */
+   kfm.add (IFN_UBSAN_NULL,
+ 	   make_unique<kf_ubsan_noop> ());
+   kfm.add (IFN_UBSAN_BOUNDS,
+ 	   make_unique<kf_ubsan_noop> ());
+   kfm.add (IFN_UBSAN_PTR,
+ 	   make_unique<kf_ubsan_noop> ());
+ 
    kfm.add (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
  	   make_unique<kf_ubsan_handler> ());
  }
*************** register_known_functions (known_function
*** 2232,2238 ****
    /* Internal fns the analyzer has known_functions for.  */
    {
      kfm.add (IFN_BUILTIN_EXPECT, make_unique<kf_expect> ());
-     kfm.add (IFN_UBSAN_BOUNDS, make_unique<kf_ubsan_bounds> ());
    }
  
    /* GCC built-ins that do not correspond to a function
--- 2247,2252 ----
*************** register_known_functions (known_function
*** 2324,2329 ****
--- 2338,2347 ----
      kfm.add ("__errno_location", make_unique<kf_errno_location> ());
      kfm.add ("error", make_unique<kf_error> (3));
      kfm.add ("error_at_line", make_unique<kf_error> (5));
+     /* Variants of "error" and "error_at_line" seen by the
+        analyzer at -O0 (PR analyzer/115724).  */
+     kfm.add ("__error_alias", make_unique<kf_error> (3));
+     kfm.add ("__error_at_line_alias", make_unique<kf_error> (5));
    }
  
    /* Other implementations of C standard library.  */
*************** register_known_functions (known_function
*** 2344,2349 ****
--- 2362,2389 ----
  
    /* Language-specific support functions.  */
    register_known_functions_lang_cp (kfm);
+ 
+   /* Some C++ implementations use the std:: copies of these functions
+      from <cstdlib> etc for the C spellings of these headers (e.g. <stdlib.h>),
+      so we must match against these too.  */
+   {
+     kfm.add_std_ns ("malloc", make_unique<kf_malloc> ());
+     kfm.add_std_ns ("free", make_unique<kf_free> ());
+     kfm.add_std_ns ("realloc", make_unique<kf_realloc> ());
+     kfm.add_std_ns ("calloc", make_unique<kf_calloc> ());
+     kfm.add_std_ns
+       ("memcpy",
+        make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
+     kfm.add_std_ns
+       ("memmove",
+        make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
+     kfm.add_std_ns ("memset", make_unique<kf_memset> (false));
+     kfm.add_std_ns ("strcat", make_unique<kf_strcat> (2, false));
+     kfm.add_std_ns ("strcpy", make_unique<kf_strcpy> (2, false));
+     kfm.add_std_ns ("strlen", make_unique<kf_strlen> ());
+     kfm.add_std_ns ("strncpy", make_unique<kf_strncpy> ());
+     kfm.add_std_ns ("strtok", make_unique<kf_strtok> (rmm));
+   }
  }
  
  } // namespace ana
diff -Nrcpad gcc-14.2.0/gcc/analyzer/known-function-manager.cc gcc-15.1.0/gcc/analyzer/known-function-manager.cc
*** gcc-14.2.0/gcc/analyzer/known-function-manager.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/known-function-manager.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** known_function_manager::~known_function_
*** 50,55 ****
--- 50,57 ----
    /* Delete all owned kfs.  */
    for (auto iter : m_map_id_to_kf)
      delete iter.second;
+   for (auto iter : m_std_ns_map_id_to_kf)
+     delete iter.second;
    for (auto iter : m_combined_fns_arr)
      delete iter;
  }
*************** known_function_manager::add (const char
*** 64,69 ****
--- 66,80 ----
  }
  
  void
+ known_function_manager::add_std_ns (const char *name,
+ 			     std::unique_ptr<known_function> kf)
+ {
+   LOG_FUNC_1 (get_logger (), "registering std::%s", name);
+   tree id = get_identifier (name);
+   m_std_ns_map_id_to_kf.put (id, kf.release ());
+ }
+ 
+ void
  known_function_manager::add (enum built_in_function name,
  			     std::unique_ptr<known_function> kf)
  {
*************** known_function_manager::get_match (tree
*** 104,110 ****
  
    /* Look for a match by name.  */
  
!   /* Reject fndecls that aren't in the root namespace.  */
    if (DECL_CONTEXT (fndecl)
        && TREE_CODE (DECL_CONTEXT (fndecl)) != TRANSLATION_UNIT_DECL)
      return NULL;
--- 115,130 ----
  
    /* Look for a match by name.  */
  
!   if (is_std_function_p (fndecl))
!     {
!       if (tree identifier = DECL_NAME (fndecl))
! 	if (const known_function *candidate
! 	      = get_by_identifier_in_std_ns (identifier))
! 	  if (candidate->matches_call_types_p (cd))
! 	    return candidate;
!       return nullptr;
!     }
! 
    if (DECL_CONTEXT (fndecl)
        && TREE_CODE (DECL_CONTEXT (fndecl)) != TRANSLATION_UNIT_DECL)
      return NULL;
*************** known_function_manager::get_by_identifie
*** 158,163 ****
--- 178,199 ----
      return NULL;
  }
  
+ /* Get any known_function in C++ std:: namespace matching IDENTIFIER, without
+    type-checking.
+    Return nullptr if there isn't one.  */
+ 
+ const known_function *
+ known_function_manager::get_by_identifier_in_std_ns (tree identifier) const
+ {
+   known_function_manager *mut_this = const_cast<known_function_manager *>(this);
+   known_function **slot = mut_this->m_std_ns_map_id_to_kf.get (identifier);
+   if (slot)
+     return *slot;
+   else
+     return nullptr;
+ }
+ 
+ 
  } // namespace ana
  
  #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/known-function-manager.h gcc-15.1.0/gcc/analyzer/known-function-manager.h
*** gcc-14.2.0/gcc/analyzer/known-function-manager.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/known-function-manager.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 44,49 ****
--- 44,50 ----
    ~known_function_manager ();
  
    void add (const char *name, std::unique_ptr<known_function> kf);
+   void add_std_ns (const char *name, std::unique_ptr<known_function> kf);
    void add (enum built_in_function name, std::unique_ptr<known_function> kf);
    void add (enum internal_fn ifn, std::unique_ptr<known_function> kf);
  
*************** private:
*** 57,67 ****
--- 58,72 ----
    const known_function *
    get_normal_builtin (const builtin_known_function *builtin_kf) const;
    const known_function *get_by_identifier (tree identifier) const;
+   const known_function *get_by_identifier_in_std_ns (tree identifier) const;
  
    /* Map from identifier to known_function instance.
       Has ownership of the latter.  */
    hash_map<tree, known_function *> m_map_id_to_kf;
  
+   /* Likewise for C++'s std:: namespace.  */
+   hash_map<tree, known_function *> m_std_ns_map_id_to_kf;
+ 
    /* Array of known builtins.  */
    known_function *m_combined_fns_arr[CFN_LAST];
  };
diff -Nrcpad gcc-14.2.0/gcc/analyzer/pending-diagnostic.cc gcc-15.1.0/gcc/analyzer/pending-diagnostic.cc
*** gcc-14.2.0/gcc/analyzer/pending-diagnostic.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/pending-diagnostic.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** interesting_t::dump_to_pp (pretty_printe
*** 82,114 ****
    pp_string (pp, "]}");
  }
  
- /* Generate a label_text by printing FMT.
- 
-    Use a clone of the global_dc for formatting callbacks.
- 
-    Use this evdesc::event_desc's m_colorize flag to control colorization
-    (so that e.g. we can disable it for JSON output).  */
- 
- label_text
- evdesc::event_desc::formatted_print (const char *fmt, ...) const
- {
-   pretty_printer *pp = global_dc->printer->clone ();
- 
-   pp_show_color (pp) = m_colorize;
- 
-   rich_location rich_loc (line_table, UNKNOWN_LOCATION);
-   va_list ap;
-   va_start (ap, fmt);
-   text_info ti (_(fmt), &ap, 0, nullptr, &rich_loc);
-   pp_format (pp, &ti);
-   pp_output_formatted_text (pp);
-   va_end (ap);
- 
-   label_text result = label_text::take (xstrdup (pp_formatted_text (pp)));
-   delete pp;
-   return result;
- }
- 
  /* class diagnostic_emission_context.  */
  
  /* Get the pending_diagnostic being emitted.  */
--- 82,87 ----
*************** pending_diagnostic::add_region_creation_
*** 269,283 ****
  void
  pending_diagnostic::add_final_event (const state_machine *sm,
  				     const exploded_node *enode,
! 				     const gimple *stmt,
  				     tree var, state_machine::state_t state,
  				     checker_path *emission_path)
  {
    emission_path->add_event
      (make_unique<warning_event>
!      (event_loc_info (get_stmt_location (stmt, enode->get_function ()),
! 		      enode->get_function ()->decl,
! 		      enode->get_stack_depth ()),
        enode,
        sm, var, state));
  }
--- 242,254 ----
  void
  pending_diagnostic::add_final_event (const state_machine *sm,
  				     const exploded_node *enode,
! 				     const event_loc_info &loc_info,
  				     tree var, state_machine::state_t state,
  				     checker_path *emission_path)
  {
    emission_path->add_event
      (make_unique<warning_event>
!      (loc_info,
        enode,
        sm, var, state));
  }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/pending-diagnostic.h gcc-15.1.0/gcc/analyzer/pending-diagnostic.h
*** gcc-14.2.0/gcc/analyzer/pending-diagnostic.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/pending-diagnostic.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** struct interesting_t
*** 50,78 ****
  
  namespace evdesc {
  
- struct event_desc
- {
-   event_desc (bool colorize) : m_colorize (colorize) {}
- 
-   label_text formatted_print (const char *fmt, ...) const
-     ATTRIBUTE_GCC_DIAG(2,3);
- 
-   bool m_colorize;
- };
- 
  /* For use by pending_diagnostic::describe_state_change.  */
  
! struct state_change : public event_desc
  {
!   state_change (bool colorize,
! 		tree expr,
  		tree origin,
  		state_machine::state_t old_state,
  		state_machine::state_t new_state,
  		diagnostic_event_id_t event_id,
  		const state_change_event &event)
!   : event_desc (colorize),
!     m_expr (expr), m_origin (origin),
      m_old_state (old_state), m_new_state (new_state),
      m_event_id (event_id), m_event (event)
    {}
--- 50,66 ----
  
  namespace evdesc {
  
  /* For use by pending_diagnostic::describe_state_change.  */
  
! struct state_change
  {
!   state_change (tree expr,
  		tree origin,
  		state_machine::state_t old_state,
  		state_machine::state_t new_state,
  		diagnostic_event_id_t event_id,
  		const state_change_event &event)
!   : m_expr (expr), m_origin (origin),
      m_old_state (old_state), m_new_state (new_state),
      m_event_id (event_id), m_event (event)
    {}
*************** struct state_change : public event_desc
*** 89,101 ****
  
  /* For use by pending_diagnostic::describe_call_with_state.  */
  
! struct call_with_state : public event_desc
  {
!   call_with_state (bool colorize,
! 		   tree caller_fndecl, tree callee_fndecl,
  		   tree expr, state_machine::state_t state)
!   : event_desc (colorize),
!     m_caller_fndecl (caller_fndecl),
      m_callee_fndecl (callee_fndecl),
      m_expr (expr),
      m_state (state)
--- 77,87 ----
  
  /* For use by pending_diagnostic::describe_call_with_state.  */
  
! struct call_with_state
  {
!   call_with_state (tree caller_fndecl, tree callee_fndecl,
  		   tree expr, state_machine::state_t state)
!   : m_caller_fndecl (caller_fndecl),
      m_callee_fndecl (callee_fndecl),
      m_expr (expr),
      m_state (state)
*************** struct call_with_state : public event_de
*** 110,122 ****
  
  /* For use by pending_diagnostic::describe_return_of_state.  */
  
! struct return_of_state : public event_desc
  {
!   return_of_state (bool colorize,
! 		   tree caller_fndecl, tree callee_fndecl,
  		   state_machine::state_t state)
!   : event_desc (colorize),
!     m_caller_fndecl (caller_fndecl),
      m_callee_fndecl (callee_fndecl),
      m_state (state)
    {
--- 96,106 ----
  
  /* For use by pending_diagnostic::describe_return_of_state.  */
  
! struct return_of_state
  {
!   return_of_state (tree caller_fndecl, tree callee_fndecl,
  		   state_machine::state_t state)
!   : m_caller_fndecl (caller_fndecl),
      m_callee_fndecl (callee_fndecl),
      m_state (state)
    {
*************** struct return_of_state : public event_de
*** 129,141 ****
  
  /* For use by pending_diagnostic::describe_final_event.  */
  
! struct final_event : public event_desc
  {
!   final_event (bool colorize,
! 	       tree expr, state_machine::state_t state,
  	       const warning_event &event)
!   : event_desc (colorize),
!     m_expr (expr), m_state (state), m_event (event)
    {}
  
    tree m_expr;
--- 113,123 ----
  
  /* For use by pending_diagnostic::describe_final_event.  */
  
! struct final_event
  {
!   final_event (tree expr, state_machine::state_t state,
  	       const warning_event &event)
!   : m_expr (expr), m_state (state), m_event (event)
    {}
  
    tree m_expr;
*************** class pending_diagnostic
*** 266,277 ****
       - "freed here"
       - "use after free here"
       Note how in both cases the first event is a "free": the best
!      description to use depends on the diagnostic.  */
  
!   virtual label_text describe_state_change (const evdesc::state_change &)
    {
      /* Default no-op implementation.  */
!     return label_text ();
    }
  
    /* Vfunc for implementing diagnostic_event::get_meaning for
--- 248,263 ----
       - "freed here"
       - "use after free here"
       Note how in both cases the first event is a "free": the best
!      description to use depends on the diagnostic.
  
!      Print the description to PP and return true,
!      or do nothing and return false.  */
! 
!   virtual bool describe_state_change (pretty_printer &,
! 				      const evdesc::state_change &)
    {
      /* Default no-op implementation.  */
!     return false;
    }
  
    /* Vfunc for implementing diagnostic_event::get_meaning for
*************** class pending_diagnostic
*** 291,300 ****
       to make it clearer how the freed value moves from caller to
       callee.  */
  
!   virtual label_text describe_call_with_state (const evdesc::call_with_state &)
    {
      /* Default no-op implementation.  */
!     return label_text ();
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural return
--- 277,287 ----
       to make it clearer how the freed value moves from caller to
       callee.  */
  
!   virtual bool describe_call_with_state (pretty_printer &,
! 					 const evdesc::call_with_state &)
    {
      /* Default no-op implementation.  */
!     return false;
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural return
*************** class pending_diagnostic
*** 306,315 ****
       to make it clearer how the unchecked value moves from callee
       back to caller.  */
  
!   virtual label_text describe_return_of_state (const evdesc::return_of_state &)
    {
      /* Default no-op implementation.  */
!     return label_text ();
    }
  
    /* Precision-of-wording vfunc for describing the final event within a
--- 293,303 ----
       to make it clearer how the unchecked value moves from callee
       back to caller.  */
  
!   virtual bool describe_return_of_state (pretty_printer &,
! 					 const evdesc::return_of_state &)
    {
      /* Default no-op implementation.  */
!     return false;
    }
  
    /* Precision-of-wording vfunc for describing the final event within a
*************** class pending_diagnostic
*** 320,329 ****
       and a use-after-free might use
        - "use after 'free' here; memory was freed at (2)".  */
  
!   virtual label_text describe_final_event (const evdesc::final_event &)
    {
      /* Default no-op implementation.  */
!     return label_text ();
    }
  
    /* End of precision-of-wording vfuncs.  */
--- 308,318 ----
       and a use-after-free might use
        - "use after 'free' here; memory was freed at (2)".  */
  
!   virtual bool describe_final_event (pretty_printer &,
! 				     const evdesc::final_event &)
    {
      /* Default no-op implementation.  */
!     return false;
    }
  
    /* End of precision-of-wording vfuncs.  */
*************** class pending_diagnostic
*** 371,377 ****
       of the called function.  */
    virtual void add_final_event (const state_machine *sm,
  				const exploded_node *enode,
! 				const gimple *stmt,
  				tree var, state_machine::state_t state,
  				checker_path *emission_path);
  
--- 360,366 ----
       of the called function.  */
    virtual void add_final_event (const state_machine *sm,
  				const exploded_node *enode,
! 				const event_loc_info &loc_info,
  				tree var, state_machine::state_t state,
  				checker_path *emission_path);
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/program-point.cc gcc-15.1.0/gcc/analyzer/program-point.cc
*** gcc-14.2.0/gcc/analyzer/program-point.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/program-point.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 53,58 ****
--- 53,59 ----
  #include "analyzer/exploded-graph.h"
  #include "analyzer/analysis-plan.h"
  #include "analyzer/inlining-iterator.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** function_point::print_source_line (prett
*** 276,283 ****
    // TODO: monospace font
    debug_diagnostic_context tmp_dc;
    gcc_rich_location richloc (stmt->location);
!   diagnostic_show_locus (&tmp_dc, &richloc, DK_ERROR);
!   pp_string (pp, pp_formatted_text (tmp_dc.printer));
  }
  
  /* class program_point.  */
--- 277,286 ----
    // TODO: monospace font
    debug_diagnostic_context tmp_dc;
    gcc_rich_location richloc (stmt->location);
!   diagnostic_source_print_policy source_policy (tmp_dc);
!   gcc_assert (pp);
!   source_policy.print (*pp, richloc, DK_ERROR, nullptr);
!   pp_string (pp, pp_formatted_text (tmp_dc.get_reference_printer ()));
  }
  
  /* class program_point.  */
*************** program_point::print (pretty_printer *pp
*** 299,309 ****
  DEBUG_FUNCTION void
  program_point::dump () const
  {
!   pretty_printer pp;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    print (&pp, format (true));
-   pp_flush (&pp);
  }
  
  /* Return a new json::object of the form
--- 302,309 ----
  DEBUG_FUNCTION void
  program_point::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    print (&pp, format (true));
  }
  
  /* Return a new json::object of the form
*************** program_point::dump () const
*** 313,340 ****
      "stmt_idx": int (only for kind=='PK_BEFORE_STMT',
      "call_string": object for the call_string}.  */
  
! json::object *
  program_point::to_json () const
  {
!   json::object *point_obj = new json::object ();
  
!   point_obj->set ("kind",
! 		  new json::string (point_kind_to_string (get_kind ())));
  
    if (get_supernode ())
!     point_obj->set ("snode_idx",
! 		    new json::integer_number (get_supernode ()->m_index));
  
    switch (get_kind ())
      {
      default: break;
      case PK_BEFORE_SUPERNODE:
        if (const superedge *sedge = get_from_edge ())
! 	point_obj->set ("from_edge_snode_idx",
! 			new json::integer_number (sedge->m_src->m_index));
        break;
      case PK_BEFORE_STMT:
!       point_obj->set ("stmt_idx", new json::integer_number (get_stmt_idx ()));
        break;
      }
  
--- 313,337 ----
      "stmt_idx": int (only for kind=='PK_BEFORE_STMT',
      "call_string": object for the call_string}.  */
  
! std::unique_ptr<json::object>
  program_point::to_json () const
  {
!   auto point_obj = ::make_unique<json::object> ();
  
!   point_obj->set_string ("kind", point_kind_to_string (get_kind ()));
  
    if (get_supernode ())
!     point_obj->set_integer ("snode_idx", get_supernode ()->m_index);
  
    switch (get_kind ())
      {
      default: break;
      case PK_BEFORE_SUPERNODE:
        if (const superedge *sedge = get_from_edge ())
! 	point_obj->set_integer ("from_edge_snode_idx", sedge->m_src->m_index);
        break;
      case PK_BEFORE_STMT:
!       point_obj->set_integer ("stmt_idx", get_stmt_idx ());
        break;
      }
  
*************** program_point::to_json () const
*** 345,351 ****
  
  /* Update the callstack to represent a call from caller to callee.
  
!    Generally used to push a custom call to a perticular program point 
     where we don't have a superedge representing the call.  */
  void
  program_point::push_to_call_stack (const supernode *caller,
--- 342,348 ----
  
  /* Update the callstack to represent a call from caller to callee.
  
!    Generally used to push a custom call to a perticular program point
     where we don't have a superedge representing the call.  */
  void
  program_point::push_to_call_stack (const supernode *caller,
diff -Nrcpad gcc-14.2.0/gcc/analyzer/program-point.h gcc-15.1.0/gcc/analyzer/program-point.h
*** gcc-14.2.0/gcc/analyzer/program-point.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/program-point.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 184,190 ****
    void print (pretty_printer *pp, const format &f) const;
    void dump () const;
  
!   json::object *to_json () const;
  
    hashval_t hash () const;
    bool operator== (const program_point &other) const
--- 184,190 ----
    void print (pretty_printer *pp, const format &f) const;
    void dump () const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    hashval_t hash () const;
    bool operator== (const program_point &other) const
diff -Nrcpad gcc-14.2.0/gcc/analyzer/program-state.cc gcc-15.1.0/gcc/analyzer/program-state.cc
*** gcc-14.2.0/gcc/analyzer/program-state.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/program-state.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 53,58 ****
--- 53,61 ----
  #include "analyzer/state-purge.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
+ #include "text-art/tree-widget.h"
+ #include "text-art/dump.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** extrinsic_state::dump_to_pp (pretty_prin
*** 80,91 ****
  void
  extrinsic_state::dump_to_file (FILE *outf) const
  {
!   pretty_printer pp;
!   if (outf == stderr)
!     pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = outf;
    dump_to_pp (&pp);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this state to stderr.  */
--- 83,90 ----
  void
  extrinsic_state::dump_to_file (FILE *outf) const
  {
!   tree_dump_pretty_printer pp (outf);
    dump_to_pp (&pp);
  }
  
  /* Dump a multiline representation of this state to stderr.  */
*************** extrinsic_state::dump () const
*** 99,116 ****
  /* Return a new json::object of the form
     {"checkers"  : array of objects, one for each state_machine}.  */
  
! json::object *
  extrinsic_state::to_json () const
  {
!   json::object *ext_state_obj = new json::object ();
  
    {
!     json::array *checkers_arr = new json::array ();
      unsigned i;
      state_machine *sm;
      FOR_EACH_VEC_ELT (m_checkers, i, sm)
        checkers_arr->append (sm->to_json ());
!     ext_state_obj->set ("checkers", checkers_arr);
    }
  
    return ext_state_obj;
--- 98,115 ----
  /* Return a new json::object of the form
     {"checkers"  : array of objects, one for each state_machine}.  */
  
! std::unique_ptr<json::object>
  extrinsic_state::to_json () const
  {
!   auto ext_state_obj = ::make_unique<json::object> ();
  
    {
!     auto checkers_arr = ::make_unique<json::array> ();
      unsigned i;
      state_machine *sm;
      FOR_EACH_VEC_ELT (m_checkers, i, sm)
        checkers_arr->append (sm->to_json ());
!     ext_state_obj->set ("checkers", std::move (checkers_arr));
    }
  
    return ext_state_obj;
*************** sm_state_map::print (const region_model
*** 268,290 ****
  DEBUG_FUNCTION void
  sm_state_map::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    print (NULL, simple, true, &pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Return a new json::object of the form
     {"global"  : (optional) value for global state,
      SVAL_DESC : value for state}.  */
  
! json::object *
  sm_state_map::to_json () const
  {
!   json::object *map_obj = new json::object ();
  
    if (m_global_state != m_sm.get_start_state ())
      map_obj->set ("global", m_global_state->to_json ());
--- 267,285 ----
  DEBUG_FUNCTION void
  sm_state_map::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    print (NULL, simple, true, &pp);
    pp_newline (&pp);
  }
  
  /* Return a new json::object of the form
     {"global"  : (optional) value for global state,
      SVAL_DESC : value for state}.  */
  
! std::unique_ptr<json::object>
  sm_state_map::to_json () const
  {
!   auto map_obj = ::make_unique<json::object> ();
  
    if (m_global_state != m_sm.get_start_state ())
      map_obj->set ("global", m_global_state->to_json ());
*************** sm_state_map::to_json () const
*** 303,308 ****
--- 298,382 ----
    return map_obj;
  }
  
+ /* Make a text_art::tree_widget describing this sm_state_map,
+    using MODEL if non-null to describe svalues.  */
+ 
+ std::unique_ptr<text_art::tree_widget>
+ sm_state_map::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 				const region_model *model) const
+ {
+   using text_art::styled_string;
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> state_widget
+     (tree_widget::from_fmt (dwi, nullptr,
+ 			    "%qs state machine", m_sm.get_name ()));
+ 
+   if (m_global_state != m_sm.get_start_state ())
+     {
+       pretty_printer the_pp;
+       pretty_printer * const pp = &the_pp;
+       pp_format_decoder (pp) = default_tree_printer;
+       pp_string (pp, "Global State: ");
+       m_global_state->dump_to_pp (pp);
+       state_widget->add_child (tree_widget::make (dwi, pp));
+     }
+ 
+   auto_vec <const svalue *> keys (m_map.elements ());
+   for (map_t::iterator iter = m_map.begin ();
+        iter != m_map.end ();
+        ++iter)
+     keys.quick_push ((*iter).first);
+   keys.qsort (svalue::cmp_ptr_ptr);
+   unsigned i;
+   const svalue *sval;
+   FOR_EACH_VEC_ELT (keys, i, sval)
+     {
+       pretty_printer the_pp;
+       pretty_printer * const pp = &the_pp;
+       const bool simple = true;
+       pp_format_decoder (pp) = default_tree_printer;
+       if (!flag_dump_noaddr)
+ 	{
+ 	  pp_pointer (pp, sval);
+ 	  pp_string (pp, ": ");
+ 	}
+       sval->dump_to_pp (pp, simple);
+ 
+       entry_t e = *const_cast <map_t &> (m_map).get (sval);
+       pp_string (pp, ": ");
+       e.m_state->dump_to_pp (pp);
+       if (model)
+ 	if (tree rep = model->get_representative_tree (sval))
+ 	  {
+ 	    pp_string (pp, " (");
+ 	    dump_quoted_tree (pp, rep);
+ 	    pp_character (pp, ')');
+ 	  }
+       if (e.m_origin)
+ 	{
+ 	  pp_string (pp, " (origin: ");
+ 	  if (!flag_dump_noaddr)
+ 	    {
+ 	      pp_pointer (pp, e.m_origin);
+ 	      pp_string (pp, ": ");
+ 	    }
+ 	  e.m_origin->dump_to_pp (pp, simple);
+ 	  if (model)
+ 	    if (tree rep = model->get_representative_tree (e.m_origin))
+ 	      {
+ 		pp_string (pp, " (");
+ 		dump_quoted_tree (pp, rep);
+ 		pp_character (pp, ')');
+ 	      }
+ 	  pp_string (pp, ")");
+ 	}
+ 
+       state_widget->add_child (tree_widget::make (dwi, pp));
+     }
+ 
+   return state_widget;
+ }
+ 
  /* Return true if no states have been set within this map
     (all expressions are for the start state).  */
  
*************** program_state::dump_to_file (const extri
*** 1083,1095 ****
  			     bool summarize, bool multiline,
  			     FILE *outf) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   if (outf == stderr)
!     pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = outf;
    dump_to_pp (ext_state, summarize, multiline, &pp);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this state to stderr.  */
--- 1157,1164 ----
  			     bool summarize, bool multiline,
  			     FILE *outf) const
  {
!   tree_dump_pretty_printer pp (outf);
    dump_to_pp (ext_state, summarize, multiline, &pp);
  }
  
  /* Dump a multiline representation of this state to stderr.  */
*************** program_state::dump (const extrinsic_sta
*** 1101,1106 ****
--- 1170,1183 ----
    dump_to_file (ext_state, summarize, true, stderr);
  }
  
+ /* Dump a tree-like representation of this state to stderr.  */
+ 
+ DEBUG_FUNCTION void
+ program_state::dump () const
+ {
+   text_art::dump (*this);
+ }
+ 
  /* Return a new json::object of the form
     {"store"  : object for store,
      "constraints" : object for constraint_manager,
*************** program_state::dump (const extrinsic_sta
*** 1108,1117 ****
      "checkers" : { STATE_NAME : object per sm_state_map },
      "valid" : true/false}.  */
  
! json::object *
  program_state::to_json (const extrinsic_state &ext_state) const
  {
!   json::object *state_obj = new json::object ();
  
    state_obj->set ("store", m_region_model->get_store ()->to_json ());
    state_obj->set ("constraints",
--- 1185,1194 ----
      "checkers" : { STATE_NAME : object per sm_state_map },
      "valid" : true/false}.  */
  
! std::unique_ptr<json::object>
  program_state::to_json (const extrinsic_state &ext_state) const
  {
!   auto state_obj = ::make_unique<json::object> ();
  
    state_obj->set ("store", m_region_model->get_store ()->to_json ());
    state_obj->set ("constraints",
*************** program_state::to_json (const extrinsic_
*** 1122,1128 ****
  
    /* Provide m_checker_states as an object, using names as keys.  */
    {
!     json::object *checkers_obj = new json::object ();
  
      int i;
      sm_state_map *smap;
--- 1199,1205 ----
  
    /* Provide m_checker_states as an object, using names as keys.  */
    {
!     auto checkers_obj = ::make_unique<json::object> ();
  
      int i;
      sm_state_map *smap;
*************** program_state::to_json (const extrinsic_
*** 1130,1143 ****
        if (!smap->is_empty_p ())
  	checkers_obj->set (ext_state.get_name (i), smap->to_json ());
  
!     state_obj->set ("checkers", checkers_obj);
    }
  
!   state_obj->set ("valid", new json::literal (m_valid));
  
    return state_obj;
  }
  
  /* Update this program_state to reflect a top-level call to FUN.
     The params will have initial_svalues.  */
  
--- 1207,1242 ----
        if (!smap->is_empty_p ())
  	checkers_obj->set (ext_state.get_name (i), smap->to_json ());
  
!     state_obj->set ("checkers", std::move (checkers_obj));
    }
  
!   state_obj->set_bool ("valid", m_valid);
  
    return state_obj;
  }
  
+ 
+ std::unique_ptr<text_art::tree_widget>
+ program_state::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> state_widget
+     (tree_widget::from_fmt (dwi, nullptr, "State"));
+ 
+   state_widget->add_child (m_region_model->make_dump_widget (dwi));
+ 
+   /* Add nodes for any sm_state_maps with state.  */
+   {
+     int i;
+     sm_state_map *smap;
+     FOR_EACH_VEC_ELT (m_checker_states, i, smap)
+       if (!smap->is_empty_p ())
+ 	state_widget->add_child (smap->make_dump_widget (dwi, m_region_model));
+   }
+ 
+   return state_widget;
+ }
+ 
  /* Update this program_state to reflect a top-level call to FUN.
     The params will have initial_svalues.  */
  
*************** program_state::on_edge (exploded_graph &
*** 1244,1250 ****
  
  /* Update this program_state to reflect a call to function
     represented by CALL_STMT.
!    currently used only when the call doesn't have a superedge representing 
     the call ( like call via a function pointer )  */
  void
  program_state::push_call (exploded_graph &eg,
--- 1343,1349 ----
  
  /* Update this program_state to reflect a call to function
     represented by CALL_STMT.
!    currently used only when the call doesn't have a superedge representing
     the call ( like call via a function pointer )  */
  void
  program_state::push_call (exploded_graph &eg,
*************** program_state::push_call (exploded_graph
*** 1267,1273 ****
  
  /* Update this program_state to reflect a return from function
     call to which is represented by CALL_STMT.
!    currently used only when the call doesn't have a superedge representing 
     the return */
  void
  program_state::returning_call (exploded_graph &eg,
--- 1366,1372 ----
  
  /* Update this program_state to reflect a return from function
     call to which is represented by CALL_STMT.
!    currently used only when the call doesn't have a superedge representing
     the return */
  void
  program_state::returning_call (exploded_graph &eg,
diff -Nrcpad gcc-14.2.0/gcc/analyzer/program-state.h gcc-15.1.0/gcc/analyzer/program-state.h
*** gcc-14.2.0/gcc/analyzer/program-state.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/program-state.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,28 ----
  #ifndef GCC_ANALYZER_PROGRAM_STATE_H
  #define GCC_ANALYZER_PROGRAM_STATE_H
  
+ #include "text-art/widget.h"
+ 
  namespace ana {
  
  /* Data shared by all program_state instances.  */
*************** public:
*** 53,59 ****
    void dump_to_file (FILE *outf) const;
    void dump () const;
  
!   json::object *to_json () const;
  
    engine *get_engine () const { return m_engine; }
    region_model_manager *get_model_manager () const;
--- 55,61 ----
    void dump_to_file (FILE *outf) const;
    void dump () const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    engine *get_engine () const { return m_engine; }
    region_model_manager *get_model_manager () const;
*************** public:
*** 115,121 ****
  	      pretty_printer *pp) const;
    void dump (bool simple) const;
  
!   json::object *to_json () const;
  
    bool is_empty_p () const;
  
--- 117,127 ----
  	      pretty_printer *pp) const;
    void dump (bool simple) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi,
! 		    const region_model *model) const;
  
    bool is_empty_p () const;
  
*************** public:
*** 223,230 ****
    void dump_to_file (const extrinsic_state &ext_state, bool simple,
  		     bool multiline, FILE *outf) const;
    void dump (const extrinsic_state &ext_state, bool simple) const;
  
!   json::object *to_json (const extrinsic_state &ext_state) const;
  
    void push_frame (const extrinsic_state &ext_state, const function &fun);
    const function * get_current_function () const;
--- 229,241 ----
    void dump_to_file (const extrinsic_state &ext_state, bool simple,
  		     bool multiline, FILE *outf) const;
    void dump (const extrinsic_state &ext_state, bool simple) const;
+   void dump () const;
  
!   std::unique_ptr<json::object>
!   to_json (const extrinsic_state &ext_state) const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    void push_frame (const extrinsic_state &ext_state, const function &fun);
    const function * get_current_function () const;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/ranges.cc gcc-15.1.0/gcc/analyzer/ranges.cc
*** gcc-14.2.0/gcc/analyzer/ranges.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/ranges.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 53,58 ****
--- 53,59 ----
  #include "analyzer/constraint-manager.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/ranges.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** symbolic_byte_offset::dump_to_pp (pretty
*** 94,109 ****
  void
  symbolic_byte_offset::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
! json::value *
  symbolic_byte_offset::to_json () const
  {
    return m_num_bytes_sval->to_json ();
--- 95,106 ----
  void
  symbolic_byte_offset::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
! std::unique_ptr<json::value>
  symbolic_byte_offset::to_json () const
  {
    return m_num_bytes_sval->to_json ();
*************** symbolic_byte_range::dump_to_pp (pretty_
*** 153,171 ****
  void
  symbolic_byte_range::dump (bool simple, region_model_manager &mgr) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple, mgr);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
! json::value *
  symbolic_byte_range::to_json () const
  {
!   json::object *obj = new json::object ();
    obj->set ("start", m_start.to_json ());
    obj->set ("size", m_size.to_json ());
    return obj;
--- 150,164 ----
  void
  symbolic_byte_range::dump (bool simple, region_model_manager &mgr) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple, mgr);
    pp_newline (&pp);
  }
  
! std::unique_ptr<json::value>
  symbolic_byte_range::to_json () const
  {
!   auto obj = ::make_unique<json::object> ();
    obj->set ("start", m_start.to_json ());
    obj->set ("size", m_size.to_json ());
    return obj;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/ranges.h gcc-15.1.0/gcc/analyzer/ranges.h
*** gcc-14.2.0/gcc/analyzer/ranges.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/ranges.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 39,45 ****
    void dump_to_pp (pretty_printer *pp, bool) const;
    void dump (bool) const;
  
!   json::value *to_json () const;
  
    bool operator== (const symbolic_byte_offset &other) const
    {
--- 39,45 ----
    void dump_to_pp (pretty_printer *pp, bool) const;
    void dump (bool) const;
  
!   std::unique_ptr<json::value> to_json () const;
  
    bool operator== (const symbolic_byte_offset &other) const
    {
*************** public:
*** 72,78 ****
  		   region_model_manager &mgr) const;
    void dump (bool, region_model_manager &mgr) const;
  
!   json::value *to_json () const;
  
    bool empty_p () const;
  
--- 72,78 ----
  		   region_model_manager &mgr) const;
    void dump (bool, region_model_manager &mgr) const;
  
!   std::unique_ptr<json::value> to_json () const;
  
    bool empty_p () const;
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/reachability.h gcc-15.1.0/gcc/analyzer/reachability.h
*** gcc-14.2.0/gcc/analyzer/reachability.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/reachability.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Digraph reachability.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Digraph reachability.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/record-layout.cc gcc-15.1.0/gcc/analyzer/record-layout.cc
*** gcc-14.2.0/gcc/analyzer/record-layout.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/record-layout.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Implementation of class record_layout.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Implementation of class record_layout.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** record_layout::dump_to_pp (pretty_printe
*** 82,92 ****
  void
  record_layout::dump () const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
-   pp_flush (&pp);
  }
  
  const record_layout::item *
--- 82,89 ----
  void
  record_layout::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
  }
  
  const record_layout::item *
diff -Nrcpad gcc-14.2.0/gcc/analyzer/record-layout.h gcc-15.1.0/gcc/analyzer/record-layout.h
*** gcc-14.2.0/gcc/analyzer/record-layout.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/record-layout.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Declaration of class record_layout.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Declaration of class record_layout.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model-asm.cc gcc-15.1.0/gcc/analyzer/region-model-asm.cc
*** gcc-14.2.0/gcc/analyzer/region-model-asm.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model-asm.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handling inline asm in the analyzer.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling inline asm in the analyzer.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model-manager.cc gcc-15.1.0/gcc/analyzer/region-model-manager.cc
*** gcc-14.2.0/gcc/analyzer/region-model-manager.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model-manager.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** region_model_manager::get_or_create_cons
*** 242,248 ****
  const svalue *
  region_model_manager::get_or_create_constant_svalue (tree cst_expr)
  {
!   return get_or_create_constant_svalue (TREE_TYPE (cst_expr), cst_expr);
  }
  
  /* Return the svalue * for a constant_svalue for the INTEGER_CST
--- 242,253 ----
  const svalue *
  region_model_manager::get_or_create_constant_svalue (tree cst_expr)
  {
!   tree type = TREE_TYPE (cst_expr);
!   if (TREE_CODE (cst_expr) == RAW_DATA_CST)
!     /* The type of a RAW_DATA_CST is the type of each element, rather than
!        that of the constant as a whole, so use NULL_TREE for simplicity.  */
!     type = NULL_TREE;
!   return get_or_create_constant_svalue (type, cst_expr);
  }
  
  /* Return the svalue * for a constant_svalue for the INTEGER_CST
*************** region_model_manager::get_or_create_init
*** 326,332 ****
    /* The initial value of a cast is a cast of the initial value.  */
    if (const cast_region *cast_reg = reg->dyn_cast_cast_region ())
      {
!       const region *original_reg = cast_reg->get_original_region ();
        return get_or_create_cast (cast_reg->get_type (),
  				 get_or_create_initial_value (original_reg));
      }
--- 331,337 ----
    /* The initial value of a cast is a cast of the initial value.  */
    if (const cast_region *cast_reg = reg->dyn_cast_cast_region ())
      {
!       const region *original_reg = cast_reg->get_parent_region ();
        return get_or_create_cast (cast_reg->get_type (),
  				 get_or_create_initial_value (original_reg));
      }
*************** region_model_manager::maybe_fold_sub_sva
*** 972,980 ****
  	    }
      }
  
!   /* Handle getting individual chars from a STRING_CST.  */
    if (tree cst = parent_svalue->maybe_get_constant ())
!     if (TREE_CODE (cst) == STRING_CST)
        {
  	/* If we have a concrete 1-byte access within the parent region... */
  	byte_range subregion_bytes (0, 0);
--- 977,986 ----
  	    }
      }
  
!   /* Handle getting individual chars from a STRING_CST or RAW_DATA_CST.  */
    if (tree cst = parent_svalue->maybe_get_constant ())
!     if (TREE_CODE (cst) == STRING_CST
! 	|| TREE_CODE (cst) == RAW_DATA_CST)
        {
  	/* If we have a concrete 1-byte access within the parent region... */
  	byte_range subregion_bytes (0, 0);
*************** region_model_manager::maybe_fold_sub_sva
*** 982,994 ****
  	    && subregion_bytes.m_size_in_bytes == 1
  	    && type)
  	  {
! 	    /* ...then attempt to get that char from the STRING_CST.  */
  	    HOST_WIDE_INT hwi_start_byte
  	      = subregion_bytes.m_start_byte_offset.to_shwi ();
  	    tree cst_idx
  	      = build_int_cst_type (size_type_node, hwi_start_byte);
  	    if (const svalue *char_sval
! 		= maybe_get_char_from_string_cst (cst, cst_idx))
  	      return get_or_create_cast (type, char_sval);
  	  }
        }
--- 988,1000 ----
  	    && subregion_bytes.m_size_in_bytes == 1
  	    && type)
  	  {
! 	    /* ...then attempt to get that char from the constant.  */
  	    HOST_WIDE_INT hwi_start_byte
  	      = subregion_bytes.m_start_byte_offset.to_shwi ();
  	    tree cst_idx
  	      = build_int_cst_type (size_type_node, hwi_start_byte);
  	    if (const svalue *char_sval
! 		  = maybe_get_char_from_cst (cst, cst_idx))
  	      return get_or_create_cast (type, char_sval);
  	  }
        }
*************** get_or_create_const_fn_result_svalue (tr
*** 1505,1510 ****
--- 1511,1534 ----
    return const_fn_result_sval;
  }
  
+ /* Given DATA_CST (a STRING_CST or RAW_DATA_CST) and BYTE_OFFSET_CST a constant,
+    attempt to get the character at that offset, returning either
+    the svalue for the character constant, or NULL if unsuccessful.  */
+ 
+ const svalue *
+ region_model_manager::maybe_get_char_from_cst (tree data_cst,
+ 					       tree byte_offset_cst)
+ {
+   switch (TREE_CODE (data_cst))
+     {
+     default: gcc_unreachable ();
+     case STRING_CST:
+       return maybe_get_char_from_string_cst (data_cst, byte_offset_cst);
+     case RAW_DATA_CST:
+       return maybe_get_char_from_raw_data_cst (data_cst, byte_offset_cst);
+     }
+ }
+ 
  /* Get a tree for the size of STRING_CST, or NULL_TREE.
     Note that this may be larger than TREE_STRING_LENGTH (implying
     a run of trailing zero bytes from TREE_STRING_LENGTH up to this
*************** region_model_manager::maybe_get_char_fro
*** 1558,1563 ****
--- 1582,1606 ----
    return NULL;
  }
  
+ /* Given RAW_DATA_CST, a RAW_DATA_CST and BYTE_OFFSET_CST a constant,
+    attempt to get the character at that offset, returning either
+    the svalue for the character constant, or NULL if unsuccessful.  */
+ 
+ const svalue *
+ region_model_manager::maybe_get_char_from_raw_data_cst (tree raw_data_cst,
+ 							tree byte_offset_cst)
+ {
+   gcc_assert (TREE_CODE (raw_data_cst) == RAW_DATA_CST);
+   gcc_assert (TREE_CODE (byte_offset_cst) == INTEGER_CST);
+ 
+   offset_int o = (wi::to_offset (byte_offset_cst));
+   if (o >= 0 && o < RAW_DATA_LENGTH (raw_data_cst))
+     return get_or_create_int_cst
+       (TREE_TYPE (raw_data_cst),
+        RAW_DATA_UCHAR_ELT (raw_data_cst, o.to_uhwi ()));
+   return nullptr;
+ }
+ 
  /* region consolidation.  */
  
  /* Return the region for FNDECL, creating it if necessary.  */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model-manager.h gcc-15.1.0/gcc/analyzer/region-model-manager.h
*** gcc-14.2.0/gcc/analyzer/region-model-manager.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model-manager.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 98,105 ****
--- 98,109 ----
  					tree fndecl,
  					const vec<const svalue *> &inputs);
  
+   const svalue *maybe_get_char_from_cst (tree data_cst,
+ 					 tree byte_offset_cst);
    const svalue *maybe_get_char_from_string_cst (tree string_cst,
  						tree byte_offset_cst);
+   const svalue *maybe_get_char_from_raw_data_cst (tree raw_data_cst,
+ 						  tree byte_offset_cst);
  
    /* Dynamically-allocated svalue instances.
       The number of these within the analysis can grow arbitrarily.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model-reachability.cc gcc-15.1.0/gcc/analyzer/region-model-reachability.cc
*** gcc-14.2.0/gcc/analyzer/region-model-reachability.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model-reachability.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** reachable_regions::dump_to_pp (pretty_pr
*** 346,357 ****
  DEBUG_FUNCTION void
  reachable_regions::dump () const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
-   pp_flush (&pp);
  }
  
  } // namespace ana
--- 346,353 ----
  DEBUG_FUNCTION void
  reachable_regions::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
  }
  
  } // namespace ana
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model-reachability.h gcc-15.1.0/gcc/analyzer/region-model-reachability.h
*** gcc-14.2.0/gcc/analyzer/region-model-reachability.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model-reachability.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model.cc gcc-15.1.0/gcc/analyzer/region-model.cc
*** gcc-14.2.0/gcc/analyzer/region-model.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,26 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #define INCLUDE_ALGORITHM
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,26 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
  #define INCLUDE_ALGORITHM
+ #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 42,47 ****
--- 42,48 ----
  #include "diagnostic-color.h"
  #include "bitmap.h"
  #include "selftest.h"
+ #include "selftest-tree.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
*************** along with GCC; see the file COPYING3.
*** 79,84 ****
--- 80,87 ----
  #include "analyzer/feasible-graph.h"
  #include "analyzer/record-layout.h"
  #include "diagnostic-format-sarif.h"
+ #include "text-art/tree-widget.h"
+ #include "gcc-urlifier.h"
  
  #if ENABLE_ANALYZER
  
*************** region_to_value_map::dump_to_pp (pretty_
*** 220,242 ****
  DEBUG_FUNCTION void
  region_to_value_map::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Generate a JSON value for this region_to_value_map.
     This is intended for debugging the analyzer rather than
     serialization.  */
  
! json::object *
  region_to_value_map::to_json () const
  {
!   json::object *map_obj = new json::object ();
  
    auto_vec<const region *> regs;
    for (iterator iter = begin (); iter != end (); ++iter)
--- 223,241 ----
  DEBUG_FUNCTION void
  region_to_value_map::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
  }
  
  /* Generate a JSON value for this region_to_value_map.
     This is intended for debugging the analyzer rather than
     serialization.  */
  
! std::unique_ptr<json::object>
  region_to_value_map::to_json () const
  {
!   auto map_obj = ::make_unique<json::object> ();
  
    auto_vec<const region *> regs;
    for (iterator iter = begin (); iter != end (); ++iter)
*************** region_to_value_map::to_json () const
*** 255,260 ****
--- 254,292 ----
    return map_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ region_to_value_map::
+ make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   if (is_empty ())
+     return nullptr;
+ 
+   std::unique_ptr<text_art::tree_widget> w
+     (text_art::tree_widget::make (dwi, "Dynamic Extents"));
+ 
+   auto_vec<const region *> regs;
+   for (iterator iter = begin (); iter != end (); ++iter)
+     regs.safe_push ((*iter).first);
+   regs.qsort (region::cmp_ptr_ptr);
+ 
+   unsigned i;
+   const region *reg;
+   FOR_EACH_VEC_ELT (regs, i, reg)
+     {
+       pretty_printer the_pp;
+       pretty_printer * const pp = &the_pp;
+       pp_format_decoder (pp) = default_tree_printer;
+       const bool simple = true;
+ 
+       reg->dump_to_pp (pp, simple);
+       pp_string (pp, ": ");
+       const svalue *sval = *get (reg);
+       sval->dump_to_pp (pp, true);
+       w->add_child (text_art::tree_widget::make (dwi, pp));
+     }
+   return w;
+ }
+ 
  /* Attempt to merge THIS with OTHER, writing the result
     to OUT.
  
*************** region_model::dump_to_pp (pretty_printer
*** 447,459 ****
  void
  region_model::dump (FILE *fp, bool simple, bool multiline) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, simple, multiline);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this model to stderr.  */
--- 479,487 ----
  void
  region_model::dump (FILE *fp, bool simple, bool multiline) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, simple, multiline);
    pp_newline (&pp);
  }
  
  /* Dump a multiline representation of this model to stderr.  */
*************** region_model::dump (bool simple) const
*** 464,469 ****
--- 492,505 ----
    dump (stderr, simple, true);
  }
  
+ /* Dump a tree-like representation of this state to stderr.  */
+ 
+ DEBUG_FUNCTION void
+ region_model::dump () const
+ {
+   text_art::dump (*this);
+ }
+ 
  /* Dump a multiline representation of this model to stderr.  */
  
  DEBUG_FUNCTION void
*************** region_model::debug () const
*** 476,485 ****
     This is intended for debugging the analyzer rather than
     serialization.  */
  
! json::object *
  region_model::to_json () const
  {
!   json::object *model_obj = new json::object ();
    model_obj->set ("store", m_store.to_json ());
    model_obj->set ("constraints", m_constraints->to_json ());
    if (m_current_frame)
--- 512,521 ----
     This is intended for debugging the analyzer rather than
     serialization.  */
  
! std::unique_ptr<json::object>
  region_model::to_json () const
  {
!   auto model_obj = ::make_unique<json::object> ();
    model_obj->set ("store", m_store.to_json ());
    model_obj->set ("constraints", m_constraints->to_json ());
    if (m_current_frame)
*************** region_model::to_json () const
*** 488,493 ****
--- 524,556 ----
    return model_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ region_model::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> model_widget
+     (tree_widget::from_fmt (dwi, nullptr, "Region Model"));
+ 
+   if (m_current_frame)
+     {
+       pretty_printer the_pp;
+       pretty_printer * const pp = &the_pp;
+       pp_format_decoder (pp) = default_tree_printer;
+       pp_show_color (pp) = true;
+       const bool simple = true;
+ 
+       pp_string (pp, "Current Frame: ");
+       m_current_frame->dump_to_pp (pp, simple);
+       model_widget->add_child (tree_widget::make (dwi, pp));
+     }
+   model_widget->add_child
+     (m_store.make_dump_widget (dwi,
+ 			       m_mgr->get_store_manager ()));
+   model_widget->add_child (m_constraints->make_dump_widget (dwi));
+   model_widget->add_child (m_dynamic_extents.make_dump_widget (dwi));
+   return model_widget;
+ }
+ 
  /* Assert that this object is valid.  */
  
  void
*************** public:
*** 609,633 ****
        }
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      switch (m_pkind)
        {
        default:
  	gcc_unreachable ();
        case POISON_KIND_UNINIT:
! 	return ev.formatted_print ("use of uninitialized value %qE here",
! 				   m_expr);
        case POISON_KIND_FREED:
! 	return ev.formatted_print ("use after %<free%> of %qE here",
! 				   m_expr);
        case POISON_KIND_DELETED:
! 	return ev.formatted_print ("use after %<delete%> of %qE here",
! 				   m_expr);
        case POISON_KIND_POPPED_STACK:
! 	return ev.formatted_print
! 	  ("dereferencing pointer %qE to within stale stack frame",
! 	   m_expr);
        }
    }
  
--- 672,713 ----
        }
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      switch (m_pkind)
        {
        default:
  	gcc_unreachable ();
        case POISON_KIND_UNINIT:
! 	{
! 	  pp_printf (&pp,
! 		     "use of uninitialized value %qE here",
! 		     m_expr);
! 	  return true;
! 	}
        case POISON_KIND_FREED:
! 	{
! 	  pp_printf (&pp,
! 		     "use after %<free%> of %qE here",
! 		     m_expr);
! 	  return true;
! 	}
        case POISON_KIND_DELETED:
! 	{
! 	  pp_printf (&pp,
! 		     "use after %<delete%> of %qE here",
! 		     m_expr);
! 	  return true;
! 	}
        case POISON_KIND_POPPED_STACK:
! 	{
! 	  pp_printf (&pp,
! 		     "dereferencing pointer %qE to within stale stack frame",
! 		     m_expr);
! 	  return true;
! 	}
        }
    }
  
*************** public:
*** 673,678 ****
--- 753,771 ----
      return true;
    }
  
+   void
+   maybe_add_sarif_properties (sarif_object &result_obj) const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/poisoned_value_diagnostic/"
+     props.set (PROPERTY_PREFIX "expr", tree_to_json (m_expr));
+     props.set_string (PROPERTY_PREFIX "kind", poison_kind_to_str (m_pkind));
+     if (m_src_region)
+       props.set (PROPERTY_PREFIX "src_region", m_src_region->to_json ());
+     props.set (PROPERTY_PREFIX "check_expr", tree_to_json (m_check_expr));
+ #undef PROPERTY_PREFIX
+   }
+ 
  private:
    tree m_expr;
    enum poison_kind m_pkind;
*************** public:
*** 712,720 ****
      return ctxt.warn ("shift by negative count (%qE)", m_count_cst);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("shift by negative amount here (%qE)", m_count_cst);
    }
  
  private:
--- 805,818 ----
      return ctxt.warn ("shift by negative count (%qE)", m_count_cst);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "shift by negative amount here (%qE)",
! 	       m_count_cst);
!     return true;
    }
  
  private:
*************** public:
*** 759,767 ****
  		      m_count_cst, m_operand_precision);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("shift by count %qE here", m_count_cst);
    }
  
  private:
--- 857,870 ----
  		      m_count_cst, m_operand_precision);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "shift by count %qE here",
! 	       m_count_cst);
!     return true;
    }
  
  private:
*************** private:
*** 770,775 ****
--- 873,1021 ----
    tree m_count_cst;
  };
  
+ /* A subclass of pending_diagnostic for complaining about pointer
+    subtractions involving unrelated buffers.  */
+ 
+ class undefined_ptrdiff_diagnostic
+ : public pending_diagnostic_subclass<undefined_ptrdiff_diagnostic>
+ {
+ public:
+   /* Region_creation_event subclass to give a custom wording when
+      talking about creation of buffers for LHS and RHS of the
+      subtraction.  */
+   class ptrdiff_region_creation_event : public region_creation_event
+   {
+   public:
+     ptrdiff_region_creation_event (const event_loc_info &loc_info,
+ 				   bool is_lhs)
+     : region_creation_event (loc_info),
+       m_is_lhs (is_lhs)
+     {
+     }
+ 
+     void print_desc (pretty_printer &pp) const final override
+     {
+       if (m_is_lhs)
+ 	pp_string (&pp,
+ 		   "underlying object for left-hand side"
+ 		   " of subtraction created here");
+       else
+ 	pp_string (&pp,
+ 		   "underlying object for right-hand side"
+ 		   " of subtraction created here");
+     }
+ 
+   private:
+     bool m_is_lhs;
+   };
+ 
+   undefined_ptrdiff_diagnostic (const gassign *assign,
+ 				const svalue *sval_a,
+ 				const svalue *sval_b,
+ 				const region *base_reg_a,
+ 				const region *base_reg_b)
+   : m_assign (assign),
+     m_sval_a (sval_a),
+     m_sval_b (sval_b),
+     m_base_reg_a (base_reg_a),
+     m_base_reg_b (base_reg_b)
+   {
+     gcc_assert (m_base_reg_a != m_base_reg_b);
+   }
+ 
+   const char *get_kind () const final override
+   {
+     return "undefined_ptrdiff_diagnostic";
+   }
+ 
+   bool operator== (const undefined_ptrdiff_diagnostic &other) const
+   {
+     return (m_assign == other.m_assign
+ 	    && m_sval_a == other.m_sval_a
+ 	    && m_sval_b == other.m_sval_b
+ 	    && m_base_reg_a == other.m_base_reg_a
+ 	    && m_base_reg_b == other.m_base_reg_b);
+   }
+ 
+   int get_controlling_option () const final override
+   {
+     return OPT_Wanalyzer_undefined_behavior_ptrdiff;
+   }
+ 
+   bool emit (diagnostic_emission_context &ctxt) final override
+   {
+     /* CWE-469: Use of Pointer Subtraction to Determine Size.  */
+     ctxt.add_cwe (469);
+     return ctxt.warn ("undefined behavior when subtracting pointers");
+   }
+ 
+   void add_region_creation_events (const region *reg,
+ 				   tree /*capacity*/,
+ 				   const event_loc_info &loc_info,
+ 				   checker_path &emission_path) final override
+   {
+     if (reg == m_base_reg_a)
+       emission_path.add_event
+ 	(make_unique<ptrdiff_region_creation_event> (loc_info, true));
+     else if (reg == m_base_reg_b)
+       emission_path.add_event
+ 	(make_unique<ptrdiff_region_creation_event> (loc_info, false));
+   }
+ 
+   bool
+   describe_final_event (pretty_printer &pp,
+ 			const evdesc::final_event &) final override
+   {
+     pp_string (&pp,
+ 	       "subtraction of pointers has undefined behavior if"
+ 	       " they do not point into the same array object");
+     return true;
+   }
+ 
+   void mark_interesting_stuff (interesting_t *interesting) final override
+   {
+     interesting->add_region_creation (m_base_reg_a);
+     interesting->add_region_creation (m_base_reg_b);
+   }
+ 
+ private:
+   const gassign *m_assign;
+   const svalue *m_sval_a;
+   const svalue *m_sval_b;
+   const region *m_base_reg_a;
+   const region *m_base_reg_b;
+ };
+ 
+ /* Check the pointer subtraction SVAL_A - SVAL_B at ASSIGN and add
+    a warning to CTXT if they're not within the same base region.  */
+ 
+ static void
+ check_for_invalid_ptrdiff (const gassign *assign,
+ 			   region_model_context &ctxt,
+ 			   const svalue *sval_a, const svalue *sval_b)
+ {
+   const region *base_reg_a = sval_a->maybe_get_deref_base_region ();
+   if (!base_reg_a)
+     return;
+   const region *base_reg_b = sval_b->maybe_get_deref_base_region ();
+   if (!base_reg_b)
+     return;
+ 
+   if (base_reg_a == base_reg_b)
+     return;
+ 
+   if (base_reg_a->get_kind () == RK_SYMBOLIC)
+     return;
+   if (base_reg_b->get_kind () == RK_SYMBOLIC)
+     return;
+ 
+   ctxt.warn (make_unique<undefined_ptrdiff_diagnostic> (assign,
+ 							sval_a,
+ 							sval_b,
+ 							base_reg_a,
+ 							base_reg_b));
+ }
+ 
  /* If ASSIGN is a stmt that can be modelled via
       set_value (lhs_reg, SVALUE, CTXT)
     for some SVALUE, get the SVALUE.
*************** region_model::get_gassign_result (const
*** 826,831 ****
--- 1072,1080 ----
  
  	// TODO: perhaps fold to zero if they're known to be equal?
  
+ 	if (ctxt)
+ 	  check_for_invalid_ptrdiff (assign, *ctxt, rhs1_sval, rhs2_sval);
+ 
  	const svalue *sval_binop
  	  = m_mgr->get_or_create_binop (TREE_TYPE (lhs), op,
  					rhs1_sval, rhs2_sval);
*************** public:
*** 1825,1830 ****
--- 2074,2080 ----
  
    void emit () const final override
    {
+     auto_urlify_attributes sentinel;
      inform (DECL_SOURCE_LOCATION (m_callee_fndecl),
  	    "parameter %i of %qD marked with attribute %qs",
  	    m_ptr_argno + 1, m_callee_fndecl, m_access_str);
*************** region_model::on_longjmp (const gcall *l
*** 2260,2266 ****
       setjmp was called.  */
    gcc_assert (get_stack_depth () >= setjmp_stack_depth);
    while (get_stack_depth () > setjmp_stack_depth)
!     pop_frame (NULL, NULL, ctxt, false);
  
    gcc_assert (get_stack_depth () == setjmp_stack_depth);
  
--- 2510,2516 ----
       setjmp was called.  */
    gcc_assert (get_stack_depth () >= setjmp_stack_depth);
    while (get_stack_depth () > setjmp_stack_depth)
!     pop_frame (NULL, NULL, ctxt, nullptr, false);
  
    gcc_assert (get_stack_depth () == setjmp_stack_depth);
  
*************** region_model::get_rvalue_1 (path_var pv,
*** 2551,2556 ****
--- 2801,2807 ----
      case COMPLEX_CST:
      case VECTOR_CST:
      case STRING_CST:
+     case RAW_DATA_CST:
        return m_mgr->get_or_create_constant_svalue (pv.m_tree);
  
      case POINTER_PLUS_EXPR:
*************** region_model::get_store_value (const reg
*** 2721,2727 ****
    /* Special-case: read the initial char of a STRING_CST.  */
    if (const cast_region *cast_reg = reg->dyn_cast_cast_region ())
      if (const string_region *str_reg
! 	= cast_reg->get_original_region ()->dyn_cast_string_region ())
        {
  	tree string_cst = str_reg->get_string_cst ();
  	tree byte_offset_cst = integer_zero_node;
--- 2972,2978 ----
    /* Special-case: read the initial char of a STRING_CST.  */
    if (const cast_region *cast_reg = reg->dyn_cast_cast_region ())
      if (const string_region *str_reg
! 	= cast_reg->get_parent_region ()->dyn_cast_string_region ())
        {
  	tree string_cst = str_reg->get_string_cst ();
  	tree byte_offset_cst = integer_zero_node;
*************** public:
*** 2916,2931 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      switch (m_reg->get_kind ())
        {
        default:
! 	return ev.formatted_print ("write to %<const%> object %qE here", m_decl);
        case RK_FUNCTION:
! 	return ev.formatted_print ("write to function %qE here", m_decl);
        case RK_LABEL:
! 	return ev.formatted_print ("write to label %qE here", m_decl);
        }
    }
  
--- 3167,3196 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      switch (m_reg->get_kind ())
        {
        default:
! 	{
! 	  pp_printf (&pp,
! 		     "write to %<const%> object %qE here", m_decl);
! 	  return true;
! 	}
        case RK_FUNCTION:
! 	{
! 	  pp_printf (&pp,
! 		     "write to function %qE here", m_decl);
! 	  return true;
! 	}
        case RK_LABEL:
! 	{
! 	  pp_printf (&pp,
! 		     "write to label %qE here", m_decl);
! 	  return true;
! 	}
        }
    }
  
*************** public:
*** 2967,2975 ****
         but it is not available at this point.  */
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("write to string literal here");
    }
  
  private:
--- 3232,3243 ----
         but it is not available at this point.  */
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_string (&pp, "write to string literal here");
!     return true;
    }
  
  private:
*************** public:
*** 3170,3204 ****
  		      " of the pointee's size");
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final
!   override
    {
      tree pointee_type = TREE_TYPE (m_lhs->get_type ());
      if (m_has_allocation_event)
!       return ev.formatted_print ("assigned to %qT here;"
! 				 " %<sizeof (%T)%> is %qE",
! 				 m_lhs->get_type (), pointee_type,
! 				 size_in_bytes (pointee_type));
      /* Fallback: Typically, we should always see an allocation_event
         before.  */
      if (m_expr)
        {
  	if (TREE_CODE (m_expr) == INTEGER_CST)
! 	  return ev.formatted_print ("allocated %E bytes and assigned to"
! 				    " %qT here; %<sizeof (%T)%> is %qE",
! 				    m_expr, m_lhs->get_type (), pointee_type,
! 				    size_in_bytes (pointee_type));
  	else
! 	  return ev.formatted_print ("allocated %qE bytes and assigned to"
! 				    " %qT here; %<sizeof (%T)%> is %qE",
! 				    m_expr, m_lhs->get_type (), pointee_type,
! 				    size_in_bytes (pointee_type));
        }
  
!     return ev.formatted_print ("allocated and assigned to %qT here;"
! 			       " %<sizeof (%T)%> is %qE",
! 			       m_lhs->get_type (), pointee_type,
! 			       size_in_bytes (pointee_type));
    }
  
    void
--- 3438,3487 ----
  		      " of the pointee's size");
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      tree pointee_type = TREE_TYPE (m_lhs->get_type ());
      if (m_has_allocation_event)
!       {
! 	pp_printf (&pp,
! 		   "assigned to %qT here;"
! 		   " %<sizeof (%T)%> is %qE",
! 		   m_lhs->get_type (), pointee_type,
! 		   size_in_bytes (pointee_type));
! 	return true;
!       }
      /* Fallback: Typically, we should always see an allocation_event
         before.  */
      if (m_expr)
        {
  	if (TREE_CODE (m_expr) == INTEGER_CST)
! 	  {
! 	    pp_printf (&pp,
! 		       "allocated %E bytes and assigned to"
! 		       " %qT here; %<sizeof (%T)%> is %qE",
! 		       m_expr, m_lhs->get_type (), pointee_type,
! 		       size_in_bytes (pointee_type));
! 	    return true;
! 	  }
  	else
! 	  {
! 	    pp_printf (&pp,
! 		       "allocated %qE bytes and assigned to"
! 		       " %qT here; %<sizeof (%T)%> is %qE",
! 		       m_expr, m_lhs->get_type (), pointee_type,
! 		       size_in_bytes (pointee_type));
! 	    return true;
! 	  }
        }
  
!     pp_printf (&pp,
! 	       "allocated and assigned to %qT here;"
! 	       " %<sizeof (%T)%> is %qE",
! 	       m_lhs->get_type (), pointee_type,
! 	       size_in_bytes (pointee_type));
!     return true;
    }
  
    void
*************** region_model::check_for_null_terminated_
*** 4286,4306 ****
      {
      }
  
!     label_text get_desc (bool can_colorize) const final override
      {
        if (m_arg_details.m_arg_expr)
! 	return make_label_text (can_colorize,
! 				"while looking for null terminator"
! 				" for argument %i (%qE) of %qD...",
! 				m_arg_details.m_arg_idx + 1,
! 				m_arg_details.m_arg_expr,
! 				m_arg_details.m_called_fndecl);
        else
! 	return make_label_text (can_colorize,
! 				"while looking for null terminator"
! 				" for argument %i of %qD...",
! 				m_arg_details.m_arg_idx + 1,
! 				m_arg_details.m_called_fndecl);
      }
  
    private:
--- 4569,4589 ----
      {
      }
  
!     void print_desc (pretty_printer &pp) const final override
      {
        if (m_arg_details.m_arg_expr)
! 	pp_printf (&pp,
! 		   "while looking for null terminator"
! 		   " for argument %i (%qE) of %qD...",
! 		   m_arg_details.m_arg_idx + 1,
! 		   m_arg_details.m_arg_expr,
! 		   m_arg_details.m_called_fndecl);
        else
! 	pp_printf (&pp,
! 		   "while looking for null terminator"
! 		   " for argument %i of %qD...",
! 		   m_arg_details.m_arg_idx + 1,
! 		   m_arg_details.m_called_fndecl);
      }
  
    private:
*************** region_model::eval_condition (tree lhs,
*** 5131,5137 ****
  
  path_var
  region_model::get_representative_path_var_1 (const svalue *sval,
! 					     svalue_set *visited) const
  {
    gcc_assert (sval);
  
--- 5414,5421 ----
  
  path_var
  region_model::get_representative_path_var_1 (const svalue *sval,
! 					     svalue_set *visited,
! 					     logger *logger) const
  {
    gcc_assert (sval);
  
*************** region_model::get_representative_path_va
*** 5148,5154 ****
    /* Handle casts by recursion into get_representative_path_var.  */
    if (const svalue *cast_sval = sval->maybe_undo_cast ())
      {
!       path_var result = get_representative_path_var (cast_sval, visited);
        tree orig_type = sval->get_type ();
        /* If necessary, wrap the result in a cast.  */
        if (result.m_tree && orig_type)
--- 5432,5439 ----
    /* Handle casts by recursion into get_representative_path_var.  */
    if (const svalue *cast_sval = sval->maybe_undo_cast ())
      {
!       path_var result = get_representative_path_var (cast_sval, visited,
! 						     logger);
        tree orig_type = sval->get_type ();
        /* If necessary, wrap the result in a cast.  */
        if (result.m_tree && orig_type)
*************** region_model::get_representative_path_va
*** 5157,5163 ****
      }
  
    auto_vec<path_var> pvs;
!   m_store.get_representative_path_vars (this, visited, sval, &pvs);
  
    if (tree cst = sval->maybe_get_constant ())
      pvs.safe_push (path_var (cst, 0));
--- 5442,5448 ----
      }
  
    auto_vec<path_var> pvs;
!   m_store.get_representative_path_vars (this, visited, sval, logger, &pvs);
  
    if (tree cst = sval->maybe_get_constant ())
      pvs.safe_push (path_var (cst, 0));
*************** region_model::get_representative_path_va
*** 5166,5172 ****
    if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
      {
        const region *reg = ptr_sval->get_pointee ();
!       if (path_var pv = get_representative_path_var (reg, visited))
  	return path_var (build1 (ADDR_EXPR,
  				 sval->get_type (),
  				 pv.m_tree),
--- 5451,5457 ----
    if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
      {
        const region *reg = ptr_sval->get_pointee ();
!       if (path_var pv = get_representative_path_var (reg, visited, logger))
  	return path_var (build1 (ADDR_EXPR,
  				 sval->get_type (),
  				 pv.m_tree),
*************** region_model::get_representative_path_va
*** 5179,5185 ****
        const svalue *parent_sval = sub_sval->get_parent ();
        const region *subreg = sub_sval->get_subregion ();
        if (path_var parent_pv
! 	    = get_representative_path_var (parent_sval, visited))
  	if (const field_region *field_reg = subreg->dyn_cast_field_region ())
  	  return path_var (build3 (COMPONENT_REF,
  				   sval->get_type (),
--- 5464,5470 ----
        const svalue *parent_sval = sub_sval->get_parent ();
        const region *subreg = sub_sval->get_subregion ();
        if (path_var parent_pv
! 	    = get_representative_path_var (parent_sval, visited, logger))
  	if (const field_region *field_reg = subreg->dyn_cast_field_region ())
  	  return path_var (build3 (COMPONENT_REF,
  				   sval->get_type (),
*************** region_model::get_representative_path_va
*** 5192,5200 ****
    /* Handle binops.  */
    if (const binop_svalue *binop_sval = sval->dyn_cast_binop_svalue ())
      if (path_var lhs_pv
! 	= get_representative_path_var (binop_sval->get_arg0 (), visited))
        if (path_var rhs_pv
! 	  = get_representative_path_var (binop_sval->get_arg1 (), visited))
  	return path_var (build2 (binop_sval->get_op (),
  				 sval->get_type (),
  				 lhs_pv.m_tree, rhs_pv.m_tree),
--- 5477,5487 ----
    /* Handle binops.  */
    if (const binop_svalue *binop_sval = sval->dyn_cast_binop_svalue ())
      if (path_var lhs_pv
! 	= get_representative_path_var (binop_sval->get_arg0 (), visited,
! 				       logger))
        if (path_var rhs_pv
! 	  = get_representative_path_var (binop_sval->get_arg1 (), visited,
! 					 logger))
  	return path_var (build2 (binop_sval->get_op (),
  				 sval->get_type (),
  				 lhs_pv.m_tree, rhs_pv.m_tree),
*************** region_model::get_representative_path_va
*** 5217,5235 ****
  
  path_var
  region_model::get_representative_path_var (const svalue *sval,
! 					   svalue_set *visited) const
  {
    if (sval == NULL)
      return path_var (NULL_TREE, 0);
  
    tree orig_type = sval->get_type ();
  
!   path_var result = get_representative_path_var_1 (sval, visited);
  
    /* Verify that the result has the same type as SVAL, if any.  */
    if (result.m_tree && orig_type)
      gcc_assert (TREE_TYPE (result.m_tree) == orig_type);
  
    return result;
  }
  
--- 5504,5545 ----
  
  path_var
  region_model::get_representative_path_var (const svalue *sval,
! 					   svalue_set *visited,
! 					   logger *logger) const
  {
    if (sval == NULL)
      return path_var (NULL_TREE, 0);
  
+   LOG_SCOPE (logger);
+   if (logger)
+     {
+       logger->start_log_line ();
+       logger->log_partial ("sval: ");
+       sval->dump_to_pp (logger->get_printer (), true);
+       logger->end_log_line ();
+     }
+ 
    tree orig_type = sval->get_type ();
  
!   path_var result = get_representative_path_var_1 (sval, visited, logger);
  
    /* Verify that the result has the same type as SVAL, if any.  */
    if (result.m_tree && orig_type)
      gcc_assert (TREE_TYPE (result.m_tree) == orig_type);
  
+   if (logger)
+     {
+       logger->start_log_line ();
+       logger->log_partial ("sval: ");
+       sval->dump_to_pp (logger->get_printer (), true);
+       logger->end_log_line ();
+ 
+       if (result.m_tree)
+ 	logger->log ("tree: %qE", result.m_tree);
+       else
+ 	logger->log ("tree: NULL");
+     }
+ 
    return result;
  }
  
*************** region_model::get_representative_path_va
*** 5240,5249 ****
     from analyzer diagnostics.  */
  
  tree
! region_model::get_representative_tree (const svalue *sval) const
  {
    svalue_set visited;
!   tree expr = get_representative_path_var (sval, &visited).m_tree;
  
    /* Strip off any top-level cast.  */
    if (expr && TREE_CODE (expr) == NOP_EXPR)
--- 5550,5559 ----
     from analyzer diagnostics.  */
  
  tree
! region_model::get_representative_tree (const svalue *sval, logger *logger) const
  {
    svalue_set visited;
!   tree expr = get_representative_path_var (sval, &visited, logger).m_tree;
  
    /* Strip off any top-level cast.  */
    if (expr && TREE_CODE (expr) == NOP_EXPR)
*************** region_model::get_representative_tree (c
*** 5253,5262 ****
  }
  
  tree
! region_model::get_representative_tree (const region *reg) const
  {
    svalue_set visited;
!   tree expr = get_representative_path_var (reg, &visited).m_tree;
  
    /* Strip off any top-level cast.  */
    if (expr && TREE_CODE (expr) == NOP_EXPR)
--- 5563,5572 ----
  }
  
  tree
! region_model::get_representative_tree (const region *reg, logger *logger) const
  {
    svalue_set visited;
!   tree expr = get_representative_path_var (reg, &visited, logger).m_tree;
  
    /* Strip off any top-level cast.  */
    if (expr && TREE_CODE (expr) == NOP_EXPR)
*************** region_model::get_representative_tree (c
*** 5276,5282 ****
  
  path_var
  region_model::get_representative_path_var_1 (const region *reg,
! 					     svalue_set *visited) const
  {
    switch (reg->get_kind ())
      {
--- 5586,5593 ----
  
  path_var
  region_model::get_representative_path_var_1 (const region *reg,
! 					     svalue_set *visited,
! 					     logger *logger) const
  {
    switch (reg->get_kind ())
      {
*************** region_model::get_representative_path_va
*** 5310,5316 ****
  	const symbolic_region *symbolic_reg
  	  = as_a <const symbolic_region *> (reg);
  	const svalue *pointer = symbolic_reg->get_pointer ();
! 	path_var pointer_pv = get_representative_path_var (pointer, visited);
  	if (!pointer_pv)
  	  return path_var (NULL_TREE, 0);
  	tree offset = build_int_cst (pointer->get_type (), 0);
--- 5621,5628 ----
  	const symbolic_region *symbolic_reg
  	  = as_a <const symbolic_region *> (reg);
  	const svalue *pointer = symbolic_reg->get_pointer ();
! 	path_var pointer_pv = get_representative_path_var (pointer, visited,
! 							   logger);
  	if (!pointer_pv)
  	  return path_var (NULL_TREE, 0);
  	tree offset = build_int_cst (pointer->get_type (), 0);
*************** region_model::get_representative_path_va
*** 5329,5335 ****
        {
  	const field_region *field_reg = as_a <const field_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build3 (COMPONENT_REF,
--- 5641,5648 ----
        {
  	const field_region *field_reg = as_a <const field_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited,
! 					 logger);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build3 (COMPONENT_REF,
*************** region_model::get_representative_path_va
*** 5345,5355 ****
  	const element_region *element_reg
  	  = as_a <const element_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	path_var index_pv
! 	  = get_representative_path_var (element_reg->get_index (), visited);
  	if (!index_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build4 (ARRAY_REF,
--- 5658,5670 ----
  	const element_region *element_reg
  	  = as_a <const element_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited,
! 					 logger);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	path_var index_pv
! 	  = get_representative_path_var (element_reg->get_index (), visited,
! 					 logger);
  	if (!index_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build4 (ARRAY_REF,
*************** region_model::get_representative_path_va
*** 5364,5375 ****
  	const offset_region *offset_reg
  	  = as_a <const offset_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	path_var offset_pv
  	  = get_representative_path_var (offset_reg->get_byte_offset (),
! 					 visited);
  	if (!offset_pv || TREE_CODE (offset_pv.m_tree) != INTEGER_CST)
  	  return path_var (NULL_TREE, 0);
  	tree addr_parent = build1 (ADDR_EXPR,
--- 5679,5691 ----
  	const offset_region *offset_reg
  	  = as_a <const offset_region *> (reg);
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited,
! 					 logger);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	path_var offset_pv
  	  = get_representative_path_var (offset_reg->get_byte_offset (),
! 					 visited, logger);
  	if (!offset_pv || TREE_CODE (offset_pv.m_tree) != INTEGER_CST)
  	  return path_var (NULL_TREE, 0);
  	tree addr_parent = build1 (ADDR_EXPR,
*************** region_model::get_representative_path_va
*** 5388,5394 ****
      case RK_CAST:
        {
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build1 (NOP_EXPR,
--- 5704,5711 ----
      case RK_CAST:
        {
  	path_var parent_pv
! 	  = get_representative_path_var (reg->get_parent_region (), visited,
! 					 logger);
  	if (!parent_pv)
  	  return path_var (NULL_TREE, 0);
  	return path_var (build1 (NOP_EXPR,
*************** region_model::get_representative_path_va
*** 5429,5442 ****
  
  path_var
  region_model::get_representative_path_var (const region *reg,
! 					   svalue_set *visited) const
  {
!   path_var result = get_representative_path_var_1 (reg, visited);
  
    /* Verify that the result has the same type as REG, if any.  */
    if (result.m_tree && reg->get_type ())
      gcc_assert (TREE_TYPE (result.m_tree) == reg->get_type ());
  
    return result;
  }
  
--- 5746,5782 ----
  
  path_var
  region_model::get_representative_path_var (const region *reg,
! 					   svalue_set *visited,
! 					   logger *logger) const
  {
!   LOG_SCOPE (logger);
!   if (logger)
!     {
!       logger->start_log_line ();
!       logger->log_partial ("reg: ");
!       reg->dump_to_pp (logger->get_printer (), true);
!       logger->end_log_line ();
!     }
! 
!   path_var result = get_representative_path_var_1 (reg, visited, logger);
  
    /* Verify that the result has the same type as REG, if any.  */
    if (result.m_tree && reg->get_type ())
      gcc_assert (TREE_TYPE (result.m_tree) == reg->get_type ());
  
+   if (logger)
+     {
+       logger->start_log_line ();
+       logger->log_partial ("reg: ");
+       reg->dump_to_pp (logger->get_printer (), true);
+       logger->end_log_line ();
+ 
+       if (result.m_tree)
+ 	logger->log ("tree: %qE", result.m_tree);
+       else
+ 	logger->log ("tree: NULL");
+     }
+ 
    return result;
  }
  
*************** region_model::update_for_return_gcall (c
*** 5602,5611 ****
       so that pop_frame can determine the region with respect to the
       *caller* frame.  */
    tree lhs = gimple_call_lhs (call_stmt);
!   pop_frame (lhs, NULL, ctxt);
  }
  
! /* Extract calling information from the superedge and update the model for the 
     call  */
  
  void
--- 5942,5951 ----
       so that pop_frame can determine the region with respect to the
       *caller* frame.  */
    tree lhs = gimple_call_lhs (call_stmt);
!   pop_frame (lhs, NULL, ctxt, call_stmt);
  }
  
! /* Extract calling information from the superedge and update the model for the
     call  */
  
  void
*************** region_model::update_for_call_superedge
*** 5616,5622 ****
    update_for_gcall (call_stmt, ctxt, call_edge.get_callee_function ());
  }
  
! /* Extract calling information from the return superedge and update the model 
     for the returning call */
  
  void
--- 5956,5962 ----
    update_for_gcall (call_stmt, ctxt, call_edge.get_callee_function ());
  }
  
! /* Extract calling information from the return superedge and update the model
     for the returning call */
  
  void
*************** region_model::get_current_function () co
*** 6012,6017 ****
--- 6352,6421 ----
    return &frame->get_function ();
  }
  
+ /* Custom region_model_context for the assignment to the result
+    at a call statement when popping a frame (PR analyzer/106203).  */
+ 
+ class caller_context : public region_model_context_decorator
+ {
+ public:
+   caller_context (region_model_context *inner,
+ 		  const gcall *call_stmt,
+ 		  const frame_region &caller_frame)
+     : region_model_context_decorator (inner),
+       m_call_stmt (call_stmt),
+       m_caller_frame (caller_frame)
+   {}
+   bool warn (std::unique_ptr<pending_diagnostic> d,
+ 	     const stmt_finder *custom_finder) override
+   {
+     if (m_inner && custom_finder == nullptr)
+       {
+ 	/* Custom stmt_finder to use m_call_stmt for the
+ 	   diagnostic.  */
+ 	class my_finder : public stmt_finder
+ 	{
+ 	public:
+ 	  my_finder (const gcall *call_stmt,
+ 		     const frame_region &caller_frame)
+ 	    : m_call_stmt (call_stmt),
+ 	      m_caller_frame (caller_frame)
+ 	  {}
+ 	  std::unique_ptr<stmt_finder> clone () const override
+ 	  {
+ 	    return ::make_unique<my_finder> (m_call_stmt, m_caller_frame);
+ 	  }
+ 	  const gimple *find_stmt (const exploded_path &) override
+ 	  {
+ 	    return m_call_stmt;
+ 	  }
+ 	  void update_event_loc_info (event_loc_info &loc_info) final override
+ 	  {
+ 	    loc_info.m_fndecl = m_caller_frame.get_fndecl ();
+ 	    loc_info.m_depth = m_caller_frame.get_stack_depth ();
+ 	  }
+ 
+ 	private:
+ 	  const gcall *m_call_stmt;
+ 	  const frame_region &m_caller_frame;
+ 	};
+ 	my_finder finder (m_call_stmt, m_caller_frame);
+ 	return m_inner->warn (std::move (d), &finder);
+       }
+     else
+       return region_model_context_decorator::warn (std::move (d),
+ 						   custom_finder);
+   }
+   const gimple *get_stmt () const override
+   {
+     return m_call_stmt;
+   };
+ 
+ private:
+   const gcall *m_call_stmt;
+   const frame_region &m_caller_frame;
+ };
+ 
+ 
  /* Pop the topmost frame_region from this region_model's stack;
  
     If RESULT_LVALUE is non-null, copy any return value from the frame
*************** region_model::get_current_function () co
*** 6020,6025 ****
--- 6424,6432 ----
     If OUT_RESULT is non-null, copy any return value from the frame
     into *OUT_RESULT.
  
+    If non-null, use CALL_STMT as the location when complaining about
+    assignment of the return value to RESULT_LVALUE.
+ 
     If EVAL_RETURN_SVALUE is false, then don't evaluate the return value.
     This is for use when unwinding frames e.g. due to longjmp, to suppress
     erroneously reporting uninitialized return values.
*************** void
*** 6032,6037 ****
--- 6439,6445 ----
  region_model::pop_frame (tree result_lvalue,
  			 const svalue **out_result,
  			 region_model_context *ctxt,
+ 			 const gcall *call_stmt,
  			 bool eval_return_svalue)
  {
    gcc_assert (m_current_frame);
*************** region_model::pop_frame (tree result_lva
*** 6066,6072 ****
        /* Compute result_dst_reg using RESULT_LVALUE *after* popping
  	 the frame, but before poisoning pointers into the old frame.  */
        const region *result_dst_reg = get_lvalue (result_lvalue, ctxt);
!       set_value (result_dst_reg, retval, ctxt);
      }
  
    unbind_region_and_descendents (frame_reg,POISON_KIND_POPPED_STACK);
--- 6474,6486 ----
        /* Compute result_dst_reg using RESULT_LVALUE *after* popping
  	 the frame, but before poisoning pointers into the old frame.  */
        const region *result_dst_reg = get_lvalue (result_lvalue, ctxt);
! 
!       /* Assign retval to result_dst_reg, using caller_context
! 	 to set the call_stmt and the popped_frame for any diagnostics
! 	 due to the assignment.  */
!       gcc_assert (m_current_frame);
!       caller_context caller_ctxt (ctxt, call_stmt, *m_current_frame);
!       set_value (result_dst_reg, retval, call_stmt ? &caller_ctxt : ctxt);
      }
  
    unbind_region_and_descendents (frame_reg,POISON_KIND_POPPED_STACK);
*************** public:
*** 6335,6348 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final
!   override
    {
      if (m_arg)
!       return ev.formatted_print ("operand %qE is of type %qT",
! 				 m_arg, TREE_TYPE (m_arg));
!     return ev.formatted_print ("at least one operand of the size argument is"
! 			       " of a floating-point type");
    }
  
  private:
--- 6749,6767 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
!       pp_printf (&pp,
! 		 "operand %qE is of type %qT",
! 		 m_arg, TREE_TYPE (m_arg));
!     else
!       pp_printf (&pp,
! 		 "at least one operand of the size argument is"
! 		 " of a floating-point type");
!     return true;
    }
  
  private:
*************** public:
*** 6603,6621 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &) final override
    {
      enum memory_space mem_space = get_src_memory_space ();
      switch (mem_space)
        {
        default:
! 	return label_text::borrow ("uninitialized data copied here");
  
        case MEMSPACE_STACK:
! 	return label_text::borrow ("uninitialized data copied from stack here");
  
        case MEMSPACE_HEAP:
! 	return label_text::borrow ("uninitialized data copied from heap here");
        }
    }
  
--- 7022,7045 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      enum memory_space mem_space = get_src_memory_space ();
      switch (mem_space)
        {
        default:
! 	pp_string (&pp, "uninitialized data copied here");
! 	return true;
  
        case MEMSPACE_STACK:
! 	pp_string (&pp, "uninitialized data copied from stack here");
! 	return true;
  
        case MEMSPACE_HEAP:
! 	pp_string (&pp, "uninitialized data copied from heap here");
! 	return true;
        }
    }
  
*************** model_merger::dump_to_pp (pretty_printer
*** 7054,7065 ****
  void
  model_merger::dump (FILE *fp, bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = fp;
    dump_to_pp (&pp, simple);
-   pp_flush (&pp);
  }
  
  /* Dump a multiline representation of this merger to stderr.  */
--- 7478,7485 ----
  void
  model_merger::dump (FILE *fp, bool simple) const
  {
!   tree_dump_pretty_printer pp (fp);
    dump_to_pp (&pp, simple);
  }
  
  /* Dump a multiline representation of this merger to stderr.  */
*************** test_dump ()
*** 7306,7311 ****
--- 7726,7739 ----
  		  "constraint_manager:\n"
  		  "  equiv classes:\n"
  		  "  constraints:\n");
+ 
+   text_art::ascii_theme theme;
+   pretty_printer pp;
+   dump_to_pp (model, &theme, &pp);
+   ASSERT_STREQ ("Region Model\n"
+ 		"`- Store\n"
+ 		"   `- m_called_unknown_fn: false\n",
+ 		pp_formatted_text (&pp));
  }
  
  /* Helper function for selftests.  Create a struct or union type named NAME,
*************** test_stack_frames ()
*** 8051,8057 ****
    ASSERT_FALSE (a_in_parent_reg->descendent_of_p (child_frame_reg));
  
    /* Pop the "child_fn" frame from the stack.  */
!   model.pop_frame (NULL, NULL, &ctxt);
    ASSERT_FALSE (model.region_exists_p (child_frame_reg));
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
  
--- 8479,8485 ----
    ASSERT_FALSE (a_in_parent_reg->descendent_of_p (child_frame_reg));
  
    /* Pop the "child_fn" frame from the stack.  */
!   model.pop_frame (NULL, NULL, &ctxt, nullptr);
    ASSERT_FALSE (model.region_exists_p (child_frame_reg));
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
  
*************** test_get_representative_path_var ()
*** 8128,8134 ****
        {
  	svalue_set visited;
  	ASSERT_EQ (model.get_representative_path_var (parm_regs[depth],
! 						      &visited),
  		   path_var (n, depth + 1));
        }
        /* ...and that we can lookup lvalues for locals for all frames,
--- 8556,8563 ----
        {
  	svalue_set visited;
  	ASSERT_EQ (model.get_representative_path_var (parm_regs[depth],
! 						      &visited,
! 						      nullptr),
  		   path_var (n, depth + 1));
        }
        /* ...and that we can lookup lvalues for locals for all frames,
*************** test_get_representative_path_var ()
*** 8139,8145 ****
        {
  	svalue_set visited;
  	ASSERT_EQ (model.get_representative_path_var (parm_svals[depth],
! 						      &visited),
  		   path_var (n, depth + 1));
        }
      }
--- 8568,8575 ----
        {
  	svalue_set visited;
  	ASSERT_EQ (model.get_representative_path_var (parm_svals[depth],
! 						      &visited,
! 						      nullptr),
  		   path_var (n, depth + 1));
        }
      }
*************** test_alloca ()
*** 9164,9170 ****
  
    /* Verify that the pointers to the alloca region are replaced by
       poisoned values when the frame is popped.  */
!   model.pop_frame (NULL, NULL, &ctxt);
    ASSERT_EQ (model.get_rvalue (p, NULL)->get_kind (), SK_POISONED);
  }
  
--- 9594,9600 ----
  
    /* Verify that the pointers to the alloca region are replaced by
       poisoned values when the frame is popped.  */
!   model.pop_frame (NULL, NULL, &ctxt, nullptr);
    ASSERT_EQ (model.get_rvalue (p, NULL)->get_kind (), SK_POISONED);
  }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region-model.h gcc-15.1.0/gcc/analyzer/region-model.h
*** gcc-14.2.0/gcc/analyzer/region-model.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region-model.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,42 ----
  #include "analyzer/known-function-manager.h"
  #include "analyzer/region-model-manager.h"
  #include "analyzer/pending-diagnostic.h"
+ #include "text-art/widget.h"
+ #include "text-art/dump.h"
  
  using namespace ana;
  
*************** DEBUG_FUNCTION inline void
*** 121,127 ****
  one_way_id_map<T>::dump () const
  {
    pretty_printer pp;
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
    pp_flush (&pp);
  }
--- 123,129 ----
  one_way_id_map<T>::dump () const
  {
    pretty_printer pp;
!   pp.set_output_stream (stderr);
    dump_to_pp (&pp);
    pp_flush (&pp);
  }
*************** public:
*** 175,181 ****
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
!   json::object *to_json () const;
  
    bool can_merge_with_p (const region_to_value_map &other,
  			 region_to_value_map *out) const;
--- 177,186 ----
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    bool can_merge_with_p (const region_to_value_map &other,
  			 region_to_value_map *out) const;
*************** class region_model
*** 277,286 ****
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (FILE *fp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
    void debug () const;
  
!   json::object *to_json () const;
  
    void validate () const;
  
--- 282,295 ----
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (FILE *fp, bool simple, bool multiline) const;
    void dump (bool simple) const;
+   void dump () const;
  
    void debug () const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    void validate () const;
  
*************** class region_model
*** 343,349 ****
    void update_for_gcall (const gcall *call_stmt,
                           region_model_context *ctxt,
                           function *callee = NULL);
!   
    void update_for_return_gcall (const gcall *call_stmt,
                                  region_model_context *ctxt);
  
--- 352,358 ----
    void update_for_gcall (const gcall *call_stmt,
                           region_model_context *ctxt,
                           function *callee = NULL);
! 
    void update_for_return_gcall (const gcall *call_stmt,
                                  region_model_context *ctxt);
  
*************** class region_model
*** 354,359 ****
--- 363,369 ----
    void pop_frame (tree result_lvalue,
  		  const svalue **out_result,
  		  region_model_context *ctxt,
+ 		  const gcall *call_stmt,
  		  bool eval_return_svalue = true);
    int get_stack_depth () const;
    const frame_region *get_frame_at_index (int index) const;
*************** class region_model
*** 425,438 ****
  					  region_model_context *ctxt);
    void get_referenced_base_regions (auto_bitmap &out_ids) const;
  
!   tree get_representative_tree (const svalue *sval) const;
!   tree get_representative_tree (const region *reg) const;
    path_var
    get_representative_path_var (const svalue *sval,
! 			       svalue_set *visited) const;
    path_var
    get_representative_path_var (const region *reg,
! 			       svalue_set *visited) const;
  
    /* For selftests.  */
    constraint_manager *get_constraints ()
--- 435,452 ----
  					  region_model_context *ctxt);
    void get_referenced_base_regions (auto_bitmap &out_ids) const;
  
!   tree get_representative_tree (const svalue *sval,
! 				logger *logger = nullptr) const;
!   tree get_representative_tree (const region *reg,
! 				logger *logger = nullptr) const;
    path_var
    get_representative_path_var (const svalue *sval,
! 			       svalue_set *visited,
! 			       logger *logger) const;
    path_var
    get_representative_path_var (const region *reg,
! 			       svalue_set *visited,
! 			       logger *logger) const;
  
    /* For selftests.  */
    constraint_manager *get_constraints ()
*************** private:
*** 575,584 ****
  
    path_var
    get_representative_path_var_1 (const svalue *sval,
! 				 svalue_set *visited) const;
    path_var
    get_representative_path_var_1 (const region *reg,
! 				 svalue_set *visited) const;
  
    const known_function *get_known_function (tree fndecl,
  					    const call_details &cd) const;
--- 589,600 ----
  
    path_var
    get_representative_path_var_1 (const svalue *sval,
! 				 svalue_set *visited,
! 				 logger *logger) const;
    path_var
    get_representative_path_var_1 (const region *reg,
! 				 svalue_set *visited,
! 				 logger *logger) const;
  
    const known_function *get_known_function (tree fndecl,
  					    const call_details &cd) const;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region.cc gcc-15.1.0/gcc/analyzer/region.cc
*** gcc-14.2.0/gcc/analyzer/region.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Regions of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 57,62 ****
--- 57,64 ----
  #include "analyzer/region-model.h"
  #include "analyzer/sm.h"
  #include "analyzer/program-state.h"
+ #include "text-art/dump.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** region_offset::dump_to_pp (pretty_printe
*** 136,148 ****
  DEBUG_FUNCTION void
  region_offset::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* An svalue that matches the pattern (BASE * FACTOR) + OFFSET
--- 138,146 ----
  DEBUG_FUNCTION void
  region_offset::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
  /* An svalue that matches the pattern (BASE * FACTOR) + OFFSET
*************** region::get_base_region () const
*** 423,432 ****
  	case RK_OFFSET:
  	case RK_SIZED:
  	case RK_BIT_RANGE:
- 	  iter = iter->get_parent_region ();
- 	  continue;
  	case RK_CAST:
! 	  iter = iter->dyn_cast_cast_region ()->get_original_region ();
  	  continue;
  	default:
  	  return iter;
--- 421,428 ----
  	case RK_OFFSET:
  	case RK_SIZED:
  	case RK_BIT_RANGE:
  	case RK_CAST:
! 	  iter = iter->get_parent_region ();
  	  continue;
  	default:
  	  return iter;
*************** region::descendent_of_p (const region *e
*** 466,475 ****
      {
        if (iter == elder)
  	return true;
!       if (iter->get_kind () == RK_CAST)
! 	iter = iter->dyn_cast_cast_region ()->get_original_region ();
!       else
! 	iter = iter->get_parent_region ();
      }
    return false;
  }
--- 462,468 ----
      {
        if (iter == elder)
  	return true;
!       iter = iter->get_parent_region ();
      }
    return false;
  }
*************** region::maybe_get_frame_region () const
*** 485,494 ****
      {
        if (const frame_region *frame_reg = iter->dyn_cast_frame_region ())
  	return frame_reg;
!       if (iter->get_kind () == RK_CAST)
! 	iter = iter->dyn_cast_cast_region ()->get_original_region ();
!       else
! 	iter = iter->get_parent_region ();
      }
    return NULL;
  }
--- 478,484 ----
      {
        if (const frame_region *frame_reg = iter->dyn_cast_frame_region ())
  	return frame_reg;
!       iter = iter->get_parent_region ();
      }
    return NULL;
  }
*************** region::get_memory_space () const
*** 523,532 ****
  	case RK_PRIVATE:
  	  return MEMSPACE_PRIVATE;
  	}
!       if (iter->get_kind () == RK_CAST)
! 	iter = iter->dyn_cast_cast_region ()->get_original_region ();
!       else
! 	iter = iter->get_parent_region ();
      }
    return MEMSPACE_UNKNOWN;
  }
--- 513,519 ----
  	case RK_PRIVATE:
  	  return MEMSPACE_PRIVATE;
  	}
!       iter = iter->get_parent_region ();
      }
    return MEMSPACE_UNKNOWN;
  }
*************** region::calc_offset (region_model_manage
*** 956,970 ****
  	    }
  	  continue;
  	case RK_SIZED:
- 	  iter_region = iter_region->get_parent_region ();
- 	  continue;
- 
  	case RK_CAST:
! 	  {
! 	    const cast_region *cast_reg
! 	      = as_a <const cast_region *> (iter_region);
! 	    iter_region = cast_reg->get_original_region ();
! 	  }
  	  continue;
  
  	default:
--- 943,950 ----
  	    }
  	  continue;
  	case RK_SIZED:
  	case RK_CAST:
! 	  iter_region = iter_region->get_parent_region ();
  	  continue;
  
  	default:
*************** region::get_relative_concrete_byte_range
*** 1031,1052 ****
  DEBUG_FUNCTION void
  region::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
!   pp_flush (&pp);
  }
  
  /* Return a new json::string describing the region.  */
  
! json::value *
  region::to_json () const
  {
    label_text desc = get_desc (true);
!   json::value *reg_js = new json::string (desc.get ());
    return reg_js;
  }
  
--- 1011,1045 ----
  DEBUG_FUNCTION void
  region::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
! }
! 
! /* Dump a tree-like representation of this region and its constituent symbols
!    to stderr, using global_dc's colorization and theming options.
! 
!    For example:
!    . (gdb) call reg->dump()
!    . (26): ‘int’: decl_region(‘x_10(D)’)
!    . ╰─ parent: (9): frame_region(‘test_bitmask_2’, index: 0, depth: 1)
!    .    ╰─ parent: (1): stack region
!    .       ╰─ parent: (0): root region
!   */
! 
! DEBUG_FUNCTION void
! region::dump () const
! {
!   text_art::dump (*this);
  }
  
  /* Return a new json::string describing the region.  */
  
! std::unique_ptr<json::value>
  region::to_json () const
  {
    label_text desc = get_desc (true);
!   auto reg_js = ::make_unique<json::string> (desc.get ());
    return reg_js;
  }
  
*************** region::maybe_print_for_user (pretty_pri
*** 1072,1077 ****
--- 1065,1108 ----
    return false;
  }
  
+ /* Use DWI to create a text_art::widget describing this region in
+    a tree-like form, using PREFIX as a prefix (e.g. for field names).  */
+ 
+ std::unique_ptr<text_art::tree_widget>
+ region::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 			  const char *prefix) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = true;
+ 
+   if (prefix)
+     pp_printf (&pp, "%s: ", prefix);
+ 
+   pp_printf (&pp, "(%i): ", get_id ());
+   if (get_type ())
+     pp_printf (&pp, "%qT: ", get_type ());
+ 
+   print_dump_widget_label (&pp);
+ 
+   std::unique_ptr<text_art::tree_widget> w
+     (text_art::tree_widget::make (dwi, &pp));
+ 
+   add_dump_widget_children (*w, dwi);
+ 
+   if (m_parent)
+     w->add_child (m_parent->make_dump_widget (dwi, "parent"));
+ 
+   return w;
+ }
+ 
+ void
+ region::add_dump_widget_children (text_art::tree_widget &,
+ 				  const text_art::dump_widget_info &) const
+ {
+   /* By default, add nothing (parent is added in make_dump_widget).  */
+ }
+ 
  /* Generate a description of this region.  */
  
  DEBUG_FUNCTION label_text
*************** frame_region::dump_to_pp (pretty_printer
*** 1341,1346 ****
--- 1372,1384 ----
  	       function_name (&m_fun), m_index, get_stack_depth ());
  }
  
+ void
+ frame_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "frame_region(%qs, index: %i, depth: %i)",
+ 	     function_name (&m_fun), m_index, get_stack_depth ());
+ }
+ 
  const decl_region *
  frame_region::get_region_for_local (region_model_manager *mgr,
  				    tree expr,
*************** globals_region::dump_to_pp (pretty_print
*** 1411,1416 ****
--- 1449,1460 ----
      pp_string (pp, "globals");
  }
  
+ void
+ globals_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "globals");
+ }
+ 
  /* class code_region : public map_region.  */
  
  /* Implementation of region::dump_to_pp vfunc for code_region.  */
*************** code_region::dump_to_pp (pretty_printer
*** 1424,1429 ****
--- 1468,1479 ----
      pp_string (pp, "code_region()");
  }
  
+ void
+ code_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "code region");
+ }
+ 
  /* class function_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for function_region.  */
*************** function_region::dump_to_pp (pretty_prin
*** 1443,1448 ****
--- 1493,1506 ----
      }
  }
  
+ void
+ function_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "function_region(");
+   dump_quoted_tree (pp, m_fndecl);
+   pp_string (pp, ")");
+ }
+ 
  /* class label_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for label_region.  */
*************** label_region::dump_to_pp (pretty_printer
*** 1462,1467 ****
--- 1520,1533 ----
      }
  }
  
+ void
+ label_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "label_region(");
+   dump_quoted_tree (pp, m_label);
+   pp_string (pp, ")");
+ }
+ 
  /* class stack_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for stack_region.  */
*************** stack_region::dump_to_pp (pretty_printer
*** 1475,1480 ****
--- 1541,1552 ----
      pp_string (pp, "stack_region()");
  }
  
+ void
+ stack_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "stack region");
+ }
+ 
  /* class heap_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for heap_region.  */
*************** heap_region::dump_to_pp (pretty_printer
*** 1488,1493 ****
--- 1560,1571 ----
      pp_string (pp, "heap_region()");
  }
  
+ void
+ heap_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "heap_region");
+ }
+ 
  /* class root_region : public region.  */
  
  /* root_region's ctor.  */
*************** root_region::dump_to_pp (pretty_printer
*** 1508,1513 ****
--- 1586,1597 ----
      pp_string (pp, "root_region()");
  }
  
+ void
+ root_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "root region");
+ }
+ 
  /* class thread_local_region : public space_region.  */
  
  void
*************** thread_local_region::dump_to_pp (pretty_
*** 1519,1524 ****
--- 1603,1614 ----
      pp_string (pp, "thread_local_region()");
  }
  
+ void
+ thread_local_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "thread_local_region");
+ }
+ 
  /* class symbolic_region : public map_region.  */
  
  /* symbolic_region's ctor.  */
*************** symbolic_region::dump_to_pp (pretty_prin
*** 1568,1573 ****
--- 1658,1677 ----
      }
  }
  
+ void
+ symbolic_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "symbolic_region: %<*%>");
+ }
+ 
+ void
+ symbolic_region::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_sval_ptr->make_dump_widget (dwi, "m_sval_ptr"));
+ }
+ 
  /* class decl_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for decl_region.  */
*************** decl_region::dump_to_pp (pretty_printer
*** 1587,1592 ****
--- 1691,1702 ----
      }
  }
  
+ void
+ decl_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "decl_region(%qE)", m_decl);
+ }
+ 
  /* Get the stack depth for the frame containing this decl, or 0
     for a global.  */
  
*************** field_region::dump_to_pp (pretty_printer
*** 1816,1821 ****
--- 1926,1937 ----
      }
  }
  
+ void
+ field_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "field_region(%qE)", m_field);
+ }
+ 
  /* Implementation of region::get_relative_concrete_offset vfunc
     for field_region.  */
  
*************** element_region::dump_to_pp (pretty_print
*** 1892,1897 ****
--- 2008,2027 ----
      }
  }
  
+ void
+ element_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "element_region: %<[]%>");
+ }
+ 
+ void
+ element_region::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_index->make_dump_widget (dwi, "m_index"));
+ }
+ 
  /* Implementation of region::get_relative_concrete_offset vfunc
     for element_region.  */
  
*************** offset_region::dump_to_pp (pretty_printe
*** 1980,1985 ****
--- 2110,2129 ----
      }
  }
  
+ void
+ offset_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "offset_region");
+ }
+ 
+ void
+ offset_region::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_byte_offset->make_dump_widget (dwi, "m_byte_offset"));
+ }
+ 
  const svalue *
  offset_region::get_bit_offset (region_model_manager *mgr) const
  {
*************** sized_region::dump_to_pp (pretty_printer
*** 2053,2058 ****
--- 2197,2216 ----
      }
  }
  
+ void
+ sized_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "sized_region");
+ }
+ 
+ void
+ sized_region::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_byte_size_sval->make_dump_widget (dwi, "m_byte_size_sval"));
+ }
+ 
  /* Implementation of region::get_byte_size vfunc for sized_region.  */
  
  bool
*************** sized_region::get_bit_size_sval (region_
*** 2092,2106 ****
  
  /* class cast_region : public region.  */
  
- /* Implementation of region::accept vfunc for cast_region.  */
- 
- void
- cast_region::accept (visitor *v) const
- {
-   region::accept (v);
-   m_original_region->accept (v);
- }
- 
  /* Implementation of region::dump_to_pp vfunc for cast_region.  */
  
  void
--- 2250,2255 ----
*************** cast_region::dump_to_pp (pretty_printer
*** 2111,2129 ****
        pp_string (pp, "CAST_REG(");
        print_quoted_type (pp, get_type ());
        pp_string (pp, ", ");
!       m_original_region->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
    else
      {
        pp_string (pp, "cast_region(");
!       m_original_region->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
        print_quoted_type (pp, get_type ());
        pp_printf (pp, ")");
      }
  }
  
  /* Implementation of region::get_relative_concrete_offset vfunc
     for cast_region.  */
  
--- 2260,2284 ----
        pp_string (pp, "CAST_REG(");
        print_quoted_type (pp, get_type ());
        pp_string (pp, ", ");
!       get_parent_region ()->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
    else
      {
        pp_string (pp, "cast_region(");
!       get_parent_region ()->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
        print_quoted_type (pp, get_type ());
        pp_printf (pp, ")");
      }
  }
  
+ void
+ cast_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "cast_region");
+ }
+ 
  /* Implementation of region::get_relative_concrete_offset vfunc
     for cast_region.  */
  
*************** heap_allocated_region::dump_to_pp (prett
*** 2147,2152 ****
--- 2302,2313 ----
      pp_printf (pp, "heap_allocated_region(%i)", get_id ());
  }
  
+ void
+ heap_allocated_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "heap_allocated_region");
+ }
+ 
  /* class alloca_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for alloca_region.  */
*************** alloca_region::dump_to_pp (pretty_printe
*** 2160,2165 ****
--- 2321,2332 ----
      pp_printf (pp, "alloca_region(%i)", get_id ());
  }
  
+ void
+ alloca_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "alloca_region");
+ }
+ 
  /* class string_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for string_region.  */
*************** string_region::dump_to_pp (pretty_printe
*** 2182,2187 ****
--- 2349,2362 ----
      }
  }
  
+ void
+ string_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_string (pp, "string_region(");
+   dump_tree (pp, m_string_cst);
+   pp_string (pp, ")");
+ }
+ 
  /* class bit_range_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for bit_range_region.  */
*************** bit_range_region::dump_to_pp (pretty_pri
*** 2207,2212 ****
--- 2382,2395 ----
      }
  }
  
+ void
+ bit_range_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "bit_range_region(m_bits: ");
+   m_bits.dump_to_pp (pp);
+   pp_string (pp, ")");
+ }
+ 
  /* Implementation of region::get_byte_size vfunc for bit_range_region.  */
  
  bool
*************** var_arg_region::dump_to_pp (pretty_print
*** 2293,2298 ****
--- 2476,2487 ----
      }
  }
  
+ void
+ var_arg_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "var_arg_region(arg_idx: %i)", m_idx);
+ }
+ 
  /* Get the frame_region for this var_arg_region.  */
  
  const frame_region *
*************** errno_region::dump_to_pp (pretty_printer
*** 2313,2318 ****
--- 2502,2513 ----
      pp_string (pp, "errno_region()");
  }
  
+ void
+ errno_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "errno_region");
+ }
+ 
  /* class private_region : public region.  */
  
  void
*************** private_region::dump_to_pp (pretty_print
*** 2324,2329 ****
--- 2519,2530 ----
      pp_printf (pp, "private_region(%qs)", m_desc);
  }
  
+ void
+ private_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "private_region(%qs)", m_desc);
+ }
+ 
  /* class unknown_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for unknown_region.  */
*************** unknown_region::dump_to_pp (pretty_print
*** 2334,2339 ****
--- 2535,2546 ----
    pp_string (pp, "UNKNOWN_REGION");
  }
  
+ void
+ unknown_region::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "unknown_region");
+ }
+ 
  } // namespace ana
  
  #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-14.2.0/gcc/analyzer/region.h gcc-15.1.0/gcc/analyzer/region.h
*** gcc-14.2.0/gcc/analyzer/region.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/region.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Regions of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 22,27 ****
--- 22,28 ----
  #define GCC_ANALYZER_REGION_H
  
  #include "analyzer/symbol.h"
+ #include "text-art/widget.h"
  
  namespace ana {
  
*************** public:
*** 173,184 ****
  
    virtual void dump_to_pp (pretty_printer *pp, bool simple) const = 0;
    void dump (bool simple) const;
  
-   json::value *to_json () const;
  
    bool maybe_print_for_user (pretty_printer *pp,
  			     const region_model &model) const;
  
    bool non_null_p () const;
  
    static int cmp_ptr_ptr (const void *, const void *);
--- 174,191 ----
  
    virtual void dump_to_pp (pretty_printer *pp, bool simple) const = 0;
    void dump (bool simple) const;
+   void dump () const;
+ 
+   std::unique_ptr<json::value> to_json () const;
  
  
    bool maybe_print_for_user (pretty_printer *pp,
  			     const region_model &model) const;
  
+   std::unique_ptr<text_art::tree_widget>
+   make_dump_widget (const text_art::dump_widget_info &dwi,
+ 		    const char *prefix = nullptr) const;
+ 
    bool non_null_p () const;
  
    static int cmp_ptr_ptr (const void *, const void *);
*************** public:
*** 257,262 ****
--- 264,275 ----
    region_offset calc_offset (region_model_manager *mgr) const;
    const svalue *calc_initial_value_at_main (region_model_manager *mgr) const;
  
+   virtual void
+   print_dump_widget_label (pretty_printer *pp) const = 0;
+   virtual void
+   add_dump_widget_children (text_art::tree_widget &,
+ 			    const text_art::dump_widget_info &dwi) const;
+ 
    const region *m_parent;
    tree m_type;
  
*************** public:
*** 357,362 ****
--- 370,377 ----
    void accept (visitor *v) const final override;
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
+   void print_dump_widget_label (pretty_printer *pp) const final override;
+ 
    /* Accessors.  */
    const frame_region *get_calling_frame () const { return m_calling_frame; }
    const function &get_function () const { return m_fun; }
*************** class globals_region : public space_regi
*** 416,421 ****
--- 431,437 ----
    /* region vfuncs.  */
    enum region_kind get_kind () const final override { return RK_GLOBALS; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
*************** public:
*** 442,447 ****
--- 458,464 ----
  
    /* region vfuncs.  */
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
    enum region_kind get_kind () const final override { return RK_CODE; }
  };
  
*************** public:
*** 472,477 ****
--- 489,496 ----
  
    /* region vfuncs.  */
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
+ 
    enum region_kind get_kind () const final override { return RK_FUNCTION; }
    const function_region *
    dyn_cast_function_region () const final override{ return this; }
*************** public:
*** 508,513 ****
--- 527,533 ----
  
    /* region vfuncs.  */
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
    enum region_kind get_kind () const final override { return RK_LABEL; }
  
    tree get_label () const { return m_label; }
*************** public:
*** 539,544 ****
--- 559,565 ----
    {}
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  
    enum region_kind get_kind () const final override { return RK_STACK; }
  };
*************** public:
*** 567,572 ****
--- 588,594 ----
  
    enum region_kind get_kind () const final override { return RK_HEAP; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
*************** public:
*** 593,598 ****
--- 615,621 ----
  
    enum region_kind get_kind () const final override { return RK_THREAD_LOCAL; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
*************** public:
*** 618,623 ****
--- 641,647 ----
  
    enum region_kind get_kind () const final override { return RK_ROOT; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
*************** public:
*** 680,685 ****
--- 704,714 ----
    enum region_kind get_kind () const final override { return RK_SYMBOLIC; }
    void accept (visitor *v) const final override;
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const text_art::dump_widget_info &dwi)
+     const final override;
  
    const svalue *get_pointer () const { return m_sval_ptr; }
  
*************** public:
*** 724,729 ****
--- 753,761 ----
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+ 
    bool tracked_p () const final override { return m_tracked; }
  
    tree get_decl () const { return m_decl; }
*************** public:
*** 808,813 ****
--- 840,847 ----
    enum region_kind get_kind () const final override { return RK_FIELD; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
+ 
    const field_region *
    dyn_cast_field_region () const final override { return this; }
  
*************** public:
*** 896,901 ****
--- 930,942 ----
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &,
+ 			    const text_art::dump_widget_info &dwi)
+     const final override;
+ 
    const svalue *get_index () const { return m_index; }
  
    virtual bool
*************** public:
*** 983,988 ****
--- 1024,1036 ----
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &,
+ 			    const text_art::dump_widget_info &dwi)
+     const final override;
+ 
    const svalue *get_byte_offset () const { return m_byte_offset; }
    const svalue *get_bit_offset (region_model_manager *mgr) const;
  
*************** public:
*** 1073,1078 ****
--- 1121,1132 ----
    void accept (visitor *v) const final override;
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &,
+ 			    const text_art::dump_widget_info &dwi)
+     const final override;
  
    bool get_byte_size (byte_size_t *out) const final override;
    bool get_bit_size (bit_size_t *out) const final override;
*************** public:
*** 1116,1174 ****
    /* A support class for uniquifying instances of cast_region.  */
    struct key_t
    {
!     key_t (const region *original_region, tree type)
!     : m_original_region (original_region), m_type (type)
      {
!       gcc_assert (original_region);
      }
  
      hashval_t hash () const
      {
        inchash::hash hstate;
!       hstate.add_ptr (m_original_region);
        hstate.add_ptr (m_type);
        return hstate.end ();
      }
  
      bool operator== (const key_t &other) const
      {
!       return (m_original_region == other.m_original_region
  	      && m_type == other.m_type);
      }
  
      void mark_deleted ()
      {
!       m_original_region = reinterpret_cast<const region *> (1);
      }
!     void mark_empty () { m_original_region = nullptr; }
      bool is_deleted () const
      {
!       return m_original_region == reinterpret_cast<const region *> (1);
      }
!     bool is_empty () const { return m_original_region == nullptr; }
  
!     const region *m_original_region;
      tree m_type;
    };
  
!   cast_region (symbol::id_t id, const region *original_region, tree type)
!   : region (complexity (original_region), id,
! 	    original_region->get_parent_region (), type),
!     m_original_region (original_region)
    {}
  
    enum region_kind get_kind () const final override { return RK_CAST; }
    const cast_region *
    dyn_cast_cast_region () const final override { return this; }
-   void accept (visitor *v) const final override;
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
    bool get_relative_concrete_offset (bit_offset_t *out) const final override;
- 
-   const region *get_original_region () const { return m_original_region; }
- 
- private:
-   const region *m_original_region;
  };
  
  } // namespace ana
--- 1170,1223 ----
    /* A support class for uniquifying instances of cast_region.  */
    struct key_t
    {
!     key_t (const region *parent, tree type)
!     : m_parent (parent), m_type (type)
      {
!       gcc_assert (parent);
      }
  
      hashval_t hash () const
      {
        inchash::hash hstate;
!       hstate.add_ptr (m_parent);
        hstate.add_ptr (m_type);
        return hstate.end ();
      }
  
      bool operator== (const key_t &other) const
      {
!       return (m_parent == other.m_parent
  	      && m_type == other.m_type);
      }
  
      void mark_deleted ()
      {
!       m_parent = reinterpret_cast<const region *> (1);
      }
!     void mark_empty () { m_parent = nullptr; }
      bool is_deleted () const
      {
!       return m_parent == reinterpret_cast<const region *> (1);
      }
!     bool is_empty () const { return m_parent == nullptr; }
  
!     const region *m_parent;
      tree m_type;
    };
  
!   cast_region (symbol::id_t id, const region *parent, tree type)
!   : region (complexity (parent), id,
! 	    parent, type)
    {}
  
    enum region_kind get_kind () const final override { return RK_CAST; }
    const cast_region *
    dyn_cast_cast_region () const final override { return this; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
  
    bool get_relative_concrete_offset (bit_offset_t *out) const final override;
  };
  
  } // namespace ana
*************** public:
*** 1203,1208 ****
--- 1252,1258 ----
    get_kind () const final override { return RK_HEAP_ALLOCATED; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  /* An untyped region dynamically allocated on the stack via "alloca".  */
*************** public:
*** 1217,1222 ****
--- 1267,1273 ----
    enum region_kind get_kind () const final override { return RK_ALLOCA; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  /* A region for a STRING_CST.  */
*************** public:
*** 1235,1240 ****
--- 1286,1292 ----
    enum region_kind get_kind () const final override { return RK_STRING; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  
    /* We assume string literals are immutable, so we don't track them in
       the store.  */
*************** public:
*** 1314,1319 ****
--- 1366,1372 ----
    enum region_kind get_kind () const final override { return RK_BIT_RANGE; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  
    const bit_range &get_bits () const { return m_bits; }
  
*************** public:
*** 1402,1407 ****
--- 1455,1461 ----
    enum region_kind get_kind () const final override { return RK_VAR_ARG; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  
    const frame_region *get_frame_region () const;
    unsigned get_index () const { return m_idx; }
*************** public:
*** 1440,1445 ****
--- 1494,1500 ----
    enum region_kind get_kind () const final override { return RK_ERRNO; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
*************** public:
*** 1473,1478 ****
--- 1528,1534 ----
    enum region_kind get_kind () const final override { return RK_PRIVATE; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  
  private:
    const char *m_desc;
*************** public:
*** 1502,1507 ****
--- 1558,1564 ----
    enum region_kind get_kind () const final override { return RK_UNKNOWN; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+   void print_dump_widget_label (pretty_printer *pp) const final override;
  };
  
  } // namespace ana
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-fd.cc gcc-15.1.0/gcc/analyzer/sm-fd.cc
*** gcc-14.2.0/gcc/analyzer/sm-fd.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-fd.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A state machine for detecting misuses of POSIX file descriptor APIs.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by Immad Mir <mir@sourceware.org>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of POSIX file descriptor APIs.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by Immad Mir <mir@sourceware.org>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 28,33 ****
--- 28,34 ----
  #include "basic-block.h"
  #include "gimple.h"
  #include "options.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
*************** public:
*** 118,127 ****
      return m_start;
    }
  
!   bool on_stmt (sm_context *sm_ctxt, const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context *sm_ctxt, const supernode *node,
  		     const gimple *stmt, const svalue *lhs, const tree_code op,
  		     const svalue *rhs) const final override;
  
--- 119,128 ----
      return m_start;
    }
  
!   bool on_stmt (sm_context &sm_ctxt, const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context &sm_ctxt, const supernode *node,
  		     const gimple *stmt, const svalue *lhs, const tree_code op,
  		     const svalue *rhs) const final override;
  
*************** public:
*** 149,171 ****
  
    bool on_socket (const call_details &cd,
  		  bool successful,
! 		  sm_context *sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_bind (const call_details &cd,
  		bool successful,
! 		sm_context *sm_ctxt,
  		const extrinsic_state &ext_state) const;
    bool on_listen (const call_details &cd,
  		  bool successful,
! 		  sm_context *sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_accept (const call_details &cd,
  		  bool successful,
! 		  sm_context *sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_connect (const call_details &cd,
  		   bool successful,
! 		   sm_context *sm_ctxt,
  		   const extrinsic_state &ext_state) const;
  
    /* State for a constant file descriptor (>= 0) */
--- 150,172 ----
  
    bool on_socket (const call_details &cd,
  		  bool successful,
! 		  sm_context &sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_bind (const call_details &cd,
  		bool successful,
! 		sm_context &sm_ctxt,
  		const extrinsic_state &ext_state) const;
    bool on_listen (const call_details &cd,
  		  bool successful,
! 		  sm_context &sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_accept (const call_details &cd,
  		  bool successful,
! 		  sm_context &sm_ctxt,
  		  const extrinsic_state &ext_state) const;
    bool on_connect (const call_details &cd,
  		   bool successful,
! 		   sm_context &sm_ctxt,
  		   const extrinsic_state &ext_state) const;
  
    /* State for a constant file descriptor (>= 0) */
*************** public:
*** 228,261 ****
    tree m_SOCK_DGRAM;
  
  private:
!   void on_open (sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call) const;
!   void on_creat (sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call) const;
!   void on_close (sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
  		 const gcall *call) const;
!   void on_read (sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call, const tree callee_fndecl) const;
!   void on_write (sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
  		 const gcall *call, const tree callee_fndecl) const;
!   void check_for_open_fd (sm_context *sm_ctxt, const supernode *node,
  			  const gimple *stmt, const gcall *call,
  			  const tree callee_fndecl,
  			  enum access_directions access_fn) const;
  
!   void make_valid_transitions_on_condition (sm_context *sm_ctxt,
  					    const supernode *node,
  					    const gimple *stmt,
  					    const svalue *lhs) const;
!   void make_invalid_transitions_on_condition (sm_context *sm_ctxt,
  					      const supernode *node,
  					      const gimple *stmt,
  					      const svalue *lhs) const;
!   void check_for_fd_attrs (sm_context *sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call,
  			   const tree callee_fndecl, const char *attr_name,
  			   access_directions fd_attr_access_dir) const;
!   void check_for_dup (sm_context *sm_ctxt, const supernode *node,
         const gimple *stmt, const gcall *call, const tree callee_fndecl,
         enum dup kind) const;
  
--- 229,262 ----
    tree m_SOCK_DGRAM;
  
  private:
!   void on_open (sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call) const;
!   void on_creat (sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call) const;
!   void on_close (sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
  		 const gcall *call) const;
!   void on_read (sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
  		const gcall *call, const tree callee_fndecl) const;
!   void on_write (sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
  		 const gcall *call, const tree callee_fndecl) const;
!   void check_for_open_fd (sm_context &sm_ctxt, const supernode *node,
  			  const gimple *stmt, const gcall *call,
  			  const tree callee_fndecl,
  			  enum access_directions access_fn) const;
  
!   void make_valid_transitions_on_condition (sm_context &sm_ctxt,
  					    const supernode *node,
  					    const gimple *stmt,
  					    const svalue *lhs) const;
!   void make_invalid_transitions_on_condition (sm_context &sm_ctxt,
  					      const supernode *node,
  					      const gimple *stmt,
  					      const svalue *lhs) const;
!   void check_for_fd_attrs (sm_context &sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call,
  			   const tree callee_fndecl, const char *attr_name,
  			   access_directions fd_attr_access_dir) const;
!   void check_for_dup (sm_context &sm_ctxt, const supernode *node,
         const gimple *stmt, const gcall *call, const tree callee_fndecl,
         enum dup kind) const;
  
*************** private:
*** 263,276 ****
  
    bool check_for_socket_fd (const call_details &cd,
  			    bool successful,
! 			    sm_context *sm_ctxt,
  			    const svalue *fd_sval,
  			    const supernode *node,
  			    state_t old_state,
  			    bool *complained = NULL) const;
    bool check_for_new_socket_fd (const call_details &cd,
  				bool successful,
! 				sm_context *sm_ctxt,
  				const svalue *fd_sval,
  				const supernode *node,
  				state_t old_state,
--- 264,277 ----
  
    bool check_for_socket_fd (const call_details &cd,
  			    bool successful,
! 			    sm_context &sm_ctxt,
  			    const svalue *fd_sval,
  			    const supernode *node,
  			    state_t old_state,
  			    bool *complained = NULL) const;
    bool check_for_new_socket_fd (const call_details &cd,
  				bool successful,
! 				sm_context &sm_ctxt,
  				const svalue *fd_sval,
  				const supernode *node,
  				state_t old_state,
*************** public:
*** 291,363 ****
      return same_tree_p (m_arg, ((const fd_diagnostic &)base_other).m_arg);
    }
  
!   label_text
!   describe_state_change (const evdesc::state_change &change) override
    {
      if (change.m_old_state == m_sm.get_start_state ())
        {
  	if (change.m_new_state == m_sm.m_unchecked_read_write
  	    || change.m_new_state == m_sm.m_valid_read_write)
! 	  return change.formatted_print ("opened here as read-write");
  
  	if (change.m_new_state == m_sm.m_unchecked_read_only
  	    || change.m_new_state == m_sm.m_valid_read_only)
! 	  return change.formatted_print ("opened here as read-only");
  
  	if (change.m_new_state == m_sm.m_unchecked_write_only
  	    || change.m_new_state == m_sm.m_valid_write_only)
! 	  return change.formatted_print ("opened here as write-only");
  
  	if (change.m_new_state == m_sm.m_new_datagram_socket)
! 	  return change.formatted_print ("datagram socket created here");
  
  	if (change.m_new_state == m_sm.m_new_stream_socket)
! 	  return change.formatted_print ("stream socket created here");
  
  	if (change.m_new_state == m_sm.m_new_unknown_socket
  	    || change.m_new_state == m_sm.m_connected_stream_socket)
! 	  return change.formatted_print ("socket created here");
        }
  
      if (change.m_new_state == m_sm.m_bound_datagram_socket)
!       return change.formatted_print ("datagram socket bound here");
  
      if (change.m_new_state == m_sm.m_bound_stream_socket)
!       return change.formatted_print ("stream socket bound here");
  
      if (change.m_new_state == m_sm.m_bound_unknown_socket
  	|| change.m_new_state == m_sm.m_connected_stream_socket)
! 	  return change.formatted_print ("socket bound here");
  
      if (change.m_new_state == m_sm.m_listening_stream_socket)
!       return change.formatted_print
! 	("stream socket marked as passive here via %qs", "listen");
  
      if (change.m_new_state == m_sm.m_closed)
!       return change.formatted_print ("closed here");
  
      if (m_sm.is_unchecked_fd_p (change.m_old_state)
  	&& m_sm.is_valid_fd_p (change.m_new_state))
        {
  	if (change.m_expr)
! 	  return change.formatted_print (
! 	      "assuming %qE is a valid file descriptor (>= 0)", change.m_expr);
  	else
! 	  return change.formatted_print ("assuming a valid file descriptor");
        }
  
      if (m_sm.is_unchecked_fd_p (change.m_old_state)
  	&& change.m_new_state == m_sm.m_invalid)
        {
  	if (change.m_expr)
! 	  return change.formatted_print (
! 	      "assuming %qE is an invalid file descriptor (< 0)",
! 	      change.m_expr);
  	else
! 	  return change.formatted_print ("assuming an invalid file descriptor");
        }
  
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 292,402 ----
      return same_tree_p (m_arg, ((const fd_diagnostic &)base_other).m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_old_state == m_sm.get_start_state ())
        {
  	if (change.m_new_state == m_sm.m_unchecked_read_write
  	    || change.m_new_state == m_sm.m_valid_read_write)
! 	  {
! 	    pp_string (&pp, "opened here as read-write");
! 	    return true;
! 	  }
  
  	if (change.m_new_state == m_sm.m_unchecked_read_only
  	    || change.m_new_state == m_sm.m_valid_read_only)
! 	  {
! 	    pp_string (&pp, "opened here as read-only");
! 	    return true;
! 	  }
  
  	if (change.m_new_state == m_sm.m_unchecked_write_only
  	    || change.m_new_state == m_sm.m_valid_write_only)
! 	  {
! 	    pp_string (&pp, "opened here as write-only");
! 	    return true;
! 	  }
  
  	if (change.m_new_state == m_sm.m_new_datagram_socket)
! 	  {
! 	    pp_string (&pp, "datagram socket created here");
! 	    return true;
! 	  }
  
  	if (change.m_new_state == m_sm.m_new_stream_socket)
! 	  {
! 	    pp_string (&pp, "stream socket created here");
! 	    return true;
! 	  }
  
  	if (change.m_new_state == m_sm.m_new_unknown_socket
  	    || change.m_new_state == m_sm.m_connected_stream_socket)
! 	  {
! 	    pp_string (&pp, "socket created here");
! 	    return true;
! 	  }
        }
  
      if (change.m_new_state == m_sm.m_bound_datagram_socket)
!       {
! 	pp_string (&pp, "datagram socket bound here");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_bound_stream_socket)
!       {
! 	pp_string (&pp, "stream socket bound here");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_bound_unknown_socket
  	|| change.m_new_state == m_sm.m_connected_stream_socket)
!       {
! 	pp_string (&pp, "socket bound here");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_listening_stream_socket)
!       {
! 	pp_printf (&pp,
! 		   "stream socket marked as passive here via %qs",
! 		   "listen");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_closed)
!       {
! 	pp_string (&pp, "closed here");
! 	return true;
!       }
  
      if (m_sm.is_unchecked_fd_p (change.m_old_state)
  	&& m_sm.is_valid_fd_p (change.m_new_state))
        {
  	if (change.m_expr)
! 	  pp_printf (&pp,
! 		     "assuming %qE is a valid file descriptor (>= 0)",
! 		     change.m_expr);
  	else
! 	  pp_string (&pp, "assuming a valid file descriptor");
! 	return true;
        }
  
      if (m_sm.is_unchecked_fd_p (change.m_old_state)
  	&& change.m_new_state == m_sm.m_invalid)
        {
  	if (change.m_expr)
! 	  pp_printf (&pp,
! 		     "assuming %qE is an invalid file descriptor (< 0)",
! 		     change.m_expr);
  	else
! 	  pp_string (&pp, "assuming an invalid file descriptor");
! 	return true;
        }
  
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 476,512 ****
        return ctxt.warn ("leak of file descriptor");
    }
  
!   label_text
!   describe_state_change (const evdesc::state_change &change) final override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
        {
  	m_open_event = change.m_event_id;
! 	return label_text::borrow ("opened here");
        }
  
!     return fd_diagnostic::describe_state_change (change);
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_open_event.known_p ())
        {
  	if (ev.m_expr)
! 	  return ev.formatted_print ("%qE leaks here; was opened at %@",
! 				     ev.m_expr, &m_open_event);
  	else
! 	  return ev.formatted_print ("leaks here; was opened at %@",
! 				     &m_open_event);
        }
      else
        {
  	if (ev.m_expr)
! 	  return ev.formatted_print ("%qE leaks here", ev.m_expr);
  	else
! 	  return ev.formatted_print ("leaks here");
        }
    }
  
  private:
--- 515,557 ----
        return ctxt.warn ("leak of file descriptor");
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
        {
  	m_open_event = change.m_event_id;
! 	pp_string (&pp, "opened here");
! 	return true;
        }
  
!     return fd_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (m_open_event.known_p ())
        {
  	if (ev.m_expr)
! 	  pp_printf (&pp,
! 		     "%qE leaks here; was opened at %@",
! 		     ev.m_expr, &m_open_event);
  	else
! 	  pp_printf (&pp,
! 		     "leaks here; was opened at %@",
! 		     &m_open_event);
        }
      else
        {
  	if (ev.m_expr)
! 	  pp_printf (&pp, "%qE leaks here", ev.m_expr);
  	else
! 	  pp_string (&pp, "leaks here");
        }
+     return true;
    }
  
  private:
*************** public:
*** 567,583 ****
        return warned;
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      switch (m_fd_dir)
        {
        case DIRS_READ:
! 	return ev.formatted_print ("%qE on read-only file descriptor %qE",
! 				   m_callee_fndecl, m_arg);
        case DIRS_WRITE:
! 	return ev.formatted_print ("%qE on write-only file descriptor %qE",
! 				   m_callee_fndecl, m_arg);
        default:
  	gcc_unreachable ();
        }
--- 612,633 ----
        return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      switch (m_fd_dir)
        {
        case DIRS_READ:
! 	pp_printf (&pp,
! 		   "%qE on read-only file descriptor %qE",
! 		   m_callee_fndecl, m_arg);
! 	return true;
        case DIRS_WRITE:
! 	pp_printf (&pp,
! 		   "%qE on write-only file descriptor %qE",
! 		   m_callee_fndecl, m_arg);
! 	return true;
        default:
  	gcc_unreachable ();
        }
*************** public:
*** 613,639 ****
      return ctxt.warn ("double %<close%> of file descriptor %qE", m_arg);
    }
  
!   label_text
!   describe_state_change (const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
!       return label_text::borrow ("opened here");
  
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_close_event = change.m_event_id;
! 	return change.formatted_print ("first %qs here", "close");
        }
!     return fd_diagnostic::describe_state_change (change);
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_close_event.known_p ())
!       return ev.formatted_print ("second %qs here; first %qs was at %@",
! 				 "close", "close", &m_first_close_event);
!     return ev.formatted_print ("second %qs here", "close");
    }
  
  private:
--- 663,700 ----
      return ctxt.warn ("double %<close%> of file descriptor %qE", m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
!       {
! 	pp_string (&pp, "opened here");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_close_event = change.m_event_id;
! 	pp_printf (&pp, "first %qs here", "close");
! 	return true;
        }
!     return fd_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_close_event.known_p ())
!       pp_printf (&pp,
! 		 "second %qs here; first %qs was at %@",
! 		 "close", "close", &m_first_close_event);
!     else
!       pp_printf (&pp,
! 		 "second %qs here",
! 		 "close");
!     return true;
    }
  
  private:
*************** public:
*** 678,708 ****
      return warned;
    }
  
!   label_text
!   describe_state_change (const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
!       return label_text::borrow ("opened here");
  
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_close_event = change.m_event_id;
! 	return change.formatted_print ("closed here");
        }
  
!     return fd_diagnostic::describe_state_change (change);
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_close_event.known_p ())
! 	return ev.formatted_print (
! 	    "%qE on closed file descriptor %qE; %qs was at %@", m_callee_fndecl,
! 	    m_arg, "close", &m_first_close_event);
!       else
! 	return ev.formatted_print ("%qE on closed file descriptor %qE",
! 				  m_callee_fndecl, m_arg);
    }
  
  private:
--- 739,779 ----
      return warned;
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
!       {
! 	pp_string (&pp, "opened here");
! 	return true;
!       }
  
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_close_event = change.m_event_id;
! 	pp_string (&pp, "closed here");
! 	return true;
        }
  
!     return fd_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_close_event.known_p ())
!       pp_printf (&pp,
! 		 "%qE on closed file descriptor %qE;"
! 		 " %qs was at %@",
! 		 m_callee_fndecl, m_arg,
! 		 "close", &m_first_close_event);
!     else
!       pp_printf (&pp,
! 		 "%qE on closed file descriptor %qE",
! 		 m_callee_fndecl, m_arg);
!     return true;
    }
  
  private:
*************** public:
*** 747,773 ****
      return warned;
    }
  
!   label_text
!   describe_state_change (const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
        {
  	m_first_open_event = change.m_event_id;
! 	return label_text::borrow ("opened here");
        }
  
!     return fd_diagnostic::describe_state_change (change);
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_open_event.known_p ())
!       return ev.formatted_print (
! 	  "%qE could be invalid: unchecked value from %@", m_arg,
! 	  &m_first_open_event);
      else
!       return ev.formatted_print ("%qE could be invalid", m_arg);
    }
  
  private:
--- 818,849 ----
      return warned;
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (m_sm.is_unchecked_fd_p (change.m_new_state))
        {
  	m_first_open_event = change.m_event_id;
! 	pp_string (&pp, "opened here");
! 	return true;
        }
  
!     return fd_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_open_event.known_p ())
!       pp_printf (&pp,
! 		 "%qE could be invalid: unchecked value from %@", m_arg,
! 		 &m_first_open_event);
      else
!       pp_printf (&pp,
! 		 "%qE could be invalid", m_arg);
!     return true;
    }
  
  private:
*************** public:
*** 855,883 ****
  		      m_callee_fndecl, m_arg);
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      switch (m_expected_phase)
        {
        case EXPECTED_PHASE_CAN_TRANSFER:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a stream socket to be connected via %qs"
! 	       " but %qE has not yet been bound",
! 	       m_callee_fndecl, "accept", m_arg);
  	  if (m_actual_state == m_sm.m_bound_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a stream socket to be connected via %qs"
! 	       " but %qE is not yet listening",
! 	       m_callee_fndecl, "accept", m_arg);
  	  if (m_actual_state == m_sm.m_listening_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a stream socket to be connected via"
! 	       " the return value of %qs"
! 	       " but %qE is listening; wrong file descriptor?",
! 	       m_callee_fndecl, "accept", m_arg);
  	}
  	break;
        case EXPECTED_PHASE_CAN_BIND:
--- 931,969 ----
  		      m_callee_fndecl, m_arg);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      switch (m_expected_phase)
        {
        case EXPECTED_PHASE_CAN_TRANSFER:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a stream socket to be connected via %qs"
! 			 " but %qE has not yet been bound",
! 			 m_callee_fndecl, "accept", m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_bound_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a stream socket to be connected via %qs"
! 			 " but %qE is not yet listening",
! 			 m_callee_fndecl, "accept", m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_listening_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a stream socket to be connected via"
! 			 " the return value of %qs"
! 			 " but %qE is listening; wrong file descriptor?",
! 			 m_callee_fndecl, "accept", m_arg);
! 	      return true;
! 	    }
  	}
  	break;
        case EXPECTED_PHASE_CAN_BIND:
*************** public:
*** 885,940 ****
  	  if (m_actual_state == m_sm.m_bound_datagram_socket
  	      || m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a new socket file descriptor"
! 	       " but %qE has already been bound",
! 	       m_callee_fndecl, m_arg);
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a new socket file descriptor"
! 	       " but %qE is already connected",
! 	       m_callee_fndecl, m_arg);
  	  if (m_actual_state == m_sm.m_listening_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a new socket file descriptor"
! 	       " but %qE is already listening",
! 	       m_callee_fndecl, m_arg);
  	}
  	break;
        case EXPECTED_PHASE_CAN_LISTEN:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket
  	      || m_actual_state == m_sm.m_new_unknown_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a bound stream socket file descriptor"
! 	       " but %qE has not yet been bound",
! 	       m_callee_fndecl, m_arg);
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a bound stream socket file descriptor"
! 	       " but %qE is connected",
! 	       m_callee_fndecl, m_arg);
  	}
  	break;
        case EXPECTED_PHASE_CAN_ACCEPT:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket
  	      || m_actual_state == m_sm.m_new_unknown_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a listening stream socket file descriptor"
! 	       " but %qE has not yet been bound",
! 	       m_callee_fndecl, m_arg);
  	  if (m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a listening stream socket file descriptor"
! 	       " whereas %qE is bound but not yet listening",
! 	       m_callee_fndecl, m_arg);
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a listening stream socket file descriptor"
! 	       " but %qE is connected",
! 	       m_callee_fndecl, m_arg);
  	}
  	break;
        case EXPECTED_PHASE_CAN_CONNECT:
--- 971,1050 ----
  	  if (m_actual_state == m_sm.m_bound_datagram_socket
  	      || m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a new socket file descriptor"
! 			 " but %qE has already been bound",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a new socket file descriptor"
! 			 " but %qE is already connected",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_listening_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a new socket file descriptor"
! 			 " but %qE is already listening",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	}
  	break;
        case EXPECTED_PHASE_CAN_LISTEN:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket
  	      || m_actual_state == m_sm.m_new_unknown_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a bound stream socket file descriptor"
! 			 " but %qE has not yet been bound",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a bound stream socket file descriptor"
! 			 " but %qE is connected",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	}
  	break;
        case EXPECTED_PHASE_CAN_ACCEPT:
  	{
  	  if (m_actual_state == m_sm.m_new_stream_socket
  	      || m_actual_state == m_sm.m_new_unknown_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a listening stream socket file descriptor"
! 			 " but %qE has not yet been bound",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a listening stream socket file descriptor"
! 			 " whereas %qE is bound but not yet listening",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  if (m_actual_state == m_sm.m_connected_stream_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a listening stream socket file descriptor"
! 			 " but %qE is connected",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	}
  	break;
        case EXPECTED_PHASE_CAN_CONNECT:
*************** public:
*** 942,953 ****
  	  if (m_actual_state == m_sm.m_bound_datagram_socket
  	      || m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    return ev.formatted_print
! 	      ("%qE expects a new socket file descriptor but %qE is bound",
! 	       m_callee_fndecl, m_arg);
  	  else
! 	    return ev.formatted_print
! 	      ("%qE expects a new socket file descriptor", m_callee_fndecl);
  	}
  	break;
        }
--- 1052,1071 ----
  	  if (m_actual_state == m_sm.m_bound_datagram_socket
  	      || m_actual_state == m_sm.m_bound_stream_socket
  	      || m_actual_state == m_sm.m_bound_unknown_socket)
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a new socket file descriptor"
! 			 " but %qE is bound",
! 			 m_callee_fndecl, m_arg);
! 	      return true;
! 	    }
  	  else
! 	    {
! 	      pp_printf (&pp,
! 			 "%qE expects a new socket file descriptor",
! 			 m_callee_fndecl);
! 	      return true;
! 	    }
  	}
  	break;
        }
*************** public:
*** 1024,1031 ****
        }
    }
  
!   label_text
!   describe_final_event (const evdesc::final_event &ev) final override
    {
      switch (m_expected_type)
        {
--- 1142,1150 ----
        }
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      switch (m_expected_type)
        {
*************** public:
*** 1035,1050 ****
        case EXPECTED_TYPE_SOCKET:
        case EXPECTED_TYPE_STREAM_SOCKET:
  	if (!m_sm.is_socket_fd_p (m_actual_state))
! 	  return ev.formatted_print ("%qE expects a socket file descriptor"
! 				     " but %qE is not a socket",
! 				     m_callee_fndecl, m_arg);
        }
      gcc_assert (m_expected_type == EXPECTED_TYPE_STREAM_SOCKET);
      gcc_assert (m_sm.is_datagram_socket_fd_p (m_actual_state));
!     return ev.formatted_print
!       ("%qE expects a stream socket file descriptor"
!        " but %qE is a datagram socket",
!        m_callee_fndecl, m_arg);
    }
  
  private:
--- 1154,1174 ----
        case EXPECTED_TYPE_SOCKET:
        case EXPECTED_TYPE_STREAM_SOCKET:
  	if (!m_sm.is_socket_fd_p (m_actual_state))
! 	  {
! 	    pp_printf (&pp,
! 		       "%qE expects a socket file descriptor"
! 		       " but %qE is not a socket",
! 		       m_callee_fndecl, m_arg);
! 	    return true;
! 	  }
        }
      gcc_assert (m_expected_type == EXPECTED_TYPE_STREAM_SOCKET);
      gcc_assert (m_sm.is_datagram_socket_fd_p (m_actual_state));
!     pp_printf (&pp,
! 	       "%qE expects a stream socket file descriptor"
! 	       " but %qE is a datagram socket",
! 	       m_callee_fndecl, m_arg);
!     return true;
    }
  
  private:
*************** fd_state_machine::mark_as_valid_fd (regi
*** 1196,1206 ****
  }
  
  bool
! fd_state_machine::on_stmt (sm_context *sm_ctxt, const supernode *node,
  			   const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast<const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "open", call, 2))
  	  {
--- 1320,1330 ----
  }
  
  bool
! fd_state_machine::on_stmt (sm_context &sm_ctxt, const supernode *node,
  			   const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast<const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "open", call, 2))
  	  {
*************** fd_state_machine::on_stmt (sm_context *s
*** 1273,1279 ****
  
  void
  fd_state_machine::check_for_fd_attrs (
!     sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
      const gcall *call, const tree callee_fndecl, const char *attr_name,
      access_directions fd_attr_access_dir) const
  {
--- 1397,1403 ----
  
  void
  fd_state_machine::check_for_fd_attrs (
!     sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
      const gcall *call, const tree callee_fndecl, const char *attr_name,
      access_directions fd_attr_access_dir) const
  {
*************** fd_state_machine::check_for_fd_attrs (
*** 1284,1290 ****
    tree fndecl = callee_fndecl;
    /* If call is recognized as a builtin known_function,
       use that builtin's function_decl.  */
!   if (const region_model *old_model = sm_ctxt->get_old_region_model ())
      if (const builtin_known_function *builtin_kf
  	 = old_model->get_builtin_kf (call))
        fndecl = builtin_kf->builtin_decl ();
--- 1408,1414 ----
    tree fndecl = callee_fndecl;
    /* If call is recognized as a builtin known_function,
       use that builtin's function_decl.  */
!   if (const region_model *old_model = sm_ctxt.get_old_region_model ())
      if (const builtin_known_function *builtin_kf
  	 = old_model->get_builtin_kf (call))
        fndecl = builtin_kf->builtin_decl ();
*************** fd_state_machine::check_for_fd_attrs (
*** 1310,1317 ****
    for (unsigned arg_idx = 0; arg_idx < gimple_call_num_args (call); arg_idx++)
      {
        tree arg = gimple_call_arg (call, arg_idx);
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
!       state_t state = sm_ctxt->get_state (stmt, arg);
        bool bit_set = bitmap_bit_p (argmap, arg_idx);
        if (TREE_CODE (TREE_TYPE (arg)) != INTEGER_TYPE)
  	continue;
--- 1434,1441 ----
    for (unsigned arg_idx = 0; arg_idx < gimple_call_num_args (call); arg_idx++)
      {
        tree arg = gimple_call_arg (call, arg_idx);
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       state_t state = sm_ctxt.get_state (stmt, arg);
        bool bit_set = bitmap_bit_p (argmap, arg_idx);
        if (TREE_CODE (TREE_TYPE (arg)) != INTEGER_TYPE)
  	continue;
*************** fd_state_machine::check_for_fd_attrs (
*** 1324,1334 ****
  	  if (is_closed_fd_p (state))
  	    {
  
! 	      sm_ctxt->warn (node, stmt, arg,
! 			     make_unique<fd_use_after_close>
! 			       (*this, diag_arg,
! 				fndecl, attr_name,
! 				arg_idx));
  	      continue;
  	    }
  
--- 1448,1458 ----
  	  if (is_closed_fd_p (state))
  	    {
  
! 	      sm_ctxt.warn (node, stmt, arg,
! 			    make_unique<fd_use_after_close>
! 			    (*this, diag_arg,
! 			     fndecl, attr_name,
! 			     arg_idx));
  	      continue;
  	    }
  
*************** fd_state_machine::check_for_fd_attrs (
*** 1336,1346 ****
  	    {
  	      if (!is_constant_fd_p (state))
  		{
! 		  sm_ctxt->warn (node, stmt, arg,
! 				 make_unique<fd_use_without_check>
! 				 (*this, diag_arg,
! 				  fndecl, attr_name,
! 				  arg_idx));
  		  continue;
  		}
  	    }
--- 1460,1470 ----
  	    {
  	      if (!is_constant_fd_p (state))
  		{
! 		  sm_ctxt.warn (node, stmt, arg,
! 				make_unique<fd_use_without_check>
! 				(*this, diag_arg,
! 				 fndecl, attr_name,
! 				 arg_idx));
  		  continue;
  		}
  	    }
*************** fd_state_machine::check_for_fd_attrs (
*** 1353,1359 ****
  
  	      if (is_writeonly_fd_p (state))
  		{
! 		  sm_ctxt->warn (
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_WRITE,
--- 1477,1483 ----
  
  	      if (is_writeonly_fd_p (state))
  		{
! 		  sm_ctxt.warn (
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_WRITE,
*************** fd_state_machine::check_for_fd_attrs (
*** 1367,1373 ****
  
  	      if (is_readonly_fd_p (state))
  		{
! 		  sm_ctxt->warn (
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_READ,
--- 1491,1497 ----
  
  	      if (is_readonly_fd_p (state))
  		{
! 		  sm_ctxt.warn (
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_READ,
*************** fd_state_machine::check_for_fd_attrs (
*** 1384,1390 ****
  
  
  void
! fd_state_machine::on_open (sm_context *sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call) const
  {
    tree lhs = gimple_call_lhs (call);
--- 1508,1514 ----
  
  
  void
! fd_state_machine::on_open (sm_context &sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call) const
  {
    tree lhs = gimple_call_lhs (call);
*************** fd_state_machine::on_open (sm_context *s
*** 1400,1444 ****
        switch (mode)
  	{
  	case READ_ONLY:
! 	  sm_ctxt->on_transition (node, stmt, lhs, m_start,
! 				  m_unchecked_read_only);
  	  break;
  	case WRITE_ONLY:
! 	  sm_ctxt->on_transition (node, stmt, lhs, m_start,
! 				  m_unchecked_write_only);
  	  break;
  	default:
! 	  sm_ctxt->on_transition (node, stmt, lhs, m_start,
! 				  m_unchecked_read_write);
  	}
      }
    else
      {
!       sm_ctxt->warn (node, stmt, NULL_TREE,
! 		     make_unique<fd_leak> (*this, NULL_TREE));
      }
  }
  
  void
! fd_state_machine::on_creat (sm_context *sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call) const
  {
    tree lhs = gimple_call_lhs (call);
    if (lhs)
!     sm_ctxt->on_transition (node, stmt, lhs, m_start, m_unchecked_write_only);
    else
!     sm_ctxt->warn (node, stmt, NULL_TREE,
! 		   make_unique<fd_leak> (*this, NULL_TREE));
  }
  
  void
! fd_state_machine::check_for_dup (sm_context *sm_ctxt, const supernode *node,
  				 const gimple *stmt, const gcall *call,
  				 const tree callee_fndecl, enum dup kind) const
  {
    tree lhs = gimple_call_lhs (call);
    tree arg_1 = gimple_call_arg (call, 0);
!   state_t state_arg_1 = sm_ctxt->get_state (stmt, arg_1);
    if (state_arg_1 == m_stop)
      return;
    if (!(is_constant_fd_p (state_arg_1) || is_valid_fd_p (state_arg_1)
--- 1524,1568 ----
        switch (mode)
  	{
  	case READ_ONLY:
! 	  sm_ctxt.on_transition (node, stmt, lhs, m_start,
! 				 m_unchecked_read_only);
  	  break;
  	case WRITE_ONLY:
! 	  sm_ctxt.on_transition (node, stmt, lhs, m_start,
! 				 m_unchecked_write_only);
  	  break;
  	default:
! 	  sm_ctxt.on_transition (node, stmt, lhs, m_start,
! 				 m_unchecked_read_write);
  	}
      }
    else
      {
!       sm_ctxt.warn (node, stmt, NULL_TREE,
! 		    make_unique<fd_leak> (*this, NULL_TREE));
      }
  }
  
  void
! fd_state_machine::on_creat (sm_context &sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call) const
  {
    tree lhs = gimple_call_lhs (call);
    if (lhs)
!     sm_ctxt.on_transition (node, stmt, lhs, m_start, m_unchecked_write_only);
    else
!     sm_ctxt.warn (node, stmt, NULL_TREE,
! 		  make_unique<fd_leak> (*this, NULL_TREE));
  }
  
  void
! fd_state_machine::check_for_dup (sm_context &sm_ctxt, const supernode *node,
  				 const gimple *stmt, const gcall *call,
  				 const tree callee_fndecl, enum dup kind) const
  {
    tree lhs = gimple_call_lhs (call);
    tree arg_1 = gimple_call_arg (call, 0);
!   state_t state_arg_1 = sm_ctxt.get_state (stmt, arg_1);
    if (state_arg_1 == m_stop)
      return;
    if (!(is_constant_fd_p (state_arg_1) || is_valid_fd_p (state_arg_1)
*************** fd_state_machine::check_for_dup (sm_cont
*** 1454,1478 ****
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt->set_next_state (stmt, lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt->set_next_state (stmt, lhs,
! 				     valid_to_unchecked_state (state_arg_1));
  	}
        break;
  
      case DUP_2:
      case DUP_3:
        tree arg_2 = gimple_call_arg (call, 1);
!       state_t state_arg_2 = sm_ctxt->get_state (stmt, arg_2);
!       tree diag_arg_2 = sm_ctxt->get_diagnostic_tree (arg_2);
        if (state_arg_2 == m_stop)
  	return;
        /* Check if -1 was passed as second argument to dup2.  */
        if (!(is_constant_fd_p (state_arg_2) || is_valid_fd_p (state_arg_2)
  	    || state_arg_2 == m_start))
  	{
! 	  sm_ctxt->warn (
  	      node, stmt, arg_2,
  	      make_unique<fd_use_without_check> (*this, diag_arg_2,
  						 callee_fndecl));
--- 1578,1602 ----
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt.set_next_state (stmt, lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt.set_next_state (stmt, lhs,
! 				    valid_to_unchecked_state (state_arg_1));
  	}
        break;
  
      case DUP_2:
      case DUP_3:
        tree arg_2 = gimple_call_arg (call, 1);
!       state_t state_arg_2 = sm_ctxt.get_state (stmt, arg_2);
!       tree diag_arg_2 = sm_ctxt.get_diagnostic_tree (arg_2);
        if (state_arg_2 == m_stop)
  	return;
        /* Check if -1 was passed as second argument to dup2.  */
        if (!(is_constant_fd_p (state_arg_2) || is_valid_fd_p (state_arg_2)
  	    || state_arg_2 == m_start))
  	{
! 	  sm_ctxt.warn (
  	      node, stmt, arg_2,
  	      make_unique<fd_use_without_check> (*this, diag_arg_2,
  						 callee_fndecl));
*************** fd_state_machine::check_for_dup (sm_cont
*** 1484,1493 ****
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt->set_next_state (stmt, lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt->set_next_state (stmt, lhs,
! 				     valid_to_unchecked_state (state_arg_1));
  	}
  
        break;
--- 1608,1617 ----
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt.set_next_state (stmt, lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt.set_next_state (stmt, lhs,
! 				    valid_to_unchecked_state (state_arg_1));
  	}
  
        break;
*************** fd_state_machine::check_for_dup (sm_cont
*** 1495,1540 ****
  }
  
  void
! fd_state_machine::on_close (sm_context *sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call) const
  {
    tree arg = gimple_call_arg (call, 0);
!   state_t state = sm_ctxt->get_state (stmt, arg);
!   tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
  
!   sm_ctxt->on_transition (node, stmt, arg, m_start, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_unchecked_read_write, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_unchecked_read_only, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_unchecked_write_only, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_valid_read_write, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_valid_read_only, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_valid_write_only, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_constant_fd, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_new_datagram_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_new_stream_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_new_unknown_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_bound_datagram_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_bound_stream_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_bound_unknown_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_listening_stream_socket, m_closed);
!   sm_ctxt->on_transition (node, stmt, arg, m_connected_stream_socket, m_closed);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt->warn (node, stmt, arg,
! 		     make_unique<fd_double_close> (*this, diag_arg));
!       sm_ctxt->set_next_state (stmt, arg, m_stop);
      }
  }
  void
! fd_state_machine::on_read (sm_context *sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call,
  			   const tree callee_fndecl) const
  {
    check_for_open_fd (sm_ctxt, node, stmt, call, callee_fndecl, DIRS_READ);
  }
  void
! fd_state_machine::on_write (sm_context *sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call,
  			    const tree callee_fndecl) const
  {
--- 1619,1664 ----
  }
  
  void
! fd_state_machine::on_close (sm_context &sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call) const
  {
    tree arg = gimple_call_arg (call, 0);
!   state_t state = sm_ctxt.get_state (stmt, arg);
!   tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
  
!   sm_ctxt.on_transition (node, stmt, arg, m_start, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_unchecked_read_write, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_unchecked_read_only, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_unchecked_write_only, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_valid_read_write, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_valid_read_only, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_valid_write_only, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_constant_fd, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_new_datagram_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_new_stream_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_new_unknown_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_bound_datagram_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_bound_stream_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_bound_unknown_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_listening_stream_socket, m_closed);
!   sm_ctxt.on_transition (node, stmt, arg, m_connected_stream_socket, m_closed);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt.warn (node, stmt, arg,
! 		    make_unique<fd_double_close> (*this, diag_arg));
!       sm_ctxt.set_next_state (stmt, arg, m_stop);
      }
  }
  void
! fd_state_machine::on_read (sm_context &sm_ctxt, const supernode *node,
  			   const gimple *stmt, const gcall *call,
  			   const tree callee_fndecl) const
  {
    check_for_open_fd (sm_ctxt, node, stmt, call, callee_fndecl, DIRS_READ);
  }
  void
! fd_state_machine::on_write (sm_context &sm_ctxt, const supernode *node,
  			    const gimple *stmt, const gcall *call,
  			    const tree callee_fndecl) const
  {
*************** fd_state_machine::on_write (sm_context *
*** 1543,1561 ****
  
  void
  fd_state_machine::check_for_open_fd (
!     sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
      const gcall *call, const tree callee_fndecl,
      enum access_directions callee_fndecl_dir) const
  {
    tree arg = gimple_call_arg (call, 0);
!   tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
!   state_t state = sm_ctxt->get_state (stmt, arg);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt->warn (node, stmt, arg,
! 		     make_unique<fd_use_after_close> (*this, diag_arg,
! 						      callee_fndecl));
      }
  
    else
--- 1667,1685 ----
  
  void
  fd_state_machine::check_for_open_fd (
!     sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
      const gcall *call, const tree callee_fndecl,
      enum access_directions callee_fndecl_dir) const
  {
    tree arg = gimple_call_arg (call, 0);
!   tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!   state_t state = sm_ctxt.get_state (stmt, arg);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt.warn (node, stmt, arg,
! 		    make_unique<fd_use_after_close> (*this, diag_arg,
! 						     callee_fndecl));
      }
  
    else
*************** fd_state_machine::check_for_open_fd (
*** 1564,1570 ****
  	  || state == m_bound_stream_socket
  	  || state == m_listening_stream_socket)
  	/* Complain about fncall on socket in wrong phase.  */
! 	sm_ctxt->warn
  	  (node, stmt, arg,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   callee_fndecl,
--- 1688,1694 ----
  	  || state == m_bound_stream_socket
  	  || state == m_listening_stream_socket)
  	/* Complain about fncall on socket in wrong phase.  */
! 	sm_ctxt.warn
  	  (node, stmt, arg,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   callee_fndecl,
*************** fd_state_machine::check_for_open_fd (
*** 1578,1584 ****
  		 || state == m_stop))
  	{
  	  if (!is_constant_fd_p (state))
! 	    sm_ctxt->warn (
  		node, stmt, arg,
  		make_unique<fd_use_without_check> (*this, diag_arg,
  						   callee_fndecl));
--- 1702,1708 ----
  		 || state == m_stop))
  	{
  	  if (!is_constant_fd_p (state))
! 	    sm_ctxt.warn (
  		node, stmt, arg,
  		make_unique<fd_use_without_check> (*this, diag_arg,
  						   callee_fndecl));
*************** fd_state_machine::check_for_open_fd (
*** 1590,1599 ****
  	case DIRS_READ:
  	  if (is_writeonly_fd_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	      sm_ctxt->warn (node, stmt, arg,
! 			     make_unique<fd_access_mode_mismatch> (
! 				 *this, diag_arg, DIRS_WRITE, callee_fndecl));
  	    }
  
  	  break;
--- 1714,1723 ----
  	case DIRS_READ:
  	  if (is_writeonly_fd_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (node, stmt, arg,
! 			    make_unique<fd_access_mode_mismatch> (
! 			      *this, diag_arg, DIRS_WRITE, callee_fndecl));
  	    }
  
  	  break;
*************** fd_state_machine::check_for_open_fd (
*** 1601,1608 ****
  
  	  if (is_readonly_fd_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	      sm_ctxt->warn (node, stmt, arg,
  			     make_unique<fd_access_mode_mismatch> (
  				 *this, diag_arg, DIRS_READ, callee_fndecl));
  	    }
--- 1725,1732 ----
  
  	  if (is_readonly_fd_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (node, stmt, arg,
  			     make_unique<fd_access_mode_mismatch> (
  				 *this, diag_arg, DIRS_READ, callee_fndecl));
  	    }
*************** get_state_for_socket_type (const svalue
*** 1648,1654 ****
  bool
  fd_state_machine::on_socket (const call_details &cd,
  			     bool successful,
! 			     sm_context *sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
--- 1772,1778 ----
  bool
  fd_state_machine::on_socket (const call_details &cd,
  			     bool successful,
! 			     sm_context &sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
*************** fd_state_machine::on_socket (const call_
*** 1674,1685 ****
  	  const svalue *socket_type_sval = cd.get_arg_svalue (1);
  	  state_machine::state_t new_state
  	    = get_state_for_socket_type (socket_type_sval);
! 	  sm_ctxt->on_transition (node, stmt, new_fd, m_start, new_state);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt->warn (node, stmt, NULL_TREE,
! 		       make_unique<fd_leak> (*this, NULL_TREE));
      }
    else
      {
--- 1798,1809 ----
  	  const svalue *socket_type_sval = cd.get_arg_svalue (1);
  	  state_machine::state_t new_state
  	    = get_state_for_socket_type (socket_type_sval);
! 	  sm_ctxt.on_transition (node, stmt, new_fd, m_start, new_state);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt.warn (node, stmt, NULL_TREE,
! 		      make_unique<fd_leak> (*this, NULL_TREE));
      }
    else
      {
*************** fd_state_machine::on_socket (const call_
*** 1703,1709 ****
  bool
  fd_state_machine::check_for_socket_fd (const call_details &cd,
  				       bool successful,
! 				       sm_context *sm_ctxt,
  				       const svalue *fd_sval,
  				       const supernode *node,
  				       state_t old_state,
--- 1827,1833 ----
  bool
  fd_state_machine::check_for_socket_fd (const call_details &cd,
  				       bool successful,
! 				       sm_context &sm_ctxt,
  				       const svalue *fd_sval,
  				       const supernode *node,
  				       state_t old_state,
*************** fd_state_machine::check_for_socket_fd (c
*** 1713,1720 ****
  
    if (is_closed_fd_p (old_state))
      {
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
!       sm_ctxt->warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_use_after_close> (*this, diag_arg,
  					  cd.get_fndecl_for_call ()));
--- 1837,1844 ----
  
    if (is_closed_fd_p (old_state))
      {
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
!       sm_ctxt.warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_use_after_close> (*this, diag_arg,
  					  cd.get_fndecl_for_call ()));
*************** fd_state_machine::check_for_socket_fd (c
*** 1726,1733 ****
    else if (is_unchecked_fd_p (old_state) || is_valid_fd_p (old_state))
      {
        /* Complain about non-socket.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
!       sm_ctxt->warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_type_mismatch> (*this, diag_arg,
  					cd.get_fndecl_for_call (),
--- 1850,1857 ----
    else if (is_unchecked_fd_p (old_state) || is_valid_fd_p (old_state))
      {
        /* Complain about non-socket.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
!       sm_ctxt.warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_type_mismatch> (*this, diag_arg,
  					cd.get_fndecl_for_call (),
*************** fd_state_machine::check_for_socket_fd (c
*** 1740,1747 ****
      }
    else if (old_state == m_invalid)
      {
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
!       sm_ctxt->warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_use_without_check> (*this, diag_arg,
  					    cd.get_fndecl_for_call ()));
--- 1864,1871 ----
      }
    else if (old_state == m_invalid)
      {
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
!       sm_ctxt.warn
  	(node, stmt, fd_sval,
  	 make_unique<fd_use_without_check> (*this, diag_arg,
  					    cd.get_fndecl_for_call ()));
*************** fd_state_machine::check_for_socket_fd (c
*** 1766,1772 ****
  bool
  fd_state_machine::check_for_new_socket_fd (const call_details &cd,
  					   bool successful,
! 					   sm_context *sm_ctxt,
  					   const svalue *fd_sval,
  					   const supernode *node,
  					   state_t old_state,
--- 1890,1896 ----
  bool
  fd_state_machine::check_for_new_socket_fd (const call_details &cd,
  					   bool successful,
! 					   sm_context &sm_ctxt,
  					   const svalue *fd_sval,
  					   const supernode *node,
  					   state_t old_state,
*************** fd_state_machine::check_for_new_socket_f
*** 1803,1810 ****
  		|| old_state == m_constant_fd))
      {
        /* Complain about "bind" or "connect" in wrong phase.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
!       sm_ctxt->warn
  	(node, cd.get_call_stmt (), fd_sval,
  	 make_unique<fd_phase_mismatch> (*this, diag_arg,
  					 cd.get_fndecl_for_call (),
--- 1927,1934 ----
  		|| old_state == m_constant_fd))
      {
        /* Complain about "bind" or "connect" in wrong phase.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
!       sm_ctxt.warn
  	(node, cd.get_call_stmt (), fd_sval,
  	 make_unique<fd_phase_mismatch> (*this, diag_arg,
  					 cd.get_fndecl_for_call (),
*************** fd_state_machine::check_for_new_socket_f
*** 1817,1824 ****
      {
        /* If we were in the start state, assume we had a new socket.  */
        if (old_state == m_start)
! 	sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval,
! 				 m_new_unknown_socket);
      }
  
    /* Passing NULL as the address will lead to failure.  */
--- 1941,1948 ----
      {
        /* If we were in the start state, assume we had a new socket.  */
        if (old_state == m_start)
! 	sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval,
! 				m_new_unknown_socket);
      }
  
    /* Passing NULL as the address will lead to failure.  */
*************** fd_state_machine::check_for_new_socket_f
*** 1836,1842 ****
  bool
  fd_state_machine::on_bind (const call_details &cd,
  			   bool successful,
! 			   sm_context *sm_ctxt,
  			   const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
--- 1960,1966 ----
  bool
  fd_state_machine::on_bind (const call_details &cd,
  			   bool successful,
! 			   sm_context &sm_ctxt,
  			   const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
*************** fd_state_machine::on_bind (const call_de
*** 1845,1851 ****
    const supernode *node = sg->get_supernode_for_stmt (stmt);
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt->get_state (stmt, fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
  				fd_sval, node, old_state,
--- 1969,1975 ----
    const supernode *node = sg->get_supernode_for_stmt (stmt);
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (stmt, fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
  				fd_sval, node, old_state,
*************** fd_state_machine::on_bind (const call_de
*** 1868,1874 ****
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval, next_state);
        model->update_for_zero_return (cd, true);
      }
    else
--- 1992,1998 ----
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval, next_state);
        model->update_for_zero_return (cd, true);
      }
    else
*************** fd_state_machine::on_bind (const call_de
*** 1888,1894 ****
  bool
  fd_state_machine::on_listen (const call_details &cd,
  			     bool successful,
! 			     sm_context *sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
--- 2012,2018 ----
  bool
  fd_state_machine::on_listen (const call_details &cd,
  			     bool successful,
! 			     sm_context &sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
*************** fd_state_machine::on_listen (const call_
*** 1897,1903 ****
    const supernode *node = sg->get_supernode_for_stmt (cd.get_call_stmt ());
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt->get_state (stmt, fd_sval);
  
    /* We expect a stream socket that's had "bind" called on it.  */
    if (!check_for_socket_fd (cd, successful, sm_ctxt, fd_sval, node, old_state))
--- 2021,2027 ----
    const supernode *node = sg->get_supernode_for_stmt (cd.get_call_stmt ());
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (stmt, fd_sval);
  
    /* We expect a stream socket that's had "bind" called on it.  */
    if (!check_for_socket_fd (cd, successful, sm_ctxt, fd_sval, node, old_state))
*************** fd_state_machine::on_listen (const call_
*** 1912,1927 ****
  	|| old_state == m_listening_stream_socket))
      {
        /* Complain about fncall on wrong type or in wrong phase.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
! 	sm_ctxt->warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   cd.get_fndecl_for_call (),
  					   old_state,
  					   EXPECTED_PHASE_CAN_LISTEN));
        else
! 	sm_ctxt->warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_type_mismatch> (*this, diag_arg,
  					  cd.get_fndecl_for_call (),
--- 2036,2051 ----
  	|| old_state == m_listening_stream_socket))
      {
        /* Complain about fncall on wrong type or in wrong phase.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
! 	sm_ctxt.warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   cd.get_fndecl_for_call (),
  					   old_state,
  					   EXPECTED_PHASE_CAN_LISTEN));
        else
! 	sm_ctxt.warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_type_mismatch> (*this, diag_arg,
  					  cd.get_fndecl_for_call (),
*************** fd_state_machine::on_listen (const call_
*** 1934,1941 ****
    if (successful)
      {
        model->update_for_zero_return (cd, true);
!       sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval,
! 			       m_listening_stream_socket);
      }
    else
      {
--- 2058,2065 ----
    if (successful)
      {
        model->update_for_zero_return (cd, true);
!       sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval,
! 			      m_listening_stream_socket);
      }
    else
      {
*************** fd_state_machine::on_listen (const call_
*** 1943,1950 ****
        model->update_for_int_cst_return (cd, -1, true);
        model->set_errno (cd);
        if (old_state == m_start)
! 	sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval,
! 				 m_bound_stream_socket);
      }
  
    return true;
--- 2067,2074 ----
        model->update_for_int_cst_return (cd, -1, true);
        model->set_errno (cd);
        if (old_state == m_start)
! 	sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval,
! 				m_bound_stream_socket);
      }
  
    return true;
*************** fd_state_machine::on_listen (const call_
*** 1957,1963 ****
  bool
  fd_state_machine::on_accept (const call_details &cd,
  			     bool successful,
! 			     sm_context *sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
--- 2081,2087 ----
  bool
  fd_state_machine::on_accept (const call_details &cd,
  			     bool successful,
! 			     sm_context &sm_ctxt,
  			     const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
*************** fd_state_machine::on_accept (const call_
*** 1968,1974 ****
    const svalue *address_sval = cd.get_arg_svalue (1);
    const svalue *len_ptr_sval = cd.get_arg_svalue (2);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt->get_state (stmt, fd_sval);
  
    if (!address_sval->all_zeroes_p ())
      {
--- 2092,2098 ----
    const svalue *address_sval = cd.get_arg_svalue (1);
    const svalue *len_ptr_sval = cd.get_arg_svalue (2);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (stmt, fd_sval);
  
    if (!address_sval->all_zeroes_p ())
      {
*************** fd_state_machine::on_accept (const call_
*** 2024,2031 ****
    if (old_state == m_start || old_state == m_constant_fd)
      /* If we were in the start state (or a constant), assume we had the
         expected state.  */
!     sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval,
! 			     m_listening_stream_socket);
    else if (old_state == m_stop)
      {
        /* No further complaints.  */
--- 2148,2155 ----
    if (old_state == m_start || old_state == m_constant_fd)
      /* If we were in the start state (or a constant), assume we had the
         expected state.  */
!     sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval,
! 			    m_listening_stream_socket);
    else if (old_state == m_stop)
      {
        /* No further complaints.  */
*************** fd_state_machine::on_accept (const call_
*** 2033,2048 ****
    else if (old_state != m_listening_stream_socket)
      {
        /* Complain about fncall on wrong type or in wrong phase.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
! 	sm_ctxt->warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   cd.get_fndecl_for_call (),
  					   old_state,
  					   EXPECTED_PHASE_CAN_ACCEPT));
        else
! 	sm_ctxt->warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_type_mismatch> (*this, diag_arg,
  					  cd.get_fndecl_for_call (),
--- 2157,2172 ----
    else if (old_state != m_listening_stream_socket)
      {
        /* Complain about fncall on wrong type or in wrong phase.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
! 	sm_ctxt.warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_phase_mismatch> (*this, diag_arg,
  					   cd.get_fndecl_for_call (),
  					   old_state,
  					   EXPECTED_PHASE_CAN_ACCEPT));
        else
! 	sm_ctxt.warn
  	  (node, stmt, fd_sval,
  	   make_unique<fd_type_mismatch> (*this, diag_arg,
  					  cd.get_fndecl_for_call (),
*************** fd_state_machine::on_accept (const call_
*** 2066,2078 ****
  						  p);
  	  if (!add_constraint_ge_zero (model, new_fd, cd.get_ctxt ()))
  	    return false;
! 	  sm_ctxt->on_transition (node, stmt, new_fd,
! 				  m_start, m_connected_stream_socket);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt->warn (node, stmt, NULL_TREE,
! 		       make_unique<fd_leak> (*this, NULL_TREE));
      }
    else
      {
--- 2190,2202 ----
  						  p);
  	  if (!add_constraint_ge_zero (model, new_fd, cd.get_ctxt ()))
  	    return false;
! 	  sm_ctxt.on_transition (node, stmt, new_fd,
! 				 m_start, m_connected_stream_socket);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt.warn (node, stmt, NULL_TREE,
! 		      make_unique<fd_leak> (*this, NULL_TREE));
      }
    else
      {
*************** fd_state_machine::on_accept (const call_
*** 2091,2097 ****
  bool
  fd_state_machine::on_connect (const call_details &cd,
  			      bool successful,
! 			      sm_context *sm_ctxt,
  			      const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
--- 2215,2221 ----
  bool
  fd_state_machine::on_connect (const call_details &cd,
  			      bool successful,
! 			      sm_context &sm_ctxt,
  			      const extrinsic_state &ext_state) const
  {
    const gcall *stmt = cd.get_call_stmt ();
*************** fd_state_machine::on_connect (const call
*** 2100,2106 ****
    const supernode *node = sg->get_supernode_for_stmt (stmt);
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt->get_state (stmt, fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
  				fd_sval, node, old_state,
--- 2224,2230 ----
    const supernode *node = sg->get_supernode_for_stmt (stmt);
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (stmt, fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
  				fd_sval, node, old_state,
*************** fd_state_machine::on_connect (const call
*** 2126,2132 ****
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt->set_next_state (cd.get_call_stmt (), fd_sval, next_state);
      }
    else
      {
--- 2250,2256 ----
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval, next_state);
      }
    else
      {
*************** fd_state_machine::on_connect (const call
*** 2142,2148 ****
  }
  
  void
! fd_state_machine::on_condition (sm_context *sm_ctxt, const supernode *node,
  				const gimple *stmt, const svalue *lhs,
  				enum tree_code op, const svalue *rhs) const
  {
--- 2266,2272 ----
  }
  
  void
! fd_state_machine::on_condition (sm_context &sm_ctxt, const supernode *node,
  				const gimple *stmt, const svalue *lhs,
  				enum tree_code op, const svalue *rhs) const
  {
*************** fd_state_machine::on_condition (sm_conte
*** 2173,2199 ****
  }
  
  void
! fd_state_machine::make_valid_transitions_on_condition (sm_context *sm_ctxt,
  						       const supernode *node,
  						       const gimple *stmt,
  						       const svalue *lhs) const
  {
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_read_write,
! 			  m_valid_read_write);
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_read_only,
! 			  m_valid_read_only);
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_write_only,
! 			  m_valid_write_only);
  }
  
  void
  fd_state_machine::make_invalid_transitions_on_condition (
!     sm_context *sm_ctxt, const supernode *node, const gimple *stmt,
      const svalue *lhs) const
  {
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_read_write, m_invalid);
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_read_only, m_invalid);
!   sm_ctxt->on_transition (node, stmt, lhs, m_unchecked_write_only, m_invalid);
  }
  
  bool
--- 2297,2323 ----
  }
  
  void
! fd_state_machine::make_valid_transitions_on_condition (sm_context &sm_ctxt,
  						       const supernode *node,
  						       const gimple *stmt,
  						       const svalue *lhs) const
  {
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_read_write,
! 			 m_valid_read_write);
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_read_only,
! 			 m_valid_read_only);
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_write_only,
! 			 m_valid_write_only);
  }
  
  void
  fd_state_machine::make_invalid_transitions_on_condition (
!     sm_context &sm_ctxt, const supernode *node, const gimple *stmt,
      const svalue *lhs) const
  {
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_read_write, m_invalid);
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_read_only, m_invalid);
!   sm_ctxt.on_transition (node, stmt, lhs, m_unchecked_write_only, m_invalid);
  }
  
  bool
*************** public:
*** 2289,2295 ****
  	  return true;
  	}
  
!       return fd_sm->on_socket (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
  
--- 2413,2419 ----
  	  return true;
  	}
  
!       return fd_sm->on_socket (cd, m_success, *(sm_ctxt.get ()), *ext_state);
      }
    };
  
*************** public:
*** 2341,2347 ****
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
  	}
!       return fd_sm->on_bind (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
  
--- 2465,2471 ----
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
  	}
!       return fd_sm->on_bind (cd, m_success, *sm_ctxt.get (), *ext_state);
      }
    };
  
*************** class kf_listen : public known_function
*** 2393,2399 ****
  	  return true;
  	}
  
!       return fd_sm->on_listen (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
  
--- 2517,2523 ----
  	  return true;
  	}
  
!       return fd_sm->on_listen (cd, m_success, *sm_ctxt.get (), *ext_state);
      }
    };
  
*************** class kf_accept : public known_function
*** 2445,2451 ****
  	  return true;
  	}
  
!       return fd_sm->on_accept (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
  
--- 2569,2575 ----
  	  return true;
  	}
  
!       return fd_sm->on_accept (cd, m_success, *sm_ctxt.get (), *ext_state);
      }
    };
  
*************** public:
*** 2500,2506 ****
  	  return true;
  	}
  
!       return fd_sm->on_connect (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
  
--- 2624,2630 ----
  	  return true;
  	}
  
!       return fd_sm->on_connect (cd, m_success, *sm_ctxt.get (), *ext_state);
      }
    };
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-fd.dot gcc-15.1.0/gcc/analyzer/sm-fd.dot
*** gcc-14.2.0/gcc/analyzer/sm-fd.dot	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-fd.dot	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* An overview of the state machine from sm-fd.cc.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-fd.cc.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-file.cc gcc-15.1.0/gcc/analyzer/sm-file.cc
*** gcc-14.2.0/gcc/analyzer/sm-file.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-file.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A state machine for detecting misuses of <stdio.h>'s FILE * API.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of <stdio.h>'s FILE * API.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 28,33 ****
--- 28,34 ----
  #include "basic-block.h"
  #include "gimple.h"
  #include "options.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
*************** public:
*** 69,79 ****
      return m_start;
    }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context *sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
--- 70,80 ----
      return m_start;
    }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context &sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
*************** public:
*** 115,145 ****
      return same_tree_p (m_arg, ((const file_diagnostic &)base_other).m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& change.m_new_state == m_sm.m_unchecked)
        // TODO: verify that it's the fopen stmt, not a copy
!       return label_text::borrow ("opened here");
      if (change.m_old_state == m_sm.m_unchecked
  	&& change.m_new_state == m_sm.m_nonnull)
        {
  	if (change.m_expr)
! 	  return change.formatted_print ("assuming %qE is non-NULL",
! 					 change.m_expr);
  	else
! 	  return change.formatted_print ("assuming FILE * is non-NULL");
        }
      if (change.m_new_state == m_sm.m_null)
        {
  	if (change.m_expr)
! 	  return change.formatted_print ("assuming %qE is NULL",
! 					 change.m_expr);
  	else
! 	  return change.formatted_print ("assuming FILE * is NULL");
        }
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 116,163 ----
      return same_tree_p (m_arg, ((const file_diagnostic &)base_other).m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& change.m_new_state == m_sm.m_unchecked)
        // TODO: verify that it's the fopen stmt, not a copy
!       {
! 	pp_string (&pp, "opened here");
! 	return true;
!       }
      if (change.m_old_state == m_sm.m_unchecked
  	&& change.m_new_state == m_sm.m_nonnull)
        {
  	if (change.m_expr)
! 	  {
! 	    pp_printf (&pp,
! 		       "assuming %qE is non-NULL",
! 		       change.m_expr);
! 	    return true;
! 	  }
  	else
! 	  {
! 	    pp_printf (&pp, "assuming FILE * is non-NULL");
! 	    return true;
! 	  }
        }
      if (change.m_new_state == m_sm.m_null)
        {
  	if (change.m_expr)
! 	  {
! 	    pp_printf (&pp, "assuming %qE is NULL",
! 		       change.m_expr);
! 	    return true;
! 	  }
  	else
! 	  {
! 	    pp_printf (&pp, "assuming FILE * is NULL");
! 	    return true;
! 	  }
        }
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 183,206 ****
  		      m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     override
    {
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_fclose_event = change.m_event_id;
! 	return change.formatted_print ("first %qs here", "fclose");
        }
!     return file_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_fclose_event.known_p ())
!       return ev.formatted_print ("second %qs here; first %qs was at %@",
! 				 "fclose", "fclose",
! 				 &m_first_fclose_event);
!     return ev.formatted_print ("second %qs here", "fclose");
    }
  
  private:
--- 201,232 ----
  		      m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_new_state == m_sm.m_closed)
        {
  	m_first_fclose_event = change.m_event_id;
! 	pp_printf (&pp, "first %qs here", "fclose");
! 	return true;
        }
!     return file_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_fclose_event.known_p ())
!       pp_printf (&pp,
! 		 "second %qs here; first %qs was at %@",
! 		 "fclose", "fclose",
! 		 &m_first_fclose_event);
!     else
!       pp_printf (&pp,
! 		 "second %qs here", "fclose");
!     return true;
    }
  
  private:
*************** public:
*** 232,266 ****
        return ctxt.warn ("leak of FILE");
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_new_state == m_sm.m_unchecked)
        {
  	m_fopen_event = change.m_event_id;
! 	return label_text::borrow ("opened here");
        }
!     return file_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_fopen_event.known_p ())
        {
  	if (ev.m_expr)
! 	  return ev.formatted_print ("%qE leaks here; was opened at %@",
! 				     ev.m_expr, &m_fopen_event);
  	else
! 	  return ev.formatted_print ("leaks here; was opened at %@",
! 				     &m_fopen_event);
        }
      else
        {
  	if (ev.m_expr)
! 	  return ev.formatted_print ("%qE leaks here", ev.m_expr);
  	else
! 	  return ev.formatted_print ("leaks here");
        }
    }
  
  private:
--- 258,299 ----
        return ctxt.warn ("leak of FILE");
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_new_state == m_sm.m_unchecked)
        {
  	m_fopen_event = change.m_event_id;
! 	pp_string (&pp, "opened here");
! 	return true;
        }
!     return file_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (m_fopen_event.known_p ())
        {
  	if (ev.m_expr)
! 	  pp_printf (&pp,
! 		     "%qE leaks here; was opened at %@",
! 		     ev.m_expr, &m_fopen_event);
  	else
! 	  pp_printf (&pp,
! 		     "leaks here; was opened at %@",
! 		     &m_fopen_event);
        }
      else
        {
  	if (ev.m_expr)
! 	  pp_printf (&pp, "%qE leaks here", ev.m_expr);
  	else
! 	  pp_printf (&pp, "leaks here");
        }
+     return true;
    }
  
  private:
*************** is_file_using_fn_p (tree fndecl)
*** 365,382 ****
  /* Implementation of state_machine::on_stmt vfunc for fileptr_state_machine.  */
  
  bool
! fileptr_state_machine::on_stmt (sm_context *sm_ctxt,
  				const supernode *node,
  				const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "fopen", call, 2))
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt->on_transition (node, stmt, lhs, m_start, m_unchecked);
  	    else
  	      {
  		/* TODO: report leak.  */
--- 398,415 ----
  /* Implementation of state_machine::on_stmt vfunc for fileptr_state_machine.  */
  
  bool
! fileptr_state_machine::on_stmt (sm_context &sm_ctxt,
  				const supernode *node,
  				const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "fopen", call, 2))
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt.on_transition (node, stmt, lhs, m_start, m_unchecked);
  	    else
  	      {
  		/* TODO: report leak.  */
*************** fileptr_state_machine::on_stmt (sm_conte
*** 388,407 ****
  	  {
  	    tree arg = gimple_call_arg (call, 0);
  
! 	    sm_ctxt->on_transition (node, stmt, arg, m_start, m_closed);
  
  	    // TODO: is it safe to call fclose (NULL) ?
! 	    sm_ctxt->on_transition (node, stmt, arg, m_unchecked, m_closed);
! 	    sm_ctxt->on_transition (node, stmt, arg, m_null, m_closed);
  
! 	    sm_ctxt->on_transition (node, stmt , arg, m_nonnull, m_closed);
  
! 	    if (sm_ctxt->get_state (stmt, arg) == m_closed)
  	      {
! 		tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 		sm_ctxt->warn (node, stmt, arg,
! 			       make_unique<double_fclose> (*this, diag_arg));
! 		sm_ctxt->set_next_state (stmt, arg, m_stop);
  	      }
  	    return true;
  	  }
--- 421,440 ----
  	  {
  	    tree arg = gimple_call_arg (call, 0);
  
! 	    sm_ctxt.on_transition (node, stmt, arg, m_start, m_closed);
  
  	    // TODO: is it safe to call fclose (NULL) ?
! 	    sm_ctxt.on_transition (node, stmt, arg, m_unchecked, m_closed);
! 	    sm_ctxt.on_transition (node, stmt, arg, m_null, m_closed);
  
! 	    sm_ctxt.on_transition (node, stmt , arg, m_nonnull, m_closed);
  
! 	    if (sm_ctxt.get_state (stmt, arg) == m_closed)
  	      {
! 		tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		sm_ctxt.warn (node, stmt, arg,
! 			      make_unique<double_fclose> (*this, diag_arg));
! 		sm_ctxt.set_next_state (stmt, arg, m_stop);
  	      }
  	    return true;
  	  }
*************** fileptr_state_machine::on_stmt (sm_conte
*** 422,428 ****
     Potentially transition state 'unchecked' to 'nonnull' or to 'null'.  */
  
  void
! fileptr_state_machine::on_condition (sm_context *sm_ctxt,
  				     const supernode *node,
  				     const gimple *stmt,
  				     const svalue *lhs,
--- 455,461 ----
     Potentially transition state 'unchecked' to 'nonnull' or to 'null'.  */
  
  void
! fileptr_state_machine::on_condition (sm_context &sm_ctxt,
  				     const supernode *node,
  				     const gimple *stmt,
  				     const svalue *lhs,
*************** fileptr_state_machine::on_condition (sm_
*** 442,455 ****
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       sm_ctxt->on_transition (node, stmt,
! 			      lhs, m_unchecked, m_nonnull);
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       sm_ctxt->on_transition (node, stmt,
! 			      lhs, m_unchecked, m_null);
      }
  }
  
--- 475,488 ----
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       sm_ctxt.on_transition (node, stmt,
! 			     lhs, m_unchecked, m_nonnull);
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       sm_ctxt.on_transition (node, stmt,
! 			     lhs, m_unchecked, m_null);
      }
  }
  
*************** register_known_file_functions (known_fun
*** 648,653 ****
--- 681,694 ----
    kfm.add ("fread", make_unique<kf_fread> ());
    kfm.add ("getc", make_unique<kf_getc> ());
    kfm.add ("getchar", make_unique<kf_getchar> ());
+ 
+   /* Some C++ implementations use the std:: copies of these functions
+      from <cstdio> for <stdio.h>, so we must match against these too.  */
+   kfm.add_std_ns ("ferror", make_unique<kf_ferror> ());
+   kfm.add_std_ns ("fgets", make_unique<kf_fgets> ());
+   kfm.add_std_ns ("fread", make_unique<kf_fread> ());
+   kfm.add_std_ns ("getc", make_unique<kf_getc> ());
+   kfm.add_std_ns ("getchar", make_unique<kf_getchar> ());
  }
  
  #if CHECKING_P
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-file.dot gcc-15.1.0/gcc/analyzer/sm-file.dot
*** gcc-14.2.0/gcc/analyzer/sm-file.dot	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-file.dot	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* An overview of the state machine from sm-file.cc.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-file.cc.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-malloc.cc gcc-15.1.0/gcc/analyzer/sm-malloc.cc
*** gcc-14.2.0/gcc/analyzer/sm-malloc.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-malloc.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* A state machine for detecting misuses of the malloc/free API.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of the malloc/free API.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** public:
*** 394,409 ****
      return m_start;
    }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_phi (sm_context *sm_ctxt,
  	       const supernode *node,
  	       const gphi *phi,
  	       tree rhs) const final override;
  
!   void on_condition (sm_context *sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
--- 394,409 ----
      return m_start;
    }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_phi (sm_context &sm_ctxt,
  	       const supernode *node,
  	       const gphi *phi,
  	       tree rhs) const final override;
  
!   void on_condition (sm_context &sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
*************** public:
*** 425,431 ****
  
    static bool unaffected_by_call_p (tree fndecl);
  
!   void maybe_assume_non_null (sm_context *sm_ctxt,
  			      tree ptr,
  			      const gimple *stmt) const;
  
--- 425,431 ----
  
    static bool unaffected_by_call_p (tree fndecl);
  
!   void maybe_assume_non_null (sm_context &sm_ctxt,
  			      tree ptr,
  			      const gimple *stmt) const;
  
*************** private:
*** 475,506 ****
    get_or_create_assumed_non_null_state_for_frame (const frame_region *frame);
  
    void
!   maybe_complain_about_deref_before_check (sm_context *sm_ctxt,
  					   const supernode *node,
  					   const gimple *stmt,
  					   const assumed_non_null_state *,
  					   tree ptr) const;
  
!   void on_allocator_call (sm_context *sm_ctxt,
  			  const gcall *call,
  			  const deallocator_set *deallocators,
  			  bool returns_nonnull = false) const;
!   void handle_free_of_non_heap (sm_context *sm_ctxt,
  				const supernode *node,
  				const gcall *call,
  				tree arg,
  				const deallocator *d) const;
!   void on_deallocator_call (sm_context *sm_ctxt,
  			    const supernode *node,
  			    const gcall *call,
  			    const deallocator *d,
  			    unsigned argno) const;
!   void on_realloc_call (sm_context *sm_ctxt,
  			const supernode *node,
  			const gcall *call) const;
!   void on_zero_assignment (sm_context *sm_ctxt,
  			   const gimple *stmt,
  			   tree lhs) const;
  
    /* A map for consolidating deallocators so that they are
       unique per deallocator FUNCTION_DECL.  */
--- 475,512 ----
    get_or_create_assumed_non_null_state_for_frame (const frame_region *frame);
  
    void
!   maybe_complain_about_deref_before_check (sm_context &sm_ctxt,
  					   const supernode *node,
  					   const gimple *stmt,
  					   const assumed_non_null_state *,
  					   tree ptr) const;
  
!   void on_allocator_call (sm_context &sm_ctxt,
  			  const gcall *call,
  			  const deallocator_set *deallocators,
  			  bool returns_nonnull = false) const;
!   void handle_free_of_non_heap (sm_context &sm_ctxt,
  				const supernode *node,
  				const gcall *call,
  				tree arg,
  				const deallocator *d) const;
!   void on_deallocator_call (sm_context &sm_ctxt,
  			    const supernode *node,
  			    const gcall *call,
  			    const deallocator *d,
  			    unsigned argno) const;
!   void on_realloc_call (sm_context &sm_ctxt,
  			const supernode *node,
  			const gcall *call) const;
!   void on_zero_assignment (sm_context &sm_ctxt,
  			   const gimple *stmt,
  			   tree lhs) const;
+   void handle_nonnull (sm_context &sm_ctx,
+ 		       const supernode *node,
+ 		       const gimple *stmt,
+ 		       tree fndecl,
+ 		       tree arg,
+ 		       unsigned i) const;
  
    /* A map for consolidating deallocators so that they are
       unique per deallocator FUNCTION_DECL.  */
*************** deallocator_set::deallocator_set (malloc
*** 583,594 ****
  DEBUG_FUNCTION void
  deallocator_set::dump () const
  {
!   pretty_printer pp;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* struct custom_deallocator_set : public deallocator_set.  */
--- 589,597 ----
  DEBUG_FUNCTION void
  deallocator_set::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
    pp_newline (&pp);
  }
  
  /* struct custom_deallocator_set : public deallocator_set.  */
*************** public:
*** 756,801 ****
      return same_tree_p (m_arg, ((const malloc_diagnostic &)base_other).m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& (unchecked_p (change.m_new_state) || nonnull_p (change.m_new_state)))
        // TODO: verify that it's the allocation stmt, not a copy
!       return label_text::borrow ("allocated here");
      if (unchecked_p (change.m_old_state)
  	&& nonnull_p (change.m_new_state))
        {
  	if (change.m_expr)
! 	  return change.formatted_print ("assuming %qE is non-NULL",
! 					 change.m_expr);
  	else
! 	  return change.formatted_print ("assuming %qs is non-NULL",
! 					 "<unknown>");
        }
      if (change.m_new_state == m_sm.m_null)
        {
  	if (unchecked_p (change.m_old_state))
  	  {
  	    if (change.m_expr)
! 	      return change.formatted_print ("assuming %qE is NULL",
! 					     change.m_expr);
  	    else
! 	      return change.formatted_print ("assuming %qs is NULL",
! 					     "<unknown>");
  	  }
  	else
  	  {
  	    if (change.m_expr)
! 	      return change.formatted_print ("%qE is NULL",
! 					     change.m_expr);
  	    else
! 	      return change.formatted_print ("%qs is NULL",
! 					     "<unknown>");
  	  }
        }
  
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 759,811 ----
      return same_tree_p (m_arg, ((const malloc_diagnostic &)base_other).m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& (unchecked_p (change.m_new_state) || nonnull_p (change.m_new_state)))
        // TODO: verify that it's the allocation stmt, not a copy
!       {
! 	pp_string (&pp, "allocated here");
! 	return true;
!       }
      if (unchecked_p (change.m_old_state)
  	&& nonnull_p (change.m_new_state))
        {
  	if (change.m_expr)
! 	  pp_printf (&pp, "assuming %qE is non-NULL",
! 		     change.m_expr);
  	else
! 	  pp_printf (&pp, "assuming %qs is non-NULL",
! 		     "<unknown>");
! 	return true;
        }
      if (change.m_new_state == m_sm.m_null)
        {
  	if (unchecked_p (change.m_old_state))
  	  {
  	    if (change.m_expr)
! 	      pp_printf (&pp, "assuming %qE is NULL",
! 			 change.m_expr);
  	    else
! 	      pp_printf (&pp, "assuming %qs is NULL",
! 			 "<unknown>");
! 	    return true;
  	  }
  	else
  	  {
  	    if (change.m_expr)
! 	      pp_printf (&pp, "%qE is NULL",
! 			 change.m_expr);
  	    else
! 	      pp_printf (&pp, "%qs is NULL",
! 			 "<unknown>");
! 	    return true;
  	  }
        }
  
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 857,898 ****
  			m_actual_dealloc->m_name, m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (unchecked_p (change.m_new_state))
        {
  	m_alloc_event = change.m_event_id;
  	if (const deallocator *expected_dealloc
  	    = m_expected_deallocators->maybe_get_single ())
! 	  return change.formatted_print ("allocated here"
! 					 " (expects deallocation with %qs)",
! 					 expected_dealloc->m_name);
  	else
! 	  return change.formatted_print ("allocated here");
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_alloc_event.known_p ())
        {
  	if (const deallocator *expected_dealloc
  	    = m_expected_deallocators->maybe_get_single ())
! 	  return ev.formatted_print
! 	    ("deallocated with %qs here;"
! 	     " allocation at %@ expects deallocation with %qs",
! 	     m_actual_dealloc->m_name, &m_alloc_event,
! 	     expected_dealloc->m_name);
  	else
! 	  return ev.formatted_print
! 	    ("deallocated with %qs here;"
! 	     " allocated at %@",
! 	     m_actual_dealloc->m_name, &m_alloc_event);
        }
!     return ev.formatted_print ("deallocated with %qs here",
! 			       m_actual_dealloc->m_name);
    }
  
  private:
--- 867,914 ----
  			m_actual_dealloc->m_name, m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (unchecked_p (change.m_new_state))
        {
  	m_alloc_event = change.m_event_id;
  	if (const deallocator *expected_dealloc
  	    = m_expected_deallocators->maybe_get_single ())
! 	  pp_printf (&pp,
! 		     "allocated here (expects deallocation with %qs)",
! 		     expected_dealloc->m_name);
  	else
! 	  pp_string (&pp, "allocated here");
! 	return true;
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_alloc_event.known_p ())
        {
  	if (const deallocator *expected_dealloc
  	    = m_expected_deallocators->maybe_get_single ())
! 	  pp_printf (&pp,
! 		     "deallocated with %qs here;"
! 		     " allocation at %@ expects deallocation with %qs",
! 		     m_actual_dealloc->m_name, &m_alloc_event,
! 		     expected_dealloc->m_name);
  	else
! 	  pp_printf (&pp,
! 		     "deallocated with %qs here;"
! 		     " allocated at %@",
! 		     m_actual_dealloc->m_name, &m_alloc_event);
! 	return true;
        }
!     pp_printf (&pp, "deallocated with %qs here",
! 	       m_actual_dealloc->m_name);
!     return true;
    }
  
  private:
*************** public:
*** 924,957 ****
      return ctxt.warn ("double-%qs of %qE", m_funcname, m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (freed_p (change.m_new_state))
        {
  	m_first_free_event = change.m_event_id;
! 	return change.formatted_print ("first %qs here", m_funcname);
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_call_with_state (const evdesc::call_with_state &info)
!     final override
    {
      if (freed_p (info.m_state))
!       return info.formatted_print
! 	("passing freed pointer %qE in call to %qE from %qE",
! 	 info.m_expr, info.m_callee_fndecl, info.m_caller_fndecl);
!     return label_text ();
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_free_event.known_p ())
!       return ev.formatted_print ("second %qs here; first %qs was at %@",
! 				 m_funcname, m_funcname,
! 				 &m_first_free_event);
!     return ev.formatted_print ("second %qs here", m_funcname);
    }
  
  private:
--- 940,984 ----
      return ctxt.warn ("double-%qs of %qE", m_funcname, m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (freed_p (change.m_new_state))
        {
  	m_first_free_event = change.m_event_id;
! 	pp_printf (&pp, "first %qs here", m_funcname);
! 	return true;
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_call_with_state (pretty_printer &pp,
! 			    const evdesc::call_with_state &info) final override
    {
      if (freed_p (info.m_state))
!       {
! 	pp_printf (&pp,
! 		   "passing freed pointer %qE in call to %qE from %qE",
! 		   info.m_expr, info.m_callee_fndecl, info.m_caller_fndecl);
! 	return true;
!       }
!     return false;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_free_event.known_p ())
!       pp_printf (&pp,
! 		 "second %qs here; first %qs was at %@",
! 		 m_funcname, m_funcname,
! 		 &m_first_free_event);
!     else
!       pp_printf (&pp, "second %qs here", m_funcname);
!     return true;
    }
  
  private:
*************** public:
*** 969,993 ****
    : malloc_diagnostic (sm, arg)
    {}
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& unchecked_p (change.m_new_state))
        {
  	m_origin_of_unchecked_event = change.m_event_id;
! 	return label_text::borrow ("this call could return NULL");
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_return_of_state (const evdesc::return_of_state &info)
!     final override
    {
      if (unchecked_p (info.m_state))
!       return info.formatted_print ("possible return of NULL to %qE from %qE",
! 				   info.m_caller_fndecl, info.m_callee_fndecl);
!     return label_text ();
    }
  
  protected:
--- 996,1027 ----
    : malloc_diagnostic (sm, arg)
    {}
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& unchecked_p (change.m_new_state))
        {
  	m_origin_of_unchecked_event = change.m_event_id;
! 	pp_string (&pp, "this call could return NULL");
! 	return true;
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_return_of_state (pretty_printer &pp,
! 			    const evdesc::return_of_state &info) final override
    {
      if (unchecked_p (info.m_state))
!       {
! 	pp_printf (&pp,
! 		   "possible return of NULL to %qE from %qE",
! 		   info.m_caller_fndecl, info.m_callee_fndecl);
! 	return true;
!       }
!     return false;
    }
  
  protected:
*************** public:
*** 1018,1031 ****
      return ctxt.warn ("dereference of possibly-NULL %qE", m_arg);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_origin_of_unchecked_event.known_p ())
!       return ev.formatted_print ("%qE could be NULL: unchecked value from %@",
! 				 ev.m_expr,
! 				 &m_origin_of_unchecked_event);
      else
!       return ev.formatted_print ("%qE could be NULL", ev.m_expr);
    }
  
  };
--- 1052,1069 ----
      return ctxt.warn ("dereference of possibly-NULL %qE", m_arg);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (m_origin_of_unchecked_event.known_p ())
!       pp_printf (&pp,
! 		 "%qE could be NULL: unchecked value from %@",
! 		 ev.m_expr,
! 		 &m_origin_of_unchecked_event);
      else
!       pp_printf (&pp,"%qE could be NULL", ev.m_expr);
!     return true;
    }
  
  };
*************** public:
*** 1111,1130 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      label_text arg_desc = describe_argument_index (m_fndecl, m_arg_idx);
-     label_text result;
      if (m_origin_of_unchecked_event.known_p ())
!       result = ev.formatted_print ("argument %s (%qE) from %@ could be NULL"
! 				   " where non-null expected",
! 				   arg_desc.get (), ev.m_expr,
! 				   &m_origin_of_unchecked_event);
      else
!       result = ev.formatted_print ("argument %s (%qE) could be NULL"
! 				   " where non-null expected",
! 				   arg_desc.get (), ev.m_expr);
!     return result;
    }
  
  private:
--- 1149,1170 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      label_text arg_desc = describe_argument_index (m_fndecl, m_arg_idx);
      if (m_origin_of_unchecked_event.known_p ())
!       pp_printf (&pp,"argument %s (%qE) from %@ could be NULL"
! 		 " where non-null expected",
! 		 arg_desc.get (), ev.m_expr,
! 		 &m_origin_of_unchecked_event);
      else
!       pp_printf (&pp,
! 		 "argument %s (%qE) could be NULL"
! 		 " where non-null expected",
! 		 arg_desc.get (), ev.m_expr);
!     return true;
    }
  
  private:
*************** public:
*** 1156,1173 ****
      return ctxt.warn ("dereference of NULL %qE", m_arg);
    }
  
!   label_text describe_return_of_state (const evdesc::return_of_state &info)
      final override
    {
      if (info.m_state == m_sm.m_null)
!       return info.formatted_print ("return of NULL to %qE from %qE",
! 				   info.m_caller_fndecl, info.m_callee_fndecl);
!     return label_text ();
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("dereference of NULL %qE", ev.m_expr);
    }
  
    /* Implementation of pending_diagnostic::supercedes_p for
--- 1196,1221 ----
      return ctxt.warn ("dereference of NULL %qE", m_arg);
    }
  
!   bool
!   describe_return_of_state (pretty_printer &pp,
! 			    const evdesc::return_of_state &info)
      final override
    {
      if (info.m_state == m_sm.m_null)
!       {
! 	pp_printf (&pp, "return of NULL to %qE from %qE",
! 		   info.m_caller_fndecl, info.m_callee_fndecl);
! 	return true;
!       }
!     return false;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
!     pp_printf (&pp, "dereference of NULL %qE", ev.m_expr);
!     return true;
    }
  
    /* Implementation of pending_diagnostic::supercedes_p for
*************** public:
*** 1234,1251 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      label_text arg_desc = describe_argument_index (m_fndecl, m_arg_idx);
-     label_text result;
      if (zerop (ev.m_expr))
!       result = ev.formatted_print ("argument %s NULL where non-null expected",
! 				   arg_desc.get ());
      else
!       result = ev.formatted_print ("argument %s (%qE) NULL"
! 				   " where non-null expected",
! 				   arg_desc.get (), ev.m_expr);
!     return result;
    }
  
  private:
--- 1282,1302 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      label_text arg_desc = describe_argument_index (m_fndecl, m_arg_idx);
      if (zerop (ev.m_expr))
!       pp_printf (&pp,
! 		 "argument %s NULL where non-null expected",
! 		 arg_desc.get ());
      else
!       pp_printf (&pp,
! 		 "argument %s (%qE) NULL"
! 		 " where non-null expected",
! 		 arg_desc.get (), ev.m_expr);
!     return true;
    }
  
  private:
*************** public:
*** 1275,1286 ****
    {
      /* CWE-416: Use After Free.  */
      ctxt.add_cwe (416);
!     return ctxt.warn ("use after %<%s%> of %qE",
  		      m_deallocator->m_name, m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (freed_p (change.m_new_state))
        {
--- 1326,1338 ----
    {
      /* CWE-416: Use After Free.  */
      ctxt.add_cwe (416);
!     return ctxt.warn ("use after %qs of %qE",
  		      m_deallocator->m_name, m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (freed_p (change.m_new_state))
        {
*************** public:
*** 1291,1307 ****
  	  case WORDING_REALLOCATED:
  	    gcc_unreachable ();
  	  case WORDING_FREED:
! 	    return label_text::borrow ("freed here");
  	  case WORDING_DELETED:
! 	    return label_text::borrow ("deleted here");
  	  case WORDING_DEALLOCATED:
! 	    return label_text::borrow ("deallocated here");
  	  }
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      const char *funcname = m_deallocator->m_name;
      if (m_free_event.known_p ())
--- 1343,1364 ----
  	  case WORDING_REALLOCATED:
  	    gcc_unreachable ();
  	  case WORDING_FREED:
! 	    pp_string (&pp, "freed here");
! 	    return true;
  	  case WORDING_DELETED:
! 	    pp_string (&pp, "deleted here");
! 	    return true;
  	  case WORDING_DEALLOCATED:
! 	    pp_string (&pp, "deallocated here");
! 	    return true;
  	  }
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      const char *funcname = m_deallocator->m_name;
      if (m_free_event.known_p ())
*************** public:
*** 1311,1329 ****
  	case WORDING_REALLOCATED:
  	  gcc_unreachable ();
  	case WORDING_FREED:
! 	  return ev.formatted_print ("use after %<%s%> of %qE; freed at %@",
! 				     funcname, ev.m_expr, &m_free_event);
  	case WORDING_DELETED:
! 	  return ev.formatted_print ("use after %<%s%> of %qE; deleted at %@",
! 				     funcname, ev.m_expr, &m_free_event);
  	case WORDING_DEALLOCATED:
! 	  return ev.formatted_print ("use after %<%s%> of %qE;"
! 				     " deallocated at %@",
! 				     funcname, ev.m_expr, &m_free_event);
  	}
      else
!       return ev.formatted_print ("use after %<%s%> of %qE",
! 				 funcname, ev.m_expr);
    }
  
    /* Implementation of pending_diagnostic::supercedes_p for
--- 1368,1396 ----
  	case WORDING_REALLOCATED:
  	  gcc_unreachable ();
  	case WORDING_FREED:
! 	  pp_printf (&pp,
! 		     "use after %qs of %qE; freed at %@",
! 		     funcname, ev.m_expr, &m_free_event);
! 	  return true;
  	case WORDING_DELETED:
! 	  pp_printf (&pp,
! 		     "use after %qs of %qE; deleted at %@",
! 		     funcname, ev.m_expr, &m_free_event);
! 	  return true;
  	case WORDING_DEALLOCATED:
! 	  pp_printf (&pp,
! 		     "use after %qs of %qE;"
! 		     " deallocated at %@",
! 		     funcname, ev.m_expr, &m_free_event);
! 	  return true;
  	}
      else
!       {
! 	pp_printf (&pp,
! 		   "use after %qs of %qE",
! 		   funcname, ev.m_expr);
! 	return true;
!       }
    }
  
    /* Implementation of pending_diagnostic::supercedes_p for
*************** public:
*** 1373,1408 ****
        return ctxt.warn ("leak of %qs", "<unknown>");
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (unchecked_p (change.m_new_state)
  	|| (start_p (change.m_old_state) && nonnull_p (change.m_new_state)))
        {
  	m_alloc_event = change.m_event_id;
! 	return label_text::borrow ("allocated here");
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_alloc_event.known_p ())
! 	  return ev.formatted_print ("%qE leaks here; was allocated at %@",
! 				     ev.m_expr, &m_alloc_event);
  	else
! 	  return ev.formatted_print ("%qE leaks here", ev.m_expr);
        }
      else
        {
  	if (m_alloc_event.known_p ())
! 	  return ev.formatted_print ("%qs leaks here; was allocated at %@",
! 				     "<unknown>", &m_alloc_event);
  	else
! 	  return ev.formatted_print ("%qs leaks here", "<unknown>");
        }
    }
  
  private:
--- 1440,1484 ----
        return ctxt.warn ("leak of %qs", "<unknown>");
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (unchecked_p (change.m_new_state)
  	|| (start_p (change.m_old_state) && nonnull_p (change.m_new_state)))
        {
  	m_alloc_event = change.m_event_id;
! 	pp_string (&pp, "allocated here");
! 	return true;
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_alloc_event.known_p ())
! 	  pp_printf (&pp,
! 		     "%qE leaks here; was allocated at %@",
! 		     ev.m_expr, &m_alloc_event);
  	else
! 	  pp_printf (&pp,
! 		     "%qE leaks here", ev.m_expr);
        }
      else
        {
  	if (m_alloc_event.known_p ())
! 	  pp_printf (&pp,
! 		     "%qs leaks here; was allocated at %@",
! 		     "<unknown>", &m_alloc_event);
  	else
! 	  pp_printf (&pp,
! 		     "%qs leaks here", "<unknown>");
        }
+     return true;
    }
  
  private:
*************** public:
*** 1447,1473 ****
        case MEMSPACE_CODE:
        case MEMSPACE_GLOBALS:
        case MEMSPACE_READONLY_DATA:
! 	return ctxt.warn ("%<%s%> of %qE which points to memory"
  			  " not on the heap",
  			  m_funcname, m_arg);
  	break;
        case MEMSPACE_STACK:
! 	return ctxt.warn ("%<%s%> of %qE which points to memory"
  			  " on the stack",
  			  m_funcname, m_arg);
  	break;
        }
    }
  
!   label_text describe_state_change (const evdesc::state_change &)
!     final override
    {
!     return label_text::borrow ("pointer is from here");
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("call to %qs here", m_funcname);
    }
  
    void mark_interesting_stuff (interesting_t *interest) final override
--- 1523,1554 ----
        case MEMSPACE_CODE:
        case MEMSPACE_GLOBALS:
        case MEMSPACE_READONLY_DATA:
! 	return ctxt.warn ("%qs of %qE which points to memory"
  			  " not on the heap",
  			  m_funcname, m_arg);
  	break;
        case MEMSPACE_STACK:
! 	return ctxt.warn ("%qs of %qE which points to memory"
  			  " on the stack",
  			  m_funcname, m_arg);
  	break;
        }
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &) final override
    {
!     pp_string (&pp, "pointer is from here");
!     return true;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp, "call to %qs here", m_funcname);
!     return true;
    }
  
    void mark_interesting_stuff (interesting_t *interest) final override
*************** public:
*** 1604,1611 ****
  		      m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& assumed_non_null_p (change.m_new_state))
--- 1685,1693 ----
  		      m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& assumed_non_null_p (change.m_new_state))
*************** public:
*** 1613,1635 ****
  	m_first_deref_event = change.m_event_id;
  	m_deref_enode = change.m_event.get_exploded_node ();
  	m_deref_expr = change.m_expr;
! 	return change.formatted_print ("pointer %qE is dereferenced here",
! 				       m_arg);
        }
!     return malloc_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      m_check_enode = ev.m_event.get_exploded_node ();
      if (m_first_deref_event.known_p ())
!       return ev.formatted_print ("pointer %qE is checked for NULL here but"
! 				 " it was already dereferenced at %@",
! 				 m_arg, &m_first_deref_event);
      else
!       return ev.formatted_print ("pointer %qE is checked for NULL here but"
! 				 " it was already dereferenced",
! 				 m_arg);
    }
  
  private:
--- 1695,1724 ----
  	m_first_deref_event = change.m_event_id;
  	m_deref_enode = change.m_event.get_exploded_node ();
  	m_deref_expr = change.m_expr;
! 	pp_printf (&pp,
! 		   "pointer %qE is dereferenced here",
! 		   m_arg);
! 	return true;
        }
!     return malloc_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      m_check_enode = ev.m_event.get_exploded_node ();
      if (m_first_deref_event.known_p ())
!       pp_printf (&pp,
! 		 "pointer %qE is checked for NULL here but"
! 		 " it was already dereferenced at %@",
! 		 m_arg, &m_first_deref_event);
      else
!       pp_printf (&pp,
! 		 "pointer %qE is checked for NULL here but"
! 		 " it was already dereferenced",
! 		 m_arg);
!     return true;
    }
  
  private:
*************** private:
*** 1650,1663 ****
  
    static bool sufficiently_similar_p (tree expr_a, tree expr_b)
    {
!     pretty_printer *pp_a = global_dc->printer->clone ();
!     pretty_printer *pp_b = global_dc->printer->clone ();
!     pp_printf (pp_a, "%qE", expr_a);
!     pp_printf (pp_b, "%qE", expr_b);
!     bool result = (strcmp (pp_formatted_text (pp_a), pp_formatted_text (pp_b))
  		   == 0);
-     delete pp_a;
-     delete pp_b;
      return result;
    }
  
--- 1739,1751 ----
  
    static bool sufficiently_similar_p (tree expr_a, tree expr_b)
    {
!     auto pp_a = global_dc->clone_printer ();
!     auto pp_b = global_dc->clone_printer ();
!     pp_printf (pp_a.get (), "%qE", expr_a);
!     pp_printf (pp_b.get (), "%qE", expr_b);
!     bool result = (strcmp (pp_formatted_text (pp_a.get ()),
! 			   pp_formatted_text (pp_b.get ()))
  		   == 0);
      return result;
    }
  
*************** known_allocator_p (const_tree fndecl, co
*** 1899,1909 ****
     state for the current frame.  */
  
  void
! malloc_state_machine::maybe_assume_non_null (sm_context *sm_ctxt,
  					     tree ptr,
  					     const gimple *stmt) const
  {
!   const region_model *old_model = sm_ctxt->get_old_region_model ();
    if (!old_model)
      return;
  
--- 1987,1997 ----
     state for the current frame.  */
  
  void
! malloc_state_machine::maybe_assume_non_null (sm_context &sm_ctxt,
  					     tree ptr,
  					     const gimple *stmt) const
  {
!   const region_model *old_model = sm_ctxt.get_old_region_model ();
    if (!old_model)
      return;
  
*************** malloc_state_machine::maybe_assume_non_n
*** 1918,1936 ****
        state_t next_state
  	= mut_this->get_or_create_assumed_non_null_state_for_frame
  	(old_model->get_current_frame ());
!       sm_ctxt->set_next_state (stmt, ptr, next_state);
      }
  }
  
  /* Implementation of state_machine::on_stmt vfunc for malloc_state_machine.  */
  
  bool
! malloc_state_machine::on_stmt (sm_context *sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
        {
  	if (known_allocator_p (callee_fndecl, call))
  	  {
--- 2006,2061 ----
        state_t next_state
  	= mut_this->get_or_create_assumed_non_null_state_for_frame
  	(old_model->get_current_frame ());
!       sm_ctxt.set_next_state (stmt, ptr, next_state);
      }
  }
  
+ /* Helper method for malloc_state_machine::on_stmt.  Handle a single
+    argument (Ith argument ARG) if it is nonnull or nonnull_if_nonzero
+    and size is nonzero.  */
+ 
+ void
+ malloc_state_machine::handle_nonnull (sm_context &sm_ctxt,
+ 				      const supernode *node,
+ 				      const gimple *stmt,
+ 				      tree fndecl,
+ 				      tree arg,
+ 				      unsigned i) const
+ {
+   state_t state = sm_ctxt.get_state (stmt, arg);
+   /* Can't use a switch as the states are non-const.  */
+   /* Do use the fndecl that caused the warning so that the
+      misused attributes are printed and the user not confused.  */
+   if (unchecked_p (state))
+     {
+       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
+       sm_ctxt.warn (node, stmt, arg,
+ 		    make_unique<possible_null_arg> (*this, diag_arg, fndecl,
+ 						    i));
+       const allocation_state *astate
+ 	= as_a_allocation_state (state);
+       sm_ctxt.set_next_state (stmt, arg, astate->get_nonnull ());
+     }
+   else if (state == m_null)
+     {
+       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
+       sm_ctxt.warn (node, stmt, arg,
+ 		    make_unique<null_arg> (*this, diag_arg, fndecl, i));
+       sm_ctxt.set_next_state (stmt, arg, m_stop);
+     }
+   else if (state == m_start)
+     maybe_assume_non_null (sm_ctxt, arg, stmt);
+ }
+ 
  /* Implementation of state_machine::on_stmt vfunc for malloc_state_machine.  */
  
  bool
! malloc_state_machine::on_stmt (sm_context &sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
        {
  	if (known_allocator_p (callee_fndecl, call))
  	  {
*************** malloc_state_machine::on_stmt (sm_contex
*** 1969,1975 ****
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt->on_transition (node, stmt, lhs, m_start, m_non_heap);
  	    return true;
  	  }
  
--- 2094,2100 ----
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt.on_transition (node, stmt, lhs, m_start, m_non_heap);
  	    return true;
  	  }
  
*************** malloc_state_machine::on_stmt (sm_contex
*** 1983,1988 ****
--- 2108,2114 ----
  	  }
  
  	if (is_named_call_p (callee_fndecl, "realloc", call, 2)
+ 	    || is_std_named_call_p (callee_fndecl, "realloc", call, 2)
  	    || is_named_call_p (callee_fndecl, "__builtin_realloc", call, 2))
  	  {
  	    on_realloc_call (sm_ctxt, node, call);
*************** malloc_state_machine::on_stmt (sm_contex
*** 2004,2010 ****
  	  tree fndecl = callee_fndecl;
  	  /* If call is recognized as a builtin known_function, use that
  	     builtin's function_decl.  */
! 	  if (const region_model *old_model = sm_ctxt->get_old_region_model ())
  	    if (const builtin_known_function *builtin_kf
  		= old_model->get_builtin_kf (call))
  	      fndecl = builtin_kf->builtin_decl ();
--- 2130,2136 ----
  	  tree fndecl = callee_fndecl;
  	  /* If call is recognized as a builtin known_function, use that
  	     builtin's function_decl.  */
! 	  if (const region_model *old_model = sm_ctxt.get_old_region_model ())
  	    if (const builtin_known_function *builtin_kf
  		= old_model->get_builtin_kf (call))
  	      fndecl = builtin_kf->builtin_decl ();
*************** malloc_state_machine::on_stmt (sm_contex
*** 2035,2071 ****
  		       just the specified pointers.  */
  		    if (bitmap_empty_p (nonnull_args)
  			|| bitmap_bit_p (nonnull_args, i))
! 		      {
! 			state_t state = sm_ctxt->get_state (stmt, arg);
! 			/* Can't use a switch as the states are non-const.  */
! 			/* Do use the fndecl that caused the warning so that the
! 			   misused attributes are printed and the user not
! 			   confused.  */
! 			if (unchecked_p (state))
! 			  {
! 			    tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			    sm_ctxt->warn (node, stmt, arg,
! 					  make_unique<possible_null_arg>
! 					    (*this, diag_arg, fndecl, i));
! 			    const allocation_state *astate
! 			      = as_a_allocation_state (state);
! 			    sm_ctxt->set_next_state (stmt, arg,
! 						    astate->get_nonnull ());
! 			  }
! 			else if (state == m_null)
! 			  {
! 			    tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			    sm_ctxt->warn (node, stmt, arg,
! 					  make_unique<null_arg>
! 					    (*this, diag_arg, fndecl, i));
! 			    sm_ctxt->set_next_state (stmt, arg, m_stop);
! 			  }
! 			else if (state == m_start)
! 			  maybe_assume_non_null (sm_ctxt, arg, stmt);
! 		      }
  		  }
  		BITMAP_FREE (nonnull_args);
  	      }
  	  }
  
  	  /* Check for this after nonnull, so that if we have both
--- 2161,2197 ----
  		       just the specified pointers.  */
  		    if (bitmap_empty_p (nonnull_args)
  			|| bitmap_bit_p (nonnull_args, i))
! 		      handle_nonnull (sm_ctxt, node, stmt, fndecl, arg, i);
  		  }
  		BITMAP_FREE (nonnull_args);
  	      }
+ 	    /* Handle __attribute__((nonnull_if_nonzero (x, y))).  */
+ 	    if (fntype)
+ 	      for (tree attrs = TYPE_ATTRIBUTES (fntype);
+ 		   (attrs = lookup_attribute ("nonnull_if_nonzero", attrs));
+ 		   attrs = TREE_CHAIN (attrs))
+ 		{
+ 		  tree args = TREE_VALUE (attrs);
+ 		  unsigned int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
+ 		  unsigned int idx2
+ 		    = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (args))) - 1;
+ 		  if (idx < gimple_call_num_args (stmt)
+ 		      && idx2 < gimple_call_num_args (stmt))
+ 		    {
+ 		      tree arg = gimple_call_arg (stmt, idx);
+ 		      tree arg2 = gimple_call_arg (stmt, idx2);
+ 		      if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE
+ 			  || !INTEGRAL_TYPE_P (TREE_TYPE (arg2))
+ 			  || integer_zerop (arg2))
+ 			continue;
+ 		      if (integer_nonzerop (arg2))
+ 			;
+ 		      else
+ 			/* FIXME: Use ranger here to query arg2 range?  */
+ 			continue;
+ 		      handle_nonnull (sm_ctxt, node, stmt, fndecl, arg, idx);
+ 		    }
+ 		}
  	  }
  
  	  /* Check for this after nonnull, so that if we have both
*************** malloc_state_machine::on_stmt (sm_contex
*** 2099,2105 ****
  	      && any_pointer_p (rhs)
  	      && zerop (rhs))
  	    {
! 	      state_t state = sm_ctxt->get_state (stmt, lhs);
  	      if (assumed_non_null_p (state))
  		maybe_complain_about_deref_before_check
  		  (sm_ctxt, node,
--- 2225,2231 ----
  	      && any_pointer_p (rhs)
  	      && zerop (rhs))
  	    {
! 	      state_t state = sm_ctxt.get_state (stmt, lhs);
  	      if (assumed_non_null_p (state))
  		maybe_complain_about_deref_before_check
  		  (sm_ctxt, node,
*************** malloc_state_machine::on_stmt (sm_contex
*** 2110,2116 ****
  	}
      }
  
!   if (tree lhs = sm_ctxt->is_zero_assignment (stmt))
      if (any_pointer_p (lhs))
        on_zero_assignment (sm_ctxt, stmt,lhs);
  
--- 2236,2242 ----
  	}
      }
  
!   if (tree lhs = sm_ctxt.is_zero_assignment (stmt))
      if (any_pointer_p (lhs))
        on_zero_assignment (sm_ctxt, stmt,lhs);
  
*************** malloc_state_machine::on_stmt (sm_contex
*** 2127,2159 ****
  	{
  	  tree arg = TREE_OPERAND (op, 0);
  
! 	  state_t state = sm_ctxt->get_state (stmt, arg);
  	  if (state == m_start)
  	    maybe_assume_non_null (sm_ctxt, arg, stmt);
  	  else if (unchecked_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	      sm_ctxt->warn (node, stmt, arg,
! 			     make_unique<possible_null_deref> (*this,
! 							       diag_arg));
  	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt->set_next_state (stmt, arg, astate->get_nonnull ());
  	    }
  	  else if (state == m_null)
  	    {
! 	      tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	      sm_ctxt->warn (node, stmt, arg,
! 			     make_unique<null_deref> (*this, diag_arg));
! 	      sm_ctxt->set_next_state (stmt, arg, m_stop);
  	    }
  	  else if (freed_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
  	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt->warn (node, stmt, arg,
! 			     make_unique<use_after_free>
! 			       (*this, diag_arg, astate->m_deallocator));
! 	      sm_ctxt->set_next_state (stmt, arg, m_stop);
  	    }
  	}
      }
--- 2253,2285 ----
  	{
  	  tree arg = TREE_OPERAND (op, 0);
  
! 	  state_t state = sm_ctxt.get_state (stmt, arg);
  	  if (state == m_start)
  	    maybe_assume_non_null (sm_ctxt, arg, stmt);
  	  else if (unchecked_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (node, stmt, arg,
! 			    make_unique<possible_null_deref> (*this,
! 							      diag_arg));
  	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt.set_next_state (stmt, arg, astate->get_nonnull ());
  	    }
  	  else if (state == m_null)
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (node, stmt, arg,
! 			    make_unique<null_deref> (*this, diag_arg));
! 	      sm_ctxt.set_next_state (stmt, arg, m_stop);
  	    }
  	  else if (freed_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
  	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt.warn (node, stmt, arg,
! 			    make_unique<use_after_free>
! 			      (*this, diag_arg, astate->m_deallocator));
! 	      sm_ctxt.set_next_state (stmt, arg, m_stop);
  	    }
  	}
      }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2165,2177 ****
  
  void
  malloc_state_machine::
! maybe_complain_about_deref_before_check (sm_context *sm_ctxt,
  					 const supernode *node,
  					 const gimple *stmt,
  					 const assumed_non_null_state *state,
  					 tree ptr) const
  {
!   const region_model *model = sm_ctxt->get_old_region_model ();
    if (!model)
      return;
  
--- 2291,2303 ----
  
  void
  malloc_state_machine::
! maybe_complain_about_deref_before_check (sm_context &sm_ctxt,
  					 const supernode *node,
  					 const gimple *stmt,
  					 const assumed_non_null_state *state,
  					 tree ptr) const
  {
!   const region_model *model = sm_ctxt.get_old_region_model ();
    if (!model)
      return;
  
*************** maybe_complain_about_deref_before_check
*** 2209,2220 ****
  	return;
      }
  
!   tree diag_ptr = sm_ctxt->get_diagnostic_tree (ptr);
    if (diag_ptr)
!     sm_ctxt->warn
        (node, stmt, ptr,
         make_unique<deref_before_check> (*this, diag_ptr));
!   sm_ctxt->set_next_state (stmt, ptr, m_stop);
  }
  
  /* Handle a call to an allocator.
--- 2335,2346 ----
  	return;
      }
  
!   tree diag_ptr = sm_ctxt.get_diagnostic_tree (ptr);
    if (diag_ptr)
!     sm_ctxt.warn
        (node, stmt, ptr,
         make_unique<deref_before_check> (*this, diag_ptr));
!   sm_ctxt.set_next_state (stmt, ptr, m_stop);
  }
  
  /* Handle a call to an allocator.
*************** maybe_complain_about_deref_before_check
*** 2222,2228 ****
     __attribute__((returns_nonnull)).  */
  
  void
! malloc_state_machine::on_allocator_call (sm_context *sm_ctxt,
  					 const gcall *call,
  					 const deallocator_set *deallocators,
  					 bool returns_nonnull) const
--- 2348,2354 ----
     __attribute__((returns_nonnull)).  */
  
  void
! malloc_state_machine::on_allocator_call (sm_context &sm_ctxt,
  					 const gcall *call,
  					 const deallocator_set *deallocators,
  					 bool returns_nonnull) const
*************** malloc_state_machine::on_allocator_call
*** 2230,2240 ****
    tree lhs = gimple_call_lhs (call);
    if (lhs)
      {
!       if (sm_ctxt->get_state (call, lhs) == m_start)
! 	sm_ctxt->set_next_state (call, lhs,
! 				 (returns_nonnull
! 				  ? deallocators->m_nonnull
! 				  : deallocators->m_unchecked));
      }
    else
      {
--- 2356,2366 ----
    tree lhs = gimple_call_lhs (call);
    if (lhs)
      {
!       if (sm_ctxt.get_state (call, lhs) == m_start)
! 	sm_ctxt.set_next_state (call, lhs,
! 				(returns_nonnull
! 				 ? deallocators->m_nonnull
! 				 : deallocators->m_unchecked));
      }
    else
      {
*************** malloc_state_machine::on_allocator_call
*** 2246,2273 ****
     non-heap -> stop, with warning.  */
  
  void
! malloc_state_machine::handle_free_of_non_heap (sm_context *sm_ctxt,
  					       const supernode *node,
  					       const gcall *call,
  					       tree arg,
  					       const deallocator *d) const
  {
!   tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
    const region *freed_reg = NULL;
!   if (const program_state *old_state = sm_ctxt->get_old_program_state ())
      {
        const region_model *old_model = old_state->m_region_model;
        const svalue *ptr_sval = old_model->get_rvalue (arg, NULL);
        freed_reg = old_model->deref_rvalue (ptr_sval, arg, NULL);
      }
!   sm_ctxt->warn (node, call, arg,
! 		 make_unique<free_of_non_heap>
! 		   (*this, diag_arg, freed_reg, d->m_name));
!   sm_ctxt->set_next_state (call, arg, m_stop);
  }
  
  void
! malloc_state_machine::on_deallocator_call (sm_context *sm_ctxt,
  					   const supernode *node,
  					   const gcall *call,
  					   const deallocator *d,
--- 2372,2399 ----
     non-heap -> stop, with warning.  */
  
  void
! malloc_state_machine::handle_free_of_non_heap (sm_context &sm_ctxt,
  					       const supernode *node,
  					       const gcall *call,
  					       tree arg,
  					       const deallocator *d) const
  {
!   tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
    const region *freed_reg = NULL;
!   if (const program_state *old_state = sm_ctxt.get_old_program_state ())
      {
        const region_model *old_model = old_state->m_region_model;
        const svalue *ptr_sval = old_model->get_rvalue (arg, NULL);
        freed_reg = old_model->deref_rvalue (ptr_sval, arg, NULL);
      }
!   sm_ctxt.warn (node, call, arg,
! 		make_unique<free_of_non_heap>
! 		  (*this, diag_arg, freed_reg, d->m_name));
!   sm_ctxt.set_next_state (call, arg, m_stop);
  }
  
  void
! malloc_state_machine::on_deallocator_call (sm_context &sm_ctxt,
  					   const supernode *node,
  					   const gcall *call,
  					   const deallocator *d,
*************** malloc_state_machine::on_deallocator_cal
*** 2277,2287 ****
      return;
    tree arg = gimple_call_arg (call, argno);
  
!   state_t state = sm_ctxt->get_state (call, arg);
  
    /* start/assumed_non_null/unchecked/nonnull -> freed.  */
    if (state == m_start || assumed_non_null_p (state))
!     sm_ctxt->set_next_state (call, arg, d->m_freed);
    else if (unchecked_p (state) || nonnull_p (state))
      {
        const allocation_state *astate = as_a_allocation_state (state);
--- 2403,2413 ----
      return;
    tree arg = gimple_call_arg (call, argno);
  
!   state_t state = sm_ctxt.get_state (call, arg);
  
    /* start/assumed_non_null/unchecked/nonnull -> freed.  */
    if (state == m_start || assumed_non_null_p (state))
!     sm_ctxt.set_next_state (call, arg, d->m_freed);
    else if (unchecked_p (state) || nonnull_p (state))
      {
        const allocation_state *astate = as_a_allocation_state (state);
*************** malloc_state_machine::on_deallocator_cal
*** 2289,2302 ****
        if (!astate->m_deallocators->contains_p (d))
  	{
  	  /* Wrong allocator.  */
! 	  tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	  sm_ctxt->warn (node, call, arg,
! 			 make_unique<mismatching_deallocation>
! 			   (*this, diag_arg,
! 			    astate->m_deallocators,
! 			    d));
  	}
!       sm_ctxt->set_next_state (call, arg, d->m_freed);
      }
  
    /* Keep state "null" as-is, rather than transitioning to "freed";
--- 2415,2428 ----
        if (!astate->m_deallocators->contains_p (d))
  	{
  	  /* Wrong allocator.  */
! 	  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	  sm_ctxt.warn (node, call, arg,
! 			make_unique<mismatching_deallocation>
! 			  (*this, diag_arg,
! 			   astate->m_deallocators,
! 			   d));
  	}
!       sm_ctxt.set_next_state (call, arg, d->m_freed);
      }
  
    /* Keep state "null" as-is, rather than transitioning to "freed";
*************** malloc_state_machine::on_deallocator_cal
*** 2304,2313 ****
    else if (state == d->m_freed)
      {
        /* freed -> stop, with warning.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
!       sm_ctxt->warn (node, call, arg,
! 		     make_unique<double_free> (*this, diag_arg, d->m_name));
!       sm_ctxt->set_next_state (call, arg, m_stop);
      }
    else if (state == m_non_heap)
      {
--- 2430,2439 ----
    else if (state == d->m_freed)
      {
        /* freed -> stop, with warning.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (node, call, arg,
! 		    make_unique<double_free> (*this, diag_arg, d->m_name));
!       sm_ctxt.set_next_state (call, arg, m_stop);
      }
    else if (state == m_non_heap)
      {
*************** malloc_state_machine::on_deallocator_cal
*** 2325,2331 ****
     when the state is bifurcated).  */
  
  void
! malloc_state_machine::on_realloc_call (sm_context *sm_ctxt,
  				       const supernode *node,
  				       const gcall *call) const
  {
--- 2451,2457 ----
     when the state is bifurcated).  */
  
  void
! malloc_state_machine::on_realloc_call (sm_context &sm_ctxt,
  				       const supernode *node,
  				       const gcall *call) const
  {
*************** malloc_state_machine::on_realloc_call (s
*** 2334,2340 ****
  
    tree arg = gimple_call_arg (call, argno);
  
!   state_t state = sm_ctxt->get_state (call, arg);
  
    if (unchecked_p (state) || nonnull_p (state))
      {
--- 2460,2466 ----
  
    tree arg = gimple_call_arg (call, argno);
  
!   state_t state = sm_ctxt.get_state (call, arg);
  
    if (unchecked_p (state) || nonnull_p (state))
      {
*************** malloc_state_machine::on_realloc_call (s
*** 2343,2373 ****
        if (!astate->m_deallocators->contains_p (&m_free.m_deallocator))
  	{
  	  /* Wrong allocator.  */
! 	  tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 	  sm_ctxt->warn (node, call, arg,
! 			 make_unique<mismatching_deallocation>
! 			   (*this, diag_arg,
! 			    astate->m_deallocators, d));
! 	  sm_ctxt->set_next_state (call, arg, m_stop);
! 	  if (path_context *path_ctxt = sm_ctxt->get_path_context ())
  	    path_ctxt->terminate_path ();
  	}
      }
    else if (state == m_free.m_deallocator.m_freed)
      {
        /* freed -> stop, with warning.  */
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
!       sm_ctxt->warn (node, call, arg,
! 		     make_unique<double_free> (*this, diag_arg, "free"));
!       sm_ctxt->set_next_state (call, arg, m_stop);
!       if (path_context *path_ctxt = sm_ctxt->get_path_context ())
  	path_ctxt->terminate_path ();
      }
    else if (state == m_non_heap)
      {
        /* non-heap -> stop, with warning.  */
        handle_free_of_non_heap (sm_ctxt, node, call, arg, d);
!       if (path_context *path_ctxt = sm_ctxt->get_path_context ())
  	path_ctxt->terminate_path ();
      }
  }
--- 2469,2499 ----
        if (!astate->m_deallocators->contains_p (&m_free.m_deallocator))
  	{
  	  /* Wrong allocator.  */
! 	  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	  sm_ctxt.warn (node, call, arg,
! 			make_unique<mismatching_deallocation>
! 			  (*this, diag_arg,
! 			   astate->m_deallocators, d));
! 	  sm_ctxt.set_next_state (call, arg, m_stop);
! 	  if (path_context *path_ctxt = sm_ctxt.get_path_context ())
  	    path_ctxt->terminate_path ();
  	}
      }
    else if (state == m_free.m_deallocator.m_freed)
      {
        /* freed -> stop, with warning.  */
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (node, call, arg,
! 		    make_unique<double_free> (*this, diag_arg, "free"));
!       sm_ctxt.set_next_state (call, arg, m_stop);
!       if (path_context *path_ctxt = sm_ctxt.get_path_context ())
  	path_ctxt->terminate_path ();
      }
    else if (state == m_non_heap)
      {
        /* non-heap -> stop, with warning.  */
        handle_free_of_non_heap (sm_ctxt, node, call, arg, d);
!       if (path_context *path_ctxt = sm_ctxt.get_path_context ())
  	path_ctxt->terminate_path ();
      }
  }
*************** malloc_state_machine::on_realloc_call (s
*** 2375,2381 ****
  /* Implementation of state_machine::on_phi vfunc for malloc_state_machine.  */
  
  void
! malloc_state_machine::on_phi (sm_context *sm_ctxt,
  			      const supernode *node ATTRIBUTE_UNUSED,
  			      const gphi *phi,
  			      tree rhs) const
--- 2501,2507 ----
  /* Implementation of state_machine::on_phi vfunc for malloc_state_machine.  */
  
  void
! malloc_state_machine::on_phi (sm_context &sm_ctxt,
  			      const supernode *node ATTRIBUTE_UNUSED,
  			      const gphi *phi,
  			      tree rhs) const
*************** malloc_state_machine::on_phi (sm_context
*** 2391,2397 ****
     Potentially transition state 'unchecked' to 'nonnull' or to 'null'.  */
  
  void
! malloc_state_machine::on_condition (sm_context *sm_ctxt,
  				    const supernode *node ATTRIBUTE_UNUSED,
  				    const gimple *stmt,
  				    const svalue *lhs,
--- 2517,2523 ----
     Potentially transition state 'unchecked' to 'nonnull' or to 'null'.  */
  
  void
! malloc_state_machine::on_condition (sm_context &sm_ctxt,
  				    const supernode *node ATTRIBUTE_UNUSED,
  				    const gimple *stmt,
  				    const svalue *lhs,
*************** malloc_state_machine::on_condition (sm_c
*** 2409,2427 ****
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       state_t s = sm_ctxt->get_state (stmt, lhs);
        if (unchecked_p (s))
  	{
  	  const allocation_state *astate = as_a_allocation_state (s);
! 	  sm_ctxt->set_next_state (stmt, lhs, astate->get_nonnull ());
  	}
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       state_t s = sm_ctxt->get_state (stmt, lhs);
        if (unchecked_p (s))
! 	sm_ctxt->set_next_state (stmt, lhs, m_null);
      }
  }
  
--- 2535,2553 ----
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       state_t s = sm_ctxt.get_state (stmt, lhs);
        if (unchecked_p (s))
  	{
  	  const allocation_state *astate = as_a_allocation_state (s);
! 	  sm_ctxt.set_next_state (stmt, lhs, astate->get_nonnull ());
  	}
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       state_t s = sm_ctxt.get_state (stmt, lhs);
        if (unchecked_p (s))
! 	sm_ctxt.set_next_state (stmt, lhs, m_null);
      }
  }
  
*************** malloc_state_machine::unaffected_by_call
*** 2529,2545 ****
     assign zero to LHS.  */
  
  void
! malloc_state_machine::on_zero_assignment (sm_context *sm_ctxt,
  					  const gimple *stmt,
  					  tree lhs) const
  {
!   state_t s = sm_ctxt->get_state (stmt, lhs);
    enum resource_state rs = get_rs (s);
    if (rs == RS_START
        || rs == RS_UNCHECKED
        || rs == RS_NONNULL
        || rs == RS_FREED)
!     sm_ctxt->set_next_state (stmt, lhs, m_null);
  }
  
  /* Special-case hook for handling realloc, for the "success with move to
--- 2655,2671 ----
     assign zero to LHS.  */
  
  void
! malloc_state_machine::on_zero_assignment (sm_context &sm_ctxt,
  					  const gimple *stmt,
  					  tree lhs) const
  {
!   state_t s = sm_ctxt.get_state (stmt, lhs);
    enum resource_state rs = get_rs (s);
    if (rs == RS_START
        || rs == RS_UNCHECKED
        || rs == RS_NONNULL
        || rs == RS_FREED)
!     sm_ctxt.set_next_state (stmt, lhs, m_null);
  }
  
  /* Special-case hook for handling realloc, for the "success with move to
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-malloc.dot gcc-15.1.0/gcc/analyzer/sm-malloc.dot
*** gcc-14.2.0/gcc/analyzer/sm-malloc.dot	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-malloc.dot	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* An overview of the state machine from sm-malloc.cc.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-malloc.cc.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-pattern-test.cc gcc-15.1.0/gcc/analyzer/sm-pattern-test.cc
*** gcc-14.2.0/gcc/analyzer/sm-pattern-test.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-pattern-test.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* A state machine for use in DejaGnu tests, to check that
     pattern-matching works as expected.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
  /* A state machine for use in DejaGnu tests, to check that
     pattern-matching works as expected.
  
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,27 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 21,27 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** public:
*** 57,67 ****
  
    bool inherited_state_p () const final override { return false; }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context *sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
--- 57,67 ----
  
    bool inherited_state_p () const final override { return false; }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context &sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
*************** pattern_test_state_machine::pattern_test
*** 109,115 ****
  }
  
  bool
! pattern_test_state_machine::on_stmt (sm_context *sm_ctxt ATTRIBUTE_UNUSED,
  				     const supernode *node ATTRIBUTE_UNUSED,
  				     const gimple *stmt ATTRIBUTE_UNUSED) const
  {
--- 109,115 ----
  }
  
  bool
! pattern_test_state_machine::on_stmt (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  				     const supernode *node ATTRIBUTE_UNUSED,
  				     const gimple *stmt ATTRIBUTE_UNUSED) const
  {
*************** pattern_test_state_machine::on_stmt (sm_
*** 123,129 ****
     constant.  */
  
  void
! pattern_test_state_machine::on_condition (sm_context *sm_ctxt,
  					  const supernode *node,
  					  const gimple *stmt,
  					  const svalue *lhs,
--- 123,129 ----
     constant.  */
  
  void
! pattern_test_state_machine::on_condition (sm_context &sm_ctxt,
  					  const supernode *node,
  					  const gimple *stmt,
  					  const svalue *lhs,
*************** pattern_test_state_machine::on_condition
*** 137,146 ****
    if (!rhs_cst)
      return;
  
!   if (tree lhs_expr = sm_ctxt->get_diagnostic_tree (lhs))
      {
!       sm_ctxt->warn (node, stmt, lhs_expr,
! 		     make_unique<pattern_match> (lhs_expr, op, rhs_cst));
      }
  }
  
--- 137,146 ----
    if (!rhs_cst)
      return;
  
!   if (tree lhs_expr = sm_ctxt.get_diagnostic_tree (lhs))
      {
!       sm_ctxt.warn (node, stmt, lhs_expr,
! 		    make_unique<pattern_match> (lhs_expr, op, rhs_cst));
      }
  }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-sensitive.cc gcc-15.1.0/gcc/analyzer/sm-sensitive.cc
*** gcc-14.2.0/gcc/analyzer/sm-sensitive.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-sensitive.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,6 ****
  /* An experimental state machine, for tracking exposure of sensitive
     data (e.g. through logging).
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,6 ----
  /* An experimental state machine, for tracking exposure of sensitive
     data (e.g. through logging).
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 20,26 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 20,25 ----
*************** along with GCC; see the file COPYING3.
*** 29,34 ****
--- 28,34 ----
  #include "basic-block.h"
  #include "gimple.h"
  #include "options.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
*************** public:
*** 52,58 ****
  
    bool inherited_state_p () const final override { return true; }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
--- 52,58 ----
  
    bool inherited_state_p () const final override { return true; }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
*************** public:
*** 65,71 ****
    state_t m_stop;
  
  private:
!   void warn_for_any_exposure (sm_context *sm_ctxt,
  			      const supernode *node,
  			      const gimple *stmt,
  			      tree arg) const;
--- 65,71 ----
    state_t m_stop;
  
  private:
!   void warn_for_any_exposure (sm_context &sm_ctxt,
  			      const supernode *node,
  			      const gimple *stmt,
  			      tree arg) const;
*************** public:
*** 102,116 ****
  		      m_arg);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_new_state == m_sm.m_sensitive)
        {
  	m_first_sensitive_event = change.m_event_id;
! 	return change.formatted_print ("sensitive value acquired here");
        }
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 102,118 ----
  		      m_arg);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_new_state == m_sm.m_sensitive)
        {
  	m_first_sensitive_event = change.m_event_id;
! 	pp_string (&pp, "sensitive value acquired here");
! 	return true;
        }
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 122,155 ****
  					diagnostic_event::NOUN_sensitive);
      return diagnostic_event::meaning ();
    }
!   label_text describe_call_with_state (const evdesc::call_with_state &info)
!     final override
    {
      if (info.m_state == m_sm.m_sensitive)
!       return info.formatted_print
! 	("passing sensitive value %qE in call to %qE from %qE",
! 	 info.m_expr, info.m_callee_fndecl, info.m_caller_fndecl);
!     return label_text ();
    }
  
!   label_text describe_return_of_state (const evdesc::return_of_state &info)
!     final override
    {
      if (info.m_state == m_sm.m_sensitive)
!       return info.formatted_print ("returning sensitive value to %qE from %qE",
! 				   info.m_caller_fndecl, info.m_callee_fndecl);
!     return label_text ();
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_first_sensitive_event.known_p ())
!       return ev.formatted_print ("sensitive value %qE written to output file"
! 				 "; acquired at %@",
! 				 m_arg, &m_first_sensitive_event);
      else
!       return ev.formatted_print ("sensitive value %qE written to output file",
! 				 m_arg);
    }
  
  private:
--- 124,171 ----
  					diagnostic_event::NOUN_sensitive);
      return diagnostic_event::meaning ();
    }
!   bool
!   describe_call_with_state (pretty_printer &pp,
! 			    const evdesc::call_with_state &info) final override
    {
      if (info.m_state == m_sm.m_sensitive)
!       {
! 	pp_printf (&pp,
! 		   "passing sensitive value %qE in call to %qE from %qE",
! 		   info.m_expr, info.m_callee_fndecl, info.m_caller_fndecl);
! 	return true;
!       }
!     return false;
    }
  
!   bool
!   describe_return_of_state (pretty_printer &pp,
! 			    const evdesc::return_of_state &info) final override
    {
      if (info.m_state == m_sm.m_sensitive)
!       {
! 	pp_printf (&pp,
! 		   "returning sensitive value to %qE from %qE",
! 		   info.m_caller_fndecl, info.m_callee_fndecl);
! 	return true;
!       }
!     return false;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_first_sensitive_event.known_p ())
!       pp_printf (&pp,
! 		 "sensitive value %qE written to output file"
! 		 "; acquired at %@",
! 		 m_arg, &m_first_sensitive_event);
      else
!       pp_printf (&pp,
! 		 "sensitive value %qE written to output file",
! 		 m_arg);
!     return true;
    }
  
  private:
*************** sensitive_state_machine::sensitive_state
*** 171,187 ****
     state.  */
  
  void
! sensitive_state_machine::warn_for_any_exposure (sm_context *sm_ctxt,
  						const supernode *node,
  						const gimple *stmt,
  						tree arg) const
  {
!   if (sm_ctxt->get_state (stmt, arg) == m_sensitive)
      {
!       tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
!       sm_ctxt->warn (node, stmt, arg,
! 		     make_unique<exposure_through_output_file> (*this,
! 								diag_arg));
      }
  }
  
--- 187,203 ----
     state.  */
  
  void
! sensitive_state_machine::warn_for_any_exposure (sm_context &sm_ctxt,
  						const supernode *node,
  						const gimple *stmt,
  						tree arg) const
  {
!   if (sm_ctxt.get_state (stmt, arg) == m_sensitive)
      {
!       tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (node, stmt, arg,
! 		    make_unique<exposure_through_output_file> (*this,
! 							       diag_arg));
      }
  }
  
*************** sensitive_state_machine::warn_for_any_ex
*** 189,206 ****
     sensitive_state_machine.  */
  
  bool
! sensitive_state_machine::on_stmt (sm_context *sm_ctxt,
  				  const supernode *node,
  				  const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "getpass", call, 1))
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt->on_transition (node, stmt, lhs, m_start, m_sensitive);
  	    return true;
  	  }
  	else if (is_named_call_p (callee_fndecl, "fprintf")
--- 205,222 ----
     sensitive_state_machine.  */
  
  bool
! sensitive_state_machine::on_stmt (sm_context &sm_ctxt,
  				  const supernode *node,
  				  const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "getpass", call, 1))
  	  {
  	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt.on_transition (node, stmt, lhs, m_start, m_sensitive);
  	    return true;
  	  }
  	else if (is_named_call_p (callee_fndecl, "fprintf")
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-signal.cc gcc-15.1.0/gcc/analyzer/sm-signal.cc
*** gcc-14.2.0/gcc/analyzer/sm-signal.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-signal.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* An experimental state machine, for tracking bad calls from within
     signal handlers.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
  /* An experimental state machine, for tracking bad calls from within
     signal handlers.
  
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,27 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 21,27 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
  #include "gimple.h"
  #include "options.h"
  #include "bitmap.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
*************** public:
*** 72,78 ****
  
    bool inherited_state_p () const final override { return false; }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
--- 73,79 ----
  
    bool inherited_state_p () const final override { return false; }
  
!   bool  on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
*************** public:
*** 140,163 ****
      return false;
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.is_global_p ()
  	&& change.m_new_state == m_sm.m_in_signal_handler)
        {
  	const function *handler = change.m_event.get_dest_function ();
  	gcc_assert (handler);
! 	return change.formatted_print ("registering %qD as signal handler",
! 				       handler->decl);
        }
!     return label_text ();
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("call to %qD from within signal handler",
! 			       m_unsafe_fndecl);
    }
  
  private:
--- 141,171 ----
      return false;
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.is_global_p ()
  	&& change.m_new_state == m_sm.m_in_signal_handler)
        {
  	const function *handler = change.m_event.get_dest_function ();
  	gcc_assert (handler);
! 	pp_printf (&pp,
! 		   "registering %qD as signal handler",
! 		   handler->decl);
! 	return true;
        }
!     return false;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "call to %qD from within signal handler",
! 	       m_unsafe_fndecl);
!     return true;
    }
  
  private:
*************** public:
*** 212,223 ****
      pp_string (pp, "signal delivered");
    }
  
-   json::object *to_json () const
-   {
-     json::object *custom_obj = new json::object ();
-     return custom_obj;
-   }
- 
    bool update_model (region_model *model,
  		     const exploded_edge *eedge,
  		     region_model_context *) const final override
--- 220,225 ----
*************** static bool
*** 320,341 ****
  signal_unsafe_p (tree fndecl)
  {
    function_set fs = get_async_signal_unsafe_fns ();
!   return fs.contains_decl_p (fndecl);
  }
  
  /* Implementation of state_machine::on_stmt vfunc for signal_state_machine.  */
  
  bool
! signal_state_machine::on_stmt (sm_context *sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
!   const state_t global_state = sm_ctxt->get_global_state ();
    if (global_state == m_start)
      {
        if (const gcall *call = dyn_cast <const gcall *> (stmt))
! 	if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
! 	  if (is_named_call_p (callee_fndecl, "signal", call, 2))
  	    {
  	      tree handler = gimple_call_arg (call, 1);
  	      if (TREE_CODE (handler) == ADDR_EXPR
--- 322,350 ----
  signal_unsafe_p (tree fndecl)
  {
    function_set fs = get_async_signal_unsafe_fns ();
!   if (fs.contains_decl_p (fndecl))
!     return true;
!   if (is_std_function_p (fndecl)
!       && fs.contains_name_p (IDENTIFIER_POINTER (DECL_NAME (fndecl))))
!     return true;
! 
!   return false;
  }
  
  /* Implementation of state_machine::on_stmt vfunc for signal_state_machine.  */
  
  bool
! signal_state_machine::on_stmt (sm_context &sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
!   const state_t global_state = sm_ctxt.get_global_state ();
    if (global_state == m_start)
      {
        if (const gcall *call = dyn_cast <const gcall *> (stmt))
! 	if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
! 	  if (is_named_call_p (callee_fndecl, "signal", call, 2)
! 	      || is_std_named_call_p (callee_fndecl, "signal", call, 2))
  	    {
  	      tree handler = gimple_call_arg (call, 1);
  	      if (TREE_CODE (handler) == ADDR_EXPR
*************** signal_state_machine::on_stmt (sm_contex
*** 343,361 ****
  		{
  		  tree fndecl = TREE_OPERAND (handler, 0);
  		  register_signal_handler rsh (*this, fndecl);
! 		  sm_ctxt->on_custom_transition (&rsh);
  		}
  	    }
      }
    else if (global_state == m_in_signal_handler)
      {
        if (const gcall *call = dyn_cast <const gcall *> (stmt))
! 	if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
  	  if (signal_unsafe_p (callee_fndecl))
! 	    if (sm_ctxt->get_global_state () == m_in_signal_handler)
! 	      sm_ctxt->warn (node, stmt, NULL_TREE,
! 			     make_unique<signal_unsafe_call>
! 			       (*this, call, callee_fndecl));
      }
  
    return false;
--- 352,370 ----
  		{
  		  tree fndecl = TREE_OPERAND (handler, 0);
  		  register_signal_handler rsh (*this, fndecl);
! 		  sm_ctxt.on_custom_transition (&rsh);
  		}
  	    }
      }
    else if (global_state == m_in_signal_handler)
      {
        if (const gcall *call = dyn_cast <const gcall *> (stmt))
! 	if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
  	  if (signal_unsafe_p (callee_fndecl))
! 	    if (sm_ctxt.get_global_state () == m_in_signal_handler)
! 	      sm_ctxt.warn (node, stmt, NULL_TREE,
! 			    make_unique<signal_unsafe_call>
! 			     (*this, call, callee_fndecl));
      }
  
    return false;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm-taint.cc gcc-15.1.0/gcc/analyzer/sm-taint.cc
*** gcc-14.2.0/gcc/analyzer/sm-taint.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm-taint.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* A state machine for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
  /* A state machine for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.
  
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,27 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 21,27 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 30,35 ****
--- 30,36 ----
  #include "basic-block.h"
  #include "gimple.h"
  #include "options.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
*************** along with GCC; see the file COPYING3.
*** 51,56 ****
--- 52,58 ----
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/constraint-manager.h"
  #include "diagnostic-format-sarif.h"
+ #include "gcc-urlifier.h"
  
  #if ENABLE_ANALYZER
  
*************** public:
*** 109,125 ****
      return true;
    }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context *sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
!   void on_bounded_ranges (sm_context *sm_ctxt,
  			  const supernode *node,
  			  const gimple *stmt,
  			  const svalue &sval,
--- 111,127 ----
      return true;
    }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context &sm_ctxt,
  		     const supernode *node,
  		     const gimple *stmt,
  		     const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
!   void on_bounded_ranges (sm_context &sm_ctxt,
  			  const supernode *node,
  			  const gimple *stmt,
  			  const svalue &sval,
*************** public:
*** 132,146 ****
    state_t combine_states (state_t s0, state_t s1) const;
  
  private:
!   void check_control_flow_arg_for_taint (sm_context *sm_ctxt,
  					 const gimple *stmt,
  					 tree expr) const;
  
!   void check_for_tainted_size_arg (sm_context *sm_ctxt,
  				   const supernode *node,
  				   const gcall *call,
  				   tree callee_fndecl) const;
!   void check_for_tainted_divisor (sm_context *sm_ctxt,
  				  const supernode *node,
  				  const gassign *assign) const;
  
--- 134,148 ----
    state_t combine_states (state_t s0, state_t s1) const;
  
  private:
!   void check_control_flow_arg_for_taint (sm_context &sm_ctxt,
  					 const gimple *stmt,
  					 tree expr) const;
  
!   void check_for_tainted_size_arg (sm_context &sm_ctxt,
  				   const supernode *node,
  				   const gcall *call,
  				   tree callee_fndecl) const;
!   void check_for_tainted_divisor (sm_context &sm_ctxt,
  				  const supernode *node,
  				  const gassign *assign) const;
  
*************** public:
*** 179,203 ****
  	    && m_has_bounds == other.m_has_bounds);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change) override
    {
      if (change.m_new_state == m_sm.m_tainted)
        {
  	if (change.m_origin)
! 	  return change.formatted_print ("%qE has an unchecked value here"
! 					 " (from %qE)",
! 					 change.m_expr, change.m_origin);
  	else
! 	  return change.formatted_print ("%qE gets an unchecked value here",
! 					 change.m_expr);
        }
      else if (change.m_new_state == m_sm.m_has_lb)
!       return change.formatted_print ("%qE has its lower bound checked here",
! 				     change.m_expr);
      else if (change.m_new_state == m_sm.m_has_ub)
!       return change.formatted_print ("%qE has its upper bound checked here",
! 				     change.m_expr);
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 181,222 ----
  	    && m_has_bounds == other.m_has_bounds);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_new_state == m_sm.m_tainted)
        {
  	if (change.m_origin)
! 	  {
! 	    pp_printf (&pp,
! 		       "%qE has an unchecked value here (from %qE)",
! 		       change.m_expr, change.m_origin);
! 	    return true;
! 	  }
  	else
! 	  {
! 	    pp_printf (&pp,
! 		       "%qE gets an unchecked value here",
! 		       change.m_expr);
! 	    return true;
! 	  }
        }
      else if (change.m_new_state == m_sm.m_has_lb)
!       {
! 	pp_printf (&pp,
! 		   "%qE has its lower bound checked here",
! 		   change.m_expr);
! 	return true;
!       }
      else if (change.m_new_state == m_sm.m_has_ub)
!       {
! 	pp_printf (&pp,
! 		   "%qE has its upper bound checked here",
! 		   change.m_expr);
! 	return true;
!       }
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 292,298 ****
  	}
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_arg)
        switch (m_has_bounds)
--- 311,319 ----
  	}
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
        switch (m_has_bounds)
*************** public:
*** 300,319 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE in array lookup"
! 	     " without bounds checking",
! 	     m_arg);
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE"
! 	     " in array lookup without checking for negative",
! 	     m_arg);
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE"
! 	     " in array lookup without upper-bounds checking",
! 	     m_arg);
  	}
      else
        switch (m_has_bounds)
--- 321,349 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE in array lookup"
! 		       " without bounds checking",
! 		       m_arg);
! 	    return true;
! 	  }
  	case BOUNDS_UPPER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE"
! 		       " in array lookup without checking for negative",
! 		       m_arg);
! 	    return true;
! 	  }
  	case BOUNDS_LOWER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE"
! 		       " in array lookup without upper-bounds checking",
! 		       m_arg);
! 	    return true;
! 	  }
  	}
      else
        switch (m_has_bounds)
*************** public:
*** 321,337 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value in array lookup"
! 	     " without bounds checking");
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value"
! 	     " in array lookup without checking for negative");
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value"
! 	     " in array lookup without upper-bounds checking");
  	}
    }
  };
--- 351,376 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value in array lookup"
! 		       " without bounds checking");
! 	    return true;
! 	  }
  	case BOUNDS_UPPER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value"
! 		       " in array lookup without checking for negative");
! 	    return true;
! 	  }
  	case BOUNDS_LOWER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value"
! 		       " in array lookup without upper-bounds checking");
! 	    return true;
! 	  }
  	}
    }
  };
*************** public:
*** 401,407 ****
  	}
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_arg)
        switch (m_has_bounds)
--- 440,448 ----
  	}
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
        switch (m_has_bounds)
*************** public:
*** 409,425 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as offset without bounds checking",
! 				     m_arg);
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as offset without lower-bounds checking",
! 				     m_arg);
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as offset without upper-bounds checking",
! 				     m_arg);
  	}
      else
        switch (m_has_bounds)
--- 450,478 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE"
! 		       " as offset without bounds checking",
! 		       m_arg);
! 	    return true;
! 	  }
  	case BOUNDS_UPPER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE"
! 		       " as offset without lower-bounds checking",
! 		       m_arg);
! 	    return true;
! 	  }
  	case BOUNDS_LOWER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value %qE"
! 		       " as offset without upper-bounds checking",
! 		       m_arg);
! 	    return true;
! 	  }
  	}
      else
        switch (m_has_bounds)
*************** public:
*** 427,442 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as offset without bounds checking");
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as offset without lower-bounds"
! 				     " checking");
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as offset without upper-bounds"
! 				     " checking");
  	}
    }
  
--- 480,507 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value"
! 		       " as offset without bounds checking");
! 	    return true;
! 	  }
  	case BOUNDS_UPPER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value"
! 		       " as offset without lower-bounds"
! 		       " checking");
! 	    return true;
! 	  }
  	case BOUNDS_LOWER:
! 	  {
! 	    pp_printf (&pp,
! 		       "use of attacker-controlled value"
! 		       " as offset without upper-bounds"
! 		       " checking");
! 	    return true;
! 	  }
  	}
    }
  
*************** public:
*** 517,523 ****
  	}
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_arg)
        switch (m_has_bounds)
--- 582,590 ----
  	}
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
        switch (m_has_bounds)
*************** public:
*** 525,541 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as size without bounds checking",
! 				     m_arg);
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as size without lower-bounds checking",
! 				     m_arg);
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print ("use of attacker-controlled value %qE"
! 				     " as size without upper-bounds checking",
! 				     m_arg);
  	}
      else
        switch (m_has_bounds)
--- 592,614 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE"
! 		     " as size without bounds checking",
! 		     m_arg);
! 	  return true;
  	case BOUNDS_UPPER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE"
! 		     " as size without lower-bounds checking",
! 		     m_arg);
! 	  return true;
  	case BOUNDS_LOWER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE"
! 		     " as size without upper-bounds checking",
! 		     m_arg);
! 	  return true;
  	}
      else
        switch (m_has_bounds)
*************** public:
*** 543,556 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as size without bounds checking");
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as size without lower-bounds checking");
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print ("use of attacker-controlled value"
! 				     " as size without upper-bounds checking");
  	}
    }
  };
--- 616,635 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value"
! 		     " as size without bounds checking");
! 	  return true;
  	case BOUNDS_UPPER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value"
! 		     " as size without lower-bounds checking");
! 	  return true;
  	case BOUNDS_LOWER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value"
! 		     " as size without upper-bounds checking");
! 	  return true;
  	}
    }
  };
*************** public:
*** 580,585 ****
--- 659,665 ----
      bool warned = tainted_size::emit (ctxt);
      if (warned)
        {
+ 	auto_urlify_attributes sentinel;
  	inform (DECL_SOURCE_LOCATION (m_callee_fndecl),
  		"parameter %i of %qD marked as a size via attribute %qs",
  		m_size_argno + 1, m_callee_fndecl, m_access_str);
*************** public:
*** 624,640 ****
  			" without checking for zero");
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_arg)
!       return ev.formatted_print
! 	("use of attacker-controlled value %qE as divisor"
! 	 " without checking for zero",
! 	 m_arg);
      else
!       return ev.formatted_print
! 	("use of attacker-controlled value as divisor"
! 	 " without checking for zero");
    }
  };
  
--- 704,723 ----
  			" without checking for zero");
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
!       pp_printf (&pp,
! 		 "use of attacker-controlled value %qE as divisor"
! 		 " without checking for zero",
! 		 m_arg);
      else
!       pp_printf (&pp,
! 		 "use of attacker-controlled value as divisor"
! 		 " without checking for zero");
!     return true;
    }
  };
  
*************** public:
*** 740,746 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (m_arg)
        switch (m_has_bounds)
--- 823,831 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (m_arg)
        switch (m_has_bounds)
*************** public:
*** 748,767 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE as allocation size"
! 	     " without bounds checking",
! 	     m_arg);
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE as allocation size"
! 	     " without lower-bounds checking",
! 	     m_arg);
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value %qE as allocation size"
! 	     " without upper-bounds checking",
! 	     m_arg);
  	}
      else
        switch (m_has_bounds)
--- 833,855 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE as allocation size"
! 		     " without bounds checking",
! 		     m_arg);
! 	  return true;
  	case BOUNDS_UPPER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE as allocation size"
! 		     " without lower-bounds checking",
! 		     m_arg);
! 	  return true;
  	case BOUNDS_LOWER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value %qE as allocation size"
! 		     " without upper-bounds checking",
! 		     m_arg);
! 	  return true;
  	}
      else
        switch (m_has_bounds)
*************** public:
*** 769,785 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value as allocation size"
! 	     " without bounds checking");
  	case BOUNDS_UPPER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value as allocation size"
! 	     " without lower-bounds checking");
  	case BOUNDS_LOWER:
! 	  return ev.formatted_print
! 	    ("use of attacker-controlled value as allocation size"
! 	     " without upper-bounds checking");
  	}
    }
  
--- 857,876 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value as allocation size"
! 		     " without bounds checking");
! 	  return true;
  	case BOUNDS_UPPER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value as allocation size"
! 		     " without lower-bounds checking");
! 	  return true;
  	case BOUNDS_LOWER:
! 	  pp_printf (&pp,
! 		     "use of attacker-controlled value as allocation size"
! 		     " without upper-bounds checking");
! 	  return true;
  	}
    }
  
*************** public:
*** 858,882 ****
        return pending_diagnostic::fixup_location (loc, primary);
    }
  
!   label_text describe_state_change (const evdesc::state_change &change) override
    {
      if (change.m_new_state == m_sm.m_tainted_control_flow)
!       return change.formatted_print
! 	("use of attacker-controlled value for control flow");
!     return taint_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (mention_noreturn_attribute_p ())
!       return ev.formatted_print
! 	("treating %qE as an assertion failure handler"
! 	 " due to %<__attribute__((__noreturn__))%>",
! 	 m_assert_failure_fndecl);
      else
!       return ev.formatted_print
! 	("treating %qE as an assertion failure handler",
! 	 m_assert_failure_fndecl);
    }
  
  private:
--- 949,981 ----
        return pending_diagnostic::fixup_location (loc, primary);
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (change.m_new_state == m_sm.m_tainted_control_flow)
!       {
! 	pp_printf (&pp,
! 		   "use of attacker-controlled value for control flow");
! 	return true;
!       }
!     return taint_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
      if (mention_noreturn_attribute_p ())
!       pp_printf (&pp,
! 		 "treating %qE as an assertion failure handler"
! 		 " due to %<__attribute__((__noreturn__))%>",
! 		 m_assert_failure_fndecl);
      else
!       pp_printf (&pp,
! 		 "treating %qE as an assertion failure handler",
! 		 m_assert_failure_fndecl);
!     return true;
    }
  
  private:
*************** is_assertion_failure_handler_p (tree fnd
*** 995,1031 ****
  /* Implementation of state_machine::on_stmt vfunc for taint_state_machine.  */
  
  bool
! taint_state_machine::on_stmt (sm_context *sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "fread", call, 4))
  	  {
  	    tree arg = gimple_call_arg (call, 0);
  
! 	    sm_ctxt->on_transition (node, stmt, arg, m_start, m_tainted);
  
  	    /* Dereference an ADDR_EXPR.  */
  	    // TODO: should the engine do this?
  	    if (TREE_CODE (arg) == ADDR_EXPR)
! 	      sm_ctxt->on_transition (node, stmt, TREE_OPERAND (arg, 0),
! 				      m_start, m_tainted);
  	    return true;
  	  }
  
  	/* External function with "access" attribute. */
! 	if (sm_ctxt->unknown_side_effects_p ())
  	  check_for_tainted_size_arg (sm_ctxt, node, call, callee_fndecl);
  
  	if (is_assertion_failure_handler_p (callee_fndecl)
! 	    && sm_ctxt->get_global_state () == m_tainted_control_flow)
  	  {
! 	    sm_ctxt->warn (node, call, NULL_TREE,
! 			   make_unique<tainted_assertion> (*this, NULL_TREE,
! 							   callee_fndecl));
  	  }
        }
    // TODO: ...etc; many other sources of untrusted data
--- 1094,1130 ----
  /* Implementation of state_machine::on_stmt vfunc for taint_state_machine.  */
  
  bool
! taint_state_machine::on_stmt (sm_context &sm_ctxt,
  			       const supernode *node,
  			       const gimple *stmt) const
  {
    if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
        {
  	if (is_named_call_p (callee_fndecl, "fread", call, 4))
  	  {
  	    tree arg = gimple_call_arg (call, 0);
  
! 	    sm_ctxt.on_transition (node, stmt, arg, m_start, m_tainted);
  
  	    /* Dereference an ADDR_EXPR.  */
  	    // TODO: should the engine do this?
  	    if (TREE_CODE (arg) == ADDR_EXPR)
! 	      sm_ctxt.on_transition (node, stmt, TREE_OPERAND (arg, 0),
! 				     m_start, m_tainted);
  	    return true;
  	  }
  
  	/* External function with "access" attribute. */
! 	if (sm_ctxt.unknown_side_effects_p ())
  	  check_for_tainted_size_arg (sm_ctxt, node, call, callee_fndecl);
  
  	if (is_assertion_failure_handler_p (callee_fndecl)
! 	    && sm_ctxt.get_global_state () == m_tainted_control_flow)
  	  {
! 	    sm_ctxt.warn (node, call, NULL_TREE,
! 			  make_unique<tainted_assertion> (*this, NULL_TREE,
! 							  callee_fndecl));
  	  }
        }
    // TODO: ...etc; many other sources of untrusted data
*************** taint_state_machine::on_stmt (sm_context
*** 1058,1064 ****
        /* Reset the state of "tainted-control-flow" before each
  	 control flow statement, so that only the last one before
  	 an assertion-failure-handler counts.  */
!       sm_ctxt->set_global_state (m_start);
        check_control_flow_arg_for_taint (sm_ctxt, cond, gimple_cond_lhs (cond));
        check_control_flow_arg_for_taint (sm_ctxt, cond, gimple_cond_rhs (cond));
      }
--- 1157,1163 ----
        /* Reset the state of "tainted-control-flow" before each
  	 control flow statement, so that only the last one before
  	 an assertion-failure-handler counts.  */
!       sm_ctxt.set_global_state (m_start);
        check_control_flow_arg_for_taint (sm_ctxt, cond, gimple_cond_lhs (cond));
        check_control_flow_arg_for_taint (sm_ctxt, cond, gimple_cond_rhs (cond));
      }
*************** taint_state_machine::on_stmt (sm_context
*** 1068,1074 ****
        /* Reset the state of "tainted-control-flow" before each
  	 control flow statement, so that only the last one before
  	 an assertion-failure-handler counts.  */
!       sm_ctxt->set_global_state (m_start);
        check_control_flow_arg_for_taint (sm_ctxt, switch_,
  					gimple_switch_index (switch_));
      }
--- 1167,1173 ----
        /* Reset the state of "tainted-control-flow" before each
  	 control flow statement, so that only the last one before
  	 an assertion-failure-handler counts.  */
!       sm_ctxt.set_global_state (m_start);
        check_control_flow_arg_for_taint (sm_ctxt, switch_,
  					gimple_switch_index (switch_));
      }
*************** taint_state_machine::on_stmt (sm_context
*** 1081,1096 ****
     to call an assertion-failure-handler.  */
  
  void
! taint_state_machine::check_control_flow_arg_for_taint (sm_context *sm_ctxt,
  						       const gimple *stmt,
  						       tree expr) const
  {
!   const region_model *old_model = sm_ctxt->get_old_region_model ();
    const svalue *sval = old_model->get_rvalue (expr, NULL);
!   state_t state = sm_ctxt->get_state (stmt, sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (expr), &b))
!     sm_ctxt->set_global_state (m_tainted_control_flow);
  }
  
  /* Implementation of state_machine::on_condition vfunc for taint_state_machine.
--- 1180,1195 ----
     to call an assertion-failure-handler.  */
  
  void
! taint_state_machine::check_control_flow_arg_for_taint (sm_context &sm_ctxt,
  						       const gimple *stmt,
  						       tree expr) const
  {
!   const region_model *old_model = sm_ctxt.get_old_region_model ();
    const svalue *sval = old_model->get_rvalue (expr, NULL);
!   state_t state = sm_ctxt.get_state (stmt, sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (expr), &b))
!     sm_ctxt.set_global_state (m_tainted_control_flow);
  }
  
  /* Implementation of state_machine::on_condition vfunc for taint_state_machine.
*************** taint_state_machine::check_control_flow_
*** 1098,1104 ****
     and states 'has_ub' and 'has_lb' to 'stop'.  */
  
  void
! taint_state_machine::on_condition (sm_context *sm_ctxt,
  				   const supernode *node,
  				   const gimple *stmt,
  				   const svalue *lhs,
--- 1197,1203 ----
     and states 'has_ub' and 'has_lb' to 'stop'.  */
  
  void
! taint_state_machine::on_condition (sm_context &sm_ctxt,
  				   const supernode *node,
  				   const gimple *stmt,
  				   const svalue *lhs,
*************** taint_state_machine::on_condition (sm_co
*** 1118,1124 ****
        // TODO: warn about this
        if (get_logger ())
  	get_logger ()->log ("comparison against UNKNOWN; removing all taint");
!       sm_ctxt->clear_all_per_svalue_state ();
        return;
      }
  
--- 1217,1223 ----
        // TODO: warn about this
        if (get_logger ())
  	get_logger ()->log ("comparison against UNKNOWN; removing all taint");
!       sm_ctxt.clear_all_per_svalue_state ();
        return;
      }
  
*************** taint_state_machine::on_condition (sm_co
*** 1141,1154 ****
  	/* (LHS >= RHS) or (LHS > RHS)
  	   LHS gains a lower bound
  	   RHS gains an upper bound.  */
! 	sm_ctxt->on_transition (node, stmt, lhs, m_tainted,
! 				m_has_lb);
! 	sm_ctxt->on_transition (node, stmt, lhs, m_has_ub,
! 				m_stop);
! 	sm_ctxt->on_transition (node, stmt, rhs, m_tainted,
! 				m_has_ub);
! 	sm_ctxt->on_transition (node, stmt, rhs, m_has_lb,
! 				m_stop);
        }
        break;
      case LE_EXPR:
--- 1240,1249 ----
  	/* (LHS >= RHS) or (LHS > RHS)
  	   LHS gains a lower bound
  	   RHS gains an upper bound.  */
! 	sm_ctxt.on_transition (node, stmt, lhs, m_tainted, m_has_lb);
! 	sm_ctxt.on_transition (node, stmt, lhs, m_has_ub, m_stop);
! 	sm_ctxt.on_transition (node, stmt, rhs, m_tainted, m_has_ub);
! 	sm_ctxt.on_transition (node, stmt, rhs, m_has_lb, m_stop);
        }
        break;
      case LE_EXPR:
*************** taint_state_machine::on_condition (sm_co
*** 1187,1197 ****
  		       from the old state to has_lb, then a transition from
  		       the old state *again* to has_ub).  */
  		    state_t old_state
! 		      = sm_ctxt->get_state (stmt, inner_lhs);
  		    if (old_state == m_tainted
  			|| old_state == m_has_lb
  			|| old_state == m_has_ub)
! 		      sm_ctxt->set_next_state (stmt, inner_lhs, m_stop);
  		    return;
  		  }
  	  }
--- 1282,1292 ----
  		       from the old state to has_lb, then a transition from
  		       the old state *again* to has_ub).  */
  		    state_t old_state
! 		      = sm_ctxt.get_state (stmt, inner_lhs);
  		    if (old_state == m_tainted
  			|| old_state == m_has_lb
  			|| old_state == m_has_ub)
! 		      sm_ctxt.set_next_state (stmt, inner_lhs, m_stop);
  		    return;
  		  }
  	  }
*************** taint_state_machine::on_condition (sm_co
*** 1199,1212 ****
  	/* (LHS <= RHS) or (LHS < RHS)
  	   LHS gains an upper bound
  	   RHS gains a lower bound.  */
! 	sm_ctxt->on_transition (node, stmt, lhs, m_tainted,
! 				m_has_ub);
! 	sm_ctxt->on_transition (node, stmt, lhs, m_has_lb,
! 				m_stop);
! 	sm_ctxt->on_transition (node, stmt, rhs, m_tainted,
! 				m_has_lb);
! 	sm_ctxt->on_transition (node, stmt, rhs, m_has_ub,
! 				m_stop);
        }
        break;
      default:
--- 1294,1303 ----
  	/* (LHS <= RHS) or (LHS < RHS)
  	   LHS gains an upper bound
  	   RHS gains a lower bound.  */
! 	sm_ctxt.on_transition (node, stmt, lhs, m_tainted, m_has_ub);
! 	sm_ctxt.on_transition (node, stmt, lhs, m_has_lb, m_stop);
! 	sm_ctxt.on_transition (node, stmt, rhs, m_tainted, m_has_lb);
! 	sm_ctxt.on_transition (node, stmt, rhs, m_has_ub, m_stop);
        }
        break;
      default:
*************** taint_state_machine::on_condition (sm_co
*** 1220,1226 ****
     and states 'has_ub' and 'has_lb' to 'stop'.  */
  
  void
! taint_state_machine::on_bounded_ranges (sm_context *sm_ctxt,
  					const supernode *,
  					const gimple *stmt,
  					const svalue &sval,
--- 1311,1317 ----
     and states 'has_ub' and 'has_lb' to 'stop'.  */
  
  void
! taint_state_machine::on_bounded_ranges (sm_context &sm_ctxt,
  					const supernode *,
  					const gimple *stmt,
  					const svalue &sval,
*************** taint_state_machine::on_bounded_ranges (
*** 1250,1269 ****
  
    /* We have new bounds from the ranges; combine them with any
       existing bounds on SVAL.  */
!   state_t old_state = sm_ctxt->get_state (stmt, &sval);
    if (old_state == m_tainted)
      {
        if (ranges_have_lb && ranges_have_ub)
! 	sm_ctxt->set_next_state (stmt, &sval, m_stop);
        else if (ranges_have_lb)
! 	sm_ctxt->set_next_state (stmt, &sval, m_has_lb);
        else if (ranges_have_ub)
! 	sm_ctxt->set_next_state (stmt, &sval, m_has_ub);
      }
    else if (old_state == m_has_ub && ranges_have_lb)
!     sm_ctxt->set_next_state (stmt, &sval, m_stop);
    else if (old_state == m_has_lb && ranges_have_ub)
!     sm_ctxt->set_next_state (stmt, &sval, m_stop);
  }
  
  bool
--- 1341,1360 ----
  
    /* We have new bounds from the ranges; combine them with any
       existing bounds on SVAL.  */
!   state_t old_state = sm_ctxt.get_state (stmt, &sval);
    if (old_state == m_tainted)
      {
        if (ranges_have_lb && ranges_have_ub)
! 	sm_ctxt.set_next_state (stmt, &sval, m_stop);
        else if (ranges_have_lb)
! 	sm_ctxt.set_next_state (stmt, &sval, m_has_lb);
        else if (ranges_have_ub)
! 	sm_ctxt.set_next_state (stmt, &sval, m_has_ub);
      }
    else if (old_state == m_has_ub && ranges_have_lb)
!     sm_ctxt.set_next_state (stmt, &sval, m_stop);
    else if (old_state == m_has_lb && ranges_have_ub)
!     sm_ctxt.set_next_state (stmt, &sval, m_stop);
  }
  
  bool
*************** taint_state_machine::combine_states (sta
*** 1340,1346 ****
     tainted values passed as a size to such a function.  */
  
  void
! taint_state_machine::check_for_tainted_size_arg (sm_context *sm_ctxt,
  						 const supernode *node,
  						 const gcall *call,
  						 tree callee_fndecl) const
--- 1431,1437 ----
     tainted values passed as a size to such a function.  */
  
  void
! taint_state_machine::check_for_tainted_size_arg (sm_context &sm_ctxt,
  						 const supernode *node,
  						 const gcall *call,
  						 tree callee_fndecl) const
*************** taint_state_machine::check_for_tainted_s
*** 1375,1393 ****
  
        tree size_arg = gimple_call_arg (call, access->sizarg);
  
!       state_t state = sm_ctxt->get_state (call, size_arg);
        enum bounds b;
        if (get_taint (state, TREE_TYPE (size_arg), &b))
  	{
  	  const char* const access_str =
  	    TREE_STRING_POINTER (access->to_external_string ());
! 	  tree diag_size = sm_ctxt->get_diagnostic_tree (size_arg);
! 	  sm_ctxt->warn (node, call, size_arg,
! 			 make_unique<tainted_access_attrib_size>
! 			   (*this, diag_size, b,
! 			    callee_fndecl,
! 			    access->sizarg,
! 			    access_str));
  	}
      }
  }
--- 1466,1484 ----
  
        tree size_arg = gimple_call_arg (call, access->sizarg);
  
!       state_t state = sm_ctxt.get_state (call, size_arg);
        enum bounds b;
        if (get_taint (state, TREE_TYPE (size_arg), &b))
  	{
  	  const char* const access_str =
  	    TREE_STRING_POINTER (access->to_external_string ());
! 	  tree diag_size = sm_ctxt.get_diagnostic_tree (size_arg);
! 	  sm_ctxt.warn (node, call, size_arg,
! 			make_unique<tainted_access_attrib_size>
! 			(*this, diag_size, b,
! 			 callee_fndecl,
! 			 access->sizarg,
! 			 access_str));
  	}
      }
  }
*************** taint_state_machine::check_for_tainted_s
*** 1396,1406 ****
     that could be zero.  */
  
  void
! taint_state_machine::check_for_tainted_divisor (sm_context *sm_ctxt,
  						const supernode *node,
  						const gassign *assign) const
  {
!   const region_model *old_model = sm_ctxt->get_old_region_model ();
    if (!old_model)
      return;
  
--- 1487,1497 ----
     that could be zero.  */
  
  void
! taint_state_machine::check_for_tainted_divisor (sm_context &sm_ctxt,
  						const supernode *node,
  						const gassign *assign) const
  {
!   const region_model *old_model = sm_ctxt.get_old_region_model ();
    if (!old_model)
      return;
  
*************** taint_state_machine::check_for_tainted_d
*** 1413,1419 ****
  
    const svalue *divisor_sval = old_model->get_rvalue (divisor_expr, NULL);
  
!   state_t state = sm_ctxt->get_state (assign, divisor_sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (divisor_expr), &b))
      {
--- 1504,1510 ----
  
    const svalue *divisor_sval = old_model->get_rvalue (divisor_expr, NULL);
  
!   state_t state = sm_ctxt.get_state (assign, divisor_sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (divisor_expr), &b))
      {
*************** taint_state_machine::check_for_tainted_d
*** 1426,1435 ****
  	/* The divisor is known to not equal 0: don't warn.  */
  	return;
  
!       tree diag_divisor = sm_ctxt->get_diagnostic_tree (divisor_expr);
!       sm_ctxt->warn (node, assign, divisor_expr,
! 		     make_unique <tainted_divisor> (*this, diag_divisor, b));
!       sm_ctxt->set_next_state (assign, divisor_sval, m_stop);
      }
  }
  
--- 1517,1526 ----
  	/* The divisor is known to not equal 0: don't warn.  */
  	return;
  
!       tree diag_divisor = sm_ctxt.get_diagnostic_tree (divisor_expr);
!       sm_ctxt.warn (node, assign, divisor_expr,
! 		    make_unique <tainted_divisor> (*this, diag_divisor, b));
!       sm_ctxt.set_next_state (assign, divisor_sval, m_stop);
      }
  }
  
*************** region_model::check_region_for_taint (co
*** 1624,1637 ****
  	  }
  	  break;
  
- 	case RK_CAST:
- 	  {
- 	    const cast_region *cast_reg
- 	      = as_a <const cast_region *> (iter_region);
- 	    iter_region = cast_reg->get_original_region ();
- 	    continue;
- 	  }
- 
  	case RK_SIZED:
  	  {
  	    const sized_region *sized_reg
--- 1715,1720 ----
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm.cc gcc-15.1.0/gcc/analyzer/sm.cc
*** gcc-14.2.0/gcc/analyzer/sm.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 41,46 ****
--- 41,47 ----
  #include "analyzer/svalue.h"
  #include "analyzer/program-state.h"
  #include "analyzer/pending-diagnostic.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** state_machine::state::dump_to_pp (pretty
*** 76,88 ****
  
  /* Return a new json::string describing the state.  */
  
! json::value *
  state_machine::state::to_json () const
  {
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
    dump_to_pp (&pp);
!   return new json::string (pp_formatted_text (&pp));
  }
  
  /* class state_machine.  */
--- 77,89 ----
  
  /* Return a new json::string describing the state.  */
  
! std::unique_ptr<json::value>
  state_machine::state::to_json () const
  {
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
    dump_to_pp (&pp);
!   return ::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* class state_machine.  */
*************** state_machine::dump_to_pp (pretty_printe
*** 150,168 ****
     {"name" : str,
      "states" : [str]}.  */
  
! json::object *
  state_machine::to_json () const
  {
!   json::object *sm_obj = new json::object ();
  
!   sm_obj->set ("name", new json::string (m_name));
    {
!     json::array *states_arr = new json::array ();
      unsigned i;
      state *s;
      FOR_EACH_VEC_ELT (m_states, i, s)
        states_arr->append (s->to_json ());
!     sm_obj->set ("states", states_arr);
    }
  
    return sm_obj;
--- 151,169 ----
     {"name" : str,
      "states" : [str]}.  */
  
! std::unique_ptr<json::object>
  state_machine::to_json () const
  {
!   auto sm_obj = ::make_unique<json::object> ();
  
!   sm_obj->set_string ("name", m_name);
    {
!     auto states_arr = ::make_unique<json::array> ();
      unsigned i;
      state *s;
      FOR_EACH_VEC_ELT (m_states, i, s)
        states_arr->append (s->to_json ());
!     sm_obj->set ("states", std::move (states_arr));
    }
  
    return sm_obj;
diff -Nrcpad gcc-14.2.0/gcc/analyzer/sm.h gcc-15.1.0/gcc/analyzer/sm.h
*** gcc-14.2.0/gcc/analyzer/sm.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/sm.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 49,55 ****
  
      const char *get_name () const { return m_name; }
      virtual void dump_to_pp (pretty_printer *pp) const;
!     virtual json::value *to_json () const;
  
      unsigned get_id () const { return m_id; }
  
--- 49,55 ----
  
      const char *get_name () const { return m_name; }
      virtual void dump_to_pp (pretty_printer *pp) const;
!     virtual std::unique_ptr<json::value> to_json () const;
  
      unsigned get_id () const { return m_id; }
  
*************** public:
*** 94,111 ****
    state_t get_state_by_name (const char *name) const;
  
    /* Return true if STMT is a function call recognized by this sm.  */
!   virtual bool on_stmt (sm_context *sm_ctxt,
  			const supernode *node,
  			const gimple *stmt) const = 0;
  
!   virtual void on_phi (sm_context *sm_ctxt ATTRIBUTE_UNUSED,
  		       const supernode *node ATTRIBUTE_UNUSED,
  		       const gphi *phi ATTRIBUTE_UNUSED,
  		       tree rhs ATTRIBUTE_UNUSED) const
    {
    }
  
!   virtual void on_condition (sm_context *sm_ctxt ATTRIBUTE_UNUSED,
  			     const supernode *node ATTRIBUTE_UNUSED,
  			     const gimple *stmt ATTRIBUTE_UNUSED,
  			     const svalue *lhs ATTRIBUTE_UNUSED,
--- 94,111 ----
    state_t get_state_by_name (const char *name) const;
  
    /* Return true if STMT is a function call recognized by this sm.  */
!   virtual bool on_stmt (sm_context &sm_ctxt,
  			const supernode *node,
  			const gimple *stmt) const = 0;
  
!   virtual void on_phi (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  		       const supernode *node ATTRIBUTE_UNUSED,
  		       const gphi *phi ATTRIBUTE_UNUSED,
  		       tree rhs ATTRIBUTE_UNUSED) const
    {
    }
  
!   virtual void on_condition (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  			     const supernode *node ATTRIBUTE_UNUSED,
  			     const gimple *stmt ATTRIBUTE_UNUSED,
  			     const svalue *lhs ATTRIBUTE_UNUSED,
*************** public:
*** 115,121 ****
    }
  
    virtual void
!   on_bounded_ranges (sm_context *sm_ctxt ATTRIBUTE_UNUSED,
  		     const supernode *node ATTRIBUTE_UNUSED,
  		     const gimple *stmt ATTRIBUTE_UNUSED,
  		     const svalue &sval ATTRIBUTE_UNUSED,
--- 115,121 ----
    }
  
    virtual void
!   on_bounded_ranges (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  		     const supernode *node ATTRIBUTE_UNUSED,
  		     const gimple *stmt ATTRIBUTE_UNUSED,
  		     const svalue &sval ATTRIBUTE_UNUSED,
*************** public:
*** 180,186 ****
  
    void dump_to_pp (pretty_printer *pp) const;
  
!   json::object *to_json () const;
  
    state_t get_start_state () const { return m_start; }
  
--- 180,186 ----
  
    void dump_to_pp (pretty_printer *pp) const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    state_t get_start_state () const { return m_start; }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/state-purge.cc gcc-15.1.0/gcc/analyzer/state-purge.cc
*** gcc-14.2.0/gcc/analyzer/state-purge.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/state-purge.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** state_purge_per_ssa_name::process_point
*** 598,614 ****
  		  superedge *sedge
  		    = map.get_sg ().get_intraprocedural_edge_for_call (cedge);
  		  gcc_assert (sedge);
! 		  add_to_worklist 
  		    (function_point::after_supernode (sedge->m_src),
  		     worklist, logger);
  	        }
  	      else
  	        {
! 	          supernode *callernode 
  	            = map.get_sg ().get_supernode_for_stmt (returning_call);
  
  	          gcc_assert (callernode);
! 	          add_to_worklist 
  	            (function_point::after_supernode (callernode),
  		     worklist, logger);
  	         }
--- 598,614 ----
  		  superedge *sedge
  		    = map.get_sg ().get_intraprocedural_edge_for_call (cedge);
  		  gcc_assert (sedge);
! 		  add_to_worklist
  		    (function_point::after_supernode (sedge->m_src),
  		     worklist, logger);
  	        }
  	      else
  	        {
! 	          supernode *callernode
  	            = map.get_sg ().get_supernode_for_stmt (returning_call);
  
  	          gcc_assert (callernode);
! 	          add_to_worklist
  	            (function_point::after_supernode (callernode),
  		     worklist, logger);
  	         }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/state-purge.h gcc-15.1.0/gcc/analyzer/state-purge.h
*** gcc-14.2.0/gcc/analyzer/state-purge.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/state-purge.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/store.cc gcc-15.1.0/gcc/analyzer/store.cc
*** gcc-14.2.0/gcc/analyzer/store.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/store.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 54,59 ****
--- 54,61 ----
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
  #include "stor-layout.h"
+ #include "text-art/tree-widget.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** uncertainty_t::dump_to_pp (pretty_printe
*** 105,117 ****
  DEBUG_FUNCTION void
  uncertainty_t::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* class binding_key.  */
--- 107,115 ----
  DEBUG_FUNCTION void
  uncertainty_t::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
  /* class binding_key.  */
*************** binding_key::make (store_manager *mgr, c
*** 142,154 ****
  DEBUG_FUNCTION void
  binding_key::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Get a description of this binding_key.  */
--- 140,148 ----
  DEBUG_FUNCTION void
  binding_key::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
  /* Get a description of this binding_key.  */
*************** bit_range::dump_to_pp (pretty_printer *p
*** 228,248 ****
  DEBUG_FUNCTION void
  bit_range::dump () const
  {
!   pretty_printer pp;
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Generate a JSON value for this bit_range.
     This is intended for debugging the analyzer rather
     than serialization.  */
  
! json::object *
  bit_range::to_json () const
  {
!   json::object *obj = new json::object ();
    obj->set ("start_bit_offset",
  	    bit_offset_to_json (m_start_bit_offset));
    obj->set ("size_in_bits",
--- 222,240 ----
  DEBUG_FUNCTION void
  bit_range::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
    pp_newline (&pp);
  }
  
  /* Generate a JSON value for this bit_range.
     This is intended for debugging the analyzer rather
     than serialization.  */
  
! std::unique_ptr<json::object>
  bit_range::to_json () const
  {
!   auto obj = ::make_unique<json::object> ();
    obj->set ("start_bit_offset",
  	    bit_offset_to_json (m_start_bit_offset));
    obj->set ("size_in_bits",
*************** byte_range::dump_to_pp (pretty_printer *
*** 504,524 ****
  DEBUG_FUNCTION void
  byte_range::dump () const
  {
!   pretty_printer pp;
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Generate a JSON value for this byte_range.
     This is intended for debugging the analyzer rather
     than serialization.  */
  
! json::object *
  byte_range::to_json () const
  {
!   json::object *obj = new json::object ();
    obj->set ("start_byte_offset",
  	    byte_offset_to_json (m_start_byte_offset));
    obj->set ("size_in_bytes",
--- 496,514 ----
  DEBUG_FUNCTION void
  byte_range::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp);
    pp_newline (&pp);
  }
  
  /* Generate a JSON value for this byte_range.
     This is intended for debugging the analyzer rather
     than serialization.  */
  
! std::unique_ptr<json::object>
  byte_range::to_json () const
  {
!   auto obj = ::make_unique<json::object> ();
    obj->set ("start_byte_offset",
  	    byte_offset_to_json (m_start_byte_offset));
    obj->set ("size_in_bytes",
*************** binding_map::dump_to_pp (pretty_printer
*** 771,793 ****
  DEBUG_FUNCTION void
  binding_map::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Return a new json::object of the form
     {KEY_DESC : SVALUE_DESC,
      ...for the various key/value pairs in this binding_map}.  */
  
! json::object *
  binding_map::to_json () const
  {
!   json::object *map_obj = new json::object ();
  
    auto_vec <const binding_key *> binding_keys;
    for (map_t::iterator iter = m_map.begin ();
--- 761,779 ----
  DEBUG_FUNCTION void
  binding_map::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
  }
  
  /* Return a new json::object of the form
     {KEY_DESC : SVALUE_DESC,
      ...for the various key/value pairs in this binding_map}.  */
  
! std::unique_ptr<json::object>
  binding_map::to_json () const
  {
!   auto map_obj = ::make_unique<json::object> ();
  
    auto_vec <const binding_key *> binding_keys;
    for (map_t::iterator iter = m_map.begin ();
*************** binding_map::to_json () const
*** 810,815 ****
--- 796,851 ----
    return map_obj;
  }
  
+ /* Add a child to PARENT_WIDGET expressing a binding between
+    KEY and SVAL.  */
+ 
+ static void
+ add_binding_to_tree_widget (text_art::tree_widget &parent_widget,
+ 			    const text_art::dump_widget_info &dwi,
+ 			    const binding_key *key,
+ 			    const svalue *sval)
+ {
+   pretty_printer the_pp;
+   pretty_printer * const pp = &the_pp;
+   pp_format_decoder (pp) = default_tree_printer;
+   pp_show_color (pp) = true;
+   const bool simple = true;
+ 
+   key->dump_to_pp (pp, simple);
+   pp_string (pp, ": ");
+   if (tree t = sval->get_type ())
+     dump_quoted_tree (pp, t);
+   pp_string (pp, " {");
+   sval->dump_to_pp (pp, simple);
+   pp_string (pp, "}");
+ 
+   parent_widget.add_child (text_art::tree_widget::make (dwi, pp));
+ }
+ 
+ void
+ binding_map::add_to_tree_widget (text_art::tree_widget &parent_widget,
+ 				 const text_art::dump_widget_info &dwi) const
+ {
+   auto_vec <const binding_key *> binding_keys;
+   for (map_t::iterator iter = m_map.begin ();
+        iter != m_map.end (); ++iter)
+     {
+       const binding_key *key = (*iter).first;
+       binding_keys.safe_push (key);
+     }
+   binding_keys.qsort (binding_key::cmp_ptrs);
+ 
+   const binding_key *key;
+   unsigned i;
+   FOR_EACH_VEC_ELT (binding_keys, i, key)
+     {
+       const svalue *sval = *const_cast <map_t &> (m_map).get (key);
+       add_binding_to_tree_widget (parent_widget, dwi,
+ 				  key, sval);
+     }
+ }
+ 
+ 
  /* Comparator for imposing an order on binding_maps.  */
  
  int
*************** get_subregion_within_ctor (const region
*** 869,874 ****
--- 905,941 ----
      }
  }
  
+ /* Get the child region of PARENT_REG based upon (INDEX, VALUE) within a
+    CONSTRUCTOR.   */
+ 
+ static const region *
+ get_subregion_within_ctor_for_ctor_pair (const region *parent_reg,
+ 					 tree index,
+ 					 tree value,
+ 					 region_model_manager *mgr)
+ {
+   if (TREE_CODE (index) == INTEGER_CST
+       && TREE_CODE (value) == RAW_DATA_CST)
+     {
+       /* Special-case; see tree.def's description of CONSTRUCTOR.
+ 	 We have RAW_DATA_LENGTH of bytes, starting at INDEX's start.  */
+       const region *start_reg
+ 	= get_subregion_within_ctor (parent_reg, index, mgr);
+       /* Build a bit range, relative to PARENT_REG.  */
+       region_offset start_offset = start_reg->get_offset (mgr);
+ 
+       if (!start_offset.concrete_p ())
+ 	return nullptr;
+       bit_offset_t start_bit_offset = start_offset.get_bit_offset ();
+       int length = RAW_DATA_LENGTH (value);
+       bit_range bits (start_bit_offset, length * BITS_PER_UNIT);
+ 
+       return mgr->get_bit_range (parent_reg, NULL_TREE, bits);
+     }
+ 
+   return get_subregion_within_ctor (parent_reg, index, mgr);
+ }
+ 
  /* Get the svalue for VAL, a non-CONSTRUCTOR value within a CONSTRUCTOR.  */
  
  static const svalue *
*************** binding_map::apply_ctor_pair_to_child_re
*** 999,1005 ****
  					      tree index, tree val)
  {
    const region *child_reg
!     = get_subregion_within_ctor (parent_reg, index, mgr);
    if (TREE_CODE (val) == CONSTRUCTOR)
      return apply_ctor_to_region (child_reg, val, mgr);
    else
--- 1066,1074 ----
  					      tree index, tree val)
  {
    const region *child_reg
!     = get_subregion_within_ctor_for_ctor_pair (parent_reg, index, val, mgr);
!   if (!child_reg)
!     return false;
    if (TREE_CODE (val) == CONSTRUCTOR)
      return apply_ctor_to_region (child_reg, val, mgr);
    else
*************** binding_cluster::dump_to_pp (pretty_prin
*** 1348,1364 ****
  DEBUG_FUNCTION void
  binding_cluster::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    pp_string (&pp, "  cluster for: ");
    m_base_region->dump_to_pp (&pp, simple);
    pp_string (&pp, ": ");
    pp_newline (&pp);
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Assert that this object is valid.  */
--- 1417,1429 ----
  DEBUG_FUNCTION void
  binding_cluster::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    pp_string (&pp, "  cluster for: ");
    m_base_region->dump_to_pp (&pp, simple);
    pp_string (&pp, ": ");
    pp_newline (&pp);
    dump_to_pp (&pp, simple, true);
    pp_newline (&pp);
  }
  
  /* Assert that this object is valid.  */
*************** binding_cluster::validate () const
*** 1387,1404 ****
      "touched": true/false,
      "map" : object for the binding_map.  */
  
! json::object *
  binding_cluster::to_json () const
  {
!   json::object *cluster_obj = new json::object ();
  
!   cluster_obj->set ("escaped", new json::literal (m_escaped));
!   cluster_obj->set ("touched", new json::literal (m_touched));
    cluster_obj->set ("map", m_map.to_json ());
  
    return cluster_obj;
  }
  
  /* Add a binding of SVAL of kind KIND to REG, unpacking SVAL if it is a
     compound_sval.  */
  
--- 1452,1511 ----
      "touched": true/false,
      "map" : object for the binding_map.  */
  
! std::unique_ptr<json::object>
  binding_cluster::to_json () const
  {
!   auto cluster_obj = ::make_unique<json::object> ();
  
!   cluster_obj->set_bool ("escaped", m_escaped);
!   cluster_obj->set_bool ("touched", m_touched);
    cluster_obj->set ("map", m_map.to_json ());
  
    return cluster_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ binding_cluster::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 				   store_manager *mgr) const
+ {
+   pretty_printer the_pp;
+   pretty_printer * const pp = &the_pp;
+   pp_format_decoder (pp) = default_tree_printer;
+   pp_show_color (pp) = true;
+   const bool simple = true;
+ 
+   m_base_region->dump_to_pp (pp, simple);
+   pp_string (pp, ": ");
+ 
+   if (const svalue *sval = maybe_get_simple_value (mgr))
+     {
+       /* Special-case to simplify dumps for the common case where
+ 	 we just have one value directly bound to the whole of a
+ 	 region.  */
+       sval->dump_to_pp (pp, simple);
+       if (escaped_p ())
+ 	pp_string (pp, " (ESCAPED)");
+       if (touched_p ())
+ 	pp_string (pp, " (TOUCHED)");
+ 
+       return text_art::tree_widget::make (dwi, pp);
+     }
+   else
+     {
+       if (escaped_p ())
+ 	pp_string (pp, " (ESCAPED)");
+       if (touched_p ())
+ 	pp_string (pp, " (TOUCHED)");
+ 
+       std::unique_ptr<text_art::tree_widget> cluster_widget
+ 	(text_art::tree_widget::make (dwi, pp));
+ 
+       m_map.add_to_tree_widget (*cluster_widget, dwi);
+ 
+       return cluster_widget;
+     }
+ }
+ 
  /* Add a binding of SVAL of kind KIND to REG, unpacking SVAL if it is a
     compound_sval.  */
  
*************** binding_cluster::get_representative_path
*** 2187,2192 ****
--- 2294,2300 ----
  					       svalue_set *visited,
  					       const region *base_reg,
  					       const svalue *sval,
+ 					       logger *logger,
  					       auto_vec<path_var> *out_pvs)
    const
  {
*************** binding_cluster::get_representative_path
*** 2214,2220 ****
  		{
  		  if (path_var pv
  		      = model->get_representative_path_var (subregion,
! 							    visited))
  		    append_pathvar_with_type (pv, sval->get_type (), out_pvs);
  		}
  	    }
--- 2322,2329 ----
  		{
  		  if (path_var pv
  		      = model->get_representative_path_var (subregion,
! 							    visited,
! 							    logger))
  		    append_pathvar_with_type (pv, sval->get_type (), out_pvs);
  		}
  	    }
*************** binding_cluster::get_representative_path
*** 2223,2229 ****
  	      const symbolic_binding *skey = (const symbolic_binding *)key;
  	      if (path_var pv
  		  = model->get_representative_path_var (skey->get_region (),
! 							visited))
  		append_pathvar_with_type (pv, sval->get_type (), out_pvs);
  	    }
  	}
--- 2332,2339 ----
  	      const symbolic_binding *skey = (const symbolic_binding *)key;
  	      if (path_var pv
  		  = model->get_representative_path_var (skey->get_region (),
! 							visited,
! 							logger))
  		append_pathvar_with_type (pv, sval->get_type (), out_pvs);
  	    }
  	}
*************** store::dump_to_pp (pretty_printer *pp, b
*** 2539,2551 ****
  DEBUG_FUNCTION void
  store::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple, true, NULL);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Assert that this object is valid.  */
--- 2649,2657 ----
  DEBUG_FUNCTION void
  store::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple, true, NULL);
    pp_newline (&pp);
  }
  
  /* Assert that this object is valid.  */
*************** store::validate () const
*** 2563,2572 ****
      ...for each parent region,
      "called_unknown_fn": true/false}.  */
  
! json::object *
  store::to_json () const
  {
!   json::object *store_obj = new json::object ();
  
    /* Sort into some deterministic order.  */
    auto_vec<const region *> base_regions;
--- 2669,2678 ----
      ...for each parent region,
      "called_unknown_fn": true/false}.  */
  
! std::unique_ptr<json::object>
  store::to_json () const
  {
!   auto store_obj = ::make_unique<json::object> ();
  
    /* Sort into some deterministic order.  */
    auto_vec<const region *> base_regions;
*************** store::to_json () const
*** 2589,2595 ****
      {
        gcc_assert (parent_reg);
  
!       json::object *clusters_in_parent_reg_obj = new json::object ();
  
        const region *base_reg;
        unsigned j;
--- 2695,2701 ----
      {
        gcc_assert (parent_reg);
  
!       auto clusters_in_parent_reg_obj = ::make_unique<json::object> ();
  
        const region *base_reg;
        unsigned j;
*************** store::to_json () const
*** 2605,2618 ****
  					   cluster->to_json ());
  	}
        label_text parent_reg_desc = parent_reg->get_desc ();
!       store_obj->set (parent_reg_desc.get (), clusters_in_parent_reg_obj);
      }
  
!   store_obj->set ("called_unknown_fn", new json::literal (m_called_unknown_fn));
  
    return store_obj;
  }
  
  /* Get any svalue bound to REG, or NULL.  */
  
  const svalue *
--- 2711,2787 ----
  					   cluster->to_json ());
  	}
        label_text parent_reg_desc = parent_reg->get_desc ();
!       store_obj->set (parent_reg_desc.get (),
! 		      std::move (clusters_in_parent_reg_obj));
      }
  
!   store_obj->set_bool ("called_unknown_fn", m_called_unknown_fn);
  
    return store_obj;
  }
  
+ std::unique_ptr<text_art::tree_widget>
+ store::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 			 store_manager *mgr) const
+ {
+   std::unique_ptr<text_art::tree_widget> store_widget
+     (text_art::tree_widget::make (dwi, "Store"));
+ 
+   store_widget->add_child
+     (text_art::tree_widget::from_fmt (dwi, nullptr,
+ 				      "m_called_unknown_fn: %s",
+ 				      m_called_unknown_fn ? "true" : "false"));
+ 
+     /* Sort into some deterministic order.  */
+   auto_vec<const region *> base_regions;
+   for (cluster_map_t::iterator iter = m_cluster_map.begin ();
+        iter != m_cluster_map.end (); ++iter)
+     {
+       const region *base_reg = (*iter).first;
+       base_regions.safe_push (base_reg);
+     }
+   base_regions.qsort (region::cmp_ptr_ptr);
+ 
+   /* Gather clusters, organize by parent region, so that we can group
+      together locals, globals, etc.  */
+   auto_vec<const region *> parent_regions;
+   get_sorted_parent_regions (&parent_regions, base_regions);
+ 
+   const region *parent_reg;
+   unsigned i;
+   FOR_EACH_VEC_ELT (parent_regions, i, parent_reg)
+     {
+       gcc_assert (parent_reg);
+ 
+       pretty_printer the_pp;
+       pretty_printer * const pp = &the_pp;
+       pp_format_decoder (pp) = default_tree_printer;
+       pp_show_color (pp) = true;
+       const bool simple = true;
+ 
+       parent_reg->dump_to_pp (pp, simple);
+ 
+       std::unique_ptr<text_art::tree_widget> parent_reg_widget
+ 	(text_art::tree_widget::make (dwi, pp));
+ 
+       const region *base_reg;
+       unsigned j;
+       FOR_EACH_VEC_ELT (base_regions, j, base_reg)
+ 	{
+ 	  /* This is O(N * M), but N ought to be small.  */
+ 	  if (base_reg->get_parent_region () != parent_reg)
+ 	    continue;
+ 	  binding_cluster *cluster
+ 	    = *const_cast<cluster_map_t &> (m_cluster_map).get (base_reg);
+ 	  parent_reg_widget->add_child
+ 	    (cluster->make_dump_widget (dwi, mgr));
+ 	}
+       store_widget->add_child (std::move (parent_reg_widget));
+     }
+ 
+   return store_widget;
+ }
+ 
  /* Get any svalue bound to REG, or NULL.  */
  
  const svalue *
*************** void
*** 3126,3131 ****
--- 3295,3301 ----
  store::get_representative_path_vars (const region_model *model,
  				     svalue_set *visited,
  				     const svalue *sval,
+ 				     logger *logger,
  				     auto_vec<path_var> *out_pvs) const
  {
    gcc_assert (sval);
*************** store::get_representative_path_vars (con
*** 3137,3142 ****
--- 3307,3313 ----
        const region *base_reg = (*iter).first;
        binding_cluster *cluster = (*iter).second;
        cluster->get_representative_path_vars (model, visited, base_reg, sval,
+ 					     logger,
  					     out_pvs);
      }
  
*************** store::get_representative_path_vars (con
*** 3144,3150 ****
      {
        const region *reg = init_sval->get_region ();
        if (path_var pv = model->get_representative_path_var (reg,
! 							    visited))
  	out_pvs->safe_push (pv);
      }
  }
--- 3315,3322 ----
      {
        const region *reg = init_sval->get_region ();
        if (path_var pv = model->get_representative_path_var (reg,
! 							    visited,
! 							    logger))
  	out_pvs->safe_push (pv);
      }
  }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/store.h gcc-15.1.0/gcc/analyzer/store.h
*** gcc-14.2.0/gcc/analyzer/store.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/store.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,28 ----
  #ifndef GCC_ANALYZER_STORE_H
  #define GCC_ANALYZER_STORE_H
  
+ #include "text-art/tree-widget.h"
+ 
  /* Implementation of the region-based ternary model described in:
       "A Memory Model for Static Analysis of C Programs"
        (Zhongxing Xu, Ted Kremenek, and Jian Zhang)
*************** struct bit_range
*** 237,243 ****
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
!   json::object *to_json () const;
  
    bool empty_p () const
    {
--- 239,245 ----
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    bool empty_p () const
    {
*************** struct byte_range
*** 313,319 ****
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
!   json::object *to_json () const;
  
    bool empty_p () const
    {
--- 315,321 ----
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    bool empty_p () const
    {
*************** public:
*** 544,550 ****
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
!   json::object *to_json () const;
  
    bool apply_ctor_to_region (const region *parent_reg, tree ctor,
  			     region_model_manager *mgr);
--- 546,555 ----
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   void add_to_tree_widget (text_art::tree_widget &parent_widget,
! 			   const text_art::dump_widget_info &dwi) const;
  
    bool apply_ctor_to_region (const region *parent_reg, tree ctor,
  			     region_model_manager *mgr);
*************** public:
*** 610,616 ****
  
    void validate () const;
  
!   json::object *to_json () const;
  
    void bind (store_manager *mgr, const region *, const svalue *);
  
--- 615,625 ----
  
    void validate () const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi,
! 		    store_manager *mgr) const;
  
    void bind (store_manager *mgr, const region *, const svalue *);
  
*************** public:
*** 672,677 ****
--- 681,687 ----
  				     svalue_set *visited,
  				     const region *base_reg,
  				     const svalue *sval,
+ 				     logger *logger,
  				     auto_vec<path_var> *out_pvs) const;
  
    const svalue *maybe_get_simple_value (store_manager *mgr) const;
*************** public:
*** 748,754 ****
  
    void validate () const;
  
!   json::object *to_json () const;
  
    const svalue *get_any_binding (store_manager *mgr, const region *reg) const;
  
--- 758,768 ----
  
    void validate () const;
  
!   std::unique_ptr<json::object> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const text_art::dump_widget_info &dwi,
! 		    store_manager *mgr) const;
  
    const svalue *get_any_binding (store_manager *mgr, const region *reg) const;
  
*************** public:
*** 793,798 ****
--- 807,813 ----
    void get_representative_path_vars (const region_model *model,
  				     svalue_set *visited,
  				     const svalue *sval,
+ 				     logger *logger,
  				     auto_vec<path_var> *out_pvs) const;
  
    cluster_map_t::iterator begin () const { return m_cluster_map.begin (); }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/supergraph.cc gcc-15.1.0/gcc/analyzer/supergraph.cc
*** gcc-14.2.0/gcc/analyzer/supergraph.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/supergraph.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
*************** along with GCC; see the file COPYING3.
*** 54,59 ****
--- 53,59 ----
  #include "tree-cfg.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-logging.h"
+ #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
*************** supergraph::supergraph (logger *logger)
*** 201,214 ****
  	          // maybe call is via a function pointer
  	          if (gcall *call = dyn_cast<gcall *> (stmt))
  	          {
! 	            cgraph_edge *edge 
  		      = cgraph_node::get (fun->decl)->get_edge (stmt);
  	            if (!edge || !edge->callee)
  	            {
  	              supernode *old_node_for_stmts = node_for_stmts;
  	              node_for_stmts = add_node (fun, bb, call, NULL);
  
! 	              superedge *sedge 
  	                = new callgraph_superedge (old_node_for_stmts,
  	                  			   node_for_stmts,
  	                  			   SUPEREDGE_INTRAPROCEDURAL_CALL,
--- 201,214 ----
  	          // maybe call is via a function pointer
  	          if (gcall *call = dyn_cast<gcall *> (stmt))
  	          {
! 	            cgraph_edge *edge
  		      = cgraph_node::get (fun->decl)->get_edge (stmt);
  	            if (!edge || !edge->callee)
  	            {
  	              supernode *old_node_for_stmts = node_for_stmts;
  	              node_for_stmts = add_node (fun, bb, call, NULL);
  
! 	              superedge *sedge
  	                = new callgraph_superedge (old_node_for_stmts,
  	                  			   node_for_stmts,
  	                  			   SUPEREDGE_INTRAPROCEDURAL_CALL,
*************** supergraph::dump_dot_to_pp (pretty_print
*** 437,452 ****
  void
  supergraph::dump_dot_to_file (FILE *fp, const dump_args_t &dump_args) const
  {
!   pretty_printer *pp = global_dc->printer->clone ();
!   pp_show_color (pp) = 0;
    /* %qE in logs for SSA_NAMEs should show the ssa names, rather than
       trying to prettify things by showing the underlying var.  */
!   pp_format_decoder (pp) = default_tree_printer;
  
!   pp->buffer->stream = fp;
!   dump_dot_to_pp (pp, dump_args);
!   pp_flush (pp);
!   delete pp;
  }
  
  /* Dump this graph in .dot format to PATH, using DUMP_ARGS.  */
--- 437,451 ----
  void
  supergraph::dump_dot_to_file (FILE *fp, const dump_args_t &dump_args) const
  {
!   std::unique_ptr<pretty_printer> pp (global_dc->clone_printer ());
!   pp_show_color (pp.get ()) = 0;
    /* %qE in logs for SSA_NAMEs should show the ssa names, rather than
       trying to prettify things by showing the underlying var.  */
!   pp_format_decoder (pp.get ()) = default_tree_printer;
  
!   pp->set_output_stream (fp);
!   dump_dot_to_pp (pp.get (), dump_args);
!   pp_flush (pp.get ());
  }
  
  /* Dump this graph in .dot format to PATH, using DUMP_ARGS.  */
*************** supergraph::dump_dot (const char *path,
*** 463,491 ****
     {"nodes" : [objs for snodes],
      "edges" : [objs for sedges]}.  */
  
! json::object *
  supergraph::to_json () const
  {
!   json::object *sgraph_obj = new json::object ();
  
    /* Nodes.  */
    {
!     json::array *nodes_arr = new json::array ();
      unsigned i;
      supernode *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
        nodes_arr->append (n->to_json ());
!     sgraph_obj->set ("nodes", nodes_arr);
    }
  
    /* Edges.  */
    {
!     json::array *edges_arr = new json::array ();
      unsigned i;
      superedge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
        edges_arr->append (n->to_json ());
!     sgraph_obj->set ("edges", edges_arr);
    }
  
    return sgraph_obj;
--- 462,490 ----
     {"nodes" : [objs for snodes],
      "edges" : [objs for sedges]}.  */
  
! std::unique_ptr<json::object>
  supergraph::to_json () const
  {
!   auto sgraph_obj = ::make_unique<json::object> ();
  
    /* Nodes.  */
    {
!     auto nodes_arr = ::make_unique<json::array> ();
      unsigned i;
      supernode *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
        nodes_arr->append (n->to_json ());
!     sgraph_obj->set ("nodes", std::move (nodes_arr));
    }
  
    /* Edges.  */
    {
!     auto edges_arr = ::make_unique<json::array> ();
      unsigned i;
      superedge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
        edges_arr->append (n->to_json ());
!     sgraph_obj->set ("edges", std::move (edges_arr));
    }
  
    return sgraph_obj;
*************** supernode::dump_dot_id (pretty_printer *
*** 718,745 ****
      "phis": [str],
      "stmts" : [str]}.  */
  
! json::object *
  supernode::to_json () const
  {
!   json::object *snode_obj = new json::object ();
  
!   snode_obj->set ("idx", new json::integer_number (m_index));
!   snode_obj->set ("bb_idx", new json::integer_number (m_bb->index));
    if (function *fun = get_function ())
!     snode_obj->set ("fun", new json::string (function_name (fun)));
  
    if (m_returning_call)
      {
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_gimple_stmt_1 (&pp, m_returning_call, 0, (dump_flags_t)0);
!       snode_obj->set ("returning_call",
! 		      new json::string (pp_formatted_text (&pp)));
      }
  
    /* Phi nodes.  */
    {
!     json::array *phi_arr = new json::array ();
      for (gphi_iterator gpi = const_cast<supernode *> (this)->start_phis ();
  	 !gsi_end_p (gpi); gsi_next (&gpi))
        {
--- 717,743 ----
      "phis": [str],
      "stmts" : [str]}.  */
  
! std::unique_ptr<json::object>
  supernode::to_json () const
  {
!   auto snode_obj = ::make_unique<json::object> ();
  
!   snode_obj->set_integer ("idx", m_index);
!   snode_obj->set_integer ("bb_idx", m_bb->index);
    if (function *fun = get_function ())
!     snode_obj->set_string ("fun", function_name (fun));
  
    if (m_returning_call)
      {
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_gimple_stmt_1 (&pp, m_returning_call, 0, (dump_flags_t)0);
!       snode_obj->set_string ("returning_call", pp_formatted_text (&pp));
      }
  
    /* Phi nodes.  */
    {
!     auto phi_arr = ::make_unique<json::array> ();
      for (gphi_iterator gpi = const_cast<supernode *> (this)->start_phis ();
  	 !gsi_end_p (gpi); gsi_next (&gpi))
        {
*************** supernode::to_json () const
*** 747,760 ****
  	pretty_printer pp;
  	pp_format_decoder (&pp) = default_tree_printer;
  	pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
! 	phi_arr->append (new json::string (pp_formatted_text (&pp)));
        }
!     snode_obj->set ("phis", phi_arr);
    }
  
    /* Statements.  */
    {
!     json::array *stmt_arr = new json::array ();
      int i;
      gimple *stmt;
      FOR_EACH_VEC_ELT (m_stmts, i, stmt)
--- 745,758 ----
  	pretty_printer pp;
  	pp_format_decoder (&pp) = default_tree_printer;
  	pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
! 	phi_arr->append_string (pp_formatted_text (&pp));
        }
!     snode_obj->set ("phis", std::move (phi_arr));
    }
  
    /* Statements.  */
    {
!     auto stmt_arr = ::make_unique<json::array> ();
      int i;
      gimple *stmt;
      FOR_EACH_VEC_ELT (m_stmts, i, stmt)
*************** supernode::to_json () const
*** 762,770 ****
  	pretty_printer pp;
  	pp_format_decoder (&pp) = default_tree_printer;
  	pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
! 	stmt_arr->append (new json::string (pp_formatted_text (&pp)));
        }
!     snode_obj->set ("stmts", stmt_arr);
    }
  
    return snode_obj;
--- 760,768 ----
  	pretty_printer pp;
  	pp_format_decoder (&pp) = default_tree_printer;
  	pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
! 	stmt_arr->append_string (pp_formatted_text (&pp));
        }
!     snode_obj->set ("stmts", std::move (stmt_arr));
    }
  
    return snode_obj;
*************** superedge::dump (pretty_printer *pp) con
*** 899,911 ****
  DEBUG_FUNCTION void
  superedge::dump () const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump (&pp);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Implementation of dedge::dump_dot for superedges.
--- 897,905 ----
  DEBUG_FUNCTION void
  superedge::dump () const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump (&pp);
    pp_newline (&pp);
  }
  
  /* Implementation of dedge::dump_dot for superedges.
*************** superedge::dump_dot (graphviz_out *gv, c
*** 986,1004 ****
      "dst_idx": int, the index of the destination supernode,
      "desc"   : str.  */
  
! json::object *
  superedge::to_json () const
  {
!   json::object *sedge_obj = new json::object ();
!   sedge_obj->set ("kind", new json::string (edge_kind_to_string (m_kind)));
!   sedge_obj->set ("src_idx", new json::integer_number (m_src->m_index));
!   sedge_obj->set ("dst_idx", new json::integer_number (m_dest->m_index));
  
    {
      pretty_printer pp;
      pp_format_decoder (&pp) = default_tree_printer;
      dump_label_to_pp (&pp, false);
!     sedge_obj->set ("desc", new json::string (pp_formatted_text (&pp)));
    }
  
    return sedge_obj;
--- 980,998 ----
      "dst_idx": int, the index of the destination supernode,
      "desc"   : str.  */
  
! std::unique_ptr<json::object>
  superedge::to_json () const
  {
!   auto sedge_obj = ::make_unique<json::object> ();
!   sedge_obj->set_string ("kind", edge_kind_to_string (m_kind));
!   sedge_obj->set_integer ("src_idx", m_src->m_index);
!   sedge_obj->set_integer ("dst_idx", m_dest->m_index);
  
    {
      pretty_printer pp;
      pp_format_decoder (&pp) = default_tree_printer;
      dump_label_to_pp (&pp, false);
!     sedge_obj->set_string ("desc", pp_formatted_text (&pp));
    }
  
    return sedge_obj;
*************** callgraph_superedge::get_call_stmt () co
*** 1272,1278 ****
  {
    if (m_cedge)
      return m_cedge->call_stmt;
!   
    return m_src->get_final_call ();
  }
  
--- 1266,1272 ----
  {
    if (m_cedge)
      return m_cedge->call_stmt;
! 
    return m_src->get_final_call ();
  }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/supergraph.h gcc-15.1.0/gcc/analyzer/supergraph.h
*** gcc-14.2.0/gcc/analyzer/supergraph.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/supergraph.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 168,174 ****
    void dump_dot_to_file (FILE *fp, const dump_args_t &) const;
    void dump_dot (const char *path, const dump_args_t &) const;
  
!   json::object *to_json () const;
  
    int num_nodes () const { return m_nodes.length (); }
    int num_edges () const { return m_edges.length (); }
--- 168,174 ----
    void dump_dot_to_file (FILE *fp, const dump_args_t &) const;
    void dump_dot (const char *path, const dump_args_t &) const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    int num_nodes () const { return m_nodes.length (); }
    int num_edges () const { return m_edges.length (); }
*************** class supernode : public dnode<supergrap
*** 255,261 ****
    void dump_dot (graphviz_out *gv, const dump_args_t &args) const override;
    void dump_dot_id (pretty_printer *pp) const;
  
!   json::object *to_json () const;
  
    location_t get_start_location () const;
    location_t get_end_location () const;
--- 255,261 ----
    void dump_dot (graphviz_out *gv, const dump_args_t &args) const override;
    void dump_dot_id (pretty_printer *pp) const;
  
!   std::unique_ptr<json::object> to_json () const;
  
    location_t get_start_location () const;
    location_t get_end_location () const;
*************** class superedge : public dedge<supergrap
*** 323,329 ****
    virtual void dump_label_to_pp (pretty_printer *pp,
  				 bool user_facing) const = 0;
  
!   json::object *to_json () const;
  
    enum edge_kind get_kind () const { return m_kind; }
  
--- 323,329 ----
    virtual void dump_label_to_pp (pretty_printer *pp,
  				 bool user_facing) const = 0;
  
!   std::unique_ptr<json::object> to_json () const;
  
    enum edge_kind get_kind () const { return m_kind; }
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/svalue.cc gcc-15.1.0/gcc/analyzer/svalue.cc
*** gcc-14.2.0/gcc/analyzer/svalue.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/svalue.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Symbolic values.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
*************** along with GCC; see the file COPYING3.
*** 49,54 ****
--- 49,56 ----
  #include "analyzer/region-model.h"
  #include "diagnostic.h"
  #include "tree-diagnostic.h"
+ #include "make-unique.h"
+ #include "text-art/dump.h"
  
  #if ENABLE_ANALYZER
  
*************** static int cmp_csts_and_types (const_tre
*** 60,77 ****
  
  /* class svalue.  */
  
  /* Dump a representation of this svalue to stderr.  */
  
  DEBUG_FUNCTION void
  svalue::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
-   pp_flush (&pp);
  }
  
  /* Generate a textual representation of this svalue for debugging purposes.  */
--- 62,93 ----
  
  /* class svalue.  */
  
+ /* Dump a tree-like representation of this svalue and its constituent symbols
+    to stderr, using global_dc's colorization and theming options.
+ 
+    For example:
+    . (gdb) call index_sval->dump()
+    . (27): ‘int’: initial_svalue
+    . ╰─ m_reg: (26): ‘int’: decl_region(‘x_10(D)’)
+    .    ╰─ parent: (9): frame_region(‘test_bitmask_2’, index: 0, depth: 1)
+    .       ╰─ parent: (1): stack region
+    .          ╰─ parent: (0): root region
+   */
+ 
+ DEBUG_FUNCTION void
+ svalue::dump () const
+ {
+   text_art::dump (*this);
+ }
+ 
  /* Dump a representation of this svalue to stderr.  */
  
  DEBUG_FUNCTION void
  svalue::dump (bool simple) const
  {
!   tree_dump_pretty_printer pp (stderr);
    dump_to_pp (&pp, simple);
    pp_newline (&pp);
  }
  
  /* Generate a textual representation of this svalue for debugging purposes.  */
*************** svalue::get_desc (bool simple) const
*** 87,97 ****
  
  /* Return a new json::string describing the svalue.  */
  
! json::value *
  svalue::to_json () const
  {
    label_text desc = get_desc (true);
!   json::value *sval_js = new json::string (desc.get ());
    return sval_js;
  }
  
--- 103,113 ----
  
  /* Return a new json::string describing the svalue.  */
  
! std::unique_ptr<json::value>
  svalue::to_json () const
  {
    label_text desc = get_desc (true);
!   auto sval_js = ::make_unique<json::string> (desc.get ());
    return sval_js;
  }
  
*************** svalue::maybe_print_for_user (pretty_pri
*** 203,208 ****
--- 219,255 ----
    return false;
  }
  
+ /* Use DWI to create a text_art::widget describing this svalue in
+    a tree-like form, using PREFIX as a prefix (e.g. for field names).
+    We do this via two vfuncs:
+    (a) print_dump_widget_label, to populate the text of a tree_widget, and
+    (b) add_dump_widget_children, to add children to the tree_widget.  */
+ 
+ std::unique_ptr<text_art::tree_widget>
+ svalue::make_dump_widget (const text_art::dump_widget_info &dwi,
+ 			  const char *prefix) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = true;
+ 
+   if (prefix)
+     pp_printf (&pp, "%s: ", prefix);
+ 
+   pp_printf (&pp, "(%i): ", get_id ());
+   if (get_type ())
+     pp_printf (&pp, "%qT: ", get_type ());
+ 
+   print_dump_widget_label (&pp);
+ 
+   std::unique_ptr<text_art::tree_widget> w
+     (text_art::tree_widget::make (dwi, &pp));
+ 
+   add_dump_widget_children (*w, dwi);
+ 
+   return w;
+ }
+ 
  /* If this svalue is a constant_svalue, return the underlying tree constant.
     Otherwise return NULL_TREE.  */
  
*************** cmp_csts_same_type (const_tree cst1, con
*** 420,427 ****
      case INTEGER_CST:
        return tree_int_cst_compare (cst1, cst2);
      case STRING_CST:
!       return strcmp (TREE_STRING_POINTER (cst1),
! 		     TREE_STRING_POINTER (cst2));
      case REAL_CST:
        /* Impose an arbitrary but deterministic order.  */
        return memcmp (TREE_REAL_CST_PTR (cst1),
--- 467,487 ----
      case INTEGER_CST:
        return tree_int_cst_compare (cst1, cst2);
      case STRING_CST:
!       if (TREE_STRING_LENGTH (cst1) < TREE_STRING_LENGTH (cst2))
! 	return -1;
!       if (TREE_STRING_LENGTH (cst1) > TREE_STRING_LENGTH (cst2))
! 	return 1;
!       return memcmp (TREE_STRING_POINTER (cst1),
! 		     TREE_STRING_POINTER (cst2),
! 		     TREE_STRING_LENGTH (cst1));
!     case RAW_DATA_CST:
!       if (RAW_DATA_LENGTH (cst1) < RAW_DATA_LENGTH (cst2))
! 	return -1;
!       if (RAW_DATA_LENGTH (cst1) > RAW_DATA_LENGTH (cst2))
! 	return 1;
!       return memcmp (RAW_DATA_POINTER (cst1),
! 		     RAW_DATA_POINTER (cst2),
! 		     RAW_DATA_LENGTH (cst1));
      case REAL_CST:
        /* Impose an arbitrary but deterministic order.  */
        return memcmp (TREE_REAL_CST_PTR (cst1),
*************** region_svalue::dump_to_pp (pretty_printe
*** 842,847 ****
--- 902,927 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    region_svalue.  */
+ 
+ void
+ region_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "region_svalue: %qs", "&");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    region_svalue.  */
+ 
+ void
+ region_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_reg->make_dump_widget (dwi));
+ }
+ 
  /* Implementation of svalue::accept vfunc for region_svalue.  */
  
  void
*************** constant_svalue::dump_to_pp (pretty_prin
*** 942,947 ****
--- 1022,1047 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    constant_svalue.  */
+ 
+ void
+ constant_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "constant_svalue (%qE)", m_cst_expr);
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    constant_svalue.  */
+ 
+ void
+ constant_svalue::
+ add_dump_widget_children (text_art::tree_widget &,
+ 			  const text_art::dump_widget_info &) const
+ {
+   /* No children.  */
+ }
+ 
  /* Implementation of svalue::accept vfunc for constant_svalue.  */
  
  void
*************** unknown_svalue::dump_to_pp (pretty_print
*** 1085,1090 ****
--- 1185,1210 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    unknown_svalue.  */
+ 
+ void
+ unknown_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "unknown_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    unknown_svalue.  */
+ 
+ void
+ unknown_svalue::
+ add_dump_widget_children (text_art::tree_widget &,
+ 			  const text_art::dump_widget_info &) const
+ {
+   /* No children.  */
+ }
+ 
  /* Implementation of svalue::accept vfunc for unknown_svalue.  */
  
  void
*************** poisoned_svalue::dump_to_pp (pretty_prin
*** 1146,1151 ****
--- 1266,1291 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    poisoned_svalue.  */
+ 
+ void
+ poisoned_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "poisoned_svalue(%s)", poison_kind_to_str (m_kind));
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    poisoned_svalue.  */
+ 
+ void
+ poisoned_svalue::
+ add_dump_widget_children (text_art::tree_widget &,
+ 			  const text_art::dump_widget_info &) const
+ {
+   /* No children.  */
+ }
+ 
  /* Implementation of svalue::accept vfunc for poisoned_svalue.  */
  
  void
*************** initial_svalue::dump_to_pp (pretty_print
*** 1195,1200 ****
--- 1335,1360 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    initial_svalue.  */
+ 
+ void
+ initial_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "initial_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    initial_svalue.  */
+ 
+ void
+ initial_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_reg->make_dump_widget (dwi, "m_reg"));
+ }
+ 
  /* Implementation of svalue::accept vfunc for initial_svalue.  */
  
  void
*************** unaryop_svalue::dump_to_pp (pretty_print
*** 1287,1292 ****
--- 1447,1474 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    unaryop_svalue.  */
+ 
+ void
+ unaryop_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp,
+ 	     "unaryop_svalue(%s)",
+ 	     get_tree_code_name (m_op));
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    unaryop_svalue.  */
+ 
+ void
+ unaryop_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_arg->make_dump_widget (dwi));
+ }
+ 
  /* Implementation of svalue::accept vfunc for unaryop_svalue.  */
  
  void
*************** binop_svalue::dump_to_pp (pretty_printer
*** 1389,1394 ****
--- 1571,1600 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    binop_svalue.  */
+ 
+ void
+ binop_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp,
+ 	     "binop_svalue(%s: %qs)",
+ 	     get_tree_code_name (m_op),
+ 	     op_symbol_code (m_op));
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    binop_svalue.  */
+ 
+ void
+ binop_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_arg0->make_dump_widget (dwi));
+   w.add_child (m_arg1->make_dump_widget (dwi));
+ }
+ 
  /* Implementation of svalue::accept vfunc for binop_svalue.  */
  
  void
*************** sub_svalue::dump_to_pp (pretty_printer *
*** 1449,1454 ****
--- 1655,1681 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    sub_svalue.  */
+ 
+ void
+ sub_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "sub_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    sub_svalue.  */
+ 
+ void
+ sub_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_parent_svalue->make_dump_widget (dwi, "m_parent_svalue"));
+   w.add_child (m_subregion->make_dump_widget (dwi, "m_subregion"));
+ }
+ 
  /* Implementation of svalue::accept vfunc for sub_svalue.  */
  
  void
*************** repeated_svalue::dump_to_pp (pretty_prin
*** 1519,1524 ****
--- 1746,1772 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    repeated_svalue.  */
+ 
+ void
+ repeated_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "repeated_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    repeated_svalue.  */
+ 
+ void
+ repeated_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_outer_size->make_dump_widget (dwi, "m_outer_size"));
+   w.add_child (m_inner_svalue->make_dump_widget (dwi, "m_inner_svalue"));
+ }
+ 
  /* Implementation of svalue::accept vfunc for repeated_svalue.  */
  
  void
*************** bits_within_svalue::dump_to_pp (pretty_p
*** 1644,1649 ****
--- 1892,1918 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    bits_within_svalue.  */
+ 
+ void
+ bits_within_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "bits_within_svalue: ");
+   m_bits.dump_to_pp (pp);
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    bits_within_svalue.  */
+ 
+ void
+ bits_within_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_inner_svalue->make_dump_widget (dwi, "m_inner_svalue"));
+ }
+ 
  /* Implementation of svalue::maybe_fold_bits_within vfunc
     for bits_within_svalue.  */
  
*************** widening_svalue::dump_to_pp (pretty_prin
*** 1712,1717 ****
--- 1981,2008 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    widening_svalue.  */
+ 
+ void
+ widening_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "widening_svalue at ");
+   m_point.print (pp, format (false));
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    widening_svalue.  */
+ 
+ void
+ widening_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_base_sval->make_dump_widget (dwi, "m_base_sval"));
+   w.add_child (m_iter_sval->make_dump_widget (dwi, "m_iter_sval"));
+ }
+ 
  /* Implementation of svalue::accept vfunc for widening_svalue.  */
  
  void
*************** placeholder_svalue::dump_to_pp (pretty_p
*** 1850,1855 ****
--- 2141,2166 ----
      pp_printf (pp, "placeholder_svalue (%qs)", m_name);
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    placeholder_svalue.  */
+ 
+ void
+ placeholder_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "placeholder_svalue: %qs", m_name);
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    placeholder_svalue.  */
+ 
+ void
+ placeholder_svalue::
+ add_dump_widget_children (text_art::tree_widget &,
+ 			  const text_art::dump_widget_info &) const
+ {
+   /* No children.  */
+ }
+ 
  /* Implementation of svalue::accept vfunc for placeholder_svalue.  */
  
  void
*************** unmergeable_svalue::dump_to_pp (pretty_p
*** 1879,1884 ****
--- 2190,2215 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    unmergeable_svalue.  */
+ 
+ void
+ unmergeable_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "unmergeable_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    unmergeable_svalue.  */
+ 
+ void
+ unmergeable_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_arg->make_dump_widget (dwi));
+ }
+ 
  /* Implementation of svalue::accept vfunc for unmergeable_svalue.  */
  
  void
*************** compound_svalue::dump_to_pp (pretty_prin
*** 1950,1955 ****
--- 2281,2306 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    compound_svalue.  */
+ 
+ void
+ compound_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "compound_svalue");
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    compound_svalue.  */
+ 
+ void
+ compound_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   m_map.add_to_tree_widget (w, dwi);
+ }
+ 
  /* Implementation of svalue::accept vfunc for compound_svalue.  */
  
  void
*************** conjured_svalue::dump_to_pp (pretty_prin
*** 2081,2086 ****
--- 2432,2461 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    conjured_svalue.  */
+ 
+ void
+ conjured_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "conjured_svalue (");
+   pp_gimple_stmt_1 (pp, m_stmt, 0, (dump_flags_t)0);
+   if (m_idx != 0)
+     pp_printf (pp, ", %i", m_idx);
+   pp_character (pp, ')');
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    conjured_svalue.  */
+ 
+ void
+ conjured_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   w.add_child (m_id_reg->make_dump_widget (dwi));
+ }
+ 
  /* Implementation of svalue::accept vfunc for conjured_svalue.  */
  
  void
*************** asm_output_svalue::dump_to_pp (pretty_pr
*** 2136,2141 ****
--- 2511,2544 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    asm_output_svalue.  */
+ 
+ void
+ asm_output_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "asm_output_svalue(%qs, %%%i)",
+ 	     get_asm_string (),
+ 	     get_output_idx ());
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    asm_output_svalue.  */
+ 
+ void
+ asm_output_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   for (unsigned i = 0; i < m_num_inputs; i++)
+     {
+       pretty_printer pp;
+       pp_printf (&pp, "arg %i", i);
+       w.add_child (m_input_arr[i]->make_dump_widget (dwi,
+ 						     pp_formatted_text (&pp)));
+     }
+ }
+ 
  /* Subroutine of asm_output_svalue::dump_to_pp.  */
  
  void
*************** const_fn_result_svalue::dump_to_pp (pret
*** 2198,2203 ****
--- 2601,2632 ----
      }
  }
  
+ /* Implementation of svalue::print_dump_widget_label vfunc for
+    const_fn_result_svalue.  */
+ 
+ void
+ const_fn_result_svalue::print_dump_widget_label (pretty_printer *pp) const
+ {
+   pp_printf (pp, "const_fn_result_svalue: %qD", m_fndecl);
+ }
+ 
+ /* Implementation of svalue::add_dump_widget_children vfunc for
+    const_fn_result_svalue.  */
+ 
+ void
+ const_fn_result_svalue::
+ add_dump_widget_children (text_art::tree_widget &w,
+ 			  const text_art::dump_widget_info &dwi) const
+ {
+   for (unsigned i = 0; i < m_num_inputs; i++)
+     {
+       pretty_printer pp;
+       pp_printf (&pp, "arg %i", i);
+       w.add_child (m_input_arr[i]->make_dump_widget (dwi,
+ 						     pp_formatted_text (&pp)));
+     }
+ }
+ 
  /* Subroutine of const_fn_result_svalue::dump_to_pp.  */
  
  void
diff -Nrcpad gcc-14.2.0/gcc/analyzer/svalue.h gcc-15.1.0/gcc/analyzer/svalue.h
*** gcc-14.2.0/gcc/analyzer/svalue.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/svalue.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Symbolic values.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 24,31 ****
--- 24,33 ----
  #include "analyzer/symbol.h"
  #include "analyzer/store.h"
  #include "analyzer/program-point.h"
+ #include "text-art/widget.h"
  
  using namespace ana;
+ using text_art::dump_widget_info;
  
  namespace ana {
  
*************** public:
*** 99,108 ****
  	      pretty_printer *pp) const;
  
    virtual void dump_to_pp (pretty_printer *pp, bool simple) const = 0;
!   void dump (bool simple=true) const;
    label_text get_desc (bool simple=true) const;
  
!   json::value *to_json () const;
  
    virtual const region_svalue *
    dyn_cast_region_svalue () const { return NULL; }
--- 101,115 ----
  	      pretty_printer *pp) const;
  
    virtual void dump_to_pp (pretty_printer *pp, bool simple) const = 0;
!   void dump () const;
!   void dump (bool simple) const;
    label_text get_desc (bool simple=true) const;
  
!   std::unique_ptr<json::value> to_json () const;
! 
!   std::unique_ptr<text_art::tree_widget>
!   make_dump_widget (const dump_widget_info &dwi,
! 		    const char *prefix = nullptr) const;
  
    virtual const region_svalue *
    dyn_cast_region_svalue () const { return NULL; }
*************** public:
*** 186,192 ****
--- 193,207 ----
    : symbol (c, id), m_type (type)
    {}
  
+   void print_svalue_node_label (pretty_printer *pp) const;
+ 
   private:
+   virtual void
+   print_dump_widget_label (pretty_printer *pp) const = 0;
+   virtual void
+   add_dump_widget_children (text_art::tree_widget &,
+ 			    const dump_widget_info &dwi) const = 0;
+ 
    tree m_type;
  };
  
*************** public:
*** 237,242 ****
--- 252,264 ----
    dyn_cast_region_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 319,324 ****
--- 341,353 ----
    dyn_cast_constant_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 372,377 ****
--- 401,413 ----
    enum svalue_kind get_kind () const final override { return SK_UNKNOWN; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const svalue *
*************** public:
*** 445,450 ****
--- 481,493 ----
    dyn_cast_poisoned_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const svalue *
*************** public:
*** 555,560 ****
--- 598,610 ----
    dyn_cast_setjmp_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    int get_enode_index () const;
*************** public:
*** 605,610 ****
--- 655,667 ----
    dyn_cast_initial_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 680,685 ****
--- 737,749 ----
    dyn_cast_unaryop_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 777,782 ****
--- 841,853 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 858,863 ****
--- 929,941 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 941,946 ****
--- 1019,1031 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const svalue *get_outer_size () const { return m_outer_size; }
*************** public:
*** 1030,1035 ****
--- 1115,1127 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 1089,1094 ****
--- 1181,1193 ----
    dyn_cast_unmergeable_svalue () const final override { return this; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
*************** public:
*** 1127,1132 ****
--- 1226,1238 ----
    enum svalue_kind get_kind () const final override { return SK_PLACEHOLDER; }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const char *get_name () const { return m_name; }
*************** public:
*** 1223,1228 ****
--- 1329,1341 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const function_point &get_point () const { return m_point; }
*************** public:
*** 1318,1323 ****
--- 1431,1443 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const binding_map &get_map () const { return m_map; }
*************** public:
*** 1455,1460 ****
--- 1575,1587 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const gimple *get_stmt () const { return m_stmt; }
*************** public:
*** 1580,1585 ****
--- 1707,1719 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    const char *get_asm_string () const { return m_asm_string; }
*************** public:
*** 1713,1718 ****
--- 1847,1859 ----
    }
  
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+   void
+   print_dump_widget_label (pretty_printer *pp) const final override;
+   void
+   add_dump_widget_children (text_art::tree_widget &w,
+ 			    const dump_widget_info &dwi) const final override;
+ 
    void accept (visitor *v) const final override;
  
    tree get_fndecl () const { return m_fndecl; }
diff -Nrcpad gcc-14.2.0/gcc/analyzer/symbol.cc gcc-15.1.0/gcc/analyzer/symbol.cc
*** gcc-14.2.0/gcc/analyzer/symbol.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/symbol.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,24 ----
diff -Nrcpad gcc-14.2.0/gcc/analyzer/symbol.h gcc-15.1.0/gcc/analyzer/symbol.h
*** gcc-14.2.0/gcc/analyzer/symbol.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/symbol.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/trimmed-graph.cc gcc-15.1.0/gcc/analyzer/trimmed-graph.cc
*** gcc-14.2.0/gcc/analyzer/trimmed-graph.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/trimmed-graph.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
diff -Nrcpad gcc-14.2.0/gcc/analyzer/trimmed-graph.h gcc-15.1.0/gcc/analyzer/trimmed-graph.h
*** gcc-14.2.0/gcc/analyzer/trimmed-graph.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/trimmed-graph.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/analyzer/varargs.cc gcc-15.1.0/gcc/analyzer/varargs.cc
*** gcc-14.2.0/gcc/analyzer/varargs.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/varargs.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Implementation of <stdarg.h> within analyzer.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Implementation of <stdarg.h> within analyzer.
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 19,25 ****
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
--- 19,25 ----
  <http://www.gnu.org/licenses/>.  */
  
  #include "config.h"
! #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 27,32 ****
--- 27,33 ----
  #include "function.h"
  #include "basic-block.h"
  #include "gimple.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
*************** public:
*** 206,212 ****
  
    bool inherited_state_p () const final override { return false; }
  
!   bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
--- 207,213 ----
  
    bool inherited_state_p () const final override { return false; }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
  
*************** public:
*** 223,237 ****
    state_t m_ended;
  
  private:
!   void on_va_start (sm_context *sm_ctxt, const supernode *node,
  		    const gcall *call) const;
!   void on_va_copy (sm_context *sm_ctxt, const supernode *node,
  		   const gcall *call) const;
!   void on_va_arg (sm_context *sm_ctxt, const supernode *node,
  		  const gcall *call) const;
!   void on_va_end (sm_context *sm_ctxt, const supernode *node,
  		  const gcall *call) const;
!   void check_for_ended_va_list (sm_context *sm_ctxt,
  				const supernode *node,
  				const gcall *call,
  				const svalue *arg,
--- 224,238 ----
    state_t m_ended;
  
  private:
!   void on_va_start (sm_context &sm_ctxt, const supernode *node,
  		    const gcall *call) const;
!   void on_va_copy (sm_context &sm_ctxt, const supernode *node,
  		   const gcall *call) const;
!   void on_va_arg (sm_context &sm_ctxt, const supernode *node,
  		  const gcall *call) const;
!   void on_va_end (sm_context &sm_ctxt, const supernode *node,
  		  const gcall *call) const;
!   void check_for_ended_va_list (sm_context &sm_ctxt,
  				const supernode *node,
  				const gcall *call,
  				const svalue *arg,
*************** va_list_state_machine::va_list_state_mac
*** 251,257 ****
     va_list_state_machine.  */
  
  bool
! va_list_state_machine::on_stmt (sm_context *sm_ctxt,
  				const supernode *node,
  				const gimple *stmt) const
  {
--- 252,258 ----
     va_list_state_machine.  */
  
  bool
! va_list_state_machine::on_stmt (sm_context &sm_ctxt,
  				const supernode *node,
  				const gimple *stmt) const
  {
*************** va_list_state_machine::on_stmt (sm_conte
*** 264,270 ****
  	  return false;
  	}
  
!       if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
  	if (fndecl_built_in_p (callee_fndecl, BUILT_IN_NORMAL)
  	    && gimple_builtin_call_types_compatible_p (call, callee_fndecl))
  	  switch (DECL_UNCHECKED_FUNCTION_CODE (callee_fndecl))
--- 265,271 ----
  	  return false;
  	}
  
!       if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (call))
  	if (fndecl_built_in_p (callee_fndecl, BUILT_IN_NORMAL)
  	    && gimple_builtin_call_types_compatible_p (call, callee_fndecl))
  	  switch (DECL_UNCHECKED_FUNCTION_CODE (callee_fndecl))
*************** va_list_state_machine::on_stmt (sm_conte
*** 292,304 ****
     IDX to CALL.  */
  
  static const svalue *
! get_stateful_arg (sm_context *sm_ctxt, const gcall *call, unsigned arg_idx)
  {
    tree ap = gimple_call_arg (call, arg_idx);
    if (ap
        && POINTER_TYPE_P (TREE_TYPE (ap)))
      {
!       if (const program_state *new_state = sm_ctxt->get_new_program_state ())
  	{
  	  const region_model *new_model = new_state->m_region_model;
  	  const svalue *ptr_sval = new_model->get_rvalue (ap, NULL);
--- 293,305 ----
     IDX to CALL.  */
  
  static const svalue *
! get_stateful_arg (sm_context &sm_ctxt, const gcall *call, unsigned arg_idx)
  {
    tree ap = gimple_call_arg (call, arg_idx);
    if (ap
        && POINTER_TYPE_P (TREE_TYPE (ap)))
      {
!       if (const program_state *new_state = sm_ctxt.get_new_program_state ())
  	{
  	  const region_model *new_model = new_state->m_region_model;
  	  const svalue *ptr_sval = new_model->get_rvalue (ap, NULL);
*************** public:
*** 325,336 ****
  	    && same_tree_p (m_ap_tree, other.m_ap_tree));
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     override
    {
      if (const char *fnname = maybe_get_fnname (change))
!       return change.formatted_print ("%qs called here", fnname);
!     return label_text ();
    }
  
    diagnostic_event::meaning
--- 326,341 ----
  	    && same_tree_p (m_ap_tree, other.m_ap_tree));
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) override
    {
      if (const char *fnname = maybe_get_fnname (change))
!       {
! 	pp_printf (&pp, "%qs called here", fnname);
! 	return true;
!       }
!     return false;
    }
  
    diagnostic_event::meaning
*************** public:
*** 412,449 ****
      return "va_list_use_after_va_end";
    }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_new_state == m_sm.m_ended)
        m_va_end_event = change.m_event_id;
!     return va_list_sm_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_va_end_event.known_p ())
! 	  return ev.formatted_print
! 	    ("%qs on %qE after %qs at %@",
! 	     m_usage_fnname, ev.m_expr, "va_end", &m_va_end_event);
  	else
! 	  return ev.formatted_print
! 	    ("%qs on %qE after %qs",
! 	     m_usage_fnname, ev.m_expr, "va_end");
        }
      else
        {
  	if (m_va_end_event.known_p ())
! 	  return ev.formatted_print
! 	    ("%qs after %qs at %@",
! 	     m_usage_fnname, "va_end", &m_va_end_event);
  	else
! 	  return ev.formatted_print
! 	    ("%qs after %qs",
! 	     m_usage_fnname, "va_end");
        }
    }
  
  private:
--- 417,458 ----
      return "va_list_use_after_va_end";
    }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_new_state == m_sm.m_ended)
        m_va_end_event = change.m_event_id;
!     return va_list_sm_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_va_end_event.known_p ())
! 	  pp_printf (&pp,
! 		     "%qs on %qE after %qs at %@",
! 		     m_usage_fnname, ev.m_expr, "va_end", &m_va_end_event);
  	else
! 	  pp_printf (&pp,
! 		     "%qs on %qE after %qs",
! 		     m_usage_fnname, ev.m_expr, "va_end");
        }
      else
        {
  	if (m_va_end_event.known_p ())
! 	  pp_printf (&pp,
! 		     "%qs after %qs at %@",
! 		     m_usage_fnname, "va_end", &m_va_end_event);
  	else
! 	  pp_printf (&pp,
! 		     "%qs after %qs",
! 		     m_usage_fnname, "va_end");
        }
+     return true;
    }
  
  private:
*************** public:
*** 482,522 ****
  
    const char *get_kind () const final override { return "va_list_leak"; }
  
!   label_text describe_state_change (const evdesc::state_change &change)
!     final override
    {
      if (change.m_new_state == m_sm.m_started)
        {
  	m_start_event = change.m_event_id;
  	m_start_event_fnname = maybe_get_fnname (change);
        }
!     return va_list_sm_diagnostic::describe_state_change (change);
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_start_event.known_p () && m_start_event_fnname)
! 	  return ev.formatted_print
! 	    ("missing call to %qs on %qE to match %qs at %@",
! 	     "va_end", ev.m_expr, m_start_event_fnname, &m_start_event);
  	else
! 	  return ev.formatted_print
! 	    ("missing call to %qs on %qE",
! 	     "va_end", ev.m_expr);
        }
      else
        {
  	if (m_start_event.known_p () && m_start_event_fnname)
! 	  return ev.formatted_print
! 	    ("missing call to %qs to match %qs at %@",
! 	     "va_end", m_start_event_fnname, &m_start_event);
  	else
! 	  return ev.formatted_print
! 	    ("missing call to %qs",
! 	     "va_end");
        }
    }
  
  private:
--- 491,535 ----
  
    const char *get_kind () const final override { return "va_list_leak"; }
  
!   bool
!   describe_state_change (pretty_printer &pp,
! 			 const evdesc::state_change &change) final override
    {
      if (change.m_new_state == m_sm.m_started)
        {
  	m_start_event = change.m_event_id;
  	m_start_event_fnname = maybe_get_fnname (change);
        }
!     return va_list_sm_diagnostic::describe_state_change (pp, change);
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &ev) final override
    {
      if (ev.m_expr)
        {
  	if (m_start_event.known_p () && m_start_event_fnname)
! 	  pp_printf (&pp,
! 		     "missing call to %qs on %qE to match %qs at %@",
! 		     "va_end", ev.m_expr, m_start_event_fnname, &m_start_event);
  	else
! 	  pp_printf (&pp,
! 		     "missing call to %qs on %qE",
! 		     "va_end", ev.m_expr);
        }
      else
        {
  	if (m_start_event.known_p () && m_start_event_fnname)
! 	  pp_printf (&pp,
! 		     "missing call to %qs to match %qs at %@",
! 		     "va_end", m_start_event_fnname, &m_start_event);
  	else
! 	  pp_printf (&pp,
! 		     "missing call to %qs",
! 		     "va_end");
        }
+     return true;
    }
  
  private:
*************** private:
*** 527,533 ****
  /* Update state machine for a "va_start" call.  */
  
  void
! va_list_state_machine::on_va_start (sm_context *sm_ctxt,
  				    const supernode *,
  				    const gcall *call) const
  {
--- 540,546 ----
  /* Update state machine for a "va_start" call.  */
  
  void
! va_list_state_machine::on_va_start (sm_context &sm_ctxt,
  				    const supernode *,
  				    const gcall *call) const
  {
*************** va_list_state_machine::on_va_start (sm_c
*** 535,558 ****
    if (arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt->get_state (call, arg) == m_start)
! 	sm_ctxt->set_next_state (call, arg, m_started);
      }
  }
  
  /* Complain if ARG is in the "ended" state.  */
  
  void
! va_list_state_machine::check_for_ended_va_list (sm_context *sm_ctxt,
  						const supernode *node,
  						const gcall *call,
  						const svalue *arg,
  						const char *usage_fnname) const
  {
!   if (sm_ctxt->get_state (call, arg) == m_ended)
!     sm_ctxt->warn (node, call, arg,
! 		   make_unique<va_list_use_after_va_end>
! 		     (*this, arg, NULL_TREE, usage_fnname));
  }
  
  /* Get the svalue with associated va_list_state_machine state for
--- 548,571 ----
    if (arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt.get_state (call, arg) == m_start)
! 	sm_ctxt.set_next_state (call, arg, m_started);
      }
  }
  
  /* Complain if ARG is in the "ended" state.  */
  
  void
! va_list_state_machine::check_for_ended_va_list (sm_context &sm_ctxt,
  						const supernode *node,
  						const gcall *call,
  						const svalue *arg,
  						const char *usage_fnname) const
  {
!   if (sm_ctxt.get_state (call, arg) == m_ended)
!     sm_ctxt.warn (node, call, arg,
! 		  make_unique<va_list_use_after_va_end>
! 		    (*this, arg, NULL_TREE, usage_fnname));
  }
  
  /* Get the svalue with associated va_list_state_machine state for
*************** va_list_state_machine::check_for_ended_v
*** 560,570 ****
     or NULL otherwise.  */
  
  static const svalue *
! get_stateful_va_copy_arg (sm_context *sm_ctxt,
  			  const gcall *call,
  			  unsigned arg_idx)
  {
!   if (const program_state *new_state = sm_ctxt->get_new_program_state ())
      {
        const region_model *new_model = new_state->m_region_model;
        const svalue *arg = get_va_copy_arg (new_model, NULL, call, arg_idx);
--- 573,583 ----
     or NULL otherwise.  */
  
  static const svalue *
! get_stateful_va_copy_arg (sm_context &sm_ctxt,
  			  const gcall *call,
  			  unsigned arg_idx)
  {
!   if (const program_state *new_state = sm_ctxt.get_new_program_state ())
      {
        const region_model *new_model = new_state->m_region_model;
        const svalue *arg = get_va_copy_arg (new_model, NULL, call, arg_idx);
*************** get_stateful_va_copy_arg (sm_context *sm
*** 576,582 ****
  /* Update state machine for a "va_copy" call.  */
  
  void
! va_list_state_machine::on_va_copy (sm_context *sm_ctxt,
  				   const supernode *node,
  				   const gcall *call) const
  {
--- 589,595 ----
  /* Update state machine for a "va_copy" call.  */
  
  void
! va_list_state_machine::on_va_copy (sm_context &sm_ctxt,
  				   const supernode *node,
  				   const gcall *call) const
  {
*************** va_list_state_machine::on_va_copy (sm_co
*** 588,602 ****
    if (dst_arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt->get_state (call, dst_arg) == m_start)
! 	sm_ctxt->set_next_state (call, dst_arg, m_started);
      }
  }
  
  /* Update state machine for a "va_arg" call.  */
  
  void
! va_list_state_machine::on_va_arg (sm_context *sm_ctxt,
  				  const supernode *node,
  				  const gcall *call) const
  {
--- 601,615 ----
    if (dst_arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt.get_state (call, dst_arg) == m_start)
! 	sm_ctxt.set_next_state (call, dst_arg, m_started);
      }
  }
  
  /* Update state machine for a "va_arg" call.  */
  
  void
! va_list_state_machine::on_va_arg (sm_context &sm_ctxt,
  				  const supernode *node,
  				  const gcall *call) const
  {
*************** va_list_state_machine::on_va_arg (sm_con
*** 608,624 ****
  /* Update state machine for a "va_end" call.  */
  
  void
! va_list_state_machine::on_va_end (sm_context *sm_ctxt,
  				  const supernode *node,
  				  const gcall *call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
      {
!       state_t s = sm_ctxt->get_state (call, arg);
        /* Transition from "started" to "ended".  */
        if (s == m_started)
! 	sm_ctxt->set_next_state (call, arg, m_ended);
        else if (s == m_ended)
  	check_for_ended_va_list (sm_ctxt, node, call, arg, "va_end");
      }
--- 621,637 ----
  /* Update state machine for a "va_end" call.  */
  
  void
! va_list_state_machine::on_va_end (sm_context &sm_ctxt,
  				  const supernode *node,
  				  const gcall *call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
      {
!       state_t s = sm_ctxt.get_state (call, arg);
        /* Transition from "started" to "ended".  */
        if (s == m_started)
! 	sm_ctxt.set_next_state (call, arg, m_ended);
        else if (s == m_ended)
  	check_for_ended_va_list (sm_ctxt, node, call, arg, "va_end");
      }
*************** public:
*** 781,795 ****
        {
        }
  
!       label_text get_desc (bool can_colorize) const override
        {
! 	return make_label_text_n
! 	  (can_colorize, m_num_variadic_arguments,
! 	   "calling %qE from %qE with %i variadic argument",
! 	   "calling %qE from %qE with %i variadic arguments",
! 	   get_callee_fndecl (),
! 	   get_caller_fndecl (),
! 	   m_num_variadic_arguments);
        }
      private:
        int m_num_variadic_arguments;
--- 794,808 ----
        {
        }
  
!       void print_desc (pretty_printer &pp) const override
        {
! 	pp_printf_n (&pp,
! 		     m_num_variadic_arguments,
! 		     "calling %qE from %qE with %i variadic argument",
! 		     "calling %qE from %qE with %i variadic arguments",
! 		     get_callee_fndecl (),
! 		     get_caller_fndecl (),
! 		     m_num_variadic_arguments);
        }
      private:
        int m_num_variadic_arguments;
*************** public:
*** 899,911 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("%<va_arg%> expected %qT but received %qT"
! 			       " for variadic argument %i of %qE",
! 			       m_expected_type, m_actual_type,
! 			       get_variadic_index_for_diagnostic (),
! 			       m_va_list_tree);
    }
  
  private:
--- 912,928 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "%<va_arg%> expected %qT but received %qT"
! 	       " for variadic argument %i of %qE",
! 	       m_expected_type, m_actual_type,
! 	       get_variadic_index_for_diagnostic (),
! 	       m_va_list_tree);
!     return true;
    }
  
  private:
*************** public:
*** 943,952 ****
      return warned;
    }
  
!   label_text describe_final_event (const evdesc::final_event &ev) final override
    {
!     return ev.formatted_print ("%qE has no more arguments (%i consumed)",
! 			       m_va_list_tree, get_num_consumed ());
    }
  };
  
--- 960,973 ----
      return warned;
    }
  
!   bool
!   describe_final_event (pretty_printer &pp,
! 			const evdesc::final_event &) final override
    {
!     pp_printf (&pp,
! 	       "%qE has no more arguments (%i consumed)",
! 	       m_va_list_tree, get_num_consumed ());
!     return true;
    }
  };
  
diff -Nrcpad gcc-14.2.0/gcc/analyzer/varargs.dot gcc-15.1.0/gcc/analyzer/varargs.dot
*** gcc-14.2.0/gcc/analyzer/varargs.dot	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/analyzer/varargs.dot	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* An overview of the state machine from varargs.cc
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from varargs.cc
!    Copyright (C) 2022-2025 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/array-traits.h gcc-15.1.0/gcc/array-traits.h
*** gcc-14.2.0/gcc/array-traits.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/array-traits.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/asan.cc gcc-15.1.0/gcc/asan.cc
*** gcc-14.2.0/gcc/asan.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/asan.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2012-2025 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** asan_shadow_offset ()
*** 457,462 ****
--- 457,469 ----
    return asan_shadow_offset_value;
  }
  
+ static bool
+ asan_dynamic_shadow_offset_p ()
+ {
+   return (asan_shadow_offset_value == 0)
+ 	 && targetm.asan_dynamic_shadow_offset_p ();
+ }
+ 
  /* Returns Asan shadow offset has been set.  */
  bool
  asan_shadow_offset_set_p ()
*************** static GTY(()) tree shadow_ptr_types[3];
*** 473,478 ****
--- 480,534 ----
  /* Decl for __asan_option_detect_stack_use_after_return.  */
  static GTY(()) tree asan_detect_stack_use_after_return;
  
+ static GTY (()) tree asan_shadow_memory_dynamic_address;
+ 
+ /* Local copy for the asan_shadow_memory_dynamic_address within the
+    function.  */
+ static GTY (()) tree asan_local_shadow_memory_dynamic_address;
+ 
+ static tree
+ get_asan_shadow_memory_dynamic_address_decl ()
+ {
+   if (asan_shadow_memory_dynamic_address == NULL_TREE)
+     {
+       tree id, decl;
+       id = get_identifier ("__asan_shadow_memory_dynamic_address");
+       decl
+ 	= build_decl (BUILTINS_LOCATION, VAR_DECL, id, pointer_sized_int_node);
+       SET_DECL_ASSEMBLER_NAME (decl, id);
+       TREE_ADDRESSABLE (decl) = 1;
+       DECL_ARTIFICIAL (decl) = 1;
+       DECL_IGNORED_P (decl) = 1;
+       DECL_EXTERNAL (decl) = 1;
+       TREE_STATIC (decl) = 1;
+       TREE_PUBLIC (decl) = 1;
+       TREE_USED (decl) = 1;
+       asan_shadow_memory_dynamic_address = decl;
+     }
+ 
+   return asan_shadow_memory_dynamic_address;
+ }
+ 
+ void
+ asan_maybe_insert_dynamic_shadow_at_function_entry (function *fun)
+ {
+   asan_local_shadow_memory_dynamic_address = NULL_TREE;
+   if (!asan_dynamic_shadow_offset_p ())
+     return;
+ 
+   gimple *g;
+ 
+   tree lhs = create_tmp_var (pointer_sized_int_node,
+ 			     "__local_asan_shadow_memory_dynamic_address");
+ 
+   g = gimple_build_assign (lhs, get_asan_shadow_memory_dynamic_address_decl ());
+   gimple_set_location (g, fun->function_start_locus);
+   edge e = single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun));
+   gsi_insert_on_edge_immediate (e, g);
+ 
+   asan_local_shadow_memory_dynamic_address = lhs;
+ }
+ 
  /* Hashtable support for memory references used by gimple
     statements.  */
  
*************** asan_emit_stack_protection (rtx base, rt
*** 2033,2042 ****
    shadow_base = expand_binop (Pmode, lshr_optab, base,
  			      gen_int_shift_amount (Pmode, ASAN_SHADOW_SHIFT),
  			      NULL_RTX, 1, OPTAB_DIRECT);
!   shadow_base
!     = plus_constant (Pmode, shadow_base,
! 		     asan_shadow_offset ()
! 		     + (base_align_bias >> ASAN_SHADOW_SHIFT));
    gcc_assert (asan_shadow_set != -1
  	      && (ASAN_RED_ZONE_SIZE >> ASAN_SHADOW_SHIFT) == 4);
    shadow_mem = gen_rtx_MEM (SImode, shadow_base);
--- 2089,2109 ----
    shadow_base = expand_binop (Pmode, lshr_optab, base,
  			      gen_int_shift_amount (Pmode, ASAN_SHADOW_SHIFT),
  			      NULL_RTX, 1, OPTAB_DIRECT);
!   if (asan_dynamic_shadow_offset_p ())
!     {
!       ret = expand_normal (get_asan_shadow_memory_dynamic_address_decl ());
!       shadow_base
! 	= expand_simple_binop (Pmode, PLUS, shadow_base, ret, NULL_RTX,
! 			       /* unsignedp = */ 1, OPTAB_WIDEN);
!       shadow_base = plus_constant (Pmode, shadow_base,
! 				   (base_align_bias >> ASAN_SHADOW_SHIFT));
!     }
!   else
!     {
!       shadow_base = plus_constant (Pmode, shadow_base,
! 				   asan_shadow_offset ()
! 				     + (base_align_bias >> ASAN_SHADOW_SHIFT));
!     }
    gcc_assert (asan_shadow_set != -1
  	      && (ASAN_RED_ZONE_SIZE >> ASAN_SHADOW_SHIFT) == 4);
    shadow_mem = gen_rtx_MEM (SImode, shadow_base);
*************** asan_emit_stack_protection (rtx base, rt
*** 2100,2127 ****
        mem = adjust_address (mem, VOIDmode, base_align_bias);
        emit_move_insn (mem, gen_int_mode (ASAN_STACK_RETIRED_MAGIC, ptr_mode));
        unsigned HOST_WIDE_INT sz = asan_frame_size >> ASAN_SHADOW_SHIFT;
        if (use_after_return_class < 5
  	  && can_store_by_pieces (sz, builtin_memset_read_str, &c,
  				  BITS_PER_UNIT, true))
! 	{
! 	  /* Emit:
! 	       memset(ShadowBase, kAsanStackAfterReturnMagic, ShadowSize);
! 	       **SavedFlagPtr(FakeStack, class_id) = 0
! 	  */
! 	  store_by_pieces (shadow_mem, sz, builtin_memset_read_str, &c,
! 			   BITS_PER_UNIT, true, RETURN_BEGIN);
! 
! 	  unsigned HOST_WIDE_INT offset
! 	    = (1 << (use_after_return_class + 6));
! 	  offset -= GET_MODE_SIZE (ptr_mode);
! 	  mem = gen_rtx_MEM (ptr_mode, base);
! 	  mem = adjust_address (mem, ptr_mode, offset);
! 	  rtx addr = gen_reg_rtx (ptr_mode);
! 	  emit_move_insn (addr, mem);
! 	  addr = convert_memory_address (Pmode, addr);
! 	  mem = gen_rtx_MEM (QImode, addr);
! 	  emit_move_insn (mem, const0_rtx);
! 	}
        else if (use_after_return_class >= 5
  	       || !set_storage_via_setmem (shadow_mem,
  					   GEN_INT (sz),
--- 2167,2179 ----
        mem = adjust_address (mem, VOIDmode, base_align_bias);
        emit_move_insn (mem, gen_int_mode (ASAN_STACK_RETIRED_MAGIC, ptr_mode));
        unsigned HOST_WIDE_INT sz = asan_frame_size >> ASAN_SHADOW_SHIFT;
+       bool asan_stack_free_emitted_p = false;
        if (use_after_return_class < 5
  	  && can_store_by_pieces (sz, builtin_memset_read_str, &c,
  				  BITS_PER_UNIT, true))
! 	/* Emit memset (ShadowBase, kAsanStackAfterReturnMagic, ShadowSize).  */
! 	store_by_pieces (shadow_mem, sz, builtin_memset_read_str, &c,
! 			 BITS_PER_UNIT, true, RETURN_BEGIN);
        else if (use_after_return_class >= 5
  	       || !set_storage_via_setmem (shadow_mem,
  					   GEN_INT (sz),
*************** asan_emit_stack_protection (rtx base, rt
*** 2138,2143 ****
--- 2190,2209 ----
  			     GEN_INT (asan_frame_size + base_align_bias),
  			     TYPE_MODE (pointer_sized_int_node),
  			     orig_addr, ptr_mode);
+ 	  asan_stack_free_emitted_p = true;
+ 	}
+       if (!asan_stack_free_emitted_p)
+ 	{
+ 	  /* Emit **SavedFlagPtr (FakeStack, class_id) = 0.  */
+ 	  unsigned HOST_WIDE_INT offset = (1 << (use_after_return_class + 6));
+ 	  offset -= GET_MODE_SIZE (ptr_mode);
+ 	  mem = gen_rtx_MEM (ptr_mode, base);
+ 	  mem = adjust_address (mem, ptr_mode, offset);
+ 	  rtx addr = gen_reg_rtx (ptr_mode);
+ 	  emit_move_insn (addr, mem);
+ 	  addr = convert_memory_address (Pmode, addr);
+ 	  mem = gen_rtx_MEM (QImode, addr);
+ 	  emit_move_insn (mem, const0_rtx);
  	}
        lab = gen_label_rtx ();
        emit_jump (lab);
*************** asan_emit_stack_protection (rtx base, rt
*** 2174,2180 ****
  				  & ~(ASAN_MIN_RED_ZONE_SIZE - HOST_WIDE_INT_1))
  		   - offset;
  
!       /* Unpoison shadow memory that corresponds to a variable that is 
  	 is subject of use-after-return sanitization.  */
        if (l > 2)
  	{
--- 2240,2246 ----
  				  & ~(ASAN_MIN_RED_ZONE_SIZE - HOST_WIDE_INT_1))
  		   - offset;
  
!       /* Unpoison shadow memory that corresponds to a variable that is
  	 is subject of use-after-return sanitization.  */
        if (l > 2)
  	{
*************** build_shadow_mem_access (gimple_stmt_ite
*** 2558,2564 ****
    gimple_set_location (g, location);
    gsi_insert_after (gsi, g, GSI_NEW_STMT);
  
!   t = build_int_cst (uintptr_type, asan_shadow_offset ());
    g = gimple_build_assign (make_ssa_name (uintptr_type), PLUS_EXPR,
  			   gimple_assign_lhs (g), t);
    gimple_set_location (g, location);
--- 2624,2633 ----
    gimple_set_location (g, location);
    gsi_insert_after (gsi, g, GSI_NEW_STMT);
  
!   if (asan_dynamic_shadow_offset_p ())
!     t = asan_local_shadow_memory_dynamic_address;
!   else
!     t = build_int_cst (uintptr_type, asan_shadow_offset ());
    g = gimple_build_assign (make_ssa_name (uintptr_type), PLUS_EXPR,
  			   gimple_assign_lhs (g), t);
    gimple_set_location (g, location);
*************** maybe_cast_to_ptrmode (location_t loc, t
*** 2610,2616 ****
    if (ptrofftype_p (len))
      return len;
    gimple *g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
! 				  NOP_EXPR, len);
    gimple_set_location (g, loc);
    if (before_p)
      gsi_safe_insert_before (iter, g);
--- 2679,2685 ----
    if (ptrofftype_p (len))
      return len;
    gimple *g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
! 				   NOP_EXPR, len);
    gimple_set_location (g, loc);
    if (before_p)
      gsi_safe_insert_before (iter, g);
*************** build_check_stmt (location_t loc, tree b
*** 2644,2659 ****
  		  bool is_non_zero_len, bool before_p, bool is_store,
  		  bool is_scalar_access, unsigned int align = 0)
  {
-   gimple_stmt_iterator gsi = *iter;
    gimple *g;
  
    gcc_assert (!(size_in_bytes > 0 && !is_non_zero_len));
    gcc_assert (size_in_bytes == -1 || size_in_bytes >= 1);
  
-   gsi = *iter;
- 
    base = unshare_expr (base);
!   base = maybe_create_ssa_name (loc, base, &gsi, before_p);
  
    if (len)
      {
--- 2713,2725 ----
  		  bool is_non_zero_len, bool before_p, bool is_store,
  		  bool is_scalar_access, unsigned int align = 0)
  {
    gimple *g;
  
    gcc_assert (!(size_in_bytes > 0 && !is_non_zero_len));
    gcc_assert (size_in_bytes == -1 || size_in_bytes >= 1);
  
    base = unshare_expr (base);
!   base = maybe_create_ssa_name (loc, base, iter, before_p);
  
    if (len)
      {
*************** build_check_stmt (location_t loc, tree b
*** 2704,2715 ****
  						 align / BITS_PER_UNIT));
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_safe_insert_before (&gsi, g);
    else
      {
!       gsi_insert_after (&gsi, g, GSI_NEW_STMT);
!       gsi_next (&gsi);
!       *iter = gsi;
      }
  }
  
--- 2770,2780 ----
  						 align / BITS_PER_UNIT));
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_safe_insert_before (iter, g);
    else
      {
!       gsi_insert_after (iter, g, GSI_NEW_STMT);
!       gsi_next (iter);
      }
  }
  
*************** asan_instrument (void)
*** 4276,4281 ****
--- 4341,4347 ----
  {
    if (hwasan_sanitize_p ())
      {
+       initialize_sanitizer_builtins ();
        transform_statements ();
        return 0;
      }
*************** hwasan_finish_file (void)
*** 4694,4699 ****
--- 4760,4767 ----
    if (flag_sanitize & SANITIZE_KERNEL_HWADDRESS)
      return;
  
+   initialize_sanitizer_builtins ();
+ 
    /* Avoid instrumenting code in the hwasan constructors/destructors.  */
    flag_sanitize &= ~SANITIZE_HWADDRESS;
    int priority = MAX_RESERVED_INIT_PRIORITY - 1;
diff -Nrcpad gcc-14.2.0/gcc/asan.h gcc-15.1.0/gcc/asan.h
*** gcc-14.2.0/gcc/asan.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/asan.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2011-2025 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** extern bool asan_expand_poison_ifn (gimp
*** 35,40 ****
--- 35,43 ----
  				    hash_map<tree, tree> &);
  extern rtx asan_memfn_rtl (tree);
  
+ extern void
+ asan_maybe_insert_dynamic_shadow_at_function_entry (function *);
+ 
  extern void hwasan_record_frame_init ();
  extern void hwasan_record_stack_var (rtx, rtx, poly_int64, poly_int64);
  extern void hwasan_emit_prologue ();
diff -Nrcpad gcc-14.2.0/gcc/attr-fnspec.h gcc-15.1.0/gcc/attr-fnspec.h
*** gcc-14.2.0/gcc/attr-fnspec.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/attr-fnspec.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handling of fnspec attribute specifiers
!    Copyright (C) 2008-2024 Free Software Foundation, Inc.
     Contributed by Richard Guenther  <rguenther@suse.de>
  
     This file is part of GCC.
--- 1,5 ----
  /* Handling of fnspec attribute specifiers
!    Copyright (C) 2008-2025 Free Software Foundation, Inc.
     Contributed by Richard Guenther  <rguenther@suse.de>
  
     This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/attr-urls.def gcc-15.1.0/gcc/attr-urls.def
*** gcc-14.2.0/gcc/attr-urls.def	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/attr-urls.def	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,384 ----
+ /* Autogenerated by regenerate-attr-urls.py.  */
+ 
+ const attr_url_entry enumerator_attrs[] = {
+  { "deprecated", "gcc/Enumerator-Attributes.html#index-deprecated-enumerator-attribute", "", 10},
+  { "unavailable", "gcc/Enumerator-Attributes.html#index-unavailable-enumerator-attribute", "", 11},
+ };
+ 
+ const attr_url_entry function_attrs[] = {
+  { "OS_main", "gcc/AVR-Function-Attributes.html#index-OS_005fmain-function-attribute_002c-AVR", "AVR", 7},
+  { "OS_task", "gcc/AVR-Function-Attributes.html#index-OS_005ftask-function-attribute_002c-AVR", "AVR", 7},
+  { "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-function-attribute", "", 7},
+  { "access", "gcc/Common-Function-Attributes.html#index-access-function-attribute", "", 6},
+  { "alias", "gcc/Common-Function-Attributes.html#index-alias-function-attribute", "", 5},
+  { "aligned", "gcc/Common-Function-Attributes.html#index-aligned-function-attribute", "", 7},
+  { "alloc_align", "gcc/Common-Function-Attributes.html#index-alloc_005falign-function-attribute", "", 11},
+  { "alloc_size", "gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute", "", 10},
+  { "always_inline", "gcc/Common-Function-Attributes.html#index-always_005finline-function-attribute", "", 13},
+  { "amdgpu_hsa_kernel", "gcc/AMD-GCN-Function-Attributes.html#index-amdgpu_005fhsa_005fkernel-function-attribute_002c-AMD-GCN", "AMD GCN", 17},
+  { "arch=", "gcc/AArch64-Function-Attributes.html#index-arch_003d-function-attribute_002c-AArch64", "AArch64", 5},
+  { "arch=", "gcc/ARM-Function-Attributes.html#index-arch_003d-function-attribute_002c-ARM", "ARM", 5},
+  { "arch=", "gcc/LoongArch-Function-Attributes.html#index-arch_003d-function-attribute_002c-LoongArch", "LoongArch", 5},
+  { "arch=", "gcc/RISC-V-Function-Attributes.html#index-arch_003d-function-attribute_002c-RISC-V", "RISC-V", 5},
+  { "artificial", "gcc/Common-Function-Attributes.html#index-artificial-function-attribute", "", 10},
+  { "assume_aligned", "gcc/Common-Function-Attributes.html#index-assume_005faligned-function-attribute", "", 14},
+  { "bank_switch", "gcc/M32C-Function-Attributes.html#index-bank_005fswitch-function-attribute_002c-M32C", "M32C", 11},
+  { "branch-protection", "gcc/AArch64-Function-Attributes.html#index-branch-protection-function-attribute_002c-AArch64", "AArch64", 17},
+  { "break_handler", "gcc/MicroBlaze-Function-Attributes.html#index-break_005fhandler-function-attribute_002c-MicroBlaze", "MicroBlaze", 13},
+  { "brk_interrupt", "gcc/RL78-Function-Attributes.html#index-brk_005finterrupt-function-attribute_002c-RL78", "RL78", 13},
+  { "callee_pop_aggregate_return", "gcc/x86-Function-Attributes.html#index-callee_005fpop_005faggregate_005freturn-function-attribute_002c-x86", "x86", 27},
+  { "cdecl", "gcc/x86-Function-Attributes.html#index-cdecl-function-attribute_002c-x86-32", "x86-32", 5},
+  { "cf_check", "gcc/x86-Function-Attributes.html#index-cf_005fcheck-function-attribute_002c-x86", "x86", 8},
+  { "cmodel=", "gcc/AArch64-Function-Attributes.html#index-cmodel_003d-function-attribute_002c-AArch64", "AArch64", 7},
+  { "cmodel=", "gcc/LoongArch-Function-Attributes.html#index-cmodel_003d-function-attribute_002c-LoongArch", "LoongArch", 7},
+  { "code_readable", "gcc/MIPS-Function-Attributes.html#index-code_005freadable-function-attribute_002c-MIPS", "MIPS", 13},
+  { "cold", "gcc/Common-Function-Attributes.html#index-cold-function-attribute", "", 4},
+  { "const", "gcc/Common-Function-Attributes.html#index-const-function-attribute", "", 5},
+  { "constructor", "gcc/Common-Function-Attributes.html#index-constructor-function-attribute", "", 11},
+  { "copy", "gcc/Common-Function-Attributes.html#index-copy-function-attribute", "", 4},
+  { "cpu=", "gcc/AArch64-Function-Attributes.html#index-cpu_003d-function-attribute_002c-AArch64", "AArch64", 4},
+  { "cpu=", "gcc/RISC-V-Function-Attributes.html#index-cpu_003d-function-attribute_002c-RISC-V", "RISC-V", 4},
+  { "critical", "gcc/MSP430-Function-Attributes.html#index-critical-function-attribute_002c-MSP430", "MSP430", 8},
+  { "deprecated", "gcc/Common-Function-Attributes.html#index-deprecated-function-attribute", "", 10},
+  { "destructor", "gcc/Common-Function-Attributes.html#index-destructor-function-attribute", "", 10},
+  { "disinterrupt", "gcc/Epiphany-Function-Attributes.html#index-disinterrupt-function-attribute_002c-Epiphany", "Epiphany", 12},
+  { "dllexport", "gcc/Microsoft-Windows-Function-Attributes.html#index-dllexport-function-attribute", "", 9},
+  { "dllimport", "gcc/Microsoft-Windows-Function-Attributes.html#index-dllimport-function-attribute", "", 9},
+  { "either", "gcc/MSP430-Function-Attributes.html#index-either-function-attribute_002c-MSP430", "MSP430", 6},
+  { "error", "gcc/Common-Function-Attributes.html#index-error-function-attribute", "", 5},
+  { "exception", "gcc/NDS32-Function-Attributes.html#index-exception-function-attribute", "", 9},
+  { "exception_handler", "gcc/Blackfin-Function-Attributes.html#index-exception_005fhandler-function-attribute", "", 17},
+  { "expected_throw", "gcc/Common-Function-Attributes.html#index-expected_005fthrow-function-attribute", "", 14},
+  { "externally_visible", "gcc/Common-Function-Attributes.html#index-externally_005fvisible-function-attribute", "", 18},
+  { "far", "gcc/MIPS-Function-Attributes.html#index-far-function-attribute_002c-MIPS", "MIPS", 3},
+  { "fast_interrupt", "gcc/M32C-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-M32C", "M32C", 14},
+  { "fast_interrupt", "gcc/MicroBlaze-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-MicroBlaze", "MicroBlaze", 14},
+  { "fast_interrupt", "gcc/RX-Function-Attributes.html#index-fast_005finterrupt-function-attribute_002c-RX", "RX", 14},
+  { "fastcall", "gcc/x86-Function-Attributes.html#index-fastcall-function-attribute_002c-x86-32", "x86-32", 8},
+  { "fd_arg", "gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute", "", 6},
+  { "fd_arg_read", "gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute", "", 11},
+  { "fd_arg_write", "gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute", "", 12},
+  { "fentry_name", "gcc/x86-Function-Attributes.html#index-fentry_005fname-function-attribute_002c-x86", "x86", 11},
+  { "fentry_section", "gcc/x86-Function-Attributes.html#index-fentry_005fsection-function-attribute_002c-x86", "x86", 14},
+  { "fix-cortex-a53-835769", "gcc/AArch64-Function-Attributes.html#index-fix-cortex-a53-835769-function-attribute_002c-AArch64", "AArch64", 21},
+  { "flatten", "gcc/Common-Function-Attributes.html#index-flatten-function-attribute", "", 7},
+  { "force_align_arg_pointer", "gcc/x86-Function-Attributes.html#index-force_005falign_005farg_005fpointer-function-attribute_002c-x86", "x86", 23},
+  { "format", "gcc/Common-Function-Attributes.html#index-format-function-attribute", "", 6},
+  { "format_arg", "gcc/Common-Function-Attributes.html#index-format_005farg-function-attribute", "", 10},
+  { "forwarder_section", "gcc/Epiphany-Function-Attributes.html#index-forwarder_005fsection-function-attribute_002c-Epiphany", "Epiphany", 17},
+  { "function_return", "gcc/x86-Function-Attributes.html#index-function_005freturn-function-attribute_002c-x86", "x86", 15},
+  { "function_vector", "gcc/H8_002f300-Function-Attributes.html#index-function_005fvector-function-attribute_002c-H8_002f300", "H8/300", 15},
+  { "function_vector", "gcc/M32C-Function-Attributes.html#index-function_005fvector-function-attribute_002c-M16C_002fM32C", "M16C/M32C", 15},
+  { "function_vector", "gcc/SH-Function-Attributes.html#index-function_005fvector-function-attribute_002c-SH", "SH", 15},
+  { "general-regs-only", "gcc/AArch64-Function-Attributes.html#index-general-regs-only-function-attribute_002c-AArch64", "AArch64", 17},
+  { "general-regs-only", "gcc/ARM-Function-Attributes.html#index-general-regs-only-function-attribute_002c-ARM", "ARM", 17},
+  { "gnu_inline", "gcc/Common-Function-Attributes.html#index-gnu_005finline-function-attribute", "", 10},
+  { "hot", "gcc/Common-Function-Attributes.html#index-hot-function-attribute", "", 3},
+  { "hotpatch", "gcc/S_002f390-Function-Attributes.html#index-hotpatch-function-attribute_002c-S_002f390", "S/390", 8},
+  { "ifunc", "gcc/Common-Function-Attributes.html#index-ifunc-function-attribute", "", 5},
+  { "indirect_branch", "gcc/x86-Function-Attributes.html#index-indirect_005fbranch-function-attribute_002c-x86", "x86", 15},
+  { "indirect_return", "gcc/AArch64-Function-Attributes.html#index-indirect_005freturn-function-attribute_002c-AArch64", "AArch64", 15},
+  { "indirect_return", "gcc/x86-Function-Attributes.html#index-indirect_005freturn-function-attribute_002c-x86", "x86", 15},
+  { "interrupt", "gcc/ARC-Function-Attributes.html#index-interrupt-function-attribute_002c-ARC", "ARC", 9},
+  { "interrupt", "gcc/ARM-Function-Attributes.html#index-interrupt-function-attribute_002c-ARM", "ARM", 9},
+  { "interrupt", "gcc/AVR-Function-Attributes.html#index-interrupt-function-attribute_002c-AVR", "AVR", 9},
+  { "interrupt", "gcc/C-SKY-Function-Attributes.html#index-interrupt-function-attribute_002c-C-SKY", "C-SKY", 9},
+  { "interrupt", "gcc/Common-Function-Attributes.html#index-interrupt-function-attribute", "", 9},
+  { "interrupt", "gcc/Epiphany-Function-Attributes.html#index-interrupt-function-attribute_002c-Epiphany", "Epiphany", 9},
+  { "interrupt", "gcc/M32C-Function-Attributes.html#index-interrupt-function-attribute_002c-M32C", "M32C", 9},
+  { "interrupt", "gcc/M32R_002fD-Function-Attributes.html#index-interrupt-function-attribute_002c-M32R_002fD", "M32R/D", 9},
+  { "interrupt", "gcc/MIPS-Function-Attributes.html#index-interrupt-function-attribute_002c-MIPS", "MIPS", 9},
+  { "interrupt", "gcc/MSP430-Function-Attributes.html#index-interrupt-function-attribute_002c-MSP430", "MSP430", 9},
+  { "interrupt", "gcc/NDS32-Function-Attributes.html#index-interrupt-function-attribute_002c-NDS32", "NDS32", 9},
+  { "interrupt", "gcc/RISC-V-Function-Attributes.html#index-interrupt-function-attribute_002c-RISC-V", "RISC-V", 9},
+  { "interrupt", "gcc/RL78-Function-Attributes.html#index-interrupt-function-attribute_002c-RL78", "RL78", 9},
+  { "interrupt", "gcc/RX-Function-Attributes.html#index-interrupt-function-attribute_002c-RX", "RX", 9},
+  { "interrupt", "gcc/V850-Function-Attributes.html#index-interrupt-function-attribute_002c-V850", "V850", 9},
+  { "interrupt", "gcc/Visium-Function-Attributes.html#index-interrupt-function-attribute_002c-Visium", "Visium", 9},
+  { "interrupt", "gcc/Xstormy16-Function-Attributes.html#index-interrupt-function-attribute_002c-Xstormy16", "Xstormy16", 9},
+  { "interrupt", "gcc/m68k-Function-Attributes.html#index-interrupt-function-attribute_002c-m68k", "m68k", 9},
+  { "interrupt", "gcc/x86-Function-Attributes.html#index-interrupt-function-attribute_002c-x86", "x86", 9},
+  { "interrupt_handler", "gcc/Blackfin-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-Blackfin", "Blackfin", 17},
+  { "interrupt_handler", "gcc/Common-Function-Attributes.html#index-interrupt_005fhandler-function-attribute", "", 17},
+  { "interrupt_handler", "gcc/H8_002f300-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-H8_002f300", "H8/300", 17},
+  { "interrupt_handler", "gcc/MicroBlaze-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-MicroBlaze", "MicroBlaze", 17},
+  { "interrupt_handler", "gcc/SH-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-SH", "SH", 17},
+  { "interrupt_handler", "gcc/V850-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-V850", "V850", 17},
+  { "interrupt_handler", "gcc/m68k-Function-Attributes.html#index-interrupt_005fhandler-function-attribute_002c-m68k", "m68k", 17},
+  { "interrupt_thread", "gcc/m68k-Function-Attributes.html#index-interrupt_005fthread-function-attribute_002c-fido", "fido", 16},
+  { "isr", "gcc/ARM-Function-Attributes.html#index-isr-function-attribute_002c-ARM", "ARM", 3},
+  { "isr", "gcc/C-SKY-Function-Attributes.html#index-isr-function-attribute_002c-C-SKY", "C-SKY", 3},
+  { "jli_always", "gcc/ARC-Function-Attributes.html#index-jli_005falways-function-attribute_002c-ARC", "ARC", 10},
+  { "jli_fixed", "gcc/ARC-Function-Attributes.html#index-jli_005ffixed-function-attribute_002c-ARC", "ARC", 9},
+  { "keep_interrupts_masked", "gcc/MIPS-Function-Attributes.html#index-keep_005finterrupts_005fmasked-function-attribute_002c-MIPS", "MIPS", 22},
+  { "kernel", "gcc/Nvidia-PTX-Function-Attributes.html#index-kernel-function-attribute_002c-Nvidia-PTX", "Nvidia PTX", 6},
+  { "kspisusp", "gcc/Blackfin-Function-Attributes.html#index-kspisusp-function-attribute_002c-Blackfin", "Blackfin", 8},
+  { "l1_text", "gcc/Blackfin-Function-Attributes.html#index-l1_005ftext-function-attribute_002c-Blackfin", "Blackfin", 7},
+  { "l2", "gcc/Blackfin-Function-Attributes.html#index-l2-function-attribute_002c-Blackfin", "Blackfin", 2},
+  { "lasx", "gcc/LoongArch-Function-Attributes.html#index-lasx-function-attribute_002c-LoongArch", "LoongArch", 4},
+  { "leaf", "gcc/Common-Function-Attributes.html#index-leaf-function-attribute", "", 4},
+  { "long_call", "gcc/ARC-Function-Attributes.html#index-long_005fcall-function-attribute_002c-ARC", "ARC", 9},
+  { "long_call", "gcc/ARM-Function-Attributes.html#index-long_005fcall-function-attribute_002c-ARM", "ARM", 9},
+  { "long_call", "gcc/Epiphany-Function-Attributes.html#index-long_005fcall-function-attribute_002c-Epiphany", "Epiphany", 9},
+  { "long_call", "gcc/MIPS-Function-Attributes.html#index-long_005fcall-function-attribute_002c-MIPS", "MIPS", 9},
+  { "longcall", "gcc/Blackfin-Function-Attributes.html#index-longcall-function-attribute_002c-Blackfin", "Blackfin", 8},
+  { "longcall", "gcc/PowerPC-Function-Attributes.html#index-longcall-function-attribute_002c-PowerPC", "PowerPC", 8},
+  { "lower", "gcc/MSP430-Function-Attributes.html#index-lower-function-attribute_002c-MSP430", "MSP430", 5},
+  { "lsx", "gcc/LoongArch-Function-Attributes.html#index-lsx-function-attribute_002c-LoongArch", "LoongArch", 3},
+  { "malloc", "gcc/Common-Function-Attributes.html#index-malloc-function-attribute", "", 6},
+  { "medium_call", "gcc/ARC-Function-Attributes.html#index-medium_005fcall-function-attribute_002c-ARC", "ARC", 11},
+  { "micromips", "gcc/MIPS-Function-Attributes.html#index-micromips-function-attribute", "", 9},
+  { "mips16", "gcc/MIPS-Function-Attributes.html#index-mips16-function-attribute_002c-MIPS", "MIPS", 6},
+  { "model", "gcc/M32R_002fD-Function-Attributes.html#index-model-function-attribute_002c-M32R_002fD", "M32R/D", 5},
+  { "ms_abi", "gcc/x86-Function-Attributes.html#index-ms_005fabi-function-attribute_002c-x86", "x86", 6},
+  { "ms_hook_prologue", "gcc/x86-Function-Attributes.html#index-ms_005fhook_005fprologue-function-attribute_002c-x86", "x86", 16},
+  { "naked", "gcc/ARC-Function-Attributes.html#index-naked-function-attribute_002c-ARC", "ARC", 5},
+  { "naked", "gcc/ARM-Function-Attributes.html#index-naked-function-attribute_002c-ARM", "ARM", 5},
+  { "naked", "gcc/AVR-Function-Attributes.html#index-naked-function-attribute_002c-AVR", "AVR", 5},
+  { "naked", "gcc/BPF-Function-Attributes.html#index-naked-function-attribute_002c-BPF", "BPF", 5},
+  { "naked", "gcc/C-SKY-Function-Attributes.html#index-naked-function-attribute_002c-C-SKY", "C-SKY", 5},
+  { "naked", "gcc/MCORE-Function-Attributes.html#index-naked-function-attribute_002c-MCORE", "MCORE", 5},
+  { "naked", "gcc/MSP430-Function-Attributes.html#index-naked-function-attribute_002c-MSP430", "MSP430", 5},
+  { "naked", "gcc/NDS32-Function-Attributes.html#index-naked-function-attribute_002c-NDS32", "NDS32", 5},
+  { "naked", "gcc/RISC-V-Function-Attributes.html#index-naked-function-attribute_002c-RISC-V", "RISC-V", 5},
+  { "naked", "gcc/RL78-Function-Attributes.html#index-naked-function-attribute_002c-RL78", "RL78", 5},
+  { "naked", "gcc/RX-Function-Attributes.html#index-naked-function-attribute_002c-RX", "RX", 5},
+  { "naked", "gcc/x86-Function-Attributes.html#index-naked-function-attribute_002c-x86", "x86", 5},
+  { "near", "gcc/MIPS-Function-Attributes.html#index-near-function-attribute_002c-MIPS", "MIPS", 4},
+  { "nested", "gcc/NDS32-Function-Attributes.html#index-nested-function-attribute_002c-NDS32", "NDS32", 6},
+  { "nested_ready", "gcc/NDS32-Function-Attributes.html#index-nested_005fready-function-attribute_002c-NDS32", "NDS32", 12},
+  { "nesting", "gcc/Blackfin-Function-Attributes.html#index-nesting-function-attribute_002c-Blackfin", "Blackfin", 7},
+  { "nmi", "gcc/NDS32-Function-Attributes.html#index-nmi-function-attribute_002c-NDS32", "NDS32", 3},
+  { "nmi_handler", "gcc/Blackfin-Function-Attributes.html#index-nmi_005fhandler-function-attribute_002c-Blackfin", "Blackfin", 11},
+  { "no_callee_saved_registers", "gcc/x86-Function-Attributes.html#index-no_005fcallee_005fsaved_005fregisters-function-attribute_002c-x86", "x86", 25},
+  { "no_caller_saved_registers", "gcc/x86-Function-Attributes.html#index-no_005fcaller_005fsaved_005fregisters-function-attribute_002c-x86", "x86", 25},
+  { "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling-function-attribute", "", 11},
+  { "no_gccisr", "gcc/AVR-Function-Attributes.html#index-no_005fgccisr-function-attribute_002c-AVR", "AVR", 9},
+  { "no_icf", "gcc/Common-Function-Attributes.html#index-no_005ficf-function-attribute", "", 6},
+  { "no_instrument_function", "gcc/Common-Function-Attributes.html#index-no_005finstrument_005ffunction-function-attribute", "", 22},
+  { "no_profile_instrument_function", "gcc/Common-Function-Attributes.html#index-no_005fprofile_005finstrument_005ffunction-function-attribute", "", 30},
+  { "no_reorder", "gcc/Common-Function-Attributes.html#index-no_005freorder-function-attribute", "", 10},
+  { "no_sanitize", "gcc/Common-Function-Attributes.html#index-no_005fsanitize-function-attribute", "", 11},
+  { "no_sanitize_address", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005faddress-function-attribute", "", 19},
+  { "no_sanitize_coverage", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fcoverage-function-attribute", "", 20},
+  { "no_sanitize_thread", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fthread-function-attribute", "", 18},
+  { "no_sanitize_undefined", "gcc/Common-Function-Attributes.html#index-no_005fsanitize_005fundefined-function-attribute", "", 21},
+  { "no_split_stack", "gcc/Common-Function-Attributes.html#index-no_005fsplit_005fstack-function-attribute", "", 14},
+  { "no_stack_limit", "gcc/Common-Function-Attributes.html#index-no_005fstack_005flimit-function-attribute", "", 14},
+  { "no_stack_protector", "gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute", "", 18},
+  { "noblock", "gcc/AVR-Function-Attributes.html#index-noblock-function-attribute_002c-AVR", "AVR", 7},
+  { "nocf_check", "gcc/x86-Function-Attributes.html#index-nocf_005fcheck-function-attribute", "", 10},
+  { "noclone", "gcc/Common-Function-Attributes.html#index-noclone-function-attribute", "", 7},
+  { "nocompression", "gcc/MIPS-Function-Attributes.html#index-nocompression-function-attribute_002c-MIPS", "MIPS", 13},
+  { "nodirect_extern_access", "gcc/x86-Function-Attributes.html#index-nodirect_005fextern_005faccess-function-attribute", "", 22},
+  { "noinline", "gcc/Common-Function-Attributes.html#index-noinline-function-attribute", "", 8},
+  { "noipa", "gcc/Common-Function-Attributes.html#index-noipa-function-attribute", "", 5},
+  { "nomicromips", "gcc/MIPS-Function-Attributes.html#index-nomicromips-function-attribute", "", 11},
+  { "nomips16", "gcc/MIPS-Function-Attributes.html#index-nomips16-function-attribute_002c-MIPS", "MIPS", 8},
+  { "nonnull", "gcc/Common-Function-Attributes.html#index-nonnull-function-attribute", "", 7},
+  { "nonnull_if_nonzero", "gcc/Common-Function-Attributes.html#index-nonnull_005fif_005fnonzero-function-attribute", "", 18},
+  { "noplt", "gcc/Common-Function-Attributes.html#index-noplt-function-attribute", "", 5},
+  { "noreturn", "gcc/Common-Function-Attributes.html#index-noreturn-function-attribute", "", 8},
+  { "nosave_low_regs", "gcc/SH-Function-Attributes.html#index-nosave_005flow_005fregs-function-attribute_002c-SH", "SH", 15},
+  { "not_nested", "gcc/NDS32-Function-Attributes.html#index-not_005fnested-function-attribute_002c-NDS32", "NDS32", 10},
+  { "nothrow", "gcc/Common-Function-Attributes.html#index-nothrow-function-attribute", "", 7},
+  { "null_terminated_string_arg", "gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute", "", 26},
+  { "omit-leaf-frame-pointer", "gcc/AArch64-Function-Attributes.html#index-omit-leaf-frame-pointer-function-attribute_002c-AArch64", "AArch64", 23},
+  { "optimize", "gcc/Common-Function-Attributes.html#index-optimize-function-attribute", "", 8},
+  { "outline-atomics", "gcc/AArch64-Function-Attributes.html#index-outline-atomics-function-attribute_002c-AArch64", "AArch64", 15},
+  { "partial_save", "gcc/NDS32-Function-Attributes.html#index-partial_005fsave-function-attribute_002c-NDS32", "NDS32", 12},
+  { "patchable_function_entry", "gcc/Common-Function-Attributes.html#index-patchable_005ffunction_005fentry-function-attribute", "", 24},
+  { "pcs", "gcc/ARM-Function-Attributes.html#index-pcs-function-attribute_002c-ARM", "ARM", 3},
+  { "prefer-vector-width", "gcc/x86-Function-Attributes.html#index-prefer-vector-width-function-attribute_002c-x86", "x86", 19},
+  { "pure", "gcc/Common-Function-Attributes.html#index-pure-function-attribute", "", 4},
+  { "reentrant", "gcc/MSP430-Function-Attributes.html#index-reentrant-function-attribute_002c-MSP430", "MSP430", 9},
+  { "regparm", "gcc/x86-Function-Attributes.html#index-regparm-function-attribute_002c-x86", "x86", 7},
+  { "renesas", "gcc/SH-Function-Attributes.html#index-renesas-function-attribute_002c-SH", "SH", 7},
+  { "resbank", "gcc/SH-Function-Attributes.html#index-resbank-function-attribute_002c-SH", "SH", 7},
+  { "reset", "gcc/NDS32-Function-Attributes.html#index-reset-function-attribute_002c-NDS32", "NDS32", 5},
+  { "retain", "gcc/Common-Function-Attributes.html#index-retain-function-attribute", "", 6},
+  { "returns_nonnull", "gcc/Common-Function-Attributes.html#index-returns_005fnonnull-function-attribute", "", 15},
+  { "returns_twice", "gcc/Common-Function-Attributes.html#index-returns_005ftwice-function-attribute", "", 13},
+  { "riscv_vector_cc", "gcc/RISC-V-Function-Attributes.html#index-riscv_005fvector_005fcc-function-attribute_002c-RISC-V", "RISC-V", 15},
+  { "save_all", "gcc/NDS32-Function-Attributes.html#index-save_005fall-function-attribute_002c-NDS32", "NDS32", 8},
+  { "save_volatiles", "gcc/MicroBlaze-Function-Attributes.html#index-save_005fvolatiles-function-attribute_002c-MicroBlaze", "MicroBlaze", 14},
+  { "saveall", "gcc/Blackfin-Function-Attributes.html#index-saveall-function-attribute_002c-Blackfin", "Blackfin", 7},
+  { "saveall", "gcc/H8_002f300-Function-Attributes.html#index-saveall-function-attribute_002c-H8_002f300", "H8/300", 7},
+  { "section", "gcc/Common-Function-Attributes.html#index-section-function-attribute", "", 7},
+  { "secure_call", "gcc/ARC-Function-Attributes.html#index-secure_005fcall-function-attribute_002c-ARC", "ARC", 11},
+  { "sentinel", "gcc/Common-Function-Attributes.html#index-sentinel-function-attribute", "", 8},
+  { "short_call", "gcc/ARC-Function-Attributes.html#index-short_005fcall-function-attribute_002c-ARC", "ARC", 10},
+  { "short_call", "gcc/ARM-Function-Attributes.html#index-short_005fcall-function-attribute_002c-ARM", "ARM", 10},
+  { "short_call", "gcc/Epiphany-Function-Attributes.html#index-short_005fcall-function-attribute_002c-Epiphany", "Epiphany", 10},
+  { "short_call", "gcc/MIPS-Function-Attributes.html#index-short_005fcall-function-attribute_002c-MIPS", "MIPS", 10},
+  { "shortcall", "gcc/Blackfin-Function-Attributes.html#index-shortcall-function-attribute_002c-Blackfin", "Blackfin", 9},
+  { "shortcall", "gcc/PowerPC-Function-Attributes.html#index-shortcall-function-attribute_002c-PowerPC", "PowerPC", 9},
+  { "sign-return-address", "gcc/AArch64-Function-Attributes.html#index-sign-return-address-function-attribute_002c-AArch64", "AArch64", 19},
+  { "signal", "gcc/AVR-Function-Attributes.html#index-signal-function-attribute_002c-AVR", "AVR", 6},
+  { "simd", "gcc/Common-Function-Attributes.html#index-simd-function-attribute", "", 4},
+  { "sp_switch", "gcc/SH-Function-Attributes.html#index-sp_005fswitch-function-attribute_002c-SH", "SH", 9},
+  { "sseregparm", "gcc/x86-Function-Attributes.html#index-sseregparm-function-attribute_002c-x86", "x86", 10},
+  { "stack_protect", "gcc/Common-Function-Attributes.html#index-stack_005fprotect-function-attribute", "", 13},
+  { "stdcall", "gcc/x86-Function-Attributes.html#index-stdcall-function-attribute_002c-x86-32", "x86-32", 7},
+  { "strict-align", "gcc/AArch64-Function-Attributes.html#index-strict-align-function-attribute_002c-AArch64", "AArch64", 12},
+  { "strict-align", "gcc/LoongArch-Function-Attributes.html#index-strict-align-function-attribute_002c-LoongArch", "LoongArch", 12},
+  { "symver", "gcc/Common-Function-Attributes.html#index-symver-function-attribute", "", 6},
+  { "syscall_linkage", "gcc/IA-64-Function-Attributes.html#index-syscall_005flinkage-function-attribute_002c-IA-64", "IA-64", 15},
+  { "sysv_abi", "gcc/x86-Function-Attributes.html#index-sysv_005fabi-function-attribute_002c-x86", "x86", 8},
+  { "tainted_args", "gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute", "", 12},
+  { "target", "gcc/ARM-Function-Attributes.html#index-target-function-attribute-1", "", 6},
+  { "target", "gcc/Common-Function-Attributes.html#index-target-function-attribute", "", 6},
+  { "target", "gcc/PowerPC-Function-Attributes.html#index-target-function-attribute-2", "", 6},
+  { "target", "gcc/S_002f390-Function-Attributes.html#index-target-function-attribute-3", "", 6},
+  { "target", "gcc/x86-Function-Attributes.html#index-target-function-attribute-4", "", 6},
+  { "target_clones", "gcc/Common-Function-Attributes.html#index-target_005fclones-function-attribute", "", 13},
+  { "thiscall", "gcc/x86-Function-Attributes.html#index-thiscall-function-attribute_002c-x86-32", "x86-32", 8},
+  { "tls-dialect=", "gcc/AArch64-Function-Attributes.html#index-tls-dialect_003d-function-attribute_002c-AArch64", "AArch64", 12},
+  { "trap_exit", "gcc/SH-Function-Attributes.html#index-trap_005fexit-function-attribute_002c-SH", "SH", 9},
+  { "trapa_handler", "gcc/SH-Function-Attributes.html#index-trapa_005fhandler-function-attribute_002c-SH", "SH", 13},
+  { "tune=", "gcc/AArch64-Function-Attributes.html#index-tune_003d-function-attribute_002c-AArch64", "AArch64", 5},
+  { "tune=", "gcc/LoongArch-Function-Attributes.html#index-tune_003d-function-attribute_002c-LoongArch", "LoongArch", 5},
+  { "tune=", "gcc/RISC-V-Function-Attributes.html#index-tune_003d-function-attribute_002c-RISC-V", "RISC-V", 5},
+  { "unavailable", "gcc/Common-Function-Attributes.html#index-unavailable-function-attribute", "", 11},
+  { "unused", "gcc/Common-Function-Attributes.html#index-unused-function-attribute", "", 6},
+  { "upper", "gcc/MSP430-Function-Attributes.html#index-upper-function-attribute_002c-MSP430", "MSP430", 5},
+  { "use_debug_exception_return", "gcc/MIPS-Function-Attributes.html#index-use_005fdebug_005fexception_005freturn-function-attribute_002c-MIPS", "MIPS", 26},
+  { "use_hazard_barrier_return", "gcc/MIPS-Function-Attributes.html#index-use_005fhazard_005fbarrier_005freturn-function-attribute_002c-MIPS", "MIPS", 25},
+  { "use_shadow_register_set", "gcc/MIPS-Function-Attributes.html#index-use_005fshadow_005fregister_005fset-function-attribute_002c-MIPS", "MIPS", 23},
+  { "used", "gcc/Common-Function-Attributes.html#index-used-function-attribute", "", 4},
+  { "vector", "gcc/RX-Function-Attributes.html#index-vector-function-attribute_002c-RX", "RX", 6},
+  { "version_id", "gcc/IA-64-Function-Attributes.html#index-version_005fid-function-attribute_002c-IA-64", "IA-64", 10},
+  { "visibility", "gcc/Common-Function-Attributes.html#index-visibility-function-attribute", "", 10},
+  { "wakeup", "gcc/MSP430-Function-Attributes.html#index-wakeup-function-attribute_002c-MSP430", "MSP430", 6},
+  { "warm", "gcc/NDS32-Function-Attributes.html#index-warm-function-attribute_002c-NDS32", "NDS32", 4},
+  { "warn_unused_result", "gcc/Common-Function-Attributes.html#index-warn_005funused_005fresult-function-attribute", "", 18},
+  { "warning", "gcc/Common-Function-Attributes.html#index-warning-function-attribute", "", 7},
+  { "weak", "gcc/Common-Function-Attributes.html#index-weak-function-attribute", "", 4},
+  { "weakref", "gcc/Common-Function-Attributes.html#index-weakref-function-attribute", "", 7},
+  { "zero_call_used_regs", "gcc/Common-Function-Attributes.html#index-zero_005fcall_005fused_005fregs-function-attribute", "", 19},
+ };
+ 
+ const attr_url_entry label_attrs[] = {
+  { "cold", "gcc/Label-Attributes.html#index-cold-label-attribute", "", 4},
+  { "hot", "gcc/Label-Attributes.html#index-hot-label-attribute", "", 3},
+  { "unused", "gcc/Label-Attributes.html#index-unused-label-attribute", "", 6},
+ };
+ 
+ const attr_url_entry statement_attrs[] = {
+  { "assume", "gcc/Statement-Attributes.html#index-assume-statement-attribute", "", 6},
+  { "fallthrough", "gcc/Statement-Attributes.html#index-fallthrough-statement-attribute", "", 11},
+  { "musttail", "gcc/Statement-Attributes.html#index-musttail-statement-attribute", "", 8},
+ };
+ 
+ const attr_url_entry type_attrs[] = {
+  { "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-type-attribute", "", 7},
+  { "aligned", "gcc/Common-Type-Attributes.html#index-aligned-type-attribute", "", 7},
+  { "alloc_size", "gcc/Common-Type-Attributes.html#index-alloc_005fsize-type-attribute", "", 10},
+  { "altivec", "gcc/PowerPC-Type-Attributes.html#index-altivec-type-attribute_002c-PowerPC", "PowerPC", 7},
+  { "cold", "gcc/C_002b_002b-Attributes.html#index-cold-type-attribute", "", 4},
+  { "copy", "gcc/Common-Type-Attributes.html#index-copy-type-attribute", "", 4},
+  { "deprecated", "gcc/Common-Type-Attributes.html#index-deprecated-type-attribute", "", 10},
+  { "designated_init", "gcc/Common-Type-Attributes.html#index-designated_005finit-type-attribute", "", 15},
+  { "flag_enum", "gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute", "", 9},
+  { "gcc_struct", "gcc/PowerPC-Type-Attributes.html#index-gcc_005fstruct-type-attribute_002c-PowerPC", "PowerPC", 10},
+  { "gcc_struct", "gcc/x86-Type-Attributes.html#index-gcc_005fstruct-type-attribute_002c-x86", "x86", 10},
+  { "hardbool", "gcc/Common-Type-Attributes.html#index-hardbool-type-attribute", "", 8},
+  { "hot", "gcc/C_002b_002b-Attributes.html#index-hot-type-attribute", "", 3},
+  { "may_alias", "gcc/Common-Type-Attributes.html#index-may_005falias-type-attribute", "", 9},
+  { "mode", "gcc/Common-Type-Attributes.html#index-mode-type-attribute", "", 4},
+  { "ms_struct", "gcc/PowerPC-Type-Attributes.html#index-ms_005fstruct-type-attribute_002c-PowerPC", "PowerPC", 9},
+  { "ms_struct", "gcc/x86-Type-Attributes.html#index-ms_005fstruct-type-attribute_002c-x86", "x86", 9},
+  { "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling-type-attribute", "", 11},
+  { "notshared", "gcc/ARM-Type-Attributes.html#index-notshared-type-attribute_002c-ARM", "ARM", 9},
+  { "objc_root_class", "gcc/Common-Type-Attributes.html#index-objc_005froot_005fclass-type-attribute", "", 15},
+  { "packed", "gcc/Common-Type-Attributes.html#index-packed-type-attribute", "", 6},
+  { "preserve_access_index", "gcc/BPF-Type-Attributes.html#index-preserve_005faccess_005findex-type-attribute_002c-BPF", "BPF", 21},
+  { "scalar_storage_order", "gcc/Common-Type-Attributes.html#index-scalar_005fstorage_005forder-type-attribute", "", 20},
+  { "strub", "gcc/Common-Type-Attributes.html#index-strub-type-attribute", "", 5},
+  { "transparent_union", "gcc/Common-Type-Attributes.html#index-transparent_005funion-type-attribute", "", 17},
+  { "unavailable", "gcc/Common-Type-Attributes.html#index-unavailable-type-attribute", "", 11},
+  { "uncached", "gcc/ARC-Type-Attributes.html#index-uncached-type-attribute_002c-ARC", "ARC", 8},
+  { "unused", "gcc/Common-Type-Attributes.html#index-unused-type-attribute", "", 6},
+  { "vector_size", "gcc/Common-Type-Attributes.html#index-vector_005fsize-type-attribute", "", 11},
+  { "visibility", "gcc/Common-Type-Attributes.html#index-visibility-type-attribute", "", 10},
+  { "warn_if_not_aligned", "gcc/Common-Type-Attributes.html#index-warn_005fif_005fnot_005faligned-type-attribute", "", 19},
+  { "warn_unused", "gcc/C_002b_002b-Attributes.html#index-warn_005funused-type-attribute", "", 11},
+ };
+ 
+ const attr_url_entry variable_attrs[] = {
+  { "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag-variable-attribute", "", 7},
+  { "absdata", "gcc/AVR-Variable-Attributes.html#index-absdata-variable-attribute_002c-AVR", "AVR", 7},
+  { "address", "gcc/AVR-Variable-Attributes.html#index-address-variable-attribute_002c-AVR", "AVR", 7},
+  { "alias", "gcc/Common-Variable-Attributes.html#index-alias-variable-attribute", "", 5},
+  { "aligned", "gcc/Common-Variable-Attributes.html#index-aligned-variable-attribute", "", 7},
+  { "alloc_size", "gcc/Common-Variable-Attributes.html#index-alloc_005fsize-variable-attribute", "", 10},
+  { "altivec", "gcc/PowerPC-Variable-Attributes.html#index-altivec-variable-attribute_002c-PowerPC", "PowerPC", 7},
+  { "aux", "gcc/ARC-Variable-Attributes.html#index-aux-variable-attribute_002c-ARC", "ARC", 3},
+  { "below100", "gcc/Xstormy16-Variable-Attributes.html#index-below100-variable-attribute_002c-Xstormy16", "Xstormy16", 8},
+  { "cleanup", "gcc/Common-Variable-Attributes.html#index-cleanup-variable-attribute", "", 7},
+  { "common", "gcc/Common-Variable-Attributes.html#index-common-variable-attribute", "", 6},
+  { "copy", "gcc/Common-Variable-Attributes.html#index-copy-variable-attribute", "", 4},
+  { "counted_by", "gcc/Common-Variable-Attributes.html#index-counted_005fby-variable-attribute", "", 10},
+  { "deprecated", "gcc/Common-Variable-Attributes.html#index-deprecated-variable-attribute", "", 10},
+  { "dllexport", "gcc/Microsoft-Windows-Variable-Attributes.html#index-dllexport-variable-attribute", "", 9},
+  { "dllimport", "gcc/Microsoft-Windows-Variable-Attributes.html#index-dllimport-variable-attribute", "", 9},
+  { "eightbit_data", "gcc/H8_002f300-Variable-Attributes.html#index-eightbit_005fdata-variable-attribute_002c-H8_002f300", "H8/300", 13},
+  { "either", "gcc/MSP430-Variable-Attributes.html#index-either-variable-attribute_002c-MSP430", "MSP430", 6},
+  { "gcc_struct", "gcc/PowerPC-Variable-Attributes.html#index-gcc_005fstruct-variable-attribute_002c-PowerPC", "PowerPC", 10},
+  { "gcc_struct", "gcc/x86-Variable-Attributes.html#index-gcc_005fstruct-variable-attribute_002c-x86", "x86", 10},
+  { "init_priority", "gcc/C_002b_002b-Attributes.html#index-init_005fpriority-variable-attribute", "", 13},
+  { "io", "gcc/AVR-Variable-Attributes.html#index-io-variable-attribute_002c-AVR", "AVR", 2},
+  { "io_low", "gcc/AVR-Variable-Attributes.html#index-io_005flow-variable-attribute_002c-AVR", "AVR", 6},
+  { "l1_data", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata-variable-attribute_002c-Blackfin", "Blackfin", 7},
+  { "l1_data_A", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata_005fA-variable-attribute_002c-Blackfin", "Blackfin", 9},
+  { "l1_data_B", "gcc/Blackfin-Variable-Attributes.html#index-l1_005fdata_005fB-variable-attribute_002c-Blackfin", "Blackfin", 9},
+  { "l2", "gcc/Blackfin-Variable-Attributes.html#index-l2-variable-attribute_002c-Blackfin", "Blackfin", 2},
+  { "lower", "gcc/MSP430-Variable-Attributes.html#index-lower-variable-attribute_002c-MSP430", "MSP430", 5},
+  { "mode", "gcc/Common-Variable-Attributes.html#index-mode-variable-attribute", "", 4},
+  { "model", "gcc/IA-64-Variable-Attributes.html#index-model-variable-attribute_002c-IA-64", "IA-64", 5},
+  { "model", "gcc/LoongArch-Variable-Attributes.html#index-model-variable-attribute_002c-LoongArch", "LoongArch", 5},
+  { "model-name", "gcc/M32R_002fD-Variable-Attributes.html#index-model-name-variable-attribute_002c-M32R_002fD", "M32R/D", 10},
+  { "ms_struct", "gcc/PowerPC-Variable-Attributes.html#index-ms_005fstruct-variable-attribute_002c-PowerPC", "PowerPC", 9},
+  { "ms_struct", "gcc/x86-Variable-Attributes.html#index-ms_005fstruct-variable-attribute_002c-x86", "x86", 9},
+  { "no_icf", "gcc/Common-Variable-Attributes.html#index-no_005ficf-variable-attribute", "", 6},
+  { "nocommon", "gcc/Common-Variable-Attributes.html#index-nocommon-variable-attribute", "", 8},
+  { "noinit", "gcc/Common-Variable-Attributes.html#index-noinit-variable-attribute", "", 6},
+  { "nonstring", "gcc/Common-Variable-Attributes.html#index-nonstring-variable-attribute", "", 9},
+  { "objc_nullability", "gcc/Common-Variable-Attributes.html#index-objc_005fnullability-variable-attribute", "", 16},
+  { "packed", "gcc/Common-Variable-Attributes.html#index-packed-variable-attribute", "", 6},
+  { "persistent", "gcc/Common-Variable-Attributes.html#index-persistent-variable-attribute", "", 10},
+  { "progmem", "gcc/AVR-Variable-Attributes.html#index-progmem-variable-attribute_002c-AVR", "AVR", 7},
+  { "retain", "gcc/Common-Variable-Attributes.html#index-retain-variable-attribute", "", 6},
+  { "saddr", "gcc/RL78-Variable-Attributes.html#index-saddr-variable-attribute_002c-RL78", "RL78", 5},
+  { "sda", "gcc/V850-Variable-Attributes.html#index-sda-variable-attribute_002c-V850", "V850", 3},
+  { "section", "gcc/Common-Variable-Attributes.html#index-section-variable-attribute", "", 7},
+  { "selectany", "gcc/Microsoft-Windows-Variable-Attributes.html#index-selectany-variable-attribute", "", 9},
+  { "shared", "gcc/Microsoft-Windows-Variable-Attributes.html#index-shared-variable-attribute", "", 6},
+  { "shared", "gcc/Nvidia-PTX-Variable-Attributes.html#index-shared-variable-attribute_002c-Nvidia-PTX", "Nvidia PTX", 6},
+  { "strict_flex_array", "gcc/Common-Variable-Attributes.html#index-strict_005fflex_005farray-variable-attribute", "", 17},
+  { "tda", "gcc/V850-Variable-Attributes.html#index-tda-variable-attribute_002c-V850", "V850", 3},
+  { "tiny_data", "gcc/H8_002f300-Variable-Attributes.html#index-tiny_005fdata-variable-attribute_002c-H8_002f300", "H8/300", 9},
+  { "tls_model", "gcc/Common-Variable-Attributes.html#index-tls_005fmodel-variable-attribute", "", 9},
+  { "unavailable", "gcc/Common-Variable-Attributes.html#index-unavailable-variable-attribute", "", 11},
+  { "uninitialized", "gcc/Common-Variable-Attributes.html#index-uninitialized-variable-attribute", "", 13},
+  { "unused", "gcc/Common-Variable-Attributes.html#index-unused-variable-attribute", "", 6},
+  { "upper", "gcc/MSP430-Variable-Attributes.html#index-upper-variable-attribute_002c-MSP430", "MSP430", 5},
+  { "used", "gcc/Common-Variable-Attributes.html#index-used-variable-attribute", "", 4},
+  { "vector_size", "gcc/Common-Variable-Attributes.html#index-vector_005fsize-variable-attribute", "", 11},
+  { "visibility", "gcc/Common-Variable-Attributes.html#index-visibility-variable-attribute", "", 10},
+  { "warn_if_not_aligned", "gcc/Common-Variable-Attributes.html#index-warn_005fif_005fnot_005faligned-variable-attribute", "", 19},
+  { "weak", "gcc/Common-Variable-Attributes.html#index-weak-variable-attribute", "", 4},
+  { "zda", "gcc/V850-Variable-Attributes.html#index-zda-variable-attribute_002c-V850", "V850", 3},
+ };
+ 
+ static const struct attr_url_table {
+   const attr_url_entry *m_table;
+   const size_t m_table_sz;
+ } attr_url_tables[] = {
+   { enumerator_attrs, ARRAY_SIZE (enumerator_attrs) },
+   { function_attrs, ARRAY_SIZE (function_attrs) },
+   { label_attrs, ARRAY_SIZE (label_attrs) },
+   { statement_attrs, ARRAY_SIZE (statement_attrs) },
+   { type_attrs, ARRAY_SIZE (type_attrs) },
+   { variable_attrs, ARRAY_SIZE (variable_attrs) },
+ };
diff -Nrcpad gcc-14.2.0/gcc/attribs.cc gcc-15.1.0/gcc/attribs.cc
*** gcc-14.2.0/gcc/attribs.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/attribs.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Functions dealing with attribute handling, used by most front ends.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions dealing with attribute handling, used by most front ends.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 35,42 ****
--- 35,44 ----
  #include "hash-set.h"
  #include "diagnostic.h"
  #include "pretty-print.h"
+ #include "pretty-print-markup.h"
  #include "tree-pretty-print.h"
  #include "intl.h"
+ #include "gcc-urlifier.h"
  
  /* Table of the tables of attributes (common, language, format, machine)
     searched.  */
*************** lookup_scoped_attribute_spec (const_tree
*** 380,386 ****
    struct substring attr;
    scoped_attributes *attrs;
  
!   const char *ns_str = (ns != NULL_TREE) ? IDENTIFIER_POINTER (ns): NULL;
  
    attrs = find_attribute_namespace (ns_str);
  
--- 382,388 ----
    struct substring attr;
    scoped_attributes *attrs;
  
!   const char *ns_str = (ns != NULL_TREE) ? IDENTIFIER_POINTER (ns) : NULL;
  
    attrs = find_attribute_namespace (ns_str);
  
*************** decl_attributes (tree *node, tree attrib
*** 630,635 ****
--- 632,639 ----
    if (!attributes_initialized)
      init_attributes ();
  
+   auto_urlify_attributes sentinel;
+ 
    /* If this is a function and the user used #pragma GCC optimize, add the
       options to the attribute((optimize(...))) list.  */
    if (TREE_CODE (*node) == FUNCTION_DECL && current_optimize_pragma)
*************** attr_strcmp (const void *v1, const void
*** 1101,1109 ****
  }
  
  /* ARGLIST is the argument to target attribute.  This function tokenizes
!    the comma separated arguments, sorts them and returns a string which
!    is a unique identifier for the comma separated arguments.   It also
!    replaces non-identifier characters "=,-" with "_".  */
  
  char *
  sorted_attr_string (tree arglist)
--- 1105,1114 ----
  }
  
  /* ARGLIST is the argument to target attribute.  This function tokenizes
!    the TARGET_CLONES_ATTR_SEPARATOR separated arguments, sorts them and
!    returns a string which is a unique identifier for the
!    TARGET_CLONES_ATTR_SEPARATOR separated arguments.  It also replaces
!    non-identifier characters "=,-" with "_".  */
  
  char *
  sorted_attr_string (tree arglist)
*************** sorted_attr_string (tree arglist)
*** 1115,1120 ****
--- 1120,1126 ----
    char *attr = NULL;
    unsigned int argnum = 1;
    unsigned int i;
+   static const char separator_str[] = { TARGET_CLONES_ATTR_SEPARATOR, 0 };
  
    for (arg = arglist; arg; arg = TREE_CHAIN (arg))
      {
*************** sorted_attr_string (tree arglist)
*** 1124,1130 ****
        if (arg != arglist)
  	argnum++;
        for (i = 0; i < strlen (str); i++)
! 	if (str[i] == ',')
  	  argnum++;
      }
  
--- 1130,1136 ----
        if (arg != arglist)
  	argnum++;
        for (i = 0; i < strlen (str); i++)
! 	if (str[i] == TARGET_CLONES_ATTR_SEPARATOR)
  	  argnum++;
      }
  
*************** sorted_attr_string (tree arglist)
*** 1135,1141 ****
        const char *str = TREE_STRING_POINTER (TREE_VALUE (arg));
        size_t len = strlen (str);
        memcpy (attr_str + str_len_sum, str, len);
!       attr_str[str_len_sum + len] = TREE_CHAIN (arg) ? ',' : '\0';
        str_len_sum += len + 1;
      }
  
--- 1141,1148 ----
        const char *str = TREE_STRING_POINTER (TREE_VALUE (arg));
        size_t len = strlen (str);
        memcpy (attr_str + str_len_sum, str, len);
!       attr_str[str_len_sum + len]
! 	= TREE_CHAIN (arg) ? TARGET_CLONES_ATTR_SEPARATOR : '\0';
        str_len_sum += len + 1;
      }
  
*************** sorted_attr_string (tree arglist)
*** 1150,1161 ****
    args = XNEWVEC (char *, argnum);
  
    i = 0;
!   attr = strtok (attr_str, ",");
    while (attr != NULL)
      {
        args[i] = attr;
        i++;
!       attr = strtok (NULL, ",");
      }
  
    qsort (args, argnum, sizeof (char *), attr_strcmp);
--- 1157,1168 ----
    args = XNEWVEC (char *, argnum);
  
    i = 0;
!   attr = strtok (attr_str, separator_str);
    while (attr != NULL)
      {
        args[i] = attr;
        i++;
!       attr = strtok (NULL, separator_str);
      }
  
    qsort (args, argnum, sizeof (char *), attr_strcmp);
*************** make_dispatcher_decl (const tree decl)
*** 1256,1262 ****
    fn_type = TREE_TYPE (decl);
    func_type = build_function_type (TREE_TYPE (fn_type),
  				   TYPE_ARG_TYPES (fn_type));
!   
    func_decl = build_fn_decl (func_name, func_type);
    XDELETEVEC (func_name);
    TREE_USED (func_decl) = 1;
--- 1263,1269 ----
    fn_type = TREE_TYPE (decl);
    func_type = build_function_type (TREE_TYPE (fn_type),
  				   TYPE_ARG_TYPES (fn_type));
! 
    func_decl = build_fn_decl (func_name, func_type);
    XDELETEVEC (func_name);
    TREE_USED (func_decl) = 1;
*************** make_dispatcher_decl (const tree decl)
*** 1269,1275 ****
    /* This will be of type IFUNCs have to be externally visible.  */
    TREE_PUBLIC (func_decl) = 1;
  
!   return func_decl;  
  }
  
  /* Returns true if DECL is multi-versioned using the target attribute, and this
--- 1276,1282 ----
    /* This will be of type IFUNCs have to be externally visible.  */
    TREE_PUBLIC (func_decl) = 1;
  
!   return func_decl;
  }
  
  /* Returns true if DECL is multi-versioned using the target attribute, and this
*************** has_attribute (tree node, tree attrs, co
*** 2196,2210 ****
     the "template" function declaration TMPL and DECL.  The word "template"
     doesn't necessarily refer to a C++ template but rather a declaration
     whose attributes should be matched by those on DECL.  For a non-zero
!    return value set *ATTRSTR to a string representation of the list of
!    mismatched attributes with quoted names.
     ATTRLIST is a list of additional attributes that SPEC should be
     taken to ultimately be declared with.  */
  
  unsigned
  decls_mismatched_attributes (tree tmpl, tree decl, tree attrlist,
  			     const char* const blacklist[],
! 			     pretty_printer *attrstr)
  {
    if (TREE_CODE (tmpl) != FUNCTION_DECL)
      return 0;
--- 2203,2216 ----
     the "template" function declaration TMPL and DECL.  The word "template"
     doesn't necessarily refer to a C++ template but rather a declaration
     whose attributes should be matched by those on DECL.  For a non-zero
!    return value append the names of the mismatcheed attributes to OUTATTRS.
     ATTRLIST is a list of additional attributes that SPEC should be
     taken to ultimately be declared with.  */
  
  unsigned
  decls_mismatched_attributes (tree tmpl, tree decl, tree attrlist,
  			     const char* const blacklist[],
! 			     auto_vec<const char *> &outattrs)
  {
    if (TREE_CODE (tmpl) != FUNCTION_DECL)
      return 0;
*************** decls_mismatched_attributes (tree tmpl,
*** 2278,2288 ****
  
  	  if (!found)
  	    {
! 	      if (nattrs)
! 		pp_string (attrstr, ", ");
! 	      pp_begin_quote (attrstr, pp_show_color (global_dc->printer));
! 	      pp_string (attrstr, blacklist[i]);
! 	      pp_end_quote (attrstr, pp_show_color (global_dc->printer));
  	      ++nattrs;
  	    }
  
--- 2284,2290 ----
  
  	  if (!found)
  	    {
! 	      outattrs.safe_push (blacklist[i]);
  	      ++nattrs;
  	    }
  
*************** maybe_diag_alias_attributes (tree alias,
*** 2312,2334 ****
      "returns_twice", NULL
    };
  
-   pretty_printer attrnames;
    if (warn_attribute_alias > 1)
      {
        /* With -Wattribute-alias=2 detect alias declarations that are more
  	 restrictive than their targets first.  Those indicate potential
  	 codegen bugs.  */
        if (unsigned n = decls_mismatched_attributes (alias, target, NULL_TREE,
! 						    blacklist, &attrnames))
  	{
  	  auto_diagnostic_group d;
  	  if (warning_n (DECL_SOURCE_LOCATION (alias),
  			 OPT_Wattribute_alias_, n,
  			 "%qD specifies more restrictive attribute than "
! 			 "its target %qD: %s",
  			 "%qD specifies more restrictive attributes than "
! 			 "its target %qD: %s",
! 			 alias, target, pp_formatted_text (&attrnames)))
  	    inform (DECL_SOURCE_LOCATION (target),
  		    "%qD target declared here", alias);
  	  return;
--- 2314,2337 ----
      "returns_twice", NULL
    };
  
    if (warn_attribute_alias > 1)
      {
        /* With -Wattribute-alias=2 detect alias declarations that are more
  	 restrictive than their targets first.  Those indicate potential
  	 codegen bugs.  */
+       auto_vec<const char *> mismatches;
        if (unsigned n = decls_mismatched_attributes (alias, target, NULL_TREE,
! 						    blacklist, mismatches))
  	{
  	  auto_diagnostic_group d;
+ 	  pp_markup::comma_separated_quoted_strings e (mismatches);
  	  if (warning_n (DECL_SOURCE_LOCATION (alias),
  			 OPT_Wattribute_alias_, n,
  			 "%qD specifies more restrictive attribute than "
! 			 "its target %qD: %e",
  			 "%qD specifies more restrictive attributes than "
! 			 "its target %qD: %e",
! 			 alias, target, &e))
  	    inform (DECL_SOURCE_LOCATION (target),
  		    "%qD target declared here", alias);
  	  return;
*************** maybe_diag_alias_attributes (tree alias,
*** 2338,2354 ****
    /* Detect alias declarations that are less restrictive than their
       targets.  Those suggest potential optimization opportunities
       (solved by adding the missing attribute(s) to the alias).  */
    if (unsigned n = decls_mismatched_attributes (target, alias, NULL_TREE,
! 						blacklist, &attrnames))
      {
        auto_diagnostic_group d;
        if (warning_n (DECL_SOURCE_LOCATION (alias),
  		     OPT_Wmissing_attributes, n,
  		     "%qD specifies less restrictive attribute than "
! 		     "its target %qD: %s",
  		     "%qD specifies less restrictive attributes than "
! 		     "its target %qD: %s",
! 		     alias, target, pp_formatted_text (&attrnames)))
  	inform (DECL_SOURCE_LOCATION (target),
  		"%qD target declared here", alias);
      }
--- 2341,2359 ----
    /* Detect alias declarations that are less restrictive than their
       targets.  Those suggest potential optimization opportunities
       (solved by adding the missing attribute(s) to the alias).  */
+   auto_vec<const char *> mismatches;
    if (unsigned n = decls_mismatched_attributes (target, alias, NULL_TREE,
! 						blacklist, mismatches))
      {
        auto_diagnostic_group d;
+       pp_markup::comma_separated_quoted_strings e (mismatches);
        if (warning_n (DECL_SOURCE_LOCATION (alias),
  		     OPT_Wmissing_attributes, n,
  		     "%qD specifies less restrictive attribute than "
! 		     "its target %qD: %e",
  		     "%qD specifies less restrictive attributes than "
! 		     "its target %qD: %e",
! 		     alias, target, &e))
  	inform (DECL_SOURCE_LOCATION (target),
  		"%qD target declared here", alias);
      }
*************** attr_access::array_as_string (tree type)
*** 2674,2683 ****
  
    /* Format the type using the current pretty printer.  The generic tree
       printer does a terrible job.  */
!   pretty_printer *pp = global_dc->printer->clone ();
!   pp_printf (pp, "%qT", type);
!   typstr = pp_formatted_text (pp);
!   delete pp;
  
    return typstr;
  }
--- 2679,2687 ----
  
    /* Format the type using the current pretty printer.  The generic tree
       printer does a terrible job.  */
!   std::unique_ptr<pretty_printer> pp (global_dc->clone_printer ());
!   pp_printf (pp.get (), "%qT", type);
!   typstr = pp_formatted_text (pp.get ());
  
    return typstr;
  }
diff -Nrcpad gcc-14.2.0/gcc/attribs.h gcc-15.1.0/gcc/attribs.h
*** gcc-14.2.0/gcc/attribs.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/attribs.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern tree private_lookup_attribute (co
*** 131,137 ****
  
  extern unsigned decls_mismatched_attributes (tree, tree, tree,
  					     const char* const[],
! 					     pretty_printer*);
  
  extern void maybe_diag_alias_attributes (tree, tree);
  
--- 131,137 ----
  
  extern unsigned decls_mismatched_attributes (tree, tree, tree,
  					     const char* const[],
! 					     auto_vec<const char *> &);
  
  extern void maybe_diag_alias_attributes (tree, tree);
  
diff -Nrcpad gcc-14.2.0/gcc/auto-inc-dec.cc gcc-15.1.0/gcc/auto-inc-dec.cc
*** gcc-14.2.0/gcc/auto-inc-dec.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/auto-inc-dec.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Discovery of auto-inc and auto-dec instructions.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Discovery of auto-inc and auto-dec instructions.
!    Copyright (C) 2006-2025 Free Software Foundation, Inc.
     Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/auto-profile.cc gcc-15.1.0/gcc/auto-profile.cc
*** gcc-14.2.0/gcc/auto-profile.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/auto-profile.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Read and annotate call graph profile from the auto profile data file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* Read and annotate call graph profile from the auto profile data file.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
*************** string_table::get_index (const char *nam
*** 473,479 ****
    return iter->second;
  }
  
! /* Return the index of a given function DECL. Return -1 if DECL is not 
     found in string table.  */
  
  int
--- 473,479 ----
    return iter->second;
  }
  
! /* Return the index of a given function DECL. Return -1 if DECL is not
     found in string table.  */
  
  int
*************** afdo_annotate_cfg (const stmt_set &promo
*** 1538,1545 ****
  
    if (s == NULL)
      return;
-   cgraph_node::get (current_function_decl)->count
-      = profile_count::from_gcov_type (s->head_count ()).afdo ();
    ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
       = profile_count::from_gcov_type (s->head_count ()).afdo ();
    EXIT_BLOCK_PTR_FOR_FN (cfun)->count = profile_count::zero ().afdo ();
--- 1538,1543 ----
*************** afdo_annotate_cfg (const stmt_set &promo
*** 1578,1583 ****
--- 1576,1583 ----
        /* Calculate, propagate count and probability information on CFG.  */
        afdo_calculate_branch_prob (&annotated_bb);
      }
+   cgraph_node::get(current_function_decl)->count
+       = ENTRY_BLOCK_PTR_FOR_FN(cfun)->count;
    update_max_bb_count ();
    profile_status_for_fn (cfun) = PROFILE_READ;
    if (flag_value_profile_transformations)
diff -Nrcpad gcc-14.2.0/gcc/auto-profile.h gcc-15.1.0/gcc/auto-profile.h
*** gcc-14.2.0/gcc/auto-profile.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/auto-profile.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* auto-profile.h - Defines data exported from auto-profile.cc
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* auto-profile.h - Defines data exported from auto-profile.cc
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/avoid-store-forwarding.cc gcc-15.1.0/gcc/avoid-store-forwarding.cc
*** gcc-14.2.0/gcc/avoid-store-forwarding.cc	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/avoid-store-forwarding.cc	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,647 ----
+ /* Avoid store forwarding optimization pass.
+    Copyright (C) 2024-2025 Free Software Foundation, Inc.
+    Contributed by VRULL GmbH.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "avoid-store-forwarding.h"
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "backend.h"
+ #include "target.h"
+ #include "rtl.h"
+ #include "alias.h"
+ #include "rtlanal.h"
+ #include "cfgrtl.h"
+ #include "tree-pass.h"
+ #include "cselib.h"
+ #include "predict.h"
+ #include "insn-config.h"
+ #include "expmed.h"
+ #include "recog.h"
+ #include "regset.h"
+ #include "df.h"
+ #include "expr.h"
+ #include "memmodel.h"
+ #include "emit-rtl.h"
+ #include "vec.h"
+ 
+ /* This pass tries to detect and avoid cases of store forwarding.
+    On many processors there is a large penalty when smaller stores are
+    forwarded to larger loads.  The idea used to avoid the stall is to move
+    the store after the load and in addition emit a bit insert sequence so
+    the load register has the correct value.  For example the following:
+ 
+      strb    w2, [x1, 1]
+      ldr     x0, [x1]
+ 
+    Will be transformed to:
+ 
+      ldr     x0, [x1]
+      strb    w2, [x1]
+      bfi     x0, x2, 0, 8
+ */
+ 
+ namespace {
+ 
+ const pass_data pass_data_avoid_store_forwarding =
+ {
+   RTL_PASS, /* type.  */
+   "avoid_store_forwarding", /* name.  */
+   OPTGROUP_NONE, /* optinfo_flags.  */
+   TV_AVOID_STORE_FORWARDING, /* tv_id.  */
+   0, /* properties_required.  */
+   0, /* properties_provided.  */
+   0, /* properties_destroyed.  */
+   0, /* todo_flags_start.  */
+   TODO_df_finish /* todo_flags_finish.  */
+ };
+ 
+ class pass_rtl_avoid_store_forwarding : public rtl_opt_pass
+ {
+ public:
+   pass_rtl_avoid_store_forwarding (gcc::context *ctxt)
+     : rtl_opt_pass (pass_data_avoid_store_forwarding, ctxt)
+   {}
+ 
+   /* opt_pass methods: */
+   virtual bool gate (function *)
+     {
+       return flag_avoid_store_forwarding && optimize >= 1;
+     }
+ 
+   virtual unsigned int execute (function *) override;
+ }; // class pass_rtl_avoid_store_forwarding
+ 
+ /* Handler for finding and avoiding store forwardings.  */
+ 
+ class store_forwarding_analyzer
+ {
+ public:
+   unsigned int stats_sf_detected = 0;
+   unsigned int stats_sf_avoided = 0;
+ 
+   bool is_store_forwarding (rtx store_mem, rtx load_mem,
+ 			    HOST_WIDE_INT *off_val);
+   bool process_store_forwarding (vec<store_fwd_info> &, rtx_insn *load_insn,
+ 				 rtx load_mem);
+   void avoid_store_forwarding (basic_block);
+   void update_stats (function *);
+ };
+ 
+ /* Return a bit insertion sequence that would make DEST have the correct value
+    if the store represented by STORE_INFO were to be moved after DEST.  */
+ 
+ static rtx_insn *
+ generate_bit_insert_sequence (store_fwd_info *store_info, rtx dest)
+ {
+   /* Memory size should be a constant at this stage.  */
+   unsigned HOST_WIDE_INT store_size
+     = MEM_SIZE (store_info->store_mem).to_constant ();
+ 
+   start_sequence ();
+ 
+   unsigned HOST_WIDE_INT bitsize = store_size * BITS_PER_UNIT;
+   unsigned HOST_WIDE_INT start = store_info->offset * BITS_PER_UNIT;
+ 
+   /* Adjust START for machines with BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
+      Given that the bytes will be reversed in this case, we need to
+      calculate the starting position from the end of the destination
+      register.  */
+   if (BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN)
+     {
+       unsigned HOST_WIDE_INT load_mode_bitsize
+ 	= (GET_MODE_BITSIZE (GET_MODE (dest))).to_constant ();
+       start = load_mode_bitsize - bitsize - start;
+     }
+ 
+   rtx mov_reg = store_info->mov_reg;
+   store_bit_field (dest, bitsize, start, 0, 0, GET_MODE (mov_reg), mov_reg,
+ 		   false, false);
+ 
+   rtx_insn *insns = get_insns ();
+   unshare_all_rtl_in_chain (insns);
+   end_sequence ();
+ 
+   for (rtx_insn *insn = insns; insn; insn = NEXT_INSN (insn))
+     if (contains_mem_rtx_p (PATTERN (insn))
+ 	|| recog_memoized (insn) < 0)
+       return NULL;
+ 
+   return insns;
+ }
+ 
+ /* Return true iff a store to STORE_MEM would write to a sub-region of bytes
+    from what LOAD_MEM would read.  If true also store the relative byte offset
+    of the store within the load to OFF_VAL.  */
+ 
+ bool store_forwarding_analyzer::
+ is_store_forwarding (rtx store_mem, rtx load_mem, HOST_WIDE_INT *off_val)
+ {
+   poly_int64 load_offset, store_offset;
+   rtx load_base = strip_offset (XEXP (load_mem, 0), &load_offset);
+   rtx store_base = strip_offset (XEXP (store_mem, 0), &store_offset);
+   return (MEM_SIZE (load_mem).is_constant ()
+ 	  && rtx_equal_p (load_base, store_base)
+ 	  && known_subrange_p (store_offset, MEM_SIZE (store_mem),
+ 			       load_offset, MEM_SIZE (load_mem))
+ 	  && (store_offset - load_offset).is_constant (off_val));
+ }
+ 
+ /* Given a list of small stores that are forwarded to LOAD_INSN, try to
+    rearrange them so that a store-forwarding penalty doesn't occur.
+    The stores must be given in reverse program order, starting from the
+    one closer to LOAD_INSN.  */
+ 
+ bool store_forwarding_analyzer::
+ process_store_forwarding (vec<store_fwd_info> &stores, rtx_insn *load_insn,
+ 			  rtx load_mem)
+ {
+   machine_mode load_mem_mode = GET_MODE (load_mem);
+   /* Memory sizes should be constants at this stage.  */
+   HOST_WIDE_INT load_size = MEM_SIZE (load_mem).to_constant ();
+ 
+   /* If the stores cover all the bytes of the load without overlap then we can
+      eliminate the load entirely and use the computed value instead.  */
+ 
+   sbitmap forwarded_bytes = sbitmap_alloc (load_size);
+   bitmap_clear (forwarded_bytes);
+ 
+   unsigned int i;
+   store_fwd_info* it;
+   FOR_EACH_VEC_ELT (stores, i, it)
+     {
+       HOST_WIDE_INT store_size = MEM_SIZE (it->store_mem).to_constant ();
+       if (bitmap_bit_in_range_p (forwarded_bytes, it->offset,
+ 				 it->offset + store_size - 1))
+ 	break;
+       bitmap_set_range (forwarded_bytes, it->offset, store_size);
+     }
+ 
+   bitmap_not (forwarded_bytes, forwarded_bytes);
+   bool load_elim = bitmap_empty_p (forwarded_bytes);
+ 
+   stats_sf_detected++;
+ 
+   if (dump_file)
+     {
+       fprintf (dump_file, "Store forwarding detected:\n");
+ 
+       FOR_EACH_VEC_ELT (stores, i, it)
+ 	{
+ 	  fprintf (dump_file, "From: ");
+ 	  print_rtl_single (dump_file, it->store_insn);
+ 	}
+ 
+       fprintf (dump_file, "To: ");
+       print_rtl_single (dump_file, load_insn);
+ 
+       if (load_elim)
+ 	fprintf (dump_file, "(Load elimination candidate)\n");
+     }
+ 
+   rtx load = single_set (load_insn);
+   rtx dest;
+ 
+   if (load_elim)
+     dest = gen_reg_rtx (load_mem_mode);
+   else
+     dest = SET_DEST (load);
+ 
+   int move_to_front = -1;
+   int total_cost = 0;
+ 
+   /* Check if we can emit bit insert instructions for all forwarded stores.  */
+   FOR_EACH_VEC_ELT (stores, i, it)
+     {
+       it->mov_reg = gen_reg_rtx (GET_MODE (it->store_mem));
+       rtx_insn *insns = NULL;
+ 
+       /* If we're eliminating the load then find the store with zero offset
+ 	 and use it as the base register to avoid a bit insert if possible.  */
+       if (load_elim && it->offset == 0)
+ 	{
+ 	  start_sequence ();
+ 
+ 	  rtx ext0 = gen_rtx_ZERO_EXTEND (GET_MODE (dest), it->mov_reg);
+ 	  if (ext0)
+ 	    {
+ 	      rtx_insn *move0 = emit_move_insn (dest, ext0);
+ 	      if (recog_memoized (move0) >= 0)
+ 		{
+ 		  insns = get_insns ();
+ 		  move_to_front = (int) i;
+ 		}
+ 	    }
+ 
+ 	  end_sequence ();
+ 	}
+ 
+       if (!insns)
+ 	insns = generate_bit_insert_sequence (&(*it), dest);
+ 
+       if (!insns)
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      fprintf (dump_file, "Failed due to: ");
+ 	      print_rtl_single (dump_file, it->store_insn);
+ 	    }
+ 	  return false;
+ 	}
+ 
+       total_cost += seq_cost (insns, true);
+       it->bits_insert_insns = insns;
+ 
+       rtx store_set = single_set (it->store_insn);
+ 
+       /* Create a register move at the store's original position to save the
+ 	 stored value.  */
+       start_sequence ();
+       rtx_insn *insn1
+ 	= emit_insn (gen_rtx_SET (it->mov_reg, SET_SRC (store_set)));
+       end_sequence ();
+ 
+       if (recog_memoized (insn1) < 0)
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      fprintf (dump_file, "Failed due to unrecognizable insn: ");
+ 	      print_rtl_single (dump_file, insn1);
+ 	    }
+ 	  return false;
+ 	}
+ 
+       it->save_store_value_insn = insn1;
+ 
+       /* Create a new store after the load with the saved original value.
+ 	 This avoids the forwarding stall.  */
+       start_sequence ();
+       rtx_insn *insn2
+ 	= emit_insn (gen_rtx_SET (SET_DEST (store_set), it->mov_reg));
+       end_sequence ();
+ 
+       if (recog_memoized (insn2) < 0)
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      fprintf (dump_file, "Failed due to unrecognizable insn: ");
+ 	      print_rtl_single (dump_file, insn2);
+ 	    }
+ 	  return false;
+ 	}
+ 
+       it->store_saved_value_insn = insn2;
+     }
+ 
+   if (load_elim)
+     total_cost -= insn_cost (load_insn, true);
+ 
+   /* Let the target decide if transforming this store forwarding instance is
+      profitable.  */
+   if (!targetm.avoid_store_forwarding_p (stores, load_mem, total_cost,
+ 					 load_elim))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "Not transformed due to target decision.\n");
+ 
+       return false;
+     }
+ 
+   /* If we have a move instead of bit insert, it needs to be emitted first in
+      the resulting sequence.  */
+   if (move_to_front != -1)
+     {
+       store_fwd_info copy = stores[move_to_front];
+       stores.safe_push (copy);
+       stores.ordered_remove (move_to_front);
+     }
+ 
+   if (load_elim)
+     {
+       machine_mode outer_mode = GET_MODE (SET_DEST (load));
+       rtx load_move;
+       rtx load_value = dest;
+       if (outer_mode != load_mem_mode)
+ 	{
+ 	  load_value = simplify_gen_unary (GET_CODE (SET_SRC (load)),
+ 					   outer_mode, dest, load_mem_mode);
+ 	}
+       load_move = gen_rtx_SET (SET_DEST (load), load_value);
+ 
+       start_sequence ();
+       rtx_insn *insn = emit_insn (load_move);
+       rtx_insn *seq = get_insns ();
+       end_sequence ();
+ 
+       if (recog_memoized (insn) < 0)
+ 	return false;
+ 
+       emit_insn_after (seq, load_insn);
+     }
+ 
+   if (dump_file)
+     {
+       fprintf (dump_file, "Store forwarding avoided with bit inserts:\n");
+ 
+       FOR_EACH_VEC_ELT (stores, i, it)
+ 	{
+ 	  if (stores.length () > 1)
+ 	    {
+ 	      fprintf (dump_file, "For: ");
+ 	      print_rtl_single (dump_file, it->store_insn);
+ 	    }
+ 
+ 	  fprintf (dump_file, "With sequence:\n");
+ 
+ 	  for (rtx_insn *insn = it->bits_insert_insns; insn;
+ 	       insn = NEXT_INSN (insn))
+ 	    {
+ 	      fprintf (dump_file, "  ");
+ 	      print_rtl_single (dump_file, insn);
+ 	    }
+ 	}
+     }
+ 
+   stats_sf_avoided++;
+ 
+   /* Done, emit all the generated instructions and delete the stores.
+      Note that STORES are in reverse program order.  */
+ 
+   FOR_EACH_VEC_ELT (stores, i, it)
+     {
+       emit_insn_after (it->bits_insert_insns, load_insn);
+       emit_insn_after (it->store_saved_value_insn, load_insn);
+     }
+ 
+   FOR_EACH_VEC_ELT (stores, i, it)
+     {
+       emit_insn_before (it->save_store_value_insn, it->store_insn);
+       delete_insn (it->store_insn);
+     }
+ 
+   df_insn_rescan (load_insn);
+ 
+   if (load_elim)
+     delete_insn (load_insn);
+ 
+   return true;
+ }
+ 
+ /* Try to modify BB so that expensive store forwarding cases are avoided.  */
+ 
+ void
+ store_forwarding_analyzer::avoid_store_forwarding (basic_block bb)
+ {
+   if (!optimize_bb_for_speed_p (bb))
+     return;
+ 
+   auto_vec<store_fwd_info, 8> store_exprs;
+   rtx_insn *insn;
+   unsigned int insn_cnt = 0;
+ 
+   FOR_BB_INSNS (bb, insn)
+     {
+       if (!NONDEBUG_INSN_P (insn))
+ 	continue;
+ 
+       vec_rtx_properties properties;
+       properties.add_insn (insn, false);
+ 
+       rtx set = single_set (insn);
+ 
+       if (!set || insn_could_throw_p (insn))
+ 	{
+ 	  store_exprs.truncate (0);
+ 	  continue;
+ 	}
+ 
+       /* The inner mem RTX if INSN is a load, NULL_RTX otherwise.  */
+       rtx load_mem = SET_SRC (set);
+ 
+       if (GET_CODE (load_mem) == ZERO_EXTEND
+ 	  || GET_CODE (load_mem) == SIGN_EXTEND)
+ 	load_mem = XEXP (load_mem, 0);
+ 
+       if (!MEM_P (load_mem))
+ 	load_mem = NULL_RTX;
+ 
+       /* The mem RTX if INSN is a store, NULL_RTX otherwise.  */
+       rtx store_mem = MEM_P (SET_DEST (set)) ? SET_DEST (set) : NULL_RTX;
+ 
+       /* We cannot analyze memory RTXs that have unknown size.	*/
+       if ((store_mem && (!MEM_SIZE_KNOWN_P (store_mem)
+ 			 || !MEM_SIZE (store_mem).is_constant ()))
+ 	  || (load_mem && (!MEM_SIZE_KNOWN_P (load_mem)
+ 			   || !MEM_SIZE (load_mem).is_constant ())))
+ 	{
+ 	  store_exprs.truncate (0);
+ 	  continue;
+ 	}
+ 
+       bool is_simple = !properties.has_asm
+ 		       && !properties.has_side_effects ();
+       bool is_simple_store = is_simple
+ 			     && store_mem
+ 			     && !contains_mem_rtx_p (SET_SRC (set));
+       bool is_simple_load = is_simple
+ 			    && load_mem
+ 			    && !contains_mem_rtx_p (SET_DEST (set));
+ 
+       int removed_count = 0;
+ 
+       if (is_simple_store)
+ 	{
+ 	  /* Record store forwarding candidate.	 */
+ 	  store_fwd_info info;
+ 	  info.store_insn = insn;
+ 	  info.store_mem = store_mem;
+ 	  info.insn_cnt = insn_cnt;
+ 	  info.remove = false;
+ 	  info.forwarded = false;
+ 	  store_exprs.safe_push (info);
+ 	}
+ 
+       bool reads_mem = false;
+       bool writes_mem = false;
+       for (auto ref : properties.refs ())
+ 	if (ref.is_mem ())
+ 	  {
+ 	    reads_mem |= ref.is_read ();
+ 	    writes_mem |= ref.is_write ();
+ 	  }
+ 	else if (ref.is_write ())
+ 	  {
+ 	    /* Drop store forwarding candidates when the address register is
+ 	       overwritten.  */
+ 	    bool remove_rest = false;
+ 	    unsigned int i;
+ 	    store_fwd_info *it;
+ 	    FOR_EACH_VEC_ELT_REVERSE (store_exprs, i, it)
+ 	      {
+ 		if (remove_rest
+ 		    || reg_overlap_mentioned_p (regno_reg_rtx[ref.regno],
+ 						it->store_mem))
+ 		  {
+ 		    it->remove = true;
+ 		    removed_count++;
+ 		    remove_rest = true;
+ 		  }
+ 	      }
+ 	  }
+ 
+       if (is_simple_load)
+ 	{
+ 	  /* Process load for possible store forwarding cases.
+ 	     Possible newly created/moved stores, resulted from a successful
+ 	     forwarding, will be processed in subsequent iterations.  */
+ 	  auto_vec<store_fwd_info> forwardings;
+ 	  bool partial_forwarding = false;
+ 	  bool remove_rest = false;
+ 
+ 	  bool vector_load = VECTOR_MODE_P (GET_MODE (load_mem));
+ 
+ 	  unsigned int i;
+ 	  store_fwd_info *it;
+ 	  FOR_EACH_VEC_ELT_REVERSE (store_exprs, i, it)
+ 	    {
+ 	      rtx store_mem = it->store_mem;
+ 	      HOST_WIDE_INT off_val;
+ 
+ 	      bool vector_store = VECTOR_MODE_P (GET_MODE (store_mem));
+ 
+ 	      if (remove_rest)
+ 		{
+ 		  it->remove = true;
+ 		  removed_count++;
+ 		}
+ 	      else if (vector_load ^ vector_store)
+ 		{
+ 		  /* Vector stores followed by a non-vector load or the
+ 		     opposite, cause store_bit_field to generate non-canonical
+ 		     expressions, like (subreg:V4SI (reg:DI ...) 0)).
+ 		     Cases like that should be handled using vec_duplicate,
+ 		     so we reject the transformation in those cases.  */
+ 		  it->remove = true;
+ 		  removed_count++;
+ 		  remove_rest = true;
+ 		}
+ 	      else if (is_store_forwarding (store_mem, load_mem, &off_val))
+ 		{
+ 		  /* Check if moving this store after the load is legal.  */
+ 		  bool write_dep = false;
+ 		  for (unsigned int j = store_exprs.length () - 1; j != i; j--)
+ 		    {
+ 		      if (!store_exprs[j].forwarded
+ 			  && output_dependence (store_mem,
+ 						store_exprs[j].store_mem))
+ 			{
+ 			  write_dep = true;
+ 			  break;
+ 			}
+ 		    }
+ 
+ 		  if (!write_dep)
+ 		    {
+ 		      it->forwarded = true;
+ 		      it->offset = off_val;
+ 		      forwardings.safe_push (*it);
+ 		    }
+ 		  else
+ 		    partial_forwarding = true;
+ 
+ 		  it->remove = true;
+ 		  removed_count++;
+ 		}
+ 	      else if (true_dependence (store_mem, GET_MODE (store_mem),
+ 					load_mem))
+ 		{
+ 		  /* We cannot keep a store forwarding candidate if it possibly
+ 		     interferes with this load.  */
+ 		  it->remove = true;
+ 		  removed_count++;
+ 		  remove_rest = true;
+ 		}
+ 	    }
+ 
+ 	  if (!forwardings.is_empty () && !partial_forwarding)
+ 	    process_store_forwarding (forwardings, insn, load_mem);
+ 	}
+ 
+ 	if ((writes_mem && !is_simple_store)
+ 	     || (reads_mem && !is_simple_load))
+ 	   store_exprs.truncate (0);
+ 
+ 	if (removed_count)
+ 	{
+ 	  unsigned int i, j;
+ 	  store_fwd_info *it;
+ 	  VEC_ORDERED_REMOVE_IF (store_exprs, i, j, it, it->remove);
+ 	}
+ 
+ 	/* Don't consider store forwarding if the RTL instruction distance is
+ 	   more than PARAM_STORE_FORWARDING_MAX_DISTANCE and the cost checks
+ 	   are not disabled.  */
+ 	const bool unlimited_cost = (param_store_forwarding_max_distance == 0);
+ 	if (!unlimited_cost && !store_exprs.is_empty ()
+ 	    && (store_exprs[0].insn_cnt
+ 		+ param_store_forwarding_max_distance <= insn_cnt))
+ 	  store_exprs.ordered_remove (0);
+ 
+ 	insn_cnt++;
+     }
+ }
+ 
+ /* Update pass statistics.  */
+ 
+ void
+ store_forwarding_analyzer::update_stats (function *fn)
+ {
+   statistics_counter_event (fn, "Cases of store forwarding detected: ",
+ 			    stats_sf_detected);
+   statistics_counter_event (fn, "Cases of store forwarding avoided: ",
+ 			    stats_sf_detected);
+ }
+ 
+ unsigned int
+ pass_rtl_avoid_store_forwarding::execute (function *fn)
+ {
+   df_set_flags (DF_DEFER_INSN_RESCAN);
+ 
+   init_alias_analysis ();
+ 
+   store_forwarding_analyzer analyzer;
+ 
+   basic_block bb;
+   FOR_EACH_BB_FN (bb, fn)
+     analyzer.avoid_store_forwarding (bb);
+ 
+   end_alias_analysis ();
+ 
+   analyzer.update_stats (fn);
+ 
+   return 0;
+ }
+ 
+ } // anon namespace.
+ 
+ rtl_opt_pass *
+ make_pass_rtl_avoid_store_forwarding (gcc::context *ctxt)
+ {
+   return new pass_rtl_avoid_store_forwarding (ctxt);
+ }
diff -Nrcpad gcc-14.2.0/gcc/avoid-store-forwarding.h gcc-15.1.0/gcc/avoid-store-forwarding.h
*** gcc-14.2.0/gcc/avoid-store-forwarding.h	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/avoid-store-forwarding.h	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,56 ----
+ /* Avoid store forwarding optimization pass.
+    Copyright (C) 2024-2025 Free Software Foundation, Inc.
+    Contributed by VRULL GmbH.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AVOID_STORE_FORWARDING_H
+ #define GCC_AVOID_STORE_FORWARDING_H
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "backend.h"
+ #include "rtl.h"
+ 
+ struct store_fwd_info
+ {
+   /* The store instruction that is a store forwarding candidate.  */
+   rtx_insn *store_insn;
+   /* SET_DEST (single_set (store_insn)).  */
+   rtx store_mem;
+   /* The temporary that will hold the stored value at the original store
+      position.  */
+   rtx mov_reg;
+   /* The instruction sequence that inserts the stored value's bits at the
+      appropriate position in the loaded value.  */
+   rtx_insn *bits_insert_insns;
+   /* An instruction that saves the store's value in a register temporarily,
+      (set (reg X) (SET_SRC (store_insn))).  */
+   rtx_insn *save_store_value_insn;
+   /* An instruction that stores the saved value back to memory,
+      (set (SET_DEST (store_insn)) (reg X)).  */
+   rtx_insn *store_saved_value_insn;
+   /* The byte offset for the store's position within the load.  */
+   HOST_WIDE_INT offset;
+ 
+   unsigned int insn_cnt;
+   bool remove;
+   bool forwarded;
+ };
+ 
+ #endif  /* GCC_AVOID_STORE_FORWARDING_H  */
diff -Nrcpad gcc-14.2.0/gcc/backend.h gcc-15.1.0/gcc/backend.h
*** gcc-14.2.0/gcc/backend.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/backend.h	Fri Apr 25 08:18:00 2025
***************
*** 1,6 ****
! /* Common Backend requirements. 
  
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by Andrew MacLeod <amacleod@redhat.com>
  
  This file is part of GCC.
--- 1,6 ----
! /* Common Backend requirements.
  
!    Copyright (C) 2015-2025 Free Software Foundation, Inc.
     Contributed by Andrew MacLeod <amacleod@redhat.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/basic-block.h gcc-15.1.0/gcc/basic-block.h
*** gcc-14.2.0/gcc/basic-block.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/basic-block.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum cfg_bb_flags
*** 224,230 ****
  /* For iterating over insns in basic block when we might remove the
     current insn.  */
  #define FOR_BB_INSNS_SAFE(BB, INSN, CURR)			\
!   for ((INSN) = BB_HEAD (BB), (CURR) = (INSN) ? NEXT_INSN ((INSN)): NULL;	\
         (INSN) && (INSN) != NEXT_INSN (BB_END (BB));	\
         (INSN) = (CURR), (CURR) = (INSN) ? NEXT_INSN ((INSN)) : NULL)
  
--- 224,230 ----
  /* For iterating over insns in basic block when we might remove the
     current insn.  */
  #define FOR_BB_INSNS_SAFE(BB, INSN, CURR)			\
!   for ((INSN) = BB_HEAD (BB), (CURR) = (INSN) ? NEXT_INSN ((INSN)) : NULL;	\
         (INSN) && (INSN) != NEXT_INSN (BB_END (BB));	\
         (INSN) = (CURR), (CURR) = (INSN) ? NEXT_INSN ((INSN)) : NULL)
  
*************** check_probability (int prob)
*** 563,569 ****
    gcc_checking_assert (prob >= 0 && prob <= REG_BR_PROB_BASE);
  }
  
! /* Given PROB1 and PROB2, return PROB1*PROB2/REG_BR_PROB_BASE. 
     Used to combine BB probabilities.  */
  
  inline int
--- 563,569 ----
    gcc_checking_assert (prob >= 0 && prob <= REG_BR_PROB_BASE);
  }
  
! /* Given PROB1 and PROB2, return PROB1*PROB2/REG_BR_PROB_BASE.
     Used to combine BB probabilities.  */
  
  inline int
diff -Nrcpad gcc-14.2.0/gcc/bb-reorder.cc gcc-15.1.0/gcc/bb-reorder.cc
*** gcc-14.2.0/gcc/bb-reorder.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/bb-reorder.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** connect_traces (int n_traces, struct tra
*** 1207,1213 ****
  		  /* If dest has multiple predecessors, skip it.  We expect
  		     that one predecessor with smaller index connects with it
  		     later.  */
! 		  if (count != 1) 
  		    break;
  		}
  
--- 1207,1213 ----
  		  /* If dest has multiple predecessors, skip it.  We expect
  		     that one predecessor with smaller index connects with it
  		     later.  */
! 		  if (count != 1)
  		    break;
  		}
  
*************** const pass_data pass_data_duplicate_comp
*** 2799,2805 ****
    RTL_PASS, /* type */
    "compgotos", /* name */
    OPTGROUP_NONE, /* optinfo_flags */
!   TV_REORDER_BLOCKS, /* tv_id */
    0, /* properties_required */
    0, /* properties_provided */
    0, /* properties_destroyed */
--- 2799,2805 ----
    RTL_PASS, /* type */
    "compgotos", /* name */
    OPTGROUP_NONE, /* optinfo_flags */
!   TV_DUP_COMPGOTO, /* tv_id */
    0, /* properties_required */
    0, /* properties_provided */
    0, /* properties_destroyed */
*************** pass_partition_blocks::execute (function
*** 3039,3045 ****
  
       Which means that the bb_has_eh_pred test in df_bb_refs_collect
       will *always* fail, because no edges can have been added to the
!      block yet.  Which of course means we don't add the right 
       artificial refs, which means we fail df_verify (much) later.
  
       Cleanest solution would seem to make DF_DEFER_INSN_RESCAN imply
--- 3039,3045 ----
  
       Which means that the bb_has_eh_pred test in df_bb_refs_collect
       will *always* fail, because no edges can have been added to the
!      block yet.  Which of course means we don't add the right
       artificial refs, which means we fail df_verify (much) later.
  
       Cleanest solution would seem to make DF_DEFER_INSN_RESCAN imply
diff -Nrcpad gcc-14.2.0/gcc/bb-reorder.h gcc-15.1.0/gcc/bb-reorder.h
*** gcc-14.2.0/gcc/bb-reorder.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/bb-reorder.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/bbitmap.h gcc-15.1.0/gcc/bbitmap.h
*** gcc-14.2.0/gcc/bbitmap.h	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/bbitmap.h	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,236 ----
+ /* Functions to support fixed-length bitmaps.
+    Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_BBITMAP_H
+ #define GCC_BBITMAP_H
+ 
+ /* Implementation of bounded (fixed length) bitmaps.
+ 
+    This provides a drop-in replacement for bitmaps that have outgrown the
+    storage capacity of a single integer.
+ 
+    Sets are stored as a fixed length array of uint64_t elements.  The length of
+    this array is given as a template parameter.  */
+ 
+ /* Use recusive templated functions to define constexpr operations.  */
+ template<int M>
+ struct bbitmap_operators
+ {
+   /* Return a result that maps binary operator OP to elements [0, M) of
+      X and Y, and takes the remaining elements from REST.  */
+   template<typename Result, typename Operator, typename Arg, typename ...Rest>
+   static constexpr Result binary(Operator op, const Arg &x, const Arg &y,
+ 				 Rest ...rest)
+   {
+     return bbitmap_operators<M - 1>::template binary<Result, Operator, Arg>
+       (op, x, y, op (x.val[M - 1], y.val[M - 1]), rest...);
+   }
+ 
+   /* Return a result that contains the bitwise inverse of elements [0, M) of X,
+      and takes the remaining elements from REST.  */
+   template<typename Result, typename Arg, typename ...Rest>
+   static constexpr Result bit_not(const Arg &x, Rest ...rest)
+   {
+     return bbitmap_operators<M - 1>::template bit_not<Result, Arg>
+       (x, ~(x.val[M - 1]), rest...);
+   }
+ 
+   /* Return true if any element [0, M) of X is nonzero.  */
+   template<typename Arg>
+   static constexpr bool non_zero(const Arg &x)
+   {
+     return (bool) x.val[M - 1]
+       || bbitmap_operators<M - 1>::template non_zero<Arg> (x);
+   }
+ 
+   /* Return true if elements [0, M) of X are all equal to the corresponding
+      elements of Y.  */
+   template<typename Arg>
+   static constexpr bool equal(const Arg &x, const Arg &y)
+   {
+     return x.val[M - 1] == y.val[M - 1]
+       && bbitmap_operators<M - 1>::template equal<Arg> (x, y);
+   }
+ 
+   /* If bit index INDEX selects a bit in the first M elements, return a
+      Result with that bit set and the other bits of the leading M elements
+      clear.  Clear the leading M elements otherwise.  Take the remaining
+      elements of the Result from REST.  */
+   template<typename Result, typename ...Rest>
+   static constexpr Result from_index(int index, Rest ...rest)
+   {
+     return bbitmap_operators<M - 1>::template from_index<Result>
+       (index,
+        uint64_t ((index - (M - 1) * 64) == (index & 63)) << (index & 63),
+        rest...);
+   }
+ };
+ 
+ /* These functions form the base for the recursive functions above.  They
+    return either bitmap containing the elements passed in REST, or a default
+    bool result.  */
+ template<>
+ struct bbitmap_operators<0>
+ {
+   template<typename Result, typename Operator, typename Arg, typename ...Rest>
+   static constexpr Result binary(Operator, const Arg, const Arg,
+ 				 Rest ...rest)
+   {
+     return Result { rest... };
+   }
+ 
+   template<typename Result, typename Arg, typename ...Rest>
+   static constexpr Result bit_not(const Arg, Rest ...rest)
+   {
+     return Result { rest... };
+   }
+ 
+   template<typename Arg>
+   static constexpr bool non_zero(const Arg)
+   {
+     return false;
+   }
+ 
+   template<typename Arg>
+   static constexpr bool equal(const Arg, const Arg)
+   {
+     return true;
+   }
+ 
+   template<typename Result, typename ...Rest>
+   static constexpr Result from_index(int, Rest ...rest)
+   {
+     return Result { rest... };
+   }
+ };
+ 
+ template<typename T>
+ constexpr T bbitmap_element_or(T x, T y) { return x | y;}
+ 
+ template<typename T>
+ constexpr T bbitmap_element_and(T x, T y) { return x & y;}
+ 
+ template<typename T>
+ constexpr T bbitmap_element_xor(T x, T y) { return x ^ y;}
+ 
+ 
+ 
+ template <int N>
+ class GTY((user)) bbitmap
+ {
+ public:
+   uint64_t val[N];
+ 
+   template<typename... Rest>
+   constexpr bbitmap(Rest ...rest) : val{(uint64_t) rest...} {}
+ 
+   constexpr bbitmap<N> operator|(const bbitmap<N> other) const
+   {
+     return bbitmap_operators<N>::template binary<bbitmap<N>>
+       (bbitmap_element_or<uint64_t>, *this, other);
+   }
+ 
+   bbitmap<N> operator|=(const bbitmap<N> other)
+   {
+     for (int i = 0; i < N; i++)
+       val[i] |= other.val[i];
+ 
+     return this;
+   }
+ 
+   constexpr bbitmap<N> operator&(const bbitmap<N> other) const
+   {
+     return bbitmap_operators<N>::template binary<bbitmap<N>>
+       (bbitmap_element_and<uint64_t>, *this, other);
+   }
+ 
+   bbitmap<N> operator&=(const bbitmap<N> other)
+   {
+     for (int i = 0; i < N; i++)
+       val[i] &= other.val[i];
+ 
+     return this;
+   }
+ 
+   constexpr bbitmap<N> operator^(const bbitmap<N> other) const
+   {
+     return bbitmap_operators<N>::template binary<bbitmap<N>>
+       (bbitmap_element_xor<uint64_t>, *this, other);
+   }
+ 
+   bbitmap<N> operator^=(const bbitmap<N> other)
+   {
+     for (int i = 0; i < N; i++)
+       val[i] ^= other.val[i];
+ 
+     return this;
+   }
+ 
+   constexpr bbitmap<N> operator~() const
+   {
+     return bbitmap_operators<N>::template bit_not<bbitmap<N>>(*this);
+   }
+ 
+   constexpr bool operator!() const
+   {
+     return !(bbitmap_operators<N>::template non_zero<bbitmap<N>>(*this));
+   }
+ 
+   constexpr explicit operator bool() const
+   {
+     return bbitmap_operators<N>::template non_zero<bbitmap<N>>(*this);
+   }
+ 
+   constexpr bool operator==(const bbitmap<N> other) const
+   {
+     return bbitmap_operators<N>::template equal<bbitmap<N>>(*this, other);
+   }
+ 
+   constexpr bool operator!=(const bbitmap<N> other) const
+   {
+     return !(bbitmap_operators<N>::template equal<bbitmap<N>>(*this, other));
+   }
+ 
+   /* Return a bitmap with bit INDEX set and all other bits clear.  */
+ 
+   static constexpr bbitmap<N> from_index (int index)
+   {
+     return bbitmap_operators<N>::template from_index<bbitmap<N>> (index);
+   }
+ };
+ 
+ template<int N>
+ void
+ gt_ggc_mx (bbitmap<N> *)
+ {
+ }
+ 
+ template<int N>
+ void
+ gt_pch_nx (bbitmap<N> *)
+ {
+ }
+ 
+ template<int N>
+ void
+ gt_pch_nx (bbitmap<N> *, gt_pointer_operator, void *)
+ {
+ }
+ 
+ #endif
diff -Nrcpad gcc-14.2.0/gcc/bitmap.cc gcc-15.1.0/gcc/bitmap.cc
*** gcc-14.2.0/gcc/bitmap.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/bitmap.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** bitmap_list_insert_element_after (bitmap
*** 340,346 ****
  }
  
  /* Return the element for INDX, or NULL if the element doesn't exist.
!    Update the `current' field even if we can't find an element that  
     would hold the bitmap's bit to make eventual allocation
     faster.  */
  
--- 340,346 ----
  }
  
  /* Return the element for INDX, or NULL if the element doesn't exist.
!    Update the `current' field even if we can't find an element that
     would hold the bitmap's bit to make eventual allocation
     faster.  */
  
*************** bitmap_list_find_element (bitmap head, u
*** 418,424 ****
     splay tree in Sleator and Tarjan's "Self-adjusting Binary Search Trees".
     It is probably not the most efficient form of splay trees, but it should
     be good enough to experiment with this idea of bitmaps-as-trees.
!    
     For all functions below, the variable or function argument "t" is a node
     in the tree, and "e" is a temporary or new node in the tree.  The rest
     is sufficiently straigh-forward (and very well explained in the paper)
--- 418,424 ----
     splay tree in Sleator and Tarjan's "Self-adjusting Binary Search Trees".
     It is probably not the most efficient form of splay trees, but it should
     be good enough to experiment with this idea of bitmaps-as-trees.
! 
     For all functions below, the variable or function argument "t" is a node
     in the tree, and "e" is a temporary or new node in the tree.  The rest
     is sufficiently straigh-forward (and very well explained in the paper)
*************** bitmap_alloc (bitmap_obstack *bit_obstac
*** 781,787 ****
    bitmap map;
  
    if (!bit_obstack)
!     bit_obstack = &bitmap_default_obstack;
    map = bit_obstack->heads;
    if (map)
      bit_obstack->heads = (class bitmap_head *) map->first;
--- 781,790 ----
    bitmap map;
  
    if (!bit_obstack)
!     {
!       gcc_assert (bitmap_default_obstack_depth > 0);
!       bit_obstack = &bitmap_default_obstack;
!     }
    map = bit_obstack->heads;
    if (map)
      bit_obstack->heads = (class bitmap_head *) map->first;
*************** bitmap_set_bit (bitmap head, int bit)
*** 966,973 ****
    if (ptr != 0)
      {
        bool res = (ptr->bits[word_num] & bit_val) == 0;
!       if (res)
! 	ptr->bits[word_num] |= bit_val;
        return res;
      }
  
--- 969,976 ----
    if (ptr != 0)
      {
        bool res = (ptr->bits[word_num] & bit_val) == 0;
!       /* Write back unconditionally to avoid branch mispredicts.  */
!       ptr->bits[word_num] |= bit_val;
        return res;
      }
  
diff -Nrcpad gcc-14.2.0/gcc/bitmap.h gcc-15.1.0/gcc/bitmap.h
*** gcc-14.2.0/gcc/bitmap.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/bitmap.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 60,66 ****
     sparse sets.  The canonical example in GCC is, of course, the "set of
     sets" for some CFG-based data flow problems (liveness analysis, dominance
     frontiers, etc.).
!    
     For random-access sparse sets of unknown universe, the binary tree
     representation is likely to be a more suitable choice.  Theoretical
     access times for the binary tree representation are better than those
--- 60,66 ----
     sparse sets.  The canonical example in GCC is, of course, the "set of
     sets" for some CFG-based data flow problems (liveness analysis, dominance
     frontiers, etc.).
! 
     For random-access sparse sets of unknown universe, the binary tree
     representation is likely to be a more suitable choice.  Theoretical
     access times for the binary tree representation are better than those
*************** along with GCC; see the file COPYING3.
*** 99,105 ****
     efficiently.  The downside is that many random-access operations are
     relatively slow, because the linked list has to be traversed to test
     membership (i.e. member_p/ add_member/remove_member).
!    
     To improve the performance of this set representation, the last
     accessed element and its index are cached.  For membership tests on
     members close to recently accessed members, the cached last element
--- 99,105 ----
     efficiently.  The downside is that many random-access operations are
     relatively slow, because the linked list has to be traversed to test
     membership (i.e. member_p/ add_member/remove_member).
! 
     To improve the performance of this set representation, the last
     accessed element and its index are cached.  For membership tests on
     members close to recently accessed members, the cached last element
*************** along with GCC; see the file COPYING3.
*** 176,182 ****
     of clearing the set, and the relatively large number of operations
     necessary to balance the tree.  Also, iterating the set members is
     not supported.
!    
     As for the linked-list representation, the last accessed element and
     its index are cached, so that membership tests on the latest accessed
     members is a constant-time operation.  Other lookups take O(logE)
--- 176,182 ----
     of clearing the set, and the relatively large number of operations
     necessary to balance the tree.  Also, iterating the set members is
     not supported.
! 
     As for the linked-list representation, the last accessed element and
     its index are cached, so that membership tests on the latest accessed
     members is a constant-time operation.  Other lookups take O(logE)
*************** class auto_bitmap
*** 959,968 ****
  
   private:
    // Prevent making a copy that references our bitmap.
!   auto_bitmap (const auto_bitmap &);
!   auto_bitmap &operator = (const auto_bitmap &);
!   auto_bitmap (auto_bitmap &&);
!   auto_bitmap &operator = (auto_bitmap &&);
  
    bitmap_head m_bits;
  };
--- 959,968 ----
  
   private:
    // Prevent making a copy that references our bitmap.
!   auto_bitmap (const auto_bitmap &) = delete;
!   auto_bitmap &operator = (const auto_bitmap &) = delete;
!   auto_bitmap (auto_bitmap &&) = delete;
!   auto_bitmap &operator = (auto_bitmap &&) = delete;
  
    bitmap_head m_bits;
  };
diff -Nrcpad gcc-14.2.0/gcc/btfout.cc gcc-15.1.0/gcc/btfout.cc
*** gcc-14.2.0/gcc/btfout.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/btfout.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static char btf_info_section_label[MAX_B
*** 61,120 ****
  #define BTF_INFO_SECTION_LABEL  "Lbtf"
  #endif
  
- /* BTF encodes void as type id 0.  */
- 
- #define BTF_VOID_TYPEID 0
- #define BTF_INIT_TYPEID 1
- 
  #define BTF_INVALID_TYPEID 0xFFFFFFFF
  
! /* Mapping of CTF variables to the IDs they will be assigned when they are
!    converted to BTF_KIND_VAR type records. Strictly accounts for the index
!    from the start of the variable type entries, does not include the number
!    of types emitted prior to the variable records.  */
! static GTY (()) hash_map <ctf_dvdef_ref, unsigned> *btf_var_ids;
! 
! /* Mapping of type IDs from original CTF ID to BTF ID. Types do not map
!    1-to-1 from CTF to BTF. To avoid polluting the CTF container when updating
!    type references-by-ID, we use this map instead.  */
! static ctf_id_t * btf_id_map = NULL;
  
! /* Information for creating the BTF_KIND_DATASEC records.  */
  typedef struct btf_datasec
  {
!   const char *name;                    /* Section name, e.g. ".bss".  */
!   uint32_t name_offset;                /* Offset to name in string table.  */
!   vec<struct btf_var_secinfo> entries; /* Variable entries in this section.  */
  } btf_datasec_t;
  
  /* One BTF_KIND_DATASEC record is created for each output data section which
     will hold at least one variable.  */
  static vec<btf_datasec_t> datasecs;
  
- /* Holes occur for types which are present in the CTF container, but are either
-    non-representable or redundant in BTF.  */
- static vec<ctf_id_t> holes;
- 
- /* CTF definition(s) of void. Only one definition of void should be generated.
-    We should not encounter more than one definition of void, but use a vector
-    to be safe.  */
- static vec<ctf_id_t> voids;
- 
  /* Functions in BTF have two separate type records - one for the prototype
     (BTF_KIND_FUNC_PROTO), as well as a BTF_KIND_FUNC. CTF_K_FUNCTION types
     map closely to BTF_KIND_FUNC_PROTO, but the BTF_KIND_FUNC records must be
     created. This vector holds them.  */
  static GTY (()) vec<ctf_dtdef_ref, va_gc> *funcs;
  
! /* The number of BTF variables added to the TU CTF container.  */
! static unsigned int num_vars_added = 0;
! 
! /* The number of BTF types added to the TU CTF container.  */
! static unsigned int num_types_added = 0;
  
! /* The number of types synthesized for BTF that do not correspond to
!    CTF types.  */
! static unsigned int num_types_created = 0;
  
  /* Name strings for BTF kinds.
     Note: the indices here must match the type defines in btf.h.  */
--- 61,106 ----
  #define BTF_INFO_SECTION_LABEL  "Lbtf"
  #endif
  
  #define BTF_INVALID_TYPEID 0xFFFFFFFF
  
! /* Internal representation of an entry in a BTF_KIND_DATASEC record.  */
! struct btf_datasec_entry
! {
!   union {
!     ctf_dvdef_ref dvd; /* Reference to the underlying variable represented.  */
!     ctf_dtdef_ref dtd; /* Reference to the underlying type represented.  */
!   };
!   bool is_var;	       /* True iff this entry represents a variable.  */
!   uint32_t size;       /* Size of variable or function, in bytes.
! 			  For functions, always zero at compile time.  */
! };
  
! /* Internal representation of a BTF_KIND_DATASEC record.  */
  typedef struct btf_datasec
  {
!   ctf_id_t id;				 /* BTF type ID of this record.  */
!   const char *name;			 /* Section name, e.g. ".bss".  */
!   uint32_t name_offset;			 /* Offset to name in string table.  */
!   vec<struct btf_datasec_entry> entries; /* Entries in this section.  */
  } btf_datasec_t;
  
  /* One BTF_KIND_DATASEC record is created for each output data section which
     will hold at least one variable.  */
  static vec<btf_datasec_t> datasecs;
  
  /* Functions in BTF have two separate type records - one for the prototype
     (BTF_KIND_FUNC_PROTO), as well as a BTF_KIND_FUNC. CTF_K_FUNCTION types
     map closely to BTF_KIND_FUNC_PROTO, but the BTF_KIND_FUNC records must be
     created. This vector holds them.  */
  static GTY (()) vec<ctf_dtdef_ref, va_gc> *funcs;
  
! /* Maps BTF_KIND_FUNC_PROTO to the BTF_KIND_FUNC record for it.  Used when
!    creating DATASEC entries.  */
! static GTY (()) hash_map<ctf_dtdef_ref, ctf_dtdef_ref> *func_map;
  
! /* Highest BTF ID assigned to any regular type translated from CTF.
!    Does not include BTF_KIND_{VAR,FUNC,DATASEC} types.  */
! static ctf_id_t max_translated_id = 0;
  
  /* Name strings for BTF kinds.
     Note: the indices here must match the type defines in btf.h.  */
*************** get_btf_kind (uint32_t ctf_kind)
*** 160,165 ****
--- 146,161 ----
    return BTF_KIND_UNKN;
  }
  
+ /* Convenience wrapper around get_btf_kind for the common case.  */
+ 
+ uint32_t
+ btf_dtd_kind (ctf_dtdef_ref dtd)
+ {
+   if (!dtd)
+     return BTF_KIND_UNKN;
+   return get_btf_kind (CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info));
+ }
+ 
  /* Some BTF types, like BTF_KIND_FUNC_PROTO, are anonymous.  The machinery
     in btfout to emit BTF, may reset dtd_data->ctti_name, but does not update
     the name in the ctf_dtdef_ref type object (deliberate choice).  This
*************** get_btf_type_name (ctf_dtdef_ref dtd)
*** 173,273 ****
    return (dtd->dtd_data.ctti_name) ? dtd->dtd_name : anon;
  }
  
! /* Helper routines to map between 'relative' and 'absolute' IDs.
! 
!    In BTF all records (including variables) are output in one long list, and all
!    inter-type references are via index into that list.  But internally since we
!    a) translate from CTF, which separates variable records from regular types
!    and b) create some additional types after the fact, things like VAR and FUNC
!    records are stored in separate vectors with their own indices.  These
!    functions map between the 'relative' IDs (i.e.  indices in their respective
!    containers) and 'absolute' IDs (i.e.  indices in the final contiguous
!    output list), which goes in order:
!      all normal type records translated from CTF
!      all BTF_KIND_VAR records
!      all BTF_KIND_FUNC records (synthesized split function records)
!      all BTF_KIND_DATASEC records (synthesized)
! 
!    The extra '+ 1's below are to account for the implicit "void" record, which
!    has index 0 but isn't actually contained in the type list.  */
! 
! /* Return the final BTF ID of the variable at relative index REL.  */
! 
! static ctf_id_t
! btf_absolute_var_id (ctf_id_t rel)
! {
!   return rel + (num_types_added + 1);
! }
! 
! /* Return the relative index of the variable with final BTF ID ABS.  */
! 
! static ctf_id_t
! btf_relative_var_id (ctf_id_t abs)
! {
!   return abs - (num_types_added + 1);
! }
! 
! /* Return the final BTF ID of the func record at relative index REL.  */
! 
! static ctf_id_t
! btf_absolute_func_id (ctf_id_t rel)
! {
!   return rel + (num_types_added + 1) + num_vars_added;
! }
! 
! /* Return the relative index of the func record with final BTF ID ABS.  */
! 
! static ctf_id_t
! btf_relative_func_id (ctf_id_t abs)
! {
!   return abs - ((num_types_added + 1) + num_vars_added);
! }
! 
! /* Return the final BTF ID of the datasec record at relative index REL.  */
! 
! static ctf_id_t
! btf_absolute_datasec_id (ctf_id_t rel)
! {
!   return rel + (num_types_added + 1) + num_vars_added + funcs->length ();
! }
! 
! 
! /* Allocate the btf_id_map, and initialize elements to BTF_INVALID_TYPEID.  */
! 
! static void
! init_btf_id_map (size_t len)
! {
!   btf_id_map = XNEWVEC (ctf_id_t, len);
! 
!   btf_id_map[0] = BTF_VOID_TYPEID;
!   for (size_t i = 1; i < len; i++)
!     btf_id_map[i] = BTF_INVALID_TYPEID;
! }
! 
! /* Return the BTF type ID of CTF type ID KEY, or BTF_INVALID_TYPEID if the CTF
!    type with ID KEY does not map to a BTF type.  */
! 
! ctf_id_t
! get_btf_id (ctf_id_t key)
  {
!   return btf_id_map[key];
! }
  
! /* Set the CTF type ID KEY to map to BTF type ID VAL.  */
  
! static inline void
! set_btf_id (ctf_id_t key, ctf_id_t val)
! {
!   btf_id_map[key] = val;
! }
  
! /* Return TRUE iff the given CTF type ID maps to a BTF type which will
!    be emitted.  */
! static inline bool
! btf_emit_id_p (ctf_id_t id)
! {
!   return ((btf_id_map[id] != BTF_VOID_TYPEID)
! 	  && (btf_id_map[id] <= BTF_MAX_TYPE));
  }
  
  /* Return true if DTD is a forward-declared enum.  The BTF representation
--- 169,188 ----
    return (dtd->dtd_data.ctti_name) ? dtd->dtd_name : anon;
  }
  
! static bool
! btf_emit_type_p (ctf_dtdef_ref dtd)
  {
!   uint32_t kind = btf_dtd_kind (dtd);
  
!   if (kind == BTF_KIND_UNKN)
!     /* This type is not representable in BTF.  */
!     return false;
  
!   if (kind == BTF_KIND_INT && dtd->dtd_data.ctti_size == 0)
!     /* This is a (redundant) definition of void.  */
!     return false;
  
!   return true;
  }
  
  /* Return true if DTD is a forward-declared enum.  The BTF representation
*************** btf_emit_id_p (ctf_id_t id)
*** 276,284 ****
  static bool
  btf_fwd_to_enum_p (ctf_dtdef_ref dtd)
  {
!   uint32_t btf_kind = get_btf_kind (CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info));
! 
!   return (btf_kind == BTF_KIND_FWD && dtd->dtd_data.ctti_type == CTF_K_ENUM);
  }
  
  /* Each BTF type can be followed additional, variable-length information
--- 191,198 ----
  static bool
  btf_fwd_to_enum_p (ctf_dtdef_ref dtd)
  {
!   uint32_t kind = btf_dtd_kind (dtd);
!   return (kind == BTF_KIND_FWD && dtd->dtd_data.ctti_type == CTF_K_ENUM);
  }
  
  /* Each BTF type can be followed additional, variable-length information
*************** btf_calc_num_vbytes (ctf_dtdef_ref dtd)
*** 290,296 ****
  {
    uint64_t vlen_bytes = 0;
  
!   uint32_t kind = get_btf_kind (CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info));
    uint32_t vlen = CTF_V2_INFO_VLEN (dtd->dtd_data.ctti_info);
  
    switch (kind)
--- 204,210 ----
  {
    uint64_t vlen_bytes = 0;
  
!   uint32_t kind = btf_dtd_kind (dtd);
    uint32_t vlen = CTF_V2_INFO_VLEN (dtd->dtd_data.ctti_info);
  
    switch (kind)
*************** init_btf_sections (void)
*** 360,400 ****
  			       BTF_INFO_SECTION_LABEL, btf_label_num++);
  }
  
- /* Push a BTF datasec variable entry INFO into the datasec named SECNAME,
-    creating the datasec if it does not already exist.  */
- 
- static void
- btf_datasec_push_entry (ctf_container_ref ctfc, const char *secname,
- 			struct btf_var_secinfo info)
- {
-   if (secname == NULL)
-     return;
- 
-   for (size_t i = 0; i < datasecs.length (); i++)
-     if (strcmp (datasecs[i].name, secname) == 0)
-       {
- 	datasecs[i].entries.safe_push (info);
- 	return;
-       }
- 
-   /* If we don't already have a datasec record for secname, make one.  */
- 
-   uint32_t str_off;
-   ctf_add_string (ctfc, secname, &str_off, CTF_AUX_STRTAB);
-   if (strcmp (secname, ""))
-     ctfc->ctfc_aux_strlen += strlen (secname) + 1;
- 
-   btf_datasec_t ds;
-   ds.name = secname;
-   ds.name_offset = str_off;
- 
-   ds.entries.create (0);
-   ds.entries.safe_push (info);
- 
-   datasecs.safe_push (ds);
- }
- 
- 
  /* Return the section name, as of interest to btf_collect_datasec, for the
     given symtab node.  Note that this deliberately returns NULL for objects
     which do not go in a section btf_collect_datasec cares about.  */
--- 274,279 ----
*************** get_section_name (symtab_node *node)
*** 423,722 ****
    return section_name;
  }
  
- /* Construct all BTF_KIND_DATASEC records for CTFC. One such record is created
-    for each non-empty data-containing section in the output. Each record is
-    followed by a variable number of entries describing the variables stored
-    in that section.  */
- 
- static void
- btf_collect_datasec (ctf_container_ref ctfc)
- {
-   cgraph_node *func;
-   FOR_EACH_FUNCTION (func)
-     {
-       dw_die_ref die = lookup_decl_die (func->decl);
-       if (die == NULL)
- 	continue;
- 
-       ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die);
-       if (dtd == NULL)
- 	continue;
- 
-       if (DECL_EXTERNAL (func->decl)
- 	  && (lookup_attribute ("kernel_helper",
- 				DECL_ATTRIBUTES (func->decl))) != NULL_TREE)
- 	continue;
- 
-       /* Functions actually get two types: a BTF_KIND_FUNC_PROTO, and
- 	 also a BTF_KIND_FUNC.  But the CTF container only allocates one
- 	 type per function, which matches closely with BTF_KIND_FUNC_PROTO.
- 	 For each such function, also allocate a BTF_KIND_FUNC entry.
- 	 These will be output later.  */
-       ctf_dtdef_ref func_dtd = ggc_cleared_alloc<ctf_dtdef_t> ();
-       func_dtd->dtd_data = dtd->dtd_data;
-       func_dtd->dtd_data.ctti_type = dtd->dtd_type;
-       func_dtd->linkage = dtd->linkage;
-       func_dtd->dtd_name = dtd->dtd_name;
-       /* +1 for the sentinel type not in the types map.  */
-       func_dtd->dtd_type = num_types_added + num_types_created + 1;
- 
-       /* Only the BTF_KIND_FUNC type actually references the name. The
- 	 BTF_KIND_FUNC_PROTO is always anonymous.  */
-       dtd->dtd_data.ctti_name = 0;
- 
-       vec_safe_push (funcs, func_dtd);
-       num_types_created++;
- 
-       /* Mark any 'extern' funcs and add DATASEC entries for them.  */
-       if (DECL_EXTERNAL (func->decl))
- 	{
- 	  func_dtd->linkage = BTF_FUNC_EXTERN;
- 
- 	  const char *section_name = get_section_name (func);
- 	  /* Note: get_section_name () returns NULL for functions in text
- 	     section.  This is intentional, since we do not want to generate
- 	     DATASEC entries for them.  */
- 	  if (section_name == NULL)
- 	    continue;
- 
- 	  struct btf_var_secinfo info;
- 
- 	  info.type = func_dtd->dtd_type;
- 
- 	  /* Both zero at compile time.  */
- 	  info.size = 0;
- 	  info.offset = 0;
- 
- 	  btf_datasec_push_entry (ctfc, section_name, info);
- 	}
-     }
- 
-   varpool_node *node;
-   FOR_EACH_VARIABLE (node)
-     {
-       dw_die_ref die = lookup_decl_die (node->decl);
-       if (die == NULL)
- 	continue;
- 
-       ctf_dvdef_ref dvd = ctf_dvd_lookup (ctfc, die);
-       if (dvd == NULL)
- 	continue;
- 
-       /* Mark extern variables.  */
-       if (DECL_EXTERNAL (node->decl))
- 	{
- 	  dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN;
- 
- 	  /* PR112849: avoid assuming a section for extern decls without
- 	     an explicit section, which would result in incorrectly
- 	     emitting a BTF_KIND_DATASEC entry for them.  */
- 	  if (node->get_section () == NULL)
- 	    continue;
- 	}
- 
-       const char *section_name = get_section_name (node);
-       if (section_name == NULL)
- 	continue;
- 
-       struct btf_var_secinfo info;
- 
-       info.type = 0;
-       unsigned int *var_id = btf_var_ids->get (dvd);
-       if (var_id)
- 	info.type = btf_absolute_var_id (*var_id);
-       else
- 	continue;
- 
-       info.size = 0;
-       tree size = DECL_SIZE_UNIT (node->decl);
-       if (tree_fits_uhwi_p (size))
- 	info.size = tree_to_uhwi (size);
-       else if (VOID_TYPE_P (TREE_TYPE (node->decl)))
- 	info.size = 1;
- 
-       /* Offset is left as 0 at compile time, to be filled in by loaders such
- 	 as libbpf.  */
-       info.offset = 0;
- 
-       btf_datasec_push_entry (ctfc, section_name, info);
-     }
- 
-   num_types_created += datasecs.length ();
- }
- 
- /* Return true if the type ID is that of a type which will not be emitted (for
-    example, if it is not representable in BTF).  */
- 
- static bool
- btf_removed_type_p (ctf_id_t id)
- {
-   return holes.contains (id);
- }
- 
- /* Adjust the given type ID to account for holes and duplicate definitions of
-    void.  */
- 
- static ctf_id_t
- btf_adjust_type_id (ctf_id_t id)
- {
-   size_t n;
-   ctf_id_t i = 0;
- 
-   /* Do not adjust invalid type markers.  */
-   if (id == BTF_INVALID_TYPEID)
-     return id;
- 
-   for (n = 0; n < voids.length (); n++)
-     if (id == voids[n])
-       return BTF_VOID_TYPEID;
- 
-   for (n = 0; n < holes.length (); n++)
-     {
-       if (holes[n] < id)
- 	i++;
-       else if (holes[n] == id)
- 	return BTF_VOID_TYPEID;
-     }
- 
-   return id - i;
- }
- 
- /* Postprocessing callback routine for types.  */
- 
- int
- btf_dtd_postprocess_cb (ctf_dtdef_ref *slot, ctf_container_ref arg_ctfc)
- {
-   ctf_dtdef_ref ctftype = (ctf_dtdef_ref) * slot;
- 
-   size_t index = ctftype->dtd_type;
-   gcc_assert (index <= arg_ctfc->ctfc_types->elements ());
- 
-   uint32_t ctf_kind, btf_kind;
- 
-   ctf_kind = CTF_V2_INFO_KIND (ctftype->dtd_data.ctti_info);
-   btf_kind = get_btf_kind (ctf_kind);
- 
-   if (btf_kind == BTF_KIND_UNKN)
-     /* This type is not representable in BTF. Create a hole.  */
-     holes.safe_push (ctftype->dtd_type);
- 
-   else if (btf_kind == BTF_KIND_INT && ctftype->dtd_data.ctti_size == 0)
-     {
-       /* This is a (redundant) definition of void.  */
-       voids.safe_push (ctftype->dtd_type);
-       holes.safe_push (ctftype->dtd_type);
-     }
- 
-   arg_ctfc->ctfc_types_list[index] = ctftype;
- 
-   return 1;
- }
- 
- /* Preprocessing callback routine for variables.  */
- 
- int
- btf_dvd_emit_preprocess_cb (ctf_dvdef_ref *slot, ctf_container_ref arg_ctfc)
- {
-   ctf_dvdef_ref var = (ctf_dvdef_ref) * slot;
- 
-   /* If this is an extern variable declaration with a defining declaration
-      later, skip it so that only the defining declaration is emitted.
-      This is the same case, fix and reasoning as in CTF; see PR105089.  */
-   if (ctf_dvd_ignore_lookup (arg_ctfc, var->dvd_key))
-     return 1;
- 
-   /* Do not add variables which refer to unsupported types.  */
-   if (!voids.contains (var->dvd_type) && btf_removed_type_p (var->dvd_type))
-     return 1;
- 
-   arg_ctfc->ctfc_vars_list[num_vars_added] = var;
-   btf_var_ids->put (var, num_vars_added);
- 
-   num_vars_added++;
-   num_types_created++;
- 
-   return 1;
- }
- 
- /* Preprocessing callback routine for types.  */
- 
- static void
- btf_dtd_emit_preprocess_cb (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
- {
-   if (!btf_emit_id_p (dtd->dtd_type))
-     return;
- 
-   ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (dtd);
- }
- 
- /* Preprocess the CTF information to prepare for BTF output.  BTF is almost a
-    subset of CTF, with many small differences in encoding, and lacking support
-    for some types (notably floating point formats).
- 
-    During the preprocessing pass:
-    - Ascertain that the sorted list of types has been prepared.  For the BTF
-      generation process, this is taken care of by the btf_init_postprocess ().
- 
-    - BTF_KIND_FUNC and BTF_KIND_DATASEC records are constructed. These types do
-      not have analogues in CTF (the analogous type to CTF_K_FUNCTION is
-      BTF_KIND_FUNC_PROTO), but can be relatively easily deduced from CTF
-      information.
- 
-    - Construct BTF_KIND_VAR records, representing variables.
- 
-    - Calculate the total size in bytes of variable-length information following
-      BTF type records. This is used for outputting the BTF header.
- 
-    After preprocessing, all BTF information is ready to be output:
-    - ctfc->ctfc_types_list holdstypes converted from CTF types. This does not
-      include KIND_VAR, KIND_FUNC, nor KIND_DATASEC types. These types have been
-      re-encoded to the appropriate representation in BTF.
-    - ctfc->ctfc_vars_list holds all variables which should be output.
-      Variables of unsupported types are not present in this list.
-    - Vector 'funcs' holds all BTF_KIND_FUNC types, one to match each
-      BTF_KIND_FUNC_PROTO.
-    - Vector 'datasecs' holds all BTF_KIND_DATASEC types.  */
- 
- static void
- btf_emit_preprocess (ctf_container_ref ctfc)
- {
-   size_t num_ctf_types = ctfc->ctfc_types->elements ();
-   size_t num_ctf_vars = ctfc->ctfc_vars->elements ();
-   size_t i;
- 
-   if (num_ctf_types)
-     {
-       gcc_assert (ctfc->ctfc_types_list);
-       /* Preprocess the types.  */
-       for (i = 1; i <= num_ctf_types; i++)
- 	btf_dtd_emit_preprocess_cb (ctfc, ctfc->ctfc_types_list[i]);
-     }
- 
-   btf_var_ids = hash_map<ctf_dvdef_ref, unsigned int>::create_ggc (100);
- 
-   if (num_ctf_vars)
-     {
-       /* Allocate and construct the list of variables. While BTF variables are
- 	 not distinct from types (in that variables are simply types with
- 	 BTF_KIND_VAR), it is simpler to maintain a separate list of variables
- 	 and append them to the types list during output.  */
-       ctfc->ctfc_vars_list = ggc_vec_alloc<ctf_dvdef_ref>(num_ctf_vars);
-       ctfc->ctfc_vars->traverse<ctf_container_ref, btf_dvd_emit_preprocess_cb>
- 	(ctfc);
- 
-       ctfc->ctfc_num_vlen_bytes += (num_vars_added * sizeof (struct btf_var));
-     }
- 
-   btf_collect_datasec (ctfc);
- }
- 
  /* Return true iff DMD is a member description of a bit-field which can be
     validly represented in BTF.  */
  
  static bool
! btf_dmd_representable_bitfield_p (ctf_container_ref ctfc, ctf_dmdef_t *dmd)
  {
!   ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type];
  
    if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
--- 302,316 ----
    return section_name;
  }
  
  /* Return true iff DMD is a member description of a bit-field which can be
     validly represented in BTF.  */
  
  static bool
! btf_dmd_representable_bitfield_p (ctf_dmdef_t *dmd)
  {
!   ctf_dtdef_ref ref_type = dmd->dmd_type;
!   if (!ref_type)
!     return false;
  
    if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
*************** btf_dmd_representable_bitfield_p (ctf_co
*** 738,813 ****
  /* Asm'out a reference to another BTF type.  */
  
  static void
! btf_asm_type_ref (const char *prefix, ctf_container_ref ctfc, ctf_id_t ctf_id)
  {
!   ctf_id_t btf_id = get_btf_id (ctf_id);
!   if (btf_id == BTF_VOID_TYPEID || btf_id == BTF_INVALID_TYPEID)
!     {
!       /* There is no explicit void type.
! 	 Also handle any invalid refs that made it this far, just in case.  */
!       dw2_asm_output_data (4, btf_id, "%s: void", prefix);
!     }
    else
      {
!       gcc_assert (btf_id <= num_types_added);
! 
!       /* Ref to a standard type in the types list.  Note: take care that we
! 	 must index the type list by the original CTF id, not the BTF id.  */
!       ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[ctf_id];
!       uint32_t ref_kind
! 	= get_btf_kind (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info));
! 
!       const char *kind_name = btf_fwd_to_enum_p (ref_type)
! 	? btf_kind_name (BTF_KIND_ENUM)
! 	: btf_kind_name (ref_kind);
! 
!       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_%s '%s')",
! 			   prefix, kind_name,
! 			   get_btf_type_name (ref_type));
!     }
! }
! 
! /* Asm'out a reference to a BTF_KIND_VAR or BTF_KIND_FUNC type.  These type
!    kinds are BTF-specific, and should only be referred to by entries in
!    BTF_KIND_DATASEC records.  */
! 
! static void
! btf_asm_datasec_type_ref (const char *prefix, ctf_container_ref ctfc,
! 			  ctf_id_t btf_id)
! {
!   if (btf_id >= num_types_added + 1
!       && btf_id < num_types_added + num_vars_added + 1)
!     {
!       /* Ref to a variable.  Should only appear in DATASEC entries.  */
!       ctf_id_t var_id = btf_relative_var_id (btf_id);
!       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[var_id];
!       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_VAR '%s')",
! 			   prefix, dvd->dvd_name);
  
      }
-   else if (btf_id >= num_types_added + num_vars_added + 1)
-     {
-       /* Ref to a FUNC record.  */
-       size_t func_id = btf_relative_func_id (btf_id);
-       ctf_dtdef_ref ref_type = (*funcs)[func_id];
-       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_FUNC '%s')",
- 			   prefix, get_btf_type_name (ref_type));
-     }
-   else
-     /* The caller should not be calling this.  */
-     gcc_unreachable ();
  }
  
  /* Asm'out a BTF type. This routine is responsible for the bulk of the task
     of converting CTF types to their BTF representation.  */
  
  static void
! btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
  {
    uint32_t btf_kind, btf_kflag, btf_vlen, btf_size;
    uint32_t ctf_info = dtd->dtd_data.ctti_info;
  
!   btf_kind = get_btf_kind (CTF_V2_INFO_KIND (ctf_info));
    btf_size = dtd->dtd_data.ctti_size;
    btf_vlen = CTF_V2_INFO_VLEN (ctf_info);
  
--- 332,365 ----
  /* Asm'out a reference to another BTF type.  */
  
  static void
! btf_asm_type_ref (const char *prefix, ctf_dtdef_ref dtd)
  {
!   if (!dtd || !btf_emit_type_p (dtd))
!     dw2_asm_output_data (4, BTF_VOID_TYPEID, "%s: void", prefix);
    else
      {
!       uint32_t kind = btf_dtd_kind (dtd);
!       if (btf_fwd_to_enum_p (dtd))
! 	kind = BTF_KIND_ENUM;
!       else if (kind == BTF_KIND_FUNC_PROTO && dtd->dtd_type > max_translated_id)
! 	kind = BTF_KIND_FUNC;
  
+       dw2_asm_output_data (4, dtd->dtd_type, "%s: (BTF_KIND_%s '%s')",
+ 			   prefix, btf_kind_name (kind),
+ 			   get_btf_type_name (dtd));
      }
  }
  
  /* Asm'out a BTF type. This routine is responsible for the bulk of the task
     of converting CTF types to their BTF representation.  */
  
  static void
! btf_asm_type (ctf_dtdef_ref dtd)
  {
    uint32_t btf_kind, btf_kflag, btf_vlen, btf_size;
    uint32_t ctf_info = dtd->dtd_data.ctti_info;
  
!   btf_kind = btf_dtd_kind (dtd);
    btf_size = dtd->dtd_data.ctti_size;
    btf_vlen = CTF_V2_INFO_VLEN (ctf_info);
  
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 826,842 ****
  
    if (btf_kind == BTF_KIND_STRUCT || btf_kind == BTF_KIND_UNION)
      {
!       /* If a struct/union has ANY bitfield members, set kflag=1.
! 	 Note that we must also change the encoding of every member to encode
! 	 both member bitfield size (stealing most-significant 8 bits) and bit
! 	 offset (LS 24 bits). This is done during preprocessing.  */
        ctf_dmdef_t *dmd;
        for (dmd = dtd->dtd_u.dtu_members;
  	   dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
  	{
  	  /* Set kflag if this member is a representable bitfield.  */
! 	  if (btf_dmd_representable_bitfield_p (ctfc, dmd))
! 	    btf_kflag = 1;
  	}
      }
  
--- 378,394 ----
  
    if (btf_kind == BTF_KIND_STRUCT || btf_kind == BTF_KIND_UNION)
      {
!       /* If a struct/union has ANY bitfield members, set kflag=1.  */
        ctf_dmdef_t *dmd;
        for (dmd = dtd->dtd_u.dtu_members;
  	   dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
  	{
  	  /* Set kflag if this member is a representable bitfield.  */
! 	  if (btf_dmd_representable_bitfield_p (dmd))
! 	    {
! 	      btf_kflag = 1;
! 	      break;
! 	    }
  	}
      }
  
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 870,876 ****
  		    : BTF_KF_ENUM_SIGNED;
        if (dtd->dtd_data.ctti_size == 0x8)
  	btf_kind = BTF_KIND_ENUM64;
!    }
  
    /* PR debug/112656.  BTF_KIND_FUNC_PROTO is always anonymous.  */
    else if (btf_kind == BTF_KIND_FUNC_PROTO)
--- 422,428 ----
  		    : BTF_KF_ENUM_SIGNED;
        if (dtd->dtd_data.ctti_size == 0x8)
  	btf_kind = BTF_KIND_ENUM64;
!     }
  
    /* PR debug/112656.  BTF_KIND_FUNC_PROTO is always anonymous.  */
    else if (btf_kind == BTF_KIND_FUNC_PROTO)
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 878,884 ****
  
    dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
  		       "TYPE %" PRIu64 " BTF_KIND_%s '%s'",
! 		       get_btf_id (dtd->dtd_type), btf_kind_name (btf_kind),
  		       get_btf_type_name (dtd));
    dw2_asm_output_data (4, BTF_TYPE_INFO (btf_kind, btf_kflag, btf_vlen),
  		       "btt_info: kind=%u, kflag=%u, vlen=%u",
--- 430,436 ----
  
    dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
  		       "TYPE %" PRIu64 " BTF_KIND_%s '%s'",
! 		       dtd->dtd_type, btf_kind_name (btf_kind),
  		       get_btf_type_name (dtd));
    dw2_asm_output_data (4, BTF_TYPE_INFO (btf_kind, btf_kflag, btf_vlen),
  		       "btt_info: kind=%u, kflag=%u, vlen=%u",
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 904,933 ****
        break;
      }
  
!   ctf_id_t ref_id = dtd->dtd_data.ctti_type;
!   btf_asm_type_ref ("btt_type", ctfc, ref_id);
  }
  
  /* Asm'out the variable information following a BTF_KIND_ARRAY.  */
  
  static void
! btf_asm_array (ctf_container_ref ctfc, ctf_arinfo_t arr)
  {
!   btf_asm_type_ref ("bta_elem_type", ctfc, arr.ctr_contents);
!   btf_asm_type_ref ("bta_index_type", ctfc, arr.ctr_index);
    dw2_asm_output_data (4, arr.ctr_nelems, "bta_nelems");
  }
  
  /* Asm'out a BTF_KIND_VAR.  */
  
  static void
! btf_asm_varent (ctf_container_ref ctfc, ctf_dvdef_ref var)
  {
!   dw2_asm_output_data (4, var->dvd_name_offset, "TYPE %u BTF_KIND_VAR '%s'",
! 		       (*(btf_var_ids->get (var)) + num_types_added + 1),
! 		       var->dvd_name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_VAR, 0, 0), "btv_info");
!   btf_asm_type_ref ("btv_type", ctfc, var->dvd_type);
    dw2_asm_output_data (4, var->dvd_visibility, "btv_linkage");
  }
  
--- 456,484 ----
        break;
      }
  
!   btf_asm_type_ref ("btt_type", dtd->ref_type);
  }
  
  /* Asm'out the variable information following a BTF_KIND_ARRAY.  */
  
  static void
! btf_asm_array (ctf_arinfo_t arr)
  {
!   btf_asm_type_ref ("bta_elem_type", arr.ctr_contents);
!   btf_asm_type_ref ("bta_index_type", arr.ctr_index);
    dw2_asm_output_data (4, arr.ctr_nelems, "bta_nelems");
  }
  
  /* Asm'out a BTF_KIND_VAR.  */
  
  static void
! btf_asm_varent (ctf_dvdef_ref var)
  {
!   dw2_asm_output_data (4, var->dvd_name_offset,
! 		       "TYPE %" PRIu64 " BTF_KIND_VAR '%s'",
! 		       var->dvd_id, var->dvd_name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_VAR, 0, 0), "btv_info");
!   btf_asm_type_ref ("btv_type", var->dvd_type);
    dw2_asm_output_data (4, var->dvd_visibility, "btv_linkage");
  }
  
*************** btf_asm_varent (ctf_container_ref ctfc,
*** 935,957 ****
     BTF_KIND_UNION.  */
  
  static void
! btf_asm_sou_member (ctf_container_ref ctfc, ctf_dmdef_t * dmd, unsigned int idx)
  {
!   ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type];
!   ctf_id_t base_type = dmd->dmd_type;
    uint64_t sou_offset = dmd->dmd_offset;
  
    dw2_asm_output_data (4, dmd->dmd_name_offset,
  		       "MEMBER '%s' idx=%u",
  		       dmd->dmd_name, idx);
  
!   /* Re-encode bitfields to BTF representation.  */
!   if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
!       if (btf_dmd_representable_bitfield_p (ctfc, dmd))
  	{
! 	  unsigned short word_offset = ref_type->dtd_u.dtu_slice.cts_offset;
! 	  unsigned short bits = ref_type->dtd_u.dtu_slice.cts_bits;
  
  	  /* Pack the bit offset and bitfield size together.  */
  	  sou_offset += word_offset;
--- 486,507 ----
     BTF_KIND_UNION.  */
  
  static void
! btf_asm_sou_member (ctf_dmdef_t * dmd, unsigned int idx)
  {
!   ctf_dtdef_ref base_type = dmd->dmd_type;
    uint64_t sou_offset = dmd->dmd_offset;
  
    dw2_asm_output_data (4, dmd->dmd_name_offset,
  		       "MEMBER '%s' idx=%u",
  		       dmd->dmd_name, idx);
  
!   if (base_type
!       && CTF_V2_INFO_KIND (base_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
!       if (btf_dmd_representable_bitfield_p (dmd))
  	{
! 	  unsigned short word_offset = base_type->dtd_u.dtu_slice.cts_offset;
! 	  unsigned short bits = base_type->dtd_u.dtu_slice.cts_bits;
  
  	  /* Pack the bit offset and bitfield size together.  */
  	  sou_offset += word_offset;
*************** btf_asm_sou_member (ctf_container_ref ct
*** 959,975 ****
  	  sou_offset |= ((bits & 0xff) << 24);
  
  	  /* Refer to the base type of the slice.  */
! 	  base_type = ref_type->dtd_u.dtu_slice.cts_type;
  	}
        else
  	{
  	  /* Bitfield cannot be represented in BTF.  Emit the member as having
  	     'void' type.  */
! 	  base_type = BTF_VOID_TYPEID;
  	}
      }
  
!   btf_asm_type_ref ("btm_type", ctfc, base_type);
    dw2_asm_output_data (4, sou_offset, "btm_offset");
  }
  
--- 509,525 ----
  	  sou_offset |= ((bits & 0xff) << 24);
  
  	  /* Refer to the base type of the slice.  */
! 	  base_type = base_type->dtd_u.dtu_slice.cts_type;
  	}
        else
  	{
  	  /* Bitfield cannot be represented in BTF.  Emit the member as having
  	     'void' type.  */
! 	  base_type = NULL;
  	}
      }
  
!   btf_asm_type_ref ("btm_type", base_type);
    dw2_asm_output_data (4, sou_offset, "btm_offset");
  }
  
*************** btf_asm_enum_const (unsigned int size, c
*** 992,1075 ****
  /* Asm'out a function parameter description following a BTF_KIND_FUNC_PROTO.  */
  
  static void
! btf_asm_func_arg (ctf_container_ref ctfc, ctf_func_arg_t * farg,
! 		  size_t stroffset)
  {
    /* If the function arg does not have a name, refer to the null string at
       the start of the string table. This ensures correct encoding for varargs
       '...' arguments.  */
    if ((farg->farg_name != NULL) && strcmp (farg->farg_name, ""))
!     dw2_asm_output_data (4, farg->farg_name_offset + stroffset, "farg_name");
    else
!     dw2_asm_output_data (4, 0, "farg_name");
  
!   btf_asm_type_ref ("farg_type", ctfc, (btf_removed_type_p (farg->farg_type)
! 					? BTF_VOID_TYPEID
! 					: farg->farg_type));
  }
  
  /* Asm'out a BTF_KIND_FUNC type.  */
  
  static void
! btf_asm_func_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, ctf_id_t id)
  {
-   ctf_id_t ref_id = dtd->dtd_data.ctti_type;
    dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
  		       "TYPE %" PRIu64 " BTF_KIND_FUNC '%s'",
! 		       btf_absolute_func_id (id), get_btf_type_name (dtd));
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_FUNC, 0, dtd->linkage),
  		       "btt_info: kind=%u, kflag=%u, linkage=%u",
  		       BTF_KIND_FUNC, 0, dtd->linkage);
!   btf_asm_type_ref ("btt_type", ctfc, ref_id);
  }
  
! /* Collect the name for the DATASEC reference required to be output as a
!    symbol. */
  
! static const char *
! get_name_for_datasec_entry (ctf_container_ref ctfc, ctf_id_t ref_id)
  {
!   if (ref_id >= num_types_added + 1
!       && ref_id < num_types_added + num_vars_added + 1)
      {
!       /* Ref to a variable.  Should only appear in DATASEC entries.  */
!       ctf_id_t var_id = btf_relative_var_id (ref_id);
!       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[var_id];
!       return dvd->dvd_name;
      }
!   else if (ref_id >= num_types_added + num_vars_added + 1)
      {
!       /* Ref to a FUNC record.  */
!       size_t func_id = btf_relative_func_id (ref_id);
!       ctf_dtdef_ref ref_type = (*funcs)[func_id];
!       return get_btf_type_name (ref_type);
      }
-   return NULL;
- }
- 
- /* Asm'out a variable entry following a BTF_KIND_DATASEC.  */
  
- static void
- btf_asm_datasec_entry (ctf_container_ref ctfc, struct btf_var_secinfo info)
- {
-   const char *symbol_name = get_name_for_datasec_entry (ctfc, info.type);
-   btf_asm_datasec_type_ref ("bts_type", ctfc, info.type);
    if (!btf_with_core_debuginfo_p () || symbol_name == NULL)
!     dw2_asm_output_data (4, info.offset, "bts_offset");
    else
      dw2_asm_output_offset (4, symbol_name, NULL, "bts_offset");
!   dw2_asm_output_data (4, info.size, "bts_size");
  }
  
  /* Asm'out a whole BTF_KIND_DATASEC, including its variable entries.  */
  
  static void
! btf_asm_datasec_type (ctf_container_ref ctfc, btf_datasec_t ds, ctf_id_t id,
! 		      size_t stroffset)
  {
!   dw2_asm_output_data (4, ds.name_offset + stroffset,
  		       "TYPE %" PRIu64 " BTF_KIND_DATASEC '%s'",
! 		       btf_absolute_datasec_id (id), ds.name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_DATASEC, 0,
  					 ds.entries.length ()),
  		       "btt_info: n_entries=%u", ds.entries.length ());
--- 542,609 ----
  /* Asm'out a function parameter description following a BTF_KIND_FUNC_PROTO.  */
  
  static void
! btf_asm_func_arg (ctf_func_arg_t * farg, size_t stroffset)
  {
    /* If the function arg does not have a name, refer to the null string at
       the start of the string table. This ensures correct encoding for varargs
       '...' arguments.  */
    if ((farg->farg_name != NULL) && strcmp (farg->farg_name, ""))
!     dw2_asm_output_data (4, farg->farg_name_offset + stroffset,
! 			 "farg_name '%s'", farg->farg_name);
    else
!     dw2_asm_output_data (4, 0, "farg_name ''");
  
!   btf_asm_type_ref ("farg_type", farg->farg_type);
  }
  
  /* Asm'out a BTF_KIND_FUNC type.  */
  
  static void
! btf_asm_func_type (ctf_dtdef_ref dtd)
  {
    dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
  		       "TYPE %" PRIu64 " BTF_KIND_FUNC '%s'",
! 		       dtd->dtd_type, get_btf_type_name (dtd));
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_FUNC, 0, dtd->linkage),
  		       "btt_info: kind=%u, kflag=%u, linkage=%u",
  		       BTF_KIND_FUNC, 0, dtd->linkage);
!   btf_asm_type_ref ("btt_type", dtd->ref_type);
  }
  
! /* Asm'out a variable entry following a BTF_KIND_DATASEC.  */
  
! static void
! btf_asm_datasec_entry (struct btf_datasec_entry entry)
  {
!   const char *symbol_name = NULL;
!   if (entry.is_var)
      {
!       symbol_name = entry.dvd->dvd_name;
!       dw2_asm_output_data (4, entry.dvd->dvd_id,
! 			   "bts_type: (BTF_KIND_VAR '%s')", symbol_name);
      }
!   else
      {
!       symbol_name = entry.dtd->dtd_name;
!       btf_asm_type_ref ("bts_type", entry.dtd);
      }
  
    if (!btf_with_core_debuginfo_p () || symbol_name == NULL)
!     dw2_asm_output_data (4, 0, "bts_offset");
    else
      dw2_asm_output_offset (4, symbol_name, NULL, "bts_offset");
! 
!   dw2_asm_output_data (4, entry.size, "bts_size");
  }
  
  /* Asm'out a whole BTF_KIND_DATASEC, including its variable entries.  */
  
  static void
! btf_asm_datasec_type (btf_datasec_t ds)
  {
!   dw2_asm_output_data (4, ds.name_offset,
  		       "TYPE %" PRIu64 " BTF_KIND_DATASEC '%s'",
! 		       ds.id, ds.name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_DATASEC, 0,
  					 ds.entries.length ()),
  		       "btt_info: n_entries=%u", ds.entries.length ());
*************** btf_asm_datasec_type (ctf_container_ref
*** 1077,1083 ****
       loaders such as libbpf.  */
    dw2_asm_output_data (4, 0, "btt_size");
    for (size_t i = 0; i < ds.entries.length (); i++)
!     btf_asm_datasec_entry (ctfc, ds.entries[i]);
  }
  
  /* Compute and output the header information for a .BTF section.  */
--- 611,617 ----
       loaders such as libbpf.  */
    dw2_asm_output_data (4, 0, "btt_size");
    for (size_t i = 0; i < ds.entries.length (); i++)
!     btf_asm_datasec_entry (ds.entries[i]);
  }
  
  /* Compute and output the header information for a .BTF section.  */
*************** output_btf_header (ctf_container_ref ctf
*** 1096,1115 ****
  
     uint32_t type_off = 0, type_len = 0;
     uint32_t str_off = 0, str_len = 0;
-    uint32_t datasec_vlen_bytes = 0;
  
     if (!ctfc_is_empty_container (ctfc))
       {
-        for (size_t i = 0; i < datasecs.length (); i++)
- 	 {
- 	   datasec_vlen_bytes += ((datasecs[i].entries.length ())
- 				  * sizeof (struct btf_var_secinfo));
- 	 }
- 
         /* Total length (bytes) of the types section.  */
!        type_len = (num_types_added * sizeof (struct btf_type))
! 	 + (num_types_created * sizeof (struct btf_type))
! 	 + datasec_vlen_bytes
  	 + ctfc->ctfc_num_vlen_bytes;
  
         str_off = type_off + type_len;
--- 630,640 ----
  
     uint32_t type_off = 0, type_len = 0;
     uint32_t str_off = 0, str_len = 0;
  
     if (!ctfc_is_empty_container (ctfc))
       {
         /* Total length (bytes) of the types section.  */
!        type_len = ctfc->ctfc_num_types * sizeof (struct btf_type)
  	 + ctfc->ctfc_num_vlen_bytes;
  
         str_off = type_off + type_len;
*************** output_btf_header (ctf_container_ref ctf
*** 1121,1127 ****
     /* Offset of type section.  */
     dw2_asm_output_data (4, type_off, "type_off");
     /* Length of type section in bytes.  */
!    dw2_asm_output_data (4, type_len, "type_len");
      /* Offset of string section.  */
     dw2_asm_output_data (4, str_off, "str_off");
      /* Length of string section in bytes.  */
--- 646,654 ----
     /* Offset of type section.  */
     dw2_asm_output_data (4, type_off, "type_off");
     /* Length of type section in bytes.  */
!    dw2_asm_output_data (4, type_len, "type_len: ntypes=%u, vlen=%u",
! 			(uint32_t) ctfc->ctfc_num_types,
! 			(uint32_t) ctfc->ctfc_num_vlen_bytes);
      /* Offset of string section.  */
     dw2_asm_output_data (4, str_off, "str_off");
      /* Length of string section in bytes.  */
*************** static void
*** 1134,1144 ****
  output_btf_vars (ctf_container_ref ctfc)
  {
    size_t i;
!   size_t num_ctf_vars = num_vars_added;
    if (num_ctf_vars)
      {
        for (i = 0; i < num_ctf_vars; i++)
! 	btf_asm_varent (ctfc, ctfc->ctfc_vars_list[i]);
      }
  }
  
--- 661,671 ----
  output_btf_vars (ctf_container_ref ctfc)
  {
    size_t i;
!   size_t num_ctf_vars = ctfc->ctfc_vars_list_count;
    if (num_ctf_vars)
      {
        for (i = 0; i < num_ctf_vars; i++)
! 	btf_asm_varent (ctfc->ctfc_vars_list[i]);
      }
  }
  
*************** output_btf_strs (ctf_container_ref ctfc)
*** 1153,1159 ****
  
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_string, str_pos = 0x%x", str_pos);
        str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
--- 680,687 ----
  
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1,
! 			      "btf_string, str_pos = 0x%x", str_pos);
        str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
*************** output_btf_strs (ctf_container_ref ctfc)
*** 1161,1167 ****
    ctf_string = ctfc->ctfc_aux_strtable.ctstab_head;
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_aux_string, str_pos = 0x%x", str_pos);
        str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
--- 689,696 ----
    ctf_string = ctfc->ctfc_aux_strtable.ctstab_head;
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1,
! 			      "btf_aux_string, str_pos = 0x%x", str_pos);
        str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
*************** output_btf_strs (ctf_container_ref ctfc)
*** 1171,1177 ****
     BTF_KIND_UNION type.  */
  
  static void
! output_asm_btf_sou_fields (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
  {
    ctf_dmdef_t * dmd;
  
--- 700,706 ----
     BTF_KIND_UNION type.  */
  
  static void
! output_asm_btf_sou_fields (ctf_dtdef_ref dtd)
  {
    ctf_dmdef_t * dmd;
  
*************** output_asm_btf_sou_fields (ctf_container
*** 1179,1185 ****
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
      {
!       btf_asm_sou_member (ctfc, dmd, idx);
        idx++;
      }
  }
--- 708,714 ----
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
      {
!       btf_asm_sou_member (dmd, idx);
        idx++;
      }
  }
*************** output_asm_btf_sou_fields (ctf_container
*** 1187,1194 ****
  /* Output all enumerator constants following a BTF_KIND_ENUM{,64}.  */
  
  static void
! output_asm_btf_enum_list (ctf_container_ref ARG_UNUSED (ctfc),
! 			  ctf_dtdef_ref dtd)
  {
    ctf_dmdef_t * dmd;
  
--- 716,722 ----
  /* Output all enumerator constants following a BTF_KIND_ENUM{,64}.  */
  
  static void
! output_asm_btf_enum_list (ctf_dtdef_ref dtd)
  {
    ctf_dmdef_t * dmd;
  
*************** output_asm_btf_func_args_list (ctf_conta
*** 1211,1217 ****
    ctf_func_arg_t * farg;
    for (farg = dtd->dtd_u.dtu_argv;
         farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg))
!     btf_asm_func_arg (ctfc, farg, farg_name_offset);
  }
  
  /* Output the variable portion of a BTF type record. The information depends
--- 739,745 ----
    ctf_func_arg_t * farg;
    for (farg = dtd->dtd_u.dtu_argv;
         farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg))
!     btf_asm_func_arg (farg, farg_name_offset);
  }
  
  /* Output the variable portion of a BTF type record. The information depends
*************** output_asm_btf_vlen_bytes (ctf_container
*** 1222,1228 ****
  {
    uint32_t btf_kind, encoding;
  
!   btf_kind = get_btf_kind (CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info));
  
    if (btf_kind == BTF_KIND_UNKN)
      return;
--- 750,756 ----
  {
    uint32_t btf_kind, encoding;
  
!   btf_kind = btf_dtd_kind (dtd);
  
    if (btf_kind == BTF_KIND_UNKN)
      return;
*************** output_asm_btf_vlen_bytes (ctf_container
*** 1235,1242 ****
        if (dtd->dtd_data.ctti_size < 1)
  	break;
  
!       /* In BTF the CHAR `encoding' seems to not be used, so clear it
!          here.  */
        dtd->dtd_u.dtu_enc.cte_format &= ~BTF_INT_CHAR;
  
        encoding = BTF_INT_DATA (dtd->dtd_u.dtu_enc.cte_format,
--- 763,769 ----
        if (dtd->dtd_data.ctti_size < 1)
  	break;
  
!       /* In BTF the CHAR `encoding' seems to not be used, so clear it here.  */
        dtd->dtd_u.dtu_enc.cte_format &= ~BTF_INT_CHAR;
  
        encoding = BTF_INT_DATA (dtd->dtd_u.dtu_enc.cte_format,
*************** output_asm_btf_vlen_bytes (ctf_container
*** 1247,1262 ****
        break;
  
      case BTF_KIND_ARRAY:
!       btf_asm_array (ctfc, dtd->dtd_u.dtu_arr);
        break;
  
      case BTF_KIND_STRUCT:
      case BTF_KIND_UNION:
!       output_asm_btf_sou_fields (ctfc, dtd);
        break;
  
      case BTF_KIND_ENUM:
!       output_asm_btf_enum_list (ctfc, dtd);
        break;
  
      case BTF_KIND_FUNC_PROTO:
--- 774,789 ----
        break;
  
      case BTF_KIND_ARRAY:
!       btf_asm_array (dtd->dtd_u.dtu_arr);
        break;
  
      case BTF_KIND_STRUCT:
      case BTF_KIND_UNION:
!       output_asm_btf_sou_fields (dtd);
        break;
  
      case BTF_KIND_ENUM:
!       output_asm_btf_enum_list (dtd);
        break;
  
      case BTF_KIND_FUNC_PROTO:
*************** output_asm_btf_vlen_bytes (ctf_container
*** 1286,1294 ****
  static void
  output_asm_btf_type (ctf_container_ref ctfc, ctf_dtdef_ref type)
  {
!   if (btf_emit_id_p (type->dtd_type))
      {
!       btf_asm_type (ctfc, type);
        output_asm_btf_vlen_bytes (ctfc, type);
      }
  }
--- 813,821 ----
  static void
  output_asm_btf_type (ctf_container_ref ctfc, ctf_dtdef_ref type)
  {
!   if (btf_emit_type_p (type))
      {
!       btf_asm_type (type);
        output_asm_btf_vlen_bytes (ctfc, type);
      }
  }
*************** static void
*** 1300,1306 ****
  output_btf_types (ctf_container_ref ctfc)
  {
    size_t i;
!   size_t num_types = ctfc->ctfc_types->elements ();
    if (num_types)
      {
        for (i = 1; i <= num_types; i++)
--- 827,838 ----
  output_btf_types (ctf_container_ref ctfc)
  {
    size_t i;
!   size_t num_types;
!   if (debug_prune_btf)
!     num_types = max_translated_id;
!   else
!     num_types = ctfc->ctfc_types->elements ();
! 
    if (num_types)
      {
        for (i = 1; i <= num_types; i++)
*************** output_btf_types (ctf_container_ref ctfc
*** 1311,1462 ****
  /* Output all BTF_KIND_FUNC type records.  */
  
  static void
! output_btf_func_types (ctf_container_ref ctfc)
  {
    ctf_dtdef_ref ref;
    unsigned i;
    FOR_EACH_VEC_ELT (*funcs, i, ref)
!     btf_asm_func_type (ctfc, ref, i);
  }
  
  /* Output all BTF_KIND_DATASEC records.  */
  
  static void
! output_btf_datasec_types (ctf_container_ref ctfc)
  {
!   size_t name_offset = ctfc_get_strtab_len (ctfc, CTF_STRTAB);
  
!   for (size_t i = 0; i < datasecs.length(); i++)
!     btf_asm_datasec_type (ctfc, datasecs[i], i, name_offset);
  }
  
! /* Postprocess the CTF debug data post initialization.
  
!    During the postprocess pass:
  
!    - Prepare the sorted list of BTF types.
  
!      The sorted list of BTF types is, firstly, used for lookup (during the BTF
!      generation process) of CTF/BTF types given a typeID.
  
!      Secondly, in the emitted BTF section, BTF Types need to be in the sorted
!      order of their type IDs.  The BTF types section is viewed as an array,
!      with type IDs used to index into that array.  It is essential that every
!      type be placed at the exact index corresponding to its ID, or else
!      references to that type from other types will no longer be correct.
  
!    - References to void types are converted to reference BTF_VOID_TYPEID. In
!      CTF, a distinct type is used to encode void.
  
!    - Bitfield struct/union members are converted to BTF encoding. CTF uses
!      slices to encode bitfields, but BTF does not have slices and encodes
!      bitfield information directly in the variable-length btf_member
!      descriptions following the struct or union type.
  
!    - Unrepresentable types are removed. We cannot have any invalid BTF types
!      appearing in the output so they must be removed, and type ids of other
!      types and references adjust accordingly. This also involves ensuring that
!      BTF descriptions of struct members referring to unrepresentable types are
!      not emitted, as they would be nonsensical.
  
!    - Adjust inner- and inter-type references-by-ID to account for removed
!      types, and construct the types list.  */
  
  void
! btf_init_postprocess (void)
  {
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
  
!   holes.create (0);
!   voids.create (0);
  
!   num_types_added = 0;
!   num_types_created = 0;
  
-   /* Workaround for 'const void' variables.  These variables are sometimes used
-      in eBPF programs to address kernel symbols.  DWARF does not generate const
-      qualifier on void type, so we would incorrectly emit these variables
-      without the const qualifier.
-      Unfortunately we need the TREE node to know it was const, and we need
-      to create the const modifier type (if needed) now, before making the types
-      list.  So we can't avoid iterating with FOR_EACH_VARIABLE here, and then
-      again when creating the DATASEC entries.  */
-   ctf_id_t constvoid_id = CTF_NULL_TYPEID;
    varpool_node *var;
    FOR_EACH_VARIABLE (var)
      {
!       if (!var->decl)
  	continue;
  
!       tree type = TREE_TYPE (var->decl);
!       if (type && VOID_TYPE_P (type) && TYPE_READONLY (type))
  	{
! 	  dw_die_ref die = lookup_decl_die (var->decl);
! 	  if (die == NULL)
! 	    continue;
  
! 	  ctf_dvdef_ref dvd = ctf_dvd_lookup (tu_ctfc, die);
! 	  if (dvd == NULL)
! 	    continue;
  
! 	  /* Create the 'const' modifier type for void.  */
! 	  if (constvoid_id == CTF_NULL_TYPEID)
! 	    constvoid_id = ctf_add_reftype (tu_ctfc, CTF_ADD_ROOT,
! 					    dvd->dvd_type, CTF_K_CONST, NULL);
! 	  dvd->dvd_type = constvoid_id;
  	}
      }
  
!   size_t i;
!   size_t num_ctf_types = tu_ctfc->ctfc_types->elements ();
  
!   if (num_ctf_types)
      {
!       init_btf_id_map (num_ctf_types + 1);
  
!       /* Allocate the types list and traverse all types, placing each type
! 	 at the index according to its ID.  Add 1 because type ID 0 always
! 	 represents VOID.  */
!       tu_ctfc->ctfc_types_list
! 	= ggc_vec_alloc<ctf_dtdef_ref>(num_ctf_types + 1);
!       tu_ctfc->ctfc_types->traverse<ctf_container_ref, btf_dtd_postprocess_cb>
! 	(tu_ctfc);
  
!       /* Build mapping of CTF type ID -> BTF type ID, and count total number
! 	 of valid BTF types added.  */
!       for (i = 1; i <= num_ctf_types; i++)
  	{
! 	  ctf_dtdef_ref dtd = tu_ctfc->ctfc_types_list[i];
! 	  ctf_id_t btfid = btf_adjust_type_id (dtd->dtd_type);
! 	  set_btf_id (dtd->dtd_type, btfid);
! 	  if (btfid < BTF_MAX_TYPE && (btfid != BTF_VOID_TYPEID))
! 	    num_types_added ++;
  	}
      }
  }
  
! /* Process and output all BTF data. Entry point of btfout.  */
  
  void
! btf_output (const char * filename)
  {
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
- 
    init_btf_sections ();
  
    datasecs.create (0);
-   vec_alloc (funcs, 16);
  
!   ctf_add_cuname (tu_ctfc, filename);
  
!   btf_emit_preprocess (tu_ctfc);
  
!   output_btf_header (tu_ctfc);
!   output_btf_types (tu_ctfc);
!   output_btf_vars (tu_ctfc);
!   output_btf_func_types (tu_ctfc);
!   output_btf_datasec_types (tu_ctfc);
!   output_btf_strs (tu_ctfc);
  }
  
  /* Reset all state for BTF generation so that we can rerun the compiler within
--- 843,1650 ----
  /* Output all BTF_KIND_FUNC type records.  */
  
  static void
! output_btf_func_types (void)
  {
    ctf_dtdef_ref ref;
    unsigned i;
    FOR_EACH_VEC_ELT (*funcs, i, ref)
!     btf_asm_func_type (ref);
  }
  
  /* Output all BTF_KIND_DATASEC records.  */
  
  static void
! output_btf_datasec_types (void)
  {
!   for (size_t i = 0; i < datasecs.length (); i++)
!     btf_asm_datasec_type (datasecs[i]);
! }
  
! /* Write out all BTF debug info.  */
! 
! void
! btf_output (ctf_container_ref ctfc)
! {
!   output_btf_header (ctfc);
!   output_btf_types (ctfc);
!   output_btf_vars (ctfc);
!   output_btf_func_types ();
!   output_btf_datasec_types ();
!   output_btf_strs (ctfc);
  }
  
! /* Workaround for 'const void' variables.  These variables are sometimes used
!    in eBPF programs to address kernel symbols.  DWARF does not generate const
!    qualifier on void type, so we would incorrectly emit these variables
!    without the const qualifier.  Find any such variables, and update them to
!    refer to a new 'const' modifier type for void.  */
  
! static void
! btf_add_const_void (ctf_container_ref ctfc)
! {
!   ctf_dtdef_ref constvoid_dtd = NULL;
!   varpool_node *var;
!   FOR_EACH_VARIABLE (var)
!     {
!       if (!var->decl)
! 	continue;
  
!       tree type = TREE_TYPE (var->decl);
!       if (type && VOID_TYPE_P (type) && TYPE_READONLY (type))
! 	{
! 	  dw_die_ref die = lookup_decl_die (var->decl);
! 	  if (die == NULL)
! 	    continue;
  
! 	  ctf_dvdef_ref dvd = ctf_dvd_lookup (ctfc, die);
! 	  if (dvd == NULL)
! 	    continue;
  
! 	  /* Create the 'const' modifier type for void.  */
! 	  if (constvoid_dtd == NULL)
! 	    constvoid_dtd = ctf_add_reftype (ctfc, CTF_ADD_ROOT,
! 					     dvd->dvd_type, CTF_K_CONST, NULL);
! 	  dvd->dvd_type = constvoid_dtd;
! 	}
!     }
! }
  
! /* Functions actually get two type records: a BTF_KIND_FUNC_PROTO, and also a
!    BTF_KIND_FUNC.  But the CTF container only allocates one type per function,
!    which matches closely with BTF_KIND_FUNC_PROTO.  For each such function,
!    construct a BTF_KIND_FUNC entry.  This is done early, because we want FUNC
!    records even for functions which are later inlined by optimizations.  */
  
! static void
! btf_add_func_records (ctf_container_ref ctfc)
! {
!   cgraph_node *func;
!   FOR_EACH_FUNCTION (func)
!     {
!       dw_die_ref die = lookup_decl_die (func->decl);
!       if (die == NULL)
! 	continue;
  
!       ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die);
!       if (dtd == NULL)
! 	continue;
  
!       /* Do not add FUNC records for kernel helpers.  */
!       if (DECL_EXTERNAL (func->decl)
! 	  && (lookup_attribute ("kernel_helper",
! 				DECL_ATTRIBUTES (func->decl))) != NULL_TREE)
! 	continue;
! 
!       ctf_dtdef_ref func_dtd = ggc_cleared_alloc<ctf_dtdef_t> ();
!       func_dtd->dtd_data = dtd->dtd_data;
!       func_dtd->dtd_data.ctti_type = dtd->dtd_type;
!       func_dtd->ref_type = dtd;
!       func_dtd->linkage = dtd->linkage;
!       func_dtd->dtd_name = dtd->dtd_name;
!       /* Type ID will be assigned just before output.  */
! 
!       /* Only the BTF_KIND_FUNC type actually references the name.
! 	 The BTF_KIND_FUNC_PROTO is always anonymous.  */
!       dtd->dtd_data.ctti_name = 0;
! 
!       /* Mark 'extern' funcs.  */
!       if (DECL_EXTERNAL (func->decl))
! 	func_dtd->linkage = BTF_FUNC_EXTERN;
! 
!       /* Buffer newly created FUNC records.  We cannot simply insert them
! 	 into the types map, because types are keyed by their DWARF DIE,
! 	 and we have no unique DIE to use as a key since the FUNC_PROTOs
! 	 are already present in the map.  */
!       vec_safe_push (funcs, func_dtd);
!       func_map->put (dtd, func_dtd);
!     }
! }
! 
! /* The set of types used directly in the source program, and any types manually
!    marked as used.  This is the set of types which will be emitted when
!    flag_prune_btf is set.  */
! static GTY (()) hash_set<ctf_dtdef_ref> *btf_used_types;
! 
! /* Fixup used to avoid unnecessary pointer chasing for types.  A fixup is
!    created when a structure or union member is a pointer to another struct
!    or union type.  In such cases, avoid emitting full type information for
!    the pointee struct or union type (which may be quite large), unless that
!    type is used directly elsewhere.  */
! struct btf_fixup
! {
!   ctf_dtdef_ref pointer_dtd; /* Type node to which the fixup is applied.  */
!   ctf_dtdef_ref pointee_dtd; /* Original type node referred to by pointer_dtd.
! 				If this concrete type is not otherwise used,
! 				then a forward is created.  */
! };
! 
! /* Stores fixups while processing types.  */
! static vec<struct btf_fixup> fixups;
! 
! /* For fixups where the underlying type is not used in the end, a BTF_KIND_FWD
!    is created and emitted.  This vector stores them.  */
! static GTY (()) vec<ctf_dtdef_ref, va_gc> *forwards;
! 
! /* Recursively add type DTD and any types it references to the used set.
!    Return a type that should be used for references to DTD - usually DTD itself,
!    but may be NULL if DTD corresponds to a type which will not be emitted.
!    CHECK_PTR is true if one of the predecessors in recursive calls is a struct
!    or union member.  SEEN_PTR is true if CHECK_PTR is true AND one of the
!    predecessors was a pointer type.  These two flags are used to avoid chasing
!    pointers to struct/union only used from pointer members.  For such types, we
!    will emit a forward instead of the full type information, unless
!    CREATE_FIXUPS is false.  */
! 
! static ctf_dtdef_ref
! btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd,
! 		   bool check_ptr, bool seen_ptr, bool create_fixups)
! {
!   if (dtd == NULL)
!     return NULL;
! 
!   uint32_t ctf_kind = CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info);
!   uint32_t kind = get_btf_kind (ctf_kind);
! 
!   /* Check whether the type has already been added.  */
!   if (btf_used_types->contains (dtd))
!     {
!       /* It's possible the type was already added as a fixup, but that we now
! 	 have a concrete use of it.  */
!       switch (kind)
! 	{
! 	case BTF_KIND_PTR:
! 	case BTF_KIND_TYPEDEF:
! 	case BTF_KIND_CONST:
! 	case BTF_KIND_VOLATILE:
! 	case BTF_KIND_RESTRICT:
! 	  if (check_ptr)
! 	    /* Type was previously added as a fixup, and that's OK.  */
! 	    return dtd;
! 	  else
! 	    {
! 	      /* The type was previously added as a fixup, but now we have
! 		 a concrete use of it.  Remove the fixup.  */
! 	      for (size_t i = 0; i < fixups.length (); i++)
! 		if (fixups[i].pointer_dtd == dtd)
! 		  fixups.unordered_remove (i);
! 
! 	      /* Add the concrete base type.  */
! 	      dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, check_ptr,
! 						 seen_ptr, create_fixups);
! 	      return dtd;
! 	    }
! 	default:
! 	  return dtd;
! 	}
!     }
! 
!   if (ctf_kind == CTF_K_SLICE)
!     {
!       /* Bitfield.  Add the underlying type to the used set, but leave
! 	 the reference to the bitfield.  The slice type won't be emitted,
! 	 but we need the information in it when writing out the bitfield
! 	 encoding.  */
!       btf_add_used_type (ctfc, dtd->dtd_u.dtu_slice.cts_type,
! 			 check_ptr, seen_ptr, create_fixups);
!       return dtd;
!     }
! 
!   /* Skip redundant definitions of void and types with no BTF encoding.  */
!   if ((kind == BTF_KIND_INT && dtd->dtd_data.ctti_size == 0)
!       || (kind == BTF_KIND_UNKN))
!     return NULL;
! 
!   /* Add the type itself, and assign its id.
!      Do this before recursing to handle things like linked list structures.  */
!   gcc_assert (ctfc->ctfc_nextid <= BTF_MAX_TYPE);
!   dtd->dtd_type = ctfc->ctfc_nextid++;
!   btf_used_types->add (dtd);
!   ctf_add_string (ctfc, dtd->dtd_name, &(dtd->dtd_data.ctti_name), CTF_STRTAB);
!   ctfc->ctfc_num_types++;
!   ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (dtd);
! 
!   /* Recursively add types referenced by this type.  */
!   switch (kind)
!     {
!     case BTF_KIND_INT:
!     case BTF_KIND_FLOAT:
!     case BTF_KIND_FWD:
!       /* Leaf kinds which do not refer to any other types.  */
!       break;
! 
!     case BTF_KIND_FUNC:
!     case BTF_KIND_VAR:
!       /* Root kinds; no type we are visiting may refer to these.  */
!       gcc_unreachable ();
! 
!     case BTF_KIND_PTR:
!     case BTF_KIND_TYPEDEF:
!     case BTF_KIND_CONST:
!     case BTF_KIND_VOLATILE:
!     case BTF_KIND_RESTRICT:
!       {
! 	/* These type kinds refer to exactly one other type.  */
! 	if (check_ptr && !seen_ptr)
! 	  seen_ptr = (kind == BTF_KIND_PTR);
! 
! 	/* Try to avoid chasing pointers to struct/union types if the
! 	   underlying type isn't used.  */
! 	if (check_ptr && seen_ptr && create_fixups)
! 	  {
! 	    ctf_dtdef_ref ref = dtd->ref_type;
! 	    uint32_t ref_kind = btf_dtd_kind (ref);
! 
! 	    if ((ref_kind == BTF_KIND_STRUCT || ref_kind == BTF_KIND_UNION)
! 		&& !btf_used_types->contains (ref))
! 	      {
! 		struct btf_fixup fixup;
! 		fixup.pointer_dtd = dtd;
! 		fixup.pointee_dtd = ref;
! 		fixups.safe_push (fixup);
! 		break;
! 	      }
! 	  }
! 
! 	/* Add the type to which this type refers.  */
! 	dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, check_ptr,
! 					   seen_ptr, create_fixups);
! 	break;
!       }
!     case BTF_KIND_ARRAY:
!       {
! 	/* Add element and index types.  */
! 	ctf_arinfo_t *arr = &(dtd->dtd_u.dtu_arr);
! 	arr->ctr_contents = btf_add_used_type (ctfc, arr->ctr_contents, false,
! 					       false, create_fixups);
! 	arr->ctr_index = btf_add_used_type (ctfc, arr->ctr_index, false, false,
! 					    create_fixups);
! 	break;
!       }
!     case BTF_KIND_STRUCT:
!     case BTF_KIND_UNION:
!     case BTF_KIND_ENUM:
!     case BTF_KIND_ENUM64:
!       {
! 	/* Add members.  */
! 	ctf_dmdef_t *dmd;
! 	for (dmd = dtd->dtd_u.dtu_members;
! 	     dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
! 	  {
! 	    /* Add member type for struct/union members.  For enums, only the
! 	       enumerator names are needed.  */
! 	    if (kind == BTF_KIND_STRUCT || kind == BTF_KIND_UNION)
! 	      dmd->dmd_type = btf_add_used_type (ctfc, dmd->dmd_type, true,
! 						 false, create_fixups);
! 	    ctf_add_string (ctfc, dmd->dmd_name, &(dmd->dmd_name_offset),
! 			    CTF_STRTAB);
! 	  }
! 	break;
!       }
!     case BTF_KIND_FUNC_PROTO:
!       {
! 	/* Add return type.  */
! 	dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, false, false,
! 					   create_fixups);
! 
! 	/* Add arg types.  */
! 	ctf_func_arg_t * farg;
! 	for (farg = dtd->dtd_u.dtu_argv;
! 	     farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg))
! 	  {
! 	    farg->farg_type = btf_add_used_type (ctfc, farg->farg_type, false,
! 						 false, create_fixups);
! 	    /* Note: argument names are stored in the auxilliary string table,
! 	       since CTF does not include arg names.  That table has not been
! 	       cleared, so no need to re-add argument names here.  */
! 	  }
! 	break;
!       }
!     default:
!       return NULL;
!     }
! 
!   return dtd;
! }
! 
! /* Initial entry point of BTF generation, called at early_finish () after
!    CTF information has possibly been output.  Translate all CTF information
!    to BTF, and do any processing that must be done early, such as creating
!    BTF_KIND_FUNC records.  */
  
  void
! btf_early_finish (void)
  {
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
  
!   vec_alloc (funcs, 16);
!   func_map = hash_map<ctf_dtdef_ref, ctf_dtdef_ref>::create_ggc (16);
  
!   /* Note: from this point on, destructive changes are made to the TU CTFC to
!      translate CTF to BTF.  If CTF debug info has also been requested, it must
!      be emitted before starting the translation to BTF.  */
!   btf_add_const_void (tu_ctfc);
!   btf_add_func_records (tu_ctfc);
! 
!   /* These fields are reset to count BTF types etc.  */
!   tu_ctfc->ctfc_num_types = 0;
!   tu_ctfc->ctfc_num_vlen_bytes = 0;
!   tu_ctfc->ctfc_vars_list_count = 0;
! 
!   if (debug_prune_btf)
!     {
!       btf_used_types
! 	= hash_set<ctf_dtdef_ref>::create_ggc (tu_ctfc->ctfc_types->elements ());
!       tu_ctfc->ctfc_nextid = 1;
!       fixups.create (1);
! 
!       /* Empty the string table, which was already populated with strings for
! 	 all types translated from DWARF.  We may only need a very small subset
! 	 of these strings; those will be re-added below.  */
!       ctfc_delete_strtab (&tu_ctfc->ctfc_strtable);
!       init_ctf_strtable (&tu_ctfc->ctfc_strtable);
!       tu_ctfc->ctfc_strlen++;
!     }
! }
! 
! /* Push a BTF datasec entry ENTRY into the datasec named SECNAME,
!    creating the datasec record if it does not already exist.  */
! 
! static void
! btf_datasec_push_entry (ctf_container_ref ctfc, const char *secname,
! 			struct btf_datasec_entry entry)
! {
!   if (secname == NULL)
!     return;
! 
!   /* If we already have a datasec record for the appropriate section,
!      append the new entry to it.  */
!   for (size_t i = 0; i < datasecs.length (); i++)
!     if (strcmp (datasecs[i].name, secname) == 0)
!       {
! 	datasecs[i].entries.safe_push (entry);
! 	return;
!       }
! 
!   /* If we don't already have a datasec record for secname, make one.  */
!   uint32_t str_off;
!   ctf_add_string (ctfc, secname, &str_off, CTF_AUX_STRTAB);
!   if (strcmp (secname, ""))
!     ctfc->ctfc_aux_strlen += strlen (secname) + 1;
! 
!   /* Note: ID will be assigned just before output.  */
!   btf_datasec_t ds;
!   ds.name = secname;
!   ds.name_offset = str_off;
! 
!   /* Insert the entry into the new datasec record.  */
!   ds.entries.create (1);
!   ds.entries.quick_push (entry);
! 
!   /* Insert the datasec record itself.  */
!   datasecs.safe_push (ds);
! }
! 
! /* Create a datasec entry for a function, and insert it into the datasec
!    record for the appropriate section.  Create the record if it does not
!    yet exist.  */
! 
! static void
! btf_datasec_add_func (ctf_container_ref ctfc, cgraph_node *func,
! 		      ctf_dtdef_ref func_dtd)
! {
!   const char *section_name = get_section_name (func);
! 
!   /* Note: get_section_name () returns NULL for functions in text
!      section.  This is intentional, since we do not want to generate
!      DATASEC entries for them.  */
!   if (section_name == NULL)
!     return;
! 
!   struct btf_datasec_entry entry;
!   gcc_assert (func_dtd);
!   entry.dtd = func_dtd;
!   entry.is_var = false;
! 
!   /* Size is left as zero at compile time, to be filled in by loaders
!      such as libbpf.  */
!   entry.size = 0;
! 
!   btf_datasec_push_entry (ctfc, section_name, entry);
! }
! 
! /* Create a datasec entry for a variable, and insert it into the datasec
!    record for the appropriate section.  Create the record if it does not
!    yet exist.  */
! 
! static void
! btf_datasec_add_var (ctf_container_ref ctfc, varpool_node *var,
! 		     ctf_dvdef_ref dvd)
! {
!   /* PR112849: avoid assuming a section for extern decls without
!      an explicit section, which would result in incorrectly
!      emitting a BTF_KIND_DATASEC entry for them.  */
!   if (DECL_EXTERNAL (var->decl) && var->get_section () == NULL)
!     return;
! 
!   const char *section_name = get_section_name (var);
!   if (section_name == NULL)
!     return;
! 
!   gcc_assert (dvd);
!   struct btf_datasec_entry entry;
!   entry.dvd = dvd;
!   entry.is_var = true;
!   entry.size = 0;
! 
!   tree size = DECL_SIZE_UNIT (var->decl);
!   if (tree_fits_uhwi_p (size))
!     entry.size = tree_to_uhwi (size);
!   else if (VOID_TYPE_P (TREE_TYPE (var->decl)))
!     entry.size = 1;
! 
!   btf_datasec_push_entry (ctfc, section_name, entry);
! }
! 
! /* Add datasec entries for functions to CTFC.  */
! 
! static void
! btf_add_func_datasec_entries (ctf_container_ref ctfc)
! {
!   /* We need to create FUNC records at early_finish, so that we have them
!      even for functions which are later inlined by optimization passes.
!      But on the other hand, we do not want datasec entries for such functions,
!      so only create the datasec entries for them late.  This loop will not
!      hit functions which have already been inlined.  */
!   cgraph_node *func;
!   FOR_EACH_FUNCTION (func)
!     {
!       dw_die_ref die = lookup_decl_die (func->decl);
!       if (die == NULL)
! 	continue;
! 
!       ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die);
!       if (dtd == NULL)
! 	continue;
! 
!       ctf_dtdef_ref *pdtd = func_map->get (dtd);
!       if (pdtd && DECL_EXTERNAL (func->decl))
! 	btf_datasec_add_func (ctfc, func, *pdtd);
!     }
! }
! 
! /* Helper function used to determine whether or not a BTF_KIND_VAR record
!    for the variable VAR shall be emitted.  */
! 
! static bool
! btf_emit_variable_p (ctf_container_ref ctfc, varpool_node *var,
! 		     ctf_dvdef_ref *pdvd)
! {
!   dw_die_ref die = lookup_decl_die (var->decl);
!   if (die == NULL)
!     return false;
! 
!   ctf_dvdef_ref dvd = ctf_dvd_lookup (ctfc, die);
!   if (dvd == NULL)
!     return false;
! 
!   /* If this is an extern variable declaration with a defining declaration
!      later, skip it so that only the defining declaration is emitted.
!      This is the same case, fix and reasoning as in CTF; see PR105089.  */
!   if (ctf_dvd_ignore_lookup (ctfc, dvd->dvd_key))
!     return false;
! 
!   /* Skip variables with unrepresentable types.  */
!   if (!btf_emit_type_p (dvd->dvd_type))
!     return false;
! 
!   *pdvd = dvd;
!   return true;
! }
! 
! /* Add BTF_KIND_VAR records for variables.  */
! 
! static void
! btf_add_vars (ctf_container_ref ctfc)
! {
!   size_t num_ctf_vars = ctfc->ctfc_vars->elements ();
! 
!   ctfc->ctfc_vars_list = ggc_vec_alloc<ctf_dvdef_ref>(num_ctf_vars);
  
    varpool_node *var;
+   ctf_dvdef_ref dvd;
    FOR_EACH_VARIABLE (var)
      {
!       if (!btf_emit_variable_p (ctfc, var, &dvd))
  	continue;
  
!       /* Mark 'extern' variables.  */
!       if (DECL_EXTERNAL (var->decl))
! 	dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN;
! 
!       /* Add the variable to the vars list.  */
!       ctfc->ctfc_vars_list[ctfc->ctfc_vars_list_count++] = dvd;
! 
!       /* Add a BTF_KIND_DATASEC entry for the variable.  */
!       btf_datasec_add_var (ctfc, var, dvd);
! 
!       const char *section = var->get_section ();
!       if (section && (strcmp (section, ".maps") == 0) && debug_prune_btf)
  	{
! 	  /* The .maps section has special meaning in BTF: it is used for BPF
! 	     map definitions.  These definitions should be structs.  We must
! 	     collect pointee types used in map members as though they are used
! 	     directly, effectively ignoring (from the pruning perspective) that
! 	     they are struct members.  */
! 	  ctf_dtdef_ref dtd = dvd->dvd_type;
! 	  uint32_t kind = btf_dtd_kind (dvd->dvd_type);
! 	  if (kind == BTF_KIND_STRUCT)
! 	    {
! 	      ctf_dmdef_t *dmd;
! 	      for (dmd = dtd->dtd_u.dtu_members;
! 		   dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
! 		btf_add_used_type (ctfc, dmd->dmd_type, false, false, true);
! 	    }
! 	}
!     }
! }
  
! /* Callback used by btf_assign_type_ids to insert types into their initial
!    positions in the type list.  */
  
! static int
! btf_type_list_cb (ctf_dtdef_ref *slot, ctf_container_ref ctfc)
! {
!   ctf_dtdef_ref dtd = *slot;
!   ctfc->ctfc_types_list[dtd->dtd_type] = dtd;
!   return 1;
! }
! 
! /* Construct the initial type list and assign BTF IDs for all types translated
!    from CTF.  */
! 
! static void
! btf_collect_translated_types (ctf_container_ref ctfc)
! {
!   size_t num_ctf_types = ctfc->ctfc_types->elements ();
! 
!   /* First, place each type at its CTF-assigned index in the list.
!      The '+1' here and below is to account for the implicit void type with
!      ID 0.  There is no real type at index 0 in the list.  */
!   ctfc->ctfc_types_list = ggc_vec_alloc<ctf_dtdef_ref>(num_ctf_types + 1);
!   ctfc->ctfc_types->traverse<ctf_container_ref, btf_type_list_cb> (ctfc);
! 
!   /* Now, pass through the list and adjust IDs to account for types which will
!      not be emitted.  This results in each type that will be emitted in BTF
!      being assigned an appropriate ID.  Note that types which will not be
!      emitted remain in the list; they are skipped at output time.  */
!   unsigned int skip = 0;
!   for (size_t i = 1; i <= num_ctf_types; i++)
!     {
!       ctf_dtdef_ref dtd = ctfc->ctfc_types_list[i];
!       if (!btf_emit_type_p (dtd))
! 	{
! 	  dtd->dtd_type = BTF_INVALID_TYPEID;
! 	  skip += 1;
! 	  continue;
  	}
+ 
+       dtd->dtd_type -= skip;
+       ctfc->ctfc_num_types++;
+       ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (dtd);
      }
  
!   max_translated_id = ctfc->ctfc_num_types;
!   ctfc->ctfc_nextid = ctfc->ctfc_num_types + 1;
! }
  
! /* Assign BTF IDs for FUNC records and account for their size.  */
! 
! static void
! btf_assign_func_ids (ctf_container_ref ctfc)
! {
!   ctf_dtdef_ref dtd;
!   unsigned int i;
!   FOR_EACH_VEC_ELT (*funcs, i, dtd)
      {
!       dtd->dtd_type = ctfc->ctfc_nextid++;
!       ctfc->ctfc_num_types++;
!     }
! }
  
! /* Assign BTF IDs for variables and account for their size.  */
  
! static void
! btf_assign_var_ids (ctf_container_ref ctfc)
! {
!   for (size_t i = 0; i < ctfc->ctfc_vars_list_count; i++)
!     {
!       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[i];
!       ctf_id_t id = ctfc->ctfc_nextid++;
!       gcc_assert (id <= BTF_MAX_TYPE);
!       dvd->dvd_id = id;
! 
!       ctfc->ctfc_num_types++;
!       ctfc->ctfc_num_vlen_bytes += sizeof (struct btf_var);
!     }
! }
! 
! /* Assign BTF IDs for datasec records and account for their size.  */
! 
! static void
! btf_assign_datasec_ids (ctf_container_ref ctfc)
! {
!   for (size_t i = 0; i < datasecs.length (); i++)
!     {
!       datasecs[i].id = ctfc->ctfc_nextid++;
!       datasecs[i].name_offset += ctfc_get_strtab_len (ctfc, CTF_STRTAB);
!       ctfc->ctfc_num_types++;
!       ctfc->ctfc_num_vlen_bytes += (datasecs[i].entries.length ()
! 				    * sizeof (struct btf_var_secinfo));
!     }
! }
! 
! 
! /* Manually mark that type T is used to ensure it will not be pruned.
!    Used by the BPF backend when generating BPF CO-RE to mark types used
!    in CO-RE relocations.  */
! 
! void
! btf_mark_type_used (tree t)
! {
!   /* If we are not going to prune anyway, this is a no-op.  */
!   if (!debug_prune_btf)
!     return;
! 
!   gcc_assert (TYPE_P (t));
!   ctf_container_ref ctfc = ctf_get_tu_ctfc ();
!   ctf_dtdef_ref dtd = ctf_lookup_tree_type (ctfc, t);
! 
!   if (!dtd)
!     return;
! 
!   btf_add_used_type (ctfc, dtd, false, false, true);
! }
! 
! /* Callback used for assembling the only-used-types list.  Note that this is
!    the same as btf_type_list_cb above, but the hash_set traverse requires a
!    different function signature.  */
! 
! static bool
! btf_used_type_list_cb (const ctf_dtdef_ref& dtd, ctf_container_ref ctfc)
! {
!   ctfc->ctfc_types_list[dtd->dtd_type] = dtd;
!   return true;
! }
! 
! /* Collect the set of types reachable from global variables and functions.
!    This is the minimal set of types, used when generating pruned BTF.  */
! 
! static void
! btf_collect_pruned_types (ctf_container_ref ctfc)
! {
!   vec_alloc (forwards, 1);
! 
!   /* Add types used from functions.  */
!   ctf_dtdef_ref dtd;
!   size_t i;
!   FOR_EACH_VEC_ELT (*funcs, i, dtd)
!     {
!       btf_add_used_type (ctfc, dtd->ref_type, false, false, true);
!       ctf_add_string (ctfc, dtd->dtd_name, &(dtd->dtd_data.ctti_name),
! 		      CTF_STRTAB);
!     }
! 
!   /* Add types used from global variables.  */
!   for (i = 0; i < ctfc->ctfc_vars_list_count; i++)
!     {
!       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[i];
!       btf_add_used_type (ctfc, dvd->dvd_type, false, false, true);
!       ctf_add_string (ctfc, dvd->dvd_name, &(dvd->dvd_name_offset), CTF_STRTAB);
!     }
! 
!   /* Process fixups.  If the base type was never added, create a forward for it
!      and adjust the reference to point to that.  If it was added, then nothing
!      needs to change.  */
!   for (i = 0; i < fixups.length (); i++)
!     {
!       struct btf_fixup *fx = &fixups[i];
!       if (!btf_used_types->contains (fx->pointee_dtd))
  	{
! 	  /* The underlying type is not used.  Create a forward.  */
! 	  ctf_dtdef_ref fwd = ggc_cleared_alloc<ctf_dtdef_t> ();
! 	  ctf_id_t id = ctfc->ctfc_nextid++;
! 	  gcc_assert (id <= BTF_MAX_TYPE);
! 
! 	  bool union_p = (btf_dtd_kind (fx->pointee_dtd) == BTF_KIND_UNION);
! 
! 	  fwd->dtd_name = fx->pointee_dtd->dtd_name;
! 	  fwd->dtd_data.ctti_info = CTF_TYPE_INFO (CTF_K_FORWARD, union_p, 0);
! 	  fwd->dtd_type = id;
! 	  ctfc->ctfc_num_types++;
! 	  ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (fwd);
! 	  ctf_add_string (ctfc, fwd->dtd_name, &(fwd->dtd_data.ctti_name),
! 			  CTF_STRTAB);
! 
! 	  /* Update the pointer to point to the forward.  */
! 	  fx->pointer_dtd->ref_type = fwd;
! 	  vec_safe_push (forwards, fwd);
  	}
      }
+ 
+   /* Construct the resulting pruned type list.  */
+   ctfc->ctfc_types_list
+     = ggc_vec_alloc<ctf_dtdef_ref> (btf_used_types->elements () + 1
+ 				    + vec_safe_length (forwards));
+ 
+   btf_used_types->traverse<ctf_container_ref, btf_used_type_list_cb> (ctfc);
+ 
+   /* Insert the newly created forwards into the regular types list too.  */
+   FOR_EACH_VEC_ELT (*forwards, i, dtd)
+     ctfc->ctfc_types_list[dtd->dtd_type] = dtd;
+ 
+   max_translated_id = btf_used_types->elements () + vec_safe_length (forwards);
  }
  
! /* Late entry point for BTF generation, called from dwarf2out_finish ().
!    Complete and emit BTF information.  */
  
  void
! btf_finish (void)
  {
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
    init_btf_sections ();
  
    datasecs.create (0);
  
!   btf_add_vars (tu_ctfc);
!   if (debug_prune_btf)
!     {
!       /* Collect pruned set of BTF types and prepare for emission.
! 	 This includes only types directly used in file-scope variables and
! 	 function return/argument types.  */
!       btf_collect_pruned_types (tu_ctfc);
!     }
!   else
!     {
!       /* Collect all BTF types and prepare for emission.
! 	 This includes all types translated from DWARF.  */
!       btf_collect_translated_types (tu_ctfc);
!     }
!   btf_add_func_datasec_entries (tu_ctfc);
  
!   btf_assign_var_ids (tu_ctfc);
!   btf_assign_func_ids (tu_ctfc);
!   btf_assign_datasec_ids (tu_ctfc);
  
!   /* Finally, write out the complete .BTF section.  */
!   btf_output (tu_ctfc);
! 
!   /* If compiling for BPF with CO-RE info, we cannot deallocate until after the
!      contents of the .BTF.ext section are finalized, which happens very late in
!      BPF backend.  Therefore, the deallocation (i.e. btf_finalize ()) is delayed
!      until TARGET_ASM_FILE_END for BPF CO-RE.  */
!   if (!btf_with_core_debuginfo_p ())
!     btf_finalize ();
  }
  
  /* Reset all state for BTF generation so that we can rerun the compiler within
*************** void
*** 1466,1490 ****
  btf_finalize (void)
  {
    btf_info_section = NULL;
  
-   /* Clear preprocessing state.  */
-   num_vars_added = 0;
-   num_types_added = 0;
-   num_types_created = 0;
- 
-   holes.release ();
-   voids.release ();
    for (size_t i = 0; i < datasecs.length (); i++)
      datasecs[i].entries.release ();
    datasecs.release ();
  
    funcs = NULL;
  
!   btf_var_ids->empty ();
!   btf_var_ids = NULL;
  
!   free (btf_id_map);
!   btf_id_map = NULL;
  
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
    ctfc_delete_container (tu_ctfc);
--- 1654,1683 ----
  btf_finalize (void)
  {
    btf_info_section = NULL;
+   max_translated_id = 0;
  
    for (size_t i = 0; i < datasecs.length (); i++)
      datasecs[i].entries.release ();
    datasecs.release ();
  
    funcs = NULL;
+   if (func_map)
+     {
+       func_map->empty ();
+       func_map = NULL;
+     }
  
!   if (debug_prune_btf)
!     {
!       if (btf_used_types)
! 	{
! 	  btf_used_types->empty ();
! 	  btf_used_types = NULL;
! 	}
  
!       fixups.release ();
!       forwards = NULL;
!     }
  
    ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
    ctfc_delete_container (tu_ctfc);
diff -Nrcpad gcc-14.2.0/gcc/builtin-attrs.def gcc-15.1.0/gcc/builtin-attrs.def
*** gcc-14.2.0/gcc/builtin-attrs.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/builtin-attrs.def	Fri Apr 25 08:18:00 2025
***************
*** 1,4 ****
! /* Copyright (C) 2001-2024 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2001-2025 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
*************** DEF_ATTR_IDENT (ATTR_FORMAT, "format")
*** 100,105 ****
--- 100,106 ----
  DEF_ATTR_IDENT (ATTR_FORMAT_ARG, "format_arg")
  DEF_ATTR_IDENT (ATTR_MALLOC, "malloc")
  DEF_ATTR_IDENT (ATTR_NONNULL, "nonnull")
+ DEF_ATTR_IDENT (ATTR_NONNULL_IF_NONZERO, "nonnull_if_nonzero")
  DEF_ATTR_IDENT (ATTR_NORETURN, "noreturn")
  DEF_ATTR_IDENT (ATTR_NOTHROW, "nothrow")
  DEF_ATTR_IDENT (ATTR_LEAF, "leaf")
*************** DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL
*** 233,238 ****
--- 234,251 ----
  /* Nothrow functions whose fifth parameter is a nonnull pointer.  */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_5, ATTR_NONNULL, ATTR_LIST_5, \
  			ATTR_NOTHROW_LIST)
+ /* Nothrow leaf functions whose selected pointer parameter(s) are conditionally
+    nonnull.  */
+ DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_IF12_LEAF, ATTR_NONNULL_IF_NONZERO, \
+ 			ATTR_LIST_1_2, ATTR_NOTHROW_LEAF_LIST)
+ DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_IF13_LEAF, ATTR_NONNULL_IF_NONZERO, \
+ 			ATTR_LIST_1_3, ATTR_NOTHROW_LEAF_LIST)
+ DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_IF123_LEAF, ATTR_NONNULL_IF_NONZERO, \
+ 			ATTR_LIST_2_3, ATTR_NOTHROW_NONNULL_IF13_LEAF)
+ DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_IF23_LEAF, ATTR_NONNULL_IF_NONZERO, \
+ 			ATTR_LIST_2_3, ATTR_NOTHROW_LEAF_LIST)
+ DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_1_IF23_LEAF, ATTR_NONNULL, \
+ 			ATTR_LIST_1, ATTR_NOTHROW_NONNULL_IF23_LEAF)
  
  /* Same as ATTR_NONNULL_1.  */
  DEF_ATTR_TREE_LIST (ATTR_NONNULL_1_1, ATTR_NONNULL, ATTR_LIST_1, ATTR_NULL)
*************** DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL
*** 266,272 ****
     are nonnull pointers.  */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_1_5, ATTR_NONNULL, ATTR_LIST_1_5, \
  		    ATTR_NOTHROW_LIST)
! 		
  /* Nothrow leaf functions which are type-generic.  */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_TYPEGENERIC_LEAF, ATTR_TYPEGENERIC, ATTR_NULL, \
  			ATTR_NOTHROW_LEAF_LIST)
--- 279,285 ----
     are nonnull pointers.  */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_NONNULL_1_5, ATTR_NONNULL, ATTR_LIST_1_5, \
  		    ATTR_NOTHROW_LIST)
! 
  /* Nothrow leaf functions which are type-generic.  */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_TYPEGENERIC_LEAF, ATTR_TYPEGENERIC, ATTR_NULL, \
  			ATTR_NOTHROW_LEAF_LIST)
*************** DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_NO
*** 300,305 ****
--- 313,326 ----
  /* Nothrow pure leaf functions whose pointer parameter(s) are all nonnull.  */
  DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_NONNULL_LEAF, ATTR_PURE, ATTR_NULL, \
  			ATTR_NOTHROW_NONNULL_LEAF)
+ /* Nothrow pure leaf functions whose selected pointer parameter(s) are
+    conditionally nonnull. */
+ DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF, ATTR_PURE, ATTR_NULL, \
+ 			ATTR_NOTHROW_NONNULL_IF12_LEAF)
+ DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF, ATTR_PURE, ATTR_NULL, \
+ 			ATTR_NOTHROW_NONNULL_IF13_LEAF)
+ DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF, ATTR_PURE, ATTR_NULL, \
+ 			ATTR_NOTHROW_NONNULL_IF123_LEAF)
  /* Nothrow malloc functions whose pointer parameter(s) are all nonnull.  */
  DEF_ATTR_TREE_LIST (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL, ATTR_WARN_UNUSED_RESULT, ATTR_NULL, \
  			ATTR_NOTHROW_NONNULL)
*************** DEF_ATTR_TREE_LIST (ATTR_WARN_UNUSED_RES
*** 310,315 ****
--- 331,344 ----
  			ATTR_NOTHROW_NONNULL_LEAF)
  DEF_ATTR_TREE_LIST (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF, ATTR_MALLOC, ATTR_NULL, \
  			ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
+ /* Nothrow malloc leaf functions whose selected pointer parameter(s) are
+    conditionally nonnull.  */
+ DEF_ATTR_TREE_LIST (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF, \
+ 			ATTR_WARN_UNUSED_RESULT, ATTR_NULL, \
+ 			ATTR_NOTHROW_NONNULL_IF12_LEAF)
+ DEF_ATTR_TREE_LIST (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF, \
+ 			ATTR_MALLOC, ATTR_NULL, \
+ 			ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF)
  
  /* Construct a tree for the format attribute (and implicitly nonnull).  */
  #define DEF_FORMAT_ATTRIBUTE(TYPE, FA, VALUES)				 \
diff -Nrcpad gcc-14.2.0/gcc/builtin-types.def gcc-15.1.0/gcc/builtin-types.def
*** gcc-14.2.0/gcc/builtin-types.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/builtin-types.def	Fri Apr 25 08:18:00 2025
***************
*** 1,4 ****
! /* Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2001-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** DEF_PRIMITIVE_TYPE (BT_DFLOAT64, (dfloat
*** 202,207 ****
--- 202,210 ----
  DEF_PRIMITIVE_TYPE (BT_DFLOAT128, (dfloat128_type_node
  				   ? dfloat128_type_node
  				   : error_mark_node))
+ DEF_PRIMITIVE_TYPE (BT_DFLOAT64X, (dfloat64x_type_node
+ 				   ? dfloat64x_type_node
+ 				   : error_mark_node))
  
  DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
  DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
*************** DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT128X, BT
*** 249,257 ****
--- 252,262 ----
  DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
  DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
  DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
+ DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64X, BT_DFLOAT64X)
  
  DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
  DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
+ DEF_FUNCTION_TYPE_1 (BT_FN_UINTMAX_INTMAX, BT_UINTMAX, BT_INTMAX)
  DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
  DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
  DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
*************** DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONS
*** 377,382 ****
--- 382,389 ----
  DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
  DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
  		     BT_DFLOAT128, BT_CONST_STRING)
+ DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64X_CONST_STRING, BT_DFLOAT64X,
+ 		     BT_CONST_STRING)
  DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
  DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
  DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
*************** DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT
*** 384,389 ****
--- 391,397 ----
  DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
  DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
  DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
+ DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64X_DFLOAT64X, BT_DFLOAT64X, BT_DFLOAT64X)
  DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
  DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
  DEF_FUNCTION_TYPE_1 (BT_FN_VOID_CONST_PTR, BT_VOID, BT_CONST_PTR)
*************** DEF_FUNCTION_TYPE_1 (BT_FN_UINT_CONST_PT
*** 396,402 ****
--- 404,412 ----
  DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_PTR, BT_ULONG, BT_PTR)
  DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_CONST_PTR, BT_ULONG, BT_CONST_PTR)
  DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
+ DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_LONG, BT_ULONG, BT_LONG)
  DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
+ DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_LONGLONG, BT_ULONGLONG, BT_LONGLONG)
  DEF_FUNCTION_TYPE_1 (BT_FN_INT8_FLOAT, BT_INT8, BT_FLOAT)
  DEF_FUNCTION_TYPE_1 (BT_FN_INT16_FLOAT, BT_INT16, BT_FLOAT)
  DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_FLOAT, BT_UINT32, BT_FLOAT)
*************** DEF_FUNCTION_TYPE_2 (BT_FN_INT_FEXCEPT_T
*** 677,682 ****
--- 687,693 ----
  DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_FEXCEPT_T_PTR_INT, BT_INT,
  		     BT_CONST_FEXCEPT_T_PTR, BT_INT)
  DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_UINT8, BT_PTR, BT_CONST_PTR, BT_UINT8)
+ DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_INT, BT_PTR, BT_CONST_PTR, BT_INT)
  
  DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
  
*************** DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING
*** 684,689 ****
--- 695,702 ----
  		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
  DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
  		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_PTRMODE_PTR_INT_PTR,
+ 		     BT_PTRMODE, BT_PTR, BT_INT, BT_PTR)
  DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
  		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
  DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_CONST_PTR_SIZE,
*************** DEF_FUNCTION_TYPE_3 (BT_FN_PTR_SIZE_SIZE
*** 829,834 ****
--- 842,867 ----
  		     BT_PTR, BT_SIZE, BT_SIZE, BT_PTRMODE)
  DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_UINT8_PTRMODE, BT_VOID, BT_PTR, BT_UINT8,
  		     BT_PTRMODE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT8_UINT8_UINT8_CONST_SIZE, BT_UINT8, BT_UINT8,
+ 		     BT_UINT8, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT16_UINT16_UINT8_CONST_SIZE, BT_UINT16, BT_UINT16,
+ 		     BT_UINT8, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT16_UINT16_UINT16_CONST_SIZE, BT_UINT16,
+ 		     BT_UINT16, BT_UINT16, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT32_UINT32_UINT8_CONST_SIZE, BT_UINT32, BT_UINT32,
+ 		     BT_UINT8, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT32_UINT32_UINT16_CONST_SIZE, BT_UINT32,
+ 		     BT_UINT32, BT_UINT16, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT32_UINT32_UINT32_CONST_SIZE, BT_UINT32,
+ 		     BT_UINT32, BT_UINT32, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT64_UINT64_UINT8_CONST_SIZE, BT_UINT64, BT_UINT64,
+ 		     BT_UINT8, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT64_UINT64_UINT16_CONST_SIZE, BT_UINT64,
+ 		     BT_UINT64, BT_UINT16, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT64_UINT64_UINT32_CONST_SIZE, BT_UINT64,
+ 		     BT_UINT64, BT_UINT32, BT_CONST_SIZE)
+ DEF_FUNCTION_TYPE_3 (BT_FN_UINT64_UINT64_UINT64_CONST_SIZE, BT_UINT64,
+ 		     BT_UINT64, BT_UINT64, BT_CONST_SIZE)
  
  DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
  		     BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
*************** DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LON
*** 918,936 ****
  DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
  		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, 
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, 
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, 
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, 
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, 
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
  		     BT_INT)
  DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
--- 951,969 ----
  DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
  		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT,
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT,
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT,
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT,
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
  		     BT_INT)
! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT,
  		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
  		     BT_INT)
  DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
*************** DEF_FUNCTION_TYPE_11 (BT_FN_VOID_OMPFN_P
*** 982,987 ****
--- 1015,1023 ----
  		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
  		      BT_UINT, BT_LONG, BT_INT,
  		      BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
+ DEF_FUNCTION_TYPE_11 (BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR,
+ 		      BT_VOID, BT_INT, BT_INT, BT_PTR, BT_PTR, BT_PTR, BT_INT,
+ 		      BT_PTR, BT_INT, BT_PTR, BT_UINT, BT_PTR)
  
  DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
  DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
diff -Nrcpad gcc-14.2.0/gcc/builtins.cc gcc-15.1.0/gcc/builtins.cc
*** gcc-14.2.0/gcc/builtins.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/builtins.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static tree fold_builtin_iseqsig (locati
*** 176,183 ****
  static tree fold_builtin_varargs (location_t, tree, tree*, int);
  
  static tree fold_builtin_strpbrk (location_t, tree, tree, tree, tree);
! static tree fold_builtin_strspn (location_t, tree, tree, tree);
! static tree fold_builtin_strcspn (location_t, tree, tree, tree);
  
  static rtx expand_builtin_object_size (tree);
  static rtx expand_builtin_memory_chk (tree, rtx, machine_mode,
--- 176,183 ----
  static tree fold_builtin_varargs (location_t, tree, tree*, int);
  
  static tree fold_builtin_strpbrk (location_t, tree, tree, tree, tree);
! static tree fold_builtin_strspn (location_t, tree, tree, tree, tree);
! static tree fold_builtin_strcspn (location_t, tree, tree, tree, tree);
  
  static rtx expand_builtin_object_size (tree);
  static rtx expand_builtin_memory_chk (tree, rtx, machine_mode,
*************** validate_arglist (const_tree callexpr, .
*** 1149,1154 ****
--- 1149,1172 ----
  
    BITMAP_FREE (argmap);
  
+   if (res)
+     for (tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (TREE_TYPE (fn)));
+ 	 (attrs = lookup_attribute ("nonnull_if_nonzero", attrs));
+ 	 attrs = TREE_CHAIN (attrs))
+       {
+ 	tree args = TREE_VALUE (attrs);
+ 	unsigned int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
+ 	unsigned int idx2
+ 	  = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (args))) - 1;
+ 	if (idx < (unsigned) call_expr_nargs (callexpr)
+ 	    && idx2 < (unsigned) call_expr_nargs (callexpr)
+ 	    && POINTER_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (callexpr, idx)))
+ 	    && integer_zerop (CALL_EXPR_ARG (callexpr, idx))
+ 	    && INTEGRAL_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (callexpr, idx2)))
+ 	    && integer_nonzerop (CALL_EXPR_ARG (callexpr, idx2)))
+ 	  return false;
+       }
+ 
    return res;
  }
  
*************** expand_builtin_prefetch (tree exp)
*** 1280,1306 ****
       zero (read) and argument 2 (locality) defaults to 3 (high degree of
       locality).  */
    nargs = call_expr_nargs (exp);
!   if (nargs > 1)
!     arg1 = CALL_EXPR_ARG (exp, 1);
!   else
!     arg1 = integer_zero_node;
!   if (nargs > 2)
!     arg2 = CALL_EXPR_ARG (exp, 2);
!   else
!     arg2 = integer_three_node;
  
    /* Argument 0 is an address.  */
    op0 = expand_expr (arg0, NULL_RTX, Pmode, EXPAND_NORMAL);
  
    /* Argument 1 (read/write flag) must be a compile-time constant int.  */
!   if (TREE_CODE (arg1) != INTEGER_CST)
      {
        error ("second argument to %<__builtin_prefetch%> must be a constant");
!       arg1 = integer_zero_node;
      }
!   op1 = expand_normal (arg1);
!   /* Argument 1 must be either zero or one.  */
!   if (INTVAL (op1) != 0 && INTVAL (op1) != 1)
      {
        warning (0, "invalid second argument to %<__builtin_prefetch%>;"
  	       " using zero");
--- 1298,1321 ----
       zero (read) and argument 2 (locality) defaults to 3 (high degree of
       locality).  */
    nargs = call_expr_nargs (exp);
!   arg1 = nargs > 1 ? CALL_EXPR_ARG (exp, 1) : NULL_TREE;
!   arg2 = nargs > 2 ? CALL_EXPR_ARG (exp, 2) : NULL_TREE;
  
    /* Argument 0 is an address.  */
    op0 = expand_expr (arg0, NULL_RTX, Pmode, EXPAND_NORMAL);
  
    /* Argument 1 (read/write flag) must be a compile-time constant int.  */
!   if (arg1 == NULL_TREE)
!     op1 = const0_rtx;
!   else if (TREE_CODE (arg1) != INTEGER_CST)
      {
        error ("second argument to %<__builtin_prefetch%> must be a constant");
!       op1 = const0_rtx;
      }
!   else
!     op1 = expand_normal (arg1);
!   /* Argument 1 must be 0, 1 or 2.  */
!   if (!IN_RANGE (INTVAL (op1), 0, 2))
      {
        warning (0, "invalid second argument to %<__builtin_prefetch%>;"
  	       " using zero");
*************** expand_builtin_prefetch (tree exp)
*** 1308,1321 ****
      }
  
    /* Argument 2 (locality) must be a compile-time constant int.  */
!   if (TREE_CODE (arg2) != INTEGER_CST)
      {
        error ("third argument to %<__builtin_prefetch%> must be a constant");
!       arg2 = integer_zero_node;
      }
!   op2 = expand_normal (arg2);
    /* Argument 2 must be 0, 1, 2, or 3.  */
!   if (INTVAL (op2) < 0 || INTVAL (op2) > 3)
      {
        warning (0, "invalid third argument to %<__builtin_prefetch%>; using zero");
        op2 = const0_rtx;
--- 1323,1339 ----
      }
  
    /* Argument 2 (locality) must be a compile-time constant int.  */
!   if (arg2 == NULL_TREE)
!     op2 = GEN_INT (3);
!   else if (TREE_CODE (arg2) != INTEGER_CST)
      {
        error ("third argument to %<__builtin_prefetch%> must be a constant");
!       op2 = const0_rtx;
      }
!   else
!     op2 = expand_normal (arg2);
    /* Argument 2 must be 0, 1, 2, or 3.  */
!   if (!IN_RANGE (INTVAL (op2), 0, 3))
      {
        warning (0, "invalid third argument to %<__builtin_prefetch%>; using zero");
        op2 = const0_rtx;
*************** associated_internal_fn (built_in_functio
*** 2207,2213 ****
        if (REAL_MODE_FORMAT (TYPE_MODE (return_type))->b == 2)
  	return IFN_LDEXP;
        return IFN_LAST;
! 
      default:
        return IFN_LAST;
      }
--- 2225,2252 ----
        if (REAL_MODE_FORMAT (TYPE_MODE (return_type))->b == 2)
  	return IFN_LDEXP;
        return IFN_LAST;
!     case BUILT_IN_CRC8_DATA8:
!     case BUILT_IN_CRC16_DATA8:
!     case BUILT_IN_CRC16_DATA16:
!     case BUILT_IN_CRC32_DATA8:
!     case BUILT_IN_CRC32_DATA16:
!     case BUILT_IN_CRC32_DATA32:
!     case BUILT_IN_CRC64_DATA8:
!     case BUILT_IN_CRC64_DATA16:
!     case BUILT_IN_CRC64_DATA32:
!     case BUILT_IN_CRC64_DATA64:
!       return IFN_CRC;
!     case BUILT_IN_REV_CRC8_DATA8:
!     case BUILT_IN_REV_CRC16_DATA8:
!     case BUILT_IN_REV_CRC16_DATA16:
!     case BUILT_IN_REV_CRC32_DATA8:
!     case BUILT_IN_REV_CRC32_DATA16:
!     case BUILT_IN_REV_CRC32_DATA32:
!     case BUILT_IN_REV_CRC64_DATA8:
!     case BUILT_IN_REV_CRC64_DATA16:
!     case BUILT_IN_REV_CRC64_DATA32:
!     case BUILT_IN_REV_CRC64_DATA64:
!       return IFN_CRC_REV;
      default:
        return IFN_LAST;
      }
*************** interclass_mathfn_icode (tree arg, tree
*** 2459,2466 ****
        errno_set = true; builtin_optab = ilogb_optab; break;
      CASE_FLT_FN (BUILT_IN_ISINF):
        builtin_optab = isinf_optab; break;
-     case BUILT_IN_ISNORMAL:
      case BUILT_IN_ISFINITE:
      CASE_FLT_FN (BUILT_IN_FINITE):
      case BUILT_IN_FINITED32:
      case BUILT_IN_FINITED64:
--- 2498,2509 ----
        errno_set = true; builtin_optab = ilogb_optab; break;
      CASE_FLT_FN (BUILT_IN_ISINF):
        builtin_optab = isinf_optab; break;
      case BUILT_IN_ISFINITE:
+       builtin_optab = isfinite_optab;
+       break;
+     case BUILT_IN_ISNORMAL:
+       builtin_optab = isnormal_optab;
+       break;
      CASE_FLT_FN (BUILT_IN_FINITE):
      case BUILT_IN_FINITED32:
      case BUILT_IN_FINITED64:
*************** expand_builtin_issignaling (tree exp, rt
*** 2835,2843 ****
  	     it is, working on the DImode high part is usually better.  */
  	  if (!MEM_P (temp))
  	    {
! 	      if (rtx t = simplify_gen_subreg (imode, temp, fmode,
! 					       subreg_highpart_offset (imode,
! 								       fmode)))
  		hi = t;
  	      else
  		{
--- 2878,2884 ----
  	     it is, working on the DImode high part is usually better.  */
  	  if (!MEM_P (temp))
  	    {
! 	      if (rtx t = force_highpart_subreg (imode, temp, fmode))
  		hi = t;
  	      else
  		{
*************** expand_builtin_issignaling (tree exp, rt
*** 2845,2853 ****
  		  if (int_mode_for_mode (fmode).exists (&imode2))
  		    {
  		      rtx temp2 = gen_lowpart (imode2, temp);
! 		      poly_uint64 off = subreg_highpart_offset (imode, imode2);
! 		      if (rtx t = simplify_gen_subreg (imode, temp2,
! 						       imode2, off))
  			hi = t;
  		    }
  		}
--- 2886,2892 ----
  		  if (int_mode_for_mode (fmode).exists (&imode2))
  		    {
  		      rtx temp2 = gen_lowpart (imode2, temp);
! 		      if (rtx t = force_highpart_subreg (imode, temp2, imode2))
  			hi = t;
  		    }
  		}
*************** expand_builtin_issignaling (tree exp, rt
*** 2938,2959 ****
  	   it is, working on DImode parts is usually better.  */
  	if (!MEM_P (temp))
  	  {
! 	    hi = simplify_gen_subreg (imode, temp, fmode,
! 				      subreg_highpart_offset (imode, fmode));
! 	    lo = simplify_gen_subreg (imode, temp, fmode,
! 				      subreg_lowpart_offset (imode, fmode));
  	    if (!hi || !lo)
  	      {
  		scalar_int_mode imode2;
  		if (int_mode_for_mode (fmode).exists (&imode2))
  		  {
  		    rtx temp2 = gen_lowpart (imode2, temp);
! 		    hi = simplify_gen_subreg (imode, temp2, imode2,
! 					      subreg_highpart_offset (imode,
! 								      imode2));
! 		    lo = simplify_gen_subreg (imode, temp2, imode2,
! 					      subreg_lowpart_offset (imode,
! 								     imode2));
  		  }
  	      }
  	    if (!hi || !lo)
--- 2977,2992 ----
  	   it is, working on DImode parts is usually better.  */
  	if (!MEM_P (temp))
  	  {
! 	    hi = force_highpart_subreg (imode, temp, fmode);
! 	    lo = force_lowpart_subreg (imode, temp, fmode);
  	    if (!hi || !lo)
  	      {
  		scalar_int_mode imode2;
  		if (int_mode_for_mode (fmode).exists (&imode2))
  		  {
  		    rtx temp2 = gen_lowpart (imode2, temp);
! 		    hi = force_highpart_subreg (imode, temp2, imode2);
! 		    lo = force_lowpart_subreg (imode, temp2, imode2);
  		  }
  	      }
  	    if (!hi || !lo)
*************** expand_builtin_strnlen (tree exp, rtx ta
*** 3502,3508 ****
      return NULL_RTX;
  
    wide_int min, max;
!   value_range r;
    get_global_range_query ()->range_of_expr (r, bound);
    if (r.varying_p () || r.undefined_p ())
      return NULL_RTX;
--- 3535,3541 ----
      return NULL_RTX;
  
    wide_int min, max;
!   int_range_max r;
    get_global_range_query ()->range_of_expr (r, bound);
    if (r.varying_p () || r.undefined_p ())
      return NULL_RTX;
*************** builtin_memcpy_read_str (void *data, voi
*** 3543,3549 ****
  }
  
  /* LEN specify length of the block of memcpy/memset operation.
!    Figure out its range and put it into MIN_SIZE/MAX_SIZE. 
     In some cases we can make very likely guess on max size, then we
     set it into PROBABLE_MAX_SIZE.  */
  
--- 3576,3582 ----
  }
  
  /* LEN specify length of the block of memcpy/memset operation.
!    Figure out its range and put it into MIN_SIZE/MAX_SIZE.
     In some cases we can make very likely guess on max size, then we
     set it into PROBABLE_MAX_SIZE.  */
  
*************** determine_block_size (tree len, rtx len_
*** 3576,3582 ****
  
        if (TREE_CODE (len) == SSA_NAME)
  	{
! 	  value_range r;
  	  tree tmin, tmax;
  	  get_global_range_query ()->range_of_expr (r, len);
  	  range_type = get_legacy_range (r, tmin, tmax);
--- 3609,3615 ----
  
        if (TREE_CODE (len) == SSA_NAME)
  	{
! 	  int_range_max r;
  	  tree tmin, tmax;
  	  get_global_range_query ()->range_of_expr (r, len);
  	  range_type = get_legacy_range (r, tmin, tmax);
*************** expand_builtin_fork_or_exec (tree fn, tr
*** 6329,6335 ****
    tree call;
  
    /* If we are not profiling, just call the function.  */
!   if (!profile_arc_flag && !condition_coverage_flag)
      return NULL_RTX;
  
    /* Otherwise call the wrapper.  This should be equivalent for the rest of
--- 6362,6368 ----
    tree call;
  
    /* If we are not profiling, just call the function.  */
!   if (!coverage_instrumentation_p ())
      return NULL_RTX;
  
    /* Otherwise call the wrapper.  This should be equivalent for the rest of
*************** get_builtin_sync_mem (tree loc, machine_
*** 6434,6440 ****
  }
  
  /* Make sure an argument is in the right mode.
!    EXP is the tree argument. 
     MODE is the mode it should be in.  */
  
  static rtx
--- 6467,6473 ----
  }
  
  /* Make sure an argument is in the right mode.
!    EXP is the tree argument.
     MODE is the mode it should be in.  */
  
  static rtx
*************** expand_builtin_sync_lock_test_and_set (m
*** 6593,6599 ****
  
  /* Expand the __sync_lock_release intrinsic.  EXP is the CALL_EXPR.  */
  
! static void
  expand_builtin_sync_lock_release (machine_mode mode, tree exp)
  {
    rtx mem;
--- 6626,6632 ----
  
  /* Expand the __sync_lock_release intrinsic.  EXP is the CALL_EXPR.  */
  
! static rtx
  expand_builtin_sync_lock_release (machine_mode mode, tree exp)
  {
    rtx mem;
*************** expand_builtin_sync_lock_release (machin
*** 6601,6607 ****
    /* Expand the operands.  */
    mem = get_builtin_sync_mem (CALL_EXPR_ARG (exp, 0), mode);
  
!   expand_atomic_store (mem, const0_rtx, MEMMODEL_SYNC_RELEASE, true);
  }
  
  /* Given an integer representing an ``enum memmodel'', verify its
--- 6634,6640 ----
    /* Expand the operands.  */
    mem = get_builtin_sync_mem (CALL_EXPR_ARG (exp, 0), mode);
  
!   return expand_atomic_store (mem, const0_rtx, MEMMODEL_SYNC_RELEASE, true);
  }
  
  /* Given an integer representing an ``enum memmodel'', verify its
*************** expand_builtin_atomic_exchange (machine_
*** 6659,6673 ****
  }
  
  /* Expand the __atomic_compare_exchange intrinsic:
!    	bool __atomic_compare_exchange (TYPE *object, TYPE *expect, 
! 					TYPE desired, BOOL weak, 
  					enum memmodel success,
  					enum memmodel failure)
     EXP is the CALL_EXPR.
     TARGET is an optional place for us to store the results.  */
  
  static rtx
! expand_builtin_atomic_compare_exchange (machine_mode mode, tree exp, 
  					rtx target)
  {
    rtx expect, desired, mem, oldval;
--- 6692,6706 ----
  }
  
  /* Expand the __atomic_compare_exchange intrinsic:
!    	bool __atomic_compare_exchange (TYPE *object, TYPE *expect,
! 					TYPE desired, BOOL weak,
  					enum memmodel success,
  					enum memmodel failure)
     EXP is the CALL_EXPR.
     TARGET is an optional place for us to store the results.  */
  
  static rtx
! expand_builtin_atomic_compare_exchange (machine_mode mode, tree exp,
  					rtx target)
  {
    rtx expect, desired, mem, oldval;
*************** expand_builtin_atomic_compare_exchange (
*** 6680,6693 ****
  
    if (failure > success)
      success = MEMMODEL_SEQ_CST;
!  
    if (is_mm_release (failure) || is_mm_acq_rel (failure))
      {
        failure = MEMMODEL_SEQ_CST;
        success = MEMMODEL_SEQ_CST;
      }
  
!  
    if (!flag_inline_atomics)
      return NULL_RTX;
  
--- 6713,6726 ----
  
    if (failure > success)
      success = MEMMODEL_SEQ_CST;
! 
    if (is_mm_release (failure) || is_mm_acq_rel (failure))
      {
        failure = MEMMODEL_SEQ_CST;
        success = MEMMODEL_SEQ_CST;
      }
  
! 
    if (!flag_inline_atomics)
      return NULL_RTX;
  
*************** expand_ifn_atomic_op_fetch_cmp_0 (gcall
*** 7166,7172 ****
     EXP is the call expression.  */
  
  static rtx
! expand_builtin_atomic_clear (tree exp) 
  {
    machine_mode mode = int_mode_for_size (BOOL_TYPE_SIZE, 0).require ();
    rtx mem = get_builtin_sync_mem (CALL_EXPR_ARG (exp, 0), mode);
--- 7199,7205 ----
     EXP is the call expression.  */
  
  static rtx
! expand_builtin_atomic_clear (tree exp)
  {
    machine_mode mode = int_mode_for_size (BOOL_TYPE_SIZE, 0).require ();
    rtx mem = get_builtin_sync_mem (CALL_EXPR_ARG (exp, 0), mode);
*************** fold_builtin_atomic_always_lock_free (tr
*** 7278,7286 ****
  
  /* Return true if the parameters to call EXP represent an object which will
     always generate lock free instructions.  The first argument represents the
!    size of the object, and the second parameter is a pointer to the object 
!    itself.  If NULL is passed for the object, then the result is based on 
!    typical alignment for an object of the specified size.  Otherwise return 
     false.  */
  
  static rtx
--- 7311,7319 ----
  
  /* Return true if the parameters to call EXP represent an object which will
     always generate lock free instructions.  The first argument represents the
!    size of the object, and the second parameter is a pointer to the object
!    itself.  If NULL is passed for the object, then the result is based on
!    typical alignment for an object of the specified size.  Otherwise return
     false.  */
  
  static rtx
*************** expand_builtin_atomic_always_lock_free (
*** 7302,7308 ****
    return const0_rtx;
  }
  
! /* Return a one or zero if it can be determined that object ARG1 of size ARG 
     is lock free on this architecture.  */
  
  static tree
--- 7335,7341 ----
    return const0_rtx;
  }
  
! /* Return a one or zero if it can be determined that object ARG1 of size ARG
     is lock free on this architecture.  */
  
  static tree
*************** fold_builtin_atomic_is_lock_free (tree a
*** 7310,7316 ****
  {
    if (!flag_inline_atomics)
      return NULL_TREE;
!   
    /* If it isn't always lock free, don't generate a result.  */
    if (fold_builtin_atomic_always_lock_free (arg0, arg1) == boolean_true_node)
      return boolean_true_node;
--- 7343,7349 ----
  {
    if (!flag_inline_atomics)
      return NULL_TREE;
! 
    /* If it isn't always lock free, don't generate a result.  */
    if (fold_builtin_atomic_always_lock_free (arg0, arg1) == boolean_true_node)
      return boolean_true_node;
*************** fold_builtin_atomic_is_lock_free (tree a
*** 7320,7328 ****
  
  /* Return true if the parameters to call EXP represent an object which will
     always generate lock free instructions.  The first argument represents the
!    size of the object, and the second parameter is a pointer to the object 
!    itself.  If NULL is passed for the object, then the result is based on 
!    typical alignment for an object of the specified size.  Otherwise return 
     NULL*/
  
  static rtx
--- 7353,7361 ----
  
  /* Return true if the parameters to call EXP represent an object which will
     always generate lock free instructions.  The first argument represents the
!    size of the object, and the second parameter is a pointer to the object
!    itself.  If NULL is passed for the object, then the result is based on
!    typical alignment for an object of the specified size.  Otherwise return
     NULL*/
  
  static rtx
*************** expand_builtin_atomic_is_lock_free (tree
*** 7339,7345 ****
      }
  
    if (!flag_inline_atomics)
!     return NULL_RTX; 
  
    /* If the value is known at compile time, return the RTX for it.  */
    size = fold_builtin_atomic_is_lock_free (arg0, arg1);
--- 7372,7378 ----
      }
  
    if (!flag_inline_atomics)
!     return NULL_RTX;
  
    /* If the value is known at compile time, return the RTX for it.  */
    size = fold_builtin_atomic_is_lock_free (arg0, arg1);
*************** expand_builtin_set_thread_pointer (tree
*** 7413,7419 ****
      {
        class expand_operand op;
        rtx val = expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX,
! 			     Pmode, EXPAND_NORMAL);      
        create_input_operand (&op, val, Pmode);
        expand_insn (icode, 1, &op);
        return;
--- 7446,7452 ----
      {
        class expand_operand op;
        rtx val = expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX,
! 			     Pmode, EXPAND_NORMAL);
        create_input_operand (&op, val, Pmode);
        expand_insn (icode, 1, &op);
        return;
*************** expand_builtin_goacc_parlevel_id_size (t
*** 7529,7535 ****
     LENGTH is the number of chars to compare;
     CONST_STR_N indicates which source string is the constant string;
     IS_MEMCMP indicates whether it's a memcmp or strcmp.
!   
     to: (assume const_str_n is 2, i.e., arg2 is a constant string)
  
     target = (int) (unsigned char) var_str[0]
--- 7562,7568 ----
     LENGTH is the number of chars to compare;
     CONST_STR_N indicates which source string is the constant string;
     IS_MEMCMP indicates whether it's a memcmp or strcmp.
! 
     to: (assume const_str_n is 2, i.e., arg2 is a constant string)
  
     target = (int) (unsigned char) var_str[0]
*************** expand_speculation_safe_value (machine_m
*** 7751,7756 ****
--- 7784,7821 ----
    return targetm.speculation_safe_value (mode, target, val, failsafe);
  }
  
+ /* Expand CRC* or REV_CRC* built-ins.  */
+ 
+ rtx
+ expand_builtin_crc_table_based (internal_fn fn, scalar_mode crc_mode,
+ 				scalar_mode data_mode, machine_mode mode,
+ 				tree exp, rtx target)
+ {
+   tree rhs1 = CALL_EXPR_ARG (exp, 0); // crc
+   tree rhs2 = CALL_EXPR_ARG (exp, 1); // data
+   tree rhs3 = CALL_EXPR_ARG (exp, 2); // polynomial
+ 
+   if (!target || mode == VOIDmode)
+     target = gen_reg_rtx (crc_mode);
+ 
+   rtx op1 = expand_normal (rhs1);
+   rtx op2 = expand_normal (rhs2);
+   gcc_assert (TREE_CODE (rhs3) == INTEGER_CST);
+   rtx op3 = gen_int_mode (TREE_INT_CST_LOW (rhs3), crc_mode);
+ 
+   if (CONST_INT_P (op2))
+     op2 = gen_int_mode (INTVAL (op2), crc_mode);
+ 
+   if (fn == IFN_CRC)
+     expand_crc_table_based (target, op1, op2, op3, data_mode);
+   else
+     /* If it's IFN_CRC_REV generate bit-reversed CRC.  */
+     expand_reversed_crc_table_based (target, op1, op2, op3,
+ 				     data_mode,
+ 				     generate_reflecting_code_standard);
+   return target;
+ }
+ 
  /* Expand an expression EXP that calls a built-in function,
     with result going to TARGET if that's convenient
     (and in mode MODE if that's convenient).
*************** expand_builtin (tree exp, rtx target, rt
*** 7857,7862 ****
--- 7922,7928 ----
      case BUILT_IN_FABSD32:
      case BUILT_IN_FABSD64:
      case BUILT_IN_FABSD128:
+     case BUILT_IN_FABSD64X:
        target = expand_builtin_fabs (exp, target, subtarget);
        if (target)
  	return target;
*************** expand_builtin (tree exp, rtx target, rt
*** 8574,8580 ****
        if (!target || !register_operand (target, mode))
  	target = gen_reg_rtx (mode);
  
!       mode = get_builtin_sync_mode 
  				(fcode - BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1);
        target = expand_builtin_compare_and_swap (mode, exp, true, target);
        if (target)
--- 8640,8646 ----
        if (!target || !register_operand (target, mode))
  	target = gen_reg_rtx (mode);
  
!       mode = get_builtin_sync_mode
  				(fcode - BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1);
        target = expand_builtin_compare_and_swap (mode, exp, true, target);
        if (target)
*************** expand_builtin (tree exp, rtx target, rt
*** 8586,8592 ****
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4:
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8:
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16:
!       mode = get_builtin_sync_mode 
  				(fcode - BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1);
        target = expand_builtin_compare_and_swap (mode, exp, false, target);
        if (target)
--- 8652,8658 ----
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4:
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8:
      case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16:
!       mode = get_builtin_sync_mode
  				(fcode - BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1);
        target = expand_builtin_compare_and_swap (mode, exp, false, target);
        if (target)
*************** expand_builtin (tree exp, rtx target, rt
*** 8610,8617 ****
      case BUILT_IN_SYNC_LOCK_RELEASE_8:
      case BUILT_IN_SYNC_LOCK_RELEASE_16:
        mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_LOCK_RELEASE_1);
!       expand_builtin_sync_lock_release (mode, exp);
!       return const0_rtx;
  
      case BUILT_IN_SYNC_SYNCHRONIZE:
        expand_builtin_sync_synchronize ();
--- 8676,8684 ----
      case BUILT_IN_SYNC_LOCK_RELEASE_8:
      case BUILT_IN_SYNC_LOCK_RELEASE_16:
        mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_LOCK_RELEASE_1);
!       if (expand_builtin_sync_lock_release (mode, exp))
! 	return const0_rtx;
!       break;
  
      case BUILT_IN_SYNC_SYNCHRONIZE:
        expand_builtin_sync_synchronize ();
*************** expand_builtin (tree exp, rtx target, rt
*** 8637,8643 ****
  	unsigned int nargs, z;
  	vec<tree, va_gc> *vec;
  
! 	mode = 
  	    get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1);
  	target = expand_builtin_atomic_compare_exchange (mode, exp, target);
  	if (target)
--- 8704,8710 ----
  	unsigned int nargs, z;
  	vec<tree, va_gc> *vec;
  
! 	mode =
  	    get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1);
  	target = expand_builtin_atomic_compare_exchange (mode, exp, target);
  	if (target)
*************** expand_builtin (tree exp, rtx target, rt
*** 8686,8692 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_ADD_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_ADD_1 + 
  				       (fcode - BUILT_IN_ATOMIC_ADD_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, PLUS, true,
  						 ignore, lib);
--- 8753,8759 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_ADD_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_ADD_1 +
  				       (fcode - BUILT_IN_ATOMIC_ADD_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, PLUS, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8702,8708 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_SUB_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_SUB_1 + 
  				       (fcode - BUILT_IN_ATOMIC_SUB_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, MINUS, true,
  						 ignore, lib);
--- 8769,8775 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_SUB_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_SUB_1 +
  				       (fcode - BUILT_IN_ATOMIC_SUB_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, MINUS, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8718,8724 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_AND_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_AND_1 + 
  				       (fcode - BUILT_IN_ATOMIC_AND_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, AND, true,
  						 ignore, lib);
--- 8785,8791 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_AND_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_AND_1 +
  				       (fcode - BUILT_IN_ATOMIC_AND_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, AND, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8734,8740 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_NAND_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_NAND_1 + 
  				       (fcode - BUILT_IN_ATOMIC_NAND_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, NOT, true,
  						 ignore, lib);
--- 8801,8807 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_NAND_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_NAND_1 +
  				       (fcode - BUILT_IN_ATOMIC_NAND_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, NOT, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8750,8756 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_XOR_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_XOR_1 + 
  				       (fcode - BUILT_IN_ATOMIC_XOR_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, XOR, true,
  						 ignore, lib);
--- 8817,8823 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_XOR_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_XOR_1 +
  				       (fcode - BUILT_IN_ATOMIC_XOR_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, XOR, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8766,8772 ****
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_OR_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_OR_1 + 
  				       (fcode - BUILT_IN_ATOMIC_OR_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, IOR, true,
  						 ignore, lib);
--- 8833,8839 ----
        {
  	enum built_in_function lib;
  	mode = get_builtin_sync_mode (fcode - BUILT_IN_ATOMIC_OR_FETCH_1);
! 	lib = (enum built_in_function)((int)BUILT_IN_ATOMIC_FETCH_OR_1 +
  				       (fcode - BUILT_IN_ATOMIC_OR_FETCH_1));
  	target = expand_builtin_atomic_fetch_op (mode, exp, target, IOR, true,
  						 ignore, lib);
*************** expand_builtin (tree exp, rtx target, rt
*** 8785,8791 ****
        if (target)
  	return target;
        break;
!  
      case BUILT_IN_ATOMIC_FETCH_SUB_1:
      case BUILT_IN_ATOMIC_FETCH_SUB_2:
      case BUILT_IN_ATOMIC_FETCH_SUB_4:
--- 8852,8858 ----
        if (target)
  	return target;
        break;
! 
      case BUILT_IN_ATOMIC_FETCH_SUB_1:
      case BUILT_IN_ATOMIC_FETCH_SUB_2:
      case BUILT_IN_ATOMIC_FETCH_SUB_4:
*************** expand_builtin (tree exp, rtx target, rt
*** 8809,8815 ****
        if (target)
  	return target;
        break;
!   
      case BUILT_IN_ATOMIC_FETCH_NAND_1:
      case BUILT_IN_ATOMIC_FETCH_NAND_2:
      case BUILT_IN_ATOMIC_FETCH_NAND_4:
--- 8876,8882 ----
        if (target)
  	return target;
        break;
! 
      case BUILT_IN_ATOMIC_FETCH_NAND_1:
      case BUILT_IN_ATOMIC_FETCH_NAND_2:
      case BUILT_IN_ATOMIC_FETCH_NAND_4:
*************** expand_builtin (tree exp, rtx target, rt
*** 8821,8827 ****
        if (target)
  	return target;
        break;
!  
      case BUILT_IN_ATOMIC_FETCH_XOR_1:
      case BUILT_IN_ATOMIC_FETCH_XOR_2:
      case BUILT_IN_ATOMIC_FETCH_XOR_4:
--- 8888,8894 ----
        if (target)
  	return target;
        break;
! 
      case BUILT_IN_ATOMIC_FETCH_XOR_1:
      case BUILT_IN_ATOMIC_FETCH_XOR_2:
      case BUILT_IN_ATOMIC_FETCH_XOR_4:
*************** expand_builtin (tree exp, rtx target, rt
*** 8833,8839 ****
        if (target)
  	return target;
        break;
!  
      case BUILT_IN_ATOMIC_FETCH_OR_1:
      case BUILT_IN_ATOMIC_FETCH_OR_2:
      case BUILT_IN_ATOMIC_FETCH_OR_4:
--- 8900,8906 ----
        if (target)
  	return target;
        break;
! 
      case BUILT_IN_ATOMIC_FETCH_OR_1:
      case BUILT_IN_ATOMIC_FETCH_OR_2:
      case BUILT_IN_ATOMIC_FETCH_OR_4:
*************** expand_builtin (tree exp, rtx target, rt
*** 8854,8860 ****
  
      case BUILT_IN_ATOMIC_CLEAR:
        return expand_builtin_atomic_clear (exp);
!  
      case BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE:
        return expand_builtin_atomic_always_lock_free (exp);
  
--- 8921,8927 ----
  
      case BUILT_IN_ATOMIC_CLEAR:
        return expand_builtin_atomic_clear (exp);
! 
      case BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE:
        return expand_builtin_atomic_always_lock_free (exp);
  
*************** expand_builtin (tree exp, rtx target, rt
*** 8928,8933 ****
--- 8995,9060 ----
        mode = get_builtin_sync_mode (fcode - BUILT_IN_SPECULATION_SAFE_VALUE_1);
        return expand_speculation_safe_value (mode, exp, target, ignore);
  
+     case BUILT_IN_CRC8_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC, QImode, QImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC16_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC, HImode, QImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC16_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC, HImode, HImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC32_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC, SImode, QImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC32_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC, SImode, HImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC32_DATA32:
+       return expand_builtin_crc_table_based (IFN_CRC, SImode, SImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC64_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC, DImode, QImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC64_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC, DImode, HImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC64_DATA32:
+       return expand_builtin_crc_table_based (IFN_CRC, DImode, SImode, mode,
+ 					       exp, target);
+     case BUILT_IN_CRC64_DATA64:
+       return expand_builtin_crc_table_based (IFN_CRC, DImode, DImode, mode,
+ 					       exp, target);
+     case BUILT_IN_REV_CRC8_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, QImode, QImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC16_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, HImode, QImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC16_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, HImode, HImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC32_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, SImode, QImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC32_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, SImode, HImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC32_DATA32:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, SImode, SImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC64_DATA8:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, DImode, QImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC64_DATA16:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, DImode, HImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC64_DATA32:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, DImode, SImode,
+ 					       mode, exp, target);
+     case BUILT_IN_REV_CRC64_DATA64:
+       return expand_builtin_crc_table_based (IFN_CRC_REV, DImode, DImode,
+ 					       mode, exp, target);
      default:	/* just do library call, if unknown builtin */
        break;
      }
*************** fold_builtin_fabs (location_t loc, tree
*** 9383,9389 ****
    return fold_build1_loc (loc, ABS_EXPR, type, arg);
  }
  
! /* Fold a call to abs, labs, llabs or imaxabs with argument ARG.  */
  
  static tree
  fold_builtin_abs (location_t loc, tree arg, tree type)
--- 9510,9517 ----
    return fold_build1_loc (loc, ABS_EXPR, type, arg);
  }
  
! /* Fold a call to abs, labs, llabs, imaxabs, uabs, ulabs, ullabs or uimaxabs
!    with argument ARG.  */
  
  static tree
  fold_builtin_abs (location_t loc, tree arg, tree type)
*************** fold_builtin_abs (location_t loc, tree a
*** 9391,9396 ****
--- 9519,9532 ----
    if (!validate_arg (arg, INTEGER_TYPE))
      return NULL_TREE;
  
+   if (TYPE_UNSIGNED (type))
+     {
+       if (TYPE_PRECISION (TREE_TYPE (arg))
+ 	  != TYPE_PRECISION (type)
+ 	  || TYPE_UNSIGNED (TREE_TYPE (arg)))
+ 	return NULL_TREE;
+       return fold_build1_loc (loc, ABSU_EXPR, type, arg);
+     }
    arg = fold_convert_loc (loc, type, arg);
    return fold_build1_loc (loc, ABS_EXPR, type, arg);
  }
*************** fold_builtin_frexp (location_t loc, tree
*** 9441,9454 ****
        switch (value->cl)
        {
        case rvc_zero:
  	/* For +-0, return (*exp = 0, +-0).  */
  	exp = integer_zero_node;
  	frac = arg0;
  	break;
-       case rvc_nan:
-       case rvc_inf:
- 	/* For +-NaN or +-Inf, *exp is unspecified, return arg0.  */
- 	return omit_one_operand_loc (loc, rettype, arg0, arg1);
        case rvc_normal:
  	{
  	  /* Since the frexp function always expects base 2, and in
--- 9577,9592 ----
        switch (value->cl)
        {
        case rvc_zero:
+       case rvc_nan:
+       case rvc_inf:
  	/* For +-0, return (*exp = 0, +-0).  */
+ 	/* For +-NaN or +-Inf, *exp is unspecified, but something should
+ 	   be stored there so that it isn't read from uninitialized object.
+ 	   As glibc and newlib store *exp = 0 for +-Inf/NaN, storing
+ 	   0 here as well is easiest.  */
  	exp = integer_zero_node;
  	frac = arg0;
  	break;
        case rvc_normal:
  	{
  	  /* Since the frexp function always expects base 2, and in
*************** fold_builtin_interclass_mathfn (location
*** 9576,9582 ****
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&r, buf);
  	result = build_call_expr (isgr_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
--- 9714,9720 ----
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&r, buf, mode);
  	result = build_call_expr (isgr_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
*************** fold_builtin_interclass_mathfn (location
*** 9600,9606 ****
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&r, buf);
  	result = build_call_expr (isle_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
--- 9738,9744 ----
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&r, buf, mode);
  	result = build_call_expr (isle_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
*************** fold_builtin_interclass_mathfn (location
*** 9639,9647 ****
  	arg = fold_build1_loc (loc, ABS_EXPR, type, arg);
  
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&rmax, buf);
! 	sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	real_from_string (&rmin, buf);
  	max_exp = build_real (type, rmax);
  	min_exp = build_real (type, rmin);
  
--- 9777,9788 ----
  	arg = fold_build1_loc (loc, ABS_EXPR, type, arg);
  
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&rmax, buf, mode);
! 	if (DECIMAL_FLOAT_MODE_P (mode))
! 	  sprintf (buf, "1E%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	else
! 	  sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	real_from_string3 (&rmin, buf, orig_mode);
  	max_exp = build_real (type, rmax);
  	min_exp = build_real (type, rmin);
  
*************** fold_builtin_fpclassify (location_t loc,
*** 9830,9857 ****
  	     (x == 0 ? FP_ZERO : FP_SUBNORMAL))).  */
  
    tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 		     build_real (type, dconst0));
    res = fold_build3_loc (loc, COND_EXPR, integer_type_node,
! 		     tmp, fp_zero, fp_subnormal);
  
!   sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   real_from_string (&r, buf);
    tmp = fold_build2_loc (loc, GE_EXPR, integer_type_node,
! 		     arg, build_real (type, r));
!   res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, fp_normal, res);
  
    if (tree_expr_maybe_infinite_p (arg))
      {
        tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			 build_real (type, dconstinf));
        res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			 fp_infinite, res);
      }
  
    if (tree_expr_maybe_nan_p (arg))
      {
        tmp = fold_build2_loc (loc, ORDERED_EXPR, integer_type_node, arg, arg);
!       res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, res, fp_nan);
      }
  
    return res;
--- 9971,10003 ----
  	     (x == 0 ? FP_ZERO : FP_SUBNORMAL))).  */
  
    tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			 build_real (type, dconst0));
    res = fold_build3_loc (loc, COND_EXPR, integer_type_node,
! 			 tmp, fp_zero, fp_subnormal);
  
!   if (DECIMAL_FLOAT_MODE_P (mode))
!     sprintf (buf, "1E%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   else
!     sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   real_from_string3 (&r, buf, mode);
    tmp = fold_build2_loc (loc, GE_EXPR, integer_type_node,
! 			 arg, build_real (type, r));
!   res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			 fp_normal, res);
  
    if (tree_expr_maybe_infinite_p (arg))
      {
        tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			     build_real (type, dconstinf));
        res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			     fp_infinite, res);
      }
  
    if (tree_expr_maybe_nan_p (arg))
      {
        tmp = fold_build2_loc (loc, ORDERED_EXPR, integer_type_node, arg, arg);
!       res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			     res, fp_nan);
      }
  
    return res;
*************** fold_builtin_iseqsig (location_t loc, tr
*** 9933,9941 ****
      /* Choose the wider of two real types.  */
      cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
        ? type0 : type1;
!   else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
      cmp_type = type0;
!   else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
      cmp_type = type1;
  
    arg0 = builtin_save_expr (fold_convert_loc (loc, cmp_type, arg0));
--- 10079,10089 ----
      /* Choose the wider of two real types.  */
      cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
        ? type0 : type1;
!   else if (code0 == REAL_TYPE
! 	   && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
      cmp_type = type0;
!   else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	   && code1 == REAL_TYPE)
      cmp_type = type1;
  
    arg0 = builtin_save_expr (fold_convert_loc (loc, cmp_type, arg0));
*************** fold_builtin_bit_query (location_t loc,
*** 10191,10197 ****
    tree call = NULL_TREE, tem;
    if (TYPE_PRECISION (arg0_type) == MAX_FIXED_MODE_SIZE
        && (TYPE_PRECISION (arg0_type)
! 	  == 2 * TYPE_PRECISION (long_long_unsigned_type_node)))
      {
        /* __int128 expansions using up to 2 long long builtins.  */
        arg0 = save_expr (arg0);
--- 10339,10347 ----
    tree call = NULL_TREE, tem;
    if (TYPE_PRECISION (arg0_type) == MAX_FIXED_MODE_SIZE
        && (TYPE_PRECISION (arg0_type)
! 	  == 2 * TYPE_PRECISION (long_long_unsigned_type_node))
!       /* If the target supports the optab, then don't do the expansion. */
!       && !direct_internal_fn_supported_p (ifn, arg0_type, OPTIMIZE_FOR_BOTH))
      {
        /* __int128 expansions using up to 2 long long builtins.  */
        arg0 = save_expr (arg0);
*************** fold_builtin_0 (location_t loc, tree fnd
*** 10451,10456 ****
--- 10601,10607 ----
      case BUILT_IN_INFD32:
      case BUILT_IN_INFD64:
      case BUILT_IN_INFD128:
+     case BUILT_IN_INFD64X:
        return fold_builtin_inf (loc, type, true);
  
      CASE_FLT_FN (BUILT_IN_HUGE_VAL):
*************** fold_builtin_1 (location_t loc, tree exp
*** 10513,10524 ****
--- 10664,10680 ----
      case BUILT_IN_FABSD32:
      case BUILT_IN_FABSD64:
      case BUILT_IN_FABSD128:
+     case BUILT_IN_FABSD64X:
        return fold_builtin_fabs (loc, arg0, type);
  
      case BUILT_IN_ABS:
      case BUILT_IN_LABS:
      case BUILT_IN_LLABS:
      case BUILT_IN_IMAXABS:
+     case BUILT_IN_UABS:
+     case BUILT_IN_ULABS:
+     case BUILT_IN_ULLABS:
+     case BUILT_IN_UIMAXABS:
        return fold_builtin_abs (loc, arg0, type);
  
      CASE_FLT_FN (BUILT_IN_CONJ):
*************** fold_builtin_2 (location_t loc, tree exp
*** 10644,10653 ****
        return fold_builtin_modf (loc, arg0, arg1, type);
  
      case BUILT_IN_STRSPN:
!       return fold_builtin_strspn (loc, expr, arg0, arg1);
  
      case BUILT_IN_STRCSPN:
!       return fold_builtin_strcspn (loc, expr, arg0, arg1);
  
      case BUILT_IN_STRPBRK:
        return fold_builtin_strpbrk (loc, expr, arg0, arg1, type);
--- 10800,10809 ----
        return fold_builtin_modf (loc, arg0, arg1, type);
  
      case BUILT_IN_STRSPN:
!       return fold_builtin_strspn (loc, expr, arg0, arg1, type);
  
      case BUILT_IN_STRCSPN:
!       return fold_builtin_strcspn (loc, expr, arg0, arg1, type);
  
      case BUILT_IN_STRPBRK:
        return fold_builtin_strpbrk (loc, expr, arg0, arg1, type);
*************** fold_builtin_strpbrk (location_t loc, tr
*** 11148,11154 ****
     form of the builtin function call.  */
  
  static tree
! fold_builtin_strspn (location_t loc, tree expr, tree s1, tree s2)
  {
    if (!validate_arg (s1, POINTER_TYPE)
        || !validate_arg (s2, POINTER_TYPE))
--- 11304,11310 ----
     form of the builtin function call.  */
  
  static tree
! fold_builtin_strspn (location_t loc, tree expr, tree s1, tree s2, tree type)
  {
    if (!validate_arg (s1, POINTER_TYPE)
        || !validate_arg (s2, POINTER_TYPE))
*************** fold_builtin_strspn (location_t loc, tre
*** 11164,11171 ****
    if ((p1 && *p1 == '\0') || (p2 && *p2 == '\0'))
      /* Evaluate and ignore both arguments in case either one has
         side-effects.  */
!     return omit_two_operands_loc (loc, size_type_node, size_zero_node,
! 				  s1, s2);
    return NULL_TREE;
  }
  
--- 11320,11326 ----
    if ((p1 && *p1 == '\0') || (p2 && *p2 == '\0'))
      /* Evaluate and ignore both arguments in case either one has
         side-effects.  */
!     return omit_two_operands_loc (loc, type, size_zero_node, s1, s2);
    return NULL_TREE;
  }
  
*************** fold_builtin_strspn (location_t loc, tre
*** 11188,11194 ****
     form of the builtin function call.  */
  
  static tree
! fold_builtin_strcspn (location_t loc, tree expr, tree s1, tree s2)
  {
    if (!validate_arg (s1, POINTER_TYPE)
        || !validate_arg (s2, POINTER_TYPE))
--- 11343,11349 ----
     form of the builtin function call.  */
  
  static tree
! fold_builtin_strcspn (location_t loc, tree expr, tree s1, tree s2, tree type)
  {
    if (!validate_arg (s1, POINTER_TYPE)
        || !validate_arg (s2, POINTER_TYPE))
*************** fold_builtin_strcspn (location_t loc, tr
*** 11204,11211 ****
      {
        /* Evaluate and ignore argument s2 in case it has
  	 side-effects.  */
!       return omit_one_operand_loc (loc, size_type_node,
! 				   size_zero_node, s2);
      }
  
    /* If the second argument is "", return __builtin_strlen(s1).  */
--- 11359,11365 ----
      {
        /* Evaluate and ignore argument s2 in case it has
  	 side-effects.  */
!       return omit_one_operand_loc (loc, type, size_zero_node, s2);
      }
  
    /* If the second argument is "", return __builtin_strlen(s1).  */
*************** fold_builtin_strcspn (location_t loc, tr
*** 11219,11225 ****
        if (!fn)
  	return NULL_TREE;
  
!       return build_call_expr_loc (loc, fn, 1, s1);
      }
    return NULL_TREE;
  }
--- 11373,11380 ----
        if (!fn)
  	return NULL_TREE;
  
!       return fold_convert_loc (loc, type,
! 			       build_call_expr_loc (loc, fn, 1, s1));
      }
    return NULL_TREE;
  }
*************** builtin_fnspec (tree callee)
*** 12584,12589 ****
--- 12739,12746 ----
  	 by its first argument.  */
        case BUILT_IN_POSIX_MEMALIGN:
  	return ".cOt";
+       case BUILT_IN_OMP_GET_MAPPED_PTR:
+ 	return ". R ";
  
        default:
  	return "";
diff -Nrcpad gcc-14.2.0/gcc/builtins.def gcc-15.1.0/gcc/builtins.def
*** gcc-14.2.0/gcc/builtins.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/builtins.def	Fri Apr 25 08:18:00 2025
***************
*** 1,6 ****
  /* This file contains the definitions and documentation for the
     builtins used in the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* This file contains the definitions and documentation for the
     builtins used in the GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 164,169 ****
--- 164,177 ----
  	       true, true, !flag_isoc23, ATTRS, \
  	       targetm.libc_has_function (function_c23_misc, NULL_TREE), true)
  
+ /* Like DEF_LIB_BUILTIN, except that the function is only a part of
+    the standard in C2Y or above.  */
+ #undef DEF_C2Y_BUILTIN
+ #define DEF_C2Y_BUILTIN(ENUM, NAME, TYPE, ATTRS)	\
+   DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,	\
+ 	       true, true, !flag_isoc2y, ATTRS, \
+ 	       targetm.libc_has_function (function_c2y_misc, NULL_TREE), true)
+ 
  /* Like DEF_C99_BUILTIN, but for complex math functions.  */
  #undef DEF_C99_COMPL_BUILTIN
  #define DEF_C99_COMPL_BUILTIN(ENUM, NAME, TYPE, ATTRS)	\
*************** along with GCC; see the file COPYING3.
*** 224,229 ****
--- 232,241 ----
  	       (flag_openacc \
  		|| flag_openmp \
  		|| flag_tree_parallelize_loops > 1))
+ #undef DEF_GOMP_BUILTIN_COMPILER
+ #define DEF_GOMP_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
+   DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
+                flag_openmp, true, true, ATTRS, false, flag_openmp)
  
  /* Builtin used by the implementation of GNU TM.  These
     functions are mapped to the actual implementation of the STM library. */
*************** along with GCC; see the file COPYING3.
*** 233,239 ****
  	       false, true, true, ATTRS, false, flag_tm)
  
  /* Builtin used by the implementation of libsanitizer. These
!    functions are mapped to the actual implementation of the 
     libtsan library. */
  #undef DEF_SANITIZER_BUILTIN
  #define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
--- 245,251 ----
  	       false, true, true, ATTRS, false, flag_tm)
  
  /* Builtin used by the implementation of libsanitizer. These
!    functions are mapped to the actual implementation of the
     libtsan library. */
  #undef DEF_SANITIZER_BUILTIN
  #define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
*************** DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN
*** 383,388 ****
--- 395,401 ----
  DEF_C23_BUILTIN        (BUILT_IN_FABSD32, "fabsd32", BT_FN_DFLOAT32_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C23_BUILTIN        (BUILT_IN_FABSD64, "fabsd64", BT_FN_DFLOAT64_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C23_BUILTIN        (BUILT_IN_FABSD128, "fabsd128", BT_FN_DFLOAT128_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C23_BUILTIN        (BUILT_IN_FABSD64X, "fabsd64x", BT_FN_DFLOAT64X_DFLOAT64X, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_FDIM, "fdim", BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIMF, "fdimf", BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIML, "fdiml", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
*************** DEF_GCC_FLOATN_NX_BUILTINS (BUILT_IN_INF
*** 473,478 ****
--- 486,492 ----
  DEF_GCC_BUILTIN	       (BUILT_IN_INFD32, "infd32", BT_FN_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_INFD64, "infd64", BT_FN_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_INFD128, "infd128", BT_FN_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_INFD64X, "infd64x", BT_FN_DFLOAT64X, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_IRINT, "irint", BT_FN_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_GCC_BUILTIN        (BUILT_IN_IRINTF, "irintf", BT_FN_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_GCC_BUILTIN        (BUILT_IN_IRINTL, "irintl", BT_FN_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
*************** DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN
*** 571,576 ****
--- 585,591 ----
  DEF_C23_BUILTIN        (BUILT_IN_NAND32, "nand32", BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_C23_BUILTIN        (BUILT_IN_NAND64, "nand64", BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_C23_BUILTIN        (BUILT_IN_NAND128, "nand128", BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
+ DEF_C23_BUILTIN        (BUILT_IN_NAND64X, "nand64x", BT_FN_DFLOAT64X_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANS, "nans", BT_FN_DOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSF, "nansf", BT_FN_FLOAT_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSL, "nansl", BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
*************** DEF_GCC_BUILTIN        (BUILT_IN_NANSF16
*** 580,585 ****
--- 595,601 ----
  DEF_GCC_BUILTIN        (BUILT_IN_NANSD32, "nansd32", BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSD64, "nansd64", BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSD128, "nansd128", BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
+ DEF_GCC_BUILTIN        (BUILT_IN_NANSD64X, "nansd64x", BT_FN_DFLOAT64X_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_C99_BUILTIN        (BUILT_IN_NEARBYINT, "nearbyint", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_NEARBYINTF, "nearbyintf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_NEARBYINTL, "nearbyintl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
*************** DEF_EXT_LIB_BUILTIN    (BUILT_IN_Y1L, "y
*** 704,710 ****
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YN, "yn", BT_FN_DOUBLE_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YNF, "ynf", BT_FN_FLOAT_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YNL, "ynl", BT_FN_LONGDOUBLE_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! 
  /* Category: _Complex math builtins.  */
  DEF_C99_COMPL_BUILTIN        (BUILT_IN_CABS, "cabs", BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING)
  DEF_C99_COMPL_BUILTIN        (BUILT_IN_CABSF, "cabsf", BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING)
--- 720,745 ----
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YN, "yn", BT_FN_DOUBLE_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YNF, "ynf", BT_FN_FLOAT_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_YNL, "ynl", BT_FN_LONGDOUBLE_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC8_DATA8, "crc8_data8", BT_FN_UINT8_UINT8_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC16_DATA8, "crc16_data8", BT_FN_UINT16_UINT16_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC16_DATA16, "crc16_data16", BT_FN_UINT16_UINT16_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC32_DATA8, "crc32_data8", BT_FN_UINT32_UINT32_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC32_DATA16, "crc32_data16", BT_FN_UINT32_UINT32_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC32_DATA32, "crc32_data32", BT_FN_UINT32_UINT32_UINT32_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC64_DATA8, "crc64_data8", BT_FN_UINT64_UINT64_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC64_DATA16, "crc64_data16", BT_FN_UINT64_UINT64_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC64_DATA32, "crc64_data32", BT_FN_UINT64_UINT64_UINT32_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_CRC64_DATA64, "crc64_data64", BT_FN_UINT64_UINT64_UINT64_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC8_DATA8, "rev_crc8_data8", BT_FN_UINT8_UINT8_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC16_DATA8, "rev_crc16_data8", BT_FN_UINT16_UINT16_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC16_DATA16, "rev_crc16_data16", BT_FN_UINT16_UINT16_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC32_DATA8, "rev_crc32_data8", BT_FN_UINT32_UINT32_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC32_DATA16, "rev_crc32_data16", BT_FN_UINT32_UINT32_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC32_DATA32, "rev_crc32_data32", BT_FN_UINT32_UINT32_UINT32_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC64_DATA8, "rev_crc64_data8", BT_FN_UINT64_UINT64_UINT8_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC64_DATA16, "rev_crc64_data16", BT_FN_UINT64_UINT64_UINT16_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC64_DATA32, "rev_crc64_data32", BT_FN_UINT64_UINT64_UINT32_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_GCC_BUILTIN	       (BUILT_IN_REV_CRC64_DATA64, "rev_crc64_data64", BT_FN_UINT64_UINT64_UINT64_CONST_SIZE, ATTR_CONST_NOTHROW_LEAF_LIST)
  /* Category: _Complex math builtins.  */
  DEF_C99_COMPL_BUILTIN        (BUILT_IN_CABS, "cabs", BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING)
  DEF_C99_COMPL_BUILTIN        (BUILT_IN_CABSF, "cabsf", BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING)
*************** DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN
*** 811,829 ****
  #undef CPROJ_TYPE
  
  /* Category: string/memory builtins.  */
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BCMP, "bcmp", BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BCOPY, "bcopy", BT_FN_VOID_CONST_PTR_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BZERO, "bzero", BT_FN_VOID_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_INDEX, "index", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_MEMCHR, "memchr", BT_FN_PTR_CONST_PTR_INT_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_MEMCMP, "memcmp", BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMCPY, "memcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMMOVE, "memmove", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY, "mempcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_RINDEX, "rindex", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY, "stpcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPNCPY, "stpncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCASECMP, "strcasecmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCAT, "strcat", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCHR, "strchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
--- 846,864 ----
  #undef CPROJ_TYPE
  
  /* Category: string/memory builtins.  */
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BCMP, "bcmp", BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BCOPY, "bcopy", BT_FN_VOID_CONST_PTR_PTR_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_BZERO, "bzero", BT_FN_VOID_PTR_SIZE, ATTR_NOTHROW_NONNULL_IF12_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_INDEX, "index", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_MEMCHR, "memchr", BT_FN_PTR_CONST_PTR_INT_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_MEMCMP, "memcmp", BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMCPY, "memcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMMOVE, "memmove", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY, "mempcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_LIB_BUILTIN	       (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, ATTR_NOTHROW_NONNULL_IF13_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_RINDEX, "rindex", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY, "stpcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPNCPY, "stpncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCASECMP, "strcasecmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCAT, "strcat", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCHR, "strchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
*************** DEF_LIB_BUILTIN        (BUILT_IN_STRCMP,
*** 831,843 ****
  DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_C23_BUILTIN        (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
! DEF_C23_BUILTIN        (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCMP, "strncmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCPY, "strncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNLEN, "strnlen", BT_FN_SIZE_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRPBRK, "strpbrk", BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRRCHR, "strrchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRSPN, "strspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
--- 866,878 ----
  DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_C23_BUILTIN        (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
! DEF_C23_BUILTIN        (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_1_IF23_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCMP, "strncmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF)
! DEF_LIB_BUILTIN        (BUILT_IN_STRNCPY, "strncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNLEN, "strnlen", BT_FN_SIZE_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRPBRK, "strpbrk", BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRRCHR, "strrchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRSPN, "strspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
*************** DEF_GCC_BUILTIN        (BUILT_IN_SETJMP,
*** 1065,1070 ****
--- 1100,1109 ----
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRFMON, "strfmon", BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, ATTR_FORMAT_STRFMON_NOTHROW_3_4)
  DEF_LIB_BUILTIN        (BUILT_IN_STRFTIME, "strftime", BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR, ATTR_FORMAT_STRFTIME_NOTHROW_3_0)
  DEF_GCC_BUILTIN        (BUILT_IN_TRAP, "trap", BT_FN_VOID, ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST)
+ DEF_C2Y_BUILTIN        (BUILT_IN_UABS, "uabs", BT_FN_UINT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C2Y_BUILTIN        (BUILT_IN_UIMAXABS, "uimaxabs", BT_FN_UINTMAX_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C2Y_BUILTIN        (BUILT_IN_ULABS, "ulabs", BT_FN_ULONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C2Y_BUILTIN        (BUILT_IN_ULLABS, "ullabs", BT_FN_ULONGLONG_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UNREACHABLE_TRAP, "unreachable trap", BT_FN_VOID, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UNREACHABLE, "unreachable", BT_FN_VOID, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UNWIND_INIT, "unwind_init", BT_FN_VOID, ATTR_NULL)
*************** DEF_BUILTIN_STUB (BUILT_IN_ALLOCA_WITH_A
*** 1101,1107 ****
     equality with zero.  */
  DEF_BUILTIN_STUB (BUILT_IN_MEMCMP_EQ, "__builtin_memcmp_eq")
  
! /* An internal version of strcmp/strncmp, used when the result is only 
     tested for equality with zero.  */
  DEF_BUILTIN_STUB (BUILT_IN_STRCMP_EQ, "__builtin_strcmp_eq")
  DEF_BUILTIN_STUB (BUILT_IN_STRNCMP_EQ, "__builtin_strncmp_eq")
--- 1140,1146 ----
     equality with zero.  */
  DEF_BUILTIN_STUB (BUILT_IN_MEMCMP_EQ, "__builtin_memcmp_eq")
  
! /* An internal version of strcmp/strncmp, used when the result is only
     tested for equality with zero.  */
  DEF_BUILTIN_STUB (BUILT_IN_STRCMP_EQ, "__builtin_strcmp_eq")
  DEF_BUILTIN_STUB (BUILT_IN_STRNCMP_EQ, "__builtin_strncmp_eq")
*************** DEF_BUILTIN_STUB (BUILT_IN_STRNCMP_EQ, "
*** 1109,1124 ****
  /* Object size checking builtins.  */
  DEF_GCC_BUILTIN	       (BUILT_IN_OBJECT_SIZE, "object_size", BT_FN_SIZE_CONST_PTR_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN	       (BUILT_IN_DYNAMIC_OBJECT_SIZE, "dynamic_object_size", BT_FN_SIZE_CONST_PTR_INT, ATTR_PURE_NOTHROW_LEAF_LIST)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMCPY_CHK, "__memcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMMOVE_CHK, "__memmove_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY_CHK, "__mempcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMSET_CHK, "__memset_chk", BT_FN_PTR_PTR_INT_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY_CHK, "__stpcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPNCPY_CHK, "__stpncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCAT_CHK, "__strcat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCPY_CHK, "__strcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCAT_CHK, "__strncat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCPY_CHK, "__strncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_SNPRINTF_CHK, "__snprintf_chk", BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_NOTHROW_5_6)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_SPRINTF_CHK, "__sprintf_chk", BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_4_5)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_VSNPRINTF_CHK, "__vsnprintf_chk", BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_NOTHROW_5_0)
--- 1148,1163 ----
  /* Object size checking builtins.  */
  DEF_GCC_BUILTIN	       (BUILT_IN_OBJECT_SIZE, "object_size", BT_FN_SIZE_CONST_PTR_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN	       (BUILT_IN_DYNAMIC_OBJECT_SIZE, "dynamic_object_size", BT_FN_SIZE_CONST_PTR_INT, ATTR_PURE_NOTHROW_LEAF_LIST)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMCPY_CHK, "__memcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMMOVE_CHK, "__memmove_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY_CHK, "__mempcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMSET_CHK, "__memset_chk", BT_FN_PTR_PTR_INT_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF13_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY_CHK, "__stpcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPNCPY_CHK, "__stpncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCAT_CHK, "__strcat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCPY_CHK, "__strcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCAT_CHK, "__strncat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_1_IF23_LEAF)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCPY_CHK, "__strncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_IF123_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_SNPRINTF_CHK, "__snprintf_chk", BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_NOTHROW_5_6)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_SPRINTF_CHK, "__sprintf_chk", BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_4_5)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_VSNPRINTF_CHK, "__vsnprintf_chk", BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_NOTHROW_5_0)
diff -Nrcpad gcc-14.2.0/gcc/builtins.h gcc-15.1.0/gcc/builtins.h
*** gcc-14.2.0/gcc/builtins.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/builtins.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void expand_builtin_trap (void);
*** 133,138 ****
--- 133,141 ----
  extern void expand_ifn_atomic_bit_test_and (gcall *);
  extern void expand_ifn_atomic_compare_exchange (gcall *);
  extern void expand_ifn_atomic_op_fetch_cmp_0 (gcall *);
+ extern rtx expand_builtin_crc_table_based (internal_fn, scalar_mode,
+ 					   scalar_mode, machine_mode,
+ 					   tree, rtx);
  extern rtx expand_builtin (tree, rtx, rtx, machine_mode, int);
  extern enum built_in_function builtin_mathfn_code (const_tree);
  extern tree fold_builtin_expect (location_t, tree, tree, tree, tree);
diff -Nrcpad gcc-14.2.0/gcc/c/ChangeLog gcc-15.1.0/gcc/c/ChangeLog
*** gcc-14.2.0/gcc/c/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/gcc/c/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,12 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
! 2024-07-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-25  Jakub Jelinek  <jakub@redhat.com>
! 		    Martin Uecker  <uecker@tugraz.at>
  
  	PR c/114930
  	PR c/115502
--- 1,1120 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
! 2025-04-15  Qing Zhao  <qing.zhao@oracle.com>
  
! 	PR c/119717
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Fully fold the
! 	parameters for call to .ACCESS_WITH_SIZE.
! 
! 2025-04-08  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/119612
! 	* c-tree.h (c_type_tag): Add prototype.
! 	* c-typeck.cc (c_type_tag): New function.
! 	(tagged_types_tu_compatible_p, composite_type_internal): Use
! 	c_type_tag.
! 	* c-decl.cc (c_struct_hasher::hash, previous_tag): Use c_type_tag.
! 
! 2025-04-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/119582
! 	* c-typeck.cc (pointer_diff, build_binary_op): Call c_fully_fold on
! 	__sanitizer_ptr_sub or __sanitizer_ptr_cmp arguments.
! 
! 2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR middle-end/118965
! 	* c-parser.cc (c_parser_omp_clause_init_modifiers): Adjust
! 	error message.
! 	(c_parser_omp_clause_init): Remove code for recognizing clauses
! 	without modifiers.  Diagnose missing target/targetsync modifier.
! 	(c_finish_omp_declare_variant): Diagnose missing target/targetsync
! 	modifier.
! 
! 2025-03-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* Make-lang.in (c.srcextra): Don't depend on anything and don't copy
! 	anything.
! 
! 2025-03-27  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/118765
! 	* c-decl.cc (merge_decls): For TYPE_DECLS copy
! 	DECL_ORIGINAL_TYPE from the old declaration.
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Add
! 	checking assertions.
! 
! 2025-03-21  Paul-Antoine Arras  <parras@baylibre.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_destroy): Make addressable.
! 	(c_parser_omp_clause_init): Make addressable.
! 
! 2025-03-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/119350
! 	* c-typeck.cc (pop_init_level): Don't ignore empty brackets for
! 	flag_isoc23, still set constructor_type to NULL in that case but
! 	emit a pedwarn_init in that case.
! 
! 2025-03-19  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/118765
! 	* c-decl.cc (finish_struct,finish_enum): Swap direction when
! 	copying TYPE_STRUB_DECL in redefinitions.
! 
! 2025-03-19  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/118061
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Handle
! 	errors in types of struct members.
! 
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/119311
! 	* c-parser.cc (c_parser_if_body): Pass result of c_parser_all_labels
! 	as last argument to c_parser_statement_after_labels.
! 	(c_parser_else_body): Likewise.
! 
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/116545
! 	* c-parser.cc (c_parser_declaration_or_fndef): Parse
! 	__attribute__((musttail)) return.
! 	(c_parser_handle_musttail): Diagnose attribute arguments.
! 	(c_parser_statement_after_labels): Parse
! 	__attribute__((musttail)) return.
! 
! 2025-03-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117178
! 	* c-typeck.cc (output_init_element): Pass field to digest_init
! 	only for record/union types, otherwise pass constructor_fields
! 	if non-NULL and constructor_decl if constructor_fields is NULL.
! 
! 2025-03-11  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR c/118579
! 	* c-parser.cc (c_parser_omp_variable_list): Capture location
! 	information when KIND is OMP_CLAUSE_ERROR.
! 	(c_parser_oacc_data_clause_deviceptr): Use the improved location
! 	for diagnostics, and remove the FIXME.
! 	(c_finish_omp_declare_variant): Likewise.
! 	(c_parser_omp_threadprivate): Likewise.
! 
! 2025-03-07  Kees Cook  <kees@kernel.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117178
! 	* c-typeck.cc (digest_init): Add DECL argument.  Adjust wording of
! 	pedwarn_init for too long strings and provide details on the lengths,
! 	for string literals where just the trailing NULL doesn't fit warn for
! 	warn_cxx_compat with OPT_Wc___compat, wording which mentions "for C++"
! 	and provides details on lengths, otherwise for
! 	warn_unterminated_string_initialization adjust the warning, provide
! 	details on lengths and don't warn if get_attr_nonstring_decl (decl).
! 	(build_c_cast, store_init_value, output_init_element): Adjust
! 	digest_init callers.
! 
! 2025-03-07  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c/60440
! 	* c-typeck.cc (c_finish_return): Mark the current function
! 	for supression of the -Wreturn-type if there was an error
! 	on the return statement.
! 
! 2025-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/119001
! 	* c-typeck.cc (pop_init_level): Don't clear constructor_type
! 	if DECL_CHAIN of constructor_fields is NULL but p->type is UNION_TYPE.
! 	Formatting fix.
! 	(process_init_element): Diagnose non-static initialization of flexible
! 	array member in union or FAM in union initialization in nested context.
! 
! 2025-02-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/119000
! 	* c-parser.cc (c_parser_omp_atomic): For omp write call
! 	default_function_array_read_conversion on the rhs expression.
! 	Merge the two adjacent if (code == NOP_EXPR) blocks.
! 
! 2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-parser.cc (c_finish_omp_declare_variant): Update call to
! 	omp_check_context_selector.
! 	(c_parser_omp_metadirective): Likewise.
! 
! 2025-02-07  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/86769
! 	* c-parser.cc (c_parser_while_statement): Add 2 further NULL_TREE
! 	operands to build_stmt.
! 	(c_parser_for_statement): Likewise.
! 
! 2025-02-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/118742
! 	* gimple-parser.cc (gimple_parser_build_unary_op): New
! 	wrapper around build_unary_op.
! 	(c_parser_gimple_unary_expression): Use it.
! 
! 2025-01-30  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_finish_omp_declare_variant): Modify how
! 	append_args is saved internally.
! 
! 2025-01-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/116357
! 	* c-decl.cc (grokdeclarator): Use c_build_qualified_type with
! 	TYPE_UNQUALIFIED instead of TYPE_MAIN_VARIANT.
! 
! 2025-01-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/118639
! 	* c-parser.cc (c_parser_omp_variable_list): Remove first variable
! 	and emit "expected identifier" error regardless of it.
! 
! 2025-01-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/118604
! 	* c-parser.cc (c_parser_omp_metadirective): Rewrite
! 	condition for clauses other than when, default and otherwise.
! 
! 2025-01-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (names_builtin_p): Return 1 for RID_C23_VA_START and
! 	RID_VA_ARG.
! 
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_assumption_clauses): Give a more specific
! 	error message for invalid directives vs unknown names.
! 
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-decl.cc (c_decl_attributes): Don't add "omp declare target
! 	block".
! 
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR middle-end/112779
! 	PR middle-end/113904
! 	* c-parser.cc (struct c_parser): Add omp_metadirective_state field.
! 	(c_parser_skip_to_end_of_block_or_statement): Add metadirective_p
! 	parameter and handle skipping over the parentheses in a "for"
! 	statement.
! 	(struct omp_metadirective_parse_data): New.
! 	(mangle_metadirective_region_label): New.
! 	(c_parser_label): Mangle label names in a metadirective body.
! 	(c_parser_statement_after_labels): Likewise.
! 	(c_parser_pragma): Handle PRAGMA_OMP_METADIRECTIVE.
! 	(c_parser_omp_context_selector): Allow arbitrary expressions in
! 	device_num and condition properties.
! 	(c_parser_omp_assumption_clauses): Handle C_OMP_DIR_META.
! 	(analyze_metadirective_body): New.
! 	(c_parser_omp_metadirective): New.
! 
! 2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
! 	    Marcel Vollweiler  <marcel@codesourcery.com>
! 
! 	PR middle-end/114596
! 	PR middle-end/112779
! 	PR middle-end/113904
! 	* c-parser.cc (c_finish_omp_declare_variant): Update for changes
! 	to omp-general.h interfaces.
! 
! 2025-01-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/116871
! 	* c-typeck.cc (pedwarn_permerror_init): Return bool for whether a
! 	warning was emitted.  Only call print_spelling if we warned.
! 	(pedwarn_init): Return bool for whether a warning was emitted.
! 	(permerror_init): Likewise.
! 	(warning_init): Return bool for whether a
! 	warning was emitted.  Only call print_spelling if we warned.
! 	(class pp_element_quoted_decl): New.
! 	(maybe_inform_typedef_location): New.
! 	(convert_for_assignment): For OPT_Wincompatible_pointer_types,
! 	move auto_diagnostic_group to cover all cases.  Use %e and
! 	pp_element rather than %qT and tree to colorize the types.
! 	Capture whether a warning was emitted, and, if it was,
! 	show various notes: for a pointer to a function, show the
! 	function decl, for typedef types, and show the decls.
! 
! 2025-01-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/118112
! 	* c-typeck.cc (inform_declaration): Add "function_expr" param and
! 	use it for cases where we couldn't show the function decl to show
! 	field decls for callbacks.
! 	(build_function_call_vec): Add missing auto_diagnostic_group.
! 	Update for new param of inform_declaration.
! 	(convert_arguments): Likewise.  For the "too many arguments" case
! 	add the expected vs actual counts to the message, and if we have
! 	it, add the location_t of the first surplus param as a secondary
! 	location within the diagnostic.  For the "too few arguments" case,
! 	determine the minimum number of arguments required and add the
! 	expected vs actual counts to the message, tweaking it to "at least"
! 	for variadic functions.
! 
! 2025-01-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/118376
! 	* c-parser.cc (c_parser_postfix_expression): Call
! 	set_c_expr_source_range before break in the __builtin_stdc_rotate_*
! 	case.
! 
! 2025-01-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117866
! 	* c-decl.cc (get_parm_info): Change condition for warning.
! 
! 2025-01-09  Jason Merrill  <jason@redhat.com>
! 	    Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	PR c/116060
! 	* c-typeck.cc (convert_for_assignment): Make sure left hand side and
! 	right hand side has identical named types to aid diagnostic output.
! 
! 2025-01-03  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-parser.cc (struct c_parser): Change in_omp_attribute_pragma
! 	field to be of type struct omp_attribute_pragma_state.
! 	(struct omp_attribute_pragma_state): New.
! 	(c_parser_skip_until_found): Use the new way to restore state
! 	on EOF.
! 	(c_parser_skip_to_pragma_eol): Likewise.
! 	(c_parser_handle_statement_omp_attributes): Create an
! 	omp_attribute_pragma_state to hold the restore state.  Do not
! 	store state in tok.flags.
! 	(omp_maybe_parse_omp_decl): Likewise.
! 
! 2025-01-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/117629
! 	* c-decl.cc (declspecs_add_type): Special-case attempts to use
! 	bool as a typedef name or declaration name.
! 	* c-errors.cc (get_std_for_keyword): New.
! 	(add_note_about_new_keyword): New.
! 	* c-parser.cc (report_bad_enum_name): New, split out from...
! 	(c_parser_enum_specifier): ...here, adding handling for RID_FALSE
! 	and RID_TRUE.
! 	* c-tree.h (add_note_about_new_keyword): New decl.
! 
! 2024-12-18  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_init_modifiers): New;
! 	split of from ...
! 	(c_parser_omp_clause_init): ... here; call it.
! 	(c_finish_omp_declare_variant): Parse 'append_args' clause.
! 	(c_parser_omp_clause_interop): Set tree used/read.
! 
! 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/41045
! 	* c-typeck.cc (build_asm_expr): Reject - constraint modifier inside
! 	of a function.
! 
! 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-typeck.cc (build_asm_expr): Diagnose invalid ":" constraint
! 	uses.
! 
! 2024-12-12  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (OMP_DISPATCH_CLAUSE_MASK): Add has_device_addr clause.
! 	(c_finish_omp_declare_variant): Add an 'inform' telling the user that
! 	'need_device_addr' is invalid for C.
! 
! 2024-12-09  Heiko Eißfeldt  <heiko@hexco.de>
! 
! 	PR c/114541
! 	* gimple-parser.cc (c_parser_gimple_parse_bb_spec):
! 	Use strtoul with ERANGE check instead of atoi to avoid UB
! 	and detect invalid __BB#.
! 
! 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-decl.cc: Include "gcc-urlifier.h".
! 	(start_decl): Use auto_urlify_attributes with OPT_Wattributes.
! 	(start_function): Likewise.
! 	* c-parser.cc: Include "gcc-urlifier.h".
! 	(c_parser_statement_after_labels): Use auto_urlify_attributes with
! 	OPT_Wattributes.
! 	* c-typeck.cc: Include "gcc-urlifier.h".
! 	(maybe_warn_nodiscard): Use auto_urlify_attributes with
! 	OPT_Wunused_result.
! 
! 2024-12-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_get_builtin_args, c_parser_expression,
! 	c_parser_expr_list): Use RAW_DATA_UCHAR_ELT macro.
! 	* c-typeck.cc (digest_init): Use RAW_DATA_UCHAR_ELT and
! 	RAW_DATA_SCHAR_ELT macros.
! 	(add_pending_init, maybe_split_raw_data): Use RAW_DATA_UCHAR_ELT
! 	macro.
! 
! 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/107980
! 	* c-parser.cc (c_parser_postfix_expression): Handle RID_C23_VA_START.
! 
! 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/41045
! 	* c-parser.cc (c_parser_asm_string_literal): Add forward declaration.
! 	(c_parser_asm_definition): Parse also extended asm without
! 	clobbers/labels.
! 	* c-typeck.cc (build_asm_expr): Allow extended asm outside of
! 	functions and check extra restrictions.
! 
! 2024-12-03  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_allocate): Only check scope if
! 	not in_omp_decl_attribute. Remove setting the alignment.
! 
! 2024-11-30  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117806
! 	* c-typeck.cc (composite_type_internal): Call decl_attributes.
! 
! 2024-11-30  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c/117749
! 	* gimple-parser.cc (c_parser_gimple_declaration): Check
! 	declarator to be non-null.
! 
! 2024-11-29  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117828
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Add check.
! 
! 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
! 
! 	* c-typeck.cc (process_init_element): Add check to restrict
! 	constructor length to the minimum vector length allowed.
! 
! 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/116416
! 	* c-parser.cc (c_parser_braced_init): Set CONSTRUCTOR_ZERO_PADDING_BITS
! 	for flag_isoc23 empty initializers.
! 	* c-typeck.cc (constructor_zero_padding_bits): New variable.
! 	(struct constructor_stack): Add zero_padding_bits member.
! 	(really_start_incremental_init): Save and clear
! 	constructor_zero_padding_bits.
! 	(push_init_level): Save constructor_zero_padding_bits.  Or into it
! 	CONSTRUCTOR_ZERO_PADDING_BITS from previous value if implicit.
! 	(pop_init_level): Set CONSTRUCTOR_ZERO_PADDING_BITS if
! 	constructor_zero_padding_bits and restore
! 	constructor_zero_padding_bits.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/82892
! 	* c-decl.cc (lookup_name_fuzzy): Provide hints for missing
! 	command-line options.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c++/87850
! 	* c-typeck.cc (compatible_types_for_indirection_note_p): New
! 	function.
! 	(convert_for_assignment): Call maybe_emit_indirection_note for
! 	pointer vs non-pointer diagnostics.
! 
! 2024-11-27  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/91193
! 	* c-parser.cc (c_parser_maybe_reclassify_token): Define earlier.
! 	(c_parser_declaration_or_fndef): Call
! 	c_parser_maybe_reclassify_token before parsing old-style parameter
! 	definitions.
! 
! 2024-11-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117745
! 	* c-parser.cc (c_parser_sizeof_expression): If type_name is NULL,
! 	just expr.set_error () and goto sizeof_expr instead of doing error
! 	recovery manually.
! 
! 2024-11-27  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/117781
! 	* c-parser.cc (c_parser_typeof_specifier): Do not remove _Atomic
! 	from array element type for typeof_unqual.
! 
! 2024-11-27  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-parser.cc (c_parser_compound_statement_nostart): Use
! 	OPT_Wfree_labels for warning about labels on declarations.
! 	(c_parser_compound_statement_nostart): Use OPT_Wfree_labels
! 	for warning about labels at end of compound statements.
! 
! 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/94370
! 	* c-typeck.cc (c_build_functype_attribute_variant): Reword
! 	warning message to avoid double-negative.
! 
! 2024-11-26  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/98195
! 	PR c/117755
! 	* c-typeck.cc (build_atomic_assign): Always create a TARGET_EXPR
! 	for newval even in case of error from binary operation.
! 	(build_modify_expr): Check early for incomplete type of rhs.
! 
! 2024-11-24  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c/117741
! 	* gimple-parser.cc (c_parser_gimple_compound_statement): Handle
! 	CPP_CLOSE_PAREN/CPP_CLOSE_SQUARE with an error and skipping the token.
! 
! 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR bootstrap/117737
! 	* c-aux-info.cc (INCLUDE_MEMORY): Remove.
! 	* c-convert.cc (INCLUDE_MEMORY): Remove.
! 	* c-decl.cc (INCLUDE_MEMORY): Remove.
! 	* c-errors.cc (INCLUDE_MEMORY): Remove.
! 	* c-fold.cc (INCLUDE_MEMORY): Remove.
! 	* c-lang.cc (INCLUDE_MEMORY): Remove.
! 	* c-objc-common.cc (INCLUDE_MEMORY): Remove.
! 	* c-parser.cc (INCLUDE_MEMORY): Remove.
! 	* c-typeck.cc (INCLUDE_MEMORY): Remove.
! 	* gimple-parser.cc (INCLUDE_MEMORY): Remove.
! 
! 2024-11-22  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/112841
! 	* c-parser.cc (c_parser_typeof_specifier): Call strip_array_types
! 	when checking for type qualifiers for typeof_unqual.
! 
! 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_interop): New.
! 	(c_parser_omp_clause_name, c_parser_omp_all_clauses,
! 	c_parser_omp_dispatch_body): Handle 'interop' clause.
! 	* c-typeck.cc (c_finish_omp_clauses): Likewise.
! 
! 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (INCLUDE_STRING): Define.
! 	(c_parser_pragma): Handle 'interop' directive.
! 	(c_parser_omp_clause_name): Handle init, use, and destroy clauses.
! 	(c_parser_omp_all_clauses): Likewise; use C_ORT_OMP_INTEROP, if
! 	'use' is permitted, for c_finish_omp_clauses.
! 	(c_parser_omp_clause_destroy, c_parser_omp_modifier_prefer_type,
! 	c_parser_omp_clause_init, c_parser_omp_clause_use,
! 	OMP_INTEROP_CLAUSE_MASK, c_parser_omp_interop): New.
! 	* c-typeck.cc (c_finish_omp_clauses): Add missing OPT_Wopenmp to
! 	a warning; handle new clauses.
! 
! 2024-11-21  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/114816
! 	* c-decl.cc (grokparms): Do not warn for void parameter type here.
! 	(get_parm_info): Give errors for void parameters even when named.
! 
! 2024-11-20  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/114266
! 	* c-decl.cc (build_compound_literal): Diagnose array of unknown
! 	size with empty initializer for C23.
! 
! 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_dispatch): New function.
! 	(c_parser_omp_clause_name): Handle nocontext and novariants clauses.
! 	(c_parser_omp_clause_novariants): New function.
! 	(c_parser_omp_clause_nocontext): Likewise.
! 	(c_parser_omp_all_clauses): Handle nocontext and novariants clauses.
! 	(c_parser_omp_dispatch_body): New function adapted from
! 	c_parser_expr_no_commas.
! 	(OMP_DISPATCH_CLAUSE_MASK): Define.
! 	(c_parser_omp_dispatch): New function.
! 	(c_finish_omp_declare_variant): Parse adjust_args.
! 	(c_parser_omp_construct): Handle PRAGMA_OMP_DISPATCH.
! 	* c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_NOVARIANTS and
! 	OMP_CLAUSE_NOCONTEXT.
! 
! 2024-11-20  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/115515
! 	* c-typeck.cc (check_constexpr_init): Do not call int_fits_type_p
! 	for arguments that are not integer constant expressions.
! 
! 2024-11-19  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/114869
! 	* c-decl.cc (c_init_decl_processing): Register nullptr_type_node
! 	as typeof (nullptr) not nullptr_t.
! 
! 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117456
! 	* c-parser.cc (c_parser_postfix_expression): Use LROTATE_EXPR
! 	or RROTATE_EXPR only if type_has_mode_precision_p or if arg1
! 	has BITINT_TYPE with precision larger than MAX_FIXED_MODE_SIZE.
! 	Otherwise build BIT_IOR_EXPR of LSHIFT_EXPR and RSHIFT_EXPR
! 	and wrap it into a COND_EXPR depending on if arg2 is 0 or not.
! 	* c-fold.cc (c_fully_fold_internal): Check for suppression of
! 	-Wshift-count-overflow warning.
! 
! 2024-11-19  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117490
! 	* c-typeck.cc (tagged_types_tu_compatible): Form equivalence
! 	classed for tagless types in C23.
! 
! 2024-11-18  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/112556
! 	* c-typeck.cc (convert_for_assignment): Allow conversion of
! 	ENUMERAL_TYPE and BOOLEAN_TYPE null pointer constants to pointers.
! 
! 2024-11-17  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/95445
! 	* c-decl.cc (start_function): Warn about parameters
! 	after parameter-less declaration.
! 	* c-typeck.cc (build_function_call_vec): Pass fntype
! 	to convert_arguments.
! 	(convert_arguments): Change argument to fntype and
! 	compute typelist.  Warn about parameter list mismatches
! 	on first parameter.
! 
! 2024-11-16  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117548
! 	* c-decl.cc (finish_struct): Add checking assertion.
! 	* c-typeck.cc (c_type_original): New function.
! 	(composite_types_internal): Get tag from original type.
! 
! 2024-11-15  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-decl.cc (store_parm_decls_newstyle): Use
! 	OPT_Wmissing_parameter_name for missing parameter name
! 	warning.
! 	* c-errors.cc (pedwarn_c11): Enable fine-grained warning
! 	control via the option_id argument.
! 
! 2024-11-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-tree.h (enum c_typespec_keyword): Add cts_dfloat64x and adjust
! 	comment.
! 	* c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
! 	c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
! 	RID_DFLOAT64X.
! 	(c_parser_postfix_expression): Handle _Decimal64x arguments in
! 	__builtin_tgmath.
! 	(warn_for_abs): Handle BUILT_IN_FABSD64X.
! 	* c-decl.cc (declspecs_add_type): Handle cts_dfloat64x and
! 	RID_DFLOAT64X.
! 	(finish_declspecs): Handle cts_dfloat64x.
! 	* c-typeck.cc (c_common_type): Handle dfloat64x_type_node.
! 
! 2024-11-13  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117059
! 	* c-typeck.cc (parse_build_binary_op): Add warning.
! 	(build_conditional_expr): Add warning.
! 	(convert_for_assignment): Add warning.
! 
! 2024-11-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (names_builtin_p): Change return type from
! 	bool to int, adjust return statments.
! 
! 2024-11-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/116284
! 	PR c/117391
! 	* c-tree.h (c_type_unspecified_p): New inline function.
! 	* c-typeck.cc (c_build_array_type_unspecified): New function.
! 	(comptypes_interal): Remove useless code.
! 	(composite_type_internal): Update.
! 	* c-decl.cc (grokdeclarator): Revise.
! 
! 2024-11-08  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c/117019
! 	* c-parser.cc (c_parser_declaration_or_fndef): Adjust declaration.
! 	(c_parser_external_declaration): Adjust a call to
! 	c_parser_declaration_or_fndef.
! 	(c_parser_declaration_or_fndef): New bool parameter.  Return a tree
! 	instead of void.  Adjust for N3356.  Adjust a call to
! 	c_parser_declaration_or_fndef.
! 	(c_parser_compound_statement_nostart): Adjust calls to
! 	c_parser_declaration_or_fndef.
! 	(c_parser_selection_header): New.
! 	(c_parser_paren_selection_header): New.
! 	(c_parser_if_statement): Call c_parser_paren_selection_header
! 	instead of c_parser_paren_condition.
! 	(c_parser_switch_statement): Call c_parser_selection_header instead of
! 	c_parser_expression.
! 	(c_parser_for_statement): Adjust calls to c_parser_declaration_or_fndef.
! 	(c_parser_objc_methodprotolist): Likewise.
! 	(c_parser_oacc_routine): Likewise.
! 	(c_parser_omp_loop_nest): Likewise.
! 	(c_parser_omp_declare_simd): Likewise.
! 
! 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c/117445
! 	* gimple-parser.cc (c_parser_gimple_statement): Remove
! 	support for comparisons before the querry (`?`) token.
! 
! 2024-11-01  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR bootstrap/117361
! 	* Make-lang.in (s-selftest-c): Use GCC_FOR_SELFTESTS.
! 	(selftest-c-gdb): Likewise.
! 	(selftest-c-valgrind): Likewise.
! 
! 2024-10-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117145
! 	PR c/117245
! 	PR c/100420
! 	* c-decl.cc (c_build_pointer_type): Move to c-typeck.cc
! 	(grokdeclarator): Simplify logic.
! 	(match_builtin_function_types): Adapt.
! 	(push_decl): Adapt.
! 	(implicitly_declare): Adapt.
! 	(c_update_type_canonical): Adapt.
! 	(c_make_fname_decl): Adapt.
! 	(start_function): Adapt.
! 	* c-objc-common.h: Add LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE.
! 	* c-tree.h: Add prototypes.
! 	* c-typeck.cc (c_verify_type): New function.
! 	(c_set_type_bits). New function.
! 	(c_build_pointer_type): Moved from c-decl.cc.
! 	(c_build_pointer_type_for_mode): New function.
! 	(c_build_function_type): New function.
! 	(c_build_array_type): New function.
! 	(c_build_type_attribute_variant): New function.
! 	(c_reconstruct_complex_type): New function.
! 	(c_build_functype_attribute_variant): Renamed.
! 	(array_to_pointer_conversion): Simplify logic.
! 	(composite_type_internal): Simplify logic..
! 	(build_unary_op): Simplify logic..
! 	(comptypes_verify): Add checking assertions.
! 	(c_build_qualified_type): Add checking assertions.
! 	(c_build_function_call_vec): Adapt.
! 	(qualify_type): Adapt.
! 	(build_functype_attribute_variant): Adapt.
! 	(common_pointer_type): Adapt.
! 	(c_common_type): Adapt.
! 	(convert_for_assignment): Adapt.
! 	(type_or_builtin_type): Adapt.
! 	(build_access_with_size_for_counted_by): Adapt.
! 	(build_conditional_expr): Adapt.
! 	(build_modify_expr): Adapt.
! 	(build_binary_op): Adapt.
! 	(build_omp_array_section): Adapt.
! 	(handle_omp_array_sections): Adapt.
! 	(c_finish_omp_clauses): Adapt.
! 	* c-parser.cc (c_parser_typeof_specifier): Adapt.
! 	(c_parser_generic_selection): Adapt.
! 
! 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_postfix_expression): Diagnose if
! 	first __builtin_stdc_* argument has char type even when
! 	-funsigned-char.
! 
! 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-objc-common.cc: Include "make-unique.h".
! 	(c_initialize_diagnostics): Use unique_ptr for pretty_printer.
! 	Use context->set_format_decoder.
! 
! 2024-10-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117030
! 	* c-parser.cc: Include asan.h and c-family/c-ubsan.h.
! 	(c_parser_postfix_expression): Handle __builtin_stdc_rotate_left
! 	and __builtin_stdc_rotate_right.
! 	* c-fold.cc (c_fully_fold_internal): Handle LROTATE_EXPR and
! 	RROTATE_EXPR.
! 
! 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-typeck.cc: Remove trailing whitespace.
! 	* gimple-parser.cc: Likewise.
! 	* c-parser.cc: Likewise.
! 	* c-decl.cc: Likewise.
! 
! 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
! 	    Gaius Mulley  <gaiusmod2@gmail.com>
! 
! 	PR other/116613
! 	* c-aux-info.cc: Add #define INCLUDE_MEMORY.
! 	* c-convert.cc: Likewise.
! 	* c-errors.cc: Likewise.
! 	* c-fold.cc: Likewise.
! 	* c-lang.cc: Likewise.
! 	* c-objc-common.cc: Likewise.
! 	(pp_markup::element_quoted_type::print_type): Use unique_ptr.
! 	* c-typeck.cc: Add #define INCLUDE_MEMORY.
! 	* gimple-parser.cc: Likewise.
! 
! 2024-10-23  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-decl.cc (c_struct_parse_info): Add member refloc.
! 	(start_struct): Store refloc in struct_parse_info.
! 	(finish_struct): Give "originally defined" message for C23 struct
! 	redefinition errors.
! 
! 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117190
! 	* c-parser.cc (c_parser_initval): Revert 2024-10-17 changes.
! 	Instead peek the 4th token and if it is not CPP_NUMBER,
! 	handle it like 3rd token CPP_CLOSE_BRACE for orig_len == INT_MAX.
! 	Also, check (2 + 2 * i)th raw token for the orig_len == INT_MAX
! 	case and punt if it is not CPP_NUMBER.
! 
! 2024-10-19  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-tree.h (c_arg_info): Add c23_empty_parens.
! 	* c-decl.cc (grokparms): Set c23_empty_parens.
! 	(build_arg_info): Clear c23_empty_parens.
! 	(store_parm_decls_newstyle): Do not give -Wtraditional warning for
! 	ISO C function definition if c23_empty_parens.
! 
! 2024-10-18  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-decl.cc (one_element_array_type_p, get_parm_array_spec)
! 	* c-fold.cc (c_fold_array_ref):
! 	Rename array_type_nelts => array_type_nelts_minus_one
! 
! 2024-10-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117177
! 	* c-parser.cc (c_parser_initval): Instead of doing
! 	orig_len == INT_MAX checks before consuming tokens to set
! 	last = 1, check it after consuming it and if not followed
! 	by CPP_COMMA CPP_NUMBER, call process_init_element once
! 	more with the last CPP_NUMBER.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (c_get_loop_names): Add checking assert that
! 	c is non-NULL in the loop.
! 	(c_finish_bc_name): Likewise.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_expression): Initialize next.original_type
! 	to integer_type_node for the CPP_EMBED case.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-tree.h (c_maybe_optimize_large_byte_initializer): Declare.
! 	* c-parser.cc (c_parser_initval): Attempt to optimize large char array
! 	initializers into RAW_DATA_CST.
! 	* c-typeck.cc (c_maybe_optimize_large_byte_initializer): New function.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_braced_init): Handle CPP_EMBED.
! 	(c_parser_get_builtin_args): Likewise.
! 	(c_parser_expression): Likewise.
! 	(c_parser_expr_list): Likewise.
! 	* c-typeck.cc (digest_init): Handle RAW_DATA_CST.  Formatting fix.
! 	(init_node_successor): New function.
! 	(add_pending_init): Handle RAW_DATA_CST.
! 	(set_nonincremental_init): Formatting fix.
! 	(output_init_element): Handle RAW_DATA_CST.  Formatting fixes.
! 	(maybe_split_raw_data): New function.
! 	(process_init_element): Use maybe_split_raw_data.  Handle
! 	RAW_DATA_CST.
! 
! 2024-10-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/116016
! 	* c-decl.cc (names_builtin_p): Add RID_BUILTIN_COUNTED_BY_REF.
! 	* c-parser.cc (has_counted_by_object): New routine.
! 	(get_counted_by_ref): New routine.
! 	(c_parser_postfix_expression): Handle New RID_BUILTIN_COUNTED_BY_REF.
! 	* c-tree.h: New routine handle_counted_by_for_component_ref.
! 	* c-typeck.cc (handle_counted_by_for_component_ref): New routine.
! 	(build_component_ref): Call the new routine.
! 
! 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117022
! 	* c-tree.h: Implement C2Y N3355 - Named loops.
! 	(C_DECL_LOOP_NAME, C_DECL_SWITCH_NAME, C_DECL_LOOP_SWITCH_NAME_VALID,
! 	C_DECL_LOOP_SWITCH_NAME_USED, IN_NAMED_STMT): Define.
! 	(c_get_loop_names, c_release_loop_names, c_finish_bc_name): Declare.
! 	(c_start_switch): Add NAME argument.
! 	(c_finish_bc_stmt): Likewise.
! 	* c-lang.h (struct language_function): Add loop_names and
! 	loop_names_hash members.
! 	* c-parser.cc (c_parser_external_declaration,
! 	c_parser_declaration_or_fndef, c_parser_struct_or_union_specifier,
! 	c_parser_parameter_declaration): Adjust c_parser_pragma caller.
! 	(get_before_labels): New function.
! 	(c_parser_compound_statement_nostart): Call get_before_labels when
! 	needed, adjust c_parser_pragma and c_parser_statement_after_labels
! 	callers.
! 	(c_parser_statement): Call get_before_labels first and pass it to
! 	c_parser_statement_after_labels.
! 	(c_parser_bc_name): New function.
! 	(c_parser_statement_after_labels): Add BEFORE_LABELS argument.  Pass
! 	it down to c_parser_switch_statement, c_parser_while_statement,
! 	c_parser_do_statement, c_parser_for_statement and c_parser_pragma.
! 	Call c_parser_bc_name for RID_BREAK and RID_CONTINUE and pass it as
! 	another argument to c_finish_bc_stmt.
! 	(c_parser_if_body, c_parser_else_body): Call get_before_labels
! 	early and pass it to c_parser_statement_after_labels.
! 	(c_parser_switch_statement): Add BEFORE_LABELS argument.  Call
! 	c_get_loop_names, if named, pass switch_name to c_start_switch,
! 	mark it valid and set IN_NAMED_STMT bit in in_statement before
! 	parsing body, otherwise clear IN_NAMED_STMT bit before that parsing.
! 	Run c_release_loop_names at the end.
! 	(c_parser_while_statement, c_parser_do_statement,
! 	c_parser_for_statement): Add BEFORE_LABELS argument.  Call
! 	c_get_loop_names, if named, mark it valid and set IN_NAMED_STMT bit
! 	in in_statement before parsing body, otherwise clear IN_NAMED_STMT
! 	before that parsing, arrange for the loop name if used to be
! 	another *_STMT argument.
! 	(c_parser_objc_class_instance_variables,
! 	c_parser_objc_methodprotolist): Adjust c_parser_pragma callers.
! 	(c_parser_pragma): Add BEFORE_LABELS argument.  Pass it down to
! 	c_parser_for_statement, c_parser_while_statement or
! 	c_parser_do_statement.
! 	(c_parser_omp_loop_nest, c_maybe_parse_omp_decl): Adjust
! 	c_parser_pragma callers.
! 	* c-decl.cc (loop_names, loop_names_hash): New static variables.
! 	(add_stmt): Set STATEMENT_LIST_HAS_LABEL after push_stmt_list rather
! 	than before it.
! 	(c_push_function_context): Save and clear loop_names and
! 	loop_names_hash.
! 	(c_pop_function_context): Release or delete, restore and clear
! 	loop_names and loop_names_hash.
! 	(c_get_loop_names, c_release_loop_names, c_finish_bc_name): New
! 	functions.
! 	* c-typeck.cc (c_start_switch): Add SWITCH_NAME argument, pass it down
! 	to build_stmt.
! 	(c_finish_bc_stmt): Add NAME argument.  Mark of IN_NAMED_STMT bit
! 	of in_statement in swtiches.  Use label for IN_OBJC_FOREACH only if
! 	name is NULL.  If name is non-NULL and C_DECL_LOOP_NAME and
! 	C_DECL_SWITCH_NAME are both set, assume outer ObjC foreach and
! 	dig labels from DECL_CHAIN of name.  Pass NAME to build_stmt
! 	otherwise.
! 
! 2024-10-07  qing zhao  <qing.zhao@oracle.com>
! 
! 	PR c/116735
! 	* c-decl.cc (verify_counted_by_attribute): Remove the attribute
! 	when error.
! 
! 2024-10-07  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_allocate): Set alignment for alignof;
! 	accept static variables and fix predef allocator check.
! 
! 2024-09-25  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_declare_target): Set target-used bit
! 	in omp_requires_mask.
! 
! 2024-09-24  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_requires): Handle self_maps clause.
! 
! 2024-09-20  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/116726
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Restore value
! 	of the cache after recursing into comptypes_internal.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-errors.cc (pedwarn_c23): Use "diagnostic_option_id option_id"
! 	rather than "int opt".  Update for renaming of diagnostic_info
! 	field.
! 	(pedwarn_c11): Likewise.
! 	(pedwarn_c99): Likewise.
! 	(pedwarn_c90): Likewise.
! 	* c-tree.h (pedwarn_c90): Likewise for decl.
! 	(pedwarn_c99): Likewise.
! 	(pedwarn_c11): Likewise.
! 	(pedwarn_c23): Likewise.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-objc-common.cc (c_initialize_diagnostics): Rename
! 	diagnostic_context's "printer" field to "m_printer".
! 
! 2024-09-06  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/46457
! 	PR c++/81665
! 	* c-objc-common.h (c_objc_attribute_table): Add
! 	c_common_clang_attribute_table.
! 
! 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc (print_type): Prefix all output_buffer fields
! 	with "m_".
! 
! 2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-typeck.cc (build_asm_expr): Rename ASM_INPUT_P to ASM_BASIC_P.
! 
! 2024-08-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/116130
! 	* c-decl.cc (handle_std_unsequenced_attribute): New function.
! 	(handle_std_reproducible_attribute): Likewise.
! 	(std_attributes): Add entries for "unsequenced" and "reproducible"
! 	attributes.
! 	(c_warn_type_attributes): Add TYPE argument.  Allow unsequenced
! 	or reproducible attributes if it is FUNCTION_TYPE.
! 	(groktypename): Adjust c_warn_type_attributes caller.
! 	(grokdeclarator): Likewise.
! 	(finish_declspecs): Likewise.
! 	* c-parser.cc (c_parser_declaration_or_fndef): Likewise.
! 	* c-tree.h (c_warn_type_attributes): Add TYPE argument.
! 
! 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc (c_tree_printer): Convert final param from
! 	const char ** to pp_token_list &.
! 
! 2024-08-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (grokdeclarator, finish_struct): Set and
! 	propagate TYPE_TYPELESS_STORAGE.
! 
! 2024-07-23  Andi Kleen  <ak@linux.intel.com>
! 
! 	PR c/83324
! 	* c-parser.cc (struct attr_state): Define with musttail_p.
! 	(c_parser_statement_after_labels): Handle [[musttail]].
! 	(c_parser_std_attribute): Dito.
! 	(c_parser_handle_musttail): Dito.
! 	(c_parser_compound_statement_nostart): Dito.
! 	(c_parser_all_labels): Dito.
! 	(c_parser_statement): Dito.
! 	* c-tree.h (c_finish_return): Add musttail_p flag.
! 	* c-typeck.cc (c_finish_return): Handle musttail_p flag.
! 
! 2024-07-20  Andi Kleen  <ak@gcc.gnu.org>
! 
! 	Revert:
! 	2024-07-20  Andi Kleen  <ak@linux.intel.com>
! 
! 	PR c/83324
! 	* c-parser.cc (struct attr_state): Define with musttail_p.
! 	(c_parser_statement_after_labels): Handle [[musttail]].
! 	(c_parser_std_attribute): Dito.
! 	(c_parser_handle_musttail): Dito.
! 	(c_parser_compound_statement_nostart): Dito.
! 	(c_parser_all_labels): Dito.
! 	(c_parser_statement): Dito.
! 	* c-tree.h (c_finish_return): Add musttail_p flag.
! 	* c-typeck.cc (c_finish_return): Handle musttail_p flag.
! 
! 2024-07-20  Andi Kleen  <ak@linux.intel.com>
! 
! 	PR c/83324
! 	* c-parser.cc (struct attr_state): Define with musttail_p.
! 	(c_parser_statement_after_labels): Handle [[musttail]].
! 	(c_parser_std_attribute): Dito.
! 	(c_parser_handle_musttail): Dito.
! 	(c_parser_compound_statement_nostart): Dito.
! 	(c_parser_all_labels): Dito.
! 	(c_parser_statement): Dito.
! 	* c-tree.h (c_finish_return): Add musttail_p flag.
! 	* c-typeck.cc (c_finish_return): Handle musttail_p flag.
! 
! 2024-07-14  Alejandro Colomar  <alx@kernel.org>
! 
! 	PR c/115185
! 	* c-typeck.cc (digest_init): Separate warnings about character
! 	arrays being initialized as unterminated character sequences
! 	with string literals, from -Wc++-compat, into a new warning,
! 	-Wunterminated-string-initialization.
! 
! 2024-07-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc: Include "tree-pretty-print-markup.h".
! 	(print_type): Add optional "highlight_color" param and use it
! 	to show highlight colors in "aka" text.
! 	(pp_markup::element_quoted_type::print_type): New.
! 	* c-typeck.cc: Include "tree-pretty-print-markup.h".
! 	(comp_parm_types): New.
! 	(build_function_call_vec): Pass it to check_function_arguments.
! 	(inform_for_arg): Use %e and highlight colors to contrast actual
! 	versus expected.
! 	(convert_for_assignment): Use highlight_colors::actual for the
! 	rhs_label.
! 	(build_binary_op): Use highlight_colors::lhs and highlight_colors::rhs
! 	for the ranges.
! 
! 2024-07-10  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c/115642
! 	* c-typeck.cc (c_cast_expr): Return error_mark_node if build_c_cast
! 	failed.
! 
! 2024-07-10  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c/115549
! 	* c-decl.cc (c_decl_attributes): If lookup_last_decl returns
! 	error_mark_node, use NULL_TREE as last_decl.
! 
! 2024-07-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/114727
! 	* c-typeck.cc (tagged_types_tu_compatible): Add test.
! 
! 2024-07-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/115696
! 	* c-typeck.cc (comptypes_verify): Bail out for
! 	identical, empty, and erroneous input types.
! 
! 2024-07-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_omp_tile_sizes): Use c_parser_expr_list.
! 
! 2024-06-27  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-parser.cc (c_parser_direct_declarator_inner): Add
! 	error message.
! 
! 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-parser.cc (c_parser_require): Pass *global_dc to
! 	gcc_rich_location::add_location_if_nearby.
! 
! 2024-06-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR c/115587
! 	* c-parser.cc (c_parser_omp_loop_nest): Move initializations to
! 	point of declaration.
! 
! 2024-06-25  Jakub Jelinek  <jakub@redhat.com>
! 	    Martin Uecker  <uecker@tugraz.at>
  
  	PR c/114930
  	PR c/115502
***************
*** 15,42 ****
  	Deal with the case where build_qualified_type returns
  	TYPE_STRUCTURAL_EQUALITY_P type.
  
! 2024-06-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	Backported from master:
! 	2024-06-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/115587
! 	* c-parser.cc (c_parser_omp_loop_nest): Move initializations to
! 	point of declaration.
  
! 2024-06-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-06  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/114493
  	* c-decl.cc (c_fixup_may_alias): New function.
  	(finish_struct): Call it if "may_alias" attribute is
  	specified.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-19  Martin Uecker  <uecker@tugraz.at>
  	    Jakub Jelinek  <jakub@redhat.com>
--- 1123,1294 ----
  	Deal with the case where build_qualified_type returns
  	TYPE_STRUCTURAL_EQUALITY_P type.
  
! 2024-06-18  Martin Uecker  <uecker@tugraz.at>
  
! 	PR c/115109
! 	* c-decl.cc (build_enumerator): When redeclaring an
! 	enumerator convert value to previous type.  For redeclared
! 	enumerators use underlying type for computing the next value.
  
! 2024-06-13  Joseph Myers  <josmyers@redhat.com>
  
! 	* c-typeck.cc (build_unary_op): Use pedwarn_c23 for complex
! 	increment and decrement.
  
! 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc (print_type): Update for fields of
! 	pretty_printer becoming private.
! 	(c_tree_printer): Likewise.
! 
! 2024-06-11  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-errors.cc (pedwarn_c23): New.
! 	* c-parser.cc (disable_extension_diagnostics)
! 	(restore_extension_diagnostics): Save and restore
! 	warn_c23_c2y_compat.
! 	(c_parser_generic_selection): Handle type name as controlling
! 	operand.  Allow incomplete and function types subject to
! 	pedwarn_c23 calls.
! 	* c-tree.h (pedwarn_c23): New.
! 
! 2024-06-06  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/114493
  	* c-decl.cc (c_fixup_may_alias): New function.
  	(finish_struct): Call it if "may_alias" attribute is
  	specified.
  
! 2024-06-05  Jakub Jelinek  <jakub@redhat.com>
! 	    Frederik Harwath  <frederik@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* c-parser.cc (c_parser_skip_std_attribute_spec_seq): New function.
! 	(check_omp_intervening_code): Reject imperfectly nested tile.
! 	(c_parser_compound_statement_nostart): If want_nested_loop, use
! 	c_parser_omp_next_tokens_can_be_canon_loop instead of just checking
! 	for RID_FOR keyword.
! 	(c_parser_omp_clause_name): Handle full and partial clause names.
! 	(c_parser_omp_clause_allocate): Remove spurious semicolon.
! 	(c_parser_omp_clause_full, c_parser_omp_clause_partial): New
! 	functions.
! 	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FULL and
! 	PRAGMA_OMP_CLAUSE_PARTIAL.
! 	(c_parser_omp_next_tokens_can_be_canon_loop): New function.
! 	(c_parser_omp_loop_nest): Parse C23 attributes.  Handle tile/unroll
! 	constructs.  Use c_parser_omp_next_tokens_can_be_canon_loop instead
! 	of just checking for RID_FOR keyword.  Only add_stmt (body) if it is
! 	non-NULL.
! 	(c_parser_omp_for_loop): Rename tiling variable to oacc_tiling.  For
! 	OMP_CLAUSE_SIZES set collapse to list length of OMP_CLAUSE_SIZES_LIST.
! 	Use c_parser_omp_next_tokens_can_be_canon_loop instead of just
! 	checking for RID_FOR keyword.  Remove spurious semicolon.  Don't call
! 	c_omp_check_loop_binding_exprs if stmt is NULL.  Skip generated loops.
! 	(c_parser_omp_tile_sizes, c_parser_omp_tile): New functions.
! 	(OMP_UNROLL_CLAUSE_MASK): Define.
! 	(c_parser_omp_unroll): New function.
! 	(c_parser_omp_construct): Handle PRAGMA_OMP_TILE and
! 	PRAGMA_OMP_UNROLL.
! 	* c-typeck.cc (c_finish_omp_clauses): Adjust wording of some of the
! 	conflicting clause diagnostic messages to include word clause.
! 	Handle OMP_CLAUSE_{FULL,PARTIAL,SIZES} and diagnose full vs. partial
! 	conflict.
! 
! 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Add the 6th
! 	argument to .ACCESS_WITH_SIZE.
! 
! 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-parser.cc (c_parser_postfix_expression): Ignore the counted-by
! 	attribute when build_component_ref inside offsetof operator.
! 	* c-tree.h (build_component_ref): Add one more parameter.
! 	* c-typeck.cc (build_counted_by_ref): New function.
! 	(build_access_with_size_for_counted_by): New function.
! 	(build_component_ref): Check the counted-by attribute and build
! 	call to .ACCESS_WITH_SIZE.
! 	(build_unary_op): When building ADDR_EXPR for
! 	.ACCESS_WITH_SIZE, use its first argument.
! 	(lvalue_p): Accept call to .ACCESS_WITH_SIZE.
! 	(digest_init): Fold call to .ACCESS_WITH_SIZE to its first
! 	argument when require_constant is TRUE.
! 
! 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (flexible_array_member_type_p): Renamed and moved to...
! 	(add_flexible_array_elts_to_size): Use renamed function.
! 	(is_flexible_array_member_p): Use renamed function.
! 	(verify_counted_by_attribute): New function.
! 	(finish_struct): Use renamed function and verify counted_by
! 	attribute.
! 	* c-tree.h (lookup_field): New prototype.
! 	* c-typeck.cc (lookup_field): Expose as extern function.
! 	(tagged_types_tu_compatible_p): Check counted_by attribute for
! 	structure type.
! 
! 2024-05-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (finish_struct): Do not set TYPE_CANONICAL for
! 	structure or unions with variable size.
! 	* c-objc-common.cc (c_get_alias_set): Do not set alias set to zero.
! 	* c-typeck.cc (comptypes_verify): New function.
! 	(comptypes,comptypes_same_p,comptypes_check_enum_int): Add assertion.
! 	(comptypes_equiv_p): Add assertion that ensures that compatible
! 	types have the same equivalence class.
! 	(tagged_types_tu_compatible_p): Remove now unneeded special case.
! 
! 2024-05-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR tree-optimization/115157
! 	PR tree-optimization/115177
! 	* c-decl.cc (shadow_tag-warned,parse_xref_tag,start_enum,
! 	finish_enum): Set SET_TYPE_STRUCTURAL_EQUALITY / TYPE_CANONICAL.
! 	* c-objc-common.cc (get_alias_set): Remove special case.
! 	(get_aka_type): Add special case.
! 
! 2024-05-29  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (comptypes_internal): Add flag to track
! 	whether a struct is the target of a pointer.
! 	(tagged_types_tu_compatible): When forming equivalence
! 	classes, treat nested pointed-to structs as equivalent.
! 
! 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR bootstrap/115167
! 	* c-objc-common.cc: Replace include of "gcc-rich-location.h" with
! 	"c-family/c-type-mismatch.h".
! 	* c-typeck.cc: Likewise.
! 
! 2024-05-24  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/114831
! 	* c-typeck.cc (array_to_pointer_conversion, build_unary_op):
! 	Propagate flag to pointer target.
! 
! 2024-05-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/115103
! 	* c-typeck.cc (c_finish_omp_clauses): Diagnose grainsize
! 	used together with num_tasks.
! 
! 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/53548
! 	* c-decl.cc (add_flexible_array_elts_to_size): Handle the cases
! 	when the DECL is union.
! 
! 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/53548
! 	* c-decl.cc (finish_struct): Change errors to pedwarns for the cases
! 	flexible array members in union or alone in structures.
! 
! 2024-04-30  Richard Biener  <rguenther@suse.de>
! 
! 	* gimple-parser.cc (c_parser_gimple_binary_expression):
! 	Parse __{CEIL,FLOOR,ROUND}_{DIV,MOD} and __EXACT_DIV.
  
  2024-04-19  Martin Uecker  <uecker@tugraz.at>
  	    Jakub Jelinek  <jakub@redhat.com>
***************
*** 10181,10187 ****
  	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
  	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
  
! Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 11433,11439 ----
  	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
  	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
  
! Copyright (C) 2012-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/c/Make-lang.in gcc-15.1.0/gcc/c/Make-lang.in
*** gcc-14.2.0/gcc/c/Make-lang.in	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/Make-lang.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for GNU C - C language.
! # Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU C - C language.
! # Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** c.all.cross:
*** 131,138 ****
  c.start.encap:
  c.rest.encap:
  c.srcinfo:
! c.srcextra: gengtype-lex.cc
! 	-cp -p $^ $(srcdir)
  c.tags: force
  	cd $(srcdir)/c; $(ETAGS) -o TAGS.sub *.cc *.h; \
  	$(ETAGS) --include TAGS.sub --include ../TAGS.sub
--- 131,137 ----
  c.start.encap:
  c.rest.encap:
  c.srcinfo:
! c.srcextra:
  c.tags: force
  	cd $(srcdir)/c; $(ETAGS) -o TAGS.sub *.cc *.h; \
  	$(ETAGS) --include TAGS.sub --include ../TAGS.sub
*************** C_SELFTEST_DEPS = cc1$(exeext) $(SELFTES
*** 150,162 ****
  
  # Run the C selftests:
  s-selftest-c: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS)
  	$(STAMP) $@
  
  # Convenience methods for running C selftests under gdb:
  .PHONY: selftest-c-gdb
  selftest-c-gdb: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
  	  -wrapper gdb,--args
  
  .PHONY: selftest-gdb
--- 149,161 ----
  
  # Run the C selftests:
  s-selftest-c: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_SELFTESTS) $(C_SELFTEST_FLAGS)
  	$(STAMP) $@
  
  # Convenience methods for running C selftests under gdb:
  .PHONY: selftest-c-gdb
  selftest-c-gdb: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_SELFTESTS) $(C_SELFTEST_FLAGS) \
  	  -wrapper gdb,--args
  
  .PHONY: selftest-gdb
*************** selftest-gdb: selftest-c-gdb
*** 165,171 ****
  # Convenience methods for running C selftests under valgrind:
  .PHONY: selftest-c-valgrind
  selftest-c-valgrind: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
  	  -wrapper valgrind,--leak-check=full
  
  .PHONY: selftest-valgrind
--- 164,170 ----
  # Convenience methods for running C selftests under valgrind:
  .PHONY: selftest-c-valgrind
  selftest-c-valgrind: $(C_SELFTEST_DEPS)
! 	$(GCC_FOR_SELFTESTS) $(C_SELFTEST_FLAGS) \
  	  -wrapper valgrind,--leak-check=full
  
  .PHONY: selftest-valgrind
diff -Nrcpad gcc-14.2.0/gcc/c/c-aux-info.cc gcc-15.1.0/gcc/c/c-aux-info.cc
*** gcc-14.2.0/gcc/c/c-aux-info.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-aux-info.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* Generate information regarding function declarations and definitions based
     on information stored in GCC's tree structure.  This code implements the
     -aux-info option.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
     Contributed by Ron Guilmette (rfg@segfault.us.com).
  
  This file is part of GCC.
--- 1,7 ----
  /* Generate information regarding function declarations and definitions based
     on information stored in GCC's tree structure.  This code implements the
     -aux-info option.
!    Copyright (C) 1989-2025 Free Software Foundation, Inc.
     Contributed by Ron Guilmette (rfg@segfault.us.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/c/c-convert.cc gcc-15.1.0/gcc/c/c-convert.cc
*** gcc-14.2.0/gcc/c/c-convert.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-convert.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c/c-decl.cc gcc-15.1.0/gcc/c/c-decl.cc
*** gcc-14.2.0/gcc/c/c-decl.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-decl.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 26,32 ****
  
  #include "config.h"
  #define INCLUDE_STRING
- #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "target.h"
--- 26,31 ----
*************** along with GCC; see the file COPYING3.
*** 62,67 ****
--- 61,67 ----
  #include "omp-general.h"
  #include "omp-offload.h"  /* For offload_vars.  */
  #include "c-parser.h"
+ #include "gcc-urlifier.h"
  
  #include "tree-pretty-print.h"
  
*************** vec<c_omp_declare_target_attr, va_gc> *c
*** 162,167 ****
--- 162,175 ----
     #pragma omp begin assumes ... #pragma omp end assumes regions
     we are in.  */
  vec<c_omp_begin_assumes_data, va_gc> *current_omp_begin_assumes;
+ 
+ /* Vector of loop names with C_DECL_LOOP_NAME or C_DECL_SWITCH_NAME marked
+    LABEL_DECL as the last and canonical for each loop or switch.  */
+ static vec<tree> loop_names;
+ 
+ /* Hash table mapping LABEL_DECLs to the canonical LABEL_DECLs if LOOP_NAMES
+    vector becomes too long.  */
+ static decl_tree_map *loop_names_hash;
  
  /* Each c_binding structure describes one binding of an identifier to
     a decl.  All the decls in a scope - irrespective of namespace - are
*************** public:
*** 632,637 ****
--- 640,647 ----
    /* If warn_cxx_compat, a list of typedef names used when defining
       fields in this struct.  */
    auto_vec<tree> typedefs_seen;
+   /* The location of a previous definition of this struct.  */
+   location_t refloc;
  };
  
  
*************** c_struct_hasher::hash (tree type)
*** 649,655 ****
    inchash::hash hstate;
  
    hstate.add_int (TREE_CODE (type));
!   hstate.add_object (TYPE_NAME (type));
  
    return hstate.end ();
  }
--- 659,666 ----
    inchash::hash hstate;
  
    hstate.add_int (TREE_CODE (type));
!   tree tag = c_type_tag (type);
!   hstate.add_object (tag);
  
    return hstate.end ();
  }
*************** add_stmt (tree t)
*** 694,726 ****
  	SET_EXPR_LOCATION (t, input_location);
      }
  
-   if (code == LABEL_EXPR || code == CASE_LABEL_EXPR)
-     STATEMENT_LIST_HAS_LABEL (cur_stmt_list) = 1;
- 
    /* Add T to the statement-tree.  Non-side-effect statements need to be
       recorded during statement expressions.  */
    if (!building_stmt_list_p ())
      push_stmt_list ();
    append_to_statement_list_force (t, &cur_stmt_list);
  
    return t;
  }
- 
- /* Build a pointer type using the default pointer mode.  */
  
- static tree
- c_build_pointer_type (tree to_type)
- {
-   addr_space_t as = to_type == error_mark_node? ADDR_SPACE_GENERIC
- 					      : TYPE_ADDR_SPACE (to_type);
-   machine_mode pointer_mode;
  
!   if (as != ADDR_SPACE_GENERIC || c_default_pointer_mode == VOIDmode)
!     pointer_mode = targetm.addr_space.pointer_mode (as);
!   else
!     pointer_mode = c_default_pointer_mode;
!   return build_pointer_type_for_mode (to_type, pointer_mode, false);
! }
  
  
  /* Return true if we will want to say something if a goto statement
--- 705,725 ----
  	SET_EXPR_LOCATION (t, input_location);
      }
  
    /* Add T to the statement-tree.  Non-side-effect statements need to be
       recorded during statement expressions.  */
    if (!building_stmt_list_p ())
      push_stmt_list ();
+ 
+   if (code == LABEL_EXPR || code == CASE_LABEL_EXPR)
+     STATEMENT_LIST_HAS_LABEL (cur_stmt_list) = 1;
+ 
    append_to_statement_list_force (t, &cur_stmt_list);
  
    return t;
  }
  
  
! 
  
  
  /* Return true if we will want to say something if a goto statement
*************** match_builtin_function_types (tree newty
*** 1912,1918 ****
        newargs = TREE_CHAIN (newargs);
      }
  
!   tree trytype = build_function_type (newrettype, tryargs);
  
    /* Allow declaration to change transaction_safe attribute.  */
    tree oldattrs = TYPE_ATTRIBUTES (oldtype);
--- 1911,1917 ----
        newargs = TREE_CHAIN (newargs);
      }
  
!   tree trytype = c_build_function_type (newrettype, tryargs);
  
    /* Allow declaration to change transaction_safe attribute.  */
    tree oldattrs = TYPE_ATTRIBUTES (oldtype);
*************** match_builtin_function_types (tree newty
*** 1925,1931 ****
      oldattrs = tree_cons (get_identifier ("transaction_safe"),
  			  NULL_TREE, oldattrs);
  
!   return build_type_attribute_variant (trytype, oldattrs);
  }
  
  /* Subroutine of diagnose_mismatched_decls.  Check for function type
--- 1924,1930 ----
      oldattrs = tree_cons (get_identifier ("transaction_safe"),
  			  NULL_TREE, oldattrs);
  
!   return c_build_type_attribute_variant (trytype, oldattrs);
  }
  
  /* Subroutine of diagnose_mismatched_decls.  Check for function type
*************** static tree
*** 2075,2081 ****
  previous_tag (tree type)
  {
    struct c_binding *b = NULL;
!   tree name = TYPE_NAME (type);
  
    if (name)
      b = I_TAG_BINDING (name);
--- 2074,2080 ----
  previous_tag (tree type)
  {
    struct c_binding *b = NULL;
!   tree name = c_type_tag (type);
  
    if (name)
      b = I_TAG_BINDING (name);
*************** merge_decls (tree newdecl, tree olddecl,
*** 2780,2786 ****
  			= TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
  		      break;
  		    }
! 	    }	    
  	  else
  	    for (tree t = TYPE_MAIN_VARIANT (remove); ;
  		 t = TYPE_NEXT_VARIANT (t))
--- 2779,2785 ----
  			= TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
  		      break;
  		    }
! 	    }
  	  else
  	    for (tree t = TYPE_MAIN_VARIANT (remove); ;
  		 t = TYPE_NEXT_VARIANT (t))
*************** merge_decls (tree newdecl, tree olddecl,
*** 2790,2795 ****
--- 2789,2797 ----
  		  break;
  		}
  	}
+ 
+       /* Make sure we refer to the same type as the olddecl.  */
+       DECL_ORIGINAL_TYPE (newdecl) = DECL_ORIGINAL_TYPE (olddecl);
      }
  
    /* Merge the data types specified in the two decls.  */
*************** pushdecl (tree x)
*** 3386,3394 ****
  	      if (TREE_CODE (b_use->decl) == FUNCTION_DECL
  		  && fndecl_built_in_p (b_use->decl))
  		thistype
! 		  = build_type_attribute_variant (thistype,
! 						  TYPE_ATTRIBUTES
! 						  (b_use->u.type));
  	      TREE_TYPE (b_use->decl) = thistype;
  	    }
  	  return b_use->decl;
--- 3388,3396 ----
  	      if (TREE_CODE (b_use->decl) == FUNCTION_DECL
  		  && fndecl_built_in_p (b_use->decl))
  		thistype
! 		  = c_build_type_attribute_variant (thistype,
! 						    TYPE_ATTRIBUTES
! 						    (b_use->u.type));
  	      TREE_TYPE (b_use->decl) = thistype;
  	    }
  	  return b_use->decl;
*************** pushdecl (tree x)
*** 3486,3493 ****
  	  b->u.type = TREE_TYPE (b->decl);
  	  /* Propagate the type attributes to the decl.  */
  	  thistype
! 	    = build_type_attribute_variant (thistype,
! 					    TYPE_ATTRIBUTES (b->u.type));
  	  TREE_TYPE (b->decl) = thistype;
  	  bind (name, b->decl, scope, /*invisible=*/false, /*nested=*/true,
  		locus);
--- 3488,3495 ----
  	  b->u.type = TREE_TYPE (b->decl);
  	  /* Propagate the type attributes to the decl.  */
  	  thistype
! 	    = c_build_type_attribute_variant (thistype,
! 					      TYPE_ATTRIBUTES (b->u.type));
  	  TREE_TYPE (b->decl) = thistype;
  	  bind (name, b->decl, scope, /*invisible=*/false, /*nested=*/true,
  		locus);
*************** implicitly_declare (location_t loc, tree
*** 3885,3893 ****
  	    }
  	  if (fndecl_built_in_p (decl))
  	    {
! 	      newtype = build_type_attribute_variant (newtype,
! 						      TYPE_ATTRIBUTES
! 						      (TREE_TYPE (decl)));
  	      if (!comptypes (newtype, TREE_TYPE (decl)))
  		{
  		  auto_diagnostic_group d;
--- 3887,3895 ----
  	    }
  	  if (fndecl_built_in_p (decl))
  	    {
! 	      newtype = c_build_type_attribute_variant (newtype,
! 							TYPE_ATTRIBUTES
! 							(TREE_TYPE (decl)));
  	      if (!comptypes (newtype, TREE_TYPE (decl)))
  		{
  		  auto_diagnostic_group d;
*************** lookup_name_fuzzy (tree name, enum looku
*** 4550,4555 ****
--- 4552,4568 ----
  						  IDENTIFIER_POINTER (name),
  						  header_hint));
  
+   /* Next, look for exact matches for builtin defines that would have been
+      defined if the user had passed a command-line option (e.g. -fopenmp
+      for "_OPENMP").  */
+   diagnostic_option_id option_id
+     = get_option_for_builtin_define (IDENTIFIER_POINTER (name));
+   if (option_id.m_idx > 0)
+     return name_hint (nullptr,
+ 		      new suggest_missing_option (loc,
+ 						  IDENTIFIER_POINTER (name),
+ 						  option_id));
+ 
    /* Only suggest names reserved for the implementation if NAME begins
       with an underscore.  */
    bool consider_implementation_names = (IDENTIFIER_POINTER (name)[0] == '_');
*************** handle_std_noreturn_attribute (tree *nod
*** 4702,4707 ****
--- 4715,4753 ----
      }
  }
  
+ /* Handle the standard [[unsequenced]] attribute.  */
+ 
+ static tree
+ handle_std_unsequenced_attribute (tree *node, tree name, tree args,
+ 				  int flags, bool *no_add_attrs)
+ {
+   /* Unlike GNU __attribute__ ((unsequenced)), the standard [[unsequenced]]
+      should be only applied to function declarators or type specifiers which
+      have function type.  */
+   if (node[2])
+     {
+       auto_diagnostic_group d;
+       if (pedwarn (input_location, OPT_Wattributes,
+ 		   "standard %qE attribute can only be applied to function "
+ 		   "declarators or type specifiers with function type", name))
+ 	inform (input_location, "did you mean to specify it after %<)%> "
+ 				"following function parameters?");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   return handle_unsequenced_attribute (node, name, args, flags, no_add_attrs);
+ }
+ 
+ /* Handle the standard [[reproducible]] attribute.  */
+ 
+ static tree
+ handle_std_reproducible_attribute (tree *node, tree name, tree args,
+ 				   int flags, bool *no_add_attrs)
+ {
+   return handle_std_unsequenced_attribute (node, name, args, flags,
+ 					   no_add_attrs);
+ }
+ 
  /* Table of supported standard (C23) attributes.  */
  static const attribute_spec std_attributes[] =
  {
*************** static const attribute_spec std_attribut
*** 4718,4724 ****
    { "nodiscard", 0, 1, false, false, false, false,
      handle_nodiscard_attribute, NULL },
    { "noreturn", 0, 0, false, false, false, false,
!     handle_std_noreturn_attribute, NULL }
  };
  
  const scoped_attribute_specs std_attribute_table =
--- 4764,4774 ----
    { "nodiscard", 0, 1, false, false, false, false,
      handle_nodiscard_attribute, NULL },
    { "noreturn", 0, 0, false, false, false, false,
!     handle_std_noreturn_attribute, NULL },
!   { "reproducible", 0, 0, false, true, true, false,
!     handle_std_reproducible_attribute, NULL },
!   { "unsequenced", 0, 0, false, true, true, false,
!     handle_std_unsequenced_attribute, NULL }
  };
  
  const scoped_attribute_specs std_attribute_table =
*************** c_init_decl_processing (void)
*** 4764,4770 ****
  			boolean_type_node));
  
    /* C-specific nullptr initialization.  */
!   record_builtin_type (RID_MAX, "nullptr_t", nullptr_type_node);
    /* The size and alignment of nullptr_t is the same as for a pointer to
       character type.  */
    SET_TYPE_ALIGN (nullptr_type_node, GET_MODE_ALIGNMENT (ptr_mode));
--- 4814,4820 ----
  			boolean_type_node));
  
    /* C-specific nullptr initialization.  */
!   record_builtin_type (RID_MAX, "typeof (nullptr)", nullptr_type_node);
    /* The size and alignment of nullptr_t is the same as for a pointer to
       character type.  */
    SET_TYPE_ALIGN (nullptr_type_node, GET_MODE_ALIGNMENT (ptr_mode));
*************** c_make_fname_decl (location_t loc, tree
*** 4790,4797 ****
    tree decl, type, init;
    size_t length = strlen (name);
  
!   type = build_array_type (char_type_node,
! 			   build_index_type (size_int (length)));
    type = c_build_qualified_type (type, TYPE_QUAL_CONST);
  
    decl = build_decl (loc, VAR_DECL, id, type);
--- 4840,4847 ----
    tree decl, type, init;
    size_t length = strlen (name);
  
!   type = c_build_array_type (char_type_node,
! 			     build_index_type (size_int (length)));
    type = c_build_qualified_type (type, TYPE_QUAL_CONST);
  
    decl = build_decl (loc, VAR_DECL, id, type);
*************** c_warn_unused_attributes (tree attrs)
*** 4911,4922 ****
     list of attributes with them removed.  */
  
  tree
! c_warn_type_attributes (tree attrs)
  {
    tree *attr_ptr = &attrs;
    while (*attr_ptr)
      if (get_attribute_namespace (*attr_ptr) == NULL_TREE)
        {
  	pedwarn (input_location, OPT_Wattributes, "%qE attribute ignored",
  		 get_attribute_name (*attr_ptr));
  	*attr_ptr = TREE_CHAIN (*attr_ptr);
--- 4961,4984 ----
     list of attributes with them removed.  */
  
  tree
! c_warn_type_attributes (tree type, tree attrs)
  {
    tree *attr_ptr = &attrs;
    while (*attr_ptr)
      if (get_attribute_namespace (*attr_ptr) == NULL_TREE)
        {
+ 	if (TREE_CODE (type) == FUNCTION_TYPE)
+ 	  {
+ 	    tree name = get_attribute_name (*attr_ptr);
+ 	    /* [[unsequenced]] and [[reproducible]] is fine on function
+ 	       types that aren't being defined.  */
+ 	    if (is_attribute_p ("unsequenced", name)
+ 		|| is_attribute_p ("reproducible", name))
+ 	      {
+ 		attr_ptr = &TREE_CHAIN (*attr_ptr);
+ 		continue;
+ 	      }
+ 	  }
  	pedwarn (input_location, OPT_Wattributes, "%qE attribute ignored",
  		 get_attribute_name (*attr_ptr));
  	*attr_ptr = TREE_CHAIN (*attr_ptr);
*************** shadow_tag_warned (const struct c_declsp
*** 5051,5057 ****
  	      if (t == NULL_TREE)
  		{
  		  t = make_node (code);
! 		  if (flag_isoc23 && code != ENUMERAL_TYPE)
  		    SET_TYPE_STRUCTURAL_EQUALITY (t);
  		  pushtag (input_location, name, t);
  		}
--- 5113,5119 ----
  	      if (t == NULL_TREE)
  		{
  		  t = make_node (code);
! 		  if (flag_isoc23 || code == ENUMERAL_TYPE)
  		    SET_TYPE_STRUCTURAL_EQUALITY (t);
  		  pushtag (input_location, name, t);
  		}
*************** set_array_declarator_inner (struct c_dec
*** 5303,5328 ****
    return decl;
  }
  
- /* Determine whether TYPE is a ISO C99 flexible array memeber type "[]".  */
- static bool
- flexible_array_member_type_p (const_tree type)
- {
-   if (TREE_CODE (type) == ARRAY_TYPE
-       && TYPE_SIZE (type) == NULL_TREE
-       && TYPE_DOMAIN (type) != NULL_TREE
-       && TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == NULL_TREE)
-     return true;
- 
-   return false;
- }
- 
  /* Determine whether TYPE is a one-element array type "[1]".  */
  static bool
  one_element_array_type_p (const_tree type)
  {
    if (TREE_CODE (type) != ARRAY_TYPE)
      return false;
!   return integer_zerop (array_type_nelts (type));
  }
  
  /* Determine whether TYPE is a zero-length array type "[0]".  */
--- 5365,5377 ----
    return decl;
  }
  
  /* Determine whether TYPE is a one-element array type "[1]".  */
  static bool
  one_element_array_type_p (const_tree type)
  {
    if (TREE_CODE (type) != ARRAY_TYPE)
      return false;
!   return integer_zerop (array_type_nelts_minus_one (type));
  }
  
  /* Determine whether TYPE is a zero-length array type "[0]".  */
*************** zero_length_array_type_p (const_tree typ
*** 5339,5346 ****
  }
  
  /* INIT is a constructor that forms DECL's initializer.  If the final
!    element initializes a flexible array field, add the size of that
!    initializer to DECL's size.  */
  
  static void
  add_flexible_array_elts_to_size (tree decl, tree init)
--- 5388,5396 ----
  }
  
  /* INIT is a constructor that forms DECL's initializer.  If the final
!    element initializes a flexible array field, adjust the size of the
!    DECL with the initializer based on whether the DECL is a union or
!    a structure.  */
  
  static void
  add_flexible_array_elts_to_size (tree decl, tree init)
*************** add_flexible_array_elts_to_size (tree de
*** 5352,5364 ****
  
    elt = CONSTRUCTOR_ELTS (init)->last ().value;
    type = TREE_TYPE (elt);
!   if (flexible_array_member_type_p (type))
      {
        complete_array_type (&type, elt, false);
!       DECL_SIZE (decl)
! 	= size_binop (PLUS_EXPR, DECL_SIZE (decl), TYPE_SIZE (type));
!       DECL_SIZE_UNIT (decl)
! 	= size_binop (PLUS_EXPR, DECL_SIZE_UNIT (decl), TYPE_SIZE_UNIT (type));
      }
  }
  
--- 5402,5430 ----
  
    elt = CONSTRUCTOR_ELTS (init)->last ().value;
    type = TREE_TYPE (elt);
!   if (c_flexible_array_member_type_p (type))
      {
        complete_array_type (&type, elt, false);
!       /* For a structure, add the size of the initializer to the DECL's
! 	 size.  */
!       if (TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE)
! 	{
! 	  DECL_SIZE (decl)
! 	    = size_binop (PLUS_EXPR, DECL_SIZE (decl), TYPE_SIZE (type));
! 	  DECL_SIZE_UNIT (decl)
! 	    = size_binop (PLUS_EXPR, DECL_SIZE_UNIT (decl),
! 			  TYPE_SIZE_UNIT (type));
! 	}
!       /* For a union, the DECL's size is the maximum of the current size
! 	 and the size of the initializer.  */
!       else
! 	{
! 	  DECL_SIZE (decl)
! 	    = size_binop (MAX_EXPR, DECL_SIZE (decl), TYPE_SIZE (type));
! 	  DECL_SIZE_UNIT (decl)
! 	    = size_binop (MAX_EXPR, DECL_SIZE_UNIT (decl),
! 			  TYPE_SIZE_UNIT (type));
! 	}
      }
  }
  
*************** groktypename (struct c_type_name *type_n
*** 5382,5388 ****
  			 DEPRECATED_NORMAL);
  
    /* Apply attributes.  */
!   attrs = c_warn_type_attributes (attrs);
    decl_attributes (&type, attrs, 0);
  
    return type;
--- 5448,5454 ----
  			 DEPRECATED_NORMAL);
  
    /* Apply attributes.  */
!   attrs = c_warn_type_attributes (type, attrs);
    decl_attributes (&type, attrs, 0);
  
    return type;
*************** c_decl_attributes (tree *node, tree attr
*** 5414,5425 ****
  	attributes = tree_cons (get_identifier ("omp declare target implicit"),
  				NULL_TREE, attributes);
        else
! 	{
! 	  attributes = tree_cons (get_identifier ("omp declare target"),
! 				  NULL_TREE, attributes);
! 	  attributes = tree_cons (get_identifier ("omp declare target block"),
! 				  NULL_TREE, attributes);
! 	}
        if (TREE_CODE (*node) == FUNCTION_DECL)
  	{
  	  int device_type
--- 5480,5487 ----
  	attributes = tree_cons (get_identifier ("omp declare target implicit"),
  				NULL_TREE, attributes);
        else
! 	attributes = tree_cons (get_identifier ("omp declare target"),
! 				NULL_TREE, attributes);
        if (TREE_CODE (*node) == FUNCTION_DECL)
  	{
  	  int device_type
*************** c_decl_attributes (tree *node, tree attr
*** 5492,5499 ****
    /* Look up the current declaration with all the attributes merged
       so far so that attributes on the current declaration that's
       about to be pushed that conflict with the former can be detected,
!      diagnosed, and rejected as appropriate.  */
    tree last_decl = lookup_last_decl (*node);
    return decl_attributes (node, attributes, flags, last_decl);
  }
  
--- 5554,5564 ----
    /* Look up the current declaration with all the attributes merged
       so far so that attributes on the current declaration that's
       about to be pushed that conflict with the former can be detected,
!      diagnosed, and rejected as appropriate.  To match the C++ FE, do
!      not pass an error_mark_node when we found an undeclared variable.  */
    tree last_decl = lookup_last_decl (*node);
+   if (last_decl == error_mark_node)
+     last_decl = NULL_TREE;
    return decl_attributes (node, attributes, flags, last_decl);
  }
  
*************** start_decl (struct c_declarator *declara
*** 5679,5686 ****
        && DECL_DECLARED_INLINE_P (decl)
        && DECL_UNINLINABLE (decl)
        && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl)))
!     warning (OPT_Wattributes, "inline function %q+D given attribute %qs",
! 	     decl, "noinline");
  
    /* C99 6.7.4p3: An inline definition of a function with external
       linkage shall not contain a definition of a modifiable object
--- 5744,5754 ----
        && DECL_DECLARED_INLINE_P (decl)
        && DECL_UNINLINABLE (decl)
        && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl)))
!     {
!       auto_urlify_attributes sentinel;
!       warning (OPT_Wattributes, "inline function %q+D given attribute %qs",
! 	       decl, "noinline");
!     }
  
    /* C99 6.7.4p3: An inline definition of a function with external
       linkage shall not contain a definition of a modifiable object
*************** get_parm_array_spec (const struct c_parm
*** 6250,6264 ****
  	  for (tree type = parm->specs->type; TREE_CODE (type) == ARRAY_TYPE;
  	       type = TREE_TYPE (type))
  	    {
! 	      tree nelts = array_type_nelts (type);
! 	      if (error_operand_p (nelts))
  		return attrs;
! 	      if (TREE_CODE (nelts) != INTEGER_CST)
  		{
  		  /* Each variable VLA bound is represented by the dollar
  		     sign.  */
  		  spec += "$";
! 		  tpbnds = tree_cons (NULL_TREE, nelts, tpbnds);
  		}
  	    }
  	  tpbnds = nreverse (tpbnds);
--- 6318,6332 ----
  	  for (tree type = parm->specs->type; TREE_CODE (type) == ARRAY_TYPE;
  	       type = TREE_TYPE (type))
  	    {
! 	      tree nelts_minus_one = array_type_nelts_minus_one (type);
! 	      if (error_operand_p (nelts_minus_one))
  		return attrs;
! 	      if (TREE_CODE (nelts_minus_one) != INTEGER_CST)
  		{
  		  /* Each variable VLA bound is represented by the dollar
  		     sign.  */
  		  spec += "$";
! 		  tpbnds = tree_cons (NULL_TREE, nelts_minus_one, tpbnds);
  		}
  	    }
  	  tpbnds = nreverse (tpbnds);
*************** build_compound_literal (location_t loc,
*** 6460,6468 ****
      {
        int failure = complete_array_type (&TREE_TYPE (decl),
  					 DECL_INITIAL (decl), true);
!       /* If complete_array_type returns 3, it means that the
!          initial value of the compound literal is empty.  Allow it.  */
        gcc_assert (failure == 0 || failure == 3);
  
        type = TREE_TYPE (decl);
        TREE_TYPE (DECL_INITIAL (decl)) = type;
--- 6528,6541 ----
      {
        int failure = complete_array_type (&TREE_TYPE (decl),
  					 DECL_INITIAL (decl), true);
!       /* If complete_array_type returns 3, it means that the initial value of
!          the compound literal is empty.  Allow it with a pedwarn; in pre-C23
!          modes, the empty initializer itself has been diagnosed if pedantic so
!          does not need to be diagnosed again here.  */
        gcc_assert (failure == 0 || failure == 3);
+       if (failure == 3 && flag_isoc23)
+ 	pedwarn (loc, OPT_Wpedantic,
+ 		 "array of unknown size with empty initializer");
  
        type = TREE_TYPE (decl);
        TREE_TYPE (DECL_INITIAL (decl)) = type;
*************** grokdeclarator (const struct c_declarato
*** 6989,6995 ****
        && TYPE_QUALS (element_type))
      {
        orig_qual_type = type;
!       type = TYPE_MAIN_VARIANT (type);
      }
    type_quals = ((constp ? TYPE_QUAL_CONST : 0)
  		| (restrictp ? TYPE_QUAL_RESTRICT : 0)
--- 7062,7068 ----
        && TYPE_QUALS (element_type))
      {
        orig_qual_type = type;
!       type = c_build_qualified_type (type, TYPE_UNQUALIFIED);
      }
    type_quals = ((constp ? TYPE_QUAL_CONST : 0)
  		| (restrictp ? TYPE_QUAL_RESTRICT : 0)
*************** grokdeclarator (const struct c_declarato
*** 7157,7164 ****
  	  array_parm_static = false;
  	}
  
-       bool varmod = C_TYPE_VARIABLY_MODIFIED (type);
- 
        switch (declarator->kind)
  	{
  	case cdk_attrs:
--- 7230,7235 ----
*************** grokdeclarator (const struct c_declarato
*** 7189,7195 ****
  		else if (inner_decl->kind == cdk_array)
  		  attr_flags |= (int) ATTR_FLAG_ARRAY_NEXT;
  	      }
! 	    attrs = c_warn_type_attributes (attrs);
  	    returned_attrs = decl_attributes (&type,
  					      chainon (returned_attrs, attrs),
  					      attr_flags);
--- 7260,7266 ----
  		else if (inner_decl->kind == cdk_array)
  		  attr_flags |= (int) ATTR_FLAG_ARRAY_NEXT;
  	      }
! 	    attrs = c_warn_type_attributes (type, attrs);
  	    returned_attrs = decl_attributes (&type,
  					      chainon (returned_attrs, attrs),
  					      attr_flags);
*************** grokdeclarator (const struct c_declarato
*** 7440,7470 ****
  
  		/* ISO C99 Flexible array members are effectively
  		   identical to GCC's zero-length array extension.  */
! 		if (flexible_array_member || array_parm_vla_unspec_p)
! 		  itype = build_range_type (sizetype, size_zero_node,
! 					    NULL_TREE);
! 	      }
! 	    else if (decl_context == PARM)
! 	      {
! 		if (array_parm_vla_unspec_p)
! 		  {
! 		    itype = build_range_type (sizetype, size_zero_node, NULL_TREE);
! 		    size_varies = true;
! 		  }
  	      }
! 	    else if (decl_context == TYPENAME)
  	      {
! 		if (array_parm_vla_unspec_p)
! 		  {
! 		    /* C99 6.7.5.2p4 */
! 		    warning (0, "%<[*]%> not in a declaration");
! 		    /* We use this to avoid messing up with incomplete
! 		       array types of the same type, that would
! 		       otherwise be modified below.  */
! 		    itype = build_range_type (sizetype, size_zero_node,
! 					      NULL_TREE);
! 		    size_varies = true;
! 		  }
  	      }
  
  	    /* Complain about arrays of incomplete types.  */
--- 7511,7526 ----
  
  		/* ISO C99 Flexible array members are effectively
  		   identical to GCC's zero-length array extension.  */
! 		if (flexible_array_member)
! 		  itype = build_index_type (NULL_TREE);
  	      }
! 
! 	    if (array_parm_vla_unspec_p)
  	      {
! 		/* C99 6.7.5.2p4 */
! 		if (decl_context == TYPENAME)
! 		  warning (0, "%<[*]%> not in a declaration");
! 		size_varies = true;
  	      }
  
  	    /* Complain about arrays of incomplete types.  */
*************** grokdeclarator (const struct c_declarato
*** 7497,7522 ****
  	      {
  		addr_space_t as = DECODE_QUAL_ADDR_SPACE (type_quals);
  		if (!ADDR_SPACE_GENERIC_P (as) && as != TYPE_ADDR_SPACE (type))
! 		  type = build_qualified_type (type,
! 					       ENCODE_QUAL_ADDR_SPACE (as));
! 
! 		type = build_array_type (type, itype);
  	      }
  
  	    if (type != error_mark_node)
  	      {
- 		if (size_varies)
- 		  {
- 		    /* It is ok to modify type here even if itype is
- 		       NULL: if size_varies, we're in a
- 		       multi-dimensional array and the inner type has
- 		       variable size, so the enclosing shared array type
- 		       must too.  */
- 		    if (size && TREE_CODE (size) == INTEGER_CST)
- 		      type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
- 		    C_TYPE_VARIABLE_SIZE (type) = 1;
- 		  }
- 
  		/* The GCC extension for zero-length arrays differs from
  		   ISO flexible array members in that sizeof yields
  		   zero.  */
--- 7553,7568 ----
  	      {
  		addr_space_t as = DECODE_QUAL_ADDR_SPACE (type_quals);
  		if (!ADDR_SPACE_GENERIC_P (as) && as != TYPE_ADDR_SPACE (type))
! 		  type = c_build_qualified_type (type,
! 						 ENCODE_QUAL_ADDR_SPACE (as));
! 		if (array_parm_vla_unspec_p)
! 		  type = c_build_array_type_unspecified (type);
! 		else
! 		  type = c_build_array_type (type, itype);
  	      }
  
  	    if (type != error_mark_node)
  	      {
  		/* The GCC extension for zero-length arrays differs from
  		   ISO flexible array members in that sizeof yields
  		   zero.  */
*************** grokdeclarator (const struct c_declarato
*** 7528,7542 ****
  		    TYPE_SIZE_UNIT (type) = size_zero_node;
  		    SET_TYPE_STRUCTURAL_EQUALITY (type);
  		  }
- 		if (array_parm_vla_unspec_p)
- 		  {
- 		    gcc_assert (itype);
- 		    /* The type is complete.  C99 6.7.5.2p4  */
- 		    type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
- 		    TYPE_SIZE (type) = bitsize_zero_node;
- 		    TYPE_SIZE_UNIT (type) = size_zero_node;
- 		    SET_TYPE_STRUCTURAL_EQUALITY (type);
- 		  }
  
  		if (!valid_array_size_p (loc, type, name))
  		  type = error_mark_node;
--- 7574,7579 ----
*************** grokdeclarator (const struct c_declarato
*** 7659,7666 ****
  	      }
  	    type_quals = TYPE_UNQUALIFIED;
  
! 	    type = build_function_type (type, arg_types,
! 					arg_info->no_named_args_stdarg_p);
  	    declarator = declarator->declarator;
  
  	    /* Set the TYPE_CONTEXTs for each tagged type which is local to
--- 7696,7703 ----
  	      }
  	    type_quals = TYPE_UNQUALIFIED;
  
! 	    type = c_build_function_type (type, arg_types,
! 					  arg_info->no_named_args_stdarg_p);
  	    declarator = declarator->declarator;
  
  	    /* Set the TYPE_CONTEXTs for each tagged type which is local to
*************** grokdeclarator (const struct c_declarato
*** 7725,7732 ****
  	default:
  	  gcc_unreachable ();
  	}
-       if (type != error_mark_node)
- 	C_TYPE_VARIABLY_MODIFIED (type) = varmod || size_varies;
      }
    *decl_attrs = chainon (returned_attrs, *decl_attrs);
    *decl_attrs = chainon (decl_id_attrs, *decl_attrs);
--- 7762,7767 ----
*************** grokdeclarator (const struct c_declarato
*** 8049,8055 ****
  	if (TREE_CODE (type) == FUNCTION_TYPE)
  	  {
  	    error_at (loc, "field %qE declared as a function", name);
! 	    type = build_pointer_type (type);
  	  }
  	else if (TREE_CODE (type) != ERROR_MARK
  		 && !COMPLETE_OR_UNBOUND_ARRAY_TYPE_P (type))
--- 8084,8090 ----
  	if (TREE_CODE (type) == FUNCTION_TYPE)
  	  {
  	    error_at (loc, "field %qE declared as a function", name);
! 	    type = c_build_pointer_type (type);
  	  }
  	else if (TREE_CODE (type) != ERROR_MARK
  		 && !COMPLETE_OR_UNBOUND_ARRAY_TYPE_P (type))
*************** grokparms (struct c_arg_info *arg_info,
*** 8448,8454 ****
  	  && !arg_types
  	  && !arg_info->parms
  	  && !arg_info->no_named_args_stdarg_p)
! 	arg_types = arg_info->types = void_list_node;
  
        /* If there is a parameter of incomplete type in a definition,
  	 this is an error.  In a declaration this is valid, and a
--- 8483,8492 ----
  	  && !arg_types
  	  && !arg_info->parms
  	  && !arg_info->no_named_args_stdarg_p)
! 	{
! 	  arg_types = arg_info->types = void_list_node;
! 	  arg_info->c23_empty_parens = 1;
! 	}
  
        /* If there is a parameter of incomplete type in a definition,
  	 this is an error.  In a declaration this is valid, and a
*************** grokparms (struct c_arg_info *arg_info,
*** 8456,8463 ****
  	 or definition of the function.  In the case where the tag was
  	 first declared within the parameter list, a warning has
  	 already been given.  If a parameter has void type, then
! 	 however the function cannot be defined or called, so
! 	 warn.  */
  
        for (parm = arg_info->parms, typelt = arg_types, parmno = 1;
  	   parm;
--- 8494,8501 ----
  	 or definition of the function.  In the case where the tag was
  	 first declared within the parameter list, a warning has
  	 already been given.  If a parameter has void type, then
! 	 this has already received an error (constraint violation in C2Y,
! 	 previously implicitly undefined behavior).  */
  
        for (parm = arg_info->parms, typelt = arg_types, parmno = 1;
  	   parm;
*************** grokparms (struct c_arg_info *arg_info,
*** 8484,8500 ****
  		  TREE_TYPE (parm) = error_mark_node;
  		  arg_types = NULL_TREE;
  		}
- 	      else if (VOID_TYPE_P (type))
- 		{
- 		  if (DECL_NAME (parm))
- 		    warning_at (input_location, 0,
- 				"parameter %u (%q+D) has void type",
- 				parmno, parm);
- 		  else
- 		    warning_at (DECL_SOURCE_LOCATION (parm), 0,
- 				"parameter %u has void type",
- 				parmno);
- 		}
  	    }
  
  	  if (DECL_NAME (parm) && TREE_USED (parm))
--- 8522,8527 ----
*************** build_arg_info (void)
*** 8518,8523 ****
--- 8545,8551 ----
    ret->pending_sizes = NULL;
    ret->had_vla_unspec = 0;
    ret->no_named_args_stdarg_p = 0;
+   ret->c23_empty_parens = 0;
    return ret;
  }
  
*************** get_parm_info (bool ellipsis, tree expr)
*** 8602,8613 ****
  	  if (TREE_ASM_WRITTEN (decl))
  	    error_at (b->locus,
  		      "parameter %q+D has just a forward declaration", decl);
! 	  /* Check for (..., void, ...) and issue an error.  */
! 	  else if (VOID_TYPE_P (type) && !DECL_NAME (decl))
  	    {
  	      if (!gave_void_only_once_err)
  		{
! 		  error_at (b->locus, "%<void%> must be the only parameter");
  		  gave_void_only_once_err = true;
  		}
  	    }
--- 8630,8643 ----
  	  if (TREE_ASM_WRITTEN (decl))
  	    error_at (b->locus,
  		      "parameter %q+D has just a forward declaration", decl);
! 	  /* Check for (..., void, ...) and named void parameters and issue an
! 	     error.  */
! 	  else if (VOID_TYPE_P (type))
  	    {
  	      if (!gave_void_only_once_err)
  		{
! 		  error_at (b->locus,
! 			    "%<void%> must be the only parameter and unnamed");
  		  gave_void_only_once_err = true;
  		}
  	    }
*************** get_parm_info (bool ellipsis, tree expr)
*** 8647,8653 ****
  	      if (b->id)
  		{
  		  /* The %s will be one of 'struct', 'union', or 'enum'.  */
! 		  if (!flag_isoc23)
  		    warning_at (b->locus, 0,
  				"%<%s %E%> declared inside parameter list"
  				" will not be visible outside of this definition or"
--- 8677,8683 ----
  	      if (b->id)
  		{
  		  /* The %s will be one of 'struct', 'union', or 'enum'.  */
! 		  if (!flag_isoc23 || !COMPLETE_TYPE_P (decl))
  		    warning_at (b->locus, 0,
  				"%<%s %E%> declared inside parameter list"
  				" will not be visible outside of this definition or"
*************** parser_xref_tag (location_t loc, enum tr
*** 8811,8817 ****
       the forward-reference will be altered into a real type.  */
  
    ref = make_node (code);
!   if (flag_isoc23 && code != ENUMERAL_TYPE)
      SET_TYPE_STRUCTURAL_EQUALITY (ref);
    if (code == ENUMERAL_TYPE)
      {
--- 8841,8847 ----
       the forward-reference will be altered into a real type.  */
  
    ref = make_node (code);
!   if (flag_isoc23 || code == ENUMERAL_TYPE)
      SET_TYPE_STRUCTURAL_EQUALITY (ref);
    if (code == ENUMERAL_TYPE)
      {
*************** start_struct (location_t loc, enum tree_
*** 8925,8930 ****
--- 8955,8961 ----
  
    *enclosing_struct_parse_info = struct_parse_info;
    struct_parse_info = new c_struct_parse_info ();
+   struct_parse_info->refloc = refloc;
  
    /* FIXME: This will issue a warning for a use of a type defined
       within a statement expr used within sizeof, et. al.  This is not
*************** is_flexible_array_member_p (bool is_last
*** 9323,9329 ****
  
    bool is_zero_length_array = zero_length_array_type_p (TREE_TYPE (x));
    bool is_one_element_array = one_element_array_type_p (TREE_TYPE (x));
!   bool is_flexible_array = flexible_array_member_type_p (TREE_TYPE (x));
  
    unsigned int strict_flex_array_level = c_strict_flex_array_level_of (x);
  
--- 9354,9360 ----
  
    bool is_zero_length_array = zero_length_array_type_p (TREE_TYPE (x));
    bool is_one_element_array = one_element_array_type_p (TREE_TYPE (x));
!   bool is_flexible_array = c_flexible_array_member_type_p (TREE_TYPE (x));
  
    unsigned int strict_flex_array_level = c_strict_flex_array_level_of (x);
  
*************** c_update_type_canonical (tree t)
*** 9373,9379 ****
  	  else
  	    {
  	      tree
! 		c = build_qualified_type (TYPE_CANONICAL (t), TYPE_QUALS (x));
  	      if (TYPE_STRUCTURAL_EQUALITY_P (c))
  		{
  		  gcc_checking_assert (TYPE_CANONICAL (t) == t);
--- 9404,9410 ----
  	  else
  	    {
  	      tree
! 		c = c_build_qualified_type (TYPE_CANONICAL (t), TYPE_QUALS (x));
  	      if (TYPE_STRUCTURAL_EQUALITY_P (c))
  		{
  		  gcc_checking_assert (TYPE_CANONICAL (t) == t);
*************** c_update_type_canonical (tree t)
*** 9408,9415 ****
  	    continue;
  	  if (TYPE_CANONICAL (x) != x || TYPE_REF_CAN_ALIAS_ALL (p))
  	    TYPE_CANONICAL (p)
! 	      = build_pointer_type_for_mode (TYPE_CANONICAL (x), TYPE_MODE (p),
! 					     false);
  	  else
  	    TYPE_CANONICAL (p) = p;
  	  c_update_type_canonical (p);
--- 9439,9446 ----
  	    continue;
  	  if (TYPE_CANONICAL (x) != x || TYPE_REF_CAN_ALIAS_ALL (p))
  	    TYPE_CANONICAL (p)
! 	      = c_build_pointer_type_for_mode (TYPE_CANONICAL (x), TYPE_MODE (p),
! 					       false);
  	  else
  	    TYPE_CANONICAL (p) = p;
  	  c_update_type_canonical (p);
*************** c_update_type_canonical (tree t)
*** 9417,9422 ****
--- 9448,9506 ----
      }
  }
  
+ /* Verify the argument of the counted_by attribute of the flexible array
+    member FIELD_DECL is a valid field of the containing structure,
+    STRUCT_TYPE, Report error and remove this attribute when it's not.  */
+ 
+ static void
+ verify_counted_by_attribute (tree struct_type, tree field_decl)
+ {
+   tree attr_counted_by = lookup_attribute ("counted_by",
+ 					   DECL_ATTRIBUTES (field_decl));
+ 
+   if (!attr_counted_by)
+     return;
+ 
+   /* If there is an counted_by attribute attached to the field,
+      verify it.  */
+ 
+   tree fieldname = TREE_VALUE (TREE_VALUE (attr_counted_by));
+ 
+   /* Verify the argument of the attrbute is a valid field of the
+      containing structure.  */
+ 
+   tree counted_by_field = lookup_field (struct_type, fieldname);
+ 
+   /* Error when the field is not found in the containing structure and
+      remove the corresponding counted_by attribute from the field_decl.  */
+   if (!counted_by_field)
+     {
+       error_at (DECL_SOURCE_LOCATION (field_decl),
+ 		"argument %qE to the %<counted_by%> attribute"
+ 		" is not a field declaration in the same structure"
+ 		" as %qD", fieldname, field_decl);
+       DECL_ATTRIBUTES (field_decl)
+ 	= remove_attribute ("counted_by", DECL_ATTRIBUTES (field_decl));
+     }
+   else
+   /* Error when the field is not with an integer type.  */
+     {
+       while (TREE_CHAIN (counted_by_field))
+ 	counted_by_field = TREE_CHAIN (counted_by_field);
+       tree real_field = TREE_VALUE (counted_by_field);
+ 
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (real_field)))
+ 	{
+ 	  error_at (DECL_SOURCE_LOCATION (field_decl),
+ 		    "argument %qE to the %<counted_by%> attribute"
+ 		    " is not a field declaration with an integer type",
+ 		    fieldname);
+ 	  DECL_ATTRIBUTES (field_decl)
+ 	    = remove_attribute ("counted_by", DECL_ATTRIBUTES (field_decl));
+ 	}
+     }
+ }
+ 
  /* TYPE is a struct or union that we're applying may_alias to after the body is
     parsed.  Fixup any POINTER_TO types.  */
  
*************** finish_struct (location_t loc, tree t, t
*** 9488,9493 ****
--- 9572,9578 ----
       until now.)  */
  
    bool saw_named_field = false;
+   tree counted_by_fam_field = NULL_TREE;
    for (x = fieldlist; x; x = DECL_CHAIN (x))
      {
        /* Whether this field is the last field of the structure or union.
*************** finish_struct (location_t loc, tree t, t
*** 9548,9561 ****
  	DECL_PACKED (x) = 1;
  
        /* Detect flexible array member in an invalid context.  */
!       if (flexible_array_member_type_p (TREE_TYPE (x)))
  	{
  	  if (TREE_CODE (t) == UNION_TYPE)
! 	    {
! 	      error_at (DECL_SOURCE_LOCATION (x),
! 			"flexible array member in union");
! 	      TREE_TYPE (x) = error_mark_node;
! 	    }
  	  else if (!is_last_field)
  	    {
  	      error_at (DECL_SOURCE_LOCATION (x),
--- 9633,9643 ----
  	DECL_PACKED (x) = 1;
  
        /* Detect flexible array member in an invalid context.  */
!       if (c_flexible_array_member_type_p (TREE_TYPE (x)))
  	{
  	  if (TREE_CODE (t) == UNION_TYPE)
! 	    pedwarn (DECL_SOURCE_LOCATION (x), OPT_Wpedantic,
! 		     "flexible array member in union is a GCC extension");
  	  else if (!is_last_field)
  	    {
  	      error_at (DECL_SOURCE_LOCATION (x),
*************** finish_struct (location_t loc, tree t, t
*** 9563,9574 ****
  	      TREE_TYPE (x) = error_mark_node;
  	    }
  	  else if (!saw_named_field)
! 	    {
! 	      error_at (DECL_SOURCE_LOCATION (x),
! 			"flexible array member in a struct with no named "
! 			"members");
! 	      TREE_TYPE (x) = error_mark_node;
! 	    }
  	}
  
        if (pedantic && TREE_CODE (t) == RECORD_TYPE
--- 9645,9659 ----
  	      TREE_TYPE (x) = error_mark_node;
  	    }
  	  else if (!saw_named_field)
! 	    pedwarn (DECL_SOURCE_LOCATION (x), OPT_Wpedantic,
! 		     "flexible array member in a struct with no named "
! 		     "members is a GCC extension");
! 
! 	  /* If there is a counted_by attribute attached to this field,
! 	     record it here and do more verification later after the
! 	     whole structure is complete.  */
! 	  if (lookup_attribute ("counted_by", DECL_ATTRIBUTES (x)))
! 	    counted_by_fam_field = x;
  	}
  
        if (pedantic && TREE_CODE (t) == RECORD_TYPE
*************** finish_struct (location_t loc, tree t, t
*** 9583,9589 ****
  	 when x is an array and is the last field.  */
        if (TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE)
  	TYPE_INCLUDES_FLEXARRAY (t)
! 	  = is_last_field && flexible_array_member_type_p (TREE_TYPE (x));
        /* Recursively set TYPE_INCLUDES_FLEXARRAY for the context of x, t
  	 when x is an union or record and is the last field.  */
        else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (x)))
--- 9668,9674 ----
  	 when x is an array and is the last field.  */
        if (TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE)
  	TYPE_INCLUDES_FLEXARRAY (t)
! 	  = is_last_field && c_flexible_array_member_type_p (TREE_TYPE (x));
        /* Recursively set TYPE_INCLUDES_FLEXARRAY for the context of x, t
  	 when x is an union or record and is the last field.  */
        else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (x)))
*************** finish_struct (location_t loc, tree t, t
*** 9602,9607 ****
--- 9687,9696 ----
        if (DECL_NAME (x)
  	  || RECORD_OR_UNION_TYPE_P (TREE_TYPE (x)))
  	saw_named_field = true;
+ 
+       if (AGGREGATE_TYPE_P (TREE_TYPE (x))
+ 	  && TYPE_TYPELESS_STORAGE (TREE_TYPE (x)))
+ 	TYPE_TYPELESS_STORAGE (t) = true;
      }
  
    detect_field_duplicates (fieldlist);
*************** finish_struct (location_t loc, tree t, t
*** 9761,9772 ****
  	  && TREE_CODE (vistype) == TREE_CODE (t)
  	  && !C_TYPE_BEING_DEFINED (vistype))
  	{
! 	  TYPE_STUB_DECL (vistype) = TYPE_STUB_DECL (t);
  	  if (c_type_variably_modified_p (t))
! 	    error ("redefinition of struct or union %qT with variably "
! 		   "modified type", t);
  	  else if (!comptypes_same_p (t, vistype))
! 	    error ("redefinition of struct or union %qT", t);
  	}
      }
  
--- 9850,9869 ----
  	  && TREE_CODE (vistype) == TREE_CODE (t)
  	  && !C_TYPE_BEING_DEFINED (vistype))
  	{
! 	  TYPE_STUB_DECL (t) = TYPE_STUB_DECL (vistype);
  	  if (c_type_variably_modified_p (t))
! 	    {
! 	      error ("redefinition of struct or union %qT with variably "
! 		     "modified type", t);
! 	      if (struct_parse_info->refloc != UNKNOWN_LOCATION)
! 		inform (struct_parse_info->refloc, "originally defined here");
! 	    }
  	  else if (!comptypes_same_p (t, vistype))
! 	    {
! 	      error ("redefinition of struct or union %qT", t);
! 	      if (struct_parse_info->refloc != UNKNOWN_LOCATION)
! 		inform (struct_parse_info->refloc, "originally defined here");
! 	    }
  	}
      }
  
*************** finish_struct (location_t loc, tree t, t
*** 9777,9783 ****
        c_fixup_may_alias (x);
  
    /* Set type canonical based on equivalence class.  */
!   if (flag_isoc23)
      {
        if (c_struct_htab == NULL)
  	c_struct_htab = hash_table<c_struct_hasher>::create_ggc (61);
--- 9874,9880 ----
        c_fixup_may_alias (x);
  
    /* Set type canonical based on equivalence class.  */
!   if (flag_isoc23 && !C_TYPE_VARIABLE_SIZE (t))
      {
        if (c_struct_htab == NULL)
  	c_struct_htab = hash_table<c_struct_hasher>::create_ggc (61);
*************** finish_struct (location_t loc, tree t, t
*** 9785,9790 ****
--- 9882,9890 ----
        hashval_t hash = c_struct_hasher::hash (t);
  
        gcc_checking_assert (TYPE_STRUCTURAL_EQUALITY_P (t));
+       gcc_checking_assert (!TYPE_NAME (t)
+ 			   || TREE_CODE (TYPE_NAME (t)) == IDENTIFIER_NODE);
+ 
        tree *e = c_struct_htab->find_slot_with_hash (t, hash, INSERT);
        if (*e)
  	TYPE_CANONICAL (t) = *e;
*************** finish_struct (location_t loc, tree t, t
*** 9802,9807 ****
--- 9902,9908 ----
        TYPE_FIELDS (x) = TYPE_FIELDS (t);
        TYPE_LANG_SPECIFIC (x) = TYPE_LANG_SPECIFIC (t);
        TYPE_TRANSPARENT_AGGR (x) = TYPE_TRANSPARENT_AGGR (t);
+       TYPE_TYPELESS_STORAGE (x) = TYPE_TYPELESS_STORAGE (t);
        C_TYPE_FIELDS_READONLY (x) = C_TYPE_FIELDS_READONLY (t);
        C_TYPE_FIELDS_VOLATILE (x) = C_TYPE_FIELDS_VOLATILE (t);
        C_TYPE_FIELDS_NON_CONSTEXPR (x) = C_TYPE_FIELDS_NON_CONSTEXPR (t);
*************** finish_struct (location_t loc, tree t, t
*** 9844,9849 ****
--- 9945,9953 ----
  	struct_parse_info->struct_types.safe_push (t);
       }
  
+   if (counted_by_fam_field)
+     verify_counted_by_attribute (t, counted_by_fam_field);
+ 
    return t;
  }
  
*************** start_enum (location_t loc, struct c_enu
*** 9947,9952 ****
--- 10051,10057 ----
      {
        enumtype = make_node (ENUMERAL_TYPE);
        TYPE_SIZE (enumtype) = NULL_TREE;
+       SET_TYPE_STRUCTURAL_EQUALITY (enumtype);
        pushtag (loc, name, enumtype);
        if (fixed_underlying_type != NULL_TREE)
  	{
*************** start_enum (location_t loc, struct c_enu
*** 9963,9968 ****
--- 10068,10075 ----
  	  TYPE_SIZE (enumtype) = NULL_TREE;
  	  TYPE_PRECISION (enumtype) = TYPE_PRECISION (fixed_underlying_type);
  	  ENUM_UNDERLYING_TYPE (enumtype) = fixed_underlying_type;
+ 	  TYPE_CANONICAL (enumtype) = TYPE_CANONICAL (fixed_underlying_type);
+ 	  c_update_type_canonical (enumtype);
  	  layout_type (enumtype);
  	}
      }
*************** finish_enum (tree enumtype, tree values,
*** 10122,10127 ****
--- 10229,10238 ----
        ENUM_UNDERLYING_TYPE (enumtype) =
  	c_common_type_for_size (TYPE_PRECISION (tem), TYPE_UNSIGNED (tem));
  
+       TYPE_CANONICAL (enumtype) =
+ 	TYPE_CANONICAL (ENUM_UNDERLYING_TYPE (enumtype));
+       c_update_type_canonical (enumtype);
+ 
        layout_type (enumtype);
      }
  
*************** finish_enum (tree enumtype, tree values,
*** 10214,10220 ****
  	  && TREE_CODE (vistype) == TREE_CODE (enumtype)
  	  && !C_TYPE_BEING_DEFINED (vistype))
  	{
! 	  TYPE_STUB_DECL (vistype) = TYPE_STUB_DECL (enumtype);
  	  if (!comptypes_same_p (enumtype, vistype))
  	    error("conflicting redefinition of enum %qT", enumtype);
  	}
--- 10325,10331 ----
  	  && TREE_CODE (vistype) == TREE_CODE (enumtype)
  	  && !C_TYPE_BEING_DEFINED (vistype))
  	{
! 	  TYPE_STUB_DECL (enumtype) = TYPE_STUB_DECL (vistype);
  	  if (!comptypes_same_p (enumtype, vistype))
  	    error("conflicting redefinition of enum %qT", enumtype);
  	}
*************** build_enumerator (location_t decl_loc, l
*** 10237,10242 ****
--- 10348,10354 ----
  		  struct c_enum_contents *the_enum, tree name, tree value)
  {
    tree decl;
+   tree old_decl;
  
    /* Validate and default VALUE.  */
  
*************** build_enumerator (location_t decl_loc, l
*** 10296,10301 ****
--- 10408,10430 ----
  	 definition.  */
        value = convert (the_enum->enum_type, value);
      }
+   else if (flag_isoc23
+ 	   && (old_decl = lookup_name_in_scope (name, current_scope))
+ 	   && old_decl != error_mark_node
+ 	   && TREE_TYPE (old_decl)
+ 	   && TREE_TYPE (TREE_TYPE (old_decl))
+ 	   && TREE_CODE (old_decl) == CONST_DECL)
+     {
+       /* Enumeration constants in a redeclaration have the previous type.  */
+       tree previous_type = TREE_TYPE (DECL_INITIAL (old_decl));
+       if (!int_fits_type_p (value, previous_type))
+ 	{
+ 	  error_at (loc, "value of redeclared enumerator outside the range "
+ 			 "of %qT", previous_type);
+ 	  locate_old_decl (old_decl);
+ 	}
+       value = convert (previous_type, value);
+     }
    else
      {
        /* Even though the underlying type of an enum is unspecified, the
*************** build_enumerator (location_t decl_loc, l
*** 10362,10370 ****
  			     false);
      }
    else
!     the_enum->enum_next_value
!       = build_binary_op (EXPR_LOC_OR_LOC (value, input_location),
! 			 PLUS_EXPR, value, integer_one_node, false);
    the_enum->enum_overflow = tree_int_cst_lt (the_enum->enum_next_value, value);
    if (the_enum->enum_overflow
        && !ENUM_FIXED_UNDERLYING_TYPE_P (the_enum->enum_type))
--- 10491,10504 ----
  			     false);
      }
    else
!     {
!       /* In a redeclaration the type can already be the enumeral type.  */
!       if (TREE_CODE (TREE_TYPE (value)) == ENUMERAL_TYPE)
! 	value = convert (ENUM_UNDERLYING_TYPE (TREE_TYPE (value)), value);
!       the_enum->enum_next_value
! 	= build_binary_op (EXPR_LOC_OR_LOC (value, input_location),
! 			   PLUS_EXPR, value, integer_one_node, false);
!     }
    the_enum->enum_overflow = tree_int_cst_lt (the_enum->enum_next_value, value);
    if (the_enum->enum_overflow
        && !ENUM_FIXED_UNDERLYING_TYPE_P (the_enum->enum_type))
*************** start_function (struct c_declspecs *decl
*** 10524,10532 ****
    if (DECL_DECLARED_INLINE_P (decl1)
        && DECL_UNINLINABLE (decl1)
        && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl1)))
!     warning_at (loc, OPT_Wattributes,
! 		"inline function %qD given attribute %qs",
! 		decl1, "noinline");
  
    /* Handle gnu_inline attribute.  */
    if (declspecs->inline_p
--- 10658,10669 ----
    if (DECL_DECLARED_INLINE_P (decl1)
        && DECL_UNINLINABLE (decl1)
        && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl1)))
!     {
!       auto_urlify_attributes sentinel;
!       warning_at (loc, OPT_Wattributes,
! 		  "inline function %qD given attribute %qs",
! 		  decl1, "noinline");
!     }
  
    /* Handle gnu_inline attribute.  */
    if (declspecs->inline_p
*************** start_function (struct c_declspecs *decl
*** 10546,10554 ****
        error_at (loc, "return type is an incomplete type");
        /* Make it return void instead.  */
        TREE_TYPE (decl1)
! 	= build_function_type (void_type_node,
! 			       TYPE_ARG_TYPES (TREE_TYPE (decl1)),
! 			       TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (decl1)));
      }
  
    if (warn_about_return_type)
--- 10683,10691 ----
        error_at (loc, "return type is an incomplete type");
        /* Make it return void instead.  */
        TREE_TYPE (decl1)
! 	= c_build_function_type (void_type_node,
! 				 TYPE_ARG_TYPES (TREE_TYPE (decl1)),
! 				 TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (decl1)));
      }
  
    if (warn_about_return_type)
*************** start_function (struct c_declspecs *decl
*** 10626,10631 ****
--- 10763,10786 ----
  	}
      }
  
+   /* Optionally warn about C23 compatibility.  */
+   if (warn_deprecated_non_prototype
+       && old_decl != NULL_TREE
+       && TREE_CODE (oldtype) == FUNCTION_TYPE
+       && !TYPE_ARG_TYPES (oldtype)
+       && !TYPE_NO_NAMED_ARGS_STDARG_P (oldtype)
+       && (TYPE_ARG_TYPES (newtype)
+ 	  && TREE_VALUE (TYPE_ARG_TYPES (newtype)) != void_type_node))
+     {
+       bool warned = warning_at (loc, OPT_Wdeprecated_non_prototype,
+ 				"ISO C23 does not allow defining"
+ 				" parameters for function %qE declared"
+ 				" without parameters",
+ 				decl1);
+       if (warned)
+ 	inform (DECL_SOURCE_LOCATION (old_decl), "declared here");
+     }
+ 
    /* Optionally warn of old-fashioned def with no previous prototype.  */
    if (warn_strict_prototypes
        && old_decl != error_mark_node
*************** store_parm_decls_newstyle (tree fndecl,
*** 10760,10766 ****
       its parameter list).  */
    else if (!in_system_header_at (input_location)
  	   && !current_function_scope
! 	   && arg_info->types != error_mark_node)
      warning_at (DECL_SOURCE_LOCATION (fndecl), OPT_Wtraditional,
  		"traditional C rejects ISO C style function definitions");
  
--- 10915,10922 ----
       its parameter list).  */
    else if (!in_system_header_at (input_location)
  	   && !current_function_scope
! 	   && arg_info->types != error_mark_node
! 	   && !arg_info->c23_empty_parens)
      warning_at (DECL_SOURCE_LOCATION (fndecl), OPT_Wtraditional,
  		"traditional C rejects ISO C style function definitions");
  
*************** store_parm_decls_newstyle (tree fndecl,
*** 10778,10784 ****
  	    warn_if_shadowing (decl);
  	}
        else
! 	pedwarn_c11 (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic,
  		     "ISO C does not support omitting parameter names in "
  		     "function definitions before C23");
      }
--- 10934,10940 ----
  	    warn_if_shadowing (decl);
  	}
        else
! 	pedwarn_c11 (DECL_SOURCE_LOCATION (decl), OPT_Wmissing_parameter_name,
  		     "ISO C does not support omitting parameter names in "
  		     "function definitions before C23");
      }
*************** void
*** 11253,11259 ****
  finish_function (location_t end_loc)
  {
    tree fndecl = current_function_decl;
!   
    if (c_dialect_objc ())
      objc_finish_function ();
  
--- 11409,11415 ----
  finish_function (location_t end_loc)
  {
    tree fndecl = current_function_decl;
! 
    if (c_dialect_objc ())
      objc_finish_function ();
  
*************** c_push_function_context (void)
*** 11529,11534 ****
--- 11685,11694 ----
    c_stmt_tree.x_cur_stmt_list = vec_safe_copy (c_stmt_tree.x_cur_stmt_list);
    p->x_in_statement = in_statement;
    p->x_switch_stack = c_switch_stack;
+   p->loop_names = loop_names;
+   loop_names = vNULL;
+   p->loop_names_hash = loop_names_hash;
+   loop_names_hash = NULL;
    p->arg_info = current_function_arg_info;
    p->returns_value = current_function_returns_value;
    p->returns_null = current_function_returns_null;
*************** c_pop_function_context (void)
*** 11568,11573 ****
--- 11728,11739 ----
    p->base.x_stmt_tree.x_cur_stmt_list = NULL;
    in_statement = p->x_in_statement;
    c_switch_stack = p->x_switch_stack;
+   loop_names.release ();
+   loop_names = p->loop_names;
+   p->loop_names = vNULL;
+   delete loop_names_hash;
+   loop_names_hash = p->loop_names_hash;
+   p->loop_names_hash = NULL;
    current_function_arg_info = p->arg_info;
    current_function_returns_value = p->returns_value;
    current_function_returns_null = p->returns_null;
*************** identifier_global_tag (tree t)
*** 11618,11627 ****
    return NULL_TREE;
  }
  
! /* Returns true if NAME refers to a built-in function or function-like
!    operator.  */
  
! bool
  names_builtin_p (const char *name)
  {
    tree id = get_identifier (name);
--- 11784,11793 ----
    return NULL_TREE;
  }
  
! /* Returns non-zero (result of __has_builtin) if NAME refers to a built-in
!    function or function-like operator.  */
  
! int
  names_builtin_p (const char *name)
  {
    tree id = get_identifier (name);
*************** names_builtin_p (const char *name)
*** 11638,11652 ****
      case RID_BUILTIN_SHUFFLE:
      case RID_BUILTIN_SHUFFLEVECTOR:
      case RID_BUILTIN_STDC:
      case RID_CHOOSE_EXPR:
      case RID_OFFSETOF:
      case RID_TYPES_COMPATIBLE_P:
!       return true;
      default:
        break;
      }
  
!   return false;
  }
  
  /* In C, the only C-linkage public declaration is at file scope.  */
--- 11804,11821 ----
      case RID_BUILTIN_SHUFFLE:
      case RID_BUILTIN_SHUFFLEVECTOR:
      case RID_BUILTIN_STDC:
+     case RID_BUILTIN_COUNTED_BY_REF:
      case RID_CHOOSE_EXPR:
      case RID_OFFSETOF:
      case RID_TYPES_COMPATIBLE_P:
!     case RID_C23_VA_START:
!     case RID_VA_ARG:
!       return 1;
      default:
        break;
      }
  
!   return 0;
  }
  
  /* In C, the only C-linkage public declaration is at file scope.  */
*************** declspecs_add_type (location_t loc, stru
*** 11986,11991 ****
--- 12155,12164 ----
  		error_at (loc,
  			  ("both %<long%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<long%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else
  		{
  		  specs->long_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12051,12056 ****
--- 12224,12233 ----
  		error_at (loc,
  			  ("both %<short%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<short%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else
  		{
  		  specs->short_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12103,12108 ****
--- 12280,12289 ----
  		error_at (loc,
  			  ("both %<signed%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<signed%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else
  		{
  		  specs->signed_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12155,12160 ****
--- 12336,12345 ----
  		error_at (loc,
  			  ("both %<unsigned%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<unsigned%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else
  		{
  		  specs->unsigned_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12194,12199 ****
--- 12379,12388 ----
  		error_at (loc,
  			  ("both %<complex%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<complex%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_fract)
  		error_at (loc,
  			  ("both %<complex%> and %<_Fract%> in "
*************** declspecs_add_type (location_t loc, stru
*** 12275,12280 ****
--- 12464,12473 ----
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Decimal128%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_dfloat64x)
+ 		error_at (loc,
+ 			  ("both %<_Sat%> and %<_Decimal64x%> in "
+ 			   "declaration specifiers"));
  	      else if (specs->complex_p)
  		error_at (loc,
  			  ("both %<_Sat%> and %<complex%> in "
*************** declspecs_add_type (location_t loc, stru
*** 12302,12309 ****
  	     "__auto_type".  */
  	  if (specs->typespec_word != cts_none)
  	    {
! 	      error_at (loc,
! 			"two or more data types in declaration specifiers");
  	      return specs;
  	    }
  	  switch (i)
--- 12495,12516 ----
  	     "__auto_type".  */
  	  if (specs->typespec_word != cts_none)
  	    {
! 	      if (i == RID_BOOL)
! 		{
! 		  auto_diagnostic_group d;
! 		  if (specs->storage_class == csc_typedef)
! 		    error_at (loc,
! 			      "%qs cannot be defined via %<typedef%>",
! 			      IDENTIFIER_POINTER (type));
! 		  else
! 		    error_at (loc,
! 			      "%qs cannot be used here",
! 			      IDENTIFIER_POINTER (type));
! 		  add_note_about_new_keyword (loc, type);
! 		}
! 	      else
! 		error_at (loc,
! 			  "two or more data types in declaration specifiers");
  	      return specs;
  	    }
  	  switch (i)
*************** declspecs_add_type (location_t loc, stru
*** 12600,12613 ****
  	    case RID_DFLOAT32:
  	    case RID_DFLOAT64:
  	    case RID_DFLOAT128:
  	      {
  		const char *str;
  		if (i == RID_DFLOAT32)
  		  str = "_Decimal32";
  		else if (i == RID_DFLOAT64)
  		  str = "_Decimal64";
! 		else
  		  str = "_Decimal128";
  		if (specs->long_long_p)
  		  error_at (loc,
  			    ("both %<long long%> and %qs in "
--- 12807,12823 ----
  	    case RID_DFLOAT32:
  	    case RID_DFLOAT64:
  	    case RID_DFLOAT128:
+ 	    case RID_DFLOAT64X:
  	      {
  		const char *str;
  		if (i == RID_DFLOAT32)
  		  str = "_Decimal32";
  		else if (i == RID_DFLOAT64)
  		  str = "_Decimal64";
! 		else if (i == RID_DFLOAT128)
  		  str = "_Decimal128";
+ 		else
+ 		  str = "_Decimal64x";
  		if (specs->long_long_p)
  		  error_at (loc,
  			    ("both %<long long%> and %qs in "
*************** declspecs_add_type (location_t loc, stru
*** 12647,12654 ****
  		  specs->typespec_word = cts_dfloat32;
  		else if (i == RID_DFLOAT64)
  		  specs->typespec_word = cts_dfloat64;
! 		else
  		  specs->typespec_word = cts_dfloat128;
  		specs->locations[cdw_typespec] = loc;
  	      }
  	      if (!targetm.decimal_float_supported_p ())
--- 12857,12866 ----
  		  specs->typespec_word = cts_dfloat32;
  		else if (i == RID_DFLOAT64)
  		  specs->typespec_word = cts_dfloat64;
! 		else if (i == RID_DFLOAT128)
  		  specs->typespec_word = cts_dfloat128;
+ 		else
+ 		  specs->typespec_word = cts_dfloat64x;
  		specs->locations[cdw_typespec] = loc;
  	      }
  	      if (!targetm.decimal_float_supported_p ())
*************** finish_declspecs (struct c_declspecs *sp
*** 13217,13222 ****
--- 13429,13435 ----
      case cts_dfloat32:
      case cts_dfloat64:
      case cts_dfloat128:
+     case cts_dfloat64x:
        gcc_assert (!specs->long_p && !specs->long_long_p && !specs->short_p
  		  && !specs->signed_p && !specs->unsigned_p && !specs->complex_p);
        if (!targetm.decimal_float_supported_p ())
*************** finish_declspecs (struct c_declspecs *sp
*** 13225,13232 ****
  	specs->type = dfloat32_type_node;
        else if (specs->typespec_word == cts_dfloat64)
  	specs->type = dfloat64_type_node;
!       else
  	specs->type = dfloat128_type_node;
        break;
      case cts_fract:
        gcc_assert (!specs->complex_p);
--- 13438,13447 ----
  	specs->type = dfloat32_type_node;
        else if (specs->typespec_word == cts_dfloat64)
  	specs->type = dfloat64_type_node;
!       else if (specs->typespec_word == cts_dfloat128)
  	specs->type = dfloat128_type_node;
+       else
+ 	specs->type = dfloat64x_type_node;
        break;
      case cts_fract:
        gcc_assert (!specs->complex_p);
*************** finish_declspecs (struct c_declspecs *sp
*** 13343,13349 ****
   handle_postfix_attrs:
    if (specs->type != NULL)
      {
!       specs->postfix_attrs = c_warn_type_attributes (specs->postfix_attrs);
        decl_attributes (&specs->type, specs->postfix_attrs, 0);
        specs->postfix_attrs = NULL_TREE;
      }
--- 13558,13565 ----
   handle_postfix_attrs:
    if (specs->type != NULL)
      {
!       specs->postfix_attrs
! 	= c_warn_type_attributes (specs->type, specs->postfix_attrs);
        decl_attributes (&specs->type, specs->postfix_attrs, 0);
        specs->postfix_attrs = NULL_TREE;
      }
*************** collect_source_refs (void)
*** 13430,13436 ****
    unsigned i;
  
    FOR_EACH_VEC_ELT (*all_translation_units, i, t)
!     { 
        decls = DECL_INITIAL (t);
        for (decl = BLOCK_VARS (decls); decl; decl = TREE_CHAIN (decl))
  	if (!DECL_IS_UNDECLARED_BUILTIN (decl))
--- 13646,13652 ----
    unsigned i;
  
    FOR_EACH_VEC_ELT (*all_translation_units, i, t)
!     {
        decls = DECL_INITIAL (t);
        for (decl = BLOCK_VARS (decls); decl; decl = TREE_CHAIN (decl))
  	if (!DECL_IS_UNDECLARED_BUILTIN (decl))
*************** c_check_in_current_scope (tree decl)
*** 13649,13652 ****
--- 13865,14079 ----
    return b != NULL && B_IN_CURRENT_SCOPE (b);
  }
  
+ /* Search for loop or switch names.  BEFORE_LABELS is last statement before
+    possible labels and SWITCH_P true for a switch, false for loops.
+    Searches through last statements in cur_stmt_list, stops when seeing
+    BEFORE_LABELs, or statement other than LABEL_EXPR or CASE_LABEL_EXPR.
+    Returns number of loop/switch names found and if any are found, sets
+    *LAST_P to the canonical loop/switch name LABEL_DECL.  */
+ 
+ int
+ c_get_loop_names (tree before_labels, bool switch_p, tree *last_p)
+ {
+   *last_p = NULL_TREE;
+   if (!building_stmt_list_p ()
+       || !STATEMENT_LIST_HAS_LABEL (cur_stmt_list)
+       || before_labels == void_list_node)
+     return 0;
+ 
+   int ret = 0;
+   tree last = NULL_TREE;
+   for (tree_stmt_iterator tsi = tsi_last (cur_stmt_list);
+        !tsi_end_p (tsi); tsi_prev (&tsi))
+     {
+       tree stmt = tsi_stmt (tsi);
+       if (stmt == before_labels)
+ 	break;
+       else if (TREE_CODE (stmt) == LABEL_EXPR)
+ 	{
+ 	  if (last == NULL_TREE)
+ 	    last = LABEL_EXPR_LABEL (stmt);
+ 	  else
+ 	    {
+ 	      loop_names.safe_push (LABEL_EXPR_LABEL (stmt));
+ 	      ++ret;
+ 	    }
+ 	}
+       else if (TREE_CODE (stmt) != CASE_LABEL_EXPR)
+ 	break;
+     }
+   if (last)
+     {
+       if (switch_p)
+ 	C_DECL_SWITCH_NAME (last) = 1;
+       else
+ 	C_DECL_LOOP_NAME (last) = 1;
+       loop_names.safe_push (last);
+       ++ret;
+       if (loop_names.length () > 16)
+ 	{
+ 	  unsigned int first = 0, i;
+ 	  tree l, c = NULL_TREE;
+ 	  if (loop_names_hash == NULL)
+ 	    loop_names_hash = new decl_tree_map (ret);
+ 	  else
+ 	    first = loop_names.length () - ret;
+ 	  FOR_EACH_VEC_ELT_REVERSE (loop_names, i, l)
+ 	    {
+ 	      if (C_DECL_LOOP_NAME (l) || C_DECL_SWITCH_NAME (l))
+ 		c = l;
+ 	      gcc_checking_assert (c);
+ 	      loop_names_hash->put (l, c);
+ 	      if (i == first)
+ 		break;
+ 	    }
+ 	}
+       *last_p = last;
+     }
+   return ret;
+ }
+ 
+ /* Undoes what get_loop_names did when it returned NUM_NAMES.  */
+ 
+ void
+ c_release_loop_names (int num_names)
+ {
+   unsigned len = loop_names.length () - num_names;
+   if (loop_names_hash)
+     {
+       if (len <= 16)
+ 	{
+ 	  delete loop_names_hash;
+ 	  loop_names_hash = NULL;
+ 	}
+       else
+ 	{
+ 	  unsigned int i;
+ 	  tree l;
+ 	  FOR_EACH_VEC_ELT_REVERSE (loop_names, i, l)
+ 	    {
+ 	      loop_names_hash->remove (l);
+ 	      if (i == len)
+ 		break;
+ 	    }
+ 	}
+     }
+   loop_names.truncate (len);
+ }
+ 
+ /* Finish processing of break or continue identifier operand.
+    NAME is the identifier operand of break or continue and
+    IS_BREAK is true iff it is break stmt.  Returns the operand
+    to use for BREAK_STMT or CONTINUE_STMT, either NULL_TREE or
+    canonical loop/switch name LABEL_DECL.  */
+ 
+ tree
+ c_finish_bc_name (location_t loc, tree name, bool is_break)
+ {
+   tree label = NULL_TREE, lab;
+   pedwarn_c23 (loc, OPT_Wpedantic,
+ 	       "ISO C does not support %qs statement with an identifier "
+ 	       "operand before C2Y", is_break ? "break" : "continue");
+ 
+   /* If I_LABEL_DECL is NULL or not from current function, don't waste time
+      trying to find it among loop_names, it can't be there.  */
+   if (!loop_names.is_empty ()
+       && current_function_scope
+       && (lab = I_LABEL_DECL (name))
+       && DECL_CONTEXT (lab) == current_function_decl)
+     {
+       unsigned int i;
+       tree l, c = NULL_TREE;
+       if (loop_names_hash)
+ 	{
+ 	  if (tree *val = loop_names_hash->get (lab))
+ 	    label = *val;
+ 	}
+       else
+ 	FOR_EACH_VEC_ELT_REVERSE (loop_names, i, l)
+ 	  {
+ 	    if (C_DECL_LOOP_NAME (l) || C_DECL_SWITCH_NAME (l))
+ 	      c = l;
+ 	    gcc_checking_assert (c);
+ 	    if (l == lab)
+ 	      {
+ 		label = c;
+ 		break;
+ 	      }
+ 	  }
+       if (label)
+ 	TREE_USED (lab) = 1;
+     }
+   if (label == NULL_TREE)
+     {
+       auto_vec<const char *> candidates;
+       unsigned int i;
+       tree l, c = NULL_TREE;
+       FOR_EACH_VEC_ELT_REVERSE (loop_names, i, l)
+ 	{
+ 	  if (C_DECL_LOOP_NAME (l) || C_DECL_SWITCH_NAME (l))
+ 	    c = l;
+ 	  gcc_checking_assert (c);
+ 	  if (is_break || C_DECL_LOOP_NAME (c))
+ 	    candidates.safe_push (IDENTIFIER_POINTER (DECL_NAME (l)));
+ 	}
+       const char *hint = find_closest_string (IDENTIFIER_POINTER (name),
+ 					      &candidates);
+       if (hint)
+ 	{
+ 	  gcc_rich_location richloc (loc);
+ 	  richloc.add_fixit_replace (hint);
+ 	  if (is_break)
+ 	    error_at (&richloc, "%<break%> statement operand %qE does not "
+ 				"refer to a named loop or %<switch%>; "
+ 				"did you mean %qs?", name, hint);
+ 	  else
+ 	    error_at (&richloc, "%<continue%> statement operand %qE does not "
+ 				"refer to a named loop; did you mean %qs?",
+ 		      name, hint);
+ 	}
+       else if (is_break)
+ 	error_at (loc, "%<break%> statement operand %qE does not refer to a "
+ 		       "named loop or %<switch%>", name);
+       else
+ 	error_at (loc, "%<continue%> statement operand %qE does not refer to "
+ 		       "a named loop", name);
+     }
+   else if (!C_DECL_LOOP_NAME (label) && !is_break)
+     {
+       auto_diagnostic_group d;
+       error_at (loc, "%<continue%> statement operand %qE refers to a named "
+ 		     "%<switch%>", name);
+       inform (DECL_SOURCE_LOCATION (label), "%<switch%> name defined here");
+       label = NULL_TREE;
+     }
+   else if (!C_DECL_LOOP_SWITCH_NAME_VALID (label))
+     {
+       auto_diagnostic_group d;
+       if (C_DECL_LOOP_NAME (label))
+ 	{
+ 	  error_at (loc, "%qs statement operand %qE refers to a loop outside "
+ 			 "of its body", is_break ? "break" : "continue", name);
+ 	  inform (DECL_SOURCE_LOCATION (label), "loop name defined here");
+ 	}
+       else
+ 	{
+ 	  error_at (loc, "%<break%> statement operand %qE refers to a "
+ 			 "%<switch%> outside of its body", name);
+ 	  inform (DECL_SOURCE_LOCATION (label),
+ 		  "%<switch%> name defined here");
+ 	}
+       label = NULL_TREE;
+     }
+   else if (label == loop_names.last () && (in_statement & IN_NAMED_STMT) != 0)
+     /* If it is just a fancy reference to the innermost construct, handle it
+        just like break; or continue; though tracking cheaply what is the
+        innermost loop for continue when nested in switches would require
+        another global variable and updating it.  */
+     label = NULL_TREE;
+   else
+     C_DECL_LOOP_SWITCH_NAME_USED (label) = 1;
+   return label;
+ }
+ 
  #include "gt-c-c-decl.h"
diff -Nrcpad gcc-14.2.0/gcc/c/c-errors.cc gcc-15.1.0/gcc/c/c-errors.cc
*** gcc-14.2.0/gcc/c/c-errors.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-errors.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Various diagnostic subroutines for the GNU C language.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Various diagnostic subroutines for the GNU C language.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 25,38 ****
  #include "c-tree.h"
  #include "opts.h"
  
  /* Issue an ISO C11 pedantic warning MSGID if -pedantic outside C23 mode,
     otherwise issue warning MSGID if -Wc11-c23-compat is specified.
     This function is supposed to be used for matters that are allowed in
     ISO C23 but not supported in ISO C11, thus we explicitly don't pedwarn
!    when C23 is specified.  */
  
  bool
! pedwarn_c11 (location_t location, int opt, const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
--- 25,84 ----
  #include "c-tree.h"
  #include "opts.h"
  
+ /* Issue an ISO C23 pedantic warning MSGID if -pedantic outside C2Y mode,
+    otherwise issue warning MSGID if -Wc23-c2y-compat is specified.
+    This function is supposed to be used for matters that are allowed in
+    ISO C2Y but not supported in ISO C23, thus we explicitly don't pedwarn
+    when C2Y is specified.  */
+ 
+ bool
+ pedwarn_c23 (location_t location,
+ 	     diagnostic_option_id option_id,
+ 	     const char *gmsgid, ...)
+ {
+   diagnostic_info diagnostic;
+   va_list ap;
+   bool warned = false;
+   rich_location richloc (line_table, location);
+ 
+   va_start (ap, gmsgid);
+   /* If desired, issue the C23/C2Y compat warning, which is more specific
+      than -pedantic.  */
+   if (warn_c23_c2y_compat > 0)
+     {
+       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
+ 			   (pedantic && !flag_isoc2y)
+ 			   ? DK_PEDWARN : DK_WARNING);
+       diagnostic.option_id = OPT_Wc23_c2y_compat;
+       warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
+     }
+   /* -Wno-c23-c2y-compat suppresses even the pedwarns.  */
+   else if (warn_c23_c2y_compat == 0)
+     ;
+   /* For -pedantic outside C2Y, issue a pedwarn.  */
+   else if (pedantic && !flag_isoc2y)
+     {
+       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
+       diagnostic.option_id = option_id;
+       warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
+     }
+   va_end (ap);
+   return warned;
+ }
+ 
  /* Issue an ISO C11 pedantic warning MSGID if -pedantic outside C23 mode,
     otherwise issue warning MSGID if -Wc11-c23-compat is specified.
     This function is supposed to be used for matters that are allowed in
     ISO C23 but not supported in ISO C11, thus we explicitly don't pedwarn
!    when C23 is specified.
! 
!    Additionally, warn if OPTION_ID is not OPT_Wpedantic nor
!    OPT_Wc11_c23_compat.  */
  
  bool
! pedwarn_c11 (location_t location,
! 	     diagnostic_option_id option_id,
! 	     const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
*************** pedwarn_c11 (location_t location, int op
*** 40,53 ****
    rich_location richloc (line_table, location);
  
    va_start (ap, gmsgid);
!   /* If desired, issue the C11/C23 compat warning, which is more specific
!      than -pedantic.  */
!   if (warn_c11_c23_compat > 0)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc23)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_index = OPT_Wc11_c23_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c11-c23-compat suppresses even the pedwarns.  */
--- 86,103 ----
    rich_location richloc (line_table, location);
  
    va_start (ap, gmsgid);
!   /* If desired, issue the C11/C23 compat warning, which is more specific than
!      -pedantic, or the warning specified by option_id.  */
!   if (warn_c11_c23_compat > 0 || (option_id.m_idx != OPT_Wpedantic
! 				  && option_id.m_idx != OPT_Wc11_c23_compat))
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc23)
  			   ? DK_PEDWARN : DK_WARNING);
!       if (option_id == OPT_Wpedantic)
! 	diagnostic.option_id = OPT_Wc11_c23_compat;
!       else
! 	diagnostic.option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c11-c23-compat suppresses even the pedwarns.  */
*************** pedwarn_c11 (location_t location, int op
*** 57,63 ****
    else if (pedantic && !flag_isoc23)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_index = opt;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
--- 107,113 ----
    else if (pedantic && !flag_isoc23)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
*************** pedwarn_c11 (location_t location, int op
*** 71,77 ****
     when C11 is specified.  */
  
  bool
! pedwarn_c99 (location_t location, int opt, const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
--- 121,129 ----
     when C11 is specified.  */
  
  bool
! pedwarn_c99 (location_t location,
! 	     diagnostic_option_id option_id,
! 	     const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
*************** pedwarn_c99 (location_t location, int op
*** 86,92 ****
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc11)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_index = OPT_Wc99_c11_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c99-c11-compat suppresses even the pedwarns.  */
--- 138,144 ----
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc11)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_id = OPT_Wc99_c11_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c99-c11-compat suppresses even the pedwarns.  */
*************** pedwarn_c99 (location_t location, int op
*** 96,102 ****
    else if (pedantic && !flag_isoc11)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_index = opt;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
--- 148,154 ----
    else if (pedantic && !flag_isoc11)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
*************** pedwarn_c99 (location_t location, int op
*** 111,117 ****
     when C99 is specified.  (There is no flag_c90.)  */
  
  bool
! pedwarn_c90 (location_t location, int opt, const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
--- 163,171 ----
     when C99 is specified.  (There is no flag_c90.)  */
  
  bool
! pedwarn_c90 (location_t location,
! 	     diagnostic_option_id option_id,
! 	     const char *gmsgid, ...)
  {
    diagnostic_info diagnostic;
    va_list ap;
*************** pedwarn_c90 (location_t location, int op
*** 120,128 ****
  
    va_start (ap, gmsgid);
    /* Warnings such as -Wvla are the most specific ones.  */
!   if (opt != OPT_Wpedantic)
      {
!       int opt_var = *(int *) option_flag_var (opt, &global_options);
        if (opt_var == 0)
          goto out;
        else if (opt_var > 0)
--- 174,182 ----
  
    va_start (ap, gmsgid);
    /* Warnings such as -Wvla are the most specific ones.  */
!   if (option_id.m_idx != OPT_Wpedantic)
      {
!       int opt_var = *(int *) option_flag_var (option_id.m_idx, &global_options);
        if (opt_var == 0)
          goto out;
        else if (opt_var > 0)
*************** pedwarn_c90 (location_t location, int op
*** 130,136 ****
  	  diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			       (pedantic && !flag_isoc99)
  			       ? DK_PEDWARN : DK_WARNING);
! 	  diagnostic.option_index = opt;
  	  diagnostic_report_diagnostic (global_dc, &diagnostic);
  	  warned = true;
  	  goto out;
--- 184,190 ----
  	  diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			       (pedantic && !flag_isoc99)
  			       ? DK_PEDWARN : DK_WARNING);
! 	  diagnostic.option_id = option_id;
  	  diagnostic_report_diagnostic (global_dc, &diagnostic);
  	  warned = true;
  	  goto out;
*************** pedwarn_c90 (location_t location, int op
*** 143,149 ****
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc99)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_index = OPT_Wc90_c99_compat;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c90-c99-compat suppresses the pedwarns.  */
--- 197,203 ----
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc99)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_id = OPT_Wc90_c99_compat;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c90-c99-compat suppresses the pedwarns.  */
*************** pedwarn_c90 (location_t location, int op
*** 153,159 ****
    else if (pedantic && !flag_isoc99)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_index = opt;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
        warned = true;
      }
--- 207,213 ----
    else if (pedantic && !flag_isoc99)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
!       diagnostic.option_id = option_id;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
        warned = true;
      }
*************** out:
*** 161,163 ****
--- 215,253 ----
    va_end (ap);
    return warned;
  }
+ 
+ /* Determine in which version of the standard IDENTIFIER
+    became a keyword.  */
+ 
+ static const char *
+ get_std_for_keyword (tree identifier)
+ {
+   switch (C_RID_CODE (identifier))
+     {
+     default:
+       gcc_unreachable ();
+     case RID_FALSE:
+     case RID_TRUE:
+       return "-std=c23";
+     case RID_BOOL:
+       if (IDENTIFIER_POINTER (identifier)[0] == 'b')
+ 	/* "bool".  */
+ 	return "-std=c23";
+       else
+ 	/* "_Bool".  */
+ 	return "-std=c99";
+     }
+ }
+ 
+ /* Issue a note to the user at LOC that KEYWORD_ID is a keyword
+    in STD_OPTION version of the standard onwards.  */
+ 
+ void
+ add_note_about_new_keyword (location_t loc,
+ 			    tree keyword_id)
+ {
+   gcc_assert (TREE_CODE (keyword_id) == IDENTIFIER_NODE);
+   const char *std_option = get_std_for_keyword (keyword_id);
+   inform (loc, "%qs is a keyword with %qs onwards",
+ 	  IDENTIFIER_POINTER (keyword_id), std_option);
+ }
diff -Nrcpad gcc-14.2.0/gcc/c/c-fold.cc gcc-15.1.0/gcc/c/c-fold.cc
*** gcc-14.2.0/gcc/c/c-fold.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-fold.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Support for fully folding sub-trees of an expression for C compiler.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for fully folding sub-trees of an expression for C compiler.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_fold_array_ref (tree type, tree ary, t
*** 73,83 ****
    unsigned elem_nchars = (TYPE_PRECISION (elem_type)
  			  / TYPE_PRECISION (char_type_node));
    unsigned len = (unsigned) TREE_STRING_LENGTH (ary) / elem_nchars;
!   tree nelts = array_type_nelts (TREE_TYPE (ary));
    bool dummy1 = true, dummy2 = true;
!   nelts = c_fully_fold_internal (nelts, true, &dummy1, &dummy2, false, false);
    unsigned HOST_WIDE_INT i = tree_to_uhwi (index);
!   if (!tree_int_cst_le (index, nelts)
        || i >= len
        || i + elem_nchars > len)
      return NULL_TREE;
--- 73,84 ----
    unsigned elem_nchars = (TYPE_PRECISION (elem_type)
  			  / TYPE_PRECISION (char_type_node));
    unsigned len = (unsigned) TREE_STRING_LENGTH (ary) / elem_nchars;
!   tree nelts_minus_one = array_type_nelts_minus_one (TREE_TYPE (ary));
    bool dummy1 = true, dummy2 = true;
!   nelts_minus_one = c_fully_fold_internal (nelts_minus_one, true, &dummy1,
! 					   &dummy2, false, false);
    unsigned HOST_WIDE_INT i = tree_to_uhwi (index);
!   if (!tree_int_cst_le (index, nelts_minus_one)
        || i >= len
        || i + elem_nchars > len)
      return NULL_TREE;
*************** c_fully_fold_internal (tree expr, bool i
*** 326,331 ****
--- 327,334 ----
      case EXACT_DIV_EXPR:
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
+     case LROTATE_EXPR:
+     case RROTATE_EXPR:
      case BIT_IOR_EXPR:
      case BIT_XOR_EXPR:
      case BIT_AND_EXPR:
*************** c_fully_fold_internal (tree expr, bool i
*** 387,393 ****
  	  && tree_int_cst_sgn (op0) < 0)
  	warning_at (loc, OPT_Wshift_negative_value,
  		    "left shift of negative value");
!       if ((code == LSHIFT_EXPR || code == RSHIFT_EXPR)
  	  && TREE_CODE (orig_op1) != INTEGER_CST
  	  && TREE_CODE (op1) == INTEGER_CST
  	  && TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE
--- 390,399 ----
  	  && tree_int_cst_sgn (op0) < 0)
  	warning_at (loc, OPT_Wshift_negative_value,
  		    "left shift of negative value");
!       if ((code == LSHIFT_EXPR
! 	   || code == RSHIFT_EXPR
! 	   || code == LROTATE_EXPR
! 	   || code == RROTATE_EXPR)
  	  && TREE_CODE (orig_op1) != INTEGER_CST
  	  && TREE_CODE (op1) == INTEGER_CST
  	  && TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE
*************** c_fully_fold_internal (tree expr, bool i
*** 403,409 ****
  		    || TREE_CODE (TREE_TYPE (orig_op0)) == FIXED_POINT_TYPE)
  		   && compare_tree_int (op1,
  					TYPE_PRECISION (TREE_TYPE (orig_op0)))
! 		      >= 0)
  	    warning_at (loc, OPT_Wshift_count_overflow,
  			(code == LSHIFT_EXPR
  			 ? G_("left shift count >= width of type")
--- 409,416 ----
  		    || TREE_CODE (TREE_TYPE (orig_op0)) == FIXED_POINT_TYPE)
  		   && compare_tree_int (op1,
  					TYPE_PRECISION (TREE_TYPE (orig_op0)))
! 		      >= 0
! 		   && !warning_suppressed_p (expr, OPT_Wshift_count_overflow))
  	    warning_at (loc, OPT_Wshift_count_overflow,
  			(code == LSHIFT_EXPR
  			 ? G_("left shift count >= width of type")
diff -Nrcpad gcc-14.2.0/gcc/c/c-lang.cc gcc-15.1.0/gcc/c/c-lang.cc
*** gcc-14.2.0/gcc/c/c-lang.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-lang.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c/c-lang.h gcc-15.1.0/gcc/c/c-lang.h
*** gcc-14.2.0/gcc/c/c-lang.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-lang.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct GTY(()) language_function {
*** 54,59 ****
--- 54,61 ----
    unsigned char x_in_statement;
    struct c_switch * GTY((skip)) x_switch_stack;
    struct c_arg_info * GTY((skip)) arg_info;
+   vec<tree> GTY((skip)) loop_names;
+   decl_tree_map * GTY((skip)) loop_names_hash;
    int returns_value;
    int returns_null;
    int returns_abnormally;
diff -Nrcpad gcc-14.2.0/gcc/c/c-objc-common.cc gcc-15.1.0/gcc/c/c-objc-common.cc
*** gcc-14.2.0/gcc/c/c-objc-common.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-objc-common.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Some code common to C and ObjC front ends.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Some code common to C and ObjC front ends.
!    Copyright (C) 2001-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 24,39 ****
  #include "intl.h"
  #include "c-family/c-pretty-print.h"
  #include "tree-pretty-print.h"
  #include "gimple-pretty-print.h"
  #include "langhooks.h"
  #include "c-objc-common.h"
! #include "gcc-rich-location.h"
  #include "stringpool.h"
  #include "attribs.h"
  #include "dwarf2.h"
  
  static bool c_tree_printer (pretty_printer *, text_info *, const char *,
! 			    int, bool, bool, bool, bool *, const char **);
  
  /* Info for C language features which can be queried through
     __has_{feature,extension}.  */
--- 24,41 ----
  #include "intl.h"
  #include "c-family/c-pretty-print.h"
  #include "tree-pretty-print.h"
+ #include "tree-pretty-print-markup.h"
  #include "gimple-pretty-print.h"
  #include "langhooks.h"
  #include "c-objc-common.h"
! #include "c-family/c-type-mismatch.h"
  #include "stringpool.h"
  #include "attribs.h"
  #include "dwarf2.h"
+ #include "make-unique.h"
  
  static bool c_tree_printer (pretty_printer *, text_info *, const char *,
! 			    int, bool, bool, bool, bool *, pp_token_list &);
  
  /* Info for C language features which can be queried through
     __has_{feature,extension}.  */
*************** get_aka_type (tree type)
*** 130,135 ****
--- 132,139 ----
  
        result = get_aka_type (orig_type);
      }
+   else if (TREE_CODE (type) == ENUMERAL_TYPE)
+     return type;
    else
      {
        tree canonical = TYPE_CANONICAL (type);
*************** get_aka_type (tree type)
*** 220,226 ****
  /* Print T to CPP.  */
  
  static void
! print_type (c_pretty_printer *cpp, tree t, bool *quoted)
  {
    if (t == error_mark_node)
      {
--- 224,231 ----
  /* Print T to CPP.  */
  
  static void
! print_type (c_pretty_printer *cpp, tree t, bool *quoted,
! 	    const char *highlight_color = nullptr)
  {
    if (t == error_mark_node)
      {
*************** print_type (c_pretty_printer *cpp, tree
*** 228,235 ****
        return;
      }
  
    gcc_assert (TYPE_P (t));
!   struct obstack *ob = pp_buffer (cpp)->obstack;
    char *p = (char *) obstack_base (ob);
    /* Remember the end of the initial dump.  */
    int len = obstack_object_size (ob);
--- 233,243 ----
        return;
      }
  
+   if (!pp_show_highlight_colors (cpp))
+     highlight_color = nullptr;
+ 
    gcc_assert (TYPE_P (t));
!   struct obstack *ob = pp_buffer (cpp)->m_obstack;
    char *p = (char *) obstack_base (ob);
    /* Remember the end of the initial dump.  */
    int len = obstack_object_size (ob);
*************** print_type (c_pretty_printer *cpp, tree
*** 247,256 ****
    tree aka_type = get_aka_type (t);
    if (aka_type != t)
      {
        c_pretty_printer cpp2;
        /* Print the stripped version into a temporary printer.  */
        cpp2.type_id (aka_type);
!       struct obstack *ob2 = cpp2.buffer->obstack;
        /* Get the stripped version from the temporary printer.  */
        const char *aka = (char *) obstack_base (ob2);
        int aka_len = obstack_object_size (ob2);
--- 255,265 ----
    tree aka_type = get_aka_type (t);
    if (aka_type != t)
      {
+       const bool show_color = pp_show_color (cpp);
        c_pretty_printer cpp2;
        /* Print the stripped version into a temporary printer.  */
        cpp2.type_id (aka_type);
!       struct obstack *ob2 = pp_buffer (&cpp2)->m_obstack;
        /* Get the stripped version from the temporary printer.  */
        const char *aka = (char *) obstack_base (ob2);
        int aka_len = obstack_object_size (ob2);
*************** print_type (c_pretty_printer *cpp, tree
*** 262,283 ****
  
        /* They're not, print the stripped version now.  */
        if (*quoted)
! 	pp_end_quote (cpp, pp_show_color (cpp));
        pp_c_whitespace (cpp);
        pp_left_brace (cpp);
        pp_c_ws_string (cpp, _("aka"));
        pp_c_whitespace (cpp);
        if (*quoted)
! 	pp_begin_quote (cpp, pp_show_color (cpp));
        cpp->type_id (aka_type);
        if (*quoted)
! 	pp_end_quote (cpp, pp_show_color (cpp));
        pp_right_brace (cpp);
        /* No further closing quotes are needed.  */
        *quoted = false;
      }
  }
  
  /* Called during diagnostic message formatting process to print a
     source-level entity onto BUFFER.  The meaning of the format specifiers
     is as follows:
--- 271,308 ----
  
        /* They're not, print the stripped version now.  */
        if (*quoted)
! 	pp_end_quote (cpp, show_color);
        pp_c_whitespace (cpp);
        pp_left_brace (cpp);
        pp_c_ws_string (cpp, _("aka"));
        pp_c_whitespace (cpp);
+       pp_string (cpp, colorize_stop (show_color));
        if (*quoted)
! 	pp_begin_quote (cpp, show_color);
!       if (highlight_color)
! 	pp_string (cpp, colorize_start (show_color, highlight_color));
        cpp->type_id (aka_type);
        if (*quoted)
! 	pp_end_quote (cpp, show_color);
        pp_right_brace (cpp);
        /* No further closing quotes are needed.  */
        *quoted = false;
      }
  }
  
+ /* Implementation of pp_markup::element_quoted_type::print_type
+    for C/ObjC.  */
+ 
+ void
+ pp_markup::element_quoted_type::print_type (pp_markup::context &ctxt)
+ {
+   auto pp = ctxt.m_pp.clone ();
+   c_pretty_printer *cpp = (c_pretty_printer *)pp.get ();
+   cpp->set_padding (pp_none);
+   ::print_type (cpp, m_type, &ctxt.m_quoted, m_highlight_color);
+   pp_string (&ctxt.m_pp, pp_formatted_text (cpp));
+ }
+ 
  /* Called during diagnostic message formatting process to print a
     source-level entity onto BUFFER.  The meaning of the format specifiers
     is as follows:
*************** print_type (c_pretty_printer *cpp, tree
*** 294,305 ****
  static bool
  c_tree_printer (pretty_printer *pp, text_info *text, const char *spec,
  		int precision, bool wide, bool set_locus, bool hash,
! 		bool *quoted, const char **)
  {
    tree t = NULL_TREE;
    // FIXME: the next cast should be a dynamic_cast, when it is permitted.
    c_pretty_printer *cpp = (c_pretty_printer *) pp;
!   pp->padding = pp_none;
  
    if (precision != 0 || wide)
      return false;
--- 319,330 ----
  static bool
  c_tree_printer (pretty_printer *pp, text_info *text, const char *spec,
  		int precision, bool wide, bool set_locus, bool hash,
! 		bool *quoted, pp_token_list &)
  {
    tree t = NULL_TREE;
    // FIXME: the next cast should be a dynamic_cast, when it is permitted.
    c_pretty_printer *cpp = (c_pretty_printer *) pp;
!   pp->set_padding (pp_none);
  
    if (precision != 0 || wide)
      return false;
*************** has_c_linkage (const_tree decl ATTRIBUTE
*** 387,402 ****
  void
  c_initialize_diagnostics (diagnostic_context *context)
  {
!   pretty_printer *base = context->printer;
!   c_pretty_printer *pp = XNEW (c_pretty_printer);
!   context->printer = new (pp) c_pretty_printer ();
! 
!   /* It is safe to free this object because it was previously XNEW()'d.  */
!   base->~pretty_printer ();
!   XDELETE (base);
! 
    c_common_diagnostics_set_defaults (context);
!   diagnostic_format_decoder (context) = &c_tree_printer;
  }
  
  int
--- 412,420 ----
  void
  c_initialize_diagnostics (diagnostic_context *context)
  {
!   context->set_pretty_printer (::make_unique<c_pretty_printer> ());
    c_common_diagnostics_set_defaults (context);
!   context->set_format_decoder (&c_tree_printer);
  }
  
  int
*************** c_var_mod_p (tree x, tree fn ATTRIBUTE_U
*** 418,433 ****
  alias_set_type
  c_get_alias_set (tree t)
  {
-   /* Allow aliasing between enumeral types and the underlying
-      integer type.  This is required since those are compatible types.  */
-   if (TREE_CODE (t) == ENUMERAL_TYPE)
-     return get_alias_set (ENUM_UNDERLYING_TYPE (t));
- 
-   /* Structs with variable size can alias different incompatible
-      structs.  Let them alias anything.   */
-   if (RECORD_OR_UNION_TYPE_P (t) && C_TYPE_VARIABLE_SIZE (t))
-     return 0;
- 
    return c_common_get_alias_set (t);
  }
  
--- 436,441 ----
diff -Nrcpad gcc-14.2.0/gcc/c/c-objc-common.h gcc-15.1.0/gcc/c/c-objc-common.h
*** gcc-14.2.0/gcc/c/c-objc-common.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-objc-common.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Language hooks common to C and ObjC front ends.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
     Contributed by Ziemowit Laski  <zlaski@apple.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Language hooks common to C and ObjC front ends.
!    Copyright (C) 2004-2025 Free Software Foundation, Inc.
     Contributed by Ziemowit Laski  <zlaski@apple.com>
  
  This file is part of GCC.
*************** extern void c_register_features ();
*** 74,84 ****
--- 74,87 ----
  #define LANG_HOOKS_EMITS_BEGIN_STMT true
  #undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
  #define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
+ #undef LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE
+ #define LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE c_reconstruct_complex_type
  
  static const scoped_attribute_specs *const c_objc_attribute_table[] =
  {
    &std_attribute_table,
    &c_common_gnu_attribute_table,
+   &c_common_clang_attribute_table,
    &c_common_format_attribute_table
  };
  
diff -Nrcpad gcc-14.2.0/gcc/c/c-parser.cc gcc-15.1.0/gcc/c/c-parser.cc
*** gcc-14.2.0/gcc/c/c-parser.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-parser.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Parser for C and Objective-C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
--- 1,5 ----
  /* Parser for C and Objective-C.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
*************** along with GCC; see the file COPYING3.
*** 36,42 ****
     location rather than implicitly using input_location.  */
  
  #include "config.h"
! #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "target.h"
--- 36,42 ----
     location rather than implicitly using input_location.  */
  
  #include "config.h"
! #define INCLUDE_STRING
  #include "system.h"
  #include "coretypes.h"
  #include "target.h"
*************** along with GCC; see the file COPYING3.
*** 74,86 ****
  #include "bitmap.h"
  #include "analyzer/analyzer-language.h"
  #include "toplev.h"
  
  /* We need to walk over decls with incomplete struct/union/enum types
     after parsing the whole translation unit.
     In finish_decl(), if the decl is static, has incomplete
     struct/union/enum type, it is appended to incomplete_record_decls.
     In c_parser_translation_unit(), we iterate over incomplete_record_decls
!    and report error if any of the decls are still incomplete.  */ 
  
  vec<tree> incomplete_record_decls;
  
--- 74,89 ----
  #include "bitmap.h"
  #include "analyzer/analyzer-language.h"
  #include "toplev.h"
+ #include "asan.h"
+ #include "c-family/c-ubsan.h"
+ #include "gcc-urlifier.h"
  
  /* We need to walk over decls with incomplete struct/union/enum types
     after parsing the whole translation unit.
     In finish_decl(), if the decl is static, has incomplete
     struct/union/enum type, it is appended to incomplete_record_decls.
     In c_parser_translation_unit(), we iterate over incomplete_record_decls
!    and report error if any of the decls are still incomplete.  */
  
  vec<tree> incomplete_record_decls;
  
*************** struct GTY(()) c_parser {
*** 259,271 ****
    struct omp_for_parse_data * GTY((skip)) omp_for_parse_state;
  
    /* If we're in the context of OpenMP directives written as C23
!      attributes turned into pragma, vector of tokens created from that,
!      otherwise NULL.  */
!   vec<c_token, va_gc> *in_omp_attribute_pragma;
  
    /* Set for omp::decl attribute parsing to the decl to which it
       appertains.  */
    tree in_omp_decl_attribute;
  };
  
  /* Return a pointer to the Nth token in PARSERs tokens_buf.  */
--- 262,289 ----
    struct omp_for_parse_data * GTY((skip)) omp_for_parse_state;
  
    /* If we're in the context of OpenMP directives written as C23
!      attributes turned into pragma, the tokens field is temporarily
!      redirected.  This holds data needed to restore state afterwards.
!      It's NULL otherwise.  */
!   struct omp_attribute_pragma_state *in_omp_attribute_pragma;
  
    /* Set for omp::decl attribute parsing to the decl to which it
       appertains.  */
    tree in_omp_decl_attribute;
+ 
+   /* Non-null only when parsing the body of an OpenMP metadirective.
+      Managed by c_parser_omp_metadirective.  */
+   struct omp_metadirective_parse_data * GTY((skip))
+     omp_metadirective_state;
+ };
+ 
+ /* Holds data needed to restore the token stream to its previous state
+    after parsing an OpenMP attribute-syntax pragma.  */
+ struct GTY(()) omp_attribute_pragma_state
+ {
+   vec<c_token, va_gc> *token_vec;
+   c_token * GTY((skip)) save_tokens;
+   unsigned int save_tokens_avail;
  };
  
  /* Return a pointer to the Nth token in PARSERs tokens_buf.  */
*************** c_lex_one_token (c_parser *parser, c_tok
*** 412,418 ****
  		/* Else they are not special keywords.
  		*/
  	      }
! 	    else if (c_dialect_objc () 
  		     && (OBJC_IS_AT_KEYWORD (rid_code)
  			 || OBJC_IS_CXX_KEYWORD (rid_code)))
  	      {
--- 430,436 ----
  		/* Else they are not special keywords.
  		*/
  	      }
! 	    else if (c_dialect_objc ()
  		     && (OBJC_IS_AT_KEYWORD (rid_code)
  			 || OBJC_IS_CXX_KEYWORD (rid_code)))
  	      {
*************** c_keyword_starts_typename (enum rid keyw
*** 595,600 ****
--- 613,619 ----
      case RID_DFLOAT32:
      case RID_DFLOAT64:
      case RID_DFLOAT128:
+     case RID_DFLOAT64X:
      CASE_RID_FLOATN_NX:
      case RID_BOOL:
      case RID_BITINT:
*************** c_token_starts_declspecs (c_token *token
*** 799,804 ****
--- 818,824 ----
  	case RID_DFLOAT32:
  	case RID_DFLOAT64:
  	case RID_DFLOAT128:
+ 	case RID_DFLOAT64X:
  	CASE_RID_FLOATN_NX:
  	case RID_BOOL:
  	case RID_BITINT:
*************** c_parser_next_token_starts_declspecs (c_
*** 863,871 ****
       setter/getter on the class.  c_token_starts_declspecs() can't
       differentiate between the two cases because it only checks the
       current token, so we have a special check here.  */
!   if (c_dialect_objc () 
        && token->type == CPP_NAME
!       && token->id_kind == C_ID_CLASSNAME 
        && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
--- 883,891 ----
       setter/getter on the class.  c_token_starts_declspecs() can't
       differentiate between the two cases because it only checks the
       current token, so we have a special check here.  */
!   if (c_dialect_objc ()
        && token->type == CPP_NAME
!       && token->id_kind == C_ID_CLASSNAME
        && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
*************** c_parser_next_tokens_start_declaration (
*** 881,889 ****
    c_token *token = c_parser_peek_token (parser);
  
    /* Same as above.  */
!   if (c_dialect_objc () 
        && token->type == CPP_NAME
!       && token->id_kind == C_ID_CLASSNAME 
        && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
--- 901,909 ----
    c_token *token = c_parser_peek_token (parser);
  
    /* Same as above.  */
!   if (c_dialect_objc ()
        && token->type == CPP_NAME
!       && token->id_kind == C_ID_CLASSNAME
        && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
*************** c_parser_require (c_parser *parser,
*** 1248,1254 ****
        bool added_matching_location = false;
        if (matching_location != UNKNOWN_LOCATION)
  	added_matching_location
! 	  = richloc.add_location_if_nearby (matching_location);
  
        if (c_parser_error_richloc (parser, msgid, &richloc))
  	/* If we weren't able to consolidate matching_location, then
--- 1268,1274 ----
        bool added_matching_location = false;
        if (matching_location != UNKNOWN_LOCATION)
  	added_matching_location
! 	  = richloc.add_location_if_nearby (*global_dc, matching_location);
  
        if (c_parser_error_richloc (parser, msgid, &richloc))
  	/* If we weren't able to consolidate matching_location, then
*************** c_parser_skip_until_found (c_parser *par
*** 1307,1314 ****
  	  c_token *token = c_parser_peek_token (parser);
  	  if (token->type == CPP_EOF)
  	    {
! 	      parser->tokens = &parser->tokens_buf[0];
! 	      parser->tokens_avail = token->flags;
  	      parser->in_omp_attribute_pragma = NULL;
  	    }
  	}
--- 1327,1335 ----
  	  c_token *token = c_parser_peek_token (parser);
  	  if (token->type == CPP_EOF)
  	    {
! 	      parser->tokens = parser->in_omp_attribute_pragma->save_tokens;
! 	      parser->tokens_avail
! 		= parser->in_omp_attribute_pragma->save_tokens_avail;
  	      parser->in_omp_attribute_pragma = NULL;
  	    }
  	}
*************** c_parser_skip_until_found (c_parser *par
*** 1330,1337 ****
  	      c_token *token = c_parser_peek_token (parser);
  	      if (token->type == CPP_EOF)
  		{
! 		  parser->tokens = &parser->tokens_buf[0];
! 		  parser->tokens_avail = token->flags;
  		  parser->in_omp_attribute_pragma = NULL;
  		}
  	    }
--- 1351,1359 ----
  	      c_token *token = c_parser_peek_token (parser);
  	      if (token->type == CPP_EOF)
  		{
! 		  parser->tokens = parser->in_omp_attribute_pragma->save_tokens;
! 		  parser->tokens_avail
! 		    = parser->in_omp_attribute_pragma->save_tokens_avail;
  		  parser->in_omp_attribute_pragma = NULL;
  		}
  	    }
*************** c_parser_skip_to_pragma_eol (c_parser *p
*** 1424,1431 ****
        c_token *token = c_parser_peek_token (parser);
        if (token->type == CPP_EOF)
  	{
! 	  parser->tokens = &parser->tokens_buf[0];
! 	  parser->tokens_avail = token->flags;
  	  parser->in_omp_attribute_pragma = NULL;
  	}
      }
--- 1446,1454 ----
        c_token *token = c_parser_peek_token (parser);
        if (token->type == CPP_EOF)
  	{
! 	  parser->tokens = parser->in_omp_attribute_pragma->save_tokens;
! 	  parser->tokens_avail
! 	    = parser->in_omp_attribute_pragma->save_tokens_avail;
  	  parser->in_omp_attribute_pragma = NULL;
  	}
      }
*************** c_parser_skip_to_pragma_eol (c_parser *p
*** 1437,1445 ****
     have consumed a non-nested ';'.  */
  
  static void
! c_parser_skip_to_end_of_block_or_statement (c_parser *parser)
  {
    unsigned nesting_depth = 0;
    bool save_error = parser->error;
  
    while (true)
--- 1460,1470 ----
     have consumed a non-nested ';'.  */
  
  static void
! c_parser_skip_to_end_of_block_or_statement (c_parser *parser,
! 					    bool metadirective_p = false)
  {
    unsigned nesting_depth = 0;
+   int bracket_depth = 0;
    bool save_error = parser->error;
  
    while (true)
*************** c_parser_skip_to_end_of_block_or_stateme
*** 1462,1468 ****
  	case CPP_SEMICOLON:
  	  /* If the next token is a ';', we have reached the
  	     end of the statement.  */
! 	  if (!nesting_depth)
  	    {
  	      /* Consume the ';'.  */
  	      c_parser_consume_token (parser);
--- 1487,1493 ----
  	case CPP_SEMICOLON:
  	  /* If the next token is a ';', we have reached the
  	     end of the statement.  */
! 	  if (!nesting_depth && (!metadirective_p || bracket_depth <= 0))
  	    {
  	      /* Consume the ';'.  */
  	      c_parser_consume_token (parser);
*************** c_parser_skip_to_end_of_block_or_stateme
*** 1473,1479 ****
  	case CPP_CLOSE_BRACE:
  	  /* If the next token is a non-nested '}', then we have
  	     reached the end of the current block.  */
! 	  if (nesting_depth == 0 || --nesting_depth == 0)
  	    {
  	      c_parser_consume_token (parser);
  	      goto finished;
--- 1498,1505 ----
  	case CPP_CLOSE_BRACE:
  	  /* If the next token is a non-nested '}', then we have
  	     reached the end of the current block.  */
! 	  if ((nesting_depth == 0 || --nesting_depth == 0)
! 	      && (!metadirective_p || bracket_depth <= 0))
  	    {
  	      c_parser_consume_token (parser);
  	      goto finished;
*************** c_parser_skip_to_end_of_block_or_stateme
*** 1486,1491 ****
--- 1512,1530 ----
  	  ++nesting_depth;
  	  break;
  
+ 	case CPP_OPEN_PAREN:
+ 	  /* Track parentheses in case the statement is a standalone 'for'
+ 	     statement - we want to skip over the semicolons separating the
+ 	     operands.  */
+ 	  if (metadirective_p && nesting_depth == 0)
+ 	    ++bracket_depth;
+ 	  break;
+ 
+ 	case CPP_CLOSE_PAREN:
+ 	  if (metadirective_p && nesting_depth == 0)
+ 	    --bracket_depth;
+ 	  break;
+ 
  	case CPP_PRAGMA:
  	  /* If we see a pragma, consume the whole thing at once.  We
  	     have some safeguards against consuming pragmas willy-nilly.
*************** disable_extension_diagnostics (void)
*** 1534,1539 ****
--- 1573,1581 ----
  	     /* Similarly for warn_c11_c23_compat.  */
  	     | ((warn_c11_c23_compat == 1) << 11)
  	     | ((warn_c11_c23_compat == -1) << 12)
+ 	     /* Similarly for warn_c23_c2y_compat.  */
+ 	     | ((warn_c23_c2y_compat == 1) << 13)
+ 	     | ((warn_c23_c2y_compat == -1) << 14)
  	     );
    cpp_opts->cpp_pedantic = pedantic = 0;
    warn_pointer_arith = 0;
*************** disable_extension_diagnostics (void)
*** 1545,1550 ****
--- 1587,1593 ----
    warn_c90_c99_compat = 0;
    warn_c99_c11_compat = 0;
    warn_c11_c23_compat = 0;
+   warn_c23_c2y_compat = 0;
    return ret;
  }
  
*************** restore_extension_diagnostics (int flags
*** 1565,1570 ****
--- 1608,1614 ----
    warn_c90_c99_compat = (flags >> 7) & 1 ? 1 : ((flags >> 8) & 1 ? -1 : 0);
    warn_c99_c11_compat = (flags >> 9) & 1 ? 1 : ((flags >> 10) & 1 ? -1 : 0);
    warn_c11_c23_compat = (flags >> 11) & 1 ? 1 : ((flags >> 12) & 1 ? -1 : 0);
+   warn_c23_c2y_compat = (flags >> 13) & 1 ? 1 : ((flags >> 14) & 1 ? -1 : 0);
  }
  
  /* Helper data structure for parsing #pragma acc routine.  */
*************** struct omp_for_parse_data {
*** 1616,1628 ****
    bool fail : 1;
  };
  
  static bool c_parser_nth_token_starts_std_attributes (c_parser *,
  						      unsigned int);
  static tree c_parser_std_attribute_specifier_sequence (c_parser *);
  static void c_parser_external_declaration (c_parser *);
  static void c_parser_asm_definition (c_parser *);
! static void c_parser_declaration_or_fndef (c_parser *, bool, bool, bool,
! 					   bool, bool, tree * = NULL,
  					   vec<c_token> * = NULL,
  					   bool have_attrs = false,
  					   tree attrs = NULL,
--- 1660,1678 ----
    bool fail : 1;
  };
  
+ struct attr_state
+ {
+   /* True if we parsed a musttail attribute for return.  */
+   bool musttail_p;
+ };
+ 
  static bool c_parser_nth_token_starts_std_attributes (c_parser *,
  						      unsigned int);
  static tree c_parser_std_attribute_specifier_sequence (c_parser *);
  static void c_parser_external_declaration (c_parser *);
  static void c_parser_asm_definition (c_parser *);
! static tree c_parser_declaration_or_fndef (c_parser *, bool, bool, bool,
! 					   bool, bool, bool, tree * = NULL,
  					   vec<c_token> * = NULL,
  					   bool have_attrs = false,
  					   tree attrs = NULL,
*************** static struct c_arg_info *c_parser_parms
*** 1647,1652 ****
--- 1697,1703 ----
  static struct c_arg_info *c_parser_parms_list_declarator (c_parser *, tree,
  							  tree, bool);
  static struct c_parm *c_parser_parameter_declaration (c_parser *, tree, bool);
+ static tree c_parser_asm_string_literal (c_parser *);
  static tree c_parser_simple_asm_expr (c_parser *);
  static tree c_parser_gnu_attributes (c_parser *);
  static struct c_expr c_parser_initializer (c_parser *, tree);
*************** static tree c_parser_compound_statement
*** 1659,1675 ****
  static location_t c_parser_compound_statement_nostart (c_parser *);
  static void c_parser_label (c_parser *, tree);
  static void c_parser_statement (c_parser *, bool *, location_t * = NULL);
! static void c_parser_statement_after_labels (c_parser *, bool *,
! 					     vec<tree> * = NULL);
  static tree c_parser_c99_block_statement (c_parser *, bool *,
  					  location_t * = NULL);
  static void c_parser_if_statement (c_parser *, bool *, vec<tree> *);
! static void c_parser_switch_statement (c_parser *, bool *);
  static void c_parser_while_statement (c_parser *, bool, unsigned short, bool,
! 				      bool *);
! static void c_parser_do_statement (c_parser *, bool, unsigned short, bool);
  static void c_parser_for_statement (c_parser *, bool, unsigned short, bool,
! 				    bool *);
  static tree c_parser_asm_statement (c_parser *);
  static tree c_parser_asm_operands (c_parser *);
  static tree c_parser_asm_goto_operands (c_parser *);
--- 1710,1728 ----
  static location_t c_parser_compound_statement_nostart (c_parser *);
  static void c_parser_label (c_parser *, tree);
  static void c_parser_statement (c_parser *, bool *, location_t * = NULL);
! static void c_parser_statement_after_labels (c_parser *, bool *, tree,
! 					     vec<tree> * = NULL,
! 					     attr_state = {});
  static tree c_parser_c99_block_statement (c_parser *, bool *,
  					  location_t * = NULL);
  static void c_parser_if_statement (c_parser *, bool *, vec<tree> *);
! static void c_parser_switch_statement (c_parser *, bool *, tree);
  static void c_parser_while_statement (c_parser *, bool, unsigned short, bool,
! 				      bool *, tree);
! static void c_parser_do_statement (c_parser *, bool, unsigned short, bool,
! 				   tree);
  static void c_parser_for_statement (c_parser *, bool, unsigned short, bool,
! 				    bool *, tree);
  static tree c_parser_asm_statement (c_parser *);
  static tree c_parser_asm_operands (c_parser *);
  static tree c_parser_asm_goto_operands (c_parser *);
*************** static void c_parser_omp_threadprivate (
*** 1711,1716 ****
--- 1764,1771 ----
  static void c_parser_omp_barrier (c_parser *);
  static void c_parser_omp_depobj (c_parser *);
  static void c_parser_omp_flush (c_parser *);
+ static bool c_parser_omp_next_tokens_can_be_canon_loop (c_parser *,
+ 							enum tree_code, bool);
  static tree c_parser_omp_loop_nest (c_parser *, bool *);
  static tree c_parser_omp_for_loop (location_t, c_parser *, enum tree_code,
  				   tree, tree *, bool *);
*************** static void c_parser_omp_taskwait (c_par
*** 1718,1727 ****
  static void c_parser_omp_taskyield (c_parser *);
  static void c_parser_omp_cancel (c_parser *);
  static void c_parser_omp_nothing (c_parser *);
  
  enum pragma_context { pragma_external, pragma_struct, pragma_param,
  		      pragma_stmt, pragma_compound };
! static bool c_parser_pragma (c_parser *, enum pragma_context, bool *);
  static bool c_parser_omp_cancellation_point (c_parser *, enum pragma_context);
  static bool c_parser_omp_target (c_parser *, enum pragma_context, bool *);
  static void c_parser_omp_begin (c_parser *);
--- 1773,1783 ----
  static void c_parser_omp_taskyield (c_parser *);
  static void c_parser_omp_cancel (c_parser *);
  static void c_parser_omp_nothing (c_parser *);
+ static void c_parser_omp_metadirective (c_parser *, bool *);
  
  enum pragma_context { pragma_external, pragma_struct, pragma_param,
  		      pragma_stmt, pragma_compound };
! static bool c_parser_pragma (c_parser *, enum pragma_context, bool *, tree);
  static bool c_parser_omp_cancellation_point (c_parser *, enum pragma_context);
  static bool c_parser_omp_target (c_parser *, enum pragma_context, bool *);
  static void c_parser_omp_begin (c_parser *);
*************** static void c_parser_omp_assumption_clau
*** 1733,1738 ****
--- 1789,1796 ----
  static void c_parser_omp_allocate (c_parser *);
  static void c_parser_omp_assumes (c_parser *);
  static bool c_parser_omp_ordered (c_parser *, enum pragma_context, bool *);
+ static tree c_parser_omp_dispatch (location_t, c_parser *);
+ static void c_parser_omp_interop (c_parser *);
  static void c_parser_oacc_routine (c_parser *, enum pragma_context);
  
  /* These Objective-C parser functions are only ever called when
*************** static void c_parser_objc_at_dynamic_dec
*** 1762,1767 ****
--- 1820,1826 ----
  static bool c_parser_objc_diagnose_bad_element_prefix
    (c_parser *, struct c_declspecs *);
  static location_t c_parser_parse_rtl_body (c_parser *, char *);
+ static tree c_parser_handle_musttail (c_parser *, tree, attr_state &);
  
  #if ENABLE_ANALYZER
  
*************** c_parser_external_declaration (c_parser
*** 2024,2030 ****
        break;
      case CPP_PRAGMA:
        mark_valid_location_for_stdc_pragma (true);
!       c_parser_pragma (parser, pragma_external, NULL);
        mark_valid_location_for_stdc_pragma (false);
        break;
      case CPP_PLUS:
--- 2083,2089 ----
        break;
      case CPP_PRAGMA:
        mark_valid_location_for_stdc_pragma (true);
!       c_parser_pragma (parser, pragma_external, NULL, NULL_TREE);
        mark_valid_location_for_stdc_pragma (false);
        break;
      case CPP_PLUS:
*************** c_parser_external_declaration (c_parser
*** 2043,2049 ****
  	 an @interface or @protocol with prefix attributes).  We can
  	 only tell which after parsing the declaration specifiers, if
  	 any, and the first declarator.  */
!       c_parser_declaration_or_fndef (parser, true, true, true, false, true);
        break;
      }
  }
--- 2102,2109 ----
  	 an @interface or @protocol with prefix attributes).  We can
  	 only tell which after parsing the declaration specifiers, if
  	 any, and the first declarator.  */
!       c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 				     false);
        break;
      }
  }
*************** handle_assume_attribute (location_t here
*** 2107,2112 ****
--- 2167,2209 ----
    return remove_attribute ("gnu", "assume", attrs);
  }
  
+ /* We might need to reclassify any previously-lexed identifier, e.g.
+    when we've left a for loop with an if-statement without else in the
+    body - we might have used a wrong scope for the token.  See PR67784.  */
+ 
+ static void
+ c_parser_maybe_reclassify_token (c_parser *parser)
+ {
+   if (c_parser_next_token_is (parser, CPP_NAME))
+     {
+       c_token *token = c_parser_peek_token (parser);
+ 
+       if (token->id_kind != C_ID_CLASSNAME)
+ 	{
+ 	  tree decl = lookup_name (token->value);
+ 
+ 	  token->id_kind = C_ID_ID;
+ 	  if (decl)
+ 	    {
+ 	      if (TREE_CODE (decl) == TYPE_DECL)
+ 		token->id_kind = C_ID_TYPENAME;
+ 	    }
+ 	  else if (c_dialect_objc ())
+ 	    {
+ 	      tree objc_interface_decl = objc_is_class_name (token->value);
+ 	      /* Objective-C class names are in the same namespace as
+ 		 variables and typedefs, and hence are shadowed by local
+ 		 declarations.  */
+ 	      if (objc_interface_decl)
+ 		{
+ 		  token->value = objc_interface_decl;
+ 		  token->id_kind = C_ID_CLASSNAME;
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
  /* Parse a declaration or function definition (C90 6.5, 6.7.1, C99
     6.7, 6.9.1, C11 6.7, 6.9.1).  If FNDEF_OK is true, a function definition
     is accepted; otherwise (old-style parameter declarations) only other
*************** handle_assume_attribute (location_t here
*** 2128,2134 ****
     parsed in the caller (in contexts where such attributes had to be
     parsed to determine whether what follows is a declaration or a
     statement); HAVE_ATTRS says whether there were any such attributes
!    (even empty).
  
     declaration:
       declaration-specifiers init-declarator-list[opt] ;
--- 2225,2237 ----
     parsed in the caller (in contexts where such attributes had to be
     parsed to determine whether what follows is a declaration or a
     statement); HAVE_ATTRS says whether there were any such attributes
!    (even empty).  If SIMPLE_OK, the construct can be a simple-declaration;
!    in that case, the ';' is not consumed (left to the caller so that it
!    can figure out if there was a simple-declaration or not), there must
!    be an initializer, and only one object may be declared.  When SIMPLE_OK
!    is true we are called from c_parser_selection_header.
! 
!    Returns the resulting declaration, if there was any with an initializer.
  
     declaration:
       declaration-specifiers init-declarator-list[opt] ;
*************** handle_assume_attribute (location_t here
*** 2150,2155 ****
--- 2253,2262 ----
       declarator simple-asm-expr[opt] gnu-attributes[opt]
       declarator simple-asm-expr[opt] gnu-attributes[opt] = initializer
  
+    simple-declaration:
+      attribute-specifier-sequence[opt] declaration-specifiers declarator
+        = initializer
+ 
     GNU extensions:
  
     nested-function-definition:
*************** handle_assume_attribute (location_t here
*** 2196,2205 ****
       declaration-specifiers[opt] __RTL (gimple-or-rtl-pass-list) declarator
         declaration-list[opt] compound-statement  */
  
! static void
  c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
  			       bool static_assert_ok, bool empty_ok,
  			       bool nested, bool start_attr_ok,
  			       tree *objc_foreach_object_declaration
  			       /* = NULL */,
  			       vec<c_token> *omp_declare_simd_clauses
--- 2303,2313 ----
       declaration-specifiers[opt] __RTL (gimple-or-rtl-pass-list) declarator
         declaration-list[opt] compound-statement  */
  
! static tree
  c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
  			       bool static_assert_ok, bool empty_ok,
  			       bool nested, bool start_attr_ok,
+ 			       bool simple_ok,
  			       tree *objc_foreach_object_declaration
  			       /* = NULL */,
  			       vec<c_token> *omp_declare_simd_clauses
*************** c_parser_declaration_or_fndef (c_parser
*** 2215,2220 ****
--- 2323,2329 ----
    tree all_prefix_attrs;
    bool diagnosed_no_specs = false;
    location_t here = c_parser_peek_token (parser)->location;
+   tree result = NULL_TREE;
  
    add_debug_begin_stmt (c_parser_peek_token (parser)->location);
  
*************** c_parser_declaration_or_fndef (c_parser
*** 2222,2228 ****
        && c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT))
      {
        c_parser_static_assert_declaration (parser);
!       return;
      }
    specs = build_null_declspecs ();
  
--- 2331,2337 ----
        && c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT))
      {
        c_parser_static_assert_declaration (parser);
!       return result;
      }
    specs = build_null_declspecs ();
  
*************** c_parser_declaration_or_fndef (c_parser
*** 2308,2320 ****
    if (parser->error)
      {
        c_parser_skip_to_end_of_block_or_statement (parser);
!       return;
      }
    if (nested && !specs->declspecs_seen_p)
      {
        c_parser_error (parser, "expected declaration specifiers");
        c_parser_skip_to_end_of_block_or_statement (parser);
!       return;
      }
  
    finish_declspecs (specs);
--- 2417,2429 ----
    if (parser->error)
      {
        c_parser_skip_to_end_of_block_or_statement (parser);
!       return result;
      }
    if (nested && !specs->declspecs_seen_p)
      {
        c_parser_error (parser, "expected declaration specifiers");
        c_parser_skip_to_end_of_block_or_statement (parser);
!       return result;
      }
  
    finish_declspecs (specs);
*************** c_parser_declaration_or_fndef (c_parser
*** 2349,2354 ****
--- 2458,2464 ----
  	  break;
  	}
      }
+ 
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        bool handled_assume = false;
*************** c_parser_declaration_or_fndef (c_parser
*** 2363,2372 ****
  	  while (parser->in_omp_attribute_pragma)
  	    {
  	      gcc_assert (c_parser_next_token_is (parser, CPP_PRAGMA));
! 	      c_parser_pragma (parser, pragma_external, NULL);
  	    }
  	  c_parser_consume_token (parser);
! 	  return;
  	}
        if (specs->typespec_kind == ctsk_none
  	  && lookup_attribute ("gnu", "assume", specs->attrs))
--- 2473,2482 ----
  	  while (parser->in_omp_attribute_pragma)
  	    {
  	      gcc_assert (c_parser_next_token_is (parser, CPP_PRAGMA));
! 	      c_parser_pragma (parser, pragma_external, NULL, NULL_TREE);
  	    }
  	  c_parser_consume_token (parser);
! 	  return result;
  	}
        if (specs->typespec_kind == ctsk_none
  	  && lookup_attribute ("gnu", "assume", specs->attrs))
*************** c_parser_declaration_or_fndef (c_parser
*** 2408,2414 ****
        c_parser_consume_token (parser);
        if (oacc_routine_data)
  	c_finish_oacc_routine (oacc_routine_data, NULL_TREE, false);
!       return;
      }
  
    /* Provide better error recovery.  Note that a type name here is usually
--- 2518,2550 ----
        c_parser_consume_token (parser);
        if (oacc_routine_data)
  	c_finish_oacc_routine (oacc_routine_data, NULL_TREE, false);
!       return result;
!     }
!   else if (specs->typespec_kind == ctsk_none
! 	   && nested
! 	   /* Only parse __attribute__((musttail)) when called from
! 	      c_parser_compound_statement_nostart.  This certainly isn't
! 	      a declaration in that case, but we don't do tentative parsing
! 	      of GNU attributes right now.  */
! 	   && fallthru_attr_p
! 	   && c_parser_next_token_is_keyword (parser, RID_RETURN))
!     {
!       attr_state astate = {};
!       specs->attrs = c_parser_handle_musttail (parser, specs->attrs, astate);
!       if (astate.musttail_p)
! 	{
! 	  if (specs->attrs)
! 	    {
! 	      auto_urlify_attributes sentinel;
! 	      warning_at (c_parser_peek_token (parser)->location,
! 			  OPT_Wattributes,
! 			  "attribute %<musttail%> mixed with other attributes "
! 			  "on %<return%> statement");
! 	    }
! 	  c_parser_statement_after_labels (parser, NULL, NULL_TREE, NULL,
! 					   astate);
! 	  return result;
! 	}
      }
  
    /* Provide better error recovery.  Note that a type name here is usually
*************** c_parser_declaration_or_fndef (c_parser
*** 2421,2427 ****
        c_parser_error (parser, "expected %<;%>, identifier or %<(%>");
        parser->error = false;
        shadow_tag_warned (specs, 1);
!       return;
      }
    else if (c_dialect_objc () && !any_auto_type_p)
      {
--- 2557,2563 ----
        c_parser_error (parser, "expected %<;%>, identifier or %<(%>");
        parser->error = false;
        shadow_tag_warned (specs, 1);
!       return result;
      }
    else if (c_dialect_objc () && !any_auto_type_p)
      {
*************** c_parser_declaration_or_fndef (c_parser
*** 2431,2440 ****
  	  case CPP_PLUS:
  	  case CPP_MINUS:
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return;
  	    if (specs->attrs)
  	      {
! 		warning_at (c_parser_peek_token (parser)->location, 
  			    OPT_Wattributes,
  	       		    "prefix attributes are ignored for methods");
  		specs->attrs = NULL_TREE;
--- 2567,2576 ----
  	  case CPP_PLUS:
  	  case CPP_MINUS:
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return result;
  	    if (specs->attrs)
  	      {
! 		warning_at (c_parser_peek_token (parser)->location,
  			    OPT_Wattributes,
  	       		    "prefix attributes are ignored for methods");
  		specs->attrs = NULL_TREE;
*************** c_parser_declaration_or_fndef (c_parser
*** 2443,2449 ****
  	      c_parser_objc_method_definition (parser);
  	    else
  	      c_parser_objc_methodproto (parser);
! 	    return;
  	    break;
  	  default:
  	    break;
--- 2579,2585 ----
  	      c_parser_objc_method_definition (parser);
  	    else
  	      c_parser_objc_methodproto (parser);
! 	    return result;
  	    break;
  	  default:
  	    break;
*************** c_parser_declaration_or_fndef (c_parser
*** 2458,2489 ****
  	case RID_AT_INTERFACE:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return;
  	    c_parser_objc_class_definition (parser, specs->attrs);
! 	    return;
  	  }
  	  break;
  	case RID_AT_IMPLEMENTATION:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return;
  	    if (specs->attrs)
  	      {
! 		warning_at (c_parser_peek_token (parser)->location, 
  			OPT_Wattributes,
  			"prefix attributes are ignored for implementations");
  		specs->attrs = NULL_TREE;
  	      }
! 	    c_parser_objc_class_definition (parser, NULL_TREE);	    
! 	    return;
  	  }
  	  break;
  	case RID_AT_PROTOCOL:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return;
  	    c_parser_objc_protocol_definition (parser, specs->attrs);
! 	    return;
  	  }
  	  break;
  	case RID_AT_ALIAS:
--- 2594,2625 ----
  	case RID_AT_INTERFACE:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return result;
  	    c_parser_objc_class_definition (parser, specs->attrs);
! 	    return result;
  	  }
  	  break;
  	case RID_AT_IMPLEMENTATION:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return result;
  	    if (specs->attrs)
  	      {
! 		warning_at (c_parser_peek_token (parser)->location,
  			OPT_Wattributes,
  			"prefix attributes are ignored for implementations");
  		specs->attrs = NULL_TREE;
  	      }
! 	    c_parser_objc_class_definition (parser, NULL_TREE);
! 	    return result;
  	  }
  	  break;
  	case RID_AT_PROTOCOL:
  	  {
  	    if (c_parser_objc_diagnose_bad_element_prefix (parser, specs))
! 	      return result;
  	    c_parser_objc_protocol_definition (parser, specs->attrs);
! 	    return result;
  	  }
  	  break;
  	case RID_AT_ALIAS:
*************** c_parser_declaration_or_fndef (c_parser
*** 2515,2520 ****
--- 2651,2657 ----
    prefix_attrs = specs->attrs;
    all_prefix_attrs = prefix_attrs;
    specs->attrs = NULL_TREE;
+   bool more_than_one_decl = false;
    while (true)
      {
        struct c_declarator *declarator;
*************** c_parser_declaration_or_fndef (c_parser
*** 2527,2533 ****
  	 should diagnose if there were no declaration specifiers) or a
  	 function definition (in which case the diagnostic for
  	 implicit int suffices).  */
!       declarator = c_parser_declarator (parser, 
  					specs->typespec_kind != ctsk_none,
  					C_DTR_NORMAL, &dummy);
        if (declarator == NULL)
--- 2664,2670 ----
  	 should diagnose if there were no declaration specifiers) or a
  	 function definition (in which case the diagnostic for
  	 implicit int suffices).  */
!       declarator = c_parser_declarator (parser,
  					specs->typespec_kind != ctsk_none,
  					C_DTR_NORMAL, &dummy);
        if (declarator == NULL)
*************** c_parser_declaration_or_fndef (c_parser
*** 2537,2544 ****
  				       omp_declare_simd_clauses);
  	  if (oacc_routine_data)
  	    c_finish_oacc_routine (oacc_routine_data, NULL_TREE, false);
! 	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return;
  	}
        if (flag_openmp || flag_openmp_simd)
  	{
--- 2674,2683 ----
  				       omp_declare_simd_clauses);
  	  if (oacc_routine_data)
  	    c_finish_oacc_routine (oacc_routine_data, NULL_TREE, false);
! 	  /* This check is here purely to improve the diagnostic.  */
! 	  if (!simple_ok)
! 	    c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return result;
  	}
        if (flag_openmp || flag_openmp_simd)
  	{
*************** c_parser_declaration_or_fndef (c_parser
*** 2555,2561 ****
  		    "%<__auto_type%> requires a plain identifier"
  		    " as declarator");
  	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return;
  	}
        if (std_auto_type_p)
  	{
--- 2694,2700 ----
  		    "%<__auto_type%> requires a plain identifier"
  		    " as declarator");
  	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return result;
  	}
        if (std_auto_type_p)
  	{
*************** c_parser_declaration_or_fndef (c_parser
*** 2568,2574 ****
  			"%<auto%> requires a plain identifier, possibly with"
  			" attributes, as declarator");
  	      c_parser_skip_to_end_of_block_or_statement (parser);
! 	      return;
  	    }
  	  underspec_name = d->u.id.id;
  	}
--- 2707,2713 ----
  			"%<auto%> requires a plain identifier, possibly with"
  			" attributes, as declarator");
  	      c_parser_skip_to_end_of_block_or_statement (parser);
! 	      return result;
  	    }
  	  underspec_name = d->u.id.id;
  	}
*************** c_parser_declaration_or_fndef (c_parser
*** 2609,2615 ****
  		  error_at (here, "attributes should be specified before the "
  			    "declarator in a function definition");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return;
  		}
  	    }
  	  if (c_parser_next_token_is (parser, CPP_EQ))
--- 2748,2754 ----
  		  error_at (here, "attributes should be specified before the "
  			    "declarator in a function definition");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return result;
  		}
  	    }
  	  if (c_parser_next_token_is (parser, CPP_EQ))
*************** c_parser_declaration_or_fndef (c_parser
*** 2663,2670 ****
  		      /* Postfix [[]] attributes are valid with C23
  			 auto, although not with __auto_type, and
  			 modify the type given by the initializer.  */
! 		      specs->postfix_attrs =
! 			c_warn_type_attributes (specs->postfix_attrs);
  		      decl_attributes (&specs->type, specs->postfix_attrs, 0);
  		      specs->postfix_attrs = NULL_TREE;
  		    }
--- 2802,2810 ----
  		      /* Postfix [[]] attributes are valid with C23
  			 auto, although not with __auto_type, and
  			 modify the type given by the initializer.  */
! 		      specs->postfix_attrs
! 			= c_warn_type_attributes (specs->type,
! 						  specs->postfix_attrs);
  		      decl_attributes (&specs->type, specs->postfix_attrs, 0);
  		      specs->postfix_attrs = NULL_TREE;
  		    }
*************** c_parser_declaration_or_fndef (c_parser
*** 2748,2753 ****
--- 2888,2894 ----
  		  maybe_warn_string_init (init_loc, TREE_TYPE (d), init);
  		  finish_decl (d, init_loc, init.value,
  			       init.original_type, asm_name);
+ 		  result = d;
  		}
  	    }
  	  else
*************** c_parser_declaration_or_fndef (c_parser
*** 2758,2764 ****
  			    "%qs requires an initialized data declaration",
  			    any_auto_type_p ? auto_type_keyword : "constexpr");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return;
  		}
  
  	      location_t lastloc = UNKNOWN_LOCATION;
--- 2899,2905 ----
  			    "%qs requires an initialized data declaration",
  			    any_auto_type_p ? auto_type_keyword : "constexpr");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return result;
  		}
  
  	      location_t lastloc = UNKNOWN_LOCATION;
*************** c_parser_declaration_or_fndef (c_parser
*** 2846,2863 ****
  		  if (d)
  		    *objc_foreach_object_declaration = d;
  		  else
! 		    *objc_foreach_object_declaration = error_mark_node;		    
  		}
  	    }
  	  if (c_parser_next_token_is (parser, CPP_COMMA))
  	    {
  	      if (any_auto_type_p || specs->constexpr_p)
  		{
  		  error_at (here,
  			    "%qs may only be used with a single declarator",
  			    any_auto_type_p ? auto_type_keyword : "constexpr");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return;
  		}
  	      c_parser_consume_token (parser);
  	      if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
--- 2987,3005 ----
  		  if (d)
  		    *objc_foreach_object_declaration = d;
  		  else
! 		    *objc_foreach_object_declaration = error_mark_node;
  		}
  	    }
  	  if (c_parser_next_token_is (parser, CPP_COMMA))
  	    {
+ 	      more_than_one_decl = true;
  	      if (any_auto_type_p || specs->constexpr_p)
  		{
  		  error_at (here,
  			    "%qs may only be used with a single declarator",
  			    any_auto_type_p ? auto_type_keyword : "constexpr");
  		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		  return result;
  		}
  	      c_parser_consume_token (parser);
  	      if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
*************** c_parser_declaration_or_fndef (c_parser
*** 2869,2876 ****
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
  	    {
! 	      c_parser_consume_token (parser);
! 	      return;
  	    }
  	  else if (c_parser_next_token_is_keyword (parser, RID_IN))
  	    {
--- 3011,3019 ----
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
  	    {
! 	      if (!simple_ok)
! 		c_parser_consume_token (parser);
! 	      return result;
  	    }
  	  else if (c_parser_next_token_is_keyword (parser, RID_IN))
  	    {
*************** c_parser_declaration_or_fndef (c_parser
*** 2879,2891 ****
  		 Objective-C foreach statement.  Do not consume the
  		 token, so that the caller can use it to determine
  		 that this indeed is a foreach context.  */
! 	      return;
  	    }
  	  else
  	    {
! 	      c_parser_error (parser, "expected %<,%> or %<;%>");
! 	      c_parser_skip_to_end_of_block_or_statement (parser);
! 	      return;
  	    }
  	}
        else if (any_auto_type_p || specs->constexpr_p)
--- 3022,3041 ----
  		 Objective-C foreach statement.  Do not consume the
  		 token, so that the caller can use it to determine
  		 that this indeed is a foreach context.  */
! 	      return result;
  	    }
  	  else
  	    {
! 	      if (!simple_ok)
! 		{
! 		  c_parser_error (parser, "expected %<,%> or %<;%>");
! 		  c_parser_skip_to_end_of_block_or_statement (parser);
! 		}
! 	      /* It's not valid to use if (int i = 2, j = 3).  */
! 	      else if (more_than_one_decl)
! 		error_at (here, "declaration in condition can only declare "
! 			  "a single object");
! 	      return result;
  	    }
  	}
        else if (any_auto_type_p || specs->constexpr_p)
*************** c_parser_declaration_or_fndef (c_parser
*** 2894,2907 ****
  		    "%qs requires an initialized data declaration",
  		    any_auto_type_p ? auto_type_keyword : "constexpr");
  	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return;
  	}
        else if (!fndef_ok)
  	{
! 	  c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, "
! 			  "%<asm%> or %<__attribute__%>");
! 	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return;
  	}
        /* Function definition (nested or otherwise).  */
        if (nested)
--- 3044,3062 ----
  		    "%qs requires an initialized data declaration",
  		    any_auto_type_p ? auto_type_keyword : "constexpr");
  	  c_parser_skip_to_end_of_block_or_statement (parser);
! 	  return result;
  	}
        else if (!fndef_ok)
  	{
! 	  if (simple_ok && c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
! 	    /* Let c_parser_selection_header emit the error.  */;
! 	  else
! 	    {
! 	      c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, "
! 			      "%<asm%> or %<__attribute__%>");
! 	      c_parser_skip_to_end_of_block_or_statement (parser);
! 	    }
! 	  return result;
  	}
        /* Function definition (nested or otherwise).  */
        if (nested)
*************** c_parser_declaration_or_fndef (c_parser
*** 2967,2976 ****
  	 function definitions either.  */
        int save_debug_nonbind_markers_p = debug_nonbind_markers_p;
        debug_nonbind_markers_p = 0;
        while (c_parser_next_token_is_not (parser, CPP_EOF)
  	     && c_parser_next_token_is_not (parser, CPP_OPEN_BRACE))
  	c_parser_declaration_or_fndef (parser, false, false, false,
! 				       true, false);
        debug_nonbind_markers_p = save_debug_nonbind_markers_p;
        store_parm_decls ();
        if (omp_declare_simd_clauses)
--- 3122,3132 ----
  	 function definitions either.  */
        int save_debug_nonbind_markers_p = debug_nonbind_markers_p;
        debug_nonbind_markers_p = 0;
+       c_parser_maybe_reclassify_token (parser);
        while (c_parser_next_token_is_not (parser, CPP_EOF)
  	     && c_parser_next_token_is_not (parser, CPP_OPEN_BRACE))
  	c_parser_declaration_or_fndef (parser, false, false, false,
! 				       true, false, false);
        debug_nonbind_markers_p = save_debug_nonbind_markers_p;
        store_parm_decls ();
        if (omp_declare_simd_clauses)
*************** c_parser_declaration_or_fndef (c_parser
*** 3000,3006 ****
  	  pop_scope ();
  
  	  finish_function (endloc);
! 	  return;
  	}
        /* If the definition was marked with __GIMPLE then parse the
           function body as GIMPLE.  */
--- 3156,3162 ----
  	  pop_scope ();
  
  	  finish_function (endloc);
! 	  return result;
  	}
        /* If the definition was marked with __GIMPLE then parse the
           function body as GIMPLE.  */
*************** c_parser_declaration_or_fndef (c_parser
*** 3041,3046 ****
--- 3197,3204 ----
  
        break;
      }
+ 
+   return result;
  }
  
  /* Parse an asm-definition (asm() outside a function body).  This is a
*************** c_parser_declaration_or_fndef (c_parser
*** 3048,3059 ****
  
     asm-definition:
       simple-asm-expr ;
! */
  
  static void
  c_parser_asm_definition (c_parser *parser)
  {
!   tree asm_str = c_parser_simple_asm_expr (parser);
    if (asm_str)
      symtab->finalize_toplevel_asm (asm_str);
    c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
--- 3206,3279 ----
  
     asm-definition:
       simple-asm-expr ;
!      asm ( toplevel-asm-argument ) ;
! 
!    toplevel-asm-argument:
!      asm-string-literal
!      asm-string-literal : asm-operands[opt]
!      asm-string-literal : asm-operands[opt] : asm-operands[opt]
! 
!    The :: token is considered equivalent to two consecutive : tokens.  */
  
  static void
  c_parser_asm_definition (c_parser *parser)
  {
!   location_t asm_loc = c_parser_peek_token (parser)->location;
!   gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM));
!   c_parser_consume_token (parser);
!   matching_parens parens;
!   tree asm_str = NULL_TREE;
!   tree outputs = NULL_TREE, inputs = NULL_TREE;
!   if (!parens.require_open (parser))
!     goto done;
!   asm_str = c_parser_asm_string_literal (parser);
!   if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
!     {
!       parens.require_close (parser);
!       goto done;
!     }
!   for (int section = 0; section < 2; ++section)
!     {
!       if (c_parser_next_token_is (parser, CPP_SCOPE))
! 	{
! 	  ++section;
! 	  if (section == 2)
! 	    {
! 	      c_parser_error (parser, "expected %<)%>");
! 	    error_close_paren:
! 	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
! 	      asm_str = NULL_TREE;
! 	      goto done;
! 	    }
! 	  c_parser_consume_token (parser);
! 	}
!       else if (!c_parser_require (parser, CPP_COLON,
! 				  "expected %<:%> or %<)%>",
! 				  UNKNOWN_LOCATION, false))
! 	goto error_close_paren;
!       if (!c_parser_next_token_is (parser, CPP_COLON)
! 	  && !c_parser_next_token_is (parser, CPP_SCOPE)
! 	  && !c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
! 	{
! 	  if (section)
! 	    inputs = c_parser_asm_operands (parser);
! 	  else
! 	    outputs = c_parser_asm_operands (parser);
! 	}
!       if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
! 	break;
!     }
! 
!   if (!parens.require_close (parser))
!     {
!       c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
!       asm_str = NULL_TREE;
!     }
! 
!   if (asm_str)
!     asm_str = build_asm_expr (asm_loc, asm_str, outputs, inputs,
! 			      NULL_TREE, NULL_TREE, false, false);
! done:
    if (asm_str)
      symtab->finalize_toplevel_asm (asm_str);
    c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
*************** c_parser_declspecs (c_parser *parser, st
*** 3453,3458 ****
--- 3673,3679 ----
  	case RID_DFLOAT32:
  	case RID_DFLOAT64:
  	case RID_DFLOAT128:
+ 	case RID_DFLOAT64X:
  	CASE_RID_FLOATN_NX:
  	case RID_BOOL:
  	case RID_FRACT:
*************** c_parser_declspecs (c_parser *parser, st
*** 3626,3631 ****
--- 3847,3893 ----
      specs->postfix_attrs = c_parser_std_attribute_specifier_sequence (parser);
  }
  
+ /* Complain about a non-CPP_NAME within an enumerator list.  */
+ 
+ static void
+ report_bad_enum_name (c_parser *parser)
+ {
+   if (!parser->error)
+     {
+       c_token *token = c_parser_peek_token (parser);
+       switch (token->type)
+ 	{
+ 	default:
+ 	  break;
+ 	case CPP_CLOSE_BRACE:
+ 	  /* Give a nicer error for "enum {}".  */
+ 	  error_at (token->location,
+ 		    "empty enum is invalid");
+ 	  parser->error = true;
+ 	  return;
+ 	case CPP_KEYWORD:
+ 	  /* Give a nicer error for attempts to use "true" and "false"
+ 	     in enums with C23 onwards.  */
+ 	  if (token->keyword == RID_FALSE
+ 	      || token->keyword == RID_TRUE)
+ 	    {
+ 	      auto_diagnostic_group d;
+ 	      error_at (token->location,
+ 			"cannot use keyword %qs as enumeration constant",
+ 			IDENTIFIER_POINTER (token->value));
+ 	      add_note_about_new_keyword (token->location,
+ 					  token->value);
+ 	      parser->error = true;
+ 	      return;
+ 	    }
+ 	  break;
+ 	}
+     }
+ 
+   /* Otherwise, a more generic error message.  */
+   c_parser_error (parser, "expected identifier");
+ }
+ 
  /* Parse an enum specifier (C90 6.5.2.2, C99 6.7.2.2, C11 6.7.2.2).
  
     enum-specifier:
*************** c_parser_enum_specifier (c_parser *parse
*** 3793,3808 ****
  	  location_t decl_loc, value_loc;
  	  if (c_parser_next_token_is_not (parser, CPP_NAME))
  	    {
! 	      /* Give a nicer error for "enum {}".  */
! 	      if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)
! 		  && !parser->error)
! 		{
! 		  error_at (c_parser_peek_token (parser)->location,
! 			    "empty enum is invalid");
! 		  parser->error = true;
! 		}
! 	      else
! 		c_parser_error (parser, "expected identifier");
  	      c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL);
  	      values = error_mark_node;
  	      break;
--- 4055,4061 ----
  	  location_t decl_loc, value_loc;
  	  if (c_parser_next_token_is_not (parser, CPP_NAME))
  	    {
! 	      report_bad_enum_name (parser);
  	      c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL);
  	      values = error_mark_node;
  	      break;
*************** c_parser_struct_or_union_specifier (c_pa
*** 4056,4062 ****
  	  /* Accept #pragmas at struct scope.  */
  	  if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	    {
! 	      c_parser_pragma (parser, pragma_struct, NULL);
  	      continue;
  	    }
  	  /* Parse some comma-separated declarations, but not the
--- 4309,4315 ----
  	  /* Accept #pragmas at struct scope.  */
  	  if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	    {
! 	      c_parser_pragma (parser, pragma_struct, NULL, NULL_TREE);
  	      continue;
  	    }
  	  /* Parse some comma-separated declarations, but not the
*************** c_parser_typeof_specifier (c_parser *par
*** 4386,4393 ****
    parens.skip_until_found_close (parser);
    if (ret.spec != error_mark_node)
      {
!       if (is_unqual && TYPE_QUALS (ret.spec) != TYPE_UNQUALIFIED)
! 	ret.spec = TYPE_MAIN_VARIANT (ret.spec);
        if (is_std)
  	{
  	  /* In ISO C terms, _Noreturn is not part of the type of
--- 4639,4657 ----
    parens.skip_until_found_close (parser);
    if (ret.spec != error_mark_node)
      {
!       if (is_unqual)
! 	{
! 	  bool is_array = TREE_CODE (ret.spec) == ARRAY_TYPE;
! 	  int quals = TYPE_QUALS (strip_array_types (ret.spec));
! 	  if ((is_array ? quals & ~TYPE_QUAL_ATOMIC : quals)
! 	      != TYPE_UNQUALIFIED)
! 	    {
! 	      ret.spec = TYPE_MAIN_VARIANT (ret.spec);
! 	      if (quals & TYPE_QUAL_ATOMIC && is_array)
! 		ret.spec = c_build_qualified_type (ret.spec,
! 						   TYPE_QUAL_ATOMIC);
! 	    }
! 	}
        if (is_std)
  	{
  	  /* In ISO C terms, _Noreturn is not part of the type of
*************** c_parser_typeof_specifier (c_parser *par
*** 4399,4405 ****
  	  else if (FUNCTION_POINTER_TYPE_P (ret.spec)
  		   && TYPE_QUALS (TREE_TYPE (ret.spec)) != TYPE_UNQUALIFIED)
  	    ret.spec
! 	      = build_pointer_type (TYPE_MAIN_VARIANT (TREE_TYPE (ret.spec)));
  	}
      }
    return ret;
--- 4663,4669 ----
  	  else if (FUNCTION_POINTER_TYPE_P (ret.spec)
  		   && TYPE_QUALS (TREE_TYPE (ret.spec)) != TYPE_UNQUALIFIED)
  	    ret.spec
! 	      = c_build_pointer_type (TYPE_MAIN_VARIANT (TREE_TYPE (ret.spec)));
  	}
      }
    return ret;
*************** c_parser_direct_declarator_inner (c_pars
*** 4708,4715 ****
        location_t brace_loc = c_parser_peek_token (parser)->location;
        struct c_declarator *declarator;
        struct c_declspecs *quals_attrs = build_null_declspecs ();
-       bool static_seen;
-       bool star_seen;
        struct c_expr dimen;
        dimen.value = NULL_TREE;
        dimen.original_code = ERROR_MARK;
--- 4972,4977 ----
*************** c_parser_direct_declarator_inner (c_pars
*** 4717,4765 ****
        c_parser_consume_token (parser);
        c_parser_declspecs (parser, quals_attrs, false, false, true,
  			  false, false, false, false, cla_prefer_id);
!       static_seen = c_parser_next_token_is_keyword (parser, RID_STATIC);
!       if (static_seen)
! 	c_parser_consume_token (parser);
!       if (static_seen && !quals_attrs->declspecs_seen_p)
! 	c_parser_declspecs (parser, quals_attrs, false, false, true,
! 			    false, false, false, false, cla_prefer_id);
        if (!quals_attrs->declspecs_seen_p)
  	quals_attrs = NULL;
        /* If "static" is present, there must be an array dimension.
  	 Otherwise, there may be a dimension, "*", or no
  	 dimension.  */
!       if (static_seen)
  	{
! 	  star_seen = false;
! 	  dimen = c_parser_expr_no_commas (parser, NULL);
  	}
!       else
  	{
! 	  if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
! 	    {
! 	      dimen.value = NULL_TREE;
! 	      star_seen = false;
! 	    }
! 	  else if (c_parser_next_token_is (parser, CPP_MULT))
! 	    {
! 	      if (c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_SQUARE)
! 		{
! 		  dimen.value = NULL_TREE;
! 		  star_seen = true;
! 		  c_parser_consume_token (parser);
! 		}
! 	      else
! 		{
! 		  star_seen = false;
! 		  dimen = c_parser_expr_no_commas (parser, NULL);
! 		}
! 	    }
! 	  else
  	    {
  	      star_seen = false;
! 	      dimen = c_parser_expr_no_commas (parser, NULL);
  	    }
  	}
        if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
  	c_parser_consume_token (parser);
        else
--- 4979,5026 ----
        c_parser_consume_token (parser);
        c_parser_declspecs (parser, quals_attrs, false, false, true,
  			  false, false, false, false, cla_prefer_id);
! 
!       location_t static_loc = UNKNOWN_LOCATION;
!       if (c_parser_next_token_is_keyword (parser, RID_STATIC))
! 	{
! 	  static_loc = c_parser_peek_token (parser)->location;
! 	  c_parser_consume_token (parser);
! 	  if (!quals_attrs->declspecs_seen_p)
! 	    c_parser_declspecs (parser, quals_attrs, false, false, true,
! 				false, false, false, false, cla_prefer_id);
! 	}
        if (!quals_attrs->declspecs_seen_p)
  	quals_attrs = NULL;
        /* If "static" is present, there must be an array dimension.
  	 Otherwise, there may be a dimension, "*", or no
  	 dimension.  */
!       const bool static_seen = (static_loc != UNKNOWN_LOCATION);
!       bool star_seen = false;
!       if (c_parser_next_token_is (parser, CPP_MULT)
! 	  && c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_SQUARE)
  	{
! 	  star_seen = true;
! 	  c_parser_consume_token (parser);
  	}
!       else if (!c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
! 	dimen = c_parser_expr_no_commas (parser, NULL);
! 
!       if (static_seen)
  	{
! 	  if (star_seen)
  	    {
+ 	      error_at (static_loc,
+ 			"%<static%> may not be used with an unspecified "
+ 			"variable length array size");
+ 	      /* Prevent further errors.  */
  	      star_seen = false;
! 	      dimen.value = error_mark_node;
  	    }
+ 	  else if (!dimen.value)
+ 	    error_at (static_loc,
+ 		      "%<static%> may not be used without an array size");
  	}
+ 
        if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
  	c_parser_consume_token (parser);
        else
*************** c_parser_parms_declarator (c_parser *par
*** 4835,4841 ****
        && !attrs
        && c_parser_next_token_is (parser, CPP_NAME)
        && c_parser_peek_token (parser)->id_kind == C_ID_ID
!       
        /* Look ahead to detect typos in type names.  */
        && c_parser_peek_2nd_token (parser)->type != CPP_NAME
        && c_parser_peek_2nd_token (parser)->type != CPP_MULT
--- 5096,5102 ----
        && !attrs
        && c_parser_next_token_is (parser, CPP_NAME)
        && c_parser_peek_token (parser)->id_kind == C_ID_ID
! 
        /* Look ahead to detect typos in type names.  */
        && c_parser_peek_2nd_token (parser)->type != CPP_NAME
        && c_parser_peek_2nd_token (parser)->type != CPP_MULT
*************** c_parser_parameter_declaration (c_parser
*** 5011,5017 ****
  
    /* Accept #pragmas between parameter declarations.  */
    while (c_parser_next_token_is (parser, CPP_PRAGMA))
!     c_parser_pragma (parser, pragma_param, NULL);
  
    if (!c_parser_next_token_starts_declspecs (parser)
        && !c_parser_nth_token_starts_std_attributes (parser, 1))
--- 5272,5278 ----
  
    /* Accept #pragmas between parameter declarations.  */
    while (c_parser_next_token_is (parser, CPP_PRAGMA))
!     c_parser_pragma (parser, pragma_param, NULL, NULL_TREE);
  
    if (!c_parser_next_token_starts_declspecs (parser)
        && !c_parser_nth_token_starts_std_attributes (parser, 1))
*************** c_parser_gnu_attribute_any_word (c_parse
*** 5180,5185 ****
--- 5441,5447 ----
  	case RID_DFLOAT32:
  	case RID_DFLOAT64:
  	case RID_DFLOAT128:
+ 	case RID_DFLOAT64X:
  	CASE_RID_FLOATN_NX:
  	case RID_BOOL:
  	case RID_BITINT:
*************** c_parser_nth_token_starts_std_attributes
*** 5992,5997 ****
--- 6254,6290 ----
    return token->type == CPP_CLOSE_SQUARE;
  }
  
+ /* Skip standard attribute tokens starting at Nth token (with 1 as the
+    next token), return index of the first token after the standard
+    attribute tokens, or N on failure.  */
+ 
+ static size_t
+ c_parser_skip_std_attribute_spec_seq (c_parser *parser, size_t n)
+ {
+   size_t orig_n = n;
+   while (true)
+     {
+       if (c_parser_peek_nth_token_raw (parser, n)->type == CPP_OPEN_SQUARE
+ 	  && (c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 	      == CPP_OPEN_SQUARE))
+ 	{
+ 	  unsigned int m = n + 2;
+ 	  if (!c_parser_check_balanced_raw_token_sequence (parser, &m))
+ 	    return orig_n;
+ 	  c_token *token = c_parser_peek_nth_token_raw (parser, m);
+ 	  if (token->type != CPP_CLOSE_SQUARE)
+ 	    return orig_n;
+ 	  token = c_parser_peek_nth_token_raw (parser, m + 1);
+ 	  if (token->type != CPP_CLOSE_SQUARE)
+ 	    return orig_n;
+ 	  n = m + 2;
+ 	}
+       else
+ 	break;
+     }
+   return n;
+ }
+ 
  static tree
  c_parser_std_attribute_specifier_sequence (c_parser *parser)
  {
*************** c_parser_braced_init (c_parser *parser,
*** 6146,6151 ****
--- 6439,6445 ----
    gcc_assert (c_parser_next_token_is (parser, CPP_OPEN_BRACE));
    bool save_c_omp_array_section_p = c_omp_array_section_p;
    c_omp_array_section_p = false;
+   bool zero_init_padding_bits = false;
    matching_braces braces;
    braces.consume_open (parser);
    if (nested_p)
*************** c_parser_braced_init (c_parser *parser,
*** 6159,6164 ****
--- 6453,6460 ----
      {
        pedwarn_c11 (brace_loc, OPT_Wpedantic,
  		   "ISO C forbids empty initializer braces before C23");
+       if (flag_isoc23)
+ 	zero_init_padding_bits = true;
      }
    else
      {
*************** c_parser_braced_init (c_parser *parser,
*** 6177,6182 ****
--- 6473,6497 ----
  	    {
  	      last_init_list_comma = c_parser_peek_token (parser)->location;
  	      c_parser_consume_token (parser);
+ 	      /* CPP_EMBED should be always in between two CPP_COMMA
+ 		 tokens.  */
+ 	      while (c_parser_next_token_is (parser, CPP_EMBED))
+ 		{
+ 		  c_token *embed = c_parser_peek_token (parser);
+ 		  c_parser_consume_token (parser);
+ 		  c_expr embed_val;
+ 		  embed_val.value = embed->value;
+ 		  embed_val.original_code = RAW_DATA_CST;
+ 		  embed_val.original_type = integer_type_node;
+ 		  set_c_expr_source_range (&embed_val, embed->get_range ());
+ 		  embed_val.m_decimal = 0;
+ 		  process_init_element (embed->location, embed_val, false,
+ 					&braced_init_obstack);
+ 		  gcc_checking_assert (c_parser_next_token_is (parser,
+ 							       CPP_COMMA));
+ 		  last_init_list_comma = c_parser_peek_token (parser)->location;
+ 		  c_parser_consume_token (parser);
+ 		}
  	    }
  	  else
  	    break;
*************** c_parser_braced_init (c_parser *parser,
*** 6199,6204 ****
--- 6514,6523 ----
    location_t close_loc = next_tok->location;
    c_parser_consume_token (parser);
    ret = pop_init_level (brace_loc, 0, &braced_init_obstack, close_loc);
+   if (zero_init_padding_bits
+       && ret.value
+       && TREE_CODE (ret.value) == CONSTRUCTOR)
+     CONSTRUCTOR_ZERO_PADDING_BITS (ret.value) = 1;
    obstack_free (&braced_init_obstack, NULL);
    set_c_expr_source_range (&ret, brace_loc, close_loc);
    return ret;
*************** c_parser_initval (c_parser *parser, stru
*** 6444,6450 ****
--- 6763,6892 ----
  					    (init.value))))
  	init = convert_lvalue_to_rvalue (loc, init, true, true, true);
      }
+   tree val = init.value;
    process_init_element (loc, init, false, braced_init_obstack);
+ 
+   /* Attempt to optimize large char array initializers into RAW_DATA_CST
+      to save compile time and memory even when not using #embed.  */
+   static unsigned vals_to_ignore;
+   if (vals_to_ignore)
+     /* If earlier call determined there is certain number of CPP_COMMA
+        CPP_NUMBER tokens with 0-255 int values, but not enough for
+        RAW_DATA_CST to be beneficial, don't try to check it again until
+        they are all parsed.  */
+     --vals_to_ignore;
+   else if (val
+ 	   && TREE_CODE (val) == INTEGER_CST
+ 	   && TREE_TYPE (val) == integer_type_node
+ 	   && c_parser_next_token_is (parser, CPP_COMMA))
+     if (unsigned int len = c_maybe_optimize_large_byte_initializer ())
+       {
+ 	char buf1[64];
+ 	unsigned int i;
+ 	gcc_checking_assert (len >= 64);
+ 	location_t last_loc = UNKNOWN_LOCATION;
+ 	for (i = 0; i < 64; ++i)
+ 	  {
+ 	    c_token *tok = c_parser_peek_nth_token_raw (parser, 1 + 2 * i);
+ 	    if (tok->type != CPP_COMMA)
+ 	      break;
+ 	    tok = c_parser_peek_nth_token_raw (parser, 2 + 2 * i);
+ 	    if (tok->type != CPP_NUMBER
+ 		|| TREE_CODE (tok->value) != INTEGER_CST
+ 		|| TREE_TYPE (tok->value) != integer_type_node
+ 		|| wi::neg_p (wi::to_wide (tok->value))
+ 		|| wi::to_widest (tok->value) > UCHAR_MAX)
+ 	      break;
+ 	    buf1[i] = (char) tree_to_uhwi (tok->value);
+ 	    if (i == 0)
+ 	      loc = tok->location;
+ 	    last_loc = tok->location;
+ 	  }
+ 	if (i < 64)
+ 	  {
+ 	    vals_to_ignore = i;
+ 	    return;
+ 	  }
+ 	c_token *tok = c_parser_peek_nth_token_raw (parser, 1 + 2 * i);
+ 	/* If 64 CPP_COMMA CPP_NUMBER pairs are followed by CPP_CLOSE_BRACE,
+ 	   punt if len is INT_MAX as that can mean this is a flexible array
+ 	   member and in that case we need one CPP_NUMBER afterwards
+ 	   (as guaranteed for CPP_EMBED).  */
+ 	if (tok->type == CPP_CLOSE_BRACE && len != INT_MAX)
+ 	  len = i;
+ 	else if (tok->type != CPP_COMMA
+ 		 || (c_parser_peek_nth_token_raw (parser, 2 + 2 * i)->type
+ 		     != CPP_NUMBER))
+ 	  {
+ 	    vals_to_ignore = i;
+ 	    return;
+ 	  }
+ 	/* Ensure the STRING_CST fits into 128K.  */
+ 	unsigned int max_len = 131072 - offsetof (struct tree_string, str) - 1;
+ 	unsigned int orig_len = len;
+ 	unsigned int off = 0, last = 0;
+ 	if (!wi::neg_p (wi::to_wide (val)) && wi::to_widest (val) <= UCHAR_MAX)
+ 	  off = 1;
+ 	len = MIN (len, max_len - off);
+ 	char *buf2 = XNEWVEC (char, len + off);
+ 	if (off)
+ 	  buf2[0] = (char) tree_to_uhwi (val);
+ 	memcpy (buf2 + off, buf1, i);
+ 	for (unsigned int j = 0; j < i; ++j)
+ 	  {
+ 	    c_parser_peek_token (parser);
+ 	    c_parser_consume_token (parser);
+ 	    c_parser_peek_token (parser);
+ 	    c_parser_consume_token (parser);
+ 	  }
+ 	for (; i < len; ++i)
+ 	  {
+ 	    if (!c_parser_next_token_is (parser, CPP_COMMA))
+ 	      break;
+ 	    tok = c_parser_peek_2nd_token (parser);
+ 	    if (tok->type != CPP_NUMBER
+ 		|| TREE_CODE (tok->value) != INTEGER_CST
+ 		|| TREE_TYPE (tok->value) != integer_type_node
+ 		|| wi::neg_p (wi::to_wide (tok->value))
+ 		|| wi::to_widest (tok->value) > UCHAR_MAX)
+ 	      break;
+ 	    c_token *tok2 = c_parser_peek_nth_token (parser, 3);
+ 	    if (tok2->type != CPP_COMMA && tok2->type != CPP_CLOSE_BRACE)
+ 	      break;
+ 	    buf2[i + off] = (char) tree_to_uhwi (tok->value);
+ 	    /* If orig_len is INT_MAX, this can be flexible array member and
+ 	       in that case we need to ensure another element which
+ 	       for CPP_EMBED is normally guaranteed after it.  Include
+ 	       that byte in the RAW_DATA_OWNER though, so it can be optimized
+ 	       later.  */
+ 	    if (orig_len == INT_MAX
+ 		&& (tok2->type == CPP_CLOSE_BRACE
+ 		    || (c_parser_peek_nth_token (parser, 4)->type
+ 			!= CPP_NUMBER)))
+ 	      {
+ 		last = 1;
+ 		break;
+ 	      }
+ 	    last_loc = tok->location;
+ 	    c_parser_consume_token (parser);
+ 	    c_parser_consume_token (parser);
+ 	  }
+ 	val = make_node (RAW_DATA_CST);
+ 	TREE_TYPE (val) = integer_type_node;
+ 	RAW_DATA_LENGTH (val) = i;
+ 	tree owner = build_string (i + off + last, buf2);
+ 	XDELETEVEC (buf2);
+ 	TREE_TYPE (owner) = build_array_type_nelts (unsigned_char_type_node,
+ 						    i + off + last);
+ 	RAW_DATA_OWNER (val) = owner;
+ 	RAW_DATA_POINTER (val) = TREE_STRING_POINTER (owner) + off;
+ 	init.value = val;
+ 	set_c_expr_source_range (&init, loc, last_loc);
+ 	init.original_code = RAW_DATA_CST;
+ 	init.original_type = integer_type_node;
+ 	init.m_decimal = 0;
+ 	process_init_element (loc, init, false, braced_init_obstack);
+       }
  }
  
  /* Parse a compound statement (possibly a function body) (C90 6.6.2,
*************** check_omp_intervening_code (c_parser *pa
*** 6580,6586 ****
  		    "%<reduction%> %<inscan%> clause");
  	  omp_for_parse_state->perfect_nesting_fail = true;
  	}
!       /* TODO: Also reject loops with TILE directive.  */
        if (omp_for_parse_state->perfect_nesting_fail)
  	omp_for_parse_state->fail = true;
      }
--- 7022,7034 ----
  		    "%<reduction%> %<inscan%> clause");
  	  omp_for_parse_state->perfect_nesting_fail = true;
  	}
!       else if (omp_for_parse_state->code == OMP_TILE)
! 	{
! 	  error_at (omp_for_parse_state->for_loc,
! 		    "inner loops must be perfectly nested in "
! 		     "%<pragma omp tile%>");
! 	  omp_for_parse_state->perfect_nesting_fail = true;
! 	}
        if (omp_for_parse_state->perfect_nesting_fail)
  	omp_for_parse_state->fail = true;
      }
*************** c_parser_handle_statement_omp_attributes
*** 6798,6804 ****
      return false;
  
    unsigned int tokens_avail = parser->tokens_avail;
-   gcc_assert (parser->tokens == &parser->tokens_buf[0]);
  
    tokens++;
    vec<c_token, va_gc> *toks = NULL;
--- 7246,7251 ----
*************** c_parser_handle_statement_omp_attributes
*** 6830,6841 ****
    tok.type = CPP_EOF;
    tok.keyword = RID_MAX;
    tok.location = toks->last ().location;
-   tok.flags = tokens_avail;
    toks->quick_push (tok);
  
    parser->tokens = toks->address ();
    parser->tokens_avail = tokens;
-   parser->in_omp_attribute_pragma = toks;
    return true;
  }
  
--- 7277,7291 ----
    tok.type = CPP_EOF;
    tok.keyword = RID_MAX;
    tok.location = toks->last ().location;
    toks->quick_push (tok);
  
+   gcc_assert (!parser->in_omp_attribute_pragma);
+   parser->in_omp_attribute_pragma = ggc_alloc<omp_attribute_pragma_state> ();
+   parser->in_omp_attribute_pragma->token_vec = toks;
+   parser->in_omp_attribute_pragma->save_tokens = parser->tokens;
+   parser->in_omp_attribute_pragma->save_tokens_avail = tokens_avail;
    parser->tokens = toks->address ();
    parser->tokens_avail = tokens;
    return true;
  }
  
*************** c_parser_handle_directive_omp_attributes
*** 6941,6946 ****
--- 7391,7441 ----
      }
  }
  
+ /* Check if STD_ATTR contains a musttail attribute and remove if it
+    precedes a return.  PARSER is the parser and ATTR is the output
+    attr_state.  */
+ 
+ static tree
+ c_parser_handle_musttail (c_parser *parser, tree std_attrs, attr_state &attr)
+ {
+   if (c_parser_next_token_is_keyword (parser, RID_RETURN))
+     {
+       if (tree a = lookup_attribute ("gnu", "musttail", std_attrs))
+ 	{
+ 	  for (; a; a = lookup_attribute ("gnu", "musttail", TREE_CHAIN (a)))
+ 	    if (TREE_VALUE (a))
+ 	      error ("%qs attribute does not take any arguments",
+ 		     "musttail");
+ 	  std_attrs = remove_attribute ("gnu", "musttail", std_attrs);
+ 	  attr.musttail_p = true;
+ 	}
+       if (lookup_attribute ("clang", "musttail", std_attrs))
+ 	{
+ 	  std_attrs = remove_attribute ("clang", "musttail", std_attrs);
+ 	  attr.musttail_p = true;
+ 	}
+     }
+   return std_attrs;
+ }
+ 
+ /* Return a statement before optional series of LABEL_EXPR/CASE_LABEL_EXPRs.
+    Instead of collecting vectors of labels before each stmt just in case
+    the statement would be iteration or switch statement for named loops,
+    we just remember last emitted statement and let the iteration/switch
+    statement search backwards in cur_stmt_list until that stmt for loop
+    names if any.  */
+ 
+ static tree
+ get_before_labels ()
+ {
+   if (!building_stmt_list_p ())
+     return NULL_TREE;
+   tree_stmt_iterator tsi = tsi_last (cur_stmt_list);
+   if (tsi_end_p (tsi))
+     return NULL_TREE;
+   return tsi_stmt (tsi);
+ }
+ 
  /* Parse a compound statement except for the opening brace.  This is
     used for parsing both compound statements and statement expressions
     (which follow different paths to handling the opening).  */
*************** c_parser_compound_statement_nostart (c_p
*** 6957,6962 ****
--- 7452,7458 ----
    bool in_omp_loop_block
      = omp_for_parse_state ? omp_for_parse_state->want_nested_loop : false;
    tree sl = NULL_TREE;
+   attr_state a = {};
  
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
*************** c_parser_compound_statement_nostart (c_p
*** 7016,7021 ****
--- 7512,7518 ----
        c_parser_consume_token (parser);
        return endloc;
      }
+   tree before_labels = get_before_labels ();
    while (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE))
      {
        location_t loc = c_parser_peek_token (parser)->location;
*************** c_parser_compound_statement_nostart (c_p
*** 7030,7037 ****
  	 __extension__ before the nested statement.  */
        if (in_omp_loop_block && !last_label)
  	{
  	  if (want_nested_loop
! 	      && c_parser_next_token_is_keyword (parser, RID_FOR))
  	    {
  	      /* Found the next nested loop.  If there were intervening
  		 code statements collected before now, wrap them in an
--- 7527,7536 ----
  	 __extension__ before the nested statement.  */
        if (in_omp_loop_block && !last_label)
  	{
+ 	  tree_code code = omp_for_parse_state->code;
  	  if (want_nested_loop
! 	      && c_parser_omp_next_tokens_can_be_canon_loop (parser, code,
! 							     false))
  	    {
  	      /* Found the next nested loop.  If there were intervening
  		 code statements collected before now, wrap them in an
*************** c_parser_compound_statement_nostart (c_p
*** 7044,7049 ****
--- 7543,7549 ----
  	      omp_for_parse_state->depth--;
  	      sl = push_stmt_list ();
  	      parser->error = false;
+ 	      before_labels = get_before_labels ();
  	      continue;
  	    }
  	  else if (want_nested_loop
*************** c_parser_compound_statement_nostart (c_p
*** 7057,7063 ****
  	      tree pre_sl = pop_stmt_list (sl);
  	      tree nested_sl = push_stmt_list ();
  	      mark_valid_location_for_stdc_pragma (false);
! 	      c_parser_statement_after_labels (parser, NULL);
  	      nested_sl = pop_stmt_list (nested_sl);
  	      if (omp_for_parse_state->want_nested_loop)
  		{
--- 7557,7563 ----
  	      tree pre_sl = pop_stmt_list (sl);
  	      tree nested_sl = push_stmt_list ();
  	      mark_valid_location_for_stdc_pragma (false);
! 	      c_parser_statement_after_labels (parser, NULL, NULL_TREE);
  	      nested_sl = pop_stmt_list (nested_sl);
  	      if (omp_for_parse_state->want_nested_loop)
  		{
*************** c_parser_compound_statement_nostart (c_p
*** 7076,7081 ****
--- 7576,7582 ----
  		  sl = push_stmt_list ();
  		}
  	      parser->error = false;
+ 	      before_labels = get_before_labels ();
  	      continue;
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
*************** c_parser_compound_statement_nostart (c_p
*** 7086,7091 ****
--- 7587,7593 ----
  		 do that, as an extension.  */
  	      /* FIXME:  Maybe issue a warning or something here?  */
  	      c_parser_consume_token (parser);
+ 	      before_labels = get_before_labels ();
  	      continue;
  	    }
  	}
*************** c_parser_compound_statement_nostart (c_p
*** 7095,7101 ****
  	= c_parser_nth_token_starts_std_attributes (parser, 1);
        tree std_attrs = NULL_TREE;
        if (have_std_attrs)
! 	std_attrs = c_parser_std_attribute_specifier_sequence (parser);
        if (c_parser_next_token_is_keyword (parser, RID_CASE)
  	  || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	  || (c_parser_next_token_is (parser, CPP_NAME)
--- 7597,7606 ----
  	= c_parser_nth_token_starts_std_attributes (parser, 1);
        tree std_attrs = NULL_TREE;
        if (have_std_attrs)
! 	{
! 	  std_attrs = c_parser_std_attribute_specifier_sequence (parser);
! 	  std_attrs = c_parser_handle_musttail (parser, std_attrs, a);
! 	}
        if (c_parser_next_token_is_keyword (parser, RID_CASE)
  	  || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	  || (c_parser_next_token_is (parser, CPP_NAME)
*************** c_parser_compound_statement_nostart (c_p
*** 7120,7126 ****
  		   && (have_std_attrs = true)))
  	{
  	  if (last_label)
! 	    pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wpedantic,
  			 "a label can only be part of a statement and "
  			 "a declaration is not a statement");
  	  /* It's unlikely we'll see a nested loop in a declaration in
--- 7625,7631 ----
  		   && (have_std_attrs = true)))
  	{
  	  if (last_label)
! 	    pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wfree_labels,
  			 "a label can only be part of a statement and "
  			 "a declaration is not a statement");
  	  /* It's unlikely we'll see a nested loop in a declaration in
*************** c_parser_compound_statement_nostart (c_p
*** 7133,7139 ****
  	  mark_valid_location_for_stdc_pragma (false);
  	  bool fallthru_attr_p = false;
  	  c_parser_declaration_or_fndef (parser, true, !have_std_attrs,
! 					 true, true, true, NULL,
  					 NULL, have_std_attrs, std_attrs,
  					 NULL, &fallthru_attr_p);
  
--- 7638,7644 ----
  	  mark_valid_location_for_stdc_pragma (false);
  	  bool fallthru_attr_p = false;
  	  c_parser_declaration_or_fndef (parser, true, !have_std_attrs,
! 					 true, true, true, false, NULL,
  					 NULL, have_std_attrs, std_attrs,
  					 NULL, &fallthru_attr_p);
  
*************** c_parser_compound_statement_nostart (c_p
*** 7144,7149 ****
--- 7649,7655 ----
  			 "ISO C90 forbids mixed declarations and code");
  	  last_stmt = fallthru_attr_p;
  	  last_label = false;
+ 	  before_labels = get_before_labels ();
  	}
        else if (c_parser_next_token_is_keyword (parser, RID_EXTENSION))
  	{
*************** c_parser_compound_statement_nostart (c_p
*** 7175,7181 ****
  		}
  	      mark_valid_location_for_stdc_pragma (false);
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true);
  	      if (in_omp_loop_block)
  		omp_for_parse_state->want_nested_loop = want_nested_loop;
  	      /* Following the old parser, __extension__ does not
--- 7681,7687 ----
  		}
  	      mark_valid_location_for_stdc_pragma (false);
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, false);
  	      if (in_omp_loop_block)
  		omp_for_parse_state->want_nested_loop = want_nested_loop;
  	      /* Following the old parser, __extension__ does not
*************** c_parser_compound_statement_nostart (c_p
*** 7185,7190 ****
--- 7691,7697 ----
  		pedwarn_c90 (loc, OPT_Wdeclaration_after_statement,
  			     "ISO C90 forbids mixed declarations and code");
  	      last_stmt = false;
+ 	      before_labels = get_before_labels ();
  	    }
  	  else
  	    goto statement;
*************** c_parser_compound_statement_nostart (c_p
*** 7204,7210 ****
  	    omp_for_parse_state->want_nested_loop = false;
  	  if (c_parser_pragma (parser,
  			       last_label ? pragma_stmt : pragma_compound,
! 			       NULL))
  	    {
  	      last_label = false;
  	      last_stmt = true;
--- 7711,7717 ----
  	    omp_for_parse_state->want_nested_loop = false;
  	  if (c_parser_pragma (parser,
  			       last_label ? pragma_stmt : pragma_compound,
! 			       NULL, before_labels))
  	    {
  	      last_label = false;
  	      last_stmt = true;
*************** c_parser_compound_statement_nostart (c_p
*** 7213,7218 ****
--- 7720,7726 ----
  	    }
  	  if (omp_for_parse_state)
  	    omp_for_parse_state->want_nested_loop = want_nested_loop;
+ 	  before_labels = get_before_labels ();
  	}
        else if (c_parser_next_token_is (parser, CPP_EOF))
  	{
*************** c_parser_compound_statement_nostart (c_p
*** 7232,7237 ****
--- 7740,7746 ----
              {
                error_at (loc, "%<else%> without a previous %<if%>");
                c_parser_consume_token (parser);
+ 	      before_labels = get_before_labels ();
                continue;
              }
          }
*************** c_parser_compound_statement_nostart (c_p
*** 7243,7249 ****
  	  last_stmt = true;
  	  mark_valid_location_for_stdc_pragma (false);
  	  if (!omp_for_parse_state)
! 	    c_parser_statement_after_labels (parser, NULL);
  	  else
  	    {
  	      /* In canonical loop nest form, nested loops can only appear
--- 7752,7759 ----
  	  last_stmt = true;
  	  mark_valid_location_for_stdc_pragma (false);
  	  if (!omp_for_parse_state)
! 	    c_parser_statement_after_labels (parser, NULL, before_labels,
! 					     NULL, a);
  	  else
  	    {
  	      /* In canonical loop nest form, nested loops can only appear
*************** c_parser_compound_statement_nostart (c_p
*** 7253,7267 ****
  		 it must be intervening code.  */
  	      omp_for_parse_state->want_nested_loop = false;
  	      check_omp_intervening_code (parser);
! 	      c_parser_statement_after_labels (parser, NULL);
  	      omp_for_parse_state->want_nested_loop = want_nested_loop;
  	    }
  	}
  
        parser->error = false;
      }
    if (last_label)
!     pedwarn_c11 (label_loc, OPT_Wpedantic, "label at end of compound statement");
    location_t endloc = c_parser_peek_token (parser)->location;
    c_parser_consume_token (parser);
  
--- 7763,7779 ----
  		 it must be intervening code.  */
  	      omp_for_parse_state->want_nested_loop = false;
  	      check_omp_intervening_code (parser);
! 	      c_parser_statement_after_labels (parser, NULL, before_labels);
  	      omp_for_parse_state->want_nested_loop = want_nested_loop;
  	    }
+ 	  before_labels = get_before_labels ();
  	}
  
        parser->error = false;
      }
    if (last_label)
!     pedwarn_c11 (label_loc, OPT_Wfree_labels,
! 		 "label at end of compound statement");
    location_t endloc = c_parser_peek_token (parser)->location;
    c_parser_consume_token (parser);
  
*************** c_parser_compound_statement_nostart (c_p
*** 7285,7299 ****
  /* Parse all consecutive labels, possibly preceded by standard
     attributes.  In this context, a statement is required, not a
     declaration, so attributes must be followed by a statement that is
!    not just a semicolon.  */
  
! static void
  c_parser_all_labels (c_parser *parser)
  {
    bool have_std_attrs;
    tree std_attrs = NULL;
    if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1)))
!     std_attrs = c_parser_std_attribute_specifier_sequence (parser);
    while (c_parser_next_token_is_keyword (parser, RID_CASE)
  	 || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	 || (c_parser_next_token_is (parser, CPP_NAME)
--- 7797,7816 ----
  /* Parse all consecutive labels, possibly preceded by standard
     attributes.  In this context, a statement is required, not a
     declaration, so attributes must be followed by a statement that is
!    not just a semicolon.  Returns an attr_state.  */
  
! static attr_state
  c_parser_all_labels (c_parser *parser)
  {
+   attr_state attr = {};
    bool have_std_attrs;
    tree std_attrs = NULL;
    if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1)))
!     {
!       std_attrs = c_parser_std_attribute_specifier_sequence (parser);
!       std_attrs = c_parser_handle_musttail (parser, std_attrs, attr);
!     }
! 
    while (c_parser_next_token_is_keyword (parser, RID_CASE)
  	 || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	 || (c_parser_next_token_is (parser, CPP_NAME)
*************** c_parser_all_labels (c_parser *parser)
*** 7303,7309 ****
        std_attrs = NULL;
        if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser,
  								      1)))
! 	std_attrs = c_parser_std_attribute_specifier_sequence (parser);
      }
    if (std_attrs
        && (!c_parser_handle_statement_omp_attributes (parser, std_attrs, &have_std_attrs)
--- 7820,7829 ----
        std_attrs = NULL;
        if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser,
  								      1)))
! 	{
! 	  std_attrs = c_parser_std_attribute_specifier_sequence (parser);
! 	  std_attrs = c_parser_handle_musttail (parser, std_attrs, attr);
! 	}
      }
    if (std_attrs
        && (!c_parser_handle_statement_omp_attributes (parser, std_attrs, &have_std_attrs)
*************** c_parser_all_labels (c_parser *parser)
*** 7315,7320 ****
--- 7835,7866 ----
      }
    else if (have_std_attrs && c_parser_next_token_is (parser, CPP_SEMICOLON))
      c_parser_error (parser, "expected statement");
+   return attr;
+ }
+ 
+ 
+ /* Information used while parsing an OpenMP metadirective.  */
+ struct omp_metadirective_parse_data {
+   /* These fields are used to unique-ify labels when reparsing the
+      code in a metadirective alternative.  */
+   vec<tree> * GTY((skip)) body_labels;
+   unsigned int region_num;
+ };
+ 
+ /* Helper function for c_parser_label: mangle a metadirective region
+    label NAME.  */
+ static tree
+ mangle_metadirective_region_label (c_parser *parser, tree name)
+ {
+   if (parser->omp_metadirective_state->body_labels->contains (name))
+     {
+       const char *old_name = IDENTIFIER_POINTER (name);
+       char *new_name = (char *) XALLOCAVEC (char, strlen (old_name) + 32);
+       sprintf (new_name, "%s_MDR%u", old_name,
+ 	       parser->omp_metadirective_state->region_num);
+       return get_identifier (new_name);
+     }
+   return name;
  }
  
  /* Parse a label (C90 6.6.1, C99 6.8.1, C11 6.8.1).
*************** c_parser_label (c_parser *parser, tree s
*** 7388,7393 ****
--- 7934,7941 ----
        gcc_assert (c_parser_next_token_is (parser, CPP_COLON));
        c_parser_consume_token (parser);
        attrs = c_parser_gnu_attributes (parser);
+       if (parser->omp_metadirective_state)
+ 	name = mangle_metadirective_region_label (parser, name);
        tlab = define_label (loc2, name);
        if (tlab)
  	{
*************** c_parser_label (c_parser *parser, tree s
*** 7558,7568 ****
  static void
  c_parser_statement (c_parser *parser, bool *if_p, location_t *loc_after_labels)
  {
!   c_parser_all_labels (parser);
    if (loc_after_labels)
      *loc_after_labels = c_parser_peek_token (parser)->location;
    parser->omp_attrs_forbidden_p = false;
!   c_parser_statement_after_labels (parser, if_p, NULL);
  }
  
  /* Parse a statement, other than a labeled statement.  CHAIN is a vector
--- 8106,8131 ----
  static void
  c_parser_statement (c_parser *parser, bool *if_p, location_t *loc_after_labels)
  {
!   tree before_labels = get_before_labels ();
!   attr_state a = c_parser_all_labels (parser);
    if (loc_after_labels)
      *loc_after_labels = c_parser_peek_token (parser)->location;
    parser->omp_attrs_forbidden_p = false;
!   c_parser_statement_after_labels (parser, if_p, before_labels, NULL, a);
! }
! 
! /* Parse and handle optional identifier after break or continue keywords.  */
! 
! static tree
! c_parser_bc_name (c_parser *parser, bool is_break)
! {
!   if (!c_parser_next_token_is (parser, CPP_NAME))
!     return NULL_TREE;
! 
!   c_token *tok = c_parser_peek_token (parser);
!   tree label = c_finish_bc_name (tok->location, tok->value, is_break);
!   c_parser_consume_token (parser);
!   return label;
  }
  
  /* Parse a statement, other than a labeled statement.  CHAIN is a vector
*************** c_parser_statement (c_parser *parser, bo
*** 7571,7581 ****
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.  */
  
  static void
  c_parser_statement_after_labels (c_parser *parser, bool *if_p,
! 				 vec<tree> *chain)
  {
    location_t loc = c_parser_peek_token (parser)->location;
    tree stmt = NULL_TREE;
--- 8134,8148 ----
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.  ASTATE is an earlier parsed attribute state.
! 
!    BEFORE_LABELS is last statement before possible labels, see
!    get_before_labels description for details.  */
  
  static void
  c_parser_statement_after_labels (c_parser *parser, bool *if_p,
! 				 tree before_labels,
! 				 vec<tree> *chain, attr_state astate)
  {
    location_t loc = c_parser_peek_token (parser)->location;
    tree stmt = NULL_TREE;
*************** c_parser_statement_after_labels (c_parse
*** 7600,7622 ****
  	  c_parser_if_statement (parser, if_p, chain);
  	  break;
  	case RID_SWITCH:
! 	  c_parser_switch_statement (parser, if_p);
  	  break;
  	case RID_WHILE:
! 	  c_parser_while_statement (parser, false, 0, false, if_p);
  	  break;
  	case RID_DO:
! 	  c_parser_do_statement (parser, false, 0, false);
  	  break;
  	case RID_FOR:
! 	  c_parser_for_statement (parser, false, 0, false, if_p);
  	  break;
  	case RID_GOTO:
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_NAME))
  	    {
! 	      stmt = c_finish_goto_label (loc,
! 					  c_parser_peek_token (parser)->value);
  	      c_parser_consume_token (parser);
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_MULT))
--- 8167,8191 ----
  	  c_parser_if_statement (parser, if_p, chain);
  	  break;
  	case RID_SWITCH:
! 	  c_parser_switch_statement (parser, if_p, before_labels);
  	  break;
  	case RID_WHILE:
! 	  c_parser_while_statement (parser, false, 0, false, if_p, before_labels);
  	  break;
  	case RID_DO:
! 	  c_parser_do_statement (parser, false, 0, false, before_labels);
  	  break;
  	case RID_FOR:
! 	  c_parser_for_statement (parser, false, 0, false, if_p, before_labels);
  	  break;
  	case RID_GOTO:
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_NAME))
  	    {
! 	      tree name = c_parser_peek_token (parser)->value;
! 	      if (parser->omp_metadirective_state)
! 		name = mangle_metadirective_region_label (parser, name);
! 	      stmt = c_finish_goto_label (loc, name);
  	      c_parser_consume_token (parser);
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_MULT))
*************** c_parser_statement_after_labels (c_parse
*** 7633,7649 ****
  	  goto expect_semicolon;
  	case RID_CONTINUE:
  	  c_parser_consume_token (parser);
! 	  stmt = c_finish_bc_stmt (loc, objc_foreach_continue_label, false);
  	  goto expect_semicolon;
  	case RID_BREAK:
  	  c_parser_consume_token (parser);
! 	  stmt = c_finish_bc_stmt (loc, objc_foreach_break_label, true);
  	  goto expect_semicolon;
  	case RID_RETURN:
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_SEMICOLON))
  	    {
! 	      stmt = c_finish_return (loc, NULL_TREE, NULL_TREE);
  	      c_parser_consume_token (parser);
  	    }
  	  else
--- 8202,8221 ----
  	  goto expect_semicolon;
  	case RID_CONTINUE:
  	  c_parser_consume_token (parser);
! 	  stmt = c_finish_bc_stmt (loc, objc_foreach_continue_label, false,
! 				   c_parser_bc_name (parser, false));
  	  goto expect_semicolon;
  	case RID_BREAK:
  	  c_parser_consume_token (parser);
! 	  stmt = c_finish_bc_stmt (loc, objc_foreach_break_label, true,
! 				   c_parser_bc_name (parser, true));
  	  goto expect_semicolon;
  	case RID_RETURN:
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_SEMICOLON))
  	    {
! 	      stmt = c_finish_return (loc, NULL_TREE, NULL_TREE,
! 				      astate.musttail_p);
  	      c_parser_consume_token (parser);
  	    }
  	  else
*************** c_parser_statement_after_labels (c_parse
*** 7652,7658 ****
  	      struct c_expr expr = c_parser_expression_conv (parser);
  	      mark_exp_read (expr.value);
  	      stmt = c_finish_return (EXPR_LOC_OR_LOC (expr.value, xloc),
! 				      expr.value, expr.original_type);
  	      goto expect_semicolon;
  	    }
  	  break;
--- 8224,8231 ----
  	      struct c_expr expr = c_parser_expression_conv (parser);
  	      mark_exp_read (expr.value);
  	      stmt = c_finish_return (EXPR_LOC_OR_LOC (expr.value, xloc),
! 				      expr.value, expr.original_type,
! 				      astate.musttail_p);
  	      goto expect_semicolon;
  	    }
  	  break;
*************** c_parser_statement_after_labels (c_parse
*** 7695,7701 ****
  	case RID_ATTRIBUTE:
  	  {
  	    /* Allow '__attribute__((fallthrough));' or
! 	       '__attribute__((assume(cond)));'.  */
  	    tree attrs = c_parser_gnu_attributes (parser);
  	    bool has_assume = lookup_attribute ("assume", attrs);
  	    if (has_assume)
--- 8268,8275 ----
  	case RID_ATTRIBUTE:
  	  {
  	    /* Allow '__attribute__((fallthrough));' or
! 	       '__attribute__((assume(cond)));' or
! 	       '__attribute__((musttail))) return'.  */
  	    tree attrs = c_parser_gnu_attributes (parser);
  	    bool has_assume = lookup_attribute ("assume", attrs);
  	    if (has_assume)
*************** c_parser_statement_after_labels (c_parse
*** 7704,7714 ****
--- 8278,8303 ----
  		  attrs = handle_assume_attribute (loc, attrs, true);
  		else
  		  {
+ 		    auto_urlify_attributes sentinel;
  		    warning_at (loc, OPT_Wattributes,
  				"%<assume%> attribute not followed by %<;%>");
  		    has_assume = false;
  		  }
  	      }
+ 	    gcc_assert (!astate.musttail_p);
+ 	    attrs = c_parser_handle_musttail (parser, attrs, astate);
+ 	    if (astate.musttail_p)
+ 	      {
+ 		if (attrs)
+ 		  {
+ 		    auto_urlify_attributes sentinel;
+ 		    warning_at (c_parser_peek_token (parser)->location,
+ 				OPT_Wattributes,
+ 				"attribute %<musttail%> mixed with other "
+ 				"attributes on %<return%> statement");
+ 		  }
+ 		goto restart;
+ 	      }
  	    if (attribute_fallthrough_p (attrs))
  	      {
  		if (c_parser_next_token_is (parser, CPP_SEMICOLON))
*************** c_parser_statement_after_labels (c_parse
*** 7721,7737 ****
  		    c_parser_consume_token (parser);
  		  }
  		else
! 		  warning_at (loc, OPT_Wattributes,
! 			      "%<fallthrough%> attribute not followed "
! 			      "by %<;%>");
  	      }
  	    else if (has_assume)
  	      /* Eat the ';'.  */
  	      c_parser_consume_token (parser);
  	    else if (attrs != NULL_TREE)
! 	      warning_at (loc, OPT_Wattributes,
! 			  "only attribute %<fallthrough%> or %<assume%> can "
! 			  "be applied to a null statement");
  	    break;
  	  }
  	default:
--- 8310,8332 ----
  		    c_parser_consume_token (parser);
  		  }
  		else
! 		  {
! 		    auto_urlify_attributes sentinel;
! 		    warning_at (loc, OPT_Wattributes,
! 				"%<fallthrough%> attribute not followed "
! 				"by %<;%>");
! 		  }
  	      }
  	    else if (has_assume)
  	      /* Eat the ';'.  */
  	      c_parser_consume_token (parser);
  	    else if (attrs != NULL_TREE)
! 	      {
! 		auto_urlify_attributes sentinel;
! 		warning_at (loc, OPT_Wattributes,
! 			    "only attribute %<fallthrough%> or %<assume%> can "
! 			    "be applied to a null statement");
! 	      }
  	    break;
  	  }
  	default:
*************** c_parser_statement_after_labels (c_parse
*** 7751,7757 ****
        c_parser_consume_token (parser);
        break;
      case CPP_PRAGMA:
!       if (!c_parser_pragma (parser, pragma_stmt, if_p))
          goto restart;
        break;
      default:
--- 8346,8352 ----
        c_parser_consume_token (parser);
        break;
      case CPP_PRAGMA:
!       if (!c_parser_pragma (parser, pragma_stmt, if_p, before_labels))
          goto restart;
        break;
      default:
*************** c_parser_condition (c_parser *parser)
*** 7792,7802 ****
    return cond;
  }
  
! /* Parse a parenthesized condition from an if, do or while statement.
  
     condition:
       ( expression )
  */
  static tree
  c_parser_paren_condition (c_parser *parser)
  {
--- 8387,8398 ----
    return cond;
  }
  
! /* Parse a parenthesized condition from a do or while statement.
  
     condition:
       ( expression )
  */
+ 
  static tree
  c_parser_paren_condition (c_parser *parser)
  {
*************** c_parser_paren_condition (c_parser *pars
*** 7809,7814 ****
--- 8405,8512 ----
    return cond;
  }
  
+ /* Parse a selection-header:
+ 
+    selection-header:
+      expression
+      declaration expression
+      simple-declaration
+ 
+    simple-declaration:
+      attribute-specifier-sequence[opt] declaration-specifiers declarator
+        = initializer
+ 
+   SWITCH_P is true if we are called from c_parser_switch_statement; in
+   that case, don't perform the truthvalue conversion.  */
+ 
+ static c_expr
+ c_parser_selection_header (c_parser *parser, bool switch_p)
+ {
+   location_t loc = c_parser_peek_token (parser)->location;
+   c_expr expr;
+   bool parse_expr = true;
+   tree std_attrs;
+   bool have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1);
+   if (have_std_attrs)
+     std_attrs = c_parser_std_attribute_specifier_sequence (parser);
+   else
+     std_attrs = NULL_TREE;
+   if (c_parser_next_tokens_start_declaration (parser))
+     {
+       pedwarn_c23 (loc, OPT_Wpedantic,
+ 		   "ISO C does not support if declarations before C2Y");
+       expr.value
+ 	= c_parser_declaration_or_fndef (parser,
+ 					 /*fndef_ok=*/false,
+ 					 /*static_assert_ok=*/false,
+ 					 /*empty_ok=*/false,
+ 					 /*nested=*/true,
+ 					 /*start_attr_ok=*/true,
+ 					 /*simple_ok=*/true,
+ 					 /*objc_foreach_object_decl=*/nullptr,
+ 					 /*omp_declare_simd_clauses=*/nullptr,
+ 					 have_std_attrs,
+ 					 std_attrs);
+       if (c_parser_next_token_is (parser, CPP_SEMICOLON))
+ 	c_parser_consume_token (parser);
+       else
+ 	{
+ 	  /* A simple-declaration is a declaration that can appear in
+ 	     place of the controlling expression of a selection statement.
+ 	     In that case, there shall be an initializer.  */
+ 	  if (!expr.value)
+ 	    {
+ 	      error_at (loc, "declaration in the controlling expression must "
+ 			"have an initializer");
+ 	      expr.original_type = error_mark_node;
+ 	      expr.set_error ();
+ 	      return expr;
+ 	    }
+ 	  parse_expr = false;
+ 	}
+       if (expr.value)
+ 	{
+ 	  expr.original_type = TREE_TYPE (expr.value);
+ 	  expr = convert_lvalue_to_rvalue (loc, expr, /*convert_p=*/true,
+ 					   /*read_p=*/true);
+ 	}
+     }
+   else if (have_std_attrs)
+     {
+       c_parser_error (parser, "expected declaration");
+       expr.original_type = error_mark_node;
+       expr.set_error ();
+       return expr;
+     }
+ 
+   if (parse_expr)
+     expr = c_parser_expression_conv (parser);
+   if (!switch_p)
+     {
+       expr.value = c_objc_common_truthvalue_conversion (loc, expr.value);
+       expr.value = c_fully_fold (expr.value, false, NULL);
+       if (warn_sequence_point)
+ 	verify_sequence_points (expr.value);
+     }
+   return expr;
+ }
+ 
+ /* Parse a selection-header enclosed in parentheses:
+ 
+    ( selection-header )
+ */
+ 
+ static tree
+ c_parser_paren_selection_header (c_parser *parser)
+ {
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return error_mark_node;
+   tree cond = c_parser_selection_header (parser, /*switch_p=*/false).value;
+   parens.skip_until_found_close (parser);
+   return cond;
+ }
+ 
  /* Parse a statement which is a block in C99.
  
     IF_P is used to track whether there's a (possibly labeled) if statement
*************** c_parser_if_body (c_parser *parser, bool
*** 7846,7853 ****
    location_t body_loc_after_labels = UNKNOWN_LOCATION;
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
  
-   c_parser_all_labels (parser);
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        location_t loc = c_parser_peek_token (parser)->location;
--- 8544,8552 ----
    location_t body_loc_after_labels = UNKNOWN_LOCATION;
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
+   tree before_labels = get_before_labels ();
+   attr_state a = c_parser_all_labels (parser);
  
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        location_t loc = c_parser_peek_token (parser)->location;
*************** c_parser_if_body (c_parser *parser, bool
*** 7862,7868 ****
    else
      {
        body_loc_after_labels = c_parser_peek_token (parser)->location;
!       c_parser_statement_after_labels (parser, if_p);
      }
  
    token_indent_info next_tinfo
--- 8561,8567 ----
    else
      {
        body_loc_after_labels = c_parser_peek_token (parser)->location;
!       c_parser_statement_after_labels (parser, if_p, before_labels, NULL, a);
      }
  
    token_indent_info next_tinfo
*************** c_parser_else_body (c_parser *parser, co
*** 7890,7897 ****
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
    location_t body_loc_after_labels = UNKNOWN_LOCATION;
  
-   c_parser_all_labels (parser);
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        location_t loc = c_parser_peek_token (parser)->location;
--- 8589,8597 ----
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
    location_t body_loc_after_labels = UNKNOWN_LOCATION;
+   tree before_labels = get_before_labels ();
+   attr_state a = c_parser_all_labels (parser);
  
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        location_t loc = c_parser_peek_token (parser)->location;
*************** c_parser_else_body (c_parser *parser, co
*** 7905,7911 ****
      {
        if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	body_loc_after_labels = c_parser_peek_token (parser)->location;
!       c_parser_statement_after_labels (parser, NULL, chain);
      }
  
    token_indent_info next_tinfo
--- 8605,8611 ----
      {
        if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	body_loc_after_labels = c_parser_peek_token (parser)->location;
!       c_parser_statement_after_labels (parser, NULL, before_labels, chain, a);
      }
  
    token_indent_info next_tinfo
*************** c_parser_else_body (c_parser *parser, co
*** 7919,7966 ****
    return c_end_compound_stmt (body_loc, block, flag_isoc99);
  }
  
- /* We might need to reclassify any previously-lexed identifier, e.g.
-    when we've left a for loop with an if-statement without else in the
-    body - we might have used a wrong scope for the token.  See PR67784.  */
- 
- static void
- c_parser_maybe_reclassify_token (c_parser *parser)
- {
-   if (c_parser_next_token_is (parser, CPP_NAME))
-     {
-       c_token *token = c_parser_peek_token (parser);
- 
-       if (token->id_kind != C_ID_CLASSNAME)
- 	{
- 	  tree decl = lookup_name (token->value);
- 
- 	  token->id_kind = C_ID_ID;
- 	  if (decl)
- 	    {
- 	      if (TREE_CODE (decl) == TYPE_DECL)
- 		token->id_kind = C_ID_TYPENAME;
- 	    }
- 	  else if (c_dialect_objc ())
- 	    {
- 	      tree objc_interface_decl = objc_is_class_name (token->value);
- 	      /* Objective-C class names are in the same namespace as
- 		 variables and typedefs, and hence are shadowed by local
- 		 declarations.  */
- 	      if (objc_interface_decl)
- 		{
- 		  token->value = objc_interface_decl;
- 		  token->id_kind = C_ID_CLASSNAME;
- 		}
- 	    }
- 	}
-     }
- }
- 
  /* Parse an if statement (C90 6.6.4, C99 6.8.4, C11 6.8.4).
  
     if-statement:
!      if ( expression ) statement
!      if ( expression ) statement else statement
  
     CHAIN is a vector of if-else-if conditions.
     IF_P is used to track whether there's a (possibly labeled) if statement
--- 8619,8629 ----
    return c_end_compound_stmt (body_loc, block, flag_isoc99);
  }
  
  /* Parse an if statement (C90 6.6.4, C99 6.8.4, C11 6.8.4).
  
     if-statement:
!      if ( selection-header ) statement
!      if ( selection-header ) statement else statement
  
     CHAIN is a vector of if-else-if conditions.
     IF_P is used to track whether there's a (possibly labeled) if statement
*************** c_parser_if_statement (c_parser *parser,
*** 7983,7989 ****
    c_parser_consume_token (parser);
    block = c_begin_compound_stmt (flag_isoc99);
    loc = c_parser_peek_token (parser)->location;
!   cond = c_parser_paren_condition (parser);
    in_if_block = parser->in_if_block;
    parser->in_if_block = true;
    first_body = c_parser_if_body (parser, &nested_if, if_tinfo);
--- 8646,8652 ----
    c_parser_consume_token (parser);
    block = c_begin_compound_stmt (flag_isoc99);
    loc = c_parser_peek_token (parser)->location;
!   cond = c_parser_paren_selection_header (parser);
    in_if_block = parser->in_if_block;
    parser->in_if_block = true;
    first_body = c_parser_if_body (parser, &nested_if, if_tinfo);
*************** c_parser_if_statement (c_parser *parser,
*** 8045,8054 ****
  
     switch-statement:
       switch (expression) statement
! */
  
  static void
! c_parser_switch_statement (c_parser *parser, bool *if_p)
  {
    struct c_expr ce;
    tree block, expr, body;
--- 8708,8719 ----
  
     switch-statement:
       switch (expression) statement
! 
!    BEFORE_LABELS is last statement before possible labels, see
!    get_before_labels description for details.  */
  
  static void
! c_parser_switch_statement (c_parser *parser, bool *if_p, tree before_labels)
  {
    struct c_expr ce;
    tree block, expr, body;
*************** c_parser_switch_statement (c_parser *par
*** 8057,8062 ****
--- 8722,8729 ----
    location_t switch_cond_loc;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_SWITCH));
    c_parser_consume_token (parser);
+   tree switch_name;
+   int num_names = c_get_loop_names (before_labels, true, &switch_name);
    block = c_begin_compound_stmt (flag_isoc99);
    bool explicit_cast_p = false;
    matching_parens parens;
*************** c_parser_switch_statement (c_parser *par
*** 8066,8072 ****
        if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
  	  && c_token_starts_typename (c_parser_peek_2nd_token (parser)))
  	explicit_cast_p = true;
!       ce = c_parser_expression (parser);
        ce = convert_lvalue_to_rvalue (switch_cond_loc, ce, true, true);
        expr = ce.value;
        /* ??? expr has no valid location?  */
--- 8733,8742 ----
        if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
  	  && c_token_starts_typename (c_parser_peek_2nd_token (parser)))
  	explicit_cast_p = true;
!       ce = c_parser_selection_header (parser, /*switch_p=*/true);
!       /* The call above already performed convert_lvalue_to_rvalue, but
! 	 if it parsed an expression, read_p was false.  Make sure we mark
! 	 the expression as read.  */
        ce = convert_lvalue_to_rvalue (switch_cond_loc, ce, true, true);
        expr = ce.value;
        /* ??? expr has no valid location?  */
*************** c_parser_switch_statement (c_parser *par
*** 8078,8086 ****
        expr = error_mark_node;
        ce.original_type = error_mark_node;
      }
!   c_start_switch (switch_loc, switch_cond_loc, expr, explicit_cast_p);
    save_in_statement = in_statement;
    in_statement |= IN_SWITCH_STMT;
    location_t loc_after_labels;
    bool open_brace_p = c_parser_peek_token (parser)->type == CPP_OPEN_BRACE;
    body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels);
--- 8748,8765 ----
        expr = error_mark_node;
        ce.original_type = error_mark_node;
      }
!   tree stmt
!     = c_start_switch (switch_loc, switch_cond_loc, expr, explicit_cast_p,
! 		      switch_name);
    save_in_statement = in_statement;
    in_statement |= IN_SWITCH_STMT;
+   if (switch_name)
+     {
+       C_DECL_LOOP_SWITCH_NAME_VALID (switch_name) = 1;
+       in_statement |= IN_NAMED_STMT;
+     }
+   else
+     in_statement &= ~IN_NAMED_STMT;
    location_t loc_after_labels;
    bool open_brace_p = c_parser_peek_token (parser)->type == CPP_OPEN_BRACE;
    body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels);
*************** c_parser_switch_statement (c_parser *par
*** 8090,8095 ****
--- 8769,8782 ----
  				    RID_SWITCH);
    c_finish_switch (body, ce.original_type);
    in_statement = save_in_statement;
+   if (num_names)
+     {
+       if (!C_DECL_LOOP_SWITCH_NAME_USED (switch_name))
+ 	SWITCH_STMT_NAME (stmt) = NULL_TREE;
+       else
+ 	SWITCH_STMT_NO_BREAK_P (stmt) = 0;
+       c_release_loop_names (num_names);
+     }
    add_stmt (c_end_compound_stmt (switch_loc, block, flag_isoc99));
    c_parser_maybe_reclassify_token (parser);
  }
*************** c_parser_switch_statement (c_parser *par
*** 8101,8111 ****
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.  */
  
  static void
  c_parser_while_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			  bool novector, bool *if_p)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
--- 8788,8801 ----
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.
! 
!    BEFORE_LABELS is last statement before possible labels, see
!    get_before_labels description for details.  */
  
  static void
  c_parser_while_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			  bool novector, bool *if_p, tree before_labels)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
*************** c_parser_while_statement (c_parser *pars
*** 8113,8118 ****
--- 8803,8810 ----
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_WHILE));
    token_indent_info while_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
+   tree loop_name;
+   int num_names = c_get_loop_names (before_labels, false, &loop_name);
  
    if (parser->omp_for_parse_state)
      {
*************** c_parser_while_statement (c_parser *pars
*** 8142,8147 ****
--- 8834,8844 ----
  		   integer_zero_node);
    save_in_statement = in_statement;
    in_statement = IN_ITERATION_STMT;
+   if (loop_name)
+     {
+       C_DECL_LOOP_SWITCH_NAME_VALID (loop_name) = 1;
+       in_statement |= IN_NAMED_STMT;
+     }
  
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
*************** c_parser_while_statement (c_parser *pars
*** 8149,8157 ****
    location_t loc_after_labels;
    bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE);
    body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels);
!   add_stmt (build_stmt (loc, WHILE_STMT, cond, body));
    add_stmt (c_end_compound_stmt (loc, block, flag_isoc99));
    c_parser_maybe_reclassify_token (parser);
  
    token_indent_info next_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
--- 8846,8859 ----
    location_t loc_after_labels;
    bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE);
    body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels);
!   if (loop_name && !C_DECL_LOOP_SWITCH_NAME_USED (loop_name))
!     loop_name = NULL_TREE;
!   add_stmt (build_stmt (loc, WHILE_STMT, cond, body, loop_name, NULL_TREE,
! 			NULL_TREE));
    add_stmt (c_end_compound_stmt (loc, block, flag_isoc99));
    c_parser_maybe_reclassify_token (parser);
+   if (num_names)
+     c_release_loop_names (num_names);
  
    token_indent_info next_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
*************** c_parser_while_statement (c_parser *pars
*** 8168,8183 ****
  
     do-statement:
       do statement while ( expression ) ;
! */
  
  static void
  c_parser_do_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 		       bool novector)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
    location_t loc;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO));
  
    if (parser->omp_for_parse_state)
      {
--- 8870,8889 ----
  
     do-statement:
       do statement while ( expression ) ;
! 
!    BEFORE_LABELS is last statement before possible labels, see
!    get_before_labels description for details.  */
  
  static void
  c_parser_do_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 		       bool novector, tree before_labels)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
    location_t loc;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO));
+   tree loop_name;
+   int num_names = c_get_loop_names (before_labels, false, &loop_name);
  
    if (parser->omp_for_parse_state)
      {
*************** c_parser_do_statement (c_parser *parser,
*** 8195,8203 ****
--- 8901,8920 ----
    loc = c_parser_peek_token (parser)->location;
    save_in_statement = in_statement;
    in_statement = IN_ITERATION_STMT;
+   if (loop_name)
+     {
+       C_DECL_LOOP_SWITCH_NAME_VALID (loop_name) = 1;
+       in_statement |= IN_NAMED_STMT;
+     }
    body = c_parser_c99_block_statement (parser, NULL);
    c_parser_require_keyword (parser, RID_WHILE, "expected %<while%>");
    in_statement = save_in_statement;
+   if (num_names)
+     {
+       if (!C_DECL_LOOP_SWITCH_NAME_USED (loop_name))
+ 	loop_name = NULL_TREE;
+       c_release_loop_names (num_names);
+     }
    cond = c_parser_paren_condition (parser);
    if (ivdep && cond != error_mark_node)
      cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
*************** c_parser_do_statement (c_parser *parser,
*** 8217,8223 ****
    if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
      c_parser_skip_to_end_of_block_or_statement (parser);
  
!   add_stmt (build_stmt (loc, DO_STMT, cond, body));
    add_stmt (c_end_compound_stmt (loc, block, flag_isoc99));
  }
  
--- 8934,8940 ----
    if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
      c_parser_skip_to_end_of_block_or_statement (parser);
  
!   add_stmt (build_stmt (loc, DO_STMT, cond, body, loop_name));
    add_stmt (c_end_compound_stmt (loc, block, flag_isoc99));
  }
  
*************** c_parser_do_statement (c_parser *parser,
*** 8250,8256 ****
  
     Here is the canonical example of the first variant:
      for (object in array)    { do something with object }
!    we call the first expression ("object") the "object_expression" and 
     the second expression ("array") the "collection_expression".
     object_expression must be an lvalue of type "id" (a generic Objective-C
     object) because the loop works by assigning to object_expression the
--- 8967,8973 ----
  
     Here is the canonical example of the first variant:
      for (object in array)    { do something with object }
!    we call the first expression ("object") the "object_expression" and
     the second expression ("array") the "collection_expression".
     object_expression must be an lvalue of type "id" (a generic Objective-C
     object) because the loop works by assigning to object_expression the
*************** c_parser_do_statement (c_parser *parser,
*** 8278,8288 ****
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.  */
  
  static void
  c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			bool novector, bool *if_p)
  {
    tree block, cond, incr, body;
    unsigned char save_in_statement;
--- 8995,9008 ----
  
     IF_P is used to track whether there's a (possibly labeled) if statement
     which is not enclosed in braces and has an else clause.  This is used to
!    implement -Wparentheses.
! 
!    BEFORE_LABELS is last statement before possible labels, see
!    get_before_labels description for details.  */
  
  static void
  c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			bool novector, bool *if_p, tree before_labels)
  {
    tree block, cond, incr, body;
    unsigned char save_in_statement;
*************** c_parser_for_statement (c_parser *parser
*** 8297,8302 ****
--- 9017,9024 ----
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
    token_indent_info for_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
+   tree loop_name;
+   int num_names = c_get_loop_names (before_labels, false, &loop_name);
  
    if (parser->omp_for_parse_state)
      {
*************** c_parser_for_statement (c_parser *parser
*** 8326,8335 ****
        else if (c_parser_next_tokens_start_declaration (parser)
  	       || c_parser_nth_token_starts_std_attributes (parser, 1))
  	{
! 	  c_parser_declaration_or_fndef (parser, true, true, true, true, true, 
! 					 &object_expression);
  	  parser->objc_could_be_foreach_context = false;
! 	  
  	  if (c_parser_next_token_is_keyword (parser, RID_IN))
  	    {
  	      c_parser_consume_token (parser);
--- 9048,9057 ----
        else if (c_parser_next_tokens_start_declaration (parser)
  	       || c_parser_nth_token_starts_std_attributes (parser, 1))
  	{
! 	  c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 					 false, &object_expression);
  	  parser->objc_could_be_foreach_context = false;
! 
  	  if (c_parser_next_token_is_keyword (parser, RID_IN))
  	    {
  	      c_parser_consume_token (parser);
*************** c_parser_for_statement (c_parser *parser
*** 8358,8366 ****
  	      ext = disable_extension_diagnostics ();
  	      c_parser_consume_token (parser);
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, &object_expression);
  	      parser->objc_could_be_foreach_context = false;
! 	      
  	      restore_extension_diagnostics (ext);
  	      if (c_parser_next_token_is_keyword (parser, RID_IN))
  		{
--- 9080,9088 ----
  	      ext = disable_extension_diagnostics ();
  	      c_parser_consume_token (parser);
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, false, &object_expression);
  	      parser->objc_could_be_foreach_context = false;
! 
  	      restore_extension_diagnostics (ext);
  	      if (c_parser_next_token_is_keyword (parser, RID_IN))
  		{
*************** c_parser_for_statement (c_parser *parser
*** 8489,8497 ****
--- 9211,9232 ----
        save_objc_foreach_continue_label = objc_foreach_continue_label;
        objc_foreach_break_label = create_artificial_label (loc);
        objc_foreach_continue_label = create_artificial_label (loc);
+       if (loop_name)
+ 	{
+ 	  gcc_checking_assert (!DECL_CHAIN (loop_name)
+ 			       && !DECL_CHAIN (objc_foreach_break_label));
+ 	  C_DECL_SWITCH_NAME (loop_name) = 1;
+ 	  DECL_CHAIN (loop_name) = objc_foreach_break_label;
+ 	  DECL_CHAIN (objc_foreach_break_label) = objc_foreach_continue_label;
+ 	}
      }
    else
      in_statement = IN_ITERATION_STMT;
+   if (loop_name)
+     {
+       C_DECL_LOOP_SWITCH_NAME_VALID (loop_name) = 1;
+       in_statement |= IN_NAMED_STMT;
+     }
  
    token_indent_info body_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
*************** c_parser_for_statement (c_parser *parser
*** 8500,8505 ****
--- 9235,9250 ----
    bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE);
    body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels);
  
+   if (loop_name && is_foreach_statement)
+     {
+       gcc_checking_assert (DECL_CHAIN (loop_name) == objc_foreach_break_label
+ 			   && (DECL_CHAIN (objc_foreach_break_label)
+ 			       == objc_foreach_continue_label));
+       C_DECL_SWITCH_NAME (loop_name) = 0;
+       DECL_CHAIN (loop_name) = NULL_TREE;
+       DECL_CHAIN (objc_foreach_break_label) = NULL_TREE;
+     }
+ 
    if (is_foreach_statement)
      objc_finish_foreach_loop (for_loc, object_expression,
  			      collection_expression, body,
*************** c_parser_for_statement (c_parser *parser
*** 8507,8513 ****
  			      objc_foreach_continue_label);
    else
      add_stmt (build_stmt (for_loc, FOR_STMT, NULL_TREE, cond, incr,
! 			  body, NULL_TREE));
    add_stmt (c_end_compound_stmt (for_loc, block,
  				 flag_isoc99 || c_dialect_objc ()));
    c_parser_maybe_reclassify_token (parser);
--- 9252,9260 ----
  			      objc_foreach_continue_label);
    else
      add_stmt (build_stmt (for_loc, FOR_STMT, NULL_TREE, cond, incr,
! 			  body, NULL_TREE,
! 			  loop_name && C_DECL_LOOP_SWITCH_NAME_USED (loop_name)
! 			  ? loop_name : NULL_TREE, NULL_TREE, NULL_TREE));
    add_stmt (c_end_compound_stmt (for_loc, block,
  				 flag_isoc99 || c_dialect_objc ()));
    c_parser_maybe_reclassify_token (parser);
*************** c_parser_for_statement (c_parser *parser
*** 8521,8526 ****
--- 9268,9275 ----
  				    for_tinfo.location, RID_FOR);
  
    in_statement = save_in_statement;
+   if (num_names)
+     c_release_loop_names (num_names);
    if (is_foreach_statement)
      {
        objc_foreach_break_label = save_objc_foreach_break_label;
*************** c_parser_expr_no_commas (c_parser *parse
*** 9112,9118 ****
    exp_location = c_parser_peek_token (parser)->location;
    rhs = c_parser_expr_no_commas (parser, NULL);
    rhs = convert_lvalue_to_rvalue (exp_location, rhs, true, true);
!   
    ret.value = build_modify_expr (op_location, lhs.value, lhs.original_type,
  				 code, exp_location, rhs.value,
  				 rhs.original_type);
--- 9861,9867 ----
    exp_location = c_parser_peek_token (parser)->location;
    rhs = c_parser_expr_no_commas (parser, NULL);
    rhs = convert_lvalue_to_rvalue (exp_location, rhs, true, true);
! 
    ret.value = build_modify_expr (op_location, lhs.value, lhs.original_type,
  				 code, exp_location, rhs.value,
  				 rhs.original_type);
*************** c_parser_unary_expression (c_parser *par
*** 9751,9757 ****
        c_parser_consume_token (parser);
        exp_loc = c_parser_peek_token (parser)->location;
        op = c_parser_cast_expression (parser, NULL);
!       
        op = default_function_array_read_conversion (exp_loc, op);
        return parser_build_unary_op (op_loc, PREDECREMENT_EXPR, op);
      case CPP_AND:
--- 10500,10506 ----
        c_parser_consume_token (parser);
        exp_loc = c_parser_peek_token (parser)->location;
        op = c_parser_cast_expression (parser, NULL);
! 
        op = default_function_array_read_conversion (exp_loc, op);
        return parser_build_unary_op (op_loc, PREDECREMENT_EXPR, op);
      case CPP_AND:
*************** c_parser_sizeof_expression (c_parser *pa
*** 9891,9903 ****
        finish = parser->tokens_buf[0].location;
        if (type_name == NULL)
  	{
! 	  struct c_expr ret;
! 	  c_inhibit_evaluation_warnings--;
! 	  in_sizeof--;
! 	  ret.set_error ();
! 	  ret.original_code = ERROR_MARK;
! 	  ret.original_type = NULL;
! 	  return ret;
  	}
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	{
--- 10640,10650 ----
        finish = parser->tokens_buf[0].location;
        if (type_name == NULL)
  	{
! 	  /* Let c_expr_sizeof_expr call pop_maybe_used and fill in c_expr
! 	     for parsing error; the parsing of the expression could have
! 	     called record_maybe_used_decl.  */
! 	  expr.set_error ();
! 	  goto sizeof_expr;
  	}
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	{
*************** c_parser_get_builtin_args (c_parser *par
*** 10205,10210 ****
--- 10952,10975 ----
    while (c_parser_next_token_is (parser, CPP_COMMA))
      {
        c_parser_consume_token (parser);
+       if (c_parser_next_token_is (parser, CPP_EMBED))
+ 	{
+ 	  c_token *embed = c_parser_peek_token (parser);
+ 	  tree value = embed->value;
+ 	  expr.original_code = INTEGER_CST;
+ 	  expr.original_type = integer_type_node;
+ 	  expr.value = NULL_TREE;
+ 	  set_c_expr_source_range (&expr, embed->get_range ());
+ 	  expr.m_decimal = 0;
+ 	  for (unsigned int i = 0; i < (unsigned) RAW_DATA_LENGTH (value); i++)
+ 	    {
+ 	      expr.value = build_int_cst (integer_type_node,
+ 					  RAW_DATA_UCHAR_ELT (value, i));
+ 	      vec_safe_push (cexpr_list, expr);
+ 	    }
+ 	  c_parser_consume_token (parser);
+ 	  continue;
+ 	}
        expr = c_parser_expr_no_commas (parser, NULL);
        vec_safe_push (cexpr_list, expr);
      }
*************** struct c_generic_association
*** 10230,10243 ****
  };
  
  /* Parse a generic-selection.  (C11 6.5.1.1).
!    
     generic-selection:
!      _Generic ( assignment-expression , generic-assoc-list )
!      
     generic-assoc-list:
       generic-association
       generic-assoc-list , generic-association
!    
     generic-association:
       type-name : assignment-expression
       default : assignment-expression
--- 10995,11014 ----
  };
  
  /* Parse a generic-selection.  (C11 6.5.1.1).
! 
     generic-selection:
!      _Generic ( generic-controlling-operand , generic-assoc-list )
! 
!   generic-controlling-operand:
!     assignment-expression
!     type-name
! 
!   (The use of a type-name is new in C2Y.)
! 
     generic-assoc-list:
       generic-association
       generic-assoc-list , generic-association
! 
     generic-association:
       type-name : assignment-expression
       default : assignment-expression
*************** c_parser_generic_selection (c_parser *pa
*** 10273,10302 ****
    if (!parens.require_open (parser))
      return error_expr;
  
-   c_inhibit_evaluation_warnings++;
    selector_loc = c_parser_peek_token (parser)->location;
!   selector = c_parser_expr_no_commas (parser, NULL);
!   selector = default_function_array_conversion (selector_loc, selector);
!   c_inhibit_evaluation_warnings--;
! 
!   if (selector.value == error_mark_node)
      {
!       c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
!       return selector;
      }
-   mark_exp_read (selector.value);
-   selector_type = TREE_TYPE (selector.value);
-   /* In ISO C terms, rvalues (including the controlling expression of
-      _Generic) do not have qualified types.  */
-   if (TREE_CODE (selector_type) != ARRAY_TYPE)
-     selector_type = TYPE_MAIN_VARIANT (selector_type);
-   /* In ISO C terms, _Noreturn is not part of the type of expressions
-      such as &abort, but in GCC it is represented internally as a type
-      qualifier.  */
-   if (FUNCTION_POINTER_TYPE_P (selector_type)
-       && TYPE_QUALS (TREE_TYPE (selector_type)) != TYPE_UNQUALIFIED)
-     selector_type
-       = build_pointer_type (TYPE_MAIN_VARIANT (TREE_TYPE (selector_type)));
  
    if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>"))
      {
--- 11044,11086 ----
    if (!parens.require_open (parser))
      return error_expr;
  
    selector_loc = c_parser_peek_token (parser)->location;
!   if (c_parser_next_tokens_start_typename (parser, cla_prefer_id))
      {
!       c_inhibit_evaluation_warnings++;
!       pedwarn_c23 (selector_loc, OPT_Wpedantic,
! 		   "ISO C does not support use of type name as %<_Generic%> "
! 		   "controlling operand before C2Y");
!       struct c_type_name *type = c_parser_type_name (parser);
!       selector_type = groktypename (type, NULL, NULL);
!       c_inhibit_evaluation_warnings--;
!     }
!   else
!     {
!       c_inhibit_evaluation_warnings++;
!       selector = c_parser_expr_no_commas (parser, NULL);
!       selector = default_function_array_conversion (selector_loc, selector);
!       c_inhibit_evaluation_warnings--;
! 
!       if (selector.value == error_mark_node)
! 	{
! 	  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
! 	  return selector;
! 	}
!       mark_exp_read (selector.value);
!       selector_type = TREE_TYPE (selector.value);
!       /* In ISO C terms, rvalues (including the controlling expression
! 	 of _Generic) do not have qualified types.  */
!       if (TREE_CODE (selector_type) != ARRAY_TYPE)
! 	selector_type = TYPE_MAIN_VARIANT (selector_type);
!       /* In ISO C terms, _Noreturn is not part of the type of expressions
! 	 such as &abort, but in GCC it is represented internally as a type
! 	 qualifier.  */
!       if (FUNCTION_POINTER_TYPE_P (selector_type)
! 	  && TYPE_QUALS (TREE_TYPE (selector_type)) != TYPE_UNQUALIFIED)
! 	selector_type
! 	  = c_build_pointer_type (TYPE_MAIN_VARIANT (TREE_TYPE (selector_type)));
      }
  
    if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>"))
      {
*************** c_parser_generic_selection (c_parser *pa
*** 10335,10345 ****
  	    }
  
  	  if (TREE_CODE (assoc.type) == FUNCTION_TYPE)
! 	    error_at (assoc.type_location,
! 		      "%<_Generic%> association has function type");
  	  else if (!COMPLETE_TYPE_P (assoc.type))
! 	    error_at (assoc.type_location,
! 		      "%<_Generic%> association has incomplete type");
  
  	  if (c_type_variably_modified_p (assoc.type))
  	    error_at (assoc.type_location,
--- 11119,11131 ----
  	    }
  
  	  if (TREE_CODE (assoc.type) == FUNCTION_TYPE)
! 	    pedwarn_c23 (assoc.type_location, OPT_Wpedantic,
! 			 "ISO C does not support %<_Generic%> association with "
! 			 "function type before C2Y");
  	  else if (!COMPLETE_TYPE_P (assoc.type))
! 	    pedwarn_c23 (assoc.type_location, OPT_Wpedantic,
! 			 "ISO C does not support %<_Generic%> association with "
! 			 "incomplete type before C2Y");
  
  	  if (c_type_variably_modified_p (assoc.type))
  	    error_at (assoc.type_location,
*************** c_parser_predefined_identifier (c_parser
*** 10537,10542 ****
--- 11323,11359 ----
    return expr;
  }
  
+ /* Check whether the ARRAY_REF has an counted-by object associated with it
+    through the "counted_by" attribute.  */
+ 
+ static bool
+ has_counted_by_object (tree array_ref)
+ {
+   /* Currently, only when the array_ref is an indirect_ref to a call to the
+      .ACCESS_WITH_SIZE, return true.
+      More cases can be included later when the counted_by attribute is
+      extended to other situations.  */
+   if (TREE_CODE (array_ref) == INDIRECT_REF
+       && is_access_with_size_p (TREE_OPERAND (array_ref, 0)))
+     return true;
+   return false;
+ }
+ 
+ /* Get the reference to the counted-by object associated with the ARRAY_REF.  */
+ 
+ static tree
+ get_counted_by_ref (tree array_ref)
+ {
+   /* Currently, only when the array_ref is an indirect_ref to a call to the
+      .ACCESS_WITH_SIZE, get the corresponding counted_by ref.
+      More cases can be included later when the counted_by attribute is
+      extended to other situations.  */
+   if (TREE_CODE (array_ref) == INDIRECT_REF
+       && is_access_with_size_p (TREE_OPERAND (array_ref, 0)))
+     return CALL_EXPR_ARG (TREE_OPERAND (array_ref, 0), 1);
+   return NULL_TREE;
+ }
+ 
  /* Parse a postfix expression (C90 6.3.1-6.3.2, C99 6.5.1-6.5.2,
     C11 6.5.1-6.5.2).  Compound literals aren't handled here; callers have to
     call c_parser_postfix_expression_after_paren_type on encountering them.
*************** c_parser_postfix_expression (c_parser *p
*** 10691,10697 ****
  	    component = component_tok->value;
  	    location_t end_loc = component_tok->get_finish ();
  	    c_parser_consume_token (parser);
! 	    expr.value = objc_build_class_component_ref (class_name, 
  							 component);
  	    set_c_expr_source_range (&expr, loc, end_loc);
  	    break;
--- 11508,11514 ----
  	    component = component_tok->value;
  	    location_t end_loc = component_tok->get_finish ();
  	    c_parser_consume_token (parser);
! 	    expr.value = objc_build_class_component_ref (class_name,
  							 component);
  	    set_c_expr_source_range (&expr, loc, end_loc);
  	    break;
*************** c_parser_postfix_expression (c_parser *p
*** 10813,10818 ****
--- 11630,11730 ----
  	      }
  	  }
  	  break;
+ 	case RID_C23_VA_START:
+ 	  {
+ 	    c_parser_consume_token (parser);
+ 	    matching_parens parens;
+ 	    if (!parens.require_open (parser))
+ 	      {
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    e1 = c_parser_expr_no_commas (parser, NULL);
+ 	    e1 = convert_lvalue_to_rvalue (e1.get_location (), e1, true, true);
+ 	    if (!c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
+ 	      {
+ 		location_t cloc = c_parser_peek_token (parser)->location;
+ 		if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>"))
+ 		  {
+ 		    c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
+ 		    expr.set_error ();
+ 		    break;
+ 		  }
+ 		if (c_parser_next_token_is (parser, CPP_NAME)
+ 		    && c_parser_peek_token (parser)->id_kind == C_ID_ID
+ 		    && (c_parser_peek_2nd_token (parser)->type
+ 			== CPP_CLOSE_PAREN))
+ 		  {
+ 		    tree name = c_parser_peek_token (parser)->value;
+ 		    location_t nloc = c_parser_peek_token (parser)->location;
+ 		    tree decl = lookup_name (name);
+ 		    tree last_parm
+ 		      = tree_last (DECL_ARGUMENTS (current_function_decl));
+ 		    if (!last_parm || decl != last_parm)
+ 		      warning_at (nloc, OPT_Wvarargs,
+ 				  "optional second parameter of %<va_start%> "
+ 				  "not last named argument");
+ 		    else if (DECL_REGISTER (decl))
+ 		      warning_at (nloc, OPT_Wvarargs,
+ 				  "undefined behavior when second parameter "
+ 				  "of %<va_start%> is declared with "
+ 				  "%<register%> storage");
+ 		    c_parser_consume_token (parser);
+ 		  }
+ 		else
+ 		  {
+ 		    unsigned nesting_depth = 0;
+ 		    location_t sloc = c_parser_peek_token (parser)->location;
+ 		    location_t eloc = sloc;
+ 
+ 		    /* For va_start (ap,) the ) comes from stdarg.h.
+ 		       Use location of , in that case, otherwise without
+ 		       -Wsystem-headers nothing is reported.  After all,
+ 		       the problematic token is the comma in that case.  */
+ 		    if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
+ 		      sloc = eloc = cloc;
+ 		    while (true)
+ 		      {
+ 			c_token *token = c_parser_peek_token (parser);
+ 			if (token->type == CPP_CLOSE_PAREN && !nesting_depth)
+ 			  break;
+ 
+ 			if (token->type == CPP_EOF)
+ 			  break;
+ 			if (token->type == CPP_OPEN_PAREN)
+ 			  ++nesting_depth;
+ 			else if (token->type == CPP_CLOSE_PAREN)
+ 			  --nesting_depth;
+ 			eloc = token->location;
+ 			c_parser_consume_token (parser);
+ 		      }
+ 		    if (sloc != eloc)
+ 		      sloc = make_location (sloc, sloc, eloc);
+ 		    warning_at (sloc, OPT_Wvarargs,
+ 				"%<va_start%> macro used with additional "
+ 				"arguments other than identifier of the "
+ 				"last named argument");
+ 		  }
+ 	      }
+ 	    parens.skip_until_found_close (parser);
+ 	    tree fndecl = builtin_decl_explicit (BUILT_IN_VA_START);
+ 	    vec<tree, va_gc> *params;
+ 	    vec_alloc (params, 2);
+ 	    params->quick_push (e1.value);
+ 	    params->quick_push (integer_zero_node);
+ 	    auto_vec<location_t> arg_loc (2);
+ 	    arg_loc.quick_push (e1.get_location ());
+ 	    arg_loc.quick_push (UNKNOWN_LOCATION);
+ 	    expr.value = c_build_function_call_vec (loc, arg_loc, fndecl,
+ 						    params, NULL);
+ 	    set_c_expr_source_range (&expr, loc,
+ 				     parser->tokens_buf[0].get_finish ());
+ 	    expr.m_decimal = 0;
+ 	    expr.original_code = ERROR_MARK;
+ 	    expr.original_type = NULL;
+ 	    release_tree_vector (params);
+ 	    break;
+ 	  }
  	case RID_OFFSETOF:
  	  {
  	    c_parser_consume_token (parser);
*************** c_parser_postfix_expression (c_parser *p
*** 10848,10856 ****
  	    if (c_parser_next_token_is (parser, CPP_NAME))
  	      {
  		c_token *comp_tok = c_parser_peek_token (parser);
  		offsetof_ref
  		  = build_component_ref (loc, offsetof_ref, comp_tok->value,
! 					 comp_tok->location, UNKNOWN_LOCATION);
  		c_parser_consume_token (parser);
  		while (c_parser_next_token_is (parser, CPP_DOT)
  		       || c_parser_next_token_is (parser,
--- 11760,11771 ----
  	    if (c_parser_next_token_is (parser, CPP_NAME))
  	      {
  		c_token *comp_tok = c_parser_peek_token (parser);
+ 		/* Ignore the counted_by attribute for reference inside
+ 		   offsetof since the information is not useful at all.  */
  		offsetof_ref
  		  = build_component_ref (loc, offsetof_ref, comp_tok->value,
! 					 comp_tok->location, UNKNOWN_LOCATION,
! 					 false);
  		c_parser_consume_token (parser);
  		while (c_parser_next_token_is (parser, CPP_DOT)
  		       || c_parser_next_token_is (parser,
*************** c_parser_postfix_expression (c_parser *p
*** 10877,10887 ****
  			    break;
  			  }
  			c_token *comp_tok = c_parser_peek_token (parser);
  			offsetof_ref
  			  = build_component_ref (loc, offsetof_ref,
  						 comp_tok->value,
  						 comp_tok->location,
! 						 UNKNOWN_LOCATION);
  			c_parser_consume_token (parser);
  		      }
  		    else
--- 11792,11805 ----
  			    break;
  			  }
  			c_token *comp_tok = c_parser_peek_token (parser);
+ 			/* Ignore the counted_by attribute for reference inside
+ 			   offsetof since the information is not useful.  */
  			offsetof_ref
  			  = build_component_ref (loc, offsetof_ref,
  						 comp_tok->value,
  						 comp_tok->location,
! 						 UNKNOWN_LOCATION,
! 						 false);
  			c_parser_consume_token (parser);
  		      }
  		    else
*************** c_parser_postfix_expression (c_parser *p
*** 11313,11318 ****
--- 12231,12237 ----
  	    bool arg_binary = all_binary;
  	    bool arg_int_decimal = all_decimal;
  	    bool arg_int_floatnx = false;
+ 	    bool arg_int_decimalx = false;
  	    for (unsigned int j = 1; j <= nargs; j++)
  	      {
  		if (parm_kind[j] == tgmath_fixed)
*************** c_parser_postfix_expression (c_parser *p
*** 11417,11422 ****
--- 12336,12343 ----
  			arg_int_floatnx = true;
  			break;
  		      }
+ 		if (rtype == dfloat64x_type_node)
+ 		  arg_int_decimalx = true;
  	      }
  	    tree arg_real = NULL_TREE;
  	    for (unsigned int j = 1; j <= nargs; j++)
*************** c_parser_postfix_expression (c_parser *p
*** 11428,11437 ****
  		if (TREE_CODE (type) == COMPLEX_TYPE)
  		  type = TREE_TYPE (type);
  		if (INTEGRAL_TYPE_P (type))
! 		  type = (arg_int_decimal
! 			  ? dfloat64_type_node
  			  : arg_int_floatnx
  			  ? float32x_type_node
  			  : double_type_node);
  		if (arg_real == NULL_TREE)
  		  arg_real = type;
--- 12349,12360 ----
  		if (TREE_CODE (type) == COMPLEX_TYPE)
  		  type = TREE_TYPE (type);
  		if (INTEGRAL_TYPE_P (type))
! 		  type = (arg_int_decimalx
! 			  ? dfloat64x_type_node
  			  : arg_int_floatnx
  			  ? float32x_type_node
+ 			  : arg_int_decimal
+ 			  ? dfloat64_type_node
  			  : double_type_node);
  		if (arg_real == NULL_TREE)
  		  arg_real = type;
*************** c_parser_postfix_expression (c_parser *p
*** 11625,11630 ****
--- 12548,12601 ----
  	    set_c_expr_source_range (&expr, loc, close_paren_loc);
  	    break;
  	  }
+ 	case RID_BUILTIN_COUNTED_BY_REF:
+ 	  {
+ 	    vec<c_expr_t, va_gc> *cexpr_list;
+ 	    c_expr_t *e_p;
+ 	    location_t close_paren_loc;
+ 
+ 	    c_parser_consume_token (parser);
+ 	    if (!c_parser_get_builtin_args (parser,
+ 					    "__builtin_counted_by_ref",
+ 					    &cexpr_list, false,
+ 					    &close_paren_loc))
+ 	      {
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    if (vec_safe_length (cexpr_list) != 1)
+ 	      {
+ 		error_at (loc, "wrong number of arguments to "
+ 			       "%<__builtin_counted_by_ref%>");
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 
+ 	    e_p = &(*cexpr_list)[0];
+ 	    tree ref = e_p->value;
+ 
+ 	    if (TREE_CODE (TREE_TYPE (ref)) != ARRAY_TYPE)
+ 	      {
+ 		error_at (loc, "the argument to %<__builtin_counted_by_ref%>"
+ 				" must be an array");
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 
+ 	    /* If the array ref is inside TYPEOF or ALIGNOF, the call to
+ 	       .ACCESS_WITH_SIZE was not generated by the routine
+ 	       build_component_ref by default, we should generate it here.  */
+ 	    if ((in_typeof || in_alignof) && TREE_CODE (ref) == COMPONENT_REF)
+ 	      ref = handle_counted_by_for_component_ref (loc, ref);
+ 
+ 	    if (has_counted_by_object (ref))
+ 	      expr.value = get_counted_by_ref (ref);
+ 	    else
+ 	      expr.value = null_pointer_node;
+ 
+ 	    set_c_expr_source_range (&expr, loc, close_paren_loc);
+ 	    break;
+ 	  }
  	case RID_BUILTIN_SHUFFLE:
  	  {
  	    vec<c_expr_t, va_gc> *cexpr_list;
*************** c_parser_postfix_expression (c_parser *p
*** 11772,11783 ****
--- 12743,12757 ----
  	      C_BUILTIN_STDC_HAS_SINGLE_BIT,
  	      C_BUILTIN_STDC_LEADING_ONES,
  	      C_BUILTIN_STDC_LEADING_ZEROS,
+ 	      C_BUILTIN_STDC_ROTATE_LEFT,
+ 	      C_BUILTIN_STDC_ROTATE_RIGHT,
  	      C_BUILTIN_STDC_TRAILING_ONES,
  	      C_BUILTIN_STDC_TRAILING_ZEROS,
  	      C_BUILTIN_STDC_MAX
  	    } stdc_rid = C_BUILTIN_STDC_MAX;
  	    const char *name
  	      = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+ 	    unsigned num_args = 1;
  	    switch (name[sizeof ("__builtin_stdc_") - 1])
  	      {
  	      case 'b':
*************** c_parser_postfix_expression (c_parser *p
*** 11826,11831 ****
--- 12800,12812 ----
  		else
  		  stdc_rid = C_BUILTIN_STDC_LEADING_ZEROS;
  		break;
+ 	      case 'r':
+ 		if (name[sizeof ("__builtin_stdc_rotate_") - 1] == 'l')
+ 		  stdc_rid = C_BUILTIN_STDC_ROTATE_LEFT;
+ 		else
+ 		  stdc_rid = C_BUILTIN_STDC_ROTATE_RIGHT;
+ 		num_args = 2;
+ 		break;
  	      case 't':
  		if (name[sizeof ("__builtin_stdc_trailing_") - 1] == 'o')
  		  stdc_rid = C_BUILTIN_STDC_TRAILING_ONES;
*************** c_parser_postfix_expression (c_parser *p
*** 11844,11850 ****
  		break;
  	      }
  
! 	    if (vec_safe_length (cexpr_list) != 1)
  	      {
  		error_at (loc, "wrong number of arguments to %qs", name);
  		expr.set_error ();
--- 12825,12831 ----
  		break;
  	      }
  
! 	    if (vec_safe_length (cexpr_list) != num_args)
  	      {
  		error_at (loc, "wrong number of arguments to %qs", name);
  		expr.set_error ();
*************** c_parser_postfix_expression (c_parser *p
*** 11880,11885 ****
--- 12861,12874 ----
  		expr.set_error ();
  		break;
  	      }
+ 	    if (TYPE_MAIN_VARIANT (TREE_TYPE (arg_p->value))
+ 		== char_type_node)
+ 	      {
+ 		error_at (loc, "argument 1 in call to function "
+ 			  "%qs has %<char%> type", name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
  	    tree arg = arg_p->value;
  	    tree type = TYPE_MAIN_VARIANT (TREE_TYPE (arg));
  	    /* Expand:
*************** c_parser_postfix_expression (c_parser *p
*** 11916,11921 ****
--- 12905,13012 ----
  	       without evaluating arg multiple times, type being
  	       __typeof (arg) and prec __builtin_popcountg ((type) ~0)).  */
  	    int prec = TYPE_PRECISION (type);
+ 	    if (num_args == 2)
+ 	      {
+ 		/* Expand:
+ 		   __builtin_stdc_rotate_left (arg1, arg2) as
+ 		   arg1 r<< (arg2 % prec)
+ 		   __builtin_stdc_rotate_right (arg1, arg2) as
+ 		   arg1 r>> (arg2 % prec).  */
+ 		arg_p = &(*cexpr_list)[1];
+ 		*arg_p = convert_lvalue_to_rvalue (loc, *arg_p, true, true);
+ 		if (!INTEGRAL_TYPE_P (TREE_TYPE (arg_p->value)))
+ 		  {
+ 		    error_at (loc, "%qs operand not an integral type", name);
+ 		    expr.set_error ();
+ 		    break;
+ 		  }
+ 		if (TREE_CODE (TREE_TYPE (arg_p->value)) == ENUMERAL_TYPE)
+ 		  {
+ 		    error_at (loc, "argument %u in call to function "
+ 				   "%qs has enumerated type", 2, name);
+ 		    expr.set_error ();
+ 		    break;
+ 		  }
+ 		tree arg1 = save_expr (arg);
+ 		tree arg2 = save_expr (arg_p->value);
+ 		tree_code code;
+ 		if (stdc_rid == C_BUILTIN_STDC_ROTATE_LEFT)
+ 		  code = LROTATE_EXPR;
+ 		else
+ 		  code = RROTATE_EXPR;
+ 
+ 		if (TREE_CODE (arg2) == INTEGER_CST
+ 		    && tree_int_cst_sgn (arg2) < 0)
+ 		  warning_at (loc, OPT_Wshift_count_negative,
+ 			      "rotate count is negative");
+ 
+ 		tree instrument_expr = NULL_TREE;
+ 		if (sanitize_flags_p (SANITIZE_SHIFT))
+ 		  instrument_expr = ubsan_instrument_shift (loc, code,
+ 							    arg1, arg2);
+ 
+ 		/* Promote arg2 to unsigned just so that we don't
+ 		   need to deal with arg2 type not being able to represent
+ 		   prec.  In the end gimplification uses unsigned int
+ 		   for all shifts/rotates anyway.  */
+ 		if (TYPE_PRECISION (TREE_TYPE (arg2))
+ 		    < TYPE_PRECISION (integer_type_node))
+ 		  arg2 = fold_convert (unsigned_type_node, arg2);
+ 
+ 		if (TYPE_UNSIGNED (TREE_TYPE (arg2)))
+ 		  arg2 = build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (arg2),
+ 				     arg2, build_int_cst (TREE_TYPE (arg2),
+ 							  prec));
+ 		else
+ 		  {
+ 		    /* When second argument is signed, just do the modulo in
+ 		       unsigned type, that results in better generated code
+ 		       (for power of 2 precisions bitwise AND).  */
+ 		    tree utype = c_common_unsigned_type (TREE_TYPE (arg2));
+ 		    arg2 = build2_loc (loc, TRUNC_MOD_EXPR, utype,
+ 				       fold_convert (utype, arg2),
+ 				       build_int_cst (utype, prec));
+ 		  }
+ 
+ 		/* The middle-end isn't prepared to handle {L,R}ROTATE_EXPR
+ 		   on types without mode precision, except for large/huge
+ 		   _BitInt types.  */
+ 		if (type_has_mode_precision_p (TREE_TYPE (arg1))
+ 		    || (TREE_CODE (TREE_TYPE (arg1)) == BITINT_TYPE
+ 			&& prec > MAX_FIXED_MODE_SIZE))
+ 		  expr.value = build2_loc (loc, code, TREE_TYPE (arg1), arg1,
+ 					   arg2);
+ 		else
+ 		  {
+ 		    arg2 = save_expr (arg2);
+ 		    tree t1 = build2_loc (loc, (code == LROTATE_EXPR
+ 						? LSHIFT_EXPR : RSHIFT_EXPR),
+ 					  TREE_TYPE (arg1), arg1, arg2);
+ 		    tree t2 = build2_loc (loc, MINUS_EXPR,
+ 					  TREE_TYPE (arg2),
+ 					  build_int_cst (TREE_TYPE (arg2),
+ 							 prec), arg2);
+ 		    t2 = build2_loc (loc, (code == LROTATE_EXPR
+ 					   ? RSHIFT_EXPR : LSHIFT_EXPR),
+ 				     TREE_TYPE (arg1), arg1, t2);
+ 		    suppress_warning (t2, OPT_Wshift_count_overflow);
+ 		    tree t3 = build2_loc (loc, BIT_IOR_EXPR,
+ 					  TREE_TYPE (arg1), t1, t2);
+ 		    tree t4 = build2_loc (loc, NE_EXPR, boolean_type_node,
+ 					  arg2,
+ 					  build_zero_cst (TREE_TYPE (arg2)));
+ 		    t4 = build2_loc (loc, COMPOUND_EXPR, boolean_type_node,
+ 				     arg1, t4);
+ 		    expr.value = build3_loc (loc, COND_EXPR,
+ 					     TREE_TYPE (arg1), t4, t3, arg1);
+ 		  }
+ 		if (instrument_expr)
+ 		  expr.value = build2_loc (loc, COMPOUND_EXPR,
+ 					   TREE_TYPE (expr.value),
+ 					   instrument_expr, expr.value);
+ 		set_c_expr_source_range (&expr, loc, close_paren_loc);
+ 		break;
+ 	      }
  	    tree barg1 = arg;
  	    switch (stdc_rid)
  	      {
*************** warn_for_abs (location_t loc, tree fndec
*** 12452,12457 ****
--- 13543,13549 ----
      case BUILT_IN_FABSD32:
      case BUILT_IN_FABSD64:
      case BUILT_IN_FABSD128:
+     case BUILT_IN_FABSD64X:
        if (!DECIMAL_FLOAT_TYPE_P (atype))
  	{
  	  if (INTEGRAL_TYPE_P (atype))
*************** c_parser_expression (c_parser *parser)
*** 12800,12807 ****
  	}
        if (DECL_P (lhsval) || handled_component_p (lhsval))
  	mark_exp_read (lhsval);
!       next = c_parser_expr_no_commas (parser, NULL);
!       next = convert_lvalue_to_rvalue (expr_loc, next, true, false);
        expr.value = build_compound_expr (loc, expr.value, next.value);
        expr.original_code = COMPOUND_EXPR;
        expr.original_type = next.original_type;
--- 13892,13918 ----
  	}
        if (DECL_P (lhsval) || handled_component_p (lhsval))
  	mark_exp_read (lhsval);
!       if (c_parser_next_token_is (parser, CPP_EMBED))
! 	{
! 	  /* Users aren't interested in milions of -Wunused-value
! 	     warnings when using #embed inside of a comma expression,
! 	     and one CPP_NUMBER plus CPP_COMMA before it and one
! 	     CPP_COMMA plus CPP_NUMBER after it is guaranteed by
! 	     the preprocessor.  Thus, parse the whole CPP_EMBED just
! 	     as a single INTEGER_CST, the last byte in it.  */
! 	  c_token *embed = c_parser_peek_token (parser);
! 	  tree val = embed->value;
! 	  unsigned last = RAW_DATA_LENGTH (val) - 1;
! 	  next.value = build_int_cst (TREE_TYPE (val),
! 				      RAW_DATA_UCHAR_ELT (val, last));
! 	  next.original_type = integer_type_node;
! 	  c_parser_consume_token (parser);
! 	}
!       else
! 	{
! 	  next = c_parser_expr_no_commas (parser, NULL);
! 	  next = convert_lvalue_to_rvalue (expr_loc, next, true, false);
! 	}
        expr.value = build_compound_expr (loc, expr.value, next.value);
        expr.original_code = COMPOUND_EXPR;
        expr.original_type = next.original_type;
*************** c_parser_expr_list (c_parser *parser, bo
*** 12906,12911 ****
--- 14017,14049 ----
    while (c_parser_next_token_is (parser, CPP_COMMA))
      {
        c_parser_consume_token (parser);
+       if (c_parser_next_token_is (parser, CPP_EMBED))
+ 	{
+ 	  c_token *embed = c_parser_peek_token (parser);
+ 	  tree value = embed->value;
+ 	  expr.original_code = INTEGER_CST;
+ 	  expr.original_type = integer_type_node;
+ 	  expr.value = NULL_TREE;
+ 	  set_c_expr_source_range (&expr, embed->get_range ());
+ 	  expr.m_decimal = 0;
+ 	  for (unsigned int i = 0; i < (unsigned) RAW_DATA_LENGTH (value); i++)
+ 	    {
+ 	      if (literal_zero_mask
+ 		  && idx + 1 < HOST_BITS_PER_INT
+ 		  && RAW_DATA_POINTER (value)[i] == 0)
+ 		*literal_zero_mask |= 1U << (idx + 1);
+ 	      expr.value = build_int_cst (integer_type_node,
+ 					  RAW_DATA_UCHAR_ELT (value, i));
+ 	      vec_safe_push (ret, expr.value);
+ 	      if (orig_types)
+ 		vec_safe_push (orig_types, expr.original_type);
+ 	      if (locations)
+ 		locations->safe_push (expr.get_location ());
+ 	      ++idx;
+ 	    }
+ 	  c_parser_consume_token (parser);
+ 	  continue;
+ 	}
        if (literal_zero_mask)
  	c_parser_check_literal_zero (parser, literal_zero_mask, idx + 1);
        expr = c_parser_expr_no_commas (parser, NULL);
*************** c_parser_objc_class_instance_variables (
*** 13129,13135 ****
  	}
        else if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	{
! 	  c_parser_pragma (parser, pragma_external, NULL);
  	  continue;
  	}
  
--- 14267,14273 ----
  	}
        else if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	{
! 	  c_parser_pragma (parser, pragma_external, NULL, NULL_TREE);
  	  continue;
  	}
  
*************** c_parser_objc_class_instance_variables (
*** 13140,13146 ****
  	  /* There is a syntax error.  We want to skip the offending
  	     tokens up to the next ';' (included) or '}'
  	     (excluded).  */
! 	  
  	  /* First, skip manually a ')' or ']'.  This is because they
  	     reduce the nesting level, so c_parser_skip_until_found()
  	     wouldn't be able to skip past them.  */
--- 14278,14284 ----
  	  /* There is a syntax error.  We want to skip the offending
  	     tokens up to the next ';' (included) or '}'
  	     (excluded).  */
! 
  	  /* First, skip manually a ')' or ']'.  This is because they
  	     reduce the nesting level, so c_parser_skip_until_found()
  	     wouldn't be able to skip past them.  */
*************** c_parser_objc_methodprotolist (c_parser
*** 13400,13406 ****
  	  c_parser_objc_methodproto (parser);
  	  break;
  	case CPP_PRAGMA:
! 	  c_parser_pragma (parser, pragma_external, NULL);
  	  break;
  	case CPP_EOF:
  	  return;
--- 14538,14544 ----
  	  c_parser_objc_methodproto (parser);
  	  break;
  	case CPP_PRAGMA:
! 	  c_parser_pragma (parser, pragma_external, NULL, NULL_TREE);
  	  break;
  	case CPP_EOF:
  	  return;
*************** c_parser_objc_methodprotolist (c_parser
*** 13421,13427 ****
  	    }
  	  else
  	    c_parser_declaration_or_fndef (parser, false, false, true,
! 					   false, true);
  	  break;
  	}
      }
--- 14559,14565 ----
  	    }
  	  else
  	    c_parser_declaration_or_fndef (parser, false, false, true,
! 					   false, true, false);
  	  break;
  	}
      }
*************** c_parser_objc_methodproto (c_parser *par
*** 13446,13477 ****
    /* Forget protocol qualifiers now.  */
    parser->objc_pq_context = false;
  
!   /* Do not allow the presence of attributes to hide an erroneous 
       method implementation in the interface section.  */
    if (!c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        c_parser_error (parser, "expected %<;%>");
        return;
      }
!   
    if (decl != error_mark_node)
      objc_add_method_declaration (is_class_method, decl, attributes);
  
    c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
  }
  
! /* If we are at a position that method attributes may be present, check that 
!    there are not any parsed already (a syntax error) and then collect any 
     specified at the current location.  Finally, if new attributes were present,
     check that the next token is legal ( ';' for decls and '{' for defs).  */
!    
! static bool 
  c_parser_objc_maybe_method_attributes (c_parser* parser, tree* attributes)
  {
    bool bad = false;
    if (*attributes)
      {
!       c_parser_error (parser, 
  		    "method attributes must be specified at the end only");
        *attributes = NULL_TREE;
        bad = true;
--- 14584,14615 ----
    /* Forget protocol qualifiers now.  */
    parser->objc_pq_context = false;
  
!   /* Do not allow the presence of attributes to hide an erroneous
       method implementation in the interface section.  */
    if (!c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        c_parser_error (parser, "expected %<;%>");
        return;
      }
! 
    if (decl != error_mark_node)
      objc_add_method_declaration (is_class_method, decl, attributes);
  
    c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
  }
  
! /* If we are at a position that method attributes may be present, check that
!    there are not any parsed already (a syntax error) and then collect any
     specified at the current location.  Finally, if new attributes were present,
     check that the next token is legal ( ';' for decls and '{' for defs).  */
! 
! static bool
  c_parser_objc_maybe_method_attributes (c_parser* parser, tree* attributes)
  {
    bool bad = false;
    if (*attributes)
      {
!       c_parser_error (parser,
  		    "method attributes must be specified at the end only");
        *attributes = NULL_TREE;
        bad = true;
*************** c_parser_objc_maybe_method_attributes (c
*** 13491,13497 ****
      return bad;
  
    /* We've got attributes, but not at the end.  */
!   c_parser_error (parser, 
  		  "expected %<;%> or %<{%> after method attribute definition");
    return true;
  }
--- 14629,14635 ----
      return bad;
  
    /* We've got attributes, but not at the end.  */
!   c_parser_error (parser,
  		  "expected %<;%> or %<{%> after method attribute definition");
    return true;
  }
*************** c_parser_objc_method_decl (c_parser *par
*** 13597,13603 ****
  	    {
  	      ellipsis = true;
  	      c_parser_consume_token (parser);
! 	      attr_err |= c_parser_objc_maybe_method_attributes 
  						(parser, attributes) ;
  	      break;
  	    }
--- 14735,14741 ----
  	    {
  	      ellipsis = true;
  	      c_parser_consume_token (parser);
! 	      attr_err |= c_parser_objc_maybe_method_attributes
  						(parser, attributes) ;
  	      break;
  	    }
*************** c_parser_objc_protocol_refs (c_parser *p
*** 13727,13733 ****
     where '...' is to be interpreted literally, that is, it means CPP_ELLIPSIS.
  
     PS: This function is identical to cp_parser_objc_try_catch_finally_statement
!    for C++.  Keep them in sync.  */   
  
  static void
  c_parser_objc_try_catch_finally_statement (c_parser *parser)
--- 14865,14871 ----
     where '...' is to be interpreted literally, that is, it means CPP_ELLIPSIS.
  
     PS: This function is identical to cp_parser_objc_try_catch_finally_statement
!    for C++.  Keep them in sync.  */
  
  static void
  c_parser_objc_try_catch_finally_statement (c_parser *parser)
*************** c_parser_objc_try_catch_finally_statemen
*** 13786,13792 ****
  	     going.  */
  	  if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
  	    c_parser_consume_token (parser);
! 	  
  	  /* If these is no immediate closing parenthesis, the user
  	     probably doesn't know that parenthesis are required at
  	     all (ie, they typed "@catch NSException *e").  So, just
--- 14924,14930 ----
  	     going.  */
  	  if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
  	    c_parser_consume_token (parser);
! 
  	  /* If these is no immediate closing parenthesis, the user
  	     probably doesn't know that parenthesis are required at
  	     all (ie, they typed "@catch NSException *e").  So, just
*************** c_parser_objc_keywordexpr (c_parser *par
*** 14059,14071 ****
  /* A check, needed in several places, that ObjC interface, implementation or
     method definitions are not prefixed by incorrect items.  */
  static bool
! c_parser_objc_diagnose_bad_element_prefix (c_parser *parser, 
  					   struct c_declspecs *specs)
  {
    if (!specs->declspecs_seen_p || specs->non_sc_seen_p
        || specs->typespec_kind != ctsk_none)
      {
!       c_parser_error (parser, 
        		      "no type or storage class may be specified here,");
        c_parser_skip_to_end_of_block_or_statement (parser);
        return true;
--- 15197,15209 ----
  /* A check, needed in several places, that ObjC interface, implementation or
     method definitions are not prefixed by incorrect items.  */
  static bool
! c_parser_objc_diagnose_bad_element_prefix (c_parser *parser,
  					   struct c_declspecs *specs)
  {
    if (!specs->declspecs_seen_p || specs->non_sc_seen_p
        || specs->typespec_kind != ctsk_none)
      {
!       c_parser_error (parser,
        		      "no type or storage class may be specified here,");
        c_parser_skip_to_end_of_block_or_statement (parser);
        return true;
*************** c_parser_pragma_unroll (c_parser *parser
*** 14469,14478 ****
  /* Handle pragmas.  Some OpenMP pragmas are associated with, and therefore
     should be considered, statements.  ALLOW_STMT is true if we're within
     the context of a function and such pragmas are to be allowed.  Returns
!    true if we actually parsed such a pragma.  */
  
  static bool
! c_parser_pragma (c_parser *parser, enum pragma_context context, bool *if_p)
  {
    unsigned int id;
    const char *construct = NULL;
--- 15607,15618 ----
  /* Handle pragmas.  Some OpenMP pragmas are associated with, and therefore
     should be considered, statements.  ALLOW_STMT is true if we're within
     the context of a function and such pragmas are to be allowed.  Returns
!    true if we actually parsed such a pragma.  BEFORE_LABELS is last statement
!    before possible labels, see get_before_labels description for details.  */
  
  static bool
! c_parser_pragma (c_parser *parser, enum pragma_context context, bool *if_p,
! 		 tree before_labels)
  {
    unsigned int id;
    const char *construct = NULL;
*************** c_parser_pragma (c_parser *parser, enum
*** 14572,14577 ****
--- 15712,15726 ----
        c_parser_omp_flush (parser);
        return false;
  
+     case PRAGMA_OMP_INTEROP:
+       if (context != pragma_compound)
+ 	{
+ 	  construct = "omp interop";
+ 	  goto in_compound;
+ 	}
+       c_parser_omp_interop (parser);
+       return false;
+ 
      case PRAGMA_OMP_TASKWAIT:
        if (context != pragma_compound)
  	{
*************** c_parser_pragma (c_parser *parser, enum
*** 14666,14671 ****
--- 15815,15824 ----
        c_parser_omp_nothing (parser);
        return false;
  
+     case PRAGMA_OMP_METADIRECTIVE:
+       c_parser_omp_metadirective (parser, if_p);
+       return true;
+ 
      case PRAGMA_OMP_ERROR:
        return c_parser_omp_error (parser, context);
  
*************** c_parser_pragma (c_parser *parser, enum
*** 14725,14735 ****
  	    return false;
  	  }
  	if (c_parser_next_token_is_keyword (parser, RID_FOR))
! 	  c_parser_for_statement (parser, ivdep, unroll, novector, if_p);
  	else if (c_parser_next_token_is_keyword (parser, RID_WHILE))
! 	  c_parser_while_statement (parser, ivdep, unroll, novector, if_p);
  	else
! 	  c_parser_do_statement (parser, ivdep, unroll, novector);
        }
        return true;
  
--- 15878,15891 ----
  	    return false;
  	  }
  	if (c_parser_next_token_is_keyword (parser, RID_FOR))
! 	  c_parser_for_statement (parser, ivdep, unroll, novector, if_p,
! 				  before_labels);
  	else if (c_parser_next_token_is_keyword (parser, RID_WHILE))
! 	  c_parser_while_statement (parser, ivdep, unroll, novector, if_p,
! 				    before_labels);
  	else
! 	  c_parser_do_statement (parser, ivdep, unroll, novector,
! 				 before_labels);
        }
        return true;
  
*************** c_parser_omp_clause_name (c_parser *pars
*** 14896,14901 ****
--- 16052,16059 ----
  	    result = PRAGMA_OACC_CLAUSE_DELETE;
  	  else if (!strcmp ("depend", p))
  	    result = PRAGMA_OMP_CLAUSE_DEPEND;
+ 	  else if (!strcmp ("destroy", p))
+ 	    result = PRAGMA_OMP_CLAUSE_DESTROY;
  	  else if (!strcmp ("detach", p))
  	    result = PRAGMA_OACC_CLAUSE_DETACH;
  	  else if (!strcmp ("device", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 14926,14931 ****
--- 16084,16091 ----
  	    result = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE;
  	  else if (!strcmp ("from", p))
  	    result = PRAGMA_OMP_CLAUSE_FROM;
+ 	  else if (!strcmp ("full", p))
+ 	    result = PRAGMA_OMP_CLAUSE_FULL;
  	  break;
  	case 'g':
  	  if (!strcmp ("gang", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 14952,14959 ****
--- 16112,16123 ----
  	    result = PRAGMA_OACC_CLAUSE_INDEPENDENT;
  	  else if (!strcmp ("indirect", p))
  	    result = PRAGMA_OMP_CLAUSE_INDIRECT;
+ 	  else if (!strcmp ("init", p))
+ 	    result = PRAGMA_OMP_CLAUSE_INIT;
  	  else if (!strcmp ("is_device_ptr", p))
  	    result = PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR;
+ 	  else if (!strcmp ("interop", p))
+ 	    result = PRAGMA_OMP_CLAUSE_INTEROP;
  	  break;
  	case 'l':
  	  if (!strcmp ("lastprivate", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 14972,14977 ****
--- 16136,16143 ----
  	case 'n':
  	  if (!strcmp ("no_create", p))
  	    result = PRAGMA_OACC_CLAUSE_NO_CREATE;
+ 	  else if (!strcmp ("nocontext", p))
+ 	    result = PRAGMA_OMP_CLAUSE_NOCONTEXT;
  	  else if (!strcmp ("nogroup", p))
  	    result = PRAGMA_OMP_CLAUSE_NOGROUP;
  	  else if (!strcmp ("nohost", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 14980,14985 ****
--- 16146,16153 ----
  	    result = PRAGMA_OMP_CLAUSE_NONTEMPORAL;
  	  else if (!strcmp ("notinbranch", p))
  	    result = PRAGMA_OMP_CLAUSE_NOTINBRANCH;
+ 	  else if (!strcmp ("novariants", p))
+ 	    result = PRAGMA_OMP_CLAUSE_NOVARIANTS;
  	  else if (!strcmp ("nowait", p))
  	    result = PRAGMA_OMP_CLAUSE_NOWAIT;
  	  else if (!strcmp ("num_gangs", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 15002,15007 ****
--- 16170,16177 ----
  	case 'p':
  	  if (!strcmp ("parallel", p))
  	    result = PRAGMA_OMP_CLAUSE_PARALLEL;
+ 	  else if (!strcmp ("partial", p))
+ 	    result = PRAGMA_OMP_CLAUSE_PARTIAL;
  	  else if (!strcmp ("present", p))
  	    result = PRAGMA_OACC_CLAUSE_PRESENT;
  	  /* As of OpenACC 2.5, these are now aliases of the non-present_or
*************** c_parser_omp_clause_name (c_parser *pars
*** 15066,15071 ****
--- 16236,16243 ----
  	    result = PRAGMA_OMP_CLAUSE_UNIFORM;
  	  else if (!strcmp ("untied", p))
  	    result = PRAGMA_OMP_CLAUSE_UNTIED;
+ 	  else if (!strcmp ("use", p))
+ 	    result = PRAGMA_OMP_CLAUSE_USE;
  	  else if (!strcmp ("use_device", p))
  	    result = PRAGMA_OACC_CLAUSE_USE_DEVICE;
  	  else if (!strcmp ("use_device_addr", p))
*************** c_parser_oacc_wait_list (c_parser *parse
*** 15156,15163 ****
     decl in OMP_CLAUSE_DECL and add the node to the head of the list.
     If KIND is nonzero, CLAUSE_LOC is the location of the clause.
  
!    If KIND is zero, create a TREE_LIST with the decl in TREE_PURPOSE;
!    return the list created.
  
     The optional ALLOW_DEREF argument is true if list items can use the deref
     (->) operator.  */
--- 16328,16336 ----
     decl in OMP_CLAUSE_DECL and add the node to the head of the list.
     If KIND is nonzero, CLAUSE_LOC is the location of the clause.
  
!    If KIND is zero (= OMP_CLAUSE_ERROR), create a TREE_LIST with the decl
!    in TREE_PURPOSE and the location in TREE_VALUE (accessible using
!    EXPR_LOCATION); return the list created.
  
     The optional ALLOW_DEREF argument is true if list items can use the deref
     (->) operator.  */
*************** c_parser_omp_variable_list (c_parser *pa
*** 15182,15192 ****
    auto_vec<c_token> tokens;
    unsigned int tokens_avail = 0;
    c_token *saved_tokens = NULL;
-   bool first = true;
  
    while (1)
      {
        tree t = NULL_TREE;
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
--- 16355,16365 ----
    auto_vec<c_token> tokens;
    unsigned int tokens_avail = 0;
    c_token *saved_tokens = NULL;
  
    while (1)
      {
        tree t = NULL_TREE;
+       location_t tloc = c_parser_peek_token (parser)->location;
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
*************** c_parser_omp_variable_list (c_parser *pa
*** 15218,15224 ****
  		break;
  
  	      c_parser_consume_token (parser);
- 	      first = false;
  	      continue;
  	    }
  
--- 16391,16396 ----
*************** c_parser_omp_variable_list (c_parser *pa
*** 15382,15395 ****
  	t = c_parser_predefined_identifier (parser).value;
        else
  	{
! 	  if (first)
! 	    c_parser_error (parser, "expected identifier");
  	  break;
  	}
  
        if (t == error_mark_node)
  	;
!       else if (kind != 0)
  	{
  	  switch (kind)
  	    {
--- 16554,16566 ----
  	t = c_parser_predefined_identifier (parser).value;
        else
  	{
! 	  c_parser_error (parser, "expected identifier");
  	  break;
  	}
  
        if (t == error_mark_node)
  	;
!       else if (kind != 0)  /* kind != OMP_CLAUSE_ERROR */
  	{
  	  switch (kind)
  	    {
*************** c_parser_omp_variable_list (c_parser *pa
*** 15563,15570 ****
  	      list = u;
  	    }
  	}
!       else
! 	list = tree_cons (t, NULL_TREE, list);
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
--- 16734,16741 ----
  	      list = u;
  	    }
  	}
!       else  /* kind == OMP_CLAUSE_ERROR */
! 	list = tree_cons (t, build_empty_stmt (tloc), list);
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
*************** c_parser_omp_variable_list (c_parser *pa
*** 15577,15583 ****
  	break;
  
        c_parser_consume_token (parser);
-       first = false;
      }
  
    return list;
--- 16748,16753 ----
*************** c_parser_oacc_data_clause (c_parser *par
*** 15725,15731 ****
  static tree
  c_parser_oacc_data_clause_deviceptr (c_parser *parser, tree list)
  {
-   location_t loc = c_parser_peek_token (parser)->location;
    tree vars, t;
  
    /* Can't use OMP_CLAUSE_MAP here (that is, can't use the generic
--- 16895,16900 ----
*************** c_parser_oacc_data_clause_deviceptr (c_p
*** 15735,15746 ****
    for (t = vars; t && t; t = TREE_CHAIN (t))
      {
        tree v = TREE_PURPOSE (t);
! 
!       /* FIXME diagnostics: Ideally we should keep individual
! 	 locations for all the variables in the var list to make the
! 	 following errors more precise.  Perhaps
! 	 c_parser_omp_var_list_parens() should construct a list of
! 	 locations to go along with the var list.  */
  
        if (!VAR_P (v) && TREE_CODE (v) != PARM_DECL)
  	error_at (loc, "%qD is not a variable", v);
--- 16904,16910 ----
    for (t = vars; t && t; t = TREE_CHAIN (t))
      {
        tree v = TREE_PURPOSE (t);
!       location_t loc = EXPR_LOCATION (TREE_VALUE (t));
  
        if (!VAR_P (v) && TREE_CODE (v) != PARM_DECL)
  	error_at (loc, "%qD is not a variable", v);
*************** c_parser_omp_clause_private (c_parser *p
*** 17278,17284 ****
       One of: + * - & ^ | && ||
  
     OpenMP 3.1:
!    
     reduction-operator:
       One of: + * - & ^ | && || max min
  
--- 18442,18448 ----
       One of: + * - & ^ | && ||
  
     OpenMP 3.1:
! 
     reduction-operator:
       One of: + * - & ^ | && || max min
  
*************** c_parser_omp_clause_allocate (c_parser *
*** 17926,17932 ****
  	  if (has_modifiers)
  	    {
  	      c_parser_consume_token (parser);
! 	      matching_parens parens2;;
  	      parens2.require_open (parser);
  	      location_t expr_loc = c_parser_peek_token (parser)->location;
  	      c_expr expr = c_parser_expr_no_commas (parser, NULL);
--- 19090,19096 ----
  	  if (has_modifiers)
  	    {
  	      c_parser_consume_token (parser);
! 	      matching_parens parens2;
  	      parens2.require_open (parser);
  	      location_t expr_loc = c_parser_peek_token (parser)->location;
  	      c_expr expr = c_parser_expr_no_commas (parser, NULL);
*************** c_parser_omp_clause_uniform (c_parser *p
*** 19190,19195 ****
--- 20354,20468 ----
    return list;
  }
  
+ /* OpenMP 5.1
+    full */
+ 
+ static tree
+ c_parser_omp_clause_full (c_parser *parser, tree list)
+ {
+   check_no_duplicate_clause (list, OMP_CLAUSE_FULL, "full");
+ 
+   location_t loc = c_parser_peek_token (parser)->location;
+   tree c = build_omp_clause (loc, OMP_CLAUSE_FULL);
+   OMP_CLAUSE_CHAIN (c) = list;
+   return c;
+ }
+ 
+ /* OpenMP 5.1
+    partial ( constant-expression ) */
+ 
+ static tree
+ c_parser_omp_clause_partial (c_parser *parser, tree list)
+ {
+   tree num = NULL_TREE;
+   location_t loc = c_parser_peek_token (parser)->location;
+ 
+   check_no_duplicate_clause (list, OMP_CLAUSE_PARTIAL, "partial");
+ 
+   if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
+     {
+       matching_parens parens;
+       parens.consume_open (parser);
+       num = c_parser_expr_no_commas (parser, NULL).value;
+       parens.skip_until_found_close (parser);
+ 
+       if (num == error_mark_node)
+ 	return list;
+ 
+       mark_exp_read (num);
+       num = c_fully_fold (num, false, NULL);
+       HOST_WIDE_INT n;
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (num))
+ 	  || !tree_fits_shwi_p (num)
+ 	  || (n = tree_to_shwi (num)) <= 0
+ 	  || (int) n != n)
+ 	{
+ 	  error_at (loc, "%<partial%> argument needs positive constant "
+ 			 "integer expression");
+ 	  return list;
+ 	}
+     }
+ 
+   tree c = build_omp_clause (loc, OMP_CLAUSE_PARTIAL);
+   OMP_CLAUSE_PARTIAL_EXPR (c) = num;
+   OMP_CLAUSE_CHAIN (c) = list;
+   return c;
+ }
+ 
+ /* OpenMP 5.1
+    novariants ( scalar-expression ) */
+ 
+ static tree
+ c_parser_omp_clause_novariants (c_parser *parser, tree list)
+ {
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return list;
+ 
+   location_t loc = c_parser_peek_token (parser)->location;
+   c_expr expr = c_parser_expr_no_commas (parser, NULL);
+   tree t = convert_lvalue_to_rvalue (loc, expr, true, true).value;
+   t = c_objc_common_truthvalue_conversion (loc, t);
+   t = c_fully_fold (t, false, NULL);
+   parens.skip_until_found_close (parser);
+ 
+   check_no_duplicate_clause (list, OMP_CLAUSE_NOVARIANTS, "novariants");
+ 
+   tree c = build_omp_clause (loc, OMP_CLAUSE_NOVARIANTS);
+   OMP_CLAUSE_NOVARIANTS_EXPR (c) = t;
+   OMP_CLAUSE_CHAIN (c) = list;
+   list = c;
+ 
+   return list;
+ }
+ 
+ /* OpenMP 5.1
+    nocontext ( scalar-expression ) */
+ 
+ static tree
+ c_parser_omp_clause_nocontext (c_parser *parser, tree list)
+ {
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return list;
+ 
+   location_t loc = c_parser_peek_token (parser)->location;
+   c_expr expr = c_parser_expr_no_commas (parser, NULL);
+   tree t = convert_lvalue_to_rvalue (loc, expr, true, true).value;
+   t = c_objc_common_truthvalue_conversion (loc, t);
+   t = c_fully_fold (t, false, NULL);
+   parens.skip_until_found_close (parser);
+ 
+   check_no_duplicate_clause (list, OMP_CLAUSE_NOCONTEXT, "nocontext");
+ 
+   tree c = build_omp_clause (loc, OMP_CLAUSE_NOCONTEXT);
+   OMP_CLAUSE_NOCONTEXT_EXPR (c) = t;
+   OMP_CLAUSE_CHAIN (c) = list;
+   list = c;
+ 
+   return list;
+ }
+ 
  /* OpenMP 5.0:
     detach ( event-handle ) */
  
*************** c_parser_omp_clause_detach (c_parser *pa
*** 19240,19245 ****
--- 20513,20923 ----
    return u;
  }
  
+ /* OpenMP 5.0:
+    destroy ( variable-list ) */
+ 
+ static tree
+ c_parser_omp_clause_destroy (c_parser *parser, tree list)
+ {
+   tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_DESTROY, list);
+   for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
+     TREE_ADDRESSABLE (OMP_CLAUSE_DECL (c)) = 1;
+   return nl;
+ }
+ 
+ /* OpenMP 5.1:
+      prefer_type ( const-int-expr-or-string-literal-list )
+ 
+    OpenMP 6.0:
+      prefer_type ( { preference-selector-list }, { ... } )
+ 
+    with preference-selector being:
+      fr ( identifier-or-string-literal-list )
+      attr ( string-list )
+ 
+    Data format:
+     For the foreign runtime identifiers, string values are converted to
+     their integer value; unknown string or integer values are set to
+     GOMP_INTEROP_IFR_KNOWN.
+ 
+     Each item (a) GOMP_INTEROP_IFR_SEPARATOR
+ 	      (b) for any 'fr', its integer value.
+ 		  Note: Spec only permits 1 'fr' entry (6.0; changed after TR13)
+ 	      (c) GOMP_INTEROP_IFR_SEPARATOR
+ 	      (d) list of \0-terminated non-empty strings for 'attr'
+ 	      (e) '\0'
+     Tailing '\0'.  */
+ 
+ static tree
+ c_parser_omp_modifier_prefer_type (c_parser *parser)
+ {
+   if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
+     return error_mark_node;
+ 
+   std::string str;
+ 
+   /* Old Format: const-int-expr-or-string-literal-list */
+   if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE))
+     while (true)
+       {
+ 	str += (char) GOMP_INTEROP_IFR_SEPARATOR;
+ 	if (c_parser_next_token_is (parser, CPP_STRING))
+ 	  {
+ 	    c_expr cval = c_parser_string_literal (parser, false, false);
+ 	    if (cval.value == error_mark_node)
+ 	      return error_mark_node;
+ 	    if ((size_t) TREE_STRING_LENGTH (cval.value)
+ 		!= strlen (TREE_STRING_POINTER (cval.value)) + 1)
+ 	      {
+ 		error_at (cval.get_location (), "string literal must "
+ 						"not contain %<\\0%>");
+ 		parser->error = true;
+ 		return error_mark_node;
+ 	      }
+ 
+ 	    char c = omp_get_fr_id_from_name (TREE_STRING_POINTER (cval.value));
+ 	    if (c == GOMP_INTEROP_IFR_UNKNOWN)
+ 	      warning_at (cval.get_location (), OPT_Wopenmp,
+ 			  "unknown foreign runtime identifier %qs",
+ 			  TREE_STRING_POINTER (cval.value));
+ 	    str += c;
+ 	  }
+ 	else
+ 	  {
+ 	    c_expr cval = c_parser_expr_no_commas (parser, NULL);
+ 	    tree value = c_fully_fold (cval.value, false, NULL);
+ 	    if (INTEGRAL_TYPE_P (TREE_TYPE (value))
+ 		&& TREE_CODE (value) != INTEGER_CST)
+ 	      value = convert_lvalue_to_rvalue (cval.get_start (), cval,
+ 						false, true).value;
+ 	    if (TREE_CODE (value) != INTEGER_CST
+ 		|| !tree_fits_shwi_p (value))
+ 	      {
+ 		c_parser_error (parser, "expected string literal or constant "
+ 					"integer expression");
+ 		return error_mark_node;
+ 	      }
+ 	    HOST_WIDE_INT n = tree_to_shwi (value);
+ 	    if (n < 1 || n > GOMP_INTEROP_IFR_LAST)
+ 	      {
+ 		warning_at (cval.get_location (), OPT_Wopenmp,
+ 			    "unknown foreign runtime identifier %qwd", n);
+ 		n = GOMP_INTEROP_IFR_UNKNOWN;
+ 	      }
+ 	    str += (char) n;
+ 	  }
+ 	str += (char) GOMP_INTEROP_IFR_SEPARATOR;
+ 	str += '\0';
+ 	if (c_parser_next_token_is (parser, CPP_COMMA))
+ 	  {
+ 	    c_parser_consume_token (parser);
+ 	    continue;
+ 	  }
+ 	if (!c_parser_require (parser, CPP_CLOSE_PAREN,
+ 			       "expected %<,%> or %<)%>"))
+ 	  return error_mark_node;
+ 	str += '\0';
+ 	tree res = build_string (str.length (), str.data ());
+ 	TREE_TYPE (res) = build_array_type_nelts (unsigned_char_type_node,
+ 						  str.length ());
+ 	return res;
+       }
+ 
+   /* New format. */
+   std::string str2;
+   while (true)
+     {
+       if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>"))
+ 	return error_mark_node;
+       str += (char) GOMP_INTEROP_IFR_SEPARATOR;
+       str2.clear ();
+       bool has_fr = false;
+       while (true)
+ 	{
+ 	  c_token *tok = c_parser_peek_token (parser);
+ 	  if (tok->type != CPP_NAME
+ 	      || (strcmp("fr", IDENTIFIER_POINTER (tok->value)) != 0
+ 		  && strcmp("attr", IDENTIFIER_POINTER (tok->value)) != 0))
+ 	    {
+ 	      c_parser_error (parser, "expected %<fr%> or %<attr%> preference "
+ 				      "selector");
+ 	      return error_mark_node;
+ 	    }
+ 	  c_parser_consume_token (parser);
+ 	  bool is_fr = IDENTIFIER_POINTER (tok->value)[0] == 'f';
+ 	  if (is_fr && has_fr)
+ 	    {
+ 	      c_parser_error (parser, "duplicated %<fr%> preference selector");
+ 	      return error_mark_node;
+ 	    }
+ 	  if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
+ 	    return error_mark_node;
+ 	  while (true)
+ 	    {
+ 	      if (c_parser_next_token_is (parser, CPP_STRING))
+ 		{
+ 		  c_expr cval = c_parser_string_literal (parser, false, false);
+ 		  tree value = cval.value;
+ 		  if (value == error_mark_node)
+ 		    return error_mark_node;
+ 		  if ((size_t) TREE_STRING_LENGTH (value)
+ 		      != strlen (TREE_STRING_POINTER (value)) + 1)
+ 		    {
+ 		      error_at (cval.get_location (), "string literal must "
+ 						      "not contain %<\\0%>");
+ 		      parser->error = true;
+ 		      return error_mark_node;
+ 		    }
+ 		  if (!is_fr)
+ 		    {
+ 		      if (!startswith (TREE_STRING_POINTER (value), "ompx_"))
+ 			{
+ 			  error_at (cval.get_location (),
+ 				    "%<attr%> string literal must start with "
+ 				    "%<ompx_%>");
+ 			  parser->error = true;
+ 			  return error_mark_node;
+ 			}
+ 		      if (strchr (TREE_STRING_POINTER (value), ','))
+ 			{
+ 			  error_at (cval.get_location (),
+ 				    "%<attr%> string literal must not contain "
+ 				    "a comma");
+ 			  parser->error = true;
+ 			  return error_mark_node;
+ 			}
+ 		      str2 += TREE_STRING_POINTER (value);
+ 		      str2 += '\0';
+ 		    }
+ 		  else
+ 		    {
+ 		      if (*TREE_STRING_POINTER (value) == '\0')
+ 			{
+ 			  c_parser_error (parser, "non-empty string literal expected");
+ 			  return error_mark_node;
+ 			}
+ 		      char c = omp_get_fr_id_from_name (TREE_STRING_POINTER (value));
+ 		      if (c == GOMP_INTEROP_IFR_UNKNOWN)
+ 			warning_at (cval.get_location (), OPT_Wopenmp,
+ 				    "unknown foreign runtime identifier %qs",
+ 				    TREE_STRING_POINTER (value));
+ 		     str += c;
+ 		     has_fr = true;
+ 		    }
+ 		}
+ 	      else if (!is_fr)
+ 		{
+ 		  c_parser_error (parser, "expected string literal");
+ 		  return error_mark_node;
+ 		}
+ 	      else
+ 		{
+ 		  c_expr cval = c_parser_expr_no_commas (parser, NULL);
+ 		  tree value = c_fully_fold (cval.value, false, NULL);
+ 		  if (INTEGRAL_TYPE_P (TREE_TYPE (value))
+ 		      && TREE_CODE (value) != INTEGER_CST)
+ 		    value = convert_lvalue_to_rvalue (cval.get_start (), cval,
+ 						      false, true).value;
+ 
+ 		  if (TREE_CODE (value) != INTEGER_CST
+ 		      || !tree_fits_shwi_p (value))
+ 		    {
+ 		      c_parser_error (parser, "expected string literal or "
+ 					      "constant integer expression");
+ 		      return error_mark_node;
+ 		    }
+ 		  HOST_WIDE_INT n = tree_to_shwi (value);
+ 		  if (n < 1 || n > GOMP_INTEROP_IFR_LAST)
+ 		    {
+ 		      warning_at (cval.get_location (), OPT_Wopenmp,
+ 				  "unknown foreign runtime identifier %qwd", n);
+ 		      n = GOMP_INTEROP_IFR_UNKNOWN;
+ 		    }
+ 		  str += (char) n;
+ 		  has_fr = true;
+ 		}
+ 	      if (!is_fr
+ 		  && c_parser_next_token_is (parser, CPP_COMMA))
+ 		{
+ 		  c_parser_consume_token (parser);
+ 		  continue;
+ 		}
+ 	      if (!c_parser_require (parser, CPP_CLOSE_PAREN,
+ 				     is_fr ? G_("expected %<)%>")
+ 					   : G_("expected %<)%> or %<,%>")))
+ 		return error_mark_node;
+ 	      break;
+ 	    }
+ 	  if (c_parser_next_token_is (parser, CPP_COMMA))
+ 	    {
+ 	      c_parser_consume_token (parser);
+ 	      continue;
+ 	    }
+ 	  if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
+ 	    break;
+ 	  c_parser_error (parser, "expected %<,%> or %<}%>");
+ 	  return error_mark_node;
+ 	}
+       str += (char) GOMP_INTEROP_IFR_SEPARATOR;
+       str += str2;
+       str += '\0';
+       c_parser_consume_token (parser);
+       if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
+ 	break;
+       if (!c_parser_require (parser, CPP_COMMA, "expected %<)%> or %<,%>"))
+ 	return error_mark_node;
+     }
+   c_parser_consume_token (parser);
+   str += '\0';
+   tree res = build_string (str.length (), str.data ());
+   TREE_TYPE (res) = build_array_type_nelts (unsigned_char_type_node,
+ 						  str.length ());
+   return res;
+ }
+ 
+ /* OpenMP 5.1
+      modifiers of the 'init' clause, used by the 'init' and the
+      'append_args' clauses.
+ 
+    Modifiers:
+      target
+      targetsync
+      prefer_type (preference-specification)
+ 
+   Returns 'false' if an error has been issued.  */
+ 
+ static bool
+ c_parser_omp_clause_init_modifiers (c_parser *parser, bool *target,
+ 				    bool *targetsync, tree *prefer_type_tree)
+ {
+   *target = false;
+   *targetsync = false;
+   *prefer_type_tree = NULL_TREE;
+ 
+   do
+     {
+       c_token *tok = c_parser_peek_token (parser);
+       if (tok->type != CPP_NAME)
+ 	goto fail;
+       const char *p = IDENTIFIER_POINTER (tok->value);
+       if (strcmp ("targetsync", p) == 0)
+ 	{
+ 	  if (*targetsync)
+ 	    error_at (tok->location, "duplicate %<targetsync%> modifier");
+ 	  *targetsync = true;
+ 	  c_parser_consume_token (parser);
+ 	}
+       else if (strcmp ("target", p) == 0)
+ 	{
+ 	  if (*target)
+ 	    error_at (tok->location, "duplicate %<target%> modifier");
+ 	  *target = true;
+ 	  c_parser_consume_token (parser);
+ 	}
+       else if (strcmp ("prefer_type", p) == 0)
+ 	{
+ 	  if (*prefer_type_tree != NULL_TREE)
+ 	    error_at (tok->location, "duplicate %<prefer_type%> modifier");
+ 	  c_parser_consume_token (parser);
+ 	  *prefer_type_tree = c_parser_omp_modifier_prefer_type (parser);
+ 	  if (*prefer_type_tree == error_mark_node)
+ 	    return false;
+ 	}
+       else
+ 	goto fail;
+       tok = c_parser_peek_token (parser);
+       if (tok->type == CPP_COMMA)
+ 	{
+ 	  c_parser_consume_token (parser);
+ 	  continue;
+ 	}
+       /* Unknown token - either done or an error; handle it in the caller.  */
+       return true;
+     }
+   while (true);
+ 
+ fail:
+   c_parser_error (parser,
+ 		  "expected %<prefer_type%>, %<target%>, or %<targetsync%>");
+   return false;
+ }
+ 
+ /* OpenMP 5.1:
+    init ( [init-modifier-list : ] variable-list )
+ 
+    Modifiers:
+      target
+      targetsync
+      prefer_type (preference-specification) */
+ 
+ static tree
+ c_parser_omp_clause_init (c_parser *parser, tree list)
+ {
+   location_t loc = c_parser_peek_token (parser)->location;
+ 
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return list;
+ 
+   bool target = false;
+   bool targetsync = false;
+   tree prefer_type_tree = NULL_TREE;
+ 
+   if (!c_parser_omp_clause_init_modifiers (parser, &target, &targetsync,
+ 					   &prefer_type_tree)
+       || !c_parser_require (parser, CPP_COLON, "expected %<:%>"))
+     {
+       if (prefer_type_tree != error_mark_node)
+ 	parens.skip_until_found_close (parser);
+       return list;
+     }
+ 
+   if (!target && !targetsync)
+     error_at (loc,
+ 	      "missing required %<target%> and/or %<targetsync%> modifier");
+ 
+   tree nl = c_parser_omp_variable_list (parser, loc, OMP_CLAUSE_INIT, list,
+ 					false);
+   parens.skip_until_found_close (parser);
+ 
+   for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
+     {
+       TREE_ADDRESSABLE (OMP_CLAUSE_DECL (c)) = 1;
+       if (target)
+ 	OMP_CLAUSE_INIT_TARGET (c) = 1;
+       if (targetsync)
+ 	OMP_CLAUSE_INIT_TARGETSYNC (c) = 1;
+       if (prefer_type_tree)
+ 	OMP_CLAUSE_INIT_PREFER_TYPE (c) = prefer_type_tree;
+     }
+   return nl;
+ }
+ 
+ /* OpenMP 5.0:
+    use ( variable-list ) */
+ 
+ static tree
+ c_parser_omp_clause_use (c_parser *parser, tree list)
+ {
+   return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_USE, list);
+ }
+ 
+ /* OpenMP 6.0:
+    interop ( variable-list ) */
+ 
+ static tree
+ c_parser_omp_clause_interop (c_parser *parser, tree list)
+ {
+   check_no_duplicate_clause (list, OMP_CLAUSE_INTEROP, "interop");
+   tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_INTEROP, list);
+   for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
+     {
+       TREE_USED (OMP_CLAUSE_DECL (c)) = 1;
+       DECL_READ_P (OMP_CLAUSE_DECL (c)) = 1;
+     }
+   return nl;
+ }
+ 
  /* Parse all OpenACC clauses.  The set clauses allowed by the directive
     is a bitmask in MASK.  Return the list of clauses found.  */
  
*************** c_parser_omp_all_clauses (c_parser *pars
*** 19719,19726 ****
  	  clauses = c_parser_omp_clause_allocate (parser, clauses);
  	  c_name = "allocate";
  	  break;
! 	case PRAGMA_OMP_CLAUSE_LINEAR: 
! 	  clauses = c_parser_omp_clause_linear (parser, clauses); 
  	  c_name = "linear";
  	  break;
  	case PRAGMA_OMP_CLAUSE_AFFINITY:
--- 21397,21404 ----
  	  clauses = c_parser_omp_clause_allocate (parser, clauses);
  	  c_name = "allocate";
  	  break;
! 	case PRAGMA_OMP_CLAUSE_LINEAR:
! 	  clauses = c_parser_omp_clause_linear (parser, clauses);
  	  c_name = "linear";
  	  break;
  	case PRAGMA_OMP_CLAUSE_AFFINITY:
*************** c_parser_omp_all_clauses (c_parser *pars
*** 19735,19740 ****
--- 21413,21434 ----
  	  clauses = c_parser_omp_clause_doacross (parser, clauses);
  	  c_name = "doacross";
  	  break;
+ 	case PRAGMA_OMP_CLAUSE_DESTROY:
+ 	  clauses = c_parser_omp_clause_destroy (parser, clauses);
+ 	  c_name = "destroy";
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_INIT:
+ 	  clauses = c_parser_omp_clause_init (parser, clauses);
+ 	  c_name = "init";
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_USE:
+ 	  clauses = c_parser_omp_clause_use (parser, clauses);
+ 	  c_name = "use";
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_INTEROP:
+ 	  clauses = c_parser_omp_clause_interop (parser, clauses);
+ 	  c_name = "interop";
+ 	  break;
  	case PRAGMA_OMP_CLAUSE_MAP:
  	  clauses = c_parser_omp_clause_map (parser, clauses);
  	  c_name = "map";
*************** c_parser_omp_all_clauses (c_parser *pars
*** 19801,19806 ****
--- 21495,21516 ----
  					    clauses);
  	  c_name = "enter";
  	  break;
+ 	case PRAGMA_OMP_CLAUSE_FULL:
+ 	  c_name = "full";
+ 	  clauses = c_parser_omp_clause_full (parser, clauses);
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_PARTIAL:
+ 	  c_name = "partial";
+ 	  clauses = c_parser_omp_clause_partial (parser, clauses);
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_NOVARIANTS:
+ 	  c_name = "novariants";
+ 	  clauses = c_parser_omp_clause_novariants (parser, clauses);
+ 	  break;
+ 	case PRAGMA_OMP_CLAUSE_NOCONTEXT:
+ 	  c_name = "nocontext";
+ 	  clauses = c_parser_omp_clause_nocontext (parser, clauses);
+ 	  break;
  	default:
  	  c_parser_error (parser, "expected an OpenMP clause");
  	  goto saw_error;
*************** c_parser_omp_all_clauses (c_parser *pars
*** 19825,19830 ****
--- 21535,21542 ----
      {
        if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_UNIFORM)) != 0)
  	return c_finish_omp_clauses (clauses, C_ORT_OMP_DECLARE_SIMD);
+       if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_USE)) != 0)
+ 	return c_finish_omp_clauses (clauses, C_ORT_OMP_INTEROP);
        return c_finish_omp_clauses (clauses, C_ORT_OMP);
      }
  
*************** c_parser_oacc_routine (c_parser *parser,
*** 20469,20480 ****
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
  	  c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 					 NULL, NULL, false, NULL, &data);
  	  restore_extension_diagnostics (ext);
  	}
        else
  	c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 				       NULL, NULL, false, NULL, &data);
      }
  }
  
--- 22181,22192 ----
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
  	  c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 					 false, NULL, NULL, false, NULL, &data);
  	  restore_extension_diagnostics (ext);
  	}
        else
  	c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 				       false, NULL, NULL, false, NULL, &data);
      }
  }
  
*************** c_parser_omp_allocate (c_parser *parser)
*** 20766,20772 ****
  		    "%<allocate%> directive", var);
  	  continue;
  	}
!       if (!c_check_in_current_scope (var))
  	{
  	  error_at (OMP_CLAUSE_LOCATION (nl),
  		    "%<allocate%> directive must be in the same scope as %qD",
--- 22478,22484 ----
  		    "%<allocate%> directive", var);
  	  continue;
  	}
!       if (!parser->in_omp_decl_attribute && !c_check_in_current_scope (var))
  	{
  	  error_at (OMP_CLAUSE_LOCATION (nl),
  		    "%<allocate%> directive must be in the same scope as %qD",
*************** c_parser_omp_allocate (c_parser *parser)
*** 20784,20803 ****
        if (TREE_STATIC (var))
  	{
  	  if (allocator == NULL_TREE && allocator_loc == UNKNOWN_LOCATION)
! 	    error_at (loc, "%<allocator%> clause required for "
! 			   "static variable %qD", var);
  	  else if (allocator
  		   && (wi::to_widest (allocator) < 1
! 		       || wi::to_widest (allocator) > 8))
! 	    /* 8 = largest predefined memory allocator. */
! 	    error_at (allocator_loc,
! 		      "%<allocator%> clause requires a predefined allocator as "
! 		      "%qD is static", var);
! 	  else
! 	    sorry_at (OMP_CLAUSE_LOCATION (nl),
! 		      "%<#pragma omp allocate%> for static variables like "
! 		      "%qD not yet supported", var);
! 	  continue;
  	}
        if (allocator)
  	{
--- 22496,22517 ----
        if (TREE_STATIC (var))
  	{
  	  if (allocator == NULL_TREE && allocator_loc == UNKNOWN_LOCATION)
! 	    {
! 	      error_at (loc,
! 			"%<allocator%> clause required for "
! 			"static variable %qD", var);
! 	      continue;
! 	    }
  	  else if (allocator
  		   && (wi::to_widest (allocator) < 1
! 		       || wi::to_widest (allocator) > GOMP_OMP_PREDEF_ALLOC_MAX)
! 		   && (wi::to_widest (allocator) < GOMP_OMPX_PREDEF_ALLOC_MIN
! 		       || wi::to_widest (allocator) > GOMP_OMPX_PREDEF_ALLOC_MAX))
! 	    {
! 	      error_at (allocator_loc,
! 			"%<allocator%> clause requires a predefined allocator as "
! 			"%qD is static", var);
! 	    }
  	}
        if (allocator)
  	{
*************** c_parser_omp_atomic (location_t loc, c_p
*** 21194,21202 ****
  	goto saw_error;
        if (code == NOP_EXPR)
  	{
! 	  lhs = c_parser_expression (parser).value;
! 	  lhs = c_fully_fold (lhs, false, NULL);
! 	  if (lhs == error_mark_node)
  	    goto saw_error;
  	}
        else
--- 22908,22923 ----
  	goto saw_error;
        if (code == NOP_EXPR)
  	{
! 	  eloc = c_parser_peek_token (parser)->location;
! 	  expr = c_parser_expression (parser);
! 	  expr = default_function_array_read_conversion (eloc, expr);
! 	  /* atomic write is represented by OMP_ATOMIC with NOP_EXPR
! 	     opcode.  */
! 	  code = OMP_ATOMIC;
! 	  lhs = v;
! 	  v = NULL_TREE;
! 	  rhs = c_fully_fold (expr.value, false, NULL);
! 	  if (rhs == error_mark_node)
  	    goto saw_error;
  	}
        else
*************** c_parser_omp_atomic (location_t loc, c_p
*** 21209,21223 ****
  	  if (non_lvalue_p)
  	    lhs = non_lvalue (lhs);
  	}
-       if (code == NOP_EXPR)
- 	{
- 	  /* atomic write is represented by OMP_ATOMIC with NOP_EXPR
- 	     opcode.  */
- 	  code = OMP_ATOMIC;
- 	  rhs = lhs;
- 	  lhs = v;
- 	  v = NULL_TREE;
- 	}
        goto done;
      case OMP_ATOMIC_CAPTURE_NEW:
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
--- 22930,22935 ----
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 22217,22222 ****
--- 23929,23984 ----
  }
  
  
+ /* Check if the next tokens can start a canonical loop.  Return true if yes,
+    otherwise diagnose an error if ERROR_P is true, and return false.  */
+ static bool
+ c_parser_omp_next_tokens_can_be_canon_loop (c_parser *parser,
+ 					    enum tree_code code,
+ 					    bool error_p)
+ {
+   if (code == OACC_LOOP)
+     {
+       if (c_parser_next_token_is_keyword (parser, RID_FOR))
+ 	return true;
+       if (error_p)
+ 	c_parser_error (parser, "for statement expected");
+     }
+   else
+     {
+       if (c_parser_next_token_is_keyword (parser, RID_FOR))
+ 	return true;
+ 
+       if (c_parser_next_token_is (parser, CPP_PRAGMA))
+ 	switch (c_parser_peek_token (parser)->pragma_kind)
+ 	  {
+ 	  case PRAGMA_OMP_UNROLL:
+ 	  case PRAGMA_OMP_TILE:
+ 	    return true;
+ 	  default:
+ 	    break;
+ 	  }
+ 
+       /* Skip standard attributes on next for in case they are
+ 	 [[omp::directive (unroll partial (4))]] or
+ 	 [[omp::directive (tile sizes (1, 2, 3))]] etc.  */
+       size_t n = c_parser_skip_std_attribute_spec_seq (parser, 1);
+       c_token *token = c_parser_peek_nth_token_raw (parser, n);
+       /* TOKEN is a raw token that hasn't been converted to a keyword yet,
+ 	 we have to do the lookup explicitly.  */
+       if (token->type == CPP_NAME
+ 	  && C_IS_RESERVED_WORD (token->value)
+ 	  && C_RID_CODE (token->value) == RID_FOR)
+ 	return true;
+       if (error_p)
+ 	c_parser_error (parser,	"loop nest expected");
+     }
+ 
+   return false;
+ }
+ 
+ static tree c_parser_omp_tile (location_t, c_parser *, bool *);
+ static tree c_parser_omp_unroll (location_t, c_parser *, bool *);
+ 
  /* This function parses a single level of a loop nest, invoking itself
     recursively if necessary.
  
*************** c_parser_omp_loop_nest (c_parser *parser
*** 22252,22259 ****
    gcc_assert (omp_for_parse_state);
    int depth = omp_for_parse_state->depth;
  
!   /* We have already matched the FOR token but not consumed it yet.  */
    loc = c_parser_peek_token (parser)->location;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
    c_parser_consume_token (parser);
  
--- 24014,24120 ----
    gcc_assert (omp_for_parse_state);
    int depth = omp_for_parse_state->depth;
  
!   /* Arrange for C23 standard attribute syntax to be parsed as regular
!      pragmas.  */
!   if (c_parser_nth_token_starts_std_attributes (parser, 1))
!     {
!       tree std_attrs = c_parser_std_attribute_specifier_sequence (parser);
!       c_parser_handle_statement_omp_attributes (parser, std_attrs, NULL);
!       if (std_attrs)
! 	error_at (c_parser_peek_token (parser)->location,
! 		  "attributes other than OpenMP directives "
! 		  "are not allowed on %<for%> in loop nest");
!     }
! 
    loc = c_parser_peek_token (parser)->location;
+ 
+   /* Handle loop transformations first.  */
+   if (c_parser_next_token_is (parser, CPP_PRAGMA))
+     {
+       tree transform = NULL_TREE, sizes, body = NULL_TREE;
+       int count = 0;
+       switch (c_parser_peek_token (parser)->pragma_kind)
+ 	{
+ 	case PRAGMA_OMP_UNROLL:
+ 	  c_parser_consume_pragma (parser);
+ 	  body = push_stmt_list ();
+ 	  transform = c_parser_omp_unroll (loc, parser, if_p);
+ 	  body = pop_stmt_list (body);
+ 	  if (transform == NULL_TREE || transform == error_mark_node)
+ 	    {
+ 	      transform = error_mark_node;
+ 	      break;
+ 	    }
+ 	  gcc_assert (TREE_CODE (transform) == OMP_UNROLL);
+ 	  if (omp_find_clause (OMP_FOR_CLAUSES (transform),
+ 			       OMP_CLAUSE_PARTIAL))
+ 	    {
+ 	      if (omp_for_parse_state->count - depth > 1)
+ 		{
+ 		  error_at (loc, "%<unroll%> construct with %<partial%> "
+ 				 "clause generates just one loop with "
+ 				 "canonical form but %d loops are needed",
+ 			    omp_for_parse_state->count - depth);
+ 		  transform = error_mark_node;
+ 		}
+ 	      else
+ 		count = 1;
+ 	    }
+ 	  else
+ 	    {
+ 	      error_at (loc, "generated loop of %<unroll%> construct "
+ 			     "without %<partial%> clause does not have "
+ 			     "canonical form");
+ 	      transform = error_mark_node;
+ 	    }
+ 	  break;
+ 	case PRAGMA_OMP_TILE:
+ 	  c_parser_consume_pragma (parser);
+ 	  body = push_stmt_list ();
+ 	  transform = c_parser_omp_tile (loc, parser, if_p);
+ 	  body = pop_stmt_list (body);
+ 	  if (transform == NULL_TREE || transform == error_mark_node)
+ 	    {
+ 	      transform = error_mark_node;
+ 	      break;
+ 	    }
+ 	  gcc_assert (TREE_CODE (transform) == OMP_TILE);
+ 	  sizes = omp_find_clause (OMP_FOR_CLAUSES (transform),
+ 				   OMP_CLAUSE_SIZES);
+ 	  gcc_assert (sizes);
+ 	  count = list_length (OMP_CLAUSE_SIZES_LIST (sizes));
+ 	  if (depth + count < omp_for_parse_state->count)
+ 	    {
+ 	      error_at (loc, "%<tile%> construct generates %d loops "
+ 			     "with canonical form but %d loops are needed",
+ 			count, omp_for_parse_state->count - depth);
+ 	      transform = error_mark_node;
+ 	    }
+ 	  break;
+ 	default:
+ 	  c_parser_pragma (parser, pragma_stmt, NULL, void_list_node);
+ 	  break;
+ 	}
+       if (transform == NULL_TREE)
+ 	error_at (loc, "expected %<for%> loop or OpenMP loop "
+ 		       "transformation construct");
+       if (transform == NULL_TREE || transform == error_mark_node)
+ 	{
+ 	  omp_for_parse_state->fail = true;
+ 	  return NULL_TREE;
+ 	}
+       for (count = omp_for_parse_state->count; depth < count; ++depth)
+ 	{
+ 	  TREE_VEC_ELT (omp_for_parse_state->declv, depth) = NULL_TREE;
+ 	  TREE_VEC_ELT (omp_for_parse_state->initv, depth) = NULL_TREE;
+ 	  TREE_VEC_ELT (omp_for_parse_state->condv, depth) = NULL_TREE;
+ 	  TREE_VEC_ELT (omp_for_parse_state->incrv, depth) = NULL_TREE;
+ 	}
+       omp_for_parse_state->want_nested_loop = false;
+       return body;
+     }
+ 
+   /* We have already matched the FOR token but not consumed it yet.  */
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
    c_parser_consume_token (parser);
  
*************** c_parser_omp_loop_nest (c_parser *parser
*** 22281,22287 ****
        /* This is a declaration, which must be added to the pre_body code.  */
        tree this_pre_body = push_stmt_list ();
        c_in_omp_for = true;
!       c_parser_declaration_or_fndef (parser, true, true, true, true, true);
        c_in_omp_for = false;
        this_pre_body = pop_stmt_list (this_pre_body);
        append_to_statement_list_force (this_pre_body,
--- 24142,24149 ----
        /* This is a declaration, which must be added to the pre_body code.  */
        tree this_pre_body = push_stmt_list ();
        c_in_omp_for = true;
!       c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 				     false);
        c_in_omp_for = false;
        this_pre_body = pop_stmt_list (this_pre_body);
        append_to_statement_list_force (this_pre_body,
*************** c_parser_omp_loop_nest (c_parser *parser
*** 22384,22390 ****
  parse_next:
    moreloops = depth < omp_for_parse_state->count - 1;
    omp_for_parse_state->want_nested_loop = moreloops;
!   if (moreloops && c_parser_next_token_is_keyword (parser, RID_FOR))
      {
        omp_for_parse_state->depth++;
        body = c_parser_omp_loop_nest (parser, if_p);
--- 24246,24255 ----
  parse_next:
    moreloops = depth < omp_for_parse_state->count - 1;
    omp_for_parse_state->want_nested_loop = moreloops;
!   if (moreloops
!       && c_parser_omp_next_tokens_can_be_canon_loop (parser,
! 						     omp_for_parse_state->code,
! 						     false))
      {
        omp_for_parse_state->depth++;
        body = c_parser_omp_loop_nest (parser, if_p);
*************** parse_next:
*** 22447,22453 ****
       OMP_FOR.  That keeps the gimplifier happy later on, and meanwhile
       we have already resolved all references to the iteration variable
       in its true scope.  */
!   add_stmt (body);
    body = c_end_compound_stmt (loc, loop_scope, true);
    if (decl && TREE_CODE (body) == BIND_EXPR)
      {
--- 24312,24319 ----
       OMP_FOR.  That keeps the gimplifier happy later on, and meanwhile
       we have already resolved all references to the iteration variable
       in its true scope.  */
!   if (body)
!     add_stmt (body);
    body = c_end_compound_stmt (loc, loop_scope, true);
    if (decl && TREE_CODE (body) == BIND_EXPR)
      {
*************** c_parser_omp_for_loop (location_t loc, c
*** 22496,22502 ****
    tree ret = NULL_TREE;
    tree ordered_cl = NULL_TREE;
    int i, collapse = 1, ordered = 0, count;
!   bool tiling = false;
    bool inscan = false;
    struct omp_for_parse_data data;
    struct omp_for_parse_data *save_data = parser->omp_for_parse_state;
--- 24362,24368 ----
    tree ret = NULL_TREE;
    tree ordered_cl = NULL_TREE;
    int i, collapse = 1, ordered = 0, count;
!   bool oacc_tiling = false;
    bool inscan = false;
    struct omp_for_parse_data data;
    struct omp_for_parse_data *save_data = parser->omp_for_parse_state;
*************** c_parser_omp_for_loop (location_t loc, c
*** 22506,22514 ****
        collapse = tree_to_shwi (OMP_CLAUSE_COLLAPSE_EXPR (cl));
      else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_TILE)
        {
! 	tiling = true;
  	collapse = list_length (OMP_CLAUSE_TILE_LIST (cl));
        }
      else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_ORDERED
  	     && OMP_CLAUSE_ORDERED_EXPR (cl))
        {
--- 24372,24382 ----
        collapse = tree_to_shwi (OMP_CLAUSE_COLLAPSE_EXPR (cl));
      else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_TILE)
        {
! 	oacc_tiling = true;
  	collapse = list_length (OMP_CLAUSE_TILE_LIST (cl));
        }
+     else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_SIZES)
+       collapse = list_length (OMP_CLAUSE_SIZES_LIST (cl));
      else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_ORDERED
  	     && OMP_CLAUSE_ORDERED_EXPR (cl))
        {
*************** c_parser_omp_for_loop (location_t loc, c
*** 22529,22549 ****
        ordered = collapse;
      }
  
!   gcc_assert (tiling || (collapse >= 1 && ordered >= 0));
    count = ordered ? ordered : collapse;
  
!   if (!c_parser_next_token_is_keyword (parser, RID_FOR))
!     {
!       c_parser_error (parser, "for statement expected");
!       return NULL;
!     }
  
    /* Initialize parse state for recursive descent.  */
    data.declv = make_tree_vec (count);
    data.initv = make_tree_vec (count);
    data.condv = make_tree_vec (count);
    data.incrv = make_tree_vec (count);
!   data.pre_body = NULL_TREE;;
    data.bindings = NULL_TREE;
    data.for_loc = c_parser_peek_token (parser)->location;
    data.count = count;
--- 24397,24414 ----
        ordered = collapse;
      }
  
!   gcc_assert (oacc_tiling || (collapse >= 1 && ordered >= 0));
    count = ordered ? ordered : collapse;
  
!   if (!c_parser_omp_next_tokens_can_be_canon_loop (parser, code, true))
!     return NULL;
  
    /* Initialize parse state for recursive descent.  */
    data.declv = make_tree_vec (count);
    data.initv = make_tree_vec (count);
    data.condv = make_tree_vec (count);
    data.incrv = make_tree_vec (count);
!   data.pre_body = NULL_TREE;
    data.bindings = NULL_TREE;
    data.for_loc = c_parser_peek_token (parser)->location;
    data.count = count;
*************** c_parser_omp_for_loop (location_t loc, c
*** 22587,22592 ****
--- 24452,24458 ----
        /* Check for errors involving lb/ub/incr expressions referencing
  	 variables declared in intervening code.  */
        if (data.saw_intervening_code
+ 	  && stmt
  	  && !c_omp_check_loop_binding_exprs (stmt, NULL))
  	stmt = NULL_TREE;
  
*************** c_parser_omp_for_loop (location_t loc, c
*** 22597,22602 ****
--- 24463,24470 ----
  	  for (i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); i++)
  	    {
  	      tree init = TREE_VEC_ELT (OMP_FOR_INIT (stmt), i);
+ 	      if (init == NULL_TREE)
+ 		break;
  	      gcc_assert (TREE_CODE (init) == MODIFY_EXPR);
  	      tree decl = TREE_OPERAND (init, 0);
  	      tree cond = TREE_VEC_ELT (OMP_FOR_COND (stmt), i);
*************** c_parser_omp_masked (location_t loc, c_p
*** 23000,23005 ****
--- 24868,24899 ----
  			      clauses);
  }
  
+ /* OpenMP 5.1:
+    # pragma omp interop clauses[opt] new-line */
+ 
+ #define OMP_INTEROP_CLAUSE_MASK					\
+ 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEPEND)	\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DESTROY)	\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE)	\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_INIT)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOWAIT)	\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_USE))
+ 
+ static void
+ c_parser_omp_interop (c_parser *parser)
+ {
+   location_t loc = c_parser_peek_token (parser)->location;
+   c_parser_consume_pragma (parser);
+   tree clauses = c_parser_omp_all_clauses (parser,
+ 					   OMP_INTEROP_CLAUSE_MASK,
+ 					   "#pragma omp interop");
+   tree stmt = make_node (OMP_INTEROP);
+   TREE_TYPE (stmt) = void_type_node;
+   OMP_INTEROP_CLAUSES (stmt) = clauses;
+   SET_EXPR_LOCATION (stmt, loc);
+   add_stmt (stmt);
+ }
+ 
  /* OpenMP 2.5:
     # pragma omp ordered new-line
       structured-block
*************** c_parser_omp_scope (location_t loc, c_pa
*** 23456,23461 ****
--- 25350,25499 ----
    return add_stmt (stmt);
  }
  
+ /* Parse a function dispatch structured block:
+ 
+     lvalue-expression = target-call ( [expression-list] );
+     or
+     target-call ( [expression-list] );
+ 
+    Adapted from c_parser_expr_no_commas and c_parser_postfix_expression
+    (CPP_NAME/C_ID_ID) for the function name.
+ */
+ static tree
+ c_parser_omp_dispatch_body (c_parser *parser)
+ {
+   struct c_expr lhs, rhs, ret;
+   location_t expr_loc = c_parser_peek_token (parser)->location;
+   source_range tok_range = c_parser_peek_token (parser)->get_range ();
+ 
+   lhs = c_parser_conditional_expression (parser, NULL, NULL);
+   if (TREE_CODE (lhs.value) == CALL_EXPR)
+     return lhs.value;
+ 
+   location_t op_location = c_parser_peek_token (parser)->location;
+   if (!c_parser_require (parser, CPP_EQ, "expected %<=%>"))
+     return error_mark_node;
+ 
+   /* Parse function name.  */
+   if (!c_parser_next_token_is (parser, CPP_NAME))
+     {
+       c_parser_error (parser, "expected a function name");
+       return error_mark_node;
+     }
+   expr_loc = c_parser_peek_token (parser)->location;
+   tree id = c_parser_peek_token (parser)->value;
+   c_parser_consume_token (parser);
+   if (!c_parser_next_token_is (parser, CPP_OPEN_PAREN))
+     {
+       c_parser_error (parser, "expected a function name");
+       return error_mark_node;
+     }
+ 
+   rhs.value = build_external_ref (expr_loc, id, true, &rhs.original_type);
+   set_c_expr_source_range (&rhs, tok_range);
+ 
+   /* Parse argument list.  */
+   rhs = c_parser_postfix_expression_after_primary (
+     parser, EXPR_LOC_OR_LOC (rhs.value, expr_loc), rhs);
+   if (TREE_CODE (rhs.value) != CALL_EXPR)
+     {
+       error_at (EXPR_LOC_OR_LOC (rhs.value, expr_loc),
+ 		"expected target-function call");
+       return error_mark_node;
+     }
+ 
+   /* Build assignment. */
+   rhs = convert_lvalue_to_rvalue (expr_loc, rhs, true, true);
+   ret.value
+     = build_modify_expr (op_location, lhs.value, lhs.original_type, NOP_EXPR,
+ 			 expr_loc, rhs.value, rhs.original_type);
+   ret.m_decimal = 0;
+   set_c_expr_source_range (&ret, lhs.get_start (), rhs.get_finish ());
+   ret.original_code = MODIFY_EXPR;
+   ret.original_type = NULL;
+   return ret.value;
+ }
+ 
+ /* OpenMP 5.1:
+    # pragma omp dispatch dispatch-clause[optseq] new-line
+      expression-stmt
+ 
+    LOC is the location of the #pragma.
+ */
+ 
+ #define OMP_DISPATCH_CLAUSE_MASK                                               \
+   ((OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE)                             \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEPEND)                           \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOVARIANTS)                       \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOCONTEXT)                        \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR)                  \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_INTEROP)                          \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR)                    \
+    | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOWAIT))
+ 
+ static tree
+ c_parser_omp_dispatch (location_t loc, c_parser *parser)
+ {
+   tree stmt = make_node (OMP_DISPATCH);
+   SET_EXPR_LOCATION (stmt, loc);
+   TREE_TYPE (stmt) = void_type_node;
+ 
+   OMP_DISPATCH_CLAUSES (stmt)
+     = c_parser_omp_all_clauses (parser, OMP_DISPATCH_CLAUSE_MASK,
+ 				"#pragma omp dispatch");
+ 
+   // Extract depend clauses and create taskwait
+   tree depend_clauses = NULL_TREE;
+   tree *depend_clauses_ptr = &depend_clauses;
+   for (tree c = OMP_DISPATCH_CLAUSES (stmt); c; c = OMP_CLAUSE_CHAIN (c))
+     {
+       if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEPEND)
+ 	{
+ 	  *depend_clauses_ptr = c;
+ 	  depend_clauses_ptr = &OMP_CLAUSE_CHAIN (c);
+ 	}
+     }
+   if (depend_clauses != NULL_TREE)
+     {
+       tree stmt = make_node (OMP_TASK);
+       TREE_TYPE (stmt) = void_node;
+       OMP_TASK_CLAUSES (stmt) = depend_clauses;
+       OMP_TASK_BODY (stmt) = NULL_TREE;
+       SET_EXPR_LOCATION (stmt, loc);
+       add_stmt (stmt);
+     }
+ 
+   // Parse body as expression statement
+   loc = c_parser_peek_token (parser)->location;
+   tree dispatch_body = c_parser_omp_dispatch_body (parser);
+   if (dispatch_body == error_mark_node)
+     {
+       inform (loc, "%<#pragma omp dispatch%> must be followed by a function "
+ 		   "call with optional assignment");
+       c_parser_skip_to_end_of_block_or_statement (parser);
+       return NULL_TREE;
+     }
+ 
+   // Walk the tree to find the dispatch function call and wrap it into an IFN
+   gcc_assert (TREE_CODE (dispatch_body) == CALL_EXPR
+ 	      || TREE_CODE (dispatch_body) == MODIFY_EXPR);
+   tree *dispatch_call = TREE_CODE (dispatch_body) == MODIFY_EXPR
+ 			  ? &TREE_OPERAND (dispatch_body, 1)
+ 			  : &dispatch_body;
+   while (TREE_CODE (*dispatch_call) == FLOAT_EXPR
+ 	 || TREE_CODE (*dispatch_call) == CONVERT_EXPR
+ 	 || TREE_CODE (*dispatch_call) == NOP_EXPR)
+     dispatch_call = &TREE_OPERAND (*dispatch_call, 0);
+   *dispatch_call = build_call_expr_internal_loc (
+     loc, IFN_GOMP_DISPATCH,
+     TREE_TYPE (TREE_TYPE (CALL_EXPR_FN (*dispatch_call))), 1, *dispatch_call);
+ 
+   c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
+   OMP_DISPATCH_BODY (stmt) = dispatch_body;
+ 
+   return add_stmt (stmt);
+ }
+ 
  /* OpenMP 3.0:
     # pragma omp task task-clause[optseq] new-line
  
*************** check_clauses:
*** 24436,24441 ****
--- 26474,26483 ----
  
     OpenMP 5.0:
     # pragma omp declare variant (identifier) match(context-selector) new-line
+ 
+    OpenMP 5.1
+    # pragma omp declare variant (identifier) match(context-selector) \
+       adjust_args(adjust-op:argument-list) append_args(interop-list) new-line
     */
  
  #define OMP_DECLARE_SIMD_CLAUSE_MASK				\
*************** c_parser_omp_declare_simd (c_parser *par
*** 24517,24528 ****
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
  	  c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 					 NULL, &clauses);
  	  restore_extension_diagnostics (ext);
  	}
        else
  	c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 				       NULL, &clauses);
        break;
      case pragma_struct:
      case pragma_param:
--- 26559,26570 ----
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
  	  c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 					 false, NULL, &clauses);
  	  restore_extension_diagnostics (ext);
  	}
        else
  	c_parser_declaration_or_fndef (parser, true, true, true, false, true,
! 				       false, NULL, &clauses);
        break;
      case pragma_struct:
      case pragma_param:
*************** c_parser_omp_declare_simd (c_parser *par
*** 24551,24557 ****
  	      || c_parser_nth_token_starts_std_attributes (parser, 1))
  	    {
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, NULL, &clauses,
  					     have_std_attrs, std_attrs);
  	      restore_extension_diagnostics (ext);
  	      break;
--- 26593,26599 ----
  	      || c_parser_nth_token_starts_std_attributes (parser, 1))
  	    {
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, false, NULL, &clauses,
  					     have_std_attrs, std_attrs);
  	      restore_extension_diagnostics (ext);
  	      break;
*************** c_parser_omp_declare_simd (c_parser *par
*** 24561,24567 ****
        else if (c_parser_next_tokens_start_declaration (parser))
  	{
  	  c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 					 NULL, &clauses, have_std_attrs,
  					 std_attrs);
  	  break;
  	}
--- 26603,26609 ----
        else if (c_parser_next_tokens_start_declaration (parser))
  	{
  	  c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 					 false, NULL, &clauses, have_std_attrs,
  					 std_attrs);
  	  break;
  	}
*************** c_parser_omp_context_selector (c_parser
*** 24734,24745 ****
  		{
  		  mark_exp_read (t);
  		  t = c_fully_fold (t, false, NULL);
! 		  /* FIXME: this is bogus, both device_num and
! 		     condition selectors allow arbitrary expressions.  */
! 		  if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
! 		      || !tree_fits_shwi_p (t))
! 		    error_at (token->location, "property must be "
! 			      "constant integer expression");
  		  else
  		    properties = make_trait_property (NULL_TREE, t,
  						      properties);
--- 26776,26784 ----
  		{
  		  mark_exp_read (t);
  		  t = c_fully_fold (t, false, NULL);
! 		  if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
! 		    error_at (token->location,
! 			      "property must be integer expression");
  		  else
  		    properties = make_trait_property (NULL_TREE, t,
  						      properties);
*************** c_finish_omp_declare_variant (c_parser *
*** 24899,24975 ****
  
    parens.require_close (parser);
  
!   if (c_parser_next_token_is (parser, CPP_COMMA)
!       && c_parser_peek_2nd_token (parser)->type == CPP_NAME)
!     c_parser_consume_token (parser);
  
!   const char *clause = "";
!   location_t match_loc = c_parser_peek_token (parser)->location;
!   if (c_parser_next_token_is (parser, CPP_NAME))
!     clause = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
!   if (strcmp (clause, "match"))
      {
!       c_parser_error (parser, "expected %<match%>");
!       goto fail;
!     }
  
!   c_parser_consume_token (parser);
  
!   if (!parens.require_open (parser))
!     goto fail;
  
!   if (parms == NULL_TREE)
!     parms = error_mark_node;
  
!   tree ctx = c_parser_omp_context_selector_specification (parser, parms);
!   if (ctx == error_mark_node)
!     goto fail;
!   ctx = omp_check_context_selector (match_loc, ctx);
!   if (ctx != error_mark_node && variant != error_mark_node)
      {
!       if (TREE_CODE (variant) != FUNCTION_DECL)
  	{
! 	  error_at (token->location, "variant %qD is not a function", variant);
! 	  variant = error_mark_node;
  	}
!       else if (!omp_get_context_selector (ctx, OMP_TRAIT_SET_CONSTRUCT,
! 					  OMP_TRAIT_CONSTRUCT_SIMD)
! 	       && !comptypes (TREE_TYPE (fndecl), TREE_TYPE (variant)))
  	{
! 	  error_at (token->location, "variant %qD and base %qD have "
! 				     "incompatible types", variant, fndecl);
! 	  variant = error_mark_node;
  	}
!       else if (fndecl_built_in_p (variant)
! 	       && (strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 			    "__builtin_", strlen ("__builtin_")) == 0
! 		   || strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 			       "__sync_", strlen ("__sync_")) == 0
! 		   || strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 			       "__atomic_", strlen ("__atomic_")) == 0))
  	{
! 	  error_at (token->location, "variant %qD is a built-in", variant);
  	  variant = error_mark_node;
  	}
!       if (variant != error_mark_node)
  	{
! 	  C_DECL_USED (variant) = 1;
! 	  tree construct
! 	    = omp_get_context_selector_list (ctx, OMP_TRAIT_SET_CONSTRUCT);
! 	  omp_mark_declare_variant (match_loc, variant, construct);
! 	  if (omp_context_selector_matches (ctx))
  	    {
! 	      tree attr
! 		= tree_cons (get_identifier ("omp declare variant base"),
! 			     build_tree_list (variant, ctx),
! 			     DECL_ATTRIBUTES (fndecl));
! 	      DECL_ATTRIBUTES (fndecl) = attr;
  	    }
  	}
      }
  
!   parens.require_close (parser);
!   c_parser_skip_to_pragma_eol (parser);
  }
  
  /* Finalize #pragma omp declare simd or #pragma omp declare variant
--- 26938,27336 ----
  
    parens.require_close (parser);
  
!   tree append_args_tree = NULL_TREE;
!   tree append_args_last;
!   vec<tree> adjust_args_list = vNULL;
!   bool has_match = false, has_adjust_args = false;
!   location_t adjust_args_loc = UNKNOWN_LOCATION;
!   location_t append_args_loc = UNKNOWN_LOCATION;
!   location_t match_loc = UNKNOWN_LOCATION;
!   tree need_device_ptr_list = NULL_TREE;
!   tree ctx = error_mark_node;
  
!   do
      {
!       if (c_parser_next_token_is (parser, CPP_COMMA)
! 	  && c_parser_peek_2nd_token (parser)->type == CPP_NAME)
! 	c_parser_consume_token (parser);
  
!       const char *clause = "";
!       location_t loc = c_parser_peek_token (parser)->location;
!       if (c_parser_next_token_is (parser, CPP_NAME))
! 	clause = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
  
!       enum clause
!       {
! 	match,
! 	adjust_args,
! 	append_args
!       } ccode;
  
!       if (strcmp (clause, "match") == 0)
! 	{
! 	  ccode = match;
! 	  match_loc = loc;
! 	}
!       else if (strcmp (clause, "adjust_args") == 0)
! 	{
! 	  ccode = adjust_args;
! 	  adjust_args_loc = loc;
! 	}
!       else if (strcmp (clause, "append_args") == 0)
! 	{
! 	  ccode = append_args;
! 	  append_args_loc = loc;
! 	}
!       else
! 	{
! 	  c_parser_error (parser, "expected %<match%>, %<adjust_args%> or "
! 				  "%<append_args%> clause");
! 	  goto fail;
! 	}
  
!       c_parser_consume_token (parser);
! 
!       if (!parens.require_open (parser))
! 	goto fail;
! 
!       if (parms == NULL_TREE)
! 	parms = error_mark_node;
! 
!       if (ccode == match)
! 	{
! 	  if (has_match)
! 	    error_at (match_loc, "too many %<match%> clauses");
! 	  has_match = true;
! 	  ctx  = c_parser_omp_context_selector_specification (parser, parms);
! 	  if (ctx == error_mark_node)
! 	    goto fail;
! 	  ctx = omp_check_context_selector (match_loc, ctx,
! 					    OMP_CTX_DECLARE_VARIANT);
! 	  if (ctx != error_mark_node && variant != error_mark_node)
! 	    {
! 	      if (TREE_CODE (variant) != FUNCTION_DECL)
! 		{
! 		  error_at (token->location, "variant %qD is not a function",
! 			    variant);
! 		  variant = error_mark_node;
! 		}
! 	      else if (fndecl_built_in_p (variant)
! 		       && (strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 				    "__builtin_", strlen ("__builtin_"))
! 			     == 0
! 			   || strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 				       "__sync_", strlen ("__sync_"))
! 				== 0
! 			   || strncmp (IDENTIFIER_POINTER (DECL_NAME (variant)),
! 				       "__atomic_", strlen ("__atomic_"))
! 				== 0))
! 		{
! 		  error_at (token->location, "variant %qD is a built-in",
! 			    variant);
! 		  variant = error_mark_node;
! 		}
! 	    }
! 	}
!       else if (ccode == adjust_args)
! 	{
! 	  has_adjust_args = true;
! 	  if (c_parser_next_token_is (parser, CPP_NAME)
! 	      && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
! 	    {
! 	      const char *p
! 		= IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
! 	      if (strcmp (p, "need_device_ptr") == 0
! 		  || strcmp (p, "nothing") == 0)
! 		{
! 		  c_parser_consume_token (parser); // need_device_ptr
! 		  c_parser_consume_token (parser); // :
! 
! 		  loc = c_parser_peek_token (parser)->location;
! 		  tree list
! 		    = c_parser_omp_variable_list (parser, loc, OMP_CLAUSE_ERROR,
! 						  NULL_TREE);
! 
! 		  tree arg;
! 		  if (variant != error_mark_node)
! 		    for (tree c = list; c != NULL_TREE; c = TREE_CHAIN (c))
! 		      {
! 			tree decl = TREE_PURPOSE (c);
! 			location_t arg_loc = EXPR_LOCATION (TREE_VALUE (c));
! 			int idx;
! 			for (arg = parms, idx = 0; arg != NULL;
! 			     arg = TREE_CHAIN (arg), idx++)
! 			  if (arg == decl)
! 			    break;
! 			if (arg == NULL_TREE)
! 			  {
! 			    error_at (arg_loc,
! 				      "%qD is not a function argument",
! 				      decl);
! 			    goto fail;
! 			  }
! 			if (adjust_args_list.contains (arg))
! 			  {
! 			    error_at (arg_loc,
! 				      "%qD is specified more than once",
! 				      decl);
! 			    goto fail;
! 			  }
! 			if (strcmp (p, "need_device_ptr") == 0
! 			    && TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE)
! 			  {
! 			    error_at (loc, "%qD is not of pointer type", decl);
! 			    goto fail;
! 			  }
! 			adjust_args_list.safe_push (arg);
! 			if (strcmp (p, "need_device_ptr") == 0)
! 			  {
! 			    need_device_ptr_list = chainon (
! 			      need_device_ptr_list,
! 			      build_tree_list (
! 				NULL_TREE,
! 				build_int_cst (
! 				  integer_type_node,
! 				  idx))); // Store 0-based argument index,
! 					  // as in gimplify_call_expr
! 			  }
! 		      }
! 		}
! 	      else
! 		{
! 		  error_at (c_parser_peek_token (parser)->location,
! 			    "expected %<nothing%> or %<need_device_ptr%>");
! 		  if (strcmp (p, "need_device_addr") == 0)
! 		    inform (c_parser_peek_token (parser)->location,
! 			    "%<need_device_addr%> is not valid for C");
! 		  goto fail;
! 		}
! 	    }
! 	  else
! 	    {
! 	      error_at (c_parser_peek_token (parser)->location,
! 			"expected %<nothing%> or %<need_device_ptr%> "
! 			"followed by %<:%>");
! 	      goto fail;
! 	    }
! 	}
!       else if (ccode == append_args)
! 	{
! 	  if (append_args_tree)
! 	    {
! 	      error_at (append_args_loc, "too many %qs clauses", "append_args");
! 	      append_args_tree = NULL_TREE;
! 	    }
! 	  do
! 	    {
! 	      location_t loc = c_parser_peek_token (parser)->location;
! 	      if (!c_parser_next_token_is (parser, CPP_NAME)
! 		  || strcmp ("interop",
! 			     IDENTIFIER_POINTER (
! 			       c_parser_peek_token (parser)->value)))
! 		{
! 		  error_at (loc, "expected %<interop%>");
! 		  goto fail;
! 		}
! 	      c_parser_consume_token (parser);
! 
! 	      if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
! 		goto fail;
! 	      bool target = false;
! 	      bool targetsync = false;
! 	      tree prefer_type_tree = NULL_TREE;
! 	      if (!c_parser_omp_clause_init_modifiers (parser, &target,
! 						       &targetsync,
! 						       &prefer_type_tree)
! 		  || !c_parser_require (parser, CPP_CLOSE_PAREN,
! 					"expected %<)%> or %<,%>"))
! 		goto fail;
! 	      if (!target && !targetsync)
! 		error_at (loc,
! 			  "missing required %<target%> and/or "
! 			  "%<targetsync%> modifier");
! 	      tree t = build_tree_list (target ? boolean_true_node
! 					       : boolean_false_node,
! 					targetsync ? boolean_true_node
! 						   : boolean_false_node);
! 	      t = build1_loc (loc, NOP_EXPR, void_type_node, t);
! 	      t = build_tree_list (t, prefer_type_tree);
! 	      if (append_args_tree)
! 		{
! 		  TREE_CHAIN (append_args_last) = t;
! 		  append_args_last = t;
! 		}
! 	      else
! 		append_args_tree = append_args_last = t;
! 	      if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
! 		break;
! 	      if (!c_parser_require (parser, CPP_COMMA, "expected %<)%> or %<,%>"))
! 		goto fail;
! 	    }
! 	  while (true);
! 	}
! 
!       parens.require_close (parser);
!   } while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL));
!   c_parser_skip_to_pragma_eol (parser);
! 
!   if ((ctx != error_mark_node && variant != error_mark_node)
!       && !omp_get_context_selector (ctx, OMP_TRAIT_SET_CONSTRUCT,
! 				    OMP_TRAIT_CONSTRUCT_SIMD))
      {
!       bool fail = false;
!       if (append_args_tree)
  	{
! 	  int nappend_args = 0;
! 	  int nbase_args = 0;
! 	  for (tree t = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
! 	       t && TREE_VALUE (t) != void_type_node; t = TREE_CHAIN (t))
! 	    nbase_args++;
! 	  for (tree t = append_args_tree; t; t = TREE_CHAIN (t))
! 	    nappend_args++;
! 
! 	  /* Store as purpose = arg number after which to append
! 	     and value = list of interop items.  */
! 	  append_args_tree = build_tree_list (build_int_cst (integer_type_node,
! 							     nbase_args),
! 					      append_args_tree);
! 	  tree args, arg;
! 	  args = arg = TYPE_ARG_TYPES (TREE_TYPE (variant));
! 	  for (int j = 0; j < nbase_args && arg; j++, arg = TREE_CHAIN (arg))
! 	    args = arg;
! 	  for (int i = 0; i < nappend_args && arg; i++)
! 	    arg = TREE_CHAIN (arg);
! 	  tree saved_args;
! 	  if (nbase_args && args)
! 	    {
! 	      saved_args = TREE_CHAIN (args);
! 	      TREE_CHAIN (args) = arg;
! 	    }
! 	  else
! 	    {
! 	      saved_args = args;
! 	      TYPE_ARG_TYPES (TREE_TYPE (variant)) = arg;
! 	      TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (variant)) = 1;
! 	    }
! 	  if (!comptypes (TREE_TYPE (fndecl), TREE_TYPE (variant)))
! 	    fail = true;
! 	  if (nbase_args && args)
! 	    TREE_CHAIN (args) = saved_args;
! 	  else
! 	    {
! 	      TYPE_ARG_TYPES (TREE_TYPE (variant)) = saved_args;
! 	      TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (variant)) = 0;
! 	    }
! 	  arg = saved_args;
! 	  if (!fail)
! 	    for (int i = 0; i < nappend_args; i++, arg = TREE_CHAIN (arg))
! 	      if (!arg || !c_omp_interop_t_p (TREE_VALUE (arg)))
! 		{
! 		  error_at (DECL_SOURCE_LOCATION (variant),
! 			    "argument %d of %qD must be of %<omp_interop_t%>",
! 			    nbase_args + i + 1, variant);
! 		  inform (append_args_loc, "%<append_args%> specified here");
! 		  break;
! 		}
  	}
!       else
  	{
! 	  if (comptypes (TREE_TYPE (fndecl), TREE_TYPE (variant)))
! 	    {
! 	      if (TYPE_ARG_TYPES (TREE_TYPE (variant)) == NULL_TREE
! 		  && TYPE_ARG_TYPES (TREE_TYPE (fndecl)) != NULL_TREE)
! 		{
! 		  if (!append_args_tree)
! 		    TYPE_ARG_TYPES (TREE_TYPE (variant))
! 		      = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
! 		  else
! 		    {
! 		      tree new_args = NULL_TREE;
! 		      tree arg, last_arg = NULL_TREE;
! 		      for (arg = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
! 			   arg && arg != void_type_node; arg = TREE_CHAIN (arg))
! 			{
! 			  if (new_args == NULL_TREE)
! 			    new_args = last_arg = copy_node (arg);
! 			  else
! 			    {
! 			      TREE_CHAIN (last_arg) = copy_node (arg);
! 			      last_arg = TREE_CHAIN (last_arg);
! 			    }
! 			}
! 		      for (tree t3 = append_args_tree; t3; t3 = TREE_CHAIN (t3))
! 			{
! 			  tree type = lookup_name (get_identifier ("omp_interop_t"));
! 			  type = type ? TREE_TYPE (type) : ptr_type_node;
! 			  last_arg = tree_cons (NULL_TREE, type, last_arg);
! 			}
! 		      TREE_CHAIN (last_arg) = arg;
! 		      TYPE_ARG_TYPES (TREE_TYPE (variant)) = new_args;
! 		    }
! 		}
! 	    }
! 	  else
! 	    fail = true;
  	}
!       if (fail)
  	{
! 	  error_at (token->location,
! 		    "variant %qD and base %qD have incompatible types",
! 		    variant, fndecl);
  	  variant = error_mark_node;
  	}
!     }
!   if (ctx != error_mark_node && variant != error_mark_node)
!     {
!       C_DECL_USED (variant) = 1;
!       tree construct = omp_get_context_selector_list (ctx,
! 						      OMP_TRAIT_SET_CONSTRUCT);
!       omp_mark_declare_variant (match_loc, variant, construct);
!       if (omp_context_selector_matches (ctx, NULL_TREE, false))
  	{
! 	  tree attr = tree_cons (get_identifier ("omp declare variant base"),
! 				 build_tree_list (variant, ctx),
! 				 DECL_ATTRIBUTES (fndecl));
! 	  DECL_ATTRIBUTES (fndecl) = attr;
! 	}
!     }
! 
!   if (has_adjust_args || append_args_tree)
!     {
!       if (!has_match)
! 	{
! 	  error_at (has_adjust_args ? adjust_args_loc : append_args_loc,
! 		    "an %qs clause requires a %<match%> clause",
! 		    has_adjust_args ? "adjust_args" : "append_args");
! 	}
!       else if (ctx != error_mark_node && variant != error_mark_node)
! 	{
! 	  tree attr = lookup_attribute ("omp declare variant base",
! 					DECL_ATTRIBUTES (fndecl));
! 	  if (attr != NULL_TREE)
  	    {
! 	      tree ctx = TREE_VALUE (TREE_VALUE (attr));
! 	      if (!omp_get_context_selector (ctx, OMP_TRAIT_SET_CONSTRUCT,
! 					     OMP_TRAIT_CONSTRUCT_DISPATCH))
! 		error_at (has_adjust_args ? adjust_args_loc : append_args_loc,
! 			  "an %qs clause can only be specified if the "
! 			  "%<dispatch%> selector of the %<construct%> selector "
! 			  "set appears in the %<match%> clause",
! 			  has_adjust_args ? "adjust_args" : "append_args");
  	    }
  	}
      }
  
!   if ((ctx != error_mark_node && variant != error_mark_node)
!       && (need_device_ptr_list || append_args_tree))
!     {
!       tree variant_decl = tree_strip_nop_conversions (variant);
!       tree t = build_tree_list (need_device_ptr_list,
! 				NULL_TREE /* need_device_addr */);
!       TREE_CHAIN (t) = append_args_tree;
!       DECL_ATTRIBUTES (variant_decl)
! 	= tree_cons (get_identifier ("omp declare variant variant args"), t,
! 		     DECL_ATTRIBUTES (variant_decl));
!     }
  }
  
  /* Finalize #pragma omp declare simd or #pragma omp declare variant
*************** c_finish_omp_declare_simd (c_parser *par
*** 25016,25022 ****
  
    parser->tokens = clauses.address ();
    parser->tokens_avail = clauses.length ();
!   
    /* c_parser_omp_declare_simd pushed 2 extra CPP_EOF tokens at the end.  */
    while (parser->tokens_avail > 3)
      {
--- 27377,27383 ----
  
    parser->tokens = clauses.address ();
    parser->tokens_avail = clauses.length ();
! 
    /* c_parser_omp_declare_simd pushed 2 extra CPP_EOF tokens at the end.  */
    while (parser->tokens_avail > 3)
      {
*************** c_maybe_parse_omp_decl (tree decl, tree
*** 25119,25131 ****
    tok.type = CPP_EOF;
    tok.keyword = RID_MAX;
    tok.location = last[-1].location;
-   tok.flags = tokens_avail;
    toks->quick_push (tok);
    parser->in_omp_decl_attribute = decl;
    parser->tokens = toks->address ();
    parser->tokens_avail = toks->length ();
!   parser->in_omp_attribute_pragma = toks;
!   c_parser_pragma (parser, pragma_external, NULL);
    parser->in_omp_decl_attribute = NULL_TREE;
    return true;
  }
--- 27480,27495 ----
    tok.type = CPP_EOF;
    tok.keyword = RID_MAX;
    tok.location = last[-1].location;
    toks->quick_push (tok);
    parser->in_omp_decl_attribute = decl;
+   gcc_assert (!parser->in_omp_attribute_pragma);
+   parser->in_omp_attribute_pragma = ggc_alloc<omp_attribute_pragma_state> ();
+   parser->in_omp_attribute_pragma->token_vec = toks;
+   parser->in_omp_attribute_pragma->save_tokens = parser->tokens;
+   parser->in_omp_attribute_pragma->save_tokens_avail = tokens_avail;
    parser->tokens = toks->address ();
    parser->tokens_avail = toks->length ();
!   c_parser_pragma (parser, pragma_external, NULL, NULL_TREE);
    parser->in_omp_decl_attribute = NULL_TREE;
    return true;
  }
*************** c_parser_omp_declare_target (c_parser *p
*** 25154,25159 ****
--- 27518,27526 ----
    int device_type = 0;
    bool indirect = false;
    bool only_device_type_or_indirect = true;
+   if (flag_openmp)
+     omp_requires_mask
+       = (enum omp_requires) (omp_requires_mask | OMP_REQUIRES_TARGET_USED);
    if (c_parser_next_token_is (parser, CPP_NAME)
        || (c_parser_next_token_is (parser, CPP_COMMA)
  	  && c_parser_peek_2nd_token (parser)->type == CPP_NAME))
*************** c_parser_omp_declare_reduction (c_parser
*** 25786,25792 ****
    types.release ();
  }
  
- 
  /* OpenMP 4.0
     #pragma omp declare simd declare-simd-clauses[optseq] new-line
     #pragma omp declare reduction (reduction-id : typename-list : expression) \
--- 28153,28158 ----
*************** c_parser_omp_declare_reduction (c_parser
*** 25794,25800 ****
     #pragma omp declare target new-line
  
     OpenMP 5.0
!    #pragma omp declare variant (identifier) match (context-selector)  */
  
  static bool
  c_parser_omp_declare (c_parser *parser, enum pragma_context context)
--- 28160,28170 ----
     #pragma omp declare target new-line
  
     OpenMP 5.0
!    #pragma omp declare variant (identifier) match (context-selector)
! 
!    OpenMP 5.1
!    #pragma omp declare variant (identifier) match (context-selector) \
!       adjust_args(adjust-op:argument-list)  */
  
  static bool
  c_parser_omp_declare (c_parser *parser, enum pragma_context context)
*************** c_parser_omp_requires (c_parser *parser)
*** 25870,25875 ****
--- 28240,28247 ----
  	    this_req = OMP_REQUIRES_UNIFIED_ADDRESS;
  	  else if (!strcmp (p, "unified_shared_memory"))
  	    this_req = OMP_REQUIRES_UNIFIED_SHARED_MEMORY;
+ 	  else if (!strcmp (p, "self_maps"))
+ 	    this_req = OMP_REQUIRES_SELF_MAPS;
  	  else if (!strcmp (p, "dynamic_allocators"))
  	    this_req = OMP_REQUIRES_DYNAMIC_ALLOCATORS;
  	  else if (!strcmp (p, "reverse_offload"))
*************** c_parser_omp_requires (c_parser *parser)
*** 25936,25941 ****
--- 28308,28314 ----
  	    {
  	      error_at (cloc, "expected %<unified_address%>, "
  			      "%<unified_shared_memory%>, "
+ 			      "%<self_maps%>, "
  			      "%<dynamic_allocators%>, "
  			       "%<reverse_offload%> "
  			       "or %<atomic_default_mem_order%> clause");
*************** c_parser_omp_taskloop (location_t loc, c
*** 26116,26121 ****
--- 28489,28600 ----
    return ret;
  }
  
+ /* OpenMP 5.1: Parse sizes list for "omp tile sizes"
+    sizes ( size-expr-list ) */
+ static tree
+ c_parser_omp_tile_sizes (c_parser *parser, location_t loc)
+ {
+   tree sizes = NULL_TREE;
+ 
+   if (c_parser_next_token_is (parser, CPP_COMMA))
+     c_parser_consume_token (parser);
+ 
+   c_token *tok = c_parser_peek_token (parser);
+   if (tok->type != CPP_NAME
+       || strcmp ("sizes", IDENTIFIER_POINTER (tok->value)))
+     {
+       c_parser_error (parser, "expected %<sizes%>");
+       return error_mark_node;
+     }
+   c_parser_consume_token (parser);
+ 
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return error_mark_node;
+ 
+   vec<tree, va_gc> *sizes_vec
+     = c_parser_expr_list (parser, true, true, NULL, NULL, NULL, NULL);
+   sizes = build_tree_list_vec (sizes_vec);
+   release_tree_vector (sizes_vec);
+ 
+   for (tree s = sizes; s; s = TREE_CHAIN (s))
+     {
+       tree expr = TREE_VALUE (s);
+       if (expr == error_mark_node)
+ 	{
+ 	  parens.skip_until_found_close (parser);
+ 	  return error_mark_node;
+ 	}
+ 
+       HOST_WIDE_INT n;
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (expr))
+ 	  || !tree_fits_shwi_p (expr)
+ 	  || (n = tree_to_shwi (expr)) <= 0
+ 	  || (int) n != n)
+ 	{
+ 	  c_parser_error (parser, "%<sizes%> argument needs positive"
+ 				  " integral constant");
+ 	  TREE_VALUE (s) = integer_one_node;
+ 	}
+     }
+   parens.require_close (parser);
+ 
+   gcc_assert (sizes);
+   tree c = build_omp_clause (loc, OMP_CLAUSE_SIZES);
+   OMP_CLAUSE_SIZES_LIST (c) = sizes;
+ 
+   return c;
+ }
+ 
+ /* OpenMP 5.1:
+    #pragma omp tile sizes ( size-expr-list ) new-line
+      for-loop
+ 
+    LOC is the location of the #pragma token.  */
+ 
+ static tree
+ c_parser_omp_tile (location_t loc, c_parser *parser, bool *if_p)
+ {
+   tree clauses = c_parser_omp_tile_sizes (parser, loc);
+   c_parser_skip_to_pragma_eol (parser);
+ 
+   if (!clauses || clauses == error_mark_node)
+     return error_mark_node;
+ 
+   tree block = c_begin_compound_stmt (true);
+   tree ret = c_parser_omp_for_loop (loc, parser, OMP_TILE, clauses,
+ 				    NULL, if_p);
+   block = c_end_compound_stmt (loc, block, true);
+   add_stmt (block);
+ 
+   return ret;
+ }
+ 
+ #define OMP_UNROLL_CLAUSE_MASK					\
+ 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_PARTIAL)	\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_FULL))
+ 
+ /* OpenMP 5.1
+    #pragma omp unroll unroll-clause[optseq] new-line
+      for-loop
+ 
+    LOC is the location of the #pragma token.  */
+ 
+ static tree
+ c_parser_omp_unroll (location_t loc, c_parser *parser, bool *if_p)
+ {
+   tree clauses = c_parser_omp_all_clauses (parser, OMP_UNROLL_CLAUSE_MASK,
+ 					   "#pragma omp unroll", true);
+ 
+   tree block = c_begin_compound_stmt (true);
+   tree ret = c_parser_omp_for_loop (loc, parser, OMP_UNROLL, clauses,
+ 				    NULL, if_p);
+   block = c_end_compound_stmt (loc, block, true);
+   add_stmt (block);
+ 
+   return ret;
+ }
+ 
  /* OpenMP 5.1
     #pragma omp nothing new-line  */
  
*************** c_parser_omp_assumption_clauses (c_parse
*** 26405,26416 ****
  			= c_omp_categorize_directive (directive[0],
  						      directive[1],
  						      directive[2]);
! 		      if (dir == NULL
! 			  || dir->kind == C_OMP_DIR_DECLARATIVE
! 			  || dir->kind == C_OMP_DIR_INFORMATIONAL
! 			  || dir->id == PRAGMA_OMP_END
! 			  || (!dir->second && directive[1])
! 			  || (!dir->third && directive[2]))
  			error_at (dloc, "unknown OpenMP directive name in "
  					"%qs clause argument", p);
  		      else
--- 28884,28901 ----
  			= c_omp_categorize_directive (directive[0],
  						      directive[1],
  						      directive[2]);
! 		      if (dir
! 			  && (dir->kind == C_OMP_DIR_DECLARATIVE
! 			      || dir->kind == C_OMP_DIR_INFORMATIONAL
! 			      || dir->kind == C_OMP_DIR_META))
! 			error_at (dloc, "invalid OpenMP directive name in "
! 					"%qs clause argument: declarative, "
! 					"informational, and meta directives "
! 					"not permitted", p);
! 		      else if (dir == NULL
! 			       || dir->id == PRAGMA_OMP_END
! 			       || (!dir->second && directive[1])
! 			       || (!dir->third && directive[2]))
  			error_at (dloc, "unknown OpenMP directive name in "
  					"%qs clause argument", p);
  		      else
*************** c_parser_omp_assumes (c_parser *parser)
*** 26492,26497 ****
--- 28977,29397 ----
    c_parser_omp_assumption_clauses (parser, false);
  }
  
+ /* Helper function for c_parser_omp_metadirective.  */
+ 
+ static void
+ analyze_metadirective_body (c_parser *parser,
+ 			    vec<c_token> &tokens,
+ 			    vec<tree> &labels)
+ {
+   int nesting_depth = 0;
+   int bracket_depth = 0;
+   bool ignore_label = false;
+ 
+   /* Read in the body tokens to the tokens for each candidate directive.  */
+   while (1)
+     {
+       c_token *token = c_parser_peek_token (parser);
+       bool stop = false;
+ 
+       if (c_parser_next_token_is_keyword (parser, RID_CASE))
+ 	ignore_label = true;
+ 
+       switch (token->type)
+ 	{
+ 	case CPP_EOF:
+ 	  break;
+ 	case CPP_NAME:
+ 	  if (!ignore_label
+ 	      && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
+ 	    labels.safe_push (token->value);
+ 	  goto add;
+ 	case CPP_OPEN_BRACE:
+ 	  ++nesting_depth;
+ 	  goto add;
+ 	case CPP_CLOSE_BRACE:
+ 	  if (--nesting_depth == 0 && bracket_depth == 0)
+ 	    stop = true;
+ 	  goto add;
+ 	case CPP_OPEN_PAREN:
+ 	  ++bracket_depth;
+ 	  goto add;
+ 	case CPP_CLOSE_PAREN:
+ 	  --bracket_depth;
+ 	  goto add;
+ 	case CPP_COLON:
+ 	  ignore_label = false;
+ 	  goto add;
+ 	case CPP_SEMICOLON:
+ 	  if (nesting_depth == 0 && bracket_depth == 0)
+ 	    stop = true;
+ 	  goto add;
+ 	default:
+ 	add:
+ 	  tokens.safe_push (*token);
+ 	  if (token->type == CPP_PRAGMA)
+ 	    c_parser_consume_pragma (parser);
+ 	  else if (token->type == CPP_PRAGMA_EOL)
+ 	    c_parser_skip_to_pragma_eol (parser);
+ 	  else
+ 	    c_parser_consume_token (parser);
+ 	  if (stop)
+ 	    break;
+ 	  continue;
+ 	}
+       break;
+     }
+ }
+ 
+ /* OpenMP 5.0:
+ 
+   # pragma omp metadirective [clause[, clause]]
+ */
+ 
+ static void
+ c_parser_omp_metadirective (c_parser *parser, bool *if_p)
+ {
+   static unsigned int metadirective_region_count = 0;
+ 
+   tree ret;
+   auto_vec<c_token> directive_tokens;
+   auto_vec<c_token> body_tokens;
+   auto_vec<tree> body_labels;
+   auto_vec<const struct c_omp_directive *> directives;
+   auto_vec<tree> ctxs;
+   vec<struct omp_variant> candidates;
+   bool default_seen = false;
+   int directive_token_idx = 0;
+   tree standalone_body = NULL_TREE;
+   location_t pragma_loc = c_parser_peek_token (parser)->location;
+   bool requires_body = false;
+ 
+   ret = make_node (OMP_METADIRECTIVE);
+   SET_EXPR_LOCATION (ret, pragma_loc);
+   TREE_TYPE (ret) = void_type_node;
+   OMP_METADIRECTIVE_VARIANTS (ret) = NULL_TREE;
+ 
+   c_parser_consume_pragma (parser);
+   while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL))
+     {
+       if (c_parser_next_token_is (parser, CPP_COMMA))
+ 	c_parser_consume_token (parser);
+       if (c_parser_next_token_is_not (parser, CPP_NAME)
+ 	  && c_parser_next_token_is_not (parser, CPP_KEYWORD))
+ 	{
+ 	  c_parser_error (parser, "expected %<when%>, "
+ 			  "%<otherwise%>, or %<default%> clause");
+ 	  goto error;
+ 	}
+ 
+       location_t match_loc = c_parser_peek_token (parser)->location;
+       const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       c_parser_consume_token (parser);
+       bool default_p
+ 	= strcmp (p, "default") == 0 || strcmp (p, "otherwise") == 0;
+       if (default_p)
+ 	{
+ 	  if (default_seen)
+ 	    {
+ 	      error_at (match_loc, "too many %<otherwise%> or %<default%> "
+ 			"clauses in %<metadirective%>");
+ 	      c_parser_skip_to_end_of_block_or_statement (parser, true);
+ 	      goto error;
+ 	    }
+ 	  default_seen = true;
+ 	}
+       else if (default_seen)
+ 	{
+ 	  error_at (match_loc, "%<otherwise%> or %<default%> clause "
+ 		    "must appear last in %<metadirective%>");
+ 	  c_parser_skip_to_end_of_block_or_statement (parser, true);
+ 	  goto error;
+ 	}
+       if (!default_p && strcmp (p, "when") != 0)
+ 	{
+ 	  error_at (match_loc, "%qs is not valid for %qs",
+ 		    p, "metadirective");
+ 	  c_parser_skip_to_end_of_block_or_statement (parser, true);
+ 	  goto error;
+ 	}
+ 
+       matching_parens parens;
+       tree ctx = NULL_TREE;
+       bool skip = false;
+ 
+       if (!parens.require_open (parser))
+ 	goto error;
+ 
+       if (!default_p)
+ 	{
+ 	  ctx = c_parser_omp_context_selector_specification (parser,
+ 							     NULL_TREE);
+ 	  if (ctx == error_mark_node)
+ 	    goto error;
+ 	  ctx = omp_check_context_selector (match_loc, ctx,
+ 					    OMP_CTX_METADIRECTIVE);
+ 	  if (ctx == error_mark_node)
+ 	    goto error;
+ 
+ 	  /* Remove the selector from further consideration if it can be
+ 	     evaluated as a non-match at this point.  */
+ 	  skip = (omp_context_selector_matches (ctx, NULL_TREE, false) == 0);
+ 
+ 	  if (c_parser_next_token_is_not (parser, CPP_COLON))
+ 	    {
+ 	      c_parser_require (parser, CPP_COLON, "expected %<:%>");
+ 	      goto error;
+ 	    }
+ 	  c_parser_consume_token (parser);
+ 	}
+ 
+       /* Read in the directive type and create a dummy pragma token for
+ 	 it.  */
+       location_t loc = c_parser_peek_token (parser)->location;
+ 
+       const char *directive[3] = {};
+       int i;
+       for (i = 0; i < 3; i++)
+ 	{
+ 	  tree id;
+ 	  if (c_parser_peek_nth_token (parser, i + 1)->type
+ 	      == CPP_CLOSE_PAREN)
+ 	    {
+ 	      if (i == 0)
+ 		directive[i++] = "nothing";
+ 	      break;
+ 	    }
+ 	  else if (c_parser_peek_nth_token (parser, i + 1)->type
+ 		   == CPP_NAME)
+ 	    id = c_parser_peek_nth_token (parser, i + 1)->value;
+ 	  else if (c_parser_peek_nth_token (parser, i + 1)->keyword
+ 		   != RID_MAX)
+ 	    {
+ 	      enum rid rid
+ 		= c_parser_peek_nth_token (parser, i + 1)->keyword;
+ 	      id = ridpointers[rid];
+ 	    }
+ 	  else
+ 	    break;
+ 
+ 	  directive[i] = IDENTIFIER_POINTER (id);
+ 	}
+       if (i == 0)
+ 	{
+ 	  error_at (loc, "expected directive name");
+ 	  c_parser_skip_to_end_of_block_or_statement (parser, true);
+ 	  goto error;
+ 	}
+ 
+       const struct c_omp_directive *omp_directive
+ 	= c_omp_categorize_directive (directive[0],
+ 				      directive[1],
+ 				      directive[2]);
+ 
+       if (omp_directive == NULL)
+ 	{
+ 	  for (int j = 0; j < i; j++)
+ 	    c_parser_consume_token (parser);
+ 	  c_parser_error (parser, "unknown directive name");
+ 	  goto error;
+ 	}
+       else
+ 	{
+ 	  int token_count = 0;
+ 	  if (omp_directive->first) token_count++;
+ 	  if (omp_directive->second) token_count++;
+ 	  if (omp_directive->third) token_count++;
+ 	  for (int j = 0; j < token_count; j++)
+ 	    c_parser_consume_token (parser);
+ 	}
+       if (omp_directive->id == PRAGMA_OMP_METADIRECTIVE)
+ 	{
+ 	  c_parser_error (parser,
+ 			  "metadirectives cannot be used as variants of a "
+ 			  "%<metadirective%>");
+ 	  goto error;
+ 	}
+       if (omp_directive->kind == C_OMP_DIR_DECLARATIVE)
+ 	{
+ 	  sorry_at (loc, "declarative directive variants of a "
+ 			 "%<metadirective%> are not supported");
+ 	  goto error;
+ 	}
+       if (omp_directive->kind == C_OMP_DIR_CONSTRUCT)
+ 	requires_body = true;
+ 
+       if (!skip)
+ 	{
+ 	  c_token pragma_token;
+ 	  pragma_token.type = CPP_PRAGMA;
+ 	  pragma_token.location = loc;
+ 	  pragma_token.pragma_kind = (enum pragma_kind) omp_directive->id;
+ 
+ 	  directives.safe_push (omp_directive);
+ 	  directive_tokens.safe_push (pragma_token);
+ 	  ctxs.safe_push (ctx);
+ 	}
+ 
+       /* Read in tokens for the directive clauses.  */
+       int nesting_depth = 0;
+       while (1)
+ 	{
+ 	  c_token *token = c_parser_peek_token (parser);
+ 	  switch (token->type)
+ 	    {
+ 	    case CPP_EOF:
+ 	    case CPP_PRAGMA_EOL:
+ 	      break;
+ 	    case CPP_OPEN_PAREN:
+ 	      ++nesting_depth;
+ 	      goto add;
+ 	    case CPP_CLOSE_PAREN:
+ 	      if (nesting_depth-- == 0)
+ 		break;
+ 	      goto add;
+ 	    default:
+ 	    add:
+ 	      if (!skip)
+ 		directive_tokens.safe_push (*token);
+ 	      c_parser_consume_token (parser);
+ 	      continue;
+ 	    }
+ 	  break;
+ 	}
+ 
+       c_parser_consume_token (parser);
+ 
+       if (!skip)
+ 	{
+ 	  c_token eol_token;
+ 	  memset (&eol_token, 0, sizeof (eol_token));
+ 	  eol_token.type = CPP_PRAGMA_EOL;
+ 	  directive_tokens.safe_push (eol_token);
+ 	}
+     }
+   c_parser_skip_to_pragma_eol (parser);
+ 
+   if (!default_seen)
+     {
+       /* Add a default clause that evaluates to 'omp nothing'.  */
+       const struct c_omp_directive *omp_directive
+ 	= c_omp_categorize_directive ("nothing", NULL, NULL);
+ 
+       c_token pragma_token;
+       pragma_token.type = CPP_PRAGMA;
+       pragma_token.location = UNKNOWN_LOCATION;
+       pragma_token.pragma_kind = PRAGMA_OMP_NOTHING;
+ 
+       directives.safe_push (omp_directive);
+       directive_tokens.safe_push (pragma_token);
+       ctxs.safe_push (NULL_TREE);
+ 
+       c_token eol_token;
+       memset (&eol_token, 0, sizeof (eol_token));
+       eol_token.type = CPP_PRAGMA_EOL;
+       directive_tokens.safe_push (eol_token);
+     }
+ 
+   if (requires_body)
+     analyze_metadirective_body (parser, body_tokens, body_labels);
+ 
+   /* Process each candidate directive.  */
+   unsigned i;
+   tree ctx;
+ 
+   FOR_EACH_VEC_ELT (ctxs, i, ctx)
+     {
+       auto_vec<c_token> tokens;
+ 
+       /* Add the directive tokens.  */
+       do
+ 	tokens.safe_push (directive_tokens [directive_token_idx++]);
+       while (tokens.last ().type != CPP_PRAGMA_EOL);
+ 
+       /* Add the body tokens.  */
+       gcc_assert (requires_body || body_tokens.is_empty ());
+       for (unsigned j = 0; j < body_tokens.length (); j++)
+ 	tokens.safe_push (body_tokens[j]);
+ 
+       /* Make sure nothing tries to read past the end of the tokens.  */
+       c_token eof_token;
+       memset (&eof_token, 0, sizeof (eof_token));
+       eof_token.type = CPP_EOF;
+       tokens.safe_push (eof_token);
+       tokens.safe_push (eof_token);
+ 
+       unsigned int old_tokens_avail = parser->tokens_avail;
+       c_token *old_tokens = parser->tokens;
+       struct omp_attribute_pragma_state *old_in_omp_attribute_pragma
+ 	= parser->in_omp_attribute_pragma;
+       struct omp_metadirective_parse_data *old_state
+ 	= parser->omp_metadirective_state;
+ 
+       struct omp_metadirective_parse_data new_state;
+       new_state.body_labels = &body_labels;
+       new_state.region_num = ++metadirective_region_count;
+ 
+       parser->tokens = tokens.address ();
+       parser->tokens_avail = tokens.length ();
+       parser->in_omp_attribute_pragma = NULL;
+       parser->omp_metadirective_state = &new_state;
+ 
+       int prev_errorcount = errorcount;
+       tree directive = c_begin_compound_stmt (true);
+ 
+       c_parser_pragma (parser, pragma_compound, if_p, NULL_TREE);
+       directive = c_end_compound_stmt (pragma_loc, directive, true);
+       bool standalone_p
+ 	= directives[i]->kind == C_OMP_DIR_STANDALONE
+ 	  || directives[i]->kind == C_OMP_DIR_UTILITY;
+       if (standalone_p && requires_body)
+ 	{
+ 	  /* Parsing standalone directives will not consume the body
+ 	     tokens, so do that here.  */
+ 	  if (standalone_body == NULL_TREE)
+ 	    {
+ 	      standalone_body = push_stmt_list ();
+ 	      c_parser_statement (parser, if_p);
+ 	      standalone_body = pop_stmt_list (standalone_body);
+ 	    }
+ 	  else
+ 	    c_parser_skip_to_end_of_block_or_statement (parser, true);
+ 	}
+ 
+       tree body = standalone_p ? standalone_body : NULL_TREE;
+       tree variant = make_omp_metadirective_variant (ctx, directive, body);
+       OMP_METADIRECTIVE_VARIANTS (ret)
+ 	= chainon (OMP_METADIRECTIVE_VARIANTS (ret), variant);
+ 
+       /* Check that all valid tokens have been consumed if no parse errors
+ 	 encountered.  */
+       if (errorcount == prev_errorcount)
+ 	{
+ 	  gcc_assert (parser->tokens_avail == 2);
+ 	  gcc_assert (c_parser_next_token_is (parser, CPP_EOF));
+ 	  gcc_assert (c_parser_peek_2nd_token (parser)->type == CPP_EOF);
+ 	}
+ 
+       parser->tokens = old_tokens;
+       parser->tokens_avail = old_tokens_avail;
+       parser->in_omp_attribute_pragma = old_in_omp_attribute_pragma;
+       parser->omp_metadirective_state = old_state;
+     }
+ 
+   /* Try to resolve the metadirective early.  */
+   candidates = omp_early_resolve_metadirective (ret);
+   if (!candidates.is_empty ())
+     ret = c_omp_expand_variant_construct (candidates);
+ 
+   add_stmt (ret);
+   return;
+ 
+ error:
+   if (parser->in_pragma)
+     c_parser_skip_to_pragma_eol (parser);
+   c_parser_skip_to_end_of_block_or_statement (parser, true);
+ }
+ 
  /* Main entry point to parsing most OpenMP pragmas.  */
  
  static void
*************** c_parser_omp_construct (c_parser *parser
*** 26597,26602 ****
--- 29497,29511 ----
      case PRAGMA_OMP_ASSUME:
        c_parser_omp_assume (parser, if_p);
        return;
+     case PRAGMA_OMP_TILE:
+       stmt = c_parser_omp_tile (loc, parser, if_p);
+       break;
+     case PRAGMA_OMP_UNROLL:
+       stmt = c_parser_omp_unroll (loc, parser, if_p);
+       break;
+     case PRAGMA_OMP_DISPATCH:
+       stmt = c_parser_omp_dispatch (loc, parser);
+       break;
      default:
        gcc_unreachable ();
      }
*************** c_parser_omp_threadprivate (c_parser *pa
*** 26616,26634 ****
    location_t loc;
  
    c_parser_consume_pragma (parser);
-   loc = c_parser_peek_token (parser)->location;
    vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL);
  
    /* Mark every variable in VARS to be assigned thread local storage.  */
    for (t = vars; t; t = TREE_CHAIN (t))
      {
        tree v = TREE_PURPOSE (t);
! 
!       /* FIXME diagnostics: Ideally we should keep individual
! 	 locations for all the variables in the var list to make the
! 	 following errors more precise.  Perhaps
! 	 c_parser_omp_var_list_parens() should construct a list of
! 	 locations to go along with the var list.  */
  
        /* If V had already been marked threadprivate, it doesn't matter
  	 whether it had been used prior to this point.  */
--- 29525,29537 ----
    location_t loc;
  
    c_parser_consume_pragma (parser);
    vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL);
  
    /* Mark every variable in VARS to be assigned thread local storage.  */
    for (t = vars; t; t = TREE_CHAIN (t))
      {
        tree v = TREE_PURPOSE (t);
!       loc = EXPR_LOCATION (TREE_VALUE (t));
  
        /* If V had already been marked threadprivate, it doesn't matter
  	 whether it had been used prior to this point.  */
diff -Nrcpad gcc-14.2.0/gcc/c/c-parser.h gcc-15.1.0/gcc/c/c-parser.h
*** gcc-14.2.0/gcc/c/c-parser.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-parser.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Declarations for the parser for C and Objective-C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
--- 1,5 ----
  /* Declarations for the parser for C and Objective-C.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
diff -Nrcpad gcc-14.2.0/gcc/c/c-tree.def gcc-15.1.0/gcc/c/c-tree.def
*** gcc-14.2.0/gcc/c/c-tree.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-tree.def	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c/c-tree.h gcc-15.1.0/gcc/c/c-tree.h
*** gcc-14.2.0/gcc/c/c-tree.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-tree.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 90,95 ****
--- 90,113 ----
  #define C_DECL_BUILTIN_PROTOTYPE(EXP)		\
    DECL_LANG_FLAG_6 (FUNCTION_DECL_CHECK (EXP))
  
+ /* For LABEL_DECLs marks canonical name of a loop.  */
+ #define C_DECL_LOOP_NAME(EXP) DECL_LANG_FLAG_3 (LABEL_DECL_CHECK (EXP))
+ 
+ /* For LABEL_DECLs marks canonical name of a switch.  During parsing of
+    ObjC foreach named loop both C_DECL_LOOP_NAME and C_DECL_SWITCH_NAME
+    are temporarily set.  */
+ #define C_DECL_SWITCH_NAME(EXP) DECL_LANG_FLAG_5 (LABEL_DECL_CHECK (EXP))
+ 
+ /* For LABEL_DECLs marks canonical name of a loop or switch being
+    valid for use in break identifier or continue identifier statements.  */
+ #define C_DECL_LOOP_SWITCH_NAME_VALID(EXP) \
+   DECL_LANG_FLAG_6 (LABEL_DECL_CHECK (EXP))
+ 
+ /* For LABEL_DECLs marks canonical loop or switch names which were actually
+    used in one or more break identifier or continue identifier statements.  */
+ #define C_DECL_LOOP_SWITCH_NAME_USED(EXP) \
+   DECL_LANG_FLAG_8 (LABEL_DECL_CHECK (EXP))
+ 
  /* Record whether a decl was declared register.  This is strictly a
     front-end flag, whereas DECL_REGISTER is used for code generation;
     they may differ for structures with volatile fields.  */
*************** enum c_storage_class {
*** 269,276 ****
  };
  
  /* A type specifier keyword "void", "_Bool", "char", "int", "float",
!    "double", "_Decimal32", "_Decimal64", "_Decimal128", "_Fract", "_Accum",
!    "_BitInt", or none of these.  */
  enum c_typespec_keyword {
    cts_none,
    cts_void,
--- 287,294 ----
  };
  
  /* A type specifier keyword "void", "_Bool", "char", "int", "float",
!    "double", "_Decimal32", "_Decimal64", "_Decimal128", "_Decimal64x",
!    "_Fract", "_Accum", "_BitInt", or none of these.  */
  enum c_typespec_keyword {
    cts_none,
    cts_void,
*************** enum c_typespec_keyword {
*** 283,288 ****
--- 301,307 ----
    cts_dfloat32,
    cts_dfloat64,
    cts_dfloat128,
+   cts_dfloat64x,
    cts_floatn_nx,
    cts_fract,
    cts_accum,
*************** struct c_arg_info {
*** 507,512 ****
--- 526,535 ----
    BOOL_BITFIELD had_vla_unspec : 1;
    /* True when the arguments are a (...) prototype.  */
    BOOL_BITFIELD no_named_args_stdarg_p : 1;
+   /* True when empty parentheses have been interpreted as (void) in C23 or
+      later.  This is only for use by -Wtraditional and is no longer needed if
+      -Wtraditional is removed.  */
+   BOOL_BITFIELD c23_empty_parens : 1;
  };
  
  /* A declarator.  */
*************** extern struct obstack parser_obstack;
*** 611,622 ****
     to IN_OMP_BLOCK if parsing OpenMP structured block and
     IN_OMP_FOR if parsing OpenMP loop.  If parsing a switch statement,
     this is bitwise ORed with IN_SWITCH_STMT, unless parsing an
!    iteration-statement, OpenMP block or loop within that switch.  */
  #define IN_SWITCH_STMT		1
  #define IN_ITERATION_STMT	2
  #define IN_OMP_BLOCK		4
  #define IN_OMP_FOR		8
  #define IN_OBJC_FOREACH		16
  extern unsigned char in_statement;
  
  extern bool switch_statement_break_seen_p;
--- 634,648 ----
     to IN_OMP_BLOCK if parsing OpenMP structured block and
     IN_OMP_FOR if parsing OpenMP loop.  If parsing a switch statement,
     this is bitwise ORed with IN_SWITCH_STMT, unless parsing an
!    iteration-statement, OpenMP block or loop within that switch.
!    If the innermost iteration/switch statement is named, IN_NAMED_STMT
!    is additionally bitwise ORed into it.  */
  #define IN_SWITCH_STMT		1
  #define IN_ITERATION_STMT	2
  #define IN_OMP_BLOCK		4
  #define IN_OMP_FOR		8
  #define IN_OBJC_FOREACH		16
+ #define IN_NAMED_STMT		32
  extern unsigned char in_statement;
  
  extern bool switch_statement_break_seen_p;
*************** extern tree c_builtin_function (tree);
*** 680,686 ****
  extern tree c_builtin_function_ext_scope (tree);
  extern tree c_simulate_builtin_function_decl (tree);
  extern void c_warn_unused_attributes (tree);
! extern tree c_warn_type_attributes (tree);
  extern void shadow_tag (const struct c_declspecs *);
  extern void shadow_tag_warned (const struct c_declspecs *, int);
  extern tree start_enum (location_t, struct c_enum_contents *, tree, tree,
--- 706,712 ----
  extern tree c_builtin_function_ext_scope (tree);
  extern tree c_simulate_builtin_function_decl (tree);
  extern void c_warn_unused_attributes (tree);
! extern tree c_warn_type_attributes (tree, tree);
  extern void shadow_tag (const struct c_declspecs *);
  extern void shadow_tag_warned (const struct c_declspecs *, int);
  extern tree start_enum (location_t, struct c_enum_contents *, tree, tree,
*************** extern struct c_declspecs *declspecs_add
*** 723,728 ****
--- 749,757 ----
  						  struct c_declspecs *, tree);
  extern struct c_declspecs *finish_declspecs (struct c_declspecs *);
  extern size_t c_tree_size (enum tree_code);
+ extern int c_get_loop_names (tree, bool, tree *);
+ extern void c_release_loop_names (int);
+ extern tree c_finish_bc_name (location_t, tree, bool);
  
  /* in c-objc-common.cc */
  extern bool c_objc_common_init (void);
*************** extern struct c_switch *c_switch_stack;
*** 748,761 ****
  extern bool null_pointer_constant_p (const_tree);
  
  
! inline
! bool c_type_variably_modified_p (tree t)
  {
    return error_mark_node != t && C_TYPE_VARIABLY_MODIFIED (t);
  }
  
  
  extern bool char_type_p (tree);
  extern tree c_objc_common_truthvalue_conversion (location_t, tree,
  						 tree = integer_type_node);
  extern tree require_complete_type (location_t, tree);
--- 777,801 ----
  extern bool null_pointer_constant_p (const_tree);
  
  
! inline bool
! c_type_variably_modified_p (tree t)
  {
    return error_mark_node != t && C_TYPE_VARIABLY_MODIFIED (t);
  }
  
+ inline bool
+ c_type_unspecified_p (tree t)
+ {
+   return error_mark_node != t
+ 	 && C_TYPE_VARIABLE_SIZE (t) && TREE_CODE (t) == ARRAY_TYPE
+ 	 && TYPE_DOMAIN (t) && TYPE_MAX_VALUE (TYPE_DOMAIN (t))
+ 	 && TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (t))) == COMPOUND_EXPR
+ 	 && integer_zerop (TREE_OPERAND (TYPE_MAX_VALUE (TYPE_DOMAIN (t)), 0))
+ 	 && integer_zerop (TREE_OPERAND (TYPE_MAX_VALUE (TYPE_DOMAIN (t)), 1));
+ }
  
  extern bool char_type_p (tree);
+ extern tree c_type_tag (const_tree t);
  extern tree c_objc_common_truthvalue_conversion (location_t, tree,
  						 tree = integer_type_node);
  extern tree require_complete_type (location_t, tree);
*************** extern struct c_expr convert_lvalue_to_r
*** 777,784 ****
  extern tree decl_constant_value_1 (tree, bool);
  extern void mark_exp_read (tree);
  extern tree composite_type (tree, tree);
  extern tree build_component_ref (location_t, tree, tree, location_t,
! 				 location_t);
  extern tree build_array_ref (location_t, tree, tree);
  extern tree build_omp_array_section (location_t, tree, tree, tree);
  extern tree build_external_ref (location_t, tree, bool, tree *);
--- 817,826 ----
  extern tree decl_constant_value_1 (tree, bool);
  extern void mark_exp_read (tree);
  extern tree composite_type (tree, tree);
+ extern tree lookup_field (const_tree, tree);
  extern tree build_component_ref (location_t, tree, tree, location_t,
! 				 location_t, bool = true);
! extern tree handle_counted_by_for_component_ref (location_t, tree);
  extern tree build_array_ref (location_t, tree, tree);
  extern tree build_omp_array_section (location_t, tree, tree, tree);
  extern tree build_external_ref (location_t, tree, bool, tree *);
*************** extern struct c_expr pop_init_level (loc
*** 806,817 ****
  				     location_t);
  extern void set_init_index (location_t, tree, tree, struct obstack *);
  extern void set_init_label (location_t, tree, location_t, struct obstack *);
  extern void process_init_element (location_t, struct c_expr, bool,
  				  struct obstack *);
  extern tree build_compound_literal (location_t, tree, tree, bool,
  				    unsigned int, struct c_declspecs *);
  extern void check_compound_literal_type (location_t, struct c_type_name *);
! extern tree c_start_switch (location_t, location_t, tree, bool);
  extern void c_finish_switch (tree, tree);
  extern tree build_asm_expr (location_t, tree, tree, tree, tree, tree, bool,
  			    bool);
--- 848,860 ----
  				     location_t);
  extern void set_init_index (location_t, tree, tree, struct obstack *);
  extern void set_init_label (location_t, tree, location_t, struct obstack *);
+ unsigned c_maybe_optimize_large_byte_initializer (void);
  extern void process_init_element (location_t, struct c_expr, bool,
  				  struct obstack *);
  extern tree build_compound_literal (location_t, tree, tree, bool,
  				    unsigned int, struct c_declspecs *);
  extern void check_compound_literal_type (location_t, struct c_type_name *);
! extern tree c_start_switch (location_t, location_t, tree, bool, tree);
  extern void c_finish_switch (tree, tree);
  extern tree build_asm_expr (location_t, tree, tree, tree, tree, tree, bool,
  			    bool);
*************** extern tree c_begin_stmt_expr (void);
*** 826,833 ****
  extern tree c_finish_stmt_expr (location_t, tree);
  extern tree c_process_expr_stmt (location_t, tree);
  extern tree c_finish_expr_stmt (location_t, tree);
! extern tree c_finish_return (location_t, tree, tree);
! extern tree c_finish_bc_stmt (location_t, tree, bool);
  extern tree c_finish_goto_label (location_t, tree);
  extern tree c_finish_goto_ptr (location_t, c_expr val);
  extern tree c_expr_to_decl (tree, bool *, bool *);
--- 869,876 ----
  extern tree c_finish_stmt_expr (location_t, tree);
  extern tree c_process_expr_stmt (location_t, tree);
  extern tree c_finish_expr_stmt (location_t, tree);
! extern tree c_finish_return (location_t, tree, tree, bool = false);
! extern tree c_finish_bc_stmt (location_t, tree, bool, tree);
  extern tree c_finish_goto_label (location_t, tree);
  extern tree c_finish_goto_ptr (location_t, c_expr val);
  extern tree c_expr_to_decl (tree, bool *, bool *);
*************** extern tree c_build_function_call_vec (l
*** 848,853 ****
--- 891,903 ----
  				       tree, vec<tree, va_gc> *,
  				       vec<tree, va_gc> *);
  extern tree c_omp_clause_copy_ctor (tree, tree, tree);
+ extern tree c_reconstruct_complex_type (tree, tree);
+ extern tree c_build_type_attribute_variant (tree ntype, tree attrs);
+ extern tree c_build_pointer_type (tree type);
+ extern tree c_build_array_type (tree type, tree domain);
+ extern tree c_build_array_type_unspecified (tree type);
+ extern tree c_build_function_type (tree type, tree args, bool no = false);
+ extern tree c_build_pointer_type_for_mode (tree type, machine_mode mode, bool m);
  
  /* Set to 0 at beginning of a function definition, set to 1 if
     a return statement that specifies a return value is seen.  */
*************** extern void c_bind (location_t, tree, bo
*** 898,909 ****
  extern bool tag_exists_p (enum tree_code, tree);
  
  /* In c-errors.cc */
! extern bool pedwarn_c90 (location_t, int opt, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c99 (location_t, int opt, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c11 (location_t, int opt, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
  
  extern void
  set_c_expr_source_range (c_expr *expr,
--- 948,963 ----
  extern bool tag_exists_p (enum tree_code, tree);
  
  /* In c-errors.cc */
! extern bool pedwarn_c90 (location_t, diagnostic_option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c99 (location_t, diagnostic_option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c11 (location_t, diagnostic_option_id, const char *, ...)
!     ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c23 (location_t, diagnostic_option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
+ extern void add_note_about_new_keyword (location_t loc,
+ 					tree keyword_id);
  
  extern void
  set_c_expr_source_range (c_expr *expr,
diff -Nrcpad gcc-14.2.0/gcc/c/c-typeck.cc gcc-15.1.0/gcc/c/c-typeck.cc
*** gcc-14.2.0/gcc/c/c-typeck.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/c-typeck.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 48,58 ****
  #include "c-family/c-ubsan.h"
  #include "gomp-constants.h"
  #include "spellcheck-tree.h"
! #include "gcc-rich-location.h"
  #include "stringpool.h"
  #include "attribs.h"
  #include "asan.h"
  #include "realmpfr.h"
  
  /* Possible cases of implicit conversions.  Used to select diagnostic messages
     and control folding initializers in convert_for_assignment.  */
--- 48,60 ----
  #include "c-family/c-ubsan.h"
  #include "gomp-constants.h"
  #include "spellcheck-tree.h"
! #include "c-family/c-type-mismatch.h"
  #include "stringpool.h"
  #include "attribs.h"
  #include "asan.h"
  #include "realmpfr.h"
+ #include "tree-pretty-print-markup.h"
+ #include "gcc-urlifier.h"
  
  /* Possible cases of implicit conversions.  Used to select diagnostic messages
     and control folding initializers in convert_for_assignment.  */
*************** static bool function_types_compatible_p
*** 101,107 ****
  					 struct comptypes_data *);
  static bool type_lists_compatible_p (const_tree, const_tree,
  				     struct comptypes_data *);
- static tree lookup_field (tree, tree);
  static int convert_arguments (location_t, vec<location_t>, tree,
  			      vec<tree, va_gc> *, vec<tree, va_gc> *, tree,
  			      tree);
--- 103,108 ----
*************** static void push_member_name (tree);
*** 115,122 ****
  static int spelling_length (void);
  static char *print_spelling (char *);
  static void warning_init (location_t, int, const char *);
! static tree digest_init (location_t, tree, tree, tree, bool, bool, bool, bool,
! 			 bool, bool);
  static void output_init_element (location_t, tree, tree, bool, tree, tree, bool,
  				 bool, struct obstack *);
  static void output_pending_init_elements (int, struct obstack *);
--- 116,123 ----
  static int spelling_length (void);
  static char *print_spelling (char *);
  static void warning_init (location_t, int, const char *);
! static tree digest_init (location_t, tree, tree, tree, tree, bool, bool, bool,
! 			 bool, bool, bool);
  static void output_init_element (location_t, tree, tree, bool, tree, tree, bool,
  				 bool, struct obstack *);
  static void output_pending_init_elements (int, struct obstack *);
*************** qualify_type (tree type, tree like)
*** 356,361 ****
--- 357,558 ----
  				 | ENCODE_QUAL_ADDR_SPACE (as_common));
  }
  
+ 
+ /* Check consistency of type TYPE.  For derived types, we test that
+    C_TYPE_VARIABLE_SIZE and C_TYPE_VARIABLY_MODIFIED are consistent with
+    the requirements of the base type.  We also check that arrays with a
+    non-constant length are marked with C_TYPE_VARIABLE_SIZE. If any
+    inconsistency is detected false is returned and true otherwise.  */
+ 
+ static bool
+ c_verify_type (tree type)
+ {
+   switch (TREE_CODE (type))
+     {
+     case POINTER_TYPE:
+     case FUNCTION_TYPE:
+       /* Pointer and funcions can not have variable size.  */
+       if (C_TYPE_VARIABLE_SIZE (type))
+ 	return false;
+       /* Pointer and funcions are variably modified if and only if the
+ 	 return / target type is variably modified.  */
+       if (C_TYPE_VARIABLY_MODIFIED (type)
+ 	  != C_TYPE_VARIABLY_MODIFIED (TREE_TYPE (type)))
+ 	return false;
+       break;
+     case ARRAY_TYPE:
+       /* An array has variable size if and only if it has a non-constant
+ 	 dimensions or its element type has variable size.  */
+       if ((C_TYPE_VARIABLE_SIZE (TREE_TYPE (type))
+ 	   || (TYPE_DOMAIN (type) && TYPE_MAX_VALUE (TYPE_DOMAIN (type))
+ 	       && TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))
+ 		  != INTEGER_CST))
+ 	  != C_TYPE_VARIABLE_SIZE (type))
+ 	return false;
+       /* If the element type or the array has variable size, then the
+ 	 array has variable size and is variably modified.  */
+       if (C_TYPE_VARIABLE_SIZE (TREE_TYPE (type))
+ 	  || C_TYPE_VARIABLE_SIZE (type))
+ 	{
+ 	  if (!C_TYPE_VARIABLE_SIZE (type))
+ 	    return false;
+ 	  if (!C_TYPE_VARIABLY_MODIFIED (type))
+ 	    return false;
+ 	}
+       /* If the element type is variably modified, then also the array.  */
+       if (C_TYPE_VARIABLY_MODIFIED (TREE_TYPE (type))
+ 	  && !C_TYPE_VARIABLY_MODIFIED (type))
+ 	return false;
+       break;
+     default:
+       break;
+     }
+   return true;
+ }
+ 
+ /* Propagate C_TYPE_VARIABLY_MODIFIED and C_TYPE_VARIABLE_SIZE
+    from a base type to a newly built derived or qualified type.  */
+ 
+ static tree
+ c_set_type_bits (tree new_type, tree old_type)
+ {
+   gcc_checking_assert (c_verify_type (old_type));
+ 
+   if (C_TYPE_VARIABLY_MODIFIED (old_type))
+     C_TYPE_VARIABLY_MODIFIED (new_type) = true;
+ 
+   if (TREE_CODE (new_type) == ARRAY_TYPE && C_TYPE_VARIABLE_SIZE (old_type))
+     {
+       C_TYPE_VARIABLY_MODIFIED (new_type) = true;
+       C_TYPE_VARIABLE_SIZE (new_type) = true;
+     }
+   return new_type;
+ }
+ 
+ /* Build a pointer type using the default pointer mode.  */
+ 
+ tree
+ c_build_pointer_type (tree to_type)
+ {
+   addr_space_t as = to_type == error_mark_node ? ADDR_SPACE_GENERIC
+ 					       : TYPE_ADDR_SPACE (to_type);
+   machine_mode pointer_mode;
+ 
+   if (as != ADDR_SPACE_GENERIC || c_default_pointer_mode == VOIDmode)
+     pointer_mode = targetm.addr_space.pointer_mode (as);
+   else
+     pointer_mode = c_default_pointer_mode;
+ 
+   return c_build_pointer_type_for_mode (to_type, pointer_mode, false);
+ }
+ 
+ /* Build a pointer type using the given mode.  */
+ 
+ tree
+ c_build_pointer_type_for_mode (tree type, machine_mode mode, bool m)
+ {
+   tree ret = build_pointer_type_for_mode (type, mode, m);
+   return c_set_type_bits (ret, type);
+ }
+ 
+ /* Build a function type.  */
+ 
+ tree
+ c_build_function_type (tree type, tree args, bool no)
+ {
+   tree ret = build_function_type (type, args, no);
+   return c_set_type_bits (ret, type);
+ }
+ 
+ /* Build an array type.  This sets typeless storage as required
+    by C2Y and C_TYPE_VARIABLY_MODIFIED and C_TYPE_VARIABLE_SIZE
+    based on the element type and domain.  */
+ 
+ tree
+ c_build_array_type (tree type, tree domain)
+ {
+   int type_quals = TYPE_QUALS (type);
+ 
+   /* Identify typeless storage as introduced in C2Y
+      and supported also in earlier language modes.  */
+   bool typeless = (char_type_p (type) && !(type_quals & TYPE_QUAL_ATOMIC))
+ 		  || (AGGREGATE_TYPE_P (type) && TYPE_TYPELESS_STORAGE (type));
+ 
+   tree ret = build_array_type (type, domain, typeless);
+ 
+   if (domain && TYPE_MAX_VALUE (domain)
+       && TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
+     {
+       C_TYPE_VARIABLE_SIZE (ret) = 1;
+       C_TYPE_VARIABLY_MODIFIED (ret) = 1;
+     }
+ 
+   return c_set_type_bits (ret, type);
+ }
+ 
+ 
+ /* Build an array type of unspecified size.  */
+ tree
+ c_build_array_type_unspecified (tree type)
+ {
+   tree upper = build2 (COMPOUND_EXPR, TREE_TYPE (size_zero_node),
+ 		       integer_zero_node, size_zero_node);
+   return c_build_array_type (type, build_index_type (upper));
+ }
+ 
+ 
+ tree
+ c_build_type_attribute_qual_variant (tree type, tree attrs, int quals)
+ {
+   tree ret = build_type_attribute_qual_variant (type, attrs, quals);
+   return c_set_type_bits (ret, type);
+ }
+ 
+ tree
+ c_build_type_attribute_variant (tree type, tree attrs)
+ {
+   return c_build_type_attribute_qual_variant (type, attrs, TYPE_QUALS (type));
+ }
+ 
+ /* Reconstruct a complex derived type.  This is used to re-construct types
+    with the vector attribute.  It is called via a langhook.  */
+ 
+ tree
+ c_reconstruct_complex_type (tree type, tree bottom)
+ {
+   tree inner, outer;
+ 
+   if (TREE_CODE (type) == POINTER_TYPE)
+     {
+       inner = c_reconstruct_complex_type (TREE_TYPE (type), bottom);
+       outer = c_build_pointer_type_for_mode (inner, TYPE_MODE (type),
+ 					     TYPE_REF_CAN_ALIAS_ALL (type));
+     }
+   else if (TREE_CODE (type) == ARRAY_TYPE)
+     {
+       inner = c_reconstruct_complex_type (TREE_TYPE (type), bottom);
+       outer = c_build_array_type (inner, TYPE_DOMAIN (type));
+ 
+       gcc_checking_assert (C_TYPE_VARIABLE_SIZE (type)
+ 			   == C_TYPE_VARIABLE_SIZE (outer));
+       gcc_checking_assert (C_TYPE_VARIABLY_MODIFIED (outer)
+ 			   == C_TYPE_VARIABLY_MODIFIED (type));
+     }
+   else if (TREE_CODE (type) == FUNCTION_TYPE)
+     {
+       inner = c_reconstruct_complex_type (TREE_TYPE (type), bottom);
+       outer = c_build_function_type (inner, TYPE_ARG_TYPES (type),
+ 				     TYPE_NO_NAMED_ARGS_STDARG_P (type));
+     }
+   else if (TREE_CODE (type) == REFERENCE_TYPE
+ 	   || TREE_CODE (type) == OFFSET_TYPE)
+     gcc_unreachable ();
+   else
+     return bottom;
+ 
+   return c_build_type_attribute_qual_variant (outer, TYPE_ATTRIBUTES (type),
+ 					      TYPE_QUALS (type));
+ }
  
  /* If NTYPE is a type of a non-variadic function with a prototype
     and OTYPE is a type of a function without a prototype and ATTRS
*************** qualify_type (tree type, tree like)
*** 364,383 ****
     the (possibly) modified ATTRS.  */
  
  static tree
! build_functype_attribute_variant (tree ntype, tree otype, tree attrs)
  {
    if (!prototype_p (otype)
        && prototype_p (ntype)
        && lookup_attribute ("format", attrs))
      {
        warning_at (input_location, OPT_Wattributes,
! 		  "%qs attribute cannot be applied to a function that "
! 		  "does not take variable arguments", "format");
        attrs = remove_attribute ("format", attrs);
      }
!   return build_type_attribute_variant (ntype, attrs);
  
  }
  /* Return the composite type of two compatible types.
  
     We assume that comptypes has already been done and returned
--- 561,617 ----
     the (possibly) modified ATTRS.  */
  
  static tree
! c_build_functype_attribute_variant (tree ntype, tree otype, tree attrs)
  {
    if (!prototype_p (otype)
        && prototype_p (ntype)
        && lookup_attribute ("format", attrs))
      {
        warning_at (input_location, OPT_Wattributes,
! 		  "%qs attribute can only be applied to variadic functions",
! 		  "format");
        attrs = remove_attribute ("format", attrs);
      }
!   return c_build_type_attribute_variant (ntype, attrs);
! 
! }
! 
! /* Given a type which could be a typedef name, make sure to return the
!    original type.  See set_underlying_type. */
! static const_tree
! c_type_original (const_tree t)
! {
!   /* It may even be a typedef of a typedef...
!      In the case of compiler-created builtin structs the TYPE_DECL
!      may be a dummy, with no DECL_ORIGINAL_TYPE.  Don't fault.  */
!   while (TYPE_NAME (t)
! 	 && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL
! 	 && DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
!     t = DECL_ORIGINAL_TYPE (TYPE_NAME (t));
!   return t;
! }
  
+ /* Return the tag for a tagged type.  */
+ tree
+ c_type_tag (const_tree t)
+ {
+   gcc_assert (RECORD_OR_UNION_TYPE_P (t) || TREE_CODE (t) == ENUMERAL_TYPE);
+   const_tree orig = c_type_original (t);
+   tree name = TYPE_NAME (orig);
+   if (!name)
+     return NULL_TREE;
+   if (TREE_CODE (name) == TYPE_DECL)
+     {
+       /* A TYPE_DECL added by add_decl_expr.  */
+       gcc_checking_assert (!DECL_NAME (name));
+       return NULL_TREE;
+     }
+   gcc_checking_assert (TREE_CODE (name) == IDENTIFIER_NODE);
+   return name;
  }
+ 
+ 
+ 
  /* Return the composite type of two compatible types.
  
     We assume that comptypes has already been done and returned
*************** composite_type_internal (tree t1, tree t
*** 439,446 ****
  	tree pointed_to_2 = TREE_TYPE (t2);
  	tree target = composite_type_internal (pointed_to_1,
  					       pointed_to_2, cache);
!         t1 = build_pointer_type_for_mode (target, TYPE_MODE (t1), false);
! 	t1 = build_type_attribute_variant (t1, attributes);
  	return qualify_type (t1, t2);
        }
  
--- 673,680 ----
  	tree pointed_to_2 = TREE_TYPE (t2);
  	tree target = composite_type_internal (pointed_to_1,
  					       pointed_to_2, cache);
! 	t1 = c_build_pointer_type_for_mode (target, TYPE_MODE (t1), false);
! 	t1 = c_build_type_attribute_variant (t1, attributes);
  	return qualify_type (t1, t2);
        }
  
*************** composite_type_internal (tree t1, tree t
*** 472,492 ****
  	d2_variable = (!d2_zero
  		       && (TREE_CODE (TYPE_MIN_VALUE (d2)) != INTEGER_CST
  			   || TREE_CODE (TYPE_MAX_VALUE (d2)) != INTEGER_CST));
! 	d1_variable = d1_variable || (d1_zero && C_TYPE_VARIABLE_SIZE (t1));
! 	d2_variable = d2_variable || (d2_zero && C_TYPE_VARIABLE_SIZE (t2));
  
  	/* Save space: see if the result is identical to one of the args.  */
! 	if (elt == TREE_TYPE (t1) && TYPE_DOMAIN (t1)
! 	    && (d2_variable || d2_zero || !d1_variable))
! 	  return build_type_attribute_variant (t1, attributes);
! 	if (elt == TREE_TYPE (t2) && TYPE_DOMAIN (t2)
! 	    && (d1_variable || d1_zero || !d2_variable))
! 	  return build_type_attribute_variant (t2, attributes);
  
  	if (elt == TREE_TYPE (t1) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
! 	  return build_type_attribute_variant (t1, attributes);
  	if (elt == TREE_TYPE (t2) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
! 	  return build_type_attribute_variant (t2, attributes);
  
  	/* Merge the element types, and have a size if either arg has
  	   one.  We may have qualifiers on the element types.  To set
--- 706,734 ----
  	d2_variable = (!d2_zero
  		       && (TREE_CODE (TYPE_MIN_VALUE (d2)) != INTEGER_CST
  			   || TREE_CODE (TYPE_MAX_VALUE (d2)) != INTEGER_CST));
! 
! 	bool use1 = TYPE_DOMAIN (t1)
! 		    && (d2_variable || d2_zero || !d1_variable);
! 	bool use2 = TYPE_DOMAIN (t2)
! 		    && (d1_variable || d1_zero || !d2_variable);
! 
! 	/* If the first is an unspecified size pick the other one.  */
! 	if (d2_variable && c_type_unspecified_p (t1))
! 	  {
! 	    gcc_assert (use1 && use2);
! 	    use1 = false;
! 	  }
  
  	/* Save space: see if the result is identical to one of the args.  */
! 	if (elt == TREE_TYPE (t1) && use1)
! 	  return c_build_type_attribute_variant (t1, attributes);
! 	if (elt == TREE_TYPE (t2) && use2)
! 	  return c_build_type_attribute_variant (t2, attributes);
  
  	if (elt == TREE_TYPE (t1) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
! 	  return c_build_type_attribute_variant (t1, attributes);
  	if (elt == TREE_TYPE (t2) && !TYPE_DOMAIN (t2) && !TYPE_DOMAIN (t1))
! 	  return c_build_type_attribute_variant (t2, attributes);
  
  	/* Merge the element types, and have a size if either arg has
  	   one.  We may have qualifiers on the element types.  To set
*************** composite_type_internal (tree t1, tree t
*** 495,507 ****
  	   back at the end.  */
  	quals = TYPE_QUALS (strip_array_types (elt));
  	unqual_elt = c_build_qualified_type (elt, TYPE_UNQUALIFIED);
! 	t1 = build_array_type (unqual_elt,
! 			       TYPE_DOMAIN ((TYPE_DOMAIN (t1)
! 					     && (d2_variable
! 						 || d2_zero
! 						 || !d1_variable))
! 					    ? t1
! 					    : t2));
  	/* Ensure a composite type involving a zero-length array type
  	   is a zero-length type not an incomplete type.  */
  	if (d1_zero && d2_zero
--- 737,751 ----
  	   back at the end.  */
  	quals = TYPE_QUALS (strip_array_types (elt));
  	unqual_elt = c_build_qualified_type (elt, TYPE_UNQUALIFIED);
! 	t1 = c_build_array_type (unqual_elt, TYPE_DOMAIN (use1 ? t1 : t2));
! 
! 	/* Check that a type which has a varying outermost dimension
! 	   got marked has having a variable size.  */
! 	bool varsize = (d1_variable && d2_variable)
! 		       || (d1_variable && !t2_complete)
! 		       || (d2_variable && !t1_complete);
! 	gcc_checking_assert (!varsize || C_TYPE_VARIABLE_SIZE (t1));
! 
  	/* Ensure a composite type involving a zero-length array type
  	   is a zero-length type not an incomplete type.  */
  	if (d1_zero && d2_zero
*************** composite_type_internal (tree t1, tree t
*** 512,526 ****
  	    TYPE_SIZE_UNIT (t1) = size_zero_node;
  	  }
  	t1 = c_build_qualified_type (t1, quals);
! 	return build_type_attribute_variant (t1, attributes);
        }
  
      case RECORD_TYPE:
      case UNION_TYPE:
        if (flag_isoc23 && !comptypes_same_p (t1, t2))
  	{
  	  gcc_checking_assert (COMPLETE_TYPE_P (t1) && COMPLETE_TYPE_P (t2));
! 	  gcc_checking_assert (!TYPE_NAME (t1) || comptypes (t1, t2));
  
  	  /* If a composite type for these two types is already under
  	     construction, return it.  */
--- 756,773 ----
  	    TYPE_SIZE_UNIT (t1) = size_zero_node;
  	  }
  	t1 = c_build_qualified_type (t1, quals);
! 	return c_build_type_attribute_variant (t1, attributes);
        }
  
      case RECORD_TYPE:
      case UNION_TYPE:
        if (flag_isoc23 && !comptypes_same_p (t1, t2))
  	{
+ 	  /* Go to the original type to get the right tag.  */
+ 	  tree tag = c_type_tag (t1);
+ 
  	  gcc_checking_assert (COMPLETE_TYPE_P (t1) && COMPLETE_TYPE_P (t2));
! 	  gcc_checking_assert (!tag || comptypes (t1, t2));
  
  	  /* If a composite type for these two types is already under
  	     construction, return it.  */
*************** composite_type_internal (tree t1, tree t
*** 533,539 ****
  
  	  tree n = make_node (code1);
  	  SET_TYPE_STRUCTURAL_EQUALITY (n);
! 	  TYPE_NAME (n) = TYPE_NAME (t1);
  
  	  struct composite_cache cache2 = { t1, t2, n, cache };
  	  cache = &cache2;
--- 780,786 ----
  
  	  tree n = make_node (code1);
  	  SET_TYPE_STRUCTURAL_EQUALITY (n);
! 	  TYPE_NAME (n) = tag;
  
  	  struct composite_cache cache2 = { t1, t2, n, cache };
  	  cache = &cache2;
*************** composite_type_internal (tree t1, tree t
*** 565,570 ****
--- 812,819 ----
  	      DECL_ATTRIBUTES (f) = DECL_ATTRIBUTES (a);
  	      C_DECL_VARIABLE_SIZE (f) = C_TYPE_VARIABLE_SIZE (t);
  
+ 	      decl_attributes (&f, DECL_ATTRIBUTES (f), 0);
+ 
  	      finish_decl (f, input_location, NULL, NULL, NULL);
  
  	      if (DECL_C_BIT_FIELD (a))
*************** composite_type_internal (tree t1, tree t
*** 611,617 ****
  	  if (attribute_list_equal (TYPE_ATTRIBUTES (t2), attributes))
  	    return t2;
  	}
!       return build_type_attribute_variant (t1, attributes);
  
      case FUNCTION_TYPE:
        /* Function types: prefer the one that specified arg types.
--- 860,866 ----
  	  if (attribute_list_equal (TYPE_ATTRIBUTES (t2), attributes))
  	    return t2;
  	}
!       return c_build_type_attribute_variant (t1, attributes);
  
      case FUNCTION_TYPE:
        /* Function types: prefer the one that specified arg types.
*************** composite_type_internal (tree t1, tree t
*** 627,649 ****
  
  	/* Save space: see if the result is identical to one of the args.  */
  	if (valtype == TREE_TYPE (t1) && !TYPE_ARG_TYPES (t2))
! 	  return build_functype_attribute_variant (t1, t2, attributes);
  	if (valtype == TREE_TYPE (t2) && !TYPE_ARG_TYPES (t1))
! 	  return build_functype_attribute_variant (t2, t1, attributes);
  
  	/* Simple way if one arg fails to specify argument types.  */
  	if (TYPE_ARG_TYPES (t1) == NULL_TREE)
  	  {
! 	    t1 = build_function_type (valtype, TYPE_ARG_TYPES (t2),
! 				      TYPE_NO_NAMED_ARGS_STDARG_P (t2));
! 	    t1 = build_type_attribute_variant (t1, attributes);
  	    return qualify_type (t1, t2);
  	 }
  	if (TYPE_ARG_TYPES (t2) == NULL_TREE)
  	  {
! 	    t1 = build_function_type (valtype, TYPE_ARG_TYPES (t1),
! 				      TYPE_NO_NAMED_ARGS_STDARG_P (t1));
! 	    t1 = build_type_attribute_variant (t1, attributes);
  	    return qualify_type (t1, t2);
  	  }
  
--- 876,898 ----
  
  	/* Save space: see if the result is identical to one of the args.  */
  	if (valtype == TREE_TYPE (t1) && !TYPE_ARG_TYPES (t2))
! 	  return c_build_functype_attribute_variant (t1, t2, attributes);
  	if (valtype == TREE_TYPE (t2) && !TYPE_ARG_TYPES (t1))
! 	  return c_build_functype_attribute_variant (t2, t1, attributes);
  
  	/* Simple way if one arg fails to specify argument types.  */
  	if (TYPE_ARG_TYPES (t1) == NULL_TREE)
  	  {
! 	    t1 = c_build_function_type (valtype, TYPE_ARG_TYPES (t2),
! 					TYPE_NO_NAMED_ARGS_STDARG_P (t2));
! 	    t1 = c_build_type_attribute_variant (t1, attributes);
  	    return qualify_type (t1, t2);
  	 }
  	if (TYPE_ARG_TYPES (t2) == NULL_TREE)
  	  {
! 	    t1 = c_build_function_type (valtype, TYPE_ARG_TYPES (t1),
! 					TYPE_NO_NAMED_ARGS_STDARG_P (t1));
! 	    t1 = c_build_type_attribute_variant (t1, attributes);
  	    return qualify_type (t1, t2);
  	  }
  
*************** composite_type_internal (tree t1, tree t
*** 738,750 ****
  	  parm_done: ;
  	  }
  
! 	t1 = build_function_type (valtype, newargs);
  	t1 = qualify_type (t1, t2);
        }
        /* FALLTHRU */
  
      default:
!       return build_type_attribute_variant (t1, attributes);
      }
  }
  
--- 987,999 ----
  	  parm_done: ;
  	  }
  
! 	t1 = c_build_function_type (valtype, newargs);
  	t1 = qualify_type (t1, t2);
        }
        /* FALLTHRU */
  
      default:
!       return c_build_type_attribute_variant (t1, attributes);
      }
  }
  
*************** common_pointer_type (tree t1, tree t2)
*** 821,828 ****
  
    target_quals |= ENCODE_QUAL_ADDR_SPACE (as_common);
  
!   t1 = build_pointer_type (c_build_qualified_type (target, target_quals));
!   return build_type_attribute_variant (t1, attributes);
  }
  
  /* Return the common type for two arithmetic types under the usual
--- 1070,1077 ----
  
    target_quals |= ENCODE_QUAL_ADDR_SPACE (as_common);
  
!   t1 = c_build_pointer_type (c_build_qualified_type (target, target_quals));
!   return c_build_type_attribute_variant (t1, attributes);
  }
  
  /* Return the common type for two arithmetic types under the usual
*************** c_common_type (tree t1, tree t2)
*** 854,866 ****
    if (TYPE_ATTRIBUTES (t1) != NULL_TREE)
      {
        tree attrs = affects_type_identity_attributes (TYPE_ATTRIBUTES (t1));
!       t1 = build_type_attribute_variant (t1, attrs);
      }
  
    if (TYPE_ATTRIBUTES (t2) != NULL_TREE)
      {
        tree attrs = affects_type_identity_attributes (TYPE_ATTRIBUTES (t2));
!       t2 = build_type_attribute_variant (t2, attrs);
      }
  
    /* Save time if the two types are the same.  */
--- 1103,1115 ----
    if (TYPE_ATTRIBUTES (t1) != NULL_TREE)
      {
        tree attrs = affects_type_identity_attributes (TYPE_ATTRIBUTES (t1));
!       t1 = c_build_type_attribute_variant (t1, attrs);
      }
  
    if (TYPE_ATTRIBUTES (t2) != NULL_TREE)
      {
        tree attrs = affects_type_identity_attributes (TYPE_ATTRIBUTES (t2));
!       t2 = c_build_type_attribute_variant (t2, attrs);
      }
  
    /* Save time if the two types are the same.  */
*************** c_common_type (tree t1, tree t2)
*** 949,954 ****
--- 1198,1208 ----
        if (TYPE_MAIN_VARIANT (t1) == dfloat128_type_node
  	  || TYPE_MAIN_VARIANT (t2) == dfloat128_type_node)
  	return dfloat128_type_node;
+       /* And prefer _Decimal128 over _Decimal64x which has in GCC's
+ 	 implementation the same mode.  */
+       else if (TYPE_MAIN_VARIANT (t1) == dfloat64x_type_node
+ 	       || TYPE_MAIN_VARIANT (t2) == dfloat64x_type_node)
+ 	return dfloat64x_type_node;
        else if (TYPE_MAIN_VARIANT (t1) == dfloat64_type_node
  	       || TYPE_MAIN_VARIANT (t2) == dfloat64_type_node)
  	return dfloat64_type_node;
*************** common_type (tree t1, tree t2)
*** 1167,1182 ****
--- 1421,1474 ----
    return c_common_type (t1, t2);
  }
  
+ 
+ 
+ /* Helper function for comptypes.  For two compatible types, return 1
+    if they pass consistency checks.  In particular we test that
+    TYPE_CANONICAL is set correctly, i.e. the two types can alias.  */
+ 
+ static bool
+ comptypes_verify (tree type1, tree type2)
+ {
+   if (type1 == type2 || !type1 || !type2
+       || TREE_CODE (type1) == ERROR_MARK || TREE_CODE (type2) == ERROR_MARK)
+     return true;
+ 
+   gcc_checking_assert (c_verify_type (type1));
+   gcc_checking_assert (c_verify_type (type2));
+ 
+   if (TYPE_CANONICAL (type1) != TYPE_CANONICAL (type2)
+       && !TYPE_STRUCTURAL_EQUALITY_P (type1)
+       && !TYPE_STRUCTURAL_EQUALITY_P (type2))
+     {
+       /* FIXME: check other types. */
+       if (RECORD_OR_UNION_TYPE_P (type1)
+ 	  || TREE_CODE (type1) == ENUMERAL_TYPE
+ 	  || TREE_CODE (type2) == ENUMERAL_TYPE)
+ 	return false;
+     }
+   return true;
+ }
+ 
  struct comptypes_data {
    bool enum_and_int_p;
    bool different_types_p;
    bool warning_needed;
    bool anon_field;
+   bool pointedto;
    bool equiv;
  
    const struct tagged_tu_seen_cache* cache;
  };
  
+ /* C implementation of compatible_types_for_indirection_note_p.  */
+ 
+ bool
+ compatible_types_for_indirection_note_p (tree type1, tree type2)
+ {
+   return comptypes (type1, type2) == 1;
+ }
+ 
  /* Return 1 if TYPE1 and TYPE2 are compatible types for assignment
     or various other operations.  Return 2 if they are compatible
     but a warning may be needed if you use them together.  */
*************** comptypes (tree type1, tree type2)
*** 1187,1192 ****
--- 1479,1486 ----
    struct comptypes_data data = { };
    bool ret = comptypes_internal (type1, type2, &data);
  
+   gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+ 
    return ret ? (data.warning_needed ? 2 : 1) : 0;
  }
  
*************** comptypes_same_p (tree type1, tree type2
*** 1200,1205 ****
--- 1494,1501 ----
    struct comptypes_data data = { };
    bool ret = comptypes_internal (type1, type2, &data);
  
+   gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+ 
    if (data.different_types_p)
      return false;
  
*************** comptypes_check_enum_int (tree type1, tr
*** 1217,1222 ****
--- 1513,1520 ----
    bool ret = comptypes_internal (type1, type2, &data);
    *enum_and_int_p = data.enum_and_int_p;
  
+   gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+ 
    return ret ? (data.warning_needed ? 2 : 1) : 0;
  }
  
*************** comptypes_check_different_types (tree ty
*** 1231,1242 ****
    bool ret = comptypes_internal (type1, type2, &data);
    *different_types_p = data.different_types_p;
  
    return ret ? (data.warning_needed ? 2 : 1) : 0;
  }
  
  
! /* Like comptypes, but if it returns nonzero for struct and union
!    types considered equivalent for aliasing purposes.  */
  
  bool
  comptypes_equiv_p (tree type1, tree type2)
--- 1529,1570 ----
    bool ret = comptypes_internal (type1, type2, &data);
    *different_types_p = data.different_types_p;
  
+   gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+ 
    return ret ? (data.warning_needed ? 2 : 1) : 0;
  }
  
  
! /* Like comptypes, but if it returns true for struct and union types
!    considered equivalent for aliasing purposes, i.e. for setting
!    TYPE_CANONICAL after completing a struct or union.
! 
!    This function must return false only for types which are not
!    compatible according to C language semantics (cf. comptypes),
!    otherwise the middle-end would make incorrect aliasing decisions.
!    It may return true for some similar types that are not compatible
!    according to those stricter rules.
! 
!    In particular, we ignore size expression in arrays so that the
!    following structs are in the same equivalence class:
! 
!    struct foo { char (*buf)[]; };
!    struct foo { char (*buf)[3]; };
!    struct foo { char (*buf)[4]; };
! 
!    We also treat unions / structs with members which are pointers to
!    structures or unions with the same tag as equivalent (if they are not
!    incompatible for other reasons).  Although incomplete structure
!    or union types are not compatible to any other type, they may become
!    compatible to different types when completed.  To avoid having to update
!    TYPE_CANONICAL at this point, we only consider the tag when forming
!    the equivalence classes.  For example, the following types with tag
!    'foo' are all considered equivalent:
! 
!    struct bar;
!    struct foo { struct bar *x };
!    struct foo { struct bar { int a; } *x };
!    struct foo { struct bar { char b; } *x };  */
  
  bool
  comptypes_equiv_p (tree type1, tree type2)
*************** comptypes_equiv_p (tree type1, tree type
*** 1245,1250 ****
--- 1573,1582 ----
    data.equiv = true;
    bool ret = comptypes_internal (type1, type2, &data);
  
+   /* check that different equivance classes are assigned only
+      to types that are not compatible.  */
+   gcc_checking_assert (ret || !comptypes (type1, type2));
+ 
    return ret;
  }
  
*************** comptypes_internal (const_tree type1, co
*** 1357,1362 ****
--- 1689,1695 ----
        /* Do not remove mode information.  */
        if (TYPE_MODE (t1) != TYPE_MODE (t2))
  	return false;
+       data->pointedto = true;
        return comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data);
  
      case FUNCTION_TYPE:
*************** comptypes_internal (const_tree type1, co
*** 1375,1381 ****
  
  	if ((d1 == NULL_TREE) != (d2 == NULL_TREE))
  	  data->different_types_p = true;
! 	/* Ignore size mismatches.  */
  	if (data->equiv)
  	  return true;
  	/* Sizes must match unless one is missing or variable.  */
--- 1708,1714 ----
  
  	if ((d1 == NULL_TREE) != (d2 == NULL_TREE))
  	  data->different_types_p = true;
! 	/* Ignore size mismatches when forming equivalence classes.  */
  	if (data->equiv)
  	  return true;
  	/* Sizes must match unless one is missing or variable.  */
*************** comptypes_internal (const_tree type1, co
*** 1391,1398 ****
  	d2_variable = (!d2_zero
  		       && (TREE_CODE (TYPE_MIN_VALUE (d2)) != INTEGER_CST
  			   || TREE_CODE (TYPE_MAX_VALUE (d2)) != INTEGER_CST));
- 	d1_variable = d1_variable || (d1_zero && C_TYPE_VARIABLE_SIZE (t1));
- 	d2_variable = d2_variable || (d2_zero && C_TYPE_VARIABLE_SIZE (t2));
  
  	if (d1_variable != d2_variable)
  	  data->different_types_p = true;
--- 1724,1729 ----
*************** tagged_types_tu_compatible_p (const_tree
*** 1496,1521 ****
  {
    tree s1, s2;
  
!   /* We have to verify that the tags of the types are the same.  This
!      is harder than it looks because this may be a typedef, so we have
!      to go look at the original type.  It may even be a typedef of a
!      typedef...
!      In the case of compiler-created builtin structs the TYPE_DECL
!      may be a dummy, with no DECL_ORIGINAL_TYPE.  Don't fault.  */
!   while (TYPE_NAME (t1)
! 	 && TREE_CODE (TYPE_NAME (t1)) == TYPE_DECL
! 	 && DECL_ORIGINAL_TYPE (TYPE_NAME (t1)))
!     t1 = DECL_ORIGINAL_TYPE (TYPE_NAME (t1));
! 
!   while (TYPE_NAME (t2)
! 	 && TREE_CODE (TYPE_NAME (t2)) == TYPE_DECL
! 	 && DECL_ORIGINAL_TYPE (TYPE_NAME (t2)))
!     t2 = DECL_ORIGINAL_TYPE (TYPE_NAME (t2));
! 
!   if (TYPE_NAME (t1) != TYPE_NAME (t2))
      return false;
  
!   if (!data->anon_field && NULL_TREE == TYPE_NAME (t1))
      return false;
  
    if (!data->anon_field && TYPE_STUB_DECL (t1) != TYPE_STUB_DECL (t2))
--- 1827,1844 ----
  {
    tree s1, s2;
  
!   if (c_type_tag (t1) != c_type_tag (t2))
      return false;
  
!   /* When forming equivalence classes for TYPE_CANONICAL in C23, we treat
!      structs with the same tag as equivalent, but only when they are targets
!      of pointers inside other structs.  */
!   if (data->equiv && data->pointedto)
!     return true;
! 
!   /* Different types without tag are incompatible except as an anonymous
!      field or when forming equivalence classes for TYPE_CANONICAL.  */
!   if (!data->anon_field && !data->equiv && NULL_TREE == c_type_tag (t1))
      return false;
  
    if (!data->anon_field && TYPE_STUB_DECL (t1) != TYPE_STUB_DECL (t2))
*************** tagged_types_tu_compatible_p (const_tree
*** 1530,1535 ****
--- 1853,1861 ----
  	  != TYPE_REVERSE_STORAGE_ORDER (t2)))
      return false;
  
+   if (TYPE_USER_ALIGN (t1) != TYPE_USER_ALIGN (t2))
+     data->different_types_p = true;
+ 
    /* For types already being looked at in some active
       invocation of this function, assume compatibility.
       The cache is built as a linked list on the stack
*************** tagged_types_tu_compatible_p (const_tree
*** 1593,1601 ****
  	if (list_length (TYPE_FIELDS (t1)) != list_length (TYPE_FIELDS (t2)))
  	  return false;
  
- 	if (data->equiv && (C_TYPE_VARIABLE_SIZE (t1) || C_TYPE_VARIABLE_SIZE (t2)))
- 	  return false;
- 
  	for (s1 = TYPE_FIELDS (t1), s2 = TYPE_FIELDS (t2);
  	     s1 && s2;
  	     s1 = DECL_CHAIN (s1), s2 = DECL_CHAIN (s2))
--- 1919,1924 ----
*************** tagged_types_tu_compatible_p (const_tree
*** 1603,1618 ****
  	    gcc_assert (TREE_CODE (s1) == FIELD_DECL);
  	    gcc_assert (TREE_CODE (s2) == FIELD_DECL);
  
  	    if (DECL_NAME (s1) != DECL_NAME (s2))
  	      return false;
  
  	    if (DECL_ALIGN (s1) != DECL_ALIGN (s2))
  	      return false;
  
  	    data->anon_field = !DECL_NAME (s1);
  
  	    data->cache = &entry;
! 	    if (!comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data))
  	      return false;
  
  	    tree st1 = TYPE_SIZE (TREE_TYPE (s1));
--- 1926,1963 ----
  	    gcc_assert (TREE_CODE (s1) == FIELD_DECL);
  	    gcc_assert (TREE_CODE (s2) == FIELD_DECL);
  
+ 	    tree ft1 = TREE_TYPE (s1);
+ 	    tree ft2 = TREE_TYPE (s2);
+ 
  	    if (DECL_NAME (s1) != DECL_NAME (s2))
  	      return false;
  
  	    if (DECL_ALIGN (s1) != DECL_ALIGN (s2))
  	      return false;
  
+ 	    if (DECL_C_BIT_FIELD (s1) != DECL_C_BIT_FIELD (s2))
+ 	       return false;
+ 
+ 	    if (DECL_C_BIT_FIELD (s1))
+ 	      {
+ 		if (!tree_int_cst_equal (DECL_SIZE (s1), DECL_SIZE (s2)))
+ 		  return false;
+ 
+ 		ft1 = DECL_BIT_FIELD_TYPE (s1);
+ 		ft2 = DECL_BIT_FIELD_TYPE (s2);
+ 	      }
+ 
+ 	    if (TREE_CODE (ft1) == ERROR_MARK || TREE_CODE (ft2) == ERROR_MARK)
+ 	      return false;
+ 
  	    data->anon_field = !DECL_NAME (s1);
+ 	    data->pointedto = false;
  
+ 	    const struct tagged_tu_seen_cache *cache = data->cache;
  	    data->cache = &entry;
! 	    bool ret = comptypes_internal (ft1, ft2, data);
! 	    data->cache = cache;
! 	    if (!ret)
  	      return false;
  
  	    tree st1 = TYPE_SIZE (TREE_TYPE (s1));
*************** tagged_types_tu_compatible_p (const_tree
*** 1623,1628 ****
--- 1968,2005 ----
  		&& st2 && TREE_CODE (st2) == INTEGER_CST
  		&& !tree_int_cst_equal (st1, st2))
  	     return false;
+ 
+ 	    tree counted_by1 = lookup_attribute ("counted_by",
+ 						 DECL_ATTRIBUTES (s1));
+ 	    tree counted_by2 = lookup_attribute ("counted_by",
+ 						 DECL_ATTRIBUTES (s2));
+ 	    /* If there is no counted_by attribute for both fields.  */
+ 	    if (!counted_by1 && !counted_by2)
+ 	      continue;
+ 
+ 	    /* If only one field has counted_by attribute.  */
+ 	    if ((counted_by1 && !counted_by2)
+ 		|| (!counted_by1 && counted_by2))
+ 	      return false;
+ 
+ 	    /* Now both s1 and s2 have counted_by attributes, check
+ 	       whether they are the same.  */
+ 
+ 	    tree counted_by_field1
+ 	      = lookup_field (t1, TREE_VALUE (TREE_VALUE (counted_by1)));
+ 	    tree counted_by_field2
+ 	      = lookup_field (t2, TREE_VALUE (TREE_VALUE (counted_by2)));
+ 
+ 	    gcc_assert (counted_by_field1 && counted_by_field2);
+ 
+ 	    while (TREE_CHAIN (counted_by_field1))
+ 	      counted_by_field1 = TREE_CHAIN (counted_by_field1);
+ 	    while (TREE_CHAIN (counted_by_field2))
+ 	      counted_by_field2 = TREE_CHAIN (counted_by_field2);
+ 
+ 	    if (DECL_NAME (TREE_VALUE (counted_by_field1))
+ 		!= DECL_NAME (TREE_VALUE (counted_by_field2)))
+ 	      return false;
  	  }
  	return true;
  
*************** array_to_pointer_conversion (location_t
*** 1891,1897 ****
  
    copy_warning (exp, orig_exp);
  
!   ptrtype = build_pointer_type (restype);
  
    if (INDIRECT_REF_P (exp))
      return convert (ptrtype, TREE_OPERAND (exp, 0));
--- 2268,2274 ----
  
    copy_warning (exp, orig_exp);
  
!   ptrtype = c_build_pointer_type (restype);
  
    if (INDIRECT_REF_P (exp))
      return convert (ptrtype, TREE_OPERAND (exp, 0));
*************** default_conversion (tree exp)
*** 2377,2384 ****
     the component is embedded within (nested) anonymous structures or
     unions, the list steps down the chain to the component.  */
  
! static tree
! lookup_field (tree type, tree component)
  {
    tree field;
  
--- 2754,2761 ----
     the component is embedded within (nested) anonymous structures or
     unions, the list steps down the chain to the component.  */
  
! tree
! lookup_field (const_tree type, tree component)
  {
    tree field;
  
*************** should_suggest_deref_p (tree datum_type)
*** 2549,2563 ****
      return false;
  }
  
  /* Make an expression to refer to the COMPONENT field of structure or
     union value DATUM.  COMPONENT is an IDENTIFIER_NODE.  LOC is the
     location of the COMPONENT_REF.  COMPONENT_LOC is the location
     of COMPONENT.  ARROW_LOC is the location of the first -> operand if
!    it is from -> operator.  */
  
  tree
  build_component_ref (location_t loc, tree datum, tree component,
! 		     location_t component_loc, location_t arrow_loc)
  {
    tree type = TREE_TYPE (datum);
    enum tree_code code = TREE_CODE (type);
--- 2926,3071 ----
      return false;
  }
  
+ /* For a SUBDATUM field of a structure or union DATUM, generate a REF to
+    the object that represents its counted_by per the attribute counted_by
+    attached to this field if it's a flexible array member field, otherwise
+    return NULL_TREE.
+    Set COUNTED_BY_TYPE to the TYPE of the counted_by field.
+    For example, if:
+ 
+     struct P {
+       int k;
+       int x[] __attribute__ ((counted_by (k)));
+     } *p;
+ 
+     for:
+     p->x
+ 
+     the ref to the object that represents its element count will be:
+ 
+     &(p->k)
+ 
+ */
+ static tree
+ build_counted_by_ref (tree datum, tree subdatum, tree *counted_by_type)
+ {
+   tree type = TREE_TYPE (datum);
+   if (!c_flexible_array_member_type_p (TREE_TYPE (subdatum)))
+     return NULL_TREE;
+ 
+   tree attr_counted_by = lookup_attribute ("counted_by",
+ 					   DECL_ATTRIBUTES (subdatum));
+   tree counted_by_ref = NULL_TREE;
+   *counted_by_type = NULL_TREE;
+   if (attr_counted_by)
+     {
+       tree field_id = TREE_VALUE (TREE_VALUE (attr_counted_by));
+       counted_by_ref
+ 	= build_component_ref (UNKNOWN_LOCATION,
+ 			       datum, field_id,
+ 			       UNKNOWN_LOCATION, UNKNOWN_LOCATION);
+       counted_by_ref = build_fold_addr_expr (counted_by_ref);
+ 
+       /* Get the TYPE of the counted_by field.  */
+       tree counted_by_field = lookup_field (type, field_id);
+       gcc_assert (counted_by_field);
+ 
+       do
+ 	{
+ 	  *counted_by_type = TREE_TYPE (TREE_VALUE (counted_by_field));
+ 	  counted_by_field = TREE_CHAIN (counted_by_field);
+ 	}
+       while (counted_by_field);
+     }
+   return counted_by_ref;
+ }
+ 
+ /* Given a COMPONENT_REF REF with the location LOC, the corresponding
+    COUNTED_BY_REF, and the COUNTED_BY_TYPE, generate an INDIRECT_REF
+    to a call to the internal function .ACCESS_WITH_SIZE.
+ 
+    REF
+ 
+    to:
+ 
+    (*.ACCESS_WITH_SIZE (REF, COUNTED_BY_REF, 1, (TYPE_OF_SIZE)0, -1,
+ 			(TYPE_OF_ARRAY *)0))
+ 
+    NOTE: The return type of this function is the POINTER type pointing
+    to the original flexible array type.
+    Then the type of the INDIRECT_REF is the original flexible array type.
+ 
+    The type of the first argument of this function is a POINTER type
+    to the original flexible array type.
+ 
+    The 4th argument of the call is a constant 0 with the TYPE of the
+    object pointed by COUNTED_BY_REF.
+ 
+    The 6th argument of the call is a constant 0 with the pointer TYPE
+    to the original flexible array type.
+ 
+   */
+ static tree
+ build_access_with_size_for_counted_by (location_t loc, tree ref,
+ 				       tree counted_by_ref,
+ 				       tree counted_by_type)
+ {
+   gcc_assert (c_flexible_array_member_type_p (TREE_TYPE (ref)));
+   /* The result type of the call is a pointer to the flexible array type.  */
+   tree result_type = c_build_pointer_type (TREE_TYPE (ref));
+   tree first_param
+     = c_fully_fold (array_to_pointer_conversion (loc, ref), false, NULL);
+   tree second_param
+     = c_fully_fold (counted_by_ref, false, NULL);
+ 
+   tree call
+     = build_call_expr_internal_loc (loc, IFN_ACCESS_WITH_SIZE,
+ 				    result_type, 6,
+ 				    first_param,
+ 				    second_param,
+ 				    build_int_cst (integer_type_node, 1),
+ 				    build_int_cst (counted_by_type, 0),
+ 				    build_int_cst (integer_type_node, -1),
+ 				    build_int_cst (result_type, 0));
+   /* Wrap the call with an INDIRECT_REF with the flexible array type.  */
+   call = build1 (INDIRECT_REF, TREE_TYPE (ref), call);
+   SET_EXPR_LOCATION (call, loc);
+   return call;
+ }
+ 
+ /* For the COMPONENT_REF ref, check whether it has a counted_by attribute,
+    if so, wrap this COMPONENT_REF with the corresponding CALL to the
+    function .ACCESS_WITH_SIZE.
+    Otherwise, return the ref itself.  */
+ 
+ tree
+ handle_counted_by_for_component_ref (location_t loc, tree ref)
+ {
+   gcc_assert (TREE_CODE (ref) == COMPONENT_REF);
+   tree datum = TREE_OPERAND (ref, 0);
+   tree subdatum = TREE_OPERAND (ref, 1);
+   tree counted_by_type = NULL_TREE;
+   tree counted_by_ref = build_counted_by_ref (datum, subdatum,
+ 					      &counted_by_type);
+   if (counted_by_ref)
+     ref = build_access_with_size_for_counted_by (loc, ref,
+ 						 counted_by_ref,
+ 						 counted_by_type);
+   return ref;
+ }
+ 
  /* Make an expression to refer to the COMPONENT field of structure or
     union value DATUM.  COMPONENT is an IDENTIFIER_NODE.  LOC is the
     location of the COMPONENT_REF.  COMPONENT_LOC is the location
     of COMPONENT.  ARROW_LOC is the location of the first -> operand if
!    it is from -> operator.
!    If HANDLE_COUNTED_BY is true, check the counted_by attribute and generate
!    a call to .ACCESS_WITH_SIZE.  Otherwise, ignore the attribute.  */
  
  tree
  build_component_ref (location_t loc, tree datum, tree component,
! 		     location_t component_loc, location_t arrow_loc,
! 		     bool handle_counted_by)
  {
    tree type = TREE_TYPE (datum);
    enum tree_code code = TREE_CODE (type);
*************** build_component_ref (location_t loc, tre
*** 2629,2634 ****
--- 3137,3144 ----
  	  int quals;
  	  tree subtype;
  	  bool use_datum_quals;
+ 	  /* Do not handle counted_by when in typeof and alignof operator.  */
+ 	  handle_counted_by = handle_counted_by && !in_typeof && !in_alignof;
  
  	  if (TREE_TYPE (subdatum) == error_mark_node)
  	    return error_mark_node;
*************** build_component_ref (location_t loc, tre
*** 2648,2653 ****
--- 3158,3167 ----
  	  ref = build3 (COMPONENT_REF, subtype, datum, subdatum,
  			NULL_TREE);
  	  SET_EXPR_LOCATION (ref, loc);
+ 
+ 	  if (handle_counted_by)
+ 	    ref = handle_counted_by_for_component_ref (loc, ref);
+ 
  	  if (TREE_READONLY (subdatum)
  	      || (use_datum_quals && TREE_READONLY (datum)))
  	    TREE_READONLY (ref) = 1;
*************** build_omp_array_section (location_t loc,
*** 2961,2967 ****
  
        gcc_assert (!error_operand_p (idxtype));
  
!       sectype = build_array_type (eltype, idxtype);
      }
  
    return build3_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length);
--- 3475,3481 ----
  
        gcc_assert (!error_operand_p (idxtype));
  
!       sectype = c_build_array_type (eltype, idxtype);
      }
  
    return build3_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length);
*************** build_function_call (location_t loc, tre
*** 3244,3257 ****
    return ret;
  }
  
! /* Give a note about the location of the declaration of DECL.  */
  
  static void
! inform_declaration (tree decl)
  {
    if (decl && (TREE_CODE (decl) != FUNCTION_DECL
  	       || !DECL_IS_UNDECLARED_BUILTIN (decl)))
      inform (DECL_SOURCE_LOCATION (decl), "declared here");
  }
  
  /* Build a function call to function FUNCTION with parameters PARAMS.
--- 3758,3795 ----
    return ret;
  }
  
! /* Give a note about the location of the declaration of DECL,
!    or, failing that, a pertinent declaration for FUNCTION_EXPR.  */
  
  static void
! inform_declaration (tree decl, tree function_expr)
  {
    if (decl && (TREE_CODE (decl) != FUNCTION_DECL
  	       || !DECL_IS_UNDECLARED_BUILTIN (decl)))
      inform (DECL_SOURCE_LOCATION (decl), "declared here");
+   else if (function_expr)
+     switch (TREE_CODE (function_expr))
+       {
+       default:
+ 	break;
+       case COMPONENT_REF:
+ 	/* Show the decl of the pertinent field (e.g. for callback
+ 	   fields in a struct.  */
+ 	{
+ 	  tree field_decl = TREE_OPERAND (function_expr, 1);
+ 	  if (location_t loc = DECL_SOURCE_LOCATION (field_decl))
+ 	    inform (loc, "declared here");
+ 	}
+ 	break;
+       }
+ }
+ 
+ /* C implementation of callback for use when checking param types.  */
+ 
+ static bool
+ comp_parm_types (tree wanted_type, tree actual_type)
+ {
+   return comptypes (wanted_type, actual_type);
  }
  
  /* Build a function call to function FUNCTION with parameters PARAMS.
*************** build_function_call_vec (location_t loc,
*** 3289,3295 ****
        fundecl = function;
        if (!orig_fundecl)
  	orig_fundecl = fundecl;
!       /* Atomic functions have type checking/casting already done.  They are 
  	 often rewritten and don't match the original parameter list.  */
        if (name && startswith (IDENTIFIER_POINTER (name), "__atomic_"))
          origtypes = NULL;
--- 3827,3833 ----
        fundecl = function;
        if (!orig_fundecl)
  	orig_fundecl = fundecl;
!       /* Atomic functions have type checking/casting already done.  They are
  	 often rewritten and don't match the original parameter list.  */
        if (name && startswith (IDENTIFIER_POINTER (name), "__atomic_"))
          origtypes = NULL;
*************** build_function_call_vec (location_t loc,
*** 3318,3327 ****
  		  function);
        else if (DECL_P (function))
  	{
  	  error_at (loc,
  		    "called object %qD is not a function or function pointer",
  		    function);
! 	  inform_declaration (function);
  	}
        else
  	error_at (loc,
--- 3856,3866 ----
  		  function);
        else if (DECL_P (function))
  	{
+ 	  auto_diagnostic_group d;
  	  error_at (loc,
  		    "called object %qD is not a function or function pointer",
  		    function);
! 	  inform_declaration (function, NULL_TREE);
  	}
        else
  	error_at (loc,
*************** build_function_call_vec (location_t loc,
*** 3339,3345 ****
    /* Convert the parameters to the types declared in the
       function prototype, or apply default promotions.  */
  
!   nargs = convert_arguments (loc, arg_loc, TYPE_ARG_TYPES (fntype), params,
  			     origtypes, function, fundecl);
    if (nargs < 0)
      return error_mark_node;
--- 3878,3884 ----
    /* Convert the parameters to the types declared in the
       function prototype, or apply default promotions.  */
  
!   nargs = convert_arguments (loc, arg_loc, fntype, params,
  			     origtypes, function, fundecl);
    if (nargs < 0)
      return error_mark_node;
*************** build_function_call_vec (location_t loc,
*** 3373,3379 ****
  
    /* Check that the arguments to the function are valid.  */
    bool warned_p = check_function_arguments (loc, fundecl, fntype,
! 					    nargs, argarray, &arg_loc);
  
    if (TYPE_QUALS (return_type) != TYPE_UNQUALIFIED
        && !VOID_TYPE_P (return_type))
--- 3912,3919 ----
  
    /* Check that the arguments to the function are valid.  */
    bool warned_p = check_function_arguments (loc, fundecl, fntype,
! 					    nargs, argarray, &arg_loc,
! 					    comp_parm_types);
  
    if (TYPE_QUALS (return_type) != TYPE_UNQUALIFIED
        && !VOID_TYPE_P (return_type))
*************** convert_argument (location_t ploc, tree
*** 3633,3641 ****
  }
  
  /* Convert the argument expressions in the vector VALUES
!    to the types in the list TYPELIST.
  
!    If TYPELIST is exhausted, or when an element has NULL as its type,
     perform the default conversions.
  
     ORIGTYPES is the original types of the expressions in VALUES.  This
--- 4173,4181 ----
  }
  
  /* Convert the argument expressions in the vector VALUES
!    to the types in the list TYPE_ARG_TYPES (FNTYPE).
  
!    If the list is exhausted, or when an element has NULL as its type,
     perform the default conversions.
  
     ORIGTYPES is the original types of the expressions in VALUES.  This
*************** convert_argument (location_t ploc, tree
*** 3654,3663 ****
     failure.  */
  
  static int
! convert_arguments (location_t loc, vec<location_t> arg_loc, tree typelist,
  		   vec<tree, va_gc> *values, vec<tree, va_gc> *origtypes,
  		   tree function, tree fundecl)
  {
    unsigned int parmnum;
    bool error_args = false;
    const bool type_generic = fundecl
--- 4194,4204 ----
     failure.  */
  
  static int
! convert_arguments (location_t loc, vec<location_t> arg_loc, tree fntype,
  		   vec<tree, va_gc> *values, vec<tree, va_gc> *origtypes,
  		   tree function, tree fundecl)
  {
+   tree typelist = TYPE_ARG_TYPES (fntype);
    unsigned int parmnum;
    bool error_args = false;
    const bool type_generic = fundecl
*************** convert_arguments (location_t loc, vec<l
*** 3773,3795 ****
  
        if (type == void_type_node)
  	{
  	  if (selector)
! 	    error_at (loc, "too many arguments to method %qE", selector);
  	  else
! 	    error_at (loc, "too many arguments to function %qE", function);
! 	  inform_declaration (fundecl);
  	  return error_args ? -1 : (int) parmnum;
  	}
  
        if (builtin_type == void_type_node)
  	{
  	  if (warning_at (loc, OPT_Wbuiltin_declaration_mismatch,
  			  "too many arguments to built-in function %qE "
  			  "expecting %d", function, parmnum))
! 	    inform_declaration (fundecl);
  	  builtin_typetail = NULL_TREE;
  	}
  
        if (selector && argnum > 2)
  	{
  	  rname = selector;
--- 4314,4365 ----
  
        if (type == void_type_node)
  	{
+ 	  auto_diagnostic_group d;
+ 	  int num_expected = parmnum;
+ 	  int num_actual = values->length ();
+ 	  gcc_rich_location rich_loc (loc);
+ 	  if (ploc != input_location)
+ 	    rich_loc.add_range (ploc);
  	  if (selector)
! 	    error_at (&rich_loc,
! 		      "too many arguments to method %qE; expected %i, have %i",
! 		      selector, num_expected, num_actual);
  	  else
! 	    error_at (&rich_loc,
! 		      "too many arguments to function %qE; expected %i, have %i",
! 		      function, num_expected, num_actual);
! 	  inform_declaration (fundecl, function);
  	  return error_args ? -1 : (int) parmnum;
  	}
  
        if (builtin_type == void_type_node)
  	{
+ 	  auto_diagnostic_group d;
  	  if (warning_at (loc, OPT_Wbuiltin_declaration_mismatch,
  			  "too many arguments to built-in function %qE "
  			  "expecting %d", function, parmnum))
! 	    inform_declaration (fundecl, function);
  	  builtin_typetail = NULL_TREE;
  	}
  
+       if (!typetail && parmnum == 0 && !TYPE_NO_NAMED_ARGS_STDARG_P (fntype))
+ 	{
+ 	  auto_diagnostic_group d;
+ 	  bool warned;
+ 	  if (selector)
+ 	    warned = warning_at (loc, OPT_Wdeprecated_non_prototype,
+ 				 "ISO C23 does not allow arguments"
+ 				 " for method %qE declared without parameters",
+ 				 function);
+ 	  else
+ 	    warned = warning_at (loc, OPT_Wdeprecated_non_prototype,
+ 				 "ISO C23 does not allow arguments"
+ 				 " for function %qE declared without parameters",
+ 				 function);
+ 	  if (warned)
+ 	    inform_declaration (fundecl, function);
+ 	}
+ 
        if (selector && argnum > 2)
  	{
  	  rname = selector;
*************** convert_arguments (location_t loc, vec<l
*** 3917,3924 ****
  
    if (typetail != NULL_TREE && TREE_VALUE (typetail) != void_type_node)
      {
!       error_at (loc, "too few arguments to function %qE", function);
!       inform_declaration (fundecl);
        return -1;
      }
  
--- 4487,4519 ----
  
    if (typetail != NULL_TREE && TREE_VALUE (typetail) != void_type_node)
      {
!       /* Not enough args.
! 	 Determine minimum number of arguments required.  */
!       int min_expected_num = 0;
!       bool at_least_p = false;
!       tree iter = typelist;
!       while (true)
! 	{
! 	  if (!iter)
! 	    {
! 	      /* Variadic arguments; stop iterating.  */
! 	      at_least_p = true;
! 	      break;
! 	    }
! 	  if (iter == void_list_node)
! 	    /* End of arguments; stop iterating.  */
! 	    break;
! 	  ++min_expected_num;
! 	  iter = TREE_CHAIN (iter);
! 	}
!       auto_diagnostic_group d;
!       int actual_num = vec_safe_length (values);
!       error_at (loc,
! 		at_least_p
! 		? G_("too few arguments to function %qE; expected at least %i, have %i")
! 		: G_("too few arguments to function %qE; expected %i, have %i"),
! 		function, min_expected_num, actual_num);
!       inform_declaration (fundecl, function);
        return -1;
      }
  
*************** convert_arguments (location_t loc, vec<l
*** 3928,3937 ****
        for (tree t = builtin_typetail; t; t = TREE_CHAIN (t))
  	++nargs;
  
        if (warning_at (loc, OPT_Wbuiltin_declaration_mismatch,
  		      "too few arguments to built-in function %qE "
  		      "expecting %u", function, nargs - 1))
! 	inform_declaration (fundecl);
      }
  
    return error_args ? -1 : (int) parmnum;
--- 4523,4533 ----
        for (tree t = builtin_typetail; t; t = TREE_CHAIN (t))
  	++nargs;
  
+       auto_diagnostic_group d;
        if (warning_at (loc, OPT_Wbuiltin_declaration_mismatch,
  		      "too few arguments to built-in function %qE "
  		      "expecting %u", function, nargs - 1))
! 	inform_declaration (fundecl, function);
      }
  
    return error_args ? -1 : (int) parmnum;
*************** parser_build_binary_op (location_t locat
*** 4138,4143 ****
--- 4734,4758 ----
  		"comparison with string literal results in unspecified "
  		"behavior");
  
+   if (warn_zero_as_null_pointer_constant
+       && c_inhibit_evaluation_warnings == 0
+       && TREE_CODE_CLASS (code) == tcc_comparison)
+     {
+       if ((TREE_CODE (type1) == POINTER_TYPE
+ 	   || TREE_CODE (type1) == NULLPTR_TYPE)
+ 	  && TREE_CODE (type2) == INTEGER_TYPE
+ 	  && null_pointer_constant_p (arg2.value))
+ 	warning_at (arg2.get_location(), OPT_Wzero_as_null_pointer_constant,
+ 		    "zero as null pointer constant");
+ 
+       if ((TREE_CODE (type2) == POINTER_TYPE
+ 	   || TREE_CODE (type2) == NULLPTR_TYPE)
+ 	  && TREE_CODE (type1) == INTEGER_TYPE
+ 	  && null_pointer_constant_p (arg1.value))
+ 	warning_at (arg1.get_location(), OPT_Wzero_as_null_pointer_constant,
+ 		    "zero as null pointer constant");
+     }
+ 
    if (warn_array_compare
        && TREE_CODE_CLASS (code) == tcc_comparison
        && TREE_CODE (type1) == ARRAY_TYPE
*************** pointer_diff (location_t loc, tree op0,
*** 4223,4230 ****
    if (current_function_decl != NULL_TREE
        && sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
      {
!       op0 = save_expr (op0);
!       op1 = save_expr (op1);
  
        tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_SUBTRACT);
        *instrument_expr = build_call_expr_loc (loc, tt, 2, op0, op1);
--- 4838,4845 ----
    if (current_function_decl != NULL_TREE
        && sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
      {
!       op0 = save_expr (c_fully_fold (op0, false, NULL));
!       op1 = save_expr (c_fully_fold (op1, false, NULL));
  
        tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_SUBTRACT);
        *instrument_expr = build_call_expr_loc (loc, tt, 2, op0, op1);
*************** cas_loop:
*** 4557,4569 ****
    rhs = convert_for_assignment (loc, UNKNOWN_LOCATION, nonatomic_lhs_type,
  				rhs, NULL_TREE, ic_assign, false, NULL_TREE,
  				NULL_TREE, 0);
!   if (rhs != error_mark_node)
!     {
!       rhs = build4 (TARGET_EXPR, nonatomic_lhs_type, newval, rhs, NULL_TREE,
! 		    NULL_TREE);
!       SET_EXPR_LOCATION (rhs, loc);
!       add_stmt (rhs);
!     }
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, SEQ_CST, SEQ_CST))
         goto done;  */
--- 5172,5187 ----
    rhs = convert_for_assignment (loc, UNKNOWN_LOCATION, nonatomic_lhs_type,
  				rhs, NULL_TREE, ic_assign, false, NULL_TREE,
  				NULL_TREE, 0);
!   /* The temporary variable for NEWVAL is only gimplified correctly (in
!      particular, given a DECL_CONTEXT) if used in a TARGET_EXPR.  To avoid
!      subsequent ICEs in nested function processing after an error, ensure such
!      a TARGET_EXPR is built even after an error.  */
!   if (rhs == error_mark_node)
!     rhs = old;
!   rhs = build4 (TARGET_EXPR, nonatomic_lhs_type, newval, rhs, NULL_TREE,
! 		NULL_TREE);
!   SET_EXPR_LOCATION (rhs, loc);
!   add_stmt (rhs);
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, SEQ_CST, SEQ_CST))
         goto done;  */
*************** build_unary_op (location_t location, enu
*** 4857,4864 ****
  	{
  	  tree real, imag;
  
! 	  pedwarn (location, OPT_Wpedantic,
! 		   "ISO C does not support %<++%> and %<--%> on complex types");
  
  	  if (!atomic_op)
  	    {
--- 5475,5483 ----
  	{
  	  tree real, imag;
  
! 	  pedwarn_c23 (location, OPT_Wpedantic,
! 		       "ISO C does not support %<++%> and %<--%> on complex "
! 		       "types before C2Y");
  
  	  if (!atomic_op)
  	    {
*************** build_unary_op (location_t location, enu
*** 5051,5057 ****
  	  goto return_build_unary_op;
  	}
  
!       /* Ordinary case; arg is a COMPONENT_REF or a decl.  */
        argtype = TREE_TYPE (arg);
  
        /* If the lvalue is const or volatile, merge that into the type
--- 5670,5680 ----
  	  goto return_build_unary_op;
  	}
  
!       /* Ordinary case; arg is a COMPONENT_REF or a decl, or a call to
! 	 .ACCESS_WITH_SIZE.  */
!       if (is_access_with_size_p (arg))
! 	arg = TREE_OPERAND (TREE_OPERAND (CALL_EXPR_ARG (arg, 0), 0), 0);
! 
        argtype = TREE_TYPE (arg);
  
        /* If the lvalue is const or volatile, merge that into the type
*************** build_unary_op (location_t location, enu
*** 5113,5119 ****
        gcc_assert (TREE_CODE (arg) != COMPONENT_REF
  		  || !DECL_C_BIT_FIELD (TREE_OPERAND (arg, 1)));
  
!       argtype = build_pointer_type (argtype);
  
        /* ??? Cope with user tricks that amount to offsetof.  Delete this
  	 when we have proper support for integer constant expressions.  */
--- 5736,5742 ----
        gcc_assert (TREE_CODE (arg) != COMPONENT_REF
  		  || !DECL_C_BIT_FIELD (TREE_OPERAND (arg, 1)));
  
!       argtype = c_build_pointer_type (argtype);
  
        /* ??? Cope with user tricks that amount to offsetof.  Delete this
  	 when we have proper support for integer constant expressions.  */
*************** lvalue_p (const_tree ref)
*** 5198,5203 ****
--- 5821,5829 ----
      case BIND_EXPR:
        return TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE;
  
+     case CALL_EXPR:
+       return is_access_with_size_p (ref);
+ 
      default:
        return false;
      }
*************** type_or_builtin_type (tree expr, tree *b
*** 5389,5395 ****
      return type;
  
    if ((*bltin = builtin_decl_implicit (code)))
!     type = build_pointer_type (TREE_TYPE (*bltin));
  
    return type;
  }
--- 6015,6021 ----
      return type;
  
    if ((*bltin = builtin_decl_implicit (code)))
!     type = c_build_pointer_type (TREE_TYPE (*bltin));
  
    return type;
  }
*************** build_conditional_expr (location_t colon
*** 5495,5500 ****
--- 6121,6140 ----
  		    t1, t2);
      }
  
+   if (warn_zero_as_null_pointer_constant
+       && c_inhibit_evaluation_warnings == 0)
+     {
+       if ((code1 == POINTER_TYPE || code1 == NULLPTR_TYPE)
+ 	  && code2 == INTEGER_TYPE && null_pointer_constant_p (orig_op2))
+ 	warning_at (op2_loc, OPT_Wzero_as_null_pointer_constant,
+ 		    "zero as null pointer constant");
+ 
+       if ((code2 == POINTER_TYPE || code2 == NULLPTR_TYPE)
+ 	  && code1 == INTEGER_TYPE && null_pointer_constant_p (orig_op1))
+ 	warning_at (op1_loc, OPT_Wzero_as_null_pointer_constant,
+ 		    "zero as null pointer constant");
+     }
+ 
    /* Quickly detect the usual case where op1 and op2 have the same type
       after promotion.  */
    if (TYPE_MAIN_VARIANT (type1) == TYPE_MAIN_VARIANT (type2))
*************** build_conditional_expr (location_t colon
*** 5674,5680 ****
  	  /* for array, use qualifiers of element type */
  	  if (flag_isoc23)
  	    t2 = t2_stripped;
! 	  result_type = build_pointer_type (qualify_type (t1, t2));
  	}
        /* Objective-C pointer comparisons are a bit more lenient.  */
        else if (objc_have_common_type (type1, type2, -3, NULL_TREE))
--- 6314,6320 ----
  	  /* for array, use qualifiers of element type */
  	  if (flag_isoc23)
  	    t2 = t2_stripped;
! 	  result_type = c_build_pointer_type (qualify_type (t1, t2));
  	}
        /* Objective-C pointer comparisons are a bit more lenient.  */
        else if (objc_have_common_type (type1, type2, -3, NULL_TREE))
*************** build_conditional_expr (location_t colon
*** 5697,5704 ****
  	      inform (op1_loc, "first expression has type %qT", type1);
  	      inform (op2_loc, "second expression has type %qT", type2);
  	    }
! 	  result_type = build_pointer_type
! 			  (build_qualified_type (void_type_node, qual));
  	}
      }
    else if (code1 == POINTER_TYPE
--- 6337,6344 ----
  	      inform (op1_loc, "first expression has type %qT", type1);
  	      inform (op2_loc, "second expression has type %qT", type2);
  	    }
! 	  result_type = c_build_pointer_type
! 			  (c_build_qualified_type (void_type_node, qual));
  	}
      }
    else if (code1 == POINTER_TYPE
*************** maybe_warn_nodiscard (location_t loc, tr
*** 5858,5863 ****
--- 6498,6504 ----
        if (args)
  	args = TREE_VALUE (args);
        auto_diagnostic_group d;
+       auto_urlify_attributes sentinel;
        int warned;
        if (args)
  	warned = warning_at (loc, OPT_Wunused_result,
*************** maybe_warn_nodiscard (location_t loc, tr
*** 5880,5885 ****
--- 6521,6527 ----
        if (args)
  	args = TREE_VALUE (args);
        auto_diagnostic_group d;
+       auto_urlify_attributes sentinel;
        int warned;
        if (args)
  	warned = warning_at (loc, OPT_Wunused_result,
*************** build_c_cast (location_t loc, tree type,
*** 6223,6229 ****
  	  t = build_constructor_single (type, field, t);
  	  if (!maybe_const)
  	    t = c_wrap_maybe_const (t, true);
! 	  t = digest_init (loc, type, t,
  			   NULL_TREE, false, false, false, true, false, false);
  	  TREE_CONSTANT (t) = TREE_CONSTANT (value);
  	  return t;
--- 6865,6871 ----
  	  t = build_constructor_single (type, field, t);
  	  if (!maybe_const)
  	    t = c_wrap_maybe_const (t, true);
! 	  t = digest_init (loc, field, type, t,
  			   NULL_TREE, false, false, false, true, false, false);
  	  TREE_CONSTANT (t) = TREE_CONSTANT (value);
  	  return t;
*************** c_cast_expr (location_t loc, struct c_ty
*** 6461,6466 ****
--- 7103,7111 ----
      return error_mark_node;
  
    ret = build_c_cast (loc, type, expr);
+   if (ret == error_mark_node)
+     return error_mark_node;
+ 
    if (type_expr)
      {
        bool inner_expr_const = true;
*************** build_modify_expr (location_t location,
*** 6510,6515 ****
--- 7155,7161 ----
  
    /* Types that aren't fully specified cannot be used in assignments.  */
    lhs = require_complete_type (location, lhs);
+   rhs = require_complete_type (location, rhs);
  
    /* Avoid duplicate error messages from operands that had errors.  */
    if (TREE_CODE (lhs) == ERROR_MARK || TREE_CODE (rhs) == ERROR_MARK)
*************** build_modify_expr (location_t location,
*** 6649,6656 ****
      }
  
    /* Remove qualifiers.  */
!   lhstype = build_qualified_type (lhstype, TYPE_UNQUALIFIED);
!   olhstype = build_qualified_type (olhstype, TYPE_UNQUALIFIED);
  
    /* Convert new value to destination type.  Fold it first, then
       restore any excess precision information, for the sake of
--- 7295,7302 ----
      }
  
    /* Remove qualifiers.  */
!   lhstype = c_build_qualified_type (lhstype, TYPE_UNQUALIFIED);
!   olhstype = c_build_qualified_type (olhstype, TYPE_UNQUALIFIED);
  
    /* Convert new value to destination type.  Fold it first, then
       restore any excess precision information, for the sake of
*************** error_init (location_t loc, const char *
*** 6852,6858 ****
  
  /* Used to implement pedwarn_init and permerror_init.  */
  
! static void ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_permerror_init (location_t loc, int opt, const char *gmsgid,
  			va_list *ap, diagnostic_t kind)
  {
--- 7498,7504 ----
  
  /* Used to implement pedwarn_init and permerror_init.  */
  
! static bool ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_permerror_init (location_t loc, int opt, const char *gmsgid,
  			va_list *ap, diagnostic_t kind)
  {
*************** pedwarn_permerror_init (location_t loc,
*** 6862,6870 ****
    location_t exploc = expansion_point_location_if_in_system_header (loc);
    auto_diagnostic_group d;
    bool warned = emit_diagnostic_valist (kind, exploc, opt, gmsgid, ap);
!   char *ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
!   if (*ofwhat && warned)
!     inform (exploc, "(near initialization for %qs)", ofwhat);
  }
  
  /* Issue a pedantic warning for a bad initializer component.  OPT is
--- 7508,7520 ----
    location_t exploc = expansion_point_location_if_in_system_header (loc);
    auto_diagnostic_group d;
    bool warned = emit_diagnostic_valist (kind, exploc, opt, gmsgid, ap);
!   if (warned)
!     {
!       char *ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
!       if (*ofwhat)
! 	inform (exploc, "(near initialization for %qs)", ofwhat);
!     }
!   return warned;
  }
  
  /* Issue a pedantic warning for a bad initializer component.  OPT is
*************** pedwarn_permerror_init (location_t loc,
*** 6872,6895 ****
     it is unconditionally given.  GMSGID identifies the message.  The
     component name is taken from the spelling stack.  */
  
! static void ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_init (location_t loc, int opt, const char *gmsgid, ...)
  {
    va_list ap;
    va_start (ap, gmsgid);
!   pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PEDWARN);
    va_end (ap);
  }
  
  /* Like pedwarn_init, but issue a permerror.  */
  
! static void ATTRIBUTE_GCC_DIAG (3,0)
  permerror_init (location_t loc, int opt, const char *gmsgid, ...)
  {
    va_list ap;
    va_start (ap, gmsgid);
!   pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PERMERROR);
    va_end (ap);
  }
  
  /* Issue a warning for a bad initializer component.
--- 7522,7547 ----
     it is unconditionally given.  GMSGID identifies the message.  The
     component name is taken from the spelling stack.  */
  
! static bool ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_init (location_t loc, int opt, const char *gmsgid, ...)
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PEDWARN);
    va_end (ap);
+   return warned;
  }
  
  /* Like pedwarn_init, but issue a permerror.  */
  
! static bool ATTRIBUTE_GCC_DIAG (3,0)
  permerror_init (location_t loc, int opt, const char *gmsgid, ...)
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PERMERROR);
    va_end (ap);
+   return warned;
  }
  
  /* Issue a warning for a bad initializer component.
*************** warning_init (location_t loc, int opt, c
*** 6913,6921 ****
  
    /* The gmsgid may be a format string with %< and %>. */
    warned = warning_at (exploc, opt, gmsgid);
!   ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
!   if (*ofwhat && warned)
!     inform (exploc, "(near initialization for %qs)", ofwhat);
  }
  
  /* If TYPE is an array type and EXPR is a parenthesized string
--- 7565,7576 ----
  
    /* The gmsgid may be a format string with %< and %>. */
    warned = warning_at (exploc, opt, gmsgid);
!   if (warned)
!     {
!       ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
!       if (*ofwhat)
! 	inform (exploc, "(near initialization for %qs)", ofwhat);
!     }
  }
  
  /* If TYPE is an array type and EXPR is a parenthesized string
*************** get_fndecl_argument_location (tree fndec
*** 6960,6966 ****
     to FUNDECL, for types EXPECTED_TYPE and ACTUAL_TYPE.
     Attempt to issue the note at the pertinent parameter of the decl;
     failing that issue it at the location of FUNDECL; failing that
!    issue it at PLOC.  */
  
  static void
  inform_for_arg (tree fundecl, location_t ploc, int parmnum,
--- 7615,7624 ----
     to FUNDECL, for types EXPECTED_TYPE and ACTUAL_TYPE.
     Attempt to issue the note at the pertinent parameter of the decl;
     failing that issue it at the location of FUNDECL; failing that
!    issue it at PLOC.
!    Use highlight_colors::actual for the ACTUAL_TYPE
!    and highlight_colors::expected for EXPECTED_TYPE and the
!    parameter of FUNDECL*/
  
  static void
  inform_for_arg (tree fundecl, location_t ploc, int parmnum,
*************** inform_for_arg (tree fundecl, location_t
*** 6972,6980 ****
    else
      loc = ploc;
  
!   inform (loc,
! 	  "expected %qT but argument is of type %qT",
! 	  expected_type, actual_type);
  }
  
  /* Issue a warning when an argument of ARGTYPE is passed to a built-in
--- 7630,7642 ----
    else
      loc = ploc;
  
!   gcc_rich_location richloc (loc, nullptr, highlight_colors::expected);
! 
!   pp_markup::element_expected_type elem_expected_type (expected_type);
!   pp_markup::element_actual_type elem_actual_type (actual_type);
!   inform (&richloc,
! 	  "expected %e but argument is of type %e",
! 	  &elem_expected_type, &elem_actual_type);
  }
  
  /* Issue a warning when an argument of ARGTYPE is passed to a built-in
*************** maybe_warn_builtin_no_proto_arg (locatio
*** 7019,7024 ****
--- 7681,7742 ----
  	    fundecl);
  }
  
+ /* Print a declaration in quotes, with the given highlight_color.
+    Analogous to handler for %qD, but with a specific highlight color.  */
+ 
+ class pp_element_quoted_decl : public pp_element
+ {
+ public:
+   pp_element_quoted_decl (tree decl, const char *highlight_color)
+   : m_decl (decl),
+     m_highlight_color (highlight_color)
+   {
+   }
+ 
+   void add_to_phase_2 (pp_markup::context &ctxt) override
+   {
+     ctxt.begin_quote ();
+     ctxt.begin_highlight_color (m_highlight_color);
+ 
+     print_decl (ctxt);
+ 
+     ctxt.end_highlight_color ();
+     ctxt.end_quote ();
+   }
+ 
+   void print_decl (pp_markup::context &ctxt)
+   {
+     pretty_printer *const pp = &ctxt.m_pp;
+     pp->set_padding (pp_none);
+     if (DECL_NAME (m_decl))
+       pp_identifier (pp, lang_hooks.decl_printable_name (m_decl, 2));
+     else
+       pp_string (pp, _("({anonymous})"));
+   }
+ 
+ private:
+   tree m_decl;
+   const char *m_highlight_color;
+ };
+ 
+ /* If TYPE is from a typedef, issue a note showing the location
+    to the user.
+    Use HIGHLIGHT_COLOR as the highlight color.  */
+ 
+ static void
+ maybe_inform_typedef_location (tree type, const char *highlight_color)
+ {
+   if (!typedef_variant_p (type))
+     return;
+ 
+   tree typedef_decl = TYPE_NAME (type);
+   gcc_assert (TREE_CODE (typedef_decl) == TYPE_DECL);
+   gcc_rich_location richloc (DECL_SOURCE_LOCATION (typedef_decl),
+ 			     nullptr, highlight_color);
+   pp_element_quoted_decl e_typedef_decl (typedef_decl, highlight_color);
+   inform (&richloc, "%e declared here", &e_typedef_decl);
+ }
+ 
  /* Convert value RHS to type TYPE as preparation for an assignment to
     an lvalue of type TYPE.  If ORIGTYPE is not NULL_TREE, it is the
     original type of RHS; this differs from TREE_TYPE (RHS) for enum
*************** convert_for_assignment (location_t locat
*** 7254,7259 ****
--- 7972,7980 ----
    if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (rhstype))
      {
        warn_for_address_of_packed_member (type, orig_rhs);
+       if (type != rhstype)
+ 	/* Convert RHS to TYPE in order to not lose TYPE in diagnostics.  */
+ 	rhs = convert (type, rhs);
        return rhs;
      }
  
*************** convert_for_assignment (location_t locat
*** 7293,7303 ****
  	}
        if (!c_mark_addressable (rhs))
  	return error_mark_node;
!       rhs = build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (rhs)), rhs);
        SET_EXPR_LOCATION (rhs, location);
  
        rhs = convert_for_assignment (location, expr_loc,
! 				    build_pointer_type (TREE_TYPE (type)),
  				    rhs, origtype, errtype,
  				    null_pointer_constant, fundecl, function,
  				    parmnum, warnopt);
--- 8014,8024 ----
  	}
        if (!c_mark_addressable (rhs))
  	return error_mark_node;
!       rhs = build1 (ADDR_EXPR, c_build_pointer_type (TREE_TYPE (rhs)), rhs);
        SET_EXPR_LOCATION (rhs, location);
  
        rhs = convert_for_assignment (location, expr_loc,
! 				    c_build_pointer_type (TREE_TYPE (type)),
  				    rhs, origtype, errtype,
  				    null_pointer_constant, fundecl, function,
  				    parmnum, warnopt);
*************** convert_for_assignment (location_t locat
*** 7783,7789 ****
  		    {
  		      auto_diagnostic_group d;
  		      range_label_for_type_mismatch rhs_label (rhstype, type);
! 		      gcc_rich_location richloc (expr_loc, &rhs_label);
  		      if (pedwarn (&richloc, OPT_Wpointer_sign,
  				   "pointer targets in passing argument %d of "
  				   "%qE differ in signedness", parmnum, rname))
--- 8504,8511 ----
  		    {
  		      auto_diagnostic_group d;
  		      range_label_for_type_mismatch rhs_label (rhstype, type);
! 		      gcc_rich_location richloc (expr_loc, &rhs_label,
! 						 highlight_colors::actual);
  		      if (pedwarn (&richloc, OPT_Wpointer_sign,
  				   "pointer targets in passing argument %d of "
  				   "%qE differ in signedness", parmnum, rname))
*************** convert_for_assignment (location_t locat
*** 7838,7895 ****
        /* Avoid warning about the volatile ObjC EH puts on decls.  */
        else if (!objc_ok)
  	{
  	  switch (errtype)
  	    {
  	    case ic_argpass:
  	      {
- 		auto_diagnostic_group d;
  		range_label_for_type_mismatch rhs_label (rhstype, type);
! 		gcc_rich_location richloc (expr_loc, &rhs_label);
! 		if (permerror_opt (&richloc, OPT_Wincompatible_pointer_types,
  				   "passing argument %d of %qE from "
  				   "incompatible pointer type",
! 				   parmnum, rname))
  		  inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	      }
  	      break;
  	    case ic_assign:
  	      if (bltin)
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "assignment to %qT from pointer to "
! 			       "%qD with incompatible type %qT",
! 			       type, bltin, rhstype);
  	      else
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "assignment to %qT from incompatible pointer "
! 			       "type %qT", type, rhstype);
  	      break;
  	    case ic_init:
  	    case ic_init_const:
  	      if (bltin)
! 		permerror_init (location, OPT_Wincompatible_pointer_types,
! 				"initialization of %qT from pointer to "
! 				"%qD with incompatible type %qT",
! 				type, bltin, rhstype);
  	      else
! 		permerror_init (location, OPT_Wincompatible_pointer_types,
! 				"initialization of %qT from incompatible "
! 				"pointer type %qT",
! 				type, rhstype);
  	      break;
  	    case ic_return:
  	      if (bltin)
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "returning pointer to %qD of type %qT from "
! 			       "a function with incompatible type %qT",
! 			       bltin, rhstype, type);
  	      else
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "returning %qT from a function with "
! 			       "incompatible return type %qT", rhstype, type);
  	      break;
  	    default:
  	      gcc_unreachable ();
  	    }
  	}
  
        /* If RHS isn't an address, check pointer or array of packed
--- 8560,8656 ----
        /* Avoid warning about the volatile ObjC EH puts on decls.  */
        else if (!objc_ok)
  	{
+ 	  auto_diagnostic_group d;
+ 	  bool warned = false;
+ 	  pp_markup::element_expected_type e_type (type);
+ 	  pp_markup::element_actual_type e_rhstype (rhstype);
  	  switch (errtype)
  	    {
  	    case ic_argpass:
  	      {
  		range_label_for_type_mismatch rhs_label (rhstype, type);
! 		gcc_rich_location richloc (expr_loc, &rhs_label,
! 					   highlight_colors::actual);
! 		warned
! 		  = permerror_opt (&richloc, OPT_Wincompatible_pointer_types,
  				   "passing argument %d of %qE from "
  				   "incompatible pointer type",
! 				   parmnum, rname);
! 		if (warned)
  		  inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	      }
  	      break;
  	    case ic_assign:
  	      if (bltin)
! 		warned
! 		  = permerror_opt (location, OPT_Wincompatible_pointer_types,
! 				   "assignment to %e from pointer to "
! 				   "%qD with incompatible type %e",
! 				   &e_type, bltin, &e_rhstype);
  	      else
! 		warned
! 		  = permerror_opt (location, OPT_Wincompatible_pointer_types,
! 				   "assignment to %e from incompatible "
! 				   "pointer type %e",
! 				   &e_type, &e_rhstype);
  	      break;
  	    case ic_init:
  	    case ic_init_const:
  	      if (bltin)
! 		warned
! 		  = permerror_init (location, OPT_Wincompatible_pointer_types,
! 				    "initialization of %e from pointer to "
! 				    "%qD with incompatible type %e",
! 				    &e_type, bltin, &e_rhstype);
  	      else
! 		warned
! 		  = permerror_init (location, OPT_Wincompatible_pointer_types,
! 				    "initialization of %e from incompatible "
! 				    "pointer type %e",
! 				    &e_type, &e_rhstype);
  	      break;
  	    case ic_return:
  	      if (bltin)
! 		warned
! 		  = permerror_opt (location, OPT_Wincompatible_pointer_types,
! 				   "returning pointer to %qD of type %e from "
! 				   "a function with incompatible type %e",
! 				   bltin, &e_rhstype, &e_type);
  	      else
! 		warned
! 		  = permerror_opt (location, OPT_Wincompatible_pointer_types,
! 				   "returning %e from a function with "
! 				   "incompatible return type %e",
! 				   &e_rhstype, &e_type);
  	      break;
  	    default:
  	      gcc_unreachable ();
  	    }
+ 	  if (warned)
+ 	    {
+ 	      /* If the mismatching function type is a pointer to a function,
+ 		 try to show the decl of the function.  */
+ 	      if (TREE_CODE (rhs) == ADDR_EXPR
+ 		  && TREE_CODE (TREE_OPERAND (rhs, 0)) == FUNCTION_DECL)
+ 		{
+ 		  tree rhs_fndecl = TREE_OPERAND (rhs, 0);
+ 		  if (!DECL_IS_UNDECLARED_BUILTIN (rhs_fndecl))
+ 		    {
+ 		      gcc_rich_location richloc
+ 			(DECL_SOURCE_LOCATION (rhs_fndecl), nullptr,
+ 			 highlight_colors::actual);
+ 		      pp_element_quoted_decl e_rhs_fndecl
+ 			(rhs_fndecl, highlight_colors::actual);
+ 		      inform (&richloc,
+ 			      "%e declared here", &e_rhs_fndecl);
+ 		    }
+ 		}
+ 	      /* If either/both of the types are typedefs, show the decl.  */
+ 	      maybe_inform_typedef_location (type,
+ 					     highlight_colors::expected);
+ 	      maybe_inform_typedef_location (rhstype,
+ 					     highlight_colors::actual);
+ 	    }
  	}
  
        /* If RHS isn't an address, check pointer or array of packed
*************** convert_for_assignment (location_t locat
*** 7911,7919 ****
--- 8672,8687 ----
      }
    else if (codel == POINTER_TYPE
  	   && (coder == INTEGER_TYPE
+ 	       || coder == ENUMERAL_TYPE
+ 	       || coder == BOOLEAN_TYPE
  	       || coder == NULLPTR_TYPE
  	       || coder == BITINT_TYPE))
      {
+       if (null_pointer_constant && c_inhibit_evaluation_warnings == 0
+ 	  && coder == INTEGER_TYPE)
+ 	warning_at (location, OPT_Wzero_as_null_pointer_constant,
+ 		    "zero as null pointer constant");
+ 
        /* An explicit constant 0 or type nullptr_t can convert to a pointer,
  	 or one that results from arithmetic, even including a cast to
  	 integer type.  */
*************** convert_for_assignment (location_t locat
*** 7924,7934 ****
  	    {
  	      auto_diagnostic_group d;
  	      range_label_for_type_mismatch rhs_label (rhstype, type);
! 	      gcc_rich_location richloc (expr_loc, &rhs_label);
  	      if (permerror_opt (&richloc, OPT_Wint_conversion,
  				 "passing argument %d of %qE makes pointer "
  				 "from integer without a cast", parmnum, rname))
! 		inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	    }
  	    break;
  	  case ic_assign:
--- 8692,8706 ----
  	    {
  	      auto_diagnostic_group d;
  	      range_label_for_type_mismatch rhs_label (rhstype, type);
! 	      gcc_rich_location richloc (expr_loc, &rhs_label,
! 					 highlight_colors::actual);
  	      if (permerror_opt (&richloc, OPT_Wint_conversion,
  				 "passing argument %d of %qE makes pointer "
  				 "from integer without a cast", parmnum, rname))
! 		{
! 		  maybe_emit_indirection_note (expr_loc, rhs, type);
! 		  inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
! 		}
  	    }
  	    break;
  	  case ic_assign:
*************** convert_for_assignment (location_t locat
*** 7963,7973 ****
  	  {
  	    auto_diagnostic_group d;
  	    range_label_for_type_mismatch rhs_label (rhstype, type);
! 	    gcc_rich_location richloc (expr_loc, &rhs_label);
  	    if (permerror_opt (&richloc, OPT_Wint_conversion,
  			       "passing argument %d of %qE makes integer from "
  			       "pointer without a cast", parmnum, rname))
! 	      inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	  }
  	  break;
  	case ic_assign:
--- 8735,8749 ----
  	  {
  	    auto_diagnostic_group d;
  	    range_label_for_type_mismatch rhs_label (rhstype, type);
! 	    gcc_rich_location richloc (expr_loc, &rhs_label,
! 				       highlight_colors::actual);
  	    if (permerror_opt (&richloc, OPT_Wint_conversion,
  			       "passing argument %d of %qE makes integer from "
  			       "pointer without a cast", parmnum, rname))
! 	      {
! 		maybe_emit_indirection_note (expr_loc, rhs, type);
! 		inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
! 	      }
  	  }
  	  break;
  	case ic_assign:
*************** convert_for_assignment (location_t locat
*** 8013,8019 ****
        {
  	auto_diagnostic_group d;
  	range_label_for_type_mismatch rhs_label (rhstype, type);
! 	gcc_rich_location richloc (expr_loc, &rhs_label);
  	const char msg[] = G_("incompatible type for argument %d of %qE");
  	if (warnopt)
  	  warning_at (expr_loc, warnopt, msg, parmnum, rname);
--- 8789,8796 ----
        {
  	auto_diagnostic_group d;
  	range_label_for_type_mismatch rhs_label (rhstype, type);
! 	gcc_rich_location richloc (expr_loc, &rhs_label,
! 				   highlight_colors::actual);
  	const char msg[] = G_("incompatible type for argument %d of %qE");
  	if (warnopt)
  	  warning_at (expr_loc, warnopt, msg, parmnum, rname);
*************** store_init_value (location_t init_loc, t
*** 8118,8125 ****
      }
    bool constexpr_p = (VAR_P (decl)
  		      && C_DECL_DECLARED_CONSTEXPR (decl));
!   value = digest_init (init_loc, type, init, origtype, npc, int_const_expr,
! 		       arith_const_expr, true,
  		       TREE_STATIC (decl) || constexpr_p, constexpr_p);
  
    /* Store the expression if valid; else report error.  */
--- 8895,8902 ----
      }
    bool constexpr_p = (VAR_P (decl)
  		      && C_DECL_DECLARED_CONSTEXPR (decl));
!   value = digest_init (init_loc, decl, type, init, origtype, npc,
! 		       int_const_expr, arith_const_expr, true,
  		       TREE_STATIC (decl) || constexpr_p, constexpr_p);
  
    /* Store the expression if valid; else report error.  */
*************** check_constexpr_init (location_t loc, tr
*** 8378,8384 ****
        if (!int_const_expr)
  	error_at (loc, "%<constexpr%> integer initializer is not an "
  		  "integer constant expression");
!       if (!int_fits_type_p (init, type))
  	error_at (loc, "%<constexpr%> initializer not representable in "
  		  "type of object");
        return;
--- 9155,9161 ----
        if (!int_const_expr)
  	error_at (loc, "%<constexpr%> integer initializer is not an "
  		  "integer constant expression");
!       else if (!int_fits_type_p (init, type))
  	error_at (loc, "%<constexpr%> initializer not representable in "
  		  "type of object");
        return;
*************** check_constexpr_init (location_t loc, tr
*** 8445,8451 ****
  	      "type of object");
  }
  
! /* Digest the parser output INIT as an initializer for type TYPE.
     Return a C expression of type TYPE to represent the initial value.
  
     If ORIGTYPE is not NULL_TREE, it is the original type of INIT.
--- 9222,9229 ----
  	      "type of object");
  }
  
! /* Digest the parser output INIT as an initializer for type TYPE
!    initializing DECL.
     Return a C expression of type TYPE to represent the initial value.
  
     If ORIGTYPE is not NULL_TREE, it is the original type of INIT.
*************** check_constexpr_init (location_t loc, tr
*** 8468,8475 ****
     on initializers for 'constexpr' objects apply.  */
  
  static tree
! digest_init (location_t init_loc, tree type, tree init, tree origtype,
!     	     bool null_pointer_constant, bool int_const_expr,
  	     bool arith_const_expr, bool strict_string,
  	     bool require_constant, bool require_constexpr)
  {
--- 9246,9253 ----
     on initializers for 'constexpr' objects apply.  */
  
  static tree
! digest_init (location_t init_loc, tree decl, tree type, tree init,
! 	     tree origtype, bool null_pointer_constant, bool int_const_expr,
  	     bool arith_const_expr, bool strict_string,
  	     bool require_constant, bool require_constexpr)
  {
*************** digest_init (location_t init_loc, tree t
*** 8485,8490 ****
--- 9263,9282 ----
  
    STRIP_TYPE_NOPS (inside_init);
  
+   /* If require_constant is TRUE,  when the initializer is a call to
+      .ACCESS_WITH_SIZE, use the first argument as the initializer.
+      For example:
+      y = (char *) .ACCESS_WITH_SIZE ((char *) &static_annotated.c,...)
+      will be converted to
+      y = &static_annotated.c.  */
+ 
+   if (require_constant
+       && TREE_CODE (inside_init) == NOP_EXPR
+       && TREE_CODE (TREE_OPERAND (inside_init, 0)) == CALL_EXPR
+       && is_access_with_size_p (TREE_OPERAND (inside_init, 0)))
+     inside_init
+       = get_ref_from_access_with_size (TREE_OPERAND (inside_init, 0));
+ 
    if (!c_in_omp_for)
      {
        if (TREE_CODE (inside_init) == EXCESS_PRECISION_EXPR)
*************** digest_init (location_t init_loc, tree t
*** 8499,8510 ****
    if (!maybe_const)
      arith_const_expr = false;
    else if (!INTEGRAL_TYPE_P (TREE_TYPE (inside_init))
!       && TREE_CODE (TREE_TYPE (inside_init)) != REAL_TYPE
!       && TREE_CODE (TREE_TYPE (inside_init)) != COMPLEX_TYPE)
      arith_const_expr = false;
    else if (TREE_CODE (inside_init) != INTEGER_CST
!       && TREE_CODE (inside_init) != REAL_CST
!       && TREE_CODE (inside_init) != COMPLEX_CST)
      arith_const_expr = false;
    else if (TREE_OVERFLOW (inside_init))
      arith_const_expr = false;
--- 9291,9303 ----
    if (!maybe_const)
      arith_const_expr = false;
    else if (!INTEGRAL_TYPE_P (TREE_TYPE (inside_init))
! 	   && TREE_CODE (TREE_TYPE (inside_init)) != REAL_TYPE
! 	   && TREE_CODE (TREE_TYPE (inside_init)) != COMPLEX_TYPE)
      arith_const_expr = false;
    else if (TREE_CODE (inside_init) != INTEGER_CST
! 	   && TREE_CODE (inside_init) != REAL_CST
! 	   && TREE_CODE (inside_init) != COMPLEX_CST
! 	   && TREE_CODE (inside_init) != RAW_DATA_CST)
      arith_const_expr = false;
    else if (TREE_OVERFLOW (inside_init))
      arith_const_expr = false;
*************** digest_init (location_t init_loc, tree t
*** 8589,8615 ****
  	      && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST)
  	    {
  	      unsigned HOST_WIDE_INT len = TREE_STRING_LENGTH (inside_init);
- 	      unsigned unit = TYPE_PRECISION (typ1) / BITS_PER_UNIT;
  
- 	      /* Subtract the size of a single (possibly wide) character
- 		 because it's ok to ignore the terminating null char
- 		 that is counted in the length of the constant.  */
- 	      if (compare_tree_int (TYPE_SIZE_UNIT (type), len - unit) < 0)
- 		pedwarn_init (init_loc, 0,
- 			      ("initializer-string for array of %qT "
- 			       "is too long"), typ1);
- 	      else if (warn_cxx_compat
- 		       && compare_tree_int (TYPE_SIZE_UNIT (type), len) < 0)
- 		warning_at (init_loc, OPT_Wc___compat,
- 			    ("initializer-string for array of %qT "
- 			     "is too long for C++"), typ1);
  	      if (compare_tree_int (TYPE_SIZE_UNIT (type), len) < 0)
  		{
! 		  unsigned HOST_WIDE_INT size
  		    = tree_to_uhwi (TYPE_SIZE_UNIT (type));
  		  const char *p = TREE_STRING_POINTER (inside_init);
  
! 		  inside_init = build_string (size, p);
  		}
  	    }
  
--- 9382,9419 ----
  	      && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST)
  	    {
  	      unsigned HOST_WIDE_INT len = TREE_STRING_LENGTH (inside_init);
  
  	      if (compare_tree_int (TYPE_SIZE_UNIT (type), len) < 0)
  		{
! 		  unsigned HOST_WIDE_INT avail
  		    = tree_to_uhwi (TYPE_SIZE_UNIT (type));
+ 		  unsigned unit = TYPE_PRECISION (typ1) / BITS_PER_UNIT;
  		  const char *p = TREE_STRING_POINTER (inside_init);
  
! 		  /* Construct truncated string.  */
! 		  inside_init = build_string (avail, p);
! 
! 		  /* Subtract the size of a single (possibly wide) character
! 		     because it may be ok to ignore the terminating NUL char
! 		     that is counted in the length of the constant.  */
! 		  if (len - unit > avail)
! 		    pedwarn_init (init_loc, 0,
! 				  "initializer-string for array of %qT "
! 				  "is too long (%wu chars into %wu "
! 				  "available)", typ1, len, avail);
! 		  else if (warn_cxx_compat)
! 		    warning_at (init_loc, OPT_Wc___compat,
! 				"initializer-string for array of %qT "
! 				"is too long for C++ (%wu chars into %wu "
! 				"available)", typ1, len, avail);
! 		  else if (warn_unterminated_string_initialization
! 			   && get_attr_nonstring_decl (decl) == NULL_TREE)
! 		    warning_at (init_loc,
! 				OPT_Wunterminated_string_initialization,
! 				"initializer-string for array of %qT "
! 				"truncates NUL terminator but destination "
! 				"lacks %qs attribute (%wu chars into %wu "
! 				"available)", typ1, "nonstring", len, avail);
  		}
  	    }
  
*************** digest_init (location_t init_loc, tree t
*** 8765,8770 ****
--- 9569,9588 ----
  					       ? ic_init_const
  					       : ic_init), null_pointer_constant,
  					      NULL_TREE, NULL_TREE, 0);
+       if (TREE_CODE (inside_init) == RAW_DATA_CST
+ 	  && c_inhibit_evaluation_warnings == 0
+ 	  && warn_conversion
+ 	  && !TYPE_UNSIGNED (type)
+ 	  && TYPE_PRECISION (type) == CHAR_BIT)
+ 	for (unsigned int i = 0;
+ 	     i < (unsigned) RAW_DATA_LENGTH (inside_init); ++i)
+ 	  if (RAW_DATA_SCHAR_ELT (inside_init, i) < 0)
+ 	    warning_at (init_loc, OPT_Wconversion,
+ 			"conversion from %qT to %qT changes value from "
+ 			"%qd to %qd",
+ 			integer_type_node, type,
+ 			RAW_DATA_UCHAR_ELT (inside_init, i),
+ 			RAW_DATA_SCHAR_ELT (inside_init, i));
        return inside_init;
      }
  
*************** static int constructor_erroneous;
*** 8883,8888 ****
--- 9701,9709 ----
  /* 1 if this constructor is the universal zero initializer { 0 }.  */
  static int constructor_zeroinit;
  
+ /* 1 if this constructor should have padding bits zeroed (C23 {}.  */
+ static bool constructor_zero_padding_bits;
+ 
  /* Structure for managing pending initializer elements, organized as an
     AVL tree.  */
  
*************** struct constructor_stack
*** 8953,8958 ****
--- 9774,9780 ----
    char outer;
    char incremental;
    char designated;
+   bool zero_padding_bits;
    int designator_depth;
  };
  
*************** really_start_incremental_init (tree type
*** 9128,9133 ****
--- 9950,9956 ----
    p->outer = 0;
    p->incremental = constructor_incremental;
    p->designated = constructor_designated;
+   p->zero_padding_bits = constructor_zero_padding_bits;
    p->designator_depth = designator_depth;
    p->next = 0;
    constructor_stack = p;
*************** really_start_incremental_init (tree type
*** 9141,9146 ****
--- 9964,9970 ----
    constructor_type = type;
    constructor_incremental = 1;
    constructor_designated = 0;
+   constructor_zero_padding_bits = false;
    constructor_zeroinit = 1;
    designator_depth = 0;
    designator_erroneous = 0;
*************** push_init_level (location_t loc, int imp
*** 9276,9281 ****
--- 10100,10106 ----
    p->outer = 0;
    p->incremental = constructor_incremental;
    p->designated = constructor_designated;
+   p->zero_padding_bits = constructor_zero_padding_bits;
    p->designator_depth = designator_depth;
    p->next = constructor_stack;
    p->range_stack = 0;
*************** push_init_level (location_t loc, int imp
*** 9290,9295 ****
--- 10115,10123 ----
    /* If the upper initializer is designated, then mark this as
       designated too to prevent bogus warnings.  */
    constructor_designated = p->designated;
+   /* If the upper initializer has padding bits zeroed, that includes
+      all nested initializers as well.  */
+   constructor_zero_padding_bits = p->zero_padding_bits;
    constructor_pending_elts = 0;
    if (!implicit)
      {
*************** push_init_level (location_t loc, int imp
*** 9336,9341 ****
--- 10164,10170 ----
        constructor_simple = TREE_STATIC (value);
        constructor_nonconst = CONSTRUCTOR_NON_CONST (value);
        constructor_elements = CONSTRUCTOR_ELTS (value);
+       constructor_zero_padding_bits |= CONSTRUCTOR_ZERO_PADDING_BITS (value);
        if (!vec_safe_is_empty (constructor_elements)
  	  && (TREE_CODE (constructor_type) == RECORD_TYPE
  	      || TREE_CODE (constructor_type) == ARRAY_TYPE))
*************** pop_init_level (location_t loc, int impl
*** 9466,9488 ****
        && !TYPE_MAX_VALUE (TYPE_DOMAIN (constructor_type)))
      {
        /* Silently discard empty initializations.  The parser will
! 	 already have pedwarned for empty brackets.  */
        if (integer_zerop (constructor_unfilled_index))
  	constructor_type = NULL_TREE;
!       else
  	{
! 	  gcc_assert (!TYPE_SIZE (constructor_type));
  
! 	  if (constructor_depth > 2)
! 	    error_init (loc, "initialization of flexible array member in a nested context");
! 	  else
  	    pedwarn_init (loc, OPT_Wpedantic,
  			  "initialization of a flexible array member");
  
  	  /* We have already issued an error message for the existence
  	     of a flexible array member not at the end of the structure.
  	     Discard the initializer so that we do not die later.  */
! 	  if (DECL_CHAIN (constructor_fields) != NULL_TREE)
  	    constructor_type = NULL_TREE;
  	}
      }
--- 10295,10324 ----
        && !TYPE_MAX_VALUE (TYPE_DOMAIN (constructor_type)))
      {
        /* Silently discard empty initializations.  The parser will
! 	 already have pedwarned for empty brackets for C17 and earlier.  */
        if (integer_zerop (constructor_unfilled_index))
  	constructor_type = NULL_TREE;
!       if (constructor_type || flag_isoc23)
  	{
! 	  gcc_assert (!constructor_type || !TYPE_SIZE (constructor_type));
  
! 	  if (constructor_depth <= 2)
  	    pedwarn_init (loc, OPT_Wpedantic,
  			  "initialization of a flexible array member");
+ 	  else if (constructor_type)
+ 	    error_init (loc, "initialization of flexible array member "
+ 			     "in a nested context");
+ 	  else
+ 	    pedwarn_init (loc, OPT_Wpedantic,
+ 			  "initialization of flexible array member "
+ 			  "in a nested context");
  
  	  /* We have already issued an error message for the existence
  	     of a flexible array member not at the end of the structure.
  	     Discard the initializer so that we do not die later.  */
! 	  if (constructor_type
! 	      && DECL_CHAIN (constructor_fields) != NULL_TREE
! 	      && (!p->type || TREE_CODE (p->type) != UNION_TYPE))
  	    constructor_type = NULL_TREE;
  	}
      }
*************** pop_init_level (location_t loc, int impl
*** 9594,9599 ****
--- 10430,10437 ----
  	    TREE_STATIC (ret.value) = 1;
  	  if (constructor_nonconst)
  	    CONSTRUCTOR_NON_CONST (ret.value) = 1;
+ 	  if (constructor_zero_padding_bits)
+ 	    CONSTRUCTOR_ZERO_PADDING_BITS (ret.value) = 1;
  	}
      }
  
*************** pop_init_level (location_t loc, int impl
*** 9619,9624 ****
--- 10457,10463 ----
    constructor_erroneous = p->erroneous;
    constructor_incremental = p->incremental;
    constructor_designated = p->designated;
+   constructor_zero_padding_bits = p->zero_padding_bits;
    designator_depth = p->designator_depth;
    constructor_pending_elts = p->pending_elts;
    constructor_depth = p->depth;
*************** set_init_label (location_t loc, tree fie
*** 9876,9881 ****
--- 10715,10742 ----
      while (field != NULL_TREE);
  }
  
+ /* Helper function for add_pending_init.  Find inorder successor of P
+    in AVL tree.  */
+ static struct init_node *
+ init_node_successor (struct init_node *p)
+ {
+   struct init_node *r;
+   if (p->right)
+     {
+       r = p->right;
+       while (r->left)
+ 	r = r->left;
+       return r;
+     }
+   r = p->parent;
+   while (r && p == r->right)
+     {
+       p = r;
+       r = r->parent;
+     }
+   return r;
+ }
+ 
  /* Add a new initializer to the tree of pending initializers.  PURPOSE
     identifies the initializer, either array index or field in a structure.
     VALUE is the value of that index or field.  If ORIGTYPE is not
*************** add_pending_init (location_t loc, tree p
*** 9903,9911 ****
  	  if (tree_int_cst_lt (purpose, p->purpose))
  	    q = &p->left;
  	  else if (tree_int_cst_lt (p->purpose, purpose))
! 	    q = &p->right;
  	  else
  	    {
  	      if (!implicit)
  		{
  		  if (TREE_SIDE_EFFECTS (p->value))
--- 10764,10934 ----
  	  if (tree_int_cst_lt (purpose, p->purpose))
  	    q = &p->left;
  	  else if (tree_int_cst_lt (p->purpose, purpose))
! 	    {
! 	      if (TREE_CODE (p->value) != RAW_DATA_CST
! 		  || (p->right
! 		      && tree_int_cst_le (p->right->purpose, purpose)))
! 		q = &p->right;
! 	      else
! 		{
! 		  widest_int pp = wi::to_widest (p->purpose);
! 		  widest_int pw = wi::to_widest (purpose);
! 		  if (pp + RAW_DATA_LENGTH (p->value) <= pw)
! 		    q = &p->right;
! 		  else
! 		    {
! 		      /* Override which should split the old RAW_DATA_CST
! 			 into 2 or 3 pieces.  */
! 		      if (!implicit && warn_override_init)
! 			warning_init (loc, OPT_Woverride_init,
! 				      "initialized field overwritten");
! 		      unsigned HOST_WIDE_INT start = (pw - pp).to_uhwi ();
! 		      unsigned HOST_WIDE_INT len = 1;
! 		      if (TREE_CODE (value) == RAW_DATA_CST)
! 			len = RAW_DATA_LENGTH (value);
! 		      unsigned HOST_WIDE_INT end = 0;
! 		      unsigned plen = RAW_DATA_LENGTH (p->value);
! 		      gcc_checking_assert (start < plen && start);
! 		      if (plen - start > len)
! 			end = plen - start - len;
! 		      tree v = p->value;
! 		      tree origtype = p->origtype;
! 		      if (start == 1)
! 			p->value = build_int_cst (TREE_TYPE (v),
! 						  RAW_DATA_UCHAR_ELT (v, 0));
! 		      else
! 			{
! 			  p->value = v;
! 			  if (end > 1)
! 			    v = copy_node (v);
! 			  RAW_DATA_LENGTH (p->value) = start;
! 			}
! 		      if (end)
! 			{
! 			  tree epurpose
! 			    = size_binop (PLUS_EXPR, purpose,
! 					  bitsize_int (len));
! 			  if (end > 1)
! 			    {
! 			      RAW_DATA_LENGTH (v) -= plen - end;
! 			      RAW_DATA_POINTER (v) += plen - end;
! 			    }
! 			  else
! 			    v = build_int_cst (TREE_TYPE (v),
! 					       RAW_DATA_UCHAR_ELT (v, plen
! 								      - end));
! 			  add_pending_init (loc, epurpose, v, origtype,
! 					    implicit, braced_init_obstack);
! 			}
! 		      q = &constructor_pending_elts;
! 		      continue;
! 		    }
! 		}
! 	    }
  	  else
  	    {
+ 	      if (TREE_CODE (p->value) == RAW_DATA_CST
+ 		  && (RAW_DATA_LENGTH (p->value)
+ 		      > (TREE_CODE (value) == RAW_DATA_CST
+ 			 ? RAW_DATA_LENGTH (value) : 1)))
+ 		{
+ 		  /* Override which should split the old RAW_DATA_CST
+ 		     into 2 pieces.  */
+ 		  if (!implicit && warn_override_init)
+ 		    warning_init (loc, OPT_Woverride_init,
+ 				  "initialized field overwritten");
+ 		  unsigned HOST_WIDE_INT len = 1;
+ 		  if (TREE_CODE (value) == RAW_DATA_CST)
+ 		    len = RAW_DATA_LENGTH (value);
+ 		  if ((unsigned) RAW_DATA_LENGTH (p->value) > len + 1)
+ 		    {
+ 		      RAW_DATA_LENGTH (p->value) -= len;
+ 		      RAW_DATA_POINTER (p->value) += len;
+ 		    }
+ 		  else
+ 		    {
+ 		      unsigned int l = RAW_DATA_LENGTH (p->value) - 1;
+ 		      p->value
+ 			= build_int_cst (TREE_TYPE (p->value),
+ 					 RAW_DATA_UCHAR_ELT (p->value, l));
+ 		    }
+ 		  p->purpose = size_binop (PLUS_EXPR, p->purpose,
+ 					   bitsize_int (len));
+ 		  continue;
+ 		}
+ 	      if (TREE_CODE (value) == RAW_DATA_CST)
+ 		{
+ 		handle_raw_data:
+ 		  /* RAW_DATA_CST value might overlap various further
+ 		     prior initval entries.  Find out how many.  */
+ 		  unsigned cnt = 0;
+ 		  widest_int w
+ 		    = wi::to_widest (purpose) + RAW_DATA_LENGTH (value);
+ 		  struct init_node *r = p, *last = NULL;
+ 		  bool override_init = warn_override_init;
+ 		  while ((r = init_node_successor (r))
+ 			 && wi::to_widest (r->purpose) < w)
+ 		    {
+ 		      ++cnt;
+ 		      if (TREE_SIDE_EFFECTS (r->value))
+ 			warning_init (loc, OPT_Woverride_init_side_effects,
+ 				      "initialized field with side-effects "
+ 				      "overwritten");
+ 		      else if (override_init)
+ 			{
+ 			  warning_init (loc, OPT_Woverride_init,
+ 					"initialized field overwritten");
+ 			  override_init = false;
+ 			}
+ 		      last = r;
+ 		    }
+ 		  if (cnt)
+ 		    {
+ 		      if (TREE_CODE (last->value) == RAW_DATA_CST
+ 			  && (wi::to_widest (last->purpose)
+ 			      + RAW_DATA_LENGTH (last->value) > w))
+ 			{
+ 			  /* The last overlapping prior initval overlaps
+ 			     only partially.  Shrink it and decrease cnt.  */
+ 			  unsigned int l = (wi::to_widest (last->purpose)
+ 					    + RAW_DATA_LENGTH (last->value)
+ 					    - w).to_uhwi ();
+ 			  --cnt;
+ 			  RAW_DATA_LENGTH (last->value) -= l;
+ 			  RAW_DATA_POINTER (last->value) += l;
+ 			  if (RAW_DATA_LENGTH (last->value) == 1)
+ 			    last->value
+ 			      = build_int_cst (TREE_TYPE (last->value),
+ 					       RAW_DATA_UCHAR_ELT (last->value,
+ 								   0));
+ 			  last->purpose
+ 			    = size_binop (PLUS_EXPR, last->purpose,
+ 					  bitsize_int (l));
+ 			}
+ 		      /* Instead of deleting cnt nodes from the AVL tree
+ 			 and rebalancing, peel of last cnt bytes from the
+ 			 RAW_DATA_CST.  Overriding thousands of previously
+ 			 initialized array elements with #embed needs to work,
+ 			 but doesn't need to be super efficient.  */
+ 		      gcc_checking_assert ((unsigned) RAW_DATA_LENGTH (value)
+ 					   > cnt);
+ 		      RAW_DATA_LENGTH (value) -= cnt;
+ 		      const unsigned char *s
+ 			= &RAW_DATA_UCHAR_ELT (value, RAW_DATA_LENGTH (value));
+ 		      unsigned int o = RAW_DATA_LENGTH (value);
+ 		      for (r = p; cnt--; ++o, ++s)
+ 			{
+ 			  r = init_node_successor (r);
+ 			  r->purpose = size_binop (PLUS_EXPR, purpose,
+ 						   bitsize_int (o));
+ 			  r->value = build_int_cst (TREE_TYPE (value), *s);
+ 			  r->origtype = origtype;
+ 			}
+ 		      if (RAW_DATA_LENGTH (value) == 1)
+ 			value = build_int_cst (TREE_TYPE (value),
+ 					       RAW_DATA_UCHAR_ELT (value, 0));
+ 		    }
+ 		}
  	      if (!implicit)
  		{
  		  if (TREE_SIDE_EFFECTS (p->value))
*************** add_pending_init (location_t loc, tree p
*** 9921,9926 ****
--- 10944,10966 ----
  	      return;
  	    }
  	}
+       if (TREE_CODE (value) == RAW_DATA_CST && p)
+ 	{
+ 	  struct init_node *r;
+ 	  if (q == &p->left)
+ 	    r = p;
+ 	  else
+ 	    r = init_node_successor (p);
+ 	  if (r && wi::to_widest (r->purpose) < (wi::to_widest (purpose)
+ 						 + RAW_DATA_LENGTH (value)))
+ 	    {
+ 	      /* Overlap with at least one prior initval in the range but
+ 		 not at the start.  */
+ 	      p = r;
+ 	      p->purpose = purpose;
+ 	      goto handle_raw_data;
+ 	    }
+ 	}
      }
    else
      {
*************** set_nonincremental_init (struct obstack
*** 10149,10156 ****
      {
        if (TYPE_DOMAIN (constructor_type))
  	constructor_unfilled_index
! 	    = convert (bitsizetype,
! 		       TYPE_MIN_VALUE (TYPE_DOMAIN (constructor_type)));
        else
  	constructor_unfilled_index = bitsize_zero_node;
      }
--- 11189,11196 ----
      {
        if (TYPE_DOMAIN (constructor_type))
  	constructor_unfilled_index
! 	  = convert (bitsizetype,
! 		     TYPE_MIN_VALUE (TYPE_DOMAIN (constructor_type)));
        else
  	constructor_unfilled_index = bitsize_zero_node;
      }
*************** output_init_element (location_t loc, tre
*** 10364,10375 ****
    if (!maybe_const)
      arith_const_expr = false;
    else if (!INTEGRAL_TYPE_P (TREE_TYPE (value))
!       && TREE_CODE (TREE_TYPE (value)) != REAL_TYPE
!       && TREE_CODE (TREE_TYPE (value)) != COMPLEX_TYPE)
      arith_const_expr = false;
    else if (TREE_CODE (value) != INTEGER_CST
!       && TREE_CODE (value) != REAL_CST
!       && TREE_CODE (value) != COMPLEX_CST)
      arith_const_expr = false;
    else if (TREE_OVERFLOW (value))
      arith_const_expr = false;
--- 11404,11416 ----
    if (!maybe_const)
      arith_const_expr = false;
    else if (!INTEGRAL_TYPE_P (TREE_TYPE (value))
! 	   && TREE_CODE (TREE_TYPE (value)) != REAL_TYPE
! 	   && TREE_CODE (TREE_TYPE (value)) != COMPLEX_TYPE)
      arith_const_expr = false;
    else if (TREE_CODE (value) != INTEGER_CST
! 	   && TREE_CODE (value) != REAL_CST
! 	   && TREE_CODE (value) != COMPLEX_CST
! 	   && TREE_CODE (value) != RAW_DATA_CST)
      arith_const_expr = false;
    else if (TREE_OVERFLOW (value))
      arith_const_expr = false;
*************** output_init_element (location_t loc, tre
*** 10404,10410 ****
    if (!require_constexpr_value
        || !npc
        || TREE_CODE (constructor_type) != POINTER_TYPE)
!     new_value = digest_init (loc, type, new_value, origtype, npc,
  			     int_const_expr, arith_const_expr, strict_string,
  			     require_constant_value, require_constexpr_value);
    if (new_value == error_mark_node)
--- 11445,11455 ----
    if (!require_constexpr_value
        || !npc
        || TREE_CODE (constructor_type) != POINTER_TYPE)
!     new_value = digest_init (loc,
! 			     RECORD_OR_UNION_TYPE_P (constructor_type)
! 			     ? field : constructor_fields
! 			     ? constructor_fields : constructor_decl,
! 			     type, new_value, origtype, npc,
  			     int_const_expr, arith_const_expr, strict_string,
  			     require_constant_value, require_constexpr_value);
    if (new_value == error_mark_node)
*************** output_init_element (location_t loc, tre
*** 10474,10483 ****
       put it on constructor_pending_elts.  */
    if (TREE_CODE (constructor_type) == ARRAY_TYPE
        && (!constructor_incremental
! 	  || !tree_int_cst_equal (field, constructor_unfilled_index)))
      {
        if (constructor_incremental
! 	  && tree_int_cst_lt (field, constructor_unfilled_index))
  	set_nonincremental_init (braced_init_obstack);
  
        add_pending_init (loc, field, value, origtype, implicit,
--- 11519,11534 ----
       put it on constructor_pending_elts.  */
    if (TREE_CODE (constructor_type) == ARRAY_TYPE
        && (!constructor_incremental
! 	  || !tree_int_cst_equal (field, constructor_unfilled_index)
! 	  || (TREE_CODE (value) == RAW_DATA_CST
! 	      && constructor_pending_elts
! 	      && pending)))
      {
        if (constructor_incremental
! 	  && (tree_int_cst_lt (field, constructor_unfilled_index)
! 	      || (TREE_CODE (value) == RAW_DATA_CST
! 		  && constructor_pending_elts
! 		  && pending)))
  	set_nonincremental_init (braced_init_obstack);
  
        add_pending_init (loc, field, value, origtype, implicit,
*************** output_init_element (location_t loc, tre
*** 10536,10544 ****
  
    /* Advance the variable that indicates sequential elements output.  */
    if (TREE_CODE (constructor_type) == ARRAY_TYPE)
!     constructor_unfilled_index
!       = size_binop_loc (input_location, PLUS_EXPR, constructor_unfilled_index,
! 			bitsize_one_node);
    else if (TREE_CODE (constructor_type) == RECORD_TYPE)
      {
        constructor_unfilled_fields
--- 11587,11600 ----
  
    /* Advance the variable that indicates sequential elements output.  */
    if (TREE_CODE (constructor_type) == ARRAY_TYPE)
!     {
!       tree inc = bitsize_one_node;
!       if (value && TREE_CODE (value) == RAW_DATA_CST)
! 	inc = bitsize_int (RAW_DATA_LENGTH (value));
!       constructor_unfilled_index
! 	= size_binop_loc (input_location, PLUS_EXPR,
! 			  constructor_unfilled_index, inc);
!     }
    else if (TREE_CODE (constructor_type) == RECORD_TYPE)
      {
        constructor_unfilled_fields
*************** output_init_element (location_t loc, tre
*** 10547,10554 ****
        /* Skip any nameless bit fields.  */
        while (constructor_unfilled_fields != NULL_TREE
  	     && DECL_UNNAMED_BIT_FIELD (constructor_unfilled_fields))
! 	constructor_unfilled_fields =
! 	  DECL_CHAIN (constructor_unfilled_fields);
      }
    else if (TREE_CODE (constructor_type) == UNION_TYPE)
      constructor_unfilled_fields = NULL_TREE;
--- 11603,11610 ----
        /* Skip any nameless bit fields.  */
        while (constructor_unfilled_fields != NULL_TREE
  	     && DECL_UNNAMED_BIT_FIELD (constructor_unfilled_fields))
! 	constructor_unfilled_fields
! 	  = DECL_CHAIN (constructor_unfilled_fields);
      }
    else if (TREE_CODE (constructor_type) == UNION_TYPE)
      constructor_unfilled_fields = NULL_TREE;
*************** initialize_elementwise_p (tree type, tre
*** 10794,10799 ****
--- 11850,11907 ----
    return false;
  }
  
+ /* Helper function for process_init_element.  Split first element of
+    RAW_DATA_CST and save the rest to *RAW_DATA.  */
+ 
+ static inline tree
+ maybe_split_raw_data (tree value, tree *raw_data)
+ {
+   if (value == NULL_TREE || TREE_CODE (value) != RAW_DATA_CST)
+     return value;
+   *raw_data = value;
+   value = build_int_cst (integer_type_node,
+ 			 RAW_DATA_UCHAR_ELT (*raw_data, 0));
+   ++RAW_DATA_POINTER (*raw_data);
+   --RAW_DATA_LENGTH (*raw_data);
+   return value;
+ }
+ 
+ /* Return non-zero if c_parser_initval should attempt to optimize
+    large initializers into RAW_DATA_CST.  In that case return how
+    many elements to optimize at most.  */
+ 
+ unsigned
+ c_maybe_optimize_large_byte_initializer (void)
+ {
+   if (!constructor_type
+       || TREE_CODE (constructor_type) != ARRAY_TYPE
+       || constructor_stack->implicit)
+     return 0;
+   tree elttype = TYPE_MAIN_VARIANT (TREE_TYPE (constructor_type));
+   if (TREE_CODE (elttype) != INTEGER_TYPE
+       && TREE_CODE (elttype) != BITINT_TYPE)
+     return 0;
+   if (TYPE_PRECISION (elttype) != CHAR_BIT
+       || constructor_stack->replacement_value.value
+       || (COMPLETE_TYPE_P (constructor_type)
+ 	  && !poly_int_tree_p (TYPE_SIZE (constructor_type)))
+       || constructor_range_stack)
+     return 0;
+   if (constructor_max_index == NULL_TREE)
+     return INT_MAX;
+   if (tree_int_cst_le (constructor_max_index, constructor_index)
+       || integer_all_onesp (constructor_max_index))
+     return 0;
+   widest_int w = wi::to_widest (constructor_max_index);
+   w -= wi::to_widest (constructor_index);
+   w += 1;
+   if (w < 64)
+     return 0;
+   if (w > INT_MAX)
+     return INT_MAX;
+   return w.to_uhwi ();
+ }
+ 
  /* Add one non-braced element to the current constructor level.
     This adjusts the current position within the constructor's type.
     This may also start or terminate implicit levels
*************** process_init_element (location_t loc, st
*** 10816,10822 ****
--- 11924,11932 ----
      = (orig_value != NULL_TREE && TREE_CODE (orig_value) == STRING_CST);
    bool strict_string = value.original_code == STRING_CST;
    bool was_designated = designator_depth != 0;
+   tree raw_data = NULL_TREE;
  
+ retry:
    designator_depth = 0;
    designator_erroneous = 0;
  
*************** process_init_element (location_t loc, st
*** 10984,10989 ****
--- 12094,12100 ----
  	      continue;
  	    }
  
+ 	  value.value = maybe_split_raw_data (value.value, &raw_data);
  	  if (value.value)
  	    {
  	      push_member_name (constructor_fields);
*************** process_init_element (location_t loc, st
*** 11057,11062 ****
--- 12168,12209 ----
  	    warning (OPT_Wtraditional, "traditional C rejects initialization "
  		     "of unions");
  
+ 	  /* Error for non-static initialization of a flexible array member.  */
+ 	  if (fieldcode == ARRAY_TYPE
+ 	      && !require_constant_value
+ 	      && TYPE_SIZE (fieldtype) == NULL_TREE)
+ 	    {
+ 	      error_init (loc, "non-static initialization of a flexible "
+ 			  "array member");
+ 	      break;
+ 	    }
+ 
+ 	  /* Error for initialization of a flexible array member with
+ 	     a string constant if the structure is in an array.  E.g.:
+ 	     union U { int x; char y[]; };
+ 	     union U s[] = { { 1, "foo" } };
+ 	     is invalid.  */
+ 	  if (string_flag
+ 	      && fieldcode == ARRAY_TYPE
+ 	      && constructor_depth > 1
+ 	      && TYPE_SIZE (fieldtype) == NULL_TREE)
+ 	    {
+ 	      bool in_array_p = false;
+ 	      for (struct constructor_stack *p = constructor_stack;
+ 		   p && p->type; p = p->next)
+ 		if (TREE_CODE (p->type) == ARRAY_TYPE)
+ 		  {
+ 		    in_array_p = true;
+ 		    break;
+ 		  }
+ 	      if (in_array_p)
+ 		{
+ 		  error_init (loc, "initialization of flexible array "
+ 			      "member in a nested context");
+ 		  break;
+ 		}
+ 	    }
+ 
  	  /* Accept a string constant to initialize a subarray.  */
  	  if (value.value != NULL_TREE
  	      && fieldcode == ARRAY_TYPE
*************** process_init_element (location_t loc, st
*** 11072,11077 ****
--- 12219,12225 ----
  	      continue;
  	    }
  
+ 	  value.value = maybe_split_raw_data (value.value, &raw_data);
  	  if (value.value)
  	    {
  	      push_member_name (constructor_fields);
*************** process_init_element (location_t loc, st
*** 11120,11159 ****
  	      break;
  	    }
  
! 	  /* Now output the actual element.  */
! 	  if (value.value)
  	    {
  	      push_array_bounds (tree_to_uhwi (constructor_index));
  	      output_init_element (loc, value.value, value.original_type,
! 				   strict_string, elttype,
! 				   constructor_index, true, implicit,
! 				   braced_init_obstack);
  	      RESTORE_SPELLING_DEPTH (constructor_depth);
  	    }
  
! 	  constructor_index
! 	    = size_binop_loc (input_location, PLUS_EXPR,
! 			      constructor_index, bitsize_one_node);
  
! 	  if (!value.value)
! 	    /* If we are doing the bookkeeping for an element that was
! 	       directly output as a constructor, we must update
! 	       constructor_unfilled_index.  */
! 	    constructor_unfilled_index = constructor_index;
  	}
        else if (gnu_vector_type_p (constructor_type))
  	{
  	  tree elttype = TYPE_MAIN_VARIANT (TREE_TYPE (constructor_type));
  
! 	 /* Do a basic check of initializer size.  Note that vectors
! 	    always have a fixed size derived from their type.  */
! 	  if (tree_int_cst_lt (constructor_max_index, constructor_index))
  	    {
! 	      pedwarn_init (loc, 0,
! 			    "excess elements in vector initializer");
  	      break;
  	    }
  
  	  /* Now output the actual element.  */
  	  if (value.value)
  	    {
--- 12268,12354 ----
  	      break;
  	    }
  
! 	  if (value.value
! 	      && TREE_CODE (value.value) == RAW_DATA_CST
! 	      && RAW_DATA_LENGTH (value.value) > 1
! 	      && (TREE_CODE (elttype) == INTEGER_TYPE
! 		  || TREE_CODE (elttype) == BITINT_TYPE)
! 	      && TYPE_PRECISION (elttype) == CHAR_BIT
! 	      && (constructor_max_index == NULL_TREE
! 		  || tree_int_cst_lt (constructor_index,
! 				      constructor_max_index)))
  	    {
+ 	      unsigned int len = RAW_DATA_LENGTH (value.value);
+ 	      if (constructor_max_index)
+ 		{
+ 		  widest_int w = wi::to_widest (constructor_max_index);
+ 		  w -= wi::to_widest (constructor_index);
+ 		  w += 1;
+ 		  if (w < len)
+ 		    len = w.to_uhwi ();
+ 		}
+ 	      if (len < (unsigned) RAW_DATA_LENGTH (value.value))
+ 		{
+ 		  raw_data = copy_node (value.value);
+ 		  RAW_DATA_LENGTH (raw_data) -= len;
+ 		  RAW_DATA_POINTER (raw_data) += len;
+ 		  RAW_DATA_LENGTH (value.value) = len;
+ 		}
+ 	      TREE_TYPE (value.value) = elttype;
  	      push_array_bounds (tree_to_uhwi (constructor_index));
  	      output_init_element (loc, value.value, value.original_type,
! 				   false, elttype, constructor_index, true,
! 				   implicit, braced_init_obstack);
  	      RESTORE_SPELLING_DEPTH (constructor_depth);
+ 	      constructor_index
+ 		= size_binop_loc (input_location, PLUS_EXPR,
+ 				  constructor_index, bitsize_int (len));
  	    }
+ 	  else
+ 	    {
+ 	      value.value = maybe_split_raw_data (value.value, &raw_data);
+ 	      /* Now output the actual element.  */
+ 	      if (value.value)
+ 		{
+ 		  push_array_bounds (tree_to_uhwi (constructor_index));
+ 		  output_init_element (loc, value.value, value.original_type,
+ 				       strict_string, elttype,
+ 				       constructor_index, true, implicit,
+ 				       braced_init_obstack);
+ 		  RESTORE_SPELLING_DEPTH (constructor_depth);
+ 		}
  
! 	      constructor_index
! 		= size_binop_loc (input_location, PLUS_EXPR,
! 				  constructor_index, bitsize_one_node);
  
! 	      if (!value.value)
! 		/* If we are doing the bookkeeping for an element that was
! 		   directly output as a constructor, we must update
! 		   constructor_unfilled_index.  */
! 		constructor_unfilled_index = constructor_index;
! 	    }
  	}
        else if (gnu_vector_type_p (constructor_type))
  	{
  	  tree elttype = TYPE_MAIN_VARIANT (TREE_TYPE (constructor_type));
  
! 	  /* Do a basic check of initializer size.  Note that vectors
! 	     may not always have a fixed size derived from their type.  */
! 	  if (maybe_lt (tree_to_poly_uint64 (constructor_max_index),
! 			tree_to_poly_uint64 (constructor_index)))
  	    {
! 	      /* Diagose VLA out-of-bounds as errors.  */
! 	      if (tree_to_poly_uint64 (constructor_max_index).is_constant())
! 		pedwarn_init (loc, 0,
! 			      "excess elements in vector initializer");
! 	      else
! 		error_init (loc, "excess elements in vector initializer");
! 
  	      break;
  	    }
  
+ 	  value.value = maybe_split_raw_data (value.value, &raw_data);
  	  /* Now output the actual element.  */
  	  if (value.value)
  	    {
*************** process_init_element (location_t loc, st
*** 11187,11192 ****
--- 12382,12388 ----
  	}
        else
  	{
+ 	  value.value = maybe_split_raw_data (value.value, &raw_data);
  	  if (value.value)
  	    output_init_element (loc, value.value, value.original_type,
  				 strict_string, constructor_type,
*************** process_init_element (location_t loc, st
*** 11258,11263 ****
--- 12454,12467 ----
      }
  
    constructor_range_stack = 0;
+ 
+   if (raw_data && RAW_DATA_LENGTH (raw_data))
+     {
+       gcc_assert (!string_flag && !was_designated);
+       value.value = raw_data;
+       raw_data = NULL_TREE;
+       goto retry;
+     }
  }
  
  /* Build a complete asm-statement, whose components are a CV_QUALIFIER
*************** build_asm_expr (location_t loc, tree str
*** 11338,11347 ****
--- 12542,12584 ----
  	      error_at (loc, "invalid use of void expression");
  	      output = error_mark_node;
  	    }
+ 	  if (allows_reg && current_function_decl == NULL_TREE)
+ 	    {
+ 	      error_at (loc, "constraint allows registers outside of "
+ 			     "a function");
+ 	      output = error_mark_node;
+ 	    }
  	}
        else
  	output = error_mark_node;
  
+       if (current_function_decl == NULL_TREE && output != error_mark_node)
+ 	{
+ 	  if (TREE_SIDE_EFFECTS (output))
+ 	    {
+ 	      error_at (loc, "side-effects in output operand outside "
+ 			     "of a function");
+ 	      output = error_mark_node;
+ 	    }
+ 	  else
+ 	    {
+ 	      tree addr = build_unary_op (loc, ADDR_EXPR, output, false);
+ 	      if (addr == error_mark_node)
+ 		output = error_mark_node;
+ 	      else if (!initializer_constant_valid_p (addr, TREE_TYPE (addr)))
+ 		{
+ 		  error_at (loc, "output operand outside of a function is not "
+ 				 "constant");
+ 		  output = error_mark_node;
+ 		}
+ 	    }
+ 	}
+       else if (output != error_mark_node && strstr (constraint, "-"))
+ 	{
+ 	  error_at (loc, "%<-%> modifier used inside of a function");
+ 	  output = error_mark_node;
+ 	}
+ 
        TREE_VALUE (tail) = output;
      }
  
*************** build_asm_expr (location_t loc, tree str
*** 11381,11390 ****
--- 12618,12674 ----
  		  input = error_mark_node;
  		}
  	    }
+ 	  if (allows_reg && current_function_decl == NULL_TREE)
+ 	    {
+ 	      error_at (loc, "constraint allows registers outside of "
+ 			     "a function");
+ 	      input = error_mark_node;
+ 	    }
+ 	  if (constraint[0] == ':' && input != error_mark_node)
+ 	    {
+ 	      tree t = input;
+ 	      STRIP_NOPS (t);
+ 	      if (TREE_CODE (t) != ADDR_EXPR
+ 		  || !(TREE_CODE (TREE_OPERAND (t, 0)) == FUNCTION_DECL
+ 		       || (VAR_P (TREE_OPERAND (t, 0))
+ 			   && is_global_var (TREE_OPERAND (t, 0)))))
+ 		{
+ 		  error_at (loc, "%<:%> constraint operand is not address "
+ 				 "of a function or non-automatic variable");
+ 		  input = error_mark_node;
+ 		}
+ 	    }
  	}
        else
  	input = error_mark_node;
  
+       if (current_function_decl == NULL_TREE && input != error_mark_node)
+ 	{
+ 	  if (TREE_SIDE_EFFECTS (input))
+ 	    {
+ 	      error_at (loc, "side-effects in input operand outside "
+ 			     "of a function");
+ 	      input = error_mark_node;
+ 	    }
+ 	  else
+ 	    {
+ 	      tree tem = input;
+ 	      if (allows_mem && lvalue_p (input))
+ 		tem = build_unary_op (loc, ADDR_EXPR, input, false);
+ 	      if (!initializer_constant_valid_p (tem, TREE_TYPE (tem)))
+ 		{
+ 		  error_at (loc, "input operand outside of a function is not "
+ 				 "constant");
+ 		  input = error_mark_node;
+ 		}
+ 	    }
+ 	}
+       else if (input != error_mark_node && strstr (constraint, "-"))
+ 	{
+ 	  error_at (loc, "%<-%> modifier used inside of a function");
+ 	  input = error_mark_node;
+ 	}
+ 
        TREE_VALUE (tail) = input;
      }
  
*************** build_asm_expr (location_t loc, tree str
*** 11392,11398 ****
  
    /* asm statements without outputs, including simple ones, are treated
       as volatile.  */
!   ASM_INPUT_P (args) = simple;
    ASM_VOLATILE_P (args) = (noutputs == 0);
    ASM_INLINE_P (args) = is_inline;
  
--- 12676,12682 ----
  
    /* asm statements without outputs, including simple ones, are treated
       as volatile.  */
!   ASM_BASIC_P (args) = simple;
    ASM_VOLATILE_P (args) = (noutputs == 0);
    ASM_INLINE_P (args) = is_inline;
  
*************** c_finish_goto_ptr (location_t loc, c_exp
*** 11445,11454 ****
     to return, or a null pointer for `return;' with no value.  LOC is
     the location of the return statement, or the location of the expression,
     if the statement has any.  If ORIGTYPE is not NULL_TREE, it
!    is the original type of RETVAL.  */
  
  tree
! c_finish_return (location_t loc, tree retval, tree origtype)
  {
    tree valtype = TREE_TYPE (TREE_TYPE (current_function_decl)), ret_stmt;
    bool no_warning = false;
--- 12729,12739 ----
     to return, or a null pointer for `return;' with no value.  LOC is
     the location of the return statement, or the location of the expression,
     if the statement has any.  If ORIGTYPE is not NULL_TREE, it
!    is the original type of RETVAL.  MUSTTAIL_P indicates a musttail
!    attribute.  */
  
  tree
! c_finish_return (location_t loc, tree retval, tree origtype, bool musttail_p)
  {
    tree valtype = TREE_TYPE (TREE_TYPE (current_function_decl)), ret_stmt;
    bool no_warning = false;
*************** c_finish_return (location_t loc, tree re
*** 11462,11467 ****
--- 12747,12754 ----
      warning_at (xloc, 0,
  		"function declared %<noreturn%> has a %<return%> statement");
  
+   set_musttail_on_return (retval, xloc, musttail_p);
+ 
    if (retval)
      {
        tree semantic_type = NULL_TREE;
*************** c_finish_return (location_t loc, tree re
*** 11520,11526 ****
  
        current_function_returns_value = 1;
        if (t == error_mark_node)
! 	return NULL_TREE;
  
        save = in_late_binary_op;
        if (C_BOOLEAN_TYPE_P (TREE_TYPE (res))
--- 12807,12818 ----
  
        current_function_returns_value = 1;
        if (t == error_mark_node)
! 	{
! 	  /* Suppress -Wreturn-type for this function.  */
! 	  if (warn_return_type)
! 	    suppress_warning (current_function_decl, OPT_Wreturn_type);
! 	  return NULL_TREE;
! 	}
  
        save = in_late_binary_op;
        if (C_BOOLEAN_TYPE_P (TREE_TYPE (res))
*************** struct c_switch *c_switch_stack;
*** 11657,11663 ****
  tree
  c_start_switch (location_t switch_loc,
  		location_t switch_cond_loc,
! 		tree exp, bool explicit_cast_p)
  {
    tree orig_type = error_mark_node;
    bool bool_cond_p = false;
--- 12949,12955 ----
  tree
  c_start_switch (location_t switch_loc,
  		location_t switch_cond_loc,
! 		tree exp, bool explicit_cast_p, tree switch_name)
  {
    tree orig_type = error_mark_node;
    bool bool_cond_p = false;
*************** c_start_switch (location_t switch_loc,
*** 11710,11716 ****
    /* Add this new SWITCH_STMT to the stack.  */
    cs = XNEW (struct c_switch);
    cs->switch_stmt = build_stmt (switch_loc, SWITCH_STMT, exp,
! 				NULL_TREE, orig_type, NULL_TREE);
    cs->orig_type = orig_type;
    cs->cases = splay_tree_new (case_compare, NULL, NULL);
    cs->bindings = c_get_switch_bindings ();
--- 13002,13008 ----
    /* Add this new SWITCH_STMT to the stack.  */
    cs = XNEW (struct c_switch);
    cs->switch_stmt = build_stmt (switch_loc, SWITCH_STMT, exp,
! 				NULL_TREE, orig_type, NULL_TREE, switch_name);
    cs->orig_type = orig_type;
    cs->cases = splay_tree_new (case_compare, NULL, NULL);
    cs->bindings = c_get_switch_bindings ();
*************** c_finish_if_stmt (location_t if_locus, t
*** 11811,11817 ****
  }
  
  tree
! c_finish_bc_stmt (location_t loc, tree label, bool is_break)
  {
    /* In switch statements break is sometimes stylistically used after
       a return statement.  This can lead to spurious warnings about
--- 13103,13109 ----
  }
  
  tree
! c_finish_bc_stmt (location_t loc, tree label, bool is_break, tree name)
  {
    /* In switch statements break is sometimes stylistically used after
       a return statement.  This can lead to spurious warnings about
*************** c_finish_bc_stmt (location_t loc, tree l
*** 11823,11829 ****
    bool skip = !block_may_fallthru (cur_stmt_list);
  
    if (is_break)
!     switch (in_statement)
        {
        case 0:
  	error_at (loc, "break statement not within loop or switch");
--- 13115,13121 ----
    bool skip = !block_may_fallthru (cur_stmt_list);
  
    if (is_break)
!     switch (in_statement & ~IN_NAMED_STMT)
        {
        case 0:
  	error_at (loc, "break statement not within loop or switch");
*************** c_finish_bc_stmt (location_t loc, tree l
*** 11843,11849 ****
  	break;
        }
    else
!     switch (in_statement & ~IN_SWITCH_STMT)
        {
        case 0:
  	error_at (loc, "continue statement not within a loop");
--- 13135,13141 ----
  	break;
        }
    else
!     switch (in_statement & ~(IN_SWITCH_STMT | IN_NAMED_STMT))
        {
        case 0:
  	error_at (loc, "continue statement not within a loop");
*************** c_finish_bc_stmt (location_t loc, tree l
*** 11862,11875 ****
    if (skip)
      return NULL_TREE;
    else if ((in_statement & IN_OBJC_FOREACH)
! 	   && !(is_break && (in_statement & IN_SWITCH_STMT)))
      {
        /* The foreach expander produces low-level code using gotos instead
  	 of a structured loop construct.  */
        gcc_assert (label);
        return add_stmt (build_stmt (loc, GOTO_EXPR, label));
      }
!   return add_stmt (build_stmt (loc, (is_break ? BREAK_STMT : CONTINUE_STMT)));
  }
  
  /* A helper routine for c_process_expr_stmt and c_finish_stmt_expr.  */
--- 13154,13177 ----
    if (skip)
      return NULL_TREE;
    else if ((in_statement & IN_OBJC_FOREACH)
! 	   && !(is_break && (in_statement & IN_SWITCH_STMT))
! 	   && name == NULL_TREE)
      {
        /* The foreach expander produces low-level code using gotos instead
  	 of a structured loop construct.  */
        gcc_assert (label);
        return add_stmt (build_stmt (loc, GOTO_EXPR, label));
      }
!   else if (name && C_DECL_LOOP_NAME (name) && C_DECL_SWITCH_NAME (name))
!     {
!       label = DECL_CHAIN (name);
!       if (!is_break)
! 	label = DECL_CHAIN (label);
!       /* Foreach expander from some outer level.  */
!       return add_stmt (build_stmt (loc, GOTO_EXPR, label));
!     }
!   return add_stmt (build_stmt (loc, is_break ? BREAK_STMT : CONTINUE_STMT,
! 			       name));
  }
  
  /* A helper routine for c_process_expr_stmt and c_finish_stmt_expr.  */
*************** build_binary_op (location_t location, en
*** 12990,12997 ****
  	  if (result_type == NULL_TREE)
  	    {
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	      result_type = build_pointer_type
! 			      (build_qualified_type (void_type_node, qual));
  	    }
  	}
        else if (code0 == POINTER_TYPE
--- 14292,14299 ----
  	  if (result_type == NULL_TREE)
  	    {
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	      result_type = c_build_pointer_type
! 			      (c_build_qualified_type (void_type_node, qual));
  	    }
  	}
        else if (code0 == POINTER_TYPE
*************** build_binary_op (location_t location, en
*** 13023,13032 ****
         create a pointer type from its type.  */
        else if (code0 == NULLPTR_TYPE && null_pointer_constant_p (orig_op1))
  	result_type = (INTEGRAL_TYPE_P (type1)
! 		       ? build_pointer_type (type1) : type1);
        else if (code1 == NULLPTR_TYPE && null_pointer_constant_p (orig_op0))
  	result_type = (INTEGRAL_TYPE_P (type0)
! 		       ? build_pointer_type (type0) : type0);
        if ((C_BOOLEAN_TYPE_P (TREE_TYPE (orig_op0))
  	   || truth_value_p (TREE_CODE (orig_op0)))
  	  ^ (C_BOOLEAN_TYPE_P (TREE_TYPE (orig_op1))
--- 14325,14334 ----
         create a pointer type from its type.  */
        else if (code0 == NULLPTR_TYPE && null_pointer_constant_p (orig_op1))
  	result_type = (INTEGRAL_TYPE_P (type1)
! 		       ? c_build_pointer_type (type1) : type1);
        else if (code1 == NULLPTR_TYPE && null_pointer_constant_p (orig_op0))
  	result_type = (INTEGRAL_TYPE_P (type0)
! 		       ? c_build_pointer_type (type0) : type0);
        if ((C_BOOLEAN_TYPE_P (TREE_TYPE (orig_op0))
  	   || truth_value_p (TREE_CODE (orig_op0)))
  	  ^ (C_BOOLEAN_TYPE_P (TREE_TYPE (orig_op1))
*************** build_binary_op (location_t location, en
*** 13124,13131 ****
  	  else
  	    {
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	      result_type = build_pointer_type
! 			      (build_qualified_type (void_type_node, qual));
                pedwarn (location, OPT_Wcompare_distinct_pointer_types,
                         "comparison of distinct pointer types lacks a cast");
  	    }
--- 14426,14433 ----
  	  else
  	    {
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	      result_type = c_build_pointer_type
! 			      (c_build_qualified_type (void_type_node, qual));
                pedwarn (location, OPT_Wcompare_distinct_pointer_types,
                         "comparison of distinct pointer types lacks a cast");
  	    }
*************** build_binary_op (location_t location, en
*** 13167,13174 ****
  	  && current_function_decl != NULL_TREE
  	  && sanitize_flags_p (SANITIZE_POINTER_COMPARE))
  	{
! 	  op0 = save_expr (op0);
! 	  op1 = save_expr (op1);
  
  	  tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_COMPARE);
  	  instrument_expr = build_call_expr_loc (location, tt, 2, op0, op1);
--- 14469,14476 ----
  	  && current_function_decl != NULL_TREE
  	  && sanitize_flags_p (SANITIZE_POINTER_COMPARE))
  	{
! 	  op0 = save_expr (c_fully_fold (op0, false, NULL));
! 	  op1 = save_expr (c_fully_fold (op1, false, NULL));
  
  	  tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_COMPARE);
  	  instrument_expr = build_call_expr_loc (location, tt, 2, op0, op1);
*************** build_binary_op (location_t location, en
*** 13204,13211 ****
        maybe_range_label_for_tree_type_mismatch
  	label_for_op0 (orig_op0, orig_op1),
  	label_for_op1 (orig_op1, orig_op0);
!       richloc.maybe_add_expr (orig_op0, &label_for_op0);
!       richloc.maybe_add_expr (orig_op1, &label_for_op1);
        binary_op_error (&richloc, code, type0, type1);
        return error_mark_node;
      }
--- 14506,14513 ----
        maybe_range_label_for_tree_type_mismatch
  	label_for_op0 (orig_op0, orig_op1),
  	label_for_op1 (orig_op1, orig_op0);
!       richloc.maybe_add_expr (orig_op0, &label_for_op0, highlight_colors::lhs);
!       richloc.maybe_add_expr (orig_op1, &label_for_op1, highlight_colors::rhs);
        binary_op_error (&richloc, code, type0, type1);
        return error_mark_node;
      }
*************** handle_omp_array_sections (tree &c, enum
*** 14390,14397 ****
  	  tree eltype = TREE_TYPE (first);
  	  while (TREE_CODE (eltype) == ARRAY_TYPE)
  	    eltype = TREE_TYPE (eltype);
! 	  tree type = build_array_type (eltype, index_type);
! 	  tree ptype = build_pointer_type (eltype);
  	  if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
  	    t = build_fold_addr_expr (t);
  	  tree t2 = build_fold_addr_expr (first);
--- 15692,15699 ----
  	  tree eltype = TREE_TYPE (first);
  	  while (TREE_CODE (eltype) == ARRAY_TYPE)
  	    eltype = TREE_TYPE (eltype);
! 	  tree type = c_build_array_type (eltype, index_type);
! 	  tree ptype = c_build_pointer_type (eltype);
  	  if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
  	    t = build_fold_addr_expr (t);
  	  tree t2 = build_fold_addr_expr (first);
*************** c_finish_omp_clauses (tree clauses, enum
*** 14722,14727 ****
--- 16024,16031 ----
    tree *detach_seen = NULL;
    bool linear_variable_step_check = false;
    tree *nowait_clause = NULL;
+   tree *grainsize_seen = NULL;
+   bool num_tasks_seen = false;
    tree ordered_clause = NULL_TREE;
    tree schedule_clause = NULL_TREE;
    bool oacc_async = false;
*************** c_finish_omp_clauses (tree clauses, enum
*** 14735,14741 ****
--- 16039,16051 ----
    bool allocate_seen = false;
    bool implicit_moved = false;
    bool target_in_reduction_seen = false;
+   tree *full_seen = NULL;
+   bool partial_seen = false;
    bool openacc = (ort & C_ORT_ACC) != 0;
+   bool init_seen = false;
+   bool init_use_destroy_seen = false;
+   tree init_no_targetsync_clause = NULL_TREE;
+   tree depend_clause = NULL_TREE;
  
    bitmap_obstack_initialize (NULL);
    bitmap_initialize (&generic_head, &bitmap_default_obstack);
*************** c_finish_omp_clauses (tree clauses, enum
*** 14857,14866 ****
  	      size = size_binop (MINUS_EXPR, size, size_one_node);
  	      size = save_expr (size);
  	      tree index_type = build_index_type (size);
! 	      tree atype = build_array_type (TYPE_MAIN_VARIANT (type),
! 					     index_type);
  	      atype = c_build_qualified_type (atype, TYPE_QUALS (type));
! 	      tree ptype = build_pointer_type (type);
  	      if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
  		t = build_fold_addr_expr (t);
  	      t = build2 (MEM_REF, atype, t, build_int_cst (ptype, 0));
--- 16167,16176 ----
  	      size = size_binop (MINUS_EXPR, size, size_one_node);
  	      size = save_expr (size);
  	      tree index_type = build_index_type (size);
! 	      tree atype = c_build_array_type (TYPE_MAIN_VARIANT (type),
! 					       index_type);
  	      atype = c_build_qualified_type (atype, TYPE_QUALS (type));
! 	      tree ptype = c_build_pointer_type (type);
  	      if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
  		t = build_fold_addr_expr (t);
  	      t = build2 (MEM_REF, atype, t, build_int_cst (ptype, 0));
*************** c_finish_omp_clauses (tree clauses, enum
*** 15049,15055 ****
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (*nowait_clause),
  			"%<nowait%> clause must not be used together "
! 			"with %<copyprivate%>");
  	      *nowait_clause = OMP_CLAUSE_CHAIN (*nowait_clause);
  	      nowait_clause = NULL;
  	    }
--- 16359,16365 ----
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (*nowait_clause),
  			"%<nowait%> clause must not be used together "
! 			"with %<copyprivate%> clause");
  	      *nowait_clause = OMP_CLAUSE_CHAIN (*nowait_clause);
  	      nowait_clause = NULL;
  	    }
*************** c_finish_omp_clauses (tree clauses, enum
*** 15358,15364 ****
  	    }
  	  else if (bitmap_bit_p (&aligned_head, DECL_UID (t)))
  	    {
! 	      warning_at (OMP_CLAUSE_LOCATION (c), 0,
  			  "%qE appears more than once in %<allocate%> clauses",
  			  t);
  	      remove = true;
--- 16668,16674 ----
  	    }
  	  else if (bitmap_bit_p (&aligned_head, DECL_UID (t)))
  	    {
! 	      warning_at (OMP_CLAUSE_LOCATION (c), OPT_Wopenmp,
  			  "%qE appears more than once in %<allocate%> clauses",
  			  t);
  	      remove = true;
*************** c_finish_omp_clauses (tree clauses, enum
*** 15405,15410 ****
--- 16715,16722 ----
  	    }
  	  gcc_unreachable ();
  	case OMP_CLAUSE_DEPEND:
+ 	  depend_clause = c;
+ 	  /* FALLTHRU */
  	case OMP_CLAUSE_AFFINITY:
  	  t = OMP_CLAUSE_DECL (c);
  	  if (TREE_CODE (t) == TREE_LIST
*************** c_finish_omp_clauses (tree clauses, enum
*** 15961,15967 ****
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (c),
  			"%<nowait%> clause must not be used together "
! 			"with %<copyprivate%>");
  	      remove = true;
  	      break;
  	    }
--- 17273,17279 ----
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (c),
  			"%<nowait%> clause must not be used together "
! 			"with %<copyprivate%> clause");
  	      remove = true;
  	      break;
  	    }
*************** c_finish_omp_clauses (tree clauses, enum
*** 15974,15980 ****
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (c),
  			"%<order%> clause must not be used together "
! 			"with %<ordered%>");
  	      remove = true;
  	      break;
  	    }
--- 17286,17292 ----
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (c),
  			"%<order%> clause must not be used together "
! 			"with %<ordered%> clause");
  	      remove = true;
  	      break;
  	    }
*************** c_finish_omp_clauses (tree clauses, enum
*** 16021,16028 ****
  	case OMP_CLAUSE_PROC_BIND:
  	case OMP_CLAUSE_DEVICE_TYPE:
  	case OMP_CLAUSE_PRIORITY:
- 	case OMP_CLAUSE_GRAINSIZE:
- 	case OMP_CLAUSE_NUM_TASKS:
  	case OMP_CLAUSE_THREADS:
  	case OMP_CLAUSE_SIMD:
  	case OMP_CLAUSE_HINT:
--- 17333,17338 ----
*************** c_finish_omp_clauses (tree clauses, enum
*** 16045,16050 ****
--- 17355,17372 ----
  	case OMP_CLAUSE_FINALIZE:
  	case OMP_CLAUSE_NOHOST:
  	case OMP_CLAUSE_INDIRECT:
+ 	case OMP_CLAUSE_NOVARIANTS:
+ 	case OMP_CLAUSE_NOCONTEXT:
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
+ 
+ 	case OMP_CLAUSE_GRAINSIZE:
+ 	  grainsize_seen = pc;
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
+ 
+ 	case OMP_CLAUSE_NUM_TASKS:
+ 	  num_tasks_seen = true;
  	  pc = &OMP_CLAUSE_CHAIN (c);
  	  continue;
  
*************** c_finish_omp_clauses (tree clauses, enum
*** 16069,16075 ****
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (*order_clause),
  			"%<order%> clause must not be used together "
! 			"with %<ordered%>");
  	      *order_clause = OMP_CLAUSE_CHAIN (*order_clause);
  	      order_clause = NULL;
  	    }
--- 17391,17397 ----
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (*order_clause),
  			"%<order%> clause must not be used together "
! 			"with %<ordered%> clause");
  	      *order_clause = OMP_CLAUSE_CHAIN (*order_clause);
  	      order_clause = NULL;
  	    }
*************** c_finish_omp_clauses (tree clauses, enum
*** 16085,16090 ****
--- 17407,17426 ----
  	  pc = &OMP_CLAUSE_CHAIN (c);
  	  continue;
  
+ 	case OMP_CLAUSE_FULL:
+ 	  full_seen = pc;
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
+ 
+ 	case OMP_CLAUSE_PARTIAL:
+ 	  partial_seen = true;
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
+ 
+ 	case OMP_CLAUSE_SIZES:
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
+ 
  	case OMP_CLAUSE_INBRANCH:
  	case OMP_CLAUSE_NOTINBRANCH:
  	  if (branch_seen)
*************** c_finish_omp_clauses (tree clauses, enum
*** 16113,16118 ****
--- 17449,17491 ----
  	    }
  	  break;
  
+ 	case OMP_CLAUSE_INIT:
+ 	  init_seen = true;
+ 	  if (!OMP_CLAUSE_INIT_TARGETSYNC (c))
+ 	    init_no_targetsync_clause = c;
+ 	  /* FALLTHRU */
+ 	case OMP_CLAUSE_DESTROY:
+ 	case OMP_CLAUSE_USE:
+ 	  init_use_destroy_seen = true;
+ 	  t = OMP_CLAUSE_DECL (c);
+ 	  if (bitmap_bit_p (&generic_head, DECL_UID (t)))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 			"%qD appears more than once in action clauses", t);
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  bitmap_set_bit (&generic_head, DECL_UID (t));
+ 	  /* FALLTHRU */
+ 	case OMP_CLAUSE_INTEROP:
+ 	  if (/* ort == C_ORT_OMP_INTEROP [uncomment for depobj init]  */
+ 		   !c_omp_interop_t_p (TREE_TYPE (OMP_CLAUSE_DECL (c))))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 			"%qD must be of %<omp_interop_t%>",
+ 			OMP_CLAUSE_DECL (c));
+ 	      remove = true;
+ 	    }
+ 	  else if ((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_INIT
+ 		    || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DESTROY)
+ 		   && TREE_READONLY (OMP_CLAUSE_DECL (c)))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 		      "%qD shall not be const", OMP_CLAUSE_DECL (c));
+ 	      remove = true;
+ 	    }
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  break;
  	default:
  	  gcc_unreachable ();
  	}
*************** c_finish_omp_clauses (tree clauses, enum
*** 16333,16338 ****
--- 17706,17727 ----
        *nogroup_seen = OMP_CLAUSE_CHAIN (*nogroup_seen);
      }
  
+   if (grainsize_seen && num_tasks_seen)
+     {
+       error_at (OMP_CLAUSE_LOCATION (*grainsize_seen),
+ 		"%<grainsize%> clause must not be used together with "
+ 		"%<num_tasks%> clause");
+       *grainsize_seen = OMP_CLAUSE_CHAIN (*grainsize_seen);
+     }
+ 
+   if (full_seen && partial_seen)
+     {
+       error_at (OMP_CLAUSE_LOCATION (*full_seen),
+ 		"%<full%> clause must not be used together with "
+ 		"%<partial%> clause");
+       *full_seen = OMP_CLAUSE_CHAIN (*full_seen);
+     }
+ 
    if (detach_seen)
      {
        if (mergeable_seen)
*************** c_finish_omp_clauses (tree clauses, enum
*** 16368,16373 ****
--- 17757,17775 ----
  	}
      }
  
+   if (ort == C_ORT_OMP_INTEROP
+       && depend_clause
+       && (!init_use_destroy_seen
+ 	  || (init_seen && init_no_targetsync_clause)))
+     {
+       error_at (OMP_CLAUSE_LOCATION (depend_clause),
+ 		"%<depend%> clause requires action clauses with "
+ 		"%<targetsync%> interop-type");
+       if (init_no_targetsync_clause)
+ 	inform (OMP_CLAUSE_LOCATION (init_no_targetsync_clause),
+ 		"%<init%> clause lacks the %<targetsync%> modifier");
+     }
+ 
    bitmap_obstack_release (NULL);
    return clauses;
  }
*************** c_build_qualified_type (tree type, int t
*** 16478,16494 ****
                     || (domain && TYPE_CANONICAL (domain) != domain))
              {
                tree unqualified_canon
!                 = build_array_type (TYPE_CANONICAL (element_type),
!                                     domain? TYPE_CANONICAL (domain)
!                                           : NULL_TREE);
                if (TYPE_REVERSE_STORAGE_ORDER (type))
                  {
                    unqualified_canon
!                     = build_distinct_type_copy (unqualified_canon);
                    TYPE_REVERSE_STORAGE_ORDER (unqualified_canon) = 1;
                  }
                TYPE_CANONICAL (t)
!                 = c_build_qualified_type (unqualified_canon, type_quals);
              }
            else
              TYPE_CANONICAL (t) = t;
--- 17880,17896 ----
                     || (domain && TYPE_CANONICAL (domain) != domain))
              {
                tree unqualified_canon
! 		= c_build_array_type (TYPE_CANONICAL (element_type),
! 				      domain ? TYPE_CANONICAL (domain)
! 					     : NULL_TREE);
                if (TYPE_REVERSE_STORAGE_ORDER (type))
                  {
                    unqualified_canon
! 		    = build_distinct_type_copy (unqualified_canon);
                    TYPE_REVERSE_STORAGE_ORDER (unqualified_canon) = 1;
                  }
                TYPE_CANONICAL (t)
! 		= c_build_qualified_type (unqualified_canon, type_quals);
              }
            else
              TYPE_CANONICAL (t) = t;
*************** c_build_qualified_type (tree type, int t
*** 16510,16515 ****
--- 17912,17923 ----
    tree var_type = (orig_qual_type && orig_qual_indirect == 0
  		   ? orig_qual_type
  		   : build_qualified_type (type, type_quals));
+ 
+   gcc_checking_assert (C_TYPE_VARIABLE_SIZE (var_type)
+ 		       == C_TYPE_VARIABLE_SIZE (type));
+   gcc_checking_assert (C_TYPE_VARIABLY_MODIFIED (var_type)
+ 		       == C_TYPE_VARIABLY_MODIFIED (type));
+ 
    /* A variant type does not inherit the list of incomplete vars from the
       type main variant.  */
    if ((RECORD_OR_UNION_TYPE_P (var_type)
diff -Nrcpad gcc-14.2.0/gcc/c/config-lang.in gcc-15.1.0/gcc/c/config-lang.in
*** gcc-14.2.0/gcc/c/config-lang.in	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/config-lang.in	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  # Top level configure fragment for GNU C - C language.
! # Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU C - C language.
! # Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c/gccspec.cc gcc-15.1.0/gcc/c/gccspec.cc
*** gcc-14.2.0/gcc/c/gccspec.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/gccspec.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Specific flags and argument handling of the C front-end.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Specific flags and argument handling of the C front-end.
!    Copyright (C) 1999-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c/gimple-parser.cc gcc-15.1.0/gcc/c/gimple-parser.cc
*** gcc-14.2.0/gcc/c/gimple-parser.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/gimple-parser.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static tree c_parser_gimple_paren_condit
*** 125,130 ****
--- 125,163 ----
  static void c_parser_gimple_expr_list (gimple_parser &, vec<tree> *);
  
  
+ /* Much like parser_build_unary_op, but avoid applying default conversions.  */
+ 
+ static c_expr
+ gimple_parser_build_unary_op (location_t loc,
+ 			      enum tree_code code, struct c_expr arg)
+ {
+   struct c_expr result;
+ 
+   result.original_code = code;
+   result.original_type = NULL;
+   result.m_decimal = 0;
+ 
+   if (reject_gcc_builtin (arg.value))
+     {
+       result.value = error_mark_node;
+     }
+   else
+     {
+       result.value = build_unary_op (loc, code, arg.value, true);
+ 
+       if (TREE_OVERFLOW_P (result.value) && !TREE_OVERFLOW_P (arg.value))
+ 	overflow_warning (loc, result.value, arg.value);
+     }
+ 
+   /* We are typically called when parsing a prefix token at LOC acting on
+      ARG.  Reflect this by updating the source range of the result to
+      start at LOC and end at the end of ARG.  */
+   set_c_expr_source_range (&result,
+ 			   loc, arg.get_finish ());
+ 
+   return result;
+ }
+ 
  /* See if VAL is an identifier matching __BB<num> and return <num>
     in *INDEX.  */
  
*************** c_parser_gimple_parse_bb_spec (tree val,
*** 133,143 ****
  {
    if (!startswith (IDENTIFIER_POINTER (val), "__BB"))
      return false;
!   for (const char *p = IDENTIFIER_POINTER (val) + 4; *p; ++p)
!     if (!ISDIGIT (*p))
!       return false;
!   *index = atoi (IDENTIFIER_POINTER (val) + 4);
!   return *index > 0;
  }
  
  /* See if VAL is an identifier matching __BB<num> and return <num>
--- 166,186 ----
  {
    if (!startswith (IDENTIFIER_POINTER (val), "__BB"))
      return false;
! 
!   const char *bb = IDENTIFIER_POINTER (val) + 4;
!   if (! ISDIGIT (*bb))
!     return false;
! 
!   char *pend;
!   errno = 0;
!   const unsigned long number = strtoul (bb, &pend, 10);
!   if (errno == ERANGE
!       || *pend != '\0'
!       || number > INT_MAX)
!     return false;
! 
!   *index = number;
!   return true;
  }
  
  /* See if VAL is an identifier matching __BB<num> and return <num>
*************** c_parser_gimple_compound_statement (gimp
*** 664,669 ****
--- 707,722 ----
  	    break;
  	  }
  
+ 	case CPP_CLOSE_PAREN:
+ 	case CPP_CLOSE_SQUARE:
+ 	  /* Avoid infinite loop in error recovery:
+ 	     c_parser_skip_until_found stops at a closing nesting
+ 	     delimiter without consuming it, but here we need to consume
+ 	     it to proceed further.  */
+ 	  c_parser_error (parser, "expected statement");
+ 	  c_parser_consume_token (parser);
+ 	break;
+ 
  	default:
  expr_stmt:
  	  c_parser_gimple_statement (parser, seq);
*************** expr_stmt:
*** 699,705 ****
  
     gimple-assign-statement:
       gimple-unary-expression = gimple-assign-rhs
!  
     gimple-assign-rhs:
       gimple-cast-expression
       gimple-unary-expression
--- 752,758 ----
  
     gimple-assign-statement:
       gimple-unary-expression = gimple-assign-rhs
! 
     gimple-assign-rhs:
       gimple-cast-expression
       gimple-unary-expression
*************** c_parser_gimple_statement (gimple_parser
*** 879,889 ****
    if (lhs.value != error_mark_node
        && rhs.value != error_mark_node)
      {
!       /* If we parsed a comparison or an identifier and the next token
! 	 is a '?' then parse a conditional expression.  */
!       if ((COMPARISON_CLASS_P (rhs.value)
! 	   || SSA_VAR_P (rhs.value))
! 	  && c_parser_next_token_is (parser, CPP_QUERY))
  	{
  	  struct c_expr trueval, falseval;
  	  c_parser_consume_token (parser);
--- 932,940 ----
    if (lhs.value != error_mark_node
        && rhs.value != error_mark_node)
      {
!       /* If we parsed an identifier and the next token  is a '?' then parse
! 	 a conditional expression.  */
!       if (SSA_VAR_P (rhs.value) && c_parser_next_token_is (parser, CPP_QUERY))
  	{
  	  struct c_expr trueval, falseval;
  	  c_parser_consume_token (parser);
*************** c_parser_gimple_binary_expression (gimpl
*** 1055,1060 ****
--- 1106,1146 ----
  	    code = LTGT_EXPR;
  	    break;
  	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__FLOOR_DIV") == 0)
+ 	  {
+ 	    code = FLOOR_DIV_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__ROUND_DIV") == 0)
+ 	  {
+ 	    code = ROUND_DIV_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__EXACT_DIV") == 0)
+ 	  {
+ 	    code = EXACT_DIV_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__CEIL_DIV") == 0)
+ 	  {
+ 	    code = CEIL_DIV_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__FLOOR_MOD") == 0)
+ 	  {
+ 	    code = FLOOR_MOD_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__ROUND_MOD") == 0)
+ 	  {
+ 	    code = ROUND_MOD_EXPR;
+ 	    break;
+ 	  }
+ 	else if (strcmp (IDENTIFIER_POINTER (id), "__CEIL_MOD") == 0)
+ 	  {
+ 	    code = CEIL_MOD_EXPR;
+ 	    break;
+ 	  }
        }
        /* Fallthru.  */
      default:
*************** c_parser_gimple_unary_expression (gimple
*** 1150,1156 ****
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
        mark_exp_read (op.value);
!       return parser_build_unary_op (op_loc, ADDR_EXPR, op);
      case CPP_MULT:
        {
  	c_parser_consume_token (parser);
--- 1236,1242 ----
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
        mark_exp_read (op.value);
!       return gimple_parser_build_unary_op (op_loc, ADDR_EXPR, op);
      case CPP_MULT:
        {
  	c_parser_consume_token (parser);
*************** c_parser_gimple_unary_expression (gimple
*** 1175,1189 ****
      case CPP_PLUS:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return parser_build_unary_op (op_loc, CONVERT_EXPR, op);
      case CPP_MINUS:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return parser_build_unary_op (op_loc, NEGATE_EXPR, op);
      case CPP_COMPL:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return parser_build_unary_op (op_loc, BIT_NOT_EXPR, op);
      case CPP_NOT:
        c_parser_error (parser, "%<!%> not valid in GIMPLE");
        return ret;
--- 1261,1275 ----
      case CPP_PLUS:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return gimple_parser_build_unary_op (op_loc, CONVERT_EXPR, op);
      case CPP_MINUS:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return gimple_parser_build_unary_op (op_loc, NEGATE_EXPR, op);
      case CPP_COMPL:
        c_parser_consume_token (parser);
        op = c_parser_gimple_postfix_expression (parser);
!       return gimple_parser_build_unary_op (op_loc, BIT_NOT_EXPR, op);
      case CPP_NOT:
        c_parser_error (parser, "%<!%> not valid in GIMPLE");
        return ret;
*************** c_parser_gimple_unary_expression (gimple
*** 1193,1203 ****
  	case RID_REALPART:
  	  c_parser_consume_token (parser);
  	  op = c_parser_gimple_postfix_expression (parser);
! 	  return parser_build_unary_op (op_loc, REALPART_EXPR, op);
  	case RID_IMAGPART:
  	  c_parser_consume_token (parser);
  	  op = c_parser_gimple_postfix_expression (parser);
! 	  return parser_build_unary_op (op_loc, IMAGPART_EXPR, op);
  	default:
  	  return c_parser_gimple_postfix_expression (parser);
  	}
--- 1279,1289 ----
  	case RID_REALPART:
  	  c_parser_consume_token (parser);
  	  op = c_parser_gimple_postfix_expression (parser);
! 	  return gimple_parser_build_unary_op (op_loc, REALPART_EXPR, op);
  	case RID_IMAGPART:
  	  c_parser_consume_token (parser);
  	  op = c_parser_gimple_postfix_expression (parser);
! 	  return gimple_parser_build_unary_op (op_loc, IMAGPART_EXPR, op);
  	default:
  	  return c_parser_gimple_postfix_expression (parser);
  	}
*************** c_parser_gimple_unary_expression (gimple
*** 1208,1220 ****
  	    {
  	      c_parser_consume_token (parser);
  	      op = c_parser_gimple_postfix_expression (parser);
! 	      return parser_build_unary_op (op_loc, ABS_EXPR, op);
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__ABSU") == 0)
  	    {
  	      c_parser_consume_token (parser);
  	      op = c_parser_gimple_postfix_expression (parser);
! 	      return parser_build_unary_op (op_loc, ABSU_EXPR, op);
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__MIN") == 0)
  	    return c_parser_gimple_parentized_binary_expression (parser,
--- 1294,1306 ----
  	    {
  	      c_parser_consume_token (parser);
  	      op = c_parser_gimple_postfix_expression (parser);
! 	      return gimple_parser_build_unary_op (op_loc, ABS_EXPR, op);
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__ABSU") == 0)
  	    {
  	      c_parser_consume_token (parser);
  	      op = c_parser_gimple_postfix_expression (parser);
! 	      return gimple_parser_build_unary_op (op_loc, ABSU_EXPR, op);
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__MIN") == 0)
  	    return c_parser_gimple_parentized_binary_expression (parser,
*************** c_parser_parse_ssa_name_id (tree id, uns
*** 1288,1294 ****
  /* Get at the actual SSA name ID with VERSION starting at VER_OFFSET.
     TYPE is the type if the SSA name is being declared.  */
  
! static tree 
  c_parser_parse_ssa_name (gimple_parser &parser,
  			 tree id, tree type, unsigned version,
  			 unsigned ver_offset)
--- 1374,1380 ----
  /* Get at the actual SSA name ID with VERSION starting at VER_OFFSET.
     TYPE is the type if the SSA name is being declared.  */
  
! static tree
  c_parser_parse_ssa_name (gimple_parser &parser,
  			 tree id, tree type, unsigned version,
  			 unsigned ver_offset)
*************** c_parser_parse_ssa_name (gimple_parser &
*** 1305,1311 ****
  	{
  	  if (! type)
  	    {
! 	      c_parser_error (parser, "SSA name undeclared"); 
  	      return error_mark_node;
  	    }
  	  name = make_ssa_name_fn (cfun, type, NULL, version);
--- 1391,1397 ----
  	{
  	  if (! type)
  	    {
! 	      c_parser_error (parser, "SSA name undeclared");
  	      return error_mark_node;
  	    }
  	  name = make_ssa_name_fn (cfun, type, NULL, version);
*************** c_parser_parse_ssa_name (gimple_parser &
*** 1327,1333 ****
  	  XDELETEVEC (var_name);
  	  if (! parent || parent == error_mark_node)
  	    {
! 	      c_parser_error (parser, "base variable or SSA name undeclared"); 
  	      return error_mark_node;
  	    }
  	  if (!(VAR_P (parent)
--- 1413,1419 ----
  	  XDELETEVEC (var_name);
  	  if (! parent || parent == error_mark_node)
  	    {
! 	      c_parser_error (parser, "base variable or SSA name undeclared");
  	      return error_mark_node;
  	    }
  	  if (!(VAR_P (parent)
*************** c_parser_gimple_declaration (gimple_pars
*** 2165,2171 ****
  				    specs->typespec_kind != ctsk_none,
  				    C_DTR_NORMAL, &dummy);
  
!   if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        /* Handle SSA name decls specially, they do not go into the identifier
           table but we simply build the SSA name for later lookup.  */
--- 2251,2262 ----
  				    specs->typespec_kind != ctsk_none,
  				    C_DTR_NORMAL, &dummy);
  
!   if (!c_parser_next_token_is (parser, CPP_SEMICOLON))
!     {
!       c_parser_error (parser, "expected %<;%>");
!       return;
!     }
!   if (declarator)
      {
        /* Handle SSA name decls specially, they do not go into the identifier
           table but we simply build the SSA name for later lookup.  */
*************** c_parser_gimple_declaration (gimple_pars
*** 2210,2220 ****
  			 NULL_TREE);
  	}
      }
-   else
-     {
-       c_parser_error (parser, "expected %<;%>");
-       return;
-     }
  }
  
  /* Parse gimple goto statement.  */
--- 2301,2306 ----
diff -Nrcpad gcc-14.2.0/gcc/c/gimple-parser.h gcc-15.1.0/gcc/c/gimple-parser.h
*** gcc-14.2.0/gcc/c/gimple-parser.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c/gimple-parser.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/ChangeLog gcc-15.1.0/gcc/c-family/ChangeLog
*** gcc-14.2.0/gcc/c-family/ChangeLog	Thu Aug  1 08:18:19 2024
--- gcc-15.1.0/gcc/c-family/ChangeLog	Fri Apr 25 08:21:06 2025
***************
*** 1,6 ****
! 2024-08-01  Release Manager
  
! 	* GCC 14.2.0 released.
  
  2024-07-03  Lewis Hyatt  <lhyatt@gmail.com>
  
--- 1,1007 ----
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
! 
! 2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR c/81831
! 	* c.opt (Wpsabi): Remove "Undocumented" modifier and add a
! 	documentation string.
! 
! 2025-04-03  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2025-03-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wdeprecated-literal-operator): Use \"\" rather than ""
! 	in option description.
! 
! 2025-03-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/116545
! 	* c-attribs.cc (c_common_clang_attributes): Add musttail.
! 
! 2025-03-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/119120
! 	* c-gimplify.cc (c_genericize_control_r): Set DECL_NOT_GIMPLE_REG_P
! 	on {REAL,IMAG}PART_EXPR is_gimple_reg operand at -O0 if it is lhs
! 	of a MODIFY_EXPR.
! 
! 2025-03-13  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/119265
! 	* c-ada-spec.cc (dump_ada_node) <INTEGER_TYPE>: Deal with typedefs
! 	of unsigned __int128.
! 
! 2025-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117178
! 	* c-attribs.cc (handle_nonstring_attribute): Allow the attribute also
! 	on multi-dimensional arrays with char/signed char/unsigned char
! 	element type or pointers to such single and multi-dimensional arrays.
! 
! 2025-03-07  Kees Cook  <kees@kernel.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117178
! 	* c.opt (Wunterminated-string-initialization): Don't depend on
! 	-Wc++-compat.
! 
! 2025-03-05  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/115580
! 	* c-common.cc (check_function_arguments): Return early if
! 	c_inhibit_evaluation_warnings.
! 
! 2025-02-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wc++26-extensions): Add CppReason(CPP_W_CXX26_EXTENSIONS).
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_pp_embed=202502
! 	for C++26.
! 
! 2025-02-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/118822
! 	PR c++/118833
! 	* c-common.h (WHILE_COND_CLEANUP): Change description in comment.
! 	(FOR_COND_CLEANUP): Likewise.
! 	* c-gimplify.cc (genericize_c_loop): Adjust for COND_CLEANUP
! 	being CLEANUP_STMT/TRY_FINALLY_EXPR trailing nesting depth
! 	instead of actual cleanup.
! 
! 2025-02-11  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/188574
! 	* c-opts.cc (c_common_post_options): Only enable
! 	-frange-for-ext-temps by default in C++23.
! 
! 2025-02-07  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/86769
! 	* c-common.def (FOR_STMT): Add 2 operands and document them.
! 	(WHILE_STMT): Likewise.
! 	* c-common.h (WHILE_COND_PREP, WHILE_COND_CLEANUP): Define.
! 	(FOR_COND_PREP, FOR_COND_CLEANUP): Define.
! 	* c-gimplify.cc (genericize_c_loop): Add COND_PREP and COND_CLEANUP
! 	arguments, handle them if they are non-NULL.
! 	(genericize_for_stmt, genericize_while_stmt, genericize_do_stmt):
! 	Adjust callers.
! 
! 2025-02-07  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* c-gimplify.cc (c_genericize): Pass 'local_dump_flags' to
! 	'print_c_tree'.
! 	* c-pretty-print.cc (c_pretty_printer::statement): Pass
! 	'dump_flags' to 'dump_generic_node'.
! 	(c_pretty_printer::c_pretty_printer): Initialize 'dump_flags'.
! 	(print_c_tree): Add 'dump_flags_t' formal parameter.
! 	(debug_c_tree): Adjust.
! 	* c-pretty-print.h (c_pretty_printer): Add 'dump_flags_t
! 	dump_flags'.
! 	(c_pretty_printer::c_pretty_printer): Add 'dump_flags_t' formal
! 	parameter.
! 	(print_c_tree): Adjust.
! 
! 2025-01-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.cc (make_tree_vector_from_ctor): Only use make_tree_vector
! 	for ctors with <= 16 elements.
! 
! 2025-01-23  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	PR c++/107741
! 	* c-opts.cc (c_common_post_options): Bump ABI version.
! 
! 2025-01-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.h (append_ctor_to_tree_vector): Declare.
! 	* c-common.cc (append_ctor_to_tree_vector): New function.
! 	(make_tree_vector_from_ctor): Use it.
! 
! 2025-01-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/118528
! 	* c-common.cc (make_tree_vector_from_ctor): Expand RAW_DATA_CST
! 	elements from the CONSTRUCTOR to individual INTEGER_CSTs.
! 
! 2025-01-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/118509
! 	* c-omp.cc (c_finish_omp_for): Handle TARGET_EXPR in first operand
! 	of COMPOUND_EXPR incr the same as SAVE_EXPR.
! 
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-attribs.cc (c_common_gnu_attributes): Delete "omp declare
! 	target block".
! 
! 2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	PR middle-end/112779
! 	PR middle-end/113904
! 	* c-common.h (enum c_omp_directive_kind): Add C_OMP_DIR_META.
! 	(c_omp_expand_variant_construct): Declare.
! 	* c-gimplify.cc: Include omp-general.h.
! 	(genericize_omp_metadirective_stmt): New.
! 	(c_genericize_control_stmt): Add case for OMP_METADIRECTIVE.
! 	* c-omp.cc (c_omp_directives): Fix entries for metadirective.
! 	(c_omp_expand_variant_construct_r): New.
! 	(c_omp_expand_variant_construct): New.
! 	* c-pragma.cc (omp_pragmas): Add metadirective.
! 	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_METADIRECTIVE.
! 
! 2025-01-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lex.cc (interpret_float): Use -std=c++23 and -std=gnu++23
! 	in diagnostics rather than -std=c++2b and -std=gnu++2b.
! 
! 2025-01-12  Hans-Peter Nilsson  <hp@bitrange.com>
! 
! 	PR middle-end/118303
! 	* c-pretty-print.cc (c_pretty_printer::primary_expression) <SSA_NAME>:
! 	Call primary_expression for all SSA_NAME_VAR nodes and instead move the
! 	DECL_ARTIFICIAL private name stripping to...
! 	(pp_c_tree_decl_identifier): ...here.
! 
! 2025-01-02  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	* c-attribs.cc: (c_common_gnu_attributes): Rename "omp declare variant
! 	variant adjust_args" into "omp declare variant variant args" to also
! 	accommodate append_args.
! 
! 2024-12-20  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-12-20  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	* c.opt: New warning '-Wtemplate-names-tu-local'.
! 
! 2024-12-18  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_omp_interop_t_p): Handle error_mark_node.
! 
! 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/110345
! 	* c-common.h (attr_aligned_exclusions): Declare.
! 	(handle_aligned_attribute): Likewise.
! 	* c-attribs.cc (handle_aligned_attribute): No longer
! 	static.
! 	(attr_aligned_exclusions): Use extern instead of static.
! 
! 2024-12-17  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR c/26154
! 	* c.opt.urls: Regenerated.
! 
! 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR sarif-replay/117943
! 	* c-format.cc (selftest::test_type_mismatch_range_labels): Use
! 	dc.m_source_printing.
! 	* c-opts.cc (c_diagnostic_text_finalizer): Use source-printing
! 	options from text_output.
! 
! 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Peter Eisentraut  <peter@eisentraut.org>
! 
! 	PR c/115532
! 	* c.opt.urls: Regenerated.
! 
! 2024-12-12  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c.opt (Wtautological-compare): Move to ../common.opt.
! 
! 2024-12-10  Arsen Arsenović  <arsen@aarsen.me>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* c-pretty-print.cc (c_pretty_printer::storage_class_specifier):
! 	Check that we're looking at a PARM_DECL or VAR_DECL before
! 	looking at DECL_REGISTER.
! 
! 2024-12-10  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/117788
! 	* c-warn.cc (do_warn_array_compare): Emit a permerror in C++26.
! 
! 2024-12-09  Matthew Malcomson  <mmalcomson@nvidia.com>
! 
! 	* c-common.cc (builtin_function_validate_nargs,
! 	check_builtin_function_arguments,
! 	speculation_safe_value_resolve_call,
! 	speculation_safe_value_resolve_params, sync_resolve_size,
! 	sync_resolve_params, get_atomic_generic_size,
! 	resolve_overloaded_atomic_exchange,
! 	resolve_overloaded_atomic_compare_exchange,
! 	resolve_overloaded_atomic_load, resolve_overloaded_atomic_store,
! 	resolve_overloaded_builtin):  Add `complain` boolean parameter
! 	and determine whether to emit errors based on its value.
! 	* c-common.h (check_builtin_function_arguments,
! 	resolve_overloaded_builtin):  Mention `complain` boolean
! 	parameter in declarations.  Give it a default of `true`.
! 
! 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-attribs.cc: Include "gcc-urlifier.h".
! 	(positional_argument): Use auto_urlify_attributes.
! 	* c-common.cc: Include "gcc-urlifier.h".
! 	(parse_optimize_options): Use auto_urlify_attributes with
! 	OPT_Wattributes.
! 	(attribute_fallthrough_p): Use auto_urlify_attributes.
! 	* c-warn.cc: Include "gcc-urlifier.h".
! 	(diagnose_mismatched_attributes): Use auto_urlify_attributes.
! 
! 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/107980
! 	* c-common.h (enum rid): Add RID_C23_VA_START.
! 	* c-common.cc (c_common_reswords): Add __builtin_c23_va_start.
! 
! 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wdeprecated-variadic-comma-omission): New option.
! 	* c.opt.urls: Regenerate.
! 	* c-opts.cc (c_common_post_options): Default to
! 	-Wdeprecated-variadic-comma-omission for C++26 or -Wpedantic.
! 
! 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
! 
! 	* c-common.cc (convert_vector_to_array_for_subscript): Add
! 	range-check for target vector types.
! 
! 2024-11-28  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/113798
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_pack_indexing=202311L for C++26.
! 
! 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117023
! 	* c-attribs.cc (handle_nonnull_if_nonzero_attribute): New
! 	function.
! 	(c_common_gnu_attributes): Add nonnull_if_nonzero attribute.
! 	(handle_nonnull_attribute): Fix comment typo.
! 	* c-common.cc (struct nonnull_arg_ctx): Add other member.
! 	(check_function_nonnull): Also check nonnull_if_nonzero attributes.
! 	(check_nonnull_arg): Use different warning wording if pctx->other
! 	is non-zero.
! 	(check_function_arguments): Initialize ctx.other.
! 
! 2024-11-28  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/117757
! 	* c-gimplify.cc (c_gimplify_expr): Check for error_operand_p
! 	before calling TYPE_MAIN_VARIANT for shifts.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/82892
! 	* c-common.h (get_option_for_builtin_define): New decl.
! 	* c-cppbuiltin.cc (get_option_for_builtin_define): New.
! 	* known-headers.cc: Include "opts.h".
! 	(suggest_missing_option::suggest_missing_option): New.
! 	(suggest_missing_option::~suggest_missing_option): New.
! 	* known-headers.h (class suggest_missing_option): New.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c++/87850
! 	* c-common.cc: Include "gcc-rich-location.h".
! 	(maybe_emit_indirection_note): New function.
! 	* c-common.h (maybe_emit_indirection_note): New decl.
! 	(compatible_types_for_indirection_note_p): New decl.
! 
! 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/104896
! 	* c-lex.cc (c_common_lex_availability_macro): Replace "%<%s%>"
! 	with "%qs" in message wording.
! 	* c-opts.cc (c_common_handle_option): Likewise.
! 	* c-warn.cc (warn_parm_array_mismatch): Likewise.
! 
! 2024-11-27  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Initialize
! 	warn_free_labels.
! 	* c.opt (Wfree-labels): New option.
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-27  Jason Merrill  <jason@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Enable -Warray-compare
! 	in C++20.
! 
! 2024-11-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/43374
! 	* c-cppbuiltin.cc (builtin_define_decimal_float_constants): Use
! 	get_max_float.
! 
! 2024-11-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-23  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	* c-indentation.cc (should_warn_for_misleading_indentation): Remove
! 	comment about -flarge-source-files.
! 	* c-lex.cc (cb_ident): Change "unsigned int" argument to type
! 	"location_t".
! 	(cb_def_pragma): Likewise.
! 	(cb_define): Likewise.
! 	(cb_undef): Likewise.
! 
! 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR bootstrap/117737
! 	* c-ada-spec.cc (INCLUDE_MEMORY): Remove.
! 	* c-attribs.cc (INCLUDE_MEMORY): Remove.
! 	* c-common.cc (INCLUDE_MEMORY): Remove.
! 	* c-format.cc (INCLUDE_MEMORY): Remove.
! 	* c-gimplify.cc (INCLUDE_MEMORY): Remove.
! 	* c-indentation.cc (INCLUDE_MEMORY): Remove.
! 	* c-opts.cc (INCLUDE_MEMORY): Remove.
! 	* c-pch.cc (INCLUDE_MEMORY): Remove.
! 	* c-pragma.cc (INCLUDE_MEMORY): Remove.
! 	* c-pretty-print.cc (INCLUDE_MEMORY): Remove.
! 	* c-type-mismatch.cc (INCLUDE_MEMORY): Remove.
! 	* c-warn.cc (INCLUDE_MEMORY): Remove.
! 	* known-headers.cc (INCLUDE_MEMORY): Remove.
! 	* name-hint.h: Remove check of INCLUDE_MEMORY.
! 
! 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/110137
! 	PR middle-end/101480
! 	* c.opt (fassume-sane-operators-new-delete): New option.
! 
! 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117641
! 	* c-common.cc (sync_resolve_size): For size 16 with _BitInt
! 	on targets where TImode isn't supported, use goto incompatible if
! 	!fetch.
! 
! 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_INTEROP.
! 
! 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-common.h (enum c_omp_region_type): Add C_ORT_INTEROP
! 	and C_ORT_OMP_INTEROP.
! 	(c_omp_interop_t_p): New prototype.
! 	* c-omp.cc (c_omp_interop_t_p): Check whether the type is
! 	omp_interop_t.
! 	(c_omp_directives): Uncomment 'interop'.
! 	* c-pragma.cc (omp_pragmas): Add 'interop'.
! 	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_INTEROP.
! 	(enum pragma_omp_clause): Add init, use, and destroy clauses.
! 
! 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (std=c23, std=gnu23, std=iso9899:2024): Adjust description
! 	for publication of the ISO/IEC 9899:2024 standard.
! 
! 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	* c-attribs.cc (c_common_gnu_attributes): Add attribute for adjust_args
! 	need_device_ptr.
! 	* c-omp.cc (c_omp_directives): Uncomment dispatch.
! 	* c-pragma.cc (omp_pragmas): Add dispatch.
! 	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_DISPATCH.
! 	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NOCONTEXT and
! 	PRAGMA_OMP_CLAUSE_NOVARIANTS.
! 
! 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117641
! 	* c-common.cc (sync_resolve_size): For size == 16 fetch of
! 	BITINT_TYPE if TImode isn't supported scalar mode diagnose
! 	and return 0 if orig_format instead of returning 16.
! 
! 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116253
! 	* c-opts.cc (c_diagnostic_text_finalizer): Use
! 	text_output.build_indent_prefix for prefix to
! 	diagnostic_show_locus.
! 
! 2024-11-17  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-17  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/95445
! 	* c-opts.cc (c_common_post_options): Initialize
! 	warn_deprecated_non_prototype.
! 	* c.opt (Wdeprecated-non-prototype): New option.
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-17  Jason Merrill  <jason@redhat.com>
! 
! 	* c-ppoutput.cc (preprocess_file): Don't set directives_only here.
! 
! 2024-11-17  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add -fsearch-include-path.
! 	* c-opts.cc (c_common_post_options): Handle it.
! 
! 2024-11-15  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-opts.cc (c_common_init_options): Default to C23.
! 
! 2024-11-15  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-15  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Initialize
! 	warn_missing_parameter_name.
! 	* c.opt (Wmissing-parameter-name): New.
! 
! 2024-11-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.h (enum rid): Add RID_DFLOAT64X.
! 	* c-common.cc (c_global_trees): Fix comment typo.  Add
! 	dfloat64x_type_node.
! 	(c_common_nodes_and_builtins): Handle RID_DFLOAT64X.
! 	* c-cppbuiltin.cc (c_cpp_builtins): Call
! 	builtin_define_decimal_float_constants also for dfloat64x_type_node
! 	if non-NULL.
! 	* c-lex.cc (interpret_float): Handle d64x suffixes.
! 	* c-pretty-print.cc (pp_c_floating_constant): Print d64x suffixes
! 	on dfloat64x_type_node typed constants.
! 
! 2024-11-13  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117059
! 	* c.opt (Wzero-as-null-pointer-constant): Enable for C and ObjC.
! 
! 2024-11-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lex.cc (interpret_float): Subtract 3 or 4 from copylen
! 	rather than 2 if last character of CPP_N_DFLOAT is a digit.
! 
! 2024-11-12  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-11-11  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add -fmodules with same effect as -fmodules-ts.
! 
! 2024-11-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.h (enum rid): Add RID_BUILTIN_OPERATOR_NEW
! 	and RID_BUILTIN_OPERATOR_DELETE.
! 	(names_builtin_p): Change return type from bool to int.
! 	* c-common.cc (c_common_reswords): Add __builtin_operator_new
! 	and __builtin_operator_delete.
! 
! 2024-11-07  Paul Iannetta  <piannetta@kalrayinc.com>
! 
! 	* c-pragma.cc (struct pragma_pp_data): Use (struct internal_pragma_handler);
! 	(c_register_pragma_1): Always register name and space for all pragmas.
! 	(c_invoke_pragma_handler): Adapt.
! 	(c_invoke_early_pragma_handler): Likewise.
! 	(c_pp_invoke_early_pragma_handler): Likewise.
! 
! 2024-11-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (std=c++2b, std=c++23, std=gnu++2b, std=gnu++23): Adjust
! 	description now that ISO C++ 14882:2024 is published.
! 
! 2024-10-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117145
! 	PR c/117245
! 	PR c/100420
! 	* c-pretty-print.cc (c_pretty_printer::direct_abstract_declarator):
! 	Detect arrays of unspecified size.
! 
! 2024-10-30  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c.opt (std=c23, std=gnu23, std=iso9899:2024): Do not mark as
! 	experimental and incomplete.
! 
! 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117021
! 	* c-common.cc (c_add_case_label): Emit different diagnostics for C
! 	on case ranges.  Diagnose for C using pedwarn conversions of range
! 	expressions changing value and don't emit further conversion
! 	diagnostics if the pedwarn has been diagnosed.  For empty ranges
! 	bail out after emitting warning, don't add anything into splay
! 	trees nor add a CASE_LABEL_EXPR.
! 
! 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-format.cc (selftest::test_type_mismatch_range_labels): Update
! 	for m_printer becoming reference printer.
! 	(selftest::test_type_mismatch_range_labels): Likewise.
! 
! 2024-10-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117313
! 	* c-common.cc (complete_array_type): For RAW_DATA_CST elements
! 	advance curindex by RAW_DATA_LENGTH or one less than that if
! 	ce->index is non-NULL.  Handle even the first element if
! 	it is RAW_DATA_CST.  Formatting fix.
! 
! 2024-10-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117030
! 	* c-common.cc (c_common_reswords): Add __builtin_stdc_rotate_left
! 	and __builtin_stdc_rotate_right.
! 	* c-ubsan.cc (ubsan_instrument_shift): For {L,R}ROTATE_EXPR
! 	just check if op1 is negative.
! 
! 2024-10-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (warn_trailing_whitespace_kind): Change blank
! 	to blanks and space to any.
! 
! 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-ubsan.cc: Remove trailing whitespace.
! 	* stub-objc.cc: Likewise.
! 	* c-pragma.cc: Likewise.
! 	* c-ppoutput.cc: Likewise.
! 	* c-indentation.cc: Likewise.
! 	* c-ada-spec.cc: Likewise.
! 	* c-opts.cc: Likewise.
! 	* c-common.cc: Likewise.
! 	* c-format.cc: Likewise.
! 	* c-omp.cc: Likewise.
! 	* c-objc.h: Likewise.
! 	* c-cppbuiltin.cc: Likewise.
! 	* c-attribs.cc: Likewise.
! 	* c-target.def: Likewise.
! 	* c-common.h: Likewise.
! 
! 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
! 	    Gaius Mulley  <gaiusmod2@gmail.com>
! 
! 	PR other/116613
! 	* c-ada-spec.cc: Add #define INCLUDE_MEMORY.
! 	* c-attribs.cc: Likewise.
! 	* c-common.cc: Likewise.
! 	* c-format.cc: Likewise.
! 	* c-gimplify.cc: Likewise.
! 	* c-indentation.cc: Likewise.
! 	* c-opts.cc: Likewise.
! 	* c-pch.cc: Likewise.
! 	* c-pragma.cc: Likewise.
! 	* c-pretty-print.cc: Likewise.  Add #include "make-unique.h".
! 	(c_pretty_printer::clone): Use std::unique_ptr and ::make_unique.
! 	* c-pretty-print.h (c_pretty_printer::clone): Use std::unique_ptr.
! 	* c-type-mismatch.cc: Add #define INCLUDE_MEMORY.
! 	* c-warn.cc: Likewise.
! 
! 2024-10-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-10-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wleading-whitespace=): New option.
! 	* c-opts.cc (c_common_post_options): Set cpp_opts->cpp_tabstop
! 	to global_dc->m_tabstop.
! 
! 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117230
! 	* c-warn.cc (sizeof_pointer_memaccess_warning): Only compare
! 	TYPE_PRECISION of TREE_TYPE (type) to precision of char if
! 	TREE_TYPE (type) is integral type.
! 
! 2024-10-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117028
! 	* c.opt (Wc23-c2y-compat): Add CPP and CppReason parameters.
! 	* c-opts.cc (set_std_c2y): Use CLK_STDC2Y or CLK_GNUC2Y rather
! 	than CLK_STDC23 and CLK_GNUC23.  Formatting fix.
! 	* c-lex.cc (interpret_integer): Handle C2Y 0o or 0O prefixed
! 	and wb/WB/uwb/UWB suffixed octal constants.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-opts.cc (c_common_init_options, c_common_handle_option,
! 	c_common_finish, set_std_c89, set_std_c99, set_std_c11,
! 	set_std_c17, set_std_c23, set_std_cxx98, set_std_cxx11,
! 	set_std_cxx14, set_std_cxx17, set_std_cxx20, set_std_cxx23,
! 	set_std_cxx26): ?: operator formatting fixes.
! 
! 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-ppoutput.cc (token_streamer::stream): Add special code to spell
! 	CPP_EMBED token.
! 	* c-lex.cc (c_lex_with_flags): Handle CPP_EMBED.  Formatting fix.
! 	* c-common.cc (c_parse_error): Handle CPP_EMBED.
! 	(braced_list_to_string): Optimize RAW_DATA_CST surrounded by
! 	INTEGER_CSTs which match some bytes before or after RAW_DATA_CST in
! 	its owner.
! 
! 2024-10-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/116016
! 	* c-common.cc: Add new __builtin_counted_by_ref.
! 	* c-common.h (enum rid): Add RID_BUILTIN_COUNTED_BY_REF.
! 
! 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/117022
! 	* c-common.def (FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
! 	CONTINUE_STMT, SWITCH_STMT): Add an extra operand, *_NAME
! 	and document it.
! 	* c-common.h (bc_hash_map_t): New typedef.
! 	(struct bc_state): Add bc_hash_map member.
! 	(WHILE_NAME, DO_NAME, FOR_NAME, BREAK_NAME, CONTINUE_NAME,
! 	SWITCH_STMT_NAME): Define.
! 	* c-pretty-print.cc (c_pretty_printer::statement): Print
! 	BREAK_STMT or CONTINUE_STMT operand if any.
! 	* c-gimplify.cc (bc_hash_map): New static variable.
! 	(note_named_bc, release_named_bc): New functions.
! 	(save_bc_state): Save and clear bc_hash_map.
! 	(restore_bc_state): Assert NULL and restore bc_hash_map.
! 	(genericize_c_loop): Add NAME argument, call note_named_bc
! 	and release_named_bc if non-NULL around the body walk.
! 	(genericize_for_stmt, genericize_while_stmt, genericize_do_stmt):
! 	Adjust callers of it.
! 	(genericize_switch_stmt): Rename break_block variable to blab.
! 	Call note_named_bc and release_named_bc if SWITCH_STMT_NAME is
! 	non-NULL around the body walk.
! 	(genericize_continue_stmt): Handle non-NULL CONTINUE_NAME.
! 	(genericize_break_stmt): Handle non-NULL BREAK_NAME.
! 	(c_genericize): Delete and clear bc_hash_map.
! 
! 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c++/117157
! 	* c.opt.urls: Regenerate.
! 
! 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wtrailing-whitespace=): New option.
! 	(Wtrailing-whitespace): New alias.
! 	* c.opt.urls: Regenerate.
! 
! 2024-10-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lex.cc (c_common_has_attribute,
! 	c_common_lex_availability_macro): Fix up -Wformat-diag warnings.
! 
! 2024-10-09  Jason Merrill  <jason@redhat.com>
! 
! 	* c-ppoutput.cc (preprocess_file): Set directives_only flag.
! 
! 2024-10-09  Ken Matsui  <kmatsui@gcc.gnu.org>
! 
! 	PR preprocessor/89808
! 	* c.opt (Wpragma_once_outside_header): Define new option.
! 	* c.opt.urls: Regenerate.
! 
! 2024-10-07  Jason Merrill  <jason@redhat.com>
! 
! 	* c-ppoutput.cc (preprocess_file): For modules,
! 	use directives-only scan even with flag_no_output.
! 	(directives_only_cb): Respect flag_no_output.
! 
! 2024-10-03  Jason Merrill  <jason@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Explicit -Wdeprecated enables
! 	deprecations from later standards.
! 
! 2024-10-03  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add -Wdeprecated-literal-operator.
! 	* c-opts.cc (c_common_post_options): Default on in C++23.
! 	* c.opt.urls: Regenerate.
! 
! 2024-10-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/96842
! 	* c.opt (Wheader-guard): New option.
! 	* c.opt.urls: Regenerated.
! 	* c-ppoutput.cc (init_pp_output): Initialize also cb->get_suggestion.
! 
! 2024-10-01  Jason Merrill  <jason@redhat.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Don't define __cpp_concepts
! 	before C++17.
! 
! 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-format.cc (selftest::test_type_mismatch_range_labels):
! 	Explicitly pass in dc.m_printer to diagnostic_show_locus.
! 
! 2024-09-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR libstdc++/116847
! 	* c-pch.cc: Include diagnostic.h.
! 	(c_common_write_pch): Call global_dc->pch_save.
! 	(c_common_read_pch): Call global_dc->pch_restore.
! 
! 2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>
! 
! 	PR other/116801
! 	* c.opt.urls: Regenerate.
! 
! 2024-09-25  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-pretty-print.cc (c_pretty_printer::primary_expression): Use
! 	TARGET_EXPR accessors.
! 	(c_pretty_printer::expression): Likewise.
! 
! 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/107637
! 	* c.opt (frange-for-ext-temps): New option.
! 	* c-opts.cc (c_common_post_options): Set flag_range_for_ext_temps
! 	for C++23 or later or for C++11 or later in !flag_iso mode if
! 	the option wasn't set by user.
! 	* c-cppbuiltin.cc (c_cpp_builtins): Change __cpp_range_based_for
! 	value for flag_range_for_ext_temps from 201603L to 202212L in C++17
! 	or later.
! 	* c-omp.cc (c_find_nested_loop_xform_r): Handle CLEANUP_POINT_EXPR
! 	like TRY_FINALLY_EXPR.
! 
! 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-opts.cc: Include "diagnostic-format-text.h".
! 	(c_diagnostic_finalizer): Rename to...
! 	(c_diagnostic_text_finalizer): ...this.  Convert first param
! 	from diagnostic_context * to diagnostic_text_output_format & and
! 	update accordingly.
! 	(c_common_diagnostics_set_defaults): Update for renamings.
! 
! 2024-09-19  Marek Polacek  <polacek@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-09-19  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/116162
! 	* c.opt (Wdefaulted-function-deleted): New.
! 
! 2024-09-12  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add CppReason for Wc++{14,17,20,23}-extensions.
! 	* c-pragma.cc (handle_pragma_diagnostic_impl): Don't check
! 	OPT_Wc__23_extensions.
! 
! 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/105863
! 	* c.opt (-embed-dir=): New option.
! 	(-embed-directory): New alias.
! 	(-embed-directory=): New alias.
! 	* c-opts.cc (c_common_handle_option): Handle OPT__embed_dir_.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc (c_option_controlling_cpp_diagnostic): Return
! 	diagnostic_option_id rather than int.
! 	(c_cpp_diagnostic): Update for renaming of
! 	diagnostic_override_option_index to diagnostic_set_option_id.
! 
! 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116613
! 	* c-format.cc (selftest::test_type_mismatch_range_labels): Rename
! 	diagnostic_context's "printer" field to "m_printer".
! 	(selftest::test_type_mismatch_range_labels): Likewise.
! 	* c-opts.cc (c_diagnostic_finalizer): Likewise.
! 
! 2024-09-06  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/46457
! 	PR c++/81665
! 	* c-attribs.cc (handle_flag_enum_attribute): New.
! 	(c_common_gnu_attributes): Add it.
! 	(c_common_clang_attributes, c_common_clang_attribute_table): New.
! 	* c-common.h: Declare c_common_clang_attribute_table.
! 	* c-warn.cc (c_do_switch_warnings): Handle flag_enum.
! 
! 2024-09-03  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): Is ignored and issues
! 	warning with -Wattributes in C++ for now.
! 
! 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-ada-spec.cc (dump_ada_node): Prefix all output_buffer fields
! 	with "m_".
! 	* c-pretty-print.cc (pp_c_integer_constant): Likewise.
! 	(pp_c_integer_constant): Likewise.
! 	(pp_c_floating_constant): Likewise.
! 	(pp_c_fixed_constant): Likewise.
! 
! 2024-08-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/116130
! 	* c-attribs.cc (c_common_gnu_attributes): Add entries for
! 	"unsequenced", "reproducible", "unsequenced noptr" and
! 	"reproducible noptr" attributes.
! 	(handle_unsequenced_attribute): New function.
! 	(handle_reproducible_attribute): Likewise.
! 	* c-common.h (handle_unsequenced_attribute): Declare.
! 	(handle_reproducible_attribute): Likewise.
! 	* c-lex.cc (c_common_has_attribute): Return 202311 for standard
! 	unsequenced and reproducible attributes.
! 
! 2024-08-28  Jason Merrill  <jason@redhat.com>
! 
! 	* c-pragma.cc (handle_pragma_diagnostic_impl): Also handle
! 	-Wc++23-extensions early.
! 	* c-lex.cc (interpret_float): Use -Wc++23-extensions for extended
! 	floating point literal pedwarn.
! 
! 2024-08-09  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-pragma.cc (c_pp_lookup_pragma): Use ARRAY_SIZE in
! 	n_omp_pragmas_simd initializer.
! 	(init_pragmas): Likewise.
! 
! 2024-08-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/115744
! 	* c-cppbuiltin.cc (c_cpp_builtins): Change __cpp_constexpr
! 	from 202306L to 202406L for C++26.
! 
! 2024-08-07  Patrick Palka  <ppalka@redhat.com>
! 
! 	PR c++/116064
! 	* c.opt (Wtemplate-body): New warning.
! 
! 2024-08-02  Marek Polacek  <polacek@redhat.com>
! 
! 	* c.opt (Wdangling-reference): Move from -Wall to -Wextra.
! 
! 2024-07-30  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	* c-format.cc (gcc_gfc_char_table): Add formats for tree objects.
! 
! 2024-07-23  Andi Kleen  <ak@linux.intel.com>
! 
! 	* c-attribs.cc (set_musttail_on_return): New function.
! 	* c-common.h (set_musttail_on_return): Declare new function.
! 
! 2024-07-20  Andi Kleen  <ak@gcc.gnu.org>
! 
! 	Revert:
! 	2024-07-20  Andi Kleen  <ak@linux.intel.com>
! 
! 	* c-attribs.cc (set_musttail_on_return): New function.
! 	* c-common.h (set_musttail_on_return): Declare new function.
! 
! 2024-07-20  Andi Kleen  <ak@linux.intel.com>
! 
! 	* c-attribs.cc (set_musttail_on_return): New function.
! 	* c-common.h (set_musttail_on_return): Declare new function.
! 
! 2024-07-20  Andi Kleen  <ak@linux.intel.com>
! 
! 	PR c/83324
! 	* c-attribs.cc (handle_musttail_attribute): Add.
! 	* c-common.h (handle_musttail_attribute): Add.
! 
! 2024-07-17  Mark Wielaard  <mark@klomp.org>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-07-14  Alejandro Colomar  <alx@kernel.org>
! 
! 	PR c/115185
! 	* c.opt: Add -Wunterminated-string-initialization.
! 
! 2024-07-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Include "tree-pretty-print-markup.h".
! 	(binary_op_error): Use pp_markup::element_quoted_type and %e.
! 	(check_function_arguments): Add "comp_types" param and pass it to
! 	check_function_format.
! 	* c-common.h (check_function_arguments): Add "comp_types" param.
! 	(check_function_format): Likewise.
! 	* c-format.cc: Include "tree-pretty-print-markup.h".
! 	(local_pp_element_ptr_node): New.
! 	(PP_FORMAT_CHAR_TABLE): Add entry for %e.
! 	(struct format_check_context): Add "m_comp_types" field.
! 	(check_function_format): Add "comp_types" param and pass it to
! 	check_format_info.
! 	(check_format_info): Likewise, passing it to format_ctx's ctor.
! 	(check_format_arg): Extract m_comp_types from format_ctx and
! 	pass it to check_format_info_main.
! 	(check_format_info_main): Add "comp_types" param and pass it to
! 	arg_parser's ctor.
! 	(class argument_parser): Add "m_comp_types" field.
! 	(argument_parser::check_argument_type): Pass m_comp_types to
! 	check_format_types.
! 	(handle_subclass_of_pp_element_p): New.
! 	(check_format_types): Add "comp_types" param, and use it to
! 	call handle_subclass_of_pp_element_p.
! 	(class element_format_substring): New.
! 	(class element_expected_type_with_indirection): New.
! 	(format_type_warning): Use element_expected_type_with_indirection
! 	to unify the if (wanted_type_name) branches, reducing from four
! 	emit_warning calls to two.  Simplify these further using %e.
! 	Doing so also gives suitable colorization of the text within the
! 	diagnostics.
! 	(init_dynamic_diag_info): Initialize local_pp_element_ptr_node.
! 	(selftest::test_type_mismatch_range_labels): Add nullptr for new
! 	param of gcc_rich_location label overload.
! 	* c-format.h (T_PP_ELEMENT_PTR): New.
! 	* c-type-mismatch.cc: Include "diagnostic-highlight-colors.h".
! 	(binary_op_rich_location::binary_op_rich_location): Use
! 	highlight_colors::lhs and highlight_colors::rhs for the ranges.
! 	* c-type-mismatch.h (class binary_op_rich_location): Add comment
! 	about highlight_colors.
! 
! 2024-07-10  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Remove flag_concepts_ts code.
! 	* c-opts.cc (c_common_post_options): Likewise.
! 	* c.opt: Remove -fconcepts-ts.
! 	* c.opt.urls: Regenerate.
! 
! 2024-07-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-format.cc (format_check_results::format_check_results): New
! 	ctor.
! 	(struct format_check_context): Add ctor; add "m_" prefix to all
! 	fields.
! 	(check_format_info): Use above ctors.
! 	(check_format_arg): Update for "m_" prefix to
! 	format_check_context.
  
  2024-07-03  Lewis Hyatt  <lhyatt@gmail.com>
  
***************
*** 11,53 ****
  
  2024-06-25  Andrew Pinski  <quic_apinski@quicinc.com>
  
- 	Backported from master:
- 	2024-06-25  Andrew Pinski  <quic_apinski@quicinc.com>
- 
  	PR c++/115624
  	* c.opt (Wnrvo): Add Warning property.
  
! 2024-06-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2024-06-17  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/115290
  	* c-warn.cc (do_warn_array_compare): Use %E rather than %D for
  	printing op0 and op1; if those operands aren't decls, also print
  	parens around them.
  
! 2024-05-15  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-05-07  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114931
! 	* c-common.cc (complete_array_type): Set TYPE_STRUCTURAL_EQUALITY_P
! 	before probing with type_hash_canon.
  
! 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	Backported from master:
! 	2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
  	PR c++/89224
  	* c-common.cc (convert_vector_to_array_for_subscript): Call build_qualified_type
  	for the inner type.
  
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
--- 1012,1197 ----
  
  2024-06-25  Andrew Pinski  <quic_apinski@quicinc.com>
  
  	PR c++/115624
  	* c.opt (Wnrvo): Add Warning property.
  
! 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	* c-opts.cc: Replace include of "tree-diagnostic.h" with
! 	"diagnostic-macro-unwinding.h".
! 
! 2024-06-17  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* c-ada-spec.cc (is_float16): New predicate.
! 	(dump_ada_node) <REAL_TYPE>: Call it.
! 
! 2024-06-17  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-common.cc (c_sizeof_or_alignof_type): Allow alignof on an
! 	incomplete array type for C2Y.
! 
! 2024-06-17  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/115290
  	* c-warn.cc (do_warn_array_compare): Use %E rather than %D for
  	printing op0 and op1; if those operands aren't decls, also print
  	parens around them.
  
! 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
  
! 	* c-ada-spec.cc (dump_ads): Update for fields of pretty_printer
! 	becoming private.
! 	* c-pretty-print.cc: Likewise throughout.
  
! 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
  
! 	* c-ada-spec.cc: Rename pretty_printer "buffer" to "pp"
! 	throughout.
  
! 2024-06-11  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-common.cc (flag_isoc2y): New.
! 	(flag_isoc99, flag_isoc11, flag_isoc23): Update comments.
! 	* c-common.h (flag_isoc2y): New.
! 	(clk_c, flag_isoc23): Update comments.
! 	* c-opts.cc (set_std_c2y): New.
! 	(c_common_handle_option): Handle OPT_std_c2y and OPT_std_gnu2y.
! 	(set_std_c89, set_std_c99, set_std_c11, set_std_c17, set_std_c23):
! 	Set flag_isoc2y.
! 	(set_std_c23): Update comment.
! 	* c.opt (Wc23-c2y-compat, std=c2y, std=gnu2y): New.
! 	* c.opt.urls: Regenerate.
! 
! 2024-06-11  Andi Kleen  <ak@linux.intel.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Define __GXX_CONSTEXPR_ASM__
! 
! 2024-06-05  Jakub Jelinek  <jakub@redhat.com>
! 	    Frederik Harwath  <frederik@codesourcery.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-common.h (c_omp_find_generated_loop): Declare.
! 	* c-gimplify.cc (c_genericize_control_stmt): Handle OMP_TILE and
! 	OMP_UNROLL.
! 	* c-omp.cc (c_finish_omp_for): Handle generated loops.
! 	(c_omp_is_loop_iterator): Likewise.
! 	(c_find_nested_loop_xform_r, c_omp_find_generated_loop): New
! 	functions.
! 	(c_omp_check_loop_iv): Handle generated loops.  For now sorry
! 	on mixing non-rectangular loop with generated loops.
! 	(c_omp_check_loop_binding_exprs): For now sorry on mixing
! 	imperfect loops with generated loops.
! 	(c_omp_directives): Uncomment tile and unroll entries.
! 	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TILE and
! 	PRAGMA_OMP_UNROLL, change PRAGMA_OMP__LAST_ to the latter.
! 	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FULL and
! 	PRAGMA_OMP_CLAUSE_PARTIAL.
! 	* c-pragma.cc (omp_pragmas_simd): Add tile and unroll omp pragmas.
! 
! 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-ubsan.cc (get_bound_from_access_with_size): New function.
! 	(ubsan_instrument_bounds): Handle call to .ACCESS_WITH_SIZE.
! 
! 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): New function.
! 	(attribute_takes_identifier_p): Add counted_by attribute to the list.
! 	* c-common.cc (c_flexible_array_member_type_p): ...To this.
! 	* c-common.h (c_flexible_array_member_type_p): New prototype.
! 
! 2024-05-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR tree-optimization/115157
! 	PR tree-optimization/115177
! 	* c-attribs.cc (handle_hardbool_attribute): Set TYPE_CANONICAL
! 	for hardbools.
! 
! 2024-05-29  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/109753
! 	* c-attribs.cc (handle_optimize_attribute): Set
! 	cgraph_node::semantic_interposition.
! 
! 2024-05-29  Oskari Pirhonen  <xxc3ncoredxx@gmail.com>
! 
! 	* known-headers.cc (get_stdlib_header_for_name): Add strerror.
! 
! 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR bootstrap/115167
! 	* c-format.cc: Replace include of "gcc-rich-location.h" with
! 	"c-family/c-type-mismatch.h".
! 	* c-type-mismatch.cc: New file, taking material from
! 	gcc-rich-location.cc.
! 	* c-type-mismatch.h: New file, taking material from
! 	gcc-rich-location.h.
! 	* c-warn.cc: Replace include of "gcc-rich-location.h" with
! 	"c-family/c-type-mismatch.h".
! 
! 2024-05-24  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* c-ada-spec.cc (is_cpp_float): New predicate.
! 	(dump_number): Deal with more preprocessing floating constants.
! 	(dump_ada_macros) <CPP_NUMBER>: Use is_cpp_float.
! 
! 2024-05-23  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* c-ada-spec.cc (check_type_name_conflict): Add guard.
! 	(is_char_array): Simplify.
! 	(dump_ada_array_type): Use strip_array_types.
! 	(dump_ada_node) <POINTER_TYPE>: Deal with anonymous array types.
! 	(dump_nested_type): Use strip_array_types.
! 
! 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* c-ada-spec.cc (bitfield_used): Move around.
! 	(packed_layout): Likewise.
! 	(dump_ada_array_type): Do not put "aliased" for a packed layout.
! 
! 2024-05-15  Marek Polacek  <polacek@redhat.com>
! 
! 	DR 1693
! 	PR c++/113760
! 	DR 569
! 	* c.opt (Wextra-semi): Initialize to -1.
! 
! 2024-05-08  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/113582
! 	* c-warn.cc (warn_for_unused_label): Don't warn if -Wunused-label has
! 	been suppressed for the label.
! 
! 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
  
  	PR c++/89224
  	* c-common.cc (convert_vector_to_array_for_subscript): Call build_qualified_type
  	for the inner type.
  
! 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114459
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_variadic_friend=202403L for C++26.
! 
! 2024-05-07  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/114931
! 	* c-common.cc (complete_array_type): Set TYPE_STRUCTURAL_EQUALITY_P
! 	before probing with type_hash_canon.
! 
! 2024-05-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/114458
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_deleted_function=202403L for C++26.
! 
! 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/114456
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_structured_bindings for C++26 to 202403L rather than
! 	201606L.
  
  2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 14961,14967 ****
  	* c-common.c: Include gt-c-family-c-common.h.
  	* c-pragma.c: Include gt-c-family-c-pragma.h.
  
! Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 16105,16111 ----
  	* c-common.c: Include gt-c-family-c-common.h.
  	* c-pragma.c: Include gt-c-family-c-pragma.h.
  
! Copyright (C) 2010-2025 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-ada-spec.cc gcc-15.1.0/gcc/c-family/c-ada-spec.cc
*** gcc-14.2.0/gcc/c-family/c-ada-spec.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-ada-spec.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,6 ****
  /* Print GENERIC declaration (functions, variables, types) trees coming from
     the C and C++ front-ends as well as macros in Ada syntax.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Adapted from tree-pretty-print.cc by Arnaud Charlet  <charlet@adacore.com>
  
  This file is part of GCC.
--- 1,6 ----
  /* Print GENERIC declaration (functions, variables, types) trees coming from
     the C and C++ front-ends as well as macros in Ada syntax.
!    Copyright (C) 2010-2025 Free Software Foundation, Inc.
     Adapted from tree-pretty-print.cc by Arnaud Charlet  <charlet@adacore.com>
  
  This file is part of GCC.
*************** static void dump_ada_structure (pretty_p
*** 40,46 ****
  static char *to_ada_name (const char *, bool *);
  
  #define INDENT(SPACE) \
!   do { int i; for (i = 0; i<SPACE; i++) pp_space (buffer); } while (0)
  
  #define INDENT_INCR 3
  
--- 40,46 ----
  static char *to_ada_name (const char *, bool *);
  
  #define INDENT(SPACE) \
!   do { int i; for (i = 0; i<SPACE; i++) pp_space (pp); } while (0)
  
  #define INDENT_INCR 3
  
*************** macro_length (const cpp_macro *macro, in
*** 113,118 ****
--- 113,138 ----
    (*buffer_len)++;
  }
  
+ /* Return true if NUMBER is a preprocessing floating-point number.  */
+ 
+ static bool
+ is_cpp_float (unsigned char *number)
+ {
+   /* In C, a floating constant need not have a point.  */
+   while (*number != '\0')
+     {
+       if (*number == '.')
+ 	return true;
+       else if ((*number == 'e' || *number == 'E')
+ 	       && (*(number + 1) == '+' || *(number + 1) == '-'))
+ 	return true;
+       else
+ 	number++;
+     }
+ 
+   return false;
+ }
+ 
  /* Dump all digits/hex chars from NUMBER to BUFFER and return a pointer
     to the character after the last character written.  If FLOAT_P is true,
     this is a floating-point number.  */
*************** macro_length (const cpp_macro *macro, in
*** 120,131 ****
  static unsigned char *
  dump_number (unsigned char *number, unsigned char *buffer, bool float_p)
  {
!   while (*number != '\0'
! 	 && *number != (float_p ? 'F' : 'U')
! 	 && *number != (float_p ? 'f' : 'u')
! 	 && *number != 'l'
! 	 && *number != 'L')
!     *buffer++ = *number++;
  
    return buffer;
  }
--- 140,184 ----
  static unsigned char *
  dump_number (unsigned char *number, unsigned char *buffer, bool float_p)
  {
!   /* In Ada, a real literal is a numeric literal that includes a point.  */
!   if (float_p)
!     {
!       bool point_seen = false;
! 
!       while (*number != '\0')
! 	{
! 	  if (ISDIGIT (*number))
! 	    *buffer++ = *number++;
! 	  else if (*number == '.')
! 	    {
! 	      *buffer++ = *number++;
! 	      point_seen = true;
! 	    }
! 	  else if ((*number == 'e' || *number == 'E')
! 		   && (*(number + 1) == '+' || *(number + 1) == '-'))
! 	    {
! 	      if (!point_seen)
! 		{
! 		  *buffer++ = '.';
! 		  *buffer++ = '0';
! 		  point_seen = true;
! 		}
! 	       *buffer++ = *number++;
! 	       *buffer++ = *number++;
! 	    }
! 	  else
! 	    break;
! 	}
!     }
! 
!   /* An integer literal is a numeric literal without a point.  */
!   else
!     while (*number != '\0'
! 	   && *number != 'U'
! 	   && *number != 'u'
! 	   && *number != 'l'
! 	   && *number != 'L')
!       *buffer++ = *number++;
  
    return buffer;
  }
*************** dump_ada_macros (pretty_printer *pp, con
*** 450,456 ****
  
  			      default:
  				/* Dump floating-point constant unmodified.  */
! 				if (strchr ((const char *)tmp, '.'))
  				  buffer = dump_number (tmp, buffer, true);
  				else
  				  {
--- 503,509 ----
  
  			      default:
  				/* Dump floating-point constant unmodified.  */
! 				if (is_cpp_float (tmp))
  				  buffer = dump_number (tmp, buffer, true);
  				else
  				  {
*************** dump_ada_macros (pretty_printer *pp, con
*** 480,487 ****
  
  			default:
  			  buffer
! 			    = dump_number (tmp, buffer,
! 					   strchr ((const char *)tmp, '.'));
  			  break;
  		      }
  		    break;
--- 533,539 ----
  
  			default:
  			  buffer
! 			    = dump_number (tmp, buffer, is_cpp_float (tmp));
  			  break;
  		      }
  		    break;
*************** compare_comment (const void *lp, const v
*** 699,704 ****
--- 751,758 ----
  
  static tree *to_dump = NULL;
  static int to_dump_count = 0;
+ static bool bitfield_used = false;
+ static bool packed_layout = false;
  
  /* Collect a list of declarations from T relevant to SOURCE_FILE to be dumped
     by a subsequent call to dump_ada_nodes.  */
*************** dump_ada_nodes (pretty_printer *pp, cons
*** 856,864 ****
  /* Dump a newline and indent BUFFER by SPC chars.  */
  
  static void
! newline_and_indent (pretty_printer *buffer, int spc)
  {
!   pp_newline (buffer);
    INDENT (spc);
  }
  
--- 910,918 ----
  /* Dump a newline and indent BUFFER by SPC chars.  */
  
  static void
! newline_and_indent (pretty_printer *pp, int spc)
  {
!   pp_newline (pp);
    INDENT (spc);
  }
  
*************** separate_class_package (tree decl)
*** 1328,1339 ****
  
  static bool package_prefix = true;
  
! /* Dump in BUFFER the name of an identifier NODE of type TYPE, following Ada
     syntax.  LIMITED_ACCESS indicates whether NODE can be accessed through a
     limited 'with' clause rather than a regular 'with' clause.  */
  
  static void
! pp_ada_tree_identifier (pretty_printer *buffer, tree node, tree type,
  			bool limited_access)
  {
    const char *name = IDENTIFIER_POINTER (node);
--- 1382,1393 ----
  
  static bool package_prefix = true;
  
! /* Dump in PP the name of an identifier NODE of type TYPE, following Ada
     syntax.  LIMITED_ACCESS indicates whether NODE can be accessed through a
     limited 'with' clause rather than a regular 'with' clause.  */
  
  static void
! pp_ada_tree_identifier (pretty_printer *pp, tree node, tree type,
  			bool limited_access)
  {
    const char *name = IDENTIFIER_POINTER (node);
*************** pp_ada_tree_identifier (pretty_printer *
*** 1365,1372 ****
  		  {
  		    char *s1 = get_ada_package (xloc.file);
  		    append_withs (s1, limited_access);
! 		    pp_string (buffer, s1);
! 		    pp_dot (buffer);
  		    free (s1);
  		  }
  		break;
--- 1419,1426 ----
  		  {
  		    char *s1 = get_ada_package (xloc.file);
  		    append_withs (s1, limited_access);
! 		    pp_string (pp, s1);
! 		    pp_dot (pp);
  		    free (s1);
  		  }
  		break;
*************** pp_ada_tree_identifier (pretty_printer *
*** 1377,1435 ****
  	  /* Generate the additional package prefix for C++ classes.  */
  	  if (separate_class_package (decl))
  	    {
! 	      pp_string (buffer, "Class_");
! 	      pp_string (buffer, s);
! 	      pp_dot (buffer);
  	    }
  	}
      }
  
    if (space_found)
      if (!strcmp (s, "short_int"))
!       pp_string (buffer, "short");
      else if (!strcmp (s, "short_unsigned_int"))
!       pp_string (buffer, "unsigned_short");
      else if (!strcmp (s, "unsigned_int"))
!       pp_string (buffer, "unsigned");
      else if (!strcmp (s, "long_int"))
!       pp_string (buffer, "long");
      else if (!strcmp (s, "long_unsigned_int"))
!       pp_string (buffer, "unsigned_long");
      else if (!strcmp (s, "long_long_int"))
!       pp_string (buffer, "Long_Long_Integer");
      else if (!strcmp (s, "long_long_unsigned_int"))
        {
  	if (package_prefix)
  	  {
  	    append_withs ("Interfaces.C.Extensions", false);
! 	    pp_string (buffer, "Extensions.unsigned_long_long");
  	  }
  	else
! 	  pp_string (buffer, "unsigned_long_long");
        }
      else
!       pp_string(buffer, s);
    else
      if (!strcmp (s, "u_Bool") || !strcmp (s, "bool"))
        {
  	if (package_prefix)
  	  {
  	    append_withs ("Interfaces.C.Extensions", false);
! 	    pp_string (buffer, "Extensions.bool");
  	  }
  	else
! 	  pp_string (buffer, "bool");
        }
      else
!       pp_string(buffer, s);
  
    free (s);
  }
  
! /* Dump in BUFFER the assembly name of T.  */
  
  static void
! pp_asm_name (pretty_printer *buffer, tree t)
  {
    tree name = DECL_ASSEMBLER_NAME (t);
    char *ada_name = XALLOCAVEC (char, IDENTIFIER_LENGTH (name) + 1), *s;
--- 1431,1489 ----
  	  /* Generate the additional package prefix for C++ classes.  */
  	  if (separate_class_package (decl))
  	    {
! 	      pp_string (pp, "Class_");
! 	      pp_string (pp, s);
! 	      pp_dot (pp);
  	    }
  	}
      }
  
    if (space_found)
      if (!strcmp (s, "short_int"))
!       pp_string (pp, "short");
      else if (!strcmp (s, "short_unsigned_int"))
!       pp_string (pp, "unsigned_short");
      else if (!strcmp (s, "unsigned_int"))
!       pp_string (pp, "unsigned");
      else if (!strcmp (s, "long_int"))
!       pp_string (pp, "long");
      else if (!strcmp (s, "long_unsigned_int"))
!       pp_string (pp, "unsigned_long");
      else if (!strcmp (s, "long_long_int"))
!       pp_string (pp, "Long_Long_Integer");
      else if (!strcmp (s, "long_long_unsigned_int"))
        {
  	if (package_prefix)
  	  {
  	    append_withs ("Interfaces.C.Extensions", false);
! 	    pp_string (pp, "Extensions.unsigned_long_long");
  	  }
  	else
! 	  pp_string (pp, "unsigned_long_long");
        }
      else
!       pp_string (pp, s);
    else
      if (!strcmp (s, "u_Bool") || !strcmp (s, "bool"))
        {
  	if (package_prefix)
  	  {
  	    append_withs ("Interfaces.C.Extensions", false);
! 	    pp_string (pp, "Extensions.bool");
  	  }
  	else
! 	  pp_string (pp, "bool");
        }
      else
!       pp_string (pp, s);
  
    free (s);
  }
  
! /* Dump in PP the assembly name of T.  */
  
  static void
! pp_asm_name (pretty_printer *pp, tree t)
  {
    tree name = DECL_ASSEMBLER_NAME (t);
    char *ada_name = XALLOCAVEC (char, IDENTIFIER_LENGTH (name) + 1), *s;
*************** pp_asm_name (pretty_printer *buffer, tre
*** 1444,1562 ****
      }
  
    *s = '\0';
!   pp_string (buffer, ada_name);
  }
  
! /* Dump in BUFFER the name of a DECL node if set, in Ada syntax.
     LIMITED_ACCESS indicates whether NODE can be accessed via a
     limited 'with' clause rather than a regular 'with' clause.  */
  
  static void
! dump_ada_decl_name (pretty_printer *buffer, tree decl, bool limited_access)
  {
    if (DECL_NAME (decl))
!     pp_ada_tree_identifier (buffer, DECL_NAME (decl), decl, limited_access);
    else
      {
        tree type_name = TYPE_NAME (TREE_TYPE (decl));
  
        if (!type_name)
  	{
! 	  pp_string (buffer, "anon");
  	  if (TREE_CODE (decl) == FIELD_DECL)
! 	    pp_decimal_int (buffer, DECL_UID (decl));
  	  else
! 	    pp_decimal_int (buffer, TYPE_UID (TREE_TYPE (decl)));
  	}
        else if (TREE_CODE (type_name) == IDENTIFIER_NODE)
! 	pp_ada_tree_identifier (buffer, type_name, decl, limited_access);
      }
  }
  
! /* Dump in BUFFER a name for the type T, which is a TYPE without TYPE_NAME.  */
  
  static void
! dump_anonymous_type_name (pretty_printer *buffer, tree t)
  {
!   pp_string (buffer, "anon");
  
    switch (TREE_CODE (t))
      {
      case ARRAY_TYPE:
!       pp_string (buffer, "_array");
        break;
      case ENUMERAL_TYPE:
!       pp_string (buffer, "_enum");
        break;
      case RECORD_TYPE:
!       pp_string (buffer, "_struct");
        break;
      case UNION_TYPE:
!       pp_string (buffer, "_union");
        break;
      default:
!       pp_string (buffer, "_unknown");
        break;
      }
  
!   pp_decimal_int (buffer, TYPE_UID (t));
  }
  
! /* Dump in BUFFER aspect Import on a given node T.  SPC is the current
     indentation level.  */
  
  static void
! dump_ada_import (pretty_printer *buffer, tree t, int spc)
  {
    const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (t));
    const bool is_stdcall
      = TREE_CODE (t) == FUNCTION_DECL
        && lookup_attribute ("stdcall", TYPE_ATTRIBUTES (TREE_TYPE (t)));
  
!   pp_string (buffer, "with Import => True, ");
  
!   newline_and_indent (buffer, spc + 5);
  
    if (is_stdcall)
!     pp_string (buffer, "Convention => Stdcall, ");
    else if (name[0] == '_' && name[1] == 'Z')
!     pp_string (buffer, "Convention => CPP, ");
    else
!     pp_string (buffer, "Convention => C, ");
  
!   newline_and_indent (buffer, spc + 5);
  
    tree sec = lookup_attribute ("section", DECL_ATTRIBUTES (t));
    if (sec)
      {
!       pp_string (buffer, "Linker_Section => \"");
!       pp_string (buffer, TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (sec))));
!       pp_string (buffer, "\", ");
!       newline_and_indent (buffer, spc + 5);
      }
  
!   pp_string (buffer, "External_Name => \"");
  
    if (is_stdcall)
!     pp_string (buffer, IDENTIFIER_POINTER (DECL_NAME (t)));
    else
!     pp_asm_name (buffer, t);
  
!   pp_string (buffer, "\";");
  }
  
  /* Check whether T and its type have different names, and append "the_"
!    otherwise in BUFFER.  */
  
  static void
! check_type_name_conflict (pretty_printer *buffer, tree t)
  {
    tree tmp = TREE_TYPE (t);
  
    while (TREE_CODE (tmp) == POINTER_TYPE && !TYPE_NAME (tmp))
      tmp = TREE_TYPE (tmp);
  
!   if (TREE_CODE (tmp) != FUNCTION_TYPE)
      {
        const char *s;
  
--- 1498,1616 ----
      }
  
    *s = '\0';
!   pp_string (pp, ada_name);
  }
  
! /* Dump in PP the name of a DECL node if set, in Ada syntax.
     LIMITED_ACCESS indicates whether NODE can be accessed via a
     limited 'with' clause rather than a regular 'with' clause.  */
  
  static void
! dump_ada_decl_name (pretty_printer *pp, tree decl, bool limited_access)
  {
    if (DECL_NAME (decl))
!     pp_ada_tree_identifier (pp, DECL_NAME (decl), decl, limited_access);
    else
      {
        tree type_name = TYPE_NAME (TREE_TYPE (decl));
  
        if (!type_name)
  	{
! 	  pp_string (pp, "anon");
  	  if (TREE_CODE (decl) == FIELD_DECL)
! 	    pp_decimal_int (pp, DECL_UID (decl));
  	  else
! 	    pp_decimal_int (pp, TYPE_UID (TREE_TYPE (decl)));
  	}
        else if (TREE_CODE (type_name) == IDENTIFIER_NODE)
! 	pp_ada_tree_identifier (pp, type_name, decl, limited_access);
      }
  }
  
! /* Dump in PP a name for the type T, which is a TYPE without TYPE_NAME.  */
  
  static void
! dump_anonymous_type_name (pretty_printer *pp, tree t)
  {
!   pp_string (pp, "anon");
  
    switch (TREE_CODE (t))
      {
      case ARRAY_TYPE:
!       pp_string (pp, "_array");
        break;
      case ENUMERAL_TYPE:
!       pp_string (pp, "_enum");
        break;
      case RECORD_TYPE:
!       pp_string (pp, "_struct");
        break;
      case UNION_TYPE:
!       pp_string (pp, "_union");
        break;
      default:
!       pp_string (pp, "_unknown");
        break;
      }
  
!   pp_decimal_int (pp, TYPE_UID (t));
  }
  
! /* Dump in PP aspect Import on a given node T.  SPC is the current
     indentation level.  */
  
  static void
! dump_ada_import (pretty_printer *pp, tree t, int spc)
  {
    const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (t));
    const bool is_stdcall
      = TREE_CODE (t) == FUNCTION_DECL
        && lookup_attribute ("stdcall", TYPE_ATTRIBUTES (TREE_TYPE (t)));
  
!   pp_string (pp, "with Import => True, ");
  
!   newline_and_indent (pp, spc + 5);
  
    if (is_stdcall)
!     pp_string (pp, "Convention => Stdcall, ");
    else if (name[0] == '_' && name[1] == 'Z')
!     pp_string (pp, "Convention => CPP, ");
    else
!     pp_string (pp, "Convention => C, ");
  
!   newline_and_indent (pp, spc + 5);
  
    tree sec = lookup_attribute ("section", DECL_ATTRIBUTES (t));
    if (sec)
      {
!       pp_string (pp, "Linker_Section => \"");
!       pp_string (pp, TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (sec))));
!       pp_string (pp, "\", ");
!       newline_and_indent (pp, spc + 5);
      }
  
!   pp_string (pp, "External_Name => \"");
  
    if (is_stdcall)
!     pp_string (pp, IDENTIFIER_POINTER (DECL_NAME (t)));
    else
!     pp_asm_name (pp, t);
  
!   pp_string (pp, "\";");
  }
  
  /* Check whether T and its type have different names, and append "the_"
!    otherwise in PP.  */
  
  static void
! check_type_name_conflict (pretty_printer *pp, tree t)
  {
    tree tmp = TREE_TYPE (t);
  
    while (TREE_CODE (tmp) == POINTER_TYPE && !TYPE_NAME (tmp))
      tmp = TREE_TYPE (tmp);
  
!   if (TREE_CODE (tmp) != FUNCTION_TYPE && tmp != error_mark_node)
      {
        const char *s;
  
*************** check_type_name_conflict (pretty_printer
*** 1572,1589 ****
  	s = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (tmp)));
  
        if (!strcasecmp (IDENTIFIER_POINTER (DECL_NAME (t)), s))
! 	pp_string (buffer, "the_");
      }
  }
  
! /* Dump in BUFFER a function declaration FUNC in Ada syntax.
     IS_METHOD indicates whether FUNC is a C++ method.
     IS_CONSTRUCTOR whether FUNC is a C++ constructor.
     IS_DESTRUCTOR whether FUNC is a C++ destructor.
     SPC is the current indentation level.  */
  
  static void
! dump_ada_function_declaration (pretty_printer *buffer, tree func,
  			       bool is_method, bool is_constructor,
  			       bool is_destructor, int spc)
  {
--- 1626,1643 ----
  	s = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (tmp)));
  
        if (!strcasecmp (IDENTIFIER_POINTER (DECL_NAME (t)), s))
! 	pp_string (pp, "the_");
      }
  }
  
! /* Dump in PP a function declaration FUNC in Ada syntax.
     IS_METHOD indicates whether FUNC is a C++ method.
     IS_CONSTRUCTOR whether FUNC is a C++ constructor.
     IS_DESTRUCTOR whether FUNC is a C++ destructor.
     SPC is the current indentation level.  */
  
  static void
! dump_ada_function_declaration (pretty_printer *pp, tree func,
  			       bool is_method, bool is_constructor,
  			       bool is_destructor, int spc)
  {
*************** dump_ada_function_declaration (pretty_pr
*** 1616,1627 ****
      num_args = 1;
  
    if (num_args > 2)
!     newline_and_indent (buffer, spc + 1);
  
    if (num_args > 0)
      {
!       pp_space (buffer);
!       pp_left_paren (buffer);
      }
  
    /* For a function, see if we have the corresponding arguments.  */
--- 1670,1681 ----
      num_args = 1;
  
    if (num_args > 2)
!     newline_and_indent (pp, spc + 1);
  
    if (num_args > 0)
      {
!       pp_space (pp);
!       pp_left_paren (pp);
      }
  
    /* For a function, see if we have the corresponding arguments.  */
*************** dump_ada_function_declaration (pretty_pr
*** 1653,1676 ****
  	{
  	  if (DECL_NAME (arg))
  	    {
! 	      check_type_name_conflict (buffer, arg);
! 	      pp_ada_tree_identifier (buffer, DECL_NAME (arg), NULL_TREE,
  				      false);
! 	      pp_string (buffer, " : ");
  	    }
  	  else
  	    {
  	      sprintf (buf, "arg%d : ", num);
! 	      pp_string (buffer, buf);
  	    }
  
! 	  dump_ada_node (buffer, TREE_TYPE (arg), type, spc, false, true);
  	}
        else
  	{
  	  sprintf (buf, "arg%d : ", num);
! 	  pp_string (buffer, buf);
! 	  dump_ada_node (buffer, TREE_VALUE (arg), type, spc, false, true);
  	}
  
        /* If the type is a pointer to a tagged type, we need to differentiate
--- 1707,1730 ----
  	{
  	  if (DECL_NAME (arg))
  	    {
! 	      check_type_name_conflict (pp, arg);
! 	      pp_ada_tree_identifier (pp, DECL_NAME (arg), NULL_TREE,
  				      false);
! 	      pp_string (pp, " : ");
  	    }
  	  else
  	    {
  	      sprintf (buf, "arg%d : ", num);
! 	      pp_string (pp, buf);
  	    }
  
! 	  dump_ada_node (pp, TREE_TYPE (arg), type, spc, false, true);
  	}
        else
  	{
  	  sprintf (buf, "arg%d : ", num);
! 	  pp_string (pp, buf);
! 	  dump_ada_node (pp, TREE_VALUE (arg), type, spc, false, true);
  	}
  
        /* If the type is a pointer to a tagged type, we need to differentiate
*************** dump_ada_function_declaration (pretty_pr
*** 1684,1730 ****
  	  && POINTER_TYPE_P (TREE_TYPE (arg))
  	  && is_tagged_type (TREE_TYPE (TREE_TYPE (arg)))
  	  && !(num == 1 && is_method && (DECL_VINDEX (func) || is_constructor)))
! 	pp_string (buffer, "'Class");
  
        arg = TREE_CHAIN (arg);
  
        if (num < num_args)
  	{
! 	  pp_semicolon (buffer);
  
  	  if (num_args > 2)
! 	    newline_and_indent (buffer, spc + INDENT_INCR);
  	  else
! 	    pp_space (buffer);
  	}
      }
  
    if (have_ellipsis)
      {
!       pp_string (buffer, "  -- , ...");
!       newline_and_indent (buffer, spc + INDENT_INCR);
      }
  
    if (num_args > 0)
!     pp_right_paren (buffer);
  
    if (is_constructor || !VOID_TYPE_P (TREE_TYPE (type)))
      {
!       pp_string (buffer, " return ");
        tree rtype = is_constructor ? DECL_CONTEXT (func) : TREE_TYPE (type);
!       dump_ada_node (buffer, rtype, rtype, spc, false, true);
      }
  }
  
! /* Dump in BUFFER all the domains associated with an array NODE,
     in Ada syntax.  SPC is the current indentation level.  */
  
  static void
! dump_ada_array_domains (pretty_printer *buffer, tree node, int spc)
  {
    bool first = true;
  
!   pp_left_paren (buffer);
  
    for (; TREE_CODE (node) == ARRAY_TYPE; node = TREE_TYPE (node))
      {
--- 1738,1784 ----
  	  && POINTER_TYPE_P (TREE_TYPE (arg))
  	  && is_tagged_type (TREE_TYPE (TREE_TYPE (arg)))
  	  && !(num == 1 && is_method && (DECL_VINDEX (func) || is_constructor)))
! 	pp_string (pp, "'Class");
  
        arg = TREE_CHAIN (arg);
  
        if (num < num_args)
  	{
! 	  pp_semicolon (pp);
  
  	  if (num_args > 2)
! 	    newline_and_indent (pp, spc + INDENT_INCR);
  	  else
! 	    pp_space (pp);
  	}
      }
  
    if (have_ellipsis)
      {
!       pp_string (pp, "  -- , ...");
!       newline_and_indent (pp, spc + INDENT_INCR);
      }
  
    if (num_args > 0)
!     pp_right_paren (pp);
  
    if (is_constructor || !VOID_TYPE_P (TREE_TYPE (type)))
      {
!       pp_string (pp, " return ");
        tree rtype = is_constructor ? DECL_CONTEXT (func) : TREE_TYPE (type);
!       dump_ada_node (pp, rtype, rtype, spc, false, true);
      }
  }
  
! /* Dump in PP all the domains associated with an array NODE,
     in Ada syntax.  SPC is the current indentation level.  */
  
  static void
! dump_ada_array_domains (pretty_printer *pp, tree node, int spc)
  {
    bool first = true;
  
!   pp_left_paren (pp);
  
    for (; TREE_CODE (node) == ARRAY_TYPE; node = TREE_TYPE (node))
      {
*************** dump_ada_array_domains (pretty_printer *
*** 1736,1768 ****
  	  tree max = TYPE_MAX_VALUE (domain);
  
  	  if (!first)
! 	    pp_string (buffer, ", ");
  	  first = false;
  
  	  if (min)
! 	    dump_ada_node (buffer, min, NULL_TREE, spc, false, true);
! 	  pp_string (buffer, " .. ");
  
  	  /* If the upper bound is zero, gcc may generate a NULL_TREE
  	     for TYPE_MAX_VALUE rather than an integer_cst.  */
  	  if (max)
! 	    dump_ada_node (buffer, max, NULL_TREE, spc, false, true);
  	  else
! 	    pp_string (buffer, "0");
  	}
        else
  	{
! 	  pp_string (buffer, "size_t");
  	  first = false;
  	}
      }
!   pp_right_paren (buffer);
  }
  
! /* Dump in BUFFER file:line information related to NODE.  */
  
  static void
! dump_sloc (pretty_printer *buffer, tree node)
  {
    expanded_location xloc;
  
--- 1790,1822 ----
  	  tree max = TYPE_MAX_VALUE (domain);
  
  	  if (!first)
! 	    pp_string (pp, ", ");
  	  first = false;
  
  	  if (min)
! 	    dump_ada_node (pp, min, NULL_TREE, spc, false, true);
! 	  pp_string (pp, " .. ");
  
  	  /* If the upper bound is zero, gcc may generate a NULL_TREE
  	     for TYPE_MAX_VALUE rather than an integer_cst.  */
  	  if (max)
! 	    dump_ada_node (pp, max, NULL_TREE, spc, false, true);
  	  else
! 	    pp_string (pp, "0");
  	}
        else
  	{
! 	  pp_string (pp, "size_t");
  	  first = false;
  	}
      }
!   pp_right_paren (pp);
  }
  
! /* Dump in PP file:line information related to NODE.  */
  
  static void
! dump_sloc (pretty_printer *pp, tree node)
  {
    expanded_location xloc;
  
*************** dump_sloc (pretty_printer *buffer, tree
*** 1775,1783 ****
  
    if (xloc.file)
      {
!       pp_string (buffer, xloc.file);
!       pp_colon (buffer);
!       pp_decimal_int (buffer, xloc.line);
      }
  }
  
--- 1829,1837 ----
  
    if (xloc.file)
      {
!       pp_string (pp, xloc.file);
!       pp_colon (pp);
!       pp_decimal_int (pp, xloc.line);
      }
  }
  
*************** dump_sloc (pretty_printer *buffer, tree
*** 1786,1868 ****
  static bool
  is_char_array (tree t)
  {
!   int num_dim = 0;
! 
!   while (TREE_CODE (t) == ARRAY_TYPE)
!     {
!       num_dim++;
!       t = TREE_TYPE (t);
!     }
! 
!   return num_dim == 1
! 	 && TREE_CODE (t) == INTEGER_TYPE
! 	 && id_equal (DECL_NAME (TYPE_NAME (t)), "char");
  }
  
! /* Dump in BUFFER an array type NODE in Ada syntax.  SPC is the indentation
     level.  */
  
  static void
! dump_ada_array_type (pretty_printer *buffer, tree node, int spc)
  {
    const bool char_array = is_char_array (node);
  
    /* Special case char arrays.  */
    if (char_array)
!     pp_string (buffer, "Interfaces.C.char_array ");
    else
!     pp_string (buffer, "array ");
  
    /* Print the dimensions.  */
!   dump_ada_array_domains (buffer, node, spc);
  
    /* Print the component type.  */
    if (!char_array)
      {
!       tree tmp = node;
!       while (TREE_CODE (tmp) == ARRAY_TYPE)
! 	tmp = TREE_TYPE (tmp);
  
!       pp_string (buffer, " of ");
  
!       if (TREE_CODE (tmp) != POINTER_TYPE)
! 	pp_string (buffer, "aliased ");
  
        if (TYPE_NAME (tmp)
  	  || (!RECORD_OR_UNION_TYPE_P (tmp)
  	      && TREE_CODE (tmp) != ENUMERAL_TYPE))
! 	dump_ada_node (buffer, tmp, node, spc, false, true);
        else
! 	dump_anonymous_type_name (buffer, tmp);
      }
  }
  
! /* Dump in BUFFER type names associated with a template, each prepended with
     '_'.  TYPES is the TREE_PURPOSE of a DECL_TEMPLATE_INSTANTIATIONS.  SPC is
     the indentation level.  */
  
  static void
! dump_template_types (pretty_printer *buffer, tree types, int spc)
  {
    for (int i = 0; i < TREE_VEC_LENGTH (types); i++)
      {
        tree elem = TREE_VEC_ELT (types, i);
!       pp_underscore (buffer);
  
!       if (!dump_ada_node (buffer, elem, NULL_TREE, spc, false, true))
  	{
! 	  pp_string (buffer, "unknown");
! 	  pp_scalar (buffer, HOST_SIZE_T_PRINT_UNSIGNED,
  		     (fmt_size_t) TREE_HASH (elem));
  	}
      }
  }
  
! /* Dump in BUFFER the contents of all class instantiations associated with
     a given template T.  SPC is the indentation level.  */
  
  static int
! dump_ada_template (pretty_printer *buffer, tree t, int spc)
  {
    /* DECL_SIZE_UNIT is DECL_TEMPLATE_INSTANTIATIONS in this context.  */
    tree inst = DECL_SIZE_UNIT (t);
--- 1840,1912 ----
  static bool
  is_char_array (tree t)
  {
!   return TREE_CODE (t) == ARRAY_TYPE
! 	 && TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE
! 	 && id_equal (DECL_NAME (TYPE_NAME (TREE_TYPE (t))), "char");
  }
  
! /* Dump in PP an array type NODE in Ada syntax.  SPC is the indentation
     level.  */
  
  static void
! dump_ada_array_type (pretty_printer *pp, tree node, int spc)
  {
    const bool char_array = is_char_array (node);
  
    /* Special case char arrays.  */
    if (char_array)
!     pp_string (pp, "Interfaces.C.char_array ");
    else
!     pp_string (pp, "array ");
  
    /* Print the dimensions.  */
!   dump_ada_array_domains (pp, node, spc);
  
    /* Print the component type.  */
    if (!char_array)
      {
!       tree tmp = strip_array_types (node);
  
!       pp_string (pp, " of ");
  
!       if (TREE_CODE (tmp) != POINTER_TYPE && !packed_layout)
! 	pp_string (pp, "aliased ");
  
        if (TYPE_NAME (tmp)
  	  || (!RECORD_OR_UNION_TYPE_P (tmp)
  	      && TREE_CODE (tmp) != ENUMERAL_TYPE))
! 	dump_ada_node (pp, tmp, node, spc, false, true);
        else
! 	dump_anonymous_type_name (pp, tmp);
      }
  }
  
! /* Dump in PP type names associated with a template, each prepended with
     '_'.  TYPES is the TREE_PURPOSE of a DECL_TEMPLATE_INSTANTIATIONS.  SPC is
     the indentation level.  */
  
  static void
! dump_template_types (pretty_printer *pp, tree types, int spc)
  {
    for (int i = 0; i < TREE_VEC_LENGTH (types); i++)
      {
        tree elem = TREE_VEC_ELT (types, i);
!       pp_underscore (pp);
  
!       if (!dump_ada_node (pp, elem, NULL_TREE, spc, false, true))
  	{
! 	  pp_string (pp, "unknown");
! 	  pp_scalar (pp, HOST_SIZE_T_PRINT_UNSIGNED,
  		     (fmt_size_t) TREE_HASH (elem));
  	}
      }
  }
  
! /* Dump in PP the contents of all class instantiations associated with
     a given template T.  SPC is the indentation level.  */
  
  static int
! dump_ada_template (pretty_printer *pp, tree t, int spc)
  {
    /* DECL_SIZE_UNIT is DECL_TEMPLATE_INSTANTIATIONS in this context.  */
    tree inst = DECL_SIZE_UNIT (t);
*************** dump_ada_template (pretty_printer *buffe
*** 1901,1939 ****
  
        num_inst++;
        INDENT (spc);
!       pp_string (buffer, "package ");
        package_prefix = false;
!       dump_ada_node (buffer, instance, t, spc, false, true);
!       dump_template_types (buffer, types, spc);
!       pp_string (buffer, " is");
        spc += INDENT_INCR;
!       newline_and_indent (buffer, spc);
  
        TREE_VISITED (get_underlying_decl (instance)) = 1;
!       pp_string (buffer, "type ");
!       dump_ada_node (buffer, instance, t, spc, false, true);
        package_prefix = true;
  
        if (is_tagged_type (instance))
! 	pp_string (buffer, " is tagged limited ");
        else
! 	pp_string (buffer, " is limited ");
  
!       dump_ada_node (buffer, instance, t, spc, false, false);
!       pp_newline (buffer);
        spc -= INDENT_INCR;
!       newline_and_indent (buffer, spc);
  
!       pp_string (buffer, "end;");
!       newline_and_indent (buffer, spc);
!       pp_string (buffer, "use ");
        package_prefix = false;
!       dump_ada_node (buffer, instance, t, spc, false, true);
!       dump_template_types (buffer, types, spc);
        package_prefix = true;
!       pp_semicolon (buffer);
!       pp_newline (buffer);
!       pp_newline (buffer);
      }
  
    return num_inst > 0;
--- 1945,1983 ----
  
        num_inst++;
        INDENT (spc);
!       pp_string (pp, "package ");
        package_prefix = false;
!       dump_ada_node (pp, instance, t, spc, false, true);
!       dump_template_types (pp, types, spc);
!       pp_string (pp, " is");
        spc += INDENT_INCR;
!       newline_and_indent (pp, spc);
  
        TREE_VISITED (get_underlying_decl (instance)) = 1;
!       pp_string (pp, "type ");
!       dump_ada_node (pp, instance, t, spc, false, true);
        package_prefix = true;
  
        if (is_tagged_type (instance))
! 	pp_string (pp, " is tagged limited ");
        else
! 	pp_string (pp, " is limited ");
  
!       dump_ada_node (pp, instance, t, spc, false, false);
!       pp_newline (pp);
        spc -= INDENT_INCR;
!       newline_and_indent (pp, spc);
  
!       pp_string (pp, "end;");
!       newline_and_indent (pp, spc);
!       pp_string (pp, "use ");
        package_prefix = false;
!       dump_ada_node (pp, instance, t, spc, false, true);
!       dump_template_types (pp, types, spc);
        package_prefix = true;
!       pp_semicolon (pp);
!       pp_newline (pp);
!       pp_newline (pp);
      }
  
    return num_inst > 0;
*************** is_simple_enum (tree node)
*** 1963,2003 ****
    return true;
  }
  
! /* Dump in BUFFER the declaration of enumeral NODE of type TYPE in Ada syntax.
     SPC is the indentation level.  */
  
  static void
! dump_ada_enum_type (pretty_printer *buffer, tree node, tree type, int spc)
  {
    if (is_simple_enum (node))
      {
        bool first = true;
        spc += INDENT_INCR;
!       newline_and_indent (buffer, spc - 1);
!       pp_left_paren (buffer);
        for (tree value = TYPE_VALUES (node); value; value = TREE_CHAIN (value))
  	{
  	  if (first)
  	    first = false;
  	  else
  	    {
! 	      pp_comma (buffer);
! 	      newline_and_indent (buffer, spc);
  	    }
  
! 	  pp_ada_tree_identifier (buffer, TREE_PURPOSE (value), node, false);
  	}
!       pp_string (buffer, ")");
        spc -= INDENT_INCR;
!       newline_and_indent (buffer, spc);
!       pp_string (buffer, "with Convention => C");
      }
    else
      {
        if (TYPE_UNSIGNED (node))
! 	pp_string (buffer, "unsigned");
        else
! 	pp_string (buffer, "int");
  
        for (tree value = TYPE_VALUES (node); value; value = TREE_CHAIN (value))
  	{
--- 2007,2047 ----
    return true;
  }
  
! /* Dump in PP the declaration of enumeral NODE of type TYPE in Ada syntax.
     SPC is the indentation level.  */
  
  static void
! dump_ada_enum_type (pretty_printer *pp, tree node, tree type, int spc)
  {
    if (is_simple_enum (node))
      {
        bool first = true;
        spc += INDENT_INCR;
!       newline_and_indent (pp, spc - 1);
!       pp_left_paren (pp);
        for (tree value = TYPE_VALUES (node); value; value = TREE_CHAIN (value))
  	{
  	  if (first)
  	    first = false;
  	  else
  	    {
! 	      pp_comma (pp);
! 	      newline_and_indent (pp, spc);
  	    }
  
! 	  pp_ada_tree_identifier (pp, TREE_PURPOSE (value), node, false);
  	}
!       pp_string (pp, ")");
        spc -= INDENT_INCR;
!       newline_and_indent (pp, spc);
!       pp_string (pp, "with Convention => C");
      }
    else
      {
        if (TYPE_UNSIGNED (node))
! 	pp_string (pp, "unsigned");
        else
! 	pp_string (pp, "int");
  
        for (tree value = TYPE_VALUES (node); value; value = TREE_CHAIN (value))
  	{
*************** dump_ada_enum_type (pretty_printer *buff
*** 2006,2038 ****
  	  if (TREE_CODE (int_val) != INTEGER_CST)
  	    int_val = DECL_INITIAL (int_val);
  
! 	  pp_semicolon (buffer);
! 	  newline_and_indent (buffer, spc);
  
  	  if (TYPE_NAME (node))
! 	    dump_ada_node (buffer, node, NULL_TREE, spc, false, true);
  	  else if (type)
! 	    dump_ada_node (buffer, type, NULL_TREE, spc, false, true);
  	  else
! 	    dump_anonymous_type_name (buffer, node);
! 	  pp_underscore (buffer);
! 	  pp_ada_tree_identifier (buffer, TREE_PURPOSE (value), node, false);
  
! 	  pp_string (buffer, " : constant ");
  
  	  if (TYPE_NAME (node))
! 	    dump_ada_node (buffer, node, NULL_TREE, spc, false, true);
  	  else if (type)
! 	    dump_ada_node (buffer, type, NULL_TREE, spc, false, true);
  	  else
! 	    dump_anonymous_type_name (buffer, node);
  
! 	  pp_string (buffer, " := ");
! 	  dump_ada_node (buffer, int_val, node, spc, false, true);
  	}
      }
  }
  
  /* Return true if NODE is the _Float32/_Float32x type.  */
  
  static bool
--- 2050,2098 ----
  	  if (TREE_CODE (int_val) != INTEGER_CST)
  	    int_val = DECL_INITIAL (int_val);
  
! 	  pp_semicolon (pp);
! 	  newline_and_indent (pp, spc);
  
  	  if (TYPE_NAME (node))
! 	    dump_ada_node (pp, node, NULL_TREE, spc, false, true);
  	  else if (type)
! 	    dump_ada_node (pp, type, NULL_TREE, spc, false, true);
  	  else
! 	    dump_anonymous_type_name (pp, node);
! 	  pp_underscore (pp);
! 	  pp_ada_tree_identifier (pp, TREE_PURPOSE (value), node, false);
  
! 	  pp_string (pp, " : constant ");
  
  	  if (TYPE_NAME (node))
! 	    dump_ada_node (pp, node, NULL_TREE, spc, false, true);
  	  else if (type)
! 	    dump_ada_node (pp, type, NULL_TREE, spc, false, true);
  	  else
! 	    dump_anonymous_type_name (pp, node);
  
! 	  pp_string (pp, " := ");
! 	  dump_ada_node (pp, int_val, node, spc, false, true);
  	}
      }
  }
  
+ /* Return true if NODE is the __bf16 type.  */
+ 
+ static bool
+ is_float16 (tree node)
+ {
+   if (!TYPE_NAME (node) || TREE_CODE (TYPE_NAME (node)) != TYPE_DECL)
+     return false;
+ 
+   tree name = DECL_NAME (TYPE_NAME (node));
+ 
+   if (IDENTIFIER_POINTER (name) [0] != '_')
+     return false;
+ 
+   return id_equal (name, "__bf16");
+ }
+ 
  /* Return true if NODE is the _Float32/_Float32x type.  */
  
  static bool
*************** is_float128 (tree node)
*** 2083,2098 ****
  	 || id_equal (name, "_Float128x");
  }
  
! static bool bitfield_used = false;
! static bool packed_layout = false;
! 
! /* Recursively dump in BUFFER Ada declarations corresponding to NODE of type
     TYPE.  SPC is the indentation level.  LIMITED_ACCESS indicates whether NODE
     can be referenced via a "limited with" clause.  NAME_ONLY indicates whether
     we should only dump the name of NODE, instead of its full declaration.  */
  
  static int
! dump_ada_node (pretty_printer *buffer, tree node, tree type, int spc,
  	       bool limited_access, bool name_only)
  {
    if (node == NULL_TREE)
--- 2143,2155 ----
  	 || id_equal (name, "_Float128x");
  }
  
! /* Recursively dump in PP Ada declarations corresponding to NODE of type
     TYPE.  SPC is the indentation level.  LIMITED_ACCESS indicates whether NODE
     can be referenced via a "limited with" clause.  NAME_ONLY indicates whether
     we should only dump the name of NODE, instead of its full declaration.  */
  
  static int
! dump_ada_node (pretty_printer *pp, tree node, tree type, int spc,
  	       bool limited_access, bool name_only)
  {
    if (node == NULL_TREE)
*************** dump_ada_node (pretty_printer *buffer, t
*** 2101,2124 ****
    switch (TREE_CODE (node))
      {
      case ERROR_MARK:
!       pp_string (buffer, "<<< error >>>");
        return 0;
  
      case IDENTIFIER_NODE:
!       pp_ada_tree_identifier (buffer, node, type, limited_access);
        break;
  
      case TREE_LIST:
!       pp_string (buffer, "--- unexpected node: TREE_LIST");
        return 0;
  
      case TREE_BINFO:
!       dump_ada_node (buffer, BINFO_TYPE (node), type, spc, limited_access,
  		     name_only);
        return 0;
  
      case TREE_VEC:
!       pp_string (buffer, "--- unexpected node: TREE_VEC");
        return 0;
  
      case NULLPTR_TYPE:
--- 2158,2181 ----
    switch (TREE_CODE (node))
      {
      case ERROR_MARK:
!       pp_string (pp, "<<< error >>>");
        return 0;
  
      case IDENTIFIER_NODE:
!       pp_ada_tree_identifier (pp, node, type, limited_access);
        break;
  
      case TREE_LIST:
!       pp_string (pp, "--- unexpected node: TREE_LIST");
        return 0;
  
      case TREE_BINFO:
!       dump_ada_node (pp, BINFO_TYPE (node), type, spc, limited_access,
  		     name_only);
        return 0;
  
      case TREE_VEC:
!       pp_string (pp, "--- unexpected node: TREE_VEC");
        return 0;
  
      case NULLPTR_TYPE:
*************** dump_ada_node (pretty_printer *buffer, t
*** 2126,2188 ****
        if (package_prefix)
  	{
  	  append_withs ("System", false);
! 	  pp_string (buffer, "System.Address");
  	}
        else
! 	pp_string (buffer, "address");
        break;
  
      case VECTOR_TYPE:
!       pp_string (buffer, "<vector>");
        break;
  
      case COMPLEX_TYPE:
        if (is_float128 (TREE_TYPE (node)))
  	{
  	  append_withs ("Interfaces.C.Extensions", false);
! 	  pp_string (buffer, "Extensions.CFloat_128");
  	}
        else if (TREE_TYPE (node) == float_type_node)
  	{
  	  append_withs ("Ada.Numerics.Complex_Types", false);
! 	  pp_string (buffer, "Ada.Numerics.Complex_Types.Complex");
  	}
        else if (TREE_TYPE (node) == double_type_node)
  	{
  	  append_withs ("Ada.Numerics.Long_Complex_Types", false);
! 	  pp_string (buffer, "Ada.Numerics.Long_Complex_Types.Complex");
  	}
        else if (TREE_TYPE (node) == long_double_type_node)
  	{
  	  append_withs ("Ada.Numerics.Long_Long_Complex_Types", false);
! 	  pp_string (buffer, "Ada.Numerics.Long_Long_Complex_Types.Complex");
  	}
        else
! 	pp_string (buffer, "<complex>");
        break;
  
      case ENUMERAL_TYPE:
        if (name_only)
! 	dump_ada_node (buffer, TYPE_NAME (node), node, spc, false, true);
        else
! 	dump_ada_enum_type (buffer, node, type, spc);
        break;
  
      case REAL_TYPE:
!       if (is_float32 (node))
  	{
! 	  pp_string (buffer, "Float");
  	  break;
  	}
        else if (is_float64 (node))
  	{
! 	  pp_string (buffer, "Long_Float");
  	  break;
  	}
        else if (is_float128 (node))
  	{
  	  append_withs ("Interfaces.C.Extensions", false);
! 	  pp_string (buffer, "Extensions.Float_128");
  	  break;
  	}
  
--- 2183,2250 ----
        if (package_prefix)
  	{
  	  append_withs ("System", false);
! 	  pp_string (pp, "System.Address");
  	}
        else
! 	pp_string (pp, "address");
        break;
  
      case VECTOR_TYPE:
!       pp_string (pp, "<vector>");
        break;
  
      case COMPLEX_TYPE:
        if (is_float128 (TREE_TYPE (node)))
  	{
  	  append_withs ("Interfaces.C.Extensions", false);
! 	  pp_string (pp, "Extensions.CFloat_128");
  	}
        else if (TREE_TYPE (node) == float_type_node)
  	{
  	  append_withs ("Ada.Numerics.Complex_Types", false);
! 	  pp_string (pp, "Ada.Numerics.Complex_Types.Complex");
  	}
        else if (TREE_TYPE (node) == double_type_node)
  	{
  	  append_withs ("Ada.Numerics.Long_Complex_Types", false);
! 	  pp_string (pp, "Ada.Numerics.Long_Complex_Types.Complex");
  	}
        else if (TREE_TYPE (node) == long_double_type_node)
  	{
  	  append_withs ("Ada.Numerics.Long_Long_Complex_Types", false);
! 	  pp_string (pp, "Ada.Numerics.Long_Long_Complex_Types.Complex");
  	}
        else
! 	pp_string (pp, "<complex>");
        break;
  
      case ENUMERAL_TYPE:
        if (name_only)
! 	dump_ada_node (pp, TYPE_NAME (node), node, spc, false, true);
        else
! 	dump_ada_enum_type (pp, node, type, spc);
        break;
  
      case REAL_TYPE:
!       if (is_float16 (node))
  	{
! 	  pp_string (pp, "Short_Float");
! 	  break;
! 	}
!       else if (is_float32 (node))
! 	{
! 	  pp_string (pp, "Float");
  	  break;
  	}
        else if (is_float64 (node))
  	{
! 	  pp_string (pp, "Long_Float");
  	  break;
  	}
        else if (is_float128 (node))
  	{
  	  append_withs ("Interfaces.C.Extensions", false);
! 	  pp_string (pp, "Extensions.Float_128");
  	  break;
  	}
  
*************** dump_ada_node (pretty_printer *buffer, t
*** 2193,2209 ****
      case BOOLEAN_TYPE:
        if (TYPE_NAME (node)
  	  && !(TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
! 	       && !strcmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))),
! 			   "__int128")))
  	{
  	  if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)
! 	    pp_ada_tree_identifier (buffer, TYPE_NAME (node), node,
  				    limited_access);
  	  else if (TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
  		   && DECL_NAME (TYPE_NAME (node)))
! 	    dump_ada_decl_name (buffer, TYPE_NAME (node), limited_access);
  	  else
! 	    pp_string (buffer, "<unnamed type>");
  	}
        else if (TREE_CODE (node) == INTEGER_TYPE)
  	{
--- 2255,2271 ----
      case BOOLEAN_TYPE:
        if (TYPE_NAME (node)
  	  && !(TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
! 	       && !strncmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))),
! 			   "__int128", 8)))
  	{
  	  if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)
! 	    pp_ada_tree_identifier (pp, TYPE_NAME (node), node,
  				    limited_access);
  	  else if (TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
  		   && DECL_NAME (TYPE_NAME (node)))
! 	    dump_ada_decl_name (pp, TYPE_NAME (node), limited_access);
  	  else
! 	    pp_string (pp, "<unnamed type>");
  	}
        else if (TREE_CODE (node) == INTEGER_TYPE)
  	{
*************** dump_ada_node (pretty_printer *buffer, t
*** 2211,2251 ****
  	  bitfield_used = true;
  
  	  if (TYPE_PRECISION (node) == 1)
! 	    pp_string (buffer, "Extensions.Unsigned_1");
  	  else
  	    {
! 	      pp_string (buffer, TYPE_UNSIGNED (node)
  				 ? "Extensions.Unsigned_"
  				 : "Extensions.Signed_");
! 	      pp_decimal_int (buffer, TYPE_PRECISION (node));
  	    }
  	}
        else
! 	pp_string (buffer, "<unnamed type>");
        break;
  
      case POINTER_TYPE:
      case REFERENCE_TYPE:
        if (name_only && TYPE_NAME (node))
! 	dump_ada_node (buffer, TYPE_NAME (node), node, spc, limited_access,
  		       true);
  
        else if (TREE_CODE (TREE_TYPE (node)) == FUNCTION_TYPE)
  	{
  	  if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (node))))
! 	    pp_string (buffer, "access procedure");
  	  else
! 	    pp_string (buffer, "access function");
  
! 	  dump_ada_function_declaration (buffer, node, false, false, false,
  					 spc + INDENT_INCR);
  
  	  /* If we are dumping the full type, it means we are part of a
  	     type definition and need also a Convention C aspect.  */
  	  if (!name_only)
  	    {
! 	      newline_and_indent (buffer, spc);
! 	      pp_string (buffer, "with Convention => C");
  	    }
  	}
        else
--- 2273,2313 ----
  	  bitfield_used = true;
  
  	  if (TYPE_PRECISION (node) == 1)
! 	    pp_string (pp, "Extensions.Unsigned_1");
  	  else
  	    {
! 	      pp_string (pp, TYPE_UNSIGNED (node)
  				 ? "Extensions.Unsigned_"
  				 : "Extensions.Signed_");
! 	      pp_decimal_int (pp, TYPE_PRECISION (node));
  	    }
  	}
        else
! 	pp_string (pp, "<unnamed type>");
        break;
  
      case POINTER_TYPE:
      case REFERENCE_TYPE:
        if (name_only && TYPE_NAME (node))
! 	dump_ada_node (pp, TYPE_NAME (node), node, spc, limited_access,
  		       true);
  
        else if (TREE_CODE (TREE_TYPE (node)) == FUNCTION_TYPE)
  	{
  	  if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (node))))
! 	    pp_string (pp, "access procedure");
  	  else
! 	    pp_string (pp, "access function");
  
! 	  dump_ada_function_declaration (pp, node, false, false, false,
  					 spc + INDENT_INCR);
  
  	  /* If we are dumping the full type, it means we are part of a
  	     type definition and need also a Convention C aspect.  */
  	  if (!name_only)
  	    {
! 	      newline_and_indent (pp, spc);
! 	      pp_string (pp, "with Convention => C");
  	    }
  	}
        else
*************** dump_ada_node (pretty_printer *buffer, t
*** 2257,2270 ****
  	  if (VOID_TYPE_P (ref_type))
  	    {
  	      if (!name_only)
! 		pp_string (buffer, "new ");
  	      if (package_prefix)
  		{
  		  append_withs ("System", false);
! 		  pp_string (buffer, "System.Address");
  		}
  	      else
! 		pp_string (buffer, "address");
  	    }
  	  else
  	    {
--- 2319,2332 ----
  	  if (VOID_TYPE_P (ref_type))
  	    {
  	      if (!name_only)
! 		pp_string (pp, "new ");
  	      if (package_prefix)
  		{
  		  append_withs ("System", false);
! 		  pp_string (pp, "System.Address");
  		}
  	      else
! 		pp_string (pp, "address");
  	    }
  	  else
  	    {
*************** dump_ada_node (pretty_printer *buffer, t
*** 2273,2287 ****
  		  && id_equal (DECL_NAME (TYPE_NAME (ref_type)), "char"))
  		{
  		  if (!name_only)
! 		    pp_string (buffer, "new ");
  
  		  if (package_prefix)
  		    {
! 		      pp_string (buffer, "Interfaces.C.Strings.chars_ptr");
  		      append_withs ("Interfaces.C.Strings", false);
  		    }
  		  else
! 		    pp_string (buffer, "chars_ptr");
  		}
  	      else
  		{
--- 2335,2349 ----
  		  && id_equal (DECL_NAME (TYPE_NAME (ref_type)), "char"))
  		{
  		  if (!name_only)
! 		    pp_string (pp, "new ");
  
  		  if (package_prefix)
  		    {
! 		      pp_string (pp, "Interfaces.C.Strings.chars_ptr");
  		      append_withs ("Interfaces.C.Strings", false);
  		    }
  		  else
! 		    pp_string (pp, "chars_ptr");
  		}
  	      else
  		{
*************** dump_ada_node (pretty_printer *buffer, t
*** 2295,2334 ****
  			{
  			  append_withs ("System", false);
  			  if (!name_only)
! 			    pp_string (buffer, "new ");
! 			  pp_string (buffer, "System.Address");
  			}
  		      else
! 			pp_string (buffer, "address");
  		      return spc;
  		    }
  
  		  if (!package_prefix)
  		    {
  		      is_access = false;
! 		      pp_string (buffer, "access");
  		    }
  		  else if (AGGREGATE_TYPE_P (ref_type))
  		    {
  		      if (!type || TREE_CODE (type) != FUNCTION_DECL)
  			{
  			  is_access = true;
! 			  pp_string (buffer, "access ");
  
  			  if (quals & TYPE_QUAL_CONST)
! 			    pp_string (buffer, "constant ");
  			  else if (!name_only)
! 			    pp_string (buffer, "all ");
  			}
  		      else if (quals & TYPE_QUAL_CONST)
  			{
  			  is_access = false;
! 			  pp_string (buffer, "in ");
  			}
  		      else
  			{
  			  is_access = true;
! 			  pp_string (buffer, "access ");
  			}
  		    }
  		  else
--- 2357,2396 ----
  			{
  			  append_withs ("System", false);
  			  if (!name_only)
! 			    pp_string (pp, "new ");
! 			  pp_string (pp, "System.Address");
  			}
  		      else
! 			pp_string (pp, "address");
  		      return spc;
  		    }
  
  		  if (!package_prefix)
  		    {
  		      is_access = false;
! 		      pp_string (pp, "access");
  		    }
  		  else if (AGGREGATE_TYPE_P (ref_type))
  		    {
  		      if (!type || TREE_CODE (type) != FUNCTION_DECL)
  			{
  			  is_access = true;
! 			  pp_string (pp, "access ");
  
  			  if (quals & TYPE_QUAL_CONST)
! 			    pp_string (pp, "constant ");
  			  else if (!name_only)
! 			    pp_string (pp, "all ");
  			}
  		      else if (quals & TYPE_QUAL_CONST)
  			{
  			  is_access = false;
! 			  pp_string (pp, "in ");
  			}
  		      else
  			{
  			  is_access = true;
! 			  pp_string (pp, "access ");
  			}
  		    }
  		  else
*************** dump_ada_node (pretty_printer *buffer, t
*** 2336,2345 ****
  		      /* We want to use regular with clauses for scalar types,
  			 as they are not involved in circular declarations.  */
  		      is_access = false;
! 		      pp_string (buffer, "access ");
  
  		      if (!name_only)
! 			pp_string (buffer, "all ");
  		    }
  
  		  /* If this is the anonymous original type of a typedef'ed
--- 2398,2407 ----
  		      /* We want to use regular with clauses for scalar types,
  			 as they are not involved in circular declarations.  */
  		      is_access = false;
! 		      pp_string (pp, "access ");
  
  		      if (!name_only)
! 			pp_string (pp, "all ");
  		    }
  
  		  /* If this is the anonymous original type of a typedef'ed
*************** dump_ada_node (pretty_printer *buffer, t
*** 2351,2356 ****
--- 2413,2423 ----
  		      && DECL_ORIGINAL_TYPE (DECL_CHAIN (stub)) == ref_type)
  		    ref_type = TREE_TYPE (DECL_CHAIN (stub));
  
+ 		  /* If this is a pointer to an anonymous array type, then use
+ 		     the name of the component type.  */
+ 		  else if (!type_name && is_access)
+ 		    ref_type = strip_array_types (ref_type);
+ 
  		  /* Generate "access <type>" instead of "access <subtype>"
  		     if the subtype comes from another file, because subtype
  		     declarations do not contribute to the limited view of a
*************** dump_ada_node (pretty_printer *buffer, t
*** 2375,2381 ****
  			  break;
  		      }
  
! 		  dump_ada_node (buffer, ref_type, ref_type, spc, is_access,
  				 true);
  		}
  	    }
--- 2442,2448 ----
  			  break;
  		      }
  
! 		  dump_ada_node (pp, ref_type, ref_type, spc, is_access,
  				 true);
  		}
  	    }
*************** dump_ada_node (pretty_printer *buffer, t
*** 2384,2402 ****
  
      case ARRAY_TYPE:
        if (name_only)
! 	dump_ada_node (buffer, TYPE_NAME (node), node, spc, limited_access,
  		       true);
        else
! 	dump_ada_array_type (buffer, node, spc);
        break;
  
      case RECORD_TYPE:
      case UNION_TYPE:
        if (name_only)
! 	dump_ada_node (buffer, TYPE_NAME (node), node, spc, limited_access,
  		       true);
        else
! 	dump_ada_structure (buffer, node, type, false, spc);
        break;
  
      case INTEGER_CST:
--- 2451,2469 ----
  
      case ARRAY_TYPE:
        if (name_only)
! 	dump_ada_node (pp, TYPE_NAME (node), node, spc, limited_access,
  		       true);
        else
! 	dump_ada_array_type (pp, node, spc);
        break;
  
      case RECORD_TYPE:
      case UNION_TYPE:
        if (name_only)
! 	dump_ada_node (pp, TYPE_NAME (node), node, spc, limited_access,
  		       true);
        else
! 	dump_ada_structure (pp, node, type, false, spc);
        break;
  
      case INTEGER_CST:
*************** dump_ada_node (pretty_printer *buffer, t
*** 2406,2430 ****
        if (TREE_TYPE (node) == sizetype)
  	node = fold_convert (ssizetype, node);
        if (tree_fits_shwi_p (node))
! 	pp_wide_integer (buffer, tree_to_shwi (node));
        else if (tree_fits_uhwi_p (node))
! 	pp_unsigned_wide_integer (buffer, tree_to_uhwi (node));
        else
  	{
  	  wide_int val = wi::to_wide (node);
  	  int i;
  	  if (wi::neg_p (val))
  	    {
! 	      pp_minus (buffer);
  	      val = -val;
  	    }
! 	  sprintf (pp_buffer (buffer)->digit_buffer,
  		   "16#%" HOST_WIDE_INT_PRINT "x",
  		   val.elt (val.get_len () - 1));
  	  for (i = val.get_len () - 2; i >= 0; i--)
! 	    sprintf (pp_buffer (buffer)->digit_buffer,
  		     HOST_WIDE_INT_PRINT_PADDED_HEX, val.elt (i));
! 	  pp_string (buffer, pp_buffer (buffer)->digit_buffer);
  	}
        break;
  
--- 2473,2497 ----
        if (TREE_TYPE (node) == sizetype)
  	node = fold_convert (ssizetype, node);
        if (tree_fits_shwi_p (node))
! 	pp_wide_integer (pp, tree_to_shwi (node));
        else if (tree_fits_uhwi_p (node))
! 	pp_unsigned_wide_integer (pp, tree_to_uhwi (node));
        else
  	{
  	  wide_int val = wi::to_wide (node);
  	  int i;
  	  if (wi::neg_p (val))
  	    {
! 	      pp_minus (pp);
  	      val = -val;
  	    }
! 	  sprintf (pp_buffer (pp)->m_digit_buffer,
  		   "16#%" HOST_WIDE_INT_PRINT "x",
  		   val.elt (val.get_len () - 1));
  	  for (i = val.get_len () - 2; i >= 0; i--)
! 	    sprintf (pp_buffer (pp)->m_digit_buffer,
  		     HOST_WIDE_INT_PRINT_PADDED_HEX, val.elt (i));
! 	  pp_string (pp, pp_buffer (pp)->m_digit_buffer);
  	}
        break;
  
*************** dump_ada_node (pretty_printer *buffer, t
*** 2446,2459 ****
  	      if (package_prefix)
  		{
  		  append_withs ("System", false);
! 		  pp_string (buffer, "System.Address");
  		}
  	      else
! 		pp_string (buffer, "address");
  	    }
  	}
        else if (name_only)
! 	dump_ada_decl_name (buffer, node, limited_access);
        else
  	{
  	  if (is_tagged_type (TREE_TYPE (node)))
--- 2513,2526 ----
  	      if (package_prefix)
  		{
  		  append_withs ("System", false);
! 		  pp_string (pp, "System.Address");
  		}
  	      else
! 		pp_string (pp, "address");
  	    }
  	}
        else if (name_only)
! 	dump_ada_decl_name (pp, node, limited_access);
        else
  	{
  	  if (is_tagged_type (TREE_TYPE (node)))
*************** dump_ada_node (pretty_printer *buffer, t
*** 2469,2491 ****
  		    {
  		      if (first)
  			{
! 			  pp_string (buffer, "limited new ");
  			  first = false;
  			}
  		      else
! 			pp_string (buffer, " and ");
  
! 		      dump_ada_decl_name (buffer, TYPE_NAME (TREE_TYPE (fld)),
  					  false);
  		    }
  		}
  
! 	      pp_string (buffer, first ? "tagged limited " : " with ");
  	    }
  	  else if (has_nontrivial_methods (TREE_TYPE (node)))
! 	    pp_string (buffer, "limited ");
  
! 	  dump_ada_node (buffer, TREE_TYPE (node), type, spc, false, false);
  	}
        break;
  
--- 2536,2558 ----
  		    {
  		      if (first)
  			{
! 			  pp_string (pp, "limited new ");
  			  first = false;
  			}
  		      else
! 			pp_string (pp, " and ");
  
! 		      dump_ada_decl_name (pp, TYPE_NAME (TREE_TYPE (fld)),
  					  false);
  		    }
  		}
  
! 	      pp_string (pp, first ? "tagged limited " : " with ");
  	    }
  	  else if (has_nontrivial_methods (TREE_TYPE (node)))
! 	    pp_string (pp, "limited ");
  
! 	  dump_ada_node (pp, TREE_TYPE (node), type, spc, false, false);
  	}
        break;
  
*************** dump_ada_node (pretty_printer *buffer, t
*** 2495,2501 ****
      case PARM_DECL:
      case FIELD_DECL:
      case NAMESPACE_DECL:
!       dump_ada_decl_name (buffer, node, false);
        break;
  
      default:
--- 2562,2568 ----
      case PARM_DECL:
      case FIELD_DECL:
      case NAMESPACE_DECL:
!       dump_ada_decl_name (pp, node, false);
        break;
  
      default:
*************** dump_ada_node (pretty_printer *buffer, t
*** 2506,2521 ****
    return 1;
  }
  
! /* Dump in BUFFER NODE's methods.  SPC is the indentation level.  Return 1 if
     methods were printed, 0 otherwise.  */
  
  static int
! dump_ada_methods (pretty_printer *buffer, tree node, int spc)
  {
    if (!has_nontrivial_methods (node))
      return 0;
  
!   pp_semicolon (buffer);
  
    int res = 1;
    for (tree fld = TYPE_FIELDS (node); fld; fld = DECL_CHAIN (fld))
--- 2573,2588 ----
    return 1;
  }
  
! /* Dump in PP NODE's methods.  SPC is the indentation level.  Return 1 if
     methods were printed, 0 otherwise.  */
  
  static int
! dump_ada_methods (pretty_printer *pp, tree node, int spc)
  {
    if (!has_nontrivial_methods (node))
      return 0;
  
!   pp_semicolon (pp);
  
    int res = 1;
    for (tree fld = TYPE_FIELDS (node); fld; fld = DECL_CHAIN (fld))
*************** dump_ada_methods (pretty_printer *buffer
*** 2523,2543 ****
        {
  	if (res)
  	  {
! 	    pp_newline (buffer);
! 	    pp_newline (buffer);
  	  }
  
! 	res = dump_ada_declaration (buffer, fld, node, spc);
        }
  
    return 1;
  }
  
! /* Dump in BUFFER a forward declaration for TYPE present inside T.
     SPC is the indentation level.  */
  
  static void
! dump_forward_type (pretty_printer *buffer, tree type, tree t, int spc)
  {
    tree decl = get_underlying_decl (type);
  
--- 2590,2610 ----
        {
  	if (res)
  	  {
! 	    pp_newline (pp);
! 	    pp_newline (pp);
  	  }
  
! 	res = dump_ada_declaration (pp, fld, node, spc);
        }
  
    return 1;
  }
  
! /* Dump in PP a forward declaration for TYPE present inside T.
     SPC is the indentation level.  */
  
  static void
! dump_forward_type (pretty_printer *pp, tree type, tree t, int spc)
  {
    tree decl = get_underlying_decl (type);
  
*************** dump_forward_type (pretty_printer *buffe
*** 2545,2558 ****
    if (!decl)
      {
        if (TREE_CODE (type) == POINTER_TYPE)
! 	dump_forward_type (buffer, TREE_TYPE (type), t, spc);
        else if (TREE_CODE (type) == FUNCTION_TYPE)
  	{
  	  function_args_iterator args_iter;
  	  tree arg;
! 	  dump_forward_type (buffer, TREE_TYPE (type), t, spc);
  	  FOREACH_FUNCTION_ARGS (type, arg, args_iter)
! 	    dump_forward_type (buffer, arg, t, spc);
  	}
        return;
      }
--- 2612,2625 ----
    if (!decl)
      {
        if (TREE_CODE (type) == POINTER_TYPE)
! 	dump_forward_type (pp, TREE_TYPE (type), t, spc);
        else if (TREE_CODE (type) == FUNCTION_TYPE)
  	{
  	  function_args_iterator args_iter;
  	  tree arg;
! 	  dump_forward_type (pp, TREE_TYPE (type), t, spc);
  	  FOREACH_FUNCTION_ARGS (type, arg, args_iter)
! 	    dump_forward_type (pp, arg, t, spc);
  	}
        return;
      }
*************** dump_forward_type (pretty_printer *buffe
*** 2568,2577 ****
      return;
  
    /* Generate an incomplete type declaration.  */
!   pp_string (buffer, "type ");
!   dump_ada_node (buffer, decl, NULL_TREE, spc, false, true);
!   pp_semicolon (buffer);
!   newline_and_indent (buffer, spc);
  
    /* Only one incomplete declaration is legal for a given type.  */
    TREE_VISITED (decl) = 1;
--- 2635,2644 ----
      return;
  
    /* Generate an incomplete type declaration.  */
!   pp_string (pp, "type ");
!   dump_ada_node (pp, decl, NULL_TREE, spc, false, true);
!   pp_semicolon (pp);
!   newline_and_indent (pp, spc);
  
    /* Only one incomplete declaration is legal for a given type.  */
    TREE_VISITED (decl) = 1;
*************** static bitmap dumped_anonymous_types;
*** 2584,2590 ****
  
  static void dump_nested_type (pretty_printer *, tree, tree, int);
  
! /* Dump in BUFFER anonymous types nested inside T's definition.  PARENT is the
     parent node of T.  DUMPED_TYPES is the bitmap of already dumped types.  SPC
     is the indentation level.
  
--- 2651,2657 ----
  
  static void dump_nested_type (pretty_printer *, tree, tree, int);
  
! /* Dump in PP anonymous types nested inside T's definition.  PARENT is the
     parent node of T.  DUMPED_TYPES is the bitmap of already dumped types.  SPC
     is the indentation level.
  
*************** static void dump_nested_type (pretty_pri
*** 2598,2604 ****
     pass on the nested TYPE_DECLs and a second pass on the unnamed types.  */
  
  static void
! dump_nested_types (pretty_printer *buffer, tree t, int spc)
  {
    tree type, field;
  
--- 2665,2671 ----
     pass on the nested TYPE_DECLs and a second pass on the unnamed types.  */
  
  static void
! dump_nested_types (pretty_printer *pp, tree t, int spc)
  {
    tree type, field;
  
*************** dump_nested_types (pretty_printer *buffe
*** 2612,2629 ****
  	&& DECL_NAME (field) != DECL_NAME (t)
  	&& !DECL_ORIGINAL_TYPE (field)
  	&& TYPE_NAME (TREE_TYPE (field)) != TYPE_NAME (type))
!       dump_nested_type (buffer, field, t, spc);
  
    for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
      if (TREE_CODE (field) == FIELD_DECL && !TYPE_NAME (TREE_TYPE (field)))
!       dump_nested_type (buffer, field, t, spc);
  }
  
! /* Dump in BUFFER the anonymous type of FIELD inside T.  SPC is the indentation
     level.  */
  
  static void
! dump_nested_type (pretty_printer *buffer, tree field, tree t, int spc)
  {
    tree field_type = TREE_TYPE (field);
    tree decl, tmp;
--- 2679,2696 ----
  	&& DECL_NAME (field) != DECL_NAME (t)
  	&& !DECL_ORIGINAL_TYPE (field)
  	&& TYPE_NAME (TREE_TYPE (field)) != TYPE_NAME (type))
!       dump_nested_type (pp, field, t, spc);
  
    for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
      if (TREE_CODE (field) == FIELD_DECL && !TYPE_NAME (TREE_TYPE (field)))
!       dump_nested_type (pp, field, t, spc);
  }
  
! /* Dump in PP the anonymous type of FIELD inside T.  SPC is the indentation
     level.  */
  
  static void
! dump_nested_type (pretty_printer *pp, tree field, tree t, int spc)
  {
    tree field_type = TREE_TYPE (field);
    tree decl, tmp;
*************** dump_nested_type (pretty_printer *buffer
*** 2632,2638 ****
      {
      case POINTER_TYPE:
        tmp = TREE_TYPE (field_type);
!       dump_forward_type (buffer, tmp, t, spc);
        break;
  
      case ARRAY_TYPE:
--- 2699,2705 ----
      {
      case POINTER_TYPE:
        tmp = TREE_TYPE (field_type);
!       dump_forward_type (pp, tmp, t, spc);
        break;
  
      case ARRAY_TYPE:
*************** dump_nested_type (pretty_printer *buffer
*** 2640,2649 ****
        if (!bitmap_set_bit (dumped_anonymous_types, TYPE_UID (field_type)))
  	return;
  
!       /* Recurse on the element type if need be.  */
!       tmp = TREE_TYPE (field_type);
!       while (TREE_CODE (tmp) == ARRAY_TYPE)
! 	tmp = TREE_TYPE (tmp);
        decl = get_underlying_decl (tmp);
        if (decl
  	  && !DECL_NAME (decl)
--- 2707,2713 ----
        if (!bitmap_set_bit (dumped_anonymous_types, TYPE_UID (field_type)))
  	return;
  
!       tmp = strip_array_types (field_type);
        decl = get_underlying_decl (tmp);
        if (decl
  	  && !DECL_NAME (decl)
*************** dump_nested_type (pretty_printer *buffer
*** 2651,2709 ****
  	  && !TREE_VISITED (decl))
  	{
  	  /* Generate full declaration.  */
! 	  dump_nested_type (buffer, decl, t, spc);
  	  TREE_VISITED (decl) = 1;
  	}
        else if (!decl && TREE_CODE (tmp) == POINTER_TYPE)
! 	dump_forward_type (buffer, TREE_TYPE (tmp), t, spc);
  
        /* Special case char arrays.  */
        if (is_char_array (field_type))
! 	pp_string (buffer, "subtype ");
        else
! 	pp_string (buffer, "type ");
  
!       dump_anonymous_type_name (buffer, field_type);
!       pp_string (buffer, " is ");
!       dump_ada_array_type (buffer, field_type, spc);
!       pp_semicolon (buffer);
!       newline_and_indent (buffer, spc);
        break;
  
      case ENUMERAL_TYPE:
        if (is_simple_enum (field_type))
! 	pp_string (buffer, "type ");
        else
! 	pp_string (buffer, "subtype ");
  
        if (TYPE_NAME (field_type))
! 	dump_ada_node (buffer, field_type, NULL_TREE, spc, false, true);
        else
! 	dump_anonymous_type_name (buffer, field_type);
!       pp_string (buffer, " is ");
!       dump_ada_enum_type (buffer, field_type, NULL_TREE, spc);
!       pp_semicolon (buffer);
!       newline_and_indent (buffer, spc);
        break;
  
      case RECORD_TYPE:
      case UNION_TYPE:
!       dump_nested_types (buffer, field, spc);
  
!       pp_string (buffer, "type ");
  
        if (TYPE_NAME (field_type))
! 	dump_ada_node (buffer, field_type, NULL_TREE, spc, false, true);
        else
! 	dump_anonymous_type_name (buffer, field_type);
  
        if (TREE_CODE (field_type) == UNION_TYPE)
! 	pp_string (buffer, " (discr : unsigned := 0)");
  
!       pp_string (buffer, " is ");
!       dump_ada_structure (buffer, field_type, t, true, spc);
!       pp_semicolon (buffer);
!       newline_and_indent (buffer, spc);
        break;
  
      default:
--- 2715,2773 ----
  	  && !TREE_VISITED (decl))
  	{
  	  /* Generate full declaration.  */
! 	  dump_nested_type (pp, decl, t, spc);
  	  TREE_VISITED (decl) = 1;
  	}
        else if (!decl && TREE_CODE (tmp) == POINTER_TYPE)
! 	dump_forward_type (pp, TREE_TYPE (tmp), t, spc);
  
        /* Special case char arrays.  */
        if (is_char_array (field_type))
! 	pp_string (pp, "subtype ");
        else
! 	pp_string (pp, "type ");
  
!       dump_anonymous_type_name (pp, field_type);
!       pp_string (pp, " is ");
!       dump_ada_array_type (pp, field_type, spc);
!       pp_semicolon (pp);
!       newline_and_indent (pp, spc);
        break;
  
      case ENUMERAL_TYPE:
        if (is_simple_enum (field_type))
! 	pp_string (pp, "type ");
        else
! 	pp_string (pp, "subtype ");
  
        if (TYPE_NAME (field_type))
! 	dump_ada_node (pp, field_type, NULL_TREE, spc, false, true);
        else
! 	dump_anonymous_type_name (pp, field_type);
!       pp_string (pp, " is ");
!       dump_ada_enum_type (pp, field_type, NULL_TREE, spc);
!       pp_semicolon (pp);
!       newline_and_indent (pp, spc);
        break;
  
      case RECORD_TYPE:
      case UNION_TYPE:
!       dump_nested_types (pp, field, spc);
  
!       pp_string (pp, "type ");
  
        if (TYPE_NAME (field_type))
! 	dump_ada_node (pp, field_type, NULL_TREE, spc, false, true);
        else
! 	dump_anonymous_type_name (pp, field_type);
  
        if (TREE_CODE (field_type) == UNION_TYPE)
! 	pp_string (pp, " (discr : unsigned := 0)");
  
!       pp_string (pp, " is ");
!       dump_ada_structure (pp, field_type, t, true, spc);
!       pp_semicolon (pp);
!       newline_and_indent (pp, spc);
        break;
  
      default:
*************** overloading_index (tree name)
*** 2788,2826 ****
    return h ? ++h->n : 0;
  }
  
! /* Dump in BUFFER constructor spec corresponding to T for TYPE.  */
  
  static void
! print_constructor (pretty_printer *buffer, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (buffer, "New_");
!   pp_ada_tree_identifier (buffer, decl_name, t, false);
  }
  
! /* Dump in BUFFER destructor spec corresponding to T.  */
  
  static void
! print_destructor (pretty_printer *buffer, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (buffer, "Delete_");
    if (startswith (IDENTIFIER_POINTER (DECL_NAME (t)), "__dt_del"))
!     pp_string (buffer, "And_Free_");
!   pp_ada_tree_identifier (buffer, decl_name, t, false);
  }
  
! /* Dump in BUFFER assignment operator spec corresponding to T.  */
  
  static void
! print_assignment_operator (pretty_printer *buffer, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (buffer, "Assign_");
!   pp_ada_tree_identifier (buffer, decl_name, t, false);
  }
  
  /* Return the name of type T.  */
--- 2852,2890 ----
    return h ? ++h->n : 0;
  }
  
! /* Dump in PP constructor spec corresponding to T for TYPE.  */
  
  static void
! print_constructor (pretty_printer *pp, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (pp, "New_");
!   pp_ada_tree_identifier (pp, decl_name, t, false);
  }
  
! /* Dump in PP destructor spec corresponding to T.  */
  
  static void
! print_destructor (pretty_printer *pp, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (pp, "Delete_");
    if (startswith (IDENTIFIER_POINTER (DECL_NAME (t)), "__dt_del"))
!     pp_string (pp, "And_Free_");
!   pp_ada_tree_identifier (pp, decl_name, t, false);
  }
  
! /* Dump in PP assignment operator spec corresponding to T.  */
  
  static void
! print_assignment_operator (pretty_printer *pp, tree t, tree type)
  {
    tree decl_name = DECL_NAME (TYPE_NAME (type));
  
!   pp_string (pp, "Assign_");
!   pp_ada_tree_identifier (pp, decl_name, t, false);
  }
  
  /* Return the name of type T.  */
*************** type_name (tree t)
*** 2836,2847 ****
      return IDENTIFIER_POINTER (DECL_NAME (n));
  }
  
! /* Dump in BUFFER the declaration of object T of type TYPE in Ada syntax.
     SPC is the indentation level.  Return 1 if a declaration was printed,
     0 otherwise.  */
  
  static int
! dump_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
  {
    bool is_var = false;
    bool need_indent = false;
--- 2900,2911 ----
      return IDENTIFIER_POINTER (DECL_NAME (n));
  }
  
! /* Dump in PP the declaration of object T of type TYPE in Ada syntax.
     SPC is the indentation level.  Return 1 if a declaration was printed,
     0 otherwise.  */
  
  static int
! dump_ada_declaration (pretty_printer *pp, tree t, tree type, int spc)
  {
    bool is_var = false;
    bool need_indent = false;
*************** dump_ada_declaration (pretty_printer *bu
*** 2851,2857 ****
    tree orig = NULL_TREE;
  
    if (cpp_check && cpp_check (t, IS_TEMPLATE))
!     return dump_ada_template (buffer, t, spc);
  
    /* Skip enumeral values: will be handled as part of the type itself.  */
    if (TREE_CODE (t) == CONST_DECL && TREE_CODE (TREE_TYPE (t)) == ENUMERAL_TYPE)
--- 2915,2921 ----
    tree orig = NULL_TREE;
  
    if (cpp_check && cpp_check (t, IS_TEMPLATE))
!     return dump_ada_template (pp, t, spc);
  
    /* Skip enumeral values: will be handled as part of the type itself.  */
    if (TREE_CODE (t) == CONST_DECL && TREE_CODE (TREE_TYPE (t)) == ENUMERAL_TYPE)
*************** dump_ada_declaration (pretty_printer *bu
*** 2878,2884 ****
  		  if (RECORD_OR_UNION_TYPE_P (orig) && !TREE_VISITED (stub))
  		    {
  		      INDENT (spc);
! 		      dump_forward_type (buffer, orig, t, 0);
  		    }
  
  		  TREE_VISITED (t) = 1;
--- 2942,2948 ----
  		  if (RECORD_OR_UNION_TYPE_P (orig) && !TREE_VISITED (stub))
  		    {
  		      INDENT (spc);
! 		      dump_forward_type (pp, orig, t, 0);
  		    }
  
  		  TREE_VISITED (t) = 1;
*************** dump_ada_declaration (pretty_printer *bu
*** 2888,2901 ****
  	      INDENT (spc);
  
  	      if (RECORD_OR_UNION_TYPE_P (orig) && !TREE_VISITED (stub))
! 		dump_forward_type (buffer, orig, t, spc);
  
! 	      pp_string (buffer, "subtype ");
! 	      dump_ada_node (buffer, t, type, spc, false, true);
! 	      pp_string (buffer, " is ");
! 	      dump_ada_node (buffer, orig, type, spc, false, true);
! 	      pp_string (buffer, ";  -- ");
! 	      dump_sloc (buffer, t);
  
  	      TREE_VISITED (t) = 1;
  	      return 1;
--- 2952,2965 ----
  	      INDENT (spc);
  
  	      if (RECORD_OR_UNION_TYPE_P (orig) && !TREE_VISITED (stub))
! 		dump_forward_type (pp, orig, t, spc);
  
! 	      pp_string (pp, "subtype ");
! 	      dump_ada_node (pp, t, type, spc, false, true);
! 	      pp_string (pp, " is ");
! 	      dump_ada_node (pp, orig, type, spc, false, true);
! 	      pp_string (pp, ";  -- ");
! 	      dump_sloc (pp, t);
  
  	      TREE_VISITED (t) = 1;
  	      return 1;
*************** dump_ada_declaration (pretty_printer *bu
*** 2933,2941 ****
  	  case UNION_TYPE:
  	    if (!COMPLETE_TYPE_P (TREE_TYPE (t)))
  	      {
! 		pp_string (buffer, "type ");
! 		dump_ada_node (buffer, t, type, spc, false, true);
! 		pp_string (buffer, " is null record;   -- incomplete struct");
  		TREE_VISITED (t) = 1;
  		return 1;
  	      }
--- 2997,3005 ----
  	  case UNION_TYPE:
  	    if (!COMPLETE_TYPE_P (TREE_TYPE (t)))
  	      {
! 		pp_string (pp, "type ");
! 		dump_ada_node (pp, t, type, spc, false, true);
! 		pp_string (pp, " is null record;   -- incomplete struct");
  		TREE_VISITED (t) = 1;
  		return 1;
  	      }
*************** dump_ada_declaration (pretty_printer *bu
*** 2944,3006 ****
  	    if (TYPE_PACKED (TREE_TYPE (t)))
  	      {
  		warning_at (DECL_SOURCE_LOCATION (t), 0, "packed layout");
! 		pp_string (buffer, "pragma Compile_Time_Warning (True, ");
! 		pp_string (buffer, "\"packed layout may be incorrect\");");
! 		newline_and_indent (buffer, spc);
  		packed_layout = true;
  	      }
  
  	    if (orig && TYPE_NAME (orig))
! 	      pp_string (buffer, "subtype ");
  	    else
  	      {
                  if (separate_class_package (t))
  		  {
  		    is_class = true;
! 		    pp_string (buffer, "package Class_");
! 		    dump_ada_node (buffer, t, type, spc, false, true);
! 		    pp_string (buffer, " is");
  		    spc += INDENT_INCR;
! 		    newline_and_indent (buffer, spc);
  		  }
  
! 		dump_nested_types (buffer, t, spc);
  
! 		pp_string (buffer, "type ");
  	      }
  	    break;
  
  	  case POINTER_TYPE:
  	  case REFERENCE_TYPE:
! 	    dump_forward_type (buffer, TREE_TYPE (TREE_TYPE (t)), t, spc);
  	    if (orig && TYPE_NAME (orig))
! 	      pp_string (buffer, "subtype ");
  	    else
! 	      pp_string (buffer, "type ");
  	    break;
  
  	  case ARRAY_TYPE:
  	    if ((orig && TYPE_NAME (orig)) || is_char_array (TREE_TYPE (t)))
! 	      pp_string (buffer, "subtype ");
  	    else
! 	      pp_string (buffer, "type ");
  	    break;
  
  	  case FUNCTION_TYPE:
! 	    pp_string (buffer, "--  skipped function type ");
! 	    dump_ada_node (buffer, t, type, spc, false, true);
  	    return 1;
  
  	  case ENUMERAL_TYPE:
  	    if ((orig && TYPE_NAME (orig) && orig != TREE_TYPE (t))
  		|| !is_simple_enum (TREE_TYPE (t)))
! 	      pp_string (buffer, "subtype ");
  	    else
! 	      pp_string (buffer, "type ");
  	    break;
  
  	  default:
! 	    pp_string (buffer, "subtype ");
  	}
  
        TREE_VISITED (t) = 1;
--- 3008,3070 ----
  	    if (TYPE_PACKED (TREE_TYPE (t)))
  	      {
  		warning_at (DECL_SOURCE_LOCATION (t), 0, "packed layout");
! 		pp_string (pp, "pragma Compile_Time_Warning (True, ");
! 		pp_string (pp, "\"packed layout may be incorrect\");");
! 		newline_and_indent (pp, spc);
  		packed_layout = true;
  	      }
  
  	    if (orig && TYPE_NAME (orig))
! 	      pp_string (pp, "subtype ");
  	    else
  	      {
                  if (separate_class_package (t))
  		  {
  		    is_class = true;
! 		    pp_string (pp, "package Class_");
! 		    dump_ada_node (pp, t, type, spc, false, true);
! 		    pp_string (pp, " is");
  		    spc += INDENT_INCR;
! 		    newline_and_indent (pp, spc);
  		  }
  
! 		dump_nested_types (pp, t, spc);
  
! 		pp_string (pp, "type ");
  	      }
  	    break;
  
  	  case POINTER_TYPE:
  	  case REFERENCE_TYPE:
! 	    dump_forward_type (pp, TREE_TYPE (TREE_TYPE (t)), t, spc);
  	    if (orig && TYPE_NAME (orig))
! 	      pp_string (pp, "subtype ");
  	    else
! 	      pp_string (pp, "type ");
  	    break;
  
  	  case ARRAY_TYPE:
  	    if ((orig && TYPE_NAME (orig)) || is_char_array (TREE_TYPE (t)))
! 	      pp_string (pp, "subtype ");
  	    else
! 	      pp_string (pp, "type ");
  	    break;
  
  	  case FUNCTION_TYPE:
! 	    pp_string (pp, "--  skipped function type ");
! 	    dump_ada_node (pp, t, type, spc, false, true);
  	    return 1;
  
  	  case ENUMERAL_TYPE:
  	    if ((orig && TYPE_NAME (orig) && orig != TREE_TYPE (t))
  		|| !is_simple_enum (TREE_TYPE (t)))
! 	      pp_string (pp, "subtype ");
  	    else
! 	      pp_string (pp, "type ");
  	    break;
  
  	  default:
! 	    pp_string (pp, "subtype ");
  	}
  
        TREE_VISITED (t) = 1;
*************** dump_ada_declaration (pretty_printer *bu
*** 3022,3055 ****
  	INDENT (spc);
  
        /* Print variable's name.  */
!       dump_ada_node (buffer, t, type, spc, false, true);
  
        if (TREE_CODE (t) == TYPE_DECL)
  	{
! 	  pp_string (buffer, " is ");
  
  	  if (orig && TYPE_NAME (orig))
! 	    dump_ada_node (buffer, TYPE_NAME (orig), type, spc, false, true);
  	  else
! 	    dump_ada_array_type (buffer, TREE_TYPE (t), spc);
  	}
        else
  	{
  	  if (spc == INDENT_INCR || TREE_STATIC (t))
  	    is_var = true;
  
! 	  pp_string (buffer, " : ");
  
  	  if (TREE_CODE (TREE_TYPE (TREE_TYPE (t))) != POINTER_TYPE
  	      && !packed_layout)
! 	    pp_string (buffer, "aliased ");
  
  	  if (TYPE_NAME (TREE_TYPE (t)))
! 	    dump_ada_node (buffer, TREE_TYPE (t), type, spc, false, true);
  	  else if (type)
! 	    dump_anonymous_type_name (buffer, TREE_TYPE (t));
  	  else
! 	    dump_ada_array_type (buffer, TREE_TYPE (t), spc);
  	}
      }
    else if (TREE_CODE (t) == FUNCTION_DECL)
--- 3086,3119 ----
  	INDENT (spc);
  
        /* Print variable's name.  */
!       dump_ada_node (pp, t, type, spc, false, true);
  
        if (TREE_CODE (t) == TYPE_DECL)
  	{
! 	  pp_string (pp, " is ");
  
  	  if (orig && TYPE_NAME (orig))
! 	    dump_ada_node (pp, TYPE_NAME (orig), type, spc, false, true);
  	  else
! 	    dump_ada_array_type (pp, TREE_TYPE (t), spc);
  	}
        else
  	{
  	  if (spc == INDENT_INCR || TREE_STATIC (t))
  	    is_var = true;
  
! 	  pp_string (pp, " : ");
  
  	  if (TREE_CODE (TREE_TYPE (TREE_TYPE (t))) != POINTER_TYPE
  	      && !packed_layout)
! 	    pp_string (pp, "aliased ");
  
  	  if (TYPE_NAME (TREE_TYPE (t)))
! 	    dump_ada_node (pp, TREE_TYPE (t), type, spc, false, true);
  	  else if (type)
! 	    dump_anonymous_type_name (pp, TREE_TYPE (t));
  	  else
! 	    dump_ada_array_type (pp, TREE_TYPE (t), spc);
  	}
      }
    else if (TREE_CODE (t) == FUNCTION_DECL)
*************** dump_ada_declaration (pretty_printer *bu
*** 3106,3141 ****
        else if (!DECL_VINDEX (t) && *IDENTIFIER_POINTER (decl_name) == '_')
  	{
  	  INDENT (spc);
! 	  pp_string (buffer, "--  skipped func ");
! 	  pp_string (buffer, IDENTIFIER_POINTER (decl_name));
  	  return 1;
  	}
  
        INDENT (spc);
  
!       dump_forward_type (buffer, TREE_TYPE (t), t, spc);
  
        if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (t))) && !is_constructor)
! 	pp_string (buffer, "procedure ");
        else
! 	pp_string (buffer, "function ");
  
        if (is_constructor)
! 	print_constructor (buffer, t, type);
        else if (is_destructor)
! 	print_destructor (buffer, t, type);
        else if (is_assignment_operator)
! 	print_assignment_operator (buffer, t, type);
        else
  	{
  	  const unsigned int suffix = overloading_index (decl_name);
! 	  pp_ada_tree_identifier (buffer, decl_name, t, false);
  	  if (suffix > 1)
! 	    pp_decimal_int (buffer, suffix);
  	}
  
        dump_ada_function_declaration
! 	(buffer, t, is_method, is_constructor, is_destructor, spc);
  
        if (is_constructor && RECORD_OR_UNION_TYPE_P (type))
  	for (tree fld = TYPE_FIELDS (type); fld; fld = DECL_CHAIN (fld))
--- 3170,3205 ----
        else if (!DECL_VINDEX (t) && *IDENTIFIER_POINTER (decl_name) == '_')
  	{
  	  INDENT (spc);
! 	  pp_string (pp, "--  skipped func ");
! 	  pp_string (pp, IDENTIFIER_POINTER (decl_name));
  	  return 1;
  	}
  
        INDENT (spc);
  
!       dump_forward_type (pp, TREE_TYPE (t), t, spc);
  
        if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (t))) && !is_constructor)
! 	pp_string (pp, "procedure ");
        else
! 	pp_string (pp, "function ");
  
        if (is_constructor)
! 	print_constructor (pp, t, type);
        else if (is_destructor)
! 	print_destructor (pp, t, type);
        else if (is_assignment_operator)
! 	print_assignment_operator (pp, t, type);
        else
  	{
  	  const unsigned int suffix = overloading_index (decl_name);
! 	  pp_ada_tree_identifier (pp, decl_name, t, false);
  	  if (suffix > 1)
! 	    pp_decimal_int (pp, suffix);
  	}
  
        dump_ada_function_declaration
! 	(pp, t, is_method, is_constructor, is_destructor, spc);
  
        if (is_constructor && RECORD_OR_UNION_TYPE_P (type))
  	for (tree fld = TYPE_FIELDS (type); fld; fld = DECL_CHAIN (fld))
*************** dump_ada_declaration (pretty_printer *bu
*** 3146,3179 ****
  	    }
  
        if (is_abstract || is_abstract_class)
! 	pp_string (buffer, " is abstract");
  
        if (is_abstract || !DECL_ASSEMBLER_NAME (t))
  	{
! 	  pp_semicolon (buffer);
! 	  pp_string (buffer, "  -- ");
! 	  dump_sloc (buffer, t);
  	}
        else if (is_constructor)
  	{
! 	  pp_semicolon (buffer);
! 	  pp_string (buffer, "  -- ");
! 	  dump_sloc (buffer, t);
  
! 	  newline_and_indent (buffer, spc);
! 	  pp_string (buffer, "pragma CPP_Constructor (");
! 	  print_constructor (buffer, t, type);
! 	  pp_string (buffer, ", \"");
! 	  pp_asm_name (buffer, t);
! 	  pp_string (buffer, "\");");
  	}
        else
  	{
! 	  pp_string (buffer, "  -- ");
! 	  dump_sloc (buffer, t);
  
! 	  newline_and_indent (buffer, spc);
! 	  dump_ada_import (buffer, t, spc);
  	}
  
        return 1;
--- 3210,3243 ----
  	    }
  
        if (is_abstract || is_abstract_class)
! 	pp_string (pp, " is abstract");
  
        if (is_abstract || !DECL_ASSEMBLER_NAME (t))
  	{
! 	  pp_semicolon (pp);
! 	  pp_string (pp, "  -- ");
! 	  dump_sloc (pp, t);
  	}
        else if (is_constructor)
  	{
! 	  pp_semicolon (pp);
! 	  pp_string (pp, "  -- ");
! 	  dump_sloc (pp, t);
  
! 	  newline_and_indent (pp, spc);
! 	  pp_string (pp, "pragma CPP_Constructor (");
! 	  print_constructor (pp, t, type);
! 	  pp_string (pp, ", \"");
! 	  pp_asm_name (pp, t);
! 	  pp_string (pp, "\");");
  	}
        else
  	{
! 	  pp_string (pp, "  -- ");
! 	  dump_sloc (pp, t);
  
! 	  newline_and_indent (pp, spc);
! 	  dump_ada_import (pp, t, spc);
  	}
  
        return 1;
*************** dump_ada_declaration (pretty_printer *bu
*** 3184,3195 ****
        bool is_abstract_record = false;
  
        /* Anonymous structs/unions.  */
!       dump_ada_node (buffer, TREE_TYPE (t), t, spc, false, true);
  
        if (TREE_CODE (TREE_TYPE (t)) == UNION_TYPE)
! 	pp_string (buffer, " (discr : unsigned := 0)");
  
!       pp_string (buffer, " is ");
  
        /* Check whether we have an Ada interface compatible class.
  	 That is only have a vtable non-static data member and no
--- 3248,3259 ----
        bool is_abstract_record = false;
  
        /* Anonymous structs/unions.  */
!       dump_ada_node (pp, TREE_TYPE (t), t, spc, false, true);
  
        if (TREE_CODE (TREE_TYPE (t)) == UNION_TYPE)
! 	pp_string (pp, " (discr : unsigned := 0)");
  
!       pp_string (pp, " is ");
  
        /* Check whether we have an Ada interface compatible class.
  	 That is only have a vtable non-static data member and no
*************** dump_ada_declaration (pretty_printer *bu
*** 3223,3245 ****
  	    }
  	}
  
!       TREE_VISITED (t) = 1; 
        if (is_interface)
  	{
! 	  pp_string (buffer, "limited interface  -- ");
! 	  dump_sloc (buffer, t);
! 	  newline_and_indent (buffer, spc);
! 	  pp_string (buffer, "with Import => True,");
! 	  newline_and_indent (buffer, spc + 5);
! 	  pp_string (buffer, "Convention => CPP");
  
! 	  dump_ada_methods (buffer, TREE_TYPE (t), spc);
  	}
        else
  	{
  	  if (is_abstract_record)
! 	    pp_string (buffer, "abstract ");
! 	  dump_ada_node (buffer, t, t, spc, false, false);
  	}
      }
    else
--- 3287,3309 ----
  	    }
  	}
  
!       TREE_VISITED (t) = 1;
        if (is_interface)
  	{
! 	  pp_string (pp, "limited interface  -- ");
! 	  dump_sloc (pp, t);
! 	  newline_and_indent (pp, spc);
! 	  pp_string (pp, "with Import => True,");
! 	  newline_and_indent (pp, spc + 5);
! 	  pp_string (pp, "Convention => CPP");
  
! 	  dump_ada_methods (pp, TREE_TYPE (t), spc);
  	}
        else
  	{
  	  if (is_abstract_record)
! 	    pp_string (pp, "abstract ");
! 	  dump_ada_node (pp, t, t, spc, false, false);
  	}
      }
    else
*************** dump_ada_declaration (pretty_printer *bu
*** 3249,3332 ****
  
        if ((TREE_CODE (t) == FIELD_DECL || VAR_P (t))
  	  && DECL_NAME (t))
! 	check_type_name_conflict (buffer, t);
  
        /* Print variable/type's name.  */
!       dump_ada_node (buffer, t, t, spc, false, true);
  
        if (TREE_CODE (t) == TYPE_DECL)
  	{
  	  const bool is_subtype = TYPE_NAME (orig);
  
  	  if (!is_subtype && TREE_CODE (TREE_TYPE (t)) == UNION_TYPE)
! 	    pp_string (buffer, " (discr : unsigned := 0)");
  
! 	  pp_string (buffer, " is ");
  
! 	  dump_ada_node (buffer, orig, t, spc, false, is_subtype);
  	}
        else
  	{
  	  if (spc == INDENT_INCR || TREE_STATIC (t))
  	    is_var = true;
  
! 	  pp_string (buffer, " : ");
  
  	  if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE
  	      && (TYPE_NAME (TREE_TYPE (t))
  		  || (TREE_CODE (TREE_TYPE (t)) != INTEGER_TYPE
  		      && TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE))
  	      && !packed_layout)
! 	    pp_string (buffer, "aliased ");
  
  	  if (TREE_READONLY (t) && TREE_CODE (t) != FIELD_DECL)
! 	    pp_string (buffer, "constant ");
  
  	  if (TYPE_NAME (TREE_TYPE (t))
  	      || (!RECORD_OR_UNION_TYPE_P (TREE_TYPE (t))
  		  && TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE))
! 	    dump_ada_node (buffer, TREE_TYPE (t), t, spc, false, true);
  	  else if (type)
! 	    dump_anonymous_type_name (buffer, TREE_TYPE (t));
  	}
      }
  
    if (is_class)
      {
        spc -= INDENT_INCR;
!       newline_and_indent (buffer, spc);
!       pp_string (buffer, "end;");
!       newline_and_indent (buffer, spc);
!       pp_string (buffer, "use Class_");
!       dump_ada_node (buffer, t, type, spc, false, true);
!       pp_semicolon (buffer);
!       pp_newline (buffer);
  
        /* All needed indentation/newline performed already, so return 0.  */
        return 0;
      }
    else if (is_var)
      {
!       pp_string (buffer, "  -- ");
!       dump_sloc (buffer, t);
!       newline_and_indent (buffer, spc);
!       dump_ada_import (buffer, t, spc);
      }
  
    else
      {
!       pp_string (buffer, ";  -- ");
!       dump_sloc (buffer, t);
      }
  
    return 1;
  }
  
! /* Dump in BUFFER a structure NODE of type TYPE in Ada syntax.  If NESTED is
     true, it's an anonymous nested type.  SPC is the indentation level.  */
  
  static void
! dump_ada_structure (pretty_printer *buffer, tree node, tree type, bool nested,
  		    int spc)
  {
    const bool is_union = (TREE_CODE (node) == UNION_TYPE);
--- 3313,3396 ----
  
        if ((TREE_CODE (t) == FIELD_DECL || VAR_P (t))
  	  && DECL_NAME (t))
! 	check_type_name_conflict (pp, t);
  
        /* Print variable/type's name.  */
!       dump_ada_node (pp, t, t, spc, false, true);
  
        if (TREE_CODE (t) == TYPE_DECL)
  	{
  	  const bool is_subtype = TYPE_NAME (orig);
  
  	  if (!is_subtype && TREE_CODE (TREE_TYPE (t)) == UNION_TYPE)
! 	    pp_string (pp, " (discr : unsigned := 0)");
  
! 	  pp_string (pp, " is ");
  
! 	  dump_ada_node (pp, orig, t, spc, false, is_subtype);
  	}
        else
  	{
  	  if (spc == INDENT_INCR || TREE_STATIC (t))
  	    is_var = true;
  
! 	  pp_string (pp, " : ");
  
  	  if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE
  	      && (TYPE_NAME (TREE_TYPE (t))
  		  || (TREE_CODE (TREE_TYPE (t)) != INTEGER_TYPE
  		      && TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE))
  	      && !packed_layout)
! 	    pp_string (pp, "aliased ");
  
  	  if (TREE_READONLY (t) && TREE_CODE (t) != FIELD_DECL)
! 	    pp_string (pp, "constant ");
  
  	  if (TYPE_NAME (TREE_TYPE (t))
  	      || (!RECORD_OR_UNION_TYPE_P (TREE_TYPE (t))
  		  && TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE))
! 	    dump_ada_node (pp, TREE_TYPE (t), t, spc, false, true);
  	  else if (type)
! 	    dump_anonymous_type_name (pp, TREE_TYPE (t));
  	}
      }
  
    if (is_class)
      {
        spc -= INDENT_INCR;
!       newline_and_indent (pp, spc);
!       pp_string (pp, "end;");
!       newline_and_indent (pp, spc);
!       pp_string (pp, "use Class_");
!       dump_ada_node (pp, t, type, spc, false, true);
!       pp_semicolon (pp);
!       pp_newline (pp);
  
        /* All needed indentation/newline performed already, so return 0.  */
        return 0;
      }
    else if (is_var)
      {
!       pp_string (pp, "  -- ");
!       dump_sloc (pp, t);
!       newline_and_indent (pp, spc);
!       dump_ada_import (pp, t, spc);
      }
  
    else
      {
!       pp_string (pp, ";  -- ");
!       dump_sloc (pp, t);
      }
  
    return 1;
  }
  
! /* Dump in PP a structure NODE of type TYPE in Ada syntax.  If NESTED is
     true, it's an anonymous nested type.  SPC is the indentation level.  */
  
  static void
! dump_ada_structure (pretty_printer *pp, tree node, tree type, bool nested,
  		    int spc)
  {
    const bool is_union = (TREE_CODE (node) == UNION_TYPE);
*************** dump_ada_structure (pretty_printer *buff
*** 3338,3353 ****
    bitfield_used = false;
  
    /* Print the contents of the structure.  */
!   pp_string (buffer, "record");
  
    if (is_union)
      {
!       newline_and_indent (buffer, spc + INDENT_INCR);
!       pp_string (buffer, "case discr is");
        field_spc = spc + INDENT_INCR * 3;
      }
  
!   pp_newline (buffer);
  
    /* Print the non-static fields of the structure.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
--- 3402,3417 ----
    bitfield_used = false;
  
    /* Print the contents of the structure.  */
!   pp_string (pp, "record");
  
    if (is_union)
      {
!       newline_and_indent (pp, spc + INDENT_INCR);
!       pp_string (pp, "case discr is");
        field_spc = spc + INDENT_INCR * 3;
      }
  
!   pp_newline (pp);
  
    /* Print the non-static fields of the structure.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
*************** dump_ada_structure (pretty_printer *buff
*** 3358,3381 ****
  	  if (!is_tagged_type (TREE_TYPE (tmp)))
  	    {
  	      if (!TYPE_NAME (TREE_TYPE (tmp)))
! 		dump_ada_declaration (buffer, tmp, type, field_spc);
  	      else
  		{
  		  INDENT (field_spc);
  
  		  if (field_num == 0)
! 		    pp_string (buffer, "parent : aliased ");
  		  else
  		    {
  		      sprintf (buf, "field_%d : aliased ", field_num + 1);
! 		      pp_string (buffer, buf);
  		    }
! 		  dump_ada_decl_name (buffer, TYPE_NAME (TREE_TYPE (tmp)),
  				      false);
! 		  pp_semicolon (buffer);
  		}
  
! 	      pp_newline (buffer);
  	      field_num++;
  	    }
  	}
--- 3422,3445 ----
  	  if (!is_tagged_type (TREE_TYPE (tmp)))
  	    {
  	      if (!TYPE_NAME (TREE_TYPE (tmp)))
! 		dump_ada_declaration (pp, tmp, type, field_spc);
  	      else
  		{
  		  INDENT (field_spc);
  
  		  if (field_num == 0)
! 		    pp_string (pp, "parent : aliased ");
  		  else
  		    {
  		      sprintf (buf, "field_%d : aliased ", field_num + 1);
! 		      pp_string (pp, buf);
  		    }
! 		  dump_ada_decl_name (pp, TYPE_NAME (TREE_TYPE (tmp)),
  				      false);
! 		  pp_semicolon (pp);
  		}
  
! 	      pp_newline (pp);
  	      field_num++;
  	    }
  	}
*************** dump_ada_structure (pretty_printer *buff
*** 3394,3406 ****
  		    sprintf (buf, "when others =>");
  
  		  INDENT (spc + INDENT_INCR * 2);
! 		  pp_string (buffer, buf);
! 		  pp_newline (buffer);
  		}
  
! 	      if (dump_ada_declaration (buffer, tmp, type, field_spc))
  		{
! 		  pp_newline (buffer);
  		  field_num++;
  		}
  	    }
--- 3458,3470 ----
  		    sprintf (buf, "when others =>");
  
  		  INDENT (spc + INDENT_INCR * 2);
! 		  pp_string (pp, buf);
! 		  pp_newline (pp);
  		}
  
! 	      if (dump_ada_declaration (pp, tmp, type, field_spc))
  		{
! 		  pp_newline (pp);
  		  field_num++;
  		}
  	    }
*************** dump_ada_structure (pretty_printer *buff
*** 3410,3458 ****
    if (is_union)
      {
        INDENT (spc + INDENT_INCR);
!       pp_string (buffer, "end case;");
!       pp_newline (buffer);
      }
  
    if (field_num == 0)
      {
        INDENT (spc + INDENT_INCR);
!       pp_string (buffer, "null;");
!       pp_newline (buffer);
      }
  
    INDENT (spc);
!   pp_string (buffer, "end record");
  
!   newline_and_indent (buffer, spc);
  
    /* We disregard the methods for anonymous nested types.  */
    if (has_nontrivial_methods (node) && !nested)
      {
!       pp_string (buffer, "with Import => True,");
!       newline_and_indent (buffer, spc + 5);
!       pp_string (buffer, "Convention => CPP");
      }
    else
!     pp_string (buffer, "with Convention => C_Pass_By_Copy");
  
    if (is_union)
      {
!       pp_comma (buffer);
!       newline_and_indent (buffer, spc + 5);
!       pp_string (buffer, "Unchecked_Union => True");
      }
  
    if (bitfield_used || packed_layout)
      {
        char buf[32];
!       pp_comma (buffer);
!       newline_and_indent (buffer, spc + 5);
!       pp_string (buffer, "Pack => True");
!       pp_comma (buffer);
!       newline_and_indent (buffer, spc + 5);
        sprintf (buf, "Alignment => %d", TYPE_ALIGN (node) / BITS_PER_UNIT);
!       pp_string (buffer, buf);
        bitfield_used = false;
        packed_layout = false;
      }
--- 3474,3522 ----
    if (is_union)
      {
        INDENT (spc + INDENT_INCR);
!       pp_string (pp, "end case;");
!       pp_newline (pp);
      }
  
    if (field_num == 0)
      {
        INDENT (spc + INDENT_INCR);
!       pp_string (pp, "null;");
!       pp_newline (pp);
      }
  
    INDENT (spc);
!   pp_string (pp, "end record");
  
!   newline_and_indent (pp, spc);
  
    /* We disregard the methods for anonymous nested types.  */
    if (has_nontrivial_methods (node) && !nested)
      {
!       pp_string (pp, "with Import => True,");
!       newline_and_indent (pp, spc + 5);
!       pp_string (pp, "Convention => CPP");
      }
    else
!     pp_string (pp, "with Convention => C_Pass_By_Copy");
  
    if (is_union)
      {
!       pp_comma (pp);
!       newline_and_indent (pp, spc + 5);
!       pp_string (pp, "Unchecked_Union => True");
      }
  
    if (bitfield_used || packed_layout)
      {
        char buf[32];
!       pp_comma (pp);
!       newline_and_indent (pp, spc + 5);
!       pp_string (pp, "Pack => True");
!       pp_comma (pp);
!       newline_and_indent (pp, spc + 5);
        sprintf (buf, "Alignment => %d", TYPE_ALIGN (node) / BITS_PER_UNIT);
!       pp_string (pp, buf);
        bitfield_used = false;
        packed_layout = false;
      }
*************** dump_ada_structure (pretty_printer *buff
*** 3460,3466 ****
    if (nested)
      return;
  
!   need_semicolon = !dump_ada_methods (buffer, node, spc);
  
    /* Print the static fields of the structure, if any.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
--- 3524,3530 ----
    if (nested)
      return;
  
!   need_semicolon = !dump_ada_methods (pp, node, spc);
  
    /* Print the static fields of the structure, if any.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
*************** dump_ada_structure (pretty_printer *buff
*** 3470,3480 ****
  	  if (need_semicolon)
  	    {
  	      need_semicolon = false;
! 	      pp_semicolon (buffer);
  	    }
! 	  pp_newline (buffer);
! 	  pp_newline (buffer);
! 	  dump_ada_declaration (buffer, tmp, type, spc);
  	}
      }
  }
--- 3534,3544 ----
  	  if (need_semicolon)
  	    {
  	      need_semicolon = false;
! 	      pp_semicolon (pp);
  	    }
! 	  pp_newline (pp);
! 	  pp_newline (pp);
! 	  dump_ada_declaration (pp, tmp, type, spc);
  	}
      }
  }
*************** dump_ads (const char *source_file,
*** 3513,3519 ****
        pretty_printer pp;
  
        pp_needs_newline (&pp) = true;
!       pp.buffer->stream = f;
  
        /* Dump all relevant macros.  */
        dump_ada_macros (&pp, source_file);
--- 3577,3583 ----
        pretty_printer pp;
  
        pp_needs_newline (&pp) = true;
!       pp.set_output_stream (f);
  
        /* Dump all relevant macros.  */
        dump_ada_macros (&pp, source_file);
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-ada-spec.h gcc-15.1.0/gcc/c-family/c-ada-spec.h
*** gcc-14.2.0/gcc/c-family/c-ada-spec.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-ada-spec.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-attribs.cc gcc-15.1.0/gcc/c-family/c-attribs.cc
*** gcc-14.2.0/gcc/c-family/c-attribs.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-attribs.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* C-family attributes handling.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* C-family attributes handling.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 48,53 ****
--- 48,54 ----
  #include "gimplify.h"
  #include "tree-pretty-print.h"
  #include "gcc-rich-location.h"
+ #include "gcc-urlifier.h"
  
  static tree handle_packed_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nocommon_attribute (tree *, tree, tree, int, bool *);
*************** static tree handle_destructor_attribute
*** 100,110 ****
  static tree handle_mode_attribute (tree *, tree, tree, int, bool *);
  static tree handle_section_attribute (tree *, tree, tree, int, bool *);
  static tree handle_special_var_sec_attribute (tree *, tree, tree, int, bool *);
- static tree handle_aligned_attribute (tree *, tree, tree, int, bool *);
  static tree handle_warn_if_not_aligned_attribute (tree *, tree, tree,
  						  int, bool *);
  static tree handle_strict_flex_array_attribute (tree *, tree, tree,
  						 int, bool *);
  static tree handle_weak_attribute (tree *, tree, tree, int, bool *) ;
  static tree handle_noplt_attribute (tree *, tree, tree, int, bool *) ;
  static tree handle_alias_ifunc_attribute (bool, tree *, tree, tree, bool *);
--- 101,112 ----
  static tree handle_mode_attribute (tree *, tree, tree, int, bool *);
  static tree handle_section_attribute (tree *, tree, tree, int, bool *);
  static tree handle_special_var_sec_attribute (tree *, tree, tree, int, bool *);
  static tree handle_warn_if_not_aligned_attribute (tree *, tree, tree,
  						  int, bool *);
  static tree handle_strict_flex_array_attribute (tree *, tree, tree,
  						 int, bool *);
+ static tree handle_counted_by_attribute (tree *, tree, tree,
+ 					   int, bool *);
  static tree handle_weak_attribute (tree *, tree, tree, int, bool *) ;
  static tree handle_noplt_attribute (tree *, tree, tree, int, bool *) ;
  static tree handle_alias_ifunc_attribute (bool, tree *, tree, tree, bool *);
*************** static tree handle_vector_size_attribute
*** 136,141 ****
--- 138,145 ----
  static tree handle_vector_mask_attribute (tree *, tree, tree, int,
  					  bool *) ATTRIBUTE_NONNULL(3);
  static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_nonnull_if_nonzero_attribute (tree *, tree, tree, int,
+ 						 bool *);
  static tree handle_nonstring_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nothrow_attribute (tree *, tree, tree, int, bool *);
  static tree handle_expected_throw_attribute (tree *, tree, tree, int, bool *);
*************** static tree handle_signed_bool_precision
*** 182,187 ****
--- 186,192 ----
  static tree handle_hardbool_attribute (tree *, tree, tree, int, bool *);
  static tree handle_retain_attribute (tree *, tree, tree, int, bool *);
  static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_flag_enum_attribute (tree *, tree, tree, int, bool *);
  static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree, int, bool *);
  
  /* Helper to define attribute exclusions.  */
*************** static tree handle_null_terminated_strin
*** 189,195 ****
    { name, function, type, variable }
  
  /* Define attributes that are mutually exclusive with one another.  */
! static const struct attribute_spec::exclusions attr_aligned_exclusions[] =
  {
    /* Attribute name     exclusion applies to:
  	                function, type, variable */
--- 194,200 ----
    { name, function, type, variable }
  
  /* Define attributes that are mutually exclusive with one another.  */
! extern const struct attribute_spec::exclusions attr_aligned_exclusions[] =
  {
    /* Attribute name     exclusion applies to:
  	                function, type, variable */
*************** const struct attribute_spec c_common_gnu
*** 338,343 ****
--- 343,350 ----
    { "common",                 0, 0, true,  false, false, false,
  			      handle_common_attribute,
  	                      attr_common_exclusions },
+   { "musttail",		      0, 0, false, false, false,
+ 			      false, handle_musttail_attribute, NULL },
    /* FIXME: logically, noreturn attributes should be listed as
       "false, true, true" and apply to function types.  But implementing this
       would require all the places in the compiler that use TREE_THIS_VOLATILE
*************** const struct attribute_spec c_common_gnu
*** 412,417 ****
--- 419,426 ----
  			      handle_warn_if_not_aligned_attribute, NULL },
    { "strict_flex_array",      1, 1, true, false, false, false,
  			      handle_strict_flex_array_attribute, NULL },
+   { "counted_by",	      1, 1, true, false, false, false,
+ 			      handle_counted_by_attribute, NULL },
    { "weak",                   0, 0, true,  false, false, false,
  			      handle_weak_attribute, NULL },
    { "noplt",                   0, 0, true,  false, false, false,
*************** const struct attribute_spec c_common_gnu
*** 438,443 ****
--- 447,460 ----
    { "pure",                   0, 0, true,  false, false, false,
  			      handle_pure_attribute,
  	                      attr_const_pure_exclusions },
+   { "reproducible",           0, 0, false, true,  true,  false,
+ 			      handle_reproducible_attribute, NULL },
+   { "unsequenced",            0, 0, false, true,  true,  false,
+ 			      handle_unsequenced_attribute, NULL },
+   { "reproducible noptr",     0, 0, false, true,  true,  false,
+ 			      handle_reproducible_attribute, NULL },
+   { "unsequenced noptr",      0, 0, false, true,  true,  false,
+ 			      handle_unsequenced_attribute, NULL },
    { "transaction_callable",   0, 0, false, true,  false, false,
  			      handle_tm_attribute, NULL },
    { "transaction_unsafe",     0, 0, false, true,  false, true,
*************** const struct attribute_spec c_common_gnu
*** 472,477 ****
--- 489,496 ----
  			      handle_tls_model_attribute, NULL },
    { "nonnull",                0, -1, false, true, true, false,
  			      handle_nonnull_attribute, NULL },
+   { "nonnull_if_nonzero",     2, 2, false, true, true, false,
+ 			      handle_nonnull_if_nonzero_attribute, NULL },
    { "nonstring",              0, 0, true, false, false, false,
  			      handle_nonstring_attribute, NULL },
    { "nothrow",                0, 0, true,  false, false, false,
*************** const struct attribute_spec c_common_gnu
*** 556,561 ****
--- 575,583 ----
  			      handle_omp_declare_variant_attribute, NULL },
    { "omp declare variant variant", 0, -1, true,  false, false, false,
  			      handle_omp_declare_variant_attribute, NULL },
+   { "omp declare variant variant args", 0, -1, true,  false,
+ 			      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,
*************** const struct attribute_spec c_common_gnu
*** 570,577 ****
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target nohost", 0, 0, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
-   { "omp declare target block", 0, 0, true, false, false, false,
- 			      handle_omp_declare_target_attribute, NULL },
    { "non overlapping",	      0, 0, true, false, false, false,
  			      handle_non_overlapping_attribute, NULL },
    { "alloc_align",	      1, 1, false, true, true, false,
--- 592,597 ----
*************** const struct attribute_spec c_common_gnu
*** 612,622 ****
    { "tainted_args",	      0, 0, true,  false, false, false,
  			      handle_tainted_args_attribute, NULL },
    { "fd_arg",             1, 1, false, true, true, false,
!             handle_fd_arg_attribute, NULL},      
    { "fd_arg_read",        1, 1, false, true, true, false,
              handle_fd_arg_attribute, NULL},
    { "fd_arg_write",       1, 1, false, true, true, false,
!             handle_fd_arg_attribute, NULL},         
    { "null_terminated_string_arg", 1, 1, false, true, true, false,
  			      handle_null_terminated_string_arg_attribute, NULL}
  };
--- 632,644 ----
    { "tainted_args",	      0, 0, true,  false, false, false,
  			      handle_tainted_args_attribute, NULL },
    { "fd_arg",             1, 1, false, true, true, false,
!             handle_fd_arg_attribute, NULL},
    { "fd_arg_read",        1, 1, false, true, true, false,
              handle_fd_arg_attribute, NULL},
    { "fd_arg_write",       1, 1, false, true, true, false,
!             handle_fd_arg_attribute, NULL},
!   { "flag_enum",	      0, 0, false, true, false, false,
! 			      handle_flag_enum_attribute, NULL },
    { "null_terminated_string_arg", 1, 1, false, true, true, false,
  			      handle_null_terminated_string_arg_attribute, NULL}
  };
*************** const struct scoped_attribute_specs c_co
*** 626,631 ****
--- 648,666 ----
    "gnu", { c_common_gnu_attributes }
  };
  
+ /* Attributes also recognized in the clang:: namespace.  */
+ const struct attribute_spec c_common_clang_attributes[] = {
+   { "flag_enum",	      0, 0, false, true, false, false,
+ 			      handle_flag_enum_attribute, NULL },
+   { "musttail",		      0, 0, false, false, false,
+ 			      false, handle_musttail_attribute, NULL }
+ };
+ 
+ const struct scoped_attribute_specs c_common_clang_attribute_table =
+ {
+   "clang", { c_common_clang_attributes }
+ };
+ 
  /* Give the specifications for the format attributes, used by C and all
     descendants.
  
*************** attribute_takes_identifier_p (const_tree
*** 659,670 ****
    else if (!strcmp ("mode", spec->name)
  	   || !strcmp ("format", spec->name)
  	   || !strcmp ("cleanup", spec->name)
! 	   || !strcmp ("access", spec->name))
      return true;
    else
      return targetm.attribute_takes_identifier_p (attr_id);
  }
  
  /* Verify that argument value POS at position ARGNO to attribute NAME
     applied to function FN (which is either a function declaration or function
     type) refers to a function parameter at position POS and the expected type
--- 694,726 ----
    else if (!strcmp ("mode", spec->name)
  	   || !strcmp ("format", spec->name)
  	   || !strcmp ("cleanup", spec->name)
! 	   || !strcmp ("access", spec->name)
! 	   || !strcmp ("counted_by", spec->name))
      return true;
    else
      return targetm.attribute_takes_identifier_p (attr_id);
  }
  
+ /* Set a musttail attribute MUSTTAIL_P on return expression RETVAL
+    at LOC.  */
+ 
+ void
+ set_musttail_on_return (tree retval, location_t loc, bool musttail_p)
+ {
+   if (retval && musttail_p)
+     {
+       tree t = retval;
+       if (TREE_CODE (t) == TARGET_EXPR)
+ 	t = TARGET_EXPR_INITIAL (t);
+       if (TREE_CODE (t) != CALL_EXPR)
+ 	error_at (loc, "cannot tail-call: return value must be a call");
+       else
+ 	CALL_EXPR_MUST_TAIL_CALL (t) = 1;
+     }
+   else if (musttail_p && !retval)
+     error_at (loc, "cannot tail-call: return value must be a call");
+ }
+ 
  /* Verify that argument value POS at position ARGNO to attribute NAME
     applied to function FN (which is either a function declaration or function
     type) refers to a function parameter at position POS and the expected type
*************** positional_argument (const_tree fn, cons
*** 681,686 ****
--- 737,744 ----
  		     tree_code code, int argno /* = 0 */,
  		     int flags /* = posargflags () */)
  {
+   auto_urlify_attributes sentinel;
+ 
    const_tree fndecl = TYPE_P (fn) ? NULL_TREE : fn;
    const_tree fntype = TYPE_P (fn) ? fn : TREE_TYPE (fn);
    if (pos && TREE_CODE (pos) != IDENTIFIER_NODE
*************** handle_hardbool_attribute (tree *node, t
*** 1074,1079 ****
--- 1132,1138 ----
  
    TREE_SET_CODE (*node, ENUMERAL_TYPE);
    ENUM_UNDERLYING_TYPE (*node) = orig;
+   TYPE_CANONICAL (*node) = TYPE_CANONICAL (orig);
  
    tree false_value;
    if (args)
*************** handle_common_attribute (tree *node, tre
*** 1216,1221 ****
--- 1275,1293 ----
    return NULL_TREE;
  }
  
+ /* Handle a "musttail" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ tree
+ handle_musttail_attribute (tree ARG_UNUSED (*node), tree name, tree ARG_UNUSED (args),
+ 			   int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   /* Currently only a statement attribute, handled directly in parser.  */
+   warning (OPT_Wattributes, "%qE attribute ignored", name);
+   *no_add_attrs = true;
+   return NULL_TREE;
+ }
+ 
  /* Handle a "noreturn" attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** common_handle_aligned_attribute (tree *n
*** 2743,2749 ****
  /* Handle a "aligned" attribute; arguments as in
     struct attribute_spec.handler.  */
  
! static tree
  handle_aligned_attribute (tree *node, tree name, tree args,
  			  int flags, bool *no_add_attrs)
  {
--- 2815,2821 ----
  /* Handle a "aligned" attribute; arguments as in
     struct attribute_spec.handler.  */
  
! tree
  handle_aligned_attribute (tree *node, tree name, tree args,
  			  int flags, bool *no_add_attrs)
  {
*************** handle_strict_flex_array_attribute (tree
*** 2806,2811 ****
--- 2878,2952 ----
    return NULL_TREE;
  }
  
+ /* Handle a "counted_by" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ handle_counted_by_attribute (tree *node, tree name,
+ 			     tree args, int ARG_UNUSED (flags),
+ 			     bool *no_add_attrs)
+ {
+   tree decl = *node;
+   tree argval = TREE_VALUE (args);
+   tree old_counted_by = lookup_attribute ("counted_by", DECL_ATTRIBUTES (decl));
+ 
+   /* This attribute is not supported in C++.  */
+   if (c_dialect_cxx ())
+     {
+       warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
+ 		  "%qE attribute is not supported for C++ for now, ignored",
+ 		  name);
+       *no_add_attrs = true;
+     }
+   /* This attribute only applies to field decls of a structure.  */
+   else if (TREE_CODE (decl) != FIELD_DECL)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%qE attribute is not allowed for a non-field"
+ 		" declaration %q+D", name, decl);
+       *no_add_attrs = true;
+     }
+   /* This attribute only applies to field with array type.  */
+   else if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%qE attribute is not allowed for a non-array field",
+ 		name);
+       *no_add_attrs = true;
+     }
+   /* This attribute only applies to a C99 flexible array member type.  */
+   else if (! c_flexible_array_member_type_p (TREE_TYPE (decl)))
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%qE attribute is not allowed for a non-flexible"
+ 		" array member field", name);
+       *no_add_attrs = true;
+     }
+   /* The argument should be an identifier.  */
+   else if (TREE_CODE (argval) != IDENTIFIER_NODE)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%<counted_by%> argument is not an identifier");
+       *no_add_attrs = true;
+     }
+   /* Issue error when there is a counted_by attribute with a different
+      field as the argument for the same flexible array member field.  */
+   else if (old_counted_by != NULL_TREE)
+     {
+       tree old_fieldname = TREE_VALUE (TREE_VALUE (old_counted_by));
+       if (strcmp (IDENTIFIER_POINTER (old_fieldname),
+ 		  IDENTIFIER_POINTER (argval)) != 0)
+ 	{
+ 	  error_at (DECL_SOURCE_LOCATION (decl),
+ 		    "%<counted_by%> argument %qE conflicts with"
+ 		    " previous declaration %qE", argval, old_fieldname);
+ 	  *no_add_attrs = true;
+ 	}
+     }
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "weak" attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** handle_pure_attribute (tree *node, tree
*** 4178,4183 ****
--- 4319,4371 ----
    return NULL_TREE;
  }
  
+ /* Handle an "unsequenced" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ tree
+ handle_unsequenced_attribute (tree *node, tree name, tree ARG_UNUSED (args),
+ 			      int flags, bool *no_add_attrs)
+ {
+   tree fntype = *node;
+   for (tree argtype = TYPE_ARG_TYPES (fntype); argtype;
+        argtype = TREE_CHAIN (argtype))
+     /* If any of the arguments have pointer or reference type, just
+        add the attribute alone.  */
+     if (POINTER_TYPE_P (TREE_VALUE (argtype)))
+       return NULL_TREE;
+ 
+   if (VOID_TYPE_P (TREE_TYPE (fntype)))
+     warning (OPT_Wattributes, "%qE attribute on function type "
+ 	     "without pointer arguments returning %<void%>", name);
+   const char *name2;
+   if (IDENTIFIER_LENGTH (name) == sizeof ("unsequenced") - 1)
+     name2 = "unsequenced noptr";
+   else
+     name2 = "reproducible noptr";
+   if (!lookup_attribute (name2, TYPE_ATTRIBUTES (fntype)))
+     {
+       *no_add_attrs = true;
+       gcc_assert ((flags & (int) ATTR_FLAG_TYPE_IN_PLACE) == 0);
+       tree attr = tree_cons (get_identifier (name2), NULL_TREE,
+ 			     TYPE_ATTRIBUTES (fntype));
+       if (!lookup_attribute (IDENTIFIER_POINTER (name),
+ 			     TYPE_ATTRIBUTES (fntype)))
+ 	attr = tree_cons (name, NULL_TREE, attr);
+       *node = build_type_attribute_variant (*node, attr);
+     }
+   return NULL_TREE;
+ }
+ 
+ /* Handle a "reproducible" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ tree
+ handle_reproducible_attribute (tree *node, tree name, tree args, int flags,
+ 			       bool *no_add_attrs)
+ {
+   return handle_unsequenced_attribute (node, name, args, flags, no_add_attrs);
+ }
+ 
  /* Digest an attribute list destined for a transactional memory statement.
     ALLOWED is the set of attributes that are allowed for this statement;
     return the attribute we parsed.  Multiple attributes are never allowed.  */
*************** handle_nonnull_attribute (tree *node, tr
*** 4820,4826 ****
        /* NEXT is null when the attribute includes just one argument.
  	 That's used to tell positional_argument to avoid mentioning
  	 the argument number in diagnostics (since there's just one
! 	 mentioning it is unnecessary and coule be confusing).  */
        tree next = TREE_CHAIN (args);
        if (tree val = positional_argument (type, name, pos, POINTER_TYPE,
  					  next || i > 1 ? i : 0))
--- 5008,5014 ----
        /* NEXT is null when the attribute includes just one argument.
  	 That's used to tell positional_argument to avoid mentioning
  	 the argument number in diagnostics (since there's just one
! 	 mentioning it is unnecessary and could be confusing).  */
        tree next = TREE_CHAIN (args);
        if (tree val = positional_argument (type, name, pos, POINTER_TYPE,
  					  next || i > 1 ? i : 0))
*************** handle_nonnull_attribute (tree *node, tr
*** 4836,4841 ****
--- 5024,5052 ----
    return NULL_TREE;
  }
  
+ /* Handle the "nonnull_if_nonzero" attribute.  */
+ 
+ static tree
+ handle_nonnull_if_nonzero_attribute (tree *node, tree name,
+ 				     tree args, int ARG_UNUSED (flags),
+ 				     bool *no_add_attrs)
+ {
+   tree type = *node;
+   tree pos = TREE_VALUE (args);
+   tree pos2 = TREE_VALUE (TREE_CHAIN (args));
+   tree val = positional_argument (type, name, pos, POINTER_TYPE, 1);
+   tree val2 = positional_argument (type, name, pos2, INTEGER_TYPE, 2);
+   if (val && val2)
+     {
+       TREE_VALUE (args) = val;
+       TREE_VALUE (TREE_CHAIN (args)) = val2;
+     }
+   else
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle the "fd_arg", "fd_arg_read" and "fd_arg_write" attributes */
  
  static tree
*************** handle_fd_arg_attribute (tree *node, tre
*** 4856,4862 ****
    if (positional_argument (*node, name, TREE_VALUE (args), INTEGER_TYPE))
        return NULL_TREE;
  
!   *no_add_attrs = true;  
    return NULL_TREE;
  }
  
--- 5067,5089 ----
    if (positional_argument (*node, name, TREE_VALUE (args), INTEGER_TYPE))
        return NULL_TREE;
  
!   *no_add_attrs = true;
!   return NULL_TREE;
! }
! 
! /* Handle the "flag_enum" attribute.  */
! 
! static tree
! handle_flag_enum_attribute (tree *node, tree ARG_UNUSED (name),
! 			    tree ARG_UNUSED (args), int ARG_UNUSED (flags),
! 			    bool *no_add_attrs)
! {
!   if (TREE_CODE (*node) != ENUMERAL_TYPE)
!     {
!       warning (OPT_Wattributes, "%qE attribute ignored on non-enum", name);
!       *no_add_attrs = true;
!     }
! 
    return NULL_TREE;
  }
  
*************** handle_nonstring_attribute (tree *node,
*** 4892,4899 ****
        if (POINTER_TYPE_P (type) || TREE_CODE (type) == ARRAY_TYPE)
  	{
  	  /* Accept the attribute on arrays and pointers to all three
! 	     narrow character types.  */
! 	  tree eltype = TREE_TYPE (type);
  	  eltype = TYPE_MAIN_VARIANT (eltype);
  	  if (eltype == char_type_node
  	      || eltype == signed_char_type_node
--- 5119,5127 ----
        if (POINTER_TYPE_P (type) || TREE_CODE (type) == ARRAY_TYPE)
  	{
  	  /* Accept the attribute on arrays and pointers to all three
! 	     narrow character types, including multi-dimensional arrays
! 	     or pointers to them.  */
! 	  tree eltype = strip_array_types (TREE_TYPE (type));
  	  eltype = TYPE_MAIN_VARIANT (eltype);
  	  if (eltype == char_type_node
  	      || eltype == signed_char_type_node
*************** handle_optimize_attribute (tree *node, t
*** 5971,5976 ****
--- 6199,6208 ----
        if (prev_target_node != target_node)
  	DECL_FUNCTION_SPECIFIC_TARGET (*node) = target_node;
  
+       /* Also update the cgraph_node, if it's already built.  */
+       if (cgraph_node *cn = cgraph_node::get (*node))
+ 	cn->semantic_interposition = flag_semantic_interposition;
+ 
        /* Restore current options.  */
        cl_optimization_restore (&global_options, &global_options_set,
  			       &cur_opts);
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-common.cc gcc-15.1.0/gcc/c-family/c-common.cc
*** gcc-14.2.0/gcc/c-family/c-common.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-common.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subroutines shared by all languages that are variants of C.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Subroutines shared by all languages that are variants of C.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 53,58 ****
--- 53,61 ----
  #include "debug.h"
  #include "tree-vector-builder.h"
  #include "vec-perm-indices.h"
+ #include "tree-pretty-print-markup.h"
+ #include "gcc-rich-location.h"
+ #include "gcc-urlifier.h"
  
  cpp_reader *parse_in;		/* Declared in c-pragma.h.  */
  
*************** machine_mode c_default_pointer_mode = VO
*** 98,104 ****
  
  	tree dfloat32_type_node;
  	tree dfloat64_type_node;
! 	tree_dfloat128_type_node;
  
  	tree intQI_type_node;
  	tree intHI_type_node;
--- 101,108 ----
  
  	tree dfloat32_type_node;
  	tree dfloat64_type_node;
! 	tree dfloat128_type_node;
! 	tree dfloat64x_type_node; 
  
  	tree intQI_type_node;
  	tree intHI_type_node;
*************** int flag_cond_mismatch;
*** 216,233 ****
  
  int flag_isoc94;
  
! /* Nonzero means use the ISO C99 (or C11) dialect of C.  */
  
  int flag_isoc99;
  
! /* Nonzero means use the ISO C11 dialect of C.  */
  
  int flag_isoc11;
  
! /* Nonzero means use the ISO C23 dialect of C.  */
  
  int flag_isoc23;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
  int flag_hosted = 1;
--- 220,241 ----
  
  int flag_isoc94;
  
! /* Nonzero means use the ISO C99 (or later) dialect of C.  */
  
  int flag_isoc99;
  
! /* Nonzero means use the ISO C11 (or later) dialect of C.  */
  
  int flag_isoc11;
  
! /* Nonzero means use the ISO C23 (or later) dialect of C.  */
  
  int flag_isoc23;
  
+ /* Nonzero means use the ISO C2Y (or later) dialect of C.  */
+ 
+ int flag_isoc2y;
+ 
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
  int flag_hosted = 1;
*************** const struct c_common_resword c_common_r
*** 401,406 ****
--- 409,415 ----
    { "_Decimal32",       RID_DFLOAT32,  D_CONLY },
    { "_Decimal64",       RID_DFLOAT64,  D_CONLY },
    { "_Decimal128",      RID_DFLOAT128, D_CONLY },
+   { "_Decimal64x",      RID_DFLOAT64X, D_CONLY },
    { "_Fract",           RID_FRACT,     D_CONLY | D_EXT },
    { "_Accum",           RID_ACCUM,     D_CONLY | D_EXT },
    { "_Sat",             RID_SAT,       D_CONLY | D_EXT },
*************** const struct c_common_resword c_common_r
*** 425,432 ****
--- 434,444 ----
    { "__builtin_choose_expr", RID_CHOOSE_EXPR, D_CONLY },
    { "__builtin_complex", RID_BUILTIN_COMPLEX, D_CONLY },
    { "__builtin_convertvector", RID_BUILTIN_CONVERTVECTOR, 0 },
+   { "__builtin_counted_by_ref", RID_BUILTIN_COUNTED_BY_REF, D_CONLY },
    { "__builtin_has_attribute", RID_BUILTIN_HAS_ATTRIBUTE, 0 },
    { "__builtin_launder", RID_BUILTIN_LAUNDER, D_CXXONLY },
+   { "__builtin_operator_new", RID_BUILTIN_OPERATOR_NEW, D_CXXONLY },
+   { "__builtin_operator_delete", RID_BUILTIN_OPERATOR_DELETE, D_CXXONLY },
    { "__builtin_shuffle", RID_BUILTIN_SHUFFLE, 0 },
    { "__builtin_shufflevector", RID_BUILTIN_SHUFFLEVECTOR, 0 },
    { "__builtin_stdc_bit_ceil", RID_BUILTIN_STDC, D_CONLY },
*************** const struct c_common_resword c_common_r
*** 441,451 ****
--- 453,466 ----
    { "__builtin_stdc_has_single_bit", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_stdc_leading_ones", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_stdc_leading_zeros", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_rotate_left", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_rotate_right", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_stdc_trailing_ones", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_stdc_trailing_zeros", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_tgmath", RID_BUILTIN_TGMATH, D_CONLY },
    { "__builtin_offsetof", RID_OFFSETOF, 0 },
    { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, D_CONLY },
+   { "__builtin_c23_va_start", RID_C23_VA_START,	D_C23 },
    { "__builtin_va_arg",	RID_VA_ARG,	0 },
    { "__complex",	RID_COMPLEX,	0 },
    { "__complex__",	RID_COMPLEX,	0 },
*************** binary_op_error (rich_location *richloc,
*** 2957,2965 ****
      default:
        gcc_unreachable ();
      }
    error_at (richloc,
! 	    "invalid operands to binary %s (have %qT and %qT)",
! 	    opname, type0, type1);
  }
  
  /* Given an expression as a tree, return its original type.  Do this
--- 2972,2982 ----
      default:
        gcc_unreachable ();
      }
+   pp_markup::element_quoted_type element_0 (type0, highlight_colors::lhs);
+   pp_markup::element_quoted_type element_1 (type1, highlight_colors::rhs);
    error_at (richloc,
! 	    "invalid operands to binary %s (have %e and %e)",
! 	    opname, &element_0, &element_1);
  }
  
  /* Given an expression as a tree, return its original type.  Do this
*************** shorten_compare (location_t loc, tree *o
*** 3299,3312 ****
  	     the comparison isn't an issue, so suppress the
  	     warning.  */
  	  tree folded_op0 = fold_for_warn (op0);
! 	  bool warn = 
  	    warn_type_limits && !in_system_header_at (loc)
  	    && !(TREE_CODE (folded_op0) == INTEGER_CST
  		 && !TREE_OVERFLOW (convert (c_common_signed_type (type),
  					     folded_op0)))
  	    /* Do not warn for enumeration types.  */
  	    && (TREE_CODE (expr_original_type (folded_op0)) != ENUMERAL_TYPE);
! 	  
  	  switch (code)
  	    {
  	    case GE_EXPR:
--- 3316,3329 ----
  	     the comparison isn't an issue, so suppress the
  	     warning.  */
  	  tree folded_op0 = fold_for_warn (op0);
! 	  bool warn =
  	    warn_type_limits && !in_system_header_at (loc)
  	    && !(TREE_CODE (folded_op0) == INTEGER_CST
  		 && !TREE_OVERFLOW (convert (c_common_signed_type (type),
  					     folded_op0)))
  	    /* Do not warn for enumeration types.  */
  	    && (TREE_CODE (expr_original_type (folded_op0)) != ENUMERAL_TYPE);
! 
  	  switch (code)
  	    {
  	    case GE_EXPR:
*************** c_sizeof_or_alignof_type (location_t loc
*** 3968,3974 ****
        value = size_one_node;
      }
    else if (!COMPLETE_TYPE_P (type)
! 	   && (!c_dialect_cxx () || is_sizeof || type_code != ARRAY_TYPE))
      {
        if (complain)
  	error_at (loc, "invalid application of %qs to incomplete type %qT",
--- 3985,3993 ----
        value = size_one_node;
      }
    else if (!COMPLETE_TYPE_P (type)
! 	   && ((!c_dialect_cxx () && !flag_isoc2y)
! 	       || is_sizeof
! 	       || type_code != ARRAY_TYPE))
      {
        if (complain)
  	error_at (loc, "invalid application of %qs to incomplete type %qT",
*************** c_common_nodes_and_builtins (void)
*** 4465,4470 ****
--- 4484,4490 ----
        record_builtin_type (RID_DFLOAT32, NULL, dfloat32_type_node);
        record_builtin_type (RID_DFLOAT64, NULL, dfloat64_type_node);
        record_builtin_type (RID_DFLOAT128, NULL, dfloat128_type_node);
+       record_builtin_type (RID_DFLOAT64X, NULL, dfloat64x_type_node);
      }
  
    if (targetm.fixed_point_supported_p ())
*************** c_add_case_label (location_t loc, splay_
*** 5173,5185 ****
  
    /* Case ranges are a GNU extension.  */
    if (high_value)
!     pedwarn (loc, OPT_Wpedantic,
! 	     "range expressions in switch statements are non-standard");
  
    type = TREE_TYPE (cond);
    if (low_value)
      {
        low_value = check_case_value (loc, low_value);
        low_value = convert_and_check (loc, type, low_value);
        low_value = fold (low_value);
        if (low_value == error_mark_node)
--- 5193,5233 ----
  
    /* Case ranges are a GNU extension.  */
    if (high_value)
!     {
!       if (c_dialect_cxx ())
! 	pedwarn (loc, OPT_Wpedantic,
! 		 "range expressions in switch statements are non-standard");
!       else if (warn_c23_c2y_compat > 0)
! 	{
! 	  if (pedantic && !flag_isoc2y)
! 	    pedwarn (loc, OPT_Wc23_c2y_compat,
! 		     "ISO C does not support range expressions in switch "
! 		     "statements before C2Y");
! 	  else
! 	    warning_at (loc, OPT_Wc23_c2y_compat,
! 			"ISO C does not support range expressions in switch "
! 			"statements before C2Y");
! 	}
!       else if (warn_c23_c2y_compat && pedantic && !flag_isoc2y)
! 	pedwarn (loc, OPT_Wpedantic,
! 		 "ISO C does not support range expressions in switch "
! 		 "statements before C2Y");
!     }
  
    type = TREE_TYPE (cond);
    if (low_value)
      {
        low_value = check_case_value (loc, low_value);
+       tree tem = NULL_TREE;
+       if (high_value
+ 	  && !c_dialect_cxx ()
+ 	  && low_value != error_mark_node
+ 	  && !int_fits_type_p (low_value, type)
+ 	  && pedwarn (loc, OPT_Wpedantic,
+ 		      "conversion of %qE to %qT in range expression changes "
+ 		      "value to %qE", low_value, type,
+ 		      (tem = fold_convert (type, low_value))))
+ 	low_value = tem;
        low_value = convert_and_check (loc, type, low_value);
        low_value = fold (low_value);
        if (low_value == error_mark_node)
*************** c_add_case_label (location_t loc, splay_
*** 5188,5193 ****
--- 5236,5250 ----
    if (high_value)
      {
        high_value = check_case_value (loc, high_value);
+       tree tem = NULL_TREE;
+       if (!c_dialect_cxx ()
+ 	  && high_value != error_mark_node
+ 	  && !int_fits_type_p (high_value, type)
+ 	  && pedwarn (loc, OPT_Wpedantic,
+ 		      "conversion of %qE to %qT in range expression changes "
+ 		      "value to %qE", high_value, type,
+ 		      (tem = fold_convert (type, high_value))))
+ 	high_value = tem;
        high_value = convert_and_check (loc, type, high_value);
        high_value = fold (high_value);
        if (high_value == error_mark_node)
*************** c_add_case_label (location_t loc, splay_
*** 5202,5208 ****
        if (tree_int_cst_equal (low_value, high_value))
  	high_value = NULL_TREE;
        else if (!tree_int_cst_lt (low_value, high_value))
! 	warning_at (loc, 0, "empty range specified");
      }
  
    /* Look up the LOW_VALUE in the table of case labels we already
--- 5259,5268 ----
        if (tree_int_cst_equal (low_value, high_value))
  	high_value = NULL_TREE;
        else if (!tree_int_cst_lt (low_value, high_value))
! 	{
! 	  warning_at (loc, 0, "empty range specified");
! 	  goto error_out;
! 	}
      }
  
    /* Look up the LOW_VALUE in the table of case labels we already
*************** struct nonnull_arg_ctx
*** 5663,5668 ****
--- 5723,5730 ----
    /* The function whose arguments are being checked and its type (used
       for calls through function pointers).  */
    const_tree fndecl, fntype;
+   /* For nonnull_if_nonzero, index of the other argument.  */
+   unsigned HOST_WIDE_INT other;
    /* True if a warning has been issued.  */
    bool warned_p;
  };
*************** check_function_nonnull (nonnull_arg_ctx
*** 5701,5723 ****
      }
  
    tree attrs = lookup_attribute ("nonnull", TYPE_ATTRIBUTES (ctx.fntype));
-   if (attrs == NULL_TREE)
-     return ctx.warned_p;
  
    tree a = attrs;
    /* See if any of the nonnull attributes has no arguments.  If so,
       then every pointer argument is checked (in which case the check
       for pointer type is done in check_nonnull_arg).  */
!   if (TREE_VALUE (a) != NULL_TREE)
!     do
!       a = lookup_attribute ("nonnull", TREE_CHAIN (a));
!     while (a != NULL_TREE && TREE_VALUE (a) != NULL_TREE);
  
    if (a != NULL_TREE)
      for (int i = firstarg; i < nargs; i++)
        check_function_arguments_recurse (check_nonnull_arg, &ctx, argarray[i],
  					i + 1, OPT_Wnonnull);
!   else
      {
        /* Walk the argument list.  If we encounter an argument number we
  	 should check for non-null, do it.  */
--- 5763,5781 ----
      }
  
    tree attrs = lookup_attribute ("nonnull", TYPE_ATTRIBUTES (ctx.fntype));
  
    tree a = attrs;
    /* See if any of the nonnull attributes has no arguments.  If so,
       then every pointer argument is checked (in which case the check
       for pointer type is done in check_nonnull_arg).  */
!   while (a != NULL_TREE && TREE_VALUE (a) != NULL_TREE)
!     a = lookup_attribute ("nonnull", TREE_CHAIN (a));
  
    if (a != NULL_TREE)
      for (int i = firstarg; i < nargs; i++)
        check_function_arguments_recurse (check_nonnull_arg, &ctx, argarray[i],
  					i + 1, OPT_Wnonnull);
!   else if (attrs)
      {
        /* Walk the argument list.  If we encounter an argument number we
  	 should check for non-null, do it.  */
*************** check_function_nonnull (nonnull_arg_ctx
*** 5736,5741 ****
--- 5794,5821 ----
  					      OPT_Wnonnull);
  	}
      }
+   if (a == NULL_TREE)
+     for (attrs = TYPE_ATTRIBUTES (ctx.fntype);
+ 	 (attrs = lookup_attribute ("nonnull_if_nonzero", attrs));
+ 	 attrs = TREE_CHAIN (attrs))
+       {
+ 	tree args = TREE_VALUE (attrs);
+ 	unsigned int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
+ 	unsigned int idx2
+ 	  = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (args))) - 1;
+ 	if (idx < (unsigned) nargs - firstarg
+ 	    && idx2 < (unsigned) nargs - firstarg
+ 	    && INTEGRAL_TYPE_P (TREE_TYPE (argarray[firstarg + idx2]))
+ 	    && integer_nonzerop (argarray[firstarg + idx2]))
+ 	  {
+ 	    ctx.other = firstarg + idx2 + 1;
+ 	    check_function_arguments_recurse (check_nonnull_arg, &ctx,
+ 					      argarray[firstarg + idx],
+ 					      firstarg + idx + 1,
+ 					      OPT_Wnonnull);
+ 	    ctx.other = 0;
+ 	  }
+       }
    return ctx.warned_p;
  }
  
*************** check_nonnull_arg (void *ctx, tree param
*** 5917,5929 ****
      }
    else
      {
!       warned = warning_at (loc, OPT_Wnonnull,
! 			   "argument %u null where non-null expected",
! 			   (unsigned) param_num);
        if (warned && pctx->fndecl)
  	inform (DECL_SOURCE_LOCATION (pctx->fndecl),
  		"in a call to function %qD declared %qs",
! 		pctx->fndecl, "nonnull");
      }
  
    if (warned)
--- 5997,6019 ----
      }
    else
      {
!       if (pctx->other)
! 	warned = warning_at (loc, OPT_Wnonnull,
! 			     "argument %u null where non-null expected "
! 			     "because argument %u is nonzero",
! 			     (unsigned) param_num,
! 			     TREE_CODE (pctx->fntype) == METHOD_TYPE
! 			     ? (unsigned) pctx->other - 1
! 			     : (unsigned) pctx->other);
!       else
! 	warned = warning_at (loc, OPT_Wnonnull,
! 			     "argument %u null where non-null expected",
! 			     (unsigned) param_num);
        if (warned && pctx->fndecl)
  	inform (DECL_SOURCE_LOCATION (pctx->fndecl),
  		"in a call to function %qD declared %qs",
! 		pctx->fndecl,
! 		pctx->other ? "nonnull_if_nonzero" : "nonnull");
      }
  
    if (warned)
*************** parse_optimize_options (tree args, bool
*** 6016,6023 ****
  		{
  		  ret = false;
  		  if (attr_p)
! 		    warning (OPT_Wattributes,
! 			     "bad option %qs to attribute %<optimize%>", p);
  		  else
  		    warning (OPT_Wpragmas,
  			     "bad option %qs to pragma %<optimize%>", p);
--- 6106,6116 ----
  		{
  		  ret = false;
  		  if (attr_p)
! 		    {
! 		      auto_urlify_attributes sentinel;
! 		      warning (OPT_Wattributes,
! 			       "bad option %qs to attribute %<optimize%>", p);
! 		    }
  		  else
  		    warning (OPT_Wpragmas,
  			     "bad option %qs to pragma %<optimize%>", p);
*************** parse_optimize_options (tree args, bool
*** 6066,6074 ****
  	{
  	  ret = false;
  	  if (attr_p)
! 	    warning (OPT_Wattributes,
! 		     "bad option %qs to attribute %<optimize%>",
! 		     decoded_options[i].orig_option_with_args_text);
  	  else
  	    warning (OPT_Wpragmas,
  		     "bad option %qs to pragma %<optimize%>",
--- 6159,6170 ----
  	{
  	  ret = false;
  	  if (attr_p)
! 	    {
! 	      auto_urlify_attributes sentinel;
! 	      warning (OPT_Wattributes,
! 		       "bad option %qs to attribute %<optimize%>",
! 		       decoded_options[i].orig_option_with_args_text);
! 	    }
  	  else
  	    warning (OPT_Wpragmas,
  		     "bad option %qs to pragma %<optimize%>",
*************** attribute_fallthrough_p (tree attr)
*** 6116,6121 ****
--- 6212,6218 ----
    tree t = lookup_attribute ("", "fallthrough", attr);
    if (t == NULL_TREE)
      return false;
+   auto_urlify_attributes sentinel;
    /* It is no longer true that "this attribute shall appear at most once in
       each attribute-list", but we still give a warning.  */
    if (lookup_attribute ("", "fallthrough", TREE_CHAIN (t)))
*************** attribute_fallthrough_p (tree attr)
*** 6152,6171 ****
  
     The arguments in ARGARRAY may not have been folded yet (e.g. for C++,
     to preserve location wrappers); checks that require folded arguments
!    should call fold_for_warn on them.  */
  
  bool
  check_function_arguments (location_t loc, const_tree fndecl, const_tree fntype,
! 			  int nargs, tree *argarray, vec<location_t> *arglocs)
  {
    bool warned_p = false;
  
    /* Check for null being passed in a pointer argument that must be
       non-null.  In C++, this includes the this pointer.  We also need
       to do this if format checking is enabled.  */
    if (warn_nonnull)
      {
!       nonnull_arg_ctx ctx = { loc, fndecl, fntype, false };
        warned_p = check_function_nonnull (ctx, nargs, argarray);
      }
  
--- 6249,6275 ----
  
     The arguments in ARGARRAY may not have been folded yet (e.g. for C++,
     to preserve location wrappers); checks that require folded arguments
!    should call fold_for_warn on them.
! 
!    Use the frontend-supplied COMP_TYPES when determining if
!    one type is a subclass of another.  */
  
  bool
  check_function_arguments (location_t loc, const_tree fndecl, const_tree fntype,
! 			  int nargs, tree *argarray, vec<location_t> *arglocs,
! 			  bool (*comp_types) (tree, tree))
  {
    bool warned_p = false;
  
+   if (c_inhibit_evaluation_warnings)
+     return warned_p;
+ 
    /* Check for null being passed in a pointer argument that must be
       non-null.  In C++, this includes the this pointer.  We also need
       to do this if format checking is enabled.  */
    if (warn_nonnull)
      {
!       nonnull_arg_ctx ctx = { loc, fndecl, fntype, 0, false };
        warned_p = check_function_nonnull (ctx, nargs, argarray);
      }
  
*************** check_function_arguments (location_t loc
*** 6173,6179 ****
  
    if (warn_format || warn_suggest_attribute_format)
      check_function_format (fndecl ? fndecl : fntype, TYPE_ATTRIBUTES (fntype), nargs,
! 			   argarray, arglocs);
  
    if (warn_format)
      check_function_sentinel (fntype, nargs, argarray);
--- 6277,6283 ----
  
    if (warn_format || warn_suggest_attribute_format)
      check_function_format (fndecl ? fndecl : fntype, TYPE_ATTRIBUTES (fntype), nargs,
! 			   argarray, arglocs, comp_types);
  
    if (warn_format)
      check_function_sentinel (fntype, nargs, argarray);
*************** check_function_arguments_recurse (void (
*** 6300,6315 ****
  
  static bool
  builtin_function_validate_nargs (location_t loc, tree fndecl, int nargs,
! 				 int required)
  {
    if (nargs < required)
      {
!       error_at (loc, "too few arguments to function %qE", fndecl);
        return false;
      }
    else if (nargs > required)
      {
!       error_at (loc, "too many arguments to function %qE", fndecl);
        return false;
      }
    return true;
--- 6404,6421 ----
  
  static bool
  builtin_function_validate_nargs (location_t loc, tree fndecl, int nargs,
! 				 int required, bool complain)
  {
    if (nargs < required)
      {
!       if (complain)
! 	error_at (loc, "too few arguments to function %qE", fndecl);
        return false;
      }
    else if (nargs > required)
      {
!       if (complain)
! 	error_at (loc, "too many arguments to function %qE", fndecl);
        return false;
      }
    return true;
*************** builtin_function_validate_nargs (locatio
*** 6330,6345 ****
  
  bool
  check_builtin_function_arguments (location_t loc, vec<location_t> arg_loc,
! 				  tree fndecl, tree orig_fndecl,
! 				  int nargs, tree *args)
  {
    if (!fndecl_built_in_p (fndecl))
      return true;
  
    if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD)
      return (!targetm.check_builtin_call
! 	    || targetm.check_builtin_call (loc, arg_loc, fndecl,
! 					   orig_fndecl, nargs, args));
  
    if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_FRONTEND)
      return true;
--- 6436,6451 ----
  
  bool
  check_builtin_function_arguments (location_t loc, vec<location_t> arg_loc,
! 				  tree fndecl, tree orig_fndecl, int nargs,
! 				  tree *args, bool complain)
  {
    if (!fndecl_built_in_p (fndecl))
      return true;
  
    if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD)
      return (!targetm.check_builtin_call
! 	    || targetm.check_builtin_call (loc, arg_loc, fndecl, orig_fndecl,
! 					   nargs, args, complain));
  
    if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_FRONTEND)
      return true;
*************** check_builtin_function_arguments (locati
*** 6350,6358 ****
      case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX:
        if (!tree_fits_uhwi_p (args[2]))
  	{
! 	  error_at (ARG_LOCATION (2),
! 		    "third argument to function %qE must be a constant integer",
! 		    fndecl);
  	  return false;
  	}
        /* fall through */
--- 6456,6466 ----
      case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX:
        if (!tree_fits_uhwi_p (args[2]))
  	{
! 	  if (complain)
! 	    error_at (
! 	      ARG_LOCATION (2),
! 	      "third argument to function %qE must be a constant integer",
! 	      fndecl);
  	  return false;
  	}
        /* fall through */
*************** check_builtin_function_arguments (locati
*** 6375,6391 ****
  	/* Reject invalid alignments.  */
  	if (align < BITS_PER_UNIT || maxalign < align)
  	  {
! 	    error_at (ARG_LOCATION (1),
! 		      "second argument to function %qE must be a constant "
! 		      "integer power of 2 between %qi and %qu bits",
! 		      fndecl, BITS_PER_UNIT, maxalign);
  	    return false;
  	  }
  	return true;
        }
  
      case BUILT_IN_CONSTANT_P:
!       return builtin_function_validate_nargs (loc, fndecl, nargs, 1);
  
      case BUILT_IN_ISFINITE:
      case BUILT_IN_ISINF:
--- 6483,6500 ----
  	/* Reject invalid alignments.  */
  	if (align < BITS_PER_UNIT || maxalign < align)
  	  {
! 	    if (complain)
! 	      error_at (ARG_LOCATION (1),
! 			"second argument to function %qE must be a constant "
! 			"integer power of 2 between %qi and %qu bits",
! 			fndecl, BITS_PER_UNIT, maxalign);
  	    return false;
  	  }
  	return true;
        }
  
      case BUILT_IN_CONSTANT_P:
!       return builtin_function_validate_nargs (loc, fndecl, nargs, 1, complain);
  
      case BUILT_IN_ISFINITE:
      case BUILT_IN_ISINF:
*************** check_builtin_function_arguments (locati
*** 6394,6405 ****
      case BUILT_IN_ISNORMAL:
      case BUILT_IN_ISSIGNALING:
      case BUILT_IN_SIGNBIT:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 1))
  	{
  	  if (TREE_CODE (TREE_TYPE (args[0])) != REAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (0), "non-floating-point argument in "
! 			"call to function %qE", fndecl);
  	      return false;
  	    }
  	  return true;
--- 6503,6517 ----
      case BUILT_IN_ISNORMAL:
      case BUILT_IN_ISSIGNALING:
      case BUILT_IN_SIGNBIT:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 1, complain))
  	{
  	  if (TREE_CODE (TREE_TYPE (args[0])) != REAL_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "non-floating-point argument in "
! 			  "call to function %qE",
! 			  fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6413,6419 ****
      case BUILT_IN_ISLESSGREATER:
      case BUILT_IN_ISUNORDERED:
      case BUILT_IN_ISEQSIG:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 2))
  	{
  	  enum tree_code code0, code1;
  	  code0 = TREE_CODE (TREE_TYPE (args[0]));
--- 6525,6531 ----
      case BUILT_IN_ISLESSGREATER:
      case BUILT_IN_ISUNORDERED:
      case BUILT_IN_ISEQSIG:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 2, complain))
  	{
  	  enum tree_code code0, code1;
  	  code0 = TREE_CODE (TREE_TYPE (args[0]));
*************** check_builtin_function_arguments (locati
*** 6424,6431 ****
  		|| ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
  		    && code1 == REAL_TYPE)))
  	    {
! 	      error_at (loc, "non-floating-point arguments in call to "
! 			"function %qE", fndecl);
  	      return false;
  	    }
  	  return true;
--- 6536,6546 ----
  		|| ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
  		    && code1 == REAL_TYPE)))
  	    {
! 	      if (complain)
! 		error_at (loc,
! 			  "non-floating-point arguments in call to "
! 			  "function %qE",
! 			  fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6433,6452 ****
        return false;
  
      case BUILT_IN_FPCLASSIFY:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 6))
  	{
  	  for (unsigned int i = 0; i < 5; i++)
  	    if (TREE_CODE (args[i]) != INTEGER_CST)
  	      {
! 		error_at (ARG_LOCATION (i), "non-const integer argument %u in "
! 			  "call to function %qE", i + 1, fndecl);
  		return false;
  	      }
  
  	  if (TREE_CODE (TREE_TYPE (args[5])) != REAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (5), "non-floating-point argument in "
! 			"call to function %qE", fndecl);
  	      return false;
  	    }
  	  return true;
--- 6548,6573 ----
        return false;
  
      case BUILT_IN_FPCLASSIFY:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 6, complain))
  	{
  	  for (unsigned int i = 0; i < 5; i++)
  	    if (TREE_CODE (args[i]) != INTEGER_CST)
  	      {
! 		if (complain)
! 		  error_at (ARG_LOCATION (i),
! 			    "non-const integer argument %u in "
! 			    "call to function %qE",
! 			    i + 1, fndecl);
  		return false;
  	      }
  
  	  if (TREE_CODE (TREE_TYPE (args[5])) != REAL_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (5),
! 			  "non-floating-point argument in "
! 			  "call to function %qE",
! 			  fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6454,6467 ****
        return false;
  
      case BUILT_IN_ASSUME_ALIGNED:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 2 + (nargs > 2)))
  	{
  	  if (nargs >= 3
  	      && TREE_CODE (TREE_TYPE (args[2])) != INTEGER_TYPE
  	      && TREE_CODE (TREE_TYPE (args[2])) != BITINT_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "non-integer argument 3 in call to "
! 			"function %qE", fndecl);
  	      return false;
  	    }
  	  return true;
--- 6575,6592 ----
        return false;
  
      case BUILT_IN_ASSUME_ALIGNED:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 2 + (nargs > 2),
! 					   complain))
  	{
  	  if (nargs >= 3
  	      && TREE_CODE (TREE_TYPE (args[2])) != INTEGER_TYPE
  	      && TREE_CODE (TREE_TYPE (args[2])) != BITINT_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "non-integer argument 3 in call to "
! 			  "function %qE",
! 			  fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6471,6517 ****
      case BUILT_IN_ADD_OVERFLOW:
      case BUILT_IN_SUB_OVERFLOW:
      case BUILT_IN_MUL_OVERFLOW:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 3))
  	{
  	  unsigned i;
  	  for (i = 0; i < 2; i++)
  	    if (!INTEGRAL_TYPE_P (TREE_TYPE (args[i])))
  	      {
! 		error_at (ARG_LOCATION (i), "argument %u in call to function "
! 			  "%qE does not have integral type", i + 1, fndecl);
  		return false;
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) != POINTER_TYPE
  	      || !INTEGRAL_TYPE_P (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      error_at (ARG_LOCATION (2), "argument 3 in call to function %qE "
! 			"does not have pointer to integral type", fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (TREE_TYPE (args[2]))) == ENUMERAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument 3 in call to function %qE "
! 			"has pointer to enumerated type", fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (TREE_TYPE (args[2]))) == BOOLEAN_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument 3 in call to function %qE "
! 			"has pointer to boolean type", fndecl);
  	      return false;
  	    }
  	  else if (TYPE_READONLY (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function %qE "
! 			"has pointer to %qs type (%qT)", 3, fndecl, "const",
! 			TREE_TYPE (args[2]));
  	      return false;
  	    }
  	  else if (TYPE_ATOMIC (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function %qE "
! 			"has pointer to %qs type (%qT)", 3, fndecl,
! 			"_Atomic", TREE_TYPE (args[2]));
  	      return false;
  	    }
  	  return true;
--- 6596,6658 ----
      case BUILT_IN_ADD_OVERFLOW:
      case BUILT_IN_SUB_OVERFLOW:
      case BUILT_IN_MUL_OVERFLOW:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 3, complain))
  	{
  	  unsigned i;
  	  for (i = 0; i < 2; i++)
  	    if (!INTEGRAL_TYPE_P (TREE_TYPE (args[i])))
  	      {
! 		if (complain)
! 		  error_at (ARG_LOCATION (i),
! 			    "argument %u in call to function "
! 			    "%qE does not have integral type",
! 			    i + 1, fndecl);
  		return false;
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) != POINTER_TYPE
  	      || !INTEGRAL_TYPE_P (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument 3 in call to function %qE "
! 			  "does not have pointer to integral type",
! 			  fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (TREE_TYPE (args[2]))) == ENUMERAL_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument 3 in call to function %qE "
! 			  "has pointer to enumerated type",
! 			  fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (TREE_TYPE (args[2]))) == BOOLEAN_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument 3 in call to function %qE "
! 			  "has pointer to boolean type",
! 			  fndecl);
  	      return false;
  	    }
  	  else if (TYPE_READONLY (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument %u in call to function %qE "
! 			  "has pointer to %qs type (%qT)",
! 			  3, fndecl, "const", TREE_TYPE (args[2]));
  	      return false;
  	    }
  	  else if (TYPE_ATOMIC (TREE_TYPE (TREE_TYPE (args[2]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument %u in call to function %qE "
! 			  "has pointer to %qs type (%qT)",
! 			  3, fndecl, "_Atomic", TREE_TYPE (args[2]));
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6521,6546 ****
      case BUILT_IN_ADD_OVERFLOW_P:
      case BUILT_IN_SUB_OVERFLOW_P:
      case BUILT_IN_MUL_OVERFLOW_P:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 3))
  	{
  	  unsigned i;
  	  for (i = 0; i < 3; i++)
  	    if (!INTEGRAL_TYPE_P (TREE_TYPE (args[i])))
  	      {
! 		error_at (ARG_LOCATION (i), "argument %u in call to function "
! 			  "%qE does not have integral type", i + 1, fndecl);
  		return false;
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) == ENUMERAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function "
! 			"%qE has enumerated type", 3, fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (args[2])) == BOOLEAN_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function "
! 			"%qE has boolean type", 3, fndecl);
  	      return false;
  	    }
  	  return true;
--- 6662,6696 ----
      case BUILT_IN_ADD_OVERFLOW_P:
      case BUILT_IN_SUB_OVERFLOW_P:
      case BUILT_IN_MUL_OVERFLOW_P:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 3, complain))
  	{
  	  unsigned i;
  	  for (i = 0; i < 3; i++)
  	    if (!INTEGRAL_TYPE_P (TREE_TYPE (args[i])))
  	      {
! 		if (complain)
! 		  error_at (ARG_LOCATION (i),
! 			    "argument %u in call to function "
! 			    "%qE does not have integral type",
! 			    i + 1, fndecl);
  		return false;
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) == ENUMERAL_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument %u in call to function "
! 			  "%qE has enumerated type",
! 			  3, fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (args[2])) == BOOLEAN_TYPE)
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (2),
! 			  "argument %u in call to function "
! 			  "%qE has boolean type",
! 			  3, fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6548,6579 ****
        return false;
  
      case BUILT_IN_CLEAR_PADDING:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 1))
  	{
  	  if (!POINTER_TYPE_P (TREE_TYPE (args[0])))
  	    {
! 	      error_at (ARG_LOCATION (0), "argument %u in call to function "
! 			"%qE does not have pointer type", 1, fndecl);
  	      return false;
  	    }
  	  else if (!COMPLETE_TYPE_P (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      error_at (ARG_LOCATION (0), "argument %u in call to function "
! 			"%qE points to incomplete type", 1, fndecl);
  	      return false;
  	    }
  	  else if (TYPE_READONLY (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      error_at (ARG_LOCATION (0), "argument %u in call to function %qE "
! 			"has pointer to %qs type (%qT)", 1, fndecl, "const",
! 			TREE_TYPE (args[0]));
  	      return false;
  	    }
  	  else if (TYPE_ATOMIC (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      error_at (ARG_LOCATION (0), "argument %u in call to function %qE "
! 			"has pointer to %qs type (%qT)", 1, fndecl,
! 			"_Atomic", TREE_TYPE (args[0]));
  	      return false;
  	    }
  	  return true;
--- 6698,6739 ----
        return false;
  
      case BUILT_IN_CLEAR_PADDING:
!       if (builtin_function_validate_nargs (loc, fndecl, nargs, 1, complain))
  	{
  	  if (!POINTER_TYPE_P (TREE_TYPE (args[0])))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "argument %u in call to function "
! 			  "%qE does not have pointer type",
! 			  1, fndecl);
  	      return false;
  	    }
  	  else if (!COMPLETE_TYPE_P (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "argument %u in call to function "
! 			  "%qE points to incomplete type",
! 			  1, fndecl);
  	      return false;
  	    }
  	  else if (TYPE_READONLY (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "argument %u in call to function %qE "
! 			  "has pointer to %qs type (%qT)",
! 			  1, fndecl, "const", TREE_TYPE (args[0]));
  	      return false;
  	    }
  	  else if (TYPE_ATOMIC (TREE_TYPE (TREE_TYPE (args[0]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "argument %u in call to function %qE "
! 			  "has pointer to %qs type (%qT)",
! 			  1, fndecl, "_Atomic", TREE_TYPE (args[0]));
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6592,6599 ****
  	{
  	  if (!INTEGRAL_TYPE_P (TREE_TYPE (args[1])))
  	    {
! 	      error_at (ARG_LOCATION (1), "argument %u in call to function "
! 			"%qE does not have integral type", 2, fndecl);
  	      return false;
  	    }
  	  if ((TYPE_PRECISION (TREE_TYPE (args[1]))
--- 6752,6762 ----
  	{
  	  if (!INTEGRAL_TYPE_P (TREE_TYPE (args[1])))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (1),
! 			  "argument %u in call to function "
! 			  "%qE does not have integral type",
! 			  2, fndecl);
  	      return false;
  	    }
  	  if ((TYPE_PRECISION (TREE_TYPE (args[1]))
*************** check_builtin_function_arguments (locati
*** 6602,6631 ****
  		  == TYPE_PRECISION (integer_type_node)
  		  && TYPE_UNSIGNED (TREE_TYPE (args[1]))))
  	    {
! 	      error_at (ARG_LOCATION (1), "argument %u in call to function "
! 			"%qE does not have %<int%> type", 2, fndecl);
  	      return false;
  	    }
  	}
!       else if (!builtin_function_validate_nargs (loc, fndecl, nargs, 1))
  	return false;
  
        if (!INTEGRAL_TYPE_P (TREE_TYPE (args[0])))
  	{
! 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
! 		    "%qE does not have integral type", 1, fndecl);
  	  return false;
  	}
        if (TREE_CODE (TREE_TYPE (args[0])) == ENUMERAL_TYPE)
  	{
! 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
! 		    "%qE has enumerated type", 1, fndecl);
  	  return false;
  	}
        if (TREE_CODE (TREE_TYPE (args[0])) == BOOLEAN_TYPE)
  	{
! 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
! 		    "%qE has boolean type", 1, fndecl);
  	  return false;
  	}
        if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_FFSG
--- 6765,6807 ----
  		  == TYPE_PRECISION (integer_type_node)
  		  && TYPE_UNSIGNED (TREE_TYPE (args[1]))))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (1),
! 			  "argument %u in call to function "
! 			  "%qE does not have %<int%> type",
! 			  2, fndecl);
  	      return false;
  	    }
  	}
!       else if (!builtin_function_validate_nargs (loc, fndecl, nargs, 1,
! 						 complain))
  	return false;
  
        if (!INTEGRAL_TYPE_P (TREE_TYPE (args[0])))
  	{
! 	  if (complain)
! 	    error_at (ARG_LOCATION (0),
! 		      "argument %u in call to function "
! 		      "%qE does not have integral type",
! 		      1, fndecl);
  	  return false;
  	}
        if (TREE_CODE (TREE_TYPE (args[0])) == ENUMERAL_TYPE)
  	{
! 	  if (complain)
! 	    error_at (ARG_LOCATION (0),
! 		      "argument %u in call to function "
! 		      "%qE has enumerated type",
! 		      1, fndecl);
  	  return false;
  	}
        if (TREE_CODE (TREE_TYPE (args[0])) == BOOLEAN_TYPE)
  	{
! 	  if (complain)
! 	    error_at (ARG_LOCATION (0),
! 		      "argument %u in call to function "
! 		      "%qE has boolean type",
! 		      1, fndecl);
  	  return false;
  	}
        if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_FFSG
*************** check_builtin_function_arguments (locati
*** 6633,6647 ****
  	{
  	  if (TYPE_UNSIGNED (TREE_TYPE (args[0])))
  	    {
! 	      error_at (ARG_LOCATION (0), "argument 1 in call to function "
! 			"%qE has unsigned type", fndecl);
  	      return false;
  	    }
  	}
        else if (!TYPE_UNSIGNED (TREE_TYPE (args[0])))
  	{
! 	  error_at (ARG_LOCATION (0), "argument 1 in call to function "
! 		    "%qE has signed type", fndecl);
  	  return false;
  	}
        return true;
--- 6809,6829 ----
  	{
  	  if (TYPE_UNSIGNED (TREE_TYPE (args[0])))
  	    {
! 	      if (complain)
! 		error_at (ARG_LOCATION (0),
! 			  "argument 1 in call to function "
! 			  "%qE has unsigned type",
! 			  fndecl);
  	      return false;
  	    }
  	}
        else if (!TYPE_UNSIGNED (TREE_TYPE (args[0])))
  	{
! 	  if (complain)
! 	    error_at (ARG_LOCATION (0),
! 		      "argument 1 in call to function "
! 		      "%qE has signed type",
! 		      fndecl);
  	  return false;
  	}
        return true;
*************** c_parse_error (const char *gmsgid, enum
*** 6753,6758 ****
--- 6935,6942 ----
      message = catenate_messages (gmsgid, " before end of line");
    else if (token_type == CPP_DECLTYPE)
      message = catenate_messages (gmsgid, " before %<decltype%>");
+   else if (token_type == CPP_EMBED)
+     message = catenate_messages (gmsgid, " before %<#embed%>");
    else if (token_type < N_TTYPES)
      {
        message = catenate_messages (gmsgid, " before %qs token");
*************** c_parse_error (const char *gmsgid, enum
*** 6774,6780 ****
  /* Return the gcc option code associated with the reason for a cpp
     message, or 0 if none.  */
  
! static int
  c_option_controlling_cpp_diagnostic (enum cpp_warning_reason reason)
  {
    const struct cpp_reason_option_codes_t *entry;
--- 6958,6964 ----
  /* Return the gcc option code associated with the reason for a cpp
     message, or 0 if none.  */
  
! static diagnostic_option_id
  c_option_controlling_cpp_diagnostic (enum cpp_warning_reason reason)
  {
    const struct cpp_reason_option_codes_t *entry;
*************** c_cpp_diagnostic (cpp_reader *pfile ATTR
*** 6857,6865 ****
      richloc->set_range (0, input_location, SHOW_RANGE_WITH_CARET);
    diagnostic_set_info_translated (&diagnostic, msg, ap,
  				  richloc, dlevel);
!   diagnostic_override_option_index
!     (&diagnostic,
!      c_option_controlling_cpp_diagnostic (reason));
    ret = diagnostic_report_diagnostic (global_dc, &diagnostic);
    if (level == CPP_DL_WARNING_SYSHDR)
      global_dc->m_warn_system_headers = save_warn_system_headers;
--- 7041,7048 ----
      richloc->set_range (0, input_location, SHOW_RANGE_WITH_CARET);
    diagnostic_set_info_translated (&diagnostic, msg, ap,
  				  richloc, dlevel);
!   diagnostic_set_option_id (&diagnostic,
! 			    c_option_controlling_cpp_diagnostic (reason));
    ret = diagnostic_report_diagnostic (global_dc, &diagnostic);
    if (level == CPP_DL_WARNING_SYSHDR)
      global_dc->m_warn_system_headers = save_warn_system_headers;
*************** complete_array_type (tree *ptype, tree i
*** 7028,7034 ****
  	{
  	  int eltsize
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
! 	  maxindex = size_int (TREE_STRING_LENGTH (initial_value)/eltsize - 1);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
--- 7211,7218 ----
  	{
  	  int eltsize
  	    = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
! 	  maxindex = size_int (TREE_STRING_LENGTH (initial_value) / eltsize
! 			       - 1);
  	}
        else if (TREE_CODE (initial_value) == CONSTRUCTOR)
  	{
*************** complete_array_type (tree *ptype, tree i
*** 7043,7065 ****
  	  else
  	    {
  	      tree curindex;
! 	      unsigned HOST_WIDE_INT cnt;
  	      constructor_elt *ce;
  	      bool fold_p = false;
  
  	      if ((*v)[0].index)
  		maxindex = (*v)[0].index, fold_p = true;
  
  	      curindex = maxindex;
  
! 	      for (cnt = 1; vec_safe_iterate (v, cnt, &ce); cnt++)
  		{
  		  bool curfold_p = false;
  		  if (ce->index)
  		    curindex = ce->index, curfold_p = true;
! 		  else
  		    {
! 		      if (fold_p)
  			{
  			  /* Since we treat size types now as ordinary
  			     unsigned types, we need an explicit overflow
--- 7227,7251 ----
  	  else
  	    {
  	      tree curindex;
! 	      unsigned HOST_WIDE_INT cnt = 1;
  	      constructor_elt *ce;
  	      bool fold_p = false;
  
  	      if ((*v)[0].index)
  		maxindex = (*v)[0].index, fold_p = true;
+ 	      if (TREE_CODE ((*v)[0].value) == RAW_DATA_CST)
+ 		cnt = 0;
  
  	      curindex = maxindex;
  
! 	      for (; vec_safe_iterate (v, cnt, &ce); cnt++)
  		{
  		  bool curfold_p = false;
  		  if (ce->index)
  		    curindex = ce->index, curfold_p = true;
! 		  if (!ce->index || TREE_CODE (ce->value) == RAW_DATA_CST)
  		    {
! 		      if (fold_p || curfold_p)
  			{
  			  /* Since we treat size types now as ordinary
  			     unsigned types, we need an explicit overflow
*************** complete_array_type (tree *ptype, tree i
*** 7067,7075 ****
  			  tree orig = curindex;
  		          curindex = fold_convert (sizetype, curindex);
  			  overflow_p |= tree_int_cst_lt (curindex, orig);
  			}
! 		      curindex = size_binop (PLUS_EXPR, curindex,
! 					     size_one_node);
  		    }
  		  if (tree_int_cst_lt (maxindex, curindex))
  		    maxindex = curindex, fold_p = curfold_p;
--- 7253,7269 ----
  			  tree orig = curindex;
  		          curindex = fold_convert (sizetype, curindex);
  			  overflow_p |= tree_int_cst_lt (curindex, orig);
+ 			  curfold_p = false;
  			}
! 		      if (TREE_CODE (ce->value) == RAW_DATA_CST)
! 			curindex
! 			  = size_binop (PLUS_EXPR, curindex,
! 					size_int (RAW_DATA_LENGTH (ce->value)
! 						  - ((ce->index || !cnt)
! 						     ? 1 : 0)));
! 		      else
! 			curindex = size_binop (PLUS_EXPR, curindex,
! 					       size_one_node);
  		    }
  		  if (tree_int_cst_lt (maxindex, curindex))
  		    maxindex = curindex, fold_p = curfold_p;
*************** complete_flexible_array_elts (tree init)
*** 7180,7188 ****
  }
  
  /* Like c_mark_addressable but don't check register qualifier.  */
! void 
  c_common_mark_addressable_vec (tree t)
! {   
    while (handled_component_p (t) || TREE_CODE (t) == C_MAYBE_CONST_EXPR)
      {
        if (TREE_CODE (t) == C_MAYBE_CONST_EXPR)
--- 7374,7382 ----
  }
  
  /* Like c_mark_addressable but don't check register qualifier.  */
! void
  c_common_mark_addressable_vec (tree t)
! {
    while (handled_component_p (t) || TREE_CODE (t) == C_MAYBE_CONST_EXPR)
      {
        if (TREE_CODE (t) == C_MAYBE_CONST_EXPR)
*************** builtin_type_for_size (int size, bool un
*** 7223,7229 ****
     the size is too large; 0 if the argument type is a pointer or the
     size if it is integral.  */
  static enum built_in_function
! speculation_safe_value_resolve_call (tree function, vec<tree, va_gc> *params)
  {
    /* Type of the argument.  */
    tree type;
--- 7417,7424 ----
     the size is too large; 0 if the argument type is a pointer or the
     size if it is integral.  */
  static enum built_in_function
! speculation_safe_value_resolve_call (tree function, vec<tree, va_gc> *params,
! 				     bool complain)
  {
    /* Type of the argument.  */
    tree type;
*************** speculation_safe_value_resolve_call (tre
*** 7231,7237 ****
  
    if (vec_safe_is_empty (params))
      {
!       error ("too few arguments to function %qE", function);
        return BUILT_IN_NONE;
      }
  
--- 7426,7433 ----
  
    if (vec_safe_is_empty (params))
      {
!       if (complain)
! 	error ("too few arguments to function %qE", function);
        return BUILT_IN_NONE;
      }
  
*************** speculation_safe_value_resolve_call (tre
*** 7260,7266 ****
   incompatible:
    /* Issue the diagnostic only if the argument is valid, otherwise
       it would be redundant at best and could be misleading.  */
!   if (type != error_mark_node)
      error ("operand type %qT is incompatible with argument %d of %qE",
  	   type, 1, function);
  
--- 7456,7462 ----
   incompatible:
    /* Issue the diagnostic only if the argument is valid, otherwise
       it would be redundant at best and could be misleading.  */
!   if (type != error_mark_node && complain)
      error ("operand type %qT is incompatible with argument %d of %qE",
  	   type, 1, function);
  
*************** speculation_safe_value_resolve_call (tre
*** 7272,7290 ****
     argument, if present, must be type compatible with the first.  */
  static bool
  speculation_safe_value_resolve_params (location_t loc, tree orig_function,
! 				       vec<tree, va_gc> *params)
  {
    tree val;
  
    if (params->length () == 0)
      {
!       error_at (loc, "too few arguments to function %qE", orig_function);
        return false;
      }
  
    else if (params->length () > 2)
      {
!       error_at (loc, "too many arguments to function %qE", orig_function);
        return false;
      }
  
--- 7468,7488 ----
     argument, if present, must be type compatible with the first.  */
  static bool
  speculation_safe_value_resolve_params (location_t loc, tree orig_function,
! 				       vec<tree, va_gc> *params, bool complain)
  {
    tree val;
  
    if (params->length () == 0)
      {
!       if (complain)
! 	error_at (loc, "too few arguments to function %qE", orig_function);
        return false;
      }
  
    else if (params->length () > 2)
      {
!       if (complain)
! 	error_at (loc, "too many arguments to function %qE", orig_function);
        return false;
      }
  
*************** speculation_safe_value_resolve_params (l
*** 7294,7302 ****
    if (!(TREE_CODE (TREE_TYPE (val)) == POINTER_TYPE
  	|| TREE_CODE (TREE_TYPE (val)) == INTEGER_TYPE))
      {
!       error_at (loc,
! 		"expecting argument of type pointer or of type integer "
! 		"for argument 1");
        return false;
      }
    (*params)[0] = val;
--- 7492,7500 ----
    if (!(TREE_CODE (TREE_TYPE (val)) == POINTER_TYPE
  	|| TREE_CODE (TREE_TYPE (val)) == INTEGER_TYPE))
      {
!       if (complain)
! 	error_at (loc, "expecting argument of type pointer or of type integer "
! 		       "for argument 1");
        return false;
      }
    (*params)[0] = val;
*************** speculation_safe_value_resolve_params (l
*** 7311,7317 ****
        if (!(TREE_TYPE (val) == TREE_TYPE (val2)
  	    || useless_type_conversion_p (TREE_TYPE (val), TREE_TYPE (val2))))
  	{
! 	  error_at (loc, "both arguments must be compatible");
  	  return false;
  	}
        (*params)[1] = val2;
--- 7509,7516 ----
        if (!(TREE_TYPE (val) == TREE_TYPE (val2)
  	    || useless_type_conversion_p (TREE_TYPE (val), TREE_TYPE (val2))))
  	{
! 	  if (complain)
! 	    error_at (loc, "both arguments must be compatible");
  	  return false;
  	}
        (*params)[1] = val2;
*************** speculation_safe_value_resolve_return (t
*** 7347,7353 ****
  
  static int
  sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch,
! 		   bool orig_format)
  {
    /* Type of the argument.  */
    tree argtype;
--- 7546,7552 ----
  
  static int
  sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch,
! 		   bool orig_format, bool complain)
  {
    /* Type of the argument.  */
    tree argtype;
*************** sync_resolve_size (tree function, vec<tr
*** 7357,7363 ****
  
    if (vec_safe_is_empty (params))
      {
!       error ("too few arguments to function %qE", function);
        return 0;
      }
  
--- 7556,7563 ----
  
    if (vec_safe_is_empty (params))
      {
!       if (complain)
! 	error ("too few arguments to function %qE", function);
        return 0;
      }
  
*************** sync_resolve_size (tree function, vec<tr
*** 7383,7393 ****
  
    size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
    if (size == 16
-       && fetch
-       && !orig_format
        && TREE_CODE (type) == BITINT_TYPE
        && !targetm.scalar_mode_supported_p (TImode))
!     return -1;
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
      return size;
--- 7583,7595 ----
  
    size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
    if (size == 16
        && TREE_CODE (type) == BITINT_TYPE
        && !targetm.scalar_mode_supported_p (TImode))
!     {
!       if (fetch && !orig_format)
! 	return -1;
!       goto incompatible;
!     }
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
      return size;
*************** sync_resolve_size (tree function, vec<tr
*** 7398,7404 ****
   incompatible:
    /* Issue the diagnostic only if the argument is valid, otherwise
       it would be redundant at best and could be misleading.  */
!   if (argtype != error_mark_node)
      error ("operand type %qT is incompatible with argument %d of %qE",
  	   argtype, 1, function);
    return 0;
--- 7600,7606 ----
   incompatible:
    /* Issue the diagnostic only if the argument is valid, otherwise
       it would be redundant at best and could be misleading.  */
!   if (argtype != error_mark_node && complain)
      error ("operand type %qT is incompatible with argument %d of %qE",
  	   argtype, 1, function);
    return 0;
*************** sync_resolve_size (tree function, vec<tr
*** 7411,7417 ****
  
  static bool
  sync_resolve_params (location_t loc, tree orig_function, tree function,
! 		     vec<tree, va_gc> *params, bool orig_format)
  {
    function_args_iterator iter;
    tree ptype;
--- 7613,7619 ----
  
  static bool
  sync_resolve_params (location_t loc, tree orig_function, tree function,
! 		     vec<tree, va_gc> *params, bool orig_format, bool complain)
  {
    function_args_iterator iter;
    tree ptype;
*************** sync_resolve_params (location_t loc, tre
*** 7440,7446 ****
        ++parmnum;
        if (params->length () <= parmnum)
  	{
! 	  error_at (loc, "too few arguments to function %qE", orig_function);
  	  return false;
  	}
  
--- 7642,7649 ----
        ++parmnum;
        if (params->length () <= parmnum)
  	{
! 	  if (complain)
! 	    error_at (loc, "too few arguments to function %qE", orig_function);
  	  return false;
  	}
  
*************** sync_resolve_params (location_t loc, tre
*** 7466,7472 ****
    /* __atomic routines are not variadic.  */
    if (!orig_format && params->length () != parmnum + 1)
      {
!       error_at (loc, "too many arguments to function %qE", orig_function);
        return false;
      }
  
--- 7669,7676 ----
    /* __atomic routines are not variadic.  */
    if (!orig_format && params->length () != parmnum + 1)
      {
!       if (complain)
! 	error_at (loc, "too many arguments to function %qE", orig_function);
        return false;
      }
  
*************** sync_resolve_return (tree first_param, t
*** 7503,7509 ****
  
  static int
  get_atomic_generic_size (location_t loc, tree function,
! 			 vec<tree, va_gc> *params)
  {
    unsigned int n_param;
    unsigned int n_model;
--- 7707,7713 ----
  
  static int
  get_atomic_generic_size (location_t loc, tree function,
! 			 vec<tree, va_gc> *params, bool complain)
  {
    unsigned int n_param;
    unsigned int n_model;
*************** get_atomic_generic_size (location_t loc,
*** 7541,7547 ****
  
    if (vec_safe_length (params) != n_param)
      {
!       error_at (loc, "incorrect number of arguments to function %qE", function);
        return 0;
      }
  
--- 7745,7753 ----
  
    if (vec_safe_length (params) != n_param)
      {
!       if (complain)
! 	error_at (loc, "incorrect number of arguments to function %qE",
! 		  function);
        return 0;
      }
  
*************** get_atomic_generic_size (location_t loc,
*** 7555,7578 ****
      }
    if (TREE_CODE (type_0) != POINTER_TYPE || VOID_TYPE_P (TREE_TYPE (type_0)))
      {
!       error_at (loc, "argument 1 of %qE must be a non-void pointer type",
! 		function);
        return 0;
      }
  
    if (!COMPLETE_TYPE_P (TREE_TYPE (type_0)))
      {
!       error_at (loc, "argument 1 of %qE must be a pointer to a complete type",
! 		function);
        return 0;
      }
  
    /* Types must be compile time constant sizes. */
    if (!tree_fits_uhwi_p ((TYPE_SIZE_UNIT (TREE_TYPE (type_0)))))
      {
!       error_at (loc, 
! 		"argument 1 of %qE must be a pointer to a constant size type",
! 		function);
        return 0;
      }
  
--- 7761,7787 ----
      }
    if (TREE_CODE (type_0) != POINTER_TYPE || VOID_TYPE_P (TREE_TYPE (type_0)))
      {
!       if (complain)
! 	error_at (loc, "argument 1 of %qE must be a non-void pointer type",
! 		  function);
        return 0;
      }
  
    if (!COMPLETE_TYPE_P (TREE_TYPE (type_0)))
      {
!       if (complain)
! 	error_at (loc, "argument 1 of %qE must be a pointer to a complete type",
! 		  function);
        return 0;
      }
  
    /* Types must be compile time constant sizes. */
    if (!tree_fits_uhwi_p ((TYPE_SIZE_UNIT (TREE_TYPE (type_0)))))
      {
!       if (complain)
! 	error_at (loc,
! 		  "argument 1 of %qE must be a pointer to a constant size type",
! 		  function);
        return 0;
      }
  
*************** get_atomic_generic_size (location_t loc,
*** 7581,7589 ****
    /* Zero size objects are not allowed.  */
    if (size_0 == 0)
      {
!       error_at (loc, 
! 		"argument 1 of %qE must be a pointer to a nonzero size object",
! 		function);
        return 0;
      }
  
--- 7790,7799 ----
    /* Zero size objects are not allowed.  */
    if (size_0 == 0)
      {
!       if (complain)
! 	error_at (
! 	  loc, "argument 1 of %qE must be a pointer to a nonzero size object",
! 	  function);
        return 0;
      }
  
*************** get_atomic_generic_size (location_t loc,
*** 7603,7632 ****
  	}
        if (!POINTER_TYPE_P (type))
  	{
! 	  error_at (loc, "argument %d of %qE must be a pointer type", x + 1,
! 		    function);
  	  return 0;
  	}
        else if (TYPE_SIZE_UNIT (TREE_TYPE (type))
  	       && TREE_CODE ((TYPE_SIZE_UNIT (TREE_TYPE (type))))
  		  != INTEGER_CST)
  	{
! 	  error_at (loc, "argument %d of %qE must be a pointer to a constant "
! 		    "size type", x + 1, function);
  	  return 0;
  	}
        else if (FUNCTION_POINTER_TYPE_P (type))
  	{
! 	  error_at (loc, "argument %d of %qE must not be a pointer to a "
! 		    "function", x + 1, function);
  	  return 0;
  	}
        tree type_size = TYPE_SIZE_UNIT (TREE_TYPE (type));
        size = type_size ? tree_to_uhwi (type_size) : 0;
        if (size != size_0)
  	{
! 	  error_at (loc, "size mismatch in argument %d of %qE", x + 1,
! 		    function);
  	  return 0;
  	}
  
--- 7813,7850 ----
  	}
        if (!POINTER_TYPE_P (type))
  	{
! 	  if (complain)
! 	    error_at (loc, "argument %d of %qE must be a pointer type", x + 1,
! 		      function);
  	  return 0;
  	}
        else if (TYPE_SIZE_UNIT (TREE_TYPE (type))
  	       && TREE_CODE ((TYPE_SIZE_UNIT (TREE_TYPE (type))))
  		  != INTEGER_CST)
  	{
! 	  if (complain)
! 	    error_at (loc,
! 		      "argument %d of %qE must be a pointer to a constant "
! 		      "size type",
! 		      x + 1, function);
  	  return 0;
  	}
        else if (FUNCTION_POINTER_TYPE_P (type))
  	{
! 	  if (complain)
! 	    error_at (loc,
! 		      "argument %d of %qE must not be a pointer to a "
! 		      "function",
! 		      x + 1, function);
  	  return 0;
  	}
        tree type_size = TYPE_SIZE_UNIT (TREE_TYPE (type));
        size = type_size ? tree_to_uhwi (type_size) : 0;
        if (size != size_0)
  	{
! 	  if (complain)
! 	    error_at (loc, "size mismatch in argument %d of %qE", x + 1,
! 		      function);
  	  return 0;
  	}
  
*************** get_atomic_generic_size (location_t loc,
*** 7638,7645 ****
  	  {
  	    if (c_dialect_cxx ())
  	      {
! 		error_at (loc, "argument %d of %qE must not be a pointer to "
! 			  "a %<const%> type", x + 1, function);
  		return 0;
  	      }
  	    else
--- 7856,7866 ----
  	  {
  	    if (c_dialect_cxx ())
  	      {
! 		if (complain)
! 		  error_at (loc,
! 			    "argument %d of %qE must not be a pointer to "
! 			    "a %<const%> type",
! 			    x + 1, function);
  		return 0;
  	      }
  	    else
*************** get_atomic_generic_size (location_t loc,
*** 7652,7659 ****
  	  {
  	    if (c_dialect_cxx ())
  	      {
! 		error_at (loc, "argument %d of %qE must not be a pointer to "
! 			  "a %<volatile%> type", x + 1, function);
  		return 0;
  	      }
  	    else
--- 7873,7883 ----
  	  {
  	    if (c_dialect_cxx ())
  	      {
! 		if (complain)
! 		  error_at (loc,
! 			    "argument %d of %qE must not be a pointer to "
! 			    "a %<volatile%> type",
! 			    x + 1, function);
  		return 0;
  	      }
  	    else
*************** get_atomic_generic_size (location_t loc,
*** 7670,7677 ****
        tree p = (*params)[x];
        if (!INTEGRAL_TYPE_P (TREE_TYPE (p)))
  	{
! 	  error_at (loc, "non-integer memory model argument %d of %qE", x + 1,
! 		    function);
  	  return 0;
  	}
        p = fold_for_warn (p);
--- 7894,7902 ----
        tree p = (*params)[x];
        if (!INTEGRAL_TYPE_P (TREE_TYPE (p)))
  	{
! 	  if (complain)
! 	    error_at (loc, "non-integer memory model argument %d of %qE", x + 1,
! 		      function);
  	  return 0;
  	}
        p = fold_for_warn (p);
*************** get_atomic_generic_size (location_t loc,
*** 7682,7690 ****
  	     bits will be checked later during expansion in target specific
  	     way.  */
  	  if (memmodel_base (TREE_INT_CST_LOW (p)) >= MEMMODEL_LAST)
! 	    warning_at (loc, OPT_Winvalid_memory_model,
! 			"invalid memory model argument %d of %qE", x + 1,
! 			function);
  	}
      }
  
--- 7907,7920 ----
  	     bits will be checked later during expansion in target specific
  	     way.  */
  	  if (memmodel_base (TREE_INT_CST_LOW (p)) >= MEMMODEL_LAST)
! 	    {
! 	      if (complain)
! 		warning_at (loc, OPT_Winvalid_memory_model,
! 			    "invalid memory model argument %d of %qE", x + 1,
! 			    function);
! 	      else
! 		return 0;
! 	    }
  	}
      }
  
*************** get_atomic_generic_size (location_t loc,
*** 7695,7706 ****
  /* This will take an __atomic_ generic FUNCTION call, and add a size parameter N
     at the beginning of the parameter list PARAMS representing the size of the
     objects.  This is to match the library ABI requirement.  LOC is the location
!    of the function call.  
     The new function is returned if it needed rebuilding, otherwise NULL_TREE is
     returned to allow the external call to be constructed.  */
  
  static tree
! add_atomic_size_parameter (unsigned n, location_t loc, tree function, 
  			   vec<tree, va_gc> *params)
  {
    tree size_node;
--- 7925,7936 ----
  /* This will take an __atomic_ generic FUNCTION call, and add a size parameter N
     at the beginning of the parameter list PARAMS representing the size of the
     objects.  This is to match the library ABI requirement.  LOC is the location
!    of the function call.
     The new function is returned if it needed rebuilding, otherwise NULL_TREE is
     returned to allow the external call to be constructed.  */
  
  static tree
! add_atomic_size_parameter (unsigned n, location_t loc, tree function,
  			   vec<tree, va_gc> *params)
  {
    tree size_node;
*************** atomic_size_supported_p (int n)
*** 7758,7772 ****
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and 
     NEW_RETURN is set to the return value the result is copied into.  */
  static bool
! resolve_overloaded_atomic_exchange (location_t loc, tree function, 
! 				    vec<tree, va_gc> *params, tree *new_return)
! {	
    tree p0, p1, p2, p3;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
--- 7988,8003 ----
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and
     NEW_RETURN is set to the return value the result is copied into.  */
  static bool
! resolve_overloaded_atomic_exchange (location_t loc, tree function,
! 				    vec<tree, va_gc> *params, tree *new_return,
! 				    bool complain)
! {
    tree p0, p1, p2, p3;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params, complain);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
*************** resolve_overloaded_atomic_exchange (loca
*** 7791,7804 ****
    p1 = (*params)[1];
    p2 = (*params)[2];
    p3 = (*params)[3];
!   
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
  
    /* Convert object pointer to required type.  */
    p0 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p0);
!   (*params)[0] = p0; 
    /* Convert new value to required type, and dereference it.
       If *p1 type can have padding or may involve floating point which
       could e.g. be promoted to wider precision and demoted afterwards,
--- 8022,8035 ----
    p1 = (*params)[1];
    p2 = (*params)[2];
    p3 = (*params)[3];
! 
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
  
    /* Convert object pointer to required type.  */
    p0 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p0);
!   (*params)[0] = p0;
    /* Convert new value to required type, and dereference it.
       If *p1 type can have padding or may involve floating point which
       could e.g. be promoted to wider precision and demoted afterwards,
*************** resolve_overloaded_atomic_exchange (loca
*** 7819,7826 ****
    return false;
  }
  
! 
! /* This will process an __atomic_compare_exchange function call, determine 
     whether it needs to be mapped to the _N variation, or turned into a lib call.
     LOC is the location of the builtin call.
     FUNCTION is the DECL that has been invoked;
--- 8050,8056 ----
    return false;
  }
  
! /* This will process an __atomic_compare_exchange function call, determine
     whether it needs to be mapped to the _N variation, or turned into a lib call.
     LOC is the location of the builtin call.
     FUNCTION is the DECL that has been invoked;
*************** resolve_overloaded_atomic_exchange (loca
*** 7830,7842 ****
     FALSE is returned if processing for the _N variation is required.  */
  
  static bool
! resolve_overloaded_atomic_compare_exchange (location_t loc, tree function, 
! 					    vec<tree, va_gc> *params, 
! 					    tree *new_return)
! {	
    tree p0, p1, p2;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
--- 8060,8072 ----
     FALSE is returned if processing for the _N variation is required.  */
  
  static bool
! resolve_overloaded_atomic_compare_exchange (location_t loc, tree function,
! 					    vec<tree, va_gc> *params,
! 					    tree *new_return, bool complain)
! {
    tree p0, p1, p2;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params, complain);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
*************** resolve_overloaded_atomic_compare_exchan
*** 7848,7854 ****
    /* If not a lock-free size, change to the library generic format.  */
    if (!atomic_size_supported_p (n))
      {
!       /* The library generic format does not have the weak parameter, so 
  	 remove it from the param list.  Since a parameter has been removed,
  	 we can be sure that there is room for the SIZE_T parameter, meaning
  	 there will not be a recursive rebuilding of the parameter list, so
--- 8078,8084 ----
    /* If not a lock-free size, change to the library generic format.  */
    if (!atomic_size_supported_p (n))
      {
!       /* The library generic format does not have the weak parameter, so
  	 remove it from the param list.  Since a parameter has been removed,
  	 we can be sure that there is room for the SIZE_T parameter, meaning
  	 there will not be a recursive rebuilding of the parameter list, so
*************** resolve_overloaded_atomic_compare_exchan
*** 7871,7877 ****
    p0 = (*params)[0];
    p1 = (*params)[1];
    p2 = (*params)[2];
!   
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
--- 8101,8107 ----
    p0 = (*params)[0];
    p1 = (*params)[1];
    p2 = (*params)[2];
! 
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
*************** resolve_overloaded_atomic_compare_exchan
*** 7900,7906 ****
    return false;
  }
  
- 
  /* This will process an __atomic_load function call, determine whether it
     needs to be mapped to the _N variation, or turned into a library call.
     LOC is the location of the builtin call.
--- 8130,8135 ----
*************** resolve_overloaded_atomic_compare_exchan
*** 7908,7923 ****
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and 
     NEW_RETURN is set to the return value the result is copied into.  */
  
  static bool
! resolve_overloaded_atomic_load (location_t loc, tree function, 
! 				vec<tree, va_gc> *params, tree *new_return)
! {	
    tree p0, p1, p2;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
--- 8137,8153 ----
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and
     NEW_RETURN is set to the return value the result is copied into.  */
  
  static bool
! resolve_overloaded_atomic_load (location_t loc, tree function,
! 				vec<tree, va_gc> *params, tree *new_return,
! 				bool complain)
! {
    tree p0, p1, p2;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params, complain);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
*************** resolve_overloaded_atomic_load (location
*** 7941,7947 ****
    p0 = (*params)[0];
    p1 = (*params)[1];
    p2 = (*params)[2];
!   
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
--- 8171,8177 ----
    p0 = (*params)[0];
    p1 = (*params)[1];
    p2 = (*params)[2];
! 
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
*************** resolve_overloaded_atomic_load (location
*** 7960,7966 ****
    return false;
  }
  
- 
  /* This will process an __atomic_store function call, determine whether it
     needs to be mapped to the _N variation, or turned into a library call.
     LOC is the location of the builtin call.
--- 8190,8195 ----
*************** resolve_overloaded_atomic_load (location
*** 7968,7983 ****
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and 
     NEW_RETURN is set to the return value the result is copied into.  */
  
  static bool
! resolve_overloaded_atomic_store (location_t loc, tree function, 
! 				 vec<tree, va_gc> *params, tree *new_return)
! {	
    tree p0, p1;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
--- 8197,8213 ----
     PARAMS is the argument list for the call.  The return value is non-null
     TRUE is returned if it is translated into the proper format for a call to the
     external library, and NEW_RETURN is set the tree for that function.
!    FALSE is returned if processing for the _N variation is required, and
     NEW_RETURN is set to the return value the result is copied into.  */
  
  static bool
! resolve_overloaded_atomic_store (location_t loc, tree function,
! 				 vec<tree, va_gc> *params, tree *new_return,
! 				 bool complain)
! {
    tree p0, p1;
    tree I_type, I_type_ptr;
!   int n = get_atomic_generic_size (loc, function, params, complain);
  
    /* Size of 0 is an error condition.  */
    if (n == 0)
*************** resolve_overloaded_atomic_store (locatio
*** 8000,8006 ****
  
    p0 = (*params)[0];
    p1 = (*params)[1];
!   
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
--- 8230,8236 ----
  
    p0 = (*params)[0];
    p1 = (*params)[1];
! 
    /* Create pointer to appropriate size.  */
    I_type = builtin_type_for_size (BITS_PER_UNIT * n, 1);
    I_type_ptr = build_pointer_type (I_type);
*************** resolve_overloaded_atomic_store (locatio
*** 8013,8026 ****
    p1 = build_indirect_ref (loc, p1, RO_UNARY_STAR);
    p1 = build1 (VIEW_CONVERT_EXPR, I_type, p1);
    (*params)[1] = p1;
!   
    /* The memory model is in the right spot already. Return is void.  */
    *new_return = NULL_TREE;
  
    return false;
  }
  
- 
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
     1, 2, 4, 8 or 16 bytes using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
--- 8243,8255 ----
    p1 = build_indirect_ref (loc, p1, RO_UNARY_STAR);
    p1 = build1 (VIEW_CONVERT_EXPR, I_type, p1);
    (*params)[1] = p1;
! 
    /* The memory model is in the right spot already. Return is void.  */
    *new_return = NULL_TREE;
  
    return false;
  }
  
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
     1, 2, 4, 8 or 16 bytes using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8257,8263 ****
  
  tree
  resolve_overloaded_builtin (location_t loc, tree function,
! 			    vec<tree, va_gc> *params)
  {
    /* Is function one of the _FETCH_OP_ or _OP_FETCH_ built-ins?
       Those are not valid to call with a pointer to _Bool (or C++ bool)
--- 8486,8492 ----
  
  tree
  resolve_overloaded_builtin (location_t loc, tree function,
! 			    vec<tree, va_gc> *params, bool complain)
  {
    /* Is function one of the _FETCH_OP_ or _OP_FETCH_ built-ins?
       Those are not valid to call with a pointer to _Bool (or C++ bool)
*************** resolve_overloaded_builtin (location_t l
*** 8272,8278 ****
        break;
      case BUILT_IN_MD:
        if (targetm.resolve_overloaded_builtin)
! 	return targetm.resolve_overloaded_builtin (loc, function, params);
        else
  	return NULL_TREE;
      default:
--- 8501,8508 ----
        break;
      case BUILT_IN_MD:
        if (targetm.resolve_overloaded_builtin)
! 	return targetm.resolve_overloaded_builtin (loc, function, params,
! 						   complain);
        else
  	return NULL_TREE;
      default:
*************** resolve_overloaded_builtin (location_t l
*** 8287,8299 ****
        {
  	tree new_function, first_param, result;
  	enum built_in_function fncode
! 	  = speculation_safe_value_resolve_call (function, params);
  
  	if (fncode == BUILT_IN_NONE)
  	  return error_mark_node;
  
  	first_param = (*params)[0];
! 	if (!speculation_safe_value_resolve_params (loc, function, params))
  	  return error_mark_node;
  
  	if (targetm.have_speculation_safe_value (true))
--- 8517,8530 ----
        {
  	tree new_function, first_param, result;
  	enum built_in_function fncode
! 	  = speculation_safe_value_resolve_call (function, params, complain);
  
  	if (fncode == BUILT_IN_NONE)
  	  return error_mark_node;
  
  	first_param = (*params)[0];
! 	if (!speculation_safe_value_resolve_params (loc, function, params,
! 						    complain))
  	  return error_mark_node;
  
  	if (targetm.have_speculation_safe_value (true))
*************** resolve_overloaded_builtin (location_t l
*** 8313,8326 ****
  	       against incorrect speculative execution.  Simply return the
  	       first parameter to the builtin.  */
  	    if (!targetm.have_speculation_safe_value (false))
! 	      /* The user has invoked __builtin_speculation_safe_value
! 		 even though __HAVE_SPECULATION_SAFE_VALUE is not
! 		 defined: emit a warning.  */
! 	      warning_at (input_location, 0,
! 			  "this target does not define a speculation barrier; "
! 			  "your program will still execute correctly, "
! 			  "but incorrect speculation may not be "
! 			  "restricted");
  
  	    /* If the optional second argument is present, handle any side
  	       effects now.  */
--- 8544,8563 ----
  	       against incorrect speculative execution.  Simply return the
  	       first parameter to the builtin.  */
  	    if (!targetm.have_speculation_safe_value (false))
! 	      {
! 		if (complain)
! 		  /* The user has invoked __builtin_speculation_safe_value
! 		     even though __HAVE_SPECULATION_SAFE_VALUE is not
! 		     defined: emit a warning.  */
! 		  warning_at (
! 		    input_location, 0,
! 		    "this target does not define a speculation barrier; "
! 		    "your program will still execute correctly, "
! 		    "but incorrect speculation may not be "
! 		    "restricted");
! 		else
! 		  return error_mark_node;
! 	      }
  
  	    /* If the optional second argument is present, handle any side
  	       effects now.  */
*************** resolve_overloaded_builtin (location_t l
*** 8345,8351 ****
  	  case BUILT_IN_ATOMIC_EXCHANGE:
  	    {
  	      if (resolve_overloaded_atomic_exchange (loc, function, params,
! 						      &new_return))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_EXCHANGE_N;
--- 8582,8588 ----
  	  case BUILT_IN_ATOMIC_EXCHANGE:
  	    {
  	      if (resolve_overloaded_atomic_exchange (loc, function, params,
! 						      &new_return, complain))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_EXCHANGE_N;
*************** resolve_overloaded_builtin (location_t l
*** 8354,8362 ****
  
  	  case BUILT_IN_ATOMIC_COMPARE_EXCHANGE:
  	    {
! 	      if (resolve_overloaded_atomic_compare_exchange (loc, function,
! 							      params,
! 							      &new_return))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N;
--- 8591,8598 ----
  
  	  case BUILT_IN_ATOMIC_COMPARE_EXCHANGE:
  	    {
! 	      if (resolve_overloaded_atomic_compare_exchange (
! 		    loc, function, params, &new_return, complain))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N;
*************** resolve_overloaded_builtin (location_t l
*** 8365,8371 ****
  	  case BUILT_IN_ATOMIC_LOAD:
  	    {
  	      if (resolve_overloaded_atomic_load (loc, function, params,
! 						  &new_return))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_LOAD_N;
--- 8601,8607 ----
  	  case BUILT_IN_ATOMIC_LOAD:
  	    {
  	      if (resolve_overloaded_atomic_load (loc, function, params,
! 						  &new_return, complain))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_LOAD_N;
*************** resolve_overloaded_builtin (location_t l
*** 8374,8380 ****
  	  case BUILT_IN_ATOMIC_STORE:
  	    {
  	      if (resolve_overloaded_atomic_store (loc, function, params,
! 						   &new_return))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_STORE_N;
--- 8610,8616 ----
  	  case BUILT_IN_ATOMIC_STORE:
  	    {
  	      if (resolve_overloaded_atomic_store (loc, function, params,
! 						   &new_return, complain))
  		return new_return;
  	      /* Change to the _N variant.  */
  	      orig_code = BUILT_IN_ATOMIC_STORE_N;
*************** resolve_overloaded_builtin (location_t l
*** 8430,8436 ****
  		      && orig_code != BUILT_IN_SYNC_LOCK_TEST_AND_SET_N
  		      && orig_code != BUILT_IN_SYNC_LOCK_RELEASE_N);
  
! 	int n = sync_resolve_size (function, params, fetch_op, orig_format);
  	tree new_function, first_param, result;
  	enum built_in_function fncode;
  
--- 8666,8673 ----
  		      && orig_code != BUILT_IN_SYNC_LOCK_TEST_AND_SET_N
  		      && orig_code != BUILT_IN_SYNC_LOCK_RELEASE_N);
  
! 	int n = sync_resolve_size (function, params, fetch_op, orig_format,
! 				   complain);
  	tree new_function, first_param, result;
  	enum built_in_function fncode;
  
*************** resolve_overloaded_builtin (location_t l
*** 8438,8450 ****
  	  return error_mark_node;
  
  	if (n == -1)
! 	  return atomic_bitint_fetch_using_cas_loop (loc, orig_code,
! 						     function, params);
  
  	fncode = (enum built_in_function)((int)orig_code + exact_log2 (n) + 1);
  	new_function = builtin_decl_explicit (fncode);
  	if (!sync_resolve_params (loc, function, new_function, params,
! 				  orig_format))
  	  return error_mark_node;
  
  	first_param = (*params)[0];
--- 8675,8698 ----
  	  return error_mark_node;
  
  	if (n == -1)
! 	  {
! 	    /* complain is related to SFINAE context.
! 	       _BitInt is not defined in C++, hence can't enter this clause
! 	       with complain unset.  Even if at the abstraction level
! 	       this complain is unset that still makes sense (whether
! 	       this function should report an error or not if anything is
! 	       wrong).
! 	       Since can't test avoiding an error when this value is false not
! 	       writing the code and instead asserting value is not set.  */
! 	    gcc_assert (complain);
! 	    return atomic_bitint_fetch_using_cas_loop (loc, orig_code, function,
! 						       params);
! 	  }
  
  	fncode = (enum built_in_function)((int)orig_code + exact_log2 (n) + 1);
  	new_function = builtin_decl_explicit (fncode);
  	if (!sync_resolve_params (loc, function, new_function, params,
! 				  orig_format, complain))
  	  return error_mark_node;
  
  	first_param = (*params)[0];
*************** make_tree_vector_from_list (tree list)
*** 8765,8780 ****
    return ret;
  }
  
  /* Get a new tree vector of the values of a CONSTRUCTOR.  */
  
  vec<tree, va_gc> *
  make_tree_vector_from_ctor (tree ctor)
  {
!   vec<tree,va_gc> *ret = make_tree_vector ();
!   vec_safe_reserve (ret, CONSTRUCTOR_NELTS (ctor));
!   for (unsigned i = 0; i < CONSTRUCTOR_NELTS (ctor); ++i)
!     ret->quick_push (CONSTRUCTOR_ELT (ctor, i)->value);
!   return ret;
  }
  
  /* Get a new tree vector which is a copy of an existing one.  */
--- 9013,9055 ----
    return ret;
  }
  
+ /* Append to a tree vector V the values of a CONSTRUCTOR CTOR
+    and return the new possibly reallocated vector.  */
+ 
+ vec<tree, va_gc> *
+ append_ctor_to_tree_vector (vec<tree, va_gc> *v, tree ctor)
+ {
+   unsigned nelts = vec_safe_length (v) + CONSTRUCTOR_NELTS (ctor);
+   vec_safe_reserve (v, CONSTRUCTOR_NELTS (ctor));
+   for (unsigned i = 0; i < CONSTRUCTOR_NELTS (ctor); ++i)
+     if (TREE_CODE (CONSTRUCTOR_ELT (ctor, i)->value) == RAW_DATA_CST)
+       {
+ 	tree raw_data = CONSTRUCTOR_ELT (ctor, i)->value;
+ 	nelts += RAW_DATA_LENGTH (raw_data) - 1;
+ 	vec_safe_reserve (v, nelts - v->length ());
+ 	if (TYPE_PRECISION (TREE_TYPE (raw_data)) > CHAR_BIT
+ 	    || TYPE_UNSIGNED (TREE_TYPE (raw_data)))
+ 	  for (unsigned j = 0; j < (unsigned) RAW_DATA_LENGTH (raw_data); ++j)
+ 	    v->quick_push (build_int_cst (TREE_TYPE (raw_data),
+ 					  RAW_DATA_UCHAR_ELT (raw_data, j)));
+ 	else
+ 	  for (unsigned j = 0; j < (unsigned) RAW_DATA_LENGTH (raw_data); ++j)
+ 	    v->quick_push (build_int_cst (TREE_TYPE (raw_data),
+ 					  RAW_DATA_SCHAR_ELT (raw_data, j)));
+       }
+     else
+       v->quick_push (CONSTRUCTOR_ELT (ctor, i)->value);
+   return v;
+ }
+ 
  /* Get a new tree vector of the values of a CONSTRUCTOR.  */
  
  vec<tree, va_gc> *
  make_tree_vector_from_ctor (tree ctor)
  {
!   vec<tree,va_gc> *ret
!     = CONSTRUCTOR_NELTS (ctor) <= 16 ? make_tree_vector () : NULL;
!   return append_ctor_to_tree_vector (ret, ctor);
  }
  
  /* Get a new tree vector which is a copy of an existing one.  */
*************** convert_vector_to_array_for_subscript (l
*** 8969,8978 ****
        ret = !lvalue_p (*vecp);
  
        index = fold_for_warn (index);
!       if (TREE_CODE (index) == INTEGER_CST)
!         if (!tree_fits_uhwi_p (index)
! 	    || maybe_ge (tree_to_uhwi (index), TYPE_VECTOR_SUBPARTS (type)))
! 	  warning_at (loc, OPT_Warray_bounds_, "index value is out of bound");
  
        /* We are building an ARRAY_REF so mark the vector as addressable
           to not run into the gimplifiers premature setting of DECL_GIMPLE_REG_P
--- 9244,9255 ----
        ret = !lvalue_p (*vecp);
  
        index = fold_for_warn (index);
!       /* Warn out-of-bounds index for vectors only if known.  */
!       if (poly_int_tree_p (index))
! 	if (!tree_fits_poly_uint64_p (index)
! 	    || known_ge (tree_to_poly_uint64 (index),
! 			  TYPE_VECTOR_SUBPARTS (type)))
! 	    warning_at (loc, OPT_Warray_bounds_, "index value is out of bound");
  
        /* We are building an ARRAY_REF so mark the vector as addressable
           to not run into the gimplifiers premature setting of DECL_GIMPLE_REG_P
*************** maybe_suggest_missing_token_insertion (r
*** 9555,9560 ****
--- 9832,9871 ----
      }
  }
  
+ /* Potentially emit a note about likely missing '&' or '*',
+    depending on EXPR and EXPECTED_TYPE.  */
+ 
+ void
+ maybe_emit_indirection_note (location_t loc,
+ 			     tree expr, tree expected_type)
+ {
+   gcc_assert (expr);
+   gcc_assert (expected_type);
+ 
+   tree actual_type = TREE_TYPE (expr);
+ 
+   /* Missing '&'.  */
+   if (TREE_CODE (expected_type) == POINTER_TYPE
+       && compatible_types_for_indirection_note_p (actual_type,
+ 						  TREE_TYPE (expected_type))
+       && lvalue_p (expr))
+     {
+       gcc_rich_location richloc (loc);
+       richloc.add_fixit_insert_before ("&");
+       inform (&richloc, "possible fix: take the address with %qs", "&");
+     }
+ 
+   /* Missing '*'.  */
+   if (TREE_CODE (actual_type) == POINTER_TYPE
+       && compatible_types_for_indirection_note_p (TREE_TYPE (actual_type),
+ 						  expected_type))
+     {
+       gcc_rich_location richloc (loc);
+       richloc.add_fixit_insert_before ("*");
+       inform (&richloc, "possible fix: dereference with %qs", "*");
+     }
+ }
+ 
  #if CHECKING_P
  
  namespace selftest {
*************** c_family_tests (void)
*** 9594,9600 ****
  #endif /* #if CHECKING_P */
  
  /* Attempt to locate a suitable location within FILE for a
!    #include directive to be inserted before.  
     LOC is the location of the relevant diagnostic.
  
     Attempt to return the location within FILE immediately
--- 9905,9911 ----
  #endif /* #if CHECKING_P */
  
  /* Attempt to locate a suitable location within FILE for a
!    #include directive to be inserted before.
     LOC is the location of the relevant diagnostic.
  
     Attempt to return the location within FILE immediately
*************** maybe_add_include_fixit (rich_location *
*** 9762,9768 ****
  
  /* Attempt to convert a braced array initializer list CTOR for array
     TYPE into a STRING_CST for convenience and efficiency.  Return
!    the converted string on success or the original ctor on failure.  */
  
  static tree
  braced_list_to_string (tree type, tree ctor, bool member)
--- 10073,10081 ----
  
  /* Attempt to convert a braced array initializer list CTOR for array
     TYPE into a STRING_CST for convenience and efficiency.  Return
!    the converted string on success or the original ctor on failure.
!    Also, for non-convertable CTORs which contain RAW_DATA_CST values
!    among the elts try to extend the range of RAW_DATA_CSTs.  */
  
  static tree
  braced_list_to_string (tree type, tree ctor, bool member)
*************** braced_list_to_string (tree type, tree c
*** 9806,9831 ****
    auto_vec<char> str;
    str.reserve (nelts + 1);
  
!   unsigned HOST_WIDE_INT i;
    tree index, value;
  
    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (ctor), i, index, value)
      {
        unsigned HOST_WIDE_INT idx = i;
        if (index)
  	{
  	  if (!tree_fits_uhwi_p (index))
! 	    return ctor;
  	  idx = tree_to_uhwi (index);
  	}
  
        /* auto_vec is limited to UINT_MAX elements.  */
        if (idx > UINT_MAX)
! 	return ctor;
  
!      /* Avoid non-constant initializers.  */
!      if (!tree_fits_shwi_p (value))
! 	return ctor;
  
        /* Skip over embedded nuls except the last one (initializer
  	 elements are in ascending order of indices).  */
--- 10119,10273 ----
    auto_vec<char> str;
    str.reserve (nelts + 1);
  
!   unsigned HOST_WIDE_INT i, j = HOST_WIDE_INT_M1U;
    tree index, value;
+   bool check_raw_data = false;
  
    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (ctor), i, index, value)
      {
+       if (check_raw_data)
+ 	{
+ 	  /* The preprocessor always surrounds CPP_EMBED tokens in between
+ 	     CPP_NUMBER and CPP_COMMA tokens.  Try to undo that here now that
+ 	     the whole initializer is parsed.  E.g. if we have
+ 	     [0] = 'T', [1] = "his is a #embed tex", [20] = 't'
+ 	     where the middle value is RAW_DATA_CST and in its owner this is
+ 	     surrounded by 'T' and 't' characters, we can create from it just
+ 	     [0] = "This is a #embed text"
+ 	     Similarly if a RAW_DATA_CST needs to be split into two parts
+ 	     because of designated init store but the stored value is actually
+ 	     the same as in the RAW_DATA_OWNER's memory we can merge multiple
+ 	     RAW_DATA_CSTs.  */
+ 	  if (TREE_CODE (value) == RAW_DATA_CST
+ 	      && index
+ 	      && tree_fits_uhwi_p (index))
+ 	    {
+ 	      tree owner = RAW_DATA_OWNER (value);
+ 	      unsigned int start, end, k;
+ 	      if (TREE_CODE (owner) == STRING_CST)
+ 		{
+ 		  start
+ 		    = RAW_DATA_POINTER (value) - TREE_STRING_POINTER (owner);
+ 		  end = TREE_STRING_LENGTH (owner) - RAW_DATA_LENGTH (value);
+ 		}
+ 	      else
+ 		{
+ 		  gcc_checking_assert (TREE_CODE (owner) == RAW_DATA_CST);
+ 		  start
+ 		    = RAW_DATA_POINTER (value) - RAW_DATA_POINTER (owner);
+ 		  end = RAW_DATA_LENGTH (owner) - RAW_DATA_LENGTH (value);
+ 		}
+ 	      end -= start;
+ 	      unsigned HOST_WIDE_INT l = j == HOST_WIDE_INT_M1U ? i : j;
+ 	      for (k = 0; k < start && k < l; ++k)
+ 		{
+ 		  constructor_elt *elt = CONSTRUCTOR_ELT (ctor, l - k - 1);
+ 		  if (elt->index == NULL_TREE
+ 		      || !tree_fits_uhwi_p (elt->index)
+ 		      || !tree_fits_shwi_p (elt->value)
+ 		      || wi::to_widest (index) != (wi::to_widest (elt->index)
+ 						   + (k + 1)))
+ 		    break;
+ 		  if (TYPE_UNSIGNED (TREE_TYPE (value)))
+ 		    {
+ 		      if (tree_to_shwi (elt->value)
+ 			  != *((const unsigned char *)
+ 			       RAW_DATA_POINTER (value) - k - 1))
+ 			break;
+ 		    }
+ 		  else if (tree_to_shwi (elt->value)
+ 			   != *((const signed char *)
+ 				RAW_DATA_POINTER (value) - k - 1))
+ 		    break;
+ 		}
+ 	      start = k;
+ 	      l = 0;
+ 	      for (k = 0; k < end && k + 1 < CONSTRUCTOR_NELTS (ctor) - i; ++k)
+ 		{
+ 		  constructor_elt *elt = CONSTRUCTOR_ELT (ctor, i + k + 1);
+ 		  if (elt->index == NULL_TREE
+ 		      || !tree_fits_uhwi_p (elt->index)
+ 		      || (wi::to_widest (elt->index)
+ 			  != (wi::to_widest (index)
+ 			      + (RAW_DATA_LENGTH (value) + l))))
+ 		    break;
+ 		  if (TREE_CODE (elt->value) == RAW_DATA_CST
+ 		      && RAW_DATA_OWNER (elt->value) == RAW_DATA_OWNER (value)
+ 		      && (RAW_DATA_POINTER (elt->value)
+ 			  == RAW_DATA_POINTER (value) + l))
+ 		    {
+ 		      l += RAW_DATA_LENGTH (elt->value);
+ 		      end -= RAW_DATA_LENGTH (elt->value) - 1;
+ 		      continue;
+ 		    }
+ 		  if (!tree_fits_shwi_p (elt->value))
+ 		    break;
+ 		  if (TYPE_UNSIGNED (TREE_TYPE (value)))
+ 		    {
+ 		      if (tree_to_shwi (elt->value)
+ 			  != *((const unsigned char *)
+ 			       RAW_DATA_POINTER (value)
+ 			       + RAW_DATA_LENGTH (value) + k))
+ 			break;
+ 		    }
+ 		  else if (tree_to_shwi (elt->value)
+ 			   != *((const signed char *)
+ 				RAW_DATA_POINTER (value)
+ 				+ RAW_DATA_LENGTH (value) + k))
+ 		    break;
+ 		  ++l;
+ 		}
+ 	      end = k;
+ 	      if (start != 0 || end != 0)
+ 		{
+ 		  if (j == HOST_WIDE_INT_M1U)
+ 		    j = i - start;
+ 		  else
+ 		    j -= start;
+ 		  RAW_DATA_POINTER (value) -= start;
+ 		  RAW_DATA_LENGTH (value) += start + end;
+ 		  i += end;
+ 		  if (start == 0)
+ 		    CONSTRUCTOR_ELT (ctor, j)->index = index;
+ 		  CONSTRUCTOR_ELT (ctor, j)->value = value;
+ 		  ++j;
+ 		  continue;
+ 		}
+ 	    }
+ 	  if (j != HOST_WIDE_INT_M1U)
+ 	    {
+ 	      CONSTRUCTOR_ELT (ctor, j)->index = index;
+ 	      CONSTRUCTOR_ELT (ctor, j)->value = value;
+ 	      ++j;
+ 	    }
+ 	  continue;
+ 	}
+ 
        unsigned HOST_WIDE_INT idx = i;
        if (index)
  	{
  	  if (!tree_fits_uhwi_p (index))
! 	    {
! 	      check_raw_data = true;
! 	      continue;
! 	    }
  	  idx = tree_to_uhwi (index);
  	}
  
        /* auto_vec is limited to UINT_MAX elements.  */
        if (idx > UINT_MAX)
! 	{
! 	  check_raw_data = true;
! 	  continue;
! 	}
  
!       /* Avoid non-constant initializers.  */
!       if (!tree_fits_shwi_p (value))
! 	{
! 	  check_raw_data = true;
! 	  --i;
! 	  continue;
! 	}
  
        /* Skip over embedded nuls except the last one (initializer
  	 elements are in ascending order of indices).  */
*************** braced_list_to_string (tree type, tree c
*** 9833,9846 ****
        if (!val && i + 1 < nelts)
  	continue;
  
!       if (idx < str.length())
! 	return ctor;
  
        /* Bail if the CTOR has a block of more than 256 embedded nuls
  	 due to implicitly initialized elements.  */
        unsigned nchars = (idx - str.length ()) + 1;
        if (nchars > 256)
! 	return ctor;
  
        if (nchars > 1)
  	{
--- 10275,10294 ----
        if (!val && i + 1 < nelts)
  	continue;
  
!       if (idx < str.length ())
! 	{
! 	  check_raw_data = true;
! 	  continue;
! 	}
  
        /* Bail if the CTOR has a block of more than 256 embedded nuls
  	 due to implicitly initialized elements.  */
        unsigned nchars = (idx - str.length ()) + 1;
        if (nchars > 256)
! 	{
! 	  check_raw_data = true;
! 	  continue;
! 	}
  
        if (nchars > 1)
  	{
*************** braced_list_to_string (tree type, tree c
*** 9849,9859 ****
  	}
  
        if (idx >= maxelts)
! 	return ctor;
  
        str.safe_insert (idx, val);
      }
  
    /* Append a nul string termination.  */
    if (maxelts != HOST_WIDE_INT_M1U && str.length () < maxelts)
      str.safe_push (0);
--- 10297,10317 ----
  	}
  
        if (idx >= maxelts)
! 	{
! 	  check_raw_data = true;
! 	  continue;
! 	}
  
        str.safe_insert (idx, val);
      }
  
+   if (check_raw_data)
+     {
+       if (j != HOST_WIDE_INT_M1U)
+ 	CONSTRUCTOR_ELTS (ctor)->truncate (j);
+       return ctor;
+     }
+ 
    /* Append a nul string termination.  */
    if (maxelts != HOST_WIDE_INT_M1U && str.length () < maxelts)
      str.safe_push (0);
*************** c_common_finalize_early_debug (void)
*** 9942,9947 ****
--- 10400,10418 ----
        (*debug_hooks->early_global_decl) (cnode->decl);
  }
  
+ /* Determine whether TYPE is an ISO C99 flexible array member type "[]".  */
+ bool
+ c_flexible_array_member_type_p (const_tree type)
+ {
+   if (TREE_CODE (type) == ARRAY_TYPE
+       && TYPE_SIZE (type) == NULL_TREE
+       && TYPE_DOMAIN (type) != NULL_TREE
+       && TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == NULL_TREE)
+     return true;
+ 
+   return false;
+ }
+ 
  /* Get the LEVEL of the strict_flex_array for the ARRAY_FIELD based on the
     values of attribute strict_flex_array and the flag_strict_flex_arrays.  */
  unsigned int
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-common.def gcc-15.1.0/gcc/c-family/c-common.def
*** gcc-14.2.0/gcc/c-family/c-common.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-common.def	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
     Written by Benjamin Chelf <chelf@codesourcery.com>
  
  This file is part of GCC.
--- 1,7 ----
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
     Written by Benjamin Chelf <chelf@codesourcery.com>
  
  This file is part of GCC.
*************** DEFTREECODE (SIZEOF_EXPR, "sizeof_expr",
*** 58,85 ****
  DEFTREECODE (PAREN_SIZEOF_EXPR, "paren_sizeof_expr", tcc_expression, 1)
  
  /* Used to represent a `for' statement. The operands are
!    FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, and FOR_SCOPE,
!    respectively.  */
! DEFTREECODE (FOR_STMT, "for_stmt", tcc_statement, 5)
  
! /* Used to represent a 'while' statement. The operands are WHILE_COND
!    and WHILE_BODY, respectively.  */
! DEFTREECODE (WHILE_STMT, "while_stmt", tcc_statement, 2)
  
! /* Used to represent a 'do' statement. The operands are DO_COND and
!    DO_BODY, respectively.  */
! DEFTREECODE (DO_STMT, "do_stmt", tcc_statement, 2)
  
! /* Used to represent a 'break' statement.  */
! DEFTREECODE (BREAK_STMT, "break_stmt", tcc_statement, 0)
  
! /* Used to represent a 'continue' statement.  */
! DEFTREECODE (CONTINUE_STMT, "continue_stmt", tcc_statement, 0)
  
  /* Used to represent a 'switch' statement. The operands are
!    SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE, and
!    SWITCH_STMT_SCOPE, respectively.  */
! DEFTREECODE (SWITCH_STMT, "switch_stmt", tcc_statement, 4)
  
  /* Extensions for C++ Concepts. */
  
--- 58,89 ----
  DEFTREECODE (PAREN_SIZEOF_EXPR, "paren_sizeof_expr", tcc_expression, 1)
  
  /* Used to represent a `for' statement. The operands are
!    FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE, FOR_NAME,
!    FOR_COND_PREP and FOR_COND_CLEANUP, respectively.  */
! DEFTREECODE (FOR_STMT, "for_stmt", tcc_statement, 8)
  
! /* Used to represent a 'while' statement. The operands are WHILE_COND,
!    WHILE_BODY, WHILE_NAME, WHILE_COND_PREP and WHILE_COND_CLEANUP,
!    respectively.  */
! DEFTREECODE (WHILE_STMT, "while_stmt", tcc_statement, 5)
  
! /* Used to represent a 'do' statement. The operands are DO_COND, DO_BODY,
!    and DO_NAME, respectively.  */
! DEFTREECODE (DO_STMT, "do_stmt", tcc_statement, 3)
  
! /* Used to represent a 'break' statement.  The operand BREAK_NAME is
!    the {FOR,WHILE,DO,SWITCH}_NAME to which it applies.  NULL_TREE means
!    innermost.  */
! DEFTREECODE (BREAK_STMT, "break_stmt", tcc_statement, 1)
  
! /* Used to represent a 'continue' statement.  The operand CONTINUE_NAME is
!    the {FOR,WHILE,DO}_STMT to which it applies.  NULL_TREE means innermost.  */
! DEFTREECODE (CONTINUE_STMT, "continue_stmt", tcc_statement, 1)
  
  /* Used to represent a 'switch' statement. The operands are
!    SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE,
!    and SWITCH_STMT_NAME, respectively.  */
! DEFTREECODE (SWITCH_STMT, "switch_stmt", tcc_statement, 5)
  
  /* Extensions for C++ Concepts. */
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-common.h gcc-15.1.0/gcc/c-family/c-common.h
*** gcc-14.2.0/gcc/c-family/c-common.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-common.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum rid
*** 80,86 ****
       are keywords only in specific contexts)  */
    RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF, RID_ONEWAY,
  
!   /* ObjC ("PATTR" reserved words - they do not appear after a '@' 
       and are keywords only as property attributes)  */
    RID_GETTER, RID_SETTER,
    RID_READONLY, RID_READWRITE,
--- 80,86 ----
       are keywords only in specific contexts)  */
    RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF, RID_ONEWAY,
  
!   /* ObjC ("PATTR" reserved words - they do not appear after a '@'
       and are keywords only as property attributes)  */
    RID_GETTER, RID_SETTER,
    RID_READONLY, RID_READWRITE,
*************** enum rid
*** 105,116 ****
  
    /* C extensions */
    RID_ASM,       RID_TYPEOF,   RID_TYPEOF_UNQUAL, RID_ALIGNOF,  RID_ATTRIBUTE,
!   RID_VA_ARG,
    RID_EXTENSION, RID_IMAGPART, RID_REALPART, RID_LABEL,    RID_CHOOSE_EXPR,
    RID_TYPES_COMPATIBLE_P,      RID_BUILTIN_COMPLEX,	   RID_BUILTIN_SHUFFLE,
    RID_BUILTIN_SHUFFLEVECTOR,   RID_BUILTIN_CONVERTVECTOR,  RID_BUILTIN_TGMATH,
    RID_BUILTIN_HAS_ATTRIBUTE,   RID_BUILTIN_ASSOC_BARRIER,  RID_BUILTIN_STDC,
!   RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128,
  
    /* TS 18661-3 keywords, in the same sequence as the TI_* values.  */
    RID_FLOAT16,
--- 105,117 ----
  
    /* C extensions */
    RID_ASM,       RID_TYPEOF,   RID_TYPEOF_UNQUAL, RID_ALIGNOF,  RID_ATTRIBUTE,
!   RID_C23_VA_START, RID_VA_ARG,
    RID_EXTENSION, RID_IMAGPART, RID_REALPART, RID_LABEL,    RID_CHOOSE_EXPR,
    RID_TYPES_COMPATIBLE_P,      RID_BUILTIN_COMPLEX,	   RID_BUILTIN_SHUFFLE,
    RID_BUILTIN_SHUFFLEVECTOR,   RID_BUILTIN_CONVERTVECTOR,  RID_BUILTIN_TGMATH,
    RID_BUILTIN_HAS_ATTRIBUTE,   RID_BUILTIN_ASSOC_BARRIER,  RID_BUILTIN_STDC,
!   RID_BUILTIN_COUNTED_BY_REF,
!   RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128, RID_DFLOAT64X,
  
    /* TS 18661-3 keywords, in the same sequence as the TI_* values.  */
    RID_FLOAT16,
*************** enum rid
*** 167,172 ****
--- 168,174 ----
    RID_ADDRESSOF,
    RID_BUILTIN_LAUNDER,
    RID_BUILTIN_BIT_CAST,
+   RID_BUILTIN_OPERATOR_NEW, RID_BUILTIN_OPERATOR_DELETE,
  
    /* C++11 */
    RID_CONSTEXPR, RID_DECLTYPE, RID_NOEXCEPT, RID_NULLPTR, RID_STATIC_ASSERT,
*************** enum rid
*** 196,202 ****
    RID_AT_PRIVATE,  RID_AT_PROTECTED, RID_AT_PUBLIC,  RID_AT_PACKAGE,
    RID_AT_PROTOCOL, RID_AT_SELECTOR,
    RID_AT_THROW,	   RID_AT_TRY,       RID_AT_CATCH,
!   RID_AT_FINALLY,  RID_AT_SYNCHRONIZED, 
    RID_AT_OPTIONAL, RID_AT_REQUIRED, RID_AT_PROPERTY,
    RID_AT_SYNTHESIZE, RID_AT_DYNAMIC,
    RID_AT_INTERFACE,
--- 198,204 ----
    RID_AT_PRIVATE,  RID_AT_PROTECTED, RID_AT_PUBLIC,  RID_AT_PACKAGE,
    RID_AT_PROTOCOL, RID_AT_SELECTOR,
    RID_AT_THROW,	   RID_AT_TRY,       RID_AT_CATCH,
!   RID_AT_FINALLY,  RID_AT_SYNCHRONIZED,
    RID_AT_OPTIONAL, RID_AT_REQUIRED, RID_AT_PROPERTY,
    RID_AT_SYNTHESIZE, RID_AT_DYNAMIC,
    RID_AT_INTERFACE,
*************** extern GTY(()) tree c_global_trees[CTI_M
*** 531,537 ****
  
  enum c_language_kind
  {
!   clk_c		= 0,		/* C90, C94, C99, C11 or C23 */
    clk_objc	= 1,		/* clk_c with ObjC features.  */
    clk_cxx	= 2,		/* ANSI/ISO C++ */
    clk_objcxx	= 3		/* clk_cxx with ObjC features.  */
--- 533,539 ----
  
  enum c_language_kind
  {
!   clk_c		= 0,		/* C without ObjC features.  */
    clk_objc	= 1,		/* clk_c with ObjC features.  */
    clk_cxx	= 2,		/* ANSI/ISO C++ */
    clk_objcxx	= 3		/* clk_cxx with ObjC features.  */
*************** extern int flag_isoc99;
*** 676,685 ****
  
  extern int flag_isoc11;
  
! /* Nonzero means use the ISO C23 dialect of C.  */
  
  extern int flag_isoc23;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
  extern int flag_hosted;
--- 678,691 ----
  
  extern int flag_isoc11;
  
! /* Nonzero means use the ISO C23 (or later) dialect of C.  */
  
  extern int flag_isoc23;
  
+ /* Nonzero means use the ISO C2Y (or later) dialect of C.  */
+ 
+ extern int flag_isoc2y;
+ 
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
  extern int flag_hosted;
*************** extern struct visibility_flags visibilit
*** 817,822 ****
--- 823,829 ----
  
  /* Attribute table common to the C front ends.  */
  extern const struct scoped_attribute_specs c_common_gnu_attribute_table;
+ extern const struct scoped_attribute_specs c_common_clang_attribute_table;
  extern const struct scoped_attribute_specs c_common_format_attribute_table;
  
  /* Pointer to function to lazily generate the VAR_DECL for __FUNCTION__ etc.
*************** extern bool in_late_binary_op;
*** 834,840 ****
  extern const char *c_addr_space_name (addr_space_t as);
  extern tree identifier_global_value (tree);
  extern tree identifier_global_tag (tree);
! extern bool names_builtin_p (const char *);
  extern tree c_linkage_bindings (tree);
  extern void record_builtin_type (enum rid, const char *, tree);
  extern void start_fname_decls (void);
--- 841,847 ----
  extern const char *c_addr_space_name (addr_space_t as);
  extern tree identifier_global_value (tree);
  extern tree identifier_global_tag (tree);
! extern int names_builtin_p (const char *);
  extern tree c_linkage_bindings (tree);
  extern void record_builtin_type (enum rid, const char *, tree);
  extern void start_fname_decls (void);
*************** extern tree fname_decl (location_t, unsi
*** 844,863 ****
  
  extern int check_user_alignment (const_tree, bool, bool);
  extern bool check_function_arguments (location_t loc, const_tree, const_tree,
! 				      int, tree *, vec<location_t> *);
  extern void check_function_arguments_recurse (void (*)
  					      (void *, tree,
  					       unsigned HOST_WIDE_INT),
  					      void *, tree,
  					      unsigned HOST_WIDE_INT,
  					      opt_code);
! extern bool check_builtin_function_arguments (location_t, vec<location_t>,
! 					      tree, tree, int, tree *);
  extern void check_function_format (const_tree, tree, int, tree *,
! 				   vec<location_t> *);
  extern bool attribute_fallthrough_p (tree);
  extern tree handle_format_attribute (tree *, tree, tree, int, bool *);
  extern tree handle_format_arg_attribute (tree *, tree, tree, int, bool *);
  extern bool c_common_handle_option (size_t, const char *, HOST_WIDE_INT, int,
  				    location_t,
  				    const struct cl_option_handlers *);
--- 851,874 ----
  
  extern int check_user_alignment (const_tree, bool, bool);
  extern bool check_function_arguments (location_t loc, const_tree, const_tree,
! 				      int, tree *, vec<location_t> *,
! 				      bool (*comp_types) (tree, tree));
  extern void check_function_arguments_recurse (void (*)
  					      (void *, tree,
  					       unsigned HOST_WIDE_INT),
  					      void *, tree,
  					      unsigned HOST_WIDE_INT,
  					      opt_code);
! extern bool check_builtin_function_arguments (location_t, vec<location_t>, tree,
! 					      tree, int, tree *, bool = true);
  extern void check_function_format (const_tree, tree, int, tree *,
! 				   vec<location_t> *,
! 				   bool (*comp_types) (tree, tree));
  extern bool attribute_fallthrough_p (tree);
  extern tree handle_format_attribute (tree *, tree, tree, int, bool *);
  extern tree handle_format_arg_attribute (tree *, tree, tree, int, bool *);
+ extern tree handle_unsequenced_attribute (tree *, tree, tree, int, bool *);
+ extern tree handle_reproducible_attribute (tree *, tree, tree, int, bool *);
  extern bool c_common_handle_option (size_t, const char *, HOST_WIDE_INT, int,
  				    location_t,
  				    const struct cl_option_handlers *);
*************** extern tree fold_for_warn (tree);
*** 904,909 ****
--- 915,921 ----
  extern tree c_common_get_narrower (tree, int *);
  extern bool get_attribute_operand (tree, unsigned HOST_WIDE_INT *);
  extern void c_common_finalize_early_debug (void);
+ extern bool c_flexible_array_member_type_p (const_tree);
  extern unsigned int c_strict_flex_array_level_of (tree);
  extern bool c_option_is_from_cpp_diagnostics (int);
  extern tree c_hardbool_type_attr_1 (tree, tree *, tree *);
*************** extern tree build_function_call_vec (loc
*** 1093,1099 ****
  				     vec<tree, va_gc> *, vec<tree, va_gc> *,
  				     tree = NULL_TREE);
  
! extern tree resolve_overloaded_builtin (location_t, tree, vec<tree, va_gc> *);
  
  extern tree finish_label_address_expr (tree, location_t);
  
--- 1105,1112 ----
  				     vec<tree, va_gc> *, vec<tree, va_gc> *,
  				     tree = NULL_TREE);
  
! extern tree resolve_overloaded_builtin (location_t, tree, vec<tree, va_gc> *,
! 					bool = true);
  
  extern tree finish_label_address_expr (tree, location_t);
  
*************** extern vec<tree, va_gc> *make_tree_vecto
*** 1177,1182 ****
--- 1190,1197 ----
  extern void release_tree_vector (vec<tree, va_gc> *);
  extern vec<tree, va_gc> *make_tree_vector_single (tree);
  extern vec<tree, va_gc> *make_tree_vector_from_list (tree);
+ extern vec<tree, va_gc> *append_ctor_to_tree_vector (vec<tree, va_gc> *,
+ 						     tree);
  extern vec<tree, va_gc> *make_tree_vector_from_ctor (tree);
  extern vec<tree, va_gc> *make_tree_vector_copy (const vec<tree, va_gc> *);
  
*************** extern const char *c_get_substring_locat
*** 1206,1214 ****
--- 1221,1233 ----
  					     location_t *out_loc);
  
  /* In c-gimplify.cc.  */
+ typedef hash_map<tree, tree_pair,
+ 		 simple_hashmap_traits<tree_decl_hash,
+ 				       tree_pair>> bc_hash_map_t;
  typedef struct bc_state
  {
    tree bc_label[2];
+   bc_hash_map_t *bc_hash_map;
  } bc_state_t;
  extern void save_bc_state (bc_state_t *);
  extern void restore_bc_state (bc_state_t *);
*************** extern void c_stddef_cpp_builtins (void)
*** 1244,1249 ****
--- 1263,1269 ----
  extern void fe_file_change (const line_map_ordinary *);
  extern void c_parse_error (const char *, enum cpp_ttype, tree, unsigned char,
  			   rich_location *richloc);
+ extern diagnostic_option_id get_option_for_builtin_define (const char *macro_name);
  
  /* In c-ppoutput.cc  */
  extern void init_pp_output (FILE *);
*************** enum c_omp_region_type
*** 1280,1288 ****
--- 1300,1310 ----
    C_ORT_DECLARE_SIMD		= 1 << 2,
    C_ORT_TARGET			= 1 << 3,
    C_ORT_EXIT_DATA		= 1 << 4,
+   C_ORT_INTEROP			= 1 << 5,
    C_ORT_OMP_DECLARE_SIMD	= C_ORT_OMP | C_ORT_DECLARE_SIMD,
    C_ORT_OMP_TARGET		= C_ORT_OMP | C_ORT_TARGET,
    C_ORT_OMP_EXIT_DATA		= C_ORT_OMP | C_ORT_EXIT_DATA,
+   C_ORT_OMP_INTEROP		= C_ORT_OMP | C_ORT_INTEROP,
    C_ORT_ACC_TARGET		= C_ORT_ACC | C_ORT_TARGET
  };
  
*************** extern void c_finish_omp_barrier (locati
*** 1295,1300 ****
--- 1317,1323 ----
  extern tree c_finish_omp_atomic (location_t, enum tree_code, enum tree_code,
  				 tree, tree, tree, tree, tree, tree, bool,
  				 enum omp_memory_order, bool, bool = false);
+ extern bool c_omp_interop_t_p (tree);
  extern bool c_omp_depend_t_p (tree);
  extern void c_finish_omp_depobj (location_t, tree, enum omp_clause_depend_kind,
  				 tree);
*************** extern void c_finish_omp_taskwait (locat
*** 1303,1308 ****
--- 1326,1332 ----
  extern void c_finish_omp_taskyield (location_t);
  extern tree c_finish_omp_for (location_t, enum tree_code, tree, tree, tree,
  			      tree, tree, tree, tree, bool);
+ extern int c_omp_find_generated_loop (tree &, int, walk_tree_lh);
  extern bool c_omp_check_loop_iv (tree, tree, walk_tree_lh);
  extern bool c_omp_check_loop_iv_exprs (location_t, enum tree_code, tree, int,
  				       tree, tree, tree, walk_tree_lh);
*************** enum c_omp_directive_kind {
*** 1391,1397 ****
    C_OMP_DIR_CONSTRUCT,
    C_OMP_DIR_DECLARATIVE,
    C_OMP_DIR_UTILITY,
!   C_OMP_DIR_INFORMATIONAL
  };
  
  struct c_omp_directive {
--- 1415,1422 ----
    C_OMP_DIR_CONSTRUCT,
    C_OMP_DIR_DECLARATIVE,
    C_OMP_DIR_UTILITY,
!   C_OMP_DIR_INFORMATIONAL,
!   C_OMP_DIR_META
  };
  
  struct c_omp_directive {
*************** extern const struct c_omp_directive c_om
*** 1405,1410 ****
--- 1430,1436 ----
  extern const struct c_omp_directive *c_omp_categorize_directive (const char *,
  								 const char *,
  								 const char *);
+ extern tree c_omp_expand_variant_construct (vec<struct omp_variant> &);
  
  /* Return next tree in the chain for chain_next walking of tree nodes.  */
  inline tree
*************** extern tree build_userdef_literal (tree
*** 1490,1518 ****
  				   tree num_string);
  
  
! /* WHILE_STMT accessors. These give access to the condition of the
!    while statement and the body of the while statement, respectively.  */
  #define WHILE_COND(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 0)
  #define WHILE_BODY(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 1)
  
! /* DO_STMT accessors. These give access to the condition of the do
!    statement and the body of the do statement, respectively.  */
  #define DO_COND(NODE)		TREE_OPERAND (DO_STMT_CHECK (NODE), 0)
  #define DO_BODY(NODE)		TREE_OPERAND (DO_STMT_CHECK (NODE), 1)
  
! /* FOR_STMT accessors. These give access to the init statement,
!    condition, update expression, and body of the for statement,
     respectively.  */
  #define FOR_INIT_STMT(NODE)	TREE_OPERAND (FOR_STMT_CHECK (NODE), 0)
  #define FOR_COND(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 1)
  #define FOR_EXPR(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 2)
  #define FOR_BODY(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 3)
  #define FOR_SCOPE(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 4)
  
  #define SWITCH_STMT_COND(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 0)
  #define SWITCH_STMT_BODY(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 1)
  #define SWITCH_STMT_TYPE(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 2)
  #define SWITCH_STMT_SCOPE(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 3)
  /* True if there are case labels for all possible values of switch cond, either
     because there is a default: case label or because the case label ranges cover
     all values.  */
--- 1516,1561 ----
  				   tree num_string);
  
  
! /* WHILE_STMT accessors.  These give access to the condition of the
!    while statement, the body, and name of the while statement, and
!    condition preparation statements and number of its nested cleanups,
!    respectively.  */
  #define WHILE_COND(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 0)
  #define WHILE_BODY(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 1)
+ #define WHILE_NAME(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 2)
+ #define WHILE_COND_PREP(NODE)	TREE_OPERAND (WHILE_STMT_CHECK (NODE), 3)
+ #define WHILE_COND_CLEANUP(NODE) TREE_OPERAND (WHILE_STMT_CHECK (NODE), 4)
  
! /* DO_STMT accessors.  These give access to the condition of the do
!    statement, the body and name of the do statement, respectively.  */
  #define DO_COND(NODE)		TREE_OPERAND (DO_STMT_CHECK (NODE), 0)
  #define DO_BODY(NODE)		TREE_OPERAND (DO_STMT_CHECK (NODE), 1)
+ #define DO_NAME(NODE)		TREE_OPERAND (DO_STMT_CHECK (NODE), 2)
  
! /* FOR_STMT accessors.  These give access to the init statement,
!    condition, update expression, body and name of the for statement,
!    and condition preparation statements and number of its nested cleanups,
     respectively.  */
  #define FOR_INIT_STMT(NODE)	TREE_OPERAND (FOR_STMT_CHECK (NODE), 0)
  #define FOR_COND(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 1)
  #define FOR_EXPR(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 2)
  #define FOR_BODY(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 3)
  #define FOR_SCOPE(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 4)
+ #define FOR_NAME(NODE)		TREE_OPERAND (FOR_STMT_CHECK (NODE), 5)
+ #define FOR_COND_PREP(NODE)	TREE_OPERAND (FOR_STMT_CHECK (NODE), 6)
+ #define FOR_COND_CLEANUP(NODE)	TREE_OPERAND (FOR_STMT_CHECK (NODE), 7)
+ 
+ /* BREAK_STMT accessors.  */
+ #define BREAK_NAME(NODE)	TREE_OPERAND (BREAK_STMT_CHECK (NODE), 0)
+ 
+ /* CONTINUE_STMT accessors.  */
+ #define CONTINUE_NAME(NODE)	TREE_OPERAND (CONTINUE_STMT_CHECK (NODE), 0)
  
  #define SWITCH_STMT_COND(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 0)
  #define SWITCH_STMT_BODY(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 1)
  #define SWITCH_STMT_TYPE(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 2)
  #define SWITCH_STMT_SCOPE(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 3)
+ #define SWITCH_STMT_NAME(NODE)	TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 4)
  /* True if there are case labels for all possible values of switch cond, either
     because there is a default: case label or because the case label ranges cover
     all values.  */
*************** extern int parse_tm_stmt_attr (tree, int
*** 1634,1644 ****
--- 1677,1691 ----
  extern int tm_attr_to_mask (tree);
  extern tree tm_mask_to_attr (int);
  extern tree find_tm_attribute (tree);
+ extern const struct attribute_spec::exclusions attr_aligned_exclusions[];
  extern const struct attribute_spec::exclusions attr_cold_hot_exclusions[];
  extern const struct attribute_spec::exclusions attr_noreturn_exclusions[];
+ extern tree handle_aligned_attribute (tree *, tree, tree, int, bool *);
  extern tree handle_noreturn_attribute (tree *, tree, tree, int, bool *);
+ extern tree handle_musttail_attribute (tree *, tree, tree, int, bool *);
  extern bool has_attribute (location_t, tree, tree, tree (*)(tree));
  extern tree build_attr_access_from_parms (tree, bool);
+ extern void set_musttail_on_return (tree, location_t, bool);
  
  /* In c-format.cc.  */
  extern bool valid_format_string_type_p (tree);
*************** extern void maybe_add_include_fixit (ric
*** 1665,1670 ****
--- 1712,1721 ----
  extern void maybe_suggest_missing_token_insertion (rich_location *richloc,
  						   enum cpp_ttype token_type,
  						   location_t prev_token_loc);
+ extern void maybe_emit_indirection_note (location_t loc,
+ 					 tree expr, tree expected_type);
+ extern bool compatible_types_for_indirection_note_p (tree type1, tree type2);
+ 
  extern tree braced_lists_to_strings (tree, tree);
  
  #if CHECKING_P
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-cppbuiltin.cc gcc-15.1.0/gcc/c-family/c-cppbuiltin.cc
*** gcc-14.2.0/gcc/c-family/c-cppbuiltin.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-cppbuiltin.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Define builtin-in macros for the C family front ends.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define builtin-in macros for the C family front ends.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** builtin_define_decimal_float_constants (
*** 357,373 ****
  
    /* Compute the maximum representable value.  */
    sprintf (name, "__%s_MAX__", name_prefix);
!   p = buf;
!   for (digits = fmt->p; digits; digits--)
!     {
!       *p++ = '9';
!       if (digits == fmt->p)
! 	*p++ = '.';
!     }
!   *p = 0;
!   /* fmt->p plus 1, to account for the decimal point and fmt->emax
!      minus 1 because the digits are nines, not 1.0.  */
!   sprintf (&buf[fmt->p + 1], "E%d%s", fmt->emax - 1, suffix);
    builtin_define_with_value (name, buf, 0);
  
    /* Compute epsilon (the difference between 1 and least value greater
--- 357,364 ----
  
    /* Compute the maximum representable value.  */
    sprintf (name, "__%s_MAX__", name_prefix);
!   get_max_float (fmt, buf, sizeof (buf) - strlen (suffix), false);
!   strcat (buf, suffix);
    builtin_define_with_value (name, buf, 0);
  
    /* Compute epsilon (the difference between 1 and least value greater
*************** c_cpp_builtins_optimize_pragma (cpp_read
*** 660,666 ****
  
  /* This function will emit cpp macros to indicate the presence of various lock
     free atomic operations.  */
!    
  static void
  cpp_atomic_builtins (cpp_reader *pfile)
  {
--- 651,657 ----
  
  /* This function will emit cpp macros to indicate the presence of various lock
     free atomic operations.  */
! 
  static void
  cpp_atomic_builtins (cpp_reader *pfile)
  {
*************** cpp_atomic_builtins (cpp_reader *pfile)
*** 741,766 ****
       lock free.  */
  #define SIZEOF_NODE(T) (tree_to_uhwi (TYPE_SIZE_UNIT (T)))
  #define SWAP_INDEX(T) ((SIZEOF_NODE (T) < SWAP_LIMIT) ? SIZEOF_NODE (T) : 0)
!   builtin_define_with_int_value ("__GCC_ATOMIC_BOOL_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (boolean_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (signed_char_type_node)]? 2 : 1));
    if (flag_char8_t)
      builtin_define_with_int_value ("__GCC_ATOMIC_CHAR8_T_LOCK_FREE",
  			(have_swap[SWAP_INDEX (char8_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR16_T_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (char16_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR32_T_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (char32_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_WCHAR_T_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (wchar_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_SHORT_LOCK_FREE", 
  		      (have_swap[SWAP_INDEX (short_integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_INT_LOCK_FREE", 
  			(have_swap[SWAP_INDEX (integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_LONG_LOCK_FREE", 
  		      (have_swap[SWAP_INDEX (long_integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_LLONG_LOCK_FREE", 
  		(have_swap[SWAP_INDEX (long_long_integer_type_node)]? 2 : 1));
  
    /* If we're dealing with a "set" value that doesn't exactly correspond
--- 732,757 ----
       lock free.  */
  #define SIZEOF_NODE(T) (tree_to_uhwi (TYPE_SIZE_UNIT (T)))
  #define SWAP_INDEX(T) ((SIZEOF_NODE (T) < SWAP_LIMIT) ? SIZEOF_NODE (T) : 0)
!   builtin_define_with_int_value ("__GCC_ATOMIC_BOOL_LOCK_FREE",
  			(have_swap[SWAP_INDEX (boolean_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR_LOCK_FREE",
  			(have_swap[SWAP_INDEX (signed_char_type_node)]? 2 : 1));
    if (flag_char8_t)
      builtin_define_with_int_value ("__GCC_ATOMIC_CHAR8_T_LOCK_FREE",
  			(have_swap[SWAP_INDEX (char8_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR16_T_LOCK_FREE",
  			(have_swap[SWAP_INDEX (char16_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_CHAR32_T_LOCK_FREE",
  			(have_swap[SWAP_INDEX (char32_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_WCHAR_T_LOCK_FREE",
  			(have_swap[SWAP_INDEX (wchar_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_SHORT_LOCK_FREE",
  		      (have_swap[SWAP_INDEX (short_integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_INT_LOCK_FREE",
  			(have_swap[SWAP_INDEX (integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_LONG_LOCK_FREE",
  		      (have_swap[SWAP_INDEX (long_integer_type_node)]? 2 : 1));
!   builtin_define_with_int_value ("__GCC_ATOMIC_LLONG_LOCK_FREE",
  		(have_swap[SWAP_INDEX (long_long_integer_type_node)]? 2 : 1));
  
    /* If we're dealing with a "set" value that doesn't exactly correspond
*************** cpp_atomic_builtins (cpp_reader *pfile)
*** 787,793 ****
    psize = POINTER_SIZE_UNITS;
    if (psize >= SWAP_LIMIT)
      psize = 0;
!   builtin_define_with_int_value ("__GCC_ATOMIC_POINTER_LOCK_FREE", 
  			(have_swap[psize]? 2 : 1));
  }
  
--- 778,784 ----
    psize = POINTER_SIZE_UNITS;
    if (psize >= SWAP_LIMIT)
      psize = 0;
!   builtin_define_with_int_value ("__GCC_ATOMIC_POINTER_LOCK_FREE",
  			(have_swap[psize]? 2 : 1));
  }
  
*************** c_cpp_builtins (cpp_reader *pfile)
*** 954,960 ****
  	}
  
        if (cxx_dialect >= cxx11)
!         cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX0X__");
  
        /* Binary literals have been allowed in g++ before C++11
  	 and were standardized for C++14.  */
--- 945,954 ----
  	}
  
        if (cxx_dialect >= cxx11)
! 	{
! 	  cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX0X__");
! 	  cpp_define (pfile, "__GXX_CONSTEXPR_ASM__");
! 	}
  
        /* Binary literals have been allowed in g++ before C++11
  	 and were standardized for C++14.  */
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1031,1037 ****
  	  cpp_define (pfile, "__cpp_fold_expressions=201603L");
  	  if (cxx_dialect <= cxx17)
  	    cpp_define (pfile, "__cpp_nontype_template_args=201411L");
! 	  cpp_define (pfile, "__cpp_range_based_for=201603L");
  	  if (cxx_dialect <= cxx17)
  	    cpp_define (pfile, "__cpp_constexpr=201603L");
  	  cpp_define (pfile, "__cpp_if_constexpr=201606L");
--- 1025,1035 ----
  	  cpp_define (pfile, "__cpp_fold_expressions=201603L");
  	  if (cxx_dialect <= cxx17)
  	    cpp_define (pfile, "__cpp_nontype_template_args=201411L");
! 	  if (!flag_range_for_ext_temps)
! 	    cpp_define (pfile, "__cpp_range_based_for=201603L");
!           else
! 	    /* This is the C++23 or -std=c++17 -frange-for-ext-temps value.  */
! 	    cpp_define (pfile, "__cpp_range_based_for=202211L");
  	  if (cxx_dialect <= cxx17)
  	    cpp_define (pfile, "__cpp_constexpr=201603L");
  	  cpp_define (pfile, "__cpp_if_constexpr=201606L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1044,1050 ****
  	  /* Old macro, superseded by
  	     __cpp_nontype_template_parameter_auto.  */
  	  cpp_define (pfile, "__cpp_template_auto=201606L");
! 	  cpp_define (pfile, "__cpp_structured_bindings=201606L");
  	  cpp_define (pfile, "__cpp_variadic_using=201611L");
  	  cpp_define (pfile, "__cpp_guaranteed_copy_elision=201606L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_auto=201606L");
--- 1042,1049 ----
  	  /* Old macro, superseded by
  	     __cpp_nontype_template_parameter_auto.  */
  	  cpp_define (pfile, "__cpp_template_auto=201606L");
! 	  if (cxx_dialect <= cxx23)
! 	    cpp_define (pfile, "__cpp_structured_bindings=201606L");
  	  cpp_define (pfile, "__cpp_variadic_using=201611L");
  	  cpp_define (pfile, "__cpp_guaranteed_copy_elision=201606L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_auto=201606L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1087,1103 ****
        if (cxx_dialect > cxx23)
  	{
  	  /* Set feature test macros for C++26.  */
! 	  cpp_define (pfile, "__cpp_constexpr=202306L");
  	  cpp_define (pfile, "__cpp_static_assert=202306L");
  	  cpp_define (pfile, "__cpp_placeholder_variables=202306L");
  	}
!       if (flag_concepts)
!         {
! 	  if (cxx_dialect >= cxx20 || !flag_concepts_ts)
! 	    cpp_define (pfile, "__cpp_concepts=202002L");
!           else
!             cpp_define (pfile, "__cpp_concepts=201507L");
!         }
        if (flag_contracts)
  	{
  	  cpp_define (pfile, "__cpp_contracts=201906L");
--- 1086,1102 ----
        if (cxx_dialect > cxx23)
  	{
  	  /* Set feature test macros for C++26.  */
! 	  cpp_define (pfile, "__cpp_constexpr=202406L");
  	  cpp_define (pfile, "__cpp_static_assert=202306L");
  	  cpp_define (pfile, "__cpp_placeholder_variables=202306L");
+ 	  cpp_define (pfile, "__cpp_structured_bindings=202403L");
+ 	  cpp_define (pfile, "__cpp_deleted_function=202403L");
+ 	  cpp_define (pfile, "__cpp_variadic_friend=202403L");
+ 	  cpp_define (pfile, "__cpp_pack_indexing=202311L");
+ 	  cpp_define (pfile, "__cpp_pp_embed=202502L");
  	}
!       if (flag_concepts && cxx_dialect > cxx14)
! 	cpp_define (pfile, "__cpp_concepts=202002L");
        if (flag_contracts)
  	{
  	  cpp_define (pfile, "__cpp_contracts=201906L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1317,1322 ****
--- 1316,1324 ----
  					      dfloat64_type_node);
        builtin_define_decimal_float_constants ("DEC128", "DL",
  					      dfloat128_type_node);
+       if (dfloat64x_type_node)
+ 	builtin_define_decimal_float_constants ("DEC64X", "D64x",
+ 						dfloat64x_type_node);
      }
  
    /* For fixed-point fibt, ibit, max, min, and epsilon.  */
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1673,1678 ****
--- 1675,1693 ----
      cpp_define (pfile, "__DECIMAL_BID_FORMAT__");
  }
  
+ /* Given NAME, return the command-line option that would make it be
+    a builtin define, or 0 if unrecognized.  */
+ 
+ diagnostic_option_id
+ get_option_for_builtin_define (const char *name)
+ {
+   if (!strcmp (name, "_OPENACC"))
+     return OPT_fopenacc;
+   if (!strcmp (name, "_OPENMP"))
+     return OPT_fopenmp;
+   return 0;
+ }
+ 
  /* Pass an object-like macro.  If it doesn't lie in the user's
     namespace, defines it unconditionally.  Otherwise define a version
     with two leading underscores, and another version with two leading
*************** struct GTY(()) lazy_hex_fp_value_struct
*** 1816,1822 ****
     Each builtin_define_float_constants invocation calls
     builtin_define_with_hex_fp_value 5 times and builtin_define_float_constants
     is called for FLT, DBL, LDBL and up to NUM_FLOATN_NX_TYPES times for
!    FLTNN*.  */ 
  #define LAZY_HEX_FP_VALUES_CNT (5 * (3 + NUM_FLOATN_NX_TYPES))
  static GTY(()) struct lazy_hex_fp_value_struct
    lazy_hex_fp_values[LAZY_HEX_FP_VALUES_CNT];
--- 1831,1837 ----
     Each builtin_define_float_constants invocation calls
     builtin_define_with_hex_fp_value 5 times and builtin_define_float_constants
     is called for FLT, DBL, LDBL and up to NUM_FLOATN_NX_TYPES times for
!    FLTNN*.  */
  #define LAZY_HEX_FP_VALUES_CNT (5 * (3 + NUM_FLOATN_NX_TYPES))
  static GTY(()) struct lazy_hex_fp_value_struct
    lazy_hex_fp_values[LAZY_HEX_FP_VALUES_CNT];
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-dump.cc gcc-15.1.0/gcc/c-family/c-dump.cc
*** gcc-14.2.0/gcc/c-family/c-dump.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-dump.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Tree-dumping functionality for C-family languages.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Written by Mark Mitchell <mark@codesourcery.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Tree-dumping functionality for C-family languages.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
     Written by Mark Mitchell <mark@codesourcery.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-format.cc gcc-15.1.0/gcc/c-family/c-format.cc
*** gcc-14.2.0/gcc/c-family/c-format.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-format.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 35,41 ****
  #include "selftest-diagnostic.h"
  #include "builtins.h"
  #include "attribs.h"
! #include "gcc-rich-location.h"
  
  /* Handle attributes associated with format checking.  */
  
--- 35,42 ----
  #include "selftest-diagnostic.h"
  #include "builtins.h"
  #include "attribs.h"
! #include "c-family/c-type-mismatch.h"
! #include "tree-pretty-print-markup.h"
  
  /* Handle attributes associated with format checking.  */
  
*************** struct function_format_info
*** 66,71 ****
--- 67,73 ----
  /* Initialized in init_dynamic_diag_info.  */
  static GTY(()) tree local_tree_type_node;
  static GTY(()) tree local_event_ptr_node;
+ static GTY(()) tree local_pp_element_ptr_node;
  static GTY(()) tree local_gimple_ptr_node;
  static GTY(()) tree local_cgraph_node_ptr_node;
  static GTY(()) tree locus;
*************** format_warning_substr (location_t fmt_st
*** 147,158 ****
  /* Check that we have a pointer to a string suitable for use as a format.
     The default is to check for a char type.
     For objective-c dialects, this is extended to include references to string
!    objects validated by objc_string_ref_type_p ().  
!    Targets may also provide a string object type that can be used within c and 
     c++ and shared with their respective objective-c dialects. In this case the
     reference to a format string is checked for validity via a hook.
!    
!    The function returns true if strref points to any string type valid for the 
     language dialect and target.  */
  
  bool
--- 149,160 ----
  /* Check that we have a pointer to a string suitable for use as a format.
     The default is to check for a char type.
     For objective-c dialects, this is extended to include references to string
!    objects validated by objc_string_ref_type_p ().
!    Targets may also provide a string object type that can be used within c and
     c++ and shared with their respective objective-c dialects. In this case the
     reference to a format string is checked for validity via a hook.
! 
!    The function returns true if strref points to any string type valid for the
     language dialect and target.  */
  
  bool
*************** handle_format_arg_attribute (tree *node,
*** 203,210 ****
  }
  
  /* Verify that the format_num argument is actually a string reference suitable,
!    for the language dialect and target (in case the format attribute is in 
!    error).  When we know the specific reference type expected, this is also 
     checked.  */
  static bool
  check_format_string (const_tree fntype, unsigned HOST_WIDE_INT format_num,
--- 205,212 ----
  }
  
  /* Verify that the format_num argument is actually a string reference suitable,
!    for the language dialect and target (in case the format attribute is in
!    error).  When we know the specific reference type expected, this is also
     checked.  */
  static bool
  check_format_string (const_tree fntype, unsigned HOST_WIDE_INT format_num,
*************** check_format_string (const_tree fntype,
*** 238,244 ****
      return true;
  
    /* Now check that the arg matches the expected type.  */
!   is_char_ref = 
      (TYPE_MAIN_VARIANT (TREE_TYPE (ref)) == char_type_node);
  
    fmt_flags = format_flags (expected_format_type);
--- 240,246 ----
      return true;
  
    /* Now check that the arg matches the expected type.  */
!   is_char_ref =
      (TYPE_MAIN_VARIANT (TREE_TYPE (ref)) == char_type_node);
  
    fmt_flags = format_flags (expected_format_type);
*************** check_format_string (const_tree fntype,
*** 272,289 ****
        *no_add_attrs = true;
        return false;
      }
!   
    /* We will assert that objective-c will support either its own string type
       or the target-supplied variant.  */
    if (!is_objc_sref)
      is_target_sref = (*targetcm.string_object_ref_type_p) ((const_tree) ref);
  
!   if (expected_format_type == (int) gcc_objc_string_format_type 
        && (is_objc_sref || is_target_sref))
      return true;
  
    /* We will allow a target string ref to match only itself.  */
!   if (first_target_format_type 
        && expected_format_type >= first_target_format_type
        && is_target_sref)
      return true;
--- 274,291 ----
        *no_add_attrs = true;
        return false;
      }
! 
    /* We will assert that objective-c will support either its own string type
       or the target-supplied variant.  */
    if (!is_objc_sref)
      is_target_sref = (*targetcm.string_object_ref_type_p) ((const_tree) ref);
  
!   if (expected_format_type == (int) gcc_objc_string_format_type
        && (is_objc_sref || is_target_sref))
      return true;
  
    /* We will allow a target string ref to match only itself.  */
!   if (first_target_format_type
        && expected_format_type >= first_target_format_type
        && is_target_sref)
      return true;
*************** static const format_char_info asm_fprint
*** 768,773 ****
--- 770,776 ----
    { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "c",  NULL }, \
    { "r",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "",    "//cR",   NULL }, \
    { "@",   1, STD_C89, { T_EVENT_PTR,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "", "\"",   NULL }, \
+   { "e",   1, STD_C89, { T_PP_ELEMENT_PTR,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "", "\"", NULL }, \
    { "<",   0, STD_C89, NOARGUMENTS, "",      "<",   NULL }, \
    { ">",   0, STD_C89, NOARGUMENTS, "",      ">",   NULL }, \
    { "'" ,  0, STD_C89, NOARGUMENTS, "",      "",    NULL }, \
*************** static const format_char_info gcc_gfc_ch
*** 847,852 ****
--- 850,859 ----
    /* This will require a "locus" at runtime.  */
    { "L",   0, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "", "R", NULL },
  
+   /* These will require a "tree" at runtime.  */
+   { "DFTV", 1, STD_C89, { T89_T,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q+", "'",   NULL },
+   { "E",   1, STD_C89, { T89_T,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q+", "",   NULL },
+ 
    /* These will require nothing.  */
    { "<>",0, STD_C89, NOARGUMENTS, "",      "",   NULL },
    { NULL,  0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
*************** static int n_format_types = ARRAY_SIZE (
*** 1021,1026 ****
--- 1028,1047 ----
     many leaves resulting from nested conditional expressions.  */
  struct format_check_results
  {
+   format_check_results (location_t format_string_loc_)
+   : number_non_literal (0),
+     number_extra_args (0),
+     extra_arg_loc (UNKNOWN_LOCATION),
+     number_dollar_extra_args (0),
+     number_wide (0),
+     number_non_char (0),
+     number_empty (0),
+     number_unterminated (0),
+     number_other (0),
+     format_string_loc (format_string_loc_)
+   {
+   }
+ 
    /* Number of leaves of the format argument that could not be checked
       as they were not string literals.  */
    int number_non_literal;
*************** struct format_check_results
*** 1050,1059 ****
  
  struct format_check_context
  {
!   format_check_results *res;
!   function_format_info *info;
!   tree params;
!   vec<location_t> *arglocs;
  };
  
  /* Return the format name (as specified in the original table) for the format
--- 1071,1094 ----
  
  struct format_check_context
  {
!   format_check_context (format_check_results *res,
! 			function_format_info *info,
! 			tree params,
! 			vec<location_t> *arglocs,
! 			bool (*comp_types) (tree, tree))
!   : m_res (res),
!     m_info (info),
!     m_params (params),
!     m_arglocs (arglocs),
!     m_comp_types (comp_types)
!   {
!   }
! 
!   format_check_results *m_res;
!   function_format_info *m_info;
!   tree m_params;
!   vec<location_t> *m_arglocs;
!   bool (*m_comp_types) (tree, tree);
  };
  
  /* Return the format name (as specified in the original table) for the format
*************** format_flags (int format_num)
*** 1077,1083 ****
  }
  
  static void check_format_info (function_format_info *, tree,
! 			       vec<location_t> *);
  static void check_format_arg (void *, tree, unsigned HOST_WIDE_INT);
  static void check_format_info_main (format_check_results *,
  				    function_format_info *, const char *,
--- 1112,1119 ----
  }
  
  static void check_format_info (function_format_info *, tree,
! 			       vec<location_t> *,
! 			       bool (*comp_types) (tree, tree));
  static void check_format_arg (void *, tree, unsigned HOST_WIDE_INT);
  static void check_format_info_main (format_check_results *,
  				    function_format_info *, const char *,
*************** static void check_format_info_main (form
*** 1085,1091 ****
  				    int, tree,
  				    unsigned HOST_WIDE_INT,
  				    object_allocator<format_wanted_type> &,
! 				    vec<location_t> *);
  
  static void init_dollar_format_checking (int, tree);
  static int maybe_read_dollar_number (const char **, int,
--- 1121,1128 ----
  				    int, tree,
  				    unsigned HOST_WIDE_INT,
  				    object_allocator<format_wanted_type> &,
! 				    vec<location_t> *,
! 				    bool (*comp_types) (tree, tree));
  
  static void init_dollar_format_checking (int, tree);
  static int maybe_read_dollar_number (const char **, int,
*************** static void check_format_types (const su
*** 1101,1107 ****
  				const format_kind_info *fki,
  				int offset_to_type_start,
  				char conversion_char,
! 				vec<location_t> *arglocs);
  static void format_type_warning (const substring_loc &fmt_loc,
  				 location_t param_loc,
  				 format_wanted_type *, tree,
--- 1138,1145 ----
  				const format_kind_info *fki,
  				int offset_to_type_start,
  				char conversion_char,
! 				vec<location_t> *arglocs,
! 				bool (*comp_types) (tree, tree));
  static void format_type_warning (const substring_loc &fmt_loc,
  				 location_t param_loc,
  				 format_wanted_type *, tree,
*************** decode_format_type (const char *s, bool
*** 1172,1178 ****
  
  void
  check_function_format (const_tree fn, tree attrs, int nargs,
! 		       tree *argarray, vec<location_t> *arglocs)
  {
    tree a;
  
--- 1210,1217 ----
  
  void
  check_function_format (const_tree fn, tree attrs, int nargs,
! 		       tree *argarray, vec<location_t> *arglocs,
! 		       bool (*comp_types) (tree, tree))
  {
    tree a;
  
*************** check_function_format (const_tree fn, tr
*** 1229,1235 ****
  	      int i;
  	      for (i = nargs - 1; i >= 0; i--)
  		params = tree_cons (NULL_TREE, argarray[i], params);
! 	      check_format_info (&info, params, arglocs);
  	    }
  
  	  /* Attempt to detect whether the current function might benefit
--- 1268,1274 ----
  	      int i;
  	      for (i = nargs - 1; i >= 0; i--)
  		params = tree_cons (NULL_TREE, argarray[i], params);
! 	      check_format_info (&info, params, arglocs, comp_types);
  	    }
  
  	  /* Attempt to detect whether the current function might benefit
*************** get_flag_spec (const format_flag_spec *s
*** 1537,1548 ****
  
  static void
  check_format_info (function_format_info *info, tree params,
! 		   vec<location_t> *arglocs)
  {
-   format_check_context format_ctx;
    unsigned HOST_WIDE_INT arg_num;
    tree format_tree;
-   format_check_results res;
    /* Skip to format argument.  If the argument isn't available, there's
       no work for us to do; prototype checking will catch the problem.  */
    for (arg_num = 1; ; ++arg_num)
--- 1576,1586 ----
  
  static void
  check_format_info (function_format_info *info, tree params,
! 		   vec<location_t> *arglocs,
! 		   bool (*comp_types) (tree, tree))
  {
    unsigned HOST_WIDE_INT arg_num;
    tree format_tree;
    /* Skip to format argument.  If the argument isn't available, there's
       no work for us to do; prototype checking will catch the problem.  */
    for (arg_num = 1; ; ++arg_num)
*************** check_format_info (function_format_info
*** 1558,1583 ****
    if (format_tree == 0)
      return;
  
!   res.number_non_literal = 0;
!   res.number_extra_args = 0;
!   res.extra_arg_loc = UNKNOWN_LOCATION;
!   res.number_dollar_extra_args = 0;
!   res.number_wide = 0;
!   res.number_non_char = 0;
!   res.number_empty = 0;
!   res.number_unterminated = 0;
!   res.number_other = 0;
!   res.format_string_loc = input_location;
  
!   format_ctx.res = &res;
!   format_ctx.info = info;
!   format_ctx.params = params;
!   format_ctx.arglocs = arglocs;
  
    check_function_arguments_recurse (check_format_arg, &format_ctx,
  				    format_tree, arg_num, OPT_Wformat_);
  
!   location_t loc = format_ctx.res->format_string_loc;
  
    if (res.number_non_literal > 0)
      {
--- 1596,1609 ----
    if (format_tree == 0)
      return;
  
!   format_check_results res (input_location);
  
!   format_check_context format_ctx (&res, info, params, arglocs, comp_types);
  
    check_function_arguments_recurse (check_format_arg, &format_ctx,
  				    format_tree, arg_num, OPT_Wformat_);
  
!   location_t loc = format_ctx.m_res->format_string_loc;
  
    if (res.number_non_literal > 0)
      {
*************** check_format_arg (void *ctx, tree format
*** 1659,1668 ****
  		  unsigned HOST_WIDE_INT arg_num)
  {
    format_check_context *format_ctx = (format_check_context *) ctx;
!   format_check_results *res = format_ctx->res;
!   function_format_info *info = format_ctx->info;
!   tree params = format_ctx->params;
!   vec<location_t> *arglocs = format_ctx->arglocs;
  
    int format_length;
    HOST_WIDE_INT offset;
--- 1685,1695 ----
  		  unsigned HOST_WIDE_INT arg_num)
  {
    format_check_context *format_ctx = (format_check_context *) ctx;
!   format_check_results *res = format_ctx->m_res;
!   function_format_info *info = format_ctx->m_info;
!   tree params = format_ctx->m_params;
!   vec<location_t> *arglocs = format_ctx->m_arglocs;
!   bool (*comp_types) (tree, tree) = format_ctx->m_comp_types;
  
    int format_length;
    HOST_WIDE_INT offset;
*************** check_format_arg (void *ctx, tree format
*** 1691,1697 ****
  
        if (params == 0)
  	res->number_other++;
!       else 
  	{
  	  if (res->number_extra_args == 0)
  	    res->extra_arg_loc = EXPR_LOC_OR_LOC (TREE_VALUE (params),
--- 1718,1724 ----
  
        if (params == 0)
  	res->number_other++;
!       else
  	{
  	  if (res->number_extra_args == 0)
  	    res->extra_arg_loc = EXPR_LOC_OR_LOC (TREE_VALUE (params),
*************** check_format_arg (void *ctx, tree format
*** 1732,1738 ****
      }
    res->format_string_loc = EXPR_LOC_OR_LOC (format_tree, input_location);
    format_tree = TREE_OPERAND (format_tree, 0);
!   if (format_types[info->format_type].flags 
        & (int) FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL)
      {
        bool objc_str = (info->format_type == gcc_objc_string_format_type);
--- 1759,1765 ----
      }
    res->format_string_loc = EXPR_LOC_OR_LOC (format_tree, input_location);
    format_tree = TREE_OPERAND (format_tree, 0);
!   if (format_types[info->format_type].flags
        & (int) FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL)
      {
        bool objc_str = (info->format_type == gcc_objc_string_format_type);
*************** check_format_arg (void *ctx, tree format
*** 1740,1746 ****
  	 a valid type.  */
        if (TREE_CODE (format_tree) != CONST_DECL
  	  || !((objc_str && objc_string_ref_type_p (TREE_TYPE (format_tree)))
! 		|| (*targetcm.string_object_ref_type_p) 
  				     ((const_tree) TREE_TYPE (format_tree))))
  	{
  	  res->number_non_literal++;
--- 1767,1773 ----
  	 a valid type.  */
        if (TREE_CODE (format_tree) != CONST_DECL
  	  || !((objc_str && objc_string_ref_type_p (TREE_TYPE (format_tree)))
! 		|| (*targetcm.string_object_ref_type_p)
  				     ((const_tree) TREE_TYPE (format_tree))))
  	{
  	  res->number_non_literal++;
*************** check_format_arg (void *ctx, tree format
*** 1854,1860 ****
    res->number_other++;
    object_allocator <format_wanted_type> fwt_pool ("format_wanted_type pool");
    check_format_info_main (res, info, format_chars, fmt_param_loc, format_tree,
! 			  format_length, params, arg_num, fwt_pool, arglocs);
  }
  
  /* Support class for argument_parser and check_format_info_main.
--- 1881,1888 ----
    res->number_other++;
    object_allocator <format_wanted_type> fwt_pool ("format_wanted_type pool");
    check_format_info_main (res, info, format_chars, fmt_param_loc, format_tree,
! 			  format_length, params, arg_num, fwt_pool, arglocs,
! 			  comp_types);
  }
  
  /* Support class for argument_parser and check_format_info_main.
*************** class argument_parser
*** 1921,1927 ****
  		   location_t format_string_loc, flag_chars_t &flag_chars,
  		   int &has_operand_number, tree first_fillin_param,
  		   object_allocator <format_wanted_type> &fwt_pool_,
! 		   vec<location_t> *arglocs);
  
    bool read_any_dollar ();
  
--- 1949,1956 ----
  		   location_t format_string_loc, flag_chars_t &flag_chars,
  		   int &has_operand_number, tree first_fillin_param,
  		   object_allocator <format_wanted_type> &fwt_pool_,
! 		   vec<location_t> *arglocs,
! 		   bool (*comp_types) (tree, tree));
  
    bool read_any_dollar ();
  
*************** class argument_parser
*** 2001,2006 ****
--- 2030,2036 ----
    format_wanted_type *first_wanted_type;
    format_wanted_type *last_wanted_type;
    vec<location_t> *arglocs;
+   bool (*m_comp_types) (tree, tree);
  };
  
  /* flag_chars_t's constructor.  */
*************** argument_parser (function_format_info *i
*** 2152,2158 ****
  		 int &has_operand_number_,
  		 tree first_fillin_param_,
  		 object_allocator <format_wanted_type> &fwt_pool_,
! 		 vec<location_t> *arglocs_)
  : info (info_),
    fki (&format_types[info->format_type]),
    flag_specs (fki->flag_specs),
--- 2182,2189 ----
  		 int &has_operand_number_,
  		 tree first_fillin_param_,
  		 object_allocator <format_wanted_type> &fwt_pool_,
! 		 vec<location_t> *arglocs_,
! 		 bool (*comp_types) (tree, tree))
  : info (info_),
    fki (&format_types[info->format_type]),
    flag_specs (fki->flag_specs),
*************** argument_parser (function_format_info *i
*** 2169,2175 ****
    first_fillin_param (first_fillin_param_),
    first_wanted_type (NULL),
    last_wanted_type (NULL),
!   arglocs (arglocs_)
  {
  }
  
--- 2200,2207 ----
    first_fillin_param (first_fillin_param_),
    first_wanted_type (NULL),
    last_wanted_type (NULL),
!   arglocs (arglocs_),
!   m_comp_types (comp_types)
  {
  }
  
*************** check_argument_type (const format_char_i
*** 2892,2898 ****
        ptrdiff_t offset_to_type_start = type_start - orig_format_chars;
        check_format_types (fmt_loc, first_wanted_type, fki,
  			  offset_to_type_start,
! 			  conversion_char, arglocs);
      }
  
    return true;
--- 2924,2930 ----
        ptrdiff_t offset_to_type_start = type_start - orig_format_chars;
        check_format_types (fmt_loc, first_wanted_type, fki,
  			  offset_to_type_start,
! 			  conversion_char, arglocs, m_comp_types);
      }
  
    return true;
*************** check_format_info_main (format_check_res
*** 3820,3826 ****
  			int format_length, tree params,
  			unsigned HOST_WIDE_INT arg_num,
  			object_allocator <format_wanted_type> &fwt_pool,
! 			vec<location_t> *arglocs)
  {
    const char * const orig_format_chars = format_chars;
    const tree first_fillin_param = params;
--- 3852,3859 ----
  			int format_length, tree params,
  			unsigned HOST_WIDE_INT arg_num,
  			object_allocator <format_wanted_type> &fwt_pool,
! 			vec<location_t> *arglocs,
! 			bool (*comp_types) (tree, tree))
  {
    const char * const orig_format_chars = format_chars;
    const tree first_fillin_param = params;
*************** check_format_info_main (format_check_res
*** 3887,3893 ****
        argument_parser arg_parser (info, format_chars, format_string_cst,
  				  orig_format_chars, format_string_loc,
  				  flag_chars, has_operand_number,
! 				  first_fillin_param, fwt_pool, arglocs);
  
        if (!arg_parser.read_any_dollar ())
  	return;
--- 3920,3927 ----
        argument_parser arg_parser (info, format_chars, format_string_cst,
  				  orig_format_chars, format_string_loc,
  				  flag_chars, has_operand_number,
! 				  first_fillin_param, fwt_pool, arglocs,
! 				  comp_types);
  
        if (!arg_parser.read_any_dollar ())
  	return;
*************** check_format_info_main (format_check_res
*** 4064,4069 ****
--- 4098,4125 ----
  			    OPT_Wformat_, "unterminated color directive");
  }
  
+ /* Special-case to support inheritance for %e.
+    Return true for the case where we have %e with a valid
+    pointer to a pp_element or pp_element subclass; false
+    otherwise.  */
+ 
+ static bool
+ handle_subclass_of_pp_element_p (format_wanted_type *types,
+ 				 bool (*comp_types) (tree, tree))
+ {
+   if (types->wanted_type != local_pp_element_ptr_node)
+     return false;
+ 
+   tree param_type = TREE_TYPE (types->param);
+   if (param_type == error_mark_node)
+     return false;
+ 
+   if (comp_types (types->wanted_type, param_type))
+     return true;
+ 
+   return false;
+ }
+ 
  /* Check the argument types from a single format conversion (possibly
     including width and precision arguments).
  
*************** check_format_types (const substring_loc
*** 4117,4123 ****
  		    format_wanted_type *types, const format_kind_info *fki,
  		    int offset_to_type_start,
  		    char conversion_char,
! 		    vec<location_t> *arglocs)
  {
    for (; types != 0; types = types->next)
      {
--- 4173,4180 ----
  		    format_wanted_type *types, const format_kind_info *fki,
  		    int offset_to_type_start,
  		    char conversion_char,
! 		    vec<location_t> *arglocs,
! 		    bool (*comp_types) (tree, tree))
  {
    for (; types != 0; types = types->next)
      {
*************** check_format_types (const substring_loc
*** 4139,4144 ****
--- 4196,4204 ----
        if (types->pointer_count == 0)
  	wanted_type = lang_hooks.types.type_promotes_to (wanted_type);
  
+       if (handle_subclass_of_pp_element_p (types, comp_types))
+ 	continue;
+ 
        wanted_type = TYPE_MAIN_VARIANT (wanted_type);
  
        cur_param = types->param;
*************** class range_label_for_format_type_mismat
*** 4682,4687 ****
--- 4742,4826 ----
    int m_pointer_count;
  };
  
+ /* Subclass of pp_element for text describing part of a format string.  */
+ 
+ class element_format_substring : public pp_element
+ {
+ public:
+   element_format_substring (const char *highlight_color,
+ 			    const char *prefix,
+ 			    int format_length,
+ 			    const char *format_start)
+   : m_highlight_color (highlight_color),
+     m_prefix (prefix),
+     m_format_length (format_length),
+     m_format_start (format_start)
+   {
+   }
+ 
+   void add_to_phase_2 (pp_markup::context &ctxt) final override
+   {
+     ctxt.begin_quote ();
+     ctxt.begin_highlight_color (m_highlight_color);
+     pp_string (&ctxt.m_pp, m_prefix);
+     pp_string_n (&ctxt.m_pp, m_format_start, m_format_length);
+     ctxt.end_highlight_color ();
+     ctxt.end_quote ();
+   }
+ 
+ private:
+   const char *m_highlight_color;
+   const char *m_prefix;
+   int m_format_length;
+   const char *m_format_start;
+ };
+ 
+ /* Subclass of pp_element for text describing an optional WANTED_TYPE_NAME
+    with a fallback TYPE, part of an expected type with some number of
+    indirections.  */
+ 
+ class element_expected_type_with_indirection
+   : public pp_markup::element_expected_type
+ {
+ public:
+   element_expected_type_with_indirection (tree wanted_type,
+ 					  const char *wanted_type_name,
+ 					  int pointer_count)
+   : pp_markup::element_expected_type (wanted_type),
+     m_wanted_type_name (wanted_type_name),
+     m_pointer_count (pointer_count)
+   {
+     // m_wanted_type_name can be nullptr
+   }
+ 
+   void add_to_phase_2 (pp_markup::context &ctxt) final override
+   {
+     indirection_suffix suffix (m_pointer_count);
+     char *indirection_buf = (char *) alloca (suffix.get_buffer_size ());
+     suffix.fill_buffer (indirection_buf);
+ 
+     ctxt.begin_quote ();
+     ctxt.begin_highlight_color (highlight_colors::expected);
+     if (m_wanted_type_name)
+       pp_string (&ctxt.m_pp, m_wanted_type_name);
+     else
+       {
+ 	/* Any trailing quotes should be printed within the quoted.  */
+ 	ctxt.m_quoted = false;
+ 	print_type (ctxt);
+ 	ctxt.m_quoted = true;
+       }
+     pp_string (&ctxt.m_pp, indirection_buf);
+     ctxt.end_highlight_color ();
+     ctxt.end_quote ();
+   }
+ 
+ private:
+   const char *m_wanted_type_name;
+   tree m_wanted_type;
+   int m_pointer_count;
+ };
+ 
  /* Give a warning about a format argument of different type from that expected.
     The range of the diagnostic is taken from WHOLE_FMT_LOC; the caret location
     is based on the location of the char at TYPE->offset_loc.
*************** format_type_warning (const substring_loc
*** 4742,4751 ****
  		  lang_hooks.decl_printable_name (TYPE_NAME (arg_type), 2)))
      arg_type = TYPE_MAIN_VARIANT (arg_type);
  
-   indirection_suffix suffix (pointer_count);
-   char *p = (char *) alloca (suffix.get_buffer_size ());
-   suffix.fill_buffer (p);
- 
    /* WHOLE_FMT_LOC has the caret at the end of the range.
       Set the caret to be at the offset from TYPE.  Subtract one
       from the offset for the same reason as in format_warning_at_char.  */
--- 4881,4886 ----
*************** format_type_warning (const substring_loc
*** 4763,4807 ****
  			       offset_to_type_start, conversion_char);
    format_string_diagnostic_t diag (fmt_loc, &fmt_label, param_loc, &param_label,
  				   corrected_substring);
!   if (wanted_type_name)
!     {
!       if (arg_type)
! 	diag.emit_warning
! 	  (OPT_Wformat_,
! 	   "%s %<%s%.*s%> expects argument of type %<%s%s%>, "
! 	   "but argument %d has type %qT",
! 	   gettext (kind_descriptions[kind]),
! 	   (kind == CF_KIND_FORMAT ? "%" : ""),
! 	   format_length, format_start,
! 	   wanted_type_name, p, arg_num, arg_type);
!       else
! 	diag.emit_warning
! 	  (OPT_Wformat_,
! 	   "%s %<%s%.*s%> expects a matching %<%s%s%> argument",
! 	   gettext (kind_descriptions[kind]),
! 	   (kind == CF_KIND_FORMAT ? "%" : ""),
! 	   format_length, format_start, wanted_type_name, p);
!     }
    else
!     {
!       if (arg_type)
! 	diag.emit_warning
! 	  (OPT_Wformat_,
! 	   "%s %<%s%.*s%> expects argument of type %<%T%s%>, "
! 	   "but argument %d has type %qT",
! 	   gettext (kind_descriptions[kind]),
! 	   (kind == CF_KIND_FORMAT ? "%" : ""),
! 	   format_length, format_start,
! 	   wanted_type, p, arg_num, arg_type);
!       else
! 	diag.emit_warning
! 	  (OPT_Wformat_,
! 	   "%s %<%s%.*s%> expects a matching %<%T%s%> argument",
! 	   gettext (kind_descriptions[kind]),
! 	   (kind == CF_KIND_FORMAT ? "%" : ""),
! 	   format_length, format_start, wanted_type, p);
!     }
! 
    free (corrected_substring);
  }
  
--- 4898,4923 ----
  			       offset_to_type_start, conversion_char);
    format_string_diagnostic_t diag (fmt_loc, &fmt_label, param_loc, &param_label,
  				   corrected_substring);
!   element_format_substring elem_format_substring
!     (format_string_diagnostic_t::highlight_color_format_string,
!      (kind == CF_KIND_FORMAT ? "%" : ""),
!      format_length, format_start);
!   pp_markup::element_actual_type elem_actual_param_type (arg_type);
!   element_expected_type_with_indirection
!     elem_expected_type (wanted_type, wanted_type_name, pointer_count);
!   if (arg_type)
!     diag.emit_warning (OPT_Wformat_,
! 		       "%s %e expects argument of type %e, "
! 		       "but argument %d has type %e",
! 		       gettext (kind_descriptions[kind]),
! 		       &elem_format_substring, &elem_expected_type,
! 		       arg_num, &elem_actual_param_type);
    else
!     diag.emit_warning (OPT_Wformat_,
! 		       "%s %e expects a matching %e argument",
! 		       gettext (kind_descriptions[kind]),
! 		       &elem_format_substring,
! 		       &elem_expected_type);
    free (corrected_substring);
  }
  
*************** init_dynamic_diag_info (void)
*** 5100,5105 ****
--- 5216,5229 ----
        || local_event_ptr_node == void_type_node)
      local_event_ptr_node = get_named_type ("diagnostic_event_id_t");
  
+   /* Similar to the above but for pp_element*.  */
+   if (!local_pp_element_ptr_node
+       || local_pp_element_ptr_node == void_type_node)
+     {
+       if (tree pp_element_node = get_named_type ("pp_element"))
+ 	local_pp_element_ptr_node = build_pointer_type (pp_element_node);
+     }
+ 
    /* All the GCC diag formats use the same length specs.  */
    dynamic_format_types[gcc_diag_format_type].length_char_specs =
      dynamic_format_types[gcc_tdiag_format_type].length_char_specs =
*************** test_type_mismatch_range_labels ()
*** 5450,5467 ****
  						  integer_type_node, 1);
    range_label_for_type_mismatch param_label (integer_type_node,
  					     char_type_node);
!   gcc_rich_location richloc (fmt, &fmt_label);
    richloc.add_range (param, SHOW_RANGE_WITHOUT_CARET, &param_label);
  
    test_diagnostic_context dc;
!   diagnostic_show_locus (&dc, &richloc, DK_ERROR);
    if (c_dialect_cxx ())
      /* "char*", without a space.  */
      ASSERT_STREQ ("   printf (\"msg: %i\\n\", msg);\n"
  		  "                 ~^     ~~~\n"
  		  "                  |     |\n"
  		  "                  char* int\n",
! 		  pp_formatted_text (dc.printer));
    else
      /* "char *", with a space.  */
      ASSERT_STREQ ("   printf (\"msg: %i\\n\", msg);\n"
--- 5574,5593 ----
  						  integer_type_node, 1);
    range_label_for_type_mismatch param_label (integer_type_node,
  					     char_type_node);
!   gcc_rich_location richloc (fmt, &fmt_label, nullptr);
    richloc.add_range (param, SHOW_RANGE_WITHOUT_CARET, &param_label);
  
    test_diagnostic_context dc;
!   diagnostic_show_locus (&dc,
! 			 dc.m_source_printing,
! 			 &richloc, DK_ERROR, dc.get_reference_printer ());
    if (c_dialect_cxx ())
      /* "char*", without a space.  */
      ASSERT_STREQ ("   printf (\"msg: %i\\n\", msg);\n"
  		  "                 ~^     ~~~\n"
  		  "                  |     |\n"
  		  "                  char* int\n",
! 		  pp_formatted_text (dc.get_reference_printer ()));
    else
      /* "char *", with a space.  */
      ASSERT_STREQ ("   printf (\"msg: %i\\n\", msg);\n"
*************** test_type_mismatch_range_labels ()
*** 5469,5475 ****
  		  "                  |     |\n"
  		  "                  |     int\n"
  		  "                  char *\n",
! 		  pp_formatted_text (dc.printer));
  }
  
  /* Run all of the selftests within this file.  */
--- 5595,5601 ----
  		  "                  |     |\n"
  		  "                  |     int\n"
  		  "                  char *\n",
! 		  pp_formatted_text (dc.get_reference_printer ()));
  }
  
  /* Run all of the selftests within this file.  */
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-format.h gcc-15.1.0/gcc/c-family/c-format.h
*** gcc-14.2.0/gcc/c-family/c-format.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-format.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct format_kind_info
*** 317,322 ****
--- 317,323 ----
  #define T89_G   { STD_C89, NULL, &local_gimple_ptr_node }
  #define T_CGRAPH_NODE   { STD_C89, NULL, &local_cgraph_node_ptr_node }
  #define T_EVENT_PTR    { STD_C89, NULL, &local_event_ptr_node }
+ #define T_PP_ELEMENT_PTR    { STD_C89, NULL, &local_pp_element_ptr_node }
  #define T89_T   { STD_C89, NULL, &local_tree_type_node }
  #define T89_V	{ STD_C89, NULL, T_V }
  #define T_W	&wchar_type_node
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-gimplify.cc gcc-15.1.0/gcc/c-family/c-gimplify.cc
*** gcc-14.2.0/gcc/c-family/c-gimplify.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-gimplify.cc	Fri Apr 25 08:18:00 2025
***************
*** 2,8 ****
     by the C-based front ends.  The structure of gimplified, or
     language-independent, trees is dictated by the grammar described in this
     file.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Lowering of expressions contributed by Sebastian Pop <s.pop@laposte.net>
     Re-written to support lowering of whole function trees, documentation
     and miscellaneous cleanups by Diego Novillo <dnovillo@redhat.com>
--- 2,8 ----
     by the C-based front ends.  The structure of gimplified, or
     language-independent, trees is dictated by the grammar described in this
     file.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
     Lowering of expressions contributed by Sebastian Pop <s.pop@laposte.net>
     Re-written to support lowering of whole function trees, documentation
     and miscellaneous cleanups by Diego Novillo <dnovillo@redhat.com>
*************** along with GCC; see the file COPYING3.
*** 43,48 ****
--- 43,49 ----
  #include "context.h"
  #include "tree-pass.h"
  #include "internal-fn.h"
+ #include "omp-general.h"
  
  /*  The gimplification pass converts the language-dependent trees
      (ld-trees) emitted by the parser into language-independent trees
*************** enum bc_t { bc_break = 0, bc_continue =
*** 133,138 ****
--- 134,143 ----
     linked through TREE_CHAIN.  */
  static tree bc_label[2];
  
+ /* Hash map from loop/switch names (identified by LABEL_DECL) to
+    corresponding break and (if any) continue labels.  */
+ static bc_hash_map_t *bc_hash_map;
+ 
  /* Begin a scope which can be exited by a break or continue statement.  BC
     indicates which.
  
*************** finish_bc_block (tree *block, enum bc_t
*** 172,177 ****
--- 177,202 ----
    DECL_CHAIN (label) = NULL_TREE;
  }
  
+ /* For named loop or switch with NAME, remember corresponding break
+    label BLAB and continue label CLAB.  */
+ 
+ static void
+ note_named_bc (tree name, tree blab, tree clab)
+ {
+   if (bc_hash_map == NULL)
+     bc_hash_map = new bc_hash_map_t (32);
+   bc_hash_map->put (name, std::make_pair (blab, clab));
+ }
+ 
+ /* Remove NAME from the map after processing body of the loop or
+    switch.  */
+ 
+ static void
+ release_named_bc (tree name)
+ {
+   bc_hash_map->remove (name);
+ }
+ 
  /* Allow saving and restoring break/continue state.  */
  
  void
*************** save_bc_state (bc_state_t *state)
*** 179,186 ****
--- 204,213 ----
  {
    state->bc_label[bc_break] = bc_label[bc_break];
    state->bc_label[bc_continue] = bc_label[bc_continue];
+   state->bc_hash_map = bc_hash_map;
    bc_label[bc_break] = NULL_TREE;
    bc_label[bc_continue] = NULL_TREE;
+   bc_hash_map = NULL;
  }
  
  void
*************** restore_bc_state (bc_state_t *state)
*** 188,195 ****
--- 215,224 ----
  {
    gcc_assert (bc_label[bc_break] == NULL);
    gcc_assert (bc_label[bc_continue] == NULL);
+   gcc_assert (bc_hash_map == NULL);
    bc_label[bc_break] = state->bc_label[bc_break];
    bc_label[bc_continue] = state->bc_label[bc_continue];
+   bc_hash_map = state->bc_hash_map;
  }
  
  /* Get the LABEL_EXPR to represent a break or continue statement
*************** expr_loc_or_loc (const_tree expr, locati
*** 225,257 ****
     controlled by the loop.  INCR is the increment expression of a for-loop,
     or NULL_TREE.  COND_IS_FIRST indicates whether the condition is
     evaluated before the loop body as in while and for loops, or after the
!    loop body as in do-while loops.  */
  
  static void
  genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
! 		   tree incr, bool cond_is_first, int *walk_subtrees,
! 		   void *data, walk_tree_fn func, walk_tree_lh lh)
  {
    tree blab, clab;
    tree entry = NULL, exit = NULL, t;
!   tree stmt_list = NULL;
    location_t cond_locus = expr_loc_or_loc (cond, start_locus);
    location_t incr_locus = expr_loc_or_loc (incr, start_locus);
  
    protected_set_expr_location_if_unset (incr, start_locus);
  
    walk_tree_1 (&cond, func, data, NULL, lh);
    walk_tree_1 (&incr, func, data, NULL, lh);
  
    blab = begin_bc_block (bc_break, start_locus);
    clab = begin_bc_block (bc_continue, start_locus);
  
    walk_tree_1 (&body, func, data, NULL, lh);
    *walk_subtrees = 0;
  
!   /* If condition is zero don't generate a loop construct.  */
!   if (cond && integer_zerop (cond))
      {
        if (cond_is_first)
  	{
  	  t = build1_loc (start_locus, GOTO_EXPR, void_type_node,
--- 254,345 ----
     controlled by the loop.  INCR is the increment expression of a for-loop,
     or NULL_TREE.  COND_IS_FIRST indicates whether the condition is
     evaluated before the loop body as in while and for loops, or after the
!    loop body as in do-while loops.  COND_PREP and COND_CLEANUP are used
!    for C++ for/while loops with variable declaration as condition.  COND_PREP
!    is a BIND_EXPR with the declaration and initialization of the condition
!    variable, into which COND, BODY, continue label if needed and INCR if
!    non-NULL should be appended, and COND_CLEANUP is number of nested
!    CLEANUP_STMT -> TRY_FINALLY_EXPR statements at the end.  If non-NULL,
!    COND, BODY, continue label if needed and INCR if non-NULL should be
!    appended to the body of the COND_CLEANUP's nested TRY_FINALLY_EXPR.  */
  
  static void
  genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
! 		   tree incr, tree name, tree cond_prep, tree cond_cleanup,
! 		   bool cond_is_first, int *walk_subtrees, void *data,
! 		   walk_tree_fn func, walk_tree_lh lh)
  {
    tree blab, clab;
    tree entry = NULL, exit = NULL, t;
!   tree stmt_list = NULL, outer_stmt_list = NULL_TREE, *stmt_list_p = NULL;
    location_t cond_locus = expr_loc_or_loc (cond, start_locus);
    location_t incr_locus = expr_loc_or_loc (incr, start_locus);
  
    protected_set_expr_location_if_unset (incr, start_locus);
  
+   walk_tree_1 (&cond_prep, func, data, NULL, lh);
    walk_tree_1 (&cond, func, data, NULL, lh);
    walk_tree_1 (&incr, func, data, NULL, lh);
  
    blab = begin_bc_block (bc_break, start_locus);
    clab = begin_bc_block (bc_continue, start_locus);
+   if (name)
+     note_named_bc (name, blab, clab);
  
    walk_tree_1 (&body, func, data, NULL, lh);
    *walk_subtrees = 0;
  
!   if (name)
!     release_named_bc (name);
! 
!   if (cond_prep)
!     {
!       /* The C++ cases of
! 	 while (A x = 42) body;
! 	 for (; A x = 42; expr) body;
! 	 This should be expanded into:
! 
! 	 top:
! 	 COND_PREP
! 
! 	 with either
! 
! 	 if (COND); else break;
! 	 BODY;
! 	 cont:
! 	 EXPR;
! 	 goto top;
! 
! 	 appended into COND_PREP body or body of some TRY_FINALLY_EXPRs
! 	 at the end of COND_PREP.  */
!       gcc_assert (cond_is_first && TREE_CODE (cond_prep) == BIND_EXPR);
!       tree top = build1 (LABEL_EXPR, void_type_node,
! 			 create_artificial_label (start_locus));
!       exit = build1 (GOTO_EXPR, void_type_node, LABEL_EXPR_LABEL (top));
!       append_to_statement_list (top, &outer_stmt_list);
!       append_to_statement_list (cond_prep, &outer_stmt_list);
!       stmt_list_p = &BIND_EXPR_BODY (cond_prep);
!       if (cond_cleanup)
! 	for (unsigned depth = tree_to_uhwi (cond_cleanup); depth; --depth)
! 	  {
! 	    t = tsi_stmt (tsi_last (*stmt_list_p));
! 	    gcc_assert (TREE_CODE (t) == TRY_FINALLY_EXPR);
! 	    stmt_list_p = &TREE_OPERAND (t, 0);
! 	  }
!       stmt_list = *stmt_list_p;
!       *stmt_list_p = NULL_TREE;
!       tree after_cond = create_artificial_label (cond_locus);
!       tree goto_after_cond = build1 (GOTO_EXPR, void_type_node, after_cond);
!       t = build1 (GOTO_EXPR, void_type_node, get_bc_label (bc_break));
!       t = fold_build3_loc (cond_locus, COND_EXPR, void_type_node, cond,
! 			   goto_after_cond, t);
!       append_to_statement_list (t, &stmt_list);
!       t = build1 (LABEL_EXPR, void_type_node, after_cond);
!       append_to_statement_list (t, &stmt_list);
!     }
!   else if (cond && integer_zerop (cond))
      {
+       /* If condition is zero don't generate a loop construct.  */
        if (cond_is_first)
  	{
  	  t = build1_loc (start_locus, GOTO_EXPR, void_type_node,
*************** genericize_c_loop (tree *stmt_p, locatio
*** 348,353 ****
--- 436,446 ----
        append_to_statement_list (d, &stmt_list);
      }
    append_to_statement_list (exit, &stmt_list);
+   if (stmt_list_p)
+     {
+       *stmt_list_p = stmt_list;
+       stmt_list = outer_stmt_list;
+     }
    finish_bc_block (&stmt_list, bc_break, blab);
    if (!stmt_list)
      stmt_list = build_empty_stmt (start_locus);
*************** genericize_for_stmt (tree *stmt_p, int *
*** 373,380 ****
      }
  
    genericize_c_loop (&loop, EXPR_LOCATION (stmt), FOR_COND (stmt),
! 		     FOR_BODY (stmt), FOR_EXPR (stmt), 1, walk_subtrees,
! 		     data, func, lh);
    append_to_statement_list (loop, &expr);
    if (expr == NULL_TREE)
      expr = loop;
--- 466,474 ----
      }
  
    genericize_c_loop (&loop, EXPR_LOCATION (stmt), FOR_COND (stmt),
! 		     FOR_BODY (stmt), FOR_EXPR (stmt), FOR_NAME (stmt),
! 		     FOR_COND_PREP (stmt), FOR_COND_CLEANUP (stmt), 1,
! 		     walk_subtrees, data, func, lh);
    append_to_statement_list (loop, &expr);
    if (expr == NULL_TREE)
      expr = loop;
*************** genericize_while_stmt (tree *stmt_p, int
*** 389,396 ****
  {
    tree stmt = *stmt_p;
    genericize_c_loop (stmt_p, EXPR_LOCATION (stmt), WHILE_COND (stmt),
! 		     WHILE_BODY (stmt), NULL_TREE, 1, walk_subtrees,
! 		     data, func, lh);
  }
  
  /* Genericize a DO_STMT node *STMT_P.  */
--- 483,491 ----
  {
    tree stmt = *stmt_p;
    genericize_c_loop (stmt_p, EXPR_LOCATION (stmt), WHILE_COND (stmt),
! 		     WHILE_BODY (stmt), NULL_TREE, WHILE_NAME (stmt),
! 		     WHILE_COND_PREP (stmt), WHILE_COND_CLEANUP (stmt), 1,
! 		     walk_subtrees, data, func, lh);
  }
  
  /* Genericize a DO_STMT node *STMT_P.  */
*************** genericize_do_stmt (tree *stmt_p, int *w
*** 401,408 ****
  {
    tree stmt = *stmt_p;
    genericize_c_loop (stmt_p, EXPR_LOCATION (stmt), DO_COND (stmt),
! 		     DO_BODY (stmt), NULL_TREE, 0, walk_subtrees,
! 		     data, func, lh);
  }
  
  /* Genericize a SWITCH_STMT node *STMT_P by turning it into a SWITCH_EXPR.  */
--- 496,503 ----
  {
    tree stmt = *stmt_p;
    genericize_c_loop (stmt_p, EXPR_LOCATION (stmt), DO_COND (stmt),
! 		     DO_BODY (stmt), NULL_TREE, DO_NAME (stmt),
! 		     NULL_TREE, NULL_TREE, 0, walk_subtrees, data, func, lh);
  }
  
  /* Genericize a SWITCH_STMT node *STMT_P by turning it into a SWITCH_EXPR.  */
*************** genericize_switch_stmt (tree *stmt_p, in
*** 412,418 ****
  			walk_tree_fn func, walk_tree_lh lh)
  {
    tree stmt = *stmt_p;
!   tree break_block, body, cond, type;
    location_t stmt_locus = EXPR_LOCATION (stmt);
  
    body = SWITCH_STMT_BODY (stmt);
--- 507,513 ----
  			walk_tree_fn func, walk_tree_lh lh)
  {
    tree stmt = *stmt_p;
!   tree blab, body, cond, type;
    location_t stmt_locus = EXPR_LOCATION (stmt);
  
    body = SWITCH_STMT_BODY (stmt);
*************** genericize_switch_stmt (tree *stmt_p, in
*** 423,441 ****
  
    walk_tree_1 (&cond, func, data, NULL, lh);
  
!   break_block = begin_bc_block (bc_break, stmt_locus);
  
    walk_tree_1 (&body, func, data, NULL, lh);
    walk_tree_1 (&type, func, data, NULL, lh);
    *walk_subtrees = 0;
  
!   if (TREE_USED (break_block))
!     SWITCH_BREAK_LABEL_P (break_block) = 1;
!   finish_bc_block (&body, bc_break, break_block);
    *stmt_p = build2_loc (stmt_locus, SWITCH_EXPR, type, cond, body);
    SWITCH_ALL_CASES_P (*stmt_p) = SWITCH_STMT_ALL_CASES_P (stmt);
    gcc_checking_assert (!SWITCH_STMT_NO_BREAK_P (stmt)
! 		       || !TREE_USED (break_block));
  }
  
  /* Genericize a CONTINUE_STMT node *STMT_P.  */
--- 518,542 ----
  
    walk_tree_1 (&cond, func, data, NULL, lh);
  
!   blab = begin_bc_block (bc_break, stmt_locus);
!   if (SWITCH_STMT_NAME (stmt))
!     note_named_bc (SWITCH_STMT_NAME (stmt), blab, NULL_TREE);
  
    walk_tree_1 (&body, func, data, NULL, lh);
+ 
+   if (SWITCH_STMT_NAME (stmt))
+     release_named_bc (SWITCH_STMT_NAME (stmt));
+ 
    walk_tree_1 (&type, func, data, NULL, lh);
    *walk_subtrees = 0;
  
!   if (TREE_USED (blab))
!     SWITCH_BREAK_LABEL_P (blab) = 1;
!   finish_bc_block (&body, bc_break, blab);
    *stmt_p = build2_loc (stmt_locus, SWITCH_EXPR, type, cond, body);
    SWITCH_ALL_CASES_P (*stmt_p) = SWITCH_STMT_ALL_CASES_P (stmt);
    gcc_checking_assert (!SWITCH_STMT_NO_BREAK_P (stmt)
! 		       || !TREE_USED (blab));
  }
  
  /* Genericize a CONTINUE_STMT node *STMT_P.  */
*************** genericize_continue_stmt (tree *stmt_p)
*** 445,451 ****
  {
    tree stmt_list = NULL;
    tree pred = build_predict_expr (PRED_CONTINUE, NOT_TAKEN);
!   tree label = get_bc_label (bc_continue);
    location_t location = EXPR_LOCATION (*stmt_p);
    tree jump = build1_loc (location, GOTO_EXPR, void_type_node, label);
    append_to_statement_list_force (pred, &stmt_list);
--- 546,561 ----
  {
    tree stmt_list = NULL;
    tree pred = build_predict_expr (PRED_CONTINUE, NOT_TAKEN);
!   tree label;
!   if (CONTINUE_NAME (*stmt_p))
!     {
!       tree_pair *slot = bc_hash_map->get (CONTINUE_NAME (*stmt_p));
!       gcc_checking_assert (slot);
!       label = slot->second;
!       TREE_USED (label) = 1;
!     }
!   else
!     label = get_bc_label (bc_continue);
    location_t location = EXPR_LOCATION (*stmt_p);
    tree jump = build1_loc (location, GOTO_EXPR, void_type_node, label);
    append_to_statement_list_force (pred, &stmt_list);
*************** genericize_continue_stmt (tree *stmt_p)
*** 458,464 ****
  static void
  genericize_break_stmt (tree *stmt_p)
  {
!   tree label = get_bc_label (bc_break);
    location_t location = EXPR_LOCATION (*stmt_p);
    *stmt_p = build1_loc (location, GOTO_EXPR, void_type_node, label);
  }
--- 568,583 ----
  static void
  genericize_break_stmt (tree *stmt_p)
  {
!   tree label;
!   if (BREAK_NAME (*stmt_p))
!     {
!       tree_pair *slot = bc_hash_map->get (BREAK_NAME (*stmt_p));
!       gcc_checking_assert (slot);
!       label = slot->first;
!       TREE_USED (label) = 1;
!     }
!   else
!     label = get_bc_label (bc_break);
    location_t location = EXPR_LOCATION (*stmt_p);
    *stmt_p = build1_loc (location, GOTO_EXPR, void_type_node, label);
  }
*************** genericize_omp_for_stmt (tree *stmt_p, i
*** 485,490 ****
--- 604,630 ----
    finish_bc_block (&OMP_FOR_BODY (stmt), bc_continue, clab);
  }
  
+ /* Genericize a OMP_METADIRECTIVE node *STMT_P.  */
+ 
+ static void
+ genericize_omp_metadirective_stmt (tree *stmt_p, int *walk_subtrees,
+ 				   void *data, walk_tree_fn func,
+ 				   walk_tree_lh lh)
+ {
+   tree stmt = *stmt_p;
+ 
+   for (tree variant = OMP_METADIRECTIVE_VARIANTS (stmt);
+        variant != NULL_TREE;
+        variant = TREE_CHAIN (variant))
+     {
+       walk_tree_1 (&OMP_METADIRECTIVE_VARIANT_DIRECTIVE (variant),
+ 		   func, data, NULL, lh);
+       walk_tree_1 (&OMP_METADIRECTIVE_VARIANT_BODY (variant),
+ 		   func, data, NULL, lh);
+     }
+ 
+   *walk_subtrees = 0;
+ }
  
  /* Lower structured control flow tree nodes, such as loops.  The
     STMT_P, WALK_SUBTREES, and DATA arguments are as for the walk_tree_fn
*************** c_genericize_control_stmt (tree *stmt_p,
*** 529,538 ****
--- 669,685 ----
      case OMP_DISTRIBUTE:
      case OMP_LOOP:
      case OMP_TASKLOOP:
+     case OMP_TILE:
+     case OMP_UNROLL:
      case OACC_LOOP:
        genericize_omp_for_stmt (stmt_p, walk_subtrees, data, func, lh);
        break;
  
+     case OMP_METADIRECTIVE:
+       genericize_omp_metadirective_stmt (stmt_p, walk_subtrees, data, func,
+ 					 lh);
+       break;
+ 
      case STATEMENT_LIST:
        if (TREE_SIDE_EFFECTS (stmt))
  	{
*************** c_genericize_control_stmt (tree *stmt_p,
*** 580,585 ****
--- 727,744 ----
  static tree
  c_genericize_control_r (tree *stmt_p, int *walk_subtrees, void *data)
  {
+   tree stmt = *stmt_p;
+   /* Mark stores to parts of complex automatic non-addressable
+      variables as DECL_NOT_GIMPLE_REG_P for -O0.  This can't be
+      done during gimplification.  See PR119120.  */
+   if (TREE_CODE (stmt) == MODIFY_EXPR
+       && (TREE_CODE (TREE_OPERAND (stmt, 0)) == REALPART_EXPR
+ 	  || TREE_CODE (TREE_OPERAND (stmt, 0)) == IMAGPART_EXPR)
+       && !optimize
+       && DECL_P (TREE_OPERAND (TREE_OPERAND (stmt, 0), 0))
+       && is_gimple_reg (TREE_OPERAND (TREE_OPERAND (stmt, 0), 0)))
+     DECL_NOT_GIMPLE_REG_P (TREE_OPERAND (TREE_OPERAND (stmt, 0), 0)) = 1;
+ 
    c_genericize_control_stmt (stmt_p, walk_subtrees, data,
  			     c_genericize_control_r, NULL);
    return NULL;
*************** c_genericize (tree fndecl)
*** 613,618 ****
--- 772,779 ----
        hash_set<tree> pset;
        walk_tree (&DECL_SAVED_TREE (fndecl), c_genericize_control_r, &pset,
  		 &pset);
+       delete bc_hash_map;
+       bc_hash_map = NULL;
        restore_bc_state (&save_state);
        pop_cfun ();
      }
*************** c_genericize (tree fndecl)
*** 639,645 ****
  	dump_node (DECL_SAVED_TREE (fndecl),
  		   TDF_SLIM | local_dump_flags, dump_orig);
        else
! 	print_c_tree (dump_orig, DECL_SAVED_TREE (fndecl));
        fprintf (dump_orig, "\n");
      }
  
--- 800,806 ----
  	dump_node (DECL_SAVED_TREE (fndecl),
  		   TDF_SLIM | local_dump_flags, dump_orig);
        else
! 	print_c_tree (dump_orig, DECL_SAVED_TREE (fndecl), local_dump_flags);
        fprintf (dump_orig, "\n");
      }
  
*************** c_gimplify_expr (tree *expr_p, gimple_se
*** 744,750 ****
  	   We should get rid of this conversion when we have a proper
  	   type demotion/promotion pass.  */
  	tree *op1_p = &TREE_OPERAND (*expr_p, 1);
! 	if (!VECTOR_TYPE_P (TREE_TYPE (*op1_p))
  	    && !types_compatible_p (TYPE_MAIN_VARIANT (TREE_TYPE (*op1_p)),
  				    unsigned_type_node)
  	    && !types_compatible_p (TYPE_MAIN_VARIANT (TREE_TYPE (*op1_p)),
--- 905,912 ----
  	   We should get rid of this conversion when we have a proper
  	   type demotion/promotion pass.  */
  	tree *op1_p = &TREE_OPERAND (*expr_p, 1);
! 	if (!error_operand_p (*op1_p)
! 	    && !VECTOR_TYPE_P (TREE_TYPE (*op1_p))
  	    && !types_compatible_p (TYPE_MAIN_VARIANT (TREE_TYPE (*op1_p)),
  				    unsigned_type_node)
  	    && !types_compatible_p (TYPE_MAIN_VARIANT (TREE_TYPE (*op1_p)),
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-indentation.cc gcc-15.1.0/gcc/c-family/c-indentation.cc
*** gcc-14.2.0/gcc/c-family/c-indentation.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-indentation.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** should_warn_for_misleading_indentation (
*** 321,331 ****
  		  "%<-Wmisleading-indentation%> is disabled from this point"
  		  " onwards, since column-tracking was disabled due to"
  		  " the size of the code/headers");
- 	  if (!flag_large_source_files)
- 	    inform (guard_loc,
- 		    "adding %<-flarge-source-files%> will allow for more" 
- 		    " column-tracking support, at the expense of compilation"
- 		    " time and memory");
  	}
        return false;
      }
--- 321,326 ----
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-indentation.h gcc-15.1.0/gcc/c-family/c-indentation.h
*** gcc-14.2.0/gcc/c-family/c-indentation.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-indentation.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-lex.cc gcc-15.1.0/gcc/c-family/c-lex.cc
*** gcc-14.2.0/gcc/c-family/c-lex.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-lex.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Mainly the interface between cpplib and the C front ends.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Mainly the interface between cpplib and the C front ends.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static tree lex_charconst (const cpp_tok
*** 54,63 ****
  static void update_header_times (const char *);
  static int dump_one_header (splay_tree_node, void *);
  static void cb_line_change (cpp_reader *, const cpp_token *, int);
! static void cb_ident (cpp_reader *, unsigned int, const cpp_string *);
! static void cb_def_pragma (cpp_reader *, unsigned int);
! static void cb_define (cpp_reader *, unsigned int, cpp_hashnode *);
! static void cb_undef (cpp_reader *, unsigned int, cpp_hashnode *);
  
  void
  init_c_lex (void)
--- 54,63 ----
  static void update_header_times (const char *);
  static int dump_one_header (splay_tree_node, void *);
  static void cb_line_change (cpp_reader *, const cpp_token *, int);
! static void cb_ident (cpp_reader *, location_t, const cpp_string *);
! static void cb_def_pragma (cpp_reader *, location_t);
! static void cb_define (cpp_reader *, location_t, cpp_hashnode *);
! static void cb_undef (cpp_reader *, location_t, cpp_hashnode *);
  
  void
  init_c_lex (void)
*************** dump_time_statistics (void)
*** 164,170 ****
  
  static void
  cb_ident (cpp_reader * ARG_UNUSED (pfile),
! 	  unsigned int ARG_UNUSED (line),
  	  const cpp_string * ARG_UNUSED (str))
  {
    if (!flag_no_ident)
--- 164,170 ----
  
  static void
  cb_ident (cpp_reader * ARG_UNUSED (pfile),
! 	  location_t ARG_UNUSED (line),
  	  const cpp_string * ARG_UNUSED (str))
  {
    if (!flag_no_ident)
*************** c_common_has_attribute (cpp_reader *pfil
*** 342,348 ****
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing '(' after \"__has_attribute\"");
        return 0;
      }
    token = get_token_no_padding (pfile);
--- 342,348 ----
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing %<(%> after %<__has_attribute%>");
        return 0;
      }
    token = get_token_no_padding (pfile);
*************** c_common_has_attribute (cpp_reader *pfil
*** 445,451 ****
  		  || is_attribute_p ("maybe_unused", attr_name)
  		  || is_attribute_p ("nodiscard", attr_name)
  		  || is_attribute_p ("noreturn", attr_name)
! 		  || is_attribute_p ("_Noreturn", attr_name))
  		result = 202311;
  	    }
  	  if (result)
--- 445,453 ----
  		  || is_attribute_p ("maybe_unused", attr_name)
  		  || is_attribute_p ("nodiscard", attr_name)
  		  || is_attribute_p ("noreturn", attr_name)
! 		  || is_attribute_p ("_Noreturn", attr_name)
! 		  || is_attribute_p ("reproducible", attr_name)
! 		  || is_attribute_p ("unsequenced", attr_name))
  		result = 202311;
  	    }
  	  if (result)
*************** c_common_has_attribute (cpp_reader *pfil
*** 462,474 ****
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro \"__has_attribute\" requires an identifier");
        return 0;
      }
  
    if (get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN)
      cpp_error (pfile, CPP_DL_ERROR,
! 	       "missing ')' after \"__has_attribute\"");
  
    return result;
  }
--- 464,476 ----
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro %<__has_attribute%> requires an identifier");
        return 0;
      }
  
    if (get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN)
      cpp_error (pfile, CPP_DL_ERROR,
! 	       "missing %<)%> after %<__has_attribute%>");
  
    return result;
  }
*************** c_common_lex_availability_macro (cpp_rea
*** 482,488 ****
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing '(' after \"__has_%s\"", builtin);
        return 0;
      }
  
--- 484,490 ----
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing %<(%> after %<__has_%s%>", builtin);
        return 0;
      }
  
*************** c_common_lex_availability_macro (cpp_rea
*** 495,508 ****
        if (token->type != CPP_CLOSE_PAREN)
  	{
  	  cpp_error (pfile, CPP_DL_ERROR,
! 		     "expected ')' after \"%s\"", name);
  	  name = "";
  	}
      }
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro \"__has_%s\" requires an identifier", builtin);
        if (token->type == CPP_CLOSE_PAREN)
  	return 0;
      }
--- 497,510 ----
        if (token->type != CPP_CLOSE_PAREN)
  	{
  	  cpp_error (pfile, CPP_DL_ERROR,
! 		     "expected %<)%> after %qs", name);
  	  name = "";
  	}
      }
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro %<__has_%s%> requires an identifier", builtin);
        if (token->type == CPP_CLOSE_PAREN)
  	return 0;
      }
*************** c_lex_with_flags (tree *value, location_
*** 781,786 ****
--- 783,830 ----
        *value = build_string (tok->val.str.len, (const char *)tok->val.str.text);
        break;
  
+     case CPP_EMBED:
+       *value = make_node (RAW_DATA_CST);
+       TREE_TYPE (*value) = integer_type_node;
+       RAW_DATA_LENGTH (*value) = tok->val.str.len;
+       if (pch_file)
+ 	{
+ 	  /* When writing PCH headers, copy the data over, such that
+ 	     the owner is a STRING_CST.  */
+ 	  int off = 0;
+ 	  if (tok->val.str.len <= INT_MAX - 2)
+ 	    /* See below.  */
+ 	    off = 1;
+ 	  tree owner = build_string (tok->val.str.len + 2 * off,
+ 				     (const char *) tok->val.str.text - off);
+ 	  TREE_TYPE (owner) = build_array_type_nelts (unsigned_char_type_node,
+ 						      tok->val.str.len);
+ 	  RAW_DATA_OWNER (*value) = owner;
+ 	  RAW_DATA_POINTER (*value) = TREE_STRING_POINTER (owner) + off;
+ 	}
+       else
+ 	{
+ 	  /* Otherwise add another dummy RAW_DATA_CST as owner which
+ 	     indicates the data is owned by libcpp.  */
+ 	  RAW_DATA_POINTER (*value) = (const char *) tok->val.str.text;
+ 	  tree owner = make_node (RAW_DATA_CST);
+ 	  TREE_TYPE (owner) = integer_type_node;
+ 	  RAW_DATA_LENGTH (owner) = tok->val.str.len;
+ 	  RAW_DATA_POINTER (owner) = (const char *) tok->val.str.text;
+ 	  if (tok->val.str.len <= INT_MAX - 2)
+ 	    {
+ 	      /* The preprocessor surrounds at least smaller CPP_EMBEDs
+ 		 in between CPP_NUMBER CPP_COMMA before and
+ 		 CPP_COMMA CPP_NUMBER after, so the actual libcpp buffer
+ 		 holds those 2 extra bytes around it.  Don't do that if
+ 		 CPP_EMBED is at the maximum ~ 2GB size.  */
+ 	      RAW_DATA_LENGTH (owner) += 2;
+ 	      RAW_DATA_POINTER (owner)--;
+ 	    }
+ 	  RAW_DATA_OWNER (*value) = owner;
+ 	}
+       break;
+ 
        /* This token should not be visible outside cpplib.  */
      case CPP_MACRO_ARG:
        gcc_unreachable ();
*************** c_lex_with_flags (tree *value, location_
*** 800,806 ****
  	  add_flags |= PREV_FALLTHROUGH;
  	  goto retry_after_at;
  	}
!        goto retry;
  
      default:
        *value = NULL_TREE;
--- 844,850 ----
  	  add_flags |= PREV_FALLTHROUGH;
  	  goto retry_after_at;
  	}
!       goto retry;
  
      default:
        *value = NULL_TREE;
*************** interpret_integer (const cpp_token *toke
*** 897,902 ****
--- 941,950 ----
  	{
  	  max_bits_per_digit = 3;
  	  prefix_len = 1;
+ 	  if (token->val.str.len > 2
+ 	      && (token->val.str.text[1] == 'o'
+ 		  || token->val.str.text[1] == 'O'))
+ 	    prefix_len = 2;
  	}
        else if ((flags & CPP_N_RADIX) == CPP_N_HEX)
  	{
*************** interpret_float (const cpp_token *token,
*** 1187,1192 ****
--- 1235,1242 ----
        type = dfloat128_type_node;
      else if ((flags & CPP_N_WIDTH) == CPP_N_SMALL)
        type = dfloat32_type_node;
+     else if ((flags & CPP_N_FLOATNX) != 0)
+       type = dfloat64x_type_node;
      else
        type = dfloat64_type_node;
    else
*************** interpret_float (const cpp_token *token,
*** 1254,1263 ****
  	  }
  	else if (!extended)
  	  {
! 	    if (cxx_dialect < cxx23)
! 	      pedwarn (input_location, OPT_Wpedantic,
  		       "%<f%d%> or %<F%d%> suffix on floating constant only "
! 		       "available with %<-std=c++2b%> or %<-std=gnu++2b%>",
  		       n, n);
  	  }
  	else
--- 1304,1313 ----
  	  }
  	else if (!extended)
  	  {
! 	    if (cxx_dialect < cxx23 && pedantic)
! 	      pedwarn (input_location, OPT_Wc__23_extensions,
  		       "%<f%d%> or %<F%d%> suffix on floating constant only "
! 		       "available with %<-std=c++23%> or %<-std=gnu++23%>",
  		       n, n);
  	  }
  	else
*************** interpret_float (const cpp_token *token,
*** 1275,1284 ****
  	if (!c_dialect_cxx ())
  	  pedwarn (input_location, OPT_Wpedantic,
  		   "non-standard suffix on floating constant");
! 	else if (cxx_dialect < cxx23)
! 	  pedwarn (input_location, OPT_Wpedantic,
  		   "%<bf16%> or %<BF16%> suffix on floating constant only "
! 		   "available with %<-std=c++2b%> or %<-std=gnu++2b%>");
        }
      else if ((flags & CPP_N_WIDTH) == CPP_N_LARGE)
        type = long_double_type_node;
--- 1325,1334 ----
  	if (!c_dialect_cxx ())
  	  pedwarn (input_location, OPT_Wpedantic,
  		   "non-standard suffix on floating constant");
! 	else if (cxx_dialect < cxx23 && pedantic)
! 	  pedwarn (input_location, OPT_Wc__23_extensions,
  		   "%<bf16%> or %<BF16%> suffix on floating constant only "
! 		   "available with %<-std=c++23%> or %<-std=gnu++23%>");
        }
      else if ((flags & CPP_N_WIDTH) == CPP_N_LARGE)
        type = long_double_type_node;
*************** interpret_float (const cpp_token *token,
*** 1299,1305 ****
    if (flags & CPP_N_USERDEF)
      copylen -= strlen (suffix);
    else if (flags & CPP_N_DFLOAT)
!     copylen -= 2;
    else
      {
        if ((flags & CPP_N_WIDTH) != CPP_N_MEDIUM)
--- 1349,1362 ----
    if (flags & CPP_N_USERDEF)
      copylen -= strlen (suffix);
    else if (flags & CPP_N_DFLOAT)
!     {
!       if (ISDIGIT (token->val.str.text[copylen - 1]))
! 	copylen -= (flags & CPP_N_LARGE) ? 4 : 3;
!       else if ((flags & CPP_N_FLOATNX) != 0)
! 	copylen -= 4;
!       else
! 	copylen -= 2;
!     }
    else
      {
        if ((flags & CPP_N_WIDTH) != CPP_N_MEDIUM)
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-objc.h gcc-15.1.0/gcc/c-family/c-objc.h
*** gcc-14.2.0/gcc/c-family/c-objc.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-objc.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Definitions of Objective-C front-end entry points used for C and C++.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of Objective-C front-end entry points used for C and C++.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void objc_add_property_declaratio
*** 163,169 ****
  extern tree objc_maybe_build_component_ref (tree, tree);
  extern tree objc_build_class_component_ref (tree, tree);
  extern tree objc_maybe_build_modify_expr (tree, tree);
! extern tree objc_build_incr_expr_for_property_ref (location_t, enum tree_code, 
  						   tree, tree);
  extern void objc_add_synthesize_declaration (location_t, tree);
  extern void objc_add_dynamic_declaration (location_t, tree);
--- 163,169 ----
  extern tree objc_maybe_build_component_ref (tree, tree);
  extern tree objc_build_class_component_ref (tree, tree);
  extern tree objc_maybe_build_modify_expr (tree, tree);
! extern tree objc_build_incr_expr_for_property_ref (location_t, enum tree_code,
  						   tree, tree);
  extern void objc_add_synthesize_declaration (location_t, tree);
  extern void objc_add_dynamic_declaration (location_t, tree);
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-omp.cc gcc-15.1.0/gcc/c-family/c-omp.cc
*** gcc-14.2.0/gcc/c-family/c-omp.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-omp.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,7 ****
  /* This file contains routines to construct OpenACC and OpenMP constructs,
     called from parsing in the C and C++ front ends.
  
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
     Contributed by Richard Henderson <rth@redhat.com>,
  		  Diego Novillo <dnovillo@redhat.com>.
  
--- 1,7 ----
  /* This file contains routines to construct OpenACC and OpenMP constructs,
     called from parsing in the C and C++ front ends.
  
!    Copyright (C) 2005-2025 Free Software Foundation, Inc.
     Contributed by Richard Henderson <rth@redhat.com>,
  		  Diego Novillo <dnovillo@redhat.com>.
  
*************** c_finish_omp_taskyield (location_t loc)
*** 204,210 ****
  
  
  /* Complete a #pragma omp atomic construct.  For CODE OMP_ATOMIC
!    the expression to be implemented atomically is LHS opcode= RHS. 
     For OMP_ATOMIC_READ V = LHS, for OMP_ATOMIC_CAPTURE_{NEW,OLD} LHS
     opcode= RHS with the new or old content of LHS returned.
     LOC is the location of the atomic statement.  The value returned
--- 204,210 ----
  
  
  /* Complete a #pragma omp atomic construct.  For CODE OMP_ATOMIC
!    the expression to be implemented atomically is LHS opcode= RHS.
     For OMP_ATOMIC_READ V = LHS, for OMP_ATOMIC_CAPTURE_{NEW,OLD} LHS
     opcode= RHS with the new or old content of LHS returned.
     LOC is the location of the atomic statement.  The value returned
*************** c_finish_omp_atomic (location_t loc, enu
*** 664,669 ****
--- 664,689 ----
  }
  
  
+ /* Return true if TYPE is the implementation's omp_interop_t.  */
+ 
+ bool
+ c_omp_interop_t_p (tree type)
+ {
+   if (type == error_mark_node)
+     return false;
+   type = TYPE_MAIN_VARIANT (type);
+   return (TREE_CODE (type) == ENUMERAL_TYPE
+ 	  && TYPE_NAME (type)
+ 	  && ((TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
+ 	       ? DECL_NAME (TYPE_NAME (type)) : TYPE_NAME (type))
+ 	      == get_identifier ("omp_interop_t"))
+ 	  && TYPE_FILE_SCOPE_P (type)
+ 	  && COMPLETE_TYPE_P (type)
+ 	  && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
+ 	  && !compare_tree_int (TYPE_SIZE (type),
+ 				tree_to_uhwi (TYPE_SIZE (ptr_type_node))));
+ }
+ 
  /* Return true if TYPE is the implementation's omp_depend_t.  */
  
  bool
*************** c_finish_omp_for (location_t locus, enum
*** 958,963 ****
--- 978,996 ----
        tree cond = TREE_VEC_ELT (condv, i);
        tree incr = TREE_VEC_ELT (incrv, i);
  
+       if (init == NULL_TREE)
+ 	{
+ 	  gcc_assert (decl == NULL_TREE
+ 		      && cond == NULL_TREE
+ 		      && incr == NULL_TREE);
+ 	  for (i++; i < TREE_VEC_LENGTH (declv); i++)
+ 	    gcc_assert (TREE_VEC_ELT (declv, i) == NULL_TREE
+ 			&& TREE_VEC_ELT (initv, i) == NULL_TREE
+ 			&& TREE_VEC_ELT (condv, i) == NULL_TREE
+ 			&& TREE_VEC_ELT (incrv, i) == NULL_TREE);
+ 	  break;
+ 	}
+ 
        elocus = locus;
        if (EXPR_HAS_LOCATION (init))
  	elocus = EXPR_LOCATION (init);
*************** c_finish_omp_for (location_t locus, enum
*** 1162,1168 ****
  	      break;
  
  	    case COMPOUND_EXPR:
! 	      if (TREE_CODE (TREE_OPERAND (incr, 0)) != SAVE_EXPR
  		  || TREE_CODE (TREE_OPERAND (incr, 1)) != MODIFY_EXPR)
  		break;
  	      incr = TREE_OPERAND (incr, 1);
--- 1195,1202 ----
  	      break;
  
  	    case COMPOUND_EXPR:
! 	      if ((TREE_CODE (TREE_OPERAND (incr, 0)) != SAVE_EXPR
! 		   && TREE_CODE (TREE_OPERAND (incr, 0)) != TARGET_EXPR)
  		  || TREE_CODE (TREE_OPERAND (incr, 1)) != MODIFY_EXPR)
  		break;
  	      incr = TREE_OPERAND (incr, 1);
*************** static int
*** 1304,1312 ****
  c_omp_is_loop_iterator (tree decl, struct c_omp_check_loop_iv_data *d)
  {
    for (int i = 0; i < TREE_VEC_LENGTH (d->declv); i++)
!     if (decl == TREE_VEC_ELT (d->declv, i)
! 	|| (TREE_CODE (TREE_VEC_ELT (d->declv, i)) == TREE_LIST
! 	    && decl == TREE_PURPOSE (TREE_VEC_ELT (d->declv, i))))
        return i;
      else if (TREE_CODE (TREE_VEC_ELT (d->declv, i)) == TREE_LIST
  	     && TREE_CHAIN (TREE_VEC_ELT (d->declv, i))
--- 1338,1348 ----
  c_omp_is_loop_iterator (tree decl, struct c_omp_check_loop_iv_data *d)
  {
    for (int i = 0; i < TREE_VEC_LENGTH (d->declv); i++)
!     if (TREE_VEC_ELT (d->declv, i) == NULL_TREE)
!       continue;
!     else if (decl == TREE_VEC_ELT (d->declv, i)
! 	     || (TREE_CODE (TREE_VEC_ELT (d->declv, i)) == TREE_LIST
! 		 && decl == TREE_PURPOSE (TREE_VEC_ELT (d->declv, i))))
        return i;
      else if (TREE_CODE (TREE_VEC_ELT (d->declv, i)) == TREE_LIST
  	     && TREE_CHAIN (TREE_VEC_ELT (d->declv, i))
*************** c_omp_is_loop_iterator (tree decl, struc
*** 1322,1328 ****
  /* Helper function called via walk_tree, to diagnose uses
     of associated loop IVs inside of lb, b and incr expressions
     of OpenMP loops.  */
!    
  static tree
  c_omp_check_loop_iv_r (tree *tp, int *walk_subtrees, void *data)
  {
--- 1358,1364 ----
  /* Helper function called via walk_tree, to diagnose uses
     of associated loop IVs inside of lb, b and incr expressions
     of OpenMP loops.  */
! 
  static tree
  c_omp_check_loop_iv_r (tree *tp, int *walk_subtrees, void *data)
  {
*************** c_omp_check_nonrect_loop_iv (tree *tp, s
*** 1584,1589 ****
--- 1620,1688 ----
    return ret;
  }
  
+ /* Callback for walk_tree to find nested loop transforming construct.  */
+ 
+ static tree
+ c_find_nested_loop_xform_r (tree *tp, int *walk_subtrees, void *)
+ {
+   *walk_subtrees = 0;
+   switch (TREE_CODE (*tp))
+     {
+     case OMP_TILE:
+     case OMP_UNROLL:
+       return *tp;
+     case BIND_EXPR:
+       *walk_subtrees = 1;
+       break;
+     case STATEMENT_LIST:
+       *walk_subtrees = 1;
+       break;
+     case TRY_FINALLY_EXPR:
+     case CLEANUP_POINT_EXPR:
+       *walk_subtrees = 1;
+       break;
+     default:
+       break;
+     }
+   return NULL;
+ }
+ 
+ /* Find Jth loop among generated loops of STMT.  */
+ 
+ int
+ c_omp_find_generated_loop (tree &stmt, int j, walk_tree_lh lh)
+ {
+   stmt = walk_tree_1 (&stmt, c_find_nested_loop_xform_r,
+ 		      NULL, NULL, lh);
+   gcc_assert (stmt);
+   switch (TREE_CODE (stmt))
+     {
+     case OMP_UNROLL:
+       gcc_assert (omp_find_clause (OMP_FOR_CLAUSES (stmt),
+ 				   OMP_CLAUSE_PARTIAL));
+       /* FALLTHRU */
+     case OMP_TILE:
+       int k;
+       k = 0;
+       for (int i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); ++i)
+ 	if (i == j)
+ 	  {
+ 	    if (TREE_VEC_ELT (OMP_FOR_INIT (stmt), i) == NULL_TREE)
+ 	      {
+ 		stmt = OMP_FOR_BODY (stmt);
+ 		return c_omp_find_generated_loop (stmt, k, lh);
+ 	      }
+ 	    else
+ 	      return i;
+ 	  }
+ 	else if (TREE_VEC_ELT (OMP_FOR_INIT (stmt), i) == NULL_TREE)
+ 	  ++k;
+       gcc_unreachable ();
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
  /* Diagnose invalid references to loop iterators in lb, b and incr
     expressions.  */
  
*************** c_omp_check_loop_iv (tree stmt, tree dec
*** 1592,1598 ****
  {
    hash_set<tree> pset;
    struct c_omp_check_loop_iv_data data;
!   int i;
  
    data.declv = declv;
    data.fail = false;
--- 1691,1697 ----
  {
    hash_set<tree> pset;
    struct c_omp_check_loop_iv_data data;
!   int i, k = 0;
  
    data.declv = declv;
    data.fail = false;
*************** c_omp_check_loop_iv (tree stmt, tree dec
*** 1602,1614 ****
    data.ppset = &pset;
    for (i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); i++)
      {
        tree init = TREE_VEC_ELT (OMP_FOR_INIT (stmt), i);
        gcc_assert (TREE_CODE (init) == MODIFY_EXPR);
        tree decl = TREE_OPERAND (init, 0);
!       tree cond = TREE_VEC_ELT (OMP_FOR_COND (stmt), i);
        gcc_assert (COMPARISON_CLASS_P (cond));
        gcc_assert (TREE_OPERAND (cond, 0) == decl);
!       tree incr = TREE_VEC_ELT (OMP_FOR_INCR (stmt), i);
        data.expr_loc = EXPR_LOCATION (TREE_OPERAND (init, 1));
        tree vec_outer1 = NULL_TREE, vec_outer2 = NULL_TREE;
        int kind = 0;
--- 1701,1724 ----
    data.ppset = &pset;
    for (i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); i++)
      {
+       tree this_stmt = stmt;
+       int j = i;
        tree init = TREE_VEC_ELT (OMP_FOR_INIT (stmt), i);
+       if (init == NULL_TREE)
+ 	{
+ 	  if (k == 0)
+ 	    data.declv = copy_node (declv);
+ 	  this_stmt = OMP_FOR_BODY (stmt);
+ 	  j = c_omp_find_generated_loop (this_stmt, k++, lh);
+ 	  init = TREE_VEC_ELT (OMP_FOR_INIT (this_stmt), j);
+ 	  TREE_VEC_ELT (data.declv, i) = TREE_OPERAND (init, 0);
+ 	}
        gcc_assert (TREE_CODE (init) == MODIFY_EXPR);
        tree decl = TREE_OPERAND (init, 0);
!       tree cond = TREE_VEC_ELT (OMP_FOR_COND (this_stmt), j);
        gcc_assert (COMPARISON_CLASS_P (cond));
        gcc_assert (TREE_OPERAND (cond, 0) == decl);
!       tree incr = TREE_VEC_ELT (OMP_FOR_INCR (this_stmt), j);
        data.expr_loc = EXPR_LOCATION (TREE_OPERAND (init, 1));
        tree vec_outer1 = NULL_TREE, vec_outer2 = NULL_TREE;
        int kind = 0;
*************** c_omp_check_loop_iv (tree stmt, tree dec
*** 1636,1644 ****
  	 expression then involves the subtraction and always refers
  	 to the original value.  The C++ FE needs to warn on those
  	 earlier.  */
!       if (decl == TREE_VEC_ELT (declv, i)
! 	  || (TREE_CODE (TREE_VEC_ELT (declv, i)) == TREE_LIST
! 	      && decl == TREE_PURPOSE (TREE_VEC_ELT (declv, i))))
  	{
  	  data.expr_loc = EXPR_LOCATION (cond);
  	  data.kind = kind | 1;
--- 1746,1754 ----
  	 expression then involves the subtraction and always refers
  	 to the original value.  The C++ FE needs to warn on those
  	 earlier.  */
!       if (decl == TREE_VEC_ELT (data.declv, i)
! 	  || (TREE_CODE (TREE_VEC_ELT (data.declv, i)) == TREE_LIST
! 	      && decl == TREE_PURPOSE (TREE_VEC_ELT (data.declv, i))))
  	{
  	  data.expr_loc = EXPR_LOCATION (cond);
  	  data.kind = kind | 1;
*************** c_omp_check_loop_iv (tree stmt, tree dec
*** 1657,1662 ****
--- 1767,1781 ----
  			 " used in a single loop", vec_outer1, vec_outer2);
  	  data.fail = true;
  	}
+       else if ((vec_outer1 || vec_outer2) && this_stmt != stmt)
+ 	{
+ 	  location_t loc = data.expr_loc;
+ 	  if (loc == UNKNOWN_LOCATION)
+ 	    loc = data.stmt_loc;
+ 	  sorry_at (loc, "non-rectangular loops from generated loops "
+ 			 "unsupported");
+ 	  data.fail = true;
+ 	}
        if (vec_outer1 || vec_outer2)
  	OMP_FOR_NON_RECTANGULAR (stmt) = 1;
        if (TREE_CODE (incr) == MODIFY_EXPR)
*************** c_omp_check_loop_binding_exprs (tree stm
*** 1853,1858 ****
--- 1972,1983 ----
    for (int i = 1; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); i++)
      {
        tree init = TREE_VEC_ELT (OMP_FOR_INIT (stmt), i);
+       if (init == NULL_TREE)
+ 	{
+ 	  sorry_at (loc, "imperfectly nested loop using generated loops");
+ 	  ok = false;
+ 	  continue;
+ 	}
        tree cond = TREE_VEC_ELT (OMP_FOR_COND (stmt), i);
        tree incr = TREE_VEC_ELT (OMP_FOR_INCR (stmt), i);
        gcc_assert (TREE_CODE (init) == MODIFY_EXPR);
*************** const struct c_omp_directive c_omp_direc
*** 4177,4183 ****
    /* { "begin", "declare", "variant", PRAGMA_OMP_BEGIN,
      C_OMP_DIR_DECLARATIVE, false }, */
    /* { "begin", "metadirective", nullptr, PRAGMA_OMP_BEGIN,
!     C_OMP_DIR_???, ??? },  */
    { "cancel", nullptr, nullptr, PRAGMA_OMP_CANCEL,
      C_OMP_DIR_STANDALONE, false },
    { "cancellation", "point", nullptr, PRAGMA_OMP_CANCELLATION_POINT,
--- 4302,4308 ----
    /* { "begin", "declare", "variant", PRAGMA_OMP_BEGIN,
      C_OMP_DIR_DECLARATIVE, false }, */
    /* { "begin", "metadirective", nullptr, PRAGMA_OMP_BEGIN,
!     C_OMP_DIR_META, false },  */
    { "cancel", nullptr, nullptr, PRAGMA_OMP_CANCEL,
      C_OMP_DIR_STANDALONE, false },
    { "cancellation", "point", nullptr, PRAGMA_OMP_CANCELLATION_POINT,
*************** const struct c_omp_directive c_omp_direc
*** 4196,4203 ****
      C_OMP_DIR_DECLARATIVE, false },
    { "depobj", nullptr, nullptr, PRAGMA_OMP_DEPOBJ,
      C_OMP_DIR_STANDALONE, false },
!   /* { "dispatch", nullptr, nullptr, PRAGMA_OMP_DISPATCH,
!     C_OMP_DIR_CONSTRUCT, false },  */
    { "distribute", nullptr, nullptr, PRAGMA_OMP_DISTRIBUTE,
      C_OMP_DIR_CONSTRUCT, true },
    { "end", "assumes", nullptr, PRAGMA_OMP_END,
--- 4321,4328 ----
      C_OMP_DIR_DECLARATIVE, false },
    { "depobj", nullptr, nullptr, PRAGMA_OMP_DEPOBJ,
      C_OMP_DIR_STANDALONE, false },
!   { "dispatch", nullptr, nullptr, PRAGMA_OMP_DISPATCH,
!     C_OMP_DIR_DECLARATIVE, false },
    { "distribute", nullptr, nullptr, PRAGMA_OMP_DISTRIBUTE,
      C_OMP_DIR_CONSTRUCT, true },
    { "end", "assumes", nullptr, PRAGMA_OMP_END,
*************** const struct c_omp_directive c_omp_direc
*** 4207,4213 ****
    /* { "end", "declare", "variant", PRAGMA_OMP_END,
      C_OMP_DIR_DECLARATIVE, false }, */
    /* { "end", "metadirective", nullptr, PRAGMA_OMP_END,
!     C_OMP_DIR_???, ??? },  */
    /* error with at(execution) is C_OMP_DIR_STANDALONE.  */
    { "error", nullptr, nullptr, PRAGMA_OMP_ERROR,
      C_OMP_DIR_UTILITY, false },
--- 4332,4338 ----
    /* { "end", "declare", "variant", PRAGMA_OMP_END,
      C_OMP_DIR_DECLARATIVE, false }, */
    /* { "end", "metadirective", nullptr, PRAGMA_OMP_END,
!     C_OMP_DIR_META, false },  */
    /* error with at(execution) is C_OMP_DIR_STANDALONE.  */
    { "error", nullptr, nullptr, PRAGMA_OMP_ERROR,
      C_OMP_DIR_UTILITY, false },
*************** const struct c_omp_directive c_omp_direc
*** 4217,4232 ****
      C_OMP_DIR_CONSTRUCT, true },
    /* { "groupprivate", nullptr, nullptr, PRAGMA_OMP_GROUPPRIVATE,
      C_OMP_DIR_DECLARATIVE, false },  */
!   /* { "interop", nullptr, nullptr, PRAGMA_OMP_INTEROP,
!     C_OMP_DIR_STANDALONE, false },  */
    { "loop", nullptr, nullptr, PRAGMA_OMP_LOOP,
      C_OMP_DIR_CONSTRUCT, true },
    { "masked", nullptr, nullptr, PRAGMA_OMP_MASKED,
      C_OMP_DIR_CONSTRUCT, true },
    { "master", nullptr, nullptr, PRAGMA_OMP_MASTER,
      C_OMP_DIR_CONSTRUCT, true },
!   /* { "metadirective", nullptr, nullptr, PRAGMA_OMP_METADIRECTIVE,
!     C_OMP_DIR_???, ??? },  */
    { "nothing", nullptr, nullptr, PRAGMA_OMP_NOTHING,
      C_OMP_DIR_UTILITY, false },
    /* ordered with depend clause is C_OMP_DIR_STANDALONE.  */
--- 4342,4357 ----
      C_OMP_DIR_CONSTRUCT, true },
    /* { "groupprivate", nullptr, nullptr, PRAGMA_OMP_GROUPPRIVATE,
      C_OMP_DIR_DECLARATIVE, false },  */
!   { "interop", nullptr, nullptr, PRAGMA_OMP_INTEROP,
!     C_OMP_DIR_STANDALONE, false },
    { "loop", nullptr, nullptr, PRAGMA_OMP_LOOP,
      C_OMP_DIR_CONSTRUCT, true },
    { "masked", nullptr, nullptr, PRAGMA_OMP_MASKED,
      C_OMP_DIR_CONSTRUCT, true },
    { "master", nullptr, nullptr, PRAGMA_OMP_MASTER,
      C_OMP_DIR_CONSTRUCT, true },
!   { "metadirective", nullptr, nullptr, PRAGMA_OMP_METADIRECTIVE,
!     C_OMP_DIR_META, false },
    { "nothing", nullptr, nullptr, PRAGMA_OMP_NOTHING,
      C_OMP_DIR_UTILITY, false },
    /* ordered with depend clause is C_OMP_DIR_STANDALONE.  */
*************** const struct c_omp_directive c_omp_direc
*** 4268,4281 ****
      C_OMP_DIR_STANDALONE, false },
    { "taskyield", nullptr, nullptr, PRAGMA_OMP_TASKYIELD,
      C_OMP_DIR_STANDALONE, false },
!   /* { "tile", nullptr, nullptr, PRAGMA_OMP_TILE,
!     C_OMP_DIR_CONSTRUCT, false },  */
    { "teams", nullptr, nullptr, PRAGMA_OMP_TEAMS,
      C_OMP_DIR_CONSTRUCT, true },
    { "threadprivate", nullptr, nullptr, PRAGMA_OMP_THREADPRIVATE,
!     C_OMP_DIR_DECLARATIVE, false }
!   /* { "unroll", nullptr, nullptr, PRAGMA_OMP_UNROLL,
!     C_OMP_DIR_CONSTRUCT, false },  */
  };
  
  /* Find (non-combined/composite) OpenMP directive (if any) which starts
--- 4393,4406 ----
      C_OMP_DIR_STANDALONE, false },
    { "taskyield", nullptr, nullptr, PRAGMA_OMP_TASKYIELD,
      C_OMP_DIR_STANDALONE, false },
!   { "tile", nullptr, nullptr, PRAGMA_OMP_TILE,
!     C_OMP_DIR_CONSTRUCT, false },
    { "teams", nullptr, nullptr, PRAGMA_OMP_TEAMS,
      C_OMP_DIR_CONSTRUCT, true },
    { "threadprivate", nullptr, nullptr, PRAGMA_OMP_THREADPRIVATE,
!     C_OMP_DIR_DECLARATIVE, false },
!   { "unroll", nullptr, nullptr, PRAGMA_OMP_UNROLL,
!     C_OMP_DIR_CONSTRUCT, false },
  };
  
  /* Find (non-combined/composite) OpenMP directive (if any) which starts
*************** c_omp_categorize_directive (const char *
*** 4309,4311 ****
--- 4434,4488 ----
      }
    return NULL;
  }
+ 
+ /* Auxilliary helper function for c_omp_expand_variant_construct.  */
+ 
+ static tree
+ c_omp_expand_variant_construct_r (vec<struct omp_variant> &candidates,
+ 			      hash_map<tree, tree> &body_labels,
+ 			      unsigned index)
+ {
+   struct omp_variant &candidate = candidates[index];
+   tree if_block = push_stmt_list ();
+   if (candidate.alternative != NULL_TREE)
+     add_stmt (candidate.alternative);
+   if (candidate.body != NULL_TREE)
+     {
+       tree *label = body_labels.get (candidate.body);
+       if (label != NULL)
+ 	add_stmt (build1 (GOTO_EXPR, void_type_node, *label));
+       else
+ 	{
+ 	  tree body_label = create_artificial_label (UNKNOWN_LOCATION);
+ 	  add_stmt (build1 (LABEL_EXPR, void_type_node, body_label));
+ 	  add_stmt (candidate.body);
+ 	  body_labels.put (candidate.body, body_label);
+ 	}
+     }
+   if_block = pop_stmt_list (if_block);
+ 
+   if (index == candidates.length () - 1)
+     return if_block;
+ 
+   tree cond = omp_dynamic_cond (candidate.selector, NULL_TREE);
+   gcc_assert (cond != NULL_TREE);
+ 
+   tree else_block = c_omp_expand_variant_construct_r (candidates, body_labels,
+ 						      index + 1);
+   tree ret = push_stmt_list ();
+   tree stmt = build3 (COND_EXPR, void_type_node, cond, if_block, else_block);
+   add_stmt (stmt);
+   ret = pop_stmt_list (ret);
+ 
+   return ret;
+ }
+ 
+ /* Resolve the vector of metadirective variant CANDIDATES to a parse tree
+    structure.  */
+ 
+ tree
+ c_omp_expand_variant_construct (vec<struct omp_variant> &candidates)
+ {
+   hash_map<tree, tree> body_labels;
+   return c_omp_expand_variant_construct_r (candidates, body_labels, 0);
+ }
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-opts.cc gcc-15.1.0/gcc/c-family/c-opts.cc
*** gcc-14.2.0/gcc/c-family/c-opts.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-opts.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* C/ObjC/C++ command line option handling.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Neil Booth.
  
  This file is part of GCC.
--- 1,5 ----
  /* C/ObjC/C++ command line option handling.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
     Contributed by Neil Booth.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 32,38 ****
  #include "flags.h"
  #include "toplev.h"
  #include "langhooks.h"
! #include "tree-diagnostic.h" /* for virt_loc_aware_diagnostic_finalizer */
  #include "intl.h"
  #include "cppdefault.h"
  #include "incpath.h"
--- 32,38 ----
  #include "flags.h"
  #include "toplev.h"
  #include "langhooks.h"
! #include "diagnostic-macro-unwinding.h" /* for virt_loc_aware_diagnostic_finalizer */
  #include "intl.h"
  #include "cppdefault.h"
  #include "incpath.h"
*************** along with GCC; see the file COPYING3.
*** 43,48 ****
--- 43,49 ----
  #include "dumpfile.h"
  #include "file-prefix-map.h"    /* add_*_prefix_map()  */
  #include "context.h"
+ #include "diagnostic-format-text.h"
  
  #ifndef DOLLARS_IN_IDENTIFIERS
  # define DOLLARS_IN_IDENTIFIERS true
*************** static void set_std_c99 (int);
*** 121,126 ****
--- 122,128 ----
  static void set_std_c11 (int);
  static void set_std_c17 (int);
  static void set_std_c23 (int);
+ static void set_std_c2y (int);
  static void check_deps_environment_vars (void);
  static void handle_deferred_opts (void);
  static void sanitize_cpp_opts (void);
*************** static struct deferred_opt
*** 144,150 ****
  } *deferred_opts;
  
  
! extern const unsigned int 
  c_family_lang_mask = (CL_C | CL_CXX | CL_ObjC | CL_ObjCXX);
  
  /* Defer option CODE with argument ARG.  */
--- 146,152 ----
  } *deferred_opts;
  
  
! extern const unsigned int
  c_family_lang_mask = (CL_C | CL_CXX | CL_ObjC | CL_ObjCXX);
  
  /* Defer option CODE with argument ARG.  */
*************** c_common_option_lang_mask (void)
*** 167,192 ****
  
  /* Diagnostic finalizer for C/C++/Objective-C/Objective-C++.  */
  static void
! c_diagnostic_finalizer (diagnostic_context *context,
! 			const diagnostic_info *diagnostic,
! 			diagnostic_t)
  {
!   char *saved_prefix = pp_take_prefix (context->printer);
!   pp_set_prefix (context->printer, NULL);
!   pp_newline (context->printer);
!   diagnostic_show_locus (context, diagnostic->richloc, diagnostic->kind);
    /* By default print macro expansion contexts in the diagnostic
       finalizer -- for tokens resulting from macro expansion.  */
!   virt_loc_aware_diagnostic_finalizer (context, diagnostic);
!   pp_set_prefix (context->printer, saved_prefix);
!   pp_flush (context->printer);
  }
  
  /* Common default settings for diagnostics.  */
  void
  c_common_diagnostics_set_defaults (diagnostic_context *context)
  {
!   diagnostic_finalizer (context) = c_diagnostic_finalizer;
    context->m_opt_permissive = OPT_fpermissive;
  }
  
--- 169,197 ----
  
  /* Diagnostic finalizer for C/C++/Objective-C/Objective-C++.  */
  static void
! c_diagnostic_text_finalizer (diagnostic_text_output_format &text_output,
! 			     const diagnostic_info *diagnostic,
! 			     diagnostic_t)
  {
!   pretty_printer *const pp = text_output.get_printer ();
!   char *saved_prefix = pp_take_prefix (pp);
!   pp_set_prefix (pp, text_output.build_indent_prefix (false));
!   pp_newline (pp);
!   diagnostic_show_locus (&text_output.get_context (),
! 			 text_output.get_source_printing_options (),
! 			 diagnostic->richloc, diagnostic->kind, pp);
    /* By default print macro expansion contexts in the diagnostic
       finalizer -- for tokens resulting from macro expansion.  */
!   virt_loc_aware_diagnostic_finalizer (text_output, diagnostic);
!   pp_set_prefix (pp, saved_prefix);
!   pp_flush (pp);
  }
  
  /* Common default settings for diagnostics.  */
  void
  c_common_diagnostics_set_defaults (diagnostic_context *context)
  {
!   diagnostic_text_finalizer (context) = c_diagnostic_text_finalizer;
    context->m_opt_permissive = OPT_fpermissive;
  }
  
*************** c_common_init_options (unsigned int deco
*** 238,244 ****
    g_string_concat_db
      = new (ggc_alloc <string_concat_db> ()) string_concat_db ();
  
!   parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89,
  				ident_hash, line_table, ident_hash_extra);
    cb = cpp_get_callbacks (parse_in);
    cb->diagnostic = c_cpp_diagnostic;
--- 243,249 ----
    g_string_concat_db
      = new (ggc_alloc <string_concat_db> ()) string_concat_db ();
  
!   parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX : CLK_GNUC89,
  				ident_hash, line_table, ident_hash_extra);
    cb = cpp_get_callbacks (parse_in);
    cb->diagnostic = c_cpp_diagnostic;
*************** c_common_init_options (unsigned int deco
*** 256,263 ****
  
    if (c_language == clk_c)
      {
!       /* The default for C is gnu17.  */
!       set_std_c17 (false /* ISO */);
  
        /* If preprocessing assembly language, accept any of the C-family
  	 front end options since the driver may pass them through.  */
--- 261,268 ----
  
    if (c_language == clk_c)
      {
!       /* The default for C is gnu23.  */
!       set_std_c23 (false /* ISO */);
  
        /* If preprocessing assembly language, accept any of the C-family
  	 front end options since the driver may pass them through.  */
*************** c_common_handle_option (size_t scode, co
*** 354,366 ****
  	 preprocessed output, but still do -dM etc. as software
  	 depends on this.  Preprocessed output does occur if -MD, -MMD
  	 or environment var dependency generation is used.  */
!       cpp_opts->deps.style = (code == OPT_M ? DEPS_SYSTEM: DEPS_USER);
        flag_no_output = 1;
        break;
  
      case OPT_MD:
      case OPT_MMD:
!       cpp_opts->deps.style = (code == OPT_MD ? DEPS_SYSTEM: DEPS_USER);
        cpp_opts->deps.need_preprocessor_output = true;
        deps_file = arg;
        break;
--- 359,371 ----
  	 preprocessed output, but still do -dM etc. as software
  	 depends on this.  Preprocessed output does occur if -MD, -MMD
  	 or environment var dependency generation is used.  */
!       cpp_opts->deps.style = (code == OPT_M ? DEPS_SYSTEM : DEPS_USER);
        flag_no_output = 1;
        break;
  
      case OPT_MD:
      case OPT_MMD:
!       cpp_opts->deps.style = (code == OPT_MD ? DEPS_SYSTEM : DEPS_USER);
        cpp_opts->deps.need_preprocessor_output = true;
        deps_file = arg;
        break;
*************** c_common_handle_option (size_t scode, co
*** 370,376 ****
        if (!strcmp (arg, "p1689r5"))
  	cpp_opts->deps.fdeps_format = FDEPS_FMT_P1689R5;
        else
! 	error ("%<-fdeps-format=%> unknown format %<%s%>", arg);
        break;
  
      case OPT_fdeps_file_:
--- 375,381 ----
        if (!strcmp (arg, "p1689r5"))
  	cpp_opts->deps.fdeps_format = FDEPS_FMT_P1689R5;
        else
! 	error ("%<-fdeps-format=%> unknown format %qs", arg);
        break;
  
      case OPT_fdeps_file_:
*************** c_common_handle_option (size_t scode, co
*** 622,627 ****
--- 627,636 ----
        add_prefixed_path (arg, INC_BRACKET);
        break;
  
+     case OPT__embed_dir_:
+       add_path (xstrdup (arg), INC_EMBED, 0, true);
+       break;
+ 
      case OPT_lang_asm:
        cpp_set_lang (parse_in, CLK_ASM);
        cpp_opts->dollars_in_ident = false;
*************** c_common_handle_option (size_t scode, co
*** 743,748 ****
--- 752,767 ----
  	set_std_c23 (false /* ISO */);
        break;
  
+     case OPT_std_c2y:
+       if (!preprocessing_asm_p)
+ 	set_std_c2y (true /* ISO */);
+       break;
+ 
+     case OPT_std_gnu2y:
+       if (!preprocessing_asm_p)
+ 	set_std_c2y (false /* ISO */);
+       break;
+ 
      case OPT_trigraphs:
        cpp_opts->trigraphs = 1;
        break;
*************** c_common_handle_option (size_t scode, co
*** 751,756 ****
--- 770,788 ----
        cpp_opts->traditional = 1;
        break;
  
+     case OPT_fsearch_include_path:
+       cpp_opts->main_search = CMS_user;
+       break;
+ 
+     case OPT_fsearch_include_path_:
+       if (!strcmp (arg, "user"))
+ 	cpp_opts->main_search = CMS_user;
+       else if (!strcmp (arg, "system"))
+ 	cpp_opts->main_search = CMS_system;
+       else
+ 	error ("invalid argument %qs to %<-fsearch-include-path%>", arg);
+       break;
+ 
      case OPT_v:
        verbose = true;
        break;
*************** c_common_handle_option (size_t scode, co
*** 759,773 ****
    switch (c_language)
      {
      case clk_c:
!       C_handle_option_auto (&global_options, &global_options_set, 
!                             scode, arg, value, 
                              c_family_lang_mask, kind,
                              loc, handlers, global_dc);
        break;
  
      case clk_objc:
        ObjC_handle_option_auto (&global_options, &global_options_set,
!                                scode, arg, value, 
                                 c_family_lang_mask, kind,
                                 loc, handlers, global_dc);
        break;
--- 791,805 ----
    switch (c_language)
      {
      case clk_c:
!       C_handle_option_auto (&global_options, &global_options_set,
!                             scode, arg, value,
                              c_family_lang_mask, kind,
                              loc, handlers, global_dc);
        break;
  
      case clk_objc:
        ObjC_handle_option_auto (&global_options, &global_options_set,
!                                scode, arg, value,
                                 c_family_lang_mask, kind,
                                 loc, handlers, global_dc);
        break;
*************** c_common_post_options (const char **pfil
*** 967,972 ****
--- 999,1019 ----
    if (warn_shift_overflow == -1)
      warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99;
  
+   /* -Wmissing-parameter-name is enabled by -pedantic before C23,
+      and for -Wc11-c23-compat.  */
+   if (warn_missing_parameter_name == -1)
+     warn_missing_parameter_name
+       = ((pedantic && !flag_isoc23 && warn_c11_c23_compat != 0)
+ 	 || warn_c11_c23_compat > 0);
+ 
+   /* Likewise for -Wfree-labels.  */
+   if (warn_free_labels == -1)
+     warn_free_labels = ((pedantic && !flag_isoc23 && warn_c11_c23_compat != 0)
+ 			|| warn_c11_c23_compat > 0);
+ 
+   if (warn_deprecated_non_prototype == -1)
+     warn_deprecated_non_prototype = warn_c11_c23_compat > 0;
+ 
    /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 to C++17
       modes.  */
    if (warn_shift_negative_value == -1)
*************** c_common_post_options (const char **pfil
*** 978,1002 ****
    SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register,
  		       cxx_dialect >= cxx17);
  
    /* -Wcomma-subscript is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_comma_subscript,
  		       cxx_dialect >= cxx23
! 		       || (cxx_dialect == cxx20 && warn_deprecated));
  
    /* -Wvolatile is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_volatile,
! 		       cxx_dialect >= cxx20 && warn_deprecated);
  
    /* -Wdeprecated-enum-enum-conversion is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_deprecated_enum_enum_conv,
! 		       cxx_dialect >= cxx20 && warn_deprecated);
  
    /* -Wdeprecated-enum-float-conversion is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_deprecated_enum_float_conv,
! 		       cxx_dialect >= cxx20 && warn_deprecated);
  
    /* -Wtemplate-id-cdtor is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
--- 1025,1071 ----
    SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register,
  		       cxx_dialect >= cxx17);
  
+   /* Explicit -Wdeprecated turns on warnings from later standards.  */
+   auto deprecated_in = [&](enum cxx_dialect d)
+   {
+     if (OPTION_SET_P (warn_deprecated)) return !!warn_deprecated;
+     return (warn_deprecated && cxx_dialect >= d);
+   };
+ 
    /* -Wcomma-subscript is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_comma_subscript,
  		       cxx_dialect >= cxx23
! 		       || deprecated_in (cxx20));
  
    /* -Wvolatile is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_volatile,
! 		       deprecated_in (cxx20));
  
    /* -Wdeprecated-enum-enum-conversion is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_deprecated_enum_enum_conv,
! 		       deprecated_in (cxx20));
  
    /* -Wdeprecated-enum-float-conversion is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  		       warn_deprecated_enum_float_conv,
! 		       deprecated_in (cxx20));
! 
!   /* -Wdeprecated-literal-operator is enabled by default in C++23.  */
!   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 		       warn_deprecated_literal_operator,
! 		       deprecated_in (cxx23));
! 
!   /* -Warray-compare is enabled by default in C++20.  */
!   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 		       warn_array_compare,
! 		       warn_array_compare || deprecated_in (cxx20));
! 
!   /* -Wdeprecated-variadic-comma-omission is enabled by default in C++26.  */
!   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 		       warn_deprecated_variadic_comma_omission,
! 		       deprecated_in (cxx26));
  
    /* -Wtemplate-id-cdtor is enabled by default in C++20.  */
    SET_OPTION_IF_UNSET (&global_options, &global_options_set,
*************** c_common_post_options (const char **pfil
*** 1015,1021 ****
  
    /* Change flag_abi_version to be the actual current ABI level, for the
       benefit of c_cpp_builtins, and to make comparison simpler.  */
!   const int latest_abi_version = 19;
    /* Generate compatibility aliases for ABI v13 (8.2) by default.  */
    const int abi_compat_default = 13;
  
--- 1084,1090 ----
  
    /* Change flag_abi_version to be the actual current ABI level, for the
       benefit of c_cpp_builtins, and to make comparison simpler.  */
!   const int latest_abi_version = 20;
    /* Generate compatibility aliases for ABI v13 (8.2) by default.  */
    const int abi_compat_default = 13;
  
*************** c_common_post_options (const char **pfil
*** 1117,1122 ****
--- 1186,1193 ----
      flag_char8_t = (cxx_dialect >= cxx20) || flag_isoc23;
    cpp_opts->unsigned_utf8char = flag_char8_t ? 1 : cpp_opts->unsigned_char;
  
+   cpp_opts->cpp_tabstop = global_dc->m_tabstop;
+ 
    if (flag_extern_tls_init)
      {
        if (!TARGET_SUPPORTS_ALIASES || !SUPPORTS_WEAK)
*************** c_common_post_options (const char **pfil
*** 1137,1153 ****
    if (warn_return_type == -1 && c_dialect_cxx ())
      warn_return_type = 1;
  
!   /* C++20 is the final version of concepts. We still use -fconcepts
!      to know when concepts are enabled. Note that -fconcepts-ts can
!      be used to include additional features, although modified to
!      work with the standard.  */
!   if (cxx_dialect >= cxx20 || flag_concepts_ts)
      flag_concepts = 1;
  
!   /* -fconcepts-ts will be removed in GCC 15.  */
!   if (flag_concepts_ts)
!     inform (input_location, "%<-fconcepts-ts%> is deprecated and will be "
! 	    "removed in GCC 15; please convert your code to C++20 concepts");
  
    /* -fimmediate-escalation has no effect when immediate functions are not
       supported.  */
--- 1208,1221 ----
    if (warn_return_type == -1 && c_dialect_cxx ())
      warn_return_type = 1;
  
!   /* C++20 is the final version of concepts.  We still use -fconcepts
!      to know when concepts are enabled.  */
!   if (cxx_dialect >= cxx20)
      flag_concepts = 1;
  
!   /* Enable lifetime extension of range based for temporaries for C++23.  */
!   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 		       flag_range_for_ext_temps, cxx_dialect >= cxx23);
  
    /* -fimmediate-escalation has no effect when immediate functions are not
       supported.  */
*************** c_common_finish (void)
*** 1351,1357 ****
  	deps_stream = stdout;
        else
  	{
! 	  deps_stream = fopen (deps_file, deps_append ? "a": "w");
  	  if (!deps_stream)
  	    fatal_error (input_location, "opening dependency file %s: %m",
  			 deps_file);
--- 1419,1425 ----
  	deps_stream = stdout;
        else
  	{
! 	  deps_stream = fopen (deps_file, deps_append ? "a" : "w");
  	  if (!deps_stream)
  	    fatal_error (input_location, "opening dependency file %s: %m",
  			 deps_file);
*************** sanitize_cpp_opts (void)
*** 1500,1506 ****
  
    /* Wlong-long is disabled by default. It is enabled by:
        [-Wpedantic | -Wtraditional] -std=[gnu|c]++98 ; or
!       [-Wpedantic | -Wtraditional] -std=non-c99 
  
        Either -Wlong-long or -Wno-long-long override any other settings.
        ??? These conditions should be handled in c.opt.  */
--- 1568,1574 ----
  
    /* Wlong-long is disabled by default. It is enabled by:
        [-Wpedantic | -Wtraditional] -std=[gnu|c]++98 ; or
!       [-Wpedantic | -Wtraditional] -std=non-c99
  
        Either -Wlong-long or -Wno-long-long override any other settings.
        ??? These conditions should be handled in c.opt.  */
*************** cb_file_change (cpp_reader *reader, cons
*** 1743,1755 ****
      /* We're starting the main file.  Inform the FE of that.  */
      lang_hooks.preprocess_main_file (reader, line_table, new_map);
  
!   if (new_map 
        && (new_map->reason == LC_ENTER || new_map->reason == LC_RENAME))
      {
        /* Signal to plugins that a file is included.  This could happen
  	 several times with the same file path, e.g. because of
  	 several '#include' or '#line' directives...  */
!       invoke_plugin_callbacks 
  	(PLUGIN_INCLUDE_FILE,
  	 const_cast<char*> (ORDINARY_MAP_FILE_NAME (new_map)));
      }
--- 1811,1823 ----
      /* We're starting the main file.  Inform the FE of that.  */
      lang_hooks.preprocess_main_file (reader, line_table, new_map);
  
!   if (new_map
        && (new_map->reason == LC_ENTER || new_map->reason == LC_RENAME))
      {
        /* Signal to plugins that a file is included.  This could happen
  	 several times with the same file path, e.g. because of
  	 several '#include' or '#line' directives...  */
!       invoke_plugin_callbacks
  	(PLUGIN_INCLUDE_FILE,
  	 const_cast<char*> (ORDINARY_MAP_FILE_NAME (new_map)));
      }
*************** cb_dir_change (cpp_reader * ARG_UNUSED (
*** 1773,1779 ****
  static void
  set_std_c89 (int c94, int iso)
  {
!   cpp_set_lang (parse_in, c94 ? CLK_STDC94: iso ? CLK_STDC89: CLK_GNUC89);
    flag_iso = iso;
    flag_no_asm = iso;
    flag_no_gnu_keywords = iso;
--- 1841,1847 ----
  static void
  set_std_c89 (int c94, int iso)
  {
!   cpp_set_lang (parse_in, c94 ? CLK_STDC94 : iso ? CLK_STDC89 : CLK_GNUC89);
    flag_iso = iso;
    flag_no_asm = iso;
    flag_no_gnu_keywords = iso;
*************** set_std_c89 (int c94, int iso)
*** 1782,1787 ****
--- 1850,1856 ----
    flag_isoc99 = 0;
    flag_isoc11 = 0;
    flag_isoc23 = 0;
+   flag_isoc2y = 0;
    lang_hooks.name = "GNU C89";
  }
  
*************** set_std_c89 (int c94, int iso)
*** 1789,1798 ****
  static void
  set_std_c99 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC99: CLK_GNUC99);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
    flag_isoc23 = 0;
    flag_isoc11 = 0;
    flag_isoc99 = 1;
--- 1858,1868 ----
  static void
  set_std_c99 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC99 : CLK_GNUC99);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
+   flag_isoc2y = 0;
    flag_isoc23 = 0;
    flag_isoc11 = 0;
    flag_isoc99 = 1;
*************** set_std_c99 (int iso)
*** 1804,1813 ****
  static void
  set_std_c11 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC11: CLK_GNUC11);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
    flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
--- 1874,1884 ----
  static void
  set_std_c11 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC11 : CLK_GNUC11);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
+   flag_isoc2y = 0;
    flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
*************** set_std_c11 (int iso)
*** 1819,1828 ****
  static void
  set_std_c17 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC17: CLK_GNUC17);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
    flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
--- 1890,1900 ----
  static void
  set_std_c17 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC17 : CLK_GNUC17);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
+   flag_isoc2y = 0;
    flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
*************** set_std_c17 (int iso)
*** 1830,1843 ****
    lang_hooks.name = "GNU C17";
  }
  
! /* Set the C 2X standard (without GNU extensions if ISO).  */
  static void
  set_std_c23 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC23: CLK_GNUC23);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
    flag_isoc23 = 1;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
--- 1902,1916 ----
    lang_hooks.name = "GNU C17";
  }
  
! /* Set the C 23 standard (without GNU extensions if ISO).  */
  static void
  set_std_c23 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC23 : CLK_GNUC23);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
+   flag_isoc2y = 0;
    flag_isoc23 = 1;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
*************** set_std_c23 (int iso)
*** 1845,1856 ****
    lang_hooks.name = "GNU C23";
  }
  
  
  /* Set the C++ 98 standard (without GNU extensions if ISO).  */
  static void
  set_std_cxx98 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX98: CLK_GNUCXX);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 1918,1945 ----
    lang_hooks.name = "GNU C23";
  }
  
+ /* Set the C 2Y standard (without GNU extensions if ISO).  */
+ static void
+ set_std_c2y (int iso)
+ {
+   cpp_set_lang (parse_in, iso ? CLK_STDC2Y : CLK_GNUC2Y);
+   flag_no_asm = iso;
+   flag_no_nonansi_builtin = iso;
+   flag_iso = iso;
+   flag_isoc2y = 1;
+   flag_isoc23 = 1;
+   flag_isoc11 = 1;
+   flag_isoc99 = 1;
+   flag_isoc94 = 1;
+   lang_hooks.name = "GNU C2Y";
+ }
+ 
  
  /* Set the C++ 98 standard (without GNU extensions if ISO).  */
  static void
  set_std_cxx98 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX98 : CLK_GNUCXX);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx98 (int iso)
*** 1864,1870 ****
  static void
  set_std_cxx11 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX11: CLK_GNUCXX11);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 1953,1959 ----
  static void
  set_std_cxx11 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX11 : CLK_GNUCXX11);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx11 (int iso)
*** 1879,1885 ****
  static void
  set_std_cxx14 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX14: CLK_GNUCXX14);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 1968,1974 ----
  static void
  set_std_cxx14 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX14 : CLK_GNUCXX14);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx14 (int iso)
*** 1894,1900 ****
  static void
  set_std_cxx17 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX17: CLK_GNUCXX17);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 1983,1989 ----
  static void
  set_std_cxx17 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX17 : CLK_GNUCXX17);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx17 (int iso)
*** 1910,1916 ****
  static void
  set_std_cxx20 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX20: CLK_GNUCXX20);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 1999,2005 ----
  static void
  set_std_cxx20 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX20 : CLK_GNUCXX20);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx20 (int iso)
*** 1928,1934 ****
  static void
  set_std_cxx23 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX23: CLK_GNUCXX23);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 2017,2023 ----
  static void
  set_std_cxx23 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX23 : CLK_GNUCXX23);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
*************** set_std_cxx23 (int iso)
*** 1946,1952 ****
  static void
  set_std_cxx26 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX26: CLK_GNUCXX26);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
--- 2035,2041 ----
  static void
  set_std_cxx26 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_CXX26 : CLK_GNUCXX26);
    flag_no_gnu_keywords = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-pch.cc gcc-15.1.0/gcc/c-family/c-pch.cc
*** gcc-14.2.0/gcc/c-family/c-pch.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-pch.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 28,33 ****
--- 28,34 ----
  #include "c-pragma.h"
  #include "langhooks.h"
  #include "hosthooks.h"
+ #include "diagnostic.h"
  
  /* This is a list of flag variables that must match exactly, and their
     names for the error message.  The possible values for *flag_var must
*************** c_common_write_pch (void)
*** 178,184 ****
    cpp_write_pch_state (parse_in, pch_outfile);
    timevar_pop (TV_PCH_CPP_SAVE);
  
!   if (fseek (pch_outfile, 0, SEEK_SET) != 0
        || fwrite (get_ident (), IDENT_LENGTH, 1, pch_outfile) != 1)
      fatal_error (input_location, "cannot write %s: %m", pch_file);
  
--- 179,186 ----
    cpp_write_pch_state (parse_in, pch_outfile);
    timevar_pop (TV_PCH_CPP_SAVE);
  
!   if (global_dc->pch_save (pch_outfile) < 0
!       || fseek (pch_outfile, 0, SEEK_SET) != 0
        || fwrite (get_ident (), IDENT_LENGTH, 1, pch_outfile) != 1)
      fatal_error (input_location, "cannot write %s: %m", pch_file);
  
*************** c_common_read_pch (cpp_reader *pfile, co
*** 359,364 ****
--- 361,370 ----
    linemap_line_start (line_table, saved_loc.line, 0);
  
    timevar_pop (TV_PCH_CPP_RESTORE);
+ 
+   if (global_dc->pch_restore (f) < 0)
+     fatal_error (input_location, "cannot read %s: %m", name);
+ 
    fclose (f);
  
    if (cpp_result != 0)
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-ppoutput.cc gcc-15.1.0/gcc/c-family/c-ppoutput.cc
*** gcc-14.2.0/gcc/c-family/c-ppoutput.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-ppoutput.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Preprocess only, using cpplib.
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
     Written by Per Bothner, 1994-95.
  
     This program is free software; you can redistribute it and/or modify it
--- 1,5 ----
  /* Preprocess only, using cpplib.
!    Copyright (C) 1995-2025 Free Software Foundation, Inc.
     Written by Per Bothner, 1994-95.
  
     This program is free software; you can redistribute it and/or modify it
*************** preprocess_file (cpp_reader *pfile)
*** 92,101 ****
       cpp_scan_nooutput or cpp_get_token next.  */
    if (flag_no_output && pfile->buffer)
      {
!       /* Scan -included buffers, then the main file.  */
!       while (pfile->buffer->prev)
! 	cpp_scan_nooutput (pfile);
!       cpp_scan_nooutput (pfile);
      }
    else if (cpp_get_options (pfile)->traditional)
      scan_translation_unit_trad (pfile);
--- 92,109 ----
       cpp_scan_nooutput or cpp_get_token next.  */
    if (flag_no_output && pfile->buffer)
      {
!       if (flag_modules)
! 	{
! 	  /* For macros from imported headers we need directives_only_cb.  */
! 	  scan_translation_unit_directives_only (pfile);
! 	}
!       else
! 	{
! 	  /* Scan -included buffers, then the main file.  */
! 	  while (pfile->buffer->prev)
! 	    cpp_scan_nooutput (pfile);
! 	  cpp_scan_nooutput (pfile);
! 	}
      }
    else if (cpp_get_options (pfile)->traditional)
      scan_translation_unit_trad (pfile);
*************** init_pp_output (FILE *out_stream)
*** 164,169 ****
--- 172,178 ----
    cb->has_builtin = c_common_has_builtin;
    cb->has_feature = c_common_has_feature;
    cb->get_source_date_epoch = cb_get_source_date_epoch;
+   cb->get_suggestion = cb_get_suggestion;
    cb->remap_filename = remap_macro_filename;
  
    /* Initialize the print structure.  */
*************** class token_streamer
*** 197,203 ****
        print.streamer = this;
      }
  
!   void begin_pragma () 
    {
      in_pragma = true;
    }
--- 206,212 ----
        print.streamer = this;
      }
  
!   void begin_pragma ()
    {
      in_pragma = true;
    }
*************** token_streamer::stream (cpp_reader *pfil
*** 299,304 ****
--- 308,367 ----
  	maybe_print_line (UNKNOWN_LOCATION);
        in_pragma = false;
      }
+   else if (token->type == CPP_EMBED)
+     {
+       char buf[76 + 6];
+       maybe_print_line (token->src_loc);
+       gcc_checking_assert (token->val.str.len != 0);
+       fputs ("#embed \".\" __gnu__::__base64__(", print.outf);
+       if (token->val.str.len > 30)
+ 	{
+ 	  fputs (" \\\n", print.outf);
+ 	  print.src_line++;
+ 	}
+       buf[0] = '"';
+       memcpy (buf + 1 + 76, "\" \\\n", 5);
+       unsigned int j = 1;
+       static const char base64_enc[] =
+ 	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+       for (unsigned i = 0; ; i += 3)
+ 	{
+ 	  unsigned char a = token->val.str.text[i];
+ 	  unsigned char b = 0, c = 0;
+ 	  unsigned int n = token->val.str.len - i;
+ 	  if (n > 1)
+ 	    b = token->val.str.text[i + 1];
+ 	  if (n > 2)
+ 	    c = token->val.str.text[i + 2];
+ 	  unsigned long v = ((((unsigned long) a) << 16)
+ 			     | (((unsigned long) b) << 8)
+ 			     | c);
+ 	  buf[j++] = base64_enc[(v >> 18) & 63];
+ 	  buf[j++] = base64_enc[(v >> 12) & 63];
+ 	  buf[j++] = base64_enc[(v >> 6) & 63];
+ 	  buf[j++] = base64_enc[v & 63];
+ 	  if (j == 76 + 1 || n <= 3)
+ 	    {
+ 	      if (n < 3)
+ 		{
+ 		  buf[j - 1] = '=';
+ 		  if (n == 1)
+ 		    buf[j - 2] = '=';
+ 		}
+ 	      if (n <= 3)
+ 		memcpy (buf + j, "\")", 3);
+ 	      else
+ 		print.src_line++;
+ 	      fputs (buf, print.outf);
+ 	      j = 1;
+ 	      if (n <= 3)
+ 		break;
+ 	    }
+ 	}
+       print.printed = true;
+       maybe_print_line (token->src_loc);
+       return;
+     }
    else
      {
        if (cpp_get_options (parse_in)->debug)
*************** directives_only_cb (cpp_reader *pfile, C
*** 388,415 ****
        gcc_unreachable ();
  
      case CPP_DO_print:
!       {
! 	print.src_line += va_arg (args, unsigned);
  
! 	const void *buf = va_arg (args, const void *);
! 	size_t size = va_arg (args, size_t);
! 	fwrite (buf, 1, size, print.outf);
!       }
        break;
  
      case CPP_DO_location:
!       maybe_print_line (va_arg (args, location_t));
        break;
  
      case CPP_DO_token:
        {
  	const cpp_token *token = va_arg (args, const cpp_token *);
! 	location_t spelling_loc = va_arg (args, location_t);
! 	streamer->stream (pfile, token, spelling_loc);
  	if (streamer->filter)
  	  {
! 	    unsigned flags = lang_hooks.preprocess_token
! 	      (pfile, token, streamer->filter);
  	    if (flags & lang_hooks::PT_begin_pragma)
  	      streamer->begin_pragma ();
  	  }
--- 451,481 ----
        gcc_unreachable ();
  
      case CPP_DO_print:
!       if (!flag_no_output)
! 	{
! 	  print.src_line += va_arg (args, unsigned);
  
! 	  const void *buf = va_arg (args, const void *);
! 	  size_t size = va_arg (args, size_t);
! 	  fwrite (buf, 1, size, print.outf);
! 	}
        break;
  
      case CPP_DO_location:
!       if (!flag_no_output)
! 	maybe_print_line (va_arg (args, location_t));
        break;
  
      case CPP_DO_token:
        {
  	const cpp_token *token = va_arg (args, const cpp_token *);
! 	unsigned flags = 0;
  	if (streamer->filter)
+ 	  flags = lang_hooks.preprocess_token (pfile, token, streamer->filter);
+ 	if (!flag_no_output)
  	  {
! 	    location_t spelling_loc = va_arg (args, location_t);
! 	    streamer->stream (pfile, token, spelling_loc);
  	    if (flags & lang_hooks::PT_begin_pragma)
  	      streamer->begin_pragma ();
  	  }
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-pragma.cc gcc-15.1.0/gcc/c-family/c-pragma.cc
*** gcc-14.2.0/gcc/c-family/c-pragma.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-pragma.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Handle #pragma, system V.4 style.  Supports #pragma weak and #pragma pack.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Handle #pragma, system V.4 style.  Supports #pragma weak and #pragma pack.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** handle_pragma_float_const_decimal64 (cpp
*** 1487,1503 ****
  
  /* A vector of registered pragma callbacks, which is never freed.   */
  
- static vec<internal_pragma_handler> registered_pragmas;
  
! struct pragma_pp_data
  {
    const char *space;
    const char *name;
!   pragma_handler_1arg early_handler;
  };
  
! 
! static vec<pragma_pp_data> registered_pp_pragmas;
  
  struct omp_pragma_def { const char *name; unsigned int id; };
  static const struct omp_pragma_def oacc_pragmas[] = {
--- 1487,1501 ----
  
  /* A vector of registered pragma callbacks, which is never freed.   */
  
  
! struct pragma_data
  {
    const char *space;
    const char *name;
!   struct internal_pragma_handler ihandler;
  };
  
! static vec<pragma_data> registered_pragmas;
  
  struct omp_pragma_def { const char *name; unsigned int id; };
  static const struct omp_pragma_def oacc_pragmas[] = {
*************** static const struct omp_pragma_def omp_p
*** 1526,1534 ****
--- 1524,1535 ----
    { "cancellation", PRAGMA_OMP_CANCELLATION_POINT },
    { "critical", PRAGMA_OMP_CRITICAL },
    { "depobj", PRAGMA_OMP_DEPOBJ },
+   { "dispatch", PRAGMA_OMP_DISPATCH },
    { "error", PRAGMA_OMP_ERROR },
    { "end", PRAGMA_OMP_END },
    { "flush", PRAGMA_OMP_FLUSH },
+   { "interop", PRAGMA_OMP_INTEROP },
+   { "metadirective", PRAGMA_OMP_METADIRECTIVE },
    { "nothing", PRAGMA_OMP_NOTHING },
    { "requires", PRAGMA_OMP_REQUIRES },
    { "scope", PRAGMA_OMP_SCOPE },
*************** static const struct omp_pragma_def omp_p
*** 1556,1561 ****
--- 1557,1564 ----
    { "target", PRAGMA_OMP_TARGET },
    { "taskloop", PRAGMA_OMP_TASKLOOP },
    { "teams", PRAGMA_OMP_TEAMS },
+   { "tile", PRAGMA_OMP_TILE },
+   { "unroll", PRAGMA_OMP_UNROLL },
  };
  
  void
*************** c_pp_lookup_pragma (unsigned int id, con
*** 1563,1570 ****
  {
    const int n_oacc_pragmas = ARRAY_SIZE (oacc_pragmas);
    const int n_omp_pragmas = ARRAY_SIZE (omp_pragmas);
!   const int n_omp_pragmas_simd = sizeof (omp_pragmas_simd)
! 				 / sizeof (*omp_pragmas);
    int i;
  
    for (i = 0; i < n_oacc_pragmas; ++i)
--- 1566,1572 ----
  {
    const int n_oacc_pragmas = ARRAY_SIZE (oacc_pragmas);
    const int n_omp_pragmas = ARRAY_SIZE (omp_pragmas);
!   const int n_omp_pragmas_simd = ARRAY_SIZE (omp_pragmas_simd);
    int i;
  
    for (i = 0; i < n_oacc_pragmas; ++i)
*************** c_pp_lookup_pragma (unsigned int id, con
*** 1592,1601 ****
        }
  
    if (id >= PRAGMA_FIRST_EXTERNAL
!       && (id < PRAGMA_FIRST_EXTERNAL + registered_pp_pragmas.length ()))
      {
!       *space = registered_pp_pragmas[id - PRAGMA_FIRST_EXTERNAL].space;
!       *name = registered_pp_pragmas[id - PRAGMA_FIRST_EXTERNAL].name;
        return;
      }
  
--- 1594,1603 ----
        }
  
    if (id >= PRAGMA_FIRST_EXTERNAL
!       && (id < PRAGMA_FIRST_EXTERNAL + registered_pragmas.length ()))
      {
!       *space = registered_pragmas[id - PRAGMA_FIRST_EXTERNAL].space;
!       *name = registered_pragmas[id - PRAGMA_FIRST_EXTERNAL].name;
        return;
      }
  
*************** c_register_pragma_1 (const char *space,
*** 1611,1641 ****
  {
    unsigned id;
  
!   if (flag_preprocess_only)
!     {
!       if (cpp_get_options (parse_in)->directives_only
! 	  || !(allow_expansion || ihandler.early_handler.handler_1arg))
! 	return;
  
!       pragma_pp_data pp_data;
!       pp_data.space = space;
!       pp_data.name = name;
!       pp_data.early_handler = ihandler.early_handler.handler_1arg;
!       registered_pp_pragmas.safe_push (pp_data);
!       id = registered_pp_pragmas.length ();
!       id += PRAGMA_FIRST_EXTERNAL - 1;
!     }
!   else
!     {
!       registered_pragmas.safe_push (ihandler);
!       id = registered_pragmas.length ();
!       id += PRAGMA_FIRST_EXTERNAL - 1;
  
!       /* The C front end allocates 8 bits in c_token.  The C++ front end
! 	 keeps the pragma kind in the form of INTEGER_CST, so no small
! 	 limit applies.  At present this is sufficient.  */
!       gcc_assert (id < 256);
!     }
  
    cpp_register_deferred_pragma (parse_in, space, name, id,
  				allow_expansion, false);
--- 1613,1636 ----
  {
    unsigned id;
  
!   pragma_data data;
!   data.space = space;
!   data.name = name;
  
!   if (flag_preprocess_only
!       && (cpp_get_options (parse_in)->directives_only
! 	|| !(allow_expansion || ihandler.early_handler.handler_1arg)))
!     return;
  
!   data.ihandler = ihandler;
!   registered_pragmas.safe_push (data);
!   id = registered_pragmas.length ();
!   id += PRAGMA_FIRST_EXTERNAL - 1;
! 
!   /* The C front end allocates 8 bits in c_token.  The C++ front end
!      keeps the pragma kind in the form of INTEGER_CST, so no small
!      limit applies.  At present this is sufficient.  */
!   gcc_assert (id < 256);
  
    cpp_register_deferred_pragma (parse_in, space, name, id,
  				allow_expansion, false);
*************** c_invoke_pragma_handler (unsigned int id
*** 1729,1735 ****
    pragma_handler_2arg handler_2arg;
  
    id -= PRAGMA_FIRST_EXTERNAL;
!   ihandler = &registered_pragmas[id];
    if (ihandler->extra_data)
      {
        handler_2arg = ihandler->handler.handler_2arg;
--- 1724,1730 ----
    pragma_handler_2arg handler_2arg;
  
    id -= PRAGMA_FIRST_EXTERNAL;
!   ihandler = &registered_pragmas[id].ihandler;
    if (ihandler->extra_data)
      {
        handler_2arg = ihandler->handler.handler_2arg;
*************** c_invoke_early_pragma_handler (unsigned
*** 1751,1757 ****
    pragma_handler_2arg handler_2arg;
  
    id -= PRAGMA_FIRST_EXTERNAL;
!   ihandler = &registered_pragmas[id];
    if (ihandler->extra_data)
      {
        handler_2arg = ihandler->early_handler.handler_2arg;
--- 1746,1752 ----
    pragma_handler_2arg handler_2arg;
  
    id -= PRAGMA_FIRST_EXTERNAL;
!   ihandler = &registered_pragmas[id].ihandler;
    if (ihandler->extra_data)
      {
        handler_2arg = ihandler->early_handler.handler_2arg;
*************** c_invoke_early_pragma_handler (unsigned
*** 1769,1778 ****
  void
  c_pp_invoke_early_pragma_handler (unsigned int id)
  {
!   const auto data = &registered_pp_pragmas[id - PRAGMA_FIRST_EXTERNAL];
!   if (data->early_handler)
      {
!       data->early_handler (parse_in);
        pragma_lex_discard_to_eol ();
      }
  }
--- 1764,1774 ----
  void
  c_pp_invoke_early_pragma_handler (unsigned int id)
  {
!   const auto data = &registered_pragmas[id - PRAGMA_FIRST_EXTERNAL];
!   pragma_handler_1arg handler = data->ihandler.early_handler.handler_1arg;
!   if (handler)
      {
!       handler (parse_in);
        pragma_lex_discard_to_eol ();
      }
  }
*************** init_pragma (void)
*** 1805,1812 ****
  	}
        if (flag_openmp || flag_openmp_simd)
  	{
! 	  const int n_omp_pragmas_simd
! 	    = sizeof (omp_pragmas_simd) / sizeof (*omp_pragmas);
  	  int i;
  
  	  for (i = 0; i < n_omp_pragmas_simd; ++i)
--- 1801,1807 ----
  	}
        if (flag_openmp || flag_openmp_simd)
  	{
! 	  const int n_omp_pragmas_simd = ARRAY_SIZE (omp_pragmas_simd);
  	  int i;
  
  	  for (i = 0; i < n_omp_pragmas_simd; ++i)
*************** init_pragma (void)
*** 1879,1885 ****
  #endif
  
    global_sso = default_sso;
!   c_register_pragma (0, "scalar_storage_order", 
  		     handle_pragma_scalar_storage_order);
  
    /* Allow plugins to register their own pragmas. */
--- 1874,1880 ----
  #endif
  
    global_sso = default_sso;
!   c_register_pragma (0, "scalar_storage_order",
  		     handle_pragma_scalar_storage_order);
  
    /* Allow plugins to register their own pragmas. */
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-pragma.h gcc-15.1.0/gcc/c-family/c-pragma.h
*** gcc-14.2.0/gcc/c-family/c-pragma.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-pragma.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Pragma related interfaces.
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Pragma related interfaces.
!    Copyright (C) 1995-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum pragma_kind {
*** 55,69 ****
--- 55,72 ----
    PRAGMA_OMP_CRITICAL,
    PRAGMA_OMP_DECLARE,
    PRAGMA_OMP_DEPOBJ,
+   PRAGMA_OMP_DISPATCH,
    PRAGMA_OMP_DISTRIBUTE,
    PRAGMA_OMP_ERROR,
    PRAGMA_OMP_END,
    PRAGMA_OMP_FLUSH,
    PRAGMA_OMP_FOR,
+   PRAGMA_OMP_INTEROP,
    PRAGMA_OMP_LOOP,
    PRAGMA_OMP_NOTHING,
    PRAGMA_OMP_MASKED,
    PRAGMA_OMP_MASTER,
+   PRAGMA_OMP_METADIRECTIVE,
    PRAGMA_OMP_ORDERED,
    PRAGMA_OMP_PARALLEL,
    PRAGMA_OMP_REQUIRES,
*************** enum pragma_kind {
*** 81,88 ****
    PRAGMA_OMP_TASKYIELD,
    PRAGMA_OMP_THREADPRIVATE,
    PRAGMA_OMP_TEAMS,
    /* PRAGMA_OMP__LAST_ should be equal to the last PRAGMA_OMP_* code.  */
!   PRAGMA_OMP__LAST_ = PRAGMA_OMP_TEAMS,
  
    PRAGMA_GCC_PCH_PREPROCESS,
    PRAGMA_IVDEP,
--- 84,93 ----
    PRAGMA_OMP_TASKYIELD,
    PRAGMA_OMP_THREADPRIVATE,
    PRAGMA_OMP_TEAMS,
+   PRAGMA_OMP_TILE,
+   PRAGMA_OMP_UNROLL,
    /* PRAGMA_OMP__LAST_ should be equal to the last PRAGMA_OMP_* code.  */
!   PRAGMA_OMP__LAST_ = PRAGMA_OMP_UNROLL,
  
    PRAGMA_GCC_PCH_PREPROCESS,
    PRAGMA_IVDEP,
*************** enum pragma_omp_clause {
*** 108,113 ****
--- 113,119 ----
    PRAGMA_OMP_CLAUSE_DEFAULT,
    PRAGMA_OMP_CLAUSE_DEFAULTMAP,
    PRAGMA_OMP_CLAUSE_DEPEND,
+   PRAGMA_OMP_CLAUSE_DESTROY,
    PRAGMA_OMP_CLAUSE_DETACH,
    PRAGMA_OMP_CLAUSE_DEVICE,
    PRAGMA_OMP_CLAUSE_DEVICE_TYPE,
*************** enum pragma_omp_clause {
*** 119,124 ****
--- 125,131 ----
    PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
    PRAGMA_OMP_CLAUSE_FOR,
    PRAGMA_OMP_CLAUSE_FROM,
+   PRAGMA_OMP_CLAUSE_FULL,
    PRAGMA_OMP_CLAUSE_GRAINSIZE,
    PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR,
    PRAGMA_OMP_CLAUSE_HINT,
*************** enum pragma_omp_clause {
*** 126,140 ****
--- 133,151 ----
    PRAGMA_OMP_CLAUSE_IN_REDUCTION,
    PRAGMA_OMP_CLAUSE_INBRANCH,
    PRAGMA_OMP_CLAUSE_INDIRECT,
+   PRAGMA_OMP_CLAUSE_INIT,
    PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR,
+   PRAGMA_OMP_CLAUSE_INTEROP,
    PRAGMA_OMP_CLAUSE_LASTPRIVATE,
    PRAGMA_OMP_CLAUSE_LINEAR,
    PRAGMA_OMP_CLAUSE_LINK,
    PRAGMA_OMP_CLAUSE_MAP,
    PRAGMA_OMP_CLAUSE_MERGEABLE,
+   PRAGMA_OMP_CLAUSE_NOCONTEXT,
    PRAGMA_OMP_CLAUSE_NOGROUP,
    PRAGMA_OMP_CLAUSE_NONTEMPORAL,
    PRAGMA_OMP_CLAUSE_NOTINBRANCH,
+   PRAGMA_OMP_CLAUSE_NOVARIANTS,
    PRAGMA_OMP_CLAUSE_NOWAIT,
    PRAGMA_OMP_CLAUSE_NUM_TASKS,
    PRAGMA_OMP_CLAUSE_NUM_TEAMS,
*************** enum pragma_omp_clause {
*** 142,147 ****
--- 153,159 ----
    PRAGMA_OMP_CLAUSE_ORDER,
    PRAGMA_OMP_CLAUSE_ORDERED,
    PRAGMA_OMP_CLAUSE_PARALLEL,
+   PRAGMA_OMP_CLAUSE_PARTIAL,
    PRAGMA_OMP_CLAUSE_PRIORITY,
    PRAGMA_OMP_CLAUSE_PRIVATE,
    PRAGMA_OMP_CLAUSE_PROC_BIND,
*************** enum pragma_omp_clause {
*** 159,164 ****
--- 171,177 ----
    PRAGMA_OMP_CLAUSE_TO,
    PRAGMA_OMP_CLAUSE_UNIFORM,
    PRAGMA_OMP_CLAUSE_UNTIED,
+   PRAGMA_OMP_CLAUSE_USE,
    PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR,
    PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR,
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-pretty-print.cc gcc-15.1.0/gcc/c-family/c-pretty-print.cc
*** gcc-14.2.0/gcc/c-family/c-pretty-print.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-pretty-print.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Subroutines common to both C and C++ pretty-printers.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines common to both C and C++ pretty-printers.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 36,41 ****
--- 36,42 ----
  #include "function.h"
  #include "basic-block.h"
  #include "gimple.h"
+ #include "make-unique.h"
  
  /* The pretty-printer code is primarily designed to closely follow
     (GNU) C and C++ grammars.  That is to be contrasted with spaghetti
*************** along with GCC; see the file COPYING3.
*** 47,53 ****
  
  #define pp_c_maybe_whitespace(PP)            \
     do {                                      \
!      if ((PP)->padding == pp_before) \
         pp_c_whitespace (PP);                 \
     } while (0)
  
--- 48,54 ----
  
  #define pp_c_maybe_whitespace(PP)            \
     do {                                      \
!      if ((PP)->get_padding () == pp_before)  \
         pp_c_whitespace (PP);                 \
     } while (0)
  
*************** void
*** 76,173 ****
  pp_c_whitespace (c_pretty_printer *pp)
  {
    pp_space (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_left_paren (c_pretty_printer *pp)
  {
    pp_left_paren (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_right_paren (c_pretty_printer *pp)
  {
    pp_right_paren (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_left_brace (c_pretty_printer *pp)
  {
    pp_left_brace (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_right_brace (c_pretty_printer *pp)
  {
    pp_right_brace (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_left_bracket (c_pretty_printer *pp)
  {
    pp_left_bracket (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_right_bracket (c_pretty_printer *pp)
  {
    pp_right_bracket (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_dot (c_pretty_printer *pp)
  {
    pp_dot (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_ampersand (c_pretty_printer *pp)
  {
    pp_ampersand (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_star (c_pretty_printer *pp)
  {
    pp_star (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_arrow (c_pretty_printer *pp)
  {
    pp_arrow (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_semicolon (c_pretty_printer *pp)
  {
    pp_semicolon (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_complement (c_pretty_printer *pp)
  {
    pp_complement (pp);
!   pp->padding = pp_none;
  }
  
  void
  pp_c_exclamation (c_pretty_printer *pp)
  {
    pp_exclamation (pp);
!   pp->padding = pp_none;
  }
  
  /* Print out the external representation of QUALIFIERS.  */
--- 77,174 ----
  pp_c_whitespace (c_pretty_printer *pp)
  {
    pp_space (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_left_paren (c_pretty_printer *pp)
  {
    pp_left_paren (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_right_paren (c_pretty_printer *pp)
  {
    pp_right_paren (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_left_brace (c_pretty_printer *pp)
  {
    pp_left_brace (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_right_brace (c_pretty_printer *pp)
  {
    pp_right_brace (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_left_bracket (c_pretty_printer *pp)
  {
    pp_left_bracket (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_right_bracket (c_pretty_printer *pp)
  {
    pp_right_bracket (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_dot (c_pretty_printer *pp)
  {
    pp_dot (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_ampersand (c_pretty_printer *pp)
  {
    pp_ampersand (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_star (c_pretty_printer *pp)
  {
    pp_star (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_arrow (c_pretty_printer *pp)
  {
    pp_arrow (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_semicolon (c_pretty_printer *pp)
  {
    pp_semicolon (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_complement (c_pretty_printer *pp)
  {
    pp_complement (pp);
!   pp->set_padding (pp_none);
  }
  
  void
  pp_c_exclamation (c_pretty_printer *pp)
  {
    pp_exclamation (pp);
!   pp->set_padding (pp_none);
  }
  
  /* Print out the external representation of QUALIFIERS.  */
*************** c_pretty_printer::direct_abstract_declar
*** 688,694 ****
  			maxval = TREE_OPERAND (maxval, 0);
  		    }
  
! 		  expression (maxval);
  		}
  	    }
  	  else if (TYPE_SIZE (t))
--- 689,699 ----
  			maxval = TREE_OPERAND (maxval, 0);
  		    }
  
! 		  /* This covers unspecified bounds.  */
! 		  if (TREE_CODE (maxval) == COMPOUND_EXPR)
! 		    pp_string (this, "*");
! 		  else
! 		    expression (maxval);
  		}
  	    }
  	  else if (TYPE_SIZE (t))
*************** c_pretty_printer::storage_class_specifie
*** 748,754 ****
      pp_c_ws_string (this, "typedef");
    else if (DECL_P (t))
      {
!       if (DECL_REGISTER (t))
  	pp_c_ws_string (this, "register");
        else if (TREE_STATIC (t) && VAR_P (t))
  	pp_c_ws_string (this, "static");
--- 753,760 ----
      pp_c_ws_string (this, "typedef");
    else if (DECL_P (t))
      {
!       if ((TREE_CODE (t) == PARM_DECL || VAR_P (t))
! 	  && DECL_REGISTER (t))
  	pp_c_ws_string (this, "register");
        else if (TREE_STATIC (t) && VAR_P (t))
  	pp_c_ws_string (this, "static");
*************** pp_c_integer_constant (c_pretty_printer
*** 1043,1049 ****
  	  wi = -wi;
  	}
        unsigned int prec = wi.get_precision ();
!       if ((prec + 3) / 4 > sizeof (pp_buffer (pp)->digit_buffer) - 3)
  	{
  	  char *buf = XALLOCAVEC (char, (prec + 3) / 4 + 3);
  	  print_hex (wi, buf);
--- 1049,1055 ----
  	  wi = -wi;
  	}
        unsigned int prec = wi.get_precision ();
!       if ((prec + 3) / 4 > sizeof (pp_buffer (pp)->m_digit_buffer) - 3)
  	{
  	  char *buf = XALLOCAVEC (char, (prec + 3) / 4 + 3);
  	  print_hex (wi, buf);
*************** pp_c_integer_constant (c_pretty_printer
*** 1051,1058 ****
  	}
        else
  	{
! 	  print_hex (wi, pp_buffer (pp)->digit_buffer);
! 	  pp_string (pp, pp_buffer (pp)->digit_buffer);
  	}
      }
  }
--- 1057,1064 ----
  	}
        else
  	{
! 	  print_hex (wi, pp_buffer (pp)->m_digit_buffer);
! 	  pp_string (pp, pp_buffer (pp)->m_digit_buffer);
  	}
      }
  }
*************** pp_c_floating_constant (c_pretty_printer
*** 1138,1148 ****
       log10(2) to 7 significant digits.  */
    int max_digits10 = 2 + (is_decimal ? fmt->p : fmt->p * 643L / 2136);
  
!   real_to_decimal (pp_buffer (pp)->digit_buffer, &TREE_REAL_CST (r),
! 		   sizeof (pp_buffer (pp)->digit_buffer),
  		   max_digits10, 1);
  
!   pp_string (pp, pp_buffer(pp)->digit_buffer);
    if (TREE_TYPE (r) == float_type_node)
      pp_character (pp, 'f');
    else if (TREE_TYPE (r) == long_double_type_node)
--- 1144,1154 ----
       log10(2) to 7 significant digits.  */
    int max_digits10 = 2 + (is_decimal ? fmt->p : fmt->p * 643L / 2136);
  
!   real_to_decimal (pp_buffer (pp)->m_digit_buffer, &TREE_REAL_CST (r),
! 		   sizeof (pp_buffer (pp)->m_digit_buffer),
  		   max_digits10, 1);
  
!   pp_string (pp, pp_buffer(pp)->m_digit_buffer);
    if (TREE_TYPE (r) == float_type_node)
      pp_character (pp, 'f');
    else if (TREE_TYPE (r) == long_double_type_node)
*************** pp_c_floating_constant (c_pretty_printer
*** 1153,1158 ****
--- 1159,1166 ----
      pp_string (pp, "dd");
    else if (TREE_TYPE (r) == dfloat32_type_node)
      pp_string (pp, "df");
+   else if (TREE_TYPE (r) == dfloat64x_type_node)
+     pp_string (pp, "d64x");
    else if (TREE_TYPE (r) != double_type_node)
      for (int i = 0; i < NUM_FLOATN_NX_TYPES; i++)
        if (TREE_TYPE (r) == FLOATN_NX_TYPE_NODE (i))
*************** pp_c_floating_constant (c_pretty_printer
*** 1170,1178 ****
  static void
  pp_c_fixed_constant (c_pretty_printer *pp, tree r)
  {
!   fixed_to_decimal (pp_buffer (pp)->digit_buffer, &TREE_FIXED_CST (r),
! 		   sizeof (pp_buffer (pp)->digit_buffer));
!   pp_string (pp, pp_buffer(pp)->digit_buffer);
  }
  
  /* Pretty-print a compound literal expression.  GNU extensions include
--- 1178,1186 ----
  static void
  pp_c_fixed_constant (c_pretty_printer *pp, tree r)
  {
!   fixed_to_decimal (pp_buffer (pp)->m_digit_buffer, &TREE_FIXED_CST (r),
! 		   sizeof (pp_buffer (pp)->m_digit_buffer));
!   pp_string (pp, pp_buffer(pp)->m_digit_buffer);
  }
  
  /* Pretty-print a compound literal expression.  GNU extensions include
*************** pp_c_ws_string (c_pretty_printer *pp, co
*** 1307,1313 ****
  {
    pp_c_maybe_whitespace (pp);
    pp_string (pp, str);
!   pp->padding = pp_before;
  }
  
  void
--- 1315,1321 ----
  {
    pp_c_maybe_whitespace (pp);
    pp_string (pp, str);
!   pp->set_padding (pp_before);
  }
  
  void
*************** pp_c_identifier (c_pretty_printer *pp, c
*** 1328,1334 ****
  {
    pp_c_maybe_whitespace (pp);
    pp_identifier (pp, id);
!   pp->padding = pp_before;
  }
  
  /* Pretty-print a C primary-expression.
--- 1336,1342 ----
  {
    pp_c_maybe_whitespace (pp);
    pp_identifier (pp, id);
!   pp->set_padding (pp_before);
  }
  
  /* Pretty-print a C primary-expression.
*************** c_pretty_printer::primary_expression (tr
*** 1376,1418 ****
        pp_c_ws_string (this, "__builtin_memcpy");
        pp_c_left_paren (this);
        pp_ampersand (this);
!       primary_expression (TREE_OPERAND (e, 0));
        pp_separate_with (this, ',');
        pp_ampersand (this);
!       initializer (TREE_OPERAND (e, 1));
!       if (TREE_OPERAND (e, 2))
  	{
  	  pp_separate_with (this, ',');
! 	  expression (TREE_OPERAND (e, 2));
  	}
        pp_c_right_paren (this);
        break;
  
      case SSA_NAME:
        if (SSA_NAME_VAR (e))
! 	{
! 	  tree var = SSA_NAME_VAR (e);
! 	  if (tree id = SSA_NAME_IDENTIFIER (e))
! 	    {
! 	      const char *name = IDENTIFIER_POINTER (id);
! 	      const char *dot;
! 	      if (DECL_ARTIFICIAL (var) && (dot = strchr (name, '.')))
! 		{
! 		  /* Print the name without the . suffix (such as in VLAs).
! 		     Use pp_c_identifier so that it can be converted into
! 		     the appropriate encoding.  */
! 		  size_t size = dot - name;
! 		  char *ident = XALLOCAVEC (char, size + 1);
! 		  memcpy (ident, name, size);
! 		  ident[size] = '\0';
! 		  pp_c_identifier (this, ident);
! 		}
! 	      else
! 		primary_expression (var);
! 	    }
! 	  else
! 	    primary_expression (var);
! 	}
        else if (gimple_assign_single_p (SSA_NAME_DEF_STMT (e)))
  	{
  	  /* Print only the right side of the GIMPLE assignment.  */
--- 1384,1404 ----
        pp_c_ws_string (this, "__builtin_memcpy");
        pp_c_left_paren (this);
        pp_ampersand (this);
!       primary_expression (TARGET_EXPR_SLOT (e));
        pp_separate_with (this, ',');
        pp_ampersand (this);
!       initializer (TARGET_EXPR_INITIAL (e));
!       if (TARGET_EXPR_CLEANUP (e))
  	{
  	  pp_separate_with (this, ',');
! 	  expression (TARGET_EXPR_CLEANUP (e));
  	}
        pp_c_right_paren (this);
        break;
  
      case SSA_NAME:
        if (SSA_NAME_VAR (e))
! 	primary_expression (SSA_NAME_VAR (e));
        else if (gimple_assign_single_p (SSA_NAME_DEF_STMT (e)))
  	{
  	  /* Print only the right side of the GIMPLE assignment.  */
*************** c_pretty_printer::expression (tree e)
*** 2838,2844 ****
        break;
  
      case TARGET_EXPR:
!       postfix_expression (TREE_OPERAND (e, 1));
        break;
  
      case BIND_EXPR:
--- 2824,2830 ----
        break;
  
      case TARGET_EXPR:
!       postfix_expression (TARGET_EXPR_INITIAL (e));
        break;
  
      case BIND_EXPR:
*************** c_pretty_printer::statement (tree t)
*** 2872,2877 ****
--- 2858,2866 ----
      {
  
      case SWITCH_STMT:
+       if (dump_flags != TDF_NONE)
+ 	internal_error ("dump flags not handled here");
+ 
        pp_c_ws_string (this, "switch");
        pp_space (this);
        pp_c_left_paren (this);
*************** c_pretty_printer::statement (tree t)
*** 2889,2894 ****
--- 2878,2886 ----
  	    for ( expression(opt) ; expression(opt) ; expression(opt) ) statement
  	    for ( declaration expression(opt) ; expression(opt) ) statement  */
      case WHILE_STMT:
+       if (dump_flags != TDF_NONE)
+ 	internal_error ("dump flags not handled here");
+ 
        pp_c_ws_string (this, "while");
        pp_space (this);
        pp_c_left_paren (this);
*************** c_pretty_printer::statement (tree t)
*** 2901,2906 ****
--- 2893,2901 ----
        break;
  
      case DO_STMT:
+       if (dump_flags != TDF_NONE)
+ 	internal_error ("dump flags not handled here");
+ 
        pp_c_ws_string (this, "do");
        pp_newline_and_indent (this, 3);
        statement (DO_BODY (t));
*************** c_pretty_printer::statement (tree t)
*** 2915,2920 ****
--- 2910,2918 ----
        break;
  
      case FOR_STMT:
+       if (dump_flags != TDF_NONE)
+ 	internal_error ("dump flags not handled here");
+ 
        pp_c_ws_string (this, "for");
        pp_space (this);
        pp_c_left_paren (this);
*************** c_pretty_printer::statement (tree t)
*** 2943,2950 ****
  	    continue ;
  	    return expression(opt) ;  */
      case BREAK_STMT:
      case CONTINUE_STMT:
!       pp_string (this, TREE_CODE (t) == BREAK_STMT ? "break" : "continue");
        pp_c_semicolon (this);
        pp_needs_newline (this) = true;
        break;
--- 2941,2969 ----
  	    continue ;
  	    return expression(opt) ;  */
      case BREAK_STMT:
+       if (dump_flags != TDF_NONE)
+ 	internal_error ("dump flags not handled here");
+ 
+       pp_string (this, "break");
+       if (BREAK_NAME (t))
+ 	{
+ 	  pp_space (this);
+ 	  pp_c_tree_decl_identifier (this, BREAK_NAME (t));
+ 	}
+       pp_c_semicolon (this);
+       pp_needs_newline (this) = true;
+       break;
+ 
      case CONTINUE_STMT:
!       if (dump_flags != TDF_NONE)
! 	internal_error ("dump flags not handled here");
! 
!       pp_string (this, "continue");
!       if (CONTINUE_NAME (t))
! 	{
! 	  pp_space (this);
! 	  pp_c_tree_decl_identifier (this, CONTINUE_NAME (t));
! 	}
        pp_c_semicolon (this);
        pp_needs_newline (this) = true;
        break;
*************** c_pretty_printer::statement (tree t)
*** 2952,2966 ****
      default:
        if (pp_needs_newline (this))
  	pp_newline_and_indent (this, 0);
!       dump_generic_node (this, t, pp_indentation (this), TDF_NONE, true);
      }
  }
  
  
  /* Initialize the PRETTY-PRINTER for handling C codes.  */
  
! c_pretty_printer::c_pretty_printer ()
    : pretty_printer (),
      offset_list (),
      flags ()
  {
--- 2971,2986 ----
      default:
        if (pp_needs_newline (this))
  	pp_newline_and_indent (this, 0);
!       dump_generic_node (this, t, pp_indentation (this), dump_flags, true);
      }
  }
  
  
  /* Initialize the PRETTY-PRINTER for handling C codes.  */
  
! c_pretty_printer::c_pretty_printer (dump_flags_t dump_flags)
    : pretty_printer (),
+     dump_flags (dump_flags),
      offset_list (),
      flags ()
  {
*************** c_pretty_printer::c_pretty_printer ()
*** 2971,2991 ****
  
  /* c_pretty_printer's implementation of pretty_printer::clone vfunc.  */
  
! pretty_printer *
  c_pretty_printer::clone () const
  {
!   return new c_pretty_printer (*this);
  }
  
  /* Print the tree T in full, on file FILE.  */
  
  void
! print_c_tree (FILE *file, tree t)
  {
!   c_pretty_printer pp;
  
    pp_needs_newline (&pp) = true;
!   pp.buffer->stream = file;
    pp.statement (t);
    pp_newline_and_flush (&pp);
  }
--- 2991,3011 ----
  
  /* c_pretty_printer's implementation of pretty_printer::clone vfunc.  */
  
! std::unique_ptr<pretty_printer>
  c_pretty_printer::clone () const
  {
!   return ::make_unique<c_pretty_printer> (*this);
  }
  
  /* Print the tree T in full, on file FILE.  */
  
  void
! print_c_tree (FILE *file, tree t, dump_flags_t dump_flags)
  {
!   c_pretty_printer pp (dump_flags);
  
    pp_needs_newline (&pp) = true;
!   pp.set_output_stream (file);
    pp.statement (t);
    pp_newline_and_flush (&pp);
  }
*************** print_c_tree (FILE *file, tree t)
*** 2995,3001 ****
  DEBUG_FUNCTION void
  debug_c_tree (tree t)
  {
!   print_c_tree (stderr, t);
    fputc ('\n', stderr);
  }
  
--- 3015,3021 ----
  DEBUG_FUNCTION void
  debug_c_tree (tree t)
  {
!   print_c_tree (stderr, t, TDF_NONE);
    fputc ('\n', stderr);
  }
  
*************** pp_c_tree_decl_identifier (c_pretty_prin
*** 3010,3016 ****
    gcc_assert (DECL_P (t));
  
    if (DECL_NAME (t))
!     name = IDENTIFIER_POINTER (DECL_NAME (t));
    else
      {
        static char xname[8];
--- 3030,3049 ----
    gcc_assert (DECL_P (t));
  
    if (DECL_NAME (t))
!     {
!       const char *dot;
!       name = IDENTIFIER_POINTER (DECL_NAME (t));
!       if (DECL_ARTIFICIAL (t) && (dot = strchr (name, '.')))
! 	{
! 	  /* Print the name without the . suffix (such as in VLAs and
! 	     callee-copied parameters).  */
! 	  size_t size = dot - name;
! 	  char *ident = XALLOCAVEC (char, size + 1);
! 	  memcpy (ident, name, size);
! 	  ident[size] = '\0';
! 	  name = ident;
! 	}
!     }
    else
      {
        static char xname[8];
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-pretty-print.h gcc-15.1.0/gcc/c-family/c-pretty-print.h
*** gcc-14.2.0/gcc/c-family/c-pretty-print.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-pretty-print.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Various declarations for the C and C++ pretty-printers.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Various declarations for the C and C++ pretty-printers.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
*************** typedef void (*c_pretty_print_fn) (c_pre
*** 49,57 ****
     and cp/cxx-pretty-print.cc for an example of derivation.  */
  class c_pretty_printer : public pretty_printer
  {
  public:
!   c_pretty_printer ();
!   pretty_printer *clone () const override;
  
    // Format string, possibly translated.
    void translate_string (const char *);
--- 49,59 ----
     and cp/cxx-pretty-print.cc for an example of derivation.  */
  class c_pretty_printer : public pretty_printer
  {
+   dump_flags_t dump_flags;
+ 
  public:
!   c_pretty_printer (dump_flags_t = TDF_NONE);
!   std::unique_ptr<pretty_printer> clone () const override;
  
    // Format string, possibly translated.
    void translate_string (const char *);
*************** void pp_c_identifier (c_pretty_printer *
*** 137,142 ****
  void pp_c_string_literal (c_pretty_printer *, tree);
  void pp_c_integer_constant (c_pretty_printer *, tree);
  
! void print_c_tree (FILE *file, tree t);
  
  #endif /* GCC_C_PRETTY_PRINTER */
--- 139,144 ----
  void pp_c_string_literal (c_pretty_printer *, tree);
  void pp_c_integer_constant (c_pretty_printer *, tree);
  
! void print_c_tree (FILE *file, tree t, dump_flags_t);
  
  #endif /* GCC_C_PRETTY_PRINTER */
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-semantics.cc gcc-15.1.0/gcc/c-family/c-semantics.cc
*** gcc-14.2.0/gcc/c-family/c-semantics.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-semantics.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* This file contains subroutine used by the C front-end to construct GENERIC.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Written by Benjamin Chelf (chelf@codesourcery.com).
  
  This file is part of GCC.
--- 1,5 ----
  /* This file contains subroutine used by the C front-end to construct GENERIC.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
     Written by Benjamin Chelf (chelf@codesourcery.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-spellcheck.cc gcc-15.1.0/gcc/c-family/c-spellcheck.cc
*** gcc-14.2.0/gcc/c-family/c-spellcheck.cc	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-spellcheck.cc	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-spellcheck.h gcc-15.1.0/gcc/c-family/c-spellcheck.h
*** gcc-14.2.0/gcc/c-family/c-spellcheck.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-spellcheck.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-target-def.h gcc-15.1.0/gcc/c-family/c-target-def.h
*** gcc-14.2.0/gcc/c-family/c-target-def.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-target-def.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Default initializers for C-family target hooks.
!    Copyright (C) 2011-2024 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
--- 1,5 ----
  /* Default initializers for C-family target hooks.
!    Copyright (C) 2011-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
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-target.def gcc-15.1.0/gcc/c-family/c-target.def
*** gcc-14.2.0/gcc/c-family/c-target.def	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-target.def	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Target hook definitions for C-family front ends.
!    Copyright (C) 2001-2024 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
--- 1,5 ----
  /* Target hook definitions for C-family front ends.
!    Copyright (C) 2001-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
*************** linkage the declaration would normally h
*** 112,116 ****
  is WinMain on Win32 targets.",
   bool, (const char*),
   NULL)
!  
  HOOK_VECTOR_END (C90_EMPTY_HACK)
--- 112,116 ----
  is WinMain on Win32 targets.",
   bool, (const char*),
   NULL)
! 
  HOOK_VECTOR_END (C90_EMPTY_HACK)
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-target.h gcc-15.1.0/gcc/c-family/c-target.h
*** gcc-14.2.0/gcc/c-family/c-target.h	Thu Aug  1 08:17:14 2024
--- gcc-15.1.0/gcc/c-family/c-target.h	Fri Apr 25 08:18:00 2025
***************
*** 1,5 ****
  /* Data structure definitions for target-specific C-family behavior.
!    Copyright (C) 2001-2024 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
--- 1,5 ----
  /* Data structure definitions for target-specific C-family behavior.
!    Copyright (C) 2001-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
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-type-mismatch.cc gcc-15.1.0/gcc/c-family/c-type-mismatch.cc
*** gcc-14.2.0/gcc/c-family/c-type-mismatch.cc	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/c-family/c-type-mismatch.cc	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,131 ----
+ /* Implementations of classes for reporting type mismatches.
+    Copyright (C) 2014-2025 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "hash-set.h"
+ #include "vec.h"
+ #include "input.h"
+ #include "alias.h"
+ #include "symtab.h"
+ #include "inchash.h"
+ #include "tree-core.h"
+ #include "tree.h"
+ #include "diagnostic-core.h"
+ #include "c-family/c-type-mismatch.h"
+ #include "print-tree.h"
+ #include "pretty-print.h"
+ #include "intl.h"
+ #include "cpplib.h"
+ #include "diagnostic.h"
+ #include "diagnostic-highlight-colors.h"
+ 
+ /* Implementation of range_label::get_text for
+    maybe_range_label_for_tree_type_mismatch.
+ 
+    If both expressions are non-NULL, then generate text describing
+    the first expression's type (using the other expression's type
+    for comparison, analogous to %H and %I in the C++ frontend, but
+    on expressions rather than types).  */
+ 
+ label_text
+ maybe_range_label_for_tree_type_mismatch::get_text (unsigned range_idx) const
+ {
+   if (m_expr == NULL_TREE
+       || !EXPR_P (m_expr))
+     return label_text::borrow (NULL);
+   tree expr_type = TREE_TYPE (m_expr);
+ 
+   tree other_type = NULL_TREE;
+   if (m_other_expr && EXPR_P (m_other_expr))
+     other_type = TREE_TYPE (m_other_expr);
+ 
+   range_label_for_type_mismatch inner (expr_type, other_type);
+   return inner.get_text (range_idx);
+ }
+ 
+ /* binary_op_rich_location's ctor.
+ 
+    If use_operator_loc_p (LOC, ARG0, ARG1), then attempt to make a 3-location
+    rich_location of the form:
+ 
+      arg_0 op arg_1
+      ~~~~~ ^~ ~~~~~
+        |        |
+        |        arg1 type
+        arg0 type
+ 
+    labelling the types of the arguments if SHOW_TYPES is true,
+    and using highlight_colors::lhs and highlight_colors::rhs for the ranges.
+ 
+    Otherwise, make a 1-location rich_location using the compound
+    location within LOC:
+ 
+      arg_0 op arg_1
+      ~~~~~~^~~~~~~~
+ 
+    for which we can't label the types.  */
+ 
+ binary_op_rich_location::binary_op_rich_location (const op_location_t &loc,
+ 						  tree arg0, tree arg1,
+ 						  bool show_types)
+ : gcc_rich_location (loc.m_combined_loc),
+   m_label_for_arg0 (arg0, arg1),
+   m_label_for_arg1 (arg1, arg0)
+ {
+   /* Default (above) to using the combined loc.
+      Potentially override it here: if we have location information for the
+      operator and for both arguments, then split them all out.
+      Alternatively, override it if we don't have the combined location.  */
+   if (use_operator_loc_p (loc, arg0, arg1))
+     {
+       set_range (0, loc.m_operator_loc, SHOW_RANGE_WITH_CARET);
+       maybe_add_expr (arg0, show_types ? &m_label_for_arg0 : NULL,
+ 		      highlight_colors::lhs);
+       maybe_add_expr (arg1, show_types ? &m_label_for_arg1 : NULL,
+ 		      highlight_colors::rhs);
+     }
+ }
+ 
+ /* Determine if binary_op_rich_location's ctor should attempt to make
+    a 3-location rich_location (the location of the operator and of
+    the 2 arguments), or fall back to a 1-location rich_location showing
+    just the combined location of the operation as a whole.  */
+ 
+ bool
+ binary_op_rich_location::use_operator_loc_p (const op_location_t &loc,
+ 					     tree arg0, tree arg1)
+ {
+   /* If we don't have a combined location, then use the operator location,
+      and try to add ranges for the operators.  */
+   if (loc.m_combined_loc == UNKNOWN_LOCATION)
+     return true;
+ 
+   /* If we don't have the operator location, then use the
+      combined location.  */
+   if (loc.m_operator_loc == UNKNOWN_LOCATION)
+     return false;
+ 
+   /* We have both operator location and combined location: only use the
+      operator location if we have locations for both arguments.  */
+   return (EXPR_HAS_LOCATION (arg0)
+ 	  && EXPR_HAS_LOCATION (arg1));
+ }
diff -Nrcpad gcc-14.2.0/gcc/c-family/c-type-mismatch.h gcc-15.1.0/gcc/c-family/c-type-mismatch.h
*** gcc-14.2.0/gcc/c-family/c-type-mismatch.h	Thu Jan  1 00:00:00 1970
--- gcc-15.1.0/gcc/c-family/c-type-mismatch.h	Fri Apr 25 08:18:00 2025
***************
*** 0 ****
--- 1,127 ----
+ /* Declarations relating to classes for reporting type mismatches.
+    Copyright (C) 2014-2025 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_C_TYPE_MISMATCH_H
+ #define GCC_C_TYPE_MISMATCH_H
+ 
+ #include "gcc-rich-location.h"
+ 
+ /* Concrete subclass of libcpp's range_label for use in
+    diagnostics involving mismatched types.
+ 
+    Each frontend that uses this should supply its own implementation.
+ 
+    Generate a label describing LABELLED_TYPE.  The frontend may use
+    OTHER_TYPE where appropriate for highlighting the differences between
+    the two types (analogous to C++'s use of %H and %I with
+    template types).
+ 
+    Either or both of LABELLED_TYPE and OTHER_TYPE may be NULL_TREE.
+    If LABELLED_TYPE is NULL_TREE, then there is no label.
+ 
+    For example, this rich_location could use two instances of
+    range_label_for_type_mismatch:
+ 
+       printf ("arg0: %i  arg1: %s arg2: %i",
+                                ^~
+                                |
+                                const char *
+               100, 101, 102);
+                    ~~~
+                    |
+                    int
+ 
+    (a) the label for "%s" with LABELLED_TYPE for "const char*" and
+    (b) the label for "101" with LABELLED TYPE for "int"
+    where each one uses the other's type as OTHER_TYPE.  */
+ 
+ class range_label_for_type_mismatch : public range_label
+ {
+  public:
+   range_label_for_type_mismatch (tree labelled_type, tree other_type)
+   : m_labelled_type (labelled_type), m_other_type (other_type)
+   {
+   }
+ 
+   label_text get_text (unsigned range_idx) const override;
+ 
+  protected:
+   tree m_labelled_type;
+   tree m_other_type;
+ };
+ 
+ /* Subclass of range_label for labelling the type of EXPR when reporting
+    a type mismatch between EXPR and OTHER_EXPR.
+    Either or both of EXPR and OTHER_EXPR could be NULL.  */
+ 
+ class maybe_range_label_for_tree_type_mismatch : public range_label
+ {
+  public:
+   maybe_range_label_for_tree_type_mismatch (tree expr, tree other_expr)
+   : m_expr (expr), m_other_expr (other_expr)
+   {
+   }
+ 
+   label_text get_text (unsigned range_idx) const final override;
+ 
+  private:
+   tree m_expr;
+   tree m_other_expr;
+ };
+ 
+ class op_location_t;
+ 
+ /* A subclass of rich_location for showing problems with binary operations.
+ 
+    If enough location information is available, the ctor will make a
+    3-location rich_location of the form:
+ 
+      arg_0 op arg_1
+      ~~~~~ ^~ ~~~~~
+        |        |
+        |        arg1 type
+        arg0 type
+ 
+    labelling the types of the arguments if SHOW_TYPES is true,
+    and using highlight_colors::lhs and highlight_colors::rhs for the ranges.
+ 
+    Otherwise, it will fall back to a 1-location rich_location using the
+    compound location within LOC:
+ 
+      arg_0 op arg_1
+      ~~~~~~^~~~~~~~
+ 
+    for which we can't label the types.  */
+ 
+ class binary_op_rich_location : public gcc_rich_location
+ {
+  public:
+   binary_op_rich_location (const op_location_t &loc,
+ 			   tree arg0, tree arg1,
+ 			   bool show_types);
+ 
+  private:
+   static bool u